diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4684bf0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build/ +linux-build/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..d87c831 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,156 @@ +cmake_minimum_required(VERSION 3.21) +project(MinecraftPE) + +include(cmake/CPM.cmake) + +CPMAddPackage("gh:madler/zlib@1.3.2") +CPMAddPackage( + NAME "libpng" + GIT_REPOSITORY "https://github.com/pnggroup/libpng.git" + GIT_TAG "v1.6.55" + OPTIONS + "ZLIB_ROOT ${zlib_SOURCE_DIR}" + "ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR}" + "PNG_TOOLS OFF" + "PNG_TESTS OFF" + "BUILD_SHARED_LIBS ON" +) + +CPMAddPackage( + NAME "openal" + GIT_REPOSITORY "https://github.com/kcat/openal-soft.git" + GIT_TAG "1.25.1" + OPTIONS + "ALSOFT_EXAMPLES OFF" + "ALSOFT_TESTS OFF" + "ALSOFT_UTILS OFF" + "BUILD_SHARED_LIBS ON" +) + +CPMAddPackage( + NAME "glfw" + GIT_REPOSITORY "https://github.com/glfw/glfw.git" + GIT_TAG "3.4" + OPTIONS + "GLFW_BUILD_EXAMPLES OFF" + "GLFW_BUILD_TESTS OFF" + "GLFW_BUILD_DOCS OFF" + "BUILD_SHARED_LIBS ON" +) + +file(GLOB SOURCES + "src/client/*.cpp" + + "src/client/gamemode/*.cpp" + "src/client/gui/*.cpp" + "src/client/gui/components/*.cpp" + "src/client/gui/screens/*.cpp" + "src/client/gui/screens/crafting/*.cpp" + "src/client/gui/screens/touch/*.cpp" + + "src/client/model/*.cpp" + "src/client/model/geom/*.cpp" + + "src/client/particle/*.cpp" + + "src/client/player/*.cpp" + "src/client/player/input/*.cpp" + "src/client/player/input/touchscreen/*.cpp" + + "src/client/renderer/*.cpp" + "src/client/renderer/culling/*.cpp" + "src/client/renderer/entity/*.cpp" + "src/client/renderer/ptexture/*.cpp" + "src/client/renderer/tileentity/*.cpp" + + "src/client/sound/*.cpp" + + "src/locale/*.cpp" + + "src/nbt/*.cpp" + + "src/network/*.cpp" + "src/network/command/*.cpp" + + "src/platform/*.cpp" + "src/platform/audio/SoundSystemAL.cpp" + "src/platform/input/*.cpp" + + "src/raknet/**.cpp" + + "src/server/**.cpp" + + "src/util/**.cpp" + + "src/world/*.cpp" + "src/world/phys/*.cpp" + "src/world/entity/*.cpp" + "src/world/entity/ai/control/*.cpp" + "src/world/entity/animal/*.cpp" + "src/world/entity/item/*.cpp" + "src/world/entity/monster/*.cpp" + "src/world/entity/player/*.cpp" + "src/world/entity/projectile/*.cpp" + + "src/world/food/*.cpp" + "src/world/inventory/*.cpp" + + "src/world/item/*.cpp" + "src/world/item/crafting/*.cpp" + + "src/world/level/*.cpp" + "src/world/level/biome/*.cpp" + "src/world/level/chunk/*.cpp" + "src/world/level/dimension/*.cpp" + "src/world/level/levelgen/*.cpp" + "src/world/level/levelgen/feature/*.cpp" + "src/world/level/levelgen/synth/*.cpp" + "src/world/level/material/*.cpp" + "src/world/level/pathfinder/*.cpp" + "src/world/level/storage/*.cpp" + "src/world/level/tile/*.cpp" + "src/world/level/tile/entity/*.cpp" + + "src/SharedConstants.cpp" + "src/main.cpp" + "src/NinecraftApp.cpp" +) + +add_executable(${PROJECT_NAME} + ${SOURCES} + + #TODO: if PLATFORM=PLATFORM_GLFW + "src/AppPlatform_glfw.cpp" + + "glad/src/glad.c" +) + +target_include_directories(${PROJECT_NAME} PUBLIC + "${CMAKE_SOURCE_DIR}/glad/include/" + "${CMAKE_SOURCE_DIR}/src" + "${openal_SOURCE_DIR}/include" + "${glfw_SOURCE_DIR}/include" + "lib/include" +) + +target_compile_definitions(${PROJECT_NAME} PUBLIC "OPENGL_ES" "NO_EGL" "_CRT_SECURE_NO_WARNINGS" "PLATFORM_GLFW") + +# TODO: add ws2_32 lib if windows +# TODO: fix openal linking for windows + +target_link_libraries(${PROJECT_NAME} zlib png_shared alsoft.common OpenAL glfw) + +if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux") +add_custom_command( + TARGET ${PROJECT_NAME} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + COMMAND_EXPAND_LISTS +) +endif() + +add_custom_command( + TARGET ${PROJECT_NAME} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/data" $/data +) \ No newline at end of file diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake new file mode 100755 index 0000000..832977c --- /dev/null +++ b/cmake/CPM.cmake @@ -0,0 +1,1363 @@ +# CPM.cmake - CMake's missing package manager +# =========================================== +# See https://github.com/cpm-cmake/CPM.cmake for usage and update instructions. +# +# MIT License +# ----------- +#[[ + Copyright (c) 2019-2023 Lars Melchior and contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +]] + +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) + +# Initialize logging prefix +if(NOT CPM_INDENT) + set(CPM_INDENT + "CPM:" + CACHE INTERNAL "" + ) +endif() + +if(NOT COMMAND cpm_message) + function(cpm_message) + message(${ARGV}) + endfunction() +endif() + +if(DEFINED EXTRACTED_CPM_VERSION) + set(CURRENT_CPM_VERSION "${EXTRACTED_CPM_VERSION}${CPM_DEVELOPMENT}") +else() + set(CURRENT_CPM_VERSION 0.42.1) +endif() + +get_filename_component(CPM_CURRENT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" REALPATH) +if(CPM_DIRECTORY) + if(NOT CPM_DIRECTORY STREQUAL CPM_CURRENT_DIRECTORY) + if(CPM_VERSION VERSION_LESS CURRENT_CPM_VERSION) + message( + AUTHOR_WARNING + "${CPM_INDENT} \ +A dependency is using a more recent CPM version (${CURRENT_CPM_VERSION}) than the current project (${CPM_VERSION}). \ +It is recommended to upgrade CPM to the most recent version. \ +See https://github.com/cpm-cmake/CPM.cmake for more information." + ) + endif() + if(${CMAKE_VERSION} VERSION_LESS "3.17.0") + include(FetchContent) + endif() + return() + endif() + + get_property( + CPM_INITIALIZED GLOBAL "" + PROPERTY CPM_INITIALIZED + SET + ) + if(CPM_INITIALIZED) + return() + endif() +endif() + +if(CURRENT_CPM_VERSION MATCHES "development-version") + message( + WARNING "${CPM_INDENT} Your project is using an unstable development version of CPM.cmake. \ +Please update to a recent release if possible. \ +See https://github.com/cpm-cmake/CPM.cmake for details." + ) +endif() + +set_property(GLOBAL PROPERTY CPM_INITIALIZED true) + +macro(cpm_set_policies) + # the policy allows us to change options without caching + cmake_policy(SET CMP0077 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) + + # the policy allows us to change set(CACHE) without caching + if(POLICY CMP0126) + cmake_policy(SET CMP0126 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0126 NEW) + endif() + + # The policy uses the download time for timestamp, instead of the timestamp in the archive. This + # allows for proper rebuilds when a projects url changes + if(POLICY CMP0135) + cmake_policy(SET CMP0135 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0135 NEW) + endif() + + # treat relative git repository paths as being relative to the parent project's remote + if(POLICY CMP0150) + cmake_policy(SET CMP0150 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0150 NEW) + endif() +endmacro() +cpm_set_policies() + +option(CPM_USE_LOCAL_PACKAGES "Always try to use `find_package` to get dependencies" + $ENV{CPM_USE_LOCAL_PACKAGES} +) +option(CPM_LOCAL_PACKAGES_ONLY "Only use `find_package` to get dependencies" + $ENV{CPM_LOCAL_PACKAGES_ONLY} +) +option(CPM_DOWNLOAD_ALL "Always download dependencies from source" $ENV{CPM_DOWNLOAD_ALL}) +option(CPM_DONT_UPDATE_MODULE_PATH "Don't update the module path to allow using find_package" + $ENV{CPM_DONT_UPDATE_MODULE_PATH} +) +option(CPM_DONT_CREATE_PACKAGE_LOCK "Don't create a package lock file in the binary path" + $ENV{CPM_DONT_CREATE_PACKAGE_LOCK} +) +option(CPM_INCLUDE_ALL_IN_PACKAGE_LOCK + "Add all packages added through CPM.cmake to the package lock" + $ENV{CPM_INCLUDE_ALL_IN_PACKAGE_LOCK} +) +option(CPM_USE_NAMED_CACHE_DIRECTORIES + "Use additional directory of package name in cache on the most nested level." + $ENV{CPM_USE_NAMED_CACHE_DIRECTORIES} +) + +set(CPM_VERSION + ${CURRENT_CPM_VERSION} + CACHE INTERNAL "" +) +set(CPM_DIRECTORY + ${CPM_CURRENT_DIRECTORY} + CACHE INTERNAL "" +) +set(CPM_FILE + ${CMAKE_CURRENT_LIST_FILE} + CACHE INTERNAL "" +) +set(CPM_PACKAGES + "" + CACHE INTERNAL "" +) +set(CPM_DRY_RUN + OFF + CACHE INTERNAL "Don't download or configure dependencies (for testing)" +) + +if(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_SOURCE_CACHE_DEFAULT $ENV{CPM_SOURCE_CACHE}) +else() + set(CPM_SOURCE_CACHE_DEFAULT OFF) +endif() + +set(CPM_SOURCE_CACHE + ${CPM_SOURCE_CACHE_DEFAULT} + CACHE PATH "Directory to download CPM dependencies" +) + +if(NOT CPM_DONT_UPDATE_MODULE_PATH AND NOT DEFINED CMAKE_FIND_PACKAGE_REDIRECTS_DIR) + set(CPM_MODULE_PATH + "${CMAKE_BINARY_DIR}/CPM_modules" + CACHE INTERNAL "" + ) + # remove old modules + file(REMOVE_RECURSE ${CPM_MODULE_PATH}) + file(MAKE_DIRECTORY ${CPM_MODULE_PATH}) + # locally added CPM modules should override global packages + set(CMAKE_MODULE_PATH "${CPM_MODULE_PATH};${CMAKE_MODULE_PATH}") +endif() + +if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + set(CPM_PACKAGE_LOCK_FILE + "${CMAKE_BINARY_DIR}/cpm-package-lock.cmake" + CACHE INTERNAL "" + ) + file(WRITE ${CPM_PACKAGE_LOCK_FILE} + "# CPM Package Lock\n# This file should be committed to version control\n\n" + ) +endif() + +include(FetchContent) + +# Try to infer package name from git repository uri (path or url) +function(cpm_package_name_from_git_uri URI RESULT) + if("${URI}" MATCHES "([^/:]+)/?.git/?$") + set(${RESULT} + ${CMAKE_MATCH_1} + PARENT_SCOPE + ) + else() + unset(${RESULT} PARENT_SCOPE) + endif() +endfunction() + +# Find the shortest hash that can be used eg, if origin_hash is +# cccb77ae9609d2768ed80dd42cec54f77b1f1455 the following files will be checked, until one is found +# that is either empty (allowing us to assign origin_hash), or whose contents matches ${origin_hash} +# +# * .../cccb.hash +# * .../cccb77ae.hash +# * .../cccb77ae9609.hash +# * .../cccb77ae9609d276.hash +# * etc +# +# We will be able to use a shorter path with very high probability, but in the (rare) event that the +# first couple characters collide, we will check longer and longer substrings. +function(cpm_get_shortest_hash source_cache_dir origin_hash short_hash_output_var) + # for compatibility with caches populated by a previous version of CPM, check if a directory using + # the full hash already exists + if(EXISTS "${source_cache_dir}/${origin_hash}") + set(${short_hash_output_var} + "${origin_hash}" + PARENT_SCOPE + ) + return() + endif() + + foreach(len RANGE 4 40 4) + string(SUBSTRING "${origin_hash}" 0 ${len} short_hash) + set(hash_lock ${source_cache_dir}/${short_hash}.lock) + set(hash_fp ${source_cache_dir}/${short_hash}.hash) + # Take a lock, so we don't have a race condition with another instance of cmake. We will release + # this lock when we can, however, if there is an error, we want to ensure it gets released on + # it's own on exit from the function. + file(LOCK ${hash_lock} GUARD FUNCTION) + + # Load the contents of .../${short_hash}.hash + file(TOUCH ${hash_fp}) + file(READ ${hash_fp} hash_fp_contents) + + if(hash_fp_contents STREQUAL "") + # Write the origin hash + file(WRITE ${hash_fp} ${origin_hash}) + file(LOCK ${hash_lock} RELEASE) + break() + elseif(hash_fp_contents STREQUAL origin_hash) + file(LOCK ${hash_lock} RELEASE) + break() + else() + file(LOCK ${hash_lock} RELEASE) + endif() + endforeach() + set(${short_hash_output_var} + "${short_hash}" + PARENT_SCOPE + ) +endfunction() + +# Try to infer package name and version from a url +function(cpm_package_name_and_ver_from_url url outName outVer) + if(url MATCHES "[/\\?]([a-zA-Z0-9_\\.-]+)\\.(tar|tar\\.gz|tar\\.bz2|zip|ZIP)(\\?|/|$)") + # We matched an archive + set(filename "${CMAKE_MATCH_1}") + + if(filename MATCHES "([a-zA-Z0-9_\\.-]+)[_-]v?(([0-9]+\\.)*[0-9]+[a-zA-Z0-9]*)") + # We matched - (ie foo-1.2.3) + set(${outName} + "${CMAKE_MATCH_1}" + PARENT_SCOPE + ) + set(${outVer} + "${CMAKE_MATCH_2}" + PARENT_SCOPE + ) + elseif(filename MATCHES "(([0-9]+\\.)+[0-9]+[a-zA-Z0-9]*)") + # We couldn't find a name, but we found a version + # + # In many cases (which we don't handle here) the url would look something like + # `irrelevant/ACTUAL_PACKAGE_NAME/irrelevant/1.2.3.zip`. In such a case we can't possibly + # distinguish the package name from the irrelevant bits. Moreover if we try to match the + # package name from the filename, we'd get bogus at best. + unset(${outName} PARENT_SCOPE) + set(${outVer} + "${CMAKE_MATCH_1}" + PARENT_SCOPE + ) + else() + # Boldly assume that the file name is the package name. + # + # Yes, something like `irrelevant/ACTUAL_NAME/irrelevant/download.zip` will ruin our day, but + # such cases should be quite rare. No popular service does this... we think. + set(${outName} + "${filename}" + PARENT_SCOPE + ) + unset(${outVer} PARENT_SCOPE) + endif() + else() + # No ideas yet what to do with non-archives + unset(${outName} PARENT_SCOPE) + unset(${outVer} PARENT_SCOPE) + endif() +endfunction() + +function(cpm_find_package NAME VERSION) + string(REPLACE " " ";" EXTRA_ARGS "${ARGN}") + find_package(${NAME} ${VERSION} ${EXTRA_ARGS} QUIET) + if(${CPM_ARGS_NAME}_FOUND) + if(DEFINED ${CPM_ARGS_NAME}_VERSION) + set(VERSION ${${CPM_ARGS_NAME}_VERSION}) + endif() + cpm_message(STATUS "${CPM_INDENT} Using local package ${CPM_ARGS_NAME}@${VERSION}") + CPMRegisterPackage(${CPM_ARGS_NAME} "${VERSION}") + set(CPM_PACKAGE_FOUND + YES + PARENT_SCOPE + ) + else() + set(CPM_PACKAGE_FOUND + NO + PARENT_SCOPE + ) + endif() +endfunction() + +# Create a custom FindXXX.cmake module for a CPM package This prevents `find_package(NAME)` from +# finding the system library +function(cpm_create_module_file Name) + if(NOT CPM_DONT_UPDATE_MODULE_PATH) + if(DEFINED CMAKE_FIND_PACKAGE_REDIRECTS_DIR) + # Redirect find_package calls to the CPM package. This is what FetchContent does when you set + # OVERRIDE_FIND_PACKAGE. The CMAKE_FIND_PACKAGE_REDIRECTS_DIR works for find_package in CONFIG + # mode, unlike the Find${Name}.cmake fallback. CMAKE_FIND_PACKAGE_REDIRECTS_DIR is not defined + # in script mode, or in CMake < 3.24. + # https://cmake.org/cmake/help/latest/module/FetchContent.html#fetchcontent-find-package-integration-examples + string(TOLOWER ${Name} NameLower) + file(WRITE ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/${NameLower}-config.cmake + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${NameLower}-extra.cmake\" OPTIONAL)\n" + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${Name}Extra.cmake\" OPTIONAL)\n" + ) + file(WRITE ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/${NameLower}-config-version.cmake + "set(PACKAGE_VERSION_COMPATIBLE TRUE)\n" "set(PACKAGE_VERSION_EXACT TRUE)\n" + ) + else() + file(WRITE ${CPM_MODULE_PATH}/Find${Name}.cmake + "include(\"${CPM_FILE}\")\n${ARGN}\nset(${Name}_FOUND TRUE)" + ) + endif() + endif() +endfunction() + +# Find a package locally or fallback to CPMAddPackage +function(CPMFindPackage) + set(oneValueArgs NAME VERSION GIT_TAG FIND_PACKAGE_ARGUMENTS) + + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "" ${ARGN}) + + if(NOT DEFINED CPM_ARGS_VERSION) + if(DEFINED CPM_ARGS_GIT_TAG) + cpm_get_version_from_git_tag("${CPM_ARGS_GIT_TAG}" CPM_ARGS_VERSION) + endif() + endif() + + set(downloadPackage ${CPM_DOWNLOAD_ALL}) + if(DEFINED CPM_DOWNLOAD_${CPM_ARGS_NAME}) + set(downloadPackage ${CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + elseif(DEFINED ENV{CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + set(downloadPackage $ENV{CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + endif() + if(downloadPackage) + CPMAddPackage(${ARGN}) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + cpm_find_package(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}" ${CPM_ARGS_FIND_PACKAGE_ARGUMENTS}) + + if(NOT CPM_PACKAGE_FOUND) + CPMAddPackage(${ARGN}) + cpm_export_variables(${CPM_ARGS_NAME}) + endif() + +endfunction() + +# checks if a package has been added before +function(cpm_check_if_package_already_added CPM_ARGS_NAME CPM_ARGS_VERSION) + if("${CPM_ARGS_NAME}" IN_LIST CPM_PACKAGES) + CPMGetPackageVersion(${CPM_ARGS_NAME} CPM_PACKAGE_VERSION) + if("${CPM_PACKAGE_VERSION}" VERSION_LESS "${CPM_ARGS_VERSION}") + message( + WARNING + "${CPM_INDENT} Requires a newer version of ${CPM_ARGS_NAME} (${CPM_ARGS_VERSION}) than currently included (${CPM_PACKAGE_VERSION})." + ) + endif() + cpm_get_fetch_properties(${CPM_ARGS_NAME}) + set(${CPM_ARGS_NAME}_ADDED NO) + set(CPM_PACKAGE_ALREADY_ADDED + YES + PARENT_SCOPE + ) + cpm_export_variables(${CPM_ARGS_NAME}) + else() + set(CPM_PACKAGE_ALREADY_ADDED + NO + PARENT_SCOPE + ) + endif() +endfunction() + +# Parse the argument of CPMAddPackage in case a single one was provided and convert it to a list of +# arguments which can then be parsed idiomatically. For example gh:foo/bar@1.2.3 will be converted +# to: GITHUB_REPOSITORY;foo/bar;VERSION;1.2.3 +function(cpm_parse_add_package_single_arg arg outArgs) + # Look for a scheme + if("${arg}" MATCHES "^([a-zA-Z]+):(.+)$") + string(TOLOWER "${CMAKE_MATCH_1}" scheme) + set(uri "${CMAKE_MATCH_2}") + + # Check for CPM-specific schemes + if(scheme STREQUAL "gh") + set(out "GITHUB_REPOSITORY;${uri}") + set(packageType "git") + elseif(scheme STREQUAL "gl") + set(out "GITLAB_REPOSITORY;${uri}") + set(packageType "git") + elseif(scheme STREQUAL "bb") + set(out "BITBUCKET_REPOSITORY;${uri}") + set(packageType "git") + # A CPM-specific scheme was not found. Looks like this is a generic URL so try to determine + # type + elseif(arg MATCHES ".git/?(@|#|$)") + set(out "GIT_REPOSITORY;${arg}") + set(packageType "git") + else() + # Fall back to a URL + set(out "URL;${arg}") + set(packageType "archive") + + # We could also check for SVN since FetchContent supports it, but SVN is so rare these days. + # We just won't bother with the additional complexity it will induce in this function. SVN is + # done by multi-arg + endif() + else() + if(arg MATCHES ".git/?(@|#|$)") + set(out "GIT_REPOSITORY;${arg}") + set(packageType "git") + else() + # Give up + message(FATAL_ERROR "${CPM_INDENT} Can't determine package type of '${arg}'") + endif() + endif() + + # For all packages we interpret @... as version. Only replace the last occurrence. Thus URIs + # containing '@' can be used + string(REGEX REPLACE "@([^@]+)$" ";VERSION;\\1" out "${out}") + + # Parse the rest according to package type + if(packageType STREQUAL "git") + # For git repos we interpret #... as a tag or branch or commit hash + string(REGEX REPLACE "#([^#]+)$" ";GIT_TAG;\\1" out "${out}") + elseif(packageType STREQUAL "archive") + # For archives we interpret #... as a URL hash. + string(REGEX REPLACE "#([^#]+)$" ";URL_HASH;\\1" out "${out}") + # We don't try to parse the version if it's not provided explicitly. cpm_get_version_from_url + # should do this at a later point + else() + # We should never get here. This is an assertion and hitting it means there's a problem with the + # code above. A packageType was set, but not handled by this if-else. + message(FATAL_ERROR "${CPM_INDENT} Unsupported package type '${packageType}' of '${arg}'") + endif() + + set(${outArgs} + ${out} + PARENT_SCOPE + ) +endfunction() + +# Check that the working directory for a git repo is clean +function(cpm_check_git_working_dir_is_clean repoPath gitTag isClean) + + find_package(Git REQUIRED) + + if(NOT GIT_EXECUTABLE) + # No git executable, assume directory is clean + set(${isClean} + TRUE + PARENT_SCOPE + ) + return() + endif() + + # check for uncommitted changes + execute_process( + COMMAND ${GIT_EXECUTABLE} status --porcelain + RESULT_VARIABLE resultGitStatus + OUTPUT_VARIABLE repoStatus + OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + WORKING_DIRECTORY ${repoPath} + ) + if(resultGitStatus) + # not supposed to happen, assume clean anyway + message(WARNING "${CPM_INDENT} Calling git status on folder ${repoPath} failed") + set(${isClean} + TRUE + PARENT_SCOPE + ) + return() + endif() + + if(NOT "${repoStatus}" STREQUAL "") + set(${isClean} + FALSE + PARENT_SCOPE + ) + return() + endif() + + # check for committed changes + execute_process( + COMMAND ${GIT_EXECUTABLE} diff -s --exit-code ${gitTag} + RESULT_VARIABLE resultGitDiff + OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_QUIET + WORKING_DIRECTORY ${repoPath} + ) + + if(${resultGitDiff} EQUAL 0) + set(${isClean} + TRUE + PARENT_SCOPE + ) + else() + set(${isClean} + FALSE + PARENT_SCOPE + ) + endif() + +endfunction() + +# Add PATCH_COMMAND to CPM_ARGS_UNPARSED_ARGUMENTS. This method consumes a list of files in ARGN +# then generates a `PATCH_COMMAND` appropriate for `ExternalProject_Add()`. This command is appended +# to the parent scope's `CPM_ARGS_UNPARSED_ARGUMENTS`. +function(cpm_add_patches) + # Return if no patch files are supplied. + if(NOT ARGN) + return() + endif() + + # Find the patch program. + find_program(PATCH_EXECUTABLE patch) + if(CMAKE_HOST_WIN32 AND NOT PATCH_EXECUTABLE) + # The Windows git executable is distributed with patch.exe. Find the path to the executable, if + # it exists, then search `../usr/bin` and `../../usr/bin` for patch.exe. + find_package(Git QUIET) + if(GIT_EXECUTABLE) + get_filename_component(extra_search_path ${GIT_EXECUTABLE} DIRECTORY) + get_filename_component(extra_search_path_1up ${extra_search_path} DIRECTORY) + get_filename_component(extra_search_path_2up ${extra_search_path_1up} DIRECTORY) + find_program( + PATCH_EXECUTABLE patch HINTS "${extra_search_path_1up}/usr/bin" + "${extra_search_path_2up}/usr/bin" + ) + endif() + endif() + if(NOT PATCH_EXECUTABLE) + message(FATAL_ERROR "Couldn't find `patch` executable to use with PATCHES keyword.") + endif() + + # Create a temporary + set(temp_list ${CPM_ARGS_UNPARSED_ARGUMENTS}) + + # Ensure each file exists (or error out) and add it to the list. + set(first_item True) + foreach(PATCH_FILE ${ARGN}) + # Make sure the patch file exists, if we can't find it, try again in the current directory. + if(NOT EXISTS "${PATCH_FILE}") + if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/${PATCH_FILE}") + message(FATAL_ERROR "Couldn't find patch file: '${PATCH_FILE}'") + endif() + set(PATCH_FILE "${CMAKE_CURRENT_LIST_DIR}/${PATCH_FILE}") + endif() + + # Convert to absolute path for use with patch file command. + get_filename_component(PATCH_FILE "${PATCH_FILE}" ABSOLUTE) + + # The first patch entry must be preceded by "PATCH_COMMAND" while the following items are + # preceded by "&&". + if(first_item) + set(first_item False) + list(APPEND temp_list "PATCH_COMMAND") + else() + list(APPEND temp_list "&&") + endif() + # Add the patch command to the list + list(APPEND temp_list "${PATCH_EXECUTABLE}" "-p1" "<" "${PATCH_FILE}") + endforeach() + + # Move temp out into parent scope. + set(CPM_ARGS_UNPARSED_ARGUMENTS + ${temp_list} + PARENT_SCOPE + ) + +endfunction() + +# method to overwrite internal FetchContent properties, to allow using CPM.cmake to overload +# FetchContent calls. As these are internal cmake properties, this method should be used carefully +# and may need modification in future CMake versions. Source: +# https://github.com/Kitware/CMake/blob/dc3d0b5a0a7d26d43d6cfeb511e224533b5d188f/Modules/FetchContent.cmake#L1152 +function(cpm_override_fetchcontent contentName) + cmake_parse_arguments(PARSE_ARGV 1 arg "" "SOURCE_DIR;BINARY_DIR" "") + if(NOT "${arg_UNPARSED_ARGUMENTS}" STREQUAL "") + message(FATAL_ERROR "${CPM_INDENT} Unsupported arguments: ${arg_UNPARSED_ARGUMENTS}") + endif() + + string(TOLOWER ${contentName} contentNameLower) + set(prefix "_FetchContent_${contentNameLower}") + + set(propertyName "${prefix}_sourceDir") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} "${arg_SOURCE_DIR}") + + set(propertyName "${prefix}_binaryDir") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} "${arg_BINARY_DIR}") + + set(propertyName "${prefix}_populated") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} TRUE) +endfunction() + +# Download and add a package from source +function(CPMAddPackage) + cpm_set_policies() + + set(oneValueArgs + NAME + FORCE + VERSION + GIT_TAG + DOWNLOAD_ONLY + GITHUB_REPOSITORY + GITLAB_REPOSITORY + BITBUCKET_REPOSITORY + GIT_REPOSITORY + SOURCE_DIR + FIND_PACKAGE_ARGUMENTS + NO_CACHE + SYSTEM + GIT_SHALLOW + EXCLUDE_FROM_ALL + SOURCE_SUBDIR + CUSTOM_CACHE_KEY + ) + + set(multiValueArgs URL OPTIONS DOWNLOAD_COMMAND PATCHES) + + list(LENGTH ARGN argnLength) + + # Parse single shorthand argument + if(argnLength EQUAL 1) + cpm_parse_add_package_single_arg("${ARGN}" ARGN) + + # The shorthand syntax implies EXCLUDE_FROM_ALL and SYSTEM + set(ARGN "${ARGN};EXCLUDE_FROM_ALL;YES;SYSTEM;YES;") + + # Parse URI shorthand argument + elseif(argnLength GREATER 1 AND "${ARGV0}" STREQUAL "URI") + list(REMOVE_AT ARGN 0 1) # remove "URI gh:<...>@version#tag" + cpm_parse_add_package_single_arg("${ARGV1}" ARGV0) + + set(ARGN "${ARGV0};EXCLUDE_FROM_ALL;YES;SYSTEM;YES;${ARGN}") + endif() + + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}") + + # Set default values for arguments + if(NOT DEFINED CPM_ARGS_VERSION) + if(DEFINED CPM_ARGS_GIT_TAG) + cpm_get_version_from_git_tag("${CPM_ARGS_GIT_TAG}" CPM_ARGS_VERSION) + endif() + endif() + + if(CPM_ARGS_DOWNLOAD_ONLY) + set(DOWNLOAD_ONLY ${CPM_ARGS_DOWNLOAD_ONLY}) + else() + set(DOWNLOAD_ONLY NO) + endif() + + if(DEFINED CPM_ARGS_GITHUB_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://github.com/${CPM_ARGS_GITHUB_REPOSITORY}.git") + elseif(DEFINED CPM_ARGS_GITLAB_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://gitlab.com/${CPM_ARGS_GITLAB_REPOSITORY}.git") + elseif(DEFINED CPM_ARGS_BITBUCKET_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://bitbucket.org/${CPM_ARGS_BITBUCKET_REPOSITORY}.git") + endif() + + if(DEFINED CPM_ARGS_GIT_REPOSITORY) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_REPOSITORY ${CPM_ARGS_GIT_REPOSITORY}) + if(NOT DEFINED CPM_ARGS_GIT_TAG) + set(CPM_ARGS_GIT_TAG v${CPM_ARGS_VERSION}) + endif() + + # If a name wasn't provided, try to infer it from the git repo + if(NOT DEFINED CPM_ARGS_NAME) + cpm_package_name_from_git_uri(${CPM_ARGS_GIT_REPOSITORY} CPM_ARGS_NAME) + endif() + endif() + + set(CPM_SKIP_FETCH FALSE) + + if(DEFINED CPM_ARGS_GIT_TAG) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_TAG ${CPM_ARGS_GIT_TAG}) + # If GIT_SHALLOW is explicitly specified, honor the value. + if(DEFINED CPM_ARGS_GIT_SHALLOW) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_SHALLOW ${CPM_ARGS_GIT_SHALLOW}) + endif() + endif() + + if(DEFINED CPM_ARGS_URL) + # If a name or version aren't provided, try to infer them from the URL + list(GET CPM_ARGS_URL 0 firstUrl) + cpm_package_name_and_ver_from_url(${firstUrl} nameFromUrl verFromUrl) + # If we fail to obtain name and version from the first URL, we could try other URLs if any. + # However multiple URLs are expected to be quite rare, so for now we won't bother. + + # If the caller provided their own name and version, they trump the inferred ones. + if(NOT DEFINED CPM_ARGS_NAME) + set(CPM_ARGS_NAME ${nameFromUrl}) + endif() + if(NOT DEFINED CPM_ARGS_VERSION) + set(CPM_ARGS_VERSION ${verFromUrl}) + endif() + + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS URL "${CPM_ARGS_URL}") + endif() + + # Check for required arguments + + if(NOT DEFINED CPM_ARGS_NAME) + message( + FATAL_ERROR + "${CPM_INDENT} 'NAME' was not provided and couldn't be automatically inferred for package added with arguments: '${ARGN}'" + ) + endif() + + # Check if package has been added before + cpm_check_if_package_already_added(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}") + if(CPM_PACKAGE_ALREADY_ADDED) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + # Check for manual overrides + if(NOT CPM_ARGS_FORCE AND NOT "${CPM_${CPM_ARGS_NAME}_SOURCE}" STREQUAL "") + set(PACKAGE_SOURCE ${CPM_${CPM_ARGS_NAME}_SOURCE}) + set(CPM_${CPM_ARGS_NAME}_SOURCE "") + CPMAddPackage( + NAME "${CPM_ARGS_NAME}" + SOURCE_DIR "${PACKAGE_SOURCE}" + EXCLUDE_FROM_ALL "${CPM_ARGS_EXCLUDE_FROM_ALL}" + SYSTEM "${CPM_ARGS_SYSTEM}" + PATCHES "${CPM_ARGS_PATCHES}" + OPTIONS "${CPM_ARGS_OPTIONS}" + SOURCE_SUBDIR "${CPM_ARGS_SOURCE_SUBDIR}" + DOWNLOAD_ONLY "${DOWNLOAD_ONLY}" + FORCE True + ) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + # Check for available declaration + if(NOT CPM_ARGS_FORCE AND NOT "${CPM_DECLARATION_${CPM_ARGS_NAME}}" STREQUAL "") + set(declaration ${CPM_DECLARATION_${CPM_ARGS_NAME}}) + set(CPM_DECLARATION_${CPM_ARGS_NAME} "") + CPMAddPackage(${declaration}) + cpm_export_variables(${CPM_ARGS_NAME}) + # checking again to ensure version and option compatibility + cpm_check_if_package_already_added(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}") + return() + endif() + + if(NOT CPM_ARGS_FORCE) + if(CPM_USE_LOCAL_PACKAGES OR CPM_LOCAL_PACKAGES_ONLY) + cpm_find_package(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}" ${CPM_ARGS_FIND_PACKAGE_ARGUMENTS}) + + if(CPM_PACKAGE_FOUND) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + if(CPM_LOCAL_PACKAGES_ONLY) + message( + SEND_ERROR + "${CPM_INDENT} ${CPM_ARGS_NAME} not found via find_package(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION})" + ) + endif() + endif() + endif() + + CPMRegisterPackage("${CPM_ARGS_NAME}" "${CPM_ARGS_VERSION}") + + if(DEFINED CPM_ARGS_GIT_TAG) + set(PACKAGE_INFO "${CPM_ARGS_GIT_TAG}") + elseif(DEFINED CPM_ARGS_SOURCE_DIR) + set(PACKAGE_INFO "${CPM_ARGS_SOURCE_DIR}") + else() + set(PACKAGE_INFO "${CPM_ARGS_VERSION}") + endif() + + if(DEFINED FETCHCONTENT_BASE_DIR) + # respect user's FETCHCONTENT_BASE_DIR if set + set(CPM_FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR}) + else() + set(CPM_FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/_deps) + endif() + + cpm_add_patches(${CPM_ARGS_PATCHES}) + + if(DEFINED CPM_ARGS_DOWNLOAD_COMMAND) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS DOWNLOAD_COMMAND ${CPM_ARGS_DOWNLOAD_COMMAND}) + elseif(DEFINED CPM_ARGS_SOURCE_DIR) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${CPM_ARGS_SOURCE_DIR}) + if(NOT IS_ABSOLUTE ${CPM_ARGS_SOURCE_DIR}) + # Expand `CPM_ARGS_SOURCE_DIR` relative path. This is important because EXISTS doesn't work + # for relative paths. + get_filename_component( + source_directory ${CPM_ARGS_SOURCE_DIR} REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + set(source_directory ${CPM_ARGS_SOURCE_DIR}) + endif() + if(NOT EXISTS ${source_directory}) + string(TOLOWER ${CPM_ARGS_NAME} lower_case_name) + # remove timestamps so CMake will re-download the dependency + file(REMOVE_RECURSE "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild") + endif() + elseif(CPM_SOURCE_CACHE AND NOT CPM_ARGS_NO_CACHE) + string(TOLOWER ${CPM_ARGS_NAME} lower_case_name) + set(origin_parameters ${CPM_ARGS_UNPARSED_ARGUMENTS}) + list(SORT origin_parameters) + if(CPM_ARGS_CUSTOM_CACHE_KEY) + # Application set a custom unique directory name + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${CPM_ARGS_CUSTOM_CACHE_KEY}) + elseif(CPM_USE_NAMED_CACHE_DIRECTORIES) + string(SHA1 origin_hash "${origin_parameters};NEW_CACHE_STRUCTURE_TAG") + cpm_get_shortest_hash( + "${CPM_SOURCE_CACHE}/${lower_case_name}" # source cache directory + "${origin_hash}" # Input hash + origin_hash # Computed hash + ) + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash}/${CPM_ARGS_NAME}) + else() + string(SHA1 origin_hash "${origin_parameters}") + cpm_get_shortest_hash( + "${CPM_SOURCE_CACHE}/${lower_case_name}" # source cache directory + "${origin_hash}" # Input hash + origin_hash # Computed hash + ) + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash}) + endif() + # Expand `download_directory` relative path. This is important because EXISTS doesn't work for + # relative paths. + get_filename_component(download_directory ${download_directory} ABSOLUTE) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${download_directory}) + + if(CPM_SOURCE_CACHE) + file(LOCK ${download_directory}/../cmake.lock) + endif() + + if(EXISTS ${download_directory}) + if(CPM_SOURCE_CACHE) + file(LOCK ${download_directory}/../cmake.lock RELEASE) + endif() + + cpm_store_fetch_properties( + ${CPM_ARGS_NAME} "${download_directory}" + "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build" + ) + cpm_get_fetch_properties("${CPM_ARGS_NAME}") + + if(DEFINED CPM_ARGS_GIT_TAG AND NOT (PATCH_COMMAND IN_LIST CPM_ARGS_UNPARSED_ARGUMENTS)) + # warn if cache has been changed since checkout + cpm_check_git_working_dir_is_clean(${download_directory} ${CPM_ARGS_GIT_TAG} IS_CLEAN) + if(NOT ${IS_CLEAN}) + message( + WARNING "${CPM_INDENT} Cache for ${CPM_ARGS_NAME} (${download_directory}) is dirty" + ) + endif() + endif() + + cpm_add_subdirectory( + "${CPM_ARGS_NAME}" + "${DOWNLOAD_ONLY}" + "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + "${${CPM_ARGS_NAME}_BINARY_DIR}" + "${CPM_ARGS_EXCLUDE_FROM_ALL}" + "${CPM_ARGS_SYSTEM}" + "${CPM_ARGS_OPTIONS}" + ) + set(PACKAGE_INFO "${PACKAGE_INFO} at ${download_directory}") + + # As the source dir is already cached/populated, we override the call to FetchContent. + set(CPM_SKIP_FETCH TRUE) + cpm_override_fetchcontent( + "${lower_case_name}" SOURCE_DIR "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + BINARY_DIR "${${CPM_ARGS_NAME}_BINARY_DIR}" + ) + + else() + # Enable shallow clone when GIT_TAG is not a commit hash. Our guess may not be accurate, but + # it should guarantee no commit hash get mis-detected. + if(NOT DEFINED CPM_ARGS_GIT_SHALLOW) + cpm_is_git_tag_commit_hash("${CPM_ARGS_GIT_TAG}" IS_HASH) + if(NOT ${IS_HASH}) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_SHALLOW TRUE) + endif() + endif() + + # remove timestamps so CMake will re-download the dependency + file(REMOVE_RECURSE ${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild) + set(PACKAGE_INFO "${PACKAGE_INFO} to ${download_directory}") + endif() + endif() + + if(NOT "${DOWNLOAD_ONLY}") + cpm_create_module_file(${CPM_ARGS_NAME} "CPMAddPackage(\"${ARGN}\")") + endif() + + if(CPM_PACKAGE_LOCK_ENABLED) + if((CPM_ARGS_VERSION AND NOT CPM_ARGS_SOURCE_DIR) OR CPM_INCLUDE_ALL_IN_PACKAGE_LOCK) + cpm_add_to_package_lock(${CPM_ARGS_NAME} "${ARGN}") + elseif(CPM_ARGS_SOURCE_DIR) + cpm_add_comment_to_package_lock(${CPM_ARGS_NAME} "local directory") + else() + cpm_add_comment_to_package_lock(${CPM_ARGS_NAME} "${ARGN}") + endif() + endif() + + cpm_message( + STATUS "${CPM_INDENT} Adding package ${CPM_ARGS_NAME}@${CPM_ARGS_VERSION} (${PACKAGE_INFO})" + ) + + if(NOT CPM_SKIP_FETCH) + # CMake 3.28 added EXCLUDE, SYSTEM (3.25), and SOURCE_SUBDIR (3.18) to FetchContent_Declare. + # Calling FetchContent_MakeAvailable will then internally forward these options to + # add_subdirectory. Up until these changes, we had to call FetchContent_Populate and + # add_subdirectory separately, which is no longer necessary and has been deprecated as of 3.30. + # A Bug in CMake prevents us to use the non-deprecated functions until 3.30.3. + set(fetchContentDeclareExtraArgs "") + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30.3") + if(${CPM_ARGS_EXCLUDE_FROM_ALL}) + list(APPEND fetchContentDeclareExtraArgs EXCLUDE_FROM_ALL) + endif() + if(${CPM_ARGS_SYSTEM}) + list(APPEND fetchContentDeclareExtraArgs SYSTEM) + endif() + if(DEFINED CPM_ARGS_SOURCE_SUBDIR) + list(APPEND fetchContentDeclareExtraArgs SOURCE_SUBDIR ${CPM_ARGS_SOURCE_SUBDIR}) + endif() + # For CMake version <3.28 OPTIONS are parsed in cpm_add_subdirectory + if(CPM_ARGS_OPTIONS AND NOT DOWNLOAD_ONLY) + foreach(OPTION ${CPM_ARGS_OPTIONS}) + cpm_parse_option("${OPTION}") + set(${OPTION_KEY} "${OPTION_VALUE}") + endforeach() + endif() + endif() + cpm_declare_fetch( + "${CPM_ARGS_NAME}" ${fetchContentDeclareExtraArgs} "${CPM_ARGS_UNPARSED_ARGUMENTS}" + ) + + cpm_fetch_package("${CPM_ARGS_NAME}" ${DOWNLOAD_ONLY} populated ${CPM_ARGS_UNPARSED_ARGUMENTS}) + if(CPM_SOURCE_CACHE AND download_directory) + file(LOCK ${download_directory}/../cmake.lock RELEASE) + endif() + if(${populated} AND ${CMAKE_VERSION} VERSION_LESS "3.30.3") + cpm_add_subdirectory( + "${CPM_ARGS_NAME}" + "${DOWNLOAD_ONLY}" + "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + "${${CPM_ARGS_NAME}_BINARY_DIR}" + "${CPM_ARGS_EXCLUDE_FROM_ALL}" + "${CPM_ARGS_SYSTEM}" + "${CPM_ARGS_OPTIONS}" + ) + endif() + cpm_get_fetch_properties("${CPM_ARGS_NAME}") + endif() + + set(${CPM_ARGS_NAME}_ADDED YES) + cpm_export_variables("${CPM_ARGS_NAME}") +endfunction() + +# Fetch a previously declared package +macro(CPMGetPackage Name) + if(DEFINED "CPM_DECLARATION_${Name}") + CPMAddPackage(NAME ${Name}) + else() + message(SEND_ERROR "${CPM_INDENT} Cannot retrieve package ${Name}: no declaration available") + endif() +endmacro() + +# export variables available to the caller to the parent scope expects ${CPM_ARGS_NAME} to be set +macro(cpm_export_variables name) + set(${name}_SOURCE_DIR + "${${name}_SOURCE_DIR}" + PARENT_SCOPE + ) + set(${name}_BINARY_DIR + "${${name}_BINARY_DIR}" + PARENT_SCOPE + ) + set(${name}_ADDED + "${${name}_ADDED}" + PARENT_SCOPE + ) + set(CPM_LAST_PACKAGE_NAME + "${name}" + PARENT_SCOPE + ) +endmacro() + +# declares a package, so that any call to CPMAddPackage for the package name will use these +# arguments instead. Previous declarations will not be overridden. +macro(CPMDeclarePackage Name) + if(NOT DEFINED "CPM_DECLARATION_${Name}") + set("CPM_DECLARATION_${Name}" "${ARGN}") + endif() +endmacro() + +function(cpm_add_to_package_lock Name) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + cpm_prettify_package_arguments(PRETTY_ARGN false ${ARGN}) + file(APPEND ${CPM_PACKAGE_LOCK_FILE} "# ${Name}\nCPMDeclarePackage(${Name}\n${PRETTY_ARGN})\n") + endif() +endfunction() + +function(cpm_add_comment_to_package_lock Name) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + cpm_prettify_package_arguments(PRETTY_ARGN true ${ARGN}) + file(APPEND ${CPM_PACKAGE_LOCK_FILE} + "# ${Name} (unversioned)\n# CPMDeclarePackage(${Name}\n${PRETTY_ARGN}#)\n" + ) + endif() +endfunction() + +# includes the package lock file if it exists and creates a target `cpm-update-package-lock` to +# update it +macro(CPMUsePackageLock file) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + get_filename_component(CPM_ABSOLUTE_PACKAGE_LOCK_PATH ${file} ABSOLUTE) + if(EXISTS ${CPM_ABSOLUTE_PACKAGE_LOCK_PATH}) + include(${CPM_ABSOLUTE_PACKAGE_LOCK_PATH}) + endif() + if(NOT TARGET cpm-update-package-lock) + add_custom_target( + cpm-update-package-lock COMMAND ${CMAKE_COMMAND} -E copy ${CPM_PACKAGE_LOCK_FILE} + ${CPM_ABSOLUTE_PACKAGE_LOCK_PATH} + ) + endif() + set(CPM_PACKAGE_LOCK_ENABLED true) + endif() +endmacro() + +# registers a package that has been added to CPM +function(CPMRegisterPackage PACKAGE VERSION) + list(APPEND CPM_PACKAGES ${PACKAGE}) + set(CPM_PACKAGES + ${CPM_PACKAGES} + CACHE INTERNAL "" + ) + set("CPM_PACKAGE_${PACKAGE}_VERSION" + ${VERSION} + CACHE INTERNAL "" + ) +endfunction() + +# retrieve the current version of the package to ${OUTPUT} +function(CPMGetPackageVersion PACKAGE OUTPUT) + set(${OUTPUT} + "${CPM_PACKAGE_${PACKAGE}_VERSION}" + PARENT_SCOPE + ) +endfunction() + +# declares a package in FetchContent_Declare +function(cpm_declare_fetch PACKAGE) + if(${CPM_DRY_RUN}) + cpm_message(STATUS "${CPM_INDENT} Package not declared (dry run)") + return() + endif() + + FetchContent_Declare(${PACKAGE} ${ARGN}) +endfunction() + +# returns properties for a package previously defined by cpm_declare_fetch +function(cpm_get_fetch_properties PACKAGE) + if(${CPM_DRY_RUN}) + return() + endif() + + set(${PACKAGE}_SOURCE_DIR + "${CPM_PACKAGE_${PACKAGE}_SOURCE_DIR}" + PARENT_SCOPE + ) + set(${PACKAGE}_BINARY_DIR + "${CPM_PACKAGE_${PACKAGE}_BINARY_DIR}" + PARENT_SCOPE + ) +endfunction() + +function(cpm_store_fetch_properties PACKAGE source_dir binary_dir) + if(${CPM_DRY_RUN}) + return() + endif() + + set(CPM_PACKAGE_${PACKAGE}_SOURCE_DIR + "${source_dir}" + CACHE INTERNAL "" + ) + set(CPM_PACKAGE_${PACKAGE}_BINARY_DIR + "${binary_dir}" + CACHE INTERNAL "" + ) +endfunction() + +# adds a package as a subdirectory if viable, according to provided options +function( + cpm_add_subdirectory + PACKAGE + DOWNLOAD_ONLY + SOURCE_DIR + BINARY_DIR + EXCLUDE + SYSTEM + OPTIONS +) + + if(NOT DOWNLOAD_ONLY AND EXISTS ${SOURCE_DIR}/CMakeLists.txt) + set(addSubdirectoryExtraArgs "") + if(EXCLUDE) + list(APPEND addSubdirectoryExtraArgs EXCLUDE_FROM_ALL) + endif() + if("${SYSTEM}" AND "${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.25") + # https://cmake.org/cmake/help/latest/prop_dir/SYSTEM.html#prop_dir:SYSTEM + list(APPEND addSubdirectoryExtraArgs SYSTEM) + endif() + if(OPTIONS) + foreach(OPTION ${OPTIONS}) + cpm_parse_option("${OPTION}") + set(${OPTION_KEY} "${OPTION_VALUE}") + endforeach() + endif() + set(CPM_OLD_INDENT "${CPM_INDENT}") + set(CPM_INDENT "${CPM_INDENT} ${PACKAGE}:") + add_subdirectory(${SOURCE_DIR} ${BINARY_DIR} ${addSubdirectoryExtraArgs}) + set(CPM_INDENT "${CPM_OLD_INDENT}") + endif() +endfunction() + +# downloads a previously declared package via FetchContent and exports the variables +# `${PACKAGE}_SOURCE_DIR` and `${PACKAGE}_BINARY_DIR` to the parent scope +function(cpm_fetch_package PACKAGE DOWNLOAD_ONLY populated) + set(${populated} + FALSE + PARENT_SCOPE + ) + if(${CPM_DRY_RUN}) + cpm_message(STATUS "${CPM_INDENT} Package ${PACKAGE} not fetched (dry run)") + return() + endif() + + FetchContent_GetProperties(${PACKAGE}) + + string(TOLOWER "${PACKAGE}" lower_case_name) + + if(NOT ${lower_case_name}_POPULATED) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30.3") + if(DOWNLOAD_ONLY) + # MakeAvailable will call add_subdirectory internally which is not what we want when + # DOWNLOAD_ONLY is set. Populate will only download the dependency without adding it to the + # build + FetchContent_Populate( + ${PACKAGE} + SOURCE_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-src" + BINARY_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build" + SUBBUILD_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild" + ${ARGN} + ) + else() + FetchContent_MakeAvailable(${PACKAGE}) + endif() + else() + FetchContent_Populate(${PACKAGE}) + endif() + set(${populated} + TRUE + PARENT_SCOPE + ) + endif() + + cpm_store_fetch_properties( + ${CPM_ARGS_NAME} ${${lower_case_name}_SOURCE_DIR} ${${lower_case_name}_BINARY_DIR} + ) + + set(${PACKAGE}_SOURCE_DIR + ${${lower_case_name}_SOURCE_DIR} + PARENT_SCOPE + ) + set(${PACKAGE}_BINARY_DIR + ${${lower_case_name}_BINARY_DIR} + PARENT_SCOPE + ) +endfunction() + +# splits a package option +function(cpm_parse_option OPTION) + string(REGEX MATCH "^[^ ]+" OPTION_KEY "${OPTION}") + string(LENGTH "${OPTION}" OPTION_LENGTH) + string(LENGTH "${OPTION_KEY}" OPTION_KEY_LENGTH) + if(OPTION_KEY_LENGTH STREQUAL OPTION_LENGTH) + # no value for key provided, assume user wants to set option to "ON" + set(OPTION_VALUE "ON") + else() + math(EXPR OPTION_KEY_LENGTH "${OPTION_KEY_LENGTH}+1") + string(SUBSTRING "${OPTION}" "${OPTION_KEY_LENGTH}" "-1" OPTION_VALUE) + endif() + set(OPTION_KEY + "${OPTION_KEY}" + PARENT_SCOPE + ) + set(OPTION_VALUE + "${OPTION_VALUE}" + PARENT_SCOPE + ) +endfunction() + +# guesses the package version from a git tag +function(cpm_get_version_from_git_tag GIT_TAG RESULT) + string(LENGTH ${GIT_TAG} length) + if(length EQUAL 40) + # GIT_TAG is probably a git hash + set(${RESULT} + 0 + PARENT_SCOPE + ) + else() + string(REGEX MATCH "v?([0123456789.]*).*" _ ${GIT_TAG}) + set(${RESULT} + ${CMAKE_MATCH_1} + PARENT_SCOPE + ) + endif() +endfunction() + +# guesses if the git tag is a commit hash or an actual tag or a branch name. +function(cpm_is_git_tag_commit_hash GIT_TAG RESULT) + string(LENGTH "${GIT_TAG}" length) + # full hash has 40 characters, and short hash has at least 7 characters. + if(length LESS 7 OR length GREATER 40) + set(${RESULT} + 0 + PARENT_SCOPE + ) + else() + if(${GIT_TAG} MATCHES "^[a-fA-F0-9]+$") + set(${RESULT} + 1 + PARENT_SCOPE + ) + else() + set(${RESULT} + 0 + PARENT_SCOPE + ) + endif() + endif() +endfunction() + +function(cpm_prettify_package_arguments OUT_VAR IS_IN_COMMENT) + set(oneValueArgs + NAME + FORCE + VERSION + GIT_TAG + DOWNLOAD_ONLY + GITHUB_REPOSITORY + GITLAB_REPOSITORY + BITBUCKET_REPOSITORY + GIT_REPOSITORY + SOURCE_DIR + FIND_PACKAGE_ARGUMENTS + NO_CACHE + SYSTEM + GIT_SHALLOW + EXCLUDE_FROM_ALL + SOURCE_SUBDIR + ) + set(multiValueArgs URL OPTIONS DOWNLOAD_COMMAND) + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + foreach(oneArgName ${oneValueArgs}) + if(DEFINED CPM_ARGS_${oneArgName}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + if(${oneArgName} STREQUAL "SOURCE_DIR") + string(REPLACE ${CMAKE_SOURCE_DIR} "\${CMAKE_SOURCE_DIR}" CPM_ARGS_${oneArgName} + ${CPM_ARGS_${oneArgName}} + ) + endif() + string(APPEND PRETTY_OUT_VAR " ${oneArgName} ${CPM_ARGS_${oneArgName}}\n") + endif() + endforeach() + foreach(multiArgName ${multiValueArgs}) + if(DEFINED CPM_ARGS_${multiArgName}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " ${multiArgName}\n") + foreach(singleOption ${CPM_ARGS_${multiArgName}}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " \"${singleOption}\"\n") + endforeach() + endif() + endforeach() + + if(NOT "${CPM_ARGS_UNPARSED_ARGUMENTS}" STREQUAL "") + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " ") + foreach(CPM_ARGS_UNPARSED_ARGUMENT ${CPM_ARGS_UNPARSED_ARGUMENTS}) + string(APPEND PRETTY_OUT_VAR " ${CPM_ARGS_UNPARSED_ARGUMENT}") + endforeach() + string(APPEND PRETTY_OUT_VAR "\n") + endif() + + set(${OUT_VAR} + ${PRETTY_OUT_VAR} + PARENT_SCOPE + ) + +endfunction() diff --git a/data/app/ios/bg128.png b/data/app/ios/bg128.png new file mode 100755 index 0000000..70e6aa1 Binary files /dev/null and b/data/app/ios/bg128.png differ diff --git a/data/app/ios/bg64.png b/data/app/ios/bg64.png new file mode 100755 index 0000000..58abd82 Binary files /dev/null and b/data/app/ios/bg64.png differ diff --git a/data/app/ios/dialog/cancel_0.png b/data/app/ios/dialog/cancel_0.png new file mode 100755 index 0000000..1e7215c Binary files /dev/null and b/data/app/ios/dialog/cancel_0.png differ diff --git a/data/app/ios/dialog/cancel_0_1.png b/data/app/ios/dialog/cancel_0_1.png new file mode 100755 index 0000000..c1c77de Binary files /dev/null and b/data/app/ios/dialog/cancel_0_1.png differ diff --git a/data/app/ios/dialog/cancel_0_3.png b/data/app/ios/dialog/cancel_0_3.png new file mode 100755 index 0000000..42227db Binary files /dev/null and b/data/app/ios/dialog/cancel_0_3.png differ diff --git a/data/app/ios/dialog/cancel_1.png b/data/app/ios/dialog/cancel_1.png new file mode 100755 index 0000000..fade487 Binary files /dev/null and b/data/app/ios/dialog/cancel_1.png differ diff --git a/data/app/ios/dialog/cancel_1_1.png b/data/app/ios/dialog/cancel_1_1.png new file mode 100755 index 0000000..70abbc7 Binary files /dev/null and b/data/app/ios/dialog/cancel_1_1.png differ diff --git a/data/app/ios/dialog/cancel_1_3.png b/data/app/ios/dialog/cancel_1_3.png new file mode 100755 index 0000000..3329d22 Binary files /dev/null and b/data/app/ios/dialog/cancel_1_3.png differ diff --git a/data/app/ios/dialog/create_0.png b/data/app/ios/dialog/create_0.png new file mode 100755 index 0000000..a311524 Binary files /dev/null and b/data/app/ios/dialog/create_0.png differ diff --git a/data/app/ios/dialog/create_0_1.png b/data/app/ios/dialog/create_0_1.png new file mode 100755 index 0000000..2ed050f Binary files /dev/null and b/data/app/ios/dialog/create_0_1.png differ diff --git a/data/app/ios/dialog/create_0_3.png b/data/app/ios/dialog/create_0_3.png new file mode 100755 index 0000000..ae26713 Binary files /dev/null and b/data/app/ios/dialog/create_0_3.png differ diff --git a/data/app/ios/dialog/create_1.png b/data/app/ios/dialog/create_1.png new file mode 100755 index 0000000..1f1a3da Binary files /dev/null and b/data/app/ios/dialog/create_1.png differ diff --git a/data/app/ios/dialog/create_1_1.png b/data/app/ios/dialog/create_1_1.png new file mode 100755 index 0000000..e34ea69 Binary files /dev/null and b/data/app/ios/dialog/create_1_1.png differ diff --git a/data/app/ios/dialog/create_1_3.png b/data/app/ios/dialog/create_1_3.png new file mode 100755 index 0000000..66f62c0 Binary files /dev/null and b/data/app/ios/dialog/create_1_3.png differ diff --git a/data/app/ios/dialog/ipad/cancel_0_4.png b/data/app/ios/dialog/ipad/cancel_0_4.png new file mode 100755 index 0000000..e902dcd Binary files /dev/null and b/data/app/ios/dialog/ipad/cancel_0_4.png differ diff --git a/data/app/ios/dialog/ipad/cancel_1_4.png b/data/app/ios/dialog/ipad/cancel_1_4.png new file mode 100755 index 0000000..b54fbd7 Binary files /dev/null and b/data/app/ios/dialog/ipad/cancel_1_4.png differ diff --git a/data/app/ios/dialog/ipad/create_0_4.png b/data/app/ios/dialog/ipad/create_0_4.png new file mode 100755 index 0000000..bfe8d8d Binary files /dev/null and b/data/app/ios/dialog/ipad/create_0_4.png differ diff --git a/data/app/ios/dialog/ipad/create_1_4.png b/data/app/ios/dialog/ipad/create_1_4.png new file mode 100755 index 0000000..c7bc56f Binary files /dev/null and b/data/app/ios/dialog/ipad/create_1_4.png differ diff --git a/data/app/ios/dialog/ipad/creative_0_4.png b/data/app/ios/dialog/ipad/creative_0_4.png new file mode 100755 index 0000000..89f8124 Binary files /dev/null and b/data/app/ios/dialog/ipad/creative_0_4.png differ diff --git a/data/app/ios/dialog/ipad/creative_1_4.png b/data/app/ios/dialog/ipad/creative_1_4.png new file mode 100755 index 0000000..b847443 Binary files /dev/null and b/data/app/ios/dialog/ipad/creative_1_4.png differ diff --git a/data/app/ios/dialog/ipad/creative_3_4.png b/data/app/ios/dialog/ipad/creative_3_4.png new file mode 100755 index 0000000..328db9d Binary files /dev/null and b/data/app/ios/dialog/ipad/creative_3_4.png differ diff --git a/data/app/ios/dialog/ipad/survival_0_4.png b/data/app/ios/dialog/ipad/survival_0_4.png new file mode 100755 index 0000000..d0ec675 Binary files /dev/null and b/data/app/ios/dialog/ipad/survival_0_4.png differ diff --git a/data/app/ios/dialog/ipad/survival_1_4.png b/data/app/ios/dialog/ipad/survival_1_4.png new file mode 100755 index 0000000..19f8325 Binary files /dev/null and b/data/app/ios/dialog/ipad/survival_1_4.png differ diff --git a/data/app/ios/dialog/ipad/survival_3_4.png b/data/app/ios/dialog/ipad/survival_3_4.png new file mode 100755 index 0000000..3d866f1 Binary files /dev/null and b/data/app/ios/dialog/ipad/survival_3_4.png differ diff --git a/data/app/ios/dialog/ipad/worldname_ipad_4.png b/data/app/ios/dialog/ipad/worldname_ipad_4.png new file mode 100755 index 0000000..736e914 Binary files /dev/null and b/data/app/ios/dialog/ipad/worldname_ipad_4.png differ diff --git a/data/app/ios/dialog/save_0.png b/data/app/ios/dialog/save_0.png new file mode 100755 index 0000000..03a89d6 Binary files /dev/null and b/data/app/ios/dialog/save_0.png differ diff --git a/data/app/ios/dialog/save_0_3.png b/data/app/ios/dialog/save_0_3.png new file mode 100755 index 0000000..cdcd88d Binary files /dev/null and b/data/app/ios/dialog/save_0_3.png differ diff --git a/data/app/ios/dialog/save_1.png b/data/app/ios/dialog/save_1.png new file mode 100755 index 0000000..5ee6184 Binary files /dev/null and b/data/app/ios/dialog/save_1.png differ diff --git a/data/app/ios/dialog/save_1_3.png b/data/app/ios/dialog/save_1_3.png new file mode 100755 index 0000000..c7b1fae Binary files /dev/null and b/data/app/ios/dialog/save_1_3.png differ diff --git a/data/app/ios/dialog/worldname_ipad.png b/data/app/ios/dialog/worldname_ipad.png new file mode 100755 index 0000000..afe50bb Binary files /dev/null and b/data/app/ios/dialog/worldname_ipad.png differ diff --git a/data/app/ios/dialog/worldname_ipad_3.png b/data/app/ios/dialog/worldname_ipad_3.png new file mode 100755 index 0000000..da5f34c Binary files /dev/null and b/data/app/ios/dialog/worldname_ipad_3.png differ diff --git a/data/app/ios/dialog/worldname_iphone.png b/data/app/ios/dialog/worldname_iphone.png new file mode 100755 index 0000000..1a3781a Binary files /dev/null and b/data/app/ios/dialog/worldname_iphone.png differ diff --git a/data/app/ios/dialog/worldname_iphone_3.png b/data/app/ios/dialog/worldname_iphone_3.png new file mode 100755 index 0000000..f65f34d Binary files /dev/null and b/data/app/ios/dialog/worldname_iphone_3.png differ diff --git a/data/app/ios/dialog2/cancel_0_1.png b/data/app/ios/dialog2/cancel_0_1.png new file mode 100755 index 0000000..c43434a Binary files /dev/null and b/data/app/ios/dialog2/cancel_0_1.png differ diff --git a/data/app/ios/dialog2/cancel_0_3.png b/data/app/ios/dialog2/cancel_0_3.png new file mode 100755 index 0000000..44f7b13 Binary files /dev/null and b/data/app/ios/dialog2/cancel_0_3.png differ diff --git a/data/app/ios/dialog2/cancel_1_1.png b/data/app/ios/dialog2/cancel_1_1.png new file mode 100755 index 0000000..abaa241 Binary files /dev/null and b/data/app/ios/dialog2/cancel_1_1.png differ diff --git a/data/app/ios/dialog2/cancel_1_3.png b/data/app/ios/dialog2/cancel_1_3.png new file mode 100755 index 0000000..304fc53 Binary files /dev/null and b/data/app/ios/dialog2/cancel_1_3.png differ diff --git a/data/app/ios/dialog2/create_0_1.png b/data/app/ios/dialog2/create_0_1.png new file mode 100755 index 0000000..4ebc3b2 Binary files /dev/null and b/data/app/ios/dialog2/create_0_1.png differ diff --git a/data/app/ios/dialog2/create_0_3.png b/data/app/ios/dialog2/create_0_3.png new file mode 100755 index 0000000..07fe661 Binary files /dev/null and b/data/app/ios/dialog2/create_0_3.png differ diff --git a/data/app/ios/dialog2/create_1_1.png b/data/app/ios/dialog2/create_1_1.png new file mode 100755 index 0000000..5db6202 Binary files /dev/null and b/data/app/ios/dialog2/create_1_1.png differ diff --git a/data/app/ios/dialog2/create_1_3.png b/data/app/ios/dialog2/create_1_3.png new file mode 100755 index 0000000..5b5fc4e Binary files /dev/null and b/data/app/ios/dialog2/create_1_3.png differ diff --git a/data/app/ios/dialog2/creative_0_3.png b/data/app/ios/dialog2/creative_0_3.png new file mode 100755 index 0000000..299e830 Binary files /dev/null and b/data/app/ios/dialog2/creative_0_3.png differ diff --git a/data/app/ios/dialog2/creative_1_3.png b/data/app/ios/dialog2/creative_1_3.png new file mode 100755 index 0000000..7cac499 Binary files /dev/null and b/data/app/ios/dialog2/creative_1_3.png differ diff --git a/data/app/ios/dialog2/survival_0_3.png b/data/app/ios/dialog2/survival_0_3.png new file mode 100755 index 0000000..c5174f7 Binary files /dev/null and b/data/app/ios/dialog2/survival_0_3.png differ diff --git a/data/app/ios/dialog2/survival_1_3.png b/data/app/ios/dialog2/survival_1_3.png new file mode 100755 index 0000000..a2a1eb6 Binary files /dev/null and b/data/app/ios/dialog2/survival_1_3.png differ diff --git a/data/app/ios/dialog2/worldname.png b/data/app/ios/dialog2/worldname.png new file mode 100755 index 0000000..b8f42a2 Binary files /dev/null and b/data/app/ios/dialog2/worldname.png differ diff --git a/data/app/ios/dialog2/worldname_3.png b/data/app/ios/dialog2/worldname_3.png new file mode 100755 index 0000000..adccd67 Binary files /dev/null and b/data/app/ios/dialog2/worldname_3.png differ diff --git a/data/app/ios/dialog2/worldname_ipad.png b/data/app/ios/dialog2/worldname_ipad.png new file mode 100755 index 0000000..afe50bb Binary files /dev/null and b/data/app/ios/dialog2/worldname_ipad.png differ diff --git a/data/app/ios/dialog2/worldname_ipad_3.png b/data/app/ios/dialog2/worldname_ipad_3.png new file mode 100755 index 0000000..da5f34c Binary files /dev/null and b/data/app/ios/dialog2/worldname_ipad_3.png differ diff --git a/data/app/ios/dialog2/worldname_iphone.png b/data/app/ios/dialog2/worldname_iphone.png new file mode 100755 index 0000000..509f439 Binary files /dev/null and b/data/app/ios/dialog2/worldname_iphone.png differ diff --git a/data/app/ios/dialog2/worldname_iphone5_3.png b/data/app/ios/dialog2/worldname_iphone5_3.png new file mode 100755 index 0000000..ab2b0ba Binary files /dev/null and b/data/app/ios/dialog2/worldname_iphone5_3.png differ diff --git a/data/app/ios/dialog2/worldname_iphone_3.png b/data/app/ios/dialog2/worldname_iphone_3.png new file mode 100755 index 0000000..7f65500 Binary files /dev/null and b/data/app/ios/dialog2/worldname_iphone_3.png differ diff --git a/data/app/ios/icons/Icon-72.png b/data/app/ios/icons/Icon-72.png new file mode 100755 index 0000000..d198911 Binary files /dev/null and b/data/app/ios/icons/Icon-72.png differ diff --git a/data/app/ios/icons/Icon-72_lite.png b/data/app/ios/icons/Icon-72_lite.png new file mode 100755 index 0000000..ad32eb3 Binary files /dev/null and b/data/app/ios/icons/Icon-72_lite.png differ diff --git a/data/app/ios/icons/Icon-Small-50.png b/data/app/ios/icons/Icon-Small-50.png new file mode 100755 index 0000000..4413190 Binary files /dev/null and b/data/app/ios/icons/Icon-Small-50.png differ diff --git a/data/app/ios/icons/Icon-Small-50_lite.png b/data/app/ios/icons/Icon-Small-50_lite.png new file mode 100755 index 0000000..fe2162d Binary files /dev/null and b/data/app/ios/icons/Icon-Small-50_lite.png differ diff --git a/data/app/ios/icons/Icon-Small.png b/data/app/ios/icons/Icon-Small.png new file mode 100755 index 0000000..65fe938 Binary files /dev/null and b/data/app/ios/icons/Icon-Small.png differ diff --git a/data/app/ios/icons/Icon-Small@2x.png b/data/app/ios/icons/Icon-Small@2x.png new file mode 100755 index 0000000..4218ed5 Binary files /dev/null and b/data/app/ios/icons/Icon-Small@2x.png differ diff --git a/data/app/ios/icons/Icon-Small@2x_lite.png b/data/app/ios/icons/Icon-Small@2x_lite.png new file mode 100755 index 0000000..5a790d0 Binary files /dev/null and b/data/app/ios/icons/Icon-Small@2x_lite.png differ diff --git a/data/app/ios/icons/Icon-Small_lite.png b/data/app/ios/icons/Icon-Small_lite.png new file mode 100755 index 0000000..7d50baa Binary files /dev/null and b/data/app/ios/icons/Icon-Small_lite.png differ diff --git a/data/app/ios/icons/Icon.png b/data/app/ios/icons/Icon.png new file mode 100755 index 0000000..05824c1 Binary files /dev/null and b/data/app/ios/icons/Icon.png differ diff --git a/data/app/ios/icons/Icon@2x.png b/data/app/ios/icons/Icon@2x.png new file mode 100755 index 0000000..6eea25c Binary files /dev/null and b/data/app/ios/icons/Icon@2x.png differ diff --git a/data/app/ios/icons/Icon@2x_lite.png b/data/app/ios/icons/Icon@2x_lite.png new file mode 100755 index 0000000..491c13a Binary files /dev/null and b/data/app/ios/icons/Icon@2x_lite.png differ diff --git a/data/app/ios/icons/Icon_lite.png b/data/app/ios/icons/Icon_lite.png new file mode 100755 index 0000000..22e4376 Binary files /dev/null and b/data/app/ios/icons/Icon_lite.png differ diff --git a/data/app/ios/icons/mcpe_ios_icon.png b/data/app/ios/icons/mcpe_ios_icon.png new file mode 100755 index 0000000..e70d4cc Binary files /dev/null and b/data/app/ios/icons/mcpe_ios_icon.png differ diff --git a/data/app/ios/icons/mcpe_lite_ios_icon.png b/data/app/ios/icons/mcpe_lite_ios_icon.png new file mode 100755 index 0000000..a6a6154 Binary files /dev/null and b/data/app/ios/icons/mcpe_lite_ios_icon.png differ diff --git a/data/app/launch/Default-Landscape~ipad.png b/data/app/launch/Default-Landscape~ipad.png new file mode 100755 index 0000000..a4a061c Binary files /dev/null and b/data/app/launch/Default-Landscape~ipad.png differ diff --git a/data/app/launch/Default.png b/data/app/launch/Default.png new file mode 100755 index 0000000..dd2702a Binary files /dev/null and b/data/app/launch/Default.png differ diff --git a/data/app/launch/Default@2x.png b/data/app/launch/Default@2x.png new file mode 100755 index 0000000..8bd9662 Binary files /dev/null and b/data/app/launch/Default@2x.png differ diff --git a/data/fonts/minecraft.ttf b/data/fonts/minecraft.ttf new file mode 100755 index 0000000..55c5075 Binary files /dev/null and b/data/fonts/minecraft.ttf differ diff --git a/data/images/armor/chain_1.png b/data/images/armor/chain_1.png new file mode 100755 index 0000000..3632af5 Binary files /dev/null and b/data/images/armor/chain_1.png differ diff --git a/data/images/armor/chain_2.png b/data/images/armor/chain_2.png new file mode 100755 index 0000000..330425b Binary files /dev/null and b/data/images/armor/chain_2.png differ diff --git a/data/images/armor/cloth_1.png b/data/images/armor/cloth_1.png new file mode 100755 index 0000000..f3cf4aa Binary files /dev/null and b/data/images/armor/cloth_1.png differ diff --git a/data/images/armor/cloth_2.png b/data/images/armor/cloth_2.png new file mode 100755 index 0000000..15fb908 Binary files /dev/null and b/data/images/armor/cloth_2.png differ diff --git a/data/images/armor/diamond_1.png b/data/images/armor/diamond_1.png new file mode 100755 index 0000000..339da65 Binary files /dev/null and b/data/images/armor/diamond_1.png differ diff --git a/data/images/armor/diamond_2.png b/data/images/armor/diamond_2.png new file mode 100755 index 0000000..c220c12 Binary files /dev/null and b/data/images/armor/diamond_2.png differ diff --git a/data/images/armor/gold_1.png b/data/images/armor/gold_1.png new file mode 100755 index 0000000..885f309 Binary files /dev/null and b/data/images/armor/gold_1.png differ diff --git a/data/images/armor/gold_2.png b/data/images/armor/gold_2.png new file mode 100755 index 0000000..9d1ea3b Binary files /dev/null and b/data/images/armor/gold_2.png differ diff --git a/data/images/armor/iron_1.png b/data/images/armor/iron_1.png new file mode 100755 index 0000000..374ab07 Binary files /dev/null and b/data/images/armor/iron_1.png differ diff --git a/data/images/armor/iron_2.png b/data/images/armor/iron_2.png new file mode 100755 index 0000000..53af4f4 Binary files /dev/null and b/data/images/armor/iron_2.png differ diff --git a/data/images/art/kz.png b/data/images/art/kz.png new file mode 100755 index 0000000..c40ca22 Binary files /dev/null and b/data/images/art/kz.png differ diff --git a/data/images/environment/clouds.png b/data/images/environment/clouds.png new file mode 100755 index 0000000..7ad7fa4 Binary files /dev/null and b/data/images/environment/clouds.png differ diff --git a/data/images/font/default8.png b/data/images/font/default8.png new file mode 100755 index 0000000..6179312 Binary files /dev/null and b/data/images/font/default8.png differ diff --git a/data/images/gui/background.png b/data/images/gui/background.png new file mode 100755 index 0000000..c8cadb4 Binary files /dev/null and b/data/images/gui/background.png differ diff --git a/data/images/gui/badge/minecon140.png b/data/images/gui/badge/minecon140.png new file mode 100755 index 0000000..dd95dec Binary files /dev/null and b/data/images/gui/badge/minecon140.png differ diff --git a/data/images/gui/bg32.png b/data/images/gui/bg32.png new file mode 100755 index 0000000..d9796c4 Binary files /dev/null and b/data/images/gui/bg32.png differ diff --git a/data/images/gui/cursor.png b/data/images/gui/cursor.png new file mode 100755 index 0000000..ec1012a Binary files /dev/null and b/data/images/gui/cursor.png differ diff --git a/data/images/gui/default_world.png b/data/images/gui/default_world.png new file mode 100755 index 0000000..17c9cdc Binary files /dev/null and b/data/images/gui/default_world.png differ diff --git a/data/images/gui/gui.png b/data/images/gui/gui.png new file mode 100755 index 0000000..0ae80b9 Binary files /dev/null and b/data/images/gui/gui.png differ diff --git a/data/images/gui/gui2.png b/data/images/gui/gui2.png new file mode 100755 index 0000000..34ae051 Binary files /dev/null and b/data/images/gui/gui2.png differ diff --git a/data/images/gui/gui_blocks.png b/data/images/gui/gui_blocks.png new file mode 100755 index 0000000..fa4df26 Binary files /dev/null and b/data/images/gui/gui_blocks.png differ diff --git a/data/images/gui/icons.png b/data/images/gui/icons.png new file mode 100755 index 0000000..8afc25a Binary files /dev/null and b/data/images/gui/icons.png differ diff --git a/data/images/gui/itemframe.png b/data/images/gui/itemframe.png new file mode 100755 index 0000000..8e23979 Binary files /dev/null and b/data/images/gui/itemframe.png differ diff --git a/data/images/gui/items.png b/data/images/gui/items.png new file mode 100755 index 0000000..ace2e9a Binary files /dev/null and b/data/images/gui/items.png differ diff --git a/data/images/gui/logo/raknet_high_72.png b/data/images/gui/logo/raknet_high_72.png new file mode 100755 index 0000000..fdd7d4e Binary files /dev/null and b/data/images/gui/logo/raknet_high_72.png differ diff --git a/data/images/gui/logo/raknet_low_18.png b/data/images/gui/logo/raknet_low_18.png new file mode 100755 index 0000000..1b9a869 Binary files /dev/null and b/data/images/gui/logo/raknet_low_18.png differ diff --git a/data/images/gui/pi_title.png b/data/images/gui/pi_title.png new file mode 100755 index 0000000..b31eed9 Binary files /dev/null and b/data/images/gui/pi_title.png differ diff --git a/data/images/gui/spritesheet.png b/data/images/gui/spritesheet.png new file mode 100755 index 0000000..b130262 Binary files /dev/null and b/data/images/gui/spritesheet.png differ diff --git a/data/images/gui/title.png b/data/images/gui/title.png new file mode 100755 index 0000000..5f2e4ff Binary files /dev/null and b/data/images/gui/title.png differ diff --git a/data/images/gui/touchgui.png b/data/images/gui/touchgui.png new file mode 100755 index 0000000..3d2221f Binary files /dev/null and b/data/images/gui/touchgui.png differ diff --git a/data/images/item/arrows.png b/data/images/item/arrows.png new file mode 100755 index 0000000..75c5828 Binary files /dev/null and b/data/images/item/arrows.png differ diff --git a/data/images/item/camera.png b/data/images/item/camera.png new file mode 100755 index 0000000..9725189 Binary files /dev/null and b/data/images/item/camera.png differ diff --git a/data/images/item/sign.png b/data/images/item/sign.png new file mode 100755 index 0000000..e829472 Binary files /dev/null and b/data/images/item/sign.png differ diff --git a/data/images/mob/char.png b/data/images/mob/char.png new file mode 100755 index 0000000..7cfa08a Binary files /dev/null and b/data/images/mob/char.png differ diff --git a/data/images/mob/chicken.png b/data/images/mob/chicken.png new file mode 100755 index 0000000..d481293 Binary files /dev/null and b/data/images/mob/chicken.png differ diff --git a/data/images/mob/cow.png b/data/images/mob/cow.png new file mode 100755 index 0000000..bc0e89f Binary files /dev/null and b/data/images/mob/cow.png differ diff --git a/data/images/mob/creeper.png b/data/images/mob/creeper.png new file mode 100755 index 0000000..e0a5e0a Binary files /dev/null and b/data/images/mob/creeper.png differ diff --git a/data/images/mob/pig.png b/data/images/mob/pig.png new file mode 100755 index 0000000..1ed505b Binary files /dev/null and b/data/images/mob/pig.png differ diff --git a/data/images/mob/pigzombie.png b/data/images/mob/pigzombie.png new file mode 100755 index 0000000..3521845 Binary files /dev/null and b/data/images/mob/pigzombie.png differ diff --git a/data/images/mob/sheep.png b/data/images/mob/sheep.png new file mode 100755 index 0000000..a6ed11d Binary files /dev/null and b/data/images/mob/sheep.png differ diff --git a/data/images/mob/sheep_fur.png b/data/images/mob/sheep_fur.png new file mode 100755 index 0000000..b00aa8c Binary files /dev/null and b/data/images/mob/sheep_fur.png differ diff --git a/data/images/mob/skeleton.png b/data/images/mob/skeleton.png new file mode 100755 index 0000000..9d22339 Binary files /dev/null and b/data/images/mob/skeleton.png differ diff --git a/data/images/mob/spider.png b/data/images/mob/spider.png new file mode 100755 index 0000000..08344a8 Binary files /dev/null and b/data/images/mob/spider.png differ diff --git a/data/images/mob/zombie.png b/data/images/mob/zombie.png new file mode 100755 index 0000000..4d47ccf Binary files /dev/null and b/data/images/mob/zombie.png differ diff --git a/data/images/particles.png b/data/images/particles.png new file mode 100755 index 0000000..de34f1b Binary files /dev/null and b/data/images/particles.png differ diff --git a/data/images/terrain.png b/data/images/terrain.png new file mode 100755 index 0000000..f14bbed Binary files /dev/null and b/data/images/terrain.png differ diff --git a/data/images/terrain.pvr b/data/images/terrain.pvr new file mode 100755 index 0000000..6cb2065 Binary files /dev/null and b/data/images/terrain.pvr differ diff --git a/data/images/terrain.pvr4 b/data/images/terrain.pvr4 new file mode 100755 index 0000000..6c32892 Binary files /dev/null and b/data/images/terrain.pvr4 differ diff --git a/data/images/terrain.pvrtc b/data/images/terrain.pvrtc new file mode 100755 index 0000000..0c45ab1 Binary files /dev/null and b/data/images/terrain.pvrtc differ diff --git a/data/images/terrain_4444.h b/data/images/terrain_4444.h new file mode 100755 index 0000000..c222eb9 --- /dev/null +++ b/data/images/terrain_4444.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.20 + * PVRTC Library v 1.106. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_4444[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00008010, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f000, /* dwRBitMask */ +0x00000f00, /* dwGBitMask */ +0x000000f0, /* dwBBitMask */ +0x0000000f, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x999f999f,0x888f999f,0x888f888f,0x888f777f,0x999f999f,0x888f888f,0x888f888f,0x888f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x964fb85f,0x753f964f,0xb85f753f,0x964f964f,0x753f753f,0x753f532f,0xb85f753f,0xb85f753f,0x7b4f7b4f,0x6a3f7b4f,0x6a4f6a3f,0x6a4f593f,0x7b4f7b5f,0x6a3f6a4f,0x6a3f6a3f,0x6a4f592f, +0x984fb96f,0x984f984f,0xb96f984f,0xb95fb96f,0xb96f984f,0xb96fb96f,0xb96fb96f,0x984fb96f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafcccf,0x888f888f,0x888f888f,0x888f888f,0x999f999f,0x999f777f,0x888f888f,0x888f888f,0x888f888f,0x943f943f,0xcccf943f,0x943f943f,0xa53f943f,0xa53f943f,0xdddf843f,0xa53f943f,0x943f943f, +0xc31fd41f,0xa31fb31f,0xc31fd41f,0xa31fb31f,0xc31fd41f,0xa31fb31f,0xc31fd41f,0xa31fb31f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x888f999f,0x999faaaf,0x888f999f,0x888f888f,0xaaaf777f,0x999faaaf,0x888f888f,0x888f888f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x964f753f,0x753f532f,0x964f753f,0x532f888f,0xb85f753f,0x753f964f,0x964f753f,0x532f532f,0x6a4f7b4f,0x8b5f8b5f,0x532f8b5f,0x6a3f6a3f,0x9c6f593f,0x7b4f9b6f,0x6a4f6a3f,0x6a4f6a3f, +0xb96fb96f,0x753fb95f,0xb95fb95f,0x984f984f,0x984f984f,0xb95f984f,0xb95f984f,0x984fb96f,0xaaafcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf,0xaaaf888f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf,0x732f732f,0xeeef842f,0x732fb54f,0x632f632f,0x732f732f,0xdddf842f,0x732f943f,0x732f732f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4c2f0000,0x00000000,0x00000000, +0xbbbfaaaf,0x888fbbbf,0x888f888f,0x999f999f,0x999f999f,0xaaafaaaf,0x777f888f,0xbbbf888f,0x666f777f,0x777f777f,0x777f666f,0x777f777f,0x777f888f,0x777f777f,0x888f777f,0x777f777f,0x753fb85f,0x532f753f,0x753fb85f,0x753f753f,0x753fb85f,0x753f753f,0x532f532f,0x753fb85f,0x532f8b5f,0x6a3f9c6f,0x532f6a3f,0x532f7b4f,0x7b5f7b4f,0x9c6f9c6f,0x592f532f,0x532f6a3f, +0xb96fb96f,0x984f984f,0x984f984f,0xb95fb95f,0xb96fb96f,0xb95fb96f,0xb96f753f,0x984fb96f,0x999fcccf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf,0x999f888f,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf,0x843f732f,0xdddf632f,0x732f943f,0x732f732f,0x732f732f,0xdddf732f,0x943f842f,0x843f732f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f555f,0x888fd41f,0x000f555f,0x555f000f,0x921f888f,0x555fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x4c2f4c2f,0x00000000,0x00000000,0x060f4c2f,0x0000060f,0x00000000, +0x888f777f,0x999f888f,0x999f999f,0x777f777f,0x888f777f,0x999f888f,0x888f888f,0x777f888f,0x888f777f,0x777f777f,0x666f777f,0x888f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f964f,0x753fb85f,0x532f964f,0xb85f753f,0x964f964f,0x964f753f,0xb85f753f,0x753f964f,0x666f532f,0x532f532f,0x532f7b4f,0x532f532f,0x532f593f,0x532f6a4f,0x532f753f,0x753f532f, +0x653f653f,0x753f653f,0x753f753f,0x753f753f,0x753f753f,0x653f653f,0x653f653f,0x753f753f,0xbbbfcccf,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xbbbf888f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x921fa31f,0x555f921f,0x921fa31f,0x921f555f,0x000f555f,0x921f921f,0x921f555f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x060f4c2f,0x4c2f0000,0x060f4c2f,0x060f0000,0x0000962f,0x00000000, +0x888faaaf,0x888faaaf,0xaaafaaaf,0xaaaf888f,0x777fbbbf,0xaaaf888f,0x777faaaf,0x888f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x753f964f,0xb85f964f,0x964f532f,0x753f753f,0x532f964f,0x666f753f,0x964f753f,0x753f532f,0x753f964f,0xb85f964f,0x964f532f,0x753f753f,0x532f532f,0x666f532f,0x964f753f,0x753f532f, +0x984fb96f,0x984f984f,0xb96f984f,0x984fb96f,0x984fb96f,0x753f984f,0xb95fb95f,0xb96fb95f,0xbbbfcccf,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf,0xbbbf888f,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf,0x943f843f,0x943f943f,0x943f943f,0xdddf943f,0xa53fa53f,0x943fa43f,0x943f943f,0xdddf943f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xd41fd41f,0xa31fd41f,0xd41f555f,0xa31f555f,0xd41f555f,0x000f000f,0xd41f555f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x4c2f0000,0x060f962f,0x0000060f,0x060f060f,0x962f530f,0x060f962f,0x00000000, +0x999f999f,0xaaaf777f,0x999f888f,0x999f999f,0x999f888f,0x888f888f,0x888f777f,0x999f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f666f,0x532f753f,0x964f964f,0x964f753f,0x532f532f,0x753f532f,0x532f753f,0x753f753f,0xb85f753f,0x532f753f,0x964f964f,0x964f753f,0x532f532f,0x753f532f,0x532f753f,0x753f753f,0xb85f753f, +0x984f984f,0xb95f753f,0xb95fb95f,0x984fb96f,0xb95fb95f,0xb95fb95f,0x984f984f,0x984f984f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x888f999f,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x888f999f,0x732f943f,0x732f943f,0x732f632f,0xdddf732f,0x732f943f,0x732f732f,0x732f632f,0xdddf732f, +0xdddfdddf,0xcccfdddf,0xdddfdddf,0xdddfdddf,0xdddfcccf,0xcccfdddf,0xdddfcccf,0xcccfdddf,0x888fd41f,0x921f888f,0x000fd41f,0x921f000f,0x888f555f,0x555f555f,0x888f000f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3bef0000,0x00003bef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f0000,0x060f530f,0x0000060f,0x962f060f,0x530f962f,0x962f530f,0x00000000, +0x999f777f,0x999faaaf,0x888f999f,0x777f888f,0x888f888f,0xaaafbbbf,0xaaaf999f,0x888f999f,0x888f888f,0x888f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x888f888f,0x666f888f,0x532fb85f,0x753f753f,0x753f888f,0xb85f753f,0x753fb85f,0xb85fb85f,0x964f753f,0x964f753f,0x532fb85f,0x753f753f,0x753f888f,0xb85f753f,0x753fb85f,0xb85fb85f,0x964f753f,0x964f753f, +0xb96fb96f,0xb95fb96f,0xb96fb96f,0x984fb96f,0x984f984f,0xb96f753f,0xb96fb96f,0xb96fb96f,0xbbbfcccf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0x777fbbbf,0xbbbf999f,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0x777fbbbf,0x522f943f,0x632f842f,0x632f732f,0xdddf732f,0x632fa53f,0x732f842f,0x732f732f,0xdddf732f, +0xdddfcccf,0x000f000f,0xcccf000f,0xcccf000f,0x000fdddf,0x000fcccf,0x000f000f,0xcccfdddf,0x888fd41f,0x555f555f,0x888fd41f,0x555f000f,0x555f000f,0x555f000f,0x000f555f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x379f3bef,0x39bf3acf,0x00003acf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x530f0000,0x530f962f,0x962f962f,0x060f530f,0x4c2f0000,0x0000060f, +0x888f888f,0x888f999f,0x777f999f,0x888faaaf,0xaaaf999f,0x888f888f,0xaaaf888f,0xaaaf777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x753fb85f,0xb85fb85f,0x964f964f,0x753f753f,0x532f964f,0x964f964f,0x753f753f,0x964f964f,0x753fb85f,0xb85fb85f,0x964f964f,0x753f753f,0x532f964f,0x964f964f,0x753f753f,0x964f964f, +0x753f753f,0x653f653f,0x653f653f,0x753f653f,0x753f753f,0x653f653f,0x653f653f,0x753f753f,0x888faaaf,0x888f888f,0x888f888f,0x888f888f,0x777f888f,0x888f888f,0x888f888f,0x888f888f,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf, +0xcccfcccf,0x000fcccf,0xcccfcccf,0x000f000f,0x000fcccf,0xcccfcccf,0xcccf000f,0xcccfcccf,0x921fa31f,0x921f921f,0x000f555f,0x000f000f,0x000f000f,0x921f555f,0x000fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3acf0000,0x3acf3acf,0x379f3bef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x4c2f0000,0x0000060f,0x962f530f,0x4c2f4c2f,0x00000000,0x060f4c2f,0x0000060f, +0x999f888f,0xaaafbbbf,0x888faaaf,0x999faaaf,0xaaafbbbf,0x999f888f,0x999f888f,0x777f777f,0x888f777f,0x666f888f,0x777f888f,0x777f777f,0x888f777f,0x888f888f,0x888f888f,0x888f888f,0x753f964f,0x964f753f,0x964f753f,0x532f753f,0x964f753f,0x753f964f,0x753f753f,0x753f532f,0x753f964f,0x964f753f,0x964f753f,0x532f753f,0x964f753f,0x753f964f,0x753f753f,0x753f532f, +0xb96fb96f,0xb96fb96f,0x753fb96f,0xb96f984f,0xb95fb96f,0xb95fb95f,0xb96fb96f,0x984fb96f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xbbbf888f,0x999fbbbf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0xbbbfbbbf,0xbbbfbbbf,0x999fbbbf,0x943fa43f,0xdddf943f,0x943f943f,0xb54fa53f,0x943fa43f,0xdddf943f,0x943f943f,0x732fb54f, +0xcccfcccf,0x000fcccf,0xcccfcccf,0xcccf000f,0x000f000f,0xcccfcccf,0xcccf000f,0xcccfcccf,0xd41fd41f,0xa31fd41f,0xd41fd41f,0x000f000f,0x555f000f,0x555fd41f,0x000f555f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x39bf3bef,0x379f379f,0x00003acf,0x00000000,0x00000000,0x00000000,0x00000000,0xcd0f0000,0x0000ff0f,0xbb0fff0f,0x0000ff0f,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f0000,0x962f0000,0x962f962f,0x060f060f,0x530f060f,0x060f0000,0x00000000, +0x888f999f,0x888fbbbf,0x999f888f,0x888faaaf,0x999f888f,0xaaaf999f,0xbbbf888f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0x777f888f,0x964f964f,0x753f532f,0x532f753f,0x753f532f,0x753f753f,0x753f753f,0xb85fb85f,0x964f753f,0x964f964f,0x753f532f,0x532f753f,0x753f532f,0x753f753f,0x753f753f,0xb85fb85f,0x964f753f, +0x984f984f,0x984f984f,0xb96f984f,0xb95fb95f,0x984f984f,0x753f984f,0x984fb96f,0x984f984f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0x888fbbbf,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0x888fbbbf,0x732f732f,0xcccf732f,0x732f943f,0x732f732f,0x843f842f,0xcccf732f,0x842f943f,0x732f732f, +0xaaafcccf,0x000faaaf,0xaaafcccf,0xcccf000f,0x000fcccf,0xcccfcccf,0xaaaf000f,0xcccfaaaf,0x888fd41f,0x555f555f,0x000f000f,0x000f000f,0x000f000f,0x921f888f,0x555f000f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x180f3acf,0x0000160f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcd0fcd0f,0x890fff0f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x962f060f,0x962f530f,0x060f962f,0x962f962f,0x962f962f,0x00004c2f, +0x999f999f,0xaaaf999f,0xbbbf888f,0x999f888f,0x777fcccf,0x888faaaf,0x888f888f,0x888f888f,0x777f777f,0x777f888f,0x888f777f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x964f964f,0xb85f753f,0x753fb85f,0x964fb85f,0xb85f532f,0x753fb85f,0x964f964f,0x753f888f,0x964f964f,0xb85f753f,0x753fb85f,0x964fb85f,0xb85f532f,0x753fb85f,0x964f964f,0x753f888f, +0xb95fb96f,0xb95fb95f,0xb96fb96f,0x984f984f,0x984f984f,0xb95fb95f,0xb95fb95f,0x984fb95f,0xaaafcccf,0xaaafbbbf,0xbbbfaaaf,0xaaafbbbf,0xaaaf999f,0xbbbfbbbf,0xaaafbbbf,0x888faaaf,0xaaaf888f,0xaaafbbbf,0xbbbfaaaf,0xaaafbbbf,0xaaaf999f,0xbbbfbbbf,0xaaafbbbf,0x888faaaf,0x732f843f,0xdddf842f,0x732f943f,0x732f522f,0x842f632f,0xdddf732f,0x732f943f,0x732f842f, +0xaaafaaaf,0xaaafcccf,0xcccfaaaf,0xaaafaaaf,0xcccfaaaf,0xaaafaaaf,0xaaafcccf,0xaaafaaaf,0x888fd41f,0x921f888f,0x000fd41f,0x000f000f,0x888f000f,0x921f555f,0x888f000f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x543f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xff0f0000,0xbb0fff0f,0x890f890f,0x0000cd0f,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x4c2f0000,0x530f060f,0x4c2f0000,0x530f060f,0x4c2f530f,0x0000060f,0x060f060f, +0xaaaf888f,0xaaaf888f,0x888f999f,0x888f999f,0x999f999f,0x777f888f,0x777f777f,0x888f777f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x888f777f,0x666f888f,0x753f964f,0x964f753f,0xb85f964f,0x964f753f,0x964f666f,0x753f964f,0x964f532f,0x532f753f,0x753f964f,0x964f753f,0xb85f964f,0x964f753f,0x964f666f,0x753f964f,0x964f532f,0x532f753f, +0x653f753f,0x753f753f,0x653f653f,0x753f653f,0x753f753f,0x753f753f,0x653f653f,0x753f653f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xbbbfaaaf,0x777fbbbf,0xaaaf777f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xbbbfaaaf,0x777fbbbf,0xbbbfbbbf,0xdddfaaaf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf, +0xa31fb31f,0x720f821f,0xa31fb31f,0x720f821f,0xa31fb31f,0x720f821f,0xa31fb31f,0x720f821f,0x921fa31f,0x921f921f,0x921f000f,0x921f000f,0x555f000f,0x000f921f,0x921f555f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x180f543f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f0000,0x0000180f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f4c2f,0x060f060f,0x060f0000,0x962f060f,0x0000530f,0x00000000,0x060f0000, +0x999fbbbf,0x888f888f,0x999f999f,0x777f888f,0x999f666f,0x777f888f,0xaaaf999f,0x888f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x532f753f,0x753f964f,0x964f964f,0x753fb85f,0x753f753f,0x753f753f,0x753f753f,0xb85fb85f,0x532f753f,0x753f964f,0x964f964f,0x753fb85f,0x753f753f,0x753f753f,0x753f753f,0xb85fb85f, +0xb96fb96f,0xb96fb96f,0x984fb96f,0x984fb96f,0x984f984f,0x984f984f,0x753fb95f,0xb96fb96f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xa43f943f,0x943fa53f,0x943f943f,0xcccf943f,0xb54f943f,0x943f943f,0x943f943f,0xeeef943f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xd41fd41f,0x555fd41f,0xd41fd41f,0xa31f555f,0x000f555f,0x555f000f,0xd41f555f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x160f0000,0x0000180f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f0000,0x180f160f,0x0000160f,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f060f,0x060f0000,0x530f0000,0x4c2f962f,0x00004c2f,0x00000000,0x00000000, +0xaaafbbbf,0x777f777f,0x888f777f,0xcccf888f,0xcccfaaaf,0x999faaaf,0x888faaaf,0xaaafaaaf,0x888f777f,0x888f777f,0x777f666f,0x777f777f,0x777f777f,0x777f666f,0x777f777f,0x888f888f,0x964f753f,0x753f753f,0x753f754f,0x964f964f,0x532f753f,0x532fb85f,0xb85f753f,0x964f964f,0x964f753f,0x753f753f,0x753f532f,0x964f964f,0x532f753f,0x532fb85f,0xb85f753f,0x964f964f, +0x984fb95f,0xb96f753f,0xb96fb96f,0x984fb96f,0xb95fb96f,0x984fb95f,0x984f984f,0xb95f984f,0xbbbfcccf,0xbbbfaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0x999fbbbf,0xbbbf888f,0xbbbfaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0x999fbbbf,0x732f943f,0x732f732f,0x732f732f,0xcccf632f,0x732f943f,0x732f732f,0x732f732f,0xdddf832f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f555f,0x888fd41f,0x921f888f,0x555fd41f,0x921f888f,0x555fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x543f180f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x160f0000,0x180f180f,0x160f160f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x962f0000,0x530f962f,0x0000060f,0x00000000,0x00000000, +0xaaafaaaf,0x777f888f,0xaaafbbbf,0x999f999f,0x999f777f,0x888f999f,0x999faaaf,0xaaaf888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x753f964f,0xb85f532f,0x532f753f,0x532f753f,0x753f753f,0x532f753f,0x753f753f,0x964f964f,0x753f964f,0xb85f532f,0x532f753f,0x532f753f,0x753f753f,0x532f753f,0x753f753f,0x964f964f, +0xb96fb96f,0x984f984f,0xb96f984f,0x984fb96f,0xb96fb96f,0xb95f984f,0xb96fb96f,0xb96fb96f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0x888faaaf,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0x888faaaf,0x521f943f,0x732f842f,0x732f732f,0xdddf732f,0x732f943f,0x732f732f,0x732f842f,0xdddf832f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x543f0000,0x0000160f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f160f,0x0000160f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x962f0000,0x530f962f,0x00000000,0x00000000,0x00000000, +0x999f888f,0x777f888f,0x999faaaf,0xbbbf999f,0xbbbf888f,0x888f777f,0x999f888f,0x999f888f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x753f964f,0x964fb85f,0x753f964f,0x964f888f,0x964f964f,0x753f753f,0x964f964f,0x532f753f,0x753f964f,0x964fb85f,0x753f964f,0x964f888f,0x964f964f,0x753f753f,0x964f964f,0x532f753f, +0x753f753f,0x763f753f,0x653f653f,0x653f763f,0x753f753f,0x653f753f,0x653f432f,0x753f653f,0x888faaaf,0x888f888f,0x999f777f,0x888f999f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x999f777f,0x888f999f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xcccfbbbf, +0xb31fc31f,0x921fa31f,0xb31fc31f,0x921fa31f,0xb31fc31f,0x921fa31f,0xb31fc31f,0x921fa31f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000160f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f0000,0x0000160f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x530f0000,0x530f962f,0x00000000,0x00000000,0x00000000, +0xbbbfbbbf,0xaaafbbbf,0x777f999f,0x555f666f,0xbbbf555f,0xbbbfbbbf,0x555f888f,0x888fbbbf,0x333f555f,0x333f333f,0x555f333f,0x999f999f,0x999f000f,0x333f555f,0x333f333f,0x555f333f,0xddaf995f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdc9f,0xddafedaf,0xdd9fdd9f,0xdc9fdc9f,0xdd9fcc8f,0xbbbf554f,0x988f656f,0x988f988f,0x656f988f,0x656f777f,0x988f988f,0xa99f887f,0x988f766f, +0x653f432f,0x974f653f,0x653f331f,0x432f974f,0x653f653f,0x763f653f,0x763f653f,0x974f653f,0x653f653f,0x653f321f,0x653f653f,0x321f321f,0x653f321f,0x321f653f,0x653f653f,0x653f653f,0xaaafaaaf,0xbbbfaaaf,0xdddfcccf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xeeefdddf,0xc81fc82f,0xda2fc91f,0xec3fdb2f,0xec3fed3f,0xec3fec3f,0xed4fed4f,0xed4fed4f,0xfe5ffd5f, +0x087f087f,0x098f087f,0x0bbf0aaf,0x0bbf0cbf,0x0bbf0bbf,0x0cbf0cbf,0x1ccf0ccf,0x4ddf1ccf,0x322f221f,0x322f322f,0x332f322f,0x332f332f,0x332f322f,0x332f332f,0x332f332f,0x221f332f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xbbbfbbbf,0x777f666f,0x555f222f,0xbbbfbbbf,0x777f555f,0x777f888f,0x333f999f,0x999f666f,0x555f555f,0x999f999f,0x999f999f,0x999f999f,0x999f333f,0x999f999f,0x555f000f,0x333f555f,0xdd9fddaf,0xedbfedaf,0xdc9fbb8f,0xdc9fdc9f,0xedafcb8f,0xdd9fffdf,0xdd9fdc9f,0xeeafdd9f,0x988f877f,0xbaaf988f,0xa9af878f,0x656f999f,0xbaafbaaf,0x988f665f,0xa99f544f,0x988f867f, +0x652f331f,0x321f653f,0x974f331f,0x653f432f,0x331f974f,0x974f653f,0x763f432f,0x974f432f,0xb95f653f,0xb95fb85f,0xb95fb95f,0xb95fb95f,0xb85fa85f,0xb95fb95f,0xb96fb95f,0x642fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xfe6fec4f,0xfe5ffe5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xec3fff4f, +0x6ddf0bbf,0x6edf6ddf,0x8eef8eef,0x8eef8eef,0x7edf7edf,0x8eef8eef,0x7edf7edf,0x0bbf7edf,0x862f332f,0x962f962f,0x962f962f,0x752f752f,0x752f752f,0x962f752f,0x962f752f,0x322f862f,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x777f555f,0x222f777f,0xbbbf555f,0x888fbbbf,0x222f333f,0x777f888f,0x555f333f,0x888f555f,0x000f555f,0x333f333f,0x333f000f,0x333f333f,0x333f999f,0x555f555f,0x999f555f,0x555f555f,0xeebfedaf,0xdc9ffecf,0xdd9fdd9f,0xdd9fdd9f,0xedafdd9f,0xedbfedaf,0xcc9fcc8f,0xfecfdc9f,0x766f876f,0xbaaf656f,0x888fbaaf,0x877fbbbf,0x544f656f,0xcbbf666f,0x876fcbbf,0x656f656f, +0x542f321f,0x432f642f,0x974f653f,0x653f331f,0x321f974f,0x763f653f,0x763f432f,0x974f432f,0xb95f321f,0x984f984f,0x974f984f,0x984f984f,0x984fa85f,0x984f984f,0xa85f984f,0x653fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff6fed4f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff4fff5f,0xff4fff4f,0xec2fff3f, +0x8eef0cbf,0x8eef8eef,0x8eef9eef,0x8eef8eef,0x8eef8eef,0x8eef8eef,0x6ddf7edf,0x0bbf5ddf,0x962f332f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x322f962f,0xa72f433f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x221fa72f,0xa72f433f,0x861f861f,0x861f861f,0x851fa72f,0xa72f862f,0xa72fa72f,0xa72fa61f,0x221fa72f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x444f777f,0x555f333f,0x666fbbbf,0x777f999f,0x555f333f,0x333f333f,0xaaaf555f,0x555fbbbf,0x999f555f,0x555f555f,0x000f555f,0x999f555f,0x555f555f,0x333f333f,0x333f333f,0x555f333f,0xdc9fcc8f,0xddafdd9f,0xddafdc9f,0xcc9fdc9f,0xdc9fdc9f,0xedafdd9f,0xdd9fdd9f,0xbb8fdd9f,0x777f888f,0xbaafbbbf,0x988f988f,0x656f877f,0x888f888f,0x766f998f,0x766f766f,0xa99fbaaf, +0x432f653f,0x432f642f,0x763f763f,0x653f331f,0x321f974f,0x974f653f,0x974f331f,0x763f432f,0xb95f653f,0xb95fa85f,0xb96fb96f,0xb96fb96f,0xb95fb96f,0xb95fb96f,0x984fb96f,0x321fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xffffffff,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff4fff4f,0xff4fff4f,0xec3fff4f, +0x9eef0cbf,0x8eef9eef,0x9eef8eef,0x9eef9eef,0x8eef9eef,0x8eef8eef,0x7edf7edf,0x0bbf7edf,0x862f322f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x322f962f,0xa62f433f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x221fa61f,0xa62f433f,0xa61fa62f,0xa61fa61f,0xcccf851f,0x851faaaf,0xa62fa62f,0xa62fa62f,0x221fa61f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0xbbbfbbbf,0x555f555f,0x888fbbbf,0x333f888f,0xaaaf555f,0x999f999f,0x777f555f,0x555faaaf,0x999f555f,0x333f999f,0x333f333f,0x333f333f,0x333f333f,0x999f999f,0x999f999f,0x000f999f,0xdc9fedaf,0xdc9fedbf,0xedbfedbf,0xedbfedaf,0xcc9fedaf,0xedafdc9f,0xcb8fdc9f,0xcc8fddaf,0xa99f656f,0x544f544f,0x555f999f,0x656f777f,0x766f999f,0xaaaf655f,0x888f988f,0x988faaaf, +0x432f653f,0x653f653f,0x763f763f,0x653f653f,0x432f653f,0x974f653f,0x974f331f,0x763f321f,0xb85f432f,0xb96f984f,0xb95fb95f,0xb95fb95f,0xb95fb95f,0xb95fb95f,0x984fb96f,0x653fb95f,0xffffdddf,0xeeefeeef,0xffffeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff5fff5f,0xff4fff4f,0xff5fff4f,0xff5fff5f,0xff4fff4f,0xff4fff4f,0xed3fff4f, +0x9eef0cbf,0x9eef8eef,0x9eef8eef,0x9eef9eef,0x9eef9eef,0x7edf8eef,0x7edf7edf,0x0cbf7edf,0x752f332f,0x861f861f,0xa72f861f,0x861fa72f,0x861fa72f,0xa61f861f,0xa72fa72f,0x332f962f,0x752f433f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x221f962f,0x752f433f,0x752f752f,0x962f752f,0xcccf752f,0x531f888f,0x962f752f,0x962f962f,0x221f962f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x888f777f,0x555f777f,0x888f777f,0x333f777f,0xcccfaaaf,0x888f777f,0x555f666f,0x333f222f,0x333f333f,0x555f555f,0x333f555f,0x333f333f,0x000f555f,0x555f555f,0x333f333f,0x555f000f,0xddafcc8f,0xffffcc9f,0xeeafdc9f,0xddafddaf,0xfebfdd9f,0xcb8fdd9f,0xdc9fcc9f,0xcb8fdd9f,0xbbbf999f,0xa99f767f,0xaaaf778f,0x444f877f,0x765f444f,0xbbbf877f,0x555fcbcf,0x444f666f, +0x542f653f,0x653f653f,0x653f974f,0x653f653f,0x331f653f,0x864f653f,0x763f331f,0x653f432f,0xb95f321f,0xb96f984f,0x984fb95f,0xa85fa85f,0x984f984f,0xb95f984f,0x984fb95f,0x653fb95f,0xffffdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff4fff5f,0xff4fff4f,0xff4fff4f,0xff5fff5f,0xff4fff4f,0xff4fff4f,0xed3fff4f, +0x9eef0cbf,0x6ddf9eef,0x8eef6ddf,0x8eef8eef,0x8eef8eef,0x8eef8eef,0x7edf8eef,0x0cbf7edf,0x752f322f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0xa72fa72f,0x861f861f,0x322f752f,0x322f432f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x111f322f,0x322f432f,0x332f322f,0x332f332f,0xaaaf221f,0x221f777f,0x332f332f,0x322f322f,0x111f322f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00f0000, +0x777f777f,0x555f777f,0x333f666f,0x666f333f,0x888f666f,0x777faaaf,0x777f777f,0x555f777f,0x999f999f,0x666f555f,0x333f555f,0x999f999f,0x555f555f,0x555f555f,0x999f999f,0x000f999f,0xddafbb7f,0xdd9fcb9f,0xedafbb8f,0xdc9fdd9f,0xdd9fdc9f,0xffcfedbf,0xedafdd9f,0xdcafddaf,0xa99fa99f,0x988f777f,0xa99f988f,0xbaaf878f,0x766f998f,0x444f877f,0x888f444f,0x656f888f, +0x763f653f,0x653f432f,0x642f974f,0x321f653f,0x321f974f,0x542f763f,0x763f321f,0x653f331f,0xb95f321f,0xb96f984f,0x984fb95f,0xb96fb96f,0xb96fb96f,0xb95f984f,0x984fb95f,0x321fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff4fff5f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xec3fff4f, +0x9eef0cbf,0x8eef8eef,0x7edf8eef,0x8eef8eef,0x8eef8eef,0x8eef8eef,0x7edf8eef,0x0cbf6edf,0x962f332f,0xa72fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0xa72fa61f,0xa72fa72f,0x332f962f,0x753f433f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x221f753f,0x753f433f,0x752f753f,0x753f753f,0x999f642f,0x431f777f,0x753f752f,0x753f753f,0x221f753f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x555f333f,0xbbbfaaaf,0x555f555f,0x444f555f,0x888f333f,0x333f777f,0xcccf666f,0x555f555f,0x333f555f,0x333f333f,0x333f333f,0x000f333f,0x333f333f,0x333f333f,0x555f555f,0xdd9fdd9f,0xdd9fedaf,0xdc9fdd9f,0xffbfedaf,0xdc9fddaf,0xdc9fdd9f,0xedafddaf,0xedafdc9f,0x656f656f,0xbbbfbbbf,0x888faaaf,0x444f988f,0xa88f656f,0x656f888f,0x666f877f,0x767f778f, +0x974f653f,0x653f331f,0x331f974f,0x432f974f,0x321f974f,0x432f763f,0x763f653f,0x653f331f,0xb95f321f,0xca6f984f,0x984fb95f,0xb95fb96f,0xb96fb95f,0xa85fa84f,0x984fb96f,0x753fb95f,0xffffdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff6fed3f,0xff4fff5f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xec3fff3f, +0x9eef0cbf,0x8eef8eef,0x6ddf6ddf,0x6ddf6ddf,0x6edf6ddf,0x7edf7edf,0x7edf8eef,0x0bbf5ddf,0x962f322f,0xa62fa62f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x322f962f,0x962f432f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x221f852f,0x962f432f,0x862f862f,0x862f862f,0x641f741f,0x751f641f,0x862f862f,0x862f862f,0x221f852f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x222f777f,0xbbbf555f,0x777fbbbf,0xbbbf666f,0x777faaaf,0x444f555f,0x222f333f,0xbbbfcccf,0x999f555f,0x000f999f,0x333f999f,0x555f555f,0x999f555f,0x999f999f,0x999f999f,0x999f999f,0xddafedaf,0xedafeebf,0xdc9fedaf,0xddafedbf,0xffdffebf,0xdd9fcb8f,0xdcafdc9f,0xdd9fdc9f,0x555f666f,0x544f544f,0x988f988f,0x877faa9f,0x655f999f,0x988f656f,0x656fbaaf,0x566f988f, +0x974f653f,0x753f331f,0x432f974f,0x432f653f,0x432f653f,0x321f974f,0x653f653f,0x763f331f,0xb95f653f,0xb96fa95f,0x984fb95f,0xb95fb96f,0xb96fb95f,0xb95f984f,0x984fb96f,0x653fb95f,0xffffdddf,0xeeefffff,0xeeefffff,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xcccfeeef,0xff6fed4f,0xff4fff6f,0xff4fff6f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xfe3fff4f,0xec2ffe3f, +0x9eef0cbf,0x8eefaeef,0x6ddfaeef,0x6ddf6ddf,0x6ddf6ddf,0x6ddf6ddf,0x5ddf6ddf,0x0bbf3dcf,0x962f332f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x322f962f,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x555f888f,0xbbbfbbbf,0x333f888f,0x666fbbbf,0x999fbbbf,0x555f999f,0xcccf555f,0x777f777f,0x333f555f,0x333f333f,0x333f333f,0x555f333f,0x555f000f,0x333f555f,0x333f333f,0x555f999f,0xba7fcb8f,0xdd9fedaf,0xddafdd9f,0xdc9fedaf,0xdd9fdd9f,0xeebfdd9f,0xedafdd9f,0xeeafcb8f,0x656f988f,0xaaafaaaf,0x656f877f,0xcbcfcbcf,0x877f444f,0x765fbbbf,0x988f877f,0x444f666f, +0x974f653f,0x653f432f,0x974f653f,0x653f432f,0x321f653f,0x432f974f,0x974f653f,0x763f432f,0xb95f653f,0xb96f984f,0x974fb85f,0xb96fb96f,0xb96fb96f,0xb95f984f,0x984fb96f,0x653fb95f,0xffffdddf,0xeeefffff,0xffffffff,0xffffeeef,0xffffffff,0xffffffff,0xeeefffff,0xdddfeeef,0xff6fed4f,0xff4fff6f,0xff6fff6f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xec3fff4f, +0x9eef0cbf,0x8eefaeef,0x9eef9eef,0x9eef9eef,0x9eef9eef,0x9eef9eef,0x8eef9eef,0x0cbf8eef,0x752f322f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x322f752f,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0xaaaf555f,0x777f777f,0x333f777f,0x999fbbbf,0x777f777f,0x333f888f,0x555f555f,0x888f999f,0x555f555f,0x333f999f,0x999f333f,0x333f999f,0x333f000f,0x999f999f,0x555f999f,0x555f555f,0xedafddaf,0xedafaa6f,0xeebfcc8f,0xdcafdd9f,0xfebffebf,0xdc9feeaf,0xdd9fdd9f,0xdd9fdd9f,0xbaaf656f,0x444fbaaf,0x544fa88f,0x766f665f,0x766f988f,0x988f656f,0x776f877f,0x655fbbbf, +0x763f432f,0x653f432f,0x974f653f,0x642f321f,0x542f331f,0x432f975f,0x974f653f,0x974f432f,0xb85f653f,0xb95f984f,0x984fb95f,0x984f984f,0x984f984f,0xb95f984f,0x984fb96f,0x653fb95f,0xffffdddf,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xeeefffff,0xcccfeeef,0xff7fed4f,0xff7fff7f,0xff6fff6f,0xff6fff6f,0xff6fff6f,0xff5fff5f,0xff5fff5f,0xec3ffe4f, +0xaeef0cbf,0xaeefaeef,0xaeefaeef,0xaeefaeef,0xaeefaeef,0xaeef9eef,0x8eef9eef,0x0baf6ddf,0x962f332f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x322f962f,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f, +0x00000000,0x00000000,0x00000000,0xf22ff22f,0xe11ff22f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc97fc97f,0x965fc97f,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x555f555f,0x777faaaf,0x333f666f,0x888f777f,0x777f999f,0x555f333f,0x555faaaf,0x333f555f,0x555f000f,0x555f555f,0x555f333f,0x555f555f,0x999f999f,0x555f555f,0x999f555f,0x000f999f,0xedafcc9f,0xcb9fedaf,0xdc9fddaf,0xdd9fdd9f,0xdd9fddaf,0xffcfdd9f,0xdc9fdc9f,0xbb7fdc9f,0xbaaf656f,0x655fbaaf,0x888f765f,0x555f777f,0x544fa99f,0x544faaaf,0x656f655f,0x988f777f, +0x763f331f,0x653f331f,0x974f653f,0x974f432f,0x542f321f,0x331f974f,0x974f653f,0x974f321f,0xb85f321f,0xb96f984f,0xb95fb85f,0xb85fb95f,0xb95fb95f,0xb95fb95f,0xa85fb96f,0x652fb95f,0xffffdddf,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xeeefffff,0xeeefeeef,0xcccfdddf,0xff7fed5f,0xff7fff7f,0xff7fff7f,0xff6fff7f,0xff6fff6f,0xff5fff6f,0xfe4ffe4f,0xeb2ffd4f, +0xaeef0cbf,0xaeefaeef,0xaeefaeef,0xaeefaeef,0x9eefaeef,0x8eef9eef,0x3dcf5ddf,0x0baf2dcf,0x862f322f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x322f862f,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f, +0x00000000,0x00000000,0xf22f0000,0xe11fffff,0xc12fe11f,0x0000911f,0x00000000,0x00000000,0x00000000,0x00000000,0xc97f0000,0x965fc97f,0x965f965f,0x0000754f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000,0xf00ff00f, +0xbbbfbbbf,0x333f333f,0x333f333f,0x777f666f,0x333f444f,0x999fbbbf,0x777f777f,0x555f555f,0x333f555f,0x333f333f,0x333f333f,0x333f333f,0x999f999f,0x333f333f,0x333f333f,0x555f333f,0xddafeebf,0xeebfdc9f,0xdc9fddaf,0xbb7fedaf,0xdd9fcb8f,0xdc9fdd9f,0xedafedaf,0xdc9fdc9f,0xa99fbaaf,0x545f988f,0xbaafbaaf,0x877fa9af,0x999faaaf,0xaaaf877f,0x554fa99f,0x887f877f, +0x974f321f,0x653f321f,0x974f653f,0x653f321f,0x652f331f,0x321f974f,0x642f653f,0x974f432f,0xb95f321f,0xb96f984f,0xb95fb96f,0xb96fb96f,0xb96fb96f,0xb96fb96f,0x984fb96f,0x321fb95f,0xffffdddf,0xffffffff,0xffffffff,0xffffffff,0xeeefffff,0xeeefeeef,0xdddfdddf,0xcccfdddf,0xff7fed5f,0xff7fff7f,0xff7fff7f,0xff6fff6f,0xff6fff6f,0xfe4fff5f,0xfd3ffd3f,0xeb2ffd3f, +0xaeef0cbf,0xaeefaeef,0xaeefaeef,0xaeefaeef,0x8eef9eef,0x5ddf7edf,0x0ccf1ccf,0x0baf0cbf,0x962f332f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x332f962f,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f, +0x00000000,0x00000000,0xe11ff22f,0xe11fe11f,0xcccfe11f,0x911f911f,0x00000000,0x00000000,0x00000000,0x00000000,0x965f0000,0x965f965f,0x754f965f,0x0000754f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x0000f00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777fbbbf,0xbbbf777f,0xbbbfaaaf,0x333f555f,0xcccf666f,0x777faaaf,0x777f999f,0x333f888f,0x999f555f,0x999f333f,0x555f000f,0x333f555f,0x333f333f,0x333f000f,0x555f555f,0x999f999f,0xedafffdf,0xba7fcc8f,0xdc9fdc9f,0xfebfdc9f,0xfebfedaf,0xddafedaf,0xdd9fedaf,0xdc9fedaf,0x998fbaaf,0xbaafbbbf,0x877fa99f,0xaaaf999f,0x877f888f,0x988f999f,0xb99f555f,0x544fbbbf, +0x653f432f,0x653f542f,0x763f653f,0x653f432f,0x642f653f,0x331f653f,0x974f653f,0x321f974f,0xb95f321f,0x984f974f,0x984fa85f,0x984f984f,0xa84f974f,0xa85f984f,0xa85fa85f,0x321fb85f,0xffffdddf,0xeeefffff,0xffffffff,0xffffffff,0xeeefeeef,0xeeefeeef,0xdddfdddf,0xcccfdddf,0xff6fed4f,0xff6fff6f,0xff6fff6f,0xff6fff6f,0xff5fff5f,0xfe3ffe4f,0xfd3ffd3f,0xeb2ffd3f, +0xaeef0cbf,0x9eef9eef,0xaeefaeef,0x9eefaeef,0x7edf8eef,0x2dcf4ddf,0x0ccf1ccf,0x0baf0ccf,0x752f332f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x332f752f,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f, +0x00000000,0x00000000,0xe11fcccf,0xcccfc12f,0x911fc12f,0x999f911f,0x00000000,0x00000000,0x00000000,0x00000000,0x965f0000,0x754f754f,0x754f754f,0x0000754f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x0000f00f,0x0000f60f,0x00000000,0xf60f0000,0x0000f60f,0xf00ff00f, +0x888f777f,0xaaaf444f,0x777f888f,0x555f777f,0x555f555f,0x999f777f,0x999f888f,0x333f333f,0x555f555f,0x333f555f,0x333f333f,0x333f333f,0x555f555f,0x999f999f,0x333f555f,0x555f333f,0xdcafedaf,0xcc9fdc9f,0xdc9fddaf,0xedafdd9f,0xddafba7f,0xdd9fbb7f,0xcb9fedaf,0xedafcc9f,0x776f998f,0x877f666f,0x999f656f,0x544f877f,0xbaafbbbf,0xa99f887f,0x655f877f,0x877f766f, +0x653f321f,0x432f974f,0x763f653f,0x331f432f,0x653f974f,0x321f974f,0x763f652f,0x653f331f,0xb95f432f,0xb95fb95f,0xb95fb95f,0xa85fa85f,0xb95fb95f,0xb95fa85f,0xb95fb95f,0x653fb95f,0xffffdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xdddfdddf,0xcccfdddf,0xff5fed4f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xfd3ffe4f,0xfc2ffd3f,0xeb2ffc2f, +0x9eef0cbf,0x7edf8eef,0x8eef8eef,0x7edf8eef,0x6edf7edf,0x0ccf3dcf,0x0cbf0cbf,0x0a9f0cbf,0x862f332f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x332f862f,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f, +0x00000000,0x00000000,0xc12f0000,0x911f911f,0x911f911f,0x0000911f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x655f0000,0x0000443f,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0xf60ff00f,0xf60ff00f,0x0000f00f,0xf00f0000,0xf00ff60f,0xf60ff00f,0xf00ff00f, +0x777f777f,0x444f777f,0x222f222f,0x555f333f,0x888faaaf,0x555f555f,0x444f444f,0x666f333f,0x333f333f,0x333f333f,0x999f000f,0x555f999f,0x555f555f,0x333f555f,0x333f333f,0x555f555f,0xedafdc9f,0xcb8fdd9f,0xddafffdf,0xeebfcc8f,0xfebfdd9f,0xdc9fdc9f,0xdd9fdc9f,0xcc8fdd9f,0x988f544f,0xa99f444f,0x656f988f,0x988f544f,0x544f544f,0xa98f444f,0x656fbaaf,0x999fb88f, +0x653f542f,0x331f763f,0x653f642f,0x432f653f,0x653f653f,0x321f653f,0x653f653f,0x763f652f,0x653f653f,0x653f321f,0x653f653f,0x653f321f,0x653f653f,0x653f653f,0x321f321f,0x653f321f,0xeeefeeef,0xeeefeeef,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xcccfdddf,0xff4fff4f,0xfe4ffe4f,0xfd3ffd3f,0xfc3ffd3f,0xfd3ffc3f,0xfc3ffc3f,0xfc3ffc3f,0xfb3ffc3f, +0x6ddf7edf,0x4ddf5ddf,0x1ccf2dcf,0x0cbf0cbf,0x0ccf0cbf,0x0cbf0cbf,0x0cbf0cbf,0x0bbf0bbf,0x322f221f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f, +0x00000000,0x00000000,0x00000000,0x744f0000,0x0000522f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x655f0000,0x0000443f,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0xb96fb96f,0xb95fb96f,0xb96fb96f,0x984fb96f,0x984f984f,0xb96f753f,0xb96fb96f,0x984fb96f, +0xbbbfbbbf,0xaaafbbbf,0x777f999f,0x141f242f,0xbbbf555f,0xbbbfbbbf,0x555f888f,0x888fbbbf,0x111f111f,0x001f111f,0x111f001f,0x001f001f,0x000f111f,0x111f001f,0x111f112f,0x111f000f,0x324f436f,0x038f000f,0x325f018f,0x112f325f,0x001f112f,0x000f038f,0x112f112f,0x112f000f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x221f433f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f,0x110f110f,0x110f000f,0x110f110f,0x000f000f,0x110f000f,0x000f110f,0x110f110f,0x110f110f, +0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x221fb96f,0x211f211f,0x211f211f,0x570f781f,0x221f221f,0x211f211f,0x211f211f,0x984f221f, +0xbbbfbbbf,0x777f666f,0x141f222f,0x383f383f,0x777f141f,0x777f888f,0x121f999f,0x999f666f,0x111f001f,0x000f000f,0x111f000f,0x111f001f,0x325f000f,0x111f111f,0x000f111f,0x111f335f,0x324f436f,0x038f213f,0x325f018f,0x112f325f,0x325f112f,0x324f325f,0x001f324f,0x325f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x861f861f,0x861f861f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f,0xb95f110f,0x221fb85f,0xa74fa74f,0xa74fa74f,0xa74fa64f,0xa74fa74f,0xb96f221f,0x110fb95f, +0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x666f777f,0x777f777f,0x777ffe4f,0x777f777f,0x777f888f,0x777f777f,0xfe4fffbf,0x777f777f,0x666f777f,0x777f777f,0x777fb98f,0x777f777f,0x777f888f,0x777f777f,0xb98fda9f,0x777f777f,0x666f777f,0x777f777f,0x777f333f,0x777f777f,0x777f888f,0x777f777f,0x333f333f,0x777f777f,0xb11fb96f,0x221f911f,0x247f358f,0x570f781f,0x321f321f,0x781f321f,0x321f570f,0x984f431f, +0x777f141f,0x121f777f,0x383f141f,0x262fbbbf,0x010f333f,0x777f888f,0x141f121f,0x888f141f,0x000f111f,0x335f325f,0x001f335f,0x000f001f,0x112f335f,0x001f111f,0x335f000f,0x111f112f,0x324f000f,0x038f038f,0x213f213f,0x112f112f,0x112f000f,0x213f213f,0x325f324f,0x038f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x531fa72f,0xa72f531f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x221fa72f,0xb95f000f,0xa63f211f,0x963fa63f,0xa63fa63f,0xa63fa74f,0xa63fa63f,0x221fa63f,0x110fb95f, +0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x555f222f,0x555f777f,0x555f666f,0x777f555f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x888f777f,0x777f777f,0x666f777f,0xffbf777f,0x777ffa2f,0x777f777f,0x777f777f,0x777f777f,0x888f777f,0x777f777f,0x666f777f,0xda9f777f,0x777fa87f,0x777f777f,0x777f777f,0x777f777f,0x888f777f,0x777f777f,0x666f777f,0x333f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0xbbbf653f,0x186f888f,0x247f358f,0x570f781f,0x911fb11f,0x781f321f,0x186f570f,0x753f065f, +0x131f252f,0x141f121f,0x252fbbbf,0x777f999f,0x141f333f,0x333f121f,0xaaaf141f,0x141fbbbf,0x000f001f,0x212f112f,0x111f001f,0x436f111f,0x112f112f,0x111f001f,0x001f000f,0x111f111f,0x324f000f,0x018f038f,0x000f112f,0x324f436f,0x325f325f,0x213f112f,0x112f001f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f433f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0xcccf851f,0x851faaaf,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x221fa61f,0x221f110f,0x532fa64f,0x532f421f,0x532f532f,0x421f421f,0x532f532f,0xa63f532f,0x000f221f, +0x555f222f,0x666f555f,0x222f666f,0x333f333f,0x222f222f,0x444f222f,0x888f666f,0x222f666f,0x555f222f,0x666f555f,0x666f999f,0x888f888f,0x666f555f,0x555f555f,0x888f666f,0x222f666f,0x555f222f,0xcccf555f,0x555fcccf,0x666f555f,0x666f666f,0xcccf666f,0x888fcccf,0x222f666f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0xb11fb96f,0x186f911f,0x247f358f,0x333f444f,0x911fb11f,0x781f321f,0xbbbf570f,0xb96f888f, +0xbbbfbbbf,0x141f555f,0x888fbbbf,0x333f888f,0x373f141f,0x373f999f,0x777f141f,0x555faaaf,0x000f001f,0x111f112f,0x111f111f,0x111f001f,0x001f000f,0x001f111f,0x001f112f,0x111f111f,0x112f000f,0x018f038f,0x000f112f,0x213f436f,0x038f214f,0x213f038f,0x112f001f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x752f433f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0xcccf752f,0x531f888f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x221f962f,0xa74f100f,0x532fa63f,0xa53f953f,0xa74f532f,0x421fa74f,0xb74f953f,0xa63f532f,0x110fa74f, +0x777f333f,0x444f777f,0x000f333f,0x000f000f,0x000f000f,0x333f000f,0x888f555f,0x222f777f,0x777f333f,0x666f777f,0x777f888f,0x555f777f,0x888f666f,0x999f999f,0x888f777f,0x222f777f,0x777f333f,0xbbbf888f,0xbbbfbbbf,0x555f333f,0x888f888f,0xbbbfcccf,0x777fbbbf,0x222f777f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x777f777f,0x777f777f,0xffff777f,0x777fffbf,0x666f777f,0xffbfffff,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0xecaf777f,0x777fda9f,0x666f777f,0xda9fecaf,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0x444f777f,0x777f333f,0x666f777f,0x333f444f,0x777f777f,0x777f666f,0xb11f984f,0x186f911f,0x247f358f,0x333f444f,0xb11f431f,0x781f911f,0x186f570f,0x984f065f, +0x888f777f,0x141f777f,0x888f252f,0x121f777f,0xcccf383f,0x262f777f,0x555f666f,0x121f121f,0x111f111f,0x001f111f,0x000f000f,0x000f000f,0x001f111f,0x111f000f,0x111f111f,0x001f001f,0x112f000f,0x018f038f,0x436f112f,0x213f436f,0x038f213f,0x213f018f,0x325f001f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x322f432f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0xaaaf221f,0x221f777f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x111f322f,0xa74f000f,0x532fa63f,0xa63fa74f,0x952f421f,0x431fa63f,0x953f852f,0xa63f532f,0x110fa74f, +0x555f222f,0x222f777f,0x000f000f,0x000f000f,0x000f000f,0x000f000f,0x666faaaf,0x222f333f,0x555f222f,0x666f777f,0x777f777f,0x555f777f,0x999f999f,0x888f777f,0x666f777f,0x222f333f,0x555f222f,0x777f777f,0xbbbfbbbf,0x666f888f,0xcccf555f,0x777fbbbf,0x666f777f,0x222f333f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00f0000, +0x888f888f,0xffff777f,0xfe4fffbf,0xfa2ffe4f,0x777f777f,0xfa2ffe4f,0x888f888f,0x666f888f,0x888f888f,0xecaf777f,0xb98fda9f,0xa87fb98f,0x777f777f,0xa87fb98f,0x888f888f,0x666f888f,0x888f888f,0x444f777f,0x333f333f,0x333f333f,0x777f777f,0x333f333f,0x888f888f,0x666f888f,0xb11fb96f,0x186f911f,0x247f358f,0x570f781f,0xb11f321f,0x781f911f,0x186f570f,0xb96f065f, +0x777f777f,0x141f262f,0x121f252f,0x242f333f,0x363f242f,0x262faaaf,0x777f777f,0x555f262f,0x111f111f,0x111f111f,0x335f335f,0x335f335f,0x000f001f,0x001f335f,0x000f000f,0x001f000f,0x112f325f,0x018f038f,0x111f112f,0x111f436f,0x038f111f,0x325f018f,0x213f324f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x753f433f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x999f642f,0x431f777f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x221f753f,0xa74f000f,0x532fa63f,0x431f532f,0x532f532f,0x532f421f,0x421f431f,0xa63f532f,0x000fa74f, +0x666f333f,0x222f777f,0x000f000f,0x111f000f,0x111f111f,0x000f111f,0x888faaaf,0x222f666f,0x666f333f,0x666f777f,0x555f777f,0x777f666f,0x888f777f,0x777f888f,0x888f888f,0x222f666f,0x666f333f,0x666f777f,0x666f555f,0x555f555f,0x666f555f,0x666f777f,0x888f555f,0x222f666f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x753f753f,0x653f653f,0x653f653f,0x753f653f,0x753f753f,0x653f653f,0x653f653f,0x753f753f, +0x777f777f,0x141f121f,0xbbbf383f,0x131f141f,0x131f242f,0x888f333f,0x333f777f,0xcccf242f,0x111f111f,0x001f000f,0x112f111f,0x112f112f,0x000f111f,0x000f112f,0x335f324f,0x112f112f,0x112f000f,0x018f213f,0x111f112f,0x325f325f,0x038f111f,0x213f018f,0x000f213f,0x112f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f432f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x641f741f,0x751f641f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x221f852f,0xa74f000f,0x532fa63f,0xa63fa74f,0xa74f532f,0x532fa74f,0xa64fa63f,0xa63f532f,0x110fa74f, +0x555f222f,0x222f555f,0xbbbf777f,0xaaafaaaf,0xaaafaaaf,0x666faaaf,0x555faaaf,0x333f555f,0x555f222f,0x666f555f,0x888f888f,0x666f666f,0x555f666f,0x777f555f,0x555f888f,0x333f555f,0x555f222f,0x666f666f,0x444f777f,0x888f444f,0x555f888f,0x444f666f,0x555f666f,0x333f555f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0xffbf777f,0x666ffe4f,0x777f888f,0x777f777f,0xffbfffff,0x888f888f,0x888f888f,0x888f888f,0xda9f777f,0x666fb98f,0x777f888f,0x777f777f,0xda9fecaf,0x888f888f,0x888f888f,0x888f888f,0x333f777f,0x666f333f,0x777f888f,0x777f777f,0x333f444f,0x888f888f,0x888f888f,0x888f888f,0x984fb96f,0x984f984f,0xb96f984f,0xb95fb95f,0x984f984f,0x753f984f,0x984fb96f,0x984f984f, +0x010f777f,0xbbbf141f,0x262f383f,0xbbbf252f,0x262faaaf,0x131f242f,0x222f131f,0xbbbfcccf,0x000f001f,0x112f335f,0x111f001f,0x112f213f,0x001f111f,0x000f111f,0x112f112f,0x111f001f,0x112f000f,0x018f213f,0x111f112f,0x038f038f,0x038f111f,0x001f018f,0x000f038f,0x112f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa74f110f,0x532f953f,0xa63fa74f,0xa74f532f,0x532fa74f,0xa74fa63f,0xa63f532f,0x110fb74f, +0x444f222f,0x888f777f,0x555f555f,0x555f444f,0x555f555f,0x444f555f,0x555f777f,0x333f777f,0x444f222f,0x888f777f,0x777f999f,0x999f777f,0x888f999f,0x666f777f,0x555f666f,0x333f777f,0x444f222f,0x888f777f,0x555f555f,0x222f888f,0x666f222f,0x666f555f,0x555f777f,0x333f777f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x777f777f,0x777f777f,0xffbf777f,0xfa2ffa2f,0x777ffa2f,0x777f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0xda9f777f,0xa87fa87f,0x777fa87f,0x777f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x777f333f,0x777f777f,0x777f888f,0x211f984f,0x211f211f,0x211f211f,0x221f211f,0x221f221f,0x211f211f,0x247f358f,0x984f221f, +0x555f888f,0xbbbfbbbf,0x121f262f,0x666fbbbf,0x373fbbbf,0x141f999f,0xcccf555f,0x777f777f,0x111f001f,0x111f111f,0x111f111f,0x212f111f,0x001f001f,0x001f001f,0x001f112f,0x111f111f,0x000f000f,0x213f213f,0x324f112f,0x018f038f,0x038f111f,0x324f325f,0x000f038f,0x112f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f,0xb74f110f,0x421f842f,0x431f532f,0x532f532f,0x532f421f,0x532f431f,0xa63f532f,0x110fa74f, +0x888f444f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0x333f888f,0x888f444f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0x333f888f,0x888f444f,0xcccfcccf,0xcccfcccf,0x000f222f,0x222f000f,0xcccfcccf,0xcccfcccf,0x333f888f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x777f888f,0x888ffe4f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x777f777f,0x777f888f,0x888fb98f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x777f777f,0x777f888f,0x888f333f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x211fb96f,0x321f321f,0x911fb11f,0x321f321f,0xa90f321f,0x221f870f,0x247f358f,0x984f321f, +0x383f555f,0x777f777f,0x333f777f,0x999fbbbf,0x262f777f,0x333f888f,0x555f242f,0x888f999f,0x111f111f,0x001f111f,0x111f001f,0x001f001f,0x000f111f,0x112f001f,0x001f111f,0x111f111f,0x112f324f,0x112f112f,0x213f000f,0x018f038f,0x038f213f,0x038f038f,0x000f038f,0x112f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa74f110f,0x421fa63f,0xa63f953f,0xa63f431f,0x421f852f,0xb74fa63f,0xa63f532f,0x110fa74f, +0x777f444f,0xbbbfbbbf,0x777fbbbf,0x444f444f,0x444f333f,0xbbbf777f,0xaaaf999f,0x333f777f,0x777f444f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x333f777f,0x777f444f,0xbbbfbbbf,0xbbbfaaaf,0x111f222f,0x222f111f,0xbbbfcccf,0xaaaf999f,0x333f777f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xffbf777f,0x888ffa2f,0x666f888f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xda9f777f,0x888fa87f,0x666f888f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x333f777f,0x888f333f,0x666f888f,0x830f753f,0x620f730f,0x911fb11f,0x431f321f,0xbbbf570f,0x911f888f,0x247f358f,0x753f186f, +0x141f141f,0x777f373f,0x333f666f,0x888f777f,0x777f999f,0x131f121f,0x141f383f,0x333f141f,0x000f112f,0x111f000f,0x001f001f,0x001f111f,0x335f000f,0x111f001f,0x435f000f,0x111f112f,0x112f214f,0x325f213f,0x213f000f,0x018f038f,0x325f213f,0x018f038f,0x000f038f,0x112f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f,0xa74f000f,0x532fa63f,0xb74f953f,0xa74f532f,0x532fa74f,0xb74f953f,0xa64f532f,0x110fa74f, +0x777f444f,0x777faaaf,0x333f333f,0x000f000f,0x000f000f,0x333f333f,0xaaaf777f,0x333f777f,0x777f444f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x333f777f,0x777f444f,0xbbbfaaaf,0xbbbfbbbf,0x111fbbbf,0xcccf111f,0xbbbfaaaf,0xaaafbbbf,0x333f777f,0xf00ff00f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xffffffbf,0xfe4fffbf,0xfa2ffe4f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xecafda9f,0xb98fda9f,0xa87fb98f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x444f333f,0x333f333f,0x333f333f,0x777f777f,0x830fb96f,0x620f730f,0x911fb11f,0x321f358f,0xbbbf570f,0x911f888f,0x247f358f,0xb96f186f, +0xbbbfbbbf,0x121f121f,0x121f121f,0x777f242f,0x121f131f,0x999fbbbf,0x777f262f,0x141f141f,0x335f111f,0x212f325f,0x000f001f,0x001f101f,0x325f000f,0x111f112f,0x111f111f,0x001f001f,0x112f213f,0x000f112f,0x000f000f,0x213f038f,0x324f213f,0x018f038f,0x324f000f,0x214f213f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x861fa72f,0x861f861f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f,0x221f000f,0x532fa63f,0x421f532f,0x532f532f,0x532f532f,0x532f532f,0xa63f532f,0x000f221f, +0x777f444f,0x333f777f,0x000f000f,0x000f000f,0x000f000f,0x000f000f,0xbbbf444f,0x222f777f,0x777f444f,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfbbbf,0x222f777f,0x777f444f,0xbbbfbbbf,0xaaafbbbf,0xcccfbbbf,0xaaafcccf,0xbbbfbbbf,0xbbbfaaaf,0x222f777f,0xf60ff00f,0x0000f00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x888f777f,0xffbf777f,0x777ffa2f,0x777f777f,0xfa2f777f,0x777ffa2f,0x777f777f,0x888f888f,0x888f777f,0xda9f777f,0x777fa87f,0x777f777f,0xa87f777f,0x777fa87f,0x777f777f,0x888f888f,0x888f777f,0x333f777f,0x777f333f,0x777f777f,0x333f777f,0x777f333f,0x777f777f,0x888f888f,0x830fb95f,0x620f730f,0x911fb11f,0x570f358f,0xa90f321f,0x911f870f,0x247f358f,0xb95f186f, +0x777fbbbf,0xbbbf252f,0xbbbf383f,0x333f141f,0xcccf242f,0x777faaaf,0x777f999f,0x333f888f,0x111f002f,0x112f112f,0x000f111f,0x111f112f,0x213f000f,0x112f112f,0x111f111f,0x111f001f,0x000f112f,0x325f112f,0x324f325f,0x213f213f,0x325f111f,0x018f038f,0x000f325f,0x213f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x861fa72f,0xa72fa72f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f,0xb95f000f,0xa63f211f,0xa63fa64f,0xa63fa63f,0xa63f963f,0xa64fa63f,0x221fa74f,0x000fb85f, +0x777f444f,0x000f333f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0xbbbf000f,0x333f777f,0x777f444f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x333f777f,0x777f444f,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafbbbf,0x333f777f,0xf60ff00f,0x00000000,0x0000f00f,0x0000f60f,0x00000000,0xf60f0000,0x0000f60f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x830fb96f,0x620f730f,0x911fb11f,0x570f358f,0xa90f431f,0x911f870f,0x247f358f,0xb96f186f, +0x888f777f,0xaaaf131f,0x777f888f,0x141f777f,0x141f141f,0x999f777f,0x999f888f,0x121f333f,0x111f111f,0x112f111f,0x111f111f,0x001f001f,0x112f000f,0x112f112f,0x111f112f,0x001f001f,0x324f000f,0x213f325f,0x038f038f,0x324f213f,0x213f111f,0x214f038f,0x000f213f,0x112f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x752f962f,0x962f962f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f,0xb95f100f,0x221fb95f,0xb74fa74f,0xa64fa64f,0xa74fa74f,0xa74fa64f,0xb95f221f,0x110fb95f, +0x777f444f,0x111f333f,0x222f222f,0x222f222f,0x222f222f,0x222f222f,0xbbbf111f,0x222f777f,0x777f444f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x222f777f,0x777f444f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x222f777f,0xf60ff00f,0xf60ff00f,0xf60ff00f,0x0000f00f,0xf00f0000,0xf00ff60f,0xf60ff00f,0xf00ff00f, +0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x753f753f,0x763f753f,0x653f653f,0x653f763f,0x753f753f,0x653f753f,0x653f432f,0x753f653f, +0x777f777f,0x131f777f,0x010f020f,0x141f121f,0x888f383f,0x242f555f,0x131f131f,0x666f121f,0x001f111f,0x001f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f001f,0x436f436f,0x213f000f,0x018f038f,0x324f112f,0x213f111f,0x213f038f,0x325f112f,0x112f000f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f,0x110f110f,0x110f000f,0x521f110f,0x521f421f,0x521f521f,0x110f521f,0x000f000f,0x110f000f, +0x666f333f,0x222f333f,0x222f222f,0x222f222f,0x222f222f,0x222f222f,0xaaaf222f,0x333f666f,0x333f333f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x333f333f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f333f,0x333f333f,0x222f222f,0x333f222f,0x333f333f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f, +0xcc4fdd4f,0xcc4fbb2f,0xcc4fcc4f,0xcc4fcc4f,0xcc4fdd5f,0xee4f550f,0xcc4fdd5f,0xcc4fcc4f,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xcfffffff,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f, +0x0000999f,0x999faaaf,0x0000555f,0x00000000,0x0000777f,0x00000000,0x555f0000,0xaaaf0000,0x222f999f,0x999faaaf,0x222f555f,0x222f222f,0x222f777f,0x222f222f,0x555f222f,0xaaaf222f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x221f433f,0x433f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f,0x984f110f,0x984f984f,0x221f984f,0x521fb74f,0xb74f521f,0xb96f221f,0xb96fb96f,0x110fb96f, +0x984f110f,0x984f984f,0x221f984f,0x521fb74f,0xb74f521f,0xb96f221f,0xb96fb96f,0x110fb96f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x330fcc3f,0xcc4fee4f,0xcc4fcc3f,0x330f330f,0xdd4fcc4f,0xcc4fcc4f,0xcc4fcc4f,0xcc4f220f,0x0000ffff,0x00000000,0x00000000,0xcfff0000,0x00000000,0x00000000,0x00000000,0xbddf0000,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f, +0x0000888f,0x999fbbbf,0x555f0000,0x00000000,0x444f555f,0xbbbf0000,0x555fbbbf,0x555f0000,0x222f888f,0x999fbbbf,0x555f222f,0x222f222f,0x444f555f,0xbbbf222f,0x555fbbbf,0x555f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x861f861f,0x861f861f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f,0xb96f110f,0x753fb95f,0xb95fb95f,0x521f221f,0x221f521f,0xb95f984f,0xb95f984f,0x110fb96f, +0xb96f110f,0x753fb95f,0xb95fb95f,0x521f221f,0x221f521f,0xb95f984f,0xb95f984f,0x110fb96f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc4fcc4f,0xdd4fcc4f,0xdd5fcc4f,0x660f550f,0xcc4fdd4f,0xee5fbb3f,0xcc4f330f,0xcc4fff6f,0x0000ffff,0xffff0000,0x00000000,0x0000cfff,0x00000000,0x00000000,0x00000000,0x00000000,0x666f777f,0x777f777f,0x777f7cff,0x777f777f,0x777f888f,0x777f777f,0x7cffceff,0x777f777f,0x666f777f,0x777f777f,0x777f900f,0x777f777f,0x777f888f,0x777f777f,0x900ff00f,0x777f777f, +0x00000000,0x0000888f,0xaaaf555f,0x0000aaaf,0xaaaf999f,0xbbbf555f,0x0000999f,0xaaafbbbf,0x222f222f,0x222f888f,0xaaaf555f,0x222faaaf,0xaaaf999f,0xbbbf555f,0x222f999f,0xaaafbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x221fa72f,0xb96f110f,0x984f984f,0x984f753f,0x221fb95f,0xb96f221f,0xb95fb96f,0xb96f753f,0x110fb96f, +0xb96f110f,0x984f984f,0x984f753f,0x221fb95f,0xb96f221f,0xb95fb96f,0xb96f753f,0x110fb96f,0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc3fcc4f,0x330fdd5f,0xdd4f330f,0x330fee4f,0xcc3fee4f,0x220fcc3f,0xcc3f660f,0xdd5fcc4f,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xbddfcfff,0x888f777f,0x777f777f,0x666f777f,0xceff777f,0x777f5eff,0x777f777f,0x777f777f,0x777f777f,0x888f777f,0x777f777f,0x666f777f,0xf00f777f,0x777f800f,0x777f777f,0x777f777f,0x777f777f, +0x00000000,0x00000000,0xaaaf0000,0x0000888f,0x999faaaf,0xaaaf444f,0x0000888f,0x999faaaf,0x222f222f,0x222f222f,0xaaaf222f,0x222f888f,0x999faaaf,0xaaaf444f,0x222f888f,0x999faaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f433f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0xa61fa61f,0xa61fa61f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x221fa61f,0x653f110f,0x432f653f,0x753f432f,0x110f753f,0x753f110f,0x653f432f,0x653f653f,0x110f753f, +0x653f110f,0x432f653f,0x753f432f,0x110f753f,0x753f110f,0x210f432f,0x210f210f,0x110f753f,0x555f222f,0x666f555f,0x222f666f,0x333f333f,0x222f222f,0x444f222f,0x888f666f,0x222f666f,0x555f222f,0x666f555f,0x666f999f,0x888f888f,0x666f555f,0x555f555f,0x888f666f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc4fcc4f,0x660fcc4f,0xcc4f660f,0xcc3faa1f,0xbb3fcc4f,0xcc4fcc4f,0xcc4fee4f,0xcc4fff7f,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xcfff0000,0xbddf0000,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f, +0xaaaf0000,0x0000aaaf,0xaaaf0000,0x0000555f,0x888f999f,0x00000000,0x0000888f,0x888f999f,0xaaaf222f,0x222faaaf,0xaaaf222f,0x222f555f,0x888f999f,0x222f222f,0x222f888f,0x888f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x752f433f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x752f962f,0x752f962f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x221f962f,0x984f110f,0x753f984f,0xb96f984f,0x221fb96f,0x984f221f,0x753f753f,0xb95fb95f,0x110fb95f, +0x984f110f,0x753f984f,0xb96f984f,0x221fb96f,0x984f221f,0x210f753f,0x210f753f,0x110f753f,0x777f333f,0x444f777f,0x000f333f,0x000f000f,0x000f000f,0x333f000f,0x888f555f,0x222f777f,0x777f333f,0x666f777f,0x777f888f,0x555f777f,0x888f666f,0x999f999f,0x888f777f,0x222f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xbb3fcc4f,0xcc4fcc4f,0xbb3fee4f,0xdd4fcc4f,0xcc4f220f,0xcc4fdd4f,0xdd5f660f,0xcc4fdd4f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000cfff,0x00000000,0x777f777f,0x777f777f,0xffff777f,0x777fceff,0x666f777f,0xceffffff,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0xf00f777f,0x777fa00f,0x666f777f,0xa00ff00f,0x777f777f,0x777f666f, +0xbbbf0000,0x0000888f,0x888f444f,0x0000555f,0x999f555f,0x555f0000,0x555f0000,0x888f0000,0xbbbf222f,0x222f888f,0x888f444f,0x222f555f,0x999f555f,0x555f222f,0x555f222f,0x888f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x322f432f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x322f332f,0x332f332f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x111f322f,0x984f110f,0x210f753f,0x210fb95f,0x221fb96f,0xb95f221f,0xb95f963f,0x984f984f,0x110f984f, +0x984f110f,0x210f753f,0xb95fb95f,0x221fb96f,0xb95f221f,0x210f963f,0x210f210f,0x110f653f,0x555f222f,0x222f777f,0x000f000f,0x000f000f,0x000f000f,0x000f000f,0x666faaaf,0x222f333f,0x555f222f,0x666f777f,0x777f777f,0x555f777f,0x999f999f,0x888f777f,0x666f777f,0x222f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x330fdd5f,0xee6fcc4f,0xcc4f660f,0xcc4fcc4f,0xdd4fee4f,0xbb2fcc4f,0xee4fff6f,0xcc4fcc4f,0x00000000,0x00000000,0x00000000,0xcfff0000,0x00000000,0x00000000,0x00000000,0xbddf0000,0x888f888f,0xffff777f,0x7cffceff,0x5eff7cff,0x777f777f,0x5eff7cff,0x888f888f,0x666f888f,0x888f888f,0xb00f777f,0x900fa00f,0x800f900f,0x777f777f,0x800f900f,0x888f888f,0x666f888f, +0x999f555f,0x555f0000,0x0000555f,0xaaafaaaf,0x00000000,0x0000666f,0x555f0000,0x555f555f,0x999f555f,0x555f222f,0x222f555f,0xaaafaaaf,0x222f222f,0x222f666f,0x555f222f,0x555f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x753f433f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x652f753f,0x652f652f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x221f753f,0xb96f110f,0x210fb96f,0x210f753f,0x221f753f,0x984f221f,0xb96f432f,0xb96fb96f,0x110fb96f, +0xb96f110f,0x210fb96f,0xb96fb96f,0x221fb96f,0x984f221f,0xdddf432f,0xbbbfdddf,0x110f753f,0x666f333f,0x222f777f,0x000f000f,0x111f000f,0x111f111f,0x000f111f,0x888faaaf,0x222f666f,0x666f333f,0x666f777f,0x555f777f,0x777f666f,0x888f777f,0x777f888f,0x888f888f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x660fbb3f,0xdd4fee4f,0xdd5fee4f,0xcc4fcc3f,0xcc4fcc4f,0xbb2fdd4f,0xcc4f991f,0xcc4fdd5f,0x0000ffff,0x0000cfff,0x00000000,0x0000cfff,0x00000000,0x00000000,0x00000000,0xbddf0000,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f, +0xbbbfaaaf,0xaaaf0000,0x555fbbbf,0x999faaaf,0xaaaf0000,0x555fbbbf,0x555f0000,0x666f0000,0xbbbfaaaf,0xaaaf222f,0x555fbbbf,0x999faaaf,0xaaaf222f,0x555fbbbf,0x555f222f,0x666f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f432f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x221f852f,0x753f110f,0x653f653f,0x653fdddf,0x110f653f,0x753f110f,0x432f653f,0x653f653f,0x110f753f, +0x753f110f,0x210f653f,0x653f653f,0x110f653f,0x753f110f,0xffff653f,0xbbbfdddf,0x110f432f,0x555f222f,0x222f555f,0xbbbf777f,0xaaafaaaf,0xaaafaaaf,0x666faaaf,0x555faaaf,0x333f555f,0x555f222f,0x666f555f,0x888f888f,0x666f666f,0x555f666f,0x777f555f,0x555f888f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xee4fcc4f,0xdd4fdd4f,0xcc4fdd4f,0x330fcc3f,0x330fee4f,0x330f330f,0xcc4fbb2f,0xcc4f330f,0xcfffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xbddf0000,0xceff777f,0x666f7cff,0x777f888f,0x777f777f,0xceffffff,0x888f888f,0x888f888f,0x888f888f,0xf00f777f,0x666f900f,0x777f888f,0x777f777f,0xa00ff00f,0x888f888f,0x888f888f,0x888f888f, +0x888fbbbf,0x999f0000,0x555f999f,0x999f999f,0x999f0000,0x0000999f,0xbbbf0000,0x555f999f,0x888fbbbf,0x999f222f,0x555f999f,0x999f999f,0x999f222f,0x222f999f,0xbbbf222f,0x555f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f,0xb96f110f,0xdddfb96f,0xdddf753f,0x221f653f,0xb95f221f,0xb95fb95f,0xb96fb96f,0x110fb96f, +0xb96f110f,0x210fb96f,0x753fbbbf,0x221f984f,0xb95f221f,0x753fb95f,0xbbbfdddf,0x110f753f,0x444f222f,0x888f777f,0x888f555f,0x999f888f,0x999f999f,0x444f888f,0x555f777f,0x333f777f,0x444f222f,0x888f777f,0x777faaaf,0x999f666f,0x888f999f,0x666f777f,0x444f555f,0x333f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc4fcc4f,0x330fcc4f,0xcc4fcc4f,0xdd4fdd5f,0x660fcc4f,0x660f550f,0x330fee4f,0x660f660f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x777f777f,0x777f777f,0x777f777f,0xceff777f,0x5eff5eff,0x777f5eff,0x777f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0xa00f777f,0x800f800f,0x777f800f,0x777f777f,0x777f888f, +0x444f888f,0x555f0000,0x0000888f,0x0000999f,0x0000555f,0x0000999f,0xaaaf555f,0x0000999f,0x444f888f,0x555f222f,0x222f888f,0x222f999f,0x222f555f,0x222f999f,0xaaaf555f,0x222f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f,0x984f110f,0xbbbf984f,0xbbbf653f,0x221f753f,0x984f221f,0x753f984f,0x984fb96f,0x110f984f, +0x984f110f,0xdddfbbbf,0x753fbbbf,0x221fb95f,0x984f221f,0x753f984f,0xbbbfffff,0x110f653f,0x888f444f,0xdddfcccf,0xeeefdddf,0xffffffff,0xffffffff,0xdddfeeef,0xcccfdddf,0x333f888f,0x555f222f,0x999f999f,0x555f777f,0x777f999f,0x888f999f,0x666f888f,0x999f666f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd4fcc4f,0xee4fcc4f,0xcc3fcc4f,0xdd4f110f,0xdd5fee6f,0xee4fee5f,0xff6fcc4f,0xcc3f550f,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x777f777f,0x777f888f,0x888f7cff,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x777f777f,0x777f888f,0x888f900f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f, +0x0000555f,0x00000000,0x444f0000,0x0000555f,0xaaafaaaf,0x00000000,0x999f555f,0x00000000,0x222f555f,0x222f222f,0x444f222f,0x222f555f,0xaaafaaaf,0x222f222f,0x999f555f,0x222f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f,0xb95f110f,0xb95fb95f,0xb96fb96f,0x110f984f,0x984f221f,0xb95fb95f,0xb95f963f,0x110fb95f, +0xb95f110f,0x753f753f,0x753fbbbf,0x110f984f,0x984f221f,0xb95fb95f,0xbbbfdddf,0x110f753f,0x777f444f,0xdddfcccf,0xeeefeeef,0x444f444f,0x444f333f,0xeeefeeef,0xcccfdddf,0x333f777f,0x555f222f,0x777f777f,0x555f777f,0x888f999f,0x777f777f,0x555f777f,0x666f666f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd4f110f,0xcc4fcc4f,0xcc4fcc4f,0xdd4fdd3f,0xcc4fcc4f,0x110fcc4f,0xcc4fcc4f,0xcc4fee4f,0x0000ffff,0x00000000,0x00000000,0x0000cfff,0x00000000,0x00000000,0x0000ffff,0xbddf0000,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xceff777f,0x888f5eff,0x666f888f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xf00f777f,0x888f800f,0x666f888f, +0x0000aaaf,0xbbbfaaaf,0x00000000,0x00000000,0x999faaaf,0xaaaf0000,0x0000888f,0xaaaf555f,0x222faaaf,0xbbbfaaaf,0x222f222f,0x222f222f,0x999faaaf,0xaaaf222f,0x222f888f,0xaaaf555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f,0x653f110f,0x753f753f,0x653f653f,0x100f653f,0x753f110f,0x753f753f,0x653f432f,0x110f653f, +0x653f110f,0x753f753f,0x431f431f,0x100f653f,0x753f110f,0x753f753f,0xbbbf221f,0x110f431f,0xaaaf444f,0xdddfdddf,0x333f333f,0xc00ff00f,0xc00ff00f,0x333f333f,0xdddfdddf,0x333faaaf,0x777f333f,0x777f888f,0x555f777f,0x777f777f,0x777f888f,0x666f555f,0x666f888f,0x222f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xff5f660f,0x330fcc4f,0xdd4f110f,0xcc3fcc4f,0x220f330f,0xcc4fdd4f,0xaa2fdd4f,0xee4f660f,0xcfff0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xbddf0000,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xffffceff,0x7cffceff,0x5eff7cff,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xf00fa00f,0x900fa00f,0x800f900f,0x777f777f, +0x0000888f,0x999fbbbf,0xaaaf0000,0x0000bbbf,0x888f0000,0x999f0000,0x0000999f,0xaaaf444f,0x222f888f,0x999fbbbf,0xaaaf222f,0x222fbbbf,0x888f222f,0x999f222f,0x222f999f,0xaaaf444f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x861fa72f,0x861f861f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f,0xb96f110f,0xa73fb96f,0x984fb96f,0x110fb96f,0x984f221f,0x984f984f,0x753f963f,0x110fb96f, +0xb96f110f,0xa73fb96f,0x984fb96f,0x110fb96f,0x984f221f,0x984f984f,0xffff963f,0x110f753f,0xcccf888f,0x333feeef,0xc00fc00f,0xc00ffa0f,0xf00ffa0f,0xc00fc00f,0xeeef444f,0x222faaaf,0x555f222f,0x555f555f,0x555f555f,0x777f666f,0x555f666f,0x888f999f,0x777f777f,0x222f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xee4fee4f,0x660fdd4f,0xee4f660f,0x330fcc3f,0x660f660f,0xdd4f550f,0xcc4fcc4f,0xcc4fcc4f,0x0000cfff,0x00000000,0x00000000,0x00000000,0x00000000,0x0000cfff,0x00000000,0xbddf0000,0x888f777f,0xceff777f,0x777f5eff,0x777f777f,0x5eff777f,0x777f5eff,0x777f777f,0x888f888f,0x888f777f,0xf00f777f,0x777f800f,0x777f777f,0x800f777f,0x777f800f,0x777f777f,0x888f888f, +0x0000999f,0x999f555f,0xaaaf0000,0x0000888f,0x555f0000,0x999f0000,0xaaaf444f,0x0000aaaf,0x222f999f,0x999f555f,0xaaaf222f,0x222f888f,0x555f222f,0x999f222f,0xaaaf444f,0x222faaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x861fa72f,0xa72fa72f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f,0x984f110f,0xa73f753f,0xb96fb96f,0x221fb96f,0xb95f221f,0x984fb95f,0x984f984f,0x110f984f, +0x984f110f,0xa73f753f,0xb96fb96f,0x221fb96f,0xb95f221f,0x984fb95f,0x653f984f,0x110f653f,0xdddf888f,0xf00f333f,0xfa0ffa0f,0xf00ffa0f,0xfa0fff0f,0xf00ff00f,0xeeeff00f,0x333faaaf,0x666f333f,0x999f777f,0x999f888f,0x555f666f,0x999f666f,0x777f888f,0x777f888f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc3fcc4f,0xee6fbb3f,0xbb2fee4f,0xcc4fdd5f,0x660f660f,0xcc4fee4f,0xee4f660f,0xcc3fcc4f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcfff0000,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f, +0x0000666f,0x555f0000,0x888f555f,0x00000000,0x666f0000,0x999f555f,0xbbbf0000,0x555f999f,0x222f666f,0x555f222f,0x888f555f,0x222f222f,0x666f222f,0x999f555f,0xbbbf222f,0x555f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x752f962f,0x962f962f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f,0xb96f110f,0x753f984f,0xb96f984f,0x221fb96f,0xb96f221f,0xb95f984f,0xb96fb96f,0x110fb96f, +0xb96f110f,0x753f984f,0xb96f984f,0x221fb96f,0xb96f221f,0xb95f984f,0xb96fb96f,0x110fb96f,0xeeef888f,0xfa0f333f,0xff0fff0f,0xfa0fff0f,0xff0ffa0f,0xfa0fff0f,0xeeeffa0f,0x222faaaf,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xbb3fee5f,0xcc4fbb2f,0xcc4fbb2f,0xcc4fdd4f,0xee5fff6f,0xdd4fdd5f,0xcc4fee4f,0xcc4fcc4f,0xbddfcfff,0xbddfbddf,0xbddfbddf,0x00000000,0xbddfbddf,0xbddf0000,0xbddfbddf,0xcfffbddf,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x0000aaaf,0x00000000,0x999f0000,0x555f0000,0xaaafaaaf,0x0000555f,0x888f0000,0xaaaf555f,0x222faaaf,0x222f222f,0x999f222f,0x555f222f,0xaaafaaaf,0x222f555f,0x888f222f,0xaaaf555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f,0x753f110f,0x763f753f,0x653f653f,0x110f763f,0x753f110f,0x653f753f,0x653f432f,0x110f653f, +0x753f110f,0x763f753f,0x653f653f,0x110f763f,0x753f110f,0x653f753f,0x653f432f,0x110f653f,0xdddf888f,0xf00f333f,0xf00ffa0f,0xff0ffa0f,0xfa0ff00f,0xfa0fff0f,0xeeeff00f,0x333f999f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfcccf,0xcccfcccf,0xeeefdddf,0xdddfcccf,0xeeefeeef,0xcccfbbbf,0xeeefeeef,0xcccfcccf,0x157f235f,0x157f245f,0x245f046f,0x036f258f,0x157f157f,0x157f245f,0x356f258f,0x245f157f,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xffffffff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x041f0000,0x181f181f,0x181f182f,0x061f182f,0x172f041f,0x182f172f,0x181f182f,0x0000061f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xaabf889f,0x9abfaabf,0x9abf9aaf,0x9aaf9aaf,0xaabfaabf,0x9aaf9aaf,0x9aaf9aaf,0x9aaf99af,0xeedf0000,0x00009c6f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x222f322f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x222f322f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0xeeefdddf,0xffffffff,0xeeefeeef,0xdddfdddf,0xcccfcccf,0xdddfdddf,0xcccfbbbf,0xdddfdddf,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x147f0000,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xffffefff,0xefffefff,0xffffefff,0xefffffff,0x7af97af9,0x7af97af9,0x7af97af9,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0xffffffff,0xefffffff,0x532fefff,0xefffefff,0xffffefff,0xefffefff,0xffffefff,0xefffffff,0x061f0000,0x000f061f,0x061f020f,0x000f020f,0x061f061f,0x000f061f,0x061f020f,0x0000061f,0x041f0000,0x181f171f,0x182f071f,0x000f051f,0x171f041f,0x182f172f,0x181f182f,0x0000061f,0x061f0000,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x0000061f, +0x9aafaabf,0xaabfaabf,0x9aaf99af,0x9aaf9aaf,0xaabf99af,0xaabfabcf,0x9aaf9aaf,0xaabf9aaf,0x8a5f0000,0x0000684f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xeedf0000,0x00009c6f,0x754f322f,0x853f854f,0x854f854f,0x753f753f,0x753f753f,0x854f753f,0x854f753f,0x322f754f,0x754f322f,0x853f854f,0x854f854f,0x753f753f,0x753f753f,0x854f753f,0x854f753f,0x322f754f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffeeef,0xdddfdddf,0xffffffff,0xdddfeeef,0xffffeeef,0xeeefeeef,0xffffffff,0xeeefeeef,0x157f134f,0x157f245f,0x356f157f,0x157f157f,0x157f147f,0x157f134f,0x235f157f,0x245f036f,0xffffefff,0xefffefff,0xefffefff,0xefffefff,0xefffffff,0xefffefff,0xffffffff,0xefffefff,0x7af97af9,0xfff97af9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x532fefff,0xefffefff,0x532fefff,0x532fefff,0xefffffff,0xefffefff,0xffff532f,0x532fefff,0x061f0000,0x051f182f,0x171f181f,0x051f171f,0x181f182f,0x061f182f,0x181f182f,0x0000061f,0x000f000f,0x171f061f,0x182f071f,0x031f061f,0x171f041f,0x182f172f,0x051f182f,0x000f000f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fddaf,0x0000061f, +0xaabfaabf,0x9aafabcf,0x9aaf9aaf,0x9abf9abf,0xaabfaabf,0xaabfaabf,0x9aaf99af,0xabcf9aaf,0xad7f0000,0x9e3f8a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x7c2f8a5f,0x8a5f0000,0x0000684f,0x854f322f,0x853f532f,0x853f532f,0x954f532f,0x964f532f,0x954f532f,0x964f532f,0x322f854f,0x854f322f,0x853f853f,0x853f853f,0x753f954f,0x964f753f,0x954f964f,0x964f953f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xffffeeef,0xdddfdddf,0xffffdddf,0xdddfcccf,0xffffffff,0xdddfdddf,0xffffffff,0x0000157f,0x0000157f,0x258f0000,0x00000000,0x00000000,0x0000258f,0x157f0000,0x258f0000,0xefffffff,0xefffefff,0xffffffff,0xffffefff,0xefffffff,0xefffefff,0xffffffff,0xefffefff,0x7af97af9,0x7af9fff9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af98bf9, +0x666f532f,0x532f532f,0x532fffff,0x532f532f,0x532fffff,0x532fefff,0x532f753f,0x753f532f,0x000f0000,0x192f051f,0x182f181f,0x000f061f,0x181f061f,0x000f061f,0x181f061f,0x0000061f,0x020f0000,0x171f061f,0x182f071f,0x061f171f,0x051f000f,0x182f172f,0x071f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fddaf,0x0000061f, +0x9aaf99af,0xaabf9aaf,0xaabf9aaf,0x9aaf9aaf,0x9aaf9aaf,0xaabf9aaf,0x9aaf9abf,0x99af9abf,0xad7f0000,0x7c2f8a5f,0xad7f0000,0x9e3f8a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x853f322f,0x953f421f,0x953f421f,0x953f421f,0x953f421f,0x954f421f,0x954f421f,0x322f853f,0x853f322f,0x953f954f,0x953f953f,0x111f753f,0x753f111f,0x954f954f,0x954f954f,0x322f853f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfeeef,0xdddfcccf,0xeeefeeef,0xbbbfbbbf,0xeeefdddf,0xcccfdddf,0xeeefeeef,0xbbbfcccf,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x046f0000,0xffffffff,0xefffefff,0xffffefff,0xffffefff,0xefffefff,0xffffefff,0xefffffff,0xefffefff,0xfff97af9,0x7af97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9,0x8bf97af9,0x7af97af9, +0x753f964f,0xb85f964f,0x964f532f,0x753f753f,0x532f532f,0x666f532f,0x964f753f,0x753f532f,0x020f0000,0x181f182f,0x182f061f,0x061f182f,0x181f182f,0x061f182f,0x181f182f,0x0000061f,0x041f0000,0x181f071f,0x182f172f,0x061f181f,0x061f020f,0x182f181f,0x171f182f,0x0000061f,0x061f0000,0xddafdd9f,0xddafdd9f,0xddafddaf,0xddafdd9f,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0x9aafaabf,0x9aafaabf,0xaabfaabf,0xaabfaabf,0x99afaabf,0xaabf9aaf,0x99af9abf,0x99afaabf,0xad7f0000,0x00008a5f,0xeedf0000,0x7c2f9c6f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x753f322f,0x532f853f,0x532f853f,0x532f964f,0x532f964f,0x532f853f,0x532f954f,0x322f854f,0x753f322f,0x853f853f,0x964f853f,0x111f753f,0x753f111f,0x953f853f,0x954f954f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xbbbfcccf,0xffffcccf,0xbbbfcccf,0xdddfcccf,0xbbbfcccf,0xdddfdddf,0xdddfcccf,0xdddfcccf,0x157f245f,0x258f245f,0x346f157f,0x157f157f,0x258f157f,0x258f245f,0x245f157f,0x245f157f,0xefffefff,0xefffefff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xefffefff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af9fff9,0x7af97af9,0x7af98bf9,0x7af97af9, +0x532f753f,0x964f964f,0x964f753f,0x532f532f,0x753f532f,0x532f753f,0x753f753f,0xb85f753f,0x061f0000,0x061f181f,0x061f000f,0x181f171f,0x181f171f,0x182f182f,0x051f182f,0x0000000f,0x041f0000,0x181f061f,0x172f172f,0x061f172f,0x171f041f,0x182f181f,0x071f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xdd9fdd9f,0xdd9fdd9f,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0xaabf99af,0xabdf9aaf,0xaabf9aaf,0xaabfaabf,0xaabf9aaf,0x99afaabf,0x9aaf9aaf,0x99af9abf,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xeedf0000,0x00009c6f,0xad7f0000,0x00008a5f,0x753f322f,0x422f953f,0x422f954f,0x321f964f,0x422f954f,0x422f954f,0x321f853f,0x322f753f,0x753f322f,0x954f953f,0x954f954f,0x111f753f,0x753f111f,0x954f954f,0x853f853f,0x322f753f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffffff,0xeeefeeef,0xdddfdddf,0xeeefdddf,0xffffeeef,0xdddfeeef,0xffffffff,0xeeefeeef,0x0000157f,0x0000046f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x035f0000,0x157f0000,0xefffffff,0xefffefff,0xefffffff,0xffffefff,0xefffefff,0xffffefff,0xefffefff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x532fb85f,0x753f753f,0x753f888f,0xb85f753f,0x753fb85f,0xb85fb85f,0x964f753f,0x964f753f,0x020f0000,0x192f071f,0x182f181f,0x181f182f,0x000f061f,0x181f171f,0x181f181f,0x0000061f,0x000f000f,0x071f171f,0x171f181f,0x061f172f,0x171f041f,0x171f182f,0x051f182f,0x000f000f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0x0000061f, +0xaabf99af,0x9abf99af,0xaabf99af,0x9aaf9aaf,0x9aaf9aaf,0xabcfaabf,0xaabfaabf,0x9abfaabf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xad7f0000,0x9e3f8a5f,0x854f322f,0x954f532f,0x964f532f,0x853f532f,0x853f532f,0x964f532f,0x964f532f,0x322f854f,0x854f322f,0x954f964f,0x964f964f,0x111f753f,0x753f111f,0x964f953f,0x964f964f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xffffffff,0xeeefeeef,0xffffffff,0xdddfcccf,0xffffeeef,0xeeefeeef,0xffffffff,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x258f0000,0x147f0000,0xffffffff,0xefffefff,0xefffefff,0xefffefff,0xffffffff,0xefffefff,0xefffffff,0xefffefff,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753fb85f,0xb85fb85f,0x964f964f,0x753f753f,0x532f964f,0x964f964f,0x753f753f,0x964f964f,0x000f0000,0x181f051f,0x192f061f,0x181f182f,0x061f182f,0x182f181f,0x181f061f,0x0000020f,0x041f0000,0x171f182f,0x171f181f,0x061f182f,0x051f000f,0x071f182f,0x061f182f,0x0000031f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fddaf,0xdd9fdd9f,0xdd9fdd9f,0x0000061f, +0x9aaf9abf,0x9aafaabf,0x9aaf9abf,0xabbfaabf,0x99afaabf,0x9aaf9aaf,0xaabfaabf,0xaabf9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x7c2f8a5f,0x853f322f,0x954f421f,0x954f421f,0x953f421f,0x953f421f,0x954f421f,0x954f421f,0x322f853f,0x853f322f,0x954f954f,0x954f954f,0x111f753f,0x753f111f,0x954f954f,0x954f954f,0x322f853f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xeeefeeef,0xdddfcccf,0xeeefffff,0xdddfcccf,0xdddfdddf,0xcccfdddf,0xdddfdddf,0xcccfcccf,0x0000258f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x157f0000,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xffffffff,0xefffffff,0xffffffff,0xefffefff,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753f964f,0x964f753f,0x964f753f,0x532f753f,0x964f753f,0x753f964f,0x753f753f,0x753f532f,0x061f0000,0x061f182f,0x061f000f,0x061f171f,0x181f181f,0x061f181f,0x061f000f,0x0000000f,0x041f0000,0x071f182f,0x071f181f,0x061f181f,0x061f020f,0x171f182f,0x071f181f,0x0000061f,0x061f0000,0xddafdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0xaabfaabf,0xaabfaabf,0x9aafaabf,0xaabfaabf,0xabcfaabf,0xaabf99af,0x9abf9aaf,0x9abf9aaf,0xeedf9e3f,0x00009c6f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x854f322f,0x532f964f,0x532f964f,0x532f853f,0x532f964f,0x532f954f,0x532f964f,0x322f854f,0x854f322f,0x964f964f,0x953f964f,0x111f753f,0x753f111f,0x954f954f,0x964f964f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xeeefdddf,0xbbbfbbbf,0xeeefdddf,0xeeefcccf,0xffffffff,0xeeefdddf,0xffffffff,0x0000157f,0x0000157f,0x258f0000,0x00000000,0x00000000,0x0000147f,0x147f0000,0x157f0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xefffffff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af9fff9,0x7af97af9,0x7af97af9,0x7af97af9, +0x964f964f,0x753f532f,0x532f753f,0x753f532f,0x753f753f,0x753f753f,0xb85fb85f,0x964f753f,0x061f0000,0x181f182f,0x182f061f,0x000f061f,0x181f061f,0x182f181f,0x181f061f,0x0000061f,0x041f0000,0x171f182f,0x182f172f,0x000f051f,0x071f041f,0x071f182f,0x071f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0x899f99af,0x9aafaabf,0xaabf9aaf,0x9aafaabf,0xaabf9abf,0xaabfaabf,0xaabf9abf,0xaabf99af,0x8a5f7c2f,0x0000684f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xeedf0000,0x00009c6f,0x753f322f,0x321f853f,0x432f853f,0x422f954f,0x321f853f,0x421f853f,0x321f964f,0x322f753f,0x753f322f,0x853f853f,0x964f853f,0x111f753f,0x753f111f,0x953f853f,0x853f964f,0x322f753f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffffff,0xeeefeeef,0xffffffff,0xeeefeeef,0xeeefffff,0xeeefdddf,0xdddfeeef,0xdddfcccf,0x157f023f,0x157f134f,0x234f157f,0x157f046f,0x157f269f,0x157f245f,0x245f147f,0x134f268f,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xffffefff,0xefffffff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9, +0x964f964f,0xb85f753f,0x753fb85f,0x964fb85f,0xb85f532f,0x753fb85f,0x964f964f,0x753f888f,0x000f0000,0x181f051f,0x181f182f,0x182f181f,0x061f181f,0x061f171f,0x181f182f,0x0000061f,0x041f000f,0x071f182f,0x182f181f,0x031f061f,0x171f041f,0x071f182f,0x051f182f,0x000f000f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xdd9fdd9f,0xdd9fdd9f,0xddafdd9f,0xdd9fddaf,0x0000061f, +0xaabfaabf,0xaabf889f,0xaabf99af,0x9abf9aaf,0xaabfaabf,0x9aafaabf,0x9aaf9abf,0x9abf9aaf,0xad7f0000,0x00008a5f,0xeedf7c2f,0x00009c6f,0xad7f9e3f,0x00008a5f,0x8a5f0000,0x0000684f,0x854f322f,0x954f532f,0x964f532f,0x853f532f,0x853f532f,0x954f532f,0x954f532f,0x322f854f,0x854f322f,0x954f954f,0x964f964f,0x111f753f,0x753f111f,0x954f954f,0x954f954f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccfcccf,0xeeefeeef,0xdddfdddf,0xeeefeeef,0xcccfcccf,0xeeefdddf,0xbbbfbbbf,0xeeefdddf,0x0000046f,0x0000258f,0x268f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x157f0000,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xefffefff,0xffffefff,0xefffefff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af9fff9,0x7af97af9, +0x753f964f,0x964f753f,0xb85f964f,0x964f753f,0x964f666f,0x753f964f,0x964f532f,0x532f753f,0x061f0000,0x181f182f,0x061f182f,0x182f181f,0x000f061f,0x000f061f,0x181f061f,0x0000000f,0x041f0000,0x071f182f,0x182f172f,0x061f071f,0x171f041f,0x171f182f,0x061f182f,0x0000031f,0x061f0000,0xdd9fdd9f,0xddafddaf,0xdd9fdd9f,0xddafddaf,0xddafddaf,0xdd9fdd9f,0x0000061f, +0xaabf99af,0x99afaabf,0x9aafaabf,0x9aafaabf,0xaabfaabf,0xabcf9aaf,0x9aaf9aaf,0x99af9aaf,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xad7f7c2f,0x00008a5f,0xad7f0000,0x00008a5f,0x853f322f,0x953f421f,0x954f421f,0x953f421f,0x953f421f,0x953f421f,0x954f421f,0x322f853f,0x853f322f,0x953f953f,0x954f954f,0x111f753f,0x753f111f,0x953f953f,0x954f954f,0x322f853f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xbbbfbbbf,0xffffffff,0xbbbfcccf,0xeeefdddf,0xeeefeeef,0xffffffff,0xcccfeeef,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x157f0000,0xffffefff,0xefffefff,0xefffefff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xefffefff,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9,0x7af97af9, +0x532f753f,0x753f964f,0x964f964f,0x753fb85f,0x753f753f,0x753f753f,0x753f753f,0xb85fb85f,0x061f0000,0x181f182f,0x000f061f,0x182f181f,0x061f182f,0x061f181f,0x182f182f,0x0000061f,0x000f000f,0x071f061f,0x182f172f,0x061f071f,0x051f000f,0x171f182f,0x071f171f,0x000f061f,0x061f0000,0xdd9fdd9f,0xddafdd9f,0xdd9fdd9f,0xdd9fdd9f,0xddafddaf,0xdd9fddaf,0x0000061f, +0xaabfaabf,0xaabf9aaf,0x9aafaabf,0x99afaabf,0xaabf99af,0x9aaf9aaf,0xaabfaabf,0x9aaf9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x854f322f,0x532f964f,0x532f964f,0x532f964f,0x532f853f,0x532f853f,0x532f954f,0x322f854f,0x854f322f,0x964f964f,0x853f964f,0x111f753f,0x753f111f,0x853f853f,0x953f954f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xeeefeeef,0xffffffff,0xeeefffff,0xdddfeeef,0xdddfbbbf,0xffffeeef,0xdddfdddf,0xffffffff,0x147f245f,0x157f245f,0x245f157f,0x157f157f,0x258f157f,0x147f245f,0x134f157f,0x245f157f,0xefffefff,0xefffefff,0xefffefff,0xefffefff,0xefffffff,0xefffefff,0xffffffff,0xefffefff,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9, +0x964f753f,0x753f753f,0x753f532f,0x964f964f,0x532f753f,0x532fb85f,0xb85f753f,0x964f964f,0x061f0000,0x181f051f,0x061f182f,0x071f051f,0x051f182f,0x182f181f,0x051f051f,0x0000061f,0x020f0000,0x171f071f,0x182f181f,0x061f071f,0x061f020f,0x171f172f,0x182f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0x0000061f, +0xaabfabcf,0x899f99af,0x9aaf9aaf,0xaabf9aaf,0xaabfaabf,0xaabfaabf,0x9aafaabf,0x9abfaabf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xeedf0000,0x00009c6f,0xad7f7c2f,0x00008a5f,0x753f322f,0x432f953f,0x432f964f,0x321f964f,0x422f964f,0x321f954f,0x321f853f,0x322f753f,0x753f322f,0x964f953f,0x964f964f,0x753f964f,0x954f753f,0x853f954f,0x853f853f,0x322f753f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffffff,0xdddfdddf,0xeeefffff,0xeeefeeef,0xeeefffff,0xdddfdddf,0xeeefeeef,0xcccfdddf,0x0000046f,0x0000258f,0x157f0000,0x00000000,0x00000000,0x0000258f,0x147f0000,0x157f0000,0xefffffff,0xefffffff,0xefffefff,0xffffefff,0xffffffff,0xffffffff,0xefffffff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753f964f,0xb85f532f,0x532f753f,0x532f753f,0x753f753f,0x532f753f,0x753f753f,0x964f964f,0x061f0000,0x020f000f,0x061f061f,0x061f000f,0x000f020f,0x061f061f,0x020f000f,0x0000061f,0x041f0000,0x182f172f,0x182f071f,0x000f051f,0x172f041f,0x171f182f,0x171f182f,0x0000061f,0x061f0000,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x0000061f, +0x9abfaabf,0x9aaf9aaf,0x9abfaabf,0xaabfaabf,0xaabf899f,0x9aaf99af,0x99afaabf,0xaabf9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xad7f0000,0x00008a5f,0x754f322f,0x753f753f,0x854f753f,0x753f854f,0x854f854f,0x854f753f,0x854f854f,0x322f754f,0x754f322f,0x753f753f,0x854f753f,0x753f854f,0x854f854f,0x854f753f,0x854f854f,0x322f754f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccfcccf,0xeeefffff,0xdddfcccf,0xffffffff,0xdddfdddf,0xffffeeef,0xcccfcccf,0xffffeeef,0x157f245f,0x157f245f,0x245f157f,0x157f157f,0x157f258f,0x157f124f,0x356f157f,0x245f157f,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xffffefff,0xefffefff,0xffffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753f964f,0x964fb85f,0x753f964f,0x964f888f,0x964f964f,0x753f753f,0x964f964f,0x532f753f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x041f0000,0x182f172f,0x181f171f,0x031f061f,0x181f041f,0x071f172f,0x171f181f,0x0000061f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xaabf9aaf,0x99af9aaf,0xaabfabcf,0xaabf99af,0xaabf9abf,0x9aaf9aaf,0x9abf9aaf,0x99af9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa84fb95f,0xa84fa84f,0xb95fa84f,0xa94fb95f,0xb95fa84f,0xb95fb95f,0xb95fb95f,0x863fb95f,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfcccf,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0x00000000,0x542f873f,0x00000000,0x00000000,0x00000000,0x00000000,0x652fa85f,0x00000000, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x420f741f,0x631f731f,0x420f420f,0x631f631f,0x310f420f,0x420f631f,0x631f531f,0x731f420f,0x632f964f,0x964f964f,0x632f632f,0x964f964f,0x421f632f,0x632f964f,0x964f753f,0x964f632f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000661f,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x752f863f,0x863f863f,0x863f863f,0x863f863f,0x863f863f,0x863f863f,0x641f963f,0xcccfbbbf,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafcccf,0xa84f0000,0x431fa84f,0x873f873f,0xa84fa84f,0xa85fa85f,0xa84fa85f,0x642f873f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f420f,0x521f531f,0x420f520f,0x631f310f,0x310f420f,0x420f520f,0x420f420f,0x731f310f,0x421f632f,0x753f753f,0x632f753f,0x964f421f,0x421f632f,0x632f753f,0x632f632f,0x964f421f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005b0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x280f9b0f,0x00000000,0x00000000,0x00000000,0x00000000,0x761f0000,0x00000000,0x00000000,0x110f871f,0x00000000,0x00000000,0x0000761f,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x752f752f,0x752f752f,0x863f852f,0x852f852f,0x852f852f,0x963f642f,0x641f963f,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xcccfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xcccfbbbf,0xaaafbbbf,0x642f0000,0x542f873f,0x642f642f,0x642f642f,0x642f642f,0x542f542f,0x652f642f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f731f,0x631f631f,0x420f520f,0x420f210f,0x210f420f,0x420f631f,0x420f420f,0x531f420f,0x421f964f,0x964f964f,0x632f753f,0x753f421f,0x421f753f,0x632f964f,0x632f632f,0x753f632f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x160f5b0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x360f890f,0x00000000,0x00000000,0x00000000,0x00000000,0x761f0000,0x0000220f,0x00000000,0x871f0000,0x00000000,0x00000000,0x220f871f,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x752f973f,0x0000642f,0x00000000,0x973f0000,0x0000642f,0x00000000,0x963f0000,0x531f752f,0xbbbfbbbf,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafbbbf,0x00000000,0x431f542f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f542f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x333f631f,0x320f520f,0x531f320f,0x210f420f,0x420f420f,0x420f420f,0x631f310f,0x632f753f,0x555f964f,0x632f753f,0x964f632f,0x421f753f,0x753f753f,0x632f632f,0x964f421f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x160f5c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x591f0000,0x00000000,0x00000000,0x5a0f0000,0x00000000,0x00000000,0x00006b0f,0x00000000,0x00000000,0x0000970f,0x761f0000,0x9a0f0000,0x0000330f,0x970f0000,0x330f0000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x752f333f,0x0000752f,0x00000000,0xa84f0000,0x0000852f,0x00000000,0xa84f0000,0x742f863f,0xbbbf444f,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafcccf,0x00000000,0x542f873f,0x00000000,0x00000000,0x00000000,0x00000000,0x642fa84f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x520f520f,0x320f320f,0x420f531f,0x210f420f,0x222f531f,0x420f420f,0x631f310f,0x632f753f,0x753f753f,0x632f632f,0x753f964f,0x421f753f,0x555f964f,0x632f753f,0x964f421f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x180f0a0f,0x00000000,0x00000000,0x00000000,0x00000000,0x5a0f0000,0x00000000,0x00000000,0x481f0000,0x00000000,0x00000000,0x00005c0f,0x00000000,0x6b0f0000,0x0000150f,0x6c0f0000,0x9c0f0000,0x0000160f,0x00000000,0x160f5a0f,0x00000000,0x00000000,0x440f9b0f,0x970f0000,0x9a0f220f,0x761f350f,0x9a0f0000,0x00000000,0x0000761f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863f666f,0x0000642f,0x00000000,0xa84f0000,0x0000852f,0x00000000,0xa84f0000,0x641f863f,0xcccf888f,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafcccf,0xa84f0000,0x642f642f,0xa85fa85f,0x873fa85f,0x873f873f,0xa85f642f,0x542f873f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f420f,0x420f631f,0x320f320f,0x521f210f,0x310f310f,0x210f521f,0x420f420f,0x631f631f,0x632f632f,0x632f964f,0x632f632f,0x964f421f,0x632f632f,0x421f964f,0x632f753f,0x964f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000090f,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x060f0c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x5c0f0000,0x0000160f,0x591f0000,0x5a0f0000,0x0000030f,0x00000000,0x170f5c0f,0x00000000,0x00000000,0x00005a0f,0x6b0f0000,0x9b0f270f,0x0000481f,0x591f0000,0x160f0000,0x00000000,0x0000551f,0x460f9a0f,0x0000871f,0x890f440f,0x871f350f,0xab0f220f,0x00000000,0x110f871f, +0x00000000,0x00000000,0x00000000,0xfd0f0000,0x0000f80f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x963f963f,0xa84fa84f,0xa84fa84f,0x863f863f,0x973fa84f,0xa84fa84f,0x742f963f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafcccf,0x642f0000,0x642fa85f,0x542f542f,0x642f542f,0x642f642f,0x542f542f,0x652fa85f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x520f631f,0x420f631f,0x210f320f,0x420f210f,0x210f310f,0x420f521f,0x420f420f,0x520f631f,0x753f964f,0x753f964f,0x421f632f,0x753f421f,0x421f632f,0x753f964f,0x632f753f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x040f0c0f,0x00000000,0x00000000,0x00000000,0x00000000, +0x0c0f0000,0x00000000,0x00000000,0x0a0f0000,0x00000000,0x00000000,0x00000d0f,0x00000000,0x00000000,0x00005b0f,0x5c0f0000,0x5a0f050f,0x0000160f,0x5a0f0000,0x00000000,0x00000000,0x00000000,0x160f8a0f,0x00006d0f,0x8a0f160f,0x6d0f370f,0x8a0f0000,0x00000000,0x00000000,0x000f871f,0x350fab0f,0x330f9a0f,0x780f0000,0x9a0f240f,0x780f330f,0x761f0000,0x330f0000, +0x00000000,0x00000000,0x00000000,0xff9f0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x752f973f,0x642f642f,0x642f642f,0x752f642f,0x642f642f,0x642f642f,0x752f642f,0x531f752f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x431f542f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f542f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f631f,0x420f520f,0x210f320f,0x520f210f,0x210f310f,0x420f420f,0x320f320f,0x520f631f,0x421f964f,0x753f753f,0x421f632f,0x964f421f,0x421f632f,0x753f753f,0x632f632f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x191f0b0f,0x00000000,0x00000000,0x00000000,0x00000000, +0x0c0f0000,0x0000180f,0x0a0f0000,0x491f0000,0x0000060f,0x00000000,0x291f0c0f,0x00000000,0x00000000,0x170f5a0f,0x00006c0f,0x5b0f280f,0x5b0f050f,0x5a0f0000,0x00000000,0x00000000,0x00000000,0x350f9c0f,0x291f8a0f,0x9b0f0000,0x9b0f350f,0x8a0f291f,0x00000000,0x00006b0f,0x440f9a0f,0x470fab0f,0x350fab0f,0x890f0000,0x9a0f130f,0xab0f360f,0x9a0f0000,0x0000220f, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x0000852f,0x00000000,0xa84f0000,0x0000852f,0x00000000,0xa84f0000,0x641f963f,0xcccfcccf,0x0000cccf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafbbbf,0x00000000,0x652fa85f,0x00000000,0x00000000,0x00000000,0x00000000,0x652fa85f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f531f,0x420f520f,0x310f320f,0x520f210f,0x210f310f,0x310f521f,0x210f320f,0x420f520f,0x421f753f,0x753f753f,0x632f632f,0x964f421f,0x421f632f,0x632f964f,0x421f632f,0x632f753f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000081f,0x00000000,0x00000000,0x00000000,0x00000000,0x0b0f0000,0x00000000,0x00000000,0x0c0f0000,0x00000000,0x00000000,0x00000b0f,0x00000000, +0x00000000,0x00000b0f,0x0b0f0000,0x5c0f060f,0x0000040f,0x0a0f0000,0x180f0000,0x00000000,0x00000000,0x160f5c0f,0x280f5c0f,0x790f0000,0x591f170f,0x5c0f160f,0x00000000,0x00005b0f,0x00006b0f,0x470f9b0f,0x250f890f,0x8a0f0000,0x8a0f360f,0x9a0f370f,0x481f0000,0x170f0000,0x350fab0f,0x470f9a0f,0x470f890f,0x9a0f0000,0x9a0f240f,0x780f350f,0x780f0000,0x0000360f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x863fa84f,0x0000752f,0x00000000,0xa84f0000,0x0000752f,0x00000000,0xa84f0000,0x641f863f,0xcccfcccf,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafcccf,0xa84f0000,0x542f873f,0xa85fa85f,0x873f873f,0x873f873f,0xa84fa84f,0x542fa85f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f531f,0x420f631f,0x420f320f,0x521f310f,0x310f420f,0x320f521f,0x210f320f,0x520f631f,0x421f753f,0x632f964f,0x753f632f,0x964f632f,0x632f753f,0x632f964f,0x421f632f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x030f091f,0x00000000,0x00000000,0x00000000,0x00000000,0x0a0f0000,0x0000060f,0x0c0f0000,0x4b0f0000,0x0000180f,0x00000000,0x170f0c0f,0x00000000, +0x00000000,0x170f5c0f,0x00000a0f,0x5b0f170f,0x0a0f170f,0x5b0f0000,0x00000000,0x00000000,0x00005b0f,0x170f5b0f,0x170f5c0f,0x9c0f0000,0x5a0f140f,0x5c0f050f,0x5a0f0000,0x160f0000,0x170f9b0f,0x370f780f,0x250f8a0f,0x890f0000,0x8a0f350f,0x8a0f250f,0x9a0f0000,0x0000030f,0x470f890f,0x360f890f,0x240f9b0f,0x890f0000,0x780f360f,0x780f360f,0x780f0000,0x0000130f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x863fb95f,0x0000852f,0x00000000,0xa84f0000,0x0000752f,0x00000000,0xa84f0000,0x641f863f,0xcccfcccf,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafbbbf,0x642f0000,0x642fa84f,0x542f542f,0x642f542f,0x642f642f,0x642f642f,0x642fa84f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x631f631f,0x320f420f,0x420f210f,0x310f420f,0x531f210f,0x631f320f,0x420f333f,0x632f753f,0x964f964f,0x632f753f,0x753f421f,0x632f753f,0x964f421f,0x964f632f,0x632f666f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000b1f,0x00000000,0x00000000,0x00000000,0x00000000,0x0d0f0000,0x00000000,0x00000000,0x0b1f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000b0f,0x090f0000,0x4b0f180f,0x0000060f,0x0a0f0000,0x180f0000,0x00000000, +0x00000000,0x170f5b0f,0x160f4a0f,0x790f0000,0x5b0f160f,0x5b0f160f,0x00000000,0x00000e0f,0x170f5a0f,0x170f790f,0x280f8b0f,0x8b0f0000,0x9c0f470f,0x5b0f150f,0x5b0f0000,0x0000150f,0x360f8a0f,0x130f890f,0x350f890f,0x890f0000,0x780f240f,0x8a0f250f,0x8a0f0000,0x0000360f,0x240f9a0f,0x240f780f,0x460fab0f,0x890f0000,0x780f240f,0x890f130f,0x9a0f0000,0x0000120f, +0x00000000,0x00000000,0x00000000,0x975f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x752f973f,0x973f752f,0x963f963f,0x973f963f,0x973f752f,0x973f973f,0x963f963f,0x531f752f,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xbbbfbbbf,0x999fbbbf,0x00000000,0x431f642f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f542f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x631f420f,0x320f520f,0x420f320f,0x420f222f,0x631f210f,0x631f420f,0x310f420f,0x632f753f,0x964f632f,0x632f753f,0x753f632f,0x753f555f,0x964f421f,0x964f632f,0x421f632f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x070f0a1f,0x00000000,0x00000000,0x00000000,0x00000000,0x0c1f0000,0x0000191f,0x00000000,0x4b0f0000,0x0000070f,0x00000000,0x00000b1f,0x00000000,0x00000000,0x170f491f,0x00000c0f,0x4b0f050f,0x080f170f,0x4b0f0000,0x00000000,0x00000000, +0x0000090f,0x170f5b0f,0x060f481f,0x690f0000,0x491f140f,0x491f170f,0x080f0000,0x2a1f0000,0x160f5b0f,0x240f8a0f,0x370f560f,0x790f0000,0x790f360f,0x790f470f,0x790f0000,0x0000160f,0x250f9a0f,0x250f890f,0x240f780f,0x780f0000,0x780f240f,0x780f130f,0x8a0f0000,0x0000350f,0x350f890f,0x130f780f,0x470f890f,0x671f0000,0x780f240f,0x671f130f,0x890f0000,0x0000350f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x963fb95f,0xa84f963f,0xa84fa84f,0xa84fa84f,0xa84f863f,0xa84fa84f,0x973fa84f,0x742f963f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xaaafbbbf,0x00000000,0x652fa85f,0x00000000,0x00000000,0x00000000,0x00000000,0x431fa84f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f420f,0x631f420f,0x420f520f,0x631f210f,0x420f320f,0x520f420f,0x631f420f,0x631f631f,0x421f632f,0x964f632f,0x632f753f,0x964f421f,0x632f632f,0x753f632f,0x964f632f,0x964f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0e1f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000d0f,0x0c0f0000,0x4a0f0000,0x0000060f,0x0a1f0000,0x070f0000,0x00000000,0x00000000,0x050f4c0f,0x191f4a0f,0x7c0f0000,0x4a0f060f,0x4a0f030f,0x00000000,0x00000b0f, +0x040f5c0f,0x170f8a0f,0x030f790f,0x680f0000,0x790f140f,0x491f040f,0x491f0000,0x0000040f,0x160f790f,0x360f790f,0x010f790f,0x670f0000,0x670f140f,0x790f140f,0x8a0f0000,0x0000250f,0x360f790f,0x240f780f,0x130f890f,0x671f0000,0x671f130f,0x671f130f,0x671f0000,0x0000360f,0x240f780f,0x130f670f,0x240f671f,0x671f0000,0x671f020f,0x670f130f,0x671f0000,0x0000240f, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000331f,0x00000000,0x00000000,0x00000000,0x863fa94f,0x852f642f,0x852f852f,0x863f852f,0x852f852f,0x752f852f,0x863f752f,0x742f863f,0xcccfcccf,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0xa84f0000,0x652f642f,0xa85f873f,0x873fa85f,0xa85fa85f,0xa84f873f,0x542f873f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x531f420f,0x521f420f,0x420f421f,0x631f420f,0x420f631f,0x520f310f,0x310f420f,0x531f531f,0x753f632f,0x753f632f,0x632f542f,0x964f632f,0x632f964f,0x753f421f,0x421f632f,0x753f753f, +0x00000000,0x00000000,0x00000000,0x00000b1f,0x00000000,0x00000000,0x00000000,0x00000000,0x0b1f0000,0x00000000,0x00000000,0x3b0f0000,0x00001a1f,0x00000000,0x00000c1f,0x00000000,0x00000000,0x1a1f381f,0x00000a1f,0x391f181f,0x091f060f,0x391f0000,0x00000000,0x00000000,0x00000b0f,0x170f4b0f,0x050f391f,0x7a0f0000,0x491f370f,0x4c0f050f,0x090f0000,0x070f0000, +0x170f491f,0x260f790f,0x250f680f,0x570f0000,0x790f030f,0x680f240f,0x571f0000,0x0000040f,0x140f680f,0x140f680f,0x240f671f,0x670f0000,0x571f020f,0x790f020f,0x670f0000,0x0000360f,0x140f780f,0x130f670f,0x240f671f,0x671f0000,0x440f020f,0x671f020f,0x671f0000,0x0000020f,0x020f671f,0x020f780f,0x020f670f,0x660f0000,0x661f020f,0x561f020f,0x560f0000,0x0000020f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f752f,0x963f863f,0xa84f963f,0x963f852f,0x444f863f,0x111f222f,0x742f742f,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xcccfbbbf,0xbbbfbbbf,0xaaafbbbf,0x999faaaf,0x642f0000,0x542f873f,0x542f542f,0x542f652f,0x642f642f,0x542f642f,0x652fa85f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f631f,0x631f310f,0x420f631f,0x420f310f,0x420f631f,0x520f310f,0x310f420f,0x531f731f,0x632f753f,0x964f421f,0x632f964f,0x632f421f,0x632f964f,0x753f421f,0x421f632f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x0a1f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000d1f,0x00000000,0x3b0f0000,0x0000070f,0x0e1f0000,0x181f0000,0x00000000,0x00000000,0x030f4a1f,0x050f381f,0x580f0000,0x391f050f,0x381f040f,0x00000000,0x00000000,0x170f4b0f,0x060f690f,0x040f690f,0x680f0000,0x7a0f260f,0x4a0f040f,0x381f0000,0x0000040f, +0x040f680f,0x240f670f,0x130f680f,0x561f0000,0x680f020f,0x670f140f,0x680f0000,0x0000020f,0x030f570f,0x030f460f,0x020f450f,0x560f0000,0x560f020f,0x680f020f,0x571f0000,0x0000020f,0x130f561f,0x010f560f,0x020f671f,0x450f0000,0x560f020f,0x560f000f,0x671f0000,0x0000020f,0x020f670f,0x130f560f,0x010f671f,0x560f0000,0x560f010f,0x560f010f,0x660f0000,0x0000000f, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x752f333f,0x752f642f,0x752f752f,0x963f752f,0x752f642f,0x111f752f,0x963f531f,0x531f531f,0xbbbf444f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfaaaf,0xbbbfbbbf,0x999faaaf,0x00000000,0x432f642f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f431f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x631f631f,0x731f310f,0x531f531f,0x631f420f,0x420f531f,0x631f420f,0x420f531f,0x310f731f,0x753f753f,0x964f421f,0x753f753f,0x964f632f,0x632f753f,0x964f632f,0x632f753f,0x421f964f, +0x00000000,0x00000b1f,0x00000000,0x0e1f0000,0x0000060f,0x0c1f0000,0x00000000,0x00000000,0x00000000,0x191f3c0f,0x0000091f,0x3a0f0000,0x0b1f060f,0x391f0000,0x00000000,0x00000000,0x0000091f,0x050f690f,0x030f580f,0x6a0f0000,0x571f030f,0x680f050f,0x081f0000,0x00000000,0x060f381f,0x140f690f,0x140f690f,0x690f0000,0x580f130f,0x571f250f,0x580f0000,0x0000030f, +0x020f670f,0x020f571f,0x130f680f,0x680f0000,0x561f010f,0x561f030f,0x571f0000,0x0000030f,0x020f560f,0x000f560f,0x000f450f,0x450f0000,0x450f000f,0x561f000f,0x680f0000,0x0000010f,0x010f560f,0x010f671f,0x010f671f,0x671f0000,0x450f000f,0x671f010f,0x560f0000,0x0000020f,0x020f550f,0x000f670f,0x010f550f,0x550f0000,0x440f000f,0x661f000f,0x450f0000,0x0000010f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863f666f,0x863f752f,0x963f863f,0xa84f963f,0x963f752f,0x963f963f,0xa84f963f,0x641f963f,0xcccf888f,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0xa50fa50f,0xd71fd71f,0xd71fa50f,0xa50fd71f,0xd71fa50f,0xd71fd71f,0xd71fa50f,0xa50fa50f,0xa55fc77f,0x955fa55f,0x733fc86f,0x422f522f,0x800f422f,0xa55fc77f,0x422f733f,0x844fa55f, +0x643f543f,0x432f321f,0x422f321f,0x321f321f,0x432f432f,0x654f432f,0x321f432f,0x543f321f,0x752ffb5f,0x764f752f,0x764f764f,0x752ffb5f,0x764f764f,0xfb5f764f,0xc84ffb5f,0x764f752f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x973f863f,0xa84fa84f,0xa84fa84f,0xa84f863f,0xa84fa84f,0xa84fa84f,0x641f963f,0xcccfdddf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xea4fa50f,0xea4fa50f,0xd71fe91f,0xd71fa50f,0xa50fe91f,0xe91fe91f,0xd71fe91f,0xa50fa50f,0xa55fc77f,0x844f400f,0x422f100f,0x800fc77f,0x500f422f,0x500f955f,0x622f600f,0xa66f633f, +0x543f432f,0x643f654f,0x643f654f,0x533f765f,0x321f321f,0x644f644f,0x321f321f,0x433f543f,0xffff752f,0x431fc84f,0xfb5f764f,0xffffc84f,0x764f431f,0x752ffb5f,0xfffffd9f,0x431fc84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f863f,0x863f863f,0x863f863f,0x963f963f,0x863f963f,0x963f752f,0x641f963f,0xcccfdddf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xea4fd71f,0xa50fea4f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fe91f,0xa50fea4f,0xd71fd71f,0x733f533f,0x211f844f,0x800f422f,0x500fc77f,0x100f200f,0x500f744f,0x533f211f,0x855f300f, +0x432f654f,0x321f644f,0x643f321f,0x543f321f,0x321f543f,0x321f865f,0x422f432f,0x422f543f,0x752f752f,0x764f431f,0x764f752f,0x752f431f,0x764f431f,0x431f764f,0xc84fc84f,0x764f431f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x752f973f,0x642f642f,0x642f642f,0x752f642f,0x642f642f,0x642f642f,0x752f642f,0x531f752f,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fd71f,0xe91fe91f,0xe91fa50f,0xe91fa50f,0xa50fe91f,0xd71fe91f,0xd71fa50f,0xd71fe91f,0x422f744f,0x533f100f,0x633fa55f,0xa75fa55f,0x422f311f,0x311f211f,0xb66f422f,0x533f800f, +0x321f432f,0x321f765f,0x644f765f,0x543f321f,0x321f432f,0x432f432f,0x432f432f,0x976f432f,0x431f764f,0xfb5f764f,0x752f752f,0x431f764f,0xfb5f764f,0x764f752f,0x431f431f,0x431f764f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863fb95f,0x863f752f,0x963f863f,0xa84f963f,0x863f852f,0x752f863f,0xa84f863f,0x742f863f,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd71fa50f,0xe91fe91f,0xd71fd71f,0xe91fa50f,0xe91fd71f,0xa50fe91f,0xea4fe91f,0xa50fd71f,0xc77fea8f,0x533f853f,0x855fc77f,0x200f855f,0x955f533f,0xa66f944f,0xa65f422f,0x533f700f, +0x432f533f,0x755f654f,0x321f321f,0x865f432f,0x654f432f,0x765f543f,0x432f865f,0x543f533f,0x764f764f,0xc84ffb5f,0xc84ffd9f,0x764f431f,0xc84ffb5f,0x431f752f,0x764f764f,0x431ffb5f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863fa84f,0x863f642f,0x863f863f,0xa84f963f,0x863f852f,0x863f863f,0xa84f863f,0x641f863f,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0xf00f0000,0x0000f00f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fa50f,0xa50fa50f,0xa50fe91f,0x320f320f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xa50fa50f,0x855f400f,0x533f733f,0x600f633f,0x311f844f,0xd88fb66f,0x955f844f,0x533f954f,0x211f100f, +0x321f432f,0x644f321f,0x533f321f,0x654f321f,0x432f321f,0x321f543f,0x754f654f,0x422f876f,0x752f764f,0xfd9f752f,0xfd9fffff,0x764f431f,0xffffc84f,0x431f431f,0xfb5f764f,0x431fc84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x777f0000,0x0000777f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f852f,0x963f963f,0xa84f963f,0x863f752f,0x963f752f,0xa84f963f,0x742f963f,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfaaaf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0xfd0ff00f,0xf00ff80f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fd71f,0xe91fe91f,0x320fa50f,0xb80fea0f,0xa50f320f,0xd71fe91f,0xe91fa50f,0xd71fd71f,0x844f500f,0x533f733f,0x100f522f,0x522f311f,0x600f633f,0x844fb66f,0x844f633f,0x300f500f, +0x654f321f,0x432f321f,0x654f865f,0x321f654f,0x321f432f,0x321f865f,0x654f644f,0x654f432f,0x431f764f,0xc84f431f,0xc84ffd9f,0x764f431f,0x431f752f,0x764f764f,0xc84f752f,0x431fffff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x888f0000,0x0000777f,0x00000000,0x00000000,0x00000000,0x752f973f,0x963f752f,0x963f963f,0x973f963f,0x973f752f,0x963f963f,0x963f963f,0x531f752f,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0x00000000,0x00000000,0x00000000,0xff9ff00f,0xf00fffff,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd71fa50f,0xe91fd71f,0x320fe91f,0xea0fb80f,0x320fb80f,0xa50fa50f,0xe91fe91f,0xd71fea4f,0x844f733f,0x522f211f,0xc77f955f,0x422f422f,0x200f633f,0x955f311f,0x311f500f,0x911f400f, +0x644f654f,0x432f654f,0x432f432f,0x432f321f,0x654f543f,0x543f644f,0x644f644f,0x754f321f,0x764f764f,0x431f764f,0x752f752f,0x764f431f,0x764f431f,0x752ffb5f,0x752f764f,0x431ffd9f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x963f963f,0x752f963f,0x963f863f,0x863f963f,0x863f863f,0x963f963f,0x641f963f,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0xf00f0000,0x0000a00f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fd71f,0xa50fa50f,0xa50fa50f,0xb80f320f,0xa50fea0f,0xd71fe91f,0xa50fa50f,0xa50fa50f,0x100f733f,0x800f533f,0xa75f800f,0xa55f964f,0x733fb66f,0x422f522f,0x000f211f,0xda7fd88f, +0x987f654f,0x432f754f,0x654f543f,0x321f432f,0x432f432f,0x321f644f,0x321f321f,0x644f643f,0xc84ffb5f,0x764f752f,0x752f431f,0x764f431f,0xfb5f764f,0x752fc84f,0x764f431f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x863fa84f,0x752f752f,0x852f752f,0x863f852f,0x752f752f,0x642f752f,0x863f852f,0x641f863f,0x999faaaf,0x999f999f,0x999f999f,0x999f999f,0x888f999f,0x888f888f,0x999f999f,0x888f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xea4fd71f,0xe91fe91f,0xe91fe91f,0x320fa50f,0xa50fa50f,0xa50fe91f,0xd71fe91f,0xd71fd71f,0x422f744f,0x800fc77f,0x311f600f,0x400fa55f,0x844fea8f,0x533fb86f,0xd77f522f,0x500f500f, +0x543f422f,0x643f532f,0x865f765f,0x321f765f,0x765f543f,0x321f432f,0x321f321f,0x654f422f,0xfffffb5f,0x431ffd9f,0x431f764f,0xfb5f764f,0xc84f752f,0xc84fffff,0x764f431f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x863f333f,0x863f852f,0x963f963f,0xa84f863f,0x863f752f,0x863f863f,0xa84f863f,0x641f863f,0x999f444f,0x999f999f,0x999f999f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fa50f,0xa50fd71f,0xa50fa50f,0xa50fea4f,0xa50fe91f,0xd71fea4f,0xe91fa50f,0xd71fea4f,0x700f422f,0x844fa65f,0x100f733f,0x600fa55f,0x733f844f,0x100f744f,0x422f633f,0x733f700f, +0x432f432f,0x754f654f,0x321f321f,0x432f754f,0x654f432f,0x543f654f,0x321f644f,0x654f321f,0x752f752f,0x764f431f,0x764f764f,0x764f764f,0x752f431f,0x752fc84f,0x764f431f,0x764f431f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x752f666f,0x752f642f,0x752f752f,0x973f752f,0x752f642f,0x752f752f,0x963f752f,0x531f752f,0x999f888f,0x999f888f,0x888f999f,0x999f888f,0x999f888f,0x888f888f,0x999f888f,0x777f888f,0x00000000,0x00000000,0x00000000,0x975f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fa50f,0xe91fd71f,0xa50fe91f,0xa50fe91f,0xd71fe91f,0xe91fd71f,0xd71fa50f,0xa50fe91f,0x300f533f,0x844fa66f,0x100f633f,0x500f844f,0x733f955f,0x300f211f,0x422fb66f,0x311f300f, +0x644f543f,0x765f321f,0x321f644f,0x432f643f,0x321f644f,0x654f976f,0x654f643f,0x432f876f,0x431f764f,0x752f764f,0x764f431f,0xfb5ffb5f,0x431f764f,0x431f752f,0x752f764f,0x764f764f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x963f852f,0x863f963f,0xa84f963f,0x863f752f,0x863f863f,0x973f863f,0x742f963f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd71fd71f,0xe91fd71f,0xa50fe91f,0xa50fe91f,0xe91fea4f,0xe91fa50f,0xa50fe91f,0xd71fe91f,0xa55fc77f,0x311f211f,0x100f211f,0x500f633f,0x100f422f,0x700fc77f,0x733f844f,0x533f853f, +0x754f321f,0x754f321f,0x644f321f,0x432f643f,0x543f432f,0x654f432f,0x543f643f,0x533f432f,0x764f764f,0xc84ffb5f,0x764f431f,0x752f431f,0x764fffff,0x764f431f,0xc84ffb5f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x863fa94f,0xa84f752f,0xa84fa84f,0xa84fa84f,0xa84f963f,0xa84fa84f,0xa84fa84f,0x742f863f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000331f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fd71f,0xe91fea4f,0xd71fa50f,0xa50fd71f,0xe91fea4f,0xa50fd71f,0xe91fe91f,0xd71fa50f,0x844fc77f,0xc77f633f,0xa55f700f,0x100f533f,0x911f633f,0x500fb66f,0x500f955f,0x311f744f, +0x876f422f,0x321f643f,0x321f321f,0x422f754f,0x765f543f,0x432f865f,0x432f432f,0x432f432f,0xfb5f764f,0xffffc84f,0x431ffd9f,0x431f764f,0x431fc84f,0xfb5f764f,0xffffc84f,0x431fc84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f863f,0x963f863f,0x863f963f,0x963f963f,0x863f863f,0x963f963f,0x742f963f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fa50f,0xd71fe91f,0xe91fa50f,0xa50fd71f,0xe91fd71f,0xa50fe91f,0xe91fd71f,0xa50fe91f,0x955f633f,0xa66f200f,0x633f500f,0x300f500f,0x300f422f,0x600fa75f,0x844f955f,0x311f211f, +0x543f533f,0x321f865f,0x432f433f,0x321f876f,0x765f432f,0x543f543f,0x422f422f,0x765f432f,0x752f764f,0xc84f752f,0x752f752f,0x764f431f,0x431f431f,0x752f764f,0x752f752f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x531f752f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f431f,0x531f531f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fa50f,0xd71fa50f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0x633f633f,0x311f400f,0x100f511f,0x300f211f,0xa75fa55f,0x954f422f,0x311f311f,0x522f311f, +0x543f865f,0x754f654f,0x765f543f,0x321f432f,0x321f321f,0x433f543f,0x321f321f,0x876f865f,0x431f764f,0x431f431f,0x431f431f,0x764f764f,0x764f764f,0x431f764f,0x431f431f,0x431f431f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f100f,0x111f111f,0x111f111f,0x333f333f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f100f,0x531f320f,0x320f100f,0x100f431f,0x210f210f,0x321f210f,0x321f320f,0x531f210f,0xeedfbbbf,0xeeefeeef,0xbbbfeeef,0xdddfeeef,0xeeefeddf,0xffffffff,0xeeefffff,0xbbafeeef,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f, +0xa50fa50f,0xa50fd71f,0xfd2fe91f,0xa50fd71f,0xd71fa50f,0xa50fe91f,0xd71fd71f,0xa50fa50f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcccf0000,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0x0000cccf,0xcccf0000,0xdddfdddf,0xdddfdddf,0x720fdddf,0x610f610f,0xdddfdddf,0xdddfdddf,0x0000cccf, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x864f0000,0x0000873f,0x00000000,0x111f111f,0x222f222f,0x111f211f,0x111f111f,0x111f111f,0x111f111f,0x111f100f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f100f,0x000f321f,0x531f100f,0x210f100f,0x100f531f,0x531f210f,0x321f110f,0x431f110f,0xeeeffeef,0xdddfdddf,0xeeefdddf,0xeeefeeef,0xeedfeeef,0xeeefeeef,0xeeefeedf,0xeeeffedf,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xa50fe91f, +0xea4fa50f,0xe91fe91f,0xff3fff2f,0xd71ffd3f,0xfd3fa50f,0xe91fff3f,0xe91fd71f,0xa50fe91f,0xdddf0000,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0x0000dddf,0xcccf0000,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0x0000cccf,0x941f0000,0xeeef720f,0x720f720f,0x720f720f,0x720f720f,0x720f720f,0x720f720f,0x0000941f, +0xa52f0000,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x542f0000,0xaaafaaaf,0xaaafaaaf,0x211f211f,0x111f111f,0x211f211f,0x111f111f,0x211f111f,0x111f111f,0x222f211f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f100f,0x100f210f,0x531f210f,0x210f100f,0x100f531f,0x321f210f,0x321f110f,0x531f110f,0xefefdddf,0xeeefeeef,0xeddfeeef,0xdddfeeef,0xdddfdddf,0xbbbfeeef,0xeeefeeef,0xdddfdddf,0xd71fa50f,0xa50fe91f,0xe91fa50f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fe91f,0xa50fe91f,0xd71fa50f,0xa50fe91f,0x200f200f,0xe91fe91f,0xea4fa50f,0xa50f200f,0xe91fe91f,0xa50fe91f, +0xd71fa50f,0xeb1fe91f,0x400f400f,0xfd3fff3f,0xff9fe91f,0xeb1f400f,0xe91ffd3f,0xa50fe91f,0xdddf0000,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0x0000dddf,0xcccf0000,0xcccfeeef,0xdddfcccf,0xcccfeeef,0xdddfcccf,0xcccfeeef,0xdddfcccf,0x0000cccf,0x941f0000,0x820f720f,0x720f820f,0x820f720f,0x720f720f,0x820f820f,0x720f820f,0x0000941f, +0xa52f0000,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xaaafaaaf,0x666f666f,0x666f666f,0x111f111f,0x211f111f,0x111f111f,0x211f111f,0x111f111f,0x211f211f,0x111f111f,0x211f222f,0x333f444f,0x444f444f,0x333f444f,0x444f444f,0x444f333f,0x444f444f,0x333f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x100f320f,0x100f210f,0x321f321f,0x210f100f,0x100f531f,0x531f210f,0x531f100f,0x321f100f,0xffffeeef,0xbbbfeeef,0x111f433f,0x333f212f,0xfeefeeef,0xefefeeef,0xeeefeeef,0xeeefdddf,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xea4fd71f,0xea4fa50f,0xa50fe91f,0xe91fea4f,0xa50fd71f,0xd71fa50f,0xa50fe91f,0x410f200f,0xea4f200f,0x200fa50f,0x200f200f,0xe91fa50f,0xa50fd71f, +0xd71fa50f,0xe91ffd3f,0xba3f400f,0xff9f400f,0x400feb1f,0x400f400f,0xfd3feb1f,0xa50fd71f,0xdddf0000,0xdddfeeef,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfeeef,0xeeefdddf,0x0000dddf,0xcccf0000,0xa52fcccf,0xcccfa52f,0xa52fcccf,0xcccfa52f,0xa52fcccf,0xcccfa52f,0x0000cccf,0x941f0000,0x610f610f,0x610f610f,0x720f820f,0x820f820f,0x610f610f,0x610f610f,0x0000941f, +0xa52f0000,0xb52fb52f,0xb52fa52f,0xa52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xaaafaaaf,0x666f666f,0x543f432f,0x00000000,0x111f111f,0x111f111f,0x111f111f,0x100f100f,0x111f111f,0x111f111f,0x111f111f,0x100f111f,0x444f444f,0x444f333f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x100f310f,0x210f320f,0x321f321f,0x210f320f,0x100f320f,0x531f310f,0x531f100f,0x321f100f,0xeeefeeef,0xbbbfbbbf,0x333fdedf,0x212f333f,0xeeef333f,0xdddfdddf,0xeddfdddf,0xdddf433f,0xd71fa50f,0xd71fe91f,0xea4fa50f,0xe91fd71f,0xe91fa50f,0xa50fd71f,0xe91fea4f,0xa50fd71f,0xd71fa50f,0x200fa50f,0x410f410f,0xa50f410f,0x200fa50f,0x410f410f,0xa50f200f,0xa50fd71f, +0xd71fa50f,0x400feb1f,0xba3fba3f,0xeb1fbb3f,0x400feb1f,0xba3fbb3f,0xeb1f400f,0xa50fd71f,0xdddf0000,0xe33feeef,0xeeefe11f,0xeeefeeef,0xe11feeef,0xeeefdddf,0xeeefeeef,0x0000dddf,0x941f0000,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0x0000941f,0x941f0000,0x720f720f,0x720f720f,0x610f610f,0x610f610f,0x720f610f,0x720f720f,0x0000941f, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x864f0000,0xaaaf542f,0x666f666f,0x00000000,0x873f432f,0x00000000,0x100f111f,0x211f111f,0x100f111f,0x111f111f,0x100f111f,0x111f111f,0x111f100f,0x111f111f,0x333f333f,0x444f333f,0x333f333f,0x333f333f,0x333f333f,0x444f333f,0x333f333f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f320f,0x210f320f,0x210f531f,0x310f210f,0x100f320f,0x431f210f,0x321f100f,0x210f100f,0x443f333f,0xffffeeef,0xfeefffff,0xffffeeef,0xeeefffff,0xffffffff,0x333feeef,0x111f111f,0xea4fa50f,0xd71fe91f,0xea4fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xe91fea4f,0xa50fd71f,0xea4fa50f,0x200fa50f,0x410f410f,0xa50f410f,0x200fa50f,0x410f410f,0xa50f410f,0xa50fd71f, +0xea4fa50f,0x400fa50f,0xbb3fbb3f,0xa50fbb3f,0x400feb1f,0xbb3fbb3f,0xeb1fbb3f,0xa50ffd2f,0xdddf0000,0xe11feeef,0xeeefe11f,0xeeefeeef,0xeeefdddf,0xdddfeeef,0xeeefeeef,0x0000dddf,0x941f0000,0xb52fa52f,0xa52fb52f,0xb52fa52f,0xa52fb52f,0xb52fa52f,0xa52fb52f,0x0000941f,0x941f0000,0x820f720f,0x720f820f,0x820f720f,0x720f820f,0x820f720f,0x720f820f,0x0000941f, +0xa52f0000,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x542f0000,0x666faaaf,0x00000000,0x00000000,0x864f642f,0x00000000,0x222f222f,0x111f211f,0x111f111f,0x111f111f,0x222f211f,0x111f111f,0x222f222f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x500f0000,0x0000400f,0x00000000,0x00000000,0x00000000, +0x321f210f,0x320f110f,0x210f431f,0x100f210f,0x100f431f,0x210f321f,0x321f000f,0x320f100f,0xedcf333f,0xeeefddcf,0xbbbfeeef,0xdddfeedf,0xdddfdddf,0xeeefeeef,0xeeefbbbf,0xeeefeeef,0xea4fa50f,0xe91fe91f,0xea4fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xe91fd71f,0xa50fa50f,0xea4fa50f,0x200fa50f,0x410f410f,0xa50f410f,0x200fa50f,0x410f410f,0x410f410f,0xa50fa50f, +0xea4fa50f,0x400fa50f,0xcc3fbb3f,0xa50fcc3f,0x400feb1f,0xcc3fcc3f,0xbb3fbb3f,0xa50feb1f,0xdddf0000,0xeeefeeef,0xdddfeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0xeeefdddf,0x0000dddf,0x941f0000,0xb52fb52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0x0000941f,0x941f0000,0x820f820f,0x820f820f,0x720f820f,0x820f820f,0x820f820f,0x820f720f,0x0000941f, +0xa52f0000,0xb52fb52f,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xa52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0xaaaf0000,0x543f666f,0x0000873f,0x00000000,0x642f0000,0x0000873f,0x111f111f,0x222f222f,0x111f111f,0x211f211f,0x111f111f,0x211f111f,0x111f111f,0x211f211f,0x333f333f,0x444f444f,0x444f444f,0x444f444f,0x333f333f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x400f0000,0x0000200f,0x00000000,0x00000000,0x00000000, +0x531f320f,0x320f100f,0x100f531f,0x100f531f,0x100f531f,0x110f321f,0x321f210f,0x320f100f,0xbbbfeeef,0xeedfffff,0xdddfeeef,0xeeefdddf,0xbbbfffff,0xeeefeeef,0xdddfffff,0xdddfdddf,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xa50fa50f,0xe91fa50f,0xa50fe91f,0x410f410f,0xa50fa50f,0xa50fa50f,0x410f410f,0x410f410f,0xa50fa50f, +0xe91fa50f,0xa50fe91f,0xcc3fcc3f,0xe91fa50f,0xa50fe91f,0xcc3fcd4f,0xbb3fcc3f,0xa50fa50f,0xdddf0000,0xeeefe11f,0xdddfeeef,0xe33feeef,0xdddfe11f,0xeeefdddf,0xeeefeeef,0x0000dddf,0x941f0000,0x941f941f,0x941f941f,0x941f941f,0x941f941f,0x941f941f,0x941f941f,0x0000941f,0x941f0000,0x610f610f,0x610f610f,0x610f610f,0x610f610f,0x610f610f,0x610f610f,0x0000941f, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x666faaaf,0x642f0000,0x873f864f,0x00000000,0x642f0000,0x0000864f,0x111f111f,0x111f111f,0x111f211f,0x111f111f,0x111f111f,0x100f111f,0x111f111f,0x111f111f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x763f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0x531f210f,0x321f100f,0x100f431f,0x100f210f,0x100f210f,0x100f431f,0x320f320f,0x321f100f,0xdddfdddf,0xffffdddf,0xeeefffff,0xfffffeef,0xeeefeddf,0xeeeffeef,0xefefeeef,0xdddfdddf,0xe91fa50f,0xe91fe91f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xd71fe91f,0xe91fa50f,0xa50fd71f,0xe91fa50f,0xe91fe91f,0xa50fa50f,0xd71fa50f,0xa50fa50f,0xa50fa50f,0xa50fa50f,0xa50fd71f, +0xe91fa50f,0xff3ffd3f,0xeb1fe91f,0xd71fe91f,0xe91feb1f,0xeb1fe91f,0xeb1fe91f,0xa50ffd2f,0xdddf0000,0xdddfeeef,0xdddfeeef,0xe11feeef,0xdddfe11f,0xe33fdddf,0xeeefe11f,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fa52f,0xb52fa52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x666faaaf,0x00000000,0x864f642f,0x0000864f,0x642f0000,0x0000864f,0x111f111f,0x211f111f,0x100f100f,0x111f111f,0x111f111f,0x222f222f,0x111f111f,0x222f222f,0x444f333f,0x444f333f,0x333f333f,0x444f444f,0x444f333f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x531f210f,0x210f100f,0x431f320f,0x310f100f,0x100f310f,0x100f431f,0x431f320f,0x321f100f,0xeeefeedf,0xeeefeeef,0xdddfdddf,0xdddfbbbf,0xddcfbbbf,0xeeefdddf,0xeedfefef,0xeeeffeef,0xd71fa50f,0xe91fe91f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xd71fa50f,0x200fa50f,0x200fa50f,0xa50fa50f,0xa50f200f,0x200fa50f,0x200fa50f,0xa50fd71f, +0xfd2fa50f,0x400feb1f,0x400feb1f,0xeb1feb1f,0xeb1f400f,0x400feb1f,0x400feb1f,0xa50fff2f,0xdddf0000,0xdddfeeef,0xeeefe11f,0xeeefeeef,0xdddfeeef,0xe11feeef,0xeeefe11f,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fa52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xa52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0xaaaf0000,0x0000666f,0x00000000,0x642f0000,0x873f864f,0x00000000,0x864f542f,0x211f211f,0x111f111f,0x211f222f,0x111f111f,0x211f211f,0x111f111f,0x111f111f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f333f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0x321f100f,0x310f100f,0x431f210f,0x210f100f,0x210f100f,0x100f531f,0x531f310f,0x431f100f,0xefefbbbf,0xdddfddcf,0xbbbfdddf,0xeeefeeef,0xeedfeeef,0xffffffff,0xeeefeeef,0xeeefffff,0xd71fa50f,0xe91fe91f,0xd71fa50f,0xa50fe91f,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xd71fa50f,0x200f200f,0x200f200f,0x200f410f,0x410f200f,0x200f200f,0x200f410f,0xa50fa50f, +0xff2fa50f,0x400f400f,0x400f400f,0x400fde4f,0xdf4f400f,0x400f400f,0x400fcc3f,0xa50feb1f,0xdddf0000,0xdddfeeef,0xeeefeeef,0xdddfdddf,0xeeefeeef,0xeeefeeef,0xeeefdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0xaaaf542f,0x0000666f,0x00000000,0x00000000,0x864f642f,0x0000873f,0x653f432f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x100f100f,0x111f111f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f333f,0x00000000,0x00000000,0x00000000,0x975f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0x321f100f,0x210f100f,0x531f321f,0x531f100f,0x210f000f,0x100f531f,0x431f320f,0x531f100f,0xeeefeeef,0xeeefeeef,0xbbbfeeef,0xbbbfbbbf,0xeeefeeef,0xdddfdedf,0xbbbfbbbf,0xdddfdddf,0xa50fa50f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xe91fd71f,0xea4fa50f,0xa50fe91f,0xa50fa50f,0x410f200f,0x410f410f,0x410f410f,0x410f410f,0x410f410f,0x410f410f,0xa50f410f, +0xa50fa50f,0xcc3f400f,0xcd4fcc3f,0xde4fde4f,0xde4fdf4f,0xcd4fde4f,0xcc3fcc3f,0xeb1fbb3f,0xdddf0000,0xdddfeeef,0xeeefdddf,0xeeefeeef,0xe11fe33f,0xeeefdddf,0xeeefdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fa52f,0xb52fb52f,0xb52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f543f,0x0000873f,0x00000000,0x642f0000,0x653f642f,0x666f666f,0x111f111f,0x100f100f,0x211f211f,0x100f111f,0x111f111f,0x111f111f,0x222f222f,0x100f111f,0x333f333f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x444f444f,0x444f444f,0x333f444f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x531f100f,0x210f100f,0x531f320f,0x310f000f,0x210f100f,0x100f431f,0x210f310f,0x531f100f,0xffffeeef,0xeeefffff,0xdddfdddf,0xeeefdedf,0xeedfeeef,0xeeefeeef,0xeeefeeef,0x443f333f,0xa50fa50f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xa50fa50f,0x200fa50f,0xa50f410f,0x410f410f,0x410fa50f,0x410f410f,0x410fa50f,0xa50f410f, +0xa50fa50f,0x400fe91f,0xe91fcc3f,0xde4fcd4f,0xde4fe91f,0xcd4fcd4f,0xbb3fa50f,0xeb1fbb3f,0xdddf0000,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xe11fe11f,0xdddfdddf,0xeeefdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xa52fb52f,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x542f432f,0x864f642f,0x873f873f,0x00000000,0x666f432f,0xaaafaaaf,0x111f111f,0x222f211f,0x111f211f,0x111f111f,0x111f100f,0x211f111f,0x111f111f,0x222f211f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f333f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000331f,0x00000000,0x00000000,0x00000000, +0x320f100f,0x320f210f,0x321f210f,0x320f110f,0x210f320f,0x100f210f,0x431f310f,0x100f531f,0xdddf333f,0xefdfdddf,0xeedfeeef,0xbbafeeef,0xeeefdddf,0xeeefeeef,0x334f433f,0x111f111f,0xa50fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xd71fe91f,0xea4fa50f,0xa50fe91f,0xa50fa50f,0x200fa50f,0xe91fa50f,0xa50f410f,0xe91fa50f,0x410fe91f,0xea4fa50f,0xa50fa50f, +0xa50fa50f,0x400fa50f,0xe91fe91f,0xe91fcd4f,0xe91fa50f,0xcc3ffd3f,0xea4fa50f,0xa50fa50f,0xdddf0000,0xe11feeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x642f0000,0x642f642f,0x653f873f,0xaaaf666f,0x864f542f,0x211f211f,0x111f111f,0x111f211f,0x111f111f,0x211f222f,0x111f111f,0x111f111f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x210f100f,0x100f431f,0x321f320f,0x100f110f,0x210f431f,0x100f531f,0x321f210f,0x210f100f,0x333f111f,0xeeef333f,0xffffeeef,0xffffffff,0xdddfeeef,0x333f333f,0xdddfbbbf,0x111f121f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fa50f,0xa50fe91f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fa50f,0xa50fe91f, +0xd71fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fa50f,0xa50fe91f,0xdddf0000,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x432f432f,0xaaaf666f,0x0000864f,0x111f111f,0x111f211f,0x111f111f,0x211f211f,0x111f111f,0x211f111f,0x111f111f,0x211f211f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f444f,0x444f444f,0x333f333f,0x444f444f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x210f210f,0x100f321f,0x210f210f,0x100f210f,0x320f210f,0x000f210f,0x210f210f,0x321f210f,0xeeefeeef,0x333feeef,0xdddfdddf,0xeeefeddf,0xeeefeeef,0xeddfdddf,0xffffdddf,0xfeefffff,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f, +0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0x922f922f,0xa32fa22f,0x922f922f,0xa22fa22f,0x922f822f,0xa22fa22f,0x822f922f,0xd79fd78f,0xd68fd68f,0xd9afd89f,0xd78fd78f,0xd8afd8af,0xd68fc57f,0xd89fd89f,0xc67fd68f,0x888f888f,0x888f888f,0x888f888f,0x999f999f,0x999f777f,0x888f888f,0x888f888f,0x888f888f, +0x999f0000,0x444f0000,0x999f0000,0x0000444f,0x0000999f,0x444f999f,0x999f0000,0x999f0000,0x999f333f,0x444f333f,0x999f333f,0x333f444f,0x333f999f,0x444f999f,0x999f333f,0x999f333f,0x800f800f,0x800f800f,0x800f800f,0x900f800f,0x800f810f,0x800f800f,0x800f800f,0x800f801f,0x700f800f,0x912f800f,0x811f911f,0x700f800f,0xaaafbbaf,0xcccfbcbf,0x9a9fbbbf,0xbbaf999f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x864f0000,0x666faaaf,0x753f543f,0xa84fa84f,0xa85fa85f,0x653f864f,0xaaaf666f,0x0000864f,0xa22fa22f,0xb32fb32f,0xa22fb32f,0x922f922f,0x822f922f,0x922f922f,0x822f822f,0xa22f922f,0xd8afd89f,0xeabfeabf,0xd8afd9af,0xd79fd79f,0xc67fd68f,0xd79fd78f,0xd68fc57f,0xd89fd79f,0xaaaf888f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf, +0x888f999f,0x444f888f,0x999f333f,0x333f0000,0x999f0000,0x444f888f,0x00000000,0x888f0000,0x888f999f,0x444f888f,0x999f333f,0x333f333f,0x999f333f,0x444f888f,0x333f333f,0x888f333f,0x800f800f,0x911f811f,0x911f911f,0x911f911f,0x801f911f,0x911f800f,0xa11fa11f,0xa12fa11f,0x911fa22f,0x922f800f,0x800f922f,0x700f800f,0xdddfcccf,0xffffeeef,0xbbbfdddf,0x9aafbaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x444f0000,0x444f444f,0x444f444f,0x0000444f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x542f432f,0x642f642f,0x642f642f,0x432f432f,0xaaaf666f,0x0000542f,0xb32fb32f,0xa22f922f,0xb32fb32f,0x922fa22f,0xb32fa22f,0xa22fa22f,0xb32fb32f,0xa22fa22f,0xe9afd9af,0xd89fd79f,0xe9afe9bf,0xd79fd89f,0xe9afd8af,0xd8afd8af,0xeabfeabf,0xd8afd8af,0x999f888f,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf, +0x999f0000,0x444f0000,0x0000999f,0x0000999f,0x0000999f,0x444f999f,0x999f0000,0x999f444f,0x999f333f,0x333f333f,0x333f999f,0x333f999f,0x333f999f,0x333f999f,0x999f333f,0x999f444f,0x800f800f,0xb33fa22f,0xa33fa33f,0xb33fb33f,0xa22fa33f,0xa22fa22f,0xb33fb33f,0xb33fb33f,0xa33fb33f,0xb45f911f,0xa22fb44f,0x600f700f,0xffffcccf,0xffffffff,0xdcdfffff,0xa99fbbaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x444f0000,0xcccf444f,0xcccfcccf,0xcccfcccf,0x444fcccf,0x0000444f,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922fa22f,0xb32fa22f,0x922f922f,0xb32fa22f,0x922f922f,0xb32fb32f,0x922fa22f,0xb32fb32f,0xd79fd89f,0xe9afd9af,0xd79fd79f,0xe9afd89f,0xd79fd78f,0xe9afe9af,0xd79fd89f,0xe9afeabf,0xbbbf888f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf, +0x0000999f,0x0000999f,0x999f0000,0x0000555f,0x0000888f,0x333f444f,0x444f999f,0x0000999f,0x333f999f,0x333f999f,0x999f333f,0x333f555f,0x333f888f,0x333f444f,0x444f999f,0x333f999f,0x901f800f,0xa33fa32f,0xa33fa33f,0xb33fa33f,0xa33fa33f,0xa22fa22f,0xb33fa23f,0xb33fb33f,0xa32fa33f,0xc55f911f,0x922fb44f,0x700f800f,0xffffcccf,0xffffffff,0xeeefffff,0x99afbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x444f0000,0xcccf444f,0xeeefcccf,0xeeefe11f,0xeeefeeef,0xcccfeeef,0x444fcccf,0x0000444f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0xa22fa22f,0xa22f922f,0xa22fa32f,0x822f822f,0xa22f922f,0x922f922f,0xa32fa32f,0x822f922f,0xd89fd8af,0xd89fd78f,0xd9afd9af,0xc57fc57f,0xd89fd79f,0xd68fd78f,0xd9afd9af,0xc57fd68f,0xbbbf888f,0xaaafbbbf,0xaaafaaaf,0x999f999f,0x999f999f,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf, +0x0000444f,0x888f0000,0x0000999f,0x444f999f,0x999f888f,0x00000000,0x999f0000,0x0000444f,0x333f444f,0x888f333f,0x333f999f,0x444f999f,0x999f888f,0x333f333f,0x999f333f,0x333f333f,0x911f800f,0xa22fa23f,0xa22f922f,0xa22fa22f,0xa22fa22f,0x922f922f,0x922f922f,0x922f922f,0x911f922f,0xb55f911f,0x921fb44f,0x700f700f,0xffffdddf,0xffffffff,0xfeefeeef,0xaaafcccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xe11fcccf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0xcccfeeef,0x444fcccf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f653f,0x873fa85f,0x873f873f,0x653f642f,0xaaaf666f,0x0000864f,0x822f822f,0xb32f922f,0x822f922f,0x922f922f,0x822f922f,0x922f922f,0x922f822f,0x922f922f,0xc57fd68f,0xe9afd78f,0xc57fd78f,0xd79fd78f,0xc57fd78f,0xd79fd79f,0xd78fc67f,0xd79fd68f,0xaaaf888f,0xaaafaaaf,0x999faaaf,0x777f888f,0x888f777f,0xaaafcccf,0xaaafaaaf,0x888f999f, +0x0000444f,0x444f888f,0x0000444f,0x444f0000,0x333f999f,0x444f999f,0x444f999f,0x0000999f,0x333f444f,0x444f888f,0x333f444f,0x444f333f,0x333f999f,0x444f999f,0x444f999f,0x333f999f,0x911f800f,0xb33fb33f,0x922f912f,0x911f911f,0x811f811f,0x810f801f,0x811f811f,0x811f811f,0x811f810f,0xc55f911f,0x811fa22f,0x600f700f,0xffffdddf,0xffffffff,0xeeefeeef,0xbbbfdddf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0xeeefeeef,0xeeefe11f,0x444fcccf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x432f432f,0x642f542f,0x642f642f,0x432f542f,0xaaaf666f,0x0000542f,0xb32fb32f,0xa22fa32f,0xa22fa22f,0xa22fa22f,0xb32fb32f,0x922fa22f,0xb32fb32f,0xa22fa22f,0xeabfeabf,0xd9afd9af,0xd89fd89f,0xd89fd89f,0xeabfd9af,0xd79fd8af,0xeabfeabf,0xd89fd8af,0xbbbf999f,0xaaafaaaf,0x999faaaf,0x500f999f,0xbbbf500f,0xaaafcccf,0xbbbfbbbf,0x777fbbbf, +0x999f444f,0x888f888f,0x0000444f,0x0000999f,0x999f444f,0x0000444f,0x444f888f,0x999f0000,0x999f333f,0x888f888f,0x333f444f,0x333f999f,0x999f333f,0x333f444f,0x444f888f,0x999f333f,0x911f800f,0x922fb33f,0x911f911f,0x811f911f,0x810f811f,0x811f811f,0x811f811f,0x811f811f,0x911f811f,0xc66f911f,0x810f922f,0x600f700f,0xfeffdddf,0xeeffffff,0xeeffeeef,0xbbbfdcdf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xeeefcccf,0xeeefe11f,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xcccfeeef,0x444fcccf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0x922f922f,0xb32fa22f,0xa22fa22f,0xb32fb32f,0xd79fd79f,0xeabfeabf,0xd8afd8af,0xe9afe9af,0xd78fd68f,0xe9afd9af,0xd8afd8af,0xe9afe9af,0xaaaf888f,0xaaafaaaf,0x888f999f,0x500f999f,0xbbbf400f,0xcccfaaaf,0xaaafaaaf,0x888faaaf, +0x333f0000,0x0000999f,0x999f333f,0x999f0000,0x0000999f,0x0000999f,0x0000888f,0x0000999f,0x333f333f,0x333f999f,0x999f333f,0x999f333f,0x333f999f,0x333f999f,0x333f888f,0x333f999f,0x901f800f,0x811f922f,0x811f810f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0xb44f800f,0x811f911f,0x600f700f,0xefefdddf,0xeeffffff,0xeeefeeef,0xbbbfcdcf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xcccfeeef,0xeeefcccf,0xeeefeeef,0xeeefe11f,0xcccfeeef,0xbbbfcccf,0x444fbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0xa22fa22f,0x922f822f,0xa22fb32f,0x922f922f,0x922f922f,0x822f922f,0x922fa22f,0x922f922f,0xd8afd8af,0xd79fd68f,0xd8afe9af,0xd79fd78f,0xd79fd79f,0xc67fd78f,0xd79fd89f,0xd68fd68f,0xbbbf888f,0x999fbbbf,0x888f999f,0x500f999f,0xbbbf200f,0xcccf999f,0xbbbfbbbf,0x999fbbbf, +0x999f0000,0x999f444f,0x0000333f,0x444f999f,0x0000444f,0x999f0000,0x999f444f,0x999f0000,0x999f333f,0x999f444f,0x333f333f,0x444f999f,0x333f444f,0x999f333f,0x999f444f,0x999f333f,0x901f800f,0x811f921f,0x811f811f,0x911f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0xb33f800f,0x811f911f,0x600f700f,0xffffdddf,0xeeffffef,0xeeefeeef,0xbabfccdf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf310f,0xeeefeeef,0xcccfeeef,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0x310fbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f653f,0x873f873f,0x873f873f,0x653fa84f,0xaaaf666f,0x0000864f,0x922f922f,0xb32f922f,0x822f822f,0xa22f922f,0xa22f922f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0xd79fd79f,0xd9afd79f,0xc57fc57f,0xd89fd79f,0xd8afd78f,0xeabfeabf,0xd8afd89f,0xeabfeabf,0xaaaf888f,0x999faaaf,0xaaaf888f,0x500f999f,0xbbbf200f,0x999faaaf,0xaaafcccf,0x888fbbbf, +0x444f999f,0x444f888f,0x999f0000,0x999f0000,0x0000444f,0x0000999f,0x0000444f,0x444f999f,0x333f999f,0x444f888f,0x999f333f,0x999f333f,0x333f333f,0x333f999f,0x333f444f,0x444f999f,0x911f800f,0x911f921f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x810f811f,0x811f911f,0x811f811f,0xb33f800f,0x811f911f,0x600f700f,0xfeffdddf,0xeeffeeff,0xeeefeeef,0xbbbfdccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x941f310f,0xeeefcccf,0xeeefeeef,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xa52fbbbf,0x310f941f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x432f432f,0x642f542f,0x642f642f,0x432f642f,0xaaaf666f,0x0000542f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0xa22f922f,0xa22fa22f,0xa22f922f,0xe9afe9af,0xd8afd8af,0xe9afeabf,0xd8afd8af,0xd9afe9af,0xd89fd79f,0xd89fd8af,0xd89fd68f,0xaaaf888f,0x999fbbbf,0x999f888f,0x500f999f,0xbbbf200f,0xaaafaaaf,0xaaafcccf,0x888faaaf, +0x0000888f,0x444f0000,0x444f999f,0x00000000,0x999f0000,0x999f444f,0x999f0000,0x444f333f,0x333f888f,0x333f333f,0x444f999f,0x333f333f,0x999f333f,0x999f444f,0x999f333f,0x444f333f,0x811f800f,0x911f922f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f911f,0x811f811f,0xb33f800f,0x811f921f,0x600f700f,0xedefcccf,0xeeefeeef,0xdeefeeef,0xaaafcccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x941f310f,0xa52fa52f,0xcccfeeef,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xa52fa52f,0x310f941f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0xa22fa22f,0x922f922f,0xa22fa32f,0x922f922f,0xa22f922f,0x822f822f,0xa22f922f,0xd78fd68f,0xd89fd89f,0xd79fd79f,0xd8afd9af,0xd78fd68f,0xd8afd79f,0xc57fc57f,0xd8afd79f,0xaaaf777f,0x888f999f,0x999faaaf,0x400f999f,0xbbbf200f,0x999faaaf,0xcccfaaaf,0x777fbbbf, +0x00000000,0x0000999f,0x444f888f,0x999f0000,0x0000444f,0x888f999f,0x444f0000,0x444f0000,0x333f333f,0x333f999f,0x444f888f,0x999f333f,0x333f333f,0x888f999f,0x444f333f,0x333f333f,0x910f800f,0x811f911f,0x811f810f,0x800f811f,0x800f701f,0x811f811f,0x811f801f,0x701f710f,0x810f700f,0xa33f700f,0x811f911f,0x600f700f,0xdddfcccf,0xeeefdddf,0xdccfdddf,0xaaafbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x941f310f,0xb52fb52f,0xa52fa52f,0xa52fcccf,0xa52fa52f,0xa52fbbbf,0xa52fa52f,0x310f941f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0x822f822f,0xb32fb32f,0x822f922f,0xa32fa22f,0xa22fa22f,0xb32fb32f,0x822fa22f,0xd79fd79f,0xc57fc57f,0xe9bfe9af,0xc57fd68f,0xd9afd89f,0xd8afd89f,0xeabfeabf,0xc67fd8af,0xaaaf888f,0x888f999f,0xaaaf999f,0x400f999f,0xbbbf200f,0xaaaf999f,0xcccfaaaf,0x888faaaf, +0x888f444f,0x999f888f,0x999f888f,0x999f333f,0x999f333f,0x999f0000,0x444f0000,0x0000333f,0x888f333f,0x999f888f,0x999f888f,0x999f333f,0x999f333f,0x999f333f,0x444f333f,0x333f333f,0x900f700f,0x811f911f,0x811f811f,0x710f701f,0x801f710f,0x711f701f,0x801f801f,0x800f810f,0x810f711f,0xa32f700f,0x811fa22f,0x600f700f,0xdddfcccf,0xdddfdddf,0xcccfdddf,0xaaafbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x310f0000,0x941f310f,0xb52f941f,0xa52fb52f,0xa52fa52f,0x941fa52f,0x941f941f,0x0000310f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f543f,0x873fa85f,0xa85fa85f,0x653f873f,0xaaaf666f,0x0000864f,0xa22fa22f,0xb32fb32f,0xa22fb32f,0x922fa22f,0xa22f822f,0xb32fa22f,0xa22fa22f,0xb32fb32f,0xd8afd8af,0xeabfeabf,0xd8afe9af,0xd79fd89f,0xd89fc57f,0xe9afd8af,0xd89fd89f,0xeabfe9af,0xbbbf888f,0xbbbfaaaf,0xaaaf999f,0x400f999f,0xbbbf200f,0xcccfaaaf,0xaaafcccf,0x999fbbbf, +0x0000333f,0x0000999f,0x0000999f,0x444f999f,0x00000000,0x444f999f,0x444f0000,0x0000999f,0x333f333f,0x333f999f,0x333f999f,0x444f999f,0x333f333f,0x444f999f,0x333f333f,0x333f999f,0x800f800f,0x811f811f,0x811f811f,0x801f711f,0x810f811f,0x801f701f,0x711f811f,0x811f810f,0x811f811f,0xa32f700f,0x811f911f,0x600f700f,0xdddfcdcf,0xcccfdddf,0xdddfcdcf,0xbbbfcccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x310f0000,0x941f310f,0x941f941f,0x941f941f,0x310f941f,0x310f310f,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x432f432f,0x542f652f,0x642f642f,0x432f642f,0xaaaf666f,0x0000542f,0xb32fb32f,0x922fa22f,0xa22fb32f,0xa22fa22f,0xb32fb32f,0x922f922f,0xa22fa22f,0x922f922f,0xe9bfe9bf,0xd79fd89f,0xd89fe9af,0xd9afd8af,0xd9afeabf,0xd79fd78f,0xd8afd89f,0xd68fd79f,0xaaaf888f,0xaaafaaaf,0xbbbfaaaf,0xcccfbbbf,0xcccfcccf,0xbbbfcccf,0xaaafaaaf,0x888faaaf, +0x999f444f,0x999f0000,0x999f444f,0x444f0000,0x0000444f,0x0000888f,0x999f333f,0x999f0000,0x999f333f,0x999f333f,0x999f444f,0x333f333f,0x333f444f,0x333f888f,0x999f333f,0x999f333f,0x800f800f,0x800f700f,0x800f800f,0x811f810f,0x811f701f,0x700f810f,0x700f700f,0x800f700f,0x800f800f,0x911f700f,0x700f811f,0x700f700f,0xdccfddcf,0xbbbfcbcf,0xcccfbbbf,0xbbbfdddf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x310f0000,0x310f310f,0x310f310f,0x0000310f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f822f,0xa22fb32f,0x922f922f,0xb32fb32f,0x922fa22f,0xb32fa22f,0x922f922f,0xb32fb32f,0xd78fc67f,0xd89fe9af,0xd79fd68f,0xeabfe9af,0xd79fd89f,0xe9afd8af,0xd78fd68f,0xe9afd9af,0x888f888f,0x888f888f,0x999f777f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f, +0x444f0000,0x333f0000,0x444f999f,0x0000999f,0x999f444f,0x888f0000,0x0000333f,0x0000888f,0x444f333f,0x333f333f,0x444f999f,0x333f999f,0x999f444f,0x888f333f,0x333f333f,0x333f888f,0x800f800f,0x800f800f,0x800f700f,0x800f800f,0x800f800f,0x800f800f,0x800f800f,0x800f800f,0x800f800f,0x800f700f,0x700f800f,0x600f700f,0xbbbfbbbf,0xaaafbbaf,0xbbbfaaaf,0xbbbfbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x149f15bf,0x15cf149f,0x15cf15cf,0x248f248f,0x15bf15af,0x248f14af,0x259f248f,0x14bf248f,0x341f341f,0x341f341f,0x351f341f,0x341f341f,0x351f351f,0x341f341f,0x341f341f,0x341f341f,0x3b2f3a2f,0x3a2f3a2f,0x3c3f3b2f,0x3b2f3a2f,0x3c3f3c3f,0x3a2f3a2f,0x3c2f3c2f,0x3a2f3a2f,0x888f888f,0x888f888f,0x888f888f,0x999f999f,0x999f777f,0x888f888f,0x888f888f,0x888f888f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x800f800f,0x800f800f,0x800f800f,0x811f800f,0x711f801f,0x800f810f,0x800f800f,0x801f711f,0x800f800f,0x800f700f,0x800f800f,0x811f800f,0x711f811f,0x811f801f,0x700f700f,0x801f811f,0x800f800f,0x800f700f,0x800f922f,0x600f800f,0xccdfbbbf,0xcccfcdcf,0xbbbfbbbf,0xbbbfbbbf, +0xcdcfbbbf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xcddfbbbf,0xcccfccdf,0xbbbfbbbf,0xbbbfbbbf,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x14bf13cf,0x37af15cf,0x14df25bf,0x159f14af,0x15bf15af,0x03bf03bf,0x149f149f,0x14bf14bf,0x351f341f,0x451f351f,0x351f351f,0x341f341f,0x341f341f,0x341f341f,0x341f231f,0x341f341f,0x3c3f3b2f,0x4d4f4c3f,0x3c3f3c3f,0x3b2f3b2f,0x3a2f3a2f,0x3b2f3b2f,0x3a2f292f,0x3b2f3b2f,0xaaaf888f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x811f800f,0x811f811f,0x811f811f,0x810f811f,0x801f811f,0x811f801f,0x811f801f,0x801f811f,0x811f800f,0x811f811f,0x811f811f,0x811f811f,0x711f711f,0x711f811f,0x811f911f,0x810f811f,0x811f811f,0xb33f700f,0x811fa22f,0x600f801f,0xeeefbbbf,0xeeffefef,0xeeefefef,0xbbbfcdcf, +0xcccfbbbf,0xeeefeeef,0xffffffff,0xffffffff,0xffffffff,0xfeefeeef,0xeeefefff,0xbbbfccdf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x15cf14bf,0x269f15cf,0x14af15cf,0x149f139f,0x14af248f,0x03bf14bf,0x14af02bf,0x14bf14bf,0x351f351f,0x341f341f,0x351f351f,0x341f341f,0x351f351f,0x351f351f,0x351f351f,0x351f351f,0x4c3f3c3f,0x3b2f3b2f,0x4c3f4c3f,0x3b2f3c2f,0x4c3f3c3f,0x3c3f3c3f,0x4c3f4c3f,0x3c3f3c3f,0x999f888f,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x811f800f,0x922f922f,0x922f922f,0x921f912f,0x811f811f,0x801f811f,0x800f811f,0x811f811f,0x811f800f,0x922f922f,0x921f922f,0x912f922f,0x811f811f,0x800f811f,0x811f810f,0x811f811f,0x711f811f,0xa22f700f,0x811f810f,0x600f811f,0xccdfbbbf,0xeeefeeef,0xeeefeeef,0xbbbfdccf, +0xddcfbbbf,0xeeffeeff,0xeeeffeef,0xfeefeeef,0xfeefffff,0xffffefef,0xfeefefef,0xbbbfcddf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14bf14bf,0x15cf14bf,0x14cf15cf,0x158f14af,0x248f14bf,0x03bf149f,0x149f03bf,0x14bf14af,0x341f341f,0x351f351f,0x341f341f,0x351f341f,0x341f341f,0x351f351f,0x341f341f,0x351f451f,0x3b2f3b2f,0x4c3f3c3f,0x3b2f3b2f,0x4c3f3b2f,0x3b2f3a2f,0x4c3f4c3f,0x3b2f3b2f,0x4c3f4d4f,0xbbbf888f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x700f600f,0x700f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0xbbbfbbbf,0xcccfddcf,0xbbbfcccf,0xbbbfbbbf, +0xbbbfbbbf,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xcccfdcdf,0xbbbfcccf,0xbbbfbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14bf13cf,0x15cf14bf,0x14cf15cf,0x148f14bf,0x149f14bf,0x248f14af,0x03bf248f,0x14bf149f,0x341f351f,0x341f341f,0x351f351f,0x231f341f,0x341f341f,0x341f341f,0x351f351f,0x341f341f,0x3b2f3c3f,0x3b2f3a2f,0x3c3f3c3f,0x292f3a2f,0x3c2f3b2f,0x3a2f3b2f,0x3c3f3c3f,0x3a2f3a2f,0xbbbf888f,0xaaafbbbf,0xaaafaaaf,0x999f999f,0x999f999f,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x963fa94f,0x963f863f,0x963f963f,0x863f862f,0x963f963f,0x863f863f,0x963f963f,0x541f973f,0x963fa84f,0x973f863f,0x963f863f,0x863f863f,0x963f963f,0x863f863f,0x973f963f,0x863f963f,0x862f863f,0x963f963f,0x963f873f,0x863f963f,0x963f863f,0x963f863f,0x963f863f,0x531f863f, +0x963fa94f,0x963f863f,0x963f963f,0x863f863f,0x963f973f,0x863f863f,0x963f963f,0x531f973f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14bf14bf,0x14bf14bf,0x15cf15bf,0x14af14bf,0x248f14bf,0x26bf149f,0x03bf149f,0x14bf149f,0x241f341f,0x351f341f,0x231f341f,0x341f341f,0x231f341f,0x341f341f,0x341f341f,0x341f341f,0x3a2f3a2f,0x4c3f3b2f,0x292f3a2f,0x3b2f3a2f,0x292f3a2f,0x3b2f3b2f,0x3b2f3a2f,0x3b2f3a2f,0xaaaf888f,0xaaafaaaf,0x999faaaf,0x777f888f,0x888f777f,0xaaafcccf,0xaaafaaaf,0x888f999f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x863fb95f,0x642f642f,0x642f642f,0x642f641f,0x532f531f,0x642f641f,0x974f531f,0x541f863f,0x863fa95f,0x641f632f,0x641f641f,0x642f641f,0x531f531f,0x641f641f,0x632f531f,0x641f641f,0x531f642f,0x641f641f,0x641f531f,0x641f642f,0x641f641f,0x641f642f,0x974f641f,0x531f863f, +0x863fb94f,0x642f641f,0x642f641f,0x641f641f,0x531f531f,0x641f641f,0x974f531f,0x531f863f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x13bf14bf,0x13cf13cf,0x15cf14bf,0x14af14cf,0x248f159f,0x248f149f,0x258f149f,0x13bf149f,0x451f351f,0x351f351f,0x341f341f,0x341f341f,0x451f351f,0x341f351f,0x451f451f,0x341f351f,0x4c4f4c3f,0x3c3f3c3f,0x3b2f3b2f,0x3c2f3b2f,0x4c4f3c3f,0x3b2f3c3f,0x4d4f4d4f,0x3c2f3c3f,0xbbbf999f,0xaaafaaaf,0x999faaaf,0xf00f999f,0xbbbff00f,0xaaafcccf,0xbbbfbbbf,0x777fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x863fa84f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xa94f0000,0x531f963f,0x862fa84f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa94f0000,0x531f963f, +0x863fa94f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xa84f0000,0x531f963f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14af13bf,0x14bf14bf,0x02bf14bf,0x14bf14af,0x149f14af,0x14af14bf,0x258f14af,0x13bf129f,0x341f341f,0x451f351f,0x351f351f,0x351f351f,0x341f341f,0x351f351f,0x351f351f,0x351f351f,0x3b2f3b2f,0x4d4f4c3f,0x3c3f3c3f,0x4c3f4c3f,0x3b2f3a2f,0x4c3f3c3f,0x3c3f3c3f,0x4c3f4c3f,0xaaaf888f,0xaaafaaaf,0x888f999f,0xf00f999f,0xbbbfd00f,0xcccfaaaf,0xaaafaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x863fa95f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xb95f0000,0x641f963f,0x863fb95f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb95f0000,0x642f963f, +0x863fb95f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xb95f0000,0x642f863f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x249f13bf,0x15cf13bf,0x13af14cf,0x14cf02bf,0x15af24af,0x14af248f,0x258f149f,0x13bf13bf,0x351f351f,0x341f341f,0x351f351f,0x341f341f,0x341f341f,0x341f341f,0x341f341f,0x341f341f,0x3c3f3c3f,0x3b2f3a2f,0x3c3f4c3f,0x3b2f3a2f,0x3b2f3b2f,0x3a2f3b2f,0x3b2f3b2f,0x3a2f3a2f,0xbbbf888f,0x999fbbbf,0x888f999f,0xf00f999f,0xbbbfa00f,0xcccf999f,0xbbbfbbbf,0x999fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x963fa84f,0x0000641f,0x00000000,0x00000000,0x00000000,0x00000000,0xa84f0000,0x641f963f,0x963fa84f,0x0000641f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa84f0000,0x641f963f, +0x973fa84f,0x0000641f,0x00000000,0x00000000,0x00000000,0x00000000,0xa94f0000,0x642f963f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x13bf13bf,0x13cf13af,0x26af14bf,0x14bf24af,0x14af14af,0x248f14af,0x14af248f,0x13bf258f,0x341f341f,0x351f341f,0x341f231f,0x341f341f,0x351f341f,0x451f451f,0x351f341f,0x351f451f,0x3b2f3b2f,0x3c3f3b2f,0x3a2f392f,0x3c3f3b2f,0x3c3f3a2f,0x4d4f4d4f,0x3c3f3b2f,0x4c3f4d4f,0xaaaf888f,0x999faaaf,0xaaaf888f,0xd00f999f,0xbbbfd00f,0x999faaaf,0xaaafcccf,0x888fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x13bf368f,0x12bf139f,0x259f13af,0x02bf24af,0x14af13bf,0x248f249f,0x14af248f,0x358f368f,0x351f351f,0x351f351f,0x351f451f,0x351f351f,0x351f351f,0x341f341f,0x341f351f,0x341f341f,0x4c3f4c3f,0x3c3f3c3f,0x4c3f4c4f,0x3c3f3c3f,0x3c3f4c3f,0x3c2f3b2f,0x3b2f3c3f,0x3b2f3a2f,0xaaaf888f,0x999fbbbf,0x999f888f,0xd00f999f,0xbbbfb00f,0xaaafaaaf,0xaaafcccf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x248f258f,0x129f149f,0x148f129f,0x02bf13af,0x14af13af,0x248f249f,0x249f248f,0x258f358f,0x341f341f,0x341f341f,0x341f341f,0x351f351f,0x341f341f,0x351f341f,0x241f241f,0x351f341f,0x3a2f3a2f,0x3c3f3c3f,0x3b2f3b2f,0x3c3f3c3f,0x3a2f3a2f,0x3c3f3b2f,0x3a2f3a2f,0x3c3f3b2f,0xaaaf777f,0x888f999f,0x999faaaf,0xf00f999f,0xbbbfd00f,0x999faaaf,0xcccfaaaf,0x777fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x259f358f,0x139f248f,0x12af129f,0x02bf13bf,0x14af12bf,0x149f14af,0x248f248f,0x258f248f,0x341f341f,0x341f231f,0x351f351f,0x231f341f,0x351f341f,0x351f341f,0x451f451f,0x341f351f,0x3b2f3b2f,0x3a2f392f,0x4c3f4c3f,0x292f3a2f,0x3c3f3b2f,0x3c3f3c2f,0x4d4f4d4f,0x3a2f3c3f,0xaaaf888f,0x888f999f,0xaaaf999f,0xf00f999f,0xbbbfb00f,0xaaaf999f,0xcccfaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x248f258f,0x248f249f,0x12af12af,0x03bf14af,0x139f12bf,0x149f248f,0x248f248f,0x258f248f,0x351f351f,0x451f351f,0x351f351f,0x341f341f,0x341f231f,0x351f351f,0x341f341f,0x351f351f,0x3c3f3c3f,0x4d4f4c3f,0x3c3f4c3f,0x3b2f3c2f,0x3b2f392f,0x4c3f3c3f,0x3b2f3b2f,0x4c3f4c3f,0xbbbf888f,0xbbbfaaaf,0xaaaf999f,0xd00f999f,0xbbbfb00f,0xcccfaaaf,0xaaafcccf,0x999fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x247f149f,0x15cf15cf,0x248f248f,0x248f248f,0x14af02bf,0x03bf139f,0x248f248f,0x14bf248f,0x351f351f,0x341f341f,0x341f351f,0x351f351f,0x351f451f,0x341f341f,0x351f341f,0x341f341f,0x4c3f4c3f,0x3b2f3b2f,0x3c2f4c3f,0x3c3f3c3f,0x3c3f4d4f,0x3b2f3b2f,0x3c3f3c2f,0x3a2f3b2f,0xaaaf888f,0xaaafaaaf,0xbbbfaaaf,0xcccfbbbf,0xcccfcccf,0xbbbfcccf,0xaaafaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x149f357f,0x15cf149f,0x14af14df,0x248f14af,0x14af248f,0x248f248f,0x248f248f,0x14bf14bf,0x341f341f,0x341f351f,0x341f341f,0x351f351f,0x341f341f,0x351f351f,0x341f341f,0x351f351f,0x3a2f3a2f,0x3c2f4c3f,0x3b2f3a2f,0x4c3f4c3f,0x3b2f3b2f,0x4c3f3c3f,0x3a2f3a2f,0x4c3f3c3f,0x888f888f,0x888f888f,0x999f777f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x531f421f,0x421f421f,0x531f531f,0x531f421f,0x531f531f,0x421f421f,0x531f531f,0x421f421f,0xba1fba1f,0xaa1fa91f,0xcc1fcb1f,0xba1fba1f,0xcb1fcb1f,0xaa1fa91f,0xcb1fcb1f,0xa91faa1f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000eeef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x531f531f,0x632f631f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0x421f421f,0x531f531f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fdc1f,0xba1fba1f,0xa91faa1f,0xba1fba1f,0xa91f981f,0xbb1fba1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x666f777f,0x269f15cf,0x14af15cf,0x777f777f,0x777f888f,0x777f777f,0x14af02bf,0x777f777f,0x531f531f,0x531f531f,0x531f631f,0x531f531f,0x531f531f,0x531f531f,0x631f631f,0x531f531f,0xdc2fdc1f,0xcb1fba1f,0xdc2fdc2f,0xba1fcb1f,0xdc2fcb1f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fcb1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f777f,0x777f777f,0x14cf777f,0x158f777f,0x777f14bf,0x777f777f,0x777f777f,0x777f777f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f421f,0x531f531f,0x531f531f,0x531f632f,0xba1fcb1f,0xdc2fcc1f,0xba1fba1f,0xdc2fcb1f,0xba1fba1f,0xdc2fdc2f,0xba1fcb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xeeef0000,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x531f531f,0x531f421f,0x531f531f,0x421f421f,0x531f531f,0x421f531f,0x531f531f,0x421f421f,0xbb1fcb1f,0xcb1fba1f,0xcc1fcc1f,0x981fa91f,0xcb1fba1f,0xa91fba1f,0xcc1fcc1f,0xa91faa1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xeeef0000,0xdddf0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x15cf777f,0x777f14bf,0x666f777f,0x26bf149f,0x777f777f,0x777f666f,0x421f421f,0x531f421f,0x421f421f,0x531f421f,0x421f421f,0x531f531f,0x531f421f,0x531f421f,0x991fa91f,0xdc2fba1f,0x981fba1f,0xba1fba1f,0x981fba1f,0xba1fba1f,0xba1fa91f,0xba1faa1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdddfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f888f,0x13cf777f,0x15cf14bf,0x14af14cf,0x777f777f,0x248f149f,0x888f888f,0x666f888f,0x632f631f,0x531f531f,0x531f531f,0x531f531f,0x632f531f,0x531f531f,0x632f632f,0x531f531f,0xdc2fdc2f,0xcc1fdc1f,0xcb1fcb1f,0xcb1fbb1f,0xdc2fdc1f,0xba1fcb1f,0xdc2fdc2f,0xcb1fcb1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0xdddfdddf,0xdddfffff,0xffffeeef,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdddfdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14af777f,0x777f14bf,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x531f531f,0x632f631f,0x531f531f,0x531f531f,0x531f421f,0x531f531f,0x531f531f,0x531f531f,0xba1fba1f,0xdc2fdc2f,0xcb1fcb1f,0xdc2fdc2f,0xba1faa1f,0xdc2fcc1f,0xcb1fcb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x0000eeef,0xdddfffff,0x00000000,0xeeefeeef,0xeeef0000,0xffffeeef,0xffffffff,0x0000ffff,0x0000eeef,0xdddfffff,0x00000000,0xdddfeeef,0x0000ffff,0x0000eeef,0x0000ffff,0x0000ffff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x249f777f,0x666f13bf,0x777f888f,0x14cf777f,0x15af777f,0x14af248f,0x888f888f,0x888f888f,0x531f531f,0x531f421f,0x531f531f,0x531f421f,0x531f531f,0x421f531f,0x531f531f,0x421f421f,0xcb1fcb1f,0xba1fa91f,0xcb1fdc2f,0xba1fba1f,0xba1fba1f,0xa91fba1f,0xba1fcb1f,0xa91fa91f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0xeeef0000,0xffffeeef,0xeeefdddf,0xeeefffff,0x0000ffff,0x0000dddf,0xffff0000,0x00000000,0xeeef0000,0x0000eeef,0xeeef0000,0xffff0000,0x0000dddf,0x0000dddf,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x777f777f,0x14bf777f,0x14af14af,0x248f14af,0x14af777f,0x777f258f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0x531f421f,0x632f632f,0x531f531f,0x631f632f,0xba1fba1f,0xdc1fba1f,0xa91f991f,0xcb1fba1f,0xcb1fba1f,0xdc2fdc2f,0xcb1fcb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0xffff0000,0xffffdddf,0xdddf0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdddf,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f888f,0x888f13af,0x777f888f,0x14af13bf,0x888f249f,0x14af888f,0x777f368f,0x531f531f,0x531f531f,0x531f632f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f421f,0xdc2fdc2f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fcb1f,0xdc1fdc2f,0xcb1fba1f,0xcb1fcb1f,0xcb1faa1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xdddf0000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f666f,0x129f149f,0x777f129f,0x777f777f,0x888f888f,0x777f777f,0x249f777f,0x666f358f,0x421f421f,0x531f531f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0x421f421f,0x531f531f,0xba1faa1f,0xcb1fcb1f,0xba1fba1f,0xcb1fcc1f,0xba1faa1f,0xcb1fba1f,0x991f991f,0xcb1fba1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x12af777f,0x777f777f,0x14af12bf,0x777f14af,0x248f777f,0x777f248f,0x531f531f,0x421f421f,0x631f531f,0x421f421f,0x531f531f,0x531f531f,0x632f632f,0x421f531f,0xba1fba1f,0xa91f991f,0xdc2fdc2f,0x981fa91f,0xcc1fcb1f,0xcb1fcb1f,0xdc2fdc2f,0xa91fcb1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xdddf0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f777f,0x888f777f,0x12af12af,0x777f14af,0x139f12bf,0x777f248f,0x777f777f,0x888f888f,0x531f531f,0x632f631f,0x531f531f,0x531f531f,0x531f421f,0x531f531f,0x531f531f,0x631f531f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fdc2f,0xba1fcb1f,0xcb1f991f,0xdc2fcb1f,0xcb1fbb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x0000dddf,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x248f248f,0x777f248f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x531f631f,0x531f531f,0x531f531f,0x531f531f,0x531f632f,0x531f531f,0x531f531f,0x421f531f,0xdc2fdc2f,0xba1fcb1f,0xcb1fdc2f,0xcc1fcb1f,0xdc1fdc2f,0xba1fba1f,0xcb1fcb1f,0xaa1fba1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x421f421f,0x531f531f,0x531f421f,0x631f531f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0xba1fa91f,0xcb1fdc2f,0xba1faa1f,0xdc2fdc2f,0xba1fbb1f,0xdc2fcb1f,0xba1faa1f,0xdc2fdc1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafedaf,0xdd9fdc9f,0xddafedaf,0xdc9fdc9f,0xddafddaf,0xddafdc9f,0xdd9fedaf,0xeeafedaf,0x239f228f,0x228f228f,0x23af239f,0x239f228f,0x23af239f,0x228f228f,0x239f239f,0x228f228f,0x58df57cf,0x57cf47cf,0x79df68df,0x58df57cf,0x79df69df,0x57cf46cf,0x68df68df,0x47cf57cf,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0xddafddaf,0xddafedaf,0xcc9fdc9f,0xcc9fcc9f,0xdd9fdd9f,0xedafdc9f,0xeeafdd9f,0xeeafeeaf,0x239f239f,0x23bf23af,0x23af23af,0x239f239f,0x228f228f,0x239f239f,0x228f127f,0x239f239f,0x69df68df,0x8adf8adf,0x79df79df,0x68df68df,0x47cf57cf,0x68df58df,0x47cf36cf,0x68df58df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fddaf,0xdd9fddaf,0xcc9fcc9f,0xdc9fcc9f,0xdd9fdc9f,0xedafdc9f,0xddafedaf,0xedafedaf,0x23af23af,0x239f239f,0x23af23af,0x239f239f,0x23af23af,0x23af23af,0x23af23af,0x239f23af,0x79df79df,0x68df68df,0x79df8adf,0x68df68df,0x79df79df,0x79df79df,0x8adf8adf,0x69df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd9fedaf,0xdd9fdd9f,0xdc9fdc9f,0xedafdd9f,0xdd9fdc9f,0xdd9fdc9f,0xddafedaf,0xdc9fddaf,0x239f239f,0x23af23af,0x239f239f,0x23af239f,0x239f228f,0x23af23af,0x239f239f,0x23af23bf,0x58df68df,0x79df79df,0x58df68df,0x79df68df,0x68df57cf,0x79df79df,0x58df68df,0x79df8adf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fdd9f,0xdc9fdd9f,0xdd9fdd9f,0xedafddaf,0xdd9fdc9f,0xdd9fdd9f,0xddafedaf,0xdc9fddaf,0x239f239f,0x239f228f,0x23af23af,0x227f228f,0x239f239f,0x228f239f,0x23af23af,0x228f228f,0x68df69df,0x68df57cf,0x79df79df,0x36cf46cf,0x68df58df,0x47cf58df,0x79df79df,0x46cf57cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd9fdc9f,0xcc9fdd9f,0xdc9fcc9f,0xeebfedaf,0xdc9fddaf,0xdc9fdc9f,0xdd9fdd9f,0xdd9fddaf,0x228f228f,0x23af238f,0x227f228f,0x239f228f,0x227f228f,0x239f239f,0x239f228f,0x239f228f,0x46cf47cf,0x79df57cf,0x36cf57cf,0x58df57cf,0x36cf57cf,0x68df58df,0x58df47cf,0x58df57cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xddafdc9f,0xdc9fddaf,0xdc9fdd9f,0xedbfdc9f,0xdd9fddaf,0xdd9fedaf,0xddafdc9f,0xddafddaf,0x23bf23af,0x23af23af,0x239f239f,0x239f239f,0x23bf23af,0x239f239f,0x23bf23bf,0x239f23af,0x8adf8adf,0x79df79df,0x68df68df,0x68df68df,0x8adf79df,0x68df69df,0x8adf8adf,0x68df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fddaf,0xcc9fddaf,0xdc9fdd9f,0xdc9fdc9f,0xddafddaf,0xddafedaf,0xddafdd9f,0xddafddaf,0x239f239f,0x23bf23af,0x239f23af,0x23af23af,0x239f228f,0x23af23af,0x239f239f,0x23af23af,0x58df58df,0x8adf8adf,0x69df79df,0x79df79df,0x58df57cf,0x79df79df,0x69df69df,0x79df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fdd9f,0xddafddaf,0xedafdd9f,0xddafddaf,0xdd9fddaf,0xedafdd9f,0xedafedaf,0xdd9fedaf,0x23af23af,0x239f228f,0x239f23af,0x239f228f,0x239f239f,0x228f239f,0x239f239f,0x228f228f,0x79df79df,0x58df47cf,0x69df79df,0x58df57cf,0x68df58df,0x47cf58df,0x68df68df,0x47cf47cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fdc9f,0xdc9fdc9f,0xedafddaf,0xcc9fdd9f,0xdc9fedaf,0xddafdc9f,0xddafedaf,0xdd9fddaf,0x239f239f,0x23af239f,0x228f227f,0x239f239f,0x239f228f,0x23bf23bf,0x23af239f,0x23af23bf,0x68df58df,0x79df58df,0x46cf36cf,0x68df68df,0x69df57cf,0x8adf8adf,0x79df68df,0x8adf8adf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd9fcc9f,0xdd9fdd9f,0xedafdc9f,0xdd9fddaf,0xdd9fdd9f,0xcc8fdd9f,0xeebfedaf,0xdc9fedaf,0x23af23af,0x23af23af,0x23af23bf,0x239f23af,0x23af23af,0x239f239f,0x239f239f,0x239f228f,0x79df79df,0x79df79df,0x79df8adf,0x69df79df,0x79df79df,0x68df68df,0x68df69df,0x68df57cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafdd9f,0xddafddaf,0xdc9fdc9f,0xcc9fedaf,0xdc9fdc9f,0xdc9fdc9f,0xddafddaf,0xdd9fdc9f,0x228f228f,0x239f239f,0x239f239f,0x23af23af,0x228f228f,0x239f239f,0x228f228f,0x239f239f,0x57cf57cf,0x68df68df,0x58df58df,0x79df79df,0x57cf57cf,0x69df58df,0x46cf46cf,0x69df58df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xddafddaf,0xddafddaf,0xddafddaf,0xdc9fdd9f,0xdc9fcc8f,0xcc9fdc9f,0xdd9fdc9f,0xdd9fedaf,0x239f239f,0x228f227f,0x23af23af,0x227f228f,0x23af239f,0x23af239f,0x23bf23bf,0x228f239f,0x58df58df,0x46cf36cf,0x8adf79df,0x36cf47cf,0x79df68df,0x79df68df,0x8adf8adf,0x47cf69df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xddafedaf,0xddafdc9f,0xdcafddaf,0xdd9fdc9f,0xdc9fdc9f,0xdc9fdd9f,0xddafddaf,0xedafdd9f,0x239f23af,0x23bf23af,0x23af23af,0x239f239f,0x239f227f,0x23af23af,0x239f239f,0x23af23af,0x69df79df,0x8adf8adf,0x79df79df,0x68df68df,0x68df36cf,0x79df79df,0x68df68df,0x8adf79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafedaf,0xedafdd9f,0xddafddaf,0xcc9fdc9f,0xdd9fdc9f,0xddafdd9f,0xedafddaf,0xddafddaf,0x23af23af,0x239f239f,0x239f23af,0x23af239f,0x23af23bf,0x239f239f,0x23af239f,0x228f239f,0x89df8adf,0x68df68df,0x68df79df,0x79df69df,0x79df8adf,0x58df58df,0x79df68df,0x57cf58df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafeeaf,0xdd9fddaf,0xedafdc9f,0xdc9fddaf,0xddafdc9f,0xedafdd9f,0xddafdd9f,0xddafddaf,0x228f228f,0x239f23af,0x239f228f,0x23af23af,0x239f239f,0x23af239f,0x228f228f,0x23af23af,0x57cf47cf,0x68df79df,0x58df57cf,0x8adf79df,0x58df68df,0x79df69df,0x57cf57cf,0x79df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xeebfedbf,0xedbfeebf,0xedafedaf,0xeebffebf,0xfebfeebf,0xeebfeebf,0xfebfeebf,0xeebffebf,0x72bf72bf,0x72bf72bf,0x83cf83cf,0x72bf72bf,0x83cf83cf,0x72bf62af,0x83cf83cf,0x72af72bf,0xb3cfb3cf,0xb3cfb3cf,0xc5cfb4cf,0xb3cfb3cf,0xc5cfc5cf,0xb3cfa3bf,0xc4cfc4cf,0xb3bfb3cf,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9, +0xdcafedaf,0xddafddaf,0xdcafddaf,0xcc9fdc9f,0xdc9fdc9f,0xddafdd9f,0xedbfdc9f,0xedafedbf,0x83cf83cf,0x94df94df,0x83cf83cf,0x73cf73cf,0x72af72bf,0x73cf72bf,0x72af62af,0x73cf72bf,0xc5cfc4cf,0xc6dfc6df,0xc5cfc5cf,0xb4cfb4cf,0xb3bfb3cf,0xb4cfb3cf,0xb3bfa3af,0xb4cfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8, +0xdc9fcc8f,0xcb8fdc8f,0xcc8fcc8f,0xcb8fcc8f,0xcc7fcc8f,0xcb7fcb7f,0xcc9fcc8f,0xcb7fcb8f,0x84cf83cf,0x73cf73cf,0x84cf84df,0x73cf83cf,0x84cf83cf,0x83cf83cf,0x94df94df,0x83cf83cf,0xc5dfc5cf,0xb4cfb4cf,0xc5dfc6df,0xb4cfc4cf,0xc5dfc5cf,0xc5cfc5cf,0xc6dfc6df,0xc5cfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8, +0xfecfcc8f,0xeebfedbf,0xfecfcc7f,0xfebffebf,0xedbfeebf,0xfebfbb6f,0xedbfedbf,0xfebffebf,0x72bf83cf,0x84cf83cf,0x73bf73cf,0x84cf83cf,0x73cf72bf,0x84cf84cf,0x72bf83cf,0x84cf94df,0xb3cfc4cf,0xc5dfc5cf,0xb4cfb4cf,0xc5dfb4cf,0xb4cfb3cf,0xc5dfc5df,0xb3cfc4cf,0xc5cfc6df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8, +0xddafcc8f,0xdc9fdd9f,0xddafcc7f,0xedafedaf,0xcb7fdc9f,0xdc9fedaf,0xedbfddaf,0xddafdc9f,0x73cf83cf,0x83cf72bf,0x83cf83cf,0x62af62af,0x83cf72bf,0x72bf72bf,0x83cf83cf,0x62af72bf,0xb4cfc5cf,0xc4cfb3cf,0xc5cfc5cf,0xa3bfa3bf,0xc4cfb3cf,0xb3bfb3cf,0xc5cfc5cf,0xa3bfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8, +0xdc9fddaf,0xdd9fdc9f,0xedafcc7f,0xeebfddaf,0xcb7fddaf,0xdd9fedaf,0xddafdd9f,0xcb7fddaf,0x62af72af,0x84cf72bf,0x62af72bf,0x72bf72bf,0x62af72bf,0x73cf72bf,0x72bf72af,0x73bf72bf,0xa3bfb3bf,0xc5dfb3cf,0xa3bfb3cf,0xb3cfb3cf,0xa3bfb3cf,0xb4cfb3cf,0xb3cfa3bf,0xb4cfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8, +0xcc8fddaf,0xcc8fcc8f,0xcc8fcc7f,0xedbfddbf,0xcb7fbb7f,0xedafcc8f,0xdd9fddaf,0xcb7fddaf,0x94df94df,0x83cf83cf,0x83cf83cf,0x83cf73cf,0x94df83cf,0x73cf83cf,0x94df94df,0x83cf83cf,0xc6dfc6df,0xc5cfc5cf,0xb4cfb4cf,0xc4cfb4cf,0xc6dfc5cf,0xb4cfc5cf,0xc6dfc6df,0xc4cfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9, +0xfecfcb7f,0xedbfeebf,0xeebffecf,0xcc8fcc8f,0xeebfeebf,0xcc8ffebf,0xcc8fcc9f,0xeebfcb7f,0x72bf72bf,0x94df94df,0x83cf83cf,0x84cf84cf,0x72bf72bf,0x84cf83cf,0x83cf83cf,0x84cf84cf,0xb3cfb3cf,0xc6dfc6df,0xc5cfc5cf,0xc5cfc5df,0xb3cfb3cf,0xc5dfc5cf,0xc5cfc5cf,0xc5cfc5df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8, +0xddafeebf,0xddafedaf,0xcb7fddaf,0xeebfeebf,0xdd9fddaf,0xdc8fedaf,0xeebffebf,0xeebfcb7f,0x83cf83cf,0x72bf72af,0x83cf84cf,0x73bf72bf,0x73cf72bf,0x72af72bf,0x73cf83cf,0x72bf72bf,0xc5cfc5cf,0xb3cfb3bf,0xc5cfc5cf,0xb4cfb3cf,0xb4cfb3cf,0xa3bfb3cf,0xb4cfb4cf,0xb3bfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xedafdc9f,0xedafedaf,0xcb7fdd9f,0xddafedbf,0xddafedaf,0xcb6fdc9f,0xddafedbf,0xddafcb7f,0x73cf72bf,0x83cf73bf,0x62af62af,0x83cf73cf,0x83cf72bf,0x94df94df,0x83cf73cf,0x94df94df,0xb4cfb3cf,0xc5cfb4cf,0xa3bfa3bf,0xc4cfb4cf,0xc5cfb3cf,0xc6dfc6df,0xc5cfb4cf,0xc6dfc6df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8, +0xcb7fdd9f,0xcb7fcb7f,0xcc8fdc9f,0xdd9fdd9f,0xdd9fedbf,0xcc8fddaf,0xcb7fddaf,0xcb7fcb7f,0x84cf84cf,0x83cf83cf,0x84cf94df,0x83cf83cf,0x83cf84cf,0x83cf73cf,0x83cf83cf,0x83cf72bf,0xc5dfc5cf,0xc5cfc5cf,0xc5dfc6df,0xc5cfc5cf,0xc5cfc5df,0xc4cfb4cf,0xb4cfc5cf,0xc4cfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8, +0xeebfcb7f,0xedafeebf,0xbb6fcc8f,0xcb7fcb7f,0xcb7fdd9f,0xeebfcb7f,0xedafcb7f,0xeebfeebf,0x72bf72bf,0x83cf83cf,0x73bf72bf,0x83cf83cf,0x72bf72bf,0x83cf72bf,0x62af62af,0x83cf73bf,0xb3cfb3cf,0xc4cfc4cf,0xb4cfb3cf,0xc5cfc5cf,0xb3cfb3cf,0xc5cfb3cf,0xa3bfa3bf,0xc5cfb4cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xedbfeebf,0xcc8fedaf,0xeebfeebf,0xeebfeebf,0xeecfcb7f,0xddafedbf,0xedbfcc8f,0xedbfeebf,0x72bf73bf,0x62af62af,0x84df84cf,0x62af72bf,0x83cf83cf,0x83cf83cf,0x94df94df,0x72af83cf,0xb3cfb4cf,0xa3bfa3bf,0xc6dfc5cf,0xa3bfb3bf,0xc5cfb4cf,0xc5cfc4cf,0xc6dfc6df,0xa3bfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8, +0xedbfedbf,0xcb7fdc9f,0xddafdcaf,0xddafdd9f,0xddafcb7f,0xdc9fdc9f,0xedbfcb7f,0xddafddaf,0x83cf83cf,0x94df94df,0x83cf84cf,0x73cf83cf,0x73cf62af,0x84cf83cf,0x73cf73cf,0x94df84cf,0xc5cfc5cf,0xc6dfc6df,0xc5cfc5cf,0xb4cfc4cf,0xb4cfa3bf,0xc5dfc5cf,0xb4cfb4cf,0xc6dfc5df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8, +0xcc8fcc9f,0xcc8fedaf,0xeebfddaf,0xbb7fddbf,0xcc7fedbf,0xedafddaf,0xbb6fcc8f,0xbb6fddaf,0x84df84df,0x73cf83cf,0x83cf84cf,0x83cf83cf,0x83cf94df,0x72bf72bf,0x83cf83cf,0x72bf73bf,0xc6dfc6df,0xb4cfc4cf,0xc4cfc5df,0xc5cfc5cf,0xc5cfc6df,0xb3cfb3cf,0xc5cfc4cf,0xb3cfb4cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9, +0xeebfeebf,0xddafcc8f,0xcc8fcc8f,0xedafcb7f,0xdd9fedaf,0xcc8fcb7f,0xeebfedbf,0xeebfcb7f,0x72bf72af,0x83cf84cf,0x73bf72bf,0x94df84cf,0x72bf73cf,0x84cf83cf,0x72bf72bf,0x84cf83cf,0xb3cfb3bf,0xc4cfc5cf,0xb4cfb3cf,0xc6dfc5df,0xb3cfb4cf,0xc5cfc5cf,0xb3cfb3cf,0xc5dfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xddafeeaf,0xcb7fcc8f,0xddafedaf,0xcb7feebf,0xedafdc9f,0xddafddaf,0xddafcb7f,0xddafddaf,0x268f268f,0x268f268f,0x279f279f,0x268f268f,0x279f279f,0x268f268f,0x279f279f,0x268f268f,0xe73fe72f,0xe72fe72f,0xe84fe83f,0xe72fe72f,0xe83fe83f,0xe72fe61f,0xe83fe83f,0xe72fe72f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9, +0xcb7fedaf,0xedafddaf,0xdc9fcb7f,0xcb7fdc9f,0xddafdd9f,0xdc9fdc9f,0xcb7fdc9f,0xeebfcb7f,0x279f279f,0x28af28af,0x279f27af,0x279f279f,0x268f268f,0x279f268f,0x268f157f,0x279f268f,0xe83fe83f,0xe84fe84f,0xe83fe84f,0xe73fe73f,0xe72fe72f,0xe73fe72f,0xe72fe61f,0xe73fe73f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8, +0xedafcc8f,0xcb7fdd9f,0xdc9fcb7f,0xdc9fcc9f,0xdc9fcb7f,0xedafcc9f,0xeeafcb7f,0xcb7fedaf,0x27af27af,0x279f279f,0x27af28af,0x279f279f,0x27af279f,0x279f279f,0x28af28af,0x279f279f,0xe84fe84f,0xe73fe73f,0xe84fe84f,0xe73fe83f,0xe84fe83f,0xe83fe83f,0xe84fe84f,0xe83fe83f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8, +0xdd9fcc8f,0xedbfcb7f,0xcb7fedbf,0xddafdd9f,0xdc9fdc8f,0xcb7fdd9f,0xedafedbf,0xdc9fdd9f,0x268f279f,0x27af279f,0x278f279f,0x27af279f,0x279f268f,0x27af27af,0x268f279f,0x27af28af,0xe73fe83f,0xe84fe84f,0xe73fe73f,0xe84fe83f,0xe73fe72f,0xe84fe84f,0xe73fe83f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8, +0xcb7fdd9f,0xddafedbf,0xdc8fdc9f,0xeebfeebf,0xcc8fcb7f,0xedbfcc8f,0xedafedaf,0xddafdd9f,0x279f279f,0x279f268f,0x279f279f,0x267f268f,0x279f268f,0x268f268f,0x279f279f,0x268f268f,0xe73fe83f,0xe83fe72f,0xe84fe84f,0xe61fe61f,0xe83fe72f,0xe72fe72f,0xe84fe84f,0xe61fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8, +0xcb7fdc9f,0xddafdc9f,0xdc8fddaf,0xcb7fcb7f,0xddafedaf,0xcb7fdd9f,0xdd9fdc9f,0xdc9fcc9f,0x267f268f,0x27af268f,0x267f268f,0x268f268f,0x267f268f,0x279f268f,0x268f268f,0x278f268f,0xe61fe72f,0xe84fe72f,0xe61fe72f,0xe73fe72f,0xe61fe72f,0xe73fe73f,0xe72fe61f,0xe73fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8, +0xdd9fcb7f,0xedbfdd9f,0xdc8fdc9f,0xedafcb7f,0xdd9fcb7f,0xdc9fedaf,0xcc8fcc8f,0xcb7fedbf,0x28af28af,0x279f27af,0x279f279f,0x279f279f,0x28af27af,0x279f279f,0x28af28af,0x279f279f,0xe84fe84f,0xe84fe84f,0xe83fe83f,0xe83fe73f,0xe84fe84f,0xe73fe83f,0xe84fe84f,0xe83fe83f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x799f799f,0x00000000,0x799f0000,0x0000799f,0x00000000,0x799f799f,0x00000000,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9, +0xcb7fedaf,0xdc8fedbf,0xcb7fcb7f,0xdc9fdc9f,0xedafcb7f,0xddafddaf,0xedafddaf,0xedafcb7f,0x268f268f,0x28af28af,0x279f279f,0x27af27af,0x268f268f,0x27af279f,0x279f279f,0x27af28af,0xe73fe73f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xe72fe72f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x799f0000,0xdddfffff,0x0000567f,0xffff799f,0x567fdddf,0x799f0000,0xdddfffff,0x0000567f,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8, +0xdc9fdc9f,0xddafcb7f,0xedafedaf,0xdc9fcc8f,0xcb7fddaf,0xdd9fcb7f,0xcb7feebf,0xdc9fddaf,0x279f279f,0x268f268f,0x279f27af,0x278f268f,0x279f268f,0x268f268f,0x279f279f,0x268f268f,0xe83fe83f,0xe72fe72f,0xe83fe84f,0xe73fe72f,0xe73fe72f,0xe61fe72f,0xe73fe83f,0xe72fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x799f0000,0xbccfdddf,0x0000567f,0xdddf799f,0x567fbccf,0x799f0000,0xbccfdddf,0x0000567f,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xdd9fdc9f,0xdc9fcc8f,0xddafddaf,0xdc9fcb7f,0xdc9fedaf,0xcb7fcc9f,0xcc8fcb7f,0xdc9fedaf,0x279f268f,0x27af278f,0x268f267f,0x279f279f,0x279f268f,0x28af28af,0x279f279f,0x28af28af,0xe73fe72f,0xe84fe73f,0xe61fe61f,0xe83fe73f,0xe83fe72f,0xe84fe84f,0xe83fe73f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x567f567f,0x00000000,0x567f0000,0x0000567f,0x00000000,0x567f567f,0x00000000,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8, +0xcb7fdc9f,0xdc9fdc9f,0xedafddaf,0xddafcb7f,0xdc9fddaf,0xeebfcb7f,0xcc8fddaf,0xdd9fedaf,0x28af27af,0x279f279f,0x27af28af,0x279f279f,0x27af28af,0x279f279f,0x279f279f,0x279f268f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xe83fe73f,0xe83fe83f,0xe83fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8, +0xeebfcb7f,0xedafeebf,0xedafdd9f,0xcb7fedaf,0xeebfdc9f,0xeebfcb7f,0xcb7fddaf,0xddafddaf,0x268f268f,0x279f279f,0x278f268f,0x279f279f,0x268f268f,0x279f268f,0x267f267f,0x279f278f,0xe72fe72f,0xe83fe83f,0xe73fe73f,0xe83fe84f,0xe72fe72f,0xe83fe72f,0xe61fe61f,0xe83fe73f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xcc8fddaf,0xedafcb7f,0xcc8fcc8f,0xdc9fcb7f,0xcb7fdc9f,0xdd9feebf,0xddafdc9f,0xcc8fcb7f,0x268f278f,0x268f267f,0x28af27af,0x267f268f,0x279f279f,0x279f279f,0x28af28af,0x268f279f,0xe73fe73f,0xe61fe61f,0xe84fe84f,0xe61fe72f,0xe84fe83f,0xe83fe83f,0xe84fe84f,0xe61fe83f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8, +0xedafedaf,0xcb7feebf,0xddafcb7f,0xcb7fdd9f,0xcc8fdc9f,0xddafdd9f,0xcb7fedaf,0xddafedbf,0x279f279f,0x28af28af,0x279f27af,0x279f279f,0x279f267f,0x27af279f,0x279f279f,0x28af27af,0xe83fe83f,0xe84fe84f,0xe83fe84f,0xe73fe83f,0xe73fe61f,0xe84fe83f,0xe73fe73f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8, +0xedafedaf,0xeebfdc9f,0xddafcb7f,0xcb7fdc9f,0xcb7fcc8f,0xddafcc8f,0xedbfcb7f,0xddafdd9f,0x28af28af,0x279f279f,0x279f27af,0x279f279f,0x27af28af,0x268f268f,0x279f279f,0x268f278f,0xe84fe84f,0xe73fe83f,0xe83fe84f,0xe84fe83f,0xe84fe84f,0xe72fe72f,0xe83fe83f,0xe72fe73f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9, +0xddafedaf,0xcb7fdd9f,0xedafddaf,0xcb7fdd9f,0xddafddaf,0xcb7fdc9f,0xddafdd9f,0xedafddaf,0x268f268f,0x279f27af,0x278f268f,0x28af27af,0x268f279f,0x27af279f,0x268f268f,0x27af27af,0xe72fe72f,0xe83fe84f,0xe73fe72f,0xe84fe84f,0xe73fe73f,0xe84fe83f,0xe72fe72f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x999f999f,0x899f899f,0xaaaf9aaf,0x999f999f,0xaaafaaaf,0x899f888f,0xaaafaaaf,0x899f899f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xaaaf9aaf,0xbbbfbbbf,0xaaafabbf,0x9aaf9aaf,0x899f899f,0x9aaf999f,0x899f788f,0x9aaf999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xabbfabbf,0x9aaf9aaf,0xabbfbbbf,0x9aafaaaf,0xabbfaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f9aaf,0xabbfaaaf,0x999f9aaf,0xabbf9aaf,0x9aaf999f,0xabbfabbf,0x999f9aaf,0xabbfbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x9aafaaaf,0x9aaf999f,0xaaafaaaf,0x888f888f,0xaaaf999f,0x899f999f,0xaaafaaaf,0x888f899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x888f899f,0xabbf999f,0x888f999f,0x999f999f,0x888f999f,0x9aaf999f,0x999f899f,0x9aaf899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xbbbfbbbf,0xaaafabbf,0x9aaf9aaf,0xaaaf9aaf,0xbbbfabbf,0x9aafaaaf,0xbbbfbbbf,0xaaafaaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f999f,0xbbbfbbbf,0xaaafaaaf,0xabbfabbf,0x999f899f,0xabbfaaaf,0xaaafaaaf,0xabbfabbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xaaafaaaf,0x999f899f,0xaaafabbf,0x999f999f,0x9aaf999f,0x899f999f,0x9aaf9aaf,0x899f899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x9aaf999f,0xabbf9aaf,0x888f888f,0xaaaf9aaf,0xaaaf999f,0xbbbfbbbf,0xaaaf9aaf,0xbbbfbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xabbfabbf,0xaaafaaaf,0xabbfbbbf,0xaaafaaaf,0xabbfabbf,0xaaaf9aaf,0x9aafaaaf,0x9aaf899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f899f,0xaaafaaaf,0x999f999f,0xaaafaaaf,0x999f899f,0xaaaf999f,0x888f888f,0xaaaf9aaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f999f,0x888f888f,0xbbbfabbf,0x888f899f,0xaaaf9aaf,0xaaafaaaf,0xbbbfbbbf,0x899faaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xaaafaaaf,0xbbbfbbbf,0xaaafabbf,0x9aafaaaf,0x9aaf888f,0xabbfaaaf,0x9aaf9aaf,0xbbbfabbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xbbbfbbbf,0x9aaf9aaf,0xaaafabbf,0xaaafaaaf,0xabbfbbbf,0x999f999f,0xaaafaaaf,0x899f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f899f,0xaaafabbf,0x999f899f,0xbbbfabbf,0x999f9aaf,0xabbfaaaf,0x999f899f,0xabbfabbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f999f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f333f,0x777f777f,0x777f333f,0x777f999f,0x777f333f,0x777f333f,0x777f999f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x333f777f,0x333f333f,0x777f999f,0x777f777f,0x777f333f,0x777f333f,0x777f777f,0x777f777f,0x333f999f,0x333f333f,0x777f999f,0x777f777f,0x777f333f,0x777f333f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f333f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f999f,0x777f333f,0x333f333f,0x777f777f,0x777f777f,0x777f777f, +0x333f777f,0x999f777f,0x999f999f,0x777f333f,0x333f333f,0x777f999f,0x333f999f,0x777f777f,0x333f777f,0x999f777f,0x999f999f,0x777f333f,0x333f333f,0x777f999f,0x333f999f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x333f777f,0x777f777f, +0x999f777f,0x333f333f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x333f777f,0x777f777f,0x999f777f,0x333f333f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x333f777f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0x777f333f,0x777f777f,0x777f777f,0x777f333f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0x777f333f,0x777f777f,0x999f999f,0x777f333f,0x999f333f,0x333f777f,0x777f333f,0x333f777f,0x777f333f, +0x333f777f,0x999f999f,0x777f333f,0x999f333f,0x333f777f,0x777f333f,0x333f777f,0x777f333f,0x333f333f,0x999f999f,0x777f333f,0x999f333f,0x333f777f,0x777f333f,0x333f777f,0x777f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x333f777f,0x777f777f,0x777f333f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x333f777f,0x777f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f777f,0x999f333f,0x777f999f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f777f,0x999f333f,0x777f999f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f999f,0x999f333f,0x333f999f, +0x999f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f999f,0x999f333f,0x333f999f,0x999f999f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f999f,0x999f333f,0x333f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f, +0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x999f777f, +0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x999f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x999f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f, +0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f, +0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f, +0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f,0x333f333f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f, +0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x999f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x777f777f,0x999f777f,0x999f333f,0x999f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x333f777f,0x999f777f,0x999f333f,0x333f777f,0x777f777f,0x777f777f, +0x777f777f,0x999f333f,0x333f777f,0x999f777f,0x999f333f,0x333f777f,0x777f777f,0x777f777f,0x999f999f,0x999f333f,0x333f777f,0x999f777f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x999f333f,0x777f777f,0x777f333f,0x999f777f,0x777f333f,0x777f777f, +0x777f777f,0x777f333f,0x999f333f,0x777f777f,0x777f333f,0x999f777f,0x777f333f,0x777f333f,0x777f777f,0x777f333f,0x999f333f,0x777f777f,0x777f333f,0x999f777f,0x777f333f,0x999f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x777f999f,0x777f777f, +0x777f333f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x333f999f,0x777f999f,0x777f333f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x333f999f,0x777f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x333f333f,0x777f777f,0x777f777f, +0x333f999f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x333f333f,0x333f777f,0x777f777f,0x333f999f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x333f333f,0x333f777f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x999f777f,0x999f999f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x999f999f,0x777f777f,0x777f777f, +0x333f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x999f999f,0x999f777f,0x777f777f,0x333f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x999f999f,0x999f777f,0x333f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x333f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x777f777f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x777f777f, +0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x777f777f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x999f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f777f,0x777f777f,0x999f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x999f999f,0x777f333f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x777f777f, +0x777f777f,0x999f333f,0x333f333f,0x777f777f,0x999f333f,0x999f999f,0x333f333f,0x777f777f,0x777f777f,0x999f333f,0x333f333f,0x777f777f,0x999f333f,0x999f999f,0x333f333f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f999f,0x777f777f,0x777f999f,0x777f777f, +0x777f777f,0x777f999f,0x999f999f,0x777f777f,0x777f333f,0x777f777f,0x999f999f,0x777f333f,0x777f777f,0x777f333f,0x999f999f,0x777f777f,0x777f333f,0x777f777f,0x999f999f,0x777f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f, +0 }; diff --git a/data/images/terrain_5551.h b/data/images/terrain_5551.h new file mode 100755 index 0000000..95e42b0 --- /dev/null +++ b/data/images/terrain_5551.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.20 + * PVRTC Library v 1.106. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_5551[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00008011, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f800, /* dwRBitMask */ +0x000007c0, /* dwGBitMask */ +0x0000003e, /* dwBBitMask */ +0x00000001, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x94a594a5,0x842194a5,0x8c638421,0x8c637bdf,0x94a59ce7,0x84218c63,0x84218c63,0x8c63739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x9353bc17,0x7a8f9353,0xbc177a8f,0x93539353,0x7a8f7a8f,0x7a8f59cb,0xbc177a8f,0xbc177a8f,0x75937593,0x650f7593,0x6d51650f,0x6d515ccd,0x75937dd5,0x650f6d51,0x650d6d4f,0x6d515489, +0x9c13bcd9,0x9c139c13,0xbcd99c13,0xb497bcd9,0xbcd99c13,0xbcd9bcd9,0xbcd9bcd9,0x9c13bcd9,0xc631ce73,0xc631c631,0xce73c631,0xce73ce73,0xce73c631,0xc631ce73,0xc631c631,0xad6bc631,0x84218421,0x84218421,0x84218421,0x94a594a5,0x94a57bdf,0x84218421,0x84218421,0x84218421,0x924d9a4d,0xce739a4d,0x9a4f9a4d,0xa28f920d,0xaa8f9a4d,0xd6b58a0d,0xaa8f9a4d,0x9a4d9a4d, +0xc9c5da07,0xa185b1c5,0xc9c5da07,0xa185b1c5,0xc9c5da07,0xa185b1c5,0xc9c5da07,0xa185b1c5,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x8c6394a5,0x94a5a529,0x84219ce7,0x84218c63,0xad6b7bdf,0x94a5a529,0x8c638421,0x8c638421,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x93537a8f,0x7a8f59cb,0x93537a8f,0x59cb8421,0xbc177a8f,0x7a8f9353,0x93537a8f,0x59cb59cb,0x6d517593,0x85958dd7,0x59cb8595,0x650f6d4f,0x96195ccd,0x759395d9,0x6d51650d,0x6d51650f, +0xbcd9bcd9,0x72cfb497,0xb497b497,0x9c139c13,0x9c139c13,0xb4979c13,0xb4979c13,0x9c13bcd9,0xad6bce73,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b,0xad6b8421,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b,0x79cb79cb,0xe739820b,0x79cbb2d1,0x61896989,0x71cb79cb,0xd6b5820b,0x79cb9a4d,0x79cb79cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4e490000,0x00000000,0x00000000, +0xbdefa529,0x8421b5ad,0x8c638c63,0x94a594a5,0x9ce794a5,0xad6bad6b,0x739d8421,0xb5ad8421,0x6b5b7bdf,0x739d739d,0x739d6b5b,0x739d739d,0x739d8c63,0x7bdf7bdf,0x8c637bdf,0x7bdf7bdf,0x7a8fbc17,0x59cb7a8f,0x7a8fbc17,0x7a8f7a8f,0x7a8fbc17,0x7a8f7a8f,0x59cb59cb,0x7a8fbc17,0x59cb8dd7,0x650f9e5b,0x59cb6d4f,0x59cb7591,0x7dd57593,0x96199619,0x548b59cb,0x59cb650d, +0xbcd9bcd9,0x9c139c13,0x9c139c13,0xb497b497,0xbcd9bcd9,0xb497bcd9,0xbcd972cf,0x9c13bcd9,0x9ce7ce73,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b,0x9ce78421,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b,0x8a0d79cb,0xd6b56989,0x79cb9a4d,0x718979cb,0x79cb79cb,0xd6b579cb,0x920d820b,0x8a0d79cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91455295,0x8c63da07,0x00015295,0x52950001,0x91458c63,0x5295da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x4e494e49,0x00000000,0x00000000,0x03014e49,0x00000301,0x00000000, +0x8421739d,0x94a58c63,0x9ce794a5,0x7bdf7bdf,0x84217bdf,0x94a58c63,0x8c638c63,0x7bdf8c63,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0x8c637bdf,0x7bdf7bdf,0x739d739d,0x739d739d,0x7bdf739d,0x6b5b9353,0x7a8fbc17,0x59cb9353,0xbc177a8f,0x93539353,0x93537a8f,0xbc177a8f,0x7a8f9353,0x6b5b59cb,0x59cb59cb,0x59cb7591,0x59cb59cb,0x59cb5ccd,0x59cb6d51,0x59cb7a8f,0x7a8f59cb, +0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x72cf72cf,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf72cf,0xb5adce73,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529,0xb5ad8421,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529,0xbdefbdef,0xd6b5b5ad,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xdef7b5ad,0xb5adb5ad,0xbdefb5ad, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x9145a985,0x52959145,0x9145a985,0x91455295,0x00015295,0x91459145,0x91455295,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x03014e49,0x4e490000,0x03014e49,0x03010000,0x0000930b,0x00000000, +0x8421a529,0x8421ad6b,0xad6bad6b,0xad6b8c63,0x739dbdef,0xa5298421,0x7bdfad6b,0x8c638c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x7a8f9353,0xbc179353,0x935359cb,0x7a8f7a8f,0x59cb9353,0x6b5b7a8f,0x93537a8f,0x7a8f59cb,0x7a8f9353,0xbc179353,0x935359cb,0x7a8f7a8f,0x59cb59cb,0x6b5b59cb,0x93537a8f,0x7a8f59cb, +0x9c13bcd9,0x9c139c13,0xbcd99c13,0x9c13bcd9,0x9c13bcd9,0x72cf9c13,0xb497b497,0xbcd9b497,0xb5adce73,0xa529b5ad,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad,0xb5ad8421,0xa529b5ad,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad,0x9a4d8a0d,0x9a4d9a4d,0x924d9a4d,0xd6b59a4d,0xaa8faa8f,0x9a4da24f,0x9a4d9a4d,0xd6b59a4d, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xda07da07,0xa985da07,0xda075295,0xa9855295,0xda075295,0x00010001,0xda075295,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x4e490000,0x0301930b,0x00000301,0x03010301,0x930b5981,0x0301930b,0x00000000, +0x9ce79ce7,0xa5297bdf,0x94a58421,0x9ce794a5,0x94a58421,0x84218c63,0x8c637bdf,0x94a58c63,0x739d739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x6b5b7bdf,0x7bdf7bdf,0x739d739d,0x7bdf6b5b,0x59cb7a8f,0x93539353,0x93537a8f,0x59cb59cb,0x7a8f59cb,0x59cb7a8f,0x7a8f7a8f,0xbc177a8f,0x59cb7a8f,0x93539353,0x93537a8f,0x59cb59cb,0x7a8f59cb,0x59cb7a8f,0x7a8f7a8f,0xbc177a8f, +0x9c139c13,0xb49772cf,0xb497b497,0x9c13bcd9,0xb497b497,0xb497b497,0x9c139c13,0x9c139c13,0xa529c631,0xad6bad6b,0xa529ad6b,0xa529a529,0x9ce7ad6b,0xad6bad6b,0xa529a529,0x84219ce7,0xa5298421,0xad6bad6b,0xa529ad6b,0xa529a529,0x9ce7ad6b,0xad6bad6b,0xa529a529,0x84219ce7,0x79cb9a4d,0x79cb9a4d,0x79cb6189,0xd6b579cb,0x79cb9a4d,0x79cb7189,0x79cb6989,0xd6b579cb, +0xdef7def7,0xce73def7,0xdef7def7,0xdef7def7,0xdef7ce73,0xce73def7,0xdef7ce73,0xce73def7,0x8c63da07,0x91458c63,0x0001da07,0x91450001,0x8c635295,0x52955295,0x8c630001,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3df90000,0x00003df9,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03010000,0x03015981,0x00000301,0x930b0301,0x5981930b,0x930b5981,0x00000000, +0x9ce77bdf,0x94a5a529,0x842194a5,0x7bdf8c63,0x84218421,0xad6bb5ad,0xa52994a5,0x8c6394a5,0x8c638c63,0x84217bdf,0x739d7bdf,0x8c638c63,0x7bdf7bdf,0x7bdf7bdf,0x8c638c63,0x6b5b8c63,0x59cbbc17,0x7a8f7a8f,0x7a8f8421,0xbc177a8f,0x7a8fbc17,0xbc17bc17,0x93537a8f,0x93537a8f,0x59cbbc17,0x7a8f7a8f,0x7a8f8421,0xbc177a8f,0x7a8fbc17,0xbc17bc17,0x93537a8f,0x93537a8f, +0xbcd9bcd9,0xb497bcd9,0xbcd9bcd9,0x9c13bcd9,0x9c139c13,0xbcd972cf,0xbcd9bcd9,0xbcd9bcd9,0xb5adce73,0xad6bad6b,0xa529ad6b,0xb5adb5ad,0xad6bad6b,0xad6bad6b,0xb5adb5ad,0x7bdfb5ad,0xb5ad94a5,0xad6bad6b,0xa529ad6b,0xb5adb5ad,0xad6bad6b,0xad6bad6b,0xb5adb5ad,0x7bdfb5ad,0x59499a4d,0x69898a0b,0x618979cb,0xdef779cb,0x6989aa8f,0x71cb820b,0x79cb79cb,0xd6b579cb, +0xdef7ce73,0x00010001,0xce730001,0xce730001,0x0001def7,0x0001ce73,0x00010001,0xce73def7,0x8c63da07,0x52955295,0x8c63da07,0x52950001,0x52950001,0x52950001,0x00015295,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x33e73df9,0x3cef3d33,0x00003d33,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x59810000,0x5981930b,0x930b930b,0x03015981,0x4e490000,0x00000301, +0x84218c63,0x8c639ce7,0x7bdf94a5,0x8421a529,0xad6b94a5,0x84218421,0xa5298c63,0xad6b7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7a8fbc17,0xbc17bc17,0x93539353,0x7a8f7a8f,0x59cb9353,0x93539353,0x7a8f7a8f,0x93539353,0x7a8fbc17,0xbc17bc17,0x93539353,0x7a8f7a8f,0x59cb9353,0x93539353,0x7a8f7a8f,0x93539353, +0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf72cf,0x8421ad6b,0x84218421,0x84218421,0x84218421,0x7bdf8421,0x84218421,0x84218421,0x84218421,0xad6b8421,0xa529ad6b,0xa529a529,0xa529a529,0x9ce7a529,0xa529a529,0xa529a529,0x8421ad6b,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xd6b5b5ad,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xd6b5b5ad, +0xce73ce73,0x0001ce73,0xce73ce73,0x00010001,0x0001ce73,0xce73ce73,0xce730001,0xce73ce73,0x9145a985,0x91459145,0x00015295,0x00010001,0x00010001,0x91455295,0x0001a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3d330000,0x3d333d33,0x33e73df9,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x4e490000,0x00000301,0x930b5981,0x4e494e49,0x00000000,0x03014e49,0x00000301, +0x9ce78421,0xad6bb5ad,0x8421ad6b,0x9ce7ad6b,0xad6bb5ad,0x94a58421,0x94a58421,0x7bdf7bdf,0x8c637bdf,0x6b5b8c63,0x739d8c63,0x7bdf7bdf,0x8c637bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x7a8f9353,0x93537a8f,0x93537a8f,0x59cb7a8f,0x93537a8f,0x7a8f9353,0x7a8f7a8f,0x7a8f59cb,0x7a8f9353,0x93537a8f,0x93537a8f,0x59cb7a8f,0x93537a8f,0x7a8f9353,0x7a8f7a8f,0x7a8f59cb, +0xbcd9bcd9,0xbcd9bcd9,0x72cfbcd9,0xbcd99c13,0xb497bcd9,0xb497b497,0xbcd9bcd9,0x9c13bcd9,0xce73ce73,0xc631ce73,0xc631ce73,0xce73ce73,0xce73ce73,0xce73ce73,0xce73ce73,0xb5adce73,0xb5ad8421,0x9ce7b5ad,0xa529b5ad,0xad6bad6b,0xb5adad6b,0xb5adb5ad,0xb5adb5ad,0x94a5b5ad,0x9a4da24f,0xd6b59a4d,0x9a4d9a4d,0xb2d1a28f,0x9a4da24f,0xd6b59a4d,0x9a4d9a4d,0x79cbb2d1, +0xce73ce73,0x0001ce73,0xce73ce73,0xce730001,0x00010001,0xce73ce73,0xce730001,0xce73ce73,0xda07da07,0xa985da07,0xda07da07,0x00010001,0x52950001,0x5295da07,0x00015295,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x3cef3df9,0x33e733e7,0x00003d33,0x00000000,0x00000000,0x00000000,0x00000000,0xce810000,0x0000f7c1,0xb5c1f7c1,0x0000f7c1,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03010000,0x930b0000,0x930b930b,0x03010301,0x59810301,0x03010000,0x00000000, +0x842194a5,0x8c63b5ad,0x9ce78c63,0x8421ad6b,0x94a58421,0xad6b94a5,0xb5ad8c63,0x84218c63,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf739d,0x7bdf6b5b,0x739d7bdf,0x739d739d,0x7bdf8c63,0x93539353,0x7a8f59cb,0x59cb7a8f,0x7a8f59cb,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x93537a8f,0x93539353,0x7a8f59cb,0x59cb7a8f,0x7a8f59cb,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x93537a8f, +0x9c139c13,0x9c139c13,0xbcd99c13,0xb497b497,0x9c139c13,0x72cf9c13,0x9c13bcd9,0x9c139c13,0xa529ce73,0xa529a529,0xa529a529,0xad6ba529,0xad6b9ce7,0xa529ad6b,0xa529a529,0x8421b5ad,0xa5298421,0xa529a529,0xa529a529,0xad6ba529,0xad6b9ce7,0xa529ad6b,0xa529a529,0x8421b5ad,0x79cb79cb,0xce7379cb,0x79cb924d,0x79cb79cb,0x8a0d820b,0xce7379cb,0x8a0b9a4d,0x79cb79cb, +0xad6bce73,0x0001ad6b,0xad6bce73,0xce730001,0x0001ce73,0xce73ce73,0xad6b0001,0xce73ad6b,0x8c63da07,0x52955295,0x00010001,0x00010001,0x00010001,0x91458c63,0x52950001,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x14013d33,0x00001301,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xce81ce81,0x8c81f7c1,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x930b0301,0x930b5981,0x0301930b,0x930b930b,0x930b930b,0x00004e49, +0x9ce79ce7,0xa52994a5,0xb5ad8421,0x94a58c63,0x7bdfc631,0x8421a529,0x8c638c63,0x8c638421,0x7bdf7bdf,0x739d8c63,0x8c63739d,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x93539353,0xbc177a8f,0x7a8fbc17,0x9353bc17,0xbc1759cb,0x7a8fbc17,0x93539353,0x7a8f8421,0x93539353,0xbc177a8f,0x7a8fbc17,0x9353bc17,0xbc1759cb,0x7a8fbc17,0x93539353,0x7a8f8421, +0xb497bcd9,0xb497b497,0xbcd9bcd9,0x9c139c13,0x9c139c13,0xb497b497,0xb497b497,0x9c13b497,0xad6bce73,0xa529b5ad,0xb5ada529,0xa529b5ad,0xa5299ce7,0xb5adb5ad,0xad6bb5ad,0x8421ad6b,0xad6b8421,0xa529b5ad,0xb5ada529,0xa529b5ad,0xa5299ce7,0xb5adb5ad,0xad6bb5ad,0x8421ad6b,0x79cb8a0d,0xdef78a0b,0x79cb9a4d,0x79cb5949,0x820b6989,0xd6b579cb,0x79cb9a4d,0x79cb820b, +0xad6bad6b,0xad6bce73,0xce73ad6b,0xad6bad6b,0xce73ad6b,0xad6bad6b,0xad6bce73,0xad6bad6b,0x8c63da07,0x91458c63,0x0001da07,0x00010001,0x8c630001,0x91455295,0x8c630001,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a0d0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf7c10000,0xb5c1f7c1,0x8c818c81,0x0000ce81,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x4e490000,0x59810301,0x4e490000,0x59810301,0x4e495981,0x00000301,0x03010301, +0xad6b8421,0xa5298421,0x842194a5,0x8c6394a5,0x94a594a5,0x7bdf8c63,0x7bdf7bdf,0x8c637bdf,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0x7bdf7bdf,0x8c637bdf,0x6b5b8c63,0x7a8f9353,0x93537a8f,0xbc179353,0x93537a8f,0x93536b5b,0x7a8f9353,0x935359cb,0x59cb7a8f,0x7a8f9353,0x93537a8f,0xbc179353,0x93537a8f,0x93536b5b,0x7a8f9353,0x935359cb,0x59cb7a8f, +0x6a8d72cf,0x72cf72cf,0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x72cf72cf,0x6a8d6a8d,0x72cf6a8d,0xad6bc631,0xad6bad6b,0xad6ba529,0xad6bad6b,0xb5adb5ad,0xad6bad6b,0xb5adad6b,0x7bdfb5ad,0xad6b7bdf,0xad6bad6b,0xad6ba529,0xad6bad6b,0xb5adb5ad,0xad6bad6b,0xb5adad6b,0x7bdfb5ad,0xb5adb5ad,0xd6b5ad6b,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xdef7b5ad,0xbdefb5ad,0xb5adb5ad, +0xa185b1c5,0x79038945,0xa185b1c5,0x79038945,0xa185b1c5,0x79038945,0xa185b1c5,0x79038945,0x9145a985,0x91459145,0x91450001,0x91450001,0x52950001,0x00019145,0x91455295,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x14015a0d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14010000,0x00001401,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03014e49,0x03010301,0x03010000,0x930b0301,0x00005981,0x00000000,0x03010000, +0x94a5bdef,0x8c638421,0x94a59ce7,0x7bdf8421,0x94a56319,0x7bdf8c63,0xa5299ce7,0x84217bdf,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x739d739d,0x739d739d,0x7bdf739d,0x59cb7a8f,0x7a8f9353,0x93539353,0x7a8fbc17,0x7a8f7a8f,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x59cb7a8f,0x7a8f9353,0x93539353,0x7a8fbc17,0x7a8f7a8f,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17, +0xbcd9bcd9,0xbcd9bcd9,0x9c13bcd9,0x9c13bcd9,0x9c139c13,0x9c139c13,0x72cfb497,0xbcd9bcd9,0xa529ce73,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xa529a529,0xa529a529,0x8421a529,0xa5298421,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xa529a529,0xa529a529,0x8421a529,0xa24f9a4f,0x9a4daa8f,0x9a4d9a4d,0xce73924d,0xb2d1924d,0x9a4d9a4d,0x9a4d9a4d,0xe7399a4f, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xda07da07,0x5295da07,0xda07da07,0xa9855295,0x00015295,0x52950001,0xda075295,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x13010000,0x00001401,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14010000,0x14011301,0x00001301,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03010301,0x03010000,0x59810000,0x4e49930b,0x00004e49,0x00000000,0x00000000, +0xad6bb5ad,0x739d739d,0x84217bdf,0xc6318421,0xc631a529,0x9ce7ad6b,0x8c63a529,0xad6bad6b,0x8c637bdf,0x8c63739d,0x7bdf6b5b,0x739d7bdf,0x739d739d,0x739d6b5b,0x7bdf7bdf,0x8c638c63,0x93537a8f,0x7a8f7a8f,0x7a8f72d1,0x93539353,0x59cb7a8f,0x59cbbc17,0xbc177a8f,0x93539353,0x93537a8f,0x7a8f7a8f,0x7a8f59cb,0x93539353,0x59cb7a8f,0x59cbbc17,0xbc177a8f,0x93539353, +0x9c13b497,0xbcd972cf,0xbcd9bcd9,0x9c13bcd9,0xb497bcd9,0x9c13b497,0x9c139c13,0xb4979c13,0xb5adce73,0xb5ada529,0xad6b9ce7,0xa529ad6b,0xa529a529,0xa5299ce7,0xad6bad6b,0x94a5b5ad,0xb5ad8421,0xb5ada529,0xad6b9ce7,0xa529ad6b,0xa529a529,0xa5299ce7,0xad6bad6b,0x94a5b5ad,0x79cb9a4d,0x79cb79cb,0x79cb79cb,0xce736189,0x79cb9a4d,0x79cb79cb,0x79cb79cb,0xd6b581cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91455295,0x8c63da07,0x91458c63,0x5295da07,0x91458c63,0x5295da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x5a0d1401,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13010000,0x14011401,0x13011301,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x930b0000,0x5981930b,0x00000301,0x00000000,0x00000000, +0xa529a529,0x7bdf8c63,0xad6bb5ad,0x94a594a5,0x94a57bdf,0x842194a5,0x9ce7ad6b,0xa5298c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7a8f9353,0xbc1759cb,0x59cb7a8f,0x59cb7a8f,0x7a8f7a8f,0x59cb7a8f,0x7a8f7a8f,0x93539353,0x7a8f9353,0xbc1759cb,0x59cb7a8f,0x59cb7a8f,0x7a8f7a8f,0x59cb7a8f,0x7a8f7a8f,0x93539353, +0xbcd9bcd9,0x9c139c13,0xbcd99c13,0x9c13bcd9,0xbcd9bcd9,0xb4979c13,0xbcd9bcd9,0xbcd9bcd9,0xad6bce73,0xa529ad6b,0xa529a529,0xa529a529,0xad6bad6b,0xb5adb5ad,0xa529ad6b,0x8421a529,0xad6b8421,0xa529ad6b,0xa529a529,0xa529a529,0xad6bad6b,0xb5adb5ad,0xa529ad6b,0x8421a529,0x51479a4d,0x79cb820b,0x79cb79cb,0xd6b579cb,0x79cb9a4d,0x79cb79cb,0x79cb820b,0xd6b581cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a0d0000,0x00001301,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14011301,0x00001301,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x930b0000,0x5981930b,0x00000000,0x00000000,0x00000000, +0x94a58421,0x739d8c63,0x9ce7a529,0xbdef94a5,0xbdef8c63,0x84217bdf,0x94a58421,0x9ce78c63,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x7a8f9353,0x9353bc17,0x7a8f9353,0x93538421,0x93539353,0x7a8f7a8f,0x93539353,0x59cb7a8f,0x7a8f9353,0x9353bc17,0x7a8f9353,0x93538421,0x93539353,0x7a8f7a8f,0x93539353,0x59cb7a8f, +0x72cf72cf,0x7b0f72cf,0x6a8d6a8d,0x6a8d7b0f,0x72cf72cf,0x6a8d72cf,0x6a8d49c9,0x72cf6a8d,0x8421a529,0x84218421,0x94a57bdf,0x842194a5,0x84218421,0x84218421,0x84218421,0x84218421,0x84218421,0x84218421,0x94a57bdf,0x842194a5,0x84218421,0x84218421,0x84218421,0x84218421,0xb5adb5ad,0xb5adad6b,0xb5adb5ad,0xd6b5b5ad,0xb5adbdef,0xb5adb5ad,0xb5adbdef,0xce73b5ad, +0xb185c1c5,0x9145a185,0xb185c1c5,0x9145a185,0xb185c1c5,0x9145a185,0xb185c1c5,0x9145a185,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001301,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14010000,0x00001301,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x59810000,0x5981930b,0x00000000,0x00000000,0x00000000, +0xb5adb5ad,0xa529b5ad,0x7bdf94a5,0x5ad76319,0xb5ad5ad7,0xb5adb5ad,0x5ad78421,0x8c63b5ad,0x318d5295,0x318d318d,0x5295318d,0x94a594a5,0x94a50001,0x318d5295,0x318d318d,0x5295318d,0xdea99c97,0xdea7dea7,0xdea7d6a5,0xdea7d665,0xdea9e6e9,0xd6a7dea7,0xd665d665,0xdea7ce23,0xbdef5a93,0x9c216ad9,0x94239c21,0x6ad99c23,0x6ad97bdf,0x9c639c63,0xa4e58c1f,0x9c21735b, +0x6a8d41c9,0x9bd36a8d,0x6acd3987,0x41899391,0x6a8d628d,0x7b0f628d,0x7b0f6acd,0x9bd36a8d,0x6a8d6a8d,0x6a8d3947,0x628d6a8d,0x39473947,0x6a8d3947,0x39476a8d,0x6a8d6acf,0x6acd6a8d,0xa529ad6b,0xbdefad6b,0xd6b5c631,0xd6b5d6b5,0xd6b5d6b5,0xdef7d6b5,0xdef7def7,0xe739def7,0xc407c449,0xd509cc87,0xe64fddcb,0xee4fee8f,0xee0fee4d,0xee91ee91,0xeed3eed3,0xff17f6d5, +0x041d041d,0x04e3045f,0x05ed0569,0x05ed062f,0x05ed05ed,0x062f062f,0x1e710e71,0x46b51e71,0x31492907,0x31493149,0x31893149,0x31893189,0x31893149,0x31893189,0x31893189,0x29073189,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xb5adb5ad,0x7bdf6b5b,0x5ad7294b,0xb5adb5ad,0x7bdf5ad7,0x7bdf8c63,0x39cf94a5,0x9ce76b5b,0x52955295,0x94a594a5,0x94a594a5,0x94a594a5,0x94a5318d,0x94a594a5,0x52950001,0x318d5295,0xdea7dea9,0xe6ede6ab,0xd665bda3,0xd665d665,0xe6ebc5e1,0xdea7fff7,0xdea7d665,0xef2bd6a7,0x9c218bdd,0xbd6b9c21,0xa4e98be1,0x6ad99ca7,0xb56bb56b,0x94636b17,0xa4e55253,0x9c63835d, +0x628b3987,0x39476acf,0x9bd33987,0x628d4189,0x39879bd3,0x9bd36a8d,0x7b0f49c9,0x939149c9,0xb4976a8d,0xb497b455,0xb497b497,0xb497b497,0xb455ac55,0xb497b497,0xbc99bc97,0x624bb497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xff59e651,0xff57ff57,0xff97ff97,0xff97ff95,0xff97ff97,0xff95ff97,0xff95ff95,0xee4fff93, +0x66f705ed,0x6f3766f7,0x87398739,0x87398739,0x7f377f37,0x87398739,0x7f377f37,0x05ed7737,0x830b3189,0x9309930b,0x930b930b,0x7ac97ac9,0x7ac97ac9,0x930b7ac9,0x930b7ac9,0x3149830b,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x7bdf5ad7,0x294b7bdf,0xb5ad5ad7,0x8421b5ad,0x2109318d,0x7bdf8c63,0x5ad739cf,0x84215ad7,0x00015295,0x318d318d,0x318d0001,0x318d318d,0x318d94a5,0x52955295,0x94a55295,0x52955295,0xef2de6ab,0xd667ff71,0xd6a7dea7,0xdea7dea7,0xe6e9dea7,0xeeede6eb,0xce65c623,0xff71d665,0x731b8b9b,0xb5296ad9,0x8c21b529,0x83dfbdad,0x52516ad9,0xc5ef6b5b,0x839bc5ef,0x6ad96ad9, +0x5a4b3947,0x4189624b,0x9bd36a8d,0x628d3987,0x39479bd3,0x7b0f628d,0x7b0f49c9,0x9bd349c9,0xb4973947,0x9c139c13,0x93d19c13,0x9c139c13,0x9c13a455,0x9c139c13,0xa4159c13,0x6a8db497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5e739,0xffd9ee91,0xffd5ffd7,0xffd5ffd5,0xffd5ffd5,0xffd7ffd7,0xffd3ffd5,0xff91ff93,0xee4bff8f, +0x8f39062f,0x8f398f39,0x8f399779,0x8f398f39,0x87398739,0x87398f39,0x6ef77f37,0x05ed5ef5,0x934b3189,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x3149934b,0xabcb41cd,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x2907abcb,0xabcb41cd,0x8b478b47,0x8b478b47,0x82c7a389,0xabcb8b09,0xa389abcb,0xabcba347,0x2907abcb, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x4a53739d,0x5ad7318d,0x6319bdef,0x7bdf94a5,0x5ad739cf,0x39cf39cf,0xad6b5ad7,0x5ad7b5ad,0x94a55295,0x52955295,0x00015295,0x94a55295,0x52955295,0x318d318d,0x318d318d,0x5295318d,0xd667ce23,0xdea9dea7,0xdee9d665,0xce65d665,0xd665d665,0xe6e9dea7,0xdea7dea7,0xbde1dea7,0x7bdf8c21,0xb52bbdef,0x9c219c61,0x6ad983df,0x8c638c63,0x735b9ca3,0x735b735b,0xa4a5b529, +0x41c96acd,0x4189624b,0x7b0f7b0f,0x6a8d3987,0x39479bd3,0x9bd36a8d,0x9bd33987,0x7b0f4189,0xb4976a8d,0xb497a455,0xbcd9bcd9,0xbcd9bcd9,0xbc97bcd9,0xbc97bcd9,0x9c13bcd9,0x3947b497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xf7bdf7bd,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd5ee91,0xffd5ffd5,0xffd5ffd5,0xffd5ffd5,0xffd7ffd7,0xffd3ffd3,0xffd1ff91,0xee4dffd1, +0x9779062f,0x8f399779,0x97798f39,0x97799f79,0x87399779,0x87398739,0x7f377f37,0x05ed7f37,0x8b093149,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x31499309,0xa34941cd,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x2907a347,0xa34941cd,0xa347a349,0xa347a347,0xce738ac7,0x8ac7a529,0xa349a349,0xa349a349,0x2907a347, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0xb5adb5ad,0x5ad75ad7,0x8421b5ad,0x39cf8421,0xa5295ad7,0x9ce79ce7,0x7bdf5295,0x5ad7ad6b,0x94a55295,0x318d94a5,0x318d318d,0x318d318d,0x318d318d,0x94a594a5,0x94a594a5,0x000194a5,0xd665e6e9,0xd665eeed,0xeeedeeed,0xeeede6eb,0xce25e6eb,0xe6ebd665,0xc5e1d667,0xce23dee9,0xa4e56ad9,0x52515251,0x5a959ca5,0x6ad9739d,0x735994a7,0xad2962d5,0x8c219c63,0x9461a529, +0x41896a8d,0x628d6a8d,0x7b0f7b0f,0x628d6a8d,0x41896acf,0x9bd36a8d,0x9bd33987,0x7b0f3947,0xb45749c9,0xbcd99c13,0xbc97b497,0xb497b497,0xb497b497,0xbc97b497,0x9c13bcd9,0x6a8db497,0xf7bdd6b5,0xef7bef7b,0xf7bdef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd5ee91,0xffd5ffd5,0xffd3ffd3,0xffd5ffd3,0xffd7ffd5,0xff91ffd3,0xff91ff91,0xee8fff91, +0x9779062f,0x97798f39,0x97798739,0x97799779,0x97799779,0x7f378739,0x77377f37,0x062f7737,0x7ac93189,0x8b478b47,0xabcb8b47,0x8b47abcb,0x8b47abcb,0xa3478b47,0xa389a389,0x3189930b,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x2907930b,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0xc6317ac9,0x51c58421,0x93097ac9,0x930b930b,0x2907930b, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x8421739d,0x5ad77bdf,0x8c637bdf,0x318d7bdf,0xc631ad6b,0x8c637bdf,0x5ad76319,0x39cf294b,0x318d318d,0x52955295,0x318d5295,0x318d318d,0x00015295,0x52955295,0x318d318d,0x52950001,0xdee9ce23,0xfffdce65,0xef2bd665,0xdea9dea9,0xf76dd6a7,0xc5e1dea7,0xd665ce65,0xc5e1dea7,0xbdad9ca5,0xa4e77b5d,0xad2b7be1,0x4a118b9d,0x73174a53,0xbdad8bdf,0x5a95c5f1,0x4a116b59, +0x5a4b6a8d,0x628d6a8d,0x6a8d9bd3,0x6a8d628d,0x39876a8d,0x8b516a8d,0x7b0f3987,0x628d4189,0xb4973947,0xbcd99c13,0x9c13b497,0xa455a455,0x9c139c13,0xb4979c13,0x9c13bc97,0x6a8db497,0xf7bdd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd7ee91,0xff91ffd5,0xffd3ff91,0xffd3ffd3,0xffd5ffd5,0xffd3ffd3,0xffd3ffd3,0xee8fffd3, +0x9f79062f,0x6ef79779,0x87396ef7,0x87398739,0x87398739,0x87398739,0x7f378739,0x062f7f37,0x7ac93149,0xa389a347,0xa389a389,0x8b47abcb,0xa389a389,0xa389a389,0x8b478b47,0x31497ac9,0x314941cb,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x18c53149,0x314941cb,0x31893149,0x31893189,0xa5292907,0x2907739d,0x31893189,0x31493149,0x18c53149, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8010000, +0x7bdf7bdf,0x5ad77bdf,0x39cf6b5b,0x631939cf,0x8c636319,0x7bdfa529,0x7bdf739d,0x52957bdf,0x94a594a5,0x63195295,0x318d5295,0x94a594a5,0x52955295,0x52955295,0x94a594a5,0x000194a5,0xdeabbd9f,0xdea7cde5,0xe6e9bde1,0xd665dea7,0xd6a7d667,0xffb3eeed,0xe6ebdea7,0xde69dea9,0xaca5a4e7,0x94637bdf,0xa4a79c63,0xb52983e1,0x735b9ca3,0x4a118bdf,0x8c234a11,0x6ad98c23, +0x7b0f6a8d,0x6a8d49c9,0x624b9393,0x39476a8d,0x39479391,0x5a0b7b0f,0x7b0f3145,0x6acf3987,0xb4973947,0xbc999c13,0x9c13b497,0xbc99bc99,0xbcd9bcd9,0xb4979c13,0x9c13bc97,0x3947b497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd7e691,0xffd3ffd5,0xff91ffd3,0xffd3ffd3,0xffd3ffd3,0xffd3ffd3,0xffd1ffd3,0xee4dff91, +0x9779062f,0x87398739,0x77378739,0x87398739,0x87398739,0x87398739,0x7f378739,0x062d6f37,0x934b3189,0xa389abcb,0xabcbabcb,0x8b47abcb,0x8b478b47,0xabcba347,0xabcbabcb,0x3189934b,0x72cd41cd,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x290772cd,0x72cd41cd,0x728b72cd,0x72cd72cd,0x94a56249,0x4187739d,0x72cd728b,0x72cd72cd,0x290772cd, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf7bdf,0x5295318d,0xb5adad6b,0x52955ad7,0x4a535ad7,0x8c63318d,0x39cf7bdf,0xc6316319,0x52955295,0x318d5295,0x318d318d,0x318d318d,0x0001318d,0x318d318d,0x318d318d,0x52955295,0xd6a7dea7,0xdea7e6eb,0xd665dea7,0xffafe6eb,0xd627dea9,0xd665d6a7,0xe6abdee9,0xe6ebd665,0x6ad96ad9,0xbdadbdad,0x8c63ad29,0x4a519c63,0xa4616ad9,0x6ad98c21,0x6b5b83df,0x735d7be1, +0x9bd36a8d,0x6a8d3987,0x39879bd3,0x41899bd3,0x39479bd3,0x49c97b0f,0x7b0f628d,0x6acf3987,0xb4973947,0xcd1b9c13,0x9c13b497,0xb497bcd9,0xbc99b497,0xac55a413,0x9c13bcd9,0x72cfb497,0xf7bdd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5e739,0xffd9ee8f,0xffd3ffd7,0xff91ff91,0xff91ff91,0xff91ff91,0xffd1ff91,0xff91ffd1,0xee4dff8f, +0x9f79062f,0x87398f39,0x6ef76ef7,0x6ef76ef7,0x6f376ef7,0x7f377737,0x77378739,0x05ed5ef5,0x93093149,0xa349a349,0xa349a349,0xa347a349,0xa347a347,0xa349a349,0xa349a349,0x31499309,0x930941cb,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x290782c9,0x930941cb,0x8b098b09,0x8b098b09,0x62057247,0x72876205,0x8b098b09,0x8b098b09,0x290782c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x21097bdf,0xbdef5ad7,0x7bdfb5ad,0xb5ad6b5b,0x7bdfad6b,0x4a535ad7,0x210939cf,0xb5adc631,0x94a55295,0x000194a5,0x318d94a5,0x52955295,0x94a55295,0x94a594a5,0x94a594a5,0x94a594a5,0xdeabe6e9,0xe6ebef2d,0xd665e6ab,0xdeabeeed,0xfff5f72f,0xdea7c5e1,0xde69d667,0xdea7d665,0x52956b5b,0x52515251,0x94219461,0x83dfad27,0x62d79ce7,0x94236ad9,0x6ad9b569,0x5b199c63, +0x9bd36a8d,0x72cf3987,0x41899391,0x41896a8d,0x41896a8d,0x39479391,0x6a8d6a8d,0x7b0f3987,0xb4976a8d,0xbcd9ac97,0x9c13b497,0xb497bc99,0xbcd9b497,0xb4979c13,0x9c13bcd9,0x6a8dbc97,0xf7bdd6b5,0xef7bf7bd,0xef7bf7bd,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xe739ef7b,0xce73e739,0xffd9ee91,0xffd3ffd9,0xff91ffdb,0xff91ff91,0xff91ff91,0xff91ff91,0xff4fff91,0xee4bf74d, +0x9779062f,0x8739a77b,0x6ef7a77b,0x6ef76ef7,0x6ef76ef7,0x6ef76ef7,0x56f56ef7,0x05ed3eb3,0x934b3189,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x3149934b,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x5ad78c63,0xb5adb5ad,0x39cf8c63,0x6b5bb5ad,0x94a5bdef,0x5ad794a5,0xc6315ad7,0x7bdf7bdf,0x318d5295,0x318d318d,0x318d318d,0x5295318d,0x52950001,0x318d5295,0x318d318d,0x529594a5,0xb55dc5e1,0xdea7e6eb,0xdea9dea7,0xd665e6eb,0xdea7dea7,0xef6ddea7,0xe6abdea7,0xef2bc5e1,0x6ad99423,0xa529a529,0x6ad983dd,0xc5f1c5f1,0x83df4a11,0x7317bdef,0x9c63839d,0x4a116b5b, +0x9bd36a8d,0x628d41c9,0x93916acd,0x6a8d4189,0x39476a8d,0x41899391,0x93916a8d,0x7b0f4189,0xb4976a8d,0xbcd99c13,0x9bd3b457,0xbcd9bcd9,0xbcd9bcd9,0xb4979c13,0x9c13bcd9,0x6a8db497,0xf7bdd6b5,0xef7bf7bd,0xf7bdf7bd,0xf7bdef7b,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xd6b5ef7b,0xffdbee93,0xffd3ffdb,0xffd9ffd9,0xffd7ffd7,0xffd7ffd7,0xffd5ffd7,0xffd5ffd5,0xee4fff93, +0x9779062f,0x8739a77b,0x97799779,0x97799779,0x97799779,0x9f799f79,0x8f399779,0x062d8739,0x7ac93149,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x31497ac9,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0xa5295ad7,0x7bdf7bdf,0x318d7bdf,0x94a5b5ad,0x7bdf7bdf,0x39cf8421,0x5ad75ad7,0x84219ce7,0x52955295,0x318d94a5,0x94a5318d,0x318d94a5,0x318d0001,0x94a594a5,0x529594a5,0x52955295,0xe6abdee9,0xe6ebad1b,0xef2dc623,0xde69d6a7,0xf76df72f,0xd665e72b,0xd6a7dea7,0xdea7d6a5,0xb56b6ad9,0x4a11b56b,0x5a51ac63,0x735b6317,0x735b9463,0x94216ad9,0x7b9b83df,0x62d7bdef, +0x7b0f41c9,0x6a8d4189,0x9391628d,0x624b3947,0x5a4b3987,0x41899bd5,0x9bd36a8d,0x93914189,0xb455628d,0xb4979c13,0x9c13b497,0x9c139c13,0x9c139c13,0xbc979c13,0x9c13bcd9,0x6a8db497,0xf7bdd6b5,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xce73ef7b,0xffddee93,0xffddffdd,0xffdbffdb,0xffd9ffdb,0xffd9ffd9,0xffd7ffd7,0xff95ffd7,0xee0dff53, +0xa77b062f,0xaf7baf7b,0xa77ba77b,0xa77ba77b,0xa77ba77b,0xa77b9f79,0x87399f79,0x05eb66f7,0x930b3189,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x3149930b,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b, +0x00000000,0x00000000,0x00000000,0xf94bf94b,0xe085f94b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xccdfccdf,0x9355ccdf,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x5ad75ad7,0x7bdfa529,0x39cf6b5b,0x84217bdf,0x7bdf94a5,0x529539cf,0x5ad7ad6b,0x39cf5ad7,0x52950001,0x52955295,0x5295318d,0x52955295,0x94a594a5,0x52955295,0x94a55295,0x000194a5,0xe6ebce25,0xcde5e6e9,0xd667dea9,0xdea7dea7,0xdea7dea9,0xfff1dea7,0xd665d665,0xbd9fd665,0xb56b6ad9,0x6ad5b529,0x8c637317,0x5295739d,0x5253a4e7,0x5253ad2b,0x6ad96ad5,0x94617bdf, +0x7b0f3987,0x628d3987,0x9bd36acf,0x9bd34189,0x5a4b3947,0x39879bd3,0x93936a8d,0x9bd33947,0xb4573947,0xbcd99c13,0xb497b457,0xb457b497,0xb497b497,0xbc97b497,0xa455bcd9,0x628bb497,0xf7bddef7,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xe739e739,0xce73def7,0xffdfee95,0xffddffdf,0xffddffdd,0xffdbffdd,0xffdbffdb,0xff97ffd9,0xff11ff53,0xe5cbfed1, +0xaf7b062f,0xaf7baf7b,0xaf7baf7b,0xa77baf7b,0x9f79a77b,0x87399f79,0x3eb35ef5,0x05a926b3,0x8b093149,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x31498b09,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09, +0x00000000,0x00000000,0xf94b0000,0xe085ffff,0xc0c9e085,0x00009887,0x00000000,0x00000000,0x00000000,0x00000000,0xccdf0000,0x9355ccdf,0x93559355,0x00007291,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000,0xf801f801, +0xb5adb5ad,0x39cf39cf,0x39cf39cf,0x7bdf6319,0x318d4211,0x9ce7b5ad,0x7bdf7bdf,0x5ad75ad7,0x318d5295,0x318d318d,0x318d318d,0x318d318d,0x94a594a5,0x318d318d,0x318d318d,0x5295318d,0xdea9ef2d,0xef2dd665,0xd665dee9,0xbd9fe6e9,0xdea7c5e3,0xd665dea7,0xe6ebe6ab,0xd667d665,0xa4a5b569,0x5a559463,0xb56bb56b,0x83dface9,0x9ce7ad29,0xa52983df,0x5293a4e5,0x8c1f83dd, +0x9bd33947,0x628d3947,0x9bd36a8d,0x6a8d3947,0x628b3987,0x39479393,0x624b6a8d,0x9bd34189,0xb4973947,0xbcd99c13,0xb497bcd9,0xbcd9bc99,0xbcd9bcd9,0xbcd9bcd9,0x9c13bc99,0x3947b497,0xf7bddef7,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xe739ef7b,0xdef7def7,0xce73def7,0xffddee95,0xffddffdd,0xffddffdd,0xffdbffdb,0xffd9ffdb,0xff53ff95,0xf68ff6cf,0xedcbf68d, +0xaf7b062f,0xa77ba77b,0xaf7ba77b,0xa77baf7b,0x8f399779,0x56f57f37,0x06711e71,0x05a9066f,0x934b3189,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x3189934b,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b, +0x00000000,0x00000000,0xe085f94b,0xe085e085,0xce73e085,0x98879887,0x00000000,0x00000000,0x00000000,0x00000000,0x93550000,0x93559355,0x72919355,0x00007291,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x0000f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdfbdef,0xb5ad739d,0xb5adad6b,0x39cf5ad7,0xce736319,0x7bdfa529,0x7bdf94a5,0x318d8c63,0x94a55295,0x94a5318d,0x52950001,0x318d5295,0x318d318d,0x318d0001,0x52955295,0x94a594a5,0xe6ebfff5,0xb55dce23,0xd665d665,0xf76fd665,0xf76fe6ab,0xdee9e6eb,0xd6a7e6e9,0xd667e6eb,0x9ca3b569,0xb569bdad,0x83dfa4e7,0xad2b94a5,0x83dd8c21,0x94219ca5,0xb4e75a95,0x5a53b5ad, +0x6acd4189,0x6a8d5a4b,0x7b0f6a8d,0x6acf49c9,0x624b6acd,0x3987628d,0x93916a8d,0x39479bd3,0xb4973947,0x9c139bd1,0x9c13a455,0x9c139c13,0xa4139bd3,0xa4559c13,0xa455a455,0x3947b457,0xf7bddef7,0xef7bf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bef7b,0xe739e739,0xdef7def7,0xce73def7,0xffd9ee93,0xffd9ffd9,0xffd9ffd9,0xffd9ffd9,0xff97ffd7,0xff0fff11,0xfecffecf,0xedcbfe8d, +0xa77b062f,0x97799779,0xa77ba77b,0x9f79a77b,0x7f378f39,0x2eb346b5,0x0e711e71,0x05a90e71,0x7ac93189,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x31897ac9,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9, +0x00000000,0x00000000,0xe085ce73,0xce73c0c9,0x9887c0c9,0x94a59887,0x00000000,0x00000000,0x00000000,0x00000000,0x93550000,0x72917291,0x72917291,0x00007291,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x0000f801,0x0000fb41,0x00000000,0xfb410000,0x0000fb41,0xf801f801, +0x8c63739d,0xa5294211,0x7bdf8421,0x5ad77bdf,0x5ad75ad7,0x94a57bdf,0x94a58c63,0x39cf39cf,0x52955295,0x318d5295,0x318d318d,0x318d318d,0x52955295,0x94a594a5,0x318d5295,0x5295318d,0xde69e6ab,0xce65d667,0xd667dea9,0xe6e9dea7,0xdee9b55d,0xd6a7bd9f,0xcde5e6eb,0xe6abce65,0x7b9b9ca3,0x8bdf6b19,0x9ce76ad9,0x525383dd,0xb56bbdef,0xa4e58c1f,0x6ad583dd,0x839d7b59, +0x628d3947,0x41899393,0x7b0f6a8d,0x398749c9,0x6a8d9391,0x39479bd3,0x7b0f628b,0x628d3987,0xb49749c9,0xb497b497,0xb497b497,0xac55ac55,0xb497b497,0xb497ac15,0xb497b497,0x6a8db497,0xf7bdd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xdef7e739,0xd6b5d6b5,0xc631d6b5,0xffd5ee91,0xff95ffd5,0xffd5ff95,0xff95ff95,0xff95ff95,0xfe8dff11,0xf64bf68d,0xe58bf64b, +0x9779062f,0x7f378f39,0x87398739,0x7f378739,0x6f377f37,0x0e7136b3,0x062f062f,0x0567062d,0x830b3189,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x3189830b,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b, +0x00000000,0x00000000,0xc0c90000,0x98879887,0x98879887,0x00009887,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6ad50000,0x00004a0f,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0xfb41f801,0xfb41f801,0x0000f801,0xf8010000,0xf801fb41,0xfb41f801,0xf801f801, +0x739d7bdf,0x4a53739d,0x294b294b,0x5ad739cf,0x8421ad6b,0x5ad75295,0x4a534211,0x631939cf,0x318d318d,0x318d318d,0x94a50001,0x529594a5,0x52955295,0x318d5295,0x318d318d,0x52955295,0xe6e9d667,0xc5e1d6a7,0xdee9fff5,0xef2dc623,0xf72fdea7,0xd665d665,0xdea7d667,0xc623d6a7,0x94615251,0xa4a54a11,0x6ad99c63,0x94615253,0x52535253,0xa4a14a11,0x6ad9b529,0x9ce7b461, +0x6a8d5a4b,0x39877b0f,0x6a8d624b,0x41896a8d,0x6a8d6a8d,0x3145628d,0x6a8d628d,0x7b0f628b,0x6acf6a8d,0x6a8d3947,0x6a8d6a8d,0x6a8d3947,0x6a8d6a8d,0x6a8d6a8d,0x39473947,0x6a8d3947,0xef7bef7b,0xe739e739,0xdef7def7,0xd6b5def7,0xdef7d6b5,0xd6b5d6b5,0xd6b5d6b5,0xce73d6b5,0xff93ff93,0xff11ff51,0xfecffecf,0xf64df68d,0xfe8ff64d,0xfe4dfe4d,0xfe0dfe4d,0xfdcdfe0d, +0x6ef77f37,0x4ef55ef5,0x1e712eb3,0x062d062f,0x0671062f,0x062f062f,0x062f062f,0x05ed05ed,0x31492907,0x39493149,0x31493149,0x31493949,0x31493149,0x31493149,0x31493149,0x31493149,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907, +0x00000000,0x00000000,0x00000000,0x7a110000,0x0000514b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6ad50000,0x00004a0f,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801, +0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0xbcd9bcd9,0xb497bcd9,0xbcd9bcd9,0x9c13bcd9,0x9c139c13,0xbcd972cf,0xbcd9bcd9,0x9c13bcd9, +0xb5adb5ad,0xa529b5ad,0x7bdf94a5,0x1a072249,0xb5ad5ad7,0xb5adb5ad,0x5ad78421,0x8c63b5ad,0x10871087,0x08451087,0x10870845,0x08450845,0x08431087,0x10870845,0x10851089,0x10870843,0x311341d9,0x09a30003,0x315500a1,0x18893155,0x00051889,0x000309a3,0x18891889,0x18890003,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x290741cd,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd,0x18831883,0x18830841,0x18831883,0x08410841,0x18830841,0x08411883,0x18831883,0x18831883, +0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x2905bcd9,0x20c520c5,0x20c520c5,0x5b837445,0x29052905,0x20c520c5,0x20c520c5,0x9c132905, +0xb5adb5ad,0x7bdf6b5b,0x1a07294b,0x3c4f3c4f,0x7bdf1a07,0x7bdf8c63,0x114594a5,0x9ce76b5b,0x10850845,0x08430843,0x10850843,0x10870847,0x31550843,0x10871087,0x08431087,0x10873995,0x311341d9,0x09e320cd,0x315500a1,0x18893155,0x31551889,0x31133155,0x00053113,0x31553155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x8b478b47,0x8b478b47,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb,0xb4971883,0x2905b455,0xab91ab91,0xab91ab91,0xab91ab51,0xab91ab91,0xbc992905,0x1883b497, +0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x6b5b7bdf,0x739d739d,0x739dff53,0x739d739d,0x739d8c63,0x7bdf7bdf,0xff53ffed,0x7bdf7bdf,0x6b5b7bdf,0x739d739d,0x739dbce1,0x739d739d,0x739d8c63,0x7bdf7bdf,0xbce1dd65,0x7bdf7bdf,0x6b5b7bdf,0x739d739d,0x739d318d,0x739d739d,0x739d8c63,0x7bdf7bdf,0x318d39cf,0x7bdf7bdf,0xb885bcd9,0x29059085,0x2a5f32e3,0x5b837445,0x31453145,0x74453145,0x39475b83,0x9c134187, +0x7bdf1a07,0x11057bdf,0x3c4f1a07,0x2b0bb5ad,0x08c3318d,0x7bdf8c63,0x1a071145,0x84211a07,0x08431087,0x39953955,0x08453995,0x08430845,0x18cb3995,0x08451087,0x39950843,0x108718cb,0x31130003,0x09a309e3,0x20cd20cd,0x18891889,0x18890003,0x20cd20cd,0x31553113,0x09e309e3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x51c5a389,0xabcb51c5,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x2907abcb,0xb4970841,0xa34f20c5,0x9b0fa34f,0xa34fa34f,0xa34fa391,0xa34fa34f,0x2105a34f,0x1883b497, +0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x5295294b,0x52957bdf,0x5ad76319,0x7bdf5ad7,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xffed7bdf,0x7bdffd4b,0x739d739d,0x739d739d,0x7bdf739d,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xdd657bdf,0x7bdfac5d,0x739d739d,0x739d739d,0x7bdf739d,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0x39cf7bdf,0x7bdf318d,0x739d739d,0x739d739d,0x7bdf739d,0xb5ad6a8d,0x145b8c63,0x2a5f32e3,0x5b837445,0x9085b885,0x74453145,0x145b5b83,0x72cf0b55, +0x19c722c9,0x1a071105,0x2289bdef,0x7bdf94a5,0x1a0739cf,0x39cf1145,0xad6b1a07,0x1a07b5ad,0x08430845,0x20cb18cb,0x10850845,0x41d91085,0x18cb18cb,0x10870845,0x08450843,0x10871087,0x31130003,0x00a109e3,0x00031889,0x311341d9,0x31553155,0x20cd1889,0x18890005,0x00a109e3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cd,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0xce738ac7,0x8ac7a529,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x2907a347,0x29051883,0x5189a351,0x51c94947,0x51c951c9,0x49474947,0x518951c9,0xa34f51c9,0x08412905, +0x5295294b,0x6b5b5ad7,0x21096b5b,0x318d318d,0x294b2109,0x42112109,0x8c636b5b,0x294b6b5b,0x5295294b,0x6b5b5ad7,0x63199ce7,0x84218c63,0x6b5b5ad7,0x5ad75ad7,0x8c636b5b,0x294b6b5b,0x5295294b,0xce735ad7,0x5295ce73,0x6b5b5295,0x6b5b6b5b,0xce736b5b,0x8c63ce73,0x294b6b5b,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0xb885bcd9,0x145b9085,0x2a5f32e3,0x39cf4a53,0x9085b885,0x74453947,0xb5ad5b83,0xbcd98c63, +0xb5adb5ad,0x1a075ad7,0x8421b5ad,0x39cf8421,0x3bcf1a07,0x33cd9ce7,0x7bdf1a07,0x5ad7ad6b,0x08430845,0x108718cb,0x10851085,0x10870845,0x08450843,0x08451087,0x084718cb,0x10871087,0x18890003,0x00a109e3,0x00031889,0x20cd41d9,0x09e328d1,0x20cd09a3,0x18890005,0x00a109a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0xc6317ac9,0x51c58421,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x2907930b,0xab911043,0x51c9a34f,0xa2cd9acd,0xab915189,0x4947ab91,0xb3939acd,0xa34f51c9,0x1883ab91, +0x739d39cf,0x4a537bdf,0x0001318d,0x00010001,0x00010001,0x318d0001,0x84215295,0x2109739d,0x739d39cf,0x6b5b7bdf,0x7bdf8c63,0x5ad77bdf,0x8c636b5b,0x94a594a5,0x8421739d,0x2109739d,0x739d39cf,0xb5ad8c63,0xb5adb5ad,0x529539cf,0x84218421,0xb5adce73,0x7bdfb5ad,0x2109739d,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x739d739d,0x7bdf7bdf,0xffff7bdf,0x739dffed,0x6b5b7bdf,0xffedffff,0x739d739d,0x7bdf6b5b,0x739d739d,0x7bdf7bdf,0xe62b7bdf,0x739ddd65,0x6b5b7bdf,0xdd65e62b,0x739d739d,0x7bdf6b5b,0x739d739d,0x7bdf7bdf,0x42117bdf,0x739d39cf,0x6b5b7bdf,0x39cf4211,0x739d739d,0x7bdf6b5b,0xb8859c13,0x145b9085,0x2a5f32e3,0x39cf4a53,0xb8854187,0x74459085,0x145b5b83,0x9c130b55, +0x8421739d,0x1a077bdf,0x8c632acb,0x11457bdf,0xc6313c0f,0x2b4b7bdf,0x5ad76319,0x11451105,0x10871087,0x08451085,0x08430843,0x08430843,0x08451087,0x10870843,0x10871087,0x08450845,0x18890003,0x00a109e3,0x41d91889,0x20cd41d9,0x09e320cd,0x20cd00a1,0x31550005,0x00a109a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x314941cb,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0xa5292907,0x2907739d,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x18c53149,0xab910841,0x51c9a34f,0xa34fab91,0x928b4105,0x4987a34f,0x9acd8a8b,0xa34f5189,0x1883ab91, +0x5ad7294b,0x294b7bdf,0x00010001,0x00010001,0x00010001,0x00010001,0x6b5ba529,0x210939cf,0x5ad7294b,0x6b5b7bdf,0x7bdf7bdf,0x5ad77bdf,0x94a594a5,0x84217bdf,0x6b5b7bdf,0x210939cf,0x5ad7294b,0x739d7bdf,0xb5adb5ad,0x6b5b8c63,0xce735295,0x7bdfb5ad,0x6b5b7bdf,0x210939cf,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8010000, +0x8c638c63,0xffff7bdf,0xff53ffed,0xfd4bff53,0x7bdf7bdf,0xfd4bff53,0x8c638c63,0x6b5b8c63,0x8c638c63,0xe62b7bdf,0xbce1dd65,0xac5dbce1,0x7bdf7bdf,0xac5dbce1,0x8c638c63,0x6b5b8c63,0x8c638c63,0x42117bdf,0x318d39cf,0x318d318d,0x7bdf7bdf,0x318d318d,0x8c638c63,0x6b5b8c63,0xb885bcd9,0x145b9085,0x2a5f32e3,0x5b837445,0xb8853947,0x74459085,0x145b5b83,0xbcd90b55, +0x7bdf7bdf,0x1a072b0b,0x11452289,0x224939cf,0x334d2249,0x2b0ba529,0x7bdf739d,0x52952b0b,0x10851087,0x10871087,0x39953995,0x39953995,0x08430845,0x08453995,0x08430843,0x08450843,0x18893155,0x00a109a3,0x10871889,0x108741d9,0x09a31087,0x315500a1,0x20cd3113,0x00a109a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72cd41cd,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x94a56249,0x4187739d,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x290772cd,0xab910841,0x5189a34f,0x49875189,0x51895189,0x51c94947,0x49474987,0xa34f5189,0x0841ab91, +0x6319318d,0x294b7bdf,0x08430001,0x10850843,0x10851085,0x00011085,0x8421a529,0x21096319,0x6319318d,0x6b5b7bdf,0x5ad7739d,0x7bdf6b5b,0x8421739d,0x7bdf8c63,0x84218421,0x21096319,0x6319318d,0x6b5b7bdf,0x6b5b5ad7,0x52955295,0x6b5b5295,0x6b5b7bdf,0x84215295,0x21096319,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf72cf, +0x7bdf7bdf,0x1a071105,0xb5ad3c0f,0x19c71a07,0x19c72249,0x8c63318d,0x39cf7bdf,0xc6312249,0x10871087,0x08450843,0x188b1087,0x108918cb,0x08431087,0x084318cb,0x39953113,0x108918cb,0x18890003,0x00a120cd,0x10871889,0x31553155,0x09a31087,0x20cd00a1,0x000320cd,0x188909a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930941cb,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x62057247,0x72876205,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x290782c9,0xab910841,0x59c9a34f,0xa34fab91,0xab9151c9,0x5189ab91,0xab51a34f,0xa34f51c9,0x1883ab91, +0x5ad7294b,0x21095ad7,0xb5ad739d,0xad6bad6b,0xa529ad6b,0x6b5ba529,0x5ad7ad6b,0x39cf5295,0x5ad7294b,0x63195ad7,0x8c638c63,0x63196b5b,0x5ad76b5b,0x7bdf5ad7,0x5ad78421,0x39cf5295,0x5ad7294b,0x6b5b6b5b,0x4a53739d,0x84214a53,0x5ad78421,0x4a536b5b,0x5ad76b5b,0x39cf5295,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0xffed7bdf,0x6b5bff53,0x739d8c63,0x7bdf7bdf,0xffedffff,0x8c638c63,0x8c638c63,0x8c638c63,0xdd657bdf,0x6b5bbce1,0x739d8c63,0x7bdf7bdf,0xdd65e62b,0x8c638c63,0x8c638c63,0x8c638c63,0x39cf7bdf,0x6b5b318d,0x739d8c63,0x7bdf7bdf,0x39cf4211,0x8c638c63,0x8c638c63,0x8c638c63,0x9c13bcd9,0x9c139c13,0xbcd99c13,0xb497b497,0x9c139c13,0x72cf9c13,0x9c13bcd9,0x9c139c13, +0x08c37bdf,0xbdef1a07,0x2b0b3c4f,0xb5ad2289,0x2b0bad6b,0x19c72249,0x21091185,0xb5adc631,0x08430845,0x18cb3995,0x10870845,0x18cb20cd,0x08451087,0x08431087,0x18cb188b,0x10870845,0x18890003,0x00a120cd,0x10871889,0x09a309e3,0x09a31087,0x000500a1,0x000309a3,0x188909a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0xabcb8b47,0xa389abcb,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b,0xab911883,0x51c99acd,0xa34fab91,0xab915189,0x51c9ab91,0xab91a34f,0xa34f51c9,0x1883b393, +0x4211294b,0x84217bdf,0x52955ad7,0x5ad74a53,0x52955ad7,0x4a535295,0x5ad7739d,0x39cf7bdf,0x4211294b,0x8c637bdf,0x7bdf9ce7,0x94a5739d,0x842194a5,0x6b5b7bdf,0x5ad76b5b,0x39cf7bdf,0x4211294b,0x84217bdf,0x52955ad7,0x21098c63,0x63192109,0x6b5b5295,0x5ad7739d,0x39cf7bdf,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x739d7bdf,0x739d739d,0x739d739d,0xffed739d,0xfd4bfd4b,0x739dfd4b,0x739d739d,0x7bdf8c63,0x739d7bdf,0x739d739d,0x739d739d,0xdd65739d,0xac5dac5d,0x739dac5d,0x739d739d,0x7bdf8c63,0x739d7bdf,0x739d739d,0x739d739d,0x39cf739d,0x318d318d,0x739d318d,0x739d739d,0x7bdf8c63,0x20c59c13,0x20c520c5,0x20c520c5,0x290520c5,0x29052905,0x20c520c5,0x2a5f32e3,0x9c132905, +0x5ad78c63,0xb5adb5ad,0x11452b4b,0x6b5bb5ad,0x338dbdef,0x1a0794a5,0xc6315ad7,0x7bdf7bdf,0x10870845,0x10871087,0x10851087,0x20cb1087,0x08450847,0x00050845,0x084518cb,0x10871087,0x00010003,0x20cd20cd,0x31131889,0x00a109e3,0x09a31087,0x31133155,0x000309a3,0x188909a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0xa389a389,0x8b478b47,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9,0xb3931883,0x49478a4b,0x49875189,0x51c951c9,0x51c94947,0x51894987,0xa34f51c9,0x1883ab91, +0x8c634a53,0xc631c631,0xce73c631,0xce73ce73,0xce73c631,0xc631ce73,0xc631c631,0x39cf8c63,0x8c634a53,0xc631c631,0xce73c631,0xce73ce73,0xce73c631,0xc631ce73,0xc631c631,0x39cf8c63,0x8c634a53,0xc631c631,0xce73c631,0x00012109,0x21090001,0xc631ce73,0xc631c631,0x39cf8c63,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf7bdf,0x739d8c63,0x8c63ff53,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x7bdf7bdf,0x739d8c63,0x8c63bce1,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x7bdf7bdf,0x739d8c63,0x8c63318d,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x20c5bcd9,0x31453145,0x9085b885,0x39473947,0xacc33145,0x29058bc3,0x2a5f32e3,0x9c133145, +0x3c0f5ad7,0x7bdf7bdf,0x318d7bdf,0x94a5b5ad,0x2b0b7bdf,0x39cf8421,0x5ad72249,0x84219ce7,0x10871085,0x08451087,0x10870845,0x08470847,0x08431087,0x10890845,0x08451087,0x10871087,0x18893113,0x18891889,0x20cd0003,0x00a109a3,0x09a320cd,0x09a309e3,0x000309a3,0x18893155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b,0xab911883,0x4947a34f,0xa34f9acd,0xa34f4987,0x41058a8b,0xb393a34f,0xa34f51c9,0x1883ab91, +0x7bdf4a53,0xb5adb5ad,0x7bdfb5ad,0x42114211,0x421139cf,0xb5ad7bdf,0xad6b9ce7,0x318d7bdf,0x7bdf4a53,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x318d7bdf,0x7bdf4a53,0xb5adb5ad,0xb5adad6b,0x10852109,0x21091085,0xb5adce73,0xad6b9ce7,0x318d7bdf,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xffed7bdf,0x8c63fd4b,0x6b5b8c63,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xdd657bdf,0x8c63ac5d,0x6b5b8c63,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0x39cf7bdf,0x8c63318d,0x6b5b8c63,0x818372cf,0x61417181,0x9085b885,0x41873145,0xb5ad5b83,0x90858c63,0x2a5f32e3,0x72cf145b, +0x1a071a07,0x7bdf33cd,0x39cf6b5b,0x84217bdf,0x7bdf94a5,0x19c71145,0x1a073c0f,0x39cf1a07,0x08431089,0x10870843,0x08450845,0x08451087,0x39950843,0x10870845,0x41970843,0x108718cb,0x188928d1,0x315520cd,0x20cd0003,0x00a109a3,0x315520cd,0x00a109e3,0x000309a3,0x18893155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09,0xab910841,0x51c9a34f,0xb3919acd,0xab915189,0x5189ab91,0xb3939acd,0xa35151c9,0x1883ab91, +0x7bdf4a53,0x7bdfad6b,0x39cf39cf,0x00010001,0x00010001,0x39cf39cf,0xa529739d,0x318d739d,0x7bdf4a53,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x318d739d,0x7bdf4a53,0xb5adad6b,0xb5adb5ad,0x1085b5ad,0xce731085,0xb5adad6b,0xa529b5ad,0x318d739d,0xf801f801,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000,0xf801f801, +0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xffffffed,0xff53ffed,0xfd4bff53,0x7bdf739d,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xe62bdd65,0xbce1dd65,0xac5dbce1,0x7bdf739d,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0x421139cf,0x318d39cf,0x318d318d,0x7bdf739d,0x8183bcd9,0x61417181,0x9085b885,0x314532e3,0xb5ad5b83,0x90858c63,0x2a5f32e3,0xbcd9145b, +0xb5adb5ad,0x11451145,0x11451145,0x7bdf2249,0x11451987,0x9ce7b5ad,0x7bdf2b0b,0x1a071a07,0x39951087,0x20cb3955,0x08430845,0x08451047,0x39550843,0x108718cb,0x10851087,0x08450845,0x188920cd,0x00011889,0x00010003,0x20cd09a3,0x311320cd,0x00a109e3,0x31130003,0x28d120cd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x8b47abcb,0x8b478b47,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b,0x29050841,0x51c9a34f,0x494751c9,0x51c95189,0x51c951c9,0x51c951c9,0xa34f5189,0x08412905, +0x7bdf4a53,0x39cf7bdf,0x00010001,0x00010001,0x00010001,0x00010001,0xb5ad4211,0x294b7bdf,0x7bdf4a53,0xa529b5ad,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xb5adb5ad,0x294b7bdf,0x7bdf4a53,0xb5adb5ad,0xad6bb5ad,0xce73b5ad,0xa529ce73,0xb5adb5ad,0xb5adad6b,0x294b7bdf,0xfb41f801,0x0000f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x8c637bdf,0xffed739d,0x7bdffd4b,0x739d7bdf,0xfd4b739d,0x739dfd4b,0x7bdf7bdf,0x8c638c63,0x8c637bdf,0xdd65739d,0x7bdfac5d,0x739d7bdf,0xac5d739d,0x739dac5d,0x7bdf7bdf,0x8c638c63,0x8c637bdf,0x39cf739d,0x7bdf318d,0x739d7bdf,0x318d739d,0x739d318d,0x7bdf7bdf,0x8c638c63,0x8183b497,0x61417181,0x9085b885,0x5b8332e3,0xacc33145,0x90858bc3,0x2a5f32e3,0xb497145b, +0x7bdfbdef,0xb5ad2289,0xb5ad3c0f,0x39cf1a07,0xce732249,0x7bdfa529,0x7bdf94a5,0x318d8c63,0x10870849,0x18cb18cb,0x00031087,0x108718cb,0x20cd0843,0x18cb18cb,0x10871087,0x10870847,0x00031889,0x31551889,0x31133155,0x20cd20cd,0x31551087,0x00a109e3,0x00033155,0x20cd3155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x8b47abcb,0xa389abcb,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9,0xb4970841,0xa34f20c5,0xa34fa351,0xa34fa34f,0xa34f9b4f,0xa351a34f,0x2105a391,0x0841b457, +0x739d4a53,0x000139cf,0x18c71085,0x18c718c7,0x108518c7,0x108518c7,0xb5ad0001,0x318d739d,0x739d4a53,0xad6bad6b,0xa529ad6b,0xa529a529,0x9ce7ad6b,0xad6bad6b,0xa529a529,0x318d739d,0x739d4a53,0xb5adb5ad,0xb5adb5ad,0xad6bb5ad,0xad6bad6b,0xa529a529,0xad6bb5ad,0x318d739d,0xfb41f801,0x00000000,0x0000f801,0x0000fb41,0x00000000,0xfb410000,0x0000fb41,0xf801f801, +0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x8183bcd9,0x61417181,0x9085b885,0x5b8332e3,0xacc34187,0x90858bc3,0x2a5f32e3,0xbcd9145b, +0x8c63739d,0xa5291185,0x7bdf8421,0x1a077bdf,0x1a071a07,0x94a57bdf,0x94a58c63,0x114539cf,0x10851087,0x18cb1087,0x10871087,0x08450845,0x18890843,0x18cb18cb,0x108718cb,0x08450845,0x31130003,0x20cd3155,0x09a309e3,0x311320cd,0x20cd1087,0x28d109e3,0x000320cd,0x18893155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x7ac9934b,0x934b934b,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b,0xb4971043,0x2905b497,0xb393ab91,0xab51ab51,0xab91ab91,0xab91ab51,0xb4972905,0x1883b497, +0x7bdf4a53,0x108539cf,0x2109294b,0x294b294b,0x294b294b,0x294b294b,0xb5ad1085,0x294b7bdf,0x7bdf4a53,0x7bdf7bdf,0x739d7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x294b7bdf,0x7bdf4a53,0x7bdf7bdf,0x739d7bdf,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x294b7bdf,0xfb41f801,0xfb41f801,0xfb41f801,0x0000f801,0xf8010000,0xf801fb41,0xfb41f801,0xf801f801, +0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x72cf72cf,0x7b0f72cf,0x6a8d6a8d,0x6a8d7b0f,0x72cf72cf,0x6a8d72cf,0x6a8d49c9,0x72cf6a8d, +0x739d7bdf,0x19c7739d,0x08c30903,0x1a071145,0x84213c4f,0x22495295,0x19c71987,0x63191145,0x08451087,0x08471087,0x10871087,0x10871087,0x10871087,0x10871085,0x10871087,0x10870845,0x41d941d9,0x20cd0003,0x00a109a3,0x31131889,0x20cd1087,0x20cd09a3,0x31551889,0x18890001,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907,0x18831883,0x18830841,0x51051883,0x51054905,0x51055105,0x18835105,0x08410841,0x18830841, +0x631939cf,0x294b318d,0x294b294b,0x294b294b,0x2109294b,0x294b294b,0xa529294b,0x318d6319,0x318d39cf,0x318d318d,0x318d318d,0x318d318d,0x294b318d,0x318d318d,0x318d318d,0x318d318d,0x318d39cf,0x294b318d,0x294b294b,0x318d318d,0x318d318d,0x294b294b,0x318d294b,0x318d318d,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801, +0xce51d693,0xce51b58b,0xce51ce51,0xce51ce51,0xce51ded5,0xe7135281,0xce51ded5,0xce51ce51,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xc7bfffff,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d, +0x000094a5,0x9ce7ad6b,0x00005ad7,0x00000000,0x00007bdf,0x00000000,0x52950000,0xad6b0000,0x294b94a5,0x9ce7ad6b,0x294b5ad7,0x294b294b,0x294b7bdf,0x294b294b,0x5295294b,0xad6b294b,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x290741cd,0x41cd41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd,0x9c131883,0x9c139c13,0x29059c13,0x5947b393,0xb3935947,0xbcd92905,0xbcd9bcd9,0x1883bcd9, +0x9c131883,0x9c139c13,0x29059c13,0x5947b393,0xb3935947,0xbcd92905,0xbcd9bcd9,0x1883bcd9,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x39c1c60f,0xce51e713,0xce51c60f,0x39c139c1,0xd693ce51,0xce51ce51,0xce51ce51,0xce512101,0x0000ffff,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6b70000,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf, +0x00008421,0x9ce7bdef,0x52950000,0x00000000,0x4a535295,0xb5ad0000,0x5295b5ad,0x52950000,0x294b8421,0x9ce7bdef,0x5295294b,0x294b294b,0x4a535295,0xb5ad294b,0x5295b5ad,0x5295294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x8b478b47,0x8b478b47,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb,0xbcd91883,0x72cfb497,0xb497b497,0x59472105,0x21055947,0xb4979c13,0xb4979c13,0x1883bcd9, +0xbcd91883,0x72cfb497,0xb497b497,0x59472105,0x21055947,0xb4979c13,0xb4979c13,0x1883bcd9,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce51ce51,0xd693ce51,0xded5ce51,0x63015281,0xce51ded1,0xe717bdcd,0xce5139c1,0xce51ffd9,0x0000ffff,0xffff0000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x6b5b7bdf,0x739d739d,0x739d767f,0x739d739d,0x739d8c63,0x7bdf7bdf,0x767fc73f,0x7bdf7bdf,0x6b5b7bdf,0x739d739d,0x739d9001,0x739d739d,0x739d8c63,0x7bdf7bdf,0x9001f801,0x7bdf7bdf, +0x00000000,0x00008c63,0xad6b5295,0x0000a529,0xad6b9ce7,0xb5ad5ad7,0x000094a5,0xad6bb5ad,0x294b294b,0x294b8c63,0xad6b5295,0x294ba529,0xad6b9ce7,0xb5ad5ad7,0x294b94a5,0xad6bb5ad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x2907abcb,0xbcd91883,0x9c139c13,0x9c137acd,0x2905b497,0xbcd92905,0xb497bcd9,0xbcd972cf,0x1883bcd9, +0xbcd91883,0x9c139c13,0x9c137acd,0x2905b497,0xbcd92905,0xb497bcd9,0xbcd972cf,0x1883bcd9,0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc60fce51,0x39c1ded5,0xd69339c1,0x39c1e713,0xc60fe713,0x2941c60f,0xce4d6301,0xded5ce51,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6b7c7bf,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xc73f7bdf,0x7bdf5f7d,0x739d739d,0x739d739d,0x7bdf739d,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xf8017bdf,0x7bdf8801,0x739d739d,0x739d739d,0x7bdf739d, +0x00000000,0x00000000,0xad6b0000,0x00008c63,0x9ce7ad6b,0xad6b4a53,0x00008c63,0x9ce7ad6b,0x294b294b,0x294b294b,0xad6b294b,0x294b8c63,0x9ce7ad6b,0xad6b4a53,0x294b8c63,0x9ce7ad6b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cd,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0xa347a347,0xa347a347,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x2907a347,0x6a8d1883,0x49c96a8d,0x72cf49c9,0x188372cf,0x72cf1883,0x6a8d4189,0x6a8d6a8d,0x188372cf, +0x6a8d1883,0x49c96a8d,0x72cf49c9,0x188372cf,0x72cf1883,0x28c34189,0x28c328c3,0x188372cf,0x5295294b,0x6b5b5ad7,0x21096b5b,0x318d318d,0x294b2109,0x42112109,0x8c636b5b,0x294b6b5b,0x5295294b,0x6b5b5ad7,0x63199ce7,0x84218c63,0x6b5b5ad7,0x5ad75ad7,0x8c636b5b,0x294b6b5b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce51ce51,0x6301ce51,0xce516301,0xc60fa507,0xbdcdce51,0xce51ce51,0xce51e713,0xce51ffdf,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xc7bf0000,0xb6b70000,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63, +0xa5290000,0x0000a529,0xa5290000,0x00005295,0x8c639ce7,0x00000000,0x00008c63,0x8c6394a5,0xa529294b,0x294ba529,0xa529294b,0x294b5295,0x8c639ce7,0x294b294b,0x294b8c63,0x8c6394a5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x7ac9934b,0x7ac9934b,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x2907930b,0x9c131883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0x9c132905,0x72cf7acd,0xb497b497,0x1883b497, +0x9c131883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0x9c132905,0x28c37acd,0x28c372cf,0x188372cf,0x739d39cf,0x4a537bdf,0x0001318d,0x00010001,0x00010001,0x318d0001,0x84215295,0x2109739d,0x739d39cf,0x6b5b7bdf,0x7bdf8c63,0x5ad77bdf,0x8c636b5b,0x94a594a5,0x8421739d,0x2109739d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdcdce51,0xce51ce51,0xbdcde713,0xd693ce51,0xce512101,0xce51d693,0xded56301,0xce51d693,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000c7bf,0x00000000,0x739d739d,0x7bdf7bdf,0xffff7bdf,0x739dc73f,0x6b5b7bdf,0xc73fffff,0x739d739d,0x7bdf6b5b,0x739d739d,0x7bdf7bdf,0xf8017bdf,0x739da801,0x6b5b7bdf,0xa801f801,0x739d739d,0x7bdf6b5b, +0xb5ad0000,0x00008421,0x8c634a53,0x00005ad7,0x9ce75295,0x52950000,0x5ad70000,0x84210000,0xb5ad294b,0x294b8421,0x8c634a53,0x294b5ad7,0x9ce75295,0x5295294b,0x5ad7294b,0x8421294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x314941cb,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x31493189,0x31893189,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x18c53149,0x9c131883,0x28c372cf,0x28c3b497,0x2105bcd9,0xb4972905,0xb4979b4f,0x9c139c13,0x18839c13, +0x9c131883,0x28c372cf,0xb497b497,0x2105bcd9,0xb4972905,0x28c39b4f,0x28c328c3,0x1883628d,0x5ad7294b,0x294b7bdf,0x00010001,0x00010001,0x00010001,0x00010001,0x6b5ba529,0x210939cf,0x5ad7294b,0x6b5b7bdf,0x7bdf7bdf,0x5ad77bdf,0x94a594a5,0x84217bdf,0x6b5b7bdf,0x210939cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c1ded5,0xef59ce51,0xce516301,0xce51ce51,0xd693e713,0xb58bce51,0xe713ffd9,0xce51ce51,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6b70000,0x8c638c63,0xffff7bdf,0x767fc73f,0x5f7d767f,0x7bdf7bdf,0x5f7d767f,0x8c638c63,0x6b5b8c63,0x8c638c63,0xb8017bdf,0x9001a801,0x88019001,0x7bdf7bdf,0x88019001,0x8c638c63,0x6b5b8c63, +0x94a55295,0x52950000,0x00005ad7,0xa529a529,0x00000000,0x00006319,0x52950000,0x5ad75ad7,0x94a55295,0x5295294b,0x294b5ad7,0xa529a529,0x294b294b,0x294b6319,0x5295294b,0x5ad75ad7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72cd41cd,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x290772cd,0xbcd91883,0x28c3bcd9,0x28c372cf,0x210572cf,0x9c132105,0xbcd949c9,0xbcd9bcd9,0x1883bcd9, +0xbcd91883,0x28c3bcd9,0xbcd9bcd9,0x2105bcd9,0x9c132105,0xdef749c9,0xb5addef7,0x188372cf,0x6319318d,0x294b7bdf,0x08430001,0x10850843,0x10851085,0x00011085,0x8421a529,0x21096319,0x6319318d,0x6b5b7bdf,0x5ad7739d,0x7bdf6b5b,0x8421739d,0x7bdf8c63,0x84218421,0x21096319,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b41bdcd,0xd693e713,0xded5e713,0xce51c60f,0xce51ce51,0xb58bd693,0xce519cc5,0xce51ded5,0x0000ffff,0x0000c7bf,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0xb6b70000,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf, +0xb5ada529,0xa5290000,0x5ad7b5ad,0x94a5ad6b,0xad6b0000,0x5295bdef,0x52950000,0x63190000,0xb5ada529,0xa529294b,0x5ad7b5ad,0x94a5ad6b,0xad6b294b,0x5295bdef,0x5295294b,0x6319294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930941cb,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x290782c9,0x72cf1883,0x6a8d6a8d,0x6a8ddef7,0x18836a8d,0x72cf1883,0x41896a8d,0x6a8d6a8d,0x188372cf, +0x72cf1883,0x28c36a8d,0x6a8d6a8d,0x18836a8d,0x72cf1883,0xffff6a8d,0xb5addef7,0x188341c9,0x5ad7294b,0x21095ad7,0xb5ad739d,0xad6bad6b,0xa529ad6b,0x6b5ba529,0x5ad7ad6b,0x39cf5295,0x5ad7294b,0x63195ad7,0x8c638c63,0x63196b5b,0x5ad76b5b,0x7bdf5ad7,0x5ad78421,0x39cf5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe713ce51,0xd693ded1,0xce51d693,0x39c1c60f,0x39c1e713,0x39c139c1,0xce51b58b,0xce5139c1,0xc7bfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6b70000,0xc73f7bdf,0x6b5b767f,0x739d8c63,0x7bdf7bdf,0xc73fffff,0x8c638c63,0x8c638c63,0x8c638c63,0xf8017bdf,0x6b5b9001,0x739d8c63,0x7bdf7bdf,0xa801f801,0x8c638c63,0x8c638c63,0x8c638c63, +0x8c63bdef,0x9ce70000,0x529594a5,0x94a594a5,0x94a50000,0x000094a5,0xbdef0000,0x52959ce7,0x8c63bdef,0x9ce7294b,0x529594a5,0x94a594a5,0x94a5294b,0x294b94a5,0xbdef294b,0x52959ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0xabcb8b47,0xa389abcb,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b,0xbcd91883,0xdef7bcd9,0xdef772cf,0x2905628d,0xb4972905,0xb497b497,0xbcd9bcd9,0x1883bcd9, +0xbcd91883,0x28c3bcd9,0x72cfb5ad,0x29059c13,0xb4972905,0x72cfb497,0xb5addef7,0x188372cf,0x4211294b,0x84217bdf,0x8c635ad7,0x94a58c63,0x94a594a5,0x4a538c63,0x5ad7739d,0x39cf7bdf,0x4211294b,0x8c63739d,0x739da529,0x94a56b5b,0x842194a5,0x6319739d,0x4a535ad7,0x39cf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce51ce51,0x39c1ce51,0xce51ce51,0xd693ded5,0x6301ce51,0x63015281,0x39c1e713,0x6b436b43,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x739d7bdf,0x739d739d,0x739d739d,0xc73f739d,0x5f7d5f7d,0x739d5f7d,0x739d739d,0x7bdf8c63,0x739d7bdf,0x739d739d,0x739d739d,0xa801739d,0x88018801,0x739d8801,0x739d739d,0x7bdf8c63, +0x4a538c63,0x5ad70000,0x00008c63,0x00009ce7,0x00005295,0x000094a5,0xad6b5295,0x000094a5,0x4a538c63,0x5ad7294b,0x294b8c63,0x294b9ce7,0x294b5295,0x294b94a5,0xad6b5295,0x294b94a5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0xa389a389,0x8b478b47,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9,0x9c131883,0xb5ad9c13,0xb5ad628d,0x290572cf,0x9c132105,0x72cf9c13,0x9c13bcd9,0x18839c13, +0x9c131883,0xdef7b5ad,0x72cfb5ad,0x2905b497,0x9c132105,0x72cf9c13,0xb5adffff,0x1883628d,0x8c634a53,0xdef7c631,0xe739def7,0xf7bdf7bd,0xf7bdf7bd,0xdef7e739,0xc631def7,0x39cf8c63,0x5295294b,0x94a594a5,0x5ad77bdf,0x739d94a5,0x842194a5,0x6b5b8421,0x94a56b5b,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd693ce51,0xe713ce51,0xc60fce51,0xd69318c1,0xded5ef59,0xe713ef55,0xffdbce51,0xce4d5281,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x7bdf7bdf,0x739d8c63,0x8c63767f,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x7bdf7bdf,0x739d8c63,0x8c639001,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf, +0x00005ad7,0x00000000,0x4a530000,0x00005ad7,0xad6bad6b,0x00000000,0x9ce75ad7,0x00000000,0x294b5ad7,0x294b294b,0x4a53294b,0x294b5ad7,0xad6bad6b,0x294b294b,0x9ce75ad7,0x294b294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b,0xb4971883,0xb497b497,0xbcd9bcd9,0x18839c13,0x9c132105,0xb497b497,0xb4979b4f,0x1883b497, +0xb4971883,0x72cf72cf,0x72cfb5ad,0x18839c13,0x9c132105,0xb497b497,0xb5addef7,0x188372cf,0x7bdf4a53,0xdef7ce73,0xe739ef7b,0x42114211,0x421139cf,0xef7be739,0xc631d6b5,0x318d7bdf,0x5295294b,0x7bdf739d,0x52957bdf,0x842194a5,0x7bdf7bdf,0x5ad77bdf,0x6b5b6b5b,0x294b6b5b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69118c1,0xce51ce51,0xce51ce51,0xd693d68f,0xce51ce51,0x1081ce51,0xce51ce51,0xce51e713,0x0000ffff,0x00000000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x0000ffff,0xb6b70000,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xc73f7bdf,0x8c635f7d,0x6b5b8c63,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xf8017bdf,0x8c638801,0x6b5b8c63, +0x0000ad6b,0xb5adad6b,0x00000000,0x00000000,0x9ce7ad6b,0xad6b0000,0x00008421,0xad6b5295,0x294bad6b,0xb5adad6b,0x294b294b,0x294b294b,0x9ce7ad6b,0xad6b294b,0x294b8421,0xad6b5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09,0x6a8d1883,0x72cf72cf,0x6a8d6a8d,0x10436a8d,0x72cf1883,0x72cf72cf,0x6a8d4189,0x18836a8d, +0x6a8d1883,0x72cf72cf,0x41874187,0x10436a8d,0x72cf1883,0x72cf72cf,0xb5ad2905,0x18834187,0xad6b4a53,0xdef7d6b5,0x39cf39cf,0xc801f801,0xc801f801,0x39cf39cf,0xd6b5def7,0x318da529,0x739d39cf,0x7bdf8c63,0x5ad7739d,0x7bdf7bdf,0x7bdf8421,0x63195ad7,0x6b5b8c63,0x2109739d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7976301,0x39c1ce51,0xd69318c1,0xc60fce51,0x294139c1,0xce51d693,0xad49d693,0xe7136301,0xc7bf0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xb6b70000,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xffffc73f,0x767fc73f,0x5f7d767f,0x7bdf739d,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xf801a801,0x9001a801,0x88019001,0x7bdf739d, +0x00008c63,0x9ce7b5ad,0xad6b0000,0x0000b5ad,0x8c630000,0x94a50000,0x000094a5,0xa5294a53,0x294b8c63,0x9ce7b5ad,0xad6b294b,0x294bb5ad,0x8c63294b,0x94a5294b,0x294b94a5,0xa5294a53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x8b47abcb,0x8b478b47,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b,0xbcd91883,0xa38fbcd9,0x9c13bcd9,0x1883bcd9,0x9c132105,0x9c139c13,0x72cf9b4f,0x1883bcd9, +0xbcd91883,0xa38fbcd9,0x9c13bcd9,0x1883bcd9,0x9c132105,0x9c139c13,0xffff9b4f,0x188372cf,0xc6318c63,0x39cfe739,0xc801c801,0xc801fd01,0xf801fd01,0xc801c801,0xef7b4211,0x294bad6b,0x5ad7294b,0x5ad75ad7,0x5ad75ad7,0x7bdf6b5b,0x5ad76319,0x8c6394a5,0x7bdf7bdf,0x210939cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe713e713,0x6b41d693,0xe7136301,0x39c1c60f,0x63016301,0xd6935281,0xce51ce51,0xce51ce51,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x0000c7bf,0x00000000,0xb6b70000,0x8c637bdf,0xc73f739d,0x7bdf5f7d,0x739d7bdf,0x5f7d739d,0x739d5f7d,0x7bdf7bdf,0x8c638c63,0x8c637bdf,0xf801739d,0x7bdf8801,0x739d7bdf,0x8801739d,0x739d8801,0x7bdf7bdf,0x8c638c63, +0x000094a5,0x94a55ad7,0xa5290000,0x00008c63,0x52950000,0x94a50000,0xad6b4a53,0x0000ad6b,0x294b94a5,0x94a55ad7,0xa529294b,0x294b8c63,0x5295294b,0x94a5294b,0xad6b4a53,0x294bad6b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x8b47abcb,0xa389abcb,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9,0x9c131883,0xa38f72cf,0xbcd9bcd9,0x2105bcd9,0xb4972905,0x9c13b497,0x9c139c13,0x18839c13, +0x9c131883,0xa38f72cf,0xbcd9bcd9,0x2105bcd9,0xb4972905,0x9c13b497,0x628d9c13,0x1883628d,0xdef78c63,0xf80139cf,0xfd01fd01,0xf801fd01,0xfd01ffc1,0xf801f801,0xef7bf801,0x318da529,0x6319318d,0x94a5739d,0x94a58c63,0x5ad76b5b,0x9ce76b5b,0x7bdf8c63,0x7bdf8421,0x21096319,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc60fce51,0xef59bdcd,0xb58be713,0xce51ded5,0x63016301,0xce51e713,0xe7136301,0xc60fce51,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d, +0x00006319,0x5ad70000,0x84215ad7,0x00000000,0x63190000,0x94a55295,0xb5ad0000,0x5ad794a5,0x294b6319,0x5ad7294b,0x84215ad7,0x294b294b,0x6319294b,0x94a55295,0xb5ad294b,0x5ad794a5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x7ac9934b,0x934b934b,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b,0xbcd91883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0xbcd92905,0xb4979c13,0xbcd9bcd9,0x1883bcd9, +0xbcd91883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0xbcd92905,0xb4979c13,0xbcd9bcd9,0x1883bcd9,0xe7398c63,0xfd0139cf,0xffc1ffc1,0xfd01ffc1,0xffc1fd01,0xfd01ffc1,0xef7bfd01,0x294bad6b,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdcde717,0xce51b58b,0xce51b58b,0xce51d693,0xef55ffdb,0xd693ded5,0xce51e713,0xce51ce51,0xb6b7c7bf,0xb6b7b6b7,0xb6b7b6b7,0x00000000,0xb6b7b6b7,0xb6b70000,0xb6b7b6b7,0xc7bfb6b7,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf, +0x0000a529,0x00000000,0x9ce70000,0x52950000,0xad6bad6b,0x00005295,0x8c630000,0xad6b5295,0x294ba529,0x294b294b,0x9ce7294b,0x5295294b,0xad6bad6b,0x294b5295,0x8c63294b,0xad6b5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907,0x72cf1883,0x7b0f72cf,0x6a8d6a8d,0x18837b0f,0x72cf1883,0x6a8d72cf,0x6a8d49c9,0x18836a8d, +0x72cf1883,0x7b0f72cf,0x6a8d6a8d,0x18837b0f,0x72cf1883,0x6a8d72cf,0x6a8d49c9,0x18836a8d,0xdef78421,0xf801318d,0xf801fd01,0xffc1fd01,0xfd01f801,0xfd01ffc1,0xef7bf801,0x318d9ce7,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5ce73,0xce73c631,0xef7bdef7,0xd6b5ce73,0xef7be739,0xce73bdef,0xe739e739,0xc631ce73,0x1a9f21d5,0x1a9f2215,0x2a570a1b,0x01d922e1,0x1a9f129f,0x1a9f2215,0x3adb22e1,0x22151a9f,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe7bde7bd,0xffffffff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe7bde7bd,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a050000,0x14071407,0x14071449,0x0b071449,0x13c90a05,0x140913c9,0x14071409,0x00000b07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52d8465,0x9d2da52d,0x9d2d9d2b,0x9d2b9d2b,0xa52da56d,0x9d2b9d2b,0x9d2b9d2b,0x9d2b94eb,0xe7770000,0x00009619,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x2109314b,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x2109314b, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0xe739def7,0xffffffff,0xef7bef7b,0xd6b5def7,0xc631ce73,0xd6b5d6b5,0xc631b5ad,0xdef7d6b5,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x125d0000,0xffffffff,0xefffffff,0xefffefff,0xe7bdefff,0xffffe7bd,0xefffefff,0xffffe7bd,0xe7bdffff,0x757f757f,0x757f757f,0x757f757f,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0xffffffff,0xefffffff,0x59cbefff,0xe7bdefff,0xffffe7bd,0xefffefff,0xffffe7bd,0xe7bdffff,0x0b070000,0x00010b07,0x0b070143,0x00010143,0x0b070b07,0x00010b07,0x0b070143,0x00000b07,0x0a050000,0x140713c7,0x14490b87,0x00010a85,0x13870a05,0x144913c9,0x14071409,0x00000b07,0x0b070000,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x00000b07, +0x9d2ba52d,0xa56fa52d,0x9d2b94a9,0x9d2b9d2b,0xa56f94e9,0xa52dadf3,0x9d2b9d2b,0xa56d9d2b,0x85570000,0x00006c11,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xe7770000,0x00009619,0x7a91314b,0x828f8291,0x82918291,0x728f728f,0x728f728f,0x8291728f,0x8291728f,0x314b7a91,0x7a91314b,0x828f8291,0x82918291,0x728f728f,0x728f728f,0x8291728f,0x8291728f,0x314b7a91, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bdef7b,0xdef7d6b5,0xf7bdf7bd,0xd6b5e739,0xf7bdef7b,0xe739e739,0xffffffff,0xe739ef7b,0x1a9f1993,0x1a9f2215,0x3adb129f,0x1a9f1a9f,0x1a9f125d,0x1a9f1191,0x21d51a9f,0x221501d9,0xffffefff,0xe7bdefff,0xefffe7bd,0xe7bdefff,0xefffffff,0xe7bdefff,0xffffffff,0xefffefff,0x757f757f,0xffff757f,0x757f757f,0x757f8dff,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x59cbefff,0xe7bdefff,0x59cbe7bd,0x59cbefff,0xefffffff,0xe7bdefff,0xffff59cb,0x59cbefff,0x0b070000,0x0a851409,0x13c71407,0x0a8513c7,0x14071449,0x0b471449,0x14071409,0x00000b07,0x00010001,0x13c70b47,0x14490b87,0x09c50b07,0x13870a05,0x140913c9,0x0ac51409,0x00010001,0x0b070000,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee9,0x00000b07, +0xad6fa52d,0x9d2badb1,0x9d2b9d2b,0x9d2d9d2d,0xa56da52d,0xa56fa56f,0x9d2b94e9,0xadb19d2b,0xaedd0000,0x974d8557,0xaedd0000,0x00008557,0xaedd0000,0x760b8557,0x85570000,0x00006c11,0x8ad1314b,0x828f5189,0x828f5189,0x92d159cb,0x9b1359cb,0x92d159cb,0x9b135989,0x314b8ad1,0x8ad1314b,0x828f828f,0x828f828f,0x728f92d1,0x9b13728f,0x92d19b13,0x9b1392cf,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5def7,0xf7bdef7b,0xd6b5d6b5,0xf7bddef7,0xdef7ce73,0xf7bdf7bd,0xd6b5def7,0xf7bdffff,0x00001a9f,0x00001a9f,0x22e10000,0x00000000,0x00000000,0x000022e1,0x1a9f0000,0x22e10000,0xe7bdffff,0xe7bde7bd,0xffffffff,0xffffe7bd,0xefffffff,0xe7bdefff,0xffffffff,0xe7bdefff,0x757f757f,0x757fffff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f8dff, +0x6b5b59cb,0x59cb59cb,0x59cbffff,0x59cb59cb,0x59cbffff,0x59cbefff,0x59cb7a8f,0x7a8f59cb,0x00010000,0x14890a85,0x14091407,0x00010b47,0x14070b47,0x00010b47,0x14070b47,0x00000b07,0x01430000,0x13c70b07,0x14090b87,0x0b071387,0x0a850001,0x144913c9,0x0b871449,0x00000b07,0x0b070000,0xd6a7dee7,0xd6a7d6a7,0xd6a7d6a7,0xd6a7d6a7,0xd6a7d6a7,0xdee7d6e9,0x00000b07, +0x9d2b9ceb,0xa52d9d2b,0xa52d9d2b,0x9d2b9d2b,0x9d2b9d2b,0xa56d9d2b,0x9d2b9d2d,0x94e99d2d,0xaedd0000,0x760b8557,0xaedd0000,0x974d8557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x828f314b,0x92cf4147,0x92cf4147,0x92cf4147,0x92cf4147,0x92d14147,0x92d14147,0x314b828f,0x828f314b,0x92cf92d1,0x92cf92cf,0x1885728f,0x728f1885,0x92d192d1,0x92d192d1,0x314b828f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdef7e739,0xdef7ce73,0xef7bef7b,0xb5adbdef,0xe739d6b5,0xc631d6b5,0xef7bef7b,0xbdefce73,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x0a1b0000,0xffffffff,0xefffefff,0xffffefff,0xffffe7bd,0xefffefff,0xffffe7bd,0xefffffff,0xe7bdefff,0xffff757f,0x757f757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f,0x8dff757f,0x757f757f, +0x7a8f9353,0xbc179353,0x935359cb,0x7a8f7a8f,0x59cb59cb,0x6b5b59cb,0x93537a8f,0x7a8f59cb,0x01430000,0x14071409,0x14490b47,0x0b471449,0x14071449,0x0b471449,0x14071449,0x00000b07,0x0a050000,0x14070b87,0x140913c9,0x0b071407,0x0b070143,0x14491407,0x13871449,0x00000b07,0x0b070000,0xd6e9dee7,0xdee9dee7,0xdee9dee9,0xdee9dee7,0xdee9dee7,0xdee7d6a7,0x00000b07, +0x9d2ba56d,0x9d2ba56f,0xa56fa56f,0xa56fa52f,0x9ceba56f,0xa56f9d2b,0x94e99d2d,0x94eba52d,0xaedd0000,0x00008557,0xe7770000,0x760b9619,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x728f314b,0x5189828f,0x59cb828f,0x51899b13,0x51899b13,0x5989828f,0x59cb92d1,0x314b8291,0x728f314b,0x828f828f,0x9b13828f,0x1885728f,0x728f1885,0x92cf828f,0x92d192d1,0x314b8291, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdefc631,0xf7bdce73,0xb5adce73,0xd6b5ce73,0xb5adce73,0xd6b5d6b5,0xd6b5c631,0xd6b5ce73,0x1a9f2215,0x22e12215,0x32591a9f,0x1a9f1a9f,0x22e11a9f,0x22e12215,0x22151a9f,0x22151a9f,0xefffefff,0xefffefff,0xffffe7bd,0xffffffff,0xefffe7bd,0xe7bde7bd,0xefffefff,0xe7bdefff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757fffff,0x757f757f,0x757f8dff,0x757f757f, +0x59cb7a8f,0x93539353,0x93537a8f,0x59cb59cb,0x7a8f59cb,0x59cb7a8f,0x7a8f7a8f,0xbc177a8f,0x0b070000,0x0b471407,0x0b470001,0x140713c7,0x140713c7,0x14091449,0x0a851449,0x00000001,0x0a050000,0x14070b47,0x13c913c9,0x0b0713c9,0x13870a05,0x14491407,0x0b871409,0x00000b07,0x0b070000,0xd6a7dee7,0xdee7dee9,0xdee7dee7,0xdee7dee7,0xdee9dee7,0xdee7d6a7,0x00000b07, +0xa52d9ceb,0xadf59d2b,0xa56d9d2b,0xa52da52d,0xad6f9d2b,0x94e9a52d,0x9d2b9d2b,0x94e99d2d,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xe7770000,0x00009619,0xaedd0000,0x00008557,0x728f314b,0x414992cf,0x414992d1,0x39479b13,0x414992d1,0x414992d1,0x3947828f,0x314b728f,0x728f314b,0x92d192cf,0x92d192d1,0x1885728f,0x728f1885,0x92d192d1,0x828f828f,0x314b728f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xffffffff,0xef7bef7b,0xdef7def7,0xe739def7,0xffffef7b,0xdef7e739,0xffffffff,0xe739ef7b,0x00001a9f,0x0000021b,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x01970000,0x1a9f0000,0xe7bdffff,0xe7bde7bd,0xefffffff,0xffffe7bd,0xe7bde7bd,0xffffe7bd,0xefffefff,0xe7bde7bd,0x757f757f,0x757f757f,0x757f757f,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x59cbbc17,0x7a8f7a8f,0x7a8f8421,0xbc177a8f,0x7a8fbc17,0xbc17bc17,0x93537a8f,0x93537a8f,0x01430000,0x14890b87,0x14491407,0x14071409,0x00010b47,0x140713c7,0x14071407,0x00000b07,0x00010001,0x0bc71387,0x13c71407,0x0b0713c9,0x13870a05,0x13c71409,0x0a851409,0x00010001,0x0b070000,0xd6a7dee7,0xdee7dee9,0xd6e9d6a7,0xd6a7d6a7,0xdee7dee7,0xdee7d6a7,0x00000b07, +0xa52d94e9,0x9d2d9ceb,0xa56d94e9,0x9d2b9d2b,0x9d2b9d2b,0xadb1a56f,0xa56fa52d,0x9d2da52d,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xaedd0000,0x974d8557,0x8ad1314b,0x92d159cb,0x9b1359cb,0x828f59cb,0x828f5189,0x9b135989,0x9b1359cb,0x314b8ad1,0x8ad1314b,0x92d19b13,0x9b139b13,0x1885728f,0x728f1885,0x9b1392cf,0x9b139b13,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5d6b5,0xffffffff,0xe739ef7b,0xf7bdf7bd,0xd6b5ce73,0xf7bdef7b,0xe739e739,0xf7bdf7bd,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x22e10000,0x125d0000,0xffffffff,0xefffefff,0xefffefff,0xe7bdefff,0xffffffff,0xe7bde7bd,0xefffffff,0xe7bdefff,0x757f757f,0x757f8dff,0x757f757f,0x757f8dff,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8fbc17,0xbc17bc17,0x93539353,0x7a8f7a8f,0x59cb9353,0x93539353,0x7a8f7a8f,0x93539353,0x00010000,0x14070a85,0x14890b47,0x14071449,0x0b471449,0x14091407,0x14070b47,0x00000143,0x0a050000,0x13871449,0x13871407,0x0b071449,0x0a850001,0x0bc71409,0x0b051409,0x000009c5,0x0b070000,0xd6a7dee7,0xdee7dee9,0xdee9d6a7,0xd6a7dee9,0xdee7dee7,0xdee7d6a7,0x00000b07, +0x9d2b9d2d,0x9d2ba56f,0x9d2b9d2d,0xadafa56d,0x9ceba52d,0x9d2b9d2b,0xa52da52d,0xa56f9d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x760b8557,0x828f314b,0x92d14147,0x92d14147,0x92cf4147,0x92cf4147,0x92d14147,0x92d14147,0x314b828f,0x828f314b,0x92d192d1,0x92d192d1,0x1885728f,0x728f1885,0x92d192d1,0x92d192d1,0x314b828f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe739ef7b,0xd6b5c631,0xe739f7bd,0xd6b5ce73,0xd6b5d6b5,0xc631d6b5,0xdef7def7,0xc631c631,0x000022e1,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x1a9f0000,0xefffffff,0xefffefff,0xe7bde7bd,0xe7bde7bd,0xffffffff,0xe7bdffff,0xffffffff,0xe7bdefff,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8f9353,0x93537a8f,0x93537a8f,0x59cb7a8f,0x93537a8f,0x7a8f9353,0x7a8f7a8f,0x7a8f59cb,0x0b070000,0x0b471449,0x0b470001,0x0b4713c7,0x14071407,0x0b471407,0x0b470001,0x00000001,0x0a050000,0x0b871449,0x0b871407,0x0b071407,0x0b070143,0x13871449,0x0b871407,0x00000b07,0x0b070000,0xd6e9dee7,0xdee7dee9,0xdee9d6a7,0xd6a7dee9,0xdee9dee7,0xdee7d6a7,0x00000b07, +0xa52da52d,0xa56fa56f,0x9d2ba52d,0xa52da56f,0xadf3ad6f,0xa52d94e9,0x9d2d9d2b,0x9d2d9d2b,0xe777974d,0x00009619,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x8ad1314b,0x59cb9b13,0x59899b13,0x59cb828f,0x59cb9b13,0x59cb92d1,0x59cb9b13,0x314b8ad1,0x8ad1314b,0x9b139b13,0x92cf9b13,0x1885728f,0x728f1885,0x92d192d1,0x9b139b13,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdef7d6b5,0xef7bd6b5,0xbdefbdef,0xe739def7,0xe739ce73,0xffffffff,0xe739def7,0xffffffff,0x00001a9f,0x00001a9f,0x22e10000,0x00000000,0x00000000,0x0000125d,0x125d0000,0x1a9f0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xe7bdefff,0xe7bdffff,0xe7bde7bd,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757fffff,0x757f757f,0x757f757f,0x757f757f, +0x93539353,0x7a8f59cb,0x59cb7a8f,0x7a8f59cb,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x93537a8f,0x0b070000,0x14071449,0x14090b47,0x00010b47,0x14070b47,0x14091407,0x14070b47,0x00000b07,0x0a050000,0x13871449,0x144913c9,0x00010a85,0x0b870a05,0x0b871449,0x0b871449,0x00000b07,0x0b070000,0xd6a7dee7,0xdee7dee7,0xd6a7d6a7,0xd6a7d6a7,0xdee9dee7,0xdee7d6a7,0x00000b07, +0x8ca794e9,0x9d2ba52d,0xa52d9d2b,0x9d2ba56f,0xa52d9d2d,0xad6fa52d,0xa52d9d2d,0xa56d94e9,0x8557760b,0x00006c11,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xe7770000,0x00009619,0x728f314b,0x3947828f,0x4989828f,0x414992d1,0x3947828f,0x4147828f,0x39479b13,0x314b728f,0x728f314b,0x828f828f,0x9b13828f,0x1885728f,0x728f1885,0x92cf828f,0x828f9b13,0x314b728f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bdf7bd,0xef7bef7b,0xf7bdffff,0xe739ef7b,0xef7bf7bd,0xe739d6b5,0xdef7e739,0xdef7ce73,0x1a9f094f,0x1a9f1191,0x21d31a9f,0x1a9f0a1b,0x1a9f2b65,0x1a9f2215,0x2215125d,0x11912b23,0xffffffff,0xe7bdffff,0xefffefff,0xefffefff,0xefffefff,0xffffe7bd,0xefffffff,0xe7bdefff,0x757f757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f, +0x93539353,0xbc177a8f,0x7a8fbc17,0x9353bc17,0xbc1759cb,0x7a8fbc17,0x93539353,0x7a8f8421,0x00010000,0x14070a85,0x14071409,0x14491407,0x0b471407,0x0b4713c7,0x14071449,0x00000b07,0x0a050001,0x0b871409,0x14491407,0x09c50b05,0x13c70a05,0x0b871449,0x0a851449,0x00010001,0x0b070000,0xd6a7dee7,0xdee7dee9,0xdee7dee7,0xdee7dee7,0xdee9dee7,0xdee7d6e9,0x00000b07, +0xa52da52d,0xa52f8c67,0xa56f94e9,0x9d2d9d2b,0xad6fad6f,0x9d2ba56d,0x9d2b9d2d,0x9d2d9d2b,0xaedd0000,0x00008557,0xe777760b,0x00009619,0xaedd974d,0x00008557,0x85570000,0x00006c11,0x8291314b,0x92d159cb,0x9b1359cb,0x828f5189,0x828f5189,0x92d159cb,0x92d159cb,0x314b8291,0x8291314b,0x92d192d1,0x9b139b13,0x1885728f,0x728f1885,0x92d192d1,0x92d192d1,0x314b8291, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce73ce73,0xe739e739,0xd6b5d6b5,0xe739ef7b,0xce73ce73,0xe739d6b5,0xbdefbdef,0xe739d6b5,0x00000a1b,0x000022e1,0x2b230000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x1a9f0000,0xe7bdffff,0xefffe7bd,0xefffefff,0xe7bde7bd,0xe7bde7bd,0xffffe7bd,0xefffefff,0xe7bde7bd,0x757f757f,0x757f757f,0x757f757f,0x757f8dff,0x757f757f,0x757f757f,0x757fffff,0x757f757f, +0x7a8f9353,0x93537a8f,0xbc179353,0x93537a8f,0x93536b5b,0x7a8f9353,0x935359cb,0x59cb7a8f,0x0b070000,0x14071449,0x0b471449,0x14091407,0x00010b47,0x00010b47,0x14070b47,0x00000001,0x0a050000,0x0b871409,0x144913c9,0x0b070b87,0x13c70a05,0x13871449,0x0b071449,0x000009c5,0x0b070000,0xd6a7dee7,0xdee9dee9,0xdee7dee7,0xdee9dee9,0xdee9dee9,0xdee7d6a7,0x00000b07, +0xa52f9ceb,0x94eba56d,0x9d2ba52d,0x9d2ba52d,0xa52da52d,0xadb19d2b,0x9d2b9d2b,0x94a99d2b,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xaedd760b,0x00008557,0xaedd0000,0x00008557,0x828f314b,0x92cf4147,0x92d14147,0x92cf4147,0x92cf4147,0x92cf4147,0x92d14147,0x314b828f,0x828f314b,0x92cf92cf,0x92d192d1,0x1885728f,0x728f1885,0x92cf92cf,0x92d192d1,0x314b828f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5d6b5,0xbdefbdef,0xf7bdf7bd,0xb5adc631,0xef7bdef7,0xe739e739,0xffffffff,0xc631e739,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x1a9f0000,0xffffefff,0xe7bdefff,0xe7bde7bd,0xffffefff,0xffffffff,0xe7bdefff,0xe7bde7bd,0xe7bde7bd,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f,0x757f757f, +0x59cb7a8f,0x7a8f9353,0x93539353,0x7a8fbc17,0x7a8f7a8f,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x0b070000,0x14071449,0x00010b47,0x14091407,0x0b471449,0x0b471407,0x14091449,0x00000b07,0x00010001,0x0b870b47,0x144913c9,0x0b070b87,0x0ac50001,0x13871449,0x0b8713c7,0x00010b07,0x0b070000,0xd6a7dee7,0xd6e9d6a7,0xd6a7d6a7,0xd6a7d6a7,0xd6e9d6e9,0xdee7d6e9,0x00000b07, +0xa52dad6f,0xad6f9d2b,0x9d2ba52d,0x94e9a56d,0xa52d94e9,0x9d2b9d2b,0xa52fa52d,0x9d2b9d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x8ad1314b,0x59cb9b13,0x51899b13,0x51899b13,0x5189828f,0x5189828f,0x598992d1,0x314b8ad1,0x8ad1314b,0x9b139b13,0x828f9b13,0x1885728f,0x728f1885,0x828f828f,0x92cf92d1,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe739e739,0xffffffff,0xef7bf7bd,0xd6b5e739,0xdef7bdef,0xf7bde739,0xdef7def7,0xfffff7bd,0x125d2215,0x1a9f2215,0x22151a9f,0x1a9f1a9f,0x22e11a9f,0x125d2215,0x19911a9f,0x22151a9f,0xefffefff,0xe7bdefff,0xefffefff,0xe7bdefff,0xefffffff,0xe7bdefff,0xffffffff,0xefffefff,0x757f8dff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f8dff,0x757f757f,0x757f757f, +0x93537a8f,0x7a8f7a8f,0x7a8f59cb,0x93539353,0x59cb7a8f,0x59cbbc17,0xbc177a8f,0x93539353,0x0b070000,0x14070a85,0x0b471449,0x0b870a85,0x0a851449,0x14091407,0x0a850a85,0x00000b07,0x01430000,0x13c70b87,0x14091407,0x0b070bc7,0x0b470143,0x138713c9,0x14491449,0x00000b07,0x0b070000,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0x00000b07, +0xa56fadb3,0x8ca79ceb,0x9d2b9d2b,0xad6f9d2b,0xad6fa52d,0xa52da56f,0x9d2ba56d,0x9d2da56f,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xe7770000,0x00009619,0xaedd760b,0x00008557,0x728f314b,0x498992cf,0x49899b13,0x39479b13,0x41499b13,0x394792d1,0x3947828f,0x314b728f,0x728f314b,0x9b1392cf,0x9b139b13,0x728f9b13,0x92d1728f,0x828f92d1,0x828f828f,0x314b728f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bdf7bd,0xdef7def7,0xe739f7bd,0xef7be739,0xef7bffff,0xd6b5d6b5,0xe739e739,0xce73d6b5,0x00000a1b,0x000022e1,0x1a9f0000,0x00000000,0x00000000,0x000022e1,0x125d0000,0x1a9f0000,0xefffffff,0xe7bdffff,0xe7bde7bd,0xffffe7bd,0xffffffff,0xffffffff,0xefffffff,0xe7bdefff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8f9353,0xbc1759cb,0x59cb7a8f,0x59cb7a8f,0x7a8f7a8f,0x59cb7a8f,0x7a8f7a8f,0x93539353,0x0b070000,0x01430001,0x0b070b07,0x0b070001,0x00010143,0x0b070b07,0x01430001,0x00000b07,0x0a050000,0x144913c9,0x14090b87,0x00010ac5,0x13c90a05,0x13871449,0x13871409,0x00000b07,0x0b070000,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x00000b07, +0x9d2da52d,0x9d2b9d2b,0x9d2da52d,0xa56da52d,0xa52d8ca7,0x9d2b94a9,0x9ceba56f,0xa52d9d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xaedd0000,0x00008557,0x7a91314b,0x728f728f,0x8ad1728f,0x728f8ad1,0x8ad18ad1,0x8291728f,0x8ad18ad1,0x314b7a91,0x7a91314b,0x728f728f,0x8ad1728f,0x728f8ad1,0x8ad18ad1,0x8291728f,0x8ad18ad1,0x314b7a91, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce73c631,0xe739f7bd,0xd6b5ce73,0xfffff7bd,0xd6b5def7,0xf7bde739,0xce73ce73,0xf7bdef7b,0x1a9f2215,0x1a9f2215,0x2a571a9f,0x1a9f1a9f,0x1a9f22e1,0x1a9f1151,0x32991a9f,0x2a571a9f,0xffffffff,0xefffffff,0xe7bdefff,0xe7bde7bd,0xe7bde7bd,0xffffefff,0xefffe7bd,0xffffe7bd,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8f9353,0x9353bc17,0x7a8f9353,0x93538421,0x93539353,0x7a8f7a8f,0x93539353,0x59cb7a8f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a050000,0x140913c9,0x14071387,0x09c50b47,0x14070a05,0x0b8713c9,0x13c71407,0x00000b07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa56d9d2b,0x94e99d2b,0xa52dadf3,0xa56f94e9,0xad6f9d2d,0x9d2b9d2b,0x9d2d9d2b,0x94e99d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac51b495,0xac51ac51,0xb495ac51,0xac93b495,0xb495ac51,0xb495b495,0xb495b495,0x8b4db495,0xa529a529,0xad6ba529,0xbdefb5ad,0xbdefc631,0xbdefbdef,0xc631c631,0xc631c631,0xbdefc631,0x00000000,0x5a498b8f,0x00000000,0x00000000,0x00000000,0x00000000,0x6a8bac55,0x00000000, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x49437205,0x69c571c5,0x41034103,0x69c569c5,0x30c14103,0x410369c5,0x69c55985,0x71c54903,0x61c99b51,0x9b519b51,0x61c961c9,0x9b519b51,0x414561c9,0x61c99b51,0x9b517a8d,0x9b5161c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006601,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006b05,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x7acb8b4d,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x6a07934f,0xc631bdef,0xbdefbdef,0xc631c631,0xc631c631,0xc631c631,0xc631c631,0xc631c631,0xa529c631,0xa4130000,0x4987a413,0x8b8f8b8f,0xa413a413,0xac55ac55,0xa413ac55,0x624b8b8f,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c34943,0x51455985,0x41035143,0x618530c1,0x30c14103,0x41035143,0x41034103,0x71c530c3,0x414561c9,0x7a8d7a8d,0x61c97a8d,0x9b514145,0x414561c9,0x61c97a8d,0x61c961c9,0x9b514145, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005d83,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x24039581,0x00000000,0x00000000,0x00000000,0x00000000,0x73050000,0x00000000,0x00000000,0x10c18b85,0x00000000,0x00000000,0x00007b45,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x7a897a89,0x7a897a89,0x8b4d828b,0x82cb82cb,0x828b82cb,0x934f6249,0x6a07934f,0xc631c631,0xbdefbdef,0xbdefbdef,0xc631bdef,0xbdefbdef,0xbdefbdef,0xc631b5ad,0xa529bdef,0x624b0000,0x5a498b8f,0x624b624b,0x624b624b,0x624b624b,0x5a095a09,0x6a8b624b,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c371c5,0x69c569c5,0x41035143,0x49432881,0x28814943,0x41036185,0x41034103,0x59854103,0x41459b51,0x9b519b51,0x61c97a8d,0x7a8d4145,0x41457a8d,0x61c99b51,0x61c961c9,0x7a8d61c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1b415d83,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b4384c3,0x00000000,0x00000000,0x00000000,0x00000000,0x7b450000,0x00002101,0x00000000,0x83850000,0x00000000,0x00000000,0x29418385,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x728b9b8f,0x00006209,0x00000000,0x938f0000,0x00006249,0x00000000,0x934d0000,0x51c77acb,0xbdefbdef,0x0000b5ad,0x00000000,0xc6310000,0x0000b5ad,0x00000000,0xc6310000,0xa529bdef,0x00000000,0x49875a09,0x00000000,0x00000000,0x00000000,0x00000000,0x41875a09,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x318d69c5,0x39035143,0x59853903,0x28814943,0x49434943,0x41034103,0x69c530c3,0x61c97a8d,0x52959b51,0x61c97a8d,0x9b5161c9,0x41457a8d,0x7a8d7a8d,0x61c961c9,0x9b514145, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000641,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13415e41,0x00000000,0x00000000,0x00000000,0x00000000,0x5cc50000,0x00000000,0x00000000,0x5d430000,0x00000000,0x00000000,0x00006583,0x00000000,0x00000000,0x000093c3,0x7b450000,0x95010000,0x00003981,0x93c30000,0x39810000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x7a89318d,0x00007a89,0x00000000,0xa4110000,0x000082cb,0x00000000,0xa4510000,0x72098b4d,0xbdef4a53,0x0000bdef,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xad6bc631,0x00000000,0x5a498b8f,0x00000000,0x00000000,0x00000000,0x00000000,0x624ba413,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x51435143,0x39033903,0x49035985,0x28814903,0x294b5985,0x41034943,0x69c530c1,0x61c97a8d,0x7a8d7a8d,0x61c961c9,0x7a8d9b51,0x41457a8d,0x52959b51,0x61c97a8d,0x9b514145, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x1c430501,0x00000000,0x00000000,0x00000000,0x00000000,0x55430000,0x00000000,0x00000000,0x4c450000,0x00000000,0x00000000,0x00005e01,0x00000000,0x65830000,0x00001281,0x66010000,0x9e010000,0x00001b01,0x00000000,0x1b415d43,0x00000000,0x00000000,0x42019d81,0x93c30000,0x95012941,0x7b4532c1,0x95010000,0x00000000,0x00007305, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4d6b5b,0x00006249,0x00000000,0xa4110000,0x0000828b,0x00000000,0xa4110000,0x6a078b4d,0xc6318421,0x0000b5ad,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xa529c631,0xa4130000,0x624b624b,0xac55ac55,0x8b8fac55,0x8b8f8b8f,0xac55624b,0x5a498b8f,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41034903,0x41036185,0x39033903,0x51452881,0x38c330c3,0x28815145,0x41034943,0x69c56185,0x61c961c9,0x61c99b51,0x61c961c9,0x9b514145,0x61c961c9,0x41459b51,0x61c97a8d,0x9b519b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000483,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x0b010641,0x00000000,0x00000000,0x00000000,0x00000000,0x5e410000,0x00001301,0x54c50000,0x55430000,0x000009c1,0x00000000,0x1bc35e01,0x00000000,0x00000000,0x00005d43,0x65830000,0x95c123c3,0x00004c05,0x54850000,0x1b010000,0x00000000,0x00005a85,0x43439501,0x00008385,0x8cc34a01,0x838532c1,0xa5c12941,0x00000000,0x18c18b85, +0x00000000,0x00000000,0x00000000,0xfec10000,0x0000fc41,0x00000000,0x00000000,0x00000000,0x934fb495,0x934f934f,0xa453a451,0xa411a453,0x8b4d8b4d,0x938fa411,0xa453a453,0x7209934f,0xc631c631,0xc631c631,0xce73ce73,0xce73ce73,0xc631c631,0xc631ce73,0xce73ce73,0xa529c631,0x624b0000,0x624bac55,0x5a095a09,0x624b5a09,0x624b624b,0x5a095a09,0x6a8bac55,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x514369c5,0x49436185,0x28813903,0x41032881,0x208130c3,0x49035145,0x41034943,0x51436185,0x7a8d9b51,0x7a8d9b51,0x414561c9,0x7a8d4145,0x414561c9,0x7a8d9b51,0x61c97a8d,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02410641,0x00000000,0x00000000,0x00000000,0x00000000, +0x06010000,0x00000000,0x00000000,0x05410000,0x00000000,0x00000000,0x00000681,0x00000000,0x00000000,0x00005dc3,0x5e410000,0x55030a81,0x00001301,0x55430000,0x00000000,0x00000000,0x00000000,0x1b018d01,0x00006e81,0x8d411b41,0x6e813b83,0x8d010000,0x00000000,0x00000000,0x00018bc5,0x32c1a5c1,0x31819541,0x7c430000,0x9d412a41,0x7c433181,0x7b450000,0x39c10000, +0x00000000,0x00000000,0x00000000,0xffe50000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x7acb9bcf,0x62096209,0x62096209,0x7acb6209,0x62496249,0x62096249,0x728b6209,0x51c77acb,0xbdefbdef,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xa529bdef,0x00000000,0x41875a09,0x00000000,0x00000000,0x00000000,0x00000000,0x41875a09,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c169c5,0x49435143,0x28813903,0x51432881,0x208130c3,0x49034103,0x39033903,0x51436185,0x41459b51,0x7a8d7a8d,0x414561c9,0x9b514145,0x414561c9,0x7a8d7a8d,0x61c961c9,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1c8505c3,0x00000000,0x00000000,0x00000000,0x00000000, +0x06010000,0x00001c43,0x05010000,0x4cc50000,0x00000b01,0x00000000,0x24850601,0x00000000,0x00000000,0x1b815543,0x00006601,0x5dc32403,0x5d830ac1,0x55030000,0x00000000,0x00000000,0x00000000,0x32c19e01,0x2c858d01,0x95810000,0x95c132c1,0x8d412c85,0x00000000,0x00006583,0x42019541,0x4383a5c1,0x32c1a5c1,0x8cc30000,0x95411981,0xa5c13b01,0x95410000,0x00002141, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x000049c9,0x00000000,0x00000000,0x00000000,0x934fb495,0x000082cb,0x00000000,0xa4530000,0x000082cb,0x00000000,0xa4530000,0x6a07934f,0xc631c631,0x0000c631,0x00000000,0xce730000,0x0000bdef,0x00000000,0xc6310000,0xa529bdef,0x00000000,0x6a8bac55,0x00000000,0x00000000,0x00000000,0x00000000,0x6a8bac55,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c15985,0x49435143,0x38c33903,0x51432881,0x208130c3,0x38c35145,0x28813903,0x41035143,0x41457a8d,0x7a8d7a8d,0x61c961c9,0x9b514145,0x414561c9,0x61c99b51,0x414561c9,0x61c97a8d, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000405,0x00000000,0x00000000,0x00000000,0x00000000,0x05830000,0x00000000,0x00000000,0x06010000,0x00000000,0x00000000,0x000005c3,0x00000000, +0x00000000,0x000005c1,0x05c10000,0x56010b01,0x00000a41,0x05010000,0x1c030000,0x00000000,0x00000000,0x13015e01,0x24035e01,0x74830000,0x54c51b83,0x5e011341,0x00000000,0x00005d83,0x00006583,0x43c395c1,0x2ac184c3,0x8d410000,0x8d013b43,0x95413b83,0x4c450000,0x1b810000,0x32c1a5c1,0x43839d41,0x43838c83,0x95410000,0x9d412a41,0x7c4332c1,0x7c430000,0x00003b01, +0x00000000,0x00000000,0x00000000,0x93910000,0x00003947,0x00000000,0x00000000,0x00000000,0x8b4dac51,0x00007a89,0x00000000,0xa4510000,0x00007a89,0x00000000,0xa4110000,0x6a078b4d,0xc631c631,0x0000bdef,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xa529c631,0xa4130000,0x5a498b8f,0xac55ac55,0x8b8f8b8f,0x8b8f8b8f,0xa413a413,0x5a49ac55,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c35985,0x41036185,0x49433903,0x514538c3,0x38c34103,0x39035145,0x28813903,0x51436185,0x41457a8d,0x61c99b51,0x7a8d61c9,0x9b5161c9,0x61c97a8d,0x61c99b51,0x414561c9,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01c104c5,0x00000000,0x00000000,0x00000000,0x00000000,0x05030000,0x00000b41,0x06030000,0x4d830000,0x00001443,0x00000000,0x13c30601,0x00000000, +0x00000000,0x13c35601,0x00000541,0x55831bc3,0x05411bc3,0x55830000,0x00000000,0x00000000,0x00005d83,0x1bc35d83,0x1bc35e41,0x96010000,0x55031a01,0x5e010a81,0x55030000,0x13410000,0x1b819581,0x3b837403,0x2a818d01,0x84830000,0x8d0132c1,0x8d412ac1,0x95410000,0x000009c1,0x4bc38483,0x3b038483,0x2a419d81,0x8c830000,0x7c433b01,0x7c433b03,0x74030000,0x00001981, +0x00000000,0x00000000,0x00000000,0x93910000,0x00004189,0x00000000,0x00000000,0x00000000,0x8b4db495,0x0000828b,0x00000000,0xa4110000,0x00007a89,0x00000000,0xa4510000,0x6a078b4d,0xc631c631,0x0000bdef,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xa529bdef,0x624b0000,0x624ba413,0x5a095a09,0x624b5a09,0x624b624b,0x624b624b,0x624ba413,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x61856185,0x39034943,0x49032881,0x38c34903,0x59852881,0x61853903,0x410339cf,0x61c97a8d,0x9b519b51,0x61c97a8d,0x7a8d4145,0x61c97a8d,0x9b514145,0x9b5161c9,0x61c96b5b, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000585,0x00000000,0x00000000,0x00000000,0x00000000,0x06830000,0x00000000,0x00000000,0x05c50000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005c3,0x04c30000,0x4dc31403,0x00000b41,0x05430000,0x14430000,0x00000000, +0x00000000,0x13c35583,0x13414d43,0x74830000,0x55c31341,0x55831341,0x00000000,0x00000701,0x1b815543,0x1b817cc3,0x24438dc1,0x8d810000,0x960143c3,0x5d8312c1,0x5d830000,0x000012c1,0x3b038d01,0x118184c3,0x32c18483,0x84830000,0x74432241,0x8d012ac1,0x8d010000,0x00003b03,0x2a419501,0x2a417403,0x4343a5c1,0x84830000,0x7c432a41,0x8cc319c1,0x95410000,0x00001141, +0x00000000,0x00000000,0x00000000,0x9bd50000,0x00004189,0x00000000,0x00000000,0x00000000,0x728b9bcf,0x938f7acb,0x934d934d,0x938f934d,0x938f7acb,0x938f938f,0x934d934d,0x51c7728b,0xbdefbdef,0xce73c631,0xc631c631,0xc631c631,0xc631bdef,0xc631c631,0xbdefbdef,0x9ce7b5ad,0x00000000,0x4987624b,0x00000000,0x00000000,0x00000000,0x00000000,0x41875a09,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x61854103,0x39035143,0x49433903,0x4943294b,0x61852881,0x61854103,0x30c34103,0x61c97a8d,0x9b5161c9,0x61c97a8d,0x7a8d61c9,0x7a8d5295,0x9b514145,0x9b5161c9,0x414561c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03810545,0x00000000,0x00000000,0x00000000,0x00000000,0x06050000,0x00001485,0x00000000,0x45830000,0x00000bc3,0x00000000,0x00000585,0x00000000,0x00000000,0x13c344c5,0x00000641,0x4d830281,0x04031383,0x4dc30000,0x00000000,0x00000000, +0x00000481,0x138155c3,0x0b014405,0x6c830000,0x4cc51a01,0x44851383,0x04410000,0x2d050000,0x13015d83,0x22418541,0x3b835b43,0x74830000,0x74833343,0x7c8343c3,0x7cc30000,0x00001341,0x2ac19541,0x2a8184c3,0x2a417443,0x74430000,0x74432241,0x744319c1,0x8d410000,0x000032c1,0x32c18c83,0x11817c43,0x43838483,0x6b850000,0x7c432201,0x6bc51981,0x8cc30000,0x000032c1, +0x00000000,0x00000000,0x00000000,0x93930000,0x00003947,0x00000000,0x00000000,0x00000000,0x934fb495,0xa453934f,0xa411a453,0xa411a453,0xa4118b4d,0xa411a411,0x938fa451,0x7209934f,0xc631c631,0xce73c631,0xce73ce73,0xce73ce73,0xce73c631,0xc631ce73,0xbdefc631,0xa529b5ad,0x00000000,0x6a8bac55,0x00000000,0x00000000,0x00000000,0x00000000,0x4987a413,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c34943,0x69c54103,0x41035143,0x61852881,0x41033903,0x51434103,0x69c54103,0x69c569c5,0x414561c9,0x9b5161c9,0x61c97a8d,0x9b514145,0x61c961c9,0x7a8d61c9,0x9b5161c9,0x9b519b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07050000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006c3,0x06430000,0x45430000,0x00000b41,0x05450000,0x0b810000,0x00000000,0x00000000,0x02814e01,0x1c854503,0x7e010000,0x45030b41,0x454301c1,0x00000000,0x00000583, +0x0a415601,0x13c38541,0x018174c3,0x64030000,0x74831201,0x4cc50a41,0x44850000,0x00000201,0x13417483,0x33017483,0x00817cc3,0x63c30000,0x63c31a01,0x74831a01,0x8d410000,0x00002a81,0x3b017c83,0x2a417443,0x19c18483,0x63c50000,0x6bc51181,0x638519c1,0x63c50000,0x00003301,0x2a417403,0x19c16b83,0x2a416bc5,0x6b850000,0x6bc50901,0x6b8319c1,0x6bc50000,0x00002a41, +0x00000000,0x00000000,0x00000000,0x628d0000,0x00003987,0x00000000,0x00000000,0x00000000,0x8b4dac93,0x82cb6249,0x82cb82cb,0x8b4d82cb,0x828b82cb,0x7a89828b,0x8b4d7a89,0x72098b4d,0xc631c631,0xbdefbdef,0xc631c631,0xc631c631,0xbdefbdef,0xb5adb5ad,0xb5adb5ad,0xa529b5ad,0xa4130000,0x6a8b624b,0xac558b8f,0x8b8fac55,0xac55ac55,0xa4138b8f,0x5a498b8f,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x59854943,0x51454903,0x41034105,0x61854103,0x41036185,0x514330c1,0x30c34103,0x59855985,0x7a8d61c9,0x7a8d61c9,0x61c95a0b,0x9b5161c9,0x61c99b51,0x7a8d4145,0x414561c9,0x7a8d7a8d, +0x00000000,0x00000000,0x00000000,0x000005c5,0x00000000,0x00000000,0x00000000,0x00000000,0x05850000,0x00000000,0x00000000,0x3dc30000,0x00001d47,0x00000000,0x00000645,0x00000000,0x00000000,0x1d053c45,0x00000505,0x3cc51445,0x04850301,0x3cc50000,0x00000000,0x00000000,0x000005c3,0x13c34d83,0x02c13c85,0x7d410000,0x448533c3,0x4e0102c1,0x04830000,0x0b810000, +0x13c34cc5,0x2b0374c3,0x22816c43,0x5b830000,0x74830981,0x6c432241,0x5bc50000,0x00000a01,0x1a016c03,0x1a016c03,0x224163c5,0x63830000,0x5b850141,0x74830141,0x63830000,0x00003301,0x1a017403,0x11c16383,0x2a416bc5,0x6bc50000,0x42430901,0x6bc50941,0x63c50000,0x00000901,0x09416bc5,0x09017c43,0x09016383,0x63430000,0x63450901,0x5b450901,0x5b030000,0x00000901, +0x00000000,0x00000000,0x00000000,0x9bd30000,0x00003947,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d7a89,0x934f8b4d,0xa411934f,0x934f82cb,0x42118b4d,0x18c7294b,0x72097209,0xc631c631,0xc631bdef,0xc631c631,0xce73c631,0xc631bdef,0xb5adbdef,0xa529bdef,0x9ce7a529,0x624b0000,0x5a498b8f,0x5a095a09,0x5a096a8b,0x624b624b,0x5a09624b,0x6a8bac55,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x49436185,0x69c530c3,0x410369c5,0x410330c3,0x410369c5,0x514330c3,0x30c34103,0x598571c5,0x61c97a8d,0x9b514145,0x61c99b51,0x61c94145,0x61c99b51,0x7a8d4145,0x414561c9,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x05450000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000685,0x00000000,0x3d830000,0x00000381,0x07050000,0x14450000,0x00000000,0x00000000,0x01c14505,0x02c13c45,0x5c030000,0x3cc50281,0x34050241,0x00000000,0x00000000,0x13c34d83,0x0b416483,0x02016cc3,0x64430000,0x75012b03,0x45430201,0x3c450000,0x00000241, +0x0a416403,0x224163c3,0x11c16c43,0x53450000,0x64030101,0x63c31a41,0x64030000,0x00000141,0x09815b83,0x09814b03,0x01414ac3,0x53030000,0x53030101,0x6c030101,0x5b850000,0x00000101,0x11815b45,0x00c15b43,0x09416385,0x4a830000,0x5b430941,0x5b030001,0x6bc50000,0x00000901,0x09416b83,0x19c15b03,0x00c16385,0x5b030000,0x5b030081,0x5b030081,0x63430000,0x00000041, +0x00000000,0x00000000,0x00000000,0x628d0000,0x00003145,0x00000000,0x00000000,0x00000000,0x7acb318d,0x7acb6249,0x728b728b,0x934d7acb,0x7acb6249,0x18c77acb,0x934d51c7,0x51c751c7,0xbdef4a53,0xbdefb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adad6b,0xb5adbdef,0x9ce7a529,0x00000000,0x49c9624b,0x00000000,0x00000000,0x00000000,0x00000000,0x41874187,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x61856185,0x71c538c3,0x59855985,0x69c54903,0x41035985,0x69c54903,0x49435985,0x38c371c5,0x7a8d7a8d,0x9b514145,0x7a8d7a8d,0x9b5161c9,0x61c97a8d,0x9b5161c9,0x61c97a8d,0x41459b51, +0x00000000,0x000005c5,0x00000000,0x07050000,0x00000341,0x06050000,0x00000000,0x00000000,0x00000000,0x14c53e41,0x00000485,0x3d030000,0x05c50341,0x3cc50000,0x00000000,0x00000000,0x000004c5,0x02816483,0x01c15c03,0x6d010000,0x53c50981,0x64430281,0x04450000,0x00000000,0x0b413c05,0x12016483,0x1a416483,0x64830000,0x5c0311c1,0x5bc522c1,0x5c030000,0x000001c1, +0x094163c3,0x09415bc5,0x11c16403,0x64030000,0x534500c1,0x53450981,0x53850000,0x00000981,0x01015303,0x00015303,0x00014ac3,0x42830000,0x42830041,0x53450041,0x6c030000,0x000000c1,0x00815b43,0x00816385,0x00c16385,0x63850000,0x42830001,0x63850081,0x53030000,0x00000941,0x090152c3,0x00416b83,0x00c152c3,0x52c30000,0x42430041,0x63450041,0x4a830000,0x00000081, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4d6b5b,0x8b4d7a89,0x934f8b4d,0xa451934f,0x934f7a89,0x934f934f,0xa453934f,0x6a07934f,0xc6318421,0xc631bdef,0xc631c631,0xce73c631,0xc631bdef,0xc631c631,0xc631bdef,0xad6bbdef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0xa2c3a2c3,0xd3c5d3c5,0xd3c5a2c3,0xa2c3d3c5,0xd3c5a2c3,0xd3c5d3c5,0xd3c5a2c3,0xa2c3a2c3,0xa2d7c39d,0x9a95a2d7,0x71cfc41b,0x4909514b,0x80434909,0xa2d7c39d,0x490971cf,0x8211aad7, +0x624f5a4f,0x49cb3947,0x41493947,0x31053907,0x498b418b,0x6291498b,0x39074189,0x520d3105,0x7acbfdd7,0x73537acb,0x73537353,0x7acbfdd7,0x73537353,0xfdd77353,0xc451fdd7,0x73537acb,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x938f8b4d,0xa451a451,0xa411a411,0xa4118b4d,0xa451a411,0xa451a411,0x6a07934f,0xc631d6b5,0xc631c631,0xce73ce73,0xce73ce73,0xce73c631,0xce73ce73,0xc631c631,0xa529b5ad,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe513a2c3,0xe513a2c3,0xd3c5e487,0xd3c5a2c3,0xa2c3e487,0xe487e487,0xd3c5e487,0xa2c3a2c3,0xa2d7c39d,0x8a534001,0x49091843,0x8043c39d,0x58014909,0x58019295,0x69496843,0xab19618d, +0x520d4189,0x624f6ad3,0x624f6a93,0x51cd7b15,0x39073947,0x62516251,0x31053105,0x49cd5a4f,0xffff7acb,0x49c5c451,0xfdd77353,0xffffc451,0x735349c5,0x7acbfdd7,0xfffffea7,0x49c5c451,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x934f934f,0x8b4d934f,0x934f7acb,0x6a07934f,0xc631d6b5,0xc631c631,0xc631c631,0xc631c631,0xbdefc631,0xbdefbdef,0xb5adb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe513d3c5,0xa2c3e513,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487e487,0xa2c3e513,0xd3c5d3c5,0x71cf598d,0x28858a53,0x80434909,0x5801c39d,0x10432043,0x58017a11,0x598d2885,0x8a953843, +0x498b6291,0x31056251,0x624f3907,0x5a4f3907,0x31055a4f,0x31058357,0x41494189,0x4149520d,0x7acb7acb,0x735349c5,0x73537acb,0x7acb49c5,0x735349c5,0x49c57353,0xc451c451,0x735349c5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x728b9b8f,0x62496209,0x62496249,0x7acb6249,0x62496249,0x62096209,0x728b6209,0x51c77acb,0xbdefc631,0xbdefbdef,0xbdefbdef,0xbdefb5ad,0xad6bb5ad,0xad6bad6b,0xad6bad6b,0x9ce7ad6b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487d3c5,0xe487e487,0xe487a2c3,0xe487a2c3,0xa2c3e487,0xd3c5e487,0xd3c5a2c3,0xd3c5e487,0x41097211,0x598d1043,0x69cfaad7,0xab97a2d7,0x490930c7,0x38c72885,0xbb5b4909,0x598d8843, +0x39074189,0x31057b15,0x62517b15,0x5a4f3105,0x3947418b,0x498b498b,0x41894189,0x93db49cb,0x49c57353,0xfdd77353,0x7acb7acb,0x49c57353,0xfdd77353,0x73537acb,0x49c549c5,0x49c57353,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4db495,0x8b4d7a89,0x934f8b4d,0xa411934f,0x8b4d82cb,0x7acb8b4d,0xa4518b4d,0x72098b4d,0xc631ce73,0xc631bdef,0xc631c631,0xc631c631,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3c5a2c3,0xe487e487,0xd3c5d3c5,0xe487a2c3,0xe487d3c5,0xa2c3e487,0xe513e487,0xa2c3d3c5,0xc39de521,0x598d8a8f,0x8a95c39d,0x20438a95,0x9295598d,0xab199253,0xab554109,0x598d7843, +0x418b51cd,0x72d56ad3,0x31053907,0x8357498b,0x6291418b,0x7b155a4f,0x41898357,0x5a4f51cd,0x73537353,0xc451fdd7,0xc451fea7,0x735349c5,0xc451fdd7,0x49c57acb,0x73537353,0x49c5fdd7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4dac51,0x8b4d6249,0x8b4d8b4d,0xa411934f,0x8b4d828b,0x8b4d8b4d,0xa4118b4d,0x6a078b4d,0xc631ce73,0xc631b5ad,0xc631c631,0xc631c631,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0xf8010000,0x0000f801,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3a2c3,0xa2c3a2c3,0xa2c3e487,0x39413941,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xa2c3a2c3,0x8a954801,0x598d71cf,0x600169cf,0x30c78a53,0xdc21bb5b,0x92958253,0x598d9291,0x28851043, +0x3907418b,0x62513907,0x51cd3105,0x6a913107,0x418b3947,0x31075a4f,0x72d36a91,0x41498b99,0x7acb7353,0xfea77acb,0xfea7ffff,0x735349c5,0xffffc451,0x49c549c5,0xfdd77353,0x49c5c451,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7bdf0000,0x0000739d,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d82cb,0x934f934f,0xa411934f,0x8b4d7a89,0x934f7acb,0xa453934f,0x7209934f,0xbdefc631,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xb5adad6b,0xb5adad6b,0xbdefb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0xfec1f801,0xf801fc41,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487d3c5,0xe487e487,0x3941a2c3,0xb401e541,0xa2c33941,0xd3c5e487,0xe487a2c3,0xd3c5d3c5,0x8a535801,0x598d71cf,0x1843594b,0x514b30c7,0x604361cf,0x8a53b319,0x8a53618d,0x30435801, +0x6a913105,0x41893907,0x6a918357,0x39076a93,0x3947418b,0x31058357,0x6a916251,0x6a91418b,0x49c57353,0xc45149c5,0xc451fea7,0x735349c5,0x49c57acb,0x73537353,0xc4517acb,0x49c5ffff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x84210000,0x0000739d,0x00000000,0x00000000,0x00000000,0x7acb9bcf,0x934d728b,0x934d934d,0x938f934d,0x938f7acb,0x934d934d,0x934d934d,0x51c77acb,0xad6bb5ad,0xad6ba529,0xa529a529,0xa529a529,0xad6b9ce7,0xa529a529,0xa529a529,0x8c63a529,0x00000000,0x00000000,0x00000000,0xffe5f801,0xf801ffff,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3c5a2c3,0xe487d3c5,0x3941e487,0xe541b401,0x3941b401,0xa2c3a2c3,0xe487e487,0xd3c5e513,0x8a5371cf,0x514b2885,0xc39d9a95,0x41094909,0x2843618d,0x929530c7,0x30c75801,0x90854001, +0x62516293,0x41896a91,0x4189498b,0x49cb3105,0x6ad3520d,0x5a4f6251,0x62516251,0x72d33907,0x73537353,0x49c57353,0x7acb7acb,0x735349c5,0x735349c5,0x7acbfdd7,0x7acb7353,0x49c5fea7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x00006a8d,0x00000000,0x00000000,0x00000000,0x934fb495,0x934f934f,0x7acb934f,0x934f8b4d,0x8b4d934f,0x8b4d8b4d,0x934f934f,0x6a07934f,0xa529ad6b,0xa529a529,0x9ce7a529,0x9ce79ce7,0x9ce79ce7,0x9ce79ce7,0x94a59ce7,0x7bdf94a5,0x00000000,0x00000000,0x00000000,0xf8010000,0x0000a801,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3d3c5,0xa2c3a2c3,0xa2c3a2c3,0xb4013941,0xa2c3e541,0xd3c5e487,0xa2c3a2c3,0xa2c3a2c3,0x104371cf,0x8843598d,0xab978043,0xa2d79b13,0x71cfb35b,0x4109514b,0x08432885,0xdd1fdc21, +0x9c1d6ad3,0x49cb72d3,0x62915a0f,0x3105498b,0x41894189,0x31056251,0x31053105,0x6251624f,0xc451fdd7,0x73537acb,0x7acb49c5,0x735349c5,0xfdd77353,0x7acbc451,0x735349c5,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x000049c9,0x00000000,0x00000000,0x00000000,0x8b4dac51,0x7a897a89,0x82cb7a89,0x8b4d828b,0x7a897a89,0x62497a89,0x8b4d82cb,0x6a078b4d,0x9ce7a529,0x94a594a5,0x94a594a5,0x9ce794a5,0x8c6394a5,0x8c638c63,0x94a594a5,0x842194a5,0x00000000,0x00000000,0x00000000,0x93910000,0x00003947,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe513d3c5,0xe487e487,0xe487e487,0x3941a2c3,0xa2c3a2c3,0xa2c3e487,0xd3c5e487,0xd3c5d3c5,0x49097a11,0x8043c39d,0x30c76001,0x4001a2d7,0x8211e561,0x598dbc19,0xd3df514b,0x58015801, +0x520d4149,0x624f51cb,0x83577b15,0x39077b15,0x7b15520d,0x3947418b,0x31053105,0x6a914149,0xfffffdd7,0x49c5fea7,0x49c57353,0xfdd77353,0xc4517acb,0xc451ffff,0x735349c5,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x628d0000,0x00003947,0x00000000,0x00000000,0x00000000,0x8b4d318d,0x8b4d828b,0x934f934f,0xa4118b4d,0x8b4d7a89,0x8b4d8b4d,0xa4518b4d,0x6a078b4d,0x9ce74a53,0x9ce794a5,0x9ce79ce7,0x9ce79ce7,0x94a58c63,0x94a594a5,0x9ce794a5,0x7bdf94a5,0x00000000,0x00000000,0x00000000,0x93910000,0x00004189,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487a2c3,0xa2c3d3c5,0xa2c3a2c3,0xa2c3e513,0xa2c3e487,0xd3c5e513,0xe487a2c3,0xd3c5e513,0x78434909,0x8a53ab55,0x104371cf,0x6843a2d7,0x71cf8a53,0x18437a11,0x4909618d,0x79cf7043, +0x41894189,0x72d36a93,0x31053105,0x418972d3,0x6a93498b,0x5a4f6a93,0x31056251,0x6a933105,0x7acb7acb,0x735349c5,0x73537353,0x73537353,0x7acb49c5,0x7acbc451,0x735349c5,0x735349c5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6acf0000,0x00003947,0x00000000,0x00000000,0x00000000,0x728b6b5b,0x7acb6249,0x728b728b,0x938f728b,0x7acb6249,0x7acb7acb,0x934d728b,0x51c7728b,0x94a58421,0x94a58c63,0x8c6394a5,0x94a58c63,0x94a58c63,0x8c638c63,0x94a58c63,0x7bdf8c63,0x00000000,0x00000000,0x00000000,0x9bd50000,0x00004189,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3a2c3,0xe487d3c5,0xa2c3e487,0xa2c3e487,0xd3c5e487,0xe487d3c5,0xd3c5a2c3,0xa2c3e487,0x3843598d,0x8253ab19,0x1843618d,0x58018a53,0x71cf9ad7,0x30432885,0x4909bb5b,0x30c73843, +0x6251520d,0x7b153947,0x31056251,0x49cb624f,0x39476251,0x6a9393db,0x6a93624f,0x498b8b99,0x49c57353,0x7acb7353,0x735349c5,0xfdd7fdd7,0x49c57353,0x49c57acb,0x7acb7353,0x73537353,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6acf0000,0x00003947,0x00000000,0x00000000,0x00000000,0x934fb495,0x934f82cb,0x8b4d934f,0xa411934f,0x8b4d7a89,0x8b4d8b4d,0x938f8b4d,0x7209934f,0x94a594a5,0x94a58c63,0x94a594a5,0x9ce794a5,0x94a58c63,0x94a594a5,0x94a594a5,0x7bdf94a5,0x00000000,0x00000000,0x00000000,0x93930000,0x00003947,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3c5d3c5,0xe487d3c5,0xa2c3e487,0xa2c3e487,0xe487e513,0xe487a2c3,0xa2c3e487,0xd3c5e487,0xa2d7c39d,0x30c72885,0x18432885,0x580161cf,0x18434109,0x7043c39d,0x71cf8a53,0x598d8a8f, +0x72d33105,0x72d33105,0x62513107,0x4189624f,0x5a0f4189,0x6ad3498b,0x5a4f624f,0x51cd49cb,0x73537353,0xc451fdd7,0x735349c5,0x7acb49c5,0x7353ffff,0x735349c5,0xc451fdd7,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x00006a8d,0x00000000,0x00000000,0x00000000,0x8b4dac93,0xa4537acb,0xa453a453,0xa411a453,0xa451934f,0xa411a451,0xa411a411,0x72098b4d,0x94a594a5,0x9ce78c63,0x9ce79ce7,0x9ce79ce7,0x9ce794a5,0x9ce79ce7,0x9ce79ce7,0x739d94a5,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003987,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487d3c5,0xe487e513,0xd3c5a2c3,0xa2c3d3c5,0xe487e513,0xa2c3d3c5,0xe487e487,0xd3c5a2c3,0x8253cbdf,0xcb9d618d,0xaad77843,0x1843598d,0x988561cf,0x5801b35b,0x58019ad7,0x30c77a11, +0x8b994149,0x3107624f,0x31053105,0x414972d3,0x7b155a0f,0x418b8357,0x4189498b,0x41894189,0xfdd77353,0xffffc451,0x49c5fea7,0x49c57353,0x49c5c451,0xfdd77353,0xffffc451,0x49c5c451,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x00006a8d,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d8b4d,0x934f8b4d,0x8b4d934f,0x934f934f,0x8b4d8b4d,0x934f934f,0x7209934f,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x739d94a5,0x00000000,0x00000000,0x00000000,0x9bd30000,0x00003947,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487a2c3,0xd3c5e487,0xe487a2c3,0xa2c3d3c5,0xe487d3c5,0xa2c3e487,0xe487d3c5,0xa2c3e487,0x9295698d,0xab192043,0x69cf5801,0x38435801,0x38434909,0x6843ab97,0x8a5392d7,0x30c72885, +0x5a4f51cd,0x31058357,0x418b49cd,0x31078b99,0x7b154189,0x5a0f5a4f,0x41494149,0x7b1549cb,0x7acb7353,0xc4517acb,0x7acb7acb,0x735349c5,0x49c549c5,0x7acb7353,0x7acb7acb,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x93910000,0x0000628d,0x00000000,0x00000000,0x00000000,0x51c77acb,0x59c751c7,0x51c751c7,0x51c759c7,0x51c751c7,0x51c751c7,0x51c74987,0x51c751c7,0x7bdf8421,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003145,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3a2c3,0xd3c5a2c3,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0x698d69cf,0x38c74801,0x184358c5,0x38432885,0xab97a2d7,0x92914909,0x38c738c7,0x514b38c7, +0x5a0f8357,0x72d36a91,0x7b175a0f,0x3907498b,0x31053907,0x49cd5a0f,0x31053105,0x8b998357,0x49c57353,0x49c549c5,0x49c549c5,0x73537353,0x73537353,0x49c57353,0x49c549c5,0x49c549c5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18851085,0x10851085,0x18c71885,0x10851085,0x18c718c7,0x10851043,0x18c718c7,0x10851085,0x39cf39cf,0x39cf39cf,0x42114211,0x39cf39cf,0x42114211,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c31841,0x51c73103,0x31031041,0x10414987,0x28c328c3,0x390528c3,0x39053103,0x51c728c3,0xef77b5ad,0xef79ef79,0xbdedef79,0xdef5ef79,0xe779e6f5,0xffffffff,0xef39ffff,0xb5abef79,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3, +0xa2c3a2c3,0xa2c3d3c5,0xf689e4c5,0xa2c3d3c5,0xd3c5a2c3,0xa2c3e4c5,0xd3c5d3c5,0xa2c3a2c3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc6310000,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0x0000c631,0xc6310000,0xdef7def7,0xdef7def7,0x7901def7,0x60816081,0xdef7def7,0xdef7def7,0x0000c631, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x83110000,0x00008b8f,0x00000000,0x18c71885,0x21092109,0x18c720c7,0x18851885,0x10851085,0x18851085,0x10851043,0x18851885,0x42114211,0x4a534a53,0x42114211,0x42114211,0x39cf39cf,0x421139cf,0x39cf318d,0x421139cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c31041,0x08013105,0x51871041,0x28c31041,0x10415187,0x518728c3,0x39051881,0x49871881,0xe779f779,0xdeb5def5,0xe779deb5,0xef39e779,0xef77e779,0xef79e779,0xef79ef77,0xef79f777,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xa2c3e487, +0xe513a2c3,0xe4c5e487,0xffcff7cb,0xd3c5f6cd,0xf6cda2c3,0xe4c5ffcf,0xe487d3c5,0xa2c3e487,0xd6b50000,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0x0000d6b5,0xc6310000,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0x0000c631,0x92470000,0xef7b7901,0x79017901,0x79017901,0x79017901,0x79017901,0x79017901,0x00009247, +0xa2890000,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x520b0000,0xa529a529,0xa529a529,0x20c720c7,0x18851885,0x20c720c7,0x188518c7,0x20c718c7,0x18c718c7,0x210920c7,0x18c718c7,0x4a534211,0x42114211,0x4a534a53,0x42114211,0x4a534211,0x42114211,0x4a534a53,0x42114211,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c31001,0x104128c1,0x518728c3,0x28c31041,0x10415187,0x390528c3,0x39051881,0x51871881,0xefb9d6f7,0xef79e739,0xe6f5ef79,0xdeb5ef79,0xdeb7def5,0xb5ade779,0xe779ef79,0xdef5deb5,0xd3c5a2c3,0xa2c3e487,0xe487a2c3,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487e487,0xa2c3e487,0xd3c5a2c3,0xa2c3e487,0x28012801,0xe487e487,0xe513a2c3,0xa2c32801,0xe487e487,0xa2c3e487, +0xd3c5a2c3,0xed85e487,0x48014801,0xf6cdffcf,0xffe5e4c5,0xed854801,0xe487f6cd,0xa2c3e487,0xdef70000,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0x0000def7,0xc6310000,0xc631ef7b,0xdef7c631,0xc631ef7b,0xdef7c631,0xc631ef7b,0xdef7c631,0x0000c631,0x92470000,0x81017901,0x79018101,0x81017901,0x79017901,0x81018101,0x79018101,0x00009247, +0xa2890000,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa529a529,0x6b5b6b5b,0x6b5b6b5b,0x18851885,0x20c718c7,0x18851885,0x20c71885,0x18851085,0x20c720c7,0x18851885,0x20c72109,0x39cf4211,0x4a534211,0x39cf4211,0x4a534211,0x421139cf,0x4a534a53,0x39cf4211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x10413103,0x104128c3,0x39053905,0x28c31041,0x10415187,0x518728c3,0x51c71041,0x39051041,0xffffef79,0xb5ede779,0x10c541cf,0x398f20c9,0xf779ef39,0xefb9ef39,0xef79ef79,0xef79def5,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xe513d3c5,0xe513a2c3,0xa2c3e487,0xe487e513,0xa2c3d3c5,0xd3c5a2c3,0xa2c3e487,0x40812801,0xe5132801,0x2801a2c3,0x28012801,0xe487a2c3,0xa2c3d3c5, +0xd3c5a2c3,0xe4c5f6cd,0xb50d4801,0xffe54801,0x4801ed85,0x48014801,0xf6cded85,0xa2c3d3c5,0xdef70000,0xdef7ef7b,0xd6b5def7,0xdef7def7,0xdef7def7,0xdef7ef7b,0xef7bdef7,0x0000def7,0xc6310000,0xa289c631,0xc631a289,0xa289c631,0xc631a289,0xa289c631,0xc631a289,0x0000c631,0x92470000,0x60816081,0x60816081,0x79018101,0x81018101,0x60816081,0x60816081,0x00009247, +0xa2890000,0xbac9bac9,0xbac9a289,0xa289bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xa529a529,0x6b5b6b5b,0x5a4d4189,0x00000000,0x188518c7,0x18851085,0x18c718c7,0x10431043,0x18c71085,0x10851085,0x18c718c7,0x10431085,0x42114211,0x421139cf,0x42114211,0x318d39cf,0x421139cf,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x104130c3,0x28c33103,0x39053905,0x28c33103,0x10413103,0x518730c3,0x51871041,0x39051041,0xef79ef39,0xb5adb5ad,0x39cddf35,0x20c939cf,0xe77939cf,0xd6f5def5,0xe6b5def5,0xdeb541cf,0xd3c5a2c3,0xd3c5e487,0xe513a2c3,0xe487d3c5,0xe487a2c3,0xa2c3d3c5,0xe487e513,0xa2c3d3c5,0xd3c5a2c3,0x2801a2c3,0x40814081,0xa2c34081,0x2801a2c3,0x40814081,0xa2c32801,0xa2c3d3c5, +0xd3c5a2c3,0x4801ed85,0xb54db54d,0xed85bd8d,0x4801ed85,0xb54dbd8d,0xed854801,0xa2c3d3c5,0xdef70000,0xe98def7b,0xef7be8c7,0xef7bef7b,0xe8c7ef7b,0xef7bd6b5,0xef7bef7b,0x0000def7,0x92470000,0xa289a289,0xa289aac9,0xa289a289,0xa289aac9,0xa289a289,0xa289aac9,0x00009247,0x92470000,0x79017901,0x71017901,0x60816081,0x60816081,0x71016081,0x79017901,0x00009247, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x83110000,0xa529520b,0x6b5b6b5b,0x00000000,0x8b8f49c9,0x00000000,0x10431085,0x20c71085,0x10431085,0x18851085,0x10431085,0x18851885,0x10851043,0x18851085,0x318d39cf,0x4a5339cf,0x318d39cf,0x39cf39cf,0x318d39cf,0x421139cf,0x39cf39cf,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c33103,0x28c33103,0x28c35187,0x30c328c3,0x10413103,0x498528c3,0x39051041,0x28c31041,0x420f39cf,0xffffef79,0xf779ffff,0xffffef79,0xef79ffff,0xffffffff,0x39cfef79,0x18c518c7,0xe513a2c3,0xd3c5e487,0xe513a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xe487e513,0xa2c3d3c5,0xe513a2c3,0x2801a2c3,0x40814081,0xa2c34081,0x2801a2c3,0x40814081,0xa2c34081,0xa2c3d3c5, +0xe513a2c3,0x4801a2c3,0xbdcdbd8d,0xa2c3bdcf,0x4801ed85,0xbdcdbdcf,0xed85bd8d,0xa2c3f689,0xdef70000,0xe8c7ef7b,0xef7be8c7,0xef7bef7b,0xef7bd6b5,0xdef7ef7b,0xef7bef7b,0x0000def7,0x92470000,0xbac9aac9,0xaac9bac9,0xbac9aac9,0xaac9bac9,0xbac9aac9,0xaac9bac9,0x00009247,0x92470000,0x81017901,0x79018101,0x81017901,0x79018101,0x81017901,0x79018101,0x00009247, +0xa2890000,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xa289bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x520b0000,0x6b5ba529,0x00000000,0x00000000,0x8311624b,0x00000000,0x21092109,0x18c720c7,0x18851885,0x18c71885,0x210920c7,0x188518c7,0x21092109,0x18c718c7,0x4a534a53,0x42114211,0x42114211,0x42114211,0x4a534211,0x42114211,0x4a534a53,0x42114211,0x00000000,0x00000000,0x00000000,0x50010000,0x00004801,0x00000000,0x00000000,0x00000000, +0x390528c3,0x31031881,0x28c14987,0x104128c3,0x10414985,0x20813905,0x39050801,0x31031041,0xe6f339cf,0xe739deb3,0xbdedef79,0xdeb5ef37,0xdef5d6f5,0xef39ef79,0xef39b5ad,0xef79ef39,0xe513a2c3,0xe487e487,0xe513a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xe487d3c5,0xa2c3a2c3,0xe513a2c3,0x2801a2c3,0x40814081,0xa2c34081,0x2801a2c3,0x40814081,0x40814081,0xa2c3a2c3, +0xe513a2c3,0x4801a2c3,0xc60fbdcf,0xa2c3c64f,0x4801ed85,0xc60fc64f,0xbd8dbdcf,0xa2c3ed85,0xdef70000,0xef7bef7b,0xd6b5ef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0xef7bdef7,0x0000def7,0x92470000,0xbac9bac9,0xbac9bac9,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0x00009247,0x92470000,0x81018101,0x81018101,0x71018101,0x81018101,0x81018101,0x81017101,0x00009247, +0xa2890000,0xbac9bac9,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xa289bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xa5290000,0x5a4d6b5b,0x00008b8f,0x00000000,0x624b0000,0x00008b8f,0x18851885,0x21092109,0x18c718c7,0x20c720c7,0x10851085,0x20c718c7,0x18c718c7,0x20c720c7,0x39cf39cf,0x4a534a53,0x42114211,0x4a534a53,0x39cf39cf,0x4a534211,0x42114211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x48010000,0x00002801,0x00000000,0x00000000,0x00000000, +0x51873103,0x31031041,0x104151c7,0x10415187,0x10015187,0x18813905,0x390528c3,0x31031041,0xbdade779,0xef77ffff,0xdef5ef39,0xe779def5,0xbdedffff,0xef79e779,0xdef5ffff,0xd6b7def5,0xe487a2c3,0xe487e487,0xe487a2c3,0xe487e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xa2c3a2c3,0xe487a2c3,0xa2c3e487,0x40814081,0xa2c3a2c3,0xa2c3a2c3,0x40814081,0x40814081,0xa2c3a2c3, +0xe487a2c3,0xa2c3e487,0xc64fc60f,0xe4c5a2c3,0xa2c3e4c5,0xc64fce91,0xbdcdc60f,0xa2c3a2c3,0xdef70000,0xef7be8c7,0xdef7ef7b,0xe98def7b,0xd6b5e8c7,0xef7bdef7,0xef7bef7b,0x0000def7,0x92470000,0x92479247,0x92479247,0x92479247,0x92479247,0x92479247,0x92479247,0x00009247,0x92470000,0x60816081,0x60816081,0x60816081,0x60816081,0x60816081,0x60816081,0x00009247, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b5ba529,0x624b0000,0x8b8f8351,0x00000000,0x624b0000,0x00008311,0x18c718c7,0x10851085,0x18c720c7,0x18851085,0x18851085,0x10431085,0x18851885,0x10851085,0x42114211,0x39cf39cf,0x42114a53,0x39cf39cf,0x421139cf,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x7b0f0000,0x000049c9,0x00000000,0x00000000,0x00000000, +0x518728c3,0x31051041,0x10414985,0x104128c3,0x104128c3,0x10414985,0x31033103,0x39051041,0xdef5deb5,0xffffdeb5,0xef79ffff,0xfffff779,0xef79eef7,0xef39f779,0xefb9e779,0xdef5d6f5,0xe487a2c3,0xe487e487,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xd3c5e487,0xe487a2c3,0xa2c3d3c5,0xe487a2c3,0xe487e487,0xa2c3a2c3,0xd3c5a2c3,0xa2c3a2c3,0xa2c3a2c3,0xa2c3a2c3,0xa2c3d3c5, +0xe487a2c3,0xffcff6cd,0xed85e4c5,0xd3c5e4c5,0xe4c5ed85,0xed85e4c5,0xed85e4c5,0xa2c3f689,0xdef70000,0xdef7ef7b,0xdef7ef7b,0xe8c7ef7b,0xdef7e8c7,0xe98ddef7,0xef7be8c7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9a289,0xbac9a289,0xbac9bac9,0xa289bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b5ba529,0x00000000,0x8311624b,0x00008311,0x624b0000,0x00008311,0x18851085,0x20c71885,0x10431043,0x18c71885,0x18c71085,0x21092109,0x18c71885,0x21092109,0x421139cf,0x421139cf,0x39cf318d,0x42114211,0x421139cf,0x4a534a53,0x42114211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x93910000,0x00003947,0x00000000,0x00000000,0x00000000, +0x51c728c3,0x28c31841,0x49853103,0x30c31041,0x100130c3,0x10414987,0x49873103,0x39051041,0xe739ef77,0xe779ef79,0xdef5def5,0xdef5b5ed,0xdef3b5ed,0xef79d6f5,0xef77efbb,0xef39f77b,0xd3c5a2c3,0xe487e487,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xd3c5a2c3,0x2801a2c3,0x2801a2c3,0xa2c3a2c3,0xa2c32801,0x2801a2c3,0x2801a2c3,0xa2c3d3c5, +0xf689a2c3,0x4801ed85,0x4801ed85,0xed85ed85,0xed854801,0x4801ed85,0x4801ed85,0xa2c3f7cb,0xdef70000,0xdef7ef7b,0xef7be8c7,0xef7bef7b,0xdef7ef7b,0xe8c7ef7b,0xef7be8c7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9a289,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xa289bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xa5290000,0x00006b5b,0x00000000,0x624b0000,0x8b8f8311,0x00000000,0x83515a09,0x20c720c7,0x18c718c7,0x20c72109,0x18c718c7,0x20c720c7,0x18c71885,0x188518c7,0x18851085,0x4a534a53,0x42114211,0x4a534a53,0x42114211,0x42114a53,0x42114211,0x42114211,0x421139cf,0x00000000,0x00000000,0x00000000,0x93910000,0x00004189,0x00000000,0x00000000,0x00000000, +0x39051041,0x30c31041,0x498728c3,0x28c11001,0x28c31041,0x104151c7,0x51c730c3,0x49871041,0xefb9b5ed,0xdef5deb3,0xb5addef5,0xef79ef79,0xef77ef79,0xffffffff,0xe739ef79,0xef7bffff,0xd3c5a2c3,0xe487e487,0xd3c5a2c3,0xa2c3e487,0xe487a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xd3c5a2c3,0x28012801,0x28012801,0x28014081,0x40812801,0x28012801,0x28014081,0xa2c3a2c3, +0xf7cba2c3,0x48014801,0x48014801,0x4801d711,0xdf934801,0x48014801,0x4801ce4f,0xa2c3ed85,0xdef70000,0xdef7ef7b,0xef7bef7b,0xdef7d6b5,0xef7bef7b,0xef7bef7b,0xef7bdef7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0xa529520b,0x00006b5b,0x00000000,0x00000000,0x8311624b,0x00008b8f,0x6a8f4189,0x10851085,0x18c718c7,0x18851885,0x18c718c7,0x10851085,0x18c71085,0x10431043,0x18c71885,0x39cf39cf,0x42114211,0x39cf39cf,0x42114211,0x39cf39cf,0x421139cf,0x318d318d,0x421139cf,0x00000000,0x00000000,0x00000000,0x9bd50000,0x00004189,0x00000000,0x00000000,0x00000000, +0x39051041,0x28c31041,0x51873105,0x51871041,0x28c30801,0x104151c7,0x49873103,0x51c71041,0xef79ef79,0xe779e739,0xbdadef79,0xb5edb5ed,0xef79ef79,0xdef5d735,0xb5adb5ed,0xdef7def5,0xa2c3a2c3,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xe487d3c5,0xe513a2c3,0xa2c3e487,0xa2c3a2c3,0x40812801,0x40814081,0x40814081,0x40814081,0x40814081,0x40814081,0xa2c34081, +0xa2c3a2c3,0xc60f4801,0xced1c64f,0xdf51d711,0xdf51df93,0xced1d711,0xc60fc64f,0xed85bd8d,0xdef70000,0xdef7ef7b,0xef7bdef7,0xef7bef7b,0xe8c7e98d,0xef7bdef7,0xef7bdef7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9a289,0xbac9bac9,0xbac9a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83515a4d,0x00008b8f,0x00000000,0x624b0000,0x6a8f624b,0x6b5b6b5b,0x18851885,0x10431043,0x20c720c7,0x10431085,0x18c71885,0x18c718c7,0x21092109,0x104318c7,0x39cf39cf,0x39cf318d,0x4a534a53,0x318d39cf,0x42114211,0x42114211,0x4a534a53,0x39cf4211,0x00000000,0x00000000,0x00000000,0x93930000,0x00003947,0x00000000,0x00000000,0x00000000, +0x51871001,0x28c31001,0x51873103,0x30c30801,0x28c31041,0x10414987,0x28c130c3,0x51871041,0xffffe77b,0xef7bffff,0xdef5d6f5,0xef79d735,0xe777ef79,0xef39ef7b,0xef79ef39,0x420f39cf,0xa2c3a2c3,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xe487e487,0xe513a2c3,0xa2c3e487,0xa2c3a2c3,0x2801a2c3,0xa2c34081,0x40814081,0x4081a2c3,0x40814081,0x4081a2c3,0xa2c34081, +0xa2c3a2c3,0x4801e4c5,0xe4c5c64f,0xd711ced1,0xd711e4c5,0xce91ced1,0xbdcfa2c3,0xed85bd8d,0xdef70000,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xe8c7e8c7,0xdef7def7,0xef7bdef7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xa289bac9,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x5a094189,0x8311624b,0x8b8f8b8f,0x00000000,0x6b5b4189,0xa529a529,0x18c718c7,0x210920c7,0x18c720c7,0x188518c7,0x18851043,0x20c718c7,0x18851885,0x210920c7,0x42114211,0x4a534a53,0x42114a53,0x42114211,0x4211318d,0x4a534211,0x42114211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003987,0x00000000,0x00000000,0x00000000, +0x31031041,0x310328c3,0x390528c3,0x31031881,0x28c33103,0x104128c3,0x498530c3,0x100151c7,0xdef539cf,0xefb7d6f5,0xef77ef79,0xb5abe77b,0xef79def5,0xef39ef39,0x39d141cf,0x18c518c7,0xa2c3a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xd3c5e487,0xe513a2c3,0xa2c3e487,0xa2c3a2c3,0x2801a2c3,0xe487a2c3,0xa2c34081,0xe487a2c3,0x4081e487,0xe513a2c3,0xa2c3a2c3, +0xa2c3a2c3,0x4801a2c3,0xe487e4c5,0xe4c5ce91,0xe487a2c3,0xc64ff6cd,0xe513a2c3,0xa2c3a2c3,0xdef70000,0xe8c7ef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9bac9,0xa289bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x624b0000,0x624b624b,0x6a8f8b8f,0xa5296b5b,0x8311520b,0x20c720c7,0x18851885,0x18c720c7,0x18c718c7,0x20c72109,0x10851085,0x18c718c7,0x10851885,0x4a534a53,0x42114211,0x42114a53,0x42114211,0x42114a53,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x9bd30000,0x00003947,0x00000000,0x00000000,0x00000000, +0x28c31001,0x10414987,0x39053103,0x10411881,0x28c34985,0x10015187,0x390528c3,0x28c31041,0x39cf18c7,0xef7931cf,0xffffef79,0xffffffff,0xdef5ef39,0x39cf39cf,0xdef7bdad,0x18871907,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487a2c3,0xa2c3e487,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487a2c3,0xa2c3e487, +0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487a2c3,0xa2c3e487,0xd6b50000,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0x0000d6b5,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x418949c9,0xa5296b5b,0x00008311,0x10851085,0x18c720c7,0x18851085,0x20c720c7,0x18851885,0x20c718c7,0x10851085,0x20c720c7,0x39cf39cf,0x42114a53,0x39cf39cf,0x4a534a53,0x39cf4211,0x4a534211,0x39cf39cf,0x4a534211,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003145,0x00000000,0x00000000,0x00000000, +0x28c328c3,0x10413905,0x28c328c1,0x104128c3,0x310328c3,0x080128c3,0x28c328c3,0x390528c3,0xef79ef39,0x39cfef79,0xdef5def5,0xef79e6f7,0xef7bef79,0xe6f5d6b5,0xffffdeb5,0xf779ffff,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3, +0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x99499149,0x91499149,0xa98ba14b,0x99499149,0xa94ba94b,0x91498909,0xa14ba14b,0x89099149,0xd3a5d3a3,0xd363d361,0xdca9dc27,0xd3a3d3a3,0xdc69dc69,0xd361cadf,0xdc27dc27,0xcb1fd361,0x84218421,0x84218421,0x84218421,0x94a594a5,0x94a57bdf,0x84218421,0x84218421,0x84218421, +0x9ce70000,0x4a530000,0x9ce70000,0x00004a53,0x00009ce7,0x4a539ce7,0x9ce70000,0x9ce70000,0x9ce7318d,0x4a53318d,0x9ce7318d,0x318d4a53,0x318d9ce7,0x4a539ce7,0x9ce7318d,0x9ce7318d,0x80438043,0x88438043,0x80438003,0x90438843,0x80438883,0x80438003,0x88438043,0x80438845,0x78418043,0x90c98041,0x888590c7,0x70018043,0xad6bb5ab,0xce31be2f,0x9d27b5ad,0xb5ab9ce7, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x83110000,0x6b5ba529,0x72cd5a4d,0xa413a413,0xac55ac55,0x6a8f8351,0xa5296b5b,0x00008311,0xa94ba14b,0xb98bb98b,0xa94bb18b,0x9949994b,0x89099149,0x99499949,0x89098109,0xa14b9949,0xdc69dc27,0xe56fe52d,0xdc69dceb,0xd3e5d3e5,0xcb1fd363,0xd3e5d3a3,0xd321ca9d,0xdc27d3a5,0xad6b8421,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b, +0x8c639ce7,0x4a538c63,0x9ce7318d,0x318d0000,0x9ce70000,0x4a538c63,0x00000000,0x8c630000,0x8c639ce7,0x4a538c63,0x9ce7318d,0x318d318d,0x9ce7318d,0x4a538c63,0x318d318d,0x8c63318d,0x80438043,0x90858885,0x90859085,0x98879085,0x88459885,0x98878843,0xa0c7a0c7,0xa0c9a087,0x98c5a109,0x99098803,0x88439949,0x70018003,0xd6b5c633,0xf7bde77b,0xbdadd6b5,0x9d29b56b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x4a530000,0x4a534a53,0x4a534a53,0x00004a53,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x520b41c9,0x624b624b,0x624b624b,0x418949c9,0xa5296b5b,0x0000520b,0xb18bb18b,0xa14b9949,0xb18bb18b,0x9949a14b,0xb18ba94b,0xa94ba94b,0xb98bb18b,0xa94ba94b,0xe4ebdceb,0xdc27d3e5,0xe4ebe4ed,0xd3e5dc27,0xe4ebdc69,0xdc69dc69,0xe52de52d,0xdc69dc69,0x9ce78421,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b, +0x9ce70000,0x42110000,0x00009ce7,0x00009ce7,0x00009ce7,0x42119ce7,0x9ce70000,0x9ce74a53,0x9ce7318d,0x318d318d,0x318d9ce7,0x318d9ce7,0x318d9ce7,0x318d9ce7,0x9ce7318d,0x9ce74a53,0x88438043,0xb18da94b,0xa98da98d,0xb18db1cd,0xa14ba98d,0xa94ba14b,0xb1cfb1cf,0xb1cfb1cf,0xa98db1cf,0xba5590c5,0xa109b211,0x68017803,0xf7bdc671,0xffffffff,0xd675f7bf,0xa4e7b5ab, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x4a530000,0xc6314a53,0xc631c631,0xc631c631,0x4a53c631,0x00004a53,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x9949a14b,0xb18ba94b,0x99499949,0xb18ba14b,0x994b9149,0xb18bb18b,0x9949a14b,0xb18bb98b,0xd3a5dc27,0xe4ebdca9,0xd3a5d3e5,0xe4ebdc27,0xd3e5d3a3,0xe4ebe4eb,0xd3a5dc27,0xe4ebe56f,0xb5ad8421,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529, +0x00009ce7,0x00009ce7,0x9ce70000,0x00005295,0x00008c63,0x318d4a53,0x4a539ce7,0x00009ce7,0x318d9ce7,0x318d9ce7,0x9ce7318d,0x318d5295,0x318d8c63,0x318d4a53,0x4a539ce7,0x318d9ce7,0x90458043,0xa98da98b,0xa98da98d,0xb18da98d,0xa98da98d,0xa14ba94b,0xb18da94d,0xb18db18d,0xa98ba98d,0xc2959087,0x990bb211,0x70018043,0xffffce73,0xffffffff,0xe739f7bd,0x9ce9bdef, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x4a530000,0xc6314a53,0xef7bc631,0xef7be8c7,0xef7bef7b,0xc631ef7b,0x4a53c631,0x00004a53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0xa14ba94b,0xa14b9149,0xa94ba98b,0x81098909,0xa14b9949,0x91499949,0xa98ba98b,0x89099149,0xdc27dc69,0xdc27d3a3,0xdca9dca9,0xca9dcadf,0xdc27d3a5,0xd321d3a3,0xdca9dca9,0xcadfd361,0xb5ad8421,0xa529b5ad,0xa529a529,0x94a594a5,0x94a594a5,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad, +0x00004a53,0x8c630000,0x00009ce7,0x4a539ce7,0x9ce78c63,0x00000000,0x9ce70000,0x00004211,0x318d4a53,0x8c63318d,0x318d9ce7,0x4a539ce7,0x9ce78c63,0x318d318d,0x9ce7318d,0x318d318d,0x98878041,0xa94ba94d,0xa14b9909,0xa14ba94b,0xa14ba94b,0x9909990b,0x99099909,0x990b9909,0x90c7994b,0xba959085,0x9107b211,0x70017843,0xffffd6b5,0xffbfffff,0xf77bef3b,0xa529ce33, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6314a53,0xe8c7c631,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0xc631ef7b,0x4a53c631,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83516acf,0x8b8fac55,0x8b8f8b8f,0x6acf624b,0xa5296b5b,0x00008311,0x89098909,0xb18b9149,0x81099149,0x99499149,0x81099149,0x99499949,0x99498909,0x99499149,0xcadfd321,0xe4ebd3a3,0xca9dd3a3,0xd3a5d3a3,0xca9dd3a3,0xd3e5d3a5,0xd3a3cb1f,0xd3e5d363,0xa5298421,0xad6bad6b,0x94a5ad6b,0x7bdf8421,0x84217bdf,0xad6bc631,0xa529a529,0x84219ce7, +0x00004a53,0x4a538c63,0x00004a53,0x4a530000,0x318d9ce7,0x4a539ce7,0x4a539ce7,0x00009ce7,0x318d4a53,0x4a538c63,0x318d4a53,0x4a53318d,0x318d9ce7,0x4a539ce7,0x4a539ce7,0x318d9ce7,0x98c78043,0xb18fb1cf,0x990998c9,0x908798c7,0x888788c7,0x80838845,0x808580c5,0x88858887,0x88858883,0xc2d59085,0x8085a10b,0x68017843,0xf7bdd6b7,0xf7bdffbd,0xef7bef7b,0xb5add6b5, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6314a53,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0xef7bef7b,0xef7be8c7,0x4a53c631,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x49c94189,0x624b5a09,0x624b624b,0x41895a09,0xa5296b5b,0x0000520b,0xb98bb98b,0xa94ba98b,0xa14ba14b,0xa14ba14b,0xb98bb18b,0x994ba94b,0xb98bb98b,0xa14ba94b,0xe56fe52d,0xdca9dceb,0xdc27dc27,0xdc27dc27,0xe56fdceb,0xd3e5dc69,0xe56fe56f,0xdc27dc69,0xb5ad94a5,0xad6bad6b,0x94a5ad6b,0x500194a5,0xb5ad5001,0xad6bce73,0xb5adb5ad,0x7bdfb5ad, +0x9ce74211,0x8c638c63,0x00004a53,0x00009ce7,0x9ce74211,0x00004a53,0x4a538c63,0x9ce70000,0x9ce7318d,0x8c638c63,0x318d4a53,0x318d9ce7,0x9ce7318d,0x318d4a53,0x4a538c63,0x9ce7318d,0x90858043,0x994bb1cd,0x90c590c7,0x88859087,0x88838885,0x80858885,0x88c58885,0x88858885,0x90858885,0xcb199085,0x80839909,0x68017001,0xf77dd6b5,0xef7df7bd,0xe77def7b,0xb5afd675, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6314a53,0xef7bc631,0xef7be8c7,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xc631ef7b,0x4a53c631,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x99499949,0xb98bb98b,0xa94ba94b,0xb18bb18b,0x99499149,0xb18ba94b,0xa94ba94b,0xb18bb18b,0xd3a5d3a5,0xe56fe52d,0xdc69dc69,0xe4ebe4eb,0xd3a3d363,0xe4ebdca9,0xdc69dc69,0xe4ebe4eb,0xad6b8421,0xa529ad6b,0x842194a5,0x500194a5,0xb5ad4001,0xc631a529,0xa529a529,0x8421ad6b, +0x318d0000,0x00009ce7,0x9ce7318d,0x9ce70000,0x00009ce7,0x00009ce7,0x00008c63,0x00009ce7,0x318d318d,0x318d9ce7,0x9ce7318d,0x9ce7318d,0x318d9ce7,0x318d9ce7,0x318d8c63,0x318d9ce7,0x90458043,0x88859909,0x88858083,0x80858085,0x88858887,0x88858885,0x88858887,0x88858885,0x88878885,0xba538843,0x808590c7,0x68017001,0xefbbd6f7,0xef7df7bd,0xef7bef7b,0xb5adceb3, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce734a53,0xc631ef7b,0xef7bc631,0xef7bef7b,0xef7be8c7,0xc631ef7b,0xbdefc631,0x4a53bdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0xa94ba94b,0x99498909,0xa94bb18b,0x99499149,0x99499949,0x89099949,0x994ba14b,0x91499149,0xdc69dc69,0xd3a5d321,0xdc69e4eb,0xd3a5d3a3,0xd3e5d3a5,0xcb1fd3a3,0xd3e5dc27,0xd321d361,0xb5ad8421,0x9ce7b5ad,0x842194a5,0x500194a5,0xb5ad2801,0xce739ce7,0xb5adb5ad,0x94a5b5ad, +0x9ce70000,0x9ce74a53,0x0000318d,0x4a539ce7,0x00004a53,0x9ce70000,0x9ce74a53,0x9ce70000,0x9ce7318d,0x9ce74a53,0x318d318d,0x4a539ce7,0x318d4a53,0x9ce7318d,0x9ce74a53,0x9ce7318d,0x90458043,0x88879907,0x88858887,0x90858885,0x88858885,0x88858885,0x88858885,0x888588c5,0x88858885,0xb1cf8843,0x808590c7,0x68017003,0xf7bdd6b5,0xef7df7bb,0xef7bef7b,0xb56dce75, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce7338c3,0xef7bef7b,0xc631ef7b,0xc631c631,0xc631c631,0xbdefc631,0xbdefbdef,0x38c3bdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83516acf,0x8b8f8b8f,0x8b8f8b8f,0x6a8fa413,0xa5296b5b,0x00008311,0x994b9949,0xb18b9949,0x89098109,0xa14b994b,0xa94b9149,0xb98bb98b,0xa94ba14b,0xb98bb98b,0xd3e5d3a5,0xdcebd3e5,0xcadfcadf,0xdc67d3e5,0xdc69d3a3,0xe56fe56f,0xdc69dc27,0xe52de56f,0xa5298421,0x94a5a529,0xa5298421,0x580194a5,0xb5ad2801,0x9ce7a529,0xa529ce73,0x8421b5ad, +0x42119ce7,0x4a538c63,0x9ce70000,0x9ce70000,0x00004211,0x00009ce7,0x00004a53,0x4a539ce7,0x318d9ce7,0x4a538c63,0x9ce7318d,0x9ce7318d,0x318d318d,0x318d9ce7,0x318d4a53,0x4a539ce7,0x90858003,0x90c79907,0x88858885,0x80878885,0x88858885,0x88858885,0x88838885,0x888590c5,0x80858885,0xb1cf8843,0x888598c7,0x68017001,0xf77dd6b5,0xef7def7d,0xef7bef7b,0xb5add673, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924738c3,0xef7bce73,0xef7bef7b,0xce73ce73,0xbdefce73,0xbdefbdef,0xa289bdef,0x38c39247,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x49c94189,0x624b5a09,0x624b624b,0x41c9624b,0xa5296b5b,0x0000520b,0xb18bb18b,0xa94ba94b,0xb18bb98b,0xa94ba94b,0xb18bb18b,0xa14b9949,0xa14ba94b,0xa14b9149,0xe4ebe4eb,0xdc69dc69,0xe4ebe56f,0xdc69dc69,0xdcebe4eb,0xdc27d3e5,0xdc27dc69,0xdc27d361,0xad6b8421,0x94a5b5ad,0x9ce78421,0x580194a5,0xb5ad2801,0xa529a529,0xad6bce73,0x8421ad6b, +0x00008c63,0x42110000,0x4a539ce7,0x00000000,0x9ce70000,0x9ce74a53,0x9ce70000,0x4a53318d,0x318d8c63,0x318d318d,0x4a539ce7,0x318d318d,0x9ce7318d,0x9ce74a53,0x9ce7318d,0x4a53318d,0x88858043,0x90c79909,0x80858085,0x88858085,0x88878085,0x88878885,0x88858885,0x88859085,0x88858885,0xb1cf8043,0x88879107,0x68017801,0xe6f9c631,0xef7bef7b,0xdf39ef7b,0xad6bc631, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924738c3,0xa289a289,0xce73ef7b,0xce73ce73,0xbdefce73,0xbdefbdef,0xa289a289,0x38c39247,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x91499149,0xa14ba14b,0x99499949,0xa94ba98b,0x91499149,0xa94b9949,0x89098909,0xa94b9949,0xd3a3d361,0xdc67dc67,0xd3a5d3a5,0xdc69dca9,0xd3a3d363,0xdc69d3a5,0xcadfcadf,0xdc69d3e5,0xad6b7bdf,0x842194a5,0x9ce7a529,0x480194a5,0xb5ad2801,0x9ce7a529,0xce73a529,0x7bdfb5ad, +0x00000000,0x00009ce7,0x4a538c63,0x9ce70000,0x00004a53,0x8c639ce7,0x4a530000,0x42110000,0x318d318d,0x318d9ce7,0x4a538c63,0x9ce7318d,0x318d318d,0x8c639ce7,0x4a53318d,0x318d318d,0x90838041,0x888598c7,0x80858083,0x80438085,0x80437845,0x88858085,0x80858045,0x78457883,0x80837843,0xa98d7001,0x888590c7,0x68017041,0xdef7c631,0xef79deb7,0xd671def7,0xad6bb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924738c3,0xbac9bac9,0xa289aac9,0xa289c631,0xa289a289,0xaac9bdef,0xa289a289,0x38c39247,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x99499949,0x89098109,0xb18bb18b,0x81099149,0xa98ba14b,0xa94ba14b,0xb98bb98b,0x8909a94b,0xd3a5d3a5,0xcadfcadf,0xe4ede4eb,0xca9dd321,0xdca9dc27,0xdc69dc27,0xe56fe56f,0xcb1fdc69,0xa5298421,0x842194a5,0xa5299ce7,0x480194a5,0xb5ad2801,0xad299ce7,0xc631a529,0x8421a529, +0x8c634211,0x9ce78c63,0x9ce78c63,0x9ce7318d,0x9ce7318d,0x9ce70000,0x4a530000,0x0000318d,0x8c63318d,0x9ce78c63,0x9ce78c63,0x9ce7318d,0x9ce7318d,0x9ce7318d,0x4a53318d,0x318d318d,0x90437843,0x888590c7,0x80858885,0x78837845,0x80457883,0x78857845,0x80458045,0x80438083,0x80837885,0xa98b7001,0x8085a14b,0x68017003,0xdeb7c631,0xdef7def7,0xce73d6b5,0xad6bb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x38c30000,0x924738c3,0xbac99247,0xaac9bac9,0xaac9aac9,0x9247aac9,0x92479247,0x000038c3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83515a4d,0x8b8fac55,0xac55ac55,0x6a8f8b8f,0xa5296b5b,0x00008311,0xa94ba94b,0xb98bb18b,0xa94bb18b,0x9949a14b,0xa14b8109,0xb18ba94b,0xa14ba14b,0xb98bb18b,0xdc69dc69,0xe56fe52d,0xdc69e4eb,0xd3e5dc27,0xdc27cadf,0xe4ebdc69,0xdc27dc27,0xe52de4eb,0xb5ad8421,0xb5ada529,0xa5299ce7,0x400194a5,0xb5ad2001,0xce73ad29,0xad6bce73,0x94a5b5ad, +0x0000318d,0x00009ce7,0x00009ce7,0x4a539ce7,0x00000000,0x4a539ce7,0x42110000,0x00009ce7,0x318d318d,0x318d9ce7,0x318d9ce7,0x4a539ce7,0x318d318d,0x4a539ce7,0x318d318d,0x318d9ce7,0x88418003,0x88858885,0x88858885,0x80457885,0x80838085,0x80457845,0x78858085,0x80858083,0x80858085,0xa98b7801,0x808598c7,0x68017001,0xdef7ceb3,0xce73deb5,0xdeb7c6b3,0xb5adce33, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x38c30000,0x924738c3,0x92479247,0x92479247,0x38c39247,0x38c338c3,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x49c94189,0x5a096a8b,0x624b624b,0x4189624b,0xa5296b5b,0x0000520b,0xb18bb18b,0x994ba14b,0xa14bb18b,0xa94ba94b,0xb18bb98b,0x99499949,0xa94ba14b,0x91499949,0xe4ede4ed,0xd3e5dc27,0xdc27e4eb,0xdca9dc69,0xdcebe56f,0xd3a5d3a3,0xdc69dc27,0xd363d3a5,0xad6b8421,0xa529ad6b,0xb5ada529,0xc631b5ad,0xc631c631,0xb5adce73,0xa529ad6b,0x8421a529, +0x9ce74211,0x9ce70000,0x9ce74a53,0x42110000,0x00004a53,0x00008c63,0x9ce7318d,0x9ce70000,0x9ce7318d,0x9ce7318d,0x9ce74a53,0x318d318d,0x318d4a53,0x318d8c63,0x9ce7318d,0x9ce7318d,0x80438043,0x80437803,0x80418043,0x80858083,0x80857845,0x78038083,0x78417801,0x80437843,0x80038003,0x98857801,0x78038885,0x70017003,0xd673d6b3,0xb5adc5f1,0xce73b5af,0xb5edd6b5, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x38c30000,0x38c338c3,0x38c338c3,0x000038c3,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x91498909,0xa14bb18b,0x99499149,0xb18bb18b,0x9949a14b,0xb18ba94b,0x91499149,0xb18bb18b,0xd3a3cb1f,0xdc27e4eb,0xd3a5d363,0xe52de4eb,0xd3a5dc27,0xe4ebdc69,0xd3a3d363,0xe4ebdceb,0x84218421,0x84218421,0x94a57bdf,0x84218c63,0x84218421,0x84218421,0x84218421,0x84218421, +0x4a530000,0x318d0000,0x4a539ce7,0x00009ce7,0x9ce74a53,0x8c630000,0x0000318d,0x00008c63,0x4a53318d,0x318d318d,0x4a539ce7,0x318d9ce7,0x9ce74a53,0x8c63318d,0x318d318d,0x318d8c63,0x80418043,0x80438043,0x80437841,0x80438043,0x80438043,0x80038041,0x80438001,0x80438043,0x80438003,0x80037841,0x78018043,0x68017003,0xb5adb5af,0xa569b5ab,0xb5adad6b,0xbdafb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a671aed,0x12b11a67,0x12b11af1,0x22632263,0x1aad1aa9,0x2a631a69,0x22a52a63,0x122d2a61,0x32453205,0x32053205,0x3a873247,0x32453205,0x3a873a87,0x32053205,0x3a473a47,0x32053205,0x358b354b,0x354b354b,0x3e4d3dcb,0x358b354b,0x3e0d3e0d,0x354b350b,0x3e0b3e0b,0x350b354b,0x84218421,0x84218421,0x84218421,0x94a594a5,0x94a57bdf,0x84218421,0x84218421,0x84218421, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x80438043,0x80418003,0x80438003,0x80858043,0x78858045,0x80438083,0x80438043,0x80457885,0x80038043,0x80037843,0x80418043,0x80858043,0x78858085,0x80858045,0x78437843,0x80458085,0x80018043,0x80417801,0x8043994b,0x68018043,0xce75b5ad,0xce73ceb3,0xbdedb5ef,0xb5adb5af, +0xceb3bdad,0xce73ce73,0xbdedb5ef,0xbdadb5ad,0xceb5b5ad,0xce73ce75,0xbdafbdad,0xb5edb5ad,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x1a6d19f1,0x3be91ab1,0x123522ef,0x1aa71a2b,0x1aad1aa9,0x09af09af,0x1a271a67,0x122d122d,0x3a873247,0x42c73ac7,0x3a873a87,0x32453247,0x32053205,0x32453245,0x320529c5,0x32473245,0x3e0d3dcb,0x4e914e4f,0x3e0d3e4d,0x3dcb3dcb,0x350b354b,0x3dcb358b,0x350b2cc9,0x3dcb358b,0xad6b8421,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88c58043,0x88858885,0x88858885,0x80838885,0x80458085,0x80858045,0x88c58845,0x80458885,0x88858043,0x888588c5,0x88858885,0x80858885,0x78857885,0x78858085,0x88859087,0x80838885,0x88858885,0xb18d7801,0x8885a10b,0x68018045,0xef7bbdad,0xef7defbb,0xef7befbb,0xb5afceb3, +0xce73b5ef,0xef7bef7b,0xffffffff,0xf7fdffff,0xffbfffbd,0xf77bef7b,0xef7befbd,0xb5adce75,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12b1122d,0x2b671ab1,0x1a691af1,0x1a6719e7,0x1a692a63,0x09af1a2d,0x1a69092f,0x122d122d,0x3a873a87,0x32473245,0x3a873a87,0x32453a47,0x3a873a87,0x3a873a87,0x3ac73a87,0x3a873a87,0x464d3e4d,0x3dcb3dcb,0x464d464f,0x3dcb3e0b,0x464d3e0d,0x3e0d3e0d,0x4e4f464f,0x3e0d3e0d,0x9ce78421,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88858003,0x99099909,0x99099909,0x990798c9,0x88858885,0x804588c5,0x80438085,0x88858885,0x88858043,0x99099909,0x99079109,0x98c99909,0x88858885,0x80438887,0x80858083,0x88858085,0x78858885,0xa14b7001,0x88858083,0x68018887,0xce75b5ad,0xef7bef7b,0xef3bef7b,0xb5add673, +0xd6b3b5ad,0xef7def7d,0xef7bf77b,0xf77bef7b,0xf77bffff,0xf7bdefbb,0xf77befbb,0xb5adceb5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x122d122d,0x1ab11a6d,0x12311ab1,0x1aa31a2b,0x2a63122f,0x09af1a67,0x1a6709af,0x122d1a69,0x32453247,0x3a873a87,0x32453245,0x3a873247,0x32473205,0x3a873a87,0x32453247,0x3a8742c7,0x358b3dcb,0x464d3e4d,0x3d8b3dcb,0x464d3dcb,0x3dcb354b,0x464d464d,0x358b3dcb,0x464d4e91,0xb5ad8421,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x70016801,0x70016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0xbdefb5ad,0xce73d6b3,0xb5adce73,0xb5adb5ef, +0xb5edb5ad,0xce33ce73,0xb5adce73,0xb5adb5ad,0xbdefb5ef,0xce73d675,0xbdedce73,0xb5afb5ef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a6f19f1,0x1ab1122d,0x12331ab1,0x1a611a2d,0x1a27122f,0x2a631a69,0x09af2a63,0x122d1a67,0x32473a87,0x32473205,0x3a873a87,0x29c53205,0x3a473245,0x32053245,0x3a873a87,0x32053205,0x3dcb3e0d,0x3dcb354b,0x3e4d3e4d,0x2cc9350b,0x3e0b358b,0x354b358b,0x3e4d3e4d,0x350b354b,0xb5ad8421,0xa529b5ad,0xa529a529,0x94a594a5,0x94a594a5,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x934da493,0x934f8b4d,0x934f934f,0x8b4d8b4b,0x934d934d,0x8b4d834d,0x934d934d,0x5207938f,0x934fac53,0x938f834d,0x934f8b4f,0x8b4d8b0d,0x934f934d,0x830d8b4d,0x938d934f,0x8b4d934f,0x8b4b8b4d,0x934d934f,0x934f8b8f,0x8b4d934d,0x934d8b4d,0x934f8b0d,0x934d8b4d,0x59c78b4d, +0x934fac93,0x934f830d,0x934d934f,0x8b0d8b4d,0x934f938f,0x8b4d830d,0x934d934d,0x59c7938f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x122f1a6f,0x1a6f122d,0x1ab11aaf,0x1a69122f,0x2a63122f,0x232d1a27,0x09af1a67,0x122d1a67,0x2a053205,0x3a873205,0x29c53205,0x32453205,0x29c53205,0x32453245,0x32453205,0x32453205,0x3509350b,0x464d358b,0x2cc9354b,0x358b354b,0x2cc9354b,0x3dcb358b,0x358b350b,0x3d8b354b,0xa5298421,0xad6bad6b,0x94a5ad6b,0x7bdf8421,0x84217bdf,0xad6bc631,0xa529a529,0x84219ce7, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b0db495,0x6a096209,0x6a096a09,0x6a096a07,0x51c951c5,0x6a096a07,0x939159c7,0x5a078b4f,0x8b4dac95,0x6a0769c9,0x6a076a07,0x6a096a07,0x51c751c7,0x6a076a07,0x69c951c7,0x6a076a07,0x59c76209,0x6a076a07,0x6a0751c7,0x6a076a09,0x6a076a07,0x6a076a09,0x93916207,0x51c78b4f, +0x8b0db4d3,0x6a096a07,0x62096207,0x6a076a07,0x59c751c7,0x6a076a07,0x9bd159c7,0x59c78b4d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19af1a6f,0x19f111f3,0x1ab11a2d,0x1a691233,0x2a631aa5,0x22631a27,0x2aa31a67,0x19af1a67,0x42c73ac7,0x3a873a87,0x32473247,0x3a473247,0x42c73a87,0x32473a87,0x42c742c7,0x3a473a87,0x4e514e4f,0x3e4d3e4d,0x3dcb3dcb,0x3e0b3dcb,0x4e513e4d,0x3dcb3e0d,0x4e914e91,0x3e0b3e0d,0xb5ad94a5,0xad6bad6b,0x94a5ad6b,0xf80194a5,0xb5adf801,0xad6bce73,0xb5adb5ad,0x7bdfb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b0dac51,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0xac930000,0x51c7934f,0x8b4bac53,0x000059c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac930000,0x59c7934f, +0x8b4dac93,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0xac510000,0x51c7934d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a2b19af,0x1a6f126d,0x092f1a6f,0x122d1a69,0x1a671a69,0x1a29122f,0x2aa31a29,0x19af1165,0x32453245,0x42c73ac7,0x3a873a87,0x3a873a87,0x32453205,0x3a873a87,0x3a873a87,0x3a873a87,0x358b358b,0x4e914e4f,0x3e0d3e0d,0x464d464d,0x358b354b,0x464d3e4d,0x3e0d3e0d,0x464d464d,0xad6b8421,0xa529ad6b,0x842194a5,0xf80194a5,0xb5add001,0xc631a529,0xa529a529,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4facd5,0x000059c5,0x00000000,0x00000000,0x00000000,0x00000000,0xb4950000,0x6a07934f,0x8b4db495,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb4950000,0x6a09934f, +0x8b4fb495,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0xb4950000,0x6a098b4f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x226719af,0x12b119ef,0x19eb1a71,0x1231092f,0x1aab2269,0x1a692a63,0x2aa31a27,0x19af19af,0x3a873a87,0x32453205,0x3a873a87,0x32453205,0x32453245,0x32053245,0x32473247,0x32053205,0x3e0d3e0d,0x358b350b,0x3e0d464d,0x3d8b354b,0x3dcb358b,0x350b358b,0x3dcb3dcb,0x354b354b,0xb5ad8421,0x9ce7b5ad,0x842194a5,0xf80194a5,0xb5ada801,0xce739ce7,0xb5adb5ad,0x94a5b5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9b4dac53,0x00006a07,0x00000000,0x00000000,0x00000000,0x00000000,0xac530000,0x6a07934f,0x934fac53,0x00006a07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac510000,0x6a07934f, +0x938dac51,0x00006a07,0x00000000,0x00000000,0x00000000,0x00000000,0xac910000,0x6a09934f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19af19af,0x19f119eb,0x232b1a2f,0x1a2d2269,0x1a291a2b,0x2a631a2b,0x1a292a63,0x19af2aa3,0x32473245,0x3a873245,0x320529c5,0x3a473247,0x3a873205,0x42c742c7,0x3a873247,0x3ac742c7,0x3dcb358b,0x3e4d3d8b,0x350b34c9,0x3e0d3dcb,0x3e0d354b,0x4e914e91,0x3e0d3dcb,0x4e4f4e91,0xa5298421,0x94a5a529,0xa5298421,0xd00194a5,0xb5add001,0x9ce7a529,0xa529ce73,0x8421b5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19af3321,0x116d19a7,0x2aa519eb,0x092f2269,0x1a2919ed,0x2a632265,0x1a292a63,0x32e33321,0x3a873a87,0x3a873a87,0x3a8742c7,0x3a873a87,0x3a873a87,0x3a473245,0x32473a87,0x32473205,0x464d464d,0x3e0d3e0d,0x464d4e51,0x3e0d3e0d,0x3e4d464d,0x3e0b3dcb,0x3dcb3e0d,0x3dcb354b,0xad6b8421,0x94a5b5ad,0x9ce78421,0xd00194a5,0xb5adb001,0xa529a529,0xad6bce73,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22632aa3,0x11271a67,0x1a231165,0x092f19a9,0x1a6911eb,0x2a632227,0x22652263,0x2aa332e3,0x32053205,0x3a473a47,0x32453245,0x3a873a87,0x32053205,0x3a873245,0x2a052a05,0x3a873245,0x354b354b,0x3e0d3e0d,0x3d8b358b,0x3e0d3e4d,0x354b354b,0x3e0d358b,0x35093509,0x3e0d3d8b,0xad6b7bdf,0x842194a5,0x9ce7a529,0xf80194a5,0xb5add801,0x9ce7a529,0xce73a529,0x7bdfb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x2aa532e3,0x19a52a63,0x11691167,0x092f11ad,0x1a2b116d,0x1a671a69,0x22632a63,0x2aa32223,0x32453245,0x320529c5,0x3a873a87,0x29c53205,0x3a873247,0x3a873a47,0x42c742c7,0x32053a87,0x358b3d8b,0x350b34c9,0x464f464d,0x2cc9354b,0x3e4d3dcb,0x3e0d3e0b,0x4e914e91,0x350b3e0d,0xa5298421,0x842194a5,0xa5299ce7,0xf80194a5,0xb5adb001,0xad299ce7,0xc631a529,0x8421a529, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22632ae1,0x22632225,0x116b116b,0x09af1a69,0x11a5116d,0x1a252223,0x2a612a63,0x2aa32261,0x3a873a87,0x42c73a87,0x3a873a87,0x32453a47,0x324729c5,0x3a873a87,0x32473247,0x3ac73a87,0x3e0d3e0d,0x4e91464f,0x3e0d464d,0x3dcb3e0b,0x3dcb34c9,0x464d3e0d,0x3dcb3dcb,0x4e4f464d,0xb5ad8421,0xb5ada529,0xa5299ce7,0xd00194a5,0xb5adb001,0xce73ad29,0xad6bce73,0x94a5b5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x221d1a65,0x1ab11ab1,0x22632263,0x22632263,0x1a69096f,0x09af11a5,0x22232a63,0x122d2a61,0x3a873a87,0x32473247,0x3a473a87,0x3a873a87,0x3a8742c7,0x32453245,0x3a873a47,0x32053245,0x464f464f,0x3dcb3dcb,0x3e0b464d,0x3e4d3e0d,0x3e4d4e91,0x358b358b,0x3e0d3e0b,0x354b3d8b,0xad6b8421,0xa529ad6b,0xb5ada529,0xc631b5ad,0xc631c631,0xb5adce73,0xa529ad6b,0x8421a529, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a6732df,0x1ab11a67,0x1a691235,0x22631a69,0x1a692263,0x2a632223,0x2a632a63,0x122d122d,0x32053205,0x3a473a87,0x32453205,0x3a873a87,0x32453247,0x3a873a87,0x32053205,0x3a873a87,0x354b350b,0x3e0b464d,0x3d8b354b,0x464f464d,0x358b3dcb,0x464d3e0d,0x354b354b,0x464d3e4d,0x84218421,0x84218421,0x94a57bdf,0x84218c63,0x84218421,0x84218421,0x84218421,0x84218421, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x51874947,0x49474947,0x59875187,0x51874947,0x59875987,0x49474947,0x51875187,0x49474947,0xb547b505,0xad05acc5,0xce07c587,0xb547b507,0xcdc7cdc7,0xad05a485,0xc587c587,0xa4c5ad05,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ef7b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x59875187,0x61c961c7,0x59875987,0x51875187,0x49474947,0x51875187,0x49474145,0x51875187,0xcdc7c587,0xde4bde49,0xcdc7d607,0xbd47bd47,0xa4c5ad05,0xbd47b547,0xa4c59c45,0xbd87b547,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b5b7bdf,0x2b671ab1,0x1a691af1,0x739d739d,0x739d8c63,0x7bdf7bdf,0x1a69092f,0x7bdf7bdf,0x59c75987,0x51875187,0x59c761c7,0x51875187,0x59c75987,0x59875987,0x61c761c7,0x59875987,0xd649d607,0xc587bd47,0xd649de49,0xbd47c587,0xd649cdc7,0xcdc7cdc7,0xde4bde49,0xcdc7cdc7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c637bdf,0x7bdf7bdf,0x12317bdf,0x1aa37bdf,0x7bdf122f,0x739d739d,0x739d739d,0x7bdf739d,0x51875187,0x59c75987,0x51875187,0x59c75187,0x51874947,0x59c759c7,0x51875187,0x59c761c9,0xb547c587,0xd649ce07,0xbd47bd47,0xd649c587,0xbd47b507,0xd649d649,0xb547c587,0xd609de4b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef7b0000,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x51875987,0x51874947,0x59875987,0x41454947,0x51875187,0x49475187,0x59875987,0x49474947,0xbd87cdc7,0xc587b507,0xce07ce07,0x9c45a485,0xc587b547,0xa4c5b547,0xce07ce07,0xa485ad05,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef7b0000,0xdef70000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d739d,0x7bdf7bdf,0x1ab17bdf,0x739d122f,0x6b5b7bdf,0x232d1a27,0x739d739d,0x7bdf6b5b,0x49454947,0x59c74947,0x41454947,0x51874947,0x41454947,0x51875187,0x51874947,0x51874947,0x9c85a4c5,0xd649b507,0x9c45b507,0xb547b505,0x9c45b507,0xbd47b547,0xb547a4c5,0xbd47ad05,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdef7ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c638c63,0x19f17bdf,0x1ab11a2d,0x1a691233,0x7bdf7bdf,0x22631a27,0x8c638c63,0x6b5b8c63,0x61c961c7,0x59875987,0x51875187,0x51875187,0x61c95987,0x51875987,0x61c961c9,0x51875987,0xde4bde4b,0xce07d607,0xc587c587,0xc587bd87,0xde4bd607,0xbd47cdc7,0xde4bde4b,0xc587cdc7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xdef7def7,0xdef7ffff,0xffffef7b,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdef7def7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a2b7bdf,0x739d126d,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x51875187,0x61c961c7,0x59875987,0x59c759c7,0x51874947,0x59c75987,0x59875987,0x59c759c7,0xb547b547,0xde4bde4b,0xcdc7cdc7,0xd609d649,0xb547ad05,0xd649ce07,0xcdc7cdc7,0xd609d649,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x0000ef7b,0xdef7ffff,0x00000000,0xef7bef7b,0xef7b0000,0xffffef7b,0xffffffff,0x0000ffff,0x0000ef7b,0xdef7ffff,0x00000000,0xdef7ef7b,0x0000ffff,0x0000ef7b,0x0000ffff,0x0000ffff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22677bdf,0x6b5b19ef,0x739d8c63,0x12317bdf,0x1aab7bdf,0x1a692a63,0x8c638c63,0x8c638c63,0x59875987,0x51874947,0x598759c7,0x51874947,0x51875187,0x49475187,0x51875187,0x49474947,0xcdc7cdc7,0xb547a4c5,0xcdc7d609,0xbd47b507,0xbd47b547,0xa4c5b547,0xbd47c587,0xa4c5acc5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xef7b0000,0xffffef7b,0xef7bdef7,0xef7bffff,0x0000ffff,0x0000def7,0xffff0000,0x00000000,0xef7b0000,0x0000ef7b,0xef7b0000,0xffff0000,0x0000def7,0x0000def7,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d7bdf,0x739d739d,0x739d739d,0x1a2d739d,0x1a291a2b,0x2a631a2b,0x1a29739d,0x7bdf2aa3,0x51875187,0x59875187,0x49474145,0x59875187,0x59874947,0x61c961c9,0x59875187,0x61c761c9,0xbd47b547,0xd607bd47,0xa4859c85,0xcdc7bd47,0xcdc7b507,0xde4bde4b,0xcdc7c587,0xde49de4b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xffff0000,0xffffdef7,0xdef70000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdef7,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bdf7bdf,0x739d8c63,0x8c6319eb,0x739d8c63,0x1a2919ed,0x8c632265,0x1a298c63,0x7bdf3321,0x59c759c7,0x59875987,0x59c761c9,0x59875987,0x598759c7,0x51875187,0x51875987,0x51874947,0xd649d609,0xcdc7cdc7,0xd649de4b,0xcdc7cdc7,0xd607d649,0xc587bd47,0xc587cdc7,0xc587ad05,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdef70000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bdf6b5b,0x11271a67,0x7bdf1165,0x7bdf7bdf,0x8c638c63,0x7bdf7bdf,0x22657bdf,0x6b5b32e3,0x49474947,0x59875987,0x51875187,0x59875987,0x49474947,0x59875187,0x49454945,0x59875187,0xb507ad05,0xcdc7cdc7,0xbd47b547,0xcdc7ce07,0xb507ad05,0xcdc7b547,0x9c859c85,0xcdc7bd47,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d7bdf,0x739d739d,0x1169739d,0x739d739d,0x1a2b116d,0x739d1a69,0x2263739d,0x7bdf2223,0x51875187,0x49474145,0x61c759c7,0x41454947,0x59875187,0x59875187,0x61c961c9,0x49475987,0xb547bd47,0xa4859c85,0xde49d609,0x9c45a4c5,0xce07c587,0xcdc7c587,0xde4bde4b,0xa4c5cdc7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdef70000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c637bdf,0x8c63739d,0x116b116b,0x739d1a69,0x11a5116d,0x739d2223,0x7bdf7bdf,0x8c638c63,0x59875987,0x61c961c7,0x598759c7,0x51875187,0x51874145,0x59c75987,0x51875187,0x61c759c7,0xcdc7cdc7,0xde4bde49,0xcdc7d609,0xbd47c587,0xc5879c85,0xd649cdc7,0xc587bd87,0xde4bd649,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000def7,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bdf7bdf,0x739d7bdf,0x22632263,0x739d2263,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x59c761c7,0x51875187,0x518759c7,0x59875987,0x598761c9,0x51875187,0x59875187,0x49475187,0xde49de49,0xbd47c587,0xc587d649,0xce07cdc7,0xd607de4b,0xb547b547,0xcdc7c587,0xad05bd47,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x49474947,0x518759c7,0x51874947,0x61c759c7,0x51875187,0x59c75987,0x49474947,0x59c75987,0xb507a4c5,0xc587d609,0xbd47ad05,0xde49d649,0xb547bd87,0xd609cdc7,0xb507ad05,0xd649d607,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9e6eb,0xdea7d667,0xdea9e6e9,0xd665d667,0xdea9dea9,0xdea9d667,0xd6a7e6e9,0xef2be6e9,0x21a52163,0x21632163,0x29a921a7,0x21a52163,0x29a929a7,0x21632161,0x21a721a7,0x21612163,0x5c3553f3,0x53f34bb3,0x74b76475,0x5c3553f3,0x74b56cb5,0x53f34373,0x6c756c75,0x4bb353f3,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0xdea9dea9,0xdea9e6a9,0xce27d667,0xce25ce25,0xdea7dea7,0xe6e9d667,0xe72bdea7,0xef2be72b,0x29a721a7,0x29ed29eb,0x29a929a9,0x21a521a5,0x21612163,0x21a521a5,0x2161195f,0x21a521a5,0x6cb56c75,0x8d778d37,0x74b57cf7,0x64356435,0x4bb353f3,0x64355c35,0x4bb33b31,0x64355c35,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd667dea9,0xdea7dea9,0xce27ce65,0xd665ce25,0xd6a7d665,0xe6e9d665,0xdee9e6eb,0xe6ebe6e9,0x29e929a9,0x21a521a5,0x29e929eb,0x21a521a7,0x29e929a9,0x29a929a9,0x29eb29eb,0x29a729a9,0x7cf77cf7,0x64756435,0x7cf78537,0x64356c75,0x7cf774b5,0x74b574b5,0x8d378537,0x6cb574b5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea7e6e9,0xdea7dea7,0xde67d667,0xe6a9dea7,0xdea7d665,0xdea7d665,0xdea9e6e9,0xd665dea9,0x21a521a7,0x29e929a9,0x21a521a5,0x29e921a7,0x21a52163,0x29e929e9,0x21a521a7,0x29e929ed,0x5c356c75,0x7cf774b7,0x5c356435,0x7cf76475,0x643553f3,0x7cf77cf7,0x5c356c75,0x7cf78d77,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd665dea7,0xd665dea7,0xdea7d6a7,0xe6e9dea9,0xdea7d665,0xd6a7dea7,0xdea9e6e9,0xd667dea9,0x21a529a7,0x21a72163,0x29a929a9,0x215f2161,0x21a721a5,0x216321a5,0x29a929a9,0x21612163,0x64356cb5,0x6c7553f3,0x74b774b7,0x3b714373,0x6c755c35,0x4bb35c35,0x74b774b7,0x437353f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea7d665,0xce25dea7,0xd667ce25,0xef2de6eb,0xd667dea9,0xd667de67,0xdea7dea7,0xdea7dea9,0x21612161,0x29e921a3,0x215f2163,0x21a52163,0x215f2163,0x21a521a5,0x21a52161,0x21a52163,0x43734bb3,0x7cf753f3,0x3b7153f3,0x5c3553f3,0x3b7153f3,0x64355c35,0x5c3543b3,0x5c3553f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea9d667,0xd667dea9,0xd665dea7,0xe6edd667,0xdea7dea9,0xdea7e6e9,0xdea9d667,0xdea9dea9,0x29ed29eb,0x29a929a9,0x21a721a7,0x21a721a5,0x29ed29a9,0x21a529a7,0x29ed29ed,0x21a729a9,0x8d378d37,0x74b77cf7,0x64756475,0x6c756435,0x8d377cf7,0x64356cb5,0x8d778d77,0x6c7574b5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd667dea9,0xce65dea9,0xd667dea7,0xd665d665,0xdea9dea9,0xdea9e6e9,0xdea9dea7,0xdea9dea9,0x21a521a5,0x29ed29eb,0x29a729a9,0x29e929e9,0x21a52163,0x29e929a9,0x29a729a7,0x29e929eb,0x5c355c35,0x8d778d37,0x6cb574b5,0x7cf77cf7,0x5c3553f3,0x7cf774b7,0x6cb56cb5,0x7cf77cf7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd665dea7,0xdea9dea9,0xe6a9dea7,0xdea9dea9,0xdea7dea9,0xe6e9dea7,0xe6ebe6eb,0xd6a7e6e9,0x29a929a9,0x21a52161,0x29a729e9,0x21a52163,0x21a521a5,0x216121a5,0x21a521a7,0x21632163,0x74b574b5,0x5c354bb3,0x6cb57cf7,0x5c3553f3,0x64355c35,0x43b35c35,0x64356475,0x4bb34bb3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd665d665,0xd667d665,0xe6e9dea9,0xce25dea7,0xd667e6e9,0xdea9d665,0xdea9e6eb,0xdea7dea9,0x21a521a5,0x29a921a5,0x2161215f,0x29a721a5,0x29a72163,0x29ed29ed,0x29a921a5,0x29eb29ed,0x64355c35,0x7cf75c35,0x43733b73,0x6c756435,0x6cb553f3,0x8d778d77,0x74b56475,0x8d378d77,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea7ce25,0xdea7d6a7,0xe6ebd667,0xdea7dea9,0xdee7dea7,0xce23dea7,0xef2de6e9,0xd665e6eb,0x29eb29e9,0x29a929a9,0x29e929ed,0x29a729a9,0x29a929eb,0x21a721a5,0x21a729a7,0x21a72163,0x7cf77cf7,0x74b574b5,0x7cf78d37,0x6cb574b5,0x7cf77cf7,0x6c756435,0x64756cb5,0x6c7553f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9dea7,0xdea9dea9,0xde67d667,0xce25e6a9,0xd667d667,0xd667d665,0xdea9dea9,0xdea7d667,0x21632163,0x29a729a7,0x21a521a5,0x29a929a9,0x21632163,0x29a721a5,0x21612161,0x29a721a5,0x53f353f3,0x6c756c75,0x5c355c35,0x74b574b7,0x53f353f3,0x6cb55c35,0x43734373,0x6cb55c35,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea9dea9,0xdea9dea9,0xdee9dea9,0xd665dea7,0xd665ce23,0xce25d665,0xdea7d665,0xdea7e6e9,0x21a521a5,0x2161215f,0x29eb29e9,0x215f2163,0x29a921a7,0x29a921a7,0x29ed29ed,0x216129a7,0x5c355c35,0x43733b73,0x85377cf7,0x3b714bb3,0x74b76475,0x74b56c75,0x8d778d77,0x43b36cb5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea9e6eb,0xdeebd667,0xd669dea9,0xd6a7d667,0xd667d667,0xd667dea7,0xdea9dea9,0xe6e9dea7,0x29a729a9,0x29ed29eb,0x29a929e9,0x21a521a7,0x21a5215f,0x29e929a9,0x21a521a5,0x29eb29e9,0x6cb574b5,0x8d778537,0x74b57cf7,0x64356c75,0x64753b73,0x7cf774b5,0x64756435,0x8d377cf7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9e6e9,0xe6e9dea7,0xdee9dea9,0xce65d667,0xdea7d667,0xdea9d6a7,0xe6ebdea9,0xdea9dea9,0x29eb29eb,0x21a521a7,0x21a729e9,0x29a929a7,0x29a929ed,0x21a521a5,0x29a921a7,0x216321a5,0x84f78537,0x64356c75,0x6c757cf7,0x74b76cb5,0x7cf78d77,0x5c355c35,0x74b56c75,0x53f35c35,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9ef2b,0xdea7dea9,0xe6a9de67,0xd667dea9,0xdea9d667,0xe6ebd6a7,0xdee9dea7,0xdea9dea9,0x21632161,0x21a729e9,0x21a52163,0x29eb29e9,0x21a521a5,0x29e929a7,0x21632163,0x29e929a9,0x53f34bb3,0x6c757cf7,0x5c3553f3,0x85377cf7,0x5c356435,0x7cf76cb5,0x53f353f3,0x7cf77cf7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xef2deeed,0xe6edef2d,0xe6ebe6ab,0xef2df76f,0xf76fef2d,0xef2def2d,0xf76fef2d,0xef2df76f,0x796f716d,0x716d716d,0x89f381b1,0x796f716d,0x81f381b3,0x716d696b,0x81b381b3,0x716b716d,0xb9f1b9f1,0xb9f1b1b1,0xc2b3ba73,0xb9f1b9f1,0xc2b3c2b3,0xb1f1a9ad,0xc273c273,0xb1afb1f1,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xd669e6eb,0xdea9dea9,0xd669dea9,0xce25d667,0xd667d667,0xdea9dea7,0xe6edd667,0xe6ebe6ed,0x81b381b1,0x92759275,0x81f389f3,0x79b179b1,0x716b716d,0x79b1796f,0x716b6969,0x79b1796f,0xc2b3c273,0xcb75cb35,0xc2b3c2f3,0xba33ba33,0xb1afb9f1,0xba33b9f1,0xb1afa1ab,0xba33b9f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xd667c621,0xc5e1d663,0xc621ce21,0xc5e1ce23,0xc61fc621,0xc5ddc5df,0xce65ce21,0xc5dfc5e3,0x8a3389f3,0x79b179b1,0x8a338a35,0x79b181b3,0x8a3381f3,0x81f381f3,0x92759235,0x81b381f3,0xc2f5c2f3,0xba33ba33,0xc2f5cb35,0xba33c273,0xc2f5c2b3,0xc2b3c2b3,0xcb75cb35,0xc2b3c2b3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xf771ce23,0xef2de6ed,0xf771ce1f,0xf76ff76f,0xe6edef2f,0xf76fbd9b,0xe6ede6ed,0xf76ff76f,0x796f81b1,0x8a3389f3,0x79af79b1,0x8a3381b1,0x79b1716d,0x8a338a33,0x796f81b1,0x8a339275,0xb9f1c273,0xc2f5c2b3,0xba33ba33,0xc2f5ba73,0xba33b9f1,0xc2f5c2f5,0xb9f1c273,0xc2f3cb75,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xdea9ce21,0xd667dea7,0xdee9ce1f,0xe6e9e6eb,0xc5ddde67,0xd667e6eb,0xe6eddea9,0xdea9d667,0x79b181b3,0x81b1716d,0x89f389f3,0x6969696b,0x81b3796f,0x716d796f,0x89f389f3,0x696b716d,0xba33c2b3,0xc273b9f1,0xc2b3c2b3,0xa1ada9ad,0xc273b9f1,0xb1afb9f1,0xc2b3c2b3,0xa9adb1f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xd667d6a9,0xdea7d667,0xe6ebce1f,0xef2ddea9,0xc5dddea9,0xdea7e6eb,0xdea9dea7,0xc5dfdeab,0x6969716b,0x8a33796f,0x6969716d,0x796f716d,0x6969716d,0x79b1796f,0x796f716b,0x79af716d,0xa9adb1af,0xc2f5b9f1,0xa1adb9f1,0xb9f1b9f1,0xa1adb9f1,0xba33b9f1,0xb9f1a9af,0xba33b9f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xce63dea9,0xce23ce63,0xce23ce1f,0xe6eddeed,0xc5ddbd9d,0xe6ebc621,0xd6a7deeb,0xc5dfdeab,0x92759275,0x89f389f3,0x81b181b1,0x81b379b1,0x927589f3,0x79b181b3,0x92759275,0x81b381f3,0xcb75cb75,0xc2b3c2f3,0xba73ba73,0xc273ba33,0xcb75c2f3,0xba33c2b3,0xcb75cb75,0xc273c2b3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xf771c5dd,0xeeedef2d,0xef2ff771,0xc621ce23,0xef2def2d,0xc621f76f,0xce21ce25,0xef2fc5df,0x796f796f,0x92759275,0x81b381f3,0x8a338a33,0x796f716d,0x8a3389f3,0x81b381b3,0x8a338a33,0xb9f1b9f1,0xcb75cb75,0xc2b3c2b3,0xc2f3c2f5,0xb9f1b9f1,0xc2f5c2b3,0xc2b3c2b3,0xc2f3c2f5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xdea9ef2f,0xdea9e6eb,0xc5dfdea9,0xef2fef2d,0xdea7deab,0xd663e6eb,0xef2df76f,0xef2fc5df,0x81f381f3,0x796f716b,0x81b38a33,0x79af716d,0x79b1796f,0x716b796f,0x79b181b1,0x716d716d,0xc2b3c2b3,0xb9f1b1af,0xc2b3c2f3,0xba33b9f1,0xba33b9f1,0xa9afb9f1,0xba33ba73,0xb1afb1b1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6ebd667,0xe6ebe6eb,0xc5dddea7,0xdeabeeed,0xdeabe6eb,0xc5dbd667,0xdeebe6ed,0xdeebc5df,0x79b1796f,0x89f379af,0x696b6969,0x81b379b1,0x81b3716d,0x92759275,0x81f379b1,0x92759275,0xba33b9f1,0xc2f3ba33,0xa9ada1ad,0xc273ba33,0xc2b3b9f1,0xcb75cb75,0xc2b3ba33,0xcb35cb75,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xc5dfdea7,0xc5dfc5df,0xce21d667,0xdea7dea7,0xdea7e6ed,0xce21dea9,0xc5dddeeb,0xc59dc5dd,0x8a338a33,0x81f381f3,0x8a339275,0x81b381f3,0x89f38a33,0x81b379b1,0x81b181b3,0x81b1716d,0xc2f5c2f3,0xc2b3c2b3,0xc2f5cb75,0xc2b3c2b3,0xc2f3c2f5,0xc273ba33,0xba73c2b3,0xc273b1f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xef2fc5dd,0xe6ebef2f,0xbd9bce21,0xc5ddc5dd,0xc5dddea7,0xef2fc5dd,0xe6e9c5dd,0xef2fef2f,0x716d716d,0x81b381b3,0x79af796f,0x81f389f3,0x716d716d,0x81b3796f,0x69696969,0x81b379af,0xb9f1b1f1,0xc273c273,0xba33b9f1,0xc2b3c2b3,0xb9f1b9f1,0xc2b3b9f1,0xa9ada9ad,0xc2b3ba33,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6efef2d,0xce23e6eb,0xef2fef2d,0xef2def2d,0xef31c5dd,0xdeabeeed,0xe6edce23,0xe6ede72f,0x796f79af,0x696b6969,0x8a358a33,0x6969716d,0x89f381b1,0x81f381b3,0x92759275,0x716b81b3,0xb9f1ba33,0xa9ada1ad,0xcb35c2f3,0xa1adb1af,0xc2b3ba73,0xc2b3c273,0xcb75cb75,0xa9afc2b3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xe6efe6ed,0xc5dfd667,0xdea9d669,0xdeabdea7,0xd6a9c5dd,0xd667d667,0xe6edc5dd,0xdea9deeb,0x81b381f3,0x92759235,0x81f38a33,0x79b181b3,0x79b16969,0x8a3381f3,0x79b179b1,0x92758a33,0xc2b3c2b3,0xcb75cb35,0xc2b3c2f3,0xba33c273,0xba33a1ad,0xc2f5c2b3,0xba33ba33,0xcb75c2f5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xc621ce25,0xce23e6eb,0xe72ddea9,0xbd9ddeed,0xce1fe6ed,0xe6ebdeeb,0xbd9bc621,0xbd9bdea9,0x8a358a35,0x79b181b1,0x81b38a33,0x89f381b3,0x89f39275,0x796f796f,0x81f381b3,0x716d79af,0xc335cb35,0xba33c273,0xc273c2f5,0xc2b3c2b3,0xc2f3cb75,0xb9f1b9f1,0xc2b3c273,0xb9f1ba33,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xef2de72f,0xdea9ce23,0xc621c621,0xe6ebc5df,0xdea7e6e9,0xce21c5dd,0xef2deeed,0xef2fc5dd,0x716d716b,0x81b38a33,0x79af716d,0x92358a33,0x796f79b1,0x8a3381b3,0x716d716d,0x8a3389f3,0xb9f1b1af,0xc273c2f3,0xba33b9f1,0xcb35c2f5,0xb9f1ba33,0xc2f3c2b3,0xb9f1b9f1,0xc2f5c2f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xdea9ef2b,0xc5ddce23,0xdea9e6eb,0xc5ddef2d,0xe6e9d667,0xdea9dea9,0xdea9c5dd,0xdea9dea9,0x23632363,0x23612361,0x2be723a5,0x23632363,0x2be72be7,0x23612321,0x2ba52ba5,0x23212361,0xebcdeb8b,0xeb8beb89,0xec11ec0d,0xebcbebcb,0xec0fec0f,0xeb89e347,0xec0dec0d,0xeb89eb89,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xc5dde6eb,0xe6a9dea9,0xd667c5dd,0xc5ddd667,0xdea9dea7,0xd667d667,0xc5ddd667,0xe72dc5dd,0x2be723a5,0x2c2b2c2b,0x2be72be9,0x23a523a5,0x23212361,0x23a52363,0x23211adf,0x23a52363,0xec0fec0d,0xec53ec53,0xec0fec11,0xebcdebcd,0xeb89eb8b,0xebcdebcb,0xeb89e345,0xebcdebcd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xe6a9ce23,0xc5dddea7,0xd667c5dd,0xd665ce25,0xd665c5dd,0xe6e9ce25,0xef2bc5dd,0xc5dde6e9,0x2be92be9,0x23a523a5,0x2be92c29,0x23a52ba5,0x2be92be7,0x2be72be7,0x2c2b2c29,0x2be72be7,0xec51ec11,0xebcdebcd,0xec51ec51,0xebcdec0d,0xec51ec0f,0xec0fec0f,0xec53ec51,0xec0fec0f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xdea7ce23,0xeeedc5dd,0xc5ddeeed,0xdea9dea7,0xd665d663,0xc5ddd6a7,0xe6e9eeed,0xd665dea7,0x236323a5,0x2be92be7,0x23a323a5,0x2be923a5,0x23a52363,0x2be92be9,0x236323a5,0x2be92c2b,0xebcdec0d,0xec51ec11,0xebcdebcd,0xec51ec0d,0xebcdebcb,0xec51ec51,0xebcdec0d,0xec51ec53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xc5dddea7,0xdea9eeed,0xd663d667,0xef2def2d,0xce23c5dd,0xeeedce23,0xe6e9e6e9,0xdea9dea7,0x23a52be7,0x23a52363,0x2be72be7,0x231f2321,0x2ba52363,0x23212363,0x2be72be7,0x23212361,0xebcdec0f,0xec0debcb,0xec11ec11,0xe345e347,0xec0debcb,0xeb89ebcb,0xec11ec11,0xe347eb89,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xc5ddd667,0xdea9d667,0xd663dea9,0xc5ddc5dd,0xdea9e6e9,0xc5dddea7,0xdea7d667,0xd667ce25,0x231f2321,0x2be92363,0x231f2363,0x23632363,0x231f2363,0x23a52363,0x23632321,0x23a32361,0xe347eb89,0xec51ebcb,0xe345ebcb,0xebcdeb8b,0xe345ebcb,0xebcdebcd,0xebcbeb47,0xebcdeb8b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xdea7c5dd,0xeeeddea7,0xd663d667,0xe6ebc5dd,0xdea7c5dd,0xd665e6e9,0xce23ce23,0xc5ddeeed,0x2c2b2c2b,0x2be72be9,0x23a523a5,0x2ba523a5,0x2c2b2be9,0x23a52be7,0x2c2b2c2b,0x2ba52be7,0xec53ec53,0xec11ec11,0xec0dec0d,0xec0debcd,0xec53ec11,0xebcdec0f,0xec53ec53,0xec0dec0f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x7ca77ca7,0x00000000,0x7ca70000,0x00007ca7,0x00000000,0x7ca77ca7,0x00000000,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xc5dde6e9,0xd663eeed,0xc5ddc5dd,0xd665d665,0xe6e9c5dd,0xdea9dea9,0xe6ebdea9,0xe6ebc5dd,0x23632363,0x2c2b2c2b,0x2be72be7,0x2be92be9,0x23632361,0x2be92be7,0x2be72be7,0x2be92c29,0xebcdebcd,0xec53ec53,0xec0fec0f,0xec51ec51,0xebcbeb8b,0xec51ec11,0xec0fec0f,0xec51ec51,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ca70000,0xd6f7ffff,0x0000535d,0xffff7ca7,0x535dd6f7,0x7ca70000,0xd6f7ffff,0x0000535d,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xd665d665,0xdea9c5dd,0xe6e9e6e9,0xd667ce23,0xc5dddea9,0xdea7c5dd,0xc5ddef2d,0xd665dea9,0x2be72be7,0x23632321,0x2be72be9,0x23a32363,0x23a52363,0x23212363,0x23a523a5,0x23212361,0xec0fec0f,0xebcbeb89,0xec0fec51,0xebcdebcb,0xebcdebcb,0xeb47ebcb,0xebcdec0d,0xeb89eb89,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ca70000,0xbe73d6f7,0x0000535d,0xd6f77ca7,0x535dbe73,0x7ca70000,0xbe73d6f7,0x0000535d,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xdea7d667,0xd665ce23,0xdea9dea9,0xd665c5df,0xd665e6e9,0xc5ddce25,0xce23c5dd,0xd667e6e9,0x23a52363,0x2be923a3,0x2321231f,0x2ba723a5,0x2be72363,0x2c2b2c2b,0x2be723a5,0x2c2b2c2b,0xebcdebcb,0xec11ebcd,0xe347e345,0xec0febcd,0xec0febcb,0xec53ec53,0xec0febcd,0xec53ec53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x535d535d,0x00000000,0x535d0000,0x0000535d,0x00000000,0x535d535d,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xc5ddd665,0xd667d665,0xe6e9dea9,0xdea9c5dd,0xd667dea9,0xef2dc5dd,0xce23dea9,0xdea7e6e9,0x2c292be9,0x2be72be7,0x2be92c2b,0x2be72be7,0x2be92c29,0x2ba523a5,0x23a52be7,0x23a52361,0xec51ec51,0xec0fec0f,0xec51ec53,0xec0fec0f,0xec11ec51,0xec0debcd,0xec0dec0f,0xec0deb89,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xef2dc5dd,0xe6e9ef2d,0xe6e9dea7,0xc5dde6e9,0xef2dd667,0xef2dc5dd,0xc5dddea9,0xdea9dea9,0x23632361,0x2ba72ba7,0x23a32363,0x2be72be7,0x23632361,0x2be72363,0x231f231f,0x2be723a3,0xebcbeb89,0xec0fec0f,0xebcdebcd,0xec0fec11,0xebcbeb8b,0xec0febcb,0xe347e347,0xec0febcd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xce23dea9,0xe6ebc5dd,0xce23ce23,0xd665c5dd,0xc5ddd665,0xdea7ef2d,0xdee9d665,0xce23c5dd,0x236323a3,0x2321231f,0x2c292be9,0x231f2321,0x2be723a5,0x2be72ba5,0x2c2b2c2b,0x23212be7,0xebcdebcd,0xe347e345,0xec51ec51,0xe345eb89,0xec11ec0d,0xec0fec0d,0xec53ec53,0xeb47ec0f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xe6a9e6e9,0xc5ddef2d,0xdea9c5dd,0xc5dddea7,0xce23d665,0xdea9dea7,0xc5dde6e9,0xdea9eeed,0x2be72be7,0x2c2b2c29,0x2be72be9,0x23a52ba5,0x23a5231f,0x2be92be7,0x23a523a5,0x2c2b2be9,0xec0fec0f,0xec53ec51,0xec0fec51,0xebcdec0d,0xebcde345,0xec51ec0f,0xebcdebcd,0xec53ec51,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xe6e9e6e9,0xef2dd667,0xdea9c5dd,0xc5ddd667,0xc5ddce23,0xdea9ce23,0xeeedc5dd,0xdea9dea7,0x2c292c29,0x23a523a5,0x2ba52be9,0x2be72be7,0x2be92c2b,0x23632363,0x2be72ba5,0x236123a3,0xec51ec51,0xebcdec0d,0xec0dec51,0xec11ec0f,0xec11ec53,0xebcbebcb,0xec0fec0d,0xeb8bebcd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xdea9e6eb,0xc5dddea7,0xe6ebdea9,0xc5dddea7,0xdea9dea9,0xc5ddde67,0xdea9dea7,0xe6ebdea9,0x23632321,0x2ba52be9,0x23a32361,0x2c292be9,0x236323a5,0x2be92be7,0x23632361,0x2be92be9,0xebcbeb89,0xec0dec51,0xebcdeb8b,0xec51ec51,0xebcdebcd,0xec51ec0f,0xebcbeb8b,0xec51ec11,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x94e794e7,0x8ca58ca5,0xad6b9d29,0x94e794e7,0xa56ba56b,0x8ca58463,0xa529a529,0x8ca58ca5,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa56b9d29,0xbdefb5ef,0xa56badad,0x9d299d29,0x8ca58ca5,0x9d2994e7,0x8ca57c63,0x9d2994e7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadadadad,0x9d299d29,0xadadb5ad,0x9d29a529,0xadada56b,0xa56ba56b,0xb5efb5ad,0xa56ba56b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e79d29,0xadada56b,0x94e79d29,0xadad9d29,0x9d2994e7,0xadadadad,0x94e79d29,0xadadbdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d29a56b,0x9d2994e7,0xa56bad6b,0x84638463,0xa52994e7,0x8ca594e7,0xad6bad6b,0x84638ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x84638ca5,0xadad94e7,0x846394e7,0x94e794e7,0x846394e7,0x9d2994e7,0x94e784a5,0x95298ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5efb5ef,0xa56badad,0x9d299d29,0xa5299d29,0xb5efadad,0x9d29a56b,0xbdefbdef,0xa529a56b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e794e7,0xbdefb5ef,0xa56ba56b,0xadadadad,0x94e78ca5,0xadada56b,0xa56ba56b,0xadadadad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa56ba56b,0x94e78ca5,0xa56badad,0x94e794e7,0x9d2994e7,0x84a594e7,0x9d299d29,0x8ca58ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d2994e7,0xadad9529,0x84638463,0xa56b9d29,0xa56b94e7,0xbdefbdef,0xa56b9d29,0xb5efbdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadadadad,0xa56ba56b,0xadadb5ef,0xa56ba56b,0xadadadad,0xa5299d29,0x9d29a56b,0x9d298ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e78ca5,0xa56ba56b,0x94e794e7,0xa56bad6b,0x94e78ca5,0xa56b94e7,0x84638463,0xa56b9529,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e794e7,0x84638463,0xb5adadad,0x84638ca5,0xad6b9d29,0xa56ba529,0xbdefbdef,0x84a5a56b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa56ba56b,0xbdefb5ad,0xa56badad,0x9d29a529,0x9d298463,0xadada56b,0x9d299d29,0xb5efadad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5adb5ad,0x9d299d29,0xa529adad,0xa56ba56b,0xadadbdef,0x94e794e7,0xa56ba529,0x8ca594e7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e78ca5,0xa529adad,0x94e78ca5,0xb5adadad,0x94e79d29,0xadada56b,0x94e78ca5,0xadadadad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x7bdf9ce7,0x7bdf39cf,0x7bdf39cf,0x7bdf9ce7,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf39cf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x39cf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf39cf,0x39cf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf39cf,0x39cf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf, +0x9ce77bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf39cf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf39cf, +0x39cf7bdf,0x9ce79ce7,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf39cf,0x39cf39cf,0x9ce79ce7,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf39cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf9ce7,0x9ce739cf,0x39cf9ce7, +0x9ce77bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf9ce7,0x9ce739cf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf9ce7,0x9ce739cf,0x39cf9ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x9ce77bdf, +0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x9ce77bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x9ce77bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x9ce77bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x9ce739cf,0x39cf7bdf,0x9ce77bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x7bdf7bdf,0x7bdf39cf,0x9ce77bdf,0x7bdf39cf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x7bdf7bdf,0x7bdf39cf,0x9ce77bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x7bdf7bdf,0x7bdf39cf,0x9ce77bdf,0x7bdf39cf,0x9ce739cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf, +0x7bdf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x7bdf9ce7,0x7bdf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x7bdf9ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf, +0x39cf9ce7,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x39cf39cf,0x39cf7bdf,0x7bdf7bdf,0x39cf9ce7,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x39cf39cf,0x39cf7bdf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf, +0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x9ce79ce7,0x9ce77bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x9ce79ce7,0x9ce77bdf,0x39cf39cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf, +0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x9ce79ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf, +0x7bdf7bdf,0x9ce739cf,0x39cf39cf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf39cf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x39cf39cf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x9ce79ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801, +0 }; diff --git a/data/images/terrain_565.h b/data/images/terrain_565.h new file mode 100755 index 0000000..609d7f4 --- /dev/null +++ b/data/images/terrain_565.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.23 + * PVRTC Library v 1.142. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_565[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00010013, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f800, /* dwRBitMask */ +0x000007e0, /* dwGBitMask */ +0x0000001f, /* dwBBitMask */ +0x00000000, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef9cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x9cd39cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x39e739e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x9cd339e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd37bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x39e739e7,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3, +0x9cd37bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7, +0x39e77bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0x39e739e7,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef39e7,0x7bef39e7,0x7bef9cd3,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38c92,0xa534ad96,0x94f38cb2,0xb5b6adb6,0x94f39d14,0xad96a555,0x94d38cb2,0xadb6ad96,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5b6b5b6,0x9d149d34,0xa534adb6,0xa575a555,0xad96bdf7,0x94f394f3,0xa575a534,0x8cb294f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa555a575,0xbdf7b5b6,0xa575ad96,0x9d14a534,0x9d148451,0xadb6a575,0x9d149d14,0xb5d7adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0x84718451,0xb5b6ad96,0x84518cb2,0xad759d34,0xa575a534,0xbdf7bdf7,0x8492a555,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38cb2,0xa555a555,0x94f394f3,0xa575ad75,0x94d38cb2,0xa55594f3,0x84718471,0xa5559514,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0xa575a575,0xadb6b5f7,0xa555a575,0xad96adb6,0xa5349d14,0x9d34a555,0x9d348cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d1494f3,0xad969514,0x84718451,0xa5559d14,0xa55594d3,0xbdf7bdf7,0xa5759d14,0xb5d7bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa575a575,0x94f38c92,0xa555ad96,0x94f394d3,0x9d1494f3,0x849294f3,0x9d149d34,0x8cb28cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0xbdf7b5d7,0xa555a575,0xad96adb6,0x94f38cb2,0xadb6a575,0xa555a555,0xad96adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5f7b5d7,0xa575ad96,0x9d349d34,0xa5349d14,0xb5f7ad96,0x9d14a555,0xbdf7bdf7,0xa534a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x84718c92,0xadb694d3,0x845194d3,0x94f394d3,0x845194d3,0x9d1494f3,0x94f38492,0x95148cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d14a555,0x9d3494d3,0xa575ad75,0x84518471,0xa53494f3,0x8cb294f3,0xad75ad75,0x84718cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f39d34,0xadb6a575,0x94f39d14,0xadb69d34,0x9d1494d3,0xadb6adb6,0x94f39d34,0xad96bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0x9d149d14,0xadb6b5b6,0x9d14a534,0xadb6a575,0xa575a575,0xb5d7b5b6,0xa555a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa5559d34,0xbdf7b5d7,0xa575ad96,0x9d149d14,0x8c928cb2,0x9d1494f3,0x8c927c51,0x9d1494f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x94f394d3,0x8cb28cb2,0xad759d34,0x94f394d3,0xa575a555,0x8cb28471,0xa534a534,0x8c928cb2,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xdeb4e6d5,0xc5cedeb3,0xe6d5de94,0xc5cede93,0xde94deb4,0xc5cede73,0xdeb4de93,0xe6f5deb4,0x23512330,0x2bb22bf4,0x23912350,0x2c142bf4,0x23712392,0x2bf42bd3,0x23512350,0x2bf42bf4,0xebc5eb84,0xec06ec48,0xebc6eba5,0xec48ec48,0xebc6ebe6,0xec48ec07,0xebc5eba5,0xec48ec28,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6d4e6d4,0xef16d673,0xdeb4c5ce,0xc5ced673,0xc5cece31,0xdeb4ce31,0xeef6c5ce,0xdeb4de93,0x2c142c14,0x239223b2,0x2bb22bf4,0x2bd32bd3,0x2bf42c35,0x23712371,0x2bd32bb2,0x23502391,0xec48ec48,0xebe6ec06,0xec06ec48,0xec28ec07,0xec28ec69,0xebc5ebc5,0xec27ec06,0xeba5ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6b4e6d4,0xc5ceef16,0xde94c5ce,0xc5cede93,0xce31d672,0xde94de93,0xc5cee6d4,0xde94eef6,0x2bd32bd3,0x2c352c14,0x2bd32bf4,0x23922bb2,0x2392230f,0x2bf42bd3,0x23922392,0x2c352bf4,0xec07ec27,0xec69ec48,0xec27ec48,0xebe6ec06,0xebe6e342,0xec48ec27,0xebe6ebe6,0xec69ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xce31deb4,0xe6d5c5ce,0xce31ce31,0xd672c5ce,0xc5ced652,0xdeb3ef16,0xded4d672,0xce31c5ce,0x23712391,0x2330230f,0x2c142bf4,0x230f2330,0x2bd323b2,0x2bd32bb2,0x2c352c35,0x23302bd3,0xebc6ebc6,0xe363e342,0xec48ec48,0xe342eba4,0xec28ec06,0xec27ec06,0xec69ec69,0xeb63ec07,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef16c5ce,0xe6d4ef16,0xe6d4de93,0xc5cee6d4,0xef16d673,0xef16c5ce,0xc5cede94,0xdeb4deb4,0x23512350,0x2bb32bb3,0x23912371,0x2bd32bd3,0x23512350,0x2bd32371,0x230f230f,0x2bd32391,0xebc5eba4,0xec07ec07,0xebc6ebc6,0xec27ec28,0xebc5eba5,0xec07ebc5,0xe363e363,0xec07ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5ced652,0xd673d672,0xe6d4deb4,0xde94c5ce,0xd673deb4,0xef16c5ce,0xce31deb4,0xdeb3e6d4,0x2c142bf4,0x2bd32bd3,0x2bf42c35,0x2bd32bd3,0x2bf42c14,0x2bb22392,0x23b22bd3,0x23b22350,0xec48ec48,0xec27ec27,0xec48ec69,0xec07ec27,0xec28ec48,0xec06ebe6,0xec06ec07,0xec06eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xdeb3d673,0xd652ce31,0xdeb4de94,0xd652c5cf,0xd672e6d4,0xc5cece32,0xce31c5ee,0xd673e6d4,0x23922371,0x2bf42391,0x2330230f,0x2bb32392,0x2bd32351,0x2c352c35,0x2bd32392,0x2c352c35,0xebe6ebc5,0xec28ebc6,0xe363e342,0xec07ebe6,0xec07ebc5,0xec69ec69,0xec27ebe6,0xec69ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x536e536e,0x00000000,0x536e0000,0x0000536e,0x00000000,0x536e536e,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xd652d672,0xde94c5ce,0xe6d4e6d4,0xd673ce31,0xc5cede94,0xde93c5ce,0xc5ceef36,0xd672de94,0x2bd32bd3,0x23712330,0x2bd32bf4,0x23912351,0x23922371,0x23302371,0x239223b2,0x23302350,0xec27ec27,0xebc5eba4,0xec07ec48,0xebc6ebc5,0xebe6ebc5,0xeb63ebc5,0xebe6ec06,0xeba4eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xbe59d6fb,0x0000536e,0xd6fb7cb3,0x536ebe59,0x7cb30000,0xbe59d6fb,0x0000536e,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5cee6f4,0xd651eef6,0xc5cec5ce,0xd652d652,0xe6d4c5ce,0xdeb4deb4,0xe6f5deb4,0xe6f5c5ce,0x23712371,0x2c352c35,0x2bd32bd3,0x2bf42bf4,0x23712350,0x2bf42bd3,0x2bd32bd3,0x2bf42c14,0xebc6ebc6,0xec69ec69,0xec07ec27,0xec48ec48,0xebc5eba5,0xec48ec28,0xec07ec07,0xec48ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xd6fbffff,0x0000536e,0xffff7cb3,0x536ed6fb,0x7cb30000,0xd6fbffff,0x0000536e,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xdeb3c5ce,0xeef6de93,0xd651d673,0xe6d5c5ce,0xde93c5ce,0xd652e6d4,0xce31ce31,0xc5ceeef6,0x2c352c35,0x2bd32bf4,0x23b223b2,0x2bb22392,0x2c352bf4,0x23922bd3,0x2c352c35,0x2bb22bd3,0xec69ec69,0xec28ec28,0xec06ec06,0xec06ebe6,0xec69ec28,0xebe6ec07,0xec69ec69,0xec06ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x7cb37cb3,0x00000000,0x7cb30000,0x00007cb3,0x00000000,0x7cb37cb3,0x00000000,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xc5ced673,0xde94d673,0xd651de94,0xc5cec5ce,0xde94e6f4,0xc5cede93,0xde93d653,0xd653ce32,0x230f2330,0x2bf42371,0x230f2351,0x23712351,0x230f2351,0x23922371,0x23712330,0x23912350,0xe363eba4,0xec48ebc5,0xe342ebc5,0xebc6eba5,0xe342ebc5,0xebe6ebc6,0xebc5eb63,0xebc6eba5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xc5cede93,0xde94eef6,0xd651d673,0xef16ef16,0xce31c5ce,0xeef6ce31,0xe6d4e6d4,0xde94de93,0x23922bd3,0x23b22351,0x2bd32bd3,0x230f2330,0x2bb22371,0x23302371,0x2bd32bd3,0x23302350,0xebe6ec07,0xec06ebc5,0xec28ec28,0xe342e363,0xec06ebc5,0xeba4ebc5,0xec28ec28,0xe363eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xdeb3ce31,0xeef6c5ce,0xc5ceeef6,0xdeb4de93,0xd672d651,0xc5ced693,0xe6f4eef6,0xd652de93,0x237123b2,0x2bf42bd3,0x23912392,0x2bf423b2,0x23922351,0x2bf42bf4,0x237123b2,0x2bf42c35,0xebc6ec06,0xec48ec28,0xebc6ebe6,0xec48ec06,0xebe6ebc5,0xec48ec48,0xebc6ec06,0xec48ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xe6b4ce31,0xc5cede93,0xd653c5ce,0xd652ce32,0xd652c5ce,0xe6f4ce32,0xef35c5ce,0xc5cee6d4,0x2bf42bf4,0x23922392,0x2bf42c14,0x23922bb2,0x2bf42bd3,0x2bd32bd3,0x2c352c14,0x2bd32bd3,0xec48ec28,0xebe6ebe6,0xec48ec48,0xebe6ec06,0xec48ec27,0xec27ec27,0xec69ec48,0xec07ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xc5cee6f5,0xe6b4de94,0xd653c5ce,0xc5ced673,0xdeb4deb3,0xd673d653,0xc5ced673,0xe716c5ce,0x2bd323b2,0x2c352c35,0x2bd32bf4,0x23922392,0x23302350,0x23922371,0x23301aef,0x23922371,0xec07ec06,0xec69ec69,0xec27ec28,0xebe6ebe6,0xeb84eba5,0xebe6ebc5,0xeba4e342,0xebe6ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xde94ef15,0xc5cece31,0xde94e6d5,0xc5ceef16,0xe6d4d673,0xdeb4deb4,0xdeb4c5ce,0xdeb4deb4,0x23712351,0x23502350,0x2bd323b2,0x23712351,0x2bd32bd3,0x23502330,0x2bb22bb2,0x23302350,0xebc6eba5,0xeba5eba4,0xec28ec06,0xebc5ebc5,0xec27ec07,0xeba4e363,0xec06ec06,0xeb84eba4,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xef16e717,0xdeb4ce31,0xc610c610,0xe6d5c5cf,0xde93e6d4,0xce30c5ce,0xef36eef6,0xef37c5ee,0x71767155,0x81998a19,0x79977176,0x923a8a19,0x79777998,0x8a1981b9,0x71767176,0x8a1989f9,0xb9d8b1b7,0xc279c2f9,0xba19b9d8,0xcb3ac2fa,0xb9f8ba39,0xc2f9c299,0xb9d8b9d8,0xc2fac2d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc610ce32,0xce31e6d5,0xe716de94,0xbdaeded6,0xce0fe6f6,0xe6d5ded5,0xbd8dc610,0xbdaddeb4,0x8a3a8a3a,0x79988198,0x81998a19,0x89d981b9,0x89f9927a,0x79777977,0x81d98199,0x71767997,0xc31acb1a,0xba19c259,0xc279c2fa,0xc2b9c299,0xc2d9cb5a,0xb9f8b9f8,0xc2b9c279,0xb9d8ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6f7e6f6,0xc5efd673,0xde94d674,0xdeb5de93,0xd694c5ce,0xd673d673,0xe6f6c5ce,0xde94ded5,0x81b981d9,0x927a923a,0x81d98a19,0x79988199,0x79986954,0x8a1981d9,0x79987998,0x925a8a19,0xc299c2b9,0xcb5acb3a,0xc2b9c2f9,0xba19c279,0xba39a196,0xc2fac2b9,0xba39ba39,0xcb5ac2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xe6f7ef16,0xce31e6d5,0xef37ef16,0xef16ef16,0xef38c5ce,0xde95eef6,0xe6f6ce31,0xe6d6e717,0x79777997,0x69556954,0x8a3a8a19,0x69547176,0x89d98198,0x81d98199,0x927a927a,0x715581b9,0xb9f8ba19,0xa9b6a196,0xcb1ac2f9,0xa196b1b7,0xc2b9ba59,0xc2b9c279,0xcb5acb5a,0xa9b7c299,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef37c5ce,0xe6d5ef37,0xbdadce10,0xc5eec5ee,0xc5cede93,0xef17c5ce,0xe6d4c5ee,0xef37ef37,0x71767176,0x81998199,0x79977977,0x81d989d9,0x71767176,0x81b97977,0x69546954,0x81b97997,0xb9d8b1d8,0xc279c279,0xba19b9f8,0xc2b9c2b9,0xb9d8b9d8,0xc299b9f8,0xa9b6a9b6,0xc299ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5efde93,0xc5efc5ef,0xce30d673,0xde93de93,0xde93e6f6,0xce10deb4,0xc5eeded5,0xc5aec5ee,0x8a198a19,0x81d981d9,0x8a19927a,0x81b981d9,0x89f98a19,0x81997998,0x819881b9,0x81987176,0xc2fac2f9,0xc2b9c2b9,0xc2facb5a,0xc299c2b9,0xc2d9c2fa,0xc279ba19,0xba59c299,0xc259b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xe6d5d673,0xe6d5e6d5,0xc5eede93,0xdeb5eef6,0xdeb5e6d5,0xc5cdd673,0xded5e6f6,0xded5c5cf,0x79987977,0x89f97997,0x69556954,0x81997998,0x81b97176,0x927a927a,0x81d97998,0x925a927a,0xba19b9f8,0xc2d9ba19,0xa9b6a196,0xc279ba19,0xc299b9d8,0xcb5acb5a,0xc2b9ba39,0xcb3acb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xde94ef37,0xde94e6d5,0xc5efdeb4,0xef17ef16,0xde93de95,0xd651e6d5,0xef16f757,0xef37c5ef,0x81d981d9,0x79777175,0x81b98a19,0x79977176,0x79987977,0x71557977,0x79988198,0x71767176,0xc2b9c2b9,0xb9f8b1b7,0xc299c2f9,0xba19b9d8,0xba19b9f8,0xa9b7b9f8,0xba19ba59,0xb1b7b1b8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xf758c5ce,0xeef6ef16,0xef37f758,0xc610ce31,0xef16ef16,0xc610f757,0xce10ce32,0xef37c5cf,0x79777977,0x927a925a,0x81b981d9,0x8a198a19,0x79777176,0x8a1989d9,0x81b981b9,0x8a198a19,0xb9f8b9f8,0xcb5acb5a,0xc299c2b9,0xc2f9c2fa,0xb9f8b9d8,0xc2fac2b9,0xc299c299,0xc2f9c2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xce51de94,0xce31ce51,0xce31ce2f,0xe6f6ded6,0xc5eebdae,0xe6d5c610,0xd693ded5,0xc5cfdeb5,0x927a925a,0x89d989f9,0x81988198,0x81997998,0x927a89f9,0x799881b9,0x927a927a,0x819981d9,0xcb5acb5a,0xc2b9c2d9,0xba59ba59,0xc279ba39,0xcb5ac2d9,0xba19c299,0xcb5acb5a,0xc279c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xd673d694,0xdeb3d673,0xe6d5ce2f,0xef16deb4,0xc5eedeb4,0xde93e6d5,0xdeb4de93,0xc5cfdeb5,0x69547175,0x8a197977,0x69547176,0x79777176,0x69547176,0x79987977,0x79777155,0x79977176,0xa9b6b1b7,0xc2fab9d8,0xa196b9d8,0xb9f8b9d8,0xa196b9d8,0xba19b9f8,0xb9f8a9b7,0xba19b9d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xde94ce30,0xd673de93,0xded4ce2f,0xe6d4e6f5,0xc5cede73,0xd673e6d5,0xe6f6deb4,0xdeb4d673,0x799881b9,0x81987176,0x89d989d9,0x69546955,0x81997977,0x71767977,0x89d989d9,0x69557176,0xba39c299,0xc259b9d8,0xc2b9c2b9,0xa196a9b6,0xc279b9f8,0xb1b7b9f8,0xc2b9c2b9,0xa9b6b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xf778ce11,0xef36e6f6,0xf758ce2f,0xf757f757,0xe6f6ef17,0xf757bdad,0xe6f6e6f6,0xf757f757,0x79778198,0x8a1989d9,0x79977998,0x8a198198,0x79987176,0x8a198a19,0x79778198,0x8a19927a,0xb9f8c259,0xc2fac2b9,0xba19ba19,0xc2faba59,0xba19b9d8,0xc2fac2fa,0xb9f8c259,0xc2f9cb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xd673c610,0xc5f0d651,0xc610ce10,0xc5f0ce31,0xc60fc610,0xc5cec5cf,0xce52ce30,0xc5cfc5f1,0x8a1989f9,0x79987998,0x8a198a3a,0x79988199,0x8a1981d9,0x81d981d9,0x925a923a,0x81b981d9,0xc2fac2d9,0xba39ba19,0xc2facb1a,0xba19c279,0xc2fac2b9,0xc2b9c2b9,0xcb5acb3a,0xc299c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xd674e6d5,0xde94de94,0xd674de94,0xce32d653,0xd673d673,0xde94de93,0xe6f6d673,0xe6f5e6f6,0x81b98198,0x927a925a,0x81d989f9,0x79987998,0x71557176,0x79987977,0x71756954,0x79987977,0xc299c259,0xcb5acb3a,0xc2b9c2d9,0xba19ba19,0xb1b7b9d8,0xba19b9f8,0xb1b7a195,0xba39b9f8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xef16eef6,0xe6f6ef16,0xe6d5e6b5,0xef16f757,0xf757ef16,0xef16ef16,0xf757ef16,0xef16f757,0x79777176,0x71767176,0x89d98198,0x79777176,0x81d981b9,0x71766955,0x81998199,0x71557176,0xb9f8b9d8,0xb9d8b1b8,0xc2b9ba59,0xb9f8b9d8,0xc2b9c299,0xb1d8a9b6,0xc279c279,0xb1b7b1d8,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xe6d4ef15,0xdeb3deb4,0xe6b4de73,0xd673de94,0xdeb4d673,0xe6f5d693,0xded4de93,0xdeb4deb4,0x21712170,0x21b329d4,0x21922171,0x29d529d4,0x21922192,0x29d429b3,0x21712171,0x29d429b4,0x53f94b99,0x6c7a7cdb,0x5c1a53d9,0x851b7cdb,0x5c1a643a,0x7cdb6c9a,0x53f953d9,0x7cdb7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d4,0xe6d4de93,0xded4de94,0xce52d673,0xde93d653,0xdeb4d693,0xe6f5deb4,0xdeb4deb4,0x29d529d5,0x21922193,0x21b329d4,0x29b429b3,0x29b429d6,0x21922192,0x29b421b3,0x21712192,0x84fb851b,0x643a6c7a,0x6c7a7cdb,0x74bb6c9a,0x7cdb8d5b,0x5c1a5c1a,0x749a6c7a,0x53d95c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4e6d5,0xded5d673,0xd674de94,0xd693d653,0xd673d673,0xd673deb3,0xdeb4de94,0xe6d4deb3,0x29b329b4,0x29d629d5,0x29b429d4,0x219221b3,0x2192214f,0x29d429b4,0x21922192,0x29d529d4,0x6c9a749a,0x8d5b851b,0x749a7cdb,0x643a6c7a,0x645a3b59,0x7cdb749a,0x645a643a,0x8d3b7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4deb4,0xdeb4de94,0xded4de94,0xd672deb3,0xd672ce31,0xce32d652,0xde93d652,0xde93e6d4,0x21922192,0x2150214f,0x29d529d4,0x214f2171,0x29b42193,0x29b421b3,0x29d629d6,0x217029b3,0x5c1a5c1a,0x43793b59,0x851b7cdb,0x3b584bb9,0x74bb645a,0x749a6c7a,0x8d5b8d5b,0x43996c9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4de93,0xdeb4deb4,0xde73d673,0xce32e6b4,0xd673d673,0xd673d652,0xde94deb4,0xdeb3d673,0x21712171,0x29b329b3,0x21922192,0x29b429b4,0x21712171,0x29b32192,0x21502150,0x29b32192,0x53f953d9,0x6c7a6c7a,0x5c1a5c1a,0x749a74bb,0x53f953d9,0x6c9a5c1a,0x43794379,0x6c9a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb3ce32,0xde93d693,0xe6d5d673,0xde93deb4,0xded3de93,0xce31deb3,0xef16e6d4,0xd652e6f5,0x29d529d4,0x29b429b4,0x29d429d6,0x29b329b4,0x29b429d5,0x21b32192,0x219329b3,0x21932171,0x7cfb7cdb,0x749a749a,0x7cdb8d3b,0x6c9a749a,0x7cdb7cfb,0x6c7a643a,0x645a6c9a,0x6c7a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672d652,0xd673d652,0xe6d4deb4,0xce32de93,0xd673e6d4,0xdeb4d672,0xdeb4e6f5,0xde93deb4,0x21922192,0x29b42192,0x2150214f,0x29b32192,0x29b32171,0x29d629d6,0x29b42192,0x29d529d6,0x643a5c1a,0x7cdb5c1a,0x43793b59,0x6c7a643a,0x6c9a53f9,0x8d5b8d5b,0x749a645a,0x8d3b8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xde94deb4,0xe6b4de93,0xde94deb4,0xde93de94,0xe6d4deb3,0xe6f5e6f5,0xd693e6d4,0x29b429b4,0x21922170,0x29b329d4,0x21922171,0x21922192,0x21702192,0x21922193,0x21712171,0x749a749a,0x5c1a4bb9,0x6c9a7cdb,0x5c1a53f9,0x643a5c1a,0x43995c1a,0x643a645a,0x4bb94bb9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xce52deb4,0xd673de93,0xd652d652,0xdeb4deb4,0xde94e6f4,0xdeb4de93,0xde94deb4,0x21922192,0x29d629d5,0x29b329b4,0x29d429d4,0x21922171,0x29d429b4,0x29b329b3,0x29d429d5,0x5c1a5c1a,0x8d5b8d3b,0x6c9a749a,0x7cdb7cdb,0x5c1a53d9,0x7cdb74bb,0x6c9a6c9a,0x7cdb7cfb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4d673,0xd673deb4,0xd652deb3,0xe6f6d673,0xde93de94,0xde93e6d4,0xdeb4d673,0xde94de94,0x29d629d5,0x29b429b4,0x21932193,0x21b32192,0x29d629b4,0x219229b3,0x29d629d6,0x21b329b4,0x8d3b8d3b,0x74bb7cdb,0x645a645a,0x6c7a643a,0x8d3b7cdb,0x643a6c9a,0x8d5b8d5b,0x6c7a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93d652,0xce32de93,0xd673ce32,0xef36e6d5,0xd653deb4,0xd673de73,0xde93de93,0xde93de94,0x21502170,0x29d42191,0x214f2171,0x21922171,0x214f2171,0x21922192,0x21922170,0x21922171,0x43794bb9,0x7cdb53f9,0x3b5853f9,0x5c1a53d9,0x3b5853f9,0x643a5c1a,0x5c1a4399,0x5c1a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xd652deb3,0xde93d693,0xe6d4deb4,0xdeb3d652,0xd693de93,0xdeb4e6f4,0xd673deb4,0x219229b3,0x21932171,0x29b429b4,0x214f2150,0x21b32192,0x21712192,0x29b429b4,0x21502171,0x643a6c9a,0x6c7a53f9,0x74bb74bb,0x3b584379,0x6c7a5c1a,0x4bb95c1a,0x74bb74bb,0x437953d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93e6d4,0xde93deb3,0xde73d673,0xe6b4de93,0xde93d672,0xdeb3d652,0xdeb4e6f4,0xd652deb4,0x21922193,0x29d429b4,0x21922192,0x29d42193,0x21922171,0x29d429d4,0x21922193,0x29d429d6,0x5c1a6c7a,0x7cdb74bb,0x5c1a643a,0x7cdb645a,0x643a53f9,0x7cdb7cdb,0x5c1a6c7a,0x7cdb8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xde93deb4,0xce33ce52,0xd652ce32,0xd693d672,0xe6f4d672,0xded4e6f5,0xe6f5e6d4,0x29d429b4,0x21922192,0x29d429d5,0x219221b3,0x29d429b4,0x29b429b4,0x29d529d5,0x29b329b4,0x7cdb7cdb,0x645a643a,0x7cdb851b,0x643a6c7a,0x7cdb749a,0x749a749a,0x8d3b851b,0x6c9a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde94deb4,0xde94e6b4,0xce33d673,0xce32ce32,0xde93deb3,0xe6d4d673,0xe715deb3,0xef15e715,0x29b32193,0x29d629d5,0x29b429b4,0x21922192,0x21702171,0x21922192,0x2170194f,0x21922192,0x6c9a6c7a,0x8d5b8d3b,0x749a7cdb,0x643a643a,0x4b9953d9,0x643a5c1a,0x4bb93b38,0x643a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d5,0xde93d673,0xde94e6d4,0xd652d673,0xdeb4deb4,0xdeb4d673,0xd693e6d4,0xef15e6f4,0x21922171,0x21712171,0x29b42193,0x21922171,0x29b429b3,0x21712150,0x21b321b3,0x21702171,0x5c1a53d9,0x53d94bb9,0x74bb645a,0x5c1a53f9,0x749a6c9a,0x53d94379,0x6c7a6c7a,0x4b9953d9,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x49634963,0x51a359c3,0x51834963,0x61c359c3,0x51835183,0x59c359a3,0x49634963,0x59c359a3,0xb523a4c2,0xc5a3d624,0xbd63ad02,0xde64d644,0xb543bd83,0xd624cdc3,0xb523ad02,0xd644d623,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae7bef,0x22712271,0x73ae2271,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x59c361c3,0x51835183,0x51a359c3,0x59a359a3,0x59a361c4,0x51835183,0x59a351a3,0x49635183,0xde64de64,0xbd63c5a3,0xc5a3d644,0xce03cdc3,0xd623de65,0xb543b543,0xcde3c5a3,0xad02bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x8c7173ae,0x11751175,0x73ae1a54,0x11b21156,0x73ae2231,0x7bef7bef,0x8c718c71,0x59a359a3,0x61c461c3,0x59a359c3,0x518351a3,0x51834142,0x59c359a3,0x51835183,0x61c359c3,0xcdc3cde3,0xde65de64,0xcde3d624,0xbd63c5a3,0xc5839c82,0xd644cde3,0xc583bd83,0xde65d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000dedb,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x117473ae,0x73ae73ae,0x1a151176,0x73ae1a54,0x227173ae,0x7bef2211,0x51835183,0x49634142,0x61c359c3,0x41424963,0x59a35183,0x59a351a3,0x61c461c4,0x496359a3,0xb543bd63,0xa4a29c82,0xde64d624,0x9c62a4e2,0xce03c5a3,0xcde3c5a3,0xde65de65,0xa4c2cdc3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef6b4d,0x11331a53,0x7bef1152,0x7bef7bef,0x8c718c71,0x7bef7bef,0x22527bef,0x6b4d32f1,0x49634963,0x59a359a3,0x51835183,0x59a359a3,0x49634963,0x59a35183,0x49424942,0x59a35183,0xb523ad02,0xcdc3cdc3,0xbd63b543,0xcde3ce03,0xb523ad02,0xcdc3b543,0x9c829c82,0xcdc3bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae8c71,0x8c7119d5,0x73ae8c71,0x1a3419f6,0x8c712252,0x1a348c71,0x7bef3310,0x59c359c3,0x59a359a3,0x59c361c4,0x59a359a3,0x59a359c3,0x51a35183,0x518359a3,0x51834963,0xd644d624,0xcde3cde3,0xd644de65,0xcdc3cde3,0xd623d644,0xc5a3bd63,0xc5a3cdc3,0xc5a3ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x1a3673ae,0x1a341a35,0x2a711a15,0x1a1473ae,0x7bef2ab1,0x51835183,0x59a35183,0x49634142,0x59a35183,0x59a34963,0x61c461c4,0x59a35183,0x61c361c4,0xbd63b543,0xd623bd63,0xa4a29c82,0xcdc3bd63,0xcdc3b523,0xde65de65,0xcde3c583,0xde64de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xffff0000,0xffffdedb,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdedb,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22537bef,0x6b4d19f7,0x73ae8c71,0x12387bef,0x1a957bef,0x1a542a71,0x8c718c71,0x8c718c71,0x59a359a3,0x51834963,0x59a359c3,0x51834963,0x51835183,0x49635183,0x51835183,0x49634963,0xcde3cde3,0xb543a4e2,0xcdc3d624,0xbd63b523,0xbd63b543,0xa4c2b543,0xbd63c5a3,0xa4e2ace2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xef5d0000,0xffffef5d,0xef5ddedb,0xef5dffff,0x0000ffff,0x0000dedb,0xffff0000,0x00000000,0xef5d0000,0x0000ef5d,0xef5d0000,0xffff0000,0x0000dedb,0x0000dedb,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a157bef,0x73ae1256,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x51835183,0x61c461c3,0x59a359a3,0x59c359c3,0x51834963,0x59c359a3,0x59a359a3,0x59c359c3,0xb543b543,0xde65de65,0xcdc3cde3,0xd624d644,0xb543ad02,0xd644ce03,0xcdc3cdc3,0xd624d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x0000ef5d,0xdedbffff,0x00000000,0xef5def5d,0xef5d0000,0xffffef5d,0xffffffff,0x0000ffff,0x0000ef5d,0xdedbffff,0x00000000,0xdedbef5d,0x0000ffff,0x0000ef5d,0x0000ffff,0x0000ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c718c71,0x19f87bef,0x1ab81a36,0x1a541219,0x7bef7bef,0x22711a33,0x8c718c71,0x6b4d8c71,0x61c461c3,0x59a359a3,0x51835183,0x51a35183,0x61c459a3,0x518359a3,0x61c461c4,0x51a359a3,0xde65de65,0xce03d623,0xc5a3c5a3,0xc5a3bd83,0xde65d623,0xbd63cdc3,0xde65de65,0xc5a3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xdedbdedb,0xdedbffff,0xffffef5d,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdedbdedb,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae73ae,0x7bef7bef,0x1ab87bef,0x73ae1237,0x6b4d7bef,0x23161a33,0x73ae73ae,0x7bef6b4d,0x49424963,0x59c34963,0x41424963,0x51834963,0x41424963,0x51835183,0x51834963,0x51834963,0x9c82a4e2,0xd644b523,0x9c62b523,0xb543b522,0x9c62b523,0xbd63b543,0xb543a4c2,0xbd63ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdedbffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x518359a3,0x51834963,0x59a359a3,0x41424963,0x51a35183,0x49635183,0x59a359a3,0x49634963,0xbd83cdc3,0xc5a3b523,0xce03ce03,0x9c62a4a2,0xc5a3b543,0xa4e2b543,0xce03ce03,0xa4a2ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0xdedb0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x7bef7bef,0x12387bef,0x1a917bef,0x7bef1237,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x51835183,0x59c359a3,0x51835183,0x59c35183,0x51834963,0x59c359c3,0x51835183,0x59c361c4,0xb543c5a3,0xd644ce03,0xbd63bd63,0xd644c5a3,0xbd63b523,0xd644d644,0xb543c5a3,0xd624de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b4d7bef,0x2b731ab8,0x1a541ad8,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x1a540937,0x7bef7bef,0x59c359a3,0x51835183,0x59c361c3,0x518351a3,0x59c359a3,0x59a359a3,0x61c361c3,0x59a359a3,0xd644d623,0xc583bd63,0xd644de64,0xbd63c5a3,0xd644cde3,0xcde3cde3,0xde65de64,0xcdc3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x59a35183,0x61c461c3,0x59a359a3,0x51835183,0x49634963,0x51835183,0x49634142,0x51835183,0xcdc3c5a3,0xde65de64,0xcde3d623,0xbd63bd63,0xa4c2ad02,0xbd63b543,0xa4e29c62,0xbd83b543,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x51834963,0x49634963,0x59a35183,0x51834963,0x59a359a3,0x49634963,0x51a351a3,0x49634963,0xb543b522,0xad02ace2,0xce03c5a3,0xb543b523,0xcde3cdc3,0xad02a4a2,0xc5a3c5a3,0xa4c2ad02,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ef5d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x1a5332ef,0x1ab81a53,0x1a54121a,0x22711a54,0x1a542271,0x2a712211,0x2a712a71,0x12361236,0x32223202,0x3a633a83,0x32423222,0x3aa33aa3,0x32423243,0x3a833a83,0x32223222,0x3aa33a83,0x35653525,0x3e054666,0x3da53565,0x46674666,0x35853dc5,0x46663e06,0x35653565,0x46663e66,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x220e1a72,0x1ab81ab8,0x22712271,0x22712271,0x1a540957,0x099711b2,0x22112a71,0x12362a50,0x3aa33aa3,0x32433263,0x3a633aa3,0x3a833a83,0x3a8342c3,0x32423242,0x3a833a63,0x32223242,0x46674667,0x3dc53de5,0x3e054666,0x3e463e06,0x3e664e88,0x35853585,0x3e263e05,0x35653da5,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ad0,0x22712232,0x11751175,0x09971a54,0x11b21156,0x1a322231,0x2a502a71,0x2ab12250,0x3a833a83,0x42c33aa3,0x3a833a83,0x32423a63,0x324329e2,0x3aa33a83,0x32433243,0x3ac33aa3,0x3e063e26,0x4e884667,0x3e264666,0x3dc53e05,0x3dc534e4,0x46663e26,0x3dc53dc5,0x4e674666,0xb5968430,0xb596a514,0xa5149cf3,0xd00094b2,0xb596b000,0xce79ad14,0xad55ce79,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x2a9232f1,0x19922a71,0x11741173,0x09371196,0x1a151176,0x1a531a54,0x22712a71,0x2ab12211,0x32423242,0x320229e2,0x3aa33a83,0x29e23222,0x3a833263,0x3a833a63,0x42c342c3,0x32023a83,0x35853da5,0x350534e4,0x46674666,0x2cc43545,0x3e463de5,0x3e263e05,0x4e884e88,0x35053e06,0xa5148430,0x84109492,0xa5149cf3,0xf8009492,0xb596b000,0xad149cf3,0xc638a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ab1,0x11331a53,0x1a111152,0x093719b4,0x1a5411d5,0x2a712233,0x22522251,0x2ab132f1,0x32223222,0x3a633a63,0x32423242,0x3a833a83,0x32223222,0x3a833242,0x2a022a02,0x3a833242,0x35653545,0x3e063e06,0x3da53585,0x3e263e46,0x35653565,0x3e063585,0x35043504,0x3e063da5,0xad557bcf,0x84109492,0x9cf3a514,0xf8009492,0xb596d800,0x9cf3a514,0xce79a514,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b73310,0x117619b3,0x2ab219d5,0x09372274,0x1a3419f6,0x2a712252,0x1a342a71,0x32f13310,0x3aa33a83,0x3a833a83,0x3aa342c3,0x3a833a83,0x3a833aa3,0x3a633242,0x32633a83,0x32633222,0x46664666,0x3e263e26,0x46664e68,0x3e063e26,0x3e664666,0x3e053dc5,0x3de53e06,0x3de53545,0xad558430,0x9492b596,0x9cf38410,0xd0009492,0xb596b000,0xa514a514,0xad55ce79,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b719b7,0x19f819f5,0x23151a37,0x1a362274,0x1a341a35,0x2a711a15,0x1a142a71,0x19b72ab1,0x32433242,0x3a833242,0x320229e2,0x3a633243,0x3a833222,0x42c342c3,0x3a833243,0x3ac342c3,0x3dc53585,0x3e663da5,0x350534e4,0x3e063dc5,0x3e063565,0x4e884e88,0x3e263dc5,0x4e674e88,0xa5148430,0x9492a514,0xa5148410,0xd0009492,0xb596d000,0x9cf3a514,0xa514ce79,0x8430b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x225319b7,0x129819f7,0x19f51a58,0x12380937,0x1a952274,0x1a542a71,0x2ab11a33,0x19b719b7,0x3a833a83,0x32423222,0x3a833a83,0x32423222,0x32423242,0x32023242,0x32433263,0x32223222,0x3e263e26,0x35853525,0x3e064666,0x3da53565,0x3dc53585,0x35053585,0x3dc53de5,0x35453545,0xb5968430,0x9cf3b596,0x84109492,0xf8009492,0xb596a800,0xce799cf3,0xb596b596,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9b66ac49,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac690000,0x6a239367,0x9367ac69,0x00006a23,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac680000,0x6a039367, +0x9386ac68,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac880000,0x6a049367,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a1519b7,0x1a771256,0x09371a57,0x12161a54,0x1a731a74,0x1a341237,0x2ab11a34,0x19b71152,0x32423242,0x42c33ac3,0x3a833a83,0x3a833aa3,0x32423222,0x3aa33a83,0x3a833a83,0x3a833aa3,0x35853585,0x4e884e67,0x3e063e26,0x46664666,0x35853565,0x46663e46,0x3e063e06,0x46664666,0xad558430,0xa514ad55,0x84109492,0xf8009492,0xb596d000,0xc638a514,0xa514a514,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b67acca,0x000059e2,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a239367,0x8b46b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a049367, +0x8b67b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a048b67,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b71a57,0x19f811f9,0x1ab81a36,0x1a541219,0x2a711a92,0x22711a33,0x2ab11a53,0x19b71a53,0x42c33ac3,0x3a833a83,0x32633263,0x3a633243,0x42c33a83,0x32433a83,0x42c342c3,0x3a633a83,0x4e684e67,0x3e463e46,0x3de53de5,0x3e053dc5,0x4e683e66,0x3dc53e06,0x4e884e88,0x3e053e26,0xb5969492,0xad55ad55,0x9492ad55,0xf8009492,0xb596f800,0xad55ce79,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b06ac68,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x51e39367,0x8b45ac69,0x000059e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x59e39367, +0x8b46ac89,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac480000,0x51e39366,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12371a57,0x1a571236,0x1ab81a97,0x1a541237,0x2a711237,0x23161a33,0x09971a53,0x12161a53,0x2a023222,0x3aa33222,0x29e23222,0x32423222,0x29e23222,0x32423242,0x32423202,0x32423222,0x35043525,0x46663585,0x2cc43565,0x35853565,0x2cc43565,0x3dc53585,0x35853505,0x3da53565,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b26b4aa,0x6a246204,0x6a046a04,0x6a046a03,0x51e451c2,0x6a246a03,0x93a859e3,0x5a038b67,0x8b46acaa,0x6a0369e4,0x6a036a03,0x6a246a03,0x51e351e3,0x6a236a23,0x69e451c3,0x6a036a03,0x59e36224,0x6a036a03,0x6a2351c3,0x6a236a24,0x6a036a03,0x6a236a04,0x93a86203,0x51c38b67, +0x8b26b4c9,0x6a046a03,0x62046223,0x6a036a03,0x59e351e3,0x6a036a03,0x9bc859c3,0x59c38b66,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a5719f8,0x1a981236,0x12191ab8,0x1a701a16,0x1a331237,0x2a711a74,0x09972a71,0x12161a53,0x32433a83,0x32633222,0x3a833a83,0x29e23202,0x3a633242,0x32223242,0x3a833a83,0x32023222,0x3dc53e06,0x3de53565,0x3e463e46,0x2cc43505,0x3e053585,0x35453585,0x3e463e46,0x35053545,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9366a489,0x93678b46,0x93679367,0x8b468b45,0x93469366,0x8b468346,0x93669366,0x52039387,0x9367ac69,0x93878346,0x93678b47,0x8b468b26,0x93679366,0x83268b46,0x93869347,0x8b469367,0x8b458b46,0x93669367,0x93678b87,0x8b469346,0x93468b46,0x93678b26,0x93668b66,0x59c38b66, +0x9347aca9,0x93678326,0x93669367,0x8b268b46,0x936793a7,0x8b468326,0x93669366,0x59e39387,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12361236,0x1ab81a76,0x12381a98,0x1a911a35,0x2a711237,0x09971a73,0x1a530997,0x12161a54,0x32423263,0x3aa33a83,0x32423242,0x3aa33263,0x32433222,0x3aa33aa3,0x32423263,0x3a8342c3,0x35853de5,0x46663e46,0x3da53dc5,0x46663de5,0x3dc53565,0x46664666,0x35853de5,0x46664e88,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x68006800,0x68206820,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x70006800,0x70006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68206800,0x68006800,0x68006800,0xbdd7b5b6,0xce59d6b9,0xb5b6ce59,0xb5b6b5d7, +0xb5d6b596,0xce39ce59,0xb5b6ce59,0xb5b6b5b6,0xbdd7b5d7,0xce59d67a,0xbdd6ce79,0xb5b7b5d7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12981236,0x2b731ab8,0x1a541ad8,0x1a7319f3,0x1a742a71,0x09971a16,0x1a540937,0x12361236,0x3aa33a83,0x32433242,0x3aa33aa3,0x32423a63,0x3aa33a83,0x3a833a83,0x3ac33aa3,0x3a833a83,0x46663e66,0x3dc53dc5,0x46664667,0x3dc53e05,0x46663e26,0x3e263e26,0x4e674667,0x3e063e26,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88828021,0x99049904,0x99249904,0x990398e4,0x88a288a2,0x806288c2,0x80618082,0x88a288a2,0x88828041,0x99049904,0x99039104,0x98e49904,0x888288a2,0x806188a3,0x80828081,0x88a280a2,0x78828882,0xa1457000,0x88a28081,0x68008883,0xce7ab5b6,0xef5def5d,0xef3def7d,0xb5b6d679, +0xd699b5b6,0xef7eef7e,0xef7df77d,0xf75def7d,0xf77dffdf,0xf7beef9d,0xf77def9d,0xb5b6ce9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a7619f8,0x3bd41ab8,0x121a22d7,0x1a931a15,0x1a961a94,0x09970997,0x1a331a73,0x12361236,0x3a833263,0x42c33ac3,0x3a833a83,0x32423243,0x32023222,0x32423242,0x322229e2,0x32433242,0x3e063de5,0x4e884e67,0x3e263e66,0x3dc53dc5,0x35253565,0x3dc53585,0x35252cc4,0x3dc53585,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88c28041,0x88a28882,0x88a288a2,0x808188a2,0x80628082,0x80828042,0x88c28862,0x806288a2,0x88a28041,0x88a288c2,0x88a28882,0x808288a2,0x78a27882,0x78828082,0x88a290a3,0x808188a2,0x88a288a2,0xb1a67820,0x88a2a125,0x68008062,0xef7dbdb6,0xef7eef9d,0xef7def9d,0xb5b7ce99, +0xce79b5d7,0xef7def5d,0xffdfffdf,0xf7deffdf,0xffbfffbe,0xf77def7d,0xef5def9e,0xb5b6ce7a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a531ad6,0x12981a53,0x12981af8,0x22712271,0x1ab61ab4,0x2a711a54,0x22922a71,0x12362a50,0x32423222,0x32223222,0x3a833263,0x32423222,0x3a833a83,0x32223202,0x3a633a63,0x32023222,0x35853565,0x35653545,0x3e463de5,0x35853565,0x3e263e06,0x35453505,0x3e053e05,0x35253545,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x80418061,0x80408021,0x80418021,0x80828041,0x78828062,0x80618081,0x80418061,0x80627882,0x80218041,0x80217841,0x80408041,0x80828041,0x78828082,0x80828062,0x78417841,0x806280a2,0x80208061,0x80407820,0x80619965,0x68008041,0xce7ab5b6,0xce59ce99,0xbdd6b5d7,0xb596b5b7, +0xce99bd96,0xce59ce79,0xbdd6b5d7,0xbd96b596,0xce9ab5b6,0xce79ce7a,0xbdb7bdb6,0xb5d6b5b6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91448924,0xa165b185,0x99449144,0xb185b185,0x9944a165,0xb185a965,0x91449144,0xb185b185,0xd391cb0f,0xdc33e4d5,0xd3b2d371,0xe516e4d5,0xd3b2dc13,0xe4d5dc54,0xd391d371,0xe4d5dcd5,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0x4a690000,0x31860000,0x4a699cd3,0x00009cd3,0x9cd34a69,0x8c510000,0x00003186,0x00008c51,0x4a693186,0x31863186,0x4a699cd3,0x31869cd3,0x9cd34a69,0x8c513186,0x31863186,0x31868c51,0x80408061,0x80418041,0x80417840,0x80418041,0x80418041,0x80218040,0x80418020,0x80418041,0x80418021,0x80217840,0x78208041,0x68007021,0xb5b6b5b7,0xa574b5b5,0xb5b6ad75,0xbdb7b5b6, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x5a246a85,0x62656265,0x41a46265,0xa5346b4d,0x00005205,0xb185b185,0x9965a165,0xa165b185,0xa965a965,0xb185b9a5,0x99449944,0xa965a165,0x91449944,0xe4f6e4f6,0xd3f2dc33,0xdc33e4d5,0xdc94dc54,0xdcd5e557,0xd3b2d3b1,0xdc74dc33,0xd371d3b2,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0x9cd34208,0x9cd30000,0x9cd34a69,0x42080000,0x00004a69,0x00008c51,0x9cd33186,0x9cd30000,0x9cd33186,0x9cd33186,0x9cd34a69,0x31863186,0x31864a69,0x31868c51,0x9cd33186,0x9cd33186,0x80418041,0x80417821,0x80608041,0x80828081,0x80827862,0x782180a1,0x78407820,0x80417841,0x80218021,0x98a27820,0x78218882,0x70007021,0xd679d699,0xb5b6c5f8,0xce59b5b7,0xb5d6d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x38e10000,0x38e138e1,0x38e138e1,0x000038e1,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x8b87ac4a,0xac4aac4a,0x6aa78b87,0xa5346b4d,0x00008328,0xa965a965,0xb9a5b185,0xa965b185,0x9944a165,0xa1658124,0xb185a965,0xa165a165,0xb985b185,0xdc54dc74,0xe557e516,0xdc74e4d5,0xd3d2dc33,0xdc13cacf,0xe4d5dc74,0xdc13dc13,0xe536e4d5,0xb5968430,0xb596a514,0xa5149cf3,0x400094b2,0xb5962000,0xce79ad14,0xad55ce79,0x9492b596, +0x00003186,0x00009cd3,0x00009cd3,0x4a699cd3,0x00000000,0x4a699cd3,0x42080000,0x00009cd3,0x31863186,0x31869cd3,0x31869cd3,0x4a699cd3,0x31863186,0x4a699cd3,0x31863186,0x31869cd3,0x88408021,0x888288a2,0x88a288a2,0x80627882,0x80818082,0x80627862,0x78828082,0x80828081,0x80828082,0xa9857820,0x808298e3,0x68007020,0xdefbce99,0xce79deba,0xdebbc699,0xb5b6ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x38e10000,0x924338e1,0x92439243,0x92439243,0x38e19243,0x38e138e1,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0x89248124,0xb185b185,0x81249144,0xa985a165,0xa965a165,0xb9a5b9a5,0x8924a965,0xd3b2d3b2,0xcaefcacf,0xe4f6e4d5,0xcaaed330,0xdc94dc13,0xdc74dc33,0xe557e557,0xcb0fdc54,0xa5148430,0x84109492,0xa5149cf3,0x48009492,0xb5962800,0xad149cf3,0xc638a514,0x8430a514, +0x8c514208,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd30000,0x4a690000,0x00003186,0x8c513186,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd33186,0x4a693186,0x31863186,0x90617841,0x88a290e3,0x808288a2,0x78817862,0x80627881,0x78a27862,0x80628062,0x80618081,0x80817882,0xa9857020,0x8082a145,0x68007021,0xdebbc638,0xdefbdedb,0xce79d6ba,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x38e10000,0x924338e1,0xbae49243,0xaac4bae4,0xaac4aac4,0x9243aac4,0x92439243,0x000038e1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91449144,0xa165a165,0x99449944,0xa965a985,0x91449144,0xa9659944,0x89248924,0xa9659944,0xd391d350,0xdc53dc53,0xd3b2d3b2,0xdc74dc94,0xd391d371,0xdc54d3b2,0xcaefcaef,0xdc54d3d2,0xad557bcf,0x84109492,0x9cf3a514,0x48009492,0xb5962800,0x9cf3a514,0xce79a514,0x7bcfb596, +0x00000000,0x00009cd3,0x4a698c51,0x9cd30000,0x00004a69,0x8c519cd3,0x4a690000,0x42080000,0x31863186,0x31869cd3,0x4a698c51,0x9cd33186,0x31863186,0x8c519cd3,0x4a693186,0x31863186,0x90818040,0x88a298c3,0x80828081,0x80618082,0x80617862,0x88828082,0x80828062,0x78627881,0x80817861,0xa9a67020,0x88a290e3,0x68007040,0xdedbc618,0xef5cdebb,0xd678defb,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xbae4bae4,0xa284aac4,0xa284c618,0xa284a284,0xaac4bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41c46265,0xa5346b4d,0x00005205,0xb185b185,0xa965a965,0xb185b9a5,0xa965a965,0xb185b185,0xa1659944,0xa165a965,0xa1659144,0xe4f5e4d5,0xdc74dc74,0xe4d5e557,0xdc54dc74,0xdcd5e4f5,0xdc33d3d2,0xdc13dc54,0xdc33d350,0xad558430,0x9492b596,0x9cf38410,0x58009492,0xb5962800,0xa514a514,0xad55ce79,0x8430ad55, +0x00008c51,0x42080000,0x4a699cd3,0x00000000,0x9cd30000,0x9cd34a69,0x9cd30000,0x4a693186,0x31868c51,0x31863186,0x4a699cd3,0x31863186,0x9cd33186,0x9cd34a69,0x9cd33186,0x4a693186,0x88828041,0x90e39904,0x80a28082,0x88828082,0x88a38082,0x88a388a2,0x88a288a2,0x88a290a2,0x888288a2,0xb1e78061,0x88a39103,0x68007820,0xe6fcc618,0xef5def5d,0xdf1cef5d,0xad75c618, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xa284a284,0xce79ef5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b878b87,0x8b878b87,0x6aa7a409,0xa5346b4d,0x00008328,0x99659944,0xb1859944,0x89248124,0xa1659965,0xa9659144,0xb9a5b9a5,0xa965a165,0xb985b9a5,0xd3f2d3b2,0xdcd5d3d2,0xcaefcacf,0xdc53d3f2,0xdc54d391,0xe557e557,0xdc74dc13,0xe536e557,0xa5148430,0x9492a514,0xa5148410,0x58009492,0xb5962800,0x9cf3a514,0xa514ce79,0x8430b596, +0x42089cd3,0x4a698c51,0x9cd30000,0x9cd30000,0x00004208,0x00009cd3,0x00004a69,0x4a699cd3,0x31869cd3,0x4a698c51,0x9cd33186,0x9cd33186,0x31863186,0x31869cd3,0x31864a69,0x4a699cd3,0x90828021,0x90c39903,0x88a288a2,0x80a388a2,0x88a288a2,0x88a288a2,0x88a18882,0x88a290c2,0x80a288a2,0xb1e78861,0x88a298c3,0x68007020,0xf77ed69a,0xef5eef7e,0xef5def5d,0xb596d679, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xef5dce79,0xef5def5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284bdf7,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa965a965,0x99448924,0xa965b185,0x99449144,0x99449944,0x89249944,0x9965a165,0x91449144,0xdc74dc74,0xd3b2d310,0xdc54e4d5,0xd3b2d391,0xd3d2d3b2,0xcb0fd3b1,0xd3f2dc13,0xd330d350,0xb5968430,0x9cf3b596,0x84109492,0x50009492,0xb5962800,0xce799cf3,0xb596b596,0x9492b596, +0x9cd30000,0x9cd34a69,0x00003186,0x4a699cd3,0x00004a69,0x9cd30000,0x9cd34a69,0x9cd30000,0x9cd33186,0x9cd34a69,0x31863186,0x4a699cd3,0x31864a69,0x9cd33186,0x9cd34a69,0x9cd33186,0x90628041,0x88a39903,0x888288a3,0x90a288a2,0x88a288a2,0x88a288a2,0x88a288a2,0x888288c2,0x88a288a2,0xb1c78861,0x808290e3,0x68007021,0xf7bed6ba,0xef7ef79d,0xef5def5d,0xb576ce7a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce7938e1,0xef5def5d,0xc618ef5d,0xc618c618,0xc618c618,0xbdf7c618,0xbdf7bdf7,0x38e1bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0xb9a5b985,0xa965a965,0xb185b185,0x99449144,0xb185a965,0xa965a965,0xb185b185,0xd3b2d3b2,0xe557e536,0xdc54dc74,0xe4d5e4d5,0xd3b1d371,0xe4d5dc94,0xdc54dc54,0xe4d5e4f5,0xad558430,0xa514ad55,0x84109492,0x50009492,0xb5964020,0xc638a514,0xa514a514,0x8430ad55, +0x31860000,0x00009cd3,0x9cd33186,0x9cd30000,0x00009cd3,0x00009cd3,0x00008c51,0x00009cd3,0x31863186,0x31869cd3,0x9cd33186,0x9cd33186,0x31869cd3,0x31869cd3,0x31868c51,0x31869cd3,0x90628041,0x88a29904,0x88a280a1,0x80a28082,0x88a28883,0x88a288a2,0x88a288a3,0x88a288a2,0x888388a2,0xba498861,0x80a290e3,0x68007000,0xef9dd6db,0xef7ef79e,0xef7def5d,0xb5b6ce99, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce794a49,0xc618ef5d,0xef5dc618,0xef5def5d,0xef5de8e3,0xc618ef5d,0xbdf7c618,0x4a49bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41a45a24,0xa5346b4d,0x00005205,0xb9a5b985,0xa965a985,0xa165a165,0xa165a165,0xb9a5b185,0x9965a965,0xb9a5b9a5,0xa165a965,0xe557e536,0xdc94dcd5,0xdc13dc13,0xdc33dc13,0xe557dcd5,0xd3f2dc54,0xe557e557,0xdc33dc74,0xb5969492,0xad55ad55,0x9492ad55,0x50209492,0xb5965000,0xad55ce79,0xb596b596,0x7bcfb596, +0x9cd34208,0x8c518c51,0x00004a69,0x00009cd3,0x9cd34208,0x00004a69,0x4a698c51,0x9cd30000,0x9cd33186,0x8c518c51,0x31864a69,0x31869cd3,0x9cd33186,0x31864a69,0x4a698c51,0x9cd33186,0x90828061,0x9965b1c6,0x90c290c3,0x88a290a3,0x88818882,0x808288a2,0x88c28882,0x888288a2,0x90a288a2,0xcb0c9082,0x80819924,0x68007000,0xf77ed6ba,0xef7ef79e,0xe75eef5d,0xb5b7d67a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xef5def5d,0xef5def5d,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b87ac4a,0x8b878b87,0x6ac76265,0xa5346b4d,0x00008328,0x89248924,0xb1859144,0x81249144,0x99449144,0x81249144,0x99449944,0x99448924,0x99449144,0xcaefd310,0xe4d5d391,0xcaaed391,0xd3b2d391,0xcaaed391,0xd3d2d3b2,0xd3b1cb0f,0xd3d2d371,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0x00004a69,0x4a698c51,0x00004a69,0x4a690000,0x31869cd3,0x4a699cd3,0x4a699cd3,0x00009cd3,0x31864a69,0x4a698c51,0x31864a69,0x4a693186,0x31869cd3,0x4a699cd3,0x4a699cd3,0x31869cd3,0x98e38041,0xb1a7b1e7,0x990498e4,0x90a398e3,0x88a388c3,0x80818862,0x808280c2,0x88a288a3,0x888288a1,0xc2ca9082,0x80a2a125,0x68007841,0xf7bed6bb,0xf79effbe,0xef5def5d,0xb596d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5def5d,0xef5de8e3,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa165a965,0xa1659144,0xa965a985,0x81248924,0xa1659944,0x91449944,0xa985a985,0x89249144,0xdc13dc54,0xdc33d391,0xdc94dc94,0xcaaecaef,0xdc33d3b2,0xd330d3b1,0xdc94dc94,0xcaefd350,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0x00004a69,0x8c510000,0x00009cd3,0x4a699cd3,0x9cd38c51,0x00000000,0x9cd30000,0x00004208,0x31864a69,0x8c513186,0x31869cd3,0x4a699cd3,0x9cd38c51,0x31863186,0x9cd33186,0x31863186,0x98838040,0xa965a966,0xa1459904,0xa145a965,0xa145a965,0x99049925,0x99049904,0x99259924,0x90e39945,0xbaaa9082,0x9103b208,0x70007841,0xffffd6ba,0xffbfffff,0xf75def3d,0xa514ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xe8e3c618,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x9944a165,0xb185a965,0x99449944,0xb185a165,0x99659144,0xb185b185,0x9944a165,0xb185b9a5,0xd3b2dc33,0xe4d5dc94,0xd3b2d3d2,0xe4d5dc13,0xd3f2d391,0xe4d5e4d5,0xd3b2dc33,0xe4d5e557,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0x00009cd3,0x00009cd3,0x9cd30000,0x000052aa,0x00008c51,0x31864a69,0x4a699cd3,0x00009cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x318652aa,0x31868c51,0x31864a69,0x4a699cd3,0x31869cd3,0x90628041,0xa9a6a985,0xa9a6a9a6,0xb1a6a9a6,0xa986a986,0xa145a965,0xb186a966,0xb186b1a6,0xa985a986,0xc2aa90a3,0x9925b208,0x70008041,0xffdfce59,0xffdfffff,0xe73cf79e,0x9cf4bdd7, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x4a490000,0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xc618ef5d,0x4a49c618,0x00004a49,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x520541c4,0x62656265,0x62656265,0x41a449e4,0xa5346b4d,0x00005205,0xb185b185,0xa1659944,0xb185b185,0x9944a165,0xb185a965,0xa965a965,0xb985b185,0xa965a965,0xe4d5dcd5,0xdc13d3d2,0xe4d5e4f6,0xd3d2dc33,0xe4d5dc74,0xdc74dc74,0xe536e516,0xdc54dc74,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0x9cd30000,0x42080000,0x00009cd3,0x00009cd3,0x00009cd3,0x42089cd3,0x9cd30000,0x9cd34a69,0x9cd33186,0x31863186,0x31869cd3,0x31869cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x9cd34a69,0x88618041,0xb1a6a945,0xa986a986,0xb186b1c6,0xa145a986,0xa965a145,0xb1c7b1c7,0xb1e7b1c7,0xa9a6b1e7,0xba6a90c2,0xa124b208,0x68007821,0xf79ec658,0xffffffff,0xd67af79f,0xa4f3b595, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x4a490000,0xc6184a49,0xc618c618,0xc618c618,0x4a49c618,0x00004a49,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x72e65a66,0xa409a409,0xac4aac4a,0x6aa78368,0xa5346b4d,0x00008328,0xa965a165,0xb9a5b985,0xa965b185,0x99449965,0x89249144,0x99449944,0x89248124,0xa1659944,0xdc54dc33,0xe557e536,0xdc74dcd5,0xd3d2d3f2,0xcb0fd371,0xd3d2d3b1,0xd310ca8e,0xdc13d3b2,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0x8c519cd3,0x4a698c51,0x9cd33186,0x31860000,0x9cd30000,0x4a698c51,0x00000000,0x8c510000,0x8c519cd3,0x4a698c51,0x9cd33186,0x31863186,0x9cd33186,0x4a698c51,0x31863186,0x8c513186,0x80418041,0x90a28882,0x90a290a2,0x98a390a2,0x88629882,0x98a38841,0xa0e3a0c3,0xa0e4a0a3,0x98c2a104,0x99248821,0x88619944,0x70208021,0xd69ac639,0xf7bee75d,0xbd96d6ba,0x9d34b555, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x4a490000,0x4a494a49,0x4a494a49,0x00004a49,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449144,0x91449144,0xa985a165,0x99449144,0xa965a965,0x91448924,0xa165a165,0x89249144,0xd3b2d391,0xd371d350,0xdc94dc13,0xd3b1d391,0xdc74dc54,0xd350caef,0xdc33dc33,0xcb0fd350,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x9cd30000,0x4a690000,0x9cd30000,0x00004a69,0x00009cd3,0x4a699cd3,0x9cd30000,0x9cd30000,0x9cd33186,0x4a693186,0x9cd33186,0x31864a69,0x31869cd3,0x4a699cd3,0x9cd33186,0x9cd33186,0x80418041,0x88618061,0x80418021,0x90618861,0x80418881,0x80418021,0x88618041,0x80618862,0x78408041,0x90e48040,0x88a290e3,0x70008041,0xad75b595,0xce38be17,0x9d13b596,0xb5959cf3, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x41a449e4,0xa5346b4d,0x00008328,0x10821082,0x18c320e3,0x18a21082,0x20e320e3,0x18a218a2,0x20e318c3,0x10821082,0x20e320e3,0x39e739c7,0x42084a49,0x39e739e7,0x4a494a49,0x39e74208,0x4a494228,0x39e739e7,0x4a494228,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0x28e128c1,0x10403922,0x28e128c0,0x104028e1,0x310128e1,0x082028e1,0x28e128e1,0x392228c1,0xef5cef3c,0x39e7ef5c,0xdefadefa,0xef5ce6fb,0xef7def5c,0xe6fad69a,0xffffdeba,0xf77cffff,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x62650000,0x62656265,0x6aa78b87,0xa5346b4d,0x83285205,0x20e320e3,0x18a218a2,0x18c320e3,0x18c318c3,0x20e32104,0x10821082,0x18c318c3,0x108218a2,0x4a494a49,0x42084208,0x42084a49,0x42284228,0x42284a69,0x39e739e7,0x42284208,0x39e739e7,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x28e11020,0x104049a3,0x39223101,0x10401880,0x28e14982,0x102051a3,0x392228c1,0x28e11040,0x39e718c3,0xef5c31e7,0xffffef5c,0xffffffff,0xdefaef3c,0x39e739c7,0xdefbbd96,0x18a31903,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483, +0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x5a2441a4,0x83286265,0x8b878b87,0x00000000,0x6b4d41a4,0xa534a534,0x18c318c3,0x210420e3,0x18c320e3,0x18a218c3,0x18a21061,0x20e318c3,0x18a218a2,0x210420e3,0x42284228,0x4a694a49,0x42284a49,0x42084208,0x420831a6,0x4a494228,0x42084208,0x4a494a49,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0x31011040,0x310128c1,0x392228e1,0x31011880,0x28c13101,0x104028e1,0x498230e1,0x102051c3,0xdeda39e7,0xef9bd6fa,0xef5bef5c,0xb595e77d,0xef7cdeda,0xef3cef3c,0x39c841c7,0x18c218e3,0xa2c1a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xe483a2c1,0xa2c14080,0xe483a2c1,0x4080e483,0xe529a2c1,0xa2c1a2c1, +0xa2c1a2c1,0x4800a2c1,0xe483e4c2,0xe4c2cea8,0xe483a2c1,0xc667f6e6,0xe529a2c1,0xa2c1a2c1,0xdefb0000,0xe8e3ef5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x00008b87,0x00000000,0x62650000,0x6aa76265,0x6b4d6b4d,0x18a218a2,0x10611061,0x20e320e3,0x10611082,0x18c318a2,0x18c318c3,0x21042104,0x106118c3,0x39e739e7,0x39c731a6,0x4a494a49,0x31a639c7,0x42284208,0x42284208,0x4a694a69,0x39c74228,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51a31020,0x28e11020,0x51a33101,0x30e10820,0x28c11040,0x104049a3,0x28c030e1,0x51a31040,0xffffe75d,0xef5dffff,0xdedad6da,0xef5cd71a,0xe75bef5c,0xef3cef5d,0xef5cef3c,0x420739e7,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xa2c14080,0x40804080,0x4080a2c1,0x40804080,0x4080a2c1,0xa2c14080, +0xa2c1a2c1,0x4800e4c2,0xe4c2c647,0xd728cee8,0xd728e4c2,0xcea8cee8,0xbde7a2c1,0xeda2bd86,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xe8e3e8e3,0xdefbdefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0xa5345205,0x00006b4d,0x00000000,0x00000000,0x83286265,0x00008b87,0x6aa741a4,0x10821082,0x18c318c3,0x18a218a2,0x18c318c3,0x10821082,0x18c31082,0x10611061,0x18c318a2,0x39e739c7,0x42284228,0x39e739e7,0x42284228,0x39e739e7,0x422839e7,0x31a631a6,0x422839e7,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0x39221040,0x28e11040,0x51a33102,0x51a31040,0x28c10820,0x104051c3,0x49a33101,0x51c31040,0xef5cef5c,0xe77ce73c,0xbdb6ef5c,0xb5d6b5d6,0xef5cef5c,0xdefad71a,0xb596b5d6,0xdefbdeda,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483d3e2,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x40802800,0x40804080,0x40804080,0x40804080,0x40804080,0x40804080,0xa2c14080, +0xa2c1a2c1,0xc6074800,0xcec8c667,0xdf68d728,0xdf68df89,0xcec8d728,0xc607c667,0xeda2bda6,0xdefb0000,0xdefbef5d,0xef5ddefb,0xef5def5d,0xe8e3e9a6,0xef5ddefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xa5340000,0x00006b4d,0x00000000,0x62650000,0x8b878328,0x00000000,0x83685a24,0x20e320e3,0x18c318c3,0x20e32104,0x18c318c3,0x20e320e3,0x18c318a2,0x18a218c3,0x18a21082,0x4a494a49,0x42284228,0x4a494a69,0x42284228,0x42284a49,0x42084208,0x42084228,0x420839c7,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0x39221060,0x30e11040,0x49a328e1,0x28c01020,0x28c11040,0x104051c3,0x51c330e1,0x49a31040,0xef9cb5d6,0xdedadeb9,0xb5b6deda,0xef7cef7c,0xef5bef7c,0xffffffff,0xe71cef5c,0xef5dffff,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x28002800,0x28002800,0x28004080,0x40802800,0x28002800,0x28004080,0xa2c1a2c1, +0xf7c5a2c1,0x48004800,0x48004800,0x4800d728,0xdf894800,0x48004800,0x4800ce67,0xa2c1eda2,0xdefb0000,0xdefbef5d,0xef5def5d,0xdefbd6ba,0xef5def5d,0xef5def5d,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x00000000,0x83286265,0x00008328,0x62650000,0x00008328,0x18a21082,0x20e318a2,0x10611061,0x18c318a2,0x18c31082,0x21042104,0x18c318a2,0x21042104,0x420839e7,0x422839e7,0x39c731a6,0x42284208,0x422839e7,0x4a694a69,0x42284208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51c328e1,0x28e11860,0x49823101,0x30e11040,0x102030e1,0x104049a3,0x49a33101,0x39221040,0xe73cef7b,0xe75cef5c,0xdedadeda,0xdedab5d6,0xded9b5d6,0xef5cd6da,0xef7bef9d,0xef3cf75d,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x2800a2c1,0xa2c1a2c1,0xa2c12800,0x2800a2c1,0x2800a2c1,0xa2c1d3e2, +0xf684a2c1,0x4800eda2,0x4800eda2,0xeda2eda2,0xeda24800,0x4800eda2,0x4800eda2,0xa2c1f7c5,0xdefb0000,0xdefbef5d,0xef5de8e3,0xef5def5d,0xdefbef5d,0xe8e3ef5d,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4a284,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x62650000,0x8b878368,0x00000000,0x62650000,0x00008328,0x18c318c3,0x10821082,0x18c320e3,0x18a21082,0x18a21082,0x10611082,0x18a218a2,0x10821082,0x42284228,0x39e739c7,0x42284a49,0x39e739e7,0x420839e7,0x39c739e7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000, +0x51a328e1,0x31021040,0x10404982,0x104028e1,0x104028e1,0x10404982,0x31013101,0x39221040,0xdefade9a,0xffffde9a,0xef7cffff,0xfffff75c,0xef7ceefb,0xef1cf77c,0xef9ce75c,0xdefad6da,0xe483a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483a2c1,0xe483e483,0xa2c1a2c1,0xd3e2a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2, +0xe483a2c1,0xffe7f6e6,0xeda2e4c2,0xd3e2e4c2,0xe4c2eda2,0xeda2e4c2,0xeda2e4c2,0xa2c1f684,0xdefb0000,0xdefbef5d,0xdefbef5d,0xe8e3ef5d,0xdefbe8e3,0xe9a6defb,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xa5340000,0x5a666b4d,0x00008b87,0x00000000,0x62650000,0x00008b87,0x18a218a2,0x21042104,0x18c318c3,0x20e320e3,0x10821082,0x20e318c3,0x18c318c3,0x20e320e3,0x39e739e7,0x4a694a49,0x42284228,0x4a494a49,0x39e739e7,0x4a494228,0x42284228,0x4a494a49,0x00000000,0x00000000,0x00000000,0x48000000,0x00002800,0x00000000,0x00000000,0x00000000, +0x51a33101,0x31011040,0x104051c3,0x104051a3,0x102051a3,0x18803922,0x392228e1,0x31011040,0xbd96e75c,0xef5bffff,0xdefaef3c,0xe75cdeda,0xbdd6ffff,0xef7ce75c,0xdedaffff,0xd6bbdefa,0xe483a2c1,0xe483e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1a2c1,0xe483a2c1,0xa2c1e483,0x40804080,0xa2c1a2c1,0xa2c1a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe483a2c1,0xa2c1e483,0xc667c607,0xe4c2a2c1,0xa2c1e4c2,0xc667cea8,0xbdc6c607,0xa2c1a2c1,0xdefb0000,0xef5de8e3,0xdefbef5d,0xe9a6ef5d,0xd6bae8e3,0xef5ddefb,0xef5def5d,0x0000defb,0x92430000,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x00009243,0x92430000,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x52050000,0x6b4da534,0x00000000,0x00000000,0x83286265,0x00000000,0x21042104,0x18c320e3,0x18a218a2,0x18c318a2,0x210420e3,0x18a218c3,0x21042104,0x18c318c3,0x4a694a49,0x42284228,0x42084208,0x42084208,0x4a694228,0x42084228,0x4a694a69,0x42084228,0x00000000,0x00000000,0x00000000,0x50000000,0x00004800,0x00000000,0x00000000,0x00000000, +0x392228e1,0x31011880,0x28c049a3,0x104028e1,0x10404982,0x20a03922,0x39220820,0x31011040,0xe6d939e7,0xe73cdeb9,0xbdd6ef5c,0xdebaef3b,0xdedad6fa,0xef3cef5c,0xef3cb596,0xef5cef3c,0xe529a2c1,0xe483e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1a2c1,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe529a2c1,0x4800a2c1,0xc607bdc7,0xa2c1c647,0x4800eda2,0xc607c647,0xbd86bdc7,0xa2c1eda2,0xdefb0000,0xef5def5d,0xd6baef5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5ddefb,0x0000defb,0x92430000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x00009243,0x92430000,0x81208120,0x81208120,0x71008120,0x81208120,0x81208120,0x81207100,0x00009243, +0xa2840000,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x83280000,0xa5345205,0x6b4d6b4d,0x00000000,0x8b8749e4,0x00000000,0x10611082,0x20e31082,0x10611082,0x18a21082,0x10611082,0x18a218a2,0x10821061,0x18a21082,0x31a639c7,0x4a4939e7,0x31a639e7,0x39e739e7,0x31a639e7,0x420839e7,0x39e739c7,0x39e739e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c13101,0x28e13101,0x28e151a3,0x30e128e1,0x10403101,0x498228e1,0x39221040,0x28e11040,0x420739c7,0xffffef7c,0xf75cffff,0xffffef5c,0xef5cffff,0xffffffff,0x39c7ef5c,0x18e218c3,0xe529a2c1,0xd3e2e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c14080,0xa2c1d3e2, +0xe529a2c1,0x4800a2c1,0xbdc6bd86,0xa2c1bde7,0x4800eda2,0xbdc6bde7,0xeda2bd86,0xa2c1f684,0xdefb0000,0xe8e3ef5d,0xef5de8e3,0xef5def5d,0xef5dd6ba,0xdefbef5d,0xef5def5d,0x0000defb,0x92430000,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0x00009243,0x92430000,0x81207900,0x79008120,0x81207900,0x79008120,0x81207900,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x5a6641a4,0x00000000,0x18a218c3,0x18a21082,0x18c318c3,0x10611061,0x18c31082,0x10821082,0x18c318c3,0x10611082,0x42084228,0x420839e7,0x42284228,0x31a639c7,0x420839e7,0x39c739e7,0x42284228,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x104030e1,0x28e13101,0x39223922,0x28e13101,0x10403101,0x51a330e1,0x51a31040,0x39221040,0xef5cef3c,0xb5b6b5b6,0x39c6df1a,0x20c439c7,0xe75c39e7,0xd6fadeda,0xe6badeda,0xdeba41e7,0xd3e2a2c1,0xd3e2e483,0xe529a2c1,0xe483d3e2,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c12800,0xa2c1d3e2, +0xd3e2a2c1,0x4800eda2,0xb566b546,0xeda2bd86,0x4800eda2,0xb566bd86,0xeda24800,0xa2c1d3e2,0xdefb0000,0xe9a6ef5d,0xef5de8e3,0xef5def5d,0xe8e3ef5d,0xef5dd6ba,0xef5def5d,0x0000defb,0x92430000,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0x00009243,0x92430000,0x79007900,0x71007900,0x60a060a0,0x60a060a0,0x710060a0,0x79007900,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x6b4d6b4d,0x18a218a2,0x20e318c3,0x18a218a2,0x20e318a2,0x18a21082,0x20e320e3,0x18a218a2,0x20e32104,0x39e74208,0x4a494228,0x39e74208,0x4a494208,0x420839e7,0x4a494a49,0x39e74208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x10603101,0x104028c1,0x39223922,0x28e11040,0x104051a3,0x51a328e1,0x51c31040,0x39221040,0xffffef5c,0xb5d6e77c,0x10c241e7,0x39a720c4,0xf75cef3c,0xef9cef3c,0xef7cef7c,0xef5cdeda,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe529d3e2,0xe529a2c1,0xa2c1e483,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e483,0x40802800,0xe5292800,0x2800a2c1,0x28002800,0xe483a2c1,0xa2c1d3e2, +0xd3e2a2c1,0xe4c2f6e6,0xb5064800,0xfff24800,0x4800eda2,0x48004800,0xf6e6eda2,0xa2c1d3e2,0xdefb0000,0xdefbef5d,0xd6badefb,0xdefbdefb,0xdefbdefb,0xdefbef5d,0xef5ddefb,0x0000defb,0xc6180000,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0x0000c618,0x92430000,0x60a060a0,0x60a060a0,0x79008120,0x81208120,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4a284,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x52050000,0xa534a534,0xa534a534,0x20e320e3,0x18a218a2,0x20e320e3,0x18a218c3,0x20e318c3,0x18c318c3,0x210420e3,0x18c318c3,0x4a494228,0x42084208,0x4a494a49,0x42084208,0x4a494228,0x42284228,0x4a494a49,0x42284228,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11020,0x104028c0,0x51a328e1,0x28e11040,0x104051a3,0x392228e1,0x39221880,0x51a31880,0xef9cd6db,0xef7ce73c,0xe6daef5c,0xdebaef7c,0xdebbdeda,0xb5b6e77c,0xe75cef5c,0xdedadeba,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e483,0xd3e2a2c1,0xa2c1e483,0x28002800,0xe483e483,0xe529a2c1,0xa2c12800,0xe483e483,0xa2c1e483, +0xd3e2a2c1,0xeda2e483,0x48004800,0xf6e6ffe7,0xfff2e4c2,0xeda24800,0xe483f6e6,0xa2c1e483,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0x0000defb,0xc6180000,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0x0000c618,0x92430000,0x81207900,0x79008120,0x81207900,0x79007900,0x81208120,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x83280000,0x00008b87,0x00000000,0x18c318a2,0x21042104,0x18c320e3,0x18a218a2,0x10821082,0x18a21082,0x10821061,0x18a218a2,0x42284208,0x4a694a49,0x42284228,0x42084208,0x39c739e7,0x420839e7,0x39c731a6,0x420839e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11040,0x08203102,0x51a31040,0x28e11040,0x104051a3,0x51a328e1,0x39221880,0x49a31880,0xe75cf77c,0xdebadeda,0xe77cde9a,0xef1ce75c,0xef7be77c,0xef7ce75c,0xef5cef7b,0xef5cf75b,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483, +0xe529a2c1,0xe4c2e483,0xffe7f7c5,0xd3e2f6e6,0xf6e6a2c1,0xe4c2ffe7,0xe483d3e2,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0xc6180000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000c618,0x92430000,0xef5d7900,0x79007900,0x79007900,0x79007900,0x79007900,0x79007900,0x00009243, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18a21082,0x10821082,0x18c318a2,0x10821082,0x18c318c3,0x10821061,0x18c318c3,0x10821082,0x39e739e7,0x39e739c7,0x42284208,0x39e739e7,0x42284228,0x39c739c7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28e11860,0x51c33101,0x31011040,0x104049a3,0x28e128e1,0x392228e1,0x39223101,0x51c328e1,0xef7bb5b6,0xef7cef5c,0xbdd6ef7c,0xdefaef5c,0xe75ce6da,0xffffffff,0xef3cffff,0xb5b5ef7c,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xa2c1d3e2,0xf684e4c2,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e4c2,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc6180000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000c618,0xc6180000,0xdefbdefb,0xdefbdefb,0x7900defb,0x60a060a0,0xdefbdefb,0xdefbdefb,0x0000c618, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x93a80000,0x00006286,0x00000000,0x00000000,0x00000000,0x51e37ac5,0x59e351e3,0x51c351c3,0x51c359e3,0x51e351e3,0x51c351e3,0x51c349a3,0x51e351c3,0x7bcf8430,0x73ae73ae,0x73ae738e,0x73ae73ae,0x73ae73ae,0x738e73ae,0x738e738e,0x738e738e,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xd3e2a2c1,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x69a669c7,0x38e34820,0x184158e2,0x38412882,0xab8ba2cb,0x92884924,0x38e338c3,0x514538e3, +0x5a27836b,0x72c96a88,0x7b2b5a27,0x392349a5,0x31023923,0x49c65a27,0x31023102,0x8b8c834b,0x49c27369,0x49c249c2,0x49c249c2,0x73697369,0x73697369,0x49c27369,0x49c249c2,0x49c249c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x93678b46,0x8b469367,0x93679367,0x8b468b46,0x93679367,0x72249367,0x94b294b2,0x94b294b2,0x94b29492,0x94929492,0x949294b2,0x94929492,0x94929492,0x73ae9492,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1e483,0xe483d3e2,0xa2c1e483,0x92aa69a6,0xab2c2041,0x69c75820,0x38415820,0x38414924,0x6841ab8b,0x8a4992cb,0x30c328a2, +0x5a4751e6,0x3102836b,0x41a549e6,0x31238b8c,0x7b0a4184,0x5a275a47,0x41644164,0x7b2a49c5,0x7ac57369,0xc4687ac5,0x7ac57ac5,0x736949c2,0x49c249c2,0x7ac57369,0x7ac57ac5,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x8b46aca9,0xa4497ac5,0xa449a449,0xa408a449,0xa4489367,0xa408a448,0xa408a408,0x72248b46,0x949294b2,0x9cf38c71,0x9cd39cf3,0x9cd39cd3,0x9cd394b2,0x9cd39cd3,0x9cd39cd3,0x73ae9492,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e529,0xd3e2a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe483e483,0xd3e2a2c1,0x8269cbcf,0xcbae6186,0xaaeb7861,0x184159a6,0x988261c7,0x5820b34d,0x58209aeb,0x30c37a08, +0x8b8c4164,0x31236247,0x31023102,0x416472c9,0x7b2a5a27,0x41a5834b,0x418449a5,0x41844184,0xfdeb7369,0xffffc468,0x49c2feb3,0x49c27369,0x49c2c468,0xfdeb7369,0xffffc468,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x936782c5,0x8b469367,0xa4089367,0x8b467a84,0x8b468b46,0x93878b46,0x72249367,0x949294b2,0x94b28c71,0x949294b2,0x9cd394b2,0x94b28c71,0x94929492,0x94b294b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2d3e2,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xe483e529,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xa2cbc38e,0x30c32882,0x18412882,0x582061c7,0x18414124,0x7041c38e,0x71e78a69,0x59a68a87, +0x72c93102,0x72c93102,0x62683103,0x41846247,0x5a274184,0x6ac949a5,0x5a476267,0x51e649c5,0x73697369,0xc468fdeb,0x736949c2,0x7ac549c2,0x7369ffff,0x736949c2,0xc468fdeb,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x72a56b6d,0x7ac56244,0x72a572a5,0x938772a5,0x7ac56244,0x7ac57ac5,0x936672a5,0x51e372a5,0x94928410,0x94928c51,0x8c719492,0x94b28c71,0x94928c51,0x8c718c71,0x94b28c71,0x7bcf8c71,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xd3e2e483,0xe483d3e2,0xd3e2a2c1,0xa2c1e483,0x384159a6,0x8269ab2c,0x18416186,0x58208a69,0x71e79aeb,0x30412882,0x4924bb6d,0x30c33841, +0x62685206,0x7b2a3943,0x31026268,0x49c56247,0x39436268,0x6aa993cd,0x6aa96247,0x49a58bac,0x49c27369,0x7ac57369,0x736949c2,0xfdebfdeb,0x49c27369,0x49c27ac5,0x7ac57369,0x73697369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b4631a6,0x8b4682a5,0x93679367,0xa4088b46,0x8b467a84,0x8b468b46,0xa4488b46,0x6a038b46,0x9cd34a69,0x9cd394b2,0x9cd39cf3,0x9cf39cd3,0x94b28c71,0x94b294b2,0x9cf394b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0xa2c1e529,0xa2c1e483,0xd3e2e529,0xe483a2c1,0xd3e2e529,0x78614924,0x8a69ab4a,0x104171e7,0x6841a2cb,0x71e78a69,0x18417a08,0x492461a6,0x79e77041, +0x41844184,0x72e96aa9,0x31023102,0x418472e9,0x6aa949a5,0x5a476aa9,0x31026268,0x6aa93102,0x7ac57ac5,0x736949c2,0x73697369,0x73697369,0x7ac549c2,0x7ac5c468,0x736949c2,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x7a847a84,0x82c57a84,0x8b4682a5,0x7a847a84,0x62447a84,0x8b4682c5,0x6a038b46,0x9cf3a514,0x94b294b2,0x94b294b2,0x9cd394b2,0x8c719492,0x8c518c71,0x94b29492,0x841094b2,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xe483e483,0xe483e483,0x3960a2c1,0xa2c1a2c1,0xa2c1e483,0xd3e2e483,0xd3e2d3e2,0x49247a08,0x8061c38e,0x30e36020,0x4020a2cb,0x8228e550,0x59a6bc0c,0xd3ef5145,0x58205820, +0x52064164,0x624751c5,0x834b7b0a,0x39237b2a,0x7b0a5206,0x394341a5,0x31023102,0x6a884164,0xfffffdeb,0x49c2feb3,0x49c27369,0xfdeb7369,0xc4687ac5,0xc468ffff,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0x7ac59367,0x93678b46,0x8b469367,0x8b468b46,0x93679367,0x6a039367,0xa534ad75,0xa534a534,0x9cd3a514,0x9cf39cd3,0x9cd39cd3,0x9cd39cd3,0x94b29cd3,0x7bef94b2,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000a800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1d3e2,0xa2c1a2c1,0xa2c1a2c1,0xb4203960,0xa2c1e540,0xd3e2e483,0xa2c1a2c1,0xa2c1a2c1,0x104171c7,0x886159a6,0xab8b8061,0xa2cb9b09,0x71c7b34d,0x41245145,0x084128a2,0xdd0fdc10, +0x9c0e6ac9,0x49c572e9,0x62885a27,0x310249a5,0x41844184,0x31026268,0x31023102,0x62686247,0xc468fdeb,0x73697ac5,0x7ac549c2,0x736949c2,0xfdeb7369,0x7ac5c468,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x84100000,0x0000738e,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x936672a5,0x93669366,0x93879366,0x93877ac5,0x93669366,0x93669366,0x51e37ac5,0xad55b596,0xad55a514,0xa534a534,0xa534a534,0xad559cf3,0xa534a534,0xa534a534,0x8c51a514,0x00000000,0x00000000,0x00000000,0xfff2f800,0xf800ffff,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483d3e2,0x3960e483,0xe540b420,0x3960b420,0xa2c1a2c1,0xe483e483,0xd3e2e529,0x8a6971e7,0x51652882,0xc38e9aaa,0x41044924,0x284161a6,0x92aa30c3,0x30c35820,0x90824020, +0x626862a9,0x41846a88,0x418449a5,0x49c53102,0x6ac95206,0x5a476268,0x62686268,0x72e93923,0x73697369,0x49c27369,0x7ac57ac5,0x736949c2,0x736949c2,0x7ac5fdeb,0x7ac57369,0x49c2feb3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7bef0000,0x0000738e,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b4682c5,0x93679367,0xa4089367,0x8b467a84,0x93677ac5,0xa4499367,0x72249367,0xbdd7c638,0xb5b6b596,0xb5b6b596,0xbdf7b5b6,0xb596ad75,0xb596ad75,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xfec0f800,0xf800fc60,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0x3960a2c1,0xb420e540,0xa2c13960,0xd3e2e483,0xe483a2c1,0xd3e2d3e2,0x8a695820,0x59a671e7,0x18415965,0x514530c3,0x604161c7,0x8a69b32c,0x8a6961a6,0x30415820, +0x6a883102,0x41843923,0x6a88836b,0x39236aa9,0x394341a5,0x3102836b,0x6a886268,0x6a8841a5,0x49c27369,0xc46849c2,0xc468feb3,0x736949c2,0x49c27ac5,0x73697369,0xc4687ac5,0x49c2ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x8b466244,0x8b468b46,0xa4089367,0x8b4682a5,0x8b468b46,0xa4088b46,0x6a038b46,0xc618ce59,0xc618b5b6,0xc618c618,0xc618c618,0xb5b6b596,0xb596b596,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000f800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xa2c1a2c1,0xa2c1e483,0x39603960,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0x8aaa4820,0x59a671c7,0x602069c7,0x30c38a69,0xdc10bb6d,0x92aa8249,0x59a692a8,0x28821041, +0x392341a5,0x62683923,0x51e63102,0x6a883123,0x41a53943,0x31035a47,0x72c96a88,0x41648bac,0x7ac57369,0xfeb37ac5,0xfeb3ffff,0x736949c2,0xffffc468,0x49c249c2,0xfdeb7369,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x8b467a84,0x93678b46,0xa4089367,0x8b4682c5,0x7ac58b46,0xa4488b46,0x72248b46,0xc638ce79,0xc638bdf7,0xc638c618,0xc618c618,0xb5b6b5b6,0xb596b5b6,0xbdf7b5b6,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483e483,0xd3e2d3e2,0xe483a2c1,0xe483d3e2,0xa2c1e483,0xe529e483,0xa2c1d3e2,0xc38ee530,0x59a68a87,0x8aaac38e,0x20418aaa,0x928a59a6,0xab0c9269,0xab6a4104,0x59a67861, +0x41a551e6,0x72ea6ac9,0x31023923,0x836b49a5,0x628841a5,0x7b0a5a67,0x4184834b,0x5a6751e6,0x73697369,0xc468fdeb,0xc468feb3,0x736949c2,0xc468fdeb,0x49c27ac5,0x73697369,0x49c2fdeb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x62446224,0x62446244,0x7ac56244,0x62446244,0x62246224,0x72a56224,0x51e37ac5,0xbdf7c638,0xbdd7bdd7,0xbdd7bdd7,0xbdd7b5b6,0xad75b596,0xad55ad55,0xad75ad55,0x9cf3ad75,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0xe483a2c1,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xd3e2a2c1,0xd3e2e483,0x41247228,0x59a61041,0x69e7aaeb,0xab8ba2eb,0x492430c3,0x38e32882,0xbb6d4924,0x59a68861, +0x39234184,0x31027b0a,0x62687b0a,0x5a473102,0x394341a5,0x49a549a5,0x41844184,0x93cd49c5,0x49c27369,0xfdeb7369,0x7ac57ac5,0x49c27369,0xfdeb7369,0x73697ac5,0x49c249c2,0x49c27369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x8b468b46,0x8b468b46,0x93679367,0x8b469367,0x93677ac5,0x6a039367,0xc638d69a,0xc638c638,0xc638c638,0xc638c638,0xbdf7c638,0xbdd7bdf7,0xb5b6b596,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xa2c1e529,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e529,0xd3e2d3e2,0x71e75986,0x28828a69,0x80614924,0x5820c38e,0x10412061,0x58207a08,0x59a62882,0x8a8a3841, +0x49a56288,0x31026268,0x62473923,0x5a473923,0x31025a47,0x3102834b,0x41644184,0x41645206,0x7ac57ac5,0x736949c2,0x73697ac5,0x7ac549c2,0x736949c2,0x49c27369,0xc468c468,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93878b46,0xa448a448,0xa408a408,0xa4088b46,0xa448a408,0xa448a408,0x6a039367,0xc638d69a,0xc638c638,0xce79ce79,0xce59ce79,0xce59c638,0xce59ce59,0xc618c618,0xa534b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529a2c1,0xe529a2c1,0xd3e2e483,0xd3e2a2c1,0xa2c1e483,0xe483e483,0xd3e2e483,0xa2c1a2c1,0xa2cbc38e,0x8a694020,0x49241841,0x8061c38e,0x58204924,0x582092aa,0x69646841,0xab0c6186, +0x52064184,0x62476ac9,0x62476aa9,0x51e67b0a,0x39233943,0x62686268,0x31023102,0x49c65a47,0xffff7ac5,0x49c2c468,0xfdeb7369,0xffffc468,0x736949c2,0x7ac5fdeb,0xfffffeb3,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x8b467a84,0x93678b46,0xa4489367,0x93677a84,0x93679367,0xa4499367,0x6a039367,0xc6188410,0xc618bdd7,0xc618c618,0xce59c618,0xc618bdd7,0xc618c618,0xc638bdf7,0xad55bdf7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xa2c1a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1a2c1,0xa2cbc38e,0x9a8aa2cb,0x71e7c42d,0x49245145,0x80614924,0xa2cbc38e,0x492471e7,0x8228aaeb, +0x62475a47,0x49c53943,0x41643943,0x31023923,0x49a541a5,0x628849a5,0x39234184,0x52063102,0x7ac5fdeb,0x73697ac5,0x73697369,0x7ac5fdeb,0x73697369,0xfdeb7369,0xc468fdeb,0x73697ac5,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000,0x7ac531a6,0x7ae56244,0x72a572a5,0x93667ae5,0x7ac56244,0x18c37ac5,0x936651c3,0x51e351c3,0xbdd74a69,0xbdd7b596,0xb596b596,0xb596b596,0xb596a534,0xb596ad75,0xb596bdd7,0x9cf3a514,0x00000000,0x49c46265,0x00000000,0x00000000,0x00000000,0x00000000,0x41834183,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x61a261a2,0x71e238c1,0x59825982,0x69c24921,0x41215982,0x69e24921,0x49415982,0x38e171e2,0x7aa67aa6,0x9b484142,0x7aa67aa6,0x9b4861e4,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x41429b48, +0x00000000,0x000005e2,0x00000000,0x07020000,0x00000340,0x06220000,0x00000000,0x00000000,0x00000000,0x14c23e60,0x000004a2,0x3d210000,0x05c20340,0x3cc20000,0x00000000,0x00000000,0x000004c2,0x02a06481,0x01c05c01,0x6d000000,0x53e209a0,0x64610280,0x04420000,0x00000000,0x0b603c02,0x12006481,0x1a606481,0x64810000,0x5c0111e0,0x5be222c0,0x5c010000,0x000001c0, +0x096063e1,0x09605bc2,0x11e06401,0x64010000,0x534200c0,0x53620980,0x53820000,0x00000980,0x01005321,0x00205321,0x00004ac1,0x42a10000,0x42810060,0x53420060,0x6c210000,0x000000e0,0x00805b61,0x008063a2,0x00c06382,0x63820000,0x42810000,0x63a20080,0x53010000,0x00000940,0x090052e1,0x00606ba1,0x00c052e1,0x52e10000,0x42410040,0x63620060,0x4aa10000,0x000000a0, +0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b467a84,0x93678b46,0xa4089367,0x936782c5,0x42088b46,0x18c32965,0x72247224,0xc638c618,0xc618bdd7,0xc638c618,0xce59c618,0xc618bdd7,0xb5b6bdd7,0xa534bdd7,0x9cf3a534,0x62650000,0x5a448b87,0x5a245a24,0x5a246a85,0x62656265,0x5a246265,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x494161a2,0x69e230c1,0x412169c2,0x412130c1,0x412169c2,0x516130c1,0x30c14121,0x598271e2,0x61e47aa6,0x9b484142,0x61e49b48,0x61e44142,0x61e49b48,0x7aa64142,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x05620000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006a2,0x00000000,0x3d810000,0x00000380,0x07220000,0x14620000,0x00000000,0x00000000,0x01e04502,0x02e03c42,0x5c210000,0x3ce20280,0x34020240,0x00000000,0x00000000,0x13c14da1,0x0b406481,0x02006cc1,0x64610000,0x75202b21,0x45610220,0x3c420000,0x00000240, +0x0a606401,0x226063e1,0x11e06c61,0x53620000,0x64010100,0x63e11a40,0x64210000,0x00000140,0x09805ba1,0x09804b01,0x01404ae1,0x53210000,0x53210100,0x6c010100,0x5b820000,0x00000100,0x11a05b42,0x00e05b41,0x09406382,0x4aa10000,0x5b410940,0x5b210000,0x6bc20000,0x00000920,0x09406ba1,0x19e05b21,0x00e06382,0x5b010000,0x5b2100a0,0x5b210080,0x63610000,0x00000060, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000,0x8b46aca9,0x82c56244,0x82c582c5,0x8b4682c5,0x82a582c5,0x7a8482a5,0x8b467a84,0x72248b46,0xc638c618,0xbdf7bdd7,0xc618c618,0xc618c618,0xbdd7bdf7,0xb596b5b6,0xb5b6b596,0xa514b5b6,0xa4090000,0x6a856265,0xac4a8b87,0x8b87ac4a,0xac4aac4a,0xa4098b87,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x59824941,0x51624921,0x41214122,0x61a24101,0x410161a2,0x516130c0,0x30c14121,0x59825982,0x7aa661e4,0x7aa661e4,0x61e45a05,0x9b4861e4,0x61e49b48,0x7aa64142,0x414261e4,0x7aa67aa6, +0x00000000,0x00000000,0x00000000,0x000005c2,0x00000000,0x00000000,0x00000000,0x00000000,0x05a20000,0x00000000,0x00000000,0x3dc10000,0x00001d63,0x00000000,0x00000642,0x00000000,0x00000000,0x1d023c62,0x00000502,0x3ce21462,0x04a20320,0x3ce20000,0x00000000,0x00000000,0x000005c1,0x13e14d81,0x02c03c82,0x7d600000,0x44a233e1,0x4e0002c0,0x04a10000,0x0b800000, +0x13c14cc2,0x2b2174c1,0x22a06c61,0x5ba10000,0x74a10980,0x6c412240,0x5bc20000,0x00000a20,0x1a206c01,0x1a006c21,0x226063c2,0x63a10000,0x5ba20140,0x74810140,0x63a10000,0x00003320,0x1a207421,0x11c06381,0x2a406be2,0x6bc20000,0x42610920,0x6bc20940,0x63c20000,0x00000920,0x09606be2,0x09007c61,0x09206381,0x63610000,0x63420900,0x5b420920,0x5b210000,0x00000920, +0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0xa4499367,0xa408a449,0xa408a449,0xa4088b46,0xa408a408,0x9387a448,0x72249367,0xc638c618,0xce79c638,0xce79ce79,0xce79ce79,0xce59c618,0xc638ce59,0xbdd7c618,0xa514b5b6,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x49a3a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x69c24121,0x41015161,0x61a228a0,0x41013901,0x51614101,0x69c24121,0x69e269c2,0x414261e4,0x9b4861e4,0x61e47aa6,0x9b484142,0x61e461e4,0x7aa661e4,0x9b4861e4,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07220000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006c1,0x06410000,0x45610000,0x00000b60,0x05620000,0x0b800000,0x00000000,0x00000000,0x02804e00,0x1c824521,0x7e000000,0x45010b60,0x456101c0,0x00000000,0x00000581, +0x0a605600,0x13c18560,0x018074e1,0x64010000,0x74a11200,0x4ce20a60,0x44a20000,0x00000220,0x13407481,0x33007481,0x00807cc1,0x63e10000,0x63e11a20,0x74811a00,0x8d600000,0x00002aa0,0x3b207c81,0x2a607441,0x19c084a1,0x63c20000,0x6bc211a0,0x63a219e0,0x63c20000,0x00003300,0x2a407401,0x19c06ba1,0x2a406bc2,0x6ba20000,0x6bc20900,0x6ba119c0,0x6bc20000,0x00002a60, +0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000,0x72a59be7,0x93877ac5,0x93669366,0x93879366,0x93877ac5,0x93879387,0x93669366,0x51e372a5,0xbdf7bdd7,0xce59c618,0xc638c638,0xc638c638,0xc638bdf7,0xc638c638,0xbdf7bdf7,0x9cf3b596,0x00000000,0x49a36265,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a24121,0x39015161,0x49413901,0x49412965,0x61a228a0,0x61a24101,0x30c14121,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x7aa661e4,0x7aa652aa,0x9b484142,0x9b4861e4,0x414261e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03800562,0x00000000,0x00000000,0x00000000,0x00000000,0x06020000,0x000014a2,0x00000000,0x45a10000,0x00000be1,0x00000000,0x000005a2,0x00000000,0x00000000,0x13c144e2,0x00000660,0x4da10280,0x042113a1,0x4dc10000,0x00000000,0x00000000, +0x000004a0,0x138055e1,0x0b004402,0x6c810000,0x4cc21a20,0x44a213a1,0x04600000,0x2d220000,0x13205d81,0x22608540,0x3ba15b41,0x74810000,0x74813361,0x7ca143e1,0x7ce10000,0x00001340,0x2ac09560,0x2aa084c1,0x2a407441,0x74410000,0x74612240,0x744119e0,0x8d400000,0x000032c0,0x32c08ca1,0x11807c41,0x438184a1,0x6ba20000,0x7c412200,0x6bc219a0,0x8cc10000,0x000032e0, +0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x000082a5,0x00000000,0xa4080000,0x00007a84,0x00000000,0xa4480000,0x6a038b46,0xc638c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa514bdf7,0x62650000,0x6265a409,0x5a245a24,0x62655a24,0x62656265,0x62656265,0x6265a409,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a261a2,0x39014941,0x492128a0,0x38e14921,0x598228a0,0x61a23901,0x412139e7,0x61e47aa6,0x9b489b48,0x61e47aa6,0x7aa64142,0x61e47aa6,0x9b484142,0x9b4861e4,0x61e46b6d, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005a2,0x00000000,0x00000000,0x00000000,0x00000000,0x06810000,0x00000000,0x00000000,0x05e20000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005c1,0x04c10000,0x4de11421,0x00000b40,0x05610000,0x14410000,0x00000000, +0x00000000,0x13c155a1,0x13404d41,0x74810000,0x55e11340,0x55a11340,0x00000000,0x00000700,0x1b805561,0x1b807cc1,0x24418dc0,0x8d800000,0x960043e1,0x5da112c0,0x5d810000,0x000012c0,0x3b218d20,0x11a084e1,0x32e084a1,0x84a10000,0x74612240,0x8d002ac0,0x8d200000,0x00003b21,0x2a409500,0x2a407401,0x4361a5c0,0x84810000,0x7c412a40,0x8cc119c0,0x95400000,0x00001160, +0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x00007a84,0x00000000,0xa4480000,0x00007a84,0x00000000,0xa4080000,0x6a038b46,0xc618c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x5a448b87,0xac4aac4a,0x8b878b87,0x8b878b87,0xa409a409,0x5a44ac4a,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c15982,0x410161a2,0x49413901,0x516238e1,0x38e14121,0x39015162,0x28a03901,0x516161a2,0x41427aa6,0x61e49b48,0x7aa661e4,0x9b4861e4,0x61e47aa6,0x61e49b48,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01c004e2,0x00000000,0x00000000,0x00000000,0x00000000,0x05210000,0x00000b60,0x06210000,0x4d810000,0x00001441,0x00000000,0x13e10620,0x00000000, +0x00000000,0x13c15600,0x00000560,0x55811bc1,0x05601bc1,0x55810000,0x00000000,0x00000000,0x00005da1,0x1bc15da1,0x1be15e60,0x96000000,0x55211a20,0x5e000a80,0x55210000,0x13400000,0x1b809580,0x3b817421,0x2a808d20,0x84a10000,0x8d2032e0,0x8d402ac0,0x95600000,0x000009c0,0x4bc184a1,0x3b2184a1,0x2a409da0,0x8ca10000,0x7c413b00,0x7c413b21,0x74010000,0x000019a0, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x000082c5,0x00000000,0xa4490000,0x000082c5,0x00000000,0xa4490000,0x6a039367,0xc638c618,0x0000c618,0x00000000,0xce590000,0x0000bdd7,0x00000000,0xc6380000,0xa514bdf7,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c05982,0x49415161,0x38e13901,0x516128a0,0x20a030e1,0x38e15162,0x28a03901,0x41215161,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142,0x414261e4,0x61e49b48,0x414261e4,0x61e47aa6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000422,0x00000000,0x00000000,0x00000000,0x00000000,0x05810000,0x00000000,0x00000000,0x06200000,0x00000000,0x00000000,0x000005e1,0x00000000, +0x00000000,0x000005c0,0x05c00000,0x56000b20,0x00000a60,0x05000000,0x1c210000,0x00000000,0x00000000,0x13005e00,0x24015e00,0x74810000,0x54e21ba1,0x5e201340,0x00000000,0x00005d81,0x000065a1,0x43e195c0,0x2ac084e1,0x8d400000,0x8d203b61,0x95603b81,0x4c420000,0x1b800000,0x32e0a5e0,0x43819d60,0x43818ca1,0x95400000,0x9d602a60,0x7c4132e0,0x7c410000,0x00003b00, +0x00000000,0x00000000,0x00000000,0xfff20000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x62246224,0x62246224,0x7ac56224,0x62446244,0x62246244,0x72a56224,0x51e37ac5,0xbdf7bdd7,0xb5b6b5b6,0xb596b596,0xbdd7b596,0xb5b6b5b6,0xb5b6b5b6,0xbdd7b5b6,0xa514bdd7,0x00000000,0x41835a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c069c2,0x49415161,0x28a03901,0x514128a0,0x208030c1,0x49214121,0x39013901,0x516161a2,0x41429b48,0x7aa67aa6,0x414261e4,0x9b484142,0x414261e4,0x7aa67aa6,0x61e461e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1c8205e1,0x00000000,0x00000000,0x00000000,0x00000000, +0x06000000,0x00001c41,0x05200000,0x4cc20000,0x00000b20,0x00000000,0x24a20600,0x00000000,0x00000000,0x1b805541,0x00006620,0x5de12401,0x5d810ac0,0x55010000,0x00000000,0x00000000,0x00000000,0x32c09e00,0x2c828d00,0x95a00000,0x95c032e0,0x8d402c82,0x00000000,0x000065a1,0x42009540,0x43a1a5c0,0x32e0a5c0,0x8cc10000,0x954019a0,0xa5c03b20,0x95400000,0x00002140, +0x00000000,0x00000000,0x00000000,0xfec00000,0x0000fc60,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0xa449a448,0xa408a449,0x8b468b46,0x9387a408,0xa449a449,0x72249367,0xc638c618,0xc618c638,0xce59ce59,0xce59ce79,0xc618c618,0xc638ce59,0xce59ce79,0xa534c618,0x62650000,0x6265ac4a,0x5a245a24,0x62655a24,0x62656265,0x5a245a24,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x516169c2,0x494161a2,0x28a03901,0x412128a0,0x20a030e1,0x49215162,0x41014941,0x516161a2,0x7aa69b48,0x7aa69b48,0x414261e4,0x7aa64142,0x414261e4,0x7aa69b48,0x61e47aa6,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02400660,0x00000000,0x00000000,0x00000000,0x00000000, +0x06200000,0x00000000,0x00000000,0x05400000,0x00000000,0x00000000,0x00000680,0x00000000,0x00000000,0x00005dc1,0x5e400000,0x55210a80,0x00001300,0x55610000,0x00000000,0x00000000,0x00000000,0x1b008d20,0x00006e80,0x8d401b40,0x6e803b81,0x8d200000,0x00000000,0x00000000,0x00208be2,0x32e0a5e0,0x31809540,0x7c410000,0x9d602a60,0x7c613180,0x7b420000,0x39c00000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x00006244,0x00000000,0xa4080000,0x000082a5,0x00000000,0xa4080000,0x6a038b46,0xc6188410,0x0000b5b6,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x62656265,0xac4aac4a,0x8b87ac4a,0x8b878b87,0xac4a6265,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41214921,0x410161a2,0x39013901,0x516228a0,0x38e130e1,0x28a05162,0x41014941,0x69c261a2,0x61e461e4,0x61e49b48,0x61e461e4,0x9b484142,0x61e461e4,0x41429b48,0x61e47aa6,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000481,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x0b200640,0x00000000,0x00000000,0x00000000,0x00000000,0x5e400000,0x00001320,0x54e20000,0x55410000,0x000009c0,0x00000000,0x1be15e20,0x00000000,0x00000000,0x00005d41,0x65810000,0x95c023e1,0x00004c02,0x54a20000,0x1b000000,0x00000000,0x00005a82,0x43419520,0x00008382,0x8cc14a20,0x838232c0,0xa5c02940,0x00000000,0x18e08ba2, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x7a8431a6,0x00007a84,0x00000000,0xa4080000,0x000082c5,0x00000000,0xa4480000,0x72248b46,0xbdf74a69,0x0000bdd7,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xad55c618,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6265a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x51615161,0x39013901,0x49215982,0x28a04921,0x29655982,0x41014941,0x69c230c0,0x61e47aa6,0x7aa67aa6,0x61e461e4,0x7aa69b48,0x41427aa6,0x52aa9b48,0x61e47aa6,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x1c610520,0x00000000,0x00000000,0x00000000,0x00000000,0x55610000,0x00000000,0x00000000,0x4c420000,0x00000000,0x00000000,0x00005e00,0x00000000,0x65a10000,0x00001280,0x66000000,0x9e200000,0x00001b20,0x00000000,0x1b605d41,0x00000000,0x00000000,0x42209d80,0x93e10000,0x95202940,0x7b4232c0,0x95000000,0x00000000,0x00007302, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x00006224,0x00000000,0x93870000,0x00006244,0x00000000,0x93660000,0x51e37ac5,0xbdf7bdd7,0x0000b5b6,0x00000000,0xc6380000,0x0000b5b6,0x00000000,0xc6180000,0xa514bdf7,0x00000000,0x49a35a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x318669c2,0x39015161,0x59823901,0x28a04941,0x49414941,0x41214101,0x69c230c1,0x61e47aa6,0x52aa9b48,0x61e47aa6,0x9b4861e4,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000640,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13405e40,0x00000000,0x00000000,0x00000000,0x00000000,0x5ce20000,0x00000000,0x00000000,0x5d610000,0x00000000,0x00000000,0x000065a1,0x00000000,0x00000000,0x000093c1,0x7b420000,0x95200000,0x000039a0,0x93e10000,0x39a00000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7a847a84,0x7a847a84,0x8b4682a5,0x82c582c5,0x82a582c5,0x93676244,0x6a039367,0xc638c618,0xbdd7bdd7,0xbdd7bdd7,0xc618bdf7,0xbdf7bdf7,0xbdf7bdf7,0xc618b5b6,0xa534bdf7,0x62650000,0x5a448b87,0x62656265,0x62656265,0x62656265,0x5a245a24,0x6a856265,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c171e2,0x69c269c2,0x41015161,0x494128a0,0x28a04941,0x410161a2,0x41214121,0x59824121,0x41429b48,0x9b489b48,0x61e47aa6,0x7aa64142,0x41427aa6,0x61e49b48,0x61e461e4,0x7aa661e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1b605d81,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b6184c1,0x00000000,0x00000000,0x00000000,0x00000000,0x7b620000,0x00002120,0x00000000,0x83a20000,0x00000000,0x00000000,0x294083a2,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7ac58b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x6a039367,0xc618bdf7,0xbdd7bdf7,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xa534c618,0xa4090000,0x49a3a409,0x8b878b87,0xa409a409,0xac4aac4a,0xa409ac4a,0x62658b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x51625982,0x41215161,0x61a230c0,0x30c04101,0x41215161,0x41214121,0x71e230c1,0x414261e4,0x7aa67aa6,0x61e47aa6,0x9b484142,0x414261e4,0x61e47aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005da1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x240195a0,0x00000000,0x00000000,0x00000000,0x00000000,0x73220000,0x00000000,0x00000000,0x10c08ba2,0x00000000,0x00000000,0x00007b42,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac68b4aa,0xac68ac68,0xb4aaac68,0xaca9b4aa,0xb4aaac68,0xb4aab4aa,0xb4aab4aa,0x8b46b4aa,0xa514a534,0xad75a534,0xbdf7b5b6,0xbdf7c618,0xbdf7bdf7,0xc618c618,0xc638c638,0xbdd7c638,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x49417202,0x69e271e2,0x41214121,0x69c269c2,0x30c04121,0x412169c2,0x69e25982,0x71e24921,0x61e49b48,0x9b489b48,0x61e461e4,0x9b489b48,0x414261e4,0x61e49b48,0x9b487aa6,0x9b4861e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006620,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006b02,0x00000000,0x00000000,0x00000000,0x00000000, +0xce79c618,0xe71cf79e,0xd6bace59,0xffdff79e,0xd69adedb,0xf79ee73c,0xce79ce59,0xf79eef7d,0x1aaf220a,0x1aaf220a,0x2a4b1aaf,0x1aaf1aaf,0x1aaf22d0,0x1aaf1168,0x328c1aaf,0x2a4b1aaf,0xffffffff,0xefffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0xffffefff,0xefffe79e,0xffffe79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x142413e4,0x140313a3,0x09c20b63,0x14030a02,0x0b8313e4,0x13e31403,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5569d15,0x94d49d15,0xa536add9,0xa55794f4,0xad779d36,0x9d159d15,0x9d369d15,0x94f49d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bef7be,0xdedbdefb,0xe71cf79e,0xef5de73c,0xef7dffff,0xd69ad69a,0xe73ce71c,0xce59d6ba,0x00000a0d,0x000022f0,0x1aaf0000,0x00000000,0x00000000,0x000022d0,0x124e0000,0x1aaf0000,0xefffffff,0xe79effff,0xe79ee79e,0xffffe79e,0xffffffff,0xffffffff,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x0b030000,0x01410000,0x0b030b03,0x0b030000,0x00000141,0x0b030b03,0x01410000,0x00000b03,0x0a020000,0x146413e4,0x14240ba3,0x00000ac2,0x13e40a02,0x13a31464,0x13a31424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d16a536,0x9d159d15,0x9d16a536,0xa556a536,0xa5368cb3,0x9d1594b4,0x9cf5a557,0xa5369d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73ce73c,0xffffffdf,0xef5df79e,0xd6bae71c,0xdedbbdd7,0xf79ee73c,0xdedbdedb,0xfffff79e,0x126e220a,0x1aaf220a,0x220a1aaf,0x1aaf1aaf,0x22d01aaf,0x126e220a,0x19a81aaf,0x220a1aaf,0xefffefff,0xe79eefff,0xefffefff,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f, +0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x0b030000,0x14030aa2,0x0b431444,0x0ba30aa2,0x0aa21444,0x14241403,0x0aa20aa2,0x00000b03,0x01410000,0x13e30b83,0x14241403,0x0b030bc3,0x0b630141,0x13a313e4,0x14641464,0x00000b03,0x0b030000,0xdef3def3,0xdef3def3,0xded3def3,0xded3def3,0xdef3def3,0xdef3def3,0x00000b03, +0xa557adb9,0x8c939cf5,0x9d159d15,0xad779d15,0xad77a536,0xa536a557,0x9d15a556,0x9d16a557,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0xaece7605,0x0000854b,0x72873165,0x498492c7,0x49849b29,0x39439b29,0x41649b29,0x394392e8,0x394382a7,0x31657287,0x72873165,0x9b2992c7,0x9b299b29,0x72879b29,0x92e87287,0x82a792e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad6ba,0xbdf7bdd7,0xf7bef79e,0xb5b6c638,0xef5ddefb,0xe73ce71c,0xffffffff,0xc618e73c,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xffffefff,0xe79eefff,0xe79ee79e,0xffffefff,0xffffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f, +0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x0b030000,0x14031444,0x00000b43,0x14241403,0x0b431444,0x0b431403,0x14241464,0x00000b03,0x00000000,0x0b830b43,0x146413e4,0x0b030b83,0x0ae20000,0x13a31464,0x0ba313e3,0x00000b03,0x0b030000,0xd6b3def3,0xd6d4d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6d4d6d4,0xdef3d6d4,0x00000b03, +0xa536ad77,0xad779d15,0x9d15a536,0x94d4a556,0xa53694f4,0x9d159d15,0xa537a536,0x9d159d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x51849b29,0x51849b29,0x518482a7,0x518482a7,0x59a492e8,0x31658ae8,0x8ae83165,0x9b299b29,0x82a79b29,0x18a27287,0x728718a2,0x82a782a7,0x92c792e8,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce79ce59,0xe71ce71c,0xd6bad69a,0xe73cef5d,0xce79ce59,0xe73cd69a,0xbdd7bdd7,0xe73cd6ba,0x00000a2d,0x000022d0,0x2b310000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xe79effff,0xefffe79e,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755fffff,0x755f755f, +0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x0b030000,0x14031444,0x0b431444,0x14241403,0x00000b43,0x00000b43,0x14030b43,0x00000000,0x0a020000,0x0ba31424,0x146413e4,0x0b030ba3,0x13e30a02,0x13a31464,0x0b031464,0x000009c2,0x0b030000,0xd6b3def3,0xdef4def4,0xdef3def3,0xdef4def4,0xdef4def4,0xdef3d6b3,0x00000b03, +0xa5379cf5,0x94d5a556,0x9d15a536,0x9d15a536,0xa536a536,0xadb89d35,0x9d159d15,0x94b49d15,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece7605,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c84143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x31658287,0x82873165,0x92c792c7,0x92c892c8,0x18a27287,0x728718a2,0x92c792c7,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79ef79e,0xef5def5d,0xf79effff,0xe73cef5d,0xef7df79e,0xe71cd6ba,0xdefbe73c,0xdefbce59,0x1aaf0947,0x1aaf1188,0x21e91aaf,0x1a8f0a2d,0x1a8f2b52,0x1aaf220a,0x220a124e,0x11882b11,0xffffffff,0xe79effff,0xefffefff,0xefffefff,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f, +0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x00000000,0x14030aa2,0x14031424,0x14441403,0x0b431403,0x0b4313e3,0x14031444,0x00000b03,0x0a020000,0x0ba31424,0x14641403,0x09c20b02,0x13e30a02,0x0ba31464,0x0aa21464,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6d4,0x00000b03, +0xa536a536,0xa5378c73,0xa55794f4,0x9d169d35,0xad77ad77,0x9d15a556,0x9d159d36,0x9d369d15,0xaece0000,0x0000854b,0xe77b7605,0x0000960c,0xaece9766,0x0000854b,0x854b0000,0x00006c28,0x82a83165,0x92e859c5,0x9b2959e5,0x82a75184,0x82a75184,0x92e859c5,0x92e859c5,0x316582a8,0x82a83165,0x92e892e8,0x9b299b29,0x18a27287,0x728718a2,0x92e892e8,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbd69a,0xef7dd6ba,0xbdf7bdd7,0xe71cdedb,0xe73cce79,0xffffffff,0xe73cdedb,0xffdfffff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x0000126e,0x126e0000,0x1aaf0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xe79effff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f, +0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x0b030000,0x14031444,0x14240b43,0x00000b43,0x14030b43,0x14241403,0x14030b43,0x00000b03,0x0a020000,0x13a31464,0x146413e4,0x00000aa2,0x0b830a02,0x0ba31464,0x0ba31464,0x00000b03,0x0b030000,0xd6b3ded3,0xdef3def3,0xd6b3d6b3,0xd6b3d6b3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x8c9394d4,0x9d35a536,0xa5369d35,0x9d15a557,0xa5369d36,0xad77a536,0xa5369d36,0xa57694d4,0x854b7605,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x72873165,0x394382a7,0x498482a7,0x416492e8,0x394382a7,0x414382a7,0x39439b29,0x31657287,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x82a79b29,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cef5d,0xd69ac618,0xe73cf79e,0xd6bace79,0xd6bad69a,0xc618d69a,0xdedbdefb,0xc638c638,0x000022f0,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xefffffff,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffffff,0xe79effff,0xffffffff,0xe79eefff,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x0b030000,0x0b431444,0x0b430000,0x0b4313e3,0x14031403,0x0b431403,0x0b430000,0x00000000,0x0a020000,0x0ba31464,0x0ba31403,0x0b031403,0x0b230141,0x13a31444,0x0ba31403,0x00000b03,0x0b030000,0xd6d4def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa536a536,0xa557a557,0x9d15a536,0xa536a557,0xadd9ad77,0xa53694d4,0x9d169d15,0x9d369d15,0xe77b9766,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x59a49b29,0x59e582a7,0x59c59b29,0x59c592e8,0x59e59b29,0x31658ae8,0x8ae83165,0x9b299b29,0x92c79b29,0x18a27287,0x728718a2,0x92e892e8,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad69a,0xffffffff,0xe73cef5d,0xf79ef79e,0xd69ace59,0xf79eef5d,0xe73ce73c,0xf79ef79e,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x22d00000,0x124e0000,0xffffffff,0xefffefff,0xefffefff,0xe79eefff,0xffffffff,0xe79ee79e,0xefffffff,0xe79eefff,0x755f755f,0x755f8dff,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x00000000,0x14030aa2,0x14840b43,0x14031444,0x0b431444,0x14241403,0x14030b43,0x00000141,0x0a020000,0x13a31464,0x13a31403,0x0b031464,0x0a820000,0x0bc31424,0x0b221424,0x000009c2,0x0b030000,0xd6b3def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef3def3,0xdef3d6b3,0x00000b03, +0x9d159d36,0x9d35a557,0x9d159d36,0xadb7a556,0x9cf5a536,0x9d159d15,0xa536a536,0xa5579d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x82873165,0x92c84143,0x92c84143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c892c8,0x92c892c8,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xffffffff,0xef5def7d,0xdefbdefb,0xe71cdedb,0xffffef7d,0xdedbe73c,0xffffffff,0xe71cef5d,0x00001aaf,0x0000020d,0x1a8f0000,0x00000000,0x00000000,0x00001aaf,0x01ab0000,0x1aaf0000,0xe79effff,0xe79ee79e,0xefffffff,0xffffe79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x01410000,0x14840ba3,0x14441403,0x14031424,0x00000b43,0x140313e3,0x14031403,0x00000b03,0x00000000,0x0bc313a3,0x13e31403,0x0b0313e4,0x13a30a02,0x13e31424,0x0aa21424,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xd6d4d6b3,0xd6b3d6b3,0xdef3def3,0xdef3d6b3,0x00000b03, +0xa53694d4,0x9d369cf5,0xa55694d4,0x9d159d15,0x9d159d15,0xadb8a557,0xa557a536,0x9d16a536,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x9766854b,0x8ae83165,0x92e859e5,0x9b2959e5,0x82a759e5,0x82a75184,0x9b2959a4,0x9b2959e5,0x31658ae8,0x8ae83165,0x92e89b29,0x9b299b29,0x18a27287,0x728718a2,0x9b2992c7,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdd7c618,0xf79ece79,0xb5b6ce79,0xd69ace59,0xb5b6ce79,0xd6bad69a,0xd69ac618,0xd6bace59,0x1aaf220a,0x22d0220a,0x326c1aaf,0x1aaf1aaf,0x22f01aaf,0x22f0220a,0x220a1aaf,0x220a1aaf,0xefffefff,0xefffefff,0xffffe79e,0xffffffff,0xefffe79e,0xe79ee79e,0xefffefff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f8dff,0x755f755f, +0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x0b030000,0x0b431403,0x0b430000,0x140313e3,0x140313e3,0x14241444,0x0aa21444,0x00000000,0x0a020000,0x14030b43,0x13e413e4,0x0b0313e4,0x13a30a02,0x14441403,0x0ba31424,0x00000b03,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa5369cf5,0xadda9d15,0xa5769d15,0xa536a536,0xad779d15,0x94d4a536,0x9d159d15,0x94d49d36,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0x72873165,0x416492c7,0x416492e8,0x39439b29,0x416492e8,0x416492e8,0x394382a7,0x31657287,0x72873165,0x92e892c7,0x92e892e8,0x18a27287,0x728718a2,0x92e892e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbe73c,0xdefbce79,0xef5def5d,0xb5b6bdf7,0xe71cd69a,0xc638d69a,0xef5def5d,0xbdf7ce59,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x0a0d0000,0xffffffff,0xefffefff,0xffffefff,0xffffe79e,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0xffff755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x8dff755f,0x755f755f, +0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5,0x01410000,0x14031424,0x14440b43,0x0b431444,0x14031444,0x0b431444,0x14031444,0x00000b03,0x0a020000,0x14030ba3,0x142413e4,0x0b031403,0x0b230141,0x14641403,0x13a31464,0x00000b03,0x0b030000,0xd6d4def3,0xdef4def3,0xdef4def4,0xdef4def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x9d15a556,0x9d15a557,0xa557a557,0xa557a537,0x9cf5a557,0xa5579d15,0x94d49d16,0x94f5a536,0xaece0000,0x0000854b,0xe77b0000,0x7605960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x72873165,0x518482a7,0x59e582a7,0x51849b29,0x51849b29,0x59a482a7,0x59c592e8,0x316582a8,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69adefb,0xf79eef5d,0xd6bad6ba,0xf79edefb,0xdedbce79,0xf79ef79e,0xd69adefb,0xf79effff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x000022f0,0x1aaf0000,0x22d00000,0xe79effff,0xe79ee79e,0xffffffff,0xffffe79e,0xefffffff,0xe79eefff,0xffffffff,0xe79eefff,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff, +0x6b6d59e5,0x59e559e5,0x59e5ffff,0x59e559e5,0x59e5ffff,0x59e5efff,0x59e57aa7,0x7aa759e5,0x00000000,0x14a40aa2,0x14241403,0x00000b43,0x14030b43,0x00000b43,0x14030b43,0x00000b03,0x01410000,0x13e30b23,0x14240ba3,0x0b0313a3,0x0aa20000,0x146413e4,0x0ba31464,0x00000b03,0x0b030000,0xd6b3def3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xdef3d6d4,0x00000b03, +0x9d159cf5,0xa5369d15,0xa5369d15,0x9d159d15,0x9d159d15,0xa5569d35,0x9d359d36,0x94d49d36,0xaece0000,0x7605854b,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c792c8,0x92c792c7,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79eef7d,0xdedbd6ba,0xf79ef7be,0xd6bae71c,0xf79eef5d,0xe73ce73c,0xffffffdf,0xe73cef5d,0x1aaf19a9,0x1aaf220a,0x3acd128f,0x1aaf1a8f,0x1aaf124e,0x1a8f11a8,0x21ea1aaf,0x220a01cc,0xffffefff,0xe79eefff,0xefffe79e,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f755f,0xffff755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5efff,0xe79eefff,0x59e5e79e,0x59e5efff,0xefffffff,0xe79eefff,0xffff59e5,0x59e5efff,0x0b030000,0x0aa21424,0x13e31403,0x0aa213e3,0x14031464,0x0b431444,0x14031424,0x00000b03,0x00000000,0x13e30b43,0x14640ba3,0x09c20b03,0x13a30a02,0x142413e4,0x0ac21424,0x00000000,0x0b030000,0xded3def3,0xdef3def3,0xdef3def3,0xdef3ded3,0xdef3def3,0xdef3def4,0x00000b03, +0xad77a536,0x9d15ad98,0x9d159d15,0x9d369d36,0xa556a536,0xa557a557,0x9d1594f4,0xad989d15,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x854b0000,0x00006c28,0x8ae83165,0x82a75184,0x82a75184,0x92e859c5,0x9b2959e5,0x92e859e5,0x9b2959a4,0x31658ae8,0x8ae83165,0x82a782a7,0x82a782a7,0x728792e8,0x9b297287,0x92e89b29,0x9b2992c7,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cdefb,0xffffffdf,0xef5def7d,0xd6badedb,0xc618ce59,0xd6bad69a,0xc618b596,0xdedbd69a,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x126e0000,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0x59e5efff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x0b030000,0x00000b03,0x0b030141,0x00000141,0x0b030b03,0x00000b03,0x0b030141,0x00000b03,0x0a020000,0x140313e3,0x14640b83,0x00000aa2,0x13a30a02,0x146413e4,0x14031424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d35a536,0xa557a536,0x9d1594b4,0x9d159d15,0xa55794d4,0xa536add9,0x9d359d15,0xa5769d15,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ace59,0xce59c638,0xef5ddefb,0xd69ace79,0xef5de73c,0xce59bdf7,0xe71ce71c,0xc618ce59,0x1aaf21ea,0x1aaf220a,0x2a6b0a2d,0x01cc22f0,0x1aaf128f,0x1aaf220a,0x3aed22d0,0x220a1aaf,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x14031403,0x14031464,0x0b031464,0x13e40a02,0x142413e4,0x14031424,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5368452,0x9d36a536,0x9d369d15,0x9d359d15,0xa536a556,0x9d159d15,0x9d159d15,0x9d3594f5,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0xbde6e70b,0xce68b5a5,0xce68b5a5,0xce68d6a9,0xef4affed,0xd689deea,0xce68e729,0xce68ce68,0xb6bbc7bf,0xb6bbb6bb,0xb6bbb6bb,0x00000000,0xb6bbb6bb,0xb6bb0000,0xb6bbb6bb,0xc7bfb6bb,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef, +0x0000a514,0x00000000,0x9cd30000,0x528a0000,0xad75ad55,0x0000528a,0x8c710000,0xad7552aa,0x2965a514,0x29652965,0x9cd32965,0x528a2965,0xad75ad55,0x2965528a,0x8c712965,0xad7552aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6, +0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6,0xdedb8410,0xf8003186,0xf800fd00,0xffe0fd00,0xfd00f800,0xfd00ffe0,0xef5df800,0x31869cd3,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc627ce68,0xef6cbdc6,0xb5a5e729,0xce68deea,0x63006300,0xce48e729,0xe7296300,0xc627ce68,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae, +0x0000632c,0x5acb0000,0x84305aeb,0x00000000,0x632c0000,0x94b2528a,0xb5960000,0x5acb9492,0x2965632c,0x5acb2965,0x84305aeb,0x29652965,0x632c2965,0x94b2528a,0xb5962965,0x5acb9492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc,0xe71c8c51,0xfd0039e7,0xffe0ffe0,0xfd00ffe0,0xffe0fd00,0xfd00ffe0,0xef7dfd00,0x2965ad55,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729e729,0x6b40d689,0xe7296300,0x39e0c627,0x63006300,0xd6895280,0xce68ce68,0xce68ce68,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x0000c7bf,0x00000000,0xb6bb0000,0x8c717bef,0xc73f73ae,0x7bef5f7e,0x73ae7bef,0x5f7e73ae,0x73ae5f7e,0x7bef7bef,0x8c718c71,0x8c717bef,0xf80073ae,0x7bef8800,0x73ae7bef,0x880073ae,0x73ae8800,0x7bef7bef,0x8c718c71, +0x00009492,0x94925acb,0xa5340000,0x00008c51,0x528a0000,0x94b20000,0xad754a69,0x0000ad55,0x29659492,0x94925acb,0xa5342965,0x29658c51,0x528a2965,0x94b22965,0xad754a69,0x2965ad55,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x9c299c29,0x18a19c29, +0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x62869c29,0x18a16286,0xdefb8c51,0xf80039e7,0xfd00fd00,0xf800fd00,0xfd00ffe0,0xf800f800,0xef7df800,0x3186a514,0x630c3186,0x9492738e,0x94928c71,0x5acb6b4d,0x9cf36b6d,0x7bcf8c51,0x7bcf8410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf78b6300,0x39c0ce48,0xd68918e0,0xc627ce68,0x294039c0,0xce68d6a9,0xad64d6a9,0xe7296300,0xc7bf0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xb6bb0000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xffffc73f,0x767fc73f,0x5f7e767f,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xf800a820,0x9000a820,0x88009000,0x7bef73ae, +0x00008c51,0x9cd3b596,0xad750000,0x0000b596,0x8c510000,0x94b20000,0x00009492,0xa5344a69,0x29658c51,0x9cd3b596,0xad752965,0x2965b596,0x8c512965,0x94b22965,0x29659492,0xa5344a69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0x72e79b47,0x18a1bccc, +0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0xffff9b47,0x18a172e7,0xc6188c51,0x39e7e71c,0xc800c800,0xc800fd00,0xf800fd00,0xc800c800,0xef7d4208,0x2965ad55,0x5acb2945,0x5acb5acb,0x5acb5acb,0x7bcf6b6d,0x5acb630c,0x8c519492,0x7bcf7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a818e0,0xce68ce68,0xce68ce68,0xd6a9d6a7,0xce68ce68,0x1080ce68,0xce68ce68,0xce68e729,0x0000ffff,0x00000000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x0000ffff,0xb6bb0000,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xc73f7bef,0x8c715f7e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xf8007bef,0x8c718800,0x6b4d8c71, +0x0000ad75,0xb5b6ad75,0x00000000,0x00000000,0x9cd3ad75,0xad550000,0x00008430,0xad55528a,0x2965ad75,0xb5b6ad75,0x29652965,0x29652965,0x9cd3ad75,0xad552965,0x29658430,0xad55528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0x6aa618a1,0x72e772e7,0x6aa66aa6,0x10616aa6,0x72e718a1,0x72e772e7,0x6aa641a4,0x18a16aa6, +0x6aa618a1,0x72e772e7,0x41a341a3,0x10616aa6,0x72e718a1,0x72e772e7,0xb5b62902,0x18a141a3,0xad554a49,0xdefbd6ba,0x39c739e7,0xc800f800,0xc800f800,0x39e739e7,0xd6badefb,0x3186a534,0x738e39c7,0x7bcf8c51,0x5acb738e,0x7bcf7bcf,0x7bcf8410,0x632c5acb,0x6b4d8c71,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a9ce68,0xe729ce68,0xc627ce68,0xd68918c0,0xdeeaef6c,0xe729ef4a,0xffedce68,0xce4652a0,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x7bef7bef,0x73ae8c71,0x8c71767f,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c719000,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef, +0x00005aeb,0x00000000,0x4a490000,0x00005acb,0xad55ad55,0x00000000,0x9cd35acb,0x00000000,0x29655aeb,0x29652965,0x4a492965,0x29655acb,0xad55ad55,0x29652965,0x9cd35acb,0x29652965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xb48b18a1,0xb48bb48b,0xbcccbccc,0x18a19c29,0x9c292102,0xb48bb48b,0xb48b9b47,0x18a1b48b, +0xb48b18a1,0x72c772c7,0x72e7b5b6,0x18a19c29,0x9c292102,0xb48bb48b,0xb5b6dedb,0x18a172c7,0x7bcf4a49,0xdedbce59,0xe71cef7d,0x42084208,0x420839e7,0xef7de71c,0xc638d69a,0x31867bcf,0x528a2965,0x7bcf73ae,0x52aa7bcf,0x84109492,0x7bcf7bcf,0x5acb7bef,0x6b4d6b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x39c0ce68,0xce68ce68,0xd689deea,0x6300ce68,0x63005280,0x39c0e729,0x6b416b41,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xc73f73ae,0x5f7e5f7e,0x73ae5f7e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xa82073ae,0x88008800,0x73ae8800,0x73ae73ae,0x7bef8c71, +0x4a698c71,0x5acb0000,0x00008c71,0x00009cd3,0x000052aa,0x000094b2,0xad7552aa,0x00009492,0x4a698c71,0x5acb2965,0x29658c71,0x29659cd3,0x296552aa,0x296594b2,0xad7552aa,0x29659492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x9c2918a1,0xb5b69c29,0xb5b66286,0x290272c7,0x9c292102,0x72e79c29,0x9c29bccc,0x18a19c29, +0x9c2918a1,0xdedbb5b6,0x72e7b5b6,0x2902b48b,0x9c292102,0x72e79c29,0xb5b6ffff,0x18a16286,0x8c714a49,0xdedbc638,0xe73cdedb,0xf79ef79e,0xf79ef79e,0xdedbe73c,0xc638dedb,0x39e78c71,0x528a2945,0x94929492,0x5acb7bef,0x738e9492,0x841094b2,0x6b4d8410,0x94b26b4d,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729ce68,0xd689dec8,0xce68d689,0x39c0c607,0x39c0e729,0x39c039c0,0xce68b5a5,0xce6839c0,0xc7bfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0xc73f7bef,0x6b4d767f,0x73ae8c71,0x7bef7bef,0xc73fffff,0x8c718c71,0x8c718c71,0x8c718c71,0xf8007bef,0x6b4d9000,0x73ae8c71,0x7bef7bef,0xa820f800,0x8c718c71,0x8c718c71,0x8c718c71, +0x8c71bdd7,0x9cd30000,0x52aa94b2,0x949294b2,0x94b20000,0x00009492,0xbdd70000,0x52aa9cf3,0x8c71bdd7,0x9cd32965,0x52aa94b2,0x949294b2,0x94b22965,0x29659492,0xbdd72965,0x52aa9cf3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xbccc18a1,0xdedbbccc,0xdedb72e7,0x29226286,0xb48b2922,0xb48bb48b,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0x72e7b5b6,0x29229c29,0xb48b2922,0x72c7b48b,0xb5b6dedb,0x18a172e7,0x42282965,0x84107bcf,0x8c715aeb,0x94b28c71,0x94929492,0x4a698c71,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c51738e,0x738ea514,0x94b26b6d,0x84309492,0x632c738e,0x4a495aeb,0x39c77bcf,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b40bde6,0xd689e729,0xdecae729,0xce48c607,0xce68ce68,0xb585d6a9,0xce689ce2,0xce68deca,0x0000ffff,0x0000c7bf,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef, +0xb5b6a514,0xa5340000,0x5acbb5b6,0x9492ad75,0xad550000,0x528abdd7,0x528a0000,0x630c0000,0xb5b6a514,0xa5342965,0x5acbb5b6,0x9492ad75,0xad552965,0x528abdd7,0x528a2965,0x630c2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x72e718a1,0x6aa66aa6,0x6aa6dedb,0x18a16aa6,0x72e718a1,0x41a46aa6,0x6aa66aa6,0x18a172e7, +0x72e718a1,0x28e16aa6,0x6aa66aa6,0x18a16aa6,0x72e718a1,0xffff6aa6,0xb5b6dedb,0x18a141c4,0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0deea,0xef4cce68,0xce686300,0xce68ce68,0xd689e729,0xb5a5ce68,0xe729ffcc,0xce68ce68,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x8c718c71,0xffff7bef,0x767fc73f,0x5f7e767f,0x7bef7bef,0x5f7e767f,0x8c718c71,0x6b4d8c71,0x8c718c71,0xb8207bef,0x9000a820,0x88009000,0x7bef7bef,0x88009000,0x8c718c71,0x6b4d8c71, +0x94b2528a,0x528a0000,0x00005acb,0xa534a514,0x00000000,0x0000632c,0x528a0000,0x5aeb5acb,0x94b2528a,0x528a2965,0x29655acb,0xa534a514,0x29652965,0x2965632c,0x528a2965,0x5aeb5acb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x6a8572c6,0x6a856a85,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xbccc18a1,0x28e1bccc,0x28e172e7,0x210272e7,0x9c292102,0xbccc49e4,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0xbcccbccc,0x2102bccc,0x9c292102,0xdedb49e4,0xb5b6dedb,0x18a172e7,0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdc6ce68,0xce68ce68,0xbde6e729,0xd689ce68,0xce682120,0xce68d6a9,0xdeca6300,0xce68d6a9,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000c7bf,0x00000000,0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aec73f,0x6b4d7bef,0xc73fffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xf8007bef,0x73aea820,0x6b4d7bef,0xa820f800,0x73ae73ae,0x7bef6b4d, +0xb5960000,0x00008430,0x8c714a69,0x00005aeb,0x9cd3528a,0x52aa0000,0x5acb0000,0x84300000,0xb5962965,0x29658430,0x8c714a69,0x29655aeb,0x9cd3528a,0x52aa2965,0x5acb2965,0x84302965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x31643184,0x31843184,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x9c2918a1,0x28e172e7,0x28e1b48b,0x2102bccc,0xb48b2902,0xb48b9b47,0x9c299c29,0x18a19c29, +0x9c2918a1,0x28e172e7,0xb48bb48b,0x2102bccc,0xb48b2902,0x28e19b47,0x28e128e1,0x18a16286,0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x6300ce68,0xce686300,0xc607a523,0xbde6ce68,0xce68ce68,0xce68e729,0xce68ffef,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xc7bf0000,0xb6bb0000,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71, +0xa5140000,0x0000a514,0xa5340000,0x0000528a,0x8c719cd3,0x00000000,0x00008c71,0x8c519492,0xa5142965,0x2965a514,0xa5342965,0x2965528a,0x8c719cd3,0x29652965,0x29658c71,0x8c519492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x7ae49365,0x7ae49365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x72e77ac6,0xb48bb48b,0x18a1b48b, +0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x28e17ac6,0x28e172c7,0x18a172c7,0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc607ce68,0x39c0deea,0xd68939c0,0x39e0e729,0xc627e729,0x2960c607,0xce466300,0xdecace68,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bbc7bf,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xc73f7bef,0x7bef5f7e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xf8007bef,0x7bef8800,0x73ae73ae,0x73ae73ae,0x7bef73ae, +0x00000000,0x00000000,0xad750000,0x00008c51,0x9cd3ad55,0xad754a69,0x00008c51,0x9cd3ad75,0x29652965,0x29652965,0xad752965,0x29658c51,0x9cd3ad55,0xad754a69,0x29658c51,0x9cd3ad75,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xa363a363,0xa363a363,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x6aa641a4,0x6aa66aa6,0x18a172e7, +0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x28e141a4,0x28e128e1,0x18a172e7,0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0xd689ce68,0xdeeace68,0x63005280,0xce68dec8,0xe70bbde6,0xce4839c0,0xce68ffec,0x0000ffff,0xffff0000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4d7bef,0x73ae73ae,0x73ae767f,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x767fc73f,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae9000,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x9000f800,0x7bef7bef, +0x00000000,0x00008c71,0xad75528a,0x0000a514,0xad559cf3,0xb5965aeb,0x000094b2,0xad55b596,0x29652965,0x29658c71,0xad75528a,0x2965a514,0xad559cf3,0xb5965aeb,0x296594b2,0xad55b596,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc, +0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0c627,0xce68e729,0xce68c607,0x39c039c0,0xd689ce68,0xce68ce68,0xce68ce68,0xce682100,0x0000ffff,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef, +0x00008430,0x9cd3bdd7,0x52aa0000,0x00000000,0x4a6952aa,0xb5960000,0x528ab5b6,0x52aa0000,0x29658430,0x9cd3bdd7,0x52aa2965,0x29652965,0x4a6952aa,0xb5962965,0x528ab5b6,0x52aa2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc, +0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68d689,0xce68b5a5,0xce68ce68,0xce68ce68,0xce68deea,0xe7295280,0xce68deea,0xce68ce68,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xc7bfffff,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae, +0x000094b2,0x9cf3ad75,0x00005acb,0x00000000,0x00007bef,0x00000000,0x52aa0000,0xad550000,0x296594b2,0x9cf3ad75,0x29655acb,0x29652965,0x29657bef,0x29652965,0x52aa2965,0xad552965,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41e641e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc, +0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6, +0x73ae7bcf,0x19e3738e,0x08e10901,0x1a231142,0x84103c47,0x224452aa,0x19c319a3,0x630c1162,0x08621083,0x08631083,0x10831083,0x10831083,0x10831083,0x10831082,0x10831083,0x10830862,0x41cc41cc,0x20c60021,0x00b009b1,0x31091884,0x20c61083,0x20c609b1,0x314a1884,0x18840000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x18a118a1,0x18a10840,0x512218a1,0x51224902,0x51225122,0x18a15122,0x08400840,0x18a10840, +0x630c39e7,0x29453186,0x29452945,0x29452945,0x21242945,0x29452945,0xa5342945,0x3186630c,0x318639e7,0x31863186,0x31863186,0x31863186,0x29653186,0x31863186,0x31863186,0x31863186,0x318639e7,0x29453186,0x29452945,0x31863186,0x31863186,0x29452945,0x31862945,0x31863186,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x5b8132d1,0xacc14183,0x90828be1,0x2a6f32d1,0xbccc146d, +0x8c5173ae,0xa51411a2,0x7bcf8410,0x1a237bef,0x1a231a23,0x94927bef,0x94b28c51,0x114239e7,0x10821083,0x18c51083,0x10831083,0x08620862,0x18a40841,0x18c518c5,0x108318c5,0x08620862,0x31090021,0x20c6314a,0x09b109d1,0x310920c6,0x20c61083,0x28c809d1,0x002120c6,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xb48b1061,0x2902b48b,0xb3a9ab88,0xab68ab68,0xab88ab88,0xab88ab68,0xb48b2902,0x18a1b48b, +0x7bef4a69,0x108239e7,0x21242945,0x29452945,0x29452945,0x29452945,0xb5b61082,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x73ae7bcf,0x7bef7bef,0x7bcf7bcf,0x7bcf7bcf,0x7bef7bef,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x738e7bcf,0x7bcf738e,0x738e7bcf,0x738e738e,0x7bcf7bcf,0x29657bef,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x8c717bef,0xfff673ae,0x7beffd65,0x73ae7bef,0xfd6573ae,0x73aefd65,0x7bef7bef,0x8c718c71,0x8c717bef,0xdd7273ae,0x7befac6e,0x73ae7bef,0xac6e73ae,0x73aeac6e,0x7bef7bef,0x8c718c71,0x8c717bef,0x39e773ae,0x7bef31a6,0x73ae7bef,0x31a673ae,0x73ae31a6,0x7bef7bef,0x8c718c71,0x81a1b48b,0x61407180,0x9082b8a2,0x5b8132d1,0xacc13142,0x90828be1,0x2a6f32d1,0xb48b146d, +0x7bcfbdd7,0xb5b622a4,0xb5b63c07,0x39c71a23,0xce592264,0x7befa534,0x7bef9492,0x31a68c51,0x10830864,0x18c518c5,0x00211083,0x108318c5,0x20e60841,0x18c518c5,0x10831083,0x10830863,0x00211884,0x314a1884,0x3109314a,0x20c620c6,0x314a1083,0x00b009d1,0x0021314a,0x20c6314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0xb48b0840,0xa34720e2,0xa347a368,0xa347a347,0xa3479b47,0xa368a347,0x2102a388,0x0840b46b, +0x73ae4a49,0x000039e7,0x18c31082,0x18c318c3,0x10a218c3,0x108218c3,0xb5960000,0x3186738e,0x73ae4a49,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x3186738e,0x73ae4a49,0xb596b596,0xb596b596,0xad55b596,0xad55ad55,0xa514a514,0xad55b596,0x3186738e,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xfffffff6,0xff69fff6,0xfd65ff69,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xe615dd72,0xbcd0dd72,0xac6ebcd0,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x422839e7,0x31a639e7,0x31a631a6,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x314232d1,0xb5b65b81,0x90828c51,0x2a6f32d1,0xbccc146d, +0xb596b596,0x11421142,0x11421142,0x7bef2264,0x114219a3,0x9cf3b596,0x7bef2b05,0x1a231a23,0x398a1083,0x20c5396a,0x08610862,0x08621063,0x396a0841,0x108318c5,0x10821083,0x08620862,0x188420c6,0x00001884,0x00000021,0x20c609b1,0x310920c6,0x00b009d1,0x31090021,0x28c820c6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0x29020840,0x51c4a347,0x494351c4,0x51c451a4,0x51c451c4,0x51c451c4,0xa34751a4,0x08402902, +0x7bef4a49,0x39e77bef,0x00000000,0x00000000,0x00000000,0x00000000,0xb5964208,0x29657bef,0x7bef4a49,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x29657bef,0x7bef4a49,0xb596b596,0xad55b596,0xce59b596,0xa514ce59,0xb596b596,0xb596ad55,0x29657bef,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xfff67bef,0x8c71fd65,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xdd727bef,0x8c71ac6e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x39e77bef,0x8c7131a6,0x6b4d8c71,0x81a172e7,0x61407180,0x9082b8a2,0x41833142,0xb5b65b81,0x90828c51,0x2a6f32d1,0x72e7146d, +0x1a231a23,0x7bef33e6,0x39c76b6d,0x84107bef,0x7bef9492,0x19e31142,0x1a233c27,0x39c71a23,0x08411084,0x10830841,0x08620862,0x08621083,0x398a0841,0x10830862,0x41ab0841,0x108318c5,0x188428c8,0x314a20c6,0x20c60021,0x00b009b1,0x314a20c6,0x00b009d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xab880840,0x51c4a347,0xb3889ac6,0xab8851a4,0x51a4ab88,0xb3a99ac6,0xa36851c4,0x1881ab88, +0x7bef4a49,0x7bcfad55,0x39c739e7,0x00000000,0x00000000,0x39e739e7,0xa51473ae,0x318673ae,0x7bef4a49,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x318673ae,0x7bef4a49,0xb596ad55,0xb596b596,0x1082b596,0xce591082,0xb596ad55,0xa514b596,0x318673ae,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0x7bef7bef,0x73ae8c71,0x8c71ff69,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c71bcd0,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c7131a6,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x20e2bccc,0x31423142,0x9082b8a2,0x39633963,0xacc13142,0x29028be1,0x2a6f32d1,0x9c293142, +0x3c075aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x2b057bef,0x39c78430,0x5aeb2244,0x84309cd3,0x10831082,0x08621083,0x10830862,0x08630863,0x08411083,0x10840862,0x08421083,0x10831083,0x18843109,0x18841884,0x20c60021,0x00b009b1,0x09b120c6,0x09b109d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xab881881,0x4943a347,0xa3479ac6,0xa3474983,0x41228a85,0xb3a9a347,0xa34751c4,0x18a1ab88, +0x7bcf4a49,0xb596b596,0x7befb596,0x42084208,0x420839e7,0xb5967bef,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596ad55,0x10822104,0x21041082,0xb596ce59,0xad559cf3,0x31867bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0xfff673ae,0xfd65fd65,0x73aefd65,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xdd7273ae,0xac6eac6e,0x73aeac6e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x39e773ae,0x31a631a6,0x73ae31a6,0x73ae73ae,0x7bef8c71,0x20e29c29,0x20e220e2,0x20e220e2,0x290220e2,0x29022902,0x20e220e2,0x2a6f32d1,0x9c292902, +0x5aeb8c51,0xb5b6b596,0x11622b45,0x6b4db596,0x3386bdd7,0x1a239492,0xc6185aeb,0x7bef7bef,0x10830862,0x10831083,0x10821083,0x20e51083,0x08620863,0x00220862,0x086218c5,0x10831083,0x00000021,0x20c620c6,0x31091884,0x00b009d1,0x09b11083,0x3109314a,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0xb3a918a1,0x49638a65,0x498351a4,0x51c451c4,0x51c44963,0x51a44983,0xa34751c4,0x18a1ab88, +0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0x00002104,0x21040000,0xc638ce59,0xc638c638,0x39e78c71,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0xfff67bef,0x6b4dff69,0x73ae8c71,0x7bef7bef,0xfff6ffff,0x8c718c71,0x8c718c71,0x8c718c71,0xdd727bef,0x6b4dbcd0,0x73ae8c71,0x7bef7bef,0xdd72e615,0x8c718c71,0x8c718c71,0x8c718c71,0x39e77bef,0x6b4d31a6,0x73ae8c71,0x7bef7bef,0x39e74228,0x8c718c71,0x8c718c71,0x8c718c71,0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29, +0x08e17bef,0xbdd71a23,0x2b053c47,0xb59622a4,0x2b05ad55,0x19c32244,0x21041182,0xb596c638,0x08410862,0x18c5398a,0x10830862,0x18c520e6,0x08621083,0x08411083,0x18c518a5,0x10830862,0x18840021,0x00b020c6,0x10831884,0x09b109d1,0x09b11083,0x002200b0,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xab8818a1,0x51c49ac6,0xa347ab88,0xab8851a4,0x51c4ab88,0xab88a347,0xa34751c4,0x18a1b3a9, +0x42282965,0x84107bcf,0x528a5aeb,0x5acb4a69,0x52aa5acb,0x4a69528a,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c717bcf,0x7bcf9cf3,0x94b273ae,0x84309492,0x6b6d7bcf,0x5aeb6b4d,0x39c77bcf,0x42282965,0x84107bcf,0x528a5aeb,0x21048c71,0x632c2104,0x6b6d528a,0x5aeb73ae,0x39c77bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7, +0x7bef7bef,0x1a031122,0xb5963c27,0x19e31a23,0x19c32244,0x8c5131a6,0x39c77bef,0xc6182264,0x10831083,0x08620841,0x18a51083,0x108418c5,0x08411083,0x084118c5,0x398a3129,0x108418c5,0x18840021,0x00b020c6,0x10831884,0x314a314a,0x09b11083,0x20c600b0,0x002120c6,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0xab880840,0x59c4a347,0xa347ab88,0xab8851c4,0x51a4ab88,0xab68a367,0xa34751c4,0x18a1ab88, +0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0x5aeb2965,0x6b6d6b6d,0x4a69738e,0x84304a69,0x5acb8430,0x4a696b6d,0x5acb6b4d,0x39c7528a,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8c718c71,0xffff7bef,0xff69fff6,0xfd65ff69,0x7bef7bef,0xfd65ff69,0x8c718c71,0x6b4d8c71,0x8c718c71,0xe6157bef,0xbcd0dd72,0xac6ebcd0,0x7bef7bef,0xac6ebcd0,0x8c718c71,0x6b4d8c71,0x8c718c71,0x42287bef,0x31a639e7,0x31a631a6,0x7bef7bef,0x31a631a6,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x5b817462,0xb8a23963,0x74629082,0x146d5b81,0xbccc0b4a, +0x7bef7bef,0x1a232b05,0x11422284,0x224439c7,0x33662264,0x2b05a514,0x7bef738e,0x52aa2b05,0x10821083,0x10831083,0x398a398a,0x398a398a,0x08410862,0x0862398a,0x08410841,0x08620841,0x1884314a,0x00b009b1,0x10831884,0x108341cc,0x09b11083,0x314a00b0,0x20c63109,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x94926244,0x41a373ae,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xab880840,0x51a4a347,0x498351a4,0x51a451a4,0x51c44963,0x49434983,0xa34751a4,0x0840ab88, +0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0x630c3186,0x6b6d7bef,0x6b6d5aeb,0x528a528a,0x6b6d528a,0x6b6d7bcf,0x8430528a,0x2104630c,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aefff6,0x6b4d7bef,0xfff6ffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xe6157bef,0x73aedd72,0x6b4d7bef,0xdd72e615,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0x42287bef,0x73ae39e7,0x6b4d7bef,0x39e74228,0x73ae73ae,0x7bef6b4d,0xb8a29c29,0x146d9082,0x2a6f32d1,0x39e74a49,0xb8a24183,0x74629082,0x146d5b81,0x9c290b4a, +0x8430738e,0x1a237bef,0x8c512ae5,0x11427bef,0xc6383c27,0x2b457bcf,0x5acb630c,0x11621122,0x10831083,0x08421082,0x08410841,0x08410841,0x08621083,0x10830841,0x10831083,0x08620862,0x18840021,0x00b009d1,0x41cc1884,0x20c641cc,0x09d120c6,0x20c600b0,0x314a0022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0xa5342923,0x292373ae,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0xab880840,0x51c4a347,0xa347ab88,0x92a54122,0x4983a347,0x9ac68a85,0xa34751a4,0x18a1ab88, +0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0x5acb2945,0x73ae7bef,0xb596b596,0x6b6d8c71,0xce59528a,0x7bcfb596,0x6b4d7bcf,0x212439c7,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x39e74a49,0x9082b8a2,0x74623963,0xb5b65b81,0xbccc8c51, +0xb596b596,0x1a235aeb,0x8430b596,0x39e78430,0x3be71a23,0x33c69cf3,0x7bef1a03,0x5aebad55,0x08410862,0x108318c5,0x10821082,0x10830862,0x08620861,0x08421083,0x086318c5,0x10831083,0x18840021,0x00b009d1,0x00211884,0x20c641cc,0x09d128c8,0x20c609b1,0x18840022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0xc6187ac4,0x51e28430,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0xab881061,0x51c4a347,0xa2e69ac6,0xab8851a4,0x4943ab88,0xb3a99ac6,0xa34751c4,0x18a1ab88, +0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0x738e39c7,0xb5968c71,0xb596b596,0x528a39c7,0x84308430,0xb596ce59,0x7bcfb596,0x2124738e,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x8c717bef,0x7bef7bef,0x6b4d7bef,0xfff67bef,0x7beffd65,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xdd727bef,0x7befac6e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x39e77bef,0x7bef31a6,0x73ae73ae,0x73ae73ae,0x7bef73ae,0xb5b66aa6,0x146d8c51,0x2a6f32d1,0x5b817462,0x9082b8a2,0x74623142,0x146d5b81,0x72e70b4a, +0x19c322c4,0x1a231122,0x2284bdd7,0x7bef94b2,0x1a2339c7,0x39e71142,0xad551a23,0x1a23b5b6,0x08410862,0x20c518c5,0x10820862,0x41cc1082,0x18c518c5,0x10830862,0x08620841,0x10831083,0x31090021,0x00b009d1,0x00211884,0x310941cc,0x314a314a,0x20c61884,0x18840022,0x00b009d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xce798ac3,0x8ac3a534,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x290218a1,0x51a4a368,0x51c44963,0x51c451c4,0x49434963,0x51a451c4,0xa34751c4,0x08402902, +0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0x528a2965,0xce595aeb,0x528ace59,0x6b6d528a,0x6b6d6b6d,0xce596b6d,0x8c51ce59,0x29456b4d,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x6b4d7bef,0x73ae73ae,0x73aeff69,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xff69fff6,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73aebcd0,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xbcd0dd72,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae31a6,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x31a639e7,0x7bef7bef,0xb8a2bccc,0x29029082,0x2a6f32d1,0x5b817462,0x31423142,0x74623142,0x39635b81,0x9c294183, +0x7bef1a23,0x11227bef,0x3c471a23,0x2b25b596,0x08e13186,0x7bef8c51,0x1a231142,0x84301a23,0x08411083,0x398a396a,0x0862398a,0x08410862,0x18c5398a,0x08621083,0x398a0841,0x108318c5,0x31090021,0x09b109d1,0x20c620c6,0x18841884,0x18840021,0x20c620c6,0x314a3109,0x09d109d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x51e2a384,0xabc551e2,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xb48b0840,0xa34720e2,0x9b27a347,0xa347a347,0xa347a388,0xa347a347,0x2102a347,0x18a1b48b, +0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x5aeb630c,0x7bcf5aeb,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x2902bccc,0x20e220e2,0x20e220e2,0x5b817462,0x29022902,0x20e220e2,0x20e220e2,0x9c292902, +0xb596b596,0x7bef6b4d,0x1a232965,0x3c473c47,0x7bef1a23,0x7bef8c51,0x11629492,0x9cf36b6d,0x10820862,0x08410841,0x10820841,0x10830863,0x314a0841,0x10831083,0x08411083,0x1083398a,0x310941cc,0x09d120c6,0x314a00b0,0x1884314a,0x314a1884,0x3109314a,0x00223109,0x314a314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xb48b18a1,0x2902b46a,0xab88ab88,0xab88ab88,0xab88ab68,0xab88ab88,0xbcac2922,0x1881b48b, +0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0x9c29bccc, +0xb596b596,0xa534b596,0x7bef94b2,0x1a232244,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x10831083,0x08621083,0x10830862,0x08620862,0x08411083,0x10830862,0x10821084,0x10830841,0x310941cc,0x09b10021,0x314a00b0,0x1884314a,0x00221884,0x002109b1,0x18841884,0x18840021,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x18a118a1,0x18a10840,0x188118a1,0x08400840,0x18a10840,0x084018a1,0x18a118a1,0x18a118a1, +0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bcf,0x4a69738e,0x29452945,0x5aeb39c7,0x8410ad75,0x5aeb52aa,0x4a494228,0x630c39e7,0x31863186,0x31863186,0x94b20020,0x52aa94b2,0x52aa52aa,0x318652aa,0x31863186,0x52aa52aa,0xe6f4d673,0xc5d0d693,0xded4fffa,0xef16c611,0xf737deb3,0xd672d652,0xdeb3d673,0xc611d693,0x94505248,0xa4b24a08,0x6aec9c71,0x94505269,0x52495249,0xa4904a28,0x6aecb514,0x9cd3b470, +0x6a865a45,0x39837b07,0x6aa66265,0x41846a86,0x6aa66aa6,0x31426286,0x6aa66286,0x7b076285,0x6ac76aa6,0x6aa63963,0x6a866aa6,0x6aa63963,0x6aa66aa6,0x6aa66aa6,0x39633963,0x6aa63963,0xef5def5d,0xe73ce73c,0xdefbdefb,0xd69adedb,0xdedbd6ba,0xd6bad6ba,0xd6bad6ba,0xce79d69a,0xff89ffa9,0xff28ff68,0xfec7fee7,0xf646f686,0xfe87f646,0xfe66fe66,0xfe26fe46,0xfde6fe06, +0x6efb7f1b,0x4eda5efa,0x1e782e99,0x06160637,0x06580617,0x06370637,0x06170637,0x05d605f6,0x31642923,0x39643164,0x31643164,0x31643964,0x31643164,0x31643164,0x31643164,0x31643164,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923, +0x00000000,0x00000000,0x00000000,0x7a080000,0x00005165,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x8c5173ae,0xa5144208,0x7bcf8410,0x5aeb7bef,0x5aeb5aeb,0x94927bef,0x94b28c51,0x39c739e7,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x52aa52aa,0x94b294b2,0x318652aa,0x52aa3186,0xde74e6b5,0xce52d673,0xd653de94,0xe6d4deb3,0xded4b56e,0xd693bdaf,0xcdf2e6d5,0xe6b5ce52,0x7b8d9c91,0x8bef6b0c,0x9cd36aec,0x524983ce,0xb555bdd7,0xa4d28c0f,0x6aca83ce,0x83ae7b6c, +0x62863963,0x418493a9,0x7b076aa6,0x398349e4,0x6a869388,0x39639bc9,0x7b076285,0x62863983,0xb48b49e4,0xb48bb48b,0xb48bb48b,0xac4aac4a,0xb48bb48b,0xb48bac2a,0xb48bb48b,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xdedbe71c,0xd6bad6ba,0xc638d69a,0xffeaeea8,0xffaaffca,0xffcaffaa,0xffaaffaa,0xff8aff8a,0xfea6ff08,0xf665f686,0xe5a5f645, +0x975c0637,0x7f1b8f3c,0x873c873c,0x7f1b873c,0x6f1b7f1b,0x0e583699,0x06170637,0x05730616,0x83053184,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x31848305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305, +0x00000000,0x00000000,0xc0e40000,0x98a398a3,0x98a398a3,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x7bcfbdd7,0xb5b6738e,0xb5b6ad55,0x39c75aeb,0xce59630c,0x7befa534,0x7bef9492,0x31a68c51,0x94b252aa,0x94b23186,0x52aa0020,0x318652aa,0x31863186,0x31860020,0x52aa52aa,0x94b294b2,0xe6d5fffa,0xb56ece31,0xd672d652,0xf757d672,0xf757e6b5,0xded4e6d5,0xd693e6f4,0xd653e6d5,0x9c91b554,0xb554bdb6,0x83efa4f3,0xad3594b2,0x83ce8c30,0x94309cb2,0xb4f35aaa,0x5a69b596, +0x6ac641a4,0x6aa65a45,0x7b076a86,0x6ac749e4,0x62656ac6,0x39836286,0x93a86aa6,0x39639be9,0xb48b3963,0x9c299be8,0x9c29a44a,0x9c299c29,0xa4299be9,0xa44a9c29,0xa44aa46a,0x3963b46b,0xf79ededb,0xef7df79e,0xf79ef79e,0xf79ef79e,0xef5def7d,0xe71ce71c,0xdedbdefb,0xce59dedb,0xffeceea9,0xffccffec,0xffecffec,0xffecffec,0xffabffcb,0xff07ff28,0xfec7fee7,0xedc5fea6, +0xa77d0637,0x975c975c,0xa75da75d,0x9f5ca75d,0x7f1b8f3c,0x2e9946ba,0x0e581e78,0x05940e58,0x7ae43184,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x31847ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4, +0x00000000,0x00000000,0xe082ce79,0xce79c0e4,0x98a3c0e4,0x94b298a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x72a872a8,0x72a872a8,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0xb596b596,0x39c739c7,0x39c739c7,0x7bef630c,0x31a64228,0x9cf3b596,0x7bef7bef,0x5aeb5aeb,0x318652aa,0x31863186,0x31863186,0x31863186,0x94b294b2,0x31863186,0x31863186,0x52aa3186,0xdeb4ef16,0xef36d672,0xd652ded4,0xbdafe6d4,0xdeb3c5f1,0xd652de93,0xe6d5e6b5,0xd673d652,0xa4b2b554,0x5a6a9471,0xb555b555,0x83efacf4,0x9cf3ad34,0xa51483ef,0x5289a4d2,0x8c0f83ce, +0x9bc93963,0x62863963,0x9bc96aa6,0x6aa63943,0x62853983,0x396393a9,0x62656aa6,0x9bc94184,0xb48b3963,0xbccc9c29,0xb48bbccc,0xbcccbcac,0xbcccbccc,0xbcccbccc,0x9c29bcac,0x3963b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe73cef5d,0xdedbdefb,0xce59dedb,0xffeeeeaa,0xffeeffee,0xffeeffee,0xffedffed,0xffccffcd,0xff49ff8a,0xf6a7f6e7,0xedc5f6a6, +0xaf7d0637,0xa75da75d,0xaf7da77d,0xa75daf7d,0x8f3c975c,0x56da7f1b,0x06581e78,0x05940657,0x93653184,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x31849365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365, +0x00000000,0x00000000,0xe082f945,0xe082e082,0xce79e082,0x98a398a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x936a936a,0x72a8936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb5aeb,0x7befa514,0x39c76b6d,0x84107bef,0x7bef9492,0x528a39c7,0x5aebad75,0x39c75aeb,0x52aa0020,0x52aa52aa,0x52aa3186,0x52aa52aa,0x94b294b2,0x52aa52aa,0x94b252aa,0x002094b2,0xe6d5ce32,0xcdf2e6f4,0xd673deb4,0xde93deb3,0xdeb3deb4,0xffd8de93,0xd672d672,0xbd8fd652,0xb5556aec,0x6aeab534,0x8c71730b,0x52aa73ae,0x5249a4d3,0x5249ad35,0x6aec6aea,0x94507bcf, +0x7b073983,0x62863983,0x9bc96ac7,0x9bc941a4,0x5a453943,0x39839be9,0x93a96aa6,0x9bc93963,0xb46b3963,0xbccc9c29,0xb48bb46b,0xb46bb48b,0xb48bb48b,0xbcabb48b,0xa44abccc,0x6285b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe71ce73c,0xce59defb,0xffefee8a,0xffeeffef,0xffeeffee,0xffedffee,0xffcdffed,0xffabffec,0xff28ff69,0xe5e5fee8, +0xaf7d0637,0xaf7daf7d,0xaf7daf7d,0xa77daf7d,0x9f5ca75d,0x873c9f5c,0x3eb95efa,0x05942699,0x8b043164,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x31648b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04, +0x00000000,0x00000000,0xf9450000,0xe082ffff,0xc0e4e082,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0xcccf0000,0x936acccf,0x936a936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0xa5345aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x7bef7bef,0x39c78430,0x5aeb5aeb,0x84309cd3,0x52aa52aa,0x318694b2,0x94b23186,0x318694b2,0x31860020,0x94b294b2,0x52aa94b2,0x52aa52aa,0xe6b5ded4,0xe6d5ad0d,0xef16c611,0xde74d693,0xf756f737,0xd672e715,0xd693deb3,0xdeb3d692,0xb5556acc,0x4a28b555,0x5a68ac71,0x736d630b,0x736d9451,0x94306aec,0x7bad83ef,0x62cbbdf7, +0x7b0741c4,0x6aa64184,0x93a86286,0x62653963,0x5a453983,0x41849bea,0x9bc96aa6,0x93a841a4,0xb46a6286,0xb48b9c29,0x9c29b48b,0x9c299c29,0x9c299c29,0xbcab9c29,0x9c29bccc,0x6a86b48b,0xf79ed6ba,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xce79ef5d,0xffeeee89,0xffeeffee,0xffedffed,0xffecffed,0xffecffec,0xffebffeb,0xffaaffeb,0xee06ff69, +0xa77d0637,0xaf7daf7d,0xa75da77d,0xa77da77d,0xa75da75d,0xa75d9f5c,0x873c9f5c,0x05d566fb,0x93253184,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x31649325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325, +0x00000000,0x00000000,0x00000000,0xf945f945,0xe082f945,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcccfcccf,0x936acccf,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb8c51,0xb5b6b596,0x39c78c51,0x6b4db596,0x9492bdd7,0x5aeb9492,0xc6185aeb,0x7bef7bef,0x318652aa,0x31863186,0x31863186,0x52aa3186,0x52aa0020,0x318652aa,0x31863186,0x52aa94b2,0xb54ec5d0,0xde93e6d5,0xde94de93,0xd672e6d5,0xdeb3deb3,0xef56deb3,0xe6b5deb3,0xef15c5f0,0x6aec9431,0xa514a534,0x6aec83ee,0xc5f8c5f8,0x83cf4a28,0x730bbdf7,0x9c5183ae,0x4a286b4d, +0x9be96aa6,0x628641c4,0x93a86ac6,0x6aa641a4,0x39636aa6,0x41a493a8,0x93a86aa6,0x7b0741a4,0xb48b6aa6,0xbccc9c09,0x9be9b46b,0xbcccbccc,0xbcccbccc,0xb48b9c29,0x9c09bccc,0x6aa6b48b,0xf79ed6ba,0xef7df79e,0xf79ef79e,0xf79eef7d,0xf79ef79e,0xf79ef79e,0xef7df79e,0xd69aef7d,0xffcdee89,0xffc9ffed,0xffccffcc,0xffebffcb,0xffebffeb,0xffeaffeb,0xffcaffea,0xee67ffa9, +0x975c0637,0x873ca77d,0x975c975c,0x975c975c,0x975c975c,0x9f5c9f5c,0x8f3c975c,0x0616873c,0x7ae43164,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x31647ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x21247bef,0xbdd75aeb,0x7befb596,0xb5966b6d,0x7befad55,0x4a495aeb,0x210439e7,0xb596c638,0x94b252aa,0x002094b2,0x318694b2,0x52aa52aa,0x94b252aa,0x94b294b2,0x94b294b2,0x94b294b2,0xde95e6d4,0xe6d5ef16,0xd672e6b5,0xde95eef6,0xfffaf737,0xdeb3c5d0,0xde74d673,0xdeb3d672,0x528a6b4d,0x52485248,0x94109470,0x83efad13,0x62eb9cd3,0x94116aec,0x6aecb554,0x5b0c9c71, +0x9bc96aa6,0x72c73983,0x41a493a8,0x41846aa6,0x41a46aa6,0x39639388,0x6aa66aa6,0x7b073983,0xb48b6aa6,0xbcccac8b,0x9c29b48b,0xb48bbcac,0xbcccb48b,0xb48b9c09,0x9c09bccc,0x6aa6bcab,0xf79ed6ba,0xef7df79e,0xef5df79e,0xef5def5d,0xef5def5d,0xef5def5d,0xe73cef5d,0xce79e71c,0xffcceea8,0xffc9ffec,0xff88ffed,0xff88ff88,0xff88ff88,0xff88ff88,0xff67ff88,0xee45f746, +0x975c0637,0x873ca75d,0x6efba75d,0x6efb6efb,0x6efb6efb,0x6efb6efb,0x56da6efb,0x05d63eb9,0x93653184,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x31649365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x52aa3186,0xb596ad55,0x528a5aeb,0x4a695aeb,0x8c5131a6,0x39c77bef,0xc618630c,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x00203186,0x31863186,0x31863186,0x52aa52aa,0xd693deb3,0xde93e6d5,0xd652deb3,0xffb7e6f5,0xd633deb4,0xd672d693,0xe6b5ded4,0xe6d5d672,0x6aec6aec,0xbdb6bdb6,0x8c71ad34,0x4a489c71,0xa4706aec,0x6aec8c30,0x6b4d83ef,0x736e7bf0, +0x9bc96aa6,0x6aa63983,0x39839bc9,0x41a49bc9,0x39639bc9,0x49e47b07,0x7b076286,0x6ac73983,0xb48b3963,0xcd2d9c29,0x9c29b48b,0xb48bbccc,0xbcacb48b,0xac4aa429,0x9c29bccc,0x72e7b48b,0xf79ed6ba,0xef7def7d,0xef5def5d,0xef5def5d,0xef5def5d,0xef7def5d,0xef5def7d,0xd69ae73c,0xffeceea7,0xffc9ffcb,0xff88ff88,0xff88ff88,0xff88ff88,0xffc8ffa8,0xffa8ffc8,0xee66ff87, +0x9f5c0637,0x873c8f3c,0x6efb6efb,0x6efb6efb,0x6f1b6efb,0x7f1b771b,0x771b873c,0x05f65efa,0x93043164,0xa344a344,0xa344a344,0xa363a344,0xa363a363,0xa344a344,0xa344a344,0x31649304,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x930441e5,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x292382c4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x5aeb7bef,0x39c76b4d,0x630c39c7,0x8c71630c,0x7befa514,0x7bef738e,0x52aa7bef,0x94b294b2,0x630c52aa,0x318652aa,0x94b294b2,0x52aa52aa,0x52aa52aa,0x94b294b2,0x002094b2,0xde95bdaf,0xdeb3cdf2,0xe6d4bdd0,0xd672de93,0xd693d673,0xffb9eef6,0xe6d5deb3,0xde74deb4,0xacb2a4f3,0x94517bcf,0xa4b39c51,0xb51483f0,0x736d9c91,0x4a288bef,0x8c314a28,0x6aec8c31, +0x7b076a86,0x6aa649e4,0x626593a9,0x39636a86,0x39639388,0x5a257b07,0x7b073142,0x6ac73983,0xb48b3963,0xbcac9c29,0x9c09b48b,0xbcacbcac,0xbcccbccc,0xb48b9c29,0x9c29bcab,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef5def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef5d,0xffebe688,0xffc9ffca,0xffa8ffc9,0xffc9ffc9,0xffc9ffc9,0xffe9ffc9,0xffc8ffe9,0xee66ff88, +0x975c0637,0x873c873c,0x771b873c,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06166f1b,0x93653184,0xa384abc5,0xabc5abc5,0x8b43abc5,0x8b438b43,0xabc5a363,0xabc5abc5,0x31849365,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0x72c641e6,0x72a572c6,0x72c672c6,0x94926244,0x41a373ae,0x72c672a5,0x72c672c6,0x292372c6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8430738e,0x5aeb7bef,0x8c517bcf,0x31a67bef,0xc638ad55,0x8c517bcf,0x5acb630c,0x39c72965,0x31863186,0x52aa52aa,0x318652aa,0x31863186,0x002052aa,0x52aa52aa,0x31863186,0x52aa0020,0xded4ce31,0xfffece52,0xef15d672,0xde94deb4,0xf756d693,0xc5f0deb3,0xd652ce52,0xc5f0deb3,0xbd969c92,0xa4d37b6e,0xad357bd0,0x4a288bae,0x730b4a49,0xbd968bcf,0x5aaac5f8,0x4a286b4c, +0x5a456aa6,0x62866aa6,0x6a869bc9,0x6aa66286,0x39836aa6,0x8b686aa6,0x7b073983,0x62864184,0xb48b3963,0xbccc9c09,0x9c29b48b,0xa44aa44a,0x9c299c29,0xb48b9c29,0x9c09bcab,0x6aa6b48b,0xf79ed6ba,0xef5def7d,0xef7def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd6baef7d,0xffebee88,0xff88ffea,0xffc9ff88,0xffc9ffc9,0xffcaffca,0xffc9ffc9,0xffc9ffc9,0xee87ffc9, +0x9f5c0637,0x6efb975c,0x873c6efb,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06177f1b,0x7ae43164,0xa384a363,0xa384a384,0x8b43abc5,0xa384a384,0xa384a384,0x8b438b43,0x31647ae4,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x316441c5,0x31843164,0x31843184,0xa5342923,0x292373ae,0x31843184,0x31643164,0x18e23164, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0xb596b596,0x5aeb5aeb,0x8430b596,0x39e78430,0xa5345aeb,0x9cf39cf3,0x7bef528a,0x5aebad55,0x94b252aa,0x318694b2,0x31863186,0x31863186,0x31863186,0x94b294b2,0x94b294b2,0x002094b2,0xd672e6f4,0xd672eef6,0xeef6eef6,0xeef6e6d5,0xce32e6d5,0xe6d5d672,0xc5f0d653,0xce11ded4,0xa4d26aec,0x52485248,0x5aaa9c92,0x6aec738e,0x736c94b3,0xad1462ca,0x8c309c71,0x9470a514, +0x41a46aa6,0x62866aa6,0x7b077b07,0x62866aa6,0x41a46ac7,0x9bc96aa6,0x9bc93983,0x7b073963,0xb46b49e4,0xbccc9c09,0xbcabb48b,0xb48bb48b,0xb48bb48b,0xbcabb48b,0x9c29bccc,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xf79eef7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd6baef5d,0xffeaee88,0xffeaffea,0xffe9ffc9,0xffeaffe9,0xffcbffca,0xffa8ffc9,0xffa8ffa8,0xee87ffa8, +0x975c0637,0x975c8f3c,0x975c873c,0x975c975c,0x975c975c,0x7f1b873c,0x771b7f1b,0x0617771b,0x7ae43184,0x8b438b43,0xabc58b43,0x8b43abc5,0x8b43abc5,0xa3638b43,0xa384a384,0x31849325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0xc6187ac4,0x51e28430,0x93047ae4,0x93259325,0x29239325, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x4a49738e,0x5aeb3186,0x632cbdd7,0x7bef94b2,0x5acb39c7,0x39e739c7,0xad555aeb,0x5acbb5b6,0x94b252aa,0x52aa52aa,0x002052aa,0x94b252aa,0x52aa52aa,0x31863186,0x31863186,0x52aa3186,0xd673ce31,0xdeb4de93,0xded4d652,0xce52d652,0xd672d672,0xe6f4de93,0xde93deb3,0xbdd0deb3,0x7bef8c10,0xb535bdf7,0x9c309c70,0x6aec83cf,0x8c718c51,0x734d9c91,0x734d734d,0xa4b2b534, +0x41c46ac6,0x41846265,0x7b077b07,0x6a863983,0x39639bc9,0x9bc96a86,0x9be93983,0x7b0741a4,0xb48b6aa6,0xb48ba44a,0xbcccbccc,0xbcccbccc,0xbcabbccc,0xbcabbccc,0x9c29bccc,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xf79ef79e,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef7d,0xffcaee88,0xffeaffea,0xffeaffea,0xffeaffea,0xffcbffcb,0xffc9ffc9,0xffc8ffa8,0xee66ffc8, +0x975c0637,0x8f3c975c,0x975c8f3c,0x975c9f5c,0x873c975c,0x873c873c,0x7f1b7f1b,0x05f67f1b,0x8b043164,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x31649304,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0xa34441e6,0xa363a344,0xa363a363,0xce798ac3,0x8ac3a534,0xa344a344,0xa344a344,0x2923a363, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef5acb,0x29657bef,0xb5965acb,0x8410b596,0x21243186,0x7bef8c51,0x5aeb39c7,0x84305aeb,0x002052aa,0x31863186,0x31860020,0x31863186,0x318694b2,0x52aa52aa,0x94b252aa,0x52aa52aa,0xef16e6b5,0xd673ff78,0xd693de93,0xdeb3deb3,0xe6f4deb3,0xeef6e6d5,0xce52c611,0xff78d672,0x732d8b8d,0xb5346aec,0x8c10b534,0x83efbd96,0x52486aec,0xc5f76b4d,0x83adc5f7,0x6aec6aec, +0x5a453963,0x41a46265,0x9bc96a86,0x62863983,0x39639bc9,0x7b076286,0x7b0749e4,0x9bc949e4,0xb48b3963,0x9c099c09,0x93e89c29,0x9c099c29,0x9c29a46a,0x9c299c29,0xa42a9c29,0x6aa6b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd69ae73c,0xffccee88,0xffcaffcb,0xffeaffea,0xffcaffea,0xffcbffcb,0xffc9ffca,0xff88ffa9,0xee65ff87, +0x8f3c0617,0x8f3c8f3c,0x8f3c975c,0x8f3c8f3c,0x873c873c,0x873c8f3c,0x6efb7f1b,0x05f65efa,0x93653184,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x31649365,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xabc541e6,0x8b438b43,0x8b438b43,0x82e3a384,0xabc58b04,0xa384abc5,0xabc5a363,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0xb596b596,0x7bef6b4d,0x5aeb2965,0xb596b596,0x7bef5aeb,0x7bef8c51,0x39c79492,0x9cf36b6d,0x52aa52aa,0x94b294b2,0x94b294b2,0x94b294b2,0x94b23186,0x94b294b2,0x52aa0020,0x318652aa,0xde93deb4,0xe6d6e6b5,0xd672bdb1,0xd672d652,0xe6d5c5d0,0xdeb3fffb,0xde93d672,0xef15d693,0x9c108bce,0xbd559c30,0xa4d48bf0,0x6aec9cb3,0xb555b555,0x94716b0b,0xa4d25249,0x9c51836e, +0x62853983,0x39436ac7,0x9bc93983,0x628641a4,0x39839bc9,0x9bc96a86,0x7b0749e4,0x93a849e4,0xb48b6aa6,0xb48bb46a,0xb48bb48b,0xb48bb48b,0xb46aac4a,0xb48bb48b,0xbcacbcab,0x6265b48b,0xef5dd69a,0xef5def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def7d,0xd69aef5d,0xff4ce648,0xff6bff4b,0xffabffab,0xffabffaa,0xff8bffab,0xffaaffab,0xff8affaa,0xee67ff89, +0x66fb05f6,0x6f1b66fb,0x873c873c,0x873c873c,0x7f1b7f1b,0x873c873c,0x7f1b7f1b,0x05f6771b,0x83053184,0x93049325,0x93259325,0x7ae47ae4,0x7ae47ae4,0x93257ae4,0x93257ae4,0x31648305,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xb596b596,0xa534b596,0x7bef94b2,0x5aeb630c,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x318652aa,0x31863186,0x52aa3186,0x94b294b2,0x94b20020,0x318652aa,0x31863186,0x52aa3186,0xdeb49cab,0xdeb3deb3,0xdeb3d692,0xde93d672,0xdeb4e6f4,0xd693de93,0xd672d652,0xde93ce31,0xbdf75a89,0x9c306aec,0x94119c30,0x6aec9c31,0x6aec7bef,0x9c719c71,0xa4d28c0f,0x9c30734d, +0x6aa641c4,0x9bc96aa6,0x6ac63983,0x41a493a8,0x6a866286,0x7b076286,0x7b076ac6,0x9be96aa6,0x6aa66aa6,0x6aa63963,0x62866aa6,0x39633963,0x6aa63963,0x39636aa6,0x6aa66ac7,0x6ac66aa6,0xa534ad55,0xbdd7ad75,0xd69ac638,0xd69ad6ba,0xd69ad69a,0xdedbd6ba,0xdefbdedb,0xe71cdefb,0xc423c444,0xd524cc83,0xe647ddc5,0xee67ee87,0xee27ee46,0xeea8ee88,0xeee9eec9,0xff0bf6ea, +0x042e042e,0x04f1044f,0x05f60574,0x05f60617,0x05f605f6,0x06370637,0x1e780e58,0x46ba1e78,0x31642923,0x31643164,0x31843164,0x31843184,0x31843164,0x31843184,0x31843184,0x29233184,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x94b28430,0x738e8c51,0x9cd3a534,0xbdd794b2,0xbdf78c71,0x84107bef,0x94928430,0x9cf38c51,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7, +0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6,0x8410a514,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0x84108410,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0xb596b5b6,0xb5b6ad55,0xb5b6b5b6,0xd6bab5b6,0xb5b6bdd7,0xb5b6b596,0xb5b6bdd7,0xce79b5b6, +0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x59a00000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xa514a514,0x7bcf8c51,0xad55b596,0x949294b2,0x94b27bef,0x843094b2,0x9cf3ad55,0xa5148c51,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369, +0xbcccbccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0xbcccbccc,0xb48b9c29,0xbcccbccc,0xbcccbccc,0xad55ce59,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0x51439a66,0x79e58205,0x79e579e5,0xd6ba79e5,0x79e59a66,0x79e579e5,0x79e58205,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14201300,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xad55b5b6,0x73ae73ae,0x84107bef,0xc6188410,0xc638a514,0x9cd3ad55,0x8c51a514,0xad75ad55,0x8c717bef,0x8c7173ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x73ae6b4d,0x7bef7bef,0x8c718c71,0x93697aa7,0x7aa77aa7,0x7aa772c8,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369, +0x9c29b48b,0xbccc72e7,0xbcccbccc,0x9c29bccc,0xb48bbccc,0x9c29b48b,0x9c299c29,0xb48b9c29,0xb596ce59,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0xb5968430,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0x79e59a66,0x79e579c5,0x79e579e5,0xce796184,0x79c59a66,0x79e579e5,0x79e579e5,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x91628c71,0x52aada23,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x5a261420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13000000,0x14201420,0x13001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000320,0x00000000,0x00000000, +0x94b2bdd7,0x8c518410,0x94929cd3,0x7bcf8430,0x9492632c,0x7bef8c51,0xa5349cf3,0x84307bcf,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b, +0xbcccbccc,0xbcccbccc,0x9c29bccc,0x9c29bccc,0x9c299c29,0x9c299c29,0x72e7b48b,0xbcccbccc,0xa514ce59,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa5148430,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa2679a67,0x9a66aaa7,0x9a669a66,0xce799246,0xb2c89246,0x9a669a66,0x9a669a46,0xe71c9a67, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0x52aada23,0xda23da23,0xa9a252aa,0x000052aa,0x52aa0000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x13000000,0x00001420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x14201300,0x00001300,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200320,0x03200000,0x59a00000,0x4e649325,0x00004e64,0x00000000,0x00000000, +0xad758430,0xa5148430,0x843094b2,0x8c519492,0x949294b2,0x7bcf8c71,0x7bef7bef,0x8c517bef,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7, +0x6aa672e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0xad55c618,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xad557bcf,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xb5b6b5b6,0xd6baad75,0xb5b6b5b6,0xb5b6b5b6,0xb5b6b5b6,0xdedbb596,0xbdd7b596,0xb5b6b596, +0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0x9162a9a2,0x91629162,0x91620000,0x91620000,0x52aa0000,0x00009162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x14205a26,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001420,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03204e64,0x03200320,0x03200000,0x93250320,0x000059a0,0x00000000,0x03200000, +0x9cf39cd3,0xa53494b2,0xb5b68410,0x94928c71,0x7bcfc618,0x8410a534,0x8c518c71,0x8c718430,0x7bef7bef,0x73ae8c71,0x8c7173ae,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430, +0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xb48bb48b,0x9c29b48b,0xad55ce59,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0xad558430,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0x79e58a26,0xdefb8a05,0x79e59a66,0x79e55964,0x820569a4,0xd69a79e5,0x79e59a66,0x79e58205, +0xad75ad75,0xad75ce79,0xce79ad75,0xad75ad75,0xce79ad75,0xad75ad75,0xad75ce79,0xad75ad75,0x8c71da23,0x91628c71,0x0000da23,0x00000000,0x8c710000,0x916252aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf7c00000,0xb5e0f7c0,0x8c808c80,0x0000ce80,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x59a00320,0x4e640000,0x59a00320,0x4e6459a0,0x00000320,0x03200320, +0x841094b2,0x8c71b5b6,0x9cd38c71,0x8410ad55,0x94928430,0xad559492,0xb5968c71,0x84108c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x7bef8c71,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7, +0x9c299c29,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29,0xa514ce59,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0xa5148430,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0x79e579e5,0xce7979e5,0x79e59246,0x79e579e5,0x8a268205,0xce7979c5,0x8a059a66,0x79e579e5, +0xad75ce79,0x0000ad75,0xad75ce79,0xce790000,0x0000ce79,0xce79ce79,0xad750000,0xce79ad75,0x8c71da23,0x52aa52aa,0x00000000,0x00000000,0x00000000,0x91628c71,0x52aa0000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x14203d19,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xce80ce80,0x8c80f7c0,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x93250320,0x932559a0,0x03209325,0x93259325,0x93259325,0x00004e64, +0x9cd38410,0xad55b5b6,0x8410ad75,0x9cf3ad75,0xad55b596,0x94928410,0x94928430,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x73ae8c71,0x7bef7bef,0x8c717bef,0x8c718c71,0x8c718c71,0x8c718c71,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5, +0xbcccbccc,0xbcccbccc,0x72e7bccc,0xbccc9c29,0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c29bccc,0xce79ce59,0xc618ce79,0xc638ce79,0xce59ce59,0xce79ce59,0xce79ce79,0xce79ce79,0xb596ce79,0xb5968430,0x9cf3b596,0xa514b596,0xad55ad55,0xb596ad55,0xb596b596,0xb596b596,0x9492b596,0x9a66a267,0xd69a9a66,0x9a669a46,0xb2c8a287,0x9a66a267,0xd69a9a66,0x9a669a66,0x79e5b2c8, +0xce79ce79,0x0000ce79,0xce79ce79,0xce790000,0x00000000,0xce79ce79,0xce790000,0xce79ce79,0xda23da23,0xa9a2da23,0xda23da23,0x00000000,0x52aa0000,0x52aada23,0x000052aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x3cd73ddc,0x33f333f3,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0xce800000,0x0000f7c0,0xb5e0f7c0,0x0000f7c0,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x93250000,0x93259325,0x03200320,0x59a00320,0x03200000,0x00000000, +0x84308c71,0x8c519cf3,0x7bef9492,0x8430a534,0xad7594b2,0x84108430,0xa5148c71,0xad557bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369, +0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0x8430ad55,0x84108430,0x84108410,0x84108410,0x7bcf8410,0x84108410,0x84108410,0x84308430,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0x9cf3a514,0xa514a514,0xa514a514,0x8430ad55,0xb5b6b5b6,0xb596b5b6,0xbdd7b596,0xd6bab5b6,0xb5b6b5b6,0xb5b6b596,0xb5b6b5b6,0xd6bab5b6, +0xce79ce79,0x0000ce79,0xce79ce79,0x00000000,0x0000ce79,0xce79ce79,0xce790000,0xce79ce79,0x9162a9a2,0x91629162,0x000052aa,0x00000000,0x00000000,0x916252aa,0x0000a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3d190000,0x3d193d19,0x33f33ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x00000320,0x932559a0,0x4e644e64,0x00000000,0x03204e64,0x00000320, +0x9cf37bef,0x9492a534,0x84109492,0x7bef8c51,0x84308430,0xad75b5b6,0xa5349492,0x8c7194b2,0x8c718c71,0x84107bef,0x73ae7bef,0x8c718c71,0x7bef7bef,0x7bef7bef,0x8c718c71,0x6b4d8c71,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7, +0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0xbcccbccc,0xb596ce79,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0xb5969492,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0x59649a66,0x69a48a05,0x618479e5,0xdefb79e5,0x69a4aaa7,0x71c58205,0x79e579e5,0xd69a79e5, +0xdedbce79,0x00000000,0xce790000,0xce790000,0x0000dedb,0x0000ce79,0x00000000,0xce79dedb,0x8c71da23,0x52aa52aa,0x8c71da23,0x52aa0000,0x52aa0000,0x52aa0000,0x000052aa,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x33f33ddc,0x3cd73d19,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x59a00000,0x59a09325,0x93259325,0x032059a0,0x4e640000,0x00000320, +0x9cd39cd3,0xa5347bcf,0x94b28410,0x9cd394b2,0x94b28430,0x84108c51,0x8c517bcf,0x94b28c71,0x73ae73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x6b4d7bef,0x7bef7bef,0x73ae73ae,0x7bef6b4d,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7, +0x9c299c29,0xb48b72e7,0xb48bb48b,0x9c29bccc,0xb48bb48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xa514c638,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0xa5148410,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0x79e59a66,0x79e59a66,0x79e56184,0xd69a79c5,0x79e59a66,0x79e571a4,0x79e569a4,0xd6ba79e5, +0xdedbdedb,0xce79dedb,0xdedbdedb,0xdedbdedb,0xdedbce79,0xce79dedb,0xdedbce79,0xce79dedb,0x8c71da23,0x91628c71,0x0000da23,0x91620000,0x8c7152aa,0x52aa52aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3ddc0000,0x00003ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x032059a0,0x00000320,0x93250320,0x59a09325,0x932559a0,0x00000000, +0x8410a514,0x8410ad75,0xad75ad75,0xad758c51,0x73aebdd7,0xa5348410,0x7befad55,0x8c718c51,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e59369,0x6b6d7aa7,0x93697aa7,0x7aa759e5,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5, +0x9c29bccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0x9c29bccc,0x72e79c29,0xb48bb48b,0xbcccb48b,0xb596ce59,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0xb5968430,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0x9a668a26,0x9a669a66,0x92469a66,0xd69a9a66,0xaa87aa87,0x9a66a267,0x9a669a66,0xd69a9a66, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0xa9a2da23,0xda2352aa,0xa9a252aa,0xda2352aa,0x00000000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x03209325,0x00000320,0x03200320,0x932559a0,0x03209325,0x00000000, +0x843073ae,0x94b28c51,0x9cd39492,0x7bcf7bef,0x84107bef,0x94b28c71,0x8c518c71,0x7bef8c71,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x8c717bef,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x6b6d9369,0x7aa7bc2b,0x59e59369,0xbc2b7aa7,0x93699369,0x93697aa7,0xbc2b7aa7,0x7aa79369,0x6b6d59e5,0x59e559e5,0x59e57588,0x59e559e5,0x59e55ce6,0x59e56d68,0x59e57aa7,0x7aa759e5, +0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0xb596ce59,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xbdd7bdd7,0xd6bab596,0xb5b6b5b6,0xb596b5b6,0xbdd7b5b6,0xdefbb5b6,0xb5b6b5b6,0xbdf7b596, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x9162a9a2,0x52aa9162,0x9162a9a2,0x916252aa,0x000052aa,0x91629162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x03204e64,0x4e640000,0x03204e64,0x03200000,0x00009325,0x00000000, +0xbdd7a514,0x8430b596,0x8c518c51,0x94929492,0x9cf394b2,0xad75ad55,0x73ae8430,0xb5b68410,0x6b4d7bef,0x73ae73ae,0x73ae6b4d,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x8c717bef,0x7bef7bef,0x7aa7bc2b,0x59e57aa7,0x7aa7bc2b,0x7aa77aa7,0x7aa7bc2b,0x7aa77aa7,0x59e559e5,0x7aa7bc2b,0x59e58deb,0x65279e4d,0x59e56d47,0x59e57588,0x7dea75a9,0x962c960c,0x54a559e5,0x59e56506, +0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xbcccbccc,0xb48bbccc,0xbccc72e7,0x9c29bccc,0x9cf3ce59,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x8a2679e5,0xd69a69a4,0x79e59a66,0x71a479e5,0x79e579e5,0xd69a79e5,0x92268205,0x8a2679e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x000052aa,0x52aa0000,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x4e644e64,0x00000000,0x00000000,0x03204e64,0x00000320,0x00000000, +0x8c7194b2,0x94b2a514,0x84109cd3,0x84108c51,0xad557bef,0x9492a534,0x8c718410,0x8c518430,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x93697aa7,0x7aa759e5,0x93697aa7,0x59e58430,0xbc2b7aa7,0x7aa79369,0x93697aa7,0x59e559e5,0x6d6875a9,0x858a8dcb,0x59e5858a,0x65076d47,0x960c5ce6,0x758995ec,0x6d686506,0x6d486527, +0xbcccbccc,0x72e7b48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xb48b9c29,0xb48b9c29,0x9c29bccc,0xad55ce59,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0x79e579e5,0xe71c8205,0x79e5b2c8,0x618469a4,0x71c579e5,0xd69a8205,0x79e59a66,0x79e579e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4e640000,0x00000000,0x00000000, +0x94b294b2,0x84309492,0x8c718430,0x8c717bef,0x94b29cf3,0x84308c51,0x84108c51,0x8c71738e,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x9369bc2b,0x7aa79369,0xbc2b7aa7,0x93699369,0x7aa77aa7,0x7aa759e5,0xbc2b7aa7,0xbc2b7aa7,0x75a975a9,0x65277589,0x6d686527,0x6d685ce6,0x75a97dea,0x65276d48,0x65066d47,0x6d685484, +0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bbccc,0xbccc9c29,0xbcccbccc,0xbcccbccc,0x9c29bccc,0xc638ce59,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0xad55c638,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410,0x92469a66,0xce799a66,0x9a679a66,0xa2879226,0xaaa79a66,0xd69a8a26,0xaa879a66,0x9a669a66, +0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0 }; diff --git a/data/images/terrain_565_2.h b/data/images/terrain_565_2.h new file mode 100755 index 0000000..fc474ad --- /dev/null +++ b/data/images/terrain_565_2.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.20 + * PVRTC Library v 1.106. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_565_2[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00010013, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f800, /* dwRBitMask */ +0x000007e0, /* dwGBitMask */ +0x0000001f, /* dwBBitMask */ +0x00000000, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef9cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x9cd39cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x39e739e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x9cd339e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd37bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x39e739e7,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3, +0x9cd37bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7, +0x39e77bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0x39e739e7,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef39e7,0x7bef39e7,0x7bef9cd3,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38c92,0xa534ad96,0x94f38cb2,0xb5b6adb6,0x94f39d14,0xad96a555,0x94d38cb2,0xadb6ad96,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5b6b5b6,0x9d149d34,0xa534adb6,0xa575a555,0xad96bdf7,0x94f394f3,0xa575a534,0x8cb294f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa555a575,0xbdf7b5b6,0xa575ad96,0x9d14a534,0x9d148451,0xadb6a575,0x9d149d14,0xb5d7adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0x84718451,0xb5b6ad96,0x84518cb2,0xad759d34,0xa575a534,0xbdf7bdf7,0x8492a555,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38cb2,0xa555a555,0x94f394f3,0xa575ad75,0x94d38cb2,0xa55594f3,0x84718471,0xa5559514,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0xa575a575,0xadb6b5f7,0xa555a575,0xad96adb6,0xa5349d14,0x9d34a555,0x9d348cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d1494f3,0xad969514,0x84718451,0xa5559d14,0xa55594d3,0xbdf7bdf7,0xa5759d14,0xb5d7bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa575a575,0x94f38c92,0xa555ad96,0x94f394d3,0x9d1494f3,0x849294f3,0x9d149d34,0x8cb28cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0xbdf7b5d7,0xa555a575,0xad96adb6,0x94f38cb2,0xadb6a575,0xa555a555,0xad96adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5f7b5d7,0xa575ad96,0x9d349d34,0xa5349d14,0xb5f7ad96,0x9d14a555,0xbdf7bdf7,0xa534a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x84718c92,0xadb694d3,0x845194d3,0x94f394d3,0x845194d3,0x9d1494f3,0x94f38492,0x95148cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d14a555,0x9d3494d3,0xa575ad75,0x84518471,0xa53494f3,0x8cb294f3,0xad75ad75,0x84718cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f39d34,0xadb6a575,0x94f39d14,0xadb69d34,0x9d1494d3,0xadb6adb6,0x94f39d34,0xad96bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0x9d149d14,0xadb6b5b6,0x9d14a534,0xadb6a575,0xa575a575,0xb5d7b5b6,0xa555a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa5559d34,0xbdf7b5d7,0xa575ad96,0x9d149d14,0x8c928cb2,0x9d1494f3,0x8c927c51,0x9d1494f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x94f394d3,0x8cb28cb2,0xad759d34,0x94f394d3,0xa575a555,0x8cb28471,0xa534a534,0x8c928cb2,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xdeb4e6d5,0xc5cedeb3,0xe6d5de94,0xc5cede93,0xde94deb4,0xc5cede73,0xdeb4de93,0xe6f5deb4,0x23512330,0x2bb22bf4,0x23912350,0x2c142bf4,0x23712392,0x2bf42bd3,0x23512350,0x2bf42bf4,0xebc5eb84,0xec06ec48,0xebc6eba5,0xec48ec48,0xebc6ebe6,0xec48ec07,0xebc5eba5,0xec48ec28,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6d4e6d4,0xef16d673,0xdeb4c5ce,0xc5ced673,0xc5cece31,0xdeb4ce31,0xeef6c5ce,0xdeb4de93,0x2c142c14,0x239223b2,0x2bb22bf4,0x2bd32bd3,0x2bf42c35,0x23712371,0x2bd32bb2,0x23502391,0xec48ec48,0xebe6ec06,0xec06ec48,0xec28ec07,0xec28ec69,0xebc5ebc5,0xec27ec06,0xeba5ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6b4e6d4,0xc5ceef16,0xde94c5ce,0xc5cede93,0xce31d672,0xde94de93,0xc5cee6d4,0xde94eef6,0x2bd32bd3,0x2c352c14,0x2bd32bf4,0x23922bb2,0x2392230f,0x2bf42bd3,0x23922392,0x2c352bf4,0xec07ec27,0xec69ec48,0xec27ec48,0xebe6ec06,0xebe6e342,0xec48ec27,0xebe6ebe6,0xec69ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xce31deb4,0xe6d5c5ce,0xce31ce31,0xd672c5ce,0xc5ced652,0xdeb3ef16,0xded4d672,0xce31c5ce,0x23712391,0x2330230f,0x2c142bf4,0x230f2330,0x2bd323b2,0x2bd32bb2,0x2c352c35,0x23302bd3,0xebc6ebc6,0xe363e342,0xec48ec48,0xe342eba4,0xec28ec06,0xec27ec06,0xec69ec69,0xeb63ec07,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef16c5ce,0xe6d4ef16,0xe6d4de93,0xc5cee6d4,0xef16d673,0xef16c5ce,0xc5cede94,0xdeb4deb4,0x23512350,0x2bb32bb3,0x23912371,0x2bd32bd3,0x23512350,0x2bd32371,0x230f230f,0x2bd32391,0xebc5eba4,0xec07ec07,0xebc6ebc6,0xec27ec28,0xebc5eba5,0xec07ebc5,0xe363e363,0xec07ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5ced652,0xd673d672,0xe6d4deb4,0xde94c5ce,0xd673deb4,0xef16c5ce,0xce31deb4,0xdeb3e6d4,0x2c142bf4,0x2bd32bd3,0x2bf42c35,0x2bd32bd3,0x2bf42c14,0x2bb22392,0x23b22bd3,0x23b22350,0xec48ec48,0xec27ec27,0xec48ec69,0xec07ec27,0xec28ec48,0xec06ebe6,0xec06ec07,0xec06eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xdeb3d673,0xd652ce31,0xdeb4de94,0xd652c5cf,0xd672e6d4,0xc5cece32,0xce31c5ee,0xd673e6d4,0x23922371,0x2bf42391,0x2330230f,0x2bb32392,0x2bd32351,0x2c352c35,0x2bd32392,0x2c352c35,0xebe6ebc5,0xec28ebc6,0xe363e342,0xec07ebe6,0xec07ebc5,0xec69ec69,0xec27ebe6,0xec69ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x536e536e,0x00000000,0x536e0000,0x0000536e,0x00000000,0x536e536e,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xd652d672,0xde94c5ce,0xe6d4e6d4,0xd673ce31,0xc5cede94,0xde93c5ce,0xc5ceef36,0xd672de94,0x2bd32bd3,0x23712330,0x2bd32bf4,0x23912351,0x23922371,0x23302371,0x239223b2,0x23302350,0xec27ec27,0xebc5eba4,0xec07ec48,0xebc6ebc5,0xebe6ebc5,0xeb63ebc5,0xebe6ec06,0xeba4eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xbe59d6fb,0x0000536e,0xd6fb7cb3,0x536ebe59,0x7cb30000,0xbe59d6fb,0x0000536e,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5cee6f4,0xd651eef6,0xc5cec5ce,0xd652d652,0xe6d4c5ce,0xdeb4deb4,0xe6f5deb4,0xe6f5c5ce,0x23712371,0x2c352c35,0x2bd32bd3,0x2bf42bf4,0x23712350,0x2bf42bd3,0x2bd32bd3,0x2bf42c14,0xebc6ebc6,0xec69ec69,0xec07ec27,0xec48ec48,0xebc5eba5,0xec48ec28,0xec07ec07,0xec48ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xd6fbffff,0x0000536e,0xffff7cb3,0x536ed6fb,0x7cb30000,0xd6fbffff,0x0000536e,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xdeb3c5ce,0xeef6de93,0xd651d673,0xe6d5c5ce,0xde93c5ce,0xd652e6d4,0xce31ce31,0xc5ceeef6,0x2c352c35,0x2bd32bf4,0x23b223b2,0x2bb22392,0x2c352bf4,0x23922bd3,0x2c352c35,0x2bb22bd3,0xec69ec69,0xec28ec28,0xec06ec06,0xec06ebe6,0xec69ec28,0xebe6ec07,0xec69ec69,0xec06ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x7cb37cb3,0x00000000,0x7cb30000,0x00007cb3,0x00000000,0x7cb37cb3,0x00000000,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xc5ced673,0xde94d673,0xd651de94,0xc5cec5ce,0xde94e6f4,0xc5cede93,0xde93d653,0xd653ce32,0x230f2330,0x2bf42371,0x230f2351,0x23712351,0x230f2351,0x23922371,0x23712330,0x23912350,0xe363eba4,0xec48ebc5,0xe342ebc5,0xebc6eba5,0xe342ebc5,0xebe6ebc6,0xebc5eb63,0xebc6eba5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xc5cede93,0xde94eef6,0xd651d673,0xef16ef16,0xce31c5ce,0xeef6ce31,0xe6d4e6d4,0xde94de93,0x23922bd3,0x23b22351,0x2bd32bd3,0x230f2330,0x2bb22371,0x23302371,0x2bd32bd3,0x23302350,0xebe6ec07,0xec06ebc5,0xec28ec28,0xe342e363,0xec06ebc5,0xeba4ebc5,0xec28ec28,0xe363eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xdeb3ce31,0xeef6c5ce,0xc5ceeef6,0xdeb4de93,0xd672d651,0xc5ced693,0xe6f4eef6,0xd652de93,0x237123b2,0x2bf42bd3,0x23912392,0x2bf423b2,0x23922351,0x2bf42bf4,0x237123b2,0x2bf42c35,0xebc6ec06,0xec48ec28,0xebc6ebe6,0xec48ec06,0xebe6ebc5,0xec48ec48,0xebc6ec06,0xec48ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xe6b4ce31,0xc5cede93,0xd653c5ce,0xd652ce32,0xd652c5ce,0xe6f4ce32,0xef35c5ce,0xc5cee6d4,0x2bf42bf4,0x23922392,0x2bf42c14,0x23922bb2,0x2bf42bd3,0x2bd32bd3,0x2c352c14,0x2bd32bd3,0xec48ec28,0xebe6ebe6,0xec48ec48,0xebe6ec06,0xec48ec27,0xec27ec27,0xec69ec48,0xec07ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xc5cee6f5,0xe6b4de94,0xd653c5ce,0xc5ced673,0xdeb4deb3,0xd673d653,0xc5ced673,0xe716c5ce,0x2bd323b2,0x2c352c35,0x2bd32bf4,0x23922392,0x23302350,0x23922371,0x23301aef,0x23922371,0xec07ec06,0xec69ec69,0xec27ec28,0xebe6ebe6,0xeb84eba5,0xebe6ebc5,0xeba4e342,0xebe6ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xde94ef15,0xc5cece31,0xde94e6d5,0xc5ceef16,0xe6d4d673,0xdeb4deb4,0xdeb4c5ce,0xdeb4deb4,0x23712351,0x23502350,0x2bd323b2,0x23712351,0x2bd32bd3,0x23502330,0x2bb22bb2,0x23302350,0xebc6eba5,0xeba5eba4,0xec28ec06,0xebc5ebc5,0xec27ec07,0xeba4e363,0xec06ec06,0xeb84eba4,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xef16e717,0xdeb4ce31,0xc610c610,0xe6d5c5cf,0xde93e6d4,0xce30c5ce,0xef36eef6,0xef37c5ee,0x71767155,0x81998a19,0x79977176,0x923a8a19,0x79777998,0x8a1981b9,0x71767176,0x8a1989f9,0xb9d8b1b7,0xc279c2f9,0xba19b9d8,0xcb3ac2fa,0xb9f8ba39,0xc2f9c299,0xb9d8b9d8,0xc2fac2d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc610ce32,0xce31e6d5,0xe716de94,0xbdaeded6,0xce0fe6f6,0xe6d5ded5,0xbd8dc610,0xbdaddeb4,0x8a3a8a3a,0x79988198,0x81998a19,0x89d981b9,0x89f9927a,0x79777977,0x81d98199,0x71767997,0xc31acb1a,0xba19c259,0xc279c2fa,0xc2b9c299,0xc2d9cb5a,0xb9f8b9f8,0xc2b9c279,0xb9d8ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6f7e6f6,0xc5efd673,0xde94d674,0xdeb5de93,0xd694c5ce,0xd673d673,0xe6f6c5ce,0xde94ded5,0x81b981d9,0x927a923a,0x81d98a19,0x79988199,0x79986954,0x8a1981d9,0x79987998,0x925a8a19,0xc299c2b9,0xcb5acb3a,0xc2b9c2f9,0xba19c279,0xba39a196,0xc2fac2b9,0xba39ba39,0xcb5ac2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xe6f7ef16,0xce31e6d5,0xef37ef16,0xef16ef16,0xef38c5ce,0xde95eef6,0xe6f6ce31,0xe6d6e717,0x79777997,0x69556954,0x8a3a8a19,0x69547176,0x89d98198,0x81d98199,0x927a927a,0x715581b9,0xb9f8ba19,0xa9b6a196,0xcb1ac2f9,0xa196b1b7,0xc2b9ba59,0xc2b9c279,0xcb5acb5a,0xa9b7c299,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef37c5ce,0xe6d5ef37,0xbdadce10,0xc5eec5ee,0xc5cede93,0xef17c5ce,0xe6d4c5ee,0xef37ef37,0x71767176,0x81998199,0x79977977,0x81d989d9,0x71767176,0x81b97977,0x69546954,0x81b97997,0xb9d8b1d8,0xc279c279,0xba19b9f8,0xc2b9c2b9,0xb9d8b9d8,0xc299b9f8,0xa9b6a9b6,0xc299ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5efde93,0xc5efc5ef,0xce30d673,0xde93de93,0xde93e6f6,0xce10deb4,0xc5eeded5,0xc5aec5ee,0x8a198a19,0x81d981d9,0x8a19927a,0x81b981d9,0x89f98a19,0x81997998,0x819881b9,0x81987176,0xc2fac2f9,0xc2b9c2b9,0xc2facb5a,0xc299c2b9,0xc2d9c2fa,0xc279ba19,0xba59c299,0xc259b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xe6d5d673,0xe6d5e6d5,0xc5eede93,0xdeb5eef6,0xdeb5e6d5,0xc5cdd673,0xded5e6f6,0xded5c5cf,0x79987977,0x89f97997,0x69556954,0x81997998,0x81b97176,0x927a927a,0x81d97998,0x925a927a,0xba19b9f8,0xc2d9ba19,0xa9b6a196,0xc279ba19,0xc299b9d8,0xcb5acb5a,0xc2b9ba39,0xcb3acb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xde94ef37,0xde94e6d5,0xc5efdeb4,0xef17ef16,0xde93de95,0xd651e6d5,0xef16f757,0xef37c5ef,0x81d981d9,0x79777175,0x81b98a19,0x79977176,0x79987977,0x71557977,0x79988198,0x71767176,0xc2b9c2b9,0xb9f8b1b7,0xc299c2f9,0xba19b9d8,0xba19b9f8,0xa9b7b9f8,0xba19ba59,0xb1b7b1b8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xf758c5ce,0xeef6ef16,0xef37f758,0xc610ce31,0xef16ef16,0xc610f757,0xce10ce32,0xef37c5cf,0x79777977,0x927a925a,0x81b981d9,0x8a198a19,0x79777176,0x8a1989d9,0x81b981b9,0x8a198a19,0xb9f8b9f8,0xcb5acb5a,0xc299c2b9,0xc2f9c2fa,0xb9f8b9d8,0xc2fac2b9,0xc299c299,0xc2f9c2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xce51de94,0xce31ce51,0xce31ce2f,0xe6f6ded6,0xc5eebdae,0xe6d5c610,0xd693ded5,0xc5cfdeb5,0x927a925a,0x89d989f9,0x81988198,0x81997998,0x927a89f9,0x799881b9,0x927a927a,0x819981d9,0xcb5acb5a,0xc2b9c2d9,0xba59ba59,0xc279ba39,0xcb5ac2d9,0xba19c299,0xcb5acb5a,0xc279c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xd673d694,0xdeb3d673,0xe6d5ce2f,0xef16deb4,0xc5eedeb4,0xde93e6d5,0xdeb4de93,0xc5cfdeb5,0x69547175,0x8a197977,0x69547176,0x79777176,0x69547176,0x79987977,0x79777155,0x79977176,0xa9b6b1b7,0xc2fab9d8,0xa196b9d8,0xb9f8b9d8,0xa196b9d8,0xba19b9f8,0xb9f8a9b7,0xba19b9d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xde94ce30,0xd673de93,0xded4ce2f,0xe6d4e6f5,0xc5cede73,0xd673e6d5,0xe6f6deb4,0xdeb4d673,0x799881b9,0x81987176,0x89d989d9,0x69546955,0x81997977,0x71767977,0x89d989d9,0x69557176,0xba39c299,0xc259b9d8,0xc2b9c2b9,0xa196a9b6,0xc279b9f8,0xb1b7b9f8,0xc2b9c2b9,0xa9b6b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xf778ce11,0xef36e6f6,0xf758ce2f,0xf757f757,0xe6f6ef17,0xf757bdad,0xe6f6e6f6,0xf757f757,0x79778198,0x8a1989d9,0x79977998,0x8a198198,0x79987176,0x8a198a19,0x79778198,0x8a19927a,0xb9f8c259,0xc2fac2b9,0xba19ba19,0xc2faba59,0xba19b9d8,0xc2fac2fa,0xb9f8c259,0xc2f9cb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xd673c610,0xc5f0d651,0xc610ce10,0xc5f0ce31,0xc60fc610,0xc5cec5cf,0xce52ce30,0xc5cfc5f1,0x8a1989f9,0x79987998,0x8a198a3a,0x79988199,0x8a1981d9,0x81d981d9,0x925a923a,0x81b981d9,0xc2fac2d9,0xba39ba19,0xc2facb1a,0xba19c279,0xc2fac2b9,0xc2b9c2b9,0xcb5acb3a,0xc299c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xd674e6d5,0xde94de94,0xd674de94,0xce32d653,0xd673d673,0xde94de93,0xe6f6d673,0xe6f5e6f6,0x81b98198,0x927a925a,0x81d989f9,0x79987998,0x71557176,0x79987977,0x71756954,0x79987977,0xc299c259,0xcb5acb3a,0xc2b9c2d9,0xba19ba19,0xb1b7b9d8,0xba19b9f8,0xb1b7a195,0xba39b9f8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xef16eef6,0xe6f6ef16,0xe6d5e6b5,0xef16f757,0xf757ef16,0xef16ef16,0xf757ef16,0xef16f757,0x79777176,0x71767176,0x89d98198,0x79777176,0x81d981b9,0x71766955,0x81998199,0x71557176,0xb9f8b9d8,0xb9d8b1b8,0xc2b9ba59,0xb9f8b9d8,0xc2b9c299,0xb1d8a9b6,0xc279c279,0xb1b7b1d8,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xe6d4ef15,0xdeb3deb4,0xe6b4de73,0xd673de94,0xdeb4d673,0xe6f5d693,0xded4de93,0xdeb4deb4,0x21712170,0x21b329d4,0x21922171,0x29d529d4,0x21922192,0x29d429b3,0x21712171,0x29d429b4,0x53f94b99,0x6c7a7cdb,0x5c1a53d9,0x851b7cdb,0x5c1a643a,0x7cdb6c9a,0x53f953d9,0x7cdb7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d4,0xe6d4de93,0xded4de94,0xce52d673,0xde93d653,0xdeb4d693,0xe6f5deb4,0xdeb4deb4,0x29d529d5,0x21922193,0x21b329d4,0x29b429b3,0x29b429d6,0x21922192,0x29b421b3,0x21712192,0x84fb851b,0x643a6c7a,0x6c7a7cdb,0x74bb6c9a,0x7cdb8d5b,0x5c1a5c1a,0x749a6c7a,0x53d95c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4e6d5,0xded5d673,0xd674de94,0xd693d653,0xd673d673,0xd673deb3,0xdeb4de94,0xe6d4deb3,0x29b329b4,0x29d629d5,0x29b429d4,0x219221b3,0x2192214f,0x29d429b4,0x21922192,0x29d529d4,0x6c9a749a,0x8d5b851b,0x749a7cdb,0x643a6c7a,0x645a3b59,0x7cdb749a,0x645a643a,0x8d3b7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4deb4,0xdeb4de94,0xded4de94,0xd672deb3,0xd672ce31,0xce32d652,0xde93d652,0xde93e6d4,0x21922192,0x2150214f,0x29d529d4,0x214f2171,0x29b42193,0x29b421b3,0x29d629d6,0x217029b3,0x5c1a5c1a,0x43793b59,0x851b7cdb,0x3b584bb9,0x74bb645a,0x749a6c7a,0x8d5b8d5b,0x43996c9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4de93,0xdeb4deb4,0xde73d673,0xce32e6b4,0xd673d673,0xd673d652,0xde94deb4,0xdeb3d673,0x21712171,0x29b329b3,0x21922192,0x29b429b4,0x21712171,0x29b32192,0x21502150,0x29b32192,0x53f953d9,0x6c7a6c7a,0x5c1a5c1a,0x749a74bb,0x53f953d9,0x6c9a5c1a,0x43794379,0x6c9a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb3ce32,0xde93d693,0xe6d5d673,0xde93deb4,0xded3de93,0xce31deb3,0xef16e6d4,0xd652e6f5,0x29d529d4,0x29b429b4,0x29d429d6,0x29b329b4,0x29b429d5,0x21b32192,0x219329b3,0x21932171,0x7cfb7cdb,0x749a749a,0x7cdb8d3b,0x6c9a749a,0x7cdb7cfb,0x6c7a643a,0x645a6c9a,0x6c7a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672d652,0xd673d652,0xe6d4deb4,0xce32de93,0xd673e6d4,0xdeb4d672,0xdeb4e6f5,0xde93deb4,0x21922192,0x29b42192,0x2150214f,0x29b32192,0x29b32171,0x29d629d6,0x29b42192,0x29d529d6,0x643a5c1a,0x7cdb5c1a,0x43793b59,0x6c7a643a,0x6c9a53f9,0x8d5b8d5b,0x749a645a,0x8d3b8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xde94deb4,0xe6b4de93,0xde94deb4,0xde93de94,0xe6d4deb3,0xe6f5e6f5,0xd693e6d4,0x29b429b4,0x21922170,0x29b329d4,0x21922171,0x21922192,0x21702192,0x21922193,0x21712171,0x749a749a,0x5c1a4bb9,0x6c9a7cdb,0x5c1a53f9,0x643a5c1a,0x43995c1a,0x643a645a,0x4bb94bb9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xce52deb4,0xd673de93,0xd652d652,0xdeb4deb4,0xde94e6f4,0xdeb4de93,0xde94deb4,0x21922192,0x29d629d5,0x29b329b4,0x29d429d4,0x21922171,0x29d429b4,0x29b329b3,0x29d429d5,0x5c1a5c1a,0x8d5b8d3b,0x6c9a749a,0x7cdb7cdb,0x5c1a53d9,0x7cdb74bb,0x6c9a6c9a,0x7cdb7cfb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4d673,0xd673deb4,0xd652deb3,0xe6f6d673,0xde93de94,0xde93e6d4,0xdeb4d673,0xde94de94,0x29d629d5,0x29b429b4,0x21932193,0x21b32192,0x29d629b4,0x219229b3,0x29d629d6,0x21b329b4,0x8d3b8d3b,0x74bb7cdb,0x645a645a,0x6c7a643a,0x8d3b7cdb,0x643a6c9a,0x8d5b8d5b,0x6c7a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93d652,0xce32de93,0xd673ce32,0xef36e6d5,0xd653deb4,0xd673de73,0xde93de93,0xde93de94,0x21502170,0x29d42191,0x214f2171,0x21922171,0x214f2171,0x21922192,0x21922170,0x21922171,0x43794bb9,0x7cdb53f9,0x3b5853f9,0x5c1a53d9,0x3b5853f9,0x643a5c1a,0x5c1a4399,0x5c1a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xd652deb3,0xde93d693,0xe6d4deb4,0xdeb3d652,0xd693de93,0xdeb4e6f4,0xd673deb4,0x219229b3,0x21932171,0x29b429b4,0x214f2150,0x21b32192,0x21712192,0x29b429b4,0x21502171,0x643a6c9a,0x6c7a53f9,0x74bb74bb,0x3b584379,0x6c7a5c1a,0x4bb95c1a,0x74bb74bb,0x437953d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93e6d4,0xde93deb3,0xde73d673,0xe6b4de93,0xde93d672,0xdeb3d652,0xdeb4e6f4,0xd652deb4,0x21922193,0x29d429b4,0x21922192,0x29d42193,0x21922171,0x29d429d4,0x21922193,0x29d429d6,0x5c1a6c7a,0x7cdb74bb,0x5c1a643a,0x7cdb645a,0x643a53f9,0x7cdb7cdb,0x5c1a6c7a,0x7cdb8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xde93deb4,0xce33ce52,0xd652ce32,0xd693d672,0xe6f4d672,0xded4e6f5,0xe6f5e6d4,0x29d429b4,0x21922192,0x29d429d5,0x219221b3,0x29d429b4,0x29b429b4,0x29d529d5,0x29b329b4,0x7cdb7cdb,0x645a643a,0x7cdb851b,0x643a6c7a,0x7cdb749a,0x749a749a,0x8d3b851b,0x6c9a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde94deb4,0xde94e6b4,0xce33d673,0xce32ce32,0xde93deb3,0xe6d4d673,0xe715deb3,0xef15e715,0x29b32193,0x29d629d5,0x29b429b4,0x21922192,0x21702171,0x21922192,0x2170194f,0x21922192,0x6c9a6c7a,0x8d5b8d3b,0x749a7cdb,0x643a643a,0x4b9953d9,0x643a5c1a,0x4bb93b38,0x643a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d5,0xde93d673,0xde94e6d4,0xd652d673,0xdeb4deb4,0xdeb4d673,0xd693e6d4,0xef15e6f4,0x21922171,0x21712171,0x29b42193,0x21922171,0x29b429b3,0x21712150,0x21b321b3,0x21702171,0x5c1a53d9,0x53d94bb9,0x74bb645a,0x5c1a53f9,0x749a6c9a,0x53d94379,0x6c7a6c7a,0x4b9953d9,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x49634963,0x51a359c3,0x51834963,0x61c359c3,0x51835183,0x59c359a3,0x49634963,0x59c359a3,0xb523a4c2,0xc5a3d624,0xbd63ad02,0xde64d644,0xb543bd83,0xd624cdc3,0xb523ad02,0xd644d623,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae7bef,0x22712271,0x73ae2271,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x59c361c3,0x51835183,0x51a359c3,0x59a359a3,0x59a361c4,0x51835183,0x59a351a3,0x49635183,0xde64de64,0xbd63c5a3,0xc5a3d644,0xce03cdc3,0xd623de65,0xb543b543,0xcde3c5a3,0xad02bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x8c7173ae,0x11751175,0x73ae1a54,0x11b21156,0x73ae2231,0x7bef7bef,0x8c718c71,0x59a359a3,0x61c461c3,0x59a359c3,0x518351a3,0x51834142,0x59c359a3,0x51835183,0x61c359c3,0xcdc3cde3,0xde65de64,0xcde3d624,0xbd63c5a3,0xc5839c82,0xd644cde3,0xc583bd83,0xde65d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000dedb,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x117473ae,0x73ae73ae,0x1a151176,0x73ae1a54,0x227173ae,0x7bef2211,0x51835183,0x49634142,0x61c359c3,0x41424963,0x59a35183,0x59a351a3,0x61c461c4,0x496359a3,0xb543bd63,0xa4a29c82,0xde64d624,0x9c62a4e2,0xce03c5a3,0xcde3c5a3,0xde65de65,0xa4c2cdc3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef6b4d,0x11331a53,0x7bef1152,0x7bef7bef,0x8c718c71,0x7bef7bef,0x22527bef,0x6b4d32f1,0x49634963,0x59a359a3,0x51835183,0x59a359a3,0x49634963,0x59a35183,0x49424942,0x59a35183,0xb523ad02,0xcdc3cdc3,0xbd63b543,0xcde3ce03,0xb523ad02,0xcdc3b543,0x9c829c82,0xcdc3bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae8c71,0x8c7119d5,0x73ae8c71,0x1a3419f6,0x8c712252,0x1a348c71,0x7bef3310,0x59c359c3,0x59a359a3,0x59c361c4,0x59a359a3,0x59a359c3,0x51a35183,0x518359a3,0x51834963,0xd644d624,0xcde3cde3,0xd644de65,0xcdc3cde3,0xd623d644,0xc5a3bd63,0xc5a3cdc3,0xc5a3ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x1a3673ae,0x1a341a35,0x2a711a15,0x1a1473ae,0x7bef2ab1,0x51835183,0x59a35183,0x49634142,0x59a35183,0x59a34963,0x61c461c4,0x59a35183,0x61c361c4,0xbd63b543,0xd623bd63,0xa4a29c82,0xcdc3bd63,0xcdc3b523,0xde65de65,0xcde3c583,0xde64de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xffff0000,0xffffdedb,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdedb,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22537bef,0x6b4d19f7,0x73ae8c71,0x12387bef,0x1a957bef,0x1a542a71,0x8c718c71,0x8c718c71,0x59a359a3,0x51834963,0x59a359c3,0x51834963,0x51835183,0x49635183,0x51835183,0x49634963,0xcde3cde3,0xb543a4e2,0xcdc3d624,0xbd63b523,0xbd63b543,0xa4c2b543,0xbd63c5a3,0xa4e2ace2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xef5d0000,0xffffef5d,0xef5ddedb,0xef5dffff,0x0000ffff,0x0000dedb,0xffff0000,0x00000000,0xef5d0000,0x0000ef5d,0xef5d0000,0xffff0000,0x0000dedb,0x0000dedb,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a157bef,0x73ae1256,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x51835183,0x61c461c3,0x59a359a3,0x59c359c3,0x51834963,0x59c359a3,0x59a359a3,0x59c359c3,0xb543b543,0xde65de65,0xcdc3cde3,0xd624d644,0xb543ad02,0xd644ce03,0xcdc3cdc3,0xd624d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x0000ef5d,0xdedbffff,0x00000000,0xef5def5d,0xef5d0000,0xffffef5d,0xffffffff,0x0000ffff,0x0000ef5d,0xdedbffff,0x00000000,0xdedbef5d,0x0000ffff,0x0000ef5d,0x0000ffff,0x0000ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c718c71,0x19f87bef,0x1ab81a36,0x1a541219,0x7bef7bef,0x22711a33,0x8c718c71,0x6b4d8c71,0x61c461c3,0x59a359a3,0x51835183,0x51a35183,0x61c459a3,0x518359a3,0x61c461c4,0x51a359a3,0xde65de65,0xce03d623,0xc5a3c5a3,0xc5a3bd83,0xde65d623,0xbd63cdc3,0xde65de65,0xc5a3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xdedbdedb,0xdedbffff,0xffffef5d,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdedbdedb,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae73ae,0x7bef7bef,0x1ab87bef,0x73ae1237,0x6b4d7bef,0x23161a33,0x73ae73ae,0x7bef6b4d,0x49424963,0x59c34963,0x41424963,0x51834963,0x41424963,0x51835183,0x51834963,0x51834963,0x9c82a4e2,0xd644b523,0x9c62b523,0xb543b522,0x9c62b523,0xbd63b543,0xb543a4c2,0xbd63ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdedbffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x518359a3,0x51834963,0x59a359a3,0x41424963,0x51a35183,0x49635183,0x59a359a3,0x49634963,0xbd83cdc3,0xc5a3b523,0xce03ce03,0x9c62a4a2,0xc5a3b543,0xa4e2b543,0xce03ce03,0xa4a2ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0xdedb0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x7bef7bef,0x12387bef,0x1a917bef,0x7bef1237,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x51835183,0x59c359a3,0x51835183,0x59c35183,0x51834963,0x59c359c3,0x51835183,0x59c361c4,0xb543c5a3,0xd644ce03,0xbd63bd63,0xd644c5a3,0xbd63b523,0xd644d644,0xb543c5a3,0xd624de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b4d7bef,0x2b731ab8,0x1a541ad8,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x1a540937,0x7bef7bef,0x59c359a3,0x51835183,0x59c361c3,0x518351a3,0x59c359a3,0x59a359a3,0x61c361c3,0x59a359a3,0xd644d623,0xc583bd63,0xd644de64,0xbd63c5a3,0xd644cde3,0xcde3cde3,0xde65de64,0xcdc3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x59a35183,0x61c461c3,0x59a359a3,0x51835183,0x49634963,0x51835183,0x49634142,0x51835183,0xcdc3c5a3,0xde65de64,0xcde3d623,0xbd63bd63,0xa4c2ad02,0xbd63b543,0xa4e29c62,0xbd83b543,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x51834963,0x49634963,0x59a35183,0x51834963,0x59a359a3,0x49634963,0x51a351a3,0x49634963,0xb543b522,0xad02ace2,0xce03c5a3,0xb543b523,0xcde3cdc3,0xad02a4a2,0xc5a3c5a3,0xa4c2ad02,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ef5d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x1a5332ef,0x1ab81a53,0x1a54121a,0x22711a54,0x1a542271,0x2a712211,0x2a712a71,0x12361236,0x32223202,0x3a633a83,0x32423222,0x3aa33aa3,0x32423243,0x3a833a83,0x32223222,0x3aa33a83,0x35653525,0x3e054666,0x3da53565,0x46674666,0x35853dc5,0x46663e06,0x35653565,0x46663e66,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x220e1a72,0x1ab81ab8,0x22712271,0x22712271,0x1a540957,0x099711b2,0x22112a71,0x12362a50,0x3aa33aa3,0x32433263,0x3a633aa3,0x3a833a83,0x3a8342c3,0x32423242,0x3a833a63,0x32223242,0x46674667,0x3dc53de5,0x3e054666,0x3e463e06,0x3e664e88,0x35853585,0x3e263e05,0x35653da5,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ad0,0x22712232,0x11751175,0x09971a54,0x11b21156,0x1a322231,0x2a502a71,0x2ab12250,0x3a833a83,0x42c33aa3,0x3a833a83,0x32423a63,0x324329e2,0x3aa33a83,0x32433243,0x3ac33aa3,0x3e063e26,0x4e884667,0x3e264666,0x3dc53e05,0x3dc534e4,0x46663e26,0x3dc53dc5,0x4e674666,0xb5968430,0xb596a514,0xa5149cf3,0xd00094b2,0xb596b000,0xce79ad14,0xad55ce79,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x2a9232f1,0x19922a71,0x11741173,0x09371196,0x1a151176,0x1a531a54,0x22712a71,0x2ab12211,0x32423242,0x320229e2,0x3aa33a83,0x29e23222,0x3a833263,0x3a833a63,0x42c342c3,0x32023a83,0x35853da5,0x350534e4,0x46674666,0x2cc43545,0x3e463de5,0x3e263e05,0x4e884e88,0x35053e06,0xa5148430,0x84109492,0xa5149cf3,0xf8009492,0xb596b000,0xad149cf3,0xc638a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ab1,0x11331a53,0x1a111152,0x093719b4,0x1a5411d5,0x2a712233,0x22522251,0x2ab132f1,0x32223222,0x3a633a63,0x32423242,0x3a833a83,0x32223222,0x3a833242,0x2a022a02,0x3a833242,0x35653545,0x3e063e06,0x3da53585,0x3e263e46,0x35653565,0x3e063585,0x35043504,0x3e063da5,0xad557bcf,0x84109492,0x9cf3a514,0xf8009492,0xb596d800,0x9cf3a514,0xce79a514,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b73310,0x117619b3,0x2ab219d5,0x09372274,0x1a3419f6,0x2a712252,0x1a342a71,0x32f13310,0x3aa33a83,0x3a833a83,0x3aa342c3,0x3a833a83,0x3a833aa3,0x3a633242,0x32633a83,0x32633222,0x46664666,0x3e263e26,0x46664e68,0x3e063e26,0x3e664666,0x3e053dc5,0x3de53e06,0x3de53545,0xad558430,0x9492b596,0x9cf38410,0xd0009492,0xb596b000,0xa514a514,0xad55ce79,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b719b7,0x19f819f5,0x23151a37,0x1a362274,0x1a341a35,0x2a711a15,0x1a142a71,0x19b72ab1,0x32433242,0x3a833242,0x320229e2,0x3a633243,0x3a833222,0x42c342c3,0x3a833243,0x3ac342c3,0x3dc53585,0x3e663da5,0x350534e4,0x3e063dc5,0x3e063565,0x4e884e88,0x3e263dc5,0x4e674e88,0xa5148430,0x9492a514,0xa5148410,0xd0009492,0xb596d000,0x9cf3a514,0xa514ce79,0x8430b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x225319b7,0x129819f7,0x19f51a58,0x12380937,0x1a952274,0x1a542a71,0x2ab11a33,0x19b719b7,0x3a833a83,0x32423222,0x3a833a83,0x32423222,0x32423242,0x32023242,0x32433263,0x32223222,0x3e263e26,0x35853525,0x3e064666,0x3da53565,0x3dc53585,0x35053585,0x3dc53de5,0x35453545,0xb5968430,0x9cf3b596,0x84109492,0xf8009492,0xb596a800,0xce799cf3,0xb596b596,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9b66ac49,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac690000,0x6a239367,0x9367ac69,0x00006a23,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac680000,0x6a039367, +0x9386ac68,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac880000,0x6a049367,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a1519b7,0x1a771256,0x09371a57,0x12161a54,0x1a731a74,0x1a341237,0x2ab11a34,0x19b71152,0x32423242,0x42c33ac3,0x3a833a83,0x3a833aa3,0x32423222,0x3aa33a83,0x3a833a83,0x3a833aa3,0x35853585,0x4e884e67,0x3e063e26,0x46664666,0x35853565,0x46663e46,0x3e063e06,0x46664666,0xad558430,0xa514ad55,0x84109492,0xf8009492,0xb596d000,0xc638a514,0xa514a514,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b67acca,0x000059e2,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a239367,0x8b46b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a049367, +0x8b67b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a048b67,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b71a57,0x19f811f9,0x1ab81a36,0x1a541219,0x2a711a92,0x22711a33,0x2ab11a53,0x19b71a53,0x42c33ac3,0x3a833a83,0x32633263,0x3a633243,0x42c33a83,0x32433a83,0x42c342c3,0x3a633a83,0x4e684e67,0x3e463e46,0x3de53de5,0x3e053dc5,0x4e683e66,0x3dc53e06,0x4e884e88,0x3e053e26,0xb5969492,0xad55ad55,0x9492ad55,0xf8009492,0xb596f800,0xad55ce79,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b06ac68,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x51e39367,0x8b45ac69,0x000059e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x59e39367, +0x8b46ac89,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac480000,0x51e39366,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12371a57,0x1a571236,0x1ab81a97,0x1a541237,0x2a711237,0x23161a33,0x09971a53,0x12161a53,0x2a023222,0x3aa33222,0x29e23222,0x32423222,0x29e23222,0x32423242,0x32423202,0x32423222,0x35043525,0x46663585,0x2cc43565,0x35853565,0x2cc43565,0x3dc53585,0x35853505,0x3da53565,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b26b4aa,0x6a246204,0x6a046a04,0x6a046a03,0x51e451c2,0x6a246a03,0x93a859e3,0x5a038b67,0x8b46acaa,0x6a0369e4,0x6a036a03,0x6a246a03,0x51e351e3,0x6a236a23,0x69e451c3,0x6a036a03,0x59e36224,0x6a036a03,0x6a2351c3,0x6a236a24,0x6a036a03,0x6a236a04,0x93a86203,0x51c38b67, +0x8b26b4c9,0x6a046a03,0x62046223,0x6a036a03,0x59e351e3,0x6a036a03,0x9bc859c3,0x59c38b66,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a5719f8,0x1a981236,0x12191ab8,0x1a701a16,0x1a331237,0x2a711a74,0x09972a71,0x12161a53,0x32433a83,0x32633222,0x3a833a83,0x29e23202,0x3a633242,0x32223242,0x3a833a83,0x32023222,0x3dc53e06,0x3de53565,0x3e463e46,0x2cc43505,0x3e053585,0x35453585,0x3e463e46,0x35053545,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9366a489,0x93678b46,0x93679367,0x8b468b45,0x93469366,0x8b468346,0x93669366,0x52039387,0x9367ac69,0x93878346,0x93678b47,0x8b468b26,0x93679366,0x83268b46,0x93869347,0x8b469367,0x8b458b46,0x93669367,0x93678b87,0x8b469346,0x93468b46,0x93678b26,0x93668b66,0x59c38b66, +0x9347aca9,0x93678326,0x93669367,0x8b268b46,0x936793a7,0x8b468326,0x93669366,0x59e39387,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12361236,0x1ab81a76,0x12381a98,0x1a911a35,0x2a711237,0x09971a73,0x1a530997,0x12161a54,0x32423263,0x3aa33a83,0x32423242,0x3aa33263,0x32433222,0x3aa33aa3,0x32423263,0x3a8342c3,0x35853de5,0x46663e46,0x3da53dc5,0x46663de5,0x3dc53565,0x46664666,0x35853de5,0x46664e88,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x68006800,0x68206820,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x70006800,0x70006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68206800,0x68006800,0x68006800,0xbdd7b5b6,0xce59d6b9,0xb5b6ce59,0xb5b6b5d7, +0xb5d6b596,0xce39ce59,0xb5b6ce59,0xb5b6b5b6,0xbdd7b5d7,0xce59d67a,0xbdd6ce79,0xb5b7b5d7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12981236,0x2b731ab8,0x1a541ad8,0x1a7319f3,0x1a742a71,0x09971a16,0x1a540937,0x12361236,0x3aa33a83,0x32433242,0x3aa33aa3,0x32423a63,0x3aa33a83,0x3a833a83,0x3ac33aa3,0x3a833a83,0x46663e66,0x3dc53dc5,0x46664667,0x3dc53e05,0x46663e26,0x3e263e26,0x4e674667,0x3e063e26,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88828021,0x99049904,0x99249904,0x990398e4,0x88a288a2,0x806288c2,0x80618082,0x88a288a2,0x88828041,0x99049904,0x99039104,0x98e49904,0x888288a2,0x806188a3,0x80828081,0x88a280a2,0x78828882,0xa1457000,0x88a28081,0x68008883,0xce7ab5b6,0xef5def5d,0xef3def7d,0xb5b6d679, +0xd699b5b6,0xef7eef7e,0xef7df77d,0xf75def7d,0xf77dffdf,0xf7beef9d,0xf77def9d,0xb5b6ce9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a7619f8,0x3bd41ab8,0x121a22d7,0x1a931a15,0x1a961a94,0x09970997,0x1a331a73,0x12361236,0x3a833263,0x42c33ac3,0x3a833a83,0x32423243,0x32023222,0x32423242,0x322229e2,0x32433242,0x3e063de5,0x4e884e67,0x3e263e66,0x3dc53dc5,0x35253565,0x3dc53585,0x35252cc4,0x3dc53585,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88c28041,0x88a28882,0x88a288a2,0x808188a2,0x80628082,0x80828042,0x88c28862,0x806288a2,0x88a28041,0x88a288c2,0x88a28882,0x808288a2,0x78a27882,0x78828082,0x88a290a3,0x808188a2,0x88a288a2,0xb1a67820,0x88a2a125,0x68008062,0xef7dbdb6,0xef7eef9d,0xef7def9d,0xb5b7ce99, +0xce79b5d7,0xef7def5d,0xffdfffdf,0xf7deffdf,0xffbfffbe,0xf77def7d,0xef5def9e,0xb5b6ce7a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a531ad6,0x12981a53,0x12981af8,0x22712271,0x1ab61ab4,0x2a711a54,0x22922a71,0x12362a50,0x32423222,0x32223222,0x3a833263,0x32423222,0x3a833a83,0x32223202,0x3a633a63,0x32023222,0x35853565,0x35653545,0x3e463de5,0x35853565,0x3e263e06,0x35453505,0x3e053e05,0x35253545,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x80418061,0x80408021,0x80418021,0x80828041,0x78828062,0x80618081,0x80418061,0x80627882,0x80218041,0x80217841,0x80408041,0x80828041,0x78828082,0x80828062,0x78417841,0x806280a2,0x80208061,0x80407820,0x80619965,0x68008041,0xce7ab5b6,0xce59ce99,0xbdd6b5d7,0xb596b5b7, +0xce99bd96,0xce59ce79,0xbdd6b5d7,0xbd96b596,0xce9ab5b6,0xce79ce7a,0xbdb7bdb6,0xb5d6b5b6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91448924,0xa165b185,0x99449144,0xb185b185,0x9944a165,0xb185a965,0x91449144,0xb185b185,0xd391cb0f,0xdc33e4d5,0xd3b2d371,0xe516e4d5,0xd3b2dc13,0xe4d5dc54,0xd391d371,0xe4d5dcd5,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0x4a690000,0x31860000,0x4a699cd3,0x00009cd3,0x9cd34a69,0x8c510000,0x00003186,0x00008c51,0x4a693186,0x31863186,0x4a699cd3,0x31869cd3,0x9cd34a69,0x8c513186,0x31863186,0x31868c51,0x80408061,0x80418041,0x80417840,0x80418041,0x80418041,0x80218040,0x80418020,0x80418041,0x80418021,0x80217840,0x78208041,0x68007021,0xb5b6b5b7,0xa574b5b5,0xb5b6ad75,0xbdb7b5b6, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x5a246a85,0x62656265,0x41a46265,0xa5346b4d,0x00005205,0xb185b185,0x9965a165,0xa165b185,0xa965a965,0xb185b9a5,0x99449944,0xa965a165,0x91449944,0xe4f6e4f6,0xd3f2dc33,0xdc33e4d5,0xdc94dc54,0xdcd5e557,0xd3b2d3b1,0xdc74dc33,0xd371d3b2,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0x9cd34208,0x9cd30000,0x9cd34a69,0x42080000,0x00004a69,0x00008c51,0x9cd33186,0x9cd30000,0x9cd33186,0x9cd33186,0x9cd34a69,0x31863186,0x31864a69,0x31868c51,0x9cd33186,0x9cd33186,0x80418041,0x80417821,0x80608041,0x80828081,0x80827862,0x782180a1,0x78407820,0x80417841,0x80218021,0x98a27820,0x78218882,0x70007021,0xd679d699,0xb5b6c5f8,0xce59b5b7,0xb5d6d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x38e10000,0x38e138e1,0x38e138e1,0x000038e1,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x8b87ac4a,0xac4aac4a,0x6aa78b87,0xa5346b4d,0x00008328,0xa965a965,0xb9a5b185,0xa965b185,0x9944a165,0xa1658124,0xb185a965,0xa165a165,0xb985b185,0xdc54dc74,0xe557e516,0xdc74e4d5,0xd3d2dc33,0xdc13cacf,0xe4d5dc74,0xdc13dc13,0xe536e4d5,0xb5968430,0xb596a514,0xa5149cf3,0x400094b2,0xb5962000,0xce79ad14,0xad55ce79,0x9492b596, +0x00003186,0x00009cd3,0x00009cd3,0x4a699cd3,0x00000000,0x4a699cd3,0x42080000,0x00009cd3,0x31863186,0x31869cd3,0x31869cd3,0x4a699cd3,0x31863186,0x4a699cd3,0x31863186,0x31869cd3,0x88408021,0x888288a2,0x88a288a2,0x80627882,0x80818082,0x80627862,0x78828082,0x80828081,0x80828082,0xa9857820,0x808298e3,0x68007020,0xdefbce99,0xce79deba,0xdebbc699,0xb5b6ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x38e10000,0x924338e1,0x92439243,0x92439243,0x38e19243,0x38e138e1,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0x89248124,0xb185b185,0x81249144,0xa985a165,0xa965a165,0xb9a5b9a5,0x8924a965,0xd3b2d3b2,0xcaefcacf,0xe4f6e4d5,0xcaaed330,0xdc94dc13,0xdc74dc33,0xe557e557,0xcb0fdc54,0xa5148430,0x84109492,0xa5149cf3,0x48009492,0xb5962800,0xad149cf3,0xc638a514,0x8430a514, +0x8c514208,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd30000,0x4a690000,0x00003186,0x8c513186,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd33186,0x4a693186,0x31863186,0x90617841,0x88a290e3,0x808288a2,0x78817862,0x80627881,0x78a27862,0x80628062,0x80618081,0x80817882,0xa9857020,0x8082a145,0x68007021,0xdebbc638,0xdefbdedb,0xce79d6ba,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x38e10000,0x924338e1,0xbae49243,0xaac4bae4,0xaac4aac4,0x9243aac4,0x92439243,0x000038e1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91449144,0xa165a165,0x99449944,0xa965a985,0x91449144,0xa9659944,0x89248924,0xa9659944,0xd391d350,0xdc53dc53,0xd3b2d3b2,0xdc74dc94,0xd391d371,0xdc54d3b2,0xcaefcaef,0xdc54d3d2,0xad557bcf,0x84109492,0x9cf3a514,0x48009492,0xb5962800,0x9cf3a514,0xce79a514,0x7bcfb596, +0x00000000,0x00009cd3,0x4a698c51,0x9cd30000,0x00004a69,0x8c519cd3,0x4a690000,0x42080000,0x31863186,0x31869cd3,0x4a698c51,0x9cd33186,0x31863186,0x8c519cd3,0x4a693186,0x31863186,0x90818040,0x88a298c3,0x80828081,0x80618082,0x80617862,0x88828082,0x80828062,0x78627881,0x80817861,0xa9a67020,0x88a290e3,0x68007040,0xdedbc618,0xef5cdebb,0xd678defb,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xbae4bae4,0xa284aac4,0xa284c618,0xa284a284,0xaac4bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41c46265,0xa5346b4d,0x00005205,0xb185b185,0xa965a965,0xb185b9a5,0xa965a965,0xb185b185,0xa1659944,0xa165a965,0xa1659144,0xe4f5e4d5,0xdc74dc74,0xe4d5e557,0xdc54dc74,0xdcd5e4f5,0xdc33d3d2,0xdc13dc54,0xdc33d350,0xad558430,0x9492b596,0x9cf38410,0x58009492,0xb5962800,0xa514a514,0xad55ce79,0x8430ad55, +0x00008c51,0x42080000,0x4a699cd3,0x00000000,0x9cd30000,0x9cd34a69,0x9cd30000,0x4a693186,0x31868c51,0x31863186,0x4a699cd3,0x31863186,0x9cd33186,0x9cd34a69,0x9cd33186,0x4a693186,0x88828041,0x90e39904,0x80a28082,0x88828082,0x88a38082,0x88a388a2,0x88a288a2,0x88a290a2,0x888288a2,0xb1e78061,0x88a39103,0x68007820,0xe6fcc618,0xef5def5d,0xdf1cef5d,0xad75c618, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xa284a284,0xce79ef5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b878b87,0x8b878b87,0x6aa7a409,0xa5346b4d,0x00008328,0x99659944,0xb1859944,0x89248124,0xa1659965,0xa9659144,0xb9a5b9a5,0xa965a165,0xb985b9a5,0xd3f2d3b2,0xdcd5d3d2,0xcaefcacf,0xdc53d3f2,0xdc54d391,0xe557e557,0xdc74dc13,0xe536e557,0xa5148430,0x9492a514,0xa5148410,0x58009492,0xb5962800,0x9cf3a514,0xa514ce79,0x8430b596, +0x42089cd3,0x4a698c51,0x9cd30000,0x9cd30000,0x00004208,0x00009cd3,0x00004a69,0x4a699cd3,0x31869cd3,0x4a698c51,0x9cd33186,0x9cd33186,0x31863186,0x31869cd3,0x31864a69,0x4a699cd3,0x90828021,0x90c39903,0x88a288a2,0x80a388a2,0x88a288a2,0x88a288a2,0x88a18882,0x88a290c2,0x80a288a2,0xb1e78861,0x88a298c3,0x68007020,0xf77ed69a,0xef5eef7e,0xef5def5d,0xb596d679, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xef5dce79,0xef5def5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284bdf7,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa965a965,0x99448924,0xa965b185,0x99449144,0x99449944,0x89249944,0x9965a165,0x91449144,0xdc74dc74,0xd3b2d310,0xdc54e4d5,0xd3b2d391,0xd3d2d3b2,0xcb0fd3b1,0xd3f2dc13,0xd330d350,0xb5968430,0x9cf3b596,0x84109492,0x50009492,0xb5962800,0xce799cf3,0xb596b596,0x9492b596, +0x9cd30000,0x9cd34a69,0x00003186,0x4a699cd3,0x00004a69,0x9cd30000,0x9cd34a69,0x9cd30000,0x9cd33186,0x9cd34a69,0x31863186,0x4a699cd3,0x31864a69,0x9cd33186,0x9cd34a69,0x9cd33186,0x90628041,0x88a39903,0x888288a3,0x90a288a2,0x88a288a2,0x88a288a2,0x88a288a2,0x888288c2,0x88a288a2,0xb1c78861,0x808290e3,0x68007021,0xf7bed6ba,0xef7ef79d,0xef5def5d,0xb576ce7a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce7938e1,0xef5def5d,0xc618ef5d,0xc618c618,0xc618c618,0xbdf7c618,0xbdf7bdf7,0x38e1bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0xb9a5b985,0xa965a965,0xb185b185,0x99449144,0xb185a965,0xa965a965,0xb185b185,0xd3b2d3b2,0xe557e536,0xdc54dc74,0xe4d5e4d5,0xd3b1d371,0xe4d5dc94,0xdc54dc54,0xe4d5e4f5,0xad558430,0xa514ad55,0x84109492,0x50009492,0xb5964020,0xc638a514,0xa514a514,0x8430ad55, +0x31860000,0x00009cd3,0x9cd33186,0x9cd30000,0x00009cd3,0x00009cd3,0x00008c51,0x00009cd3,0x31863186,0x31869cd3,0x9cd33186,0x9cd33186,0x31869cd3,0x31869cd3,0x31868c51,0x31869cd3,0x90628041,0x88a29904,0x88a280a1,0x80a28082,0x88a28883,0x88a288a2,0x88a288a3,0x88a288a2,0x888388a2,0xba498861,0x80a290e3,0x68007000,0xef9dd6db,0xef7ef79e,0xef7def5d,0xb5b6ce99, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce794a49,0xc618ef5d,0xef5dc618,0xef5def5d,0xef5de8e3,0xc618ef5d,0xbdf7c618,0x4a49bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41a45a24,0xa5346b4d,0x00005205,0xb9a5b985,0xa965a985,0xa165a165,0xa165a165,0xb9a5b185,0x9965a965,0xb9a5b9a5,0xa165a965,0xe557e536,0xdc94dcd5,0xdc13dc13,0xdc33dc13,0xe557dcd5,0xd3f2dc54,0xe557e557,0xdc33dc74,0xb5969492,0xad55ad55,0x9492ad55,0x50209492,0xb5965000,0xad55ce79,0xb596b596,0x7bcfb596, +0x9cd34208,0x8c518c51,0x00004a69,0x00009cd3,0x9cd34208,0x00004a69,0x4a698c51,0x9cd30000,0x9cd33186,0x8c518c51,0x31864a69,0x31869cd3,0x9cd33186,0x31864a69,0x4a698c51,0x9cd33186,0x90828061,0x9965b1c6,0x90c290c3,0x88a290a3,0x88818882,0x808288a2,0x88c28882,0x888288a2,0x90a288a2,0xcb0c9082,0x80819924,0x68007000,0xf77ed6ba,0xef7ef79e,0xe75eef5d,0xb5b7d67a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xef5def5d,0xef5def5d,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b87ac4a,0x8b878b87,0x6ac76265,0xa5346b4d,0x00008328,0x89248924,0xb1859144,0x81249144,0x99449144,0x81249144,0x99449944,0x99448924,0x99449144,0xcaefd310,0xe4d5d391,0xcaaed391,0xd3b2d391,0xcaaed391,0xd3d2d3b2,0xd3b1cb0f,0xd3d2d371,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0x00004a69,0x4a698c51,0x00004a69,0x4a690000,0x31869cd3,0x4a699cd3,0x4a699cd3,0x00009cd3,0x31864a69,0x4a698c51,0x31864a69,0x4a693186,0x31869cd3,0x4a699cd3,0x4a699cd3,0x31869cd3,0x98e38041,0xb1a7b1e7,0x990498e4,0x90a398e3,0x88a388c3,0x80818862,0x808280c2,0x88a288a3,0x888288a1,0xc2ca9082,0x80a2a125,0x68007841,0xf7bed6bb,0xf79effbe,0xef5def5d,0xb596d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5def5d,0xef5de8e3,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa165a965,0xa1659144,0xa965a985,0x81248924,0xa1659944,0x91449944,0xa985a985,0x89249144,0xdc13dc54,0xdc33d391,0xdc94dc94,0xcaaecaef,0xdc33d3b2,0xd330d3b1,0xdc94dc94,0xcaefd350,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0x00004a69,0x8c510000,0x00009cd3,0x4a699cd3,0x9cd38c51,0x00000000,0x9cd30000,0x00004208,0x31864a69,0x8c513186,0x31869cd3,0x4a699cd3,0x9cd38c51,0x31863186,0x9cd33186,0x31863186,0x98838040,0xa965a966,0xa1459904,0xa145a965,0xa145a965,0x99049925,0x99049904,0x99259924,0x90e39945,0xbaaa9082,0x9103b208,0x70007841,0xffffd6ba,0xffbfffff,0xf75def3d,0xa514ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xe8e3c618,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x9944a165,0xb185a965,0x99449944,0xb185a165,0x99659144,0xb185b185,0x9944a165,0xb185b9a5,0xd3b2dc33,0xe4d5dc94,0xd3b2d3d2,0xe4d5dc13,0xd3f2d391,0xe4d5e4d5,0xd3b2dc33,0xe4d5e557,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0x00009cd3,0x00009cd3,0x9cd30000,0x000052aa,0x00008c51,0x31864a69,0x4a699cd3,0x00009cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x318652aa,0x31868c51,0x31864a69,0x4a699cd3,0x31869cd3,0x90628041,0xa9a6a985,0xa9a6a9a6,0xb1a6a9a6,0xa986a986,0xa145a965,0xb186a966,0xb186b1a6,0xa985a986,0xc2aa90a3,0x9925b208,0x70008041,0xffdfce59,0xffdfffff,0xe73cf79e,0x9cf4bdd7, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x4a490000,0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xc618ef5d,0x4a49c618,0x00004a49,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x520541c4,0x62656265,0x62656265,0x41a449e4,0xa5346b4d,0x00005205,0xb185b185,0xa1659944,0xb185b185,0x9944a165,0xb185a965,0xa965a965,0xb985b185,0xa965a965,0xe4d5dcd5,0xdc13d3d2,0xe4d5e4f6,0xd3d2dc33,0xe4d5dc74,0xdc74dc74,0xe536e516,0xdc54dc74,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0x9cd30000,0x42080000,0x00009cd3,0x00009cd3,0x00009cd3,0x42089cd3,0x9cd30000,0x9cd34a69,0x9cd33186,0x31863186,0x31869cd3,0x31869cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x9cd34a69,0x88618041,0xb1a6a945,0xa986a986,0xb186b1c6,0xa145a986,0xa965a145,0xb1c7b1c7,0xb1e7b1c7,0xa9a6b1e7,0xba6a90c2,0xa124b208,0x68007821,0xf79ec658,0xffffffff,0xd67af79f,0xa4f3b595, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x4a490000,0xc6184a49,0xc618c618,0xc618c618,0x4a49c618,0x00004a49,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x72e65a66,0xa409a409,0xac4aac4a,0x6aa78368,0xa5346b4d,0x00008328,0xa965a165,0xb9a5b985,0xa965b185,0x99449965,0x89249144,0x99449944,0x89248124,0xa1659944,0xdc54dc33,0xe557e536,0xdc74dcd5,0xd3d2d3f2,0xcb0fd371,0xd3d2d3b1,0xd310ca8e,0xdc13d3b2,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0x8c519cd3,0x4a698c51,0x9cd33186,0x31860000,0x9cd30000,0x4a698c51,0x00000000,0x8c510000,0x8c519cd3,0x4a698c51,0x9cd33186,0x31863186,0x9cd33186,0x4a698c51,0x31863186,0x8c513186,0x80418041,0x90a28882,0x90a290a2,0x98a390a2,0x88629882,0x98a38841,0xa0e3a0c3,0xa0e4a0a3,0x98c2a104,0x99248821,0x88619944,0x70208021,0xd69ac639,0xf7bee75d,0xbd96d6ba,0x9d34b555, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x4a490000,0x4a494a49,0x4a494a49,0x00004a49,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449144,0x91449144,0xa985a165,0x99449144,0xa965a965,0x91448924,0xa165a165,0x89249144,0xd3b2d391,0xd371d350,0xdc94dc13,0xd3b1d391,0xdc74dc54,0xd350caef,0xdc33dc33,0xcb0fd350,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x9cd30000,0x4a690000,0x9cd30000,0x00004a69,0x00009cd3,0x4a699cd3,0x9cd30000,0x9cd30000,0x9cd33186,0x4a693186,0x9cd33186,0x31864a69,0x31869cd3,0x4a699cd3,0x9cd33186,0x9cd33186,0x80418041,0x88618061,0x80418021,0x90618861,0x80418881,0x80418021,0x88618041,0x80618862,0x78408041,0x90e48040,0x88a290e3,0x70008041,0xad75b595,0xce38be17,0x9d13b596,0xb5959cf3, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x41a449e4,0xa5346b4d,0x00008328,0x10821082,0x18c320e3,0x18a21082,0x20e320e3,0x18a218a2,0x20e318c3,0x10821082,0x20e320e3,0x39e739c7,0x42084a49,0x39e739e7,0x4a494a49,0x39e74208,0x4a494228,0x39e739e7,0x4a494228,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0x28e128c1,0x10403922,0x28e128c0,0x104028e1,0x310128e1,0x082028e1,0x28e128e1,0x392228c1,0xef5cef3c,0x39e7ef5c,0xdefadefa,0xef5ce6fb,0xef7def5c,0xe6fad69a,0xffffdeba,0xf77cffff,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x62650000,0x62656265,0x6aa78b87,0xa5346b4d,0x83285205,0x20e320e3,0x18a218a2,0x18c320e3,0x18c318c3,0x20e32104,0x10821082,0x18c318c3,0x108218a2,0x4a494a49,0x42084208,0x42084a49,0x42284228,0x42284a69,0x39e739e7,0x42284208,0x39e739e7,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x28e11020,0x104049a3,0x39223101,0x10401880,0x28e14982,0x102051a3,0x392228c1,0x28e11040,0x39e718c3,0xef5c31e7,0xffffef5c,0xffffffff,0xdefaef3c,0x39e739c7,0xdefbbd96,0x18a31903,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483, +0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x5a2441a4,0x83286265,0x8b878b87,0x00000000,0x6b4d41a4,0xa534a534,0x18c318c3,0x210420e3,0x18c320e3,0x18a218c3,0x18a21061,0x20e318c3,0x18a218a2,0x210420e3,0x42284228,0x4a694a49,0x42284a49,0x42084208,0x420831a6,0x4a494228,0x42084208,0x4a494a49,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0x31011040,0x310128c1,0x392228e1,0x31011880,0x28c13101,0x104028e1,0x498230e1,0x102051c3,0xdeda39e7,0xef9bd6fa,0xef5bef5c,0xb595e77d,0xef7cdeda,0xef3cef3c,0x39c841c7,0x18c218e3,0xa2c1a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xe483a2c1,0xa2c14080,0xe483a2c1,0x4080e483,0xe529a2c1,0xa2c1a2c1, +0xa2c1a2c1,0x4800a2c1,0xe483e4c2,0xe4c2cea8,0xe483a2c1,0xc667f6e6,0xe529a2c1,0xa2c1a2c1,0xdefb0000,0xe8e3ef5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x00008b87,0x00000000,0x62650000,0x6aa76265,0x6b4d6b4d,0x18a218a2,0x10611061,0x20e320e3,0x10611082,0x18c318a2,0x18c318c3,0x21042104,0x106118c3,0x39e739e7,0x39c731a6,0x4a494a49,0x31a639c7,0x42284208,0x42284208,0x4a694a69,0x39c74228,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51a31020,0x28e11020,0x51a33101,0x30e10820,0x28c11040,0x104049a3,0x28c030e1,0x51a31040,0xffffe75d,0xef5dffff,0xdedad6da,0xef5cd71a,0xe75bef5c,0xef3cef5d,0xef5cef3c,0x420739e7,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xa2c14080,0x40804080,0x4080a2c1,0x40804080,0x4080a2c1,0xa2c14080, +0xa2c1a2c1,0x4800e4c2,0xe4c2c647,0xd728cee8,0xd728e4c2,0xcea8cee8,0xbde7a2c1,0xeda2bd86,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xe8e3e8e3,0xdefbdefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0xa5345205,0x00006b4d,0x00000000,0x00000000,0x83286265,0x00008b87,0x6aa741a4,0x10821082,0x18c318c3,0x18a218a2,0x18c318c3,0x10821082,0x18c31082,0x10611061,0x18c318a2,0x39e739c7,0x42284228,0x39e739e7,0x42284228,0x39e739e7,0x422839e7,0x31a631a6,0x422839e7,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0x39221040,0x28e11040,0x51a33102,0x51a31040,0x28c10820,0x104051c3,0x49a33101,0x51c31040,0xef5cef5c,0xe77ce73c,0xbdb6ef5c,0xb5d6b5d6,0xef5cef5c,0xdefad71a,0xb596b5d6,0xdefbdeda,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483d3e2,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x40802800,0x40804080,0x40804080,0x40804080,0x40804080,0x40804080,0xa2c14080, +0xa2c1a2c1,0xc6074800,0xcec8c667,0xdf68d728,0xdf68df89,0xcec8d728,0xc607c667,0xeda2bda6,0xdefb0000,0xdefbef5d,0xef5ddefb,0xef5def5d,0xe8e3e9a6,0xef5ddefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xa5340000,0x00006b4d,0x00000000,0x62650000,0x8b878328,0x00000000,0x83685a24,0x20e320e3,0x18c318c3,0x20e32104,0x18c318c3,0x20e320e3,0x18c318a2,0x18a218c3,0x18a21082,0x4a494a49,0x42284228,0x4a494a69,0x42284228,0x42284a49,0x42084208,0x42084228,0x420839c7,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0x39221060,0x30e11040,0x49a328e1,0x28c01020,0x28c11040,0x104051c3,0x51c330e1,0x49a31040,0xef9cb5d6,0xdedadeb9,0xb5b6deda,0xef7cef7c,0xef5bef7c,0xffffffff,0xe71cef5c,0xef5dffff,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x28002800,0x28002800,0x28004080,0x40802800,0x28002800,0x28004080,0xa2c1a2c1, +0xf7c5a2c1,0x48004800,0x48004800,0x4800d728,0xdf894800,0x48004800,0x4800ce67,0xa2c1eda2,0xdefb0000,0xdefbef5d,0xef5def5d,0xdefbd6ba,0xef5def5d,0xef5def5d,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x00000000,0x83286265,0x00008328,0x62650000,0x00008328,0x18a21082,0x20e318a2,0x10611061,0x18c318a2,0x18c31082,0x21042104,0x18c318a2,0x21042104,0x420839e7,0x422839e7,0x39c731a6,0x42284208,0x422839e7,0x4a694a69,0x42284208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51c328e1,0x28e11860,0x49823101,0x30e11040,0x102030e1,0x104049a3,0x49a33101,0x39221040,0xe73cef7b,0xe75cef5c,0xdedadeda,0xdedab5d6,0xded9b5d6,0xef5cd6da,0xef7bef9d,0xef3cf75d,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x2800a2c1,0xa2c1a2c1,0xa2c12800,0x2800a2c1,0x2800a2c1,0xa2c1d3e2, +0xf684a2c1,0x4800eda2,0x4800eda2,0xeda2eda2,0xeda24800,0x4800eda2,0x4800eda2,0xa2c1f7c5,0xdefb0000,0xdefbef5d,0xef5de8e3,0xef5def5d,0xdefbef5d,0xe8e3ef5d,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4a284,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x62650000,0x8b878368,0x00000000,0x62650000,0x00008328,0x18c318c3,0x10821082,0x18c320e3,0x18a21082,0x18a21082,0x10611082,0x18a218a2,0x10821082,0x42284228,0x39e739c7,0x42284a49,0x39e739e7,0x420839e7,0x39c739e7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000, +0x51a328e1,0x31021040,0x10404982,0x104028e1,0x104028e1,0x10404982,0x31013101,0x39221040,0xdefade9a,0xffffde9a,0xef7cffff,0xfffff75c,0xef7ceefb,0xef1cf77c,0xef9ce75c,0xdefad6da,0xe483a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483a2c1,0xe483e483,0xa2c1a2c1,0xd3e2a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2, +0xe483a2c1,0xffe7f6e6,0xeda2e4c2,0xd3e2e4c2,0xe4c2eda2,0xeda2e4c2,0xeda2e4c2,0xa2c1f684,0xdefb0000,0xdefbef5d,0xdefbef5d,0xe8e3ef5d,0xdefbe8e3,0xe9a6defb,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xa5340000,0x5a666b4d,0x00008b87,0x00000000,0x62650000,0x00008b87,0x18a218a2,0x21042104,0x18c318c3,0x20e320e3,0x10821082,0x20e318c3,0x18c318c3,0x20e320e3,0x39e739e7,0x4a694a49,0x42284228,0x4a494a49,0x39e739e7,0x4a494228,0x42284228,0x4a494a49,0x00000000,0x00000000,0x00000000,0x48000000,0x00002800,0x00000000,0x00000000,0x00000000, +0x51a33101,0x31011040,0x104051c3,0x104051a3,0x102051a3,0x18803922,0x392228e1,0x31011040,0xbd96e75c,0xef5bffff,0xdefaef3c,0xe75cdeda,0xbdd6ffff,0xef7ce75c,0xdedaffff,0xd6bbdefa,0xe483a2c1,0xe483e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1a2c1,0xe483a2c1,0xa2c1e483,0x40804080,0xa2c1a2c1,0xa2c1a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe483a2c1,0xa2c1e483,0xc667c607,0xe4c2a2c1,0xa2c1e4c2,0xc667cea8,0xbdc6c607,0xa2c1a2c1,0xdefb0000,0xef5de8e3,0xdefbef5d,0xe9a6ef5d,0xd6bae8e3,0xef5ddefb,0xef5def5d,0x0000defb,0x92430000,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x00009243,0x92430000,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x52050000,0x6b4da534,0x00000000,0x00000000,0x83286265,0x00000000,0x21042104,0x18c320e3,0x18a218a2,0x18c318a2,0x210420e3,0x18a218c3,0x21042104,0x18c318c3,0x4a694a49,0x42284228,0x42084208,0x42084208,0x4a694228,0x42084228,0x4a694a69,0x42084228,0x00000000,0x00000000,0x00000000,0x50000000,0x00004800,0x00000000,0x00000000,0x00000000, +0x392228e1,0x31011880,0x28c049a3,0x104028e1,0x10404982,0x20a03922,0x39220820,0x31011040,0xe6d939e7,0xe73cdeb9,0xbdd6ef5c,0xdebaef3b,0xdedad6fa,0xef3cef5c,0xef3cb596,0xef5cef3c,0xe529a2c1,0xe483e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1a2c1,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe529a2c1,0x4800a2c1,0xc607bdc7,0xa2c1c647,0x4800eda2,0xc607c647,0xbd86bdc7,0xa2c1eda2,0xdefb0000,0xef5def5d,0xd6baef5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5ddefb,0x0000defb,0x92430000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x00009243,0x92430000,0x81208120,0x81208120,0x71008120,0x81208120,0x81208120,0x81207100,0x00009243, +0xa2840000,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x83280000,0xa5345205,0x6b4d6b4d,0x00000000,0x8b8749e4,0x00000000,0x10611082,0x20e31082,0x10611082,0x18a21082,0x10611082,0x18a218a2,0x10821061,0x18a21082,0x31a639c7,0x4a4939e7,0x31a639e7,0x39e739e7,0x31a639e7,0x420839e7,0x39e739c7,0x39e739e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c13101,0x28e13101,0x28e151a3,0x30e128e1,0x10403101,0x498228e1,0x39221040,0x28e11040,0x420739c7,0xffffef7c,0xf75cffff,0xffffef5c,0xef5cffff,0xffffffff,0x39c7ef5c,0x18e218c3,0xe529a2c1,0xd3e2e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c14080,0xa2c1d3e2, +0xe529a2c1,0x4800a2c1,0xbdc6bd86,0xa2c1bde7,0x4800eda2,0xbdc6bde7,0xeda2bd86,0xa2c1f684,0xdefb0000,0xe8e3ef5d,0xef5de8e3,0xef5def5d,0xef5dd6ba,0xdefbef5d,0xef5def5d,0x0000defb,0x92430000,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0x00009243,0x92430000,0x81207900,0x79008120,0x81207900,0x79008120,0x81207900,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x5a6641a4,0x00000000,0x18a218c3,0x18a21082,0x18c318c3,0x10611061,0x18c31082,0x10821082,0x18c318c3,0x10611082,0x42084228,0x420839e7,0x42284228,0x31a639c7,0x420839e7,0x39c739e7,0x42284228,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x104030e1,0x28e13101,0x39223922,0x28e13101,0x10403101,0x51a330e1,0x51a31040,0x39221040,0xef5cef3c,0xb5b6b5b6,0x39c6df1a,0x20c439c7,0xe75c39e7,0xd6fadeda,0xe6badeda,0xdeba41e7,0xd3e2a2c1,0xd3e2e483,0xe529a2c1,0xe483d3e2,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c12800,0xa2c1d3e2, +0xd3e2a2c1,0x4800eda2,0xb566b546,0xeda2bd86,0x4800eda2,0xb566bd86,0xeda24800,0xa2c1d3e2,0xdefb0000,0xe9a6ef5d,0xef5de8e3,0xef5def5d,0xe8e3ef5d,0xef5dd6ba,0xef5def5d,0x0000defb,0x92430000,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0x00009243,0x92430000,0x79007900,0x71007900,0x60a060a0,0x60a060a0,0x710060a0,0x79007900,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x6b4d6b4d,0x18a218a2,0x20e318c3,0x18a218a2,0x20e318a2,0x18a21082,0x20e320e3,0x18a218a2,0x20e32104,0x39e74208,0x4a494228,0x39e74208,0x4a494208,0x420839e7,0x4a494a49,0x39e74208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x10603101,0x104028c1,0x39223922,0x28e11040,0x104051a3,0x51a328e1,0x51c31040,0x39221040,0xffffef5c,0xb5d6e77c,0x10c241e7,0x39a720c4,0xf75cef3c,0xef9cef3c,0xef7cef7c,0xef5cdeda,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe529d3e2,0xe529a2c1,0xa2c1e483,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e483,0x40802800,0xe5292800,0x2800a2c1,0x28002800,0xe483a2c1,0xa2c1d3e2, +0xd3e2a2c1,0xe4c2f6e6,0xb5064800,0xfff24800,0x4800eda2,0x48004800,0xf6e6eda2,0xa2c1d3e2,0xdefb0000,0xdefbef5d,0xd6badefb,0xdefbdefb,0xdefbdefb,0xdefbef5d,0xef5ddefb,0x0000defb,0xc6180000,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0x0000c618,0x92430000,0x60a060a0,0x60a060a0,0x79008120,0x81208120,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4a284,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x52050000,0xa534a534,0xa534a534,0x20e320e3,0x18a218a2,0x20e320e3,0x18a218c3,0x20e318c3,0x18c318c3,0x210420e3,0x18c318c3,0x4a494228,0x42084208,0x4a494a49,0x42084208,0x4a494228,0x42284228,0x4a494a49,0x42284228,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11020,0x104028c0,0x51a328e1,0x28e11040,0x104051a3,0x392228e1,0x39221880,0x51a31880,0xef9cd6db,0xef7ce73c,0xe6daef5c,0xdebaef7c,0xdebbdeda,0xb5b6e77c,0xe75cef5c,0xdedadeba,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e483,0xd3e2a2c1,0xa2c1e483,0x28002800,0xe483e483,0xe529a2c1,0xa2c12800,0xe483e483,0xa2c1e483, +0xd3e2a2c1,0xeda2e483,0x48004800,0xf6e6ffe7,0xfff2e4c2,0xeda24800,0xe483f6e6,0xa2c1e483,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0x0000defb,0xc6180000,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0x0000c618,0x92430000,0x81207900,0x79008120,0x81207900,0x79007900,0x81208120,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x83280000,0x00008b87,0x00000000,0x18c318a2,0x21042104,0x18c320e3,0x18a218a2,0x10821082,0x18a21082,0x10821061,0x18a218a2,0x42284208,0x4a694a49,0x42284228,0x42084208,0x39c739e7,0x420839e7,0x39c731a6,0x420839e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11040,0x08203102,0x51a31040,0x28e11040,0x104051a3,0x51a328e1,0x39221880,0x49a31880,0xe75cf77c,0xdebadeda,0xe77cde9a,0xef1ce75c,0xef7be77c,0xef7ce75c,0xef5cef7b,0xef5cf75b,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483, +0xe529a2c1,0xe4c2e483,0xffe7f7c5,0xd3e2f6e6,0xf6e6a2c1,0xe4c2ffe7,0xe483d3e2,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0xc6180000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000c618,0x92430000,0xef5d7900,0x79007900,0x79007900,0x79007900,0x79007900,0x79007900,0x00009243, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18a21082,0x10821082,0x18c318a2,0x10821082,0x18c318c3,0x10821061,0x18c318c3,0x10821082,0x39e739e7,0x39e739c7,0x42284208,0x39e739e7,0x42284228,0x39c739c7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28e11860,0x51c33101,0x31011040,0x104049a3,0x28e128e1,0x392228e1,0x39223101,0x51c328e1,0xef7bb5b6,0xef7cef5c,0xbdd6ef7c,0xdefaef5c,0xe75ce6da,0xffffffff,0xef3cffff,0xb5b5ef7c,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xa2c1d3e2,0xf684e4c2,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e4c2,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc6180000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000c618,0xc6180000,0xdefbdefb,0xdefbdefb,0x7900defb,0x60a060a0,0xdefbdefb,0xdefbdefb,0x0000c618, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x93a80000,0x00006286,0x00000000,0x00000000,0x00000000,0x51e37ac5,0x59e351e3,0x51c351c3,0x51c359e3,0x51e351e3,0x51c351e3,0x51c349a3,0x51e351c3,0x7bcf8430,0x73ae73ae,0x73ae738e,0x73ae73ae,0x73ae73ae,0x738e73ae,0x738e738e,0x738e738e,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xd3e2a2c1,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x69a669c7,0x38e34820,0x184158e2,0x38412882,0xab8ba2cb,0x92884924,0x38e338c3,0x514538e3, +0x5a27836b,0x72c96a88,0x7b2b5a27,0x392349a5,0x31023923,0x49c65a27,0x31023102,0x8b8c834b,0x49c27369,0x49c249c2,0x49c249c2,0x73697369,0x73697369,0x49c27369,0x49c249c2,0x49c249c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x93678b46,0x8b469367,0x93679367,0x8b468b46,0x93679367,0x72249367,0x94b294b2,0x94b294b2,0x94b29492,0x94929492,0x949294b2,0x94929492,0x94929492,0x73ae9492,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1e483,0xe483d3e2,0xa2c1e483,0x92aa69a6,0xab2c2041,0x69c75820,0x38415820,0x38414924,0x6841ab8b,0x8a4992cb,0x30c328a2, +0x5a4751e6,0x3102836b,0x41a549e6,0x31238b8c,0x7b0a4184,0x5a275a47,0x41644164,0x7b2a49c5,0x7ac57369,0xc4687ac5,0x7ac57ac5,0x736949c2,0x49c249c2,0x7ac57369,0x7ac57ac5,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x8b46aca9,0xa4497ac5,0xa449a449,0xa408a449,0xa4489367,0xa408a448,0xa408a408,0x72248b46,0x949294b2,0x9cf38c71,0x9cd39cf3,0x9cd39cd3,0x9cd394b2,0x9cd39cd3,0x9cd39cd3,0x73ae9492,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e529,0xd3e2a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe483e483,0xd3e2a2c1,0x8269cbcf,0xcbae6186,0xaaeb7861,0x184159a6,0x988261c7,0x5820b34d,0x58209aeb,0x30c37a08, +0x8b8c4164,0x31236247,0x31023102,0x416472c9,0x7b2a5a27,0x41a5834b,0x418449a5,0x41844184,0xfdeb7369,0xffffc468,0x49c2feb3,0x49c27369,0x49c2c468,0xfdeb7369,0xffffc468,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x936782c5,0x8b469367,0xa4089367,0x8b467a84,0x8b468b46,0x93878b46,0x72249367,0x949294b2,0x94b28c71,0x949294b2,0x9cd394b2,0x94b28c71,0x94929492,0x94b294b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2d3e2,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xe483e529,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xa2cbc38e,0x30c32882,0x18412882,0x582061c7,0x18414124,0x7041c38e,0x71e78a69,0x59a68a87, +0x72c93102,0x72c93102,0x62683103,0x41846247,0x5a274184,0x6ac949a5,0x5a476267,0x51e649c5,0x73697369,0xc468fdeb,0x736949c2,0x7ac549c2,0x7369ffff,0x736949c2,0xc468fdeb,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x72a56b6d,0x7ac56244,0x72a572a5,0x938772a5,0x7ac56244,0x7ac57ac5,0x936672a5,0x51e372a5,0x94928410,0x94928c51,0x8c719492,0x94b28c71,0x94928c51,0x8c718c71,0x94b28c71,0x7bcf8c71,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xd3e2e483,0xe483d3e2,0xd3e2a2c1,0xa2c1e483,0x384159a6,0x8269ab2c,0x18416186,0x58208a69,0x71e79aeb,0x30412882,0x4924bb6d,0x30c33841, +0x62685206,0x7b2a3943,0x31026268,0x49c56247,0x39436268,0x6aa993cd,0x6aa96247,0x49a58bac,0x49c27369,0x7ac57369,0x736949c2,0xfdebfdeb,0x49c27369,0x49c27ac5,0x7ac57369,0x73697369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b4631a6,0x8b4682a5,0x93679367,0xa4088b46,0x8b467a84,0x8b468b46,0xa4488b46,0x6a038b46,0x9cd34a69,0x9cd394b2,0x9cd39cf3,0x9cf39cd3,0x94b28c71,0x94b294b2,0x9cf394b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0xa2c1e529,0xa2c1e483,0xd3e2e529,0xe483a2c1,0xd3e2e529,0x78614924,0x8a69ab4a,0x104171e7,0x6841a2cb,0x71e78a69,0x18417a08,0x492461a6,0x79e77041, +0x41844184,0x72e96aa9,0x31023102,0x418472e9,0x6aa949a5,0x5a476aa9,0x31026268,0x6aa93102,0x7ac57ac5,0x736949c2,0x73697369,0x73697369,0x7ac549c2,0x7ac5c468,0x736949c2,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x7a847a84,0x82c57a84,0x8b4682a5,0x7a847a84,0x62447a84,0x8b4682c5,0x6a038b46,0x9cf3a514,0x94b294b2,0x94b294b2,0x9cd394b2,0x8c719492,0x8c518c71,0x94b29492,0x841094b2,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xe483e483,0xe483e483,0x3960a2c1,0xa2c1a2c1,0xa2c1e483,0xd3e2e483,0xd3e2d3e2,0x49247a08,0x8061c38e,0x30e36020,0x4020a2cb,0x8228e550,0x59a6bc0c,0xd3ef5145,0x58205820, +0x52064164,0x624751c5,0x834b7b0a,0x39237b2a,0x7b0a5206,0x394341a5,0x31023102,0x6a884164,0xfffffdeb,0x49c2feb3,0x49c27369,0xfdeb7369,0xc4687ac5,0xc468ffff,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0x7ac59367,0x93678b46,0x8b469367,0x8b468b46,0x93679367,0x6a039367,0xa534ad75,0xa534a534,0x9cd3a514,0x9cf39cd3,0x9cd39cd3,0x9cd39cd3,0x94b29cd3,0x7bef94b2,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000a800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1d3e2,0xa2c1a2c1,0xa2c1a2c1,0xb4203960,0xa2c1e540,0xd3e2e483,0xa2c1a2c1,0xa2c1a2c1,0x104171c7,0x886159a6,0xab8b8061,0xa2cb9b09,0x71c7b34d,0x41245145,0x084128a2,0xdd0fdc10, +0x9c0e6ac9,0x49c572e9,0x62885a27,0x310249a5,0x41844184,0x31026268,0x31023102,0x62686247,0xc468fdeb,0x73697ac5,0x7ac549c2,0x736949c2,0xfdeb7369,0x7ac5c468,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x84100000,0x0000738e,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x936672a5,0x93669366,0x93879366,0x93877ac5,0x93669366,0x93669366,0x51e37ac5,0xad55b596,0xad55a514,0xa534a534,0xa534a534,0xad559cf3,0xa534a534,0xa534a534,0x8c51a514,0x00000000,0x00000000,0x00000000,0xfff2f800,0xf800ffff,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483d3e2,0x3960e483,0xe540b420,0x3960b420,0xa2c1a2c1,0xe483e483,0xd3e2e529,0x8a6971e7,0x51652882,0xc38e9aaa,0x41044924,0x284161a6,0x92aa30c3,0x30c35820,0x90824020, +0x626862a9,0x41846a88,0x418449a5,0x49c53102,0x6ac95206,0x5a476268,0x62686268,0x72e93923,0x73697369,0x49c27369,0x7ac57ac5,0x736949c2,0x736949c2,0x7ac5fdeb,0x7ac57369,0x49c2feb3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7bef0000,0x0000738e,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b4682c5,0x93679367,0xa4089367,0x8b467a84,0x93677ac5,0xa4499367,0x72249367,0xbdd7c638,0xb5b6b596,0xb5b6b596,0xbdf7b5b6,0xb596ad75,0xb596ad75,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xfec0f800,0xf800fc60,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0x3960a2c1,0xb420e540,0xa2c13960,0xd3e2e483,0xe483a2c1,0xd3e2d3e2,0x8a695820,0x59a671e7,0x18415965,0x514530c3,0x604161c7,0x8a69b32c,0x8a6961a6,0x30415820, +0x6a883102,0x41843923,0x6a88836b,0x39236aa9,0x394341a5,0x3102836b,0x6a886268,0x6a8841a5,0x49c27369,0xc46849c2,0xc468feb3,0x736949c2,0x49c27ac5,0x73697369,0xc4687ac5,0x49c2ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x8b466244,0x8b468b46,0xa4089367,0x8b4682a5,0x8b468b46,0xa4088b46,0x6a038b46,0xc618ce59,0xc618b5b6,0xc618c618,0xc618c618,0xb5b6b596,0xb596b596,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000f800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xa2c1a2c1,0xa2c1e483,0x39603960,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0x8aaa4820,0x59a671c7,0x602069c7,0x30c38a69,0xdc10bb6d,0x92aa8249,0x59a692a8,0x28821041, +0x392341a5,0x62683923,0x51e63102,0x6a883123,0x41a53943,0x31035a47,0x72c96a88,0x41648bac,0x7ac57369,0xfeb37ac5,0xfeb3ffff,0x736949c2,0xffffc468,0x49c249c2,0xfdeb7369,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x8b467a84,0x93678b46,0xa4089367,0x8b4682c5,0x7ac58b46,0xa4488b46,0x72248b46,0xc638ce79,0xc638bdf7,0xc638c618,0xc618c618,0xb5b6b5b6,0xb596b5b6,0xbdf7b5b6,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483e483,0xd3e2d3e2,0xe483a2c1,0xe483d3e2,0xa2c1e483,0xe529e483,0xa2c1d3e2,0xc38ee530,0x59a68a87,0x8aaac38e,0x20418aaa,0x928a59a6,0xab0c9269,0xab6a4104,0x59a67861, +0x41a551e6,0x72ea6ac9,0x31023923,0x836b49a5,0x628841a5,0x7b0a5a67,0x4184834b,0x5a6751e6,0x73697369,0xc468fdeb,0xc468feb3,0x736949c2,0xc468fdeb,0x49c27ac5,0x73697369,0x49c2fdeb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x62446224,0x62446244,0x7ac56244,0x62446244,0x62246224,0x72a56224,0x51e37ac5,0xbdf7c638,0xbdd7bdd7,0xbdd7bdd7,0xbdd7b5b6,0xad75b596,0xad55ad55,0xad75ad55,0x9cf3ad75,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0xe483a2c1,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xd3e2a2c1,0xd3e2e483,0x41247228,0x59a61041,0x69e7aaeb,0xab8ba2eb,0x492430c3,0x38e32882,0xbb6d4924,0x59a68861, +0x39234184,0x31027b0a,0x62687b0a,0x5a473102,0x394341a5,0x49a549a5,0x41844184,0x93cd49c5,0x49c27369,0xfdeb7369,0x7ac57ac5,0x49c27369,0xfdeb7369,0x73697ac5,0x49c249c2,0x49c27369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x8b468b46,0x8b468b46,0x93679367,0x8b469367,0x93677ac5,0x6a039367,0xc638d69a,0xc638c638,0xc638c638,0xc638c638,0xbdf7c638,0xbdd7bdf7,0xb5b6b596,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xa2c1e529,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e529,0xd3e2d3e2,0x71e75986,0x28828a69,0x80614924,0x5820c38e,0x10412061,0x58207a08,0x59a62882,0x8a8a3841, +0x49a56288,0x31026268,0x62473923,0x5a473923,0x31025a47,0x3102834b,0x41644184,0x41645206,0x7ac57ac5,0x736949c2,0x73697ac5,0x7ac549c2,0x736949c2,0x49c27369,0xc468c468,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93878b46,0xa448a448,0xa408a408,0xa4088b46,0xa448a408,0xa448a408,0x6a039367,0xc638d69a,0xc638c638,0xce79ce79,0xce59ce79,0xce59c638,0xce59ce59,0xc618c618,0xa534b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529a2c1,0xe529a2c1,0xd3e2e483,0xd3e2a2c1,0xa2c1e483,0xe483e483,0xd3e2e483,0xa2c1a2c1,0xa2cbc38e,0x8a694020,0x49241841,0x8061c38e,0x58204924,0x582092aa,0x69646841,0xab0c6186, +0x52064184,0x62476ac9,0x62476aa9,0x51e67b0a,0x39233943,0x62686268,0x31023102,0x49c65a47,0xffff7ac5,0x49c2c468,0xfdeb7369,0xffffc468,0x736949c2,0x7ac5fdeb,0xfffffeb3,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x8b467a84,0x93678b46,0xa4489367,0x93677a84,0x93679367,0xa4499367,0x6a039367,0xc6188410,0xc618bdd7,0xc618c618,0xce59c618,0xc618bdd7,0xc618c618,0xc638bdf7,0xad55bdf7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xa2c1a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1a2c1,0xa2cbc38e,0x9a8aa2cb,0x71e7c42d,0x49245145,0x80614924,0xa2cbc38e,0x492471e7,0x8228aaeb, +0x62475a47,0x49c53943,0x41643943,0x31023923,0x49a541a5,0x628849a5,0x39234184,0x52063102,0x7ac5fdeb,0x73697ac5,0x73697369,0x7ac5fdeb,0x73697369,0xfdeb7369,0xc468fdeb,0x73697ac5,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000,0x7ac531a6,0x7ae56244,0x72a572a5,0x93667ae5,0x7ac56244,0x18c37ac5,0x936651c3,0x51e351c3,0xbdd74a69,0xbdd7b596,0xb596b596,0xb596b596,0xb596a534,0xb596ad75,0xb596bdd7,0x9cf3a514,0x00000000,0x49c46265,0x00000000,0x00000000,0x00000000,0x00000000,0x41834183,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x61a261a2,0x71e238c1,0x59825982,0x69c24921,0x41215982,0x69e24921,0x49415982,0x38e171e2,0x7aa67aa6,0x9b484142,0x7aa67aa6,0x9b4861e4,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x41429b48, +0x00000000,0x000005e2,0x00000000,0x07020000,0x00000340,0x06220000,0x00000000,0x00000000,0x00000000,0x14c23e60,0x000004a2,0x3d210000,0x05c20340,0x3cc20000,0x00000000,0x00000000,0x000004c2,0x02a06481,0x01c05c01,0x6d000000,0x53e209a0,0x64610280,0x04420000,0x00000000,0x0b603c02,0x12006481,0x1a606481,0x64810000,0x5c0111e0,0x5be222c0,0x5c010000,0x000001c0, +0x096063e1,0x09605bc2,0x11e06401,0x64010000,0x534200c0,0x53620980,0x53820000,0x00000980,0x01005321,0x00205321,0x00004ac1,0x42a10000,0x42810060,0x53420060,0x6c210000,0x000000e0,0x00805b61,0x008063a2,0x00c06382,0x63820000,0x42810000,0x63a20080,0x53010000,0x00000940,0x090052e1,0x00606ba1,0x00c052e1,0x52e10000,0x42410040,0x63620060,0x4aa10000,0x000000a0, +0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b467a84,0x93678b46,0xa4089367,0x936782c5,0x42088b46,0x18c32965,0x72247224,0xc638c618,0xc618bdd7,0xc638c618,0xce59c618,0xc618bdd7,0xb5b6bdd7,0xa534bdd7,0x9cf3a534,0x62650000,0x5a448b87,0x5a245a24,0x5a246a85,0x62656265,0x5a246265,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x494161a2,0x69e230c1,0x412169c2,0x412130c1,0x412169c2,0x516130c1,0x30c14121,0x598271e2,0x61e47aa6,0x9b484142,0x61e49b48,0x61e44142,0x61e49b48,0x7aa64142,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x05620000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006a2,0x00000000,0x3d810000,0x00000380,0x07220000,0x14620000,0x00000000,0x00000000,0x01e04502,0x02e03c42,0x5c210000,0x3ce20280,0x34020240,0x00000000,0x00000000,0x13c14da1,0x0b406481,0x02006cc1,0x64610000,0x75202b21,0x45610220,0x3c420000,0x00000240, +0x0a606401,0x226063e1,0x11e06c61,0x53620000,0x64010100,0x63e11a40,0x64210000,0x00000140,0x09805ba1,0x09804b01,0x01404ae1,0x53210000,0x53210100,0x6c010100,0x5b820000,0x00000100,0x11a05b42,0x00e05b41,0x09406382,0x4aa10000,0x5b410940,0x5b210000,0x6bc20000,0x00000920,0x09406ba1,0x19e05b21,0x00e06382,0x5b010000,0x5b2100a0,0x5b210080,0x63610000,0x00000060, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000,0x8b46aca9,0x82c56244,0x82c582c5,0x8b4682c5,0x82a582c5,0x7a8482a5,0x8b467a84,0x72248b46,0xc638c618,0xbdf7bdd7,0xc618c618,0xc618c618,0xbdd7bdf7,0xb596b5b6,0xb5b6b596,0xa514b5b6,0xa4090000,0x6a856265,0xac4a8b87,0x8b87ac4a,0xac4aac4a,0xa4098b87,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x59824941,0x51624921,0x41214122,0x61a24101,0x410161a2,0x516130c0,0x30c14121,0x59825982,0x7aa661e4,0x7aa661e4,0x61e45a05,0x9b4861e4,0x61e49b48,0x7aa64142,0x414261e4,0x7aa67aa6, +0x00000000,0x00000000,0x00000000,0x000005c2,0x00000000,0x00000000,0x00000000,0x00000000,0x05a20000,0x00000000,0x00000000,0x3dc10000,0x00001d63,0x00000000,0x00000642,0x00000000,0x00000000,0x1d023c62,0x00000502,0x3ce21462,0x04a20320,0x3ce20000,0x00000000,0x00000000,0x000005c1,0x13e14d81,0x02c03c82,0x7d600000,0x44a233e1,0x4e0002c0,0x04a10000,0x0b800000, +0x13c14cc2,0x2b2174c1,0x22a06c61,0x5ba10000,0x74a10980,0x6c412240,0x5bc20000,0x00000a20,0x1a206c01,0x1a006c21,0x226063c2,0x63a10000,0x5ba20140,0x74810140,0x63a10000,0x00003320,0x1a207421,0x11c06381,0x2a406be2,0x6bc20000,0x42610920,0x6bc20940,0x63c20000,0x00000920,0x09606be2,0x09007c61,0x09206381,0x63610000,0x63420900,0x5b420920,0x5b210000,0x00000920, +0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0xa4499367,0xa408a449,0xa408a449,0xa4088b46,0xa408a408,0x9387a448,0x72249367,0xc638c618,0xce79c638,0xce79ce79,0xce79ce79,0xce59c618,0xc638ce59,0xbdd7c618,0xa514b5b6,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x49a3a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x69c24121,0x41015161,0x61a228a0,0x41013901,0x51614101,0x69c24121,0x69e269c2,0x414261e4,0x9b4861e4,0x61e47aa6,0x9b484142,0x61e461e4,0x7aa661e4,0x9b4861e4,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07220000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006c1,0x06410000,0x45610000,0x00000b60,0x05620000,0x0b800000,0x00000000,0x00000000,0x02804e00,0x1c824521,0x7e000000,0x45010b60,0x456101c0,0x00000000,0x00000581, +0x0a605600,0x13c18560,0x018074e1,0x64010000,0x74a11200,0x4ce20a60,0x44a20000,0x00000220,0x13407481,0x33007481,0x00807cc1,0x63e10000,0x63e11a20,0x74811a00,0x8d600000,0x00002aa0,0x3b207c81,0x2a607441,0x19c084a1,0x63c20000,0x6bc211a0,0x63a219e0,0x63c20000,0x00003300,0x2a407401,0x19c06ba1,0x2a406bc2,0x6ba20000,0x6bc20900,0x6ba119c0,0x6bc20000,0x00002a60, +0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000,0x72a59be7,0x93877ac5,0x93669366,0x93879366,0x93877ac5,0x93879387,0x93669366,0x51e372a5,0xbdf7bdd7,0xce59c618,0xc638c638,0xc638c638,0xc638bdf7,0xc638c638,0xbdf7bdf7,0x9cf3b596,0x00000000,0x49a36265,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a24121,0x39015161,0x49413901,0x49412965,0x61a228a0,0x61a24101,0x30c14121,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x7aa661e4,0x7aa652aa,0x9b484142,0x9b4861e4,0x414261e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03800562,0x00000000,0x00000000,0x00000000,0x00000000,0x06020000,0x000014a2,0x00000000,0x45a10000,0x00000be1,0x00000000,0x000005a2,0x00000000,0x00000000,0x13c144e2,0x00000660,0x4da10280,0x042113a1,0x4dc10000,0x00000000,0x00000000, +0x000004a0,0x138055e1,0x0b004402,0x6c810000,0x4cc21a20,0x44a213a1,0x04600000,0x2d220000,0x13205d81,0x22608540,0x3ba15b41,0x74810000,0x74813361,0x7ca143e1,0x7ce10000,0x00001340,0x2ac09560,0x2aa084c1,0x2a407441,0x74410000,0x74612240,0x744119e0,0x8d400000,0x000032c0,0x32c08ca1,0x11807c41,0x438184a1,0x6ba20000,0x7c412200,0x6bc219a0,0x8cc10000,0x000032e0, +0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x000082a5,0x00000000,0xa4080000,0x00007a84,0x00000000,0xa4480000,0x6a038b46,0xc638c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa514bdf7,0x62650000,0x6265a409,0x5a245a24,0x62655a24,0x62656265,0x62656265,0x6265a409,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a261a2,0x39014941,0x492128a0,0x38e14921,0x598228a0,0x61a23901,0x412139e7,0x61e47aa6,0x9b489b48,0x61e47aa6,0x7aa64142,0x61e47aa6,0x9b484142,0x9b4861e4,0x61e46b6d, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005a2,0x00000000,0x00000000,0x00000000,0x00000000,0x06810000,0x00000000,0x00000000,0x05e20000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005c1,0x04c10000,0x4de11421,0x00000b40,0x05610000,0x14410000,0x00000000, +0x00000000,0x13c155a1,0x13404d41,0x74810000,0x55e11340,0x55a11340,0x00000000,0x00000700,0x1b805561,0x1b807cc1,0x24418dc0,0x8d800000,0x960043e1,0x5da112c0,0x5d810000,0x000012c0,0x3b218d20,0x11a084e1,0x32e084a1,0x84a10000,0x74612240,0x8d002ac0,0x8d200000,0x00003b21,0x2a409500,0x2a407401,0x4361a5c0,0x84810000,0x7c412a40,0x8cc119c0,0x95400000,0x00001160, +0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x00007a84,0x00000000,0xa4480000,0x00007a84,0x00000000,0xa4080000,0x6a038b46,0xc618c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x5a448b87,0xac4aac4a,0x8b878b87,0x8b878b87,0xa409a409,0x5a44ac4a,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c15982,0x410161a2,0x49413901,0x516238e1,0x38e14121,0x39015162,0x28a03901,0x516161a2,0x41427aa6,0x61e49b48,0x7aa661e4,0x9b4861e4,0x61e47aa6,0x61e49b48,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01c004e2,0x00000000,0x00000000,0x00000000,0x00000000,0x05210000,0x00000b60,0x06210000,0x4d810000,0x00001441,0x00000000,0x13e10620,0x00000000, +0x00000000,0x13c15600,0x00000560,0x55811bc1,0x05601bc1,0x55810000,0x00000000,0x00000000,0x00005da1,0x1bc15da1,0x1be15e60,0x96000000,0x55211a20,0x5e000a80,0x55210000,0x13400000,0x1b809580,0x3b817421,0x2a808d20,0x84a10000,0x8d2032e0,0x8d402ac0,0x95600000,0x000009c0,0x4bc184a1,0x3b2184a1,0x2a409da0,0x8ca10000,0x7c413b00,0x7c413b21,0x74010000,0x000019a0, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x000082c5,0x00000000,0xa4490000,0x000082c5,0x00000000,0xa4490000,0x6a039367,0xc638c618,0x0000c618,0x00000000,0xce590000,0x0000bdd7,0x00000000,0xc6380000,0xa514bdf7,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c05982,0x49415161,0x38e13901,0x516128a0,0x20a030e1,0x38e15162,0x28a03901,0x41215161,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142,0x414261e4,0x61e49b48,0x414261e4,0x61e47aa6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000422,0x00000000,0x00000000,0x00000000,0x00000000,0x05810000,0x00000000,0x00000000,0x06200000,0x00000000,0x00000000,0x000005e1,0x00000000, +0x00000000,0x000005c0,0x05c00000,0x56000b20,0x00000a60,0x05000000,0x1c210000,0x00000000,0x00000000,0x13005e00,0x24015e00,0x74810000,0x54e21ba1,0x5e201340,0x00000000,0x00005d81,0x000065a1,0x43e195c0,0x2ac084e1,0x8d400000,0x8d203b61,0x95603b81,0x4c420000,0x1b800000,0x32e0a5e0,0x43819d60,0x43818ca1,0x95400000,0x9d602a60,0x7c4132e0,0x7c410000,0x00003b00, +0x00000000,0x00000000,0x00000000,0xfff20000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x62246224,0x62246224,0x7ac56224,0x62446244,0x62246244,0x72a56224,0x51e37ac5,0xbdf7bdd7,0xb5b6b5b6,0xb596b596,0xbdd7b596,0xb5b6b5b6,0xb5b6b5b6,0xbdd7b5b6,0xa514bdd7,0x00000000,0x41835a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c069c2,0x49415161,0x28a03901,0x514128a0,0x208030c1,0x49214121,0x39013901,0x516161a2,0x41429b48,0x7aa67aa6,0x414261e4,0x9b484142,0x414261e4,0x7aa67aa6,0x61e461e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1c8205e1,0x00000000,0x00000000,0x00000000,0x00000000, +0x06000000,0x00001c41,0x05200000,0x4cc20000,0x00000b20,0x00000000,0x24a20600,0x00000000,0x00000000,0x1b805541,0x00006620,0x5de12401,0x5d810ac0,0x55010000,0x00000000,0x00000000,0x00000000,0x32c09e00,0x2c828d00,0x95a00000,0x95c032e0,0x8d402c82,0x00000000,0x000065a1,0x42009540,0x43a1a5c0,0x32e0a5c0,0x8cc10000,0x954019a0,0xa5c03b20,0x95400000,0x00002140, +0x00000000,0x00000000,0x00000000,0xfec00000,0x0000fc60,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0xa449a448,0xa408a449,0x8b468b46,0x9387a408,0xa449a449,0x72249367,0xc638c618,0xc618c638,0xce59ce59,0xce59ce79,0xc618c618,0xc638ce59,0xce59ce79,0xa534c618,0x62650000,0x6265ac4a,0x5a245a24,0x62655a24,0x62656265,0x5a245a24,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x516169c2,0x494161a2,0x28a03901,0x412128a0,0x20a030e1,0x49215162,0x41014941,0x516161a2,0x7aa69b48,0x7aa69b48,0x414261e4,0x7aa64142,0x414261e4,0x7aa69b48,0x61e47aa6,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02400660,0x00000000,0x00000000,0x00000000,0x00000000, +0x06200000,0x00000000,0x00000000,0x05400000,0x00000000,0x00000000,0x00000680,0x00000000,0x00000000,0x00005dc1,0x5e400000,0x55210a80,0x00001300,0x55610000,0x00000000,0x00000000,0x00000000,0x1b008d20,0x00006e80,0x8d401b40,0x6e803b81,0x8d200000,0x00000000,0x00000000,0x00208be2,0x32e0a5e0,0x31809540,0x7c410000,0x9d602a60,0x7c613180,0x7b420000,0x39c00000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x00006244,0x00000000,0xa4080000,0x000082a5,0x00000000,0xa4080000,0x6a038b46,0xc6188410,0x0000b5b6,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x62656265,0xac4aac4a,0x8b87ac4a,0x8b878b87,0xac4a6265,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41214921,0x410161a2,0x39013901,0x516228a0,0x38e130e1,0x28a05162,0x41014941,0x69c261a2,0x61e461e4,0x61e49b48,0x61e461e4,0x9b484142,0x61e461e4,0x41429b48,0x61e47aa6,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000481,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x0b200640,0x00000000,0x00000000,0x00000000,0x00000000,0x5e400000,0x00001320,0x54e20000,0x55410000,0x000009c0,0x00000000,0x1be15e20,0x00000000,0x00000000,0x00005d41,0x65810000,0x95c023e1,0x00004c02,0x54a20000,0x1b000000,0x00000000,0x00005a82,0x43419520,0x00008382,0x8cc14a20,0x838232c0,0xa5c02940,0x00000000,0x18e08ba2, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x7a8431a6,0x00007a84,0x00000000,0xa4080000,0x000082c5,0x00000000,0xa4480000,0x72248b46,0xbdf74a69,0x0000bdd7,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xad55c618,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6265a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x51615161,0x39013901,0x49215982,0x28a04921,0x29655982,0x41014941,0x69c230c0,0x61e47aa6,0x7aa67aa6,0x61e461e4,0x7aa69b48,0x41427aa6,0x52aa9b48,0x61e47aa6,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x1c610520,0x00000000,0x00000000,0x00000000,0x00000000,0x55610000,0x00000000,0x00000000,0x4c420000,0x00000000,0x00000000,0x00005e00,0x00000000,0x65a10000,0x00001280,0x66000000,0x9e200000,0x00001b20,0x00000000,0x1b605d41,0x00000000,0x00000000,0x42209d80,0x93e10000,0x95202940,0x7b4232c0,0x95000000,0x00000000,0x00007302, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x00006224,0x00000000,0x93870000,0x00006244,0x00000000,0x93660000,0x51e37ac5,0xbdf7bdd7,0x0000b5b6,0x00000000,0xc6380000,0x0000b5b6,0x00000000,0xc6180000,0xa514bdf7,0x00000000,0x49a35a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x318669c2,0x39015161,0x59823901,0x28a04941,0x49414941,0x41214101,0x69c230c1,0x61e47aa6,0x52aa9b48,0x61e47aa6,0x9b4861e4,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000640,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13405e40,0x00000000,0x00000000,0x00000000,0x00000000,0x5ce20000,0x00000000,0x00000000,0x5d610000,0x00000000,0x00000000,0x000065a1,0x00000000,0x00000000,0x000093c1,0x7b420000,0x95200000,0x000039a0,0x93e10000,0x39a00000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7a847a84,0x7a847a84,0x8b4682a5,0x82c582c5,0x82a582c5,0x93676244,0x6a039367,0xc638c618,0xbdd7bdd7,0xbdd7bdd7,0xc618bdf7,0xbdf7bdf7,0xbdf7bdf7,0xc618b5b6,0xa534bdf7,0x62650000,0x5a448b87,0x62656265,0x62656265,0x62656265,0x5a245a24,0x6a856265,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c171e2,0x69c269c2,0x41015161,0x494128a0,0x28a04941,0x410161a2,0x41214121,0x59824121,0x41429b48,0x9b489b48,0x61e47aa6,0x7aa64142,0x41427aa6,0x61e49b48,0x61e461e4,0x7aa661e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1b605d81,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b6184c1,0x00000000,0x00000000,0x00000000,0x00000000,0x7b620000,0x00002120,0x00000000,0x83a20000,0x00000000,0x00000000,0x294083a2,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7ac58b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x6a039367,0xc618bdf7,0xbdd7bdf7,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xa534c618,0xa4090000,0x49a3a409,0x8b878b87,0xa409a409,0xac4aac4a,0xa409ac4a,0x62658b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x51625982,0x41215161,0x61a230c0,0x30c04101,0x41215161,0x41214121,0x71e230c1,0x414261e4,0x7aa67aa6,0x61e47aa6,0x9b484142,0x414261e4,0x61e47aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005da1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x240195a0,0x00000000,0x00000000,0x00000000,0x00000000,0x73220000,0x00000000,0x00000000,0x10c08ba2,0x00000000,0x00000000,0x00007b42,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac68b4aa,0xac68ac68,0xb4aaac68,0xaca9b4aa,0xb4aaac68,0xb4aab4aa,0xb4aab4aa,0x8b46b4aa,0xa514a534,0xad75a534,0xbdf7b5b6,0xbdf7c618,0xbdf7bdf7,0xc618c618,0xc638c638,0xbdd7c638,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x49417202,0x69e271e2,0x41214121,0x69c269c2,0x30c04121,0x412169c2,0x69e25982,0x71e24921,0x61e49b48,0x9b489b48,0x61e461e4,0x9b489b48,0x414261e4,0x61e49b48,0x9b487aa6,0x9b4861e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006620,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006b02,0x00000000,0x00000000,0x00000000,0x00000000, +0xce79c618,0xe71cf79e,0xd6bace59,0xffdff79e,0xd69adedb,0xf79ee73c,0xce79ce59,0xf79eef7d,0x1aaf220a,0x1aaf220a,0x2a4b1aaf,0x1aaf1aaf,0x1aaf22d0,0x1aaf1168,0x328c1aaf,0x2a4b1aaf,0xffffffff,0xefffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0xffffefff,0xefffe79e,0xffffe79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x142413e4,0x140313a3,0x09c20b63,0x14030a02,0x0b8313e4,0x13e31403,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5569d15,0x94d49d15,0xa536add9,0xa55794f4,0xad779d36,0x9d159d15,0x9d369d15,0x94f49d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bef7be,0xdedbdefb,0xe71cf79e,0xef5de73c,0xef7dffff,0xd69ad69a,0xe73ce71c,0xce59d6ba,0x00000a0d,0x000022f0,0x1aaf0000,0x00000000,0x00000000,0x000022d0,0x124e0000,0x1aaf0000,0xefffffff,0xe79effff,0xe79ee79e,0xffffe79e,0xffffffff,0xffffffff,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x0b030000,0x01410000,0x0b030b03,0x0b030000,0x00000141,0x0b030b03,0x01410000,0x00000b03,0x0a020000,0x146413e4,0x14240ba3,0x00000ac2,0x13e40a02,0x13a31464,0x13a31424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d16a536,0x9d159d15,0x9d16a536,0xa556a536,0xa5368cb3,0x9d1594b4,0x9cf5a557,0xa5369d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73ce73c,0xffffffdf,0xef5df79e,0xd6bae71c,0xdedbbdd7,0xf79ee73c,0xdedbdedb,0xfffff79e,0x126e220a,0x1aaf220a,0x220a1aaf,0x1aaf1aaf,0x22d01aaf,0x126e220a,0x19a81aaf,0x220a1aaf,0xefffefff,0xe79eefff,0xefffefff,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f, +0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x0b030000,0x14030aa2,0x0b431444,0x0ba30aa2,0x0aa21444,0x14241403,0x0aa20aa2,0x00000b03,0x01410000,0x13e30b83,0x14241403,0x0b030bc3,0x0b630141,0x13a313e4,0x14641464,0x00000b03,0x0b030000,0xdef3def3,0xdef3def3,0xded3def3,0xded3def3,0xdef3def3,0xdef3def3,0x00000b03, +0xa557adb9,0x8c939cf5,0x9d159d15,0xad779d15,0xad77a536,0xa536a557,0x9d15a556,0x9d16a557,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0xaece7605,0x0000854b,0x72873165,0x498492c7,0x49849b29,0x39439b29,0x41649b29,0x394392e8,0x394382a7,0x31657287,0x72873165,0x9b2992c7,0x9b299b29,0x72879b29,0x92e87287,0x82a792e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad6ba,0xbdf7bdd7,0xf7bef79e,0xb5b6c638,0xef5ddefb,0xe73ce71c,0xffffffff,0xc618e73c,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xffffefff,0xe79eefff,0xe79ee79e,0xffffefff,0xffffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f, +0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x0b030000,0x14031444,0x00000b43,0x14241403,0x0b431444,0x0b431403,0x14241464,0x00000b03,0x00000000,0x0b830b43,0x146413e4,0x0b030b83,0x0ae20000,0x13a31464,0x0ba313e3,0x00000b03,0x0b030000,0xd6b3def3,0xd6d4d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6d4d6d4,0xdef3d6d4,0x00000b03, +0xa536ad77,0xad779d15,0x9d15a536,0x94d4a556,0xa53694f4,0x9d159d15,0xa537a536,0x9d159d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x51849b29,0x51849b29,0x518482a7,0x518482a7,0x59a492e8,0x31658ae8,0x8ae83165,0x9b299b29,0x82a79b29,0x18a27287,0x728718a2,0x82a782a7,0x92c792e8,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce79ce59,0xe71ce71c,0xd6bad69a,0xe73cef5d,0xce79ce59,0xe73cd69a,0xbdd7bdd7,0xe73cd6ba,0x00000a2d,0x000022d0,0x2b310000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xe79effff,0xefffe79e,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755fffff,0x755f755f, +0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x0b030000,0x14031444,0x0b431444,0x14241403,0x00000b43,0x00000b43,0x14030b43,0x00000000,0x0a020000,0x0ba31424,0x146413e4,0x0b030ba3,0x13e30a02,0x13a31464,0x0b031464,0x000009c2,0x0b030000,0xd6b3def3,0xdef4def4,0xdef3def3,0xdef4def4,0xdef4def4,0xdef3d6b3,0x00000b03, +0xa5379cf5,0x94d5a556,0x9d15a536,0x9d15a536,0xa536a536,0xadb89d35,0x9d159d15,0x94b49d15,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece7605,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c84143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x31658287,0x82873165,0x92c792c7,0x92c892c8,0x18a27287,0x728718a2,0x92c792c7,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79ef79e,0xef5def5d,0xf79effff,0xe73cef5d,0xef7df79e,0xe71cd6ba,0xdefbe73c,0xdefbce59,0x1aaf0947,0x1aaf1188,0x21e91aaf,0x1a8f0a2d,0x1a8f2b52,0x1aaf220a,0x220a124e,0x11882b11,0xffffffff,0xe79effff,0xefffefff,0xefffefff,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f, +0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x00000000,0x14030aa2,0x14031424,0x14441403,0x0b431403,0x0b4313e3,0x14031444,0x00000b03,0x0a020000,0x0ba31424,0x14641403,0x09c20b02,0x13e30a02,0x0ba31464,0x0aa21464,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6d4,0x00000b03, +0xa536a536,0xa5378c73,0xa55794f4,0x9d169d35,0xad77ad77,0x9d15a556,0x9d159d36,0x9d369d15,0xaece0000,0x0000854b,0xe77b7605,0x0000960c,0xaece9766,0x0000854b,0x854b0000,0x00006c28,0x82a83165,0x92e859c5,0x9b2959e5,0x82a75184,0x82a75184,0x92e859c5,0x92e859c5,0x316582a8,0x82a83165,0x92e892e8,0x9b299b29,0x18a27287,0x728718a2,0x92e892e8,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbd69a,0xef7dd6ba,0xbdf7bdd7,0xe71cdedb,0xe73cce79,0xffffffff,0xe73cdedb,0xffdfffff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x0000126e,0x126e0000,0x1aaf0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xe79effff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f, +0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x0b030000,0x14031444,0x14240b43,0x00000b43,0x14030b43,0x14241403,0x14030b43,0x00000b03,0x0a020000,0x13a31464,0x146413e4,0x00000aa2,0x0b830a02,0x0ba31464,0x0ba31464,0x00000b03,0x0b030000,0xd6b3ded3,0xdef3def3,0xd6b3d6b3,0xd6b3d6b3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x8c9394d4,0x9d35a536,0xa5369d35,0x9d15a557,0xa5369d36,0xad77a536,0xa5369d36,0xa57694d4,0x854b7605,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x72873165,0x394382a7,0x498482a7,0x416492e8,0x394382a7,0x414382a7,0x39439b29,0x31657287,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x82a79b29,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cef5d,0xd69ac618,0xe73cf79e,0xd6bace79,0xd6bad69a,0xc618d69a,0xdedbdefb,0xc638c638,0x000022f0,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xefffffff,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffffff,0xe79effff,0xffffffff,0xe79eefff,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x0b030000,0x0b431444,0x0b430000,0x0b4313e3,0x14031403,0x0b431403,0x0b430000,0x00000000,0x0a020000,0x0ba31464,0x0ba31403,0x0b031403,0x0b230141,0x13a31444,0x0ba31403,0x00000b03,0x0b030000,0xd6d4def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa536a536,0xa557a557,0x9d15a536,0xa536a557,0xadd9ad77,0xa53694d4,0x9d169d15,0x9d369d15,0xe77b9766,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x59a49b29,0x59e582a7,0x59c59b29,0x59c592e8,0x59e59b29,0x31658ae8,0x8ae83165,0x9b299b29,0x92c79b29,0x18a27287,0x728718a2,0x92e892e8,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad69a,0xffffffff,0xe73cef5d,0xf79ef79e,0xd69ace59,0xf79eef5d,0xe73ce73c,0xf79ef79e,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x22d00000,0x124e0000,0xffffffff,0xefffefff,0xefffefff,0xe79eefff,0xffffffff,0xe79ee79e,0xefffffff,0xe79eefff,0x755f755f,0x755f8dff,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x00000000,0x14030aa2,0x14840b43,0x14031444,0x0b431444,0x14241403,0x14030b43,0x00000141,0x0a020000,0x13a31464,0x13a31403,0x0b031464,0x0a820000,0x0bc31424,0x0b221424,0x000009c2,0x0b030000,0xd6b3def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef3def3,0xdef3d6b3,0x00000b03, +0x9d159d36,0x9d35a557,0x9d159d36,0xadb7a556,0x9cf5a536,0x9d159d15,0xa536a536,0xa5579d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x82873165,0x92c84143,0x92c84143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c892c8,0x92c892c8,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xffffffff,0xef5def7d,0xdefbdefb,0xe71cdedb,0xffffef7d,0xdedbe73c,0xffffffff,0xe71cef5d,0x00001aaf,0x0000020d,0x1a8f0000,0x00000000,0x00000000,0x00001aaf,0x01ab0000,0x1aaf0000,0xe79effff,0xe79ee79e,0xefffffff,0xffffe79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x01410000,0x14840ba3,0x14441403,0x14031424,0x00000b43,0x140313e3,0x14031403,0x00000b03,0x00000000,0x0bc313a3,0x13e31403,0x0b0313e4,0x13a30a02,0x13e31424,0x0aa21424,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xd6d4d6b3,0xd6b3d6b3,0xdef3def3,0xdef3d6b3,0x00000b03, +0xa53694d4,0x9d369cf5,0xa55694d4,0x9d159d15,0x9d159d15,0xadb8a557,0xa557a536,0x9d16a536,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x9766854b,0x8ae83165,0x92e859e5,0x9b2959e5,0x82a759e5,0x82a75184,0x9b2959a4,0x9b2959e5,0x31658ae8,0x8ae83165,0x92e89b29,0x9b299b29,0x18a27287,0x728718a2,0x9b2992c7,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdd7c618,0xf79ece79,0xb5b6ce79,0xd69ace59,0xb5b6ce79,0xd6bad69a,0xd69ac618,0xd6bace59,0x1aaf220a,0x22d0220a,0x326c1aaf,0x1aaf1aaf,0x22f01aaf,0x22f0220a,0x220a1aaf,0x220a1aaf,0xefffefff,0xefffefff,0xffffe79e,0xffffffff,0xefffe79e,0xe79ee79e,0xefffefff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f8dff,0x755f755f, +0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x0b030000,0x0b431403,0x0b430000,0x140313e3,0x140313e3,0x14241444,0x0aa21444,0x00000000,0x0a020000,0x14030b43,0x13e413e4,0x0b0313e4,0x13a30a02,0x14441403,0x0ba31424,0x00000b03,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa5369cf5,0xadda9d15,0xa5769d15,0xa536a536,0xad779d15,0x94d4a536,0x9d159d15,0x94d49d36,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0x72873165,0x416492c7,0x416492e8,0x39439b29,0x416492e8,0x416492e8,0x394382a7,0x31657287,0x72873165,0x92e892c7,0x92e892e8,0x18a27287,0x728718a2,0x92e892e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbe73c,0xdefbce79,0xef5def5d,0xb5b6bdf7,0xe71cd69a,0xc638d69a,0xef5def5d,0xbdf7ce59,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x0a0d0000,0xffffffff,0xefffefff,0xffffefff,0xffffe79e,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0xffff755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x8dff755f,0x755f755f, +0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5,0x01410000,0x14031424,0x14440b43,0x0b431444,0x14031444,0x0b431444,0x14031444,0x00000b03,0x0a020000,0x14030ba3,0x142413e4,0x0b031403,0x0b230141,0x14641403,0x13a31464,0x00000b03,0x0b030000,0xd6d4def3,0xdef4def3,0xdef4def4,0xdef4def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x9d15a556,0x9d15a557,0xa557a557,0xa557a537,0x9cf5a557,0xa5579d15,0x94d49d16,0x94f5a536,0xaece0000,0x0000854b,0xe77b0000,0x7605960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x72873165,0x518482a7,0x59e582a7,0x51849b29,0x51849b29,0x59a482a7,0x59c592e8,0x316582a8,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69adefb,0xf79eef5d,0xd6bad6ba,0xf79edefb,0xdedbce79,0xf79ef79e,0xd69adefb,0xf79effff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x000022f0,0x1aaf0000,0x22d00000,0xe79effff,0xe79ee79e,0xffffffff,0xffffe79e,0xefffffff,0xe79eefff,0xffffffff,0xe79eefff,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff, +0x6b6d59e5,0x59e559e5,0x59e5ffff,0x59e559e5,0x59e5ffff,0x59e5efff,0x59e57aa7,0x7aa759e5,0x00000000,0x14a40aa2,0x14241403,0x00000b43,0x14030b43,0x00000b43,0x14030b43,0x00000b03,0x01410000,0x13e30b23,0x14240ba3,0x0b0313a3,0x0aa20000,0x146413e4,0x0ba31464,0x00000b03,0x0b030000,0xd6b3def3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xdef3d6d4,0x00000b03, +0x9d159cf5,0xa5369d15,0xa5369d15,0x9d159d15,0x9d159d15,0xa5569d35,0x9d359d36,0x94d49d36,0xaece0000,0x7605854b,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c792c8,0x92c792c7,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79eef7d,0xdedbd6ba,0xf79ef7be,0xd6bae71c,0xf79eef5d,0xe73ce73c,0xffffffdf,0xe73cef5d,0x1aaf19a9,0x1aaf220a,0x3acd128f,0x1aaf1a8f,0x1aaf124e,0x1a8f11a8,0x21ea1aaf,0x220a01cc,0xffffefff,0xe79eefff,0xefffe79e,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f755f,0xffff755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5efff,0xe79eefff,0x59e5e79e,0x59e5efff,0xefffffff,0xe79eefff,0xffff59e5,0x59e5efff,0x0b030000,0x0aa21424,0x13e31403,0x0aa213e3,0x14031464,0x0b431444,0x14031424,0x00000b03,0x00000000,0x13e30b43,0x14640ba3,0x09c20b03,0x13a30a02,0x142413e4,0x0ac21424,0x00000000,0x0b030000,0xded3def3,0xdef3def3,0xdef3def3,0xdef3ded3,0xdef3def3,0xdef3def4,0x00000b03, +0xad77a536,0x9d15ad98,0x9d159d15,0x9d369d36,0xa556a536,0xa557a557,0x9d1594f4,0xad989d15,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x854b0000,0x00006c28,0x8ae83165,0x82a75184,0x82a75184,0x92e859c5,0x9b2959e5,0x92e859e5,0x9b2959a4,0x31658ae8,0x8ae83165,0x82a782a7,0x82a782a7,0x728792e8,0x9b297287,0x92e89b29,0x9b2992c7,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cdefb,0xffffffdf,0xef5def7d,0xd6badedb,0xc618ce59,0xd6bad69a,0xc618b596,0xdedbd69a,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x126e0000,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0x59e5efff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x0b030000,0x00000b03,0x0b030141,0x00000141,0x0b030b03,0x00000b03,0x0b030141,0x00000b03,0x0a020000,0x140313e3,0x14640b83,0x00000aa2,0x13a30a02,0x146413e4,0x14031424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d35a536,0xa557a536,0x9d1594b4,0x9d159d15,0xa55794d4,0xa536add9,0x9d359d15,0xa5769d15,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ace59,0xce59c638,0xef5ddefb,0xd69ace79,0xef5de73c,0xce59bdf7,0xe71ce71c,0xc618ce59,0x1aaf21ea,0x1aaf220a,0x2a6b0a2d,0x01cc22f0,0x1aaf128f,0x1aaf220a,0x3aed22d0,0x220a1aaf,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x14031403,0x14031464,0x0b031464,0x13e40a02,0x142413e4,0x14031424,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5368452,0x9d36a536,0x9d369d15,0x9d359d15,0xa536a556,0x9d159d15,0x9d159d15,0x9d3594f5,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0xbde6e70b,0xce68b5a5,0xce68b5a5,0xce68d6a9,0xef4affed,0xd689deea,0xce68e729,0xce68ce68,0xb6bbc7bf,0xb6bbb6bb,0xb6bbb6bb,0x00000000,0xb6bbb6bb,0xb6bb0000,0xb6bbb6bb,0xc7bfb6bb,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef, +0x0000a514,0x00000000,0x9cd30000,0x528a0000,0xad75ad55,0x0000528a,0x8c710000,0xad7552aa,0x2965a514,0x29652965,0x9cd32965,0x528a2965,0xad75ad55,0x2965528a,0x8c712965,0xad7552aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6, +0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6,0xdedb8410,0xf8003186,0xf800fd00,0xffe0fd00,0xfd00f800,0xfd00ffe0,0xef5df800,0x31869cd3,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc627ce68,0xef6cbdc6,0xb5a5e729,0xce68deea,0x63006300,0xce48e729,0xe7296300,0xc627ce68,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae, +0x0000632c,0x5acb0000,0x84305aeb,0x00000000,0x632c0000,0x94b2528a,0xb5960000,0x5acb9492,0x2965632c,0x5acb2965,0x84305aeb,0x29652965,0x632c2965,0x94b2528a,0xb5962965,0x5acb9492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc,0xe71c8c51,0xfd0039e7,0xffe0ffe0,0xfd00ffe0,0xffe0fd00,0xfd00ffe0,0xef7dfd00,0x2965ad55,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729e729,0x6b40d689,0xe7296300,0x39e0c627,0x63006300,0xd6895280,0xce68ce68,0xce68ce68,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x0000c7bf,0x00000000,0xb6bb0000,0x8c717bef,0xc73f73ae,0x7bef5f7e,0x73ae7bef,0x5f7e73ae,0x73ae5f7e,0x7bef7bef,0x8c718c71,0x8c717bef,0xf80073ae,0x7bef8800,0x73ae7bef,0x880073ae,0x73ae8800,0x7bef7bef,0x8c718c71, +0x00009492,0x94925acb,0xa5340000,0x00008c51,0x528a0000,0x94b20000,0xad754a69,0x0000ad55,0x29659492,0x94925acb,0xa5342965,0x29658c51,0x528a2965,0x94b22965,0xad754a69,0x2965ad55,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x9c299c29,0x18a19c29, +0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x62869c29,0x18a16286,0xdefb8c51,0xf80039e7,0xfd00fd00,0xf800fd00,0xfd00ffe0,0xf800f800,0xef7df800,0x3186a514,0x630c3186,0x9492738e,0x94928c71,0x5acb6b4d,0x9cf36b6d,0x7bcf8c51,0x7bcf8410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf78b6300,0x39c0ce48,0xd68918e0,0xc627ce68,0x294039c0,0xce68d6a9,0xad64d6a9,0xe7296300,0xc7bf0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xb6bb0000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xffffc73f,0x767fc73f,0x5f7e767f,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xf800a820,0x9000a820,0x88009000,0x7bef73ae, +0x00008c51,0x9cd3b596,0xad750000,0x0000b596,0x8c510000,0x94b20000,0x00009492,0xa5344a69,0x29658c51,0x9cd3b596,0xad752965,0x2965b596,0x8c512965,0x94b22965,0x29659492,0xa5344a69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0x72e79b47,0x18a1bccc, +0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0xffff9b47,0x18a172e7,0xc6188c51,0x39e7e71c,0xc800c800,0xc800fd00,0xf800fd00,0xc800c800,0xef7d4208,0x2965ad55,0x5acb2945,0x5acb5acb,0x5acb5acb,0x7bcf6b6d,0x5acb630c,0x8c519492,0x7bcf7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a818e0,0xce68ce68,0xce68ce68,0xd6a9d6a7,0xce68ce68,0x1080ce68,0xce68ce68,0xce68e729,0x0000ffff,0x00000000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x0000ffff,0xb6bb0000,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xc73f7bef,0x8c715f7e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xf8007bef,0x8c718800,0x6b4d8c71, +0x0000ad75,0xb5b6ad75,0x00000000,0x00000000,0x9cd3ad75,0xad550000,0x00008430,0xad55528a,0x2965ad75,0xb5b6ad75,0x29652965,0x29652965,0x9cd3ad75,0xad552965,0x29658430,0xad55528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0x6aa618a1,0x72e772e7,0x6aa66aa6,0x10616aa6,0x72e718a1,0x72e772e7,0x6aa641a4,0x18a16aa6, +0x6aa618a1,0x72e772e7,0x41a341a3,0x10616aa6,0x72e718a1,0x72e772e7,0xb5b62902,0x18a141a3,0xad554a49,0xdefbd6ba,0x39c739e7,0xc800f800,0xc800f800,0x39e739e7,0xd6badefb,0x3186a534,0x738e39c7,0x7bcf8c51,0x5acb738e,0x7bcf7bcf,0x7bcf8410,0x632c5acb,0x6b4d8c71,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a9ce68,0xe729ce68,0xc627ce68,0xd68918c0,0xdeeaef6c,0xe729ef4a,0xffedce68,0xce4652a0,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x7bef7bef,0x73ae8c71,0x8c71767f,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c719000,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef, +0x00005aeb,0x00000000,0x4a490000,0x00005acb,0xad55ad55,0x00000000,0x9cd35acb,0x00000000,0x29655aeb,0x29652965,0x4a492965,0x29655acb,0xad55ad55,0x29652965,0x9cd35acb,0x29652965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xb48b18a1,0xb48bb48b,0xbcccbccc,0x18a19c29,0x9c292102,0xb48bb48b,0xb48b9b47,0x18a1b48b, +0xb48b18a1,0x72c772c7,0x72e7b5b6,0x18a19c29,0x9c292102,0xb48bb48b,0xb5b6dedb,0x18a172c7,0x7bcf4a49,0xdedbce59,0xe71cef7d,0x42084208,0x420839e7,0xef7de71c,0xc638d69a,0x31867bcf,0x528a2965,0x7bcf73ae,0x52aa7bcf,0x84109492,0x7bcf7bcf,0x5acb7bef,0x6b4d6b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x39c0ce68,0xce68ce68,0xd689deea,0x6300ce68,0x63005280,0x39c0e729,0x6b416b41,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xc73f73ae,0x5f7e5f7e,0x73ae5f7e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xa82073ae,0x88008800,0x73ae8800,0x73ae73ae,0x7bef8c71, +0x4a698c71,0x5acb0000,0x00008c71,0x00009cd3,0x000052aa,0x000094b2,0xad7552aa,0x00009492,0x4a698c71,0x5acb2965,0x29658c71,0x29659cd3,0x296552aa,0x296594b2,0xad7552aa,0x29659492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x9c2918a1,0xb5b69c29,0xb5b66286,0x290272c7,0x9c292102,0x72e79c29,0x9c29bccc,0x18a19c29, +0x9c2918a1,0xdedbb5b6,0x72e7b5b6,0x2902b48b,0x9c292102,0x72e79c29,0xb5b6ffff,0x18a16286,0x8c714a49,0xdedbc638,0xe73cdedb,0xf79ef79e,0xf79ef79e,0xdedbe73c,0xc638dedb,0x39e78c71,0x528a2945,0x94929492,0x5acb7bef,0x738e9492,0x841094b2,0x6b4d8410,0x94b26b4d,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729ce68,0xd689dec8,0xce68d689,0x39c0c607,0x39c0e729,0x39c039c0,0xce68b5a5,0xce6839c0,0xc7bfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0xc73f7bef,0x6b4d767f,0x73ae8c71,0x7bef7bef,0xc73fffff,0x8c718c71,0x8c718c71,0x8c718c71,0xf8007bef,0x6b4d9000,0x73ae8c71,0x7bef7bef,0xa820f800,0x8c718c71,0x8c718c71,0x8c718c71, +0x8c71bdd7,0x9cd30000,0x52aa94b2,0x949294b2,0x94b20000,0x00009492,0xbdd70000,0x52aa9cf3,0x8c71bdd7,0x9cd32965,0x52aa94b2,0x949294b2,0x94b22965,0x29659492,0xbdd72965,0x52aa9cf3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xbccc18a1,0xdedbbccc,0xdedb72e7,0x29226286,0xb48b2922,0xb48bb48b,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0x72e7b5b6,0x29229c29,0xb48b2922,0x72c7b48b,0xb5b6dedb,0x18a172e7,0x42282965,0x84107bcf,0x8c715aeb,0x94b28c71,0x94929492,0x4a698c71,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c51738e,0x738ea514,0x94b26b6d,0x84309492,0x632c738e,0x4a495aeb,0x39c77bcf,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b40bde6,0xd689e729,0xdecae729,0xce48c607,0xce68ce68,0xb585d6a9,0xce689ce2,0xce68deca,0x0000ffff,0x0000c7bf,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef, +0xb5b6a514,0xa5340000,0x5acbb5b6,0x9492ad75,0xad550000,0x528abdd7,0x528a0000,0x630c0000,0xb5b6a514,0xa5342965,0x5acbb5b6,0x9492ad75,0xad552965,0x528abdd7,0x528a2965,0x630c2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x72e718a1,0x6aa66aa6,0x6aa6dedb,0x18a16aa6,0x72e718a1,0x41a46aa6,0x6aa66aa6,0x18a172e7, +0x72e718a1,0x28e16aa6,0x6aa66aa6,0x18a16aa6,0x72e718a1,0xffff6aa6,0xb5b6dedb,0x18a141c4,0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0deea,0xef4cce68,0xce686300,0xce68ce68,0xd689e729,0xb5a5ce68,0xe729ffcc,0xce68ce68,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x8c718c71,0xffff7bef,0x767fc73f,0x5f7e767f,0x7bef7bef,0x5f7e767f,0x8c718c71,0x6b4d8c71,0x8c718c71,0xb8207bef,0x9000a820,0x88009000,0x7bef7bef,0x88009000,0x8c718c71,0x6b4d8c71, +0x94b2528a,0x528a0000,0x00005acb,0xa534a514,0x00000000,0x0000632c,0x528a0000,0x5aeb5acb,0x94b2528a,0x528a2965,0x29655acb,0xa534a514,0x29652965,0x2965632c,0x528a2965,0x5aeb5acb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x6a8572c6,0x6a856a85,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xbccc18a1,0x28e1bccc,0x28e172e7,0x210272e7,0x9c292102,0xbccc49e4,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0xbcccbccc,0x2102bccc,0x9c292102,0xdedb49e4,0xb5b6dedb,0x18a172e7,0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdc6ce68,0xce68ce68,0xbde6e729,0xd689ce68,0xce682120,0xce68d6a9,0xdeca6300,0xce68d6a9,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000c7bf,0x00000000,0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aec73f,0x6b4d7bef,0xc73fffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xf8007bef,0x73aea820,0x6b4d7bef,0xa820f800,0x73ae73ae,0x7bef6b4d, +0xb5960000,0x00008430,0x8c714a69,0x00005aeb,0x9cd3528a,0x52aa0000,0x5acb0000,0x84300000,0xb5962965,0x29658430,0x8c714a69,0x29655aeb,0x9cd3528a,0x52aa2965,0x5acb2965,0x84302965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x31643184,0x31843184,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x9c2918a1,0x28e172e7,0x28e1b48b,0x2102bccc,0xb48b2902,0xb48b9b47,0x9c299c29,0x18a19c29, +0x9c2918a1,0x28e172e7,0xb48bb48b,0x2102bccc,0xb48b2902,0x28e19b47,0x28e128e1,0x18a16286,0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x6300ce68,0xce686300,0xc607a523,0xbde6ce68,0xce68ce68,0xce68e729,0xce68ffef,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xc7bf0000,0xb6bb0000,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71, +0xa5140000,0x0000a514,0xa5340000,0x0000528a,0x8c719cd3,0x00000000,0x00008c71,0x8c519492,0xa5142965,0x2965a514,0xa5342965,0x2965528a,0x8c719cd3,0x29652965,0x29658c71,0x8c519492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x7ae49365,0x7ae49365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x72e77ac6,0xb48bb48b,0x18a1b48b, +0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x28e17ac6,0x28e172c7,0x18a172c7,0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc607ce68,0x39c0deea,0xd68939c0,0x39e0e729,0xc627e729,0x2960c607,0xce466300,0xdecace68,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bbc7bf,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xc73f7bef,0x7bef5f7e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xf8007bef,0x7bef8800,0x73ae73ae,0x73ae73ae,0x7bef73ae, +0x00000000,0x00000000,0xad750000,0x00008c51,0x9cd3ad55,0xad754a69,0x00008c51,0x9cd3ad75,0x29652965,0x29652965,0xad752965,0x29658c51,0x9cd3ad55,0xad754a69,0x29658c51,0x9cd3ad75,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xa363a363,0xa363a363,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x6aa641a4,0x6aa66aa6,0x18a172e7, +0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x28e141a4,0x28e128e1,0x18a172e7,0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0xd689ce68,0xdeeace68,0x63005280,0xce68dec8,0xe70bbde6,0xce4839c0,0xce68ffec,0x0000ffff,0xffff0000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4d7bef,0x73ae73ae,0x73ae767f,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x767fc73f,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae9000,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x9000f800,0x7bef7bef, +0x00000000,0x00008c71,0xad75528a,0x0000a514,0xad559cf3,0xb5965aeb,0x000094b2,0xad55b596,0x29652965,0x29658c71,0xad75528a,0x2965a514,0xad559cf3,0xb5965aeb,0x296594b2,0xad55b596,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc, +0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0c627,0xce68e729,0xce68c607,0x39c039c0,0xd689ce68,0xce68ce68,0xce68ce68,0xce682100,0x0000ffff,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef, +0x00008430,0x9cd3bdd7,0x52aa0000,0x00000000,0x4a6952aa,0xb5960000,0x528ab5b6,0x52aa0000,0x29658430,0x9cd3bdd7,0x52aa2965,0x29652965,0x4a6952aa,0xb5962965,0x528ab5b6,0x52aa2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc, +0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68d689,0xce68b5a5,0xce68ce68,0xce68ce68,0xce68deea,0xe7295280,0xce68deea,0xce68ce68,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xc7bfffff,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae, +0x000094b2,0x9cf3ad75,0x00005acb,0x00000000,0x00007bef,0x00000000,0x52aa0000,0xad550000,0x296594b2,0x9cf3ad75,0x29655acb,0x29652965,0x29657bef,0x29652965,0x52aa2965,0xad552965,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41e641e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc, +0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6, +0x73ae7bcf,0x19e3738e,0x08e10901,0x1a231142,0x84103c47,0x224452aa,0x19c319a3,0x630c1162,0x08621083,0x08631083,0x10831083,0x10831083,0x10831083,0x10831082,0x10831083,0x10830862,0x41cc41cc,0x20c60021,0x00b009b1,0x31091884,0x20c61083,0x20c609b1,0x314a1884,0x18840000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x18a118a1,0x18a10840,0x512218a1,0x51224902,0x51225122,0x18a15122,0x08400840,0x18a10840, +0x630c39e7,0x29453186,0x29452945,0x29452945,0x21242945,0x29452945,0xa5342945,0x3186630c,0x318639e7,0x31863186,0x31863186,0x31863186,0x29653186,0x31863186,0x31863186,0x31863186,0x318639e7,0x29453186,0x29452945,0x31863186,0x31863186,0x29452945,0x31862945,0x31863186,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x5b8132d1,0xacc14183,0x90828be1,0x2a6f32d1,0xbccc146d, +0x8c5173ae,0xa51411a2,0x7bcf8410,0x1a237bef,0x1a231a23,0x94927bef,0x94b28c51,0x114239e7,0x10821083,0x18c51083,0x10831083,0x08620862,0x18a40841,0x18c518c5,0x108318c5,0x08620862,0x31090021,0x20c6314a,0x09b109d1,0x310920c6,0x20c61083,0x28c809d1,0x002120c6,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xb48b1061,0x2902b48b,0xb3a9ab88,0xab68ab68,0xab88ab88,0xab88ab68,0xb48b2902,0x18a1b48b, +0x7bef4a69,0x108239e7,0x21242945,0x29452945,0x29452945,0x29452945,0xb5b61082,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x73ae7bcf,0x7bef7bef,0x7bcf7bcf,0x7bcf7bcf,0x7bef7bef,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x738e7bcf,0x7bcf738e,0x738e7bcf,0x738e738e,0x7bcf7bcf,0x29657bef,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x8c717bef,0xfff673ae,0x7beffd65,0x73ae7bef,0xfd6573ae,0x73aefd65,0x7bef7bef,0x8c718c71,0x8c717bef,0xdd7273ae,0x7befac6e,0x73ae7bef,0xac6e73ae,0x73aeac6e,0x7bef7bef,0x8c718c71,0x8c717bef,0x39e773ae,0x7bef31a6,0x73ae7bef,0x31a673ae,0x73ae31a6,0x7bef7bef,0x8c718c71,0x81a1b48b,0x61407180,0x9082b8a2,0x5b8132d1,0xacc13142,0x90828be1,0x2a6f32d1,0xb48b146d, +0x7bcfbdd7,0xb5b622a4,0xb5b63c07,0x39c71a23,0xce592264,0x7befa534,0x7bef9492,0x31a68c51,0x10830864,0x18c518c5,0x00211083,0x108318c5,0x20e60841,0x18c518c5,0x10831083,0x10830863,0x00211884,0x314a1884,0x3109314a,0x20c620c6,0x314a1083,0x00b009d1,0x0021314a,0x20c6314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0xb48b0840,0xa34720e2,0xa347a368,0xa347a347,0xa3479b47,0xa368a347,0x2102a388,0x0840b46b, +0x73ae4a49,0x000039e7,0x18c31082,0x18c318c3,0x10a218c3,0x108218c3,0xb5960000,0x3186738e,0x73ae4a49,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x3186738e,0x73ae4a49,0xb596b596,0xb596b596,0xad55b596,0xad55ad55,0xa514a514,0xad55b596,0x3186738e,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xfffffff6,0xff69fff6,0xfd65ff69,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xe615dd72,0xbcd0dd72,0xac6ebcd0,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x422839e7,0x31a639e7,0x31a631a6,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x314232d1,0xb5b65b81,0x90828c51,0x2a6f32d1,0xbccc146d, +0xb596b596,0x11421142,0x11421142,0x7bef2264,0x114219a3,0x9cf3b596,0x7bef2b05,0x1a231a23,0x398a1083,0x20c5396a,0x08610862,0x08621063,0x396a0841,0x108318c5,0x10821083,0x08620862,0x188420c6,0x00001884,0x00000021,0x20c609b1,0x310920c6,0x00b009d1,0x31090021,0x28c820c6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0x29020840,0x51c4a347,0x494351c4,0x51c451a4,0x51c451c4,0x51c451c4,0xa34751a4,0x08402902, +0x7bef4a49,0x39e77bef,0x00000000,0x00000000,0x00000000,0x00000000,0xb5964208,0x29657bef,0x7bef4a49,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x29657bef,0x7bef4a49,0xb596b596,0xad55b596,0xce59b596,0xa514ce59,0xb596b596,0xb596ad55,0x29657bef,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xfff67bef,0x8c71fd65,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xdd727bef,0x8c71ac6e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x39e77bef,0x8c7131a6,0x6b4d8c71,0x81a172e7,0x61407180,0x9082b8a2,0x41833142,0xb5b65b81,0x90828c51,0x2a6f32d1,0x72e7146d, +0x1a231a23,0x7bef33e6,0x39c76b6d,0x84107bef,0x7bef9492,0x19e31142,0x1a233c27,0x39c71a23,0x08411084,0x10830841,0x08620862,0x08621083,0x398a0841,0x10830862,0x41ab0841,0x108318c5,0x188428c8,0x314a20c6,0x20c60021,0x00b009b1,0x314a20c6,0x00b009d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xab880840,0x51c4a347,0xb3889ac6,0xab8851a4,0x51a4ab88,0xb3a99ac6,0xa36851c4,0x1881ab88, +0x7bef4a49,0x7bcfad55,0x39c739e7,0x00000000,0x00000000,0x39e739e7,0xa51473ae,0x318673ae,0x7bef4a49,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x318673ae,0x7bef4a49,0xb596ad55,0xb596b596,0x1082b596,0xce591082,0xb596ad55,0xa514b596,0x318673ae,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0x7bef7bef,0x73ae8c71,0x8c71ff69,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c71bcd0,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c7131a6,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x20e2bccc,0x31423142,0x9082b8a2,0x39633963,0xacc13142,0x29028be1,0x2a6f32d1,0x9c293142, +0x3c075aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x2b057bef,0x39c78430,0x5aeb2244,0x84309cd3,0x10831082,0x08621083,0x10830862,0x08630863,0x08411083,0x10840862,0x08421083,0x10831083,0x18843109,0x18841884,0x20c60021,0x00b009b1,0x09b120c6,0x09b109d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xab881881,0x4943a347,0xa3479ac6,0xa3474983,0x41228a85,0xb3a9a347,0xa34751c4,0x18a1ab88, +0x7bcf4a49,0xb596b596,0x7befb596,0x42084208,0x420839e7,0xb5967bef,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596ad55,0x10822104,0x21041082,0xb596ce59,0xad559cf3,0x31867bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0xfff673ae,0xfd65fd65,0x73aefd65,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xdd7273ae,0xac6eac6e,0x73aeac6e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x39e773ae,0x31a631a6,0x73ae31a6,0x73ae73ae,0x7bef8c71,0x20e29c29,0x20e220e2,0x20e220e2,0x290220e2,0x29022902,0x20e220e2,0x2a6f32d1,0x9c292902, +0x5aeb8c51,0xb5b6b596,0x11622b45,0x6b4db596,0x3386bdd7,0x1a239492,0xc6185aeb,0x7bef7bef,0x10830862,0x10831083,0x10821083,0x20e51083,0x08620863,0x00220862,0x086218c5,0x10831083,0x00000021,0x20c620c6,0x31091884,0x00b009d1,0x09b11083,0x3109314a,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0xb3a918a1,0x49638a65,0x498351a4,0x51c451c4,0x51c44963,0x51a44983,0xa34751c4,0x18a1ab88, +0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0x00002104,0x21040000,0xc638ce59,0xc638c638,0x39e78c71,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0xfff67bef,0x6b4dff69,0x73ae8c71,0x7bef7bef,0xfff6ffff,0x8c718c71,0x8c718c71,0x8c718c71,0xdd727bef,0x6b4dbcd0,0x73ae8c71,0x7bef7bef,0xdd72e615,0x8c718c71,0x8c718c71,0x8c718c71,0x39e77bef,0x6b4d31a6,0x73ae8c71,0x7bef7bef,0x39e74228,0x8c718c71,0x8c718c71,0x8c718c71,0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29, +0x08e17bef,0xbdd71a23,0x2b053c47,0xb59622a4,0x2b05ad55,0x19c32244,0x21041182,0xb596c638,0x08410862,0x18c5398a,0x10830862,0x18c520e6,0x08621083,0x08411083,0x18c518a5,0x10830862,0x18840021,0x00b020c6,0x10831884,0x09b109d1,0x09b11083,0x002200b0,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xab8818a1,0x51c49ac6,0xa347ab88,0xab8851a4,0x51c4ab88,0xab88a347,0xa34751c4,0x18a1b3a9, +0x42282965,0x84107bcf,0x528a5aeb,0x5acb4a69,0x52aa5acb,0x4a69528a,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c717bcf,0x7bcf9cf3,0x94b273ae,0x84309492,0x6b6d7bcf,0x5aeb6b4d,0x39c77bcf,0x42282965,0x84107bcf,0x528a5aeb,0x21048c71,0x632c2104,0x6b6d528a,0x5aeb73ae,0x39c77bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7, +0x7bef7bef,0x1a031122,0xb5963c27,0x19e31a23,0x19c32244,0x8c5131a6,0x39c77bef,0xc6182264,0x10831083,0x08620841,0x18a51083,0x108418c5,0x08411083,0x084118c5,0x398a3129,0x108418c5,0x18840021,0x00b020c6,0x10831884,0x314a314a,0x09b11083,0x20c600b0,0x002120c6,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0xab880840,0x59c4a347,0xa347ab88,0xab8851c4,0x51a4ab88,0xab68a367,0xa34751c4,0x18a1ab88, +0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0x5aeb2965,0x6b6d6b6d,0x4a69738e,0x84304a69,0x5acb8430,0x4a696b6d,0x5acb6b4d,0x39c7528a,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8c718c71,0xffff7bef,0xff69fff6,0xfd65ff69,0x7bef7bef,0xfd65ff69,0x8c718c71,0x6b4d8c71,0x8c718c71,0xe6157bef,0xbcd0dd72,0xac6ebcd0,0x7bef7bef,0xac6ebcd0,0x8c718c71,0x6b4d8c71,0x8c718c71,0x42287bef,0x31a639e7,0x31a631a6,0x7bef7bef,0x31a631a6,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x5b817462,0xb8a23963,0x74629082,0x146d5b81,0xbccc0b4a, +0x7bef7bef,0x1a232b05,0x11422284,0x224439c7,0x33662264,0x2b05a514,0x7bef738e,0x52aa2b05,0x10821083,0x10831083,0x398a398a,0x398a398a,0x08410862,0x0862398a,0x08410841,0x08620841,0x1884314a,0x00b009b1,0x10831884,0x108341cc,0x09b11083,0x314a00b0,0x20c63109,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x94926244,0x41a373ae,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xab880840,0x51a4a347,0x498351a4,0x51a451a4,0x51c44963,0x49434983,0xa34751a4,0x0840ab88, +0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0x630c3186,0x6b6d7bef,0x6b6d5aeb,0x528a528a,0x6b6d528a,0x6b6d7bcf,0x8430528a,0x2104630c,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aefff6,0x6b4d7bef,0xfff6ffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xe6157bef,0x73aedd72,0x6b4d7bef,0xdd72e615,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0x42287bef,0x73ae39e7,0x6b4d7bef,0x39e74228,0x73ae73ae,0x7bef6b4d,0xb8a29c29,0x146d9082,0x2a6f32d1,0x39e74a49,0xb8a24183,0x74629082,0x146d5b81,0x9c290b4a, +0x8430738e,0x1a237bef,0x8c512ae5,0x11427bef,0xc6383c27,0x2b457bcf,0x5acb630c,0x11621122,0x10831083,0x08421082,0x08410841,0x08410841,0x08621083,0x10830841,0x10831083,0x08620862,0x18840021,0x00b009d1,0x41cc1884,0x20c641cc,0x09d120c6,0x20c600b0,0x314a0022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0xa5342923,0x292373ae,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0xab880840,0x51c4a347,0xa347ab88,0x92a54122,0x4983a347,0x9ac68a85,0xa34751a4,0x18a1ab88, +0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0x5acb2945,0x73ae7bef,0xb596b596,0x6b6d8c71,0xce59528a,0x7bcfb596,0x6b4d7bcf,0x212439c7,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x39e74a49,0x9082b8a2,0x74623963,0xb5b65b81,0xbccc8c51, +0xb596b596,0x1a235aeb,0x8430b596,0x39e78430,0x3be71a23,0x33c69cf3,0x7bef1a03,0x5aebad55,0x08410862,0x108318c5,0x10821082,0x10830862,0x08620861,0x08421083,0x086318c5,0x10831083,0x18840021,0x00b009d1,0x00211884,0x20c641cc,0x09d128c8,0x20c609b1,0x18840022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0xc6187ac4,0x51e28430,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0xab881061,0x51c4a347,0xa2e69ac6,0xab8851a4,0x4943ab88,0xb3a99ac6,0xa34751c4,0x18a1ab88, +0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0x738e39c7,0xb5968c71,0xb596b596,0x528a39c7,0x84308430,0xb596ce59,0x7bcfb596,0x2124738e,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x8c717bef,0x7bef7bef,0x6b4d7bef,0xfff67bef,0x7beffd65,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xdd727bef,0x7befac6e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x39e77bef,0x7bef31a6,0x73ae73ae,0x73ae73ae,0x7bef73ae,0xb5b66aa6,0x146d8c51,0x2a6f32d1,0x5b817462,0x9082b8a2,0x74623142,0x146d5b81,0x72e70b4a, +0x19c322c4,0x1a231122,0x2284bdd7,0x7bef94b2,0x1a2339c7,0x39e71142,0xad551a23,0x1a23b5b6,0x08410862,0x20c518c5,0x10820862,0x41cc1082,0x18c518c5,0x10830862,0x08620841,0x10831083,0x31090021,0x00b009d1,0x00211884,0x310941cc,0x314a314a,0x20c61884,0x18840022,0x00b009d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xce798ac3,0x8ac3a534,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x290218a1,0x51a4a368,0x51c44963,0x51c451c4,0x49434963,0x51a451c4,0xa34751c4,0x08402902, +0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0x528a2965,0xce595aeb,0x528ace59,0x6b6d528a,0x6b6d6b6d,0xce596b6d,0x8c51ce59,0x29456b4d,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x6b4d7bef,0x73ae73ae,0x73aeff69,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xff69fff6,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73aebcd0,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xbcd0dd72,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae31a6,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x31a639e7,0x7bef7bef,0xb8a2bccc,0x29029082,0x2a6f32d1,0x5b817462,0x31423142,0x74623142,0x39635b81,0x9c294183, +0x7bef1a23,0x11227bef,0x3c471a23,0x2b25b596,0x08e13186,0x7bef8c51,0x1a231142,0x84301a23,0x08411083,0x398a396a,0x0862398a,0x08410862,0x18c5398a,0x08621083,0x398a0841,0x108318c5,0x31090021,0x09b109d1,0x20c620c6,0x18841884,0x18840021,0x20c620c6,0x314a3109,0x09d109d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x51e2a384,0xabc551e2,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xb48b0840,0xa34720e2,0x9b27a347,0xa347a347,0xa347a388,0xa347a347,0x2102a347,0x18a1b48b, +0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x5aeb630c,0x7bcf5aeb,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x2902bccc,0x20e220e2,0x20e220e2,0x5b817462,0x29022902,0x20e220e2,0x20e220e2,0x9c292902, +0xb596b596,0x7bef6b4d,0x1a232965,0x3c473c47,0x7bef1a23,0x7bef8c51,0x11629492,0x9cf36b6d,0x10820862,0x08410841,0x10820841,0x10830863,0x314a0841,0x10831083,0x08411083,0x1083398a,0x310941cc,0x09d120c6,0x314a00b0,0x1884314a,0x314a1884,0x3109314a,0x00223109,0x314a314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xb48b18a1,0x2902b46a,0xab88ab88,0xab88ab88,0xab88ab68,0xab88ab88,0xbcac2922,0x1881b48b, +0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0x9c29bccc, +0xb596b596,0xa534b596,0x7bef94b2,0x1a232244,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x10831083,0x08621083,0x10830862,0x08620862,0x08411083,0x10830862,0x10821084,0x10830841,0x310941cc,0x09b10021,0x314a00b0,0x1884314a,0x00221884,0x002109b1,0x18841884,0x18840021,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x18a118a1,0x18a10840,0x188118a1,0x08400840,0x18a10840,0x084018a1,0x18a118a1,0x18a118a1, +0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bcf,0x4a69738e,0x29452945,0x5aeb39c7,0x8410ad75,0x5aeb52aa,0x4a494228,0x630c39e7,0x31863186,0x31863186,0x94b20020,0x52aa94b2,0x52aa52aa,0x318652aa,0x31863186,0x52aa52aa,0xe6f4d673,0xc5d0d693,0xded4fffa,0xef16c611,0xf737deb3,0xd672d652,0xdeb3d673,0xc611d693,0x94505248,0xa4b24a08,0x6aec9c71,0x94505269,0x52495249,0xa4904a28,0x6aecb514,0x9cd3b470, +0x6a865a45,0x39837b07,0x6aa66265,0x41846a86,0x6aa66aa6,0x31426286,0x6aa66286,0x7b076285,0x6ac76aa6,0x6aa63963,0x6a866aa6,0x6aa63963,0x6aa66aa6,0x6aa66aa6,0x39633963,0x6aa63963,0xef5def5d,0xe73ce73c,0xdefbdefb,0xd69adedb,0xdedbd6ba,0xd6bad6ba,0xd6bad6ba,0xce79d69a,0xff89ffa9,0xff28ff68,0xfec7fee7,0xf646f686,0xfe87f646,0xfe66fe66,0xfe26fe46,0xfde6fe06, +0x6efb7f1b,0x4eda5efa,0x1e782e99,0x06160637,0x06580617,0x06370637,0x06170637,0x05d605f6,0x31642923,0x39643164,0x31643164,0x31643964,0x31643164,0x31643164,0x31643164,0x31643164,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923, +0x00000000,0x00000000,0x00000000,0x7a080000,0x00005165,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x8c5173ae,0xa5144208,0x7bcf8410,0x5aeb7bef,0x5aeb5aeb,0x94927bef,0x94b28c51,0x39c739e7,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x52aa52aa,0x94b294b2,0x318652aa,0x52aa3186,0xde74e6b5,0xce52d673,0xd653de94,0xe6d4deb3,0xded4b56e,0xd693bdaf,0xcdf2e6d5,0xe6b5ce52,0x7b8d9c91,0x8bef6b0c,0x9cd36aec,0x524983ce,0xb555bdd7,0xa4d28c0f,0x6aca83ce,0x83ae7b6c, +0x62863963,0x418493a9,0x7b076aa6,0x398349e4,0x6a869388,0x39639bc9,0x7b076285,0x62863983,0xb48b49e4,0xb48bb48b,0xb48bb48b,0xac4aac4a,0xb48bb48b,0xb48bac2a,0xb48bb48b,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xdedbe71c,0xd6bad6ba,0xc638d69a,0xffeaeea8,0xffaaffca,0xffcaffaa,0xffaaffaa,0xff8aff8a,0xfea6ff08,0xf665f686,0xe5a5f645, +0x975c0637,0x7f1b8f3c,0x873c873c,0x7f1b873c,0x6f1b7f1b,0x0e583699,0x06170637,0x05730616,0x83053184,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x31848305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305, +0x00000000,0x00000000,0xc0e40000,0x98a398a3,0x98a398a3,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x7bcfbdd7,0xb5b6738e,0xb5b6ad55,0x39c75aeb,0xce59630c,0x7befa534,0x7bef9492,0x31a68c51,0x94b252aa,0x94b23186,0x52aa0020,0x318652aa,0x31863186,0x31860020,0x52aa52aa,0x94b294b2,0xe6d5fffa,0xb56ece31,0xd672d652,0xf757d672,0xf757e6b5,0xded4e6d5,0xd693e6f4,0xd653e6d5,0x9c91b554,0xb554bdb6,0x83efa4f3,0xad3594b2,0x83ce8c30,0x94309cb2,0xb4f35aaa,0x5a69b596, +0x6ac641a4,0x6aa65a45,0x7b076a86,0x6ac749e4,0x62656ac6,0x39836286,0x93a86aa6,0x39639be9,0xb48b3963,0x9c299be8,0x9c29a44a,0x9c299c29,0xa4299be9,0xa44a9c29,0xa44aa46a,0x3963b46b,0xf79ededb,0xef7df79e,0xf79ef79e,0xf79ef79e,0xef5def7d,0xe71ce71c,0xdedbdefb,0xce59dedb,0xffeceea9,0xffccffec,0xffecffec,0xffecffec,0xffabffcb,0xff07ff28,0xfec7fee7,0xedc5fea6, +0xa77d0637,0x975c975c,0xa75da75d,0x9f5ca75d,0x7f1b8f3c,0x2e9946ba,0x0e581e78,0x05940e58,0x7ae43184,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x31847ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4, +0x00000000,0x00000000,0xe082ce79,0xce79c0e4,0x98a3c0e4,0x94b298a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x72a872a8,0x72a872a8,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0xb596b596,0x39c739c7,0x39c739c7,0x7bef630c,0x31a64228,0x9cf3b596,0x7bef7bef,0x5aeb5aeb,0x318652aa,0x31863186,0x31863186,0x31863186,0x94b294b2,0x31863186,0x31863186,0x52aa3186,0xdeb4ef16,0xef36d672,0xd652ded4,0xbdafe6d4,0xdeb3c5f1,0xd652de93,0xe6d5e6b5,0xd673d652,0xa4b2b554,0x5a6a9471,0xb555b555,0x83efacf4,0x9cf3ad34,0xa51483ef,0x5289a4d2,0x8c0f83ce, +0x9bc93963,0x62863963,0x9bc96aa6,0x6aa63943,0x62853983,0x396393a9,0x62656aa6,0x9bc94184,0xb48b3963,0xbccc9c29,0xb48bbccc,0xbcccbcac,0xbcccbccc,0xbcccbccc,0x9c29bcac,0x3963b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe73cef5d,0xdedbdefb,0xce59dedb,0xffeeeeaa,0xffeeffee,0xffeeffee,0xffedffed,0xffccffcd,0xff49ff8a,0xf6a7f6e7,0xedc5f6a6, +0xaf7d0637,0xa75da75d,0xaf7da77d,0xa75daf7d,0x8f3c975c,0x56da7f1b,0x06581e78,0x05940657,0x93653184,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x31849365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365, +0x00000000,0x00000000,0xe082f945,0xe082e082,0xce79e082,0x98a398a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x936a936a,0x72a8936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb5aeb,0x7befa514,0x39c76b6d,0x84107bef,0x7bef9492,0x528a39c7,0x5aebad75,0x39c75aeb,0x52aa0020,0x52aa52aa,0x52aa3186,0x52aa52aa,0x94b294b2,0x52aa52aa,0x94b252aa,0x002094b2,0xe6d5ce32,0xcdf2e6f4,0xd673deb4,0xde93deb3,0xdeb3deb4,0xffd8de93,0xd672d672,0xbd8fd652,0xb5556aec,0x6aeab534,0x8c71730b,0x52aa73ae,0x5249a4d3,0x5249ad35,0x6aec6aea,0x94507bcf, +0x7b073983,0x62863983,0x9bc96ac7,0x9bc941a4,0x5a453943,0x39839be9,0x93a96aa6,0x9bc93963,0xb46b3963,0xbccc9c29,0xb48bb46b,0xb46bb48b,0xb48bb48b,0xbcabb48b,0xa44abccc,0x6285b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe71ce73c,0xce59defb,0xffefee8a,0xffeeffef,0xffeeffee,0xffedffee,0xffcdffed,0xffabffec,0xff28ff69,0xe5e5fee8, +0xaf7d0637,0xaf7daf7d,0xaf7daf7d,0xa77daf7d,0x9f5ca75d,0x873c9f5c,0x3eb95efa,0x05942699,0x8b043164,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x31648b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04, +0x00000000,0x00000000,0xf9450000,0xe082ffff,0xc0e4e082,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0xcccf0000,0x936acccf,0x936a936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0xa5345aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x7bef7bef,0x39c78430,0x5aeb5aeb,0x84309cd3,0x52aa52aa,0x318694b2,0x94b23186,0x318694b2,0x31860020,0x94b294b2,0x52aa94b2,0x52aa52aa,0xe6b5ded4,0xe6d5ad0d,0xef16c611,0xde74d693,0xf756f737,0xd672e715,0xd693deb3,0xdeb3d692,0xb5556acc,0x4a28b555,0x5a68ac71,0x736d630b,0x736d9451,0x94306aec,0x7bad83ef,0x62cbbdf7, +0x7b0741c4,0x6aa64184,0x93a86286,0x62653963,0x5a453983,0x41849bea,0x9bc96aa6,0x93a841a4,0xb46a6286,0xb48b9c29,0x9c29b48b,0x9c299c29,0x9c299c29,0xbcab9c29,0x9c29bccc,0x6a86b48b,0xf79ed6ba,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xce79ef5d,0xffeeee89,0xffeeffee,0xffedffed,0xffecffed,0xffecffec,0xffebffeb,0xffaaffeb,0xee06ff69, +0xa77d0637,0xaf7daf7d,0xa75da77d,0xa77da77d,0xa75da75d,0xa75d9f5c,0x873c9f5c,0x05d566fb,0x93253184,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x31649325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325, +0x00000000,0x00000000,0x00000000,0xf945f945,0xe082f945,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcccfcccf,0x936acccf,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb8c51,0xb5b6b596,0x39c78c51,0x6b4db596,0x9492bdd7,0x5aeb9492,0xc6185aeb,0x7bef7bef,0x318652aa,0x31863186,0x31863186,0x52aa3186,0x52aa0020,0x318652aa,0x31863186,0x52aa94b2,0xb54ec5d0,0xde93e6d5,0xde94de93,0xd672e6d5,0xdeb3deb3,0xef56deb3,0xe6b5deb3,0xef15c5f0,0x6aec9431,0xa514a534,0x6aec83ee,0xc5f8c5f8,0x83cf4a28,0x730bbdf7,0x9c5183ae,0x4a286b4d, +0x9be96aa6,0x628641c4,0x93a86ac6,0x6aa641a4,0x39636aa6,0x41a493a8,0x93a86aa6,0x7b0741a4,0xb48b6aa6,0xbccc9c09,0x9be9b46b,0xbcccbccc,0xbcccbccc,0xb48b9c29,0x9c09bccc,0x6aa6b48b,0xf79ed6ba,0xef7df79e,0xf79ef79e,0xf79eef7d,0xf79ef79e,0xf79ef79e,0xef7df79e,0xd69aef7d,0xffcdee89,0xffc9ffed,0xffccffcc,0xffebffcb,0xffebffeb,0xffeaffeb,0xffcaffea,0xee67ffa9, +0x975c0637,0x873ca77d,0x975c975c,0x975c975c,0x975c975c,0x9f5c9f5c,0x8f3c975c,0x0616873c,0x7ae43164,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x31647ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x21247bef,0xbdd75aeb,0x7befb596,0xb5966b6d,0x7befad55,0x4a495aeb,0x210439e7,0xb596c638,0x94b252aa,0x002094b2,0x318694b2,0x52aa52aa,0x94b252aa,0x94b294b2,0x94b294b2,0x94b294b2,0xde95e6d4,0xe6d5ef16,0xd672e6b5,0xde95eef6,0xfffaf737,0xdeb3c5d0,0xde74d673,0xdeb3d672,0x528a6b4d,0x52485248,0x94109470,0x83efad13,0x62eb9cd3,0x94116aec,0x6aecb554,0x5b0c9c71, +0x9bc96aa6,0x72c73983,0x41a493a8,0x41846aa6,0x41a46aa6,0x39639388,0x6aa66aa6,0x7b073983,0xb48b6aa6,0xbcccac8b,0x9c29b48b,0xb48bbcac,0xbcccb48b,0xb48b9c09,0x9c09bccc,0x6aa6bcab,0xf79ed6ba,0xef7df79e,0xef5df79e,0xef5def5d,0xef5def5d,0xef5def5d,0xe73cef5d,0xce79e71c,0xffcceea8,0xffc9ffec,0xff88ffed,0xff88ff88,0xff88ff88,0xff88ff88,0xff67ff88,0xee45f746, +0x975c0637,0x873ca75d,0x6efba75d,0x6efb6efb,0x6efb6efb,0x6efb6efb,0x56da6efb,0x05d63eb9,0x93653184,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x31649365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x52aa3186,0xb596ad55,0x528a5aeb,0x4a695aeb,0x8c5131a6,0x39c77bef,0xc618630c,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x00203186,0x31863186,0x31863186,0x52aa52aa,0xd693deb3,0xde93e6d5,0xd652deb3,0xffb7e6f5,0xd633deb4,0xd672d693,0xe6b5ded4,0xe6d5d672,0x6aec6aec,0xbdb6bdb6,0x8c71ad34,0x4a489c71,0xa4706aec,0x6aec8c30,0x6b4d83ef,0x736e7bf0, +0x9bc96aa6,0x6aa63983,0x39839bc9,0x41a49bc9,0x39639bc9,0x49e47b07,0x7b076286,0x6ac73983,0xb48b3963,0xcd2d9c29,0x9c29b48b,0xb48bbccc,0xbcacb48b,0xac4aa429,0x9c29bccc,0x72e7b48b,0xf79ed6ba,0xef7def7d,0xef5def5d,0xef5def5d,0xef5def5d,0xef7def5d,0xef5def7d,0xd69ae73c,0xffeceea7,0xffc9ffcb,0xff88ff88,0xff88ff88,0xff88ff88,0xffc8ffa8,0xffa8ffc8,0xee66ff87, +0x9f5c0637,0x873c8f3c,0x6efb6efb,0x6efb6efb,0x6f1b6efb,0x7f1b771b,0x771b873c,0x05f65efa,0x93043164,0xa344a344,0xa344a344,0xa363a344,0xa363a363,0xa344a344,0xa344a344,0x31649304,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x930441e5,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x292382c4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x5aeb7bef,0x39c76b4d,0x630c39c7,0x8c71630c,0x7befa514,0x7bef738e,0x52aa7bef,0x94b294b2,0x630c52aa,0x318652aa,0x94b294b2,0x52aa52aa,0x52aa52aa,0x94b294b2,0x002094b2,0xde95bdaf,0xdeb3cdf2,0xe6d4bdd0,0xd672de93,0xd693d673,0xffb9eef6,0xe6d5deb3,0xde74deb4,0xacb2a4f3,0x94517bcf,0xa4b39c51,0xb51483f0,0x736d9c91,0x4a288bef,0x8c314a28,0x6aec8c31, +0x7b076a86,0x6aa649e4,0x626593a9,0x39636a86,0x39639388,0x5a257b07,0x7b073142,0x6ac73983,0xb48b3963,0xbcac9c29,0x9c09b48b,0xbcacbcac,0xbcccbccc,0xb48b9c29,0x9c29bcab,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef5def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef5d,0xffebe688,0xffc9ffca,0xffa8ffc9,0xffc9ffc9,0xffc9ffc9,0xffe9ffc9,0xffc8ffe9,0xee66ff88, +0x975c0637,0x873c873c,0x771b873c,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06166f1b,0x93653184,0xa384abc5,0xabc5abc5,0x8b43abc5,0x8b438b43,0xabc5a363,0xabc5abc5,0x31849365,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0x72c641e6,0x72a572c6,0x72c672c6,0x94926244,0x41a373ae,0x72c672a5,0x72c672c6,0x292372c6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8430738e,0x5aeb7bef,0x8c517bcf,0x31a67bef,0xc638ad55,0x8c517bcf,0x5acb630c,0x39c72965,0x31863186,0x52aa52aa,0x318652aa,0x31863186,0x002052aa,0x52aa52aa,0x31863186,0x52aa0020,0xded4ce31,0xfffece52,0xef15d672,0xde94deb4,0xf756d693,0xc5f0deb3,0xd652ce52,0xc5f0deb3,0xbd969c92,0xa4d37b6e,0xad357bd0,0x4a288bae,0x730b4a49,0xbd968bcf,0x5aaac5f8,0x4a286b4c, +0x5a456aa6,0x62866aa6,0x6a869bc9,0x6aa66286,0x39836aa6,0x8b686aa6,0x7b073983,0x62864184,0xb48b3963,0xbccc9c09,0x9c29b48b,0xa44aa44a,0x9c299c29,0xb48b9c29,0x9c09bcab,0x6aa6b48b,0xf79ed6ba,0xef5def7d,0xef7def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd6baef7d,0xffebee88,0xff88ffea,0xffc9ff88,0xffc9ffc9,0xffcaffca,0xffc9ffc9,0xffc9ffc9,0xee87ffc9, +0x9f5c0637,0x6efb975c,0x873c6efb,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06177f1b,0x7ae43164,0xa384a363,0xa384a384,0x8b43abc5,0xa384a384,0xa384a384,0x8b438b43,0x31647ae4,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x316441c5,0x31843164,0x31843184,0xa5342923,0x292373ae,0x31843184,0x31643164,0x18e23164, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0xb596b596,0x5aeb5aeb,0x8430b596,0x39e78430,0xa5345aeb,0x9cf39cf3,0x7bef528a,0x5aebad55,0x94b252aa,0x318694b2,0x31863186,0x31863186,0x31863186,0x94b294b2,0x94b294b2,0x002094b2,0xd672e6f4,0xd672eef6,0xeef6eef6,0xeef6e6d5,0xce32e6d5,0xe6d5d672,0xc5f0d653,0xce11ded4,0xa4d26aec,0x52485248,0x5aaa9c92,0x6aec738e,0x736c94b3,0xad1462ca,0x8c309c71,0x9470a514, +0x41a46aa6,0x62866aa6,0x7b077b07,0x62866aa6,0x41a46ac7,0x9bc96aa6,0x9bc93983,0x7b073963,0xb46b49e4,0xbccc9c09,0xbcabb48b,0xb48bb48b,0xb48bb48b,0xbcabb48b,0x9c29bccc,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xf79eef7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd6baef5d,0xffeaee88,0xffeaffea,0xffe9ffc9,0xffeaffe9,0xffcbffca,0xffa8ffc9,0xffa8ffa8,0xee87ffa8, +0x975c0637,0x975c8f3c,0x975c873c,0x975c975c,0x975c975c,0x7f1b873c,0x771b7f1b,0x0617771b,0x7ae43184,0x8b438b43,0xabc58b43,0x8b43abc5,0x8b43abc5,0xa3638b43,0xa384a384,0x31849325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0xc6187ac4,0x51e28430,0x93047ae4,0x93259325,0x29239325, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x4a49738e,0x5aeb3186,0x632cbdd7,0x7bef94b2,0x5acb39c7,0x39e739c7,0xad555aeb,0x5acbb5b6,0x94b252aa,0x52aa52aa,0x002052aa,0x94b252aa,0x52aa52aa,0x31863186,0x31863186,0x52aa3186,0xd673ce31,0xdeb4de93,0xded4d652,0xce52d652,0xd672d672,0xe6f4de93,0xde93deb3,0xbdd0deb3,0x7bef8c10,0xb535bdf7,0x9c309c70,0x6aec83cf,0x8c718c51,0x734d9c91,0x734d734d,0xa4b2b534, +0x41c46ac6,0x41846265,0x7b077b07,0x6a863983,0x39639bc9,0x9bc96a86,0x9be93983,0x7b0741a4,0xb48b6aa6,0xb48ba44a,0xbcccbccc,0xbcccbccc,0xbcabbccc,0xbcabbccc,0x9c29bccc,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xf79ef79e,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef7d,0xffcaee88,0xffeaffea,0xffeaffea,0xffeaffea,0xffcbffcb,0xffc9ffc9,0xffc8ffa8,0xee66ffc8, +0x975c0637,0x8f3c975c,0x975c8f3c,0x975c9f5c,0x873c975c,0x873c873c,0x7f1b7f1b,0x05f67f1b,0x8b043164,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x31649304,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0xa34441e6,0xa363a344,0xa363a363,0xce798ac3,0x8ac3a534,0xa344a344,0xa344a344,0x2923a363, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef5acb,0x29657bef,0xb5965acb,0x8410b596,0x21243186,0x7bef8c51,0x5aeb39c7,0x84305aeb,0x002052aa,0x31863186,0x31860020,0x31863186,0x318694b2,0x52aa52aa,0x94b252aa,0x52aa52aa,0xef16e6b5,0xd673ff78,0xd693de93,0xdeb3deb3,0xe6f4deb3,0xeef6e6d5,0xce52c611,0xff78d672,0x732d8b8d,0xb5346aec,0x8c10b534,0x83efbd96,0x52486aec,0xc5f76b4d,0x83adc5f7,0x6aec6aec, +0x5a453963,0x41a46265,0x9bc96a86,0x62863983,0x39639bc9,0x7b076286,0x7b0749e4,0x9bc949e4,0xb48b3963,0x9c099c09,0x93e89c29,0x9c099c29,0x9c29a46a,0x9c299c29,0xa42a9c29,0x6aa6b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd69ae73c,0xffccee88,0xffcaffcb,0xffeaffea,0xffcaffea,0xffcbffcb,0xffc9ffca,0xff88ffa9,0xee65ff87, +0x8f3c0617,0x8f3c8f3c,0x8f3c975c,0x8f3c8f3c,0x873c873c,0x873c8f3c,0x6efb7f1b,0x05f65efa,0x93653184,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x31649365,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xabc541e6,0x8b438b43,0x8b438b43,0x82e3a384,0xabc58b04,0xa384abc5,0xabc5a363,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0xb596b596,0x7bef6b4d,0x5aeb2965,0xb596b596,0x7bef5aeb,0x7bef8c51,0x39c79492,0x9cf36b6d,0x52aa52aa,0x94b294b2,0x94b294b2,0x94b294b2,0x94b23186,0x94b294b2,0x52aa0020,0x318652aa,0xde93deb4,0xe6d6e6b5,0xd672bdb1,0xd672d652,0xe6d5c5d0,0xdeb3fffb,0xde93d672,0xef15d693,0x9c108bce,0xbd559c30,0xa4d48bf0,0x6aec9cb3,0xb555b555,0x94716b0b,0xa4d25249,0x9c51836e, +0x62853983,0x39436ac7,0x9bc93983,0x628641a4,0x39839bc9,0x9bc96a86,0x7b0749e4,0x93a849e4,0xb48b6aa6,0xb48bb46a,0xb48bb48b,0xb48bb48b,0xb46aac4a,0xb48bb48b,0xbcacbcab,0x6265b48b,0xef5dd69a,0xef5def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def7d,0xd69aef5d,0xff4ce648,0xff6bff4b,0xffabffab,0xffabffaa,0xff8bffab,0xffaaffab,0xff8affaa,0xee67ff89, +0x66fb05f6,0x6f1b66fb,0x873c873c,0x873c873c,0x7f1b7f1b,0x873c873c,0x7f1b7f1b,0x05f6771b,0x83053184,0x93049325,0x93259325,0x7ae47ae4,0x7ae47ae4,0x93257ae4,0x93257ae4,0x31648305,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xb596b596,0xa534b596,0x7bef94b2,0x5aeb630c,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x318652aa,0x31863186,0x52aa3186,0x94b294b2,0x94b20020,0x318652aa,0x31863186,0x52aa3186,0xdeb49cab,0xdeb3deb3,0xdeb3d692,0xde93d672,0xdeb4e6f4,0xd693de93,0xd672d652,0xde93ce31,0xbdf75a89,0x9c306aec,0x94119c30,0x6aec9c31,0x6aec7bef,0x9c719c71,0xa4d28c0f,0x9c30734d, +0x6aa641c4,0x9bc96aa6,0x6ac63983,0x41a493a8,0x6a866286,0x7b076286,0x7b076ac6,0x9be96aa6,0x6aa66aa6,0x6aa63963,0x62866aa6,0x39633963,0x6aa63963,0x39636aa6,0x6aa66ac7,0x6ac66aa6,0xa534ad55,0xbdd7ad75,0xd69ac638,0xd69ad6ba,0xd69ad69a,0xdedbd6ba,0xdefbdedb,0xe71cdefb,0xc423c444,0xd524cc83,0xe647ddc5,0xee67ee87,0xee27ee46,0xeea8ee88,0xeee9eec9,0xff0bf6ea, +0x042e042e,0x04f1044f,0x05f60574,0x05f60617,0x05f605f6,0x06370637,0x1e780e58,0x46ba1e78,0x31642923,0x31643164,0x31843164,0x31843184,0x31843164,0x31843184,0x31843184,0x29233184,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x94b28430,0x738e8c51,0x9cd3a534,0xbdd794b2,0xbdf78c71,0x84107bef,0x94928430,0x9cf38c51,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7, +0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6,0x8410a514,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0x84108410,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0xb596b5b6,0xb5b6ad55,0xb5b6b5b6,0xd6bab5b6,0xb5b6bdd7,0xb5b6b596,0xb5b6bdd7,0xce79b5b6, +0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x59a00000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xa514a514,0x7bcf8c51,0xad55b596,0x949294b2,0x94b27bef,0x843094b2,0x9cf3ad55,0xa5148c51,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369, +0xbcccbccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0xbcccbccc,0xb48b9c29,0xbcccbccc,0xbcccbccc,0xad55ce59,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0x51439a66,0x79e58205,0x79e579e5,0xd6ba79e5,0x79e59a66,0x79e579e5,0x79e58205,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14201300,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xad55b5b6,0x73ae73ae,0x84107bef,0xc6188410,0xc638a514,0x9cd3ad55,0x8c51a514,0xad75ad55,0x8c717bef,0x8c7173ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x73ae6b4d,0x7bef7bef,0x8c718c71,0x93697aa7,0x7aa77aa7,0x7aa772c8,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369, +0x9c29b48b,0xbccc72e7,0xbcccbccc,0x9c29bccc,0xb48bbccc,0x9c29b48b,0x9c299c29,0xb48b9c29,0xb596ce59,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0xb5968430,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0x79e59a66,0x79e579c5,0x79e579e5,0xce796184,0x79c59a66,0x79e579e5,0x79e579e5,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x91628c71,0x52aada23,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x5a261420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13000000,0x14201420,0x13001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000320,0x00000000,0x00000000, +0x94b2bdd7,0x8c518410,0x94929cd3,0x7bcf8430,0x9492632c,0x7bef8c51,0xa5349cf3,0x84307bcf,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b, +0xbcccbccc,0xbcccbccc,0x9c29bccc,0x9c29bccc,0x9c299c29,0x9c299c29,0x72e7b48b,0xbcccbccc,0xa514ce59,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa5148430,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa2679a67,0x9a66aaa7,0x9a669a66,0xce799246,0xb2c89246,0x9a669a66,0x9a669a46,0xe71c9a67, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0x52aada23,0xda23da23,0xa9a252aa,0x000052aa,0x52aa0000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x13000000,0x00001420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x14201300,0x00001300,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200320,0x03200000,0x59a00000,0x4e649325,0x00004e64,0x00000000,0x00000000, +0xad758430,0xa5148430,0x843094b2,0x8c519492,0x949294b2,0x7bcf8c71,0x7bef7bef,0x8c517bef,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7, +0x6aa672e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0xad55c618,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xad557bcf,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xb5b6b5b6,0xd6baad75,0xb5b6b5b6,0xb5b6b5b6,0xb5b6b5b6,0xdedbb596,0xbdd7b596,0xb5b6b596, +0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0x9162a9a2,0x91629162,0x91620000,0x91620000,0x52aa0000,0x00009162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x14205a26,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001420,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03204e64,0x03200320,0x03200000,0x93250320,0x000059a0,0x00000000,0x03200000, +0x9cf39cd3,0xa53494b2,0xb5b68410,0x94928c71,0x7bcfc618,0x8410a534,0x8c518c71,0x8c718430,0x7bef7bef,0x73ae8c71,0x8c7173ae,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430, +0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xb48bb48b,0x9c29b48b,0xad55ce59,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0xad558430,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0x79e58a26,0xdefb8a05,0x79e59a66,0x79e55964,0x820569a4,0xd69a79e5,0x79e59a66,0x79e58205, +0xad75ad75,0xad75ce79,0xce79ad75,0xad75ad75,0xce79ad75,0xad75ad75,0xad75ce79,0xad75ad75,0x8c71da23,0x91628c71,0x0000da23,0x00000000,0x8c710000,0x916252aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf7c00000,0xb5e0f7c0,0x8c808c80,0x0000ce80,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x59a00320,0x4e640000,0x59a00320,0x4e6459a0,0x00000320,0x03200320, +0x841094b2,0x8c71b5b6,0x9cd38c71,0x8410ad55,0x94928430,0xad559492,0xb5968c71,0x84108c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x7bef8c71,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7, +0x9c299c29,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29,0xa514ce59,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0xa5148430,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0x79e579e5,0xce7979e5,0x79e59246,0x79e579e5,0x8a268205,0xce7979c5,0x8a059a66,0x79e579e5, +0xad75ce79,0x0000ad75,0xad75ce79,0xce790000,0x0000ce79,0xce79ce79,0xad750000,0xce79ad75,0x8c71da23,0x52aa52aa,0x00000000,0x00000000,0x00000000,0x91628c71,0x52aa0000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x14203d19,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xce80ce80,0x8c80f7c0,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x93250320,0x932559a0,0x03209325,0x93259325,0x93259325,0x00004e64, +0x9cd38410,0xad55b5b6,0x8410ad75,0x9cf3ad75,0xad55b596,0x94928410,0x94928430,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x73ae8c71,0x7bef7bef,0x8c717bef,0x8c718c71,0x8c718c71,0x8c718c71,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5, +0xbcccbccc,0xbcccbccc,0x72e7bccc,0xbccc9c29,0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c29bccc,0xce79ce59,0xc618ce79,0xc638ce79,0xce59ce59,0xce79ce59,0xce79ce79,0xce79ce79,0xb596ce79,0xb5968430,0x9cf3b596,0xa514b596,0xad55ad55,0xb596ad55,0xb596b596,0xb596b596,0x9492b596,0x9a66a267,0xd69a9a66,0x9a669a46,0xb2c8a287,0x9a66a267,0xd69a9a66,0x9a669a66,0x79e5b2c8, +0xce79ce79,0x0000ce79,0xce79ce79,0xce790000,0x00000000,0xce79ce79,0xce790000,0xce79ce79,0xda23da23,0xa9a2da23,0xda23da23,0x00000000,0x52aa0000,0x52aada23,0x000052aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x3cd73ddc,0x33f333f3,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0xce800000,0x0000f7c0,0xb5e0f7c0,0x0000f7c0,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x93250000,0x93259325,0x03200320,0x59a00320,0x03200000,0x00000000, +0x84308c71,0x8c519cf3,0x7bef9492,0x8430a534,0xad7594b2,0x84108430,0xa5148c71,0xad557bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369, +0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0x8430ad55,0x84108430,0x84108410,0x84108410,0x7bcf8410,0x84108410,0x84108410,0x84308430,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0x9cf3a514,0xa514a514,0xa514a514,0x8430ad55,0xb5b6b5b6,0xb596b5b6,0xbdd7b596,0xd6bab5b6,0xb5b6b5b6,0xb5b6b596,0xb5b6b5b6,0xd6bab5b6, +0xce79ce79,0x0000ce79,0xce79ce79,0x00000000,0x0000ce79,0xce79ce79,0xce790000,0xce79ce79,0x9162a9a2,0x91629162,0x000052aa,0x00000000,0x00000000,0x916252aa,0x0000a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3d190000,0x3d193d19,0x33f33ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x00000320,0x932559a0,0x4e644e64,0x00000000,0x03204e64,0x00000320, +0x9cf37bef,0x9492a534,0x84109492,0x7bef8c51,0x84308430,0xad75b5b6,0xa5349492,0x8c7194b2,0x8c718c71,0x84107bef,0x73ae7bef,0x8c718c71,0x7bef7bef,0x7bef7bef,0x8c718c71,0x6b4d8c71,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7, +0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0xbcccbccc,0xb596ce79,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0xb5969492,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0x59649a66,0x69a48a05,0x618479e5,0xdefb79e5,0x69a4aaa7,0x71c58205,0x79e579e5,0xd69a79e5, +0xdedbce79,0x00000000,0xce790000,0xce790000,0x0000dedb,0x0000ce79,0x00000000,0xce79dedb,0x8c71da23,0x52aa52aa,0x8c71da23,0x52aa0000,0x52aa0000,0x52aa0000,0x000052aa,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x33f33ddc,0x3cd73d19,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x59a00000,0x59a09325,0x93259325,0x032059a0,0x4e640000,0x00000320, +0x9cd39cd3,0xa5347bcf,0x94b28410,0x9cd394b2,0x94b28430,0x84108c51,0x8c517bcf,0x94b28c71,0x73ae73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x6b4d7bef,0x7bef7bef,0x73ae73ae,0x7bef6b4d,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7, +0x9c299c29,0xb48b72e7,0xb48bb48b,0x9c29bccc,0xb48bb48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xa514c638,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0xa5148410,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0x79e59a66,0x79e59a66,0x79e56184,0xd69a79c5,0x79e59a66,0x79e571a4,0x79e569a4,0xd6ba79e5, +0xdedbdedb,0xce79dedb,0xdedbdedb,0xdedbdedb,0xdedbce79,0xce79dedb,0xdedbce79,0xce79dedb,0x8c71da23,0x91628c71,0x0000da23,0x91620000,0x8c7152aa,0x52aa52aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3ddc0000,0x00003ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x032059a0,0x00000320,0x93250320,0x59a09325,0x932559a0,0x00000000, +0x8410a514,0x8410ad75,0xad75ad75,0xad758c51,0x73aebdd7,0xa5348410,0x7befad55,0x8c718c51,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e59369,0x6b6d7aa7,0x93697aa7,0x7aa759e5,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5, +0x9c29bccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0x9c29bccc,0x72e79c29,0xb48bb48b,0xbcccb48b,0xb596ce59,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0xb5968430,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0x9a668a26,0x9a669a66,0x92469a66,0xd69a9a66,0xaa87aa87,0x9a66a267,0x9a669a66,0xd69a9a66, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0xa9a2da23,0xda2352aa,0xa9a252aa,0xda2352aa,0x00000000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x03209325,0x00000320,0x03200320,0x932559a0,0x03209325,0x00000000, +0x843073ae,0x94b28c51,0x9cd39492,0x7bcf7bef,0x84107bef,0x94b28c71,0x8c518c71,0x7bef8c71,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x8c717bef,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x6b6d9369,0x7aa7bc2b,0x59e59369,0xbc2b7aa7,0x93699369,0x93697aa7,0xbc2b7aa7,0x7aa79369,0x6b6d59e5,0x59e559e5,0x59e57588,0x59e559e5,0x59e55ce6,0x59e56d68,0x59e57aa7,0x7aa759e5, +0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0xb596ce59,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xbdd7bdd7,0xd6bab596,0xb5b6b5b6,0xb596b5b6,0xbdd7b5b6,0xdefbb5b6,0xb5b6b5b6,0xbdf7b596, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x9162a9a2,0x52aa9162,0x9162a9a2,0x916252aa,0x000052aa,0x91629162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x03204e64,0x4e640000,0x03204e64,0x03200000,0x00009325,0x00000000, +0xbdd7a514,0x8430b596,0x8c518c51,0x94929492,0x9cf394b2,0xad75ad55,0x73ae8430,0xb5b68410,0x6b4d7bef,0x73ae73ae,0x73ae6b4d,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x8c717bef,0x7bef7bef,0x7aa7bc2b,0x59e57aa7,0x7aa7bc2b,0x7aa77aa7,0x7aa7bc2b,0x7aa77aa7,0x59e559e5,0x7aa7bc2b,0x59e58deb,0x65279e4d,0x59e56d47,0x59e57588,0x7dea75a9,0x962c960c,0x54a559e5,0x59e56506, +0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xbcccbccc,0xb48bbccc,0xbccc72e7,0x9c29bccc,0x9cf3ce59,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x8a2679e5,0xd69a69a4,0x79e59a66,0x71a479e5,0x79e579e5,0xd69a79e5,0x92268205,0x8a2679e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x000052aa,0x52aa0000,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x4e644e64,0x00000000,0x00000000,0x03204e64,0x00000320,0x00000000, +0x8c7194b2,0x94b2a514,0x84109cd3,0x84108c51,0xad557bef,0x9492a534,0x8c718410,0x8c518430,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x93697aa7,0x7aa759e5,0x93697aa7,0x59e58430,0xbc2b7aa7,0x7aa79369,0x93697aa7,0x59e559e5,0x6d6875a9,0x858a8dcb,0x59e5858a,0x65076d47,0x960c5ce6,0x758995ec,0x6d686506,0x6d486527, +0xbcccbccc,0x72e7b48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xb48b9c29,0xb48b9c29,0x9c29bccc,0xad55ce59,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0x79e579e5,0xe71c8205,0x79e5b2c8,0x618469a4,0x71c579e5,0xd69a8205,0x79e59a66,0x79e579e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4e640000,0x00000000,0x00000000, +0x94b294b2,0x84309492,0x8c718430,0x8c717bef,0x94b29cf3,0x84308c51,0x84108c51,0x8c71738e,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x9369bc2b,0x7aa79369,0xbc2b7aa7,0x93699369,0x7aa77aa7,0x7aa759e5,0xbc2b7aa7,0xbc2b7aa7,0x75a975a9,0x65277589,0x6d686527,0x6d685ce6,0x75a97dea,0x65276d48,0x65066d47,0x6d685484, +0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bbccc,0xbccc9c29,0xbcccbccc,0xbcccbccc,0x9c29bccc,0xc638ce59,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0xad55c638,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410,0x92469a66,0xce799a66,0x9a679a66,0xa2879226,0xaaa79a66,0xd69a8a26,0xaa879a66,0x9a669a66, +0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0 }; diff --git a/data/lang/en_US.lang b/data/lang/en_US.lang new file mode 100755 index 0000000..8f2aea8 --- /dev/null +++ b/data/lang/en_US.lang @@ -0,0 +1,967 @@ + +language.name=English +language.region=US +language.code=en_US + +gui.done=Done +gui.cancel=Cancel +gui.toMenu=Back to title screen +gui.up=Up +gui.down=Down +gui.yes=Yes +gui.no=No + +menu.singleplayer=Singleplayer +menu.multiplayer=Multiplayer +menu.mods=Texture Packs +menu.options=Options... +menu.quit=Quit Game +menu.returnToMenu=Save and Quit to Title +menu.disconnect=Disconnect +menu.returnToGame=Back to Game +menu.switchingLevel=Switching level +menu.generatingLevel=Generating level +menu.loadingLevel=Loading level +menu.generatingTerrain=Building terrain +menu.simulating=Simulating the world for a bit +menu.respawning=Respawning + +selectWorld.title=Select World +selectWorld.empty=empty +selectWorld.world=World +selectWorld.select=Play Selected World +selectWorld.create=Create New World +selectWorld.createDemo=Play New Demo World +selectWorld.delete=Delete +selectWorld.rename=Rename +selectWorld.deleteQuestion=Are you sure you want to delete this world? +selectWorld.deleteWarning=will be lost forever! (A long time!) +selectWorld.deleteButton=Delete +selectWorld.renameButton=Rename +selectWorld.renameTitle=Rename World +selectWorld.conversion=Must be converted! +selectWorld.newWorld=New World +selectWorld.enterName=World Name +selectWorld.resultFolder=Will be saved in: +selectWorld.enterSeed=Seed for the World Generator +selectWorld.seedInfo=Leave blank for a random seed + +gameMode.survival=Survival Mode +gameMode.creative=Creative Mode +gameMode.hardcore=Hardcore Mode! +gameMode.changed=Your game mode has been changed + +selectWorld.gameMode=Game Mode: +selectWorld.gameMode.survival=Survival +selectWorld.gameMode.survival.line1=Search for resources, crafting, gain +selectWorld.gameMode.survival.line2=levels, health and hunger +selectWorld.gameMode.creative=Creative +selectWorld.gameMode.creative.line1=Unlimited resources, free flying and +selectWorld.gameMode.creative.line2=destroy blocks instantly +selectWorld.gameMode.hardcore=Hardcore +selectWorld.gameMode.hardcore.line1=Same as survival mode, locked at hardest +selectWorld.gameMode.hardcore.line2=difficulty, and one life only +selectWorld.moreWorldOptions=More World Options... +selectWorld.mapFeatures=Generate Structures: +selectWorld.mapFeatures.info=Villages, dungeons etc +selectWorld.mapType=World Type: +selectWorld.mapType.normal=Normal +selectWorld.hardcoreMode=Hardcore: +selectWorld.hardcoreMode.info=World is deleted upon death + +generator.default=Default +generator.flat=Superflat + +selectServer.title=Select Server +selectServer.empty=empty +selectServer.select=Join Server +selectServer.direct=Direct Connect +selectServer.edit=Edit +selectServer.delete=Delete +selectServer.add=Add server +selectServer.defaultName=Minecraft Server +selectServer.deleteQuestion=Are you sure you want to remove this server? +selectServer.deleteWarning=will be lost forever! (A long time!) +selectServer.deleteButton=Delete +selectServer.refresh=Refresh +addServer.title=Edit Server Info +addServer.enterName=Server Name +addServer.enterIp=Server Address +addServer.add=Done + +multiplayer.title=Play Multiplayer +multiplayer.connect=Connect +multiplayer.info1=Minecraft Multiplayer is currently not finished, but there +multiplayer.info2=is some buggy early testing going on. +multiplayer.ipinfo=Enter the IP of a server to connect to it: + +multiplayer.downloadingTerrain=Downloading terrain + +multiplayer.stopSleeping=Leave Bed + +demo.day.1=This demo will last five game days, do your best! +demo.day.2=Day Two +demo.day.3=Day Three +demo.day.4=Day Four +demo.day.5=This is your last day! +demo.day.warning=Your time is almost up! +demo.day.6=You have passed your fifth day, use F2 to save a screenshot of your creation +demo.reminder=The demo time has expired, buy the game to continue or start a new world! +demo.help.movement=Use %1$s, %2$s, %3$s, %4$s and the mouse to move around +demo.help.jump=Jump by pressing %1$s +demo.help.inventory=Use %1$s to open your inventory + +connect.connecting=Connecting to the server... +connect.authorizing=Logging in... +connect.failed=Failed to connect to the server + +disconnect.genericReason=%s +disconnect.disconnected=Disconnected by Server +disconnect.lost=Connection Lost +disconnect.kicked=Was kicked from the game +disconnect.timeout=Timed out +disconnect.closed=Connection closed +disconnect.loginFailed=Failed to login +disconnect.loginFailedInfo=Failed to login: %s +disconnect.quitting=Quitting +disconnect.endOfStream=End of stream +disconnect.overflow=Buffer overflow + +options.off=OFF +options.on=ON +options.title=Options +options.controls=Controls... +options.video=Video Settings... +options.language=Language... +options.languageWarning=Language translations may not be 100% accurate +options.videoTitle=Video Settings +options.music=Music +options.sound=Sound +options.invertMouse=Invert Mouse +options.fov=FOV +options.fov.min=Normal +options.fov.max=Quake Pro +options.gamma=Brightness +options.gamma.min=Moody +options.gamma.max=Bright +options.sensitivity=Sensitivity +options.sensitivity.min=*yawn* +options.sensitivity.max=HYPERSPEED!!! +options.renderDistance=Render Distance +options.renderDistance.tiny=Tiny +options.renderDistance.short=Short +options.renderDistance.normal=Normal +options.renderDistance.far=Far +options.viewBobbing=View Bobbing +options.ao=Smooth Lighting +options.anaglyph=3D Anaglyph +options.framerateLimit=Performance +options.difficulty=Difficulty +options.difficulty.peaceful=Peaceful +options.difficulty.easy=Easy +options.difficulty.normal=Normal +options.difficulty.hard=Hard +options.difficulty.hardcore=Hardcore +options.graphics=Graphics +options.graphics.fancy=Fancy +options.graphics.fast=Fast +options.guiScale=GUI Scale +options.guiScale.auto=Auto +options.guiScale.small=Small +options.guiScale.normal=Normal +options.guiScale.large=Large +options.advancedOpengl=Advanced OpenGL +options.renderClouds=Clouds +options.farWarning1=A 64 bit Java installation is recommended +options.farWarning2=for 'Far' render distance (you have 32 bit) +options.particles=Particles +options.particles.all=All +options.particles.decreased=Decreased +options.particles.minimal=Minimal + +performance.max=Max FPS +performance.balanced=Balanced +performance.powersaver=Power saver + +controls.title=Controls + +key.forward=Forward +key.left=Left +key.back=Back +key.right=Right +key.jump=Jump +key.inventory=Inventory +key.drop=Drop +key.chat=Chat +key.fog=Toggle Fog +key.sneak=Sneak +key.playerlist=List Players +key.attack=Attack +key.use=Use Item +key.pickItem=Pick Block +key.mouseButton=Button %1$s + +texturePack.openFolder=Open texture pack folder +texturePack.title=Select Texture Pack +texturePack.folderInfo=(Place texture pack files here) + +tile.stone.name=Stone +tile.grass.name=Grass Block +tile.dirt.name=Dirt +tile.stonebrick.name=Cobblestone +tile.wood.name=Wooden Planks +tile.sapling.name=Sapling +tile.deadbush.name=Dead Bush +tile.bedrock.name=Bedrock +tile.water.name=Water +tile.lava.name=Lava +tile.sand.name=Sand +tile.sandStone.name=Sandstone +tile.gravel.name=Gravel +tile.oreGold.name=Gold Ore +tile.oreIron.name=Iron Ore +tile.oreCoal.name=Coal Ore +tile.log.name=Wood +tile.leaves.name=Leaves +tile.tallgrass.name=Grass +tile.tallgrass.shrub.name=Shrub +tile.tallgrass.grass.name=Grass +tile.tallgrass.fern.name=Fern +tile.sponge.name=Sponge +tile.glass.name=Glass +tile.thinGlass.name=Glass Pane +tile.cloth.name=Wool +tile.flower.name=Flower +tile.rose.name=Rose +tile.mushroom.name=Mushroom +tile.blockGold.name=Block of Gold +tile.blockIron.name=Block of Iron +tile.stoneSlab.stone.name=Stone Slab +tile.stoneSlab.sand.name=Sandstone Slab +tile.stoneSlab.wood.name=Wooden Slab +tile.stoneSlab.cobble.name=Cobblestone Slab +tile.stoneSlab.brick.name=Bricks Slab +tile.stoneSlab.smoothStoneBrick.name=Stone Bricks Slab +tile.brick.name=Bricks +tile.tnt.name=TNT +tile.bookshelf.name=Bookshelf +tile.stoneMoss.name=Moss Stone +tile.obsidian.name=Obsidian +tile.torch.name=Torch +tile.fire.name=Fire +tile.mobSpawner.name=Monster Spawner +tile.stairsWood.name=Wooden Stairs +tile.chest.name=Chest +tile.redstoneDust.name=Redstone Dust +tile.oreDiamond.name=Diamond Ore +tile.blockDiamond.name=Block of Diamond +tile.workbench.name=Crafting Table +tile.crops.name=Crops +tile.farmland.name=Farmland +tile.furnace.name=Furnace +tile.sign.name=Sign +tile.doorWood.name=Wooden Door +tile.ladder.name=Ladder +tile.rail.name=Rail +tile.goldenRail.name=Powered Rail +tile.detectorRail.name=Detector Rail +tile.stairsStone.name=Stone Stairs +tile.lever.name=Lever +tile.pressurePlate.name=Pressure Plate +tile.doorIron.name=Iron Door +tile.oreRedstone.name=Redstone Ore +tile.notGate.name=Redstone Torch +tile.button.name=Button +tile.snow.name=Snow +tile.ice.name=Ice +tile.cactus.name=Cactus +tile.clay.name=Clay +tile.reeds.name=Sugar cane +tile.jukebox.name=Jukebox +tile.fence.name=Fence +tile.fenceGate.name=Fence Gate +tile.pumpkin.name=Pumpkin +tile.litpumpkin.name=Jack 'o' Lantern +tile.hellrock.name=Netherrack +tile.hellsand.name=Soul Sand +tile.lightgem.name=Glowstone +tile.portal.name=Portal +tile.cloth.black.name=Black Wool +tile.cloth.red.name=Red Wool +tile.cloth.green.name=Green Wool +tile.cloth.brown.name=Brown Wool +tile.cloth.blue.name=Blue Wool +tile.cloth.purple.name=Purple Wool +tile.cloth.cyan.name=Cyan Wool +tile.cloth.silver.name=Light Gray Wool +tile.cloth.gray.name=Gray Wool +tile.cloth.pink.name=Pink Wool +tile.cloth.lime.name=Lime Wool +tile.cloth.yellow.name=Yellow Wool +tile.cloth.lightBlue.name=Blue Light Wool +tile.cloth.magenta.name=Magenta Wool +tile.cloth.orange.name=Orange Wool +tile.cloth.white.name=Wool +tile.oreLapis.name=Lapis Lazuli Ore +tile.blockLapis.name=Lapis Lazuli Block +tile.dispenser.name=Dispenser +tile.musicBlock.name=Note Block +tile.cake.name=Cake +tile.bed.name=Bed +tile.bed.occupied=This bed is occupied +tile.bed.noSleep=You can only sleep at night +tile.bed.notSafe=You may not rest now, there are monsters nearby +tile.bed.notValid=Your home bed was missing or obstructed +tile.lockedchest.name=Locked chest +tile.trapdoor.name=Trapdoor +tile.web.name=Cobweb +tile.stonebricksmooth.name=Stone Bricks +tile.pistonBase.name=Piston +tile.pistonStickyBase.name=Sticky Piston +tile.fenceIron.name=Iron Bars +tile.melon.name=Melon +tile.stairsBrick.name=Brick Stairs +tile.stairsStoneBrickSmooth.name=Stone Brick Stairs +tile.vine.name=Vines +tile.netherBrick.name=Nether Brick +tile.netherFence.name=Nether Brick Fence +tile.stairsNetherBrick.name=Nether Brick Stairs +tile.netherStalk.name=Nether Wart +tile.cauldron.name=Cauldron +tile.enchantmentTable.name=Enchantment Table +tile.whiteStone.name=End Stone +tile.mycel.name=Mycelium +tile.waterlily.name=Lily Pad +tile.dragonEgg.name=Dragon Egg +tile.redstoneLight.name=Redstone Lamp +tile.glowingobsidian.name=Glowing Obsidian +tile.netherreactor.name=Nether Reactor Core +tile.quartzBlock.name=Block of Quartz +tile.stairsQuartz.name=Quartz Stairs +tile.stairsSandStone.name=Sand Stone Stairs +tile.stonecutter.name=Stonecutter + +item.shovelIron.name=Iron Shovel +item.pickaxeIron.name=Iron Pickaxe +item.hatchetIron.name=Iron Axe +item.flintAndSteel.name=Flint and Steel +item.apple.name=Apple +item.cookie.name=Cookie +item.bow.name=Bow +item.arrow.name=Arrow +item.coal.name=Coal +item.charcoal.name=Charcoal +item.emerald.name=Diamond +item.ingotIron.name=Iron Ingot +item.ingotGold.name=Gold Ingot +item.swordIron.name=Iron Sword +item.swordWood.name=Wooden Sword +item.shovelWood.name=Wooden Shovel +item.pickaxeWood.name=Wooden Pickaxe +item.hatchetWood.name=Wooden Axe +item.swordStone.name=Stone Sword +item.shovelStone.name=Stone Shovel +item.pickaxeStone.name=Stone Pickaxe +item.hatchetStone.name=Stone Axe +item.swordDiamond.name=Diamond Sword +item.shovelDiamond.name=Diamond Shovel +item.pickaxeDiamond.name=Diamond Pickaxe +item.hatchetDiamond.name=Diamond Axe +item.stick.name=Stick +item.bowl.name=Bowl +item.mushroomStew.name=Mushroom Stew +item.swordGold.name=Golden Sword +item.shovelGold.name=Golden Shovel +item.pickaxeGold.name=Golden Pickaxe +item.hatchetGold.name=Golden Axe +item.string.name=String +item.feather.name=Feather +item.sulphur.name=Gunpowder +item.hoeWood.name=Wooden Hoe +item.hoeStone.name=Stone Hoe +item.hoeIron.name=Iron Hoe +item.hoeDiamond.name=Diamond Hoe +item.hoeGold.name=Golden Hoe +item.seeds.name=Seeds +item.seeds_pumpkin.name=Pumpkin Seeds +item.seeds_melon.name=Melon Seeds +item.melon.name=Melon +item.wheat.name=Wheat +item.bread.name=Bread +item.helmetCloth.name=Leather Cap +item.chestplateCloth.name=Leather Tunic +item.leggingsCloth.name=Leather Pants +item.bootsCloth.name=Leather Boots +item.helmetChain.name=Chain Helmet +item.chestplateChain.name=Chain Chestplate +item.leggingsChain.name=Chain Leggings +item.bootsChain.name=Chain Boots +item.helmetIron.name=Iron Helmet +item.chestplateIron.name=Iron Chestplate +item.leggingsIron.name=Iron Leggings +item.bootsIron.name=Iron Boots +item.helmetDiamond.name=Diamond Helmet +item.chestplateDiamond.name=Diamond Chestplate +item.leggingsDiamond.name=Diamond Leggings +item.bootsDiamond.name=Diamond Boots +item.helmetGold.name=Golden Helmet +item.chestplateGold.name=Golden Chestplate +item.leggingsGold.name=Golden Leggings +item.bootsGold.name=Golden Boots +item.flint.name=Flint +item.porkchopRaw.name=Raw Porkchop +item.porkchopCooked.name=Cooked Porkchop +item.chickenRaw.name=Raw Chicken +item.chickenCooked.name=Cooked Chicken +item.beefRaw.name=Raw Beef +item.beefCooked.name=Steak +item.painting.name=Painting +item.appleGold.name=Golden Apple +item.sign.name=Sign +item.doorWood.name=Wooden Door +item.bucket.name=Bucket +item.bucketWater.name=Water Bucket +item.bucketLava.name=Lava Bucket +item.minecart.name=Minecart +item.saddle.name=Saddle +item.doorIron.name=Iron Door +item.redstone.name=Redstone +item.snowball.name=Snowball +item.boat.name=Boat +item.leather.name=Leather +item.milk.name=Milk +item.brick.name=Brick +item.clay.name=Clay +item.reeds.name=Sugar Canes +item.paper.name=Paper +item.book.name=Book +item.slimeball.name=Slimeball +item.minecartChest.name=Minecart with Chest +item.minecartFurnace.name=Minecart with Furnace +item.egg.name=Egg +item.compass.name=Compass +item.fishingRod.name=Fishing Rod +item.clock.name=Clock +item.yellowDust.name=Glowstone Dust +item.fishRaw.name=Raw Fish +item.fishCooked.name=Cooked Fish +item.record.name=Music Disc +item.bone.name=Bone +item.dyePowder.black.name=Ink Sac +item.dyePowder.red.name=Rose Red +item.dyePowder.green.name=Cactus Green +item.dyePowder.brown.name=Cocoa Beans +item.dyePowder.blue.name=Lapis Lazuli +item.dyePowder.purple.name=Purple Dye +item.dyePowder.cyan.name=Cyan Dye +item.dyePowder.silver.name=Light Gray Dye +item.dyePowder.gray.name=Gray Dye +item.dyePowder.pink.name=Pink Dye +item.dyePowder.lime.name=Lime Dye +item.dyePowder.yellow.name=Dandelion Yellow +item.dyePowder.lightBlue.name=Light Blue Dye +item.dyePowder.magenta.name=Magenta Dye +item.dyePowder.orange.name=Orange Dye +item.dyePowder.white.name=Bone Meal +item.sugar.name=Sugar +item.cake.name=Cake +item.bed.name=Bed +item.diode.name=Redstone Repeater +item.map.name=Map +item.leaves.name=Leaves +item.shears.name=Shears +item.rottenFlesh.name=Rotten Flesh +item.enderPearl.name=Ender Pearl +item.blazeRod.name=Blaze Rod +item.ghastTear.name=Ghast Tear +item.netherStalkSeeds.name=Nether Wart +item.potion.name=Potion +item.emptyPotion.name=Water Bottle +item.goldNugget.name=Gold Nugget +item.glassBottle.name=Glass Bottle +item.spiderEye.name=Spider Eye +item.fermentedSpiderEye.name=Fermented Spider Eye +item.blazePowder.name=Blaze Powder +item.magmaCream.name=Magma Cream +item.cauldron.name=Cauldron +item.brewingStand.name=Brewing Stand +item.eyeOfEnder.name=Eye of Ender +item.speckledMelon.name=Glistering Melon +item.monsterPlacer.name=Spawn +item.expBottle.name=Bottle o' Enchanting +item.fireball.name=Fire Charge +item.netherbrickItem.name=Nether Brick +item.netherquartz.name=Nether Quartz + +container.inventory=Inventory +container.crafting=Crafting +container.dispenser=Dispenser +container.furnace=Furnace +container.enchant=Enchant +container.creative=Item Selection +container.brewing=Brewing Stand +container.chest=Chest +container.minecart=Minecart + +entity.Item.name=Item +entity.XPOrb.name=Experience Orb + +entity.Arrow.name=Arrow +entity.Snowball.name=Snowball +entity.Painting.name=Painting + +entity.Mob.name=Mob +entity.Monster.name=Monster + +entity.Creeper.name=Creeper +entity.Skeleton.name=Skeleton +entity.Spider.name=Spider +entity.Giant.name=Giant +entity.Zombie.name=Zombie +entity.Slime.name=Slime +entity.Ghast.name=Ghast +entity.PigZombie.name=Zombie Pigman +entity.Enderman.name=Enderman +entity.Silverfish.name=Silverfish +entity.CaveSpider.name=Cave Spider +entity.Blaze.name=Blaze +entity.LavaSlime.name=Magma Cube +entity.MushroomCow.name=Mooshroom +entity.Villager.name=Villager +entity.VillagerGolem.name=Iron Golem +entity.SnowMan.name=Snow Golem +entity.EnderDragon.name=Ender Dragon + +entity.Pig.name=Pig +entity.Sheep.name=Sheep +entity.Cow.name=Cow +entity.Chicken.name=Chicken +entity.Squid.name=Squid +entity.Wolf.name=Wolf +entity.Ozelot.name=Ocelot +entity.Cat.name=Cat + +entity.PrimedTnt.name=Block of TNT +entity.FallingSand.name=Falling Block + +entity.Minecart.name=Minecart +entity.Boat.name=Boat + +entity.Arrow.name=arrow +entity.generic.name=unknown + +death.inFire=%1$s went up in flames +death.onFire=%1$s burned to death +death.lava=%1$s tried to swim in lava +death.inWall=%1$s suffocated in a wall +death.drown=%1$s drowned +death.starve=%1$s starved to death +death.cactus=%1$s was pricked to death +death.fall=%1$s hit the ground too hard +death.outOfWorld=%1$s fell out of the world +death.generic=%1$s died +death.explosion=%1$s blew up +death.magic=%1$s was killed by magic +death.mob=%1$s was slain by %2$s +death.player=%1$s was slain by %2$s +death.arrow=%1$s was shot by %2$s +death.fireball=%1$s was fireballed by %2$s +death.thrown=%1$s was pummeled by %2$s +death.indirectMagic=%1$s was killed by %2$s + +deathScreen.respawn=Respawn +deathScreen.deleteWorld=Delete world +deathScreen.titleScreen=Title screen +deathScreen.score=Score +deathScreen.title.hardcore=Game over! +deathScreen.hardcoreInfo=You cannot respawn in hardcore mode! +deathScreen.title=You died! + +potion.empty=No Effects +potion.moveSpeed=Speed +potion.moveSlowdown=Slowness +potion.digSpeed=Haste +potion.digSlowDown=Mining Fatigue +potion.damageBoost=Strength +potion.weakness=Weakness +potion.heal=Instant Health +potion.harm=Instant Damage +potion.jump=Jump Boost +potion.confusion=Nausea +potion.regeneration=Regeneration +potion.resistance=Resistance +potion.fireResistance=Fire Resistance +potion.waterBreathing=Water Breathing +potion.invisibility=Invisibility +potion.blindness=Blindness +potion.nightVision=Night Vision +potion.hunger=Hunger +potion.poison=Poison + +potion.moveSpeed.postfix=Potion of Swiftness +potion.moveSlowdown.postfix=Potion of Slowness +potion.digSpeed.postfix=Potion of Haste +potion.digSlowDown.postfix=Potion of Dullness +potion.damageBoost.postfix=Potion of Strength +potion.weakness.postfix=Potion of Weakness +potion.heal.postfix=Potion of Healing +potion.harm.postfix=Potion of Harming +potion.jump.postfix=Potion of Leaping +potion.confusion.postfix=Potion of Nausea +potion.regeneration.postfix=Potion of Regeneration +potion.resistance.postfix=Potion of Resistance +potion.fireResistance.postfix=Potion of Fire Resistance +potion.waterBreathing.postfix=Potion of Water Breathing +potion.invisibility.postfix=Potion of Invisibility +potion.blindness.postfix=Potion of Blindness +potion.nightVision.postfix=Potion of Night Vision +potion.hunger.postfix=Potion of Hunger +potion.poison.postfix=Potion of Poison + +potion.potency.0= +potion.potency.1=II +potion.potency.2=III +potion.potency.3=IV + +potion.prefix.grenade=Splash +potion.prefix.mundane=Mundane +potion.prefix.uninteresting=Uninteresting +potion.prefix.bland=Bland +potion.prefix.clear=Clear +potion.prefix.milky=Milky +potion.prefix.diffuse=Diffuse +potion.prefix.artless=Artless +potion.prefix.thin=Thin +potion.prefix.awkward=Awkward +potion.prefix.flat=Flat +potion.prefix.bulky=Bulky +potion.prefix.bungling=Bungling +potion.prefix.buttered=Buttered +potion.prefix.smooth=Smooth +potion.prefix.suave=Suave +potion.prefix.debonair=Debonair +potion.prefix.thick=Thick +potion.prefix.elegant=Elegant +potion.prefix.fancy=Fancy +potion.prefix.charming=Charming +potion.prefix.dashing=Dashing +potion.prefix.refined=Refined +potion.prefix.cordial=Cordial +potion.prefix.sparkling=Sparkling +potion.prefix.potent=Potent +potion.prefix.foul=Foul +potion.prefix.odorless=Odorless +potion.prefix.rank=Rank +potion.prefix.harsh=Harsh +potion.prefix.acrid=Acrid +potion.prefix.gross=Gross +potion.prefix.stinky=Stinky + +enchantment.damage.all=Sharpness +enchantment.damage.undead=Smite +enchantment.damage.arthropods=Bane of Arthropods +enchantment.knockback=Knockback +enchantment.fire=Fire Aspect +enchantment.protect.all=Protection +enchantment.protect.fire=Fire Protection +enchantment.protect.fall=Feather Falling +enchantment.protect.explosion=Blast Protection +enchantment.protect.projectile=Projectile Protection +enchantment.oxygen=Respiration +enchantment.waterWorker=Aqua Affinity +enchantment.digging=Efficiency +enchantment.untouching=Silk Touch +enchantment.durability=Unbreaking +enchantment.lootBonus=Looting +enchantment.lootBonusDigger=Fortune +enchantment.arrowDamage=Power +enchantment.arrowFire=Flame +enchantment.arrowKnockback=Punch +enchantment.arrowInfinite=Infinity + +enchantment.level.1=I +enchantment.level.2=II +enchantment.level.3=III +enchantment.level.4=IV +enchantment.level.5=V +enchantment.level.6=VI +enchantment.level.7=VII +enchantment.level.8=VIII +enchantment.level.9=IX +enchantment.level.10=X + +gui.achievements=Achievements +gui.stats=Statistics + +stat.generalButton=General +stat.blocksButton=Blocks +stat.itemsButton=Items + +stat.used=Times Used +stat.mined=Times Mined +stat.depleted=Times Depleted +stat.crafted=Times Crafted + +stat.startGame=Times played +stat.createWorld=Worlds played +stat.loadWorld=Saves loaded +stat.joinMultiplayer=Multiplayer joins +stat.leaveGame=Games quit + +stat.playOneMinute=Minutes Played + +stat.walkOneCm=Distance Walked +stat.fallOneCm=Distance Fallen +stat.swimOneCm=Distance Swum +stat.flyOneCm=Distance Flown +stat.climbOneCm=Distance Climbed +stat.diveOneCm=Distance Dove +stat.minecartOneCm=Distance by Minecart +stat.boatOneCm=Distance by Boat +stat.pigOneCm=Distance by Pig +stat.jump=Jumps +stat.drop=Items Dropped + +stat.damageDealt=Damage Dealt +stat.damageTaken=Damage Taken +stat.deaths=Number of Deaths +stat.mobKills=Mob Kills +stat.playerKills=Player Kills +stat.fishCaught=Fish Caught + +stat.mineBlock=%1$s Mined +stat.craftItem=%1$s Crafted +stat.useItem=%1$s Used +stat.breakItem=%1$s Depleted + +achievement.get=Achievement get! + +achievement.taken=Taken! + +achievement.requires=Requires '%1$s' +achievement.openInventory=Taking Inventory +achievement.openInventory.desc=Press '%1$s' to open your inventory. +achievement.mineWood=Getting Wood +achievement.mineWood.desc=Attack a tree until a block of wood pops out +achievement.buildWorkBench=Benchmarking +achievement.buildWorkBench.desc=Craft a workbench with four blocks of planks +achievement.buildPickaxe=Time to Mine! +achievement.buildPickaxe.desc=Use planks and sticks to make a pickaxe +achievement.buildFurnace=Hot Topic +achievement.buildFurnace.desc=Construct a furnace out of eight stone blocks +achievement.acquireIron=Acquire Hardware +achievement.acquireIron.desc=Smelt an iron ingot +achievement.buildHoe=Time to Farm! +achievement.buildHoe.desc=Use planks and sticks to make a hoe +achievement.makeBread=Bake Bread +achievement.makeBread.desc=Turn wheat into bread +achievement.bakeCake=The Lie +achievement.bakeCake.desc=Wheat, sugar, milk and eggs! +achievement.buildBetterPickaxe=Getting an Upgrade +achievement.buildBetterPickaxe.desc=Construct a better pickaxe +achievement.cookFish=Delicious Fish +achievement.cookFish.desc=Catch and cook fish! +achievement.onARail=On A Rail +achievement.onARail.desc=Travel by minecart at least 1 km from where you started +achievement.buildSword=Time to Strike! +achievement.buildSword.desc=Use planks and sticks to make a sword +achievement.killEnemy=Monster Hunter +achievement.killEnemy.desc=Attack and destroy a monster +achievement.killCow=Cow Tipper +achievement.killCow.desc=Harvest some leather +achievement.flyPig=When Pigs Fly +achievement.flyPig.desc=Fly a pig off a cliff +achievement.snipeSkeleton=Sniper Duel +achievement.snipeSkeleton.desc=Kill a skeleton with an arrow from more than 50 meters +achievement.diamonds=DIAMONDS! +achievement.diamonds.desc=Acquire diamonds with your iron tools +achievement.portal=We Need to Go Deeper +achievement.portal.desc=Build a portal to the Nether +achievement.ghast=Return to Sender +achievement.ghast.desc=Destroy a Ghast with a fireball +achievement.blazeRod=Into Fire +achievement.blazeRod.desc=Relieve a Blaze of its rod +achievement.potion=Local Brewery +achievement.potion.desc=Brew a potion +achievement.theEnd=The End? +achievement.theEnd.desc=Locate the End +achievement.theEnd2=The End. +achievement.theEnd2.desc=Defeat the Ender Dragon +achievement.enchantments=Enchanter +achievement.enchantments.desc=Use a book, obsidian and diamonds to construct an enchantment table +achievement.overkill=Overkill +achievement.overkill.desc=Deal eight hearts of damage in a single hit +achievement.bookcase=Librarian +achievement.bookcase.desc=Build some bookshelves to improve your enchantment table + +desc.sword=Deals more damage than by hand. +desc.shovel=Used to dig dirt, grass, sand, gravel and snow faster than by hand. +desc.pickaxe=Required to mine stone-related blocks and ore. +desc.hatchet=Used to chop wood-related blocks faster than by hand. +desc.hoe=Used to till dirt and grass blocks to prepare for crops. +desc.doorwood=Wooden doors are activated by using, hitting them or with Redstone. +desc.dooriron=Iron doors can only be opened by Redstone, buttons or switches. +desc.helmet=Gives the user 1.5 Armor when worn. +desc.chestplate=Gives the user 4 Armor when worn. +desc.leggings=Gives the user 3 Armor when worn. +desc.boots=Gives the user 1.5 Armor when worn. +desc.ingot=A shiny ingot which can be used to craft tools made from this material. +desc.block=Used as an expensive building block or compact storage of the ore. +desc.pressureplate=Used to send an electrical charge when stepped on by a player, an animal, or a monster. Wooden Pressure Plates can also be activated by dropping something on them. +desc.stairs=Used for compact staircases. +desc.stairsstonebricksmooth=Used for compact staircases. +desc.stairsnetherbrick=Used for compact staircases. +desc.stairssandstone=Used for compact staircases. +desc.stairsquartzblock=Used for compact staircases. +desc.slab=Used for making long staircases. +desc.halfslab=Used for compact staircases. +desc.torch=Used to create light. Torches also melt snow and ice. +desc.wood=Used as a building material and can be crafted into many things. Can be crafted from any wood. +desc.sandstone=Used as a building material. +desc.sandstone.addon=Is not influenced by gravity like normal Sand. +desc.structblock=Used as a building material. +desc.stick=Used to craft torches, arrows, signs, ladders, fences and as handles for tools and weapons. +desc.bed=Used to sleep until dawn. Changes your spawn point to the bed's position. +desc.craftingtable=Allows you to craft a more varied selection of items than the normal crafting. +desc.furnace=Allows you to smelt ore, create charcoal and glass, and cook fish and porkchops. +desc.chest=Stores blocks and items inside. +desc.fence=Used as a barrier that cannot be jumped over. +desc.ladder=Used to climb vertically. +desc.trapdoor=Work like normal doors, but are a one by one block and lay flat on the ground. +desc.sign=Shows text entered by you or other players. +desc.glowstone=Used to create brighter light than torches. Melts snow/ice and can be used underwater. +desc.tnt=Used to cause explosions. Activated after placing by hitting, or with an electrical charge. +desc.bowl=Used to hold mushroom stew. You keep the bowl when the stew has been eaten. +desc.bucket=Used to hold and transport water, lava and milk. +desc.flintandsteel=Used to detonate TNT. +desc.fishingrod=Used to catch fish. +desc.clock=Displays positions of the Sun and Moon. +desc.compass=Points to your start point. +desc.map=Will create an image of an area explored while held. This can be used for path-finding. +desc.bow=Allows for ranged attacks by using arrows. +desc.arrow=Used as ammunition for bows. +desc.mushroomstew=Restores 5 hearts. +desc.cookie=Restores 0.5 Hearts. Can be stacked up to 8 times. +desc.cake=Restores 1.5 Hearts. Can be used 6 times. +desc.sugar=Used in the cake recipe. +desc.bread=Restores 2.5 Hearts. +desc.goldenapple=Restores 10 Hearts. +desc.lever=Used to send an electrical charge by being turned on or off. Stays in the on or off state until pressed again. +desc.redstonetorch=Constantly sends an electrical charge, or can be used as a receiver/transmitter when connected to the side of a block. +Can also be used for low-level lighting. +desc.redstonerepeater=Used in Redstone circuits as repeater, a delayer, and/or a diode +desc.button=Used to send an electrical charge by being pressed. Stays activated for approximately a second before shutting off again. +desc.dispenser=Used to hold and shoot out items in a random order when given a Redstone charge. +desc.noteblock=Plays a note when triggered. Hit it to change the pitch of the note. Placing this on top of different blocks will change the type of instrument. +desc.rail=Used to guide minecarts. +desc.poweredrail=When powered, accelerates minecarts that pass over it. When unpowered, causes minecarts to stop on it. +desc.detectorrail=Functions like a Pressure Plate (sends a Redstone signal when powered) but can only be activated by a minecart. +desc.minecart=Used to transport you, an animal, or a monster along rails. +desc.minecartwithchest=Used to transport goods along rails. +desc.minecartwithfurnace=Will move along rails and can push other minecarts when coal is put in it. +desc.boat=Used to travel in water more quickly than swimming. +desc.wool=Collected from sheep, and can be colored with dyes. +desc.woolstring=Used as a building material and can be colored with dyes. Can be easily obtained from Sheep. +desc.dyepowder.black=Used as a dye to create black wool. +desc.dyepowder.green=Used as a dye to create green wool. +desc.dyepowder.brown=Used as a dye to create brown wool. +desc.dyepowder.silver=Used as a dye to create silver wool. +desc.dyepowder.yellow=Used as a dye to create yellow wool. +desc.dyepowder.red=Used as a dye to create red wool. +desc.dyepowder.white=Used to instantly grow crops and flowers. Can be used in dye recipes. +desc.dyepowder.pink=Used as a dye to create pink wool. +desc.dyepowder.orange=Used as a dye to create orange wool. +desc.dyepowder.lime=Used as a dye to create lime wool. +desc.dyepowder.gray=Used as a dye to create gray wool. +desc.dyepowder.lightgray=Used as a dye to create light gray wool. +(Note: light gray dye can also be made by combining gray dye with bone meal, letting you make four light gray dyes from every ink sac instead of three.) +desc.dyepowder.lightblue=Used as a dye to create light blue wool. +desc.dyepowder.cyan=Used as a dye to create cyan wool. +desc.dyepowder.purple=Used as a dye to create purple wool. +desc.dyepowder.magenta=Used as a dye to create magenta wool. +desc.dyepowder.blue=Used as dye to create Blue Wool. +desc.jukebox=Plays Music Discs. +desc.diamonds=Use these to create very strong tools, weapons or armor +desc.emerald=Use these to create very strong tools, weapons or armor +desc.jackolantern=Used to create brighter light than torches. Melts snow/ice and can be used underwater. +desc.paper=Used to create books and maps. +desc.book=Used to create a bookshelf. +desc.bookshelf=Used as decoration. +desc.picture=Used as decoration. +desc.ore_gold=Can be mined with an iron pickaxe or better, then smelted in a furnace to produce gold ingots. +desc.ore_iron=Can be mined with a stone pickaxe or better, then smelted in a furnace to produce iron ingots. +desc.ore_coal=Can be mined with a pickaxe to collect coal. +desc.ore_lapis=Can be mined with a stone pickaxe or better to collect lapis lazuli. +desc.ore_diamond=Can be mined with an iron pickaxe or better to collect diamonds. +desc.ore_redstone=Can be mined with an iron pickaxe or better to collect redstone dust. +desc.stone=Can be mined with a pickaxe to collect cobblestone. +desc.dirt=Collected using a shovel. Can be used for construction. +desc.sapling=Can be planted and it will eventually grow into a tree. +desc.bedrock=This cannot be broken. +desc.lava=Sets fire to anything that touches it. Can be collected in a bucket. +desc.sand=Collected using a shovel. Can be smelted into glass using the furnace. Is affected by gravity if there is no other tile underneath it. +desc.gravel=Collected using a shovel. Sometimes produces flint when dug up. Is affected by gravity if there is no other tile underneath it. +desc.log=Chopped using an axe, and can be crafted into planks or used as a fuel. +desc.glass=Created in a furnace by smelting sand. Will break if you try to mine it. +desc.thinglass=Will break if you try to mine it. +desc.stone_brick=Mined from stone using a pickaxe. Can be used to construct a furnace or stone tools. +desc.brick=Baked from clay in a furnace. +desc.clay=Can be baked into bricks in a furnace. +desc.snow=A compact way to store snowballs. +desc.top_snow=Can be dug with a shovel to create snowballs. +desc.tall_grass=Sometimes produces seeds when broken. +desc.flower=Can be crafted into a dye. +desc.mushroom=Can be crafted with a bowl to make stew. +desc.obsidian=Can only be mined with a diamond pickaxe. Is produced by the meeting of water and still lava, and is used to build a portal. +desc.mob_spawner=Spawns monsters into the world. +desc.redstone_dust=Is placed on the ground to carry an electrical charge. +desc.crops=When fully grown, crops can be harvested to collect wheat. +desc.farmland=Ground that has been prepared ready to plant seeds. +desc.cactus=Can be crafted to create a dye. +desc.reeds=Can be crafted to create sugar. +desc.pumpkin=Can be worn as a helmet or crafted with a torch to create a Jack-O-Lantern. +desc.hell_rock=Burns forever if set alight. +desc.hell_sand=Slows the movement of anything walking over it. +desc.portal=Standing in the portal allows you to pass between the overworld and the nether. +desc.apple=Restores health, and can be crafted into a golden apple. +desc.melon=Can be broken into melon slices. +desc.coal=Used as a fuel in a furnace, or crafted to make a torch. +desc.string=Collected by killing a spider, and can be crafted into a bow. +desc.feather=Collected by killing a chicken, and can be crafted into an arrow. +desc.sulphur=Collected by killing a creeper, and can be crafted into TNT. +desc.shears=Used to obtain wool from sheep and to harvest placeable Leaf blocks. +desc.seeds=Can be planted in farmland to grow crops. +desc.wheat=Harvested from crops, and can be used to craft food items. +desc.flint=Collected by digging gravel, and can be used to craft a flint and steel. +desc.porkchopraw=Collected by killing a pig, and can be cooked in a furnace. Restores health. +desc.porkchopcooked=Created by cooking a porkchop in a furnace. Restores health. +desc.beefraw=Collected by killing a cow, and can be cooked in a furnace. Restores health. +desc.beefcooked=Created by cooking a beef in a furnace. Restores health. +desc.chickenraw=Collected by killing a chicken, and can be cooked in a furnace. Restores health. +desc.chickencooked=Created by cooking a chicken in a furnace. Restores health. +desc.saddle=When used on a pig it allows you to ride the pig. +desc.snowball=Collected by digging snow, and can be thrown. +desc.leather=Collected by killing a cow, and can be crafted into armor. +desc.slimeball=Collected by killing a slime. +desc.egg=Dropped randomly by chickens, and can be crafted into food items. +desc.yellow_dust=Collected by mining Glowstone, and can be crafted to make Glowstone blocks again. +desc.fish_raw=Can be eaten to restore health, or cooked in a furnace. +desc.fish_cooked=Created by cooking a raw fish in a furnace. Can be eaten to restore health. +desc.bone=Collected by killing a skeleton. Can be crafted into bone meal. +desc.record=Collected by getting a skeleton to kill a creeper. Can be played in a jukebox. +desc.water=Extinguishes fire and helps crops grow. Can be collected in a bucket. +desc.leaves=When broken sometimes drops a sapling which can then be replanted to grow into a tree. +desc.moss_stone=Can be used for construction and decoration. +desc.stonebricksmooth=Used as building material. +desc.netherreactor=Core of the Nether Reactor +desc.glowingobsidian=Obsidion activated by external source. +desc.lightgem=Used for illumination. +desc.painting=Used as decoration. +desc.hellrock=Is a stone material from the Nether. +desc.netherbrick=Construction block made from Nether bricks. +desc.netherbrickitem=Used to form blocks of Nether bricks. +desc.netherquartz=Quartz from the Nether, used to create Blocks of Quartz. +desc.quartzblock=Decorative block, used to create other kinds of Quartz blocks. +desc.stonecutter=For crafting stoneblocks. +desc.seedsmelon=Allows for more melons. +desc.tile.melon=Can be cut up and eaten. diff --git a/data/sound/aac/damage/fallbig1.m4a b/data/sound/aac/damage/fallbig1.m4a new file mode 100755 index 0000000..7deb7d1 Binary files /dev/null and b/data/sound/aac/damage/fallbig1.m4a differ diff --git a/data/sound/aac/damage/fallbig2.m4a b/data/sound/aac/damage/fallbig2.m4a new file mode 100755 index 0000000..ec02cd7 Binary files /dev/null and b/data/sound/aac/damage/fallbig2.m4a differ diff --git a/data/sound/aac/damage/fallsmall.m4a b/data/sound/aac/damage/fallsmall.m4a new file mode 100755 index 0000000..a210f49 Binary files /dev/null and b/data/sound/aac/damage/fallsmall.m4a differ diff --git a/data/sound/aac/mob/chicken1.m4a b/data/sound/aac/mob/chicken1.m4a new file mode 100755 index 0000000..b81ee44 Binary files /dev/null and b/data/sound/aac/mob/chicken1.m4a differ diff --git a/data/sound/aac/mob/chicken2.m4a b/data/sound/aac/mob/chicken2.m4a new file mode 100755 index 0000000..b098825 Binary files /dev/null and b/data/sound/aac/mob/chicken2.m4a differ diff --git a/data/sound/aac/mob/chicken3.m4a b/data/sound/aac/mob/chicken3.m4a new file mode 100755 index 0000000..4d4181a Binary files /dev/null and b/data/sound/aac/mob/chicken3.m4a differ diff --git a/data/sound/aac/mob/chickenhurt1.m4a b/data/sound/aac/mob/chickenhurt1.m4a new file mode 100755 index 0000000..c0ab742 Binary files /dev/null and b/data/sound/aac/mob/chickenhurt1.m4a differ diff --git a/data/sound/aac/mob/chickenhurt2.m4a b/data/sound/aac/mob/chickenhurt2.m4a new file mode 100755 index 0000000..1b5d468 Binary files /dev/null and b/data/sound/aac/mob/chickenhurt2.m4a differ diff --git a/data/sound/aac/mob/chickenplop.m4a b/data/sound/aac/mob/chickenplop.m4a new file mode 100755 index 0000000..4459597 Binary files /dev/null and b/data/sound/aac/mob/chickenplop.m4a differ diff --git a/data/sound/aac/mob/cow1.m4a b/data/sound/aac/mob/cow1.m4a new file mode 100755 index 0000000..6f0e2cb Binary files /dev/null and b/data/sound/aac/mob/cow1.m4a differ diff --git a/data/sound/aac/mob/cow2.m4a b/data/sound/aac/mob/cow2.m4a new file mode 100755 index 0000000..f2a9fea Binary files /dev/null and b/data/sound/aac/mob/cow2.m4a differ diff --git a/data/sound/aac/mob/cow3.m4a b/data/sound/aac/mob/cow3.m4a new file mode 100755 index 0000000..fba2ac0 Binary files /dev/null and b/data/sound/aac/mob/cow3.m4a differ diff --git a/data/sound/aac/mob/cow4.m4a b/data/sound/aac/mob/cow4.m4a new file mode 100755 index 0000000..3956a60 Binary files /dev/null and b/data/sound/aac/mob/cow4.m4a differ diff --git a/data/sound/aac/mob/cowhurt1.m4a b/data/sound/aac/mob/cowhurt1.m4a new file mode 100755 index 0000000..5446a94 Binary files /dev/null and b/data/sound/aac/mob/cowhurt1.m4a differ diff --git a/data/sound/aac/mob/cowhurt2.m4a b/data/sound/aac/mob/cowhurt2.m4a new file mode 100755 index 0000000..1cdcc6b Binary files /dev/null and b/data/sound/aac/mob/cowhurt2.m4a differ diff --git a/data/sound/aac/mob/cowhurt3.m4a b/data/sound/aac/mob/cowhurt3.m4a new file mode 100755 index 0000000..9c33b08 Binary files /dev/null and b/data/sound/aac/mob/cowhurt3.m4a differ diff --git a/data/sound/aac/mob/creeper1.m4a b/data/sound/aac/mob/creeper1.m4a new file mode 100755 index 0000000..f3750a5 Binary files /dev/null and b/data/sound/aac/mob/creeper1.m4a differ diff --git a/data/sound/aac/mob/creeper2.m4a b/data/sound/aac/mob/creeper2.m4a new file mode 100755 index 0000000..2cb020f Binary files /dev/null and b/data/sound/aac/mob/creeper2.m4a differ diff --git a/data/sound/aac/mob/creeper3.m4a b/data/sound/aac/mob/creeper3.m4a new file mode 100755 index 0000000..ef3624f Binary files /dev/null and b/data/sound/aac/mob/creeper3.m4a differ diff --git a/data/sound/aac/mob/creeper4.m4a b/data/sound/aac/mob/creeper4.m4a new file mode 100755 index 0000000..fe28a48 Binary files /dev/null and b/data/sound/aac/mob/creeper4.m4a differ diff --git a/data/sound/aac/mob/creeperdeath.m4a b/data/sound/aac/mob/creeperdeath.m4a new file mode 100755 index 0000000..b50b774 Binary files /dev/null and b/data/sound/aac/mob/creeperdeath.m4a differ diff --git a/data/sound/aac/mob/pig1.m4a b/data/sound/aac/mob/pig1.m4a new file mode 100755 index 0000000..8a9ca5d Binary files /dev/null and b/data/sound/aac/mob/pig1.m4a differ diff --git a/data/sound/aac/mob/pig2.m4a b/data/sound/aac/mob/pig2.m4a new file mode 100755 index 0000000..7718831 Binary files /dev/null and b/data/sound/aac/mob/pig2.m4a differ diff --git a/data/sound/aac/mob/pig3.m4a b/data/sound/aac/mob/pig3.m4a new file mode 100755 index 0000000..5327349 Binary files /dev/null and b/data/sound/aac/mob/pig3.m4a differ diff --git a/data/sound/aac/mob/pigdeath.m4a b/data/sound/aac/mob/pigdeath.m4a new file mode 100755 index 0000000..807b909 Binary files /dev/null and b/data/sound/aac/mob/pigdeath.m4a differ diff --git a/data/sound/aac/mob/sheep1.m4a b/data/sound/aac/mob/sheep1.m4a new file mode 100755 index 0000000..8c21e4e Binary files /dev/null and b/data/sound/aac/mob/sheep1.m4a differ diff --git a/data/sound/aac/mob/sheep2.m4a b/data/sound/aac/mob/sheep2.m4a new file mode 100755 index 0000000..0dc9b9a Binary files /dev/null and b/data/sound/aac/mob/sheep2.m4a differ diff --git a/data/sound/aac/mob/sheep3.m4a b/data/sound/aac/mob/sheep3.m4a new file mode 100755 index 0000000..7654ff5 Binary files /dev/null and b/data/sound/aac/mob/sheep3.m4a differ diff --git a/data/sound/aac/mob/skeleton1.m4a b/data/sound/aac/mob/skeleton1.m4a new file mode 100755 index 0000000..ed5f81b Binary files /dev/null and b/data/sound/aac/mob/skeleton1.m4a differ diff --git a/data/sound/aac/mob/skeleton2.m4a b/data/sound/aac/mob/skeleton2.m4a new file mode 100755 index 0000000..2b2c2ef Binary files /dev/null and b/data/sound/aac/mob/skeleton2.m4a differ diff --git a/data/sound/aac/mob/skeleton3.m4a b/data/sound/aac/mob/skeleton3.m4a new file mode 100755 index 0000000..8fa8a29 Binary files /dev/null and b/data/sound/aac/mob/skeleton3.m4a differ diff --git a/data/sound/aac/mob/skeletonhurt1.m4a b/data/sound/aac/mob/skeletonhurt1.m4a new file mode 100755 index 0000000..4f38e25 Binary files /dev/null and b/data/sound/aac/mob/skeletonhurt1.m4a differ diff --git a/data/sound/aac/mob/skeletonhurt2.m4a b/data/sound/aac/mob/skeletonhurt2.m4a new file mode 100755 index 0000000..0d8ec22 Binary files /dev/null and b/data/sound/aac/mob/skeletonhurt2.m4a differ diff --git a/data/sound/aac/mob/skeletonhurt3.m4a b/data/sound/aac/mob/skeletonhurt3.m4a new file mode 100755 index 0000000..95e1e59 Binary files /dev/null and b/data/sound/aac/mob/skeletonhurt3.m4a differ diff --git a/data/sound/aac/mob/skeletonhurt4.m4a b/data/sound/aac/mob/skeletonhurt4.m4a new file mode 100755 index 0000000..28d124f Binary files /dev/null and b/data/sound/aac/mob/skeletonhurt4.m4a differ diff --git a/data/sound/aac/mob/spider1.m4a b/data/sound/aac/mob/spider1.m4a new file mode 100755 index 0000000..dcbcc42 Binary files /dev/null and b/data/sound/aac/mob/spider1.m4a differ diff --git a/data/sound/aac/mob/spider2.m4a b/data/sound/aac/mob/spider2.m4a new file mode 100755 index 0000000..06f9575 Binary files /dev/null and b/data/sound/aac/mob/spider2.m4a differ diff --git a/data/sound/aac/mob/spider3.m4a b/data/sound/aac/mob/spider3.m4a new file mode 100755 index 0000000..2dcb724 Binary files /dev/null and b/data/sound/aac/mob/spider3.m4a differ diff --git a/data/sound/aac/mob/spider4.m4a b/data/sound/aac/mob/spider4.m4a new file mode 100755 index 0000000..ce4ce53 Binary files /dev/null and b/data/sound/aac/mob/spider4.m4a differ diff --git a/data/sound/aac/mob/spiderdeath.m4a b/data/sound/aac/mob/spiderdeath.m4a new file mode 100755 index 0000000..bde5b4d Binary files /dev/null and b/data/sound/aac/mob/spiderdeath.m4a differ diff --git a/data/sound/aac/mob/zombie1.m4a b/data/sound/aac/mob/zombie1.m4a new file mode 100755 index 0000000..de6e8bb Binary files /dev/null and b/data/sound/aac/mob/zombie1.m4a differ diff --git a/data/sound/aac/mob/zombie2.m4a b/data/sound/aac/mob/zombie2.m4a new file mode 100755 index 0000000..a50b1c1 Binary files /dev/null and b/data/sound/aac/mob/zombie2.m4a differ diff --git a/data/sound/aac/mob/zombie3.m4a b/data/sound/aac/mob/zombie3.m4a new file mode 100755 index 0000000..0eb3d75 Binary files /dev/null and b/data/sound/aac/mob/zombie3.m4a differ diff --git a/data/sound/aac/mob/zombiedeath.m4a b/data/sound/aac/mob/zombiedeath.m4a new file mode 100755 index 0000000..3c41e1b Binary files /dev/null and b/data/sound/aac/mob/zombiedeath.m4a differ diff --git a/data/sound/aac/mob/zombiehurt1.m4a b/data/sound/aac/mob/zombiehurt1.m4a new file mode 100755 index 0000000..9256b34 Binary files /dev/null and b/data/sound/aac/mob/zombiehurt1.m4a differ diff --git a/data/sound/aac/mob/zombiehurt2.m4a b/data/sound/aac/mob/zombiehurt2.m4a new file mode 100755 index 0000000..6e6d1ac Binary files /dev/null and b/data/sound/aac/mob/zombiehurt2.m4a differ diff --git a/data/sound/aac/mob/zpig1.m4a b/data/sound/aac/mob/zpig1.m4a new file mode 100755 index 0000000..051c3d6 Binary files /dev/null and b/data/sound/aac/mob/zpig1.m4a differ diff --git a/data/sound/aac/mob/zpig2.m4a b/data/sound/aac/mob/zpig2.m4a new file mode 100755 index 0000000..79df964 Binary files /dev/null and b/data/sound/aac/mob/zpig2.m4a differ diff --git a/data/sound/aac/mob/zpig3.m4a b/data/sound/aac/mob/zpig3.m4a new file mode 100755 index 0000000..2ba80f6 Binary files /dev/null and b/data/sound/aac/mob/zpig3.m4a differ diff --git a/data/sound/aac/mob/zpig4.m4a b/data/sound/aac/mob/zpig4.m4a new file mode 100755 index 0000000..8b46124 Binary files /dev/null and b/data/sound/aac/mob/zpig4.m4a differ diff --git a/data/sound/aac/mob/zpigangry1.m4a b/data/sound/aac/mob/zpigangry1.m4a new file mode 100755 index 0000000..4747a8e Binary files /dev/null and b/data/sound/aac/mob/zpigangry1.m4a differ diff --git a/data/sound/aac/mob/zpigangry2.m4a b/data/sound/aac/mob/zpigangry2.m4a new file mode 100755 index 0000000..f6c4ccb Binary files /dev/null and b/data/sound/aac/mob/zpigangry2.m4a differ diff --git a/data/sound/aac/mob/zpigangry3.m4a b/data/sound/aac/mob/zpigangry3.m4a new file mode 100755 index 0000000..991425d Binary files /dev/null and b/data/sound/aac/mob/zpigangry3.m4a differ diff --git a/data/sound/aac/mob/zpigangry4.m4a b/data/sound/aac/mob/zpigangry4.m4a new file mode 100755 index 0000000..78bf37e Binary files /dev/null and b/data/sound/aac/mob/zpigangry4.m4a differ diff --git a/data/sound/aac/mob/zpigdeath.m4a b/data/sound/aac/mob/zpigdeath.m4a new file mode 100755 index 0000000..8226965 Binary files /dev/null and b/data/sound/aac/mob/zpigdeath.m4a differ diff --git a/data/sound/aac/mob/zpighurt1.m4a b/data/sound/aac/mob/zpighurt1.m4a new file mode 100755 index 0000000..d75fb6c Binary files /dev/null and b/data/sound/aac/mob/zpighurt1.m4a differ diff --git a/data/sound/aac/mob/zpighurt2.m4a b/data/sound/aac/mob/zpighurt2.m4a new file mode 100755 index 0000000..b0ca26d Binary files /dev/null and b/data/sound/aac/mob/zpighurt2.m4a differ diff --git a/data/sound/aac/random/bow.m4a b/data/sound/aac/random/bow.m4a new file mode 100755 index 0000000..f0e1387 Binary files /dev/null and b/data/sound/aac/random/bow.m4a differ diff --git a/data/sound/aac/random/bowhit1.m4a b/data/sound/aac/random/bowhit1.m4a new file mode 100755 index 0000000..53a8233 Binary files /dev/null and b/data/sound/aac/random/bowhit1.m4a differ diff --git a/data/sound/aac/random/bowhit2.m4a b/data/sound/aac/random/bowhit2.m4a new file mode 100755 index 0000000..b6f453a Binary files /dev/null and b/data/sound/aac/random/bowhit2.m4a differ diff --git a/data/sound/aac/random/bowhit3.m4a b/data/sound/aac/random/bowhit3.m4a new file mode 100755 index 0000000..9904b7b Binary files /dev/null and b/data/sound/aac/random/bowhit3.m4a differ diff --git a/data/sound/aac/random/bowhit4.m4a b/data/sound/aac/random/bowhit4.m4a new file mode 100755 index 0000000..6690a6f Binary files /dev/null and b/data/sound/aac/random/bowhit4.m4a differ diff --git a/data/sound/aac/random/click.m4a b/data/sound/aac/random/click.m4a new file mode 100755 index 0000000..b1bb549 Binary files /dev/null and b/data/sound/aac/random/click.m4a differ diff --git a/data/sound/aac/random/door_close.m4a b/data/sound/aac/random/door_close.m4a new file mode 100755 index 0000000..0f6b9ab Binary files /dev/null and b/data/sound/aac/random/door_close.m4a differ diff --git a/data/sound/aac/random/door_open.m4a b/data/sound/aac/random/door_open.m4a new file mode 100755 index 0000000..a30297b Binary files /dev/null and b/data/sound/aac/random/door_open.m4a differ diff --git a/data/sound/aac/random/eat1.m4a b/data/sound/aac/random/eat1.m4a new file mode 100755 index 0000000..570c77f Binary files /dev/null and b/data/sound/aac/random/eat1.m4a differ diff --git a/data/sound/aac/random/eat2.m4a b/data/sound/aac/random/eat2.m4a new file mode 100755 index 0000000..0f80252 Binary files /dev/null and b/data/sound/aac/random/eat2.m4a differ diff --git a/data/sound/aac/random/eat3.m4a b/data/sound/aac/random/eat3.m4a new file mode 100755 index 0000000..f1fa988 Binary files /dev/null and b/data/sound/aac/random/eat3.m4a differ diff --git a/data/sound/aac/random/explode.m4a b/data/sound/aac/random/explode.m4a new file mode 100755 index 0000000..6066a6c Binary files /dev/null and b/data/sound/aac/random/explode.m4a differ diff --git a/data/sound/aac/random/fuse.m4a b/data/sound/aac/random/fuse.m4a new file mode 100755 index 0000000..448935e Binary files /dev/null and b/data/sound/aac/random/fuse.m4a differ diff --git a/data/sound/aac/random/glass1.m4a b/data/sound/aac/random/glass1.m4a new file mode 100755 index 0000000..00df16a Binary files /dev/null and b/data/sound/aac/random/glass1.m4a differ diff --git a/data/sound/aac/random/glass2.m4a b/data/sound/aac/random/glass2.m4a new file mode 100755 index 0000000..aed1a00 Binary files /dev/null and b/data/sound/aac/random/glass2.m4a differ diff --git a/data/sound/aac/random/glass3.m4a b/data/sound/aac/random/glass3.m4a new file mode 100755 index 0000000..da6db26 Binary files /dev/null and b/data/sound/aac/random/glass3.m4a differ diff --git a/data/sound/aac/random/hurt.m4a b/data/sound/aac/random/hurt.m4a new file mode 100755 index 0000000..1e34fac Binary files /dev/null and b/data/sound/aac/random/hurt.m4a differ diff --git a/data/sound/aac/random/pop.m4a b/data/sound/aac/random/pop.m4a new file mode 100755 index 0000000..6dcc598 Binary files /dev/null and b/data/sound/aac/random/pop.m4a differ diff --git a/data/sound/aac/random/splash.m4a b/data/sound/aac/random/splash.m4a new file mode 100755 index 0000000..00af208 Binary files /dev/null and b/data/sound/aac/random/splash.m4a differ diff --git a/data/sound/aac/random/water.m4a b/data/sound/aac/random/water.m4a new file mode 100755 index 0000000..9a4ed3b Binary files /dev/null and b/data/sound/aac/random/water.m4a differ diff --git a/data/sound/aac/step/cloth1.m4a b/data/sound/aac/step/cloth1.m4a new file mode 100755 index 0000000..c43079a Binary files /dev/null and b/data/sound/aac/step/cloth1.m4a differ diff --git a/data/sound/aac/step/cloth2.m4a b/data/sound/aac/step/cloth2.m4a new file mode 100755 index 0000000..2815459 Binary files /dev/null and b/data/sound/aac/step/cloth2.m4a differ diff --git a/data/sound/aac/step/cloth3.m4a b/data/sound/aac/step/cloth3.m4a new file mode 100755 index 0000000..b83ec05 Binary files /dev/null and b/data/sound/aac/step/cloth3.m4a differ diff --git a/data/sound/aac/step/cloth4.m4a b/data/sound/aac/step/cloth4.m4a new file mode 100755 index 0000000..8f4009a Binary files /dev/null and b/data/sound/aac/step/cloth4.m4a differ diff --git a/data/sound/aac/step/grass1.m4a b/data/sound/aac/step/grass1.m4a new file mode 100755 index 0000000..7973ed5 Binary files /dev/null and b/data/sound/aac/step/grass1.m4a differ diff --git a/data/sound/aac/step/grass2.m4a b/data/sound/aac/step/grass2.m4a new file mode 100755 index 0000000..dfbb292 Binary files /dev/null and b/data/sound/aac/step/grass2.m4a differ diff --git a/data/sound/aac/step/grass3.m4a b/data/sound/aac/step/grass3.m4a new file mode 100755 index 0000000..bf6ae03 Binary files /dev/null and b/data/sound/aac/step/grass3.m4a differ diff --git a/data/sound/aac/step/grass4.m4a b/data/sound/aac/step/grass4.m4a new file mode 100755 index 0000000..dfc9bf7 Binary files /dev/null and b/data/sound/aac/step/grass4.m4a differ diff --git a/data/sound/aac/step/gravel2.m4a b/data/sound/aac/step/gravel2.m4a new file mode 100755 index 0000000..2252c60 Binary files /dev/null and b/data/sound/aac/step/gravel2.m4a differ diff --git a/data/sound/aac/step/gravel3.m4a b/data/sound/aac/step/gravel3.m4a new file mode 100755 index 0000000..4643055 Binary files /dev/null and b/data/sound/aac/step/gravel3.m4a differ diff --git a/data/sound/aac/step/gravel4.m4a b/data/sound/aac/step/gravel4.m4a new file mode 100755 index 0000000..1fb0010 Binary files /dev/null and b/data/sound/aac/step/gravel4.m4a differ diff --git a/data/sound/aac/step/ladder1.m4a b/data/sound/aac/step/ladder1.m4a new file mode 100755 index 0000000..8289f9b Binary files /dev/null and b/data/sound/aac/step/ladder1.m4a differ diff --git a/data/sound/aac/step/ladder2.m4a b/data/sound/aac/step/ladder2.m4a new file mode 100755 index 0000000..f55ed27 Binary files /dev/null and b/data/sound/aac/step/ladder2.m4a differ diff --git a/data/sound/aac/step/ladder3.m4a b/data/sound/aac/step/ladder3.m4a new file mode 100755 index 0000000..4aab8bf Binary files /dev/null and b/data/sound/aac/step/ladder3.m4a differ diff --git a/data/sound/aac/step/ladder4.m4a b/data/sound/aac/step/ladder4.m4a new file mode 100755 index 0000000..c27ca96 Binary files /dev/null and b/data/sound/aac/step/ladder4.m4a differ diff --git a/data/sound/aac/step/sand1.m4a b/data/sound/aac/step/sand1.m4a new file mode 100755 index 0000000..5588276 Binary files /dev/null and b/data/sound/aac/step/sand1.m4a differ diff --git a/data/sound/aac/step/sand2.m4a b/data/sound/aac/step/sand2.m4a new file mode 100755 index 0000000..1f6501a Binary files /dev/null and b/data/sound/aac/step/sand2.m4a differ diff --git a/data/sound/aac/step/sand3.m4a b/data/sound/aac/step/sand3.m4a new file mode 100755 index 0000000..520b7cb Binary files /dev/null and b/data/sound/aac/step/sand3.m4a differ diff --git a/data/sound/aac/step/sand4.m4a b/data/sound/aac/step/sand4.m4a new file mode 100755 index 0000000..c8b3f31 Binary files /dev/null and b/data/sound/aac/step/sand4.m4a differ diff --git a/data/sound/aac/step/snow1.m4a b/data/sound/aac/step/snow1.m4a new file mode 100755 index 0000000..03d961d Binary files /dev/null and b/data/sound/aac/step/snow1.m4a differ diff --git a/data/sound/aac/step/snow2.m4a b/data/sound/aac/step/snow2.m4a new file mode 100755 index 0000000..d658bf3 Binary files /dev/null and b/data/sound/aac/step/snow2.m4a differ diff --git a/data/sound/aac/step/snow3.m4a b/data/sound/aac/step/snow3.m4a new file mode 100755 index 0000000..eb2b0bc Binary files /dev/null and b/data/sound/aac/step/snow3.m4a differ diff --git a/data/sound/aac/step/snow4.m4a b/data/sound/aac/step/snow4.m4a new file mode 100755 index 0000000..2fc45ce Binary files /dev/null and b/data/sound/aac/step/snow4.m4a differ diff --git a/data/sound/aac/step/stone1.m4a b/data/sound/aac/step/stone1.m4a new file mode 100755 index 0000000..797cdc0 Binary files /dev/null and b/data/sound/aac/step/stone1.m4a differ diff --git a/data/sound/aac/step/stone2.m4a b/data/sound/aac/step/stone2.m4a new file mode 100755 index 0000000..ca27b87 Binary files /dev/null and b/data/sound/aac/step/stone2.m4a differ diff --git a/data/sound/aac/step/stone3.m4a b/data/sound/aac/step/stone3.m4a new file mode 100755 index 0000000..30d4589 Binary files /dev/null and b/data/sound/aac/step/stone3.m4a differ diff --git a/data/sound/aac/step/stone4.m4a b/data/sound/aac/step/stone4.m4a new file mode 100755 index 0000000..5bd9c71 Binary files /dev/null and b/data/sound/aac/step/stone4.m4a differ diff --git a/data/sound/aac/step/wood1.m4a b/data/sound/aac/step/wood1.m4a new file mode 100755 index 0000000..93fa4a0 Binary files /dev/null and b/data/sound/aac/step/wood1.m4a differ diff --git a/data/sound/aac/step/wood2.m4a b/data/sound/aac/step/wood2.m4a new file mode 100755 index 0000000..a2539ae Binary files /dev/null and b/data/sound/aac/step/wood2.m4a differ diff --git a/data/sound/aac/step/wood3.m4a b/data/sound/aac/step/wood3.m4a new file mode 100755 index 0000000..475d4b0 Binary files /dev/null and b/data/sound/aac/step/wood3.m4a differ diff --git a/data/sound/aac/step/wood4.m4a b/data/sound/aac/step/wood4.m4a new file mode 100755 index 0000000..3d02fc6 Binary files /dev/null and b/data/sound/aac/step/wood4.m4a differ diff --git a/glad/include/KHR/khrplatform.h b/glad/include/KHR/khrplatform.h new file mode 100755 index 0000000..0164644 --- /dev/null +++ b/glad/include/KHR/khrplatform.h @@ -0,0 +1,311 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 +/* + * To support platform where unsigned long cannot be used interchangeably with + * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. + * Ideally, we could just use (u)intptr_t everywhere, but this could result in + * ABI breakage if khronos_uintptr_t is changed from unsigned long to + * unsigned long long or similar (this results in different C++ name mangling). + * To avoid changes for existing platforms, we restrict usage of intptr_t to + * platforms where the size of a pointer is larger than the size of long. + */ +#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) +#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ +#define KHRONOS_USE_INTPTR_T +#endif +#endif + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef KHRONOS_USE_INTPTR_T +typedef intptr_t khronos_intptr_t; +typedef uintptr_t khronos_uintptr_t; +#elif defined(_WIN64) +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +#endif + +#if defined(_WIN64) +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ diff --git a/glad/include/glad/glad.h b/glad/include/glad/glad.h new file mode 100755 index 0000000..c730089 --- /dev/null +++ b/glad/include/glad/glad.h @@ -0,0 +1,926 @@ +/* + + OpenGL ES loader generated by glad 0.1.36 on Sun Mar 1 23:53:39 2026. + + Language/Generator: C/C++ + Specification: gl + APIs: gles1=1.0 + Profile: compatibility + Extensions: + GL_OES_EGL_image, + GL_OES_EGL_image_external + Loader: True + Local files: False + Omit khrplatform: False + Reproducible: False + + Commandline: + --profile="compatibility" --api="gles1=1.0" --generator="c" --spec="gl" --extensions="GL_OES_EGL_image,GL_OES_EGL_image_external" + Online: + https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gles1%3D1.0&extensions=GL_OES_EGL_image&extensions=GL_OES_EGL_image_external +*/ + + +#ifndef __glad_h_ +#define __glad_h_ + +#ifdef __gl_h_ +#error OpenGL ES 1 header already included, remove this include, glad already provides it +#endif +#define __gl_h_ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define APIENTRY __stdcall +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY APIENTRY +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct gladGLversionStruct { + int major; + int minor; +}; + +typedef void* (* GLADloadproc)(const char *name); + +#ifndef GLAPI +# if defined(GLAD_GLAPI_EXPORT) +# if defined(_WIN32) || defined(__CYGWIN__) +# if defined(GLAD_GLAPI_EXPORT_BUILD) +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllexport)) extern +# else +# define GLAPI __declspec(dllexport) extern +# endif +# else +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllimport)) extern +# else +# define GLAPI __declspec(dllimport) extern +# endif +# endif +# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD) +# define GLAPI __attribute__ ((visibility ("default"))) extern +# else +# define GLAPI extern +# endif +# else +# define GLAPI extern +# endif +#endif + +GLAPI struct gladGLversionStruct GLVersion; +GLAPI int gladLoadGLES1Loader(GLADloadproc); + +#include +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef khronos_int8_t GLbyte; +typedef khronos_uint8_t GLubyte; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef int GLint; +typedef unsigned int GLuint; +typedef khronos_int32_t GLclampx; +typedef int GLsizei; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void *GLeglClientBufferEXT; +typedef void *GLeglImageOES; +typedef char GLchar; +typedef char GLcharARB; +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef khronos_uint16_t GLhalf; +typedef khronos_uint16_t GLhalfARB; +typedef khronos_int32_t GLfixed; +typedef khronos_intptr_t GLintptr; +typedef khronos_intptr_t GLintptrARB; +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_ssize_t GLsizeiptrARB; +typedef khronos_int64_t GLint64; +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64; +typedef khronos_uint64_t GLuint64EXT; +typedef struct __GLsync *GLsync; +struct _cl_context; +struct _cl_event; +typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +typedef unsigned short GLhalfNV; +typedef GLintptr GLvdpauSurfaceNV; +typedef void (APIENTRY *GLVULKANPROCNV)(void); +#define GL_VERSION_ES_CL_1_0 1 +#define GL_VERSION_ES_CM_1_1 1 +#define GL_VERSION_ES_CL_1_1 1 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_FALSE 0 +#define GL_TRUE 1 +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_FOG 0x0B60 +#define GL_LIGHTING 0x0B50 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_CULL_FACE 0x0B44 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_BLEND 0x0BE2 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_DITHER 0x0BD0 +#define GL_STENCIL_TEST 0x0B90 +#define GL_DEPTH_TEST 0x0B71 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_NORMALIZE 0x0BA1 +#define GL_RESCALE_NORMAL 0x803A +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_LINE_WIDTH 0x0B21 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_SHADE_MODEL 0x0B54 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_FOG_HINT 0x0C54 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_FLOAT 0x1406 +#define GL_FIXED 0x140C +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_ADD 0x0104 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_REPEAT 0x2901 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_STATIC_DRAW 0x88E4 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_SUBTRACT 0x84E7 +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_ALPHA_SCALE 0x0D1C +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC2_ALPHA 0x858A +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#ifndef GL_VERSION_ES_CM_1_0 +#define GL_VERSION_ES_CM_1_0 1 +GLAPI int GLAD_GL_VERSION_ES_CM_1_0; +typedef void (APIENTRYP PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref); +GLAPI PFNGLALPHAFUNCPROC glad_glAlphaFunc; +#define glAlphaFunc glad_glAlphaFunc +typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCLEARCOLORPROC glad_glClearColor; +#define glClearColor glad_glClearColor +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC)(GLfloat d); +GLAPI PFNGLCLEARDEPTHFPROC glad_glClearDepthf; +#define glClearDepthf glad_glClearDepthf +typedef void (APIENTRYP PFNGLCLIPPLANEFPROC)(GLenum p, const GLfloat *eqn); +GLAPI PFNGLCLIPPLANEFPROC glad_glClipPlanef; +#define glClipPlanef glad_glClipPlanef +typedef void (APIENTRYP PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCOLOR4FPROC glad_glColor4f; +#define glColor4f glad_glColor4f +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f); +GLAPI PFNGLDEPTHRANGEFPROC glad_glDepthRangef; +#define glDepthRangef glad_glDepthRangef +typedef void (APIENTRYP PFNGLFOGFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLFOGFPROC glad_glFogf; +#define glFogf glad_glFogf +typedef void (APIENTRYP PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLFOGFVPROC glad_glFogfv; +#define glFogfv glad_glFogfv +typedef void (APIENTRYP PFNGLFRUSTUMFPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +GLAPI PFNGLFRUSTUMFPROC glad_glFrustumf; +#define glFrustumf glad_glFrustumf +typedef void (APIENTRYP PFNGLGETCLIPPLANEFPROC)(GLenum plane, GLfloat *equation); +GLAPI PFNGLGETCLIPPLANEFPROC glad_glGetClipPlanef; +#define glGetClipPlanef glad_glGetClipPlanef +typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data); +GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv; +#define glGetFloatv glad_glGetFloatv +typedef void (APIENTRYP PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params); +GLAPI PFNGLGETLIGHTFVPROC glad_glGetLightfv; +#define glGetLightfv glad_glGetLightfv +typedef void (APIENTRYP PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params); +GLAPI PFNGLGETMATERIALFVPROC glad_glGetMaterialfv; +#define glGetMaterialfv glad_glGetMaterialfv +typedef void (APIENTRYP PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv; +#define glGetTexEnvfv glad_glGetTexEnvfv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +#define glGetTexParameterfv glad_glGetTexParameterfv +typedef void (APIENTRYP PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLLIGHTMODELFPROC glad_glLightModelf; +#define glLightModelf glad_glLightModelf +typedef void (APIENTRYP PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLLIGHTMODELFVPROC glad_glLightModelfv; +#define glLightModelfv glad_glLightModelfv +typedef void (APIENTRYP PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param); +GLAPI PFNGLLIGHTFPROC glad_glLightf; +#define glLightf glad_glLightf +typedef void (APIENTRYP PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params); +GLAPI PFNGLLIGHTFVPROC glad_glLightfv; +#define glLightfv glad_glLightfv +typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width); +GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth; +#define glLineWidth glad_glLineWidth +typedef void (APIENTRYP PFNGLLOADMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLLOADMATRIXFPROC glad_glLoadMatrixf; +#define glLoadMatrixf glad_glLoadMatrixf +typedef void (APIENTRYP PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param); +GLAPI PFNGLMATERIALFPROC glad_glMaterialf; +#define glMaterialf glad_glMaterialf +typedef void (APIENTRYP PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params); +GLAPI PFNGLMATERIALFVPROC glad_glMaterialfv; +#define glMaterialfv glad_glMaterialfv +typedef void (APIENTRYP PFNGLMULTMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLMULTMATRIXFPROC glad_glMultMatrixf; +#define glMultMatrixf glad_glMultMatrixf +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f; +#define glMultiTexCoord4f glad_glMultiTexCoord4f +typedef void (APIENTRYP PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI PFNGLNORMAL3FPROC glad_glNormal3f; +#define glNormal3f glad_glNormal3f +typedef void (APIENTRYP PFNGLORTHOFPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +GLAPI PFNGLORTHOFPROC glad_glOrthof; +#define glOrthof glad_glOrthof +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +#define glPointParameterf glad_glPointParameterf +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +#define glPointParameterfv glad_glPointParameterfv +typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size); +GLAPI PFNGLPOINTSIZEPROC glad_glPointSize; +#define glPointSize glad_glPointSize +typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); +GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +#define glPolygonOffset glad_glPolygonOffset +typedef void (APIENTRYP PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLROTATEFPROC glad_glRotatef; +#define glRotatef glad_glRotatef +typedef void (APIENTRYP PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLSCALEFPROC glad_glScalef; +#define glScalef glad_glScalef +typedef void (APIENTRYP PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param); +GLAPI PFNGLTEXENVFPROC glad_glTexEnvf; +#define glTexEnvf glad_glTexEnvf +typedef void (APIENTRYP PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXENVFVPROC glad_glTexEnvfv; +#define glTexEnvfv glad_glTexEnvfv +typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); +GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +#define glTexParameterf glad_glTexParameterf +typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +#define glTexParameterfv glad_glTexParameterfv +typedef void (APIENTRYP PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLTRANSLATEFPROC glad_glTranslatef; +#define glTranslatef glad_glTranslatef +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture); +GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +#define glActiveTexture glad_glActiveTexture +typedef void (APIENTRYP PFNGLALPHAFUNCXPROC)(GLenum func, GLfixed ref); +GLAPI PFNGLALPHAFUNCXPROC glad_glAlphaFuncx; +#define glAlphaFuncx glad_glAlphaFuncx +typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); +GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer; +#define glBindBuffer glad_glBindBuffer +typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); +GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture; +#define glBindTexture glad_glBindTexture +typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); +GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc; +#define glBlendFunc glad_glBlendFunc +typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data, GLenum usage); +GLAPI PFNGLBUFFERDATAPROC glad_glBufferData; +#define glBufferData glad_glBufferData +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +#define glBufferSubData glad_glBufferSubData +typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask); +GLAPI PFNGLCLEARPROC glad_glClear; +#define glClear glad_glClear +typedef void (APIENTRYP PFNGLCLEARCOLORXPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI PFNGLCLEARCOLORXPROC glad_glClearColorx; +#define glClearColorx glad_glClearColorx +typedef void (APIENTRYP PFNGLCLEARDEPTHXPROC)(GLfixed depth); +GLAPI PFNGLCLEARDEPTHXPROC glad_glClearDepthx; +#define glClearDepthx glad_glClearDepthx +typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s); +GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil; +#define glClearStencil glad_glClearStencil +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); +GLAPI PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture; +#define glClientActiveTexture glad_glClientActiveTexture +typedef void (APIENTRYP PFNGLCLIPPLANEXPROC)(GLenum plane, const GLfixed *equation); +GLAPI PFNGLCLIPPLANEXPROC glad_glClipPlanex; +#define glClipPlanex glad_glClipPlanex +typedef void (APIENTRYP PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI PFNGLCOLOR4UBPROC glad_glColor4ub; +#define glColor4ub glad_glColor4ub +typedef void (APIENTRYP PFNGLCOLOR4XPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI PFNGLCOLOR4XPROC glad_glColor4x; +#define glColor4x glad_glColor4x +typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI PFNGLCOLORMASKPROC glad_glColorMask; +#define glColorMask glad_glColorMask +typedef void (APIENTRYP PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLCOLORPOINTERPROC glad_glColorPointer; +#define glColorPointer glad_glColorPointer +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +#define glCompressedTexImage2D glad_glCompressedTexImage2D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +#define glCopyTexImage2D glad_glCopyTexImage2D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +#define glCopyTexSubImage2D glad_glCopyTexSubImage2D +typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode); +GLAPI PFNGLCULLFACEPROC glad_glCullFace; +#define glCullFace glad_glCullFace +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); +GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +#define glDeleteBuffers glad_glDeleteBuffers +typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures); +GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +#define glDeleteTextures glad_glDeleteTextures +typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func); +GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc; +#define glDepthFunc glad_glDepthFunc +typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag); +GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask; +#define glDepthMask glad_glDepthMask +typedef void (APIENTRYP PFNGLDEPTHRANGEXPROC)(GLfixed n, GLfixed f); +GLAPI PFNGLDEPTHRANGEXPROC glad_glDepthRangex; +#define glDepthRangex glad_glDepthRangex +typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap); +GLAPI PFNGLDISABLEPROC glad_glDisable; +#define glDisable glad_glDisable +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEPROC)(GLenum array); +GLAPI PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState; +#define glDisableClientState glad_glDisableClientState +typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); +GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays; +#define glDrawArrays glad_glDrawArrays +typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices); +GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements; +#define glDrawElements glad_glDrawElements +typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap); +GLAPI PFNGLENABLEPROC glad_glEnable; +#define glEnable glad_glEnable +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEPROC)(GLenum array); +GLAPI PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState; +#define glEnableClientState glad_glEnableClientState +typedef void (APIENTRYP PFNGLFINISHPROC)(void); +GLAPI PFNGLFINISHPROC glad_glFinish; +#define glFinish glad_glFinish +typedef void (APIENTRYP PFNGLFLUSHPROC)(void); +GLAPI PFNGLFLUSHPROC glad_glFlush; +#define glFlush glad_glFlush +typedef void (APIENTRYP PFNGLFOGXPROC)(GLenum pname, GLfixed param); +GLAPI PFNGLFOGXPROC glad_glFogx; +#define glFogx glad_glFogx +typedef void (APIENTRYP PFNGLFOGXVPROC)(GLenum pname, const GLfixed *param); +GLAPI PFNGLFOGXVPROC glad_glFogxv; +#define glFogxv glad_glFogxv +typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode); +GLAPI PFNGLFRONTFACEPROC glad_glFrontFace; +#define glFrontFace glad_glFrontFace +typedef void (APIENTRYP PFNGLFRUSTUMXPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +GLAPI PFNGLFRUSTUMXPROC glad_glFrustumx; +#define glFrustumx glad_glFrustumx +typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data); +GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +#define glGetBooleanv glad_glGetBooleanv +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +#define glGetBufferParameteriv glad_glGetBufferParameteriv +typedef void (APIENTRYP PFNGLGETCLIPPLANEXPROC)(GLenum plane, GLfixed *equation); +GLAPI PFNGLGETCLIPPLANEXPROC glad_glGetClipPlanex; +#define glGetClipPlanex glad_glGetClipPlanex +typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); +GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers; +#define glGenBuffers glad_glGenBuffers +typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures); +GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures; +#define glGenTextures glad_glGenTextures +typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(void); +GLAPI PFNGLGETERRORPROC glad_glGetError; +#define glGetError glad_glGetError +typedef void (APIENTRYP PFNGLGETFIXEDVPROC)(GLenum pname, GLfixed *params); +GLAPI PFNGLGETFIXEDVPROC glad_glGetFixedv; +#define glGetFixedv glad_glGetFixedv +typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data); +GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv; +#define glGetIntegerv glad_glGetIntegerv +typedef void (APIENTRYP PFNGLGETLIGHTXVPROC)(GLenum light, GLenum pname, GLfixed *params); +GLAPI PFNGLGETLIGHTXVPROC glad_glGetLightxv; +#define glGetLightxv glad_glGetLightxv +typedef void (APIENTRYP PFNGLGETMATERIALXVPROC)(GLenum face, GLenum pname, GLfixed *params); +GLAPI PFNGLGETMATERIALXVPROC glad_glGetMaterialxv; +#define glGetMaterialxv glad_glGetMaterialxv +typedef void (APIENTRYP PFNGLGETPOINTERVPROC)(GLenum pname, void **params); +GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv; +#define glGetPointerv glad_glGetPointerv +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name); +GLAPI PFNGLGETSTRINGPROC glad_glGetString; +#define glGetString glad_glGetString +typedef void (APIENTRYP PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXENVIVPROC glad_glGetTexEnviv; +#define glGetTexEnviv glad_glGetTexEnviv +typedef void (APIENTRYP PFNGLGETTEXENVXVPROC)(GLenum target, GLenum pname, GLfixed *params); +GLAPI PFNGLGETTEXENVXVPROC glad_glGetTexEnvxv; +#define glGetTexEnvxv glad_glGetTexEnvxv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +#define glGetTexParameteriv glad_glGetTexParameteriv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVPROC)(GLenum target, GLenum pname, GLfixed *params); +GLAPI PFNGLGETTEXPARAMETERXVPROC glad_glGetTexParameterxv; +#define glGetTexParameterxv glad_glGetTexParameterxv +typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode); +GLAPI PFNGLHINTPROC glad_glHint; +#define glHint glad_glHint +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer); +GLAPI PFNGLISBUFFERPROC glad_glIsBuffer; +#define glIsBuffer glad_glIsBuffer +typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); +GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; +#define glIsEnabled glad_glIsEnabled +typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture); +GLAPI PFNGLISTEXTUREPROC glad_glIsTexture; +#define glIsTexture glad_glIsTexture +typedef void (APIENTRYP PFNGLLIGHTMODELXPROC)(GLenum pname, GLfixed param); +GLAPI PFNGLLIGHTMODELXPROC glad_glLightModelx; +#define glLightModelx glad_glLightModelx +typedef void (APIENTRYP PFNGLLIGHTMODELXVPROC)(GLenum pname, const GLfixed *param); +GLAPI PFNGLLIGHTMODELXVPROC glad_glLightModelxv; +#define glLightModelxv glad_glLightModelxv +typedef void (APIENTRYP PFNGLLIGHTXPROC)(GLenum light, GLenum pname, GLfixed param); +GLAPI PFNGLLIGHTXPROC glad_glLightx; +#define glLightx glad_glLightx +typedef void (APIENTRYP PFNGLLIGHTXVPROC)(GLenum light, GLenum pname, const GLfixed *params); +GLAPI PFNGLLIGHTXVPROC glad_glLightxv; +#define glLightxv glad_glLightxv +typedef void (APIENTRYP PFNGLLINEWIDTHXPROC)(GLfixed width); +GLAPI PFNGLLINEWIDTHXPROC glad_glLineWidthx; +#define glLineWidthx glad_glLineWidthx +typedef void (APIENTRYP PFNGLLOADIDENTITYPROC)(void); +GLAPI PFNGLLOADIDENTITYPROC glad_glLoadIdentity; +#define glLoadIdentity glad_glLoadIdentity +typedef void (APIENTRYP PFNGLLOADMATRIXXPROC)(const GLfixed *m); +GLAPI PFNGLLOADMATRIXXPROC glad_glLoadMatrixx; +#define glLoadMatrixx glad_glLoadMatrixx +typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode); +GLAPI PFNGLLOGICOPPROC glad_glLogicOp; +#define glLogicOp glad_glLogicOp +typedef void (APIENTRYP PFNGLMATERIALXPROC)(GLenum face, GLenum pname, GLfixed param); +GLAPI PFNGLMATERIALXPROC glad_glMaterialx; +#define glMaterialx glad_glMaterialx +typedef void (APIENTRYP PFNGLMATERIALXVPROC)(GLenum face, GLenum pname, const GLfixed *param); +GLAPI PFNGLMATERIALXVPROC glad_glMaterialxv; +#define glMaterialxv glad_glMaterialxv +typedef void (APIENTRYP PFNGLMATRIXMODEPROC)(GLenum mode); +GLAPI PFNGLMATRIXMODEPROC glad_glMatrixMode; +#define glMatrixMode glad_glMatrixMode +typedef void (APIENTRYP PFNGLMULTMATRIXXPROC)(const GLfixed *m); +GLAPI PFNGLMULTMATRIXXPROC glad_glMultMatrixx; +#define glMultMatrixx glad_glMultMatrixx +typedef void (APIENTRYP PFNGLMULTITEXCOORD4XPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +GLAPI PFNGLMULTITEXCOORD4XPROC glad_glMultiTexCoord4x; +#define glMultiTexCoord4x glad_glMultiTexCoord4x +typedef void (APIENTRYP PFNGLNORMAL3XPROC)(GLfixed nx, GLfixed ny, GLfixed nz); +GLAPI PFNGLNORMAL3XPROC glad_glNormal3x; +#define glNormal3x glad_glNormal3x +typedef void (APIENTRYP PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLNORMALPOINTERPROC glad_glNormalPointer; +#define glNormalPointer glad_glNormalPointer +typedef void (APIENTRYP PFNGLORTHOXPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +GLAPI PFNGLORTHOXPROC glad_glOrthox; +#define glOrthox glad_glOrthox +typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei; +#define glPixelStorei glad_glPixelStorei +typedef void (APIENTRYP PFNGLPOINTPARAMETERXPROC)(GLenum pname, GLfixed param); +GLAPI PFNGLPOINTPARAMETERXPROC glad_glPointParameterx; +#define glPointParameterx glad_glPointParameterx +typedef void (APIENTRYP PFNGLPOINTPARAMETERXVPROC)(GLenum pname, const GLfixed *params); +GLAPI PFNGLPOINTPARAMETERXVPROC glad_glPointParameterxv; +#define glPointParameterxv glad_glPointParameterxv +typedef void (APIENTRYP PFNGLPOINTSIZEXPROC)(GLfixed size); +GLAPI PFNGLPOINTSIZEXPROC glad_glPointSizex; +#define glPointSizex glad_glPointSizex +typedef void (APIENTRYP PFNGLPOLYGONOFFSETXPROC)(GLfixed factor, GLfixed units); +GLAPI PFNGLPOLYGONOFFSETXPROC glad_glPolygonOffsetx; +#define glPolygonOffsetx glad_glPolygonOffsetx +typedef void (APIENTRYP PFNGLPOPMATRIXPROC)(void); +GLAPI PFNGLPOPMATRIXPROC glad_glPopMatrix; +#define glPopMatrix glad_glPopMatrix +typedef void (APIENTRYP PFNGLPUSHMATRIXPROC)(void); +GLAPI PFNGLPUSHMATRIXPROC glad_glPushMatrix; +#define glPushMatrix glad_glPushMatrix +typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +GLAPI PFNGLREADPIXELSPROC glad_glReadPixels; +#define glReadPixels glad_glReadPixels +typedef void (APIENTRYP PFNGLROTATEXPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +GLAPI PFNGLROTATEXPROC glad_glRotatex; +#define glRotatex glad_glRotatex +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); +GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +#define glSampleCoverage glad_glSampleCoverage +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEXPROC)(GLclampx value, GLboolean invert); +GLAPI PFNGLSAMPLECOVERAGEXPROC glad_glSampleCoveragex; +#define glSampleCoveragex glad_glSampleCoveragex +typedef void (APIENTRYP PFNGLSCALEXPROC)(GLfixed x, GLfixed y, GLfixed z); +GLAPI PFNGLSCALEXPROC glad_glScalex; +#define glScalex glad_glScalex +typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLSCISSORPROC glad_glScissor; +#define glScissor glad_glScissor +typedef void (APIENTRYP PFNGLSHADEMODELPROC)(GLenum mode); +GLAPI PFNGLSHADEMODELPROC glad_glShadeModel; +#define glShadeModel glad_glShadeModel +typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); +GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc; +#define glStencilFunc glad_glStencilFunc +typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask); +GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask; +#define glStencilMask glad_glStencilMask +typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); +GLAPI PFNGLSTENCILOPPROC glad_glStencilOp; +#define glStencilOp glad_glStencilOp +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer; +#define glTexCoordPointer glad_glTexCoordPointer +typedef void (APIENTRYP PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLTEXENVIPROC glad_glTexEnvi; +#define glTexEnvi glad_glTexEnvi +typedef void (APIENTRYP PFNGLTEXENVXPROC)(GLenum target, GLenum pname, GLfixed param); +GLAPI PFNGLTEXENVXPROC glad_glTexEnvx; +#define glTexEnvx glad_glTexEnvx +typedef void (APIENTRYP PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXENVIVPROC glad_glTexEnviv; +#define glTexEnviv glad_glTexEnviv +typedef void (APIENTRYP PFNGLTEXENVXVPROC)(GLenum target, GLenum pname, const GLfixed *params); +GLAPI PFNGLTEXENVXVPROC glad_glTexEnvxv; +#define glTexEnvxv glad_glTexEnvxv +typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +#define glTexImage2D glad_glTexImage2D +typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +#define glTexParameteri glad_glTexParameteri +typedef void (APIENTRYP PFNGLTEXPARAMETERXPROC)(GLenum target, GLenum pname, GLfixed param); +GLAPI PFNGLTEXPARAMETERXPROC glad_glTexParameterx; +#define glTexParameterx glad_glTexParameterx +typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +#define glTexParameteriv glad_glTexParameteriv +typedef void (APIENTRYP PFNGLTEXPARAMETERXVPROC)(GLenum target, GLenum pname, const GLfixed *params); +GLAPI PFNGLTEXPARAMETERXVPROC glad_glTexParameterxv; +#define glTexParameterxv glad_glTexParameterxv +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +#define glTexSubImage2D glad_glTexSubImage2D +typedef void (APIENTRYP PFNGLTRANSLATEXPROC)(GLfixed x, GLfixed y, GLfixed z); +GLAPI PFNGLTRANSLATEXPROC glad_glTranslatex; +#define glTranslatex glad_glTranslatex +typedef void (APIENTRYP PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXPOINTERPROC glad_glVertexPointer; +#define glVertexPointer glad_glVertexPointer +typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLVIEWPORTPROC glad_glViewport; +#define glViewport glad_glViewport +#endif +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 +GLAPI int GLAD_GL_OES_EGL_image; +typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)(GLenum target, GLeglImageOES image); +GLAPI PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glad_glEGLImageTargetTexture2DOES; +#define glEGLImageTargetTexture2DOES glad_glEGLImageTargetTexture2DOES +typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)(GLenum target, GLeglImageOES image); +GLAPI PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC glad_glEGLImageTargetRenderbufferStorageOES; +#define glEGLImageTargetRenderbufferStorageOES glad_glEGLImageTargetRenderbufferStorageOES +#endif +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 +GLAPI int GLAD_GL_OES_EGL_image_external; +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/src/glad.c b/glad/src/glad.c new file mode 100755 index 0000000..e307636 --- /dev/null +++ b/glad/src/glad.c @@ -0,0 +1,496 @@ +/* + + OpenGL ES loader generated by glad 0.1.36 on Sun Mar 1 23:53:39 2026. + + Language/Generator: C/C++ + Specification: gl + APIs: gles1=1.0 + Profile: compatibility + Extensions: + GL_OES_EGL_image, + GL_OES_EGL_image_external + Loader: True + Local files: False + Omit khrplatform: False + Reproducible: False + + Commandline: + --profile="compatibility" --api="gles1=1.0" --generator="c" --spec="gl" --extensions="GL_OES_EGL_image,GL_OES_EGL_image_external" + Online: + https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gles1%3D1.0&extensions=GL_OES_EGL_image&extensions=GL_OES_EGL_image_external +*/ + +#include +#include +#include +#include + +struct gladGLversionStruct GLVersion = { 0, 0 }; + +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) +#define _GLAD_IS_SOME_NEW_VERSION 1 +#endif + +static int max_loaded_major; +static int max_loaded_minor; + +static const char *exts = NULL; +static int num_exts_i = 0; +static char **exts_i = NULL; + +static int get_exts(void) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + exts = (const char *)glGetString(GL_EXTENSIONS); +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + + num_exts_i = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); + if (num_exts_i > 0) { + exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i)); + } + + if (exts_i == NULL) { + return 0; + } + + for(index = 0; index < num_exts_i; index++) { + const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index); + size_t len = strlen(gl_str_tmp); + + char *local_str = (char*)malloc((len+1) * sizeof(char)); + if(local_str != NULL) { + memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char)); + } + exts_i[index] = local_str; + } + } +#endif + return 1; +} + +static void free_exts(void) { + if (exts_i != NULL) { + int index; + for(index = 0; index < num_exts_i; index++) { + free((char *)exts_i[index]); + } + free((void *)exts_i); + exts_i = NULL; + } +} + +static int has_ext(const char *ext) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + const char *extensions; + const char *loc; + const char *terminator; + extensions = exts; + if(extensions == NULL || ext == NULL) { + return 0; + } + + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) { + return 0; + } + + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) { + return 1; + } + extensions = terminator; + } +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + if(exts_i == NULL) return 0; + for(index = 0; index < num_exts_i; index++) { + const char *e = exts_i[index]; + + if(exts_i[index] != NULL && strcmp(e, ext) == 0) { + return 1; + } + } + } +#endif + + return 0; +} +int GLAD_GL_VERSION_ES_CM_1_0 = 0; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; +PFNGLALPHAFUNCPROC glad_glAlphaFunc = NULL; +PFNGLALPHAFUNCXPROC glad_glAlphaFuncx = NULL; +PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; +PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; +PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; +PFNGLBUFFERDATAPROC glad_glBufferData = NULL; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; +PFNGLCLEARPROC glad_glClear = NULL; +PFNGLCLEARCOLORPROC glad_glClearColor = NULL; +PFNGLCLEARCOLORXPROC glad_glClearColorx = NULL; +PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; +PFNGLCLEARDEPTHXPROC glad_glClearDepthx = NULL; +PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; +PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture = NULL; +PFNGLCLIPPLANEFPROC glad_glClipPlanef = NULL; +PFNGLCLIPPLANEXPROC glad_glClipPlanex = NULL; +PFNGLCOLOR4FPROC glad_glColor4f = NULL; +PFNGLCOLOR4UBPROC glad_glColor4ub = NULL; +PFNGLCOLOR4XPROC glad_glColor4x = NULL; +PFNGLCOLORMASKPROC glad_glColorMask = NULL; +PFNGLCOLORPOINTERPROC glad_glColorPointer = NULL; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; +PFNGLCULLFACEPROC glad_glCullFace = NULL; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; +PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; +PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; +PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; +PFNGLDEPTHRANGEXPROC glad_glDepthRangex = NULL; +PFNGLDISABLEPROC glad_glDisable = NULL; +PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState = NULL; +PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; +PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; +PFNGLENABLEPROC glad_glEnable = NULL; +PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState = NULL; +PFNGLFINISHPROC glad_glFinish = NULL; +PFNGLFLUSHPROC glad_glFlush = NULL; +PFNGLFOGFPROC glad_glFogf = NULL; +PFNGLFOGFVPROC glad_glFogfv = NULL; +PFNGLFOGXPROC glad_glFogx = NULL; +PFNGLFOGXVPROC glad_glFogxv = NULL; +PFNGLFRONTFACEPROC glad_glFrontFace = NULL; +PFNGLFRUSTUMFPROC glad_glFrustumf = NULL; +PFNGLFRUSTUMXPROC glad_glFrustumx = NULL; +PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; +PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; +PFNGLGETCLIPPLANEFPROC glad_glGetClipPlanef = NULL; +PFNGLGETCLIPPLANEXPROC glad_glGetClipPlanex = NULL; +PFNGLGETERRORPROC glad_glGetError = NULL; +PFNGLGETFIXEDVPROC glad_glGetFixedv = NULL; +PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; +PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; +PFNGLGETLIGHTFVPROC glad_glGetLightfv = NULL; +PFNGLGETLIGHTXVPROC glad_glGetLightxv = NULL; +PFNGLGETMATERIALFVPROC glad_glGetMaterialfv = NULL; +PFNGLGETMATERIALXVPROC glad_glGetMaterialxv = NULL; +PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; +PFNGLGETSTRINGPROC glad_glGetString = NULL; +PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv = NULL; +PFNGLGETTEXENVIVPROC glad_glGetTexEnviv = NULL; +PFNGLGETTEXENVXVPROC glad_glGetTexEnvxv = NULL; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; +PFNGLGETTEXPARAMETERXVPROC glad_glGetTexParameterxv = NULL; +PFNGLHINTPROC glad_glHint = NULL; +PFNGLISBUFFERPROC glad_glIsBuffer = NULL; +PFNGLISENABLEDPROC glad_glIsEnabled = NULL; +PFNGLISTEXTUREPROC glad_glIsTexture = NULL; +PFNGLLIGHTMODELFPROC glad_glLightModelf = NULL; +PFNGLLIGHTMODELFVPROC glad_glLightModelfv = NULL; +PFNGLLIGHTMODELXPROC glad_glLightModelx = NULL; +PFNGLLIGHTMODELXVPROC glad_glLightModelxv = NULL; +PFNGLLIGHTFPROC glad_glLightf = NULL; +PFNGLLIGHTFVPROC glad_glLightfv = NULL; +PFNGLLIGHTXPROC glad_glLightx = NULL; +PFNGLLIGHTXVPROC glad_glLightxv = NULL; +PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; +PFNGLLINEWIDTHXPROC glad_glLineWidthx = NULL; +PFNGLLOADIDENTITYPROC glad_glLoadIdentity = NULL; +PFNGLLOADMATRIXFPROC glad_glLoadMatrixf = NULL; +PFNGLLOADMATRIXXPROC glad_glLoadMatrixx = NULL; +PFNGLLOGICOPPROC glad_glLogicOp = NULL; +PFNGLMATERIALFPROC glad_glMaterialf = NULL; +PFNGLMATERIALFVPROC glad_glMaterialfv = NULL; +PFNGLMATERIALXPROC glad_glMaterialx = NULL; +PFNGLMATERIALXVPROC glad_glMaterialxv = NULL; +PFNGLMATRIXMODEPROC glad_glMatrixMode = NULL; +PFNGLMULTMATRIXFPROC glad_glMultMatrixf = NULL; +PFNGLMULTMATRIXXPROC glad_glMultMatrixx = NULL; +PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f = NULL; +PFNGLMULTITEXCOORD4XPROC glad_glMultiTexCoord4x = NULL; +PFNGLNORMAL3FPROC glad_glNormal3f = NULL; +PFNGLNORMAL3XPROC glad_glNormal3x = NULL; +PFNGLNORMALPOINTERPROC glad_glNormalPointer = NULL; +PFNGLORTHOFPROC glad_glOrthof = NULL; +PFNGLORTHOXPROC glad_glOrthox = NULL; +PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; +PFNGLPOINTPARAMETERXPROC glad_glPointParameterx = NULL; +PFNGLPOINTPARAMETERXVPROC glad_glPointParameterxv = NULL; +PFNGLPOINTSIZEPROC glad_glPointSize = NULL; +PFNGLPOINTSIZEXPROC glad_glPointSizex = NULL; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; +PFNGLPOLYGONOFFSETXPROC glad_glPolygonOffsetx = NULL; +PFNGLPOPMATRIXPROC glad_glPopMatrix = NULL; +PFNGLPUSHMATRIXPROC glad_glPushMatrix = NULL; +PFNGLREADPIXELSPROC glad_glReadPixels = NULL; +PFNGLROTATEFPROC glad_glRotatef = NULL; +PFNGLROTATEXPROC glad_glRotatex = NULL; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; +PFNGLSAMPLECOVERAGEXPROC glad_glSampleCoveragex = NULL; +PFNGLSCALEFPROC glad_glScalef = NULL; +PFNGLSCALEXPROC glad_glScalex = NULL; +PFNGLSCISSORPROC glad_glScissor = NULL; +PFNGLSHADEMODELPROC glad_glShadeModel = NULL; +PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; +PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; +PFNGLSTENCILOPPROC glad_glStencilOp = NULL; +PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer = NULL; +PFNGLTEXENVFPROC glad_glTexEnvf = NULL; +PFNGLTEXENVFVPROC glad_glTexEnvfv = NULL; +PFNGLTEXENVIPROC glad_glTexEnvi = NULL; +PFNGLTEXENVIVPROC glad_glTexEnviv = NULL; +PFNGLTEXENVXPROC glad_glTexEnvx = NULL; +PFNGLTEXENVXVPROC glad_glTexEnvxv = NULL; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; +PFNGLTEXPARAMETERXPROC glad_glTexParameterx = NULL; +PFNGLTEXPARAMETERXVPROC glad_glTexParameterxv = NULL; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; +PFNGLTRANSLATEFPROC glad_glTranslatef = NULL; +PFNGLTRANSLATEXPROC glad_glTranslatex = NULL; +PFNGLVERTEXPOINTERPROC glad_glVertexPointer = NULL; +PFNGLVIEWPORTPROC glad_glViewport = NULL; +int GLAD_GL_OES_EGL_image = 0; +int GLAD_GL_OES_EGL_image_external = 0; +PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glad_glEGLImageTargetTexture2DOES = NULL; +PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC glad_glEGLImageTargetRenderbufferStorageOES = NULL; +static void load_GL_VERSION_ES_CM_1_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_ES_CM_1_0) return; + glad_glAlphaFunc = (PFNGLALPHAFUNCPROC)load("glAlphaFunc"); + glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); + glad_glClipPlanef = (PFNGLCLIPPLANEFPROC)load("glClipPlanef"); + glad_glColor4f = (PFNGLCOLOR4FPROC)load("glColor4f"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); + glad_glFogf = (PFNGLFOGFPROC)load("glFogf"); + glad_glFogfv = (PFNGLFOGFVPROC)load("glFogfv"); + glad_glFrustumf = (PFNGLFRUSTUMFPROC)load("glFrustumf"); + glad_glGetClipPlanef = (PFNGLGETCLIPPLANEFPROC)load("glGetClipPlanef"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); + glad_glGetLightfv = (PFNGLGETLIGHTFVPROC)load("glGetLightfv"); + glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC)load("glGetMaterialfv"); + glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC)load("glGetTexEnvfv"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); + glad_glLightModelf = (PFNGLLIGHTMODELFPROC)load("glLightModelf"); + glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC)load("glLightModelfv"); + glad_glLightf = (PFNGLLIGHTFPROC)load("glLightf"); + glad_glLightfv = (PFNGLLIGHTFVPROC)load("glLightfv"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); + glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC)load("glLoadMatrixf"); + glad_glMaterialf = (PFNGLMATERIALFPROC)load("glMaterialf"); + glad_glMaterialfv = (PFNGLMATERIALFVPROC)load("glMaterialfv"); + glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC)load("glMultMatrixf"); + glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)load("glMultiTexCoord4f"); + glad_glNormal3f = (PFNGLNORMAL3FPROC)load("glNormal3f"); + glad_glOrthof = (PFNGLORTHOFPROC)load("glOrthof"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); + glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); + glad_glRotatef = (PFNGLROTATEFPROC)load("glRotatef"); + glad_glScalef = (PFNGLSCALEFPROC)load("glScalef"); + glad_glTexEnvf = (PFNGLTEXENVFPROC)load("glTexEnvf"); + glad_glTexEnvfv = (PFNGLTEXENVFVPROC)load("glTexEnvfv"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); + glad_glTranslatef = (PFNGLTRANSLATEFPROC)load("glTranslatef"); + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); + glad_glAlphaFuncx = (PFNGLALPHAFUNCXPROC)load("glAlphaFuncx"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); + glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); + glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); + glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); + glad_glClear = (PFNGLCLEARPROC)load("glClear"); + glad_glClearColorx = (PFNGLCLEARCOLORXPROC)load("glClearColorx"); + glad_glClearDepthx = (PFNGLCLEARDEPTHXPROC)load("glClearDepthx"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); + glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)load("glClientActiveTexture"); + glad_glClipPlanex = (PFNGLCLIPPLANEXPROC)load("glClipPlanex"); + glad_glColor4ub = (PFNGLCOLOR4UBPROC)load("glColor4ub"); + glad_glColor4x = (PFNGLCOLOR4XPROC)load("glColor4x"); + glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); + glad_glColorPointer = (PFNGLCOLORPOINTERPROC)load("glColorPointer"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); + glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); + glad_glDepthRangex = (PFNGLDEPTHRANGEXPROC)load("glDepthRangex"); + glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); + glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC)load("glDisableClientState"); + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); + glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); + glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC)load("glEnableClientState"); + glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); + glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); + glad_glFogx = (PFNGLFOGXPROC)load("glFogx"); + glad_glFogxv = (PFNGLFOGXVPROC)load("glFogxv"); + glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); + glad_glFrustumx = (PFNGLFRUSTUMXPROC)load("glFrustumx"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); + glad_glGetClipPlanex = (PFNGLGETCLIPPLANEXPROC)load("glGetClipPlanex"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); + glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); + glad_glGetFixedv = (PFNGLGETFIXEDVPROC)load("glGetFixedv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); + glad_glGetLightxv = (PFNGLGETLIGHTXVPROC)load("glGetLightxv"); + glad_glGetMaterialxv = (PFNGLGETMATERIALXVPROC)load("glGetMaterialxv"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); + glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC)load("glGetTexEnviv"); + glad_glGetTexEnvxv = (PFNGLGETTEXENVXVPROC)load("glGetTexEnvxv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); + glad_glGetTexParameterxv = (PFNGLGETTEXPARAMETERXVPROC)load("glGetTexParameterxv"); + glad_glHint = (PFNGLHINTPROC)load("glHint"); + glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); + glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); + glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); + glad_glLightModelx = (PFNGLLIGHTMODELXPROC)load("glLightModelx"); + glad_glLightModelxv = (PFNGLLIGHTMODELXVPROC)load("glLightModelxv"); + glad_glLightx = (PFNGLLIGHTXPROC)load("glLightx"); + glad_glLightxv = (PFNGLLIGHTXVPROC)load("glLightxv"); + glad_glLineWidthx = (PFNGLLINEWIDTHXPROC)load("glLineWidthx"); + glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC)load("glLoadIdentity"); + glad_glLoadMatrixx = (PFNGLLOADMATRIXXPROC)load("glLoadMatrixx"); + glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); + glad_glMaterialx = (PFNGLMATERIALXPROC)load("glMaterialx"); + glad_glMaterialxv = (PFNGLMATERIALXVPROC)load("glMaterialxv"); + glad_glMatrixMode = (PFNGLMATRIXMODEPROC)load("glMatrixMode"); + glad_glMultMatrixx = (PFNGLMULTMATRIXXPROC)load("glMultMatrixx"); + glad_glMultiTexCoord4x = (PFNGLMULTITEXCOORD4XPROC)load("glMultiTexCoord4x"); + glad_glNormal3x = (PFNGLNORMAL3XPROC)load("glNormal3x"); + glad_glNormalPointer = (PFNGLNORMALPOINTERPROC)load("glNormalPointer"); + glad_glOrthox = (PFNGLORTHOXPROC)load("glOrthox"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); + glad_glPointParameterx = (PFNGLPOINTPARAMETERXPROC)load("glPointParameterx"); + glad_glPointParameterxv = (PFNGLPOINTPARAMETERXVPROC)load("glPointParameterxv"); + glad_glPointSizex = (PFNGLPOINTSIZEXPROC)load("glPointSizex"); + glad_glPolygonOffsetx = (PFNGLPOLYGONOFFSETXPROC)load("glPolygonOffsetx"); + glad_glPopMatrix = (PFNGLPOPMATRIXPROC)load("glPopMatrix"); + glad_glPushMatrix = (PFNGLPUSHMATRIXPROC)load("glPushMatrix"); + glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); + glad_glRotatex = (PFNGLROTATEXPROC)load("glRotatex"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); + glad_glSampleCoveragex = (PFNGLSAMPLECOVERAGEXPROC)load("glSampleCoveragex"); + glad_glScalex = (PFNGLSCALEXPROC)load("glScalex"); + glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); + glad_glShadeModel = (PFNGLSHADEMODELPROC)load("glShadeModel"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); + glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); + glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC)load("glTexCoordPointer"); + glad_glTexEnvi = (PFNGLTEXENVIPROC)load("glTexEnvi"); + glad_glTexEnvx = (PFNGLTEXENVXPROC)load("glTexEnvx"); + glad_glTexEnviv = (PFNGLTEXENVIVPROC)load("glTexEnviv"); + glad_glTexEnvxv = (PFNGLTEXENVXVPROC)load("glTexEnvxv"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); + glad_glTexParameterx = (PFNGLTEXPARAMETERXPROC)load("glTexParameterx"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); + glad_glTexParameterxv = (PFNGLTEXPARAMETERXVPROC)load("glTexParameterxv"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); + glad_glTranslatex = (PFNGLTRANSLATEXPROC)load("glTranslatex"); + glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC)load("glVertexPointer"); + glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); +} +static void load_GL_OES_EGL_image(GLADloadproc load) { + if(!GLAD_GL_OES_EGL_image) return; + glad_glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)load("glEGLImageTargetTexture2DOES"); + glad_glEGLImageTargetRenderbufferStorageOES = (PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)load("glEGLImageTargetRenderbufferStorageOES"); +} +static void load_GL_OES_EGL_image_external(GLADloadproc load) { + if(!GLAD_GL_OES_EGL_image_external) return; + glad_glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)load("glEGLImageTargetTexture2DOES"); +} +static int find_extensionsGLES1(void) { + if (!get_exts()) return 0; + GLAD_GL_OES_EGL_image = has_ext("GL_OES_EGL_image"); + GLAD_GL_OES_EGL_image_external = has_ext("GL_OES_EGL_image_external"); + free_exts(); + return 1; +} + +static void find_coreGLES1(void) { + + /* Thank you @elmindreda + * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 + * https://github.com/glfw/glfw/blob/master/src/context.c#L36 + */ + int i, major, minor; + + const char* version; + const char* prefixes[] = { + "OpenGL ES-CM ", + "OpenGL ES-CL ", + "OpenGL ES ", + NULL + }; + + version = (const char*) glGetString(GL_VERSION); + if (!version) return; + + for (i = 0; prefixes[i]; i++) { + const size_t length = strlen(prefixes[i]); + if (strncmp(version, prefixes[i], length) == 0) { + version += length; + break; + } + } + +/* PR #18 */ +#ifdef _MSC_VER + sscanf_s(version, "%d.%d", &major, &minor); +#else + sscanf(version, "%d.%d", &major, &minor); +#endif + + GLVersion.major = major; GLVersion.minor = minor; + max_loaded_major = major; max_loaded_minor = minor; + GLAD_GL_VERSION_ES_CM_1_0 = (major == 1 && minor >= 0) || major > 1; + if (GLVersion.major > 1 || (GLVersion.major >= 1 && GLVersion.minor >= 0)) { + max_loaded_major = 1; + max_loaded_minor = 0; + } +} + +int gladLoadGLES1Loader(GLADloadproc load) { + GLVersion.major = 0; GLVersion.minor = 0; + glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + if(glGetString == NULL) return 0; + if(glGetString(GL_VERSION) == NULL) return 0; + find_coreGLES1(); + load_GL_VERSION_ES_CM_1_0(load); + + if (!find_extensionsGLES1()) return 0; + load_GL_OES_EGL_image(load); + load_GL_OES_EGL_image_external(load); + return GLVersion.major != 0 || GLVersion.minor != 0; +} + diff --git a/project/android/.classpath b/project/android/.classpath new file mode 100755 index 0000000..bf30c06 --- /dev/null +++ b/project/android/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/project/android/.project b/project/android/.project new file mode 100755 index 0000000..b27db94 --- /dev/null +++ b/project/android/.project @@ -0,0 +1,33 @@ + + + MinecraftPocketEdition + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/project/android/AndroidManifest.xml b/project/android/AndroidManifest.xml new file mode 100755 index 0000000..925261c --- /dev/null +++ b/project/android/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/android/ManifestAddons.xml b/project/android/ManifestAddons.xml new file mode 100755 index 0000000..af7bf58 --- /dev/null +++ b/project/android/ManifestAddons.xml @@ -0,0 +1,19 @@ + + + + + + android:debuggable="true" + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/android/assets/armor/chain_1.png b/project/android/assets/armor/chain_1.png new file mode 100755 index 0000000..3632af5 Binary files /dev/null and b/project/android/assets/armor/chain_1.png differ diff --git a/project/android/assets/armor/chain_2.png b/project/android/assets/armor/chain_2.png new file mode 100755 index 0000000..330425b Binary files /dev/null and b/project/android/assets/armor/chain_2.png differ diff --git a/project/android/assets/armor/cloth_1.png b/project/android/assets/armor/cloth_1.png new file mode 100755 index 0000000..f3cf4aa Binary files /dev/null and b/project/android/assets/armor/cloth_1.png differ diff --git a/project/android/assets/armor/cloth_2.png b/project/android/assets/armor/cloth_2.png new file mode 100755 index 0000000..15fb908 Binary files /dev/null and b/project/android/assets/armor/cloth_2.png differ diff --git a/project/android/assets/armor/diamond_1.png b/project/android/assets/armor/diamond_1.png new file mode 100755 index 0000000..339da65 Binary files /dev/null and b/project/android/assets/armor/diamond_1.png differ diff --git a/project/android/assets/armor/diamond_2.png b/project/android/assets/armor/diamond_2.png new file mode 100755 index 0000000..c220c12 Binary files /dev/null and b/project/android/assets/armor/diamond_2.png differ diff --git a/project/android/assets/armor/gold_1.png b/project/android/assets/armor/gold_1.png new file mode 100755 index 0000000..885f309 Binary files /dev/null and b/project/android/assets/armor/gold_1.png differ diff --git a/project/android/assets/armor/gold_2.png b/project/android/assets/armor/gold_2.png new file mode 100755 index 0000000..9d1ea3b Binary files /dev/null and b/project/android/assets/armor/gold_2.png differ diff --git a/project/android/assets/armor/iron_1.png b/project/android/assets/armor/iron_1.png new file mode 100755 index 0000000..374ab07 Binary files /dev/null and b/project/android/assets/armor/iron_1.png differ diff --git a/project/android/assets/armor/iron_2.png b/project/android/assets/armor/iron_2.png new file mode 100755 index 0000000..53af4f4 Binary files /dev/null and b/project/android/assets/armor/iron_2.png differ diff --git a/project/android/assets/art/kz.png b/project/android/assets/art/kz.png new file mode 100755 index 0000000..a336c94 Binary files /dev/null and b/project/android/assets/art/kz.png differ diff --git a/project/android/assets/environment/clouds.png b/project/android/assets/environment/clouds.png new file mode 100755 index 0000000..7ad7fa4 Binary files /dev/null and b/project/android/assets/environment/clouds.png differ diff --git a/project/android/assets/font/default.png b/project/android/assets/font/default.png new file mode 100755 index 0000000..780d2d8 Binary files /dev/null and b/project/android/assets/font/default.png differ diff --git a/project/android/assets/font/default8.png b/project/android/assets/font/default8.png new file mode 100755 index 0000000..6179312 Binary files /dev/null and b/project/android/assets/font/default8.png differ diff --git a/project/android/assets/gui/background.png b/project/android/assets/gui/background.png new file mode 100755 index 0000000..b29e009 Binary files /dev/null and b/project/android/assets/gui/background.png differ diff --git a/project/android/assets/gui/badge/minecon140.png b/project/android/assets/gui/badge/minecon140.png new file mode 100755 index 0000000..07c83a3 Binary files /dev/null and b/project/android/assets/gui/badge/minecon140.png differ diff --git a/project/android/assets/gui/bg32.png b/project/android/assets/gui/bg32.png new file mode 100755 index 0000000..d9796c4 Binary files /dev/null and b/project/android/assets/gui/bg32.png differ diff --git a/project/android/assets/gui/default_world.png b/project/android/assets/gui/default_world.png new file mode 100755 index 0000000..17c9cdc Binary files /dev/null and b/project/android/assets/gui/default_world.png differ diff --git a/project/android/assets/gui/gui.png b/project/android/assets/gui/gui.png new file mode 100755 index 0000000..0ae80b9 Binary files /dev/null and b/project/android/assets/gui/gui.png differ diff --git a/project/android/assets/gui/gui_blocks.png b/project/android/assets/gui/gui_blocks.png new file mode 100755 index 0000000..fa4df26 Binary files /dev/null and b/project/android/assets/gui/gui_blocks.png differ diff --git a/project/android/assets/gui/icons.png b/project/android/assets/gui/icons.png new file mode 100755 index 0000000..8afc25a Binary files /dev/null and b/project/android/assets/gui/icons.png differ diff --git a/project/android/assets/gui/itemframe.png b/project/android/assets/gui/itemframe.png new file mode 100755 index 0000000..8e23979 Binary files /dev/null and b/project/android/assets/gui/itemframe.png differ diff --git a/project/android/assets/gui/items.png b/project/android/assets/gui/items.png new file mode 100755 index 0000000..ace2e9a Binary files /dev/null and b/project/android/assets/gui/items.png differ diff --git a/project/android/assets/gui/spritesheet.png b/project/android/assets/gui/spritesheet.png new file mode 100755 index 0000000..b130262 Binary files /dev/null and b/project/android/assets/gui/spritesheet.png differ diff --git a/project/android/assets/gui/title.png b/project/android/assets/gui/title.png new file mode 100755 index 0000000..5f2e4ff Binary files /dev/null and b/project/android/assets/gui/title.png differ diff --git a/project/android/assets/gui/touchgui.png b/project/android/assets/gui/touchgui.png new file mode 100755 index 0000000..3d2221f Binary files /dev/null and b/project/android/assets/gui/touchgui.png differ diff --git a/project/android/assets/item/arrows.png b/project/android/assets/item/arrows.png new file mode 100755 index 0000000..75c5828 Binary files /dev/null and b/project/android/assets/item/arrows.png differ diff --git a/project/android/assets/item/camera.png b/project/android/assets/item/camera.png new file mode 100755 index 0000000..9725189 Binary files /dev/null and b/project/android/assets/item/camera.png differ diff --git a/project/android/assets/item/sign.png b/project/android/assets/item/sign.png new file mode 100755 index 0000000..e829472 Binary files /dev/null and b/project/android/assets/item/sign.png differ diff --git a/project/android/assets/lang/en_US.lang b/project/android/assets/lang/en_US.lang new file mode 100755 index 0000000..8f2aea8 --- /dev/null +++ b/project/android/assets/lang/en_US.lang @@ -0,0 +1,967 @@ + +language.name=English +language.region=US +language.code=en_US + +gui.done=Done +gui.cancel=Cancel +gui.toMenu=Back to title screen +gui.up=Up +gui.down=Down +gui.yes=Yes +gui.no=No + +menu.singleplayer=Singleplayer +menu.multiplayer=Multiplayer +menu.mods=Texture Packs +menu.options=Options... +menu.quit=Quit Game +menu.returnToMenu=Save and Quit to Title +menu.disconnect=Disconnect +menu.returnToGame=Back to Game +menu.switchingLevel=Switching level +menu.generatingLevel=Generating level +menu.loadingLevel=Loading level +menu.generatingTerrain=Building terrain +menu.simulating=Simulating the world for a bit +menu.respawning=Respawning + +selectWorld.title=Select World +selectWorld.empty=empty +selectWorld.world=World +selectWorld.select=Play Selected World +selectWorld.create=Create New World +selectWorld.createDemo=Play New Demo World +selectWorld.delete=Delete +selectWorld.rename=Rename +selectWorld.deleteQuestion=Are you sure you want to delete this world? +selectWorld.deleteWarning=will be lost forever! (A long time!) +selectWorld.deleteButton=Delete +selectWorld.renameButton=Rename +selectWorld.renameTitle=Rename World +selectWorld.conversion=Must be converted! +selectWorld.newWorld=New World +selectWorld.enterName=World Name +selectWorld.resultFolder=Will be saved in: +selectWorld.enterSeed=Seed for the World Generator +selectWorld.seedInfo=Leave blank for a random seed + +gameMode.survival=Survival Mode +gameMode.creative=Creative Mode +gameMode.hardcore=Hardcore Mode! +gameMode.changed=Your game mode has been changed + +selectWorld.gameMode=Game Mode: +selectWorld.gameMode.survival=Survival +selectWorld.gameMode.survival.line1=Search for resources, crafting, gain +selectWorld.gameMode.survival.line2=levels, health and hunger +selectWorld.gameMode.creative=Creative +selectWorld.gameMode.creative.line1=Unlimited resources, free flying and +selectWorld.gameMode.creative.line2=destroy blocks instantly +selectWorld.gameMode.hardcore=Hardcore +selectWorld.gameMode.hardcore.line1=Same as survival mode, locked at hardest +selectWorld.gameMode.hardcore.line2=difficulty, and one life only +selectWorld.moreWorldOptions=More World Options... +selectWorld.mapFeatures=Generate Structures: +selectWorld.mapFeatures.info=Villages, dungeons etc +selectWorld.mapType=World Type: +selectWorld.mapType.normal=Normal +selectWorld.hardcoreMode=Hardcore: +selectWorld.hardcoreMode.info=World is deleted upon death + +generator.default=Default +generator.flat=Superflat + +selectServer.title=Select Server +selectServer.empty=empty +selectServer.select=Join Server +selectServer.direct=Direct Connect +selectServer.edit=Edit +selectServer.delete=Delete +selectServer.add=Add server +selectServer.defaultName=Minecraft Server +selectServer.deleteQuestion=Are you sure you want to remove this server? +selectServer.deleteWarning=will be lost forever! (A long time!) +selectServer.deleteButton=Delete +selectServer.refresh=Refresh +addServer.title=Edit Server Info +addServer.enterName=Server Name +addServer.enterIp=Server Address +addServer.add=Done + +multiplayer.title=Play Multiplayer +multiplayer.connect=Connect +multiplayer.info1=Minecraft Multiplayer is currently not finished, but there +multiplayer.info2=is some buggy early testing going on. +multiplayer.ipinfo=Enter the IP of a server to connect to it: + +multiplayer.downloadingTerrain=Downloading terrain + +multiplayer.stopSleeping=Leave Bed + +demo.day.1=This demo will last five game days, do your best! +demo.day.2=Day Two +demo.day.3=Day Three +demo.day.4=Day Four +demo.day.5=This is your last day! +demo.day.warning=Your time is almost up! +demo.day.6=You have passed your fifth day, use F2 to save a screenshot of your creation +demo.reminder=The demo time has expired, buy the game to continue or start a new world! +demo.help.movement=Use %1$s, %2$s, %3$s, %4$s and the mouse to move around +demo.help.jump=Jump by pressing %1$s +demo.help.inventory=Use %1$s to open your inventory + +connect.connecting=Connecting to the server... +connect.authorizing=Logging in... +connect.failed=Failed to connect to the server + +disconnect.genericReason=%s +disconnect.disconnected=Disconnected by Server +disconnect.lost=Connection Lost +disconnect.kicked=Was kicked from the game +disconnect.timeout=Timed out +disconnect.closed=Connection closed +disconnect.loginFailed=Failed to login +disconnect.loginFailedInfo=Failed to login: %s +disconnect.quitting=Quitting +disconnect.endOfStream=End of stream +disconnect.overflow=Buffer overflow + +options.off=OFF +options.on=ON +options.title=Options +options.controls=Controls... +options.video=Video Settings... +options.language=Language... +options.languageWarning=Language translations may not be 100% accurate +options.videoTitle=Video Settings +options.music=Music +options.sound=Sound +options.invertMouse=Invert Mouse +options.fov=FOV +options.fov.min=Normal +options.fov.max=Quake Pro +options.gamma=Brightness +options.gamma.min=Moody +options.gamma.max=Bright +options.sensitivity=Sensitivity +options.sensitivity.min=*yawn* +options.sensitivity.max=HYPERSPEED!!! +options.renderDistance=Render Distance +options.renderDistance.tiny=Tiny +options.renderDistance.short=Short +options.renderDistance.normal=Normal +options.renderDistance.far=Far +options.viewBobbing=View Bobbing +options.ao=Smooth Lighting +options.anaglyph=3D Anaglyph +options.framerateLimit=Performance +options.difficulty=Difficulty +options.difficulty.peaceful=Peaceful +options.difficulty.easy=Easy +options.difficulty.normal=Normal +options.difficulty.hard=Hard +options.difficulty.hardcore=Hardcore +options.graphics=Graphics +options.graphics.fancy=Fancy +options.graphics.fast=Fast +options.guiScale=GUI Scale +options.guiScale.auto=Auto +options.guiScale.small=Small +options.guiScale.normal=Normal +options.guiScale.large=Large +options.advancedOpengl=Advanced OpenGL +options.renderClouds=Clouds +options.farWarning1=A 64 bit Java installation is recommended +options.farWarning2=for 'Far' render distance (you have 32 bit) +options.particles=Particles +options.particles.all=All +options.particles.decreased=Decreased +options.particles.minimal=Minimal + +performance.max=Max FPS +performance.balanced=Balanced +performance.powersaver=Power saver + +controls.title=Controls + +key.forward=Forward +key.left=Left +key.back=Back +key.right=Right +key.jump=Jump +key.inventory=Inventory +key.drop=Drop +key.chat=Chat +key.fog=Toggle Fog +key.sneak=Sneak +key.playerlist=List Players +key.attack=Attack +key.use=Use Item +key.pickItem=Pick Block +key.mouseButton=Button %1$s + +texturePack.openFolder=Open texture pack folder +texturePack.title=Select Texture Pack +texturePack.folderInfo=(Place texture pack files here) + +tile.stone.name=Stone +tile.grass.name=Grass Block +tile.dirt.name=Dirt +tile.stonebrick.name=Cobblestone +tile.wood.name=Wooden Planks +tile.sapling.name=Sapling +tile.deadbush.name=Dead Bush +tile.bedrock.name=Bedrock +tile.water.name=Water +tile.lava.name=Lava +tile.sand.name=Sand +tile.sandStone.name=Sandstone +tile.gravel.name=Gravel +tile.oreGold.name=Gold Ore +tile.oreIron.name=Iron Ore +tile.oreCoal.name=Coal Ore +tile.log.name=Wood +tile.leaves.name=Leaves +tile.tallgrass.name=Grass +tile.tallgrass.shrub.name=Shrub +tile.tallgrass.grass.name=Grass +tile.tallgrass.fern.name=Fern +tile.sponge.name=Sponge +tile.glass.name=Glass +tile.thinGlass.name=Glass Pane +tile.cloth.name=Wool +tile.flower.name=Flower +tile.rose.name=Rose +tile.mushroom.name=Mushroom +tile.blockGold.name=Block of Gold +tile.blockIron.name=Block of Iron +tile.stoneSlab.stone.name=Stone Slab +tile.stoneSlab.sand.name=Sandstone Slab +tile.stoneSlab.wood.name=Wooden Slab +tile.stoneSlab.cobble.name=Cobblestone Slab +tile.stoneSlab.brick.name=Bricks Slab +tile.stoneSlab.smoothStoneBrick.name=Stone Bricks Slab +tile.brick.name=Bricks +tile.tnt.name=TNT +tile.bookshelf.name=Bookshelf +tile.stoneMoss.name=Moss Stone +tile.obsidian.name=Obsidian +tile.torch.name=Torch +tile.fire.name=Fire +tile.mobSpawner.name=Monster Spawner +tile.stairsWood.name=Wooden Stairs +tile.chest.name=Chest +tile.redstoneDust.name=Redstone Dust +tile.oreDiamond.name=Diamond Ore +tile.blockDiamond.name=Block of Diamond +tile.workbench.name=Crafting Table +tile.crops.name=Crops +tile.farmland.name=Farmland +tile.furnace.name=Furnace +tile.sign.name=Sign +tile.doorWood.name=Wooden Door +tile.ladder.name=Ladder +tile.rail.name=Rail +tile.goldenRail.name=Powered Rail +tile.detectorRail.name=Detector Rail +tile.stairsStone.name=Stone Stairs +tile.lever.name=Lever +tile.pressurePlate.name=Pressure Plate +tile.doorIron.name=Iron Door +tile.oreRedstone.name=Redstone Ore +tile.notGate.name=Redstone Torch +tile.button.name=Button +tile.snow.name=Snow +tile.ice.name=Ice +tile.cactus.name=Cactus +tile.clay.name=Clay +tile.reeds.name=Sugar cane +tile.jukebox.name=Jukebox +tile.fence.name=Fence +tile.fenceGate.name=Fence Gate +tile.pumpkin.name=Pumpkin +tile.litpumpkin.name=Jack 'o' Lantern +tile.hellrock.name=Netherrack +tile.hellsand.name=Soul Sand +tile.lightgem.name=Glowstone +tile.portal.name=Portal +tile.cloth.black.name=Black Wool +tile.cloth.red.name=Red Wool +tile.cloth.green.name=Green Wool +tile.cloth.brown.name=Brown Wool +tile.cloth.blue.name=Blue Wool +tile.cloth.purple.name=Purple Wool +tile.cloth.cyan.name=Cyan Wool +tile.cloth.silver.name=Light Gray Wool +tile.cloth.gray.name=Gray Wool +tile.cloth.pink.name=Pink Wool +tile.cloth.lime.name=Lime Wool +tile.cloth.yellow.name=Yellow Wool +tile.cloth.lightBlue.name=Blue Light Wool +tile.cloth.magenta.name=Magenta Wool +tile.cloth.orange.name=Orange Wool +tile.cloth.white.name=Wool +tile.oreLapis.name=Lapis Lazuli Ore +tile.blockLapis.name=Lapis Lazuli Block +tile.dispenser.name=Dispenser +tile.musicBlock.name=Note Block +tile.cake.name=Cake +tile.bed.name=Bed +tile.bed.occupied=This bed is occupied +tile.bed.noSleep=You can only sleep at night +tile.bed.notSafe=You may not rest now, there are monsters nearby +tile.bed.notValid=Your home bed was missing or obstructed +tile.lockedchest.name=Locked chest +tile.trapdoor.name=Trapdoor +tile.web.name=Cobweb +tile.stonebricksmooth.name=Stone Bricks +tile.pistonBase.name=Piston +tile.pistonStickyBase.name=Sticky Piston +tile.fenceIron.name=Iron Bars +tile.melon.name=Melon +tile.stairsBrick.name=Brick Stairs +tile.stairsStoneBrickSmooth.name=Stone Brick Stairs +tile.vine.name=Vines +tile.netherBrick.name=Nether Brick +tile.netherFence.name=Nether Brick Fence +tile.stairsNetherBrick.name=Nether Brick Stairs +tile.netherStalk.name=Nether Wart +tile.cauldron.name=Cauldron +tile.enchantmentTable.name=Enchantment Table +tile.whiteStone.name=End Stone +tile.mycel.name=Mycelium +tile.waterlily.name=Lily Pad +tile.dragonEgg.name=Dragon Egg +tile.redstoneLight.name=Redstone Lamp +tile.glowingobsidian.name=Glowing Obsidian +tile.netherreactor.name=Nether Reactor Core +tile.quartzBlock.name=Block of Quartz +tile.stairsQuartz.name=Quartz Stairs +tile.stairsSandStone.name=Sand Stone Stairs +tile.stonecutter.name=Stonecutter + +item.shovelIron.name=Iron Shovel +item.pickaxeIron.name=Iron Pickaxe +item.hatchetIron.name=Iron Axe +item.flintAndSteel.name=Flint and Steel +item.apple.name=Apple +item.cookie.name=Cookie +item.bow.name=Bow +item.arrow.name=Arrow +item.coal.name=Coal +item.charcoal.name=Charcoal +item.emerald.name=Diamond +item.ingotIron.name=Iron Ingot +item.ingotGold.name=Gold Ingot +item.swordIron.name=Iron Sword +item.swordWood.name=Wooden Sword +item.shovelWood.name=Wooden Shovel +item.pickaxeWood.name=Wooden Pickaxe +item.hatchetWood.name=Wooden Axe +item.swordStone.name=Stone Sword +item.shovelStone.name=Stone Shovel +item.pickaxeStone.name=Stone Pickaxe +item.hatchetStone.name=Stone Axe +item.swordDiamond.name=Diamond Sword +item.shovelDiamond.name=Diamond Shovel +item.pickaxeDiamond.name=Diamond Pickaxe +item.hatchetDiamond.name=Diamond Axe +item.stick.name=Stick +item.bowl.name=Bowl +item.mushroomStew.name=Mushroom Stew +item.swordGold.name=Golden Sword +item.shovelGold.name=Golden Shovel +item.pickaxeGold.name=Golden Pickaxe +item.hatchetGold.name=Golden Axe +item.string.name=String +item.feather.name=Feather +item.sulphur.name=Gunpowder +item.hoeWood.name=Wooden Hoe +item.hoeStone.name=Stone Hoe +item.hoeIron.name=Iron Hoe +item.hoeDiamond.name=Diamond Hoe +item.hoeGold.name=Golden Hoe +item.seeds.name=Seeds +item.seeds_pumpkin.name=Pumpkin Seeds +item.seeds_melon.name=Melon Seeds +item.melon.name=Melon +item.wheat.name=Wheat +item.bread.name=Bread +item.helmetCloth.name=Leather Cap +item.chestplateCloth.name=Leather Tunic +item.leggingsCloth.name=Leather Pants +item.bootsCloth.name=Leather Boots +item.helmetChain.name=Chain Helmet +item.chestplateChain.name=Chain Chestplate +item.leggingsChain.name=Chain Leggings +item.bootsChain.name=Chain Boots +item.helmetIron.name=Iron Helmet +item.chestplateIron.name=Iron Chestplate +item.leggingsIron.name=Iron Leggings +item.bootsIron.name=Iron Boots +item.helmetDiamond.name=Diamond Helmet +item.chestplateDiamond.name=Diamond Chestplate +item.leggingsDiamond.name=Diamond Leggings +item.bootsDiamond.name=Diamond Boots +item.helmetGold.name=Golden Helmet +item.chestplateGold.name=Golden Chestplate +item.leggingsGold.name=Golden Leggings +item.bootsGold.name=Golden Boots +item.flint.name=Flint +item.porkchopRaw.name=Raw Porkchop +item.porkchopCooked.name=Cooked Porkchop +item.chickenRaw.name=Raw Chicken +item.chickenCooked.name=Cooked Chicken +item.beefRaw.name=Raw Beef +item.beefCooked.name=Steak +item.painting.name=Painting +item.appleGold.name=Golden Apple +item.sign.name=Sign +item.doorWood.name=Wooden Door +item.bucket.name=Bucket +item.bucketWater.name=Water Bucket +item.bucketLava.name=Lava Bucket +item.minecart.name=Minecart +item.saddle.name=Saddle +item.doorIron.name=Iron Door +item.redstone.name=Redstone +item.snowball.name=Snowball +item.boat.name=Boat +item.leather.name=Leather +item.milk.name=Milk +item.brick.name=Brick +item.clay.name=Clay +item.reeds.name=Sugar Canes +item.paper.name=Paper +item.book.name=Book +item.slimeball.name=Slimeball +item.minecartChest.name=Minecart with Chest +item.minecartFurnace.name=Minecart with Furnace +item.egg.name=Egg +item.compass.name=Compass +item.fishingRod.name=Fishing Rod +item.clock.name=Clock +item.yellowDust.name=Glowstone Dust +item.fishRaw.name=Raw Fish +item.fishCooked.name=Cooked Fish +item.record.name=Music Disc +item.bone.name=Bone +item.dyePowder.black.name=Ink Sac +item.dyePowder.red.name=Rose Red +item.dyePowder.green.name=Cactus Green +item.dyePowder.brown.name=Cocoa Beans +item.dyePowder.blue.name=Lapis Lazuli +item.dyePowder.purple.name=Purple Dye +item.dyePowder.cyan.name=Cyan Dye +item.dyePowder.silver.name=Light Gray Dye +item.dyePowder.gray.name=Gray Dye +item.dyePowder.pink.name=Pink Dye +item.dyePowder.lime.name=Lime Dye +item.dyePowder.yellow.name=Dandelion Yellow +item.dyePowder.lightBlue.name=Light Blue Dye +item.dyePowder.magenta.name=Magenta Dye +item.dyePowder.orange.name=Orange Dye +item.dyePowder.white.name=Bone Meal +item.sugar.name=Sugar +item.cake.name=Cake +item.bed.name=Bed +item.diode.name=Redstone Repeater +item.map.name=Map +item.leaves.name=Leaves +item.shears.name=Shears +item.rottenFlesh.name=Rotten Flesh +item.enderPearl.name=Ender Pearl +item.blazeRod.name=Blaze Rod +item.ghastTear.name=Ghast Tear +item.netherStalkSeeds.name=Nether Wart +item.potion.name=Potion +item.emptyPotion.name=Water Bottle +item.goldNugget.name=Gold Nugget +item.glassBottle.name=Glass Bottle +item.spiderEye.name=Spider Eye +item.fermentedSpiderEye.name=Fermented Spider Eye +item.blazePowder.name=Blaze Powder +item.magmaCream.name=Magma Cream +item.cauldron.name=Cauldron +item.brewingStand.name=Brewing Stand +item.eyeOfEnder.name=Eye of Ender +item.speckledMelon.name=Glistering Melon +item.monsterPlacer.name=Spawn +item.expBottle.name=Bottle o' Enchanting +item.fireball.name=Fire Charge +item.netherbrickItem.name=Nether Brick +item.netherquartz.name=Nether Quartz + +container.inventory=Inventory +container.crafting=Crafting +container.dispenser=Dispenser +container.furnace=Furnace +container.enchant=Enchant +container.creative=Item Selection +container.brewing=Brewing Stand +container.chest=Chest +container.minecart=Minecart + +entity.Item.name=Item +entity.XPOrb.name=Experience Orb + +entity.Arrow.name=Arrow +entity.Snowball.name=Snowball +entity.Painting.name=Painting + +entity.Mob.name=Mob +entity.Monster.name=Monster + +entity.Creeper.name=Creeper +entity.Skeleton.name=Skeleton +entity.Spider.name=Spider +entity.Giant.name=Giant +entity.Zombie.name=Zombie +entity.Slime.name=Slime +entity.Ghast.name=Ghast +entity.PigZombie.name=Zombie Pigman +entity.Enderman.name=Enderman +entity.Silverfish.name=Silverfish +entity.CaveSpider.name=Cave Spider +entity.Blaze.name=Blaze +entity.LavaSlime.name=Magma Cube +entity.MushroomCow.name=Mooshroom +entity.Villager.name=Villager +entity.VillagerGolem.name=Iron Golem +entity.SnowMan.name=Snow Golem +entity.EnderDragon.name=Ender Dragon + +entity.Pig.name=Pig +entity.Sheep.name=Sheep +entity.Cow.name=Cow +entity.Chicken.name=Chicken +entity.Squid.name=Squid +entity.Wolf.name=Wolf +entity.Ozelot.name=Ocelot +entity.Cat.name=Cat + +entity.PrimedTnt.name=Block of TNT +entity.FallingSand.name=Falling Block + +entity.Minecart.name=Minecart +entity.Boat.name=Boat + +entity.Arrow.name=arrow +entity.generic.name=unknown + +death.inFire=%1$s went up in flames +death.onFire=%1$s burned to death +death.lava=%1$s tried to swim in lava +death.inWall=%1$s suffocated in a wall +death.drown=%1$s drowned +death.starve=%1$s starved to death +death.cactus=%1$s was pricked to death +death.fall=%1$s hit the ground too hard +death.outOfWorld=%1$s fell out of the world +death.generic=%1$s died +death.explosion=%1$s blew up +death.magic=%1$s was killed by magic +death.mob=%1$s was slain by %2$s +death.player=%1$s was slain by %2$s +death.arrow=%1$s was shot by %2$s +death.fireball=%1$s was fireballed by %2$s +death.thrown=%1$s was pummeled by %2$s +death.indirectMagic=%1$s was killed by %2$s + +deathScreen.respawn=Respawn +deathScreen.deleteWorld=Delete world +deathScreen.titleScreen=Title screen +deathScreen.score=Score +deathScreen.title.hardcore=Game over! +deathScreen.hardcoreInfo=You cannot respawn in hardcore mode! +deathScreen.title=You died! + +potion.empty=No Effects +potion.moveSpeed=Speed +potion.moveSlowdown=Slowness +potion.digSpeed=Haste +potion.digSlowDown=Mining Fatigue +potion.damageBoost=Strength +potion.weakness=Weakness +potion.heal=Instant Health +potion.harm=Instant Damage +potion.jump=Jump Boost +potion.confusion=Nausea +potion.regeneration=Regeneration +potion.resistance=Resistance +potion.fireResistance=Fire Resistance +potion.waterBreathing=Water Breathing +potion.invisibility=Invisibility +potion.blindness=Blindness +potion.nightVision=Night Vision +potion.hunger=Hunger +potion.poison=Poison + +potion.moveSpeed.postfix=Potion of Swiftness +potion.moveSlowdown.postfix=Potion of Slowness +potion.digSpeed.postfix=Potion of Haste +potion.digSlowDown.postfix=Potion of Dullness +potion.damageBoost.postfix=Potion of Strength +potion.weakness.postfix=Potion of Weakness +potion.heal.postfix=Potion of Healing +potion.harm.postfix=Potion of Harming +potion.jump.postfix=Potion of Leaping +potion.confusion.postfix=Potion of Nausea +potion.regeneration.postfix=Potion of Regeneration +potion.resistance.postfix=Potion of Resistance +potion.fireResistance.postfix=Potion of Fire Resistance +potion.waterBreathing.postfix=Potion of Water Breathing +potion.invisibility.postfix=Potion of Invisibility +potion.blindness.postfix=Potion of Blindness +potion.nightVision.postfix=Potion of Night Vision +potion.hunger.postfix=Potion of Hunger +potion.poison.postfix=Potion of Poison + +potion.potency.0= +potion.potency.1=II +potion.potency.2=III +potion.potency.3=IV + +potion.prefix.grenade=Splash +potion.prefix.mundane=Mundane +potion.prefix.uninteresting=Uninteresting +potion.prefix.bland=Bland +potion.prefix.clear=Clear +potion.prefix.milky=Milky +potion.prefix.diffuse=Diffuse +potion.prefix.artless=Artless +potion.prefix.thin=Thin +potion.prefix.awkward=Awkward +potion.prefix.flat=Flat +potion.prefix.bulky=Bulky +potion.prefix.bungling=Bungling +potion.prefix.buttered=Buttered +potion.prefix.smooth=Smooth +potion.prefix.suave=Suave +potion.prefix.debonair=Debonair +potion.prefix.thick=Thick +potion.prefix.elegant=Elegant +potion.prefix.fancy=Fancy +potion.prefix.charming=Charming +potion.prefix.dashing=Dashing +potion.prefix.refined=Refined +potion.prefix.cordial=Cordial +potion.prefix.sparkling=Sparkling +potion.prefix.potent=Potent +potion.prefix.foul=Foul +potion.prefix.odorless=Odorless +potion.prefix.rank=Rank +potion.prefix.harsh=Harsh +potion.prefix.acrid=Acrid +potion.prefix.gross=Gross +potion.prefix.stinky=Stinky + +enchantment.damage.all=Sharpness +enchantment.damage.undead=Smite +enchantment.damage.arthropods=Bane of Arthropods +enchantment.knockback=Knockback +enchantment.fire=Fire Aspect +enchantment.protect.all=Protection +enchantment.protect.fire=Fire Protection +enchantment.protect.fall=Feather Falling +enchantment.protect.explosion=Blast Protection +enchantment.protect.projectile=Projectile Protection +enchantment.oxygen=Respiration +enchantment.waterWorker=Aqua Affinity +enchantment.digging=Efficiency +enchantment.untouching=Silk Touch +enchantment.durability=Unbreaking +enchantment.lootBonus=Looting +enchantment.lootBonusDigger=Fortune +enchantment.arrowDamage=Power +enchantment.arrowFire=Flame +enchantment.arrowKnockback=Punch +enchantment.arrowInfinite=Infinity + +enchantment.level.1=I +enchantment.level.2=II +enchantment.level.3=III +enchantment.level.4=IV +enchantment.level.5=V +enchantment.level.6=VI +enchantment.level.7=VII +enchantment.level.8=VIII +enchantment.level.9=IX +enchantment.level.10=X + +gui.achievements=Achievements +gui.stats=Statistics + +stat.generalButton=General +stat.blocksButton=Blocks +stat.itemsButton=Items + +stat.used=Times Used +stat.mined=Times Mined +stat.depleted=Times Depleted +stat.crafted=Times Crafted + +stat.startGame=Times played +stat.createWorld=Worlds played +stat.loadWorld=Saves loaded +stat.joinMultiplayer=Multiplayer joins +stat.leaveGame=Games quit + +stat.playOneMinute=Minutes Played + +stat.walkOneCm=Distance Walked +stat.fallOneCm=Distance Fallen +stat.swimOneCm=Distance Swum +stat.flyOneCm=Distance Flown +stat.climbOneCm=Distance Climbed +stat.diveOneCm=Distance Dove +stat.minecartOneCm=Distance by Minecart +stat.boatOneCm=Distance by Boat +stat.pigOneCm=Distance by Pig +stat.jump=Jumps +stat.drop=Items Dropped + +stat.damageDealt=Damage Dealt +stat.damageTaken=Damage Taken +stat.deaths=Number of Deaths +stat.mobKills=Mob Kills +stat.playerKills=Player Kills +stat.fishCaught=Fish Caught + +stat.mineBlock=%1$s Mined +stat.craftItem=%1$s Crafted +stat.useItem=%1$s Used +stat.breakItem=%1$s Depleted + +achievement.get=Achievement get! + +achievement.taken=Taken! + +achievement.requires=Requires '%1$s' +achievement.openInventory=Taking Inventory +achievement.openInventory.desc=Press '%1$s' to open your inventory. +achievement.mineWood=Getting Wood +achievement.mineWood.desc=Attack a tree until a block of wood pops out +achievement.buildWorkBench=Benchmarking +achievement.buildWorkBench.desc=Craft a workbench with four blocks of planks +achievement.buildPickaxe=Time to Mine! +achievement.buildPickaxe.desc=Use planks and sticks to make a pickaxe +achievement.buildFurnace=Hot Topic +achievement.buildFurnace.desc=Construct a furnace out of eight stone blocks +achievement.acquireIron=Acquire Hardware +achievement.acquireIron.desc=Smelt an iron ingot +achievement.buildHoe=Time to Farm! +achievement.buildHoe.desc=Use planks and sticks to make a hoe +achievement.makeBread=Bake Bread +achievement.makeBread.desc=Turn wheat into bread +achievement.bakeCake=The Lie +achievement.bakeCake.desc=Wheat, sugar, milk and eggs! +achievement.buildBetterPickaxe=Getting an Upgrade +achievement.buildBetterPickaxe.desc=Construct a better pickaxe +achievement.cookFish=Delicious Fish +achievement.cookFish.desc=Catch and cook fish! +achievement.onARail=On A Rail +achievement.onARail.desc=Travel by minecart at least 1 km from where you started +achievement.buildSword=Time to Strike! +achievement.buildSword.desc=Use planks and sticks to make a sword +achievement.killEnemy=Monster Hunter +achievement.killEnemy.desc=Attack and destroy a monster +achievement.killCow=Cow Tipper +achievement.killCow.desc=Harvest some leather +achievement.flyPig=When Pigs Fly +achievement.flyPig.desc=Fly a pig off a cliff +achievement.snipeSkeleton=Sniper Duel +achievement.snipeSkeleton.desc=Kill a skeleton with an arrow from more than 50 meters +achievement.diamonds=DIAMONDS! +achievement.diamonds.desc=Acquire diamonds with your iron tools +achievement.portal=We Need to Go Deeper +achievement.portal.desc=Build a portal to the Nether +achievement.ghast=Return to Sender +achievement.ghast.desc=Destroy a Ghast with a fireball +achievement.blazeRod=Into Fire +achievement.blazeRod.desc=Relieve a Blaze of its rod +achievement.potion=Local Brewery +achievement.potion.desc=Brew a potion +achievement.theEnd=The End? +achievement.theEnd.desc=Locate the End +achievement.theEnd2=The End. +achievement.theEnd2.desc=Defeat the Ender Dragon +achievement.enchantments=Enchanter +achievement.enchantments.desc=Use a book, obsidian and diamonds to construct an enchantment table +achievement.overkill=Overkill +achievement.overkill.desc=Deal eight hearts of damage in a single hit +achievement.bookcase=Librarian +achievement.bookcase.desc=Build some bookshelves to improve your enchantment table + +desc.sword=Deals more damage than by hand. +desc.shovel=Used to dig dirt, grass, sand, gravel and snow faster than by hand. +desc.pickaxe=Required to mine stone-related blocks and ore. +desc.hatchet=Used to chop wood-related blocks faster than by hand. +desc.hoe=Used to till dirt and grass blocks to prepare for crops. +desc.doorwood=Wooden doors are activated by using, hitting them or with Redstone. +desc.dooriron=Iron doors can only be opened by Redstone, buttons or switches. +desc.helmet=Gives the user 1.5 Armor when worn. +desc.chestplate=Gives the user 4 Armor when worn. +desc.leggings=Gives the user 3 Armor when worn. +desc.boots=Gives the user 1.5 Armor when worn. +desc.ingot=A shiny ingot which can be used to craft tools made from this material. +desc.block=Used as an expensive building block or compact storage of the ore. +desc.pressureplate=Used to send an electrical charge when stepped on by a player, an animal, or a monster. Wooden Pressure Plates can also be activated by dropping something on them. +desc.stairs=Used for compact staircases. +desc.stairsstonebricksmooth=Used for compact staircases. +desc.stairsnetherbrick=Used for compact staircases. +desc.stairssandstone=Used for compact staircases. +desc.stairsquartzblock=Used for compact staircases. +desc.slab=Used for making long staircases. +desc.halfslab=Used for compact staircases. +desc.torch=Used to create light. Torches also melt snow and ice. +desc.wood=Used as a building material and can be crafted into many things. Can be crafted from any wood. +desc.sandstone=Used as a building material. +desc.sandstone.addon=Is not influenced by gravity like normal Sand. +desc.structblock=Used as a building material. +desc.stick=Used to craft torches, arrows, signs, ladders, fences and as handles for tools and weapons. +desc.bed=Used to sleep until dawn. Changes your spawn point to the bed's position. +desc.craftingtable=Allows you to craft a more varied selection of items than the normal crafting. +desc.furnace=Allows you to smelt ore, create charcoal and glass, and cook fish and porkchops. +desc.chest=Stores blocks and items inside. +desc.fence=Used as a barrier that cannot be jumped over. +desc.ladder=Used to climb vertically. +desc.trapdoor=Work like normal doors, but are a one by one block and lay flat on the ground. +desc.sign=Shows text entered by you or other players. +desc.glowstone=Used to create brighter light than torches. Melts snow/ice and can be used underwater. +desc.tnt=Used to cause explosions. Activated after placing by hitting, or with an electrical charge. +desc.bowl=Used to hold mushroom stew. You keep the bowl when the stew has been eaten. +desc.bucket=Used to hold and transport water, lava and milk. +desc.flintandsteel=Used to detonate TNT. +desc.fishingrod=Used to catch fish. +desc.clock=Displays positions of the Sun and Moon. +desc.compass=Points to your start point. +desc.map=Will create an image of an area explored while held. This can be used for path-finding. +desc.bow=Allows for ranged attacks by using arrows. +desc.arrow=Used as ammunition for bows. +desc.mushroomstew=Restores 5 hearts. +desc.cookie=Restores 0.5 Hearts. Can be stacked up to 8 times. +desc.cake=Restores 1.5 Hearts. Can be used 6 times. +desc.sugar=Used in the cake recipe. +desc.bread=Restores 2.5 Hearts. +desc.goldenapple=Restores 10 Hearts. +desc.lever=Used to send an electrical charge by being turned on or off. Stays in the on or off state until pressed again. +desc.redstonetorch=Constantly sends an electrical charge, or can be used as a receiver/transmitter when connected to the side of a block. +Can also be used for low-level lighting. +desc.redstonerepeater=Used in Redstone circuits as repeater, a delayer, and/or a diode +desc.button=Used to send an electrical charge by being pressed. Stays activated for approximately a second before shutting off again. +desc.dispenser=Used to hold and shoot out items in a random order when given a Redstone charge. +desc.noteblock=Plays a note when triggered. Hit it to change the pitch of the note. Placing this on top of different blocks will change the type of instrument. +desc.rail=Used to guide minecarts. +desc.poweredrail=When powered, accelerates minecarts that pass over it. When unpowered, causes minecarts to stop on it. +desc.detectorrail=Functions like a Pressure Plate (sends a Redstone signal when powered) but can only be activated by a minecart. +desc.minecart=Used to transport you, an animal, or a monster along rails. +desc.minecartwithchest=Used to transport goods along rails. +desc.minecartwithfurnace=Will move along rails and can push other minecarts when coal is put in it. +desc.boat=Used to travel in water more quickly than swimming. +desc.wool=Collected from sheep, and can be colored with dyes. +desc.woolstring=Used as a building material and can be colored with dyes. Can be easily obtained from Sheep. +desc.dyepowder.black=Used as a dye to create black wool. +desc.dyepowder.green=Used as a dye to create green wool. +desc.dyepowder.brown=Used as a dye to create brown wool. +desc.dyepowder.silver=Used as a dye to create silver wool. +desc.dyepowder.yellow=Used as a dye to create yellow wool. +desc.dyepowder.red=Used as a dye to create red wool. +desc.dyepowder.white=Used to instantly grow crops and flowers. Can be used in dye recipes. +desc.dyepowder.pink=Used as a dye to create pink wool. +desc.dyepowder.orange=Used as a dye to create orange wool. +desc.dyepowder.lime=Used as a dye to create lime wool. +desc.dyepowder.gray=Used as a dye to create gray wool. +desc.dyepowder.lightgray=Used as a dye to create light gray wool. +(Note: light gray dye can also be made by combining gray dye with bone meal, letting you make four light gray dyes from every ink sac instead of three.) +desc.dyepowder.lightblue=Used as a dye to create light blue wool. +desc.dyepowder.cyan=Used as a dye to create cyan wool. +desc.dyepowder.purple=Used as a dye to create purple wool. +desc.dyepowder.magenta=Used as a dye to create magenta wool. +desc.dyepowder.blue=Used as dye to create Blue Wool. +desc.jukebox=Plays Music Discs. +desc.diamonds=Use these to create very strong tools, weapons or armor +desc.emerald=Use these to create very strong tools, weapons or armor +desc.jackolantern=Used to create brighter light than torches. Melts snow/ice and can be used underwater. +desc.paper=Used to create books and maps. +desc.book=Used to create a bookshelf. +desc.bookshelf=Used as decoration. +desc.picture=Used as decoration. +desc.ore_gold=Can be mined with an iron pickaxe or better, then smelted in a furnace to produce gold ingots. +desc.ore_iron=Can be mined with a stone pickaxe or better, then smelted in a furnace to produce iron ingots. +desc.ore_coal=Can be mined with a pickaxe to collect coal. +desc.ore_lapis=Can be mined with a stone pickaxe or better to collect lapis lazuli. +desc.ore_diamond=Can be mined with an iron pickaxe or better to collect diamonds. +desc.ore_redstone=Can be mined with an iron pickaxe or better to collect redstone dust. +desc.stone=Can be mined with a pickaxe to collect cobblestone. +desc.dirt=Collected using a shovel. Can be used for construction. +desc.sapling=Can be planted and it will eventually grow into a tree. +desc.bedrock=This cannot be broken. +desc.lava=Sets fire to anything that touches it. Can be collected in a bucket. +desc.sand=Collected using a shovel. Can be smelted into glass using the furnace. Is affected by gravity if there is no other tile underneath it. +desc.gravel=Collected using a shovel. Sometimes produces flint when dug up. Is affected by gravity if there is no other tile underneath it. +desc.log=Chopped using an axe, and can be crafted into planks or used as a fuel. +desc.glass=Created in a furnace by smelting sand. Will break if you try to mine it. +desc.thinglass=Will break if you try to mine it. +desc.stone_brick=Mined from stone using a pickaxe. Can be used to construct a furnace or stone tools. +desc.brick=Baked from clay in a furnace. +desc.clay=Can be baked into bricks in a furnace. +desc.snow=A compact way to store snowballs. +desc.top_snow=Can be dug with a shovel to create snowballs. +desc.tall_grass=Sometimes produces seeds when broken. +desc.flower=Can be crafted into a dye. +desc.mushroom=Can be crafted with a bowl to make stew. +desc.obsidian=Can only be mined with a diamond pickaxe. Is produced by the meeting of water and still lava, and is used to build a portal. +desc.mob_spawner=Spawns monsters into the world. +desc.redstone_dust=Is placed on the ground to carry an electrical charge. +desc.crops=When fully grown, crops can be harvested to collect wheat. +desc.farmland=Ground that has been prepared ready to plant seeds. +desc.cactus=Can be crafted to create a dye. +desc.reeds=Can be crafted to create sugar. +desc.pumpkin=Can be worn as a helmet or crafted with a torch to create a Jack-O-Lantern. +desc.hell_rock=Burns forever if set alight. +desc.hell_sand=Slows the movement of anything walking over it. +desc.portal=Standing in the portal allows you to pass between the overworld and the nether. +desc.apple=Restores health, and can be crafted into a golden apple. +desc.melon=Can be broken into melon slices. +desc.coal=Used as a fuel in a furnace, or crafted to make a torch. +desc.string=Collected by killing a spider, and can be crafted into a bow. +desc.feather=Collected by killing a chicken, and can be crafted into an arrow. +desc.sulphur=Collected by killing a creeper, and can be crafted into TNT. +desc.shears=Used to obtain wool from sheep and to harvest placeable Leaf blocks. +desc.seeds=Can be planted in farmland to grow crops. +desc.wheat=Harvested from crops, and can be used to craft food items. +desc.flint=Collected by digging gravel, and can be used to craft a flint and steel. +desc.porkchopraw=Collected by killing a pig, and can be cooked in a furnace. Restores health. +desc.porkchopcooked=Created by cooking a porkchop in a furnace. Restores health. +desc.beefraw=Collected by killing a cow, and can be cooked in a furnace. Restores health. +desc.beefcooked=Created by cooking a beef in a furnace. Restores health. +desc.chickenraw=Collected by killing a chicken, and can be cooked in a furnace. Restores health. +desc.chickencooked=Created by cooking a chicken in a furnace. Restores health. +desc.saddle=When used on a pig it allows you to ride the pig. +desc.snowball=Collected by digging snow, and can be thrown. +desc.leather=Collected by killing a cow, and can be crafted into armor. +desc.slimeball=Collected by killing a slime. +desc.egg=Dropped randomly by chickens, and can be crafted into food items. +desc.yellow_dust=Collected by mining Glowstone, and can be crafted to make Glowstone blocks again. +desc.fish_raw=Can be eaten to restore health, or cooked in a furnace. +desc.fish_cooked=Created by cooking a raw fish in a furnace. Can be eaten to restore health. +desc.bone=Collected by killing a skeleton. Can be crafted into bone meal. +desc.record=Collected by getting a skeleton to kill a creeper. Can be played in a jukebox. +desc.water=Extinguishes fire and helps crops grow. Can be collected in a bucket. +desc.leaves=When broken sometimes drops a sapling which can then be replanted to grow into a tree. +desc.moss_stone=Can be used for construction and decoration. +desc.stonebricksmooth=Used as building material. +desc.netherreactor=Core of the Nether Reactor +desc.glowingobsidian=Obsidion activated by external source. +desc.lightgem=Used for illumination. +desc.painting=Used as decoration. +desc.hellrock=Is a stone material from the Nether. +desc.netherbrick=Construction block made from Nether bricks. +desc.netherbrickitem=Used to form blocks of Nether bricks. +desc.netherquartz=Quartz from the Nether, used to create Blocks of Quartz. +desc.quartzblock=Decorative block, used to create other kinds of Quartz blocks. +desc.stonecutter=For crafting stoneblocks. +desc.seedsmelon=Allows for more melons. +desc.tile.melon=Can be cut up and eaten. diff --git a/project/android/assets/mob/char.png b/project/android/assets/mob/char.png new file mode 100755 index 0000000..7cfa08a Binary files /dev/null and b/project/android/assets/mob/char.png differ diff --git a/project/android/assets/mob/chicken.png b/project/android/assets/mob/chicken.png new file mode 100755 index 0000000..d481293 Binary files /dev/null and b/project/android/assets/mob/chicken.png differ diff --git a/project/android/assets/mob/cow.png b/project/android/assets/mob/cow.png new file mode 100755 index 0000000..bc0e89f Binary files /dev/null and b/project/android/assets/mob/cow.png differ diff --git a/project/android/assets/mob/creeper.png b/project/android/assets/mob/creeper.png new file mode 100755 index 0000000..e0a5e0a Binary files /dev/null and b/project/android/assets/mob/creeper.png differ diff --git a/project/android/assets/mob/pig.png b/project/android/assets/mob/pig.png new file mode 100755 index 0000000..1ed505b Binary files /dev/null and b/project/android/assets/mob/pig.png differ diff --git a/project/android/assets/mob/pigzombie.png b/project/android/assets/mob/pigzombie.png new file mode 100755 index 0000000..3521845 Binary files /dev/null and b/project/android/assets/mob/pigzombie.png differ diff --git a/project/android/assets/mob/sheep.png b/project/android/assets/mob/sheep.png new file mode 100755 index 0000000..a6ed11d Binary files /dev/null and b/project/android/assets/mob/sheep.png differ diff --git a/project/android/assets/mob/sheep_fur.png b/project/android/assets/mob/sheep_fur.png new file mode 100755 index 0000000..b00aa8c Binary files /dev/null and b/project/android/assets/mob/sheep_fur.png differ diff --git a/project/android/assets/mob/skeleton.png b/project/android/assets/mob/skeleton.png new file mode 100755 index 0000000..9d22339 Binary files /dev/null and b/project/android/assets/mob/skeleton.png differ diff --git a/project/android/assets/mob/spider.png b/project/android/assets/mob/spider.png new file mode 100755 index 0000000..08344a8 Binary files /dev/null and b/project/android/assets/mob/spider.png differ diff --git a/project/android/assets/mob/zombie.png b/project/android/assets/mob/zombie.png new file mode 100755 index 0000000..4d47ccf Binary files /dev/null and b/project/android/assets/mob/zombie.png differ diff --git a/project/android/assets/particles.png b/project/android/assets/particles.png new file mode 100755 index 0000000..de34f1b Binary files /dev/null and b/project/android/assets/particles.png differ diff --git a/project/android/assets/terrain.png b/project/android/assets/terrain.png new file mode 100755 index 0000000..f14bbed Binary files /dev/null and b/project/android/assets/terrain.png differ diff --git a/project/android/default.properties b/project/android/default.properties new file mode 100755 index 0000000..ccdc921 --- /dev/null +++ b/project/android/default.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-9 +android.library=false +proguard.config=proguard.cfg +android.library.reference.1=../lib_projects/market_licensing/library diff --git a/project/android/jni/Android.mk b/project/android/jni/Android.mk new file mode 100755 index 0000000..41e57f5 --- /dev/null +++ b/project/android/jni/Android.mk @@ -0,0 +1,267 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := minecraftpe +LOCAL_SRC_FILES := ../../../src/main.cpp \ + ../../../src/main_android.cpp \ + ../../../src/platform/audio/SoundSystemSL.cpp \ + ../../../src/platform/input/Controller.cpp \ + ../../../src/platform/input/Keyboard.cpp \ + ../../../src/platform/input/Mouse.cpp \ + ../../../src/platform/input/Multitouch.cpp \ + ../../../src/platform/time.cpp \ + ../../../src/platform/CThread.cpp \ +../../../src/NinecraftApp.cpp \ +../../../src/Performance.cpp \ +../../../src/SharedConstants.cpp \ +../../../src/client/IConfigListener.cpp \ +../../../src/client/Minecraft.cpp \ +../../../src/client/MouseHandler.cpp \ +../../../src/client/Options.cpp \ +../../../src/client/OptionsFile.cpp \ +../../../src/client/OptionStrings.cpp \ +../../../src/client/gamemode/GameMode.cpp \ +../../../src/client/gamemode/CreativeMode.cpp \ +../../../src/client/gamemode/SurvivalMode.cpp \ +../../../src/client/gui/components/Button.cpp \ +../../../src/client/gui/components/GuiElement.cpp \ +../../../src/client/gui/components/GuiElementContainer.cpp \ +../../../src/client/gui/components/ImageButton.cpp \ +../../../src/client/gui/components/ItemPane.cpp \ +../../../src/client/gui/components/InventoryPane.cpp \ +../../../src/client/gui/components/LargeImageButton.cpp \ +../../../src/client/gui/components/NinePatch.cpp \ +../../../src/client/gui/components/OptionsGroup.cpp \ +../../../src/client/gui/components/OptionsItem.cpp \ +../../../src/client/gui/components/OptionsPane.cpp \ +../../../src/client/gui/components/RolledSelectionListH.cpp \ +../../../src/client/gui/components/RolledSelectionListV.cpp \ +../../../src/client/gui/components/ScrolledSelectionList.cpp \ +../../../src/client/gui/components/ScrollingPane.cpp \ +../../../src/client/gui/components/Slider.cpp \ +../../../src/client/gui/components/SmallButton.cpp \ +../../../src/client/gui/Font.cpp \ +../../../src/client/gui/Gui.cpp \ +../../../src/client/gui/GuiComponent.cpp \ +../../../src/client/gui/Screen.cpp \ +../../../src/client/gui/screens/ScreenChooser.cpp \ +../../../src/client/gui/screens/ArmorScreen.cpp \ +../../../src/client/gui/screens/ChatScreen.cpp \ +../../../src/client/gui/screens/ConfirmScreen.cpp \ +../../../src/client/gui/screens/ChestScreen.cpp \ +../../../src/client/gui/screens/DeathScreen.cpp \ +../../../src/client/gui/screens/FurnaceScreen.cpp \ +../../../src/client/gui/screens/InBedScreen.cpp \ +../../../src/client/gui/screens/IngameBlockSelectionScreen.cpp \ +../../../src/client/gui/screens/JoinGameScreen.cpp \ +../../../src/client/gui/screens/OptionsScreen.cpp \ +../../../src/client/gui/screens/PauseScreen.cpp \ +../../../src/client/gui/screens/ProgressScreen.cpp \ +../../../src/client/gui/screens/RenameMPLevelScreen.cpp \ +../../../src/client/gui/screens/SelectWorldScreen.cpp \ +../../../src/client/gui/screens/StartMenuScreen.cpp \ +../../../src/client/gui/screens/TextEditScreen.cpp \ +../../../src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp \ +../../../src/client/gui/screens/touch/TouchJoinGameScreen.cpp \ +../../../src/client/gui/screens/touch/TouchSelectWorldScreen.cpp \ +../../../src/client/gui/screens/touch/TouchStartMenuScreen.cpp \ +../../../src/client/gui/screens/UploadPhotoScreen.cpp \ +../../../src/client/gui/screens/crafting/CraftingFilters.cpp \ +../../../src/client/gui/screens/crafting/PaneCraftingScreen.cpp \ +../../../src/client/gui/screens/crafting/StonecutterScreen.cpp \ +../../../src/client/gui/screens/crafting/WorkbenchScreen.cpp \ +../../../src/client/model/ChickenModel.cpp \ +../../../src/client/model/CowModel.cpp \ +../../../src/client/model/HumanoidModel.cpp \ +../../../src/client/model/PigModel.cpp \ +../../../src/client/model/SheepFurModel.cpp \ +../../../src/client/model/SheepModel.cpp \ +../../../src/client/model/QuadrupedModel.cpp \ +../../../src/client/model/geom/Cube.cpp \ +../../../src/client/model/geom/ModelPart.cpp \ +../../../src/client/model/geom/Polygon.cpp \ +../../../src/client/particle/Particle.cpp \ +../../../src/client/particle/ParticleEngine.cpp \ +../../../src/client/player/LocalPlayer.cpp \ +../../../src/client/player/RemotePlayer.cpp \ +../../../src/client/player/input/KeyboardInput.cpp \ +../../../src/client/player/input/touchscreen/TouchscreenInput.cpp \ +../../../src/client/renderer/Chunk.cpp \ +../../../src/client/renderer/EntityTileRenderer.cpp \ +../../../src/client/renderer/GameRenderer.cpp \ +../../../src/client/renderer/ItemInHandRenderer.cpp \ +../../../src/client/renderer/LevelRenderer.cpp \ +../../../src/client/renderer/RenderChunk.cpp \ +../../../src/client/renderer/RenderList.cpp \ +../../../src/client/renderer/Tesselator.cpp \ +../../../src/client/renderer/Textures.cpp \ +../../../src/client/renderer/TileRenderer.cpp \ +../../../src/client/renderer/gles.cpp \ +../../../src/client/renderer/culling/Frustum.cpp \ +../../../src/client/renderer/entity/ArrowRenderer.cpp \ +../../../src/client/renderer/entity/ChickenRenderer.cpp \ +../../../src/client/renderer/entity/EntityRenderDispatcher.cpp \ +../../../src/client/renderer/entity/EntityRenderer.cpp \ +../../../src/client/renderer/entity/FallingTileRenderer.cpp \ +../../../src/client/renderer/entity/HumanoidMobRenderer.cpp \ +../../../src/client/renderer/entity/ItemRenderer.cpp \ +../../../src/client/renderer/entity/ItemSpriteRenderer.cpp \ +../../../src/client/renderer/entity/MobRenderer.cpp \ +../../../src/client/renderer/entity/PaintingRenderer.cpp \ +../../../src/client/renderer/entity/PlayerRenderer.cpp \ +../../../src/client/renderer/entity/SheepRenderer.cpp \ +../../../src/client/renderer/entity/TntRenderer.cpp \ +../../../src/client/renderer/entity/TripodCameraRenderer.cpp \ +../../../src/client/renderer/ptexture/DynamicTexture.cpp \ +../../../src/client/renderer/tileentity/ChestRenderer.cpp \ +../../../src/client/renderer/tileentity/SignRenderer.cpp \ +../../../src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp \ +../../../src/client/renderer/tileentity/TileEntityRenderer.cpp \ +../../../src/client/sound/Sound.cpp \ +../../../src/client/sound/SoundEngine.cpp \ +../../../src/locale/I18n.cpp \ +../../../src/nbt/Tag.cpp \ +../../../src/network/command/CommandServer.cpp \ +../../../src/network/ClientSideNetworkHandler.cpp \ +../../../src/network/NetEventCallback.cpp \ +../../../src/network/Packet.cpp \ +../../../src/network/RakNetInstance.cpp \ +../../../src/network/ServerSideNetworkHandler.cpp \ +../../../src/server/ServerLevel.cpp \ +../../../src/server/ServerPlayer.cpp \ +../../../src/util/DataIO.cpp \ +../../../src/util/Mth.cpp \ +../../../src/util/StringUtils.cpp \ +../../../src/util/PerfTimer.cpp \ +../../../src/util/PerfRenderer.cpp \ +../../../src/world/Direction.cpp \ +../../../src/world/entity/AgableMob.cpp \ +../../../src/world/entity/Entity.cpp \ +../../../src/world/entity/EntityFactory.cpp \ +../../../src/world/entity/FlyingMob.cpp \ +../../../src/world/entity/HangingEntity.cpp \ +../../../src/world/entity/Mob.cpp \ +../../../src/world/entity/MobCategory.cpp \ +../../../src/world/entity/Motive.cpp \ +../../../src/world/entity/Painting.cpp \ +../../../src/world/entity/PathfinderMob.cpp \ +../../../src/world/entity/SynchedEntityData.cpp \ +../../../src/world/entity/ai/control/MoveControl.cpp \ +../../../src/world/entity/animal/Animal.cpp \ +../../../src/world/entity/animal/Chicken.cpp \ +../../../src/world/entity/animal/Cow.cpp \ +../../../src/world/entity/animal/Pig.cpp \ +../../../src/world/entity/animal/Sheep.cpp \ +../../../src/world/entity/animal/WaterAnimal.cpp \ +../../../src/world/entity/item/FallingTile.cpp \ +../../../src/world/entity/item/ItemEntity.cpp \ +../../../src/world/entity/item/PrimedTnt.cpp \ +../../../src/world/entity/item/TripodCamera.cpp \ +../../../src/world/entity/monster/Creeper.cpp \ +../../../src/world/entity/monster/Monster.cpp \ +../../../src/world/entity/monster/PigZombie.cpp \ +../../../src/world/entity/monster/Skeleton.cpp \ +../../../src/world/entity/monster/Spider.cpp \ +../../../src/world/entity/monster/Zombie.cpp \ +../../../src/world/entity/projectile/Arrow.cpp \ +../../../src/world/entity/projectile/Throwable.cpp \ +../../../src/world/entity/player/Inventory.cpp \ +../../../src/world/entity/player/Player.cpp \ +../../../src/world/food/SimpleFoodData.cpp \ +../../../src/world/inventory/BaseContainerMenu.cpp \ +../../../src/world/inventory/ContainerMenu.cpp \ +../../../src/world/inventory/FillingContainer.cpp \ +../../../src/world/inventory/FurnaceMenu.cpp \ +../../../src/world/item/ArmorItem.cpp \ +../../../src/world/item/BedItem.cpp \ +../../../src/world/item/DyePowderItem.cpp \ +../../../src/world/item/Item.cpp \ +../../../src/world/item/ItemInstance.cpp \ +../../../src/world/item/HangingEntityItem.cpp \ +../../../src/world/item/HatchetItem.cpp \ +../../../src/world/item/HoeItem.cpp \ +../../../src/world/item/PickaxeItem.cpp \ +../../../src/world/item/ShovelItem.cpp \ +../../../src/world/item/crafting/ArmorRecipes.cpp \ +../../../src/world/item/crafting/Recipe.cpp \ +../../../src/world/item/crafting/Recipes.cpp \ +../../../src/world/item/crafting/FurnaceRecipes.cpp \ +../../../src/world/item/crafting/OreRecipes.cpp \ +../../../src/world/item/crafting/StructureRecipes.cpp \ +../../../src/world/item/crafting/ToolRecipes.cpp \ +../../../src/world/item/crafting/WeaponRecipes.cpp \ +../../../src/world/level/Explosion.cpp \ +../../../src/world/level/Level.cpp \ +../../../src/world/level/LightLayer.cpp \ +../../../src/world/level/LightUpdate.cpp \ +../../../src/world/level/MobSpawner.cpp \ +../../../src/world/level/Region.cpp \ +../../../src/world/level/TickNextTickData.cpp \ +../../../src/world/level/biome/Biome.cpp \ +../../../src/world/level/biome/BiomeSource.cpp \ +../../../src/world/level/chunk/LevelChunk.cpp \ +../../../src/world/level/dimension/Dimension.cpp \ +../../../src/world/level/levelgen/CanyonFeature.cpp \ +../../../src/world/level/levelgen/DungeonFeature.cpp \ +../../../src/world/level/levelgen/LargeCaveFeature.cpp \ +../../../src/world/level/levelgen/LargeFeature.cpp \ +../../../src/world/level/levelgen/RandomLevelSource.cpp \ +../../../src/world/level/levelgen/feature/Feature.cpp \ +../../../src/world/level/levelgen/synth/ImprovedNoise.cpp \ +../../../src/world/level/levelgen/synth/PerlinNoise.cpp \ +../../../src/world/level/levelgen/synth/Synth.cpp \ +../../../src/world/level/material/Material.cpp \ +../../../src/world/level/pathfinder/Path.cpp \ +../../../src/world/level/storage/ExternalFileLevelStorage.cpp \ +../../../src/world/level/storage/ExternalFileLevelStorageSource.cpp \ +../../../src/world/level/storage/FolderMethods.cpp \ +../../../src/world/level/storage/LevelData.cpp \ +../../../src/world/level/storage/LevelStorageSource.cpp \ +../../../src/world/level/storage/RegionFile.cpp \ +../../../src/world/level/tile/BedTile.cpp \ +../../../src/world/level/tile/ChestTile.cpp \ +../../../src/world/level/tile/CropTile.cpp \ +../../../src/world/level/tile/DoorTile.cpp \ +../../../src/world/level/tile/EntityTile.cpp \ +../../../src/world/level/tile/FurnaceTile.cpp \ +../../../src/world/level/tile/GrassTile.cpp \ +../../../src/world/level/tile/HeavyTile.cpp \ +../../../src/world/level/tile/LightGemTile.cpp \ +../../../src/world/level/tile/MelonTile.cpp \ +../../../src/world/level/tile/Mushroom.cpp \ +../../../src/world/level/tile/NetherReactor.cpp \ +../../../src/world/level/tile/NetherReactorPattern.cpp \ +../../../src/world/level/tile/StairTile.cpp \ +../../../src/world/level/tile/StemTile.cpp \ +../../../src/world/level/tile/StoneSlabTile.cpp \ +../../../src/world/level/tile/TallGrass.cpp \ +../../../src/world/level/tile/Tile.cpp \ +../../../src/world/level/tile/TrapDoorTile.cpp \ +../../../src/world/level/tile/entity/ChestTileEntity.cpp \ +../../../src/world/level/tile/entity/NetherReactorTileEntity.cpp \ +../../../src/world/level/tile/entity/SignTileEntity.cpp \ +../../../src/world/level/tile/entity/TileEntity.cpp \ +../../../src/world/level/tile/entity/FurnaceTileEntity.cpp \ +../../../src/world/phys/HitResult.cpp + +LOCAL_CFLAGS := -Wno-psabi $(LOCAL_CFLAGS) + +#LOCAL_CFLAGS := -DANDROID_PUBLISH -DDEMO_MODE $(LOCAL_CFLAGS) +#LOCAL_CFLAGS := -DANDROID_PUBLISH $(LOCAL_CFLAGS) + +#LOCAL_CFLAGS := -DDEMO_MODE -DGLDEBUG $(LOCAL_CFLAGS) +#LOCAL_CFLAGS := -DGLDEBUG $(LOCAL_CFLAGS) + +LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -lOpenSLES +LOCAL_STATIC_LIBRARIES := android_native_app_glue RakNet + +#LOCAL_CPP_FEATURES := exceptions + +TARGET_ARCH_ABI := armeabi-v7a + +include $(BUILD_SHARED_LIBRARY) + +# NOTE: environment var NDK_MODULE_PATH needs to point to lib_projects folder +$(call import-module,android/native_app_glue) +$(call import-module, raknet/jni) diff --git a/project/android/jni/Application.mk b/project/android/jni/Application.mk new file mode 100755 index 0000000..4d20cc6 --- /dev/null +++ b/project/android/jni/Application.mk @@ -0,0 +1,5 @@ +APP_PLATFORM := android-9 +APP_STL := stlport_static +APP_OPTIM := release +APP_ABI := armeabi-v7a +#APP_ABI := armeabi-v7a x86 diff --git a/project/android/proguard.cfg b/project/android/proguard.cfg new file mode 100755 index 0000000..af9a84e --- /dev/null +++ b/project/android/proguard.cfg @@ -0,0 +1,68 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontpreverify +-printseeds +-verbose +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keep public class com.mojang.minecraftpe.GameModeButton +-keep public class com.mojang.android.StringValue +-keep public class * extends android.app.Activity +-keep public class * extends com.mojang.minecraftpe.MainActivity +-keep public class * extends MainActivity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class com.android.vending.licensing.ILicensingService + +-keep,allowobfuscation class com.mojang.** { *** *(...); } + +-keepclasseswithmembernames class * { + native ; +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keepclassmembers class * extends android.app.Activity { + static public void saveScreenshot(java.lang.String, int, int, int[]); + public int[] getImageData(java.lang.String); + public byte[] getFileDataBytes(java.lang.String); + public java.lang.String getPlatformStringVar(int); + public int getScreenWidth(); + public int getScreenHeight(); + public float getPixelsPerMillimeter(); + public int checkLicense(); + public boolean isNetworkEnabled(boolean); + public java.lang.String getDateString(int); + public boolean hasBuyButtonWhenInvalidLicense(); + public void postScreenshotToFacebook(java.lang.String, int, int, int[]); + public int getKeyFromKeyCode(int, int, int); + public void quit(); + public void displayDialog(int); + public void tick(); + public java.lang.String[] getOptionStrings(); + public void buyGame(); + public boolean isTouchscreen(); + public void setIsPowerVR(boolean); + public void initiateUserInput(int); + public int getUserInputStatus(); + public java.lang.String[] getUserInputString(); + public void vibrate(int); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} diff --git a/project/android/res/drawable-hdpi/icon.png b/project/android/res/drawable-hdpi/icon.png new file mode 100755 index 0000000..d738bc6 Binary files /dev/null and b/project/android/res/drawable-hdpi/icon.png differ diff --git a/project/android/res/drawable-hdpi/icon_demo.png b/project/android/res/drawable-hdpi/icon_demo.png new file mode 100755 index 0000000..283aada Binary files /dev/null and b/project/android/res/drawable-hdpi/icon_demo.png differ diff --git a/project/android/res/drawable-ldpi/icon.png b/project/android/res/drawable-ldpi/icon.png new file mode 100755 index 0000000..4dc54a0 Binary files /dev/null and b/project/android/res/drawable-ldpi/icon.png differ diff --git a/project/android/res/drawable-ldpi/icon_demo.png b/project/android/res/drawable-ldpi/icon_demo.png new file mode 100755 index 0000000..5c0c553 Binary files /dev/null and b/project/android/res/drawable-ldpi/icon_demo.png differ diff --git a/project/android/res/drawable-mdpi/icon.png b/project/android/res/drawable-mdpi/icon.png new file mode 100755 index 0000000..01fb460 Binary files /dev/null and b/project/android/res/drawable-mdpi/icon.png differ diff --git a/project/android/res/drawable-mdpi/icon_demo.png b/project/android/res/drawable-mdpi/icon_demo.png new file mode 100755 index 0000000..edfde23 Binary files /dev/null and b/project/android/res/drawable-mdpi/icon_demo.png differ diff --git a/project/android/res/drawable-xhdpi/icon.png b/project/android/res/drawable-xhdpi/icon.png new file mode 100755 index 0000000..434fccc Binary files /dev/null and b/project/android/res/drawable-xhdpi/icon.png differ diff --git a/project/android/res/drawable-xhdpi/icon_demo.png b/project/android/res/drawable-xhdpi/icon_demo.png new file mode 100755 index 0000000..d60b0d2 Binary files /dev/null and b/project/android/res/drawable-xhdpi/icon_demo.png differ diff --git a/project/android/res/drawable/bg32.png b/project/android/res/drawable/bg32.png new file mode 100755 index 0000000..d9796c4 Binary files /dev/null and b/project/android/res/drawable/bg32.png differ diff --git a/project/android/res/drawable/bgtiled.xml b/project/android/res/drawable/bgtiled.xml new file mode 100755 index 0000000..006dcf2 --- /dev/null +++ b/project/android/res/drawable/bgtiled.xml @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/project/android/res/drawable/btn_nw_cancel.xml b/project/android/res/drawable/btn_nw_cancel.xml new file mode 100755 index 0000000..a37a22a --- /dev/null +++ b/project/android/res/drawable/btn_nw_cancel.xml @@ -0,0 +1,5 @@ + + + + diff --git a/project/android/res/drawable/btn_nw_create.xml b/project/android/res/drawable/btn_nw_create.xml new file mode 100755 index 0000000..022379d --- /dev/null +++ b/project/android/res/drawable/btn_nw_create.xml @@ -0,0 +1,5 @@ + + + + diff --git a/project/android/res/drawable/btngamemode.xml b/project/android/res/drawable/btngamemode.xml new file mode 100755 index 0000000..a19299b --- /dev/null +++ b/project/android/res/drawable/btngamemode.xml @@ -0,0 +1,5 @@ + + + + diff --git a/project/android/res/drawable/cancel_0_1.png b/project/android/res/drawable/cancel_0_1.png new file mode 100755 index 0000000..c43434a Binary files /dev/null and b/project/android/res/drawable/cancel_0_1.png differ diff --git a/project/android/res/drawable/cancel_0_3.png b/project/android/res/drawable/cancel_0_3.png new file mode 100755 index 0000000..887322d Binary files /dev/null and b/project/android/res/drawable/cancel_0_3.png differ diff --git a/project/android/res/drawable/cancel_1_1.png b/project/android/res/drawable/cancel_1_1.png new file mode 100755 index 0000000..abaa241 Binary files /dev/null and b/project/android/res/drawable/cancel_1_1.png differ diff --git a/project/android/res/drawable/cancel_1_3.png b/project/android/res/drawable/cancel_1_3.png new file mode 100755 index 0000000..8519c68 Binary files /dev/null and b/project/android/res/drawable/cancel_1_3.png differ diff --git a/project/android/res/drawable/create_0_1.png b/project/android/res/drawable/create_0_1.png new file mode 100755 index 0000000..4ebc3b2 Binary files /dev/null and b/project/android/res/drawable/create_0_1.png differ diff --git a/project/android/res/drawable/create_0_3.png b/project/android/res/drawable/create_0_3.png new file mode 100755 index 0000000..a771a56 Binary files /dev/null and b/project/android/res/drawable/create_0_3.png differ diff --git a/project/android/res/drawable/create_1_1.png b/project/android/res/drawable/create_1_1.png new file mode 100755 index 0000000..5db6202 Binary files /dev/null and b/project/android/res/drawable/create_1_1.png differ diff --git a/project/android/res/drawable/create_1_3.png b/project/android/res/drawable/create_1_3.png new file mode 100755 index 0000000..e1ea00e Binary files /dev/null and b/project/android/res/drawable/create_1_3.png differ diff --git a/project/android/res/drawable/creative_3.png b/project/android/res/drawable/creative_3.png new file mode 100755 index 0000000..80940ba Binary files /dev/null and b/project/android/res/drawable/creative_3.png differ diff --git a/project/android/res/drawable/iconx.png b/project/android/res/drawable/iconx.png new file mode 100755 index 0000000..38dcfcb Binary files /dev/null and b/project/android/res/drawable/iconx.png differ diff --git a/project/android/res/drawable/survival_3.png b/project/android/res/drawable/survival_3.png new file mode 100755 index 0000000..cc8d738 Binary files /dev/null and b/project/android/res/drawable/survival_3.png differ diff --git a/project/android/res/drawable/worldname.png b/project/android/res/drawable/worldname.png new file mode 100755 index 0000000..b8f42a2 Binary files /dev/null and b/project/android/res/drawable/worldname.png differ diff --git a/project/android/res/drawable/worldname_3.png b/project/android/res/drawable/worldname_3.png new file mode 100755 index 0000000..adccd67 Binary files /dev/null and b/project/android/res/drawable/worldname_3.png differ diff --git a/project/android/res/layout/create_new_world.xml b/project/android/res/layout/create_new_world.xml new file mode 100755 index 0000000..07b755f --- /dev/null +++ b/project/android/res/layout/create_new_world.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/android/res/layout/create_world_screen.xml b/project/android/res/layout/create_world_screen.xml new file mode 100755 index 0000000..deea75d --- /dev/null +++ b/project/android/res/layout/create_world_screen.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/android/res/layout/main.xml b/project/android/res/layout/main.xml new file mode 100755 index 0000000..d3ef19b --- /dev/null +++ b/project/android/res/layout/main.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/project/android/res/layout/mainmenu_options.xml b/project/android/res/layout/mainmenu_options.xml new file mode 100755 index 0000000..9cb5b81 --- /dev/null +++ b/project/android/res/layout/mainmenu_options.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/project/android/res/layout/rename_mp_world.xml b/project/android/res/layout/rename_mp_world.xml new file mode 100755 index 0000000..b6a0780 --- /dev/null +++ b/project/android/res/layout/rename_mp_world.xml @@ -0,0 +1,29 @@ + + + + + + diff --git a/project/android/res/values/strings.xml b/project/android/res/values/strings.xml new file mode 100755 index 0000000..7e66a1f --- /dev/null +++ b/project/android/res/values/strings.xml @@ -0,0 +1,40 @@ + + + Minecraft - Pocket Edition + Minecraft - Pocket Edition Demo + true + Minecraft PE + Minecraft PE Demo + + + World name + Unnamed world + World Generator seed. Leave blank for random. + Leave blank for random seed + Mobs, health and gather resources + Unlimited resources and flying + + + Save world as + Saved World + + + Username + Enter your username + Server visible by default + Sensitivity + Invert Y-axis + Lefty + Use touch screen + Split touch controls + Vibration + Slight vibration when blocks are destroyed + Fancy graphics + + + Lower graphics quality + Shorter view distance and disables fancy rendering + Peaceful mode + No hostile mobs, heal automatically + + diff --git a/project/android/res/xml/preferences.xml b/project/android/res/xml/preferences.xml new file mode 100755 index 0000000..8c13363 --- /dev/null +++ b/project/android/res/xml/preferences.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/android/src/com/mojang/android/EditTextAscii.java b/project/android/src/com/mojang/android/EditTextAscii.java new file mode 100755 index 0000000..3b0c9bb --- /dev/null +++ b/project/android/src/com/mojang/android/EditTextAscii.java @@ -0,0 +1,58 @@ +package com.mojang.android; + +import android.content.Context; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.AttributeSet; +import android.widget.EditText; + +public class EditTextAscii extends EditText + implements TextWatcher { + + public EditTextAscii(Context context) { + super(context); + _init(); + } + + public EditTextAscii(Context context, AttributeSet attrs) { + super(context, attrs); + _init(); + } + + public EditTextAscii(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + _init(); + } + + private void _init() { + this.addTextChangedListener(this); + } + + // + // TextWatcher + // + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) {} + //@Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { } + //@Override + public void afterTextChanged(Editable e) { + String s = e.toString(); + String sanitized = sanitize(s); + + if (!s.equals(sanitized)) { + e.replace(0, e.length(), sanitized); + } + } + + static public String sanitize(String s) { + StringBuilder sb = new StringBuilder(s.length()); + + for (int i = 0; i < s.length(); ++i) { + char ch = s.charAt(i); + if (ch < 128) + sb.append(ch); + } + return sb.toString(); + } +} diff --git a/project/android/src/com/mojang/android/StringValue.java b/project/android/src/com/mojang/android/StringValue.java new file mode 100755 index 0000000..f568c05 --- /dev/null +++ b/project/android/src/com/mojang/android/StringValue.java @@ -0,0 +1,5 @@ +package com.mojang.android; + +public interface StringValue { + public String getStringValue(); +} diff --git a/project/android/src/com/mojang/android/licensing/LicenseCodes.java b/project/android/src/com/mojang/android/licensing/LicenseCodes.java new file mode 100755 index 0000000..63638c7 --- /dev/null +++ b/project/android/src/com/mojang/android/licensing/LicenseCodes.java @@ -0,0 +1,29 @@ +package com.mojang.android.licensing; + +///see LicenseResult.h in C++ project +public class LicenseCodes { + + // Something's not ready, call again later + public static final int WAIT_PLATFORM_NOT_READY = -2; // Note used from java + public static final int WAIT_SERVER_NOT_READY = -1; + + // License is ok + public static final int LICENSE_OK = 0; + public static final int LICENSE_TRIAL_OK = 1; + + // License is not working in one way or another + public static final int LICENSE_VALIDATION_FAILED = 50; + public static final int ITEM_NOT_FOUND = 51; + public static final int LICENSE_NOT_FOUND = 52; + public static final int ERROR_CONTENT_HANDLER = 100; + public static final int ERROR_ILLEGAL_ARGUMENT = 101; + public static final int ERROR_SECURITY = 102; + public static final int ERROR_INPUT_OUTPUT = 103; + public static final int ERROR_ILLEGAL_STATE = 104; + public static final int ERROR_NULL_POINTER = 105; + public static final int ERROR_GENERAL = 106; + public static final int ERROR_UNABLE_TO_CONNECT_TO_CDS = 107; + + // The call went wrong so we didn't get a license value at all + public static final int LICENSE_CHECK_EXCEPTION = 200; +} diff --git a/project/android/src/com/mojang/android/preferences/SliderPreference.java b/project/android/src/com/mojang/android/preferences/SliderPreference.java new file mode 100755 index 0000000..2d40586 --- /dev/null +++ b/project/android/src/com/mojang/android/preferences/SliderPreference.java @@ -0,0 +1,233 @@ +package com.mojang.android.preferences; + +import android.content.Context; +import android.content.res.Resources; +import android.preference.DialogPreference; +import android.util.AttributeSet; +import android.view.Gravity; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.SeekBar; +import android.widget.TextView; + +public class SliderPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener { + + private static final String androidns = "http://schemas.android.com/apk/res/android"; + + private Context _context; + + //private TextView _minValueTextView; + private TextView _valueTextView; + //private TextView _maxValueTextView; + private SeekBar _seekBar; + + private String _valueSuffix; + + private int _defaultValue; // Stores the default preference value when none has been set + private int _maxValue; // Stores the upper preference value bound + private int _value; // Stores the value of the preference + private int _minValue; // Stores the minimum preference value bound + + public SliderPreference(Context context, AttributeSet attrs) { + super(context, attrs); + + _context = context; + + _valueSuffix = getResourceValueFromAttribute(attrs, androidns, "text", ""); + + _defaultValue = getResourceValueFromAttribute(attrs, androidns, "defaultValue", 0); + _maxValue = getResourceValueFromAttribute(attrs, androidns, "max", 100); + _minValue = getResourceValueFromAttribute(attrs, null, "min", 0); + + // Set the default value of the preference to the default value found in attribute + setDefaultValue((Integer) _defaultValue); + } + //public SliderPreference(Context context, AttributeSet attrs, int) + + @Override + protected View onCreateDialogView() { + LinearLayout.LayoutParams params; + LinearLayout layout = new LinearLayout(getContext()); + layout.setOrientation(LinearLayout.VERTICAL); + layout.setPadding(6,6,6,6); + +// mSplashText = new TextView(_context); +// if (mDialogMessage != null) +// mSplashText.setText(mDialogMessage); +// layout.addView(mSplashText); + + _valueTextView = new TextView(_context); + _valueTextView.setGravity(Gravity.CENTER_HORIZONTAL); + _valueTextView.setTextSize(32); + params = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.FILL_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT); + layout.addView(_valueTextView, params); + + _seekBar = new SeekBar(_context); + _seekBar.setOnSeekBarChangeListener(this); + layout.addView(_seekBar, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); + + if (shouldPersist()) + _value = getPersistedInt(_defaultValue); + + _seekBar.setMax(_maxValue); + _seekBar.setProgress(_value); + return layout; + } + + @Override + protected void onSetInitialValue(boolean restore, Object defaultValue) { + super.onSetInitialValue(restore, defaultValue); + if (restore) + _value = shouldPersist() ? getPersistedInt(_defaultValue) : 0; + else + _value = (Integer) defaultValue; + } + + +/* + @Override + protected void onBindView(View view) { + super.onBindView(view); + // Bind _seekBar to the layout's internal view + _seekBar = (SeekBar) view.findViewById(R.id.slider_preference_seekbar); + + // Setup it's listeners and parameters + _seekBar.setMax(translateValueToSeekBar(_maxValue)); + _seekBar.setProgress(translateValueToSeekBar(_value)); + _seekBar.setOnSeekBarChangeListener(this); + + // Bind mTextView to the layout's internal view + _valueTextView = (TextView) view.findViewById(R.id.slider_preference_value); + + // Setup it's parameters + _valueTextView.setText(getValueText(_value)); + + // Setup min and max value text views + _minValueTextView = (TextView) view.findViewById(R.id.slider_preference_min_value); + _minValueTextView.setText(getValueText(_minValue)); + _maxValueTextView = (TextView) view.findViewById(R.id.slider_preference_max_value); + _maxValueTextView.setText(getValueText(_maxValue)); + } +*/ + + //@Override + public void onProgressChanged(SeekBar seekBar, int value, boolean fromUser) { + // Change mTextView and _value to the current seekbar value + _value = translateValueFro_seekBar(value); + _valueTextView.setText(getValueText(_value)); + if (shouldPersist()) + persistInt(translateValueFro_seekBar(value)); + callChangeListener(new Integer(_value)); + } + + //@Override + public void onStartTrackingTouch(SeekBar seekBar) { + // Not used + } + + //@Override + public void onStopTrackingTouch(SeekBar seekBar) { + // Not used + } + + private String getValueText(int value) { + String t = String.valueOf(value); + return t.concat(_valueSuffix); + } + + /** + * Retrieves a value from the resources of this slider preference's context + * based on an attribute pointing to that resource. + * + * @param attrs + * The attribute set to search + * + * @param namespace + * The namespace of the attribute + * + * @param name + * The name of the attribute + * + * @param defaultValue + * The default value returned if no resource is found + * + * @return + * The resource value + */ + private int getResourceValueFromAttribute(AttributeSet attrs, String namespace, String name, int defaultValue) { + Resources res = getContext().getResources(); + int valueID = attrs.getAttributeResourceValue(namespace, name, 0); + if (valueID != 0) { + return res.getInteger(valueID); + } + else { + return attrs.getAttributeIntValue(namespace, name, defaultValue); + } + } + + /** + * Retrieves a value from the resources of this slider preference's context + * based on an attribute pointing to that resource. + * + * @param attrs + * The attribute set to search + * + * @param namespace + * The namespace of the attribute + * + * @param name + * The name of the attribute + * + * @param defaultValue + * The default value returned if no resource is found + * + * @return + * The resource value + */ + private String getResourceValueFromAttribute(AttributeSet attrs, String namespace, String name, String defaultValue) { + Resources res = getContext().getResources(); + int valueID = attrs.getAttributeResourceValue(namespace, name, 0); + if (valueID != 0) { + return res.getString(valueID); + } + else { + String value = attrs.getAttributeValue(namespace, name); + if (value != null) { + return value; + } + else { + return defaultValue; + } + } + } + + /** + * Translates a value from this slider preference's seekbar by + * adjusting it for a set perceived minimum value. + * + * @param value + * The value to be translated from the seekbar + * + * @return + * A value equal to the value passed plus the currently set minimum value. + */ + private int translateValueFro_seekBar(int value) { + return value + _minValue; + } + + /** + * Translates a value for when setting this slider preference's seekbar by + * adjusting it for a set perceived minimum value. + * + * @param value + * The value to be translated for use + * + * @return + * A value equal to the value passed minus the currently set minimum value. + */ + private int translateValueToSeekBar(int value) { + return value - _minValue; + } +} diff --git a/project/android/src/com/mojang/minecraftpe/GameModeButton.java b/project/android/src/com/mojang/minecraftpe/GameModeButton.java new file mode 100755 index 0000000..be079b9 --- /dev/null +++ b/project/android/src/com/mojang/minecraftpe/GameModeButton.java @@ -0,0 +1,77 @@ +package com.mojang.minecraftpe; + +import com.mojang.android.StringValue; +import com.mojang.minecraftpe.R; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.TextView; +import android.widget.ToggleButton; + +public class GameModeButton extends ToggleButton implements OnClickListener, StringValue { + public GameModeButton(Context context, AttributeSet attrs) { + super(context, attrs); + _init(); + } + + //@Override + public void onClick(View v) { + _update(); + } + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + _update(); + } + @Override + protected void onAttachedToWindow() { + if (!_attached) { + _update(); + _attached = true; + } + } + private boolean _attached = false; + + private void _init() { + setOnClickListener(this); + } + private void _update() { + _setGameType(isChecked()?Survival:Creative); + } + private void _setGameType(int i) { + _type = _clamp(i); + + int id = R.string.gamemode_creative_summary; + if (_type == Survival) + id = R.string.gamemode_survival_summary; + String desc = getContext().getString(id); + + View v = getRootView().findViewById(R.id.labelGameModeDesc); + System.out.println("Mode: " + _type + ", view? " + (v!=null)); + if (desc != null && v != null && v instanceof TextView) { + ((TextView)v).setText(desc); + } + } + + static private int _clamp(int i) { + if (i > Survival) return Survival; + if (i < Creative) return Creative; + return i; + } + + public String getStringValue() { + return getStringForType(_type); + } + static public String getStringForType(int i) { + return new String[] { + "creative", + "survival" + } [_clamp(i)]; + } + + private int _type = 0; + static final int Creative = 0; + static final int Survival = 1; +} diff --git a/project/android/src/com/mojang/minecraftpe/MainActivity.java b/project/android/src/com/mojang/minecraftpe/MainActivity.java new file mode 100755 index 0000000..95f33f7 --- /dev/null +++ b/project/android/src/com/mojang/minecraftpe/MainActivity.java @@ -0,0 +1,531 @@ +package com.mojang.minecraftpe; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Map; + +import com.mojang.android.StringValue; +import com.mojang.android.licensing.LicenseCodes; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.NativeActivity; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnCancelListener; +import android.content.DialogInterface.OnClickListener; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.AssetFileDescriptor; +import android.content.res.AssetManager; +import android.graphics.Bitmap; +import android.graphics.Bitmap.CompressFormat; +import android.graphics.BitmapFactory; +import android.media.AudioManager; +import android.os.Bundle; +import android.os.Vibrator; +import android.preference.PreferenceManager; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.Display; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; +import android.view.WindowManager; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.view.inputmethod.*; +import com.mojang.minecraftpe.R; + +public class MainActivity extends NativeActivity { + private boolean _isTouchscreen = true; + private int _viewDistance = 2; + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + getOptionStrings(); // Updates settings + setVolumeControlStream(AudioManager.STREAM_MUSIC); + super.onCreate(savedInstanceState); + nativeRegisterThis(); + } + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + Log.w("MCPE", event.toString()); + if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { + return false; + } + return super.dispatchKeyEvent(event); + } + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + onBackPressed(); + return true; + } + return super.onKeyUp(keyCode, event); + } + @Override + public void onBackPressed() { + Log.w("MCPE", "Java - onBackPressed"); + return; + } + + private void createAlertDialog(boolean hasOkButton, boolean hasCancelButton, boolean preventBackKey) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + + builder.setTitle(""); + if (preventBackKey) + builder.setCancelable(false); + + builder.setOnCancelListener(new OnCancelListener() { + //@Override + public void onCancel(DialogInterface dialog) { + onDialogCanceled(); + } + }); + + if (hasOkButton) + builder.setPositiveButton("Ok", new OnClickListener() { + public void onClick(DialogInterface dialog, int which) { onDialogCompleted(); }}); + + if (hasCancelButton) + builder.setNegativeButton("Cancel", new OnClickListener() { + public void onClick(DialogInterface dialog, int which) { onDialogCanceled(); }}); + + mDialog = builder.create(); + mDialog.setOwnerActivity(this); + } + + static private boolean _isPowerVr = false; + public void setIsPowerVR(boolean status) { MainActivity._isPowerVr = status; } + static public boolean isPowerVR() { return _isPowerVr; } + + public boolean supportsTouchscreen() { + return isXperiaPlay(); + //if (isXperiaPlay()) return false; + //return true; + } + + static public boolean isXperiaPlay() { + final String[] tags = { android.os.Build.MODEL, + android.os.Build.DEVICE, + android.os.Build.PRODUCT}; + for (String tag : tags) { + tag = tag.toLowerCase(); + if (tag.indexOf("r800") >= 0) return true; + if (tag.indexOf("so-01d") >= 0) return true; + if (tag.indexOf("xperia") >= 0 && tag.indexOf("play") >= 0) return true; + } + return false; + } + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + // TODO Auto-generated method stub + //System.out.println("Focus has changed. Has Focus? " + hasFocus); + super.onWindowFocusChanged(hasFocus); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + // TODO Auto-generated method stub + //System.out.println("KeyDown: " + keyCode); + Log.w("MCPE", "onKeyDown: " + keyCode); + return super.onKeyDown(keyCode, event); + } + public int getKeyFromKeyCode(int keyCode, int metaState, int deviceId) { + return InputDevice.getDevice(deviceId).getKeyCharacterMap().get(keyCode, metaState); + } + static public void saveScreenshot(String filename, int w, int h, int[] pixels) { + Bitmap bitmap = Bitmap.createBitmap(pixels, w, h, Bitmap.Config.ARGB_8888); + + //System.out.println("Save screenshot: " + filename); + + try { + FileOutputStream fos = new FileOutputStream(filename); + bitmap.compress(CompressFormat.JPEG, 85, fos); + //System.out.println("Compression completed!"); + + try { + fos.flush(); + } catch (IOException e) { + e.printStackTrace(); + } + + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + catch (FileNotFoundException e) { + System.err.println("Couldn't create file: " + filename); + e.printStackTrace(); + } + } + + public byte[] getFileDataBytes(String filename) { + AssetManager assets = getAssets(); + + BufferedInputStream bis; + try { + InputStream is = assets.open(filename); + bis = new BufferedInputStream(is); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + + ByteArrayOutputStream s = new ByteArrayOutputStream(4096); + byte[] tmp = new byte[1024]; + + try { + while (true) { + int count = bis.read(tmp); + if (count <= 0) break; + s.write(tmp, 0, count); + } + } catch (IOException e) { + } finally { + try { bis.close(); } + catch (IOException e) {} + } + + return s.toByteArray(); + } + + public int[] getImageData(String filename) { + AssetManager assets = getAssets(); + + try { + /*String[] filenames = */assets.list("images"); + } catch (IOException e) { + System.err.println("getImageData: Could not list directory"); + return null; + } + + InputStream inputStream = null; + try { + inputStream = assets.open(filename); + } catch (IOException e) { + System.err.println("getImageData: Could not open image " + filename); + return null; + } + + Bitmap bm = BitmapFactory.decodeStream(inputStream); + int w = bm.getWidth(); + int h = bm.getHeight(); + + int[] pixels = new int[w * h + 2]; + pixels[0] = w; + pixels[1] = h; + bm.getPixels(pixels, 2, w, 0, 0, w, h); + + return pixels; + } + + public int getScreenWidth() { + Display display = ((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + int out = Math.max(display.getWidth(), display.getHeight()); + System.out.println("getwidth: " + out); + return out; + } + public int getScreenHeight() { + Display display = ((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + int out = Math.min(display.getWidth(), display.getHeight()); + System.out.println("getheight: " + out); + return out; + } + public float getPixelsPerMillimeter() { + DisplayMetrics metrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(metrics); + //System.err.println("metrics: " + metrics.xdpi + ", " + metrics.ydpi); + return (metrics.xdpi + metrics.ydpi) * 0.5f / 25.4f; + } + + public int checkLicense() { return LicenseCodes.LICENSE_OK; } + + public String getDateString(int s) { + return DateFormat.format(new Date(s * 1000L)); + } + + public boolean hasBuyButtonWhenInvalidLicense() { return true; } + + public void postScreenshotToFacebook(String filename, int w, int h, int[] pixels) { + return; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, + Intent data) { + + if (requestCode == DialogDefinitions.DIALOG_MAINMENU_OPTIONS) { + _userInputStatus = 1; + } + } + + public void quit() { + runOnUiThread(new Runnable() { + public void run() { finish(); } }); + } + + public void displayDialog(int dialogId) { + + if (dialogId == DialogDefinitions.DIALOG_CREATE_NEW_WORLD) { + chooseDialog(R.layout.create_new_world, + new int[] { R.id.editText_worldName, + R.id.editText_worldSeed, + R.id.button_gameMode}, + false, // Don't prevent back key + R.id.button_createworld_create, + R.id.button_createworld_cancel + ); + } else if (dialogId == DialogDefinitions.DIALOG_MAINMENU_OPTIONS) { + Intent intent = new Intent(this, MainMenuOptionsActivity.class); + intent.putExtra("preferenceId", R.xml.preferences); + startActivityForResult(intent, dialogId); + } else if (dialogId == DialogDefinitions.DIALOG_RENAME_MP_WORLD) { + chooseDialog(R.layout.rename_mp_world, + new int[] { R.id.editText_worldNameRename }, + false + ); + } + } + + void chooseDialog(final int layoutId, final int[] viewIds) { + chooseDialog(layoutId, viewIds, true); + } + void chooseDialog(final int layoutId, final int[] viewIds, final boolean hasCancelButton) { + chooseDialog(layoutId, viewIds, hasCancelButton, true); + } + void chooseDialog(final int layoutId, final int[] viewIds, final boolean hasCancelButton, final boolean preventBackKey) { + chooseDialog(layoutId, viewIds, preventBackKey, 0, hasCancelButton? 0 : -1); + } + void chooseDialog(final int layoutId, final int[] viewIds, final boolean preventBackKey, final int okButtonId, final int cancelButtonId) { + _userInputValues.clear(); + + runOnUiThread(new Runnable() { + public void run() { + createAlertDialog(okButtonId==0, cancelButtonId==0, preventBackKey); + LayoutInflater li = LayoutInflater.from(MainActivity.this); + + try { + View view = li.inflate(layoutId, null); + if (okButtonId != 0 && okButtonId != -1) { + View b = view.findViewById(okButtonId); + if (b != null) + b.setOnClickListener(new View.OnClickListener() + { public void onClick(View v) { if (mDialog != null) mDialog.dismiss(); onDialogCompleted(); }}); + } + if (cancelButtonId != 0 && cancelButtonId != -1) { + View b = view.findViewById(cancelButtonId); + if (b != null) + b.setOnClickListener(new View.OnClickListener() + { public void onClick(View v) { if (mDialog != null) mDialog.cancel(); onDialogCanceled(); }}); + } + + //mDialog.setO + MainActivity.this.mDialog.setView(view); + + if (viewIds != null) + for (int viewId : viewIds) { + View v = view.findViewById(viewId); + if (v instanceof StringValue) + _userInputValues.add( (StringValue) v ); + else if (v instanceof TextView) + _userInputValues.add(new TextViewReader((TextView)v)); + } + + } catch (Error e) { + e.printStackTrace(); + } + + MainActivity.this.mDialog.show(); + MainActivity.this.mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + MainActivity.this.mDialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.MATCH_PARENT); + //MainActivity.this.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); + } + }); + } + + public void tick() {} + + public String[] getOptionStrings() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + Map m = prefs.getAll(); + + String[] tmpOut = new String[m.size() * 2]; + + int n = 0; + for (Map.Entry e : m.entrySet()) { + // @todo: Would be nice if the disabled settings could be stripped out here + + String key = e.getKey(); + String value = e.getValue().toString(); + + // + // Feel free to modify key or value! + // + // This can be used to correct differences between the different + // platforms, such as Android not supporting floating point + // ranges for Sliders/SeekBars: {0..100} - TRANSFORM -> {0..1} + // + if (key.equals(MainMenuOptionsActivity.Controls_UseTouchscreen)) + _isTouchscreen = !isXperiaPlay() || (Boolean) e.getValue(); + + if (key.equals(MainMenuOptionsActivity.Graphics_LowQuality)) + _viewDistance = ((Boolean) e.getValue()) ? 3 : 2; + + if (key.equals(MainMenuOptionsActivity.Internal_Game_DifficultyPeaceful)) { + key = MainMenuOptionsActivity.Game_DifficultyLevel; + value = ((Boolean) e.getValue()) ? "0" : "2"; + } + + try { + if (key.equals(MainMenuOptionsActivity.Controls_Sensitivity)) + value = new Double( 0.01 * Integer.parseInt(value) ).toString(); + } catch (Exception exc) {} + + tmpOut[n++] = key; + tmpOut[n++] = value; + + //System.out.println("Key: " + e.getKey()); + //System.out.println("Val: " + e.getValue().toString() + " (" + e.getValue().getClass().getName() + ")\n"); + } + + // Copy over the enabled preferences + String[] out = new String[n]; + for (int i = 0; i < n; ++i) + out[i] = tmpOut[i]; + + return out; + } + + public void buyGame() {} + + public String getPlatformStringVar(int id) { + if (id == 0) return android.os.Build.MODEL; + return null; + } + + public boolean isNetworkEnabled(boolean onlyWifiAllowed) { + return true; + /* + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo info = onlyWifiAllowed? cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) + : cm.getActiveNetworkInfo(); + //(info.getState() == NetworkInfo.State.CONNECTED || info.getState() == NetworkInfo.State.CONNECTING)); + return (info != null && info.isConnectedOrConnecting()); + */ + } + + private Bundle data; + private int _userInputStatus = -1; + private String[] _userInputText = null; + private ArrayList _userInputValues = new ArrayList(); + public void initiateUserInput(int id) { + _userInputText = null; + _userInputStatus = -1; + } + public int getUserInputStatus() { return _userInputStatus; } + public String[] getUserInputString() { return _userInputText; } + + private AlertDialog mDialog; + private final DateFormat DateFormat = new SimpleDateFormat(); +// public EditText mTextInputWidget; + + public void vibrate(int milliSeconds) { + Vibrator v = (Vibrator)this.getSystemService(VIBRATOR_SERVICE); + v.vibrate(milliSeconds); + } + + private void onDialogCanceled() { + _userInputStatus = 0; + } + + private void onDialogCompleted() { + int size = _userInputValues.size(); + _userInputText = new String[size]; + for (int i = 0; i < size; ++i) { + _userInputText[i] = _userInputValues.get(i).getStringValue(); + } + for (String s : _userInputText) System.out.println("js: " + s); + + _userInputStatus = 1; + InputMethodManager inputManager = (InputMethodManager)getSystemService("input_method"); + boolean result = inputManager.showSoftInput(this.getCurrentFocus(), InputMethodManager.SHOW_IMPLICIT); + } + + protected void onStart() { + //System.out.println("onStart"); + super.onStart(); + } + + protected void onResume() { + //System.out.println("onResume"); + super.onResume(); + } + + protected void onPause() { + //System.out.println("onPause"); + super.onPause(); + } + + protected void onStop() { + //System.out.println("onStop"); + nativeStopThis(); + super.onStop(); + } + protected void onDestroy() { + System.out.println("onDestroy"); + + nativeUnregisterThis(); + super.onDestroy(); + } + + protected boolean isDemo() { return false; } + + // + // Native interface + // + native void nativeRegisterThis(); + native void nativeUnregisterThis(); + native void nativeStopThis(); + + static { + System.loadLibrary("minecraftpe"); + } +} + +// see client/gui/screens/DialogDefinitions.h +class DialogDefinitions { + static final int DIALOG_CREATE_NEW_WORLD = 1; + static final int DIALOG_NEW_CHAT_MESSAGE = 2; + static final int DIALOG_MAINMENU_OPTIONS = 3; + static final int DIALOG_RENAME_MP_WORLD = 4; +} + +class TextViewReader implements StringValue { + public TextViewReader(TextView view) { + _view = view; + } + public String getStringValue() { + return _view.getText().toString(); + } + private TextView _view; +} diff --git a/project/android/src/com/mojang/minecraftpe/MainMenuOptionsActivity.java b/project/android/src/com/mojang/minecraftpe/MainMenuOptionsActivity.java new file mode 100755 index 0000000..1c0294b --- /dev/null +++ b/project/android/src/com/mojang/minecraftpe/MainMenuOptionsActivity.java @@ -0,0 +1,197 @@ +package com.mojang.minecraftpe; + +import java.util.ArrayList; + +import com.mojang.android.EditTextAscii; +//import com.mojang.minecraftpe.R; + +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.EditTextPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; +import android.preference.PreferenceGroup; +import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; + +public class MainMenuOptionsActivity extends PreferenceActivity implements + SharedPreferences.OnSharedPreferenceChangeListener +{ + static public final String Multiplayer_Username = "mp_username"; + static public final String Multiplayer_ServerVisible = "mp_server_visible_default"; + static public final String Graphics_Fancy = "gfx_fancygraphics"; + static public final String Graphics_LowQuality = "gfx_lowquality"; + static public final String Controls_InvertMouse = "ctrl_invertmouse"; + static public final String Controls_Sensitivity = "ctrl_sensitivity"; + static public final String Controls_UseTouchscreen = "ctrl_usetouchscreen"; + static public final String Controls_UseTouchJoypad = "ctrl_usetouchjoypad"; + static public final String Controls_FeedbackVibration = "feedback_vibration"; + static public final String Game_DifficultyLevel = "game_difficulty"; + static public final String Internal_Game_DifficultyPeaceful = "game_difficultypeaceful"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Bundle extras = getIntent().getExtras(); + addPreferencesFromResource(extras.getInt("preferenceId"));//R.xml.preferences); + + //getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE); + + PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); + PreferenceScreen s = getPreferenceScreen(); + + if (PreferenceManager.getDefaultSharedPreferences(this).contains(Multiplayer_Username)) { + previousName = PreferenceManager.getDefaultSharedPreferences(this).getString(Multiplayer_Username, null); + } + + _validator = new PreferenceValidator(this); + readBackAll(s); + _validator.commit(); + } + + private void readBackAll(PreferenceGroup g) { + traversePreferences(g, new PreferenceTraverser() { + void onPreference(Preference p) { readBack(p); _validator.validate(p); } + }); + } + private void traversePreferences(PreferenceGroup g, PreferenceTraverser pt) { + int size = g.getPreferenceCount(); + for (int i = 0; i < size; ++i) { + Preference p = g.getPreference(i); + if (p instanceof PreferenceGroup) { + PreferenceGroup pg = (PreferenceGroup)p; + pt.onPreferenceGroup(pg); + traversePreferences(pg, pt); + } + else + pt.onPreference(p); + } + } + private void readBack(Preference p) { + if (p == null) + return; + + //System.out.println("pref: " + p.toString()); + + if (p instanceof EditTextPreference) { + EditTextPreference e = (EditTextPreference) p; + p.setSummary("'" + e.getText() + "'"); + } + } + + //@Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + Preference p = findPreference(key); + _validator.validate(sharedPreferences, key); + + if (p instanceof EditTextPreference) { + EditTextPreference e = (EditTextPreference) p; + Editor editor = sharedPreferences.edit(); + + String s = e.getText(); + String sanitized = EditTextAscii.sanitize(s).trim(); + + if (key.equals(Multiplayer_Username) && sanitized == null || sanitized.length() == 0) { + sanitized = previousName; + if (sanitized == null || sanitized.equals("")) { + sanitized = "Steve"; + previousName = sanitized; + } + } + + if (!s.equals(sanitized)) { + editor.putString(key, sanitized); + editor.commit(); + e.setText(sanitized); + } + } + + readBack(p); + } + + String previousName; + PreferenceValidator _validator; +} + +class PreferenceValidator { + static private class Pref { + Pref(PreferenceGroup g, Preference p) { + this.g = g; + this.p = p; + } + PreferenceGroup g; + Preference p; + } + private PreferenceActivity _prefs; + private ArrayList _arrayList = new ArrayList(); + + public PreferenceValidator(PreferenceActivity prefs) { + _prefs = prefs; + } + + public void commit() { + //System.err.println("ERR: " + _arrayList.size()); + for (int i = 0; i < _arrayList.size(); ++i) { + PreferenceGroup g = _arrayList.get(i).g; + Preference p = _arrayList.get(i).p; + g.removePreference(p); + } + } + + public void validate(Preference p) { + validate(PreferenceManager.getDefaultSharedPreferences(_prefs), p.getKey()); + } + public void validate(SharedPreferences preferences, String key) { + Preference p = findPreference(key); + + if (p instanceof CheckBoxPreference) { + //CheckBoxPreference e = (CheckBoxPreference) p; + if (key.equals(MainMenuOptionsActivity.Graphics_LowQuality)) { + boolean isShort = preferences.getBoolean(MainMenuOptionsActivity.Graphics_LowQuality, false); + CheckBoxPreference fancyPref = (CheckBoxPreference)findPreference(MainMenuOptionsActivity.Graphics_Fancy); + if (fancyPref != null) { + fancyPref.setEnabled(isShort == false); + if (isShort) + fancyPref.setChecked(false); + } + } + if (key.equals(MainMenuOptionsActivity.Graphics_Fancy)) { + CheckBoxPreference fancyPref = (CheckBoxPreference) p; + //System.err.println("Is PowerVR? : " + MainActivity.isPowerVR()); + if (MainActivity.isPowerVR()) { + fancyPref.setSummary("Experimental on this device!"); + } + } + + if (p.getKey().equals(MainMenuOptionsActivity.Controls_UseTouchscreen)) { + boolean hasOtherPrimaryControls = MainActivity.isXperiaPlay(); + if (!hasOtherPrimaryControls) { + PreferenceCategory mCategory = (PreferenceCategory) findPreference("category_graphics"); + _arrayList.add(new Pref(mCategory, p)); + } + p.setEnabled(hasOtherPrimaryControls); + p.setDefaultValue( !hasOtherPrimaryControls ); + + if (hasOtherPrimaryControls) { + CheckBoxPreference pp = (CheckBoxPreference) p; + CheckBoxPreference j = (CheckBoxPreference)findPreference(MainMenuOptionsActivity.Controls_UseTouchJoypad); + j.setEnabled(pp.isChecked()); + } + } + } + } + + private Preference findPreference(String key) { + return _prefs.findPreference(key); + } +} + +abstract class PreferenceTraverser { + void onPreference(Preference p) {} + void onPreferenceGroup(PreferenceGroup p) {} + } + \ No newline at end of file diff --git a/project/android/src/com/mojang/minecraftpe/Minecraft_Market.java b/project/android/src/com/mojang/minecraftpe/Minecraft_Market.java new file mode 100755 index 0000000..cacc2ad --- /dev/null +++ b/project/android/src/com/mojang/minecraftpe/Minecraft_Market.java @@ -0,0 +1,14 @@ +package com.mojang.minecraftpe; + +import android.content.Intent; +import android.net.Uri; +import com.mojang.minecraftpe.MainActivity; + +public class Minecraft_Market extends MainActivity { + @Override + public void buyGame() { + final Uri buyLink = Uri.parse("market://details?id=com.mojang.minecraftpe"); + Intent marketIntent = new Intent( Intent.ACTION_VIEW, buyLink ); + startActivity(marketIntent); + } +} diff --git a/project/android/src/com/mojang/minecraftpe/Minecraft_Market_Demo.java b/project/android/src/com/mojang/minecraftpe/Minecraft_Market_Demo.java new file mode 100755 index 0000000..d5a09ab --- /dev/null +++ b/project/android/src/com/mojang/minecraftpe/Minecraft_Market_Demo.java @@ -0,0 +1,17 @@ +package com.mojang.minecraftpe; + +import android.content.Intent; +import android.net.Uri; +import com.mojang.android.licensing.LicenseCodes; + +public class Minecraft_Market_Demo extends MainActivity { + @Override + public void buyGame() { + final Uri buyLink = Uri.parse("market://details?id=com.mojang.minecraftpe"); + Intent marketIntent = new Intent( Intent.ACTION_VIEW, buyLink ); + startActivity(marketIntent); + } + + @Override + protected boolean isDemo() { return true; } +} diff --git a/project/android/src/com/mojang/minecraftpe/Minecraft_Verizon.java b/project/android/src/com/mojang/minecraftpe/Minecraft_Verizon.java new file mode 100755 index 0000000..e4ea527 --- /dev/null +++ b/project/android/src/com/mojang/minecraftpe/Minecraft_Verizon.java @@ -0,0 +1,89 @@ +package com.mojang.minecraftpe; + +import android.os.Bundle; + +import com.mojang.android.licensing.LicenseCodes; +import com.verizon.vcast.apps.LicenseAuthenticator; + + +public class Minecraft_Verizon extends MainActivity { + + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + _licenseLib = new LicenseAuthenticator(this); + _verizonThread = new VerizonLicenseThread(_licenseLib, VCastMarketKeyword, false); + _verizonThread.start(); + } + + @Override + public int checkLicense() { + if (_verizonThread == null) + return _licenseCode; + + if (!_verizonThread.hasCode) + return -1; + + _licenseCode = _verizonThread.returnCode; + _verizonThread = null; + return _licenseCode; + } + @Override + public boolean hasBuyButtonWhenInvalidLicense() { return false; } + + private LicenseAuthenticator _licenseLib; + private VerizonLicenseThread _verizonThread; + private int _licenseCode; + static private final String VCastMarketKeyword = "Minecraft"; +} + +// +// Requests license code from the Verizon VCAST application on the phone +// +class VerizonLicenseThread extends Thread +{ + public VerizonLicenseThread(LicenseAuthenticator licenseLib, String keyword, boolean isTest) { + _keyword = keyword; + _isTest = isTest; + _licenseLib = licenseLib; + } + + public void run() { + if (_isTest) + validateTestLicense(); + else + validateLicense(); + } + + void validateTestLicense() { + try { + //final int status = LicenseAuthenticator.LICENSE_NOT_FOUND; + final int status = LicenseAuthenticator.LICENSE_OK; + returnCode = _licenseLib.checkTestLicense( _keyword, status ); + } + catch (Throwable e) { + returnCode = LicenseCodes.LICENSE_CHECK_EXCEPTION; + } + hasCode = true; + } + + void validateLicense() { + try { + returnCode = _licenseLib.checkLicense( _keyword ); + } + catch (Throwable e) { + returnCode = LicenseCodes.LICENSE_CHECK_EXCEPTION; + //e.printStackTrace(); + } + hasCode = true; + } + + public volatile boolean hasCode = false; + public volatile int returnCode = -1; + + private String _keyword; + private boolean _isTest; + private LicenseAuthenticator _licenseLib; +} diff --git a/project/android_java/.classpath b/project/android_java/.classpath new file mode 100755 index 0000000..47d3f92 --- /dev/null +++ b/project/android_java/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/project/android_java/.project b/project/android_java/.project new file mode 100755 index 0000000..54b88f3 --- /dev/null +++ b/project/android_java/.project @@ -0,0 +1,40 @@ + + + MinecraftPocketEdition_java + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + + + src_linked + 2 + C:/dev/subversion/mojang/minecraftcpp/trunk/handheld/project/android/src + + + diff --git a/project/android_java/AndroidManifest.xml b/project/android_java/AndroidManifest.xml new file mode 100755 index 0000000..5860076 --- /dev/null +++ b/project/android_java/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/android_java/ManifestAddons.xml b/project/android_java/ManifestAddons.xml new file mode 100755 index 0000000..0a19b0e --- /dev/null +++ b/project/android_java/ManifestAddons.xml @@ -0,0 +1,13 @@ + + + + + + android:debuggable="true" + + + + + + + \ No newline at end of file diff --git a/project/android_java/assets/armor/chain_1.png b/project/android_java/assets/armor/chain_1.png new file mode 100755 index 0000000..3632af5 Binary files /dev/null and b/project/android_java/assets/armor/chain_1.png differ diff --git a/project/android_java/assets/armor/chain_2.png b/project/android_java/assets/armor/chain_2.png new file mode 100755 index 0000000..330425b Binary files /dev/null and b/project/android_java/assets/armor/chain_2.png differ diff --git a/project/android_java/assets/armor/cloth_1.png b/project/android_java/assets/armor/cloth_1.png new file mode 100755 index 0000000..f3cf4aa Binary files /dev/null and b/project/android_java/assets/armor/cloth_1.png differ diff --git a/project/android_java/assets/armor/cloth_2.png b/project/android_java/assets/armor/cloth_2.png new file mode 100755 index 0000000..15fb908 Binary files /dev/null and b/project/android_java/assets/armor/cloth_2.png differ diff --git a/project/android_java/assets/armor/diamond_1.png b/project/android_java/assets/armor/diamond_1.png new file mode 100755 index 0000000..339da65 Binary files /dev/null and b/project/android_java/assets/armor/diamond_1.png differ diff --git a/project/android_java/assets/armor/diamond_2.png b/project/android_java/assets/armor/diamond_2.png new file mode 100755 index 0000000..c220c12 Binary files /dev/null and b/project/android_java/assets/armor/diamond_2.png differ diff --git a/project/android_java/assets/armor/gold_1.png b/project/android_java/assets/armor/gold_1.png new file mode 100755 index 0000000..885f309 Binary files /dev/null and b/project/android_java/assets/armor/gold_1.png differ diff --git a/project/android_java/assets/armor/gold_2.png b/project/android_java/assets/armor/gold_2.png new file mode 100755 index 0000000..9d1ea3b Binary files /dev/null and b/project/android_java/assets/armor/gold_2.png differ diff --git a/project/android_java/assets/armor/iron_1.png b/project/android_java/assets/armor/iron_1.png new file mode 100755 index 0000000..374ab07 Binary files /dev/null and b/project/android_java/assets/armor/iron_1.png differ diff --git a/project/android_java/assets/armor/iron_2.png b/project/android_java/assets/armor/iron_2.png new file mode 100755 index 0000000..53af4f4 Binary files /dev/null and b/project/android_java/assets/armor/iron_2.png differ diff --git a/project/android_java/assets/art/kz.png b/project/android_java/assets/art/kz.png new file mode 100755 index 0000000..a336c94 Binary files /dev/null and b/project/android_java/assets/art/kz.png differ diff --git a/project/android_java/assets/font/default.png b/project/android_java/assets/font/default.png new file mode 100755 index 0000000..780d2d8 Binary files /dev/null and b/project/android_java/assets/font/default.png differ diff --git a/project/android_java/assets/font/default8.png b/project/android_java/assets/font/default8.png new file mode 100755 index 0000000..6179312 Binary files /dev/null and b/project/android_java/assets/font/default8.png differ diff --git a/project/android_java/assets/gui/background.png b/project/android_java/assets/gui/background.png new file mode 100755 index 0000000..b29e009 Binary files /dev/null and b/project/android_java/assets/gui/background.png differ diff --git a/project/android_java/assets/gui/badge/minecon140.png b/project/android_java/assets/gui/badge/minecon140.png new file mode 100755 index 0000000..07c83a3 Binary files /dev/null and b/project/android_java/assets/gui/badge/minecon140.png differ diff --git a/project/android_java/assets/gui/bg32.png b/project/android_java/assets/gui/bg32.png new file mode 100755 index 0000000..d9796c4 Binary files /dev/null and b/project/android_java/assets/gui/bg32.png differ diff --git a/project/android_java/assets/gui/default_world.png b/project/android_java/assets/gui/default_world.png new file mode 100755 index 0000000..17c9cdc Binary files /dev/null and b/project/android_java/assets/gui/default_world.png differ diff --git a/project/android_java/assets/gui/gui.png b/project/android_java/assets/gui/gui.png new file mode 100755 index 0000000..40a708e Binary files /dev/null and b/project/android_java/assets/gui/gui.png differ diff --git a/project/android_java/assets/gui/gui_blocks.png b/project/android_java/assets/gui/gui_blocks.png new file mode 100755 index 0000000..fa4e8cc Binary files /dev/null and b/project/android_java/assets/gui/gui_blocks.png differ diff --git a/project/android_java/assets/gui/icons.png b/project/android_java/assets/gui/icons.png new file mode 100755 index 0000000..8afc25a Binary files /dev/null and b/project/android_java/assets/gui/icons.png differ diff --git a/project/android_java/assets/gui/itemframe.png b/project/android_java/assets/gui/itemframe.png new file mode 100755 index 0000000..8e23979 Binary files /dev/null and b/project/android_java/assets/gui/itemframe.png differ diff --git a/project/android_java/assets/gui/items.png b/project/android_java/assets/gui/items.png new file mode 100755 index 0000000..51a9163 Binary files /dev/null and b/project/android_java/assets/gui/items.png differ diff --git a/project/android_java/assets/gui/spritesheet.png b/project/android_java/assets/gui/spritesheet.png new file mode 100755 index 0000000..f736921 Binary files /dev/null and b/project/android_java/assets/gui/spritesheet.png differ diff --git a/project/android_java/assets/gui/title.png b/project/android_java/assets/gui/title.png new file mode 100755 index 0000000..5f2e4ff Binary files /dev/null and b/project/android_java/assets/gui/title.png differ diff --git a/project/android_java/assets/gui/touchgui.png b/project/android_java/assets/gui/touchgui.png new file mode 100755 index 0000000..56b433f Binary files /dev/null and b/project/android_java/assets/gui/touchgui.png differ diff --git a/project/android_java/assets/item/arrows.png b/project/android_java/assets/item/arrows.png new file mode 100755 index 0000000..75c5828 Binary files /dev/null and b/project/android_java/assets/item/arrows.png differ diff --git a/project/android_java/assets/item/camera.png b/project/android_java/assets/item/camera.png new file mode 100755 index 0000000..9725189 Binary files /dev/null and b/project/android_java/assets/item/camera.png differ diff --git a/project/android_java/assets/item/sign.png b/project/android_java/assets/item/sign.png new file mode 100755 index 0000000..e829472 Binary files /dev/null and b/project/android_java/assets/item/sign.png differ diff --git a/project/android_java/assets/lang/en_US.lang b/project/android_java/assets/lang/en_US.lang new file mode 100755 index 0000000..95ebf79 --- /dev/null +++ b/project/android_java/assets/lang/en_US.lang @@ -0,0 +1,947 @@ + +language.name=English +language.region=US +language.code=en_US + +gui.done=Done +gui.cancel=Cancel +gui.toMenu=Back to title screen +gui.up=Up +gui.down=Down +gui.yes=Yes +gui.no=No + +menu.singleplayer=Singleplayer +menu.multiplayer=Multiplayer +menu.mods=Texture Packs +menu.options=Options... +menu.quit=Quit Game +menu.returnToMenu=Save and Quit to Title +menu.disconnect=Disconnect +menu.returnToGame=Back to Game +menu.switchingLevel=Switching level +menu.generatingLevel=Generating level +menu.loadingLevel=Loading level +menu.generatingTerrain=Building terrain +menu.simulating=Simulating the world for a bit +menu.respawning=Respawning + +selectWorld.title=Select World +selectWorld.empty=empty +selectWorld.world=World +selectWorld.select=Play Selected World +selectWorld.create=Create New World +selectWorld.createDemo=Play New Demo World +selectWorld.delete=Delete +selectWorld.rename=Rename +selectWorld.deleteQuestion=Are you sure you want to delete this world? +selectWorld.deleteWarning=will be lost forever! (A long time!) +selectWorld.deleteButton=Delete +selectWorld.renameButton=Rename +selectWorld.renameTitle=Rename World +selectWorld.conversion=Must be converted! +selectWorld.newWorld=New World +selectWorld.enterName=World Name +selectWorld.resultFolder=Will be saved in: +selectWorld.enterSeed=Seed for the World Generator +selectWorld.seedInfo=Leave blank for a random seed + +gameMode.survival=Survival Mode +gameMode.creative=Creative Mode +gameMode.hardcore=Hardcore Mode! +gameMode.changed=Your game mode has been changed + +selectWorld.gameMode=Game Mode: +selectWorld.gameMode.survival=Survival +selectWorld.gameMode.survival.line1=Search for resources, crafting, gain +selectWorld.gameMode.survival.line2=levels, health and hunger +selectWorld.gameMode.creative=Creative +selectWorld.gameMode.creative.line1=Unlimited resources, free flying and +selectWorld.gameMode.creative.line2=destroy blocks instantly +selectWorld.gameMode.hardcore=Hardcore +selectWorld.gameMode.hardcore.line1=Same as survival mode, locked at hardest +selectWorld.gameMode.hardcore.line2=difficulty, and one life only +selectWorld.moreWorldOptions=More World Options... +selectWorld.mapFeatures=Generate Structures: +selectWorld.mapFeatures.info=Villages, dungeons etc +selectWorld.mapType=World Type: +selectWorld.mapType.normal=Normal +selectWorld.hardcoreMode=Hardcore: +selectWorld.hardcoreMode.info=World is deleted upon death + +generator.default=Default +generator.flat=Superflat + +selectServer.title=Select Server +selectServer.empty=empty +selectServer.select=Join Server +selectServer.direct=Direct Connect +selectServer.edit=Edit +selectServer.delete=Delete +selectServer.add=Add server +selectServer.defaultName=Minecraft Server +selectServer.deleteQuestion=Are you sure you want to remove this server? +selectServer.deleteWarning=will be lost forever! (A long time!) +selectServer.deleteButton=Delete +selectServer.refresh=Refresh +addServer.title=Edit Server Info +addServer.enterName=Server Name +addServer.enterIp=Server Address +addServer.add=Done + +multiplayer.title=Play Multiplayer +multiplayer.connect=Connect +multiplayer.info1=Minecraft Multiplayer is currently not finished, but there +multiplayer.info2=is some buggy early testing going on. +multiplayer.ipinfo=Enter the IP of a server to connect to it: + +multiplayer.downloadingTerrain=Downloading terrain + +multiplayer.stopSleeping=Leave Bed + +demo.day.1=This demo will last five game days, do your best! +demo.day.2=Day Two +demo.day.3=Day Three +demo.day.4=Day Four +demo.day.5=This is your last day! +demo.day.warning=Your time is almost up! +demo.day.6=You have passed your fifth day, use F2 to save a screenshot of your creation +demo.reminder=The demo time has expired, buy the game to continue or start a new world! +demo.help.movement=Use %1$s, %2$s, %3$s, %4$s and the mouse to move around +demo.help.jump=Jump by pressing %1$s +demo.help.inventory=Use %1$s to open your inventory + +connect.connecting=Connecting to the server... +connect.authorizing=Logging in... +connect.failed=Failed to connect to the server + +disconnect.genericReason=%s +disconnect.disconnected=Disconnected by Server +disconnect.lost=Connection Lost +disconnect.kicked=Was kicked from the game +disconnect.timeout=Timed out +disconnect.closed=Connection closed +disconnect.loginFailed=Failed to login +disconnect.loginFailedInfo=Failed to login: %s +disconnect.quitting=Quitting +disconnect.endOfStream=End of stream +disconnect.overflow=Buffer overflow + +options.off=OFF +options.on=ON +options.title=Options +options.controls=Controls... +options.video=Video Settings... +options.language=Language... +options.languageWarning=Language translations may not be 100% accurate +options.videoTitle=Video Settings +options.music=Music +options.sound=Sound +options.invertMouse=Invert Mouse +options.fov=FOV +options.fov.min=Normal +options.fov.max=Quake Pro +options.gamma=Brightness +options.gamma.min=Moody +options.gamma.max=Bright +options.sensitivity=Sensitivity +options.sensitivity.min=*yawn* +options.sensitivity.max=HYPERSPEED!!! +options.renderDistance=Render Distance +options.renderDistance.tiny=Tiny +options.renderDistance.short=Short +options.renderDistance.normal=Normal +options.renderDistance.far=Far +options.viewBobbing=View Bobbing +options.ao=Smooth Lighting +options.anaglyph=3D Anaglyph +options.framerateLimit=Performance +options.difficulty=Difficulty +options.difficulty.peaceful=Peaceful +options.difficulty.easy=Easy +options.difficulty.normal=Normal +options.difficulty.hard=Hard +options.difficulty.hardcore=Hardcore +options.graphics=Graphics +options.graphics.fancy=Fancy +options.graphics.fast=Fast +options.guiScale=GUI Scale +options.guiScale.auto=Auto +options.guiScale.small=Small +options.guiScale.normal=Normal +options.guiScale.large=Large +options.advancedOpengl=Advanced OpenGL +options.renderClouds=Clouds +options.farWarning1=A 64 bit Java installation is recommended +options.farWarning2=for 'Far' render distance (you have 32 bit) +options.particles=Particles +options.particles.all=All +options.particles.decreased=Decreased +options.particles.minimal=Minimal + +performance.max=Max FPS +performance.balanced=Balanced +performance.powersaver=Power saver + +controls.title=Controls + +key.forward=Forward +key.left=Left +key.back=Back +key.right=Right +key.jump=Jump +key.inventory=Inventory +key.drop=Drop +key.chat=Chat +key.fog=Toggle Fog +key.sneak=Sneak +key.playerlist=List Players +key.attack=Attack +key.use=Use Item +key.pickItem=Pick Block +key.mouseButton=Button %1$s + +texturePack.openFolder=Open texture pack folder +texturePack.title=Select Texture Pack +texturePack.folderInfo=(Place texture pack files here) + +tile.stone.name=Stone +tile.grass.name=Grass Block +tile.dirt.name=Dirt +tile.stonebrick.name=Cobblestone +tile.wood.name=Wooden Planks +tile.sapling.name=Sapling +tile.deadbush.name=Dead Bush +tile.bedrock.name=Bedrock +tile.water.name=Water +tile.lava.name=Lava +tile.sand.name=Sand +tile.sandStone.name=Sandstone +tile.gravel.name=Gravel +tile.oreGold.name=Gold Ore +tile.oreIron.name=Iron Ore +tile.oreCoal.name=Coal Ore +tile.log.name=Wood +tile.leaves.name=Leaves +tile.tallgrass.name=Grass +tile.tallgrass.shrub.name=Shrub +tile.tallgrass.grass.name=Grass +tile.tallgrass.fern.name=Fern +tile.sponge.name=Sponge +tile.glass.name=Glass +tile.thinGlass.name=Glass Pane +tile.cloth.name=Wool +tile.flower.name=Flower +tile.rose.name=Rose +tile.mushroom.name=Mushroom +tile.blockGold.name=Block of Gold +tile.blockIron.name=Block of Iron +tile.stoneSlab.stone.name=Stone Slab +tile.stoneSlab.sand.name=Sandstone Slab +tile.stoneSlab.wood.name=Wooden Slab +tile.stoneSlab.cobble.name=Cobblestone Slab +tile.stoneSlab.brick.name=Bricks Slab +tile.stoneSlab.smoothStoneBrick.name=Stone Bricks Slab +tile.brick.name=Bricks +tile.tnt.name=TNT +tile.bookshelf.name=Bookshelf +tile.stoneMoss.name=Moss Stone +tile.obsidian.name=Obsidian +tile.torch.name=Torch +tile.fire.name=Fire +tile.mobSpawner.name=Monster Spawner +tile.stairsWood.name=Wooden Stairs +tile.chest.name=Chest +tile.redstoneDust.name=Redstone Dust +tile.oreDiamond.name=Diamond Ore +tile.blockDiamond.name=Block of Diamond +tile.workbench.name=Crafting Table +tile.crops.name=Crops +tile.farmland.name=Farmland +tile.furnace.name=Furnace +tile.sign.name=Sign +tile.doorWood.name=Wooden Door +tile.ladder.name=Ladder +tile.rail.name=Rail +tile.goldenRail.name=Powered Rail +tile.detectorRail.name=Detector Rail +tile.stairsStone.name=Stone Stairs +tile.lever.name=Lever +tile.pressurePlate.name=Pressure Plate +tile.doorIron.name=Iron Door +tile.oreRedstone.name=Redstone Ore +tile.notGate.name=Redstone Torch +tile.button.name=Button +tile.snow.name=Snow +tile.ice.name=Ice +tile.cactus.name=Cactus +tile.clay.name=Clay +tile.reeds.name=Sugar cane +tile.jukebox.name=Jukebox +tile.fence.name=Fence +tile.fenceGate.name=Fence Gate +tile.pumpkin.name=Pumpkin +tile.litpumpkin.name=Jack 'o' Lantern +tile.hellrock.name=Netherrack +tile.hellsand.name=Soul Sand +tile.lightgem.name=Glowstone +tile.portal.name=Portal +tile.cloth.black.name=Black Wool +tile.cloth.red.name=Red Wool +tile.cloth.green.name=Green Wool +tile.cloth.brown.name=Brown Wool +tile.cloth.blue.name=Blue Wool +tile.cloth.purple.name=Purple Wool +tile.cloth.cyan.name=Cyan Wool +tile.cloth.silver.name=Light Gray Wool +tile.cloth.gray.name=Gray Wool +tile.cloth.pink.name=Pink Wool +tile.cloth.lime.name=Lime Wool +tile.cloth.yellow.name=Yellow Wool +tile.cloth.lightBlue.name=Blue Light Wool +tile.cloth.magenta.name=Magenta Wool +tile.cloth.orange.name=Orange Wool +tile.cloth.white.name=Wool +tile.oreLapis.name=Lapis Lazuli Ore +tile.blockLapis.name=Lapis Lazuli Block +tile.dispenser.name=Dispenser +tile.musicBlock.name=Note Block +tile.cake.name=Cake +tile.bed.name=Bed +tile.bed.occupied=This bed is occupied +tile.bed.noSleep=You can only sleep at night +tile.bed.notSafe=You may not rest now, there are monsters nearby +tile.bed.notValid=Your home bed was missing or obstructed +tile.lockedchest.name=Locked chest +tile.trapdoor.name=Trapdoor +tile.web.name=Cobweb +tile.stonebricksmooth.name=Stone Bricks +tile.pistonBase.name=Piston +tile.pistonStickyBase.name=Sticky Piston +tile.fenceIron.name=Iron Bars +tile.melon.name=Melon +tile.stairsBrick.name=Brick Stairs +tile.stairsStoneBrickSmooth.name=Stone Brick Stairs +tile.vine.name=Vines +tile.netherBrick.name=Nether Brick +tile.netherFence.name=Nether Brick Fence +tile.stairsNetherBrick.name=Nether Brick Stairs +tile.netherStalk.name=Nether Wart +tile.cauldron.name=Cauldron +tile.enchantmentTable.name=Enchantment Table +tile.whiteStone.name=End Stone +tile.mycel.name=Mycelium +tile.waterlily.name=Lily Pad +tile.dragonEgg.name=Dragon Egg +tile.redstoneLight.name=Redstone Lamp +tile.glowingobsidian.name=Glowing Obsidian +tile.netherreactor.name=Nether Reactor Core + +item.shovelIron.name=Iron Shovel +item.pickaxeIron.name=Iron Pickaxe +item.hatchetIron.name=Iron Axe +item.flintAndSteel.name=Flint and Steel +item.apple.name=Apple +item.cookie.name=Cookie +item.bow.name=Bow +item.arrow.name=Arrow +item.coal.name=Coal +item.charcoal.name=Charcoal +item.emerald.name=Diamond +item.ingotIron.name=Iron Ingot +item.ingotGold.name=Gold Ingot +item.swordIron.name=Iron Sword +item.swordWood.name=Wooden Sword +item.shovelWood.name=Wooden Shovel +item.pickaxeWood.name=Wooden Pickaxe +item.hatchetWood.name=Wooden Axe +item.swordStone.name=Stone Sword +item.shovelStone.name=Stone Shovel +item.pickaxeStone.name=Stone Pickaxe +item.hatchetStone.name=Stone Axe +item.swordDiamond.name=Diamond Sword +item.shovelDiamond.name=Diamond Shovel +item.pickaxeDiamond.name=Diamond Pickaxe +item.hatchetDiamond.name=Diamond Axe +item.stick.name=Stick +item.bowl.name=Bowl +item.mushroomStew.name=Mushroom Stew +item.swordGold.name=Golden Sword +item.shovelGold.name=Golden Shovel +item.pickaxeGold.name=Golden Pickaxe +item.hatchetGold.name=Golden Axe +item.string.name=String +item.feather.name=Feather +item.sulphur.name=Gunpowder +item.hoeWood.name=Wooden Hoe +item.hoeStone.name=Stone Hoe +item.hoeIron.name=Iron Hoe +item.hoeDiamond.name=Diamond Hoe +item.hoeGold.name=Golden Hoe +item.seeds.name=Seeds +item.seeds_pumpkin.name=Pumpkin Seeds +item.seeds_melon.name=Melon Seeds +item.melon.name=Melon +item.wheat.name=Wheat +item.bread.name=Bread +item.helmetCloth.name=Leather Cap +item.chestplateCloth.name=Leather Tunic +item.leggingsCloth.name=Leather Pants +item.bootsCloth.name=Leather Boots +item.helmetChain.name=Chain Helmet +item.chestplateChain.name=Chain Chestplate +item.leggingsChain.name=Chain Leggings +item.bootsChain.name=Chain Boots +item.helmetIron.name=Iron Helmet +item.chestplateIron.name=Iron Chestplate +item.leggingsIron.name=Iron Leggings +item.bootsIron.name=Iron Boots +item.helmetDiamond.name=Diamond Helmet +item.chestplateDiamond.name=Diamond Chestplate +item.leggingsDiamond.name=Diamond Leggings +item.bootsDiamond.name=Diamond Boots +item.helmetGold.name=Golden Helmet +item.chestplateGold.name=Golden Chestplate +item.leggingsGold.name=Golden Leggings +item.bootsGold.name=Golden Boots +item.flint.name=Flint +item.porkchopRaw.name=Raw Porkchop +item.porkchopCooked.name=Cooked Porkchop +item.chickenRaw.name=Raw Chicken +item.chickenCooked.name=Cooked Chicken +item.beefRaw.name=Raw Beef +item.beefCooked.name=Steak +item.painting.name=Painting +item.appleGold.name=Golden Apple +item.sign.name=Sign +item.doorWood.name=Wooden Door +item.bucket.name=Bucket +item.bucketWater.name=Water Bucket +item.bucketLava.name=Lava Bucket +item.minecart.name=Minecart +item.saddle.name=Saddle +item.doorIron.name=Iron Door +item.redstone.name=Redstone +item.snowball.name=Snowball +item.boat.name=Boat +item.leather.name=Leather +item.milk.name=Milk +item.brick.name=Brick +item.clay.name=Clay +item.reeds.name=Sugar Canes +item.paper.name=Paper +item.book.name=Book +item.slimeball.name=Slimeball +item.minecartChest.name=Minecart with Chest +item.minecartFurnace.name=Minecart with Furnace +item.egg.name=Egg +item.compass.name=Compass +item.fishingRod.name=Fishing Rod +item.clock.name=Clock +item.yellowDust.name=Glowstone Dust +item.fishRaw.name=Raw Fish +item.fishCooked.name=Cooked Fish +item.record.name=Music Disc +item.bone.name=Bone +item.dyePowder.black.name=Ink Sac +item.dyePowder.red.name=Rose Red +item.dyePowder.green.name=Cactus Green +item.dyePowder.brown.name=Cocoa Beans +item.dyePowder.blue.name=Lapis Lazuli +item.dyePowder.purple.name=Purple Dye +item.dyePowder.cyan.name=Cyan Dye +item.dyePowder.silver.name=Light Gray Dye +item.dyePowder.gray.name=Gray Dye +item.dyePowder.pink.name=Pink Dye +item.dyePowder.lime.name=Lime Dye +item.dyePowder.yellow.name=Dandelion Yellow +item.dyePowder.lightBlue.name=Light Blue Dye +item.dyePowder.magenta.name=Magenta Dye +item.dyePowder.orange.name=Orange Dye +item.dyePowder.white.name=Bone Meal +item.sugar.name=Sugar +item.cake.name=Cake +item.bed.name=Bed +item.diode.name=Redstone Repeater +item.map.name=Map +item.leaves.name=Leaves +item.shears.name=Shears +item.rottenFlesh.name=Rotten Flesh +item.enderPearl.name=Ender Pearl +item.blazeRod.name=Blaze Rod +item.ghastTear.name=Ghast Tear +item.netherStalkSeeds.name=Nether Wart +item.potion.name=Potion +item.emptyPotion.name=Water Bottle +item.goldNugget.name=Gold Nugget +item.glassBottle.name=Glass Bottle +item.spiderEye.name=Spider Eye +item.fermentedSpiderEye.name=Fermented Spider Eye +item.blazePowder.name=Blaze Powder +item.magmaCream.name=Magma Cream +item.cauldron.name=Cauldron +item.brewingStand.name=Brewing Stand +item.eyeOfEnder.name=Eye of Ender +item.speckledMelon.name=Glistering Melon +item.monsterPlacer.name=Spawn +item.expBottle.name=Bottle o' Enchanting +item.fireball.name=Fire Charge + +container.inventory=Inventory +container.crafting=Crafting +container.dispenser=Dispenser +container.furnace=Furnace +container.enchant=Enchant +container.creative=Item Selection +container.brewing=Brewing Stand +container.chest=Chest +container.minecart=Minecart + +entity.Item.name=Item +entity.XPOrb.name=Experience Orb + +entity.Arrow.name=Arrow +entity.Snowball.name=Snowball +entity.Painting.name=Painting + +entity.Mob.name=Mob +entity.Monster.name=Monster + +entity.Creeper.name=Creeper +entity.Skeleton.name=Skeleton +entity.Spider.name=Spider +entity.Giant.name=Giant +entity.Zombie.name=Zombie +entity.Slime.name=Slime +entity.Ghast.name=Ghast +entity.PigZombie.name=Zombie Pigman +entity.Enderman.name=Enderman +entity.Silverfish.name=Silverfish +entity.CaveSpider.name=Cave Spider +entity.Blaze.name=Blaze +entity.LavaSlime.name=Magma Cube +entity.MushroomCow.name=Mooshroom +entity.Villager.name=Villager +entity.VillagerGolem.name=Iron Golem +entity.SnowMan.name=Snow Golem +entity.EnderDragon.name=Ender Dragon + +entity.Pig.name=Pig +entity.Sheep.name=Sheep +entity.Cow.name=Cow +entity.Chicken.name=Chicken +entity.Squid.name=Squid +entity.Wolf.name=Wolf +entity.Ozelot.name=Ocelot +entity.Cat.name=Cat + +entity.PrimedTnt.name=Block of TNT +entity.FallingSand.name=Falling Block + +entity.Minecart.name=Minecart +entity.Boat.name=Boat + +entity.Arrow.name=arrow +entity.generic.name=unknown + +death.inFire=%1$s went up in flames +death.onFire=%1$s burned to death +death.lava=%1$s tried to swim in lava +death.inWall=%1$s suffocated in a wall +death.drown=%1$s drowned +death.starve=%1$s starved to death +death.cactus=%1$s was pricked to death +death.fall=%1$s hit the ground too hard +death.outOfWorld=%1$s fell out of the world +death.generic=%1$s died +death.explosion=%1$s blew up +death.magic=%1$s was killed by magic +death.mob=%1$s was slain by %2$s +death.player=%1$s was slain by %2$s +death.arrow=%1$s was shot by %2$s +death.fireball=%1$s was fireballed by %2$s +death.thrown=%1$s was pummeled by %2$s +death.indirectMagic=%1$s was killed by %2$s + +deathScreen.respawn=Respawn +deathScreen.deleteWorld=Delete world +deathScreen.titleScreen=Title screen +deathScreen.score=Score +deathScreen.title.hardcore=Game over! +deathScreen.hardcoreInfo=You cannot respawn in hardcore mode! +deathScreen.title=You died! + +potion.empty=No Effects +potion.moveSpeed=Speed +potion.moveSlowdown=Slowness +potion.digSpeed=Haste +potion.digSlowDown=Mining Fatigue +potion.damageBoost=Strength +potion.weakness=Weakness +potion.heal=Instant Health +potion.harm=Instant Damage +potion.jump=Jump Boost +potion.confusion=Nausea +potion.regeneration=Regeneration +potion.resistance=Resistance +potion.fireResistance=Fire Resistance +potion.waterBreathing=Water Breathing +potion.invisibility=Invisibility +potion.blindness=Blindness +potion.nightVision=Night Vision +potion.hunger=Hunger +potion.poison=Poison + +potion.moveSpeed.postfix=Potion of Swiftness +potion.moveSlowdown.postfix=Potion of Slowness +potion.digSpeed.postfix=Potion of Haste +potion.digSlowDown.postfix=Potion of Dullness +potion.damageBoost.postfix=Potion of Strength +potion.weakness.postfix=Potion of Weakness +potion.heal.postfix=Potion of Healing +potion.harm.postfix=Potion of Harming +potion.jump.postfix=Potion of Leaping +potion.confusion.postfix=Potion of Nausea +potion.regeneration.postfix=Potion of Regeneration +potion.resistance.postfix=Potion of Resistance +potion.fireResistance.postfix=Potion of Fire Resistance +potion.waterBreathing.postfix=Potion of Water Breathing +potion.invisibility.postfix=Potion of Invisibility +potion.blindness.postfix=Potion of Blindness +potion.nightVision.postfix=Potion of Night Vision +potion.hunger.postfix=Potion of Hunger +potion.poison.postfix=Potion of Poison + +potion.potency.0= +potion.potency.1=II +potion.potency.2=III +potion.potency.3=IV + +potion.prefix.grenade=Splash +potion.prefix.mundane=Mundane +potion.prefix.uninteresting=Uninteresting +potion.prefix.bland=Bland +potion.prefix.clear=Clear +potion.prefix.milky=Milky +potion.prefix.diffuse=Diffuse +potion.prefix.artless=Artless +potion.prefix.thin=Thin +potion.prefix.awkward=Awkward +potion.prefix.flat=Flat +potion.prefix.bulky=Bulky +potion.prefix.bungling=Bungling +potion.prefix.buttered=Buttered +potion.prefix.smooth=Smooth +potion.prefix.suave=Suave +potion.prefix.debonair=Debonair +potion.prefix.thick=Thick +potion.prefix.elegant=Elegant +potion.prefix.fancy=Fancy +potion.prefix.charming=Charming +potion.prefix.dashing=Dashing +potion.prefix.refined=Refined +potion.prefix.cordial=Cordial +potion.prefix.sparkling=Sparkling +potion.prefix.potent=Potent +potion.prefix.foul=Foul +potion.prefix.odorless=Odorless +potion.prefix.rank=Rank +potion.prefix.harsh=Harsh +potion.prefix.acrid=Acrid +potion.prefix.gross=Gross +potion.prefix.stinky=Stinky + +enchantment.damage.all=Sharpness +enchantment.damage.undead=Smite +enchantment.damage.arthropods=Bane of Arthropods +enchantment.knockback=Knockback +enchantment.fire=Fire Aspect +enchantment.protect.all=Protection +enchantment.protect.fire=Fire Protection +enchantment.protect.fall=Feather Falling +enchantment.protect.explosion=Blast Protection +enchantment.protect.projectile=Projectile Protection +enchantment.oxygen=Respiration +enchantment.waterWorker=Aqua Affinity +enchantment.digging=Efficiency +enchantment.untouching=Silk Touch +enchantment.durability=Unbreaking +enchantment.lootBonus=Looting +enchantment.lootBonusDigger=Fortune +enchantment.arrowDamage=Power +enchantment.arrowFire=Flame +enchantment.arrowKnockback=Punch +enchantment.arrowInfinite=Infinity + +enchantment.level.1=I +enchantment.level.2=II +enchantment.level.3=III +enchantment.level.4=IV +enchantment.level.5=V +enchantment.level.6=VI +enchantment.level.7=VII +enchantment.level.8=VIII +enchantment.level.9=IX +enchantment.level.10=X + +gui.achievements=Achievements +gui.stats=Statistics + +stat.generalButton=General +stat.blocksButton=Blocks +stat.itemsButton=Items + +stat.used=Times Used +stat.mined=Times Mined +stat.depleted=Times Depleted +stat.crafted=Times Crafted + +stat.startGame=Times played +stat.createWorld=Worlds played +stat.loadWorld=Saves loaded +stat.joinMultiplayer=Multiplayer joins +stat.leaveGame=Games quit + +stat.playOneMinute=Minutes Played + +stat.walkOneCm=Distance Walked +stat.fallOneCm=Distance Fallen +stat.swimOneCm=Distance Swum +stat.flyOneCm=Distance Flown +stat.climbOneCm=Distance Climbed +stat.diveOneCm=Distance Dove +stat.minecartOneCm=Distance by Minecart +stat.boatOneCm=Distance by Boat +stat.pigOneCm=Distance by Pig +stat.jump=Jumps +stat.drop=Items Dropped + +stat.damageDealt=Damage Dealt +stat.damageTaken=Damage Taken +stat.deaths=Number of Deaths +stat.mobKills=Mob Kills +stat.playerKills=Player Kills +stat.fishCaught=Fish Caught + +stat.mineBlock=%1$s Mined +stat.craftItem=%1$s Crafted +stat.useItem=%1$s Used +stat.breakItem=%1$s Depleted + +achievement.get=Achievement get! + +achievement.taken=Taken! + +achievement.requires=Requires '%1$s' +achievement.openInventory=Taking Inventory +achievement.openInventory.desc=Press '%1$s' to open your inventory. +achievement.mineWood=Getting Wood +achievement.mineWood.desc=Attack a tree until a block of wood pops out +achievement.buildWorkBench=Benchmarking +achievement.buildWorkBench.desc=Craft a workbench with four blocks of planks +achievement.buildPickaxe=Time to Mine! +achievement.buildPickaxe.desc=Use planks and sticks to make a pickaxe +achievement.buildFurnace=Hot Topic +achievement.buildFurnace.desc=Construct a furnace out of eight stone blocks +achievement.acquireIron=Acquire Hardware +achievement.acquireIron.desc=Smelt an iron ingot +achievement.buildHoe=Time to Farm! +achievement.buildHoe.desc=Use planks and sticks to make a hoe +achievement.makeBread=Bake Bread +achievement.makeBread.desc=Turn wheat into bread +achievement.bakeCake=The Lie +achievement.bakeCake.desc=Wheat, sugar, milk and eggs! +achievement.buildBetterPickaxe=Getting an Upgrade +achievement.buildBetterPickaxe.desc=Construct a better pickaxe +achievement.cookFish=Delicious Fish +achievement.cookFish.desc=Catch and cook fish! +achievement.onARail=On A Rail +achievement.onARail.desc=Travel by minecart at least 1 km from where you started +achievement.buildSword=Time to Strike! +achievement.buildSword.desc=Use planks and sticks to make a sword +achievement.killEnemy=Monster Hunter +achievement.killEnemy.desc=Attack and destroy a monster +achievement.killCow=Cow Tipper +achievement.killCow.desc=Harvest some leather +achievement.flyPig=When Pigs Fly +achievement.flyPig.desc=Fly a pig off a cliff +achievement.snipeSkeleton=Sniper Duel +achievement.snipeSkeleton.desc=Kill a skeleton with an arrow from more than 50 meters +achievement.diamonds=DIAMONDS! +achievement.diamonds.desc=Acquire diamonds with your iron tools +achievement.portal=We Need to Go Deeper +achievement.portal.desc=Build a portal to the Nether +achievement.ghast=Return to Sender +achievement.ghast.desc=Destroy a Ghast with a fireball +achievement.blazeRod=Into Fire +achievement.blazeRod.desc=Relieve a Blaze of its rod +achievement.potion=Local Brewery +achievement.potion.desc=Brew a potion +achievement.theEnd=The End? +achievement.theEnd.desc=Locate the End +achievement.theEnd2=The End. +achievement.theEnd2.desc=Defeat the Ender Dragon +achievement.enchantments=Enchanter +achievement.enchantments.desc=Use a book, obsidian and diamonds to construct an enchantment table +achievement.overkill=Overkill +achievement.overkill.desc=Deal eight hearts of damage in a single hit +achievement.bookcase=Librarian +achievement.bookcase.desc=Build some bookshelves to improve your enchantment table + +desc.sword=Deals more damage than by hand. +desc.shovel=Used to dig dirt, grass, sand, gravel and snow faster than by hand. +desc.pickaxe=Required to mine stone-related blocks and ore. +desc.hatchet=Used to chop wood-related blocks faster than by hand. +desc.hoe=Used to till dirt and grass blocks to prepare for crops. +desc.doorwood=Wooden doors are activated by using, hitting them or with Redstone. +desc.dooriron=Iron doors can only be opened by Redstone, buttons or switches. +desc.helmet=Gives the user 1.5 Armor when worn. +desc.chestplate=Gives the user 4 Armor when worn. +desc.leggings=Gives the user 3 Armor when worn. +desc.boots=Gives the user 1.5 Armor when worn. +desc.ingot=A shiny ingot which can be used to craft tools made from this material. +desc.block=Allows ingots, gems, or dyes to be crafted into placeable blocks. Can be used as an expensive building block or compact storage of the ore. +desc.pressureplate=Used to send an electrical charge when stepped on by a player, an animal, or a monster. Wooden Pressure Plates can also be activated by dropping something on them. +desc.stairs=Used for compact staircases. +desc.slab=Used for making long staircases. +desc.halfslab=Used for compact staircases. +desc.torch=Used to create light. Torches also melt snow and ice. +desc.wood=Used as a building material and can be crafted into many things. Can be crafted from any wood. +desc.sandstone=Used as a building material. +desc.sandstone.addon=Is not influenced by gravity like normal Sand. +desc.structblock=Used as a building material. +desc.stick=Used to craft torches, arrows, signs, ladders, fences and as handles for tools and weapons. +desc.bed=Used to skip to dawn, if all players are sleeping. Changes your spawn point to the bed's position. +The colors of the bed are always the same, regardless of the colors of wool used. +desc.craftingtable=Allows you to craft a more varied selection of items than the normal crafting. +desc.furnace=Allows you to smelt ore, create charcoal and glass, and cook fish and porkchops. +desc.chest=Stores blocks and items inside. +desc.fence=Used as a barrier that cannot be jumped over. +desc.ladder=Used to climb vertically. +desc.trapdoor=Activated by using, hitting them or with redstone. They function as normal doors, but are a one by one block and lay flat on the ground. +desc.sign=Shows text entered by you or other players. +desc.glowstone=Used to create brighter light than torches. Melts snow/ice and can be used underwater. +desc.tnt=Used to cause explosions. Activated after placing by hitting, or with an electrical charge. +desc.bowl=Used to hold mushroom stew. You keep the bowl when the stew has been eaten. +desc.bucket=Used to hold and transport water, lava and milk. +desc.flintandsteel=Used to detonate TNT. +desc.fishingrod=Used to catch fish. +desc.clock=Displays positions of the Sun and Moon. +desc.compass=Points to your start point. +desc.map=Will create an image of an area explored while held. This can be used for path-finding. +desc.bow=Allows for ranged attacks by using arrows. +desc.arrow=Used as ammunition for bows. +desc.mushroomstew=Restores 5 hearts. +desc.cookie=Restores 0.5 Hearts. Can be stacked up to 8 times. +desc.cake=Restores 1.5 Hearts. Can be used 6 times. +desc.sugar=Used in the cake recipe. +desc.bread=Restores 2.5 Hearts. +desc.goldenapple=Restores 10 Hearts. +desc.lever=Used to send an electrical charge by being turned on or off. Stays in the on or off state until pressed again. +desc.redstonetorch=Constantly sends an electrical charge, or can be used as a receiver/transmitter when connected to the side of a block. +Can also be used for low-level lighting. +desc.redstonerepeater=Used in Redstone circuits as repeater, a delayer, and/or a diode +desc.button=Used to send an electrical charge by being pressed. Stays activated for approximately a second before shutting off again. +desc.dispenser=Used to hold and shoot out items in a random order when given a Redstone charge. +desc.noteblock=Plays a note when triggered. Hit it to change the pitch of the note. Placing this on top of different blocks will change the type of instrument. +desc.rail=Used to guide minecarts. +desc.poweredrail=When powered, accelerates minecarts that pass over it. When unpowered, causes minecarts to stop on it. +desc.detectorrail=Functions like a Pressure Plate (sends a Redstone signal when powered) but can only be activated by a minecart. +desc.minecart=Used to transport you, an animal, or a monster along rails. +desc.minecartwithchest=Used to transport goods along rails. +desc.minecartwithfurnace=Will move along rails and can push other minecarts when coal is put in it. +desc.boat=Used to travel in water more quickly than swimming. +desc.wool=Collected from sheep, and can be colored with dyes. +desc.woolstring=Used as a building material and can be colored with dyes. Can be easily obtained from Sheep. +desc.dyepowder.black=Used as a dye to create black wool. +desc.dyepowder.green=Used as a dye to create green wool. +desc.dyepowder.brown=Used as a dye to create brown wool. +desc.dyepowder.silver=Used as a dye to create silver wool. +desc.dyepowder.yellow=Used as a dye to create yellow wool. +desc.dyepowder.red=Used as a dye to create red wool. +desc.dyepowder.white=Used to instantly grow crops, trees, tall grass, huge mushrooms and flowers, and can be used in dye recipes. +desc.dyepowder.pink=Used as a dye to create pink wool. +desc.dyepowder.orange=Used as a dye to create orange wool. +desc.dyepowder.lime=Used as a dye to create lime wool. +desc.dyepowder.gray=Used as a dye to create gray wool. +desc.dyepowder.lightgray=Used as a dye to create light gray wool. +(Note: light gray dye can also be made by combining gray dye with bone meal, letting you make four light gray dyes from every ink sac instead of three.) +desc.dyepowder.lightblue=Used as a dye to create light blue wool. +desc.dyepowder.cyan=Used as a dye to create cyan wool. +desc.dyepowder.purple=Used as a dye to create purple wool. +desc.dyepowder.magenta=Used as a dye to create magenta wool. +desc.dyepowder.blue=Used as dye to create Blue Wool. +desc.jukebox=Plays Music Discs. +desc.diamonds=Use these to create very strong tools, weapons or armor +desc.emerald=Use these to create very strong tools, weapons or armor +desc.jackolantern=Used to create brighter light than torches. Melts snow/ice and can be used underwater. +desc.paper=Used to create books and maps. +desc.book=Used to create a bookshelf. +desc.bookshelf=Used as decoration. +desc.picture=Used as decoration. +desc.ore_gold=Can be mined with an iron pickaxe or better, then smelted in a furnace to produce gold ingots. +desc.ore_iron=Can be mined with a stone pickaxe or better, then smelted in a furnace to produce iron ingots. +desc.ore_coal=Can be mined with a pickaxe to collect coal. +desc.ore_lapis=Can be mined with a stone pickaxe or better to collect lapis lazuli. +desc.ore_diamond=Can be mined with an iron pickaxe or better to collect diamonds. +desc.ore_redstone=Can be mined with an iron pickaxe or better to collect redstone dust. +desc.stone=Can be mined with a pickaxe to collect cobblestone. +desc.dirt=Collected using a shovel. Can be used for construction. +desc.sapling=Can be planted and it will eventually grow into a tree. +desc.bedrock=This cannot be broken. +desc.lava=Sets fire to anything that touches it. Can be collected in a bucket. +desc.sand=Collected using a shovel. Can be smelted into glass using the furnace. Is affected by gravity if there is no other tile underneath it. +desc.gravel=Collected using a shovel. Sometimes produces flint when dug up. Is affected by gravity if there is no other tile underneath it. +desc.log=Chopped using an axe, and can be crafted into planks or used as a fuel. +desc.glass=Created in a furnace by smelting sand. Will break if you try to mine it. +desc.thinglass=Will break if you try to mine it. +desc.stone_brick=Mined from stone using a pickaxe. Can be used to construct a furnace or stone tools. +desc.brick=Baked from clay in a furnace. +desc.clay=Can be baked into bricks in a furnace. +desc.snow=A compact way to store snowballs. +desc.top_snow=Can be dug with a shovel to create snowballs. +desc.tall_grass=Sometimes produces seeds when broken. +desc.flower=Can be crafted into a dye. +desc.mushroom=Can be crafted with a bowl to make stew. +desc.obsidian=Can only be mined with a diamond pickaxe. Is produced by the meeting of water and still lava, and is used to build a portal. +desc.mob_spawner=Spawns monsters into the world. +desc.redstone_dust=Is placed on the ground to carry an electrical charge. +desc.crops=When fully grown, crops can be harvested to collect wheat. +desc.farmland=Ground that has been prepared ready to plant seeds. +desc.cactus=Can be crafted to create a dye. +desc.reeds=Can be crafted to create sugar. +desc.pumpkin=Can be worn as a helmet or crafted with a torch to create a Jack-O-Lantern. +desc.hell_rock=Burns forever if set alight. +desc.hell_sand=Slows the movement of anything walking over it. +desc.portal=Standing in the portal allows you to pass between the overworld and the nether. +desc.apple=Restores health, and can be crafted into a golden apple. +desc.coal=Used as a fuel in a furnace, or crafted to make a torch. +desc.string=Collected by killing a spider, and can be crafted into a bow. +desc.feather=Collected by killing a chicken, and can be crafted into an arrow. +desc.sulphur=Collected by killing a creeper, and can be crafted into TNT. +desc.shears=Used to obtain wool from sheep and to harvest placeable Leaf blocks. +desc.seeds=Can be planted in farmland to grow crops. +desc.wheat=Harvested from crops, and can be used to craft food items. +desc.flint=Collected by digging gravel, and can be used to craft a flint and steel. +desc.porkchopraw=Collected by killing a pig, and can be cooked in a furnace. Restores health. +desc.porkchopcooked=Created by cooking a porkchop in a furnace. Restores health. +desc.beefraw=Collected by killing a cow, and can be cooked in a furnace. Restores health. +desc.beefcooked=Created by cooking a beef in a furnace. Restores health. +desc.chickenraw=Collected by killing a chicken, and can be cooked in a furnace. Restores health. +desc.chickencooked=Created by cooking a chicken in a furnace. Restores health. +desc.saddle=When used on a pig it allows you to ride the pig. +desc.snowball=Collected by digging snow, and can be thrown. +desc.leather=Collected by killing a cow, and can be crafted into armor. +desc.slimeball=Collected by killing a slime. +desc.egg=Dropped randomly by chickens, and can be crafted into food items. +desc.yellow_dust=Collected by mining Glowstone, and can be crafted to make Glowstone blocks again. +desc.fish_raw=Can be eaten to restore health, or cooked in a furnace. +desc.fish_cooked=Created by cooking a raw fish in a furnace. Can be eaten to restore health. +desc.bone=Collected by killing a skeleton. Can be crafted into bone meal. +desc.record=Collected by getting a skeleton to kill a creeper. Can be played in a jukebox. +desc.water=Extinguishes fire and helps crops grow. Can be collected in a bucket. +desc.leaves=When broken sometimes drops a sapling which can then be replanted to grow into a tree. +desc.moss_stone=Can be used for construction and decoration. +desc.stonebricksmooth=Used as building material. +desc.netherreactor=Core of the Nether Reactor +desc.glowingobsidian=Obsidion activated by external source. \ No newline at end of file diff --git a/project/android_java/assets/mob/char.png b/project/android_java/assets/mob/char.png new file mode 100755 index 0000000..7cfa08a Binary files /dev/null and b/project/android_java/assets/mob/char.png differ diff --git a/project/android_java/assets/mob/chicken.png b/project/android_java/assets/mob/chicken.png new file mode 100755 index 0000000..d481293 Binary files /dev/null and b/project/android_java/assets/mob/chicken.png differ diff --git a/project/android_java/assets/mob/cow.png b/project/android_java/assets/mob/cow.png new file mode 100755 index 0000000..77bd267 Binary files /dev/null and b/project/android_java/assets/mob/cow.png differ diff --git a/project/android_java/assets/mob/creeper.png b/project/android_java/assets/mob/creeper.png new file mode 100755 index 0000000..e0a5e0a Binary files /dev/null and b/project/android_java/assets/mob/creeper.png differ diff --git a/project/android_java/assets/mob/pig.png b/project/android_java/assets/mob/pig.png new file mode 100755 index 0000000..1ed505b Binary files /dev/null and b/project/android_java/assets/mob/pig.png differ diff --git a/project/android_java/assets/mob/pigzombie.png b/project/android_java/assets/mob/pigzombie.png new file mode 100755 index 0000000..3521845 Binary files /dev/null and b/project/android_java/assets/mob/pigzombie.png differ diff --git a/project/android_java/assets/mob/sheep.png b/project/android_java/assets/mob/sheep.png new file mode 100755 index 0000000..98cfa9a Binary files /dev/null and b/project/android_java/assets/mob/sheep.png differ diff --git a/project/android_java/assets/mob/sheep_fur.png b/project/android_java/assets/mob/sheep_fur.png new file mode 100755 index 0000000..c365286 Binary files /dev/null and b/project/android_java/assets/mob/sheep_fur.png differ diff --git a/project/android_java/assets/mob/skeleton.png b/project/android_java/assets/mob/skeleton.png new file mode 100755 index 0000000..9d22339 Binary files /dev/null and b/project/android_java/assets/mob/skeleton.png differ diff --git a/project/android_java/assets/mob/spider.png b/project/android_java/assets/mob/spider.png new file mode 100755 index 0000000..08344a8 Binary files /dev/null and b/project/android_java/assets/mob/spider.png differ diff --git a/project/android_java/assets/mob/zombie.png b/project/android_java/assets/mob/zombie.png new file mode 100755 index 0000000..4d47ccf Binary files /dev/null and b/project/android_java/assets/mob/zombie.png differ diff --git a/project/android_java/assets/particles.png b/project/android_java/assets/particles.png new file mode 100755 index 0000000..de34f1b Binary files /dev/null and b/project/android_java/assets/particles.png differ diff --git a/project/android_java/assets/terrain.png b/project/android_java/assets/terrain.png new file mode 100755 index 0000000..dd76030 Binary files /dev/null and b/project/android_java/assets/terrain.png differ diff --git a/project/android_java/default.properties b/project/android_java/default.properties new file mode 100755 index 0000000..795e608 --- /dev/null +++ b/project/android_java/default.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-7 +android.library=false +proguard.config=proguard.cfg +android.library.reference.1=../lib_projects/market_licensing/library diff --git a/project/android_java/jni/Android.mk b/project/android_java/jni/Android.mk new file mode 100755 index 0000000..04720a6 --- /dev/null +++ b/project/android_java/jni/Android.mk @@ -0,0 +1,250 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := minecraftpe +LOCAL_SRC_FILES := ../../../src/main.cpp \ + ../../../src/main_android_java.cpp \ + ../../../src/platform/input/Controller.cpp \ + ../../../src/platform/input/Keyboard.cpp \ + ../../../src/platform/input/Mouse.cpp \ + ../../../src/platform/input/Multitouch.cpp \ + ../../../src/platform/time.cpp \ + ../../../src/platform/CThread.cpp \ +../../../src/NinecraftApp.cpp \ +../../../src/Performance.cpp \ +../../../src/SharedConstants.cpp \ +../../../src/client/IConfigListener.cpp \ +../../../src/client/Minecraft.cpp \ +../../../src/client/MouseHandler.cpp \ +../../../src/client/Options.cpp \ +../../../src/client/OptionStrings.cpp \ +../../../src/client/gamemode/GameMode.cpp \ +../../../src/client/gamemode/CreativeMode.cpp \ +../../../src/client/gamemode/SurvivalMode.cpp \ +../../../src/client/gui/components/Button.cpp \ +../../../src/client/gui/components/ImageButton.cpp \ +../../../src/client/gui/components/ItemPane.cpp \ +../../../src/client/gui/components/InventoryPane.cpp \ +../../../src/client/gui/components/LargeImageButton.cpp \ +../../../src/client/gui/components/RolledSelectionListH.cpp \ +../../../src/client/gui/components/RolledSelectionListV.cpp \ +../../../src/client/gui/components/ScrolledSelectionList.cpp \ +../../../src/client/gui/components/ScrollingPane.cpp \ +../../../src/client/gui/components/SmallButton.cpp \ +../../../src/client/gui/Font.cpp \ +../../../src/client/gui/Gui.cpp \ +../../../src/client/gui/GuiComponent.cpp \ +../../../src/client/gui/Screen.cpp \ +../../../src/client/gui/screens/ScreenChooser.cpp \ +../../../src/client/gui/screens/ChatScreen.cpp \ +../../../src/client/gui/screens/ChestScreen.cpp \ +../../../src/client/gui/screens/ConfirmScreen.cpp \ +../../../src/client/gui/screens/DeathScreen.cpp \ +../../../src/client/gui/screens/FurnaceScreen.cpp \ +../../../src/client/gui/screens/InBedScreen.cpp \ +../../../src/client/gui/screens/IngameBlockSelectionScreen.cpp \ +../../../src/client/gui/screens/JoinGameScreen.cpp \ +../../../src/client/gui/screens/OptionsScreen.cpp \ +../../../src/client/gui/screens/PauseScreen.cpp \ +../../../src/client/gui/screens/ProgressScreen.cpp \ +../../../src/client/gui/screens/RenameMPLevelScreen.cpp \ +../../../src/client/gui/screens/SelectWorldScreen.cpp \ +../../../src/client/gui/screens/StartMenuScreen.cpp \ +../../../src/client/gui/screens/TextEditScreen.cpp \ +../../../src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp \ +../../../src/client/gui/screens/touch/TouchJoinGameScreen.cpp \ +../../../src/client/gui/screens/touch/TouchSelectWorldScreen.cpp \ +../../../src/client/gui/screens/touch/TouchStartMenuScreen.cpp \ +../../../src/client/gui/screens/UploadPhotoScreen.cpp \ +../../../src/client/gui/screens/crafting/PaneCraftingScreen.cpp \ +../../../src/client/gui/screens/crafting/WorkbenchScreen.cpp \ +../../../src/client/model/ChickenModel.cpp \ +../../../src/client/model/CowModel.cpp \ +../../../src/client/model/HumanoidModel.cpp \ +../../../src/client/model/PigModel.cpp \ +../../../src/client/model/SheepFurModel.cpp \ +../../../src/client/model/SheepModel.cpp \ +../../../src/client/model/QuadrupedModel.cpp \ +../../../src/client/model/geom/Cube.cpp \ +../../../src/client/model/geom/ModelPart.cpp \ +../../../src/client/model/geom/Polygon.cpp \ +../../../src/client/particle/Particle.cpp \ +../../../src/client/particle/ParticleEngine.cpp \ +../../../src/client/player/LocalPlayer.cpp \ +../../../src/client/player/RemotePlayer.cpp \ +../../../src/client/player/input/KeyboardInput.cpp \ +../../../src/client/player/input/touchscreen/TouchscreenInput.cpp \ +../../../src/client/renderer/Chunk.cpp \ +../../../src/client/renderer/EntityTileRenderer.cpp \ +../../../src/client/renderer/GameRenderer.cpp \ +../../../src/client/renderer/ItemInHandRenderer.cpp \ +../../../src/client/renderer/LevelRenderer.cpp \ +../../../src/client/renderer/RenderChunk.cpp \ +../../../src/client/renderer/RenderList.cpp \ +../../../src/client/renderer/Tesselator.cpp \ +../../../src/client/renderer/Textures.cpp \ +../../../src/client/renderer/TileRenderer.cpp \ +../../../src/client/renderer/gles.cpp \ +../../../src/client/renderer/culling/Frustum.cpp \ +../../../src/client/renderer/entity/ArrowRenderer.cpp \ +../../../src/client/renderer/entity/ChickenRenderer.cpp \ +../../../src/client/renderer/entity/EntityRenderDispatcher.cpp \ +../../../src/client/renderer/entity/EntityRenderer.cpp \ +../../../src/client/renderer/entity/HumanoidMobRenderer.cpp \ +../../../src/client/renderer/entity/ItemRenderer.cpp \ +../../../src/client/renderer/entity/ItemSpriteRenderer.cpp \ +../../../src/client/renderer/entity/MobRenderer.cpp \ +../../../src/client/renderer/entity/PaintingRenderer.cpp \ +../../../src/client/renderer/entity/PlayerRenderer.cpp \ +../../../src/client/renderer/entity/SheepRenderer.cpp \ +../../../src/client/renderer/entity/TntRenderer.cpp \ +../../../src/client/renderer/entity/TripodCameraRenderer.cpp \ +../../../src/client/renderer/ptexture/DynamicTexture.cpp \ +../../../src/client/renderer/tileentity/ChestRenderer.cpp \ +../../../src/client/renderer/tileentity/SignRenderer.cpp \ +../../../src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp \ +../../../src/client/renderer/tileentity/TileEntityRenderer.cpp \ +../../../src/client/sound/Sound.cpp \ +../../../src/client/sound/SoundEngine.cpp \ +../../../src/locale/I18n.cpp \ +../../../src/nbt/Tag.cpp \ +../../../src/network/command/CommandServer.cpp \ +../../../src/network/ClientSideNetworkHandler.cpp \ +../../../src/network/NetEventCallback.cpp \ +../../../src/network/Packet.cpp \ +../../../src/network/RakNetInstance.cpp \ +../../../src/network/ServerSideNetworkHandler.cpp \ +../../../src/server/ServerLevel.cpp \ +../../../src/server/ServerPlayer.cpp \ +../../../src/util/DataIO.cpp \ +../../../src/util/Mth.cpp \ +../../../src/util/StringUtils.cpp \ +../../../src/util/PerfTimer.cpp \ +../../../src/util/PerfRenderer.cpp \ +../../../src/world/Direction.cpp \ +../../../src/world/entity/AgableMob.cpp \ +../../../src/world/entity/Entity.cpp \ +../../../src/world/entity/EntityFactory.cpp \ +../../../src/world/entity/FlyingMob.cpp \ +../../../src/world/entity/HangingEntity.cpp \ +../../../src/world/entity/Mob.cpp \ +../../../src/world/entity/MobCategory.cpp \ +../../../src/world/entity/Motive.cpp \ +../../../src/world/entity/Painting.cpp \ +../../../src/world/entity/PathfinderMob.cpp \ +../../../src/world/entity/SynchedEntityData.cpp \ +../../../src/world/entity/ai/control/MoveControl.cpp \ +../../../src/world/entity/animal/Animal.cpp \ +../../../src/world/entity/animal/Chicken.cpp \ +../../../src/world/entity/animal/Cow.cpp \ +../../../src/world/entity/animal/Pig.cpp \ +../../../src/world/entity/animal/Sheep.cpp \ +../../../src/world/entity/animal/WaterAnimal.cpp \ +../../../src/world/entity/item/FallingTile.cpp \ +../../../src/world/entity/item/ItemEntity.cpp \ +../../../src/world/entity/item/PrimedTnt.cpp \ +../../../src/world/entity/item/TripodCamera.cpp \ +../../../src/world/entity/monster/Creeper.cpp \ +../../../src/world/entity/monster/Monster.cpp \ +../../../src/world/entity/monster/PigZombie.cpp \ +../../../src/world/entity/monster/Skeleton.cpp \ +../../../src/world/entity/monster/Spider.cpp \ +../../../src/world/entity/monster/Zombie.cpp \ +../../../src/world/entity/projectile/Arrow.cpp \ +../../../src/world/entity/projectile/Throwable.cpp \ +../../../src/world/entity/player/Inventory.cpp \ +../../../src/world/entity/player/Player.cpp \ +../../../src/world/food/SimpleFoodData.cpp \ +../../../src/world/inventory/BaseContainerMenu.cpp \ +../../../src/world/inventory/ContainerMenu.cpp \ +../../../src/world/inventory/FillingContainer.cpp \ +../../../src/world/inventory/FurnaceMenu.cpp \ +../../../src/world/item/BedItem.cpp \ +../../../src/world/item/DyePowderItem.cpp \ +../../../src/world/item/Item.cpp \ +../../../src/world/item/ItemInstance.cpp \ +../../../src/world/item/HangingEntityItem.cpp \ +../../../src/world/item/HatchetItem.cpp \ +../../../src/world/item/HoeItem.cpp \ +../../../src/world/item/PickaxeItem.cpp \ +../../../src/world/item/ShovelItem.cpp \ +../../../src/world/item/crafting/Recipe.cpp \ +../../../src/world/item/crafting/Recipes.cpp \ +../../../src/world/item/crafting/FurnaceRecipes.cpp \ +../../../src/world/item/crafting/OreRecipes.cpp \ +../../../src/world/item/crafting/StructureRecipes.cpp \ +../../../src/world/item/crafting/ToolRecipes.cpp \ +../../../src/world/item/crafting/WeaponRecipes.cpp \ +../../../src/world/level/Explosion.cpp \ +../../../src/world/level/Level.cpp \ +../../../src/world/level/LightLayer.cpp \ +../../../src/world/level/LightUpdate.cpp \ +../../../src/world/level/MobSpawner.cpp \ +../../../src/world/level/Region.cpp \ +../../../src/world/level/TickNextTickData.cpp \ +../../../src/world/level/biome/Biome.cpp \ +../../../src/world/level/biome/BiomeSource.cpp \ +../../../src/world/level/chunk/LevelChunk.cpp \ +../../../src/world/level/dimension/Dimension.cpp \ +../../../src/world/level/levelgen/CanyonFeature.cpp \ +../../../src/world/level/levelgen/DungeonFeature.cpp \ +../../../src/world/level/levelgen/LargeCaveFeature.cpp \ +../../../src/world/level/levelgen/LargeFeature.cpp \ +../../../src/world/level/levelgen/RandomLevelSource.cpp \ +../../../src/world/level/levelgen/feature/Feature.cpp \ +../../../src/world/level/levelgen/synth/ImprovedNoise.cpp \ +../../../src/world/level/levelgen/synth/PerlinNoise.cpp \ +../../../src/world/level/levelgen/synth/Synth.cpp \ +../../../src/world/level/material/Material.cpp \ +../../../src/world/level/pathfinder/Path.cpp \ +../../../src/world/level/storage/ExternalFileLevelStorage.cpp \ +../../../src/world/level/storage/ExternalFileLevelStorageSource.cpp \ +../../../src/world/level/storage/FolderMethods.cpp \ +../../../src/world/level/storage/LevelData.cpp \ +../../../src/world/level/storage/LevelStorageSource.cpp \ +../../../src/world/level/storage/RegionFile.cpp \ +../../../src/world/level/tile/BedTile.cpp \ +../../../src/world/level/tile/ChestTile.cpp \ +../../../src/world/level/tile/CropTile.cpp \ +../../../src/world/level/tile/DoorTile.cpp \ +../../../src/world/level/tile/EntityTile.cpp \ +../../../src/world/level/tile/FurnaceTile.cpp \ +../../../src/world/level/tile/GrassTile.cpp \ +../../../src/world/level/tile/LightGemTile.cpp \ +../../../src/world/level/tile/MelonTile.cpp \ +../../../src/world/level/tile/Mushroom.cpp \ +../../../src/world/level/tile/NetherReactor.cpp \ +../../../src/world/level/tile/NetherReactorPattern.cpp \ +../../../src/world/level/tile/SandTile.cpp \ +../../../src/world/level/tile/StemTile.cpp \ +../../../src/world/level/tile/StoneSlabTile.cpp \ +../../../src/world/level/tile/TallGrass.cpp \ +../../../src/world/level/tile/Tile.cpp \ +../../../src/world/level/tile/TrapDoorTile.cpp \ +../../../src/world/level/tile/entity/ChestTileEntity.cpp \ +../../../src/world/level/tile/entity/NetherReactorTileEntity.cpp \ +../../../src/world/level/tile/entity/SignTileEntity.cpp \ +../../../src/world/level/tile/entity/TileEntity.cpp \ +../../../src/world/level/tile/entity/FurnaceTileEntity.cpp \ +../../../src/world/phys/HitResult.cpp + +LOCAL_CFLAGS := -Wno-psabi $(LOCAL_CFLAGS) + +LOCAL_CFLAGS := -DPRE_ANDROID23 -DANDROID_PUBLISH $(LOCAL_CFLAGS) +#LOCAL_CFLAGS := -DPRE_ANDROID23 -DANDROID_PUBLISH -DDEMO_MODE $(LOCAL_CFLAGS) + +#LOCAL_CFLAGS := -DPRE_ANDROID23 -DDEMO_MODE $(LOCAL_CFLAGS) +#LOCAL_CFLAGS := -DPRE_ANDROID23 $(LOCAL_CFLAGS) + +LOCAL_LDLIBS := -llog -lEGL -lGLESv1_CM + +LOCAL_STATIC_LIBRARIES := RakNet + +TARGET_ARCH_ABI := armeabi-v7a + +include $(BUILD_SHARED_LIBRARY) + +# NOTE: environment var NDK_MODULE_PATH needs to point to lib_projects folder +$(call import-module, raknet/jni) + diff --git a/project/android_java/jni/Application.mk b/project/android_java/jni/Application.mk new file mode 100755 index 0000000..6c92946 --- /dev/null +++ b/project/android_java/jni/Application.mk @@ -0,0 +1,4 @@ +APP_PLATFORM := android-9 +APP_STL := gnustl_static +APP_OPTIM := release +APP_ABI := armeabi-v7a \ No newline at end of file diff --git a/project/android_java/proguard.cfg b/project/android_java/proguard.cfg new file mode 100755 index 0000000..6a15b3c --- /dev/null +++ b/project/android_java/proguard.cfg @@ -0,0 +1,66 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontpreverify +-verbose +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keep public class com.mojang.minecraftpe.GameModeButton +-keep public class com.mojang.android.StringValue +-keep public class * extends android.app.Activity +-keep public class * extends com.mojang.minecraftpe.MainActivity +-keep public class * extends MainActivity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class com.android.vending.licensing.ILicensingService +-keep,allowobfuscation class com.mojang.** { *** *(...); } + +-keepclasseswithmembernames class * { + native ; +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keepclassmembers class * extends android.app.Activity { + static public void saveScreenshot(java.lang.String, int, int, int[]); + public int[] getImageData(java.lang.String); + public byte[] getFileDataBytes(java.lang.String); + public java.lang.String getPlatformStringVar(int); + public int getScreenWidth(); + public int getScreenHeight(); + public float getPixelsPerMillimeter(); + public int checkLicense(); + public boolean isNetworkEnabled(boolean); + public java.lang.String getDateString(int); + public boolean hasBuyButtonWhenInvalidLicense(); + public void postScreenshotToFacebook(java.lang.String, int, int, int[]); + public void quit(); + public void displayDialog(int); + public void tick(); + public java.lang.String[] getOptionStrings(); + public void buyGame(); + public void playSound(java.lang.String, float, float); + public boolean isTouchscreen(); + public void setIsPowerVR(boolean); + public void initiateUserInput(int); + public int getUserInputStatus(); + public java.lang.String[] getUserInputString(); + public void vibrate(int); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} diff --git a/project/android_java/res/drawable-hdpi/icon.png b/project/android_java/res/drawable-hdpi/icon.png new file mode 100755 index 0000000..d738bc6 Binary files /dev/null and b/project/android_java/res/drawable-hdpi/icon.png differ diff --git a/project/android_java/res/drawable-hdpi/icon_demo.png b/project/android_java/res/drawable-hdpi/icon_demo.png new file mode 100755 index 0000000..283aada Binary files /dev/null and b/project/android_java/res/drawable-hdpi/icon_demo.png differ diff --git a/project/android_java/res/drawable-ldpi/icon.png b/project/android_java/res/drawable-ldpi/icon.png new file mode 100755 index 0000000..4dc54a0 Binary files /dev/null and b/project/android_java/res/drawable-ldpi/icon.png differ diff --git a/project/android_java/res/drawable-ldpi/icon_demo.png b/project/android_java/res/drawable-ldpi/icon_demo.png new file mode 100755 index 0000000..5c0c553 Binary files /dev/null and b/project/android_java/res/drawable-ldpi/icon_demo.png differ diff --git a/project/android_java/res/drawable-mdpi/icon.png b/project/android_java/res/drawable-mdpi/icon.png new file mode 100755 index 0000000..01fb460 Binary files /dev/null and b/project/android_java/res/drawable-mdpi/icon.png differ diff --git a/project/android_java/res/drawable-mdpi/icon_demo.png b/project/android_java/res/drawable-mdpi/icon_demo.png new file mode 100755 index 0000000..edfde23 Binary files /dev/null and b/project/android_java/res/drawable-mdpi/icon_demo.png differ diff --git a/project/android_java/res/drawable/bg32.png b/project/android_java/res/drawable/bg32.png new file mode 100755 index 0000000..d9796c4 Binary files /dev/null and b/project/android_java/res/drawable/bg32.png differ diff --git a/project/android_java/res/drawable/bgtiled.xml b/project/android_java/res/drawable/bgtiled.xml new file mode 100755 index 0000000..006dcf2 --- /dev/null +++ b/project/android_java/res/drawable/bgtiled.xml @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/project/android_java/res/drawable/btn_nw_cancel.xml b/project/android_java/res/drawable/btn_nw_cancel.xml new file mode 100755 index 0000000..a297fcd --- /dev/null +++ b/project/android_java/res/drawable/btn_nw_cancel.xml @@ -0,0 +1,5 @@ + + + + diff --git a/project/android_java/res/drawable/btn_nw_create.xml b/project/android_java/res/drawable/btn_nw_create.xml new file mode 100755 index 0000000..c9e68f0 --- /dev/null +++ b/project/android_java/res/drawable/btn_nw_create.xml @@ -0,0 +1,5 @@ + + + + diff --git a/project/android_java/res/drawable/btngamemode.xml b/project/android_java/res/drawable/btngamemode.xml new file mode 100755 index 0000000..4a6e21c --- /dev/null +++ b/project/android_java/res/drawable/btngamemode.xml @@ -0,0 +1,5 @@ + + + + diff --git a/project/android_java/res/drawable/cancel_0_1.png b/project/android_java/res/drawable/cancel_0_1.png new file mode 100755 index 0000000..c43434a Binary files /dev/null and b/project/android_java/res/drawable/cancel_0_1.png differ diff --git a/project/android_java/res/drawable/cancel_0_3.png b/project/android_java/res/drawable/cancel_0_3.png new file mode 100755 index 0000000..887322d Binary files /dev/null and b/project/android_java/res/drawable/cancel_0_3.png differ diff --git a/project/android_java/res/drawable/cancel_1_1.png b/project/android_java/res/drawable/cancel_1_1.png new file mode 100755 index 0000000..abaa241 Binary files /dev/null and b/project/android_java/res/drawable/cancel_1_1.png differ diff --git a/project/android_java/res/drawable/cancel_1_3.png b/project/android_java/res/drawable/cancel_1_3.png new file mode 100755 index 0000000..8519c68 Binary files /dev/null and b/project/android_java/res/drawable/cancel_1_3.png differ diff --git a/project/android_java/res/drawable/create_0_1.png b/project/android_java/res/drawable/create_0_1.png new file mode 100755 index 0000000..4ebc3b2 Binary files /dev/null and b/project/android_java/res/drawable/create_0_1.png differ diff --git a/project/android_java/res/drawable/create_0_3.png b/project/android_java/res/drawable/create_0_3.png new file mode 100755 index 0000000..a771a56 Binary files /dev/null and b/project/android_java/res/drawable/create_0_3.png differ diff --git a/project/android_java/res/drawable/create_1_1.png b/project/android_java/res/drawable/create_1_1.png new file mode 100755 index 0000000..5db6202 Binary files /dev/null and b/project/android_java/res/drawable/create_1_1.png differ diff --git a/project/android_java/res/drawable/create_1_3.png b/project/android_java/res/drawable/create_1_3.png new file mode 100755 index 0000000..e1ea00e Binary files /dev/null and b/project/android_java/res/drawable/create_1_3.png differ diff --git a/project/android_java/res/drawable/creative_3.png b/project/android_java/res/drawable/creative_3.png new file mode 100755 index 0000000..80940ba Binary files /dev/null and b/project/android_java/res/drawable/creative_3.png differ diff --git a/project/android_java/res/drawable/iconx.png b/project/android_java/res/drawable/iconx.png new file mode 100755 index 0000000..38dcfcb Binary files /dev/null and b/project/android_java/res/drawable/iconx.png differ diff --git a/project/android_java/res/drawable/survival_3.png b/project/android_java/res/drawable/survival_3.png new file mode 100755 index 0000000..cc8d738 Binary files /dev/null and b/project/android_java/res/drawable/survival_3.png differ diff --git a/project/android_java/res/drawable/worldname.png b/project/android_java/res/drawable/worldname.png new file mode 100755 index 0000000..b8f42a2 Binary files /dev/null and b/project/android_java/res/drawable/worldname.png differ diff --git a/project/android_java/res/drawable/worldname_3.png b/project/android_java/res/drawable/worldname_3.png new file mode 100755 index 0000000..adccd67 Binary files /dev/null and b/project/android_java/res/drawable/worldname_3.png differ diff --git a/project/android_java/res/layout/create_new_world.xml b/project/android_java/res/layout/create_new_world.xml new file mode 100755 index 0000000..e2ab23e --- /dev/null +++ b/project/android_java/res/layout/create_new_world.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/android_java/res/layout/main.xml b/project/android_java/res/layout/main.xml new file mode 100755 index 0000000..94203a9 --- /dev/null +++ b/project/android_java/res/layout/main.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/project/android_java/res/layout/mainmenu_options.xml b/project/android_java/res/layout/mainmenu_options.xml new file mode 100755 index 0000000..13cfdf4 --- /dev/null +++ b/project/android_java/res/layout/mainmenu_options.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/project/android_java/res/layout/rename_mp_world.xml b/project/android_java/res/layout/rename_mp_world.xml new file mode 100755 index 0000000..2c7376e --- /dev/null +++ b/project/android_java/res/layout/rename_mp_world.xml @@ -0,0 +1,28 @@ + + + + + + diff --git a/project/android_java/res/raw/bow.ogg b/project/android_java/res/raw/bow.ogg new file mode 100755 index 0000000..fe684cf Binary files /dev/null and b/project/android_java/res/raw/bow.ogg differ diff --git a/project/android_java/res/raw/bowhit1.ogg b/project/android_java/res/raw/bowhit1.ogg new file mode 100755 index 0000000..77be5c5 Binary files /dev/null and b/project/android_java/res/raw/bowhit1.ogg differ diff --git a/project/android_java/res/raw/bowhit2.ogg b/project/android_java/res/raw/bowhit2.ogg new file mode 100755 index 0000000..d3d4a5a Binary files /dev/null and b/project/android_java/res/raw/bowhit2.ogg differ diff --git a/project/android_java/res/raw/bowhit3.ogg b/project/android_java/res/raw/bowhit3.ogg new file mode 100755 index 0000000..db9d7f7 Binary files /dev/null and b/project/android_java/res/raw/bowhit3.ogg differ diff --git a/project/android_java/res/raw/bowhit4.ogg b/project/android_java/res/raw/bowhit4.ogg new file mode 100755 index 0000000..771364c Binary files /dev/null and b/project/android_java/res/raw/bowhit4.ogg differ diff --git a/project/android_java/res/raw/chicken2.ogg b/project/android_java/res/raw/chicken2.ogg new file mode 100755 index 0000000..b181d8f Binary files /dev/null and b/project/android_java/res/raw/chicken2.ogg differ diff --git a/project/android_java/res/raw/chicken3.ogg b/project/android_java/res/raw/chicken3.ogg new file mode 100755 index 0000000..e217510 Binary files /dev/null and b/project/android_java/res/raw/chicken3.ogg differ diff --git a/project/android_java/res/raw/chickenhurt1.ogg b/project/android_java/res/raw/chickenhurt1.ogg new file mode 100755 index 0000000..a56a08d Binary files /dev/null and b/project/android_java/res/raw/chickenhurt1.ogg differ diff --git a/project/android_java/res/raw/chickenhurt2.ogg b/project/android_java/res/raw/chickenhurt2.ogg new file mode 100755 index 0000000..06e65d2 Binary files /dev/null and b/project/android_java/res/raw/chickenhurt2.ogg differ diff --git a/project/android_java/res/raw/click.ogg b/project/android_java/res/raw/click.ogg new file mode 100755 index 0000000..b4889da Binary files /dev/null and b/project/android_java/res/raw/click.ogg differ diff --git a/project/android_java/res/raw/cloth1.ogg b/project/android_java/res/raw/cloth1.ogg new file mode 100755 index 0000000..804aa88 Binary files /dev/null and b/project/android_java/res/raw/cloth1.ogg differ diff --git a/project/android_java/res/raw/cloth2.ogg b/project/android_java/res/raw/cloth2.ogg new file mode 100755 index 0000000..81d8a18 Binary files /dev/null and b/project/android_java/res/raw/cloth2.ogg differ diff --git a/project/android_java/res/raw/cloth3.ogg b/project/android_java/res/raw/cloth3.ogg new file mode 100755 index 0000000..c18cef0 Binary files /dev/null and b/project/android_java/res/raw/cloth3.ogg differ diff --git a/project/android_java/res/raw/cloth4.ogg b/project/android_java/res/raw/cloth4.ogg new file mode 100755 index 0000000..57e51b6 Binary files /dev/null and b/project/android_java/res/raw/cloth4.ogg differ diff --git a/project/android_java/res/raw/cow1.ogg b/project/android_java/res/raw/cow1.ogg new file mode 100755 index 0000000..5208de7 Binary files /dev/null and b/project/android_java/res/raw/cow1.ogg differ diff --git a/project/android_java/res/raw/cow2.ogg b/project/android_java/res/raw/cow2.ogg new file mode 100755 index 0000000..a252e75 Binary files /dev/null and b/project/android_java/res/raw/cow2.ogg differ diff --git a/project/android_java/res/raw/cow3.ogg b/project/android_java/res/raw/cow3.ogg new file mode 100755 index 0000000..7345ab2 Binary files /dev/null and b/project/android_java/res/raw/cow3.ogg differ diff --git a/project/android_java/res/raw/cow4.ogg b/project/android_java/res/raw/cow4.ogg new file mode 100755 index 0000000..80d5063 Binary files /dev/null and b/project/android_java/res/raw/cow4.ogg differ diff --git a/project/android_java/res/raw/cowhurt1.ogg b/project/android_java/res/raw/cowhurt1.ogg new file mode 100755 index 0000000..c579de2 Binary files /dev/null and b/project/android_java/res/raw/cowhurt1.ogg differ diff --git a/project/android_java/res/raw/cowhurt2.ogg b/project/android_java/res/raw/cowhurt2.ogg new file mode 100755 index 0000000..5e487a8 Binary files /dev/null and b/project/android_java/res/raw/cowhurt2.ogg differ diff --git a/project/android_java/res/raw/cowhurt3.ogg b/project/android_java/res/raw/cowhurt3.ogg new file mode 100755 index 0000000..8341bfa Binary files /dev/null and b/project/android_java/res/raw/cowhurt3.ogg differ diff --git a/project/android_java/res/raw/creeper1.ogg b/project/android_java/res/raw/creeper1.ogg new file mode 100755 index 0000000..d7c56ec Binary files /dev/null and b/project/android_java/res/raw/creeper1.ogg differ diff --git a/project/android_java/res/raw/creeper2.ogg b/project/android_java/res/raw/creeper2.ogg new file mode 100755 index 0000000..dd36749 Binary files /dev/null and b/project/android_java/res/raw/creeper2.ogg differ diff --git a/project/android_java/res/raw/creeper3.ogg b/project/android_java/res/raw/creeper3.ogg new file mode 100755 index 0000000..55d60cf Binary files /dev/null and b/project/android_java/res/raw/creeper3.ogg differ diff --git a/project/android_java/res/raw/creeper4.ogg b/project/android_java/res/raw/creeper4.ogg new file mode 100755 index 0000000..479aee9 Binary files /dev/null and b/project/android_java/res/raw/creeper4.ogg differ diff --git a/project/android_java/res/raw/creeperdeath.ogg b/project/android_java/res/raw/creeperdeath.ogg new file mode 100755 index 0000000..93efa45 Binary files /dev/null and b/project/android_java/res/raw/creeperdeath.ogg differ diff --git a/project/android_java/res/raw/door_close.ogg b/project/android_java/res/raw/door_close.ogg new file mode 100755 index 0000000..793a5e2 Binary files /dev/null and b/project/android_java/res/raw/door_close.ogg differ diff --git a/project/android_java/res/raw/door_open.ogg b/project/android_java/res/raw/door_open.ogg new file mode 100755 index 0000000..fb27d72 Binary files /dev/null and b/project/android_java/res/raw/door_open.ogg differ diff --git a/project/android_java/res/raw/eat1.ogg b/project/android_java/res/raw/eat1.ogg new file mode 100755 index 0000000..83e70cb Binary files /dev/null and b/project/android_java/res/raw/eat1.ogg differ diff --git a/project/android_java/res/raw/eat2.ogg b/project/android_java/res/raw/eat2.ogg new file mode 100755 index 0000000..e76b0fb Binary files /dev/null and b/project/android_java/res/raw/eat2.ogg differ diff --git a/project/android_java/res/raw/eat3.ogg b/project/android_java/res/raw/eat3.ogg new file mode 100755 index 0000000..f89be37 Binary files /dev/null and b/project/android_java/res/raw/eat3.ogg differ diff --git a/project/android_java/res/raw/explode.ogg b/project/android_java/res/raw/explode.ogg new file mode 100755 index 0000000..a414ea0 Binary files /dev/null and b/project/android_java/res/raw/explode.ogg differ diff --git a/project/android_java/res/raw/fallbig1.ogg b/project/android_java/res/raw/fallbig1.ogg new file mode 100755 index 0000000..018c521 Binary files /dev/null and b/project/android_java/res/raw/fallbig1.ogg differ diff --git a/project/android_java/res/raw/fallbig2.ogg b/project/android_java/res/raw/fallbig2.ogg new file mode 100755 index 0000000..51860ca Binary files /dev/null and b/project/android_java/res/raw/fallbig2.ogg differ diff --git a/project/android_java/res/raw/fallsmall.ogg b/project/android_java/res/raw/fallsmall.ogg new file mode 100755 index 0000000..363e6f3 Binary files /dev/null and b/project/android_java/res/raw/fallsmall.ogg differ diff --git a/project/android_java/res/raw/fuse.ogg b/project/android_java/res/raw/fuse.ogg new file mode 100755 index 0000000..734d9df Binary files /dev/null and b/project/android_java/res/raw/fuse.ogg differ diff --git a/project/android_java/res/raw/glass1.ogg b/project/android_java/res/raw/glass1.ogg new file mode 100755 index 0000000..a8dab85 Binary files /dev/null and b/project/android_java/res/raw/glass1.ogg differ diff --git a/project/android_java/res/raw/glass2.ogg b/project/android_java/res/raw/glass2.ogg new file mode 100755 index 0000000..3bd462d Binary files /dev/null and b/project/android_java/res/raw/glass2.ogg differ diff --git a/project/android_java/res/raw/glass3.ogg b/project/android_java/res/raw/glass3.ogg new file mode 100755 index 0000000..2577f40 Binary files /dev/null and b/project/android_java/res/raw/glass3.ogg differ diff --git a/project/android_java/res/raw/grass1.ogg b/project/android_java/res/raw/grass1.ogg new file mode 100755 index 0000000..12f5751 Binary files /dev/null and b/project/android_java/res/raw/grass1.ogg differ diff --git a/project/android_java/res/raw/grass2.ogg b/project/android_java/res/raw/grass2.ogg new file mode 100755 index 0000000..05dff55 Binary files /dev/null and b/project/android_java/res/raw/grass2.ogg differ diff --git a/project/android_java/res/raw/grass3.ogg b/project/android_java/res/raw/grass3.ogg new file mode 100755 index 0000000..e792b34 Binary files /dev/null and b/project/android_java/res/raw/grass3.ogg differ diff --git a/project/android_java/res/raw/grass4.ogg b/project/android_java/res/raw/grass4.ogg new file mode 100755 index 0000000..8421e6a Binary files /dev/null and b/project/android_java/res/raw/grass4.ogg differ diff --git a/project/android_java/res/raw/gravel2.ogg b/project/android_java/res/raw/gravel2.ogg new file mode 100755 index 0000000..76f6a2d Binary files /dev/null and b/project/android_java/res/raw/gravel2.ogg differ diff --git a/project/android_java/res/raw/gravel3.ogg b/project/android_java/res/raw/gravel3.ogg new file mode 100755 index 0000000..1ba9f3e Binary files /dev/null and b/project/android_java/res/raw/gravel3.ogg differ diff --git a/project/android_java/res/raw/gravel4.ogg b/project/android_java/res/raw/gravel4.ogg new file mode 100755 index 0000000..152c6cb Binary files /dev/null and b/project/android_java/res/raw/gravel4.ogg differ diff --git a/project/android_java/res/raw/hurt.ogg b/project/android_java/res/raw/hurt.ogg new file mode 100755 index 0000000..b4cbc12 Binary files /dev/null and b/project/android_java/res/raw/hurt.ogg differ diff --git a/project/android_java/res/raw/ladder1.ogg b/project/android_java/res/raw/ladder1.ogg new file mode 100755 index 0000000..410c0e0 Binary files /dev/null and b/project/android_java/res/raw/ladder1.ogg differ diff --git a/project/android_java/res/raw/ladder2.ogg b/project/android_java/res/raw/ladder2.ogg new file mode 100755 index 0000000..4942982 Binary files /dev/null and b/project/android_java/res/raw/ladder2.ogg differ diff --git a/project/android_java/res/raw/ladder3.ogg b/project/android_java/res/raw/ladder3.ogg new file mode 100755 index 0000000..311d54a Binary files /dev/null and b/project/android_java/res/raw/ladder3.ogg differ diff --git a/project/android_java/res/raw/ladder4.ogg b/project/android_java/res/raw/ladder4.ogg new file mode 100755 index 0000000..f36ad46 Binary files /dev/null and b/project/android_java/res/raw/ladder4.ogg differ diff --git a/project/android_java/res/raw/pig1.ogg b/project/android_java/res/raw/pig1.ogg new file mode 100755 index 0000000..8516b37 Binary files /dev/null and b/project/android_java/res/raw/pig1.ogg differ diff --git a/project/android_java/res/raw/pig2.ogg b/project/android_java/res/raw/pig2.ogg new file mode 100755 index 0000000..bf67406 Binary files /dev/null and b/project/android_java/res/raw/pig2.ogg differ diff --git a/project/android_java/res/raw/pig3.ogg b/project/android_java/res/raw/pig3.ogg new file mode 100755 index 0000000..3f45533 Binary files /dev/null and b/project/android_java/res/raw/pig3.ogg differ diff --git a/project/android_java/res/raw/pigdeath.ogg b/project/android_java/res/raw/pigdeath.ogg new file mode 100755 index 0000000..959e98b Binary files /dev/null and b/project/android_java/res/raw/pigdeath.ogg differ diff --git a/project/android_java/res/raw/pop.ogg b/project/android_java/res/raw/pop.ogg new file mode 100755 index 0000000..2890baf Binary files /dev/null and b/project/android_java/res/raw/pop.ogg differ diff --git a/project/android_java/res/raw/pop2.ogg b/project/android_java/res/raw/pop2.ogg new file mode 100755 index 0000000..7549b42 Binary files /dev/null and b/project/android_java/res/raw/pop2.ogg differ diff --git a/project/android_java/res/raw/sand1.ogg b/project/android_java/res/raw/sand1.ogg new file mode 100755 index 0000000..4307487 Binary files /dev/null and b/project/android_java/res/raw/sand1.ogg differ diff --git a/project/android_java/res/raw/sand2.ogg b/project/android_java/res/raw/sand2.ogg new file mode 100755 index 0000000..92d7e20 Binary files /dev/null and b/project/android_java/res/raw/sand2.ogg differ diff --git a/project/android_java/res/raw/sand3.ogg b/project/android_java/res/raw/sand3.ogg new file mode 100755 index 0000000..f4b0d19 Binary files /dev/null and b/project/android_java/res/raw/sand3.ogg differ diff --git a/project/android_java/res/raw/sand4.ogg b/project/android_java/res/raw/sand4.ogg new file mode 100755 index 0000000..512e5a1 Binary files /dev/null and b/project/android_java/res/raw/sand4.ogg differ diff --git a/project/android_java/res/raw/sheep1.ogg b/project/android_java/res/raw/sheep1.ogg new file mode 100755 index 0000000..dbc3b4b Binary files /dev/null and b/project/android_java/res/raw/sheep1.ogg differ diff --git a/project/android_java/res/raw/sheep2.ogg b/project/android_java/res/raw/sheep2.ogg new file mode 100755 index 0000000..d592dd2 Binary files /dev/null and b/project/android_java/res/raw/sheep2.ogg differ diff --git a/project/android_java/res/raw/sheep3.ogg b/project/android_java/res/raw/sheep3.ogg new file mode 100755 index 0000000..2d333f3 Binary files /dev/null and b/project/android_java/res/raw/sheep3.ogg differ diff --git a/project/android_java/res/raw/skeleton1.ogg b/project/android_java/res/raw/skeleton1.ogg new file mode 100755 index 0000000..8226808 Binary files /dev/null and b/project/android_java/res/raw/skeleton1.ogg differ diff --git a/project/android_java/res/raw/skeleton2.ogg b/project/android_java/res/raw/skeleton2.ogg new file mode 100755 index 0000000..7ab35d4 Binary files /dev/null and b/project/android_java/res/raw/skeleton2.ogg differ diff --git a/project/android_java/res/raw/skeleton3.ogg b/project/android_java/res/raw/skeleton3.ogg new file mode 100755 index 0000000..f0c4ea0 Binary files /dev/null and b/project/android_java/res/raw/skeleton3.ogg differ diff --git a/project/android_java/res/raw/skeletondeath.ogg b/project/android_java/res/raw/skeletondeath.ogg new file mode 100755 index 0000000..632b9bc Binary files /dev/null and b/project/android_java/res/raw/skeletondeath.ogg differ diff --git a/project/android_java/res/raw/skeletonhurt1.ogg b/project/android_java/res/raw/skeletonhurt1.ogg new file mode 100755 index 0000000..2065679 Binary files /dev/null and b/project/android_java/res/raw/skeletonhurt1.ogg differ diff --git a/project/android_java/res/raw/skeletonhurt2.ogg b/project/android_java/res/raw/skeletonhurt2.ogg new file mode 100755 index 0000000..ff5fde8 Binary files /dev/null and b/project/android_java/res/raw/skeletonhurt2.ogg differ diff --git a/project/android_java/res/raw/skeletonhurt3.ogg b/project/android_java/res/raw/skeletonhurt3.ogg new file mode 100755 index 0000000..f882087 Binary files /dev/null and b/project/android_java/res/raw/skeletonhurt3.ogg differ diff --git a/project/android_java/res/raw/skeletonhurt4.ogg b/project/android_java/res/raw/skeletonhurt4.ogg new file mode 100755 index 0000000..1ed44db Binary files /dev/null and b/project/android_java/res/raw/skeletonhurt4.ogg differ diff --git a/project/android_java/res/raw/snow1.ogg b/project/android_java/res/raw/snow1.ogg new file mode 100755 index 0000000..916b874 Binary files /dev/null and b/project/android_java/res/raw/snow1.ogg differ diff --git a/project/android_java/res/raw/snow2.ogg b/project/android_java/res/raw/snow2.ogg new file mode 100755 index 0000000..3b23e02 Binary files /dev/null and b/project/android_java/res/raw/snow2.ogg differ diff --git a/project/android_java/res/raw/snow3.ogg b/project/android_java/res/raw/snow3.ogg new file mode 100755 index 0000000..11c8ba7 Binary files /dev/null and b/project/android_java/res/raw/snow3.ogg differ diff --git a/project/android_java/res/raw/snow4.ogg b/project/android_java/res/raw/snow4.ogg new file mode 100755 index 0000000..00da95b Binary files /dev/null and b/project/android_java/res/raw/snow4.ogg differ diff --git a/project/android_java/res/raw/spider1.ogg b/project/android_java/res/raw/spider1.ogg new file mode 100755 index 0000000..b4b4c5a Binary files /dev/null and b/project/android_java/res/raw/spider1.ogg differ diff --git a/project/android_java/res/raw/spider2.ogg b/project/android_java/res/raw/spider2.ogg new file mode 100755 index 0000000..ef6cd87 Binary files /dev/null and b/project/android_java/res/raw/spider2.ogg differ diff --git a/project/android_java/res/raw/spider3.ogg b/project/android_java/res/raw/spider3.ogg new file mode 100755 index 0000000..bfaffb0 Binary files /dev/null and b/project/android_java/res/raw/spider3.ogg differ diff --git a/project/android_java/res/raw/spider4.ogg b/project/android_java/res/raw/spider4.ogg new file mode 100755 index 0000000..ce7c315 Binary files /dev/null and b/project/android_java/res/raw/spider4.ogg differ diff --git a/project/android_java/res/raw/spiderdeath.ogg b/project/android_java/res/raw/spiderdeath.ogg new file mode 100755 index 0000000..4128a55 Binary files /dev/null and b/project/android_java/res/raw/spiderdeath.ogg differ diff --git a/project/android_java/res/raw/splash.ogg b/project/android_java/res/raw/splash.ogg new file mode 100755 index 0000000..8d91a23 Binary files /dev/null and b/project/android_java/res/raw/splash.ogg differ diff --git a/project/android_java/res/raw/stone1.ogg b/project/android_java/res/raw/stone1.ogg new file mode 100755 index 0000000..1f652c2 Binary files /dev/null and b/project/android_java/res/raw/stone1.ogg differ diff --git a/project/android_java/res/raw/stone2.ogg b/project/android_java/res/raw/stone2.ogg new file mode 100755 index 0000000..1fd1c04 Binary files /dev/null and b/project/android_java/res/raw/stone2.ogg differ diff --git a/project/android_java/res/raw/stone3.ogg b/project/android_java/res/raw/stone3.ogg new file mode 100755 index 0000000..bbca544 Binary files /dev/null and b/project/android_java/res/raw/stone3.ogg differ diff --git a/project/android_java/res/raw/stone4.ogg b/project/android_java/res/raw/stone4.ogg new file mode 100755 index 0000000..be2fd26 Binary files /dev/null and b/project/android_java/res/raw/stone4.ogg differ diff --git a/project/android_java/res/raw/wood1.ogg b/project/android_java/res/raw/wood1.ogg new file mode 100755 index 0000000..072c970 Binary files /dev/null and b/project/android_java/res/raw/wood1.ogg differ diff --git a/project/android_java/res/raw/wood2.ogg b/project/android_java/res/raw/wood2.ogg new file mode 100755 index 0000000..ff27e90 Binary files /dev/null and b/project/android_java/res/raw/wood2.ogg differ diff --git a/project/android_java/res/raw/wood3.ogg b/project/android_java/res/raw/wood3.ogg new file mode 100755 index 0000000..5d6e7c0 Binary files /dev/null and b/project/android_java/res/raw/wood3.ogg differ diff --git a/project/android_java/res/raw/wood4.ogg b/project/android_java/res/raw/wood4.ogg new file mode 100755 index 0000000..6eca813 Binary files /dev/null and b/project/android_java/res/raw/wood4.ogg differ diff --git a/project/android_java/res/raw/zombie1.ogg b/project/android_java/res/raw/zombie1.ogg new file mode 100755 index 0000000..6c57de1 Binary files /dev/null and b/project/android_java/res/raw/zombie1.ogg differ diff --git a/project/android_java/res/raw/zombie2.ogg b/project/android_java/res/raw/zombie2.ogg new file mode 100755 index 0000000..80e1918 Binary files /dev/null and b/project/android_java/res/raw/zombie2.ogg differ diff --git a/project/android_java/res/raw/zombie3.ogg b/project/android_java/res/raw/zombie3.ogg new file mode 100755 index 0000000..c5d2f41 Binary files /dev/null and b/project/android_java/res/raw/zombie3.ogg differ diff --git a/project/android_java/res/raw/zombiedeath.ogg b/project/android_java/res/raw/zombiedeath.ogg new file mode 100755 index 0000000..7c010fd Binary files /dev/null and b/project/android_java/res/raw/zombiedeath.ogg differ diff --git a/project/android_java/res/raw/zombiehurt1.ogg b/project/android_java/res/raw/zombiehurt1.ogg new file mode 100755 index 0000000..ce3cbde Binary files /dev/null and b/project/android_java/res/raw/zombiehurt1.ogg differ diff --git a/project/android_java/res/raw/zombiehurt2.ogg b/project/android_java/res/raw/zombiehurt2.ogg new file mode 100755 index 0000000..122ff24 Binary files /dev/null and b/project/android_java/res/raw/zombiehurt2.ogg differ diff --git a/project/android_java/res/raw/zpig1.ogg b/project/android_java/res/raw/zpig1.ogg new file mode 100755 index 0000000..49f18ed Binary files /dev/null and b/project/android_java/res/raw/zpig1.ogg differ diff --git a/project/android_java/res/raw/zpig2.ogg b/project/android_java/res/raw/zpig2.ogg new file mode 100755 index 0000000..60a2739 Binary files /dev/null and b/project/android_java/res/raw/zpig2.ogg differ diff --git a/project/android_java/res/raw/zpig3.ogg b/project/android_java/res/raw/zpig3.ogg new file mode 100755 index 0000000..6d37984 Binary files /dev/null and b/project/android_java/res/raw/zpig3.ogg differ diff --git a/project/android_java/res/raw/zpig4.ogg b/project/android_java/res/raw/zpig4.ogg new file mode 100755 index 0000000..4f11239 Binary files /dev/null and b/project/android_java/res/raw/zpig4.ogg differ diff --git a/project/android_java/res/raw/zpigangry1.ogg b/project/android_java/res/raw/zpigangry1.ogg new file mode 100755 index 0000000..a398129 Binary files /dev/null and b/project/android_java/res/raw/zpigangry1.ogg differ diff --git a/project/android_java/res/raw/zpigangry2.ogg b/project/android_java/res/raw/zpigangry2.ogg new file mode 100755 index 0000000..79003db Binary files /dev/null and b/project/android_java/res/raw/zpigangry2.ogg differ diff --git a/project/android_java/res/raw/zpigangry3.ogg b/project/android_java/res/raw/zpigangry3.ogg new file mode 100755 index 0000000..23c530f Binary files /dev/null and b/project/android_java/res/raw/zpigangry3.ogg differ diff --git a/project/android_java/res/raw/zpigangry4.ogg b/project/android_java/res/raw/zpigangry4.ogg new file mode 100755 index 0000000..3ea06c5 Binary files /dev/null and b/project/android_java/res/raw/zpigangry4.ogg differ diff --git a/project/android_java/res/raw/zpigdeath.ogg b/project/android_java/res/raw/zpigdeath.ogg new file mode 100755 index 0000000..00d3f8d Binary files /dev/null and b/project/android_java/res/raw/zpigdeath.ogg differ diff --git a/project/android_java/res/raw/zpighurt1.ogg b/project/android_java/res/raw/zpighurt1.ogg new file mode 100755 index 0000000..0fa041d Binary files /dev/null and b/project/android_java/res/raw/zpighurt1.ogg differ diff --git a/project/android_java/res/raw/zpighurt2.ogg b/project/android_java/res/raw/zpighurt2.ogg new file mode 100755 index 0000000..fb740aa Binary files /dev/null and b/project/android_java/res/raw/zpighurt2.ogg differ diff --git a/project/android_java/res/values/strings.xml b/project/android_java/res/values/strings.xml new file mode 100755 index 0000000..356de7b --- /dev/null +++ b/project/android_java/res/values/strings.xml @@ -0,0 +1,40 @@ + + + Minecraft - Pocket Edition + Minecraft - Pocket Edition Demo + true + Minecraft PE + Minecraft PE Demo + + + World name + Unnamed world + Seed for the World Generator + Leave blank for random seed + Mobs, health and gather resources + Unlimited resources and flying + + + Save world as + Saved World + + + Username + Enter your username + Server visible by default + Sensitivity + Invert Y-axis + Lefty + Use touch screen + Split touch controls + Vibration + Slight vibration when blocks are destroyed + Fancy graphics + + + Lower graphics quality + Shorter view distance and disables fancy rendering + Peaceful mode + No hostile mobs, heal automatically + + diff --git a/project/android_java/res/xml/preferences.xml b/project/android_java/res/xml/preferences.xml new file mode 100755 index 0000000..fde2552 --- /dev/null +++ b/project/android_java/res/xml/preferences.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/android_java/src/com/mojang/minecraftpe/MainActivity.java b/project/android_java/src/com/mojang/minecraftpe/MainActivity.java new file mode 100755 index 0000000..200274c --- /dev/null +++ b/project/android_java/src/com/mojang/minecraftpe/MainActivity.java @@ -0,0 +1,726 @@ +package com.mojang.minecraftpe; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Map; +import java.util.Vector; + +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.opengles.GL10; + +import com.mojang.android.StringValue; +import com.mojang.android.licensing.LicenseCodes; + +import android.app.ActivityManager; +import android.app.ActivityManager.MemoryInfo; +import android.app.AlertDialog; +import android.app.Activity; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnCancelListener; +import android.content.DialogInterface.OnClickListener; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.AssetManager; +import android.graphics.Bitmap; +import android.graphics.Bitmap.CompressFormat; +import android.graphics.BitmapFactory; +import android.media.AudioManager; +import android.opengl.GLSurfaceView; +import android.os.Bundle; +import android.os.Vibrator; +import android.preference.PreferenceManager; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.Display; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.WindowManager; +import android.view.ViewGroup.LayoutParams; +import android.widget.EditText; +import android.widget.TextView; + +import com.mojang.minecraftpe.R; +import com.mojang.minecraftpe.sound.SoundPlayer; + +public class MainActivity extends Activity { + /** Called when the activity is first created. */ + + private GLView _glView; + public float invScale = 1.0f;// / 1.5f; + + Vector _touchEvents = new Vector(); + Vector _keyEvents = new Vector(); + + @Override + public void onCreate(Bundle savedInstanceState) { + setVolumeControlStream(AudioManager.STREAM_MUSIC); + super.onCreate(savedInstanceState); + nativeRegisterThis(); + + nativeOnCreate(); + + _glView = new GLView(getApplication(), this); + //_glView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); + _glView.setEGLConfigChooser(true); + //_glView + +// _glView.setEGLConfigChooser( +// new GLSurfaceView.EGLConfigChooser() { +// +// @Override +// public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { +// // TODO Auto-generated method stub +// +// // Specify a configuration for our opengl session +// // and grab the first configuration that matches is +// int[] configSpec = { +// EGL10.EGL_DEPTH_SIZE, 24, +// EGL10.EGL_NONE +// }; +// EGLConfig[] configs = new EGLConfig[1]; +// int[] num_config = new int[1]; +// egl.eglChooseConfig(display, configSpec, configs, 1, num_config); +// EGLConfig config = configs[0]; +// return config; +// +// //return null; +// } +// } ); + + _glView.commit(); + setContentView(_glView); + + _soundPlayer = new SoundPlayer(this, AudioManager.STREAM_MUSIC); + } + + public boolean isTouchscreen() { return true; } + static public boolean isXperiaPlay() { return false; } + + static private boolean _isPowerVr = false; + public void setIsPowerVR(boolean status) { MainActivity._isPowerVr = status; } + static public boolean isPowerVR() { return _isPowerVr; } + + public void vibrate(int milliSeconds) { + Vibrator v = (Vibrator)this.getSystemService(VIBRATOR_SERVICE); + v.vibrate(milliSeconds); + } + + private void createAlertDialog(boolean hasOkButton, boolean hasCancelButton, boolean preventBackKey) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + + builder.setTitle(""); + if (preventBackKey) + builder.setCancelable(false); + + builder.setOnCancelListener(new OnCancelListener() { + //@Override + public void onCancel(DialogInterface dialog) { + onDialogCanceled(); + } + }); + + if (hasOkButton) + builder.setPositiveButton("Ok", new OnClickListener() { + public void onClick(DialogInterface dialog, int which) { onDialogCompleted(); }}); + + if (hasCancelButton) + builder.setNegativeButton("Cancel", new OnClickListener() { + public void onClick(DialogInterface dialog, int which) { onDialogCanceled(); }}); + + mDialog = builder.create(); + mDialog.setOwnerActivity(this); + } + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + // TODO Auto-generated method stub + //System.out.println("Focus has changed. Has Focus? " + hasFocus); + super.onWindowFocusChanged(hasFocus); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (event.getRepeatCount() <= 0) + _keyEvents.add(new KeyEvent(event)); + + boolean handled = (keyCode != KeyEvent.KEYCODE_VOLUME_DOWN + && keyCode != KeyEvent.KEYCODE_VOLUME_UP); + return handled; + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (event.getRepeatCount() <= 0) + _keyEvents.add(new KeyEvent(event)); + + boolean handled = (keyCode != KeyEvent.KEYCODE_VOLUME_DOWN + && keyCode != KeyEvent.KEYCODE_VOLUME_UP); + return handled; + } + + public void handleKeyEvent(KeyEvent event) { + //System.out.println("KeyDown: " + keyCode); + + final int keyCode = event.getKeyCode(); + final boolean pressedBack = (keyCode == KeyEvent.KEYCODE_BACK); + + if (pressedBack) { + if (!nativeHandleBack(event.getAction() == KeyEvent.ACTION_DOWN)) { + // End game here + if (event.getAction() == KeyEvent.ACTION_DOWN) + finish(); + } + return; + } + + if (event.getAction() == KeyEvent.ACTION_DOWN) + nativeOnKeyDown(keyCode); + else if (event.getAction() == KeyEvent.ACTION_UP) + nativeOnKeyUp(keyCode); + } + + //private int _primaryPointerIdDown = -1; + @Override + public boolean onTouchEvent(MotionEvent e) { + //System.out.println("Adding touch event " + e.getActionMasked()); + _touchEvents.add(MotionEvent.obtainNoHistory(e)); + return super.onTouchEvent(e); + } + + public void handleTouchEvent(MotionEvent e) { + //printMemUsage(this); + + int fullAction = e.getAction(); + int action = (fullAction & MotionEvent.ACTION_MASK); + //int pointerIndex = (fullAction & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; + int pointerIndex = (fullAction & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; + int pointerId = e.getPointerId(pointerIndex); + //System.out.println("Pointers: " + pointerId + ", " + pointerId222); + float x = e.getX(pointerIndex) * invScale; + float y = e.getY(pointerIndex) * invScale; + + switch (action) { + case MotionEvent.ACTION_DOWN: { + //System.err.println("D: " + pointerId + ": " + x + ", " + y); + nativeMouseDown(pointerId, 1, x, y); + break; + } + case MotionEvent.ACTION_POINTER_DOWN: { + //System.err.println("d: " + pointerId + ": " + x + ", " + y); + nativeMouseDown(pointerId, 1, x, y); + break; + } + case MotionEvent.ACTION_UP: { + //System.err.println("U: " + pointerId + ": " + x + ", " + y); + nativeMouseUp(pointerId, 1, x, y); + break; + } + case MotionEvent.ACTION_POINTER_UP: { + //System.err.println("u: " + pointerId + ": " + x + ", " + y); + nativeMouseUp(pointerId, 1, x, y); + break; + } + case MotionEvent.ACTION_MOVE: { + int pcount = e.getPointerCount(); + for (int i = 0; i < pcount; ++i) { + int pp = e.getPointerId(i); // @attn wtf? + float xx = e.getX(i) * invScale; + float yy = e.getY(i) * invScale; + // System.err.println(" " + p + " @ " + x + ", " + y); + nativeMouseMove(pp, xx, yy); + } + break; + } + } + + //return super.onTouchEvent(e); + } + + static private void printMemUsage(Context context) + { + final String TAG = "MEMdbg"; + + MemoryInfo mi = new MemoryInfo(); + ActivityManager activityManager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); + activityManager.getMemoryInfo(mi); + long availableKbs = mi.availMem / 1024; + Log.i(TAG, "" + availableKbs); + } + + static public void saveScreenshot(String filename, int w, int h, int[] pixels) { + Bitmap bitmap = Bitmap.createBitmap(pixels, w, h, Bitmap.Config.ARGB_8888); + + //System.out.println("Save screenshot: " + filename); + + try { + FileOutputStream fos = new FileOutputStream(filename); + bitmap.compress(CompressFormat.JPEG, 85, fos); + //System.out.println("Compression completed!"); + + try { + fos.flush(); + } catch (IOException e) { + e.printStackTrace(); + } + + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + catch (FileNotFoundException e) { + System.err.println("Couldn't create file: " + filename); + e.printStackTrace(); + } + } + + public int[] getImageData(String filename) { + AssetManager assets = getAssets(); + + try { + /*String[] filenames = */assets.list("images"); + } catch (IOException e) { + System.err.println("getImageData: Could not list directory"); + return null; + } + + InputStream inputStream = null; + try { + inputStream = assets.open(filename); + } catch (IOException e) { + System.err.println("getImageData: Could not open image " + filename); + return null; + } + + Bitmap bm = BitmapFactory.decodeStream(inputStream); + int w = bm.getWidth(); + int h = bm.getHeight(); + + int[] pixels = new int[w * h + 2]; + pixels[0] = w; + pixels[1] = h; + bm.getPixels(pixels, 2, w, 0, 0, w, h); + + return pixels; + } + + public byte[] getFileDataBytes(String filename) { + AssetManager assets = getAssets(); + + BufferedInputStream bis; + try { + InputStream is = assets.open(filename); + bis = new BufferedInputStream(is); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + + ByteArrayOutputStream s = new ByteArrayOutputStream(4096); + byte[] tmp = new byte[1024]; + + try { + while (true) { + int count = bis.read(tmp); + if (count <= 0) break; + s.write(tmp, 0, count); + } + } catch (IOException e) { + } finally { + try { bis.close(); } + catch (IOException e) {} + } + + return s.toByteArray(); + } + + public int getScreenWidth() { + Display display = ((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + int out = Math.max(display.getWidth(), display.getHeight()); + //System.out.println("getwidth: " + out); + return out; + } + + public int getScreenHeight() { + Display display = ((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + int out = Math.min(display.getWidth(), display.getHeight()); + //System.out.println("getheight: " + out); + return out; + } + + public float getPixelsPerMillimeter() { + DisplayMetrics metrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(metrics); + return (metrics.xdpi + metrics.ydpi) * 0.5f / 25.4f; + } + + public int checkLicense() { return LicenseCodes.LICENSE_OK; } + + public String getDateString(int s) { + return DateFormat.format(new Date(s * 1000L)); + } + + public boolean hasBuyButtonWhenInvalidLicense() { return true; } + + public void postScreenshotToFacebook(String filename, int w, int h, int[] pixels) { + return; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, + Intent data) { + + if (requestCode == DialogDefinitions.DIALOG_MAINMENU_OPTIONS) { + _userInputStatus = 1; + } + } + + public void quit() { + runOnUiThread(new Runnable() { + public void run() { finish(); } }); + } + + public void displayDialog(int dialogId) { + + if (dialogId == DialogDefinitions.DIALOG_CREATE_NEW_WORLD) { + chooseDialog(R.layout.create_new_world, + new int[] { R.id.editText_worldName, + R.id.editText_worldSeed, + R.id.button_gameMode}, + false, // Don't prevent back key + R.id.button_createworld_create, + R.id.button_createworld_cancel + ); + } else if (dialogId == DialogDefinitions.DIALOG_MAINMENU_OPTIONS) { + Intent intent = new Intent(this, MainMenuOptionsActivity.class); + intent.putExtra("preferenceId", R.xml.preferences); + startActivityForResult(intent, dialogId); + } else if (dialogId == DialogDefinitions.DIALOG_RENAME_MP_WORLD) { + chooseDialog(R.layout.rename_mp_world, + new int[] { R.id.editText_worldNameRename }, + false + ); + } + } + + void chooseDialog(final int layoutId, final int[] viewIds) { + chooseDialog(layoutId, viewIds, true); + } + void chooseDialog(final int layoutId, final int[] viewIds, final boolean hasCancelButton) { + chooseDialog(layoutId, viewIds, hasCancelButton, true); + } + void chooseDialog(final int layoutId, final int[] viewIds, final boolean hasCancelButton, final boolean preventBackKey) { + chooseDialog(layoutId, viewIds, preventBackKey, 0, hasCancelButton? 0 : -1); + } + void chooseDialog(final int layoutId, final int[] viewIds, final boolean preventBackKey, final int okButtonId, final int cancelButtonId) { + _userInputValues.clear(); + + runOnUiThread(new Runnable() { + public void run() { + createAlertDialog(okButtonId==0, cancelButtonId==0, preventBackKey); + LayoutInflater li = LayoutInflater.from(MainActivity.this); + + try { + View view = li.inflate(layoutId, null); + if (okButtonId != 0 && okButtonId != -1) { + View b = view.findViewById(okButtonId); + if (b != null) + b.setOnClickListener(new View.OnClickListener() + { public void onClick(View v) { if (mDialog != null) mDialog.dismiss(); onDialogCompleted(); }}); + } + if (cancelButtonId != 0 && cancelButtonId != -1) { + View b = view.findViewById(cancelButtonId); + if (b != null) + b.setOnClickListener(new View.OnClickListener() + { public void onClick(View v) { if (mDialog != null) mDialog.cancel(); onDialogCanceled(); }}); + } + + //mDialog.setO + MainActivity.this.mDialog.setView(view); + + if (viewIds != null) + for (int viewId : viewIds) { + View v = view.findViewById(viewId); + if (v instanceof StringValue) + _userInputValues.add( (StringValue) v ); + else if (v instanceof TextView) + _userInputValues.add(new TextViewReader((TextView)v)); + } + + } catch (Error e) { + e.printStackTrace(); + } + + MainActivity.this.mDialog.show(); + MainActivity.this.mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + MainActivity.this.mDialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); + //MainActivity.this.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); + } + }); + } + + public void tick() {} + + public String[] getOptionStrings() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + Map m = prefs.getAll(); + + String[] tmpOut = new String[m.size() * 2]; + + int n = 0; + for (Map.Entry e : m.entrySet()) { + String key = e.getKey(); + String value = e.getValue().toString(); + // + // Feel free to modify key or value! + // + // This can be used to correct differences between the different + // platforms, such as Android not supporting floating point + // ranges for Sliders/SeekBars: {0..100} - TRANSFORM -> {0..1} + // + if (key.equals(MainMenuOptionsActivity.Internal_Game_DifficultyPeaceful)) { + key = MainMenuOptionsActivity.Game_DifficultyLevel; + value = ((Boolean) e.getValue()) ? "0" : "2"; + } + + try { + if (key.equals(MainMenuOptionsActivity.Controls_Sensitivity)) + value = new Double( 0.01 * Integer.parseInt(value) ).toString(); + } catch (Exception exc) {} + + tmpOut[n++] = key; + tmpOut[n++] = value; +// System.out.println("Key: " + e.getKey()); +// System.out.println("Val: " + e.getValue().toString() + "\n"); + } + + // Copy over the enabled preferences + String[] out = new String[n]; + for (int i = 0; i < n; ++i) + out[i] = tmpOut[i]; + + return out; + } + + public void buyGame() {} + + public String getPlatformStringVar(int id) { + if (id == 0) return android.os.Build.MODEL; + return null; + } + + public boolean isNetworkEnabled(boolean onlyWifiAllowed) { + return true; + /* + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo info = onlyWifiAllowed? cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) + : cm.getActiveNetworkInfo(); + //(info.getState() == NetworkInfo.State.CONNECTED || info.getState() == NetworkInfo.State.CONNECTING)); + return (info != null && info.isConnectedOrConnecting()); + */ + } + + private Bundle data; + private int _userInputStatus = -1; + private String[] _userInputText = null; + private ArrayList _userInputValues = new ArrayList(); + public void initiateUserInput(int id) { + _userInputText = null; + _userInputStatus = -1; + } + public int getUserInputStatus() { return _userInputStatus; } + public String[] getUserInputString() { return _userInputText; } + + private SoundPlayer _soundPlayer; + public void playSound(String s, float volume, float rate) { + _soundPlayer.play(s, volume, rate); + } + + private AlertDialog mDialog; + private final DateFormat DateFormat = new SimpleDateFormat(); +// public EditText mTextInputWidget; + + private void onDialogCanceled() { + _userInputStatus = 0; + } + + private void onDialogCompleted() { + int size = _userInputValues.size(); + _userInputText = new String[size]; + for (int i = 0; i < size; ++i) { + _userInputText[i] = _userInputValues.get(i).getStringValue(); + } + for (String s : _userInputText) System.out.println("js: " + s); + + _userInputStatus = 1; + } + + + protected void onStart() { + //System.out.println("onStart"); + super.onStart(); + } + + protected void onResume() { + //System.out.println("onResume"); + super.onResume(); + _glView.onResume(); + } + + protected void onPause() { + //System.out.println("onPause"); + super.onPause(); + _glView.onPause(); + } + + protected void onStop() { + //System.out.println("onStop"); + super.onStop(); + } + protected void onDestroy() { + //System.out.println("onDestroy"); + + nativeUnregisterThis(); + super.onDestroy(); + nativeOnDestroy(); + } + + protected boolean isDemo() { return false; } + + // + // Native interface + // + native void nativeRegisterThis(); + native void nativeUnregisterThis(); + native static void nativeOnCreate(); + native static void nativeOnDestroy(); + native static void nativeOnKeyDown(int key); + native static void nativeOnKeyUp(int key); + native static boolean nativeHandleBack(boolean isDown); + native static void nativeMouseDown(int pointerId, int buttonId, float x, float y); + native static void nativeMouseUp(int pointerId, int buttonId, float x, float y); + native static void nativeMouseMove(int pointerId, float x, float y); + + static { + System.loadLibrary("minecraftpe"); + } + + public void clearPendingEvents() { + _touchEvents.clear(); + _keyEvents.clear(); + } + public void processPendingEvents() { + int i = 0; + while (i < _touchEvents.size()) + handleTouchEvent(_touchEvents.get(i++)); + i = 0; + while (i < _keyEvents.size()) + handleKeyEvent(_keyEvents.get(i++)); + + clearPendingEvents(); + } +} + +// see client/gui/screens/DialogDefinitions.h +class DialogDefinitions { + static final int DIALOG_CREATE_NEW_WORLD = 1; + static final int DIALOG_NEW_CHAT_MESSAGE = 2; + static final int DIALOG_MAINMENU_OPTIONS = 3; + static final int DIALOG_RENAME_MP_WORLD = 4; +} + + +class GLView extends GLSurfaceView { + public GLView(Context context, MainActivity activity) { + super(context); + _activity = activity; + _renderer = new GLRenderer(activity); + + } + + @Override + public void onPause() { _renderer.paused = true; } + @Override + public void onResume() { _renderer.paused = false; } + + public void commit() { + setRenderer(_renderer); + } + + @Override + public void surfaceCreated(android.view.SurfaceHolder holder) { +// holder.setFixedSize((int)(_activity.getScreenWidth() * _activity.invScale), +// (int)(_activity.getScreenHeight() * _activity.invScale)); + System.out.println("w,h: " + _activity.getScreenWidth() + "," + _activity.getScreenHeight()); + super.surfaceCreated(holder); + } + +// public boolean onTouchEvent(final MotionEvent event) { +// if (event.getAction() == MotionEvent.ACTION_DOWN) { +// nativePause(); +// } +// return true; +// } + + private GLRenderer _renderer; + private MainActivity _activity; +} + +class GLRenderer implements GLSurfaceView.Renderer { + private MainActivity _activity; + + public GLRenderer(MainActivity a) { + _activity = a; + } + + public void onSurfaceCreated(GL10 gl, EGLConfig config) { + nativeOnSurfaceCreated(); + } + + public void onSurfaceChanged(GL10 gl, int w, int h) { + if (h > w) { + System.out.println("surfchanged ERROR. dimensions: " + w + ", " + h); + nativeOnSurfaceChanged(h, w); + } + else + nativeOnSurfaceChanged(w, h); + } + + public void onDrawFrame(GL10 gl) { + if (!paused) { + _activity.processPendingEvents(); + nativeUpdate(); + } else { + _activity.clearPendingEvents(); + } + } + + public boolean paused = false; + + private static native void nativeOnSurfaceCreated(); + private static native void nativeOnSurfaceChanged(int w, int h); + private static native void nativeUpdate(); + //private static native void nativeDone(); +} + +class TextViewReader implements StringValue { + public TextViewReader(TextView view) { + _view = view; + } + public String getStringValue() { + return _view.getText().toString(); + } + private TextView _view; +} diff --git a/project/android_java/src/com/mojang/minecraftpe/sound/SoundPlayer.java b/project/android_java/src/com/mojang/minecraftpe/sound/SoundPlayer.java new file mode 100755 index 0000000..f3686c7 --- /dev/null +++ b/project/android_java/src/com/mojang/minecraftpe/sound/SoundPlayer.java @@ -0,0 +1,221 @@ +package com.mojang.minecraftpe.sound; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; + +import android.content.Context; +import android.media.SoundPool; + +import com.mojang.minecraftpe.R; + +public class SoundPlayer +{ + public SoundPlayer(Context c, int streamType) { + _context = c; + _stream = streamType; + + _random = new Random(); + _pool = new SoundPool(4, _stream, 0); + + _init(); + } + + private void _init() { + // Sounds that needs to be preloaded (although asynchronous :p) + SoundId[] preLoaded = { + new SoundId(R.raw.click, "random.click"), + new SoundId(R.raw.explode, "random.explode"), + new SoundId(R.raw.splash, "random.splash"), + new SoundId(R.raw.hurt, "random.hurt"), + new SoundId(R.raw.pop, "random.pop"), + + new SoundId(R.raw.door_open, "random.door_open"), + new SoundId(R.raw.door_close, "random.door_close"), + + new SoundId(R.raw.cloth1, "step.cloth"), + new SoundId(R.raw.cloth2, "step.cloth"), + new SoundId(R.raw.cloth3, "step.cloth"), + new SoundId(R.raw.cloth4, "step.cloth"), + + new SoundId(R.raw.glass1, "random.glass"), + new SoundId(R.raw.glass2, "random.glass"), + new SoundId(R.raw.glass3, "random.glass"), + + new SoundId(R.raw.grass1, "step.grass"), + new SoundId(R.raw.grass2, "step.grass"), + new SoundId(R.raw.grass3, "step.grass"), + new SoundId(R.raw.grass4, "step.grass"), + + //new SoundId(R.raw.gravel1, "step.gravel"), + new SoundId(R.raw.gravel2, "step.gravel"), + new SoundId(R.raw.gravel3, "step.gravel"), + new SoundId(R.raw.gravel4, "step.gravel"), + + new SoundId(R.raw.sand1, "step.sand"), + new SoundId(R.raw.sand2, "step.sand"), + new SoundId(R.raw.sand3, "step.sand"), + new SoundId(R.raw.sand4, "step.sand"), + + new SoundId(R.raw.stone1, "step.stone"), + new SoundId(R.raw.stone2, "step.stone"), + new SoundId(R.raw.stone3, "step.stone"), + new SoundId(R.raw.stone4, "step.stone"), + + new SoundId(R.raw.wood1, "step.wood"), + new SoundId(R.raw.wood2, "step.wood"), + new SoundId(R.raw.wood3, "step.wood"), + new SoundId(R.raw.wood4, "step.wood"), + + new SoundId(R.raw.sheep1, "mob.sheep"), + new SoundId(R.raw.sheep2, "mob.sheep"), + new SoundId(R.raw.sheep3, "mob.sheep"), + + new SoundId(R.raw.chicken2, "mob.chicken"), + new SoundId(R.raw.chicken3, "mob.chicken"), + new SoundId(R.raw.chickenhurt1, "mob.chickenhurt"), + new SoundId(R.raw.chickenhurt2, "mob.chickenhurt"), + + new SoundId(R.raw.cow1, "mob.cow"), + new SoundId(R.raw.cow2, "mob.cow"), + new SoundId(R.raw.cow3, "mob.cow"), + new SoundId(R.raw.cow4, "mob.cow"), + new SoundId(R.raw.cowhurt1, "mob.cowhurt"), + new SoundId(R.raw.cowhurt2, "mob.cowhurt"), + + new SoundId(R.raw.pig1, "mob.pig"), + new SoundId(R.raw.pig2, "mob.pig"), + new SoundId(R.raw.pig3, "mob.pig"), + new SoundId(R.raw.pigdeath, "mob.pigdeath"), + + new SoundId(R.raw.zombie1, "mob.zombie"), + new SoundId(R.raw.zombie2, "mob.zombie"), + new SoundId(R.raw.zombie3, "mob.zombie"), + new SoundId(R.raw.zombiedeath, "mob.zombiedeath"), + new SoundId(R.raw.zombiehurt1, "mob.zombiehurt"), + new SoundId(R.raw.zombiehurt2, "mob.zombiehurt"), + + new SoundId(R.raw.skeleton1, "mob.skeleton"), + new SoundId(R.raw.skeleton2, "mob.skeleton"), + new SoundId(R.raw.skeleton3, "mob.skeleton"), + new SoundId(R.raw.skeletonhurt1, "mob.skeletonhurt"), + new SoundId(R.raw.skeletonhurt2, "mob.skeletonhurt"), + new SoundId(R.raw.skeletonhurt3, "mob.skeletonhurt"), + new SoundId(R.raw.skeletonhurt4, "mob.skeletonhurt"), + + new SoundId(R.raw.spider1, "mob.spider"), + new SoundId(R.raw.spider2, "mob.spider"), + new SoundId(R.raw.spider3, "mob.spider"), + new SoundId(R.raw.spider4, "mob.spider"), + new SoundId(R.raw.spiderdeath, "mob.spiderdeath"), + + new SoundId(R.raw.fallbig1, "damage.fallbig"), + new SoundId(R.raw.fallbig2, "damage.fallbig"), + new SoundId(R.raw.fallsmall, "damage.fallsmall"), + + new SoundId(R.raw.bow, "random.bow"), + new SoundId(R.raw.bowhit1, "random.bowhit"), + new SoundId(R.raw.bowhit2, "random.bowhit"), + new SoundId(R.raw.bowhit3, "random.bowhit"), + new SoundId(R.raw.bowhit4, "random.bowhit"), + + new SoundId(R.raw.creeper1, "mob.creeper"), + new SoundId(R.raw.creeper2, "mob.creeper"), + new SoundId(R.raw.creeper3, "mob.creeper"), + new SoundId(R.raw.creeper4, "mob.creeper"), + new SoundId(R.raw.creeperdeath, "mob.creeperdeath"), + new SoundId(R.raw.eat1, "random.eat"), + new SoundId(R.raw.eat2, "random.eat"), + new SoundId(R.raw.eat3, "random.eat"), + new SoundId(R.raw.fuse, "random.fuse"), + + new SoundId(R.raw.zpig1, "mob.zombiepig.zpig"), + new SoundId(R.raw.zpig2, "mob.zombiepig.zpig"), + new SoundId(R.raw.zpig3, "mob.zombiepig.zpig"), + new SoundId(R.raw.zpig4, "mob.zombiepig.zpig"), + new SoundId(R.raw.zpigangry1, "mob.zombiepig.zpigangry"), + new SoundId(R.raw.zpigangry2, "mob.zombiepig.zpigangry"), + new SoundId(R.raw.zpigangry3, "mob.zombiepig.zpigangry"), + new SoundId(R.raw.zpigangry4, "mob.zombiepig.zpigangry"), + new SoundId(R.raw.zpigdeath, "mob.zombiepig.zpigdeath"), + new SoundId(R.raw.zpighurt1, "mob.zombiepig.zpighurt"), + new SoundId(R.raw.zpighurt2, "mob.zombiepig.zpighurt"), + }; + + for (SoundId s: preLoaded) { + load(s.name, s.soundId); + } + // Sounds that are loaded in a separate thread + } + +// public void loadWithAlias(String filename, String alias) { +// int id = loadRaw(filename); +// addRaw(new SoundId(id, alias)); +// } + + public void play(String s, float volume, float pitch) { + SoundId sound = get(s);//load(s); + if (sound != null) { + volume *= getCurrentStreamVolume(); + //System.out.println("playing sound id: " + sound.soundId); + if (s.equals("step.sand") || s.equals("step.gravel")) volume *= 0.5f; + _pool.play(sound.soundId, volume, volume, 0, 0, pitch); + } + } + + private SoundId get(String s) { + List sounds = _sounds.get( s ); + if (sounds == null) return null; + + return sounds.get(_random.nextInt(sounds.size())); + } + + public float getCurrentStreamVolume() { + return 2.5f; + //AudioManager mgr = (AudioManager)_context.getSystemService(Context.AUDIO_SERVICE); + //return ((float)mgr.getStreamVolume(_stream)) / mgr.getStreamMaxVolume(_stream); + } + + synchronized public SoundId load(String id, int resId) { + if (id == null) + return null; + + List sounds = _sounds.get(id); + SoundId soundId = null; + + if (sounds == null) { + sounds = new ArrayList(); + _sounds.put(id, sounds); + } + + for (SoundId sid : sounds) + if (sid.soundId == resId) + return sid; + + int snd = _pool.load(_context, resId, DefaultPriority); + soundId = new SoundId(snd, id); + sounds.add(soundId); + + return soundId; + } + + private Context _context; + private Random _random; + private int _stream; + private SoundPool _pool; + + private Map> _sounds = new HashMap>(); + + static private final int DefaultPriority = 1; + + public class SoundId { + SoundId(int soundId, String name) { + this.soundId = soundId; + this.name = name; + } + int soundId; + String name; + } +} diff --git a/project/dedicated_server/CMakeLists.txt b/project/dedicated_server/CMakeLists.txt new file mode 100755 index 0000000..fd4c363 --- /dev/null +++ b/project/dedicated_server/CMakeLists.txt @@ -0,0 +1,156 @@ +cmake_minimum_required(VERSION 2.8.7) +find_package (Threads) +include_directories("${PROJECT_SOURCE_DIR}/../lib_projects/raknet/jni/RaknetSources") +add_subdirectory("${PROJECT_SOURCE_DIR}/../lib_projects/raknet/jni" "${CMAKE_CURRENT_BINARY_DIR}/raknet") +add_definitions(-DSTANDALONE_SERVER) +set(CMAKE_C_FLAGS -m32) +set(CMAKE_CXX_FLAGS -m32) +set(CompileFiles ../../src/main.cpp +../../src/main_dedicated.cpp +../../src/platform/input/Controller.cpp +../../src/platform/input/Keyboard.cpp +../../src/platform/input/Mouse.cpp +../../src/platform/input/Multitouch.cpp +../../src/platform/time.cpp +../../src/platform/CThread.cpp +../../src/NinecraftApp.cpp +../../src/Performance.cpp +../../src/SharedConstants.cpp +../../src/client/IConfigListener.cpp +../../src/client/Minecraft.cpp +../../src/client/Options.cpp +../../src/client/OptionsFile.cpp +../../src/client/OptionStrings.cpp +../../src/client/gamemode/GameMode.cpp +../../src/client/gamemode/CreativeMode.cpp +../../src/client/gamemode/SurvivalMode.cpp +../../src/client/player/LocalPlayer.cpp +../../src/client/player/RemotePlayer.cpp +../../src/client/player/input/KeyboardInput.cpp +../../src/locale/I18n.cpp +../../src/nbt/Tag.cpp +../../src/network/command/CommandServer.cpp +../../src/network/ClientSideNetworkHandler.cpp +../../src/network/NetEventCallback.cpp +../../src/network/Packet.cpp +../../src/network/RakNetInstance.cpp +../../src/network/ServerSideNetworkHandler.cpp +../../src/server/ArgumentsSettings.cpp +../../src/server/ServerLevel.cpp +../../src/server/ServerPlayer.cpp +../../src/util/DataIO.cpp +../../src/util/Mth.cpp +../../src/util/StringUtils.cpp +../../src/util/PerfTimer.cpp +../../src/world/Direction.cpp +../../src/world/entity/AgableMob.cpp +../../src/world/entity/Entity.cpp +../../src/world/entity/EntityFactory.cpp +../../src/world/entity/FlyingMob.cpp +../../src/world/entity/HangingEntity.cpp +../../src/world/entity/Mob.cpp +../../src/world/entity/MobCategory.cpp +../../src/world/entity/Motive.cpp +../../src/world/entity/Painting.cpp +../../src/world/entity/PathfinderMob.cpp +../../src/world/entity/SynchedEntityData.cpp +../../src/world/entity/ai/control/MoveControl.cpp +../../src/world/entity/animal/Animal.cpp +../../src/world/entity/animal/Chicken.cpp +../../src/world/entity/animal/Cow.cpp +../../src/world/entity/animal/Pig.cpp +../../src/world/entity/animal/Sheep.cpp +../../src/world/entity/animal/WaterAnimal.cpp +../../src/world/entity/item/FallingTile.cpp +../../src/world/entity/item/ItemEntity.cpp +../../src/world/entity/item/PrimedTnt.cpp +../../src/world/entity/item/TripodCamera.cpp +../../src/world/entity/monster/Creeper.cpp +../../src/world/entity/monster/Monster.cpp +../../src/world/entity/monster/PigZombie.cpp +../../src/world/entity/monster/Skeleton.cpp +../../src/world/entity/monster/Spider.cpp +../../src/world/entity/monster/Zombie.cpp +../../src/world/entity/projectile/Arrow.cpp +../../src/world/entity/projectile/Throwable.cpp +../../src/world/entity/player/Inventory.cpp +../../src/world/entity/player/Player.cpp +../../src/world/food/SimpleFoodData.cpp +../../src/world/inventory/BaseContainerMenu.cpp +../../src/world/inventory/ContainerMenu.cpp +../../src/world/inventory/FillingContainer.cpp +../../src/world/inventory/FurnaceMenu.cpp +../../src/world/item/ArmorItem.cpp +../../src/world/item/BedItem.cpp +../../src/world/item/DyePowderItem.cpp +../../src/world/item/Item.cpp +../../src/world/item/ItemInstance.cpp +../../src/world/item/HangingEntityItem.cpp +../../src/world/item/HatchetItem.cpp +../../src/world/item/HoeItem.cpp +../../src/world/item/PickaxeItem.cpp +../../src/world/item/ShovelItem.cpp +../../src/world/item/crafting/ArmorRecipes.cpp +../../src/world/item/crafting/Recipe.cpp +../../src/world/item/crafting/Recipes.cpp +../../src/world/item/crafting/FurnaceRecipes.cpp +../../src/world/item/crafting/OreRecipes.cpp +../../src/world/item/crafting/StructureRecipes.cpp +../../src/world/item/crafting/ToolRecipes.cpp +../../src/world/item/crafting/WeaponRecipes.cpp +../../src/world/level/Explosion.cpp +../../src/world/level/Level.cpp +../../src/world/level/LightLayer.cpp +../../src/world/level/LightUpdate.cpp +../../src/world/level/MobSpawner.cpp +../../src/world/level/Region.cpp +../../src/world/level/TickNextTickData.cpp +../../src/world/level/biome/Biome.cpp +../../src/world/level/biome/BiomeSource.cpp +../../src/world/level/chunk/LevelChunk.cpp +../../src/world/level/dimension/Dimension.cpp +../../src/world/level/levelgen/CanyonFeature.cpp +../../src/world/level/levelgen/DungeonFeature.cpp +../../src/world/level/levelgen/LargeCaveFeature.cpp +../../src/world/level/levelgen/LargeFeature.cpp +../../src/world/level/levelgen/RandomLevelSource.cpp +../../src/world/level/levelgen/feature/Feature.cpp +../../src/world/level/levelgen/synth/ImprovedNoise.cpp +../../src/world/level/levelgen/synth/PerlinNoise.cpp +../../src/world/level/levelgen/synth/Synth.cpp +../../src/world/level/material/Material.cpp +../../src/world/level/pathfinder/Path.cpp +../../src/world/level/storage/ExternalFileLevelStorage.cpp +../../src/world/level/storage/ExternalFileLevelStorageSource.cpp +../../src/world/level/storage/FolderMethods.cpp +../../src/world/level/storage/LevelData.cpp +../../src/world/level/storage/LevelStorageSource.cpp +../../src/world/level/storage/RegionFile.cpp +../../src/world/level/tile/BedTile.cpp +../../src/world/level/tile/ChestTile.cpp +../../src/world/level/tile/CropTile.cpp +../../src/world/level/tile/DoorTile.cpp +../../src/world/level/tile/EntityTile.cpp +../../src/world/level/tile/FurnaceTile.cpp +../../src/world/level/tile/GrassTile.cpp +../../src/world/level/tile/HeavyTile.cpp +../../src/world/level/tile/LightGemTile.cpp +../../src/world/level/tile/MelonTile.cpp +../../src/world/level/tile/Mushroom.cpp +../../src/world/level/tile/NetherReactor.cpp +../../src/world/level/tile/NetherReactorPattern.cpp +../../src/world/level/tile/StairTile.cpp +../../src/world/level/tile/StemTile.cpp +../../src/world/level/tile/StoneSlabTile.cpp +../../src/world/level/tile/TallGrass.cpp +../../src/world/level/tile/Tile.cpp +../../src/world/level/tile/TrapDoorTile.cpp +../../src/world/level/tile/entity/ChestTileEntity.cpp +../../src/world/level/tile/entity/NetherReactorTileEntity.cpp +../../src/world/level/tile/entity/SignTileEntity.cpp +../../src/world/level/tile/entity/TileEntity.cpp +../../src/world/level/tile/entity/FurnaceTileEntity.cpp +../../src/world/phys/HitResult.cpp) +message(${CMAKE_LIBRARY_ARCHITECTURE}) +add_executable(mcpe_server ${CompileFiles}) +target_link_libraries(mcpe_server raknet ${CMAKE_THREAD_LIBS_INIT}) \ No newline at end of file diff --git a/project/iosproj/Default b/project/iosproj/Default new file mode 100755 index 0000000..023f0b4 Binary files /dev/null and b/project/iosproj/Default differ diff --git a/project/iosproj/Default-568h@2x.png b/project/iosproj/Default-568h@2x.png new file mode 100755 index 0000000..e306141 Binary files /dev/null and b/project/iosproj/Default-568h@2x.png differ diff --git a/project/iosproj/Default-Landscape~ipad.png b/project/iosproj/Default-Landscape~ipad.png new file mode 100755 index 0000000..dfc1a24 Binary files /dev/null and b/project/iosproj/Default-Landscape~ipad.png differ diff --git a/project/iosproj/Default.png b/project/iosproj/Default.png new file mode 100755 index 0000000..5dfe75a Binary files /dev/null and b/project/iosproj/Default.png differ diff --git a/project/iosproj/Default@2x.png b/project/iosproj/Default@2x.png new file mode 100755 index 0000000..82db4bf Binary files /dev/null and b/project/iosproj/Default@2x.png differ diff --git a/project/iosproj/Icon-72.png b/project/iosproj/Icon-72.png new file mode 100755 index 0000000..c957ccc Binary files /dev/null and b/project/iosproj/Icon-72.png differ diff --git a/project/iosproj/Icon-72_lite.png b/project/iosproj/Icon-72_lite.png new file mode 100755 index 0000000..de45504 Binary files /dev/null and b/project/iosproj/Icon-72_lite.png differ diff --git a/project/iosproj/Icon.png b/project/iosproj/Icon.png new file mode 100755 index 0000000..48aac5f Binary files /dev/null and b/project/iosproj/Icon.png differ diff --git a/project/iosproj/Icon@2x.png b/project/iosproj/Icon@2x.png new file mode 100755 index 0000000..cad1484 Binary files /dev/null and b/project/iosproj/Icon@2x.png differ diff --git a/project/iosproj/Icon@2x_lite.png b/project/iosproj/Icon@2x_lite.png new file mode 100755 index 0000000..a80c3d7 Binary files /dev/null and b/project/iosproj/Icon@2x_lite.png differ diff --git a/project/iosproj/Icon_lite.png b/project/iosproj/Icon_lite.png new file mode 100755 index 0000000..19ad7c4 Binary files /dev/null and b/project/iosproj/Icon_lite.png differ diff --git a/project/iosproj/InAppSettings.bundle/Advanced.plist b/project/iosproj/InAppSettings.bundle/Advanced.plist new file mode 100755 index 0000000..411f389 --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/Advanced.plist @@ -0,0 +1,73 @@ + + + + + Title + ADVANCED_TITLE + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + SLIDER_TITLE + + + Type + PSSliderSpecifier + Key + sensitivity + DefaultValue + 2 + MinimumValue + 1 + MaximumValue + 5 + MinimumValueImage + slow.png + MaximumValueImage + fast.png + + + Type + PSGroupSpecifier + Title + TEXT_FIELD_TITLE2 + + + Type + PSTextFieldSpecifier + IsSecure + + Title + TEXT_FIELD_PWD + KeyboardType + EmailAddress + Key + password + + + Title + TOGGLE_SWITCH_TITLE2 + Type + PSGroupSpecifier + + + Type + PSToggleSwitchSpecifier + TrueValue + 1 + FalseValue + 2 + Title + TOGGLE_SWITCH2 + Key + switchOther + DefaultValue + + + + + diff --git a/project/iosproj/InAppSettings.bundle/Complete.plist b/project/iosproj/InAppSettings.bundle/Complete.plist new file mode 100755 index 0000000..e36a94c --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/Complete.plist @@ -0,0 +1,513 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + Title + Text Fields + + + Type + PSTextFieldSpecifier + Title + Plain + Key + text_plain + DefaultValue + Plain Text + + + Type + PSTextFieldSpecifier + Title + Secure + Key + text_secure + DefaultValue + Secret + IsSecure + + KeyboardType + Alphabet + AutocorrectionType + no + + + Type + PSTextFieldSpecifier + Title + NumbersAndPunctuation + Key + text_NumbersAndPunctuation + DefaultValue + 47.11 + IsSecure + + KeyboardType + NumbersAndPunctuation + AutocorrectionType + Default + + + Type + PSTextFieldSpecifier + Title + NumberPad + Key + text_NumberPad + DefaultValue + 4711 + IsSecure + + KeyboardType + NumberPad + AutocorrectionType + Default + + + Type + PSTextFieldSpecifier + Title + DecimalPad + Key + text_DecimalPad + DefaultValue + 26.08 + IsSecure + + KeyboardType + DecimalPad + AutocorrectionType + Default + + + Type + PSTextFieldSpecifier + Title + URL + Key + text_URL + DefaultValue + http://www.inappsettingskit.com + IsSecure + + KeyboardType + URL + AutocorrectionType + Default + + + Type + PSTextFieldSpecifier + Title + EmailAddress + Key + text_EmailAddress + DefaultValue + info@email.com + IsSecure + + KeyboardType + EmailAddress + AutocorrectionType + Default + + + Type + PSTextFieldSpecifier + Title + Capital Sentences + Key + text_Sentences + DefaultValue + Cap sentences. Second sentence. + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + Sentences + AutocorrectionType + Default + + + Type + PSTextFieldSpecifier + Title + Capital Words + Key + text_words + DefaultValue + Words Are Capitalized + KeyboardType + Alphabet + AutocapitalizationType + Words + AutocorrectionType + No + IsSecure + + + + Type + PSTextFieldSpecifier + Title + All Capital + Key + text_AllCharacters + DefaultValue + FORGOTTEN THE CAPSLOCK? + IsSecure + + KeyboardType + Alphabet + AutocapitalizationType + AllCharacters + AutocorrectionType + No + + + Type + PSTextFieldSpecifier + Title + No auto-correction + Key + text_auto-correction_no + DefaultValue + Ser1ous mitsakes + IsSecure + + AutocorrectionType + No + + + Type + PSTextFieldSpecifier + Key + text_noTitle + DefaultValue + Textfield without title + IsSecure + + + + Type + PSTextFieldSpecifier + Title + Very long titles lead to smaller font + Key + text_longtitle + DefaultValue + foo bar + IsSecure + + + + Type + PSGroupSpecifier + Title + Title Values + + + Title + Title + Key + title_long + DefaultValue + Value with a very, very long text + Type + PSTitleValueSpecifier + + + Title + Title with Lookup Table + Key + title_lookup + DefaultValue + 2 + Type + PSTitleValueSpecifier + Values + + 1 + 2 + 3 + + Titles + + One + Two + Three + + + + Title + Title with a very, very loong label + Key + title_longtitle + DefaultValue + Value is long, too + Type + PSTitleValueSpecifier + + + Title + + Key + title_withoutlabel + DefaultValue + Title without label + Type + PSTitleValueSpecifier + + + Title + Unexisting lookup entry + Key + title_non_existing_lookup_entry + DefaultValue + 3 + Type + PSTitleValueSpecifier + Values + + 1 + 2 + + Titles + + One + Two + + + + Type + PSGroupSpecifier + Title + Toggles + + + Type + PSToggleSwitchSpecifier + Title + Boolean Toggle + Key + toggle_boolean + DefaultValue + + + + Type + PSToggleSwitchSpecifier + Title + String Toogle + Key + toogle_string + DefaultValue + foo + TrueValue + foo + FalseValue + bar + + + Type + PSToggleSwitchSpecifier + Title + Number Toggle + Key + toogle_number + DefaultValue + 1 + TrueValue + 1 + FalseValue + 0 + + + Type + PSToggleSwitchSpecifier + Title + String Toogle (false) + Key + toogle_string_false + DefaultValue + bar + TrueValue + foo + FalseValue + bar + + + Type + PSGroupSpecifier + Title + Sliders + + + Type + PSSliderSpecifier + Key + slider_preference1 + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + + + Type + PSSliderSpecifier + Key + slider_preference2 + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + slow.png + MaximumValueImage + fast.png + + + Type + PSSliderSpecifier + Key + slider_preference3 + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MinimumValueImage + slow.png + + + Type + PSSliderSpecifier + Key + slider_preference4 + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + MaximumValueImage + fast.png + + + Type + PSGroupSpecifier + Title + Multi Value + + + Type + PSMultiValueSpecifier + Title + Multi Value + Key + multivalue + DefaultValue + 2 + Values + + 1 + 2 + 3 + + Titles + + One + Two + Three + + FooterText + MULTIVALUE_FOOTER + + + Type + PSMultiValueSpecifier + Title + Multi Value with a long title + Key + multivalue_long + DefaultValue + 2 + Values + + 1 + 2 + 3 + + Titles + + One + Two + Three + + + + Type + PSMultiValueSpecifier + Title + EMPTY + Key + multivalue_notitle + DefaultValue + 1 + Values + + 1 + 2 + 3 + + Titles + + One + Two + Three + + + + Type + PSGroupSpecifier + Title + Child Pane + + + Type + PSChildPaneSpecifier + Title + Advanced + File + Advanced + + + Type + PSGroupSpecifier + Title + Group with a multiline text that is word wrapped. + + + Title + Entry + Key + title_non_existing_lookup_entry2 + Type + PSTitleValueSpecifier + + + + diff --git a/project/iosproj/InAppSettings.bundle/Root.inApp.plist b/project/iosproj/InAppSettings.bundle/Root.inApp.plist new file mode 100755 index 0000000..08a7c8e --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/Root.inApp.plist @@ -0,0 +1,133 @@ + + + + + PreferenceSpecifiers + + + Title + CATEGORY_MULTIPLAYER + Type + PSGroupSpecifier + + + Key + mp_username + Title + mmoptions_mp_username_title + StringIfEmpty + Stevie + Type + PSTextFieldSpecifier + AutocorrectionType + No + KeyboardType + Ascii + + + DefaultValue + YES + Key + mp_server_visible_default + Title + mmoptions_mp_server_visible_default_title + Type + PSToggleSwitchSpecifier + + + Title + CATEGORY_GRAPHICS + Type + PSGroupSpecifier + + + DefaultValue + NO + Key + gfx_fancygraphics + Title + mmoptions_gfx_fancygraphics_title + Type + PSToggleSwitchSpecifier + + + DefaultValue + NO + Key + gfx_lowquality + Title + mmoptions_gfx_lowquality_title + Type + PSToggleSwitchSpecifier + + + Title + CATEGORY_CONTROLS + Type + PSGroupSpecifier + + Key ctrl_sensitivity Title mmoptions_ctrl_sensitivity_title Type PSSliderSpecifier + DefaultValue + 0.5 + MinimumValue + 0 + MaximumValue + 1 + TextOffsetPixels + 110 + DefaultValue + NO + Key + ctrl_invertmouse + Title + mmoptions_ctrl_invertmouse_title + Type + PSToggleSwitchSpecifier + + + DefaultValue + NO + Key + ctrl_islefthanded + Title + mmoptions_ctrl_islefthanded_title + Type + PSToggleSwitchSpecifier + + + DefaultValue + NO + Key + ctrl_usetouchjoypad + Title + mmoptions_ctrl_usetouchjoypad_title + Type + PSToggleSwitchSpecifier + + + Title + CATEGORY_GAME + Type + PSGroupSpecifier + + + DefaultValue + NO + Key + game_difficulty + Title + mmoptions_game_difficultypeaceful_full + Type + PSToggleSwitchSpecifier + TrueValue + 0 + FalseValue + 2 + + + StringsTable + Root + Title + Minecraft - Pocket Edition + + diff --git a/project/iosproj/InAppSettings.bundle/Root.plist b/project/iosproj/InAppSettings.bundle/Root.plist new file mode 100755 index 0000000..aad5fdc --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/Root.plist @@ -0,0 +1,175 @@ + + + + + Title + WhereTo + StringsTable + Root + PreferenceSpecifiers + + + Title + Multiplayer + Type + PSGroupSpecifier + + + Type + PSToggleSwitchSpecifier + Title + TOGGLE_SWITCH + Key + toggleSwitch + DefaultValue + + + + Type + PSTitleValueSpecifier + Title + Root.plist is used in Settings.app on iOS 3.x + Key + version + DefaultValue + 1.0 + + + Type + PSGroupSpecifier + Title + MUL_VALUE_TITLE + + + Values + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + Titles + + MUL_VAL_1 + MUL_VAL_2 + MUL_VAL_3 + MUL_VAL_4 + MUL_VAL_5 + MUL_VAL_6 + MUL_VAL_7 + MUL_VAL_8 + MUL_VAL_9 + MUL_VAL_10 + MUL_VAL_11 + + Type + PSMultiValueSpecifier + Title + MUL_VAL + Key + mulValue + DefaultValue + 0 + + + Type + PSGroupSpecifier + Title + MUL_VAL_NO_TITLE + + + Values + + 1 + 0 + 2 + + Titles + + MUL_VAL_NO_TITLE_1 + MUL_VAL_NO_TITLE_2 + MUL_VAL_NO_TITLE_3 + + Type + PSMultiValueSpecifier + Title + MUL_VAL_NO_TITLE_NIL + Key + mulValueOther + DefaultValue + 0 + + + Type + PSGroupSpecifier + Title + TEXT_FIELD_TITLE + + + Type + PSTextFieldSpecifier + Title + TEXT_FIELD_SIG + Key + signature + + + Title + + Type + PSGroupSpecifier + FooterText + This is a Footer Text (supported by Settings.app in iOS 4 or higher) + + + Type + PSChildPaneSpecifier + Title + Complete List + File + Complete + + + Type + PSChildPaneSpecifier + Title + ADVANCED_TITLE + File + Advanced + + + Title + APPLICATION_INFO_TITLE + Type + PSGroupSpecifier + + + Type + PSTitleValueSpecifier + Title + VERSION + Key + version + DefaultValue + 1.0 + + + Type + PSTitleValueSpecifier + Title + Copyright + DefaultValue + Luc Vandal, Ortwin Gentz + Key + copyright + + + + diff --git a/project/iosproj/InAppSettings.bundle/Root~ipad.plist b/project/iosproj/InAppSettings.bundle/Root~ipad.plist new file mode 100755 index 0000000..5933bda --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/Root~ipad.plist @@ -0,0 +1,167 @@ + + + + + Title + WhereTo + StringsTable + Root + PreferenceSpecifiers + + + Title + TOGGLE_SWITCH_TITLE + FooterText + Root~ipad.plist is used on iPad in Settings.app running iOS 4.2 or higher + Type + PSGroupSpecifier + + + Type + PSToggleSwitchSpecifier + Title + TOGGLE_SWITCH + Key + toggleSwitch + DefaultValue + + + + Type + PSGroupSpecifier + Title + MUL_VALUE_TITLE + + + Values + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + Titles + + MUL_VAL_1 + MUL_VAL_2 + MUL_VAL_3 + MUL_VAL_4 + MUL_VAL_5 + MUL_VAL_6 + MUL_VAL_7 + MUL_VAL_8 + MUL_VAL_9 + MUL_VAL_10 + MUL_VAL_11 + + Type + PSMultiValueSpecifier + Title + MUL_VAL + Key + mulValue + DefaultValue + 0 + + + Type + PSGroupSpecifier + Title + MUL_VAL_NO_TITLE + + + Values + + 1 + 0 + 2 + + Titles + + MUL_VAL_NO_TITLE_1 + MUL_VAL_NO_TITLE_2 + MUL_VAL_NO_TITLE_3 + + Type + PSMultiValueSpecifier + Title + MUL_VAL_NO_TITLE_NIL + Key + mulValueOther + DefaultValue + 0 + + + Type + PSGroupSpecifier + Title + TEXT_FIELD_TITLE + + + Type + PSTextFieldSpecifier + Title + TEXT_FIELD_SIG + Key + signature + + + Title + + Type + PSGroupSpecifier + FooterText + This is a Footer Text (supported by Settings.app in iOS 4 or higher) + + + Type + PSChildPaneSpecifier + Title + Complete List + File + Complete + + + Type + PSChildPaneSpecifier + Title + ADVANCED_TITLE + File + Advanced + + + Title + APPLICATION_INFO_TITLE + Type + PSGroupSpecifier + + + Type + PSTitleValueSpecifier + Title + VERSION + Key + version + DefaultValue + 1.0 + + + Type + PSTitleValueSpecifier + Title + Copyright + DefaultValue + Luc Vandal, Ortwin Gentz + Key + copyright + + + + diff --git a/project/iosproj/InAppSettings.bundle/Root~iphone.plist b/project/iosproj/InAppSettings.bundle/Root~iphone.plist new file mode 100755 index 0000000..cac664b --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/Root~iphone.plist @@ -0,0 +1,167 @@ + + + + + Title + WhereTo + StringsTable + Root + PreferenceSpecifiers + + + Title + TOGGLE_SWITCH_TITLE + FooterText + Root~iphone.plist is used in Settings.app on iPhone running iOS 4 or higher + Type + PSGroupSpecifier + + + Type + PSToggleSwitchSpecifier + Title + TOGGLE_SWITCH + Key + toggleSwitch + DefaultValue + + + + Type + PSGroupSpecifier + Title + MUL_VALUE_TITLE + + + Values + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + Titles + + MUL_VAL_1 + MUL_VAL_2 + MUL_VAL_3 + MUL_VAL_4 + MUL_VAL_5 + MUL_VAL_6 + MUL_VAL_7 + MUL_VAL_8 + MUL_VAL_9 + MUL_VAL_10 + MUL_VAL_11 + + Type + PSMultiValueSpecifier + Title + MUL_VAL + Key + mulValue + DefaultValue + 0 + + + Type + PSGroupSpecifier + Title + MUL_VAL_NO_TITLE + + + Values + + 1 + 0 + 2 + + Titles + + MUL_VAL_NO_TITLE_1 + MUL_VAL_NO_TITLE_2 + MUL_VAL_NO_TITLE_3 + + Type + PSMultiValueSpecifier + Title + MUL_VAL_NO_TITLE_NIL + Key + mulValueOther + DefaultValue + 0 + + + Type + PSGroupSpecifier + Title + TEXT_FIELD_TITLE + + + Type + PSTextFieldSpecifier + Title + TEXT_FIELD_SIG + Key + signature + + + Title + + Type + PSGroupSpecifier + FooterText + This is a Footer Text (supported by Settings.app in iOS 4 or higher) + + + Type + PSChildPaneSpecifier + Title + Complete List + File + Complete + + + Type + PSChildPaneSpecifier + Title + ADVANCED_TITLE + File + Advanced + + + Title + APPLICATION_INFO_TITLE + Type + PSGroupSpecifier + + + Type + PSTitleValueSpecifier + Title + VERSION + Key + version + DefaultValue + 1.0 + + + Type + PSTitleValueSpecifier + Title + Copyright + DefaultValue + Luc Vandal, Ortwin Gentz + Key + copyright + + + + diff --git a/project/iosproj/InAppSettings.bundle/en.lproj/Root.strings b/project/iosproj/InAppSettings.bundle/en.lproj/Root.strings new file mode 100755 index 0000000..6323e0e Binary files /dev/null and b/project/iosproj/InAppSettings.bundle/en.lproj/Root.strings differ diff --git a/project/iosproj/InAppSettings.bundle/fast.png b/project/iosproj/InAppSettings.bundle/fast.png new file mode 100755 index 0000000..9a0269e Binary files /dev/null and b/project/iosproj/InAppSettings.bundle/fast.png differ diff --git a/project/iosproj/InAppSettings.bundle/slow.png b/project/iosproj/InAppSettings.bundle/slow.png new file mode 100755 index 0000000..7b7d17f Binary files /dev/null and b/project/iosproj/InAppSettings.bundle/slow.png differ diff --git a/project/iosproj/InAppSettings.bundle/userDefault.plist b/project/iosproj/InAppSettings.bundle/userDefault.plist new file mode 100755 index 0000000..7bbd6f7 --- /dev/null +++ b/project/iosproj/InAppSettings.bundle/userDefault.plist @@ -0,0 +1,109 @@ + + + + + PreferenceSpecifiers + + + Title + CATEGORY_MULTIPLAYER + Type + PSGroupSpecifier + + + Key + mp_username + Title + mmoptions_mp_username_title + Type + PSTextFieldSpecifier + + + DefaultValue + YES + Key + mp_server_visible_default + Title + mmoptions_mp_server_visible_default_title + Type + PSToggleSwitchSpecifier + + + Title + CATEGORY_GRAPHICS + Type + PSGroupSpecifier + + + DefaultValue + NO + Key + gfx_fancygraphics + Title + mmoptions_gfx_fancygraphics_title + Type + PSToggleSwitchSpecifier + + + DefaultValue + NO + Key + gfx_lowquality + Title + mmoptions_gfx_lowquality_title + Type + PSToggleSwitchSpecifier + + + Title + CATEGORY_CONTROLS + Type + PSGroupSpecifier + + + DefaultValue + NO + Key + ctrl_invertmouse + Title + mmoptions_ctrl_invertmouse_title + Type + PSToggleSwitchSpecifier + + + DefaultValue + NO + Key + ctrl_islefthanded + Title + mmoptions_ctrl_islefthanded_title + Type + PSToggleSwitchSpecifier + + + Title + CATEGORY_GAME + Type + PSGroupSpecifier + + + DefaultValue + NO + Key + game_difficultypeaceful + Title + mmoptions_game_difficultypeaceful_title + Type + PSToggleSwitchSpecifier + TrueValue + 0 + FalseValue + 2 + + + StringsTable + Root + Title + Minecraft - Pocket Edition + + diff --git a/project/iosproj/minecraftpe.xcodeproj/project.pbxproj b/project/iosproj/minecraftpe.xcodeproj/project.pbxproj new file mode 100755 index 0000000..b4f42b6 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/project.pbxproj @@ -0,0 +1,6056 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 04004533169EE72E003EB6FA /* clouds.png in Resources */ = {isa = PBXBuildFile; fileRef = 04004532169EE72E003EB6FA /* clouds.png */; }; + 0400453716A41236003EB6FA /* HeavyTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0400453516A41236003EB6FA /* HeavyTile.cpp */; }; + 0400453A16A4125C003EB6FA /* FallingTileRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0400453816A4125B003EB6FA /* FallingTileRenderer.cpp */; }; + 0413970716A82E1E008A9F1A /* ArmorItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0413970516A82E1E008A9F1A /* ArmorItem.cpp */; }; + 0413970D16A82E6B008A9F1A /* CraftingFilters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0413970916A82E6B008A9F1A /* CraftingFilters.cpp */; }; + 0413970E16A82E6B008A9F1A /* StonecutterScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0413970B16A82E6B008A9F1A /* StonecutterScreen.cpp */; }; + 0413971116A82E7B008A9F1A /* ArmorScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0413970F16A82E7B008A9F1A /* ArmorScreen.cpp */; }; + 0413971516A82EB9008A9F1A /* ArmorRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0413971216A82EB9008A9F1A /* ArmorRecipes.cpp */; }; + 0413971716A82EF5008A9F1A /* StairTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0413971616A82EF5008A9F1A /* StairTile.cpp */; }; + 0419D99B167F201B0080CB96 /* SheepFurModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D998167F201B0080CB96 /* SheepFurModel.cpp */; }; + 0419D99C167F201B0080CB96 /* SheepModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D999167F201B0080CB96 /* SheepModel.cpp */; }; + 0419D99F167F206A0080CB96 /* CommandServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D99D167F206A0080CB96 /* CommandServer.cpp */; }; + 0419D9A2167F20CC0080CB96 /* SheepRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9A1167F20CC0080CB96 /* SheepRenderer.cpp */; }; + 0419D9AB167F211B0080CB96 /* ChooseLevelScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9A4167F211B0080CB96 /* ChooseLevelScreen.cpp */; }; + 0419D9AC167F211B0080CB96 /* SimpleChooseLevelScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9A7167F211B0080CB96 /* SimpleChooseLevelScreen.cpp */; }; + 0419D9AD167F211B0080CB96 /* TextEditScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9A9167F211B0080CB96 /* TextEditScreen.cpp */; }; + 0419D9B2167F21BC0080CB96 /* PaneCraftingScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9AE167F21BC0080CB96 /* PaneCraftingScreen.cpp */; }; + 0419D9B3167F21BC0080CB96 /* WorkbenchScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9B0167F21BC0080CB96 /* WorkbenchScreen.cpp */; }; + 0419D9B7167F22150080CB96 /* AgableMob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9B5167F22150080CB96 /* AgableMob.cpp */; }; + 0419D9BA167F2A720080CB96 /* ShowKeyboardView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0419D9B9167F2A720080CB96 /* ShowKeyboardView.mm */; }; + 0425EBA016A94D14000C7483 /* chain_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9616A94D14000C7483 /* chain_1.png */; }; + 0425EBA116A94D14000C7483 /* chain_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9716A94D14000C7483 /* chain_2.png */; }; + 0425EBA216A94D14000C7483 /* cloth_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9816A94D14000C7483 /* cloth_1.png */; }; + 0425EBA316A94D14000C7483 /* cloth_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9916A94D14000C7483 /* cloth_2.png */; }; + 0425EBA416A94D14000C7483 /* diamond_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9A16A94D14000C7483 /* diamond_1.png */; }; + 0425EBA516A94D14000C7483 /* diamond_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9B16A94D14000C7483 /* diamond_2.png */; }; + 0425EBA616A94D14000C7483 /* gold_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9C16A94D14000C7483 /* gold_1.png */; }; + 0425EBA716A94D14000C7483 /* gold_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9D16A94D14000C7483 /* gold_2.png */; }; + 0425EBA816A94D14000C7483 /* iron_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9E16A94D14000C7483 /* iron_1.png */; }; + 0425EBA916A94D14000C7483 /* iron_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 0425EB9F16A94D14000C7483 /* iron_2.png */; }; + 042A91AD16B17517007ABBC6 /* GButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A116B17517007ABBC6 /* GButton.cpp */; }; + 042A91AE16B17517007ABBC6 /* GuiElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A316B17517007ABBC6 /* GuiElement.cpp */; }; + 042A91AF16B17517007ABBC6 /* NinePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A516B17517007ABBC6 /* NinePatch.cpp */; }; + 042A91B016B17517007ABBC6 /* OptionsGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A716B17517007ABBC6 /* OptionsGroup.cpp */; }; + 042A91B116B17517007ABBC6 /* OptionsPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A916B17517007ABBC6 /* OptionsPane.cpp */; }; + 042A91B216B17517007ABBC6 /* TextBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91AB16B17517007ABBC6 /* TextBox.cpp */; }; + 044129071682FF9600B70EE6 /* MouseHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 044129061682FF9600B70EE6 /* MouseHandler.cpp */; }; + 9D293CE716071C08000305C8 /* CreateNewWorld_iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */; }; + 9D293CE816071C08000305C8 /* CreateNewWorld_iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */; }; + 9D293CEB160720D6000305C8 /* worldname_iphone5_3.png in Resources */ = {isa = PBXBuildFile; fileRef = 9D293CEA160720D6000305C8 /* worldname_iphone5_3.png */; }; + 9D293CEC160720D6000305C8 /* worldname_iphone5_3.png in Resources */ = {isa = PBXBuildFile; fileRef = 9D293CEA160720D6000305C8 /* worldname_iphone5_3.png */; }; + D506D3E2161288BD0099FA65 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9D959AFF16036BEE00E23A6F /* Default-568h@2x.png */; }; + D51DC73614581D4E00E3D761 /* itemframe.png in Resources */ = {isa = PBXBuildFile; fileRef = D51DC73514581D4E00E3D761 /* itemframe.png */; }; + D51DC74314592B8B00E3D761 /* PVRTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = D51DC74214592B8A00E3D761 /* PVRTexture.m */; }; + D5251DAB1538192700FC82C8 /* _FindFirst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CB61538192700FC82C8 /* _FindFirst.cpp */; }; + D5251DAC1538192700FC82C8 /* _FindFirst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CB61538192700FC82C8 /* _FindFirst.cpp */; }; + D5251DAD1538192700FC82C8 /* BitStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CBA1538192700FC82C8 /* BitStream.cpp */; }; + D5251DAE1538192700FC82C8 /* BitStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CBA1538192700FC82C8 /* BitStream.cpp */; }; + D5251DAF1538192700FC82C8 /* CCRakNetSlidingWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CBC1538192700FC82C8 /* CCRakNetSlidingWindow.cpp */; }; + D5251DB01538192700FC82C8 /* CCRakNetSlidingWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CBC1538192700FC82C8 /* CCRakNetSlidingWindow.cpp */; }; + D5251DB11538192700FC82C8 /* CCRakNetUDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CBE1538192700FC82C8 /* CCRakNetUDT.cpp */; }; + D5251DB21538192700FC82C8 /* CCRakNetUDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CBE1538192700FC82C8 /* CCRakNetUDT.cpp */; }; + D5251DB31538192700FC82C8 /* CheckSum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC01538192700FC82C8 /* CheckSum.cpp */; }; + D5251DB41538192700FC82C8 /* CheckSum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC01538192700FC82C8 /* CheckSum.cpp */; }; + D5251DB51538192700FC82C8 /* CloudClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC21538192700FC82C8 /* CloudClient.cpp */; }; + D5251DB61538192700FC82C8 /* CloudClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC21538192700FC82C8 /* CloudClient.cpp */; }; + D5251DB71538192700FC82C8 /* CloudCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC41538192700FC82C8 /* CloudCommon.cpp */; }; + D5251DB81538192700FC82C8 /* CloudCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC41538192700FC82C8 /* CloudCommon.cpp */; }; + D5251DB91538192700FC82C8 /* CloudServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC61538192700FC82C8 /* CloudServer.cpp */; }; + D5251DBA1538192700FC82C8 /* CloudServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC61538192700FC82C8 /* CloudServer.cpp */; }; + D5251DBB1538192700FC82C8 /* CMakeLists.txt in Resources */ = {isa = PBXBuildFile; fileRef = D5251CC81538192700FC82C8 /* CMakeLists.txt */; }; + D5251DBC1538192700FC82C8 /* CMakeLists.txt in Resources */ = {isa = PBXBuildFile; fileRef = D5251CC81538192700FC82C8 /* CMakeLists.txt */; }; + D5251DBD1538192700FC82C8 /* CommandParserInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC91538192700FC82C8 /* CommandParserInterface.cpp */; }; + D5251DBE1538192700FC82C8 /* CommandParserInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CC91538192700FC82C8 /* CommandParserInterface.cpp */; }; + D5251DBF1538192700FC82C8 /* ConnectionGraph2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CCB1538192700FC82C8 /* ConnectionGraph2.cpp */; }; + D5251DC01538192700FC82C8 /* ConnectionGraph2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CCB1538192700FC82C8 /* ConnectionGraph2.cpp */; }; + D5251DC11538192700FC82C8 /* ConsoleServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CCD1538192700FC82C8 /* ConsoleServer.cpp */; }; + D5251DC21538192700FC82C8 /* ConsoleServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CCD1538192700FC82C8 /* ConsoleServer.cpp */; }; + D5251DC31538192700FC82C8 /* DataCompressor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CCF1538192700FC82C8 /* DataCompressor.cpp */; }; + D5251DC41538192700FC82C8 /* DataCompressor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CCF1538192700FC82C8 /* DataCompressor.cpp */; }; + D5251DC51538192700FC82C8 /* DirectoryDeltaTransfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CD11538192700FC82C8 /* DirectoryDeltaTransfer.cpp */; }; + D5251DC61538192700FC82C8 /* DirectoryDeltaTransfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CD11538192700FC82C8 /* DirectoryDeltaTransfer.cpp */; }; + D5251DC71538192700FC82C8 /* DS_BytePool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CD51538192700FC82C8 /* DS_BytePool.cpp */; }; + D5251DC81538192700FC82C8 /* DS_BytePool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CD51538192700FC82C8 /* DS_BytePool.cpp */; }; + D5251DC91538192700FC82C8 /* DS_ByteQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CD71538192700FC82C8 /* DS_ByteQueue.cpp */; }; + D5251DCA1538192700FC82C8 /* DS_ByteQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CD71538192700FC82C8 /* DS_ByteQueue.cpp */; }; + D5251DCB1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CDB1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp */; }; + D5251DCC1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CDB1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp */; }; + D5251DCD1538192700FC82C8 /* DS_Table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CE91538192700FC82C8 /* DS_Table.cpp */; }; + D5251DCE1538192700FC82C8 /* DS_Table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CE91538192700FC82C8 /* DS_Table.cpp */; }; + D5251DCF1538192700FC82C8 /* DynDNS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CEE1538192700FC82C8 /* DynDNS.cpp */; }; + D5251DD01538192700FC82C8 /* DynDNS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CEE1538192700FC82C8 /* DynDNS.cpp */; }; + D5251DD11538192700FC82C8 /* EmailSender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF01538192700FC82C8 /* EmailSender.cpp */; }; + D5251DD21538192700FC82C8 /* EmailSender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF01538192700FC82C8 /* EmailSender.cpp */; }; + D5251DD31538192700FC82C8 /* EncodeClassName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF21538192700FC82C8 /* EncodeClassName.cpp */; }; + D5251DD41538192700FC82C8 /* EncodeClassName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF21538192700FC82C8 /* EncodeClassName.cpp */; }; + D5251DD51538192700FC82C8 /* EpochTimeToString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF31538192700FC82C8 /* EpochTimeToString.cpp */; }; + D5251DD61538192700FC82C8 /* EpochTimeToString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF31538192700FC82C8 /* EpochTimeToString.cpp */; }; + D5251DD71538192700FC82C8 /* FileList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF61538192700FC82C8 /* FileList.cpp */; }; + D5251DD81538192700FC82C8 /* FileList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF61538192700FC82C8 /* FileList.cpp */; }; + D5251DD91538192700FC82C8 /* FileListTransfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF91538192700FC82C8 /* FileListTransfer.cpp */; }; + D5251DDA1538192700FC82C8 /* FileListTransfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CF91538192700FC82C8 /* FileListTransfer.cpp */; }; + D5251DDB1538192700FC82C8 /* FileOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CFC1538192700FC82C8 /* FileOperations.cpp */; }; + D5251DDC1538192700FC82C8 /* FileOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CFC1538192700FC82C8 /* FileOperations.cpp */; }; + D5251DDD1538192700FC82C8 /* FormatString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CFE1538192700FC82C8 /* FormatString.cpp */; }; + D5251DDE1538192700FC82C8 /* FormatString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251CFE1538192700FC82C8 /* FormatString.cpp */; }; + D5251DDF1538192700FC82C8 /* FullyConnectedMesh2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D001538192700FC82C8 /* FullyConnectedMesh2.cpp */; }; + D5251DE01538192700FC82C8 /* FullyConnectedMesh2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D001538192700FC82C8 /* FullyConnectedMesh2.cpp */; }; + D5251DE11538192700FC82C8 /* Getche.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D021538192700FC82C8 /* Getche.cpp */; }; + D5251DE21538192700FC82C8 /* Getche.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D021538192700FC82C8 /* Getche.cpp */; }; + D5251DE31538192700FC82C8 /* Gets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D041538192700FC82C8 /* Gets.cpp */; }; + D5251DE41538192700FC82C8 /* Gets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D041538192700FC82C8 /* Gets.cpp */; }; + D5251DE51538192700FC82C8 /* GetTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D061538192700FC82C8 /* GetTime.cpp */; }; + D5251DE61538192700FC82C8 /* GetTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D061538192700FC82C8 /* GetTime.cpp */; }; + D5251DE71538192700FC82C8 /* gettimeofday.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D081538192700FC82C8 /* gettimeofday.cpp */; }; + D5251DE81538192700FC82C8 /* gettimeofday.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D081538192700FC82C8 /* gettimeofday.cpp */; }; + D5251DE91538192700FC82C8 /* GridSectorizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D0A1538192700FC82C8 /* GridSectorizer.cpp */; }; + D5251DEA1538192700FC82C8 /* GridSectorizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D0A1538192700FC82C8 /* GridSectorizer.cpp */; }; + D5251DEB1538192700FC82C8 /* HTTPConnection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D0C1538192700FC82C8 /* HTTPConnection.cpp */; }; + D5251DEC1538192700FC82C8 /* HTTPConnection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D0C1538192700FC82C8 /* HTTPConnection.cpp */; }; + D5251DED1538192700FC82C8 /* IncrementalReadInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D0E1538192700FC82C8 /* IncrementalReadInterface.cpp */; }; + D5251DEE1538192700FC82C8 /* IncrementalReadInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D0E1538192700FC82C8 /* IncrementalReadInterface.cpp */; }; + D5251DEF1538192700FC82C8 /* Itoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D111538192700FC82C8 /* Itoa.cpp */; }; + D5251DF01538192700FC82C8 /* Itoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D111538192700FC82C8 /* Itoa.cpp */; }; + D5251DF11538192700FC82C8 /* LinuxStrings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D141538192700FC82C8 /* LinuxStrings.cpp */; }; + D5251DF21538192700FC82C8 /* LinuxStrings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D141538192700FC82C8 /* LinuxStrings.cpp */; }; + D5251DF31538192700FC82C8 /* LocklessTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D161538192700FC82C8 /* LocklessTypes.cpp */; }; + D5251DF41538192700FC82C8 /* LocklessTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D161538192700FC82C8 /* LocklessTypes.cpp */; }; + D5251DF51538192700FC82C8 /* LogCommandParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D181538192700FC82C8 /* LogCommandParser.cpp */; }; + D5251DF61538192700FC82C8 /* LogCommandParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D181538192700FC82C8 /* LogCommandParser.cpp */; }; + D5251DF71538192700FC82C8 /* MessageFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D1A1538192700FC82C8 /* MessageFilter.cpp */; }; + D5251DF81538192700FC82C8 /* MessageFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D1A1538192700FC82C8 /* MessageFilter.cpp */; }; + D5251DF91538192700FC82C8 /* NatPunchthroughClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D211538192700FC82C8 /* NatPunchthroughClient.cpp */; }; + D5251DFA1538192700FC82C8 /* NatPunchthroughClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D211538192700FC82C8 /* NatPunchthroughClient.cpp */; }; + D5251DFB1538192700FC82C8 /* NatPunchthroughServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D231538192700FC82C8 /* NatPunchthroughServer.cpp */; }; + D5251DFC1538192700FC82C8 /* NatPunchthroughServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D231538192700FC82C8 /* NatPunchthroughServer.cpp */; }; + D5251DFD1538192700FC82C8 /* NatTypeDetectionClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D251538192700FC82C8 /* NatTypeDetectionClient.cpp */; }; + D5251DFE1538192700FC82C8 /* NatTypeDetectionClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D251538192700FC82C8 /* NatTypeDetectionClient.cpp */; }; + D5251DFF1538192700FC82C8 /* NatTypeDetectionCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D271538192700FC82C8 /* NatTypeDetectionCommon.cpp */; }; + D5251E001538192700FC82C8 /* NatTypeDetectionCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D271538192700FC82C8 /* NatTypeDetectionCommon.cpp */; }; + D5251E011538192700FC82C8 /* NatTypeDetectionServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D291538192700FC82C8 /* NatTypeDetectionServer.cpp */; }; + D5251E021538192700FC82C8 /* NatTypeDetectionServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D291538192700FC82C8 /* NatTypeDetectionServer.cpp */; }; + D5251E031538192700FC82C8 /* NetworkIDManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D2B1538192700FC82C8 /* NetworkIDManager.cpp */; }; + D5251E041538192700FC82C8 /* NetworkIDManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D2B1538192700FC82C8 /* NetworkIDManager.cpp */; }; + D5251E051538192700FC82C8 /* NetworkIDObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D2D1538192700FC82C8 /* NetworkIDObject.cpp */; }; + D5251E061538192700FC82C8 /* NetworkIDObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D2D1538192700FC82C8 /* NetworkIDObject.cpp */; }; + D5251E071538192700FC82C8 /* PacketConsoleLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D2F1538192700FC82C8 /* PacketConsoleLogger.cpp */; }; + D5251E081538192700FC82C8 /* PacketConsoleLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D2F1538192700FC82C8 /* PacketConsoleLogger.cpp */; }; + D5251E091538192700FC82C8 /* PacketFileLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D311538192700FC82C8 /* PacketFileLogger.cpp */; }; + D5251E0A1538192700FC82C8 /* PacketFileLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D311538192700FC82C8 /* PacketFileLogger.cpp */; }; + D5251E0B1538192700FC82C8 /* PacketizedTCP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D331538192700FC82C8 /* PacketizedTCP.cpp */; }; + D5251E0C1538192700FC82C8 /* PacketizedTCP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D331538192700FC82C8 /* PacketizedTCP.cpp */; }; + D5251E0D1538192700FC82C8 /* PacketLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D351538192700FC82C8 /* PacketLogger.cpp */; }; + D5251E0E1538192700FC82C8 /* PacketLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D351538192700FC82C8 /* PacketLogger.cpp */; }; + D5251E0F1538192700FC82C8 /* PacketOutputWindowLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D371538192700FC82C8 /* PacketOutputWindowLogger.cpp */; }; + D5251E101538192700FC82C8 /* PacketOutputWindowLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D371538192700FC82C8 /* PacketOutputWindowLogger.cpp */; }; + D5251E111538192700FC82C8 /* PluginInterface2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D3B1538192700FC82C8 /* PluginInterface2.cpp */; }; + D5251E121538192700FC82C8 /* PluginInterface2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D3B1538192700FC82C8 /* PluginInterface2.cpp */; }; + D5251E131538192700FC82C8 /* Rackspace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D3E1538192700FC82C8 /* Rackspace.cpp */; }; + D5251E141538192700FC82C8 /* Rackspace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D3E1538192700FC82C8 /* Rackspace.cpp */; }; + D5251E151538192700FC82C8 /* RakMemoryOverride.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D421538192700FC82C8 /* RakMemoryOverride.cpp */; }; + D5251E161538192700FC82C8 /* RakMemoryOverride.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D421538192700FC82C8 /* RakMemoryOverride.cpp */; }; + D5251E1D1538192700FC82C8 /* RakNetCommandParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D471538192700FC82C8 /* RakNetCommandParser.cpp */; }; + D5251E1E1538192700FC82C8 /* RakNetCommandParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D471538192700FC82C8 /* RakNetCommandParser.cpp */; }; + D5251E1F1538192700FC82C8 /* RakNetSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D4C1538192700FC82C8 /* RakNetSocket.cpp */; }; + D5251E201538192700FC82C8 /* RakNetSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D4C1538192700FC82C8 /* RakNetSocket.cpp */; }; + D5251E211538192700FC82C8 /* RakNetStatistics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D4E1538192700FC82C8 /* RakNetStatistics.cpp */; }; + D5251E221538192700FC82C8 /* RakNetStatistics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D4E1538192700FC82C8 /* RakNetStatistics.cpp */; }; + D5251E231538192700FC82C8 /* RakNetTransport2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D511538192700FC82C8 /* RakNetTransport2.cpp */; }; + D5251E241538192700FC82C8 /* RakNetTransport2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D511538192700FC82C8 /* RakNetTransport2.cpp */; }; + D5251E251538192700FC82C8 /* RakNetTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D531538192700FC82C8 /* RakNetTypes.cpp */; }; + D5251E261538192700FC82C8 /* RakNetTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D531538192700FC82C8 /* RakNetTypes.cpp */; }; + D5251E271538192700FC82C8 /* RakPeer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D561538192700FC82C8 /* RakPeer.cpp */; }; + D5251E281538192700FC82C8 /* RakPeer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D561538192700FC82C8 /* RakPeer.cpp */; }; + D5251E291538192700FC82C8 /* RakSleep.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D591538192700FC82C8 /* RakSleep.cpp */; }; + D5251E2A1538192700FC82C8 /* RakSleep.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D591538192700FC82C8 /* RakSleep.cpp */; }; + D5251E2B1538192700FC82C8 /* RakString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D5B1538192700FC82C8 /* RakString.cpp */; }; + D5251E2C1538192700FC82C8 /* RakString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D5B1538192700FC82C8 /* RakString.cpp */; }; + D5251E2D1538192700FC82C8 /* RakThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D5D1538192700FC82C8 /* RakThread.cpp */; }; + D5251E2E1538192700FC82C8 /* RakThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D5D1538192700FC82C8 /* RakThread.cpp */; }; + D5251E2F1538192700FC82C8 /* RakWString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D5F1538192700FC82C8 /* RakWString.cpp */; }; + D5251E301538192700FC82C8 /* RakWString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D5F1538192700FC82C8 /* RakWString.cpp */; }; + D5251E311538192700FC82C8 /* Rand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D611538192700FC82C8 /* Rand.cpp */; }; + D5251E321538192700FC82C8 /* Rand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D611538192700FC82C8 /* Rand.cpp */; }; + D5251E331538192700FC82C8 /* rdlmalloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D641538192700FC82C8 /* rdlmalloc.cpp */; }; + D5251E341538192700FC82C8 /* rdlmalloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D641538192700FC82C8 /* rdlmalloc.cpp */; }; + D5251E351538192700FC82C8 /* ReadyEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D661538192700FC82C8 /* ReadyEvent.cpp */; }; + D5251E361538192700FC82C8 /* ReadyEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D661538192700FC82C8 /* ReadyEvent.cpp */; }; + D5251E371538192700FC82C8 /* ReliabilityLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D691538192700FC82C8 /* ReliabilityLayer.cpp */; }; + D5251E381538192700FC82C8 /* ReliabilityLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D691538192700FC82C8 /* ReliabilityLayer.cpp */; }; + D5251E391538192700FC82C8 /* ReplicaManager3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D6C1538192700FC82C8 /* ReplicaManager3.cpp */; }; + D5251E3A1538192700FC82C8 /* ReplicaManager3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D6C1538192700FC82C8 /* ReplicaManager3.cpp */; }; + D5251E3B1538192700FC82C8 /* Router2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D6E1538192700FC82C8 /* Router2.cpp */; }; + D5251E3C1538192700FC82C8 /* Router2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D6E1538192700FC82C8 /* Router2.cpp */; }; + D5251E3D1538192700FC82C8 /* RPC4Plugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D701538192700FC82C8 /* RPC4Plugin.cpp */; }; + D5251E3E1538192700FC82C8 /* RPC4Plugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D701538192700FC82C8 /* RPC4Plugin.cpp */; }; + D5251E3F1538192700FC82C8 /* SecureHandshake.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D721538192700FC82C8 /* SecureHandshake.cpp */; }; + D5251E401538192700FC82C8 /* SecureHandshake.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D721538192700FC82C8 /* SecureHandshake.cpp */; }; + D5251E411538192700FC82C8 /* SendToThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D741538192700FC82C8 /* SendToThread.cpp */; }; + D5251E421538192700FC82C8 /* SendToThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D741538192700FC82C8 /* SendToThread.cpp */; }; + D5251E431538192700FC82C8 /* SHA1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D761538192700FC82C8 /* SHA1.cpp */; }; + D5251E441538192700FC82C8 /* SHA1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D761538192700FC82C8 /* SHA1.cpp */; }; + D5251E451538192700FC82C8 /* SignaledEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D781538192700FC82C8 /* SignaledEvent.cpp */; }; + D5251E461538192700FC82C8 /* SignaledEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D781538192700FC82C8 /* SignaledEvent.cpp */; }; + D5251E471538192700FC82C8 /* SimpleMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D7A1538192700FC82C8 /* SimpleMutex.cpp */; }; + D5251E481538192700FC82C8 /* SimpleMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D7A1538192700FC82C8 /* SimpleMutex.cpp */; }; + D5251E491538192700FC82C8 /* SocketLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D801538192700FC82C8 /* SocketLayer.cpp */; }; + D5251E4A1538192700FC82C8 /* SocketLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D801538192700FC82C8 /* SocketLayer.cpp */; }; + D5251E4B1538192700FC82C8 /* StringCompressor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D821538192700FC82C8 /* StringCompressor.cpp */; }; + D5251E4C1538192700FC82C8 /* StringCompressor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D821538192700FC82C8 /* StringCompressor.cpp */; }; + D5251E4D1538192700FC82C8 /* StringTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D841538192700FC82C8 /* StringTable.cpp */; }; + D5251E4E1538192700FC82C8 /* StringTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D841538192700FC82C8 /* StringTable.cpp */; }; + D5251E4F1538192700FC82C8 /* SuperFastHash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D861538192700FC82C8 /* SuperFastHash.cpp */; }; + D5251E501538192700FC82C8 /* SuperFastHash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D861538192700FC82C8 /* SuperFastHash.cpp */; }; + D5251E511538192700FC82C8 /* TableSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D881538192700FC82C8 /* TableSerializer.cpp */; }; + D5251E521538192700FC82C8 /* TableSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D881538192700FC82C8 /* TableSerializer.cpp */; }; + D5251E531538192700FC82C8 /* TCPInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D8A1538192700FC82C8 /* TCPInterface.cpp */; }; + D5251E541538192700FC82C8 /* TCPInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D8A1538192700FC82C8 /* TCPInterface.cpp */; }; + D5251E551538192700FC82C8 /* TeamBalancer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D8C1538192700FC82C8 /* TeamBalancer.cpp */; }; + D5251E561538192700FC82C8 /* TeamBalancer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D8C1538192700FC82C8 /* TeamBalancer.cpp */; }; + D5251E571538192700FC82C8 /* TelnetTransport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D8E1538192700FC82C8 /* TelnetTransport.cpp */; }; + D5251E581538192700FC82C8 /* TelnetTransport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D8E1538192700FC82C8 /* TelnetTransport.cpp */; }; + D5251E591538192700FC82C8 /* ThreadsafePacketLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D911538192700FC82C8 /* ThreadsafePacketLogger.cpp */; }; + D5251E5A1538192700FC82C8 /* ThreadsafePacketLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D911538192700FC82C8 /* ThreadsafePacketLogger.cpp */; }; + D5251E5B1538192700FC82C8 /* TwoWayAuthentication.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D941538192700FC82C8 /* TwoWayAuthentication.cpp */; }; + D5251E5C1538192700FC82C8 /* TwoWayAuthentication.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D941538192700FC82C8 /* TwoWayAuthentication.cpp */; }; + D5251E5D1538192700FC82C8 /* UDPForwarder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D961538192700FC82C8 /* UDPForwarder.cpp */; }; + D5251E5E1538192700FC82C8 /* UDPForwarder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D961538192700FC82C8 /* UDPForwarder.cpp */; }; + D5251E5F1538192700FC82C8 /* UDPProxyClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D981538192700FC82C8 /* UDPProxyClient.cpp */; }; + D5251E601538192700FC82C8 /* UDPProxyClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D981538192700FC82C8 /* UDPProxyClient.cpp */; }; + D5251E611538192700FC82C8 /* UDPProxyCoordinator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D9B1538192700FC82C8 /* UDPProxyCoordinator.cpp */; }; + D5251E621538192700FC82C8 /* UDPProxyCoordinator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D9B1538192700FC82C8 /* UDPProxyCoordinator.cpp */; }; + D5251E631538192700FC82C8 /* UDPProxyServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D9D1538192700FC82C8 /* UDPProxyServer.cpp */; }; + D5251E641538192700FC82C8 /* UDPProxyServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D9D1538192700FC82C8 /* UDPProxyServer.cpp */; }; + D5251E651538192700FC82C8 /* VariableDeltaSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D9F1538192700FC82C8 /* VariableDeltaSerializer.cpp */; }; + D5251E661538192700FC82C8 /* VariableDeltaSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251D9F1538192700FC82C8 /* VariableDeltaSerializer.cpp */; }; + D5251E671538192700FC82C8 /* VariableListDeltaTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA11538192700FC82C8 /* VariableListDeltaTracker.cpp */; }; + D5251E681538192700FC82C8 /* VariableListDeltaTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA11538192700FC82C8 /* VariableListDeltaTracker.cpp */; }; + D5251E691538192700FC82C8 /* VariadicSQLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA31538192700FC82C8 /* VariadicSQLParser.cpp */; }; + D5251E6A1538192700FC82C8 /* VariadicSQLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA31538192700FC82C8 /* VariadicSQLParser.cpp */; }; + D5251E6B1538192700FC82C8 /* VitaIncludes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA51538192700FC82C8 /* VitaIncludes.cpp */; }; + D5251E6C1538192700FC82C8 /* VitaIncludes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA51538192700FC82C8 /* VitaIncludes.cpp */; }; + D5251E6D1538192700FC82C8 /* WSAStartupSingleton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA81538192700FC82C8 /* WSAStartupSingleton.cpp */; }; + D5251E6E1538192700FC82C8 /* WSAStartupSingleton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5251DA81538192700FC82C8 /* WSAStartupSingleton.cpp */; }; + D5251E7015381D0500FC82C8 /* spritesheet.png in Resources */ = {isa = PBXBuildFile; fileRef = D5251E6F15381D0500FC82C8 /* spritesheet.png */; }; + D5251E7115381D0500FC82C8 /* spritesheet.png in Resources */ = {isa = PBXBuildFile; fileRef = D5251E6F15381D0500FC82C8 /* spritesheet.png */; }; + D5251E74153823DC00FC82C8 /* en_US.lang in Resources */ = {isa = PBXBuildFile; fileRef = D5251E73153823DC00FC82C8 /* en_US.lang */; }; + D5251E75153823DC00FC82C8 /* en_US.lang in Resources */ = {isa = PBXBuildFile; fileRef = D5251E73153823DC00FC82C8 /* en_US.lang */; }; + D5251E911539A9AF00FC82C8 /* SoundEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5251E901539A9AF00FC82C8 /* SoundEngine.mm */; }; + D5251E921539A9AF00FC82C8 /* SoundEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5251E901539A9AF00FC82C8 /* SoundEngine.mm */; }; + D54493EF15D13BF0005FA9B0 /* BedTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493EA15D13BF0005FA9B0 /* BedTile.cpp */; }; + D54493F015D13BF0005FA9B0 /* BedTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493EA15D13BF0005FA9B0 /* BedTile.cpp */; }; + D54493F115D13BF0005FA9B0 /* CropTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493EC15D13BF0005FA9B0 /* CropTile.cpp */; }; + D54493F215D13BF0005FA9B0 /* CropTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493EC15D13BF0005FA9B0 /* CropTile.cpp */; }; + D54493F315D13BF0005FA9B0 /* GrassTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493EE15D13BF0005FA9B0 /* GrassTile.cpp */; }; + D54493F415D13BF0005FA9B0 /* GrassTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493EE15D13BF0005FA9B0 /* GrassTile.cpp */; }; + D54493F915D13C35005FA9B0 /* HoeItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493F615D13C35005FA9B0 /* HoeItem.cpp */; }; + D54493FA15D13C35005FA9B0 /* HoeItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493F615D13C35005FA9B0 /* HoeItem.cpp */; }; + D54493FD15D13C59005FA9B0 /* BedItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493FB15D13C59005FA9B0 /* BedItem.cpp */; }; + D54493FE15D13C59005FA9B0 /* BedItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D54493FB15D13C59005FA9B0 /* BedItem.cpp */; }; + D544940815D13DB7005FA9B0 /* ServerLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544940415D13DB7005FA9B0 /* ServerLevel.cpp */; }; + D544940915D13DB7005FA9B0 /* ServerLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544940415D13DB7005FA9B0 /* ServerLevel.cpp */; }; + D544940A15D13DB7005FA9B0 /* ServerPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544940615D13DB7005FA9B0 /* ServerPlayer.cpp */; }; + D544940B15D13DB7005FA9B0 /* ServerPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544940615D13DB7005FA9B0 /* ServerPlayer.cpp */; }; + D544941015D13E27005FA9B0 /* SimpleFoodData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544940E15D13E27005FA9B0 /* SimpleFoodData.cpp */; }; + D544941115D13E27005FA9B0 /* SimpleFoodData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544940E15D13E27005FA9B0 /* SimpleFoodData.cpp */; }; + D544941315D13E5A005FA9B0 /* FolderMethods.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941215D13E5A005FA9B0 /* FolderMethods.cpp */; }; + D544941415D13E5A005FA9B0 /* FolderMethods.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941215D13E5A005FA9B0 /* FolderMethods.cpp */; }; + D544941615D13EE3005FA9B0 /* LevelStorageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941515D13EE3005FA9B0 /* LevelStorageSource.cpp */; }; + D544941715D13EE3005FA9B0 /* LevelStorageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941515D13EE3005FA9B0 /* LevelStorageSource.cpp */; }; + D544941A15D13F06005FA9B0 /* TallGrass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941815D13F06005FA9B0 /* TallGrass.cpp */; }; + D544941B15D13F06005FA9B0 /* TallGrass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941815D13F06005FA9B0 /* TallGrass.cpp */; }; + D544941E15D13F45005FA9B0 /* PlayerRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941C15D13F45005FA9B0 /* PlayerRenderer.cpp */; }; + D544941F15D13F45005FA9B0 /* PlayerRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544941C15D13F45005FA9B0 /* PlayerRenderer.cpp */; }; + D544942215D13F5E005FA9B0 /* RemotePlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544942015D13F5E005FA9B0 /* RemotePlayer.cpp */; }; + D544942315D13F5E005FA9B0 /* RemotePlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D544942015D13F5E005FA9B0 /* RemotePlayer.cpp */; }; + D54954F814E38FFC00685A35 /* cancel_0_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954EC14E38FFC00685A35 /* cancel_0_1.png */; }; + D54954F914E38FFC00685A35 /* cancel_0_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954EC14E38FFC00685A35 /* cancel_0_1.png */; }; + D54954FA14E38FFC00685A35 /* cancel_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954ED14E38FFC00685A35 /* cancel_0_3.png */; }; + D54954FB14E38FFC00685A35 /* cancel_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954ED14E38FFC00685A35 /* cancel_0_3.png */; }; + D54954FC14E38FFC00685A35 /* cancel_1_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954EE14E38FFC00685A35 /* cancel_1_1.png */; }; + D54954FD14E38FFC00685A35 /* cancel_1_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954EE14E38FFC00685A35 /* cancel_1_1.png */; }; + D54954FE14E38FFC00685A35 /* cancel_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954EF14E38FFC00685A35 /* cancel_1_3.png */; }; + D54954FF14E38FFC00685A35 /* cancel_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954EF14E38FFC00685A35 /* cancel_1_3.png */; }; + D549550014E38FFC00685A35 /* create_0_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F014E38FFC00685A35 /* create_0_1.png */; }; + D549550114E38FFC00685A35 /* create_0_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F014E38FFC00685A35 /* create_0_1.png */; }; + D549550214E38FFC00685A35 /* create_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F114E38FFC00685A35 /* create_0_3.png */; }; + D549550314E38FFC00685A35 /* create_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F114E38FFC00685A35 /* create_0_3.png */; }; + D549550414E38FFC00685A35 /* create_1_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F214E38FFC00685A35 /* create_1_1.png */; }; + D549550514E38FFC00685A35 /* create_1_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F214E38FFC00685A35 /* create_1_1.png */; }; + D549550614E38FFC00685A35 /* create_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F314E38FFC00685A35 /* create_1_3.png */; }; + D549550714E38FFC00685A35 /* create_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F314E38FFC00685A35 /* create_1_3.png */; }; + D549550814E38FFC00685A35 /* creative_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F414E38FFC00685A35 /* creative_0_3.png */; }; + D549550914E38FFC00685A35 /* creative_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F414E38FFC00685A35 /* creative_0_3.png */; }; + D549550A14E38FFC00685A35 /* survival_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F514E38FFC00685A35 /* survival_0_3.png */; }; + D549550B14E38FFC00685A35 /* survival_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F514E38FFC00685A35 /* survival_0_3.png */; }; + D549550C14E38FFC00685A35 /* worldname.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F614E38FFC00685A35 /* worldname.png */; }; + D549550D14E38FFC00685A35 /* worldname.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F614E38FFC00685A35 /* worldname.png */; }; + D549550E14E38FFC00685A35 /* worldname_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F714E38FFC00685A35 /* worldname_3.png */; }; + D549550F14E38FFC00685A35 /* worldname_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D54954F714E38FFC00685A35 /* worldname_3.png */; }; + D549551514E3D86D00685A35 /* worldname_ipad_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551114E3D86B00685A35 /* worldname_ipad_3.png */; }; + D549551614E3D86D00685A35 /* worldname_ipad_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551114E3D86B00685A35 /* worldname_ipad_3.png */; }; + D549551714E3D86D00685A35 /* worldname_ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551214E3D86B00685A35 /* worldname_ipad.png */; }; + D549551814E3D86D00685A35 /* worldname_ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551214E3D86B00685A35 /* worldname_ipad.png */; }; + D549551914E3D86D00685A35 /* worldname_iphone_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551314E3D86C00685A35 /* worldname_iphone_3.png */; }; + D549551A14E3D86D00685A35 /* worldname_iphone_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551314E3D86C00685A35 /* worldname_iphone_3.png */; }; + D549551B14E3D86D00685A35 /* worldname_iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551414E3D86D00685A35 /* worldname_iphone.png */; }; + D549551C14E3D86D00685A35 /* worldname_iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551414E3D86D00685A35 /* worldname_iphone.png */; }; + D549551F14E3DC4400685A35 /* creative_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551D14E3DC4300685A35 /* creative_1_3.png */; }; + D549552014E3DC4400685A35 /* creative_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551D14E3DC4300685A35 /* creative_1_3.png */; }; + D549552114E3DC4400685A35 /* survival_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551E14E3DC4300685A35 /* survival_1_3.png */; }; + D549552214E3DC4400685A35 /* survival_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D549551E14E3DC4300685A35 /* survival_1_3.png */; }; + D549552D14E3EA0B00685A35 /* cancel_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552414E3EA0B00685A35 /* cancel_0_4.png */; }; + D549552E14E3EA0B00685A35 /* cancel_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552414E3EA0B00685A35 /* cancel_0_4.png */; }; + D549552F14E3EA0B00685A35 /* cancel_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552514E3EA0B00685A35 /* cancel_1_4.png */; }; + D549553014E3EA0B00685A35 /* cancel_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552514E3EA0B00685A35 /* cancel_1_4.png */; }; + D549553114E3EA0B00685A35 /* create_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552614E3EA0B00685A35 /* create_0_4.png */; }; + D549553214E3EA0B00685A35 /* create_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552614E3EA0B00685A35 /* create_0_4.png */; }; + D549553314E3EA0B00685A35 /* create_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552714E3EA0B00685A35 /* create_1_4.png */; }; + D549553414E3EA0B00685A35 /* create_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552714E3EA0B00685A35 /* create_1_4.png */; }; + D549553514E3EA0B00685A35 /* creative_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552814E3EA0B00685A35 /* creative_1_4.png */; }; + D549553614E3EA0B00685A35 /* creative_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552814E3EA0B00685A35 /* creative_1_4.png */; }; + D549553914E3EA0B00685A35 /* survival_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552A14E3EA0B00685A35 /* survival_1_4.png */; }; + D549553A14E3EA0B00685A35 /* survival_1_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552A14E3EA0B00685A35 /* survival_1_4.png */; }; + D549553D14E3EA0B00685A35 /* worldname_ipad_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552C14E3EA0B00685A35 /* worldname_ipad_4.png */; }; + D549553E14E3EA0B00685A35 /* worldname_ipad_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549552C14E3EA0B00685A35 /* worldname_ipad_4.png */; }; + D549554114E3EAC100685A35 /* creative_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549553F14E3EAC100685A35 /* creative_0_4.png */; }; + D549554214E3EAC100685A35 /* creative_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549553F14E3EAC100685A35 /* creative_0_4.png */; }; + D549554314E3EAC100685A35 /* survival_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549554014E3EAC100685A35 /* survival_0_4.png */; }; + D549554414E3EAC100685A35 /* survival_0_4.png in Resources */ = {isa = PBXBuildFile; fileRef = D549554014E3EAC100685A35 /* survival_0_4.png */; }; + D55B201814595370002D9366 /* terrain.pvr in Resources */ = {isa = PBXBuildFile; fileRef = D55B201714595370002D9366 /* terrain.pvr */; }; + D55B252B14598227002D9366 /* terrain.pvrtc in Resources */ = {isa = PBXBuildFile; fileRef = D55B252A14598227002D9366 /* terrain.pvrtc */; }; + D572D3C9144C6A1400E67862 /* default8.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3AD144C6A1400E67862 /* default8.png */; }; + D572D3CA144C6A1400E67862 /* background.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3AF144C6A1400E67862 /* background.png */; }; + D572D3CD144C6A1400E67862 /* default_world.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B3144C6A1400E67862 /* default_world.png */; }; + D572D3D0144C6A1400E67862 /* gui.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B6144C6A1400E67862 /* gui.png */; }; + D572D3D1144C6A1400E67862 /* gui_blocks.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B7144C6A1400E67862 /* gui_blocks.png */; }; + D572D3D2144C6A1400E67862 /* icons.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B8144C6A1400E67862 /* icons.png */; }; + D572D3D3144C6A1400E67862 /* items.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B9144C6A1400E67862 /* items.png */; }; + D572D3D9144C6A1400E67862 /* title.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C1144C6A1400E67862 /* title.png */; }; + D572D3DA144C6A1400E67862 /* touchgui.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C2144C6A1400E67862 /* touchgui.png */; }; + D572D3DB144C6A1400E67862 /* camera.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C4144C6A1400E67862 /* camera.png */; }; + D572D3DC144C6A1400E67862 /* char.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C6144C6A1400E67862 /* char.png */; }; + D572D3DD144C6A1400E67862 /* particles.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C7144C6A1400E67862 /* particles.png */; }; + D572D3DE144C6A1400E67862 /* terrain.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C8144C6A1400E67862 /* terrain.png */; }; + D572D3E0144CB23200E67862 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D572D3DF144CB23200E67862 /* AudioToolbox.framework */; }; + D584926D14FD234400741128 /* SharedConstants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584926C14FD234400741128 /* SharedConstants.cpp */; }; + D584926E14FD234400741128 /* SharedConstants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584926C14FD234400741128 /* SharedConstants.cpp */; }; + D584927314FD236700741128 /* MoveControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584927114FD236700741128 /* MoveControl.cpp */; }; + D584927414FD236700741128 /* MoveControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584927114FD236700741128 /* MoveControl.cpp */; }; + D584928614FD240D00741128 /* IConfigListener.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584928414FD240C00741128 /* IConfigListener.cpp */; }; + D584928714FD240D00741128 /* IConfigListener.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584928414FD240C00741128 /* IConfigListener.cpp */; }; + D584928914FD2FAF00741128 /* Path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584928814FD2FAF00741128 /* Path.cpp */; }; + D584928A14FD2FAF00741128 /* Path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D584928814FD2FAF00741128 /* Path.cpp */; }; + D58BB46E146A0B910002C9F5 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5CF9C56144C225000E4244F /* main.mm */; }; + D58BB46F146A0B910002C9F5 /* minecraftpeAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5CF9C5A144C225000E4244F /* minecraftpeAppDelegate.mm */; }; + D58BB470146A0B910002C9F5 /* EAGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = D5CF9C64144C225000E4244F /* EAGLView.m */; }; + D58BB471146A0B910002C9F5 /* minecraftpeViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5CFA01C144C453900E4244F /* minecraftpeViewController.mm */; }; + D58BB53E146A0B910002C9F5 /* CreateNewWorldViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5A55E4814500EDE00A7571B /* CreateNewWorldViewController.mm */; }; + D58BB53F146A0B910002C9F5 /* BaseDialogController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5A55E4C145036AE00A7571B /* BaseDialogController.mm */; }; + D58BB540146A0B910002C9F5 /* IASKAppSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7A414548E7900D25470 /* IASKAppSettingsViewController.m */; }; + D58BB541146A0B910002C9F5 /* IASKAppSettingsWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7A614548E7900D25470 /* IASKAppSettingsWebViewController.m */; }; + D58BB542146A0B910002C9F5 /* IASKSpecifierValuesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7A814548E7900D25470 /* IASKSpecifierValuesViewController.m */; }; + D58BB543146A0B910002C9F5 /* IASKSettingsReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7AB14548E7900D25470 /* IASKSettingsReader.m */; }; + D58BB544146A0B910002C9F5 /* IASKSettingsStore.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7AD14548E7900D25470 /* IASKSettingsStore.m */; }; + D58BB545146A0B910002C9F5 /* IASKSettingsStoreFile.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7AF14548E7900D25470 /* IASKSettingsStoreFile.m */; }; + D58BB546146A0B910002C9F5 /* IASKSettingsStoreUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B114548E7900D25470 /* IASKSettingsStoreUserDefaults.m */; }; + D58BB547146A0B910002C9F5 /* IASKSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B314548E7900D25470 /* IASKSpecifier.m */; }; + D58BB548146A0B910002C9F5 /* IASKPSSliderSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B614548E7900D25470 /* IASKPSSliderSpecifierViewCell.m */; }; + D58BB549146A0B910002C9F5 /* IASKPSTextFieldSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B814548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m */; }; + D58BB54A146A0B910002C9F5 /* IASKPSTitleValueSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7BA14548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m */; }; + D58BB54B146A0B910002C9F5 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7BC14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m */; }; + D58BB54C146A0B910002C9F5 /* IASKSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7BE14548E7900D25470 /* IASKSlider.m */; }; + D58BB54D146A0B910002C9F5 /* IASKSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7C014548E7900D25470 /* IASKSwitch.m */; }; + D58BB54E146A0B910002C9F5 /* IASKTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7C214548E7900D25470 /* IASKTextField.m */; }; + D58BB550146A0B910002C9F5 /* PVRTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = D51DC74214592B8A00E3D761 /* PVRTexture.m */; }; + D58BB553146A0B920002C9F5 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F07738145EB1F300EC30FB /* AVFoundation.framework */; }; + D58BB554146A0B920002C9F5 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F07736145DE04200EC30FB /* OpenAL.framework */; }; + D58BB555146A0B920002C9F5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D572D3DF144CB23200E67862 /* AudioToolbox.framework */; }; + D58BB556146A0B920002C9F5 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C46144C225000E4244F /* UIKit.framework */; }; + D58BB557146A0B920002C9F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C48144C225000E4244F /* Foundation.framework */; }; + D58BB558146A0B920002C9F5 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C4A144C225000E4244F /* CoreGraphics.framework */; }; + D58BB559146A0B920002C9F5 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C4C144C225000E4244F /* QuartzCore.framework */; }; + D58BB55A146A0B920002C9F5 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C4E144C225000E4244F /* OpenGLES.framework */; }; + D58BB55C146A0B920002C9F5 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D5CF9C53144C225000E4244F /* InfoPlist.strings */; }; + D58BB55D146A0B920002C9F5 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5CF9C5C144C225000E4244F /* MainWindow.xib */; }; + D58BB55E146A0B920002C9F5 /* minecraftpeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5CF9C69144C225000E4244F /* minecraftpeViewController.xib */; }; + D58BB57A146A0B920002C9F5 /* default8.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3AD144C6A1400E67862 /* default8.png */; }; + D58BB57B146A0B920002C9F5 /* background.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3AF144C6A1400E67862 /* background.png */; }; + D58BB57E146A0B920002C9F5 /* default_world.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B3144C6A1400E67862 /* default_world.png */; }; + D58BB581146A0B920002C9F5 /* gui.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B6144C6A1400E67862 /* gui.png */; }; + D58BB582146A0B920002C9F5 /* gui_blocks.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B7144C6A1400E67862 /* gui_blocks.png */; }; + D58BB583146A0B920002C9F5 /* icons.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B8144C6A1400E67862 /* icons.png */; }; + D58BB584146A0B920002C9F5 /* items.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3B9144C6A1400E67862 /* items.png */; }; + D58BB58A146A0B920002C9F5 /* title.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C1144C6A1400E67862 /* title.png */; }; + D58BB58B146A0B920002C9F5 /* touchgui.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C2144C6A1400E67862 /* touchgui.png */; }; + D58BB58C146A0B920002C9F5 /* camera.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C4144C6A1400E67862 /* camera.png */; }; + D58BB58D146A0B920002C9F5 /* char.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C6144C6A1400E67862 /* char.png */; }; + D58BB58E146A0B920002C9F5 /* particles.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C7144C6A1400E67862 /* particles.png */; }; + D58BB58F146A0B920002C9F5 /* terrain.png in Resources */ = {isa = PBXBuildFile; fileRef = D572D3C8144C6A1400E67862 /* terrain.png */; }; + D58BB590146A0B920002C9F5 /* bg32.png in Resources */ = {isa = PBXBuildFile; fileRef = D5A55E4E1450761600A7571B /* bg32.png */; }; + D58BB591146A0B920002C9F5 /* CreateNewWorld_ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5BFCF1A14513FF400A443B0 /* CreateNewWorld_ipad.xib */; }; + D58BB592146A0B920002C9F5 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5E1BA9A1451C8A0007DCC4F /* Default@2x.png */; }; + D58BB593146A0B920002C9F5 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = D5E1BA981451C881007DCC4F /* Default.png */; }; + D58BB594146A0B920002C9F5 /* IASKAppSettingsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C414548E7900D25470 /* IASKAppSettingsView.xib */; }; + D58BB595146A0B920002C9F5 /* IASKAppSettingsWebView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C514548E7900D25470 /* IASKAppSettingsWebView.xib */; }; + D58BB596146A0B920002C9F5 /* IASKPSSliderSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C614548E7900D25470 /* IASKPSSliderSpecifierViewCell.xib */; }; + D58BB597146A0B920002C9F5 /* IASKPSTextFieldSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C714548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.xib */; }; + D58BB598146A0B920002C9F5 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */; }; + D58BB599146A0B920002C9F5 /* IASKSpecifierValuesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */; }; + D58BB59A146A0B920002C9F5 /* InAppSettings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7E41454930400D25470 /* InAppSettings.bundle */; }; + D58BB59B146A0B920002C9F5 /* itemframe.png in Resources */ = {isa = PBXBuildFile; fileRef = D51DC73514581D4E00E3D761 /* itemframe.png */; }; + D58BB59C146A0B920002C9F5 /* terrain.pvr in Resources */ = {isa = PBXBuildFile; fileRef = D55B201714595370002D9366 /* terrain.pvr */; }; + D58BB59D146A0B920002C9F5 /* terrain.pvrtc in Resources */ = {isa = PBXBuildFile; fileRef = D55B252A14598227002D9366 /* terrain.pvrtc */; }; + D58BB59E146A0B920002C9F5 /* terrain.pvr4 in Resources */ = {isa = PBXBuildFile; fileRef = D5F0772214599DC700EC30FB /* terrain.pvr4 */; }; + D58BB5A3146A0B920002C9F5 /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D5F07744145EF79B00EC30FB /* Default-Landscape~ipad.png */; }; + D58BB5A8146A0B920002C9F5 /* bg64.png in Resources */ = {isa = PBXBuildFile; fileRef = D5912008145FE9E600AE2E58 /* bg64.png */; }; + D58BB5A9146A0B920002C9F5 /* bg128.png in Resources */ = {isa = PBXBuildFile; fileRef = D591200A145FEB8C00AE2E58 /* bg128.png */; }; + D58BB5AA146A0B920002C9F5 /* minecraft.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D591200E1460041300AE2E58 /* minecraft.ttf */; }; + D58BB5AB146A0B920002C9F5 /* CreateNewWorld_iphone5.xib in Resources */ = {isa = PBXBuildFile; fileRef = D593755014611CF200543145 /* CreateNewWorld_iphone5.xib */; }; + D5912009145FE9E600AE2E58 /* bg64.png in Resources */ = {isa = PBXBuildFile; fileRef = D5912008145FE9E600AE2E58 /* bg64.png */; }; + D591200B145FEB8C00AE2E58 /* bg128.png in Resources */ = {isa = PBXBuildFile; fileRef = D591200A145FEB8C00AE2E58 /* bg128.png */; }; + D591200F1460041300AE2E58 /* minecraft.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D591200E1460041300AE2E58 /* minecraft.ttf */; }; + D593325516077BBB00E26FC5 /* RenameMPWorld_iphone5.xib in Resources */ = {isa = PBXBuildFile; fileRef = D593325416077BBB00E26FC5 /* RenameMPWorld_iphone5.xib */; }; + D593325616077BBB00E26FC5 /* RenameMPWorld_iphone5.xib in Resources */ = {isa = PBXBuildFile; fileRef = D593325416077BBB00E26FC5 /* RenameMPWorld_iphone5.xib */; }; + D593755114611CF300543145 /* CreateNewWorld_iphone5.xib in Resources */ = {isa = PBXBuildFile; fileRef = D593755014611CF200543145 /* CreateNewWorld_iphone5.xib */; }; + D5951EC7159347EE0043A12A /* FurnaceRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EC4159347EE0043A12A /* FurnaceRecipes.cpp */; }; + D5951EC8159347EE0043A12A /* FurnaceRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EC4159347EE0043A12A /* FurnaceRecipes.cpp */; }; + D5951EC9159347EE0043A12A /* OreRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EC6159347EE0043A12A /* OreRecipes.cpp */; }; + D5951ECA159347EE0043A12A /* OreRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EC6159347EE0043A12A /* OreRecipes.cpp */; }; + D5951EDB159348C50043A12A /* InventoryPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951ED6159348C50043A12A /* InventoryPane.cpp */; }; + D5951EDC159348C50043A12A /* InventoryPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951ED6159348C50043A12A /* InventoryPane.cpp */; }; + D5951EDD159348C50043A12A /* ItemPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951ED8159348C50043A12A /* ItemPane.cpp */; }; + D5951EDE159348C50043A12A /* ItemPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951ED8159348C50043A12A /* ItemPane.cpp */; }; + D5951EE3159349000043A12A /* FurnaceTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EE1159349000043A12A /* FurnaceTile.cpp */; }; + D5951EE4159349000043A12A /* FurnaceTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EE1159349000043A12A /* FurnaceTile.cpp */; }; + D5951EE8159349100043A12A /* FurnaceTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EE5159349100043A12A /* FurnaceTileEntity.cpp */; }; + D5951EE9159349100043A12A /* FurnaceTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EE5159349100043A12A /* FurnaceTileEntity.cpp */; }; + D5951EEA159349100043A12A /* TileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EE7159349100043A12A /* TileEntity.cpp */; }; + D5951EEB159349100043A12A /* TileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EE7159349100043A12A /* TileEntity.cpp */; }; + D5951EEE159349680043A12A /* FurnaceScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EEC159349680043A12A /* FurnaceScreen.cpp */; }; + D5951EEF159349680043A12A /* FurnaceScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EEC159349680043A12A /* FurnaceScreen.cpp */; }; + D5951EF115934A2D0043A12A /* Feature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EF015934A2D0043A12A /* Feature.cpp */; }; + D5951EF215934A2D0043A12A /* Feature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EF015934A2D0043A12A /* Feature.cpp */; }; + D5951EF715934AC50043A12A /* BaseContainerMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EF315934AC50043A12A /* BaseContainerMenu.cpp */; }; + D5951EF815934AC50043A12A /* BaseContainerMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EF315934AC50043A12A /* BaseContainerMenu.cpp */; }; + D5951EF915934AC50043A12A /* FurnaceMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EF515934AC50043A12A /* FurnaceMenu.cpp */; }; + D5951EFA15934AC50043A12A /* FurnaceMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5951EF515934AC50043A12A /* FurnaceMenu.cpp */; }; + D598BD6D163ED06400A36438 /* explode.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD6C163ED06400A36438 /* explode.m4a */; }; + D598BD6E163ED06400A36438 /* explode.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD6C163ED06400A36438 /* explode.m4a */; }; + D598BD7A163ED09800A36438 /* zpig1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD6F163ED09800A36438 /* zpig1.m4a */; }; + D598BD7B163ED09800A36438 /* zpig1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD6F163ED09800A36438 /* zpig1.m4a */; }; + D598BD7C163ED09800A36438 /* zpig2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD70163ED09800A36438 /* zpig2.m4a */; }; + D598BD7D163ED09800A36438 /* zpig2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD70163ED09800A36438 /* zpig2.m4a */; }; + D598BD7E163ED09800A36438 /* zpig3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD71163ED09800A36438 /* zpig3.m4a */; }; + D598BD7F163ED09800A36438 /* zpig3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD71163ED09800A36438 /* zpig3.m4a */; }; + D598BD80163ED09800A36438 /* zpig4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD72163ED09800A36438 /* zpig4.m4a */; }; + D598BD81163ED09800A36438 /* zpig4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD72163ED09800A36438 /* zpig4.m4a */; }; + D598BD82163ED09800A36438 /* zpigangry1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD73163ED09800A36438 /* zpigangry1.m4a */; }; + D598BD83163ED09800A36438 /* zpigangry1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD73163ED09800A36438 /* zpigangry1.m4a */; }; + D598BD84163ED09800A36438 /* zpigangry2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD74163ED09800A36438 /* zpigangry2.m4a */; }; + D598BD85163ED09800A36438 /* zpigangry2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD74163ED09800A36438 /* zpigangry2.m4a */; }; + D598BD86163ED09800A36438 /* zpigangry3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD75163ED09800A36438 /* zpigangry3.m4a */; }; + D598BD87163ED09800A36438 /* zpigangry3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD75163ED09800A36438 /* zpigangry3.m4a */; }; + D598BD88163ED09800A36438 /* zpigangry4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD76163ED09800A36438 /* zpigangry4.m4a */; }; + D598BD89163ED09800A36438 /* zpigangry4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD76163ED09800A36438 /* zpigangry4.m4a */; }; + D598BD8A163ED09800A36438 /* zpigdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD77163ED09800A36438 /* zpigdeath.m4a */; }; + D598BD8B163ED09800A36438 /* zpigdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD77163ED09800A36438 /* zpigdeath.m4a */; }; + D598BD8C163ED09800A36438 /* zpighurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD78163ED09800A36438 /* zpighurt1.m4a */; }; + D598BD8D163ED09800A36438 /* zpighurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD78163ED09800A36438 /* zpighurt1.m4a */; }; + D598BD8E163ED09800A36438 /* zpighurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD79163ED09800A36438 /* zpighurt2.m4a */; }; + D598BD8F163ED09800A36438 /* zpighurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D598BD79163ED09800A36438 /* zpighurt2.m4a */; }; + D598BD91163ED0DB00A36438 /* sign.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD90163ED0DB00A36438 /* sign.png */; }; + D598BD92163ED0DB00A36438 /* sign.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD90163ED0DB00A36438 /* sign.png */; }; + D598BD94163ED14000A36438 /* pigzombie.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD93163ED14000A36438 /* pigzombie.png */; }; + D598BD95163ED14000A36438 /* pigzombie.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD93163ED14000A36438 /* pigzombie.png */; }; + D598BD98163ED26500A36438 /* kz.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD97163ED26500A36438 /* kz.png */; }; + D598BD99163ED26500A36438 /* kz.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD97163ED26500A36438 /* kz.png */; }; + D598BD9D164157D500A36438 /* minecon140.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD9C164157D500A36438 /* minecon140.png */; }; + D598BD9E164157D500A36438 /* minecon140.png in Resources */ = {isa = PBXBuildFile; fileRef = D598BD9C164157D500A36438 /* minecon140.png */; }; + D5A55E4914500EDE00A7571B /* CreateNewWorldViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5A55E4814500EDE00A7571B /* CreateNewWorldViewController.mm */; }; + D5A55E4D145036AE00A7571B /* BaseDialogController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5A55E4C145036AE00A7571B /* BaseDialogController.mm */; }; + D5A55E4F1450761600A7571B /* bg32.png in Resources */ = {isa = PBXBuildFile; fileRef = D5A55E4E1450761600A7571B /* bg32.png */; }; + D5A6F8D115B45E2600819B71 /* ChestScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5A6F8CF15B45E2600819B71 /* ChestScreen.cpp */; }; + D5A6F8D215B45E2600819B71 /* ChestScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5A6F8CF15B45E2600819B71 /* ChestScreen.cpp */; }; + D5A6F8D615B45EE500819B71 /* ContainerMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5A6F8D415B45EE500819B71 /* ContainerMenu.cpp */; }; + D5A6F8D715B45EE500819B71 /* ContainerMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5A6F8D415B45EE500819B71 /* ContainerMenu.cpp */; }; + D5ACF15615C01F7D00E21C22 /* ArrowRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF15415C01F7D00E21C22 /* ArrowRenderer.cpp */; }; + D5ACF15715C01F7D00E21C22 /* ArrowRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF15415C01F7D00E21C22 /* ArrowRenderer.cpp */; }; + D5ACF17815C0220D00E21C22 /* Creeper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF16D15C0220D00E21C22 /* Creeper.cpp */; }; + D5ACF17915C0220D00E21C22 /* Creeper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF16D15C0220D00E21C22 /* Creeper.cpp */; }; + D5ACF17A15C0220D00E21C22 /* Monster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF16F15C0220D00E21C22 /* Monster.cpp */; }; + D5ACF17B15C0220D00E21C22 /* Monster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF16F15C0220D00E21C22 /* Monster.cpp */; }; + D5ACF17C15C0220D00E21C22 /* Skeleton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF17215C0220D00E21C22 /* Skeleton.cpp */; }; + D5ACF17D15C0220D00E21C22 /* Skeleton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF17215C0220D00E21C22 /* Skeleton.cpp */; }; + D5ACF17E15C0220D00E21C22 /* Spider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF17415C0220D00E21C22 /* Spider.cpp */; }; + D5ACF17F15C0220D00E21C22 /* Spider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF17415C0220D00E21C22 /* Spider.cpp */; }; + D5ACF18015C0220D00E21C22 /* Zombie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF17615C0220D00E21C22 /* Zombie.cpp */; }; + D5ACF18115C0220D00E21C22 /* Zombie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF17615C0220D00E21C22 /* Zombie.cpp */; }; + D5ACF18415C022B500E21C22 /* EntityFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF18215C022B500E21C22 /* EntityFactory.cpp */; }; + D5ACF18515C022B500E21C22 /* EntityFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5ACF18215C022B500E21C22 /* EntityFactory.cpp */; }; + D5ACF1E115C03DBF00E21C22 /* fallbig1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18815C03DBF00E21C22 /* fallbig1.m4a */; }; + D5ACF1E215C03DBF00E21C22 /* fallbig1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18815C03DBF00E21C22 /* fallbig1.m4a */; }; + D5ACF1E315C03DBF00E21C22 /* fallbig2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18915C03DBF00E21C22 /* fallbig2.m4a */; }; + D5ACF1E415C03DBF00E21C22 /* fallbig2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18915C03DBF00E21C22 /* fallbig2.m4a */; }; + D5ACF1E515C03DBF00E21C22 /* fallsmall.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18A15C03DBF00E21C22 /* fallsmall.m4a */; }; + D5ACF1E615C03DBF00E21C22 /* fallsmall.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18A15C03DBF00E21C22 /* fallsmall.m4a */; }; + D5ACF1E715C03DBF00E21C22 /* chicken1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18C15C03DBF00E21C22 /* chicken1.m4a */; }; + D5ACF1E815C03DBF00E21C22 /* chicken1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18C15C03DBF00E21C22 /* chicken1.m4a */; }; + D5ACF1E915C03DBF00E21C22 /* chicken2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18D15C03DBF00E21C22 /* chicken2.m4a */; }; + D5ACF1EA15C03DBF00E21C22 /* chicken2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18D15C03DBF00E21C22 /* chicken2.m4a */; }; + D5ACF1EB15C03DBF00E21C22 /* chicken3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18E15C03DBF00E21C22 /* chicken3.m4a */; }; + D5ACF1EC15C03DBF00E21C22 /* chicken3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18E15C03DBF00E21C22 /* chicken3.m4a */; }; + D5ACF1ED15C03DBF00E21C22 /* chickenhurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18F15C03DBF00E21C22 /* chickenhurt1.m4a */; }; + D5ACF1EE15C03DBF00E21C22 /* chickenhurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF18F15C03DBF00E21C22 /* chickenhurt1.m4a */; }; + D5ACF1EF15C03DBF00E21C22 /* chickenhurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19015C03DBF00E21C22 /* chickenhurt2.m4a */; }; + D5ACF1F015C03DBF00E21C22 /* chickenhurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19015C03DBF00E21C22 /* chickenhurt2.m4a */; }; + D5ACF1F115C03DBF00E21C22 /* chickenplop.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19115C03DBF00E21C22 /* chickenplop.m4a */; }; + D5ACF1F215C03DBF00E21C22 /* chickenplop.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19115C03DBF00E21C22 /* chickenplop.m4a */; }; + D5ACF1F315C03DBF00E21C22 /* cow1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19215C03DBF00E21C22 /* cow1.m4a */; }; + D5ACF1F415C03DBF00E21C22 /* cow1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19215C03DBF00E21C22 /* cow1.m4a */; }; + D5ACF1F515C03DBF00E21C22 /* cow2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19315C03DBF00E21C22 /* cow2.m4a */; }; + D5ACF1F615C03DBF00E21C22 /* cow2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19315C03DBF00E21C22 /* cow2.m4a */; }; + D5ACF1F715C03DBF00E21C22 /* cow3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19415C03DBF00E21C22 /* cow3.m4a */; }; + D5ACF1F815C03DBF00E21C22 /* cow3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19415C03DBF00E21C22 /* cow3.m4a */; }; + D5ACF1F915C03DBF00E21C22 /* cow4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19515C03DBF00E21C22 /* cow4.m4a */; }; + D5ACF1FA15C03DBF00E21C22 /* cow4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19515C03DBF00E21C22 /* cow4.m4a */; }; + D5ACF1FB15C03DBF00E21C22 /* cowhurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19615C03DBF00E21C22 /* cowhurt1.m4a */; }; + D5ACF1FC15C03DBF00E21C22 /* cowhurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19615C03DBF00E21C22 /* cowhurt1.m4a */; }; + D5ACF1FD15C03DBF00E21C22 /* cowhurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19715C03DBF00E21C22 /* cowhurt2.m4a */; }; + D5ACF1FE15C03DBF00E21C22 /* cowhurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19715C03DBF00E21C22 /* cowhurt2.m4a */; }; + D5ACF1FF15C03DBF00E21C22 /* cowhurt3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19815C03DBF00E21C22 /* cowhurt3.m4a */; }; + D5ACF20015C03DBF00E21C22 /* cowhurt3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19815C03DBF00E21C22 /* cowhurt3.m4a */; }; + D5ACF20115C03DBF00E21C22 /* pig1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19915C03DBF00E21C22 /* pig1.m4a */; }; + D5ACF20215C03DBF00E21C22 /* pig1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19915C03DBF00E21C22 /* pig1.m4a */; }; + D5ACF20315C03DBF00E21C22 /* pig2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19A15C03DBF00E21C22 /* pig2.m4a */; }; + D5ACF20415C03DBF00E21C22 /* pig2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19A15C03DBF00E21C22 /* pig2.m4a */; }; + D5ACF20515C03DBF00E21C22 /* pig3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19B15C03DBF00E21C22 /* pig3.m4a */; }; + D5ACF20615C03DBF00E21C22 /* pig3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19B15C03DBF00E21C22 /* pig3.m4a */; }; + D5ACF20715C03DBF00E21C22 /* pigdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19C15C03DBF00E21C22 /* pigdeath.m4a */; }; + D5ACF20815C03DBF00E21C22 /* pigdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19C15C03DBF00E21C22 /* pigdeath.m4a */; }; + D5ACF20915C03DBF00E21C22 /* sheep1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19D15C03DBF00E21C22 /* sheep1.m4a */; }; + D5ACF20A15C03DBF00E21C22 /* sheep1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19D15C03DBF00E21C22 /* sheep1.m4a */; }; + D5ACF20B15C03DBF00E21C22 /* sheep2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19E15C03DBF00E21C22 /* sheep2.m4a */; }; + D5ACF20C15C03DBF00E21C22 /* sheep2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19E15C03DBF00E21C22 /* sheep2.m4a */; }; + D5ACF20D15C03DBF00E21C22 /* sheep3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19F15C03DBF00E21C22 /* sheep3.m4a */; }; + D5ACF20E15C03DBF00E21C22 /* sheep3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF19F15C03DBF00E21C22 /* sheep3.m4a */; }; + D5ACF20F15C03DBF00E21C22 /* skeleton1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A015C03DBF00E21C22 /* skeleton1.m4a */; }; + D5ACF21015C03DBF00E21C22 /* skeleton1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A015C03DBF00E21C22 /* skeleton1.m4a */; }; + D5ACF21115C03DBF00E21C22 /* skeleton2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A115C03DBF00E21C22 /* skeleton2.m4a */; }; + D5ACF21215C03DBF00E21C22 /* skeleton2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A115C03DBF00E21C22 /* skeleton2.m4a */; }; + D5ACF21315C03DBF00E21C22 /* skeleton3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A215C03DBF00E21C22 /* skeleton3.m4a */; }; + D5ACF21415C03DBF00E21C22 /* skeleton3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A215C03DBF00E21C22 /* skeleton3.m4a */; }; + D5ACF21515C03DBF00E21C22 /* skeletonhurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A315C03DBF00E21C22 /* skeletonhurt1.m4a */; }; + D5ACF21615C03DBF00E21C22 /* skeletonhurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A315C03DBF00E21C22 /* skeletonhurt1.m4a */; }; + D5ACF21715C03DBF00E21C22 /* skeletonhurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A415C03DBF00E21C22 /* skeletonhurt2.m4a */; }; + D5ACF21815C03DBF00E21C22 /* skeletonhurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A415C03DBF00E21C22 /* skeletonhurt2.m4a */; }; + D5ACF21915C03DBF00E21C22 /* skeletonhurt3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A515C03DBF00E21C22 /* skeletonhurt3.m4a */; }; + D5ACF21A15C03DBF00E21C22 /* skeletonhurt3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A515C03DBF00E21C22 /* skeletonhurt3.m4a */; }; + D5ACF21B15C03DBF00E21C22 /* skeletonhurt4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A615C03DBF00E21C22 /* skeletonhurt4.m4a */; }; + D5ACF21C15C03DBF00E21C22 /* skeletonhurt4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A615C03DBF00E21C22 /* skeletonhurt4.m4a */; }; + D5ACF21D15C03DBF00E21C22 /* spider1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A715C03DBF00E21C22 /* spider1.m4a */; }; + D5ACF21E15C03DBF00E21C22 /* spider1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A715C03DBF00E21C22 /* spider1.m4a */; }; + D5ACF21F15C03DBF00E21C22 /* spider2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A815C03DBF00E21C22 /* spider2.m4a */; }; + D5ACF22015C03DBF00E21C22 /* spider2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A815C03DBF00E21C22 /* spider2.m4a */; }; + D5ACF22115C03DBF00E21C22 /* spider3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A915C03DBF00E21C22 /* spider3.m4a */; }; + D5ACF22215C03DBF00E21C22 /* spider3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1A915C03DBF00E21C22 /* spider3.m4a */; }; + D5ACF22315C03DBF00E21C22 /* spider4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AA15C03DBF00E21C22 /* spider4.m4a */; }; + D5ACF22415C03DBF00E21C22 /* spider4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AA15C03DBF00E21C22 /* spider4.m4a */; }; + D5ACF22515C03DBF00E21C22 /* zombie1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AB15C03DBF00E21C22 /* zombie1.m4a */; }; + D5ACF22615C03DBF00E21C22 /* zombie1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AB15C03DBF00E21C22 /* zombie1.m4a */; }; + D5ACF22715C03DBF00E21C22 /* zombie2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AC15C03DBF00E21C22 /* zombie2.m4a */; }; + D5ACF22815C03DBF00E21C22 /* zombie2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AC15C03DBF00E21C22 /* zombie2.m4a */; }; + D5ACF22915C03DBF00E21C22 /* zombie3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AD15C03DBF00E21C22 /* zombie3.m4a */; }; + D5ACF22A15C03DBF00E21C22 /* zombie3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AD15C03DBF00E21C22 /* zombie3.m4a */; }; + D5ACF22B15C03DBF00E21C22 /* zombiedeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AE15C03DBF00E21C22 /* zombiedeath.m4a */; }; + D5ACF22C15C03DBF00E21C22 /* zombiedeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AE15C03DBF00E21C22 /* zombiedeath.m4a */; }; + D5ACF22D15C03DBF00E21C22 /* zombiehurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AF15C03DBF00E21C22 /* zombiehurt1.m4a */; }; + D5ACF22E15C03DBF00E21C22 /* zombiehurt1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1AF15C03DBF00E21C22 /* zombiehurt1.m4a */; }; + D5ACF22F15C03DBF00E21C22 /* zombiehurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B015C03DBF00E21C22 /* zombiehurt2.m4a */; }; + D5ACF23015C03DBF00E21C22 /* zombiehurt2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B015C03DBF00E21C22 /* zombiehurt2.m4a */; }; + D5ACF23115C03DBF00E21C22 /* bow.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B215C03DBF00E21C22 /* bow.m4a */; }; + D5ACF23215C03DBF00E21C22 /* bow.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B215C03DBF00E21C22 /* bow.m4a */; }; + D5ACF23315C03DBF00E21C22 /* bowhit1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B315C03DBF00E21C22 /* bowhit1.m4a */; }; + D5ACF23415C03DBF00E21C22 /* bowhit1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B315C03DBF00E21C22 /* bowhit1.m4a */; }; + D5ACF23515C03DBF00E21C22 /* bowhit2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B415C03DBF00E21C22 /* bowhit2.m4a */; }; + D5ACF23615C03DBF00E21C22 /* bowhit2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B415C03DBF00E21C22 /* bowhit2.m4a */; }; + D5ACF23715C03DBF00E21C22 /* bowhit3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B515C03DBF00E21C22 /* bowhit3.m4a */; }; + D5ACF23815C03DBF00E21C22 /* bowhit3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B515C03DBF00E21C22 /* bowhit3.m4a */; }; + D5ACF23915C03DBF00E21C22 /* bowhit4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B615C03DBF00E21C22 /* bowhit4.m4a */; }; + D5ACF23A15C03DBF00E21C22 /* bowhit4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B615C03DBF00E21C22 /* bowhit4.m4a */; }; + D5ACF23B15C03DBF00E21C22 /* click.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B715C03DBF00E21C22 /* click.m4a */; }; + D5ACF23C15C03DBF00E21C22 /* click.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B715C03DBF00E21C22 /* click.m4a */; }; + D5ACF23D15C03DBF00E21C22 /* door_close.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B815C03DBF00E21C22 /* door_close.m4a */; }; + D5ACF23E15C03DBF00E21C22 /* door_close.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B815C03DBF00E21C22 /* door_close.m4a */; }; + D5ACF23F15C03DBF00E21C22 /* door_open.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B915C03DBF00E21C22 /* door_open.m4a */; }; + D5ACF24015C03DBF00E21C22 /* door_open.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1B915C03DBF00E21C22 /* door_open.m4a */; }; + D5ACF24115C03DBF00E21C22 /* glass1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BA15C03DBF00E21C22 /* glass1.m4a */; }; + D5ACF24215C03DBF00E21C22 /* glass1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BA15C03DBF00E21C22 /* glass1.m4a */; }; + D5ACF24315C03DBF00E21C22 /* glass2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BB15C03DBF00E21C22 /* glass2.m4a */; }; + D5ACF24415C03DBF00E21C22 /* glass2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BB15C03DBF00E21C22 /* glass2.m4a */; }; + D5ACF24515C03DBF00E21C22 /* glass3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BC15C03DBF00E21C22 /* glass3.m4a */; }; + D5ACF24615C03DBF00E21C22 /* glass3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BC15C03DBF00E21C22 /* glass3.m4a */; }; + D5ACF24715C03DBF00E21C22 /* hurt.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BD15C03DBF00E21C22 /* hurt.m4a */; }; + D5ACF24815C03DBF00E21C22 /* hurt.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BD15C03DBF00E21C22 /* hurt.m4a */; }; + D5ACF24915C03DBF00E21C22 /* pop.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BE15C03DBF00E21C22 /* pop.m4a */; }; + D5ACF24A15C03DBF00E21C22 /* pop.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BE15C03DBF00E21C22 /* pop.m4a */; }; + D5ACF24B15C03DBF00E21C22 /* splash.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BF15C03DBF00E21C22 /* splash.m4a */; }; + D5ACF24C15C03DBF00E21C22 /* splash.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1BF15C03DBF00E21C22 /* splash.m4a */; }; + D5ACF24D15C03DBF00E21C22 /* water.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C015C03DBF00E21C22 /* water.m4a */; }; + D5ACF24E15C03DBF00E21C22 /* water.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C015C03DBF00E21C22 /* water.m4a */; }; + D5ACF24F15C03DBF00E21C22 /* cloth1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C215C03DBF00E21C22 /* cloth1.m4a */; }; + D5ACF25015C03DBF00E21C22 /* cloth1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C215C03DBF00E21C22 /* cloth1.m4a */; }; + D5ACF25115C03DBF00E21C22 /* cloth2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C315C03DBF00E21C22 /* cloth2.m4a */; }; + D5ACF25215C03DBF00E21C22 /* cloth2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C315C03DBF00E21C22 /* cloth2.m4a */; }; + D5ACF25315C03DBF00E21C22 /* cloth3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C415C03DBF00E21C22 /* cloth3.m4a */; }; + D5ACF25415C03DBF00E21C22 /* cloth3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C415C03DBF00E21C22 /* cloth3.m4a */; }; + D5ACF25515C03DBF00E21C22 /* cloth4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C515C03DBF00E21C22 /* cloth4.m4a */; }; + D5ACF25615C03DBF00E21C22 /* cloth4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C515C03DBF00E21C22 /* cloth4.m4a */; }; + D5ACF25715C03DBF00E21C22 /* grass1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C615C03DBF00E21C22 /* grass1.m4a */; }; + D5ACF25815C03DBF00E21C22 /* grass1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C615C03DBF00E21C22 /* grass1.m4a */; }; + D5ACF25915C03DBF00E21C22 /* grass2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C715C03DBF00E21C22 /* grass2.m4a */; }; + D5ACF25A15C03DBF00E21C22 /* grass2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C715C03DBF00E21C22 /* grass2.m4a */; }; + D5ACF25B15C03DBF00E21C22 /* grass3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C815C03DBF00E21C22 /* grass3.m4a */; }; + D5ACF25C15C03DBF00E21C22 /* grass3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C815C03DBF00E21C22 /* grass3.m4a */; }; + D5ACF25D15C03DBF00E21C22 /* grass4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C915C03DBF00E21C22 /* grass4.m4a */; }; + D5ACF25E15C03DBF00E21C22 /* grass4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1C915C03DBF00E21C22 /* grass4.m4a */; }; + D5ACF25F15C03DBF00E21C22 /* gravel2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CA15C03DBF00E21C22 /* gravel2.m4a */; }; + D5ACF26015C03DBF00E21C22 /* gravel2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CA15C03DBF00E21C22 /* gravel2.m4a */; }; + D5ACF26115C03DBF00E21C22 /* gravel3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CB15C03DBF00E21C22 /* gravel3.m4a */; }; + D5ACF26215C03DBF00E21C22 /* gravel3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CB15C03DBF00E21C22 /* gravel3.m4a */; }; + D5ACF26315C03DBF00E21C22 /* gravel4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CC15C03DBF00E21C22 /* gravel4.m4a */; }; + D5ACF26415C03DBF00E21C22 /* gravel4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CC15C03DBF00E21C22 /* gravel4.m4a */; }; + D5ACF26515C03DBF00E21C22 /* ladder1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CD15C03DBF00E21C22 /* ladder1.m4a */; }; + D5ACF26615C03DBF00E21C22 /* ladder1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CD15C03DBF00E21C22 /* ladder1.m4a */; }; + D5ACF26715C03DBF00E21C22 /* ladder2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CE15C03DBF00E21C22 /* ladder2.m4a */; }; + D5ACF26815C03DBF00E21C22 /* ladder2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CE15C03DBF00E21C22 /* ladder2.m4a */; }; + D5ACF26915C03DBF00E21C22 /* ladder3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CF15C03DBF00E21C22 /* ladder3.m4a */; }; + D5ACF26A15C03DBF00E21C22 /* ladder3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1CF15C03DBF00E21C22 /* ladder3.m4a */; }; + D5ACF26B15C03DBF00E21C22 /* ladder4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D015C03DBF00E21C22 /* ladder4.m4a */; }; + D5ACF26C15C03DBF00E21C22 /* ladder4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D015C03DBF00E21C22 /* ladder4.m4a */; }; + D5ACF26D15C03DBF00E21C22 /* sand1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D115C03DBF00E21C22 /* sand1.m4a */; }; + D5ACF26E15C03DBF00E21C22 /* sand1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D115C03DBF00E21C22 /* sand1.m4a */; }; + D5ACF26F15C03DBF00E21C22 /* sand2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D215C03DBF00E21C22 /* sand2.m4a */; }; + D5ACF27015C03DBF00E21C22 /* sand2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D215C03DBF00E21C22 /* sand2.m4a */; }; + D5ACF27115C03DBF00E21C22 /* sand3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D315C03DBF00E21C22 /* sand3.m4a */; }; + D5ACF27215C03DBF00E21C22 /* sand3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D315C03DBF00E21C22 /* sand3.m4a */; }; + D5ACF27315C03DBF00E21C22 /* sand4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D415C03DBF00E21C22 /* sand4.m4a */; }; + D5ACF27415C03DBF00E21C22 /* sand4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D415C03DBF00E21C22 /* sand4.m4a */; }; + D5ACF27515C03DBF00E21C22 /* snow1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D515C03DBF00E21C22 /* snow1.m4a */; }; + D5ACF27615C03DBF00E21C22 /* snow1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D515C03DBF00E21C22 /* snow1.m4a */; }; + D5ACF27715C03DBF00E21C22 /* snow2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D615C03DBF00E21C22 /* snow2.m4a */; }; + D5ACF27815C03DBF00E21C22 /* snow2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D615C03DBF00E21C22 /* snow2.m4a */; }; + D5ACF27915C03DBF00E21C22 /* snow3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D715C03DBF00E21C22 /* snow3.m4a */; }; + D5ACF27A15C03DBF00E21C22 /* snow3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D715C03DBF00E21C22 /* snow3.m4a */; }; + D5ACF27B15C03DBF00E21C22 /* snow4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D815C03DBF00E21C22 /* snow4.m4a */; }; + D5ACF27C15C03DBF00E21C22 /* snow4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D815C03DBF00E21C22 /* snow4.m4a */; }; + D5ACF27D15C03DBF00E21C22 /* stone1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D915C03DBF00E21C22 /* stone1.m4a */; }; + D5ACF27E15C03DBF00E21C22 /* stone1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1D915C03DBF00E21C22 /* stone1.m4a */; }; + D5ACF27F15C03DBF00E21C22 /* stone2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DA15C03DBF00E21C22 /* stone2.m4a */; }; + D5ACF28015C03DBF00E21C22 /* stone2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DA15C03DBF00E21C22 /* stone2.m4a */; }; + D5ACF28115C03DBF00E21C22 /* stone3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DB15C03DBF00E21C22 /* stone3.m4a */; }; + D5ACF28215C03DBF00E21C22 /* stone3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DB15C03DBF00E21C22 /* stone3.m4a */; }; + D5ACF28315C03DBF00E21C22 /* stone4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DC15C03DBF00E21C22 /* stone4.m4a */; }; + D5ACF28415C03DBF00E21C22 /* stone4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DC15C03DBF00E21C22 /* stone4.m4a */; }; + D5ACF28515C03DBF00E21C22 /* wood1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DD15C03DBF00E21C22 /* wood1.m4a */; }; + D5ACF28615C03DBF00E21C22 /* wood1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DD15C03DBF00E21C22 /* wood1.m4a */; }; + D5ACF28715C03DBF00E21C22 /* wood2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DE15C03DBF00E21C22 /* wood2.m4a */; }; + D5ACF28815C03DBF00E21C22 /* wood2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DE15C03DBF00E21C22 /* wood2.m4a */; }; + D5ACF28915C03DBF00E21C22 /* wood3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DF15C03DBF00E21C22 /* wood3.m4a */; }; + D5ACF28A15C03DBF00E21C22 /* wood3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1DF15C03DBF00E21C22 /* wood3.m4a */; }; + D5ACF28B15C03DBF00E21C22 /* wood4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1E015C03DBF00E21C22 /* wood4.m4a */; }; + D5ACF28C15C03DBF00E21C22 /* wood4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF1E015C03DBF00E21C22 /* wood4.m4a */; }; + D5ACF28E15C03E8800E21C22 /* arrows.png in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF28D15C03E8800E21C22 /* arrows.png */; }; + D5ACF28F15C03E8800E21C22 /* arrows.png in Resources */ = {isa = PBXBuildFile; fileRef = D5ACF28D15C03E8800E21C22 /* arrows.png */; }; + D5B17ED515E226F50056E751 /* Throwable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B17ED215E226F50056E751 /* Throwable.cpp */; }; + D5B17ED615E226F50056E751 /* Throwable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B17ED215E226F50056E751 /* Throwable.cpp */; }; + D5B17ED915E2273F0056E751 /* SurvivalMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B17ED815E2273F0056E751 /* SurvivalMode.cpp */; }; + D5B17EDA15E2273F0056E751 /* SurvivalMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B17ED815E2273F0056E751 /* SurvivalMode.cpp */; }; + D5B17EDD15E227670056E751 /* TrapDoorTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B17EDB15E227670056E751 /* TrapDoorTile.cpp */; }; + D5B17EDE15E227670056E751 /* TrapDoorTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B17EDB15E227670056E751 /* TrapDoorTile.cpp */; }; + D5B17EE115E260910056E751 /* MoveFolder.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5B17EE015E260910056E751 /* MoveFolder.mm */; }; + D5B17EE215E260910056E751 /* MoveFolder.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5B17EE015E260910056E751 /* MoveFolder.mm */; }; + D5B26C2315E3CE51003785EA /* creeper1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C1D15E3CE51003785EA /* creeper1.m4a */; }; + D5B26C2415E3CE51003785EA /* creeper1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C1D15E3CE51003785EA /* creeper1.m4a */; }; + D5B26C2515E3CE51003785EA /* creeper2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C1E15E3CE51003785EA /* creeper2.m4a */; }; + D5B26C2615E3CE51003785EA /* creeper2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C1E15E3CE51003785EA /* creeper2.m4a */; }; + D5B26C2715E3CE51003785EA /* creeper3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C1F15E3CE51003785EA /* creeper3.m4a */; }; + D5B26C2815E3CE51003785EA /* creeper3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C1F15E3CE51003785EA /* creeper3.m4a */; }; + D5B26C2915E3CE51003785EA /* creeper4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2015E3CE51003785EA /* creeper4.m4a */; }; + D5B26C2A15E3CE51003785EA /* creeper4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2015E3CE51003785EA /* creeper4.m4a */; }; + D5B26C2B15E3CE51003785EA /* creeperdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2115E3CE51003785EA /* creeperdeath.m4a */; }; + D5B26C2C15E3CE51003785EA /* creeperdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2115E3CE51003785EA /* creeperdeath.m4a */; }; + D5B26C2D15E3CE51003785EA /* spiderdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2215E3CE51003785EA /* spiderdeath.m4a */; }; + D5B26C2E15E3CE51003785EA /* spiderdeath.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2215E3CE51003785EA /* spiderdeath.m4a */; }; + D5B26C3315E3CED3003785EA /* eat1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2F15E3CED3003785EA /* eat1.m4a */; }; + D5B26C3415E3CED3003785EA /* eat1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C2F15E3CED3003785EA /* eat1.m4a */; }; + D5B26C3515E3CED3003785EA /* eat2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C3015E3CED3003785EA /* eat2.m4a */; }; + D5B26C3615E3CED3003785EA /* eat2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C3015E3CED3003785EA /* eat2.m4a */; }; + D5B26C3715E3CED3003785EA /* eat3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C3115E3CED3003785EA /* eat3.m4a */; }; + D5B26C3815E3CED3003785EA /* eat3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C3115E3CED3003785EA /* eat3.m4a */; }; + D5B26C3915E3CED3003785EA /* fuse.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C3215E3CED3003785EA /* fuse.m4a */; }; + D5B26C3A15E3CED3003785EA /* fuse.m4a in Resources */ = {isa = PBXBuildFile; fileRef = D5B26C3215E3CED3003785EA /* fuse.m4a */; }; + D5B50A4F14CFF492005F7284 /* chicken.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4614CFF492005F7284 /* chicken.png */; }; + D5B50A5014CFF492005F7284 /* chicken.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4614CFF492005F7284 /* chicken.png */; }; + D5B50A5114CFF492005F7284 /* cow.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4714CFF492005F7284 /* cow.png */; }; + D5B50A5214CFF492005F7284 /* cow.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4714CFF492005F7284 /* cow.png */; }; + D5B50A5314CFF492005F7284 /* creeper.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4814CFF492005F7284 /* creeper.png */; }; + D5B50A5414CFF492005F7284 /* creeper.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4814CFF492005F7284 /* creeper.png */; }; + D5B50A5514CFF492005F7284 /* pig.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4914CFF492005F7284 /* pig.png */; }; + D5B50A5614CFF492005F7284 /* pig.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4914CFF492005F7284 /* pig.png */; }; + D5B50A5714CFF492005F7284 /* sheep_fur.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4A14CFF492005F7284 /* sheep_fur.png */; }; + D5B50A5814CFF492005F7284 /* sheep_fur.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4A14CFF492005F7284 /* sheep_fur.png */; }; + D5B50A5914CFF492005F7284 /* sheep.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4B14CFF492005F7284 /* sheep.png */; }; + D5B50A5A14CFF492005F7284 /* sheep.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4B14CFF492005F7284 /* sheep.png */; }; + D5B50A5B14CFF492005F7284 /* skeleton.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4C14CFF492005F7284 /* skeleton.png */; }; + D5B50A5C14CFF492005F7284 /* skeleton.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4C14CFF492005F7284 /* skeleton.png */; }; + D5B50A5D14CFF492005F7284 /* spider.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4D14CFF492005F7284 /* spider.png */; }; + D5B50A5E14CFF492005F7284 /* spider.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4D14CFF492005F7284 /* spider.png */; }; + D5B50A5F14CFF492005F7284 /* zombie.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4E14CFF492005F7284 /* zombie.png */; }; + D5B50A6014CFF492005F7284 /* zombie.png in Resources */ = {isa = PBXBuildFile; fileRef = D5B50A4E14CFF492005F7284 /* zombie.png */; }; + D5B50F6F14CFF670005F7284 /* AppPlatform_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C1C14CFF66F005F7284 /* AppPlatform_iOS.mm */; }; + D5B50F7014CFF670005F7284 /* AppPlatform_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C1C14CFF66F005F7284 /* AppPlatform_iOS.mm */; }; + D5B50F7314CFF670005F7284 /* CreativeMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2114CFF66F005F7284 /* CreativeMode.cpp */; }; + D5B50F7414CFF670005F7284 /* CreativeMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2114CFF66F005F7284 /* CreativeMode.cpp */; }; + D5B50F7514CFF670005F7284 /* GameMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2314CFF66F005F7284 /* GameMode.cpp */; }; + D5B50F7614CFF670005F7284 /* GameMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2314CFF66F005F7284 /* GameMode.cpp */; }; + D5B50F7714CFF670005F7284 /* Button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2814CFF66F005F7284 /* Button.cpp */; }; + D5B50F7814CFF670005F7284 /* Button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2814CFF66F005F7284 /* Button.cpp */; }; + D5B50F7914CFF670005F7284 /* ImageButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2A14CFF66F005F7284 /* ImageButton.cpp */; }; + D5B50F7A14CFF670005F7284 /* ImageButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2A14CFF66F005F7284 /* ImageButton.cpp */; }; + D5B50F7B14CFF670005F7284 /* LargeImageButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2C14CFF66F005F7284 /* LargeImageButton.cpp */; }; + D5B50F7C14CFF670005F7284 /* LargeImageButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2C14CFF66F005F7284 /* LargeImageButton.cpp */; }; + D5B50F7D14CFF670005F7284 /* RolledSelectionListH.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2E14CFF66F005F7284 /* RolledSelectionListH.cpp */; }; + D5B50F7E14CFF670005F7284 /* RolledSelectionListH.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C2E14CFF66F005F7284 /* RolledSelectionListH.cpp */; }; + D5B50F7F14CFF670005F7284 /* RolledSelectionListV.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3014CFF66F005F7284 /* RolledSelectionListV.cpp */; }; + D5B50F8014CFF670005F7284 /* RolledSelectionListV.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3014CFF66F005F7284 /* RolledSelectionListV.cpp */; }; + D5B50F8114CFF670005F7284 /* ScrolledSelectionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3214CFF66F005F7284 /* ScrolledSelectionList.cpp */; }; + D5B50F8214CFF670005F7284 /* ScrolledSelectionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3214CFF66F005F7284 /* ScrolledSelectionList.cpp */; }; + D5B50F8314CFF670005F7284 /* SmallButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3414CFF66F005F7284 /* SmallButton.cpp */; }; + D5B50F8414CFF670005F7284 /* SmallButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3414CFF66F005F7284 /* SmallButton.cpp */; }; + D5B50F8514CFF670005F7284 /* Font.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3614CFF66F005F7284 /* Font.cpp */; }; + D5B50F8614CFF670005F7284 /* Font.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3614CFF66F005F7284 /* Font.cpp */; }; + D5B50F8714CFF670005F7284 /* Gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3814CFF66F005F7284 /* Gui.cpp */; }; + D5B50F8814CFF670005F7284 /* Gui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3814CFF66F005F7284 /* Gui.cpp */; }; + D5B50F8914CFF670005F7284 /* GuiComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3A14CFF66F005F7284 /* GuiComponent.cpp */; }; + D5B50F8A14CFF670005F7284 /* GuiComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3A14CFF66F005F7284 /* GuiComponent.cpp */; }; + D5B50F8B14CFF670005F7284 /* Screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3C14CFF66F005F7284 /* Screen.cpp */; }; + D5B50F8C14CFF670005F7284 /* Screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C3C14CFF66F005F7284 /* Screen.cpp */; }; + D5B50F8D14CFF670005F7284 /* ChatScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4014CFF66F005F7284 /* ChatScreen.cpp */; }; + D5B50F8E14CFF670005F7284 /* ChatScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4014CFF66F005F7284 /* ChatScreen.cpp */; }; + D5B50F8F14CFF670005F7284 /* ConfirmScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4214CFF66F005F7284 /* ConfirmScreen.cpp */; }; + D5B50F9014CFF670005F7284 /* ConfirmScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4214CFF66F005F7284 /* ConfirmScreen.cpp */; }; + D5B50F9114CFF670005F7284 /* IngameBlockSelectionScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4614CFF66F005F7284 /* IngameBlockSelectionScreen.cpp */; }; + D5B50F9214CFF670005F7284 /* IngameBlockSelectionScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4614CFF66F005F7284 /* IngameBlockSelectionScreen.cpp */; }; + D5B50F9314CFF670005F7284 /* JoinGameScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4914CFF66F005F7284 /* JoinGameScreen.cpp */; }; + D5B50F9414CFF670005F7284 /* JoinGameScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4914CFF66F005F7284 /* JoinGameScreen.cpp */; }; + D5B50F9514CFF670005F7284 /* OptionsScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4B14CFF66F005F7284 /* OptionsScreen.cpp */; }; + D5B50F9614CFF670005F7284 /* OptionsScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4B14CFF66F005F7284 /* OptionsScreen.cpp */; }; + D5B50F9714CFF670005F7284 /* PauseScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4D14CFF66F005F7284 /* PauseScreen.cpp */; }; + D5B50F9814CFF670005F7284 /* PauseScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C4D14CFF66F005F7284 /* PauseScreen.cpp */; }; + D5B50F9914CFF670005F7284 /* ProgressScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5014CFF66F005F7284 /* ProgressScreen.cpp */; }; + D5B50F9A14CFF670005F7284 /* ProgressScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5014CFF66F005F7284 /* ProgressScreen.cpp */; }; + D5B50F9B14CFF670005F7284 /* RenameMPLevelScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5214CFF66F005F7284 /* RenameMPLevelScreen.cpp */; }; + D5B50F9C14CFF670005F7284 /* RenameMPLevelScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5214CFF66F005F7284 /* RenameMPLevelScreen.cpp */; }; + D5B50F9D14CFF670005F7284 /* ScreenChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5414CFF66F005F7284 /* ScreenChooser.cpp */; }; + D5B50F9E14CFF670005F7284 /* ScreenChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5414CFF66F005F7284 /* ScreenChooser.cpp */; }; + D5B50F9F14CFF670005F7284 /* SelectWorldScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5614CFF66F005F7284 /* SelectWorldScreen.cpp */; }; + D5B50FA014CFF670005F7284 /* SelectWorldScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5614CFF66F005F7284 /* SelectWorldScreen.cpp */; }; + D5B50FA114CFF670005F7284 /* StartMenuScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5814CFF66F005F7284 /* StartMenuScreen.cpp */; }; + D5B50FA214CFF670005F7284 /* StartMenuScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5814CFF66F005F7284 /* StartMenuScreen.cpp */; }; + D5B50FA314CFF670005F7284 /* TouchIngameBlockSelectionScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5B14CFF66F005F7284 /* TouchIngameBlockSelectionScreen.cpp */; }; + D5B50FA414CFF670005F7284 /* TouchIngameBlockSelectionScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5B14CFF66F005F7284 /* TouchIngameBlockSelectionScreen.cpp */; }; + D5B50FA514CFF670005F7284 /* TouchJoinGameScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5D14CFF66F005F7284 /* TouchJoinGameScreen.cpp */; }; + D5B50FA614CFF670005F7284 /* TouchJoinGameScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5D14CFF66F005F7284 /* TouchJoinGameScreen.cpp */; }; + D5B50FA714CFF670005F7284 /* TouchSelectWorldScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5F14CFF66F005F7284 /* TouchSelectWorldScreen.cpp */; }; + D5B50FA814CFF670005F7284 /* TouchSelectWorldScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C5F14CFF66F005F7284 /* TouchSelectWorldScreen.cpp */; }; + D5B50FA914CFF670005F7284 /* TouchStartMenuScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6114CFF66F005F7284 /* TouchStartMenuScreen.cpp */; }; + D5B50FAA14CFF670005F7284 /* TouchStartMenuScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6114CFF66F005F7284 /* TouchStartMenuScreen.cpp */; }; + D5B50FAB14CFF670005F7284 /* UploadPhotoScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6314CFF66F005F7284 /* UploadPhotoScreen.cpp */; }; + D5B50FAC14CFF670005F7284 /* UploadPhotoScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6314CFF66F005F7284 /* UploadPhotoScreen.cpp */; }; + D5B50FAD14CFF670005F7284 /* Minecraft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6814CFF66F005F7284 /* Minecraft.cpp */; }; + D5B50FAE14CFF670005F7284 /* Minecraft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6814CFF66F005F7284 /* Minecraft.cpp */; }; + D5B50FAF14CFF670005F7284 /* ChickenModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6B14CFF66F005F7284 /* ChickenModel.cpp */; }; + D5B50FB014CFF670005F7284 /* ChickenModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6B14CFF66F005F7284 /* ChickenModel.cpp */; }; + D5B50FB114CFF670005F7284 /* CowModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6D14CFF66F005F7284 /* CowModel.cpp */; }; + D5B50FB214CFF670005F7284 /* CowModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C6D14CFF66F005F7284 /* CowModel.cpp */; }; + D5B50FB314CFF670005F7284 /* Cube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7114CFF66F005F7284 /* Cube.cpp */; }; + D5B50FB414CFF670005F7284 /* Cube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7114CFF66F005F7284 /* Cube.cpp */; }; + D5B50FB514CFF670005F7284 /* ModelPart.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7314CFF66F005F7284 /* ModelPart.cpp */; }; + D5B50FB614CFF670005F7284 /* ModelPart.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7314CFF66F005F7284 /* ModelPart.cpp */; }; + D5B50FB714CFF670005F7284 /* Polygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7514CFF66F005F7284 /* Polygon.cpp */; }; + D5B50FB814CFF670005F7284 /* Polygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7514CFF66F005F7284 /* Polygon.cpp */; }; + D5B50FB914CFF670005F7284 /* HumanoidModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7814CFF66F005F7284 /* HumanoidModel.cpp */; }; + D5B50FBA14CFF670005F7284 /* HumanoidModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7814CFF66F005F7284 /* HumanoidModel.cpp */; }; + D5B50FBB14CFF670005F7284 /* PigModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7C14CFF66F005F7284 /* PigModel.cpp */; }; + D5B50FBC14CFF670005F7284 /* PigModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7C14CFF66F005F7284 /* PigModel.cpp */; }; + D5B50FBD14CFF670005F7284 /* QuadrupedModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7E14CFF66F005F7284 /* QuadrupedModel.cpp */; }; + D5B50FBE14CFF670005F7284 /* QuadrupedModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C7E14CFF66F005F7284 /* QuadrupedModel.cpp */; }; + D5B50FBF14CFF670005F7284 /* Options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C8814CFF66F005F7284 /* Options.cpp */; }; + D5B50FC014CFF670005F7284 /* Options.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C8814CFF66F005F7284 /* Options.cpp */; }; + D5B50FC114CFF670005F7284 /* OptionStrings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C8A14CFF66F005F7284 /* OptionStrings.cpp */; }; + D5B50FC214CFF670005F7284 /* OptionStrings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C8A14CFF66F005F7284 /* OptionStrings.cpp */; }; + D5B50FC314CFF670005F7284 /* Particle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C9214CFF66F005F7284 /* Particle.cpp */; }; + D5B50FC414CFF670005F7284 /* Particle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C9214CFF66F005F7284 /* Particle.cpp */; }; + D5B50FC514CFF670005F7284 /* ParticleEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C9414CFF66F005F7284 /* ParticleEngine.cpp */; }; + D5B50FC614CFF670005F7284 /* ParticleEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50C9414CFF66F005F7284 /* ParticleEngine.cpp */; }; + D5B50FC714CFF670005F7284 /* KeyboardInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CA414CFF66F005F7284 /* KeyboardInput.cpp */; }; + D5B50FC814CFF670005F7284 /* KeyboardInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CA414CFF66F005F7284 /* KeyboardInput.cpp */; }; + D5B50FC914CFF670005F7284 /* TouchscreenInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CAC14CFF66F005F7284 /* TouchscreenInput.cpp */; }; + D5B50FCA14CFF670005F7284 /* TouchscreenInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CAC14CFF66F005F7284 /* TouchscreenInput.cpp */; }; + D5B50FCB14CFF670005F7284 /* LocalPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CB014CFF66F005F7284 /* LocalPlayer.cpp */; }; + D5B50FCC14CFF670005F7284 /* LocalPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CB014CFF66F005F7284 /* LocalPlayer.cpp */; }; + D5B50FCD14CFF670005F7284 /* Chunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CB314CFF66F005F7284 /* Chunk.cpp */; }; + D5B50FCE14CFF670005F7284 /* Chunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CB314CFF66F005F7284 /* Chunk.cpp */; }; + D5B50FCF14CFF670005F7284 /* Frustum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CBA14CFF66F005F7284 /* Frustum.cpp */; }; + D5B50FD014CFF670005F7284 /* Frustum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CBA14CFF66F005F7284 /* Frustum.cpp */; }; + D5B50FD114CFF670005F7284 /* ChickenRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CC614CFF66F005F7284 /* ChickenRenderer.cpp */; }; + D5B50FD214CFF670005F7284 /* ChickenRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CC614CFF66F005F7284 /* ChickenRenderer.cpp */; }; + D5B50FD314CFF670005F7284 /* EntityRenderDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CC914CFF66F005F7284 /* EntityRenderDispatcher.cpp */; }; + D5B50FD414CFF670005F7284 /* EntityRenderDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CC914CFF66F005F7284 /* EntityRenderDispatcher.cpp */; }; + D5B50FD514CFF670005F7284 /* EntityRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CCB14CFF66F005F7284 /* EntityRenderer.cpp */; }; + D5B50FD614CFF670005F7284 /* EntityRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CCB14CFF66F005F7284 /* EntityRenderer.cpp */; }; + D5B50FD714CFF670005F7284 /* HumanoidMobRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CCD14CFF66F005F7284 /* HumanoidMobRenderer.cpp */; }; + D5B50FD814CFF670005F7284 /* HumanoidMobRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CCD14CFF66F005F7284 /* HumanoidMobRenderer.cpp */; }; + D5B50FD914CFF670005F7284 /* ItemRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CCF14CFF66F005F7284 /* ItemRenderer.cpp */; }; + D5B50FDA14CFF670005F7284 /* ItemRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CCF14CFF66F005F7284 /* ItemRenderer.cpp */; }; + D5B50FDB14CFF670005F7284 /* ItemSpriteRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CD114CFF66F005F7284 /* ItemSpriteRenderer.cpp */; }; + D5B50FDC14CFF670005F7284 /* ItemSpriteRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CD114CFF66F005F7284 /* ItemSpriteRenderer.cpp */; }; + D5B50FDD14CFF670005F7284 /* MobRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CD314CFF66F005F7284 /* MobRenderer.cpp */; }; + D5B50FDE14CFF670005F7284 /* MobRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CD314CFF66F005F7284 /* MobRenderer.cpp */; }; + D5B50FDF14CFF670005F7284 /* TntRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CD814CFF66F005F7284 /* TntRenderer.cpp */; }; + D5B50FE014CFF670005F7284 /* TntRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CD814CFF66F005F7284 /* TntRenderer.cpp */; }; + D5B50FE114CFF670005F7284 /* TripodCameraRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CDA14CFF66F005F7284 /* TripodCameraRenderer.cpp */; }; + D5B50FE214CFF670005F7284 /* TripodCameraRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CDA14CFF66F005F7284 /* TripodCameraRenderer.cpp */; }; + D5B50FE314CFF670005F7284 /* GameRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CDC14CFF66F005F7284 /* GameRenderer.cpp */; }; + D5B50FE414CFF670005F7284 /* GameRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CDC14CFF66F005F7284 /* GameRenderer.cpp */; }; + D5B50FE514CFF670005F7284 /* gles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CDE14CFF66F005F7284 /* gles.cpp */; }; + D5B50FE614CFF670005F7284 /* gles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CDE14CFF66F005F7284 /* gles.cpp */; }; + D5B50FE714CFF670005F7284 /* ItemInHandRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE014CFF66F005F7284 /* ItemInHandRenderer.cpp */; }; + D5B50FE814CFF670005F7284 /* ItemInHandRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE014CFF66F005F7284 /* ItemInHandRenderer.cpp */; }; + D5B50FE914CFF670005F7284 /* LevelRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE214CFF66F005F7284 /* LevelRenderer.cpp */; }; + D5B50FEA14CFF670005F7284 /* LevelRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE214CFF66F005F7284 /* LevelRenderer.cpp */; }; + D5B50FEB14CFF670005F7284 /* DynamicTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE514CFF66F005F7284 /* DynamicTexture.cpp */; }; + D5B50FEC14CFF670005F7284 /* DynamicTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE514CFF66F005F7284 /* DynamicTexture.cpp */; }; + D5B50FED14CFF670005F7284 /* RenderChunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE714CFF66F005F7284 /* RenderChunk.cpp */; }; + D5B50FEE14CFF670005F7284 /* RenderChunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CE714CFF66F005F7284 /* RenderChunk.cpp */; }; + D5B50FEF14CFF670005F7284 /* RenderList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CEA14CFF66F005F7284 /* RenderList.cpp */; }; + D5B50FF014CFF670005F7284 /* RenderList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CEA14CFF66F005F7284 /* RenderList.cpp */; }; + D5B50FF114CFF670005F7284 /* Tesselator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CEC14CFF66F005F7284 /* Tesselator.cpp */; }; + D5B50FF214CFF670005F7284 /* Tesselator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CEC14CFF66F005F7284 /* Tesselator.cpp */; }; + D5B50FF314CFF670005F7284 /* Textures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CEF14CFF66F005F7284 /* Textures.cpp */; }; + D5B50FF414CFF670005F7284 /* Textures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CEF14CFF66F005F7284 /* Textures.cpp */; }; + D5B50FF514CFF670005F7284 /* TileRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CF114CFF66F005F7284 /* TileRenderer.cpp */; }; + D5B50FF614CFF670005F7284 /* TileRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50CF114CFF66F005F7284 /* TileRenderer.cpp */; }; + D5B5102D14CFF670005F7284 /* Sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D1114CFF66F005F7284 /* Sound.cpp */; }; + D5B5102E14CFF670005F7284 /* Sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D1114CFF66F005F7284 /* Sound.cpp */; }; + D5B5102F14CFF670005F7284 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D1B14CFF66F005F7284 /* main.cpp */; }; + D5B5103014CFF670005F7284 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D1B14CFF66F005F7284 /* main.cpp */; }; + D5B5103514CFF670005F7284 /* Tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D2E14CFF66F005F7284 /* Tag.cpp */; }; + D5B5103614CFF670005F7284 /* Tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D2E14CFF66F005F7284 /* Tag.cpp */; }; + D5B5103714CFF670005F7284 /* ClientSideNetworkHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D3114CFF66F005F7284 /* ClientSideNetworkHandler.cpp */; }; + D5B5103814CFF670005F7284 /* ClientSideNetworkHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D3114CFF66F005F7284 /* ClientSideNetworkHandler.cpp */; }; + D5B5103914CFF670005F7284 /* NetEventCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D3314CFF66F005F7284 /* NetEventCallback.cpp */; }; + D5B5103A14CFF670005F7284 /* NetEventCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D3314CFF66F005F7284 /* NetEventCallback.cpp */; }; + D5B5103B14CFF670005F7284 /* Packet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D4A14CFF66F005F7284 /* Packet.cpp */; }; + D5B5103C14CFF670005F7284 /* Packet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D4A14CFF66F005F7284 /* Packet.cpp */; }; + D5B5103D14CFF670005F7284 /* RakNetInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D4C14CFF66F005F7284 /* RakNetInstance.cpp */; }; + D5B5103E14CFF670005F7284 /* RakNetInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D4C14CFF66F005F7284 /* RakNetInstance.cpp */; }; + D5B5103F14CFF670005F7284 /* ServerSideNetworkHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D4E14CFF66F005F7284 /* ServerSideNetworkHandler.cpp */; }; + D5B5104014CFF670005F7284 /* ServerSideNetworkHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D4E14CFF66F005F7284 /* ServerSideNetworkHandler.cpp */; }; + D5B5104114CFF670005F7284 /* NinecraftApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5014CFF66F005F7284 /* NinecraftApp.cpp */; }; + D5B5104214CFF670005F7284 /* NinecraftApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5014CFF66F005F7284 /* NinecraftApp.cpp */; }; + D5B5104314CFF670005F7284 /* Performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5214CFF66F005F7284 /* Performance.cpp */; }; + D5B5104414CFF670005F7284 /* Performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5214CFF66F005F7284 /* Performance.cpp */; }; + D5B5104714CFF670005F7284 /* SoundSystemAL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5A14CFF66F005F7284 /* SoundSystemAL.cpp */; }; + D5B5104814CFF670005F7284 /* SoundSystemAL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5A14CFF66F005F7284 /* SoundSystemAL.cpp */; }; + D5B5104B14CFF670005F7284 /* CThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5E14CFF66F005F7284 /* CThread.cpp */; }; + D5B5104C14CFF670005F7284 /* CThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D5E14CFF66F005F7284 /* CThread.cpp */; }; + D5B5104D14CFF670005F7284 /* Controller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6214CFF66F005F7284 /* Controller.cpp */; }; + D5B5104E14CFF670005F7284 /* Controller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6214CFF66F005F7284 /* Controller.cpp */; }; + D5B5104F14CFF670005F7284 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6414CFF66F005F7284 /* Keyboard.cpp */; }; + D5B5105014CFF670005F7284 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6414CFF66F005F7284 /* Keyboard.cpp */; }; + D5B5105114CFF670005F7284 /* Mouse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6614CFF66F005F7284 /* Mouse.cpp */; }; + D5B5105214CFF670005F7284 /* Mouse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6614CFF66F005F7284 /* Mouse.cpp */; }; + D5B5105314CFF670005F7284 /* Multitouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6814CFF66F005F7284 /* Multitouch.cpp */; }; + D5B5105414CFF670005F7284 /* Multitouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6814CFF66F005F7284 /* Multitouch.cpp */; }; + D5B5105514CFF670005F7284 /* time.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6B14CFF66F005F7284 /* time.cpp */; }; + D5B5105614CFF670005F7284 /* time.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50D6B14CFF66F005F7284 /* time.cpp */; }; + D5B5110D14CFF670005F7284 /* DataIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E5D14CFF66F005F7284 /* DataIO.cpp */; }; + D5B5110E14CFF670005F7284 /* DataIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E5D14CFF66F005F7284 /* DataIO.cpp */; }; + D5B5110F14CFF670005F7284 /* Mth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6014CFF66F005F7284 /* Mth.cpp */; }; + D5B5111014CFF670005F7284 /* Mth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6014CFF66F005F7284 /* Mth.cpp */; }; + D5B5111114CFF670005F7284 /* PerfRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6214CFF66F005F7284 /* PerfRenderer.cpp */; }; + D5B5111214CFF670005F7284 /* PerfRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6214CFF66F005F7284 /* PerfRenderer.cpp */; }; + D5B5111314CFF670005F7284 /* PerfTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6414CFF66F005F7284 /* PerfTimer.cpp */; }; + D5B5111414CFF670005F7284 /* PerfTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6414CFF66F005F7284 /* PerfTimer.cpp */; }; + D5B5111514CFF670005F7284 /* StringUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6914CFF66F005F7284 /* StringUtils.cpp */; }; + D5B5111614CFF670005F7284 /* StringUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6914CFF66F005F7284 /* StringUtils.cpp */; }; + D5B5111714CFF670005F7284 /* Direction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6E14CFF66F005F7284 /* Direction.cpp */; }; + D5B5111814CFF670005F7284 /* Direction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E6E14CFF66F005F7284 /* Direction.cpp */; }; + D5B5111914CFF670005F7284 /* Animal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7214CFF66F005F7284 /* Animal.cpp */; }; + D5B5111A14CFF670005F7284 /* Animal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7214CFF66F005F7284 /* Animal.cpp */; }; + D5B5111B14CFF670005F7284 /* Chicken.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7514CFF66F005F7284 /* Chicken.cpp */; }; + D5B5111C14CFF670005F7284 /* Chicken.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7514CFF66F005F7284 /* Chicken.cpp */; }; + D5B5111D14CFF670005F7284 /* Cow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7714CFF66F005F7284 /* Cow.cpp */; }; + D5B5111E14CFF670005F7284 /* Cow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7714CFF66F005F7284 /* Cow.cpp */; }; + D5B5111F14CFF670005F7284 /* Pig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7914CFF66F005F7284 /* Pig.cpp */; }; + D5B5112014CFF670005F7284 /* Pig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7914CFF66F005F7284 /* Pig.cpp */; }; + D5B5112114CFF670005F7284 /* Sheep.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7B14CFF66F005F7284 /* Sheep.cpp */; }; + D5B5112214CFF670005F7284 /* Sheep.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7B14CFF66F005F7284 /* Sheep.cpp */; }; + D5B5112314CFF670005F7284 /* WaterAnimal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7D14CFF66F005F7284 /* WaterAnimal.cpp */; }; + D5B5112414CFF670005F7284 /* WaterAnimal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E7D14CFF66F005F7284 /* WaterAnimal.cpp */; }; + D5B5112514CFF670005F7284 /* Entity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8014CFF66F005F7284 /* Entity.cpp */; }; + D5B5112614CFF670005F7284 /* Entity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8014CFF66F005F7284 /* Entity.cpp */; }; + D5B5112714CFF670005F7284 /* FlyingMob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8614CFF66F005F7284 /* FlyingMob.cpp */; }; + D5B5112814CFF670005F7284 /* FlyingMob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8614CFF66F005F7284 /* FlyingMob.cpp */; }; + D5B5112914CFF670005F7284 /* FallingTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8914CFF66F005F7284 /* FallingTile.cpp */; }; + D5B5112A14CFF670005F7284 /* FallingTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8914CFF66F005F7284 /* FallingTile.cpp */; }; + D5B5112B14CFF670005F7284 /* ItemEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8B14CFF66F005F7284 /* ItemEntity.cpp */; }; + D5B5112C14CFF670005F7284 /* ItemEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8B14CFF66F005F7284 /* ItemEntity.cpp */; }; + D5B5112D14CFF670005F7284 /* PrimedTnt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8D14CFF66F005F7284 /* PrimedTnt.cpp */; }; + D5B5112E14CFF670005F7284 /* PrimedTnt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8D14CFF66F005F7284 /* PrimedTnt.cpp */; }; + D5B5112F14CFF670005F7284 /* TripodCamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8F14CFF66F005F7284 /* TripodCamera.cpp */; }; + D5B5113014CFF670005F7284 /* TripodCamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E8F14CFF66F005F7284 /* TripodCamera.cpp */; }; + D5B5113114CFF670005F7284 /* Mob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E9114CFF66F005F7284 /* Mob.cpp */; }; + D5B5113214CFF670005F7284 /* Mob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E9114CFF66F005F7284 /* Mob.cpp */; }; + D5B5113314CFF670005F7284 /* MobCategory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E9314CFF66F005F7284 /* MobCategory.cpp */; }; + D5B5113414CFF670005F7284 /* MobCategory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E9314CFF66F005F7284 /* MobCategory.cpp */; }; + D5B5113714CFF670005F7284 /* PathFinderMob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E9E14CFF66F005F7284 /* PathFinderMob.cpp */; }; + D5B5113814CFF670005F7284 /* PathFinderMob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50E9E14CFF66F005F7284 /* PathFinderMob.cpp */; }; + D5B5113914CFF670005F7284 /* Inventory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EA214CFF66F005F7284 /* Inventory.cpp */; }; + D5B5113A14CFF670005F7284 /* Inventory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EA214CFF66F005F7284 /* Inventory.cpp */; }; + D5B5113B14CFF670005F7284 /* Player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EA614CFF66F005F7284 /* Player.cpp */; }; + D5B5113C14CFF670005F7284 /* Player.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EA614CFF66F005F7284 /* Player.cpp */; }; + D5B5113D14CFF670005F7284 /* Arrow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EA914CFF66F005F7284 /* Arrow.cpp */; }; + D5B5113E14CFF670005F7284 /* Arrow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EA914CFF66F005F7284 /* Arrow.cpp */; }; + D5B5113F14CFF670005F7284 /* Recipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EB414CFF66F005F7284 /* Recipes.cpp */; }; + D5B5114014CFF670005F7284 /* Recipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EB414CFF66F005F7284 /* Recipes.cpp */; }; + D5B5114114CFF670005F7284 /* ToolRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EB814CFF66F005F7284 /* ToolRecipes.cpp */; }; + D5B5114214CFF670005F7284 /* ToolRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EB814CFF66F005F7284 /* ToolRecipes.cpp */; }; + D5B5114314CFF670005F7284 /* WeaponRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EBA14CFF66F005F7284 /* WeaponRecipes.cpp */; }; + D5B5114414CFF670005F7284 /* WeaponRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EBA14CFF66F005F7284 /* WeaponRecipes.cpp */; }; + D5B5114514CFF670005F7284 /* HatchetItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EBF14CFF66F005F7284 /* HatchetItem.cpp */; }; + D5B5114614CFF670005F7284 /* HatchetItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EBF14CFF66F005F7284 /* HatchetItem.cpp */; }; + D5B5114714CFF670005F7284 /* Item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC114CFF66F005F7284 /* Item.cpp */; }; + D5B5114814CFF670005F7284 /* Item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC114CFF66F005F7284 /* Item.cpp */; }; + D5B5114914CFF670005F7284 /* ItemInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC414CFF66F005F7284 /* ItemInstance.cpp */; }; + D5B5114A14CFF670005F7284 /* ItemInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC414CFF66F005F7284 /* ItemInstance.cpp */; }; + D5B5114B14CFF670005F7284 /* PickaxeItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC614CFF66F005F7284 /* PickaxeItem.cpp */; }; + D5B5114C14CFF670005F7284 /* PickaxeItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC614CFF66F005F7284 /* PickaxeItem.cpp */; }; + D5B5114D14CFF670005F7284 /* ShovelItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC914CFF66F005F7284 /* ShovelItem.cpp */; }; + D5B5114E14CFF670005F7284 /* ShovelItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EC914CFF66F005F7284 /* ShovelItem.cpp */; }; + D5B5114F14CFF670005F7284 /* Biome.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50ED214CFF66F005F7284 /* Biome.cpp */; }; + D5B5115014CFF670005F7284 /* Biome.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50ED214CFF66F005F7284 /* Biome.cpp */; }; + D5B5115114CFF670005F7284 /* BiomeSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50ED514CFF66F005F7284 /* BiomeSource.cpp */; }; + D5B5115214CFF670005F7284 /* BiomeSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50ED514CFF66F005F7284 /* BiomeSource.cpp */; }; + D5B5115314CFF670005F7284 /* LevelChunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EE114CFF66F005F7284 /* LevelChunk.cpp */; }; + D5B5115414CFF670005F7284 /* LevelChunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EE114CFF66F005F7284 /* LevelChunk.cpp */; }; + D5B5115514CFF670005F7284 /* Dimension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EE814CFF66F005F7284 /* Dimension.cpp */; }; + D5B5115614CFF670005F7284 /* Dimension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EE814CFF66F005F7284 /* Dimension.cpp */; }; + D5B5115714CFF670005F7284 /* Explosion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EEC14CFF66F005F7284 /* Explosion.cpp */; }; + D5B5115814CFF670005F7284 /* Explosion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EEC14CFF66F005F7284 /* Explosion.cpp */; }; + D5B5115914CFF670005F7284 /* Level.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EEE14CFF66F005F7284 /* Level.cpp */; }; + D5B5115A14CFF670005F7284 /* Level.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EEE14CFF66F005F7284 /* Level.cpp */; }; + D5B5115B14CFF670005F7284 /* CanyonFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EF214CFF66F005F7284 /* CanyonFeature.cpp */; }; + D5B5115C14CFF670005F7284 /* CanyonFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EF214CFF66F005F7284 /* CanyonFeature.cpp */; }; + D5B5115D14CFF670005F7284 /* DungeonFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EF414CFF66F005F7284 /* DungeonFeature.cpp */; }; + D5B5115E14CFF670005F7284 /* DungeonFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50EF414CFF66F005F7284 /* DungeonFeature.cpp */; }; + D5B5115F14CFF670005F7284 /* LargeCaveFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0414CFF66F005F7284 /* LargeCaveFeature.cpp */; }; + D5B5116014CFF670005F7284 /* LargeCaveFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0414CFF66F005F7284 /* LargeCaveFeature.cpp */; }; + D5B5116114CFF670005F7284 /* LargeFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0614CFF66F005F7284 /* LargeFeature.cpp */; }; + D5B5116214CFF670005F7284 /* LargeFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0614CFF66F005F7284 /* LargeFeature.cpp */; }; + D5B5116314CFF670005F7284 /* RandomLevelSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0814CFF66F005F7284 /* RandomLevelSource.cpp */; }; + D5B5116414CFF670005F7284 /* RandomLevelSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0814CFF66F005F7284 /* RandomLevelSource.cpp */; }; + D5B5116514CFF670005F7284 /* ImprovedNoise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0B14CFF66F005F7284 /* ImprovedNoise.cpp */; }; + D5B5116614CFF670005F7284 /* ImprovedNoise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0B14CFF66F005F7284 /* ImprovedNoise.cpp */; }; + D5B5116714CFF670005F7284 /* PerlinNoise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0D14CFF66F005F7284 /* PerlinNoise.cpp */; }; + D5B5116814CFF670005F7284 /* PerlinNoise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0D14CFF66F005F7284 /* PerlinNoise.cpp */; }; + D5B5116914CFF670005F7284 /* Synth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0F14CFF66F005F7284 /* Synth.cpp */; }; + D5B5116A14CFF670005F7284 /* Synth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F0F14CFF66F005F7284 /* Synth.cpp */; }; + D5B5116B14CFF670005F7284 /* LightLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1514CFF66F005F7284 /* LightLayer.cpp */; }; + D5B5116C14CFF670005F7284 /* LightLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1514CFF66F005F7284 /* LightLayer.cpp */; }; + D5B5116D14CFF670005F7284 /* LightUpdate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1714CFF66F005F7284 /* LightUpdate.cpp */; }; + D5B5116E14CFF670005F7284 /* LightUpdate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1714CFF66F005F7284 /* LightUpdate.cpp */; }; + D5B5116F14CFF670005F7284 /* Material.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1D14CFF66F005F7284 /* Material.cpp */; }; + D5B5117014CFF670005F7284 /* Material.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1D14CFF66F005F7284 /* Material.cpp */; }; + D5B5117114CFF670005F7284 /* MobSpawner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1F14CFF66F005F7284 /* MobSpawner.cpp */; }; + D5B5117214CFF670005F7284 /* MobSpawner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F1F14CFF66F005F7284 /* MobSpawner.cpp */; }; + D5B5117314CFF670005F7284 /* Region.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F2614CFF66F005F7284 /* Region.cpp */; }; + D5B5117414CFF670005F7284 /* Region.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F2614CFF66F005F7284 /* Region.cpp */; }; + D5B5117514CFF670005F7284 /* ExternalFileLevelStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F2914CFF66F005F7284 /* ExternalFileLevelStorage.cpp */; }; + D5B5117614CFF670005F7284 /* ExternalFileLevelStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F2914CFF66F005F7284 /* ExternalFileLevelStorage.cpp */; }; + D5B5117714CFF670005F7284 /* ExternalFileLevelStorageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F2B14CFF66F005F7284 /* ExternalFileLevelStorageSource.cpp */; }; + D5B5117814CFF670005F7284 /* ExternalFileLevelStorageSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F2B14CFF66F005F7284 /* ExternalFileLevelStorageSource.cpp */; }; + D5B5117914CFF670005F7284 /* RegionFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F3414CFF66F005F7284 /* RegionFile.cpp */; }; + D5B5117A14CFF670005F7284 /* RegionFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F3414CFF66F005F7284 /* RegionFile.cpp */; }; + D5B5117B14CFF670005F7284 /* TickNextTickData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F3614CFF66F005F7284 /* TickNextTickData.cpp */; }; + D5B5117C14CFF670005F7284 /* TickNextTickData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F3614CFF66F005F7284 /* TickNextTickData.cpp */; }; + D5B5117D14CFF670005F7284 /* DoorTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F3F14CFF66F005F7284 /* DoorTile.cpp */; }; + D5B5117E14CFF670005F7284 /* DoorTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F3F14CFF66F005F7284 /* DoorTile.cpp */; }; + D5B5118114CFF670005F7284 /* StoneSlabTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F5D14CFF66F005F7284 /* StoneSlabTile.cpp */; }; + D5B5118214CFF670005F7284 /* StoneSlabTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F5D14CFF66F005F7284 /* StoneSlabTile.cpp */; }; + D5B5118314CFF670005F7284 /* Tile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F6014CFF66F005F7284 /* Tile.cpp */; }; + D5B5118414CFF670005F7284 /* Tile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F6014CFF66F005F7284 /* Tile.cpp */; }; + D5B5118514CFF670005F7284 /* HitResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F6B14CFF66F005F7284 /* HitResult.cpp */; }; + D5B5118614CFF670005F7284 /* HitResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B50F6B14CFF66F005F7284 /* HitResult.cpp */; }; + D5B5118B14D03342005F7284 /* SynchedEntityData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5118A14D03342005F7284 /* SynchedEntityData.cpp */; }; + D5B5118C14D03342005F7284 /* SynchedEntityData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5118A14D03342005F7284 /* SynchedEntityData.cpp */; }; + D5B5118E14DEA27F005F7284 /* DeathScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5118D14DEA27E005F7284 /* DeathScreen.cpp */; }; + D5B5118F14DEA27F005F7284 /* DeathScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5118D14DEA27E005F7284 /* DeathScreen.cpp */; }; + D5B5119114DEA2B7005F7284 /* LevelData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5119014DEA2B7005F7284 /* LevelData.cpp */; }; + D5B5119214DEA2B7005F7284 /* LevelData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5119014DEA2B7005F7284 /* LevelData.cpp */; }; + D5B5119414DEA2EF005F7284 /* DyePowderItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5119314DEA2EF005F7284 /* DyePowderItem.cpp */; }; + D5B5119514DEA2EF005F7284 /* DyePowderItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B5119314DEA2EF005F7284 /* DyePowderItem.cpp */; }; + D5B86281153810BD00F3238A /* I18n.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B86280153810BD00F3238A /* I18n.cpp */; }; + D5B86282153810BD00F3238A /* I18n.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B86280153810BD00F3238A /* I18n.cpp */; }; + D5B862851538175500F3238A /* ScrollingPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B862841538175500F3238A /* ScrollingPane.cpp */; }; + D5B862861538175500F3238A /* ScrollingPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B862841538175500F3238A /* ScrollingPane.cpp */; }; + D5B862921538187400F3238A /* Recipe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B8628E1538187400F3238A /* Recipe.cpp */; }; + D5B862931538187400F3238A /* Recipe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B8628E1538187400F3238A /* Recipe.cpp */; }; + D5B862941538187400F3238A /* StructureRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B862901538187400F3238A /* StructureRecipes.cpp */; }; + D5B862951538187400F3238A /* StructureRecipes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5B862901538187400F3238A /* StructureRecipes.cpp */; }; + D5BFCF1B14513FF400A443B0 /* CreateNewWorld_ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5BFCF1A14513FF400A443B0 /* CreateNewWorld_ipad.xib */; }; + D5CF9C47144C225000E4244F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C46144C225000E4244F /* UIKit.framework */; }; + D5CF9C49144C225000E4244F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C48144C225000E4244F /* Foundation.framework */; }; + D5CF9C4B144C225000E4244F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C4A144C225000E4244F /* CoreGraphics.framework */; }; + D5CF9C4D144C225000E4244F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C4C144C225000E4244F /* QuartzCore.framework */; }; + D5CF9C4F144C225000E4244F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5CF9C4E144C225000E4244F /* OpenGLES.framework */; }; + D5CF9C55144C225000E4244F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D5CF9C53144C225000E4244F /* InfoPlist.strings */; }; + D5CF9C57144C225000E4244F /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5CF9C56144C225000E4244F /* main.mm */; }; + D5CF9C5B144C225000E4244F /* minecraftpeAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5CF9C5A144C225000E4244F /* minecraftpeAppDelegate.mm */; }; + D5CF9C5E144C225000E4244F /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5CF9C5C144C225000E4244F /* MainWindow.xib */; }; + D5CF9C65144C225000E4244F /* EAGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = D5CF9C64144C225000E4244F /* EAGLView.m */; }; + D5CF9C6B144C225000E4244F /* minecraftpeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5CF9C69144C225000E4244F /* minecraftpeViewController.xib */; }; + D5CFA01D144C453900E4244F /* minecraftpeViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5CFA01C144C453900E4244F /* minecraftpeViewController.mm */; }; + D5D381F215A1A1CF00B6C50E /* FillingContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D381F015A1A1CF00B6C50E /* FillingContainer.cpp */; }; + D5D381F315A1A1CF00B6C50E /* FillingContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D381F015A1A1CF00B6C50E /* FillingContainer.cpp */; }; + D5D381F715A1A21800B6C50E /* EntityTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D381F515A1A21800B6C50E /* EntityTile.cpp */; }; + D5D381F815A1A21800B6C50E /* EntityTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D381F515A1A21800B6C50E /* EntityTile.cpp */; }; + D5D3820515A1A26000B6C50E /* ChestRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D381FF15A1A26000B6C50E /* ChestRenderer.cpp */; }; + D5D3820615A1A26000B6C50E /* ChestRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D381FF15A1A26000B6C50E /* ChestRenderer.cpp */; }; + D5D3820715A1A26000B6C50E /* TileEntityRenderDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820115A1A26000B6C50E /* TileEntityRenderDispatcher.cpp */; }; + D5D3820815A1A26000B6C50E /* TileEntityRenderDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820115A1A26000B6C50E /* TileEntityRenderDispatcher.cpp */; }; + D5D3820915A1A26000B6C50E /* TileEntityRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820315A1A26000B6C50E /* TileEntityRenderer.cpp */; }; + D5D3820A15A1A26000B6C50E /* TileEntityRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820315A1A26000B6C50E /* TileEntityRenderer.cpp */; }; + D5D3820D15A1A2A000B6C50E /* EntityTileRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820B15A1A2A000B6C50E /* EntityTileRenderer.cpp */; }; + D5D3820E15A1A2A000B6C50E /* EntityTileRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820B15A1A2A000B6C50E /* EntityTileRenderer.cpp */; }; + D5D3821115A1A2C200B6C50E /* ChestTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820F15A1A2C200B6C50E /* ChestTile.cpp */; }; + D5D3821215A1A2C200B6C50E /* ChestTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3820F15A1A2C200B6C50E /* ChestTile.cpp */; }; + D5D3821415A1A5D100B6C50E /* ChestTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3821315A1A5D100B6C50E /* ChestTileEntity.cpp */; }; + D5D3821515A1A5D100B6C50E /* ChestTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D3821315A1A5D100B6C50E /* ChestTileEntity.cpp */; }; + D5D43CC4146AF4B4002ED842 /* RenameMPWorld_ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CC0146AF4B4002ED842 /* RenameMPWorld_ipad.xib */; }; + D5D43CC5146AF4B4002ED842 /* RenameMPWorld_ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CC0146AF4B4002ED842 /* RenameMPWorld_ipad.xib */; }; + D5D43CC6146AF4B4002ED842 /* RenameMPWorld_iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CC1146AF4B4002ED842 /* RenameMPWorld_iphone.xib */; }; + D5D43CC7146AF4B4002ED842 /* RenameMPWorld_iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CC1146AF4B4002ED842 /* RenameMPWorld_iphone.xib */; }; + D5D43CC8146AF4B4002ED842 /* RenameMPWorldViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5D43CC3146AF4B4002ED842 /* RenameMPWorldViewController.mm */; }; + D5D43CC9146AF4B4002ED842 /* RenameMPWorldViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D5D43CC3146AF4B4002ED842 /* RenameMPWorldViewController.mm */; }; + D5D43CCE146AFD9E002ED842 /* save_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCA146AFD9D002ED842 /* save_0_3.png */; }; + D5D43CCF146AFD9E002ED842 /* save_0_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCA146AFD9D002ED842 /* save_0_3.png */; }; + D5D43CD0146AFD9E002ED842 /* save_0.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCB146AFD9D002ED842 /* save_0.png */; }; + D5D43CD1146AFD9E002ED842 /* save_0.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCB146AFD9D002ED842 /* save_0.png */; }; + D5D43CD2146AFD9E002ED842 /* save_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCC146AFD9E002ED842 /* save_1_3.png */; }; + D5D43CD3146AFD9E002ED842 /* save_1_3.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCC146AFD9E002ED842 /* save_1_3.png */; }; + D5D43CD4146AFD9E002ED842 /* save_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCD146AFD9E002ED842 /* save_1.png */; }; + D5D43CD5146AFD9E002ED842 /* save_1.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D43CCD146AFD9E002ED842 /* save_1.png */; }; + D5D8C48A16392FF000FD35F0 /* LightGemTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C48316392FF000FD35F0 /* LightGemTile.cpp */; }; + D5D8C48B16392FF000FD35F0 /* LightGemTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C48316392FF000FD35F0 /* LightGemTile.cpp */; }; + D5D8C48C16392FF000FD35F0 /* Mushroom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C48516392FF000FD35F0 /* Mushroom.cpp */; }; + D5D8C48D16392FF000FD35F0 /* Mushroom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C48516392FF000FD35F0 /* Mushroom.cpp */; }; + D5D8C48E16392FF000FD35F0 /* StemTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C48816392FF000FD35F0 /* StemTile.cpp */; }; + D5D8C48F16392FF000FD35F0 /* StemTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C48816392FF000FD35F0 /* StemTile.cpp */; }; + D5D8C4951639301700FD35F0 /* NetherReactorTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4911639301700FD35F0 /* NetherReactorTileEntity.cpp */; }; + D5D8C4961639301700FD35F0 /* NetherReactorTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4911639301700FD35F0 /* NetherReactorTileEntity.cpp */; }; + D5D8C4971639301700FD35F0 /* SignTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4931639301700FD35F0 /* SignTileEntity.cpp */; }; + D5D8C4981639301700FD35F0 /* SignTileEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4931639301700FD35F0 /* SignTileEntity.cpp */; }; + D5D8C49B1639305100FD35F0 /* PigZombie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4991639305100FD35F0 /* PigZombie.cpp */; }; + D5D8C49C1639305100FD35F0 /* PigZombie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4991639305100FD35F0 /* PigZombie.cpp */; }; + D5D8C49F163930D600FD35F0 /* MelonTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C49D163930D600FD35F0 /* MelonTile.cpp */; }; + D5D8C4A0163930D600FD35F0 /* MelonTile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C49D163930D600FD35F0 /* MelonTile.cpp */; }; + D5D8C4A3163930E600FD35F0 /* NetherReactor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4A1163930E600FD35F0 /* NetherReactor.cpp */; }; + D5D8C4A4163930E600FD35F0 /* NetherReactor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4A1163930E600FD35F0 /* NetherReactor.cpp */; }; + D5D8C4A7163931F000FD35F0 /* InBedScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4A5163931F000FD35F0 /* InBedScreen.cpp */; }; + D5D8C4A8163931F000FD35F0 /* InBedScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4A5163931F000FD35F0 /* InBedScreen.cpp */; }; + D5D8C4AB163932B900FD35F0 /* SignRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4A9163932B900FD35F0 /* SignRenderer.cpp */; }; + D5D8C4AC163932B900FD35F0 /* SignRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4A9163932B900FD35F0 /* SignRenderer.cpp */; }; + D5D8C4AF163932CF00FD35F0 /* PaintingRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4AD163932CF00FD35F0 /* PaintingRenderer.cpp */; }; + D5D8C4B0163932CF00FD35F0 /* PaintingRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4AD163932CF00FD35F0 /* PaintingRenderer.cpp */; }; + D5D8C4B51639335000FD35F0 /* HangingEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4B11639335000FD35F0 /* HangingEntity.cpp */; }; + D5D8C4B61639335000FD35F0 /* HangingEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4B11639335000FD35F0 /* HangingEntity.cpp */; }; + D5D8C4B71639335000FD35F0 /* Painting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4B31639335000FD35F0 /* Painting.cpp */; }; + D5D8C4B81639335000FD35F0 /* Painting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4B31639335000FD35F0 /* Painting.cpp */; }; + D5D8C4C31639341100FD35F0 /* Motive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4C11639341100FD35F0 /* Motive.cpp */; }; + D5D8C4C41639341100FD35F0 /* Motive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4C11639341100FD35F0 /* Motive.cpp */; }; + D5D8C4C7163934BB00FD35F0 /* HangingEntityItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4C5163934BB00FD35F0 /* HangingEntityItem.cpp */; }; + D5D8C4C8163934BB00FD35F0 /* HangingEntityItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4C5163934BB00FD35F0 /* HangingEntityItem.cpp */; }; + D5D8C4CB1639362F00FD35F0 /* NetherReactorPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4C91639362F00FD35F0 /* NetherReactorPattern.cpp */; }; + D5D8C4CC1639362F00FD35F0 /* NetherReactorPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5D8C4C91639362F00FD35F0 /* NetherReactorPattern.cpp */; }; + D5D961B814E6AF0C001D1B9D /* Icon_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AC14E6AF0C001D1B9D /* Icon_lite.png */; }; + D5D961B914E6AF0C001D1B9D /* Icon_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AC14E6AF0C001D1B9D /* Icon_lite.png */; }; + D5D961BA14E6AF0C001D1B9D /* Icon-72_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AD14E6AF0C001D1B9D /* Icon-72_lite.png */; }; + D5D961BB14E6AF0C001D1B9D /* Icon-72_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AD14E6AF0C001D1B9D /* Icon-72_lite.png */; }; + D5D961BC14E6AF0C001D1B9D /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AE14E6AF0C001D1B9D /* Icon-72.png */; }; + D5D961BD14E6AF0C001D1B9D /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AE14E6AF0C001D1B9D /* Icon-72.png */; }; + D5D961BE14E6AF0C001D1B9D /* Icon-Small_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AF14E6AF0C001D1B9D /* Icon-Small_lite.png */; }; + D5D961BF14E6AF0C001D1B9D /* Icon-Small_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961AF14E6AF0C001D1B9D /* Icon-Small_lite.png */; }; + D5D961C014E6AF0C001D1B9D /* Icon-Small-50_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B014E6AF0C001D1B9D /* Icon-Small-50_lite.png */; }; + D5D961C114E6AF0C001D1B9D /* Icon-Small-50_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B014E6AF0C001D1B9D /* Icon-Small-50_lite.png */; }; + D5D961C214E6AF0C001D1B9D /* Icon-Small-50.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B114E6AF0C001D1B9D /* Icon-Small-50.png */; }; + D5D961C314E6AF0C001D1B9D /* Icon-Small-50.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B114E6AF0C001D1B9D /* Icon-Small-50.png */; }; + D5D961C414E6AF0C001D1B9D /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B214E6AF0C001D1B9D /* Icon-Small.png */; }; + D5D961C514E6AF0C001D1B9D /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B214E6AF0C001D1B9D /* Icon-Small.png */; }; + D5D961C614E6AF0C001D1B9D /* Icon-Small@2x_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B314E6AF0C001D1B9D /* Icon-Small@2x_lite.png */; }; + D5D961C714E6AF0C001D1B9D /* Icon-Small@2x_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B314E6AF0C001D1B9D /* Icon-Small@2x_lite.png */; }; + D5D961C814E6AF0C001D1B9D /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B414E6AF0C001D1B9D /* Icon-Small@2x.png */; }; + D5D961C914E6AF0C001D1B9D /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B414E6AF0C001D1B9D /* Icon-Small@2x.png */; }; + D5D961CA14E6AF0C001D1B9D /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B514E6AF0C001D1B9D /* Icon.png */; }; + D5D961CB14E6AF0C001D1B9D /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B514E6AF0C001D1B9D /* Icon.png */; }; + D5D961CC14E6AF0C001D1B9D /* Icon@2x_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B614E6AF0C001D1B9D /* Icon@2x_lite.png */; }; + D5D961CD14E6AF0C001D1B9D /* Icon@2x_lite.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B614E6AF0C001D1B9D /* Icon@2x_lite.png */; }; + D5D961CE14E6AF0C001D1B9D /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B714E6AF0C001D1B9D /* Icon@2x.png */; }; + D5D961CF14E6AF0C001D1B9D /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5D961B714E6AF0C001D1B9D /* Icon@2x.png */; }; + D5E1BA9B1451C8A0007DCC4F /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D5E1BA9A1451C8A0007DCC4F /* Default@2x.png */; }; + D5E1BA9F1451CA2F007DCC4F /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = D5E1BA981451C881007DCC4F /* Default.png */; }; + D5F0772314599DC700EC30FB /* terrain.pvr4 in Resources */ = {isa = PBXBuildFile; fileRef = D5F0772214599DC700EC30FB /* terrain.pvr4 */; }; + D5F07737145DE04300EC30FB /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F07736145DE04200EC30FB /* OpenAL.framework */; }; + D5F07739145EB1F500EC30FB /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F07738145EB1F300EC30FB /* AVFoundation.framework */; }; + D5F07745145EF7A000EC30FB /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D5F07744145EF79B00EC30FB /* Default-Landscape~ipad.png */; }; + D5F3B7CA14548E7900D25470 /* IASKAppSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7A414548E7900D25470 /* IASKAppSettingsViewController.m */; }; + D5F3B7CB14548E7900D25470 /* IASKAppSettingsWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7A614548E7900D25470 /* IASKAppSettingsWebViewController.m */; }; + D5F3B7CC14548E7900D25470 /* IASKSpecifierValuesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7A814548E7900D25470 /* IASKSpecifierValuesViewController.m */; }; + D5F3B7CD14548E7900D25470 /* IASKSettingsReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7AB14548E7900D25470 /* IASKSettingsReader.m */; }; + D5F3B7CE14548E7900D25470 /* IASKSettingsStore.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7AD14548E7900D25470 /* IASKSettingsStore.m */; }; + D5F3B7CF14548E7900D25470 /* IASKSettingsStoreFile.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7AF14548E7900D25470 /* IASKSettingsStoreFile.m */; }; + D5F3B7D014548E7900D25470 /* IASKSettingsStoreUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B114548E7900D25470 /* IASKSettingsStoreUserDefaults.m */; }; + D5F3B7D114548E7900D25470 /* IASKSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B314548E7900D25470 /* IASKSpecifier.m */; }; + D5F3B7D214548E7900D25470 /* IASKPSSliderSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B614548E7900D25470 /* IASKPSSliderSpecifierViewCell.m */; }; + D5F3B7D314548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7B814548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m */; }; + D5F3B7D414548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7BA14548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m */; }; + D5F3B7D514548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7BC14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m */; }; + D5F3B7D614548E7900D25470 /* IASKSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7BE14548E7900D25470 /* IASKSlider.m */; }; + D5F3B7D714548E7900D25470 /* IASKSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7C014548E7900D25470 /* IASKSwitch.m */; }; + D5F3B7D814548E7900D25470 /* IASKTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F3B7C214548E7900D25470 /* IASKTextField.m */; }; + D5F3B7D914548E7900D25470 /* IASKAppSettingsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C414548E7900D25470 /* IASKAppSettingsView.xib */; }; + D5F3B7DA14548E7900D25470 /* IASKAppSettingsWebView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C514548E7900D25470 /* IASKAppSettingsWebView.xib */; }; + D5F3B7DB14548E7900D25470 /* IASKPSSliderSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C614548E7900D25470 /* IASKPSSliderSpecifierViewCell.xib */; }; + D5F3B7DC14548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C714548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.xib */; }; + D5F3B7DD14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */; }; + D5F3B7DE14548E7900D25470 /* IASKSpecifierValuesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */; }; + D5F3B7E51454930400D25470 /* InAppSettings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7E41454930400D25470 /* InAppSettings.bundle */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 04004532169EE72E003EB6FA /* clouds.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = clouds.png; path = environment/clouds.png; sourceTree = ""; }; + 0400453516A41236003EB6FA /* HeavyTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeavyTile.cpp; sourceTree = ""; }; + 0400453616A41236003EB6FA /* HeavyTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeavyTile.h; sourceTree = ""; }; + 0400453816A4125B003EB6FA /* FallingTileRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FallingTileRenderer.cpp; sourceTree = ""; }; + 0400453916A4125B003EB6FA /* FallingTileRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FallingTileRenderer.h; sourceTree = ""; }; + 0413970516A82E1E008A9F1A /* ArmorItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArmorItem.cpp; sourceTree = ""; }; + 0413970616A82E1E008A9F1A /* ArmorItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArmorItem.h; sourceTree = ""; }; + 0413970916A82E6B008A9F1A /* CraftingFilters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CraftingFilters.cpp; path = crafting/CraftingFilters.cpp; sourceTree = ""; }; + 0413970A16A82E6B008A9F1A /* CraftingFilters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CraftingFilters.h; path = crafting/CraftingFilters.h; sourceTree = ""; }; + 0413970B16A82E6B008A9F1A /* StonecutterScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StonecutterScreen.cpp; path = crafting/StonecutterScreen.cpp; sourceTree = ""; }; + 0413970C16A82E6B008A9F1A /* StonecutterScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StonecutterScreen.h; path = crafting/StonecutterScreen.h; sourceTree = ""; }; + 0413970F16A82E7B008A9F1A /* ArmorScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArmorScreen.cpp; sourceTree = ""; }; + 0413971016A82E7B008A9F1A /* ArmorScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArmorScreen.h; sourceTree = ""; }; + 0413971216A82EB9008A9F1A /* ArmorRecipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArmorRecipes.cpp; sourceTree = ""; }; + 0413971316A82EB9008A9F1A /* ArmorRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArmorRecipes.h; sourceTree = ""; }; + 0413971416A82EB9008A9F1A /* OreRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OreRecipes.h; sourceTree = ""; }; + 0413971616A82EF5008A9F1A /* StairTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StairTile.cpp; sourceTree = ""; }; + 0419D997167F201B0080CB96 /* ChestModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChestModel.h; sourceTree = ""; }; + 0419D998167F201B0080CB96 /* SheepFurModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SheepFurModel.cpp; sourceTree = ""; }; + 0419D999167F201B0080CB96 /* SheepModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SheepModel.cpp; sourceTree = ""; }; + 0419D99A167F201B0080CB96 /* SignModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SignModel.h; sourceTree = ""; }; + 0419D99D167F206A0080CB96 /* CommandServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CommandServer.cpp; path = command/CommandServer.cpp; sourceTree = ""; }; + 0419D99E167F206A0080CB96 /* CommandServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommandServer.h; path = command/CommandServer.h; sourceTree = ""; }; + 0419D9A1167F20CC0080CB96 /* SheepRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SheepRenderer.cpp; sourceTree = ""; }; + 0419D9A3167F211B0080CB96 /* BaseContainerScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseContainerScreen.h; sourceTree = ""; }; + 0419D9A4167F211B0080CB96 /* ChooseLevelScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChooseLevelScreen.cpp; sourceTree = ""; }; + 0419D9A5167F211B0080CB96 /* ChooseLevelScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChooseLevelScreen.h; sourceTree = ""; }; + 0419D9A6167F211B0080CB96 /* DeathScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeathScreen.h; sourceTree = ""; }; + 0419D9A7167F211B0080CB96 /* SimpleChooseLevelScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleChooseLevelScreen.cpp; sourceTree = ""; }; + 0419D9A8167F211B0080CB96 /* SimpleChooseLevelScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleChooseLevelScreen.h; sourceTree = ""; }; + 0419D9A9167F211B0080CB96 /* TextEditScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextEditScreen.cpp; sourceTree = ""; }; + 0419D9AA167F211B0080CB96 /* TextEditScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextEditScreen.h; sourceTree = ""; }; + 0419D9AE167F21BC0080CB96 /* PaneCraftingScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PaneCraftingScreen.cpp; path = crafting/PaneCraftingScreen.cpp; sourceTree = ""; }; + 0419D9AF167F21BC0080CB96 /* PaneCraftingScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PaneCraftingScreen.h; path = crafting/PaneCraftingScreen.h; sourceTree = ""; }; + 0419D9B0167F21BC0080CB96 /* WorkbenchScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WorkbenchScreen.cpp; path = crafting/WorkbenchScreen.cpp; sourceTree = ""; }; + 0419D9B1167F21BC0080CB96 /* WorkbenchScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WorkbenchScreen.h; path = crafting/WorkbenchScreen.h; sourceTree = ""; }; + 0419D9B5167F22150080CB96 /* AgableMob.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AgableMob.cpp; sourceTree = ""; }; + 0419D9B6167F22150080CB96 /* AgableMob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AgableMob.h; sourceTree = ""; }; + 0419D9B8167F2A720080CB96 /* ShowKeyboardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShowKeyboardView.h; sourceTree = ""; }; + 0419D9B9167F2A720080CB96 /* ShowKeyboardView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ShowKeyboardView.mm; sourceTree = ""; }; + 0425EB9616A94D14000C7483 /* chain_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chain_1.png; sourceTree = ""; }; + 0425EB9716A94D14000C7483 /* chain_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chain_2.png; sourceTree = ""; }; + 0425EB9816A94D14000C7483 /* cloth_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cloth_1.png; sourceTree = ""; }; + 0425EB9916A94D14000C7483 /* cloth_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cloth_2.png; sourceTree = ""; }; + 0425EB9A16A94D14000C7483 /* diamond_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = diamond_1.png; sourceTree = ""; }; + 0425EB9B16A94D14000C7483 /* diamond_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = diamond_2.png; sourceTree = ""; }; + 0425EB9C16A94D14000C7483 /* gold_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gold_1.png; sourceTree = ""; }; + 0425EB9D16A94D14000C7483 /* gold_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gold_2.png; sourceTree = ""; }; + 0425EB9E16A94D14000C7483 /* iron_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iron_1.png; sourceTree = ""; }; + 0425EB9F16A94D14000C7483 /* iron_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iron_2.png; sourceTree = ""; }; + 042A91A116B17517007ABBC6 /* GButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GButton.cpp; sourceTree = ""; }; + 042A91A216B17517007ABBC6 /* GButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GButton.h; sourceTree = ""; }; + 042A91A316B17517007ABBC6 /* GuiElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GuiElement.cpp; sourceTree = ""; }; + 042A91A416B17517007ABBC6 /* GuiElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuiElement.h; sourceTree = ""; }; + 042A91A516B17517007ABBC6 /* NinePatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NinePatch.cpp; sourceTree = ""; }; + 042A91A616B17517007ABBC6 /* NinePatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NinePatch.h; sourceTree = ""; }; + 042A91A716B17517007ABBC6 /* OptionsGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionsGroup.cpp; sourceTree = ""; }; + 042A91A816B17517007ABBC6 /* OptionsGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsGroup.h; sourceTree = ""; }; + 042A91A916B17517007ABBC6 /* OptionsPane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionsPane.cpp; sourceTree = ""; }; + 042A91AA16B17517007ABBC6 /* OptionsPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsPane.h; sourceTree = ""; }; + 042A91AB16B17517007ABBC6 /* TextBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextBox.cpp; sourceTree = ""; }; + 042A91AC16B17517007ABBC6 /* TextBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBox.h; sourceTree = ""; }; + 044129061682FF9600B70EE6 /* MouseHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseHandler.cpp; sourceTree = ""; }; + 9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CreateNewWorld_iphone.xib; path = minecraftpe/dialogs/CreateNewWorld_iphone.xib; sourceTree = ""; }; + 9D293CEA160720D6000305C8 /* worldname_iphone5_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_iphone5_3.png; sourceTree = ""; }; + 9D959AFF16036BEE00E23A6F /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + D51A8B01146A200000E5D720 /* minecraftpedemo-info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "minecraftpedemo-info.plist"; sourceTree = ""; }; + D51DC73514581D4E00E3D761 /* itemframe.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = itemframe.png; sourceTree = ""; }; + D51DC74114592B8A00E3D761 /* PVRTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PVRTexture.h; sourceTree = ""; }; + D51DC74214592B8A00E3D761 /* PVRTexture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PVRTexture.m; sourceTree = ""; }; + D5251CB61538192700FC82C8 /* _FindFirst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = _FindFirst.cpp; sourceTree = ""; }; + D5251CB71538192700FC82C8 /* _FindFirst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _FindFirst.h; sourceTree = ""; }; + D5251CB81538192700FC82C8 /* AutopatcherPatchContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutopatcherPatchContext.h; sourceTree = ""; }; + D5251CB91538192700FC82C8 /* AutopatcherRepositoryInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutopatcherRepositoryInterface.h; sourceTree = ""; }; + D5251CBA1538192700FC82C8 /* BitStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitStream.cpp; sourceTree = ""; }; + D5251CBB1538192700FC82C8 /* BitStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitStream.h; sourceTree = ""; }; + D5251CBC1538192700FC82C8 /* CCRakNetSlidingWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCRakNetSlidingWindow.cpp; sourceTree = ""; }; + D5251CBD1538192700FC82C8 /* CCRakNetSlidingWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCRakNetSlidingWindow.h; sourceTree = ""; }; + D5251CBE1538192700FC82C8 /* CCRakNetUDT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCRakNetUDT.cpp; sourceTree = ""; }; + D5251CBF1538192700FC82C8 /* CCRakNetUDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCRakNetUDT.h; sourceTree = ""; }; + D5251CC01538192700FC82C8 /* CheckSum.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CheckSum.cpp; sourceTree = ""; }; + D5251CC11538192700FC82C8 /* CheckSum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CheckSum.h; sourceTree = ""; }; + D5251CC21538192700FC82C8 /* CloudClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CloudClient.cpp; sourceTree = ""; }; + D5251CC31538192700FC82C8 /* CloudClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CloudClient.h; sourceTree = ""; }; + D5251CC41538192700FC82C8 /* CloudCommon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CloudCommon.cpp; sourceTree = ""; }; + D5251CC51538192700FC82C8 /* CloudCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CloudCommon.h; sourceTree = ""; }; + D5251CC61538192700FC82C8 /* CloudServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CloudServer.cpp; sourceTree = ""; }; + D5251CC71538192700FC82C8 /* CloudServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CloudServer.h; sourceTree = ""; }; + D5251CC81538192700FC82C8 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + D5251CC91538192700FC82C8 /* CommandParserInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CommandParserInterface.cpp; sourceTree = ""; }; + D5251CCA1538192700FC82C8 /* CommandParserInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommandParserInterface.h; sourceTree = ""; }; + D5251CCB1538192700FC82C8 /* ConnectionGraph2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConnectionGraph2.cpp; sourceTree = ""; }; + D5251CCC1538192700FC82C8 /* ConnectionGraph2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConnectionGraph2.h; sourceTree = ""; }; + D5251CCD1538192700FC82C8 /* ConsoleServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleServer.cpp; sourceTree = ""; }; + D5251CCE1538192700FC82C8 /* ConsoleServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConsoleServer.h; sourceTree = ""; }; + D5251CCF1538192700FC82C8 /* DataCompressor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataCompressor.cpp; sourceTree = ""; }; + D5251CD01538192700FC82C8 /* DataCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataCompressor.h; sourceTree = ""; }; + D5251CD11538192700FC82C8 /* DirectoryDeltaTransfer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DirectoryDeltaTransfer.cpp; sourceTree = ""; }; + D5251CD21538192700FC82C8 /* DirectoryDeltaTransfer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryDeltaTransfer.h; sourceTree = ""; }; + D5251CD31538192700FC82C8 /* DS_BinarySearchTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_BinarySearchTree.h; sourceTree = ""; }; + D5251CD41538192700FC82C8 /* DS_BPlusTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_BPlusTree.h; sourceTree = ""; }; + D5251CD51538192700FC82C8 /* DS_BytePool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DS_BytePool.cpp; sourceTree = ""; }; + D5251CD61538192700FC82C8 /* DS_BytePool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_BytePool.h; sourceTree = ""; }; + D5251CD71538192700FC82C8 /* DS_ByteQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DS_ByteQueue.cpp; sourceTree = ""; }; + D5251CD81538192700FC82C8 /* DS_ByteQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_ByteQueue.h; sourceTree = ""; }; + D5251CD91538192700FC82C8 /* DS_Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Hash.h; sourceTree = ""; }; + D5251CDA1538192700FC82C8 /* DS_Heap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Heap.h; sourceTree = ""; }; + D5251CDB1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DS_HuffmanEncodingTree.cpp; sourceTree = ""; }; + D5251CDC1538192700FC82C8 /* DS_HuffmanEncodingTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_HuffmanEncodingTree.h; sourceTree = ""; }; + D5251CDD1538192700FC82C8 /* DS_HuffmanEncodingTreeFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_HuffmanEncodingTreeFactory.h; sourceTree = ""; }; + D5251CDE1538192700FC82C8 /* DS_HuffmanEncodingTreeNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_HuffmanEncodingTreeNode.h; sourceTree = ""; }; + D5251CDF1538192700FC82C8 /* DS_LinkedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_LinkedList.h; sourceTree = ""; }; + D5251CE01538192700FC82C8 /* DS_List.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_List.h; sourceTree = ""; }; + D5251CE11538192700FC82C8 /* DS_Map.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Map.h; sourceTree = ""; }; + D5251CE21538192700FC82C8 /* DS_MemoryPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_MemoryPool.h; sourceTree = ""; }; + D5251CE31538192700FC82C8 /* DS_Multilist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Multilist.h; sourceTree = ""; }; + D5251CE41538192700FC82C8 /* DS_OrderedChannelHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_OrderedChannelHeap.h; sourceTree = ""; }; + D5251CE51538192700FC82C8 /* DS_OrderedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_OrderedList.h; sourceTree = ""; }; + D5251CE61538192700FC82C8 /* DS_Queue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Queue.h; sourceTree = ""; }; + D5251CE71538192700FC82C8 /* DS_QueueLinkedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_QueueLinkedList.h; sourceTree = ""; }; + D5251CE81538192700FC82C8 /* DS_RangeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_RangeList.h; sourceTree = ""; }; + D5251CE91538192700FC82C8 /* DS_Table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DS_Table.cpp; sourceTree = ""; }; + D5251CEA1538192700FC82C8 /* DS_Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Table.h; sourceTree = ""; }; + D5251CEB1538192700FC82C8 /* DS_ThreadsafeAllocatingQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_ThreadsafeAllocatingQueue.h; sourceTree = ""; }; + D5251CEC1538192700FC82C8 /* DS_Tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_Tree.h; sourceTree = ""; }; + D5251CED1538192700FC82C8 /* DS_WeightedGraph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DS_WeightedGraph.h; sourceTree = ""; }; + D5251CEE1538192700FC82C8 /* DynDNS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DynDNS.cpp; sourceTree = ""; }; + D5251CEF1538192700FC82C8 /* DynDNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynDNS.h; sourceTree = ""; }; + D5251CF01538192700FC82C8 /* EmailSender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EmailSender.cpp; sourceTree = ""; }; + D5251CF11538192700FC82C8 /* EmailSender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailSender.h; sourceTree = ""; }; + D5251CF21538192700FC82C8 /* EncodeClassName.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EncodeClassName.cpp; sourceTree = ""; }; + D5251CF31538192700FC82C8 /* EpochTimeToString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EpochTimeToString.cpp; sourceTree = ""; }; + D5251CF41538192700FC82C8 /* EpochTimeToString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EpochTimeToString.h; sourceTree = ""; }; + D5251CF51538192700FC82C8 /* Export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Export.h; sourceTree = ""; }; + D5251CF61538192700FC82C8 /* FileList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileList.cpp; sourceTree = ""; }; + D5251CF71538192700FC82C8 /* FileList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileList.h; sourceTree = ""; }; + D5251CF81538192700FC82C8 /* FileListNodeContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileListNodeContext.h; sourceTree = ""; }; + D5251CF91538192700FC82C8 /* FileListTransfer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileListTransfer.cpp; sourceTree = ""; }; + D5251CFA1538192700FC82C8 /* FileListTransfer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileListTransfer.h; sourceTree = ""; }; + D5251CFB1538192700FC82C8 /* FileListTransferCBInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileListTransferCBInterface.h; sourceTree = ""; }; + D5251CFC1538192700FC82C8 /* FileOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileOperations.cpp; sourceTree = ""; }; + D5251CFD1538192700FC82C8 /* FileOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileOperations.h; sourceTree = ""; }; + D5251CFE1538192700FC82C8 /* FormatString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormatString.cpp; sourceTree = ""; }; + D5251CFF1538192700FC82C8 /* FormatString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatString.h; sourceTree = ""; }; + D5251D001538192700FC82C8 /* FullyConnectedMesh2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FullyConnectedMesh2.cpp; sourceTree = ""; }; + D5251D011538192700FC82C8 /* FullyConnectedMesh2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FullyConnectedMesh2.h; sourceTree = ""; }; + D5251D021538192700FC82C8 /* Getche.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Getche.cpp; sourceTree = ""; }; + D5251D031538192700FC82C8 /* Getche.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Getche.h; sourceTree = ""; }; + D5251D041538192700FC82C8 /* Gets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Gets.cpp; sourceTree = ""; }; + D5251D051538192700FC82C8 /* Gets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Gets.h; sourceTree = ""; }; + D5251D061538192700FC82C8 /* GetTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GetTime.cpp; sourceTree = ""; }; + D5251D071538192700FC82C8 /* GetTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GetTime.h; sourceTree = ""; }; + D5251D081538192700FC82C8 /* gettimeofday.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gettimeofday.cpp; sourceTree = ""; }; + D5251D091538192700FC82C8 /* gettimeofday.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gettimeofday.h; sourceTree = ""; }; + D5251D0A1538192700FC82C8 /* GridSectorizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GridSectorizer.cpp; sourceTree = ""; }; + D5251D0B1538192700FC82C8 /* GridSectorizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridSectorizer.h; sourceTree = ""; }; + D5251D0C1538192700FC82C8 /* HTTPConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPConnection.cpp; sourceTree = ""; }; + D5251D0D1538192700FC82C8 /* HTTPConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPConnection.h; sourceTree = ""; }; + D5251D0E1538192700FC82C8 /* IncrementalReadInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IncrementalReadInterface.cpp; sourceTree = ""; }; + D5251D0F1538192700FC82C8 /* IncrementalReadInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncrementalReadInterface.h; sourceTree = ""; }; + D5251D101538192700FC82C8 /* InternalPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InternalPacket.h; sourceTree = ""; }; + D5251D111538192700FC82C8 /* Itoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Itoa.cpp; sourceTree = ""; }; + D5251D121538192700FC82C8 /* Itoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Itoa.h; sourceTree = ""; }; + D5251D131538192700FC82C8 /* Kbhit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Kbhit.h; sourceTree = ""; }; + D5251D141538192700FC82C8 /* LinuxStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LinuxStrings.cpp; sourceTree = ""; }; + D5251D151538192700FC82C8 /* LinuxStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinuxStrings.h; sourceTree = ""; }; + D5251D161538192700FC82C8 /* LocklessTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocklessTypes.cpp; sourceTree = ""; }; + D5251D171538192700FC82C8 /* LocklessTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocklessTypes.h; sourceTree = ""; }; + D5251D181538192700FC82C8 /* LogCommandParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LogCommandParser.cpp; sourceTree = ""; }; + D5251D191538192700FC82C8 /* LogCommandParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogCommandParser.h; sourceTree = ""; }; + D5251D1A1538192700FC82C8 /* MessageFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessageFilter.cpp; sourceTree = ""; }; + D5251D1B1538192700FC82C8 /* MessageFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageFilter.h; sourceTree = ""; }; + D5251D1C1538192700FC82C8 /* MessageIdentifiers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageIdentifiers.h; sourceTree = ""; }; + D5251D1D1538192700FC82C8 /* MTUSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTUSize.h; sourceTree = ""; }; + D5251D1E1538192700FC82C8 /* NativeFeatureIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeFeatureIncludes.h; sourceTree = ""; }; + D5251D1F1538192700FC82C8 /* NativeFeatureIncludesOverrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeFeatureIncludesOverrides.h; sourceTree = ""; }; + D5251D201538192700FC82C8 /* NativeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeTypes.h; sourceTree = ""; }; + D5251D211538192700FC82C8 /* NatPunchthroughClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NatPunchthroughClient.cpp; sourceTree = ""; }; + D5251D221538192700FC82C8 /* NatPunchthroughClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NatPunchthroughClient.h; sourceTree = ""; }; + D5251D231538192700FC82C8 /* NatPunchthroughServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NatPunchthroughServer.cpp; sourceTree = ""; }; + D5251D241538192700FC82C8 /* NatPunchthroughServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NatPunchthroughServer.h; sourceTree = ""; }; + D5251D251538192700FC82C8 /* NatTypeDetectionClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NatTypeDetectionClient.cpp; sourceTree = ""; }; + D5251D261538192700FC82C8 /* NatTypeDetectionClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NatTypeDetectionClient.h; sourceTree = ""; }; + D5251D271538192700FC82C8 /* NatTypeDetectionCommon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NatTypeDetectionCommon.cpp; sourceTree = ""; }; + D5251D281538192700FC82C8 /* NatTypeDetectionCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NatTypeDetectionCommon.h; sourceTree = ""; }; + D5251D291538192700FC82C8 /* NatTypeDetectionServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NatTypeDetectionServer.cpp; sourceTree = ""; }; + D5251D2A1538192700FC82C8 /* NatTypeDetectionServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NatTypeDetectionServer.h; sourceTree = ""; }; + D5251D2B1538192700FC82C8 /* NetworkIDManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkIDManager.cpp; sourceTree = ""; }; + D5251D2C1538192700FC82C8 /* NetworkIDManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkIDManager.h; sourceTree = ""; }; + D5251D2D1538192700FC82C8 /* NetworkIDObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkIDObject.cpp; sourceTree = ""; }; + D5251D2E1538192700FC82C8 /* NetworkIDObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkIDObject.h; sourceTree = ""; }; + D5251D2F1538192700FC82C8 /* PacketConsoleLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PacketConsoleLogger.cpp; sourceTree = ""; }; + D5251D301538192700FC82C8 /* PacketConsoleLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketConsoleLogger.h; sourceTree = ""; }; + D5251D311538192700FC82C8 /* PacketFileLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PacketFileLogger.cpp; sourceTree = ""; }; + D5251D321538192700FC82C8 /* PacketFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketFileLogger.h; sourceTree = ""; }; + D5251D331538192700FC82C8 /* PacketizedTCP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PacketizedTCP.cpp; sourceTree = ""; }; + D5251D341538192700FC82C8 /* PacketizedTCP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketizedTCP.h; sourceTree = ""; }; + D5251D351538192700FC82C8 /* PacketLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PacketLogger.cpp; sourceTree = ""; }; + D5251D361538192700FC82C8 /* PacketLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketLogger.h; sourceTree = ""; }; + D5251D371538192700FC82C8 /* PacketOutputWindowLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PacketOutputWindowLogger.cpp; sourceTree = ""; }; + D5251D381538192700FC82C8 /* PacketOutputWindowLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketOutputWindowLogger.h; sourceTree = ""; }; + D5251D391538192700FC82C8 /* PacketPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketPool.h; sourceTree = ""; }; + D5251D3A1538192700FC82C8 /* PacketPriority.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketPriority.h; sourceTree = ""; }; + D5251D3B1538192700FC82C8 /* PluginInterface2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginInterface2.cpp; sourceTree = ""; }; + D5251D3C1538192700FC82C8 /* PluginInterface2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginInterface2.h; sourceTree = ""; }; + D5251D3D1538192700FC82C8 /* PS3Includes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PS3Includes.h; sourceTree = ""; }; + D5251D3E1538192700FC82C8 /* Rackspace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Rackspace.cpp; sourceTree = ""; }; + D5251D3F1538192700FC82C8 /* Rackspace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Rackspace.h; sourceTree = ""; }; + D5251D401538192700FC82C8 /* RakAlloca.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakAlloca.h; sourceTree = ""; }; + D5251D411538192700FC82C8 /* RakAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakAssert.h; sourceTree = ""; }; + D5251D421538192700FC82C8 /* RakMemoryOverride.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakMemoryOverride.cpp; sourceTree = ""; }; + D5251D431538192700FC82C8 /* RakMemoryOverride.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakMemoryOverride.h; sourceTree = ""; }; + D5251D471538192700FC82C8 /* RakNetCommandParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakNetCommandParser.cpp; sourceTree = ""; }; + D5251D481538192700FC82C8 /* RakNetCommandParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetCommandParser.h; sourceTree = ""; }; + D5251D491538192700FC82C8 /* RakNetDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetDefines.h; sourceTree = ""; }; + D5251D4A1538192700FC82C8 /* RakNetDefinesOverrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetDefinesOverrides.h; sourceTree = ""; }; + D5251D4B1538192700FC82C8 /* RakNetSmartPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetSmartPtr.h; sourceTree = ""; }; + D5251D4C1538192700FC82C8 /* RakNetSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakNetSocket.cpp; sourceTree = ""; }; + D5251D4D1538192700FC82C8 /* RakNetSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetSocket.h; sourceTree = ""; }; + D5251D4E1538192700FC82C8 /* RakNetStatistics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakNetStatistics.cpp; sourceTree = ""; }; + D5251D4F1538192700FC82C8 /* RakNetStatistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetStatistics.h; sourceTree = ""; }; + D5251D501538192700FC82C8 /* RakNetTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetTime.h; sourceTree = ""; }; + D5251D511538192700FC82C8 /* RakNetTransport2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakNetTransport2.cpp; sourceTree = ""; }; + D5251D521538192700FC82C8 /* RakNetTransport2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetTransport2.h; sourceTree = ""; }; + D5251D531538192700FC82C8 /* RakNetTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakNetTypes.cpp; sourceTree = ""; }; + D5251D541538192700FC82C8 /* RakNetTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetTypes.h; sourceTree = ""; }; + D5251D551538192700FC82C8 /* RakNetVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetVersion.h; sourceTree = ""; }; + D5251D561538192700FC82C8 /* RakPeer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakPeer.cpp; sourceTree = ""; }; + D5251D571538192700FC82C8 /* RakPeer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakPeer.h; sourceTree = ""; }; + D5251D581538192700FC82C8 /* RakPeerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakPeerInterface.h; sourceTree = ""; }; + D5251D591538192700FC82C8 /* RakSleep.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakSleep.cpp; sourceTree = ""; }; + D5251D5A1538192700FC82C8 /* RakSleep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakSleep.h; sourceTree = ""; }; + D5251D5B1538192700FC82C8 /* RakString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakString.cpp; sourceTree = ""; }; + D5251D5C1538192700FC82C8 /* RakString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakString.h; sourceTree = ""; }; + D5251D5D1538192700FC82C8 /* RakThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakThread.cpp; sourceTree = ""; }; + D5251D5E1538192700FC82C8 /* RakThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakThread.h; sourceTree = ""; }; + D5251D5F1538192700FC82C8 /* RakWString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakWString.cpp; sourceTree = ""; }; + D5251D601538192700FC82C8 /* RakWString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakWString.h; sourceTree = ""; }; + D5251D611538192700FC82C8 /* Rand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Rand.cpp; sourceTree = ""; }; + D5251D621538192700FC82C8 /* Rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Rand.h; sourceTree = ""; }; + D5251D631538192700FC82C8 /* rdlmalloc-options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "rdlmalloc-options.h"; sourceTree = ""; }; + D5251D641538192700FC82C8 /* rdlmalloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rdlmalloc.cpp; sourceTree = ""; }; + D5251D651538192700FC82C8 /* rdlmalloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rdlmalloc.h; sourceTree = ""; }; + D5251D661538192700FC82C8 /* ReadyEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReadyEvent.cpp; sourceTree = ""; }; + D5251D671538192700FC82C8 /* ReadyEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadyEvent.h; sourceTree = ""; }; + D5251D681538192700FC82C8 /* RefCountedObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RefCountedObj.h; sourceTree = ""; }; + D5251D691538192700FC82C8 /* ReliabilityLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReliabilityLayer.cpp; sourceTree = ""; }; + D5251D6A1538192700FC82C8 /* ReliabilityLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReliabilityLayer.h; sourceTree = ""; }; + D5251D6B1538192700FC82C8 /* ReplicaEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplicaEnums.h; sourceTree = ""; }; + D5251D6C1538192700FC82C8 /* ReplicaManager3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReplicaManager3.cpp; sourceTree = ""; }; + D5251D6D1538192700FC82C8 /* ReplicaManager3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplicaManager3.h; sourceTree = ""; }; + D5251D6E1538192700FC82C8 /* Router2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Router2.cpp; sourceTree = ""; }; + D5251D6F1538192700FC82C8 /* Router2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Router2.h; sourceTree = ""; }; + D5251D701538192700FC82C8 /* RPC4Plugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RPC4Plugin.cpp; sourceTree = ""; }; + D5251D711538192700FC82C8 /* RPC4Plugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RPC4Plugin.h; sourceTree = ""; }; + D5251D721538192700FC82C8 /* SecureHandshake.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SecureHandshake.cpp; sourceTree = ""; }; + D5251D731538192700FC82C8 /* SecureHandshake.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecureHandshake.h; sourceTree = ""; }; + D5251D741538192700FC82C8 /* SendToThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SendToThread.cpp; sourceTree = ""; }; + D5251D751538192700FC82C8 /* SendToThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SendToThread.h; sourceTree = ""; }; + D5251D761538192700FC82C8 /* SHA1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SHA1.cpp; sourceTree = ""; }; + D5251D771538192700FC82C8 /* SHA1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SHA1.h; sourceTree = ""; }; + D5251D781538192700FC82C8 /* SignaledEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SignaledEvent.cpp; sourceTree = ""; }; + D5251D791538192700FC82C8 /* SignaledEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SignaledEvent.h; sourceTree = ""; }; + D5251D7A1538192700FC82C8 /* SimpleMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleMutex.cpp; sourceTree = ""; }; + D5251D7B1538192700FC82C8 /* SimpleMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleMutex.h; sourceTree = ""; }; + D5251D7C1538192700FC82C8 /* SimpleTCPServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleTCPServer.h; sourceTree = ""; }; + D5251D7D1538192700FC82C8 /* SingleProducerConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SingleProducerConsumer.h; sourceTree = ""; }; + D5251D7E1538192700FC82C8 /* SocketDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketDefines.h; sourceTree = ""; }; + D5251D7F1538192700FC82C8 /* SocketIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketIncludes.h; sourceTree = ""; }; + D5251D801538192700FC82C8 /* SocketLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SocketLayer.cpp; sourceTree = ""; }; + D5251D811538192700FC82C8 /* SocketLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketLayer.h; sourceTree = ""; }; + D5251D821538192700FC82C8 /* StringCompressor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringCompressor.cpp; sourceTree = ""; }; + D5251D831538192700FC82C8 /* StringCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringCompressor.h; sourceTree = ""; }; + D5251D841538192700FC82C8 /* StringTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringTable.cpp; sourceTree = ""; }; + D5251D851538192700FC82C8 /* StringTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringTable.h; sourceTree = ""; }; + D5251D861538192700FC82C8 /* SuperFastHash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SuperFastHash.cpp; sourceTree = ""; }; + D5251D871538192700FC82C8 /* SuperFastHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SuperFastHash.h; sourceTree = ""; }; + D5251D881538192700FC82C8 /* TableSerializer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableSerializer.cpp; sourceTree = ""; }; + D5251D891538192700FC82C8 /* TableSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableSerializer.h; sourceTree = ""; }; + D5251D8A1538192700FC82C8 /* TCPInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TCPInterface.cpp; sourceTree = ""; }; + D5251D8B1538192700FC82C8 /* TCPInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCPInterface.h; sourceTree = ""; }; + D5251D8C1538192700FC82C8 /* TeamBalancer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TeamBalancer.cpp; sourceTree = ""; }; + D5251D8D1538192700FC82C8 /* TeamBalancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamBalancer.h; sourceTree = ""; }; + D5251D8E1538192700FC82C8 /* TelnetTransport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TelnetTransport.cpp; sourceTree = ""; }; + D5251D8F1538192700FC82C8 /* TelnetTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelnetTransport.h; sourceTree = ""; }; + D5251D901538192700FC82C8 /* ThreadPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadPool.h; sourceTree = ""; }; + D5251D911538192700FC82C8 /* ThreadsafePacketLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadsafePacketLogger.cpp; sourceTree = ""; }; + D5251D921538192700FC82C8 /* ThreadsafePacketLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadsafePacketLogger.h; sourceTree = ""; }; + D5251D931538192700FC82C8 /* TransportInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransportInterface.h; sourceTree = ""; }; + D5251D941538192700FC82C8 /* TwoWayAuthentication.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TwoWayAuthentication.cpp; sourceTree = ""; }; + D5251D951538192700FC82C8 /* TwoWayAuthentication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoWayAuthentication.h; sourceTree = ""; }; + D5251D961538192700FC82C8 /* UDPForwarder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UDPForwarder.cpp; sourceTree = ""; }; + D5251D971538192700FC82C8 /* UDPForwarder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UDPForwarder.h; sourceTree = ""; }; + D5251D981538192700FC82C8 /* UDPProxyClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UDPProxyClient.cpp; sourceTree = ""; }; + D5251D991538192700FC82C8 /* UDPProxyClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UDPProxyClient.h; sourceTree = ""; }; + D5251D9A1538192700FC82C8 /* UDPProxyCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UDPProxyCommon.h; sourceTree = ""; }; + D5251D9B1538192700FC82C8 /* UDPProxyCoordinator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UDPProxyCoordinator.cpp; sourceTree = ""; }; + D5251D9C1538192700FC82C8 /* UDPProxyCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UDPProxyCoordinator.h; sourceTree = ""; }; + D5251D9D1538192700FC82C8 /* UDPProxyServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UDPProxyServer.cpp; sourceTree = ""; }; + D5251D9E1538192700FC82C8 /* UDPProxyServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UDPProxyServer.h; sourceTree = ""; }; + D5251D9F1538192700FC82C8 /* VariableDeltaSerializer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VariableDeltaSerializer.cpp; sourceTree = ""; }; + D5251DA01538192700FC82C8 /* VariableDeltaSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VariableDeltaSerializer.h; sourceTree = ""; }; + D5251DA11538192700FC82C8 /* VariableListDeltaTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VariableListDeltaTracker.cpp; sourceTree = ""; }; + D5251DA21538192700FC82C8 /* VariableListDeltaTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VariableListDeltaTracker.h; sourceTree = ""; }; + D5251DA31538192700FC82C8 /* VariadicSQLParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VariadicSQLParser.cpp; sourceTree = ""; }; + D5251DA41538192700FC82C8 /* VariadicSQLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VariadicSQLParser.h; sourceTree = ""; }; + D5251DA51538192700FC82C8 /* VitaIncludes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VitaIncludes.cpp; sourceTree = ""; }; + D5251DA61538192700FC82C8 /* VitaIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VitaIncludes.h; sourceTree = ""; }; + D5251DA71538192700FC82C8 /* WindowsIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WindowsIncludes.h; sourceTree = ""; }; + D5251DA81538192700FC82C8 /* WSAStartupSingleton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WSAStartupSingleton.cpp; sourceTree = ""; }; + D5251DA91538192700FC82C8 /* WSAStartupSingleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WSAStartupSingleton.h; sourceTree = ""; }; + D5251DAA1538192700FC82C8 /* XBox360Includes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBox360Includes.h; sourceTree = ""; }; + D5251E6F15381D0500FC82C8 /* spritesheet.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spritesheet.png; sourceTree = ""; }; + D5251E73153823DC00FC82C8 /* en_US.lang */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = en_US.lang; sourceTree = ""; }; + D5251E901539A9AF00FC82C8 /* SoundEngine.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SoundEngine.mm; sourceTree = ""; }; + D54493EA15D13BF0005FA9B0 /* BedTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BedTile.cpp; sourceTree = ""; }; + D54493EB15D13BF0005FA9B0 /* BedTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BedTile.h; sourceTree = ""; }; + D54493EC15D13BF0005FA9B0 /* CropTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CropTile.cpp; sourceTree = ""; }; + D54493ED15D13BF0005FA9B0 /* CropTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CropTile.h; sourceTree = ""; }; + D54493EE15D13BF0005FA9B0 /* GrassTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrassTile.cpp; sourceTree = ""; }; + D54493F615D13C35005FA9B0 /* HoeItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HoeItem.cpp; sourceTree = ""; }; + D54493F715D13C35005FA9B0 /* HoeItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HoeItem.h; sourceTree = ""; }; + D54493F815D13C35005FA9B0 /* SeedItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SeedItem.h; sourceTree = ""; }; + D54493FB15D13C59005FA9B0 /* BedItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BedItem.cpp; sourceTree = ""; }; + D54493FC15D13C59005FA9B0 /* BedItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BedItem.h; sourceTree = ""; }; + D54493FF15D13C93005FA9B0 /* BowlFoodItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BowlFoodItem.h; sourceTree = ""; }; + D544940015D13C93005FA9B0 /* ClothTileItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClothTileItem.h; sourceTree = ""; }; + D544940115D13C93005FA9B0 /* CoalItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoalItem.h; sourceTree = ""; }; + D544940215D13C93005FA9B0 /* FoodItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoodItem.h; sourceTree = ""; }; + D544940415D13DB7005FA9B0 /* ServerLevel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServerLevel.cpp; sourceTree = ""; }; + D544940515D13DB7005FA9B0 /* ServerLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerLevel.h; sourceTree = ""; }; + D544940615D13DB7005FA9B0 /* ServerPlayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServerPlayer.cpp; sourceTree = ""; }; + D544940715D13DB7005FA9B0 /* ServerPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerPlayer.h; sourceTree = ""; }; + D544940D15D13E27005FA9B0 /* FoodConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoodConstants.h; sourceTree = ""; }; + D544940E15D13E27005FA9B0 /* SimpleFoodData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleFoodData.cpp; sourceTree = ""; }; + D544940F15D13E27005FA9B0 /* SimpleFoodData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleFoodData.h; sourceTree = ""; }; + D544941215D13E5A005FA9B0 /* FolderMethods.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FolderMethods.cpp; sourceTree = ""; }; + D544941515D13EE3005FA9B0 /* LevelStorageSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LevelStorageSource.cpp; sourceTree = ""; }; + D544941815D13F06005FA9B0 /* TallGrass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TallGrass.cpp; sourceTree = ""; }; + D544941915D13F06005FA9B0 /* TallGrass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TallGrass.h; sourceTree = ""; }; + D544941C15D13F45005FA9B0 /* PlayerRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlayerRenderer.cpp; sourceTree = ""; }; + D544941D15D13F45005FA9B0 /* PlayerRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayerRenderer.h; sourceTree = ""; }; + D544942015D13F5E005FA9B0 /* RemotePlayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemotePlayer.cpp; sourceTree = ""; }; + D544942115D13F5E005FA9B0 /* RemotePlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemotePlayer.h; sourceTree = ""; }; + D54954EC14E38FFC00685A35 /* cancel_0_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cancel_0_1.png; sourceTree = ""; }; + D54954ED14E38FFC00685A35 /* cancel_0_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cancel_0_3.png; sourceTree = ""; }; + D54954EE14E38FFC00685A35 /* cancel_1_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cancel_1_1.png; sourceTree = ""; }; + D54954EF14E38FFC00685A35 /* cancel_1_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cancel_1_3.png; sourceTree = ""; }; + D54954F014E38FFC00685A35 /* create_0_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = create_0_1.png; sourceTree = ""; }; + D54954F114E38FFC00685A35 /* create_0_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = create_0_3.png; sourceTree = ""; }; + D54954F214E38FFC00685A35 /* create_1_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = create_1_1.png; sourceTree = ""; }; + D54954F314E38FFC00685A35 /* create_1_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = create_1_3.png; sourceTree = ""; }; + D54954F414E38FFC00685A35 /* creative_0_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = creative_0_3.png; sourceTree = ""; }; + D54954F514E38FFC00685A35 /* survival_0_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = survival_0_3.png; sourceTree = ""; }; + D54954F614E38FFC00685A35 /* worldname.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname.png; sourceTree = ""; }; + D54954F714E38FFC00685A35 /* worldname_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_3.png; sourceTree = ""; }; + D549551114E3D86B00685A35 /* worldname_ipad_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_ipad_3.png; sourceTree = ""; }; + D549551214E3D86B00685A35 /* worldname_ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_ipad.png; sourceTree = ""; }; + D549551314E3D86C00685A35 /* worldname_iphone_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_iphone_3.png; sourceTree = ""; }; + D549551414E3D86D00685A35 /* worldname_iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_iphone.png; sourceTree = ""; }; + D549551D14E3DC4300685A35 /* creative_1_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = creative_1_3.png; sourceTree = ""; }; + D549551E14E3DC4300685A35 /* survival_1_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = survival_1_3.png; sourceTree = ""; }; + D549552414E3EA0B00685A35 /* cancel_0_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cancel_0_4.png; sourceTree = ""; }; + D549552514E3EA0B00685A35 /* cancel_1_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cancel_1_4.png; sourceTree = ""; }; + D549552614E3EA0B00685A35 /* create_0_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = create_0_4.png; sourceTree = ""; }; + D549552714E3EA0B00685A35 /* create_1_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = create_1_4.png; sourceTree = ""; }; + D549552814E3EA0B00685A35 /* creative_1_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = creative_1_4.png; sourceTree = ""; }; + D549552A14E3EA0B00685A35 /* survival_1_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = survival_1_4.png; sourceTree = ""; }; + D549552C14E3EA0B00685A35 /* worldname_ipad_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_ipad_4.png; sourceTree = ""; }; + D549553F14E3EAC100685A35 /* creative_0_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = creative_0_4.png; sourceTree = ""; }; + D549554014E3EAC100685A35 /* survival_0_4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = survival_0_4.png; sourceTree = ""; }; + D55B201714595370002D9366 /* terrain.pvr */ = {isa = PBXFileReference; lastKnownFileType = file; path = terrain.pvr; sourceTree = ""; }; + D55B252A14598227002D9366 /* terrain.pvrtc */ = {isa = PBXFileReference; lastKnownFileType = file; path = terrain.pvrtc; sourceTree = ""; }; + D572D3AD144C6A1400E67862 /* default8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = default8.png; sourceTree = ""; }; + D572D3AF144C6A1400E67862 /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = ""; }; + D572D3B3144C6A1400E67862 /* default_world.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = default_world.png; sourceTree = ""; }; + D572D3B6144C6A1400E67862 /* gui.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gui.png; sourceTree = ""; }; + D572D3B7144C6A1400E67862 /* gui_blocks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gui_blocks.png; sourceTree = ""; }; + D572D3B8144C6A1400E67862 /* icons.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icons.png; sourceTree = ""; }; + D572D3B9144C6A1400E67862 /* items.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = items.png; sourceTree = ""; }; + D572D3C1144C6A1400E67862 /* title.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = title.png; sourceTree = ""; }; + D572D3C2144C6A1400E67862 /* touchgui.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = touchgui.png; sourceTree = ""; }; + D572D3C4144C6A1400E67862 /* camera.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = camera.png; sourceTree = ""; }; + D572D3C6144C6A1400E67862 /* char.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = char.png; sourceTree = ""; }; + D572D3C7144C6A1400E67862 /* particles.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = particles.png; sourceTree = ""; }; + D572D3C8144C6A1400E67862 /* terrain.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = terrain.png; sourceTree = ""; }; + D572D3DF144CB23200E67862 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + D584926C14FD234400741128 /* SharedConstants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedConstants.cpp; sourceTree = ""; }; + D584926F14FD236700741128 /* Control.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Control.h; path = ai/control/Control.h; sourceTree = ""; }; + D584927014FD236700741128 /* JumpControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JumpControl.h; path = ai/control/JumpControl.h; sourceTree = ""; }; + D584927114FD236700741128 /* MoveControl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MoveControl.cpp; path = ai/control/MoveControl.cpp; sourceTree = ""; }; + D584927214FD236700741128 /* MoveControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MoveControl.h; path = ai/control/MoveControl.h; sourceTree = ""; }; + D584927714FD23A500741128 /* PathNavigation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PathNavigation.h; path = ai/PathNavigation.h; sourceTree = ""; }; + D584927814FD23A500741128 /* Sensing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sensing.h; path = ai/Sensing.h; sourceTree = ""; }; + D584927914FD23B200741128 /* RandomPos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RandomPos.h; path = ai/util/RandomPos.h; sourceTree = ""; }; + D584927A14FD23BF00741128 /* BreakDoorGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BreakDoorGoal.h; path = ai/goal/BreakDoorGoal.h; sourceTree = ""; }; + D584927B14FD23BF00741128 /* DoorInteractGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DoorInteractGoal.h; path = ai/goal/DoorInteractGoal.h; sourceTree = ""; }; + D584927C14FD23BF00741128 /* Goal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Goal.h; path = ai/goal/Goal.h; sourceTree = ""; }; + D584927D14FD23BF00741128 /* GoalSelector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GoalSelector.h; path = ai/goal/GoalSelector.h; sourceTree = ""; }; + D584927E14FD23BF00741128 /* MeleeAttackGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MeleeAttackGoal.h; path = ai/goal/MeleeAttackGoal.h; sourceTree = ""; }; + D584927F14FD23BF00741128 /* RandomStrollGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RandomStrollGoal.h; path = ai/goal/RandomStrollGoal.h; sourceTree = ""; }; + D584928114FD23DB00741128 /* HurtByTargetGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HurtByTargetGoal.h; path = ai/goal/target/HurtByTargetGoal.h; sourceTree = ""; }; + D584928214FD23DB00741128 /* NearestAttackableTargetGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NearestAttackableTargetGoal.h; path = ai/goal/target/NearestAttackableTargetGoal.h; sourceTree = ""; }; + D584928314FD23DB00741128 /* TargetGoal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TargetGoal.h; path = ai/goal/target/TargetGoal.h; sourceTree = ""; }; + D584928414FD240C00741128 /* IConfigListener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IConfigListener.cpp; sourceTree = ""; }; + D584928514FD240C00741128 /* IConfigListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IConfigListener.h; sourceTree = ""; }; + D584928814FD2FAF00741128 /* Path.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Path.cpp; sourceTree = ""; }; + D58BB5B5146A0B920002C9F5 /* minecraftpe.demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = minecraftpe.demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D5912008145FE9E600AE2E58 /* bg64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg64.png; sourceTree = ""; }; + D591200A145FEB8C00AE2E58 /* bg128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg128.png; sourceTree = ""; }; + D591200E1460041300AE2E58 /* minecraft.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = minecraft.ttf; path = ../../data/fonts/minecraft.ttf; sourceTree = ""; }; + D593325416077BBB00E26FC5 /* RenameMPWorld_iphone5.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RenameMPWorld_iphone5.xib; path = minecraftpe/dialogs/RenameMPWorld_iphone5.xib; sourceTree = ""; }; + D593755014611CF200543145 /* CreateNewWorld_iphone5.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CreateNewWorld_iphone5.xib; path = minecraftpe/dialogs/CreateNewWorld_iphone5.xib; sourceTree = ""; }; + D5951EC4159347EE0043A12A /* FurnaceRecipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FurnaceRecipes.cpp; sourceTree = ""; }; + D5951EC5159347EE0043A12A /* FurnaceRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FurnaceRecipes.h; sourceTree = ""; }; + D5951EC6159347EE0043A12A /* OreRecipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OreRecipes.cpp; sourceTree = ""; }; + D5951ED01593485F0043A12A /* ContainerAckPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerAckPacket.h; sourceTree = ""; }; + D5951ED11593485F0043A12A /* ContainerClosePacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerClosePacket.h; sourceTree = ""; }; + D5951ED21593485F0043A12A /* ContainerOpenPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerOpenPacket.h; sourceTree = ""; }; + D5951ED31593485F0043A12A /* ContainerSetContentPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerSetContentPacket.h; sourceTree = ""; }; + D5951ED41593485F0043A12A /* ContainerSetDataPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerSetDataPacket.h; sourceTree = ""; }; + D5951ED51593485F0043A12A /* ContainerSetSlotPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerSetSlotPacket.h; sourceTree = ""; }; + D5951ED6159348C50043A12A /* InventoryPane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InventoryPane.cpp; sourceTree = ""; }; + D5951ED7159348C50043A12A /* InventoryPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InventoryPane.h; sourceTree = ""; }; + D5951ED8159348C50043A12A /* ItemPane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ItemPane.cpp; sourceTree = ""; }; + D5951ED9159348C50043A12A /* ItemPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemPane.h; sourceTree = ""; }; + D5951EE1159349000043A12A /* FurnaceTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FurnaceTile.cpp; sourceTree = ""; }; + D5951EE2159349000043A12A /* FurnaceTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FurnaceTile.h; sourceTree = ""; }; + D5951EE5159349100043A12A /* FurnaceTileEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FurnaceTileEntity.cpp; sourceTree = ""; }; + D5951EE6159349100043A12A /* FurnaceTileEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FurnaceTileEntity.h; sourceTree = ""; }; + D5951EE7159349100043A12A /* TileEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TileEntity.cpp; sourceTree = ""; }; + D5951EEC159349680043A12A /* FurnaceScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FurnaceScreen.cpp; sourceTree = ""; }; + D5951EED159349680043A12A /* FurnaceScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FurnaceScreen.h; sourceTree = ""; }; + D5951EF015934A2D0043A12A /* Feature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Feature.cpp; sourceTree = ""; }; + D5951EF315934AC50043A12A /* BaseContainerMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseContainerMenu.cpp; sourceTree = ""; }; + D5951EF415934AC50043A12A /* BaseContainerMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseContainerMenu.h; sourceTree = ""; }; + D5951EF515934AC50043A12A /* FurnaceMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FurnaceMenu.cpp; sourceTree = ""; }; + D5951EF615934AC50043A12A /* FurnaceMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FurnaceMenu.h; sourceTree = ""; }; + D598BD6C163ED06400A36438 /* explode.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = explode.m4a; sourceTree = ""; }; + D598BD6F163ED09800A36438 /* zpig1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpig1.m4a; sourceTree = ""; }; + D598BD70163ED09800A36438 /* zpig2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpig2.m4a; sourceTree = ""; }; + D598BD71163ED09800A36438 /* zpig3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpig3.m4a; sourceTree = ""; }; + D598BD72163ED09800A36438 /* zpig4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpig4.m4a; sourceTree = ""; }; + D598BD73163ED09800A36438 /* zpigangry1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpigangry1.m4a; sourceTree = ""; }; + D598BD74163ED09800A36438 /* zpigangry2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpigangry2.m4a; sourceTree = ""; }; + D598BD75163ED09800A36438 /* zpigangry3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpigangry3.m4a; sourceTree = ""; }; + D598BD76163ED09800A36438 /* zpigangry4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpigangry4.m4a; sourceTree = ""; }; + D598BD77163ED09800A36438 /* zpigdeath.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpigdeath.m4a; sourceTree = ""; }; + D598BD78163ED09800A36438 /* zpighurt1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpighurt1.m4a; sourceTree = ""; }; + D598BD79163ED09800A36438 /* zpighurt2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zpighurt2.m4a; sourceTree = ""; }; + D598BD90163ED0DB00A36438 /* sign.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sign.png; sourceTree = ""; }; + D598BD93163ED14000A36438 /* pigzombie.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pigzombie.png; sourceTree = ""; }; + D598BD97163ED26500A36438 /* kz.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = kz.png; path = art/kz.png; sourceTree = ""; }; + D598BD9C164157D500A36438 /* minecon140.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = minecon140.png; path = badge/minecon140.png; sourceTree = ""; }; + D5A55E4714500EDE00A7571B /* CreateNewWorldViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = CreateNewWorldViewController.h; path = minecraftpe/dialogs/CreateNewWorldViewController.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5A55E4814500EDE00A7571B /* CreateNewWorldViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; name = CreateNewWorldViewController.mm; path = minecraftpe/dialogs/CreateNewWorldViewController.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5A55E4A1450353800A7571B /* IDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = IDialog.h; path = minecraftpe/dialogs/IDialog.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5A55E4B145036AE00A7571B /* BaseDialogController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = BaseDialogController.h; path = minecraftpe/dialogs/BaseDialogController.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5A55E4C145036AE00A7571B /* BaseDialogController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; name = BaseDialogController.mm; path = minecraftpe/dialogs/BaseDialogController.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5A55E4E1450761600A7571B /* bg32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg32.png; sourceTree = ""; }; + D5A6F8CF15B45E2600819B71 /* ChestScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChestScreen.cpp; sourceTree = ""; }; + D5A6F8D015B45E2600819B71 /* ChestScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChestScreen.h; sourceTree = ""; }; + D5A6F8D415B45EE500819B71 /* ContainerMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContainerMenu.cpp; sourceTree = ""; }; + D5A6F8D515B45EE500819B71 /* ContainerMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerMenu.h; sourceTree = ""; }; + D5ACF15415C01F7D00E21C22 /* ArrowRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArrowRenderer.cpp; sourceTree = ""; }; + D5ACF15515C01F7D00E21C22 /* ArrowRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArrowRenderer.h; sourceTree = ""; }; + D5ACF16D15C0220D00E21C22 /* Creeper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Creeper.cpp; sourceTree = ""; }; + D5ACF16E15C0220D00E21C22 /* Creeper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Creeper.h; sourceTree = ""; }; + D5ACF16F15C0220D00E21C22 /* Monster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Monster.cpp; sourceTree = ""; }; + D5ACF17015C0220D00E21C22 /* Monster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Monster.h; sourceTree = ""; }; + D5ACF17115C0220D00E21C22 /* MonsterInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonsterInclude.h; sourceTree = ""; }; + D5ACF17215C0220D00E21C22 /* Skeleton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Skeleton.cpp; sourceTree = ""; }; + D5ACF17315C0220D00E21C22 /* Skeleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Skeleton.h; sourceTree = ""; }; + D5ACF17415C0220D00E21C22 /* Spider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Spider.cpp; sourceTree = ""; }; + D5ACF17515C0220D00E21C22 /* Spider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Spider.h; sourceTree = ""; }; + D5ACF17615C0220D00E21C22 /* Zombie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Zombie.cpp; sourceTree = ""; }; + D5ACF17715C0220D00E21C22 /* Zombie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Zombie.h; sourceTree = ""; }; + D5ACF18215C022B500E21C22 /* EntityFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EntityFactory.cpp; sourceTree = ""; }; + D5ACF18315C022B500E21C22 /* EntityFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityFactory.h; sourceTree = ""; }; + D5ACF18815C03DBF00E21C22 /* fallbig1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = fallbig1.m4a; sourceTree = ""; }; + D5ACF18915C03DBF00E21C22 /* fallbig2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = fallbig2.m4a; sourceTree = ""; }; + D5ACF18A15C03DBF00E21C22 /* fallsmall.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = fallsmall.m4a; sourceTree = ""; }; + D5ACF18C15C03DBF00E21C22 /* chicken1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = chicken1.m4a; sourceTree = ""; }; + D5ACF18D15C03DBF00E21C22 /* chicken2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = chicken2.m4a; sourceTree = ""; }; + D5ACF18E15C03DBF00E21C22 /* chicken3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = chicken3.m4a; sourceTree = ""; }; + D5ACF18F15C03DBF00E21C22 /* chickenhurt1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = chickenhurt1.m4a; sourceTree = ""; }; + D5ACF19015C03DBF00E21C22 /* chickenhurt2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = chickenhurt2.m4a; sourceTree = ""; }; + D5ACF19115C03DBF00E21C22 /* chickenplop.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = chickenplop.m4a; sourceTree = ""; }; + D5ACF19215C03DBF00E21C22 /* cow1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cow1.m4a; sourceTree = ""; }; + D5ACF19315C03DBF00E21C22 /* cow2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cow2.m4a; sourceTree = ""; }; + D5ACF19415C03DBF00E21C22 /* cow3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cow3.m4a; sourceTree = ""; }; + D5ACF19515C03DBF00E21C22 /* cow4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cow4.m4a; sourceTree = ""; }; + D5ACF19615C03DBF00E21C22 /* cowhurt1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cowhurt1.m4a; sourceTree = ""; }; + D5ACF19715C03DBF00E21C22 /* cowhurt2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cowhurt2.m4a; sourceTree = ""; }; + D5ACF19815C03DBF00E21C22 /* cowhurt3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cowhurt3.m4a; sourceTree = ""; }; + D5ACF19915C03DBF00E21C22 /* pig1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = pig1.m4a; sourceTree = ""; }; + D5ACF19A15C03DBF00E21C22 /* pig2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = pig2.m4a; sourceTree = ""; }; + D5ACF19B15C03DBF00E21C22 /* pig3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = pig3.m4a; sourceTree = ""; }; + D5ACF19C15C03DBF00E21C22 /* pigdeath.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = pigdeath.m4a; sourceTree = ""; }; + D5ACF19D15C03DBF00E21C22 /* sheep1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sheep1.m4a; sourceTree = ""; }; + D5ACF19E15C03DBF00E21C22 /* sheep2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sheep2.m4a; sourceTree = ""; }; + D5ACF19F15C03DBF00E21C22 /* sheep3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sheep3.m4a; sourceTree = ""; }; + D5ACF1A015C03DBF00E21C22 /* skeleton1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeleton1.m4a; sourceTree = ""; }; + D5ACF1A115C03DBF00E21C22 /* skeleton2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeleton2.m4a; sourceTree = ""; }; + D5ACF1A215C03DBF00E21C22 /* skeleton3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeleton3.m4a; sourceTree = ""; }; + D5ACF1A315C03DBF00E21C22 /* skeletonhurt1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeletonhurt1.m4a; sourceTree = ""; }; + D5ACF1A415C03DBF00E21C22 /* skeletonhurt2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeletonhurt2.m4a; sourceTree = ""; }; + D5ACF1A515C03DBF00E21C22 /* skeletonhurt3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeletonhurt3.m4a; sourceTree = ""; }; + D5ACF1A615C03DBF00E21C22 /* skeletonhurt4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = skeletonhurt4.m4a; sourceTree = ""; }; + D5ACF1A715C03DBF00E21C22 /* spider1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = spider1.m4a; sourceTree = ""; }; + D5ACF1A815C03DBF00E21C22 /* spider2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = spider2.m4a; sourceTree = ""; }; + D5ACF1A915C03DBF00E21C22 /* spider3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = spider3.m4a; sourceTree = ""; }; + D5ACF1AA15C03DBF00E21C22 /* spider4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = spider4.m4a; sourceTree = ""; }; + D5ACF1AB15C03DBF00E21C22 /* zombie1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zombie1.m4a; sourceTree = ""; }; + D5ACF1AC15C03DBF00E21C22 /* zombie2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zombie2.m4a; sourceTree = ""; }; + D5ACF1AD15C03DBF00E21C22 /* zombie3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zombie3.m4a; sourceTree = ""; }; + D5ACF1AE15C03DBF00E21C22 /* zombiedeath.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zombiedeath.m4a; sourceTree = ""; }; + D5ACF1AF15C03DBF00E21C22 /* zombiehurt1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zombiehurt1.m4a; sourceTree = ""; }; + D5ACF1B015C03DBF00E21C22 /* zombiehurt2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = zombiehurt2.m4a; sourceTree = ""; }; + D5ACF1B215C03DBF00E21C22 /* bow.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = bow.m4a; sourceTree = ""; }; + D5ACF1B315C03DBF00E21C22 /* bowhit1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = bowhit1.m4a; sourceTree = ""; }; + D5ACF1B415C03DBF00E21C22 /* bowhit2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = bowhit2.m4a; sourceTree = ""; }; + D5ACF1B515C03DBF00E21C22 /* bowhit3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = bowhit3.m4a; sourceTree = ""; }; + D5ACF1B615C03DBF00E21C22 /* bowhit4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = bowhit4.m4a; sourceTree = ""; }; + D5ACF1B715C03DBF00E21C22 /* click.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = click.m4a; sourceTree = ""; }; + D5ACF1B815C03DBF00E21C22 /* door_close.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = door_close.m4a; sourceTree = ""; }; + D5ACF1B915C03DBF00E21C22 /* door_open.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = door_open.m4a; sourceTree = ""; }; + D5ACF1BA15C03DBF00E21C22 /* glass1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = glass1.m4a; sourceTree = ""; }; + D5ACF1BB15C03DBF00E21C22 /* glass2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = glass2.m4a; sourceTree = ""; }; + D5ACF1BC15C03DBF00E21C22 /* glass3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = glass3.m4a; sourceTree = ""; }; + D5ACF1BD15C03DBF00E21C22 /* hurt.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = hurt.m4a; sourceTree = ""; }; + D5ACF1BE15C03DBF00E21C22 /* pop.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = pop.m4a; sourceTree = ""; }; + D5ACF1BF15C03DBF00E21C22 /* splash.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = splash.m4a; sourceTree = ""; }; + D5ACF1C015C03DBF00E21C22 /* water.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = water.m4a; sourceTree = ""; }; + D5ACF1C215C03DBF00E21C22 /* cloth1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cloth1.m4a; sourceTree = ""; }; + D5ACF1C315C03DBF00E21C22 /* cloth2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cloth2.m4a; sourceTree = ""; }; + D5ACF1C415C03DBF00E21C22 /* cloth3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cloth3.m4a; sourceTree = ""; }; + D5ACF1C515C03DBF00E21C22 /* cloth4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = cloth4.m4a; sourceTree = ""; }; + D5ACF1C615C03DBF00E21C22 /* grass1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = grass1.m4a; sourceTree = ""; }; + D5ACF1C715C03DBF00E21C22 /* grass2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = grass2.m4a; sourceTree = ""; }; + D5ACF1C815C03DBF00E21C22 /* grass3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = grass3.m4a; sourceTree = ""; }; + D5ACF1C915C03DBF00E21C22 /* grass4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = grass4.m4a; sourceTree = ""; }; + D5ACF1CA15C03DBF00E21C22 /* gravel2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = gravel2.m4a; sourceTree = ""; }; + D5ACF1CB15C03DBF00E21C22 /* gravel3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = gravel3.m4a; sourceTree = ""; }; + D5ACF1CC15C03DBF00E21C22 /* gravel4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = gravel4.m4a; sourceTree = ""; }; + D5ACF1CD15C03DBF00E21C22 /* ladder1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = ladder1.m4a; sourceTree = ""; }; + D5ACF1CE15C03DBF00E21C22 /* ladder2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = ladder2.m4a; sourceTree = ""; }; + D5ACF1CF15C03DBF00E21C22 /* ladder3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = ladder3.m4a; sourceTree = ""; }; + D5ACF1D015C03DBF00E21C22 /* ladder4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = ladder4.m4a; sourceTree = ""; }; + D5ACF1D115C03DBF00E21C22 /* sand1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sand1.m4a; sourceTree = ""; }; + D5ACF1D215C03DBF00E21C22 /* sand2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sand2.m4a; sourceTree = ""; }; + D5ACF1D315C03DBF00E21C22 /* sand3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sand3.m4a; sourceTree = ""; }; + D5ACF1D415C03DBF00E21C22 /* sand4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sand4.m4a; sourceTree = ""; }; + D5ACF1D515C03DBF00E21C22 /* snow1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = snow1.m4a; sourceTree = ""; }; + D5ACF1D615C03DBF00E21C22 /* snow2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = snow2.m4a; sourceTree = ""; }; + D5ACF1D715C03DBF00E21C22 /* snow3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = snow3.m4a; sourceTree = ""; }; + D5ACF1D815C03DBF00E21C22 /* snow4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = snow4.m4a; sourceTree = ""; }; + D5ACF1D915C03DBF00E21C22 /* stone1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = stone1.m4a; sourceTree = ""; }; + D5ACF1DA15C03DBF00E21C22 /* stone2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = stone2.m4a; sourceTree = ""; }; + D5ACF1DB15C03DBF00E21C22 /* stone3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = stone3.m4a; sourceTree = ""; }; + D5ACF1DC15C03DBF00E21C22 /* stone4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = stone4.m4a; sourceTree = ""; }; + D5ACF1DD15C03DBF00E21C22 /* wood1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = wood1.m4a; sourceTree = ""; }; + D5ACF1DE15C03DBF00E21C22 /* wood2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = wood2.m4a; sourceTree = ""; }; + D5ACF1DF15C03DBF00E21C22 /* wood3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = wood3.m4a; sourceTree = ""; }; + D5ACF1E015C03DBF00E21C22 /* wood4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = wood4.m4a; sourceTree = ""; }; + D5ACF28D15C03E8800E21C22 /* arrows.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrows.png; sourceTree = ""; }; + D5B17ED115E226F50056E751 /* Snowball.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Snowball.h; sourceTree = ""; }; + D5B17ED215E226F50056E751 /* Throwable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Throwable.cpp; sourceTree = ""; }; + D5B17ED315E226F50056E751 /* Throwable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Throwable.h; sourceTree = ""; }; + D5B17ED415E226F50056E751 /* ThrownEgg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThrownEgg.h; sourceTree = ""; }; + D5B17ED815E2273F0056E751 /* SurvivalMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurvivalMode.cpp; sourceTree = ""; }; + D5B17EDB15E227670056E751 /* TrapDoorTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TrapDoorTile.cpp; sourceTree = ""; }; + D5B17EDC15E227670056E751 /* TrapDoorTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrapDoorTile.h; sourceTree = ""; }; + D5B17EDF15E260910056E751 /* MoveFolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoveFolder.h; sourceTree = ""; }; + D5B17EE015E260910056E751 /* MoveFolder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MoveFolder.mm; sourceTree = ""; }; + D5B26C1D15E3CE51003785EA /* creeper1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = creeper1.m4a; sourceTree = ""; }; + D5B26C1E15E3CE51003785EA /* creeper2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = creeper2.m4a; sourceTree = ""; }; + D5B26C1F15E3CE51003785EA /* creeper3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = creeper3.m4a; sourceTree = ""; }; + D5B26C2015E3CE51003785EA /* creeper4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = creeper4.m4a; sourceTree = ""; }; + D5B26C2115E3CE51003785EA /* creeperdeath.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = creeperdeath.m4a; sourceTree = ""; }; + D5B26C2215E3CE51003785EA /* spiderdeath.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = spiderdeath.m4a; sourceTree = ""; }; + D5B26C2F15E3CED3003785EA /* eat1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = eat1.m4a; sourceTree = ""; }; + D5B26C3015E3CED3003785EA /* eat2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = eat2.m4a; sourceTree = ""; }; + D5B26C3115E3CED3003785EA /* eat3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = eat3.m4a; sourceTree = ""; }; + D5B26C3215E3CED3003785EA /* fuse.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = fuse.m4a; sourceTree = ""; }; + D5B50A4614CFF492005F7284 /* chicken.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chicken.png; sourceTree = ""; }; + D5B50A4714CFF492005F7284 /* cow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cow.png; sourceTree = ""; }; + D5B50A4814CFF492005F7284 /* creeper.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = creeper.png; sourceTree = ""; }; + D5B50A4914CFF492005F7284 /* pig.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pig.png; sourceTree = ""; }; + D5B50A4A14CFF492005F7284 /* sheep_fur.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sheep_fur.png; sourceTree = ""; }; + D5B50A4B14CFF492005F7284 /* sheep.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sheep.png; sourceTree = ""; }; + D5B50A4C14CFF492005F7284 /* skeleton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = skeleton.png; sourceTree = ""; }; + D5B50A4D14CFF492005F7284 /* spider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spider.png; sourceTree = ""; }; + D5B50A4E14CFF492005F7284 /* zombie.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = zombie.png; sourceTree = ""; }; + D5B50C1714CFF66F005F7284 /* App.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = App.h; sourceTree = ""; }; + D5B50C1814CFF66F005F7284 /* AppConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppConstants.h; sourceTree = ""; }; + D5B50C1914CFF66F005F7284 /* AppPlatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppPlatform.h; sourceTree = ""; }; + D5B50C1B14CFF66F005F7284 /* AppPlatform_iOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppPlatform_iOS.h; sourceTree = ""; }; + D5B50C1C14CFF66F005F7284 /* AppPlatform_iOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppPlatform_iOS.mm; sourceTree = ""; }; + D5B50C2114CFF66F005F7284 /* CreativeMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CreativeMode.cpp; sourceTree = ""; }; + D5B50C2214CFF66F005F7284 /* CreativeMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreativeMode.h; sourceTree = ""; }; + D5B50C2314CFF66F005F7284 /* GameMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GameMode.cpp; sourceTree = ""; }; + D5B50C2414CFF66F005F7284 /* GameMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameMode.h; sourceTree = ""; }; + D5B50C2514CFF66F005F7284 /* SurvivalMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurvivalMode.h; sourceTree = ""; }; + D5B50C2814CFF66F005F7284 /* Button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Button.cpp; sourceTree = ""; }; + D5B50C2914CFF66F005F7284 /* Button.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Button.h; sourceTree = ""; }; + D5B50C2A14CFF66F005F7284 /* ImageButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageButton.cpp; sourceTree = ""; }; + D5B50C2B14CFF66F005F7284 /* ImageButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageButton.h; sourceTree = ""; }; + D5B50C2C14CFF66F005F7284 /* LargeImageButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LargeImageButton.cpp; sourceTree = ""; }; + D5B50C2D14CFF66F005F7284 /* LargeImageButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LargeImageButton.h; sourceTree = ""; }; + D5B50C2E14CFF66F005F7284 /* RolledSelectionListH.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RolledSelectionListH.cpp; sourceTree = ""; }; + D5B50C2F14CFF66F005F7284 /* RolledSelectionListH.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RolledSelectionListH.h; sourceTree = ""; }; + D5B50C3014CFF66F005F7284 /* RolledSelectionListV.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RolledSelectionListV.cpp; sourceTree = ""; }; + D5B50C3114CFF66F005F7284 /* RolledSelectionListV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RolledSelectionListV.h; sourceTree = ""; }; + D5B50C3214CFF66F005F7284 /* ScrolledSelectionList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrolledSelectionList.cpp; sourceTree = ""; }; + D5B50C3314CFF66F005F7284 /* ScrolledSelectionList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrolledSelectionList.h; sourceTree = ""; }; + D5B50C3414CFF66F005F7284 /* SmallButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SmallButton.cpp; sourceTree = ""; }; + D5B50C3514CFF66F005F7284 /* SmallButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallButton.h; sourceTree = ""; }; + D5B50C3614CFF66F005F7284 /* Font.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Font.cpp; sourceTree = ""; }; + D5B50C3714CFF66F005F7284 /* Font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Font.h; sourceTree = ""; }; + D5B50C3814CFF66F005F7284 /* Gui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Gui.cpp; sourceTree = ""; }; + D5B50C3914CFF66F005F7284 /* Gui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Gui.h; sourceTree = ""; }; + D5B50C3A14CFF66F005F7284 /* GuiComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GuiComponent.cpp; sourceTree = ""; }; + D5B50C3B14CFF66F005F7284 /* GuiComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuiComponent.h; sourceTree = ""; }; + D5B50C3C14CFF66F005F7284 /* Screen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Screen.cpp; sourceTree = ""; }; + D5B50C3D14CFF66F005F7284 /* Screen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Screen.h; sourceTree = ""; }; + D5B50C3F14CFF66F005F7284 /* BuyGameScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuyGameScreen.h; sourceTree = ""; }; + D5B50C4014CFF66F005F7284 /* ChatScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChatScreen.cpp; sourceTree = ""; }; + D5B50C4114CFF66F005F7284 /* ChatScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatScreen.h; sourceTree = ""; }; + D5B50C4214CFF66F005F7284 /* ConfirmScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfirmScreen.cpp; sourceTree = ""; }; + D5B50C4314CFF66F005F7284 /* ConfirmScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmScreen.h; sourceTree = ""; }; + D5B50C4414CFF66F005F7284 /* DialogDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialogDefinitions.h; sourceTree = ""; }; + D5B50C4514CFF66F005F7284 /* DisconnectionScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisconnectionScreen.h; sourceTree = ""; }; + D5B50C4614CFF66F005F7284 /* IngameBlockSelectionScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IngameBlockSelectionScreen.cpp; sourceTree = ""; }; + D5B50C4714CFF66F005F7284 /* IngameBlockSelectionScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IngameBlockSelectionScreen.h; sourceTree = ""; }; + D5B50C4814CFF66F005F7284 /* InvalidLicenseScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InvalidLicenseScreen.h; sourceTree = ""; }; + D5B50C4914CFF66F005F7284 /* JoinGameScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JoinGameScreen.cpp; sourceTree = ""; }; + D5B50C4A14CFF66F005F7284 /* JoinGameScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JoinGameScreen.h; sourceTree = ""; }; + D5B50C4B14CFF66F005F7284 /* OptionsScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionsScreen.cpp; sourceTree = ""; }; + D5B50C4C14CFF66F005F7284 /* OptionsScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsScreen.h; sourceTree = ""; }; + D5B50C4D14CFF66F005F7284 /* PauseScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PauseScreen.cpp; sourceTree = ""; }; + D5B50C4E14CFF66F005F7284 /* PauseScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PauseScreen.h; sourceTree = ""; }; + D5B50C4F14CFF66F005F7284 /* PrerenderTilesScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrerenderTilesScreen.h; sourceTree = ""; }; + D5B50C5014CFF66F005F7284 /* ProgressScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProgressScreen.cpp; sourceTree = ""; }; + D5B50C5114CFF66F005F7284 /* ProgressScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressScreen.h; sourceTree = ""; }; + D5B50C5214CFF66F005F7284 /* RenameMPLevelScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenameMPLevelScreen.cpp; sourceTree = ""; }; + D5B50C5314CFF66F005F7284 /* RenameMPLevelScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenameMPLevelScreen.h; sourceTree = ""; }; + D5B50C5414CFF66F005F7284 /* ScreenChooser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScreenChooser.cpp; sourceTree = ""; }; + D5B50C5514CFF66F005F7284 /* ScreenChooser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScreenChooser.h; sourceTree = ""; }; + D5B50C5614CFF66F005F7284 /* SelectWorldScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelectWorldScreen.cpp; sourceTree = ""; }; + D5B50C5714CFF66F005F7284 /* SelectWorldScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelectWorldScreen.h; sourceTree = ""; }; + D5B50C5814CFF66F005F7284 /* StartMenuScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StartMenuScreen.cpp; sourceTree = ""; }; + D5B50C5914CFF66F005F7284 /* StartMenuScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StartMenuScreen.h; sourceTree = ""; }; + D5B50C5B14CFF66F005F7284 /* TouchIngameBlockSelectionScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TouchIngameBlockSelectionScreen.cpp; sourceTree = ""; }; + D5B50C5C14CFF66F005F7284 /* TouchIngameBlockSelectionScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchIngameBlockSelectionScreen.h; sourceTree = ""; }; + D5B50C5D14CFF66F005F7284 /* TouchJoinGameScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TouchJoinGameScreen.cpp; sourceTree = ""; }; + D5B50C5E14CFF66F005F7284 /* TouchJoinGameScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchJoinGameScreen.h; sourceTree = ""; }; + D5B50C5F14CFF66F005F7284 /* TouchSelectWorldScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TouchSelectWorldScreen.cpp; sourceTree = ""; }; + D5B50C6014CFF66F005F7284 /* TouchSelectWorldScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchSelectWorldScreen.h; sourceTree = ""; }; + D5B50C6114CFF66F005F7284 /* TouchStartMenuScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TouchStartMenuScreen.cpp; sourceTree = ""; }; + D5B50C6214CFF66F005F7284 /* TouchStartMenuScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchStartMenuScreen.h; sourceTree = ""; }; + D5B50C6314CFF66F005F7284 /* UploadPhotoScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UploadPhotoScreen.cpp; sourceTree = ""; }; + D5B50C6414CFF66F005F7284 /* UploadPhotoScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UploadPhotoScreen.h; sourceTree = ""; }; + D5B50C6514CFF66F005F7284 /* TweenData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweenData.h; sourceTree = ""; }; + D5B50C6614CFF66F005F7284 /* KeyMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyMapping.h; sourceTree = ""; }; + D5B50C6814CFF66F005F7284 /* Minecraft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Minecraft.cpp; sourceTree = ""; }; + D5B50C6914CFF66F005F7284 /* Minecraft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Minecraft.h; sourceTree = ""; }; + D5B50C6B14CFF66F005F7284 /* ChickenModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChickenModel.cpp; sourceTree = ""; }; + D5B50C6C14CFF66F005F7284 /* ChickenModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChickenModel.h; sourceTree = ""; }; + D5B50C6D14CFF66F005F7284 /* CowModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CowModel.cpp; sourceTree = ""; }; + D5B50C6E14CFF66F005F7284 /* CowModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CowModel.h; sourceTree = ""; }; + D5B50C6F14CFF66F005F7284 /* CreeperModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreeperModel.h; sourceTree = ""; }; + D5B50C7114CFF66F005F7284 /* Cube.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Cube.cpp; sourceTree = ""; }; + D5B50C7214CFF66F005F7284 /* Cube.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cube.h; sourceTree = ""; }; + D5B50C7314CFF66F005F7284 /* ModelPart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ModelPart.cpp; sourceTree = ""; }; + D5B50C7414CFF66F005F7284 /* ModelPart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModelPart.h; sourceTree = ""; }; + D5B50C7514CFF66F005F7284 /* Polygon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Polygon.cpp; sourceTree = ""; }; + D5B50C7614CFF66F005F7284 /* Polygon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Polygon.h; sourceTree = ""; }; + D5B50C7714CFF66F005F7284 /* Vertex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Vertex.h; sourceTree = ""; }; + D5B50C7814CFF66F005F7284 /* HumanoidModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HumanoidModel.cpp; sourceTree = ""; }; + D5B50C7914CFF66F005F7284 /* HumanoidModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HumanoidModel.h; sourceTree = ""; }; + D5B50C7A14CFF66F005F7284 /* Model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Model.h; sourceTree = ""; }; + D5B50C7B14CFF66F005F7284 /* ModelInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModelInclude.h; sourceTree = ""; }; + D5B50C7C14CFF66F005F7284 /* PigModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PigModel.cpp; sourceTree = ""; }; + D5B50C7D14CFF66F005F7284 /* PigModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PigModel.h; sourceTree = ""; }; + D5B50C7E14CFF66F005F7284 /* QuadrupedModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QuadrupedModel.cpp; sourceTree = ""; }; + D5B50C7F14CFF66F005F7284 /* QuadrupedModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuadrupedModel.h; sourceTree = ""; }; + D5B50C8014CFF66F005F7284 /* SheepFurModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SheepFurModel.h; sourceTree = ""; }; + D5B50C8114CFF66F005F7284 /* SheepModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SheepModel.h; sourceTree = ""; }; + D5B50C8214CFF66F005F7284 /* SkeletonModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkeletonModel.h; sourceTree = ""; }; + D5B50C8314CFF66F005F7284 /* SpiderModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpiderModel.h; sourceTree = ""; }; + D5B50C8414CFF66F005F7284 /* ZombieModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZombieModel.h; sourceTree = ""; }; + D5B50C8514CFF66F005F7284 /* MouseHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseHandler.h; sourceTree = ""; }; + D5B50C8714CFF66F005F7284 /* MultiPlayerLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiPlayerLevel.h; sourceTree = ""; }; + D5B50C8814CFF66F005F7284 /* Options.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Options.cpp; sourceTree = ""; }; + D5B50C8914CFF66F005F7284 /* Options.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Options.h; sourceTree = ""; }; + D5B50C8A14CFF66F005F7284 /* OptionStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionStrings.cpp; sourceTree = ""; }; + D5B50C8B14CFF66F005F7284 /* OptionStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionStrings.h; sourceTree = ""; }; + D5B50C8D14CFF66F005F7284 /* BreakingItemParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakingItemParticle.h; sourceTree = ""; }; + D5B50C8E14CFF66F005F7284 /* BubbleParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BubbleParticle.h; sourceTree = ""; }; + D5B50C8F14CFF66F005F7284 /* ExplodeParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExplodeParticle.h; sourceTree = ""; }; + D5B50C9014CFF66F005F7284 /* FlameParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlameParticle.h; sourceTree = ""; }; + D5B50C9114CFF66F005F7284 /* LavaParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LavaParticle.h; sourceTree = ""; }; + D5B50C9214CFF66F005F7284 /* Particle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Particle.cpp; sourceTree = ""; }; + D5B50C9314CFF66F005F7284 /* Particle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Particle.h; sourceTree = ""; }; + D5B50C9414CFF66F005F7284 /* ParticleEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParticleEngine.cpp; sourceTree = ""; }; + D5B50C9514CFF66F005F7284 /* ParticleEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParticleEngine.h; sourceTree = ""; }; + D5B50C9614CFF66F005F7284 /* ParticleInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParticleInclude.h; sourceTree = ""; }; + D5B50C9714CFF66F005F7284 /* RedDustParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RedDustParticle.h; sourceTree = ""; }; + D5B50C9814CFF66F005F7284 /* SmokeParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmokeParticle.h; sourceTree = ""; }; + D5B50C9914CFF66F005F7284 /* SplashParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplashParticle.h; sourceTree = ""; }; + D5B50C9A14CFF66F005F7284 /* TakeAnimationParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TakeAnimationParticle.h; sourceTree = ""; }; + D5B50C9B14CFF66F005F7284 /* TerrainParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TerrainParticle.h; sourceTree = ""; }; + D5B50C9C14CFF66F005F7284 /* PixelCalc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PixelCalc.h; sourceTree = ""; }; + D5B50C9F14CFF66F005F7284 /* ControllerTurnInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ControllerTurnInput.h; sourceTree = ""; }; + D5B50CA014CFF66F005F7284 /* IBuildInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IBuildInput.h; sourceTree = ""; }; + D5B50CA114CFF66F005F7284 /* IInputHolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IInputHolder.h; sourceTree = ""; }; + D5B50CA214CFF66F005F7284 /* IMoveInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMoveInput.h; sourceTree = ""; }; + D5B50CA314CFF66F005F7284 /* ITurnInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITurnInput.h; sourceTree = ""; }; + D5B50CA414CFF66F005F7284 /* KeyboardInput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KeyboardInput.cpp; sourceTree = ""; }; + D5B50CA514CFF66F005F7284 /* KeyboardInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardInput.h; sourceTree = ""; }; + D5B50CA614CFF66F005F7284 /* MouseBuildInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseBuildInput.h; sourceTree = ""; }; + D5B50CA714CFF66F005F7284 /* MouseTurnInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseTurnInput.h; sourceTree = ""; }; + D5B50CA914CFF66F005F7284 /* ITouchScreenModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITouchScreenModel.h; sourceTree = ""; }; + D5B50CAA14CFF66F005F7284 /* TouchAreaModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchAreaModel.h; sourceTree = ""; }; + D5B50CAB14CFF66F005F7284 /* TouchInputHolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchInputHolder.h; sourceTree = ""; }; + D5B50CAC14CFF66F005F7284 /* TouchscreenInput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TouchscreenInput.cpp; sourceTree = ""; }; + D5B50CAD14CFF66F005F7284 /* TouchscreenInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchscreenInput.h; sourceTree = ""; }; + D5B50CAE14CFF66F005F7284 /* TouchTurnInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchTurnInput.h; sourceTree = ""; }; + D5B50CAF14CFF66F005F7284 /* XperiaPlayInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XperiaPlayInput.h; sourceTree = ""; }; + D5B50CB014CFF66F005F7284 /* LocalPlayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalPlayer.cpp; sourceTree = ""; }; + D5B50CB114CFF66F005F7284 /* LocalPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalPlayer.h; sourceTree = ""; }; + D5B50CB314CFF66F005F7284 /* Chunk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chunk.cpp; sourceTree = ""; }; + D5B50CB414CFF66F005F7284 /* Chunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chunk.h; sourceTree = ""; }; + D5B50CB514CFF66F005F7284 /* ChunkRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChunkRenderer.h; sourceTree = ""; }; + D5B50CB614CFF66F005F7284 /* Color4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Color4.h; sourceTree = ""; }; + D5B50CB814CFF66F005F7284 /* AllowAllCuller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AllowAllCuller.h; sourceTree = ""; }; + D5B50CB914CFF66F005F7284 /* Culler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Culler.h; sourceTree = ""; }; + D5B50CBA14CFF66F005F7284 /* Frustum.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Frustum.cpp; sourceTree = ""; }; + D5B50CBB14CFF66F005F7284 /* Frustum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Frustum.h; sourceTree = ""; }; + D5B50CBC14CFF66F005F7284 /* FrustumCuller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrustumCuller.h; sourceTree = ""; }; + D5B50CBD14CFF66F005F7284 /* FrustumData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrustumData.h; sourceTree = ""; }; + D5B50CBF14CFF66F005F7284 /* _FrustumCuller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _FrustumCuller.h; sourceTree = ""; }; + D5B50CC014CFF66F005F7284 /* Frustum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Frustum.h; sourceTree = ""; }; + D5B50CC114CFF66F005F7284 /* FrustumCuller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrustumCuller.h; sourceTree = ""; }; + D5B50CC214CFF66F005F7284 /* FrustumData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrustumData.h; sourceTree = ""; }; + D5B50CC314CFF66F005F7284 /* DirtyChunkSorter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirtyChunkSorter.h; sourceTree = ""; }; + D5B50CC414CFF66F005F7284 /* DistanceChunkSorter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DistanceChunkSorter.h; sourceTree = ""; }; + D5B50CC614CFF66F005F7284 /* ChickenRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChickenRenderer.cpp; sourceTree = ""; }; + D5B50CC714CFF66F005F7284 /* ChickenRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChickenRenderer.h; sourceTree = ""; }; + D5B50CC814CFF66F005F7284 /* CreeperRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreeperRenderer.h; sourceTree = ""; }; + D5B50CC914CFF66F005F7284 /* EntityRenderDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EntityRenderDispatcher.cpp; sourceTree = ""; }; + D5B50CCA14CFF66F005F7284 /* EntityRenderDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityRenderDispatcher.h; sourceTree = ""; }; + D5B50CCB14CFF66F005F7284 /* EntityRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EntityRenderer.cpp; sourceTree = ""; }; + D5B50CCC14CFF66F005F7284 /* EntityRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityRenderer.h; sourceTree = ""; }; + D5B50CCD14CFF66F005F7284 /* HumanoidMobRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HumanoidMobRenderer.cpp; sourceTree = ""; }; + D5B50CCE14CFF66F005F7284 /* HumanoidMobRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HumanoidMobRenderer.h; sourceTree = ""; }; + D5B50CCF14CFF66F005F7284 /* ItemRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ItemRenderer.cpp; sourceTree = ""; }; + D5B50CD014CFF66F005F7284 /* ItemRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemRenderer.h; sourceTree = ""; }; + D5B50CD114CFF66F005F7284 /* ItemSpriteRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ItemSpriteRenderer.cpp; sourceTree = ""; }; + D5B50CD214CFF66F005F7284 /* ItemSpriteRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemSpriteRenderer.h; sourceTree = ""; }; + D5B50CD314CFF66F005F7284 /* MobRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MobRenderer.cpp; sourceTree = ""; }; + D5B50CD414CFF66F005F7284 /* MobRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobRenderer.h; sourceTree = ""; }; + D5B50CD514CFF66F005F7284 /* PigRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PigRenderer.h; sourceTree = ""; }; + D5B50CD614CFF66F005F7284 /* SheepRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SheepRenderer.h; sourceTree = ""; }; + D5B50CD714CFF66F005F7284 /* SpiderRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpiderRenderer.h; sourceTree = ""; }; + D5B50CD814CFF66F005F7284 /* TntRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TntRenderer.cpp; sourceTree = ""; }; + D5B50CD914CFF66F005F7284 /* TntRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TntRenderer.h; sourceTree = ""; }; + D5B50CDA14CFF66F005F7284 /* TripodCameraRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TripodCameraRenderer.cpp; sourceTree = ""; }; + D5B50CDB14CFF66F005F7284 /* TripodCameraRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TripodCameraRenderer.h; sourceTree = ""; }; + D5B50CDC14CFF66F005F7284 /* GameRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GameRenderer.cpp; sourceTree = ""; }; + D5B50CDD14CFF66F005F7284 /* GameRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameRenderer.h; sourceTree = ""; }; + D5B50CDE14CFF66F005F7284 /* gles.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gles.cpp; sourceTree = ""; }; + D5B50CDF14CFF66F005F7284 /* gles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gles.h; sourceTree = ""; }; + D5B50CE014CFF66F005F7284 /* ItemInHandRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ItemInHandRenderer.cpp; sourceTree = ""; }; + D5B50CE114CFF66F005F7284 /* ItemInHandRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemInHandRenderer.h; sourceTree = ""; }; + D5B50CE214CFF66F005F7284 /* LevelRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LevelRenderer.cpp; sourceTree = ""; }; + D5B50CE314CFF66F005F7284 /* LevelRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelRenderer.h; sourceTree = ""; }; + D5B50CE514CFF66F005F7284 /* DynamicTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DynamicTexture.cpp; sourceTree = ""; }; + D5B50CE614CFF66F005F7284 /* DynamicTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicTexture.h; sourceTree = ""; }; + D5B50CE714CFF66F005F7284 /* RenderChunk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderChunk.cpp; sourceTree = ""; }; + D5B50CE814CFF66F005F7284 /* RenderChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderChunk.h; sourceTree = ""; }; + D5B50CE914CFF66F005F7284 /* RenderChunkHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderChunkHandler.h; sourceTree = ""; }; + D5B50CEA14CFF66F005F7284 /* RenderList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderList.cpp; sourceTree = ""; }; + D5B50CEB14CFF66F005F7284 /* RenderList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderList.h; sourceTree = ""; }; + D5B50CEC14CFF66F005F7284 /* Tesselator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Tesselator.cpp; sourceTree = ""; }; + D5B50CED14CFF66F005F7284 /* Tesselator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tesselator.h; sourceTree = ""; }; + D5B50CEE14CFF66F005F7284 /* TextureData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextureData.h; sourceTree = ""; }; + D5B50CEF14CFF66F005F7284 /* Textures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Textures.cpp; sourceTree = ""; }; + D5B50CF014CFF66F005F7284 /* Textures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Textures.h; sourceTree = ""; }; + D5B50CF114CFF66F005F7284 /* TileRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TileRenderer.cpp; sourceTree = ""; }; + D5B50CF214CFF66F005F7284 /* TileRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileRenderer.h; sourceTree = ""; }; + D5B50CF314CFF66F005F7284 /* VertecDecl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VertecDecl.h; sourceTree = ""; }; + D5B50D1114CFF66F005F7284 /* Sound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Sound.cpp; sourceTree = ""; }; + D5B50D1214CFF66F005F7284 /* Sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sound.h; sourceTree = ""; }; + D5B50D1314CFF66F005F7284 /* SoundEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundEngine.h; sourceTree = ""; }; + D5B50D1414CFF66F005F7284 /* SoundRepository.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundRepository.h; sourceTree = ""; }; + D5B50D1514CFF66F005F7284 /* Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timer.h; sourceTree = ""; }; + D5B50D1614CFF66F005F7284 /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = ""; }; + D5B50D1714CFF66F005F7284 /* EglConfigPrinter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EglConfigPrinter.h; sourceTree = ""; }; + D5B50D1814CFF66F005F7284 /* LicenseCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LicenseCodes.h; sourceTree = ""; }; + D5B50D1A14CFF66F005F7284 /* I18n.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = I18n.h; sourceTree = ""; }; + D5B50D1B14CFF66F005F7284 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + D5B50D2214CFF66F005F7284 /* ByteArrayTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteArrayTag.h; sourceTree = ""; }; + D5B50D2314CFF66F005F7284 /* ByteTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteTag.h; sourceTree = ""; }; + D5B50D2414CFF66F005F7284 /* CompoundTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompoundTag.h; sourceTree = ""; }; + D5B50D2514CFF66F005F7284 /* DoubleTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoubleTag.h; sourceTree = ""; }; + D5B50D2614CFF66F005F7284 /* EndTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EndTag.h; sourceTree = ""; }; + D5B50D2714CFF66F005F7284 /* FloatTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FloatTag.h; sourceTree = ""; }; + D5B50D2814CFF66F005F7284 /* IntTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntTag.h; sourceTree = ""; }; + D5B50D2914CFF66F005F7284 /* ListTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListTag.h; sourceTree = ""; }; + D5B50D2A14CFF66F005F7284 /* LongTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LongTag.h; sourceTree = ""; }; + D5B50D2B14CFF66F005F7284 /* NbtIo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NbtIo.h; sourceTree = ""; }; + D5B50D2C14CFF66F005F7284 /* ShortTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShortTag.h; sourceTree = ""; }; + D5B50D2D14CFF66F005F7284 /* StringTag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringTag.h; sourceTree = ""; }; + D5B50D2E14CFF66F005F7284 /* Tag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Tag.cpp; sourceTree = ""; }; + D5B50D2F14CFF66F005F7284 /* Tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tag.h; sourceTree = ""; }; + D5B50D3114CFF66F005F7284 /* ClientSideNetworkHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClientSideNetworkHandler.cpp; sourceTree = ""; }; + D5B50D3214CFF66F005F7284 /* ClientSideNetworkHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientSideNetworkHandler.h; sourceTree = ""; }; + D5B50D3314CFF66F005F7284 /* NetEventCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetEventCallback.cpp; sourceTree = ""; }; + D5B50D3414CFF66F005F7284 /* NetEventCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetEventCallback.h; sourceTree = ""; }; + D5B50D3614CFF66F005F7284 /* AddItemEntityPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddItemEntityPacket.h; sourceTree = ""; }; + D5B50D3714CFF66F005F7284 /* AddMobPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddMobPacket.h; sourceTree = ""; }; + D5B50D3814CFF66F005F7284 /* AddPlayerPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddPlayerPacket.h; sourceTree = ""; }; + D5B50D3914CFF66F005F7284 /* AnimatePacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimatePacket.h; sourceTree = ""; }; + D5B50D3A14CFF66F005F7284 /* ChunkDataPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChunkDataPacket.h; sourceTree = ""; }; + D5B50D3B14CFF66F005F7284 /* InteractPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InteractPacket.h; sourceTree = ""; }; + D5B50D3C14CFF66F005F7284 /* LoginPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginPacket.h; sourceTree = ""; }; + D5B50D3D14CFF66F005F7284 /* LoginStatusPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginStatusPacket.h; sourceTree = ""; }; + D5B50D3E14CFF66F005F7284 /* MessagePacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessagePacket.h; sourceTree = ""; }; + D5B50D3F14CFF66F005F7284 /* MoveEntityPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoveEntityPacket.h; sourceTree = ""; }; + D5B50D4014CFF66F005F7284 /* MovePlayerPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MovePlayerPacket.h; sourceTree = ""; }; + D5B50D4114CFF66F005F7284 /* PacketInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketInclude.h; sourceTree = ""; }; + D5B50D4214CFF66F005F7284 /* PlaceBlockPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaceBlockPacket.h; sourceTree = ""; }; + D5B50D4314CFF66F005F7284 /* PlayerEquipmentPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayerEquipmentPacket.h; sourceTree = ""; }; + D5B50D4414CFF66F005F7284 /* RemoveBlockPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoveBlockPacket.h; sourceTree = ""; }; + D5B50D4514CFF66F005F7284 /* RemoveEntityPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoveEntityPacket.h; sourceTree = ""; }; + D5B50D4614CFF66F005F7284 /* RequestChunkPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RequestChunkPacket.h; sourceTree = ""; }; + D5B50D4714CFF66F005F7284 /* StartGamePacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StartGamePacket.h; sourceTree = ""; }; + D5B50D4814CFF66F005F7284 /* UpdateBlockPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpdateBlockPacket.h; sourceTree = ""; }; + D5B50D4914CFF66F005F7284 /* UseItemPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UseItemPacket.h; sourceTree = ""; }; + D5B50D4A14CFF66F005F7284 /* Packet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Packet.cpp; sourceTree = ""; }; + D5B50D4B14CFF66F005F7284 /* Packet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Packet.h; sourceTree = ""; }; + D5B50D4C14CFF66F005F7284 /* RakNetInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RakNetInstance.cpp; sourceTree = ""; }; + D5B50D4D14CFF66F005F7284 /* RakNetInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakNetInstance.h; sourceTree = ""; }; + D5B50D4E14CFF66F005F7284 /* ServerSideNetworkHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServerSideNetworkHandler.cpp; sourceTree = ""; }; + D5B50D4F14CFF66F005F7284 /* ServerSideNetworkHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerSideNetworkHandler.h; sourceTree = ""; }; + D5B50D5014CFF66F005F7284 /* NinecraftApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NinecraftApp.cpp; sourceTree = ""; }; + D5B50D5114CFF66F005F7284 /* NinecraftApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NinecraftApp.h; sourceTree = ""; }; + D5B50D5214CFF66F005F7284 /* Performance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Performance.cpp; sourceTree = ""; }; + D5B50D5314CFF66F005F7284 /* Performance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Performance.h; sourceTree = ""; }; + D5B50D5914CFF66F005F7284 /* SoundSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundSystem.h; sourceTree = ""; }; + D5B50D5A14CFF66F005F7284 /* SoundSystemAL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SoundSystemAL.cpp; sourceTree = ""; }; + D5B50D5B14CFF66F005F7284 /* SoundSystemAL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundSystemAL.h; sourceTree = ""; }; + D5B50D5E14CFF66F005F7284 /* CThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CThread.cpp; sourceTree = ""; }; + D5B50D5F14CFF66F005F7284 /* CThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CThread.h; sourceTree = ""; }; + D5B50D6014CFF66F005F7284 /* file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = ""; }; + D5B50D6214CFF66F005F7284 /* Controller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Controller.cpp; sourceTree = ""; }; + D5B50D6314CFF66F005F7284 /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = ""; }; + D5B50D6414CFF66F005F7284 /* Keyboard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Keyboard.cpp; sourceTree = ""; }; + D5B50D6514CFF66F005F7284 /* Keyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Keyboard.h; sourceTree = ""; }; + D5B50D6614CFF66F005F7284 /* Mouse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mouse.cpp; sourceTree = ""; }; + D5B50D6714CFF66F005F7284 /* Mouse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mouse.h; sourceTree = ""; }; + D5B50D6814CFF66F005F7284 /* Multitouch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Multitouch.cpp; sourceTree = ""; }; + D5B50D6914CFF66F005F7284 /* Multitouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Multitouch.h; sourceTree = ""; }; + D5B50D6A14CFF66F005F7284 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; + D5B50D6B14CFF66F005F7284 /* time.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = time.cpp; sourceTree = ""; }; + D5B50D6C14CFF66F005F7284 /* time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = time.h; sourceTree = ""; }; + D5B50E5614CFF66F005F7284 /* SharedConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedConstants.h; sourceTree = ""; }; + D5B50E5714CFF66F005F7284 /* terrain_4444.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_4444.h; sourceTree = ""; }; + D5B50E5814CFF66F005F7284 /* terrain_5551.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_5551.h; sourceTree = ""; }; + D5B50E5914CFF66F005F7284 /* terrain_565.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_565.h; sourceTree = ""; }; + D5B50E5A14CFF66F005F7284 /* terrain_565_2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_565_2.h; sourceTree = ""; }; + D5B50E5C14CFF66F005F7284 /* CollectionUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionUtils.h; sourceTree = ""; }; + D5B50E5D14CFF66F005F7284 /* DataIO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataIO.cpp; sourceTree = ""; }; + D5B50E5E14CFF66F005F7284 /* DataIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataIO.h; sourceTree = ""; }; + D5B50E5F14CFF66F005F7284 /* IntHashMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntHashMap.h; sourceTree = ""; }; + D5B50E6014CFF66F005F7284 /* Mth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mth.cpp; sourceTree = ""; }; + D5B50E6114CFF66F005F7284 /* Mth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mth.h; sourceTree = ""; }; + D5B50E6214CFF66F005F7284 /* PerfRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerfRenderer.cpp; sourceTree = ""; }; + D5B50E6314CFF66F005F7284 /* PerfRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerfRenderer.h; sourceTree = ""; }; + D5B50E6414CFF66F005F7284 /* PerfTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerfTimer.cpp; sourceTree = ""; }; + D5B50E6514CFF66F005F7284 /* PerfTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerfTimer.h; sourceTree = ""; }; + D5B50E6614CFF66F005F7284 /* RakDataIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RakDataIO.h; sourceTree = ""; }; + D5B50E6714CFF66F005F7284 /* Random.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Random.h; sourceTree = ""; }; + D5B50E6814CFF66F005F7284 /* SmoothFloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmoothFloat.h; sourceTree = ""; }; + D5B50E6914CFF66F005F7284 /* StringUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringUtils.cpp; sourceTree = ""; }; + D5B50E6A14CFF66F005F7284 /* StringUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringUtils.h; sourceTree = ""; }; + D5B50E6B14CFF66F005F7284 /* WeighedRandom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeighedRandom.h; sourceTree = ""; }; + D5B50E6D14CFF66F005F7284 /* Container.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Container.h; sourceTree = ""; }; + D5B50E6E14CFF66F005F7284 /* Direction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Direction.cpp; sourceTree = ""; }; + D5B50E6F14CFF66F005F7284 /* Direction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Direction.h; sourceTree = ""; }; + D5B50E7214CFF66F005F7284 /* Animal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Animal.cpp; sourceTree = ""; }; + D5B50E7314CFF66F005F7284 /* Animal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Animal.h; sourceTree = ""; }; + D5B50E7414CFF66F005F7284 /* AnimalInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimalInclude.h; sourceTree = ""; }; + D5B50E7514CFF66F005F7284 /* Chicken.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chicken.cpp; sourceTree = ""; }; + D5B50E7614CFF66F005F7284 /* Chicken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chicken.h; sourceTree = ""; }; + D5B50E7714CFF66F005F7284 /* Cow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Cow.cpp; sourceTree = ""; }; + D5B50E7814CFF66F005F7284 /* Cow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cow.h; sourceTree = ""; }; + D5B50E7914CFF66F005F7284 /* Pig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Pig.cpp; sourceTree = ""; }; + D5B50E7A14CFF66F005F7284 /* Pig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pig.h; sourceTree = ""; }; + D5B50E7B14CFF66F005F7284 /* Sheep.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Sheep.cpp; sourceTree = ""; }; + D5B50E7C14CFF66F005F7284 /* Sheep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sheep.h; sourceTree = ""; }; + D5B50E7D14CFF66F005F7284 /* WaterAnimal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WaterAnimal.cpp; sourceTree = ""; }; + D5B50E7E14CFF66F005F7284 /* WaterAnimal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaterAnimal.h; sourceTree = ""; }; + D5B50E7F14CFF66F005F7284 /* Creature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Creature.h; sourceTree = ""; }; + D5B50E8014CFF66F005F7284 /* Entity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Entity.cpp; sourceTree = ""; }; + D5B50E8114CFF66F005F7284 /* Entity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Entity.h; sourceTree = ""; }; + D5B50E8214CFF66F005F7284 /* EntityEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityEvent.h; sourceTree = ""; }; + D5B50E8314CFF66F005F7284 /* EntityPos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityPos.h; sourceTree = ""; }; + D5B50E8414CFF66F005F7284 /* EntityRendererId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityRendererId.h; sourceTree = ""; }; + D5B50E8514CFF66F005F7284 /* EntityTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityTypes.h; sourceTree = ""; }; + D5B50E8614CFF66F005F7284 /* FlyingMob.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FlyingMob.cpp; sourceTree = ""; }; + D5B50E8714CFF66F005F7284 /* FlyingMob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlyingMob.h; sourceTree = ""; }; + D5B50E8914CFF66F005F7284 /* FallingTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FallingTile.cpp; sourceTree = ""; }; + D5B50E8A14CFF66F005F7284 /* FallingTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FallingTile.h; sourceTree = ""; }; + D5B50E8B14CFF66F005F7284 /* ItemEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ItemEntity.cpp; sourceTree = ""; }; + D5B50E8C14CFF66F005F7284 /* ItemEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemEntity.h; sourceTree = ""; }; + D5B50E8D14CFF66F005F7284 /* PrimedTnt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PrimedTnt.cpp; sourceTree = ""; }; + D5B50E8E14CFF66F005F7284 /* PrimedTnt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrimedTnt.h; sourceTree = ""; }; + D5B50E8F14CFF66F005F7284 /* TripodCamera.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TripodCamera.cpp; sourceTree = ""; }; + D5B50E9014CFF66F005F7284 /* TripodCamera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TripodCamera.h; sourceTree = ""; }; + D5B50E9114CFF66F005F7284 /* Mob.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mob.cpp; sourceTree = ""; }; + D5B50E9214CFF66F005F7284 /* Mob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mob.h; sourceTree = ""; }; + D5B50E9314CFF66F005F7284 /* MobCategory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MobCategory.cpp; sourceTree = ""; }; + D5B50E9414CFF66F005F7284 /* MobCategory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobCategory.h; sourceTree = ""; }; + D5B50E9514CFF66F005F7284 /* MobFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobFactory.h; sourceTree = ""; }; + D5B50E9E14CFF66F005F7284 /* PathFinderMob.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PathFinderMob.cpp; sourceTree = ""; }; + D5B50E9F14CFF66F005F7284 /* PathfinderMob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PathfinderMob.h; sourceTree = ""; }; + D5B50EA114CFF66F005F7284 /* Abilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Abilities.h; sourceTree = ""; }; + D5B50EA214CFF66F005F7284 /* Inventory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Inventory.cpp; sourceTree = ""; }; + D5B50EA314CFF66F005F7284 /* Inventory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Inventory.h; sourceTree = ""; }; + D5B50EA514CFF66F005F7284 /* InventorySlotManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InventorySlotManager.h; sourceTree = ""; }; + D5B50EA614CFF66F005F7284 /* Player.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Player.cpp; sourceTree = ""; }; + D5B50EA714CFF66F005F7284 /* Player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Player.h; sourceTree = ""; }; + D5B50EA914CFF66F005F7284 /* Arrow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Arrow.cpp; sourceTree = ""; }; + D5B50EAA14CFF66F005F7284 /* Arrow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Arrow.h; sourceTree = ""; }; + D5B50EAB14CFF66F005F7284 /* SynchedEntityData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SynchedEntityData.h; sourceTree = ""; }; + D5B50EAC14CFF66F005F7284 /* Facing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Facing.h; sourceTree = ""; }; + D5B50EAE14CFF66F005F7284 /* CraftingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CraftingContainer.h; sourceTree = ""; }; + D5B50EB014CFF66F005F7284 /* BowItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BowItem.h; sourceTree = ""; }; + D5B50EB114CFF66F005F7284 /* CameraItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraItem.h; sourceTree = ""; }; + D5B50EB314CFF66F005F7284 /* Recipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Recipe.h; sourceTree = ""; }; + D5B50EB414CFF66F005F7284 /* Recipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Recipes.cpp; sourceTree = ""; }; + D5B50EB514CFF66F005F7284 /* Recipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Recipes.h; sourceTree = ""; }; + D5B50EB614CFF66F005F7284 /* ShapedRecipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapedRecipe.h; sourceTree = ""; }; + D5B50EB714CFF66F005F7284 /* ShapelessRecipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapelessRecipe.h; sourceTree = ""; }; + D5B50EB814CFF66F005F7284 /* ToolRecipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ToolRecipes.cpp; sourceTree = ""; }; + D5B50EB914CFF66F005F7284 /* ToolRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ToolRecipes.h; sourceTree = ""; }; + D5B50EBA14CFF66F005F7284 /* WeaponRecipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeaponRecipes.cpp; sourceTree = ""; }; + D5B50EBB14CFF66F005F7284 /* WeaponRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeaponRecipes.h; sourceTree = ""; }; + D5B50EBC14CFF66F005F7284 /* DiggerItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiggerItem.h; sourceTree = ""; }; + D5B50EBD14CFF66F005F7284 /* DoorItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoorItem.h; sourceTree = ""; }; + D5B50EBE14CFF66F005F7284 /* EggItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EggItem.h; sourceTree = ""; }; + D5B50EBF14CFF66F005F7284 /* HatchetItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HatchetItem.cpp; sourceTree = ""; }; + D5B50EC014CFF66F005F7284 /* HatchetItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HatchetItem.h; sourceTree = ""; }; + D5B50EC114CFF66F005F7284 /* Item.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Item.cpp; sourceTree = ""; }; + D5B50EC214CFF66F005F7284 /* Item.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Item.h; sourceTree = ""; }; + D5B50EC314CFF66F005F7284 /* ItemInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemInclude.h; sourceTree = ""; }; + D5B50EC414CFF66F005F7284 /* ItemInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ItemInstance.cpp; sourceTree = ""; }; + D5B50EC514CFF66F005F7284 /* ItemInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ItemInstance.h; sourceTree = ""; }; + D5B50EC614CFF66F005F7284 /* PickaxeItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PickaxeItem.cpp; sourceTree = ""; }; + D5B50EC714CFF66F005F7284 /* PickaxeItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PickaxeItem.h; sourceTree = ""; }; + D5B50EC814CFF66F005F7284 /* ShearsItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShearsItem.h; sourceTree = ""; }; + D5B50EC914CFF66F005F7284 /* ShovelItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShovelItem.cpp; sourceTree = ""; }; + D5B50ECA14CFF66F005F7284 /* ShovelItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShovelItem.h; sourceTree = ""; }; + D5B50ECB14CFF66F005F7284 /* SnowballItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SnowballItem.h; sourceTree = ""; }; + D5B50ECC14CFF66F005F7284 /* TileItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileItem.h; sourceTree = ""; }; + D5B50ECD14CFF66F005F7284 /* TilePlanterItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TilePlanterItem.h; sourceTree = ""; }; + D5B50ECE14CFF66F005F7284 /* TreeTileItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeTileItem.h; sourceTree = ""; }; + D5B50ECF14CFF66F005F7284 /* WeaponItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeaponItem.h; sourceTree = ""; }; + D5B50ED214CFF66F005F7284 /* Biome.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Biome.cpp; sourceTree = ""; }; + D5B50ED314CFF66F005F7284 /* Biome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Biome.h; sourceTree = ""; }; + D5B50ED414CFF66F005F7284 /* BiomeInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BiomeInclude.h; sourceTree = ""; }; + D5B50ED514CFF66F005F7284 /* BiomeSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BiomeSource.cpp; sourceTree = ""; }; + D5B50ED614CFF66F005F7284 /* BiomeSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BiomeSource.h; sourceTree = ""; }; + D5B50ED714CFF66F005F7284 /* FlatBiome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlatBiome.h; sourceTree = ""; }; + D5B50ED814CFF66F005F7284 /* ForestBiome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ForestBiome.h; sourceTree = ""; }; + D5B50ED914CFF66F005F7284 /* RainforestBiome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RainforestBiome.h; sourceTree = ""; }; + D5B50EDA14CFF66F005F7284 /* SwampBiome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwampBiome.h; sourceTree = ""; }; + D5B50EDB14CFF66F005F7284 /* TaigaBiome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaigaBiome.h; sourceTree = ""; }; + D5B50EDD14CFF66F005F7284 /* ChunkCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChunkCache.h; sourceTree = ""; }; + D5B50EDE14CFF66F005F7284 /* ChunkSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChunkSource.h; sourceTree = ""; }; + D5B50EDF14CFF66F005F7284 /* DataLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataLayer.h; sourceTree = ""; }; + D5B50EE014CFF66F005F7284 /* EmptyLevelChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmptyLevelChunk.h; sourceTree = ""; }; + D5B50EE114CFF66F005F7284 /* LevelChunk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LevelChunk.cpp; sourceTree = ""; }; + D5B50EE214CFF66F005F7284 /* LevelChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelChunk.h; sourceTree = ""; }; + D5B50EE414CFF66F005F7284 /* ChunkStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChunkStorage.h; sourceTree = ""; }; + D5B50EE514CFF66F005F7284 /* MemoryChunkStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryChunkStorage.h; sourceTree = ""; }; + D5B50EE614CFF66F005F7284 /* ChunkPos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChunkPos.h; sourceTree = ""; }; + D5B50EE814CFF66F005F7284 /* Dimension.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Dimension.cpp; sourceTree = ""; }; + D5B50EE914CFF66F005F7284 /* Dimension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dimension.h; sourceTree = ""; }; + D5B50EEC14CFF66F005F7284 /* Explosion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Explosion.cpp; sourceTree = ""; }; + D5B50EED14CFF66F005F7284 /* Explosion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Explosion.h; sourceTree = ""; }; + D5B50EEE14CFF66F005F7284 /* Level.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Level.cpp; sourceTree = ""; }; + D5B50EEF14CFF66F005F7284 /* Level.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Level.h; sourceTree = ""; }; + D5B50EF014CFF66F005F7284 /* LevelConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelConstants.h; sourceTree = ""; }; + D5B50EF214CFF66F005F7284 /* CanyonFeature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CanyonFeature.cpp; sourceTree = ""; }; + D5B50EF314CFF66F005F7284 /* CanyonFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanyonFeature.h; sourceTree = ""; }; + D5B50EF414CFF66F005F7284 /* DungeonFeature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DungeonFeature.cpp; sourceTree = ""; }; + D5B50EF514CFF66F005F7284 /* DungeonFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DungeonFeature.h; sourceTree = ""; }; + D5B50EF714CFF66F005F7284 /* BirchFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BirchFeature.h; sourceTree = ""; }; + D5B50EF814CFF66F005F7284 /* CactusFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CactusFeature.h; sourceTree = ""; }; + D5B50EF914CFF66F005F7284 /* ClayFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClayFeature.h; sourceTree = ""; }; + D5B50EFA14CFF66F005F7284 /* Feature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Feature.h; sourceTree = ""; }; + D5B50EFB14CFF66F005F7284 /* FeatureInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeatureInclude.h; sourceTree = ""; }; + D5B50EFC14CFF66F005F7284 /* FlowerFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlowerFeature.h; sourceTree = ""; }; + D5B50EFD14CFF66F005F7284 /* LakeFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LakeFeature.h; sourceTree = ""; }; + D5B50EFE14CFF66F005F7284 /* OreFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OreFeature.h; sourceTree = ""; }; + D5B50EFF14CFF66F005F7284 /* PineFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PineFeature.h; sourceTree = ""; }; + D5B50F0014CFF66F005F7284 /* ReedsFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReedsFeature.h; sourceTree = ""; }; + D5B50F0114CFF66F005F7284 /* SpringFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpringFeature.h; sourceTree = ""; }; + D5B50F0214CFF66F005F7284 /* SpruceFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpruceFeature.h; sourceTree = ""; }; + D5B50F0314CFF66F005F7284 /* TreeFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeFeature.h; sourceTree = ""; }; + D5B50F0414CFF66F005F7284 /* LargeCaveFeature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LargeCaveFeature.cpp; sourceTree = ""; }; + D5B50F0514CFF66F005F7284 /* LargeCaveFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LargeCaveFeature.h; sourceTree = ""; }; + D5B50F0614CFF66F005F7284 /* LargeFeature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LargeFeature.cpp; sourceTree = ""; }; + D5B50F0714CFF66F005F7284 /* LargeFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LargeFeature.h; sourceTree = ""; }; + D5B50F0814CFF66F005F7284 /* RandomLevelSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RandomLevelSource.cpp; sourceTree = ""; }; + D5B50F0914CFF66F005F7284 /* RandomLevelSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RandomLevelSource.h; sourceTree = ""; }; + D5B50F0B14CFF66F005F7284 /* ImprovedNoise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImprovedNoise.cpp; sourceTree = ""; }; + D5B50F0C14CFF66F005F7284 /* ImprovedNoise.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImprovedNoise.h; sourceTree = ""; }; + D5B50F0D14CFF66F005F7284 /* PerlinNoise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerlinNoise.cpp; sourceTree = ""; }; + D5B50F0E14CFF66F005F7284 /* PerlinNoise.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerlinNoise.h; sourceTree = ""; }; + D5B50F0F14CFF66F005F7284 /* Synth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Synth.cpp; sourceTree = ""; }; + D5B50F1014CFF66F005F7284 /* Synth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Synth.h; sourceTree = ""; }; + D5B50F1114CFF66F005F7284 /* TownFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TownFeature.h; sourceTree = ""; }; + D5B50F1214CFF66F005F7284 /* LevelListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelListener.h; sourceTree = ""; }; + D5B50F1314CFF66F005F7284 /* LevelSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelSettings.h; sourceTree = ""; }; + D5B50F1414CFF66F005F7284 /* LevelSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelSource.h; sourceTree = ""; }; + D5B50F1514CFF66F005F7284 /* LightLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LightLayer.cpp; sourceTree = ""; }; + D5B50F1614CFF66F005F7284 /* LightLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LightLayer.h; sourceTree = ""; }; + D5B50F1714CFF66F005F7284 /* LightUpdate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LightUpdate.cpp; sourceTree = ""; }; + D5B50F1814CFF66F005F7284 /* LightUpdate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LightUpdate.h; sourceTree = ""; }; + D5B50F1A14CFF66F005F7284 /* DecorationMaterial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecorationMaterial.h; sourceTree = ""; }; + D5B50F1B14CFF66F005F7284 /* GasMaterial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GasMaterial.h; sourceTree = ""; }; + D5B50F1C14CFF66F005F7284 /* LiquidMaterial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiquidMaterial.h; sourceTree = ""; }; + D5B50F1D14CFF66F005F7284 /* Material.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Material.cpp; sourceTree = ""; }; + D5B50F1E14CFF66F005F7284 /* Material.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Material.h; sourceTree = ""; }; + D5B50F1F14CFF66F005F7284 /* MobSpawner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MobSpawner.cpp; sourceTree = ""; }; + D5B50F2014CFF66F005F7284 /* MobSpawner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobSpawner.h; sourceTree = ""; }; + D5B50F2214CFF66F005F7284 /* BinaryHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinaryHeap.h; sourceTree = ""; }; + D5B50F2314CFF66F005F7284 /* Node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Node.h; sourceTree = ""; }; + D5B50F2414CFF66F005F7284 /* Path.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Path.h; sourceTree = ""; }; + D5B50F2514CFF66F005F7284 /* PathFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PathFinder.h; sourceTree = ""; }; + D5B50F2614CFF66F005F7284 /* Region.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Region.cpp; sourceTree = ""; }; + D5B50F2714CFF66F005F7284 /* Region.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Region.h; sourceTree = ""; }; + D5B50F2914CFF66F005F7284 /* ExternalFileLevelStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExternalFileLevelStorage.cpp; sourceTree = ""; }; + D5B50F2A14CFF66F005F7284 /* ExternalFileLevelStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExternalFileLevelStorage.h; sourceTree = ""; }; + D5B50F2B14CFF66F005F7284 /* ExternalFileLevelStorageSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExternalFileLevelStorageSource.cpp; sourceTree = ""; }; + D5B50F2C14CFF66F005F7284 /* ExternalFileLevelStorageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExternalFileLevelStorageSource.h; sourceTree = ""; }; + D5B50F2D14CFF66F005F7284 /* FolderMethods.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FolderMethods.h; sourceTree = ""; }; + D5B50F2E14CFF66F005F7284 /* LevelData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelData.h; sourceTree = ""; }; + D5B50F2F14CFF66F005F7284 /* LevelStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelStorage.h; sourceTree = ""; }; + D5B50F3014CFF66F005F7284 /* LevelStorageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelStorageSource.h; sourceTree = ""; }; + D5B50F3114CFF66F005F7284 /* MemoryLevelStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryLevelStorage.h; sourceTree = ""; }; + D5B50F3214CFF66F005F7284 /* MemoryLevelStorageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryLevelStorageSource.h; sourceTree = ""; }; + D5B50F3314CFF66F005F7284 /* PlayerData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayerData.h; sourceTree = ""; }; + D5B50F3414CFF66F005F7284 /* RegionFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RegionFile.cpp; sourceTree = ""; }; + D5B50F3514CFF66F005F7284 /* RegionFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegionFile.h; sourceTree = ""; }; + D5B50F3614CFF66F005F7284 /* TickNextTickData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TickNextTickData.cpp; sourceTree = ""; }; + D5B50F3714CFF66F005F7284 /* TickNextTickData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TickNextTickData.h; sourceTree = ""; }; + D5B50F3914CFF66F005F7284 /* BookshelfTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BookshelfTile.h; sourceTree = ""; }; + D5B50F3A14CFF66F005F7284 /* Bush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bush.h; sourceTree = ""; }; + D5B50F3B14CFF66F005F7284 /* CactusTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CactusTile.h; sourceTree = ""; }; + D5B50F3C14CFF66F005F7284 /* ClayTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClayTile.h; sourceTree = ""; }; + D5B50F3D14CFF66F005F7284 /* ClothTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClothTile.h; sourceTree = ""; }; + D5B50F3E14CFF66F005F7284 /* DirtTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirtTile.h; sourceTree = ""; }; + D5B50F3F14CFF66F005F7284 /* DoorTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DoorTile.cpp; sourceTree = ""; }; + D5B50F4014CFF66F005F7284 /* DoorTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoorTile.h; sourceTree = ""; }; + D5B50F4214CFF66F005F7284 /* TileEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileEntity.h; sourceTree = ""; }; + D5B50F4314CFF66F005F7284 /* FarmTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FarmTile.h; sourceTree = ""; }; + D5B50F4414CFF66F005F7284 /* FenceGateTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FenceGateTile.h; sourceTree = ""; }; + D5B50F4514CFF66F005F7284 /* FenceTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FenceTile.h; sourceTree = ""; }; + D5B50F4614CFF66F005F7284 /* FireTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTile.h; sourceTree = ""; }; + D5B50F4714CFF66F005F7284 /* GlassTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlassTile.h; sourceTree = ""; }; + D5B50F4814CFF66F005F7284 /* GrassTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrassTile.h; sourceTree = ""; }; + D5B50F4914CFF66F005F7284 /* GravelTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GravelTile.h; sourceTree = ""; }; + D5B50F4A14CFF66F005F7284 /* HalfTransparentTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HalfTransparentTile.h; sourceTree = ""; }; + D5B50F4B14CFF66F005F7284 /* IceTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IceTile.h; sourceTree = ""; }; + D5B50F4C14CFF66F005F7284 /* InvisibleTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InvisibleTile.h; sourceTree = ""; }; + D5B50F4D14CFF66F005F7284 /* LadderTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LadderTile.h; sourceTree = ""; }; + D5B50F4E14CFF66F005F7284 /* LeafTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LeafTile.h; sourceTree = ""; }; + D5B50F4F14CFF66F005F7284 /* LevelEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelEvent.h; sourceTree = ""; }; + D5B50F5014CFF66F005F7284 /* LiquidTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiquidTile.h; sourceTree = ""; }; + D5B50F5114CFF66F005F7284 /* LiquidTileDynamic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiquidTileDynamic.h; sourceTree = ""; }; + D5B50F5214CFF66F005F7284 /* LiquidTileStatic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiquidTileStatic.h; sourceTree = ""; }; + D5B50F5314CFF66F005F7284 /* MetalTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetalTile.h; sourceTree = ""; }; + D5B50F5414CFF66F005F7284 /* ObsidianTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObsidianTile.h; sourceTree = ""; }; + D5B50F5514CFF66F005F7284 /* OreTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OreTile.h; sourceTree = ""; }; + D5B50F5614CFF66F005F7284 /* RedStoneOreTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RedStoneOreTile.h; sourceTree = ""; }; + D5B50F5714CFF66F005F7284 /* ReedTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReedTile.h; sourceTree = ""; }; + D5B50F5814CFF66F005F7284 /* SandStoneTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SandStoneTile.h; sourceTree = ""; }; + D5B50F5B14CFF66F005F7284 /* SnowTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SnowTile.h; sourceTree = ""; }; + D5B50F5C14CFF66F005F7284 /* StairTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StairTile.h; sourceTree = ""; }; + D5B50F5D14CFF66F005F7284 /* StoneSlabTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StoneSlabTile.cpp; sourceTree = ""; }; + D5B50F5E14CFF66F005F7284 /* StoneSlabTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoneSlabTile.h; sourceTree = ""; }; + D5B50F5F14CFF66F005F7284 /* StoneTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoneTile.h; sourceTree = ""; }; + D5B50F6014CFF66F005F7284 /* Tile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Tile.cpp; sourceTree = ""; }; + D5B50F6114CFF66F005F7284 /* Tile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tile.h; sourceTree = ""; }; + D5B50F6214CFF66F005F7284 /* TileInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileInclude.h; sourceTree = ""; }; + D5B50F6314CFF66F005F7284 /* TntTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TntTile.h; sourceTree = ""; }; + D5B50F6414CFF66F005F7284 /* TopSnowTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopSnowTile.h; sourceTree = ""; }; + D5B50F6514CFF66F005F7284 /* TorchTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TorchTile.h; sourceTree = ""; }; + D5B50F6614CFF66F005F7284 /* TransparentTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransparentTile.h; sourceTree = ""; }; + D5B50F6714CFF66F005F7284 /* TreeTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeTile.h; sourceTree = ""; }; + D5B50F6814CFF66F005F7284 /* TilePos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TilePos.h; sourceTree = ""; }; + D5B50F6A14CFF66F005F7284 /* AABB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AABB.h; sourceTree = ""; }; + D5B50F6B14CFF66F005F7284 /* HitResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HitResult.cpp; sourceTree = ""; }; + D5B50F6C14CFF66F005F7284 /* HitResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HitResult.h; sourceTree = ""; }; + D5B50F6D14CFF66F005F7284 /* Vec3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Vec3.h; sourceTree = ""; }; + D5B50F6E14CFF66F005F7284 /* Pos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pos.h; sourceTree = ""; }; + D5B5118A14D03342005F7284 /* SynchedEntityData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SynchedEntityData.cpp; sourceTree = ""; }; + D5B5118D14DEA27E005F7284 /* DeathScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeathScreen.cpp; sourceTree = ""; }; + D5B5119014DEA2B7005F7284 /* LevelData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LevelData.cpp; sourceTree = ""; }; + D5B5119314DEA2EF005F7284 /* DyePowderItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DyePowderItem.cpp; sourceTree = ""; }; + D5B5119614DEA304005F7284 /* DyePowderItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DyePowderItem.h; sourceTree = ""; }; + D5B86280153810BD00F3238A /* I18n.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = I18n.cpp; sourceTree = ""; }; + D5B862841538175500F3238A /* ScrollingPane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollingPane.cpp; sourceTree = ""; }; + D5B8628B1538178F00F3238A /* ScrollingPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollingPane.h; sourceTree = ""; }; + D5B8628C1538187400F3238A /* ClothDyeRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClothDyeRecipes.h; sourceTree = ""; }; + D5B8628D1538187400F3238A /* FoodRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoodRecipes.h; sourceTree = ""; }; + D5B8628E1538187400F3238A /* Recipe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Recipe.cpp; sourceTree = ""; }; + D5B8628F1538187400F3238A /* RecipeCategory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecipeCategory.h; sourceTree = ""; }; + D5B862901538187400F3238A /* StructureRecipes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StructureRecipes.cpp; sourceTree = ""; }; + D5B862911538187400F3238A /* StructureRecipes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StructureRecipes.h; sourceTree = ""; }; + D5BFCF1A14513FF400A443B0 /* CreateNewWorld_ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CreateNewWorld_ipad.xib; path = minecraftpe/dialogs/CreateNewWorld_ipad.xib; sourceTree = ""; }; + D5CF9C42144C225000E4244F /* minecraftpe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = minecraftpe.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D5CF9C46144C225000E4244F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D5CF9C48144C225000E4244F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D5CF9C4A144C225000E4244F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + D5CF9C4C144C225000E4244F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + D5CF9C4E144C225000E4244F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + D5CF9C52144C225000E4244F /* minecraftpe-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "minecraftpe-Info.plist"; sourceTree = ""; }; + D5CF9C54144C225000E4244F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + D5CF9C56144C225000E4244F /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = main.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5CF9C58144C225000E4244F /* minecraftpe-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "minecraftpe-Prefix.pch"; sourceTree = ""; }; + D5CF9C59144C225000E4244F /* minecraftpeAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = minecraftpeAppDelegate.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5CF9C5A144C225000E4244F /* minecraftpeAppDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = minecraftpeAppDelegate.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5CF9C5D144C225000E4244F /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; + D5CF9C63144C225000E4244F /* EAGLView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EAGLView.h; sourceTree = ""; }; + D5CF9C64144C225000E4244F /* EAGLView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EAGLView.m; sourceTree = ""; }; + D5CF9C66144C225000E4244F /* minecraftpeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = minecraftpeViewController.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5CF9C6A144C225000E4244F /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/minecraftpeViewController.xib; sourceTree = ""; }; + D5CFA01C144C453900E4244F /* minecraftpeViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = minecraftpeViewController.mm; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + D5D381F015A1A1CF00B6C50E /* FillingContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FillingContainer.cpp; sourceTree = ""; }; + D5D381F115A1A1CF00B6C50E /* FillingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FillingContainer.h; sourceTree = ""; }; + D5D381F515A1A21800B6C50E /* EntityTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EntityTile.cpp; sourceTree = ""; }; + D5D381F615A1A21800B6C50E /* EntityTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityTile.h; sourceTree = ""; }; + D5D381FA15A1A22E00B6C50E /* ChestTileEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChestTileEntity.h; sourceTree = ""; }; + D5D381FB15A1A22E00B6C50E /* TileEntityRendererId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileEntityRendererId.h; sourceTree = ""; }; + D5D381FF15A1A26000B6C50E /* ChestRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChestRenderer.cpp; sourceTree = ""; }; + D5D3820015A1A26000B6C50E /* ChestRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChestRenderer.h; sourceTree = ""; }; + D5D3820115A1A26000B6C50E /* TileEntityRenderDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TileEntityRenderDispatcher.cpp; sourceTree = ""; }; + D5D3820215A1A26000B6C50E /* TileEntityRenderDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileEntityRenderDispatcher.h; sourceTree = ""; }; + D5D3820315A1A26000B6C50E /* TileEntityRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TileEntityRenderer.cpp; sourceTree = ""; }; + D5D3820415A1A26000B6C50E /* TileEntityRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileEntityRenderer.h; sourceTree = ""; }; + D5D3820B15A1A2A000B6C50E /* EntityTileRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EntityTileRenderer.cpp; sourceTree = ""; }; + D5D3820C15A1A2A000B6C50E /* EntityTileRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntityTileRenderer.h; sourceTree = ""; }; + D5D3820F15A1A2C200B6C50E /* ChestTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChestTile.cpp; sourceTree = ""; }; + D5D3821015A1A2C200B6C50E /* ChestTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChestTile.h; sourceTree = ""; }; + D5D3821315A1A5D100B6C50E /* ChestTileEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChestTileEntity.cpp; sourceTree = ""; }; + D5D43CC0146AF4B4002ED842 /* RenameMPWorld_ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RenameMPWorld_ipad.xib; path = minecraftpe/dialogs/RenameMPWorld_ipad.xib; sourceTree = ""; }; + D5D43CC1146AF4B4002ED842 /* RenameMPWorld_iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RenameMPWorld_iphone.xib; path = minecraftpe/dialogs/RenameMPWorld_iphone.xib; sourceTree = ""; }; + D5D43CC2146AF4B4002ED842 /* RenameMPWorldViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenameMPWorldViewController.h; path = minecraftpe/dialogs/RenameMPWorldViewController.h; sourceTree = ""; }; + D5D43CC3146AF4B4002ED842 /* RenameMPWorldViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RenameMPWorldViewController.mm; path = minecraftpe/dialogs/RenameMPWorldViewController.mm; sourceTree = ""; }; + D5D43CCA146AFD9D002ED842 /* save_0_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = save_0_3.png; sourceTree = ""; }; + D5D43CCB146AFD9D002ED842 /* save_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = save_0.png; sourceTree = ""; }; + D5D43CCC146AFD9E002ED842 /* save_1_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = save_1_3.png; sourceTree = ""; }; + D5D43CCD146AFD9E002ED842 /* save_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = save_1.png; sourceTree = ""; }; + D5D8C48316392FF000FD35F0 /* LightGemTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LightGemTile.cpp; sourceTree = ""; }; + D5D8C48416392FF000FD35F0 /* LightGemTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LightGemTile.h; sourceTree = ""; }; + D5D8C48516392FF000FD35F0 /* Mushroom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mushroom.cpp; sourceTree = ""; }; + D5D8C48616392FF000FD35F0 /* Mushroom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mushroom.h; sourceTree = ""; }; + D5D8C48716392FF000FD35F0 /* SignTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SignTile.h; sourceTree = ""; }; + D5D8C48816392FF000FD35F0 /* StemTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StemTile.cpp; sourceTree = ""; }; + D5D8C48916392FF000FD35F0 /* StemTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StemTile.h; sourceTree = ""; }; + D5D8C4911639301700FD35F0 /* NetherReactorTileEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetherReactorTileEntity.cpp; sourceTree = ""; }; + D5D8C4921639301700FD35F0 /* NetherReactorTileEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetherReactorTileEntity.h; sourceTree = ""; }; + D5D8C4931639301700FD35F0 /* SignTileEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SignTileEntity.cpp; sourceTree = ""; }; + D5D8C4941639301700FD35F0 /* SignTileEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SignTileEntity.h; sourceTree = ""; }; + D5D8C4991639305100FD35F0 /* PigZombie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PigZombie.cpp; sourceTree = ""; }; + D5D8C49A1639305100FD35F0 /* PigZombie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PigZombie.h; sourceTree = ""; }; + D5D8C49D163930D600FD35F0 /* MelonTile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MelonTile.cpp; sourceTree = ""; }; + D5D8C49E163930D600FD35F0 /* MelonTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MelonTile.h; sourceTree = ""; }; + D5D8C4A1163930E600FD35F0 /* NetherReactor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetherReactor.cpp; sourceTree = ""; }; + D5D8C4A2163930E600FD35F0 /* NetherReactor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetherReactor.h; sourceTree = ""; }; + D5D8C4A5163931F000FD35F0 /* InBedScreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InBedScreen.cpp; sourceTree = ""; }; + D5D8C4A6163931F000FD35F0 /* InBedScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InBedScreen.h; sourceTree = ""; }; + D5D8C4A9163932B900FD35F0 /* SignRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SignRenderer.cpp; sourceTree = ""; }; + D5D8C4AA163932B900FD35F0 /* SignRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SignRenderer.h; sourceTree = ""; }; + D5D8C4AD163932CF00FD35F0 /* PaintingRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PaintingRenderer.cpp; sourceTree = ""; }; + D5D8C4AE163932CF00FD35F0 /* PaintingRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaintingRenderer.h; sourceTree = ""; }; + D5D8C4B11639335000FD35F0 /* HangingEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HangingEntity.cpp; sourceTree = ""; }; + D5D8C4B21639335000FD35F0 /* HangingEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HangingEntity.h; sourceTree = ""; }; + D5D8C4B31639335000FD35F0 /* Painting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Painting.cpp; sourceTree = ""; }; + D5D8C4B41639335000FD35F0 /* Painting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Painting.h; sourceTree = ""; }; + D5D8C4C11639341100FD35F0 /* Motive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Motive.cpp; sourceTree = ""; }; + D5D8C4C21639341100FD35F0 /* Motive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Motive.h; sourceTree = ""; }; + D5D8C4C5163934BB00FD35F0 /* HangingEntityItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HangingEntityItem.cpp; sourceTree = ""; }; + D5D8C4C6163934BB00FD35F0 /* HangingEntityItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HangingEntityItem.h; sourceTree = ""; }; + D5D8C4C91639362F00FD35F0 /* NetherReactorPattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetherReactorPattern.cpp; sourceTree = ""; }; + D5D8C4CA1639362F00FD35F0 /* NetherReactorPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetherReactorPattern.h; sourceTree = ""; }; + D5D961AC14E6AF0C001D1B9D /* Icon_lite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon_lite.png; sourceTree = ""; }; + D5D961AD14E6AF0C001D1B9D /* Icon-72_lite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72_lite.png"; sourceTree = ""; }; + D5D961AE14E6AF0C001D1B9D /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72.png"; sourceTree = ""; }; + D5D961AF14E6AF0C001D1B9D /* Icon-Small_lite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small_lite.png"; sourceTree = ""; }; + D5D961B014E6AF0C001D1B9D /* Icon-Small-50_lite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small-50_lite.png"; sourceTree = ""; }; + D5D961B114E6AF0C001D1B9D /* Icon-Small-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small-50.png"; sourceTree = ""; }; + D5D961B214E6AF0C001D1B9D /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small.png"; sourceTree = ""; }; + D5D961B314E6AF0C001D1B9D /* Icon-Small@2x_lite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small@2x_lite.png"; sourceTree = ""; }; + D5D961B414E6AF0C001D1B9D /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small@2x.png"; sourceTree = ""; }; + D5D961B514E6AF0C001D1B9D /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; }; + D5D961B614E6AF0C001D1B9D /* Icon@2x_lite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x_lite.png"; sourceTree = ""; }; + D5D961B714E6AF0C001D1B9D /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = ""; }; + D5E1BA981451C881007DCC4F /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + D5E1BA9A1451C8A0007DCC4F /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + D5F0772214599DC700EC30FB /* terrain.pvr4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = terrain.pvr4; sourceTree = ""; }; + D5F07736145DE04200EC30FB /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + D5F07738145EB1F300EC30FB /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + D5F07744145EF79B00EC30FB /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape~ipad.png"; sourceTree = ""; }; + D5F3B7A314548E7900D25470 /* IASKAppSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKAppSettingsViewController.h; sourceTree = ""; }; + D5F3B7A414548E7900D25470 /* IASKAppSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKAppSettingsViewController.m; sourceTree = ""; }; + D5F3B7A514548E7900D25470 /* IASKAppSettingsWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKAppSettingsWebViewController.h; sourceTree = ""; }; + D5F3B7A614548E7900D25470 /* IASKAppSettingsWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKAppSettingsWebViewController.m; sourceTree = ""; }; + D5F3B7A714548E7900D25470 /* IASKSpecifierValuesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSpecifierValuesViewController.h; sourceTree = ""; }; + D5F3B7A814548E7900D25470 /* IASKSpecifierValuesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSpecifierValuesViewController.m; sourceTree = ""; }; + D5F3B7AA14548E7900D25470 /* IASKSettingsReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsReader.h; sourceTree = ""; }; + D5F3B7AB14548E7900D25470 /* IASKSettingsReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsReader.m; sourceTree = ""; }; + D5F3B7AC14548E7900D25470 /* IASKSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStore.h; sourceTree = ""; }; + D5F3B7AD14548E7900D25470 /* IASKSettingsStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStore.m; sourceTree = ""; }; + D5F3B7AE14548E7900D25470 /* IASKSettingsStoreFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStoreFile.h; sourceTree = ""; }; + D5F3B7AF14548E7900D25470 /* IASKSettingsStoreFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStoreFile.m; sourceTree = ""; }; + D5F3B7B014548E7900D25470 /* IASKSettingsStoreUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStoreUserDefaults.h; sourceTree = ""; }; + D5F3B7B114548E7900D25470 /* IASKSettingsStoreUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStoreUserDefaults.m; sourceTree = ""; }; + D5F3B7B214548E7900D25470 /* IASKSpecifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSpecifier.h; sourceTree = ""; }; + D5F3B7B314548E7900D25470 /* IASKSpecifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSpecifier.m; sourceTree = ""; }; + D5F3B7B514548E7900D25470 /* IASKPSSliderSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSSliderSpecifierViewCell.h; sourceTree = ""; }; + D5F3B7B614548E7900D25470 /* IASKPSSliderSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSSliderSpecifierViewCell.m; sourceTree = ""; }; + D5F3B7B714548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSTextFieldSpecifierViewCell.h; sourceTree = ""; }; + D5F3B7B814548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSTextFieldSpecifierViewCell.m; sourceTree = ""; }; + D5F3B7B914548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSTitleValueSpecifierViewCell.h; sourceTree = ""; }; + D5F3B7BA14548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSTitleValueSpecifierViewCell.m; sourceTree = ""; }; + D5F3B7BB14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSToggleSwitchSpecifierViewCell.h; sourceTree = ""; }; + D5F3B7BC14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSToggleSwitchSpecifierViewCell.m; sourceTree = ""; }; + D5F3B7BD14548E7900D25470 /* IASKSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSlider.h; sourceTree = ""; }; + D5F3B7BE14548E7900D25470 /* IASKSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSlider.m; sourceTree = ""; }; + D5F3B7BF14548E7900D25470 /* IASKSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSwitch.h; sourceTree = ""; }; + D5F3B7C014548E7900D25470 /* IASKSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSwitch.m; sourceTree = ""; }; + D5F3B7C114548E7900D25470 /* IASKTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKTextField.h; sourceTree = ""; }; + D5F3B7C214548E7900D25470 /* IASKTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKTextField.m; sourceTree = ""; }; + D5F3B7C414548E7900D25470 /* IASKAppSettingsView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKAppSettingsView.xib; sourceTree = ""; }; + D5F3B7C514548E7900D25470 /* IASKAppSettingsWebView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKAppSettingsWebView.xib; sourceTree = ""; }; + D5F3B7C614548E7900D25470 /* IASKPSSliderSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSSliderSpecifierViewCell.xib; sourceTree = ""; }; + D5F3B7C714548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSTextFieldSpecifierViewCell.xib; sourceTree = ""; }; + D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSToggleSwitchSpecifierViewCell.xib; sourceTree = ""; }; + D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKSpecifierValuesView.xib; sourceTree = ""; }; + D5F3B7E41454930400D25470 /* InAppSettings.bundle */ = {isa = PBXFileReference; explicitFileType = "wrapper.installer-pkg"; path = InAppSettings.bundle; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D58BB552146A0B920002C9F5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D58BB553146A0B920002C9F5 /* AVFoundation.framework in Frameworks */, + D58BB554146A0B920002C9F5 /* OpenAL.framework in Frameworks */, + D58BB555146A0B920002C9F5 /* AudioToolbox.framework in Frameworks */, + D58BB556146A0B920002C9F5 /* UIKit.framework in Frameworks */, + D58BB557146A0B920002C9F5 /* Foundation.framework in Frameworks */, + D58BB558146A0B920002C9F5 /* CoreGraphics.framework in Frameworks */, + D58BB559146A0B920002C9F5 /* QuartzCore.framework in Frameworks */, + D58BB55A146A0B920002C9F5 /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D5CF9C3F144C225000E4244F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D5F07739145EB1F500EC30FB /* AVFoundation.framework in Frameworks */, + D5F07737145DE04300EC30FB /* OpenAL.framework in Frameworks */, + D572D3E0144CB23200E67862 /* AudioToolbox.framework in Frameworks */, + D5CF9C47144C225000E4244F /* UIKit.framework in Frameworks */, + D5CF9C49144C225000E4244F /* Foundation.framework in Frameworks */, + D5CF9C4B144C225000E4244F /* CoreGraphics.framework in Frameworks */, + D5CF9C4D144C225000E4244F /* QuartzCore.framework in Frameworks */, + D5CF9C4F144C225000E4244F /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 04004534169EE73C003EB6FA /* environment */ = { + isa = PBXGroup; + children = ( + 04004532169EE72E003EB6FA /* clouds.png */, + ); + name = environment; + sourceTree = ""; + }; + 0419D9A0167F207B0080CB96 /* command */ = { + isa = PBXGroup; + children = ( + 0419D99D167F206A0080CB96 /* CommandServer.cpp */, + 0419D99E167F206A0080CB96 /* CommandServer.h */, + ); + name = command; + sourceTree = ""; + }; + 0419D9B4167F21C60080CB96 /* crafting */ = { + isa = PBXGroup; + children = ( + 0413970916A82E6B008A9F1A /* CraftingFilters.cpp */, + 0413970A16A82E6B008A9F1A /* CraftingFilters.h */, + 0413970B16A82E6B008A9F1A /* StonecutterScreen.cpp */, + 0413970C16A82E6B008A9F1A /* StonecutterScreen.h */, + 0419D9AE167F21BC0080CB96 /* PaneCraftingScreen.cpp */, + 0419D9AF167F21BC0080CB96 /* PaneCraftingScreen.h */, + 0419D9B0167F21BC0080CB96 /* WorkbenchScreen.cpp */, + 0419D9B1167F21BC0080CB96 /* WorkbenchScreen.h */, + ); + name = crafting; + sourceTree = ""; + }; + 0425EB9516A94D14000C7483 /* armor */ = { + isa = PBXGroup; + children = ( + 0425EB9616A94D14000C7483 /* chain_1.png */, + 0425EB9716A94D14000C7483 /* chain_2.png */, + 0425EB9816A94D14000C7483 /* cloth_1.png */, + 0425EB9916A94D14000C7483 /* cloth_2.png */, + 0425EB9A16A94D14000C7483 /* diamond_1.png */, + 0425EB9B16A94D14000C7483 /* diamond_2.png */, + 0425EB9C16A94D14000C7483 /* gold_1.png */, + 0425EB9D16A94D14000C7483 /* gold_2.png */, + 0425EB9E16A94D14000C7483 /* iron_1.png */, + 0425EB9F16A94D14000C7483 /* iron_2.png */, + ); + path = armor; + sourceTree = ""; + }; + D5251CB51538192700FC82C8 /* raknet */ = { + isa = PBXGroup; + children = ( + D5251CB61538192700FC82C8 /* _FindFirst.cpp */, + D5251CB71538192700FC82C8 /* _FindFirst.h */, + D5251CB81538192700FC82C8 /* AutopatcherPatchContext.h */, + D5251CB91538192700FC82C8 /* AutopatcherRepositoryInterface.h */, + D5251CBA1538192700FC82C8 /* BitStream.cpp */, + D5251CBB1538192700FC82C8 /* BitStream.h */, + D5251CBC1538192700FC82C8 /* CCRakNetSlidingWindow.cpp */, + D5251CBD1538192700FC82C8 /* CCRakNetSlidingWindow.h */, + D5251CBE1538192700FC82C8 /* CCRakNetUDT.cpp */, + D5251CBF1538192700FC82C8 /* CCRakNetUDT.h */, + D5251CC01538192700FC82C8 /* CheckSum.cpp */, + D5251CC11538192700FC82C8 /* CheckSum.h */, + D5251CC21538192700FC82C8 /* CloudClient.cpp */, + D5251CC31538192700FC82C8 /* CloudClient.h */, + D5251CC41538192700FC82C8 /* CloudCommon.cpp */, + D5251CC51538192700FC82C8 /* CloudCommon.h */, + D5251CC61538192700FC82C8 /* CloudServer.cpp */, + D5251CC71538192700FC82C8 /* CloudServer.h */, + D5251CC81538192700FC82C8 /* CMakeLists.txt */, + D5251CC91538192700FC82C8 /* CommandParserInterface.cpp */, + D5251CCA1538192700FC82C8 /* CommandParserInterface.h */, + D5251CCB1538192700FC82C8 /* ConnectionGraph2.cpp */, + D5251CCC1538192700FC82C8 /* ConnectionGraph2.h */, + D5251CCD1538192700FC82C8 /* ConsoleServer.cpp */, + D5251CCE1538192700FC82C8 /* ConsoleServer.h */, + D5251CCF1538192700FC82C8 /* DataCompressor.cpp */, + D5251CD01538192700FC82C8 /* DataCompressor.h */, + D5251CD11538192700FC82C8 /* DirectoryDeltaTransfer.cpp */, + D5251CD21538192700FC82C8 /* DirectoryDeltaTransfer.h */, + D5251CD31538192700FC82C8 /* DS_BinarySearchTree.h */, + D5251CD41538192700FC82C8 /* DS_BPlusTree.h */, + D5251CD51538192700FC82C8 /* DS_BytePool.cpp */, + D5251CD61538192700FC82C8 /* DS_BytePool.h */, + D5251CD71538192700FC82C8 /* DS_ByteQueue.cpp */, + D5251CD81538192700FC82C8 /* DS_ByteQueue.h */, + D5251CD91538192700FC82C8 /* DS_Hash.h */, + D5251CDA1538192700FC82C8 /* DS_Heap.h */, + D5251CDB1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp */, + D5251CDC1538192700FC82C8 /* DS_HuffmanEncodingTree.h */, + D5251CDD1538192700FC82C8 /* DS_HuffmanEncodingTreeFactory.h */, + D5251CDE1538192700FC82C8 /* DS_HuffmanEncodingTreeNode.h */, + D5251CDF1538192700FC82C8 /* DS_LinkedList.h */, + D5251CE01538192700FC82C8 /* DS_List.h */, + D5251CE11538192700FC82C8 /* DS_Map.h */, + D5251CE21538192700FC82C8 /* DS_MemoryPool.h */, + D5251CE31538192700FC82C8 /* DS_Multilist.h */, + D5251CE41538192700FC82C8 /* DS_OrderedChannelHeap.h */, + D5251CE51538192700FC82C8 /* DS_OrderedList.h */, + D5251CE61538192700FC82C8 /* DS_Queue.h */, + D5251CE71538192700FC82C8 /* DS_QueueLinkedList.h */, + D5251CE81538192700FC82C8 /* DS_RangeList.h */, + D5251CE91538192700FC82C8 /* DS_Table.cpp */, + D5251CEA1538192700FC82C8 /* DS_Table.h */, + D5251CEB1538192700FC82C8 /* DS_ThreadsafeAllocatingQueue.h */, + D5251CEC1538192700FC82C8 /* DS_Tree.h */, + D5251CED1538192700FC82C8 /* DS_WeightedGraph.h */, + D5251CEE1538192700FC82C8 /* DynDNS.cpp */, + D5251CEF1538192700FC82C8 /* DynDNS.h */, + D5251CF01538192700FC82C8 /* EmailSender.cpp */, + D5251CF11538192700FC82C8 /* EmailSender.h */, + D5251CF21538192700FC82C8 /* EncodeClassName.cpp */, + D5251CF31538192700FC82C8 /* EpochTimeToString.cpp */, + D5251CF41538192700FC82C8 /* EpochTimeToString.h */, + D5251CF51538192700FC82C8 /* Export.h */, + D5251CF61538192700FC82C8 /* FileList.cpp */, + D5251CF71538192700FC82C8 /* FileList.h */, + D5251CF81538192700FC82C8 /* FileListNodeContext.h */, + D5251CF91538192700FC82C8 /* FileListTransfer.cpp */, + D5251CFA1538192700FC82C8 /* FileListTransfer.h */, + D5251CFB1538192700FC82C8 /* FileListTransferCBInterface.h */, + D5251CFC1538192700FC82C8 /* FileOperations.cpp */, + D5251CFD1538192700FC82C8 /* FileOperations.h */, + D5251CFE1538192700FC82C8 /* FormatString.cpp */, + D5251CFF1538192700FC82C8 /* FormatString.h */, + D5251D001538192700FC82C8 /* FullyConnectedMesh2.cpp */, + D5251D011538192700FC82C8 /* FullyConnectedMesh2.h */, + D5251D021538192700FC82C8 /* Getche.cpp */, + D5251D031538192700FC82C8 /* Getche.h */, + D5251D041538192700FC82C8 /* Gets.cpp */, + D5251D051538192700FC82C8 /* Gets.h */, + D5251D061538192700FC82C8 /* GetTime.cpp */, + D5251D071538192700FC82C8 /* GetTime.h */, + D5251D081538192700FC82C8 /* gettimeofday.cpp */, + D5251D091538192700FC82C8 /* gettimeofday.h */, + D5251D0A1538192700FC82C8 /* GridSectorizer.cpp */, + D5251D0B1538192700FC82C8 /* GridSectorizer.h */, + D5251D0C1538192700FC82C8 /* HTTPConnection.cpp */, + D5251D0D1538192700FC82C8 /* HTTPConnection.h */, + D5251D0E1538192700FC82C8 /* IncrementalReadInterface.cpp */, + D5251D0F1538192700FC82C8 /* IncrementalReadInterface.h */, + D5251D101538192700FC82C8 /* InternalPacket.h */, + D5251D111538192700FC82C8 /* Itoa.cpp */, + D5251D121538192700FC82C8 /* Itoa.h */, + D5251D131538192700FC82C8 /* Kbhit.h */, + D5251D141538192700FC82C8 /* LinuxStrings.cpp */, + D5251D151538192700FC82C8 /* LinuxStrings.h */, + D5251D161538192700FC82C8 /* LocklessTypes.cpp */, + D5251D171538192700FC82C8 /* LocklessTypes.h */, + D5251D181538192700FC82C8 /* LogCommandParser.cpp */, + D5251D191538192700FC82C8 /* LogCommandParser.h */, + D5251D1A1538192700FC82C8 /* MessageFilter.cpp */, + D5251D1B1538192700FC82C8 /* MessageFilter.h */, + D5251D1C1538192700FC82C8 /* MessageIdentifiers.h */, + D5251D1D1538192700FC82C8 /* MTUSize.h */, + D5251D1E1538192700FC82C8 /* NativeFeatureIncludes.h */, + D5251D1F1538192700FC82C8 /* NativeFeatureIncludesOverrides.h */, + D5251D201538192700FC82C8 /* NativeTypes.h */, + D5251D211538192700FC82C8 /* NatPunchthroughClient.cpp */, + D5251D221538192700FC82C8 /* NatPunchthroughClient.h */, + D5251D231538192700FC82C8 /* NatPunchthroughServer.cpp */, + D5251D241538192700FC82C8 /* NatPunchthroughServer.h */, + D5251D251538192700FC82C8 /* NatTypeDetectionClient.cpp */, + D5251D261538192700FC82C8 /* NatTypeDetectionClient.h */, + D5251D271538192700FC82C8 /* NatTypeDetectionCommon.cpp */, + D5251D281538192700FC82C8 /* NatTypeDetectionCommon.h */, + D5251D291538192700FC82C8 /* NatTypeDetectionServer.cpp */, + D5251D2A1538192700FC82C8 /* NatTypeDetectionServer.h */, + D5251D2B1538192700FC82C8 /* NetworkIDManager.cpp */, + D5251D2C1538192700FC82C8 /* NetworkIDManager.h */, + D5251D2D1538192700FC82C8 /* NetworkIDObject.cpp */, + D5251D2E1538192700FC82C8 /* NetworkIDObject.h */, + D5251D2F1538192700FC82C8 /* PacketConsoleLogger.cpp */, + D5251D301538192700FC82C8 /* PacketConsoleLogger.h */, + D5251D311538192700FC82C8 /* PacketFileLogger.cpp */, + D5251D321538192700FC82C8 /* PacketFileLogger.h */, + D5251D331538192700FC82C8 /* PacketizedTCP.cpp */, + D5251D341538192700FC82C8 /* PacketizedTCP.h */, + D5251D351538192700FC82C8 /* PacketLogger.cpp */, + D5251D361538192700FC82C8 /* PacketLogger.h */, + D5251D371538192700FC82C8 /* PacketOutputWindowLogger.cpp */, + D5251D381538192700FC82C8 /* PacketOutputWindowLogger.h */, + D5251D391538192700FC82C8 /* PacketPool.h */, + D5251D3A1538192700FC82C8 /* PacketPriority.h */, + D5251D3B1538192700FC82C8 /* PluginInterface2.cpp */, + D5251D3C1538192700FC82C8 /* PluginInterface2.h */, + D5251D3D1538192700FC82C8 /* PS3Includes.h */, + D5251D3E1538192700FC82C8 /* Rackspace.cpp */, + D5251D3F1538192700FC82C8 /* Rackspace.h */, + D5251D401538192700FC82C8 /* RakAlloca.h */, + D5251D411538192700FC82C8 /* RakAssert.h */, + D5251D421538192700FC82C8 /* RakMemoryOverride.cpp */, + D5251D431538192700FC82C8 /* RakMemoryOverride.h */, + D5251D471538192700FC82C8 /* RakNetCommandParser.cpp */, + D5251D481538192700FC82C8 /* RakNetCommandParser.h */, + D5251D491538192700FC82C8 /* RakNetDefines.h */, + D5251D4A1538192700FC82C8 /* RakNetDefinesOverrides.h */, + D5251D4B1538192700FC82C8 /* RakNetSmartPtr.h */, + D5251D4C1538192700FC82C8 /* RakNetSocket.cpp */, + D5251D4D1538192700FC82C8 /* RakNetSocket.h */, + D5251D4E1538192700FC82C8 /* RakNetStatistics.cpp */, + D5251D4F1538192700FC82C8 /* RakNetStatistics.h */, + D5251D501538192700FC82C8 /* RakNetTime.h */, + D5251D511538192700FC82C8 /* RakNetTransport2.cpp */, + D5251D521538192700FC82C8 /* RakNetTransport2.h */, + D5251D531538192700FC82C8 /* RakNetTypes.cpp */, + D5251D541538192700FC82C8 /* RakNetTypes.h */, + D5251D551538192700FC82C8 /* RakNetVersion.h */, + D5251D561538192700FC82C8 /* RakPeer.cpp */, + D5251D571538192700FC82C8 /* RakPeer.h */, + D5251D581538192700FC82C8 /* RakPeerInterface.h */, + D5251D591538192700FC82C8 /* RakSleep.cpp */, + D5251D5A1538192700FC82C8 /* RakSleep.h */, + D5251D5B1538192700FC82C8 /* RakString.cpp */, + D5251D5C1538192700FC82C8 /* RakString.h */, + D5251D5D1538192700FC82C8 /* RakThread.cpp */, + D5251D5E1538192700FC82C8 /* RakThread.h */, + D5251D5F1538192700FC82C8 /* RakWString.cpp */, + D5251D601538192700FC82C8 /* RakWString.h */, + D5251D611538192700FC82C8 /* Rand.cpp */, + D5251D621538192700FC82C8 /* Rand.h */, + D5251D631538192700FC82C8 /* rdlmalloc-options.h */, + D5251D641538192700FC82C8 /* rdlmalloc.cpp */, + D5251D651538192700FC82C8 /* rdlmalloc.h */, + D5251D661538192700FC82C8 /* ReadyEvent.cpp */, + D5251D671538192700FC82C8 /* ReadyEvent.h */, + D5251D681538192700FC82C8 /* RefCountedObj.h */, + D5251D691538192700FC82C8 /* ReliabilityLayer.cpp */, + D5251D6A1538192700FC82C8 /* ReliabilityLayer.h */, + D5251D6B1538192700FC82C8 /* ReplicaEnums.h */, + D5251D6C1538192700FC82C8 /* ReplicaManager3.cpp */, + D5251D6D1538192700FC82C8 /* ReplicaManager3.h */, + D5251D6E1538192700FC82C8 /* Router2.cpp */, + D5251D6F1538192700FC82C8 /* Router2.h */, + D5251D701538192700FC82C8 /* RPC4Plugin.cpp */, + D5251D711538192700FC82C8 /* RPC4Plugin.h */, + D5251D721538192700FC82C8 /* SecureHandshake.cpp */, + D5251D731538192700FC82C8 /* SecureHandshake.h */, + D5251D741538192700FC82C8 /* SendToThread.cpp */, + D5251D751538192700FC82C8 /* SendToThread.h */, + D5251D761538192700FC82C8 /* SHA1.cpp */, + D5251D771538192700FC82C8 /* SHA1.h */, + D5251D781538192700FC82C8 /* SignaledEvent.cpp */, + D5251D791538192700FC82C8 /* SignaledEvent.h */, + D5251D7A1538192700FC82C8 /* SimpleMutex.cpp */, + D5251D7B1538192700FC82C8 /* SimpleMutex.h */, + D5251D7C1538192700FC82C8 /* SimpleTCPServer.h */, + D5251D7D1538192700FC82C8 /* SingleProducerConsumer.h */, + D5251D7E1538192700FC82C8 /* SocketDefines.h */, + D5251D7F1538192700FC82C8 /* SocketIncludes.h */, + D5251D801538192700FC82C8 /* SocketLayer.cpp */, + D5251D811538192700FC82C8 /* SocketLayer.h */, + D5251D821538192700FC82C8 /* StringCompressor.cpp */, + D5251D831538192700FC82C8 /* StringCompressor.h */, + D5251D841538192700FC82C8 /* StringTable.cpp */, + D5251D851538192700FC82C8 /* StringTable.h */, + D5251D861538192700FC82C8 /* SuperFastHash.cpp */, + D5251D871538192700FC82C8 /* SuperFastHash.h */, + D5251D881538192700FC82C8 /* TableSerializer.cpp */, + D5251D891538192700FC82C8 /* TableSerializer.h */, + D5251D8A1538192700FC82C8 /* TCPInterface.cpp */, + D5251D8B1538192700FC82C8 /* TCPInterface.h */, + D5251D8C1538192700FC82C8 /* TeamBalancer.cpp */, + D5251D8D1538192700FC82C8 /* TeamBalancer.h */, + D5251D8E1538192700FC82C8 /* TelnetTransport.cpp */, + D5251D8F1538192700FC82C8 /* TelnetTransport.h */, + D5251D901538192700FC82C8 /* ThreadPool.h */, + D5251D911538192700FC82C8 /* ThreadsafePacketLogger.cpp */, + D5251D921538192700FC82C8 /* ThreadsafePacketLogger.h */, + D5251D931538192700FC82C8 /* TransportInterface.h */, + D5251D941538192700FC82C8 /* TwoWayAuthentication.cpp */, + D5251D951538192700FC82C8 /* TwoWayAuthentication.h */, + D5251D961538192700FC82C8 /* UDPForwarder.cpp */, + D5251D971538192700FC82C8 /* UDPForwarder.h */, + D5251D981538192700FC82C8 /* UDPProxyClient.cpp */, + D5251D991538192700FC82C8 /* UDPProxyClient.h */, + D5251D9A1538192700FC82C8 /* UDPProxyCommon.h */, + D5251D9B1538192700FC82C8 /* UDPProxyCoordinator.cpp */, + D5251D9C1538192700FC82C8 /* UDPProxyCoordinator.h */, + D5251D9D1538192700FC82C8 /* UDPProxyServer.cpp */, + D5251D9E1538192700FC82C8 /* UDPProxyServer.h */, + D5251D9F1538192700FC82C8 /* VariableDeltaSerializer.cpp */, + D5251DA01538192700FC82C8 /* VariableDeltaSerializer.h */, + D5251DA11538192700FC82C8 /* VariableListDeltaTracker.cpp */, + D5251DA21538192700FC82C8 /* VariableListDeltaTracker.h */, + D5251DA31538192700FC82C8 /* VariadicSQLParser.cpp */, + D5251DA41538192700FC82C8 /* VariadicSQLParser.h */, + D5251DA51538192700FC82C8 /* VitaIncludes.cpp */, + D5251DA61538192700FC82C8 /* VitaIncludes.h */, + D5251DA71538192700FC82C8 /* WindowsIncludes.h */, + D5251DA81538192700FC82C8 /* WSAStartupSingleton.cpp */, + D5251DA91538192700FC82C8 /* WSAStartupSingleton.h */, + D5251DAA1538192700FC82C8 /* XBox360Includes.h */, + ); + path = raknet; + sourceTree = ""; + }; + D5251E72153823DC00FC82C8 /* lang */ = { + isa = PBXGroup; + children = ( + D5251E73153823DC00FC82C8 /* en_US.lang */, + ); + name = lang; + path = ../../data/lang; + sourceTree = ""; + }; + D544940315D13DB7005FA9B0 /* server */ = { + isa = PBXGroup; + children = ( + D544940415D13DB7005FA9B0 /* ServerLevel.cpp */, + D544940515D13DB7005FA9B0 /* ServerLevel.h */, + D544940615D13DB7005FA9B0 /* ServerPlayer.cpp */, + D544940715D13DB7005FA9B0 /* ServerPlayer.h */, + ); + path = server; + sourceTree = ""; + }; + D544940C15D13E27005FA9B0 /* food */ = { + isa = PBXGroup; + children = ( + D544940D15D13E27005FA9B0 /* FoodConstants.h */, + D544940E15D13E27005FA9B0 /* SimpleFoodData.cpp */, + D544940F15D13E27005FA9B0 /* SimpleFoodData.h */, + ); + path = food; + sourceTree = ""; + }; + D54954EB14E38FFC00685A35 /* dialog2 */ = { + isa = PBXGroup; + children = ( + D549551114E3D86B00685A35 /* worldname_ipad_3.png */, + D549551214E3D86B00685A35 /* worldname_ipad.png */, + D549551314E3D86C00685A35 /* worldname_iphone_3.png */, + D549551414E3D86D00685A35 /* worldname_iphone.png */, + D54954EC14E38FFC00685A35 /* cancel_0_1.png */, + D54954ED14E38FFC00685A35 /* cancel_0_3.png */, + D549551D14E3DC4300685A35 /* creative_1_3.png */, + D549551E14E3DC4300685A35 /* survival_1_3.png */, + D54954EE14E38FFC00685A35 /* cancel_1_1.png */, + 9D293CEA160720D6000305C8 /* worldname_iphone5_3.png */, + D54954EF14E38FFC00685A35 /* cancel_1_3.png */, + D54954F014E38FFC00685A35 /* create_0_1.png */, + D54954F114E38FFC00685A35 /* create_0_3.png */, + D54954F214E38FFC00685A35 /* create_1_1.png */, + D54954F314E38FFC00685A35 /* create_1_3.png */, + D54954F414E38FFC00685A35 /* creative_0_3.png */, + D54954F514E38FFC00685A35 /* survival_0_3.png */, + D54954F614E38FFC00685A35 /* worldname.png */, + D54954F714E38FFC00685A35 /* worldname_3.png */, + ); + path = dialog2; + sourceTree = ""; + }; + D549552314E3EA0B00685A35 /* ipad */ = { + isa = PBXGroup; + children = ( + D549553F14E3EAC100685A35 /* creative_0_4.png */, + D549554014E3EAC100685A35 /* survival_0_4.png */, + D549552414E3EA0B00685A35 /* cancel_0_4.png */, + D549552514E3EA0B00685A35 /* cancel_1_4.png */, + D549552614E3EA0B00685A35 /* create_0_4.png */, + D549552714E3EA0B00685A35 /* create_1_4.png */, + D549552814E3EA0B00685A35 /* creative_1_4.png */, + D549552A14E3EA0B00685A35 /* survival_1_4.png */, + D549552C14E3EA0B00685A35 /* worldname_ipad_4.png */, + ); + path = ipad; + sourceTree = ""; + }; + D572D3AA144C69F100E67862 /* Resources */ = { + isa = PBXGroup; + children = ( + D5ACF18615C03DBF00E21C22 /* aac */, + D5251E72153823DC00FC82C8 /* lang */, + D5F0773A145EF5E100EC30FB /* ios */, + D5BFCF111450BAD500A443B0 /* Fonts */, + D572D3AB144C6A1400E67862 /* images */, + ); + name = Resources; + sourceTree = ""; + }; + D572D3AB144C6A1400E67862 /* images */ = { + isa = PBXGroup; + children = ( + 0425EB9516A94D14000C7483 /* armor */, + 04004534169EE73C003EB6FA /* environment */, + D598BD96163ED24F00A36438 /* art */, + D5F0772214599DC700EC30FB /* terrain.pvr4 */, + D55B252A14598227002D9366 /* terrain.pvrtc */, + D55B201714595370002D9366 /* terrain.pvr */, + D572D3AC144C6A1400E67862 /* font */, + D572D3AE144C6A1400E67862 /* gui */, + D572D3C3144C6A1400E67862 /* item */, + D572D3C5144C6A1400E67862 /* mob */, + D572D3C7144C6A1400E67862 /* particles.png */, + D572D3C8144C6A1400E67862 /* terrain.png */, + ); + name = images; + path = ../../data/images; + sourceTree = ""; + }; + D572D3AC144C6A1400E67862 /* font */ = { + isa = PBXGroup; + children = ( + D572D3AD144C6A1400E67862 /* default8.png */, + ); + path = font; + sourceTree = ""; + }; + D572D3AE144C6A1400E67862 /* gui */ = { + isa = PBXGroup; + children = ( + D598BD9B164157C300A36438 /* badge */, + D51DC73514581D4E00E3D761 /* itemframe.png */, + D5A55E4E1450761600A7571B /* bg32.png */, + D572D3AF144C6A1400E67862 /* background.png */, + D572D3B3144C6A1400E67862 /* default_world.png */, + D572D3B6144C6A1400E67862 /* gui.png */, + D572D3B7144C6A1400E67862 /* gui_blocks.png */, + D572D3B8144C6A1400E67862 /* icons.png */, + D572D3B9144C6A1400E67862 /* items.png */, + D5251E6F15381D0500FC82C8 /* spritesheet.png */, + D572D3C1144C6A1400E67862 /* title.png */, + D572D3C2144C6A1400E67862 /* touchgui.png */, + ); + path = gui; + sourceTree = ""; + }; + D572D3C3144C6A1400E67862 /* item */ = { + isa = PBXGroup; + children = ( + D598BD90163ED0DB00A36438 /* sign.png */, + D5ACF28D15C03E8800E21C22 /* arrows.png */, + D572D3C4144C6A1400E67862 /* camera.png */, + ); + path = item; + sourceTree = ""; + }; + D572D3C5144C6A1400E67862 /* mob */ = { + isa = PBXGroup; + children = ( + D598BD93163ED14000A36438 /* pigzombie.png */, + D5B50A4614CFF492005F7284 /* chicken.png */, + D5B50A4714CFF492005F7284 /* cow.png */, + D5B50A4814CFF492005F7284 /* creeper.png */, + D5B50A4914CFF492005F7284 /* pig.png */, + D5B50A4A14CFF492005F7284 /* sheep_fur.png */, + D5B50A4B14CFF492005F7284 /* sheep.png */, + D5B50A4C14CFF492005F7284 /* skeleton.png */, + D5B50A4D14CFF492005F7284 /* spider.png */, + D5B50A4E14CFF492005F7284 /* zombie.png */, + D572D3C6144C6A1400E67862 /* char.png */, + ); + path = mob; + sourceTree = ""; + }; + D584926914FD22EE00741128 /* ai */ = { + isa = PBXGroup; + children = ( + D584927714FD23A500741128 /* PathNavigation.h */, + D584927814FD23A500741128 /* Sensing.h */, + D584927614FD238200741128 /* util */, + D584927514FD237800741128 /* goal */, + D584926B14FD22FC00741128 /* control */, + ); + name = ai; + sourceTree = ""; + }; + D584926B14FD22FC00741128 /* control */ = { + isa = PBXGroup; + children = ( + D584926F14FD236700741128 /* Control.h */, + D584927014FD236700741128 /* JumpControl.h */, + D584927114FD236700741128 /* MoveControl.cpp */, + D584927214FD236700741128 /* MoveControl.h */, + ); + name = control; + sourceTree = ""; + }; + D584927514FD237800741128 /* goal */ = { + isa = PBXGroup; + children = ( + D584928014FD23C300741128 /* target */, + D584927A14FD23BF00741128 /* BreakDoorGoal.h */, + D584927B14FD23BF00741128 /* DoorInteractGoal.h */, + D584927C14FD23BF00741128 /* Goal.h */, + D584927D14FD23BF00741128 /* GoalSelector.h */, + D584927E14FD23BF00741128 /* MeleeAttackGoal.h */, + D584927F14FD23BF00741128 /* RandomStrollGoal.h */, + ); + name = goal; + sourceTree = ""; + }; + D584927614FD238200741128 /* util */ = { + isa = PBXGroup; + children = ( + D584927914FD23B200741128 /* RandomPos.h */, + ); + name = util; + sourceTree = ""; + }; + D584928014FD23C300741128 /* target */ = { + isa = PBXGroup; + children = ( + D584928114FD23DB00741128 /* HurtByTargetGoal.h */, + D584928214FD23DB00741128 /* NearestAttackableTargetGoal.h */, + D584928314FD23DB00741128 /* TargetGoal.h */, + ); + name = target; + sourceTree = ""; + }; + D598BD96163ED24F00A36438 /* art */ = { + isa = PBXGroup; + children = ( + D598BD97163ED26500A36438 /* kz.png */, + ); + name = art; + sourceTree = ""; + }; + D598BD9B164157C300A36438 /* badge */ = { + isa = PBXGroup; + children = ( + D598BD9C164157D500A36438 /* minecon140.png */, + ); + name = badge; + sourceTree = ""; + }; + D5ACF18615C03DBF00E21C22 /* aac */ = { + isa = PBXGroup; + children = ( + D5ACF18715C03DBF00E21C22 /* damage */, + D5ACF18B15C03DBF00E21C22 /* mob */, + D5ACF1B115C03DBF00E21C22 /* random */, + D5ACF1C115C03DBF00E21C22 /* step */, + ); + name = aac; + path = ../../data/sound/aac; + sourceTree = ""; + }; + D5ACF18715C03DBF00E21C22 /* damage */ = { + isa = PBXGroup; + children = ( + D5ACF18815C03DBF00E21C22 /* fallbig1.m4a */, + D5ACF18915C03DBF00E21C22 /* fallbig2.m4a */, + D5ACF18A15C03DBF00E21C22 /* fallsmall.m4a */, + ); + path = damage; + sourceTree = ""; + }; + D5ACF18B15C03DBF00E21C22 /* mob */ = { + isa = PBXGroup; + children = ( + D5ACF18C15C03DBF00E21C22 /* chicken1.m4a */, + D5ACF18D15C03DBF00E21C22 /* chicken2.m4a */, + D5ACF18E15C03DBF00E21C22 /* chicken3.m4a */, + D5ACF18F15C03DBF00E21C22 /* chickenhurt1.m4a */, + D5ACF19015C03DBF00E21C22 /* chickenhurt2.m4a */, + D598BD6F163ED09800A36438 /* zpig1.m4a */, + D598BD70163ED09800A36438 /* zpig2.m4a */, + D598BD71163ED09800A36438 /* zpig3.m4a */, + D598BD72163ED09800A36438 /* zpig4.m4a */, + D598BD73163ED09800A36438 /* zpigangry1.m4a */, + D598BD74163ED09800A36438 /* zpigangry2.m4a */, + D598BD75163ED09800A36438 /* zpigangry3.m4a */, + D598BD76163ED09800A36438 /* zpigangry4.m4a */, + D598BD77163ED09800A36438 /* zpigdeath.m4a */, + D598BD78163ED09800A36438 /* zpighurt1.m4a */, + D598BD79163ED09800A36438 /* zpighurt2.m4a */, + D5ACF19115C03DBF00E21C22 /* chickenplop.m4a */, + D5ACF19215C03DBF00E21C22 /* cow1.m4a */, + D5ACF19315C03DBF00E21C22 /* cow2.m4a */, + D5ACF19415C03DBF00E21C22 /* cow3.m4a */, + D5ACF19515C03DBF00E21C22 /* cow4.m4a */, + D5ACF19615C03DBF00E21C22 /* cowhurt1.m4a */, + D5ACF19715C03DBF00E21C22 /* cowhurt2.m4a */, + D5ACF19815C03DBF00E21C22 /* cowhurt3.m4a */, + D5ACF19915C03DBF00E21C22 /* pig1.m4a */, + D5ACF19A15C03DBF00E21C22 /* pig2.m4a */, + D5ACF19B15C03DBF00E21C22 /* pig3.m4a */, + D5ACF19C15C03DBF00E21C22 /* pigdeath.m4a */, + D5ACF19D15C03DBF00E21C22 /* sheep1.m4a */, + D5ACF19E15C03DBF00E21C22 /* sheep2.m4a */, + D5ACF19F15C03DBF00E21C22 /* sheep3.m4a */, + D5ACF1A015C03DBF00E21C22 /* skeleton1.m4a */, + D5ACF1A115C03DBF00E21C22 /* skeleton2.m4a */, + D5ACF1A215C03DBF00E21C22 /* skeleton3.m4a */, + D5ACF1A315C03DBF00E21C22 /* skeletonhurt1.m4a */, + D5ACF1A415C03DBF00E21C22 /* skeletonhurt2.m4a */, + D5ACF1A515C03DBF00E21C22 /* skeletonhurt3.m4a */, + D5ACF1A615C03DBF00E21C22 /* skeletonhurt4.m4a */, + D5ACF1A715C03DBF00E21C22 /* spider1.m4a */, + D5ACF1A815C03DBF00E21C22 /* spider2.m4a */, + D5ACF1A915C03DBF00E21C22 /* spider3.m4a */, + D5ACF1AA15C03DBF00E21C22 /* spider4.m4a */, + D5B26C1D15E3CE51003785EA /* creeper1.m4a */, + D5B26C1E15E3CE51003785EA /* creeper2.m4a */, + D5B26C1F15E3CE51003785EA /* creeper3.m4a */, + D5B26C2015E3CE51003785EA /* creeper4.m4a */, + D5B26C2115E3CE51003785EA /* creeperdeath.m4a */, + D5B26C2215E3CE51003785EA /* spiderdeath.m4a */, + D5ACF1AB15C03DBF00E21C22 /* zombie1.m4a */, + D5ACF1AC15C03DBF00E21C22 /* zombie2.m4a */, + D5ACF1AD15C03DBF00E21C22 /* zombie3.m4a */, + D5ACF1AE15C03DBF00E21C22 /* zombiedeath.m4a */, + D5ACF1AF15C03DBF00E21C22 /* zombiehurt1.m4a */, + D5ACF1B015C03DBF00E21C22 /* zombiehurt2.m4a */, + ); + path = mob; + sourceTree = ""; + }; + D5ACF1B115C03DBF00E21C22 /* random */ = { + isa = PBXGroup; + children = ( + D5ACF1B215C03DBF00E21C22 /* bow.m4a */, + D5ACF1B315C03DBF00E21C22 /* bowhit1.m4a */, + D5ACF1B415C03DBF00E21C22 /* bowhit2.m4a */, + D5ACF1B515C03DBF00E21C22 /* bowhit3.m4a */, + D5ACF1B615C03DBF00E21C22 /* bowhit4.m4a */, + D5ACF1B715C03DBF00E21C22 /* click.m4a */, + D5ACF1B815C03DBF00E21C22 /* door_close.m4a */, + D5ACF1B915C03DBF00E21C22 /* door_open.m4a */, + D5ACF1BA15C03DBF00E21C22 /* glass1.m4a */, + D598BD6C163ED06400A36438 /* explode.m4a */, + D5ACF1BB15C03DBF00E21C22 /* glass2.m4a */, + D5B26C2F15E3CED3003785EA /* eat1.m4a */, + D5B26C3015E3CED3003785EA /* eat2.m4a */, + D5B26C3115E3CED3003785EA /* eat3.m4a */, + D5B26C3215E3CED3003785EA /* fuse.m4a */, + D5ACF1BC15C03DBF00E21C22 /* glass3.m4a */, + D5ACF1BD15C03DBF00E21C22 /* hurt.m4a */, + D5ACF1BE15C03DBF00E21C22 /* pop.m4a */, + D5ACF1BF15C03DBF00E21C22 /* splash.m4a */, + D5ACF1C015C03DBF00E21C22 /* water.m4a */, + ); + path = random; + sourceTree = ""; + }; + D5ACF1C115C03DBF00E21C22 /* step */ = { + isa = PBXGroup; + children = ( + D5ACF1C215C03DBF00E21C22 /* cloth1.m4a */, + D5ACF1C315C03DBF00E21C22 /* cloth2.m4a */, + D5ACF1C415C03DBF00E21C22 /* cloth3.m4a */, + D5ACF1C515C03DBF00E21C22 /* cloth4.m4a */, + D5ACF1C615C03DBF00E21C22 /* grass1.m4a */, + D5ACF1C715C03DBF00E21C22 /* grass2.m4a */, + D5ACF1C815C03DBF00E21C22 /* grass3.m4a */, + D5ACF1C915C03DBF00E21C22 /* grass4.m4a */, + D5ACF1CA15C03DBF00E21C22 /* gravel2.m4a */, + D5ACF1CB15C03DBF00E21C22 /* gravel3.m4a */, + D5ACF1CC15C03DBF00E21C22 /* gravel4.m4a */, + D5ACF1CD15C03DBF00E21C22 /* ladder1.m4a */, + D5ACF1CE15C03DBF00E21C22 /* ladder2.m4a */, + D5ACF1CF15C03DBF00E21C22 /* ladder3.m4a */, + D5ACF1D015C03DBF00E21C22 /* ladder4.m4a */, + D5ACF1D115C03DBF00E21C22 /* sand1.m4a */, + D5ACF1D215C03DBF00E21C22 /* sand2.m4a */, + D5ACF1D315C03DBF00E21C22 /* sand3.m4a */, + D5ACF1D415C03DBF00E21C22 /* sand4.m4a */, + D5ACF1D515C03DBF00E21C22 /* snow1.m4a */, + D5ACF1D615C03DBF00E21C22 /* snow2.m4a */, + D5ACF1D715C03DBF00E21C22 /* snow3.m4a */, + D5ACF1D815C03DBF00E21C22 /* snow4.m4a */, + D5ACF1D915C03DBF00E21C22 /* stone1.m4a */, + D5ACF1DA15C03DBF00E21C22 /* stone2.m4a */, + D5ACF1DB15C03DBF00E21C22 /* stone3.m4a */, + D5ACF1DC15C03DBF00E21C22 /* stone4.m4a */, + D5ACF1DD15C03DBF00E21C22 /* wood1.m4a */, + D5ACF1DE15C03DBF00E21C22 /* wood2.m4a */, + D5ACF1DF15C03DBF00E21C22 /* wood3.m4a */, + D5ACF1E015C03DBF00E21C22 /* wood4.m4a */, + ); + path = step; + sourceTree = ""; + }; + D5B50C1614CFF66F005F7284 /* src */ = { + isa = PBXGroup; + children = ( + D544940315D13DB7005FA9B0 /* server */, + D5B50C1714CFF66F005F7284 /* App.h */, + D5B50C1814CFF66F005F7284 /* AppConstants.h */, + D5B50C1914CFF66F005F7284 /* AppPlatform.h */, + D5B50C1B14CFF66F005F7284 /* AppPlatform_iOS.h */, + D5B50C1C14CFF66F005F7284 /* AppPlatform_iOS.mm */, + D5B50C1F14CFF66F005F7284 /* client */, + D5B50D1714CFF66F005F7284 /* EglConfigPrinter.h */, + D5B50D1814CFF66F005F7284 /* LicenseCodes.h */, + D5B50D1914CFF66F005F7284 /* locale */, + D5B50D1B14CFF66F005F7284 /* main.cpp */, + D5B50D2114CFF66F005F7284 /* nbt */, + D5B50D3014CFF66F005F7284 /* network */, + D5B50D5014CFF66F005F7284 /* NinecraftApp.cpp */, + D5B50D5114CFF66F005F7284 /* NinecraftApp.h */, + D5B50D5214CFF66F005F7284 /* Performance.cpp */, + D5B50D5314CFF66F005F7284 /* Performance.h */, + D5B50D5414CFF66F005F7284 /* platform */, + D5B50E5614CFF66F005F7284 /* SharedConstants.h */, + D5251CB51538192700FC82C8 /* raknet */, + D584926C14FD234400741128 /* SharedConstants.cpp */, + D5B50E5714CFF66F005F7284 /* terrain_4444.h */, + D5B50E5814CFF66F005F7284 /* terrain_5551.h */, + D5B50E5914CFF66F005F7284 /* terrain_565.h */, + D5B50E5A14CFF66F005F7284 /* terrain_565_2.h */, + D5B50E5B14CFF66F005F7284 /* util */, + D5B50E6C14CFF66F005F7284 /* world */, + ); + name = src; + path = ../../src; + sourceTree = ""; + }; + D5B50C1F14CFF66F005F7284 /* client */ = { + isa = PBXGroup; + children = ( + 044129061682FF9600B70EE6 /* MouseHandler.cpp */, + D584928414FD240C00741128 /* IConfigListener.cpp */, + D584928514FD240C00741128 /* IConfigListener.h */, + D5B50C2014CFF66F005F7284 /* gamemode */, + D5B50C2614CFF66F005F7284 /* gui */, + D5B50C6614CFF66F005F7284 /* KeyMapping.h */, + D5B50C6814CFF66F005F7284 /* Minecraft.cpp */, + D5B50C6914CFF66F005F7284 /* Minecraft.h */, + D5B50C6A14CFF66F005F7284 /* model */, + D5B50C8514CFF66F005F7284 /* MouseHandler.h */, + D5B50C8614CFF66F005F7284 /* multiplayer */, + D5B50C8814CFF66F005F7284 /* Options.cpp */, + D5B50C8914CFF66F005F7284 /* Options.h */, + D5B50C8A14CFF66F005F7284 /* OptionStrings.cpp */, + D5B50C8B14CFF66F005F7284 /* OptionStrings.h */, + D5B50C8C14CFF66F005F7284 /* particle */, + D5B50C9C14CFF66F005F7284 /* PixelCalc.h */, + D5B50C9D14CFF66F005F7284 /* player */, + D5B50CB214CFF66F005F7284 /* renderer */, + D5B50CF414CFF66F005F7284 /* sound */, + D5B50D1514CFF66F005F7284 /* Timer.h */, + D5B50D1614CFF66F005F7284 /* User.h */, + ); + path = client; + sourceTree = ""; + }; + D5B50C2014CFF66F005F7284 /* gamemode */ = { + isa = PBXGroup; + children = ( + D5B50C2114CFF66F005F7284 /* CreativeMode.cpp */, + D5B50C2214CFF66F005F7284 /* CreativeMode.h */, + D5B50C2314CFF66F005F7284 /* GameMode.cpp */, + D5B17ED815E2273F0056E751 /* SurvivalMode.cpp */, + D5B50C2414CFF66F005F7284 /* GameMode.h */, + D5B50C2514CFF66F005F7284 /* SurvivalMode.h */, + ); + path = gamemode; + sourceTree = ""; + }; + D5B50C2614CFF66F005F7284 /* gui */ = { + isa = PBXGroup; + children = ( + D5B50C2714CFF66F005F7284 /* components */, + D5B50C3614CFF66F005F7284 /* Font.cpp */, + D5B50C3714CFF66F005F7284 /* Font.h */, + D5B50C3814CFF66F005F7284 /* Gui.cpp */, + D5B50C3914CFF66F005F7284 /* Gui.h */, + D5B50C3A14CFF66F005F7284 /* GuiComponent.cpp */, + D5B50C3B14CFF66F005F7284 /* GuiComponent.h */, + D5B50C3C14CFF66F005F7284 /* Screen.cpp */, + D5B50C3D14CFF66F005F7284 /* Screen.h */, + D5B50C3E14CFF66F005F7284 /* screens */, + D5B50C6514CFF66F005F7284 /* TweenData.h */, + ); + path = gui; + sourceTree = ""; + }; + D5B50C2714CFF66F005F7284 /* components */ = { + isa = PBXGroup; + children = ( + 042A91A116B17517007ABBC6 /* GButton.cpp */, + 042A91A216B17517007ABBC6 /* GButton.h */, + 042A91A316B17517007ABBC6 /* GuiElement.cpp */, + 042A91A416B17517007ABBC6 /* GuiElement.h */, + 042A91A516B17517007ABBC6 /* NinePatch.cpp */, + 042A91A616B17517007ABBC6 /* NinePatch.h */, + 042A91A716B17517007ABBC6 /* OptionsGroup.cpp */, + 042A91A816B17517007ABBC6 /* OptionsGroup.h */, + 042A91A916B17517007ABBC6 /* OptionsPane.cpp */, + 042A91AA16B17517007ABBC6 /* OptionsPane.h */, + 042A91AB16B17517007ABBC6 /* TextBox.cpp */, + 042A91AC16B17517007ABBC6 /* TextBox.h */, + D5B50C2814CFF66F005F7284 /* Button.cpp */, + D5B50C2914CFF66F005F7284 /* Button.h */, + D5951ED6159348C50043A12A /* InventoryPane.cpp */, + D5951ED7159348C50043A12A /* InventoryPane.h */, + D5951ED8159348C50043A12A /* ItemPane.cpp */, + D5951ED9159348C50043A12A /* ItemPane.h */, + D5B50C2A14CFF66F005F7284 /* ImageButton.cpp */, + D5B50C2B14CFF66F005F7284 /* ImageButton.h */, + D5B50C2C14CFF66F005F7284 /* LargeImageButton.cpp */, + D5B50C2D14CFF66F005F7284 /* LargeImageButton.h */, + D5B50C2E14CFF66F005F7284 /* RolledSelectionListH.cpp */, + D5B50C2F14CFF66F005F7284 /* RolledSelectionListH.h */, + D5B50C3014CFF66F005F7284 /* RolledSelectionListV.cpp */, + D5B50C3114CFF66F005F7284 /* RolledSelectionListV.h */, + D5B50C3214CFF66F005F7284 /* ScrolledSelectionList.cpp */, + D5B862841538175500F3238A /* ScrollingPane.cpp */, + D5B50C3314CFF66F005F7284 /* ScrolledSelectionList.h */, + D5B8628B1538178F00F3238A /* ScrollingPane.h */, + D5B50C3414CFF66F005F7284 /* SmallButton.cpp */, + D5B50C3514CFF66F005F7284 /* SmallButton.h */, + ); + path = components; + sourceTree = ""; + }; + D5B50C3E14CFF66F005F7284 /* screens */ = { + isa = PBXGroup; + children = ( + 0413970F16A82E7B008A9F1A /* ArmorScreen.cpp */, + 0413971016A82E7B008A9F1A /* ArmorScreen.h */, + 0419D9B4167F21C60080CB96 /* crafting */, + 0419D9A3167F211B0080CB96 /* BaseContainerScreen.h */, + 0419D9A4167F211B0080CB96 /* ChooseLevelScreen.cpp */, + 0419D9A5167F211B0080CB96 /* ChooseLevelScreen.h */, + 0419D9A6167F211B0080CB96 /* DeathScreen.h */, + 0419D9A7167F211B0080CB96 /* SimpleChooseLevelScreen.cpp */, + 0419D9A8167F211B0080CB96 /* SimpleChooseLevelScreen.h */, + 0419D9A9167F211B0080CB96 /* TextEditScreen.cpp */, + 0419D9AA167F211B0080CB96 /* TextEditScreen.h */, + D5A6F8CF15B45E2600819B71 /* ChestScreen.cpp */, + D5A6F8D015B45E2600819B71 /* ChestScreen.h */, + D5B50C3F14CFF66F005F7284 /* BuyGameScreen.h */, + D5D8C4A5163931F000FD35F0 /* InBedScreen.cpp */, + D5D8C4A6163931F000FD35F0 /* InBedScreen.h */, + D5B50C4014CFF66F005F7284 /* ChatScreen.cpp */, + D5B5118D14DEA27E005F7284 /* DeathScreen.cpp */, + D5B50C4114CFF66F005F7284 /* ChatScreen.h */, + D5B50C4214CFF66F005F7284 /* ConfirmScreen.cpp */, + D5B50C4314CFF66F005F7284 /* ConfirmScreen.h */, + D5B50C4414CFF66F005F7284 /* DialogDefinitions.h */, + D5B50C4514CFF66F005F7284 /* DisconnectionScreen.h */, + D5B50C4614CFF66F005F7284 /* IngameBlockSelectionScreen.cpp */, + D5B50C4714CFF66F005F7284 /* IngameBlockSelectionScreen.h */, + D5B50C4814CFF66F005F7284 /* InvalidLicenseScreen.h */, + D5B50C4914CFF66F005F7284 /* JoinGameScreen.cpp */, + D5B50C4A14CFF66F005F7284 /* JoinGameScreen.h */, + D5B50C4B14CFF66F005F7284 /* OptionsScreen.cpp */, + D5951EEC159349680043A12A /* FurnaceScreen.cpp */, + D5951EED159349680043A12A /* FurnaceScreen.h */, + D5B50C4C14CFF66F005F7284 /* OptionsScreen.h */, + D5B50C4D14CFF66F005F7284 /* PauseScreen.cpp */, + D5B50C4E14CFF66F005F7284 /* PauseScreen.h */, + D5B50C4F14CFF66F005F7284 /* PrerenderTilesScreen.h */, + D5B50C5014CFF66F005F7284 /* ProgressScreen.cpp */, + D5B50C5114CFF66F005F7284 /* ProgressScreen.h */, + D5B50C5214CFF66F005F7284 /* RenameMPLevelScreen.cpp */, + D5B50C5314CFF66F005F7284 /* RenameMPLevelScreen.h */, + D5B50C5414CFF66F005F7284 /* ScreenChooser.cpp */, + D5B50C5514CFF66F005F7284 /* ScreenChooser.h */, + D5B50C5614CFF66F005F7284 /* SelectWorldScreen.cpp */, + D5B50C5714CFF66F005F7284 /* SelectWorldScreen.h */, + D5B50C5814CFF66F005F7284 /* StartMenuScreen.cpp */, + D5B50C5914CFF66F005F7284 /* StartMenuScreen.h */, + D5B50C5A14CFF66F005F7284 /* touch */, + D5B50C6314CFF66F005F7284 /* UploadPhotoScreen.cpp */, + D5B50C6414CFF66F005F7284 /* UploadPhotoScreen.h */, + ); + path = screens; + sourceTree = ""; + }; + D5B50C5A14CFF66F005F7284 /* touch */ = { + isa = PBXGroup; + children = ( + D5B50C5B14CFF66F005F7284 /* TouchIngameBlockSelectionScreen.cpp */, + D5B50C5C14CFF66F005F7284 /* TouchIngameBlockSelectionScreen.h */, + D5B50C5D14CFF66F005F7284 /* TouchJoinGameScreen.cpp */, + D5B50C5E14CFF66F005F7284 /* TouchJoinGameScreen.h */, + D5B50C5F14CFF66F005F7284 /* TouchSelectWorldScreen.cpp */, + D5B50C6014CFF66F005F7284 /* TouchSelectWorldScreen.h */, + D5B50C6114CFF66F005F7284 /* TouchStartMenuScreen.cpp */, + D5B50C6214CFF66F005F7284 /* TouchStartMenuScreen.h */, + ); + path = touch; + sourceTree = ""; + }; + D5B50C6A14CFF66F005F7284 /* model */ = { + isa = PBXGroup; + children = ( + 0419D997167F201B0080CB96 /* ChestModel.h */, + 0419D998167F201B0080CB96 /* SheepFurModel.cpp */, + 0419D999167F201B0080CB96 /* SheepModel.cpp */, + 0419D99A167F201B0080CB96 /* SignModel.h */, + D5B50C6B14CFF66F005F7284 /* ChickenModel.cpp */, + D5B50C6C14CFF66F005F7284 /* ChickenModel.h */, + D5B50C6D14CFF66F005F7284 /* CowModel.cpp */, + D5B50C6E14CFF66F005F7284 /* CowModel.h */, + D5B50C6F14CFF66F005F7284 /* CreeperModel.h */, + D5B50C7014CFF66F005F7284 /* geom */, + D5B50C7814CFF66F005F7284 /* HumanoidModel.cpp */, + D5B50C7914CFF66F005F7284 /* HumanoidModel.h */, + D5B50C7A14CFF66F005F7284 /* Model.h */, + D5B50C7B14CFF66F005F7284 /* ModelInclude.h */, + D5B50C7C14CFF66F005F7284 /* PigModel.cpp */, + D5B50C7D14CFF66F005F7284 /* PigModel.h */, + D5B50C7E14CFF66F005F7284 /* QuadrupedModel.cpp */, + D5B50C7F14CFF66F005F7284 /* QuadrupedModel.h */, + D5B50C8014CFF66F005F7284 /* SheepFurModel.h */, + D5B50C8114CFF66F005F7284 /* SheepModel.h */, + D5B50C8214CFF66F005F7284 /* SkeletonModel.h */, + D5B50C8314CFF66F005F7284 /* SpiderModel.h */, + D5B50C8414CFF66F005F7284 /* ZombieModel.h */, + ); + path = model; + sourceTree = ""; + }; + D5B50C7014CFF66F005F7284 /* geom */ = { + isa = PBXGroup; + children = ( + D5B50C7114CFF66F005F7284 /* Cube.cpp */, + D5B50C7214CFF66F005F7284 /* Cube.h */, + D5B50C7314CFF66F005F7284 /* ModelPart.cpp */, + D5B50C7414CFF66F005F7284 /* ModelPart.h */, + D5B50C7514CFF66F005F7284 /* Polygon.cpp */, + D5B50C7614CFF66F005F7284 /* Polygon.h */, + D5B50C7714CFF66F005F7284 /* Vertex.h */, + ); + path = geom; + sourceTree = ""; + }; + D5B50C8614CFF66F005F7284 /* multiplayer */ = { + isa = PBXGroup; + children = ( + D5B50C8714CFF66F005F7284 /* MultiPlayerLevel.h */, + ); + path = multiplayer; + sourceTree = ""; + }; + D5B50C8C14CFF66F005F7284 /* particle */ = { + isa = PBXGroup; + children = ( + D5B50C8D14CFF66F005F7284 /* BreakingItemParticle.h */, + D5B50C8E14CFF66F005F7284 /* BubbleParticle.h */, + D5B50C8F14CFF66F005F7284 /* ExplodeParticle.h */, + D5B50C9014CFF66F005F7284 /* FlameParticle.h */, + D5B50C9114CFF66F005F7284 /* LavaParticle.h */, + D5B50C9214CFF66F005F7284 /* Particle.cpp */, + D5B50C9314CFF66F005F7284 /* Particle.h */, + D5B50C9414CFF66F005F7284 /* ParticleEngine.cpp */, + D5B50C9514CFF66F005F7284 /* ParticleEngine.h */, + D5B50C9614CFF66F005F7284 /* ParticleInclude.h */, + D5B50C9714CFF66F005F7284 /* RedDustParticle.h */, + D5B50C9814CFF66F005F7284 /* SmokeParticle.h */, + D5B50C9914CFF66F005F7284 /* SplashParticle.h */, + D5B50C9A14CFF66F005F7284 /* TakeAnimationParticle.h */, + D5B50C9B14CFF66F005F7284 /* TerrainParticle.h */, + ); + path = particle; + sourceTree = ""; + }; + D5B50C9D14CFF66F005F7284 /* player */ = { + isa = PBXGroup; + children = ( + D5B50C9E14CFF66F005F7284 /* input */, + D5B50CB014CFF66F005F7284 /* LocalPlayer.cpp */, + D544942015D13F5E005FA9B0 /* RemotePlayer.cpp */, + D544942115D13F5E005FA9B0 /* RemotePlayer.h */, + D5B50CB114CFF66F005F7284 /* LocalPlayer.h */, + ); + path = player; + sourceTree = ""; + }; + D5B50C9E14CFF66F005F7284 /* input */ = { + isa = PBXGroup; + children = ( + D5B50C9F14CFF66F005F7284 /* ControllerTurnInput.h */, + D5B50CA014CFF66F005F7284 /* IBuildInput.h */, + D5B50CA114CFF66F005F7284 /* IInputHolder.h */, + D5B50CA214CFF66F005F7284 /* IMoveInput.h */, + D5B50CA314CFF66F005F7284 /* ITurnInput.h */, + D5B50CA414CFF66F005F7284 /* KeyboardInput.cpp */, + D5B50CA514CFF66F005F7284 /* KeyboardInput.h */, + D5B50CA614CFF66F005F7284 /* MouseBuildInput.h */, + D5B50CA714CFF66F005F7284 /* MouseTurnInput.h */, + D5B50CA814CFF66F005F7284 /* touchscreen */, + D5B50CAF14CFF66F005F7284 /* XperiaPlayInput.h */, + ); + path = input; + sourceTree = ""; + }; + D5B50CA814CFF66F005F7284 /* touchscreen */ = { + isa = PBXGroup; + children = ( + D5B50CA914CFF66F005F7284 /* ITouchScreenModel.h */, + D5B50CAA14CFF66F005F7284 /* TouchAreaModel.h */, + D5B50CAB14CFF66F005F7284 /* TouchInputHolder.h */, + D5B50CAC14CFF66F005F7284 /* TouchscreenInput.cpp */, + D5B50CAD14CFF66F005F7284 /* TouchscreenInput.h */, + D5B50CAE14CFF66F005F7284 /* TouchTurnInput.h */, + ); + path = touchscreen; + sourceTree = ""; + }; + D5B50CB214CFF66F005F7284 /* renderer */ = { + isa = PBXGroup; + children = ( + D5B50CB314CFF66F005F7284 /* Chunk.cpp */, + D5B50CB414CFF66F005F7284 /* Chunk.h */, + D5B50CB514CFF66F005F7284 /* ChunkRenderer.h */, + D5B50CB614CFF66F005F7284 /* Color4.h */, + D5B50CB714CFF66F005F7284 /* culling */, + D5B50CC314CFF66F005F7284 /* DirtyChunkSorter.h */, + D5B50CC414CFF66F005F7284 /* DistanceChunkSorter.h */, + D5B50CC514CFF66F005F7284 /* entity */, + D5B50CDC14CFF66F005F7284 /* GameRenderer.cpp */, + D5B50CDD14CFF66F005F7284 /* GameRenderer.h */, + D5B50CDE14CFF66F005F7284 /* gles.cpp */, + D5B50CDF14CFF66F005F7284 /* gles.h */, + D5B50CE014CFF66F005F7284 /* ItemInHandRenderer.cpp */, + D5B50CE114CFF66F005F7284 /* ItemInHandRenderer.h */, + D5D3820B15A1A2A000B6C50E /* EntityTileRenderer.cpp */, + D5D3820C15A1A2A000B6C50E /* EntityTileRenderer.h */, + D5B50CE214CFF66F005F7284 /* LevelRenderer.cpp */, + D5B50CE314CFF66F005F7284 /* LevelRenderer.h */, + D5B50CE414CFF66F005F7284 /* ptexture */, + D5B50CE714CFF66F005F7284 /* RenderChunk.cpp */, + D5B50CE814CFF66F005F7284 /* RenderChunk.h */, + D5B50CE914CFF66F005F7284 /* RenderChunkHandler.h */, + D5D381FE15A1A26000B6C50E /* tileentity */, + D5B50CEA14CFF66F005F7284 /* RenderList.cpp */, + D5B50CEB14CFF66F005F7284 /* RenderList.h */, + D5B50CEC14CFF66F005F7284 /* Tesselator.cpp */, + D5B50CED14CFF66F005F7284 /* Tesselator.h */, + D5B50CEE14CFF66F005F7284 /* TextureData.h */, + D5B50CEF14CFF66F005F7284 /* Textures.cpp */, + D5B50CF014CFF66F005F7284 /* Textures.h */, + D5B50CF114CFF66F005F7284 /* TileRenderer.cpp */, + D5B50CF214CFF66F005F7284 /* TileRenderer.h */, + D5B50CF314CFF66F005F7284 /* VertecDecl.h */, + ); + path = renderer; + sourceTree = ""; + }; + D5B50CB714CFF66F005F7284 /* culling */ = { + isa = PBXGroup; + children = ( + D5B50CB814CFF66F005F7284 /* AllowAllCuller.h */, + D5B50CB914CFF66F005F7284 /* Culler.h */, + D5B50CBA14CFF66F005F7284 /* Frustum.cpp */, + D5B50CBB14CFF66F005F7284 /* Frustum.h */, + D5B50CBC14CFF66F005F7284 /* FrustumCuller.h */, + D5B50CBD14CFF66F005F7284 /* FrustumData.h */, + D5B50CBE14CFF66F005F7284 /* tmp */, + ); + path = culling; + sourceTree = ""; + }; + D5B50CBE14CFF66F005F7284 /* tmp */ = { + isa = PBXGroup; + children = ( + D5B50CBF14CFF66F005F7284 /* _FrustumCuller.h */, + D5B50CC014CFF66F005F7284 /* Frustum.h */, + D5B50CC114CFF66F005F7284 /* FrustumCuller.h */, + D5B50CC214CFF66F005F7284 /* FrustumData.h */, + ); + path = tmp; + sourceTree = ""; + }; + D5B50CC514CFF66F005F7284 /* entity */ = { + isa = PBXGroup; + children = ( + 0400453816A4125B003EB6FA /* FallingTileRenderer.cpp */, + 0400453916A4125B003EB6FA /* FallingTileRenderer.h */, + 0419D9A1167F20CC0080CB96 /* SheepRenderer.cpp */, + D5ACF15415C01F7D00E21C22 /* ArrowRenderer.cpp */, + D5ACF15515C01F7D00E21C22 /* ArrowRenderer.h */, + D5B50CC614CFF66F005F7284 /* ChickenRenderer.cpp */, + D5B50CC714CFF66F005F7284 /* ChickenRenderer.h */, + D5D8C4AD163932CF00FD35F0 /* PaintingRenderer.cpp */, + D5D8C4AE163932CF00FD35F0 /* PaintingRenderer.h */, + D5B50CC814CFF66F005F7284 /* CreeperRenderer.h */, + D5B50CC914CFF66F005F7284 /* EntityRenderDispatcher.cpp */, + D5B50CCA14CFF66F005F7284 /* EntityRenderDispatcher.h */, + D544941C15D13F45005FA9B0 /* PlayerRenderer.cpp */, + D544941D15D13F45005FA9B0 /* PlayerRenderer.h */, + D5B50CCB14CFF66F005F7284 /* EntityRenderer.cpp */, + D5B50CCC14CFF66F005F7284 /* EntityRenderer.h */, + D5B50CCD14CFF66F005F7284 /* HumanoidMobRenderer.cpp */, + D5B50CCE14CFF66F005F7284 /* HumanoidMobRenderer.h */, + D5B50CCF14CFF66F005F7284 /* ItemRenderer.cpp */, + D5B50CD014CFF66F005F7284 /* ItemRenderer.h */, + D5B50CD114CFF66F005F7284 /* ItemSpriteRenderer.cpp */, + D5B50CD214CFF66F005F7284 /* ItemSpriteRenderer.h */, + D5B50CD314CFF66F005F7284 /* MobRenderer.cpp */, + D5B50CD414CFF66F005F7284 /* MobRenderer.h */, + D5B50CD514CFF66F005F7284 /* PigRenderer.h */, + D5B50CD614CFF66F005F7284 /* SheepRenderer.h */, + D5B50CD714CFF66F005F7284 /* SpiderRenderer.h */, + D5B50CD814CFF66F005F7284 /* TntRenderer.cpp */, + D5B50CD914CFF66F005F7284 /* TntRenderer.h */, + D5B50CDA14CFF66F005F7284 /* TripodCameraRenderer.cpp */, + D5B50CDB14CFF66F005F7284 /* TripodCameraRenderer.h */, + ); + path = entity; + sourceTree = ""; + }; + D5B50CE414CFF66F005F7284 /* ptexture */ = { + isa = PBXGroup; + children = ( + D5B50CE514CFF66F005F7284 /* DynamicTexture.cpp */, + D5B50CE614CFF66F005F7284 /* DynamicTexture.h */, + ); + path = ptexture; + sourceTree = ""; + }; + D5B50CF414CFF66F005F7284 /* sound */ = { + isa = PBXGroup; + children = ( + D5B50D1114CFF66F005F7284 /* Sound.cpp */, + D5251E901539A9AF00FC82C8 /* SoundEngine.mm */, + D5B50D1214CFF66F005F7284 /* Sound.h */, + D5B50D1314CFF66F005F7284 /* SoundEngine.h */, + D5B50D1414CFF66F005F7284 /* SoundRepository.h */, + ); + path = sound; + sourceTree = ""; + }; + D5B50D1914CFF66F005F7284 /* locale */ = { + isa = PBXGroup; + children = ( + D5B86280153810BD00F3238A /* I18n.cpp */, + D5B50D1A14CFF66F005F7284 /* I18n.h */, + ); + path = locale; + sourceTree = ""; + }; + D5B50D2114CFF66F005F7284 /* nbt */ = { + isa = PBXGroup; + children = ( + D5B50D2214CFF66F005F7284 /* ByteArrayTag.h */, + D5B50D2314CFF66F005F7284 /* ByteTag.h */, + D5B50D2414CFF66F005F7284 /* CompoundTag.h */, + D5B50D2514CFF66F005F7284 /* DoubleTag.h */, + D5B50D2614CFF66F005F7284 /* EndTag.h */, + D5B50D2714CFF66F005F7284 /* FloatTag.h */, + D5B50D2814CFF66F005F7284 /* IntTag.h */, + D5B50D2914CFF66F005F7284 /* ListTag.h */, + D5B50D2A14CFF66F005F7284 /* LongTag.h */, + D5B50D2B14CFF66F005F7284 /* NbtIo.h */, + D5B50D2C14CFF66F005F7284 /* ShortTag.h */, + D5B50D2D14CFF66F005F7284 /* StringTag.h */, + D5B50D2E14CFF66F005F7284 /* Tag.cpp */, + D5B50D2F14CFF66F005F7284 /* Tag.h */, + ); + path = nbt; + sourceTree = ""; + }; + D5B50D3014CFF66F005F7284 /* network */ = { + isa = PBXGroup; + children = ( + 0419D9A0167F207B0080CB96 /* command */, + D5B50D3114CFF66F005F7284 /* ClientSideNetworkHandler.cpp */, + D5B50D3214CFF66F005F7284 /* ClientSideNetworkHandler.h */, + D5B50D3314CFF66F005F7284 /* NetEventCallback.cpp */, + D5B50D3414CFF66F005F7284 /* NetEventCallback.h */, + D5B50D3514CFF66F005F7284 /* packet */, + D5B50D4A14CFF66F005F7284 /* Packet.cpp */, + D5B50D4B14CFF66F005F7284 /* Packet.h */, + D5B50D4C14CFF66F005F7284 /* RakNetInstance.cpp */, + D5B50D4D14CFF66F005F7284 /* RakNetInstance.h */, + D5B50D4E14CFF66F005F7284 /* ServerSideNetworkHandler.cpp */, + D5B50D4F14CFF66F005F7284 /* ServerSideNetworkHandler.h */, + ); + path = network; + sourceTree = ""; + }; + D5B50D3514CFF66F005F7284 /* packet */ = { + isa = PBXGroup; + children = ( + D5B50D3614CFF66F005F7284 /* AddItemEntityPacket.h */, + D5B50D3714CFF66F005F7284 /* AddMobPacket.h */, + D5951ED01593485F0043A12A /* ContainerAckPacket.h */, + D5951ED11593485F0043A12A /* ContainerClosePacket.h */, + D5951ED21593485F0043A12A /* ContainerOpenPacket.h */, + D5951ED31593485F0043A12A /* ContainerSetContentPacket.h */, + D5951ED41593485F0043A12A /* ContainerSetDataPacket.h */, + D5951ED51593485F0043A12A /* ContainerSetSlotPacket.h */, + D5B50D3814CFF66F005F7284 /* AddPlayerPacket.h */, + D5B50D3914CFF66F005F7284 /* AnimatePacket.h */, + D5B50D3A14CFF66F005F7284 /* ChunkDataPacket.h */, + D5B50D3B14CFF66F005F7284 /* InteractPacket.h */, + D5B50D3C14CFF66F005F7284 /* LoginPacket.h */, + D5B50D3D14CFF66F005F7284 /* LoginStatusPacket.h */, + D5B50D3E14CFF66F005F7284 /* MessagePacket.h */, + D5B50D3F14CFF66F005F7284 /* MoveEntityPacket.h */, + D5B50D4014CFF66F005F7284 /* MovePlayerPacket.h */, + D5B50D4114CFF66F005F7284 /* PacketInclude.h */, + D5B50D4214CFF66F005F7284 /* PlaceBlockPacket.h */, + D5B50D4314CFF66F005F7284 /* PlayerEquipmentPacket.h */, + D5B50D4414CFF66F005F7284 /* RemoveBlockPacket.h */, + D5B50D4514CFF66F005F7284 /* RemoveEntityPacket.h */, + D5B50D4614CFF66F005F7284 /* RequestChunkPacket.h */, + D5B50D4714CFF66F005F7284 /* StartGamePacket.h */, + D5B50D4814CFF66F005F7284 /* UpdateBlockPacket.h */, + D5B50D4914CFF66F005F7284 /* UseItemPacket.h */, + ); + path = packet; + sourceTree = ""; + }; + D5B50D5414CFF66F005F7284 /* platform */ = { + isa = PBXGroup; + children = ( + D5B50D5514CFF66F005F7284 /* audio */, + D5B50D5E14CFF66F005F7284 /* CThread.cpp */, + D5B50D5F14CFF66F005F7284 /* CThread.h */, + D5B50D6014CFF66F005F7284 /* file.h */, + D5B50D6114CFF66F005F7284 /* input */, + D5B50D6A14CFF66F005F7284 /* log.h */, + D5B50D6B14CFF66F005F7284 /* time.cpp */, + D5B50D6C14CFF66F005F7284 /* time.h */, + ); + path = platform; + sourceTree = ""; + }; + D5B50D5514CFF66F005F7284 /* audio */ = { + isa = PBXGroup; + children = ( + D5B50D5614CFF66F005F7284 /* ios */, + D5B50D5914CFF66F005F7284 /* SoundSystem.h */, + D5B50D5A14CFF66F005F7284 /* SoundSystemAL.cpp */, + D5B50D5B14CFF66F005F7284 /* SoundSystemAL.h */, + ); + path = audio; + sourceTree = ""; + }; + D5B50D5614CFF66F005F7284 /* ios */ = { + isa = PBXGroup; + children = ( + ); + path = ios; + sourceTree = ""; + }; + D5B50D6114CFF66F005F7284 /* input */ = { + isa = PBXGroup; + children = ( + D5B50D6214CFF66F005F7284 /* Controller.cpp */, + D5B50D6314CFF66F005F7284 /* Controller.h */, + D5B50D6414CFF66F005F7284 /* Keyboard.cpp */, + D5B50D6514CFF66F005F7284 /* Keyboard.h */, + D5B50D6614CFF66F005F7284 /* Mouse.cpp */, + D5B50D6714CFF66F005F7284 /* Mouse.h */, + D5B50D6814CFF66F005F7284 /* Multitouch.cpp */, + D5B50D6914CFF66F005F7284 /* Multitouch.h */, + ); + path = input; + sourceTree = ""; + }; + D5B50E5B14CFF66F005F7284 /* util */ = { + isa = PBXGroup; + children = ( + D5B50E5C14CFF66F005F7284 /* CollectionUtils.h */, + D5B50E5D14CFF66F005F7284 /* DataIO.cpp */, + D5B50E5E14CFF66F005F7284 /* DataIO.h */, + D5B50E5F14CFF66F005F7284 /* IntHashMap.h */, + D5B50E6014CFF66F005F7284 /* Mth.cpp */, + D5B50E6114CFF66F005F7284 /* Mth.h */, + D5B50E6214CFF66F005F7284 /* PerfRenderer.cpp */, + D5B50E6314CFF66F005F7284 /* PerfRenderer.h */, + D5B50E6414CFF66F005F7284 /* PerfTimer.cpp */, + D5B50E6514CFF66F005F7284 /* PerfTimer.h */, + D5B50E6614CFF66F005F7284 /* RakDataIO.h */, + D5B50E6714CFF66F005F7284 /* Random.h */, + D5B50E6814CFF66F005F7284 /* SmoothFloat.h */, + D5B50E6914CFF66F005F7284 /* StringUtils.cpp */, + D5B50E6A14CFF66F005F7284 /* StringUtils.h */, + D5B50E6B14CFF66F005F7284 /* WeighedRandom.h */, + ); + path = util; + sourceTree = ""; + }; + D5B50E6C14CFF66F005F7284 /* world */ = { + isa = PBXGroup; + children = ( + D5B50E6D14CFF66F005F7284 /* Container.h */, + D5B50E6E14CFF66F005F7284 /* Direction.cpp */, + D5B50E6F14CFF66F005F7284 /* Direction.h */, + D5B50E7014CFF66F005F7284 /* entity */, + D5B50EAC14CFF66F005F7284 /* Facing.h */, + D544940C15D13E27005FA9B0 /* food */, + D5B50EAD14CFF66F005F7284 /* inventory */, + D5B50EAF14CFF66F005F7284 /* item */, + D5B50ED014CFF66F005F7284 /* level */, + D5B50F6914CFF66F005F7284 /* phys */, + D5B50F6E14CFF66F005F7284 /* Pos.h */, + ); + path = world; + sourceTree = ""; + }; + D5B50E7014CFF66F005F7284 /* entity */ = { + isa = PBXGroup; + children = ( + 0419D9B5167F22150080CB96 /* AgableMob.cpp */, + 0419D9B6167F22150080CB96 /* AgableMob.h */, + D584926914FD22EE00741128 /* ai */, + D5B50E7114CFF66F005F7284 /* animal */, + D5B50E7F14CFF66F005F7284 /* Creature.h */, + D5B50E8014CFF66F005F7284 /* Entity.cpp */, + D5D8C4B11639335000FD35F0 /* HangingEntity.cpp */, + D5D8C4B21639335000FD35F0 /* HangingEntity.h */, + D5D8C4B31639335000FD35F0 /* Painting.cpp */, + D5D8C4B41639335000FD35F0 /* Painting.h */, + D5B50E8114CFF66F005F7284 /* Entity.h */, + D5B50E8214CFF66F005F7284 /* EntityEvent.h */, + D5B50E8314CFF66F005F7284 /* EntityPos.h */, + D5B50E8414CFF66F005F7284 /* EntityRendererId.h */, + D5B50E8514CFF66F005F7284 /* EntityTypes.h */, + D5D8C4C11639341100FD35F0 /* Motive.cpp */, + D5D8C4C21639341100FD35F0 /* Motive.h */, + D5ACF18215C022B500E21C22 /* EntityFactory.cpp */, + D5ACF18315C022B500E21C22 /* EntityFactory.h */, + D5B50E8614CFF66F005F7284 /* FlyingMob.cpp */, + D5B50E8714CFF66F005F7284 /* FlyingMob.h */, + D5B50E8814CFF66F005F7284 /* item */, + D5B50E9114CFF66F005F7284 /* Mob.cpp */, + D5B50E9214CFF66F005F7284 /* Mob.h */, + D5B50E9314CFF66F005F7284 /* MobCategory.cpp */, + D5B50E9414CFF66F005F7284 /* MobCategory.h */, + D5B50E9514CFF66F005F7284 /* MobFactory.h */, + D5B50E9614CFF66F005F7284 /* monster */, + D5B50E9E14CFF66F005F7284 /* PathFinderMob.cpp */, + D5B50E9F14CFF66F005F7284 /* PathfinderMob.h */, + D5B50EA014CFF66F005F7284 /* player */, + D5B50EA814CFF66F005F7284 /* projectile */, + D5B50EAB14CFF66F005F7284 /* SynchedEntityData.h */, + D5B5118A14D03342005F7284 /* SynchedEntityData.cpp */, + ); + path = entity; + sourceTree = ""; + }; + D5B50E7114CFF66F005F7284 /* animal */ = { + isa = PBXGroup; + children = ( + D5B50E7214CFF66F005F7284 /* Animal.cpp */, + D5B50E7314CFF66F005F7284 /* Animal.h */, + D5B50E7414CFF66F005F7284 /* AnimalInclude.h */, + D5B50E7514CFF66F005F7284 /* Chicken.cpp */, + D5B50E7614CFF66F005F7284 /* Chicken.h */, + D5B50E7714CFF66F005F7284 /* Cow.cpp */, + D5B50E7814CFF66F005F7284 /* Cow.h */, + D5B50E7914CFF66F005F7284 /* Pig.cpp */, + D5B50E7A14CFF66F005F7284 /* Pig.h */, + D5B50E7B14CFF66F005F7284 /* Sheep.cpp */, + D5B50E7C14CFF66F005F7284 /* Sheep.h */, + D5B50E7D14CFF66F005F7284 /* WaterAnimal.cpp */, + D5B50E7E14CFF66F005F7284 /* WaterAnimal.h */, + ); + path = animal; + sourceTree = ""; + }; + D5B50E8814CFF66F005F7284 /* item */ = { + isa = PBXGroup; + children = ( + D5B50E8914CFF66F005F7284 /* FallingTile.cpp */, + D5B50E8A14CFF66F005F7284 /* FallingTile.h */, + D5B50E8B14CFF66F005F7284 /* ItemEntity.cpp */, + D5B50E8C14CFF66F005F7284 /* ItemEntity.h */, + D5B50E8D14CFF66F005F7284 /* PrimedTnt.cpp */, + D5B50E8E14CFF66F005F7284 /* PrimedTnt.h */, + D5B50E8F14CFF66F005F7284 /* TripodCamera.cpp */, + D5B50E9014CFF66F005F7284 /* TripodCamera.h */, + ); + path = item; + sourceTree = ""; + }; + D5B50E9614CFF66F005F7284 /* monster */ = { + isa = PBXGroup; + children = ( + D5ACF16D15C0220D00E21C22 /* Creeper.cpp */, + D5ACF16E15C0220D00E21C22 /* Creeper.h */, + D5ACF16F15C0220D00E21C22 /* Monster.cpp */, + D5ACF17015C0220D00E21C22 /* Monster.h */, + D5ACF17115C0220D00E21C22 /* MonsterInclude.h */, + D5D8C4991639305100FD35F0 /* PigZombie.cpp */, + D5D8C49A1639305100FD35F0 /* PigZombie.h */, + D5ACF17215C0220D00E21C22 /* Skeleton.cpp */, + D5ACF17315C0220D00E21C22 /* Skeleton.h */, + D5ACF17415C0220D00E21C22 /* Spider.cpp */, + D5ACF17515C0220D00E21C22 /* Spider.h */, + D5ACF17615C0220D00E21C22 /* Zombie.cpp */, + D5ACF17715C0220D00E21C22 /* Zombie.h */, + ); + path = monster; + sourceTree = ""; + }; + D5B50EA014CFF66F005F7284 /* player */ = { + isa = PBXGroup; + children = ( + D5B50EA114CFF66F005F7284 /* Abilities.h */, + D5B50EA214CFF66F005F7284 /* Inventory.cpp */, + D5B50EA314CFF66F005F7284 /* Inventory.h */, + D5B50EA514CFF66F005F7284 /* InventorySlotManager.h */, + D5B50EA614CFF66F005F7284 /* Player.cpp */, + D5B50EA714CFF66F005F7284 /* Player.h */, + ); + path = player; + sourceTree = ""; + }; + D5B50EA814CFF66F005F7284 /* projectile */ = { + isa = PBXGroup; + children = ( + D5B17ED115E226F50056E751 /* Snowball.h */, + D5B17ED215E226F50056E751 /* Throwable.cpp */, + D5B17ED315E226F50056E751 /* Throwable.h */, + D5B17ED415E226F50056E751 /* ThrownEgg.h */, + D5B50EA914CFF66F005F7284 /* Arrow.cpp */, + D5B50EAA14CFF66F005F7284 /* Arrow.h */, + ); + path = projectile; + sourceTree = ""; + }; + D5B50EAD14CFF66F005F7284 /* inventory */ = { + isa = PBXGroup; + children = ( + D5A6F8D415B45EE500819B71 /* ContainerMenu.cpp */, + D5A6F8D515B45EE500819B71 /* ContainerMenu.h */, + D5D381F015A1A1CF00B6C50E /* FillingContainer.cpp */, + D5D381F115A1A1CF00B6C50E /* FillingContainer.h */, + D5951EF315934AC50043A12A /* BaseContainerMenu.cpp */, + D5951EF415934AC50043A12A /* BaseContainerMenu.h */, + D5951EF515934AC50043A12A /* FurnaceMenu.cpp */, + D5951EF615934AC50043A12A /* FurnaceMenu.h */, + D5B50EAE14CFF66F005F7284 /* CraftingContainer.h */, + ); + path = inventory; + sourceTree = ""; + }; + D5B50EAF14CFF66F005F7284 /* item */ = { + isa = PBXGroup; + children = ( + 0413970516A82E1E008A9F1A /* ArmorItem.cpp */, + 0413970616A82E1E008A9F1A /* ArmorItem.h */, + D54493FB15D13C59005FA9B0 /* BedItem.cpp */, + D54493FC15D13C59005FA9B0 /* BedItem.h */, + D5B50EB014CFF66F005F7284 /* BowItem.h */, + D5B50EB114CFF66F005F7284 /* CameraItem.h */, + D5B50EB214CFF66F005F7284 /* crafting */, + D5B50EBC14CFF66F005F7284 /* DiggerItem.h */, + D5B50EBD14CFF66F005F7284 /* DoorItem.h */, + D5B50EBE14CFF66F005F7284 /* EggItem.h */, + D54493FF15D13C93005FA9B0 /* BowlFoodItem.h */, + D544940015D13C93005FA9B0 /* ClothTileItem.h */, + D544940115D13C93005FA9B0 /* CoalItem.h */, + D544940215D13C93005FA9B0 /* FoodItem.h */, + D5B5119314DEA2EF005F7284 /* DyePowderItem.cpp */, + D5D8C4C5163934BB00FD35F0 /* HangingEntityItem.cpp */, + D5D8C4C6163934BB00FD35F0 /* HangingEntityItem.h */, + D54493F615D13C35005FA9B0 /* HoeItem.cpp */, + D54493F715D13C35005FA9B0 /* HoeItem.h */, + D54493F815D13C35005FA9B0 /* SeedItem.h */, + D5B5119614DEA304005F7284 /* DyePowderItem.h */, + D5B50EBF14CFF66F005F7284 /* HatchetItem.cpp */, + D5B50EC014CFF66F005F7284 /* HatchetItem.h */, + D5B50EC114CFF66F005F7284 /* Item.cpp */, + D5B50EC214CFF66F005F7284 /* Item.h */, + D5B50EC314CFF66F005F7284 /* ItemInclude.h */, + D5B50EC414CFF66F005F7284 /* ItemInstance.cpp */, + D5B50EC514CFF66F005F7284 /* ItemInstance.h */, + D5B50EC614CFF66F005F7284 /* PickaxeItem.cpp */, + D5B50EC714CFF66F005F7284 /* PickaxeItem.h */, + D5B50EC814CFF66F005F7284 /* ShearsItem.h */, + D5B50EC914CFF66F005F7284 /* ShovelItem.cpp */, + D5B50ECA14CFF66F005F7284 /* ShovelItem.h */, + D5B50ECB14CFF66F005F7284 /* SnowballItem.h */, + D5B50ECC14CFF66F005F7284 /* TileItem.h */, + D5B50ECD14CFF66F005F7284 /* TilePlanterItem.h */, + D5B50ECE14CFF66F005F7284 /* TreeTileItem.h */, + D5B50ECF14CFF66F005F7284 /* WeaponItem.h */, + ); + path = item; + sourceTree = ""; + }; + D5B50EB214CFF66F005F7284 /* crafting */ = { + isa = PBXGroup; + children = ( + 0413971216A82EB9008A9F1A /* ArmorRecipes.cpp */, + 0413971316A82EB9008A9F1A /* ArmorRecipes.h */, + 0413971416A82EB9008A9F1A /* OreRecipes.h */, + D5B50EB314CFF66F005F7284 /* Recipe.h */, + D5B8628E1538187400F3238A /* Recipe.cpp */, + D5B50EB414CFF66F005F7284 /* Recipes.cpp */, + D5B50EB514CFF66F005F7284 /* Recipes.h */, + D5951EC4159347EE0043A12A /* FurnaceRecipes.cpp */, + D5951EC5159347EE0043A12A /* FurnaceRecipes.h */, + D5951EC6159347EE0043A12A /* OreRecipes.cpp */, + D5B50EB614CFF66F005F7284 /* ShapedRecipe.h */, + D5B8628C1538187400F3238A /* ClothDyeRecipes.h */, + D5B8628D1538187400F3238A /* FoodRecipes.h */, + D5B8628F1538187400F3238A /* RecipeCategory.h */, + D5B862901538187400F3238A /* StructureRecipes.cpp */, + D5B862911538187400F3238A /* StructureRecipes.h */, + D5B50EB714CFF66F005F7284 /* ShapelessRecipe.h */, + D5B50EB814CFF66F005F7284 /* ToolRecipes.cpp */, + D5B50EB914CFF66F005F7284 /* ToolRecipes.h */, + D5B50EBA14CFF66F005F7284 /* WeaponRecipes.cpp */, + D5B50EBB14CFF66F005F7284 /* WeaponRecipes.h */, + ); + path = crafting; + sourceTree = ""; + }; + D5B50ED014CFF66F005F7284 /* level */ = { + isa = PBXGroup; + children = ( + D5B50ED114CFF66F005F7284 /* biome */, + D5B50EDC14CFF66F005F7284 /* chunk */, + D5B50EE614CFF66F005F7284 /* ChunkPos.h */, + D5B50EE714CFF66F005F7284 /* dimension */, + D5B50EEC14CFF66F005F7284 /* Explosion.cpp */, + D5B50EED14CFF66F005F7284 /* Explosion.h */, + D5B50EEE14CFF66F005F7284 /* Level.cpp */, + D5B50EEF14CFF66F005F7284 /* Level.h */, + D5B50EF014CFF66F005F7284 /* LevelConstants.h */, + D5B50EF114CFF66F005F7284 /* levelgen */, + D5B50F1214CFF66F005F7284 /* LevelListener.h */, + D5B50F1314CFF66F005F7284 /* LevelSettings.h */, + D5B50F1414CFF66F005F7284 /* LevelSource.h */, + D5B50F1514CFF66F005F7284 /* LightLayer.cpp */, + D5B50F1614CFF66F005F7284 /* LightLayer.h */, + D5B50F1714CFF66F005F7284 /* LightUpdate.cpp */, + D5B50F1814CFF66F005F7284 /* LightUpdate.h */, + D5B50F1914CFF66F005F7284 /* material */, + D5B50F1F14CFF66F005F7284 /* MobSpawner.cpp */, + D5B50F2014CFF66F005F7284 /* MobSpawner.h */, + D5B50F2114CFF66F005F7284 /* pathfinder */, + D5B50F2614CFF66F005F7284 /* Region.cpp */, + D5B50F2714CFF66F005F7284 /* Region.h */, + D5B50F2814CFF66F005F7284 /* storage */, + D5B50F3614CFF66F005F7284 /* TickNextTickData.cpp */, + D5B50F3714CFF66F005F7284 /* TickNextTickData.h */, + D5B50F3814CFF66F005F7284 /* tile */, + D5B50F6814CFF66F005F7284 /* TilePos.h */, + ); + path = level; + sourceTree = ""; + }; + D5B50ED114CFF66F005F7284 /* biome */ = { + isa = PBXGroup; + children = ( + D5B50ED214CFF66F005F7284 /* Biome.cpp */, + D5B50ED314CFF66F005F7284 /* Biome.h */, + D5B50ED414CFF66F005F7284 /* BiomeInclude.h */, + D5B50ED514CFF66F005F7284 /* BiomeSource.cpp */, + D5B50ED614CFF66F005F7284 /* BiomeSource.h */, + D5B50ED714CFF66F005F7284 /* FlatBiome.h */, + D5B50ED814CFF66F005F7284 /* ForestBiome.h */, + D5B50ED914CFF66F005F7284 /* RainforestBiome.h */, + D5B50EDA14CFF66F005F7284 /* SwampBiome.h */, + D5B50EDB14CFF66F005F7284 /* TaigaBiome.h */, + ); + path = biome; + sourceTree = ""; + }; + D5B50EDC14CFF66F005F7284 /* chunk */ = { + isa = PBXGroup; + children = ( + D5B50EDD14CFF66F005F7284 /* ChunkCache.h */, + D5B50EDE14CFF66F005F7284 /* ChunkSource.h */, + D5B50EDF14CFF66F005F7284 /* DataLayer.h */, + D5B50EE014CFF66F005F7284 /* EmptyLevelChunk.h */, + D5B50EE114CFF66F005F7284 /* LevelChunk.cpp */, + D5B50EE214CFF66F005F7284 /* LevelChunk.h */, + D5B50EE314CFF66F005F7284 /* storage */, + ); + path = chunk; + sourceTree = ""; + }; + D5B50EE314CFF66F005F7284 /* storage */ = { + isa = PBXGroup; + children = ( + D5B50EE414CFF66F005F7284 /* ChunkStorage.h */, + D5B50EE514CFF66F005F7284 /* MemoryChunkStorage.h */, + ); + path = storage; + sourceTree = ""; + }; + D5B50EE714CFF66F005F7284 /* dimension */ = { + isa = PBXGroup; + children = ( + D5B50EE814CFF66F005F7284 /* Dimension.cpp */, + D5B50EE914CFF66F005F7284 /* Dimension.h */, + ); + path = dimension; + sourceTree = ""; + }; + D5B50EF114CFF66F005F7284 /* levelgen */ = { + isa = PBXGroup; + children = ( + D5B50EF214CFF66F005F7284 /* CanyonFeature.cpp */, + D5B50EF314CFF66F005F7284 /* CanyonFeature.h */, + D5B50EF414CFF66F005F7284 /* DungeonFeature.cpp */, + D5B50EF514CFF66F005F7284 /* DungeonFeature.h */, + D5B50EF614CFF66F005F7284 /* feature */, + D5B50F0414CFF66F005F7284 /* LargeCaveFeature.cpp */, + D5B50F0514CFF66F005F7284 /* LargeCaveFeature.h */, + D5B50F0614CFF66F005F7284 /* LargeFeature.cpp */, + D5B50F0714CFF66F005F7284 /* LargeFeature.h */, + D5B50F0814CFF66F005F7284 /* RandomLevelSource.cpp */, + D5B50F0914CFF66F005F7284 /* RandomLevelSource.h */, + D5B50F0A14CFF66F005F7284 /* synth */, + D5B50F1114CFF66F005F7284 /* TownFeature.h */, + ); + path = levelgen; + sourceTree = ""; + }; + D5B50EF614CFF66F005F7284 /* feature */ = { + isa = PBXGroup; + children = ( + D5B50EF714CFF66F005F7284 /* BirchFeature.h */, + D5B50EF814CFF66F005F7284 /* CactusFeature.h */, + D5B50EF914CFF66F005F7284 /* ClayFeature.h */, + D5B50EFA14CFF66F005F7284 /* Feature.h */, + D5B50EFB14CFF66F005F7284 /* FeatureInclude.h */, + D5951EF015934A2D0043A12A /* Feature.cpp */, + D5B50EFC14CFF66F005F7284 /* FlowerFeature.h */, + D5B50EFD14CFF66F005F7284 /* LakeFeature.h */, + D5B50EFE14CFF66F005F7284 /* OreFeature.h */, + D5B50EFF14CFF66F005F7284 /* PineFeature.h */, + D5B50F0014CFF66F005F7284 /* ReedsFeature.h */, + D5B50F0114CFF66F005F7284 /* SpringFeature.h */, + D5B50F0214CFF66F005F7284 /* SpruceFeature.h */, + D5B50F0314CFF66F005F7284 /* TreeFeature.h */, + ); + path = feature; + sourceTree = ""; + }; + D5B50F0A14CFF66F005F7284 /* synth */ = { + isa = PBXGroup; + children = ( + D5B50F0B14CFF66F005F7284 /* ImprovedNoise.cpp */, + D5B50F0C14CFF66F005F7284 /* ImprovedNoise.h */, + D5B50F0D14CFF66F005F7284 /* PerlinNoise.cpp */, + D5B50F0E14CFF66F005F7284 /* PerlinNoise.h */, + D5B50F0F14CFF66F005F7284 /* Synth.cpp */, + D5B50F1014CFF66F005F7284 /* Synth.h */, + ); + path = synth; + sourceTree = ""; + }; + D5B50F1914CFF66F005F7284 /* material */ = { + isa = PBXGroup; + children = ( + D5B50F1A14CFF66F005F7284 /* DecorationMaterial.h */, + D5B50F1B14CFF66F005F7284 /* GasMaterial.h */, + D5B50F1C14CFF66F005F7284 /* LiquidMaterial.h */, + D5B50F1D14CFF66F005F7284 /* Material.cpp */, + D5B50F1E14CFF66F005F7284 /* Material.h */, + ); + path = material; + sourceTree = ""; + }; + D5B50F2114CFF66F005F7284 /* pathfinder */ = { + isa = PBXGroup; + children = ( + D584928814FD2FAF00741128 /* Path.cpp */, + D5B50F2214CFF66F005F7284 /* BinaryHeap.h */, + D5B50F2314CFF66F005F7284 /* Node.h */, + D5B50F2414CFF66F005F7284 /* Path.h */, + D5B50F2514CFF66F005F7284 /* PathFinder.h */, + ); + path = pathfinder; + sourceTree = ""; + }; + D5B50F2814CFF66F005F7284 /* storage */ = { + isa = PBXGroup; + children = ( + D5B50F2914CFF66F005F7284 /* ExternalFileLevelStorage.cpp */, + D5B50F2A14CFF66F005F7284 /* ExternalFileLevelStorage.h */, + D5B5119014DEA2B7005F7284 /* LevelData.cpp */, + D5B50F2B14CFF66F005F7284 /* ExternalFileLevelStorageSource.cpp */, + D5B50F2C14CFF66F005F7284 /* ExternalFileLevelStorageSource.h */, + D544941215D13E5A005FA9B0 /* FolderMethods.cpp */, + D5B50F2D14CFF66F005F7284 /* FolderMethods.h */, + D5B50F2E14CFF66F005F7284 /* LevelData.h */, + D544941515D13EE3005FA9B0 /* LevelStorageSource.cpp */, + D5B50F2F14CFF66F005F7284 /* LevelStorage.h */, + D5B50F3014CFF66F005F7284 /* LevelStorageSource.h */, + D5B50F3114CFF66F005F7284 /* MemoryLevelStorage.h */, + D5B50F3214CFF66F005F7284 /* MemoryLevelStorageSource.h */, + D5B17EDF15E260910056E751 /* MoveFolder.h */, + D5B17EE015E260910056E751 /* MoveFolder.mm */, + D5B50F3314CFF66F005F7284 /* PlayerData.h */, + D5B50F3414CFF66F005F7284 /* RegionFile.cpp */, + D5B50F3514CFF66F005F7284 /* RegionFile.h */, + ); + path = storage; + sourceTree = ""; + }; + D5B50F3814CFF66F005F7284 /* tile */ = { + isa = PBXGroup; + children = ( + 0413971616A82EF5008A9F1A /* StairTile.cpp */, + 0400453516A41236003EB6FA /* HeavyTile.cpp */, + 0400453616A41236003EB6FA /* HeavyTile.h */, + D5B50F3914CFF66F005F7284 /* BookshelfTile.h */, + D5B50F3A14CFF66F005F7284 /* Bush.h */, + D5B50F3B14CFF66F005F7284 /* CactusTile.h */, + D54493EA15D13BF0005FA9B0 /* BedTile.cpp */, + D54493EB15D13BF0005FA9B0 /* BedTile.h */, + D54493EC15D13BF0005FA9B0 /* CropTile.cpp */, + D54493ED15D13BF0005FA9B0 /* CropTile.h */, + D54493EE15D13BF0005FA9B0 /* GrassTile.cpp */, + D5B50F3C14CFF66F005F7284 /* ClayTile.h */, + D5B50F3D14CFF66F005F7284 /* ClothTile.h */, + D5B50F3E14CFF66F005F7284 /* DirtTile.h */, + D5B17EDB15E227670056E751 /* TrapDoorTile.cpp */, + D5B17EDC15E227670056E751 /* TrapDoorTile.h */, + D5D381F515A1A21800B6C50E /* EntityTile.cpp */, + D5D381F615A1A21800B6C50E /* EntityTile.h */, + D5B50F3F14CFF66F005F7284 /* DoorTile.cpp */, + D5B50F4014CFF66F005F7284 /* DoorTile.h */, + D5B50F4114CFF66F005F7284 /* entity */, + D5B50F4314CFF66F005F7284 /* FarmTile.h */, + D5B50F4414CFF66F005F7284 /* FenceGateTile.h */, + D5B50F4514CFF66F005F7284 /* FenceTile.h */, + D5B50F4614CFF66F005F7284 /* FireTile.h */, + D5B50F4714CFF66F005F7284 /* GlassTile.h */, + D5B50F4814CFF66F005F7284 /* GrassTile.h */, + D5951EE1159349000043A12A /* FurnaceTile.cpp */, + D5951EE2159349000043A12A /* FurnaceTile.h */, + D5B50F4914CFF66F005F7284 /* GravelTile.h */, + D5D8C4A1163930E600FD35F0 /* NetherReactor.cpp */, + D5D8C4A2163930E600FD35F0 /* NetherReactor.h */, + D5D8C4C91639362F00FD35F0 /* NetherReactorPattern.cpp */, + D5D8C4CA1639362F00FD35F0 /* NetherReactorPattern.h */, + D5B50F4A14CFF66F005F7284 /* HalfTransparentTile.h */, + D5D3820F15A1A2C200B6C50E /* ChestTile.cpp */, + D5D3821015A1A2C200B6C50E /* ChestTile.h */, + D5D8C49D163930D600FD35F0 /* MelonTile.cpp */, + D5D8C49E163930D600FD35F0 /* MelonTile.h */, + D5B50F4B14CFF66F005F7284 /* IceTile.h */, + D5B50F4C14CFF66F005F7284 /* InvisibleTile.h */, + D5B50F4D14CFF66F005F7284 /* LadderTile.h */, + D5B50F4E14CFF66F005F7284 /* LeafTile.h */, + D5B50F4F14CFF66F005F7284 /* LevelEvent.h */, + D5B50F5014CFF66F005F7284 /* LiquidTile.h */, + D5B50F5114CFF66F005F7284 /* LiquidTileDynamic.h */, + D5B50F5214CFF66F005F7284 /* LiquidTileStatic.h */, + D5B50F5314CFF66F005F7284 /* MetalTile.h */, + D5B50F5414CFF66F005F7284 /* ObsidianTile.h */, + D5D8C48316392FF000FD35F0 /* LightGemTile.cpp */, + D5D8C48416392FF000FD35F0 /* LightGemTile.h */, + D5D8C48516392FF000FD35F0 /* Mushroom.cpp */, + D5D8C48616392FF000FD35F0 /* Mushroom.h */, + D5D8C48716392FF000FD35F0 /* SignTile.h */, + D5D8C48816392FF000FD35F0 /* StemTile.cpp */, + D5D8C48916392FF000FD35F0 /* StemTile.h */, + D5B50F5514CFF66F005F7284 /* OreTile.h */, + D5B50F5614CFF66F005F7284 /* RedStoneOreTile.h */, + D5B50F5714CFF66F005F7284 /* ReedTile.h */, + D5B50F5814CFF66F005F7284 /* SandStoneTile.h */, + D544941815D13F06005FA9B0 /* TallGrass.cpp */, + D544941915D13F06005FA9B0 /* TallGrass.h */, + D5B50F5B14CFF66F005F7284 /* SnowTile.h */, + D5B50F5C14CFF66F005F7284 /* StairTile.h */, + D5B50F5D14CFF66F005F7284 /* StoneSlabTile.cpp */, + D5B50F5E14CFF66F005F7284 /* StoneSlabTile.h */, + D5B50F5F14CFF66F005F7284 /* StoneTile.h */, + D5B50F6014CFF66F005F7284 /* Tile.cpp */, + D5B50F6114CFF66F005F7284 /* Tile.h */, + D5B50F6214CFF66F005F7284 /* TileInclude.h */, + D5B50F6314CFF66F005F7284 /* TntTile.h */, + D5B50F6414CFF66F005F7284 /* TopSnowTile.h */, + D5B50F6514CFF66F005F7284 /* TorchTile.h */, + D5B50F6614CFF66F005F7284 /* TransparentTile.h */, + D5B50F6714CFF66F005F7284 /* TreeTile.h */, + ); + path = tile; + sourceTree = ""; + }; + D5B50F4114CFF66F005F7284 /* entity */ = { + isa = PBXGroup; + children = ( + D5D381FA15A1A22E00B6C50E /* ChestTileEntity.h */, + D5D381FB15A1A22E00B6C50E /* TileEntityRendererId.h */, + D5D3821315A1A5D100B6C50E /* ChestTileEntity.cpp */, + D5D8C4911639301700FD35F0 /* NetherReactorTileEntity.cpp */, + D5D8C4921639301700FD35F0 /* NetherReactorTileEntity.h */, + D5D8C4931639301700FD35F0 /* SignTileEntity.cpp */, + D5D8C4941639301700FD35F0 /* SignTileEntity.h */, + D5951EE5159349100043A12A /* FurnaceTileEntity.cpp */, + D5951EE6159349100043A12A /* FurnaceTileEntity.h */, + D5951EE7159349100043A12A /* TileEntity.cpp */, + D5B50F4214CFF66F005F7284 /* TileEntity.h */, + ); + path = entity; + sourceTree = ""; + }; + D5B50F6914CFF66F005F7284 /* phys */ = { + isa = PBXGroup; + children = ( + D5B50F6A14CFF66F005F7284 /* AABB.h */, + D5B50F6B14CFF66F005F7284 /* HitResult.cpp */, + D5B50F6C14CFF66F005F7284 /* HitResult.h */, + D5B50F6D14CFF66F005F7284 /* Vec3.h */, + ); + path = phys; + sourceTree = ""; + }; + D5BFCF111450BAD500A443B0 /* Fonts */ = { + isa = PBXGroup; + children = ( + D591200E1460041300AE2E58 /* minecraft.ttf */, + ); + name = Fonts; + sourceTree = ""; + }; + D5CF9C37144C225000E4244F = { + isa = PBXGroup; + children = ( + D5E1BA9A1451C8A0007DCC4F /* Default@2x.png */, + 9D959AFF16036BEE00E23A6F /* Default-568h@2x.png */, + D5F07744145EF79B00EC30FB /* Default-Landscape~ipad.png */, + D5F3B7E41454930400D25470 /* InAppSettings.bundle */, + D5E1BA981451C881007DCC4F /* Default.png */, + D5FA9A30144DB43500C449B2 /* Dialogs */, + D572D3AA144C69F100E67862 /* Resources */, + D5CF9C50144C225000E4244F /* Project */, + D5CF9C45144C225000E4244F /* Frameworks */, + D5CF9C43144C225000E4244F /* Products */, + D5B50C1614CFF66F005F7284 /* src */, + ); + sourceTree = ""; + }; + D5CF9C43144C225000E4244F /* Products */ = { + isa = PBXGroup; + children = ( + D5CF9C42144C225000E4244F /* minecraftpe.app */, + D58BB5B5146A0B920002C9F5 /* minecraftpe.demo.app */, + ); + name = Products; + sourceTree = ""; + }; + D5CF9C45144C225000E4244F /* Frameworks */ = { + isa = PBXGroup; + children = ( + D5F3B7A114548E7900D25470 /* InAppSettingsKit */, + D5F07738145EB1F300EC30FB /* AVFoundation.framework */, + D5F07736145DE04200EC30FB /* OpenAL.framework */, + D572D3DF144CB23200E67862 /* AudioToolbox.framework */, + D5CF9C46144C225000E4244F /* UIKit.framework */, + D5CF9C48144C225000E4244F /* Foundation.framework */, + D5CF9C4A144C225000E4244F /* CoreGraphics.framework */, + D5CF9C4C144C225000E4244F /* QuartzCore.framework */, + D5CF9C4E144C225000E4244F /* OpenGLES.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D5CF9C50144C225000E4244F /* Project */ = { + isa = PBXGroup; + children = ( + D51DC74114592B8A00E3D761 /* PVRTexture.h */, + D51DC74214592B8A00E3D761 /* PVRTexture.m */, + D5CF9C59144C225000E4244F /* minecraftpeAppDelegate.h */, + D5CF9C5A144C225000E4244F /* minecraftpeAppDelegate.mm */, + D5CF9C5C144C225000E4244F /* MainWindow.xib */, + D5CF9C63144C225000E4244F /* EAGLView.h */, + D5CF9C64144C225000E4244F /* EAGLView.m */, + D5CF9C66144C225000E4244F /* minecraftpeViewController.h */, + D5CFA01C144C453900E4244F /* minecraftpeViewController.mm */, + D5CF9C69144C225000E4244F /* minecraftpeViewController.xib */, + D5CF9C51144C225000E4244F /* Supporting Files */, + 0419D9B8167F2A720080CB96 /* ShowKeyboardView.h */, + 0419D9B9167F2A720080CB96 /* ShowKeyboardView.mm */, + ); + name = Project; + path = minecraftpe; + sourceTree = ""; + }; + D5CF9C51144C225000E4244F /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D51A8B01146A200000E5D720 /* minecraftpedemo-info.plist */, + D5CF9C52144C225000E4244F /* minecraftpe-Info.plist */, + D5CF9C53144C225000E4244F /* InfoPlist.strings */, + D5CF9C56144C225000E4244F /* main.mm */, + D5CF9C58144C225000E4244F /* minecraftpe-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + D5D381FE15A1A26000B6C50E /* tileentity */ = { + isa = PBXGroup; + children = ( + D5D8C4A9163932B900FD35F0 /* SignRenderer.cpp */, + D5D8C4AA163932B900FD35F0 /* SignRenderer.h */, + D5D381FF15A1A26000B6C50E /* ChestRenderer.cpp */, + D5D3820015A1A26000B6C50E /* ChestRenderer.h */, + D5D3820115A1A26000B6C50E /* TileEntityRenderDispatcher.cpp */, + D5D3820215A1A26000B6C50E /* TileEntityRenderDispatcher.h */, + D5D3820315A1A26000B6C50E /* TileEntityRenderer.cpp */, + D5D3820415A1A26000B6C50E /* TileEntityRenderer.h */, + ); + path = tileentity; + sourceTree = ""; + }; + D5D9617714E6AE0A001D1B9D /* icons */ = { + isa = PBXGroup; + children = ( + D5D961AC14E6AF0C001D1B9D /* Icon_lite.png */, + D5D961AD14E6AF0C001D1B9D /* Icon-72_lite.png */, + D5D961AE14E6AF0C001D1B9D /* Icon-72.png */, + D5D961AF14E6AF0C001D1B9D /* Icon-Small_lite.png */, + D5D961B014E6AF0C001D1B9D /* Icon-Small-50_lite.png */, + D5D961B114E6AF0C001D1B9D /* Icon-Small-50.png */, + D5D961B214E6AF0C001D1B9D /* Icon-Small.png */, + D5D961B314E6AF0C001D1B9D /* Icon-Small@2x_lite.png */, + D5D961B414E6AF0C001D1B9D /* Icon-Small@2x.png */, + D5D961B514E6AF0C001D1B9D /* Icon.png */, + D5D961B614E6AF0C001D1B9D /* Icon@2x_lite.png */, + D5D961B714E6AF0C001D1B9D /* Icon@2x.png */, + ); + path = icons; + sourceTree = ""; + }; + D5F0773A145EF5E100EC30FB /* ios */ = { + isa = PBXGroup; + children = ( + D5D9617714E6AE0A001D1B9D /* icons */, + D54954EB14E38FFC00685A35 /* dialog2 */, + D591200A145FEB8C00AE2E58 /* bg128.png */, + D5912008145FE9E600AE2E58 /* bg64.png */, + D5F0773B145EF5E100EC30FB /* dialog */, + ); + name = ios; + path = ../../data/app/ios; + sourceTree = ""; + }; + D5F0773B145EF5E100EC30FB /* dialog */ = { + isa = PBXGroup; + children = ( + D549552314E3EA0B00685A35 /* ipad */, + D5D43CCA146AFD9D002ED842 /* save_0_3.png */, + D5D43CCB146AFD9D002ED842 /* save_0.png */, + D5D43CCC146AFD9E002ED842 /* save_1_3.png */, + D5D43CCD146AFD9E002ED842 /* save_1.png */, + ); + path = dialog; + sourceTree = ""; + }; + D5F3B7A114548E7900D25470 /* InAppSettingsKit */ = { + isa = PBXGroup; + children = ( + D5F3B7A214548E7900D25470 /* Controllers */, + D5F3B7A914548E7900D25470 /* Models */, + D5F3B7B414548E7900D25470 /* Views */, + D5F3B7C314548E7900D25470 /* Xibs */, + ); + name = InAppSettingsKit; + path = ../lib_projects/InAppSettingsKit; + sourceTree = ""; + }; + D5F3B7A214548E7900D25470 /* Controllers */ = { + isa = PBXGroup; + children = ( + D5F3B7A314548E7900D25470 /* IASKAppSettingsViewController.h */, + D5F3B7A414548E7900D25470 /* IASKAppSettingsViewController.m */, + D5F3B7A514548E7900D25470 /* IASKAppSettingsWebViewController.h */, + D5F3B7A614548E7900D25470 /* IASKAppSettingsWebViewController.m */, + D5F3B7A714548E7900D25470 /* IASKSpecifierValuesViewController.h */, + D5F3B7A814548E7900D25470 /* IASKSpecifierValuesViewController.m */, + ); + path = Controllers; + sourceTree = ""; + }; + D5F3B7A914548E7900D25470 /* Models */ = { + isa = PBXGroup; + children = ( + D5F3B7AA14548E7900D25470 /* IASKSettingsReader.h */, + D5F3B7AB14548E7900D25470 /* IASKSettingsReader.m */, + D5F3B7AC14548E7900D25470 /* IASKSettingsStore.h */, + D5F3B7AD14548E7900D25470 /* IASKSettingsStore.m */, + D5F3B7AE14548E7900D25470 /* IASKSettingsStoreFile.h */, + D5F3B7AF14548E7900D25470 /* IASKSettingsStoreFile.m */, + D5F3B7B014548E7900D25470 /* IASKSettingsStoreUserDefaults.h */, + D5F3B7B114548E7900D25470 /* IASKSettingsStoreUserDefaults.m */, + D5F3B7B214548E7900D25470 /* IASKSpecifier.h */, + D5F3B7B314548E7900D25470 /* IASKSpecifier.m */, + ); + path = Models; + sourceTree = ""; + }; + D5F3B7B414548E7900D25470 /* Views */ = { + isa = PBXGroup; + children = ( + D5F3B7B514548E7900D25470 /* IASKPSSliderSpecifierViewCell.h */, + D5F3B7B614548E7900D25470 /* IASKPSSliderSpecifierViewCell.m */, + D5F3B7B714548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.h */, + D5F3B7B814548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m */, + D5F3B7B914548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.h */, + D5F3B7BA14548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m */, + D5F3B7BB14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.h */, + D5F3B7BC14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m */, + D5F3B7BD14548E7900D25470 /* IASKSlider.h */, + D5F3B7BE14548E7900D25470 /* IASKSlider.m */, + D5F3B7BF14548E7900D25470 /* IASKSwitch.h */, + D5F3B7C014548E7900D25470 /* IASKSwitch.m */, + D5F3B7C114548E7900D25470 /* IASKTextField.h */, + D5F3B7C214548E7900D25470 /* IASKTextField.m */, + ); + path = Views; + sourceTree = ""; + }; + D5F3B7C314548E7900D25470 /* Xibs */ = { + isa = PBXGroup; + children = ( + D5F3B7C414548E7900D25470 /* IASKAppSettingsView.xib */, + D5F3B7C514548E7900D25470 /* IASKAppSettingsWebView.xib */, + D5F3B7C614548E7900D25470 /* IASKPSSliderSpecifierViewCell.xib */, + D5F3B7C714548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.xib */, + D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */, + D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */, + ); + path = Xibs; + sourceTree = ""; + }; + D5FA9A30144DB43500C449B2 /* Dialogs */ = { + isa = PBXGroup; + children = ( + D593325416077BBB00E26FC5 /* RenameMPWorld_iphone5.xib */, + D5D43CC0146AF4B4002ED842 /* RenameMPWorld_ipad.xib */, + D5D43CC1146AF4B4002ED842 /* RenameMPWorld_iphone.xib */, + D5D43CC2146AF4B4002ED842 /* RenameMPWorldViewController.h */, + D5D43CC3146AF4B4002ED842 /* RenameMPWorldViewController.mm */, + D593755014611CF200543145 /* CreateNewWorld_iphone5.xib */, + D5BFCF1A14513FF400A443B0 /* CreateNewWorld_ipad.xib */, + 9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */, + D5A55E4714500EDE00A7571B /* CreateNewWorldViewController.h */, + D5A55E4814500EDE00A7571B /* CreateNewWorldViewController.mm */, + D5A55E4A1450353800A7571B /* IDialog.h */, + D5A55E4B145036AE00A7571B /* BaseDialogController.h */, + D5A55E4C145036AE00A7571B /* BaseDialogController.mm */, + ); + name = Dialogs; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + D58BB46C146A0B910002C9F5 /* minecraftpe.demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = D58BB5B2146A0B920002C9F5 /* Build configuration list for PBXNativeTarget "minecraftpe.demo" */; + buildPhases = ( + D58BB46D146A0B910002C9F5 /* Sources */, + D58BB552146A0B920002C9F5 /* Frameworks */, + D58BB55B146A0B920002C9F5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = minecraftpe.demo; + productName = minecraftpe; + productReference = D58BB5B5146A0B920002C9F5 /* minecraftpe.demo.app */; + productType = "com.apple.product-type.application"; + }; + D5CF9C41144C225000E4244F /* minecraftpe */ = { + isa = PBXNativeTarget; + buildConfigurationList = D5CF9C6E144C225000E4244F /* Build configuration list for PBXNativeTarget "minecraftpe" */; + buildPhases = ( + D5CF9C3E144C225000E4244F /* Sources */, + D5CF9C3F144C225000E4244F /* Frameworks */, + D5CF9C40144C225000E4244F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = minecraftpe; + productName = minecraftpe; + productReference = D5CF9C42144C225000E4244F /* minecraftpe.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D5CF9C39144C225000E4244F /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0420; + }; + buildConfigurationList = D5CF9C3C144C225000E4244F /* Build configuration list for PBXProject "minecraftpe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D5CF9C37144C225000E4244F; + productRefGroup = D5CF9C43144C225000E4244F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D5CF9C41144C225000E4244F /* minecraftpe */, + D58BB46C146A0B910002C9F5 /* minecraftpe.demo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D58BB55B146A0B920002C9F5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D58BB55C146A0B920002C9F5 /* InfoPlist.strings in Resources */, + D58BB55D146A0B920002C9F5 /* MainWindow.xib in Resources */, + D58BB55E146A0B920002C9F5 /* minecraftpeViewController.xib in Resources */, + D58BB57A146A0B920002C9F5 /* default8.png in Resources */, + D58BB57B146A0B920002C9F5 /* background.png in Resources */, + D58BB57E146A0B920002C9F5 /* default_world.png in Resources */, + D58BB581146A0B920002C9F5 /* gui.png in Resources */, + D58BB582146A0B920002C9F5 /* gui_blocks.png in Resources */, + D58BB583146A0B920002C9F5 /* icons.png in Resources */, + D58BB584146A0B920002C9F5 /* items.png in Resources */, + D58BB58A146A0B920002C9F5 /* title.png in Resources */, + D58BB58B146A0B920002C9F5 /* touchgui.png in Resources */, + D58BB58C146A0B920002C9F5 /* camera.png in Resources */, + D58BB58D146A0B920002C9F5 /* char.png in Resources */, + D58BB58E146A0B920002C9F5 /* particles.png in Resources */, + D58BB58F146A0B920002C9F5 /* terrain.png in Resources */, + D58BB590146A0B920002C9F5 /* bg32.png in Resources */, + D58BB591146A0B920002C9F5 /* CreateNewWorld_ipad.xib in Resources */, + D58BB592146A0B920002C9F5 /* Default@2x.png in Resources */, + D58BB593146A0B920002C9F5 /* Default.png in Resources */, + D58BB594146A0B920002C9F5 /* IASKAppSettingsView.xib in Resources */, + D58BB595146A0B920002C9F5 /* IASKAppSettingsWebView.xib in Resources */, + D58BB596146A0B920002C9F5 /* IASKPSSliderSpecifierViewCell.xib in Resources */, + D58BB597146A0B920002C9F5 /* IASKPSTextFieldSpecifierViewCell.xib in Resources */, + D58BB598146A0B920002C9F5 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */, + D58BB599146A0B920002C9F5 /* IASKSpecifierValuesView.xib in Resources */, + D58BB59A146A0B920002C9F5 /* InAppSettings.bundle in Resources */, + D58BB59B146A0B920002C9F5 /* itemframe.png in Resources */, + D58BB59C146A0B920002C9F5 /* terrain.pvr in Resources */, + D58BB59D146A0B920002C9F5 /* terrain.pvrtc in Resources */, + D58BB59E146A0B920002C9F5 /* terrain.pvr4 in Resources */, + D58BB5A3146A0B920002C9F5 /* Default-Landscape~ipad.png in Resources */, + D58BB5A8146A0B920002C9F5 /* bg64.png in Resources */, + D58BB5A9146A0B920002C9F5 /* bg128.png in Resources */, + D58BB5AA146A0B920002C9F5 /* minecraft.ttf in Resources */, + D58BB5AB146A0B920002C9F5 /* CreateNewWorld_iphone5.xib in Resources */, + D5D43CC5146AF4B4002ED842 /* RenameMPWorld_ipad.xib in Resources */, + D5D43CC7146AF4B4002ED842 /* RenameMPWorld_iphone.xib in Resources */, + D5D43CCF146AFD9E002ED842 /* save_0_3.png in Resources */, + D5D43CD1146AFD9E002ED842 /* save_0.png in Resources */, + D5D43CD3146AFD9E002ED842 /* save_1_3.png in Resources */, + D5D43CD5146AFD9E002ED842 /* save_1.png in Resources */, + D5B50A5014CFF492005F7284 /* chicken.png in Resources */, + D5B50A5214CFF492005F7284 /* cow.png in Resources */, + D5B50A5414CFF492005F7284 /* creeper.png in Resources */, + D5B50A5614CFF492005F7284 /* pig.png in Resources */, + D5B50A5814CFF492005F7284 /* sheep_fur.png in Resources */, + D5B50A5A14CFF492005F7284 /* sheep.png in Resources */, + D5B50A5C14CFF492005F7284 /* skeleton.png in Resources */, + D5B50A5E14CFF492005F7284 /* spider.png in Resources */, + D5B50A6014CFF492005F7284 /* zombie.png in Resources */, + D54954F914E38FFC00685A35 /* cancel_0_1.png in Resources */, + D54954FB14E38FFC00685A35 /* cancel_0_3.png in Resources */, + D54954FD14E38FFC00685A35 /* cancel_1_1.png in Resources */, + D54954FF14E38FFC00685A35 /* cancel_1_3.png in Resources */, + D549550114E38FFC00685A35 /* create_0_1.png in Resources */, + D549550314E38FFC00685A35 /* create_0_3.png in Resources */, + D549550514E38FFC00685A35 /* create_1_1.png in Resources */, + D549550714E38FFC00685A35 /* create_1_3.png in Resources */, + D549550914E38FFC00685A35 /* creative_0_3.png in Resources */, + D549550B14E38FFC00685A35 /* survival_0_3.png in Resources */, + D549550D14E38FFC00685A35 /* worldname.png in Resources */, + D549550F14E38FFC00685A35 /* worldname_3.png in Resources */, + D549551614E3D86D00685A35 /* worldname_ipad_3.png in Resources */, + D549551814E3D86D00685A35 /* worldname_ipad.png in Resources */, + D549551A14E3D86D00685A35 /* worldname_iphone_3.png in Resources */, + D549551C14E3D86D00685A35 /* worldname_iphone.png in Resources */, + D549552014E3DC4400685A35 /* creative_1_3.png in Resources */, + D549552214E3DC4400685A35 /* survival_1_3.png in Resources */, + D549552E14E3EA0B00685A35 /* cancel_0_4.png in Resources */, + D549553014E3EA0B00685A35 /* cancel_1_4.png in Resources */, + D549553214E3EA0B00685A35 /* create_0_4.png in Resources */, + D549553414E3EA0B00685A35 /* create_1_4.png in Resources */, + D549553614E3EA0B00685A35 /* creative_1_4.png in Resources */, + D549553A14E3EA0B00685A35 /* survival_1_4.png in Resources */, + D549553E14E3EA0B00685A35 /* worldname_ipad_4.png in Resources */, + D549554214E3EAC100685A35 /* creative_0_4.png in Resources */, + D549554414E3EAC100685A35 /* survival_0_4.png in Resources */, + D5D961B914E6AF0C001D1B9D /* Icon_lite.png in Resources */, + D5D961BB14E6AF0C001D1B9D /* Icon-72_lite.png in Resources */, + D5D961BD14E6AF0C001D1B9D /* Icon-72.png in Resources */, + D5D961BF14E6AF0C001D1B9D /* Icon-Small_lite.png in Resources */, + D5D961C114E6AF0C001D1B9D /* Icon-Small-50_lite.png in Resources */, + D5D961C314E6AF0C001D1B9D /* Icon-Small-50.png in Resources */, + D5D961C514E6AF0C001D1B9D /* Icon-Small.png in Resources */, + D5D961C714E6AF0C001D1B9D /* Icon-Small@2x_lite.png in Resources */, + D5D961C914E6AF0C001D1B9D /* Icon-Small@2x.png in Resources */, + D5D961CB14E6AF0C001D1B9D /* Icon.png in Resources */, + D5D961CD14E6AF0C001D1B9D /* Icon@2x_lite.png in Resources */, + D5D961CF14E6AF0C001D1B9D /* Icon@2x.png in Resources */, + D5251DBC1538192700FC82C8 /* CMakeLists.txt in Resources */, + D5251E7115381D0500FC82C8 /* spritesheet.png in Resources */, + D5251E75153823DC00FC82C8 /* en_US.lang in Resources */, + D5ACF1E215C03DBF00E21C22 /* fallbig1.m4a in Resources */, + D5ACF1E415C03DBF00E21C22 /* fallbig2.m4a in Resources */, + D5ACF1E615C03DBF00E21C22 /* fallsmall.m4a in Resources */, + D5ACF1E815C03DBF00E21C22 /* chicken1.m4a in Resources */, + D5ACF1EA15C03DBF00E21C22 /* chicken2.m4a in Resources */, + D5ACF1EC15C03DBF00E21C22 /* chicken3.m4a in Resources */, + D5ACF1EE15C03DBF00E21C22 /* chickenhurt1.m4a in Resources */, + D5ACF1F015C03DBF00E21C22 /* chickenhurt2.m4a in Resources */, + D5ACF1F215C03DBF00E21C22 /* chickenplop.m4a in Resources */, + D5ACF1F415C03DBF00E21C22 /* cow1.m4a in Resources */, + D5ACF1F615C03DBF00E21C22 /* cow2.m4a in Resources */, + D5ACF1F815C03DBF00E21C22 /* cow3.m4a in Resources */, + D5ACF1FA15C03DBF00E21C22 /* cow4.m4a in Resources */, + D5ACF1FC15C03DBF00E21C22 /* cowhurt1.m4a in Resources */, + D5ACF1FE15C03DBF00E21C22 /* cowhurt2.m4a in Resources */, + D5ACF20015C03DBF00E21C22 /* cowhurt3.m4a in Resources */, + D5ACF20215C03DBF00E21C22 /* pig1.m4a in Resources */, + D5ACF20415C03DBF00E21C22 /* pig2.m4a in Resources */, + D5ACF20615C03DBF00E21C22 /* pig3.m4a in Resources */, + D5ACF20815C03DBF00E21C22 /* pigdeath.m4a in Resources */, + D5ACF20A15C03DBF00E21C22 /* sheep1.m4a in Resources */, + D5ACF20C15C03DBF00E21C22 /* sheep2.m4a in Resources */, + D5ACF20E15C03DBF00E21C22 /* sheep3.m4a in Resources */, + D5ACF21015C03DBF00E21C22 /* skeleton1.m4a in Resources */, + D5ACF21215C03DBF00E21C22 /* skeleton2.m4a in Resources */, + D5ACF21415C03DBF00E21C22 /* skeleton3.m4a in Resources */, + D5ACF21615C03DBF00E21C22 /* skeletonhurt1.m4a in Resources */, + D5ACF21815C03DBF00E21C22 /* skeletonhurt2.m4a in Resources */, + D5ACF21A15C03DBF00E21C22 /* skeletonhurt3.m4a in Resources */, + D5ACF21C15C03DBF00E21C22 /* skeletonhurt4.m4a in Resources */, + D5ACF21E15C03DBF00E21C22 /* spider1.m4a in Resources */, + D5ACF22015C03DBF00E21C22 /* spider2.m4a in Resources */, + D5ACF22215C03DBF00E21C22 /* spider3.m4a in Resources */, + D5ACF22415C03DBF00E21C22 /* spider4.m4a in Resources */, + D5ACF22615C03DBF00E21C22 /* zombie1.m4a in Resources */, + D5ACF22815C03DBF00E21C22 /* zombie2.m4a in Resources */, + D5ACF22A15C03DBF00E21C22 /* zombie3.m4a in Resources */, + D5ACF22C15C03DBF00E21C22 /* zombiedeath.m4a in Resources */, + D5ACF22E15C03DBF00E21C22 /* zombiehurt1.m4a in Resources */, + D5ACF23015C03DBF00E21C22 /* zombiehurt2.m4a in Resources */, + D5ACF23215C03DBF00E21C22 /* bow.m4a in Resources */, + D5ACF23415C03DBF00E21C22 /* bowhit1.m4a in Resources */, + D5ACF23615C03DBF00E21C22 /* bowhit2.m4a in Resources */, + D5ACF23815C03DBF00E21C22 /* bowhit3.m4a in Resources */, + D5ACF23A15C03DBF00E21C22 /* bowhit4.m4a in Resources */, + D5ACF23C15C03DBF00E21C22 /* click.m4a in Resources */, + D5ACF23E15C03DBF00E21C22 /* door_close.m4a in Resources */, + D5ACF24015C03DBF00E21C22 /* door_open.m4a in Resources */, + D5ACF24215C03DBF00E21C22 /* glass1.m4a in Resources */, + D5ACF24415C03DBF00E21C22 /* glass2.m4a in Resources */, + D5ACF24615C03DBF00E21C22 /* glass3.m4a in Resources */, + D5ACF24815C03DBF00E21C22 /* hurt.m4a in Resources */, + D5ACF24A15C03DBF00E21C22 /* pop.m4a in Resources */, + D5ACF24C15C03DBF00E21C22 /* splash.m4a in Resources */, + D5ACF24E15C03DBF00E21C22 /* water.m4a in Resources */, + D5ACF25015C03DBF00E21C22 /* cloth1.m4a in Resources */, + D5ACF25215C03DBF00E21C22 /* cloth2.m4a in Resources */, + D5ACF25415C03DBF00E21C22 /* cloth3.m4a in Resources */, + D5ACF25615C03DBF00E21C22 /* cloth4.m4a in Resources */, + D5ACF25815C03DBF00E21C22 /* grass1.m4a in Resources */, + D5ACF25A15C03DBF00E21C22 /* grass2.m4a in Resources */, + D5ACF25C15C03DBF00E21C22 /* grass3.m4a in Resources */, + D5ACF25E15C03DBF00E21C22 /* grass4.m4a in Resources */, + D5ACF26015C03DBF00E21C22 /* gravel2.m4a in Resources */, + D5ACF26215C03DBF00E21C22 /* gravel3.m4a in Resources */, + D5ACF26415C03DBF00E21C22 /* gravel4.m4a in Resources */, + D5ACF26615C03DBF00E21C22 /* ladder1.m4a in Resources */, + D5ACF26815C03DBF00E21C22 /* ladder2.m4a in Resources */, + D5ACF26A15C03DBF00E21C22 /* ladder3.m4a in Resources */, + D5ACF26C15C03DBF00E21C22 /* ladder4.m4a in Resources */, + D5ACF26E15C03DBF00E21C22 /* sand1.m4a in Resources */, + D5ACF27015C03DBF00E21C22 /* sand2.m4a in Resources */, + D5ACF27215C03DBF00E21C22 /* sand3.m4a in Resources */, + D5ACF27415C03DBF00E21C22 /* sand4.m4a in Resources */, + D5ACF27615C03DBF00E21C22 /* snow1.m4a in Resources */, + D5ACF27815C03DBF00E21C22 /* snow2.m4a in Resources */, + D5ACF27A15C03DBF00E21C22 /* snow3.m4a in Resources */, + D5ACF27C15C03DBF00E21C22 /* snow4.m4a in Resources */, + D5ACF27E15C03DBF00E21C22 /* stone1.m4a in Resources */, + D5ACF28015C03DBF00E21C22 /* stone2.m4a in Resources */, + D5ACF28215C03DBF00E21C22 /* stone3.m4a in Resources */, + D5ACF28415C03DBF00E21C22 /* stone4.m4a in Resources */, + D5ACF28615C03DBF00E21C22 /* wood1.m4a in Resources */, + D5ACF28815C03DBF00E21C22 /* wood2.m4a in Resources */, + D5ACF28A15C03DBF00E21C22 /* wood3.m4a in Resources */, + D5ACF28C15C03DBF00E21C22 /* wood4.m4a in Resources */, + D5ACF28F15C03E8800E21C22 /* arrows.png in Resources */, + D5B26C2415E3CE51003785EA /* creeper1.m4a in Resources */, + D5B26C2615E3CE51003785EA /* creeper2.m4a in Resources */, + D5B26C2815E3CE51003785EA /* creeper3.m4a in Resources */, + D5B26C2A15E3CE51003785EA /* creeper4.m4a in Resources */, + D5B26C2C15E3CE51003785EA /* creeperdeath.m4a in Resources */, + D5B26C2E15E3CE51003785EA /* spiderdeath.m4a in Resources */, + D5B26C3415E3CED3003785EA /* eat1.m4a in Resources */, + D5B26C3615E3CED3003785EA /* eat2.m4a in Resources */, + D5B26C3815E3CED3003785EA /* eat3.m4a in Resources */, + D5B26C3A15E3CED3003785EA /* fuse.m4a in Resources */, + 9D293CE816071C08000305C8 /* CreateNewWorld_iphone.xib in Resources */, + 9D293CEC160720D6000305C8 /* worldname_iphone5_3.png in Resources */, + D593325616077BBB00E26FC5 /* RenameMPWorld_iphone5.xib in Resources */, + D598BD6E163ED06400A36438 /* explode.m4a in Resources */, + D598BD7B163ED09800A36438 /* zpig1.m4a in Resources */, + D598BD7D163ED09800A36438 /* zpig2.m4a in Resources */, + D598BD7F163ED09800A36438 /* zpig3.m4a in Resources */, + D598BD81163ED09800A36438 /* zpig4.m4a in Resources */, + D598BD83163ED09800A36438 /* zpigangry1.m4a in Resources */, + D598BD85163ED09800A36438 /* zpigangry2.m4a in Resources */, + D598BD87163ED09800A36438 /* zpigangry3.m4a in Resources */, + D598BD89163ED09800A36438 /* zpigangry4.m4a in Resources */, + D598BD8B163ED09800A36438 /* zpigdeath.m4a in Resources */, + D598BD8D163ED09800A36438 /* zpighurt1.m4a in Resources */, + D598BD8F163ED09800A36438 /* zpighurt2.m4a in Resources */, + D598BD92163ED0DB00A36438 /* sign.png in Resources */, + D598BD95163ED14000A36438 /* pigzombie.png in Resources */, + D598BD99163ED26500A36438 /* kz.png in Resources */, + D598BD9E164157D500A36438 /* minecon140.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D5CF9C40144C225000E4244F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D506D3E2161288BD0099FA65 /* Default-568h@2x.png in Resources */, + D5CF9C55144C225000E4244F /* InfoPlist.strings in Resources */, + D5CF9C5E144C225000E4244F /* MainWindow.xib in Resources */, + D5CF9C6B144C225000E4244F /* minecraftpeViewController.xib in Resources */, + D572D3C9144C6A1400E67862 /* default8.png in Resources */, + D572D3CA144C6A1400E67862 /* background.png in Resources */, + D572D3CD144C6A1400E67862 /* default_world.png in Resources */, + D572D3D0144C6A1400E67862 /* gui.png in Resources */, + D572D3D1144C6A1400E67862 /* gui_blocks.png in Resources */, + D572D3D2144C6A1400E67862 /* icons.png in Resources */, + D572D3D3144C6A1400E67862 /* items.png in Resources */, + D572D3D9144C6A1400E67862 /* title.png in Resources */, + D572D3DA144C6A1400E67862 /* touchgui.png in Resources */, + D572D3DB144C6A1400E67862 /* camera.png in Resources */, + D572D3DC144C6A1400E67862 /* char.png in Resources */, + D572D3DD144C6A1400E67862 /* particles.png in Resources */, + D572D3DE144C6A1400E67862 /* terrain.png in Resources */, + D5A55E4F1450761600A7571B /* bg32.png in Resources */, + D5BFCF1B14513FF400A443B0 /* CreateNewWorld_ipad.xib in Resources */, + D5E1BA9B1451C8A0007DCC4F /* Default@2x.png in Resources */, + D5E1BA9F1451CA2F007DCC4F /* Default.png in Resources */, + D5F3B7D914548E7900D25470 /* IASKAppSettingsView.xib in Resources */, + D5F3B7DA14548E7900D25470 /* IASKAppSettingsWebView.xib in Resources */, + D5F3B7DB14548E7900D25470 /* IASKPSSliderSpecifierViewCell.xib in Resources */, + D5F3B7DC14548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.xib in Resources */, + D5F3B7DD14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */, + D5F3B7DE14548E7900D25470 /* IASKSpecifierValuesView.xib in Resources */, + D5F3B7E51454930400D25470 /* InAppSettings.bundle in Resources */, + D51DC73614581D4E00E3D761 /* itemframe.png in Resources */, + D55B201814595370002D9366 /* terrain.pvr in Resources */, + D55B252B14598227002D9366 /* terrain.pvrtc in Resources */, + D5F0772314599DC700EC30FB /* terrain.pvr4 in Resources */, + D5F07745145EF7A000EC30FB /* Default-Landscape~ipad.png in Resources */, + D5912009145FE9E600AE2E58 /* bg64.png in Resources */, + D591200B145FEB8C00AE2E58 /* bg128.png in Resources */, + D591200F1460041300AE2E58 /* minecraft.ttf in Resources */, + D593755114611CF300543145 /* CreateNewWorld_iphone5.xib in Resources */, + D5D43CC4146AF4B4002ED842 /* RenameMPWorld_ipad.xib in Resources */, + D5D43CC6146AF4B4002ED842 /* RenameMPWorld_iphone.xib in Resources */, + D5D43CCE146AFD9E002ED842 /* save_0_3.png in Resources */, + D5D43CD0146AFD9E002ED842 /* save_0.png in Resources */, + D5D43CD2146AFD9E002ED842 /* save_1_3.png in Resources */, + D5D43CD4146AFD9E002ED842 /* save_1.png in Resources */, + D5B50A4F14CFF492005F7284 /* chicken.png in Resources */, + D5B50A5114CFF492005F7284 /* cow.png in Resources */, + D5B50A5314CFF492005F7284 /* creeper.png in Resources */, + D5B50A5514CFF492005F7284 /* pig.png in Resources */, + D5B50A5714CFF492005F7284 /* sheep_fur.png in Resources */, + D5B50A5914CFF492005F7284 /* sheep.png in Resources */, + D5B50A5B14CFF492005F7284 /* skeleton.png in Resources */, + D5B50A5D14CFF492005F7284 /* spider.png in Resources */, + D5B50A5F14CFF492005F7284 /* zombie.png in Resources */, + D54954F814E38FFC00685A35 /* cancel_0_1.png in Resources */, + D54954FA14E38FFC00685A35 /* cancel_0_3.png in Resources */, + D54954FC14E38FFC00685A35 /* cancel_1_1.png in Resources */, + D54954FE14E38FFC00685A35 /* cancel_1_3.png in Resources */, + D549550014E38FFC00685A35 /* create_0_1.png in Resources */, + D549550214E38FFC00685A35 /* create_0_3.png in Resources */, + D549550414E38FFC00685A35 /* create_1_1.png in Resources */, + D549550614E38FFC00685A35 /* create_1_3.png in Resources */, + D549550814E38FFC00685A35 /* creative_0_3.png in Resources */, + D549550A14E38FFC00685A35 /* survival_0_3.png in Resources */, + D549550C14E38FFC00685A35 /* worldname.png in Resources */, + D549550E14E38FFC00685A35 /* worldname_3.png in Resources */, + D549551514E3D86D00685A35 /* worldname_ipad_3.png in Resources */, + D549551714E3D86D00685A35 /* worldname_ipad.png in Resources */, + D549551914E3D86D00685A35 /* worldname_iphone_3.png in Resources */, + D549551B14E3D86D00685A35 /* worldname_iphone.png in Resources */, + D549551F14E3DC4400685A35 /* creative_1_3.png in Resources */, + D549552114E3DC4400685A35 /* survival_1_3.png in Resources */, + D549552D14E3EA0B00685A35 /* cancel_0_4.png in Resources */, + D549552F14E3EA0B00685A35 /* cancel_1_4.png in Resources */, + D549553114E3EA0B00685A35 /* create_0_4.png in Resources */, + D549553314E3EA0B00685A35 /* create_1_4.png in Resources */, + D549553514E3EA0B00685A35 /* creative_1_4.png in Resources */, + D549553914E3EA0B00685A35 /* survival_1_4.png in Resources */, + D549553D14E3EA0B00685A35 /* worldname_ipad_4.png in Resources */, + D549554114E3EAC100685A35 /* creative_0_4.png in Resources */, + D549554314E3EAC100685A35 /* survival_0_4.png in Resources */, + D5D961B814E6AF0C001D1B9D /* Icon_lite.png in Resources */, + D5D961BA14E6AF0C001D1B9D /* Icon-72_lite.png in Resources */, + D5D961BC14E6AF0C001D1B9D /* Icon-72.png in Resources */, + D5D961BE14E6AF0C001D1B9D /* Icon-Small_lite.png in Resources */, + D5D961C014E6AF0C001D1B9D /* Icon-Small-50_lite.png in Resources */, + D5D961C214E6AF0C001D1B9D /* Icon-Small-50.png in Resources */, + D5D961C414E6AF0C001D1B9D /* Icon-Small.png in Resources */, + D5D961C614E6AF0C001D1B9D /* Icon-Small@2x_lite.png in Resources */, + D5D961C814E6AF0C001D1B9D /* Icon-Small@2x.png in Resources */, + D5D961CA14E6AF0C001D1B9D /* Icon.png in Resources */, + D5D961CC14E6AF0C001D1B9D /* Icon@2x_lite.png in Resources */, + D5D961CE14E6AF0C001D1B9D /* Icon@2x.png in Resources */, + D5251DBB1538192700FC82C8 /* CMakeLists.txt in Resources */, + D5251E7015381D0500FC82C8 /* spritesheet.png in Resources */, + D5251E74153823DC00FC82C8 /* en_US.lang in Resources */, + D5ACF1E115C03DBF00E21C22 /* fallbig1.m4a in Resources */, + D5ACF1E315C03DBF00E21C22 /* fallbig2.m4a in Resources */, + D5ACF1E515C03DBF00E21C22 /* fallsmall.m4a in Resources */, + D5ACF1E715C03DBF00E21C22 /* chicken1.m4a in Resources */, + D5ACF1E915C03DBF00E21C22 /* chicken2.m4a in Resources */, + D5ACF1EB15C03DBF00E21C22 /* chicken3.m4a in Resources */, + D5ACF1ED15C03DBF00E21C22 /* chickenhurt1.m4a in Resources */, + D5ACF1EF15C03DBF00E21C22 /* chickenhurt2.m4a in Resources */, + D5ACF1F115C03DBF00E21C22 /* chickenplop.m4a in Resources */, + D5ACF1F315C03DBF00E21C22 /* cow1.m4a in Resources */, + D5ACF1F515C03DBF00E21C22 /* cow2.m4a in Resources */, + D5ACF1F715C03DBF00E21C22 /* cow3.m4a in Resources */, + D5ACF1F915C03DBF00E21C22 /* cow4.m4a in Resources */, + D5ACF1FB15C03DBF00E21C22 /* cowhurt1.m4a in Resources */, + D5ACF1FD15C03DBF00E21C22 /* cowhurt2.m4a in Resources */, + D5ACF1FF15C03DBF00E21C22 /* cowhurt3.m4a in Resources */, + D5ACF20115C03DBF00E21C22 /* pig1.m4a in Resources */, + D5ACF20315C03DBF00E21C22 /* pig2.m4a in Resources */, + D5ACF20515C03DBF00E21C22 /* pig3.m4a in Resources */, + D5ACF20715C03DBF00E21C22 /* pigdeath.m4a in Resources */, + D5ACF20915C03DBF00E21C22 /* sheep1.m4a in Resources */, + D5ACF20B15C03DBF00E21C22 /* sheep2.m4a in Resources */, + D5ACF20D15C03DBF00E21C22 /* sheep3.m4a in Resources */, + D5ACF20F15C03DBF00E21C22 /* skeleton1.m4a in Resources */, + D5ACF21115C03DBF00E21C22 /* skeleton2.m4a in Resources */, + D5ACF21315C03DBF00E21C22 /* skeleton3.m4a in Resources */, + D5ACF21515C03DBF00E21C22 /* skeletonhurt1.m4a in Resources */, + D5ACF21715C03DBF00E21C22 /* skeletonhurt2.m4a in Resources */, + D5ACF21915C03DBF00E21C22 /* skeletonhurt3.m4a in Resources */, + D5ACF21B15C03DBF00E21C22 /* skeletonhurt4.m4a in Resources */, + D5ACF21D15C03DBF00E21C22 /* spider1.m4a in Resources */, + D5ACF21F15C03DBF00E21C22 /* spider2.m4a in Resources */, + D5ACF22115C03DBF00E21C22 /* spider3.m4a in Resources */, + D5ACF22315C03DBF00E21C22 /* spider4.m4a in Resources */, + D5ACF22515C03DBF00E21C22 /* zombie1.m4a in Resources */, + D5ACF22715C03DBF00E21C22 /* zombie2.m4a in Resources */, + D5ACF22915C03DBF00E21C22 /* zombie3.m4a in Resources */, + D5ACF22B15C03DBF00E21C22 /* zombiedeath.m4a in Resources */, + D5ACF22D15C03DBF00E21C22 /* zombiehurt1.m4a in Resources */, + D5ACF22F15C03DBF00E21C22 /* zombiehurt2.m4a in Resources */, + D5ACF23115C03DBF00E21C22 /* bow.m4a in Resources */, + D5ACF23315C03DBF00E21C22 /* bowhit1.m4a in Resources */, + D5ACF23515C03DBF00E21C22 /* bowhit2.m4a in Resources */, + D5ACF23715C03DBF00E21C22 /* bowhit3.m4a in Resources */, + D5ACF23915C03DBF00E21C22 /* bowhit4.m4a in Resources */, + D5ACF23B15C03DBF00E21C22 /* click.m4a in Resources */, + D5ACF23D15C03DBF00E21C22 /* door_close.m4a in Resources */, + D5ACF23F15C03DBF00E21C22 /* door_open.m4a in Resources */, + D5ACF24115C03DBF00E21C22 /* glass1.m4a in Resources */, + D5ACF24315C03DBF00E21C22 /* glass2.m4a in Resources */, + D5ACF24515C03DBF00E21C22 /* glass3.m4a in Resources */, + D5ACF24715C03DBF00E21C22 /* hurt.m4a in Resources */, + D5ACF24915C03DBF00E21C22 /* pop.m4a in Resources */, + D5ACF24B15C03DBF00E21C22 /* splash.m4a in Resources */, + D5ACF24D15C03DBF00E21C22 /* water.m4a in Resources */, + D5ACF24F15C03DBF00E21C22 /* cloth1.m4a in Resources */, + D5ACF25115C03DBF00E21C22 /* cloth2.m4a in Resources */, + D5ACF25315C03DBF00E21C22 /* cloth3.m4a in Resources */, + D5ACF25515C03DBF00E21C22 /* cloth4.m4a in Resources */, + D5ACF25715C03DBF00E21C22 /* grass1.m4a in Resources */, + D5ACF25915C03DBF00E21C22 /* grass2.m4a in Resources */, + D5ACF25B15C03DBF00E21C22 /* grass3.m4a in Resources */, + D5ACF25D15C03DBF00E21C22 /* grass4.m4a in Resources */, + D5ACF25F15C03DBF00E21C22 /* gravel2.m4a in Resources */, + D5ACF26115C03DBF00E21C22 /* gravel3.m4a in Resources */, + D5ACF26315C03DBF00E21C22 /* gravel4.m4a in Resources */, + D5ACF26515C03DBF00E21C22 /* ladder1.m4a in Resources */, + D5ACF26715C03DBF00E21C22 /* ladder2.m4a in Resources */, + D5ACF26915C03DBF00E21C22 /* ladder3.m4a in Resources */, + D5ACF26B15C03DBF00E21C22 /* ladder4.m4a in Resources */, + D5ACF26D15C03DBF00E21C22 /* sand1.m4a in Resources */, + D5ACF26F15C03DBF00E21C22 /* sand2.m4a in Resources */, + D5ACF27115C03DBF00E21C22 /* sand3.m4a in Resources */, + D5ACF27315C03DBF00E21C22 /* sand4.m4a in Resources */, + D5ACF27515C03DBF00E21C22 /* snow1.m4a in Resources */, + D5ACF27715C03DBF00E21C22 /* snow2.m4a in Resources */, + D5ACF27915C03DBF00E21C22 /* snow3.m4a in Resources */, + D5ACF27B15C03DBF00E21C22 /* snow4.m4a in Resources */, + D5ACF27D15C03DBF00E21C22 /* stone1.m4a in Resources */, + D5ACF27F15C03DBF00E21C22 /* stone2.m4a in Resources */, + D5ACF28115C03DBF00E21C22 /* stone3.m4a in Resources */, + D5ACF28315C03DBF00E21C22 /* stone4.m4a in Resources */, + D5ACF28515C03DBF00E21C22 /* wood1.m4a in Resources */, + D5ACF28715C03DBF00E21C22 /* wood2.m4a in Resources */, + D5ACF28915C03DBF00E21C22 /* wood3.m4a in Resources */, + D5ACF28B15C03DBF00E21C22 /* wood4.m4a in Resources */, + D5ACF28E15C03E8800E21C22 /* arrows.png in Resources */, + D5B26C2315E3CE51003785EA /* creeper1.m4a in Resources */, + D5B26C2515E3CE51003785EA /* creeper2.m4a in Resources */, + D5B26C2715E3CE51003785EA /* creeper3.m4a in Resources */, + D5B26C2915E3CE51003785EA /* creeper4.m4a in Resources */, + D5B26C2B15E3CE51003785EA /* creeperdeath.m4a in Resources */, + D5B26C2D15E3CE51003785EA /* spiderdeath.m4a in Resources */, + D5B26C3315E3CED3003785EA /* eat1.m4a in Resources */, + D5B26C3515E3CED3003785EA /* eat2.m4a in Resources */, + D5B26C3715E3CED3003785EA /* eat3.m4a in Resources */, + D5B26C3915E3CED3003785EA /* fuse.m4a in Resources */, + 9D293CE716071C08000305C8 /* CreateNewWorld_iphone.xib in Resources */, + 9D293CEB160720D6000305C8 /* worldname_iphone5_3.png in Resources */, + D593325516077BBB00E26FC5 /* RenameMPWorld_iphone5.xib in Resources */, + D598BD6D163ED06400A36438 /* explode.m4a in Resources */, + D598BD7A163ED09800A36438 /* zpig1.m4a in Resources */, + D598BD7C163ED09800A36438 /* zpig2.m4a in Resources */, + D598BD7E163ED09800A36438 /* zpig3.m4a in Resources */, + D598BD80163ED09800A36438 /* zpig4.m4a in Resources */, + D598BD82163ED09800A36438 /* zpigangry1.m4a in Resources */, + D598BD84163ED09800A36438 /* zpigangry2.m4a in Resources */, + D598BD86163ED09800A36438 /* zpigangry3.m4a in Resources */, + D598BD88163ED09800A36438 /* zpigangry4.m4a in Resources */, + D598BD8A163ED09800A36438 /* zpigdeath.m4a in Resources */, + D598BD8C163ED09800A36438 /* zpighurt1.m4a in Resources */, + D598BD8E163ED09800A36438 /* zpighurt2.m4a in Resources */, + D598BD91163ED0DB00A36438 /* sign.png in Resources */, + D598BD94163ED14000A36438 /* pigzombie.png in Resources */, + D598BD98163ED26500A36438 /* kz.png in Resources */, + D598BD9D164157D500A36438 /* minecon140.png in Resources */, + 04004533169EE72E003EB6FA /* clouds.png in Resources */, + 0425EBA016A94D14000C7483 /* chain_1.png in Resources */, + 0425EBA116A94D14000C7483 /* chain_2.png in Resources */, + 0425EBA216A94D14000C7483 /* cloth_1.png in Resources */, + 0425EBA316A94D14000C7483 /* cloth_2.png in Resources */, + 0425EBA416A94D14000C7483 /* diamond_1.png in Resources */, + 0425EBA516A94D14000C7483 /* diamond_2.png in Resources */, + 0425EBA616A94D14000C7483 /* gold_1.png in Resources */, + 0425EBA716A94D14000C7483 /* gold_2.png in Resources */, + 0425EBA816A94D14000C7483 /* iron_1.png in Resources */, + 0425EBA916A94D14000C7483 /* iron_2.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D58BB46D146A0B910002C9F5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D58BB46E146A0B910002C9F5 /* main.mm in Sources */, + D58BB46F146A0B910002C9F5 /* minecraftpeAppDelegate.mm in Sources */, + D58BB470146A0B910002C9F5 /* EAGLView.m in Sources */, + D58BB471146A0B910002C9F5 /* minecraftpeViewController.mm in Sources */, + D58BB53E146A0B910002C9F5 /* CreateNewWorldViewController.mm in Sources */, + D58BB53F146A0B910002C9F5 /* BaseDialogController.mm in Sources */, + D58BB540146A0B910002C9F5 /* IASKAppSettingsViewController.m in Sources */, + D58BB541146A0B910002C9F5 /* IASKAppSettingsWebViewController.m in Sources */, + D58BB542146A0B910002C9F5 /* IASKSpecifierValuesViewController.m in Sources */, + D58BB543146A0B910002C9F5 /* IASKSettingsReader.m in Sources */, + D58BB544146A0B910002C9F5 /* IASKSettingsStore.m in Sources */, + D58BB545146A0B910002C9F5 /* IASKSettingsStoreFile.m in Sources */, + D58BB546146A0B910002C9F5 /* IASKSettingsStoreUserDefaults.m in Sources */, + D58BB547146A0B910002C9F5 /* IASKSpecifier.m in Sources */, + D58BB548146A0B910002C9F5 /* IASKPSSliderSpecifierViewCell.m in Sources */, + D58BB549146A0B910002C9F5 /* IASKPSTextFieldSpecifierViewCell.m in Sources */, + D58BB54A146A0B910002C9F5 /* IASKPSTitleValueSpecifierViewCell.m in Sources */, + D58BB54B146A0B910002C9F5 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */, + D58BB54C146A0B910002C9F5 /* IASKSlider.m in Sources */, + D58BB54D146A0B910002C9F5 /* IASKSwitch.m in Sources */, + D58BB54E146A0B910002C9F5 /* IASKTextField.m in Sources */, + D58BB550146A0B910002C9F5 /* PVRTexture.m in Sources */, + D5D43CC9146AF4B4002ED842 /* RenameMPWorldViewController.mm in Sources */, + D5B50F7014CFF670005F7284 /* AppPlatform_iOS.mm in Sources */, + D5B50F7414CFF670005F7284 /* CreativeMode.cpp in Sources */, + D5B50F7614CFF670005F7284 /* GameMode.cpp in Sources */, + D5B50F7814CFF670005F7284 /* Button.cpp in Sources */, + D5B50F7A14CFF670005F7284 /* ImageButton.cpp in Sources */, + D5B50F7C14CFF670005F7284 /* LargeImageButton.cpp in Sources */, + D5B50F7E14CFF670005F7284 /* RolledSelectionListH.cpp in Sources */, + D5B50F8014CFF670005F7284 /* RolledSelectionListV.cpp in Sources */, + D5B50F8214CFF670005F7284 /* ScrolledSelectionList.cpp in Sources */, + D5B50F8414CFF670005F7284 /* SmallButton.cpp in Sources */, + D5B50F8614CFF670005F7284 /* Font.cpp in Sources */, + D5B50F8814CFF670005F7284 /* Gui.cpp in Sources */, + D5B50F8A14CFF670005F7284 /* GuiComponent.cpp in Sources */, + D5B50F8C14CFF670005F7284 /* Screen.cpp in Sources */, + D5B50F8E14CFF670005F7284 /* ChatScreen.cpp in Sources */, + D5B50F9014CFF670005F7284 /* ConfirmScreen.cpp in Sources */, + D5B50F9214CFF670005F7284 /* IngameBlockSelectionScreen.cpp in Sources */, + D5B50F9414CFF670005F7284 /* JoinGameScreen.cpp in Sources */, + D5B50F9614CFF670005F7284 /* OptionsScreen.cpp in Sources */, + D5B50F9814CFF670005F7284 /* PauseScreen.cpp in Sources */, + D5B50F9A14CFF670005F7284 /* ProgressScreen.cpp in Sources */, + D5B50F9C14CFF670005F7284 /* RenameMPLevelScreen.cpp in Sources */, + D5B50F9E14CFF670005F7284 /* ScreenChooser.cpp in Sources */, + D5B50FA014CFF670005F7284 /* SelectWorldScreen.cpp in Sources */, + D5B50FA214CFF670005F7284 /* StartMenuScreen.cpp in Sources */, + D5B50FA414CFF670005F7284 /* TouchIngameBlockSelectionScreen.cpp in Sources */, + D5B50FA614CFF670005F7284 /* TouchJoinGameScreen.cpp in Sources */, + D5B50FA814CFF670005F7284 /* TouchSelectWorldScreen.cpp in Sources */, + D5B50FAA14CFF670005F7284 /* TouchStartMenuScreen.cpp in Sources */, + D5B50FAC14CFF670005F7284 /* UploadPhotoScreen.cpp in Sources */, + D5B50FAE14CFF670005F7284 /* Minecraft.cpp in Sources */, + D5B50FB014CFF670005F7284 /* ChickenModel.cpp in Sources */, + D5B50FB214CFF670005F7284 /* CowModel.cpp in Sources */, + D5B50FB414CFF670005F7284 /* Cube.cpp in Sources */, + D5B50FB614CFF670005F7284 /* ModelPart.cpp in Sources */, + D5B50FB814CFF670005F7284 /* Polygon.cpp in Sources */, + D5B50FBA14CFF670005F7284 /* HumanoidModel.cpp in Sources */, + D5B50FBC14CFF670005F7284 /* PigModel.cpp in Sources */, + D5B50FBE14CFF670005F7284 /* QuadrupedModel.cpp in Sources */, + D5B50FC014CFF670005F7284 /* Options.cpp in Sources */, + D5B50FC214CFF670005F7284 /* OptionStrings.cpp in Sources */, + D5B50FC414CFF670005F7284 /* Particle.cpp in Sources */, + D5B50FC614CFF670005F7284 /* ParticleEngine.cpp in Sources */, + D5B50FC814CFF670005F7284 /* KeyboardInput.cpp in Sources */, + D5B50FCA14CFF670005F7284 /* TouchscreenInput.cpp in Sources */, + D5B50FCC14CFF670005F7284 /* LocalPlayer.cpp in Sources */, + D5B50FCE14CFF670005F7284 /* Chunk.cpp in Sources */, + D5B50FD014CFF670005F7284 /* Frustum.cpp in Sources */, + D5B50FD214CFF670005F7284 /* ChickenRenderer.cpp in Sources */, + D5B50FD414CFF670005F7284 /* EntityRenderDispatcher.cpp in Sources */, + D5B50FD614CFF670005F7284 /* EntityRenderer.cpp in Sources */, + D5B50FD814CFF670005F7284 /* HumanoidMobRenderer.cpp in Sources */, + D5B50FDA14CFF670005F7284 /* ItemRenderer.cpp in Sources */, + D5B50FDC14CFF670005F7284 /* ItemSpriteRenderer.cpp in Sources */, + D5B50FDE14CFF670005F7284 /* MobRenderer.cpp in Sources */, + D5B50FE014CFF670005F7284 /* TntRenderer.cpp in Sources */, + D5B50FE214CFF670005F7284 /* TripodCameraRenderer.cpp in Sources */, + D5B50FE414CFF670005F7284 /* GameRenderer.cpp in Sources */, + D5B50FE614CFF670005F7284 /* gles.cpp in Sources */, + D5B50FE814CFF670005F7284 /* ItemInHandRenderer.cpp in Sources */, + D5B50FEA14CFF670005F7284 /* LevelRenderer.cpp in Sources */, + D5B50FEC14CFF670005F7284 /* DynamicTexture.cpp in Sources */, + D5B50FEE14CFF670005F7284 /* RenderChunk.cpp in Sources */, + D5B50FF014CFF670005F7284 /* RenderList.cpp in Sources */, + D5B50FF214CFF670005F7284 /* Tesselator.cpp in Sources */, + D5B50FF414CFF670005F7284 /* Textures.cpp in Sources */, + D5B50FF614CFF670005F7284 /* TileRenderer.cpp in Sources */, + D5B5102E14CFF670005F7284 /* Sound.cpp in Sources */, + D5B5103014CFF670005F7284 /* main.cpp in Sources */, + D5B5103614CFF670005F7284 /* Tag.cpp in Sources */, + D5B5103814CFF670005F7284 /* ClientSideNetworkHandler.cpp in Sources */, + D5B5103A14CFF670005F7284 /* NetEventCallback.cpp in Sources */, + D5B5103C14CFF670005F7284 /* Packet.cpp in Sources */, + D5B5103E14CFF670005F7284 /* RakNetInstance.cpp in Sources */, + D5B5104014CFF670005F7284 /* ServerSideNetworkHandler.cpp in Sources */, + D5B5104214CFF670005F7284 /* NinecraftApp.cpp in Sources */, + D5B5104414CFF670005F7284 /* Performance.cpp in Sources */, + D5B5104814CFF670005F7284 /* SoundSystemAL.cpp in Sources */, + D5B5104C14CFF670005F7284 /* CThread.cpp in Sources */, + D5B5104E14CFF670005F7284 /* Controller.cpp in Sources */, + D5B5105014CFF670005F7284 /* Keyboard.cpp in Sources */, + D5B5105214CFF670005F7284 /* Mouse.cpp in Sources */, + D5B5105414CFF670005F7284 /* Multitouch.cpp in Sources */, + D5B5105614CFF670005F7284 /* time.cpp in Sources */, + D5B5110E14CFF670005F7284 /* DataIO.cpp in Sources */, + D5B5111014CFF670005F7284 /* Mth.cpp in Sources */, + D5B5111214CFF670005F7284 /* PerfRenderer.cpp in Sources */, + D5B5111414CFF670005F7284 /* PerfTimer.cpp in Sources */, + D5B5111614CFF670005F7284 /* StringUtils.cpp in Sources */, + D5B5111814CFF670005F7284 /* Direction.cpp in Sources */, + D5B5111A14CFF670005F7284 /* Animal.cpp in Sources */, + D5B5111C14CFF670005F7284 /* Chicken.cpp in Sources */, + D5B5111E14CFF670005F7284 /* Cow.cpp in Sources */, + D5B5112014CFF670005F7284 /* Pig.cpp in Sources */, + D5B5112214CFF670005F7284 /* Sheep.cpp in Sources */, + D5B5112414CFF670005F7284 /* WaterAnimal.cpp in Sources */, + D5B5112614CFF670005F7284 /* Entity.cpp in Sources */, + D5B5112814CFF670005F7284 /* FlyingMob.cpp in Sources */, + D5B5112A14CFF670005F7284 /* FallingTile.cpp in Sources */, + D5B5112C14CFF670005F7284 /* ItemEntity.cpp in Sources */, + D5B5112E14CFF670005F7284 /* PrimedTnt.cpp in Sources */, + D5B5113014CFF670005F7284 /* TripodCamera.cpp in Sources */, + D5B5113214CFF670005F7284 /* Mob.cpp in Sources */, + D5B5113414CFF670005F7284 /* MobCategory.cpp in Sources */, + D5B5113814CFF670005F7284 /* PathFinderMob.cpp in Sources */, + D5B5113A14CFF670005F7284 /* Inventory.cpp in Sources */, + D5B5113C14CFF670005F7284 /* Player.cpp in Sources */, + D5B5113E14CFF670005F7284 /* Arrow.cpp in Sources */, + D5B5114014CFF670005F7284 /* Recipes.cpp in Sources */, + D5B5114214CFF670005F7284 /* ToolRecipes.cpp in Sources */, + D5B5114414CFF670005F7284 /* WeaponRecipes.cpp in Sources */, + D5B5114614CFF670005F7284 /* HatchetItem.cpp in Sources */, + D5B5114814CFF670005F7284 /* Item.cpp in Sources */, + D5B5114A14CFF670005F7284 /* ItemInstance.cpp in Sources */, + D5B5114C14CFF670005F7284 /* PickaxeItem.cpp in Sources */, + D5B5114E14CFF670005F7284 /* ShovelItem.cpp in Sources */, + D5B5115014CFF670005F7284 /* Biome.cpp in Sources */, + D5B5115214CFF670005F7284 /* BiomeSource.cpp in Sources */, + D5B5115414CFF670005F7284 /* LevelChunk.cpp in Sources */, + D5B5115614CFF670005F7284 /* Dimension.cpp in Sources */, + D5B5115814CFF670005F7284 /* Explosion.cpp in Sources */, + D5B5115A14CFF670005F7284 /* Level.cpp in Sources */, + D5B5115C14CFF670005F7284 /* CanyonFeature.cpp in Sources */, + D5B5115E14CFF670005F7284 /* DungeonFeature.cpp in Sources */, + D5B5116014CFF670005F7284 /* LargeCaveFeature.cpp in Sources */, + D5B5116214CFF670005F7284 /* LargeFeature.cpp in Sources */, + D5B5116414CFF670005F7284 /* RandomLevelSource.cpp in Sources */, + D5B5116614CFF670005F7284 /* ImprovedNoise.cpp in Sources */, + D5B5116814CFF670005F7284 /* PerlinNoise.cpp in Sources */, + D5B5116A14CFF670005F7284 /* Synth.cpp in Sources */, + D5B5116C14CFF670005F7284 /* LightLayer.cpp in Sources */, + D5B5116E14CFF670005F7284 /* LightUpdate.cpp in Sources */, + D5B5117014CFF670005F7284 /* Material.cpp in Sources */, + D5B5117214CFF670005F7284 /* MobSpawner.cpp in Sources */, + D5B5117414CFF670005F7284 /* Region.cpp in Sources */, + D5B5117614CFF670005F7284 /* ExternalFileLevelStorage.cpp in Sources */, + D5B5117814CFF670005F7284 /* ExternalFileLevelStorageSource.cpp in Sources */, + D5B5117A14CFF670005F7284 /* RegionFile.cpp in Sources */, + D5B5117C14CFF670005F7284 /* TickNextTickData.cpp in Sources */, + D5B5117E14CFF670005F7284 /* DoorTile.cpp in Sources */, + D5B5118214CFF670005F7284 /* StoneSlabTile.cpp in Sources */, + D5B5118414CFF670005F7284 /* Tile.cpp in Sources */, + D5B5118614CFF670005F7284 /* HitResult.cpp in Sources */, + D5B5118C14D03342005F7284 /* SynchedEntityData.cpp in Sources */, + D5B5118F14DEA27F005F7284 /* DeathScreen.cpp in Sources */, + D5B5119214DEA2B7005F7284 /* LevelData.cpp in Sources */, + D5B5119514DEA2EF005F7284 /* DyePowderItem.cpp in Sources */, + D584926E14FD234400741128 /* SharedConstants.cpp in Sources */, + D584927414FD236700741128 /* MoveControl.cpp in Sources */, + D584928714FD240D00741128 /* IConfigListener.cpp in Sources */, + D584928A14FD2FAF00741128 /* Path.cpp in Sources */, + D5B86282153810BD00F3238A /* I18n.cpp in Sources */, + D5B862861538175500F3238A /* ScrollingPane.cpp in Sources */, + D5B862931538187400F3238A /* Recipe.cpp in Sources */, + D5B862951538187400F3238A /* StructureRecipes.cpp in Sources */, + D5251DAC1538192700FC82C8 /* _FindFirst.cpp in Sources */, + D5251DAE1538192700FC82C8 /* BitStream.cpp in Sources */, + D5251DB01538192700FC82C8 /* CCRakNetSlidingWindow.cpp in Sources */, + D5251DB21538192700FC82C8 /* CCRakNetUDT.cpp in Sources */, + D5251DB41538192700FC82C8 /* CheckSum.cpp in Sources */, + D5251DB61538192700FC82C8 /* CloudClient.cpp in Sources */, + D5251DB81538192700FC82C8 /* CloudCommon.cpp in Sources */, + D5251DBA1538192700FC82C8 /* CloudServer.cpp in Sources */, + D5251DBE1538192700FC82C8 /* CommandParserInterface.cpp in Sources */, + D5251DC01538192700FC82C8 /* ConnectionGraph2.cpp in Sources */, + D5251DC21538192700FC82C8 /* ConsoleServer.cpp in Sources */, + D5251DC41538192700FC82C8 /* DataCompressor.cpp in Sources */, + D5251DC61538192700FC82C8 /* DirectoryDeltaTransfer.cpp in Sources */, + D5251DC81538192700FC82C8 /* DS_BytePool.cpp in Sources */, + D5251DCA1538192700FC82C8 /* DS_ByteQueue.cpp in Sources */, + D5251DCC1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp in Sources */, + D5251DCE1538192700FC82C8 /* DS_Table.cpp in Sources */, + D5251DD01538192700FC82C8 /* DynDNS.cpp in Sources */, + D5251DD21538192700FC82C8 /* EmailSender.cpp in Sources */, + D5251DD41538192700FC82C8 /* EncodeClassName.cpp in Sources */, + D5251DD61538192700FC82C8 /* EpochTimeToString.cpp in Sources */, + D5251DD81538192700FC82C8 /* FileList.cpp in Sources */, + D5251DDA1538192700FC82C8 /* FileListTransfer.cpp in Sources */, + D5251DDC1538192700FC82C8 /* FileOperations.cpp in Sources */, + D5251DDE1538192700FC82C8 /* FormatString.cpp in Sources */, + D5251DE01538192700FC82C8 /* FullyConnectedMesh2.cpp in Sources */, + D5251DE21538192700FC82C8 /* Getche.cpp in Sources */, + D5251DE41538192700FC82C8 /* Gets.cpp in Sources */, + D5251DE61538192700FC82C8 /* GetTime.cpp in Sources */, + D5251DE81538192700FC82C8 /* gettimeofday.cpp in Sources */, + D5251DEA1538192700FC82C8 /* GridSectorizer.cpp in Sources */, + D5251DEC1538192700FC82C8 /* HTTPConnection.cpp in Sources */, + D5251DEE1538192700FC82C8 /* IncrementalReadInterface.cpp in Sources */, + D5251DF01538192700FC82C8 /* Itoa.cpp in Sources */, + D5251DF21538192700FC82C8 /* LinuxStrings.cpp in Sources */, + D5251DF41538192700FC82C8 /* LocklessTypes.cpp in Sources */, + D5251DF61538192700FC82C8 /* LogCommandParser.cpp in Sources */, + D5251DF81538192700FC82C8 /* MessageFilter.cpp in Sources */, + D5251DFA1538192700FC82C8 /* NatPunchthroughClient.cpp in Sources */, + D5251DFC1538192700FC82C8 /* NatPunchthroughServer.cpp in Sources */, + D5251DFE1538192700FC82C8 /* NatTypeDetectionClient.cpp in Sources */, + D5251E001538192700FC82C8 /* NatTypeDetectionCommon.cpp in Sources */, + D5251E021538192700FC82C8 /* NatTypeDetectionServer.cpp in Sources */, + D5251E041538192700FC82C8 /* NetworkIDManager.cpp in Sources */, + D5251E061538192700FC82C8 /* NetworkIDObject.cpp in Sources */, + D5251E081538192700FC82C8 /* PacketConsoleLogger.cpp in Sources */, + D5251E0A1538192700FC82C8 /* PacketFileLogger.cpp in Sources */, + D5251E0C1538192700FC82C8 /* PacketizedTCP.cpp in Sources */, + D5251E0E1538192700FC82C8 /* PacketLogger.cpp in Sources */, + D5251E101538192700FC82C8 /* PacketOutputWindowLogger.cpp in Sources */, + D5251E121538192700FC82C8 /* PluginInterface2.cpp in Sources */, + D5251E141538192700FC82C8 /* Rackspace.cpp in Sources */, + D5251E161538192700FC82C8 /* RakMemoryOverride.cpp in Sources */, + D5251E1E1538192700FC82C8 /* RakNetCommandParser.cpp in Sources */, + D5251E201538192700FC82C8 /* RakNetSocket.cpp in Sources */, + D5251E221538192700FC82C8 /* RakNetStatistics.cpp in Sources */, + D5251E241538192700FC82C8 /* RakNetTransport2.cpp in Sources */, + D5251E261538192700FC82C8 /* RakNetTypes.cpp in Sources */, + D5251E281538192700FC82C8 /* RakPeer.cpp in Sources */, + D5251E2A1538192700FC82C8 /* RakSleep.cpp in Sources */, + D5251E2C1538192700FC82C8 /* RakString.cpp in Sources */, + D5251E2E1538192700FC82C8 /* RakThread.cpp in Sources */, + D5251E301538192700FC82C8 /* RakWString.cpp in Sources */, + D5251E321538192700FC82C8 /* Rand.cpp in Sources */, + D5251E341538192700FC82C8 /* rdlmalloc.cpp in Sources */, + D5251E361538192700FC82C8 /* ReadyEvent.cpp in Sources */, + D5251E381538192700FC82C8 /* ReliabilityLayer.cpp in Sources */, + D5251E3A1538192700FC82C8 /* ReplicaManager3.cpp in Sources */, + D5251E3C1538192700FC82C8 /* Router2.cpp in Sources */, + D5251E3E1538192700FC82C8 /* RPC4Plugin.cpp in Sources */, + D5251E401538192700FC82C8 /* SecureHandshake.cpp in Sources */, + D5251E421538192700FC82C8 /* SendToThread.cpp in Sources */, + D5251E441538192700FC82C8 /* SHA1.cpp in Sources */, + D5251E461538192700FC82C8 /* SignaledEvent.cpp in Sources */, + D5251E481538192700FC82C8 /* SimpleMutex.cpp in Sources */, + D5251E4A1538192700FC82C8 /* SocketLayer.cpp in Sources */, + D5251E4C1538192700FC82C8 /* StringCompressor.cpp in Sources */, + D5251E4E1538192700FC82C8 /* StringTable.cpp in Sources */, + D5251E501538192700FC82C8 /* SuperFastHash.cpp in Sources */, + D5251E521538192700FC82C8 /* TableSerializer.cpp in Sources */, + D5251E541538192700FC82C8 /* TCPInterface.cpp in Sources */, + D5251E561538192700FC82C8 /* TeamBalancer.cpp in Sources */, + D5251E581538192700FC82C8 /* TelnetTransport.cpp in Sources */, + D5251E5A1538192700FC82C8 /* ThreadsafePacketLogger.cpp in Sources */, + D5251E5C1538192700FC82C8 /* TwoWayAuthentication.cpp in Sources */, + D5251E5E1538192700FC82C8 /* UDPForwarder.cpp in Sources */, + D5251E601538192700FC82C8 /* UDPProxyClient.cpp in Sources */, + D5251E621538192700FC82C8 /* UDPProxyCoordinator.cpp in Sources */, + D5251E641538192700FC82C8 /* UDPProxyServer.cpp in Sources */, + D5251E661538192700FC82C8 /* VariableDeltaSerializer.cpp in Sources */, + D5251E681538192700FC82C8 /* VariableListDeltaTracker.cpp in Sources */, + D5251E6A1538192700FC82C8 /* VariadicSQLParser.cpp in Sources */, + D5251E6C1538192700FC82C8 /* VitaIncludes.cpp in Sources */, + D5251E6E1538192700FC82C8 /* WSAStartupSingleton.cpp in Sources */, + D5251E921539A9AF00FC82C8 /* SoundEngine.mm in Sources */, + D5951EC8159347EE0043A12A /* FurnaceRecipes.cpp in Sources */, + D5951ECA159347EE0043A12A /* OreRecipes.cpp in Sources */, + D5951EDC159348C50043A12A /* InventoryPane.cpp in Sources */, + D5951EDE159348C50043A12A /* ItemPane.cpp in Sources */, + D5951EE4159349000043A12A /* FurnaceTile.cpp in Sources */, + D5951EE9159349100043A12A /* FurnaceTileEntity.cpp in Sources */, + D5951EEB159349100043A12A /* TileEntity.cpp in Sources */, + D5951EEF159349680043A12A /* FurnaceScreen.cpp in Sources */, + D5951EF215934A2D0043A12A /* Feature.cpp in Sources */, + D5951EF815934AC50043A12A /* BaseContainerMenu.cpp in Sources */, + D5951EFA15934AC50043A12A /* FurnaceMenu.cpp in Sources */, + D5D381F315A1A1CF00B6C50E /* FillingContainer.cpp in Sources */, + D5D381F815A1A21800B6C50E /* EntityTile.cpp in Sources */, + D5D3820615A1A26000B6C50E /* ChestRenderer.cpp in Sources */, + D5D3820815A1A26000B6C50E /* TileEntityRenderDispatcher.cpp in Sources */, + D5D3820A15A1A26000B6C50E /* TileEntityRenderer.cpp in Sources */, + D5D3820E15A1A2A000B6C50E /* EntityTileRenderer.cpp in Sources */, + D5D3821215A1A2C200B6C50E /* ChestTile.cpp in Sources */, + D5D3821515A1A5D100B6C50E /* ChestTileEntity.cpp in Sources */, + D5A6F8D215B45E2600819B71 /* ChestScreen.cpp in Sources */, + D5A6F8D715B45EE500819B71 /* ContainerMenu.cpp in Sources */, + D5ACF15715C01F7D00E21C22 /* ArrowRenderer.cpp in Sources */, + D5ACF17915C0220D00E21C22 /* Creeper.cpp in Sources */, + D5ACF17B15C0220D00E21C22 /* Monster.cpp in Sources */, + D5ACF17D15C0220D00E21C22 /* Skeleton.cpp in Sources */, + D5ACF17F15C0220D00E21C22 /* Spider.cpp in Sources */, + D5ACF18115C0220D00E21C22 /* Zombie.cpp in Sources */, + D5ACF18515C022B500E21C22 /* EntityFactory.cpp in Sources */, + D54493F015D13BF0005FA9B0 /* BedTile.cpp in Sources */, + D54493F215D13BF0005FA9B0 /* CropTile.cpp in Sources */, + D54493F415D13BF0005FA9B0 /* GrassTile.cpp in Sources */, + D54493FA15D13C35005FA9B0 /* HoeItem.cpp in Sources */, + D54493FE15D13C59005FA9B0 /* BedItem.cpp in Sources */, + D544940915D13DB7005FA9B0 /* ServerLevel.cpp in Sources */, + D544940B15D13DB7005FA9B0 /* ServerPlayer.cpp in Sources */, + D544941115D13E27005FA9B0 /* SimpleFoodData.cpp in Sources */, + D544941415D13E5A005FA9B0 /* FolderMethods.cpp in Sources */, + D544941715D13EE3005FA9B0 /* LevelStorageSource.cpp in Sources */, + D544941B15D13F06005FA9B0 /* TallGrass.cpp in Sources */, + D544941F15D13F45005FA9B0 /* PlayerRenderer.cpp in Sources */, + D544942315D13F5E005FA9B0 /* RemotePlayer.cpp in Sources */, + D5B17ED615E226F50056E751 /* Throwable.cpp in Sources */, + D5B17EDA15E2273F0056E751 /* SurvivalMode.cpp in Sources */, + D5B17EDE15E227670056E751 /* TrapDoorTile.cpp in Sources */, + D5B17EE215E260910056E751 /* MoveFolder.mm in Sources */, + D5D8C48B16392FF000FD35F0 /* LightGemTile.cpp in Sources */, + D5D8C48D16392FF000FD35F0 /* Mushroom.cpp in Sources */, + D5D8C48F16392FF000FD35F0 /* StemTile.cpp in Sources */, + D5D8C4961639301700FD35F0 /* NetherReactorTileEntity.cpp in Sources */, + D5D8C4981639301700FD35F0 /* SignTileEntity.cpp in Sources */, + D5D8C49C1639305100FD35F0 /* PigZombie.cpp in Sources */, + D5D8C4A0163930D600FD35F0 /* MelonTile.cpp in Sources */, + D5D8C4A4163930E600FD35F0 /* NetherReactor.cpp in Sources */, + D5D8C4A8163931F000FD35F0 /* InBedScreen.cpp in Sources */, + D5D8C4AC163932B900FD35F0 /* SignRenderer.cpp in Sources */, + D5D8C4B0163932CF00FD35F0 /* PaintingRenderer.cpp in Sources */, + D5D8C4B61639335000FD35F0 /* HangingEntity.cpp in Sources */, + D5D8C4B81639335000FD35F0 /* Painting.cpp in Sources */, + D5D8C4C41639341100FD35F0 /* Motive.cpp in Sources */, + D5D8C4C8163934BB00FD35F0 /* HangingEntityItem.cpp in Sources */, + D5D8C4CC1639362F00FD35F0 /* NetherReactorPattern.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D5CF9C3E144C225000E4244F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D5CF9C57144C225000E4244F /* main.mm in Sources */, + D5CF9C5B144C225000E4244F /* minecraftpeAppDelegate.mm in Sources */, + D5CF9C65144C225000E4244F /* EAGLView.m in Sources */, + D5CFA01D144C453900E4244F /* minecraftpeViewController.mm in Sources */, + D5A55E4914500EDE00A7571B /* CreateNewWorldViewController.mm in Sources */, + D5A55E4D145036AE00A7571B /* BaseDialogController.mm in Sources */, + D5F3B7CA14548E7900D25470 /* IASKAppSettingsViewController.m in Sources */, + D5F3B7CB14548E7900D25470 /* IASKAppSettingsWebViewController.m in Sources */, + D5F3B7CC14548E7900D25470 /* IASKSpecifierValuesViewController.m in Sources */, + D5F3B7CD14548E7900D25470 /* IASKSettingsReader.m in Sources */, + D5F3B7CE14548E7900D25470 /* IASKSettingsStore.m in Sources */, + D5F3B7CF14548E7900D25470 /* IASKSettingsStoreFile.m in Sources */, + D5F3B7D014548E7900D25470 /* IASKSettingsStoreUserDefaults.m in Sources */, + D5F3B7D114548E7900D25470 /* IASKSpecifier.m in Sources */, + D5F3B7D214548E7900D25470 /* IASKPSSliderSpecifierViewCell.m in Sources */, + D5F3B7D314548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m in Sources */, + D5F3B7D414548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m in Sources */, + D5F3B7D514548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */, + D5F3B7D614548E7900D25470 /* IASKSlider.m in Sources */, + D5F3B7D714548E7900D25470 /* IASKSwitch.m in Sources */, + D5F3B7D814548E7900D25470 /* IASKTextField.m in Sources */, + D51DC74314592B8B00E3D761 /* PVRTexture.m in Sources */, + D5D43CC8146AF4B4002ED842 /* RenameMPWorldViewController.mm in Sources */, + D5B50F6F14CFF670005F7284 /* AppPlatform_iOS.mm in Sources */, + D5B50F7314CFF670005F7284 /* CreativeMode.cpp in Sources */, + D5B50F7514CFF670005F7284 /* GameMode.cpp in Sources */, + D5B50F7714CFF670005F7284 /* Button.cpp in Sources */, + D5B50F7914CFF670005F7284 /* ImageButton.cpp in Sources */, + D5B50F7B14CFF670005F7284 /* LargeImageButton.cpp in Sources */, + D5B50F7D14CFF670005F7284 /* RolledSelectionListH.cpp in Sources */, + D5B50F7F14CFF670005F7284 /* RolledSelectionListV.cpp in Sources */, + D5B50F8114CFF670005F7284 /* ScrolledSelectionList.cpp in Sources */, + D5B50F8314CFF670005F7284 /* SmallButton.cpp in Sources */, + D5B50F8514CFF670005F7284 /* Font.cpp in Sources */, + D5B50F8714CFF670005F7284 /* Gui.cpp in Sources */, + D5B50F8914CFF670005F7284 /* GuiComponent.cpp in Sources */, + D5B50F8B14CFF670005F7284 /* Screen.cpp in Sources */, + D5B50F8D14CFF670005F7284 /* ChatScreen.cpp in Sources */, + D5B50F8F14CFF670005F7284 /* ConfirmScreen.cpp in Sources */, + D5B50F9114CFF670005F7284 /* IngameBlockSelectionScreen.cpp in Sources */, + D5B50F9314CFF670005F7284 /* JoinGameScreen.cpp in Sources */, + D5B50F9514CFF670005F7284 /* OptionsScreen.cpp in Sources */, + D5B50F9714CFF670005F7284 /* PauseScreen.cpp in Sources */, + D5B50F9914CFF670005F7284 /* ProgressScreen.cpp in Sources */, + D5B50F9B14CFF670005F7284 /* RenameMPLevelScreen.cpp in Sources */, + D5B50F9D14CFF670005F7284 /* ScreenChooser.cpp in Sources */, + D5B50F9F14CFF670005F7284 /* SelectWorldScreen.cpp in Sources */, + D5B50FA114CFF670005F7284 /* StartMenuScreen.cpp in Sources */, + D5B50FA314CFF670005F7284 /* TouchIngameBlockSelectionScreen.cpp in Sources */, + D5B50FA514CFF670005F7284 /* TouchJoinGameScreen.cpp in Sources */, + D5B50FA714CFF670005F7284 /* TouchSelectWorldScreen.cpp in Sources */, + D5B50FA914CFF670005F7284 /* TouchStartMenuScreen.cpp in Sources */, + D5B50FAB14CFF670005F7284 /* UploadPhotoScreen.cpp in Sources */, + D5B50FAD14CFF670005F7284 /* Minecraft.cpp in Sources */, + D5B50FAF14CFF670005F7284 /* ChickenModel.cpp in Sources */, + D5B50FB114CFF670005F7284 /* CowModel.cpp in Sources */, + D5B50FB314CFF670005F7284 /* Cube.cpp in Sources */, + D5B50FB514CFF670005F7284 /* ModelPart.cpp in Sources */, + D5B50FB714CFF670005F7284 /* Polygon.cpp in Sources */, + D5B50FB914CFF670005F7284 /* HumanoidModel.cpp in Sources */, + D5B50FBB14CFF670005F7284 /* PigModel.cpp in Sources */, + D5B50FBD14CFF670005F7284 /* QuadrupedModel.cpp in Sources */, + D5B50FBF14CFF670005F7284 /* Options.cpp in Sources */, + D5B50FC114CFF670005F7284 /* OptionStrings.cpp in Sources */, + D5B50FC314CFF670005F7284 /* Particle.cpp in Sources */, + D5B50FC514CFF670005F7284 /* ParticleEngine.cpp in Sources */, + D5B50FC714CFF670005F7284 /* KeyboardInput.cpp in Sources */, + D5B50FC914CFF670005F7284 /* TouchscreenInput.cpp in Sources */, + D5B50FCB14CFF670005F7284 /* LocalPlayer.cpp in Sources */, + D5B50FCD14CFF670005F7284 /* Chunk.cpp in Sources */, + D5B50FCF14CFF670005F7284 /* Frustum.cpp in Sources */, + D5B50FD114CFF670005F7284 /* ChickenRenderer.cpp in Sources */, + D5B50FD314CFF670005F7284 /* EntityRenderDispatcher.cpp in Sources */, + D5B50FD514CFF670005F7284 /* EntityRenderer.cpp in Sources */, + D5B50FD714CFF670005F7284 /* HumanoidMobRenderer.cpp in Sources */, + D5B50FD914CFF670005F7284 /* ItemRenderer.cpp in Sources */, + D5B50FDB14CFF670005F7284 /* ItemSpriteRenderer.cpp in Sources */, + D5B50FDD14CFF670005F7284 /* MobRenderer.cpp in Sources */, + D5B50FDF14CFF670005F7284 /* TntRenderer.cpp in Sources */, + D5B50FE114CFF670005F7284 /* TripodCameraRenderer.cpp in Sources */, + D5B50FE314CFF670005F7284 /* GameRenderer.cpp in Sources */, + D5B50FE514CFF670005F7284 /* gles.cpp in Sources */, + D5B50FE714CFF670005F7284 /* ItemInHandRenderer.cpp in Sources */, + D5B50FE914CFF670005F7284 /* LevelRenderer.cpp in Sources */, + D5B50FEB14CFF670005F7284 /* DynamicTexture.cpp in Sources */, + D5B50FED14CFF670005F7284 /* RenderChunk.cpp in Sources */, + D5B50FEF14CFF670005F7284 /* RenderList.cpp in Sources */, + D5B50FF114CFF670005F7284 /* Tesselator.cpp in Sources */, + D5B50FF314CFF670005F7284 /* Textures.cpp in Sources */, + D5B50FF514CFF670005F7284 /* TileRenderer.cpp in Sources */, + D5B5102D14CFF670005F7284 /* Sound.cpp in Sources */, + D5B5102F14CFF670005F7284 /* main.cpp in Sources */, + D5B5103514CFF670005F7284 /* Tag.cpp in Sources */, + D5B5103714CFF670005F7284 /* ClientSideNetworkHandler.cpp in Sources */, + D5B5103914CFF670005F7284 /* NetEventCallback.cpp in Sources */, + D5B5103B14CFF670005F7284 /* Packet.cpp in Sources */, + D5B5103D14CFF670005F7284 /* RakNetInstance.cpp in Sources */, + D5B5103F14CFF670005F7284 /* ServerSideNetworkHandler.cpp in Sources */, + D5B5104114CFF670005F7284 /* NinecraftApp.cpp in Sources */, + D5B5104314CFF670005F7284 /* Performance.cpp in Sources */, + D5B5104714CFF670005F7284 /* SoundSystemAL.cpp in Sources */, + D5B5104B14CFF670005F7284 /* CThread.cpp in Sources */, + D5B5104D14CFF670005F7284 /* Controller.cpp in Sources */, + D5B5104F14CFF670005F7284 /* Keyboard.cpp in Sources */, + D5B5105114CFF670005F7284 /* Mouse.cpp in Sources */, + D5B5105314CFF670005F7284 /* Multitouch.cpp in Sources */, + D5B5105514CFF670005F7284 /* time.cpp in Sources */, + D5B5110D14CFF670005F7284 /* DataIO.cpp in Sources */, + D5B5110F14CFF670005F7284 /* Mth.cpp in Sources */, + D5B5111114CFF670005F7284 /* PerfRenderer.cpp in Sources */, + D5B5111314CFF670005F7284 /* PerfTimer.cpp in Sources */, + D5B5111514CFF670005F7284 /* StringUtils.cpp in Sources */, + D5B5111714CFF670005F7284 /* Direction.cpp in Sources */, + D5B5111914CFF670005F7284 /* Animal.cpp in Sources */, + D5B5111B14CFF670005F7284 /* Chicken.cpp in Sources */, + D5B5111D14CFF670005F7284 /* Cow.cpp in Sources */, + D5B5111F14CFF670005F7284 /* Pig.cpp in Sources */, + D5B5112114CFF670005F7284 /* Sheep.cpp in Sources */, + D5B5112314CFF670005F7284 /* WaterAnimal.cpp in Sources */, + D5B5112514CFF670005F7284 /* Entity.cpp in Sources */, + D5B5112714CFF670005F7284 /* FlyingMob.cpp in Sources */, + D5B5112914CFF670005F7284 /* FallingTile.cpp in Sources */, + D5B5112B14CFF670005F7284 /* ItemEntity.cpp in Sources */, + D5B5112D14CFF670005F7284 /* PrimedTnt.cpp in Sources */, + D5B5112F14CFF670005F7284 /* TripodCamera.cpp in Sources */, + D5B5113114CFF670005F7284 /* Mob.cpp in Sources */, + D5B5113314CFF670005F7284 /* MobCategory.cpp in Sources */, + D5B5113714CFF670005F7284 /* PathFinderMob.cpp in Sources */, + D5B5113914CFF670005F7284 /* Inventory.cpp in Sources */, + D5B5113B14CFF670005F7284 /* Player.cpp in Sources */, + D5B5113D14CFF670005F7284 /* Arrow.cpp in Sources */, + D5B5113F14CFF670005F7284 /* Recipes.cpp in Sources */, + D5B5114114CFF670005F7284 /* ToolRecipes.cpp in Sources */, + D5B5114314CFF670005F7284 /* WeaponRecipes.cpp in Sources */, + D5B5114514CFF670005F7284 /* HatchetItem.cpp in Sources */, + D5B5114714CFF670005F7284 /* Item.cpp in Sources */, + D5B5114914CFF670005F7284 /* ItemInstance.cpp in Sources */, + D5B5114B14CFF670005F7284 /* PickaxeItem.cpp in Sources */, + D5B5114D14CFF670005F7284 /* ShovelItem.cpp in Sources */, + D5B5114F14CFF670005F7284 /* Biome.cpp in Sources */, + D5B5115114CFF670005F7284 /* BiomeSource.cpp in Sources */, + D5B5115314CFF670005F7284 /* LevelChunk.cpp in Sources */, + D5B5115514CFF670005F7284 /* Dimension.cpp in Sources */, + D5B5115714CFF670005F7284 /* Explosion.cpp in Sources */, + D5B5115914CFF670005F7284 /* Level.cpp in Sources */, + D5B5115B14CFF670005F7284 /* CanyonFeature.cpp in Sources */, + D5B5115D14CFF670005F7284 /* DungeonFeature.cpp in Sources */, + D5B5115F14CFF670005F7284 /* LargeCaveFeature.cpp in Sources */, + D5B5116114CFF670005F7284 /* LargeFeature.cpp in Sources */, + D5B5116314CFF670005F7284 /* RandomLevelSource.cpp in Sources */, + D5B5116514CFF670005F7284 /* ImprovedNoise.cpp in Sources */, + D5B5116714CFF670005F7284 /* PerlinNoise.cpp in Sources */, + D5B5116914CFF670005F7284 /* Synth.cpp in Sources */, + D5B5116B14CFF670005F7284 /* LightLayer.cpp in Sources */, + D5B5116D14CFF670005F7284 /* LightUpdate.cpp in Sources */, + D5B5116F14CFF670005F7284 /* Material.cpp in Sources */, + D5B5117114CFF670005F7284 /* MobSpawner.cpp in Sources */, + D5B5117314CFF670005F7284 /* Region.cpp in Sources */, + D5B5117514CFF670005F7284 /* ExternalFileLevelStorage.cpp in Sources */, + D5B5117714CFF670005F7284 /* ExternalFileLevelStorageSource.cpp in Sources */, + D5B5117914CFF670005F7284 /* RegionFile.cpp in Sources */, + D5B5117B14CFF670005F7284 /* TickNextTickData.cpp in Sources */, + D5B5117D14CFF670005F7284 /* DoorTile.cpp in Sources */, + D5B5118114CFF670005F7284 /* StoneSlabTile.cpp in Sources */, + D5B5118314CFF670005F7284 /* Tile.cpp in Sources */, + D5B5118514CFF670005F7284 /* HitResult.cpp in Sources */, + D5B5118B14D03342005F7284 /* SynchedEntityData.cpp in Sources */, + D5B5118E14DEA27F005F7284 /* DeathScreen.cpp in Sources */, + D5B5119114DEA2B7005F7284 /* LevelData.cpp in Sources */, + D5B5119414DEA2EF005F7284 /* DyePowderItem.cpp in Sources */, + D584926D14FD234400741128 /* SharedConstants.cpp in Sources */, + D584927314FD236700741128 /* MoveControl.cpp in Sources */, + D584928614FD240D00741128 /* IConfigListener.cpp in Sources */, + D584928914FD2FAF00741128 /* Path.cpp in Sources */, + D5B86281153810BD00F3238A /* I18n.cpp in Sources */, + D5B862851538175500F3238A /* ScrollingPane.cpp in Sources */, + D5B862921538187400F3238A /* Recipe.cpp in Sources */, + D5B862941538187400F3238A /* StructureRecipes.cpp in Sources */, + D5251DAB1538192700FC82C8 /* _FindFirst.cpp in Sources */, + D5251DAD1538192700FC82C8 /* BitStream.cpp in Sources */, + D5251DAF1538192700FC82C8 /* CCRakNetSlidingWindow.cpp in Sources */, + D5251DB11538192700FC82C8 /* CCRakNetUDT.cpp in Sources */, + D5251DB31538192700FC82C8 /* CheckSum.cpp in Sources */, + D5251DB51538192700FC82C8 /* CloudClient.cpp in Sources */, + D5251DB71538192700FC82C8 /* CloudCommon.cpp in Sources */, + D5251DB91538192700FC82C8 /* CloudServer.cpp in Sources */, + D5251DBD1538192700FC82C8 /* CommandParserInterface.cpp in Sources */, + D5251DBF1538192700FC82C8 /* ConnectionGraph2.cpp in Sources */, + D5251DC11538192700FC82C8 /* ConsoleServer.cpp in Sources */, + D5251DC31538192700FC82C8 /* DataCompressor.cpp in Sources */, + D5251DC51538192700FC82C8 /* DirectoryDeltaTransfer.cpp in Sources */, + D5251DC71538192700FC82C8 /* DS_BytePool.cpp in Sources */, + D5251DC91538192700FC82C8 /* DS_ByteQueue.cpp in Sources */, + D5251DCB1538192700FC82C8 /* DS_HuffmanEncodingTree.cpp in Sources */, + D5251DCD1538192700FC82C8 /* DS_Table.cpp in Sources */, + D5251DCF1538192700FC82C8 /* DynDNS.cpp in Sources */, + D5251DD11538192700FC82C8 /* EmailSender.cpp in Sources */, + D5251DD31538192700FC82C8 /* EncodeClassName.cpp in Sources */, + D5251DD51538192700FC82C8 /* EpochTimeToString.cpp in Sources */, + D5251DD71538192700FC82C8 /* FileList.cpp in Sources */, + D5251DD91538192700FC82C8 /* FileListTransfer.cpp in Sources */, + D5251DDB1538192700FC82C8 /* FileOperations.cpp in Sources */, + D5251DDD1538192700FC82C8 /* FormatString.cpp in Sources */, + D5251DDF1538192700FC82C8 /* FullyConnectedMesh2.cpp in Sources */, + D5251DE11538192700FC82C8 /* Getche.cpp in Sources */, + D5251DE31538192700FC82C8 /* Gets.cpp in Sources */, + D5251DE51538192700FC82C8 /* GetTime.cpp in Sources */, + D5251DE71538192700FC82C8 /* gettimeofday.cpp in Sources */, + D5251DE91538192700FC82C8 /* GridSectorizer.cpp in Sources */, + D5251DEB1538192700FC82C8 /* HTTPConnection.cpp in Sources */, + D5251DED1538192700FC82C8 /* IncrementalReadInterface.cpp in Sources */, + D5251DEF1538192700FC82C8 /* Itoa.cpp in Sources */, + D5251DF11538192700FC82C8 /* LinuxStrings.cpp in Sources */, + D5251DF31538192700FC82C8 /* LocklessTypes.cpp in Sources */, + D5251DF51538192700FC82C8 /* LogCommandParser.cpp in Sources */, + D5251DF71538192700FC82C8 /* MessageFilter.cpp in Sources */, + D5251DF91538192700FC82C8 /* NatPunchthroughClient.cpp in Sources */, + D5251DFB1538192700FC82C8 /* NatPunchthroughServer.cpp in Sources */, + D5251DFD1538192700FC82C8 /* NatTypeDetectionClient.cpp in Sources */, + D5251DFF1538192700FC82C8 /* NatTypeDetectionCommon.cpp in Sources */, + D5251E011538192700FC82C8 /* NatTypeDetectionServer.cpp in Sources */, + D5251E031538192700FC82C8 /* NetworkIDManager.cpp in Sources */, + D5251E051538192700FC82C8 /* NetworkIDObject.cpp in Sources */, + D5251E071538192700FC82C8 /* PacketConsoleLogger.cpp in Sources */, + D5251E091538192700FC82C8 /* PacketFileLogger.cpp in Sources */, + D5251E0B1538192700FC82C8 /* PacketizedTCP.cpp in Sources */, + D5251E0D1538192700FC82C8 /* PacketLogger.cpp in Sources */, + D5251E0F1538192700FC82C8 /* PacketOutputWindowLogger.cpp in Sources */, + D5251E111538192700FC82C8 /* PluginInterface2.cpp in Sources */, + D5251E131538192700FC82C8 /* Rackspace.cpp in Sources */, + D5251E151538192700FC82C8 /* RakMemoryOverride.cpp in Sources */, + D5251E1D1538192700FC82C8 /* RakNetCommandParser.cpp in Sources */, + D5251E1F1538192700FC82C8 /* RakNetSocket.cpp in Sources */, + D5251E211538192700FC82C8 /* RakNetStatistics.cpp in Sources */, + D5251E231538192700FC82C8 /* RakNetTransport2.cpp in Sources */, + D5251E251538192700FC82C8 /* RakNetTypes.cpp in Sources */, + D5251E271538192700FC82C8 /* RakPeer.cpp in Sources */, + D5251E291538192700FC82C8 /* RakSleep.cpp in Sources */, + D5251E2B1538192700FC82C8 /* RakString.cpp in Sources */, + D5251E2D1538192700FC82C8 /* RakThread.cpp in Sources */, + D5251E2F1538192700FC82C8 /* RakWString.cpp in Sources */, + D5251E311538192700FC82C8 /* Rand.cpp in Sources */, + D5251E331538192700FC82C8 /* rdlmalloc.cpp in Sources */, + D5251E351538192700FC82C8 /* ReadyEvent.cpp in Sources */, + D5251E371538192700FC82C8 /* ReliabilityLayer.cpp in Sources */, + D5251E391538192700FC82C8 /* ReplicaManager3.cpp in Sources */, + D5251E3B1538192700FC82C8 /* Router2.cpp in Sources */, + D5251E3D1538192700FC82C8 /* RPC4Plugin.cpp in Sources */, + D5251E3F1538192700FC82C8 /* SecureHandshake.cpp in Sources */, + D5251E411538192700FC82C8 /* SendToThread.cpp in Sources */, + D5251E431538192700FC82C8 /* SHA1.cpp in Sources */, + D5251E451538192700FC82C8 /* SignaledEvent.cpp in Sources */, + D5251E471538192700FC82C8 /* SimpleMutex.cpp in Sources */, + D5251E491538192700FC82C8 /* SocketLayer.cpp in Sources */, + D5251E4B1538192700FC82C8 /* StringCompressor.cpp in Sources */, + D5251E4D1538192700FC82C8 /* StringTable.cpp in Sources */, + D5251E4F1538192700FC82C8 /* SuperFastHash.cpp in Sources */, + D5251E511538192700FC82C8 /* TableSerializer.cpp in Sources */, + D5251E531538192700FC82C8 /* TCPInterface.cpp in Sources */, + D5251E551538192700FC82C8 /* TeamBalancer.cpp in Sources */, + D5251E571538192700FC82C8 /* TelnetTransport.cpp in Sources */, + D5251E591538192700FC82C8 /* ThreadsafePacketLogger.cpp in Sources */, + D5251E5B1538192700FC82C8 /* TwoWayAuthentication.cpp in Sources */, + D5251E5D1538192700FC82C8 /* UDPForwarder.cpp in Sources */, + D5251E5F1538192700FC82C8 /* UDPProxyClient.cpp in Sources */, + D5251E611538192700FC82C8 /* UDPProxyCoordinator.cpp in Sources */, + D5251E631538192700FC82C8 /* UDPProxyServer.cpp in Sources */, + D5251E651538192700FC82C8 /* VariableDeltaSerializer.cpp in Sources */, + D5251E671538192700FC82C8 /* VariableListDeltaTracker.cpp in Sources */, + D5251E691538192700FC82C8 /* VariadicSQLParser.cpp in Sources */, + D5251E6B1538192700FC82C8 /* VitaIncludes.cpp in Sources */, + D5251E6D1538192700FC82C8 /* WSAStartupSingleton.cpp in Sources */, + D5251E911539A9AF00FC82C8 /* SoundEngine.mm in Sources */, + D5951EC7159347EE0043A12A /* FurnaceRecipes.cpp in Sources */, + D5951EC9159347EE0043A12A /* OreRecipes.cpp in Sources */, + D5951EDB159348C50043A12A /* InventoryPane.cpp in Sources */, + D5951EDD159348C50043A12A /* ItemPane.cpp in Sources */, + D5951EE3159349000043A12A /* FurnaceTile.cpp in Sources */, + D5951EE8159349100043A12A /* FurnaceTileEntity.cpp in Sources */, + D5951EEA159349100043A12A /* TileEntity.cpp in Sources */, + D5951EEE159349680043A12A /* FurnaceScreen.cpp in Sources */, + D5951EF115934A2D0043A12A /* Feature.cpp in Sources */, + D5951EF715934AC50043A12A /* BaseContainerMenu.cpp in Sources */, + D5951EF915934AC50043A12A /* FurnaceMenu.cpp in Sources */, + D5D381F215A1A1CF00B6C50E /* FillingContainer.cpp in Sources */, + D5D381F715A1A21800B6C50E /* EntityTile.cpp in Sources */, + D5D3820515A1A26000B6C50E /* ChestRenderer.cpp in Sources */, + D5D3820715A1A26000B6C50E /* TileEntityRenderDispatcher.cpp in Sources */, + D5D3820915A1A26000B6C50E /* TileEntityRenderer.cpp in Sources */, + D5D3820D15A1A2A000B6C50E /* EntityTileRenderer.cpp in Sources */, + D5D3821115A1A2C200B6C50E /* ChestTile.cpp in Sources */, + D5D3821415A1A5D100B6C50E /* ChestTileEntity.cpp in Sources */, + D5A6F8D115B45E2600819B71 /* ChestScreen.cpp in Sources */, + D5A6F8D615B45EE500819B71 /* ContainerMenu.cpp in Sources */, + D5ACF15615C01F7D00E21C22 /* ArrowRenderer.cpp in Sources */, + D5ACF17815C0220D00E21C22 /* Creeper.cpp in Sources */, + D5ACF17A15C0220D00E21C22 /* Monster.cpp in Sources */, + D5ACF17C15C0220D00E21C22 /* Skeleton.cpp in Sources */, + D5ACF17E15C0220D00E21C22 /* Spider.cpp in Sources */, + D5ACF18015C0220D00E21C22 /* Zombie.cpp in Sources */, + D5ACF18415C022B500E21C22 /* EntityFactory.cpp in Sources */, + D54493EF15D13BF0005FA9B0 /* BedTile.cpp in Sources */, + D54493F115D13BF0005FA9B0 /* CropTile.cpp in Sources */, + D54493F315D13BF0005FA9B0 /* GrassTile.cpp in Sources */, + D54493F915D13C35005FA9B0 /* HoeItem.cpp in Sources */, + D54493FD15D13C59005FA9B0 /* BedItem.cpp in Sources */, + D544940815D13DB7005FA9B0 /* ServerLevel.cpp in Sources */, + D544940A15D13DB7005FA9B0 /* ServerPlayer.cpp in Sources */, + D544941015D13E27005FA9B0 /* SimpleFoodData.cpp in Sources */, + D544941315D13E5A005FA9B0 /* FolderMethods.cpp in Sources */, + D544941615D13EE3005FA9B0 /* LevelStorageSource.cpp in Sources */, + D544941A15D13F06005FA9B0 /* TallGrass.cpp in Sources */, + D544941E15D13F45005FA9B0 /* PlayerRenderer.cpp in Sources */, + D544942215D13F5E005FA9B0 /* RemotePlayer.cpp in Sources */, + D5B17ED515E226F50056E751 /* Throwable.cpp in Sources */, + D5B17ED915E2273F0056E751 /* SurvivalMode.cpp in Sources */, + D5B17EDD15E227670056E751 /* TrapDoorTile.cpp in Sources */, + D5B17EE115E260910056E751 /* MoveFolder.mm in Sources */, + D5D8C48A16392FF000FD35F0 /* LightGemTile.cpp in Sources */, + D5D8C48C16392FF000FD35F0 /* Mushroom.cpp in Sources */, + D5D8C48E16392FF000FD35F0 /* StemTile.cpp in Sources */, + D5D8C4951639301700FD35F0 /* NetherReactorTileEntity.cpp in Sources */, + D5D8C4971639301700FD35F0 /* SignTileEntity.cpp in Sources */, + D5D8C49B1639305100FD35F0 /* PigZombie.cpp in Sources */, + D5D8C49F163930D600FD35F0 /* MelonTile.cpp in Sources */, + D5D8C4A3163930E600FD35F0 /* NetherReactor.cpp in Sources */, + D5D8C4A7163931F000FD35F0 /* InBedScreen.cpp in Sources */, + D5D8C4AB163932B900FD35F0 /* SignRenderer.cpp in Sources */, + D5D8C4AF163932CF00FD35F0 /* PaintingRenderer.cpp in Sources */, + D5D8C4B51639335000FD35F0 /* HangingEntity.cpp in Sources */, + D5D8C4B71639335000FD35F0 /* Painting.cpp in Sources */, + D5D8C4C31639341100FD35F0 /* Motive.cpp in Sources */, + D5D8C4C7163934BB00FD35F0 /* HangingEntityItem.cpp in Sources */, + D5D8C4CB1639362F00FD35F0 /* NetherReactorPattern.cpp in Sources */, + 0419D99B167F201B0080CB96 /* SheepFurModel.cpp in Sources */, + 0419D99C167F201B0080CB96 /* SheepModel.cpp in Sources */, + 0419D99F167F206A0080CB96 /* CommandServer.cpp in Sources */, + 0419D9A2167F20CC0080CB96 /* SheepRenderer.cpp in Sources */, + 0419D9AB167F211B0080CB96 /* ChooseLevelScreen.cpp in Sources */, + 0419D9AC167F211B0080CB96 /* SimpleChooseLevelScreen.cpp in Sources */, + 0419D9AD167F211B0080CB96 /* TextEditScreen.cpp in Sources */, + 0419D9B2167F21BC0080CB96 /* PaneCraftingScreen.cpp in Sources */, + 0419D9B3167F21BC0080CB96 /* WorkbenchScreen.cpp in Sources */, + 0419D9B7167F22150080CB96 /* AgableMob.cpp in Sources */, + 0419D9BA167F2A720080CB96 /* ShowKeyboardView.mm in Sources */, + 044129071682FF9600B70EE6 /* MouseHandler.cpp in Sources */, + 0400453716A41236003EB6FA /* HeavyTile.cpp in Sources */, + 0400453A16A4125C003EB6FA /* FallingTileRenderer.cpp in Sources */, + 0413970716A82E1E008A9F1A /* ArmorItem.cpp in Sources */, + 0413970D16A82E6B008A9F1A /* CraftingFilters.cpp in Sources */, + 0413970E16A82E6B008A9F1A /* StonecutterScreen.cpp in Sources */, + 0413971116A82E7B008A9F1A /* ArmorScreen.cpp in Sources */, + 0413971516A82EB9008A9F1A /* ArmorRecipes.cpp in Sources */, + 0413971716A82EF5008A9F1A /* StairTile.cpp in Sources */, + 042A91AD16B17517007ABBC6 /* GButton.cpp in Sources */, + 042A91AE16B17517007ABBC6 /* GuiElement.cpp in Sources */, + 042A91AF16B17517007ABBC6 /* NinePatch.cpp in Sources */, + 042A91B016B17517007ABBC6 /* OptionsGroup.cpp in Sources */, + 042A91B116B17517007ABBC6 /* OptionsPane.cpp in Sources */, + 042A91B216B17517007ABBC6 /* TextBox.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + D5CF9C53144C225000E4244F /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + D5CF9C54144C225000E4244F /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + D5CF9C5C144C225000E4244F /* MainWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + D5CF9C5D144C225000E4244F /* en */, + ); + name = MainWindow.xib; + sourceTree = ""; + }; + D5CF9C69144C225000E4244F /* minecraftpeViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + D5CF9C6A144C225000E4244F /* en */, + ); + name = minecraftpeViewController.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + D50BE20815EE05B8008AA75E /* Ad-Hoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB"; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = PUBLISH; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "C93D3524-5C6F-466E-B12B-833663B7EAE0"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = "Ad-Hoc"; + }; + D50BE20915EE05B8008AA75E /* Ad-Hoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ""; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + PRODUCT_NAME = "$(TARGET_NAME)"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = "Ad-Hoc"; + }; + D50BE20A15EE05B8008AA75E /* Ad-Hoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpedemo-info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DDEMO_MODE", + ); + "OTHER_CPLUSPLUSFLAGS[arch=*]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = minecraftpe.demo; + RUN_CLANG_STATIC_ANALYZER = NO; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = "Ad-Hoc"; + }; + D58BB5B3146A0B920002C9F5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpedemo-info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + OTHER_CFLAGS = "-DDEMO_MODE"; + PRODUCT_NAME = minecraftpe.demo; + RUN_CLANG_STATIC_ANALYZER = NO; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + D58BB5B4146A0B920002C9F5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpedemo-info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DDEMO_MODE", + ); + "OTHER_CPLUSPLUSFLAGS[arch=*]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = minecraftpe.demo; + RUN_CLANG_STATIC_ANALYZER = NO; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + D5A20ADB146AAD9C00A52FEC /* AppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB"; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "64BA8967-1A9A-4980-972C-42E75AD5E023"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = AppStore; + }; + D5A20ADC146AAD9C00A52FEC /* AppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = PUBLISH; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DANDROID_PUBLISH", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "1B194957-98CF-49B7-A0E7-76692B4B722D"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = AppStore; + }; + D5A20ADD146AAD9C00A52FEC /* AppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpedemo-info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DDEMO_MODE", + "-DANDROID_PUBLISH", + ); + PRODUCT_NAME = minecraftpe.demo; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + RUN_CLANG_STATIC_ANALYZER = NO; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = AppStore; + }; + D5CF9C6C144C225000E4244F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + PUBLISH, + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + D5CF9C6D144C225000E4244F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = PUBLISH; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + D5CF9C6F144C225000E4244F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + PRODUCT_NAME = "$(TARGET_NAME)"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + D5CF9C70144C225000E4244F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ""; + "GCC_THUMB_SUPPORT[arch=armv7]" = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + PRODUCT_NAME = "$(TARGET_NAME)"; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos6.0; + VALID_ARCHS = "i386 armv6 armv7"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D58BB5B2146A0B920002C9F5 /* Build configuration list for PBXNativeTarget "minecraftpe.demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D58BB5B3146A0B920002C9F5 /* Debug */, + D58BB5B4146A0B920002C9F5 /* Release */, + D50BE20A15EE05B8008AA75E /* Ad-Hoc */, + D5A20ADD146AAD9C00A52FEC /* AppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D5CF9C3C144C225000E4244F /* Build configuration list for PBXProject "minecraftpe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D5CF9C6C144C225000E4244F /* Debug */, + D5CF9C6D144C225000E4244F /* Release */, + D50BE20815EE05B8008AA75E /* Ad-Hoc */, + D5A20ADB146AAD9C00A52FEC /* AppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D5CF9C6E144C225000E4244F /* Build configuration list for PBXNativeTarget "minecraftpe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D5CF9C6F144C225000E4244F /* Debug */, + D5CF9C70144C225000E4244F /* Release */, + D50BE20915EE05B8008AA75E /* Ad-Hoc */, + D5A20ADC146AAD9C00A52FEC /* AppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D5CF9C39144C225000E4244F /* Project object */; +} diff --git a/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000..f17c5e6 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/xcuserdata/new.xcuserdatad/UserInterfaceState.xcuserstate b/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/xcuserdata/new.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 0000000..3c4cdad --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/xcuserdata/new.xcuserdatad/UserInterfaceState.xcuserstate @@ -0,0 +1,15821 @@ + + + + + $archiver + NSKeyedArchiver + $objects + + $null + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 2 + + + CF$UID + 3 + + + CF$UID + 4 + + + NS.objects + + + CF$UID + 5 + + + CF$UID + 819 + + + CF$UID + 971 + + + + IDEWorkspaceDocument + 79915ECB-7161-463E-B2BF-AB582B05153A + 784EACEA-54C8-46B0-B40D-9EE9F0F94AE3 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 6 + + + CF$UID + 7 + + + CF$UID + 8 + + + CF$UID + 9 + + + CF$UID + 10 + + + CF$UID + 11 + + + CF$UID + 12 + + + CF$UID + 13 + + + CF$UID + 14 + + + CF$UID + 15 + + + CF$UID + 16 + + + NS.objects + + + CF$UID + 17 + + + CF$UID + 18 + + + CF$UID + 41 + + + CF$UID + 726 + + + CF$UID + 731 + + + CF$UID + 734 + + + CF$UID + 765 + + + CF$UID + 766 + + + CF$UID + 798 + + + CF$UID + 240 + + + CF$UID + 240 + + + + BreakpointsActivated + DefaultEditorStatesForURLs + DebuggingWindowBehavior + ActiveRunDestination + ActiveScheme + LastCompletedPersistentSchemeBasedActivityReport + DocumentWindows + DefaultEditorFrameSizeForURLs + RecentEditorDocumentURLs + AppFocusInMiniDebugging + MiniDebuggingConsole + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 19 + + + CF$UID + 20 + + + CF$UID + 21 + + + CF$UID + 22 + + + CF$UID + 23 + + + CF$UID + 24 + + + CF$UID + 25 + + + NS.objects + + + CF$UID + 26 + + + CF$UID + 56 + + + CF$UID + 78 + + + CF$UID + 524 + + + CF$UID + 613 + + + CF$UID + 617 + + + CF$UID + 722 + + + + IDEQuickLookEditor.Editor + Xcode.IDEKit.EditorDocument.PlistEditor + Xcode.IDEKit.EditorDocument.SourceCode + Xcode.IDEKit.CocoaTouchIntegration.EditorDocument.CocoaTouch + Xcode.IDEKit.EditorDocument.SourceCodeComparisonEditor + Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project + Xcode.IDEKit.EditorDocument.LogDocument + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 27 + + + CF$UID + 31 + + + CF$UID + 33 + + + NS.objects + + + CF$UID + 35 + + + CF$UID + 45 + + + CF$UID + 51 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 28 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/data/fonts/Minecraft.ttf + + + $classes + + NSMutableString + NSString + NSObject + + $classname + NSMutableString + + + $classes + + NSURL + NSObject + + $classname + NSURL + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 32 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/data/images/terrain.png + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 34 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/data/fonts/minecraft.ttf + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 36 + + + NS.objects + + + CF$UID + 37 + + + + SelectedDocumentLocations + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 38 + + + + + $class + + CF$UID + 42 + + IDEQuickLookPageNumber + + CF$UID + 41 + + documentURL + + CF$UID + 39 + + timestamp + + CF$UID + 40 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/data/fonts/Minecraft.ttf + + 340835756.18714702 + 0 + + $classes + + IDEQuickLookDocumentLocation + DVTDocumentLocation + NSObject + + $classname + IDEQuickLookDocumentLocation + + + $classes + + NSArray + NSObject + + $classname + NSArray + + + $classes + + NSMutableDictionary + NSDictionary + NSObject + + $classname + NSMutableDictionary + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 46 + + + NS.objects + + + CF$UID + 47 + + + + SelectedDocumentLocations + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 48 + + + + + $class + + CF$UID + 42 + + IDEQuickLookPageNumber + + CF$UID + 41 + + documentURL + + CF$UID + 49 + + timestamp + + CF$UID + 50 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/data/images/terrain.png + 340552287.74712098 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 36 + + + NS.objects + + + CF$UID + 52 + + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 53 + + + + + $class + + CF$UID + 42 + + IDEQuickLookPageNumber + + CF$UID + 41 + + documentURL + + CF$UID + 54 + + timestamp + + CF$UID + 55 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/data/fonts/minecraft.ttf + 340835748.23811901 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 57 + + + CF$UID + 59 + + + NS.objects + + + CF$UID + 61 + + + CF$UID + 72 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 58 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe-Info.plist + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 60 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/Settings.bundle/Root.plist + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 62 + + + CF$UID + 63 + + + CF$UID + 64 + + + NS.objects + + + CF$UID + 65 + + + CF$UID + 66 + + + CF$UID + 67 + + + + IDE_PLIST_EDITOR_SELECTION_KEY + IDE_PLIST_EDITOR_VISIBLERECT_KEY + IDE_PLIST_EDITOR_EXPANSION_KEY + + $class + + CF$UID + 43 + + NS.objects + + + {{29, 0}, {342, 622}} + + $class + + CF$UID + 71 + + NS.objects + + + CF$UID + 68 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 69 + + + + UIAppFonts + + $classes + + NSMutableArray + NSArray + NSObject + + $classname + NSMutableArray + + + $classes + + NSMutableSet + NSSet + NSObject + + $classname + NSMutableSet + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 62 + + + CF$UID + 63 + + + CF$UID + 64 + + + NS.objects + + + CF$UID + 73 + + + CF$UID + 75 + + + CF$UID + 76 + + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 74 + + + + PreferenceSpecifiers + {{0, 0}, {1060, 943}} + + $class + + CF$UID + 71 + + NS.objects + + + CF$UID + 77 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 74 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 79 + + + CF$UID + 81 + + + CF$UID + 83 + + + CF$UID + 85 + + + CF$UID + 87 + + + CF$UID + 89 + + + CF$UID + 91 + + + CF$UID + 93 + + + CF$UID + 95 + + + CF$UID + 97 + + + CF$UID + 99 + + + CF$UID + 101 + + + CF$UID + 103 + + + CF$UID + 105 + + + CF$UID + 107 + + + CF$UID + 109 + + + CF$UID + 111 + + + CF$UID + 113 + + + CF$UID + 115 + + + CF$UID + 117 + + + CF$UID + 119 + + + CF$UID + 121 + + + CF$UID + 123 + + + CF$UID + 125 + + + CF$UID + 127 + + + CF$UID + 129 + + + CF$UID + 131 + + + CF$UID + 133 + + + CF$UID + 135 + + + CF$UID + 137 + + + CF$UID + 139 + + + CF$UID + 141 + + + CF$UID + 143 + + + CF$UID + 145 + + + CF$UID + 147 + + + CF$UID + 149 + + + CF$UID + 151 + + + CF$UID + 153 + + + CF$UID + 155 + + + CF$UID + 157 + + + CF$UID + 159 + + + CF$UID + 161 + + + CF$UID + 163 + + + CF$UID + 165 + + + CF$UID + 167 + + + CF$UID + 169 + + + CF$UID + 171 + + + CF$UID + 173 + + + CF$UID + 175 + + + CF$UID + 177 + + + CF$UID + 179 + + + CF$UID + 181 + + + CF$UID + 183 + + + CF$UID + 185 + + + CF$UID + 187 + + + CF$UID + 189 + + + CF$UID + 191 + + + CF$UID + 193 + + + CF$UID + 195 + + + CF$UID + 197 + + + CF$UID + 199 + + + CF$UID + 201 + + + CF$UID + 203 + + + CF$UID + 205 + + + CF$UID + 207 + + + CF$UID + 209 + + + CF$UID + 211 + + + CF$UID + 213 + + + CF$UID + 215 + + + CF$UID + 217 + + + CF$UID + 219 + + + CF$UID + 221 + + + CF$UID + 223 + + + CF$UID + 225 + + + CF$UID + 227 + + + CF$UID + 229 + + + CF$UID + 231 + + + NS.objects + + + CF$UID + 233 + + + CF$UID + 242 + + + CF$UID + 246 + + + CF$UID + 249 + + + CF$UID + 257 + + + CF$UID + 261 + + + CF$UID + 265 + + + CF$UID + 269 + + + CF$UID + 273 + + + CF$UID + 277 + + + CF$UID + 280 + + + CF$UID + 283 + + + CF$UID + 287 + + + CF$UID + 290 + + + CF$UID + 294 + + + CF$UID + 298 + + + CF$UID + 301 + + + CF$UID + 305 + + + CF$UID + 309 + + + CF$UID + 312 + + + CF$UID + 316 + + + CF$UID + 319 + + + CF$UID + 323 + + + CF$UID + 326 + + + CF$UID + 330 + + + CF$UID + 333 + + + CF$UID + 336 + + + CF$UID + 340 + + + CF$UID + 344 + + + CF$UID + 347 + + + CF$UID + 351 + + + CF$UID + 355 + + + CF$UID + 359 + + + CF$UID + 363 + + + CF$UID + 367 + + + CF$UID + 371 + + + CF$UID + 375 + + + CF$UID + 378 + + + CF$UID + 382 + + + CF$UID + 385 + + + CF$UID + 388 + + + CF$UID + 392 + + + CF$UID + 396 + + + CF$UID + 400 + + + CF$UID + 403 + + + CF$UID + 406 + + + CF$UID + 410 + + + CF$UID + 414 + + + CF$UID + 418 + + + CF$UID + 421 + + + CF$UID + 425 + + + CF$UID + 429 + + + CF$UID + 433 + + + CF$UID + 437 + + + CF$UID + 441 + + + CF$UID + 445 + + + CF$UID + 449 + + + CF$UID + 453 + + + CF$UID + 457 + + + CF$UID + 460 + + + CF$UID + 464 + + + CF$UID + 467 + + + CF$UID + 471 + + + CF$UID + 475 + + + CF$UID + 478 + + + CF$UID + 481 + + + CF$UID + 484 + + + CF$UID + 487 + + + CF$UID + 491 + + + CF$UID + 495 + + + CF$UID + 499 + + + CF$UID + 503 + + + CF$UID + 506 + + + CF$UID + 510 + + + CF$UID + 514 + + + CF$UID + 516 + + + CF$UID + 520 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 80 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/screens/DialogDefinitions.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 82 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/TextureData.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 84 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/main_android.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 86 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/GameRenderer.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 88 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorldViewController.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 90 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/platform/audio/SoundSystemSL.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 92 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/IDialog.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 94 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 96 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/screens/OptionsScreen.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 98 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/components/RolledSelectionListV.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 100 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/Shaders/Shader.fsh + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 102 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/App.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 104 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/main.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 106 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_iOS.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 108 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/Screen.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 110 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/var/folders/Lm/Lm8jDJi3HfSE0j-mr0xqIk+++TQ/-Tmp-/forwardMethod2_disassembly_0x009230f4.s + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 112 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/gles.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 114 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/DialogViewController.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 116 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/sound/SoundEngine.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 118 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/platform/input/Mouse.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 120 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/NewWorldViewController.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 122 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/NewWorldViewController.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 124 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/var/folders/Lm/Lm8jDJi3HfSE0j-mr0xqIk+++TQ/-Tmp-/UIApplicationMain_disassembly_0x00863c93.s + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 126 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/EAGLView.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 128 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/main.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 130 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/EAGLView.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 132 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/platform/log.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 134 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/raknet/Export.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 136 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_android.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 138 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorldViewController.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 140 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/screens/touch/TouchSelectWorldScreen.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 142 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_iOS.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 144 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/raknet/SocketLayer.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 146 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/platform/input/Multitouch.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 148 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CADisplayLink.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 150 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 152 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/Minecraft.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 154 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_win32.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 156 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/en.lproj/InfoPlist.strings + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 158 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/en.lproj/InfoPlist.strings + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 160 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeViewController.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 162 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/minecraftpeViewController.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 164 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGGeometry.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 166 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/Minecraft.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 168 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/player/input/touchscreen/TouchscreenInput.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 170 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/DialogViewController.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 172 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 174 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_iOS.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 176 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/platform/audio/SoundSystemSL.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 178 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeAppDelegate.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 180 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/Options.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 182 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/platform/audio/SoundSystem.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 184 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/BaseDialogController.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 186 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 188 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/BaseDialogController.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 190 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/minecraftpeViewController.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 192 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeViewController.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 194 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/NewWorldViewController.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 196 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/var/folders/Lm/Lm8jDJi3HfSE0j-mr0xqIk+++TQ/-Tmp-/-%5BUIViewController%20view%5D_disassembly_0x0090500e.s + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 198 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorldViewController.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 200 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/Settings.bundle/en.lproj/Root.strings + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 202 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeViewController.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 204 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeAppDelegate.mm + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 206 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/var/folders/Lm/Lm8jDJi3HfSE0j-mr0xqIk+++TQ/-Tmp-/__kill_disassembly_0x97acec5a.s + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 208 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/GameRenderer.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 210 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_win32.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 212 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/minecraftpeAppDelegate.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 214 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeAppDelegate.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 216 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 218 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/util/StringUtils.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 220 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/NinecraftApp.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 222 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/raknet/Gets.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 224 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/Tesselator.cpp + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 226 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/BaseDialogController.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 228 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/main.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 230 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/EAGLView.m + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 232 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/EAGLView.m + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 238 + + + CF$UID + 239 + + + CF$UID + 240 + + + CF$UID + 241 + + + + PrimaryDocumentTimestamp + PrimaryDocumentVisibleCharacterRange + HideAllIssues + PrimaryDocumentSelectedCharacterRange + 340797362.26324201 + {0, 442} + + {0, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 243 + + + CF$UID + 244 + + + CF$UID + 240 + + + CF$UID + 245 + + + + 340556174.15654498 + {0, 416} + {342, 16} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 247 + + + CF$UID + 248 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340543736.64223099 + {0, 2315} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 254 + + + CF$UID + 255 + + + CF$UID + 240 + + + CF$UID + 256 + + + + PrimaryDocumentTimestamp + PrimaryDocumentVisibleCharacterRange + HideAllIssues + PrimaryDocumentSelectedCharacterRange + 340881331.67176199 + {818, 1855} + {1813, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 258 + + + CF$UID + 259 + + + CF$UID + 240 + + + CF$UID + 260 + + + + 340880024.17810303 + {0, 532} + {378, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 262 + + + CF$UID + 263 + + + CF$UID + 240 + + + CF$UID + 264 + + + + 340537053.91864598 + {0, 1653} + {82, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 266 + + + CF$UID + 267 + + + CF$UID + 240 + + + CF$UID + 268 + + + + 340818152.711968 + {0, 434} + {233, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 270 + + + CF$UID + 271 + + + CF$UID + 240 + + + CF$UID + 272 + + + + 340813265.18082899 + {584, 1821} + {1551, 49} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 274 + + + CF$UID + 275 + + + CF$UID + 240 + + + CF$UID + 276 + + + + 340797352.72316301 + {0, 662} + {348, 15} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 278 + + + CF$UID + 279 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340552607.17585999 + {5034, 1964} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 281 + + + CF$UID + 282 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340535047.16882098 + {0, 214} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 284 + + + CF$UID + 285 + + + CF$UID + 240 + + + CF$UID + 286 + + + + 340546757.78471798 + {36, 1455} + {234, 1} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 288 + + + CF$UID + 289 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340794732.92188603 + {0, 351} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 291 + + + CF$UID + 292 + + + CF$UID + 240 + + + CF$UID + 293 + + + + 340880996.53916597 + {0, 1432} + {831, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 295 + + + CF$UID + 296 + + + CF$UID + 240 + + + CF$UID + 297 + + + + 340549568.61774498 + {985, 1718} + {1284, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 299 + + + CF$UID + 300 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340719690.00321299 + {0, 1474} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 302 + + + CF$UID + 303 + + + CF$UID + 240 + + + CF$UID + 304 + + + + 340791960.33875799 + {7772, 2641} + {9039, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 306 + + + CF$UID + 307 + + + CF$UID + 240 + + + CF$UID + 308 + + + + 340820368.83969098 + {0, 292} + {229, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 310 + + + CF$UID + 311 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340543693.59852898 + {0, 1843} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 313 + + + CF$UID + 314 + + + CF$UID + 240 + + + CF$UID + 315 + + + + 340542672.96054202 + {0, 1537} + {57, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 317 + + + CF$UID + 318 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340791173.30940902 + {0, 205} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 320 + + + CF$UID + 321 + + + CF$UID + 240 + + + CF$UID + 322 + + + + 340721099.53803903 + {0, 2751} + {152, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 324 + + + CF$UID + 325 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340794303.946724 + {552, 2698} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 327 + + + CF$UID + 328 + + + CF$UID + 240 + + + CF$UID + 329 + + + + 340542222.46729898 + {0, 1006} + {711, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 331 + + + CF$UID + 332 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340543736.58116603 + {0, 614} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 334 + + + CF$UID + 335 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340880377.39120603 + {0, 1006} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 337 + + + CF$UID + 338 + + + CF$UID + 240 + + + CF$UID + 339 + + + + 340791705.60145098 + {0, 1143} + {31, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 341 + + + CF$UID + 342 + + + CF$UID + 240 + + + CF$UID + 343 + + + + 340791881.81944698 + {0, 624} + {624, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 345 + + + CF$UID + 346 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340569602.63351899 + {0, 1001} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 348 + + + CF$UID + 349 + + + CF$UID + 240 + + + CF$UID + 350 + + + + 340801068.43568701 + {0, 1627} + {1005, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 352 + + + CF$UID + 353 + + + CF$UID + 240 + + + CF$UID + 354 + + + + 340806194.817976 + {9965, 2382} + {10922, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 356 + + + CF$UID + 357 + + + CF$UID + 240 + + + CF$UID + 358 + + + + 340880953.02688998 + {0, 3073} + {602, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 360 + + + CF$UID + 361 + + + CF$UID + 240 + + + CF$UID + 362 + + + + 340549731.21460402 + {33366, 2268} + {34660, 13} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 364 + + + CF$UID + 365 + + + CF$UID + 240 + + + CF$UID + 366 + + + + 340619580.77385199 + {2287, 1774} + {2974, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 368 + + + CF$UID + 369 + + + CF$UID + 240 + + + CF$UID + 370 + + + + 340544930.076747 + {0, 2160} + {253, 36} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 372 + + + CF$UID + 373 + + + CF$UID + 240 + + + CF$UID + 374 + + + + 340555058.96936399 + {7851, 2942} + {9912, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 376 + + + CF$UID + 377 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340798053.717143 + {0, 1728} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 379 + + + CF$UID + 380 + + + CF$UID + 240 + + + CF$UID + 381 + + + + 340543738.26107401 + {0, 2048} + {1364, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 383 + + + CF$UID + 384 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340535143.56444699 + {0, 45} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 386 + + + CF$UID + 387 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340832546.239977 + {0, 45} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 389 + + + CF$UID + 390 + + + CF$UID + 240 + + + CF$UID + 391 + + + + 340542704.19813299 + {2727, 1915} + {4014, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 393 + + + CF$UID + 394 + + + CF$UID + 240 + + + CF$UID + 395 + + + + 340542488.42374998 + {0, 1644} + {262, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 397 + + + CF$UID + 398 + + + CF$UID + 240 + + + CF$UID + 399 + + + + 340721233.38726699 + {6543, 2401} + {8362, 64} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 401 + + + CF$UID + 402 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340806146.26956999 + {8204, 1008} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 404 + + + CF$UID + 405 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340791778.57001102 + {0, 1767} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 407 + + + CF$UID + 408 + + + CF$UID + 240 + + + CF$UID + 409 + + + + 340820368.61087102 + {0, 1507} + {1234, 40} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 411 + + + CF$UID + 412 + + + CF$UID + 240 + + + CF$UID + 413 + + + + 340718272.14271599 + {1831, 2832} + {3554, 71} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 415 + + + CF$UID + 416 + + + CF$UID + 240 + + + CF$UID + 417 + + + + 340555188.66517597 + {0, 2804} + {564, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 419 + + + CF$UID + 420 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340543820.84202802 + {0, 2164} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 422 + + + CF$UID + 423 + + + CF$UID + 240 + + + CF$UID + 424 + + + + 340545673.26639402 + {0, 2512} + {1170, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 426 + + + CF$UID + 427 + + + CF$UID + 240 + + + CF$UID + 428 + + + + 340791793.2701 + {0, 2326} + {453, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 430 + + + CF$UID + 431 + + + CF$UID + 240 + + + CF$UID + 432 + + + + 340537119.896873 + {0, 715} + {213, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 434 + + + CF$UID + 435 + + + CF$UID + 240 + + + CF$UID + 436 + + + + 340818442.000642 + {0, 676} + {582, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 438 + + + CF$UID + 439 + + + CF$UID + 240 + + + CF$UID + 440 + + + + 340541956.40699601 + {2359, 2267} + {3622, 2} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 442 + + + CF$UID + 443 + + + CF$UID + 240 + + + CF$UID + 444 + + + + 340818465.07652301 + {143, 1130} + {239, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 446 + + + CF$UID + 447 + + + CF$UID + 240 + + + CF$UID + 448 + + + + 340533993.85081398 + {0, 621} + {345, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 450 + + + CF$UID + 451 + + + CF$UID + 240 + + + CF$UID + 452 + + + + 340817874.976358 + {0, 1236} + {895, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 454 + + + CF$UID + 455 + + + CF$UID + 240 + + + CF$UID + 456 + + + + 340791172.97589397 + {2292, 2497} + {4301, 482} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 458 + + + CF$UID + 459 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340719719.164024 + {0, 2730} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 461 + + + CF$UID + 462 + + + CF$UID + 240 + + + CF$UID + 463 + + + + 340881331.67212301 + {0, 1006} + {918, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 465 + + + CF$UID + 466 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340866832.71621799 + {0, 84} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 468 + + + CF$UID + 469 + + + CF$UID + 240 + + + CF$UID + 470 + + + + 340880948.05918503 + {4485, 2547} + {6008, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 472 + + + CF$UID + 473 + + + CF$UID + 240 + + + CF$UID + 474 + + + + 340880045.64691103 + {0, 2512} + {510, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 476 + + + CF$UID + 477 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340793926.08398598 + {0, 344} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 479 + + + CF$UID + 480 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340880997.68194598 + {0, 1531} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 482 + + + CF$UID + 483 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340543749.19830197 + {0, 211} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 485 + + + CF$UID + 486 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340535142.91634798 + {0, 422} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 488 + + + CF$UID + 489 + + + CF$UID + 240 + + + CF$UID + 490 + + + + 340880023.24976403 + {0, 444} + {437, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 492 + + + CF$UID + 493 + + + CF$UID + 240 + + + CF$UID + 494 + + + + 340718295.006329 + {810, 1002} + {1205, 33} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 496 + + + CF$UID + 497 + + + CF$UID + 240 + + + CF$UID + 498 + + + + 340877860.08079201 + {0, 1507} + {502, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 500 + + + CF$UID + 501 + + + CF$UID + 240 + + + CF$UID + 502 + + + + 340557391.98813099 + {1065, 1436} + {2499, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 504 + + + CF$UID + 505 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340555057.11852503 + {0, 426} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 507 + + + CF$UID + 508 + + + CF$UID + 240 + + + CF$UID + 509 + + + + 340552679.71372902 + {6566, 1976} + {7024, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 511 + + + CF$UID + 512 + + + CF$UID + 240 + + + CF$UID + 513 + + + + 340801213.55270803 + {0, 343} + {215, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 515 + + + CF$UID + 289 + + + CF$UID + 240 + + + CF$UID + 241 + + + + 340535146.379291 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 517 + + + CF$UID + 518 + + + CF$UID + 240 + + + CF$UID + 519 + + + + 340542225.89964199 + {1188, 2517} + {3059, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 521 + + + CF$UID + 522 + + + CF$UID + 240 + + + CF$UID + 523 + + + + 340880832.02061498 + {0, 1737} + {1064, 0} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 525 + + + CF$UID + 527 + + + CF$UID + 529 + + + CF$UID + 531 + + + CF$UID + 533 + + + CF$UID + 535 + + + CF$UID + 537 + + + CF$UID + 539 + + + CF$UID + 541 + + + NS.objects + + + CF$UID + 543 + + + CF$UID + 556 + + + CF$UID + 567 + + + CF$UID + 579 + + + CF$UID + 586 + + + CF$UID + 592 + + + CF$UID + 598 + + + CF$UID + 602 + + + CF$UID + 608 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 526 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorld_modal.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 528 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/minecraftpe-Info.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 530 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorld_ipad.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 532 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/en.lproj/MainWindow.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 534 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/DialogView.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 536 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/DialogViewController.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 538 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/NewWorld.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 540 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/en.lproj/minecraftpeViewController.xib + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 542 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorld.xib + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 544 + + + CF$UID + 545 + + + CF$UID + 546 + + + CF$UID + 547 + + + NS.objects + + + CF$UID + 548 + + + CF$UID + 549 + + + CF$UID + 547 + + + CF$UID + 551 + + + + IBDockViewController + SelectedObjectIDs + SelectionProvider + IBCanvasViewController + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + 1 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 552 + + + CF$UID + 553 + + + NS.objects + + + CF$UID + 554 + + + CF$UID + 555 + + + + ObjectIDToLastKnownCanvasPositionMap + EditedTopLevelObjectIDs + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 544 + + + CF$UID + 545 + + + CF$UID + 546 + + + CF$UID + 547 + + + NS.objects + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 547 + + + CF$UID + 559 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 552 + + + CF$UID + 553 + + + NS.objects + + + CF$UID + 560 + + + CF$UID + 566 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 561 + + + CF$UID + 550 + + + CF$UID + 562 + + + NS.objects + + + CF$UID + 563 + + + CF$UID + 564 + + + CF$UID + 565 + + + + 9 + 10 + {285, 330} + {47, 204} + {104, 180} + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 568 + + + CF$UID + 569 + + + CF$UID + 570 + + + CF$UID + 571 + + + NS.objects + + + CF$UID + 572 + + + CF$UID + 573 + + + CF$UID + 571 + + + CF$UID + 574 + + + + IBDockViewController + SelectedObjectIDs + SelectionProvider + IBCanvasViewController + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 561 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 575 + + + CF$UID + 576 + + + NS.objects + + + CF$UID + 577 + + + CF$UID + 578 + + + + ObjectIDToLastKnownCanvasPositionMap + EditedTopLevelObjectIDs + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 561 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 544 + + + CF$UID + 545 + + + CF$UID + 546 + + + CF$UID + 547 + + + NS.objects + + + CF$UID + 580 + + + CF$UID + 581 + + + CF$UID + 547 + + + CF$UID + 583 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 582 + + + + 2 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 552 + + + CF$UID + 553 + + + NS.objects + + + CF$UID + 584 + + + CF$UID + 585 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 562 + + + CF$UID + 582 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 544 + + + CF$UID + 545 + + + CF$UID + 546 + + + CF$UID + 547 + + + NS.objects + + + CF$UID + 587 + + + CF$UID + 588 + + + CF$UID + 547 + + + CF$UID + 589 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 552 + + + CF$UID + 553 + + + NS.objects + + + CF$UID + 590 + + + CF$UID + 591 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 544 + + + CF$UID + 545 + + + CF$UID + 546 + + + CF$UID + 547 + + + NS.objects + + + CF$UID + 593 + + + CF$UID + 594 + + + CF$UID + 547 + + + CF$UID + 595 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 552 + + + CF$UID + 553 + + + NS.objects + + + CF$UID + 596 + + + CF$UID + 597 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 544 + + + CF$UID + 545 + + + CF$UID + 546 + + + CF$UID + 547 + + + NS.objects + + + CF$UID + 599 + + + CF$UID + 65 + + + CF$UID + 547 + + + CF$UID + 600 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 552 + + + CF$UID + 553 + + + NS.objects + + + CF$UID + 560 + + + CF$UID + 601 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 568 + + + CF$UID + 569 + + + CF$UID + 570 + + + CF$UID + 571 + + + NS.objects + + + CF$UID + 603 + + + CF$UID + 604 + + + CF$UID + 571 + + + CF$UID + 605 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 582 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 575 + + + CF$UID + 576 + + + NS.objects + + + CF$UID + 606 + + + CF$UID + 607 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 582 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 568 + + + CF$UID + 569 + + + CF$UID + 570 + + + CF$UID + 571 + + + NS.objects + + + CF$UID + 609 + + + CF$UID + 65 + + + CF$UID + 610 + + + CF$UID + 611 + + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + IBStructureViewController + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 575 + + + CF$UID + 576 + + + NS.objects + + + CF$UID + 560 + + + CF$UID + 612 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 561 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 121 + + + NS.objects + + + CF$UID + 614 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 237 + + + CF$UID + 234 + + + CF$UID + 235 + + + NS.objects + + + CF$UID + 241 + + + CF$UID + 615 + + + CF$UID + 616 + + + + 340720890.35966402 + {182, 2705} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 618 + + + CF$UID + 620 + + + NS.objects + + + CF$UID + 622 + + + CF$UID + 694 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 619 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe.xcodeproj + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 621 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe.xcodeproj/ + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 623 + + + CF$UID + 624 + + + CF$UID + 625 + + + CF$UID + 626 + + + CF$UID + 627 + + + CF$UID + 628 + + + NS.objects + + + CF$UID + 629 + + + CF$UID + 630 + + + CF$UID + 641 + + + CF$UID + 642 + + + CF$UID + 678 + + + CF$UID + 679 + + + + Xcode3ProjectEditorPreviousProjectEditorClass + Xcode3ProjectEditor.sourceList.splitview + Xcode3ProjectEditorPreviousTargetEditorClass + Xcode3ProjectEditorSelectedDocumentLocations + Xcode3ProjectEditor_Xcode3BuildSettingsEditor + Xcode3ProjectEditor_Xcode3BuildPhasesEditor + Xcode3BuildSettingsEditor + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 631 + + + NS.objects + + + CF$UID + 632 + + + + DVTSplitViewItems + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 633 + + + CF$UID + 639 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 634 + + + CF$UID + 635 + + + NS.objects + + + CF$UID + 636 + + + CF$UID + 637 + + + + DVTIdentifier + DVTViewMagnitude + + 170 + + $classes + + NSDictionary + NSObject + + $classname + NSDictionary + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 634 + + + CF$UID + 635 + + + NS.objects + + + CF$UID + 636 + + + CF$UID + 640 + + + + 1490 + Xcode3BuildPhasesEditor + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 643 + + + + + $class + + CF$UID + 677 + + documentURL + + CF$UID + 644 + + selection + + CF$UID + 646 + + timestamp + + CF$UID + 645 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe.xcodeproj/ + 340536604.39212799 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 647 + + + CF$UID + 648 + + + CF$UID + 649 + + + NS.objects + + + CF$UID + 650 + + + CF$UID + 629 + + + CF$UID + 651 + + + + Project + Editor + Xcode3BuildSettingsEditorLocations + minecraftpe + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 652 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 653 + + + CF$UID + 654 + + + CF$UID + 655 + + + CF$UID + 656 + + + CF$UID + 657 + + + CF$UID + 658 + + + NS.objects + + + CF$UID + 550 + + + CF$UID + 659 + + + CF$UID + 41 + + + CF$UID + 41 + + + CF$UID + 660 + + + CF$UID + 550 + + + + Xcode3BuildSettingsEditorMode + Selected Build Properties + Xcode3BuildSettingsEditorDisplayMode + Xcode3BuildPropertyValueDisplayMode + Collapsed Build Property Categories + Xcode3BuildPropertyNameDisplayMode + + $class + + CF$UID + 70 + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 661 + + + CF$UID + 662 + + + CF$UID + 663 + + + CF$UID + 664 + + + CF$UID + 665 + + + CF$UID + 666 + + + CF$UID + 667 + + + CF$UID + 668 + + + CF$UID + 669 + + + CF$UID + 670 + + + CF$UID + 671 + + + CF$UID + 672 + + + CF$UID + 673 + + + CF$UID + 674 + + + CF$UID + 675 + + + CF$UID + 676 + + + + + $class + + CF$UID + 29 + + NS.string + Architectures||ARCHS + + + $class + + CF$UID + 29 + + NS.string + Architectures||SDKROOT + + + $class + + CF$UID + 29 + + NS.string + Build Options||GCC_VERSION + + + $class + + CF$UID + 29 + + NS.string + Deployment||INSTALL_PATH + + + $class + + CF$UID + 29 + + NS.string + Deployment||STRIP_INSTALLED_PRODUCT + + + $class + + CF$UID + 29 + + NS.string + Deployment||TARGETED_DEVICE_FAMILY + + + $class + + CF$UID + 29 + + NS.string + Deployment||IPHONEOS_DEPLOYMENT_TARGET + + + $class + + CF$UID + 29 + + NS.string + Packaging||INFOPLIST_FILE + + + $class + + CF$UID + 29 + + NS.string + Packaging||PRODUCT_NAME + + + $class + + CF$UID + 29 + + NS.string + Search Paths||ALWAYS_SEARCH_USER_PATHS + + + $class + + CF$UID + 29 + + NS.string + LLVM GCC 4.2 - Code Generation||GCC_DYNAMIC_NO_PIC + + + $class + + CF$UID + 29 + + NS.string + LLVM GCC 4.2 - Code Generation||GCC_SYMBOLS_PRIVATE_EXTERN + + + $class + + CF$UID + 29 + + NS.string + LLVM GCC 4.2 - Language||GCC_C_LANGUAGE_STANDARD + + + $class + + CF$UID + 29 + + NS.string + LLVM GCC 4.2 - Warnings||GCC_WARN_ABOUT_RETURN_TYPE + + + $class + + CF$UID + 29 + + NS.string + LLVM GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_PROTOTYPES + + + $class + + CF$UID + 29 + + NS.string + LLVM GCC 4.2 - Warnings||GCC_WARN_UNUSED_VARIABLE + + + $classes + + Xcode3ProjectDocumentLocation + DVTDocumentLocation + NSObject + + $classname + Xcode3ProjectDocumentLocation + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 680 + + + CF$UID + 681 + + + CF$UID + 682 + + + CF$UID + 683 + + + CF$UID + 684 + + + CF$UID + 685 + + + NS.objects + + + CF$UID + 686 + + + CF$UID + 689 + + + CF$UID + 690 + + + CF$UID + 691 + + + CF$UID + 692 + + + CF$UID + 693 + + + + Xcode3BuildPhasesEditorDisclosedNamesKey2.0 + D5CF9C41144C225000E4244F + D5CF9C3F144C225000E4244F + D5CF9C40144C225000E4244F + D5CF9C3E144C225000E4244F + kXcode3BuildPhasesEditorScrollPointKey + + $class + + CF$UID + 71 + + NS.objects + + + CF$UID + 687 + + + CF$UID + 688 + + + + Copy Bundle Resources + Compile Sources + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + {0, 3949} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 695 + + + CF$UID + 696 + + + CF$UID + 697 + + + CF$UID + 698 + + + CF$UID + 699 + + + NS.objects + + + CF$UID + 700 + + + CF$UID + 701 + + + CF$UID + 711 + + + CF$UID + 712 + + + CF$UID + 721 + + + + Xcode3ProjectEditorPreviousProjectEditorClass + Xcode3ProjectEditor.sourceList.splitview + Xcode3ProjectEditorPreviousTargetEditorClass + Xcode3ProjectEditorSelectedDocumentLocations + Xcode3ProjectEditor_Xcode3TargetEditor + Xcode3BuildSettingsEditor + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 703 + + + + DVTSplitViewItems + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 704 + + + CF$UID + 709 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 707 + + + CF$UID + 708 + + + + DVTIdentifier + DVTViewMagnitude + + 170 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 707 + + + CF$UID + 710 + + + + 890 + Xcode3TargetEditor + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 713 + + + + + $class + + CF$UID + 677 + + documentURL + + CF$UID + 714 + + selection + + CF$UID + 716 + + timestamp + + CF$UID + 715 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe.xcodeproj/ + 340876527.804124 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 717 + + + CF$UID + 718 + + + NS.objects + + + CF$UID + 719 + + + CF$UID + 720 + + + + Editor + Target + Xcode3TargetEditor + minecraftpe + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 723 + + + NS.objects + + + CF$UID + 725 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 724 + + + x-xcode-log://FB408BA9-222C-4255-801E-436D5F90B4A6 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 46 + + + NS.objects + + + CF$UID + 65 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 727 + + + CF$UID + 728 + + + NS.objects + + + CF$UID + 729 + + + CF$UID + 730 + + + + IDEDeviceLocation + IDEDeviceArchitecture + dvtdevice-iphonesimulator:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk-iPhone + i386 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 732 + + + NS.objects + + + CF$UID + 733 + + + + IDENameString + minecraftpe + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 735 + + + CF$UID + 736 + + + CF$UID + 737 + + + NS.objects + + + CF$UID + 738 + + + CF$UID + 764 + + + CF$UID + 745 + + + + IDEActivityReportCompletionSummaryStringSegments + IDEActivityReportOptions + IDEActivityReportTitle + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 739 + + + CF$UID + 746 + + + CF$UID + 750 + + + CF$UID + 755 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 740 + + + CF$UID + 741 + + + CF$UID + 742 + + + NS.objects + + + CF$UID + 743 + + + CF$UID + 744 + + + CF$UID + 745 + + + + IDEActivityReportStringSegmentPriority + IDEActivityReportStringSegmentBackSeparator + IDEActivityReportStringSegmentStringValue + 2 + + Build + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 740 + + + CF$UID + 741 + + + CF$UID + 742 + + + NS.objects + + + CF$UID + 747 + + + CF$UID + 748 + + + CF$UID + 749 + + + + 4 + : + minecraftpe + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 740 + + + CF$UID + 741 + + + CF$UID + 742 + + + NS.objects + + + CF$UID + 751 + + + CF$UID + 752 + + + CF$UID + 753 + + + + 1 + │ + + $class + + CF$UID + 754 + + NS.data + + YnBsaXN0MDDUAQIDBAUGOzxYJHZlcnNpb25YJG9iamVjdHNZJGFy + Y2hpdmVyVCR0b3ASAAGGoK0HCA8QGhscJCUrMTQ3VSRudWxs0wkK + CwwNDlxOU0F0dHJpYnV0ZXNWJGNsYXNzWE5TU3RyaW5ngAOADIAC + WVN1Y2NlZWRlZNMKERITFBdXTlMua2V5c1pOUy5vYmplY3RzgAui + FRaABIAFohgZgAaACVZOU0ZvbnRXTlNDb2xvctQKHR4fICEiI1ZO + U05hbWVWTlNTaXplWE5TZkZsYWdzgAiAByNAJgAAAAAAABENEF8Q + EUx1Y2lkYUdyYW5kZS1Cb2xk0iYnKClaJGNsYXNzbmFtZVgkY2xh + c3Nlc1ZOU0ZvbnSiKCpYTlNPYmplY3TTCiwtLi8wXE5TQ29sb3JT + cGFjZVdOU1doaXRlgAoQA0IwANImJzIzV05TQ29sb3KiMirSJic1 + NlxOU0RpY3Rpb25hcnmiNSrSJic4OV8QEk5TQXR0cmlidXRlZFN0 + cmluZ6I6Kl8QEk5TQXR0cmlidXRlZFN0cmluZ18QD05TS2V5ZWRB + cmNoaXZlctE9PlRyb290gAEACAARABoAIwAtADIANwBFAEsAUgBf + AGYAbwBxAHMAdQB/AIYAjgCZAJsAngCgAKIApQCnAKkAsAC4AMEA + yADPANgA2gDcAOUA6AD8AQEBDAEVARwBHwEoAS8BPAFEAUYBSAFL + AVABWAFbAWABbQFwAXUBigGNAaIBtAG3AbwAAAAAAAACAQAAAAAA + AAA/AAAAAAAAAAAAAAAAAAABvg== + + + + $classes + + NSMutableData + NSData + NSObject + + $classname + NSMutableData + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 740 + + + CF$UID + 756 + + + CF$UID + 757 + + + CF$UID + 742 + + + CF$UID + 758 + + + CF$UID + 759 + + + NS.objects + + + CF$UID + 760 + + + CF$UID + 550 + + + CF$UID + 761 + + + CF$UID + 763 + + + CF$UID + 550 + + + CF$UID + 550 + + + + IDEActivityReportStringSegmentType + IDEActivityReportStringSegmentDate + IDEActivityReportStringSegmentDateStyle + IDEActivityReportStringSegmentTimeStyle + 3 + + $class + + CF$UID + 762 + + NS.time + 340881287.433676 + + + $classes + + NSDate + NSObject + + $classname + NSDate + + Today at 11:14 + 234 + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 4 + + + CF$UID + 3 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 767 + + + CF$UID + 769 + + + CF$UID + 771 + + + CF$UID + 773 + + + CF$UID + 775 + + + CF$UID + 776 + + + NS.objects + + + CF$UID + 778 + + + CF$UID + 783 + + + CF$UID + 786 + + + CF$UID + 789 + + + CF$UID + 792 + + + CF$UID + 795 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 768 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpe/Shaders/Shader.fsh + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 770 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_iOS.mm + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 772 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorld.xib + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 774 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeViewController.mm + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 724 + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 777 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/gui/screens/touch/TouchSelectWorldScreen.cpp + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 779 + + + CF$UID + 780 + + + NS.objects + + + CF$UID + 781 + + + CF$UID + 782 + + + + width + height + 600 + 600 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 779 + + + CF$UID + 780 + + + NS.objects + + + CF$UID + 784 + + + CF$UID + 785 + + + + 600 + 600 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 779 + + + CF$UID + 780 + + + NS.objects + + + CF$UID + 787 + + + CF$UID + 788 + + + + 600 + 578 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 779 + + + CF$UID + 780 + + + NS.objects + + + CF$UID + 790 + + + CF$UID + 791 + + + + 600 + 600 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 779 + + + CF$UID + 780 + + + NS.objects + + + CF$UID + 793 + + + CF$UID + 794 + + + + 600 + 600 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 779 + + + CF$UID + 780 + + + NS.objects + + + CF$UID + 796 + + + CF$UID + 797 + + + + 600 + 600 + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 799 + + + CF$UID + 801 + + + CF$UID + 803 + + + CF$UID + 805 + + + CF$UID + 807 + + + CF$UID + 809 + + + CF$UID + 811 + + + CF$UID + 813 + + + CF$UID + 815 + + + CF$UID + 817 + + + + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 800 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/GameRenderer.cpp + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 802 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/GameRenderer.h + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 804 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_iOS.h + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 806 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/AppPlatform_iOS.mm + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 808 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeViewController.mm + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 810 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/EAGLView.m + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 812 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/EAGLView.h + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 814 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/minecraftpeAppDelegate.mm + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 816 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorldViewController.mm + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 818 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorldViewController.h + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 820 + + + CF$UID + 821 + + + CF$UID + 822 + + + CF$UID + 823 + + + CF$UID + 824 + + + CF$UID + 825 + + + CF$UID + 826 + + + CF$UID + 827 + + + NS.objects + + + CF$UID + 828 + + + CF$UID + 829 + + + CF$UID + 240 + + + CF$UID + 3 + + + CF$UID + 825 + + + CF$UID + 830 + + + CF$UID + 240 + + + CF$UID + 17 + + + + IDEWindowFrame + IDEOrderedWorkspaceTabControllers + IDEWindowInFullscreenMode + IDEWorkspaceWindowControllerUniqueIdentifier + IDEActiveWorkspaceTabController + IDEWorkspaceTabController_5AB00B29-6568-407B-A13F-687A0F85973F + IDEWindowToolbarIsVisible + IDEWindowTabBarIsVisible + {{0, 132}, {600, 646}} + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 825 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 831 + + + CF$UID + 832 + + + CF$UID + 833 + + + CF$UID + 834 + + + CF$UID + 835 + + + CF$UID + 836 + + + CF$UID + 837 + + + CF$UID + 838 + + + NS.objects + + + CF$UID + 839 + + + CF$UID + 240 + + + CF$UID + 41 + + + CF$UID + 840 + + + CF$UID + 846 + + + CF$UID + 868 + + + CF$UID + 240 + + + CF$UID + 877 + + + + IDETabLabel + IDEShowNavigator + AssistantEditorsLayout + IDEWorkspaceTabControllerUtilityAreaSplitView + IDENavigatorArea + IDEWorkspaceTabControllerDesignAreaSplitView + IDEShowUtilities + IDEEditorArea + CreateNewWorldViewController.mm + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 841 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 842 + + + CF$UID + 844 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 707 + + + CF$UID + 843 + + + + 281 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 707 + + + CF$UID + 845 + + + + 319 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 847 + + + CF$UID + 848 + + + NS.objects + + + CF$UID + 848 + + + CF$UID + 849 + + + + SelectedNavigator + Xcode.IDEKit.Navigator.Structure + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 850 + + + CF$UID + 851 + + + CF$UID + 852 + + + CF$UID + 853 + + + CF$UID + 854 + + + CF$UID + 855 + + + CF$UID + 856 + + + NS.objects + + + CF$UID + 857 + + + CF$UID + 240 + + + CF$UID + 858 + + + CF$UID + 240 + + + CF$UID + 240 + + + CF$UID + 860 + + + CF$UID + 865 + + + + IDEVisibleRect + IDEUnsavedDocumentFilteringEnabled + IDENavigatorExpandedItemsBeforeFilteringSet + IDERecentDocumentFilteringEnabled + IDESCMStatusFilteringEnabled + IDESelectedObjects + IDEExpandedItemsSet + {{0, 0}, {0, 0}} + + $class + + CF$UID + 859 + + NS.objects + + + + $classes + + NSSet + NSObject + + $classname + NSSet + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 861 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 862 + + + CF$UID + 863 + + + CF$UID + 864 + + + + minecraftpe + Dialogs + CreateNewWorldViewController.mm + + $class + + CF$UID + 859 + + NS.objects + + + CF$UID + 866 + + + CF$UID + 867 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 862 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 862 + + + CF$UID + 863 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 869 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 870 + + + CF$UID + 872 + + + CF$UID + 874 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 835 + + + CF$UID + 871 + + + + 311 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 838 + + + CF$UID + 873 + + + + 1349 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 875 + + + CF$UID + 876 + + + + IDEUtilitiesArea + 260 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 878 + + + CF$UID + 879 + + + CF$UID + 880 + + + CF$UID + 881 + + + CF$UID + 882 + + + CF$UID + 883 + + + CF$UID + 884 + + + CF$UID + 885 + + + NS.objects + + + CF$UID + 886 + + + CF$UID + 903 + + + CF$UID + 937 + + + CF$UID + 17 + + + CF$UID + 41 + + + CF$UID + 962 + + + CF$UID + 970 + + + CF$UID + 240 + + + + layoutTree + IDEEditorMode_Standard + IDEEDitorArea_DebugArea + IDEShowEditor + EditorMode + DebuggerSplitView + DefaultPersistentRepresentations + ShowDebuggerArea + + $class + + CF$UID + 902 + + geniusEditorContextNode + + CF$UID + 0 + + primaryEditorContextNode + + CF$UID + 887 + + rootLayoutTreeNode + + CF$UID + 899 + + + + $class + + CF$UID + 901 + + children + + CF$UID + 0 + + contentType + 1 + documentArchivableRepresentation + + CF$UID + 888 + + orientation + 0 + parent + + CF$UID + 899 + + + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 896 + + DomainIdentifier + + CF$UID + 889 + + IdentifierPath + + CF$UID + 890 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + Xcode.IDENavigableItemDomain.WorkspaceStructure + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 891 + + + CF$UID + 893 + + + CF$UID + 894 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 864 + + + + $classes + + IDEArchivableStringIndexPair + NSObject + + $classname + IDEArchivableStringIndexPair + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 863 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 895 + + + minecraftpe + + $class + + CF$UID + 897 + + documentURL + + CF$UID + 198 + + timestamp + + CF$UID + 0 + + + + $classes + + DVTDocumentLocation + NSObject + + $classname + DVTDocumentLocation + + + $classes + + IDENavigableItemArchivableRepresentation + NSObject + + $classname + IDENavigableItemArchivableRepresentation + + + $class + + CF$UID + 901 + + children + + CF$UID + 900 + + contentType + 0 + documentArchivableRepresentation + + CF$UID + 0 + + orientation + 0 + parent + + CF$UID + 0 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 887 + + + + + $classes + + IDEWorkspaceTabControllerLayoutTreeNode + NSObject + + $classname + IDEWorkspaceTabControllerLayoutTreeNode + + + $classes + + IDEWorkspaceTabControllerLayoutTree + NSObject + + $classname + IDEWorkspaceTabControllerLayoutTree + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 904 + + + NS.objects + + + CF$UID + 905 + + + + EditorLayout_PersistentRepresentation + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 906 + + + NS.objects + + + CF$UID + 907 + + + + Main + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 908 + + + CF$UID + 909 + + + CF$UID + 910 + + + NS.objects + + + CF$UID + 911 + + + CF$UID + 41 + + + CF$UID + 935 + + + + EditorLayout_StateSavingStateDictionaries + EditorLayout_Selected + EditorLayout_Geometry + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 912 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 913 + + + CF$UID + 914 + + + CF$UID + 915 + + + CF$UID + 916 + + + CF$UID + 917 + + + CF$UID + 918 + + + CF$UID + 919 + + + NS.objects + + + CF$UID + 920 + + + CF$UID + 921 + + + CF$UID + 927 + + + CF$UID + 931 + + + CF$UID + 864 + + + CF$UID + 932 + + + CF$UID + 933 + + + + FileDataType + ArchivableRepresentation + EditorState + NavigableItemName + DocumentNavigableItemName + DocumentExtensionIdentifier + DocumentURL + public.objective-c-plus-plus-source + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 896 + + DomainIdentifier + + CF$UID + 889 + + IdentifierPath + + CF$UID + 922 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 923 + + + CF$UID + 924 + + + CF$UID + 925 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 864 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 863 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 926 + + + minecraftpe + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 928 + + + CF$UID + 929 + + + CF$UID + 240 + + + CF$UID + 930 + + + + 340881331.67313403 + {0, 1006} + {918, 0} + -textFieldShouldReturn: + Xcode.IDEKit.EditorDocument.SourceCode + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 934 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/CreateNewWorldViewController.mm + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 936 + + + + {{0, 0}, {600, 600}} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 938 + + + CF$UID + 939 + + + CF$UID + 940 + + + CF$UID + 941 + + + CF$UID + 942 + + + CF$UID + 943 + + + NS.objects + + + CF$UID + 550 + + + CF$UID + 944 + + + CF$UID + 946 + + + CF$UID + 550 + + + CF$UID + 948 + + + CF$UID + 956 + + + + LayoutFocusMode + console + variables + LayoutMode + IDEDebugArea_SplitView + IDEDebuggerAreaSplitView + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 945 + + + NS.objects + + + CF$UID + 41 + + + + ConsoleFilterMode + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 947 + + + NS.objects + + + CF$UID + 550 + + + + VariablesViewSelectedScope + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 949 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 950 + + + CF$UID + 953 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 951 + + + CF$UID + 952 + + + + VariablesView + 301 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 954 + + + CF$UID + 955 + + + + ConsoleArea + 298 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 957 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 958 + + + CF$UID + 960 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 951 + + + CF$UID + 959 + + + + 301 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 954 + + + CF$UID + 961 + + + + 298 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 963 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 964 + + + CF$UID + 967 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 965 + + + CF$UID + 966 + + + + IDEEditor + 203 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 968 + + + CF$UID + 969 + + + + IDEDebuggerArea + 115 + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 820 + + + CF$UID + 821 + + + CF$UID + 822 + + + CF$UID + 972 + + + CF$UID + 973 + + + CF$UID + 824 + + + CF$UID + 826 + + + CF$UID + 827 + + + NS.objects + + + CF$UID + 974 + + + CF$UID + 975 + + + CF$UID + 240 + + + CF$UID + 4 + + + CF$UID + 976 + + + CF$UID + 973 + + + CF$UID + 17 + + + CF$UID + 17 + + + + IDEWorkspaceWindowControllerUniqueIdentifier + IDEWorkspaceTabController_4438C65F-E9AF-46CD-AD23-D0A95A9D07AE + {{1280, -280}, {1920, 1080}} + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 973 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 833 + + + CF$UID + 832 + + + CF$UID + 838 + + + CF$UID + 834 + + + CF$UID + 835 + + + CF$UID + 836 + + + CF$UID + 837 + + + CF$UID + 831 + + + NS.objects + + + CF$UID + 41 + + + CF$UID + 17 + + + CF$UID + 977 + + + CF$UID + 1120 + + + CF$UID + 1126 + + + CF$UID + 1205 + + + CF$UID + 17 + + + CF$UID + 1213 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 878 + + + CF$UID + 978 + + + CF$UID + 880 + + + CF$UID + 881 + + + CF$UID + 882 + + + CF$UID + 883 + + + CF$UID + 884 + + + CF$UID + 979 + + + CF$UID + 885 + + + NS.objects + + + CF$UID + 980 + + + CF$UID + 1016 + + + CF$UID + 1053 + + + CF$UID + 17 + + + CF$UID + 550 + + + CF$UID + 1068 + + + CF$UID + 1074 + + + CF$UID + 1075 + + + CF$UID + 240 + + + + IDEEditorMode_Standard + IDEEditorMode_Genius + + $class + + CF$UID + 902 + + geniusEditorContextNode + + CF$UID + 999 + + primaryEditorContextNode + + CF$UID + 981 + + rootLayoutTreeNode + + CF$UID + 997 + + + + $class + + CF$UID + 901 + + children + + CF$UID + 0 + + contentType + 1 + documentArchivableRepresentation + + CF$UID + 982 + + orientation + 0 + parent + + CF$UID + 997 + + + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 995 + + DomainIdentifier + + CF$UID + 983 + + IdentifierPath + + CF$UID + 984 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + Xcode.IDENavigableItemDomain.WorkspaceStructure + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 985 + + + CF$UID + 987 + + + CF$UID + 989 + + + CF$UID + 991 + + + CF$UID + 993 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 986 + + + GameRenderer.cpp + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 988 + + + renderer + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 990 + + + client + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 992 + + + src + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 994 + + + minecraftpe + + $class + + CF$UID + 897 + + documentURL + + CF$UID + 996 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/GameRenderer.cpp + + + $class + + CF$UID + 901 + + children + + CF$UID + 998 + + contentType + 0 + documentArchivableRepresentation + + CF$UID + 0 + + orientation + 0 + parent + + CF$UID + 0 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 981 + + + CF$UID + 999 + + + + + $class + + CF$UID + 901 + + children + + CF$UID + 1000 + + contentType + 0 + documentArchivableRepresentation + + CF$UID + 0 + + orientation + 1 + parent + + CF$UID + 997 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1001 + + + + + $class + + CF$UID + 901 + + children + + CF$UID + 0 + + contentType + 2 + documentArchivableRepresentation + + CF$UID + 1002 + + orientation + 0 + parent + + CF$UID + 999 + + + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 1015 + + DomainIdentifier + + CF$UID + 0 + + IdentifierPath + + CF$UID + 1003 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1004 + + + CF$UID + 1006 + + + CF$UID + 1007 + + + CF$UID + 1012 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 1005 + + + BaseDialogController.mm + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 863 + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1008 + + + CF$UID + 1009 + + + NS.objects + + + CF$UID + 1010 + + + CF$UID + 1011 + + + + manualDomainIdentifier + navigableItem_name + Xcode.IDENavigableItemDomain.WorkspaceStructure + minecraftpe + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1013 + + + NS.objects + + + CF$UID + 1014 + + + + identifier + Xcode.IDEKit.GeniusCategory.Manual + + $class + + CF$UID + 897 + + documentURL + + CF$UID + 188 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1017 + + + NS.objects + + + CF$UID + 1018 + + + + EditorLayout_PersistentRepresentation + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1019 + + + NS.objects + + + CF$UID + 1020 + + + + Main + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 1021 + + + CF$UID + 1022 + + + CF$UID + 1023 + + + NS.objects + + + CF$UID + 1024 + + + CF$UID + 41 + + + CF$UID + 1051 + + + + EditorLayout_StateSavingStateDictionaries + EditorLayout_Selected + EditorLayout_Geometry + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1025 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1026 + + + CF$UID + 1027 + + + CF$UID + 1028 + + + CF$UID + 1029 + + + CF$UID + 1030 + + + CF$UID + 1031 + + + CF$UID + 1032 + + + NS.objects + + + CF$UID + 1033 + + + CF$UID + 1034 + + + CF$UID + 1044 + + + CF$UID + 1048 + + + CF$UID + 1037 + + + CF$UID + 21 + + + CF$UID + 1049 + + + + FileDataType + ArchivableRepresentation + EditorState + NavigableItemName + DocumentNavigableItemName + DocumentExtensionIdentifier + DocumentURL + public.c-plus-plus-source + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 1042 + + DomainIdentifier + + CF$UID + 983 + + IdentifierPath + + CF$UID + 1035 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1036 + + + CF$UID + 1038 + + + CF$UID + 1039 + + + CF$UID + 1041 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 1037 + + + Minecraft.cpp + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 990 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 1040 + + + src + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 650 + + + + $class + + CF$UID + 897 + + documentURL + + CF$UID + 1043 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 29 + + NS.string + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/Minecraft.cpp + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 234 + + + CF$UID + 235 + + + CF$UID + 236 + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 1045 + + + CF$UID + 1046 + + + CF$UID + 240 + + + CF$UID + 1047 + + + + 340616729.64701301 + {7022, 1207} + {7427, 1} + Minecraft::update() + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1050 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/Minecraft.cpp + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1052 + + + + {{0, 0}, {1920, 845}} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 938 + + + CF$UID + 939 + + + CF$UID + 940 + + + CF$UID + 941 + + + CF$UID + 942 + + + CF$UID + 943 + + + NS.objects + + + CF$UID + 550 + + + CF$UID + 1054 + + + CF$UID + 1055 + + + CF$UID + 550 + + + CF$UID + 1056 + + + CF$UID + 1062 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 945 + + + NS.objects + + + CF$UID + 41 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 947 + + + NS.objects + + + CF$UID + 550 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 1057 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1058 + + + CF$UID + 1060 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 951 + + + CF$UID + 1059 + + + + 672 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 954 + + + CF$UID + 1061 + + + + 675 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 1063 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1064 + + + CF$UID + 1066 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 951 + + + CF$UID + 1065 + + + + 672 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 954 + + + CF$UID + 1067 + + + + 675 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 1069 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1070 + + + CF$UID + 1072 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 965 + + + CF$UID + 1071 + + + + 656 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 968 + + + CF$UID + 1073 + + + + 326 + + $class + + CF$UID + 44 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1076 + + + CF$UID + 904 + + + NS.objects + + + CF$UID + 1077 + + + CF$UID + 1078 + + + + SplitPosition + 0.71661722660064697 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1079 + + + CF$UID + 906 + + + NS.objects + + + CF$UID + 1080 + + + CF$UID + 1099 + + + + Alternate + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 908 + + + CF$UID + 909 + + + CF$UID + 910 + + + NS.objects + + + CF$UID + 1081 + + + CF$UID + 41 + + + CF$UID + 1097 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1082 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 913 + + + CF$UID + 914 + + + CF$UID + 915 + + + CF$UID + 916 + + + CF$UID + 917 + + + CF$UID + 918 + + + CF$UID + 919 + + + NS.objects + + + CF$UID + 920 + + + CF$UID + 1083 + + + CF$UID + 1090 + + + CF$UID + 1094 + + + CF$UID + 1005 + + + CF$UID + 932 + + + CF$UID + 1095 + + + + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 1015 + + DomainIdentifier + + CF$UID + 0 + + IdentifierPath + + CF$UID + 1084 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1085 + + + CF$UID + 1086 + + + CF$UID + 1087 + + + CF$UID + 1089 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 1005 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 863 + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1008 + + + CF$UID + 1009 + + + NS.objects + + + CF$UID + 1010 + + + CF$UID + 1088 + + + + minecraftpe + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1013 + + + NS.objects + + + CF$UID + 1014 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 1091 + + + CF$UID + 1092 + + + CF$UID + 240 + + + CF$UID + 1093 + + + + 340881331.67486 + {0, 1199} + {418, 0} + -init + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1096 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/project/ios/minecraftpe/dialogs/BaseDialogController.mm + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1098 + + + + {{0, 0}, {381, 982}} + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 908 + + + CF$UID + 909 + + + CF$UID + 910 + + + NS.objects + + + CF$UID + 1100 + + + CF$UID + 41 + + + CF$UID + 1118 + + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1101 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 913 + + + CF$UID + 914 + + + CF$UID + 915 + + + CF$UID + 916 + + + CF$UID + 917 + + + CF$UID + 918 + + + CF$UID + 919 + + + NS.objects + + + CF$UID + 1102 + + + CF$UID + 1103 + + + CF$UID + 1111 + + + CF$UID + 1115 + + + CF$UID + 986 + + + CF$UID + 932 + + + CF$UID + 1116 + + + + public.c-plus-plus-source + + $class + + CF$UID + 898 + + DocumentLocation + + CF$UID + 995 + + DomainIdentifier + + CF$UID + 983 + + IdentifierPath + + CF$UID + 1104 + + IndexOfDocumentIdentifier + + CF$UID + 41 + + + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1105 + + + CF$UID + 1106 + + + CF$UID + 1107 + + + CF$UID + 1108 + + + CF$UID + 1109 + + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 986 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 988 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 990 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 992 + + + + $class + + CF$UID + 892 + + Identifier + + CF$UID + 1110 + + + minecraftpe + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + CF$UID + 252 + + + CF$UID + 253 + + + NS.objects + + + CF$UID + 1112 + + + CF$UID + 1113 + + + CF$UID + 240 + + + CF$UID + 1114 + + + + 340881331.67461598 + {818, 1855} + {1813, 0} + GameRenderer::setupCamera(float a, int eye) + + $class + + CF$UID + 30 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1117 + + + file://localhost/Users/new/Development/subversion/minecraftcpp/trunk/handheld/src/client/renderer/GameRenderer.cpp + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1119 + + + + {{0, 0}, {1348, 982}} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 1121 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1122 + + + CF$UID + 1124 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 707 + + + CF$UID + 1123 + + + + 557 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 707 + + + CF$UID + 1125 + + + + 425 + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1127 + + + CF$UID + 1128 + + + CF$UID + 847 + + + CF$UID + 1129 + + + CF$UID + 1130 + + + CF$UID + 1131 + + + CF$UID + 848 + + + CF$UID + 1132 + + + NS.objects + + + CF$UID + 1133 + + + CF$UID + 1143 + + + CF$UID + 848 + + + CF$UID + 1156 + + + CF$UID + 1172 + + + CF$UID + 1176 + + + CF$UID + 1185 + + + CF$UID + 1198 + + + + Xcode.IDEKit.Navigator.Symbol + Xcode.IDEKit.Navigator.BatchFind + Xcode.IDEKit.Navigator.Issues + Xcode.IDEKit.Navigator.Debug + Xcode.IDEKit.Navigator.Breakpoints + Xcode.IDEKit.Navigator.Logs + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1134 + + + CF$UID + 1135 + + + CF$UID + 1136 + + + CF$UID + 1137 + + + CF$UID + 1138 + + + CF$UID + 1139 + + + CF$UID + 1140 + + + NS.objects + + + CF$UID + 240 + + + CF$UID + 17 + + + CF$UID + 1141 + + + CF$UID + 17 + + + CF$UID + 636 + + + CF$UID + 1142 + + + CF$UID + 17 + + + + IDESymbolNavigatorShowContainersOnly + IDESymbolNavigatorShowHierarchy + IDEExpandedItems + IDESymbolNavigatorShowClassesOnly + IDESymbolNamePatternString + IDESymbolNavigatorSelectedSymbols + IDESymbolNavigatorShowWorkspaceOnly + + $class + + CF$UID + 70 + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1144 + + + CF$UID + 1145 + + + CF$UID + 1146 + + + CF$UID + 1147 + + + CF$UID + 1148 + + + CF$UID + 1149 + + + CF$UID + 1150 + + + NS.objects + + + CF$UID + 41 + + + CF$UID + 240 + + + CF$UID + 636 + + + CF$UID + 1151 + + + CF$UID + 1152 + + + CF$UID + 41 + + + CF$UID + 1154 + + + + IDEBatchFindNavigatorScrollPosition + IDEBatchFindNavigatorShowsOptions + IDEBatchFindNavigatorReplaceString + IDEBatchFindNavigatorFindString + IDEBatchFindNavigatorSelectedRowIndexes + IDEBatchFindNavigatorFindMode + IDEBatchFindNavigatorCollapsedGroups + modal + + $class + + CF$UID + 1153 + + NSLength + 1 + NSLocation + 4 + NSRangeCount + 1 + + + $classes + + NSIndexSet + NSObject + + $classname + NSIndexSet + + + $class + + CF$UID + 1155 + + NSRangeCount + 0 + + + $classes + + NSMutableIndexSet + NSIndexSet + NSObject + + $classname + NSMutableIndexSet + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1157 + + + CF$UID + 1158 + + + CF$UID + 1159 + + + CF$UID + 1160 + + + CF$UID + 1161 + + + CF$UID + 1162 + + + CF$UID + 1163 + + + CF$UID + 1164 + + + CF$UID + 1165 + + + NS.objects + + + CF$UID + 240 + + + CF$UID + 1166 + + + CF$UID + 1167 + + + CF$UID + 1168 + + + CF$UID + 1169 + + + CF$UID + 240 + + + CF$UID + 1170 + + + CF$UID + 240 + + + CF$UID + 1171 + + + + IDEErrorFilteringEnabled + IDEVisibleRect + IDECollapsedFiles + IDEExpandedIssues + IDESelectedNavigables + IDEShowsByType + IDECollapsedTypes + IDERecentFilteringEnabled + IDECollapsedGroups + {{0, 0}, {165, 610}} + + $class + + CF$UID + 71 + + NS.objects + + + + $class + + CF$UID + 71 + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + + $class + + CF$UID + 71 + + NS.objects + + + + $class + + CF$UID + 71 + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1173 + + + CF$UID + 1174 + + + CF$UID + 1175 + + + NS.objects + + + CF$UID + 582 + + + CF$UID + 41 + + + CF$UID + 240 + + + + IDEStackCompressionValue + IDEThreadOrQueueMode + IDEShowOnlyInterestingContent + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1177 + + + CF$UID + 1178 + + + CF$UID + 1179 + + + CF$UID + 1180 + + + NS.objects + + + CF$UID + 858 + + + CF$UID + 240 + + + CF$UID + 1181 + + + CF$UID + 1184 + + + + IDECollapsedtemsSet + IDEBreakpointNavigatorFilterOnEnabled + IDESelectedObjects + IDEVisibleRect + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1182 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 650 + + + CF$UID + 1183 + + + CF$UID + 636 + + + + minecraftpeViewController.h + {{0, 0}, {259, 938}} + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 850 + + + CF$UID + 851 + + + CF$UID + 852 + + + CF$UID + 853 + + + CF$UID + 854 + + + CF$UID + 855 + + + CF$UID + 856 + + + NS.objects + + + CF$UID + 1186 + + + CF$UID + 240 + + + CF$UID + 858 + + + CF$UID + 240 + + + CF$UID + 240 + + + CF$UID + 1187 + + + CF$UID + 1190 + + + + {{0, 457}, {296, 938}} + + $class + + CF$UID + 43 + + NS.objects + + + CF$UID + 1188 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + CF$UID + 992 + + + CF$UID + 990 + + + CF$UID + 988 + + + CF$UID + 986 + + + + minecraftpe + + $class + + CF$UID + 859 + + NS.objects + + + CF$UID + 1191 + + + CF$UID + 1192 + + + CF$UID + 1193 + + + CF$UID + 1195 + + + CF$UID + 1196 + + + CF$UID + 1197 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + CF$UID + 863 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + CF$UID + 1194 + + + + Project + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + CF$UID + 992 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + CF$UID + 992 + + + CF$UID + 990 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1189 + + + CF$UID + 992 + + + CF$UID + 990 + + + CF$UID + 988 + + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 1199 + + + CF$UID + 1200 + + + CF$UID + 1201 + + + CF$UID + 1202 + + + NS.objects + + + CF$UID + 1203 + + + CF$UID + 1204 + + + CF$UID + 240 + + + CF$UID + 1184 + + + + IDELogNavigatorExpandedItemsStateKey + IDELogNavigatorSelectedObjectsStateKey + IDELogNavigatorRecentFilterStateKey + IDELogNavigatorVisibleRectStateKey + + $class + + CF$UID + 70 + + NS.objects + + + + $class + + CF$UID + 70 + + NS.objects + + + + $class + + CF$UID + 44 + + NS.keys + + + CF$UID + 702 + + + NS.objects + + + CF$UID + 1206 + + + + + $class + + CF$UID + 70 + + NS.objects + + + CF$UID + 1207 + + + CF$UID + 1209 + + + CF$UID + 1211 + + + + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 835 + + + CF$UID + 1208 + + + + 312 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 838 + + + CF$UID + 1210 + + + + 1348 + + $class + + CF$UID + 638 + + NS.keys + + + CF$UID + 705 + + + CF$UID + 706 + + + NS.objects + + + CF$UID + 875 + + + CF$UID + 1212 + + + + 260 + GameRenderer.cpp + + $top + + State + + CF$UID + 1 + + + $version + 100000 + + diff --git a/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/xcuserdata/new.xcuserdatad/WorkspaceSettings.xcsettings b/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/xcuserdata/new.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100755 index 0000000..6ff33e6 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/project.xcworkspace/xcuserdata/new.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + IDEWorkspaceUserSettings_HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + IDEWorkspaceUserSettings_SnapshotAutomaticallyBeforeSignificantChanges + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100755 index 0000000..05301bc --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,5 @@ + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe-adhoc.xcscheme b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe-adhoc.xcscheme new file mode 100755 index 0000000..104717e --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe-adhoc.xcscheme @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe-debug.xcscheme b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe-debug.xcscheme new file mode 100755 index 0000000..06315f1 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe-debug.xcscheme @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.demo-debug.xcscheme b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.demo-debug.xcscheme new file mode 100755 index 0000000..b2df201 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.demo-debug.xcscheme @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.demo.xcscheme b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.demo.xcscheme new file mode 100755 index 0000000..7f95d4b --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.demo.xcscheme @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.xcscheme b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.xcscheme new file mode 100755 index 0000000..34fb642 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/minecraftpe.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/xcschememanagement.plist b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 0000000..24d10e4 --- /dev/null +++ b/project/iosproj/minecraftpe.xcodeproj/xcuserdata/new.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,52 @@ + + + + + SchemeUserState + + minecraftpe-adhoc.xcscheme + + orderHint + 2 + + minecraftpe-debug.xcscheme + + orderHint + 3 + + minecraftpe-demo-promo.xcscheme + + orderHint + 1 + + minecraftpe.demo-debug.xcscheme + + orderHint + 5 + + minecraftpe.demo.xcscheme + + orderHint + 4 + + minecraftpe.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + D58BB46C146A0B910002C9F5 + + primary + + + D5CF9C41144C225000E4244F + + primary + + + + + diff --git a/project/iosproj/minecraftpe/EAGLView.h b/project/iosproj/minecraftpe/EAGLView.h new file mode 100755 index 0000000..37253f9 --- /dev/null +++ b/project/iosproj/minecraftpe/EAGLView.h @@ -0,0 +1,40 @@ +// +// EAGLView.h +// OpenGLES_iPhone +// +// Created by mmalc Crawford on 11/18/10. +// Copyright 2010 Apple Inc. All rights reserved. +// + +#import + +#import +#import +#import +#import + +@class EAGLContext; + +// This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass. +// The view content is basically an EAGL surface you render your OpenGL scene into. +// Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel. +@interface EAGLView : UIView { + // The pixel dimensions of the CAEAGLLayer. + GLint framebufferWidth; + GLint framebufferHeight; + + // The OpenGL ES names for the framebuffer and renderbuffer used to render to this view. + GLuint defaultFramebuffer; + + GLuint colorRenderbuffer, _depthRenderBuffer; + + @public + GLfloat viewScale; +} + +@property (nonatomic, retain) EAGLContext *context; + +- (void)setFramebuffer; +- (BOOL)presentFramebuffer; + +@end diff --git a/project/iosproj/minecraftpe/EAGLView.m b/project/iosproj/minecraftpe/EAGLView.m new file mode 100755 index 0000000..02697f8 --- /dev/null +++ b/project/iosproj/minecraftpe/EAGLView.m @@ -0,0 +1,163 @@ +// +// EAGLView.m +// OpenGLES_iPhone +// +// Created by mmalc Crawford on 11/18/10. +// Copyright 2010 Apple Inc. All rights reserved. +// + +#import "EAGLView.h" + +#import + +@interface EAGLView (PrivateMethods) +- (void)createFramebuffer; +- (void)deleteFramebuffer; +@end + +@implementation EAGLView + +@synthesize context; + +// You must implement this method ++ (Class)layerClass +{ + return [CAEAGLLayer class]; +} + +//The EAGL view is stored in the nib file. When it's unarchived it's sent -initWithCoder:. +- (id)initWithCoder:(NSCoder*)coder +{ + self = [super initWithCoder:coder]; + if (self) { + CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer; + + eaglLayer.opaque = TRUE; + eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking, + kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, + nil]; + + if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] + && [self respondsToSelector:@selector(setContentScaleFactor:)]) + { + viewScale = [UIScreen mainScreen].scale; + NSLog(@"Scale is : %f\n", viewScale); + [self setContentScaleFactor: viewScale]; + eaglLayer.contentsScale = viewScale; + } + } + + return self; +} + +- (void)dealloc +{ + [self deleteFramebuffer]; + [context release]; + + [super dealloc]; +} + +- (void)setContext:(EAGLContext *)newContext +{ + if (context != newContext) { + [self deleteFramebuffer]; + + [context release]; + context = [newContext retain]; + + [EAGLContext setCurrentContext:nil]; + } +} + +- (void)createFramebuffer +{ + if (context && !defaultFramebuffer) { + [EAGLContext setCurrentContext:context]; + + // Create default framebuffer object. + glGenFramebuffers(1, &defaultFramebuffer); + glBindFramebuffer(GL_FRAMEBUFFER, defaultFramebuffer); + + // Create color render buffer and allocate backing store. + glGenRenderbuffers(1, &colorRenderbuffer); + glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer); + [context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *)self.layer]; + glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &framebufferWidth); + glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &framebufferHeight); + + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer); + + // Create depth buffer and allocate backing store + glGenRenderbuffersOES(1, &_depthRenderBuffer); + glBindRenderbufferOES(GL_RENDERBUFFER_OES, _depthRenderBuffer); + + glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT24_OES, framebufferWidth, framebufferHeight); + glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, _depthRenderBuffer); + + NSLog(@"Created framebuffer with size %d, %d\n", framebufferWidth, framebufferHeight); + + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) + NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER)); + } +} + +- (void)deleteFramebuffer +{ + if (context) { + [EAGLContext setCurrentContext:context]; + + if (defaultFramebuffer) { + glDeleteFramebuffers(1, &defaultFramebuffer); + defaultFramebuffer = 0; + } + + if (colorRenderbuffer) { + glDeleteRenderbuffers(1, &colorRenderbuffer); + colorRenderbuffer = 0; + } + } +} + +- (void)setFramebuffer +{ + if (context) { + [EAGLContext setCurrentContext:context]; + + if (!defaultFramebuffer) + [self createFramebuffer]; + + glBindFramebuffer(GL_FRAMEBUFFER, defaultFramebuffer); + + glViewport(0, 0, framebufferWidth, framebufferHeight); + } +} + +- (BOOL)presentFramebuffer +{ + BOOL success = FALSE; + + if (context) { + [EAGLContext setCurrentContext:context]; + + glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer); + + success = [context presentRenderbuffer:GL_RENDERBUFFER]; + } + + return success; +} + +- (void)layoutSubviews +{ + // The framebuffer will be re-created at the beginning of the next setFramebuffer method call. + [self deleteFramebuffer]; +} + +- (BOOL) isMultipleTouchEnabled { + return YES; +} + + +@end diff --git a/project/iosproj/minecraftpe/PVRTexture.h b/project/iosproj/minecraftpe/PVRTexture.h new file mode 100755 index 0000000..daeeb02 --- /dev/null +++ b/project/iosproj/minecraftpe/PVRTexture.h @@ -0,0 +1,26 @@ +#import +#import +#import + +@interface PVRTexture : NSObject +{ + NSMutableArray *_imageData; + + GLuint _name; + uint32_t _width, _height; + GLenum _internalFormat; + BOOL _hasAlpha; +} + +- (id)initWithContentsOfFile:(NSString *)path; +- (id)initWithContentsOfURL:(NSURL *)url; ++ (id)pvrTextureWithContentsOfFile:(NSString *)path; ++ (id)pvrTextureWithContentsOfURL:(NSURL *)url; + +@property (readonly) GLuint name; +@property (readonly) uint32_t width; +@property (readonly) uint32_t height; +@property (readonly) GLenum internalFormat; +@property (readonly) BOOL hasAlpha; + +@end diff --git a/project/iosproj/minecraftpe/PVRTexture.m b/project/iosproj/minecraftpe/PVRTexture.m new file mode 100755 index 0000000..ed3cc58 --- /dev/null +++ b/project/iosproj/minecraftpe/PVRTexture.m @@ -0,0 +1,237 @@ +#import "PVRTexture.h" + +#define PVR_TEXTURE_FLAG_TYPE_MASK 0xff + +static char gPVRTexIdentifier[4] = "PVR!"; + +enum +{ + kPVRTextureFlagTypePVRTC_2 = 24, + kPVRTextureFlagTypePVRTC_4 +}; + +typedef struct _PVRTexHeader +{ + uint32_t headerLength; + uint32_t height; + uint32_t width; + uint32_t numMipmaps; + uint32_t flags; + uint32_t dataLength; + uint32_t bpp; + uint32_t bitmaskRed; + uint32_t bitmaskGreen; + uint32_t bitmaskBlue; + uint32_t bitmaskAlpha; + uint32_t pvrTag; + uint32_t numSurfs; +} PVRTexHeader; + + +@implementation PVRTexture + +@synthesize name = _name; +@synthesize width = _width; +@synthesize height = _height; +@synthesize internalFormat = _internalFormat; +@synthesize hasAlpha = _hasAlpha; + + +- (BOOL)unpackPVRData:(NSData *)data +{ + BOOL success = FALSE; + PVRTexHeader *header = NULL; + uint32_t flags, pvrTag; + uint32_t dataLength = 0, dataOffset = 0, dataSize = 0; + uint32_t blockSize = 0, widthBlocks = 0, heightBlocks = 0; + uint32_t width = 0, height = 0, bpp = 4; + uint8_t *bytes = NULL; + uint32_t formatFlags; + + header = (PVRTexHeader *)[data bytes]; + + pvrTag = CFSwapInt32LittleToHost(header->pvrTag); + + if (gPVRTexIdentifier[0] != ((pvrTag >> 0) & 0xff) || + gPVRTexIdentifier[1] != ((pvrTag >> 8) & 0xff) || + gPVRTexIdentifier[2] != ((pvrTag >> 16) & 0xff) || + gPVRTexIdentifier[3] != ((pvrTag >> 24) & 0xff)) + { + return FALSE; + } + + flags = CFSwapInt32LittleToHost(header->flags); + formatFlags = flags & PVR_TEXTURE_FLAG_TYPE_MASK; + + if (formatFlags == kPVRTextureFlagTypePVRTC_4 || formatFlags == kPVRTextureFlagTypePVRTC_2) + { + [_imageData removeAllObjects]; + + if (formatFlags == kPVRTextureFlagTypePVRTC_4) + _internalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + else if (formatFlags == kPVRTextureFlagTypePVRTC_2) + _internalFormat = GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + + _width = width = CFSwapInt32LittleToHost(header->width); + _height = height = CFSwapInt32LittleToHost(header->height); + + if (CFSwapInt32LittleToHost(header->bitmaskAlpha)) + _hasAlpha = TRUE; + else + _hasAlpha = FALSE; + + dataLength = CFSwapInt32LittleToHost(header->dataLength); + + bytes = ((uint8_t *)[data bytes]) + sizeof(PVRTexHeader); + + // Calculate the data size for each texture level and respect the minimum number of blocks + while (dataOffset < dataLength) + { + if (formatFlags == kPVRTextureFlagTypePVRTC_4) + { + blockSize = 4 * 4; // Pixel by pixel block size for 4bpp + widthBlocks = width / 4; + heightBlocks = height / 4; + bpp = 4; + } + else + { + blockSize = 8 * 4; // Pixel by pixel block size for 2bpp + widthBlocks = width / 8; + heightBlocks = height / 4; + bpp = 2; + } + + // Clamp to minimum number of blocks + if (widthBlocks < 2) + widthBlocks = 2; + if (heightBlocks < 2) + heightBlocks = 2; + + dataSize = widthBlocks * heightBlocks * ((blockSize * bpp) / 8); + + [_imageData addObject:[NSData dataWithBytes:bytes+dataOffset length:dataSize]]; + + dataOffset += dataSize; + + width = MAX(width >> 1, 1); + height = MAX(height >> 1, 1); + } + + success = TRUE; + } + + return success; +} + + +- (BOOL)createGLTexture +{ + int width = _width; + int height = _height; + NSData *data; + GLenum err; + + if ([_imageData count] > 0) + { + if (_name != 0) + glDeleteTextures(1, &_name); + + glGenTextures(1, &_name); + glBindTexture(GL_TEXTURE_2D, _name); + } + + if ([_imageData count] > 1) { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + } + else { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + } + + NSLog(@"Image levels: %d\n", [_imageData count]); + for (int i=0; i < [_imageData count]; i++) + { + data = [_imageData objectAtIndex:i]; + glCompressedTexImage2D(GL_TEXTURE_2D, i, _internalFormat, width, height, 0, [data length], [data bytes]); + + err = glGetError(); + if (err != GL_NO_ERROR) + { + NSLog(@"Error uploading compressed texture level: %d. glError: 0x%04X", i, err); + return FALSE; + } + + width = MAX(width >> 1, 1); + height = MAX(height >> 1, 1); + } + + [_imageData removeAllObjects]; + + return TRUE; +} + + +- (id)initWithContentsOfFile:(NSString *)path +{ + if (self = [super init]) + { + NSData *data = [NSData dataWithContentsOfFile:path]; + + _imageData = [[NSMutableArray alloc] initWithCapacity:10]; + + _name = 0; + _width = _height = 0; + _internalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + _hasAlpha = FALSE; + + if (!data || ![self unpackPVRData:data] || ![self createGLTexture]) + { + [self release]; + self = nil; + } + } + + return self; +} + + +- (id)initWithContentsOfURL:(NSURL *)url +{ + if (![url isFileURL]) + { + [self release]; + return nil; + } + + return [self initWithContentsOfFile:[url path]]; +} + + ++ (id)pvrTextureWithContentsOfFile:(NSString *)path +{ + return [[[self alloc] initWithContentsOfFile:path] autorelease]; +} + + ++ (id)pvrTextureWithContentsOfURL:(NSURL *)url +{ + if (![url isFileURL]) + return nil; + + return [PVRTexture pvrTextureWithContentsOfFile:[url path]]; +} + + +- (void)dealloc +{ + [_imageData release]; + + if (_name != 0) + glDeleteTextures(1, &_name); + + [super dealloc]; +} + +@end diff --git a/project/iosproj/minecraftpe/ShowKeyboardView.h b/project/iosproj/minecraftpe/ShowKeyboardView.h new file mode 100755 index 0000000..b589ea6 --- /dev/null +++ b/project/iosproj/minecraftpe/ShowKeyboardView.h @@ -0,0 +1,23 @@ +// +// ShowKeyboardView.h +// minecraftpe +// +// Created by Johan Bernhardsson on 12/17/12. +// +// + +#import +@interface ShowKeyboardView : UIView { + UITextField* textField; + NSString* lastString; +} +- (id)initWithFrame:(CGRect)frame; +//- (void)insertText:(NSString *)text; +//- (void)deleteBackward; +- (BOOL)hasText; +- (BOOL)canBecomeFirstResponder; +- (void)showKeyboard; +- (void)hideKeyboard; +- (void)textFieldDidChange :(NSNotification *)notif; +- (BOOL)textFieldShouldReturn:(UITextField *)theTextField; +@end diff --git a/project/iosproj/minecraftpe/ShowKeyboardView.mm b/project/iosproj/minecraftpe/ShowKeyboardView.mm new file mode 100755 index 0000000..96ddb0a --- /dev/null +++ b/project/iosproj/minecraftpe/ShowKeyboardView.mm @@ -0,0 +1,88 @@ +// +// ShowKeyboardView.m +// minecraftpe +// +// Created by Johan Bernhardsson on 12/17/12. +// +// + +#import "ShowKeyboardView.h" +#import "../../../src/platform/log.h" +#include "../../../src/platform/input/Keyboard.h" +#include + +@implementation ShowKeyboardView + +- (id)initWithFrame:(CGRect)frame { + id returnId = [super initWithFrame:frame]; + textField = [[UITextField alloc] init]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldDidChange:) name:@"UITextFieldTextDidChangeNotification" object:textField]; + [textField setDelegate:self]; + [self addSubview:textField]; + textField.text = lastString = @"AAAAAAAAAAAAAAAAAAAA"; + return returnId; +} + +/*- (void)insertText:(NSString *)text { + const char* cText = [text cStringUsingEncoding:[NSString defaultCStringEncoding]]; + //std::string textString([text cStringUsingEncoding:[NSString defaultCStringEncoding]]); + int strLength = strlen(cText); + for(int a = 0; a < strLength; ++a) { + LOGW("NewCharInput: %c (%d)\n", cText[a], cText[a]); + if(cText[a] == 0 || cText[a] == '\n') { + Keyboard::feed((char)Keyboard::KEY_RETURN, 1); + Keyboard::feed((char)Keyboard::KEY_RETURN, 0); + } else { + Keyboard::feedText(cText[a]); + } + } + //delete cText; + //LOGW("Insert text: %s\n", [text cStringUsingEncoding:[NSString defaultCStringEncoding]]); +} + +- (void)deleteBackward { + //LOGW("deleteBackward\n"); + //Keyboard::feed((char)Keyboard::KEY_BACKSPACE, 1); + //Keyboard::feed((char)Keyboard::KEY_BACKSPACE, 0);§ +}*/ + +- (BOOL)hasText { + return YES; +} + +- (BOOL)canBecomeFirstResponder { + return YES; +} + +- (void)showKeyboard { + //[self becomeFirstResponder]; + [textField becomeFirstResponder]; + //[self becomeFirstResponder]; +} + +- (void)hideKeyboard { + [textField resignFirstResponder]; + [self resignFirstResponder]; +} + +- (void)textFieldDidChange :(NSNotification *)notif { + UITextField* txt = (UITextField*)notif.object; + if(![txt.text isEqualToString:lastString]) { + if(lastString.length > txt.text.length) { + Keyboard::feed((char)Keyboard::KEY_BACKSPACE, 1); + Keyboard::feed((char)Keyboard::KEY_BACKSPACE, 0); + } else if([txt.text characterAtIndex:(txt.text.length - 1)] == '\n') { + Keyboard::feed((char)Keyboard::KEY_RETURN, 1); + Keyboard::feed((char)Keyboard::KEY_RETURN, 0); + } else { + Keyboard::feedText([txt.text characterAtIndex:(txt.text.length - 1)]); + } + textField.text = lastString = @"AAAAAAAAAAAAAAAAAAAA"; + } +} +- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { + Keyboard::feed((char)Keyboard::KEY_RETURN, 1); + Keyboard::feed((char)Keyboard::KEY_RETURN, 0); + return NO; +} +@end diff --git a/project/iosproj/minecraftpe/dialogs/BaseDialogController.h b/project/iosproj/minecraftpe/dialogs/BaseDialogController.h new file mode 100755 index 0000000..9d8cdf1 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/BaseDialogController.h @@ -0,0 +1,35 @@ +// +// BaseDialogController.h +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang. All rights reserved. +// + +#import +#import "IDialog.h" + +@class minecraftpeViewController; + +@interface BaseDialogController : UIViewController +{ + int _status; + std::vector _strings; + + minecraftpeViewController* _listener; +} + +// Interface +-(void)addToView:(UIView*)parentView; +-(int) getUserInputStatus; +-(std::vector)getUserInput; +-(void)setListener:(minecraftpeViewController*)listener; + +// Helpers +-(void)setOk; +-(void)setCancel; +-(void)closeOk; +-(void)closeCancel; +-(void)addString:(std::string)s; + +@end diff --git a/project/iosproj/minecraftpe/dialogs/BaseDialogController.mm b/project/iosproj/minecraftpe/dialogs/BaseDialogController.mm new file mode 100755 index 0000000..7a8154d --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/BaseDialogController.mm @@ -0,0 +1,78 @@ +// +// BaseDialogController.m +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import "BaseDialogController.h" +#import "../minecraftpeViewController.h" + +@implementation BaseDialogController + +- (id)init +{ + self = [super init]; + if (self) { + // Initialization code here. + _status = -1; + _listener = nil; + } + + return self; +} + +// +// Interface +// +- (void)addToView:(UIView*)parentView { + + // Add this view as a subview of EAGLView + [parentView addSubview:self.view]; + + // ...then fade it in using core animation + [UIView beginAnimations:nil context:NULL]; + //self.view.alpha = 1.0f; + [UIView commitAnimations]; +} + +- (int) getUserInputStatus { return _status; } + +-(std::vector)getUserInput +{ + return _strings; +} + +-(void)setListener:(minecraftpeViewController*)listener +{ + _listener = listener; +} + +// +// Helpers +// +- (void) setOk { + _status = 1; +} + +- (void) setCancel { + _status = 0; +} + +- (void) closeOk { + [self setOk]; + NSLog(@"Close dialog %p\n", _listener); + [_listener closeDialog]; +} + +- (void) closeCancel { + [self setCancel]; + [_listener closeDialog]; +} + +- (void) addString: (std::string) s { + _strings.push_back(s); +} + +@end diff --git a/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.h b/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.h new file mode 100755 index 0000000..02938d9 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.h @@ -0,0 +1,36 @@ +// +// CreateNewWorldViewController.h +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import "BaseDialogController.h" + +@interface CreateNewWorldViewController : BaseDialogController +{ + IBOutlet UILabel* _labelName; + IBOutlet UILabel* _labelSeed; + IBOutlet UILabel* _labelSeedHint; + + IBOutlet UILabel* _labelGameMode; + IBOutlet UILabel* _labelGameModeDesc; + + IBOutlet UITextField* _textName; + IBOutlet UITextField* _textSeed; + + IBOutlet UIButton* _btnGameMode; + + int _currentGameModeId; +} + +- (void) UpdateGameModeDesc; + +- (IBAction)DismissKeyboard; + +- (IBAction)Create; +- (IBAction)Cancel; +- (IBAction)ToggleGameMode; + +@end diff --git a/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.mm b/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.mm new file mode 100755 index 0000000..0e53ff4 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/CreateNewWorldViewController.mm @@ -0,0 +1,187 @@ +// +// CreateNewWorldViewController.m +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang. All rights reserved. +// + +#import "CreateNewWorldViewController.h" +#import + +static const int GameMode_Creative = 0; +static const int GameMode_Survival = 1; +static const char* getGameModeName(int mode) { + if (mode == GameMode_Survival) return "survival"; + return "creative"; +} + +@implementation CreateNewWorldViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + _currentGameModeId = GameMode_Creative; + } + return self; +} + +- (void)didReceiveMemoryWarning +{ + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void) UpdateGameModeDesc +{ + if (_currentGameModeId == GameMode_Creative) { + [_labelGameModeDesc setText:@"Unlimited resources, flying"]; + + UIImage *img = [UIImage imageNamed:@"creative_0_4.png"]; + [_btnGameMode setImage:img forState:UIControlStateNormal]; + UIImage *img2 = [UIImage imageNamed:@"creative_1_4.png"]; + [_btnGameMode setImage:img2 forState:UIControlStateHighlighted]; + } + if (_currentGameModeId == GameMode_Survival) { + [_labelGameModeDesc setText:@"Mobs, health and gather resources"]; + + UIImage *img = [UIImage imageNamed:@"survival_0_4.png"]; + [_btnGameMode setImage:img forState:UIControlStateNormal]; + UIImage *img2 = [UIImage imageNamed:@"survival_1_4.png"]; + [_btnGameMode setImage:img2 forState:UIControlStateHighlighted]; + } +} + +#pragma mark - View lifecycle + +- (BOOL)textFieldShouldReturn:(UITextField *)textField +{ + //NSLog(@"TextField should return\n"); + [textField setUserInteractionEnabled:YES]; + [self DismissKeyboard]; +// [textField resignFirstResponder]; +// if (textField == _textName) +// [_textSeed becomeFirstResponder]; +// else if (textField == _textSeed) +// [self Create]; + return YES; +} + +- (void) resizeView:(UIView*)obj width:(int)w height:(int)h { + if (w < 0) w = obj.frame.size.width; + if (h < 0) h = obj.frame.size.height; + obj.frame = CGRectMake(obj.frame.origin.x, obj.frame.origin.y, w, h); +} + +- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string +{ + if (textField == _textName) { + NSUInteger newLength = [textField.text length] + [string length] - range.length; + if (newLength > 18) + return NO; + } + + int length = [string length]; + for (int i = 0; i < length; ++i) { + unichar ch = [string characterAtIndex:i]; + + if (ch >= 128) + return NO; + } + return YES; +} + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad +{ + [super viewDidLoad]; + BOOL isIpad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); + + UIFont* fontLarge = nil; + UIFont* fontSmall = nil; + + if (isIpad) { + [self resizeView:_textName width:-1 height:48]; + [self resizeView:_textSeed width:-1 height:48]; + self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg128.png"] ]; + fontLarge = [UIFont fontWithName:@"minecraft" size:28]; + fontSmall = [UIFont fontWithName:@"minecraft" size:24]; + } else { + [self resizeView:_textName width:-1 height:32]; + [self resizeView:_textSeed width:-1 height:32]; + self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg64.png"] ]; + fontLarge = [UIFont fontWithName:@"minecraft" size:16]; + fontSmall = [UIFont fontWithName:@"minecraft" size: 14]; + } + + UIView *paddingView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 4, 20)] autorelease]; + _textName.leftView = paddingView; + _textSeed.leftView = paddingView; + + [_labelName setFont:fontLarge]; + [_labelSeed setFont:fontSmall]; + [_labelSeedHint setFont:fontSmall]; + [_labelGameMode setFont:fontSmall]; + [_labelGameModeDesc setFont:fontSmall]; + + [_textName setFont:fontLarge]; + [_textSeed setFont:fontLarge]; + + _textName.layer.borderColor = [[UIColor whiteColor] CGColor]; + _textName.layer.borderWidth = 2.0f; + + _textSeed.layer.borderColor = [[UIColor whiteColor] CGColor]; + _textSeed.layer.borderWidth = 2.0f; + + _textSeed.delegate = self; + _textName.delegate = self; + + [self UpdateGameModeDesc]; +} + +- (void)viewDidUnload +{ + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +{ + // Return YES for supported orientations + return UIInterfaceOrientationIsLandscape(interfaceOrientation); +} + +- (IBAction)Create { + //NSLog(@"I'm done!"); + // Push the strings + [self addString: [[_textName text] UTF8String]]; + [self addString: [[_textSeed text] UTF8String]]; + [self addString: getGameModeName(_currentGameModeId)]; + [self closeOk]; +} + +- (IBAction)Cancel { + //NSLog(@"I'm cancelled!"); + [self closeCancel]; +} + +- (IBAction)ToggleGameMode { + const int NumGameModes = 2; + if (++_currentGameModeId >= NumGameModes) + _currentGameModeId = 0; + + [self UpdateGameModeDesc]; +} + +- (IBAction)DismissKeyboard { + //NSLog(@"Trying to dismiss keyboard %p %p\n", _textName, _textSeed); + [_textName resignFirstResponder]; + [_textSeed resignFirstResponder]; +} + +@end diff --git a/project/iosproj/minecraftpe/dialogs/CreateNewWorld_ipad.xib b/project/iosproj/minecraftpe/dialogs/CreateNewWorld_ipad.xib new file mode 100755 index 0000000..935a2ab --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/CreateNewWorld_ipad.xib @@ -0,0 +1,628 @@ + + + + 1536 + 12C2034 + 2844 + 1187.34 + 625.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1930 + + + YES + IBProxyObject + IBUIButton + IBUIImageView + IBUILabel + IBUITextField + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 292 + {{274, 128}, {468, 48}} + + + + 1 + MCAwIDAAA + darkTextColor + + NO + YES + IBCocoaTouchFramework + 0 + + 1 + + 3 + MQA + + YES + 18 + + 1 + 1 + 9 + IBCocoaTouchFramework + + + AndaleMono + Andale Mono + 0 + 18 + + + Helvetica + 18 + 16 + + + + + 292 + {{274, 473}, {468, 48}} + + + + 3 + MAA + + 2 + + + NO + YES + {{1, 0}, {1, 1}} + IBCocoaTouchFramework + 0 + + 1 + + 1 + MSAxIDEAA + + YES + 24 + + 1 + 1 + 9 + IBCocoaTouchFramework + + + Helvetica + Helvetica + 0 + 24 + + + Helvetica + 24 + 16 + + + + + 292 + {{217, 422}, {565, 57}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Seed for the World Generator + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC4zMzMzMzMzMzMzAA + + {2, 2} + 1 + 18 + 1 + + Minecraft + Minecraft + 0 + 18 + + + + + + 292 + {{217, 523}, {565, 57}} + + NO + YES + 7 + NO + IBCocoaTouchFramework + Leave blank for random seed + + + + {2, 2} + 1 + 18 + 1 + + + + + + 292 + {{760, 0}, {264, 104}} + + + + 1 + MC42IDAuNiAwLjYgMAA + + NO + IBCocoaTouchFramework + 0 + 0 + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + 3 + MC41AA + + + NSImage + create_1_4.png + + + NSImage + create_1.png + + + NSImage + create_0_4.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + + 292 + {264, 104} + + + NO + IBCocoaTouchFramework + 0 + 0 + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + NSImage + cancel_1_4.png + + + NSImage + cancel_0_4.png + + + + + + + 292 + {{213, 328}, {598, 59}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + + + + + {2, 2} + 1 + 12 + 12 + 1 + + Minecraft + Minecraft + 0 + 14 + + + Helvetica + 14 + 16 + + 598 + + + + 292 + {{320, 216}, {384, 104}} + + + NO + IBCocoaTouchFramework + 0 + 0 + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + NSImage + cancel_1.png + + + NSImage + creative_1_4.png + + + + + + + 292 + {{264, 0}, {496, 104}} + + + NO + IBCocoaTouchFramework + + NSImage + worldname_ipad_4.png + + + + {1024, 742} + + + + 1 + MC40NzQ0ODk3OTU5IDAuMjc0MDc1NzkxMSAwLjIwNjM1MzA5NAA + + 4 + + 3 + 3 + + + IBUISimulatedFreeformSizeMetricsSentinel + Freeform + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 12 + + + + _textName + + + + 30 + + + + _textSeed + + + + 31 + + + + _labelSeed + + + + 33 + + + + _labelGameModeDesc + + + + 38 + + + + _btnGameMode + + + + 40 + + + + _labelSeedHint + + + + 44 + + + + Create + + + 7 + + 23 + + + + Cancel + + + 7 + + 24 + + + + DismissKeyboard + + + 7 + + 28 + + + + ToggleGameMode + + + 7 + + 41 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 9 + + + YES + + + + + + + + + + + + + + 8 + + + + + 7 + + + + + 5 + + + + + 4 + + + + + 3 + + + + + 36 + + + + + 37 + + + + + 42 + + + + + 43 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 3.IBPluginDependency + 36.IBPluginDependency + 37.IBPluginDependency + 37.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 4.IBPluginDependency + 42.IBPluginDependency + 43.IBPluginDependency + 5.IBPluginDependency + 7.IBPluginDependency + 7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 8.IBPluginDependency + 8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 9.CustomClassName + 9.IBPluginDependency + + + YES + CreateNewWorldViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + UIControl + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 44 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + cancel_0_4.png + cancel_1.png + cancel_1_4.png + create_0_4.png + create_1.png + create_1_4.png + creative_1_4.png + worldname_ipad_4.png + + + YES + {264, 104} + {16, 16} + {264, 104} + {264, 104} + {16, 16} + {264, 104} + {384, 104} + {504, 104} + + + 1930 + + diff --git a/project/iosproj/minecraftpe/dialogs/CreateNewWorld_iphone.xib b/project/iosproj/minecraftpe/dialogs/CreateNewWorld_iphone.xib new file mode 100755 index 0000000..45b4843 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/CreateNewWorld_iphone.xib @@ -0,0 +1,644 @@ + + + + 1536 + 11G63 + 2843 + 1138.51 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1929 + + + YES + IBProxyObject + IBUIButton + IBUIImageView + IBUILabel + IBUITextField + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 292 + {{130, 62}, {222, 31}} + + + + 1 + MCAwIDAAA + darkTextColor + + NO + YES + IBCocoaTouchFramework + 0 + + 1 + + 3 + MQA + + YES + 18 + + 1 + 1 + 9 + IBCocoaTouchFramework + + + AndaleMono + Andale Mono + 0 + 18 + + + Helvetica + 18 + 16 + + + + + 292 + {{130, 245}, {222, 31}} + + + 3 + MAA + + 2 + + + NO + YES + {{1, 0}, {1, 1}} + IBCocoaTouchFramework + 0 + + 1 + + 1 + MSAxIDEAA + + YES + 24 + + 1 + 1 + 9 + IBCocoaTouchFramework + + + Helvetica + Helvetica + 0 + 24 + + + Helvetica + 24 + 16 + + + + + 292 + {{86, 212}, {310, 35}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Seed for the World Generator + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC4zMzMzMzMzMzMzAA + + {1, 1} + 1 + 12 + 1 + + Minecraft + Minecraft + 0 + 14 + + + Helvetica + 14 + 16 + + + + + 292 + {{86, 269}, {310, 49}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Leave blank for a random seed + + + + {1, 1} + 1 + 12 + 1 + + Helvetica + Helvetica + 0 + 14 + + + + + + 292 + {{74, 160}, {335, 44}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + + + + + {1, 1} + 1 + 12 + 12 + 1 + + + 335 + + + + 292 + {{348, 0}, {132, 52}} + + + + 1 + MC42IDAuNiAwLjYgMAA + + NO + IBCocoaTouchFramework + 0 + 0 + Create + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + 3 + MC41AA + + + NSImage + create_1_3.png + + + + NSImage + create_0_3.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + + 292 + {132, 52} + + + NO + IBCocoaTouchFramework + 0 + 0 + Cancel + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + NSImage + cancel_1_3.png + + + + NSImage + cancel_0_3.png + + + + + + + 292 + {{144, 109}, {191, 52}} + + + NO + IBCocoaTouchFramework + 0 + 0 + Cancel + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + NSImage + cancel_1.png + + + NSImage + creative_0_3.png + + + + + + + 292 + {{130, 0}, {220, 52}} + + + NO + IBCocoaTouchFramework + + NSImage + worldname_iphone_3.png + + + + {480, 320} + + + + 1 + MC40NzQ0ODk3OTU5IDAuMjc0MDc1NzkxMSAwLjIwNjM1MzA5NAA + + 4 + + 3 + 3 + + + IBUIScreenMetrics + + YES + + YES + + + + + YES + {320, 480} + {480, 320} + + + IBCocoaTouchFramework + Retina 3.5 Full Screen + 0 + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 12 + + + + _textName + + + + 30 + + + + _textSeed + + + + 31 + + + + _labelSeed + + + + 33 + + + + _labelSeedHint + + + + 34 + + + + _labelGameModeDesc + + + + 70 + + + + _btnGameMode + + + + 73 + + + + Create + + + 7 + + 23 + + + + Cancel + + + 7 + + 24 + + + + DismissKeyboard + + + 7 + + 28 + + + + ToggleGameMode + + + 7 + + 71 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 9 + + + YES + + + + + + + + + + + + + + 8 + + + + + 5 + + + + + 4 + + + + + 3 + + + + + 13 + + + + + 36 + + + + + 39 + + + + + 74 + + + + + 7 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 13.IBPluginDependency + 3.IBPluginDependency + 36.IBPluginDependency + 36.IBUIButtonInspectorSelectedEdgeInsetMetadataKey + 36.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 39.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 7.IBPluginDependency + 7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 74.IBPluginDependency + 8.IBPluginDependency + 8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 9.CustomClassName + 9.IBPluginDependency + + + YES + CreateNewWorldViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + UIControl + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 74 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + cancel_0_3.png + cancel_1.png + cancel_1_3.png + create_0_3.png + create_1_3.png + creative_0_3.png + worldname_iphone_3.png + + + YES + {132, 52} + {16, 16} + {132, 52} + {132, 52} + {132, 52} + {191, 52} + {220, 52} + + + 1929 + + diff --git a/project/iosproj/minecraftpe/dialogs/CreateNewWorld_iphone5.xib b/project/iosproj/minecraftpe/dialogs/CreateNewWorld_iphone5.xib new file mode 100755 index 0000000..e5335c7 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/CreateNewWorld_iphone5.xib @@ -0,0 +1,643 @@ + + + + 1536 + 12C2034 + 2844 + 1187.34 + 625.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1930 + + + YES + IBProxyObject + IBUIButton + IBUIImageView + IBUILabel + IBUITextField + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 292 + {{173, 62}, {222, 31}} + + + + 1 + MCAwIDAAA + darkTextColor + + NO + YES + IBCocoaTouchFramework + 0 + + 1 + + 3 + MQA + + YES + 18 + + 1 + 1 + 9 + IBCocoaTouchFramework + + + AndaleMono + Andale Mono + 0 + 18 + + + Helvetica + 18 + 16 + + + + + 292 + {{173, 245}, {222, 31}} + + + + 3 + MAA + + 2 + + + NO + YES + {{1, 0}, {1, 1}} + IBCocoaTouchFramework + 0 + + 1 + + 1 + MSAxIDEAA + + YES + 24 + + 1 + 1 + 9 + IBCocoaTouchFramework + + + Helvetica + Helvetica + 0 + 24 + + + Helvetica + 24 + 16 + + + + + 292 + {{129, 212}, {310, 35}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Seed for the World Generator + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC4zMzMzMzMzMzMzAA + + {1, 1} + 1 + 12 + 1 + + Minecraft + Minecraft + 0 + 14 + + + Helvetica + 14 + 16 + + + + + 292 + {{129, 269}, {310, 49}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Leave blank for a random seed + + + + {1, 1} + 1 + 12 + 1 + + Helvetica + Helvetica + 0 + 14 + + + + + + 292 + {{116, 160}, {335, 44}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + + + + + {1, 1} + 1 + 12 + 12 + 1 + + + 335 + + + + 292 + {{437, 0}, {132, 52}} + + + + 1 + MC42IDAuNiAwLjYgMAA + + NO + IBCocoaTouchFramework + 0 + 0 + Create + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + 3 + MC41AA + + + NSImage + create_1_3.png + + + + NSImage + create_0_3.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + + 292 + {132, 52} + + + NO + IBCocoaTouchFramework + 0 + 0 + Cancel + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + NSImage + cancel_1_3.png + + + + NSImage + cancel_0_3.png + + + + + + + 292 + {{188, 109}, {191, 52}} + + + NO + IBCocoaTouchFramework + 0 + 0 + Cancel + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + + NSImage + cancel_1.png + + + NSImage + creative_0_3.png + + + + + + + 292 + {{129, 0}, {310, 52}} + + + NO + IBCocoaTouchFramework + + NSImage + worldname_iphone5_3.png + + + + {480, 320} + + + + 1 + MC40NzQ0ODk3OTU5IDAuMjc0MDc1NzkxMSAwLjIwNjM1MzA5NAA + + 4 + + 3 + 3 + + + IBUIScreenMetrics + + YES + + YES + + + + + YES + {320, 480} + {480, 320} + + + IBCocoaTouchFramework + Retina 3.5 Full Screen + 0 + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 12 + + + + _textName + + + + 30 + + + + _textSeed + + + + 31 + + + + _labelSeed + + + + 33 + + + + _labelSeedHint + + + + 34 + + + + _labelGameModeDesc + + + + 70 + + + + _btnGameMode + + + + 73 + + + + Create + + + 7 + + 23 + + + + Cancel + + + 7 + + 24 + + + + DismissKeyboard + + + 7 + + 28 + + + + ToggleGameMode + + + 7 + + 71 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 9 + + + YES + + + + + + + + + + + + + + 8 + + + + + 7 + + + + + 5 + + + + + 4 + + + + + 3 + + + + + 13 + + + + + 36 + + + + + 39 + + + + + 74 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 13.IBPluginDependency + 3.IBPluginDependency + 36.IBPluginDependency + 36.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 39.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 7.IBPluginDependency + 7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 74.IBPluginDependency + 8.IBPluginDependency + 8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 9.CustomClassName + 9.IBPluginDependency + + + YES + CreateNewWorldViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + UIControl + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 75 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + cancel_0_3.png + cancel_1.png + cancel_1_3.png + create_0_3.png + create_1_3.png + creative_0_3.png + worldname_iphone5_3.png + + + YES + {132, 52} + {16, 16} + {132, 52} + {132, 52} + {132, 52} + {191, 52} + {310, 52} + + + 1930 + + diff --git a/project/iosproj/minecraftpe/dialogs/IDialog.h b/project/iosproj/minecraftpe/dialogs/IDialog.h new file mode 100755 index 0000000..1b4b2ec --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/IDialog.h @@ -0,0 +1,23 @@ +// +// IDialog.h +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import +#import +#import + +@class minecraftpeViewController; + +@protocol IDialog + +-(void)addToView:(UIView*)parentView; +-(void)setListener:(minecraftpeViewController*)listener; + +-(int)getUserInputStatus; +-(std::vector)getUserInput; + +@end diff --git a/project/iosproj/minecraftpe/dialogs/RenameMPWorldViewController.h b/project/iosproj/minecraftpe/dialogs/RenameMPWorldViewController.h new file mode 100755 index 0000000..c254c60 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/RenameMPWorldViewController.h @@ -0,0 +1,23 @@ +// +// RenameMPWorldViewController.h +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import "BaseDialogController.h" + +@interface RenameMPWorldViewController : BaseDialogController +{ + IBOutlet UILabel* _labelName; + + IBOutlet UITextField* _textName; +} + +- (IBAction)DismissKeyboard; + +- (IBAction)Create; +- (IBAction)Cancel; + +@end diff --git a/project/iosproj/minecraftpe/dialogs/RenameMPWorldViewController.mm b/project/iosproj/minecraftpe/dialogs/RenameMPWorldViewController.mm new file mode 100755 index 0000000..ebcdc01 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/RenameMPWorldViewController.mm @@ -0,0 +1,132 @@ +// +// RenameMPWorldViewController.m +// minecraftpe +// +// Created by rhino on 10/20/11. +// Copyright 2011 Mojang. All rights reserved. +// + +#import "RenameMPWorldViewController.h" +#import + +@implementation RenameMPWorldViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)didReceiveMemoryWarning +{ + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +#pragma mark - View lifecycle + +- (BOOL)textFieldShouldReturn:(UITextField *)textField +{ + //NSLog(@"TextField should return\n"); + [textField setUserInteractionEnabled:YES]; + [textField resignFirstResponder]; + if (textField == _textName) + [self Create]; + return YES; +} + +- (void) resizeView:(UIView*)obj width:(int)w height:(int)h { + if (w < 0) w = obj.frame.size.width; + if (h < 0) h = obj.frame.size.height; + obj.frame = CGRectMake(obj.frame.origin.x, obj.frame.origin.y, w, h); +} + +- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string +{ + if (textField == _textName) { + NSUInteger newLength = [textField.text length] + [string length] - range.length; + if (newLength > 18) + return NO; + } + + int length = [string length]; + for (int i = 0; i < length; ++i) { + unichar ch = [string characterAtIndex:i]; + + if (ch >= 128) + return NO; + } + return YES; +} + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad +{ + [super viewDidLoad]; + BOOL isIpad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); + + UIFont* fontLarge = nil; + UIFont* fontSmall = nil; + + if (isIpad) { + [self resizeView:_textName width:-1 height:48]; + self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg128.png"] ]; + fontLarge = [UIFont fontWithName:@"minecraft" size:24]; + fontSmall = [UIFont fontWithName:@"minecraft" size:18]; + } else { + [self resizeView:_textName width:-1 height:32]; + self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg64.png"] ]; + fontLarge = [UIFont fontWithName:@"minecraft" size:16]; + fontSmall = [UIFont fontWithName:@"minecraft" size: 14]; + } + + UIView *paddingView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 4, 20)] autorelease]; + _textName.leftView = paddingView; + + [_labelName setFont:fontLarge]; + + [_textName setFont:fontLarge]; + + _textName.layer.borderColor = [[UIColor whiteColor] CGColor]; + _textName.layer.borderWidth = 2.0f; + + _textName.delegate = self; + [_textName becomeFirstResponder]; +} + +- (void)viewDidUnload +{ + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +{ + // Return YES for supported orientations + return UIInterfaceOrientationIsLandscape(interfaceOrientation); +} + +- (IBAction)Create { + //NSLog(@"I'm done!"); + // Push the strings + [self addString: [[_textName text] UTF8String]]; + [self closeOk]; +} + +- (IBAction)Cancel { + //NSLog(@"I'm cancelled!"); + [self closeCancel]; +} + +- (IBAction)DismissKeyboard { + //NSLog(@"Trying to dismiss keyboard %p %p\n", _textName, _textSeed); + [_textName resignFirstResponder]; +} + +@end diff --git a/project/iosproj/minecraftpe/dialogs/RenameMPWorld_ipad.xib b/project/iosproj/minecraftpe/dialogs/RenameMPWorld_ipad.xib new file mode 100755 index 0000000..313b099 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/RenameMPWorld_ipad.xib @@ -0,0 +1,353 @@ + + + + 1536 + 11G63 + 2843 + 1138.51 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1929 + + + YES + IBProxyObject + IBUIButton + IBUILabel + IBUITextField + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 292 + {{230, 126}, {565, 31}} + + + + 1 + MCAwIDAAA + darkTextColor + + NO + YES + IBCocoaTouchFramework + 0 + + 1 + + 3 + MQA + + YES + 18 + + 1 + 1 + 1 + IBCocoaTouchFramework + + + AndaleMono + Andale Mono + 0 + 18 + + + Helvetica + 18 + 16 + + + + + 292 + {{230, 68}, {565, 55}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Save world as + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC4zMzMzMzMzMzMzAA + + {2, 2} + 1 + 12 + + Minecraft + Minecraft + 0 + 14 + + + Helvetica + 14 + 16 + + + + + 292 + {{380, 214}, {264, 104}} + + + 1 + MC42IDAuNiAwLjYgMAA + + NO + IBCocoaTouchFramework + 0 + 0 + Create + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + 3 + MC41AA + + + NSImage + save_1.png + + + NSImage + create_1.png + + + NSImage + save_0.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + {1024, 742} + + + + 1 + MC40NzQ0ODk3OTU5IDAuMjc0MDc1NzkxMSAwLjIwNjM1MzA5NAA + + 4 + + 3 + 3 + + + IBUISimulatedFreeformSizeMetricsSentinel + Freeform + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 12 + + + + _textName + + + + 30 + + + + _labelName + + + + 32 + + + + Create + + + 7 + + 23 + + + + DismissKeyboard + + + 7 + + 28 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 9 + + + YES + + + + + + + + 7 + + + + + 6 + + + + + 3 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 3.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 9.CustomClassName + 9.IBPluginDependency + + + YES + CreateNewWorldViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + UIControl + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 34 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + create_1.png + save_0.png + save_1.png + + + YES + {264, 104} + {264, 104} + {264, 104} + + + 1929 + + diff --git a/project/iosproj/minecraftpe/dialogs/RenameMPWorld_iphone.xib b/project/iosproj/minecraftpe/dialogs/RenameMPWorld_iphone.xib new file mode 100755 index 0000000..9229103 --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/RenameMPWorld_iphone.xib @@ -0,0 +1,368 @@ + + + + 1536 + 11G63 + 2843 + 1138.51 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1929 + + + YES + IBProxyObject + IBUIButton + IBUILabel + IBUITextField + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 292 + {{112, 58}, {281, 31}} + + + + 1 + MCAwIDAAA + darkTextColor + + NO + YES + IBCocoaTouchFramework + 0 + + 1 + + 3 + MQA + + YES + 18 + + 1 + 1 + 1 + IBCocoaTouchFramework + + + AndaleMono + Andale Mono + 0 + 18 + + + Helvetica + 18 + 16 + + + + + 292 + {{112, 11}, {565, 55}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Save world as + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC4zMzMzMzMzMzMzAA + + {2, 2} + 1 + 12 + + Minecraft + Minecraft + 0 + 14 + + + Helvetica + 14 + 16 + + + + + 292 + {{186, 106}, {132, 52}} + + + 1 + MC42IDAuNiAwLjYgMAA + + NO + IBCocoaTouchFramework + 0 + 0 + Create + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + 3 + MC41AA + + + NSImage + save_1.png + + + NSImage + create_1.png + + + NSImage + save_0.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + {480, 320} + + + + 1 + MC40NzQ0ODk3OTU5IDAuMjc0MDc1NzkxMSAwLjIwNjM1MzA5NAA + + 4 + + 3 + 3 + + + IBUIScreenMetrics + + YES + + YES + + + + + YES + {320, 480} + {480, 320} + + + IBCocoaTouchFramework + Retina 3.5 Full Screen + 0 + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 12 + + + + _textName + + + + 30 + + + + _labelName + + + + 32 + + + + Create + + + 7 + + 23 + + + + DismissKeyboard + + + 7 + + 28 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 9 + + + YES + + + + + + + + 7 + + + + + 6 + + + + + 3 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 3.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 9.CustomClassName + 9.IBPluginDependency + + + YES + CreateNewWorldViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + UIControl + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 34 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + create_1.png + save_0.png + save_1.png + + + YES + {264, 104} + {264, 104} + {264, 104} + + + 1929 + + diff --git a/project/iosproj/minecraftpe/dialogs/RenameMPWorld_iphone5.xib b/project/iosproj/minecraftpe/dialogs/RenameMPWorld_iphone5.xib new file mode 100755 index 0000000..a6ae64b --- /dev/null +++ b/project/iosproj/minecraftpe/dialogs/RenameMPWorld_iphone5.xib @@ -0,0 +1,367 @@ + + + + 1536 + 11G63 + 2843 + 1138.51 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1929 + + + YES + IBProxyObject + IBUIButton + IBUILabel + IBUITextField + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 292 + {{150, 58}, {281, 31}} + + + 1 + MCAwIDAAA + darkTextColor + + NO + YES + IBCocoaTouchFramework + 0 + + 1 + + 3 + MQA + + YES + 18 + + 1 + 1 + 1 + IBCocoaTouchFramework + + + AndaleMono + Andale Mono + 0 + 18 + + + Helvetica + 18 + 16 + + + + + 292 + {{150, 11}, {565, 55}} + + + NO + YES + 7 + NO + IBCocoaTouchFramework + Save world as + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC4zMzMzMzMzMzMzAA + + {2, 2} + 1 + 12 + + Minecraft + Minecraft + 0 + 14 + + + Helvetica + 14 + 16 + + + + + 292 + {{224, 106}, {132, 52}} + + + 1 + MC42IDAuNiAwLjYgMAA + + NO + IBCocoaTouchFramework + 0 + 0 + Create + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + 3 + MC41AA + + + NSImage + save_1.png + + + NSImage + create_1.png + + + NSImage + save_0.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + {480, 320} + + + + 1 + MC40NzQ0ODk3OTU5IDAuMjc0MDc1NzkxMSAwLjIwNjM1MzA5NAA + + 4 + + 3 + 3 + + + IBUIScreenMetrics + + YES + + YES + + + + + YES + {320, 480} + {480, 320} + + + IBCocoaTouchFramework + Retina 3.5 Full Screen + 0 + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 12 + + + + _textName + + + + 30 + + + + _labelName + + + + 32 + + + + Create + + + 7 + + 23 + + + + DismissKeyboard + + + 7 + + 28 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 9 + + + YES + + + + + + + + 7 + + + + + 6 + + + + + 3 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 3.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 9.CustomClassName + 9.IBPluginDependency + + + YES + CreateNewWorldViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + UIControl + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 34 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + create_1.png + save_0.png + save_1.png + + + YES + {264, 104} + {264, 104} + {264, 104} + + + 1929 + + diff --git a/project/iosproj/minecraftpe/en.lproj/InfoPlist.strings b/project/iosproj/minecraftpe/en.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/project/iosproj/minecraftpe/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/project/iosproj/minecraftpe/en.lproj/MainWindow.xib b/project/iosproj/minecraftpe/en.lproj/MainWindow.xib new file mode 100755 index 0000000..68b66a7 --- /dev/null +++ b/project/iosproj/minecraftpe/en.lproj/MainWindow.xib @@ -0,0 +1,196 @@ + + + + 1056 + 10H574 + 1248 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 106 + + + YES + IBUIWindow + IBUICustomObject + IBUIViewController + IBProxyObject + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + minecraftpeViewController + + 1 + 1 + + YES + IBCocoaTouchFramework + NO + + + + 1316 + + {320, 460} + + 1 + MSAxIDEAA + + NO + IBCocoaTouchFramework + YES + YES + + + + + YES + + + delegate + + + + 4 + + + + window + + + + 5 + + + + viewController + + + + 11 + + + + + YES + + 0 + + + + + + 2 + + + YES + + + + + -1 + + + File's Owner + + + 3 + + + + + -2 + + + + + 10 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 10.CustomClassName + 10.IBEditorWindowLastContentRect + 10.IBPluginDependency + 2.IBAttributePlaceholdersKey + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + minecraftpeViewController + {{415, 586}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + YES + + + + {{228, 376}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + minecraftpeAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 11 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + OpenGLES_iPhone.xcodeproj + 3 + 106 + + diff --git a/project/iosproj/minecraftpe/en.lproj/minecraftpeViewController.xib b/project/iosproj/minecraftpe/en.lproj/minecraftpeViewController.xib new file mode 100755 index 0000000..067b507 --- /dev/null +++ b/project/iosproj/minecraftpe/en.lproj/minecraftpeViewController.xib @@ -0,0 +1,145 @@ + + + + 1024 + 10H574 + 1248 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 106 + + + YES + IBProxyObject + IBUIView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + + + + 3 + MQA + + 2 + + + NO + IBCocoaTouchFramework + + + + + YES + + + view + + + + 3 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 2 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 2.CustomClassName + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + + + YES + minecraftpeViewController + UIResponder + EAGLView + {{401, 662}, {320, 460}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 4 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + Untitled.xcodeproj + 3 + 106 + + diff --git a/project/iosproj/minecraftpe/main.mm b/project/iosproj/minecraftpe/main.mm new file mode 100755 index 0000000..fdf236a --- /dev/null +++ b/project/iosproj/minecraftpe/main.mm @@ -0,0 +1,18 @@ + +// +// main.m +// minecraftpe +// +// Created by rhino on 10/17/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, nil); + [pool release]; + return retVal; +} diff --git a/project/iosproj/minecraftpe/minecraftpe-Info.plist b/project/iosproj/minecraftpe/minecraftpe-Info.plist new file mode 100755 index 0000000..30bd23f --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpe-Info.plist @@ -0,0 +1,73 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Minecraft PE + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIconFiles + + Icon.png + Icon@2x.png + Icon-72.png + Icon-Small.png + Icon-Small-50.png + Icon-Small@2x.png + + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + Icon.png + Icon@2x.png + Icon-72.png + Icon-Small.png + Icon-Small-50.png + Icon-Small@2x.png + + UIPrerenderedIcon + + + + CFBundleIdentifier + com.mojang.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Minecraft PE + CFBundlePackageType + APPL + CFBundleShortVersionString + 0.6.0 + CFBundleSignature + ???? + CFBundleVersion + 0.6.0.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + UIAppFonts + + minecraft.ttf + + UIPrerenderedIcon + + UIRequiresPersistentWiFi + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/project/iosproj/minecraftpe/minecraftpe-Prefix.pch b/project/iosproj/minecraftpe/minecraftpe-Prefix.pch new file mode 100755 index 0000000..c07882f --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpe-Prefix.pch @@ -0,0 +1,14 @@ +// +// Prefix header for all source files of the 'minecraftpe' target in the 'minecraftpe' project +// + +#import + +#ifndef __IPHONE_3_0 +#warning "This project uses features only available in iPhone SDK 3.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/project/iosproj/minecraftpe/minecraftpeAppDelegate.h b/project/iosproj/minecraftpe/minecraftpeAppDelegate.h new file mode 100755 index 0000000..0028a8c --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpeAppDelegate.h @@ -0,0 +1,29 @@ +// +// minecraftpeAppDelegate.h +// minecraftpe +// +// Created by rhino on 10/17/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import +#import + +@class minecraftpeViewController; + +@interface minecraftpeAppDelegate : NSObject { + AVAudioSession* audioSession; + NSString* audioSessionSoundCategory; +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; + +@property (nonatomic, retain) IBOutlet minecraftpeViewController *viewController; + +// AVAudioSessionDelegate +- (void)beginInterruption; +- (void)endInterruption; + ++ (void) initialize; + +@end diff --git a/project/iosproj/minecraftpe/minecraftpeAppDelegate.mm b/project/iosproj/minecraftpe/minecraftpeAppDelegate.mm new file mode 100755 index 0000000..ea8e5a9 --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpeAppDelegate.mm @@ -0,0 +1,180 @@ +// +// minecraftpeAppDelegate.m +// minecraftpe +// +// Created by rhino on 10/17/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import "minecraftpeAppDelegate.h" + +#import "EAGLView.h" + +#import "minecraftpeViewController.h" + + +@implementation minecraftpeAppDelegate + +@synthesize window = _window; +@synthesize viewController = _viewController; + + +- (void) registerDefaultsFromFile:(NSString*)filename { + NSString* pathToUserDefaultsValues = [[NSBundle mainBundle] + pathForResource:filename + ofType:@"plist"]; + NSDictionary* userDefaultsValues = [NSDictionary dictionaryWithContentsOfFile:pathToUserDefaultsValues]; + [[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValues]; +} + +NSError* audioSessionError = nil; + +- (void) initAudio { + audioSession = [AVAudioSession sharedInstance]; + [audioSession setActive:YES error:&audioSessionError]; + + if (audioSessionError) + NSLog(@"Warning; Couldn't set audio active\n"); + + [audioSession setDelegate:self]; + + audioSessionSoundCategory = AVAudioSessionCategoryAmbient; + audioSessionError = nil; + + [audioSession setCategory:audioSessionSoundCategory error:&audioSessionError]; + + if (audioSessionError) + NSLog(@"Warning; Couldn't init audio\n"); +} + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + [self initAudio]; + + self.window.rootViewController = self.viewController; +#ifndef ANDROID_PUBLISH + NSLog(@"ViewController: %p\n", self.viewController); +#endif + //[self registerDefaultsFromFile:@"userDefaults"]; + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + /* + Sent when the application is about to move from active to inactive + state. This can occur for certain types of temporary interruptions + (such as an incoming phone call or SMS message) or when the user + quits the application and it begins the transition to the background + state. + Use this method to pause ongoing tasks, disable timers, and throttle + down OpenGL ES frame rates. Games should use this method to pause the game. + */ +#ifndef ANDROID_PUBLISH + NSLog(@"resign-active: %@\n", [NSThread currentThread]); +#endif + [self.viewController stopAnimation]; +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + /* + Use this method to release shared resources, save user data, invalidate + timers, and store enough application state information to restore your + application to its current state in case it is terminated later. + If your application supports background execution, this method is + called instead of applicationWillTerminate: when the user quits. + */ + [self.viewController enteredBackground]; +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + /* + Called as part of the transition from the background to the inactive state; + here you can undo many of the changes made on entering the background. + */ +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + /* + Restart any tasks that were paused (or not yet started) while the + application was inactive. If the application was previously in the + background, optionally refresh the user interface. + */ +#ifndef ANDROID_PUBLISH + NSLog(@"become-active: %@\n", [NSThread currentThread]); +#endif + [self.viewController startAnimation]; +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + /* + Called when the application is about to terminate. + Save data if appropriate. + See also applicationDidEnterBackground:. + */ + [self.viewController stopAnimation]; +} + +- (void)dealloc +{ + [_window release]; + [_viewController release]; + [super dealloc]; +} + ++ (void) initialize { + if ([self class] == [minecraftpeAppDelegate class]) { + } +} + + +// +// AudioSesssionDelegate +// +- (void)setAudioEnabled:(BOOL)status { + //NSLog(@"set-audio-enabled: :%d %@\n", status, [NSThread currentThread]); + + if(status) { + NSLog(@"INFO - SoundManager: OpenAL Active"); + // Set the AudioSession AudioCategory to what has been defined in soundCategory + [audioSession setCategory:audioSessionSoundCategory error:&audioSessionError]; + if(audioSessionError) { + NSLog(@"ERROR - SoundManager: Unable to set the audio session category with error: %@\n", audioSessionError); + return; + } + + // Set the audio session state to true and report any errors + [audioSession setActive:YES error:&audioSessionError]; + if (audioSessionError) { + NSLog(@"ERROR - SoundManager: Unable to set the audio session state to YES with error: %@\n", audioSessionError); + return; + } + } else { + NSLog(@"INFO - SoundManager: OpenAL Inactive"); + + // Set the audio session state to false and report any errors +// [audioSession setActive:NO error:&audioSessionError]; +// if (audioSessionError) { +// NSLog(@"ERROR - SoundManager: Unable to set the audio session state to NO with error: %@\n", audioSessionError); +// return; +// } + } + + [_viewController setAudioEnabled:status]; +} + +- (void)beginInterruption { + //NSLog(@"beginInterruption\n"); + [self setAudioEnabled:NO]; +} +- (void)endInterruption { + //NSLog(@"endInterruption\n"); + [self setAudioEnabled:YES]; +} + +@end diff --git a/project/iosproj/minecraftpe/minecraftpeViewController.h b/project/iosproj/minecraftpe/minecraftpeViewController.h new file mode 100755 index 0000000..011e6e4 --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpeViewController.h @@ -0,0 +1,78 @@ +// +// minecraftpeViewController.h +// minecraftpe +// +// Created by rhino on 10/17/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import + +#import +#import +#import "../../../src/App.h" +#import "../../../src/AppPlatform_iOS.h" +#import "../../../src/NinecraftApp.h" +#import "ShowKeyboardView.h" + +#import "../../lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h" + +@class EAGLContext; +//@class App; +//@class AppContext; +//@class AppPlatform_iOS; +@class BaseDialogController; + +@interface minecraftpeViewController : UIViewController { + EAGLContext *context; + + // App and AppPlatform + App* _app; + AppContext* _context; + AppPlatform_iOS* _platform; + + UITouch** _touchMap; + + BOOL animating; + NSInteger animationFrameInterval; + CADisplayLink *displayLink; + + BaseDialogController* _dialog; + + int _dialogResultStatus; + std::vector _dialogResultStrings; + + ShowKeyboardView* _keyboardView; + + @public + float viewScale; +} + +@property (readonly, nonatomic, getter=isAnimating) BOOL animating; +@property (nonatomic) NSInteger animationFrameInterval; + +@property (nonatomic, retain) IASKAppSettingsViewController *appSettingsViewController; + + +- (void)startAnimation; +- (void)stopAnimation; +- (void)enteredBackground; + +- (void)setAudioEnabled:(BOOL)status; + +-(int) getUserInputStatus; +-(std::vector)getUserInput; + +- (void)showDialog_CreateWorld; +- (void)showDialog_MainMenuOptions; +- (void)showDialog_RenameMPWorld; + +- (void)showKeyboard; +- (void)hideKeyboard; + +- (void) closeDialog; +- (BaseDialogController*) dialog; + ++ (void) initialize; + +@end diff --git a/project/iosproj/minecraftpe/minecraftpeViewController.mm b/project/iosproj/minecraftpe/minecraftpeViewController.mm new file mode 100755 index 0000000..e8cec23 --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpeViewController.mm @@ -0,0 +1,555 @@ +// +// minecraftpeViewController.m +// minecraftpe +// +// Created by rhino on 10/17/11. +// Copyright 2011 Mojang AB. All rights reserved. +// + +#import + +#import "minecraftpeViewController.h" +#import "EAGLView.h" + +#import "../../../src/platform/input/Multitouch.h" +#import "../../../src/platform/input/Mouse.h" +#import "../../../src/client/OptionStrings.h" + +#import "../../../src/App.h" +#import "../../../src/AppPlatform_iOS.h" +#import "../../../src/NinecraftApp.h" + +//#import "dialogs/DialogViewController.h" +#import "dialogs/CreateNewWorldViewController.h" +#import "dialogs/RenameMPWorldViewController.h" +#import "../../lib_projects/InAppSettingsKit/Models/IASKSettingsReader.h" + +#import "../../lib_projects/InAppSettingsKit/Views/IASKSwitch.h" +#import "../../lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h" + +@interface minecraftpeViewController () +@property (nonatomic, retain) EAGLContext *context; +@property (nonatomic, assign) CADisplayLink *displayLink; +- (BOOL) initView; +- (BOOL) releaseView; + +- (void) _resetAllPointers; +@end + +static NSThread* lastThread = nil; + +@implementation minecraftpeViewController + +@synthesize animating; +@synthesize context; +@synthesize displayLink; + +@synthesize appSettingsViewController; + +- (IASKAppSettingsViewController*)appSettingsViewController { + if (!appSettingsViewController) { + appSettingsViewController = [[IASKAppSettingsViewController alloc] initWithNibName:@"IASKAppSettingsView" bundle:nil]; + appSettingsViewController.delegate = self; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(settingToggled:) name:kIASKAppSettingChanged object:nil]; + } + return appSettingsViewController; +} + +- (void)awakeFromNib +{ + EAGLContext *aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1]; + + if (!aContext) + NSLog(@"Failed to create ES context"); + else if (![EAGLContext setCurrentContext:aContext]) + NSLog(@"Failed to set ES context current"); + + self.context = aContext; + [aContext release]; + + [(EAGLView *)self.view setContext:context]; + [(EAGLView *)self.view setFramebuffer]; + + animating = FALSE; + animationFrameInterval = 1; + + //animationFrameInterval = 2; + + //NSString* renderer = [[NSString alloc] initWithUTF8String: (const char*)glGetString(GL_RENDERER)]; + //if (renderer != nil && [renderer rangeOfString:@"SGX"].location != NSNotFound && [renderer rangeOfString:@"543"].location != NSNotFound) + //{ + //NSLog(@"WE HAVE A FAST GRAPHICS CARD\n"); + //NSLog(@"WE HAVE A FAST GRAPHICS CARD\n"); + //NSLog(@"WE HAVE A FAST GRAPHICS CARD\n"); + //animationFrameInterval = 1; + //} + //[renderer release]; + + self.displayLink = nil; + + _platform = new AppPlatform_iOS(self); + _context = new AppContext(); + _context->platform = _platform; + _context->doRender = false; + + viewScale = 1; + + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *documentsDirectory = [paths objectAtIndex:0]; + + NSArray *tmpPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); + NSString *cachesDirectory = [tmpPaths objectAtIndex:0]; + + _app = new NinecraftApp(); + ((Minecraft*)_app)->externalStoragePath = [documentsDirectory UTF8String]; + ((Minecraft*)_app)->externalCacheStoragePath = [cachesDirectory UTF8String]; + + [self initView]; + //_app->init(*_context); + + _touchMap = new UITouch*[Multitouch::MAX_POINTERS]; + [self _resetAllPointers]; + + _dialog = nil; +} + +- (void)dealloc +{ + // Tear down context. + if ([EAGLContext currentContext] == context) + [EAGLContext setCurrentContext:nil]; + + delete _app; + delete _platform; + delete[] _touchMap; + + [context release]; + + [super dealloc]; +} + +- (void)didReceiveMemoryWarning +{ + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc. that aren't in use. +} + +- (void)viewWillAppear:(BOOL)animated +{ + [self startAnimation]; + + [super viewWillAppear:animated]; +} + +- (void)viewWillDisappear:(BOOL)animated +{ + [self stopAnimation]; + + [super viewWillDisappear:animated]; +} + +- (void)viewDidLoad +{ + _keyboardView = [[ShowKeyboardView alloc] init]; + [super viewDidLoad]; +} + +- (void)viewDidUnload +{ + [super viewDidUnload]; + [_keyboardView release]; + _keyboardView = nil; + // Tear down context. + if ([EAGLContext currentContext] == context) + [EAGLContext setCurrentContext:nil]; + self.context = nil; +} + +- (NSInteger)animationFrameInterval +{ + return animationFrameInterval; +} + +- (void)setAnimationFrameInterval:(NSInteger)frameInterval +{ + if (frameInterval >= 1) { + animationFrameInterval = frameInterval; + + if (animating) { + [self stopAnimation]; + [self startAnimation]; + } + } +} + +- (void)startAnimation +{ + if (!animating) { + CADisplayLink *aDisplayLink = [[UIScreen mainScreen] displayLinkWithTarget:self selector:@selector(drawFrame)]; + [aDisplayLink setFrameInterval:animationFrameInterval]; + [aDisplayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; + self.displayLink = aDisplayLink; + + //[self initView]; + //NSLog(@"start-animation: %@\n", [NSThread currentThread]); + + animating = TRUE; + + //((Minecraft*)_app)->resetServerSocket(true); + } +} + +- (void)stopAnimation +{ + if (animating) { + [self.displayLink invalidate]; + self.displayLink = nil; + animating = FALSE; + + //[self releaseView]; + //NSLog(@"stop-animation: %@\n", [NSThread currentThread]); + } +} + +- (void)enteredBackground +{ +#ifdef APPLE_DEMO_PROMOTION + if (_app) + ((Minecraft*)_app)->leaveGame(); +#endif +} + +- (void)setAudioEnabled:(BOOL)status { + if (status) _app->audioEngineOn(); + else _app->audioEngineOff(); +} + +- (void)drawFrame +{ + NSThread* currentThread = [NSThread currentThread]; + + if (lastThread == nil) { + //NSLog(@"draw-frame: %@\n", currentThread); + lastThread = currentThread; + } + + if (currentThread != lastThread) { + NSLog(@"Warning! draw-frame thread changed (%@ -> %@)\n", lastThread, currentThread); + lastThread = currentThread; + } + + [(EAGLView *)self.view setFramebuffer]; + + _app->update(); + + const GLenum discards[] = {GL_DEPTH_ATTACHMENT}; +// glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); + glDiscardFramebufferEXT(GL_FRAMEBUFFER, 1, discards); + + [(EAGLView *)self.view presentFramebuffer]; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +{ + // Return YES for supported orientations + return UIInterfaceOrientationIsLandscape(interfaceOrientation); +} + +- (BOOL) initView +{ + viewScale = ((EAGLView*)self.view)->viewScale; + + if (!_app->isInited()) + _app->init(*_context); + else + _app->onGraphicsReset(*_context); + + CGRect screen = [[UIScreen mainScreen] bounds]; + CGFloat width = MAX(screen.size.width, screen.size.height) * viewScale; + CGFloat height = MIN(screen.size.width, screen.size.height) * viewScale; + +// CGFloat width = ((EAGLView*)self.view)->framebufferWidth; +// CGFloat height = ((EAGLView*)self.view)->framebufferHeight; + + //NSLog(@"initView. Setting size: %f, %f\n", width, height); + _app->setSize((int)width, (int)height); + + return true; +} + +- (BOOL) releaseView +{ + return true; +} + +-(int) _getIndexForTouch:(UITouch*) touch { + for (int i = 0; i < Multitouch::MAX_POINTERS; ++i) + if (_touchMap[i] == touch) return i; + // @todo: implement a fail-safe! something like this; + // 1) If we've come here (pointer isn't found), increment missValue + // 2) If missValue >= N, call _resetAllPointers + // X) If we found a pointer, reset the missValue to 0 + return -1; +} + +-(void) _resetAllPointers { + for (int i = 0; i < Multitouch::MAX_POINTERS; ++i) + _touchMap[i] = 0; +} + +-(int) _startTrackingTouch:(UITouch*) touch { + for (int i = 0; i < Multitouch::MAX_POINTERS; ++i) + if (_touchMap[i] == 0) { + _touchMap[i] = touch; + return i; + } + return -1; +} + +-(int) _stopTrackingTouch:(UITouch*) touch { + for (int i = 0; i < Multitouch::MAX_POINTERS; ++i) + if (_touchMap[i] == touch) { + _touchMap[i] = 0; + return i; + } + return -1; +} + +// Handles the start of a touch +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event +{ + //NSLog(@"touch began count: %d\n",[touches count]); + + for( UITouch *touch in touches ) { + int pointerId = [self _startTrackingTouch:touch]; +// NSLog(@"touch-began: %d %p\n", pointerId, touch); + if (pointerId >= 0) { + CGPoint touchLocation = [touch locationInView:[self view]]; + touchLocation.x *= viewScale; + touchLocation.y *= viewScale; + //LOGI("d: %f, %f\n", touchLocation.x, touchLocation.y); + Mouse::feed(1, 1, touchLocation.x, touchLocation.y); + Multitouch::feed(1, 1, touchLocation.x, touchLocation.y, pointerId); + } + } +} + +// Handles the continuation of a touch. +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event +{ + //NSLog(@"touch moved: %d\n",[touches count]); + + for( UITouch *touch in touches ) { + int pointerId = [self _getIndexForTouch:touch]; + if (pointerId >= 0) { + //NSLog(@"Zilly-bop: %d %p\n", pointerId, touch); + CGPoint touchLocation = [touch locationInView:[self view]]; + touchLocation.x *= viewScale; + touchLocation.y *= viewScale; + //LOGI("t: %f, %f\n", touchLocation.x, touchLocation.y); + Mouse::feed(0, 0, touchLocation.x, touchLocation.y); + Multitouch::feed(0, 0, touchLocation.x, touchLocation.y, pointerId); + } + } +} + +// Handles the end of a touch event. +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event +{ + for( UITouch *touch in touches ) { + int pointerId = [self _stopTrackingTouch:touch]; + if (pointerId >= 0) { + CGPoint touchLocation = [touch locationInView:[self view]]; + touchLocation.x *= viewScale; + touchLocation.y *= viewScale; + Mouse::feed(1, 0, touchLocation.x, touchLocation.y); + Multitouch::feed(1, 0, touchLocation.x, touchLocation.y, pointerId); + } + } +} + +// Handles the cancellation of a touch event. +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event +{ + [self touchesEnded: touches withEvent:event]; +} + + +// +// Interfaces for AppPlatform +// + +-(BaseDialogController*) dialog +{ + return _dialog; +} + +- (void) initDialog { + _dialogResultStatus = -1; + _dialogResultStrings.clear(); + [_dialog setListener:self]; +} + +- (void) closeDialog { + if (_dialog != nil) { + _dialogResultStatus = [_dialog getUserInputStatus]; + _dialogResultStrings = [_dialog getUserInput]; + } + //NSLog(@"Close@vc: %p %d\n", _dialog, _dialogResultStatus); + [_dialog dismissModalViewControllerAnimated:YES]; + + [_dialog release]; + _dialog = nil; +} + +- (void)showDialog_CreateWorld +{ + if (!_dialog) { + BOOL isIpad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); + + CGRect screen = [[UIScreen mainScreen] bounds]; + CGFloat width = MAX(screen.size.width, screen.size.height); + BOOL isIphone5 = (width == 568); + NSString* xib = isIpad ? @"CreateNewWorld_ipad" : (isIphone5? @"CreateNewWorld_iphone5" : @"CreateNewWorld_iphone"); + _dialog = [[CreateNewWorldViewController alloc] initWithNibName:xib bundle:[NSBundle mainBundle]]; + [self presentModalViewController:_dialog animated:YES]; + [self initDialog]; + //NSLog(@"--- %p %p\n", _dialog, [self view]); + //[_dialog addToView:[self view]]; + } +} + +- (void)showDialog_MainMenuOptions +{ + if (!_dialog) { + UINavigationController *aNavController = [[UINavigationController alloc] initWithRootViewController:self.appSettingsViewController]; + [self.appSettingsViewController setShowCreditsFooter:NO]; + self.appSettingsViewController.showDoneButton = YES; + [self presentModalViewController:aNavController animated:YES]; +#ifdef APPLE_DEMO_PROMOTION + [appSettingsViewController setEnabled:NO forKey:[NSString stringWithUTF8String:OptionStrings::Multiplayer_ServerVisible]]; + [appSettingsViewController setEnabled:NO forKey:[NSString stringWithUTF8String:OptionStrings::Multiplayer_Username]]; +#endif + [self initDialog]; + [aNavController release]; + } +} + +- (void)showDialog_RenameMPWorld +{ + if (!_dialog) { + BOOL isIpad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); + CGRect screen = [[UIScreen mainScreen] bounds]; + CGFloat width = MAX(screen.size.width, screen.size.height); + BOOL isIphone5 = (width == 568); + NSString* xib = isIpad ? @"RenameMPWorld_ipad" : (isIphone5? @"RenameMPWorld_iphone5" : @"RenameMPWorld_iphone"); + _dialog = [[RenameMPWorldViewController alloc] initWithNibName:xib bundle:[NSBundle mainBundle]]; + [self presentModalViewController:_dialog animated:YES]; + [self initDialog]; + //NSLog(@"--- %p %p\n", _dialog, [self view]); + //[_dialog addToView:[self view]]; + } +} + +- (int) getUserInputStatus { + //NSLog(@"getUserI: %d\n", _dialogResultStatus); + return _dialogResultStatus; +} + +- (std::vector)getUserInput { + //LOGI("-----\n"); + //for (int i = 0; i < _dialogResultStrings.size(); i += 2) { + // LOGI("%d: %s, %s\n", i/2, _dialogResultStrings[i].c_str(), _dialogResultStrings[i+1].c_str()); + //} + return _dialogResultStrings; +} + +// +// IASK Delegate interface +// + +// @note: See StringIfEmpty option (added by me) in IASK as well, that one's triggered +// earlier. This one is more of a fail-safe to prevent an empty name +NSString* DefaultUsername = @"Stevie"; + +- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender { + [self dismissModalViewControllerAnimated:YES]; + + NSString* Key = [[NSString alloc] initWithUTF8String:OptionStrings::Multiplayer_Username]; + NSString* username = [[NSUserDefaults standardUserDefaults] objectForKey:Key]; + if ([username isEqualToString:@""]) { + [[NSUserDefaults standardUserDefaults] setObject:DefaultUsername forKey:Key]; + } + + [Key release]; + + _dialogResultStatus = 1; +} + +- (void)settingToggled:(NSNotification *) notification { + NSString* name = [notification object]; + NSString* KeyLowQuality = [[NSString alloc] initWithUTF8String:OptionStrings::Graphics_LowQuality]; + NSString* KeyFancy = [[NSString alloc] initWithUTF8String:OptionStrings::Graphics_Fancy]; + + if ([name isEqualToString:KeyLowQuality]) { + //NSLog(@"Notification: %d %@ %@\n", enabled, [[notification userInfo] description], [[[notification userInfo] objectForKey:name] class]); + + BOOL enabled = ! [[[notification userInfo] objectForKey:name] boolValue]; + if (!enabled) { + [appSettingsViewController getSwitch:KeyFancy].on = NO; + } + //[appSettingsViewController setEnabled:enabled forKey:KeyFancy]; + } + if ([name isEqualToString:KeyFancy]) { + BOOL enabled = ! [[[notification userInfo] objectForKey:name] boolValue]; + if (!enabled) { + [appSettingsViewController getSwitch:KeyLowQuality].on = NO; + } + } + + [KeyLowQuality release]; + [KeyFancy release]; +} + ++ (void) initialize { + if ([self class] == [minecraftpeViewController class]) { + NSDictionary* defaults = [NSDictionary dictionaryWithObjectsAndKeys: + DefaultUsername, [NSString stringWithUTF8String:OptionStrings::Multiplayer_Username], + [NSNumber numberWithBool:YES], [NSString stringWithUTF8String:OptionStrings::Multiplayer_ServerVisible], + [NSNumber numberWithBool:NO], [NSString stringWithUTF8String:OptionStrings::Graphics_Fancy], + [NSNumber numberWithBool:NO], [NSString stringWithUTF8String:OptionStrings::Graphics_LowQuality], + [NSNumber numberWithFloat:0.5f],[NSString stringWithUTF8String:OptionStrings::Controls_Sensitivity], + [NSNumber numberWithBool:NO], [NSString stringWithUTF8String:OptionStrings::Controls_InvertMouse], + [NSNumber numberWithBool:NO], [NSString stringWithUTF8String:OptionStrings::Controls_IsLefthanded], + [NSNumber numberWithBool:NO], [NSString stringWithUTF8String:OptionStrings::Controls_UseTouchJoypad], + @"2", [NSString stringWithUTF8String:OptionStrings::Game_DifficultyLevel], + nil]; + [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; + } +} + +- (void)showKeyboard { + for(UIView* view in self.view.subviews) { + if([view isKindOfClass:[ShowKeyboardView class]]) { + ShowKeyboardView* kview = (ShowKeyboardView*) view; + [kview showKeyboard]; + return; + } + } + [self.view insertSubview:_keyboardView atIndex:0]; + [_keyboardView showKeyboard]; +} +- (void)hideKeyboard { + for(UIView* view in self.view.subviews) { + if([view isKindOfClass:[ShowKeyboardView class]]) { + ShowKeyboardView* kview = (ShowKeyboardView*) view; + [kview hideKeyboard]; + [kview removeFromSuperview]; + } + } +} + +@end diff --git a/project/iosproj/minecraftpe/minecraftpedemo-info.plist b/project/iosproj/minecraftpe/minecraftpedemo-info.plist new file mode 100755 index 0000000..39d91a6 --- /dev/null +++ b/project/iosproj/minecraftpe/minecraftpedemo-info.plist @@ -0,0 +1,71 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Minecraft PE + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIconFiles + + Icon_lite.png + Icon@2x_lite.png + Icon-Small_lite.png + Icon-Small-50_lite.png + Icon-Small@2x_lite.png + Icon-72_lite.png + + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + Icon_lite.png + Icon@2x_lite.png + Icon-Small_lite.png + Icon-Small-50_lite.png + Icon-Small@2x_lite.png + Icon-72_lite.png + + UIPrerenderedIcon + + + + CFBundleIdentifier + com.mojang.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Minecraft PE + CFBundlePackageType + APPL + CFBundleShortVersionString + 0.2.1 + CFBundleSignature + ???? + CFBundleVersion + 0.2.1.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + UIAppFonts + + minecraft.ttf + + UIPrerenderedIcon + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h new file mode 100755 index 0000000..0f97338 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h @@ -0,0 +1,79 @@ +// +// IASKAppSettingsViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import +#import + +#import "IASKSettingsStore.h" + +@class IASKSettingsReader; +@class IASKAppSettingsViewController; +@class IASKSpecifier; + +@class IASKSwitch; +@class IASKPSToggleSwitchSpecifierViewCell; + +@protocol IASKSettingsDelegate +- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender; +@optional +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderForKey:(NSString*)key; +- (UIView *)tableView:(UITableView *)tableView viewForHeaderForKey:(NSString*)key; + +- (CGFloat)tableView:(UITableView*)tableView heightForSpecifier:(IASKSpecifier*)specifier; +- (UITableViewCell*)tableView:(UITableView*)tableView cellForSpecifier:(IASKSpecifier*)specifier; + +- (NSString*)mailComposeBody; +//- (UIViewController*)viewControllerForMailComposeView; //@iaskmail +//- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error; + +- (void)settingsViewController:(IASKAppSettingsViewController*)sender buttonTappedForKey:(NSString*)key; +@end + +@interface IASKAppSettingsViewController : UITableViewController { + id _delegate; + + NSMutableArray *_viewList; + NSIndexPath *_currentIndexPath; + + IASKSettingsReader *_settingsReader; + id _settingsStore; + NSString *_file; + + id _currentFirstResponder; + + BOOL _showCreditsFooter; + BOOL _showDoneButton; + + NSMutableDictionary* _cells; +} + +@property (nonatomic, assign) IBOutlet id delegate; +@property (nonatomic, retain) IASKSettingsReader *settingsReader; +@property (nonatomic, retain) id settingsStore; +@property (nonatomic, copy) NSString *file; +@property (nonatomic, assign) BOOL showCreditsFooter; +@property (nonatomic, assign) BOOL showDoneButton; + +- (void)synchronizeSettings; +- (IBAction)dismiss:(id)sender; + +- (IASKSwitch*) getSwitch:(NSString*) key; +- (IASKPSToggleSwitchSpecifierViewCell*) getSwitchView:(NSString*) key; +- (void)setEnabled:(BOOL)status forKey:(NSString*)key; + +- (void)toggledValue:(id)sender; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m new file mode 100755 index 0000000..71327ac --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m @@ -0,0 +1,850 @@ +// +// IASKAppSettingsViewController.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009-2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + + +#import "IASKAppSettingsViewController.h" +#import "IASKSettingsReader.h" +#import "IASKSettingsStoreUserDefaults.h" +#import "IASKPSToggleSwitchSpecifierViewCell.h" +#import "IASKPSSliderSpecifierViewCell.h" +#import "IASKPSTextFieldSpecifierViewCell.h" +#import "IASKPSTitleValueSpecifierViewCell.h" +#import "IASKSwitch.h" +#import "IASKSlider.h" +#import "IASKSpecifier.h" +#import "IASKSpecifierValuesViewController.h" +#import "IASKTextField.h" + +static const CGFloat KEYBOARD_ANIMATION_DURATION = 0.3; +static const CGFloat MINIMUM_SCROLL_FRACTION = 0.2; +static const CGFloat MAXIMUM_SCROLL_FRACTION = 0.8; + +static NSString *kIASKCredits = @"Powered by InAppSettingsKit"; // Leave this as-is!!! + +#define kIASKSpecifierValuesViewControllerIndex 0 +#define kIASKSpecifierChildViewControllerIndex 1 + +#define kIASKCreditsViewWidth 285 + +CGRect IASKCGRectSwap(CGRect rect); + +@interface IASKAppSettingsViewController () +@property (nonatomic, retain) NSMutableArray *viewList; +@property (nonatomic, retain) NSIndexPath *currentIndexPath; +@property (nonatomic, retain) id currentFirstResponder; + +- (void)_textChanged:(id)sender; +- (void)synchronizeSettings; +- (void)reload; +@end + +@implementation IASKAppSettingsViewController + +@synthesize delegate = _delegate; +@synthesize viewList = _viewList; +@synthesize currentIndexPath = _currentIndexPath; +@synthesize settingsReader = _settingsReader; +@synthesize file = _file; +@synthesize currentFirstResponder = _currentFirstResponder; +@synthesize showCreditsFooter = _showCreditsFooter; +@synthesize showDoneButton = _showDoneButton; +@synthesize settingsStore = _settingsStore; + +#pragma mark accessors +- (IASKSettingsReader*)settingsReader { + if (!_settingsReader) { + _settingsReader = [[IASKSettingsReader alloc] initWithFile:self.file]; + } + return _settingsReader; +} + +- (id)settingsStore { + if (!_settingsStore) { + _settingsStore = [[IASKSettingsStoreUserDefaults alloc] init]; + } + return _settingsStore; +} + +- (NSString*)file { + if (!_file) { + return @"Root"; + } + return [[_file retain] autorelease]; +} + +- (void)setFile:(NSString *)file { + if (file != _file) { + + [_file release]; + _file = [file copy]; + } + + self.tableView.contentOffset = CGPointMake(0, 0); + self.settingsReader = nil; // automatically initializes itself +} + +- (BOOL)isPad { + BOOL isPad = NO; +#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200) + isPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; +#endif + return isPad; +} + +#pragma mark standard view controller methods +- (id)init { + return [self initWithNibName:@"IASKAppSettingsView" bundle:nil]; +} + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { + // If set to YES, will display credits for InAppSettingsKit creators + _showCreditsFooter = YES; + + // If set to YES, will add a DONE button at the right of the navigation bar + _showDoneButton = YES; + + _cells = [[NSMutableDictionary alloc] init]; + + if ([self isPad]) { + self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched; + } + } + return self; +} + +- (void)awakeFromNib { + // If set to YES, will display credits for InAppSettingsKit creators + _showCreditsFooter = YES; + + // If set to YES, will add a DONE button at the right of the navigation bar + // if loaded via NIB, it's likely we sit in a TabBar- or NavigationController + // and thus don't need the Done button + _showDoneButton = NO; + + if ([self isPad]) { + self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched; + } +} + +- (NSMutableArray *)viewList { + if (!_viewList) { + _viewList = [[NSMutableArray alloc] init]; + [_viewList addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"IASKSpecifierValuesView", @"ViewName",nil]]; + [_viewList addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"IASKAppSettingsView", @"ViewName",nil]]; + } + return _viewList; +} + +- (void)viewDidUnload { + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; + self.view = nil; + self.viewList = nil; +} + +- (void)viewWillAppear:(BOOL)animated { + [self.tableView reloadData]; + + self.navigationItem.rightBarButtonItem = nil; + self.navigationController.delegate = self; + if (_showDoneButton) { + UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone + target:self + action:@selector(dismiss:)]; + self.navigationItem.rightBarButtonItem = buttonItem; + [buttonItem release]; + } + if (!self.title) { + self.title = NSLocalizedString(@"Settings", @""); + } + + if (self.currentIndexPath) { + if (animated) { + // animate deselection of previously selected row + [self.tableView selectRowAtIndexPath:self.currentIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; + [self.tableView deselectRowAtIndexPath:self.currentIndexPath animated:YES]; + } + self.currentIndexPath = nil; + } + + [super viewWillAppear:animated]; +} + +- (CGSize)contentSizeForViewInPopover { + return [[self view] sizeThatFits:CGSizeMake(320, 2000)]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + NSNotificationCenter *dc = [NSNotificationCenter defaultCenter]; + IASK_IF_IOS4_OR_GREATER([dc addObserver:self selector:@selector(synchronizeSettings) name:UIApplicationDidEnterBackgroundNotification object:[UIApplication sharedApplication]];); + IASK_IF_IOS4_OR_GREATER([dc addObserver:self selector:@selector(reload) name:UIApplicationWillEnterForegroundNotification object:[UIApplication sharedApplication]];); + [dc addObserver:self selector:@selector(synchronizeSettings) name:UIApplicationWillTerminateNotification object:[UIApplication sharedApplication]]; + + //NSLog(@"I have loaded shitzlets now!\n"); + + for( NSString *key in _cells ) + { + id value = [_cells objectForKey:key]; + if ([value respondsToSelector:@selector(toggle)]) { + //NSLog(@"Responds to Toggle: %@!\n", key); + [self toggledValue:[value toggle]]; + //[value toggle].on = [value toggle].on; + } + // do something + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + [super viewWillDisappear:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + if (!self.navigationController.delegate) { + // hide the keyboard when we're popping from the navigation controller + [self.currentFirstResponder resignFirstResponder]; + } + + [super viewDidDisappear:animated]; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return YES; +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { + if (![viewController isKindOfClass:[IASKAppSettingsViewController class]] && ![viewController isKindOfClass:[IASKSpecifierValuesViewController class]]) { + [self dismiss:nil]; + } +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + [_viewList release], _viewList = nil; + [_currentIndexPath release], _currentIndexPath = nil; + [_file release], _file = nil; + [_currentFirstResponder release], _currentFirstResponder = nil; + [_settingsReader release], _settingsReader = nil; + [_settingsStore release], _settingsStore = nil; + [_cells release]; _cells = nil; + + _delegate = nil; + + [super dealloc]; +} + + +#pragma mark - +#pragma mark Actions + +- (IBAction)dismiss:(id)sender { + [self.settingsStore synchronize]; + self.navigationController.delegate = nil; + + if (self.delegate && [self.delegate conformsToProtocol:@protocol(IASKSettingsDelegate)]) { + [self.delegate settingsViewControllerDidEnd:self]; + } +} + +- (void)toggledValue:(id)sender { + IASKSwitch *toggle = (IASKSwitch*)sender; + IASKSpecifier *spec = [_settingsReader specifierForKey:[toggle key]]; + + if ([toggle isOn]) { + if ([spec trueValue] != nil) { + [self.settingsStore setObject:[spec trueValue] forKey:[toggle key]]; + } + else { + [self.settingsStore setBool:YES forKey:[toggle key]]; + } + } + else { + if ([spec falseValue] != nil) { + [self.settingsStore setObject:[spec falseValue] forKey:[toggle key]]; + } + else { + [self.settingsStore setBool:NO forKey:[toggle key]]; + } + } + //NSLog(@"Toggled: %@\n", [toggle key]); + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[toggle key] + userInfo:[NSDictionary dictionaryWithObject:[self.settingsStore objectForKey:[toggle key]] + forKey:[toggle key]]]; +} + +- (void)sliderChangedValue:(id)sender { + IASKSlider *slider = (IASKSlider*)sender; + [self.settingsStore setFloat:[slider value] forKey:[slider key]]; + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[slider key] + userInfo:[NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:[slider value]] + forKey:[slider key]]]; +} + + +#pragma mark - +#pragma mark UITableView Functions + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return [self.settingsReader numberOfSections]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [self.settingsReader numberOfRowsForSection:section]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + if ([[specifier type] isEqualToString:kIASKCustomViewSpecifier]) { + if ([self.delegate respondsToSelector:@selector(tableView:heightForSpecifier:)]) { + return [self.delegate tableView:tableView heightForSpecifier:specifier]; + } else { + return 0; + } + } + return tableView.rowHeight; +} + +- (NSString *)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section { + NSString *header = [self.settingsReader titleForSection:section]; + if (0 == header.length) { + return nil; + } + return header; +} + +- (UIView *)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section { + NSString *key = [self.settingsReader keyForSection:section]; + if ([self.delegate respondsToSelector:@selector(tableView:viewForHeaderForKey:)]) { + return [self.delegate tableView:tableView viewForHeaderForKey:key]; + } else { + return nil; + } +} + +- (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section { + NSString *key = [self.settingsReader keyForSection:section]; + if ([self tableView:tableView viewForHeaderInSection:section] && [self.delegate respondsToSelector:@selector(tableView:heightForHeaderForKey:)]) { + CGFloat result; + if ((result = [self.delegate tableView:tableView heightForHeaderForKey:key])) { + return result; + } + + } + NSString *title; + if ((title = [self tableView:tableView titleForHeaderInSection:section])) { + CGSize size = [title sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont labelFontSize]] + constrainedToSize:CGSizeMake(tableView.frame.size.width - 2*kIASKHorizontalPaddingGroupTitles, INFINITY) + lineBreakMode:UILineBreakModeWordWrap]; + return size.height+kIASKVerticalPaddingGroupTitles; + } + return 0; +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section +{ + NSString *footerText = [self.settingsReader footerTextForSection:section]; + if (_showCreditsFooter && (section == [self.settingsReader numberOfSections]-1)) { + // show credits since this is the last section + if ((footerText == nil) || ([footerText length] == 0)) { + // show the credits on their own + return kIASKCredits; + } else { + // show the credits below the app's FooterText + return [NSString stringWithFormat:@"%@\n\n%@", footerText, kIASKCredits]; + } + } else { + if ([footerText length] == 0) { + return nil; + } + return [self.settingsReader footerTextForSection:section]; + } +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + //NSLog(@"CELL FOR ROW: %@\n", indexPath); + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + NSString *key = [specifier key]; + + if ([[specifier type] isEqualToString:kIASKCustomViewSpecifier] && [self.delegate respondsToSelector:@selector(tableView:cellForSpecifier:)]) { + return [self.delegate tableView:tableView cellForSpecifier:specifier]; + } + + //NSString *reuseId = [specifier key]; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; + + if ([[specifier type] isEqualToString:kIASKPSToggleSwitchSpecifier]) { + if (!cell) { + cell = (IASKPSToggleSwitchSpecifierViewCell*) [[[NSBundle mainBundle] loadNibNamed:@"IASKPSToggleSwitchSpecifierViewCell" + owner:self + options:nil] objectAtIndex:0]; + } + ((IASKPSToggleSwitchSpecifierViewCell*)cell).label.text = [specifier title]; + + id currentValue = [self.settingsStore objectForKey:key]; + BOOL toggleState; + if (currentValue) { + if ([currentValue isEqual:[specifier trueValue]]) { + toggleState = YES; + } else if ([currentValue isEqual:[specifier falseValue]]) { + toggleState = NO; + } else { + toggleState = [currentValue boolValue]; + } + } else { + toggleState = [specifier defaultBoolValue]; + } + + ((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle.on = toggleState; + [((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle addTarget:self action:@selector(toggledValue:) forControlEvents:UIControlEventValueChanged]; + [((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle setKey:key]; +// [((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle + [_cells setObject:cell forKey:key]; + + //NSLog(@"Setting cell: %@ : %p == %p?\n", key, cell, [_cells objectForKey:key]); + //[((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle setEnabled:NO]; // @iaskattn + return cell; + } + else if ([[specifier type] isEqualToString:kIASKPSMultiValueSpecifier]) { + if (!cell) { + cell = [[[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[specifier type]] autorelease]; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + cell.backgroundColor = [UIColor whiteColor]; + } + [[cell textLabel] setText:[specifier title]]; + [[cell detailTextLabel] setText:[[specifier titleForCurrentValue:[self.settingsStore objectForKey:key] != nil ? + [self.settingsStore objectForKey:key] : [specifier defaultValue]] description]]; + [_cells setValue:cell forKey:key]; + return cell; + } + else if ([[specifier type] isEqualToString:kIASKPSTitleValueSpecifier]) { + if (!cell) { + cell = [[[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[specifier type]] autorelease]; + cell.accessoryType = UITableViewCellAccessoryNone; + cell.backgroundColor = [UIColor whiteColor]; + } + + cell.textLabel.text = [specifier title]; + id value = [self.settingsStore objectForKey:key] ? : [specifier defaultValue]; + + NSString *stringValue; + if ([specifier multipleValues] || [specifier multipleTitles]) { + stringValue = [specifier titleForCurrentValue:value]; + } else { + stringValue = [value description]; + } + + cell.detailTextLabel.text = stringValue; + [cell setUserInteractionEnabled:NO]; + + [_cells setValue:cell forKey:key]; + return cell; + } + else if ([[specifier type] isEqualToString:kIASKPSTextFieldSpecifier]) { + if (!cell) { + cell = (IASKPSTextFieldSpecifierViewCell*) [[[NSBundle mainBundle] loadNibNamed:@"IASKPSTextFieldSpecifierViewCell" + owner:self + options:nil] objectAtIndex:0]; + + ((IASKPSTextFieldSpecifierViewCell*)cell).textField.textAlignment = UITextAlignmentLeft; + ((IASKPSTextFieldSpecifierViewCell*)cell).textField.returnKeyType = UIReturnKeyDone; + ((IASKPSTextFieldSpecifierViewCell*)cell)->stringIfEmpty = [specifier stringIfEmpty]; + cell.accessoryType = UITableViewCellAccessoryNone; + } + + ((IASKPSTextFieldSpecifierViewCell*)cell).label.text = [specifier title]; + + NSString *textValue = [self.settingsStore objectForKey:key] != nil ? [self.settingsStore objectForKey:key] : [specifier defaultStringValue]; + if (textValue && ![textValue isMemberOfClass:[NSString class]]) { + textValue = [NSString stringWithFormat:@"%@", textValue]; + } + IASKTextField *textField = ((IASKPSTextFieldSpecifierViewCell*)cell).textField; + textField. text = textValue; + textField.key = key; + textField.delegate = self; + textField.secureTextEntry = [specifier isSecure]; + textField.keyboardType = [specifier keyboardType]; + textField.autocapitalizationType = [specifier autocapitalizationType]; + [textField addTarget:self action:@selector(_textChanged:) forControlEvents:UIControlEventEditingChanged]; + if([specifier isSecure]){ + textField.autocorrectionType = UITextAutocorrectionTypeNo; + } else { + textField.autocorrectionType = [specifier autoCorrectionType]; + } + [cell setNeedsLayout]; + [_cells setValue:cell forKey:key]; + return cell; + } + else if ([[specifier type] isEqualToString:kIASKPSSliderSpecifier]) { + if (!cell) { + cell = (IASKPSSliderSpecifierViewCell*) [[[NSBundle mainBundle] loadNibNamed:@"IASKPSSliderSpecifierViewCell" + owner:self + options:nil] objectAtIndex:0]; + [(IASKPSSliderSpecifierViewCell*)cell initDefaults]; + } + if ([specifier hasSpecified:kIASKTextOffsetPixels]) { + ((IASKPSSliderSpecifierViewCell*)cell)->textOffsetPixels = [specifier textOffsetPixels]; + } + if ([[specifier minimumValueImage] length] > 0) { + ((IASKPSSliderSpecifierViewCell*)cell).minImage.image = [UIImage imageWithContentsOfFile:[_settingsReader pathForImageNamed:[specifier minimumValueImage]]]; + } + + if ([[specifier maximumValueImage] length] > 0) { + ((IASKPSSliderSpecifierViewCell*)cell).maxImage.image = [UIImage imageWithContentsOfFile:[_settingsReader pathForImageNamed:[specifier minimumValueImage]]]; + } + if ([[specifier title] length] > 0) { + ((IASKPSSliderSpecifierViewCell*)cell).label.text = [specifier title]; + } + + IASKSlider *slider = ((IASKPSSliderSpecifierViewCell*)cell).slider; + slider.minimumValue = [specifier minimumValue]; + slider.maximumValue = [specifier maximumValue]; + slider.value = [self.settingsStore objectForKey:key] != nil ? [[self.settingsStore objectForKey:key] floatValue] : [[specifier defaultValue] floatValue]; + [slider addTarget:self action:@selector(sliderChangedValue:) forControlEvents:UIControlEventValueChanged]; + slider.key = key; + [cell setNeedsLayout]; + [_cells setValue:cell forKey:key]; + return cell; + } + else if ([[specifier type] isEqualToString:kIASKPSChildPaneSpecifier]) { + if (!cell) { + cell = [[[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[specifier type]] autorelease]; + [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + cell.backgroundColor = [UIColor whiteColor]; + } + + [[cell textLabel] setText:[specifier title]]; + [_cells setValue:cell forKey:key]; + return cell; + } else if ([[specifier type] isEqualToString:kIASKOpenURLSpecifier]) { + if (!cell) { + cell = [[[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[specifier type]] autorelease]; + [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + cell.backgroundColor = [UIColor whiteColor]; + } + + cell.textLabel.text = [specifier title]; + cell.detailTextLabel.text = [[specifier defaultValue] description]; + [_cells setValue:cell forKey:key]; + return cell; + } else if ([[specifier type] isEqualToString:kIASKButtonSpecifier]) { + if (!cell) { + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[specifier type]] autorelease]; + cell.backgroundColor = [UIColor whiteColor]; + } + cell.textLabel.text = [specifier title]; + cell.textLabel.textAlignment = UITextAlignmentCenter; + [_cells setValue:cell forKey:key]; + return cell; + } else if ([[specifier type] isEqualToString:kIASKMailComposeSpecifier]) { + if (!cell) { + cell = [[[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[specifier type]] autorelease]; + [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + cell.backgroundColor = [UIColor whiteColor]; + } + + cell.textLabel.text = [specifier title]; + cell.detailTextLabel.text = [[specifier defaultValue] description]; + [_cells setValue:cell forKey:key]; + return cell; + } else { + if (!cell) { + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[specifier type]] autorelease]; + cell.backgroundColor = [UIColor whiteColor]; + } + [[cell textLabel] setText:[specifier title]]; + [_cells setValue:cell forKey:key]; + return cell; + } +} + +- (IASKSwitch*) getSwitch:(NSString*) key { + return [[_cells objectForKey:key] toggle]; +} + +- (IASKPSToggleSwitchSpecifierViewCell*) getSwitchView:(NSString*) key { + return [_cells objectForKey:key]; +} + +- (void)setEnabled:(BOOL)status forKey:(NSString*)key { + id value = [_cells objectForKey:key]; + + //NSLog(@"key: %@, value: %p\n (toggle: %p)\n", key, value, [value toggle]); + + if (value == nil) return; + + [[value label] setEnabled:status]; + + // This is lazy town! Try to handle it as a toggle, slider or textfield + if ([value respondsToSelector:@selector(toggle)]) [[value toggle] setEnabled:status]; + if ([value respondsToSelector:@selector(slider)]) [[value slider] setEnabled:status]; + if ([value respondsToSelector:@selector(textField)])[[value textField] setEnabled:status]; +} + +- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + + if ([[specifier type] isEqualToString:kIASKPSToggleSwitchSpecifier]) { + return nil; + } else { + return indexPath; + } +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + + if ([[specifier type] isEqualToString:kIASKPSToggleSwitchSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:NO]; + } + else if ([[specifier type] isEqualToString:kIASKPSMultiValueSpecifier]) { + IASKSpecifierValuesViewController *targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierValuesViewControllerIndex] objectForKey:@"viewController"]; + + if (targetViewController == nil) { + // the view controller has not been created yet, create it and set it to our viewList array + // create a new dictionary with the new view controller + NSMutableDictionary *newItemDict = [NSMutableDictionary dictionaryWithCapacity:3]; + [newItemDict addEntriesFromDictionary: [self.viewList objectAtIndex:kIASKSpecifierValuesViewControllerIndex]]; // copy the title and explain strings + + targetViewController = [[IASKSpecifierValuesViewController alloc] initWithNibName:@"IASKSpecifierValuesView" bundle:nil]; + // add the new view controller to the dictionary and then to the 'viewList' array + [newItemDict setObject:targetViewController forKey:@"viewController"]; + [self.viewList replaceObjectAtIndex:kIASKSpecifierValuesViewControllerIndex withObject:newItemDict]; + [targetViewController release]; + + // load the view controll back in to push it + targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierValuesViewControllerIndex] objectForKey:@"viewController"]; + } + self.currentIndexPath = indexPath; + [targetViewController setCurrentSpecifier:specifier]; + targetViewController.settingsReader = self.settingsReader; + targetViewController.settingsStore = self.settingsStore; + [[self navigationController] pushViewController:targetViewController animated:YES]; + } + else if ([[specifier type] isEqualToString:kIASKPSSliderSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:NO]; + } + else if ([[specifier type] isEqualToString:kIASKPSTextFieldSpecifier]) { + IASKPSTextFieldSpecifierViewCell *textFieldCell = (id)[tableView cellForRowAtIndexPath:indexPath]; + [textFieldCell.textField becomeFirstResponder]; + } + else if ([[specifier type] isEqualToString:kIASKPSChildPaneSpecifier]) { + + + Class vcClass = [specifier viewControllerClass]; + if (vcClass) { + SEL initSelector = [specifier viewControllerSelector]; + if (!initSelector) { + initSelector = @selector(init); + } + UIViewController * vc = [vcClass performSelector:@selector(alloc)]; + [vc performSelector:initSelector withObject:[specifier file] withObject:[specifier key]]; + if ([vc respondsToSelector:@selector(setDelegate:)]) { + [vc performSelector:@selector(setDelegate:) withObject:self.delegate]; + } + if ([vc respondsToSelector:@selector(setSettingsStore:)]) { + [vc performSelector:@selector(setSettingsStore:) withObject:self.settingsStore]; + } + self.navigationController.delegate = nil; + [self.navigationController pushViewController:vc animated:YES]; + [vc performSelector:@selector(release)]; + return; + } + + if (nil == [specifier file]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + return; + } + + IASKAppSettingsViewController *targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierChildViewControllerIndex] objectForKey:@"viewController"]; + + if (targetViewController == nil) { + // the view controller has not been created yet, create it and set it to our viewList array + // create a new dictionary with the new view controller + NSMutableDictionary *newItemDict = [NSMutableDictionary dictionaryWithCapacity:3]; + [newItemDict addEntriesFromDictionary: [self.viewList objectAtIndex:kIASKSpecifierChildViewControllerIndex]]; // copy the title and explain strings + + targetViewController = [[[self class] alloc] initWithNibName:@"IASKAppSettingsView" bundle:nil]; + targetViewController.showDoneButton = NO; + targetViewController.settingsStore = self.settingsStore; + targetViewController.delegate = self.delegate; + + // add the new view controller to the dictionary and then to the 'viewList' array + [newItemDict setObject:targetViewController forKey:@"viewController"]; + [self.viewList replaceObjectAtIndex:kIASKSpecifierChildViewControllerIndex withObject:newItemDict]; + [targetViewController release]; + + // load the view controll back in to push it + targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierChildViewControllerIndex] objectForKey:@"viewController"]; + } + self.currentIndexPath = indexPath; + targetViewController.file = specifier.file; + targetViewController.title = specifier.title; + targetViewController.showCreditsFooter = NO; + [[self navigationController] pushViewController:targetViewController animated:YES]; + } else if ([[specifier type] isEqualToString:kIASKOpenURLSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:specifier.file]]; + } else if ([[specifier type] isEqualToString:kIASKButtonSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if ([self.delegate respondsToSelector:@selector(settingsViewController:buttonTappedForKey:)]) { + [self.delegate settingsViewController:self buttonTappedForKey:[specifier key]]; + } else { + // legacy code, provided for backward compatibility + // the delegate mechanism above is much cleaner and doesn't leak + Class buttonClass = [specifier buttonClass]; + SEL buttonAction = [specifier buttonAction]; + if ([buttonClass respondsToSelector:buttonAction]) { + [buttonClass performSelector:buttonAction withObject:self withObject:[specifier key]]; + NSLog(@"InAppSettingsKit Warning: Using IASKButtonSpecifier without implementing the delegate method is deprecated"); + } + } + } /*else if ([[specifier type] isEqualToString:kIASKMailComposeSpecifier]) { //@iaskmail + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if ([MFMailComposeViewController canSendMail]) { + MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; + mailViewController.navigationBar.barStyle = self.navigationController.navigationBar.barStyle; + mailViewController.navigationBar.tintColor = self.navigationController.navigationBar.tintColor; + + if ([specifier localizedObjectForKey:kIASKMailComposeSubject]) { + [mailViewController setSubject:[specifier localizedObjectForKey:kIASKMailComposeSubject]]; + } + if ([[specifier specifierDict] objectForKey:kIASKMailComposeToRecipents]) { + [mailViewController setToRecipients:[[specifier specifierDict] objectForKey:kIASKMailComposeToRecipents]]; + } + if ([[specifier specifierDict] objectForKey:kIASKMailComposeCcRecipents]) { + [mailViewController setCcRecipients:[[specifier specifierDict] objectForKey:kIASKMailComposeCcRecipents]]; + } + if ([[specifier specifierDict] objectForKey:kIASKMailComposeBccRecipents]) { + [mailViewController setBccRecipients:[[specifier specifierDict] objectForKey:kIASKMailComposeBccRecipents]]; + } + if ([specifier localizedObjectForKey:kIASKMailComposeBody]) { + BOOL isHTML = NO; + if ([[specifier specifierDict] objectForKey:kIASKMailComposeBodyIsHTML]) { + isHTML = [[[specifier specifierDict] objectForKey:kIASKMailComposeBodyIsHTML] boolValue]; + } + + if ([self.delegate respondsToSelector:@selector(mailComposeBody)]) { + [mailViewController setMessageBody:[self.delegate mailComposeBody] isHTML:isHTML]; + } + else { + [mailViewController setMessageBody:[specifier localizedObjectForKey:kIASKMailComposeBody] isHTML:isHTML]; + } + } + + UIViewController *vc = nil; + + if ([self.delegate respondsToSelector:@selector(viewControllerForMailComposeView)]) { + vc = [self.delegate viewControllerForMailComposeView]; + } + + if (vc == nil) { + vc = self; + } + + mailViewController.mailComposeDelegate = vc; + [vc presentModalViewController:mailViewController animated:YES]; + [mailViewController release]; + }else { + UIAlertView *alert = [[UIAlertView alloc] + initWithTitle:NSLocalizedString(@"Mail not configured", @"InAppSettingsKit") + message:NSLocalizedString(@"This device is not configured for sending Email. Please configure the Mail settings in the Settings app.", @"InAppSettingsKit") + delegate: nil + cancelButtonTitle:NSLocalizedString(@"OK", @"InAppSettingsKit") + otherButtonTitles:nil]; + [alert show]; + [alert release]; + } + + } */ else { + [tableView deselectRowAtIndexPath:indexPath animated:NO]; + } +} + + +//#pragma mark - +//#pragma mark MFMailComposeViewControllerDelegate Function +// +//-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { +// +// // Forward the mail compose delegate +// if ([self.delegate respondsToSelector:@selector(mailComposeController: didFinishWithResult: error:)]) { +// [self.delegate mailComposeController:controller didFinishWithResult:result error:error]; +// } +// +// // NOTE: No error handling is done here +// [self dismissModalViewControllerAnimated:YES]; +//} + +#pragma mark - +#pragma mark UITextFieldDelegate Functions + +- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { + self.currentFirstResponder = textField; + return YES; +} + +- (void)_textChanged:(id)sender { + IASKTextField *text = (IASKTextField*)sender; + [_settingsStore setObject:[text text] forKey:[text key]]; + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[text key] + userInfo:[NSDictionary dictionaryWithObject:[text text] + forKey:[text key]]]; +} + +- (BOOL)textFieldShouldReturn:(UITextField *)textField{ + [textField resignFirstResponder]; + self.currentFirstResponder = nil; + return YES; +} + + +#pragma mark Notifications + +- (void)synchronizeSettings { + [_settingsStore synchronize]; +} + +- (void)reload { + // wait 0.5 sec until UI is available after applicationWillEnterForeground + [self.tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.5]; +} + +#pragma mark CGRect Utility function +CGRect IASKCGRectSwap(CGRect rect) { + CGRect newRect; + newRect.origin.x = rect.origin.y; + newRect.origin.y = rect.origin.x; + newRect.size.width = rect.size.height; + newRect.size.height = rect.size.width; + return newRect; +} +@end diff --git a/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h new file mode 100755 index 0000000..4a37fae --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h @@ -0,0 +1,30 @@ +// +// IASKAppSettingsWebViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import +#import + +@interface IASKAppSettingsWebViewController : UIViewController { + UIWebView *webView; + NSURL *url; +} + +- (id)initWithFile:(NSString*)htmlFileName key:(NSString*)key; + +@property (nonatomic, retain) IBOutlet UIWebView *webView; +@property (nonatomic, retain) NSURL *url; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m new file mode 100755 index 0000000..852811e --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m @@ -0,0 +1,150 @@ +// +// IASKAppSettingsWebViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKAppSettingsWebViewController.h" + +@implementation IASKAppSettingsWebViewController + +@synthesize url; +@synthesize webView; + +- (id)initWithFile:(NSString*)urlString key:(NSString*)key { + if (!(self = [super initWithNibName:nil bundle:nil])) { + return nil; + } + + self.url = [NSURL URLWithString:urlString]; + if (!self.url || ![self.url scheme]) { + NSString *path = [[NSBundle mainBundle] pathForResource:[urlString stringByDeletingPathExtension] ofType:[urlString pathExtension]]; + if(path) + self.url = [NSURL fileURLWithPath:path]; + else + self.url = nil; + } + return self; +} + + +- (void)dealloc { + [webView release], webView = nil; + [url release], url = nil; + + [super dealloc]; +} + +- (void)viewWillAppear:(BOOL)animated { + [webView loadRequest:[NSURLRequest requestWithURL:self.url]]; +} + +- (void)viewDidUnload { + [super viewDidUnload]; + self.webView = nil; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return YES; +} + +- (void)webViewDidFinishLoad:(UIWebView *)webView { + self.navigationItem.title = [self.webView stringByEvaluatingJavaScriptFromString:@"document.title"]; +} + +- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { + NSURL *newURL = [request URL]; + /* @iaskmail + // intercept mailto URL and send it to an in-app Mail compose view instead + if ([[newURL scheme] isEqualToString:@"mailto"]) { + + NSArray *rawURLparts = [[newURL resourceSpecifier] componentsSeparatedByString:@"?"]; + if (rawURLparts.count > 2) { + return NO; // invalid URL + } + + MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; + mailViewController.mailComposeDelegate = self; + + NSMutableArray *toRecipients = [NSMutableArray array]; + NSString *defaultRecipient = [rawURLparts objectAtIndex:0]; + if (defaultRecipient.length) { + [toRecipients addObject:defaultRecipient]; + } + + if (rawURLparts.count == 2) { + NSString *queryString = [rawURLparts objectAtIndex:1]; + + NSArray *params = [queryString componentsSeparatedByString:@"&"]; + for (NSString *param in params) { + NSArray *keyValue = [param componentsSeparatedByString:@"="]; + if (keyValue.count != 2) { + continue; + } + NSString *key = [[keyValue objectAtIndex:0] lowercaseString]; + NSString *value = [keyValue objectAtIndex:1]; + + value = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, + (CFStringRef)value, + CFSTR(""), + kCFStringEncodingUTF8); + [value autorelease]; + + if ([key isEqualToString:@"subject"]) { + [mailViewController setSubject:value]; + } + + if ([key isEqualToString:@"body"]) { + [mailViewController setMessageBody:value isHTML:NO]; + } + + if ([key isEqualToString:@"to"]) { + [toRecipients addObjectsFromArray:[value componentsSeparatedByString:@","]]; + } + + if ([key isEqualToString:@"cc"]) { + NSArray *recipients = [value componentsSeparatedByString:@","]; + [mailViewController setCcRecipients:recipients]; + } + + if ([key isEqualToString:@"bcc"]) { + NSArray *recipients = [value componentsSeparatedByString:@","]; + [mailViewController setBccRecipients:recipients]; + } + } + } + + [mailViewController setToRecipients:toRecipients]; + + [self presentModalViewController:mailViewController animated:YES]; + [mailViewController release]; + return NO; + } + + */ + + // open inline if host is the same, otherwise, pass to the system + if (![newURL host] || [[newURL host] isEqualToString:[self.url host]]) { + return YES; + } + [[UIApplication sharedApplication] openURL:newURL]; + return NO; +} + +//- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { +// [self dismissModalViewControllerAnimated:YES]; +//} + + + +@end diff --git a/project/lib_projects/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h b/project/lib_projects/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h new file mode 100755 index 0000000..2df1db6 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h @@ -0,0 +1,38 @@ +// +// IASKSpecifierValuesViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import +#import "IASKSettingsStore.h" + +@class IASKSpecifier; +@class IASKSettingsReader; + +@interface IASKSpecifierValuesViewController : UIViewController { + UITableView *_tableView; + + IASKSpecifier *_currentSpecifier; + NSIndexPath *_checkedItem; + IASKSettingsReader *_settingsReader; + id _settingsStore; +} + +@property (nonatomic, retain) IBOutlet UITableView *tableView; +@property (nonatomic, retain) NSIndexPath *checkedItem; +@property (nonatomic, retain) IASKSpecifier *currentSpecifier; +@property (nonatomic, retain) IASKSettingsReader *settingsReader; +@property (nonatomic, retain) id settingsStore; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m b/project/lib_projects/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m new file mode 100755 index 0000000..c56e9ad --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m @@ -0,0 +1,196 @@ +// +// IASKSpecifierValuesViewController.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSpecifierValuesViewController.h" +#import "IASKSpecifier.h" +#import "IASKSettingsReader.h" +#import "IASKSettingsStoreUserDefaults.h" + +#define kCellValue @"kCellValue" + +@interface IASKSpecifierValuesViewController() +- (void)userDefaultsDidChange; +@end + +@implementation IASKSpecifierValuesViewController + +@synthesize tableView=_tableView; +@synthesize currentSpecifier=_currentSpecifier; +@synthesize checkedItem=_checkedItem; +@synthesize settingsReader = _settingsReader; +@synthesize settingsStore = _settingsStore; + +- (void) updateCheckedItem { + NSInteger index; + + // Find the currently checked item + if([self.settingsStore objectForKey:[_currentSpecifier key]]) { + index = [[_currentSpecifier multipleValues] indexOfObject:[self.settingsStore objectForKey:[_currentSpecifier key]]]; + } else { + index = [[_currentSpecifier multipleValues] indexOfObject:[_currentSpecifier defaultValue]]; + } + [self setCheckedItem:[NSIndexPath indexPathForRow:index inSection:0]]; +} + +- (id)settingsStore { + if(_settingsStore == nil) { + _settingsStore = [[IASKSettingsStoreUserDefaults alloc] init]; + } + return _settingsStore; +} + +- (void)viewWillAppear:(BOOL)animated { + if (_currentSpecifier) { + [self setTitle:[_currentSpecifier title]]; + [self updateCheckedItem]; + } + + if (_tableView) { + [_tableView reloadData]; + + // Make sure the currently checked item is visible + [_tableView scrollToRowAtIndexPath:[self checkedItem] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; + } + [super viewWillAppear:animated]; +} + +- (void)viewDidAppear:(BOOL)animated { + [_tableView flashScrollIndicators]; + [super viewDidAppear:animated]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(userDefaultsDidChange) + name:NSUserDefaultsDidChangeNotification + object:[NSUserDefaults standardUserDefaults]]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSUserDefaultsDidChangeNotification object:nil]; + [super viewDidDisappear:animated]; +} + + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return YES; +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)viewDidUnload { + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; + self.tableView = nil; +} + + +- (void)dealloc { + [_currentSpecifier release], _currentSpecifier = nil; + [_checkedItem release], _checkedItem = nil; + [_settingsReader release], _settingsReader = nil; + [_settingsStore release], _settingsStore = nil; + [_tableView release], _tableView = nil; + [super dealloc]; +} + + +#pragma mark - +#pragma mark UITableView delegates + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [_currentSpecifier multipleValuesCount]; +} + +- (void)selectCell:(UITableViewCell *)cell { + [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; + [[cell textLabel] setTextColor:kIASKgrayBlueColor]; +} + +- (void)deselectCell:(UITableViewCell *)cell { + [cell setAccessoryType:UITableViewCellAccessoryNone]; + [[cell textLabel] setTextColor:[UIColor darkTextColor]]; +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { + return [_currentSpecifier footerText]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellValue]; + NSArray *titles = [_currentSpecifier multipleTitles]; + + if (!cell) { + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellValue] autorelease]; + cell.backgroundColor = [UIColor whiteColor]; + } + + if ([indexPath isEqual:[self checkedItem]]) { + [self selectCell:cell]; + } else { + [self deselectCell:cell]; + } + + @try { + [[cell textLabel] setText:[self.settingsReader titleForStringId:[titles objectAtIndex:indexPath.row]]]; + } + @catch (NSException * e) {} + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + + if (indexPath == [self checkedItem]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + return; + } + + NSArray *values = [_currentSpecifier multipleValues]; + + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + [self deselectCell:[tableView cellForRowAtIndexPath:[self checkedItem]]]; + [self selectCell:[tableView cellForRowAtIndexPath:indexPath]]; + [self setCheckedItem:indexPath]; + + [self.settingsStore setObject:[values objectAtIndex:indexPath.row] forKey:[_currentSpecifier key]]; + [self.settingsStore synchronize]; + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[_currentSpecifier key] + userInfo:[NSDictionary dictionaryWithObject:[values objectAtIndex:indexPath.row] + forKey:[_currentSpecifier key]]]; +} + +#pragma mark Notifications + +- (void)userDefaultsDidChange { + NSIndexPath *oldCheckedItem = self.checkedItem; + if(_currentSpecifier) { + [self updateCheckedItem]; + } + + // only reload the table if it had changed; prevents animation cancellation + if (self.checkedItem != oldCheckedItem) { + [_tableView reloadData]; + } +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsReader.h b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsReader.h new file mode 100755 index 0000000..0f49c01 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsReader.h @@ -0,0 +1,146 @@ +// +// IASKSettingsReader.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + +#define kIASKPreferenceSpecifiers @"PreferenceSpecifiers" +#define kIASKType @"Type" +#define kIASKTitle @"Title" +#define kIASKFooterText @"FooterText" +#define kIASKKey @"Key" +#define kIASKFile @"File" +#define kIASKDefaultValue @"DefaultValue" +#define kIASKMinimumValue @"MinimumValue" +#define kIASKMaximumValue @"MaximumValue" +#define kIASKTextOffsetPixels @"TextOffsetPixels" +#define kIASKTrueValue @"TrueValue" +#define kIASKFalseValue @"FalseValue" +#define kIASKIsSecure @"IsSecure" +#define KIASKKeyboardType @"KeyboardType" +#define kIASKAutocapitalizationType @"AutocapitalizationType" +#define kIASKAutoCorrectionType @"AutocorrectionType" +#define kIASKValues @"Values" +#define kIASKTitles @"Titles" +#define kIASKViewControllerClass @"IASKViewControllerClass" +#define kIASKViewControllerSelector @"IASKViewControllerSelector" +#define kIASKButtonClass @"IASKButtonClass" +#define kIASKButtonAction @"IASKButtonAction" +#define kIASKMailComposeToRecipents @"IASKMailComposeToRecipents" +#define kIASKMailComposeCcRecipents @"IASKMailComposeCcRecipents" +#define kIASKMailComposeBccRecipents @"IASKMailComposeBccRecipents" +#define kIASKMailComposeSubject @"IASKMailComposeSubject" +#define kIASKMailComposeBody @"IASKMailComposeBody" +#define kIASKMailComposeBodyIsHTML @"IASKMailComposeBodyIsHTML" +#define kIASKKeyboardAlphabet @"Alphabet" +#define kIASKKeyboardASCII @"Ascii" +#define kIASKKeyboardNumbersAndPunctuation @"NumbersAndPunctuation" +#define kIASKKeyboardNumberPad @"NumberPad" +#define kIASKKeyboardDecimalPad @"DecimalPad" + +#define KIASKKeyboardURL @"URL" +#define kIASKKeyboardEmailAddress @"EmailAddress" +#define kIASKAutoCapNone @"None" +#define kIASKAutoCapSentences @"Sentences" +#define kIASKAutoCapWords @"Words" +#define kIASKAutoCapAllCharacters @"AllCharacters" +#define kIASKAutoCorrDefault @"Default" +#define kIASKAutoCorrNo @"No" +#define kIASKAutoCorrYes @"Yes" +#define kIASKMinimumValueImage @"MinimumValueImage" +#define kIASKMaximumValueImage @"MaximumValueImage" +#define kIASKStringIfEmpty @"StringIfEmpty" + +#define kIASKPSGroupSpecifier @"PSGroupSpecifier" +#define kIASKPSToggleSwitchSpecifier @"PSToggleSwitchSpecifier" +#define kIASKPSMultiValueSpecifier @"PSMultiValueSpecifier" +#define kIASKPSSliderSpecifier @"PSSliderSpecifier" +#define kIASKPSTitleValueSpecifier @"PSTitleValueSpecifier" +#define kIASKPSTextFieldSpecifier @"PSTextFieldSpecifier" +#define kIASKPSChildPaneSpecifier @"PSChildPaneSpecifier" +#define kIASKOpenURLSpecifier @"IASKOpenURLSpecifier" +#define kIASKButtonSpecifier @"IASKButtonSpecifier" +#define kIASKMailComposeSpecifier @"IASKMailComposeSpecifier" +#define kIASKCustomViewSpecifier @"IASKCustomViewSpecifier" + +#define kIASKBundleFolder @"Settings.bundle" +#define kIASKBundleFolderAlt @"InAppSettings.bundle" +#define kIASKBundleFilename @"Root.plist" +#define KIASKBundleLocaleFolderExtension @".lproj" + +#define kIASKAppSettingChanged @"kAppSettingChanged" + +#define kIASKSectionHeaderIndex 0 + +#define kIASKSliderNoImagesPadding 11 +#define kIASKSliderImagesPadding 43 + + +#define kIASKTableWidth 320 +#define kIASKSpacing 5 +#define kIASKMinLabelWidth 97 +#define kIASKMinValueWidth 35 +#define kIASKPaddingLeft 9 +#define kIASKPaddingRight 10 +#define kIASKHorizontalPaddingGroupTitles 19 +#define kIASKVerticalPaddingGroupTitles 15 + +#define kIASKLabelFontSize 17 +#define kIASKgrayBlueColor [UIColor colorWithRed:0.318 green:0.4 blue:0.569 alpha:1.0] + +#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_4_0 +#define kCFCoreFoundationVersionNumber_iPhoneOS_4_0 550.32 +#endif + +#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_4_1 +#define kCFCoreFoundationVersionNumber_iPhoneOS_4_1 550.38 +#endif + + +#define IASK_IF_IOS4_OR_GREATER(...) \ +if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iPhoneOS_4_0) \ +{ \ +__VA_ARGS__ \ +} + +@class IASKSpecifier; + +@interface IASKSettingsReader : NSObject { + NSString *_path; + NSString *_localizationTable; + NSString *_bundlePath; + NSDictionary *_settingsBundle; + NSArray *_dataSource; + NSBundle *_bundle; +} + +- (id)initWithFile:(NSString*)file; +- (NSInteger)numberOfSections; +- (NSInteger)numberOfRowsForSection:(NSInteger)section; +- (IASKSpecifier*)specifierForIndexPath:(NSIndexPath*)indexPath; +- (IASKSpecifier*)specifierForKey:(NSString*)key; +- (NSString*)titleForSection:(NSInteger)section; +- (NSString*)keyForSection:(NSInteger)section; +- (NSString*)footerTextForSection:(NSInteger)section; +- (NSString*)titleForStringId:(NSString*)stringId; +- (NSString*)pathForImageNamed:(NSString*)image; + +@property (nonatomic, retain) NSString *path; +@property (nonatomic, retain) NSString *localizationTable; +@property (nonatomic, retain) NSString *bundlePath; +@property (nonatomic, retain) NSDictionary *settingsBundle; +@property (nonatomic, retain) NSArray *dataSource; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsReader.m b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsReader.m new file mode 100755 index 0000000..c2967ba --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsReader.m @@ -0,0 +1,259 @@ +// +// IASKSettingsReader.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsReader.h" +#import "IASKSpecifier.h" + +@interface IASKSettingsReader (private) +- (void)_reinterpretBundle:(NSDictionary*)settingsBundle; +- (BOOL)_sectionHasHeading:(NSInteger)section; +- (NSString *)platformSuffix; +- (NSString *)locateSettingsFile:(NSString *)file; + +@end + +@implementation IASKSettingsReader + +@synthesize path=_path, +localizationTable=_localizationTable, +bundlePath=_bundlePath, +settingsBundle=_settingsBundle, +dataSource=_dataSource; + +- (id)init { + return [self initWithFile:@"Root"]; +} + +- (id)initWithFile:(NSString*)file { + if ((self=[super init])) { + + + self.path = [self locateSettingsFile: file]; + [self setSettingsBundle:[NSDictionary dictionaryWithContentsOfFile:self.path]]; + self.bundlePath = [self.path stringByDeletingLastPathComponent]; + _bundle = [[NSBundle bundleWithPath:[self bundlePath]] retain]; + + // Look for localization file + self.localizationTable = [self.settingsBundle objectForKey:@"StringsTable"]; + NSLog(@"Loc table: %@. bundle: %@ (%p)\n", self.localizationTable, _bundlePath, _bundle); + if (!self.localizationTable) + { + // Look for localization file using filename + self.localizationTable = [[[[self.path stringByDeletingPathExtension] // removes '.plist' + stringByDeletingPathExtension] // removes potential '.inApp' + lastPathComponent] // strip absolute path + stringByReplacingOccurrencesOfString:[self platformSuffix] withString:@""]; // removes potential '~device' (~ipad, ~iphone) + NSLog(@"Settings string filename: %@\n", self.localizationTable); + if([_bundle pathForResource:self.localizationTable ofType:@"strings"] == nil){ + // Could not find the specified localization: use default + self.localizationTable = @"Root"; + NSLog(@"Couldn't find file though..\n"); + } + } + + if (_settingsBundle) { + [self _reinterpretBundle:_settingsBundle]; + } + } + return self; +} + +- (void)dealloc { + [_path release], _path = nil; + [_localizationTable release], _localizationTable = nil; + [_bundlePath release], _bundlePath = nil; + [_settingsBundle release], _settingsBundle = nil; + [_dataSource release], _dataSource = nil; + [_bundle release], _bundle = nil; + + [super dealloc]; +} + +- (void)_reinterpretBundle:(NSDictionary*)settingsBundle { + NSArray *preferenceSpecifiers = [settingsBundle objectForKey:kIASKPreferenceSpecifiers]; + NSInteger sectionCount = -1; + NSMutableArray *dataSource = [[[NSMutableArray alloc] init] autorelease]; + + for (NSDictionary *specifier in preferenceSpecifiers) { + if ([(NSString*)[specifier objectForKey:kIASKType] isEqualToString:kIASKPSGroupSpecifier]) { + NSMutableArray *newArray = [[NSMutableArray alloc] init]; + + [newArray addObject:specifier]; + [dataSource addObject:newArray]; + [newArray release]; + sectionCount++; + } + else { + if (sectionCount == -1) { + NSMutableArray *newArray = [[NSMutableArray alloc] init]; + [dataSource addObject:newArray]; + [newArray release]; + sectionCount++; + } + + IASKSpecifier *newSpecifier = [[IASKSpecifier alloc] initWithSpecifier:specifier]; + [(NSMutableArray*)[dataSource objectAtIndex:sectionCount] addObject:newSpecifier]; + [newSpecifier release]; + } + } + [self setDataSource:dataSource]; +} + +- (BOOL)_sectionHasHeading:(NSInteger)section { + return [[[[self dataSource] objectAtIndex:section] objectAtIndex:0] isKindOfClass:[NSDictionary class]]; +} + +- (NSInteger)numberOfSections { + return [[self dataSource] count]; +} + +- (NSInteger)numberOfRowsForSection:(NSInteger)section { + int headingCorrection = [self _sectionHasHeading:section] ? 1 : 0; + return [(NSArray*)[[self dataSource] objectAtIndex:section] count] - headingCorrection; +} + +- (IASKSpecifier*)specifierForIndexPath:(NSIndexPath*)indexPath { + int headingCorrection = [self _sectionHasHeading:indexPath.section] ? 1 : 0; + + IASKSpecifier *specifier = [[[self dataSource] objectAtIndex:indexPath.section] objectAtIndex:(indexPath.row+headingCorrection)]; + specifier.settingsReader = self; + return specifier; +} + +- (IASKSpecifier*)specifierForKey:(NSString*)key { + for (NSArray *specifiers in _dataSource) { + for (id sp in specifiers) { + if ([sp isKindOfClass:[IASKSpecifier class]]) { + if ([[sp key] isEqualToString:key]) { + return sp; + } + } + } + } + return nil; +} + +- (NSString*)titleForSection:(NSInteger)section { + if ([self _sectionHasHeading:section]) { + NSDictionary *dict = [[[self dataSource] objectAtIndex:section] objectAtIndex:kIASKSectionHeaderIndex]; + return [_bundle localizedStringForKey:[dict objectForKey:kIASKTitle] value:[dict objectForKey:kIASKTitle] table:self.localizationTable]; + } + return nil; +} + +- (NSString*)keyForSection:(NSInteger)section { + if ([self _sectionHasHeading:section]) { + return [[[[self dataSource] objectAtIndex:section] objectAtIndex:kIASKSectionHeaderIndex] objectForKey:kIASKKey]; + } + return nil; +} + +- (NSString*)footerTextForSection:(NSInteger)section { + if ([self _sectionHasHeading:section]) { + NSDictionary *dict = [[[self dataSource] objectAtIndex:section] objectAtIndex:kIASKSectionHeaderIndex]; + return [_bundle localizedStringForKey:[dict objectForKey:kIASKFooterText] value:[dict objectForKey:kIASKFooterText] table:self.localizationTable]; + } + return nil; +} + +- (NSString*)titleForStringId:(NSString*)stringId { + return [_bundle localizedStringForKey:stringId value:stringId table:self.localizationTable]; +} + +- (NSString*)pathForImageNamed:(NSString*)image { + return [[self bundlePath] stringByAppendingPathComponent:image]; +} + +- (NSString *)platformSuffix { + BOOL isPad = NO; +#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200) + isPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; +#endif + return isPad ? @"~ipad" : @"~iphone"; +} + +- (NSString *)file:(NSString *)file + withBundle:(NSString *)bundle + suffix:(NSString *)suffix + extension:(NSString *)extension { + + NSString *appBundle = [[NSBundle mainBundle] bundlePath]; + bundle = [appBundle stringByAppendingPathComponent:bundle]; + file = [file stringByAppendingFormat:@"%@%@", suffix, extension]; + return [bundle stringByAppendingPathComponent:file]; + +} + +- (NSString *)locateSettingsFile: (NSString *)file { + + // The file is searched in the following order: + // + // InAppSettings.bundle/FILE~DEVICE.inApp.plist + // InAppSettings.bundle/FILE.inApp.plist + // InAppSettings.bundle/FILE~DEVICE.plist + // InAppSettings.bundle/FILE.plist + // Settings.bundle/FILE~DEVICE.inApp.plist + // Settings.bundle/FILE.inApp.plist + // Settings.bundle/FILE~DEVICE.plist + // Settings.bundle/FILE.plist + // + // where DEVICE is either "iphone" or "ipad" depending on the current + // interface idiom. + // + // Settings.app uses the ~DEVICE suffixes since iOS 4.0. There are some + // differences from this implementation: + // - For an iPhone-only app running on iPad, Settings.app will not use the + // ~iphone suffix. There is no point in using these suffixes outside + // of universal apps anyway. + // - This implementation uses the device suffixes on iOS 3.x as well. + // - also check current locale (short only) + + NSArray *bundles = + [NSArray arrayWithObjects:kIASKBundleFolderAlt, kIASKBundleFolder, nil]; + + NSArray *extensions = + [NSArray arrayWithObjects:@".inApp.plist", @".plist", nil]; + + NSArray *suffixes = + [NSArray arrayWithObjects:[self platformSuffix], @"", nil]; + + NSArray *languages = + [NSArray arrayWithObjects:[[[NSLocale preferredLanguages] objectAtIndex:0] stringByAppendingString:KIASKBundleLocaleFolderExtension], @"", nil]; + + NSString *path = nil; + NSFileManager *fileManager = [NSFileManager defaultManager]; + + for (NSString *bundle in bundles) { + for (NSString *extension in extensions) { + for (NSString *suffix in suffixes) { + for (NSString *language in languages) { + path = [self file:file + withBundle:[bundle stringByAppendingPathComponent:language] + suffix:suffix + extension:extension]; + if ([fileManager fileExistsAtPath:path]) { + goto exitFromNestedLoop; + } + } + } + } + } + +exitFromNestedLoop: + return path; +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStore.h b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStore.h new file mode 100755 index 0000000..c1b53ba --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStore.h @@ -0,0 +1,39 @@ +// +// IASKSettingsStore.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + +@protocol IASKSettingsStore +@required +- (void)setBool:(BOOL)value forKey:(NSString*)key; +- (void)setFloat:(float)value forKey:(NSString*)key; +- (void)setDouble:(double)value forKey:(NSString*)key; +- (void)setInteger:(int)value forKey:(NSString*)key; +- (void)setObject:(id)value forKey:(NSString*)key; +- (BOOL)boolForKey:(NSString*)key; +- (float)floatForKey:(NSString*)key; +- (double)doubleForKey:(NSString*)key; +- (int)integerForKey:(NSString*)key; +- (id)objectForKey:(NSString*)key; +- (BOOL)synchronize; // Write settings to a permanant storage. Returns YES on success, NO otherwise +@end + + +@interface IASKAbstractSettingsStore : NSObject { +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStore.m b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStore.m new file mode 100755 index 0000000..8efbe7d --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStore.m @@ -0,0 +1,68 @@ +// +// IASKSettingsStore.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsStore.h" + +@implementation IASKAbstractSettingsStore + +- (void)setObject:(id)value forKey:(NSString*)key { + [NSException raise:@"Unimplemented" + format:@"setObject:forKey: must be implemented in subclasses of IASKAbstractSettingsStore"]; +} + +- (id)objectForKey:(NSString*)key { + [NSException raise:@"Unimplemented" + format:@"objectForKey: must be implemented in subclasses of IASKAbstractSettingsStore"]; + return nil; +} + +- (void)setBool:(BOOL)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithBool:value] forKey:key]; +} + +- (void)setFloat:(float)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithFloat:value] forKey:key]; +} + +- (void)setInteger:(int)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithInt:value] forKey:key]; +} + +- (void)setDouble:(double)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithDouble:value] forKey:key]; +} + +- (BOOL)boolForKey:(NSString*)key { + return [[self objectForKey:key] boolValue]; +} + +- (float)floatForKey:(NSString*)key { + return [[self objectForKey:key] floatValue]; +} +- (int)integerForKey:(NSString*)key { + return [[self objectForKey:key] intValue]; +} + +- (double)doubleForKey:(NSString*)key { + return [[self objectForKey:key] doubleValue]; +} + +- (BOOL)synchronize { + return NO; +} + +@end \ No newline at end of file diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreFile.h b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreFile.h new file mode 100755 index 0000000..6d4fe29 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreFile.h @@ -0,0 +1,28 @@ +// +// IASKSettingsStoreFile.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import +#import "IASKSettingsStore.h" + +@interface IASKSettingsStoreFile : IASKAbstractSettingsStore { + NSString * _filePath; + NSMutableDictionary * _dict; +} + +- (id)initWithPath:(NSString*)path; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreFile.m b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreFile.m new file mode 100755 index 0000000..104642d --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreFile.m @@ -0,0 +1,54 @@ +// +// IASKSettingsStoreFile.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsStoreFile.h" + + +@implementation IASKSettingsStoreFile + +- (id)initWithPath:(NSString*)path { + if((self = [super init])) { + _filePath = [path retain]; + _dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; + if(_dict == nil) { + _dict = [[NSMutableDictionary alloc] init]; + } + } + return self; +} + +- (void)dealloc { + [_dict release], _dict = nil; + [_filePath release], _filePath = nil; + + [super dealloc]; +} + + +- (void)setObject:(id)value forKey:(NSString *)key { + [_dict setObject:value forKey:key]; +} + +- (id)objectForKey:(NSString *)key { + return [_dict objectForKey:key]; +} + +- (BOOL)synchronize { + return [_dict writeToFile:_filePath atomically:YES]; +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h new file mode 100755 index 0000000..3731f5e --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h @@ -0,0 +1,25 @@ +// +// IASKSettingsStoreUserDefaults.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import +#import "IASKSettingsStore.h" + +@interface IASKSettingsStoreUserDefaults : IASKAbstractSettingsStore { + +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m new file mode 100755 index 0000000..fd24bf0 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m @@ -0,0 +1,67 @@ +// +// IASKSettingsStoreUserDefaults.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsStoreUserDefaults.h" + + +@implementation IASKSettingsStoreUserDefaults + +- (void)setBool:(BOOL)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setBool:value forKey:key]; +} + +- (void)setFloat:(float)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setFloat:value forKey:key]; +} + +- (void)setDouble:(double)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setDouble:value forKey:key]; +} + +- (void)setInteger:(int)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setInteger:value forKey:key]; +} + +- (void)setObject:(id)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setObject:value forKey:key]; +} + +- (BOOL)boolForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] boolForKey:key]; +} + +- (float)floatForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] floatForKey:key]; +} + +- (double)doubleForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] doubleForKey:key]; +} + +- (int)integerForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] integerForKey:key]; +} + +- (id)objectForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] objectForKey:key]; +} + +- (BOOL)synchronize { + return [[NSUserDefaults standardUserDefaults] synchronize]; +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSpecifier.h b/project/lib_projects/InAppSettingsKit/Models/IASKSpecifier.h new file mode 100755 index 0000000..5a4a9f2 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSpecifier.h @@ -0,0 +1,63 @@ +// +// IASKSpecifier.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import +#import + +@class IASKSettingsReader; + +@interface IASKSpecifier : NSObject { + NSDictionary *_specifierDict; + NSDictionary *_multipleValuesDict; + IASKSettingsReader *_settingsReader; +} +@property (nonatomic, retain) NSDictionary *specifierDict; +@property (nonatomic, assign) IASKSettingsReader *settingsReader; + +- (id)initWithSpecifier:(NSDictionary*)specifier; +- (NSString*)localizedObjectForKey:(NSString*)key; +- (NSString*)title; +- (NSString*)key; +- (NSString*)type; +- (NSString*)titleForCurrentValue:(id)currentValue; +- (NSInteger)multipleValuesCount; +- (NSArray*)multipleValues; +- (NSArray*)multipleTitles; +- (NSString*)file; +- (id)defaultValue; +- (id)defaultStringValue; +- (BOOL)defaultBoolValue; +- (id)trueValue; +- (id)falseValue; +- (float)minimumValue; +- (float)maximumValue; +- (int)textOffsetPixels; +- (NSString*)minimumValueImage; +- (NSString*)maximumValueImage; +- (BOOL)isSecure; +- (UIKeyboardType)keyboardType; +- (UITextAutocapitalizationType)autocapitalizationType; +- (UITextAutocorrectionType)autoCorrectionType; +- (NSString*)footerText; +- (NSString*)stringIfEmpty; +- (Class)viewControllerClass; +- (SEL)viewControllerSelector; +-(Class)buttonClass; +-(SEL)buttonAction; + +-(BOOL)hasSpecified:(NSString*)key; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Models/IASKSpecifier.m b/project/lib_projects/InAppSettingsKit/Models/IASKSpecifier.m new file mode 100755 index 0000000..ab2e93e --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Models/IASKSpecifier.m @@ -0,0 +1,256 @@ +// +// IASKSpecifier.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSpecifier.h" +#import "IASKSettingsReader.h" + +@interface IASKSpecifier () +@property (nonatomic, retain) NSDictionary *multipleValuesDict; +- (void)_reinterpretValues:(NSDictionary*)specifierDict; +@end + +@implementation IASKSpecifier + +@synthesize specifierDict=_specifierDict; +@synthesize multipleValuesDict=_multipleValuesDict; +@synthesize settingsReader = _settingsReader; + +- (id)initWithSpecifier:(NSDictionary*)specifier { + if ((self = [super init])) { + [self setSpecifierDict:specifier]; + + if ([[self type] isEqualToString:kIASKPSMultiValueSpecifier] || + [[self type] isEqualToString:kIASKPSTitleValueSpecifier]) { + [self _reinterpretValues:[self specifierDict]]; + } + } + return self; +} + +- (void)dealloc { + [_specifierDict release], _specifierDict = nil; + [_multipleValuesDict release], _multipleValuesDict = nil; + + _settingsReader = nil; + + [super dealloc]; +} + +-(BOOL)hasSpecified:(NSString*)key { + return [_specifierDict objectForKey:key] != nil; +} + + +- (void)_reinterpretValues:(NSDictionary*)specifierDict { + NSArray *values = [_specifierDict objectForKey:kIASKValues]; + NSArray *titles = [_specifierDict objectForKey:kIASKTitles]; + + NSMutableDictionary *multipleValuesDict = [[[NSMutableDictionary alloc] init] autorelease]; + + if (values) { + [multipleValuesDict setObject:values forKey:kIASKValues]; + } + + if (titles) { + [multipleValuesDict setObject:titles forKey:kIASKTitles]; + } + + [self setMultipleValuesDict:multipleValuesDict]; +} +- (NSString*)localizedObjectForKey:(NSString*)key { + return [self.settingsReader titleForStringId:[_specifierDict objectForKey:key]]; +} + +- (NSString*)title { + return [self localizedObjectForKey:kIASKTitle]; +} + +- (NSString*)footerText { + return [self localizedObjectForKey:kIASKFooterText]; +} + +- (NSString*)stringIfEmpty { + return [_specifierDict objectForKey:kIASKStringIfEmpty]; +} + +-(Class) viewControllerClass { + return NSClassFromString([_specifierDict objectForKey:kIASKViewControllerClass]); +} + +-(SEL) viewControllerSelector { + return NSSelectorFromString([_specifierDict objectForKey:kIASKViewControllerSelector]); +} + +-(Class)buttonClass { + return NSClassFromString([_specifierDict objectForKey:kIASKButtonClass]); +} + +-(SEL)buttonAction { + return NSSelectorFromString([_specifierDict objectForKey:kIASKButtonAction]); +} + +- (NSString*)key { + return [_specifierDict objectForKey:kIASKKey]; +} + +- (NSString*)type { + return [_specifierDict objectForKey:kIASKType]; +} + +- (NSString*)titleForCurrentValue:(id)currentValue { + NSArray *values = [self multipleValues]; + NSArray *titles = [self multipleTitles]; + if (values.count != titles.count) { + return nil; + } + NSInteger keyIndex = [values indexOfObject:currentValue]; + if (keyIndex == NSNotFound) { + return nil; + } + @try { + return [self.settingsReader titleForStringId:[titles objectAtIndex:keyIndex]]; + } + @catch (NSException * e) {} + return nil; +} + +- (NSInteger)multipleValuesCount { + return [[_multipleValuesDict objectForKey:kIASKValues] count]; +} + +- (NSArray*)multipleValues { + return [_multipleValuesDict objectForKey:kIASKValues]; +} + +- (NSArray*)multipleTitles { + return [_multipleValuesDict objectForKey:kIASKTitles]; +} + +- (NSString*)file { + return [_specifierDict objectForKey:kIASKFile]; +} + +- (id)defaultValue { + return [_specifierDict objectForKey:kIASKDefaultValue]; +} + +- (id)defaultStringValue { + return [[_specifierDict objectForKey:kIASKDefaultValue] description]; +} + +- (BOOL)defaultBoolValue { + id defaultValue = [self defaultValue]; + if ([defaultValue isEqual:[self trueValue]]) { + return YES; + } + if ([defaultValue isEqual:[self falseValue]]) { + return NO; + } + return [defaultValue boolValue]; +} + +- (id)trueValue { + return [_specifierDict objectForKey:kIASKTrueValue]; +} + +- (id)falseValue { + return [_specifierDict objectForKey:kIASKFalseValue]; +} + +- (float)minimumValue { + return [[_specifierDict objectForKey:kIASKMinimumValue] floatValue]; +} + +- (float)maximumValue { + return [[_specifierDict objectForKey:kIASKMaximumValue] floatValue]; +} + +- (int)textOffsetPixels { + return [[_specifierDict objectForKey:kIASKTextOffsetPixels] intValue]; +} + +- (NSString*)minimumValueImage { + return [_specifierDict objectForKey:kIASKMinimumValueImage]; +} + +- (NSString*)maximumValueImage { + return [_specifierDict objectForKey:kIASKMaximumValueImage]; +} + +- (BOOL)isSecure { + return [[_specifierDict objectForKey:kIASKIsSecure] boolValue]; +} + +- (UIKeyboardType)keyboardType { + if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardAlphabet]) { + return UIKeyboardTypeDefault; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardASCII]) { + return UIKeyboardTypeASCIICapable; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardNumbersAndPunctuation]) { + return UIKeyboardTypeNumbersAndPunctuation; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardNumberPad]) { + return UIKeyboardTypeNumberPad; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardDecimalPad]) { + if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iPhoneOS_4_1) { + return UIKeyboardTypeDecimalPad; + } + else { + return UIKeyboardTypeNumbersAndPunctuation; + } + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:KIASKKeyboardURL]) { + return UIKeyboardTypeURL; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardEmailAddress]) { + return UIKeyboardTypeEmailAddress; + } + return UIKeyboardTypeDefault; +} + +- (UITextAutocapitalizationType)autocapitalizationType { + if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapNone]) { + return UITextAutocapitalizationTypeNone; + } + else if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapSentences]) { + return UITextAutocapitalizationTypeSentences; + } + else if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapWords]) { + return UITextAutocapitalizationTypeWords; + } + else if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapAllCharacters]) { + return UITextAutocapitalizationTypeAllCharacters; + } + return UITextAutocapitalizationTypeNone; +} + +- (UITextAutocorrectionType)autoCorrectionType { + if ([[_specifierDict objectForKey:kIASKAutoCorrectionType] isEqualToString:kIASKAutoCorrDefault]) { + return UITextAutocorrectionTypeDefault; + } + else if ([[_specifierDict objectForKey:kIASKAutoCorrectionType] isEqualToString:kIASKAutoCorrNo]) { + return UITextAutocorrectionTypeNo; + } + else if ([[_specifierDict objectForKey:kIASKAutoCorrectionType] isEqualToString:kIASKAutoCorrYes]) { + return UITextAutocorrectionTypeYes; + } + return UITextAutocorrectionTypeDefault; +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h b/project/lib_projects/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h new file mode 100755 index 0000000..77dbdb5 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h @@ -0,0 +1,38 @@ +// +// IASKPSSliderSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + +@class IASKSlider; + +@interface IASKPSSliderSpecifierViewCell : UITableViewCell { + UILabel *_label; + IASKSlider *_slider; + UIImageView *_minImage; + UIImageView *_maxImage; + + @public + float textOffsetPixels; +} + +@property (nonatomic, assign) IBOutlet UILabel *label; +@property (nonatomic, assign) IBOutlet IASKSlider *slider; +@property (nonatomic, assign) IBOutlet UIImageView *minImage; +@property (nonatomic, assign) IBOutlet UIImageView *maxImage; + +- (void) initDefaults; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m b/project/lib_projects/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m new file mode 100755 index 0000000..6499d1f --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m @@ -0,0 +1,92 @@ +// +// IASKPSSliderSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009-2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSSliderSpecifierViewCell.h" +#import "IASKSlider.h" +#import "IASKSettingsReader.h" + +@implementation IASKPSSliderSpecifierViewCell + +@synthesize label=_label, + slider=_slider, + minImage=_minImage, + maxImage=_maxImage; + +- (void) initDefaults { + textOffsetPixels = -1; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + CGRect sliderBounds = _slider.bounds; + CGPoint sliderCenter = _slider.center; + double superViewWidth = _slider.superview.frame.size.width; + double centerOffset = 0; + + _minImage.hidden = YES; + _maxImage.hidden = YES; + _label.hidden = YES; + + if ([_label.text length] > 0) { + _label.hidden = NO; + + if (textOffsetPixels < 0) { + CGSize size = [_label.text sizeWithFont:_label.font]; + textOffsetPixels = size.width + 4; + NSLog(@"size: %f, %f\n", size.width, size.height); + } + superViewWidth -= textOffsetPixels; + centerOffset = textOffsetPixels; + } + + sliderCenter.x = superViewWidth / 2 + centerOffset; + sliderBounds.size.width = superViewWidth - kIASKSliderNoImagesPadding * 2; + + // Check if there are min and max images. If so, change the layout accordingly. + if (_minImage.image && _maxImage.image) { + // Both images + _minImage.hidden = NO; + _maxImage.hidden = NO; + sliderBounds.size.width = superViewWidth - kIASKSliderImagesPadding * 2; + } + else if (_minImage.image) { + // Min image + _minImage.hidden = NO; + sliderCenter.x += (kIASKSliderImagesPadding - kIASKSliderNoImagesPadding) / 2; + sliderBounds.size.width = superViewWidth - kIASKSliderNoImagesPadding - kIASKSliderImagesPadding; + } + else if (_maxImage.image) { + // Max image + _maxImage.hidden = NO; + sliderCenter.x -= (kIASKSliderImagesPadding - kIASKSliderNoImagesPadding) / 2; + sliderBounds.size.width = superViewWidth - kIASKSliderNoImagesPadding - kIASKSliderImagesPadding; + } + + _slider.bounds = sliderBounds; + _slider.center = sliderCenter; +} + +- (void)dealloc { + _minImage.image = nil; + _maxImage.image = nil; + [super dealloc]; +} + +- (void)prepareForReuse { + _minImage.image = nil; + _maxImage.image = nil; +} +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h b/project/lib_projects/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h new file mode 100755 index 0000000..dba6ca5 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h @@ -0,0 +1,32 @@ +// +// IASKPSTextFieldSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + +@class IASKTextField; + +@interface IASKPSTextFieldSpecifierViewCell : UITableViewCell { + UILabel *_label; + IASKTextField *_textField; + + @public + NSString* stringIfEmpty; +} + +@property (nonatomic, assign) IBOutlet UILabel *label; +@property (nonatomic, assign) IBOutlet IASKTextField *textField; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m b/project/lib_projects/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m new file mode 100755 index 0000000..2d31d9f --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m @@ -0,0 +1,76 @@ +// +// IASKPSTextFieldSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009-2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSTextFieldSpecifierViewCell.h" +#import "IASKTextField.h" +#import "IASKSettingsReader.h" + +@implementation IASKPSTextFieldSpecifierViewCell + +@synthesize label=_label, + textField=_textField; + +- (void)layoutSubviews { + [super layoutSubviews]; + CGSize labelSize = [_label sizeThatFits:CGSizeZero]; + labelSize.width = MIN(labelSize.width, _label.bounds.size.width); + + CGRect textFieldFrame = _textField.frame; + textFieldFrame.origin.x = _label.frame.origin.x + MAX(kIASKMinLabelWidth, labelSize.width) + kIASKSpacing; + if (!_label.text.length) + textFieldFrame.origin.x = _label.frame.origin.x; + textFieldFrame.size.width = _textField.superview.frame.size.width - textFieldFrame.origin.x - _label.frame.origin.x; + _textField.frame = textFieldFrame; + + [_textField setDelegate:self]; +} + +- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string +{ + NSUInteger newLength = [textField.text length] + [string length] - range.length; + if (newLength > 24) + return NO; + + int length = [string length]; + for (int i = 0; i < length; ++i) { + unichar ch = [string characterAtIndex:i]; + + if (ch >= 128) + return NO; + } + return YES; +} + +- (void)textFieldDidEndEditing:(UITextField *)textField { + if (stringIfEmpty != nil && [[textField text] isEqualToString:@""]) { + [textField setText:stringIfEmpty]; + } +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h b/project/lib_projects/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h new file mode 100755 index 0000000..b3185b4 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h @@ -0,0 +1,22 @@ +// +// IASKPSTitleValueSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + + +@interface IASKPSTitleValueSpecifierViewCell : UITableViewCell + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m b/project/lib_projects/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m new file mode 100755 index 0000000..cd6ba97 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m @@ -0,0 +1,54 @@ +// +// IASKPSTitleValueSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSTitleValueSpecifierViewCell.h" +#import "IASKSettingsReader.h" + + +@implementation IASKPSTitleValueSpecifierViewCell + +- (void)layoutSubviews { + // left align the value if the title is empty + if (!self.textLabel.text.length) { + self.textLabel.text = self.detailTextLabel.text; + self.detailTextLabel.text = nil; + if ([self.reuseIdentifier isEqualToString:kIASKPSMultiValueSpecifier]) { + self.textLabel.font = [UIFont systemFontOfSize:[UIFont labelFontSize]]; + self.textLabel.textColor = self.detailTextLabel.textColor; + } + } + [super layoutSubviews]; + + CGSize viewSize = [self.textLabel superview].frame.size; + + // set the left title label frame + CGFloat labelWidth = [self.textLabel sizeThatFits:CGSizeZero].width; + CGFloat minValueWidth = (self.detailTextLabel.text.length) ? kIASKMinValueWidth + kIASKSpacing : 0; + labelWidth = MIN(labelWidth, viewSize.width - minValueWidth - kIASKPaddingLeft -kIASKPaddingRight); + CGRect labelFrame = CGRectMake(kIASKPaddingLeft, 0, labelWidth, viewSize.height -2); + self.textLabel.frame = labelFrame; + + // set the right value label frame + if (self.detailTextLabel.text.length) { + CGRect valueFrame = CGRectMake(kIASKPaddingLeft + labelWidth + kIASKSpacing, + 0, + viewSize.width - (kIASKPaddingLeft + labelWidth + kIASKSpacing) - kIASKPaddingRight, + viewSize.height -2); + self.detailTextLabel.frame = valueFrame; + } +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h b/project/lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h new file mode 100755 index 0000000..a6d2864 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h @@ -0,0 +1,29 @@ +// +// IASKPSToggleSwitchSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + +@class IASKSwitch; + +@interface IASKPSToggleSwitchSpecifierViewCell : UITableViewCell { + UILabel *_label; + IASKSwitch *_toggle; +} + +@property (nonatomic, assign) IBOutlet UILabel *label; +@property (nonatomic, assign) IBOutlet IASKSwitch *toggle; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m b/project/lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m new file mode 100755 index 0000000..a4a5c0d --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m @@ -0,0 +1,46 @@ +// +// IASKPSToggleSwitchSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSToggleSwitchSpecifierViewCell.h" +#import "IASKSwitch.h" + +@implementation IASKPSToggleSwitchSpecifierViewCell + +@synthesize label=_label, + toggle=_toggle; + +- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { + // Initialization code + } + return self; +} + + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKSlider.h b/project/lib_projects/InAppSettingsKit/Views/IASKSlider.h new file mode 100755 index 0000000..34c5ecb --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKSlider.h @@ -0,0 +1,26 @@ +// +// IASKSlider.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + + +@interface IASKSlider : UISlider { + NSString *_key; +} + +@property (nonatomic, retain) NSString *key; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKSlider.m b/project/lib_projects/InAppSettingsKit/Views/IASKSlider.m new file mode 100755 index 0000000..d591ff2 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKSlider.m @@ -0,0 +1,30 @@ +// +// IASKSlider.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSlider.h" + + +@implementation IASKSlider + +@synthesize key=_key; + +- (void)dealloc { + [_key release], _key = nil; + + [super dealloc]; +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKSwitch.h b/project/lib_projects/InAppSettingsKit/Views/IASKSwitch.h new file mode 100755 index 0000000..b1439bd --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKSwitch.h @@ -0,0 +1,26 @@ +// +// IASKSwitch.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + + +@interface IASKSwitch : UISwitch { + NSString *_key; +} + +@property (nonatomic, retain) NSString *key; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKSwitch.m b/project/lib_projects/InAppSettingsKit/Views/IASKSwitch.m new file mode 100755 index 0000000..f32aba4 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKSwitch.m @@ -0,0 +1,31 @@ +// +// IASKSwitch.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSwitch.h" + + +@implementation IASKSwitch + +@synthesize key=_key; + +- (void)dealloc { + [_key release], _key = nil; + + [super dealloc]; +} + + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKTextField.h b/project/lib_projects/InAppSettingsKit/Views/IASKTextField.h new file mode 100755 index 0000000..47c9be3 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKTextField.h @@ -0,0 +1,26 @@ +// +// IASKTextField.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import + + +@interface IASKTextField : UITextField { + NSString *_key; +} + +@property (nonatomic, retain) NSString *key; + +@end diff --git a/project/lib_projects/InAppSettingsKit/Views/IASKTextField.m b/project/lib_projects/InAppSettingsKit/Views/IASKTextField.m new file mode 100755 index 0000000..9056896 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Views/IASKTextField.m @@ -0,0 +1,30 @@ +// +// IASKTextField.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKTextField.h" + + +@implementation IASKTextField + +@synthesize key=_key; + +- (void)dealloc { + [_key release], _key = nil; + + [super dealloc]; +} + +@end diff --git a/project/lib_projects/InAppSettingsKit/Xibs/IASKAppSettingsView.xib b/project/lib_projects/InAppSettingsKit/Xibs/IASKAppSettingsView.xib new file mode 100755 index 0000000..74720fa --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Xibs/IASKAppSettingsView.xib @@ -0,0 +1,222 @@ + + + + 1280 + 11B26 + 1934 + 1138 + 566.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 931 + + + YES + IBProxyObject + IBUITableView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + + + 10 + + 549453824 + {512, 1} + + YES + + YES + + + + TU0AKgAACAjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/wANAQAAAwAAAAECAAAAAQEAAwAAAAEAAQAAAQIAAwAAAAQAAAiqAQMAAwAA +AAEAAQAAAQYAAwAAAAEAAgAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEABAAAARYAAwAA +AAEAAQAAARcABAAAAAEAAAgAARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAQAAAiyAAAAAAAI +AAgACAAIAAEAAQABAAE + + + + + + 3 + MCAwAA + + + groupTableViewBackgroundColor + + NO + YES + NO + IBCocoaTouchFramework + NO + 1 + 1 + 0 + YES + 44 + 10 + 10 + + + + + YES + + + view + + + + 10 + + + + dataSource + + + + 6 + + + + delegate + + + + 7 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 4.IBPluginDependency + + + YES + IASKAppSettingsViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 10 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + 931 + + diff --git a/project/lib_projects/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib b/project/lib_projects/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib new file mode 100755 index 0000000..b814f05 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib @@ -0,0 +1,378 @@ + + + + 1024 + 10F569 + 804 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 123 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 274 + {320, 460} + + + 3 + MQA + + IBCocoaTouchFramework + + + {320, 460} + + + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 3 + + + + webView + + + + 5 + + + + delegate + + + + 6 + + + + + YES + + 0 + + + + + + 1 + + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 4.IBPluginDependency + + + YES + IASKAppSettingsWebViewController + UIResponder + {{354, 412}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 6 + + + + YES + + IASKAppSettingsWebViewController + UIViewController + + webView + UIWebView + + + webView + + webView + UIWebView + + + + IBProjectSource + ../InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWebView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWebView.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../InAppSettingsKitSampleApp.xcodeproj + 3 + 123 + + diff --git a/project/lib_projects/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib b/project/lib_projects/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib new file mode 100755 index 0000000..47d0398 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib @@ -0,0 +1,297 @@ + + + + 1280 + 10K549 + 1938 + 1038.36 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 933 + + + YES + IBUISlider + IBUITableViewCell + IBUIImageView + IBUILabel + IBProxyObject + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 290 + + YES + + + 256 + + YES + + + 290 + {{52, 12}, {216, 23}} + + + NO + YES + YES + IBCocoaTouchFramework + 0 + 0 + 0.5 + + + + 289 + {{289, 13}, {21, 21}} + + + NO + NO + 8 + NO + IBCocoaTouchFramework + + + + 292 + {{10, 13}, {21, 21}} + + + NO + NO + 7 + NO + IBCocoaTouchFramework + + + + 294 + {{10, 13}, {240, 21}} + + + NO + YES + NO + IBCocoaTouchFramework + + + 1 + MCAwIDAAA + + + 1 + 10 + + Helvetica-Bold + Helvetica + 2 + 17 + + + Helvetica-Bold + 17 + 16 + + + + {320, 43} + + + + 3 + MCAwAA + + NO + YES + 4 + YES + IBCocoaTouchFramework + + + {320, 44} + + + + 1 + MSAxIDEAA + + YES + NO + IBCocoaTouchFramework + 0 + + PSSliderSpecifier + + + + + YES + + + slider + + + + 12 + + + + maxImage + + + + 13 + + + + minImage + + + + 14 + + + + label + + + + 18 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 2 + + + YES + + + + + + + + + 3 + + + + + 6 + + + + + 9 + + + + + 17 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 17.IBPluginDependency + 2.CustomClassName + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + 6.IBPluginDependency + 9.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + IASKPSSliderSpecifierViewCell + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + IASKSlider + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 18 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + 933 + + diff --git a/project/lib_projects/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib b/project/lib_projects/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib new file mode 100755 index 0000000..1ac134b --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib @@ -0,0 +1,262 @@ + + + + 1280 + 10K549 + 1938 + 1038.36 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 933 + + + YES + IBUITableViewCell + IBUILabel + IBUITextField + IBProxyObject + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 290 + + YES + + + 256 + + YES + + + 294 + {{9, 11}, {240, 21}} + + NO + YES + NO + IBCocoaTouchFramework + Label + + 1 + MCAwIDAAA + + + 1 + 10 + + Helvetica-Bold + Helvetica + 2 + 17 + + + Helvetica-Bold + 17 + 16 + + + + + 291 + {{100, 11}, {201, 21}} + + NO + NO + IBCocoaTouchFramework + hello + + 1 + MC4yNzQ1MDk4MiAwLjM3NjQ3MDYgMC41MjE1Njg2NgA + + 2 + YES + 10 + + IBCocoaTouchFramework + + + Helvetica + Helvetica + 0 + 17 + + + Helvetica + 17 + 16 + + + + {320, 43} + + + 3 + MCAwAA + + NO + YES + 4 + YES + IBCocoaTouchFramework + + + {320, 44} + + + 1 + MSAxIDEAA + + YES + NO + IBCocoaTouchFramework + 0 + + PSTextFieldSpecifier + + + + + YES + + + label + + + + 8 + + + + textField + + + + 9 + + + + delegate + + + + 10 + + + + + YES + + 0 + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 2 + + + YES + + + + + + + 3 + + + + + 4 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 2.CustomClassName + 2.IBPluginDependency + 3.IBPluginDependency + 4.CustomClassName + 4.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + IASKPSTextFieldSpecifierViewCell + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + IASKTextField + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 10 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + 933 + + diff --git a/project/lib_projects/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib b/project/lib_projects/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib new file mode 100755 index 0000000..885c95a --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib @@ -0,0 +1,287 @@ + + + + 768 + 10J869 + 1306 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 301 + + + YES + IBUITableViewCell + IBUISwitch + IBUILabel + IBProxyObject + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 290 + + YES + + + 256 + + YES + + + 294 + {{9, 10}, {200, 21}} + + + NO + YES + NO + IBCocoaTouchFramework + Label + + Helvetica-Bold + 17 + 16 + + + 1 + MCAwIDAAA + + + 1 + 10 + + + + 289 + {{218, 8}, {94, 27}} + + + NO + YES + YES + IBCocoaTouchFramework + 0 + 0 + YES + + + {320, 44} + + + + 3 + MCAwAA + + NO + YES + 4 + YES + IBCocoaTouchFramework + + + {320, 44} + + + + 1 + MSAxIDEAA + + YES + NO + IBCocoaTouchFramework + 1 + 0 + + PSToggleSwitchSpecifier + + + + + YES + + + toggle + + + + 8 + + + + label + + + + 9 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 2 + + + YES + + + + + Toggle Switch Specifier View Cell - PSToggleSwitchSpecifier + + + 3 + + + + + 4 + + + + + + + YES + + YES + -2.CustomClassName + 2.CustomClassName + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 3.IBPluginDependency + 4.CustomClassName + 4.IBPluginDependency + + + YES + UIResponder + IASKPSToggleSwitchSpecifierViewCell + {{1676, 1200}, {320, 44}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + IASKSwitch + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 9 + + + + YES + + IASKPSToggleSwitchSpecifierViewCell + UITableViewCell + + YES + + YES + label + toggle + + + YES + UILabel + IASKSwitch + + + + YES + + YES + label + toggle + + + YES + + label + UILabel + + + toggle + IASKSwitch + + + + + IBProjectSource + ./Classes/IASKPSToggleSwitchSpecifierViewCell.h + + + + IASKSwitch + UISwitch + + IBProjectSource + ./Classes/IASKSwitch.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + 301 + + diff --git a/project/lib_projects/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib b/project/lib_projects/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib new file mode 100755 index 0000000..9c7ff86 --- /dev/null +++ b/project/lib_projects/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib @@ -0,0 +1,255 @@ + + + + 768 + 10J567 + 1294 + 1038.35 + 462.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 294 + + + YES + IBProxyObject + IBUIView + IBUITableView + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 292 + + YES + + + 274 + {320, 460} + + + + + 10 + + 549453824 + {84, 1} + + YES + + YES + + + + TU0AKgAAAVjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P8ADQEAAAMAAAABAFQAAAEB +AAMAAAABAAEAAAECAAMAAAAEAAAB+gEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABAAEAAAEXAAQAAAABAAABUAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + 3 + MCAwAA + + + groupTableViewBackgroundColor + + NO + YES + NO + IBCocoaTouchFramework + NO + 1 + 1 + 0 + YES + 44 + 10 + 10 + + + {320, 460} + + + + + 3 + MQA + + 2 + + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 3 + + + + dataSource + + + + 5 + + + + delegate + + + + 6 + + + + _tableView + + + + 7 + + + + + YES + + 0 + + + + + + 1 + + + YES + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 4.IBPluginDependency + + + YES + IASKSpecifierValuesViewController + UIResponder + {{556, 432}, {320, 460}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 7 + + + + YES + + IASKSpecifierValuesViewController + UIViewController + + _tableView + UITableView + + + _tableView + + _tableView + UITableView + + + + IBProjectSource + ./Classes/IASKSpecifierValuesViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + 294 + + diff --git a/project/lib_projects/raknet/jni/Android.mk b/project/lib_projects/raknet/jni/Android.mk new file mode 100755 index 0000000..4be2d71 --- /dev/null +++ b/project/lib_projects/raknet/jni/Android.mk @@ -0,0 +1,13 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := RakNet + +MY_PREFIX := $(LOCAL_PATH)/RakNetSources/ +MY_SOURCES := $(wildcard $(MY_PREFIX)*.cpp) +LOCAL_SRC_FILES += $(MY_SOURCES:$(MY_PREFIX)%=RakNetSources/%) + +LOCAL_CFLAGS := -Wno-psabi $(LOCAL_CFLAGS) + +include $(BUILD_STATIC_LIBRARY) diff --git a/project/lib_projects/raknet/jni/Application.mk b/project/lib_projects/raknet/jni/Application.mk new file mode 100755 index 0000000..ec8b9b3 --- /dev/null +++ b/project/lib_projects/raknet/jni/Application.mk @@ -0,0 +1,4 @@ +APP_PLATFORM := android-8 +APP_STL := stlport_static +APP_OPTIM := release +APP_ABI := armeabi-v7a \ No newline at end of file diff --git a/project/lib_projects/raknet/jni/CMakeLists.txt b/project/lib_projects/raknet/jni/CMakeLists.txt new file mode 100755 index 0000000..fe314be --- /dev/null +++ b/project/lib_projects/raknet/jni/CMakeLists.txt @@ -0,0 +1,4 @@ +FILE(GLOB raknetCPPSources ./RaknetSources/*.cpp) +set(CMAKE_C_FLAGS -m32) +set(CMAKE_CXX_FLAGS -m32) +add_library(raknet ${raknetCPPSources}) diff --git a/project/lib_projects/raknet/jni/RaknetSources/AutopatcherPatchContext.h b/project/lib_projects/raknet/jni/RaknetSources/AutopatcherPatchContext.h new file mode 100755 index 0000000..4fae91a --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/AutopatcherPatchContext.h @@ -0,0 +1,23 @@ +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// Usage of RakNet is subject to the appropriate license agreement. +/// + +#ifndef __AUTOPATCHER_PATCH_CONTEXT_H +#define __AUTOPATCHER_PATCH_CONTEXT_H + +enum PatchContext +{ + PC_HASH_1_WITH_PATCH, + PC_HASH_2_WITH_PATCH, + PC_WRITE_FILE, + PC_ERROR_FILE_WRITE_FAILURE, + PC_ERROR_PATCH_TARGET_MISSING, + PC_ERROR_PATCH_APPLICATION_FAILURE, + PC_ERROR_PATCH_RESULT_CHECKSUM_FAILURE, + PC_NOTICE_WILL_COPY_ON_RESTART, + PC_NOTICE_FILE_DOWNLOADED, + PC_NOTICE_FILE_DOWNLOADED_PATCH, +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/AutopatcherRepositoryInterface.h b/project/lib_projects/raknet/jni/RaknetSources/AutopatcherRepositoryInterface.h new file mode 100755 index 0000000..303d321 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/AutopatcherRepositoryInterface.h @@ -0,0 +1,72 @@ +/// +/// \file AutopatcherRepositoryInterface.h +/// \brief An interface used by AutopatcherServer to get the data necessary to run an autopatcher. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// Usage of RakNet is subject to the appropriate license agreement. +/// + +#ifndef __AUTOPATCHER_REPOSITORY_INTERFACE_H +#define __AUTOPATCHER_REPOSITORY_INTERFACE_H + +#include "IncrementalReadInterface.h" +#include "SimpleMutex.h" + +namespace RakNet +{ +/// Forward declarations +class FileList; +class BitStream; + +/// An interface used by AutopatcherServer to get the data necessary to run an autopatcher. This is up to you to implement for custom repository solutions. +class AutopatcherRepositoryInterface : public IncrementalReadInterface +{ +public: + /// Get list of files added and deleted since a certain date. This is used by AutopatcherServer and not usually explicitly called. + /// \param[in] applicationName A null terminated string identifying the application + /// \param[out] addedFiles A list of the current versions of filenames with hashes as their data that were created after \a sinceData + /// \param[out] deletedFiles A list of the current versions of filenames that were deleted after \a sinceData + /// \param[in] An input date, in whatever format your repository uses + /// \param[out] currentDate The current server date, in whatever format your repository uses + /// \return True on success, false on failure. + virtual bool GetChangelistSinceDate(const char *applicationName, FileList *addedFiles, FileList *deletedFiles, double sinceDate)=0; + + /// Get patches (or files) for every file in input, assuming that input has a hash for each of those files. + /// \param[in] applicationName A null terminated string identifying the application + /// \param[in] input A list of files with SHA1_LENGTH byte hashes to get from the database. + /// \param[out] patchList You should return list of files with either the filedata or the patch. This is a subset of \a input. The context data for each file will be either PC_WRITE_FILE (to just write the file) or PC_HASH_WITH_PATCH (to patch). If PC_HASH_WITH_PATCH, then the file contains a SHA1_LENGTH byte patch followed by the hash. The datalength is patchlength + SHA1_LENGTH + /// \param[out] currentDate The current server date, in whatever format your repository uses + /// \return True on success, false on failure. + virtual bool GetPatches(const char *applicationName, FileList *input, FileList *patchList)=0; + + /// For the most recent update, return files that were patched, added, or deleted. For files that were patched, return both the patch in \a patchedFiles and the current version in \a updatedFiles + /// The cache will be used if the client last patched between \a priorRowPatchTime and \a mostRecentRowPatchTime + /// No files changed will be returned to the client if the client last patched after mostRecentRowPatchTime + /// \param[in,out] applicationName Name of the application to get patches for. If empty, uses the most recently updated application, and the string will be updated to reflect this name. + /// \param[out] patchedFiles Given the most recent update, if a file was patched, add it to this list. The context data for each file will be PC_HASH_WITH_PATCH. The first 4 bytes of data should be a hash of the file being patched. The second 4 bytes should be the hash of the file after the patch. The remaining bytes should be the patch itself. + /// \param[out] updatedFiles The current value of the file. List should have the same length and order as \a patchedFiles + /// \param[out] updatedFileHashes The hash of the current value of the file. List should have the same length and order as \a patchedFiles + /// \param[out] deletedFiles Files that were deleted in the last patch. + /// \param[out] priorRowPatchTime When the patch before the most recent patch took place. 0 means never. + /// \param[out] mostRecentRowPatchTime When the most recent patch took place. 0 means never. + /// \return true on success, false on failure + virtual bool GetMostRecentChangelistWithPatches( + RakNet::RakString &applicationName, + FileList *patchedFiles, + FileList *updatedFiles, + FileList *updatedFileHashes, + FileList *deletedFiles, + double *priorRowPatchTime, + double *mostRecentRowPatchTime)=0; + + /// \return Whatever this function returns is sent from the AutopatcherServer to the AutopatcherClient when one of the above functions returns false. + virtual const char *GetLastError(void) const=0; + + /// \return Passed to FileListTransfer::Send() as the _chunkSize parameter. + virtual const int GetIncrementalReadChunkSize(void) const=0; +}; + +} // namespace RakNet + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/BitStream.cpp b/project/lib_projects/raknet/jni/RaknetSources/BitStream.cpp new file mode 100755 index 0000000..7a0a14f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/BitStream.cpp @@ -0,0 +1,1172 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#if defined(_MSC_VER) && _MSC_VER < 1299 // VC6 doesn't support template specialization +#include "BitStream_NoTemplate.cpp" +#else + +#include "BitStream.h" +#include +#include +#include + +#include "SocketIncludes.h" +#include "RakNetDefines.h" + + + +#if defined(_WIN32) +#include // htonl +#include +#include +#include + + +#else +#include +#include +#if defined(ANDROID) +#include +#else +#include +#endif +#include +#endif + +// MSWin uses _copysign, others use copysign... +#ifndef _WIN32 +#define _copysign copysign +#endif + +using namespace RakNet; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +STATIC_FACTORY_DEFINITIONS(BitStream,BitStream) + +BitStream::BitStream() +{ + numberOfBitsUsed = 0; + //numberOfBitsAllocated = 32 * 8; + numberOfBitsAllocated = BITSTREAM_STACK_ALLOCATION_SIZE * 8; + readOffset = 0; + //data = ( unsigned char* ) rakMalloc_Ex( 32, _FILE_AND_LINE_ ); + data = ( unsigned char* ) stackData; + +#ifdef _DEBUG + // RakAssert( data ); +#endif + //memset(data, 0, 32); + copyData = true; +} + +BitStream::BitStream( const unsigned int initialBytesToAllocate ) +{ + numberOfBitsUsed = 0; + readOffset = 0; + if (initialBytesToAllocate <= BITSTREAM_STACK_ALLOCATION_SIZE) + { + data = ( unsigned char* ) stackData; + numberOfBitsAllocated = BITSTREAM_STACK_ALLOCATION_SIZE * 8; + } + else + { + data = ( unsigned char* ) rakMalloc_Ex( (size_t) initialBytesToAllocate, _FILE_AND_LINE_ ); + numberOfBitsAllocated = initialBytesToAllocate << 3; + } +#ifdef _DEBUG + RakAssert( data ); +#endif + // memset(data, 0, initialBytesToAllocate); + copyData = true; +} + +BitStream::BitStream( unsigned char* _data, const unsigned int lengthInBytes, bool _copyData ) +{ + numberOfBitsUsed = lengthInBytes << 3; + readOffset = 0; + copyData = _copyData; + numberOfBitsAllocated = lengthInBytes << 3; + + if ( copyData ) + { + if ( lengthInBytes > 0 ) + { + if (lengthInBytes < BITSTREAM_STACK_ALLOCATION_SIZE) + { + data = ( unsigned char* ) stackData; + numberOfBitsAllocated = BITSTREAM_STACK_ALLOCATION_SIZE << 3; + } + else + { + data = ( unsigned char* ) rakMalloc_Ex( (size_t) lengthInBytes, _FILE_AND_LINE_ ); + } +#ifdef _DEBUG + RakAssert( data ); +#endif + memcpy( data, _data, (size_t) lengthInBytes ); + } + else + data = 0; + } + else + data = ( unsigned char* ) _data; +} + +// Use this if you pass a pointer copy to the constructor (_copyData==false) and want to overallocate to prevent reallocation +void BitStream::SetNumberOfBitsAllocated( const BitSize_t lengthInBits ) +{ +#ifdef _DEBUG + RakAssert( lengthInBits >= ( BitSize_t ) numberOfBitsAllocated ); +#endif + numberOfBitsAllocated = lengthInBits; +} + +BitStream::~BitStream() +{ + if ( copyData && numberOfBitsAllocated > (BITSTREAM_STACK_ALLOCATION_SIZE << 3)) + rakFree_Ex( data , _FILE_AND_LINE_ ); // Use realloc and free so we are more efficient than delete and new for resizing +} + +void BitStream::Reset( void ) +{ + // Note: Do NOT reallocate memory because BitStream is used + // in places to serialize/deserialize a buffer. Reallocation + // is a dangerous operation (may result in leaks). + + if ( numberOfBitsUsed > 0 ) + { + // memset(data, 0, BITS_TO_BYTES(numberOfBitsUsed)); + } + + // Don't free memory here for speed efficiency + //free(data); // Use realloc and free so we are more efficient than delete and new for resizing + numberOfBitsUsed = 0; + + //numberOfBitsAllocated=8; + readOffset = 0; + + //data=(unsigned char*)rakMalloc_Ex(1, _FILE_AND_LINE_); + // if (numberOfBitsAllocated>0) + // memset(data, 0, BITS_TO_BYTES(numberOfBitsAllocated)); +} + +// Write an array or casted stream +void BitStream::Write( const char* inputByteArray, const unsigned int numberOfBytes ) +{ + if (numberOfBytes==0) + return; + + // Optimization: + if ((numberOfBitsUsed & 7) == 0) + { + AddBitsAndReallocate( BYTES_TO_BITS(numberOfBytes) ); + memcpy(data+BITS_TO_BYTES(numberOfBitsUsed), inputByteArray, (size_t) numberOfBytes); + numberOfBitsUsed+=BYTES_TO_BITS(numberOfBytes); + } + else + { + WriteBits( ( unsigned char* ) inputByteArray, numberOfBytes * 8, true ); + } + +} +void BitStream::Write( BitStream *bitStream) +{ + Write(bitStream, bitStream->GetNumberOfBitsUsed()-bitStream->GetReadOffset()); +} +void BitStream::Write( BitStream *bitStream, BitSize_t numberOfBits ) +{ + AddBitsAndReallocate( numberOfBits ); + BitSize_t numberOfBitsMod8; + + if ((bitStream->GetReadOffset()&7)==0 && (numberOfBitsUsed&7)==0) + { + int readOffsetBytes=bitStream->GetReadOffset()/8; + int numBytes=numberOfBits/8; + memcpy(data + (numberOfBitsUsed >> 3), bitStream->GetData()+readOffsetBytes, numBytes); + numberOfBits-=BYTES_TO_BITS(numBytes); + bitStream->SetReadOffset(BYTES_TO_BITS(numBytes+readOffsetBytes)); + numberOfBitsUsed+=BYTES_TO_BITS(numBytes); + } + + while (numberOfBits-->0 && bitStream->readOffset + 1 <= bitStream->numberOfBitsUsed) + { + numberOfBitsMod8 = numberOfBitsUsed & 7; + if ( numberOfBitsMod8 == 0 ) + { + // New byte + if (bitStream->data[ bitStream->readOffset >> 3 ] & ( 0x80 >> ( bitStream->readOffset & 7 ) ) ) + { + // Write 1 + data[ numberOfBitsUsed >> 3 ] = 0x80; + } + else + { + // Write 0 + data[ numberOfBitsUsed >> 3 ] = 0; + } + + } + else + { + // Existing byte + if (bitStream->data[ bitStream->readOffset >> 3 ] & ( 0x80 >> ( bitStream->readOffset & 7 ) ) ) + data[ numberOfBitsUsed >> 3 ] |= 0x80 >> ( numberOfBitsMod8 ); // Set the bit to 1 + // else 0, do nothing + } + + bitStream->readOffset++; + numberOfBitsUsed++; + } +} +void BitStream::Write( BitStream &bitStream, BitSize_t numberOfBits ) +{ + Write(&bitStream, numberOfBits); +} +void BitStream::Write( BitStream &bitStream ) +{ + Write(&bitStream); +} +bool BitStream::Read( BitStream *bitStream, BitSize_t numberOfBits ) +{ + if (GetNumberOfUnreadBits() < numberOfBits) + return false; + bitStream->Write(this, numberOfBits); + return true; +} +bool BitStream::Read( BitStream *bitStream ) +{ + bitStream->Write(this); + return true; +} +bool BitStream::Read( BitStream &bitStream, BitSize_t numberOfBits ) +{ + if (GetNumberOfUnreadBits() < numberOfBits) + return false; + bitStream.Write(this, numberOfBits); + return true; +} +bool BitStream::Read( BitStream &bitStream ) +{ + bitStream.Write(this); + return true; +} + +// Read an array or casted stream +bool BitStream::Read( char* outByteArray, const unsigned int numberOfBytes ) +{ + // Optimization: + if ((readOffset & 7) == 0) + { + if ( readOffset + ( numberOfBytes << 3 ) > numberOfBitsUsed ) + return false; + + // Write the data + memcpy( outByteArray, data + ( readOffset >> 3 ), (size_t) numberOfBytes ); + + readOffset += numberOfBytes << 3; + return true; + } + else + { + return ReadBits( ( unsigned char* ) outByteArray, numberOfBytes * 8 ); + } +} + +// Sets the read pointer back to the beginning of your data. +void BitStream::ResetReadPointer( void ) +{ + readOffset = 0; +} + +// Sets the write pointer back to the beginning of your data. +void BitStream::ResetWritePointer( void ) +{ + numberOfBitsUsed = 0; +} + +// Write a 0 +void BitStream::Write0( void ) +{ + AddBitsAndReallocate( 1 ); + + // New bytes need to be zeroed + if ( ( numberOfBitsUsed & 7 ) == 0 ) + data[ numberOfBitsUsed >> 3 ] = 0; + + numberOfBitsUsed++; +} + +// Write a 1 +void BitStream::Write1( void ) +{ + AddBitsAndReallocate( 1 ); + + BitSize_t numberOfBitsMod8 = numberOfBitsUsed & 7; + + if ( numberOfBitsMod8 == 0 ) + data[ numberOfBitsUsed >> 3 ] = 0x80; + else + data[ numberOfBitsUsed >> 3 ] |= 0x80 >> ( numberOfBitsMod8 ); // Set the bit to 1 + + numberOfBitsUsed++; +} + +// Returns true if the next data read is a 1, false if it is a 0 +bool BitStream::ReadBit( void ) +{ + bool result = ( data[ readOffset >> 3 ] & ( 0x80 >> ( readOffset & 7 ) ) ) !=0; + readOffset++; + return result; +} + +// Align the bitstream to the byte boundary and then write the specified number of bits. +// This is faster than WriteBits but wastes the bits to do the alignment and requires you to call +// SetReadToByteAlignment at the corresponding read position +void BitStream::WriteAlignedBytes( const unsigned char* inByteArray, const unsigned int numberOfBytesToWrite ) +{ + AlignWriteToByteBoundary(); + Write((const char*) inByteArray, numberOfBytesToWrite); +} +void BitStream::EndianSwapBytes( int byteOffset, int length ) +{ + if (DoEndianSwap()) + { + ReverseBytesInPlace(data+byteOffset, length); + } +} +/// Aligns the bitstream, writes inputLength, and writes input. Won't write beyond maxBytesToWrite +void BitStream::WriteAlignedBytesSafe( const char *inByteArray, const unsigned int inputLength, const unsigned int maxBytesToWrite ) +{ + if (inByteArray==0 || inputLength==0) + { + WriteCompressed((unsigned int)0); + return; + } + WriteCompressed(inputLength); + WriteAlignedBytes((const unsigned char*) inByteArray, inputLength < maxBytesToWrite ? inputLength : maxBytesToWrite); +} + +// Read bits, starting at the next aligned bits. Note that the modulus 8 starting offset of the +// sequence must be the same as was used with WriteBits. This will be a problem with packet coalescence +// unless you byte align the coalesced packets. +bool BitStream::ReadAlignedBytes( unsigned char* inOutByteArray, const unsigned int numberOfBytesToRead ) +{ +#ifdef _DEBUG + RakAssert( numberOfBytesToRead > 0 ); +#endif + + if ( numberOfBytesToRead <= 0 ) + return false; + + // Byte align + AlignReadToByteBoundary(); + + if ( readOffset + ( numberOfBytesToRead << 3 ) > numberOfBitsUsed ) + return false; + + // Write the data + memcpy( inOutByteArray, data + ( readOffset >> 3 ), (size_t) numberOfBytesToRead ); + + readOffset += numberOfBytesToRead << 3; + + return true; +} +bool BitStream::ReadAlignedBytesSafe( char *inOutByteArray, int &inputLength, const int maxBytesToRead ) +{ + return ReadAlignedBytesSafe(inOutByteArray,(unsigned int&) inputLength,(unsigned int)maxBytesToRead); +} +bool BitStream::ReadAlignedBytesSafe( char *inOutByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ) +{ + if (ReadCompressed(inputLength)==false) + return false; + if (inputLength > maxBytesToRead) + inputLength=maxBytesToRead; + if (inputLength==0) + return true; + return ReadAlignedBytes((unsigned char*) inOutByteArray, inputLength); +} +bool BitStream::ReadAlignedBytesSafeAlloc( char **outByteArray, int &inputLength, const unsigned int maxBytesToRead ) +{ + return ReadAlignedBytesSafeAlloc(outByteArray,(unsigned int&) inputLength, maxBytesToRead); +} +bool BitStream::ReadAlignedBytesSafeAlloc( char ** outByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ) +{ + rakFree_Ex(*outByteArray, _FILE_AND_LINE_ ); + *outByteArray=0; + if (ReadCompressed(inputLength)==false) + return false; + if (inputLength > maxBytesToRead) + inputLength=maxBytesToRead; + if (inputLength==0) + return true; + *outByteArray = (char*) rakMalloc_Ex( (size_t) inputLength, _FILE_AND_LINE_ ); + return ReadAlignedBytes((unsigned char*) *outByteArray, inputLength); +} + +// Write numberToWrite bits from the input source +void BitStream::WriteBits( const unsigned char* inByteArray, BitSize_t numberOfBitsToWrite, const bool rightAlignedBits ) +{ +// if (numberOfBitsToWrite<=0) +// return; + + AddBitsAndReallocate( numberOfBitsToWrite ); + + const BitSize_t numberOfBitsUsedMod8 = numberOfBitsUsed & 7; + + // If currently aligned and numberOfBits is a multiple of 8, just memcpy for speed + if (numberOfBitsUsedMod8==0 && (numberOfBitsToWrite&7)==0) + { + memcpy( data + ( numberOfBitsUsed >> 3 ), inByteArray, numberOfBitsToWrite>>3); + numberOfBitsUsed+=numberOfBitsToWrite; + return; + } + + unsigned char dataByte; + const unsigned char* inputPtr=inByteArray; + + // Faster to put the while at the top surprisingly enough + while ( numberOfBitsToWrite > 0 ) + //do + { + dataByte = *( inputPtr++ ); + + if ( numberOfBitsToWrite < 8 && rightAlignedBits ) // rightAlignedBits means in the case of a partial byte, the bits are aligned from the right (bit 0) rather than the left (as in the normal internal representation) + dataByte <<= 8 - numberOfBitsToWrite; // shift left to get the bits on the left, as in our internal representation + + // Writing to a new byte each time + if ( numberOfBitsUsedMod8 == 0 ) + * ( data + ( numberOfBitsUsed >> 3 ) ) = dataByte; + else + { + // Copy over the new data. + *( data + ( numberOfBitsUsed >> 3 ) ) |= dataByte >> ( numberOfBitsUsedMod8 ); // First half + + if ( 8 - ( numberOfBitsUsedMod8 ) < 8 && 8 - ( numberOfBitsUsedMod8 ) < numberOfBitsToWrite ) // If we didn't write it all out in the first half (8 - (numberOfBitsUsed%8) is the number we wrote in the first half) + { + *( data + ( numberOfBitsUsed >> 3 ) + 1 ) = (unsigned char) ( dataByte << ( 8 - ( numberOfBitsUsedMod8 ) ) ); // Second half (overlaps byte boundary) + } + } + + if ( numberOfBitsToWrite >= 8 ) + { + numberOfBitsUsed += 8; + numberOfBitsToWrite -= 8; + } + else + { + numberOfBitsUsed += numberOfBitsToWrite; + numberOfBitsToWrite=0; + } + } + // } while(numberOfBitsToWrite>0); +} + +// Set the stream to some initial data. For internal use +void BitStream::SetData( unsigned char *inByteArray ) +{ + data=inByteArray; + copyData=false; +} + +// Assume the input source points to a native type, compress and write it +void BitStream::WriteCompressed( const unsigned char* inByteArray, + const unsigned int size, const bool unsignedData ) +{ + BitSize_t currentByte = ( size >> 3 ) - 1; // PCs + + unsigned char byteMatch; + + if ( unsignedData ) + { + byteMatch = 0; + } + + else + { + byteMatch = 0xFF; + } + + // Write upper bytes with a single 1 + // From high byte to low byte, if high byte is a byteMatch then write a 1 bit. Otherwise write a 0 bit and then write the remaining bytes + while ( currentByte > 0 ) + { + if ( inByteArray[ currentByte ] == byteMatch ) // If high byte is byteMatch (0 of 0xff) then it would have the same value shifted + { + bool b = true; + Write( b ); + } + else + { + // Write the remainder of the data after writing 0 + bool b = false; + Write( b ); + + WriteBits( inByteArray, ( currentByte + 1 ) << 3, true ); + // currentByte--; + + + return ; + } + + currentByte--; + } + + // If the upper half of the last byte is a 0 (positive) or 16 (negative) then write a 1 and the remaining 4 bits. Otherwise write a 0 and the 8 bites. + if ( ( unsignedData && ( ( *( inByteArray + currentByte ) ) & 0xF0 ) == 0x00 ) || + ( unsignedData == false && ( ( *( inByteArray + currentByte ) ) & 0xF0 ) == 0xF0 ) ) + { + bool b = true; + Write( b ); + WriteBits( inByteArray + currentByte, 4, true ); + } + + else + { + bool b = false; + Write( b ); + WriteBits( inByteArray + currentByte, 8, true ); + } +} + +// Read numberOfBitsToRead bits to the output source +// alignBitsToRight should be set to true to convert internal bitstream data to userdata +// It should be false if you used WriteBits with rightAlignedBits false +bool BitStream::ReadBits( unsigned char *inOutByteArray, BitSize_t numberOfBitsToRead, const bool alignBitsToRight ) +{ +#ifdef _DEBUG + // RakAssert( numberOfBitsToRead > 0 ); +#endif + if (numberOfBitsToRead<=0) + return false; + + if ( readOffset + numberOfBitsToRead > numberOfBitsUsed ) + return false; + + + const BitSize_t readOffsetMod8 = readOffset & 7; + + // If currently aligned and numberOfBits is a multiple of 8, just memcpy for speed + if (readOffsetMod8==0 && (numberOfBitsToRead&7)==0) + { + memcpy( inOutByteArray, data + ( readOffset >> 3 ), numberOfBitsToRead>>3); + readOffset+=numberOfBitsToRead; + return true; + } + + + + BitSize_t offset = 0; + + memset( inOutByteArray, 0, (size_t) BITS_TO_BYTES( numberOfBitsToRead ) ); + + while ( numberOfBitsToRead > 0 ) + { + *( inOutByteArray + offset ) |= *( data + ( readOffset >> 3 ) ) << ( readOffsetMod8 ); // First half + + if ( readOffsetMod8 > 0 && numberOfBitsToRead > 8 - ( readOffsetMod8 ) ) // If we have a second half, we didn't read enough bytes in the first half + *( inOutByteArray + offset ) |= *( data + ( readOffset >> 3 ) + 1 ) >> ( 8 - ( readOffsetMod8 ) ); // Second half (overlaps byte boundary) + + if (numberOfBitsToRead>=8) + { + numberOfBitsToRead -= 8; + readOffset += 8; + offset++; + } + else + { + int neg = (int) numberOfBitsToRead - 8; + + if ( neg < 0 ) // Reading a partial byte for the last byte, shift right so the data is aligned on the right + { + + if ( alignBitsToRight ) + * ( inOutByteArray + offset ) >>= -neg; + + readOffset += 8 + neg; + } + else + readOffset += 8; + + offset++; + + numberOfBitsToRead=0; + } + } + + return true; +} + +// Assume the input source points to a compressed native type. Decompress and read it +bool BitStream::ReadCompressed( unsigned char* inOutByteArray, + const unsigned int size, const bool unsignedData ) +{ + unsigned int currentByte = ( size >> 3 ) - 1; + + + unsigned char byteMatch, halfByteMatch; + + if ( unsignedData ) + { + byteMatch = 0; + halfByteMatch = 0; + } + + else + { + byteMatch = 0xFF; + halfByteMatch = 0xF0; + } + + // Upper bytes are specified with a single 1 if they match byteMatch + // From high byte to low byte, if high byte is a byteMatch then write a 1 bit. Otherwise write a 0 bit and then write the remaining bytes + while ( currentByte > 0 ) + { + // If we read a 1 then the data is byteMatch. + + bool b; + + if ( Read( b ) == false ) + return false; + + if ( b ) // Check that bit + { + inOutByteArray[ currentByte ] = byteMatch; + currentByte--; + } + else + { + // Read the rest of the bytes + + if ( ReadBits( inOutByteArray, ( currentByte + 1 ) << 3 ) == false ) + return false; + + return true; + } + } + + // All but the first bytes are byteMatch. If the upper half of the last byte is a 0 (positive) or 16 (negative) then what we read will be a 1 and the remaining 4 bits. + // Otherwise we read a 0 and the 8 bytes + //RakAssert(readOffset+1 <=numberOfBitsUsed); // If this assert is hit the stream wasn't long enough to read from + if ( readOffset + 1 > numberOfBitsUsed ) + return false; + + bool b=false; + + if ( Read( b ) == false ) + return false; + + if ( b ) // Check that bit + { + + if ( ReadBits( inOutByteArray + currentByte, 4 ) == false ) + return false; + + inOutByteArray[ currentByte ] |= halfByteMatch; // We have to set the high 4 bits since these are set to 0 by ReadBits + } + else + { + if ( ReadBits( inOutByteArray + currentByte, 8 ) == false ) + return false; + } + + return true; +} + +// Reallocates (if necessary) in preparation of writing numberOfBitsToWrite +void BitStream::AddBitsAndReallocate( const BitSize_t numberOfBitsToWrite ) +{ + BitSize_t newNumberOfBitsAllocated = numberOfBitsToWrite + numberOfBitsUsed; + + if ( numberOfBitsToWrite + numberOfBitsUsed > 0 && ( ( numberOfBitsAllocated - 1 ) >> 3 ) < ( ( newNumberOfBitsAllocated - 1 ) >> 3 ) ) // If we need to allocate 1 or more new bytes + { +#ifdef _DEBUG + // If this assert hits then we need to specify true for the third parameter in the constructor + // It needs to reallocate to hold all the data and can't do it unless we allocated to begin with + // Often hits if you call Write or Serialize on a read-only bitstream + RakAssert( copyData == true ); +#endif + + // Less memory efficient but saves on news and deletes + /// Cap to 1 meg buffer to save on huge allocations + newNumberOfBitsAllocated = ( numberOfBitsToWrite + numberOfBitsUsed ) * 2; + if (newNumberOfBitsAllocated - ( numberOfBitsToWrite + numberOfBitsUsed ) > 1048576 ) + newNumberOfBitsAllocated = numberOfBitsToWrite + numberOfBitsUsed + 1048576; + + // BitSize_t newByteOffset = BITS_TO_BYTES( numberOfBitsAllocated ); + // Use realloc and free so we are more efficient than delete and new for resizing + BitSize_t amountToAllocate = BITS_TO_BYTES( newNumberOfBitsAllocated ); + if (data==(unsigned char*)stackData) + { + if (amountToAllocate > BITSTREAM_STACK_ALLOCATION_SIZE) + { + data = ( unsigned char* ) rakMalloc_Ex( (size_t) amountToAllocate, _FILE_AND_LINE_ ); + RakAssert(data); + + // need to copy the stack data over to our new memory area too + memcpy ((void *)data, (void *)stackData, (size_t) BITS_TO_BYTES( numberOfBitsAllocated )); + } + } + else + { + data = ( unsigned char* ) rakRealloc_Ex( data, (size_t) amountToAllocate, _FILE_AND_LINE_ ); + } + +#ifdef _DEBUG + RakAssert( data ); // Make sure realloc succeeded +#endif + // memset(data+newByteOffset, 0, ((newNumberOfBitsAllocated-1)>>3) - ((numberOfBitsAllocated-1)>>3)); // Set the new data block to 0 + } + + if ( newNumberOfBitsAllocated > numberOfBitsAllocated ) + numberOfBitsAllocated = newNumberOfBitsAllocated; +} +BitSize_t BitStream::GetNumberOfBitsAllocated(void) const +{ + return numberOfBitsAllocated; +} +void BitStream::PadWithZeroToByteLength( unsigned int bytes ) +{ + if (GetNumberOfBytesUsed() < bytes) + { + AlignWriteToByteBoundary(); + unsigned int numToWrite = bytes - GetNumberOfBytesUsed(); + AddBitsAndReallocate( BYTES_TO_BITS(numToWrite) ); + memset(data+BITS_TO_BYTES(numberOfBitsUsed), 0, (size_t) numToWrite); + numberOfBitsUsed+=BYTES_TO_BITS(numToWrite); + } +} + +/* +// Julius Goryavsky's version of Harley's algorithm. +// 17 elementary ops plus an indexed load, if the machine +// has "and not." + +int nlz10b(unsigned x) { + + static char table[64] = + {32,20,19, u, u,18, u, 7, 10,17, u, u,14, u, 6, u, + u, 9, u,16, u, u, 1,26, u,13, u, u,24, 5, u, u, + u,21, u, 8,11, u,15, u, u, u, u, 2,27, 0,25, u, + 22, u,12, u, u, 3,28, u, 23, u, 4,29, u, u,30,31}; + + x = x | (x >> 1); // Propagate leftmost + x = x | (x >> 2); // 1-bit to the right. + x = x | (x >> 4); + x = x | (x >> 8); + x = x & ~(x >> 16); + x = x*0xFD7049FF; // Activate this line or the following 3. +// x = (x << 9) - x; // Multiply by 511. +// x = (x << 11) - x; // Multiply by 2047. +// x = (x << 14) - x; // Multiply by 16383. + return table[x >> 26]; +} +*/ +int BitStream::NumberOfLeadingZeroes( int8_t x ) {return NumberOfLeadingZeroes((uint8_t)x);} +int BitStream::NumberOfLeadingZeroes( uint8_t x ) +{ + uint8_t y; + int n; + + n = 8; + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} +int BitStream::NumberOfLeadingZeroes( int16_t x ) {return NumberOfLeadingZeroes((uint16_t)x);} +int BitStream::NumberOfLeadingZeroes( uint16_t x ) +{ + uint16_t y; + int n; + + n = 16; + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} +int BitStream::NumberOfLeadingZeroes( int32_t x ) {return NumberOfLeadingZeroes((uint32_t)x);} +int BitStream::NumberOfLeadingZeroes( uint32_t x ) +{ + uint32_t y; + int n; + + n = 32; + y = x >>16; if (y != 0) {n = n -16; x = y;} + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} +int BitStream::NumberOfLeadingZeroes( int64_t x ) {return NumberOfLeadingZeroes((uint64_t)x);} +int BitStream::NumberOfLeadingZeroes( uint64_t x ) +{ + uint64_t y; + int n; + + n = 64; + y = x >>32; if (y != 0) {n = n -32; x = y;} + y = x >>16; if (y != 0) {n = n -16; x = y;} + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} + +// Should hit if reads didn't match writes +void BitStream::AssertStreamEmpty( void ) +{ + RakAssert( readOffset == numberOfBitsUsed ); +} +void BitStream::PrintBits( char *out ) const +{ + if ( numberOfBitsUsed <= 0 ) + { + strcpy(out, "No bits\n" ); + return; + } + + unsigned int strIndex=0; + for ( BitSize_t counter = 0; counter < BITS_TO_BYTES( numberOfBitsUsed ) && strIndex < 2000 ; counter++ ) + { + BitSize_t stop; + + if ( counter == ( numberOfBitsUsed - 1 ) >> 3 ) + stop = 8 - ( ( ( numberOfBitsUsed - 1 ) & 7 ) + 1 ); + else + stop = 0; + + for ( BitSize_t counter2 = 7; counter2 >= stop; counter2-- ) + { + if ( ( data[ counter ] >> counter2 ) & 1 ) + out[strIndex++]='1'; + else + out[strIndex++]='0'; + + if (counter2==0) + break; + } + + out[strIndex++]=' '; + } + + out[strIndex++]='\n'; + + out[strIndex++]=0; +} +void BitStream::PrintBits( void ) const +{ + char out[2048]; + PrintBits(out); + RAKNET_DEBUG_PRINTF("%s", out); +} +void BitStream::PrintHex( char *out ) const +{ + BitSize_t i; + for ( i=0; i < GetNumberOfBytesUsed(); i++) + { + sprintf(out+i*3, "%02x ", data[i]); + } +} +void BitStream::PrintHex( void ) const +{ + char out[2048]; + PrintHex(out); + RAKNET_DEBUG_PRINTF("%s", out); +} + +// Exposes the data for you to look at, like PrintBits does. +// Data will point to the stream. Returns the length in bits of the stream. +BitSize_t BitStream::CopyData( unsigned char** _data ) const +{ +#ifdef _DEBUG + RakAssert( numberOfBitsUsed > 0 ); +#endif + + *_data = (unsigned char*) rakMalloc_Ex( (size_t) BITS_TO_BYTES( numberOfBitsUsed ), _FILE_AND_LINE_ ); + memcpy( *_data, data, sizeof(unsigned char) * (size_t) ( BITS_TO_BYTES( numberOfBitsUsed ) ) ); + return numberOfBitsUsed; +} + +// Ignore data we don't intend to read +void BitStream::IgnoreBits( const BitSize_t numberOfBits ) +{ + readOffset += numberOfBits; +} + +void BitStream::IgnoreBytes( const unsigned int numberOfBytes ) +{ + IgnoreBits(BYTES_TO_BITS(numberOfBytes)); +} + +// Move the write pointer to a position on the array. Dangerous if you don't know what you are doing! +// Doesn't work with non-aligned data! +void BitStream::SetWriteOffset( const BitSize_t offset ) +{ + numberOfBitsUsed = offset; +} + +/* +BitSize_t BitStream::GetWriteOffset( void ) const +{ +return numberOfBitsUsed; +} + +// Returns the length in bits of the stream +BitSize_t BitStream::GetNumberOfBitsUsed( void ) const +{ +return GetWriteOffset(); +} + +// Returns the length in bytes of the stream +BitSize_t BitStream::GetNumberOfBytesUsed( void ) const +{ +return BITS_TO_BYTES( numberOfBitsUsed ); +} + +// Returns the number of bits into the stream that we have read +BitSize_t BitStream::GetReadOffset( void ) const +{ +return readOffset; +} + + +// Sets the read bit index +void BitStream::SetReadOffset( const BitSize_t newReadOffset ) +{ +readOffset=newReadOffset; +} + +// Returns the number of bits left in the stream that haven't been read +BitSize_t BitStream::GetNumberOfUnreadBits( void ) const +{ +return numberOfBitsUsed - readOffset; +} +// Exposes the internal data +unsigned char* BitStream::GetData( void ) const +{ +return data; +} + +*/ +// If we used the constructor version with copy data off, this makes sure it is set to on and the data pointed to is copied. +void BitStream::AssertCopyData( void ) +{ + if ( copyData == false ) + { + copyData = true; + + if ( numberOfBitsAllocated > 0 ) + { + unsigned char * newdata = ( unsigned char* ) rakMalloc_Ex( (size_t) BITS_TO_BYTES( numberOfBitsAllocated ), _FILE_AND_LINE_ ); +#ifdef _DEBUG + + RakAssert( data ); +#endif + + memcpy( newdata, data, (size_t) BITS_TO_BYTES( numberOfBitsAllocated ) ); + data = newdata; + } + + else + data = 0; + } +} +bool BitStream::IsNetworkOrderInternal(void) +{ + + + + + + static const bool isNetworkOrder=(htonl(12345) == 12345); + return isNetworkOrder; + +} +void BitStream::ReverseBytes(unsigned char *inByteArray, unsigned char *inOutByteArray, const unsigned int length) +{ + for (BitSize_t i=0; i < length; i++) + inOutByteArray[i]=inByteArray[length-i-1]; +} +void BitStream::ReverseBytesInPlace(unsigned char *inOutData,const unsigned int length) +{ + unsigned char temp; + BitSize_t i; + for (i=0; i < (length>>1); i++) + { + temp = inOutData[i]; + inOutData[i]=inOutData[length-i-1]; + inOutData[length-i-1]=temp; + } +} + +bool BitStream::Read(char *varString) +{ + return RakString::Deserialize(varString,this); +} +bool BitStream::Read(unsigned char *varString) +{ + return RakString::Deserialize((char*) varString,this); +} +void BitStream::WriteAlignedVar8(const char *inByteArray) +{ + RakAssert((numberOfBitsUsed&7)==0); + AddBitsAndReallocate(1*8); + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[0]; + numberOfBitsUsed+=1*8; +} +bool BitStream::ReadAlignedVar8(char *inOutByteArray) +{ + RakAssert((readOffset&7)==0); + if ( readOffset + 1*8 > numberOfBitsUsed ) + return false; + + inOutByteArray[0] = data[( readOffset >> 3 ) + 0]; + readOffset+=1*8; + return true; +} +void BitStream::WriteAlignedVar16(const char *inByteArray) +{ + RakAssert((numberOfBitsUsed&7)==0); + AddBitsAndReallocate(2*8); +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[1]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[0]; + } + else +#endif + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[0]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[1]; + } + + numberOfBitsUsed+=2*8; +} +bool BitStream::ReadAlignedVar16(char *inOutByteArray) +{ + RakAssert((readOffset&7)==0); + if ( readOffset + 2*8 > numberOfBitsUsed ) + return false; +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 1]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 0]; + } + else +#endif + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 0]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 1]; + } + + readOffset+=2*8; + return true; +} +void BitStream::WriteAlignedVar32(const char *inByteArray) +{ + RakAssert((numberOfBitsUsed&7)==0); + AddBitsAndReallocate(4*8); +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[3]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[2]; + data[( numberOfBitsUsed >> 3 ) + 2] = inByteArray[1]; + data[( numberOfBitsUsed >> 3 ) + 3] = inByteArray[0]; + } + else +#endif + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[0]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[1]; + data[( numberOfBitsUsed >> 3 ) + 2] = inByteArray[2]; + data[( numberOfBitsUsed >> 3 ) + 3] = inByteArray[3]; + } + + numberOfBitsUsed+=4*8; +} +bool BitStream::ReadAlignedVar32(char *inOutByteArray) +{ + RakAssert((readOffset&7)==0); + if ( readOffset + 4*8 > numberOfBitsUsed ) + return false; +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 3]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 2]; + inOutByteArray[2] = data[( readOffset >> 3 ) + 1]; + inOutByteArray[3] = data[( readOffset >> 3 ) + 0]; + } + else +#endif + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 0]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 1]; + inOutByteArray[2] = data[( readOffset >> 3 ) + 2]; + inOutByteArray[3] = data[( readOffset >> 3 ) + 3]; + } + + readOffset+=4*8; + return true; +} +bool BitStream::ReadFloat16( float &outFloat, float floatMin, float floatMax ) +{ + unsigned short percentile; + if (Read(percentile)) + { + RakAssert(floatMax>floatMin); + outFloat = floatMin + ((float) percentile / 65535.0f) * (floatMax-floatMin); + if (outFloatfloatMax) + outFloat=floatMax; + return true; + } + return false; +} +bool BitStream::SerializeFloat16(bool writeToBitstream, float &inOutFloat, float floatMin, float floatMax) +{ + if (writeToBitstream) + WriteFloat16(inOutFloat, floatMin, floatMax); + else + return ReadFloat16(inOutFloat, floatMin, floatMax); + return true; +} +void BitStream::WriteFloat16( float inOutFloat, float floatMin, float floatMax ) +{ + RakAssert(floatMax>floatMin); + if (inOutFloat>floatMax+.001) + { + RakAssert(inOutFloat<=floatMax+.001); + } + if (inOutFloat=floatMin-.001); + } + float percentile=65535.0f * (inOutFloat-floatMin)/(floatMax-floatMin); + if (percentile<0.0) + percentile=0.0; + if (percentile>65535.0f) + percentile=65535.0f; + Write((unsigned short)percentile); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // #if _MSC_VER < 1299 diff --git a/project/lib_projects/raknet/jni/RaknetSources/BitStream.h b/project/lib_projects/raknet/jni/RaknetSources/BitStream.h new file mode 100755 index 0000000..4a76f6a --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/BitStream.h @@ -0,0 +1,2032 @@ +/// \file BitStream.h +/// \brief This class allows you to write and read native types as a string of bits. +/// \details BitStream is used extensively throughout RakNet and is designed to be used by users as well. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// + +#if defined(_MSC_VER) && _MSC_VER < 1299 // VC6 doesn't support template specialization +#include "BitStream_NoTemplate.h" +#else + +#ifndef __BITSTREAM_H +#define __BITSTREAM_H + +#include "RakMemoryOverride.h" +#include "RakNetDefines.h" +#include "Export.h" +#include "RakNetTypes.h" +#include "RakString.h" +#include "RakWString.h" +#include "RakAssert.h" +#include +#include + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +// MSWin uses _copysign, others use copysign... +#ifndef _WIN32 +#define _copysign copysign +#endif + +namespace RakNet +{ + /// This class allows you to write and read native types as a string of bits. BitStream is used extensively throughout RakNet and is designed to be used by users as well. + /// \sa BitStreamSample.txt + class RAK_DLL_EXPORT BitStream + { + + public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(BitStream) + + /// Default Constructor + BitStream(); + + /// \brief Create the bitstream, with some number of bytes to immediately allocate. + /// \details There is no benefit to calling this, unless you know exactly how many bytes you need and it is greater than BITSTREAM_STACK_ALLOCATION_SIZE. + /// In that case all it does is save you one or more realloc calls. + /// \param[in] initialBytesToAllocate the number of bytes to pre-allocate. + BitStream( const unsigned int initialBytesToAllocate ); + + /// \brief Initialize the BitStream, immediately setting the data it contains to a predefined pointer. + /// \details Set \a _copyData to true if you want to make an internal copy of the data you are passing. Set it to false to just save a pointer to the data. + /// You shouldn't call Write functions with \a _copyData as false, as this will write to unallocated memory + /// 99% of the time you will use this function to cast Packet::data to a bitstream for reading, in which case you should write something as follows: + /// \code + /// RakNet::BitStream bs(packet->data, packet->length, false); + /// \endcode + /// \param[in] _data An array of bytes. + /// \param[in] lengthInBytes Size of the \a _data. + /// \param[in] _copyData true or false to make a copy of \a _data or not. + BitStream( unsigned char* _data, const unsigned int lengthInBytes, bool _copyData ); + + // Destructor + ~BitStream(); + + /// Resets the bitstream for reuse. + void Reset( void ); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutTemplateVar The value to write + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool Serialize(bool writeToBitstream, templateType &inOutTemplateVar); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutCurrentValue The current value to write + /// \param[in] lastValue The last value to compare against. Only used if \a writeToBitstream is true. + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue); + + /// \brief Bidirectional version of SerializeDelta when you don't know what the last value is, or there is no last value. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutCurrentValue The current value to write + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutTemplateVar The value to write + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeCompressed(bool writeToBitstream, templateType &inOutTemplateVar); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutCurrentValue The current value to write + /// \param[in] lastValue The last value to compare against. Only used if \a writeToBitstream is true. + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeCompressedDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue); + + /// \brief Save as SerializeCompressedDelta(templateType ¤tValue, const templateType &lastValue) when we have an unknown second parameter + /// \return true on data read. False on insufficient data in bitstream + template + bool SerializeCompressedDelta(bool writeToBitstream, templateType &inOutTemplateVar); + + /// \brief Bidirectional serialize/deserialize an array or casted stream or raw data. This does NOT do endian swapping. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutByteArray a byte buffer + /// \param[in] numberOfBytes the size of \a input in bytes + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + bool Serialize(bool writeToBitstream, char* inOutByteArray, const unsigned int numberOfBytes ); + + /// \brief Serialize a float into 2 bytes, spanning the range between \a floatMin and \a floatMax + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutFloat The float to write + /// \param[in] floatMin Predetermined minimum value of f + /// \param[in] floatMax Predetermined maximum value of f + bool SerializeFloat16(bool writeToBitstream, float &inOutFloat, float floatMin, float floatMax); + + /// Serialize one type casted to another (smaller) type, to save bandwidth + /// serializationType should be uint8_t, uint16_t, uint24_t, or uint32_t + /// Example: int num=53; SerializeCasted(true, num); would use 1 byte to write what would otherwise be an integer (4 or 8 bytes) + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] value The value to serialize + template + bool SerializeCasted( bool writeToBitstream, sourceType &value ); + + /// Given the minimum and maximum values for an integer type, figure out the minimum number of bits to represent the range + /// Then serialize only those bits + /// \note A static is used so that the required number of bits for (maximum-minimum) is only calculated once. This does require that \a minimum and \maximum are fixed values for a given line of code for the life of the program + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] value Integer value to write, which should be between \a minimum and \a maximum + /// \param[in] minimum Minimum value of \a value + /// \param[in] maximum Maximum value of \a value + /// \param[in] allowOutsideRange If true, all sends will take an extra bit, however value can deviate from outside \a minimum and \a maximum. If false, will assert if the value deviates + template + bool SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange=false ); + /// \param[in] requiredBits Primarily for internal use, called from above function() after calculating number of bits needed to represent maximum-minimum + template + bool SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange=false ); + + /// \brief Bidirectional serialize/deserialize a normalized 3D vector, using (at most) 4 bytes + 3 bits instead of 12-24 bytes. + /// \details Will further compress y or z axis aligned vectors. + /// Accurate to 1/32767.5. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template // templateType for this function must be a float or double + bool SerializeNormVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ); + + /// \brief Bidirectional serialize/deserialize a vector, using 10 bytes instead of 12. + /// \details Loses accuracy to about 3/10ths and only saves 2 bytes, so only use if accuracy is not important. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template // templateType for this function must be a float or double + bool SerializeVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ); + + /// \brief Bidirectional serialize/deserialize a normalized quaternion in 6 bytes + 4 bits instead of 16 bytes. Slightly lossy. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] w w + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template // templateType for this function must be a float or double + bool SerializeNormQuat(bool writeToBitstream, templateType &w, templateType &x, templateType &y, templateType &z); + + /// \brief Bidirectional serialize/deserialize an orthogonal matrix by creating a quaternion, and writing 3 components of the quaternion in 2 bytes each. + /// \details Use 6 bytes instead of 36 + /// Lossy, although the result is renormalized + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool SerializeOrthMatrix( + bool writeToBitstream, + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ); + + /// \brief Bidirectional serialize/deserialize numberToSerialize bits to/from the input. + /// \details Right aligned data means in the case of a partial byte, the bits are aligned + /// from the right (bit 0) rather than the left (as in the normal + /// internal representation) You would set this to true when + /// writing user data, and false when copying bitstream data, such + /// as writing one bitstream to another + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutByteArray The data + /// \param[in] numberOfBitsToSerialize The number of bits to write + /// \param[in] rightAlignedBits if true data will be right aligned + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + bool SerializeBits(bool writeToBitstream, unsigned char* inOutByteArray, const BitSize_t numberOfBitsToSerialize, const bool rightAlignedBits = true ); + + /// \brief Write any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] inTemplateVar The value to write + template + void Write(const templateType &inTemplateVar); + + /// \brief Write the dereferenced pointer to any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] inTemplateVar The value to write + template + void WritePtr(templateType *inTemplateVar); + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + void WriteDelta(const templateType ¤tValue, const templateType &lastValue); + + /// \brief WriteDelta when you don't know what the last value is, or there is no last value. + /// \param[in] currentValue The current value to write + template + void WriteDelta(const templateType ¤tValue); + + /// \brief Write any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// \param[in] inTemplateVar The value to write + template + void WriteCompressed(const templateType &inTemplateVar); + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + void WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue); + + /// \brief Save as WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue) when we have an unknown second parameter + template + void WriteCompressedDelta(const templateType ¤tValue); + + /// \brief Read any integral type from a bitstream. + /// \details Define __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool Read(templateType &outTemplateVar); + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// ReadDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool ReadDelta(templateType &outTemplateVar); + + /// \brief Read any integral type from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool ReadCompressed(templateType &outTemplateVar); + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// the current value will be updated. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// ReadCompressedDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool ReadCompressedDelta(templateType &outTemplateVar); + + /// \brief Read one bitstream to another. + /// \param[in] numberOfBits bits to read + /// \param bitStream the bitstream to read into from + /// \return true on success, false on failure. + bool Read( BitStream *bitStream, BitSize_t numberOfBits ); + bool Read( BitStream *bitStream ); + bool Read( BitStream &bitStream, BitSize_t numberOfBits ); + bool Read( BitStream &bitStream ); + + /// \brief Write an array or casted stream or raw data. This does NOT do endian swapping. + /// \param[in] inputByteArray a byte buffer + /// \param[in] numberOfBytes the size of \a input in bytes + void Write( const char* inputByteArray, const unsigned int numberOfBytes ); + + /// \brief Write one bitstream to another. + /// \param[in] numberOfBits bits to write + /// \param bitStream the bitstream to copy from + void Write( BitStream *bitStream, BitSize_t numberOfBits ); + void Write( BitStream *bitStream ); + void Write( BitStream &bitStream, BitSize_t numberOfBits ); + void Write( BitStream &bitStream );\ + + /// \brief Write a float into 2 bytes, spanning the range between \a floatMin and \a floatMax + /// \param[in] x The float to write + /// \param[in] floatMin Predetermined minimum value of f + /// \param[in] floatMax Predetermined maximum value of f + void WriteFloat16( float x, float floatMin, float floatMax ); + + /// Write one type serialized as another (smaller) type, to save bandwidth + /// serializationType should be uint8_t, uint16_t, uint24_t, or uint32_t + /// Example: int num=53; WriteCasted(num); would use 1 byte to write what would otherwise be an integer (4 or 8 bytes) + /// \param[in] value The value to write + template + void WriteCasted( const sourceType &value ); + + /// Given the minimum and maximum values for an integer type, figure out the minimum number of bits to represent the range + /// Then write only those bits + /// \note A static is used so that the required number of bits for (maximum-minimum) is only calculated once. This does require that \a minimum and \maximum are fixed values for a given line of code for the life of the program + /// \param[in] value Integer value to write, which should be between \a minimum and \a maximum + /// \param[in] minimum Minimum value of \a value + /// \param[in] maximum Maximum value of \a value + /// \param[in] allowOutsideRange If true, all sends will take an extra bit, however value can deviate from outside \a minimum and \a maximum. If false, will assert if the value deviates. This should match the corresponding value passed to Read(). + template + void WriteBitsFromIntegerRange( const templateType value, const templateType minimum, const templateType maximum, bool allowOutsideRange=false ); + /// \param[in] requiredBits Primarily for internal use, called from above function() after calculating number of bits needed to represent maximum-minimum + template + void WriteBitsFromIntegerRange( const templateType value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange=false ); + + /// \brief Write a normalized 3D vector, using (at most) 4 bytes + 3 bits instead of 12-24 bytes. + /// \details Will further compress y or z axis aligned vectors. + /// Accurate to 1/32767.5. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + template // templateType for this function must be a float or double + void WriteNormVector( templateType x, templateType y, templateType z ); + + /// \brief Write a vector, using 10 bytes instead of 12. + /// \details Loses accuracy to about 3/10ths and only saves 2 bytes, + /// so only use if accuracy is not important. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + template // templateType for this function must be a float or double + void WriteVector( templateType x, templateType y, templateType z ); + + /// \brief Write a normalized quaternion in 6 bytes + 4 bits instead of 16 bytes. Slightly lossy. + /// \param[in] w w + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + template // templateType for this function must be a float or double + void WriteNormQuat( templateType w, templateType x, templateType y, templateType z); + + /// \brief Write an orthogonal matrix by creating a quaternion, and writing 3 components of the quaternion in 2 bytes each. + /// \details Use 6 bytes instead of 36 + /// Lossy, although the result is renormalized + template // templateType for this function must be a float or double + void WriteOrthMatrix( + templateType m00, templateType m01, templateType m02, + templateType m10, templateType m11, templateType m12, + templateType m20, templateType m21, templateType m22 ); + + /// \brief Read an array or casted stream of byte. + /// \details The array is raw data. There is no automatic endian conversion with this function + /// \param[in] output The result byte array. It should be larger than @em numberOfBytes. + /// \param[in] numberOfBytes The number of byte to read + /// \return true on success false if there is some missing bytes. + bool Read( char* output, const unsigned int numberOfBytes ); + + /// \brief Read a float into 2 bytes, spanning the range between \a floatMin and \a floatMax + /// \param[in] outFloat The float to read + /// \param[in] floatMin Predetermined minimum value of f + /// \param[in] floatMax Predetermined maximum value of f + bool ReadFloat16( float &outFloat, float floatMin, float floatMax ); + + /// Read one type serialized to another (smaller) type, to save bandwidth + /// serializationType should be uint8_t, uint16_t, uint24_t, or uint32_t + /// Example: int num; ReadCasted(num); would read 1 bytefrom the stream, and put the value in an integer + /// \param[in] value The value to write + template + bool ReadCasted( sourceType &value ); + + /// Given the minimum and maximum values for an integer type, figure out the minimum number of bits to represent the range + /// Then read only those bits + /// \note A static is used so that the required number of bits for (maximum-minimum) is only calculated once. This does require that \a minimum and \maximum are fixed values for a given line of code for the life of the program + /// \param[in] value Integer value to read, which should be between \a minimum and \a maximum + /// \param[in] minimum Minimum value of \a value + /// \param[in] maximum Maximum value of \a value + /// \param[in] allowOutsideRange If true, all sends will take an extra bit, however value can deviate from outside \a minimum and \a maximum. If false, will assert if the value deviates. This should match the corresponding value passed to Write(). + template + bool ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange=false ); + /// \param[in] requiredBits Primarily for internal use, called from above function() after calculating number of bits needed to represent maximum-minimum + template + bool ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange=false ); + + /// \brief Read a normalized 3D vector, using (at most) 4 bytes + 3 bits instead of 12-24 bytes. + /// \details Will further compress y or z axis aligned vectors. + /// Accurate to 1/32767.5. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadNormVector( templateType &x, templateType &y, templateType &z ); + + /// \brief Read 3 floats or doubles, using 10 bytes, where those float or doubles comprise a vector. + /// \details Loses accuracy to about 3/10ths and only saves 2 bytes, + /// so only use if accuracy is not important. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadVector( templateType &x, templateType &y, templateType &z ); + + /// \brief Read a normalized quaternion in 6 bytes + 4 bits instead of 16 bytes. + /// \param[in] w w + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadNormQuat( templateType &w, templateType &x, templateType &y, templateType &z); + + /// \brief Read an orthogonal matrix from a quaternion, reading 3 components of the quaternion in 2 bytes each and extrapolatig the 4th. + /// \details Use 6 bytes instead of 36 + /// Lossy, although the result is renormalized + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadOrthMatrix( + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ); + + /// \brief Sets the read pointer back to the beginning of your data. + void ResetReadPointer( void ); + + /// \brief Sets the write pointer back to the beginning of your data. + void ResetWritePointer( void ); + + /// \brief This is good to call when you are done with the stream to make + /// sure you didn't leave any data left over void + void AssertStreamEmpty( void ); + + /// \brief RAKNET_DEBUG_PRINTF the bits in the stream. Great for debugging. + void PrintBits( char *out ) const; + void PrintBits( void ) const; + void PrintHex( char *out ) const; + void PrintHex( void ) const; + + /// \brief Ignore data we don't intend to read + /// \param[in] numberOfBits The number of bits to ignore + void IgnoreBits( const BitSize_t numberOfBits ); + + /// \brief Ignore data we don't intend to read + /// \param[in] numberOfBits The number of bytes to ignore + void IgnoreBytes( const unsigned int numberOfBytes ); + + /// \brief Move the write pointer to a position on the array. + /// \param[in] offset the offset from the start of the array. + /// \attention + /// \details Dangerous if you don't know what you are doing! + /// For efficiency reasons you can only write mid-stream if your data is byte aligned. + void SetWriteOffset( const BitSize_t offset ); + + /// \brief Returns the length in bits of the stream + inline BitSize_t GetNumberOfBitsUsed( void ) const {return GetWriteOffset();} + inline BitSize_t GetWriteOffset( void ) const {return numberOfBitsUsed;} + + /// \brief Returns the length in bytes of the stream + inline BitSize_t GetNumberOfBytesUsed( void ) const {return BITS_TO_BYTES( numberOfBitsUsed );} + + /// \brief Returns the number of bits into the stream that we have read + inline BitSize_t GetReadOffset( void ) const {return readOffset;} + + /// \brief Sets the read bit index + void SetReadOffset( const BitSize_t newReadOffset ) {readOffset=newReadOffset;} + + /// \brief Returns the number of bits left in the stream that haven't been read + inline BitSize_t GetNumberOfUnreadBits( void ) const {return numberOfBitsUsed - readOffset;} + + /// \brief Makes a copy of the internal data for you \a _data will point to + /// the stream. Partial bytes are left aligned. + /// \param[out] _data The allocated copy of GetData() + /// \return The length in bits of the stream. + BitSize_t CopyData( unsigned char** _data ) const; + + /// \internal + /// Set the stream to some initial data. + void SetData( unsigned char *inByteArray ); + + /// Gets the data that BitStream is writing to / reading from. + /// Partial bytes are left aligned. + /// \return A pointer to the internal state + inline unsigned char* GetData( void ) const {return data;} + + /// \brief Write numberToWrite bits from the input source. + /// \details Right aligned data means in the case of a partial byte, the bits are aligned + /// from the right (bit 0) rather than the left (as in the normal + /// internal representation) You would set this to true when + /// writing user data, and false when copying bitstream data, such + /// as writing one bitstream to another. + /// \param[in] inByteArray The data + /// \param[in] numberOfBitsToWrite The number of bits to write + /// \param[in] rightAlignedBits if true data will be right aligned + void WriteBits( const unsigned char* inByteArray, BitSize_t numberOfBitsToWrite, const bool rightAlignedBits = true ); + + /// \brief Align the bitstream to the byte boundary and then write the + /// specified number of bits. + /// \details This is faster than WriteBits but + /// wastes the bits to do the alignment and requires you to call + /// ReadAlignedBits at the corresponding read position. + /// \param[in] inByteArray The data + /// \param[in] numberOfBytesToWrite The size of input. + void WriteAlignedBytes( const unsigned char *inByteArray, const unsigned int numberOfBytesToWrite ); + + // Endian swap bytes already in the bitstream + void EndianSwapBytes( int byteOffset, int length ); + + /// \brief Aligns the bitstream, writes inputLength, and writes input. Won't write beyond maxBytesToWrite + /// \param[in] inByteArray The data + /// \param[in] inputLength The size of input. + /// \param[in] maxBytesToWrite Max bytes to write + void WriteAlignedBytesSafe( const char *inByteArray, const unsigned int inputLength, const unsigned int maxBytesToWrite ); + + /// \brief Read bits, starting at the next aligned bits. + /// \details Note that the modulus 8 starting offset of the sequence must be the same as + /// was used with WriteBits. This will be a problem with packet + /// coalescence unless you byte align the coalesced packets. + /// \param[in] inOutByteArray The byte array larger than @em numberOfBytesToRead + /// \param[in] numberOfBytesToRead The number of byte to read from the internal state + /// \return true if there is enough byte. + bool ReadAlignedBytes( unsigned char *inOutByteArray, const unsigned int numberOfBytesToRead ); + + /// \brief Reads what was written by WriteAlignedBytesSafe. + /// \param[in] inOutByteArray The data + /// \param[in] maxBytesToRead Maximum number of bytes to read + /// \return true on success, false on failure. + bool ReadAlignedBytesSafe( char *inOutByteArray, int &inputLength, const int maxBytesToRead ); + bool ReadAlignedBytesSafe( char *inOutByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ); + + /// \brief Same as ReadAlignedBytesSafe() but allocates the memory for you using new, rather than assuming it is safe to write to + /// \param[in] outByteArray outByteArray will be deleted if it is not a pointer to 0 + /// \return true on success, false on failure. + bool ReadAlignedBytesSafeAlloc( char **outByteArray, int &inputLength, const unsigned int maxBytesToRead ); + bool ReadAlignedBytesSafeAlloc( char **outByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ); + + /// \brief Align the next write and/or read to a byte boundary. + /// \details This can be used to 'waste' bits to byte align for efficiency reasons It + /// can also be used to force coalesced bitstreams to start on byte + /// boundaries so so WriteAlignedBits and ReadAlignedBits both + /// calculate the same offset when aligning. + inline void AlignWriteToByteBoundary( void ) {numberOfBitsUsed += 8 - ( (( numberOfBitsUsed - 1 ) & 7) + 1 );} + + /// \brief Align the next write and/or read to a byte boundary. + /// \details This can be used to 'waste' bits to byte align for efficiency reasons It + /// can also be used to force coalesced bitstreams to start on byte + /// boundaries so so WriteAlignedBits and ReadAlignedBits both + /// calculate the same offset when aligning. + inline void AlignReadToByteBoundary( void ) {readOffset += 8 - ( (( readOffset - 1 ) & 7 ) + 1 );} + + /// \brief Read \a numberOfBitsToRead bits to the output source. + /// \details alignBitsToRight should be set to true to convert internal + /// bitstream data to userdata. It should be false if you used + /// WriteBits with rightAlignedBits false + /// \param[in] inOutByteArray The resulting bits array + /// \param[in] numberOfBitsToRead The number of bits to read + /// \param[in] alignBitsToRight if true bits will be right aligned. + /// \return true if there is enough bits to read + bool ReadBits( unsigned char *inOutByteArray, BitSize_t numberOfBitsToRead, const bool alignBitsToRight = true ); + + /// \brief Write a 0 + void Write0( void ); + + /// \brief Write a 1 + void Write1( void ); + + /// \brief Reads 1 bit and returns true if that bit is 1 and false if it is 0. + bool ReadBit( void ); + + /// \brief If we used the constructor version with copy data off, this + /// *makes sure it is set to on and the data pointed to is copied. + void AssertCopyData( void ); + + /// \brief Use this if you pass a pointer copy to the constructor + /// *(_copyData==false) and want to overallocate to prevent + /// reallocation. + void SetNumberOfBitsAllocated( const BitSize_t lengthInBits ); + + /// \brief Reallocates (if necessary) in preparation of writing numberOfBitsToWrite + void AddBitsAndReallocate( const BitSize_t numberOfBitsToWrite ); + + /// \internal + /// \return How many bits have been allocated internally + BitSize_t GetNumberOfBitsAllocated(void) const; + + /// \brief Read strings, non reference. + bool Read(char *varString); + bool Read(unsigned char *varString); + + /// Write zeros until the bitstream is filled up to \a bytes + void PadWithZeroToByteLength( unsigned int bytes ); + + /// Get the number of leading zeros for a number + /// \param[in] x Number to test + static int NumberOfLeadingZeroes( uint8_t x ); + static int NumberOfLeadingZeroes( uint16_t x ); + static int NumberOfLeadingZeroes( uint32_t x ); + static int NumberOfLeadingZeroes( uint64_t x ); + static int NumberOfLeadingZeroes( int8_t x ); + static int NumberOfLeadingZeroes( int16_t x ); + static int NumberOfLeadingZeroes( int32_t x ); + static int NumberOfLeadingZeroes( int64_t x ); + + /// \internal Unrolled inner loop, for when performance is critical + void WriteAlignedVar8(const char *inByteArray); + /// \internal Unrolled inner loop, for when performance is critical + bool ReadAlignedVar8(char *inOutByteArray); + /// \internal Unrolled inner loop, for when performance is critical + void WriteAlignedVar16(const char *inByteArray); + /// \internal Unrolled inner loop, for when performance is critical + bool ReadAlignedVar16(char *inOutByteArray); + /// \internal Unrolled inner loop, for when performance is critical + void WriteAlignedVar32(const char *inByteArray); + /// \internal Unrolled inner loop, for when performance is critical + bool ReadAlignedVar32(char *inOutByteArray); + + inline void Write(const char * const inStringVar) + { + RakString::Serialize(inStringVar, this); + } + inline void Write(const wchar_t * const inStringVar) + { + RakWString::Serialize(inStringVar, this); + } + inline void Write(const unsigned char * const inTemplateVar) + { + Write((const char*)inTemplateVar); + } + inline void Write(char * const inTemplateVar) + { + Write((const char*)inTemplateVar); + } + inline void Write(unsigned char * const inTemplateVar) + { + Write((const char*)inTemplateVar); + } + inline void WriteCompressed(const char * const inStringVar) + { + RakString::SerializeCompressed(inStringVar,this,0,false); + } + inline void WriteCompressed(const wchar_t * const inStringVar) + { + RakWString::Serialize(inStringVar,this); + } + inline void WriteCompressed(const unsigned char * const inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + inline void WriteCompressed(char * const inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + inline void WriteCompressed(unsigned char * const inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + + /// ---- Member function template specialization declarations ---- + // Used for VC7 +#if defined(_MSC_VER) && _MSC_VER == 1300 + /// Write a bool to a bitstream. + /// \param[in] var The value to write + template <> + void Write(const bool &var); + + /// Write a systemAddress to a bitstream + /// \param[in] var The value to write + template <> + void Write(const SystemAddress &var); + + /// Write a uint24_t to a bitstream + /// \param[in] var The value to write + template <> + void Write(const uint24_t &var); + + /// Write a RakNetGUID to a bitsteam + /// \param[in] var The value to write + template <> + void Write(const RakNetGuid &var); + + /// Write a string to a bitstream + /// \param[in] var The value to write + template <> + void Write(const char* const &var); + template <> + void Write(const unsigned char* const &var); + template <> + void Write(char* const &var); + template <> + void Write(unsigned char* const &var); + template <> + void Write(const RakString &var); + template <> + void Write(const RakWString &var); + + /// \brief Write a systemAddress. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + void WriteDelta(const SystemAddress ¤tValue, const SystemAddress &lastValue); + + template <> + void WriteDelta(const uint24_t ¤tValue, const uint24_t &lastValue); + + template <> + void WriteDelta(const RakNetGUID ¤tValue, const RakNetGUID &lastValue); + + /// \brief Write a bool delta. + /// \details Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + void WriteDelta(const bool ¤tValue, const bool &lastValue); + + template <> + void WriteCompressed(const SystemAddress &var); + + template <> + void WriteCompressed(const uint24_t &var); + + template <> + void WriteCompressed(const RakNetGUID &var); + + template <> + void WriteCompressed(const bool &var); + + /// For values between -1 and 1 + template <> + void WriteCompressed(const float &var); + + /// For values between -1 and 1 + template <> + void WriteCompressed(const double &var); + + /// Compressed string + template <> + void WriteCompressed(const char* var); + template <> + void WriteCompressed(const unsigned char* var); + template <> + void WriteCompressed(char* var); + template <> + void WriteCompressed(unsigned char* var); + template <> + void WriteCompressed(const RakString &var); + template <> + void WriteCompressed(const RakWString &var); + + /// \brief Write a bool delta. + /// \details Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + void WriteCompressedDelta(const bool ¤tValue, const bool &lastValue); + + /// \brief Save as WriteCompressedDelta(bool currentValue, const templateType &lastValue) + /// when we have an unknown second bool + template <> + void WriteCompressedDelta(const bool ¤tValue); + + /// \brief Read a bool from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool Read(bool &var); + + /// \brief Read a systemAddress from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool Read(SystemAddress &var); + + template <> + bool Read(uint24_t &var); + + template <> + bool Read(RakNetGUID &var); + + /// \brief Read a String from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool Read(char *&var); + template <> + bool Read(wchar_t *&var); + template <> + bool Read(unsigned char *&var); + template <> + bool Read(RakString &var); + template <> + bool Read(RakWString &var); + + /// \brief Read a bool from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool ReadDelta(bool &var); + + template <> + bool ReadCompressed(SystemAddress &var); + + template <> + bool ReadCompressed(uint24_t &var); + + template <> + bool ReadCompressed(RakNetGUID &var); + + template <> + bool ReadCompressed(bool &var); + + template <> + bool ReadCompressed(float &var); + + /// For values between -1 and 1 + /// \return true on success, false on failure. + template <> + bool ReadCompressed(double &var); + + template <> + bool ReadCompressed(char* &var); + template <> + bool ReadCompressed(wchar_t* &var); + template <> + bool ReadCompressed(unsigned char *&var); + template <> + bool ReadCompressed(RakString &var); + template <> + bool ReadCompressed(RakWString &var); + + /// \brief Read a bool from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool ReadCompressedDelta(bool &var); +#endif + + inline static bool DoEndianSwap(void) { +#ifndef __BITSTREAM_NATIVE_END + return IsNetworkOrder()==false; +#else + return false; +#endif + } + inline static bool IsBigEndian(void) + { + return IsNetworkOrder(); + } + inline static bool IsNetworkOrder(void) {static const bool r = IsNetworkOrderInternal(); return r;} + // Not inline, won't compile on PC due to winsock include errors + static bool IsNetworkOrderInternal(void); + static void ReverseBytes(unsigned char *inByteArray, unsigned char *inOutByteArray, const unsigned int length); + static void ReverseBytesInPlace(unsigned char *inOutData,const unsigned int length); + + private: + + BitStream( const BitStream &invalid) { + (void) invalid; + RakAssert(0); + } + + /// \brief Assume the input source points to a native type, compress and write it. + void WriteCompressed( const unsigned char* inByteArray, const unsigned int size, const bool unsignedData ); + + /// \brief Assume the input source points to a compressed native type. Decompress and read it. + bool ReadCompressed( unsigned char* inOutByteArray, const unsigned int size, const bool unsignedData ); + + + BitSize_t numberOfBitsUsed; + + BitSize_t numberOfBitsAllocated; + + BitSize_t readOffset; + + unsigned char *data; + + /// true if the internal buffer is copy of the data passed to the constructor + bool copyData; + + /// BitStreams that use less than BITSTREAM_STACK_ALLOCATION_SIZE use the stack, rather than the heap to store data. It switches over if BITSTREAM_STACK_ALLOCATION_SIZE is exceeded + unsigned char stackData[BITSTREAM_STACK_ALLOCATION_SIZE]; + }; + + template + inline bool BitStream::Serialize(bool writeToBitstream, templateType &inOutTemplateVar) + { + if (writeToBitstream) + Write(inOutTemplateVar); + else + return Read(inOutTemplateVar); + return true; + } + + template + inline bool BitStream::SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue) + { + if (writeToBitstream) + WriteDelta(inOutCurrentValue, lastValue); + else + return ReadDelta(inOutCurrentValue); + return true; + } + + template + inline bool BitStream::SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue) + { + if (writeToBitstream) + WriteDelta(inOutCurrentValue); + else + return ReadDelta(inOutCurrentValue); + return true; + } + + template + inline bool BitStream::SerializeCompressed(bool writeToBitstream, templateType &inOutTemplateVar) + { + if (writeToBitstream) + WriteCompressed(inOutTemplateVar); + else + return ReadCompressed(inOutTemplateVar); + return true; + } + + template + inline bool BitStream::SerializeCompressedDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue) + { + if (writeToBitstream) + WriteCompressedDelta(inOutCurrentValue,lastValue); + else + return ReadCompressedDelta(inOutCurrentValue); + return true; + } +//Stoppedhere + template + inline bool BitStream::SerializeCompressedDelta(bool writeToBitstream, templateType &inOutCurrentValue) + { + if (writeToBitstream) + WriteCompressedDelta(inOutCurrentValue); + else + return ReadCompressedDelta(inOutCurrentValue); + return true; + } + + inline bool BitStream::Serialize(bool writeToBitstream, char* inOutByteArray, const unsigned int numberOfBytes ) + { + if (writeToBitstream) + Write(inOutByteArray, numberOfBytes); + else + return Read(inOutByteArray, numberOfBytes); + return true; + } + + template + bool BitStream::SerializeCasted( bool writeToBitstream, sourceType &value ) + { + if (writeToBitstream) WriteCasted(value); + else return ReadCasted(value); + return true; + } + + template + bool BitStream::SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange ) + { + int requiredBits=BYTES_TO_BITS(sizeof(templateType))-NumberOfLeadingZeroes(templateType(maximum-minimum)); + return SerializeBitsFromIntegerRange(writeToBitstream,value,minimum,maximum,requiredBits,allowOutsideRange); + } + template + bool BitStream::SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange ) + { + if (writeToBitstream) WriteBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + else return ReadBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + return true; + } + + template + inline bool BitStream::SerializeNormVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ) + { + if (writeToBitstream) + WriteNormVector(x,y,z); + else + return ReadNormVector(x,y,z); + return true; + } + + template + inline bool BitStream::SerializeVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ) + { + if (writeToBitstream) + WriteVector(x,y,z); + else + return ReadVector(x,y,z); + return true; + } + + template + inline bool BitStream::SerializeNormQuat(bool writeToBitstream, templateType &w, templateType &x, templateType &y, templateType &z) + { + if (writeToBitstream) + WriteNormQuat(w,x,y,z); + else + return ReadNormQuat(w,x,y,z); + return true; + } + + template + inline bool BitStream::SerializeOrthMatrix( + bool writeToBitstream, + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ) + { + if (writeToBitstream) + WriteOrthMatrix(m00,m01,m02,m10,m11,m12,m20,m21,m22); + else + return ReadOrthMatrix(m00,m01,m02,m10,m11,m12,m20,m21,m22); + return true; + } + + inline bool BitStream::SerializeBits(bool writeToBitstream, unsigned char* inOutByteArray, const BitSize_t numberOfBitsToSerialize, const bool rightAlignedBits ) + { + if (writeToBitstream) + WriteBits(inOutByteArray,numberOfBitsToSerialize,rightAlignedBits); + else + return ReadBits(inOutByteArray,numberOfBitsToSerialize,rightAlignedBits); + return true; + } + + template + inline void BitStream::Write(const templateType &inTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(inTemplateVar)==1) + WriteBits( ( unsigned char* ) & inTemplateVar, sizeof( templateType ) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*)&inTemplateVar, output, sizeof(templateType)); + WriteBits( ( unsigned char* ) output, sizeof(templateType) * 8, true ); + } + else +#endif + WriteBits( ( unsigned char* ) & inTemplateVar, sizeof(templateType) * 8, true ); + } + } + + template + inline void BitStream::WritePtr(templateType *inTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(templateType)==1) + WriteBits( ( unsigned char* ) inTemplateVar, sizeof( templateType ) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*) inTemplateVar, output, sizeof(templateType)); + WriteBits( ( unsigned char* ) output, sizeof(templateType) * 8, true ); + } + else +#endif + WriteBits( ( unsigned char* ) inTemplateVar, sizeof(templateType) * 8, true ); + } + } + + /// \brief Write a bool to a bitstream. + /// \param[in] inTemplateVar The value to write + template <> + inline void BitStream::Write(const bool &inTemplateVar) + { + if ( inTemplateVar ) + Write1(); + else + Write0(); + } + + + /// \brief Write a systemAddress to a bitstream. + /// \param[in] inTemplateVar The value to write + template <> + inline void BitStream::Write(const SystemAddress &inTemplateVar) + { + Write(inTemplateVar.GetIPVersion()); + if (inTemplateVar.GetIPVersion()==4) + { + // Hide the address so routers don't modify it + SystemAddress var2=inTemplateVar; + uint32_t binaryAddress=~inTemplateVar.address.addr4.sin_addr.s_addr; + // Don't endian swap the address or port + WriteBits((unsigned char*)&binaryAddress, sizeof(binaryAddress)*8, true); + unsigned short p = var2.GetPortNetworkOrder(); + WriteBits((unsigned char*)&p, sizeof(unsigned short)*8, true); + } + else + { +#if RAKNET_SUPPORT_IPV6==1 + // Don't endian swap + WriteBits((const unsigned char*) &inTemplateVar.address.addr6, sizeof(inTemplateVar.address.addr6)*8, true); +#endif + } + } + + template <> + inline void BitStream::Write(const uint24_t &inTemplateVar) + { + AlignWriteToByteBoundary(); + AddBitsAndReallocate(3*8); + + if (IsBigEndian()==false) + { + data[( numberOfBitsUsed >> 3 ) + 0] = ((char *)&inTemplateVar.val)[0]; + data[( numberOfBitsUsed >> 3 ) + 1] = ((char *)&inTemplateVar.val)[1]; + data[( numberOfBitsUsed >> 3 ) + 2] = ((char *)&inTemplateVar.val)[2]; + } + else + { + data[( numberOfBitsUsed >> 3 ) + 0] = ((char *)&inTemplateVar.val)[3]; + data[( numberOfBitsUsed >> 3 ) + 1] = ((char *)&inTemplateVar.val)[2]; + data[( numberOfBitsUsed >> 3 ) + 2] = ((char *)&inTemplateVar.val)[1]; + } + + numberOfBitsUsed+=3*8; + } + + template <> + inline void BitStream::Write(const RakNetGUID &inTemplateVar) + { + Write(inTemplateVar.g); + } + + /// \brief Write a string to a bitstream. + /// \param[in] var The value to write + template <> + inline void BitStream::Write(const RakString &inTemplateVar) + { + inTemplateVar.Serialize(this); + } + template <> + inline void BitStream::Write(const RakWString &inTemplateVar) + { + inTemplateVar.Serialize(this); + } + template <> + inline void BitStream::Write(const char * const &inStringVar) + { + RakString::Serialize(inStringVar, this); + } + template <> + inline void BitStream::Write(const wchar_t * const &inStringVar) + { + RakWString::Serialize(inStringVar, this); + } + template <> + inline void BitStream::Write(const unsigned char * const &inTemplateVar) + { + Write((const char*)inTemplateVar); + } + template <> + inline void BitStream::Write(char * const &inTemplateVar) + { + Write((const char*)inTemplateVar); + } + template <> + inline void BitStream::Write(unsigned char * const &inTemplateVar) + { + Write((const char*)inTemplateVar); + } + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + inline void BitStream::WriteDelta(const templateType ¤tValue, const templateType &lastValue) + { + if (currentValue==lastValue) + { + Write(false); + } + else + { + Write(true); + Write(currentValue); + } + } + + /// \brief Write a bool delta. Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + inline void BitStream::WriteDelta(const bool ¤tValue, const bool &lastValue) + { + (void) lastValue; + + Write(currentValue); + } + + /// \brief WriteDelta when you don't know what the last value is, or there is no last value. + /// \param[in] currentValue The current value to write + template + inline void BitStream::WriteDelta(const templateType ¤tValue) + { + Write(true); + Write(currentValue); + } + + /// \brief Write any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] inTemplateVar The value to write + template + inline void BitStream::WriteCompressed(const templateType &inTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(inTemplateVar)==1) + WriteCompressed( ( unsigned char* ) & inTemplateVar, sizeof( templateType ) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END +#ifdef _MSC_VER +#pragma warning(disable:4244) // '=' : conversion from 'unsigned long' to 'unsigned short', possible loss of data +#endif + + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*)&inTemplateVar, output, sizeof(templateType)); + WriteCompressed( ( unsigned char* ) output, sizeof(templateType) * 8, true ); + } + else +#endif + WriteCompressed( ( unsigned char* ) & inTemplateVar, sizeof(templateType) * 8, true ); + } + } + + template <> + inline void BitStream::WriteCompressed(const SystemAddress &inTemplateVar) + { + Write(inTemplateVar); + } + + template <> + inline void BitStream::WriteCompressed(const RakNetGUID &inTemplateVar) + { + Write(inTemplateVar); + } + + template <> + inline void BitStream::WriteCompressed(const uint24_t &var) + { + Write(var); + } + + template <> + inline void BitStream::WriteCompressed(const bool &inTemplateVar) + { + Write(inTemplateVar); + } + + /// For values between -1 and 1 + template <> + inline void BitStream::WriteCompressed(const float &inTemplateVar) + { + RakAssert(inTemplateVar > -1.01f && inTemplateVar < 1.01f); + float varCopy=inTemplateVar; + if (varCopy < -1.0f) + varCopy=-1.0f; + if (varCopy > 1.0f) + varCopy=1.0f; + Write((unsigned short)((varCopy+1.0f)*32767.5f)); + } + + /// For values between -1 and 1 + template <> + inline void BitStream::WriteCompressed(const double &inTemplateVar) + { + RakAssert(inTemplateVar > -1.01 && inTemplateVar < 1.01); + double varCopy=inTemplateVar; + if (varCopy < -1.0f) + varCopy=-1.0f; + if (varCopy > 1.0f) + varCopy=1.0f; + Write((uint32_t)((varCopy+1.0)*2147483648.0)); + } + + /// Compress the string + template <> + inline void BitStream::WriteCompressed(const RakString &inTemplateVar) + { + inTemplateVar.SerializeCompressed(this,0,false); + } + template <> + inline void BitStream::WriteCompressed(const RakWString &inTemplateVar) + { + inTemplateVar.Serialize(this); + } + template <> + inline void BitStream::WriteCompressed(const char * const &inStringVar) + { + RakString::SerializeCompressed(inStringVar,this,0,false); + } + template <> + inline void BitStream::WriteCompressed(const wchar_t * const &inStringVar) + { + RakWString::Serialize(inStringVar,this); + } + template <> + inline void BitStream::WriteCompressed(const unsigned char * const &inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + template <> + inline void BitStream::WriteCompressed(char * const &inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + template <> + inline void BitStream::WriteCompressed(unsigned char * const &inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + inline void BitStream::WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue) + { + if (currentValue==lastValue) + { + Write(false); + } + else + { + Write(true); + WriteCompressed(currentValue); + } + } + + /// \brief Write a bool delta. Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + inline void BitStream::WriteCompressedDelta(const bool ¤tValue, const bool &lastValue) + { + (void) lastValue; + + Write(currentValue); + } + + /// \brief Save as WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue) + /// when we have an unknown second parameter + template + inline void BitStream::WriteCompressedDelta(const templateType ¤tValue) + { + Write(true); + WriteCompressed(currentValue); + } + + /// \brief Save as WriteCompressedDelta(bool currentValue, const templateType &lastValue) + /// when we have an unknown second bool + template <> + inline void BitStream::WriteCompressedDelta(const bool ¤tValue) + { + Write(currentValue); + } + + /// \brief Read any integral type from a bitstream. Define __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::Read(templateType &outTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(outTemplateVar)==1) + return ReadBits( ( unsigned char* ) &outTemplateVar, sizeof(templateType) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END +#ifdef _MSC_VER +#pragma warning(disable:4244) // '=' : conversion from 'unsigned long' to 'unsigned short', possible loss of data +#endif + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + if (ReadBits( ( unsigned char* ) output, sizeof(templateType) * 8, true )) + { + ReverseBytes(output, (unsigned char*)&outTemplateVar, sizeof(templateType)); + return true; + } + return false; + } + else +#endif + return ReadBits( ( unsigned char* ) & outTemplateVar, sizeof(templateType) * 8, true ); + } + } + + /// \brief Read a bool from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::Read(bool &outTemplateVar) + { + if ( readOffset + 1 > numberOfBitsUsed ) + return false; + + if ( data[ readOffset >> 3 ] & ( 0x80 >> ( readOffset & 7 ) ) ) // Is it faster to just write it out here? + outTemplateVar = true; + else + outTemplateVar = false; + + // Has to be on a different line for Mac + readOffset++; + + return true; + } + + /// \brief Read a systemAddress from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::Read(SystemAddress &outTemplateVar) + { + unsigned char ipVersion; + Read(ipVersion); + if (ipVersion==4) + { + outTemplateVar.address.addr4.sin_family=AF_INET; + // Read(var.binaryAddress); + // Don't endian swap the address or port + uint32_t binaryAddress; + ReadBits( ( unsigned char* ) & binaryAddress, sizeof(binaryAddress) * 8, true ); + // Unhide the IP address, done to prevent routers from changing it + outTemplateVar.address.addr4.sin_addr.s_addr=~binaryAddress; + bool b = ReadBits(( unsigned char* ) & outTemplateVar.address.addr4.sin_port, sizeof(outTemplateVar.address.addr4.sin_port) * 8, true); + outTemplateVar.debugPort=ntohs(outTemplateVar.address.addr4.sin_port); + return b; + } + else + { +#if RAKNET_SUPPORT_IPV6==1 + bool b = ReadBits((unsigned char*) &outTemplateVar.address.addr6, sizeof(outTemplateVar.address.addr6)*8, true); + outTemplateVar.debugPort=ntohs(outTemplateVar.address.addr6.sin6_port); + return b; +#else + return false; +#endif + } + } + + template <> + inline bool BitStream::Read(uint24_t &outTemplateVar) + { + AlignReadToByteBoundary(); + if ( readOffset + 3*8 > numberOfBitsUsed ) + return false; + + if (IsBigEndian()==false) + { + ((char *)&outTemplateVar.val)[0]=data[ (readOffset >> 3) + 0]; + ((char *)&outTemplateVar.val)[1]=data[ (readOffset >> 3) + 1]; + ((char *)&outTemplateVar.val)[2]=data[ (readOffset >> 3) + 2]; + ((char *)&outTemplateVar.val)[3]=0; + } + else + { + + ((char *)&outTemplateVar.val)[3]=data[ (readOffset >> 3) + 0]; + ((char *)&outTemplateVar.val)[2]=data[ (readOffset >> 3) + 1]; + ((char *)&outTemplateVar.val)[1]=data[ (readOffset >> 3) + 2]; + ((char *)&outTemplateVar.val)[0]=0; + } + + readOffset+=3*8; + return true; + } + + template <> + inline bool BitStream::Read(RakNetGUID &outTemplateVar) + { + return Read(outTemplateVar.g); + } + + + template <> + inline bool BitStream::Read(RakString &outTemplateVar) + { + return outTemplateVar.Deserialize(this); + } + template <> + inline bool BitStream::Read(RakWString &outTemplateVar) + { + return outTemplateVar.Deserialize(this); + } + template <> + inline bool BitStream::Read(char *&varString) + { + return RakString::Deserialize(varString,this); + } + template <> + inline bool BitStream::Read(wchar_t *&varString) + { + return RakWString::Deserialize(varString,this); + } + template <> + inline bool BitStream::Read(unsigned char *&varString) + { + return RakString::Deserialize((char*) varString,this); + } + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// ReadDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::ReadDelta(templateType &outTemplateVar) + { + bool dataWritten; + bool success; + success=Read(dataWritten); + if (dataWritten) + success=Read(outTemplateVar); + return success; + } + + /// \brief Read a bool from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::ReadDelta(bool &outTemplateVar) + { + return Read(outTemplateVar); + } + + /// \brief Read any integral type from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::ReadCompressed(templateType &outTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(outTemplateVar)==1) + return ReadCompressed( ( unsigned char* ) &outTemplateVar, sizeof(templateType) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + if (ReadCompressed( ( unsigned char* ) output, sizeof(templateType) * 8, true )) + { + ReverseBytes(output, (unsigned char*)&outTemplateVar, sizeof(templateType)); + return true; + } + return false; + } + else +#endif + return ReadCompressed( ( unsigned char* ) & outTemplateVar, sizeof(templateType) * 8, true ); + } + } + + template <> + inline bool BitStream::ReadCompressed(SystemAddress &outTemplateVar) + { + return Read(outTemplateVar); + } + + template <> + inline bool BitStream::ReadCompressed(uint24_t &outTemplateVar) + { + return Read(outTemplateVar); + } + + template <> + inline bool BitStream::ReadCompressed(RakNetGUID &outTemplateVar) + { + return Read(outTemplateVar); + } + + template <> + inline bool BitStream::ReadCompressed(bool &outTemplateVar) + { + return Read(outTemplateVar); + } + + /// For values between -1 and 1 + template <> + inline bool BitStream::ReadCompressed(float &outTemplateVar) + { + unsigned short compressedFloat; + if (Read(compressedFloat)) + { + outTemplateVar = ((float)compressedFloat / 32767.5f - 1.0f); + return true; + } + return false; + } + + /// For values between -1 and 1 + template <> + inline bool BitStream::ReadCompressed(double &outTemplateVar) + { + uint32_t compressedFloat; + if (Read(compressedFloat)) + { + outTemplateVar = ((double)compressedFloat / 2147483648.0 - 1.0); + return true; + } + return false; + } + + /// For strings + template <> + inline bool BitStream::ReadCompressed(RakString &outTemplateVar) + { + return outTemplateVar.DeserializeCompressed(this,false); + } + template <> + inline bool BitStream::ReadCompressed(RakWString &outTemplateVar) + { + return outTemplateVar.Deserialize(this); + } + template <> + inline bool BitStream::ReadCompressed(char *&outTemplateVar) + { + return RakString::DeserializeCompressed(outTemplateVar,this,false); + } + template <> + inline bool BitStream::ReadCompressed(wchar_t *&outTemplateVar) + { + return RakWString::Deserialize(outTemplateVar,this); + } + template <> + inline bool BitStream::ReadCompressed(unsigned char *&outTemplateVar) + { + return RakString::DeserializeCompressed((char*) outTemplateVar,this,false); + } + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// the current value will be updated. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// ReadCompressedDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::ReadCompressedDelta(templateType &outTemplateVar) + { + bool dataWritten; + bool success; + success=Read(dataWritten); + if (dataWritten) + success=ReadCompressed(outTemplateVar); + return success; + } + + /// \brief Read a bool from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::ReadCompressedDelta(bool &outTemplateVar) + { + return Read(outTemplateVar); + } + + template + void BitStream::WriteCasted( const sourceType &value ) + { + destinationType val = (destinationType) value; + Write(val); + } + + template + void BitStream::WriteBitsFromIntegerRange( const templateType value, const templateType minimum,const templateType maximum, bool allowOutsideRange ) + { + int requiredBits=BYTES_TO_BITS(sizeof(templateType))-NumberOfLeadingZeroes(templateType(maximum-minimum)); + WriteBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + } + template + void BitStream::WriteBitsFromIntegerRange( const templateType value, const templateType minimum,const templateType maximum, const int requiredBits, bool allowOutsideRange ) + { + RakAssert(maximum>=minimum); + RakAssert(allowOutsideRange==true || (value>=minimum && value<=maximum)); + if (allowOutsideRange) + { + if (valuemaximum) + { + Write(true); + Write(value); + return; + } + Write(false); + } + templateType valueOffMin=value-minimum; + if (IsBigEndian()==true) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*)&valueOffMin, output, sizeof(templateType)); + WriteBits(output,requiredBits); + } + else + { + WriteBits((unsigned char*) &valueOffMin,requiredBits); + } + } + + template // templateType for this function must be a float or double + void BitStream::WriteNormVector( templateType x, templateType y, templateType z ) + { +#ifdef _DEBUG + RakAssert(x <= 1.01 && y <= 1.01 && z <= 1.01 && x >= -1.01 && y >= -1.01 && z >= -1.01); +#endif + + WriteFloat16((float)x,-1.0f,1.0f); + WriteFloat16((float)y,-1.0f,1.0f); + WriteFloat16((float)z,-1.0f,1.0f); + } + + template // templateType for this function must be a float or double + void BitStream::WriteVector( templateType x, templateType y, templateType z ) + { + templateType magnitude = sqrt(x * x + y * y + z * z); + Write((float)magnitude); + if (magnitude > 0.00001f) + { + WriteCompressed((float)(x/magnitude)); + WriteCompressed((float)(y/magnitude)); + WriteCompressed((float)(z/magnitude)); + // Write((unsigned short)((x/magnitude+1.0f)*32767.5f)); + // Write((unsigned short)((y/magnitude+1.0f)*32767.5f)); + // Write((unsigned short)((z/magnitude+1.0f)*32767.5f)); + } + } + + template // templateType for this function must be a float or double + void BitStream::WriteNormQuat( templateType w, templateType x, templateType y, templateType z) + { + Write((bool)(w<0.0)); + Write((bool)(x<0.0)); + Write((bool)(y<0.0)); + Write((bool)(z<0.0)); + Write((unsigned short)(fabs(x)*65535.0)); + Write((unsigned short)(fabs(y)*65535.0)); + Write((unsigned short)(fabs(z)*65535.0)); + // Leave out w and calculate it on the target + } + + template // templateType for this function must be a float or double + void BitStream::WriteOrthMatrix( + templateType m00, templateType m01, templateType m02, + templateType m10, templateType m11, templateType m12, + templateType m20, templateType m21, templateType m22 ) + { + + double qw; + double qx; + double qy; + double qz; + + // Convert matrix to quat + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ + float sum; + sum = 1 + m00 + m11 + m22; + if (sum < 0.0f) sum=0.0f; + qw = sqrt( sum ) / 2; + sum = 1 + m00 - m11 - m22; + if (sum < 0.0f) sum=0.0f; + qx = sqrt( sum ) / 2; + sum = 1 - m00 + m11 - m22; + if (sum < 0.0f) sum=0.0f; + qy = sqrt( sum ) / 2; + sum = 1 - m00 - m11 + m22; + if (sum < 0.0f) sum=0.0f; + qz = sqrt( sum ) / 2; + if (qw < 0.0) qw=0.0; + if (qx < 0.0) qx=0.0; + if (qy < 0.0) qy=0.0; + if (qz < 0.0) qz=0.0; + qx = _copysign( (double) qx, (double) (m21 - m12) ); + qy = _copysign( (double) qy, (double) (m02 - m20) ); + qz = _copysign( (double) qz, (double) (m10 - m01) ); + + WriteNormQuat(qw,qx,qy,qz); + } + + template + bool BitStream::ReadCasted( sourceType &value ) + { + serializationType val; + bool success = Read(val); + value=(sourceType) val; + return success; + } + + template + bool BitStream::ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange ) + { + int requiredBits=BYTES_TO_BITS(sizeof(templateType))-NumberOfLeadingZeroes(templateType(maximum-minimum)); + return ReadBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + } + template + bool BitStream::ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange ) + { + RakAssert(maximum>=minimum); + if (allowOutsideRange) + { + bool isOutsideRange; + Read(isOutsideRange); + if (isOutsideRange) + return Read(value); + } + unsigned char output[sizeof(templateType)]; + memset(output,0,sizeof(output)); + bool success = ReadBits(output,requiredBits); + if (success) + { + if (IsBigEndian()==true) + ReverseBytesInPlace(output,sizeof(output)); + memcpy(&value,output,sizeof(output)); + + value+=minimum; + } + + return success; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadNormVector( templateType &x, templateType &y, templateType &z ) + { + float xIn,yIn,zIn; + ReadFloat16(xIn,-1.0f,1.0f); + ReadFloat16(yIn,-1.0f,1.0f); + ReadFloat16(zIn,-1.0f,1.0f); + x=xIn; + y=yIn; + z=zIn; + return true; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadVector( templateType &x, templateType &y, templateType &z ) + { + float magnitude; + //unsigned short sx,sy,sz; + if (!Read(magnitude)) + return false; + if (magnitude>0.00001f) + { + // Read(sx); + // Read(sy); + // if (!Read(sz)) + // return false; + // x=((float)sx / 32767.5f - 1.0f) * magnitude; + // y=((float)sy / 32767.5f - 1.0f) * magnitude; + // z=((float)sz / 32767.5f - 1.0f) * magnitude; + float cx,cy,cz; + ReadCompressed(cx); + ReadCompressed(cy); + if (!ReadCompressed(cz)) + return false; + x=cx; + y=cy; + z=cz; + x*=magnitude; + y*=magnitude; + z*=magnitude; + } + else + { + x=0.0; + y=0.0; + z=0.0; + } + return true; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadNormQuat( templateType &w, templateType &x, templateType &y, templateType &z) + { + bool cwNeg=false, cxNeg=false, cyNeg=false, czNeg=false; + unsigned short cx,cy,cz; + Read(cwNeg); + Read(cxNeg); + Read(cyNeg); + Read(czNeg); + Read(cx); + Read(cy); + if (!Read(cz)) + return false; + + // Calculate w from x,y,z + x=(templateType)(cx/65535.0); + y=(templateType)(cy/65535.0); + z=(templateType)(cz/65535.0); + if (cxNeg) x=-x; + if (cyNeg) y=-y; + if (czNeg) z=-z; + float difference = 1.0f - x*x - y*y - z*z; + if (difference < 0.0f) + difference=0.0f; + w = (templateType)(sqrt(difference)); + if (cwNeg) + w=-w; + + return true; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadOrthMatrix( + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ) + { + float qw,qx,qy,qz; + if (!ReadNormQuat(qw,qx,qy,qz)) + return false; + + // Quat to orthogonal rotation matrix + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToMatrix/index.htm + double sqw = (double)qw*(double)qw; + double sqx = (double)qx*(double)qx; + double sqy = (double)qy*(double)qy; + double sqz = (double)qz*(double)qz; + m00 = (templateType)(sqx - sqy - sqz + sqw); // since sqw + sqx + sqy + sqz =1 + m11 = (templateType)(-sqx + sqy - sqz + sqw); + m22 = (templateType)(-sqx - sqy + sqz + sqw); + + double tmp1 = (double)qx*(double)qy; + double tmp2 = (double)qz*(double)qw; + m10 = (templateType)(2.0 * (tmp1 + tmp2)); + m01 = (templateType)(2.0 * (tmp1 - tmp2)); + + tmp1 = (double)qx*(double)qz; + tmp2 = (double)qy*(double)qw; + m20 =(templateType)(2.0 * (tmp1 - tmp2)); + m02 = (templateType)(2.0 * (tmp1 + tmp2)); + tmp1 = (double)qy*(double)qz; + tmp2 = (double)qx*(double)qw; + m21 = (templateType)(2.0 * (tmp1 + tmp2)); + m12 = (templateType)(2.0 * (tmp1 - tmp2)); + + return true; + } + + template + BitStream& operator<<(BitStream& out, templateType& c) + { + out.Write(c); + return out; + } + template + BitStream& operator>>(BitStream& in, templateType& c) + { + bool success = in.Read(c); + RakAssert(success); + return in; + } + +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + +#endif // VC6 diff --git a/project/lib_projects/raknet/jni/RaknetSources/CCRakNetSlidingWindow.cpp b/project/lib_projects/raknet/jni/RaknetSources/CCRakNetSlidingWindow.cpp new file mode 100755 index 0000000..ccc9757 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CCRakNetSlidingWindow.cpp @@ -0,0 +1,332 @@ +#include "CCRakNetSlidingWindow.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL==1 + +static const double UNSET_TIME_US=-1; + +#if CC_TIME_TYPE_BYTES==4 +static const CCTimeType SYN=10; +#else +static const CCTimeType SYN=10000; +#endif + +#include "MTUSize.h" +#include +#include +#include +#include "RakAssert.h" +#include "RakAlloca.h" + +using namespace RakNet; + +// ****************************************************** PUBLIC METHODS ****************************************************** + +CCRakNetSlidingWindow::CCRakNetSlidingWindow() +{ +} +// ---------------------------------------------------------------------------------------------------------------------------- +CCRakNetSlidingWindow::~CCRakNetSlidingWindow() +{ + +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::Init(CCTimeType curTime, uint32_t maxDatagramPayload) +{ + (void) curTime; + + RTT=UNSET_TIME_US; + MAXIMUM_MTU_INCLUDING_UDP_HEADER=maxDatagramPayload; + cwnd=maxDatagramPayload; + ssThresh=0.0; + oldestUnsentAck=0; + nextDatagramSequenceNumber=0; + nextCongestionControlBlock=0; + backoffThisBlock=speedUpThisBlock=false; + expectedNextSequenceNumber=0; + _isContinuousSend=false; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::Update(CCTimeType curTime, bool hasDataToSendOrResend) +{ + (void) curTime; + (void) hasDataToSendOrResend; +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetSlidingWindow::GetRetransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + (void) isContinuousSend; + (void) timeSinceLastTick; + + return unacknowledgedBytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetSlidingWindow::GetTransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + (void) timeSinceLastTick; + + _isContinuousSend=isContinuousSend; + + if (unacknowledgedBytes<=cwnd) + return (int) (cwnd-unacknowledgedBytes); + else + return 0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::ShouldSendACKs(CCTimeType curTime, CCTimeType estimatedTimeToNextTick) +{ + CCTimeType rto = GetSenderRTOForACK(); + (void) estimatedTimeToNextTick; + + // iphone crashes on comparison between double and int64 http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 + if (rto==(CCTimeType) UNSET_TIME_US) + { + // Unknown how long until the remote system will retransmit, so better send right away + return true; + } + + return curTime >= oldestUnsentAck + SYN; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetSlidingWindow::GetNextDatagramSequenceNumber(void) +{ + return nextDatagramSequenceNumber; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetSlidingWindow::GetAndIncrementNextDatagramSequenceNumber(void) +{ + DatagramSequenceNumberType dsnt=nextDatagramSequenceNumber; + nextDatagramSequenceNumber++; + return dsnt; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendBytes(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + (void) numBytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnGotPacketPair(DatagramSequenceNumberType datagramSequenceNumber, uint32_t sizeInBytes, CCTimeType curTime) +{ + (void) curTime; + (void) sizeInBytes; + (void) datagramSequenceNumber; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::OnGotPacket(DatagramSequenceNumberType datagramSequenceNumber, bool isContinuousSend, CCTimeType curTime, uint32_t sizeInBytes, uint32_t *skippedMessageCount) +{ + (void) curTime; + (void) sizeInBytes; + (void) isContinuousSend; + + if (oldestUnsentAck==0) + oldestUnsentAck=curTime; + + if (datagramSequenceNumber==expectedNextSequenceNumber) + { + *skippedMessageCount=0; + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else if (GreaterThan(datagramSequenceNumber, expectedNextSequenceNumber)) + { + *skippedMessageCount=datagramSequenceNumber-expectedNextSequenceNumber; + // Sanity check, just use timeout resend if this was really valid + if (*skippedMessageCount>1000) + { + // During testing, the nat punchthrough server got 51200 on the first packet. I have no idea where this comes from, but has happened twice + if (*skippedMessageCount>(uint32_t)50000) + return false; + *skippedMessageCount=1000; + } + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else + { + *skippedMessageCount=0; + } + + return true; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnResend(CCTimeType curTime) +{ + (void) curTime; + + if (_isContinuousSend && backoffThisBlock==false && cwnd>MAXIMUM_MTU_INCLUDING_UDP_HEADER*2) + { + ssThresh=cwnd/2; + if (ssThreshssThresh && ssThresh!=0) + { + cwnd=ssThresh; + cwnd+=MAXIMUM_MTU_INCLUDING_UDP_HEADER*MAXIMUM_MTU_INCLUDING_UDP_HEADER/cwnd; + } + } + } + } + else + { + if (isNewCongestionControlPeriod) + cwnd+=MAXIMUM_MTU_INCLUDING_UDP_HEADER*MAXIMUM_MTU_INCLUDING_UDP_HEADER/cwnd; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnDuplicateAck( CCTimeType curTime, DatagramSequenceNumberType sequenceNumber ) +{ + (void) sequenceNumber; + + OnResend(curTime); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendAckGetBAndAS(CCTimeType curTime, bool *hasBAndAS, BytesPerMicrosecond *_B, BytesPerMicrosecond *_AS) +{ + (void) curTime; + (void) _B; + (void) _AS; + + *hasBAndAS=false; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendAck(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + (void) numBytes; + + oldestUnsentAck=0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendNACK(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + (void) numBytes; + +} +// ---------------------------------------------------------------------------------------------------------------------------- +CCTimeType CCRakNetSlidingWindow::GetRTOForRetransmission(void) const +{ +#if CC_TIME_TYPE_BYTES==4 + const CCTimeType maxThreshold=2000; + const CCTimeType minThreshold=100; +#else + const CCTimeType maxThreshold=2000000; + const CCTimeType minThreshold=100000; +#endif + + if (RTT==UNSET_TIME_US) + { + return maxThreshold; + } + + if (RTT * 3 > maxThreshold) + return maxThreshold; + if (RTT * 3 < minThreshold) + return minThreshold; + return (CCTimeType) RTT * 3; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::SetMTU(uint32_t bytes) +{ + MAXIMUM_MTU_INCLUDING_UDP_HEADER=bytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +uint32_t CCRakNetSlidingWindow::GetMTU(void) const +{ + return MAXIMUM_MTU_INCLUDING_UDP_HEADER; +} +// ---------------------------------------------------------------------------------------------------------------------------- +BytesPerMicrosecond CCRakNetSlidingWindow::GetLocalReceiveRate(CCTimeType currentTime) const +{ + (void) currentTime; + + return 0; // TODO +} +// ---------------------------------------------------------------------------------------------------------------------------- +double CCRakNetSlidingWindow::GetRTT(void) const +{ + if (RTT==UNSET_TIME_US) + return 0.0; + return RTT; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::GreaterThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b) +{ + // a > b? + const DatagramSequenceNumberType halfSpan =(DatagramSequenceNumberType) (((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2); + return b!=a && b-a>halfSpan; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b) +{ + // a < b? + const DatagramSequenceNumberType halfSpan = ((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2; + return b!=a && b-a b, accounting for variable overflow? + static bool GreaterThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); + /// Is a < b, accounting for variable overflow? + static bool LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); +// void SetTimeBetweenSendsLimit(unsigned int bitsPerSecond); + uint64_t GetBytesPerSecondLimitByCongestionControl(void) const; + + protected: + + // Maximum amount of bytes that the user can send, e.g. the size of one full datagram + uint32_t MAXIMUM_MTU_INCLUDING_UDP_HEADER; + + double RTT; + + double cwnd; // max bytes on wire + double ssThresh; // Threshhold between slow start and congestion avoidance + + /// When we get an ack, if oldestUnsentAck==0, set it to the current time + /// When we send out acks, set oldestUnsentAck to 0 + CCTimeType oldestUnsentAck; + + CCTimeType GetSenderRTOForACK(void) const; + + /// Every outgoing datagram is assigned a sequence number, which increments by 1 every assignment + DatagramSequenceNumberType nextDatagramSequenceNumber; + DatagramSequenceNumberType nextCongestionControlBlock; + bool backoffThisBlock, speedUpThisBlock; + /// Track which datagram sequence numbers have arrived. + /// If a sequence number is skipped, send a NAK for all skipped messages + DatagramSequenceNumberType expectedNextSequenceNumber; + + bool _isContinuousSend; + + bool IsInSlowStart(void) const; +}; + +} + +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/CCRakNetUDT.cpp b/project/lib_projects/raknet/jni/RaknetSources/CCRakNetUDT.cpp new file mode 100755 index 0000000..dcf942e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CCRakNetUDT.cpp @@ -0,0 +1,798 @@ +#include "CCRakNetUDT.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 + +#include "Rand.h" +#include "MTUSize.h" +#include +#include +#include +//#include +#include "RakAssert.h" +#include "RakAlloca.h" + +using namespace RakNet; + +static const double UNSET_TIME_US=-1; +static const double CWND_MIN_THRESHOLD=2.0; +static const double UNDEFINED_TRANSFER_RATE=0.0; +/// Interval at which to update aspects of the system +/// 1. send acks +/// 2. update time interval between outgoing packets +/// 3, Yodate retransmit timeout +#if CC_TIME_TYPE_BYTES==4 +static const CCTimeType SYN=10; +#else +static const CCTimeType SYN=10000; +#endif + +#if CC_TIME_TYPE_BYTES==4 +#define MAX_RTT 1000 +#define RTT_TOLERANCE 30 +#else +#define MAX_RTT 1000000 +#define RTT_TOLERANCE 30000 +#endif + + +double RTTVarMultiple=4.0; + + +// ****************************************************** PUBLIC METHODS ****************************************************** + +CCRakNetUDT::CCRakNetUDT() +{ +} + +// ---------------------------------------------------------------------------------------------------------------------------- + +CCRakNetUDT::~CCRakNetUDT() +{ +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::Init(CCTimeType curTime, uint32_t maxDatagramPayload) +{ + (void) curTime; + + nextSYNUpdate=0; + packetPairRecieptHistoryWriteIndex=0; + packetArrivalHistoryWriteIndex=0; + packetArrivalHistoryWriteCount=0; + RTT=UNSET_TIME_US; + // RTTVar=UNSET_TIME_US; + isInSlowStart=true; + NAKCount=1000; + AvgNAKNum=1; + DecInterval=1; + DecCount=0; + nextDatagramSequenceNumber=0; + lastPacketPairPacketArrivalTime=0; + lastPacketPairSequenceNumber=(DatagramSequenceNumberType)(const uint32_t)-1; + lastPacketArrivalTime=0; + CWND=CWND_MIN_THRESHOLD; + lastUpdateWindowSizeAndAck=0; + lastTransmitOfBAndAS=0; + ExpCount=1.0; + totalUserDataBytesSent=0; + oldestUnsentAck=0; + MAXIMUM_MTU_INCLUDING_UDP_HEADER=maxDatagramPayload; + CWND_MAX_THRESHOLD=RESEND_BUFFER_ARRAY_LENGTH; +#if CC_TIME_TYPE_BYTES==4 + const BytesPerMicrosecond DEFAULT_TRANSFER_RATE=(BytesPerMicrosecond) 3.6; +#else + const BytesPerMicrosecond DEFAULT_TRANSFER_RATE=(BytesPerMicrosecond) .0036; +#endif + +#if CC_TIME_TYPE_BYTES==4 + lastRttOnIncreaseSendRate=1000; +#else + lastRttOnIncreaseSendRate=1000000; +#endif + nextCongestionControlBlock=0; + lastRtt=0; + + // B=DEFAULT_TRANSFER_RATE; + AS=UNDEFINED_TRANSFER_RATE; + const MicrosecondsPerByte DEFAULT_BYTE_INTERVAL=(MicrosecondsPerByte) (1.0/DEFAULT_TRANSFER_RATE); + SND=DEFAULT_BYTE_INTERVAL; + expectedNextSequenceNumber=0; + sendBAndASCount=0; + packetArrivalHistoryContinuousGapsIndex=0; + //packetPairRecipetHistoryGapsIndex=0; + hasWrittenToPacketPairReceiptHistory=false; + InitPacketArrivalHistory(); + + estimatedLinkCapacityBytesPerSecond=0; + bytesCanSendThisTick=0; + hadPacketlossThisBlock=false; + pingsLastInterval.Clear(__FILE__,__LINE__); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::SetMTU(uint32_t bytes) +{ + MAXIMUM_MTU_INCLUDING_UDP_HEADER=bytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +uint32_t CCRakNetUDT::GetMTU(void) const +{ + return MAXIMUM_MTU_INCLUDING_UDP_HEADER; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::Update(CCTimeType curTime, bool hasDataToSendOrResend) +{ + (void) hasDataToSendOrResend; + (void) curTime; + + return; + + // I suspect this is causing major lag + + /* + if (hasDataToSendOrResend==false) + halveSNDOnNoDataTime=0; + else if (halveSNDOnNoDataTime==0) + { + UpdateHalveSNDOnNoDataTime(curTime); + ExpCount=1.0; + } + + // If you send, and get no data at all from that time to RTO, then halve send rate7 + if (HasHalveSNDOnNoDataTimeElapsed(curTime)) + { + /// 2000 bytes per second + /// 0.0005 seconds per byte + /// 0.5 milliseconds per byte + /// 500 microseconds per byte + // printf("No incoming data, halving send rate\n"); + SND*=2.0; + CapMinSnd(_FILE_AND_LINE_); + ExpCount+=1.0; + if (ExpCount>8.0) + ExpCount=8.0; + + UpdateHalveSNDOnNoDataTime(curTime); + } + */ +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetUDT::GetRetransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + + if (isInSlowStart) + { + uint32_t CWNDLimit = (uint32_t) (CWND*MAXIMUM_MTU_INCLUDING_UDP_HEADER); + return CWNDLimit; + } + return GetTransmissionBandwidth(curTime,timeSinceLastTick,unacknowledgedBytes,isContinuousSend); +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetUDT::GetTransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + + if (isInSlowStart) + { + uint32_t CWNDLimit = (uint32_t) (CWND*MAXIMUM_MTU_INCLUDING_UDP_HEADER-unacknowledgedBytes); + return CWNDLimit; + } + if (bytesCanSendThisTick>0) + bytesCanSendThisTick=0; + +#if CC_TIME_TYPE_BYTES==4 + if (isContinuousSend==false && timeSinceLastTick>100) + timeSinceLastTick=100; +#else + if (isContinuousSend==false && timeSinceLastTick>100000) + timeSinceLastTick=100000; +#endif + + bytesCanSendThisTick=(int)((double)timeSinceLastTick*((double)1.0/SND)+(double)bytesCanSendThisTick); + if (bytesCanSendThisTick>0) + return bytesCanSendThisTick; + return 0; +} +uint64_t CCRakNetUDT::GetBytesPerSecondLimitByCongestionControl(void) const +{ + if (isInSlowStart) + return 0; +#if CC_TIME_TYPE_BYTES==4 + return (uint64_t) ((double)1.0/(SND*1000.0)); +#else + return (uint64_t) ((double)1.0/(SND*1000000.0)); +#endif +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetUDT::ShouldSendACKs(CCTimeType curTime, CCTimeType estimatedTimeToNextTick) +{ + CCTimeType rto = GetSenderRTOForACK(); + + // iphone crashes on comparison between double and int64 http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 + if (rto==(CCTimeType) UNSET_TIME_US) + { + // Unknown how long until the remote system will retransmit, so better send right away + return true; + } + + + // CCTimeType remoteRetransmitTime=oldestUnsentAck+rto-RTT*.5; + // CCTimeType ackArrivalTimeIfWeDelay=RTT*.5+estimatedTimeToNextTick+curTime; + // return ackArrivalTimeIfWeDelay= oldestUnsentAck + SYN || + estimatedTimeToNextTick+curTime < oldestUnsentAck+rto-RTT; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetUDT::GetNextDatagramSequenceNumber(void) +{ + return nextDatagramSequenceNumber; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetUDT::GetAndIncrementNextDatagramSequenceNumber(void) +{ + DatagramSequenceNumberType dsnt=nextDatagramSequenceNumber; + nextDatagramSequenceNumber++; + return dsnt; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendBytes(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + + totalUserDataBytesSent+=numBytes; + if (isInSlowStart==false) + bytesCanSendThisTick-=numBytes; +} + +// ****************************************************** PROTECTED METHODS ****************************************************** + +void CCRakNetUDT::SetNextSYNUpdate(CCTimeType currentTime) +{ + nextSYNUpdate+=SYN; + if (nextSYNUpdate < currentTime) + nextSYNUpdate=currentTime+SYN; +} +// ---------------------------------------------------------------------------------------------------------------------------- +BytesPerMicrosecond CCRakNetUDT::ReceiverCalculateDataArrivalRate(CCTimeType curTime) const +{ + (void) curTime; + // Not an instantaneous measurement + /* + if (continuousBytesReceivedStartTime!=0 && curTime>continuousBytesReceivedStartTime) + { + #if CC_TIME_TYPE_BYTES==4 + const CCTimeType threshold=100; + #else + const CCTimeType threshold=100000; + #endif + if (curTime-continuousBytesReceivedStartTime>threshold) + return (BytesPerMicrosecond) continuousBytesReceived/(BytesPerMicrosecond) (curTime-continuousBytesReceivedStartTime); + } + + return UNDEFINED_TRANSFER_RATE; + */ + + + if (packetArrivalHistoryWriteCount=oneEighthMedian && + packetArrivalHistory[i] b? + const DatagramSequenceNumberType halfSpan =(DatagramSequenceNumberType) (((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2); + return b!=a && b-a>halfSpan; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetUDT::LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b) +{ + // a < b? + const DatagramSequenceNumberType halfSpan = ((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2; + return b!=a && b-amaxThreshold) + return maxThreshold; + return ret; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnResend(CCTimeType curTime) +{ + (void) curTime; + + if (isInSlowStart) + { + if (AS!=UNDEFINED_TRANSFER_RATE) + EndSlowStart(); + return; + } + + if (hadPacketlossThisBlock==false) + { + // Logging + // printf("Sending SLOWER due to Resend, Rate=%f MBPS. Rtt=%i\n", GetLocalSendRate(), lastRtt ); + + IncreaseTimeBetweenSends(); + hadPacketlossThisBlock=true; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnNAK(CCTimeType curTime, DatagramSequenceNumberType nakSequenceNumber) +{ + (void) nakSequenceNumber; + (void) curTime; + + if (isInSlowStart) + { + if (AS!=UNDEFINED_TRANSFER_RATE) + EndSlowStart(); + return; + } + + if (hadPacketlossThisBlock==false) + { + // Logging + //printf("Sending SLOWER due to NAK, Rate=%f MBPS. Rtt=%i\n", GetLocalSendRate(), lastRtt ); + if (pingsLastInterval.Size()>10) + { + for (int i=0; i < 10; i++) + printf("%i, ", pingsLastInterval[pingsLastInterval.Size()-1-i]/1000); + } + printf("\n"); + IncreaseTimeBetweenSends(); + + hadPacketlossThisBlock=true; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::EndSlowStart(void) +{ + RakAssert(isInSlowStart==true); + RakAssert(AS!=UNDEFINED_TRANSFER_RATE); + + // This overestimates + estimatedLinkCapacityBytesPerSecond=AS * 1000000.0; + + isInSlowStart=false; + SND=1.0/AS; + CapMinSnd(_FILE_AND_LINE_); + + // printf("ENDING SLOW START\n"); +#if CC_TIME_TYPE_BYTES==4 + // printf("Initial SND=%f Kilobytes per second\n", 1.0/SND); +#else + // printf("Initial SND=%f Megabytes per second\n", 1.0/SND); +#endif + if (SND > .1) + PrintLowBandwidthWarning(); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnGotPacketPair(DatagramSequenceNumberType datagramSequenceNumber, uint32_t sizeInBytes, CCTimeType curTime) +{ + (void) datagramSequenceNumber; + (void) sizeInBytes; + (void) curTime; + +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetUDT::OnGotPacket(DatagramSequenceNumberType datagramSequenceNumber, bool isContinuousSend, CCTimeType curTime, uint32_t sizeInBytes, uint32_t *skippedMessageCount) +{ + CC_DEBUG_PRINTF_2("R%i ",datagramSequenceNumber.val); + + if (datagramSequenceNumber==expectedNextSequenceNumber) + { + *skippedMessageCount=0; + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else if (GreaterThan(datagramSequenceNumber, expectedNextSequenceNumber)) + { + *skippedMessageCount=datagramSequenceNumber-expectedNextSequenceNumber; + // Sanity check, just use timeout resend if this was really valid + if (*skippedMessageCount>1000) + { + // During testing, the nat punchthrough server got 51200 on the first packet. I have no idea where this comes from, but has happened twice + if (*skippedMessageCount>(uint32_t)50000) + return false; + *skippedMessageCount=1000; + } + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else + { + *skippedMessageCount=0; + } + + if (curTime>lastPacketArrivalTime) + { + CCTimeType interval = curTime-lastPacketArrivalTime; + + // printf("Packet arrival gap is %I64u\n", (interval)); + + if (isContinuousSend) + { + continuousBytesReceived+=sizeInBytes; + if (continuousBytesReceivedStartTime==0) + continuousBytesReceivedStartTime=lastPacketArrivalTime; + + + mostRecentPacketArrivalHistory=(BytesPerMicrosecond)sizeInBytes/(BytesPerMicrosecond)interval; + + // if (mostRecentPacketArrivalHistory < (BytesPerMicrosecond)0.0035) + // { + // printf("%s:%i LIKELY BUG: Calculated packetArrivalHistory is below 28.8 Kbps modem\nReport to rakkar@jenkinssoftware.com with file and line number\n", _FILE_AND_LINE_); + // } + + packetArrivalHistoryContinuousGaps[packetArrivalHistoryContinuousGapsIndex++]=(int) interval; + packetArrivalHistoryContinuousGapsIndex&=(CC_RAKNET_UDT_PACKET_HISTORY_LENGTH-1); + + packetArrivalHistoryWriteCount++; + packetArrivalHistory[packetArrivalHistoryWriteIndex++]=mostRecentPacketArrivalHistory; + // Wrap to 0 at the end of the range + // Assumes power of 2 for CC_RAKNET_UDT_PACKET_HISTORY_LENGTH + packetArrivalHistoryWriteIndex&=(CC_RAKNET_UDT_PACKET_HISTORY_LENGTH-1); + } + else + { + continuousBytesReceivedStartTime=0; + continuousBytesReceived=0; + } + + lastPacketArrivalTime=curTime; + } + return true; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnAck(CCTimeType curTime, CCTimeType rtt, bool hasBAndAS, BytesPerMicrosecond _B, BytesPerMicrosecond _AS, double totalUserDataBytesAcked, bool isContinuousSend, DatagramSequenceNumberType sequenceNumber ) +{ +#if CC_TIME_TYPE_BYTES==4 + RakAssert(rtt < 10000); +#else + RakAssert(rtt < 10000000); +#endif + (void) _B; + + if (hasBAndAS) + { + /// RakAssert(_B!=UNDEFINED_TRANSFER_RATE && _AS!=UNDEFINED_TRANSFER_RATE); + // B=B * .875 + _B * .125; + // AS is packet arrival rate + RakAssert(_AS!=UNDEFINED_TRANSFER_RATE); + AS=_AS; + CC_DEBUG_PRINTF_4("ArrivalRate=%f linkCap=%f incomingLinkCap=%f\n", _AS,B,_B); + } + + if (oldestUnsentAck==0) + oldestUnsentAck=curTime; + + if (isInSlowStart==true) + { + nextCongestionControlBlock=nextDatagramSequenceNumber; + lastRttOnIncreaseSendRate=rtt; + UpdateWindowSizeAndAckOnAckPreSlowStart(totalUserDataBytesAcked); + } + else + { + UpdateWindowSizeAndAckOnAckPerSyn(curTime, rtt, isContinuousSend, sequenceNumber); + } + + lastUpdateWindowSizeAndAck=curTime; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendAckGetBAndAS(CCTimeType curTime, bool *hasBAndAS, BytesPerMicrosecond *_B, BytesPerMicrosecond *_AS) +{ + if (curTime>lastTransmitOfBAndAS+SYN) + { + *_B=0; + *_AS=ReceiverCalculateDataArrivalRate(curTime); + + if (*_AS==UNDEFINED_TRANSFER_RATE) + { + *hasBAndAS=false; + } + else + { + *hasBAndAS=true; + } + } + else + { + *hasBAndAS=false; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendAck(CCTimeType curTime, uint32_t numBytes) +{ + (void) numBytes; + (void) curTime; + + // This is not accounted for on the remote system, and thus causes bandwidth to be underutilized + //UpdateNextAllowedSend(curTime, numBytes+UDP_HEADER_SIZE); + + oldestUnsentAck=0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendNACK(CCTimeType curTime, uint32_t numBytes) +{ + (void) numBytes; + (void) curTime; + + // This is not accounted for on the remote system, and thus causes bandwidth to be underutilized + // UpdateNextAllowedSend(curTime, numBytes+UDP_HEADER_SIZE); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::UpdateWindowSizeAndAckOnAckPreSlowStart(double totalUserDataBytesAcked) +{ + // During slow start, max window size is the number of full packets that have been sent out + // CWND=(double) ((double)totalUserDataBytesSent/(double)MAXIMUM_MTU_INCLUDING_UDP_HEADER); + CC_DEBUG_PRINTF_3("CWND increasing from %f to %f\n", CWND, (double) ((double)totalUserDataBytesAcked/(double)MAXIMUM_MTU_INCLUDING_UDP_HEADER)); + CWND=(double) ((double)totalUserDataBytesAcked/(double)MAXIMUM_MTU_INCLUDING_UDP_HEADER); + if (CWND>=CWND_MAX_THRESHOLD) + { + CWND=CWND_MAX_THRESHOLD; + + if (AS!=UNDEFINED_TRANSFER_RATE) + EndSlowStart(); + } + if (CWNDintervalSize) + pingsLastInterval.Pop(); + if (GreaterThan(sequenceNumber, nextCongestionControlBlock) && + sequenceNumber-nextCongestionControlBlock>=intervalSize && + pingsLastInterval.Size()==intervalSize) + { + double slopeSum=0.0; + double average=(double) pingsLastInterval[0]; + int sampleSize=pingsLastInterval.Size(); + for (int i=1; i < sampleSize; i++) + { + slopeSum+=(double)pingsLastInterval[i]-(double)pingsLastInterval[i-1]; + average+=pingsLastInterval[i]; + } + average/=sampleSize; + + if (hadPacketlossThisBlock==true) + { + } + else if (slopeSum < -.10*average) + { + // Logging + //printf("Ping dropping. slope=%f%%. Rate=%f MBPS. Rtt=%i\n", 100.0*slopeSum/average, GetLocalSendRate(), rtt ); + } + else if (slopeSum > .10*average) + { + // Logging + //printf("Ping rising. slope=%f%%. Rate=%f MBPS. Rtt=%i\n", 100.0*slopeSum/average, GetLocalSendRate(), rtt ); + IncreaseTimeBetweenSends(); + } + else + { + // Logging + //printf("Ping stable. slope=%f%%. Rate=%f MBPS. Rtt=%i\n", 100.0*slopeSum/average, GetLocalSendRate(), rtt ); + + // No packetloss over time threshhold, and rtt decreased, so send faster + lastRttOnIncreaseSendRate=rtt; + DecreaseTimeBetweenSends(); + } + + pingsLastInterval.Clear(__FILE__,__LINE__); + hadPacketlossThisBlock=false; + nextCongestionControlBlock=nextDatagramSequenceNumber; + } + + lastRtt=rtt; +} + +// ---------------------------------------------------------------------------------------------------------------------------- +double CCRakNetUDT::BytesPerMicrosecondToPacketsPerMillisecond(BytesPerMicrosecond in) +{ +#if CC_TIME_TYPE_BYTES==4 + const BytesPerMicrosecond factor = 1.0 / (BytesPerMicrosecond) MAXIMUM_MTU_INCLUDING_UDP_HEADER; +#else + const BytesPerMicrosecond factor = 1000.0 / (BytesPerMicrosecond) MAXIMUM_MTU_INCLUDING_UDP_HEADER; +#endif + return in * factor; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::InitPacketArrivalHistory(void) +{ + unsigned int i; + for (i=0; i < CC_RAKNET_UDT_PACKET_HISTORY_LENGTH; i++) + { + packetArrivalHistory[i]=UNDEFINED_TRANSFER_RATE; + packetArrivalHistoryContinuousGaps[i]=0; + } + + packetArrivalHistoryWriteCount=0; + continuousBytesReceived=0; + continuousBytesReceivedStartTime=0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::PrintLowBandwidthWarning(void) +{ + + /* + printf("\n-------LOW BANDWIDTH -----\n"); + if (isInSlowStart==false) + printf("SND=%f Megabytes per second\n", 1.0/SND); + printf("Window size=%f\n", CWND); + printf("Pipe from packet pair = %f megabytes per second\n", B); + printf("RTT=%f milliseconds\n", RTT/1000.0); + printf("RTT Variance=%f milliseconds\n", RTTVar/1000.0); + printf("Retransmission=%i milliseconds\n", GetRTOForRetransmission()/1000); + printf("Packet arrival rate on the remote system=%f megabytes per second\n", AS); + printf("Packet arrival rate on our system=%f megabytes per second\n", ReceiverCalculateDataArrivalRate()); + printf("isInSlowStart=%i\n", isInSlowStart); + printf("---------------\n"); + */ +} +BytesPerMicrosecond CCRakNetUDT::GetLocalReceiveRate(CCTimeType currentTime) const +{ + return ReceiverCalculateDataArrivalRate(currentTime); +} +double CCRakNetUDT::GetRTT(void) const +{ + if (RTT==UNSET_TIME_US) + return 0.0; + return RTT; +} +void CCRakNetUDT::CapMinSnd(const char *file, int line) +{ + (void) file; + (void) line; + + if (SND > 500) + { + SND=500; + CC_DEBUG_PRINTF_3("%s:%i LIKELY BUG: SND has gotten above 500 microseconds between messages (28.8 modem)\nReport to rakkar@jenkinssoftware.com with file and line number\n", file, line); + } +} +void CCRakNetUDT::IncreaseTimeBetweenSends(void) +{ + // In order to converge, bigger numbers have to increase slower and decrease faster + // SND==500 then increment is .02 + // SND==0 then increment is near 0 + // (SND+1.0) brings it to the range of 1 to 501 + // Square the number, which is the range of 1 to 251001 + // Divide by 251001, which is the range of 1/251001 to 1 + + double increment; + increment = .02 * ((SND+1.0) * (SND+1.0)) / (501.0*501.0) ; + // SND=500 then increment=.02 + // SND=0 then increment=near 0 + SND*=(1.02 - increment); + + // SND=0 then fast increase, slow decrease + // SND=500 then slow increase, fast decrease + CapMinSnd(__FILE__,__LINE__); +} +void CCRakNetUDT::DecreaseTimeBetweenSends(void) +{ + double increment; + increment = .01 * ((SND+1.0) * (SND+1.0)) / (501.0*501.0) ; + // SND=500 then increment=.01 + // SND=0 then increment=near 0 + SND*=(.99 - increment); +} +/* +void CCRakNetUDT::SetTimeBetweenSendsLimit(unsigned int bitsPerSecond) +{ +// bitsPerSecond / 1000000 = bitsPerMicrosecond +// bitsPerMicrosecond / 8 = BytesPerMicrosecond +// 1 / BytesPerMicrosecond = MicrosecondsPerByte +// 1 / ( (bitsPerSecond / 1000000) / 8 ) = +// 1 / (bitsPerSecond / 8000000) = +// 8000000 / bitsPerSecond + +#if CC_TIME_TYPE_BYTES==4 + MicrosecondsPerByte limit = (MicrosecondsPerByte) 8000 / (MicrosecondsPerByte)bitsPerSecond; +#else + MicrosecondsPerByte limit = (MicrosecondsPerByte) 8000000 / (MicrosecondsPerByte)bitsPerSecond; +#endif + if (limit > SND) + SND=limit; +} +*/ + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/CCRakNetUDT.h b/project/lib_projects/raknet/jni/RaknetSources/CCRakNetUDT.h new file mode 100755 index 0000000..ca8a1c2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CCRakNetUDT.h @@ -0,0 +1,394 @@ +#include "RakNetDefines.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 + +#ifndef __CONGESTION_CONTROL_UDT_H +#define __CONGESTION_CONTROL_UDT_H + +#include "NativeTypes.h" +#include "RakNetTime.h" +#include "RakNetTypes.h" +#include "DS_Queue.h" + +/// Set to 4 if you are using the iPod Touch TG. See http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 +#define CC_TIME_TYPE_BYTES 8 + +namespace RakNet +{ + + +typedef uint64_t CCTimeType; + + + + +typedef uint24_t DatagramSequenceNumberType; +typedef double BytesPerMicrosecond; +typedef double BytesPerSecond; +typedef double MicrosecondsPerByte; + +/// CC_RAKNET_UDT_PACKET_HISTORY_LENGTH should be a power of 2 for the writeIndex variables to wrap properly +#define CC_RAKNET_UDT_PACKET_HISTORY_LENGTH 64 +#define RTT_HISTORY_LENGTH 64 + +/// Sizeof an UDP header in byte +#define UDP_HEADER_SIZE 28 + +#define CC_DEBUG_PRINTF_1(x) +#define CC_DEBUG_PRINTF_2(x,y) +#define CC_DEBUG_PRINTF_3(x,y,z) +#define CC_DEBUG_PRINTF_4(x,y,z,a) +#define CC_DEBUG_PRINTF_5(x,y,z,a,b) +//#define CC_DEBUG_PRINTF_1(x) printf(x) +//#define CC_DEBUG_PRINTF_2(x,y) printf(x,y) +//#define CC_DEBUG_PRINTF_3(x,y,z) printf(x,y,z) +//#define CC_DEBUG_PRINTF_4(x,y,z,a) printf(x,y,z,a) +//#define CC_DEBUG_PRINTF_5(x,y,z,a,b) printf(x,y,z,a,b) + +/// \brief Encapsulates UDT congestion control, as used by RakNet +/// Requirements: +///
    +///
  1. Each datagram is no more than MAXIMUM_MTU_SIZE, after accounting for the UDP header +///
  2. Each datagram containing a user message has a sequence number which is set after calling OnSendBytes(). Set it by calling GetAndIncrementNextDatagramSequenceNumber() +///
  3. System is designed to be used from a single thread. +///
  4. Each packet should have a timeout time based on GetSenderRTOForACK(). If this time elapses, add the packet to the head of the send list for retransmission. +///
+/// +/// Recommended: +///
    +///
  1. Call sendto in its own thread. This takes a significant amount of time in high speed networks. +///
+/// +/// Algorithm: +///
    +///
  1. On a new connection, call Init() +///
  2. On a periodic interval (SYN time is the best) call Update(). Also call ShouldSendACKs(), and send buffered ACKS if it returns true. +///
  3. Call OnSendAck() when sending acks. +///
  4. When you want to send or resend data, call GetNumberOfBytesToSend(). It will return you enough bytes to keep you busy for \a estimatedTimeToNextTick. You can send more than this to fill out a datagram, or to send packet pairs +///
  5. Call OnSendBytes() when sending datagrams. +///
  6. When data arrives, record the sequence number and buffer an ACK for it, to be sent from Update() if ShouldSendACKs() returns true +///
  7. Every 16 packets that you send, send two of them back to back (a packet pair) as long as both packets are the same size. If you don't have two packets the same size, it is fine to defer this until you do. +///
  8. When you get a packet, call OnGotPacket(). If the packet is also either of a packet pair, call OnGotPacketPair() +///
  9. If you get a packet, and the sequence number is not 1 + the last sequence number, send a NAK. On the remote system, call OnNAK() and resend that message. +///
  10. If you get an ACK, remove that message from retransmission. Call OnNonDuplicateAck(). +///
  11. If a message is not ACKed for GetRTOForRetransmission(), resend it. +///
+class CCRakNetUDT +{ + public: + + CCRakNetUDT(); + ~CCRakNetUDT(); + + /// Reset all variables to their initial states, for a new connection + void Init(CCTimeType curTime, uint32_t maxDatagramPayload); + + /// Update over time + void Update(CCTimeType curTime, bool hasDataToSendOrResend); + + int GetRetransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend); + int GetTransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend); + + /// Acks do not have to be sent immediately. Instead, they can be buffered up such that groups of acks are sent at a time + /// This reduces overall bandwidth usage + /// How long they can be buffered depends on the retransmit time of the sender + /// Should call once per update tick, and send if needed + bool ShouldSendACKs(CCTimeType curTime, CCTimeType estimatedTimeToNextTick); + + /// Every data packet sent must contain a sequence number + /// Call this function to get it. The sequence number is passed into OnGotPacketPair() + DatagramSequenceNumberType GetAndIncrementNextDatagramSequenceNumber(void); + DatagramSequenceNumberType GetNextDatagramSequenceNumber(void); + + /// Call this when you send packets + /// Every 15th and 16th packets should be sent as a packet pair if possible + /// When packets marked as a packet pair arrive, pass to OnGotPacketPair() + /// When any packets arrive, (additionally) pass to OnGotPacket + /// Packets should contain our system time, so we can pass rtt to OnNonDuplicateAck() + void OnSendBytes(CCTimeType curTime, uint32_t numBytes); + + /// Call this when you get a packet pair + void OnGotPacketPair(DatagramSequenceNumberType datagramSequenceNumber, uint32_t sizeInBytes, CCTimeType curTime); + + /// Call this when you get a packet (including packet pairs) + /// If the DatagramSequenceNumberType is out of order, skippedMessageCount will be non-zero + /// In that case, send a NAK for every sequence number up to that count + bool OnGotPacket(DatagramSequenceNumberType datagramSequenceNumber, bool isContinuousSend, CCTimeType curTime, uint32_t sizeInBytes, uint32_t *skippedMessageCount); + + /// Call when you get a NAK, with the sequence number of the lost message + /// Affects the congestion control + void OnResend(CCTimeType curTime); + void OnNAK(CCTimeType curTime, DatagramSequenceNumberType nakSequenceNumber); + + /// Call this when an ACK arrives. + /// hasBAndAS are possibly written with the ack, see OnSendAck() + /// B and AS are used in the calculations in UpdateWindowSizeAndAckOnAckPerSyn + /// B and AS are updated at most once per SYN + void OnAck(CCTimeType curTime, CCTimeType rtt, bool hasBAndAS, BytesPerMicrosecond _B, BytesPerMicrosecond _AS, double totalUserDataBytesAcked, bool isContinuousSend, DatagramSequenceNumberType sequenceNumber ); + void OnDuplicateAck( CCTimeType curTime, DatagramSequenceNumberType sequenceNumber ) {} + + /// Call when you send an ack, to see if the ack should have the B and AS parameters transmitted + /// Call before calling OnSendAck() + void OnSendAckGetBAndAS(CCTimeType curTime, bool *hasBAndAS, BytesPerMicrosecond *_B, BytesPerMicrosecond *_AS); + + /// Call when we send an ack, to write B and AS if needed + /// B and AS are only written once per SYN, to prevent slow calculations + /// Also updates SND, the period between sends, since data is written out + /// Be sure to call OnSendAckGetBAndAS() before calling OnSendAck(), since whether you write it or not affects \a numBytes + void OnSendAck(CCTimeType curTime, uint32_t numBytes); + + /// Call when we send a NACK + /// Also updates SND, the period between sends, since data is written out + void OnSendNACK(CCTimeType curTime, uint32_t numBytes); + + /// Retransmission time out for the sender + /// If the time difference between when a message was last transmitted, and the current time is greater than RTO then packet is eligible for retransmission, pending congestion control + /// RTO = (RTT + 4 * RTTVar) + SYN + /// If we have been continuously sending for the last RTO, and no ACK or NAK at all, SND*=2; + /// This is per message, which is different from UDT, but RakNet supports packetloss with continuing data where UDT is only RELIABLE_ORDERED + /// Minimum value is 100 milliseconds + CCTimeType GetRTOForRetransmission(void) const; + + /// Set the maximum amount of data that can be sent in one datagram + /// Default to MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE + void SetMTU(uint32_t bytes); + + /// Return what was set by SetMTU() + uint32_t GetMTU(void) const; + + /// Query for statistics + BytesPerMicrosecond GetLocalSendRate(void) const {return 1.0 / SND;} + BytesPerMicrosecond GetLocalReceiveRate(CCTimeType currentTime) const; + BytesPerMicrosecond GetRemoveReceiveRate(void) const {return AS;} + //BytesPerMicrosecond GetEstimatedBandwidth(void) const {return B;} + BytesPerMicrosecond GetEstimatedBandwidth(void) const {return GetLinkCapacityBytesPerSecond()*1000000.0;} + double GetLinkCapacityBytesPerSecond(void) const {return estimatedLinkCapacityBytesPerSecond;}; + + /// Query for statistics + double GetRTT(void) const; + + bool GetIsInSlowStart(void) const {return isInSlowStart;} + uint32_t GetCWNDLimit(void) const {return (uint32_t) (CWND*MAXIMUM_MTU_INCLUDING_UDP_HEADER);} + + + /// Is a > b, accounting for variable overflow? + static bool GreaterThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); + /// Is a < b, accounting for variable overflow? + static bool LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); +// void SetTimeBetweenSendsLimit(unsigned int bitsPerSecond); + uint64_t GetBytesPerSecondLimitByCongestionControl(void) const; + + protected: + // --------------------------- PROTECTED VARIABLES --------------------------- + /// time interval between bytes, in microseconds. + /// Only used when slowStart==false + /// Increased over time as we continually get messages + /// Decreased on NAK and timeout + /// Starts at 0 (invalid) + MicrosecondsPerByte SND; + + /// Supportive window mechanism, controlling the maximum number of in-flight packets + /// Used both during and after slow-start, but primarily during slow-start + /// Starts at 2, which is also the low threshhold + /// Max is the socket receive buffer / MTU + /// CWND = AS * (RTT + SYN) + 16 + double CWND; + + /// When we do an update process on the SYN interval, nextSYNUpdate is set to the next time we should update + /// Normally this is nextSYNUpdate+=SYN, in order to update on a consistent schedule + /// However, if this would result in an immediate update yet again, it is set to SYN microseconds past the current time (in case the thread did not update for a long time) + CCTimeType nextSYNUpdate; + + + /// Index into packetPairRecieptHistory where we will next write + /// The history is always full (starting with default values) so no read index is needed + int packetPairRecieptHistoryWriteIndex; + + /// Sent to the sender by the receiver from packetPairRecieptHistory whenever a back to back packet arrives on the receiver + /// Updated by B = B * .875 + incomingB * .125 + //BytesPerMicrosecond B; + + /// Running round trip time (ping*2) + /// Only sender needs to know this + /// Initialized to UNSET + /// Set to rtt on first calculation + /// Updated gradually by RTT = RTT * 0.875 + rtt * 0.125 + double RTT; + + /// Round trip time variance + /// Only sender needs to know this + /// Initialized to UNSET + /// Set to rtt on first calculation + // double RTTVar; + /// Update: Use min/max, RTTVar follows current variance too closely resulting in packetloss + double minRTT, maxRTT; + + /// Used to calculate packet arrival rate (in UDT) but data arrival rate (in RakNet, where not all datagrams are the same size) + /// Filter is used to cull lowest half of values for bytesPerMicrosecond, to discount spikes and inactivity + /// Referred to in the documentation as AS, data arrival rate + /// AS is sent to the sender and calculated every 10th ack + /// Each node represents (curTime-lastPacketArrivalTime)/bytes + /// Used with ReceiverCalculateDataArrivalRate(); + BytesPerMicrosecond packetArrivalHistory[CC_RAKNET_UDT_PACKET_HISTORY_LENGTH]; + BytesPerMicrosecond packetArrivalHistoryContinuousGaps[CC_RAKNET_UDT_PACKET_HISTORY_LENGTH]; + unsigned char packetArrivalHistoryContinuousGapsIndex; + uint64_t continuousBytesReceived; + CCTimeType continuousBytesReceivedStartTime; + unsigned int packetArrivalHistoryWriteCount; + + /// Index into packetArrivalHistory where we will next write + /// The history is always full (starting with default values) so no read index is needed + int packetArrivalHistoryWriteIndex; + + /// Tracks the time the last packet that arrived, so BytesPerMicrosecond can be calculated for packetArrivalHistory when a new packet arrives + CCTimeType lastPacketArrivalTime; + + /// Data arrival rate from the sender to the receiver, as told to us by the receiver + /// Used to calculate initial sending rate when slow start stops + BytesPerMicrosecond AS; + + /// When the receiver last calculated and send B and AS, from packetArrivalHistory and packetPairRecieptHistory + /// Used to prevent it from being calculated and send too frequently, as they are slow operations + CCTimeType lastTransmitOfBAndAS; + + /// New connections start in slow start + /// During slow start, SND is not used, only CWND + /// Slow start ends when we get a NAK, or the maximum size of CWND is reached + /// SND is initialized to the inverse of the receiver's packet arrival rate when slow start ends + bool isInSlowStart; + + /// How many NAKs arrived this congestion period + /// Initialized to 1 when the congestion period starts + uint32_t NAKCount; + + /// How many NAKs do you get on average during a congestion period? + /// Starts at 1 + /// Used to generate a random number, DecRandom, between 1 and AvgNAKNum + uint32_t AvgNAKNum; + + /// How many times we have decremented SND this congestion period. Used to limit the number of decrements to 5 + uint32_t DecCount; + + /// Every DecInterval NAKs per congestion period, we decrease the send rate + uint32_t DecInterval; + + /// Every outgoing datagram is assigned a sequence number, which increments by 1 every assignment + DatagramSequenceNumberType nextDatagramSequenceNumber; + + /// If a packet is marked as a packet pair, lastPacketPairPacketArrivalTime is set to the time it arrives + /// This is used so when the 2nd packet of the pair arrives, we can calculate the time interval between the two + CCTimeType lastPacketPairPacketArrivalTime; + + /// If a packet is marked as a packet pair, lastPacketPairSequenceNumber is checked to see if the last packet we got + /// was the packet immediately before the one that arrived + /// If so, we can use lastPacketPairPacketArrivalTime to get the time between the two packets, and thus estimate the link capacity + /// Initialized to -1, so the first packet of a packet pair won't be treated as the second + DatagramSequenceNumberType lastPacketPairSequenceNumber; + + /// Used to cap UpdateWindowSizeAndAckOnAckPerSyn() to once speed increase per SYN + /// This is to prevent speeding up faster than congestion control can compensate for + CCTimeType lastUpdateWindowSizeAndAck; + + /// Every time SND is halved due to timeout, the RTO is increased + /// This is to prevent massive retransmissions to an unresponsive system + /// Reset on any data arriving + double ExpCount; + + /// Total number of user data bytes sent + /// Used to adjust the window size, on ACK, during slow start + uint64_t totalUserDataBytesSent; + + /// When we get an ack, if oldestUnsentAck==0, set it to the current time + /// When we send out acks, set oldestUnsentAck to 0 + CCTimeType oldestUnsentAck; + + // Maximum amount of bytes that the user can send, e.g. the size of one full datagram + uint32_t MAXIMUM_MTU_INCLUDING_UDP_HEADER; + + // Max window size + double CWND_MAX_THRESHOLD; + + /// Track which datagram sequence numbers have arrived. + /// If a sequence number is skipped, send a NAK for all skipped messages + DatagramSequenceNumberType expectedNextSequenceNumber; + + // How many times have we sent B and AS? Used to force it to send at least CC_RAKNET_UDT_PACKET_HISTORY_LENGTH times + // Otherwise, the default values in the array generate inaccuracy + uint32_t sendBAndASCount; + + /// Most recent values read into the corresponding lists + /// Used during the beginning of a connection, when the median filter is still inaccurate + BytesPerMicrosecond mostRecentPacketArrivalHistory; + + bool hasWrittenToPacketPairReceiptHistory; + +// uint32_t rttHistory[RTT_HISTORY_LENGTH]; +// uint32_t rttHistoryIndex; +// uint32_t rttHistoryWriteCount; +// uint32_t rttSum, rttLow; +// CCTimeType lastSndUpdateTime; + double estimatedLinkCapacityBytesPerSecond; + + // --------------------------- PROTECTED METHODS --------------------------- + /// Update nextSYNUpdate by SYN, or the same amount past the current time if no updates have occurred for a long time + void SetNextSYNUpdate(CCTimeType currentTime); + + /// Returns the rate of data arrival, based on packets arriving on the sender. + BytesPerMicrosecond ReceiverCalculateDataArrivalRate(CCTimeType curTime) const; + /// Returns the median of the data arrival rate + BytesPerMicrosecond ReceiverCalculateDataArrivalRateMedian(void) const; + + /// Calculates the median an array of BytesPerMicrosecond + static BytesPerMicrosecond CalculateListMedianRecursive(const BytesPerMicrosecond inputList[CC_RAKNET_UDT_PACKET_HISTORY_LENGTH], int inputListLength, int lessThanSum, int greaterThanSum); +// static uint32_t CalculateListMedianRecursive(const uint32_t inputList[RTT_HISTORY_LENGTH], int inputListLength, int lessThanSum, int greaterThanSum); + + /// Same as GetRTOForRetransmission, but does not factor in ExpCount + /// This is because the receiver does not know ExpCount for the sender, and even if it did, acks shouldn't be delayed for this reason + CCTimeType GetSenderRTOForACK(void) const; + + /// Stop slow start, and enter normal transfer rate + void EndSlowStart(void); + + /// Does the named conversion + inline double BytesPerMicrosecondToPacketsPerMillisecond(BytesPerMicrosecond in); + + /// Update the round trip time, from ACK or ACK2 + //void UpdateRTT(CCTimeType rtt); + + /// Update the corresponding variables pre-slow start + void UpdateWindowSizeAndAckOnAckPreSlowStart(double totalUserDataBytesAcked); + + /// Update the corresponding variables post-slow start + void UpdateWindowSizeAndAckOnAckPerSyn(CCTimeType curTime, CCTimeType rtt, bool isContinuousSend, DatagramSequenceNumberType sequenceNumber); + + + /// Sets halveSNDOnNoDataTime to the future, and also resets ExpCount, which is used to multiple the RTO on no data arriving at all + void ResetOnDataArrivalHalveSNDOnNoDataTime(CCTimeType curTime); + + // Init array + void InitPacketArrivalHistory(void); + + // Printf + void PrintLowBandwidthWarning(void); + + // Bug: SND can sometimes get super high - have seen 11693 + void CapMinSnd(const char *file, int line); + + void DecreaseTimeBetweenSends(void); + void IncreaseTimeBetweenSends(void); + + int bytesCanSendThisTick; + + CCTimeType lastRttOnIncreaseSendRate; + CCTimeType lastRtt; + + DatagramSequenceNumberType nextCongestionControlBlock; + bool hadPacketlossThisBlock; + DataStructures::Queue pingsLastInterval; +}; + +} + +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/CheckSum.cpp b/project/lib_projects/raknet/jni/RaknetSources/CheckSum.cpp new file mode 100755 index 0000000..4ba7fcd --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CheckSum.cpp @@ -0,0 +1,97 @@ +/** +* @file +* @brief CheckSum implementation from http://www.flounder.com/checksum.htm +* +*/ +#include "CheckSum.h" + +/**************************************************************************** +* CheckSum::add +* Inputs: +* unsigned int d: word to add +* Result: void +* +* Effect: +* Adds the bytes of the unsigned int to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned int value ) +{ + union + { + unsigned int value; + unsigned char bytes[ 4 ]; + } + + data; + data.value = value; + + for ( unsigned int i = 0; i < sizeof( data.bytes ); i++ ) + Add ( data.bytes[ i ] ) + + ; +} // CheckSum::add(unsigned int) + +/**************************************************************************** +* CheckSum::add +* Inputs: +* unsigned short value: +* Result: void +* +* Effect: +* Adds the bytes of the unsigned short value to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned short value ) +{ + union + { + unsigned short value; + unsigned char bytes[ 2 ]; + } + + data; + data.value = value; + + for ( unsigned int i = 0; i < sizeof( data.bytes ); i++ ) + Add ( data.bytes[ i ] ) + + ; +} // CheckSum::add(unsigned short) + +/**************************************************************************** +* CheckSum::add +* Inputs: +* unsigned char value: +* Result: void +* +* Effect: +* Adds the byte to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned char value ) +{ + unsigned char cipher = (unsigned char)( value ^ ( r >> 8 ) ); + r = ( cipher + r ) * c1 + c2; + sum += cipher; +} // CheckSum::add(unsigned char) + + +/**************************************************************************** +* CheckSum::add +* Inputs: +* LPunsigned char b: pointer to byte array +* unsigned int length: count +* Result: void +* +* Effect: +* Adds the bytes to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned char *b, unsigned int length ) +{ + for ( unsigned int i = 0; i < length; i++ ) + Add ( b[ i ] ) + + ; +} // CheckSum::add(LPunsigned char, unsigned int) diff --git a/project/lib_projects/raknet/jni/RaknetSources/CheckSum.h b/project/lib_projects/raknet/jni/RaknetSources/CheckSum.h new file mode 100755 index 0000000..09e57f7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CheckSum.h @@ -0,0 +1,53 @@ +/// +/// \file CheckSum.cpp +/// \brief [Internal] CheckSum implementation from http://www.flounder.com/checksum.htm +/// + +#ifndef __CHECKSUM_H +#define __CHECKSUM_H + +#include "RakMemoryOverride.h" + +/// Generates and validates checksums +class CheckSum +{ + +public: + + /// Default constructor + + CheckSum() + { + Clear(); + } + + void Clear() + { + sum = 0; + r = 55665; + c1 = 52845; + c2 = 22719; + } + + void Add ( unsigned int w ); + + + void Add ( unsigned short w ); + + void Add ( unsigned char* b, unsigned int length ); + + void Add ( unsigned char b ); + + unsigned int Get () + { + return sum; + } + +protected: + unsigned short r; + unsigned short c1; + unsigned short c2; + unsigned int sum; +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/CloudClient.cpp b/project/lib_projects/raknet/jni/RaknetSources/CloudClient.cpp new file mode 100755 index 0000000..cdfd2c6 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CloudClient.cpp @@ -0,0 +1,242 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 + +#include "CloudClient.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakPeerInterface.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(CloudClient,CloudClient); + +CloudClient::CloudClient() +{ + callback=0; + allocator=&unsetDefaultAllocator; +} +CloudClient::~CloudClient() +{ +} +void CloudClient::SetDefaultCallbacks(CloudAllocator *_allocator, CloudClientCallback *_callback) +{ + callback=_callback; + allocator=_allocator; +} +void CloudClient::Post(CloudKey *cloudKey, const unsigned char *data, uint32_t dataLengthBytes, RakNetGUID systemIdentifier) +{ + RakAssert(cloudKey); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_POST_REQUEST); + cloudKey->Serialize(true,&bsOut); + if (data==0) + dataLengthBytes=0; + bsOut.Write(dataLengthBytes); + if (dataLengthBytes>0) + bsOut.WriteAlignedBytes((const unsigned char*) data, dataLengthBytes); + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +void CloudClient::Release(DataStructures::List &keys, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_RELEASE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +bool CloudClient::Get(CloudQuery *keyQuery, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_GET_REQUEST); + keyQuery->Serialize(true, &bsOut); + bsOut.WriteCasted(0); // Specific systems + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); + return true; +} +bool CloudClient::Get(CloudQuery *keyQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_GET_REQUEST); + keyQuery->Serialize(true, &bsOut); + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + bsOut.Write(specificSystems[i]); + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); + return true; +} +bool CloudClient::Get(CloudQuery *keyQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_GET_REQUEST); + keyQuery->Serialize(true, &bsOut); + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + if (specificSystems[i]->clientGUID!=UNASSIGNED_RAKNET_GUID) + { + bsOut.Write(true); + bsOut.Write(specificSystems[i]->clientGUID); + } + else + { + bsOut.Write(false); + bsOut.Write(specificSystems[i]->clientSystemAddress); + } + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); + return true; +} +void CloudClient::Unsubscribe(DataStructures::List &keys, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_UNSUBSCRIBE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + bsOut.WriteCasted(0); + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +void CloudClient::Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_UNSUBSCRIBE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + bsOut.Write(specificSystems[i]); + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +void CloudClient::Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_UNSUBSCRIBE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + if (specificSystems[i]->clientGUID!=UNASSIGNED_RAKNET_GUID) + { + bsOut.Write(true); + bsOut.Write(specificSystems[i]->clientGUID); + } + else + { + bsOut.Write(false); + bsOut.Write(specificSystems[i]->clientSystemAddress); + } + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +PluginReceiveResult CloudClient::OnReceive(Packet *packet) +{ + (void) packet; + + return RR_CONTINUE_PROCESSING; +} +void CloudClient::OnGetReponse(Packet *packet, CloudClientCallback *_callback, CloudAllocator *_allocator) +{ + if (_callback==0) + _callback=callback; + if (_allocator==0) + _allocator=allocator; + + CloudQueryResult cloudQueryResult; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + cloudQueryResult.Serialize(false,&bsIn,_allocator); + bool deallocateRowsAfterReturn=true; + _callback->OnGet(&cloudQueryResult, &deallocateRowsAfterReturn); + if (deallocateRowsAfterReturn) + { + unsigned int i; + for (i=0; i < cloudQueryResult.rowsReturned.Size(); i++) + { + _allocator->DeallocateRowData(cloudQueryResult.rowsReturned[i]->data); + _allocator->DeallocateCloudQueryRow(cloudQueryResult.rowsReturned[i]); + } + } +} +void CloudClient::OnGetReponse(CloudQueryResult *cloudQueryResult, Packet *packet, CloudAllocator *_allocator) +{ + if (_allocator==0) + _allocator=allocator; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + cloudQueryResult->Serialize(false,&bsIn,_allocator); +} +void CloudClient::OnSubscriptionNotification(Packet *packet, CloudClientCallback *_callback, CloudAllocator *_allocator) +{ + if (_callback==0) + _callback=callback; + if (_allocator==0) + _allocator=allocator; + + bool wasUpdated=false; + CloudQueryRow row; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bsIn.Read(wasUpdated); + row.Serialize(false,&bsIn,_allocator); + bool deallocateRowAfterReturn=true; + _callback->OnSubscriptionNotification(&row, wasUpdated, &deallocateRowAfterReturn); + if (deallocateRowAfterReturn) + { + _allocator->DeallocateRowData(row.data); + } +} +void CloudClient::OnSubscriptionNotification(bool *wasUpdated, CloudQueryRow *row, Packet *packet, CloudAllocator *_allocator) +{ + if (_allocator==0) + _allocator=allocator; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bool b=false; + bsIn.Read(b); + *wasUpdated=b; + row->Serialize(false,&bsIn,_allocator); +} +void CloudClient::DeallocateWithDefaultAllocator(CloudQueryResult *cloudQueryResult) +{ + unsigned int i; + for (i=0; i < cloudQueryResult->rowsReturned.Size(); i++) + { + allocator->DeallocateRowData(cloudQueryResult->rowsReturned[i]->data); + allocator->DeallocateCloudQueryRow(cloudQueryResult->rowsReturned[i]); + } +} +void CloudClient::DeallocateWithDefaultAllocator(CloudQueryRow *row) +{ + allocator->DeallocateRowData(row->data); +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/CloudClient.h b/project/lib_projects/raknet/jni/RaknetSources/CloudClient.h new file mode 100755 index 0000000..293740d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CloudClient.h @@ -0,0 +1,163 @@ +/// \file CloudClient.h +/// \brief Queries CloudMemoryServer to download data that other clients have uploaded +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 + +#ifndef __CLOUD_CLIENT_H +#define __CLOUD_CLIENT_H + +#include "PluginInterface2.h" +#include "CloudCommon.h" +#include "RakMemoryOverride.h" +#include "DS_Hash.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class CloudClientCallback; + +/// \defgroup CLOUD_GROUP CloudComputing +/// \brief Contains the CloudClient and CloudServer plugins +/// \details The CloudServer plugins operates on requests from the CloudClient plugin. The servers are in a fully connected mesh topology, which the clients are connected to any server. Clients can interact with each other by posting and subscribing to memory updates, without being directly connected or even knowing about each other. +/// \ingroup PLUGINS_GROUP + +/// \brief Performs Post() and Get() operations on CloudMemoryServer +/// \details A CloudClient is a computer connected to one or more servers in a cloud configuration. Operations by one CloudClient can be received and subscribed to by other instances of CloudClient, without those clients being connected, even on different servers. +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudClient : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(CloudClient) + + CloudClient(); + virtual ~CloudClient(); + + /// \brief Set the default callbacks for OnGetReponse(), OnSubscriptionNotification(), and OnSubscriptionDataDeleted() + /// \details Pointers to CloudAllocator and CloudClientCallback can be stored by the system if desired. If a callback is not provided to OnGetReponse(), OnSubscriptionNotification(), OnSubscriptionDataDeleted(), the callback passed here will be used instead. + /// \param[in] _allocator An instance of CloudAllocator + /// \param[in] _callback An instance of CloudClientCallback + virtual void SetDefaultCallbacks(CloudAllocator *_allocator, CloudClientCallback *_callback); + + /// \brief Uploads data to the cloud + /// \details Data uploaded to the cloud will be stored by the server sent to, identified by \a systemIdentifier. + /// As long as you are connected to this server, the data will persist. Queries for that data by the Get() operation will + /// return the RakNetGUID and SystemAddress of the uploader, as well as the data itself. + /// Furthermore, if any clients are subscribed to the particular CloudKey passed, those clients will get update notices that the data has changed + /// Passing data with the same \a cloudKey more than once will overwrite the prior value. + /// This call will silently fail if CloudServer::SetMaxUploadBytesPerClient() is exceeded + /// \param[in] cloudKey Identifies the data being uploaded + /// \param[in] data A pointer to data to upload. This pointer does not need to persist past the call + /// \param[in] dataLengthBytes The length in bytes of \a data + /// \param[in] systemIdentifier A remote system running CloudServer that we are already connected to. + virtual void Post(CloudKey *cloudKey, const unsigned char *data, uint32_t dataLengthBytes, RakNetGUID systemIdentifier); + + /// \brief Releases one or more data previously uploaded with Post() + /// \details If a remote system has subscribed to one or more of the \a keys uploaded, they will get ID_CLOUD_SUBSCRIPTION_NOTIFICATION notifications containing the last value uploaded before deletions + /// \param[in] cloudKey Identifies the data to release. It is possible to remove uploads from multiple Post() calls at once. + /// \param[in] systemIdentifier A remote system running CloudServer that we are already connected to. + virtual void Release(DataStructures::List &keys, RakNetGUID systemIdentifier); + + /// \brief Gets data from the cloud + /// \details For a given query containing one or more keys, return data that matches those keys. + /// The values will be returned in the ID_CLOUD_GET_RESPONSE packet, which should be passed to OnGetReponse() and will invoke CloudClientCallback::OnGet() + /// CloudQuery::startingRowIndex is used to skip the first n values that would normally be returned.. + /// CloudQuery::maxRowsToReturn is used to limit the number of rows returned. The number of rows returned may also be limited by CloudServer::SetMaxBytesPerDownload(); + /// CloudQuery::subscribeToResults if set to true, will cause ID_CLOUD_SUBSCRIPTION_NOTIFICATION to be returned to us when any of the keys in the query are updated or are deleted. + /// ID_CLOUD_GET_RESPONSE will be returned even if subscribing to the result list. Only later updates will return ID_CLOUD_SUBSCRIPTION_NOTIFICATION. + /// Calling Get() with CloudQuery::subscribeToResults false, when you are already subscribed, does not remove the subscription. Use Unsubscribe() for this. + /// Resubscribing using the same CloudKey but a different or no \a specificSystems overwrites the subscribed systems for those keys. + /// \param[in] cloudQuery One or more keys, and optional parameters to perform with the Get + /// \param[in] systemIdentifier A remote system running CloudServer that we are already connected to. + /// \param[in] specificSystems It is possible to get or subscribe to updates only for specific uploading CloudClient instances. Pass the desired instances here. The overload that does not have the specificSystems parameter is treated as subscribing to all updates from all clients. + virtual bool Get(CloudQuery *cloudQuery, RakNetGUID systemIdentifier); + virtual bool Get(CloudQuery *cloudQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + virtual bool Get(CloudQuery *cloudQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + + /// \brief Unsubscribe from updates previously subscribed to using Get() with the CloudQuery::subscribeToResults set to true + /// The \a keys and \a specificSystems parameters are logically treated as AND when checking subscriptions on the server + /// The overload that does not take specificSystems unsubscribes to all passed keys, regardless of system + /// You cannot unsubscribe specific systems when previously subscribed to updates from any system. To do this, first Unsubscribe() from all systems, and call Get() with the \a specificSystems parameter explicilty listing the systems you want to subscribe to. + virtual void Unsubscribe(DataStructures::List &keys, RakNetGUID systemIdentifier); + virtual void Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + virtual void Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + + /// \brief Call this when you get ID_CLOUD_GET_RESPONSE + /// If \a callback or \a allocator are 0, the default callbacks passed to SetDefaultCallbacks() are used + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _callback Callback to be called from the function containing output parameters. If 0, default is used. + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnGetReponse(Packet *packet, CloudClientCallback *_callback=0, CloudAllocator *_allocator=0); + + /// \brief Call this when you get ID_CLOUD_GET_RESPONSE + /// Different form of OnGetReponse that returns to a structure that you pass, instead of using a callback + /// You are responsible for deallocation with this form + /// If \a allocator is 0, the default callback passed to SetDefaultCallbacks() are used + /// \param[out] cloudQueryResult A pointer to a structure that will be filled out with data + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnGetReponse(CloudQueryResult *cloudQueryResult, Packet *packet, CloudAllocator *_allocator=0); + + /// \brief Call this when you get ID_CLOUD_SUBSCRIPTION_NOTIFICATION + /// If \a callback or \a allocator are 0, the default callbacks passed to SetDefaultCallbacks() are used + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _callback Callback to be called from the function containing output parameters. If 0, default is used. + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnSubscriptionNotification(Packet *packet, CloudClientCallback *_callback=0, CloudAllocator *_allocator=0); + + /// \brief Call this when you get ID_CLOUD_SUBSCRIPTION_NOTIFICATION + /// Different form of OnSubscriptionNotification that returns to a structure that you pass, instead of using a callback + /// You are responsible for deallocation with this form + /// If \a allocator is 0, the default callback passed to SetDefaultCallbacks() are used + /// \param[out] wasUpdated If true, the row was updated. If false, it was deleted. \a result will contain the last value just before deletion + /// \param[out] row A pointer to a structure that will be filled out with data + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnSubscriptionNotification(bool *wasUpdated, CloudQueryRow *row, Packet *packet, CloudAllocator *_allocator=0); + + /// If you never specified an allocator, and used the non-callback form of OnGetReponse(), deallocate cloudQueryResult with this function + virtual void DeallocateWithDefaultAllocator(CloudQueryResult *cloudQueryResult); + + /// If you never specified an allocator, and used the non-callback form of OnSubscriptionNotification(), deallocate row with this function + virtual void DeallocateWithDefaultAllocator(CloudQueryRow *row); + +protected: + PluginReceiveResult OnReceive(Packet *packet); + + CloudClientCallback *callback; + CloudAllocator *allocator; + + CloudAllocator unsetDefaultAllocator; +}; + +/// \ingroup CLOUD_GROUP +/// Parses ID_CLOUD_GET_RESPONSE and ID_CLOUD_SUBSCRIPTION_NOTIFICATION in a convenient callback form +class RAK_DLL_EXPORT CloudClientCallback +{ +public: + CloudClientCallback() {} + virtual ~CloudClientCallback() {} + + /// \brief Called in response to ID_CLOUD_GET_RESPONSE + /// \param[out] result Contains the original query passed to Get(), and a list of rows returned. + /// \param[out] deallocateRowsAfterReturn CloudQueryResult::rowsReturned will be deallocated after the function returns by default. Set to false to not deallocate these pointers. The pointers are allocated through CloudAllocator. + virtual void OnGet(RakNet::CloudQueryResult *result, bool *deallocateRowsAfterReturn) {(void) result; (void) deallocateRowsAfterReturn;} + + /// \brief Called in response to ID_CLOUD_SUBSCRIPTION_NOTIFICATION + /// \param[out] result Contains the row updated + /// \param[out] wasUpdated If true, the row was updated. If false, it was deleted. \a result will contain the last value just before deletion + /// \param[out] deallocateRowAfterReturn \a result will be deallocated after the function returns by default. Set to false to not deallocate these pointers. The pointers are allocated through CloudAllocator. + virtual void OnSubscriptionNotification(RakNet::CloudQueryRow *result, bool wasUpdated, bool *deallocateRowAfterReturn) {(void) result; (void) wasUpdated; (void) deallocateRowAfterReturn;} +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/CloudCommon.cpp b/project/lib_projects/raknet/jni/RaknetSources/CloudCommon.cpp new file mode 100755 index 0000000..7d07410 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CloudCommon.cpp @@ -0,0 +1,159 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 || _RAKNET_SUPPORT_CloudServer==1 + +#include "CloudCommon.h" +#include "BitStream.h" + +using namespace RakNet; + +int RakNet::CloudKeyComp(const CloudKey &key, const CloudKey &data) +{ + if (key.primaryKey < data.primaryKey) + return -1; + if (key.primaryKey > data.primaryKey) + return 1; + if (key.secondaryKey < data.secondaryKey) + return -1; + if (key.secondaryKey > data.secondaryKey) + return 1; + return 0; +} + +CloudQueryRow* CloudAllocator::AllocateCloudQueryRow(void) +{ + return RakNet::OP_NEW(_FILE_AND_LINE_); +} +void CloudAllocator::DeallocateCloudQueryRow(CloudQueryRow *row) +{ + RakNet::OP_DELETE(row,_FILE_AND_LINE_); +} +unsigned char *CloudAllocator::AllocateRowData(uint32_t bytesNeededForData) +{ + return (unsigned char*) rakMalloc_Ex(bytesNeededForData,_FILE_AND_LINE_); +} +void CloudAllocator::DeallocateRowData(void *data) +{ + rakFree_Ex(data, _FILE_AND_LINE_); +} +void CloudKey::Serialize(bool writeToBitstream, BitStream *bitStream) +{ + bitStream->Serialize(writeToBitstream, primaryKey); + bitStream->Serialize(writeToBitstream, secondaryKey); +} +void CloudQuery::Serialize(bool writeToBitstream, BitStream *bitStream) +{ + bool startingRowIndexIsZero=0; + bool maxRowsToReturnIsZero=0; + startingRowIndexIsZero=startingRowIndex==0; + maxRowsToReturnIsZero=maxRowsToReturn==0; + bitStream->Serialize(writeToBitstream,startingRowIndexIsZero); + bitStream->Serialize(writeToBitstream,maxRowsToReturnIsZero); + bitStream->Serialize(writeToBitstream,subscribeToResults); + if (startingRowIndexIsZero==false) + bitStream->Serialize(writeToBitstream,startingRowIndex); + if (maxRowsToReturnIsZero==false) + bitStream->Serialize(writeToBitstream,maxRowsToReturn); + RakAssert(keys.Size()<(uint16_t)-1); + uint16_t numKeys = (uint16_t) keys.Size(); + bitStream->Serialize(writeToBitstream,numKeys); + if (writeToBitstream) + { + for (uint16_t i=0; i < numKeys; i++) + { + keys[i].Serialize(true,bitStream); + } + } + else + { + CloudKey cmdk; + for (uint16_t i=0; i < numKeys; i++) + { + cmdk.Serialize(false,bitStream); + keys.Push(cmdk, _FILE_AND_LINE_); + } + } +} +void CloudQueryRow::Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator) +{ + key.Serialize(writeToBitstream,bitStream); + bitStream->Serialize(writeToBitstream,serverSystemAddress); + bitStream->Serialize(writeToBitstream,clientSystemAddress); + bitStream->Serialize(writeToBitstream,serverGUID); + bitStream->Serialize(writeToBitstream,clientGUID); + bitStream->Serialize(writeToBitstream,length); + if (writeToBitstream) + { + bitStream->WriteAlignedBytes((const unsigned char*) data,length); + } + else + { + if (length>0) + { + data = allocator->AllocateRowData(length); + if (data) + { + bitStream->ReadAlignedBytes((unsigned char *) data,length); + } + else + { + notifyOutOfMemory(_FILE_AND_LINE_); + } + } + else + data=0; + } +} +void CloudQueryResult::SerializeHeader(bool writeToBitstream, BitStream *bitStream) +{ + cloudQuery.Serialize(writeToBitstream,bitStream); + bitStream->Serialize(writeToBitstream,subscribeToResults); +} +void CloudQueryResult::SerializeNumRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream) +{ + bitStream->Serialize(writeToBitstream,numRows); +} +void CloudQueryResult::SerializeCloudQueryRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream, CloudAllocator *allocator) +{ + if (writeToBitstream) + { + for (uint16_t i=0; i < numRows; i++) + { + rowsReturned[i]->Serialize(true,bitStream, allocator); + } + } + else + { + CloudQueryRow* cmdr; + for (uint16_t i=0; i < numRows; i++) + { + cmdr = allocator->AllocateCloudQueryRow(); + if (cmdr) + { + cmdr->Serialize(false,bitStream,allocator); + if (cmdr->data==0 && cmdr->length>0) + { + allocator->DeallocateCloudQueryRow(cmdr); + notifyOutOfMemory(_FILE_AND_LINE_); + numRows=i; + return; + } + rowsReturned.Push(cmdr, _FILE_AND_LINE_); + } + else + { + notifyOutOfMemory(_FILE_AND_LINE_); + numRows=i; + return; + } + } + } +} +void CloudQueryResult::Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator) +{ + SerializeHeader(writeToBitstream, bitStream); + uint32_t numRows = (uint32_t) rowsReturned.Size(); + SerializeNumRows(writeToBitstream, numRows, bitStream); + SerializeCloudQueryRows(writeToBitstream, numRows, bitStream, allocator); +} + +#endif // #if _RAKNET_SUPPORT_CloudMemoryClient==1 || _RAKNET_SUPPORT_CloudMemoryServer==1 diff --git a/project/lib_projects/raknet/jni/RaknetSources/CloudCommon.h b/project/lib_projects/raknet/jni/RaknetSources/CloudCommon.h new file mode 100755 index 0000000..dddb2cc --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CloudCommon.h @@ -0,0 +1,141 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 || _RAKNET_SUPPORT_CloudServer==1 + +#ifndef __CLOUD_COMMON_H +#define __CLOUD_COMMON_H + +#include "RakNetTypes.h" +#include "RakString.h" + +namespace RakNet +{ + +class BitStream; +struct CloudQueryRow; + +/// Allocates CloudQueryRow and the row data. Override to use derived classes or different allocators +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudAllocator +{ +public: + CloudAllocator() {} + virtual ~CloudAllocator() {} + + /// \brief Allocate a row + virtual CloudQueryRow* AllocateCloudQueryRow(void); + /// \brief Free a row + virtual void DeallocateCloudQueryRow(CloudQueryRow *row); + /// \brief Allocate CloudQueryRow::data + virtual unsigned char *AllocateRowData(uint32_t bytesNeededForData); + /// \brief Free CloudQueryRow::data + virtual void DeallocateRowData(void *data); +}; + +/// Serves as a key to identify data uploaded to or queried from the server. +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudKey +{ + CloudKey() {} + CloudKey(RakNet::RakString _primaryKey, uint32_t _secondaryKey) : primaryKey(_primaryKey), secondaryKey(_secondaryKey) {} + ~CloudKey() {} + + /// Identifies the primary key. This is intended to be a major category, such as the name of the application + /// Must be non-empty + RakNet::RakString primaryKey; + + /// Identifies the secondary key. This is intended to be a subcategory enumeration, such as PLAYER_LIST or RUNNING_SCORES + uint32_t secondaryKey; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream); +}; + +/// \internal +int CloudKeyComp(const CloudKey &key, const CloudKey &data); + +/// Data members used to query the cloud +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudQuery +{ + CloudQuery() {startingRowIndex=0; maxRowsToReturn=0; subscribeToResults=false;} + + /// List of keys to query. Must be at least of length 1. + /// This query is run on uploads from all clients, and those that match the combination of primaryKey and secondaryKey are potentially returned + /// If you pass more than one key at a time, the results are concatenated so if you need to differentiate between queries then send two different queries + DataStructures::List keys; + + /// If limiting the number of rows to return, this is the starting offset into the list. Has no effect unless maxRowsToReturn is > 0 + uint32_t startingRowIndex; + + /// Maximum number of rows to return. Actual number may still be less than this. Pass 0 to mean no-limit. + uint32_t maxRowsToReturn; + + /// If true, automatically get updates as the results returned to you change. Unsubscribe with CloudMemoryClient::Unsubscribe() + bool subscribeToResults; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream); +}; + +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudQueryRow +{ + /// Key used to identify this data + CloudKey key; + + /// Data uploaded + unsigned char *data; + + /// Length of data uploaded + uint32_t length; + + /// System address of server that is holding this data, and the client is connected to + SystemAddress serverSystemAddress; + + /// System address of client that uploaded this data + SystemAddress clientSystemAddress; + + /// RakNetGUID of server that is holding this data, and the client is connected to + RakNetGUID serverGUID; + + /// RakNetGUID of client that uploaded this data + RakNetGUID clientGUID; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator); +}; + +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudQueryResult +{ + /// Query originally passed to Download() + CloudQuery cloudQuery; + + /// Results returned from query. If there were multiple keys in CloudQuery::keys then see resultKeyIndices + DataStructures::List rowsReturned; + + /// If there were multiple keys in CloudQuery::keys, then each key is processed in order and the result concatenated to rowsReturned + /// The starting index of each query is written to resultKeyIndices + /// For example, if CloudQuery::keys had 4 keys, returning 3 rows, 0, rows, 5 rows, and 12 rows then + /// resultKeyIndices would be 0, 3, 3, 8 + DataStructures::List resultKeyIndices; + + + /// Whatever was passed to CloudClient::Get() as CloudQuery::subscribeToResults + bool subscribeToResults; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator); + /// \internal + void SerializeHeader(bool writeToBitstream, BitStream *bitStream); + /// \internal + void SerializeNumRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream); + /// \internal + void SerializeCloudQueryRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream, CloudAllocator *allocator); +}; + +} // Namespace RakNet + +#endif // __CLOUD_COMMON_H + +#endif // #if _RAKNET_SUPPORT_CloudClient==1 || _RAKNET_SUPPORT_CloudServer==1 diff --git a/project/lib_projects/raknet/jni/RaknetSources/CloudServer.cpp b/project/lib_projects/raknet/jni/RaknetSources/CloudServer.cpp new file mode 100755 index 0000000..d5fc8c1 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CloudServer.cpp @@ -0,0 +1,1673 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudServer==1 + +#include "CloudServer.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakPeerInterface.h" + +enum ServerToServerCommands +{ + STSC_PROCESS_GET_REQUEST, + STSC_PROCESS_GET_RESPONSE, + STSC_ADD_UPLOADED_AND_SUBSCRIBED_KEYS, + STSC_ADD_UPLOADED_KEY, + STSC_ADD_SUBSCRIBED_KEY, + STSC_REMOVE_UPLOADED_KEY, + STSC_REMOVE_SUBSCRIBED_KEY, + STSC_DATA_CHANGED, +}; + +using namespace RakNet; + +int CloudServer::RemoteServerComp(const RakNetGUID &key, RemoteServer* const &data ) +{ + if (key < data->serverAddress) + return -1; + if (key > data->serverAddress) + return 1; + return 0; +} +int CloudServer::KeySubscriberIDComp(const CloudKey &key, KeySubscriberID * const &data ) +{ + if (key.primaryKey < data->key.primaryKey) + return -1; + if (key.primaryKey > data->key.primaryKey) + return 1; + if (key.secondaryKey < data->key.secondaryKey) + return -1; + if (key.secondaryKey > data->key.secondaryKey) + return 1; + return 0; +} +int CloudServer::KeyDataPtrComp( const RakNetGUID &key, CloudData* const &data ) +{ + if (key < data->clientGUID) + return -1; + if (key > data->clientGUID) + return 1; + return 0; +} +int CloudServer::KeyDataListComp( const CloudKey &key, CloudDataList * const &data ) +{ + if (key.primaryKey < data->key.primaryKey) + return -1; + if (key.primaryKey > data->key.primaryKey) + return 1; + if (key.secondaryKey < data->key.secondaryKey) + return -1; + if (key.secondaryKey > data->key.secondaryKey) + return 1; + return 0; +} +int CloudServer::BufferedGetResponseFromServerComp(const RakNetGUID &key, CloudServer::BufferedGetResponseFromServer* const &data ) +{ + if (key < data->serverAddress) + return -1; + if (key > data->serverAddress) + return 1; + return 0; +} +int CloudServer::GetRequestComp(const uint32_t &key, CloudServer::GetRequest* const &data ) +{ + if (key < data->requestId) + return -1; + if (key > data->requestId) + return -1; + return 0; +} +void CloudServer::CloudQueryWithAddresses::Serialize(bool writeToBitstream, BitStream *bitStream) +{ + cloudQuery.Serialize(writeToBitstream, bitStream); + + if (writeToBitstream) + { + bitStream->WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + bitStream->Write(specificSystems[i]); + } + } + else + { + uint16_t specificSystemsCount; + RakNetGUID addressOrGuid; + bitStream->Read(specificSystemsCount); + for (uint16_t i=0; i < specificSystemsCount; i++) + { + bitStream->Read(addressOrGuid); + specificSystems.Push(addressOrGuid, _FILE_AND_LINE_); + } + } +} +bool CloudServer::GetRequest::AllRemoteServersHaveResponded(void) const +{ + unsigned int i; + for (i=0; i < remoteServerResponses.Size(); i++) + if (remoteServerResponses[i]->gotResult==false) + return false; + return true; +} +void CloudServer::GetRequest::Clear(CloudAllocator *allocator) +{ + unsigned int i; + for (i=0; i < remoteServerResponses.Size(); i++) + { + remoteServerResponses[i]->Clear(allocator); + RakNet::OP_DELETE(remoteServerResponses[i], _FILE_AND_LINE_); + } + remoteServerResponses.Clear(false, _FILE_AND_LINE_); +} +void CloudServer::BufferedGetResponseFromServer::Clear(CloudAllocator *allocator) +{ + unsigned int i; + for (i=0; i < queryResult.rowsReturned.Size(); i++) + { + allocator->DeallocateRowData(queryResult.rowsReturned[i]->data); + allocator->DeallocateCloudQueryRow(queryResult.rowsReturned[i]); + } + queryResult.rowsReturned.Clear(false, _FILE_AND_LINE_); +} +CloudServer::CloudServer() +{ + maxUploadBytesPerClient=0; + maxBytesPerDowload=0; + nextGetRequestId=0; + nextGetRequestsCheck=0; +} +CloudServer::~CloudServer() +{ + Clear(); +} +void CloudServer::SetMaxUploadBytesPerClient(uint64_t bytes) +{ + maxUploadBytesPerClient=bytes; +} +void CloudServer::SetMaxBytesPerDownload(uint64_t bytes) +{ + maxBytesPerDowload=bytes; +} +void CloudServer::Update(void) +{ + // Timeout getRequests + RakNet::Time time = RakNet::Time(); + if (time > nextGetRequestsCheck) + { + nextGetRequestsCheck=time+1000; + + unsigned int i=0; + while (i < getRequests.Size()) + { + if (time - getRequests[i]->requestStartTime > 3000) + { + // Remote server is not responding, just send back data with whoever did respond + ProcessAndTransmitGetRequest(getRequests[i]); + getRequests[i]->Clear(this); + RakNet::OP_DELETE(getRequests[i],_FILE_AND_LINE_); + getRequests.RemoveAtIndex(i); + } + else + { + i++; + } + } + } +} +PluginReceiveResult CloudServer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_CLOUD_POST_REQUEST: + OnPostRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_RELEASE_REQUEST: + OnReleaseRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_GET_REQUEST: + OnGetRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_UNSUBSCRIBE_REQUEST: + OnUnsubscribeRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_SERVER_TO_SERVER_COMMAND: + if (packet->length>1) + { + switch (packet->data[1]) + { + case STSC_PROCESS_GET_REQUEST: + OnServerToServerGetRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_PROCESS_GET_RESPONSE: + OnServerToServerGetResponse(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_ADD_UPLOADED_AND_SUBSCRIBED_KEYS: + OnSendUploadedAndSubscribedKeysToServer(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_ADD_UPLOADED_KEY: + OnSendUploadedKeyToServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_ADD_SUBSCRIBED_KEY: + OnSendSubscribedKeyToServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_REMOVE_UPLOADED_KEY: + OnRemoveUploadedKeyFromServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_REMOVE_SUBSCRIBED_KEY: + OnRemoveSubscribedKeyFromServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_DATA_CHANGED: + OnServerDataChanged(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void CloudServer::OnPostRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + CloudKey key; + key.Serialize(false,&bsIn); + uint32_t dataLengthBytes; + bsIn.Read(dataLengthBytes); + if (maxUploadBytesPerClient>0 && dataLengthBytes>maxUploadBytesPerClient) + return; // Exceeded max upload bytes + + bsIn.AlignReadToByteBoundary(); + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnPostRequest(packet->guid, packet->systemAddress, key, dataLengthBytes, (const char*) bsIn.GetData()+BITS_TO_BYTES(bsIn.GetReadOffset()))==false) + return; + } + + unsigned char *data; + if (dataLengthBytes>CLOUD_SERVER_DATA_STACK_SIZE) + { + data = (unsigned char *) rakMalloc_Ex(dataLengthBytes,_FILE_AND_LINE_); + if (data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return; + } + bsIn.ReadAlignedBytes(data,dataLengthBytes); + } + else + data=0; + + // Add this system to remoteSystems if they aren't there already + DataStructures::HashIndex remoteSystemsHashIndex = remoteSystems.GetIndexOf(packet->guid); + RemoteCloudClient *remoteCloudClient; + if (remoteSystemsHashIndex.IsInvalid()) + { + remoteCloudClient = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteCloudClient->uploadedKeys.Insert(key,key,true,_FILE_AND_LINE_); + remoteCloudClient->uploadedBytes=0; + remoteSystems.Push(packet->guid, remoteCloudClient, _FILE_AND_LINE_); + } + else + { + remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemsHashIndex); + bool objectExists; + // Add to RemoteCloudClient::uploadedKeys if it isn't there already + unsigned int uploadedKeysIndex = remoteCloudClient->uploadedKeys.GetIndexFromKey(key,&objectExists); + if (objectExists==false) + { + remoteCloudClient->uploadedKeys.InsertAtIndex(key, uploadedKeysIndex, _FILE_AND_LINE_); + } + } + + bool cloudDataAlreadyUploaded; + unsigned int dataRepositoryIndex; + bool dataRepositoryExists; + CloudDataList* cloudDataList = GetOrAllocateCloudDataList(key, &dataRepositoryExists, dataRepositoryIndex); + if (dataRepositoryExists==false) + { + cloudDataList->uploaderCount=1; + cloudDataAlreadyUploaded=false; + } + else + { + cloudDataAlreadyUploaded=cloudDataList->uploaderCount>0; + cloudDataList->uploaderCount++; + } + + CloudData *cloudData; + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(packet->guid, &keyDataListExists); + if (keyDataListExists==false) + { + if (maxUploadBytesPerClient>0 && remoteCloudClient->uploadedBytes+dataLengthBytes>maxUploadBytesPerClient) + { + // Undo prior insertion of cloudDataList into cloudData if needed + if (keyDataListExists==false) + { + RakNet::OP_DELETE(cloudDataList,_FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + + if (remoteCloudClient->IsUnused()) + { + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.Remove(packet->guid, _FILE_AND_LINE_); + } + + if (dataLengthBytes>CLOUD_SERVER_DATA_STACK_SIZE) + rakFree_Ex(data, _FILE_AND_LINE_); + + return; + } + + cloudData = RakNet::OP_NEW(_FILE_AND_LINE_); + cloudData->dataLengthBytes=dataLengthBytes; + cloudData->isUploaded=true; + if (forceAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + cloudData->serverSystemAddress=forceAddress; + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetExternalID(packet->systemAddress).GetPort()); + } + else + { + cloudData->serverSystemAddress=rakPeerInterface->GetExternalID(packet->systemAddress); + } + if (cloudData->serverSystemAddress.GetPort()==0) + { + // Fix localhost port + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetSocket(UNASSIGNED_SYSTEM_ADDRESS)->boundAddress.GetPort()); + } + cloudData->clientSystemAddress=packet->systemAddress; + cloudData->serverGUID=rakPeerInterface->GetMyGUID(); + cloudData->clientGUID=packet->guid; + cloudDataList->keyData.Insert(packet->guid,cloudData,true,_FILE_AND_LINE_); + } + else + { + cloudData = cloudDataList->keyData[keyDataListIndex]; + + if (cloudDataAlreadyUploaded==false) + { + if (forceAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + cloudData->serverSystemAddress=forceAddress; + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetExternalID(packet->systemAddress).GetPort()); + } + else + { + cloudData->serverSystemAddress=rakPeerInterface->GetExternalID(packet->systemAddress); + } + if (cloudData->serverSystemAddress.GetPort()==0) + { + // Fix localhost port + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetSocket(UNASSIGNED_SYSTEM_ADDRESS)->boundAddress.GetPort()); + } + + cloudData->clientSystemAddress=packet->systemAddress; + } + + if (maxUploadBytesPerClient>0 && remoteCloudClient->uploadedBytes-cloudData->dataLengthBytes+dataLengthBytes>maxUploadBytesPerClient) + { + // Undo prior insertion of cloudDataList into cloudData if needed + if (dataRepositoryExists==false) + { + RakNet::OP_DELETE(cloudDataList,_FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + return; + } + else + { + // Subtract already used bytes we are overwriting + remoteCloudClient->uploadedBytes-=cloudData->dataLengthBytes; + } + + if (cloudData->allocatedData!=0) + rakFree_Ex(cloudData->allocatedData,_FILE_AND_LINE_); + } + + if (dataLengthBytes>CLOUD_SERVER_DATA_STACK_SIZE) + { + // Data already allocated + cloudData->allocatedData=data; + cloudData->dataPtr=data; + } + else + { + // Read to stack + if (dataLengthBytes>0) + bsIn.ReadAlignedBytes(cloudData->stackData,dataLengthBytes); + cloudData->allocatedData=0; + cloudData->dataPtr=cloudData->stackData; + } + // Update how many bytes were written for this data + cloudData->dataLengthBytes=dataLengthBytes; + remoteCloudClient->uploadedBytes+=dataLengthBytes; + + if (cloudDataAlreadyUploaded==false) + { + // New data field + SendUploadedKeyToServers(cloudDataList->key); + } + + // Existing data field changed + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudData->specificSubscribers, true ); + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudDataList->nonSpecificSubscribers, true ); + + // Send update to all remote servers that subscribed to this key + NotifyServerSubscribersOfDataChange(cloudData, cloudDataList->key, true); + + // I could have also subscribed to a key not yet updated locally + // This means I have to go through every RemoteClient that wants this key + // Seems like cloudData->specificSubscribers is unnecessary in that case +} +void CloudServer::OnReleaseRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + + uint16_t keyCount; + bsIn.Read(keyCount); + + if (keyCount==0) + return; + + DataStructures::HashIndex remoteSystemIndex = remoteSystems.GetIndexOf(packet->guid); + if (remoteSystemIndex.IsInvalid()==true) + return; + + RemoteCloudClient* remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemIndex); + + CloudKey key; + + // Read all in a list first so I can run filter on it + DataStructures::List cloudKeys; + for (uint16_t keyCountIndex=0; keyCountIndex < keyCount; keyCountIndex++) + { + key.Serialize(false, &bsIn); + cloudKeys.Push(key, _FILE_AND_LINE_); + } + + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnReleaseRequest(packet->guid, packet->systemAddress, cloudKeys)) + return; + } + + for (uint16_t keyCountIndex=0; keyCountIndex < keyCount; keyCountIndex++) + { + // Serialize in list above so I can run the filter on it + // key.Serialize(false, &bsIn); + key=cloudKeys[keyCountIndex]; + + // Remove remote systems uploaded keys + bool objectExists; + unsigned int uploadedKeysIndex = remoteCloudClient->uploadedKeys.GetIndexFromKey(key,&objectExists); + if (objectExists) + { + bool dataRepositoryExists; + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(key, &dataRepositoryExists); + CloudDataList* cloudDataList = dataRepository[dataRepositoryIndex]; + RakAssert(cloudDataList); + + CloudData *cloudData; + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(packet->guid, &keyDataListExists); + cloudData = cloudDataList->keyData[keyDataListIndex]; + + remoteCloudClient->uploadedKeys.RemoveAtIndex(uploadedKeysIndex); + remoteCloudClient->uploadedBytes-=cloudData->dataLengthBytes; + cloudDataList->uploaderCount--; + + // Broadcast destruction of this key to subscribers + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudData->specificSubscribers, false ); + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudDataList->nonSpecificSubscribers, false ); + NotifyServerSubscribersOfDataChange(cloudData, cloudDataList->key, false ); + + cloudData->Clear(); + + if (cloudData->IsUnused()) + { + RakNet::OP_DELETE(cloudData, _FILE_AND_LINE_); + cloudDataList->keyData.RemoveAtIndex(keyDataListIndex); + if (cloudDataList->IsNotUploaded()) + { + // Tell other servers that this key is no longer uploaded, so they do not request it from us + RemoveUploadedKeyFromServers(cloudDataList->key); + } + + if (cloudDataList->IsUnused()) + { + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + } + + if (remoteCloudClient->IsUnused()) + { + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(remoteSystemIndex, _FILE_AND_LINE_); + break; + } + } + } +} +void CloudServer::OnGetRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + uint16_t specificSystemsCount; + CloudKey cloudKey; + + // Create a new GetRequest + GetRequest *getRequest; + getRequest = RakNet::OP_NEW(_FILE_AND_LINE_); + getRequest->cloudQueryWithAddresses.cloudQuery.Serialize(false, &bsIn); + getRequest->requestingClient=packet->guid; + + RakNetGUID addressOrGuid; + bsIn.Read(specificSystemsCount); + for (uint16_t i=0; i < specificSystemsCount; i++) + { + bsIn.Read(addressOrGuid); + getRequest->cloudQueryWithAddresses.specificSystems.Push(addressOrGuid, _FILE_AND_LINE_); + } + + if (getRequest->cloudQueryWithAddresses.cloudQuery.keys.Size()==0) + { + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); + return; + } + + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnGetRequest(packet->guid, packet->systemAddress, getRequest->cloudQueryWithAddresses.cloudQuery, getRequest->cloudQueryWithAddresses.specificSystems )==false) + return; + } + + getRequest->requestStartTime=RakNet::GetTime(); + getRequest->requestId=nextGetRequestId++; + + // Send request to servers that have this data + DataStructures::List remoteServersWithData; + GetServersWithUploadedKeys(getRequest->cloudQueryWithAddresses.cloudQuery.keys, remoteServersWithData); + + if (remoteServersWithData.Size()==0) + { + ProcessAndTransmitGetRequest(getRequest); + } + else + { + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_PROCESS_GET_REQUEST); + getRequest->cloudQueryWithAddresses.Serialize(true, &bsOut); + bsOut.Write(getRequest->requestId); + + for (unsigned int remoteServerIndex=0; remoteServerIndex < remoteServersWithData.Size(); remoteServerIndex++) + { + BufferedGetResponseFromServer* bufferedGetResponseFromServer = RakNet::OP_NEW(_FILE_AND_LINE_); + bufferedGetResponseFromServer->serverAddress=remoteServersWithData[remoteServerIndex]->serverAddress; + bufferedGetResponseFromServer->gotResult=false; + getRequest->remoteServerResponses.Insert(remoteServersWithData[remoteServerIndex]->serverAddress, bufferedGetResponseFromServer, true, _FILE_AND_LINE_); + + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServersWithData[remoteServerIndex]->serverAddress, false); + } + + // Record that this system made this request + getRequests.Insert(getRequest->requestId, getRequest, true, _FILE_AND_LINE_); + } + + if (getRequest->cloudQueryWithAddresses.cloudQuery.subscribeToResults) + { + // Add to key subscription list for the client, which contains a keyId / specificUploaderList pair + DataStructures::HashIndex remoteSystemsHashIndex = remoteSystems.GetIndexOf(packet->guid); + RemoteCloudClient *remoteCloudClient; + if (remoteSystemsHashIndex.IsInvalid()) + { + remoteCloudClient = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteCloudClient->uploadedBytes=0; + remoteSystems.Push(packet->guid, remoteCloudClient, _FILE_AND_LINE_); + } + else + { + remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemsHashIndex); + } + + unsigned int keyIndex; + for (keyIndex=0; keyIndex < getRequest->cloudQueryWithAddresses.cloudQuery.keys.Size(); keyIndex++) + { + cloudKey = getRequest->cloudQueryWithAddresses.cloudQuery.keys[keyIndex]; + + unsigned int keySubscriberIndex; + bool hasKeySubscriber; + keySubscriberIndex = remoteCloudClient->subscribedKeys.GetIndexFromKey(cloudKey, &hasKeySubscriber); + KeySubscriberID* keySubscriberId; + if (hasKeySubscriber) + { + DataStructures::List specificSystems; + UnsubscribeFromKey(remoteCloudClient, packet->guid, keySubscriberIndex, cloudKey, specificSystems); + } + + keySubscriberId = RakNet::OP_NEW(_FILE_AND_LINE_); + keySubscriberId->key=cloudKey; + + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < getRequest->cloudQueryWithAddresses.specificSystems.Size(); specificSystemIndex++) + { + keySubscriberId->specificSystemsSubscribedTo.Insert(getRequest->cloudQueryWithAddresses.specificSystems[specificSystemIndex], getRequest->cloudQueryWithAddresses.specificSystems[specificSystemIndex], true, _FILE_AND_LINE_); + } + + remoteCloudClient->subscribedKeys.InsertAtIndex(keySubscriberId, keySubscriberIndex, _FILE_AND_LINE_); + + // Add CloudData in a similar way + unsigned int dataRepositoryIndex; + bool dataRepositoryExists; + CloudDataList* cloudDataList = GetOrAllocateCloudDataList(cloudKey, &dataRepositoryExists, dataRepositoryIndex); + + // If this is the first local client to subscribe to this key, call SendSubscribedKeyToServers + if (cloudDataList->subscriberCount==0) + SendSubscribedKeyToServers(cloudKey); + + // If the subscription is specific, may have to also allocate CloudData + if (getRequest->cloudQueryWithAddresses.specificSystems.Size()) + { + CloudData *cloudData; + bool keyDataListExists; + + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < getRequest->cloudQueryWithAddresses.specificSystems.Size(); specificSystemIndex++) + { + RakNetGUID specificSystem = getRequest->cloudQueryWithAddresses.specificSystems[specificSystemIndex]; + + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(specificSystem, &keyDataListExists); + if (keyDataListExists==false) + { + cloudData = RakNet::OP_NEW(_FILE_AND_LINE_); + cloudData->dataLengthBytes=0; + cloudData->allocatedData=0; + cloudData->isUploaded=false; + cloudData->dataPtr=0; + cloudData->serverSystemAddress=UNASSIGNED_SYSTEM_ADDRESS; + cloudData->clientSystemAddress=UNASSIGNED_SYSTEM_ADDRESS; + cloudData->serverGUID=rakPeerInterface->GetMyGUID(); + cloudData->clientGUID=specificSystem; + cloudDataList->keyData.Insert(specificSystem,cloudData,true,_FILE_AND_LINE_); + } + else + { + cloudData = cloudDataList->keyData[keyDataListIndex]; + } + + ++cloudDataList->subscriberCount; + cloudData->specificSubscribers.Insert(packet->guid, packet->guid, true, _FILE_AND_LINE_); + } + } + else + { + ++cloudDataList->subscriberCount; + cloudDataList->nonSpecificSubscribers.Insert(packet->guid, packet->guid, true, _FILE_AND_LINE_); + + // Remove packet->guid from CloudData::specificSubscribers among all instances of cloudDataList->keyData + unsigned int subscribedKeysIndex; + bool subscribedKeysIndexExists; + subscribedKeysIndex = remoteCloudClient->subscribedKeys.GetIndexFromKey(cloudDataList->key, &subscribedKeysIndexExists); + if (subscribedKeysIndexExists) + { + KeySubscriberID* keySubscriberId; + keySubscriberId = remoteCloudClient->subscribedKeys[subscribedKeysIndex]; + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < keySubscriberId->specificSystemsSubscribedTo.Size(); specificSystemIndex++) + { + bool keyDataExists; + unsigned int keyDataIndex = cloudDataList->keyData.GetIndexFromKey(keySubscriberId->specificSystemsSubscribedTo[specificSystemIndex], &keyDataExists); + if (keyDataExists) + { + CloudData *keyData = cloudDataList->keyData[keyDataIndex]; + keyData->specificSubscribers.Remove(packet->guid); + --cloudDataList->subscriberCount; + } + } + } + } + } + + if (remoteCloudClient->subscribedKeys.Size()==0) + { + // Didn't do anything + remoteSystems.Remove(packet->guid, _FILE_AND_LINE_); + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + } + } + + if (remoteServersWithData.Size()==0) + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); +} +void CloudServer::OnUnsubscribeRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + + DataStructures::HashIndex remoteSystemIndex = remoteSystems.GetIndexOf(packet->guid); + if (remoteSystemIndex.IsInvalid()==true) + return; + + RemoteCloudClient* remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemIndex); + + uint16_t keyCount, specificSystemCount; + DataStructures::List cloudKeys; + DataStructures::List specificSystems; + uint16_t index; + + CloudKey cloudKey; + bsIn.Read(keyCount); + for (index=0; index < keyCount; index++) + { + cloudKey.Serialize(false, &bsIn); + cloudKeys.Push(cloudKey, _FILE_AND_LINE_); + } + + RakNetGUID specificSystem; + bsIn.Read(specificSystemCount); + for (index=0; index < specificSystemCount; index++) + { + bsIn.Read(specificSystem); + specificSystems.Push(specificSystem, _FILE_AND_LINE_); + } + + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnUnsubscribeRequest(packet->guid, packet->systemAddress, cloudKeys, specificSystems )==false) + return; + } + +// CloudDataList *cloudDataList; + bool dataRepositoryExists; +// unsigned int dataRepositoryIndex; + + for (index=0; index < keyCount; index++) + { + CloudKey cloudKey = cloudKeys[index]; + + // dataRepositoryIndex = + dataRepository.GetIndexFromKey(cloudKey, &dataRepositoryExists); + if (dataRepositoryExists==false) + continue; +// cloudDataList = dataRepository[dataRepositoryIndex]; + + unsigned int keySubscriberIndex; + bool hasKeySubscriber; + keySubscriberIndex = remoteCloudClient->subscribedKeys.GetIndexFromKey(cloudKey, &hasKeySubscriber); + + if (hasKeySubscriber==false) + continue; + + UnsubscribeFromKey(remoteCloudClient, packet->guid, keySubscriberIndex, cloudKey, specificSystems); + } + + if (remoteCloudClient->IsUnused()) + { + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(remoteSystemIndex, _FILE_AND_LINE_); + } +} +void CloudServer::OnServerToServerGetRequest(Packet *packet) +{ +// unsigned int remoteServerIndex; + bool objectExists; + //remoteServerIndex = + remoteServers.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists==false) + return; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + CloudQueryWithAddresses cloudQueryWithAddresses; + uint32_t requestId; + cloudQueryWithAddresses.Serialize(false, &bsIn); + bsIn.Read(requestId); + + DataStructures::List cloudDataResultList; + DataStructures::List cloudKeyResultList; + ProcessCloudQueryWithAddresses(cloudQueryWithAddresses, cloudDataResultList, cloudKeyResultList); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_PROCESS_GET_RESPONSE); + bsOut.Write(requestId); + WriteCloudQueryRowFromResultList(cloudDataResultList, cloudKeyResultList, &bsOut); + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, packet->guid, false); +} +void CloudServer::OnServerToServerGetResponse(Packet *packet) +{ + unsigned int remoteServerIndex; + bool objectExists; + remoteServerIndex = remoteServers.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists==false) + return; + + RemoteServer *remoteServer = remoteServers[remoteServerIndex]; + if (remoteServer==0) + return; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + uint32_t requestId; + bsIn.Read(requestId); + + // Lookup request id + bool hasGetRequest; + unsigned int getRequestIndex; + getRequestIndex = getRequests.GetIndexFromKey(requestId, &hasGetRequest); + if (hasGetRequest==false) + return; + GetRequest *getRequest = getRequests[getRequestIndex]; + bool hasRemoteServer; + unsigned int remoteServerResponsesIndex; + remoteServerResponsesIndex = getRequest->remoteServerResponses.GetIndexFromKey(packet->guid, &hasRemoteServer); + if (hasRemoteServer==false) + return; + BufferedGetResponseFromServer *bufferedGetResponseFromServer; + bufferedGetResponseFromServer = getRequest->remoteServerResponses[remoteServerResponsesIndex]; + if (bufferedGetResponseFromServer->gotResult==true) + return; + bufferedGetResponseFromServer->gotResult=true; + uint32_t numRows; + bufferedGetResponseFromServer->queryResult.SerializeNumRows(false, numRows, &bsIn); + bufferedGetResponseFromServer->queryResult.SerializeCloudQueryRows(false, numRows, &bsIn, this); + + // If all results returned, then also process locally, and return to user + if (getRequest->AllRemoteServersHaveResponded()) + { + ProcessAndTransmitGetRequest(getRequest); + + getRequest->Clear(this); + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); + + getRequests.RemoveAtIndex(getRequestIndex); + } +} +void CloudServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + + unsigned int remoteServerIndex; + bool objectExists; + remoteServerIndex = remoteServers.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { + // Update remoteServerResponses by removing this server and sending the response if it is now complete + unsigned int getRequestIndex=0; + while (getRequestIndex < getRequests.Size()) + { + GetRequest *getRequest = getRequests[getRequestIndex]; + bool waitingForThisServer; + unsigned int remoteServerResponsesIndex = getRequest->remoteServerResponses.GetIndexFromKey(rakNetGUID, &waitingForThisServer); + if (waitingForThisServer) + { + getRequest->remoteServerResponses[remoteServerResponsesIndex]->Clear(this); + RakNet::OP_DELETE(getRequest->remoteServerResponses[remoteServerResponsesIndex], _FILE_AND_LINE_); + getRequest->remoteServerResponses.RemoveAtIndex(remoteServerResponsesIndex); + + if (getRequest->AllRemoteServersHaveResponded()) + { + ProcessAndTransmitGetRequest(getRequest); + getRequest->Clear(this); + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); + + getRequests.RemoveAtIndex(getRequestIndex); + } + else + getRequestIndex++; + } + else + getRequestIndex++; + } + + RakNet::OP_DELETE(remoteServers[remoteServerIndex],_FILE_AND_LINE_); + remoteServers.RemoveAtIndex(remoteServerIndex); + } + + DataStructures::HashIndex remoteSystemIndex = remoteSystems.GetIndexOf(rakNetGUID); + if (remoteSystemIndex.IsInvalid()==false) + { + RemoteCloudClient* remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemIndex); + unsigned int uploadedKeysIndex; + for (uploadedKeysIndex=0; uploadedKeysIndex < remoteCloudClient->uploadedKeys.Size(); uploadedKeysIndex++) + { + // Delete keys this system has uploaded + bool keyDataRepositoryExists; + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(remoteCloudClient->uploadedKeys[uploadedKeysIndex], &keyDataRepositoryExists); + if (keyDataRepositoryExists) + { + CloudDataList* cloudDataList = dataRepository[dataRepositoryIndex]; + bool keyDataExists; + unsigned int keyDataIndex = cloudDataList->keyData.GetIndexFromKey(rakNetGUID, &keyDataExists); + if (keyDataExists) + { + CloudData *cloudData = cloudDataList->keyData[keyDataIndex]; + cloudDataList->uploaderCount--; + + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudData->specificSubscribers, false ); + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudDataList->nonSpecificSubscribers, false ); + NotifyServerSubscribersOfDataChange(cloudData, cloudDataList->key, false ); + + cloudData->Clear(); + + if (cloudData->IsUnused()) + { + RakNet::OP_DELETE(cloudData,_FILE_AND_LINE_); + cloudDataList->keyData.RemoveAtIndex(keyDataIndex); + + if (cloudDataList->IsNotUploaded()) + { + // Tell other servers that this key is no longer uploaded, so they do not request it from us + RemoveUploadedKeyFromServers(cloudDataList->key); + } + + if (cloudDataList->IsUnused()) + { + // Tell other servers that this key is no longer uploaded, so they do not request it from us + RemoveUploadedKeyFromServers(cloudDataList->key); + + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + } + } + } + } + + unsigned int subscribedKeysIndex; + for (subscribedKeysIndex=0; subscribedKeysIndex < remoteCloudClient->subscribedKeys.Size(); subscribedKeysIndex++) + { + KeySubscriberID* keySubscriberId; + keySubscriberId = remoteCloudClient->subscribedKeys[subscribedKeysIndex]; + + bool keyDataRepositoryExists; + unsigned int keyDataRepositoryIndex = dataRepository.GetIndexFromKey(remoteCloudClient->subscribedKeys[subscribedKeysIndex]->key, &keyDataRepositoryExists); + if (keyDataRepositoryExists) + { + CloudDataList* cloudDataList = dataRepository[keyDataRepositoryIndex]; + if (keySubscriberId->specificSystemsSubscribedTo.Size()==0) + { + cloudDataList->nonSpecificSubscribers.Remove(rakNetGUID); + --cloudDataList->subscriberCount; + } + else + { + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < keySubscriberId->specificSystemsSubscribedTo.Size(); specificSystemIndex++) + { + bool keyDataExists; + unsigned int keyDataIndex = cloudDataList->keyData.GetIndexFromKey(keySubscriberId->specificSystemsSubscribedTo[specificSystemIndex], &keyDataExists); + if (keyDataExists) + { + CloudData *keyData = cloudDataList->keyData[keyDataIndex]; + keyData->specificSubscribers.Remove(rakNetGUID); + --cloudDataList->subscriberCount; + } + } + } + } + + RakNet::OP_DELETE(keySubscriberId, _FILE_AND_LINE_); + } + + // Delete and remove from remoteSystems + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(remoteSystemIndex, _FILE_AND_LINE_); + } +} +void CloudServer::OnRakPeerShutdown(void) +{ + Clear(); +} +void CloudServer::Clear(void) +{ + unsigned int i,j; + for (i=0; i < dataRepository.Size(); i++) + { + CloudDataList *cloudDataList = dataRepository[i]; + for (j=0; j < cloudDataList->keyData.Size(); j++) + { + cloudDataList->keyData[j]->Clear(); + RakNet::OP_DELETE(cloudDataList->keyData[j], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + } + dataRepository.Clear(false, _FILE_AND_LINE_); + + for (i=0; i < remoteServers.Size(); i++) + { + RakNet::OP_DELETE(remoteServers[i], _FILE_AND_LINE_); + } + remoteServers.Clear(false, _FILE_AND_LINE_); + + for (i=0; i < getRequests.Size(); i++) + { + GetRequest *getRequest = getRequests[i]; + getRequest->Clear(this); + RakNet::OP_DELETE(getRequests[i], _FILE_AND_LINE_); + } + getRequests.Clear(false, _FILE_AND_LINE_); + + DataStructures::List keyList; + DataStructures::List itemList; + remoteSystems.GetAsList(itemList, keyList, _FILE_AND_LINE_); + for (i=0; i < itemList.Size(); i++) + { + RemoteCloudClient* remoteCloudClient = itemList[i]; + for (j=0; j < remoteCloudClient->subscribedKeys.Size(); j++) + { + RakNet::OP_DELETE(remoteCloudClient->subscribedKeys[j], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + } + remoteSystems.Clear(_FILE_AND_LINE_); +} +void CloudServer::WriteCloudQueryRowFromResultList(DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut) +{ + bsOut->WriteCasted(cloudKeyResultList.Size()); + unsigned int i; + for (i=0; i < cloudKeyResultList.Size(); i++) + { + WriteCloudQueryRowFromResultList(i, cloudDataResultList, cloudKeyResultList, bsOut); + } +} +void CloudServer::WriteCloudQueryRowFromResultList(unsigned int i, DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut) +{ + CloudQueryRow cloudQueryRow; + CloudData *cloudData = cloudDataResultList[i]; + cloudQueryRow.key=cloudKeyResultList[i]; + cloudQueryRow.data=cloudData->dataPtr; + cloudQueryRow.length=cloudData->dataLengthBytes; + cloudQueryRow.serverSystemAddress=cloudData->serverSystemAddress; + cloudQueryRow.clientSystemAddress=cloudData->clientSystemAddress; + cloudQueryRow.serverGUID=cloudData->serverGUID; + cloudQueryRow.clientGUID=cloudData->clientGUID; + cloudQueryRow.Serialize(true, bsOut, 0); +} +void CloudServer::NotifyClientSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, DataStructures::OrderedList &subscribers, bool wasUpdated ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID) ID_CLOUD_SUBSCRIPTION_NOTIFICATION); + bsOut.Write(wasUpdated); + CloudQueryRow row; + row.key=key; + row.data=cloudData->dataPtr; + row.length=cloudData->dataLengthBytes; + row.serverSystemAddress=cloudData->serverSystemAddress; + row.clientSystemAddress=cloudData->clientSystemAddress; + row.serverGUID=cloudData->serverGUID; + row.clientGUID=cloudData->clientGUID; + row.Serialize(true,&bsOut,0); + + unsigned int i; + for (i=0; i < subscribers.Size(); i++) + { + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, subscribers[i], false); + } +} +void CloudServer::NotifyClientSubscribersOfDataChange( CloudQueryRow *row, DataStructures::OrderedList &subscribers, bool wasUpdated ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID) ID_CLOUD_SUBSCRIPTION_NOTIFICATION); + bsOut.Write(wasUpdated); + row->Serialize(true,&bsOut,0); + + unsigned int i; + for (i=0; i < subscribers.Size(); i++) + { + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, subscribers[i], false); + } +} +void CloudServer::NotifyServerSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, bool wasUpdated ) +{ + // Find every server that has subscribed + // Send them change notifications + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_DATA_CHANGED); + bsOut.Write(wasUpdated); + CloudQueryRow row; + row.key=key; + row.data=cloudData->dataPtr; + row.length=cloudData->dataLengthBytes; + row.serverSystemAddress=cloudData->serverSystemAddress; + row.clientSystemAddress=cloudData->clientSystemAddress; + row.serverGUID=cloudData->serverGUID; + row.clientGUID=cloudData->clientGUID; + row.Serialize(true,&bsOut,0); + + unsigned int i; + for (i=0; i < remoteServers.Size(); i++) + { + if (remoteServers[i]->gotSubscribedAndUploadedKeys==false || remoteServers[i]->subscribedKeys.HasData(key)) + { + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); + } + } +} +void CloudServer::AddServer(RakNetGUID systemIdentifier) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(systemIdentifier); + if (cs==IS_DISCONNECTED || cs==IS_NOT_CONNECTED) + return; + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(systemIdentifier,&objectExists); + if (objectExists==false) + { + RemoteServer *remoteServer = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteServer->gotSubscribedAndUploadedKeys=false; + remoteServer->serverAddress=systemIdentifier; + remoteServers.InsertAtIndex(remoteServer, index, _FILE_AND_LINE_); + + SendUploadedAndSubscribedKeysToServer(systemIdentifier); + } +} +void CloudServer::RemoveServer(RakNetGUID systemAddress) +{ + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(systemAddress,&objectExists); + if (objectExists==true) + { + RakNet::OP_DELETE(remoteServers[index],_FILE_AND_LINE_); + remoteServers.RemoveAtIndex(index); + } +} +void CloudServer::GetRemoteServers(DataStructures::List &remoteServersOut) +{ + remoteServersOut.Clear(true, _FILE_AND_LINE_); + + unsigned int i; + for (i=0; i < remoteServers.Size(); i++) + { + remoteServersOut.Push(remoteServers[i]->serverAddress, _FILE_AND_LINE_); + } +} +void CloudServer::ProcessAndTransmitGetRequest(GetRequest *getRequest) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID) ID_CLOUD_GET_RESPONSE); + + // BufferedGetResponseFromServer getResponse; + CloudQueryResult cloudQueryResult; + cloudQueryResult.cloudQuery=getRequest->cloudQueryWithAddresses.cloudQuery; + cloudQueryResult.subscribeToResults=getRequest->cloudQueryWithAddresses.cloudQuery.subscribeToResults; + cloudQueryResult.SerializeHeader(true, &bsOut); + + DataStructures::List cloudDataResultList; + DataStructures::List cloudKeyResultList; + ProcessCloudQueryWithAddresses(getRequest->cloudQueryWithAddresses, cloudDataResultList, cloudKeyResultList); + bool unlimitedRows=getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn==0; + + uint32_t localNumRows = (uint32_t) cloudDataResultList.Size(); + if (unlimitedRows==false && + localNumRows > getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex && + localNumRows - getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex > getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn ) + localNumRows=getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex + getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn; + + BitSize_t bitStreamOffset = bsOut.GetWriteOffset(); + uint32_t localRowsToWrite; + unsigned int skipRows; + if (localNumRows>getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex) + { + localRowsToWrite=localNumRows-getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex; + skipRows=0; + } + else + { + localRowsToWrite=0; + skipRows=getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex-localNumRows; + } + cloudQueryResult.SerializeNumRows(true, localRowsToWrite, &bsOut); + for (unsigned int i=getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex; i < localNumRows; i++) + { + WriteCloudQueryRowFromResultList(i, cloudDataResultList, cloudKeyResultList, &bsOut); + } + + // Append remote systems for remaining rows + if (unlimitedRows==true || getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn>localRowsToWrite) + { + uint32_t remainingRows=0; + uint32_t additionalRowsWritten=0; + if (unlimitedRows==false) + remainingRows=getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn-localRowsToWrite; + + unsigned int remoteServerResponseIndex; + for (remoteServerResponseIndex=0; remoteServerResponseIndex < getRequest->remoteServerResponses.Size(); remoteServerResponseIndex++) + { + BufferedGetResponseFromServer *bufferedGetResponseFromServer = getRequest->remoteServerResponses[remoteServerResponseIndex]; + unsigned int cloudQueryRowIndex; + for (cloudQueryRowIndex=0; cloudQueryRowIndex < bufferedGetResponseFromServer->queryResult.rowsReturned.Size(); cloudQueryRowIndex++) + { + if (skipRows>0) + { + --skipRows; + continue; + } + bufferedGetResponseFromServer->queryResult.rowsReturned[cloudQueryRowIndex]->Serialize(true, &bsOut, this); + + ++additionalRowsWritten; + if (unlimitedRows==false && --remainingRows==0) + break; + } + + if (unlimitedRows==false && remainingRows==0) + break; + } + + if (additionalRowsWritten>0) + { + BitSize_t curOffset = bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(bitStreamOffset); + localRowsToWrite+=additionalRowsWritten; + cloudQueryResult.SerializeNumRows(true, localRowsToWrite, &bsOut); + bsOut.SetWriteOffset(curOffset); + } + } + + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, getRequest->requestingClient, false); +} +void CloudServer::ProcessCloudQueryWithAddresses( CloudServer::CloudQueryWithAddresses &cloudQueryWithAddresses, DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList ) +{ + CloudQueryResult cloudQueryResult; + CloudQueryRow cloudQueryRow; + unsigned int queryIndex; + bool dataRepositoryExists; + CloudDataList* cloudDataList; + unsigned int keyDataIndex; + + // If specificSystems list empty, applies to all systems + // For each of keys in cloudQueryWithAddresses, return that data, limited by maxRowsToReturn + for (queryIndex=0; queryIndex < cloudQueryWithAddresses.cloudQuery.keys.Size(); queryIndex++) + { + const CloudKey &key = cloudQueryWithAddresses.cloudQuery.keys[queryIndex]; + + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(key, &dataRepositoryExists); + if (dataRepositoryExists) + { + cloudDataList=dataRepository[dataRepositoryIndex]; + + if (cloudDataList->uploaderCount>0) + { + // Return all keyData that was uploaded by specificSystems, or all if not specified + if (cloudQueryWithAddresses.specificSystems.Size()>0) + { + // Return data for matching systems + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < cloudQueryWithAddresses.specificSystems.Size(); specificSystemIndex++) + { + bool uploaderExists; + keyDataIndex = cloudDataList->keyData.GetIndexFromKey(cloudQueryWithAddresses.specificSystems[specificSystemIndex], &uploaderExists); + if (uploaderExists) + { + cloudDataResultList.Push(cloudDataList->keyData[keyDataIndex], _FILE_AND_LINE_); + cloudKeyResultList.Push(key, _FILE_AND_LINE_); + } + } + } + else + { + // Return data for all systems + for (keyDataIndex=0; keyDataIndex < cloudDataList->keyData.Size(); keyDataIndex++) + { + cloudDataResultList.Push(cloudDataList->keyData[keyDataIndex], _FILE_AND_LINE_); + cloudKeyResultList.Push(key, _FILE_AND_LINE_); + } + } + } + } + } +} +void CloudServer::SendUploadedAndSubscribedKeysToServer( RakNetGUID systemAddress ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_ADD_UPLOADED_AND_SUBSCRIBED_KEYS); + bsOut.WriteCasted(dataRepository.Size()); + for (unsigned int i=0; i < dataRepository.Size(); i++) + dataRepository[i]->key.Serialize(true, &bsOut); + + BitSize_t startOffset, endOffset; + uint16_t subscribedKeyCount=0; + startOffset=bsOut.GetWriteOffset(); + bsOut.WriteCasted(subscribedKeyCount); + for (unsigned int i=0; i < dataRepository.Size(); i++) + { + if (dataRepository[i]->subscriberCount>0) + { + dataRepository[i]->key.Serialize(true, &bsOut); + subscribedKeyCount++; + } + } + endOffset=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(startOffset); + bsOut.WriteCasted(subscribedKeyCount); + bsOut.SetWriteOffset(endOffset); + + if (dataRepository.Size()>0 || subscribedKeyCount>0) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemAddress, false); +} +void CloudServer::SendUploadedKeyToServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_ADD_UPLOADED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::SendSubscribedKeyToServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_ADD_SUBSCRIBED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::RemoveUploadedKeyFromServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_REMOVE_UPLOADED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::RemoveSubscribedKeyFromServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_REMOVE_SUBSCRIBED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::OnSendUploadedAndSubscribedKeysToServer( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + remoteServer->gotSubscribedAndUploadedKeys=true; + +// unsigned int insertionIndex; + bool alreadyHasKey; + uint16_t numUploadedKeys, numSubscribedKeys; + bsIn.Read(numUploadedKeys); + for (uint16_t i=0; i < numUploadedKeys; i++) + { + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + + // insertionIndex = + remoteServer->uploadedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==false) + remoteServer->uploadedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); + } + + bsIn.Read(numSubscribedKeys); + for (uint16_t i=0; i < numSubscribedKeys; i++) + { + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + + //insertionIndex = + remoteServer->subscribedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==false) + remoteServer->subscribedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); + } + + // Potential todo - join servers + // For each uploaded key that we subscribe to, query it + // For each subscribed key that we have, send it +} +void CloudServer::OnSendUploadedKeyToServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); +// unsigned int insertionIndex; + bool alreadyHasKey; +// insertionIndex = + remoteServer->uploadedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==false) + remoteServer->uploadedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); +} +void CloudServer::OnSendSubscribedKeyToServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); +// unsigned int insertionIndex; + bool alreadyHasKey; +// insertionIndex = + remoteServer->subscribedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + + // Do not need to send current values, the Get request will do that as the Get request is sent at the same time + if (alreadyHasKey==false) + remoteServer->subscribedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); +} +void CloudServer::OnRemoveUploadedKeyFromServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + unsigned int insertionIndex; + bool alreadyHasKey; + insertionIndex = remoteServer->uploadedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==true) + remoteServer->uploadedKeys.RemoveAtIndex(insertionIndex); +} +void CloudServer::OnRemoveSubscribedKeyFromServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + unsigned int insertionIndex; + bool alreadyHasKey; + insertionIndex = remoteServer->subscribedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==true) + remoteServer->subscribedKeys.RemoveAtIndex(insertionIndex); +} +void CloudServer::OnServerDataChanged( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + + // Find everyone that cares about this change and relay + bool wasUpdated=false; + bsIn.Read(wasUpdated); + CloudQueryRow row; + row.Serialize(false, &bsIn, this); + + CloudDataList *cloudDataList; + bool dataRepositoryExists; + unsigned int dataRepositoryIndex; + dataRepositoryIndex = dataRepository.GetIndexFromKey(row.key, &dataRepositoryExists); + if (dataRepositoryExists==false) + { + DeallocateRowData(row.data); + return; + } + cloudDataList = dataRepository[dataRepositoryIndex]; + CloudData *cloudData; + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(row.clientGUID, &keyDataListExists); + if (keyDataListExists==true) + { + cloudData = cloudDataList->keyData[keyDataListIndex]; + NotifyClientSubscribersOfDataChange(&row, cloudData->specificSubscribers, wasUpdated ); + } + + NotifyClientSubscribersOfDataChange(&row, cloudDataList->nonSpecificSubscribers, wasUpdated ); + DeallocateRowData(row.data); +} +void CloudServer::GetServersWithUploadedKeys( + DataStructures::List &keys, + DataStructures::List &remoteServersWithData + ) +{ + remoteServersWithData.Clear(true, _FILE_AND_LINE_); + + unsigned int i,j; + for (i=0; i < remoteServers.Size(); i++) + { + remoteServers[i]->workingFlag=false; + } + + for (i=0; i < remoteServers.Size(); i++) + { + if (remoteServers[i]->workingFlag==false) + { + if (remoteServers[i]->gotSubscribedAndUploadedKeys==false) + { + remoteServers[i]->workingFlag=true; + remoteServersWithData.Push(remoteServers[i], _FILE_AND_LINE_); + } + else + { + remoteServers[i]->workingFlag=false; + for (j=0; j < keys.Size(); j++) + { + if (remoteServers[i]->workingFlag==false && remoteServers[i]->uploadedKeys.HasData(keys[j])) + { + remoteServers[i]->workingFlag=true; + remoteServersWithData.Push(remoteServers[i], _FILE_AND_LINE_); + break; + } + } + } + } + } +} + +CloudServer::CloudDataList *CloudServer::GetOrAllocateCloudDataList(CloudKey key, bool *dataRepositoryExists, unsigned int &dataRepositoryIndex) +{ + CloudDataList *cloudDataList; + + dataRepositoryIndex = dataRepository.GetIndexFromKey(key, dataRepositoryExists); + if (*dataRepositoryExists==false) + { + cloudDataList = RakNet::OP_NEW(_FILE_AND_LINE_); + cloudDataList->key=key; + cloudDataList->uploaderCount=0; + cloudDataList->subscriberCount=0; + dataRepository.InsertAtIndex(cloudDataList,dataRepositoryIndex,_FILE_AND_LINE_); + } + else + { + cloudDataList = dataRepository[dataRepositoryIndex]; + } + + return cloudDataList; +} + +void CloudServer::UnsubscribeFromKey(RemoteCloudClient *remoteCloudClient, RakNetGUID remoteCloudClientGuid, unsigned int keySubscriberIndex, CloudKey &cloudKey, DataStructures::List &specificSystems) +{ + KeySubscriberID* keySubscriberId = remoteCloudClient->subscribedKeys[keySubscriberIndex]; + + // If removing specific systems, but global subscription, fail + if (keySubscriberId->specificSystemsSubscribedTo.Size()==0 && specificSystems.Size()>0) + return; + + bool dataRepositoryExists; + CloudDataList *cloudDataList; + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(cloudKey, &dataRepositoryExists); + if (dataRepositoryExists==false) + return; + + unsigned int i,j; + + cloudDataList = dataRepository[dataRepositoryIndex]; + if (specificSystems.Size()==0) + { + // Remove global subscriber. If returns false, have to remove specific subscribers + if (cloudDataList->RemoveSubscriber(remoteCloudClientGuid)==false) + { + for (i=0; i < keySubscriberId->specificSystemsSubscribedTo.Size(); i++) + { + RemoveSpecificSubscriber(keySubscriberId->specificSystemsSubscribedTo[i], cloudDataList, remoteCloudClientGuid); + } + } + keySubscriberId->specificSystemsSubscribedTo.Clear(true, _FILE_AND_LINE_); + } + else + { + for (j=0; j < specificSystems.Size(); j++) + { + unsigned int specificSystemsSubscribedToIndex; + bool hasSpecificSystemsSubscribedTo; + specificSystemsSubscribedToIndex=keySubscriberId->specificSystemsSubscribedTo.GetIndexFromKey(specificSystems[j], &hasSpecificSystemsSubscribedTo); + if (hasSpecificSystemsSubscribedTo) + { + RemoveSpecificSubscriber(specificSystems[j], cloudDataList, remoteCloudClientGuid); + keySubscriberId->specificSystemsSubscribedTo.RemoveAtIndex(specificSystemsSubscribedToIndex); + } + } + } + + if (keySubscriberId->specificSystemsSubscribedTo.Size()==0) + { + RakNet::OP_DELETE(keySubscriberId, _FILE_AND_LINE_); + remoteCloudClient->subscribedKeys.RemoveAtIndex(keySubscriberIndex); + } + + if (cloudDataList->subscriberCount==0) + RemoveSubscribedKeyFromServers(cloudKey); + + if (cloudDataList->IsUnused()) + { + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } +} +void CloudServer::RemoveSpecificSubscriber(RakNetGUID specificSubscriber, CloudDataList *cloudDataList, RakNetGUID remoteCloudClientGuid) +{ + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(specificSubscriber, &keyDataListExists); + if (keyDataListExists==false) + return; + CloudData *cloudData = cloudDataList->keyData[keyDataListIndex]; + bool hasSpecificSubscriber; + unsigned int specificSubscriberIndex = cloudData->specificSubscribers.GetIndexFromKey(remoteCloudClientGuid, &hasSpecificSubscriber); + if (hasSpecificSubscriber) + { + cloudData->specificSubscribers.RemoveAtIndex(specificSubscriberIndex); + cloudDataList->subscriberCount--; + + if (cloudData->IsUnused()) + { + RakNet::OP_DELETE(cloudData, _FILE_AND_LINE_); + cloudDataList->keyData.RemoveAtIndex(keyDataListIndex); + } + } +} + +void CloudServer::ForceExternalSystemAddress(SystemAddress forcedAddress) +{ + forceAddress=forcedAddress; +} +void CloudServer::AddQueryFilter(CloudServerQueryFilter* filter) +{ + if (queryFilters.GetIndexOf(filter)!=(unsigned int) -1) + return; + queryFilters.Push(filter, _FILE_AND_LINE_); +} +void CloudServer::RemoveQueryFilter(CloudServerQueryFilter* filter) +{ + unsigned int index; + index = queryFilters.GetIndexOf(filter); + if (index != (unsigned int) -1) + queryFilters.RemoveAtIndex(index); +} +void CloudServer::RemoveAllQueryFilters(void) +{ + queryFilters.Clear(true, _FILE_AND_LINE_); +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/CloudServer.h b/project/lib_projects/raknet/jni/RaknetSources/CloudServer.h new file mode 100755 index 0000000..cf4f78f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CloudServer.h @@ -0,0 +1,375 @@ +/// \file CloudServer.h +/// \brief Stores client data, and allows cross-server communication to retrieve this data +/// \details TODO +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudServer==1 + +#ifndef __CLOUD_SERVER_H +#define __CLOUD_SERVER_H + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "RakString.h" +#include "DS_Hash.h" +#include "CloudCommon.h" +#include "DS_OrderedList.h" + +/// If the data is smaller than this value, an allocation is avoid. However, this value exists for every row +#define CLOUD_SERVER_DATA_STACK_SIZE 32 + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief Zero or more instances of CloudServerQueryFilter can be attached to CloudServer to restrict client queries +/// All attached instances of CloudServerQueryFilter on each corresponding operation, from all directly connected clients +/// If any attached instance returns false for a given operation, that operation is silently rejected +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudServerQueryFilter +{ +public: + CloudServerQueryFilter() {} + virtual ~CloudServerQueryFilter() {} + + /// Called when a local client wants to post data + /// \return true to allow, false to reject + virtual bool OnPostRequest(RakNetGUID clientGuid, SystemAddress clientAddress, CloudKey key, uint32_t dataLength, const char *data)=0; + + /// Called when a local client wants to release data that it has previously uploaded + /// \return true to allow, false to reject + virtual bool OnReleaseRequest(RakNetGUID clientGuid, SystemAddress clientAddress, DataStructures::List &cloudKeys)=0; + + /// Called when a local client wants to query data + /// If you return false, the client will get no response at all + /// \return true to allow, false to reject + virtual bool OnGetRequest(RakNetGUID clientGuid, SystemAddress clientAddress, CloudQuery &query, DataStructures::List &specificSystems)=0; + + /// Called when a local client wants to stop getting updates for data + /// If you return false, the client will keep getting updates for that data + /// \return true to allow, false to reject + virtual bool OnUnsubscribeRequest(RakNetGUID clientGuid, SystemAddress clientAddress, DataStructures::List &cloudKeys, DataStructures::List &specificSystems)=0; +}; + +/// \brief Stores client data, and allows cross-server communication to retrieve this data +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudServer : public PluginInterface2, CloudAllocator +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(CloudServer) + + CloudServer(); + virtual ~CloudServer(); + + /// \brief Max bytes a client can upload + /// Data in excess of this value is silently ignored + /// defaults to 0 (unlimited) + /// \param[in] bytes Max bytes a client can upload. 0 means unlimited. + void SetMaxUploadBytesPerClient(uint64_t bytes); + + /// \brief Max bytes returned by a download. If the number of bytes would exceed this amount, the returned list is truncated + /// However, if this would result in no rows downloaded, then one row will be returned. + /// \param[in] bytes Max bytes a client can download from a single Get(). 0 means unlimited. + void SetMaxBytesPerDownload(uint64_t bytes); + + /// \brief Add a server, which is assumed to be connected in a fully connected mesh to all other servers and also running the CloudServer plugin + /// The other system must also call AddServer before getting the subscription data, or it will be rejected. + /// Sending a message telling the other system to call AddServer(), followed by calling AddServer() locally, would be sufficient for this to work. + /// \note This sends subscription data to the other system, using RELIABLE_ORDERED on channel 0 + /// \param[in] systemIdentifier Identifier of the remote system + void AddServer(RakNetGUID systemIdentifier); + + /// \brief Removes a server added through AddServer() + /// \param[in] systemIdentifier Identifier of the remote system + void RemoveServer(RakNetGUID systemIdentifier); + + /// Return list of servers added with AddServer() + /// \param[out] remoteServers List of servers added + void GetRemoteServers(DataStructures::List &remoteServersOut); + + /// \brief Frees all memory. Does not remove query filters + void Clear(void); + + /// \brief Report the specified SystemAddress to client queries, rather than what RakPeer reads. + /// This is useful if you already know your public IP + /// This only applies to future updates, so call it before updating to apply to all queries + /// \param[in] forcedAddress The systmeAddress to return in queries. Use UNASSIGNED_SYSTEM_ADDRESS (default) to use what RakPeer returns + void ForceExternalSystemAddress(SystemAddress forcedAddress); + + /// \brief Adds a callback called on each query. If all filters returns true for an operation, the operation is allowed. + /// If the filter was already added, the function silently fails + /// \param[in] filter An externally allocated instance of CloudServerQueryFilter. The instance must remain valid until it is removed with RemoveQueryFilter() or RemoveAllQueryFilters() + void AddQueryFilter(CloudServerQueryFilter* filter); + + /// \brief Removes a callback added with AddQueryFilter() + /// The instance is not deleted, only unreferenced. It is up to the user to delete the instance, if necessary + /// \param[in] filter An externally allocated instance of CloudServerQueryFilter. The instance must remain valid until it is removed with RemoveQueryFilter() or RemoveAllQueryFilters() + void RemoveQueryFilter(CloudServerQueryFilter* filter); + + /// \brief Removes all instances of CloudServerQueryFilter added with AddQueryFilter(). + /// The instances are not deleted, only unreferenced. It is up to the user to delete the instances, if necessary + void RemoveAllQueryFilters(void); + +protected: + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnRakPeerShutdown(void); + + + virtual void OnPostRequest(Packet *packet); + virtual void OnReleaseRequest(Packet *packet); + virtual void OnGetRequest(Packet *packet); + virtual void OnUnsubscribeRequest(Packet *packet); + virtual void OnServerToServerGetRequest(Packet *packet); + virtual void OnServerToServerGetResponse(Packet *packet); + + uint64_t maxUploadBytesPerClient, maxBytesPerDowload; + + // ---------------------------------------------------------------------------- + // For a given data key, quickly look up one or all systems that have uploaded + // ---------------------------------------------------------------------------- + struct CloudData + { + CloudData() {} + ~CloudData() {if (allocatedData) rakFree_Ex(allocatedData, _FILE_AND_LINE_);} + bool IsUnused(void) const {return isUploaded==false && specificSubscribers.Size()==0;} + void Clear(void) {if (dataPtr==allocatedData) rakFree_Ex(allocatedData, _FILE_AND_LINE_); allocatedData=0; dataPtr=0; dataLengthBytes=0; isUploaded=false;} + + unsigned char stackData[CLOUD_SERVER_DATA_STACK_SIZE]; + unsigned char *allocatedData; // Uses allocatedData instead of stackData if length of data exceeds CLOUD_SERVER_DATA_STACK_SIZE + unsigned char *dataPtr; // Points to either stackData or allocatedData + uint32_t dataLengthBytes; + bool isUploaded; + + /// System address of server that is holding this data, and the client is connected to + SystemAddress serverSystemAddress; + + /// System address of client that uploaded this data + SystemAddress clientSystemAddress; + + /// RakNetGUID of server that is holding this data, and the client is connected to + RakNetGUID serverGUID; + + /// RakNetGUID of client that uploaded this data + RakNetGUID clientGUID; + + /// When the key data changes from this particular system, notify these subscribers + /// This list mutually exclusive with CloudDataList::nonSpecificSubscribers + DataStructures::OrderedList specificSubscribers; + }; + void WriteCloudQueryRowFromResultList(unsigned int i, DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut); + void WriteCloudQueryRowFromResultList(DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut); + + static int KeyDataPtrComp( const RakNetGUID &key, CloudData* const &data ); + struct CloudDataList + { + bool IsUnused(void) const {return keyData.Size()==0 && nonSpecificSubscribers.Size()==0;} + bool IsNotUploaded(void) const {return uploaderCount==0;} + bool RemoveSubscriber(RakNetGUID g) { + bool objectExists; + unsigned int index; + index = nonSpecificSubscribers.GetIndexFromKey(g, &objectExists); + if (objectExists) + { + subscriberCount--; + nonSpecificSubscribers.RemoveAtIndex(index); + return true; + } + return false; + } + + unsigned int uploaderCount, subscriberCount; + CloudKey key; + + // Data uploaded from or subscribed to for various systems + DataStructures::OrderedList keyData; + + /// When the key data changes from any system, notify these subscribers + /// This list mutually exclusive with CloudData::specificSubscribers + DataStructures::OrderedList nonSpecificSubscribers; + }; + + static int KeyDataListComp( const CloudKey &key, CloudDataList * const &data ); + DataStructures::OrderedList dataRepository; + + struct KeySubscriberID + { + CloudKey key; + DataStructures::OrderedList specificSystemsSubscribedTo; + }; + static int KeySubscriberIDComp(const CloudKey &key, KeySubscriberID * const &data ); + + // Remote systems + struct RemoteCloudClient + { + bool IsUnused(void) const {return uploadedKeys.Size()==0 && subscribedKeys.Size()==0;} + + DataStructures::OrderedList uploadedKeys; + DataStructures::OrderedList subscribedKeys; + uint64_t uploadedBytes; + }; + DataStructures::Hash remoteSystems; + + // For a given user, release all subscribed and uploaded keys + void ReleaseSystem(RakNetGUID clientAddress ); + + // For a given user, release a set of keys + void ReleaseKeys(RakNetGUID clientAddress, DataStructures::List &keys ); + + void NotifyClientSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, DataStructures::OrderedList &subscribers, bool wasUpdated ); + void NotifyClientSubscribersOfDataChange( CloudQueryRow *row, DataStructures::OrderedList &subscribers, bool wasUpdated ); + void NotifyServerSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, bool wasUpdated ); + + struct RemoteServer + { + RakNetGUID serverAddress; + // This server needs to know about these keys when they are updated or deleted + DataStructures::OrderedList subscribedKeys; + // This server has uploaded these keys, and needs to know about Get() requests + DataStructures::OrderedList uploadedKeys; + + // Just for processing + bool workingFlag; + + // If false, we don't know what keys they have yet, so send everything + bool gotSubscribedAndUploadedKeys; + }; + + static int RemoteServerComp(const RakNetGUID &key, RemoteServer* const &data ); + DataStructures::OrderedList remoteServers; + + struct BufferedGetResponseFromServer + { + void Clear(CloudAllocator *allocator); + + RakNetGUID serverAddress; + CloudQueryResult queryResult; + bool gotResult; + }; + + struct CloudQueryWithAddresses + { + // Inputs + CloudQuery cloudQuery; + DataStructures::List specificSystems; + + void Serialize(bool writeToBitstream, BitStream *bitStream); + }; + + static int BufferedGetResponseFromServerComp(const RakNetGUID &key, BufferedGetResponseFromServer* const &data ); + struct GetRequest + { + void Clear(CloudAllocator *allocator); + bool AllRemoteServersHaveResponded(void) const; + CloudQueryWithAddresses cloudQueryWithAddresses; + + // When request started. If takes too long for a response from another system, can abort remaining systems + RakNet::Time requestStartTime; + + // Assigned by server that gets the request to identify response. See nextGetRequestId + uint32_t requestId; + + RakNetGUID requestingClient; + + DataStructures::OrderedList remoteServerResponses; + }; + static int GetRequestComp(const uint32_t &key, GetRequest* const &data ); + DataStructures::OrderedList getRequests; + RakNet::Time nextGetRequestsCheck; + + uint32_t nextGetRequestId; + + void ProcessAndTransmitGetRequest(GetRequest *getRequest); + + void ProcessCloudQueryWithAddresses( + CloudServer::CloudQueryWithAddresses &cloudQueryWithAddresses, + DataStructures::List &cloudDataResultList, + DataStructures::List &cloudKeyResultList + ); + + void SendUploadedAndSubscribedKeysToServer( RakNetGUID systemAddress ); + void SendUploadedKeyToServers( CloudKey &cloudKey ); + void SendSubscribedKeyToServers( CloudKey &cloudKey ); + void RemoveUploadedKeyFromServers( CloudKey &cloudKey ); + void RemoveSubscribedKeyFromServers( CloudKey &cloudKey ); + + void OnSendUploadedAndSubscribedKeysToServer( Packet *packet ); + void OnSendUploadedKeyToServers( Packet *packet ); + void OnSendSubscribedKeyToServers( Packet *packet ); + void OnRemoveUploadedKeyFromServers( Packet *packet ); + void OnRemoveSubscribedKeyFromServers( Packet *packet ); + void OnServerDataChanged( Packet *packet ); + + void GetServersWithUploadedKeys( + DataStructures::List &keys, + DataStructures::List &remoteServersWithData + ); + + CloudServer::CloudDataList *GetOrAllocateCloudDataList(CloudKey key, bool *dataRepositoryExists, unsigned int &dataRepositoryIndex); + + void UnsubscribeFromKey(RemoteCloudClient *remoteCloudClient, RakNetGUID remoteCloudClientGuid, unsigned int keySubscriberIndex, CloudKey &cloudKey, DataStructures::List &specificSystems); + void RemoveSpecificSubscriber(RakNetGUID specificSubscriber, CloudDataList *cloudDataList, RakNetGUID remoteCloudClientGuid); + + DataStructures::List queryFilters; + + SystemAddress forceAddress; +}; + + +} // namespace RakNet + +#endif + + +// Key subscription +// +// A given system can subscribe to one or more keys. +// The subscription can be further be defined as only subscribing to keys uploaded by or changed by a given system. +// It is possible to subscribe to keys not yet uploaded, or uploaded to another system +// +// Operations: +// +// 1. SubscribeToKey() - Get() operation with subscription +// A. Add to key subscription list for the client, which contains a keyId / specificUploaderList pair +// B. Send to remote servers that for this key, they should send us updates +// C. (Done, get operation returns current values) +// +// 2. UpdateData() - Post() operation +// A. Find all subscribers to this data, for the uploading system. +// B. Send them the uploaded data +// C. Find all servers that subscribe to this data +// D. Send them the uploaded data +// +// 3. DeleteData() - Release() operation +// A. Find all subscribers to this data, for the deleting system. +// B. Inform them of the deletion +// C. Find all servers that subscribe to this data +// D. Inform them of the deletion +// +// 4. Unsubscribe() +// A. Find this subscriber, and remove their subscription +// B. If no one else is subscribing to this key for any system, notify remote servers we no longer need subscription updates +// +// Internal operations: +// +// 1. Find if any connected client has subscribed to a given key +// A. This is used add and remove our subscription for this key to remote servers +// +// 2. For a given key and updating address, find all connected clients that care +// A. First find connected clients that have subscribed to this key, regardless of address +// B. Then find connected clients that have subscribed to this key for this particular address +// +// 3. Find all remote servers that have subscribed to a given key +// A. This is so when the key is updated or deleted, we know who to send it to +// +// 4. For a given client (such as on disconnect), remove all records of their subscriptions + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/CommandParserInterface.cpp b/project/lib_projects/raknet/jni/RaknetSources/CommandParserInterface.cpp new file mode 100755 index 0000000..33d6695 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CommandParserInterface.cpp @@ -0,0 +1,161 @@ +#include "CommandParserInterface.h" +#include "TransportInterface.h" +#include +#include "RakAssert.h" +#include + + +#if defined(_WIN32) +// IP_DONTFRAGMENT is different between winsock 1 and winsock 2. Therefore, Winsock2.h must be linked againt Ws2_32.lib +// winsock.h must be linked against WSock32.lib. If these two are mixed up the flag won't work correctly +#include + +#else +#include +#include +#include +#endif + +#include "LinuxStrings.h" + +using namespace RakNet; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +const unsigned char CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS=255; + +int RakNet::RegisteredCommandComp( const char* const & key, const RegisteredCommand &data ) +{ + return _stricmp(key,data.command); +} + +CommandParserInterface::CommandParserInterface() {} +CommandParserInterface::~CommandParserInterface() {} + +void CommandParserInterface::ParseConsoleString(char *str, const char delineator, unsigned char delineatorToggle, unsigned *numParameters, char **parameterList, unsigned parameterListLength) +{ + unsigned strIndex, parameterListIndex; + unsigned strLen; + bool replaceDelineator=true; + + strLen = (unsigned) strlen(str); + + // Replace every instance of delineator, \n, \r with 0 + for (strIndex=0; strIndex < strLen; strIndex++) + { + if (str[strIndex]==delineator && replaceDelineator) + str[strIndex]=0; + + if (str[strIndex]=='\n' || str[strIndex]=='\r') + str[strIndex]=0; + + if (str[strIndex]==delineatorToggle) + { + str[strIndex]=0; + replaceDelineator=!replaceDelineator; + } + } + + // Fill up parameterList starting at each non-0 + for (strIndex=0, parameterListIndex=0; strIndex < strLen; ) + { + if (str[strIndex]!=0) + { + parameterList[parameterListIndex]=str+strIndex; + parameterListIndex++; + RakAssert(parameterListIndex < parameterListLength); + if (parameterListIndex >= parameterListLength) + break; + + strIndex++; + while (str[strIndex]!=0 && strIndex < strLen) + strIndex++; + } + else + strIndex++; + } + + parameterList[parameterListIndex]=0; + *numParameters=parameterListIndex; +} +void CommandParserInterface::SendCommandList(TransportInterface *transport, const SystemAddress &systemAddress) +{ + unsigned i; + if (commandList.Size()) + { + for (i=0; i < commandList.Size(); i++) + { + transport->Send(systemAddress, "%s", commandList[i].command); + if (i < commandList.Size()-1) + transport->Send(systemAddress, ", "); + } + transport->Send(systemAddress, "\r\n"); + } + else + transport->Send(systemAddress, "No registered commands\r\n"); +} +void CommandParserInterface::RegisterCommand(unsigned char parameterCount, const char *command, const char *commandHelp) +{ + RegisteredCommand rc; + rc.command=command; + rc.commandHelp=commandHelp; + rc.parameterCount=parameterCount; + commandList.Insert( command, rc, true, _FILE_AND_LINE_); +} +bool CommandParserInterface::GetRegisteredCommand(const char *command, RegisteredCommand *rc) +{ + bool objectExists; + unsigned index; + index=commandList.GetIndexFromKey(command, &objectExists); + if (objectExists) + *rc=commandList[index]; + return objectExists; +} +void CommandParserInterface::OnTransportChange(TransportInterface *transport) +{ + (void) transport; +} +void CommandParserInterface::OnNewIncomingConnection(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) systemAddress; + (void) transport; +} +void CommandParserInterface::OnConnectionLost(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) systemAddress; + (void) transport; +} +void CommandParserInterface::ReturnResult(bool res, const char *command,TransportInterface *transport, const SystemAddress &systemAddress) +{ + if (res) + transport->Send(systemAddress, "%s returned true.\r\n", command); + else + transport->Send(systemAddress, "%s returned false.\r\n", command); +} +void CommandParserInterface::ReturnResult(int res, const char *command,TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "%s returned %i.\r\n", command, res); +} +void CommandParserInterface::ReturnResult(const char *command, TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "Successfully called %s.\r\n", command); +} +void CommandParserInterface::ReturnResult(char *res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "%s returned %s.\r\n", command, res); +} +void CommandParserInterface::ReturnResult(SystemAddress res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress) +{ + char addr[128]; + systemAddress.ToString(false,addr); + char addr2[128]; + res.ToString(false,addr2); + transport->Send(systemAddress, "%s returned %s %s:%i\r\n", command,addr,addr2,res.GetPort()); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/CommandParserInterface.h b/project/lib_projects/raknet/jni/RaknetSources/CommandParserInterface.h new file mode 100755 index 0000000..7a9cc5b --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/CommandParserInterface.h @@ -0,0 +1,140 @@ +/// \file CommandParserInterface.h +/// \brief Contains CommandParserInterface , from which you derive custom command parsers +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __COMMAND_PARSER_INTERFACE +#define __COMMAND_PARSER_INTERFACE + +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "DS_OrderedList.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class TransportInterface; + +/// \internal +/// Contains the information related to one command registered with RegisterCommand() +/// Implemented so I can have an automatic help system via SendCommandList() +struct RAK_DLL_EXPORT RegisteredCommand +{ + const char *command; + const char *commandHelp; + unsigned char parameterCount; +}; + +/// List of commands registered with RegisterCommand() +int RAK_DLL_EXPORT RegisteredCommandComp( const char* const & key, const RegisteredCommand &data ); + +/// \brief The interface used by command parsers. +/// \details CommandParserInterface provides a set of functions and interfaces that plug into the ConsoleServer class. +/// Each CommandParserInterface works at the same time as other interfaces in the system. +class RAK_DLL_EXPORT CommandParserInterface +{ +public: + CommandParserInterface(); + virtual ~CommandParserInterface(); + + /// You are responsible for overriding this function and returning a static string, which will identifier your parser. + /// This should return a static string + /// \return The name that you return. + virtual const char *GetName(void) const=0; + + /// \brief A callback for when \a systemAddress has connected to us. + /// \param[in] systemAddress The player that has connected. + /// \param[in] transport The transport interface that sent us this information. Can be used to send messages to this or other players. + virtual void OnNewIncomingConnection(const SystemAddress &systemAddress, TransportInterface *transport); + + /// \brief A callback for when \a systemAddress has disconnected, either gracefully or forcefully + /// \param[in] systemAddress The player that has disconnected. + /// \param[in] transport The transport interface that sent us this information. + virtual void OnConnectionLost(const SystemAddress &systemAddress, TransportInterface *transport); + + /// \brief A callback for when you are expected to send a brief description of your parser to \a systemAddress + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that requested help. + virtual void SendHelp(TransportInterface *transport, const SystemAddress &systemAddress)=0; + + /// \brief Given \a command with parameters \a parameterList , do whatever processing you wish. + /// \param[in] command The command to process + /// \param[in] numParameters How many parameters were passed along with the command + /// \param[in] parameterList The list of parameters. parameterList[0] is the first parameter and so on. + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that sent this command. + /// \param[in] originalString The string that was actually sent over the network, in case you want to do your own parsing + virtual bool OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString)=0; + + /// \brief This is called every time transport interface is registered. + /// \details If you want to save a copy of the TransportInterface pointer + /// This is the place to do it + /// \param[in] transport The new TransportInterface + virtual void OnTransportChange(TransportInterface *transport); + + /// \internal + /// Scan commandList and return the associated array + /// \param[in] command The string to find + /// \param[out] rc Contains the result of this operation + /// \return True if we found the command, false otherwise + virtual bool GetRegisteredCommand(const char *command, RegisteredCommand *rc); + + /// \internal + /// Goes through str, replacing the delineating character with 0's. + /// \param[in] str The string sent by the transport interface + /// \param[in] delineator The character to scan for to use as a delineator + /// \param[in] delineatorToggle When encountered the delineator replacement is toggled on and off + /// \param[out] numParameters How many pointers were written to \a parameterList + /// \param[out] parameterList An array of pointers to characters. Will hold pointers to locations inside \a str + /// \param[in] parameterListLength How big the \a parameterList array is + static void ParseConsoleString(char *str, const char delineator, unsigned char delineatorToggle, unsigned *numParameters, char **parameterList, unsigned parameterListLength); + + /// \internal + /// Goes through the variable commandList and sends the command portion of each struct + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player to write to + virtual void SendCommandList(TransportInterface *transport, const SystemAddress &systemAddress); + + static const unsigned char VARIABLE_NUMBER_OF_PARAMETERS; + + // Currently only takes static strings - doesn't make a copy of what you pass. + // parameterCount is the number of parameters that the sender has to include with the command. + // Pass 255 to parameterCount to indicate variable number of parameters + + /// Registers a command. + /// \param[in] parameterCount How many parameters your command requires. If you want to accept a variable number of commands, pass CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS + /// \param[in] command A pointer to a STATIC string that has your command. I keep a copy of the pointer here so don't deallocate the string. + /// \param[in] commandHelp A pointer to a STATIC string that has the help information for your command. I keep a copy of the pointer here so don't deallocate the string. + virtual void RegisterCommand(unsigned char parameterCount, const char *command, const char *commandHelp); + + /// \brief Just writes a string to the remote system based on the result ( \a res ) of your operation + /// \details This is not necessary to call, but makes it easier to return results of function calls. + /// \param[in] res The result to write + /// \param[in] command The command that this result came from + /// \param[in] transport The transport interface that will be written to + /// \param[in] systemAddress The player this result will be sent to + virtual void ReturnResult(bool res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress); + virtual void ReturnResult(char *res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress); + virtual void ReturnResult(SystemAddress res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress); + virtual void ReturnResult(int res, const char *command,TransportInterface *transport, const SystemAddress &systemAddress); + + /// \brief Just writes a string to the remote system when you are calling a function that has no return value. + /// \details This is not necessary to call, but makes it easier to return results of function calls. + /// \param[in] res The result to write + /// \param[in] command The command that this result came from + /// \param[in] transport The transport interface that will be written to + /// \param[in] systemAddress The player this result will be sent to + virtual void ReturnResult(const char *command,TransportInterface *transport, const SystemAddress &systemAddress); + +protected: + DataStructures::OrderedList commandList; +}; + +} // namespace RakNet + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/ConnectionGraph2.cpp b/project/lib_projects/raknet/jni/RaknetSources/ConnectionGraph2.cpp new file mode 100755 index 0000000..683c28f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ConnectionGraph2.cpp @@ -0,0 +1,299 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConnectionGraph2==1 + +#include "ConnectionGraph2.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(ConnectionGraph2,ConnectionGraph2); + +int RakNet::ConnectionGraph2::RemoteSystemComp( const RakNetGUID &key, RemoteSystem * const &data ) +{ + if (key < data->guid) + return -1; + if (key > data->guid) + return 1; + return 0; +} + +int RakNet::ConnectionGraph2::SystemAddressAndGuidComp( const SystemAddressAndGuid &key, const SystemAddressAndGuid &data ) +{ + if (key.guiddata.guid) + return 1; + return 0; +} +ConnectionGraph2::ConnectionGraph2() +{ + autoProcessNewConnections=true; +} +ConnectionGraph2::~ConnectionGraph2() +{ + +} +bool ConnectionGraph2::GetConnectionListForRemoteSystem(RakNetGUID remoteSystemGuid, SystemAddress *saOut, RakNetGUID *guidOut, unsigned int *outLength) +{ + if ((saOut==0 && guidOut==0) || outLength==0 || *outLength==0 || remoteSystemGuid==UNASSIGNED_RAKNET_GUID) + { + *outLength=0; + return false; + } + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(remoteSystemGuid, &objectExists); + if (objectExists==false) + { + *outLength=0; + return false; + } + + unsigned int idx2; + if (remoteSystems[idx]->remoteConnections.Size() < *outLength) + *outLength=remoteSystems[idx]->remoteConnections.Size(); + for (idx2=0; idx2 < *outLength; idx2++) + { + if (guidOut) + guidOut[idx2]=remoteSystems[idx]->remoteConnections[idx2].guid; + if (saOut) + saOut[idx2]=remoteSystems[idx]->remoteConnections[idx2].systemAddress; + } + return true; +} +bool ConnectionGraph2::ConnectionExists(RakNetGUID g1, RakNetGUID g2) +{ + if (g1==g2) + return false; + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(g1, &objectExists); + if (objectExists==false) + { + return false; + } + SystemAddressAndGuid sag; + sag.guid=g2; + return remoteSystems[idx]->remoteConnections.HasData(sag); +} +uint16_t ConnectionGraph2::GetPingBetweenSystems(RakNetGUID g1, RakNetGUID g2) const +{ + if (g1==g2) + return 0; + + if (g1==rakPeerInterface->GetMyGUID()) + return (uint16_t) rakPeerInterface->GetAveragePing(g2); + if (g2==rakPeerInterface->GetMyGUID()) + return (uint16_t) rakPeerInterface->GetAveragePing(g1); + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(g1, &objectExists); + if (objectExists==false) + { + return (uint16_t) -1; + } + + SystemAddressAndGuid sag; + sag.guid=g2; + unsigned int idx2 = remoteSystems[idx]->remoteConnections.GetIndexFromKey(sag, &objectExists); + if (objectExists==false) + { + return (uint16_t) -1; + } + return remoteSystems[idx]->remoteConnections[idx2].sendersPingToThatSystem; +} + +/// Returns the system with the lowest total ping among all its connections. This can be used as the 'best host' for a peer to peer session +RakNetGUID ConnectionGraph2::GetLowestAveragePingSystem(void) const +{ + float lowestPing=-1.0; + unsigned int lowestPingIdx=(unsigned int) -1; + float thisAvePing=0.0f; + unsigned int idx, idx2; + int ap, count=0; + + for (idx=0; idxGetAveragePing(remoteSystems[idx]->guid); + if (ap!=-1) + { + thisAvePing+=(float) ap; + count++; + } + } + + if (count>0) + { + lowestPing=thisAvePing/count; + } + + for (idx=0; idxremoteConnections.Size(); idx2++) + { + ap=remoteSystem->remoteConnections[idx2].sendersPingToThatSystem; + if (ap!=-1) + { + thisAvePing+=(float) ap; + count++; + } + } + + if (count>0 && (lowestPing==-1.0f || thisAvePing/count < lowestPing)) + { + lowestPing=thisAvePing/count; + lowestPingIdx=idx; + } + } + + if (lowestPingIdx==(unsigned int) -1) + return rakPeerInterface->GetMyGUID(); + return remoteSystems[lowestPingIdx]->guid; +} + +void ConnectionGraph2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + // Send notice to all existing connections + RakNet::BitStream bs; + if (lostConnectionReason==LCR_CONNECTION_LOST) + bs.Write((MessageID)ID_REMOTE_CONNECTION_LOST); + else + bs.Write((MessageID)ID_REMOTE_DISCONNECTION_NOTIFICATION); + bs.Write(systemAddress); + bs.Write(rakNetGUID); + SendUnified(&bs,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,true); + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { + RakNet::OP_DELETE(remoteSystems[idx],_FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(idx); + } +} +void ConnectionGraph2::SetAutoProcessNewConnections(bool b) +{ + autoProcessNewConnections=b; +} +bool ConnectionGraph2::GetAutoProcessNewConnections(void) const +{ + return autoProcessNewConnections; +} +void ConnectionGraph2::AddParticipant(const SystemAddress &systemAddress, RakNetGUID rakNetGUID) +{ + // Relay the new connection to other systems. + RakNet::BitStream bs; + bs.Write((MessageID)ID_REMOTE_NEW_INCOMING_CONNECTION); + bs.Write((uint32_t)1); + bs.Write(systemAddress); + bs.Write(rakNetGUID); + bs.WriteCasted(rakPeerInterface->GetAveragePing(rakNetGUID)); + SendUnified(&bs,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,true); + + // Send everyone to the new guy + DataStructures::List addresses; + DataStructures::List guids; + rakPeerInterface->GetSystemList(addresses, guids); + bs.Reset(); + bs.Write((MessageID)ID_REMOTE_NEW_INCOMING_CONNECTION); + BitSize_t writeOffset = bs.GetWriteOffset(); + bs.Write((uint32_t) addresses.Size()); + + unsigned int i; + uint32_t count=0; + for (i=0; i < addresses.Size(); i++) + { + if (addresses[i]==systemAddress) + continue; + + bs.Write(addresses[i]); + bs.Write(guids[i]); + bs.WriteCasted(rakPeerInterface->GetAveragePing(guids[i])); + count++; + } + + if (count>0) + { + BitSize_t writeOffset2 = bs.GetWriteOffset(); + bs.SetWriteOffset(writeOffset); + bs.Write(count); + bs.SetWriteOffset(writeOffset2); + SendUnified(&bs,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,false); + } + + bool objectExists; + unsigned int ii = remoteSystems.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists==false) + { + RemoteSystem* remoteSystem = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteSystem->guid=rakNetGUID; + remoteSystems.InsertAtIndex(remoteSystem,ii,_FILE_AND_LINE_); + } +} +void ConnectionGraph2::GetParticipantList(DataStructures::OrderedList &participantList) +{ + participantList.Clear(true, _FILE_AND_LINE_); + unsigned int i; + for (i=0; i < remoteSystems.Size(); i++) + participantList.InsertAtEnd(remoteSystems[i]->guid, _FILE_AND_LINE_); +} +void ConnectionGraph2::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) isIncoming; + if (autoProcessNewConnections) + AddParticipant(systemAddress, rakNetGUID); +} +PluginReceiveResult ConnectionGraph2::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_REMOTE_CONNECTION_LOST || packet->data[0]==ID_REMOTE_DISCONNECTION_NOTIFICATION) + { + bool objectExists; + unsigned idx = remoteSystems.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists) + { + RakNet::BitStream bs(packet->data,packet->length,false); + bs.IgnoreBytes(1); + SystemAddressAndGuid saag; + bs.Read(saag.systemAddress); + bs.Read(saag.guid); + unsigned long idx2 = remoteSystems[idx]->remoteConnections.GetIndexFromKey(saag, &objectExists); + if (objectExists) + remoteSystems[idx]->remoteConnections.RemoveAtIndex(idx2); + } + } + else if (packet->data[0]==ID_REMOTE_NEW_INCOMING_CONNECTION) + { + bool objectExists; + unsigned idx = remoteSystems.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists) + { + uint32_t numAddresses; + RakNet::BitStream bs(packet->data,packet->length,false); + bs.IgnoreBytes(1); + bs.Read(numAddresses); + for (unsigned int idx2=0; idx2 < numAddresses; idx2++) + { + SystemAddressAndGuid saag; + bs.Read(saag.systemAddress); + bs.Read(saag.guid); + bs.Read(saag.sendersPingToThatSystem); + bool objectExists; + unsigned int ii = remoteSystems[idx]->remoteConnections.GetIndexFromKey(saag, &objectExists); + if (objectExists==false) + remoteSystems[idx]->remoteConnections.InsertAtIndex(saag,ii,_FILE_AND_LINE_); + } + } + } + + return RR_CONTINUE_PROCESSING; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ConnectionGraph2.h b/project/lib_projects/raknet/jni/RaknetSources/ConnectionGraph2.h new file mode 100755 index 0000000..b639879 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ConnectionGraph2.h @@ -0,0 +1,118 @@ +/// \file ConnectionGraph2.h +/// \brief Connection graph plugin, version 2. Tells new systems about existing and new connections +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConnectionGraph2==1 + +#ifndef __CONNECTION_GRAPH_2_H +#define __CONNECTION_GRAPH_2_H + +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "DS_List.h" +#include "DS_WeightedGraph.h" +#include "GetTime.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief A one hop connection graph. +/// \details Sends ID_REMOTE_CONNECTION_LOST, ID_REMOTE_DISCONNECTION_NOTIFICATION, ID_REMOTE_NEW_INCOMING_CONNECTION
+/// All identifiers are followed by SystemAddress, then RakNetGUID +/// Also stores the list for you, which you can access with GetConnectionListForRemoteSystem +/// \ingroup CONNECTION_GRAPH_GROUP +class RAK_DLL_EXPORT ConnectionGraph2 : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(ConnectionGraph2) + + ConnectionGraph2(); + ~ConnectionGraph2(); + + /// \brief Given a remote system identified by RakNetGUID, return the list of SystemAddresses and RakNetGUIDs they are connected to + /// \param[in] remoteSystemGuid Which system we are referring to. This only works for remote systems, not ourselves. + /// \param[out] saOut A preallocated array to hold the output list of SystemAddress. Can be 0 if you don't care. + /// \param[out] guidOut A preallocated array to hold the output list of RakNetGUID. Can be 0 if you don't care. + /// \param[in,out] outLength On input, the size of \a saOut and \a guidOut. On output, modified to reflect the number of elements actually written + /// \return True if \a remoteSystemGuid was found. Otherwise false, and \a saOut, \a guidOut remain unchanged. \a outLength will be set to 0. + bool GetConnectionListForRemoteSystem(RakNetGUID remoteSystemGuid, SystemAddress *saOut, RakNetGUID *guidOut, unsigned int *outLength); + + /// Returns if g1 is connected to g2 + bool ConnectionExists(RakNetGUID g1, RakNetGUID g2); + + /// Returns the average ping between two systems in the connection graph. Returns -1 if no connection exists between those systems + uint16_t GetPingBetweenSystems(RakNetGUID g1, RakNetGUID g2) const; + + /// Returns the system with the lowest average ping among all its connections. + /// If you need one system in the peer to peer group to relay data, have the FullyConnectedMesh2 host call this function after host migration, and use that system + RakNetGUID GetLowestAveragePingSystem(void) const; + + /// \brief If called with false, then new connections are only added to the connection graph when you call ProcessNewConnection(); + /// \details This is useful if you want to perform validation before connecting a system to a mesh, or if you want a submesh (for example a server cloud) + /// \param[in] b True to automatically call ProcessNewConnection() on any new connection, false to not do so. Defaults to true. + void SetAutoProcessNewConnections(bool b); + + /// \brief Returns value passed to SetAutoProcessNewConnections() + /// \return Value passed to SetAutoProcessNewConnections(), or the default of true if it was never called + bool GetAutoProcessNewConnections(void) const; + + /// \brief If you call SetAutoProcessNewConnections(false);, then you will need to manually call ProcessNewConnection() on new connections + /// \details On ID_NEW_INCOMING_CONNECTION or ID_CONNECTION_REQUEST_ACCEPTED, adds that system to the graph + /// Do not call ProcessNewConnection() manually otherwise + /// \param[in] The packet->SystemAddress member + /// \param[in] The packet->guid member + void AddParticipant(const SystemAddress &systemAddress, RakNetGUID rakNetGUID); + + /// Get the participants added with AddParticipant() + /// \param[out] participantList Participants added with AddParticipant(); + void GetParticipantList(DataStructures::OrderedList &participantList); + + /// \internal + struct SystemAddressAndGuid + { + SystemAddress systemAddress; + RakNetGUID guid; + uint16_t sendersPingToThatSystem; + }; + /// \internal + static int SystemAddressAndGuidComp( const SystemAddressAndGuid &key, const SystemAddressAndGuid &data ); + + /// \internal + struct RemoteSystem + { + DataStructures::OrderedList remoteConnections; + RakNetGUID guid; + }; + /// \internal + static int RemoteSystemComp( const RakNetGUID &key, RemoteSystem * const &data ); + +protected: + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + + // List of systems I am connected to, which in turn stores which systems they are connected to + DataStructures::OrderedList remoteSystems; + + bool autoProcessNewConnections; + +}; + +} // namespace RakNet + +#endif // #ifndef __CONNECTION_GRAPH_2_H + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ConsoleServer.cpp b/project/lib_projects/raknet/jni/RaknetSources/ConsoleServer.cpp new file mode 100755 index 0000000..1b20dfe --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ConsoleServer.cpp @@ -0,0 +1,311 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConsoleServer==1 + +#include "ConsoleServer.h" +#include "TransportInterface.h" +#include "CommandParserInterface.h" +#include +#include + +#define COMMAND_DELINATOR ' ' +#define COMMAND_DELINATOR_TOGGLE '"' + +#include "LinuxStrings.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(ConsoleServer,ConsoleServer); + +ConsoleServer::ConsoleServer() +{ + transport=0; + password[0]=0; + prompt=0; +} +ConsoleServer::~ConsoleServer() +{ + if (prompt) + rakFree_Ex(prompt, _FILE_AND_LINE_); +} +void ConsoleServer::SetTransportProvider(TransportInterface *transportInterface, unsigned short port) +{ + // Replace the current TransportInterface, stopping the old one, if present, and starting the new one. + if (transportInterface) + { + if (transport) + { + RemoveCommandParser(transport->GetCommandParser()); + transport->Stop(); + } + transport=transportInterface; + transport->Start(port, true); + + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + commandParserList[i]->OnTransportChange(transport); + + // The transport itself might have a command parser - for example password for the RakNet transport + AddCommandParser(transport->GetCommandParser()); + } +} +void ConsoleServer::AddCommandParser(CommandParserInterface *commandParserInterface) +{ + if (commandParserInterface==0) + return; + + // Non-duplicate insertion + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + { + if (commandParserList[i]==commandParserInterface) + return; + + if (_stricmp(commandParserList[i]->GetName(), commandParserInterface->GetName())==0) + { + // Naming conflict between two command parsers + RakAssert(0); + return; + } + } + + commandParserList.Insert(commandParserInterface, _FILE_AND_LINE_); + if (transport) + commandParserInterface->OnTransportChange(transport); +} +void ConsoleServer::RemoveCommandParser(CommandParserInterface *commandParserInterface) +{ + if (commandParserInterface==0) + return; + + // Overwrite the element we are removing from the back of the list and delete the back of the list + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + { + if (commandParserList[i]==commandParserInterface) + { + commandParserList[i]=commandParserList[commandParserList.Size()-1]; + commandParserList.RemoveFromEnd(); + return; + } + } +} +void ConsoleServer::Update(void) +{ + unsigned i; + char *parameterList[20]; // Up to 20 parameters + unsigned numParameters; + RakNet::SystemAddress newOrLostConnectionId; + RakNet::Packet *p; + RakNet::RegisteredCommand rc; + + p = transport->Receive(); + newOrLostConnectionId=transport->HasNewIncomingConnection(); + + if (newOrLostConnectionId!=UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < commandParserList.Size(); i++) + { + commandParserList[i]->OnNewIncomingConnection(newOrLostConnectionId, transport); + } + + transport->Send(newOrLostConnectionId, "Connected to remote command console.\r\nType 'help' for help.\r\n"); + ListParsers(newOrLostConnectionId); + ShowPrompt(newOrLostConnectionId); + } + + newOrLostConnectionId=transport->HasLostConnection(); + if (newOrLostConnectionId!=UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < commandParserList.Size(); i++) + commandParserList[i]->OnConnectionLost(newOrLostConnectionId, transport); + } + + while (p) + { + bool commandParsed=false; + char copy[REMOTE_MAX_TEXT_INPUT]; + memcpy(copy, p->data, p->length); + copy[p->length]=0; + RakNet::CommandParserInterface::ParseConsoleString((char*)p->data, COMMAND_DELINATOR, COMMAND_DELINATOR_TOGGLE, &numParameters, parameterList, 20); // Up to 20 parameters + if (numParameters==0) + { + transport->DeallocatePacket(p); + p = transport->Receive(); + continue; + } + if (_stricmp(*parameterList, "help")==0 && numParameters<=2) + { + // Find the parser specified and display help for it + if (numParameters==1) + { + transport->Send(p->systemAddress, "\r\nINSTRUCTIONS:\r\n"); + transport->Send(p->systemAddress, "Enter commands on your keyboard, using spaces to delineate parameters.\r\n"); + transport->Send(p->systemAddress, "You can use quotation marks to toggle space delineation.\r\n"); + transport->Send(p->systemAddress, "You can connect multiple times from the same computer.\r\n"); + transport->Send(p->systemAddress, "You can direct commands to a parser by prefixing the parser name or number.\r\n"); + transport->Send(p->systemAddress, "COMMANDS:\r\n"); + transport->Send(p->systemAddress, "help Show this display.\r\n"); + transport->Send(p->systemAddress, "help Show help on a particular parser.\r\n"); + transport->Send(p->systemAddress, "help Show help on a particular command.\r\n"); + transport->Send(p->systemAddress, "quit Disconnects from the server.\r\n"); + transport->Send(p->systemAddress, "[] [] Execute a command\r\n"); + transport->Send(p->systemAddress, "[] [] Execute a command\r\n"); + ListParsers(p->systemAddress); + //ShowPrompt(p->systemAddress); + } + else // numParameters == 2, including the help tag + { + for (i=0; i < commandParserList.Size(); i++) + { + if (_stricmp(parameterList[1], commandParserList[i]->GetName())==0) + { + commandParsed=true; + commandParserList[i]->SendHelp(transport, p->systemAddress); + transport->Send(p->systemAddress, "COMMAND LIST:\r\n"); + commandParserList[i]->SendCommandList(transport, p->systemAddress); + transport->Send(p->systemAddress, "\r\n"); + break; + } + } + + if (commandParsed==false) + { + // Try again, for all commands for all parsers. + RakNet::RegisteredCommand rc; + for (i=0; i < commandParserList.Size(); i++) + { + if (commandParserList[i]->GetRegisteredCommand(parameterList[1], &rc)) + { + if (rc.parameterCount==RakNet::CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS) + transport->Send(p->systemAddress, "(Variable parms): %s %s\r\n", rc.command, rc.commandHelp); + else + transport->Send(p->systemAddress, "(%i parms): %s %s\r\n", rc.parameterCount, rc.command, rc.commandHelp); + commandParsed=true; + break; + } + } + } + + if (commandParsed==false) + { + // Don't know what to do + transport->Send(p->systemAddress, "Unknown help topic: %s.\r\n", parameterList[1]); + } + //ShowPrompt(p->systemAddress); + } + } + else if (_stricmp(*parameterList, "quit")==0 && numParameters==1) + { + transport->Send(p->systemAddress, "Goodbye!\r\n"); + transport->CloseConnection(p->systemAddress); + } + else + { + bool tryAllParsers=true; + bool failed=false; + + if (numParameters >=2) // At minimum + { + unsigned commandParserIndex=(unsigned)-1; + // Prefixing with numbers directs to a particular parser + if (**parameterList>='0' && **parameterList<='9') + { + commandParserIndex=atoi(*parameterList); // Use specified parser unless it's an invalid number + commandParserIndex--; // Subtract 1 since we displayed numbers starting at index+1 + if (commandParserIndex >= commandParserList.Size()) + { + transport->Send(p->systemAddress, "Invalid index.\r\n"); + failed=true; + } + } + else + { + // // Prefixing with the name of a command parser directs to that parser. See if the first word matches a parser + for (i=0; i < commandParserList.Size(); i++) + { + if (_stricmp(parameterList[0], commandParserList[i]->GetName())==0) + { + commandParserIndex=i; // Matches parser at index i + break; + } + } + } + + if (failed==false) + { + // -1 means undirected, so otherwise this is directed to a target + if (commandParserIndex!=(unsigned)-1) + { + // Only this parser should use this command + tryAllParsers=false; + if (commandParserList[commandParserIndex]->GetRegisteredCommand(parameterList[1], &rc)) + { + commandParsed=true; + if (rc.parameterCount==CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS || rc.parameterCount==numParameters-2) + commandParserList[commandParserIndex]->OnCommand(rc.command, numParameters-2, parameterList+2, transport, p->systemAddress, copy); + else + transport->Send(p->systemAddress, "Invalid parameter count.\r\n(%i parms): %s %s\r\n", rc.parameterCount, rc.command, rc.commandHelp); + } + } + } + } + + if (failed == false && tryAllParsers) + { + for (i=0; i < commandParserList.Size(); i++) + { + // Undirected command. Try all the parsers to see if they understand the command + // Pass the 1nd element as the command, and the remainder as the parameter list + if (commandParserList[i]->GetRegisteredCommand(parameterList[0], &rc)) + { + commandParsed=true; + + if (rc.parameterCount==CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS || rc.parameterCount==numParameters-1) + commandParserList[i]->OnCommand(rc.command, numParameters-1, parameterList+1, transport, p->systemAddress, copy); + else + transport->Send(p->systemAddress, "Invalid parameter count.\r\n(%i parms): %s %s\r\n", rc.parameterCount, rc.command, rc.commandHelp); + } + } + } + if (commandParsed==false && commandParserList.Size() > 0) + { + transport->Send(p->systemAddress, "Unknown command: Type 'help' for help.\r\n"); + } + + } + + ShowPrompt(p->systemAddress); + + transport->DeallocatePacket(p); + p = transport->Receive(); + } +} + +void ConsoleServer::ListParsers(SystemAddress systemAddress) +{ + transport->Send(systemAddress,"INSTALLED PARSERS:\r\n"); + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + { + transport->Send(systemAddress, "%i. %s\r\n", i+1, commandParserList[i]->GetName()); + } +} +void ConsoleServer::ShowPrompt(SystemAddress systemAddress) +{ + transport->Send(systemAddress, prompt); +} +void ConsoleServer::SetPrompt(const char *_prompt) +{ + if (prompt) + rakFree_Ex(prompt,_FILE_AND_LINE_); + if (_prompt && _prompt[0]) + { + size_t len = strlen(_prompt); + prompt = (char*) rakMalloc_Ex(len+1,_FILE_AND_LINE_); + strcpy(prompt,_prompt); + } + else + prompt=0; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ConsoleServer.h b/project/lib_projects/raknet/jni/RaknetSources/ConsoleServer.h new file mode 100755 index 0000000..d65fc96 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ConsoleServer.h @@ -0,0 +1,77 @@ +/// \file ConsoleServer.h +/// \brief Contains ConsoleServer , used to plugin to your game to accept remote console-based connections +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConsoleServer==1 + +#ifndef __CONSOLE_SERVER_H +#define __CONSOLE_SERVER_H + +#include "RakMemoryOverride.h" +#include "DS_List.h" +#include "RakNetTypes.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class TransportInterface; +class CommandParserInterface; + + +/// \brief The main entry point for the server portion of your remote console application support. +/// \details ConsoleServer takes one TransportInterface and one or more CommandParserInterface (s) +/// The TransportInterface will be used to send data between the server and the client. The connecting client must support the +/// protocol used by your derivation of TransportInterface . TelnetTransport and RakNetTransport are two such derivations . +/// When a command is sent by a remote console, it will be processed by your implementations of CommandParserInterface +class RAK_DLL_EXPORT ConsoleServer +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(ConsoleServer) + + ConsoleServer(); + ~ConsoleServer(); + + /// \brief Call this with a derivation of TransportInterface so that the console server can send and receive commands + /// \param[in] transportInterface Your interface to use. + /// \param[in] port The port to host on. Telnet uses port 23 by default. RakNet can use whatever you want. + void SetTransportProvider(TransportInterface *transportInterface, unsigned short port); + + /// \brief Add an implementation of CommandParserInterface to the list of command parsers. + /// \param[in] commandParserInterface The command parser referred to + void AddCommandParser(CommandParserInterface *commandParserInterface); + + /// \brief Remove an implementation of CommandParserInterface previously added with AddCommandParser(). + /// \param[in] commandParserInterface The command parser referred to + void RemoveCommandParser(CommandParserInterface *commandParserInterface); + + /// \brief Call update to read packet sent from your TransportInterface. + /// You should do this fairly frequently. + void Update(void); + + /// \brief Sets a prompt to show when waiting for user input. + /// \details Pass an empty string to clear the prompt + /// Defaults to no prompt + /// \param[in] _prompt Null-terminated string of the prompt to use. If you want a newline, be sure to use /r/n + void SetPrompt(const char *_prompt); + +protected: + void ListParsers(SystemAddress systemAddress); + void ShowPrompt(SystemAddress systemAddress); + TransportInterface *transport; + DataStructures::List commandParserList; + char* password[256]; + char *prompt; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_BPlusTree.h b/project/lib_projects/raknet/jni/RaknetSources/DS_BPlusTree.h new file mode 100755 index 0000000..768bfd8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_BPlusTree.h @@ -0,0 +1,1146 @@ +/// \file DS_BPlusTree.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __B_PLUS_TREE_CPP +#define __B_PLUS_TREE_CPP + +#include "DS_MemoryPool.h" +#include "DS_Queue.h" +#include +#include "Export.h" + +// Java +// http://www.seanster.com/BplusTree/BplusTree.html + +// Overview +// http://babbage.clarku.edu/~achou/cs160/B+Trees/B+Trees.htm + +// Deletion +// http://dbpubs.stanford.edu:8090/pub/1995-19 + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// Used in the BPlusTree. Used for both leaf and index nodes. + /// Don't use a constructor or destructor, due to the memory pool I am using + template + struct RAK_DLL_EXPORT Page + { + // We use the same data structure for both leaf and index nodes. + // It uses a little more memory for index nodes but reduces + // memory fragmentation, allocations, and deallocations. + bool isLeaf; + + // Used for both leaf and index nodes. + // For a leaf it means the number of elements in data + // For an index it means the number of keys and is one less than the number of children pointers. + int size; + + // Used for both leaf and index nodes. + KeyType keys[order]; + + // Used only for leaf nodes. Data is the actual data, while next is the pointer to the next leaf (for B+) + DataType data[order]; + Page *next; + Page *previous; + + // Used only for index nodes. Pointers to the children of this node. + Page *children[order+1]; + }; + + /// A BPlus tree + /// Written with efficiency and speed in mind. + template + class RAK_DLL_EXPORT BPlusTree + { + public: + struct ReturnAction + { + KeyType key1; + KeyType key2; + enum + { + NO_ACTION, + REPLACE_KEY1_WITH_KEY2, + PUSH_KEY_TO_PARENT, + SET_BRANCH_KEY, + } action; // 0=none, 1=replace key1 with key2 + }; + + BPlusTree(); + ~BPlusTree(); + void SetPoolPageSize(int size); // Set the page size for the memory pool. Optionsl + bool Get(const KeyType key, DataType &out) const; + bool Delete(const KeyType key); + bool Delete(const KeyType key, DataType &out); + bool Insert(const KeyType key, const DataType &data); + void Clear(void); + unsigned Size(void) const; + bool IsEmpty(void) const; + Page *GetListHead(void) const; + DataType GetDataHead(void) const; + void PrintLeaves(void); + void ForEachLeaf(void (*func)(Page * leaf, int index)); + void ForEachData(void (*func)(DataType input, int index)); + void PrintGraph(void); + protected: + void ValidateTreeRecursive(Page *cur); + void DeleteFromPageAtIndex(const int index, Page *cur); + static void PrintLeaf(Page * leaf, int index); + void FreePages(void); + bool GetIndexOf(const KeyType key, Page *page, int *out) const; + void ShiftKeysLeft(Page *cur); + bool CanRotateLeft(Page *cur, int childIndex); + bool CanRotateRight(Page *cur, int childIndex); + void RotateRight(Page *cur, int childIndex, ReturnAction *returnAction); + void RotateLeft(Page *cur, int childIndex, ReturnAction *returnAction); + Page* InsertIntoNode(const KeyType key, const DataType &childData, int insertionIndex, Page *nodeData, Page *cur, ReturnAction* returnAction); + Page* InsertBranchDown(const KeyType key, const DataType &data,Page *cur, ReturnAction* returnAction, bool *success); + Page* GetLeafFromKey(const KeyType key) const; + bool FindDeleteRebalance(const KeyType key, Page *cur, bool *underflow, KeyType rightRootKey, ReturnAction *returnAction, DataType &out); + bool FixUnderflow(int branchIndex, Page *cur, KeyType rightRootKey, ReturnAction *returnAction); + void ShiftNodeLeft(Page *cur); + void ShiftNodeRight(Page *cur); + + MemoryPool > pagePool; + Page *root, *leftmostLeaf; + }; + + template + BPlusTree::BPlusTree () + { + RakAssert(order>1); + root=0; + leftmostLeaf=0; + } + template + BPlusTree::~BPlusTree () + { + Clear(); + } + template + void BPlusTree::SetPoolPageSize(int size) + { + pagePool.SetPageSize(size); + } + template + bool BPlusTree::Get(const KeyType key, DataType &out) const + { + if (root==0) + return false; + + Page* leaf = GetLeafFromKey(key); + int childIndex; + + if (GetIndexOf(key, leaf, &childIndex)) + { + out=leaf->data[childIndex]; + return true; + } + return false; + } + template + void BPlusTree::DeleteFromPageAtIndex(const int index, Page *cur) + { + int i; + for (i=index; i < cur->size-1; i++) + cur->keys[i]=cur->keys[i+1]; + if (cur->isLeaf) + { + for (i=index; i < cur->size-1; i++) + cur->data[i]=cur->data[i+1]; + } + else + { + for (i=index; i < cur->size-1; i++) + cur->children[i+1]=cur->children[i+2]; + } + cur->size--; + } + template + bool BPlusTree::Delete(const KeyType key) + { + DataType temp; + return Delete(key, temp); + } + template + bool BPlusTree::Delete(const KeyType key, DataType &out) + { + if (root==0) + return false; + + ReturnAction returnAction; + returnAction.action=ReturnAction::NO_ACTION; + int childIndex; + bool underflow=false; + if (root==leftmostLeaf) + { + if (GetIndexOf(key, root, &childIndex)==false) + return false; + out=root->data[childIndex]; + DeleteFromPageAtIndex(childIndex,root); + if (root->size==0) + { + pagePool.Release(root, _FILE_AND_LINE_); + root=0; + leftmostLeaf=0; + } + return true; + } + else if (FindDeleteRebalance(key, root, &underflow,root->keys[0], &returnAction, out)==false) + return false; + +// RakAssert(returnAction.action==ReturnAction::NO_ACTION); + + if (underflow && root->size==0) + { + // Move the root down. + Page *oldRoot=root; + root=root->children[0]; + pagePool.Release(oldRoot, _FILE_AND_LINE_); + // memset(oldRoot,0,sizeof(root)); + } + + return true; + } + template + bool BPlusTree::FindDeleteRebalance(const KeyType key, Page *cur, bool *underflow, KeyType rightRootKey, ReturnAction *returnAction, DataType &out) + { + // Get index of child to follow. + int branchIndex, childIndex; + if (GetIndexOf(key, cur, &childIndex)) + branchIndex=childIndex+1; + else + branchIndex=childIndex; + + // If child is not a leaf, call recursively + if (cur->children[branchIndex]->isLeaf==false) + { + if (branchIndexsize) + rightRootKey=cur->keys[branchIndex]; // Shift right to left + else + rightRootKey=cur->keys[branchIndex-1]; // Shift center to left + + if (FindDeleteRebalance(key, cur->children[branchIndex], underflow, rightRootKey, returnAction, out)==false) + return false; + + // Call again in case the root key changed + if (branchIndexsize) + rightRootKey=cur->keys[branchIndex]; // Shift right to left + else + rightRootKey=cur->keys[branchIndex-1]; // Shift center to left + + if (returnAction->action==ReturnAction::SET_BRANCH_KEY && branchIndex!=childIndex) + { + returnAction->action=ReturnAction::NO_ACTION; + cur->keys[childIndex]=returnAction->key1; + + if (branchIndexsize) + rightRootKey=cur->keys[branchIndex]; // Shift right to left + else + rightRootKey=cur->keys[branchIndex-1]; // Shift center to left + } + } + else + { + // If child is a leaf, get the index of the key. If the item is not found, cancel delete. + if (GetIndexOf(key, cur->children[branchIndex], &childIndex)==false) + return false; + + // Delete: + // Remove childIndex from the child at branchIndex + out=cur->children[branchIndex]->data[childIndex]; + DeleteFromPageAtIndex(childIndex, cur->children[branchIndex]); + + if (childIndex==0) + { + if (branchIndex>0) + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + + if (branchIndex==0) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=cur->children[0]->keys[0]; + } + } + + if (cur->children[branchIndex]->size < order/2) + *underflow=true; + else + *underflow=false; + } + + // Fix underflow: + if (*underflow) + { + *underflow=FixUnderflow(branchIndex, cur, rightRootKey, returnAction); + } + + return true; + } + template + bool BPlusTree::FixUnderflow(int branchIndex, Page *cur, KeyType rightRootKey, ReturnAction *returnAction) + { + // Borrow from a neighbor that has excess. + Page *source; + Page *dest; + + if (branchIndex>0 && cur->children[branchIndex-1]->size > order/2) + { + dest=cur->children[branchIndex]; + source=cur->children[branchIndex-1]; + + // Left has excess + ShiftNodeRight(dest); + if (dest->isLeaf) + { + dest->keys[0]=source->keys[source->size-1]; + dest->data[0]=source->data[source->size-1]; + } + else + { + dest->children[0]=source->children[source->size]; + dest->keys[0]=cur->keys[branchIndex-1]; + } + // Update the parent key for the child (middle) + cur->keys[branchIndex-1]=source->keys[source->size-1]; + source->size--; + + // if (branchIndex==0) + // { + // returnAction->action=ReturnAction::SET_BRANCH_KEY; + // returnAction->key1=dest->keys[0]; + // } + + // No underflow + return false; + } + else if (branchIndexsize && cur->children[branchIndex+1]->size > order/2) + { + dest=cur->children[branchIndex]; + source=cur->children[branchIndex+1]; + + // Right has excess + if (dest->isLeaf) + { + dest->keys[dest->size]=source->keys[0]; + dest->data[dest->size]=source->data[0]; + + // The first key in the leaf after shifting is the parent key for the right branch + cur->keys[branchIndex]=source->keys[1]; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (order<=3 && dest->size==0) + { + if (branchIndex==0) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=dest->keys[0]; + } + else + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + } + } + else + { + if (returnAction->action==ReturnAction::NO_ACTION) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=dest->keys[0]; + } + + dest->keys[dest->size]=rightRootKey; + dest->children[dest->size+1]=source->children[0]; + + // The shifted off key is the leftmost key for a node + cur->keys[branchIndex]=source->keys[0]; + } + + + dest->size++; + ShiftNodeLeft(source); + + //cur->keys[branchIndex]=source->keys[0]; + +// returnAction->action=ReturnAction::SET_BRANCH_KEY; +// returnAction->key1=dest->keys[dest->size-1]; + + // No underflow + return false; + } + else + { + int sourceIndex; + + // If no neighbors have excess, merge two branches. + // + // To merge two leaves, just copy the data and keys over. + // + // To merge two branches, copy the pointers and keys over, using rightRootKey as the key for the extra pointer + if (branchIndexsize) + { + // Merge right child to current child and delete right child. + dest=cur->children[branchIndex]; + source=cur->children[branchIndex+1]; + } + else + { + // Move current child to left and delete current child + dest=cur->children[branchIndex-1]; + source=cur->children[branchIndex]; + } + + // Merge + if (dest->isLeaf) + { + for (sourceIndex=0; sourceIndexsize; sourceIndex++) + { + dest->keys[dest->size]=source->keys[sourceIndex]; + dest->data[dest->size++]=source->data[sourceIndex]; + } + } + else + { + // We want the tree root key of the source, not the current. + dest->keys[dest->size]=rightRootKey; + dest->children[dest->size++ + 1]=source->children[0]; + for (sourceIndex=0; sourceIndexsize; sourceIndex++) + { + dest->keys[dest->size]=source->keys[sourceIndex]; + dest->children[dest->size++ + 1]=source->children[sourceIndex + 1]; + } + } + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (order<=3 && branchIndex>0 && cur->children[branchIndex]->isLeaf) // With order==2 it is possible to delete data[0], which is not possible with higher orders. + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + + if (branchIndexsize) + { + // Update the parent key, removing the source (right) + DeleteFromPageAtIndex(branchIndex, cur); + } + else + { + if (branchIndex>0) + { + // Update parent key, removing the source (current) + DeleteFromPageAtIndex(branchIndex-1, cur); + } + } + + if (branchIndex==0 && dest->isLeaf) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=dest->keys[0]; + } + + if (source==leftmostLeaf) + leftmostLeaf=source->next; + + if (source->isLeaf) + { + if (source->previous) + source->previous->next=source->next; + if (source->next) + source->next->previous=source->previous; + } + + // Free the source node + pagePool.Release(source, _FILE_AND_LINE_); + // memset(source,0,sizeof(root)); + + // Return underflow or not of parent. + return cur->size < order/2; + } + } + template + void BPlusTree::ShiftNodeRight(Page *cur) + { + int i; + for (i=cur->size; i>0; i--) + cur->keys[i]=cur->keys[i-1]; + if (cur->isLeaf) + { + for (i=cur->size; i>0; i--) + cur->data[i]=cur->data[i-1]; + } + else + { + for (i=cur->size+1; i>0; i--) + cur->children[i]=cur->children[i-1]; + } + + cur->size++; + } + template + void BPlusTree::ShiftNodeLeft(Page *cur) + { + int i; + for (i=0; i < cur->size-1; i++) + cur->keys[i]=cur->keys[i+1]; + if (cur->isLeaf) + { + for (i=0; i < cur->size; i++) + cur->data[i]=cur->data[i+1]; + } + else + { + for (i=0; i < cur->size; i++) + cur->children[i]=cur->children[i+1]; + } + cur->size--; + } + template + Page* BPlusTree::InsertIntoNode(const KeyType key, const DataType &leafData, int insertionIndex, Page *nodeData, Page *cur, ReturnAction* returnAction) + { + int i; + if (cur->size < order) + { + for (i=cur->size; i > insertionIndex; i--) + cur->keys[i]=cur->keys[i-1]; + if (cur->isLeaf) + { + for (i=cur->size; i > insertionIndex; i--) + cur->data[i]=cur->data[i-1]; + } + else + { + for (i=cur->size+1; i > insertionIndex+1; i--) + cur->children[i]=cur->children[i-1]; + } + cur->keys[insertionIndex]=key; + if (cur->isLeaf) + cur->data[insertionIndex]=leafData; + else + cur->children[insertionIndex+1]=nodeData; + + cur->size++; + } + else + { + Page* newPage = pagePool.Allocate( _FILE_AND_LINE_ ); + newPage->isLeaf=cur->isLeaf; + if (cur->isLeaf) + { + newPage->next=cur->next; + if (cur->next) + cur->next->previous=newPage; + newPage->previous=cur; + cur->next=newPage; + } + + int destIndex, sourceIndex; + + if (insertionIndex>=(order+1)/2) + { + destIndex=0; + sourceIndex=order/2; + + for (; sourceIndex < insertionIndex; sourceIndex++, destIndex++) + { + newPage->keys[destIndex]=cur->keys[sourceIndex]; + } + newPage->keys[destIndex++]=key; + for (; sourceIndex < order; sourceIndex++, destIndex++) + { + newPage->keys[destIndex]=cur->keys[sourceIndex]; + } + + destIndex=0; + sourceIndex=order/2; + if (cur->isLeaf) + { + for (; sourceIndex < insertionIndex; sourceIndex++, destIndex++) + { + newPage->data[destIndex]=cur->data[sourceIndex]; + } + newPage->data[destIndex++]=leafData; + for (; sourceIndex < order; sourceIndex++, destIndex++) + { + newPage->data[destIndex]=cur->data[sourceIndex]; + } + } + else + { + + for (; sourceIndex < insertionIndex; sourceIndex++, destIndex++) + { + newPage->children[destIndex]=cur->children[sourceIndex+1]; + } + newPage->children[destIndex++]=nodeData; + + // sourceIndex+1 is sort of a hack but it works - because there is one extra child than keys + // skip past the last child for cur + for (; sourceIndex+1 < cur->size+1; sourceIndex++, destIndex++) + { + newPage->children[destIndex]=cur->children[sourceIndex+1]; + } + + // the first key is the middle key. Remove it from the page and push it to the parent + returnAction->action=ReturnAction::PUSH_KEY_TO_PARENT; + returnAction->key1=newPage->keys[0]; + for (int i=0; i < destIndex-1; i++) + newPage->keys[i]=newPage->keys[i+1]; + + } + cur->size=order/2; + } + else + { + destIndex=0; + sourceIndex=(order+1)/2-1; + for (; sourceIndex < order; sourceIndex++, destIndex++) + newPage->keys[destIndex]=cur->keys[sourceIndex]; + destIndex=0; + if (cur->isLeaf) + { + sourceIndex=(order+1)/2-1; + for (; sourceIndex < order; sourceIndex++, destIndex++) + newPage->data[destIndex]=cur->data[sourceIndex]; + } + else + { + sourceIndex=(order+1)/2; + for (; sourceIndex < order+1; sourceIndex++, destIndex++) + newPage->children[destIndex]=cur->children[sourceIndex]; + + // the first key is the middle key. Remove it from the page and push it to the parent + returnAction->action=ReturnAction::PUSH_KEY_TO_PARENT; + returnAction->key1=newPage->keys[0]; + for (int i=0; i < destIndex-1; i++) + newPage->keys[i]=newPage->keys[i+1]; + } + cur->size=(order+1)/2-1; + if (cur->size) + { + bool b = GetIndexOf(key, cur, &insertionIndex); + (void) b; + RakAssert(b==false); + } + else + insertionIndex=0; + InsertIntoNode(key, leafData, insertionIndex, nodeData, cur, returnAction); + } + + newPage->size=destIndex; + + return newPage; + } + + return 0; + } + + template + bool BPlusTree::CanRotateLeft(Page *cur, int childIndex) + { + return childIndex>0 && cur->children[childIndex-1]->size + void BPlusTree::RotateLeft(Page *cur, int childIndex, ReturnAction *returnAction) + { + Page *dest = cur->children[childIndex-1]; + Page *source = cur->children[childIndex]; + returnAction->key1=source->keys[0]; + dest->keys[dest->size]=source->keys[0]; + dest->data[dest->size]=source->data[0]; + dest->size++; + for (int i=0; i < source->size-1; i++) + { + source->keys[i]=source->keys[i+1]; + source->data[i]=source->data[i+1]; + } + source->size--; + cur->keys[childIndex-1]=source->keys[0]; + returnAction->key2=source->keys[0]; + } + + template + bool BPlusTree::CanRotateRight(Page *cur, int childIndex) + { + return childIndex < cur->size && cur->children[childIndex+1]->size + void BPlusTree::RotateRight(Page *cur, int childIndex, ReturnAction *returnAction) + { + Page *dest = cur->children[childIndex+1]; + Page *source = cur->children[childIndex]; + returnAction->key1=dest->keys[0]; + for (int i= dest->size; i > 0; i--) + { + dest->keys[i]=dest->keys[i-1]; + dest->data[i]=dest->data[i-1]; + } + dest->keys[0]=source->keys[source->size-1]; + dest->data[0]=source->data[source->size-1]; + dest->size++; + source->size--; + + cur->keys[childIndex]=dest->keys[0]; + returnAction->key2=dest->keys[0]; + } + template + Page* BPlusTree::GetLeafFromKey(const KeyType key) const + { + Page* cur = root; + int childIndex; + while (cur->isLeaf==false) + { + // When searching, if we match the exact key we go down the pointer after that index + if (GetIndexOf(key, cur, &childIndex)) + childIndex++; + cur = cur->children[childIndex]; + } + return cur; + } + + template + Page* BPlusTree::InsertBranchDown(const KeyType key, const DataType &data,Page *cur, ReturnAction *returnAction, bool *success) + { + int childIndex; + int branchIndex; + if (GetIndexOf(key, cur, &childIndex)) + branchIndex=childIndex+1; + else + branchIndex=childIndex; + Page* newPage; + if (cur->isLeaf==false) + { + if (cur->children[branchIndex]->isLeaf==true && cur->children[branchIndex]->size==order) + { + if (branchIndex==childIndex+1) + { + *success=false; + return 0; // Already exists + } + + if (CanRotateLeft(cur, branchIndex)) + { + returnAction->action=ReturnAction::REPLACE_KEY1_WITH_KEY2; + if (key > cur->children[branchIndex]->keys[0]) + { + RotateLeft(cur, branchIndex, returnAction); + + int insertionIndex; + GetIndexOf(key, cur->children[branchIndex], &insertionIndex); + InsertIntoNode(key, data, insertionIndex, 0, cur->children[branchIndex], 0); + } + else + { + // Move head element to left and replace it with key,data + Page* dest=cur->children[branchIndex-1]; + Page* source=cur->children[branchIndex]; + returnAction->key1=source->keys[0]; + returnAction->key2=key; + dest->keys[dest->size]=source->keys[0]; + dest->data[dest->size]=source->data[0]; + dest->size++; + source->keys[0]=key; + source->data[0]=data; + } + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + + return 0; + } + else if (CanRotateRight(cur, branchIndex)) + { + returnAction->action=ReturnAction::REPLACE_KEY1_WITH_KEY2; + + if (key < cur->children[branchIndex]->keys[cur->children[branchIndex]->size-1]) + { + RotateRight(cur, branchIndex, returnAction); + + int insertionIndex; + GetIndexOf(key, cur->children[branchIndex], &insertionIndex); + InsertIntoNode(key, data, insertionIndex, 0, cur->children[branchIndex], 0); + + } + else + { + // Insert to the head of the right leaf instead and change our key + returnAction->key1=cur->children[branchIndex+1]->keys[0]; + InsertIntoNode(key, data, 0, 0, cur->children[branchIndex+1], 0); + returnAction->key2=key; + } + cur->keys[branchIndex]=cur->children[branchIndex+1]->keys[0]; + return 0; + } + } + + newPage=InsertBranchDown(key,data,cur->children[branchIndex], returnAction, success); + if (returnAction->action==ReturnAction::REPLACE_KEY1_WITH_KEY2) + { + if (branchIndex>0 && cur->keys[branchIndex-1]==returnAction->key1) + cur->keys[branchIndex-1]=returnAction->key2; + } + if (newPage) + { + if (newPage->isLeaf==false) + { + RakAssert(returnAction->action==ReturnAction::PUSH_KEY_TO_PARENT); + newPage->size--; + return InsertIntoNode(returnAction->key1, data, branchIndex, newPage, cur, returnAction); + } + else + { + return InsertIntoNode(newPage->keys[0], data, branchIndex, newPage, cur, returnAction); + } + } + } + else + { + if (branchIndex==childIndex+1) + { + *success=false; + return 0; // Already exists + } + else + { + return InsertIntoNode(key, data, branchIndex, 0, cur, returnAction); + } + } + + return 0; + } + template + bool BPlusTree::Insert(const KeyType key, const DataType &data) + { + if (root==0) + { + // Allocate root and make root a leaf + root = pagePool.Allocate( _FILE_AND_LINE_ ); + root->isLeaf=true; + leftmostLeaf=root; + root->size=1; + root->keys[0]=key; + root->data[0]=data; + root->next=0; + root->previous=0; + } + else + { + bool success=true; + ReturnAction returnAction; + returnAction.action=ReturnAction::NO_ACTION; + Page* newPage = InsertBranchDown(key, data, root, &returnAction, &success); + if (success==false) + return false; + if (newPage) + { + KeyType newKey; + if (newPage->isLeaf==false) + { + // One key is pushed up through the stack. I store that at keys[0] but it has to be removed for the page to be correct + RakAssert(returnAction.action==ReturnAction::PUSH_KEY_TO_PARENT); + newKey=returnAction.key1; + newPage->size--; + } + else + newKey = newPage->keys[0]; + // propagate the root + Page* newRoot = pagePool.Allocate( _FILE_AND_LINE_ ); + newRoot->isLeaf=false; + newRoot->size=1; + newRoot->keys[0]=newKey; + newRoot->children[0]=root; + newRoot->children[1]=newPage; + root=newRoot; + } + } + + return true; + } + template + void BPlusTree::ShiftKeysLeft(Page *cur) + { + int i; + for (i=0; i < cur->size; i++) + cur->keys[i]=cur->keys[i+1]; + } + template + void BPlusTree::Clear(void) + { + if (root) + { + FreePages(); + leftmostLeaf=0; + root=0; + } + pagePool.Clear(_FILE_AND_LINE_); + } + template + unsigned BPlusTree::Size(void) const + { + int count=0; + DataStructures::Page *cur = GetListHead(); + while (cur) + { + count+=cur->size; + cur=cur->next; + } + return count; + } + template + bool BPlusTree::IsEmpty(void) const + { + return root==0; + } + template + bool BPlusTree::GetIndexOf(const KeyType key, Page *page, int *out) const + { + RakAssert(page->size>0); + int index, upperBound, lowerBound; + upperBound=page->size-1; + lowerBound=0; + index = page->size/2; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + if (key==page->keys[index]) + { + *out=index; + return true; + } + else if (keykeys[index]) + upperBound=index-1; + else + lowerBound=index+1; + + index=lowerBound+(upperBound-lowerBound)/2; + + if (lowerBound>upperBound) + { + *out=lowerBound; + return false; // No match + } + } + } + template + void BPlusTree::FreePages(void) + { + DataStructures::Queue *> queue; + DataStructures::Page *ptr; + int i; + queue.Push(root, _FILE_AND_LINE_ ); + while (queue.Size()) + { + ptr=queue.Pop(); + if (ptr->isLeaf==false) + { + for (i=0; i < ptr->size+1; i++) + queue.Push(ptr->children[i], _FILE_AND_LINE_ ); + } + pagePool.Release(ptr, _FILE_AND_LINE_); + // memset(ptr,0,sizeof(root)); + }; + } + template + Page *BPlusTree::GetListHead(void) const + { + return leftmostLeaf; + } + template + DataType BPlusTree::GetDataHead(void) const + { + return leftmostLeaf->data[0]; + } + template + void BPlusTree::ForEachLeaf(void (*func)(Page * leaf, int index)) + { + int count=0; + DataStructures::Page *cur = GetListHead(); + while (cur) + { + func(cur, count++); + cur=cur->next; + } + } + template + void BPlusTree::ForEachData(void (*func)(DataType input, int index)) + { + int count=0,i; + DataStructures::Page *cur = GetListHead(); + while (cur) + { + for (i=0; i < cur->size; i++) + func(cur->data[i], count++); + cur=cur->next; + } + } + template + void BPlusTree::PrintLeaf(Page * leaf, int index) + { + int i; + RAKNET_DEBUG_PRINTF("%i] SELF=%p\n", index+1, leaf); + for (i=0; i < leaf->size; i++) + RAKNET_DEBUG_PRINTF(" %i. %i\n", i+1, leaf->data[i]); + } + template + void BPlusTree::PrintLeaves(void) + { + ForEachLeaf(PrintLeaf); + } + + template + void BPlusTree::ValidateTreeRecursive(Page *cur) + { + RakAssert(cur==root || cur->size>=order/2); + + if (cur->children[0]->isLeaf) + { + RakAssert(cur->children[0]->keys[0] < cur->keys[0]); + for (int i=0; i < cur->size; i++) + { + RakAssert(cur->children[i+1]->keys[0]==cur->keys[i]); + } + } + else + { + for (int i=0; i < cur->size+1; i++) + ValidateTreeRecursive(cur->children[i]); + } + } + + template + void BPlusTree::PrintGraph(void) + { + DataStructures::Queue *> queue; + queue.Push(root,_FILE_AND_LINE_); + queue.Push(0,_FILE_AND_LINE_); + DataStructures::Page *ptr; + int i,j; + if (root) + { + RAKNET_DEBUG_PRINTF("%p(", root); + for (i=0; i < root->size; i++) + { + RAKNET_DEBUG_PRINTF("%i ", root->keys[i]); + } + RAKNET_DEBUG_PRINTF(") "); + RAKNET_DEBUG_PRINTF("\n"); + } + while (queue.Size()) + { + ptr=queue.Pop(); + if (ptr==0) + RAKNET_DEBUG_PRINTF("\n"); + else if (ptr->isLeaf==false) + { + for (i=0; i < ptr->size+1; i++) + { + RAKNET_DEBUG_PRINTF("%p(", ptr->children[i]); + //RAKNET_DEBUG_PRINTF("(", ptr->children[i]); + for (j=0; j < ptr->children[i]->size; j++) + RAKNET_DEBUG_PRINTF("%i ", ptr->children[i]->keys[j]); + RAKNET_DEBUG_PRINTF(") "); + queue.Push(ptr->children[i],_FILE_AND_LINE_); + } + queue.Push(0,_FILE_AND_LINE_); + RAKNET_DEBUG_PRINTF(" -- "); + } + } + RAKNET_DEBUG_PRINTF("\n"); + } +} +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + +// Code to test this hellish data structure. +/* +#include "DS_BPlusTree.h" +#include + +// Handle underflow on root. If there is only one item left then I can go downwards. +// Make sure I keep the leftmost pointer valid by traversing it +// When I free a leaf, be sure to adjust the pointers around it. + +#include "Rand.h" + +void main(void) +{ + DataStructures::BPlusTree btree; + DataStructures::List haveList, removedList; + int temp; + int i, j, index; + int testSize; + bool b; + + for (testSize=0; testSize < 514; testSize++) + { + RAKNET_DEBUG_PRINTF("TestSize=%i\n", testSize); + + for (i=0; i < testSize; i++) + haveList.Insert(i); + + for (i=0; i < testSize; i++) + { + index=i+randomMT()%(testSize-i); + temp=haveList[index]; + haveList[index]=haveList[i]; + haveList[i]=temp; + } + + for (i=0; i + * + * OR + * + * AVLBalancedBinarySearchTree + * + * Use the AVL balanced tree if you want the tree to be balanced after every deletion and addition. This avoids the potential + * worst case scenario where ordered input to a binary search tree gives linear search time results. It's not needed + * if input will be evenly distributed, in which case the search time is O (log n). The search time for the AVL + * balanced binary tree is O (log n) irregardless of input. + * + * Has the following member functions + * unsigned int Height() - Returns the height of the tree at the optional specified starting index. Default is the root + * add(element) - adds an element to the BinarySearchTree + * bool del(element) - deletes the node containing element if the element is in the tree as defined by a comparison with the == operator. Returns true on success, false if the element is not found + * bool IsInelement) - returns true if element is in the tree as defined by a comparison with the == operator. Otherwise returns false + * DisplayInorder(array) - Fills an array with an inorder search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * DisplayPreorder(array) - Fills an array with an preorder search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * DisplayPostorder(array) - Fills an array with an postorder search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * DisplayBreadthFirstSearch(array) - Fills an array with a breadth first search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * clear - Destroys the tree. Same as calling the destructor + * unsigned int Height() - Returns the height of the tree + * unsigned int size() - returns the size of the BinarySearchTree + * GetPointerToNode(element) - returns a pointer to the comparision element in the tree, allowing for direct modification when necessary with complex data types. + * Be warned, it is possible to corrupt the tree if the element used for comparisons is modified. Returns NULL if the item is not found + * + * + * EXAMPLE + * @code + * BinarySearchTree A; + * A.Add(10); + * A.Add(15); + * A.Add(5); + * int* array = RakNet::OP_NEW(A.Size(), _FILE_AND_LINE_ ); + * A.DisplayInorder(array); + * array[0]; // returns 5 + * array[1]; // returns 10 + * array[2]; // returns 15 + * @endcode + * compress - reallocates memory to fit the number of elements. Best used when the number of elements decreases + * + * clear - empties the BinarySearchTree and returns storage + * The assignment and copy constructors are defined + * + * \note The template type must have the copy constructor and + * assignment operator defined and must work with >, <, and == All + * elements in the tree MUST be distinct The assignment operator is + * defined between BinarySearchTree and AVLBalancedBinarySearchTree + * as long as they are of the same template type. However, passing a + * BinarySearchTree to an AVLBalancedBinarySearchTree will lose its + * structure unless it happened to be AVL balanced to begin with + * Requires queue_linked_list.cpp for the breadth first search used + * in the copy constructor, overloaded assignment operator, and + * display_breadth_first_search. + * + * + */ + template + class RAK_DLL_EXPORT BinarySearchTree + { + + public: + + struct node + { + BinarySearchTreeType* item; + node* left; + node* right; + }; + + BinarySearchTree(); + virtual ~BinarySearchTree(); + BinarySearchTree( const BinarySearchTree& original_type ); + BinarySearchTree& operator= ( const BinarySearchTree& original_copy ); + unsigned int Size( void ); + void Clear( const char *file, unsigned int line ); + unsigned int Height( node* starting_node = 0 ); + node* Add ( const BinarySearchTreeType& input, const char *file, unsigned int line ); + node* Del( const BinarySearchTreeType& input, const char *file, unsigned int line ); + bool IsIn( const BinarySearchTreeType& input ); + void DisplayInorder( BinarySearchTreeType* return_array ); + void DisplayPreorder( BinarySearchTreeType* return_array ); + void DisplayPostorder( BinarySearchTreeType* return_array ); + void DisplayBreadthFirstSearch( BinarySearchTreeType* return_array ); + BinarySearchTreeType*& GetPointerToNode( const BinarySearchTreeType& element ); + + protected: + + node* root; + + enum Direction_Types + { + NOT_FOUND, LEFT, RIGHT, ROOT + } direction; + unsigned int HeightRecursive( node* current ); + unsigned int BinarySearchTree_size; + node*& Find( const BinarySearchTreeType& element, node** parent ); + node*& FindParent( const BinarySearchTreeType& element ); + void DisplayPostorderRecursive( node* current, BinarySearchTreeType* return_array, unsigned int& index ); + void FixTree( node* current ); + + }; + + /// An AVLBalancedBinarySearchTree is a binary tree that is always balanced + template + class RAK_DLL_EXPORT AVLBalancedBinarySearchTree : public BinarySearchTree + { + + public: + AVLBalancedBinarySearchTree() {} + virtual ~AVLBalancedBinarySearchTree(); + void Add ( const BinarySearchTreeType& input ); + void Del( const BinarySearchTreeType& input ); + BinarySearchTree& operator= ( BinarySearchTree& original_copy ) + { + return BinarySearchTree::operator= ( original_copy ); + } + + private: + void BalanceTree( typename BinarySearchTree::node* current, bool rotateOnce ); + void RotateRight( typename BinarySearchTree::node *C ); + void RotateLeft( typename BinarySearchTree::node* C ); + void DoubleRotateRight( typename BinarySearchTree::node *A ); + void DoubleRotateLeft( typename BinarySearchTree::node* A ); + bool RightHigher( typename BinarySearchTree::node* A ); + bool LeftHigher( typename BinarySearchTree::node* A ); + }; + + template + void AVLBalancedBinarySearchTree::BalanceTree( typename BinarySearchTree::node* current, bool rotateOnce ) + { + int left_height, right_height; + + while ( current ) + { + if ( current->left == 0 ) + left_height = 0; + else + left_height = Height( current->left ); + + if ( current->right == 0 ) + right_height = 0; + else + right_height = Height( current->right ); + + if ( right_height - left_height == 2 ) + { + if ( RightHigher( current->right ) ) + RotateLeft( current->right ); + else + DoubleRotateLeft( current ); + + if ( rotateOnce ) + break; + } + + else + if ( right_height - left_height == -2 ) + { + if ( LeftHigher( current->left ) ) + RotateRight( current->left ); + else + DoubleRotateRight( current ); + + if ( rotateOnce ) + break; + } + + if ( current == this->root ) + break; + + current = FindParent( *( current->item ) ); + + } + } + + template + void AVLBalancedBinarySearchTree::Add ( const BinarySearchTreeType& input ) + { + + typename BinarySearchTree::node * current = BinarySearchTree::Add ( input, _FILE_AND_LINE_ ); + BalanceTree( current, true ); + } + + template + void AVLBalancedBinarySearchTree::Del( const BinarySearchTreeType& input ) + { + typename BinarySearchTree::node * current = BinarySearchTree::Del( input, _FILE_AND_LINE_ ); + BalanceTree( current, false ); + + } + + template + bool AVLBalancedBinarySearchTree::RightHigher( typename BinarySearchTree::node *A ) + { + if ( A == 0 ) + return false; + + return Height( A->right ) > Height( A->left ); + } + + template + bool AVLBalancedBinarySearchTree::LeftHigher( typename BinarySearchTree::node *A ) + { + if ( A == 0 ) + return false; + + return Height( A->left ) > Height( A->right ); + } + + template + void AVLBalancedBinarySearchTree::RotateRight( typename BinarySearchTree::node *C ) + { + typename BinarySearchTree::node * A, *B, *D; + /* + RIGHT ROTATION + + A = parent(b) + b= parent(c) + c = node to rotate around + + A + | // Either direction + B + / \ + C + / \ + D + + TO + + A + | // Either Direction + C + / \ + B + / \ + D + + + + + */ + + B = FindParent( *( C->item ) ); + A = FindParent( *( B->item ) ); + D = C->right; + + if ( A ) + { + // Direction was set by the last find_parent call + + if ( this->direction == this->LEFT ) + A->left = C; + else + A->right = C; + } + + else + this->root = C; // If B has no parent parent then B must have been the root node + + B->left = D; + + C->right = B; + } + + template + void AVLBalancedBinarySearchTree::DoubleRotateRight( typename BinarySearchTree::node *A ) + { + // The left side of the left child must be higher for the tree to balance with a right rotation. If it isn't, rotate it left before the normal rotation so it is. + RotateLeft( A->left->right ); + RotateRight( A->left ); + } + + template + void AVLBalancedBinarySearchTree::RotateLeft( typename BinarySearchTree::node *C ) + { + typename BinarySearchTree::node * A, *B, *D; + /* + RIGHT ROTATION + + A = parent(b) + b= parent(c) + c = node to rotate around + + A + | // Either direction + B + / \ + C + / \ + D + + TO + + A + | // Either Direction + C + / \ + B + / \ + D + + + + + */ + + B = FindParent( *( C->item ) ); + A = FindParent( *( B->item ) ); + D = C->left; + + if ( A ) + { + // Direction was set by the last find_parent call + + if ( this->direction == this->LEFT ) + A->left = C; + else + A->right = C; + } + + else + this->root = C; // If B has no parent parent then B must have been the root node + + B->right = D; + + C->left = B; + } + + template + void AVLBalancedBinarySearchTree::DoubleRotateLeft( typename BinarySearchTree::node *A ) + { + // The left side of the right child must be higher for the tree to balance with a left rotation. If it isn't, rotate it right before the normal rotation so it is. + RotateRight( A->right->left ); + RotateLeft( A->right ); + } + + template + AVLBalancedBinarySearchTree::~AVLBalancedBinarySearchTree() + { + this->Clear(_FILE_AND_LINE_); + } + + template + unsigned int BinarySearchTree::Size( void ) + { + return BinarySearchTree_size; + } + + template + unsigned int BinarySearchTree::Height( typename BinarySearchTree::node* starting_node ) + { + if ( BinarySearchTree_size == 0 || starting_node == 0 ) + return 0; + else + return HeightRecursive( starting_node ); + } + + // Recursively return the height of a binary tree + template + unsigned int BinarySearchTree::HeightRecursive( typename BinarySearchTree::node* current ) + { + unsigned int left_height = 0, right_height = 0; + + if ( ( current->left == 0 ) && ( current->right == 0 ) ) + return 1; // Leaf + + if ( current->left != 0 ) + left_height = 1 + HeightRecursive( current->left ); + + if ( current->right != 0 ) + right_height = 1 + HeightRecursive( current->right ); + + if ( left_height > right_height ) + return left_height; + else + return right_height; + } + + template + BinarySearchTree::BinarySearchTree() + { + BinarySearchTree_size = 0; + root = 0; + } + + template + BinarySearchTree::~BinarySearchTree() + { + this->Clear(_FILE_AND_LINE_); + } + + template + BinarySearchTreeType*& BinarySearchTree::GetPointerToNode( const BinarySearchTreeType& element ) + { + static typename BinarySearchTree::node * tempnode; + static BinarySearchTreeType* dummyptr = 0; + tempnode = Find ( element, &tempnode ); + + if ( this->direction == this->NOT_FOUND ) + return dummyptr; + + return tempnode->item; + } + + template + typename BinarySearchTree::node*& BinarySearchTree::Find( const BinarySearchTreeType& element, typename BinarySearchTree::node** parent ) + { + static typename BinarySearchTree::node * current; + + current = this->root; + *parent = 0; + this->direction = this->ROOT; + + if ( BinarySearchTree_size == 0 ) + { + this->direction = this->NOT_FOUND; + return current = 0; + } + + // Check if the item is at the root + if ( element == *( current->item ) ) + { + this->direction = this->ROOT; + return current; + } + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) + { + // Move pointer + + if ( element < *( current->item ) ) + { + *parent = current; + this->direction = this->LEFT; + current = current->left; + } + + else + if ( element > *( current->item ) ) + { + *parent = current; + this->direction = this->RIGHT; + current = current->right; + } + + if ( current == 0 ) + break; + + // Check if new position holds the item + if ( element == *( current->item ) ) + { + return current; + } + } + + + this->direction = this->NOT_FOUND; + return current = 0; + } + + template + typename BinarySearchTree::node*& BinarySearchTree::FindParent( const BinarySearchTreeType& element ) + { + static typename BinarySearchTree::node * parent; + Find ( element, &parent ); + return parent; + } + + // Performs a series of value swaps starting with current to fix the tree if needed + template + void BinarySearchTree::FixTree( typename BinarySearchTree::node* current ) + { + BinarySearchTreeType temp; + + while ( 1 ) + { + if ( ( ( current->left ) != 0 ) && ( *( current->item ) < *( current->left->item ) ) ) + { + // Swap the current value with the one to the left + temp = *( current->left->item ); + *( current->left->item ) = *( current->item ); + *( current->item ) = temp; + current = current->left; + } + + else + if ( ( ( current->right ) != 0 ) && ( *( current->item ) > *( current->right->item ) ) ) + { + // Swap the current value with the one to the right + temp = *( current->right->item ); + *( current->right->item ) = *( current->item ); + *( current->item ) = temp; + current = current->right; + } + + else + break; // current points to the right place so quit + } + } + + template + typename BinarySearchTree::node* BinarySearchTree::Del( const BinarySearchTreeType& input, const char *file, unsigned int line ) + { + typename BinarySearchTree::node * node_to_delete, *current, *parent; + + if ( BinarySearchTree_size == 0 ) + return 0; + + if ( BinarySearchTree_size == 1 ) + { + Clear(file, line); + return 0; + } + + node_to_delete = Find( input, &parent ); + + if ( direction == NOT_FOUND ) + return 0; // Couldn't find the element + + current = node_to_delete; + + // Replace the deleted node with the appropriate value + if ( ( current->right ) == 0 && ( current->left ) == 0 ) // Leaf node, just remove it + { + + if ( parent ) + { + if ( direction == LEFT ) + parent->left = 0; + else + parent->right = 0; + } + + RakNet::OP_DELETE(node_to_delete->item, file, line); + RakNet::OP_DELETE(node_to_delete, file, line); + BinarySearchTree_size--; + return parent; + } + else + if ( ( current->right ) != 0 && ( current->left ) == 0 ) // Node has only one child, delete it and cause the parent to point to that child + { + + if ( parent ) + { + if ( direction == RIGHT ) + parent->right = current->right; + else + parent->left = current->right; + } + + else + root = current->right; // Without a parent this must be the root node + + RakNet::OP_DELETE(node_to_delete->item, file, line); + + RakNet::OP_DELETE(node_to_delete, file, line); + + BinarySearchTree_size--; + + return parent; + } + else + if ( ( current->right ) == 0 && ( current->left ) != 0 ) // Node has only one child, delete it and cause the parent to point to that child + { + + if ( parent ) + { + if ( direction == RIGHT ) + parent->right = current->left; + else + parent->left = current->left; + } + + else + root = current->left; // Without a parent this must be the root node + + RakNet::OP_DELETE(node_to_delete->item, file, line); + + RakNet::OP_DELETE(node_to_delete, file, line); + + BinarySearchTree_size--; + + return parent; + } + else // Go right, then as left as far as you can + { + parent = current; + direction = RIGHT; + current = current->right; // Must have a right branch because the if statements above indicated that it has 2 branches + + while ( current->left ) + { + direction = LEFT; + parent = current; + current = current->left; + } + + // Replace the value held by the node to RakNet::OP_DELETE(with the value pointed to by current, _FILE_AND_LINE_); + *( node_to_delete->item ) = *( current->item ); + + // Delete current. + // If it is a leaf node just delete it + if ( current->right == 0 ) + { + if ( direction == RIGHT ) + parent->right = 0; + else + parent->left = 0; + + RakNet::OP_DELETE(current->item, file, line); + + RakNet::OP_DELETE(current, file, line); + + BinarySearchTree_size--; + + return parent; + } + + else + { + // Skip this node and make its parent point to its right branch + + if ( direction == RIGHT ) + parent->right = current->right; + else + parent->left = current->right; + + RakNet::OP_DELETE(current->item, file, line); + + RakNet::OP_DELETE(current, file, line); + + BinarySearchTree_size--; + + return parent; + } + } + } + + template + typename BinarySearchTree::node* BinarySearchTree::Add ( const BinarySearchTreeType& input, const char *file, unsigned int line ) + { + typename BinarySearchTree::node * current; + + // Add the new element to the tree according to the following alogrithm: + // 1. If the current node is empty add the new leaf + // 2. If the element is less than the current node then go down the left branch + // 3. If the element is greater than the current node then go down the right branch + + if ( BinarySearchTree_size == 0 ) + { + BinarySearchTree_size = 1; + root = RakNet::OP_NEW( file, line ); + root->item = RakNet::OP_NEW( file, line ); + *( root->item ) = input; + root->left = 0; + root->right = 0; + + return root; + } + + else + { + // start at the root + current = root; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) // This loop traverses the tree to find a spot for insertion + { + + if ( input < *( current->item ) ) + { + if ( current->left == 0 ) + { + current->left = RakNet::OP_NEW( file, line ); + current->left->item = RakNet::OP_NEW( file, line ); + current = current->left; + current->left = 0; + current->right = 0; + *( current->item ) = input; + + BinarySearchTree_size++; + return current; + } + + else + { + current = current->left; + } + } + + else + if ( input > *( current->item ) ) + { + if ( current->right == 0 ) + { + current->right = RakNet::OP_NEW( file, line ); + current->right->item = RakNet::OP_NEW( file, line ); + current = current->right; + current->left = 0; + current->right = 0; + *( current->item ) = input; + + BinarySearchTree_size++; + return current; + } + + else + { + current = current->right; + } + } + + else + return 0; // ((input == current->item) == true) which is not allowed since the tree only takes discrete values. Do nothing + } + } + } + + template + bool BinarySearchTree::IsIn( const BinarySearchTreeType& input ) + { + typename BinarySearchTree::node * parent; + find( input, &parent ); + + if ( direction != NOT_FOUND ) + return true; + else + return false; + } + + + template + void BinarySearchTree::DisplayInorder( BinarySearchTreeType* return_array ) + { + typename BinarySearchTree::node * current, *parent; + bool just_printed = false; + + unsigned int index = 0; + + current = root; + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + + direction = ROOT; // Reset the direction + + while ( index != BinarySearchTree_size ) + { + // direction is set by the find function and holds the direction of the parent to the last node visited. It is used to prevent revisiting nodes + + if ( ( current->left != 0 ) && ( direction != LEFT ) && ( direction != RIGHT ) ) + { + // Go left if the following 2 conditions are true + // I can go left + // I did not just move up from a right child + // I did not just move up from a left child + + current = current->left; + direction = ROOT; // Reset the direction + } + + else + if ( ( direction != RIGHT ) && ( just_printed == false ) ) + { + // Otherwise, print the current node if the following 3 conditions are true: + // I did not just move up from a right child + // I did not print this ndoe last cycle + + return_array[ index++ ] = *( current->item ); + just_printed = true; + } + + else + if ( ( current->right != 0 ) && ( direction != RIGHT ) ) + { + // Otherwise, go right if the following 2 conditions are true + // I did not just move up from a right child + // I can go right + + current = current->right; + direction = ROOT; // Reset the direction + just_printed = false; + } + + else + { + // Otherwise I've done everything I can. Move up the tree one node + parent = FindParent( *( current->item ) ); + current = parent; + just_printed = false; + } + } + } + + template + void BinarySearchTree::DisplayPreorder( BinarySearchTreeType* return_array ) + { + typename BinarySearchTree::node * current, *parent; + + unsigned int index = 0; + + current = root; + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + + direction = ROOT; // Reset the direction + return_array[ index++ ] = *( current->item ); + + while ( index != BinarySearchTree_size ) + { + // direction is set by the find function and holds the direction of the parent to the last node visited. It is used to prevent revisiting nodes + + if ( ( current->left != 0 ) && ( direction != LEFT ) && ( direction != RIGHT ) ) + { + + current = current->left; + direction = ROOT; + + // Everytime you move a node print it + return_array[ index++ ] = *( current->item ); + } + + else + if ( ( current->right != 0 ) && ( direction != RIGHT ) ) + { + current = current->right; + direction = ROOT; + + // Everytime you move a node print it + return_array[ index++ ] = *( current->item ); + } + + else + { + // Otherwise I've done everything I can. Move up the tree one node + parent = FindParent( *( current->item ) ); + current = parent; + } + } + } + + template + inline void BinarySearchTree::DisplayPostorder( BinarySearchTreeType* return_array ) + { + unsigned int index = 0; + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + DisplayPostorderRecursive( root, return_array, index ); + } + + + // Recursively do a postorder traversal + template + void BinarySearchTree::DisplayPostorderRecursive( typename BinarySearchTree::node* current, BinarySearchTreeType* return_array, unsigned int& index ) + { + if ( current->left != 0 ) + DisplayPostorderRecursive( current->left, return_array, index ); + + if ( current->right != 0 ) + DisplayPostorderRecursive( current->right, return_array, index ); + + return_array[ index++ ] = *( current->item ); + + } + + + template + void BinarySearchTree::DisplayBreadthFirstSearch( BinarySearchTreeType* return_array ) + { + typename BinarySearchTree::node * current; + unsigned int index = 0; + + // Display the tree using a breadth first search + // Put the children of the current node into the queue + // Pop the queue, put its children into the queue, repeat until queue is empty + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + else + { + DataStructures::QueueLinkedList tree_queue; + + // Add the root of the tree I am copying from + tree_queue.Push( root ); + + do + { + current = tree_queue.Pop(); + return_array[ index++ ] = *( current->item ); + + // Add the child or children of the tree I am copying from to the queue + + if ( current->left != 0 ) + tree_queue.Push( current->left ); + + if ( current->right != 0 ) + tree_queue.Push( current->right ); + + } + + while ( tree_queue.Size() > 0 ); + } + } + + + template + BinarySearchTree::BinarySearchTree( const BinarySearchTree& original_copy ) + { + typename BinarySearchTree::node * current; + // Copy the tree using a breadth first search + // Put the children of the current node into the queue + // Pop the queue, put its children into the queue, repeat until queue is empty + + // This is a copy of the constructor. A bug in Visual C++ made it so if I just put the constructor call here the variable assignments were ignored. + BinarySearchTree_size = 0; + root = 0; + + if ( original_copy.BinarySearchTree_size == 0 ) + { + BinarySearchTree_size = 0; + } + + else + { + DataStructures::QueueLinkedList tree_queue; + + // Add the root of the tree I am copying from + tree_queue.Push( original_copy.root ); + + do + { + current = tree_queue.Pop(); + + Add ( *( current->item ), _FILE_AND_LINE_ ) + + ; + + // Add the child or children of the tree I am copying from to the queue + if ( current->left != 0 ) + tree_queue.Push( current->left ); + + if ( current->right != 0 ) + tree_queue.Push( current->right ); + + } + + while ( tree_queue.Size() > 0 ); + } + } + + template + BinarySearchTree& BinarySearchTree::operator= ( const BinarySearchTree& original_copy ) + { + typename BinarySearchTree::node * current; + + if ( ( &original_copy ) == this ) + return *this; + + Clear( _FILE_AND_LINE_ ); // Remove the current tree + + // This is a copy of the constructor. A bug in Visual C++ made it so if I just put the constructor call here the variable assignments were ignored. + BinarySearchTree_size = 0; + + root = 0; + + + // Copy the tree using a breadth first search + // Put the children of the current node into the queue + // Pop the queue, put its children into the queue, repeat until queue is empty + if ( original_copy.BinarySearchTree_size == 0 ) + { + BinarySearchTree_size = 0; + } + + else + { + DataStructures::QueueLinkedList tree_queue; + + // Add the root of the tree I am copying from + tree_queue.Push( original_copy.root ); + + do + { + current = tree_queue.Pop(); + + Add ( *( current->item ), _FILE_AND_LINE_ ) + + ; + + // Add the child or children of the tree I am copying from to the queue + if ( current->left != 0 ) + tree_queue.Push( current->left ); + + if ( current->right != 0 ) + tree_queue.Push( current->right ); + + } + + while ( tree_queue.Size() > 0 ); + } + + return *this; + } + + template + inline void BinarySearchTree::Clear ( const char *file, unsigned int line ) + { + typename BinarySearchTree::node * current, *parent; + + current = root; + + while ( BinarySearchTree_size > 0 ) + { + if ( BinarySearchTree_size == 1 ) + { + RakNet::OP_DELETE(root->item, file, line); + RakNet::OP_DELETE(root, file, line); + root = 0; + BinarySearchTree_size = 0; + } + + else + { + if ( current->left != 0 ) + { + current = current->left; + } + + else + if ( current->right != 0 ) + { + current = current->right; + } + + else // leaf + { + // Not root node so must have a parent + parent = FindParent( *( current->item ) ); + + if ( ( parent->left ) == current ) + parent->left = 0; + else + parent->right = 0; + + RakNet::OP_DELETE(current->item, file, line); + + RakNet::OP_DELETE(current, file, line); + + current = parent; + + BinarySearchTree_size--; + } + } + } + } + +} // End namespace + +#endif + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_BytePool.cpp b/project/lib_projects/raknet/jni/RaknetSources/DS_BytePool.cpp new file mode 100755 index 0000000..823461d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_BytePool.cpp @@ -0,0 +1,149 @@ +#include "DS_BytePool.h" +#include "RakAssert.h" +#ifndef __APPLE__ +// Use stdlib and not malloc for compatibility +#include +#endif + +using namespace DataStructures; + +BytePool::BytePool() +{ + pool128.SetPageSize(8192*4); + pool512.SetPageSize(8192*4); + pool2048.SetPageSize(8192*4); + pool8192.SetPageSize(8192*4); +} +BytePool::~BytePool() +{ +} +void BytePool::SetPageSize(int size) +{ + pool128.SetPageSize(size); + pool512.SetPageSize(size); + pool2048.SetPageSize(size); + pool8192.SetPageSize(size); +} +unsigned char *BytePool::Allocate(int bytesWanted, const char *file, unsigned int line) +{ +#ifdef _DISABLE_BYTE_POOL + return rakMalloc_Ex(bytesWanted, _FILE_AND_LINE_); +#endif + unsigned char *out; + if (bytesWanted <= 127) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Lock(); + #endif + out = (unsigned char*) pool128.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Unlock(); + #endif + out[0]=0; + return ((unsigned char*) out)+1; + } + if (bytesWanted <= 511) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Lock(); + #endif + out = (unsigned char*) pool512.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Unlock(); + #endif + out[0]=1; + return ((unsigned char*) out)+1; + } + if (bytesWanted <= 2047) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Lock(); + #endif + out = (unsigned char*) pool2048.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Unlock(); + #endif + out[0]=2; + return ((unsigned char*) out)+1; + } + if (bytesWanted <= 8191) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Lock(); + #endif + out = (unsigned char*) pool8192.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Unlock(); + #endif + out[0]=3; + return ((unsigned char*) out)+1; + } + + out = (unsigned char*) rakMalloc_Ex(bytesWanted+1, _FILE_AND_LINE_); + out[0]=(unsigned char)255; + return out+1; +} +void BytePool::Release(unsigned char *data, const char *file, unsigned int line) +{ +#ifdef _DISABLE_BYTE_POOL + _rakFree_Ex(data, _FILE_AND_LINE_ ); +#endif + unsigned char *realData = data-1; + switch (realData[0]) + { + case 0: + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Lock(); + #endif + pool128.Release((unsigned char(*)[128]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Unlock(); + #endif + break; + case 1: + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Lock(); + #endif + pool512.Release((unsigned char(*)[512]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Unlock(); + #endif + break; + case 2: + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Lock(); + #endif + pool2048.Release((unsigned char(*)[2048]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Unlock(); + #endif + break; + case 3: + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Lock(); + #endif + pool8192.Release((unsigned char(*)[8192]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Unlock(); + #endif + break; + case 255: + rakFree_Ex(realData, file, line ); + break; + default: + RakAssert(0); + break; + } +} +void BytePool::Clear(const char *file, unsigned int line) +{ + (void) file; + (void) line; + +#ifdef _THREADSAFE_BYTE_POOL + pool128.Clear(file, line); + pool512.Clear(file, line); + pool2048.Clear(file, line); + pool8192.Clear(file, line); +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_BytePool.h b/project/lib_projects/raknet/jni/RaknetSources/DS_BytePool.h new file mode 100755 index 0000000..bdb8301 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_BytePool.h @@ -0,0 +1,46 @@ +/// \file DS_BytePool.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __BYTE_POOL_H +#define __BYTE_POOL_H + +#include "RakMemoryOverride.h" +#include "DS_MemoryPool.h" +#include "Export.h" +#include "SimpleMutex.h" +#include "RakAssert.h" + +// #define _DISABLE_BYTE_POOL +// #define _THREADSAFE_BYTE_POOL + +namespace DataStructures +{ + // Allocate some number of bytes from pools. Uses the heap if necessary. + class RAK_DLL_EXPORT BytePool + { + public: + BytePool(); + ~BytePool(); + // Should be at least 8 times bigger than 8192 + void SetPageSize(int size); + unsigned char* Allocate(int bytesWanted, const char *file, unsigned int line); + void Release(unsigned char *data, const char *file, unsigned int line); + void Clear(const char *file, unsigned int line); + protected: + MemoryPool pool128; + MemoryPool pool512; + MemoryPool pool2048; + MemoryPool pool8192; +#ifdef _THREADSAFE_BYTE_POOL + SimpleMutex mutex128; + SimpleMutex mutex512; + SimpleMutex mutex2048; + SimpleMutex mutex8192; +#endif + }; +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_ByteQueue.cpp b/project/lib_projects/raknet/jni/RaknetSources/DS_ByteQueue.cpp new file mode 100755 index 0000000..5e0ffd8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_ByteQueue.cpp @@ -0,0 +1,127 @@ +#include "DS_ByteQueue.h" +#include // Memmove +#include // realloc +#include + + +using namespace DataStructures; + +ByteQueue::ByteQueue() +{ + readOffset=writeOffset=lengthAllocated=0; + data=0; +} +ByteQueue::~ByteQueue() +{ + Clear(_FILE_AND_LINE_); + + +} +void ByteQueue::WriteBytes(const char *in, unsigned length, const char *file, unsigned int line) +{ + unsigned bytesWritten; + bytesWritten=GetBytesWritten(); + if (lengthAllocated==0 || length > lengthAllocated-bytesWritten-1) + { + unsigned oldLengthAllocated=lengthAllocated; + // Always need to waste 1 byte for the math to work, else writeoffset==readoffset + unsigned newAmountToAllocate=length+oldLengthAllocated+1; + if (newAmountToAllocate<256) + newAmountToAllocate=256; + lengthAllocated=lengthAllocated + newAmountToAllocate; + data=(char*)rakRealloc_Ex(data, lengthAllocated, file, line); + if (writeOffset < readOffset) + { + if (writeOffset <= newAmountToAllocate) + { + memcpy(data + oldLengthAllocated, data, writeOffset); + writeOffset=readOffset+bytesWritten; + } + else + { + memcpy(data + oldLengthAllocated, data, newAmountToAllocate); + memmove(data, data+newAmountToAllocate, writeOffset-newAmountToAllocate); + writeOffset-=newAmountToAllocate; + } + } + } + + if (length <= lengthAllocated-writeOffset) + memcpy(data+writeOffset, in, length); + else + { + // Wrap + memcpy(data+writeOffset, in, lengthAllocated-writeOffset); + memcpy(data, in+(lengthAllocated-writeOffset), length-(lengthAllocated-writeOffset)); + } + writeOffset=(writeOffset+length) % lengthAllocated; +} +bool ByteQueue::ReadBytes(char *out, unsigned maxLengthToRead, bool peek) +{ + unsigned bytesWritten = GetBytesWritten(); + unsigned bytesToRead = bytesWritten < maxLengthToRead ? bytesWritten : maxLengthToRead; + if (bytesToRead==0) + return false; + if (writeOffset>=readOffset) + { + memcpy(out, data+readOffset, bytesToRead); + } + else + { + unsigned availableUntilWrap = lengthAllocated-readOffset; + if (bytesToRead <= availableUntilWrap) + { + memcpy(out, data+readOffset, bytesToRead); + } + else + { + memcpy(out, data+readOffset, availableUntilWrap); + memcpy(out+availableUntilWrap, data, bytesToRead-availableUntilWrap); + } + } + + if (peek==false) + IncrementReadOffset(bytesToRead); + + return true; +} +char* ByteQueue::PeekContiguousBytes(unsigned int *outLength) const +{ + if (writeOffset>=readOffset) + *outLength=writeOffset-readOffset; + else + *outLength=lengthAllocated-readOffset; + return data+readOffset; +} +void ByteQueue::Clear(const char *file, unsigned int line) +{ + if (lengthAllocated) + rakFree_Ex(data, file, line ); + readOffset=writeOffset=lengthAllocated=0; + data=0; +} +unsigned ByteQueue::GetBytesWritten(void) const +{ + if (writeOffset>=readOffset) + return writeOffset-readOffset; + else + return writeOffset+(lengthAllocated-readOffset); +} +void ByteQueue::IncrementReadOffset(unsigned length) +{ + readOffset=(readOffset+length) % lengthAllocated; +} +void ByteQueue::DecrementReadOffset(unsigned length) +{ + if (length>readOffset) + readOffset=lengthAllocated-(length-readOffset); + else + readOffset-=length; +} +void ByteQueue::Print(void) +{ + unsigned i; + for (i=readOffset; i!=writeOffset; i++) + RAKNET_DEBUG_PRINTF("%i ", data[i]); + RAKNET_DEBUG_PRINTF("\n"); +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_ByteQueue.h b/project/lib_projects/raknet/jni/RaknetSources/DS_ByteQueue.h new file mode 100755 index 0000000..e6a0e31 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_ByteQueue.h @@ -0,0 +1,40 @@ +/// \file DS_ByteQueue.h +/// \internal +/// \brief Byte queue +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __BYTE_QUEUE_H +#define __BYTE_QUEUE_H + +#include "RakMemoryOverride.h" +#include "Export.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + class ByteQueue + { + public: + ByteQueue(); + ~ByteQueue(); + void WriteBytes(const char *in, unsigned length, const char *file, unsigned int line); + bool ReadBytes(char *out, unsigned maxLengthToRead, bool peek); + unsigned GetBytesWritten(void) const; + char* PeekContiguousBytes(unsigned int *outLength) const; + void IncrementReadOffset(unsigned length); + void DecrementReadOffset(unsigned length); + void Clear(const char *file, unsigned int line); + void Print(void); + + protected: + char *data; + unsigned readOffset, writeOffset, lengthAllocated; + }; +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Hash.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Hash.h new file mode 100755 index 0000000..39848d3 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Hash.h @@ -0,0 +1,344 @@ +/// \internal +/// \brief Hashing container +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HASH_H +#define __HASH_H + +#include "RakAssert.h" +#include // memmove +#include "Export.h" +#include "RakMemoryOverride.h" +#include "RakString.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + struct HashIndex + { + unsigned int primaryIndex; + unsigned int secondaryIndex; + bool IsInvalid(void) const {return primaryIndex==(unsigned int) -1;} + void SetInvalid(void) {primaryIndex=(unsigned int) -1; secondaryIndex=(unsigned int) -1;} + }; + + /// \brief Using a string as a identifier for a node, store an allocated pointer to that node + template + class RAK_DLL_EXPORT Hash + { + public: + /// Default constructor + Hash(); + + // Destructor + ~Hash(); + + void Push(key_type key, const data_type &input, const char *file, unsigned int line ); + data_type* Peek(key_type key ); + bool Pop(data_type& out, key_type key, const char *file, unsigned int line ); + bool RemoveAtIndex(HashIndex index, const char *file, unsigned int line ); + bool Remove(key_type key, const char *file, unsigned int line ); + HashIndex GetIndexOf(key_type key); + bool HasData(key_type key); + data_type& ItemAtIndex(const HashIndex &index); + key_type KeyAtIndex(const HashIndex &index); + void GetAsList(DataStructures::List &itemList,DataStructures::List &keyList,const char *file, unsigned int line) const; + unsigned int Size(void) const; + + /// \brief Clear the list + void Clear( const char *file, unsigned int line ); + + struct Node + { + Node(key_type strIn, const data_type &_data) {string=strIn; data=_data;} + key_type string; + data_type data; + // Next in the list for this key + Node *next; + }; + + protected: + void ClearIndex(unsigned int index,const char *file, unsigned int line); + Node **nodeList; + unsigned int size; + }; + + template + Hash::Hash() + { + nodeList=0; + size=0; + } + + template + Hash::~Hash() + { + Clear(_FILE_AND_LINE_); + } + + template + void Hash::Push(key_type key, const data_type &input, const char *file, unsigned int line ) + { + unsigned long hashIndex = (*hashFunction)(key) % HASH_SIZE; + if (nodeList==0) + { + nodeList=RakNet::OP_NEW_ARRAY(HASH_SIZE,file,line); + memset(nodeList,0,sizeof(Node *)*HASH_SIZE); + } + + Node *newNode=RakNet::OP_NEW_2(file,line,key,input); + newNode->next=nodeList[hashIndex]; + nodeList[hashIndex]=newNode; + + size++; + } + + template + data_type* Hash::Peek(key_type key ) + { + unsigned long hashIndex = (*hashFunction)(key) % HASH_SIZE; + Node *node = nodeList[hashIndex]; + while (node!=0) + { + if (node->string==key) + return &node->data; + node=node->next; + } + return 0; + } + + template + bool Hash::Pop(data_type& out, key_type key, const char *file, unsigned int line ) + { + unsigned long hashIndex = (*hashFunction)(key) % HASH_SIZE; + Node *node = nodeList[hashIndex]; + if (node==0) + return false; + if (node->next==0) + { + // Only one item. + if (node->string==key) + { + // Delete last item + out=node->data; + ClearIndex(hashIndex,_FILE_AND_LINE_); + return true; + } + else + { + // Single item doesn't match + return false; + } + } + else if (node->string==key) + { + // First item does match, but more than one item + out=node->data; + nodeList[hashIndex]=node->next; + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + + Node *last=node; + node=node->next; + + while (node!=0) + { + // First item does not match, but subsequent item might + if (node->string==key) + { + out=node->data; + // Skip over subsequent item + last->next=node->next; + // Delete existing item + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + last=node; + node=node->next; + } + return false; + } + + template + bool Hash::RemoveAtIndex(HashIndex index, const char *file, unsigned int line ) + { + if (index.IsInvalid()) + return false; + + Node *node = nodeList[index.primaryIndex]; + if (node==0) + return false; + if (node->next==0) + { + // Delete last item + ClearIndex(index.primaryIndex,file,line); + return true; + } + else if (index.secondaryIndex==0) + { + // First item does match, but more than one item + nodeList[index.primaryIndex]=node->next; + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + + Node *last=node; + node=node->next; + --index.secondaryIndex; + + while (index.secondaryIndex!=0) + { + last=node; + node=node->next; + --index.secondaryIndex; + } + + // Skip over subsequent item + last->next=node->next; + // Delete existing item + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + + template + bool Hash::Remove(key_type key, const char *file, unsigned int line ) + { + return RemoveAtIndex(GetIndexOf(key),file,line); + } + + template + HashIndex Hash::GetIndexOf(key_type key) + { + if (nodeList==0) + { + HashIndex temp; + temp.SetInvalid(); + return temp; + } + HashIndex idx; + idx.primaryIndex=(*hashFunction)(key) % HASH_SIZE; + Node *node = nodeList[idx.primaryIndex]; + if (node==0) + { + idx.SetInvalid(); + return idx; + } + idx.secondaryIndex=0; + while (node!=0) + { + if (node->string==key) + { + return idx; + } + node=node->next; + idx.secondaryIndex++; + } + + idx.SetInvalid(); + return idx; + } + + template + bool Hash::HasData(key_type key) + { + return GetIndexOf(key).IsInvalid()==false; + } + + template + data_type& Hash::ItemAtIndex(const HashIndex &index) + { + Node *node = nodeList[index.primaryIndex]; + RakAssert(node); + unsigned int i; + for (i=0; i < index.secondaryIndex; i++) + { + node=node->next; + RakAssert(node); + } + return node->data; + } + + template + key_type Hash::KeyAtIndex(const HashIndex &index) + { + Node *node = nodeList[index.primaryIndex]; + RakAssert(node); + unsigned int i; + for (i=0; i < index.secondaryIndex; i++) + { + node=node->next; + RakAssert(node); + } + return node->string; + } + + template + void Hash::Clear(const char *file, unsigned int line) + { + if (nodeList) + { + unsigned int i; + for (i=0; i < HASH_SIZE; i++) + ClearIndex(i,file,line); + RakNet::OP_DELETE_ARRAY(nodeList,file,line); + nodeList=0; + size=0; + } + } + + template + void Hash::ClearIndex(unsigned int index,const char *file, unsigned int line) + { + Node *node = nodeList[index]; + Node *next; + while (node) + { + next=node->next; + RakNet::OP_DELETE(node,file,line); + node=next; + size--; + } + nodeList[index]=0; + } + + template + void Hash::GetAsList(DataStructures::List &itemList,DataStructures::List &keyList,const char *file, unsigned int line) const + { + if (nodeList==0) + return; + itemList.Clear(false,_FILE_AND_LINE_); + keyList.Clear(false,_FILE_AND_LINE_); + + Node *node; + unsigned int i; + for (i=0; i < HASH_SIZE; i++) + { + if (nodeList[i]) + { + node=nodeList[i]; + while (node) + { + itemList.Push(node->data,file,line); + keyList.Push(node->string,file,line); + node=node->next; + } + } + } + } + template + unsigned int Hash::Size(void) const + { + return size; + } +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Heap.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Heap.h new file mode 100755 index 0000000..92bca66 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Heap.h @@ -0,0 +1,297 @@ +/// \file DS_Heap.h +/// \internal +/// \brief Heap (Also serves as a priority queue) +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAKNET_HEAP_H +#define __RAKNET_HEAP_H + +#include "RakMemoryOverride.h" +#include "DS_List.h" +#include "Export.h" +#include "RakAssert.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + class RAK_DLL_EXPORT Heap + { + public: + struct HeapNode + { + HeapNode() {} + HeapNode(const weight_type &w, const data_type &d) : weight(w), data(d) {} + weight_type weight; // I'm assuming key is a native numerical type - float or int + data_type data; + }; + + Heap(); + ~Heap(); + void Push(const weight_type &weight, const data_type &data, const char *file, unsigned int line); + /// Call before calling PushSeries, for a new series of items + void StartSeries(void) {optimizeNextSeriesPush=false;} + /// If you are going to push a list of items, where the weights of the items on the list are in order and follow the heap order, PushSeries is faster than Push() + void PushSeries(const weight_type &weight, const data_type &data, const char *file, unsigned int line); + data_type Pop(const unsigned startingIndex); + data_type Peek(const unsigned startingIndex=0) const; + weight_type PeekWeight(const unsigned startingIndex=0) const; + void Clear(bool doNotDeallocateSmallBlocks, const char *file, unsigned int line); + data_type& operator[] ( const unsigned int position ) const; + unsigned Size(void) const; + + protected: + unsigned LeftChild(const unsigned i) const; + unsigned RightChild(const unsigned i) const; + unsigned Parent(const unsigned i) const; + void Swap(const unsigned i, const unsigned j); + DataStructures::List heap; + bool optimizeNextSeriesPush; + }; + + template + Heap::Heap() + { + optimizeNextSeriesPush=false; + } + + template + Heap::~Heap() + { + //Clear(true, _FILE_AND_LINE_); + } + + template + void Heap::PushSeries(const weight_type &weight, const data_type &data, const char *file, unsigned int line) + { + if (optimizeNextSeriesPush==false) + { + // If the weight of what we are inserting is greater than / less than in order of the heap of every sibling and sibling of parent, then can optimize next push + unsigned currentIndex = heap.Size(); + unsigned parentIndex; + if (currentIndex>0) + { + for (parentIndex = Parent(currentIndex); parentIndex < currentIndex; parentIndex++) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (isMaxHeap) + { + // Every child is less than its parent + if (weight>heap[parentIndex].weight) + { + // Can't optimize + Push(weight,data,file,line); + return; + } + } + else + { + // Every child is greater than than its parent + if (weight + void Heap::Push(const weight_type &weight, const data_type &data, const char *file, unsigned int line) + { + unsigned currentIndex = heap.Size(); + unsigned parentIndex; + heap.Insert(HeapNode(weight, data), file, line); + while (currentIndex!=0) + { + parentIndex = Parent(currentIndex); +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (isMaxHeap) + { + if (heap[parentIndex].weight < weight) + { + Swap(currentIndex, parentIndex); + currentIndex=parentIndex; + } + else + break; + } + else + { + if (heap[parentIndex].weight > weight) + { + Swap(currentIndex, parentIndex); + currentIndex=parentIndex; + } + else + break; + } + } + } + + template + data_type Heap::Pop(const unsigned startingIndex) + { + // While we have children, swap out with the larger of the two children. + + // This line will assert on an empty heap + data_type returnValue=heap[startingIndex].data; + + // Move the last element to the head, and re-heapify + heap[startingIndex]=heap[heap.Size()-1]; + + unsigned currentIndex,leftChild,rightChild; + weight_type currentWeight; + currentIndex=startingIndex; + currentWeight=heap[startingIndex].weight; + heap.RemoveFromEnd(); + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + leftChild=LeftChild(currentIndex); + rightChild=RightChild(currentIndex); + if (leftChild >= heap.Size()) + { + // Done + return returnValue; + } + if (rightChild >= heap.Size()) + { + // Only left node. + if ((isMaxHeap==true && currentWeight < heap[leftChild].weight) || + (isMaxHeap==false && currentWeight > heap[leftChild].weight)) + Swap(leftChild, currentIndex); + + return returnValue; + } + else + { + // Swap with the bigger/smaller of the two children and continue + if (isMaxHeap) + { + if (heap[leftChild].weight <= currentWeight && heap[rightChild].weight <= currentWeight) + return returnValue; + + if (heap[leftChild].weight > heap[rightChild].weight) + { + Swap(leftChild, currentIndex); + currentIndex=leftChild; + } + else + { + Swap(rightChild, currentIndex); + currentIndex=rightChild; + } + } + else + { + if (heap[leftChild].weight >= currentWeight && heap[rightChild].weight >= currentWeight) + return returnValue; + + if (heap[leftChild].weight < heap[rightChild].weight) + { + Swap(leftChild, currentIndex); + currentIndex=leftChild; + } + else + { + Swap(rightChild, currentIndex); + currentIndex=rightChild; + } + } + } + } + } + + template + inline data_type Heap::Peek(const unsigned startingIndex) const + { + return heap[startingIndex].data; + } + + template + inline weight_type Heap::PeekWeight(const unsigned startingIndex) const + { + return heap[startingIndex].weight; + } + + template + void Heap::Clear(bool doNotDeallocateSmallBlocks, const char *file, unsigned int line) + { + heap.Clear(doNotDeallocateSmallBlocks, file, line); + } + + template + inline data_type& Heap::operator[] ( const unsigned int position ) const + { + return heap[position].data; + } + template + unsigned Heap::Size(void) const + { + return heap.Size(); + } + + template + inline unsigned Heap::LeftChild(const unsigned i) const + { + return i*2+1; + } + + template + inline unsigned Heap::RightChild(const unsigned i) const + { + return i*2+2; + } + + template + inline unsigned Heap::Parent(const unsigned i) const + { +#ifdef _DEBUG + RakAssert(i!=0); +#endif + return (i-1)/2; + } + + template + void Heap::Swap(const unsigned i, const unsigned j) + { + HeapNode temp; + temp=heap[i]; + heap[i]=heap[j]; + heap[j]=temp; + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTree.cpp b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTree.cpp new file mode 100755 index 0000000..3b03f40 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTree.cpp @@ -0,0 +1,299 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "DS_HuffmanEncodingTree.h" +#include "DS_Queue.h" +#include "BitStream.h" +#include "RakAssert.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +HuffmanEncodingTree::HuffmanEncodingTree() +{ + root = 0; +} + +HuffmanEncodingTree::~HuffmanEncodingTree() +{ + FreeMemory(); +} + +void HuffmanEncodingTree::FreeMemory( void ) +{ + if ( root == 0 ) + return ; + + // Use an in-order traversal to delete the tree + DataStructures::Queue nodeQueue; + + HuffmanEncodingTreeNode *node; + + nodeQueue.Push( root, _FILE_AND_LINE_ ); + + while ( nodeQueue.Size() > 0 ) + { + node = nodeQueue.Pop(); + + if ( node->left ) + nodeQueue.Push( node->left, _FILE_AND_LINE_ ); + + if ( node->right ) + nodeQueue.Push( node->right, _FILE_AND_LINE_ ); + + RakNet::OP_DELETE(node, _FILE_AND_LINE_); + } + + // Delete the encoding table + for ( int i = 0; i < 256; i++ ) + rakFree_Ex(encodingTable[ i ].encoding, _FILE_AND_LINE_ ); + + root = 0; +} + + +////#include + +// Given a frequency table of 256 elements, all with a frequency of 1 or more, generate the tree +void HuffmanEncodingTree::GenerateFromFrequencyTable( unsigned int frequencyTable[ 256 ] ) +{ + int counter; + HuffmanEncodingTreeNode * node; + HuffmanEncodingTreeNode *leafList[ 256 ]; // Keep a copy of the pointers to all the leaves so we can generate the encryption table bottom-up, which is easier + // 1. Make 256 trees each with a weight equal to the frequency of the corresponding character + DataStructures::LinkedList huffmanEncodingTreeNodeList; + + FreeMemory(); + + for ( counter = 0; counter < 256; counter++ ) + { + node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + node->left = 0; + node->right = 0; + node->value = (unsigned char) counter; + node->weight = frequencyTable[ counter ]; + + if ( node->weight == 0 ) + node->weight = 1; // 0 weights are illegal + + leafList[ counter ] = node; // Used later to generate the encryption table + + InsertNodeIntoSortedList( node, &huffmanEncodingTreeNodeList ); // Insert and maintain sort order. + } + + + // 2. While there is more than one tree, take the two smallest trees and merge them so that the two trees are the left and right + // children of a new node, where the new node has the weight the sum of the weight of the left and right child nodes. +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( 1 ) + { + huffmanEncodingTreeNodeList.Beginning(); + HuffmanEncodingTreeNode *lesser, *greater; + lesser = huffmanEncodingTreeNodeList.Pop(); + greater = huffmanEncodingTreeNodeList.Pop(); + node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + node->left = lesser; + node->right = greater; + node->weight = lesser->weight + greater->weight; + lesser->parent = node; // This is done to make generating the encryption table easier + greater->parent = node; // This is done to make generating the encryption table easier + + if ( huffmanEncodingTreeNodeList.Size() == 0 ) + { + // 3. Assign the one remaining node in the list to the root node. + root = node; + root->parent = 0; + break; + } + + // Put the new node back into the list at the correct spot to maintain the sort. Linear search time + InsertNodeIntoSortedList( node, &huffmanEncodingTreeNodeList ); + } + + bool tempPath[ 256 ]; // Maximum path length is 256 + unsigned short tempPathLength; + HuffmanEncodingTreeNode *currentNode; + RakNet::BitStream bitStream; + + // Generate the encryption table. From before, we have an array of pointers to all the leaves which contain pointers to their parents. + // This can be done more efficiently but this isn't bad and it's way easier to program and debug + + for ( counter = 0; counter < 256; counter++ ) + { + // Already done at the end of the loop and before it! + tempPathLength = 0; + + // Set the current node at the leaf + currentNode = leafList[ counter ]; + + do + { + if ( currentNode->parent->left == currentNode ) // We're storing the paths in reverse order.since we are going from the leaf to the root + tempPath[ tempPathLength++ ] = false; + else + tempPath[ tempPathLength++ ] = true; + + currentNode = currentNode->parent; + } + + while ( currentNode != root ); + + // Write to the bitstream in the reverse order that we stored the path, which gives us the correct order from the root to the leaf + while ( tempPathLength-- > 0 ) + { + if ( tempPath[ tempPathLength ] ) // Write 1's and 0's because writing a bool will write the BitStream TYPE_CHECKING validation bits if that is defined along with the actual data bit, which is not what we want + bitStream.Write1(); + else + bitStream.Write0(); + } + + // Read data from the bitstream, which is written to the encoding table in bits and bitlength. Note this function allocates the encodingTable[counter].encoding pointer + encodingTable[ counter ].bitLength = ( unsigned char ) bitStream.CopyData( &encodingTable[ counter ].encoding ); + + // Reset the bitstream for the next iteration + bitStream.Reset(); + } +} + +// Pass an array of bytes to array and a preallocated BitStream to receive the output +void HuffmanEncodingTree::EncodeArray( unsigned char *input, size_t sizeInBytes, RakNet::BitStream * output ) +{ + unsigned counter; + + // For each input byte, Write out the corresponding series of 1's and 0's that give the encoded representation + for ( counter = 0; counter < sizeInBytes; counter++ ) + { + output->WriteBits( encodingTable[ input[ counter ] ].encoding, encodingTable[ input[ counter ] ].bitLength, false ); // Data is left aligned + } + + // Byte align the output so the unassigned remaining bits don't equate to some actual value + if ( output->GetNumberOfBitsUsed() % 8 != 0 ) + { + // Find an input that is longer than the remaining bits. Write out part of it to pad the output to be byte aligned. + unsigned char remainingBits = (unsigned char) ( 8 - ( output->GetNumberOfBitsUsed() % 8 ) ); + + for ( counter = 0; counter < 256; counter++ ) + if ( encodingTable[ counter ].bitLength > remainingBits ) + { + output->WriteBits( encodingTable[ counter ].encoding, remainingBits, false ); // Data is left aligned + break; + } + +#ifdef _DEBUG + RakAssert( counter != 256 ); // Given 256 elements, we should always be able to find an input that would be >= 7 bits + +#endif + + } +} + +unsigned HuffmanEncodingTree::DecodeArray( RakNet::BitStream * input, BitSize_t sizeInBits, size_t maxCharsToWrite, unsigned char *output ) +{ + HuffmanEncodingTreeNode * currentNode; + + unsigned outputWriteIndex; + outputWriteIndex = 0; + currentNode = root; + + // For each bit, go left if it is a 0 and right if it is a 1. When we reach a leaf, that gives us the desired value and we restart from the root + + for ( unsigned counter = 0; counter < sizeInBits; counter++ ) + { + if ( input->ReadBit() == false ) // left! + currentNode = currentNode->left; + else + currentNode = currentNode->right; + + if ( currentNode->left == 0 && currentNode->right == 0 ) // Leaf + { + + if ( outputWriteIndex < maxCharsToWrite ) + output[ outputWriteIndex ] = currentNode->value; + + outputWriteIndex++; + + currentNode = root; + } + } + + return outputWriteIndex; +} + +// Pass an array of encoded bytes to array and a preallocated BitStream to receive the output +void HuffmanEncodingTree::DecodeArray( unsigned char *input, BitSize_t sizeInBits, RakNet::BitStream * output ) +{ + HuffmanEncodingTreeNode * currentNode; + + if ( sizeInBits <= 0 ) + return ; + + RakNet::BitStream bitStream( input, BITS_TO_BYTES(sizeInBits), false ); + + currentNode = root; + + // For each bit, go left if it is a 0 and right if it is a 1. When we reach a leaf, that gives us the desired value and we restart from the root + for ( unsigned counter = 0; counter < sizeInBits; counter++ ) + { + if ( bitStream.ReadBit() == false ) // left! + currentNode = currentNode->left; + else + currentNode = currentNode->right; + + if ( currentNode->left == 0 && currentNode->right == 0 ) // Leaf + { + output->WriteBits( &( currentNode->value ), sizeof( char ) * 8, true ); // Use WriteBits instead of Write(char) because we want to avoid TYPE_CHECKING + currentNode = root; + } + } +} + +// Insertion sort. Slow but easy to write in this case +void HuffmanEncodingTree::InsertNodeIntoSortedList( HuffmanEncodingTreeNode * node, DataStructures::LinkedList *huffmanEncodingTreeNodeList ) const +{ + if ( huffmanEncodingTreeNodeList->Size() == 0 ) + { + huffmanEncodingTreeNodeList->Insert( node ); + return ; + } + + huffmanEncodingTreeNodeList->Beginning(); + + unsigned counter = 0; +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( 1 ) + { + if ( huffmanEncodingTreeNodeList->Peek()->weight < node->weight ) + ++( *huffmanEncodingTreeNodeList ); + else + { + huffmanEncodingTreeNodeList->Insert( node ); + break; + } + + // Didn't find a spot in the middle - add to the end + if ( ++counter == huffmanEncodingTreeNodeList->Size() ) + { + huffmanEncodingTreeNodeList->End(); + + huffmanEncodingTreeNodeList->Add( node ) + + ; // Add to the end + break; + } + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTree.h b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTree.h new file mode 100755 index 0000000..41cae1f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTree.h @@ -0,0 +1,67 @@ +/// \file DS_HuffmanEncodingTree.h +/// \brief \b [Internal] Generates a huffman encoding tree, used for string and global compression. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HUFFMAN_ENCODING_TREE +#define __HUFFMAN_ENCODING_TREE + +#include "RakMemoryOverride.h" +#include "DS_HuffmanEncodingTreeNode.h" +#include "BitStream.h" +#include "Export.h" +#include "DS_LinkedList.h" + +namespace RakNet +{ + +/// This generates special cases of the huffman encoding tree using 8 bit keys with the additional condition that unused combinations of 8 bits are treated as a frequency of 1 +class RAK_DLL_EXPORT HuffmanEncodingTree +{ + +public: + HuffmanEncodingTree(); + ~HuffmanEncodingTree(); + + /// \brief Pass an array of bytes to array and a preallocated BitStream to receive the output. + /// \param [in] input Array of bytes to encode + /// \param [in] sizeInBytes size of \a input + /// \param [out] output The bitstream to write to + void EncodeArray( unsigned char *input, size_t sizeInBytes, RakNet::BitStream * output ); + + // \brief Decodes an array encoded by EncodeArray(). + unsigned DecodeArray( RakNet::BitStream * input, BitSize_t sizeInBits, size_t maxCharsToWrite, unsigned char *output ); + void DecodeArray( unsigned char *input, BitSize_t sizeInBits, RakNet::BitStream * output ); + + /// \brief Given a frequency table of 256 elements, all with a frequency of 1 or more, generate the tree. + void GenerateFromFrequencyTable( unsigned int frequencyTable[ 256 ] ); + + /// \brief Free the memory used by the tree. + void FreeMemory( void ); + +private: + + /// The root node of the tree + + HuffmanEncodingTreeNode *root; + + /// Used to hold bit encoding for one character + + + struct CharacterEncoding + { + unsigned char* encoding; + unsigned short bitLength; + }; + + CharacterEncoding encodingTable[ 256 ]; + + void InsertNodeIntoSortedList( HuffmanEncodingTreeNode * node, DataStructures::LinkedList *huffmanEncodingTreeNodeList ) const; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTreeFactory.h b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTreeFactory.h new file mode 100755 index 0000000..c6a6acc --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTreeFactory.h @@ -0,0 +1,57 @@ +/// \file DS_HuffmanEncodingTreeFactory.h +/// \internal +/// \brief Creates instances of the class HuffmanEncodingTree +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HUFFMAN_ENCODING_TREE_FACTORY +#define __HUFFMAN_ENCODING_TREE_FACTORY + +#include "RakMemoryOverride.h" + +namespace RakNet { +/// Forward declarations +class HuffmanEncodingTree; + +/// \brief Creates instances of the class HuffmanEncodingTree +/// \details This class takes a frequency table and given that frequence table, will generate an instance of HuffmanEncodingTree +class HuffmanEncodingTreeFactory +{ +public: + /// Default constructor + HuffmanEncodingTreeFactory(); + + /// \brief Reset the frequency table. + /// \details You don't need to call this unless you want to reuse the class for a new tree + void Reset( void ); + + /// \brief Pass an array of bytes to this to add those elements to the frequency table. + /// \param[in] array the data to insert into the frequency table + /// \param[in] size the size of the data to insert + void AddToFrequencyTable( unsigned char *array, int size ); + + /// \brief Copies the frequency table to the array passed. Retrieve the frequency table. + /// \param[in] _frequency The frequency table used currently + void GetFrequencyTable( unsigned int _frequency[ 256 ] ); + + /// \brief Returns the frequency table as a pointer. + /// \return the address of the frenquency table + unsigned int * GetFrequencyTable( void ); + + /// \brief Generate a HuffmanEncodingTree. + /// \details You can also use GetFrequencyTable and GenerateFromFrequencyTable in the tree itself + /// \return The generated instance of HuffmanEncodingTree + HuffmanEncodingTree * GenerateTree( void ); + +private: + + /// Frequency table + unsigned int frequency[ 256 ]; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTreeNode.h b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTreeNode.h new file mode 100755 index 0000000..40523e1 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_HuffmanEncodingTreeNode.h @@ -0,0 +1,21 @@ +/// \file +/// \brief \b [Internal] A single node in the Huffman Encoding Tree. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HUFFMAN_ENCODING_TREE_NODE +#define __HUFFMAN_ENCODING_TREE_NODE + +struct HuffmanEncodingTreeNode +{ + unsigned char value; + unsigned weight; + HuffmanEncodingTreeNode *left; + HuffmanEncodingTreeNode *right; + HuffmanEncodingTreeNode *parent; +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_LinkedList.h b/project/lib_projects/raknet/jni/RaknetSources/DS_LinkedList.h new file mode 100755 index 0000000..4002855 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_LinkedList.h @@ -0,0 +1,1252 @@ +/// \file DS_LinkedList.h +/// \internal +/// \brief Straightforward linked list data structure. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __LINKED_LIST_H +#define __LINKED_LIST_H + +#include "Export.h" +#include "RakMemoryOverride.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + // Prototype to prevent error in CircularLinkedList class when a reference is made to a LinkedList class + template + class RAK_DLL_EXPORT LinkedList; + + /** + * \brief (Circular) Linked List ADT (Doubly Linked Pointer to Node Style) - + * + * \details + * By Kevin Jenkins (http://www.rakkar.org) + * Initilize with the following command + * LinkedList + * OR + * CircularLinkedList + * + * Has the following member functions + * - size: returns number of elements in the linked list + * - insert(item): inserts @em item at the current position in + * the LinkedList. + * - add(item): inserts @em item after the current position in + * the LinkedList. Does not increment the position + * - replace(item): replaces the element at the current position @em item. + * - peek: returns the element at the current position + * - pop: returns the element at the current position and deletes it + * - del: deletes the current element. Does nothing for an empty list. + * - clear: empties the LinkedList and returns storage + * - bool IsInitem): Does a linear search for @em item. Does not set + * the position to it, only returns true on item found, false otherwise + * - bool find(item): Does a linear search for @em item and sets the current + * position to point to it if and only if the item is found. Returns true + * on item found, false otherwise + * - sort: Sorts the elements of the list with a mergesort and sets the + * current pointer to the first element + * - concatenate(list L): This appends L to the current list + * - ++(prefix): moves the pointer one element up in the list and returns the + * appropriate copy of the element in the list + * - --(prefix): moves the pointer one element back in the list and returns + * the appropriate copy of the element in the list + * - beginning - moves the pointer to the start of the list. For circular + * linked lists this is first 'position' created. You should call this + * after the sort function to read the first value. + * - end - moves the pointer to the end of the list. For circular linked + * lists this is one less than the first 'position' created + * The assignment and copy constructor operators are defined + * + * \note + * 1. LinkedList and CircularLinkedList are exactly the same except LinkedList + * won't let you wrap around the root and lets you jump to two positions + * relative to the root/ + * 2. Postfix ++ and -- can be used but simply call the prefix versions. + * + * + * EXAMPLE: + * @code + * LinkedList A; // Creates a Linked List of integers called A + * CircularLinkedList B; // Creates a Circular Linked List of + * // integers called B + * + * A.Insert(20); // Adds 20 to A. A: 20 - current is 20 + * A.Insert(5); // Adds 5 to A. A: 5 20 - current is 5 + * A.Insert(1); // Adds 1 to A. A: 1 5 20 - current is 1 + * + * A.IsIn1); // returns true + * A.IsIn200); // returns false + * A.Find(5); // returns true and sets current to 5 + * A.Peek(); // returns 5 + * A.Find(1); // returns true and sets current to 1 + * + * (++A).Peek(); // Returns 5 + * A.Peek(); // Returns 5 + * + * A.Replace(10); // Replaces 5 with 10. + * A.Peek(); // Returns 10 + * + * A.Beginning(); // Current points to the beginning of the list at 1 + * + * (++A).Peek(); // Returns 5 + * A.Peek(); // Returns 10 + * + * A.Del(); // Deletes 10. Current points to the next element, which is 20 + * A.Peek(); // Returns 20 + * + * A.Beginning(); // Current points to the beginning of the list at 1 + * + * (++A).Peek(); // Returns 5 + * A.Peek(); // Returns 20 + * + * A.Clear(_FILE_AND_LINE_); // Deletes all nodes in A + * + * A.Insert(5); // A: 5 - current is 5 + * A.Insert(6); // A: 6 5 - current is 6 + * A.Insert(7); // A: 7 6 5 - current is 7 + * + * A.Clear(_FILE_AND_LINE_); + * B.Clear(_FILE_AND_LINE_); + * + * B.Add(10); + * B.Add(20); + * B.Add(30); + * B.Add(5); + * B.Add(2); + * B.Add(25); + * // Sorts the numbers in the list and sets the current pointer to the + * // first element + * B.sort(); + * + * // Postfix ++ just calls the prefix version and has no functional + * // difference. + * B.Peek(); // Returns 2 + * B++; + * B.Peek(); // Returns 5 + * B++; + * B.Peek(); // Returns 10 + * B++; + * B.Peek(); // Returns 20 + * B++; + * B.Peek(); // Returns 25 + * B++; + * B.Peek(); // Returns 30 + * @endcode + */ + template + + class CircularLinkedList + { + + public: + + struct node + { + CircularLinkedListType item; + + node* previous; + node* next; + }; + + CircularLinkedList(); + ~CircularLinkedList(); + CircularLinkedList( const CircularLinkedList& original_copy ); + // CircularLinkedList(LinkedList original_copy) {CircularLinkedList(original_copy);} // Converts linked list to circular type + bool operator= ( const CircularLinkedList& original_copy ); + CircularLinkedList& operator++(); // CircularLinkedList A; ++A; + CircularLinkedList& operator++( int ); // Circular_Linked List A; A++; + CircularLinkedList& operator--(); // CircularLinkedList A; --A; + CircularLinkedList& operator--( int ); // Circular_Linked List A; A--; + bool IsIn( const CircularLinkedListType& input ); + bool Find( const CircularLinkedListType& input ); + void Insert( const CircularLinkedListType& input ); + + CircularLinkedListType& Add ( const CircularLinkedListType& input ) + + ; // Adds after the current position + void Replace( const CircularLinkedListType& input ); + + void Del( void ); + + unsigned int Size( void ); + + CircularLinkedListType& Peek( void ); + + CircularLinkedListType Pop( void ); + + void Clear( void ); + + void Sort( void ); + + void Beginning( void ); + + void End( void ); + + void Concatenate( const CircularLinkedList& L ); + + protected: + unsigned int list_size; + + node *root; + + node *position; + + node* FindPointer( const CircularLinkedListType& input ); + + private: + CircularLinkedList Merge( CircularLinkedList L1, CircularLinkedList L2 ); + + CircularLinkedList Mergesort( const CircularLinkedList& L ); + }; + + template + + class LinkedList : public CircularLinkedList + { + + public: + LinkedList() + {} + + LinkedList( const LinkedList& original_copy ); + ~LinkedList(); + bool operator= ( const LinkedList& original_copy ); + LinkedList& operator++(); // LinkedList A; ++A; + LinkedList& operator++( int ); // Linked List A; A++; + LinkedList& operator--(); // LinkedList A; --A; + LinkedList& operator--( int ); // Linked List A; A--; + + private: + LinkedList Merge( LinkedList L1, LinkedList L2 ); + LinkedList Mergesort( const LinkedList& L ); + + }; + + + template + inline void CircularLinkedList::Beginning( void ) + { + if ( this->root ) + this->position = this->root; + } + + template + inline void CircularLinkedList::End( void ) + { + if ( this->root ) + this->position = this->root->previous; + } + + template + bool LinkedList::operator= ( const LinkedList& original_copy ) + { + typename LinkedList::node * original_copy_pointer, *last, *save_position; + + if ( ( &original_copy ) != this ) + { + + this->Clear(); + + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + + + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = this->position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + + return true; + } + + + template + CircularLinkedList::CircularLinkedList() + { + this->root = 0; + this->position = 0; + this->list_size = 0; + } + + template + CircularLinkedList::~CircularLinkedList() + { + this->Clear(); + } + + template + LinkedList::~LinkedList() + { + this->Clear(); + } + + template + LinkedList::LinkedList( const LinkedList& original_copy ) + { + typename LinkedList::node * original_copy_pointer, *last, *save_position; + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + return ; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item) = *((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = this->position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + +#ifdef _MSC_VER +#pragma warning( disable : 4701 ) // warning C4701: local variable may be used without having been initialized +#endif + template + CircularLinkedList::CircularLinkedList( const CircularLinkedList& original_copy ) + { + node * original_copy_pointer; + node *last; + node *save_position; + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + return ; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item) = *((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + + + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = position; + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + +#ifdef _MSC_VER +#pragma warning( disable : 4701 ) // warning C4701: local variable may be used without having been initialized +#endif + template + bool CircularLinkedList::operator= ( const CircularLinkedList& original_copy ) + { + node * original_copy_pointer; + node *last; + node *save_position; + + if ( ( &original_copy ) != this ) + { + + this->Clear(); + + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = this->position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + + return true; + } + + template + void CircularLinkedList::Insert( const CircularLinkedListType& input ) + { + node * new_node; + + if ( list_size == 0 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + //*(root->item)=input; + this->root->item = input; + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + } + + else + if ( list_size == 1 ) + { + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->position; + this->root->previous = this->position; + this->position->previous = this->root; + this->position->next = this->root; + // *(position->item)=input; + this->position->item = input; + this->root = this->position; // Since we're inserting into a 1 element list the old root is now the second item + this->list_size = 2; + } + + else + { + /* + + B + | + A --- C + + position->previous=A + new_node=B + position=C + + Note that the order of the following statements is important */ + + new_node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // new_node->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // *(new_node->item)=input; + new_node->item = input; + + // Point next of A to B + ( this->position->previous ) ->next = new_node; + + // Point last of B to A + new_node->previous = this->position->previous; + + // Point last of C to B + this->position->previous = new_node; + + // Point next of B to C + new_node->next = this->position; + + // Since the root pointer is bound to a node rather than an index this moves it back if you insert an element at the root + + if ( this->position == this->root ) + { + this->root = new_node; + this->position = this->root; + } + + // Increase the recorded size of the list by one + this->list_size++; + } + } + + template + CircularLinkedListType& CircularLinkedList::Add ( const CircularLinkedListType& input ) + { + node * new_node; + + if ( this->list_size == 0 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // *(root->item)=input; + this->root->item = input; + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // return *(position->item); + return this->position->item; + } + + else + if ( list_size == 1 ) + { + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->position; + this->root->previous = this->position; + this->position->previous = this->root; + this->position->next = this->root; + // *(position->item)=input; + this->position->item = input; + this->list_size = 2; + this->position = this->root; // Don't move the position from the root + // return *(position->item); + return this->position->item; + } + + else + { + /* + + B + | + A --- C + + new_node=B + position=A + position->next=C + + Note that the order of the following statements is important */ + + new_node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // new_node->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // *(new_node->item)=input; + new_node->item = input; + + // Point last of B to A + new_node->previous = this->position; + + // Point next of B to C + new_node->next = ( this->position->next ); + + // Point last of C to B + ( this->position->next ) ->previous = new_node; + + // Point next of A to B + ( this->position->next ) = new_node; + + // Increase the recorded size of the list by one + this->list_size++; + + // return *(new_node->item); + return new_node->item; + } + } + + template + inline void CircularLinkedList::Replace( const CircularLinkedListType& input ) + { + if ( this->list_size > 0 ) + // *(position->item)=input; + this->position->item = input; + } + + template + void CircularLinkedList::Del() + { + node * new_position; + + if ( this->list_size == 0 ) + return ; + + else + if ( this->list_size == 1 ) + { + // RakNet::OP_DELETE(root->item, _FILE_AND_LINE_); + RakNet::OP_DELETE(this->root, _FILE_AND_LINE_); + this->root = this->position = 0; + this->list_size = 0; + } + + else + { + ( this->position->previous ) ->next = this->position->next; + ( this->position->next ) ->previous = this->position->previous; + new_position = this->position->next; + + if ( this->position == this->root ) + this->root = new_position; + + // RakNet::OP_DELETE(position->item, _FILE_AND_LINE_); + RakNet::OP_DELETE(this->position, _FILE_AND_LINE_); + + this->position = new_position; + + this->list_size--; + } + } + + template + bool CircularLinkedList::IsIn(const CircularLinkedListType& input ) + { + node * return_value, *old_position; + + old_position = this->position; + + return_value = FindPointer( input ); + this->position = old_position; + + if ( return_value != 0 ) + return true; + else + return false; // Can't find the item don't do anything + } + + template + bool CircularLinkedList::Find( const CircularLinkedListType& input ) + { + node * return_value; + + return_value = FindPointer( input ); + + if ( return_value != 0 ) + { + this->position = return_value; + return true; + } + + else + return false; // Can't find the item don't do anything + } + + template + typename CircularLinkedList::node* CircularLinkedList::FindPointer( const CircularLinkedListType& input ) + { + node * current; + + if ( this->list_size == 0 ) + return 0; + + current = this->root; + + // Search for the item starting from the root node and incrementing the pointer after every check + // If you wind up pointing at the root again you looped around the list so didn't find the item, in which case return 0 + do + { + // if (*(current->item) == input) return current; + + if ( current->item == input ) + return current; + + current = current->next; + } + + while ( current != this->root ); + + return 0; + + } + + template + inline unsigned int CircularLinkedList::Size( void ) + { + return this->list_size; + } + + template + inline CircularLinkedListType& CircularLinkedList::Peek( void ) + { + // return *(position->item); + return this->position->item; + } + + template + CircularLinkedListType CircularLinkedList::Pop( void ) + { + CircularLinkedListType element; + element = Peek(); + Del(); + return CircularLinkedListType( element ); // return temporary + } + + // Prefix + template + CircularLinkedList& CircularLinkedList::operator++() + { + if ( this->list_size != 0 ) + position = position->next; + + return *this; + } + + /* + // Postfix + template + CircularLinkedList& CircularLinkedList::operator++(int) + { + CircularLinkedList before; + before=*this; + operator++(); + return before; + } + */ + + template + CircularLinkedList& CircularLinkedList::operator++( int ) + { + return this->operator++(); + } + + // Prefix + template + CircularLinkedList& CircularLinkedList::operator--() + { + if ( this->list_size != 0 ) + this->position = this->position->previous; + + return *this; + } + + /* + // Postfix + template + CircularLinkedList& CircularLinkedList::operator--(int) + { + CircularLinkedList before; + before=*this; + operator--(); + return before; + } + */ + + template + CircularLinkedList& CircularLinkedList::operator--( int ) + { + return this->operator--(); + } + + template + void CircularLinkedList::Clear( void ) + { + if ( this->list_size == 0 ) + return ; + else + if ( this->list_size == 1 ) // {RakNet::OP_DELETE(root->item); RakNet::OP_DELETE(root, _FILE_AND_LINE_);} + { + RakNet::OP_DELETE(this->root, _FILE_AND_LINE_); + } + + else + { + node* current; + node* temp; + + current = this->root; + + do + { + temp = current; + current = current->next; + // RakNet::OP_DELETE(temp->item, _FILE_AND_LINE_); + RakNet::OP_DELETE(temp, _FILE_AND_LINE_); + } + + while ( current != this->root ); + } + + this->list_size = 0; + this->root = 0; + this->position = 0; + } + + template + inline void CircularLinkedList::Concatenate( const CircularLinkedList& L ) + { + unsigned int counter; + node* ptr; + + if ( L.list_size == 0 ) + return ; + + if ( this->list_size == 0 ) + * this = L; + + ptr = L.root; + + this->position = this->root->previous; + + // Cycle through each element in L and add it to the current list + for ( counter = 0; counter < L.list_size; counter++ ) + { + // Add item after the current item pointed to + // add(*(ptr->item)); + + Add ( ptr->item ); + + // Update pointers. Moving ptr keeps the current pointer at the end of the list since the add function does not move the pointer + ptr = ptr->next; + + this->position = this->position->next; + } + } + + template + inline void CircularLinkedList::Sort( void ) + { + if ( this->list_size <= 1 ) + return ; + + // Call equal operator to assign result of mergesort to current object + *this = Mergesort( *this ); + + this->position = this->root; + } + + template + CircularLinkedList CircularLinkedList::Mergesort( const CircularLinkedList& L ) + { + unsigned int counter; + node* location; + CircularLinkedList L1; + CircularLinkedList L2; + + location = L.root; + + // Split the list into two equal size sublists, L1 and L2 + + for ( counter = 0; counter < L.list_size / 2; counter++ ) + { + // L1.add (*(location->item)); + L1.Add ( location->item ); + location = location->next; + } + + for ( ;counter < L.list_size; counter++ ) + { + // L2.Add(*(location->item)); + L2.Add ( location->item ); + location = location->next; + } + + // Recursively sort the sublists + if ( L1.list_size > 1 ) + L1 = Mergesort( L1 ); + + if ( L2.list_size > 1 ) + L2 = Mergesort( L2 ); + + // Merge the two sublists + return Merge( L1, L2 ); + } + + template + CircularLinkedList CircularLinkedList::Merge( CircularLinkedList L1, CircularLinkedList L2 ) + { + CircularLinkedList X; + CircularLinkedListType element; + L1.position = L1.root; + L2.position = L2.root; + + // While neither list is empty + + while ( ( L1.list_size != 0 ) && ( L2.list_size != 0 ) ) + { + // Compare the first items of L1 and L2 + // Remove the smaller of the two items from the list + + if ( ( ( L1.root ) ->item ) < ( ( L2.root ) ->item ) ) + // if ((*((L1.root)->item)) < (*((L2.root)->item))) + { + // element = *((L1.root)->item); + element = ( L1.root ) ->item; + L1.Del(); + } + else + { + // element = *((L2.root)->item); + element = ( L2.root ) ->item; + L2.Del(); + } + + // Add this item to the end of X + X.Add( element ); + + X++; + } + + // Add the remaining list to X + if ( L1.list_size != 0 ) + X.Concatenate( L1 ); + else + X.Concatenate( L2 ); + + return X; + } + + template + LinkedList LinkedList::Mergesort( const LinkedList& L ) + { + unsigned int counter; + typename LinkedList::node* location; + LinkedList L1; + LinkedList L2; + + location = L.root; + + // Split the list into two equal size sublists, L1 and L2 + + for ( counter = 0; counter < L.LinkedList_size / 2; counter++ ) + { + // L1.add (*(location->item)); + L1.Add ( location->item ); + location = location->next; + } + + for ( ;counter < L.LinkedList_size; counter++ ) + { + // L2.Add(*(location->item)); + L2.Add ( location->item ); + location = location->next; + } + + // Recursively sort the sublists + if ( L1.list_size > 1 ) + L1 = Mergesort( L1 ); + + if ( L2.list_size > 1 ) + L2 = Mergesort( L2 ); + + // Merge the two sublists + return Merge( L1, L2 ); + } + + template + LinkedList LinkedList::Merge( LinkedList L1, LinkedList L2 ) + { + LinkedList X; + LinkedListType element; + L1.position = L1.root; + L2.position = L2.root; + + // While neither list is empty + + while ( ( L1.LinkedList_size != 0 ) && ( L2.LinkedList_size != 0 ) ) + { + // Compare the first items of L1 and L2 + // Remove the smaller of the two items from the list + + if ( ( ( L1.root ) ->item ) < ( ( L2.root ) ->item ) ) + // if ((*((L1.root)->item)) < (*((L2.root)->item))) + { + element = ( L1.root ) ->item; + // element = *((L1.root)->item); + L1.Del(); + } + else + { + element = ( L2.root ) ->item; + // element = *((L2.root)->item); + L2.Del(); + } + + // Add this item to the end of X + X.Add( element ); + } + + // Add the remaining list to X + if ( L1.LinkedList_size != 0 ) + X.concatenate( L1 ); + else + X.concatenate( L2 ); + + return X; + } + + + // Prefix + template + LinkedList& LinkedList::operator++() + { + if ( ( this->list_size != 0 ) && ( this->position->next != this->root ) ) + this->position = this->position->next; + + return *this; + } + + /* + // Postfix + template + LinkedList& LinkedList::operator++(int) + { + LinkedList before; + before=*this; + operator++(); + return before; + } + */ + // Postfix + template + LinkedList& LinkedList::operator++( int ) + { + return this->operator++(); + } + + // Prefix + template + LinkedList& LinkedList::operator--() + { + if ( ( this->list_size != 0 ) && ( this->position != this->root ) ) + this->position = this->position->previous; + + return *this; + } + + /* + // Postfix + template + LinkedList& LinkedList::operator--(int) + { + LinkedList before; + before=*this; + operator--(); + return before; + } + */ + + // Postfix + template + LinkedList& LinkedList::operator--( int ) + { + return this->operator--(); + } + +} // End namespace + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_List.h b/project/lib_projects/raknet/jni/RaknetSources/DS_List.h new file mode 100755 index 0000000..a360053 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_List.h @@ -0,0 +1,518 @@ +/// \file DS_List.h +/// \internal +/// \brief Array based list. +/// \details Usually the Queue class is used instead, since it has all the same functionality and is only worse at random access. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __LIST_H +#define __LIST_H + +#include "RakAssert.h" +#include // memmove +#include "Export.h" +#include "RakMemoryOverride.h" + +/// Maximum unsigned long +static const unsigned int MAX_UNSIGNED_LONG = 4294967295U; + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief Array based implementation of a list. + /// \note ONLY USE THIS FOR SHALLOW COPIES. I don't bother with operator= to improve performance. + template + class RAK_DLL_EXPORT List + { + public: + /// Default constructor + List(); + + // Destructor + ~List(); + + /// \brief Copy constructor. + /// \param[in] original_copy The list to duplicate + List( const List& original_copy ); + + /// \brief Assign one list to another. + List& operator= ( const List& original_copy ); + + /// \brief Access an element by its index in the array. + /// \param[in] position The index into the array. + /// \return The element at position \a position. + list_type& operator[] ( const unsigned int position ) const; + + /// \brief Access an element by its index in the array. + /// \param[in] position The index into the array. + /// \return The element at position \a position. + list_type& Get ( const unsigned int position ) const; + + /// \brief Push an element at the end of the stack. + /// \param[in] input The new element. + void Push(const list_type &input, const char *file, unsigned int line ); + + /// \brief Pop an element from the end of the stack. + /// \pre Size()>0 + /// \return The element at the end. + list_type& Pop(void); + + /// \brief Insert an element at position \a position in the list. + /// \param[in] input The new element. + /// \param[in] position The position of the new element. + void Insert( const list_type &input, const unsigned int position, const char *file, unsigned int line ); + + /// \brief Insert at the end of the list. + /// \param[in] input The new element. + void Insert( const list_type &input, const char *file, unsigned int line ); + + /// \brief Replace the value at \a position by \a input. + /// \details If the size of the list is less than @em position, it increase the capacity of + /// the list and fill slot with @em filler. + /// \param[in] input The element to replace at position @em position. + /// \param[in] filler The element use to fill new allocated capacity. + /// \param[in] position The position of input in the list. + void Replace( const list_type &input, const list_type filler, const unsigned int position, const char *file, unsigned int line ); + + /// \brief Replace the last element of the list by \a input. + /// \param[in] input The element used to replace the last element. + void Replace( const list_type &input ); + + /// \brief Delete the element at position \a position. + /// \param[in] position The index of the element to delete + void RemoveAtIndex( const unsigned int position ); + + /// \brief Delete the element at position \a position. + /// \note - swaps middle with end of list, only use if list order does not matter + /// \param[in] position The index of the element to delete + void RemoveAtIndexFast( const unsigned int position ); + + /// \brief Delete the element at the end of the list. + void RemoveFromEnd(const unsigned num=1); + + /// \brief Returns the index of the specified item or MAX_UNSIGNED_LONG if not found. + /// \param[in] input The element to check for + /// \return The index or position of @em input in the list. + /// \retval MAX_UNSIGNED_LONG The object is not in the list + /// \retval [Integer] The index of the element in the list + unsigned int GetIndexOf( const list_type &input ) const; + + /// \return The number of elements in the list + unsigned int Size( void ) const; + + /// \brief Clear the list + void Clear( bool doNotDeallocateSmallBlocks, const char *file, unsigned int line ); + + /// \brief Preallocate the list, so it needs fewer reallocations at runtime. + void Preallocate( unsigned countNeeded, const char *file, unsigned int line ); + + /// \brief Frees overallocated members, to use the minimum memory necessary. + /// \attention + /// This is a slow operation + void Compress( const char *file, unsigned int line ); + + private: + /// An array of user values + list_type* listArray; + + /// Number of elements in the list + unsigned int list_size; + + /// Size of \a array + unsigned int allocation_size; + }; + template + List::List() + { + allocation_size = 0; + listArray = 0; + list_size = 0; + } + + template + List::~List() + { + if (allocation_size>0) + RakNet::OP_DELETE_ARRAY(listArray, _FILE_AND_LINE_); + } + + + template + List::List( const List& original_copy ) + { + // Allocate memory for copy + + if ( original_copy.list_size == 0 ) + { + list_size = 0; + allocation_size = 0; + } + else + { + listArray = RakNet::OP_NEW_ARRAY( original_copy.list_size , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.list_size; ++counter ) + listArray[ counter ] = original_copy.listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(listArray, original_copy.listArray, original_copy.list_size*sizeof(list_type)); + + list_size = allocation_size = original_copy.list_size; + } + } + + template + List& List::operator= ( const List& original_copy ) + { + if ( ( &original_copy ) != this ) + { + Clear( false, _FILE_AND_LINE_ ); + + // Allocate memory for copy + + if ( original_copy.list_size == 0 ) + { + list_size = 0; + allocation_size = 0; + } + + else + { + listArray = RakNet::OP_NEW_ARRAY( original_copy.list_size , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.list_size; ++counter ) + listArray[ counter ] = original_copy.listArray[ counter ]; + // Don't call constructors, assignment operators, etc. + //memcpy(listArray, original_copy.listArray, original_copy.list_size*sizeof(list_type)); + + list_size = allocation_size = original_copy.list_size; + } + } + + return *this; + } + + + template + inline list_type& List::operator[] ( const unsigned int position ) const + { + #ifdef _DEBUG + if (position>=list_size) + { + RakAssert ( position < list_size ); + } + #endif + return listArray[ position ]; + } + + // Just here for debugging + template + inline list_type& List::Get ( const unsigned int position ) const + { + return listArray[ position ]; + } + + template + void List::Push(const list_type &input, const char *file, unsigned int line) + { + Insert(input, file, line); + } + + template + inline list_type& List::Pop(void) + { +#ifdef _DEBUG + RakAssert(list_size>0); +#endif + --list_size; + return listArray[list_size]; + } + + template + void List::Insert( const list_type &input, const unsigned int position, const char *file, unsigned int line ) + { +#ifdef _DEBUG + if (position>list_size) + { + RakAssert( position <= list_size ); + } +#endif + + // Reallocate list if necessary + if ( list_size == allocation_size ) + { + // allocate twice the currently allocated memory + list_type * new_array; + + if ( allocation_size == 0 ) + allocation_size = 16; + else + allocation_size *= 2; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated and twice as large array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + + listArray = new_array; + } + + // Move the elements in the list to make room + for ( unsigned int counter = list_size; counter != position; counter-- ) + listArray[ counter ] = listArray[ counter - 1 ]; + + // Don't call constructors, assignment operators, etc. + //memmove(listArray+position+1, listArray+position, (list_size-position)*sizeof(list_type)); + + // Insert the new item at the correct spot + listArray[ position ] = input; + + ++list_size; + + } + + + template + void List::Insert( const list_type &input, const char *file, unsigned int line ) + { + // Reallocate list if necessary + + if ( list_size == allocation_size ) + { + // allocate twice the currently allocated memory + list_type * new_array; + + if ( allocation_size == 0 ) + allocation_size = 16; + else + allocation_size *= 2; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + if (listArray) + { + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated and twice as large array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + } + + listArray = new_array; + } + + // Insert the new item at the correct spot + listArray[ list_size ] = input; + + ++list_size; + } + + template + inline void List::Replace( const list_type &input, const list_type filler, const unsigned int position, const char *file, unsigned int line ) + { + if ( ( list_size > 0 ) && ( position < list_size ) ) + { + // Direct replacement + listArray[ position ] = input; + } + else + { + if ( position >= allocation_size ) + { + // Reallocate the list to size position and fill in blanks with filler + list_type * new_array; + allocation_size = position + 1; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + // copy old array over + + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + + listArray = new_array; + } + + // Fill in holes with filler + while ( list_size < position ) + listArray[ list_size++ ] = filler; + + // Fill in the last element with the new item + listArray[ list_size++ ] = input; + +#ifdef _DEBUG + + RakAssert( list_size == position + 1 ); + +#endif + + } + } + + template + inline void List::Replace( const list_type &input ) + { + if ( list_size > 0 ) + listArray[ list_size - 1 ] = input; + } + + template + void List::RemoveAtIndex( const unsigned int position ) + { +#ifdef _DEBUG + if (position >= list_size) + { + RakAssert( position < list_size ); + return; + } +#endif + + if ( position < list_size ) + { + // Compress the array + for ( unsigned int counter = position; counter < list_size - 1 ; ++counter ) + listArray[ counter ] = listArray[ counter + 1 ]; + // Don't call constructors, assignment operators, etc. + // memmove(listArray+position, listArray+position+1, (list_size-1-position) * sizeof(list_type)); + + RemoveFromEnd(); + } + } + + template + void List::RemoveAtIndexFast( const unsigned int position ) + { +#ifdef _DEBUG + if (position >= list_size) + { + RakAssert( position < list_size ); + return; + } +#endif + --list_size; + listArray[position]=listArray[list_size]; + } + + template + inline void List::RemoveFromEnd( const unsigned num ) + { + // Delete the last elements on the list. No compression needed +#ifdef _DEBUG + RakAssert(list_size>=num); +#endif + list_size-=num; + } + + template + unsigned int List::GetIndexOf( const list_type &input ) const + { + for ( unsigned int i = 0; i < list_size; ++i ) + if ( listArray[ i ] == input ) + return i; + + return MAX_UNSIGNED_LONG; + } + + template + inline unsigned int List::Size( void ) const + { + return list_size; + } + + template + void List::Clear( bool doNotDeallocateSmallBlocks, const char *file, unsigned int line ) + { + if ( allocation_size == 0 ) + return; + + if (allocation_size>512 || doNotDeallocateSmallBlocks==false) + { + RakNet::OP_DELETE_ARRAY(listArray, file, line); + allocation_size = 0; + listArray = 0; + } + list_size = 0; + } + + template + void List::Compress( const char *file, unsigned int line ) + { + list_type * new_array; + + if ( allocation_size == 0 ) + return ; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + + listArray = new_array; + } + + template + void List::Preallocate( unsigned countNeeded, const char *file, unsigned int line ) + { + unsigned amountToAllocate = allocation_size; + if (allocation_size==0) + amountToAllocate=16; + while (amountToAllocate < countNeeded) + amountToAllocate<<=1; + + if ( allocation_size < amountToAllocate) + { + // allocate twice the currently allocated memory + list_type * new_array; + + allocation_size=amountToAllocate; + + new_array = RakNet::OP_NEW_ARRAY< list_type >( allocation_size , file, line ); + + if (listArray) + { + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated and twice as large array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + } + + listArray = new_array; + } + } + +} // End namespace + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Map.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Map.h new file mode 100755 index 0000000..2e789da --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Map.h @@ -0,0 +1,321 @@ +/// \file DS_Map.h +/// \internal +/// \brief Map +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAKNET_MAP_H +#define __RAKNET_MAP_H + +#include "DS_OrderedList.h" +#include "Export.h" +#include "RakMemoryOverride.h" +#include "RakAssert.h" + +// If I want to change this to a red-black tree, this is a good site: http://www.cs.auckland.ac.nz/software/AlgAnim/red_black.html +// This makes insertions and deletions faster. But then traversals are slow, while they are currently fast. + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// The default comparison has to be first so it can be called as a default parameter. + /// It then is followed by MapNode, followed by NodeComparisonFunc + template + int defaultMapKeyComparison(const key_type &a, const key_type &b) + { + if (a > + class RAK_DLL_EXPORT Map + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultMapKeyComparison(key_type(),key_type());} + + struct MapNode + { + MapNode() {} + MapNode(key_type _key, data_type _data) : mapNodeKey(_key), mapNodeData(_data) {} + MapNode& operator = ( const MapNode& input ) {mapNodeKey=input.mapNodeKey; mapNodeData=input.mapNodeData; return *this;} + MapNode( const MapNode & input) {mapNodeKey=input.mapNodeKey; mapNodeData=input.mapNodeData;} + key_type mapNodeKey; + data_type mapNodeData; + }; + + // Has to be a static because the comparison callback for DataStructures::OrderedList is a C function + static int NodeComparisonFunc(const key_type &a, const MapNode &b) + { +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + return key_comparison_func(a, b.mapNodeKey); + } + + Map(); + ~Map(); + Map( const Map& original_copy ); + Map& operator= ( const Map& original_copy ); + + data_type& Get(const key_type &key) const; + data_type Pop(const key_type &key); + // Add if needed + void Set(const key_type &key, const data_type &data); + // Must already exist + void SetExisting(const key_type &key, const data_type &data); + // Must add + void SetNew(const key_type &key, const data_type &data); + bool Has(const key_type &key) const; + bool Delete(const key_type &key); + data_type& operator[] ( const unsigned int position ) const; + key_type GetKeyAtIndex( const unsigned int position ) const; + unsigned GetIndexAtKey( const key_type &key ); + void RemoveAtIndex(const unsigned index); + void Clear(void); + unsigned Size(void) const; + + protected: + DataStructures::OrderedList< key_type,MapNode,&Map::NodeComparisonFunc > mapNodeList; + + void SaveLastSearch(const key_type &key, unsigned index) const; + bool HasSavedSearchResult(const key_type &key) const; + + unsigned lastSearchIndex; + key_type lastSearchKey; + bool lastSearchIndexValid; + }; + + template + Map::Map() + { + lastSearchIndexValid=false; + } + + template + Map::~Map() + { + Clear(); + } + + template + Map::Map( const Map& original_copy ) + { + mapNodeList=original_copy.mapNodeList; + lastSearchIndex=original_copy.lastSearchIndex; + lastSearchKey=original_copy.lastSearchKey; + lastSearchIndexValid=original_copy.lastSearchIndexValid; + } + + template + Map& Map::operator= ( const Map& original_copy ) + { + mapNodeList=original_copy.mapNodeList; + lastSearchIndex=original_copy.lastSearchIndex; + lastSearchKey=original_copy.lastSearchKey; + lastSearchIndexValid=original_copy.lastSearchIndexValid; + return *this; + } + + template + data_type& Map::Get(const key_type &key) const + { + if (HasSavedSearchResult(key)) + return mapNodeList[lastSearchIndex].mapNodeData; + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists); + SaveLastSearch(key,index); + return mapNodeList[index].mapNodeData; + } + + template + unsigned Map::GetIndexAtKey( const key_type &key ) + { + if (HasSavedSearchResult(key)) + return lastSearchIndex; + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + if (objectExists==false) + { + RakAssert(objectExists); + } + SaveLastSearch(key,index); + return index; + } + + template + void Map::RemoveAtIndex(const unsigned index) + { + mapNodeList.RemoveAtIndex(index); + lastSearchIndexValid=false; + } + + template + data_type Map::Pop(const key_type &key) + { + bool objectExists; + unsigned index; + if (HasSavedSearchResult(key)) + index=lastSearchIndex; + else + { + index=mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists); + } + data_type tmp = mapNodeList[index].mapNodeData; + mapNodeList.RemoveAtIndex(index); + lastSearchIndexValid=false; + return tmp; + } + + template + void Map::Set(const key_type &key, const data_type &data) + { + bool objectExists; + unsigned index; + + if (HasSavedSearchResult(key)) + { + mapNodeList[lastSearchIndex].mapNodeData=data; + return; + } + + index=mapNodeList.GetIndexFromKey(key, &objectExists); + + if (objectExists) + { + SaveLastSearch(key,index); + mapNodeList[index].mapNodeData=data; + } + else + { + SaveLastSearch(key,mapNodeList.Insert(key,MapNode(key,data), true, _FILE_AND_LINE_)); + } + } + + template + void Map::SetExisting(const key_type &key, const data_type &data) + { + bool objectExists; + unsigned index; + + if (HasSavedSearchResult(key)) + { + index=lastSearchIndex; + } + else + { + index=mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists); + SaveLastSearch(key,index); + } + + mapNodeList[index].mapNodeData=data; + } + + template + void Map::SetNew(const key_type &key, const data_type &data) + { +#ifdef _DEBUG + bool objectExists; + mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists==false); +#endif + SaveLastSearch(key,mapNodeList.Insert(key,MapNode(key,data), true, _FILE_AND_LINE_)); + } + + template + bool Map::Has(const key_type &key) const + { + if (HasSavedSearchResult(key)) + return true; + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + if (objectExists) + SaveLastSearch(key,index); + return objectExists; + } + + template + bool Map::Delete(const key_type &key) + { + if (HasSavedSearchResult(key)) + { + lastSearchIndexValid=false; + mapNodeList.RemoveAtIndex(lastSearchIndex); + return true; + } + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + if (objectExists) + { + lastSearchIndexValid=false; + mapNodeList.RemoveAtIndex(index); + return true; + } + else + return false; + } + + template + void Map::Clear(void) + { + lastSearchIndexValid=false; + mapNodeList.Clear(false, _FILE_AND_LINE_); + } + + template + data_type& Map::operator[]( const unsigned int position ) const + { + return mapNodeList[position].mapNodeData; + } + + template + key_type Map::GetKeyAtIndex( const unsigned int position ) const + { + return mapNodeList[position].mapNodeKey; + } + + template + unsigned Map::Size(void) const + { + return mapNodeList.Size(); + } + + template + void Map::SaveLastSearch(const key_type &key, const unsigned index) const + { + (void) key; + (void) index; + + /* + lastSearchIndex=index; + lastSearchKey=key; + lastSearchIndexValid=true; + */ + } + + template + bool Map::HasSavedSearchResult(const key_type &key) const + { + (void) key; + + // Not threadsafe! + return false; + // return lastSearchIndexValid && key_comparison_func(key,lastSearchKey)==0; + } +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_MemoryPool.h b/project/lib_projects/raknet/jni/RaknetSources/DS_MemoryPool.h new file mode 100755 index 0000000..62ebe8b --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_MemoryPool.h @@ -0,0 +1,294 @@ +/// \file DS_MemoryPool.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __MEMORY_POOL_H +#define __MEMORY_POOL_H + +#ifndef __APPLE__ +// Use stdlib and not malloc for compatibility +#include +#endif +#include "RakAssert.h" +#include "Export.h" + +#include "RakMemoryOverride.h" + +// DS_MEMORY_POOL_MAX_FREE_PAGES must be > 1 +#define DS_MEMORY_POOL_MAX_FREE_PAGES 4 + +//#define _DISABLE_MEMORY_POOL + +namespace DataStructures +{ + /// Very fast memory pool for allocating and deallocating structures that don't have constructors or destructors. + /// Contains a list of pages, each of which has an array of the user structures + template + class RAK_DLL_EXPORT MemoryPool + { + public: + struct Page; + struct MemoryWithPage + { + MemoryBlockType userMemory; + Page *parentPage; + }; + struct Page + { + MemoryWithPage** availableStack; + int availableStackSize; + MemoryWithPage* block; + Page *next, *prev; + }; + + MemoryPool(); + ~MemoryPool(); + void SetPageSize(int size); // Defaults to 16384 bytes + MemoryBlockType *Allocate(const char *file, unsigned int line); + void Release(MemoryBlockType *m, const char *file, unsigned int line); + void Clear(const char *file, unsigned int line); + + int GetAvailablePagesSize(void) const {return availablePagesSize;} + int GetUnavailablePagesSize(void) const {return unavailablePagesSize;} + int GetMemoryPoolPageSize(void) const {return memoryPoolPageSize;} + protected: + int BlocksPerPage(void) const; + void AllocateFirst(void); + bool InitPage(Page *page, Page *prev, const char *file, unsigned int line); + + // availablePages contains pages which have room to give the user new blocks. We return these blocks from the head of the list + // unavailablePages are pages which are totally full, and from which we do not return new blocks. + // Pages move from the head of unavailablePages to the tail of availablePages, and from the head of availablePages to the tail of unavailablePages + Page *availablePages, *unavailablePages; + int availablePagesSize, unavailablePagesSize; + int memoryPoolPageSize; + }; + + template + MemoryPool::MemoryPool() + { +#ifndef _DISABLE_MEMORY_POOL + //AllocateFirst(); + availablePagesSize=0; + unavailablePagesSize=0; + memoryPoolPageSize=16384; +#endif + } + template + MemoryPool::~MemoryPool() + { +#ifndef _DISABLE_MEMORY_POOL + Clear(_FILE_AND_LINE_); +#endif + } + + template + void MemoryPool::SetPageSize(int size) + { + memoryPoolPageSize=size; + } + + template + MemoryBlockType* MemoryPool::Allocate(const char *file, unsigned int line) + { +#ifdef _DISABLE_MEMORY_POOL + return (MemoryBlockType*) rakMalloc_Ex(sizeof(MemoryBlockType), file, line); +#else + + if (availablePagesSize>0) + { + MemoryBlockType *retVal; + Page *curPage; + curPage=availablePages; + retVal = (MemoryBlockType*) curPage->availableStack[--(curPage->availableStackSize)]; + if (curPage->availableStackSize==0) + { + --availablePagesSize; + availablePages=curPage->next; + RakAssert(availablePagesSize==0 || availablePages->availableStackSize>0); + curPage->next->prev=curPage->prev; + curPage->prev->next=curPage->next; + + if (unavailablePagesSize++==0) + { + unavailablePages=curPage; + curPage->next=curPage; + curPage->prev=curPage; + } + else + { + curPage->next=unavailablePages; + curPage->prev=unavailablePages->prev; + unavailablePages->prev->next=curPage; + unavailablePages->prev=curPage; + } + } + + RakAssert(availablePagesSize==0 || availablePages->availableStackSize>0); + return retVal; + } + + availablePages = (Page *) rakMalloc_Ex(sizeof(Page), file, line); + if (availablePages==0) + return 0; + availablePagesSize=1; + if (InitPage(availablePages, availablePages, file, line)==false) + return 0; + // If this assert hits, we couldn't allocate even 1 block per page. Increase the page size + RakAssert(availablePages->availableStackSize>1); + + return (MemoryBlockType *) availablePages->availableStack[--availablePages->availableStackSize]; +#endif + } + template + void MemoryPool::Release(MemoryBlockType *m, const char *file, unsigned int line) + { +#ifdef _DISABLE_MEMORY_POOL + rakFree_Ex(m, file, line); + return; +#else + // Find the page this block is in and return it. + Page *curPage; + MemoryWithPage *memoryWithPage = (MemoryWithPage*)m; + curPage=memoryWithPage->parentPage; + + if (curPage->availableStackSize==0) + { + // The page is in the unavailable list so move it to the available list + curPage->availableStack[curPage->availableStackSize++]=memoryWithPage; + unavailablePagesSize--; + + // As this page is no longer totally empty, move it to the end of available pages + curPage->next->prev=curPage->prev; + curPage->prev->next=curPage->next; + + if (unavailablePagesSize>0 && curPage==unavailablePages) + unavailablePages=unavailablePages->next; + + if (availablePagesSize++==0) + { + availablePages=curPage; + curPage->next=curPage; + curPage->prev=curPage; + } + else + { + curPage->next=availablePages; + curPage->prev=availablePages->prev; + availablePages->prev->next=curPage; + availablePages->prev=curPage; + } + } + else + { + curPage->availableStack[curPage->availableStackSize++]=memoryWithPage; + + if (curPage->availableStackSize==BlocksPerPage() && + availablePagesSize>=DS_MEMORY_POOL_MAX_FREE_PAGES) + { + // After a certain point, just deallocate empty pages rather than keep them around + if (curPage==availablePages) + { + availablePages=curPage->next; + RakAssert(availablePages->availableStackSize>0); + } + curPage->prev->next=curPage->next; + curPage->next->prev=curPage->prev; + availablePagesSize--; + rakFree_Ex(curPage->availableStack, file, line ); + rakFree_Ex(curPage->block, file, line ); + rakFree_Ex(curPage, file, line ); + } + } +#endif + } + template + void MemoryPool::Clear(const char *file, unsigned int line) + { +#ifdef _DISABLE_MEMORY_POOL + return; +#else + Page *cur, *freed; + + if (availablePagesSize>0) + { + cur = availablePages; +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + while (true) + // do + { + rakFree_Ex(cur->availableStack, file, line ); + rakFree_Ex(cur->block, file, line ); + freed=cur; + cur=cur->next; + if (cur==availablePages) + { + rakFree_Ex(freed, file, line ); + break; + } + rakFree_Ex(freed, file, line ); + }// while(cur!=availablePages); + } + + if (unavailablePagesSize>0) + { + cur = unavailablePages; + while (1) + //do + { + rakFree_Ex(cur->availableStack, file, line ); + rakFree_Ex(cur->block, file, line ); + freed=cur; + cur=cur->next; + if (cur==unavailablePages) + { + rakFree_Ex(freed, file, line ); + break; + } + rakFree_Ex(freed, file, line ); + } // while(cur!=unavailablePages); + } + + availablePagesSize=0; + unavailablePagesSize=0; +#endif + } + template + int MemoryPool::BlocksPerPage(void) const + { + return memoryPoolPageSize / sizeof(MemoryWithPage); + } + template + bool MemoryPool::InitPage(Page *page, Page *prev, const char *file, unsigned int line) + { + int i=0; + const int bpp = BlocksPerPage(); + page->block=(MemoryWithPage*) rakMalloc_Ex(memoryPoolPageSize, file, line); + if (page->block==0) + return false; + page->availableStack=(MemoryWithPage**)rakMalloc_Ex(sizeof(MemoryWithPage*)*bpp, file, line); + if (page->availableStack==0) + { + rakFree_Ex(page->block, file, line ); + return false; + } + MemoryWithPage *curBlock = page->block; + MemoryWithPage **curStack = page->availableStack; + while (i < bpp) + { + curBlock->parentPage=page; + curStack[i]=curBlock++; + i++; + } + page->availableStackSize=bpp; + page->next=availablePages; + page->prev=prev; + return true; + } +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Multilist.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Multilist.h new file mode 100755 index 0000000..e6acdb8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Multilist.h @@ -0,0 +1,1644 @@ +/// \file DS_Multilist.h +/// \internal +/// \brief ADT that can represent an unordered list, ordered list, stack, or queue with a common interface +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __MULTILIST_H +#define __MULTILIST_H + +#include "RakAssert.h" +#include // memmove +#include "Export.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" + + +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#pragma warning( disable : 4512 ) // warning C4512: assignment operator could not be generated +#endif + +/// What algorithm to use to store the data for the Multilist +enum MultilistType +{ + /// Removing from the middle of the list will swap the end of the list rather than shift the elements. Push and Pop operate on the tail. + ML_UNORDERED_LIST, + /// A normal list, with the list order preserved. Push and Pop operate on the tail. + ML_STACK, + /// A queue. Push and Pop operate on the head + ML_QUEUE, + /// A list that is always kept in order. Elements must be unique, and compare against each other consistently using <, ==, and > + ML_ORDERED_LIST, + /// A list whose type can change at runtime + ML_VARIABLE_DURING_RUNTIME +}; + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// Can be used with Multilist::ForEach + /// Assuming the Multilist holds pointers, will delete those pointers + template + void DeletePtr_RakNet(templateType &ptr, const char *file, unsigned int line ) {RakNet::OP_DELETE(ptr, file, line);} + + /// Can be used with Multilist::ForEach + /// Assuming the Multilist holds pointers, will delete those pointers + template + void DeletePtr(templateType &ptr) {delete ptr;} + + /// The following is invalid. + /// bool operator<( const MyClass *myClass, const int &inputKey ) {return myClass->value < inputKey;} + /// At least one type has to be a reference to a class + /// MLKeyRef is a helper class to turn a native type into a class, so you can compare that native type against a pointer to a different class + /// Used for he Multilist, when _DataType != _KeyType + template < class templateType > + class MLKeyRef + { + public: + MLKeyRef(const templateType& input) : val(input) {} + const templateType &Get(void) const {return val;} + bool operator<( const templateType &right ) {return val < right;} + bool operator>( const templateType &right ) {return val > right;} + bool operator==( const templateType &right ) {return val == right;} + protected: + const templateType &val; + }; + + /// For the Multilist, when _DataType != _KeyType, you must define the comparison operators between the key and the data + /// This is non-trivial due to the need to use MLKeyRef in case the type held is a pointer to a structure or class and the key type is not a class + /// For convenience, this macro will implement the comparison operators under the following conditions + /// 1. _DataType is a pointer to a class or structure + /// 2. The key is a member variable of _DataType + #define DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS( _CLASS_NAME_, _KEY_TYPE_, _MEMBER_VARIABLE_NAME_ ) \ + bool operator<( const DataStructures::MLKeyRef<_KEY_TYPE_> &inputKey, const _CLASS_NAME_ *cls ) {return inputKey.Get() < cls->_MEMBER_VARIABLE_NAME_;} \ + bool operator>( const DataStructures::MLKeyRef<_KEY_TYPE_> &inputKey, const _CLASS_NAME_ *cls ) {return inputKey.Get() > cls->_MEMBER_VARIABLE_NAME_;} \ + bool operator==( const DataStructures::MLKeyRef<_KEY_TYPE_> &inputKey, const _CLASS_NAME_ *cls ) {return inputKey.Get() == cls->_MEMBER_VARIABLE_NAME_;} + + typedef uint32_t DefaultIndexType; + + /// \brief The multilist, representing an abstract data type that generally holds lists. + /// \param[in] _MultilistType What type of list this is, \sa MultilistType + /// \param[in] _DataType What type of data this list holds. + /// \param[in] _KeyType If a function takes a key to sort on, what type of key this is. The comparison operator between _DataType and _KeyType must be defined + /// \param[in] _IndexType What variable type to use for indices + template + class RAK_DLL_EXPORT Multilist + { + public: + Multilist(); + ~Multilist(); + Multilist( const Multilist& source ); + Multilist& operator= ( const Multilist& source ); + _DataType& operator[] ( const _IndexType position ) const; + /// Unordered list, stack is LIFO + /// QUEUE is FIFO + /// Ordered list is inserted in order + void Push(const _DataType &d, const char *file=__FILE__, unsigned int line=__LINE__ ); + void Push(const _DataType &d, const _KeyType &key, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Gets or removes and gets an element from the list, according to the same rules as Push(). + /// Ordered list is LIFO for the purposes of Pop and Peek. + _DataType &Pop(const char *file=__FILE__, unsigned int line=__LINE__); + _DataType &Peek(void) const; + + /// \brief Same as Push(), except FIFO and LIFO are reversed. + /// Ordered list still inserts in order. + void PushOpposite(const _DataType &d, const char *file=__FILE__, unsigned int line=__LINE__ ); + void PushOpposite(const _DataType &d, const _KeyType &key, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Same as Pop() and Peek(), except FIFO and LIFO are reversed. + _DataType &PopOpposite(const char *file=__FILE__, unsigned int line=__LINE__); + _DataType &PeekOpposite(void) const; + + /// \brief Stack,Queue: Inserts at index indicated, elements are shifted. + /// Ordered list: Inserts, position is ignored + void InsertAtIndex(const _DataType &d, _IndexType index, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Unordered list, removes at index indicated, swaps last element with that element. + /// Otherwise, array is shifted left to overwrite removed element + /// \details Index[0] returns the same as Pop() for a queue. + /// Same as PopOpposite() for the list and ordered list + void RemoveAtIndex(_IndexType position, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Find the index of \a key, and remove at that index. + bool RemoveAtKey(_KeyType key, bool assertIfDoesNotExist, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Finds the index of \a key. Return -1 if the key is not found. + _IndexType GetIndexOf(_KeyType key) const; + + /// \brief Returns where in the list we should insert the item, to preserve list order. + /// Returns -1 if the item is already in the list + _IndexType GetInsertionIndex(_KeyType key) const; + + /// \brief Finds the index of \a key. Return 0 if the key is not found. Useful if _DataType is always non-zero pointers. + _DataType GetPtr(_KeyType key) const; + + /// \brief Iterate over the list, calling the function pointer on each element. + void ForEach(void (*func)(_DataType &item, const char *file, unsigned int line), const char *file, unsigned int line); + void ForEach(void (*func)(_DataType &item)); + + /// \brief Returns if the list is empty. + bool IsEmpty(void) const; + + /// \brief Returns the number of elements used in the list. + _IndexType GetSize(void) const; + + /// \brief Empties the list. The list is not deallocated if it is small, + /// unless \a deallocateSmallBlocks is true + void Clear( bool deallocateSmallBlocks=true, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Empties the list, first calling RakNet::OP_Delete on all items. + /// \details The list is not deallocated if it is small, unless \a deallocateSmallBlocks is true + void ClearPointers( bool deallocateSmallBlocks=true, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Empty one item from the list, first calling RakNet::OP_Delete on that item. + void ClearPointer( _KeyType key, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Reverses the elements in the list, and flips the sort order + /// returned by GetSortOrder() if IsSorted() returns true at the time the function is called + void ReverseList(void); + + /// \brief Reallocates the list to a larger size. + /// If \a size is smaller than the value returned by GetSize(), the call does nothing. + void Reallocate(_IndexType size, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Sorts the list unless it is an ordered list, in which it does nothing as the list is assumed to already be sorted. + /// \details However, if \a force is true, it will also resort the ordered list, useful if the comparison operator between _KeyType and _DataType would now return different results + /// Once the list is sorted, further operations to lookup by key will be log2(n) until the list is modified + void Sort(bool force); + + /// \brief Sets the list to be remembered as sorted. + /// \details Optimization if the source is sorted already + void TagSorted(void); + + /// \brief Defaults to ascending. + /// \details Used by Sort(), and by ML_ORDERED_LIST + void SetSortOrder(bool ascending); + + /// \brief Returns true if ascending. + bool GetSortOrder(void) const; + + /// \brief Returns true if the list is currently believed to be in a sorted state. + /// \details Doesn't actually check for sortedness, just if Sort() + /// was recently called, or MultilistType is ML_ORDERED_LIST + bool IsSorted(void) const; + + /// Returns what type of list this is + MultilistType GetMultilistType(void) const; + + /// \brief Changes what type of list this is. + /// \pre Template must be defined with ML_VARIABLE_DURING_RUNTIME for this to do anything + /// \param[in] mlType Any value of the enum MultilistType, except ML_VARIABLE_DURING_RUNTIME + void SetMultilistType(MultilistType newType); + + /// \brief Returns the intersection of two lists. + /// Intersection is items common to both lists. + static void FindIntersection( + Multilist& source1, + Multilist& source2, + Multilist& intersection, + Multilist& uniqueToSource1, + Multilist& uniqueToSource2); + + protected: + void ReallocateIfNeeded(const char *file, unsigned int line); + void DeallocateIfNeeded(const char *file, unsigned int line); + void ReallocToSize(_IndexType newAllocationSize, const char *file, unsigned int line); + void ReverseListInternal(void); + void InsertInOrderedList(const _DataType &d, const _KeyType &key); + _IndexType GetIndexFromKeyInSortedList(const _KeyType &key, bool *objectExists) const; + void InsertShiftArrayRight(const _DataType &d, _IndexType index); + void DeleteShiftArrayLeft(_IndexType index); + void QSortAscending(_IndexType left, _IndexType right); + void QSortDescending(_IndexType left, _IndexType right); + void CopySource( const Multilist& source ); + + /// An array of user values + _DataType* data; + + /// Number of elements in the list + _IndexType dataSize; + + /// Size of \a array + _IndexType allocationSize; + + /// Array index for the head of the queue + _IndexType queueHead; + + /// Array index for the tail of the queue + _IndexType queueTail; + + /// How many bytes the user chose to preallocate + /// Won't automatically deallocate below this + _IndexType preallocationSize; + + enum + { + ML_UNSORTED, + ML_SORTED_ASCENDING, + ML_SORTED_DESCENDING + } sortState; + + bool ascendingSort; + + // In case we are using the variable type multilist + MultilistType variableMultilistType; + }; + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Multilist() + { + data=0; + dataSize=0; + allocationSize=0; + ascendingSort=true; + sortState=ML_UNSORTED; + queueHead=0; + queueTail=0; + preallocationSize=0; + + if (_MultilistType==ML_ORDERED_LIST) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_UNSORTED; + + if (_MultilistType==ML_VARIABLE_DURING_RUNTIME) + variableMultilistType=ML_UNORDERED_LIST; + } + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::~Multilist() + { + if (data!=0) + RakNet::OP_DELETE_ARRAY(data, _FILE_AND_LINE_); + } + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Multilist( const Multilist& source ) + { + CopySource(source); + } + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>& Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::operator= ( const Multilist& source ) + { + Clear(true); + CopySource(source); + return *this; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::CopySource( const Multilist& source ) + { + dataSize=source.GetSize(); + ascendingSort=source.ascendingSort; + sortState=source.sortState; + queueHead=0; + queueTail=dataSize; + preallocationSize=source.preallocationSize; + variableMultilistType=source.variableMultilistType; + if (source.data==0) + { + data=0; + allocationSize=0; + } + else + { + allocationSize=dataSize; + data = RakNet::OP_NEW_ARRAY<_DataType>(dataSize,_FILE_AND_LINE_); + _IndexType i; + for (i=0; i < dataSize; i++) + data[i]=source[i]; + } + } + + template + _DataType& Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::operator[] ( const _IndexType position ) const + { + RakAssert(position= allocationSize ) + return data[ queueHead + position - allocationSize ]; + else + return data[ queueHead + position ]; + } + + return data[position]; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Push(const _DataType &d, const char *file, unsigned int line ) + { + Push(d,d,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Push(const _DataType &d, const _KeyType &key, const char *file, unsigned int line ) + { + ReallocateIfNeeded(file,line); + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK) + { + data[dataSize]=d; + dataSize++; + } + else if (GetMultilistType()==ML_QUEUE) + { + data[queueTail++] = d; + + if ( queueTail == allocationSize ) + queueTail = 0; + dataSize++; + } + else + { + RakAssert(GetMultilistType()==ML_ORDERED_LIST); + InsertInOrderedList(d,key); + } + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_QUEUE) + { + // Break sort if no longer sorted + if (sortState!=ML_UNSORTED && dataSize>1) + { + if (ascendingSort) + { + if ( MLKeyRef<_KeyType>(key) < operator[](dataSize-2) ) + sortState=ML_UNSORTED; + } + else + { + if ( MLKeyRef<_KeyType>(key) > operator[](dataSize-2) ) + sortState=ML_UNSORTED; + } + + sortState=ML_UNSORTED; + } + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Pop(const char *file, unsigned int line) + { + RakAssert(IsEmpty()==false); + DeallocateIfNeeded(file,line); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + dataSize--; + return data[dataSize]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + + if ( ++queueHead == allocationSize ) + queueHead = 0; + + if ( queueHead == 0 ) + return data[ allocationSize -1 ]; + + dataSize--; + return data[ queueHead -1 ]; + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Peek(void) const + { + RakAssert(IsEmpty()==false); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + return data[dataSize-1]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + return data[ queueHead ]; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PushOpposite(const _DataType &d, const char *file, unsigned int line ) + { + PushOpposite(d,d,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PushOpposite(const _DataType &d, const _KeyType &key, const char *file, unsigned int line ) + { + ReallocateIfNeeded(file,line); + + // Unordered list Push at back + if (GetMultilistType()==ML_UNORDERED_LIST) + { + data[dataSize]=d; + dataSize++; + } + else if (GetMultilistType()==ML_STACK) + { + // Stack push at front of the list, instead of back as normal + InsertAtIndex(d,0,file,line); + } + else if (GetMultilistType()==ML_QUEUE) + { + // Queue push at front of the list, instead of back as normal + InsertAtIndex(d,0,file,line); + } + else + { + RakAssert(GetMultilistType()==ML_ORDERED_LIST); + InsertInOrderedList(d,key); + } + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_QUEUE) + { + // Break sort if no longer sorted + if (sortState!=ML_UNSORTED && dataSize>1) + { + if (ascendingSort) + { + if ( MLKeyRef<_KeyType>(key) > operator[](1) ) + sortState=ML_UNSORTED; + } + else + { + if ( MLKeyRef<_KeyType>(key) < operator[](1) ) + sortState=ML_UNSORTED; + } + } + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PopOpposite(const char *file, unsigned int line) + { + RakAssert(IsEmpty()==false); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + // Copy leftmost to end + ReallocateIfNeeded(file,line); + data[dataSize]=data[0]; + DeleteShiftArrayLeft(0); + --dataSize; + // Assuming still leaves at least one element past the end of the list allocated + DeallocateIfNeeded(file,line); + // Return end + return data[dataSize+1]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + // Deallocate first, since we are returning off the existing list + DeallocateIfNeeded(file,line); + dataSize--; + + if (queueTail==0) + queueTail=allocationSize-1; + else + --queueTail; + + return data[queueTail]; + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PeekOpposite(void) const + { + RakAssert(IsEmpty()==false); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + return data[0]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + _IndexType priorIndex; + if (queueTail==0) + priorIndex=allocationSize-1; + else + priorIndex=queueTail-1; + + return data[priorIndex]; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::InsertAtIndex(const _DataType &d, _IndexType index, const char *file, unsigned int line) + { + ReallocateIfNeeded(file,line); + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + if (index>=dataSize) + { + // insert at end + data[dataSize]=d; + + dataSize++; + } + else + { + // insert at index + InsertShiftArrayRight(d,index); + } + } + else + { + data[queueTail++] = d; + + if ( queueTail == allocationSize ) + queueTail = 0; + + ++dataSize; + + if (dataSize==1) + return; + + _IndexType writeIndex, readIndex, trueWriteIndex, trueReadIndex; + writeIndex=dataSize-1; + readIndex=writeIndex-1; + while (readIndex >= index) + { + if ( queueHead + writeIndex >= allocationSize ) + trueWriteIndex = queueHead + writeIndex - allocationSize; + else + trueWriteIndex = queueHead + writeIndex; + + if ( queueHead + readIndex >= allocationSize ) + trueReadIndex = queueHead + readIndex - allocationSize; + else + trueReadIndex = queueHead + readIndex; + + data[trueWriteIndex]=data[trueReadIndex]; + + if (readIndex==0) + break; + writeIndex--; + readIndex--; + } + + if ( queueHead + index >= allocationSize ) + trueWriteIndex = queueHead + index - allocationSize; + else + trueWriteIndex = queueHead + index; + + data[trueWriteIndex]=d; + } + + if (_MultilistType!=ML_ORDERED_LIST) + sortState=ML_UNSORTED; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::RemoveAtIndex(_IndexType position, const char *file, unsigned int line) + { + RakAssert(position < dataSize); + RakAssert(IsEmpty()==false); + + if (GetMultilistType()==ML_UNORDERED_LIST) + { + // Copy tail to current + data[position]=data[dataSize-1]; + } + else if (GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + DeleteShiftArrayLeft(position); + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + + _IndexType index, next; + + if ( queueHead + position >= allocationSize ) + index = queueHead + position - allocationSize; + else + index = queueHead + position; + + next = index + 1; + + if ( next == allocationSize ) + next = 0; + + while ( next != queueTail ) + { + // Overwrite the previous element + data[ index ] = data[ next ]; + index = next; + //next = (next + 1) % allocationSize; + + if ( ++next == allocationSize ) + next = 0; + } + + // Move the queueTail back + if ( queueTail == 0 ) + queueTail = allocationSize - 1; + else + --queueTail; + } + + + dataSize--; + DeallocateIfNeeded(file,line); + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::RemoveAtKey(_KeyType key, bool assertIfDoesNotExist, const char *file, unsigned int line) + { + _IndexType index = GetIndexOf(key); + if (index==(_IndexType)-1) + { + RakAssert(assertIfDoesNotExist==false && "RemoveAtKey element not found"); + return false; + } + RemoveAtIndex(index,file,line); + return true; + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetIndexOf(_KeyType key) const + { + _IndexType i; + if (IsSorted()) + { + bool objectExists; + i=GetIndexFromKeyInSortedList(key, &objectExists); + if (objectExists) + return i; + return (_IndexType)-1; + } + else if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK) + { + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==data[i]) + return i; + } + return (_IndexType)-1; + } + else + { + RakAssert( GetMultilistType()==ML_QUEUE ); + + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==operator[](i)) + return i; + } + return (_IndexType)-1; + } + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetInsertionIndex(_KeyType key) const + { + _IndexType i; + if (IsSorted()) + { + bool objectExists; + i=GetIndexFromKeyInSortedList(key, &objectExists); + if (objectExists) + return (_IndexType)-1; + return i; + } + else if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK) + { + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==data[i]) + return (_IndexType)-1; + } + return dataSize; + } + else + { + RakAssert( GetMultilistType()==ML_QUEUE ); + + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==operator[](i)) + return (_IndexType)-1; + } + return dataSize; + } + } + + template + _DataType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetPtr(_KeyType key) const + { + _IndexType i = GetIndexOf(key); + if (i==(_IndexType)-1) + return 0; + return data[i]; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ForEach(void (*func)(_DataType &item, const char *file, unsigned int line), const char *file, unsigned int line) + { + _IndexType i; + for (i=0; i < dataSize; i++) + func(operator[](i), file, line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ForEach(void (*func)(_DataType &item)) + { + _IndexType i; + for (i=0; i < dataSize; i++) + func(operator[](i)); + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::IsEmpty(void) const + { + return dataSize==0; + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetSize(void) const + { + return dataSize; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Clear( bool deallocateSmallBlocks, const char *file, unsigned int line ) + { + dataSize=0; + if (GetMultilistType()==ML_ORDERED_LIST) + if (ascendingSort) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_SORTED_DESCENDING; + else + sortState=ML_UNSORTED; + queueHead=0; + queueTail=0; + + if (deallocateSmallBlocks && allocationSize < 128 && data) + { + RakNet::OP_DELETE_ARRAY(data,file,line); + data=0; + allocationSize=0; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ClearPointers( bool deallocateSmallBlocks, const char *file, unsigned int line ) + { + _IndexType i; + for (i=0; i < dataSize; i++) + RakNet::OP_DELETE(operator[](i), file, line); + Clear(deallocateSmallBlocks, file, line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ClearPointer( _KeyType key, const char *file, unsigned int line ) + { + _IndexType i; + i = GetIndexOf(key); + if (i!=-1) + { + RakNet::OP_DELETE(operator[](i), file, line); + RemoveAtIndex(i); + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReverseList(void) + { + if (IsSorted()) + ascendingSort=!ascendingSort; + + ReverseListInternal(); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Reallocate(_IndexType size, const char *file, unsigned int line) + { + _IndexType newAllocationSize; + if (size < dataSize) + newAllocationSize=dataSize; + else + newAllocationSize=size; + preallocationSize=size; + ReallocToSize(newAllocationSize,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Sort(bool force) + { + if (IsSorted() && force==false) + return; + + if (dataSize>1) + { + if (ascendingSort) + QSortAscending(0,dataSize-1); + else + QSortDescending(0,dataSize-1); + } + + TagSorted(); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::TagSorted(void) + { + if (ascendingSort) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_SORTED_DESCENDING; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::QSortAscending(_IndexType leftEdge, _IndexType rightEdge) + { + _DataType temp; + _IndexType left=leftEdge; + _IndexType right=rightEdge; + _IndexType pivotIndex=left++; + + while (left data[pivotIndex]) + { + --left; + + data[pivotIndex]=data[left]; + data[left]=temp; + } + else + { + data[pivotIndex]=data[left]; + data[left]=temp; + + --left; + } + + if (left!=leftEdge) + QSortAscending(leftEdge, left); + + if (right!=rightEdge) + QSortAscending(right, rightEdge); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::QSortDescending(_IndexType leftEdge, _IndexType rightEdge) + { + _DataType temp; + _IndexType left=leftEdge; + _IndexType right=rightEdge; + _IndexType pivotIndex=left++; + + while (left= data[pivotIndex]) + { + ++left; + } + else + { + temp=data[left]; + data[left]=data[right]; + data[right]=temp; + --right; + } + } + + temp=data[pivotIndex]; + + // Move pivot to center + if (data[left] < data[pivotIndex]) + { + --left; + + data[pivotIndex]=data[left]; + data[left]=temp; + } + else + { + data[pivotIndex]=data[left]; + data[left]=temp; + + --left; + } + + if (left!=leftEdge) + QSortDescending(leftEdge, left); + + if (right!=rightEdge) + QSortDescending(right, rightEdge); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::SetSortOrder(bool ascending) + { + if (ascendingSort!=ascending && IsSorted()) + { + ascendingSort=ascending; + // List is sorted, and the sort order has changed. So reverse the list + ReverseListInternal(); + } + else + ascendingSort=ascending; + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetSortOrder(void) const + { + return ascendingSort; + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::IsSorted(void) const + { + return GetMultilistType()==ML_ORDERED_LIST || sortState!=ML_UNSORTED; + } + + template + MultilistType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetMultilistType(void) const + { + if (_MultilistType==ML_VARIABLE_DURING_RUNTIME) + return variableMultilistType; + return _MultilistType; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::SetMultilistType(MultilistType newType) + { + RakAssert(_MultilistType==ML_VARIABLE_DURING_RUNTIME); + switch (variableMultilistType) + { + case ML_UNORDERED_LIST: + switch (newType) + { + case ML_UNORDERED_LIST: + // No change + break; + case ML_STACK: + // Same data format + break; + case ML_QUEUE: + queueHead=0; + queueTail=dataSize; + break; + case ML_ORDERED_LIST: + Sort(false); + break; + } + break; + case ML_STACK: + switch (newType) + { + case ML_UNORDERED_LIST: + // Same data format + break; + case ML_STACK: + // No change + break; + case ML_QUEUE: + queueHead=0; + queueTail=dataSize; + break; + case ML_ORDERED_LIST: + Sort(false); + break; + } + break; + case ML_QUEUE: + switch (newType) + { + case ML_UNORDERED_LIST: + case ML_STACK: + case ML_ORDERED_LIST: + if (queueTail < queueHead) + { + // Realign data if wrapped + ReallocToSize(dataSize, _FILE_AND_LINE_); + } + else + { + // Else can just copy starting at head + _IndexType i; + for (i=0; i < dataSize; i++) + data[i]=operator[](i); + } + if (newType==ML_ORDERED_LIST) + Sort(false); + break; + case ML_QUEUE: + // No change + break; + } + break; + case ML_ORDERED_LIST: + switch (newType) + { + case ML_UNORDERED_LIST: + case ML_STACK: + case ML_QUEUE: + // Same data format + // Tag as sorted + if (ascendingSort) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_SORTED_DESCENDING; + if (newType==ML_QUEUE) + { + queueHead=0; + queueTail=dataSize; + } + break; + case ML_ORDERED_LIST: + // No change + break; + } + break; + } + + variableMultilistType=newType; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::FindIntersection( + Multilist& source1, + Multilist& source2, + Multilist& intersection, + Multilist& uniqueToSource1, + Multilist& uniqueToSource2) + { + _IndexType index1=0, index2=0; + source1.SetSortOrder(true); + source2.SetSortOrder(true); + source1.Sort(false); + source2.Sort(false); + intersection.Clear(true,_FILE_AND_LINE_); + uniqueToSource1.Clear(true,_FILE_AND_LINE_); + uniqueToSource2.Clear(true,_FILE_AND_LINE_); + + while (index1 < source1.GetSize() && index2 < source2.GetSize()) + { + if (source1[index1] + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReallocateIfNeeded(const char *file, unsigned int line) + { + if (dataSize65536) + newAllocationSize=allocationSize+65536; + else + { + newAllocationSize=allocationSize<<1; // * 2 + // Protect against underflow + if (newAllocationSize < allocationSize) + newAllocationSize=allocationSize+65536; + } + + ReallocToSize(newAllocationSize,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::DeallocateIfNeeded(const char *file, unsigned int line) + { + if (allocationSize<512) + return; + if (dataSize >= allocationSize/3 ) + return; + if (dataSize <= preallocationSize ) + return; + + _IndexType newAllocationSize = dataSize<<1; // * 2 + + ReallocToSize(newAllocationSize,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReallocToSize(_IndexType newAllocationSize, const char *file, unsigned int line) + { + _DataType* newData = RakNet::OP_NEW_ARRAY<_DataType>(newAllocationSize,file,line); + _IndexType i; + for (i=0; i < dataSize; i++) + newData[i]=operator[](i); + if (dataSize>0) + { + RakNet::OP_DELETE_ARRAY(data,file,line); + if (GetMultilistType()==ML_QUEUE) + { + queueHead=0; + queueTail=dataSize; + } + } + data=newData; + allocationSize=newAllocationSize; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReverseListInternal(void) + { + _DataType temp; + _IndexType i; + for (i=0; i < dataSize/2; i++) + { + temp=operator[](i); + operator[](i)=operator[](dataSize-1-i); + operator[](dataSize-1-i)=temp; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::InsertInOrderedList(const _DataType &d, const _KeyType &key) + { + RakAssert(GetMultilistType()==ML_ORDERED_LIST); + + bool objectExists; + _IndexType index; + index = GetIndexFromKeyInSortedList(key, &objectExists); + + // if (objectExists) + // { + // Ordered list only allows unique insertions + // RakAssert("Duplicate insertion into ordered list" && false); + // return; + // } + + if (index>=dataSize) + { + // insert at end + data[dataSize]=d; + dataSize++; + } + else + { + // insert at index + InsertShiftArrayRight(d,index); + } + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetIndexFromKeyInSortedList(const _KeyType &key, bool *objectExists) const + { + RakAssert(IsSorted()); + _IndexType index, upperBound, lowerBound; + + if (dataSize==0) + { + *objectExists=false; + return 0; + } + + upperBound=dataSize-1; + lowerBound=0; + index = dataSize/2; + +#ifdef _MSC_VER + #pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + if (MLKeyRef<_KeyType>(key) > operator[](index) ) + { + if (ascendingSort) + lowerBound=index+1; + else + upperBound=index-1; + } + else if (MLKeyRef<_KeyType>(key) < operator[](index) ) + { + if (ascendingSort) + upperBound=index-1; + else + lowerBound=index+1; + } + else + { + // == + *objectExists=true; + return index; + } + + index=lowerBound+(upperBound-lowerBound)/2; + + if (lowerBound>upperBound || upperBound==(_IndexType)-1) + { + *objectExists=false; + return lowerBound; // No match + } + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::InsertShiftArrayRight(const _DataType &d, _IndexType index) + { + RakAssert(_MultilistType!=ML_QUEUE); + + // Move the elements in the list to make room + _IndexType i; + for ( i = dataSize; i != index; i-- ) + data[ i ] = data[ i - 1 ]; + + // Insert the new item at the correct spot + data[ index ] = d; + + ++dataSize; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::DeleteShiftArrayLeft( _IndexType index ) + { + RakAssert(index < dataSize); + RakAssert(_MultilistType!=ML_QUEUE); + + _IndexType i; + for ( i = index; i < dataSize-1; i++ ) + data[i]=data[i+1]; + } +}; + +/* +struct KeyAndValue +{ + int key; + short value; +}; + +DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS(KeyAndValue,int,key) + +void MultilistUnitTest(void) +{ + DataStructures::DefaultIndexType oldSize; + DataStructures::Multilist ml1; + ml1.Reallocate(64); + RakAssert(ml1.IsEmpty()); + ml1.Push(53); + RakAssert(ml1.Peek()==53); + RakAssert(ml1.IsEmpty()==false); + RakAssert(ml1.Pop()==53); + RakAssert(ml1.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml1.Push(i); + RakAssert(ml1.GetIndexOf(200)==200); + RakAssert(ml1.PeekOpposite()==0); + RakAssert(ml1.PopOpposite()==0); + RakAssert(ml1.PeekOpposite()==1); + RakAssert(ml1.Peek()==511); + ml1.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml1[i]==511-i); + RakAssert(ml1.PeekOpposite()==511); + RakAssert(ml1.Peek()==1); + oldSize = ml1.GetSize(); + ml1.RemoveAtIndex(0); + RakAssert(ml1.GetSize()==oldSize-1); + RakAssert(ml1.PeekOpposite()==1); + ml1.Clear(_FILE_AND_LINE_); + RakAssert(ml1.IsEmpty()==true); + + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(100); + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(50); + ml1.Push(100); + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(100); + ml1.Push(50); + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(100); + ml1.Push(50); + ml1.Push(150); + ml1.Push(25); + ml1.Push(175); + ml1.Sort(true); + RakAssert(ml1[0]==25); + RakAssert(ml1[1]==50); + RakAssert(ml1[2]==100); + RakAssert(ml1[3]==150); + RakAssert(ml1[4]==175); + RakAssert(ml1.GetIndexOf(25)==0); + RakAssert(ml1.GetIndexOf(50)==1); + RakAssert(ml1.GetIndexOf(100)==2); + RakAssert(ml1.GetIndexOf(150)==3); + RakAssert(ml1.GetIndexOf(175)==4); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(1); + ml1.Push(2); + ml1.Push(3); + ml1.Push(4); + ml1.Push(5); + ml1.Sort(true); + RakAssert(ml1[0]==1); + RakAssert(ml1[1]==2); + RakAssert(ml1[2]==3); + RakAssert(ml1[3]==4); + RakAssert(ml1[4]==5); + RakAssert(ml1.GetIndexOf(1)==0); + RakAssert(ml1.GetIndexOf(2)==1); + RakAssert(ml1.GetIndexOf(3)==2); + RakAssert(ml1.GetIndexOf(4)==3); + RakAssert(ml1.GetIndexOf(5)==4); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(5); + ml1.Push(4); + ml1.Push(3); + ml1.Push(2); + ml1.Push(1); + ml1.Sort(true); + RakAssert(ml1[0]==1); + RakAssert(ml1[1]==2); + RakAssert(ml1[2]==3); + RakAssert(ml1[3]==4); + RakAssert(ml1[4]==5); + RakAssert(ml1.GetIndexOf(1)==0); + RakAssert(ml1.GetIndexOf(2)==1); + RakAssert(ml1.GetIndexOf(3)==2); + RakAssert(ml1.GetIndexOf(4)==3); + RakAssert(ml1.GetIndexOf(5)==4); + ml1.Sort(true); + RakAssert(ml1[0]==1); + RakAssert(ml1[1]==2); + RakAssert(ml1[2]==3); + RakAssert(ml1[3]==4); + RakAssert(ml1[4]==5); + RakAssert(ml1.GetIndexOf(1)==0); + RakAssert(ml1.GetIndexOf(2)==1); + RakAssert(ml1.GetIndexOf(3)==2); + RakAssert(ml1.GetIndexOf(4)==3); + RakAssert(ml1.GetIndexOf(5)==4); + ml1.Clear(_FILE_AND_LINE_); + + DataStructures::Multilist ml2; + ml2.Reallocate(64); + RakAssert(ml2.IsEmpty()); + ml2.Push(53); + RakAssert(ml2.Peek()==53); + RakAssert(ml2.IsEmpty()==false); + RakAssert(ml2.Pop()==53); + RakAssert(ml2.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml2.Push(i); + RakAssert(ml2.GetIndexOf(200)==200); + RakAssert(ml2.PeekOpposite()==0); + RakAssert(ml2.PopOpposite()==0); + RakAssert(ml2.PeekOpposite()==1); + RakAssert(ml2.Peek()==511); + ml2.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml2[i]==511-i); + RakAssert(ml2.PeekOpposite()==511); + RakAssert(ml2.Peek()==1); + oldSize = ml2.GetSize(); + ml2.RemoveAtIndex(0); + RakAssert(ml2.GetSize()==oldSize-1); + RakAssert(ml2.Peek()==1); + RakAssert(ml2.PeekOpposite()==510); + ml2.Clear(_FILE_AND_LINE_); + RakAssert(ml2.IsEmpty()==true); + + DataStructures::Multilist ml3; + RakAssert(ml3.IsEmpty()); + ml3.Push(53); + RakAssert(ml3.Peek()==53); + RakAssert(ml3.IsEmpty()==false); + RakAssert(ml3.Pop()==53); + RakAssert(ml3.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml3.Push(i); + RakAssert(ml3.GetIndexOf(200)==200); + RakAssert(ml3.PeekOpposite()==511); + RakAssert(ml3.PopOpposite()==511); + RakAssert(ml3.PeekOpposite()==510); + RakAssert(ml3.Peek()==0); + ml3.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml3[i]==511-1-i); + RakAssert(ml3.PeekOpposite()==0); + RakAssert(ml3.Peek()==510); + oldSize = ml3.GetSize(); + ml3.RemoveAtIndex(0); + RakAssert(ml3.GetSize()==oldSize-1); + RakAssert(ml3.Peek()==509); + RakAssert(ml3.PeekOpposite()==0); + ml3.Clear(_FILE_AND_LINE_); + RakAssert(ml3.IsEmpty()==true); + + ml3.PushOpposite(100); + ml3.PushOpposite(50); + ml3.PushOpposite(150); + ml3.PushOpposite(25); + ml3.PushOpposite(175); + ml3.Sort(true); + RakAssert(ml3[0]==25); + RakAssert(ml3[1]==50); + RakAssert(ml3[2]==100); + RakAssert(ml3[3]==150); + RakAssert(ml3[4]==175); + RakAssert(ml3.GetIndexOf(25)==0); + RakAssert(ml3.GetIndexOf(50)==1); + RakAssert(ml3.GetIndexOf(100)==2); + RakAssert(ml3.GetIndexOf(150)==3); + RakAssert(ml3.GetIndexOf(175)==4); + ml3.Clear(_FILE_AND_LINE_); + + ml3.PushOpposite(1); + ml3.PushOpposite(2); + ml3.PushOpposite(3); + ml3.PushOpposite(4); + ml3.PushOpposite(5); + ml3.Sort(true); + RakAssert(ml3[0]==1); + RakAssert(ml3[1]==2); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==4); + RakAssert(ml3[4]==5); + RakAssert(ml3.GetIndexOf(1)==0); + RakAssert(ml3.GetIndexOf(2)==1); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==3); + RakAssert(ml3.GetIndexOf(5)==4); + ml3.Clear(_FILE_AND_LINE_); + + ml3.PushOpposite(5); + ml3.PushOpposite(4); + ml3.PushOpposite(3); + ml3.PushOpposite(2); + ml3.PushOpposite(1); + ml3.Sort(true); + RakAssert(ml3[0]==1); + RakAssert(ml3[1]==2); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==4); + RakAssert(ml3[4]==5); + RakAssert(ml3.GetIndexOf(1)==0); + RakAssert(ml3.GetIndexOf(2)==1); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==3); + RakAssert(ml3.GetIndexOf(5)==4); + ml3.Sort(true); + RakAssert(ml3[0]==1); + RakAssert(ml3[1]==2); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==4); + RakAssert(ml3[4]==5); + RakAssert(ml3.GetIndexOf(1)==0); + RakAssert(ml3.GetIndexOf(2)==1); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==3); + RakAssert(ml3.GetIndexOf(5)==4); + + ml3.SetSortOrder(false); + ml3.Sort(false); + RakAssert(ml3[0]==5); + RakAssert(ml3[1]==4); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==2); + RakAssert(ml3[4]==1); + RakAssert(ml3.GetIndexOf(1)==4); + RakAssert(ml3.GetIndexOf(2)==3); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==1); + RakAssert(ml3.GetIndexOf(5)==0); + + ml3.Clear(_FILE_AND_LINE_); + + DataStructures::Multilist ml4; + ml4.Reallocate(64); + RakAssert(ml4.IsEmpty()); + ml4.Push(53); + RakAssert(ml4.Peek()==53); + RakAssert(ml4.IsEmpty()==false); + RakAssert(ml4.Pop()==53); + RakAssert(ml4.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml4.Push(i); + RakAssert(ml4.GetIndexOf(200)==200); + RakAssert(ml4.PeekOpposite()==0); + RakAssert(ml4.PopOpposite()==0); + RakAssert(ml4.PeekOpposite()==1); + RakAssert(ml4.Peek()==511); + ml4.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml4[i]==511-i); + RakAssert(ml4.PeekOpposite()==511); + RakAssert(ml4.Peek()==1); + oldSize = ml4.GetSize(); + ml4.RemoveAtIndex(0); + RakAssert(ml4.GetSize()==oldSize-1); + RakAssert(ml4.Peek()==1); + RakAssert(ml4.PeekOpposite()==510); + ml4.Clear(_FILE_AND_LINE_); + RakAssert(ml4.IsEmpty()==true); + + DataStructures::Multilist ml5; + + for (int i=0; i < 16; i++) + { + KeyAndValue *kav = new KeyAndValue; + kav->key=i; + kav->value=i+100; + ml5.Push(kav,kav->key); + } + + RakAssert(ml5.GetIndexOf(0)==0); + RakAssert(ml5.GetIndexOf(5)==5); + RakAssert(ml5.GetIndexOf(15)==15); + RakAssert(ml5.GetIndexOf(16)==-1); + ml5.RemoveAtKey(0,true); + RakAssert(ml5.GetIndexOf(1)==0); + KeyAndValue *iPtr = ml5.GetPtr(5); + RakAssert(iPtr); + RakAssert(iPtr->value=105); + iPtr = ml5.GetPtr(1234); + RakAssert(iPtr==0); + ml5.ForEach(DataStructures::DeletePtr); + + + DataStructures::Multilist ml6; + ml6.Push(2); + ml6.Push(1); + ml6.Push(6); + ml6.Push(3); + RakAssert(ml6.Peek()==3); + ml6.SetMultilistType(ML_STACK); + RakAssert(ml6.Peek()==3); + ml6.SetMultilistType(ML_QUEUE); + RakAssert(ml6.Peek()==2); + ml6.SetMultilistType(ML_ORDERED_LIST); + RakAssert(ml6.Peek()=6); + ml6.SetMultilistType(ML_STACK); + RakAssert(ml6.Peek()==6); + ml6.SetMultilistType(ML_QUEUE); + RakAssert(ml6.Peek()==1); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif +*/ + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_OrderedChannelHeap.h b/project/lib_projects/raknet/jni/RaknetSources/DS_OrderedChannelHeap.h new file mode 100755 index 0000000..104391e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_OrderedChannelHeap.h @@ -0,0 +1,244 @@ +/// \file DS_OrderedChannelHeap.h +/// \internal +/// \brief Ordered Channel Heap . This is a heap where you add to it on multiple ordered channels, with each channel having a different weight. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAKNET_ORDERED_CHANNEL_HEAP_H +#define __RAKNET_ORDERED_CHANNEL_HEAP_H + +#include "DS_Heap.h" +#include "DS_Map.h" +#include "DS_Queue.h" +#include "Export.h" +#include "RakAssert.h" +#include "Rand.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template > + class RAK_DLL_EXPORT OrderedChannelHeap + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultMapKeyComparison(channel_key_type(),channel_key_type());} + + OrderedChannelHeap(); + ~OrderedChannelHeap(); + void Push(const channel_key_type &channelID, const heap_data_type &data); + void PushAtHead(const unsigned index, const channel_key_type &channelID, const heap_data_type &data); + heap_data_type Pop(const unsigned startingIndex=0); + heap_data_type Peek(const unsigned startingIndex) const; + void AddChannel(const channel_key_type &channelID, const double weight); + void RemoveChannel(channel_key_type channelID); + void Clear(void); + heap_data_type& operator[] ( const unsigned int position ) const; + unsigned ChannelSize(const channel_key_type &channelID); + unsigned Size(void) const; + + struct QueueAndWeight + { + DataStructures::Queue randResultQueue; + double weight; + bool signalDeletion; + }; + + struct HeapChannelAndData + { + HeapChannelAndData() {} + HeapChannelAndData(const channel_key_type &_channel, const heap_data_type &_data) : data(_data), channel(_channel) {} + heap_data_type data; + channel_key_type channel; + }; + + protected: + DataStructures::Map map; + DataStructures::Heap heap; + void GreatestRandResult(void); + }; + + template + OrderedChannelHeap::OrderedChannelHeap() + { + } + + template + OrderedChannelHeap::~OrderedChannelHeap() + { + Clear(); + } + + template + void OrderedChannelHeap::Push(const channel_key_type &channelID, const heap_data_type &data) + { + PushAtHead(MAX_UNSIGNED_LONG, channelID, data); + } + + template + void OrderedChannelHeap::GreatestRandResult(void) + { + double greatest; + unsigned i; + greatest=0.0; + for (i=0; i < map.Size(); i++) + { + if (map[i]->randResultQueue.Size() && map[i]->randResultQueue[0]>greatest) + greatest=map[i]->randResultQueue[0]; + } + return greatest; + } + + template + void OrderedChannelHeap::PushAtHead(const unsigned index, const channel_key_type &channelID, const heap_data_type &data) + { + // If an assert hits here then this is an unknown channel. Call AddChannel first. + QueueAndWeight *queueAndWeight=map.Get(channelID); + double maxRange, minRange, rnd; + if (queueAndWeight->randResultQueue.Size()==0) + { + // Set maxRange to the greatest random number waiting to be returned, rather than 1.0 necessarily + // This is so weights are scaled similarly among channels. For example, if the head weight for a used channel was .25 + // and then we added another channel, the new channel would need to choose between .25 and 0 + // If we chose between 1.0 and 0, it would be 1/.25 (4x) more likely to be at the head of the heap than it should be + maxRange=GreatestRandResult(); + if (maxRange==0.0) + maxRange=1.0; + minRange=0.0; + } + else if (index >= queueAndWeight->randResultQueue.Size()) + { + maxRange=queueAndWeight->randResultQueue[queueAndWeight->randResultQueue.Size()-1]*.99999999; + minRange=0.0; + } + else + { + if (index==0) + { + maxRange=GreatestRandResult(); + if (maxRange==queueAndWeight->randResultQueue[0]) + maxRange=1.0; + } + else if (index >= queueAndWeight->randResultQueue.Size()) + maxRange=queueAndWeight->randResultQueue[queueAndWeight->randResultQueue.Size()-1]*.99999999; + else + maxRange=queueAndWeight->randResultQueue[index-1]*.99999999; + + minRange=maxRange=queueAndWeight->randResultQueue[index]*1.00000001; + } + +#ifdef _DEBUG + RakAssert(maxRange!=0.0); +#endif + rnd=frandomMT() * (maxRange - minRange); + if (rnd==0.0) + rnd=maxRange/2.0; + + if (index >= queueAndWeight->randResultQueue.Size()) + queueAndWeight->randResultQueue.Push(rnd); + else + queueAndWeight->randResultQueue.PushAtHead(rnd, index); + + heap.Push(rnd*queueAndWeight->weight, HeapChannelAndData(channelID, data)); + } + + template + heap_data_type OrderedChannelHeap::Pop(const unsigned startingIndex) + { + RakAssert(startingIndex < heap.Size()); + + QueueAndWeight *queueAndWeight=map.Get(heap[startingIndex].channel); + if (startingIndex!=0) + { + // Ugly - have to count in the heap how many nodes have the same channel, so we know where to delete from in the queue + unsigned indiceCount=0; + unsigned i; + for (i=0; i < startingIndex; i++) + if (channel_key_comparison_func(heap[i].channel,heap[startingIndex].channel)==0) + indiceCount++; + queueAndWeight->randResultQueue.RemoveAtIndex(indiceCount); + } + else + { + // TODO - ordered channel heap uses progressively lower values as items are inserted. But this won't give relative ordering among channels. I have to renormalize after every pop. + queueAndWeight->randResultQueue.Pop(); + } + + // Try to remove the channel after every pop, because doing so is not valid while there are elements in the list. + if (queueAndWeight->signalDeletion) + RemoveChannel(heap[startingIndex].channel); + + return heap.Pop(startingIndex).data; + } + + template + heap_data_type OrderedChannelHeap::Peek(const unsigned startingIndex) const + { + HeapChannelAndData heapChannelAndData = heap.Peek(startingIndex); + return heapChannelAndData.data; + } + + template + void OrderedChannelHeap::AddChannel(const channel_key_type &channelID, const double weight) + { + QueueAndWeight *qaw = RakNet::OP_NEW( _FILE_AND_LINE_ ); + qaw->weight=weight; + qaw->signalDeletion=false; + map.SetNew(channelID, qaw); + } + + template + void OrderedChannelHeap::RemoveChannel(channel_key_type channelID) + { + if (map.Has(channelID)) + { + unsigned i; + i=map.GetIndexAtKey(channelID); + if (map[i]->randResultQueue.Size()==0) + { + RakNet::OP_DELETE(map[i], _FILE_AND_LINE_); + map.RemoveAtIndex(i); + } + else + { + // Signal this channel for deletion later, because the heap has nodes with this channel right now + map[i]->signalDeletion=true; + } + } + } + + template + unsigned OrderedChannelHeap::Size(void) const + { + return heap.Size(); + } + + template + heap_data_type& OrderedChannelHeap::operator[]( const unsigned int position ) const + { + return heap[position].data; + } + + + template + unsigned OrderedChannelHeap::ChannelSize(const channel_key_type &channelID) + { + QueueAndWeight *queueAndWeight=map.Get(channelID); + return queueAndWeight->randResultQueue.Size(); + } + + template + void OrderedChannelHeap::Clear(void) + { + unsigned i; + for (i=0; i < map.Size(); i++) + RakNet::OP_DELETE(map[i], _FILE_AND_LINE_); + map.Clear(_FILE_AND_LINE_); + heap.Clear(_FILE_AND_LINE_); + } +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_OrderedList.h b/project/lib_projects/raknet/jni/RaknetSources/DS_OrderedList.h new file mode 100755 index 0000000..efbff60 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_OrderedList.h @@ -0,0 +1,263 @@ +/// \file DS_OrderedList.h +/// \internal +/// \brief Quicksort ordered list. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "DS_List.h" +#include "RakMemoryOverride.h" +#include "Export.h" + +#ifndef __ORDERED_LIST_H +#define __ORDERED_LIST_H + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + int defaultOrderedListComparison(const key_type &a, const data_type &b) + { + if (a > + class RAK_DLL_EXPORT OrderedList + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultOrderedListComparison(key_type(),data_type());} + + OrderedList(); + ~OrderedList(); + OrderedList( const OrderedList& original_copy ); + OrderedList& operator= ( const OrderedList& original_copy ); + + /// comparisonFunction must take a key_type and a data_type and return <0, ==0, or >0 + /// If the data type has comparison operators already defined then you can just use defaultComparison + bool HasData(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + // GetIndexFromKey returns where the insert should go at the same time checks if it is there + unsigned GetIndexFromKey(const key_type &key, bool *objectExists, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + data_type GetElementFromKey(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + bool GetElementFromKey(const key_type &key, data_type &element, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + unsigned Insert(const key_type &key, const data_type &data, bool assertOnDuplicate, const char *file, unsigned int line, int (*cf)(const key_type&, const data_type&)=default_comparison_function); + unsigned Remove(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function); + unsigned RemoveIfExists(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function); + data_type& operator[] ( const unsigned int position ) const; + void RemoveAtIndex(const unsigned index); + void InsertAtIndex(const data_type &data, const unsigned index, const char *file, unsigned int line); + void InsertAtEnd(const data_type &data, const char *file, unsigned int line); + void RemoveFromEnd(const unsigned num=1); + void Clear(bool doNotDeallocate, const char *file, unsigned int line); + unsigned Size(void) const; + + protected: + DataStructures::List orderedList; + }; + + template + OrderedList::OrderedList() + { + } + + template + OrderedList::~OrderedList() + { + Clear(false, _FILE_AND_LINE_); + } + + template + OrderedList::OrderedList( const OrderedList& original_copy ) + { + orderedList=original_copy.orderedList; + } + + template + OrderedList& OrderedList::operator= ( const OrderedList& original_copy ) + { + orderedList=original_copy.orderedList; + return *this; + } + + template + bool OrderedList::HasData(const key_type &key, int (*cf)(const key_type&, const data_type&)) const + { + bool objectExists; + GetIndexFromKey(key, &objectExists, cf); + return objectExists; + } + + template + data_type OrderedList::GetElementFromKey(const key_type &key, int (*cf)(const key_type&, const data_type&)) const + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + RakAssert(objectExists); + return orderedList[index]; + } + template + bool OrderedList::GetElementFromKey(const key_type &key, data_type &element, int (*cf)(const key_type&, const data_type&)) const + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + if (objectExists) + element = orderedList[index]; + return objectExists; + } + template + unsigned OrderedList::GetIndexFromKey(const key_type &key, bool *objectExists, int (*cf)(const key_type&, const data_type&)) const + { + int index, upperBound, lowerBound; + int res; + + if (orderedList.Size()==0) + { + *objectExists=false; + return 0; + } + + upperBound=(int)orderedList.Size()-1; + lowerBound=0; + index = (int)orderedList.Size()/2; + +#ifdef _MSC_VER + #pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + res = cf(key,orderedList[index]); + if (res==0) + { + *objectExists=true; + return index; + } + else if (res<0) + { + upperBound=index-1; + } + else// if (res>0) + { + lowerBound=index+1; + } + + index=lowerBound+(upperBound-lowerBound)/2; + + if (lowerBound>upperBound) + { + *objectExists=false; + return lowerBound; // No match + } + } + } + + template + unsigned OrderedList::Insert(const key_type &key, const data_type &data, bool assertOnDuplicate, const char *file, unsigned int line, int (*cf)(const key_type&, const data_type&)) + { + (void) assertOnDuplicate; + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + + // Don't allow duplicate insertion. + if (objectExists) + { + // This is usually a bug! + RakAssert(assertOnDuplicate==false); + return (unsigned)-1; + } + + if (index>=orderedList.Size()) + { + orderedList.Insert(data, file, line); + return orderedList.Size()-1; + } + else + { + orderedList.Insert(data,index, file, line); + return index; + } + } + + template + unsigned OrderedList::Remove(const key_type &key, int (*cf)(const key_type&, const data_type&)) + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + + // Can't find the element to remove if this assert hits + // RakAssert(objectExists==true); + if (objectExists==false) + { + RakAssert(objectExists==true); + return 0; + } + + orderedList.RemoveAtIndex(index); + return index; + } + + template + unsigned OrderedList::RemoveIfExists(const key_type &key, int (*cf)(const key_type&, const data_type&)) + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + + // Can't find the element to remove if this assert hits + if (objectExists==false) + return 0; + + orderedList.RemoveAtIndex(index); + return index; + } + + template + void OrderedList::RemoveAtIndex(const unsigned index) + { + orderedList.RemoveAtIndex(index); + } + + template + void OrderedList::InsertAtIndex(const data_type &data, const unsigned index, const char *file, unsigned int line) + { + orderedList.Insert(data, index, file, line); + } + + template + void OrderedList::InsertAtEnd(const data_type &data, const char *file, unsigned int line) + { + orderedList.Insert(data, file, line); + } + + template + void OrderedList::RemoveFromEnd(const unsigned num) + { + orderedList.RemoveFromEnd(num); + } + + template + void OrderedList::Clear(bool doNotDeallocate, const char *file, unsigned int line) + { + orderedList.Clear(doNotDeallocate, file, line); + } + + template + data_type& OrderedList::operator[]( const unsigned int position ) const + { + return orderedList[position]; + } + + template + unsigned OrderedList::Size(void) const + { + return orderedList.Size(); + } +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Queue.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Queue.h new file mode 100755 index 0000000..6fd0004 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Queue.h @@ -0,0 +1,435 @@ +/// \file DS_Queue.h +/// \internal +/// \brief A queue used by RakNet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __QUEUE_H +#define __QUEUE_H + +// Template classes have to have all the code in the header file +#include "RakAssert.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief A queue implemented as an array with a read and write index. + template + class RAK_DLL_EXPORT Queue + { + public: + Queue(); + ~Queue(); + Queue( Queue& original_copy ); + bool operator= ( const Queue& original_copy ); + void Push( const queue_type& input, const char *file, unsigned int line ); + void PushAtHead( const queue_type& input, unsigned index, const char *file, unsigned int line ); + queue_type& operator[] ( unsigned int position ) const; // Not a normal thing you do with a queue but can be used for efficiency + void RemoveAtIndex( unsigned int position ); // Not a normal thing you do with a queue but can be used for efficiency + inline queue_type Peek( void ) const; + inline queue_type PeekTail( void ) const; + inline queue_type Pop( void ); + // Debug: Set pointer to 0, for memory leak detection + inline queue_type PopDeref( void ); + inline unsigned int Size( void ) const; + inline bool IsEmpty(void) const; + inline unsigned int AllocationSize( void ) const; + inline void Clear( const char *file, unsigned int line ); + void Compress( const char *file, unsigned int line ); + bool Find ( queue_type q ); + void ClearAndForceAllocation( int size, const char *file, unsigned int line ); // Force a memory allocation to a certain larger size + + private: + queue_type* array; + unsigned int head; // Array index for the head of the queue + unsigned int tail; // Array index for the tail of the queue + unsigned int allocation_size; + }; + + + template + inline unsigned int Queue::Size( void ) const + { + if ( head <= tail ) + return tail -head; + else + return allocation_size -head + tail; + } + + template + inline bool Queue::IsEmpty(void) const + { + return head==tail; + } + + template + inline unsigned int Queue::AllocationSize( void ) const + { + return allocation_size; + } + + template + Queue::Queue() + { + //allocation_size = 16; + //array = RakNet::OP_NEW_ARRAY(allocation_size, _FILE_AND_LINE_ ); + allocation_size = 0; + array=0; + head = 0; + tail = 0; + } + + template + Queue::~Queue() + { + if (allocation_size>0) + RakNet::OP_DELETE_ARRAY(array, _FILE_AND_LINE_); + } + + template + inline queue_type Queue::Pop( void ) + { +#ifdef _DEBUG + RakAssert( head != tail); +#endif + //head=(head+1) % allocation_size; + + if ( ++head == allocation_size ) + head = 0; + + if ( head == 0 ) + return ( queue_type ) array[ allocation_size -1 ]; + + return ( queue_type ) array[ head -1 ]; + } + + template + inline queue_type Queue::PopDeref( void ) + { + if ( ++head == allocation_size ) + head = 0; + + queue_type q; + if ( head == 0 ) + { + q=array[ allocation_size -1 ]; + array[ allocation_size -1 ]=0; + return q; + } + + q=array[ head -1 ]; + array[ head -1 ]=0; + return q; + } + + template + void Queue::PushAtHead( const queue_type& input, unsigned index, const char *file, unsigned int line ) + { + RakAssert(index <= Size()); + + // Just force a reallocation, will be overwritten + Push(input, file, line ); + + if (Size()==1) + return; + + unsigned writeIndex, readIndex, trueWriteIndex, trueReadIndex; + writeIndex=Size()-1; + readIndex=writeIndex-1; + while (readIndex >= index) + { + if ( head + writeIndex >= allocation_size ) + trueWriteIndex = head + writeIndex - allocation_size; + else + trueWriteIndex = head + writeIndex; + + if ( head + readIndex >= allocation_size ) + trueReadIndex = head + readIndex - allocation_size; + else + trueReadIndex = head + readIndex; + + array[trueWriteIndex]=array[trueReadIndex]; + + if (readIndex==0) + break; + writeIndex--; + readIndex--; + } + + if ( head + index >= allocation_size ) + trueWriteIndex = head + index - allocation_size; + else + trueWriteIndex = head + index; + + array[trueWriteIndex]=input; + } + + + template + inline queue_type Queue::Peek( void ) const + { +#ifdef _DEBUG + RakAssert( head != tail ); +#endif + + return ( queue_type ) array[ head ]; + } + + template + inline queue_type Queue::PeekTail( void ) const + { +#ifdef _DEBUG + RakAssert( head != tail ); +#endif + if (tail!=0) + return ( queue_type ) array[ tail-1 ]; + else + return ( queue_type ) array[ allocation_size-1 ]; + } + + template + void Queue::Push( const queue_type& input, const char *file, unsigned int line ) + { + if ( allocation_size == 0 ) + { + array = RakNet::OP_NEW_ARRAY(16, file, line ); + head = 0; + tail = 1; + array[ 0 ] = input; + allocation_size = 16; + return ; + } + + array[ tail++ ] = input; + + if ( tail == allocation_size ) + tail = 0; + + if ( tail == head ) + { + // unsigned int index=tail; + + // Need to allocate more memory. + queue_type * new_array; + new_array = RakNet::OP_NEW_ARRAY(allocation_size * 2, file, line ); +#ifdef _DEBUG + RakAssert( new_array ); +#endif + if (new_array==0) + return; + + for ( unsigned int counter = 0; counter < allocation_size; ++counter ) + new_array[ counter ] = array[ ( head + counter ) % ( allocation_size ) ]; + + head = 0; + + tail = allocation_size; + + allocation_size *= 2; + + // Delete the old array and move the pointer to the new array + RakNet::OP_DELETE_ARRAY(array, file, line); + + array = new_array; + } + + } + + template + Queue::Queue( Queue& original_copy ) + { + // Allocate memory for copy + + if ( original_copy.Size() == 0 ) + { + allocation_size = 0; + } + + else + { + array = RakNet::OP_NEW_ARRAY( original_copy.Size() + 1 , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.Size(); ++counter ) + array[ counter ] = original_copy.array[ ( original_copy.head + counter ) % ( original_copy.allocation_size ) ]; + + head = 0; + + tail = original_copy.Size(); + + allocation_size = original_copy.Size() + 1; + } + } + + template + bool Queue::operator= ( const Queue& original_copy ) + { + if ( ( &original_copy ) == this ) + return false; + + Clear(_FILE_AND_LINE_); + + // Allocate memory for copy + if ( original_copy.Size() == 0 ) + { + allocation_size = 0; + } + + else + { + array = RakNet::OP_NEW_ARRAY( original_copy.Size() + 1 , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.Size(); ++counter ) + array[ counter ] = original_copy.array[ ( original_copy.head + counter ) % ( original_copy.allocation_size ) ]; + + head = 0; + + tail = original_copy.Size(); + + allocation_size = original_copy.Size() + 1; + } + + return true; + } + + template + inline void Queue::Clear ( const char *file, unsigned int line ) + { + if ( allocation_size == 0 ) + return ; + + if (allocation_size > 32) + { + RakNet::OP_DELETE_ARRAY(array, file, line); + allocation_size = 0; + } + + head = 0; + tail = 0; + } + + template + void Queue::Compress ( const char *file, unsigned int line ) + { + queue_type* new_array; + unsigned int newAllocationSize; + if (allocation_size==0) + return; + + newAllocationSize=1; + while (newAllocationSize <= Size()) + newAllocationSize<<=1; // Must be a better way to do this but I'm too dumb to figure it out quickly :) + + new_array = RakNet::OP_NEW_ARRAY(newAllocationSize, file, line ); + + for (unsigned int counter=0; counter < Size(); ++counter) + new_array[counter] = array[(head + counter)%(allocation_size)]; + + tail=Size(); + allocation_size=newAllocationSize; + head=0; + + // Delete the old array and move the pointer to the new array + RakNet::OP_DELETE_ARRAY(array, file, line); + array=new_array; + } + + template + bool Queue::Find ( queue_type q ) + { + if ( allocation_size == 0 ) + return false; + + unsigned int counter = head; + + while ( counter != tail ) + { + if ( array[ counter ] == q ) + return true; + + counter = ( counter + 1 ) % allocation_size; + } + + return false; + } + + template + void Queue::ClearAndForceAllocation( int size, const char *file, unsigned int line ) + { + RakNet::OP_DELETE_ARRAY(array, file, line); + if (size>0) + array = RakNet::OP_NEW_ARRAY(size, file, line ); + else + array=0; + allocation_size = size; + head = 0; + tail = 0; + } + + template + inline queue_type& Queue::operator[] ( unsigned int position ) const + { +#ifdef _DEBUG + RakAssert( position < Size() ); +#endif + //return array[(head + position) % allocation_size]; + + if ( head + position >= allocation_size ) + return array[ head + position - allocation_size ]; + else + return array[ head + position ]; + } + + template + void Queue::RemoveAtIndex( unsigned int position ) + { +#ifdef _DEBUG + RakAssert( position < Size() ); + RakAssert( head != tail ); +#endif + + if ( head == tail || position >= Size() ) + return ; + + unsigned int index; + + unsigned int next; + + //index = (head + position) % allocation_size; + if ( head + position >= allocation_size ) + index = head + position - allocation_size; + else + index = head + position; + + //next = (index + 1) % allocation_size; + next = index + 1; + + if ( next == allocation_size ) + next = 0; + + while ( next != tail ) + { + // Overwrite the previous element + array[ index ] = array[ next ]; + index = next; + //next = (next + 1) % allocation_size; + + if ( ++next == allocation_size ) + next = 0; + } + + // Move the tail back + if ( tail == 0 ) + tail = allocation_size - 1; + else + --tail; + } +} // End namespace + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_QueueLinkedList.h b/project/lib_projects/raknet/jni/RaknetSources/DS_QueueLinkedList.h new file mode 100755 index 0000000..0e1d234 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_QueueLinkedList.h @@ -0,0 +1,103 @@ +/// \file DS_QueueLinkedList.h +/// \internal +/// \brief A queue implemented as a linked list. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __QUEUE_LINKED_LIST_H +#define __QUEUE_LINKED_LIST_H + +#include "DS_LinkedList.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief A queue implemented using a linked list. Rarely used. + template + class RAK_DLL_EXPORT QueueLinkedList + { + + public: + QueueLinkedList(); + QueueLinkedList( const QueueLinkedList& original_copy ); + bool operator= ( const QueueLinkedList& original_copy ); + QueueType Pop( void ); + QueueType& Peek( void ); + QueueType& EndPeek( void ); + void Push( const QueueType& input ); + unsigned int Size( void ); + void Clear( void ); + void Compress( void ); + + private: + LinkedList data; + }; + + template + QueueLinkedList::QueueLinkedList() + { + } + + template + inline unsigned int QueueLinkedList::Size() + { + return data.Size(); + } + + template + inline QueueType QueueLinkedList::Pop( void ) + { + data.Beginning(); + return ( QueueType ) data.Pop(); + } + + template + inline QueueType& QueueLinkedList::Peek( void ) + { + data.Beginning(); + return ( QueueType ) data.Peek(); + } + + template + inline QueueType& QueueLinkedList::EndPeek( void ) + { + data.End(); + return ( QueueType ) data.Peek(); + } + + template + void QueueLinkedList::Push( const QueueType& input ) + { + data.End(); + data.Add( input ); + } + + template + QueueLinkedList::QueueLinkedList( const QueueLinkedList& original_copy ) + { + data = original_copy.data; + } + + template + bool QueueLinkedList::operator= ( const QueueLinkedList& original_copy ) + { + if ( ( &original_copy ) == this ) + return false; + + data = original_copy.data; + } + + template + void QueueLinkedList::Clear ( void ) + { + data.Clear(); + } +} // End namespace + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_RangeList.h b/project/lib_projects/raknet/jni/RaknetSources/DS_RangeList.h new file mode 100755 index 0000000..b40b859 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_RangeList.h @@ -0,0 +1,236 @@ +/// \file DS_RangeList.h +/// \internal +/// \brief A queue implemented as a linked list. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RANGE_LIST_H +#define __RANGE_LIST_H + +#include "DS_OrderedList.h" +#include "BitStream.h" +#include "RakMemoryOverride.h" +#include "RakAssert.h" + +namespace DataStructures +{ + template + struct RangeNode + { + RangeNode() {} + ~RangeNode() {} + RangeNode(range_type min, range_type max) {minIndex=min; maxIndex=max;} + range_type minIndex; + range_type maxIndex; + }; + + + template + int RangeNodeComp(const range_type &a, const RangeNode &b) + { + if (a + class RAK_DLL_EXPORT RangeList + { + public: + RangeList(); + ~RangeList(); + void Insert(range_type index); + void Clear(void); + unsigned Size(void) const; + unsigned RangeSum(void) const; + RakNet::BitSize_t Serialize(RakNet::BitStream *in, RakNet::BitSize_t maxBits, bool clearSerialized); + bool Deserialize(RakNet::BitStream *out); + + DataStructures::OrderedList , RangeNodeComp > ranges; + }; + + template + RakNet::BitSize_t RangeList::Serialize(RakNet::BitStream *in, RakNet::BitSize_t maxBits, bool clearSerialized) + { + RakAssert(ranges.Size() < (unsigned short)-1); + RakNet::BitStream tempBS; + RakNet::BitSize_t bitsWritten; + unsigned short countWritten; + unsigned i; + countWritten=0; + bitsWritten=0; + for (i=0; i < ranges.Size(); i++) + { + if ((int)sizeof(unsigned short)*8+bitsWritten+(int)sizeof(range_type)*8*2+1>maxBits) + break; + unsigned char minEqualsMax; + if (ranges[i].minIndex==ranges[i].maxIndex) + minEqualsMax=1; + else + minEqualsMax=0; + tempBS.Write(minEqualsMax); // Use one byte, intead of one bit, for speed, as this is done a lot + tempBS.Write(ranges[i].minIndex); + bitsWritten+=sizeof(range_type)*8+8; + if (ranges[i].minIndex!=ranges[i].maxIndex) + { + tempBS.Write(ranges[i].maxIndex); + bitsWritten+=sizeof(range_type)*8; + } + countWritten++; + } + + in->AlignWriteToByteBoundary(); + RakNet::BitSize_t before=in->GetWriteOffset(); + in->Write(countWritten); + bitsWritten+=in->GetWriteOffset()-before; + // RAKNET_DEBUG_PRINTF("%i ", in->GetNumberOfBitsUsed()); + in->Write(&tempBS, tempBS.GetNumberOfBitsUsed()); + // RAKNET_DEBUG_PRINTF("%i %i \n", tempBS.GetNumberOfBitsUsed(),in->GetNumberOfBitsUsed()); + + if (clearSerialized && countWritten) + { + unsigned rangeSize=ranges.Size(); + for (i=0; i < rangeSize-countWritten; i++) + { + ranges[i]=ranges[i+countWritten]; + } + ranges.RemoveFromEnd(countWritten); + } + + return bitsWritten; + } + template + bool RangeList::Deserialize(RakNet::BitStream *out) + { + ranges.Clear(true, _FILE_AND_LINE_); + unsigned short count; + out->AlignReadToByteBoundary(); + out->Read(count); + unsigned short i; + range_type min,max; + unsigned char maxEqualToMin=0; + + for (i=0; i < count; i++) + { + out->Read(maxEqualToMin); + if (out->Read(min)==false) + return false; + if (maxEqualToMin==false) + { + if (out->Read(max)==false) + return false; + if (max(min,max), _FILE_AND_LINE_); + } + return true; + } + + template + RangeList::RangeList() + { + RangeNodeComp(0, RangeNode()); + } + + template + RangeList::~RangeList() + { + Clear(); + } + + template + void RangeList::Insert(range_type index) + { + if (ranges.Size()==0) + { + ranges.Insert(index, RangeNode(index, index), true, _FILE_AND_LINE_); + return; + } + + bool objectExists; + unsigned insertionIndex=ranges.GetIndexFromKey(index, &objectExists); + if (insertionIndex==ranges.Size()) + { + if (index == ranges[insertionIndex-1].maxIndex+(range_type)1) + ranges[insertionIndex-1].maxIndex++; + else if (index > ranges[insertionIndex-1].maxIndex+(range_type)1) + { + // Insert at end + ranges.Insert(index, RangeNode(index, index), true, _FILE_AND_LINE_); + } + + return; + } + + if (index < ranges[insertionIndex].minIndex-(range_type)1) + { + // Insert here + ranges.InsertAtIndex(RangeNode(index, index), insertionIndex, _FILE_AND_LINE_); + + return; + } + else if (index == ranges[insertionIndex].minIndex-(range_type)1) + { + // Decrease minIndex and join left + ranges[insertionIndex].minIndex--; + if (insertionIndex>0 && ranges[insertionIndex-1].maxIndex+(range_type)1==ranges[insertionIndex].minIndex) + { + ranges[insertionIndex-1].maxIndex=ranges[insertionIndex].maxIndex; + ranges.RemoveAtIndex(insertionIndex); + } + + return; + } + else if (index >= ranges[insertionIndex].minIndex && index <= ranges[insertionIndex].maxIndex) + { + // Already exists + return; + } + else if (index == ranges[insertionIndex].maxIndex+(range_type)1) + { + // Increase maxIndex and join right + ranges[insertionIndex].maxIndex++; + if (insertionIndex + void RangeList::Clear(void) + { + ranges.Clear(true, _FILE_AND_LINE_); + } + + template + unsigned RangeList::Size(void) const + { + return ranges.Size(); + } + + template + unsigned RangeList::RangeSum(void) const + { + unsigned sum=0,i; + for (i=0; i < ranges.Size(); i++) + sum+=ranges[i].maxIndex-ranges[i].minIndex+1; + return sum; + } + +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Table.cpp b/project/lib_projects/raknet/jni/RaknetSources/DS_Table.cpp new file mode 100755 index 0000000..281a60f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Table.cpp @@ -0,0 +1,1118 @@ +#include "DS_Table.h" +#include "DS_OrderedList.h" +#include +#include "RakAssert.h" +#include "RakAssert.h" +#include "Itoa.h" + +using namespace DataStructures; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +void ExtendRows(Table::Row* input, int index) +{ + (void) index; + input->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_ ); +} +void FreeRow(Table::Row* input, int index) +{ + (void) index; + + unsigned i; + for (i=0; i < input->cells.Size(); i++) + { + RakNet::OP_DELETE(input->cells[i], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(input, _FILE_AND_LINE_); +} +Table::Cell::Cell() +{ + isEmpty=true; + c=0; + ptr=0; + i=0.0; +} +Table::Cell::~Cell() +{ + Clear(); +} +Table::Cell& Table::Cell::operator = ( const Table::Cell& input ) +{ + isEmpty=input.isEmpty; + i=input.i; + ptr=input.ptr; + if (c) + rakFree_Ex(c, _FILE_AND_LINE_); + if (input.c) + { + c = (char*) rakMalloc_Ex( (int) i, _FILE_AND_LINE_ ); + memcpy(c, input.c, (int) i); + } + else + c=0; + return *this; +} +Table::Cell::Cell( const Table::Cell & input) +{ + isEmpty=input.isEmpty; + i=input.i; + ptr=input.ptr; + if (input.c) + { + if (c) + rakFree_Ex(c, _FILE_AND_LINE_); + c = (char*) rakMalloc_Ex( (int) i, _FILE_AND_LINE_ ); + memcpy(c, input.c, (int) i); + } +} +void Table::Cell::Set(double input) +{ + Clear(); + i=input; + c=0; + ptr=0; + isEmpty=false; +} +void Table::Cell::Set(unsigned int input) +{ + Set((int) input); +} +void Table::Cell::Set(int input) +{ + Clear(); + i=(double) input; + c=0; + ptr=0; + isEmpty=false; +} + +void Table::Cell::Set(const char *input) +{ + Clear(); + + if (input) + { + i=(int)strlen(input)+1; + c = (char*) rakMalloc_Ex( (int) i, _FILE_AND_LINE_ ); + strcpy(c, input); + } + else + { + c=0; + i=0; + } + ptr=0; + isEmpty=false; +} +void Table::Cell::Set(const char *input, int inputLength) +{ + Clear(); + if (input) + { + c = (char*) rakMalloc_Ex( inputLength, _FILE_AND_LINE_ ); + i=inputLength; + memcpy(c, input, inputLength); + } + else + { + c=0; + i=0; + } + ptr=0; + isEmpty=false; +} +void Table::Cell::SetPtr(void* p) +{ + Clear(); + c=0; + ptr=p; + isEmpty=false; +} +void Table::Cell::Get(int *output) +{ + RakAssert(isEmpty==false); + int o = (int) i; + *output=o; +} +void Table::Cell::Get(double *output) +{ + RakAssert(isEmpty==false); + *output=i; +} +void Table::Cell::Get(char *output) +{ + RakAssert(isEmpty==false); + strcpy(output, c); +} +void Table::Cell::Get(char *output, int *outputLength) +{ + RakAssert(isEmpty==false); + memcpy(output, c, (int) i); + if (outputLength) + *outputLength=(int) i; +} +RakNet::RakString Table::Cell::ToString(ColumnType columnType) +{ + if (isEmpty) + return RakNet::RakString(); + + if (columnType==NUMERIC) + { + return RakNet::RakString("%f", i); + } + else if (columnType==STRING) + { + return RakNet::RakString(c); + } + else if (columnType==BINARY) + { + return RakNet::RakString(""); + } + else if (columnType==POINTER) + { + return RakNet::RakString("%p", ptr); + } + + return RakNet::RakString(); +} +Table::Cell::Cell(double numericValue, char *charValue, void *ptr, ColumnType type) +{ + SetByType(numericValue,charValue,ptr,type); +} +void Table::Cell::SetByType(double numericValue, char *charValue, void *ptr, ColumnType type) +{ + isEmpty=true; + if (type==NUMERIC) + { + Set(numericValue); + } + else if (type==STRING) + { + Set(charValue); + } + else if (type==BINARY) + { + Set(charValue, (int) numericValue); + } + else if (type==POINTER) + { + SetPtr(ptr); + } + else + { + ptr=(void*) charValue; + } +} +Table::ColumnType Table::Cell::EstimateColumnType(void) const +{ + if (c) + if (i!=0.0f) + return BINARY; + else + return STRING; + if (ptr) + return POINTER; + return NUMERIC; +} +void Table::Cell::Clear(void) +{ + if (isEmpty==false && c) + { + rakFree_Ex(c, _FILE_AND_LINE_); + c=0; + } + isEmpty=true; +} +Table::ColumnDescriptor::ColumnDescriptor() +{ + +} +Table::ColumnDescriptor::~ColumnDescriptor() +{ + +} +Table::ColumnDescriptor::ColumnDescriptor(const char cn[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType ct) +{ + columnType=ct; + strcpy(columnName, cn); +} +void Table::Row::UpdateCell(unsigned columnIndex, double value) +{ + cells[columnIndex]->Clear(); + cells[columnIndex]->Set(value); + +// cells[columnIndex]->i=value; +// cells[columnIndex]->c=0; +// cells[columnIndex]->isEmpty=false; +} +void Table::Row::UpdateCell(unsigned columnIndex, const char *str) +{ + cells[columnIndex]->Clear(); + cells[columnIndex]->Set(str); +} +void Table::Row::UpdateCell(unsigned columnIndex, int byteLength, const char *data) +{ + cells[columnIndex]->Clear(); + cells[columnIndex]->Set(data,byteLength); +} +Table::Table() +{ +} +Table::~Table() +{ + Clear(); +} +unsigned Table::AddColumn(const char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType columnType) +{ + if (columnName[0]==0) + return (unsigned) -1; + + // Add this column. + columns.Insert(Table::ColumnDescriptor(columnName, columnType), _FILE_AND_LINE_); + + // Extend the rows by one + rows.ForEachData(ExtendRows); + + return columns.Size()-1; +} +void Table::RemoveColumn(unsigned columnIndex) +{ + if (columnIndex >= columns.Size()) + return; + + columns.RemoveAtIndex(columnIndex); + + // Remove this index from each row. + int i; + DataStructures::Page *cur = rows.GetListHead(); + while (cur) + { + for (i=0; i < cur->size; i++) + { + RakNet::OP_DELETE(cur->data[i]->cells[columnIndex], _FILE_AND_LINE_); + cur->data[i]->cells.RemoveAtIndex(columnIndex); + } + + cur=cur->next; + } +} +unsigned Table::ColumnIndex(const char *columnName) const +{ + unsigned columnIndex; + for (columnIndex=0; columnIndex= columns.Size()) + return 0; + else + return (char*)columns[index].columnName; +} +Table::ColumnType Table::GetColumnType(unsigned index) const +{ + if (index >= columns.Size()) + return (Table::ColumnType) 0; + else + return columns[index].columnType; +} +unsigned Table::GetColumnCount(void) const +{ + return columns.Size(); +} +unsigned Table::GetRowCount(void) const +{ + return rows.Size(); +} +Table::Row* Table::AddRow(unsigned rowId) +{ + Row *newRow; + newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + if (rows.Insert(rowId, newRow)==false) + { + RakNet::OP_DELETE(newRow, _FILE_AND_LINE_); + return 0; // Already exists + } + unsigned rowIndex; + for (rowIndex=0; rowIndex < columns.Size(); rowIndex++) + newRow->cells.Insert( RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_ ); + return newRow; +} +Table::Row* Table::AddRow(unsigned rowId, DataStructures::List &initialCellValues) +{ + Row *newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + unsigned rowIndex; + for (rowIndex=0; rowIndex < columns.Size(); rowIndex++) + { + if (rowIndex < initialCellValues.Size() && initialCellValues[rowIndex].isEmpty==false) + { + Table::Cell *c; + c = RakNet::OP_NEW(_FILE_AND_LINE_); + c->SetByType(initialCellValues[rowIndex].i,initialCellValues[rowIndex].c,initialCellValues[rowIndex].ptr,columns[rowIndex].columnType); + newRow->cells.Insert(c, _FILE_AND_LINE_ ); + } + else + newRow->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_ ); + } + rows.Insert(rowId, newRow); + return newRow; +} +Table::Row* Table::AddRow(unsigned rowId, DataStructures::List &initialCellValues, bool copyCells) +{ + Row *newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + unsigned rowIndex; + for (rowIndex=0; rowIndex < columns.Size(); rowIndex++) + { + if (rowIndex < initialCellValues.Size() && initialCellValues[rowIndex] && initialCellValues[rowIndex]->isEmpty==false) + { + if (copyCells==false) + newRow->cells.Insert(RakNet::OP_NEW_4( _FILE_AND_LINE_, initialCellValues[rowIndex]->i, initialCellValues[rowIndex]->c, initialCellValues[rowIndex]->ptr, columns[rowIndex].columnType), _FILE_AND_LINE_); + else + { + Table::Cell *c = RakNet::OP_NEW( _FILE_AND_LINE_ ); + newRow->cells.Insert(c, _FILE_AND_LINE_); + *c=*(initialCellValues[rowIndex]); + } + } + else + newRow->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_); + } + rows.Insert(rowId, newRow); + return newRow; +} +Table::Row* Table::AddRowColumns(unsigned rowId, Row *row, DataStructures::List columnIndices) +{ + Row *newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + unsigned columnIndex; + for (columnIndex=0; columnIndex < columnIndices.Size(); columnIndex++) + { + if (row->cells[columnIndices[columnIndex]]->isEmpty==false) + { + newRow->cells.Insert(RakNet::OP_NEW_4( _FILE_AND_LINE_, + row->cells[columnIndices[columnIndex]]->i, + row->cells[columnIndices[columnIndex]]->c, + row->cells[columnIndices[columnIndex]]->ptr, + columns[columnIndex].columnType + ), _FILE_AND_LINE_); + } + else + { + newRow->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_); + } + } + rows.Insert(rowId, newRow); + return newRow; +} +bool Table::RemoveRow(unsigned rowId) +{ + Row *out; + if (rows.Delete(rowId, out)) + { + DeleteRow(out); + return true; + } + return false; +} +void Table::RemoveRows(Table *tableContainingRowIDs) +{ + unsigned i; + DataStructures::Page *cur = tableContainingRowIDs->GetRows().GetListHead(); + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + rows.Delete(cur->keys[i]); + } + cur=cur->next; + } + return; +} +bool Table::UpdateCell(unsigned rowId, unsigned columnIndex, int value) +{ + RakAssert(columns[columnIndex].columnType==NUMERIC); + + Row *row = GetRowByID(rowId); + if (row) + { + row->UpdateCell(columnIndex, value); + return true; + } + return false; +} +bool Table::UpdateCell(unsigned rowId, unsigned columnIndex, char *str) +{ + RakAssert(columns[columnIndex].columnType==STRING); + + Row *row = GetRowByID(rowId); + if (row) + { + row->UpdateCell(columnIndex, str); + return true; + } + return false; +} +bool Table::UpdateCell(unsigned rowId, unsigned columnIndex, int byteLength, char *data) +{ + RakAssert(columns[columnIndex].columnType==BINARY); + + Row *row = GetRowByID(rowId); + if (row) + { + row->UpdateCell(columnIndex, byteLength, data); + return true; + } + return false; +} +bool Table::UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int value) +{ + RakAssert(columns[columnIndex].columnType==NUMERIC); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->UpdateCell(columnIndex, value); + return true; + } + return false; +} +bool Table::UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, char *str) +{ + RakAssert(columns[columnIndex].columnType==STRING); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->UpdateCell(columnIndex, str); + return true; + } + return false; +} +bool Table::UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int byteLength, char *data) +{ + RakAssert(columns[columnIndex].columnType==BINARY); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->UpdateCell(columnIndex, byteLength, data); + return true; + } + return false; +} +void Table::GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, int *output) +{ + RakAssert(columns[columnIndex].columnType==NUMERIC); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->cells[columnIndex]->Get(output); + } +} +void Table::GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output) +{ + RakAssert(columns[columnIndex].columnType==STRING); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->cells[columnIndex]->Get(output); + } +} +void Table::GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output, int *outputLength) +{ + RakAssert(columns[columnIndex].columnType==BINARY); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->cells[columnIndex]->Get(output, outputLength); + } +} +Table::FilterQuery::FilterQuery() +{ + columnName[0]=0; +} +Table::FilterQuery::~FilterQuery() +{ + +} +Table::FilterQuery::FilterQuery(unsigned column, Cell *cell, FilterQueryType op) +{ + columnIndex=column; + cellValue=cell; + operation=op; +} +Table::Row* Table::GetRowByID(unsigned rowId) const +{ + Row *row; + if (rows.Get(rowId, row)) + return row; + return 0; +} + +Table::Row* Table::GetRowByIndex(unsigned rowIndex, unsigned *key) const +{ + DataStructures::Page *cur = rows.GetListHead(); + while (cur) + { + if (rowIndex < (unsigned)cur->size) + { + if (key) + *key=cur->keys[rowIndex]; + return cur->data[rowIndex]; + } + if (rowIndex <= (unsigned)cur->size) + rowIndex-=cur->size; + else + return 0; + cur=cur->next; + } + return 0; +} + +void Table::QueryTable(unsigned *columnIndicesSubset, unsigned numColumnSubset, FilterQuery *inclusionFilters, unsigned numInclusionFilters, unsigned *rowIds, unsigned numRowIDs, Table *result) +{ + unsigned i; + DataStructures::List columnIndicesToReturn; + + // Clear the result table. + result->Clear(); + + if (columnIndicesSubset && numColumnSubset>0) + { + for (i=0; i < numColumnSubset; i++) + { + if (columnIndicesSubset[i]AddColumn(columns[columnIndicesToReturn[i]].columnName,columns[columnIndicesToReturn[i]].columnType); + } + + // Get the column indices of the filter queries. + DataStructures::List inclusionFilterColumnIndices; + if (inclusionFilters && numInclusionFilters>0) + { + for (i=0; i < numInclusionFilters; i++) + { + if (inclusionFilters[i].columnName[0]) + inclusionFilters[i].columnIndex=ColumnIndex(inclusionFilters[i].columnName); + if (inclusionFilters[i].columnIndex *cur = rows.GetListHead(); + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + QueryRow(inclusionFilterColumnIndices, columnIndicesToReturn, cur->keys[i], cur->data[i], inclusionFilters, result); + } + cur=cur->next; + } + } + else + { + // Specific rows + Row *row; + for (i=0; i < numRowIDs; i++) + { + if (rows.Get(rowIds[i], row)) + { + QueryRow(inclusionFilterColumnIndices, columnIndicesToReturn, rowIds[i], row, inclusionFilters, result); + } + } + } +} + +void Table::QueryRow(DataStructures::List &inclusionFilterColumnIndices, DataStructures::List &columnIndicesToReturn, unsigned key, Table::Row* row, FilterQuery *inclusionFilters, Table *result) +{ + bool pass=false; + unsigned columnIndex; + unsigned j; + + // If no inclusion filters, just add the row + if (inclusionFilterColumnIndices.Size()==0) + { + result->AddRowColumns(key, row, columnIndicesToReturn); + } + else + { + // Go through all inclusion filters. Only add this row if all filters pass. + for (j=0; jcells[columnIndex]->isEmpty==false ) + { + if (columns[inclusionFilterColumnIndices[j]].columnType==STRING && + (row->cells[columnIndex]->c==0 || + inclusionFilters[j].cellValue->c==0) ) + continue; + + switch (inclusionFilters[j].operation) + { + case QF_EQUAL: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i==inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)==0; + break; + case BINARY: + pass=row->cells[columnIndex]->i==inclusionFilters[j].cellValue->i && + memcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c, (int) row->cells[columnIndex]->i)==0; + break; + case POINTER: + pass=row->cells[columnIndex]->ptr==inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_NOT_EQUAL: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i!=inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)!=0; + break; + case BINARY: + pass=row->cells[columnIndex]->i==inclusionFilters[j].cellValue->i && + memcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c, (int) row->cells[columnIndex]->i)==0; + break; + case POINTER: + pass=row->cells[columnIndex]->ptr!=inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_GREATER_THAN: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i>inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)>0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptr>inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_GREATER_THAN_EQ: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i>=inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)>=0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptr>=inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_LESS_THAN: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->ii; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)<0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptrptr; + break; + } + break; + case QF_LESS_THAN_EQ: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i<=inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)<=0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptr<=inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_IS_EMPTY: + pass=false; + break; + case QF_NOT_EMPTY: + pass=true; + break; + default: + pass=false; + RakAssert(0); + break; + } + } + else + { + if (inclusionFilters[j].operation==QF_IS_EMPTY) + pass=true; + else + pass=false; // No value for this cell + } + + if (pass==false) + break; + } + + if (pass) + { + result->AddRowColumns(key, row, columnIndicesToReturn); + } + } +} + +static Table::SortQuery *_sortQueries; +static unsigned _numSortQueries; +static DataStructures::List *_columnIndices; +static DataStructures::List *_columns; +int RowSort(Table::Row* const &first, Table::Row* const &second) // first is the one inserting, second is the one already there. +{ + unsigned i, columnIndex; + for (i=0; i<_numSortQueries; i++) + { + columnIndex=(*_columnIndices)[i]; + if (columnIndex==(unsigned)-1) + continue; + + if (first->cells[columnIndex]->isEmpty==true && second->cells[columnIndex]->isEmpty==false) + return 1; // Empty cells always go at the end + + if (first->cells[columnIndex]->isEmpty==false && second->cells[columnIndex]->isEmpty==true) + return -1; // Empty cells always go at the end + + if (_sortQueries[i].operation==Table::QS_INCREASING_ORDER) + { + if ((*_columns)[columnIndex].columnType==Table::NUMERIC) + { + if (first->cells[columnIndex]->i>second->cells[columnIndex]->i) + return 1; + if (first->cells[columnIndex]->icells[columnIndex]->i) + return -1; + } + else + { + // String + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)>0) + return 1; + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)<0) + return -1; + } + } + else + { + if ((*_columns)[columnIndex].columnType==Table::NUMERIC) + { + if (first->cells[columnIndex]->icells[columnIndex]->i) + return 1; + if (first->cells[columnIndex]->i>second->cells[columnIndex]->i) + return -1; + } + else + { + // String + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)<0) + return 1; + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)>0) + return -1; + } + } + } + + return 0; +} +void Table::SortTable(Table::SortQuery *sortQueries, unsigned numSortQueries, Table::Row** out) +{ + unsigned i; + unsigned outLength; + DataStructures::List columnIndices; + _sortQueries=sortQueries; + _numSortQueries=numSortQueries; + _columnIndices=&columnIndices; + _columns=&columns; + bool anyValid=false; + + for (i=0; i < numSortQueries; i++) + { + if (sortQueries[i].columnIndex *cur; + cur = rows.GetListHead(); + if (anyValid==false) + { + outLength=0; + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + out[(outLength)++]=cur->data[i]; + } + cur=cur->next; + } + return; + } + + // Start adding to ordered list. + DataStructures::OrderedList orderedList; + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + RakAssert(cur->data[i]); + orderedList.Insert(cur->data[i],cur->data[i], true, _FILE_AND_LINE_); + } + cur=cur->next; + } + + outLength=0; + for (i=0; i < orderedList.Size(); i++) + out[(outLength)++]=orderedList[i]; +} +void Table::PrintColumnHeaders(char *out, int outLength, char columnDelineator) const +{ + if (outLength<=0) + return; + if (outLength==1) + { + *out=0; + return; + } + + unsigned i; + out[0]=0; + int len; + for (i=0; i < columns.Size(); i++) + { + if (i!=0) + { + len = (int) strlen(out); + if (len < outLength-1) + sprintf(out+len, "%c", columnDelineator); + else + return; + } + + len = (int) strlen(out); + if (len < outLength-(int) strlen(columns[i].columnName)) + sprintf(out+len, "%s", columns[i].columnName); + else + return; + } +} +void Table::PrintRow(char *out, int outLength, char columnDelineator, bool printDelineatorForBinary, Table::Row* inputRow) const +{ + if (outLength<=0) + return; + if (outLength==1) + { + *out=0; + return; + } + + if (inputRow->cells.Size()!=columns.Size()) + { + strncpy(out, "Cell width does not match column width.\n", outLength); + out[outLength-1]=0; + return; + } + + char buff[512]; + unsigned i; + int len; + out[0]=0; + for (i=0; i < columns.Size(); i++) + { + if (columns[i].columnType==NUMERIC) + { + if (inputRow->cells[i]->isEmpty==false) + { + sprintf(buff, "%f", inputRow->cells[i]->i); + len=(int)strlen(buff); + } + else + len=0; + if (i+1!=columns.Size()) + buff[len++]=columnDelineator; + buff[len]=0; + } + else if (columns[i].columnType==STRING) + { + if (inputRow->cells[i]->isEmpty==false && inputRow->cells[i]->c) + { + strncpy(buff, inputRow->cells[i]->c, 512-2); + buff[512-2]=0; + len=(int)strlen(buff); + } + else + len=0; + if (i+1!=columns.Size()) + buff[len++]=columnDelineator; + buff[len]=0; + } + else if (columns[i].columnType==POINTER) + { + if (inputRow->cells[i]->isEmpty==false && inputRow->cells[i]->ptr) + { + sprintf(buff, "%p", inputRow->cells[i]->ptr); + len=(int)strlen(buff); + } + else + len=0; + if (i+1!=columns.Size()) + buff[len++]=columnDelineator; + buff[len]=0; + } + else + { + if (printDelineatorForBinary) + { + if (i+1!=columns.Size()) + buff[0]=columnDelineator; + buff[1]=0; + } + else + buff[0]=0; + + } + + len=(int)strlen(out); + if (outLength==len+1) + break; + strncpy(out+len, buff, outLength-len); + out[outLength-1]=0; + } +} + +void Table::Clear(void) +{ + rows.ForEachData(FreeRow); + rows.Clear(); + columns.Clear(true, _FILE_AND_LINE_); +} +const List& Table::GetColumns(void) const +{ + return columns; +} +const DataStructures::BPlusTree& Table::GetRows(void) const +{ + return rows; +} +DataStructures::Page * Table::GetListHead(void) +{ + return rows.GetListHead(); +} +unsigned Table::GetAvailableRowId(void) const +{ + bool setKey=false; + unsigned key=0; + int i; + DataStructures::Page *cur = rows.GetListHead(); + + while (cur) + { + for (i=0; i < cur->size; i++) + { + if (setKey==false) + { + key=cur->keys[i]+1; + setKey=true; + } + else + { + if (key!=cur->keys[i]) + return key; + key++; + } + } + + cur=cur->next; + } + return key; +} +void Table::DeleteRow(Table::Row *row) +{ + unsigned rowIndex; + for (rowIndex=0; rowIndex < row->cells.Size(); rowIndex++) + { + RakNet::OP_DELETE(row->cells[rowIndex], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(row, _FILE_AND_LINE_); +} +Table& Table::operator = ( const Table& input ) +{ + Clear(); + + unsigned int i; + for (i=0; i < input.GetColumnCount(); i++) + AddColumn(input.ColumnName(i), input.GetColumnType(i)); + + DataStructures::Page *cur = input.GetRows().GetListHead(); + while (cur) + { + for (i=0; i < (unsigned int) cur->size; i++) + { + AddRow(cur->keys[i], cur->data[i]->cells, false); + } + + cur=cur->next; + } + + return *this; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Table.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Table.h new file mode 100755 index 0000000..56d08fb --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Table.h @@ -0,0 +1,343 @@ +/// \file DS_Table.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __TABLE_H +#define __TABLE_H + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +#include "DS_List.h" +#include "DS_BPlusTree.h" +#include "RakMemoryOverride.h" +#include "Export.h" +#include "RakString.h" + +#define _TABLE_BPLUS_TREE_ORDER 16 +#define _TABLE_MAX_COLUMN_NAME_LENGTH 64 + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + + /// \brief Holds a set of columns, a set of rows, and rows times columns cells. + /// \details The table data structure is useful if you want to store a set of structures and perform queries on those structures.
+ /// This is a relatively simple and fast implementation of the types of tables commonly used in databases.
+ /// See TableSerializer to serialize data members of the table.
+ /// See LightweightDatabaseClient and LightweightDatabaseServer to transmit the table over the network. + class RAK_DLL_EXPORT Table + { + public: + + enum ColumnType + { + // Cell::i used + NUMERIC, + + // Cell::c used to hold a null terminated string. + STRING, + + // Cell::c holds data. Cell::i holds data length of c in bytes. + BINARY, + + // Cell::c holds data. Not deallocated. Set manually by assigning ptr. + POINTER, + }; + + + /// Holds the actual data in the table + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT Cell + { + Cell(); + ~Cell(); + Cell(double numericValue, char *charValue, void *ptr, ColumnType type); + void SetByType(double numericValue, char *charValue, void *ptr, ColumnType type); + void Clear(void); + + /// Numeric + void Set(int input); + void Set(unsigned int input); + void Set(double input); + + /// String + void Set(const char *input); + + /// Binary + void Set(const char *input, int inputLength); + + /// Pointer + void SetPtr(void* p); + + /// Numeric + void Get(int *output); + void Get(double *output); + + /// String + void Get(char *output); + + /// Binary + void Get(char *output, int *outputLength); + + RakNet::RakString ToString(ColumnType columnType); + + // assignment operator and copy constructor + Cell& operator = ( const Cell& input ); + Cell( const Cell & input); + + ColumnType EstimateColumnType(void) const; + + bool isEmpty; + double i; + char *c; + void *ptr; + }; + + /// Stores the name and type of the column + /// \internal + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT ColumnDescriptor + { + ColumnDescriptor(); + ~ColumnDescriptor(); + ColumnDescriptor(const char cn[_TABLE_MAX_COLUMN_NAME_LENGTH],ColumnType ct); + + char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]; + ColumnType columnType; + }; + + /// Stores the list of cells for this row, and a special flag used for internal sorting + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT Row + { + // list of cells + DataStructures::List cells; + + /// Numeric + void UpdateCell(unsigned columnIndex, double value); + + /// String + void UpdateCell(unsigned columnIndex, const char *str); + + /// Binary + void UpdateCell(unsigned columnIndex, int byteLength, const char *data); + }; + + // Operations to perform for cell comparison + enum FilterQueryType + { + QF_EQUAL, + QF_NOT_EQUAL, + QF_GREATER_THAN, + QF_GREATER_THAN_EQ, + QF_LESS_THAN, + QF_LESS_THAN_EQ, + QF_IS_EMPTY, + QF_NOT_EMPTY, + }; + + // Compare the cell value for a row at columnName to the cellValue using operation. + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT FilterQuery + { + FilterQuery(); + ~FilterQuery(); + FilterQuery(unsigned column, Cell *cell, FilterQueryType op); + + // If columnName is specified, columnIndex will be looked up using it. + char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]; + unsigned columnIndex; + Cell *cellValue; + FilterQueryType operation; + }; + + /// Increasing or decreasing sort order + enum SortQueryType + { + QS_INCREASING_ORDER, + QS_DECREASING_ORDER, + }; + + // Sort on increasing or decreasing order for a particular column + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT SortQuery + { + /// The index of the table column we are sorting on + unsigned columnIndex; + + /// See SortQueryType + SortQueryType operation; + }; + + // Constructor + Table(); + + // Destructor + ~Table(); + + /// \brief Adds a column to the table + /// \param[in] columnName The name of the column + /// \param[in] columnType What type of data this column will hold + /// \return The index of the new column + unsigned AddColumn(const char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType columnType); + + /// \brief Removes a column by index + /// \param[in] columnIndex The index of the column to remove + void RemoveColumn(unsigned columnIndex); + + /// \brief Gets the index of a column by name + /// \details Column indices are stored in the order they are added. + /// \param[in] columnName The name of the column + /// \return The index of the column, or (unsigned)-1 if no such column + unsigned ColumnIndex(char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]) const; + unsigned ColumnIndex(const char *columnName) const; + + /// \brief Gives the string name of the column at a certain index + /// \param[in] index The index of the column + /// \return The name of the column, or 0 if an invalid index + char* ColumnName(unsigned index) const; + + /// \brief Returns the type of a column, referenced by index + /// \param[in] index The index of the column + /// \return The type of the column + ColumnType GetColumnType(unsigned index) const; + + /// Returns the number of columns + /// \return The number of columns in the table + unsigned GetColumnCount(void) const; + + /// Returns the number of rows + /// \return The number of rows in the table + unsigned GetRowCount(void) const; + + /// \brief Adds a row to the table + /// \details New rows are added with empty values for all cells. However, if you specify initialCelLValues you can specify initial values + /// It's up to you to ensure that the values in the specific cells match the type of data used by that row + /// rowId can be considered the primary key for the row. It is much faster to lookup a row by its rowId than by searching keys. + /// rowId must be unique + /// Rows are stored in sorted order in the table, using rowId as the sort key + /// \param[in] rowId The UNIQUE primary key for the row. This can never be changed. + /// \param[in] initialCellValues Initial values to give the row (optional) + /// \return The newly added row + Table::Row* AddRow(unsigned rowId); + Table::Row* AddRow(unsigned rowId, DataStructures::List &initialCellValues); + Table::Row* AddRow(unsigned rowId, DataStructures::List &initialCellValues, bool copyCells=false); + + /// \brief Removes a row specified by rowId. + /// \param[in] rowId The ID of the row + /// \return true if the row was deleted. False if not. + bool RemoveRow(unsigned rowId); + + /// \brief Removes all the rows with IDs that the specified table also has. + /// \param[in] tableContainingRowIDs The IDs of the rows + void RemoveRows(Table *tableContainingRowIDs); + + /// \brief Updates a particular cell in the table. + /// \note If you are going to update many cells of a particular row, it is more efficient to call GetRow and perform the operations on the row directly. + /// \note Row pointers do not change, so you can also write directly to the rows for more efficiency. + /// \param[in] rowId The ID of the row + /// \param[in] columnIndex The column of the cell + /// \param[in] value The data to set + bool UpdateCell(unsigned rowId, unsigned columnIndex, int value); + bool UpdateCell(unsigned rowId, unsigned columnIndex, char *str); + bool UpdateCell(unsigned rowId, unsigned columnIndex, int byteLength, char *data); + bool UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int value); + bool UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, char *str); + bool UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int byteLength, char *data); + + /// \brief Note this is much less efficient to call than GetRow, then working with the cells directly. + /// Numeric, string, binary + void GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, int *output); + void GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output); + void GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output, int *outputLength); + + /// \brief Gets a row. More efficient to do this and access Row::cells than to repeatedly call GetCell. + /// You can also update cells in rows from this function. + /// \param[in] rowId The ID of the row + /// \return The desired row, or 0 if no such row. + Row* GetRowByID(unsigned rowId) const; + + /// \brief Gets a row at a specific index. + /// rowIndex should be less than GetRowCount() + /// \param[in] rowIndex The index of the row + /// \param[out] key The ID of the row returned + /// \return The desired row, or 0 if no such row. + Row* GetRowByIndex(unsigned rowIndex, unsigned *key) const; + + /// \brief Queries the table, optionally returning only a subset of columns and rows. + /// \param[in] columnSubset An array of column indices. Only columns in this array are returned. Pass 0 for all columns + /// \param[in] numColumnSubset The number of elements in \a columnSubset + /// \param[in] inclusionFilters An array of FilterQuery. All filters must pass for the row to be returned. + /// \param[in] numInclusionFilters The number of elements in \a inclusionFilters + /// \param[in] rowIds An arrow of row IDs. Only these rows with these IDs are returned. Pass 0 for all rows. + /// \param[in] numRowIDs The number of elements in \a rowIds + /// \param[out] result The result of the query. If no rows are returned, the table will only have columns. + void QueryTable(unsigned *columnIndicesSubset, unsigned numColumnSubset, FilterQuery *inclusionFilters, unsigned numInclusionFilters, unsigned *rowIds, unsigned numRowIDs, Table *result); + + /// \brief Sorts the table by rows + /// \details You can sort the table in ascending or descending order on one or more columns + /// Columns have precedence in the order they appear in the \a sortQueries array + /// If a row cell on column n has the same value as a a different row on column n, then the row will be compared on column n+1 + /// \param[in] sortQueries A list of SortQuery structures, defining the sorts to perform on the table + /// \param[in] numColumnSubset The number of elements in \a numSortQueries + /// \param[out] out The address of an array of Rows, which will receive the sorted output. The array must be long enough to contain all returned rows, up to GetRowCount() + void SortTable(Table::SortQuery *sortQueries, unsigned numSortQueries, Table::Row** out); + + /// \brief Frees all memory in the table. + void Clear(void); + + /// \brief Prints out the names of all the columns. + /// \param[out] out A pointer to an array of bytes which will hold the output. + /// \param[in] outLength The size of the \a out array + /// \param[in] columnDelineator What character to print to delineate columns + void PrintColumnHeaders(char *out, int outLength, char columnDelineator) const; + + /// \brief Writes a text representation of the row to \a out. + /// \param[out] out A pointer to an array of bytes which will hold the output. + /// \param[in] outLength The size of the \a out array + /// \param[in] columnDelineator What character to print to delineate columns + /// \param[in] printDelineatorForBinary Binary output is not printed. True to still print the delineator. + /// \param[in] inputRow The row to print + void PrintRow(char *out, int outLength, char columnDelineator, bool printDelineatorForBinary, Table::Row* inputRow) const; + + /// \brief Direct access to make things easier. + const DataStructures::List& GetColumns(void) const; + + /// \brief Direct access to make things easier. + const DataStructures::BPlusTree& GetRows(void) const; + + /// \brief Get the head of a linked list containing all the row data. + DataStructures::Page * GetListHead(void); + + /// \brief Get the first free row id. + /// This could be made more efficient. + unsigned GetAvailableRowId(void) const; + + Table& operator = ( const Table& input ); + + protected: + Table::Row* AddRowColumns(unsigned rowId, Row *row, DataStructures::List columnIndices); + + void DeleteRow(Row *row); + + void QueryRow(DataStructures::List &inclusionFilterColumnIndices, DataStructures::List &columnIndicesToReturn, unsigned key, Table::Row* row, FilterQuery *inclusionFilters, Table *result); + + // 16 is arbitrary and is the order of the BPlus tree. Higher orders are better for searching while lower orders are better for + // Insertions and deletions. + DataStructures::BPlusTree rows; + + // Columns in the table. + DataStructures::List columns; + }; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_ThreadsafeAllocatingQueue.h b/project/lib_projects/raknet/jni/RaknetSources/DS_ThreadsafeAllocatingQueue.h new file mode 100755 index 0000000..a9a1248 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_ThreadsafeAllocatingQueue.h @@ -0,0 +1,143 @@ +/// \file DS_ThreadsafeAllocatingQueue.h +/// \internal +/// A threadsafe queue, that also uses a memory pool for allocation + +#ifndef __THREADSAFE_ALLOCATING_QUEUE +#define __THREADSAFE_ALLOCATING_QUEUE + +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "DS_MemoryPool.h" + +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + +namespace DataStructures +{ + +template +class RAK_DLL_EXPORT ThreadsafeAllocatingQueue +{ +public: + // Queue operations + void Push(structureType *s); + structureType *PopInaccurate(void); + structureType *Pop(void); + void SetPageSize(int size); + bool IsEmpty(void); + + // Memory pool operations + structureType *Allocate(const char *file, unsigned int line); + void Deallocate(structureType *s, const char *file, unsigned int line); + void Clear(const char *file, unsigned int line); +protected: + + MemoryPool memoryPool; + RakNet::SimpleMutex memoryPoolMutex; + Queue queue; + RakNet::SimpleMutex queueMutex; +}; + +template +void ThreadsafeAllocatingQueue::Push(structureType *s) +{ + queueMutex.Lock(); + queue.Push(s, _FILE_AND_LINE_ ); + queueMutex.Unlock(); +} + +template +structureType *ThreadsafeAllocatingQueue::PopInaccurate(void) +{ + structureType *s; + if (queue.IsEmpty()) + return 0; + queueMutex.Lock(); + if (queue.IsEmpty()==false) + s=queue.Pop(); + else + s=0; + queueMutex.Unlock(); + return s; +} + +template +structureType *ThreadsafeAllocatingQueue::Pop(void) +{ + structureType *s; + queueMutex.Lock(); + if (queue.IsEmpty()) + { + queueMutex.Unlock(); + return 0; + } + s=queue.Pop(); + queueMutex.Unlock(); + return s; +} + +template +structureType *ThreadsafeAllocatingQueue::Allocate(const char *file, unsigned int line) +{ + structureType *s; + memoryPoolMutex.Lock(); + s=memoryPool.Allocate(file, line); + memoryPoolMutex.Unlock(); + // Call new operator, memoryPool doesn't do this + s = new ((void*)s) structureType; + return s; +} +template +void ThreadsafeAllocatingQueue::Deallocate(structureType *s, const char *file, unsigned int line) +{ + // Call delete operator, memory pool doesn't do this + s->~structureType(); + memoryPoolMutex.Lock(); + memoryPool.Release(s, file, line); + memoryPoolMutex.Unlock(); +} + +template +void ThreadsafeAllocatingQueue::Clear(const char *file, unsigned int line) +{ + memoryPoolMutex.Lock(); + for (unsigned int i=0; i < queue.Size(); i++) + { + queue[i]->~structureType(); + memoryPool.Release(queue[i], file, line); + } + queue.Clear(file, line); + memoryPoolMutex.Unlock(); + memoryPoolMutex.Lock(); + memoryPool.Clear(file, line); + memoryPoolMutex.Unlock(); +} + +template +void ThreadsafeAllocatingQueue::SetPageSize(int size) +{ + memoryPool.SetPageSize(size); +} + +template +bool ThreadsafeAllocatingQueue::IsEmpty(void) +{ + bool isEmpty; + queueMutex.Lock(); + isEmpty=queue.IsEmpty(); + queueMutex.Unlock(); + return isEmpty; +} + +}; + + +// #if defined(RMO_NEW_UNDEF_ALLOCATING_QUEUE) +// #pragma pop_macro("new") +// #undef RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_Tree.h b/project/lib_projects/raknet/jni/RaknetSources/DS_Tree.h new file mode 100755 index 0000000..50b723c --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_Tree.h @@ -0,0 +1,98 @@ +/// \file DS_Tree.h +/// \internal +/// \brief Just a regular tree +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __DS_TREE_H +#define __DS_TREE_H + +#include "Export.h" +#include "DS_List.h" +#include "DS_Queue.h" +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + class RAK_DLL_EXPORT Tree + { + public: + Tree(); + Tree(TreeType &inputData); + ~Tree(); + void LevelOrderTraversal(DataStructures::List &output); + void AddChild(TreeType &newData); + void DeleteDecendants(void); + + TreeType data; + DataStructures::List children; + }; + + template + Tree::Tree() + { + + } + + template + Tree::Tree(TreeType &inputData) + { + data=inputData; + } + + template + Tree::~Tree() + { + DeleteDecendants(); + } + + template + void Tree::LevelOrderTraversal(DataStructures::List &output) + { + unsigned i; + Tree *node; + DataStructures::Queue*> queue; + + for (i=0; i < children.Size(); i++) + queue.Push(children[i]); + + while (queue.Size()) + { + node=queue.Pop(); + output.Insert(node, _FILE_AND_LINE_); + for (i=0; i < node->children.Size(); i++) + queue.Push(node->children[i]); + } + } + + template + void Tree::AddChild(TreeType &newData) + { + children.Insert(RakNet::OP_NEW(newData, _FILE_AND_LINE_)); + } + + template + void Tree::DeleteDecendants(void) + { + /* + DataStructures::List output; + LevelOrderTraversal(output); + unsigned i; + for (i=0; i < output.Size(); i++) + RakNet::OP_DELETE(output[i], _FILE_AND_LINE_); +*/ + + // Already recursive to do this + unsigned int i; + for (i=0; i < children.Size(); i++) + RakNet::OP_DELETE(children[i], _FILE_AND_LINE_); + } +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DS_WeightedGraph.h b/project/lib_projects/raknet/jni/RaknetSources/DS_WeightedGraph.h new file mode 100755 index 0000000..28f4424 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DS_WeightedGraph.h @@ -0,0 +1,537 @@ +/// \file DS_WeightedGraph.h +/// \internal +/// \brief Weighted graph. +/// \details I'm assuming the indices are complex map types, rather than sequential numbers (which could be implemented much more efficiently). +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __WEIGHTED_GRAPH_H +#define __WEIGHTED_GRAPH_H + +#include "DS_OrderedList.h" +#include "DS_Map.h" +#include "DS_Heap.h" +#include "DS_Queue.h" +#include "DS_Tree.h" +#include "RakAssert.h" +#include "RakMemoryOverride.h" +#ifdef _DEBUG +#include +#endif + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + class RAK_DLL_EXPORT WeightedGraph + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultMapKeyComparison(node_type(),node_type());} + + WeightedGraph(); + ~WeightedGraph(); + WeightedGraph( const WeightedGraph& original_copy ); + WeightedGraph& operator= ( const WeightedGraph& original_copy ); + void AddNode(const node_type &node); + void RemoveNode(const node_type &node); + void AddConnection(const node_type &node1, const node_type &node2, weight_type weight); + void RemoveConnection(const node_type &node1, const node_type &node2); + bool HasConnection(const node_type &node1, const node_type &node2); + void Print(void); + void Clear(void); + bool GetShortestPath(DataStructures::List &path, node_type startNode, node_type endNode, weight_type INFINITE_WEIGHT); + bool GetSpanningTree(DataStructures::Tree &outTree, DataStructures::List *inputNodes, node_type startNode, weight_type INFINITE_WEIGHT ); + unsigned GetNodeCount(void) const; + unsigned GetConnectionCount(unsigned nodeIndex) const; + void GetConnectionAtIndex(unsigned nodeIndex, unsigned connectionIndex, node_type &outNode, weight_type &outWeight) const; + node_type GetNodeAtIndex(unsigned nodeIndex) const; + + protected: + void ClearDijkstra(void); + void GenerateDisjktraMatrix(node_type startNode, weight_type INFINITE_WEIGHT); + + DataStructures::Map *> adjacencyLists; + + // All these variables are for path finding with Dijkstra + // 08/23/06 Won't compile as a DLL inside this struct + // struct + // { + bool isValidPath; + node_type rootNode; + DataStructures::OrderedList costMatrixIndices; + weight_type *costMatrix; + node_type *leastNodeArray; + // } dijkstra; + + struct NodeAndParent + { + DataStructures::Tree*node; + DataStructures::Tree*parent; + }; + }; + + template + WeightedGraph::WeightedGraph() + { + isValidPath=false; + costMatrix=0; + } + + template + WeightedGraph::~WeightedGraph() + { + Clear(); + } + + template + WeightedGraph::WeightedGraph( const WeightedGraph& original_copy ) + { + adjacencyLists=original_copy.adjacencyLists; + + isValidPath=original_copy.isValidPath; + if (isValidPath) + { + rootNode=original_copy.rootNode; + costMatrixIndices=original_copy.costMatrixIndices; + costMatrix = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size() * costMatrixIndices.Size(), _FILE_AND_LINE_ ); + leastNodeArray = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size(), _FILE_AND_LINE_ ); + memcpy(costMatrix, original_copy.costMatrix, costMatrixIndices.Size() * costMatrixIndices.Size() * sizeof(weight_type)); + memcpy(leastNodeArray, original_copy.leastNodeArray, costMatrixIndices.Size() * sizeof(weight_type)); + } + } + + template + WeightedGraph& WeightedGraph::operator=( const WeightedGraph& original_copy ) + { + adjacencyLists=original_copy.adjacencyLists; + + isValidPath=original_copy.isValidPath; + if (isValidPath) + { + rootNode=original_copy.rootNode; + costMatrixIndices=original_copy.costMatrixIndices; + costMatrix = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size() * costMatrixIndices.Size(), _FILE_AND_LINE_ ); + leastNodeArray = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size(), _FILE_AND_LINE_ ); + memcpy(costMatrix, original_copy.costMatrix, costMatrixIndices.Size() * costMatrixIndices.Size() * sizeof(weight_type)); + memcpy(leastNodeArray, original_copy.leastNodeArray, costMatrixIndices.Size() * sizeof(weight_type)); + } + + return *this; + } + + template + void WeightedGraph::AddNode(const node_type &node) + { + adjacencyLists.SetNew(node, RakNet::OP_NEW >( _FILE_AND_LINE_) ); + } + + template + void WeightedGraph::RemoveNode(const node_type &node) + { + unsigned i; + DataStructures::Queue removeNodeQueue; + + removeNodeQueue.Push(node, _FILE_AND_LINE_ ); + while (removeNodeQueue.Size()) + { + RakNet::OP_DELETE(adjacencyLists.Pop(removeNodeQueue.Pop()), _FILE_AND_LINE_); + + // Remove this node from all of the other lists as well + for (i=0; i < adjacencyLists.Size(); i++) + { + adjacencyLists[i]->Delete(node); + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (allow_unlinkedNodes==false && adjacencyLists[i]->Size()==0) + removeNodeQueue.Push(adjacencyLists.GetKeyAtIndex(i), _FILE_AND_LINE_ ); + } + } + + ClearDijkstra(); + } + + template + bool WeightedGraph::HasConnection(const node_type &node1, const node_type &node2) + { + if (node1==node2) + return false; + if (adjacencyLists.Has(node1)==false) + return false; + return adjacencyLists.Get(node1)->Has(node2); + } + + template + void WeightedGraph::AddConnection(const node_type &node1, const node_type &node2, weight_type weight) + { + if (node1==node2) + return; + + if (adjacencyLists.Has(node1)==false) + AddNode(node1); + adjacencyLists.Get(node1)->Set(node2, weight); + if (adjacencyLists.Has(node2)==false) + AddNode(node2); + adjacencyLists.Get(node2)->Set(node1, weight); + } + + template + void WeightedGraph::RemoveConnection(const node_type &node1, const node_type &node2) + { + adjacencyLists.Get(node2)->Delete(node1); + adjacencyLists.Get(node1)->Delete(node2); + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (allow_unlinkedNodes==false) // If we do not allow _unlinked nodes, then if there are no connections, remove the node + { + if (adjacencyLists.Get(node1)->Size()==0) + RemoveNode(node1); // Will also remove node1 from the adjacency list of node2 + if (adjacencyLists.Has(node2) && adjacencyLists.Get(node2)->Size()==0) + RemoveNode(node2); + } + + ClearDijkstra(); + } + + template + void WeightedGraph::Clear(void) + { + unsigned i; + for (i=0; i < adjacencyLists.Size(); i++) + RakNet::OP_DELETE(adjacencyLists[i], _FILE_AND_LINE_); + adjacencyLists.Clear(); + + ClearDijkstra(); + } + + template + bool WeightedGraph::GetShortestPath(DataStructures::List &path, node_type startNode, node_type endNode, weight_type INFINITE_WEIGHT) + { + path.Clear(false, _FILE_AND_LINE_); + if (startNode==endNode) + { + path.Insert(startNode, _FILE_AND_LINE_); + path.Insert(endNode, _FILE_AND_LINE_); + return true; + } + + if (isValidPath==false || rootNode!=startNode) + { + ClearDijkstra(); + GenerateDisjktraMatrix(startNode, INFINITE_WEIGHT); + } + + // return the results + bool objectExists; + unsigned col,row; + weight_type currentWeight; + DataStructures::Queue outputQueue; + col=costMatrixIndices.GetIndexFromKey(endNode, &objectExists); + if (costMatrixIndices.Size()<2) + { + return false; + } + if (objectExists==false) + { + return false; + } + node_type vertex; + row=costMatrixIndices.Size()-2; + if (row==0) + { + path.Insert(startNode, _FILE_AND_LINE_); + path.Insert(endNode, _FILE_AND_LINE_); + return true; + } + currentWeight=costMatrix[row*adjacencyLists.Size() + col]; + if (currentWeight==INFINITE_WEIGHT) + { + // No path + return true; + } + vertex=endNode; + outputQueue.PushAtHead(vertex, 0, _FILE_AND_LINE_); + row--; +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + while (costMatrix[row*adjacencyLists.Size() + col] == currentWeight) + { + if (row==0) + { + path.Insert(startNode, _FILE_AND_LINE_); + for (col=0; outputQueue.Size(); col++) + path.Insert(outputQueue.Pop(), _FILE_AND_LINE_); + return true; + } + --row; + } + + vertex=leastNodeArray[row]; + outputQueue.PushAtHead(vertex, 0, _FILE_AND_LINE_); + if (row==0) + break; + col=costMatrixIndices.GetIndexFromKey(vertex, &objectExists); + currentWeight=costMatrix[row*adjacencyLists.Size() + col]; + } + + path.Insert(startNode, _FILE_AND_LINE_); + for (col=0; outputQueue.Size(); col++) + path.Insert(outputQueue.Pop(), _FILE_AND_LINE_); + return true; + } + + template + node_type WeightedGraph::GetNodeAtIndex(unsigned nodeIndex) const + { + return adjacencyLists.GetKeyAtIndex(nodeIndex); + } + + template + unsigned WeightedGraph::GetNodeCount(void) const + { + return adjacencyLists.Size(); + } + + template + unsigned WeightedGraph::GetConnectionCount(unsigned nodeIndex) const + { + return adjacencyLists[nodeIndex]->Size(); + } + + template + void WeightedGraph::GetConnectionAtIndex(unsigned nodeIndex, unsigned connectionIndex, node_type &outNode, weight_type &outWeight) const + { + outWeight=adjacencyLists[nodeIndex]->operator[](connectionIndex); + outNode=adjacencyLists[nodeIndex]->GetKeyAtIndex(connectionIndex); + } + + template + bool WeightedGraph::GetSpanningTree(DataStructures::Tree &outTree, DataStructures::List *inputNodes, node_type startNode, weight_type INFINITE_WEIGHT ) + { + // Find the shortest path from the start node to each of the input nodes. Add this path to a new WeightedGraph if the result is reachable + DataStructures::List path; + DataStructures::WeightedGraph outGraph; + bool res; + unsigned i,j; + for (i=0; i < inputNodes->Size(); i++) + { + res=GetShortestPath(path, startNode, (*inputNodes)[i], INFINITE_WEIGHT); + if (res && path.Size()>0) + { + for (j=0; j < path.Size()-1; j++) + { + // Don't bother looking up the weight + outGraph.AddConnection(path[j], path[j+1], INFINITE_WEIGHT); + } + } + } + + // Copy the graph to a tree. + DataStructures::Queue nodesToProcess; + DataStructures::Tree *current; + DataStructures::Map *adjacencyList; + node_type key; + NodeAndParent nap, nap2; + outTree.DeleteDecendants(); + outTree.data=startNode; + current=&outTree; + if (outGraph.adjacencyLists.Has(startNode)==false) + return false; + adjacencyList = outGraph.adjacencyLists.Get(startNode); + + for (i=0; i < adjacencyList->Size(); i++) + { + nap2.node=RakNet::OP_NEW >( _FILE_AND_LINE_ ); + nap2.node->data=adjacencyList->GetKeyAtIndex(i); + nap2.parent=current; + nodesToProcess.Push(nap2, _FILE_AND_LINE_ ); + current->children.Insert(nap2.node, _FILE_AND_LINE_); + } + + while (nodesToProcess.Size()) + { + nap=nodesToProcess.Pop(); + current=nap.node; + adjacencyList = outGraph.adjacencyLists.Get(nap.node->data); + + for (i=0; i < adjacencyList->Size(); i++) + { + key=adjacencyList->GetKeyAtIndex(i); + if (key!=nap.parent->data) + { + nap2.node=RakNet::OP_NEW >( _FILE_AND_LINE_ ); + nap2.node->data=key; + nap2.parent=current; + nodesToProcess.Push(nap2, _FILE_AND_LINE_ ); + current->children.Insert(nap2.node, _FILE_AND_LINE_); + } + } + } + + return true; + } + + template + void WeightedGraph::GenerateDisjktraMatrix(node_type startNode, weight_type INFINITE_WEIGHT) + { + if (adjacencyLists.Size()==0) + return; + + costMatrix = RakNet::OP_NEW_ARRAY(adjacencyLists.Size() * adjacencyLists.Size(), _FILE_AND_LINE_ ); + leastNodeArray = RakNet::OP_NEW_ARRAY(adjacencyLists.Size(), _FILE_AND_LINE_ ); + + node_type currentNode; + unsigned col, row, row2, openSetIndex; + node_type adjacentKey; + unsigned adjacentIndex; + weight_type edgeWeight, currentNodeWeight, adjacentNodeWeight; + DataStructures::Map *adjacencyList; + DataStructures::Heap minHeap; + DataStructures::Map openSet; + + for (col=0; col < adjacencyLists.Size(); col++) + { + // This should be already sorted, so it's a bit inefficient to do an insertion sort, but what the heck + costMatrixIndices.Insert(adjacencyLists.GetKeyAtIndex(col),adjacencyLists.GetKeyAtIndex(col), true, _FILE_AND_LINE_); + } + for (col=0; col < adjacencyLists.Size() * adjacencyLists.Size(); col++) + costMatrix[col]=INFINITE_WEIGHT; + currentNode=startNode; + row=0; + currentNodeWeight=0; + rootNode=startNode; + + // Clear the starting node column + if (adjacencyLists.Size()) + { + adjacentIndex=adjacencyLists.GetIndexAtKey(startNode); + for (row2=0; row2 < adjacencyLists.Size(); row2++) + costMatrix[row2*adjacencyLists.Size() + adjacentIndex]=0; + } + + while (row < adjacencyLists.Size()-1) + { + adjacencyList = adjacencyLists.Get(currentNode); + // Go through all connections from the current node. If the new weight is less than the current weight, then update that weight. + for (col=0; col < adjacencyList->Size(); col++) + { + edgeWeight=(*adjacencyList)[col]; + adjacentKey=adjacencyList->GetKeyAtIndex(col); + adjacentIndex=adjacencyLists.GetIndexAtKey(adjacentKey); + adjacentNodeWeight=costMatrix[row*adjacencyLists.Size() + adjacentIndex]; + + if (currentNodeWeight + edgeWeight < adjacentNodeWeight) + { + // Update the weight for the adjacent node + for (row2=row; row2 < adjacencyLists.Size(); row2++) + costMatrix[row2*adjacencyLists.Size() + adjacentIndex]=currentNodeWeight + edgeWeight; + openSet.Set(adjacentKey, currentNodeWeight + edgeWeight); + } + } + + // Find the lowest in the open set + minHeap.Clear(true,_FILE_AND_LINE_); + for (openSetIndex=0; openSetIndex < openSet.Size(); openSetIndex++) + minHeap.Push(openSet[openSetIndex], openSet.GetKeyAtIndex(openSetIndex),_FILE_AND_LINE_); + + /* + unsigned i,j; + for (i=0; i < adjacencyLists.Size()-1; i++) + { + for (j=0; j < adjacencyLists.Size(); j++) + { + RAKNET_DEBUG_PRINTF("%2i ", costMatrix[i*adjacencyLists.Size() + j]); + } + RAKNET_DEBUG_PRINTF("Node=%i", leastNodeArray[i]); + RAKNET_DEBUG_PRINTF("\n"); + } + */ + + if (minHeap.Size()==0) + { + // Unreachable nodes + isValidPath=true; + return; + } + + currentNodeWeight=minHeap.PeekWeight(0); + leastNodeArray[row]=minHeap.Pop(0); + currentNode=leastNodeArray[row]; + openSet.Delete(currentNode); + row++; + } + + /* +#ifdef _DEBUG + unsigned i,j; + for (i=0; i < adjacencyLists.Size()-1; i++) + { + for (j=0; j < adjacencyLists.Size(); j++) + { + RAKNET_DEBUG_PRINTF("%2i ", costMatrix[i*adjacencyLists.Size() + j]); + } + RAKNET_DEBUG_PRINTF("Node=%i", leastNodeArray[i]); + RAKNET_DEBUG_PRINTF("\n"); + } +#endif + */ + + isValidPath=true; + } + + template + void WeightedGraph::ClearDijkstra(void) + { + if (isValidPath) + { + isValidPath=false; + RakNet::OP_DELETE_ARRAY(costMatrix, _FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(leastNodeArray, _FILE_AND_LINE_); + costMatrixIndices.Clear(false, _FILE_AND_LINE_); + } + } + + template + void WeightedGraph::Print(void) + { +#ifdef _DEBUG + unsigned i,j; + for (i=0; i < adjacencyLists.Size(); i++) + { + //RAKNET_DEBUG_PRINTF("%i connected to ", i); + RAKNET_DEBUG_PRINTF("%s connected to ", adjacencyLists.GetKeyAtIndex(i).systemAddress.ToString()); + + if (adjacencyLists[i]->Size()==0) + RAKNET_DEBUG_PRINTF(""); + else + { + for (j=0; j < adjacencyLists[i]->Size(); j++) + // RAKNET_DEBUG_PRINTF("%i (%.2f) ", adjacencyLists.GetIndexAtKey(adjacencyLists[i]->GetKeyAtIndex(j)), (float) adjacencyLists[i]->operator[](j) ); + RAKNET_DEBUG_PRINTF("%s (%.2f) ", adjacencyLists[i]->GetKeyAtIndex(j).systemAddress.ToString(), (float) adjacencyLists[i]->operator[](j) ); + } + + RAKNET_DEBUG_PRINTF("\n"); + } +#endif + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DataCompressor.cpp b/project/lib_projects/raknet/jni/RaknetSources/DataCompressor.cpp new file mode 100755 index 0000000..f281ff2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DataCompressor.cpp @@ -0,0 +1,63 @@ +#include "DataCompressor.h" +#include "DS_HuffmanEncodingTree.h" +#include "RakAssert.h" +#include // Use string.h rather than memory.h for a console + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(DataCompressor,DataCompressor) + +void DataCompressor::Compress( unsigned char *userData, unsigned sizeInBytes, RakNet::BitStream * output ) +{ + // Don't use this for small files as you will just make them bigger! + RakAssert(sizeInBytes > 2048); + + unsigned int frequencyTable[ 256 ]; + unsigned int i; + memset(frequencyTable,0,256*sizeof(unsigned int)); + for (i=0; i < sizeInBytes; i++) + ++frequencyTable[userData[i]]; + HuffmanEncodingTree tree; + BitSize_t writeOffset1, writeOffset2, bitsUsed1, bitsUsed2; + tree.GenerateFromFrequencyTable(frequencyTable); + output->WriteCompressed(sizeInBytes); + for (i=0; i < 256; i++) + output->WriteCompressed(frequencyTable[i]); + output->AlignWriteToByteBoundary(); + writeOffset1=output->GetWriteOffset(); + output->Write((unsigned int)0); // Dummy value + bitsUsed1=output->GetNumberOfBitsUsed(); + tree.EncodeArray(userData, sizeInBytes, output); + bitsUsed2=output->GetNumberOfBitsUsed(); + writeOffset2=output->GetWriteOffset(); + output->SetWriteOffset(writeOffset1); + output->Write(bitsUsed2-bitsUsed1); // Go back and write how many bits were used for the encoding + output->SetWriteOffset(writeOffset2); +} + +unsigned DataCompressor::DecompressAndAllocate( RakNet::BitStream * input, unsigned char **output ) +{ + HuffmanEncodingTree tree; + unsigned int bitsUsed, destinationSizeInBytes; + unsigned int decompressedBytes; + unsigned int frequencyTable[ 256 ]; + unsigned i; + + input->ReadCompressed(destinationSizeInBytes); + for (i=0; i < 256; i++) + input->ReadCompressed(frequencyTable[i]); + input->AlignReadToByteBoundary(); + if (input->Read(bitsUsed)==false) + { + // Read error +#ifdef _DEBUG + RakAssert(0); +#endif + return 0; + } + *output = (unsigned char*) rakMalloc_Ex(destinationSizeInBytes, _FILE_AND_LINE_); + tree.GenerateFromFrequencyTable(frequencyTable); + decompressedBytes=tree.DecodeArray(input, bitsUsed, destinationSizeInBytes, *output ); + RakAssert(decompressedBytes==destinationSizeInBytes); + return destinationSizeInBytes; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/DataCompressor.h b/project/lib_projects/raknet/jni/RaknetSources/DataCompressor.h new file mode 100755 index 0000000..9152396 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DataCompressor.h @@ -0,0 +1,33 @@ +/// \file DataCompressor.h +/// \brief DataCompressor does compression on a block of data. +/// \details Not very good compression, but it's small and fast so is something you can use per-message at runtime. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __DATA_COMPRESSOR_H +#define __DATA_COMPRESSOR_H + +#include "RakMemoryOverride.h" +#include "DS_HuffmanEncodingTree.h" +#include "Export.h" + +namespace RakNet +{ + +/// \brief Does compression on a block of data. Not very good compression, but it's small and fast so is something you can compute at runtime. +class RAK_DLL_EXPORT DataCompressor +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(DataCompressor) + + static void Compress( unsigned char *userData, unsigned sizeInBytes, RakNet::BitStream * output ); + static unsigned DecompressAndAllocate( RakNet::BitStream * input, unsigned char **output ); +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/DirectoryDeltaTransfer.cpp b/project/lib_projects/raknet/jni/RaknetSources/DirectoryDeltaTransfer.cpp new file mode 100755 index 0000000..e612c92 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DirectoryDeltaTransfer.cpp @@ -0,0 +1,242 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DirectoryDeltaTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#include "DirectoryDeltaTransfer.h" +#include "FileList.h" +#include "StringCompressor.h" +#include "RakPeerInterface.h" +#include "FileListTransfer.h" +#include "FileListTransferCBInterface.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "FileOperations.h" +#include "IncrementalReadInterface.h" + +using namespace RakNet; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +class DDTCallback : public FileListTransferCBInterface +{ +public: + unsigned subdirLen; + char outputSubdir[512]; + FileListTransferCBInterface *onFileCallback; + + DDTCallback() {} + virtual ~DDTCallback() {} + + virtual bool OnFile(OnFileStruct *onFileStruct) + { + char fullPathToDir[1024]; + + if (onFileStruct->fileName && onFileStruct->fileData && subdirLen < strlen(onFileStruct->fileName)) + { + strcpy(fullPathToDir, outputSubdir); + strcat(fullPathToDir, onFileStruct->fileName+subdirLen); + WriteFileWithDirectories(fullPathToDir, (char*)onFileStruct->fileData, (unsigned int ) onFileStruct->byteLengthOfThisFile); + } + else + fullPathToDir[0]=0; + + return onFileCallback->OnFile(onFileStruct); + } + + virtual void OnFileProgress(FileProgressStruct *fps) + { + char fullPathToDir[1024]; + + if (fps->onFileStruct->fileName && subdirLen < strlen(fps->onFileStruct->fileName)) + { + strcpy(fullPathToDir, outputSubdir); + strcat(fullPathToDir, fps->onFileStruct->fileName+subdirLen); + } + else + fullPathToDir[0]=0; + + onFileCallback->OnFileProgress(fps); + } + virtual bool OnDownloadComplete(DownloadCompleteStruct *dcs) + { + return onFileCallback->OnDownloadComplete(dcs); + } +}; + +STATIC_FACTORY_DEFINITIONS(DirectoryDeltaTransfer,DirectoryDeltaTransfer); + +DirectoryDeltaTransfer::DirectoryDeltaTransfer() +{ + applicationDirectory[0]=0; + fileListTransfer=0; + availableUploads = RakNet::OP_NEW( _FILE_AND_LINE_ ); + priority=HIGH_PRIORITY; + orderingChannel=0; + incrementalReadInterface=0; +} +DirectoryDeltaTransfer::~DirectoryDeltaTransfer() +{ + RakNet::OP_DELETE(availableUploads, _FILE_AND_LINE_); +} +void DirectoryDeltaTransfer::SetFileListTransferPlugin(FileListTransfer *flt) +{ + if (fileListTransfer) + { + DataStructures::List fileListProgressList; + fileListTransfer->GetCallbacks(fileListProgressList); + unsigned int i; + for (i=0; i < fileListProgressList.Size(); i++) + availableUploads->RemoveCallback(fileListProgressList[i]); + } + + fileListTransfer=flt; + + if (flt) + { + DataStructures::List fileListProgressList; + flt->GetCallbacks(fileListProgressList); + unsigned int i; + for (i=0; i < fileListProgressList.Size(); i++) + availableUploads->AddCallback(fileListProgressList[i]); + } + else + { + availableUploads->ClearCallbacks(); + } +} +void DirectoryDeltaTransfer::SetApplicationDirectory(const char *pathToApplication) +{ + if (pathToApplication==0 || pathToApplication[0]==0) + applicationDirectory[0]=0; + else + { + strncpy(applicationDirectory, pathToApplication, 510); + if (applicationDirectory[strlen(applicationDirectory)-1]!='/' && applicationDirectory[strlen(applicationDirectory)-1]!='\\') + strcat(applicationDirectory, "/"); + applicationDirectory[511]=0; + } +} +void DirectoryDeltaTransfer::SetUploadSendParameters(PacketPriority _priority, char _orderingChannel) +{ + priority=_priority; + orderingChannel=_orderingChannel; +} +void DirectoryDeltaTransfer::AddUploadsFromSubdirectory(const char *subdir) +{ + availableUploads->AddFilesFromDirectory(applicationDirectory, subdir, true, false, true, FileListNodeContext(0,0)); +} +unsigned short DirectoryDeltaTransfer::DownloadFromSubdirectory(FileList &localFiles, const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb) +{ + RakAssert(host!=UNASSIGNED_SYSTEM_ADDRESS); + + DDTCallback *transferCallback; + + localFiles.AddCallback(cb); + + // Prepare the callback data + transferCallback = RakNet::OP_NEW( _FILE_AND_LINE_ ); + if (subdir && subdir[0]) + { + transferCallback->subdirLen=(unsigned int)strlen(subdir); + if (subdir[transferCallback->subdirLen-1]!='/' && subdir[transferCallback->subdirLen-1]!='\\') + transferCallback->subdirLen++; + } + else + transferCallback->subdirLen=0; + if (prependAppDirToOutputSubdir) + strcpy(transferCallback->outputSubdir, applicationDirectory); + else + transferCallback->outputSubdir[0]=0; + if (outputSubdir) + strcat(transferCallback->outputSubdir, outputSubdir); + if (transferCallback->outputSubdir[strlen(transferCallback->outputSubdir)-1]!='/' && transferCallback->outputSubdir[strlen(transferCallback->outputSubdir)-1]!='\\') + strcat(transferCallback->outputSubdir, "/"); + transferCallback->onFileCallback=onFileCallback; + + // Setup the transfer plugin to get the response to this download request + unsigned short setId = fileListTransfer->SetupReceive(transferCallback, true, host); + + // Send to the host, telling it to process this request + RakNet::BitStream outBitstream; + outBitstream.Write((MessageID)ID_DDT_DOWNLOAD_REQUEST); + outBitstream.Write(setId); + StringCompressor::Instance()->EncodeString(subdir, 256, &outBitstream); + StringCompressor::Instance()->EncodeString(outputSubdir, 256, &outBitstream); + localFiles.Serialize(&outBitstream); + SendUnified(&outBitstream, _priority, RELIABLE_ORDERED, _orderingChannel, host, false); + + return setId; +} +unsigned short DirectoryDeltaTransfer::DownloadFromSubdirectory(const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb) +{ + FileList localFiles; + // Get a hash of all the files that we already have (if any) + localFiles.AddFilesFromDirectory(prependAppDirToOutputSubdir ? applicationDirectory : 0, outputSubdir, true, false, true, FileListNodeContext(0,0)); + return DownloadFromSubdirectory(localFiles, subdir, outputSubdir, prependAppDirToOutputSubdir, host, onFileCallback, _priority, _orderingChannel, cb); +} +void DirectoryDeltaTransfer::GenerateHashes(FileList &localFiles, const char *outputSubdir, bool prependAppDirToOutputSubdir) +{ + localFiles.AddFilesFromDirectory(prependAppDirToOutputSubdir ? applicationDirectory : 0, outputSubdir, true, false, true, FileListNodeContext(0,0)); +} +void DirectoryDeltaTransfer::ClearUploads(void) +{ + availableUploads->Clear(); +} +void DirectoryDeltaTransfer::OnDownloadRequest(Packet *packet) +{ + char subdir[256]; + char remoteSubdir[256]; + RakNet::BitStream inBitstream(packet->data, packet->length, false); + FileList remoteFileHash; + FileList delta; + unsigned short setId; + inBitstream.IgnoreBits(8); + inBitstream.Read(setId); + StringCompressor::Instance()->DecodeString(subdir, 256, &inBitstream); + StringCompressor::Instance()->DecodeString(remoteSubdir, 256, &inBitstream); + if (remoteFileHash.Deserialize(&inBitstream)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + + availableUploads->GetDeltaToCurrent(&remoteFileHash, &delta, subdir, remoteSubdir); + if (incrementalReadInterface==0) + delta.PopulateDataFromDisk(applicationDirectory, true, false, true); + else + delta.FlagFilesAsReferences(); + + // This will call the ddtCallback interface that was passed to FileListTransfer::SetupReceive on the remote system + fileListTransfer->Send(&delta, rakPeerInterface, packet->systemAddress, setId, priority, orderingChannel, incrementalReadInterface, chunkSize); +} +PluginReceiveResult DirectoryDeltaTransfer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_DDT_DOWNLOAD_REQUEST: + OnDownloadRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} + +unsigned DirectoryDeltaTransfer::GetNumberOfFilesForUpload(void) const +{ + return availableUploads->fileList.Size(); +} + +void DirectoryDeltaTransfer::SetDownloadRequestIncrementalReadInterface(IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize) +{ + incrementalReadInterface=_incrementalReadInterface; + chunkSize=_chunkSize; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/DirectoryDeltaTransfer.h b/project/lib_projects/raknet/jni/RaknetSources/DirectoryDeltaTransfer.h new file mode 100755 index 0000000..5c78622 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DirectoryDeltaTransfer.h @@ -0,0 +1,164 @@ +/// \file DirectoryDeltaTransfer.h +/// \brief Simple class to send changes between directories. +/// \details In essence, a simple autopatcher that can be used for transmitting levels, skins, etc. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DirectoryDeltaTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __DIRECTORY_DELTA_TRANSFER_H +#define __DIRECTORY_DELTA_TRANSFER_H + +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "DS_Map.h" +#include "PacketPriority.h" + +/// \defgroup DIRECTORY_DELTA_TRANSFER_GROUP DirectoryDeltaTransfer +/// \brief Simple class to send changes between directories +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Simple class to send changes between directories. In essence, a simple autopatcher that can be used for transmitting levels, skins, etc. +/// \details +/// \sa AutopatcherClient class for database driven patching, including binary deltas and search by date. +/// +/// To use, first set the path to your application. For example "C:/Games/MyRPG/"
+/// To allow other systems to download files, call AddUploadsFromSubdirectory, where the parameter is a path relative
+/// to the path to your application. This includes subdirectories.
+/// For example:
+/// SetApplicationDirectory("C:/Games/MyRPG/");
+/// AddUploadsFromSubdirectory("Mods/Skins/");
+/// would allow downloads from
+/// "C:/Games/MyRPG/Mods/Skins/*.*" as well as "C:/Games/MyRPG/Mods/Skins/Level1/*.*"
+/// It would NOT allow downloads from C:/Games/MyRPG/Levels, nor would it allow downloads from C:/Windows
+/// While pathToApplication can be anything you want, applicationSubdirectory must match either partially or fully between systems. +/// \ingroup DIRECTORY_DELTA_TRANSFER_GROUP + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class FileList; +struct Packet; +struct InternalPacket; +struct DownloadRequest; +class FileListTransfer; +class FileListTransferCBInterface; +class FileListProgress; +class IncrementalReadInterface; + +class RAK_DLL_EXPORT DirectoryDeltaTransfer : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(DirectoryDeltaTransfer) + + // Constructor + DirectoryDeltaTransfer(); + + // Destructor + virtual ~DirectoryDeltaTransfer(); + + /// \brief This plugin has a dependency on the FileListTransfer plugin, which it uses to actually send the files. + /// \details So you need an instance of that plugin registered with RakPeerInterface, and a pointer to that interface should be passed here. + /// \param[in] flt A pointer to a registered instance of FileListTransfer + void SetFileListTransferPlugin(FileListTransfer *flt); + + /// \brief Set the local root directory to base all file uploads and downloads off of. + /// \param[in] pathToApplication This path will be prepended to \a applicationSubdirectory in AddUploadsFromSubdirectory to find the actual path on disk. + void SetApplicationDirectory(const char *pathToApplication); + + /// \brief What parameters to use for the RakPeerInterface::Send() call when uploading files. + /// \param[in] _priority See RakPeerInterface::Send() + /// \param[in] _orderingChannel See RakPeerInterface::Send() + void SetUploadSendParameters(PacketPriority _priority, char _orderingChannel); + + /// \brief Add all files in the specified subdirectory recursively. + /// \details \a subdir is appended to \a pathToApplication in SetApplicationDirectory(). + /// All files in the resultant directory and subdirectories are then hashed so that users can download them. + /// \pre You must call SetFileListTransferPlugin with a valid FileListTransfer plugin + /// \param[in] subdir Concatenated with pathToApplication to form the final path from which to allow uploads. + void AddUploadsFromSubdirectory(const char *subdir); + + /// \brief Downloads files from the matching parameter \a subdir in AddUploadsFromSubdirectory. + /// \details \a subdir must contain all starting characters in \a subdir in AddUploadsFromSubdirectory + /// Therefore, + /// AddUploadsFromSubdirectory("Levels/Level1/"); would allow you to download using DownloadFromSubdirectory("Levels/Level1/Textures/"... + /// but it would NOT allow you to download from DownloadFromSubdirectory("Levels/"... or DownloadFromSubdirectory("Levels/Level2/"... + /// \pre You must call SetFileListTransferPlugin with a valid FileListTransfer plugin + /// \note Blocking. Will block while hashes of the local files are generated + /// \param[in] subdir A directory passed to AddUploadsFromSubdirectory on the remote system. The passed dir can be more specific than the remote dir. + /// \param[in] outputSubdir The directory to write the output to. Usually this will match \a subdir but it can be different if you want. + /// \param[in] prependAppDirToOutputSubdir True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. + /// \param[in] host The address of the remote system to send the message to. + /// \param[in] onFileCallback Callback to call per-file (optional). When fileIndex+1==setCount in the callback then the download is done + /// \param[in] _priority See RakPeerInterface::Send() + /// \param[in] _orderingChannel See RakPeerInterface::Send() + /// \param[in] cb Callback to get progress updates. Pass 0 to not use. + /// \return A set ID, identifying this download set. Returns 65535 on host unreachable. + unsigned short DownloadFromSubdirectory(const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb); + + /// \brief Downloads files from the matching parameter \a subdir in AddUploadsFromSubdirectory. + /// \details \a subdir must contain all starting characters in \a subdir in AddUploadsFromSubdirectory + /// Therefore, + /// AddUploadsFromSubdirectory("Levels/Level1/"); would allow you to download using DownloadFromSubdirectory("Levels/Level1/Textures/"... + /// but it would NOT allow you to download from DownloadFromSubdirectory("Levels/"... or DownloadFromSubdirectory("Levels/Level2/"... + /// \pre You must call SetFileListTransferPlugin with a valid FileListTransfer plugin + /// \note Nonblocking, but requires call to GenerateHashes() + /// \param[in] localFiles Hashes of local files already on the harddrive. Populate with GenerateHashes(), which you may wish to call from a thread + /// \param[in] subdir A directory passed to AddUploadsFromSubdirectory on the remote system. The passed dir can be more specific than the remote dir. + /// \param[in] outputSubdir The directory to write the output to. Usually this will match \a subdir but it can be different if you want. + /// \param[in] prependAppDirToOutputSubdir True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. + /// \param[in] host The address of the remote system to send the message to. + /// \param[in] onFileCallback Callback to call per-file (optional). When fileIndex+1==setCount in the callback then the download is done + /// \param[in] _priority See RakPeerInterface::Send() + /// \param[in] _orderingChannel See RakPeerInterface::Send() + /// \param[in] cb Callback to get progress updates. Pass 0 to not use. + /// \return A set ID, identifying this download set. Returns 65535 on host unreachable. + unsigned short DownloadFromSubdirectory(FileList &localFiles, const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb); + + /// Hash files already on the harddrive, in preparation for a call to DownloadFromSubdirectory(). Passed to second version of DownloadFromSubdirectory() + /// This is slow, and it is exposed so you can call it from a thread before calling DownloadFromSubdirectory() + /// \param[out] localFiles List of hashed files populated from \a outputSubdir and \a prependAppDirToOutputSubdir + /// \param[in] outputSubdir The directory to write the output to. Usually this will match \a subdir but it can be different if you want. + /// \param[in] prependAppDirToOutputSubdir True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. + void GenerateHashes(FileList &localFiles, const char *outputSubdir, bool prependAppDirToOutputSubdir); + + /// \brief Clear all allowed uploads previously set with AddUploadsFromSubdirectory + void ClearUploads(void); + + /// \brief Returns how many files are available for upload + /// \return How many files are available for upload + unsigned GetNumberOfFilesForUpload(void) const; + + /// \brief Normally, if a remote system requests files, those files are all loaded into memory and sent immediately. + /// \details This function allows the files to be read in incremental chunks, saving memory + /// \param[in] _incrementalReadInterface If a file in \a fileList has no data, filePullInterface will be used to read the file in chunks of size \a chunkSize + /// \param[in] _chunkSize How large of a block of a file to send at once + void SetDownloadRequestIncrementalReadInterface(IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); +protected: + void OnDownloadRequest(Packet *packet); + + char applicationDirectory[512]; + FileListTransfer *fileListTransfer; + FileList *availableUploads; + PacketPriority priority; + char orderingChannel; + IncrementalReadInterface *incrementalReadInterface; + unsigned int chunkSize; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/DynDNS.cpp b/project/lib_projects/raknet/jni/RaknetSources/DynDNS.cpp new file mode 100755 index 0000000..3e189ee --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DynDNS.cpp @@ -0,0 +1,236 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DynDNS==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "TCPInterface.h" +#include "SocketLayer.h" +#include "DynDNS.h" +#include "GetTime.h" + +using namespace RakNet; + +struct DynDnsResult +{ + const char *description; + const char *code; + DynDnsResultCode resultCode; +}; + +DynDnsResult resultTable[13] = +{ + // See http://www.dyndns.com/developers/specs/flow.pdf + {"DNS update success.\nPlease wait up to 60 seconds for the change to take effect.\n", "good", RC_SUCCESS}, // Even with success, it takes time for the cache to update! + {"No change", "nochg", RC_NO_CHANGE}, + {"Host has been blocked. You will need to contact DynDNS to reenable.", "abuse", RC_ABUSE}, + {"Useragent is blocked", "badagent", RC_BAD_AGENT}, + {"Username/password pair bad", "badauth", RC_BAD_AUTH}, + {"Bad system parameter", "badsys", RC_BAD_SYS}, + {"DNS inconsistency", "dnserr", RC_DNS_ERROR}, + {"Paid account feature", "!donator", RC_NOT_DONATOR}, + {"No such host in system", "nohost", RC_NO_HOST}, + {"Invalid hostname format", "notfqdn", RC_NOT_FQDN}, + {"Serious error", "numhost", RC_NUM_HOST}, + {"This host exists, but does not belong to you", "!yours", RC_NOT_YOURS}, + {"911", "911", RC_911}, +}; +DynDNS::DynDNS() +{ + connectPhase=CP_IDLE; + tcp=0; +} +DynDNS::~DynDNS() +{ + if (tcp) + RakNet::OP_DELETE(tcp, _FILE_AND_LINE_); +} +void DynDNS::Stop(void) +{ + tcp->Stop(); + connectPhase = CP_IDLE; + RakNet::OP_DELETE(tcp, _FILE_AND_LINE_); + tcp=0; +} + + +// newIPAddress is optional - if left out, DynDNS will use whatever it receives +void DynDNS::UpdateHostIP(const char *dnsHost, const char *newIPAddress, const char *usernameAndPassword ) +{ + myIPStr[0]=0; + + if (tcp==0) + tcp = RakNet::OP_NEW(_FILE_AND_LINE_); + connectPhase = CP_IDLE; + host = dnsHost; + + if (tcp->Start(0, 1)==false) + { + SetCompleted(RC_TCP_FAILED_TO_START, "TCP failed to start"); + return; + } + + connectPhase = CP_CONNECTING_TO_CHECKIP; + tcp->Connect("checkip.dyndns.org", 80, false); + + // See https://www.dyndns.com/developers/specs/syntax.html + getString="GET /nic/update?hostname="; + getString+=dnsHost; + if (newIPAddress) + { + getString+="&myip="; + getString+=newIPAddress; + } + getString+="&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG HTTP/1.0\n"; + getString+="Host: members.dyndns.org\n"; + getString+="Authorization: Basic "; + char outputData[512]; + TCPInterface::Base64Encoding(usernameAndPassword, (int) strlen(usernameAndPassword), outputData); + getString+=outputData; + getString+="User-Agent: Jenkins Software LLC - PC - 1.0\n\n"; +} +void DynDNS::Update(void) +{ + if (connectPhase==CP_IDLE) + return; + + serverAddress=tcp->HasFailedConnectionAttempt(); + if (serverAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + SetCompleted(RC_TCP_DID_NOT_CONNECT, "Could not connect to DynDNS"); + return; + } + + serverAddress=tcp->HasCompletedConnectionAttempt(); + if (serverAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + if (connectPhase == CP_CONNECTING_TO_CHECKIP) + { + checkIpAddress=serverAddress; + connectPhase = CP_WAITING_FOR_CHECKIP_RESPONSE; + tcp->Send("GET\n\n", (unsigned int) strlen("GET\n\n"), serverAddress, false); // Needs 2 newlines! This is not documented and wasted a lot of my time + } + else + { + connectPhase = CP_WAITING_FOR_DYNDNS_RESPONSE; + tcp->Send(getString.C_String(), (unsigned int) getString.GetLength(), serverAddress, false); + } + phaseTimeout=RakNet::GetTime()+1000; + } + + if (connectPhase==CP_WAITING_FOR_CHECKIP_RESPONSE && RakNet::GetTime()>phaseTimeout) + { + connectPhase = CP_CONNECTING_TO_DYNDNS; + tcp->CloseConnection(checkIpAddress); + tcp->Connect("members.dyndns.org", 80, false); + } + else if (connectPhase==CP_WAITING_FOR_DYNDNS_RESPONSE && RakNet::GetTime()>phaseTimeout) + { + SetCompleted(RC_DYNDNS_TIMEOUT, "DynDNS did not respond"); + return; + } + + Packet *packet = tcp->Receive(); + if (packet) + { + if (connectPhase==CP_WAITING_FOR_DYNDNS_RESPONSE) + { + unsigned int i; + + char *result; + result=strstr((char*) packet->data, "Connection: close"); + if (result!=0) + { + result+=strlen("Connection: close"); + while (*result && (*result=='\r') || (*result=='\n') || (*result==' ') ) + result++; + for (i=0; i < 13; i++) + { + if (strncmp(resultTable[i].code, result, strlen(resultTable[i].code))==0) + { + if (resultTable[i].resultCode==RC_SUCCESS) + { + // Read my external IP into myIPStr + // Advance until we hit a number + while (*result && ((*result<'0') || (*result>'9')) ) + result++; + if (*result) + { + SystemAddress parser; + parser.FromString(result); + parser.ToString(false, myIPStr); + } + } + tcp->DeallocatePacket(packet); + SetCompleted(resultTable[i].resultCode, resultTable[i].description); + break; + } + } + if (i==13) + { + tcp->DeallocatePacket(packet); + SetCompleted(RC_UNKNOWN_RESULT, "DynDNS returned unknown result"); + } + } + else + { + tcp->DeallocatePacket(packet); + SetCompleted(RC_PARSING_FAILURE, "Parsing failure on returned string from DynDNS"); + } + + return; + } + else + { + /* + HTTP/1.1 200 OK + Content-Type: text/html + Server: DynDNS-CheckIP/1.0 + Connection: close + Cache-Control: no-cache + Pragma: no-cache + Content-Length: 105 + + Current IP CheckCurrent IP Address: 98.1 + 89.219.22 + + + Connection to host lost. + */ + + char *result; + result=strstr((char*) packet->data, "Current IP Address: "); + if (result!=0) + { + result+=strlen("Current IP Address: "); + SystemAddress myIp; + myIp.FromString(result); + myIp.ToString(false, myIPStr); + + // Resolve DNS we are setting. If equal to current then abort + const char *existingHost = ( char* ) SocketLayer::DomainNameToIP( host.C_String() ); + if (existingHost && strcmp(existingHost, myIPStr)==0) + { + // DynDNS considers setting the IP to what it is already set abuse + tcp->DeallocatePacket(packet); + SetCompleted(RC_DNS_ALREADY_SET, "No action needed"); + return; + } + } + + tcp->DeallocatePacket(packet); + tcp->CloseConnection(packet->systemAddress); + + connectPhase = CP_CONNECTING_TO_DYNDNS; + tcp->Connect("members.dyndns.org", 80, false); + } + } + + if (tcp->HasLostConnection()!=UNASSIGNED_SYSTEM_ADDRESS) + { + if (connectPhase==CP_WAITING_FOR_DYNDNS_RESPONSE) + { + SetCompleted(RC_CONNECTION_LOST_WITHOUT_RESPONSE, "Connection lost to DynDNS during GET operation"); + } + } +} + + +#endif // _RAKNET_SUPPORT_DynDNS diff --git a/project/lib_projects/raknet/jni/RaknetSources/DynDNS.h b/project/lib_projects/raknet/jni/RaknetSources/DynDNS.h new file mode 100755 index 0000000..ed30bdd --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/DynDNS.h @@ -0,0 +1,100 @@ +/// \file DynDNS.h +/// \brief Helper to class to update DynDNS +/// This can be used to determine what permissions are should be allowed to the other system +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DynDNS==1 && _RAKNET_SUPPORT_TCPInterface==1 + +class TCPInterface; + +#ifndef __DYN_DNS_H +#define __DYN_DNS_H + +namespace RakNet +{ + +enum DynDnsResultCode +{ + // ----- Success ----- + RC_SUCCESS, + RC_DNS_ALREADY_SET, // RakNet detects no action is needed + + // ----- Ignorable failure (treat same as success) ----- + RC_NO_CHANGE, // DynDNS detects no action is needed (treated as abuse though) + + // ----- User error ----- + RC_NOT_DONATOR, // You have to pay to do this + RC_NO_HOST, // This host does not exist at all + RC_BAD_AUTH, // You set the wrong password + RC_NOT_YOURS, // This is not your host + + // ----- Permanent failure ----- + RC_ABUSE, // Your host has been blocked, too many failures disable your account + RC_TCP_FAILED_TO_START, // TCP port already in use + RC_TCP_DID_NOT_CONNECT, // DynDNS down? + RC_UNKNOWN_RESULT, // DynDNS returned a result code that was not documented as of 12/4/2010 on http://www.dyndns.com/developers/specs/flow.pdf + RC_PARSING_FAILURE, // Can't read the result returned, format change? + RC_CONNECTION_LOST_WITHOUT_RESPONSE, // Lost the connection to DynDNS while communicating + RC_BAD_AGENT, // ??? + RC_BAD_SYS, // ??? + RC_DNS_ERROR, // ??? + RC_NOT_FQDN, // ??? + RC_NUM_HOST, // ??? + RC_911, // ??? + RC_DYNDNS_TIMEOUT, // DynDNS did not respond +}; + +// Can only process one at a time with the current implementation +class RAK_DLL_EXPORT DynDNS +{ +public: + DynDNS(); + ~DynDNS(); + + // Pass 0 for newIPAddress to autodetect whatever you are uploading from + // usernameAndPassword should be in the format username:password + void UpdateHostIP(const char *dnsHost, const char *newIPAddress, const char *usernameAndPassword ); + void Update(void); + + // Output + bool IsRunning(void) const {return connectPhase!=CP_IDLE;} + bool IsCompleted(void) const {return connectPhase==CP_IDLE;} + RakNet::DynDnsResultCode GetCompletedResultCode(void) {return result;} + const char *GetCompletedDescription(void) const {return resultDescription;} + bool WasResultSuccessful(void) const {return result==RC_SUCCESS || result==RC_DNS_ALREADY_SET || result==RC_NO_CHANGE;} + char *GetMyPublicIP(void) const {return (char*) myIPStr;} // We get our public IP as part of the process. This is valid once completed + +protected: + void Stop(void); + void SetCompleted(RakNet::DynDnsResultCode _result, const char *_resultDescription) {Stop(); result=_result; resultDescription=_resultDescription;} + + enum ConnectPhase + { + CP_CONNECTING_TO_CHECKIP, + CP_WAITING_FOR_CHECKIP_RESPONSE, + CP_CONNECTING_TO_DYNDNS, + CP_WAITING_FOR_DYNDNS_RESPONSE, + CP_IDLE, + }; + + TCPInterface *tcp; + RakNet::RakString getString; + SystemAddress serverAddress; + ConnectPhase connectPhase; + RakNet::RakString host; + RakNet::Time phaseTimeout; + SystemAddress checkIpAddress; + const char *resultDescription; + RakNet::DynDnsResultCode result; + char myIPStr[32]; +}; + +} // namespace RakNet + +#endif // __DYN_DNS_H + +#endif // _RAKNET_SUPPORT_DynDNS diff --git a/project/lib_projects/raknet/jni/RaknetSources/EmailSender.cpp b/project/lib_projects/raknet/jni/RaknetSources/EmailSender.cpp new file mode 100755 index 0000000..4b38481 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/EmailSender.cpp @@ -0,0 +1,362 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_EmailSender==1 && _RAKNET_SUPPORT_TCPInterface==1 && _RAKNET_SUPPORT_FileOperations==1 + +// Useful sites +// http://www.faqs.org\rfcs\rfc2821.html +// http://www2.rad.com\networks/1995/mime/examples.htm + +#include "EmailSender.h" +#include "TCPInterface.h" +#include "GetTime.h" +#include "Rand.h" +#include "FileList.h" +#include "BitStream.h" +#include + + + + + +#include "RakSleep.h" + +using namespace RakNet; + + +STATIC_FACTORY_DEFINITIONS(EmailSender,EmailSender); + +const char *EmailSender::Send(const char *hostAddress, unsigned short hostPort, const char *sender, const char *recipient, const char *senderName, const char *recipientName, const char *subject, const char *body, FileList *attachedFiles, bool doPrintf, const char *password) +{ + RakNet::Packet *packet; + char query[1024]; + TCPInterface tcpInterface; + SystemAddress emailServer; + if (tcpInterface.Start(0, 0)==false) + return "Unknown error starting TCP"; + emailServer=tcpInterface.Connect(hostAddress, hostPort,true); + if (emailServer==UNASSIGNED_SYSTEM_ADDRESS) + return "Failed to connect to host"; +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcpInterface.StartSSLClient(emailServer); +#endif + RakNet::TimeMS timeoutTime = RakNet::GetTimeMS()+3000; + packet=0; + while (RakNet::GetTimeMS() < timeoutTime) + { + packet = tcpInterface.Receive(); + if (packet) + { + if (doPrintf) + RAKNET_DEBUG_PRINTF("%s", packet->data); + break; + } + RakSleep(250); + } + + if (packet==0) + return "Timeout while waiting for initial data from server."; + + tcpInterface.Send("EHLO\r\n", 6, emailServer,false); + const char *response; + bool authenticate=false; +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + while (1) + { + response=GetResponse(&tcpInterface, emailServer, doPrintf); + + if (response!=0 && strcmp(response, "AUTHENTICATE")==0) + { + authenticate=true; + break; + } + + // Something other than continue? + if (response!=0 && strcmp(response, "CONTINUE")!=0) + return response; + + // Success? + if (response==0) + break; + } + + if (authenticate) + { + sprintf(query, "EHLO %s\r\n", sender); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + if (password==0) + return "Password needed"; + char *outputData = RakNet::OP_NEW_ARRAY((const int) (strlen(sender)+strlen(password)+2)*3, _FILE_AND_LINE_ ); + RakNet::BitStream bs; + char zero=0; + bs.Write(&zero,1); + bs.Write(sender,(const unsigned int)strlen(sender)); + //bs.Write("jms1@jms1.net",(const unsigned int)strlen("jms1@jms1.net")); + bs.Write(&zero,1); + bs.Write(password,(const unsigned int)strlen(password)); + bs.Write(&zero,1); + //bs.Write("not.my.real.password",(const unsigned int)strlen("not.my.real.password")); + TCPInterface::Base64Encoding((const char*)bs.GetData(), bs.GetNumberOfBytesUsed(), outputData); + sprintf(query, "AUTH PLAIN %s", outputData); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + } + + + if (sender) + sprintf(query, "MAIL From: <%s>\r\n", sender); + else + sprintf(query, "MAIL From: <>\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + if (recipient) + sprintf(query, "RCPT TO: <%s>\r\n", recipient); + else + sprintf(query, "RCPT TO: <>\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + tcpInterface.Send("DATA\r\n", (unsigned int)strlen("DATA\r\n"), emailServer,false); + + // Wait for 354... + + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + if (subject) + { + sprintf(query, "Subject: %s\r\n", subject); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + if (senderName) + { + sprintf(query, "From: %s\r\n", senderName); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + if (recipientName) + { + sprintf(query, "To: %s\r\n", recipientName); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + + const int boundarySize=60; + char boundary[boundarySize+1]; + int i,j; + if (attachedFiles && attachedFiles->fileList.Size()) + { + rakNetRandom.SeedMT((unsigned int) RakNet::GetTimeMS()); + // Random multipart message boundary + for (i=0; i < boundarySize; i++) + boundary[i]=TCPInterface::Base64Map()[rakNetRandom.RandomMT()%64]; + boundary[boundarySize]=0; + } + + sprintf(query, "MIME-version: 1.0\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + if (attachedFiles && attachedFiles->fileList.Size()) + { + sprintf(query, "Content-type: multipart/mixed; BOUNDARY=\"%s\"\r\n\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + sprintf(query, "This is a multi-part message in MIME format.\r\n\r\n--%s\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + + sprintf(query, "Content-Type: text/plain; charset=\"US-ASCII\"\r\n\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + // Write the body of the email, doing some lame shitty shit where I have to make periods at the start of a newline have a second period. + char *newBody; + int bodyLength; + bodyLength=(int)strlen(body); + newBody = (char*) rakMalloc_Ex( bodyLength*3, _FILE_AND_LINE_ ); + if (bodyLength>0) + newBody[0]=body[0]; + for (i=1, j=1; i < bodyLength; i++) + { + // Transform \n . \r \n into \n . . \r \n + if (i < bodyLength-2 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='\r' && + body[i+2]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=2; + } + // Transform \n . . \r \n into \n . . . \r \n + // Having to process .. is a bug in the mail server - the spec says ONLY \r\n.\r\n should be transformed + else if (i <= bodyLength-3 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='.' && + body[i+2]=='\r' && + body[i+3]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=3; + } + // Transform \n . \n into \n . . \r \n (this is a bug in the mail server - the spec says do not count \n alone but it does) + else if (i < bodyLength-1 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=1; + } + // Transform \n . . \n into \n . . . \r \n (this is a bug in the mail server - the spec says do not count \n alone but it does) + // In fact having to process .. is a bug too - because the spec says ONLY \r\n.\r\n should be transformed + else if (i <= bodyLength-2 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='.' && + body[i+2]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=2; + } + else + newBody[j++]=body[i]; + } + + newBody[j++]='\r'; + newBody[j++]='\n'; + tcpInterface.Send(newBody, j, emailServer,false); + + rakFree_Ex(newBody, _FILE_AND_LINE_ ); + int outputOffset; + + // What a pain in the rear. I have to map the binary to printable characters using 6 bits per character. + if (attachedFiles && attachedFiles->fileList.Size()) + { + for (i=0; i < (int) attachedFiles->fileList.Size(); i++) + { + // Write boundary + sprintf(query, "\r\n--%s\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + sprintf(query, "Content-Type: APPLICATION/Octet-Stream; SizeOnDisk=%i; name=\"%s\"\r\nContent-Transfer-Encoding: BASE64\r\nContent-Description: %s\r\n\r\n", attachedFiles->fileList[i].dataLengthBytes, attachedFiles->fileList[i].filename.C_String(), attachedFiles->fileList[i].filename.C_String()); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + newBody = (char*) rakMalloc_Ex( (size_t) (attachedFiles->fileList[i].dataLengthBytes*3)/2, _FILE_AND_LINE_ ); + + outputOffset=TCPInterface::Base64Encoding(attachedFiles->fileList[i].data, (int) attachedFiles->fileList[i].dataLengthBytes, newBody); + + // Send the base64 mapped file. + tcpInterface.Send(newBody, outputOffset, emailServer,false); + rakFree_Ex(newBody, _FILE_AND_LINE_ ); + + } + + // Write last boundary + sprintf(query, "\r\n--%s--\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + + + sprintf(query, "\r\n.\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + tcpInterface.Send("QUIT\r\n", (unsigned int)strlen("QUIT\r\n"), emailServer,false); + + RakSleep(30); + if (doPrintf) + { + packet = tcpInterface.Receive(); + while (packet) + { + RAKNET_DEBUG_PRINTF("%s", packet->data); + packet = tcpInterface.Receive(); + } + } + tcpInterface.Stop(); + return 0; // Success +} + +const char *EmailSender::GetResponse(TCPInterface *tcpInterface, const SystemAddress &emailServer, bool doPrintf) +{ + RakNet::Packet *packet; + RakNet::TimeMS timeout; + timeout=RakNet::GetTimeMS()+5000; +#ifdef _MSC_VER + #pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + if (tcpInterface->HasLostConnection()==emailServer) + return "Connection to server lost."; + packet = tcpInterface->Receive(); + if (packet) + { + if (doPrintf) + { + RAKNET_DEBUG_PRINTF("%s", packet->data); + } +#if OPEN_SSL_CLIENT_SUPPORT==1 + if (strstr((const char*)packet->data, "220")) + { + tcpInterface->StartSSLClient(packet->systemAddress); + return "AUTHENTICATE"; // OK + } +// if (strstr((const char*)packet->data, "250-AUTH LOGIN PLAIN")) +// { +// tcpInterface->StartSSLClient(packet->systemAddress); +// return "AUTHENTICATE"; // OK +// } +#endif + if (strstr((const char*)packet->data, "235")) + return 0; // Authentication accepted + if (strstr((const char*)packet->data, "354")) + return 0; // Go ahead +#if OPEN_SSL_CLIENT_SUPPORT==1 + if (strstr((const char*)packet->data, "250-STARTTLS")) + { + tcpInterface->Send("STARTTLS\r\n", (unsigned int) strlen("STARTTLS\r\n"), packet->systemAddress, false); + return "CONTINUE"; + } +#endif + if (strstr((const char*)packet->data, "250")) + return 0; // OK + if (strstr((const char*)packet->data, "550")) + return "Failed on error code 550"; + if (strstr((const char*)packet->data, "553")) + return "Failed on error code 553"; + } + if (RakNet::GetTimeMS() > timeout) + return "Timed out"; + RakSleep(100); + } +} + + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/EmailSender.h b/project/lib_projects/raknet/jni/RaknetSources/EmailSender.h new file mode 100755 index 0000000..b2a75b4 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/EmailSender.h @@ -0,0 +1,58 @@ +/// \file EmailSender.h +/// \brief Rudimentary class to send email from code. Don't expect anything fancy. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_EmailSender==1 && _RAKNET_SUPPORT_TCPInterface==1 && _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __EMAIL_SENDER_H +#define __EMAIL_SENDER_H + +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "Export.h" +#include "Rand.h" +#include "TCPInterface.h" + +namespace RakNet +{ +/// Forward declarations +class FileList; +class TCPInterface; + +/// \brief Rudimentary class to send email from code. +class RAK_DLL_EXPORT EmailSender +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(EmailSender) + + /// \brief Sends an email. + /// \param[in] hostAddress The address of the email server. + /// \param[in] hostPort The port of the email server (usually 25) + /// \param[in] sender The email address you are sending from. + /// \param[in] recipient The email address you are sending to. + /// \param[in] senderName The email address you claim to be sending from + /// \param[in] recipientName The email address you claim to be sending to + /// \param[in] subject Email subject + /// \param[in] body Email body + /// \param[in] attachedFiles List of files to attach to the email. (Can be 0 to send none). + /// \param[in] doPrintf true to output SMTP info to console(for debugging?) + /// \param[in] password Used if the server uses AUTHENTICATE PLAIN over TLS (such as gmail) + /// \return 0 on success, otherwise a string indicating the error message + const char *Send(const char *hostAddress, unsigned short hostPort, const char *sender, const char *recipient, const char *senderName, const char *recipientName, const char *subject, const char *body, FileList *attachedFiles, bool doPrintf, const char *password); + +protected: + const char *GetResponse(TCPInterface *tcpInterface, const SystemAddress &emailServer, bool doPrintf); + RakNetRandom rakNetRandom; +}; + +} // namespace RakNet + +#endif + + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/EncodeClassName.cpp b/project/lib_projects/raknet/jni/RaknetSources/EncodeClassName.cpp new file mode 100755 index 0000000..d3f5a12 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/EncodeClassName.cpp @@ -0,0 +1 @@ + diff --git a/project/lib_projects/raknet/jni/RaknetSources/EpochTimeToString.cpp b/project/lib_projects/raknet/jni/RaknetSources/EpochTimeToString.cpp new file mode 100755 index 0000000..b3410ca --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/EpochTimeToString.cpp @@ -0,0 +1,35 @@ +#include "FormatString.h" +#include "EpochTimeToString.h" +#include +#include +#include +// localtime +#include +#include "LinuxStrings.h" + +char * EpochTimeToString(long long time) +{ + static int textIndex=0; + static char text[4][64]; + + if (++textIndex==4) + textIndex=0; + + struct tm * timeinfo; + time_t t = time; + timeinfo = localtime ( &t ); + strftime (text[textIndex],64,"%c.",timeinfo); + + /* + time_t + // Copied from the docs + struct tm *newtime; + newtime = _localtime64(& time); + asctime_s( text[textIndex], sizeof(text[textIndex]), newtime ); + + while (text[textIndex][0] && (text[textIndex][strlen(text[textIndex])-1]=='\n' || text[textIndex][strlen(text[textIndex])-1]=='\r')) + text[textIndex][strlen(text[textIndex])-1]=0; + */ + + return text[textIndex]; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/EpochTimeToString.h b/project/lib_projects/raknet/jni/RaknetSources/EpochTimeToString.h new file mode 100755 index 0000000..8644dc4 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/EpochTimeToString.h @@ -0,0 +1,15 @@ +/// \file EpochTimeToString.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __EPOCH_TIME_TO_STRING_H +#define __EPOCH_TIME_TO_STRING_H + +#include "Export.h" + +RAK_DLL_EXPORT char * EpochTimeToString(long long time); + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/Export.h b/project/lib_projects/raknet/jni/RaknetSources/Export.h new file mode 100755 index 0000000..5c90a19 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Export.h @@ -0,0 +1,13 @@ +#include "RakNetDefines.h" + +#if defined(_WIN32) && !(defined(__GNUC__) || defined(__GCCXML__)) && !defined(_RAKNET_LIB) && defined(_RAKNET_DLL) +#define RAK_DLL_EXPORT __declspec(dllexport) +#else +#define RAK_DLL_EXPORT +#endif + +#define STATIC_FACTORY_DECLARATIONS(x) static x* GetInstance(void); \ +static void DestroyInstance( x *i); + +#define STATIC_FACTORY_DEFINITIONS(x,y) x* x::GetInstance(void) {return RakNet::OP_NEW( _FILE_AND_LINE_ );} \ +void x::DestroyInstance( x *i) {RakNet::OP_DELETE(( y* ) i, _FILE_AND_LINE_);} diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileList.cpp b/project/lib_projects/raknet/jni/RaknetSources/FileList.cpp new file mode 100755 index 0000000..f4345c2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileList.cpp @@ -0,0 +1,794 @@ +#include "FileList.h" + +#if _RAKNET_SUPPORT_FileOperations==1 + +#include // RAKNET_DEBUG_PRINTF +#include "RakAssert.h" +#if defined(ANDROID) +#include +#elif defined(_WIN32) || defined(__CYGWIN__) +#include + + +#elif !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) && !defined ( __PPC__ ) && !defined ( __FreeBSD__ ) && !defined ( __S3E__ ) +#include +#endif + + +#ifdef _WIN32 +// For mkdir +#include + + +#else +#include +#endif + +//#include "SHA1.h" +#include "DS_Queue.h" +#include "StringCompressor.h" +#include "BitStream.h" +#include "FileOperations.h" +#include "SuperFastHash.h" +#include "RakAssert.h" +#include "LinuxStrings.h" + +#define MAX_FILENAME_LENGTH 512 +static const unsigned HASH_LENGTH=4; + +using namespace RakNet; + +// alloca + +#if defined(_WIN32) +#include + + +#else +#if !defined ( __FreeBSD__ ) +#include +#endif +#include +#include +#include +#include "_FindFirst.h" +#include //defines intptr_t +#endif + +#include "RakAlloca.h" + +//int RAK_DLL_EXPORT FileListNodeComp( char * const &key, const FileListNode &data ) +//{ +// return strcmp(key, data.filename); +//} + + +STATIC_FACTORY_DEFINITIONS(FileListProgress,FileListProgress) +STATIC_FACTORY_DEFINITIONS(FLP_Printf,FLP_Printf) +STATIC_FACTORY_DEFINITIONS(FileList,FileList) + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// First callback called when FileList::AddFilesFromDirectory() starts +void FLP_Printf::OnAddFilesFromDirectoryStarted(FileList *fileList, char *dir) { + (void) fileList; + RAKNET_DEBUG_PRINTF("Adding files from directory %s\n",dir);} + +/// Called for each directory, when that directory begins processing +void FLP_Printf::OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining) { + (void) fileList; + RAKNET_DEBUG_PRINTF("Adding %s. %i remaining.\n", dir, directoriesRemaining);} +void FLP_Printf::OnFilePushesComplete( SystemAddress systemAddress, unsigned short setID ) +{ + (void) setID; + + char str[32]; + systemAddress.ToString(true, (char*) str); + RAKNET_DEBUG_PRINTF("File pushes complete to %s\n", str); +} +void FLP_Printf::OnSendAborted( SystemAddress systemAddress ) +{ + char str[32]; + systemAddress.ToString(true, (char*) str); + RAKNET_DEBUG_PRINTF("Send aborted to %s\n", str); +} +FileList::FileList() +{ +} +FileList::~FileList() +{ + Clear(); +} +void FileList::AddFile(const char *filepath, const char *filename, FileListNodeContext context) +{ + if (filepath==0 || filename==0) + return; + + char *data; + //std::fstream file; + //file.open(filename, std::ios::in | std::ios::binary); + + FILE *fp = fopen(filepath, "rb"); + if (fp==0) + return; + fseek(fp, 0, SEEK_END); + int length = ftell(fp); + fseek(fp, 0, SEEK_SET); + + if (length > (int) ((unsigned int)-1 / 8)) + { + // If this assert hits, split up your file. You could also change BitSize_t in RakNetTypes.h to unsigned long long but this is not recommended for performance reasons + RakAssert("Cannot add files over 536 MB" && 0); + fclose(fp); + return; + } + + + + bool usedAlloca=false; + if (length < MAX_ALLOCA_STACK_ALLOCATION) + { + data = ( char* ) alloca( length ); + usedAlloca=true; + } + else + + { + data = (char*) rakMalloc_Ex( length, _FILE_AND_LINE_ ); + } + + fread(data, 1, length, fp); + AddFile(filename, filepath, data, length, length, context); + fclose(fp); + + + if (usedAlloca==false) + + rakFree_Ex(data, _FILE_AND_LINE_ ); + +} +void FileList::AddFile(const char *filename, const char *fullPathToFile, const char *data, const unsigned dataLength, const unsigned fileLength, FileListNodeContext context, bool isAReference, bool takeDataPointer) +{ + if (filename==0) + return; + if (strlen(filename)>MAX_FILENAME_LENGTH) + { + // Should be enough for anyone + RakAssert(0); + return; + } + // If adding a reference, do not send data + RakAssert(isAReference==false || data==0); + // Avoid duplicate insertions unless the data is different, in which case overwrite the old data + unsigned i; + for (i=0; i dirList; + char root[260]; + char fullPath[520]; + _finddata_t fileInfo; + intptr_t dir; + FILE *fp; + char *dirSoFar, *fileData; + dirSoFar=(char*) rakMalloc_Ex( 520, _FILE_AND_LINE_ ); + + if (applicationDirectory) + strcpy(root, applicationDirectory); + else + root[0]=0; + + int rootLen=(int)strlen(root); + if (rootLen) + { + strcpy(dirSoFar, root); + if (FixEndingSlash(dirSoFar)) + rootLen++; + } + else + dirSoFar[0]=0; + + if (subDirectory) + { + strcat(dirSoFar, subDirectory); + FixEndingSlash(dirSoFar); + } + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnAddFilesFromDirectoryStarted(this, dirSoFar); + // RAKNET_DEBUG_PRINTF("Adding files from directory %s\n",dirSoFar); + dirList.Push(dirSoFar, _FILE_AND_LINE_ ); + while (dirList.Size()) + { + dirSoFar=dirList.Pop(); + strcpy(fullPath, dirSoFar); + // Changed from *.* to * for Linux compatibility + strcat(fullPath, "*"); + + + dir=_findfirst(fullPath, &fileInfo ); + if (dir==-1) + { + _findclose(dir); + rakFree_Ex(dirSoFar, _FILE_AND_LINE_ ); + unsigned i; + for (i=0; i < dirList.Size(); i++) + rakFree_Ex(dirList[i], _FILE_AND_LINE_ ); + return; + } + +// RAKNET_DEBUG_PRINTF("Adding %s. %i remaining.\n", fullPath, dirList.Size()); + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnDirectory(this, fullPath, dirList.Size()); + + do + { + // no guarantee these entries are first... + if (strcmp("." , fileInfo.name) == 0 || + strcmp("..", fileInfo.name) == 0) + { + continue; + } + + if ((fileInfo.attrib & (_A_HIDDEN | _A_SUBDIR | _A_SYSTEM))==0) + { + strcpy(fullPath, dirSoFar); + strcat(fullPath, fileInfo.name); + fileData=0; + + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnFile(this, dirSoFar, fileInfo.name, fileInfo.size); + + if (writeData && writeHash) + { + fp = fopen(fullPath, "rb"); + if (fp) + { + fileData= (char*) rakMalloc_Ex( fileInfo.size+HASH_LENGTH, _FILE_AND_LINE_ ); + fread(fileData+HASH_LENGTH, fileInfo.size, 1, fp); + fclose(fp); + + unsigned int hash = SuperFastHash(fileData+HASH_LENGTH, fileInfo.size); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + memcpy(fileData, &hash, HASH_LENGTH); + + // sha1.Reset(); + // sha1.Update( ( unsigned char* ) fileData+HASH_LENGTH, fileInfo.size ); + // sha1.Final(); + // memcpy(fileData, sha1.GetHash(), HASH_LENGTH); + // File data and hash + AddFile((const char*)fullPath+rootLen, fullPath, fileData, fileInfo.size+HASH_LENGTH, fileInfo.size, context); + } + } + else if (writeHash) + { +// sha1.Reset(); +// sha1.HashFile((char*)fullPath); +// sha1.Final(); + + unsigned int hash = SuperFastHashFile(fullPath); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + + // Hash only + // AddFile((const char*)fullPath+rootLen, (const char*)sha1.GetHash(), HASH_LENGTH, fileInfo.size, context); + AddFile((const char*)fullPath+rootLen, fullPath, (const char*)&hash, HASH_LENGTH, fileInfo.size, context); + } + else if (writeData) + { + fileData= (char*) rakMalloc_Ex( fileInfo.size, _FILE_AND_LINE_ ); + fp = fopen(fullPath, "rb"); + fread(fileData, fileInfo.size, 1, fp); + fclose(fp); + + // File data only + AddFile(fullPath+rootLen, fullPath, fileData, fileInfo.size, fileInfo.size, context); + } + else + { + // Just the filename + AddFile(fullPath+rootLen, fullPath, 0, 0, fileInfo.size, context); + } + + if (fileData) + rakFree_Ex(fileData, _FILE_AND_LINE_ ); + } + else if ((fileInfo.attrib & _A_SUBDIR) && (fileInfo.attrib & (_A_HIDDEN | _A_SYSTEM))==0 && recursive) + { + char *newDir=(char*) rakMalloc_Ex( 520, _FILE_AND_LINE_ ); + strcpy(newDir, dirSoFar); + strcat(newDir, fileInfo.name); + strcat(newDir, "/"); + dirList.Push(newDir, _FILE_AND_LINE_ ); + } + + } while (_findnext(dir, &fileInfo ) != -1); + + _findclose(dir); + rakFree_Ex(dirSoFar, _FILE_AND_LINE_ ); + } + +} +void FileList::Clear(void) +{ + unsigned i; + for (i=0; iWriteCompressed(fileList.Size()); + unsigned i; + for (i=0; i < fileList.Size(); i++) + { + outBitStream->WriteCompressed(fileList[i].context.op); + outBitStream->WriteCompressed(fileList[i].context.fileId); + StringCompressor::Instance()->EncodeString(fileList[i].filename.C_String(), MAX_FILENAME_LENGTH, outBitStream); + + bool writeFileData = fileList[i].dataLengthBytes>0==true; + outBitStream->Write(writeFileData); + if (writeFileData) + { + outBitStream->WriteCompressed(fileList[i].dataLengthBytes); + outBitStream->Write(fileList[i].data, fileList[i].dataLengthBytes); + } + + outBitStream->Write((bool)(fileList[i].fileLengthBytes==fileList[i].dataLengthBytes)); + if (fileList[i].fileLengthBytes!=fileList[i].dataLengthBytes) + outBitStream->WriteCompressed(fileList[i].fileLengthBytes); + } +} +bool FileList::Deserialize(RakNet::BitStream *inBitStream) +{ + bool b, dataLenNonZero=false, fileLenMatchesDataLen=false; + char filename[512]; + unsigned int fileListSize; + FileListNode n; + b=inBitStream->ReadCompressed(fileListSize); +#ifdef _DEBUG + RakAssert(b); + RakAssert(fileListSize < 10000); +#endif + if (b==false || fileListSize > 10000) + return false; // Sanity check + Clear(); + unsigned i; + for (i=0; i < fileListSize; i++) + { + inBitStream->ReadCompressed(n.context.op); + inBitStream->ReadCompressed(n.context.fileId); + StringCompressor::Instance()->DecodeString((char*)filename, MAX_FILENAME_LENGTH, inBitStream); + inBitStream->Read(dataLenNonZero); + if (dataLenNonZero) + { + inBitStream->ReadCompressed(n.dataLengthBytes); + // sanity check + if (n.dataLengthBytes>2000000000) + { +#ifdef _DEBUG + RakAssert(n.dataLengthBytes<=2000000000); +#endif + return false; + } + n.data=(char*) rakMalloc_Ex( (size_t) n.dataLengthBytes, _FILE_AND_LINE_ ); + inBitStream->Read(n.data, n.dataLengthBytes); + } + else + { + n.dataLengthBytes=0; + n.data=0; + } + + b=inBitStream->Read(fileLenMatchesDataLen); + if (fileLenMatchesDataLen) + n.fileLengthBytes=(unsigned) n.dataLengthBytes; + else + b=inBitStream->ReadCompressed(n.fileLengthBytes); +#ifdef _DEBUG + RakAssert(b); +#endif + if (b==0) + { + Clear(); + return false; + } + n.filename=filename; + n.fullPathToFile=filename; + fileList.Insert(n, _FILE_AND_LINE_); + } + + return true; +} +void FileList::GetDeltaToCurrent(FileList *input, FileList *output, const char *dirSubset, const char *remoteSubdir) +{ + // For all files in this list that do not match the input list, write them to the output list. + // dirSubset allows checking only a portion of the files in this list. + unsigned thisIndex, inputIndex; + unsigned dirSubsetLen, localPathLen, remoteSubdirLen; + bool match; + if (dirSubset) + dirSubsetLen = (unsigned int) strlen(dirSubset); + else + dirSubsetLen = 0; + if (remoteSubdir && remoteSubdir[0]) + { + remoteSubdirLen=(unsigned int) strlen(remoteSubdir); + if (IsSlash(remoteSubdir[remoteSubdirLen-1])) + remoteSubdirLen--; + } + else + remoteSubdirLen=0; + + for (thisIndex=0; thisIndex < fileList.Size(); thisIndex++) + { + localPathLen = (unsigned int) fileList[thisIndex].filename.GetLength(); + while (localPathLen>0) + { + if (IsSlash(fileList[thisIndex].filename[localPathLen-1])) + { + localPathLen--; + break; + } + localPathLen--; + } + + // fileList[thisIndex].filename has to match dirSubset and be shorter or equal to it in length. + if (dirSubsetLen>0 && + (localPathLendirSubsetLen && IsSlash(fileList[thisIndex].filename[dirSubsetLen])==false))) + continue; + + match=false; + for (inputIndex=0; inputIndex < input->fileList.Size(); inputIndex++) + { + // If the filenames, hashes, and lengths match then skip this element in fileList. Otherwise write it to output + if (_stricmp(input->fileList[inputIndex].filename.C_String()+remoteSubdirLen,fileList[thisIndex].filename.C_String()+dirSubsetLen)==0) + { + match=true; + if (input->fileList[inputIndex].fileLengthBytes==fileList[thisIndex].fileLengthBytes && + input->fileList[inputIndex].dataLengthBytes==fileList[thisIndex].dataLengthBytes && + memcmp(input->fileList[inputIndex].data,fileList[thisIndex].data,(size_t) fileList[thisIndex].dataLengthBytes)==0) + { + // File exists on both machines and is the same. + break; + } + else + { + // File exists on both machines and is not the same. + output->AddFile(fileList[thisIndex].filename, fileList[thisIndex].fullPathToFile, 0,0, fileList[thisIndex].fileLengthBytes, FileListNodeContext(0,0), false); + break; + } + } + } + if (match==false) + { + // Other system does not have the file at all + output->AddFile(fileList[thisIndex].filename, fileList[thisIndex].fullPathToFile, 0,0, fileList[thisIndex].fileLengthBytes, FileListNodeContext(0,0), false); + } + } +} +void FileList::ListMissingOrChangedFiles(const char *applicationDirectory, FileList *missingOrChangedFiles, bool alwaysWriteHash, bool neverWriteHash) +{ + unsigned fileLength; +// CSHA1 sha1; + FILE *fp; + char fullPath[512]; + unsigned i; +// char *fileData; + + for (i=0; i < fileList.Size(); i++) + { + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath,fileList[i].filename); + fp=fopen(fullPath, "rb"); + if (fp==0) + { + missingOrChangedFiles->AddFile(fileList[i].filename, fileList[i].fullPathToFile, 0, 0, 0, FileListNodeContext(0,0), false); + } + else + { + fseek(fp, 0, SEEK_END); + fileLength = ftell(fp); + fseek(fp, 0, SEEK_SET); + + if (fileLength != fileList[i].fileLengthBytes && alwaysWriteHash==false) + { + missingOrChangedFiles->AddFile(fileList[i].filename, fileList[i].fullPathToFile, 0, 0, fileLength, FileListNodeContext(0,0), false); + } + else + { + +// fileData= (char*) rakMalloc_Ex( fileLength, _FILE_AND_LINE_ ); +// fread(fileData, fileLength, 1, fp); + +// sha1.Reset(); +// sha1.Update( ( unsigned char* ) fileData, fileLength ); +// sha1.Final(); + +// rakFree_Ex(fileData, _FILE_AND_LINE_ ); + + unsigned int hash = SuperFastHashFilePtr(fp); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + + //if (fileLength != fileList[i].fileLength || memcmp( sha1.GetHash(), fileList[i].data, HASH_LENGTH)!=0) + if (fileLength != fileList[i].fileLengthBytes || memcmp( &hash, fileList[i].data, HASH_LENGTH)!=0) + { + if (neverWriteHash==false) + // missingOrChangedFiles->AddFile((const char*)fileList[i].filename, (const char*)sha1.GetHash(), HASH_LENGTH, fileLength, 0); + missingOrChangedFiles->AddFile((const char*)fileList[i].filename, (const char*)fileList[i].fullPathToFile, (const char *) &hash, HASH_LENGTH, fileLength, FileListNodeContext(0,0), false); + else + missingOrChangedFiles->AddFile((const char*)fileList[i].filename, (const char*)fileList[i].fullPathToFile, 0, 0, fileLength, FileListNodeContext(0,0), false); + } + } + fclose(fp); + } + } +} +void FileList::PopulateDataFromDisk(const char *applicationDirectory, bool writeFileData, bool writeFileHash, bool removeUnknownFiles) +{ + FILE *fp; + char fullPath[512]; + unsigned i; +// CSHA1 sha1; + + i=0; + while (i < fileList.Size()) + { + rakFree_Ex(fileList[i].data, _FILE_AND_LINE_ ); + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath,fileList[i].filename.C_String()); + fp=fopen(fullPath, "rb"); + if (fp) + { + if (writeFileHash || writeFileData) + { + fseek(fp, 0, SEEK_END); + fileList[i].fileLengthBytes = ftell(fp); + fseek(fp, 0, SEEK_SET); + if (writeFileHash) + { + if (writeFileData) + { + // Hash + data so offset the data by HASH_LENGTH + fileList[i].data=(char*) rakMalloc_Ex( fileList[i].fileLengthBytes+HASH_LENGTH, _FILE_AND_LINE_ ); + fread(fileList[i].data+HASH_LENGTH, fileList[i].fileLengthBytes, 1, fp); +// sha1.Reset(); +// sha1.Update((unsigned char*)fileList[i].data+HASH_LENGTH, fileList[i].fileLength); +// sha1.Final(); + unsigned int hash = SuperFastHash(fileList[i].data+HASH_LENGTH, fileList[i].fileLengthBytes); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); +// memcpy(fileList[i].data, sha1.GetHash(), HASH_LENGTH); + memcpy(fileList[i].data, &hash, HASH_LENGTH); + } + else + { + // Hash only + fileList[i].dataLengthBytes=HASH_LENGTH; + if (fileList[i].fileLengthBytes < HASH_LENGTH) + fileList[i].data=(char*) rakMalloc_Ex( HASH_LENGTH, _FILE_AND_LINE_ ); + else + fileList[i].data=(char*) rakMalloc_Ex( fileList[i].fileLengthBytes, _FILE_AND_LINE_ ); + fread(fileList[i].data, fileList[i].fileLengthBytes, 1, fp); + // sha1.Reset(); + // sha1.Update((unsigned char*)fileList[i].data, fileList[i].fileLength); + // sha1.Final(); + unsigned int hash = SuperFastHash(fileList[i].data, fileList[i].fileLengthBytes); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + // memcpy(fileList[i].data, sha1.GetHash(), HASH_LENGTH); + memcpy(fileList[i].data, &hash, HASH_LENGTH); + } + } + else + { + // Data only + fileList[i].dataLengthBytes=fileList[i].fileLengthBytes; + fileList[i].data=(char*) rakMalloc_Ex( fileList[i].fileLengthBytes, _FILE_AND_LINE_ ); + fread(fileList[i].data, fileList[i].fileLengthBytes, 1, fp); + } + + fclose(fp); + i++; + } + else + { + fileList[i].data=0; + fileList[i].dataLengthBytes=0; + } + } + else + { + if (removeUnknownFiles) + { + fileList.RemoveAtIndex(i); + } + else + i++; + } + } +} +void FileList::FlagFilesAsReferences(void) +{ + for (unsigned int i=0; i < fileList.Size(); i++) + { + fileList[i].isAReference=true; + fileList[i].dataLengthBytes=fileList[i].fileLengthBytes; + } +} +void FileList::WriteDataToDisk(const char *applicationDirectory) +{ + char fullPath[512]; + unsigned i,j; + + for (i=0; i < fileList.Size(); i++) + { + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath,fileList[i].filename.C_String()); + + // Security - Don't allow .. in the filename anywhere so you can't write outside of the root directory + for (j=1; j < fileList[i].filename.GetLength(); j++) + { + if (fileList[i].filename[j]=='.' && fileList[i].filename[j-1]=='.') + { +#ifdef _DEBUG + RakAssert(0); +#endif + // Just cancel the write entirely + return; + } + } + + WriteFileWithDirectories(fullPath, fileList[i].data, (unsigned int) fileList[i].dataLengthBytes); + } +} + +#ifdef _MSC_VER +#pragma warning( disable : 4966 ) // unlink declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. +#endif +void FileList::DeleteFiles(const char *applicationDirectory) +{ + + + + char fullPath[512]; + unsigned i,j; + + for (i=0; i < fileList.Size(); i++) + { + // The filename should not have .. in the path - if it does ignore it + for (j=1; j < fileList[i].filename.GetLength(); j++) + { + if (fileList[i].filename[j]=='.' && fileList[i].filename[j-1]=='.') + { +#ifdef _DEBUG + RakAssert(0); +#endif + // Just cancel the deletion entirely + return; + } + } + + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath, fileList[i].filename.C_String()); + +#ifdef _MSC_VER +#pragma warning( disable : 4966 ) // unlink declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. +#endif + int result = unlink(fullPath); + if (result!=0) + { + RAKNET_DEBUG_PRINTF("FileList::DeleteFiles: unlink (%s) failed.\n", fullPath); + } + } + +} + +void FileList::AddCallback(FileListProgress *cb) +{ + if (cb==0) + return; + + if ((unsigned int) fileListProgressCallbacks.GetIndexOf(cb)==(unsigned int)-1) + fileListProgressCallbacks.Push(cb, _FILE_AND_LINE_); +} +void FileList::RemoveCallback(FileListProgress *cb) +{ + unsigned int idx = fileListProgressCallbacks.GetIndexOf(cb); + if (idx!=(unsigned int) -1) + fileListProgressCallbacks.RemoveAtIndex(idx); +} +void FileList::ClearCallbacks(void) +{ + fileListProgressCallbacks.Clear(true, _FILE_AND_LINE_); +} +void FileList::GetCallbacks(DataStructures::List &callbacks) +{ + callbacks = fileListProgressCallbacks; +} + + +bool FileList::FixEndingSlash(char *str) +{ +#ifdef _WIN32 + if (str[strlen(str)-1]!='/' && str[strlen(str)-1]!='\\') + { + strcat(str, "\\"); // Only \ works with system commands, used by AutopatcherClient + return true; + } +#else + if (str[strlen(str)-1]!='\\' && str[strlen(str)-1]!='/') + { + strcat(str, "/"); // Only / works with Linux + return true; + } +#endif + + return false; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_FileOperations diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileList.h b/project/lib_projects/raknet/jni/RaknetSources/FileList.h new file mode 100755 index 0000000..6469a1f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileList.h @@ -0,0 +1,258 @@ +/// \file FileList.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __FILE_LIST +#define __FILE_LIST + +#include "Export.h" +#include "DS_List.h" +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "FileListNodeContext.h" +#include "RakString.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + class BitStream; +} + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class FileList; + + +/// Represents once instance of a file +struct FileListNode +{ + /// Name of the file + RakNet::RakString filename; + + /// Full path to the file, which may be different than filename + RakNet::RakString fullPathToFile; + + /// File data (may be null if not ready) + char *data; + + /// Length of \a data. May be greater than fileLength if prepended with a file hash + BitSize_t dataLengthBytes; + + /// Length of the file + unsigned fileLengthBytes; + + /// User specific data for whatever, describing this file. + FileListNodeContext context; + + /// If true, data and dataLengthBytes should be empty. This is just storing the filename + bool isAReference; +}; + +/// Callback interface set with FileList::SetCallback() in case you want progress notifications when FileList::AddFilesFromDirectory() is called +class RAK_DLL_EXPORT FileListProgress +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FileListProgress) + + FileListProgress() {} + virtual ~FileListProgress() {} + + /// First callback called when FileList::AddFilesFromDirectory() starts + virtual void OnAddFilesFromDirectoryStarted(FileList *fileList, char *dir) { + (void) fileList; + (void) dir; + } + + /// Called for each directory, when that directory begins processing + virtual void OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining) { + (void) fileList; + (void) dir; + (void) directoriesRemaining; + } + + /// Called for each file, when that file begins processing + virtual void OnFile(FileList *fileList, char *dir, char *fileName, unsigned int fileSize) { + (void) fileList; + (void) dir; + (void) fileName; + (void) fileSize; + } + + /// \brief This function is called when we are sending a file to a remote system. + /// \param[in] fileName The name of the file being sent + /// \param[in] fileLengthBytes How long the file is + /// \param[in] offset The offset in bytes into the file that we are sending + /// \param[in] bytesBeingSent How many bytes we are sending this push + /// \param[in] done If this file is now done with this push + /// \param[in] targetSystem Who we are sending to + virtual void OnFilePush(const char *fileName, unsigned int fileLengthBytes, unsigned int offset, unsigned int bytesBeingSent, bool done, SystemAddress targetSystem, unsigned short setId) + { + (void) fileName; + (void) fileLengthBytes; + (void) offset; + (void) bytesBeingSent; + (void) done; + (void) targetSystem; + (void) setId; + } + + /// \brief This function is called when all files have been read and are being transferred to a remote system + virtual void OnFilePushesComplete( SystemAddress systemAddress, unsigned short setId ) + { + (void) systemAddress; + (void) setId; + } + + /// \brief This function is called when a send to a system was aborted (probably due to disconnection) + virtual void OnSendAborted( SystemAddress systemAddress ) + { + (void) systemAddress; + } +}; + +/// Implementation of FileListProgress to use RAKNET_DEBUG_PRINTF +class RAK_DLL_EXPORT FLP_Printf : public FileListProgress +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FLP_Printf) + + FLP_Printf() {} + virtual ~FLP_Printf() {} + + /// First callback called when FileList::AddFilesFromDirectory() starts + virtual void OnAddFilesFromDirectoryStarted(FileList *fileList, char *dir); + + /// Called for each directory, when that directory begins processing + virtual void OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining); + + /// \brief This function is called when all files have been transferred to a particular remote system + virtual void OnFilePushesComplete( SystemAddress systemAddress, unsigned short setID ); + + /// \brief This function is called when a send to a system was aborted (probably due to disconnection) + virtual void OnSendAborted( SystemAddress systemAddress ); +}; + +class RAK_DLL_EXPORT FileList +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FileList) + + FileList(); + ~FileList(); + /// \brief Add all the files at a given directory. + /// \param[in] applicationDirectory The first part of the path. This is not stored as part of the filename. Use \ as the path delineator. + /// \param[in] subDirectory The rest of the path to the file. This is stored as a prefix to the filename + /// \param[in] writeHash The first 4 bytes is a hash of the file, with the remainder the actual file data (should \a writeData be true) + /// \param[in] writeData Write the contents of each file + /// \param[in] recursive Whether or not to visit subdirectories + /// \param[in] context User defined byte to store with each file. Use for whatever you want. + void AddFilesFromDirectory(const char *applicationDirectory, const char *subDirectory, bool writeHash, bool writeData, bool recursive, FileListNodeContext context); + + /// Deallocate all memory + void Clear(void); + + /// Write all encoded data into a bitstream + void Serialize(RakNet::BitStream *outBitStream); + + /// Read all encoded data from a bitstream. Clear() is called before deserializing. + bool Deserialize(RakNet::BitStream *inBitStream); + + /// \brief Given the existing set of files, search applicationDirectory for the same files. + /// \details For each file that is missing or different, add that file to \a missingOrChangedFiles. Note: the file contents are not written, and only the hash if written if \a alwaysWriteHash is true + /// alwaysWriteHash and neverWriteHash are optimizations to avoid reading the file contents to generate the hash if not necessary because the file is missing or has different lengths anyway. + /// \param[in] applicationDirectory The first part of the path. This is not stored as part of the filename. Use \ as the path delineator. + /// \param[out] missingOrChangedFiles Output list written to + /// \param[in] alwaysWriteHash If true, and neverWriteHash is false, will hash the file content of the file on disk, and write that as the file data with a length of SHA1_LENGTH bytes. If false, if the file length is different, will only write the filename. + /// \param[in] neverWriteHash If true, will never write the hash, even if available. If false, will write the hash if the file lengths are the same and it was forced to do a comparison. + void ListMissingOrChangedFiles(const char *applicationDirectory, FileList *missingOrChangedFiles, bool alwaysWriteHash, bool neverWriteHash); + + /// \brief Return the files that need to be written to make \a input match this current FileList. + /// \details Specify dirSubset to only consider files that start with this path + /// specify remoteSubdir to assume that all filenames in input start with this path, so strip it off when comparing filenames. + /// \param[in] input Full list of files + /// \param[out] output Files that we need to match input + /// \param[in] dirSubset If the filename does not start with this path, just skip this file. + /// \param[in] remoteSubdir Remove this from the filenames of \a input when comparing to existing filenames. + void GetDeltaToCurrent(FileList *input, FileList *output, const char *dirSubset, const char *remoteSubdir); + + /// \brief Assuming FileList contains a list of filenames presumably without data, read the data for these filenames + /// \param[in] applicationDirectory Prepend this path to each filename. Trailing slash will be added if necessary. Use \ as the path delineator. + /// \param[in] writeFileData True to read and store the file data. The first SHA1_LENGTH bytes will contain the hash if \a writeFileHash is true + /// \param[in] writeFileHash True to read and store the hash of the file data. The first SHA1_LENGTH bytes will contain the hash if \a writeFileHash is true + /// \param[in] removeUnknownFiles If a file does not exist on disk but is in the file list, remove it from the file list? + void PopulateDataFromDisk(const char *applicationDirectory, bool writeFileData, bool writeFileHash, bool removeUnknownFiles); + + /// By default, GetDeltaToCurrent tags files as non-references, meaning they are assumed to be populated later + /// This tags all files as references, required for IncrementalReadInterface to process them incrementally + void FlagFilesAsReferences(void); + + /// \brief Write all files to disk, prefixing the paths with applicationDirectory + /// \param[in] applicationDirectory path prefix + void WriteDataToDisk(const char *applicationDirectory); + + /// \brief Add a file, given data already in memory. + /// \param[in] filename Name of a file, optionally prefixed with a partial or complete path. Use \ as the path delineator. + /// \param[in] fullPathToFile Full path to the file on disk + /// \param[in] data Contents to write + /// \param[in] dataLength length of the data, which may be greater than fileLength should you prefix extra data, such as the hash + /// \param[in] fileLength Length of the file + /// \param[in] context User defined byte to store with each file. Use for whatever you want. + /// \param[in] isAReference Means that this is just a reference to a file elsewhere - does not actually have any data + /// \param[in] takeDataPointer If true, do not allocate dataLength. Just take the pointer passed to the \a data parameter + void AddFile(const char *filename, const char *fullPathToFile, const char *data, const unsigned dataLength, const unsigned fileLength, FileListNodeContext context, bool isAReference=false, bool takeDataPointer=false); + + /// \brief Add a file, reading it from disk. + /// \param[in] filepath Complete path to the file, including the filename itself + /// \param[in] filename filename to store internally, anything you want, but usually either the complete path or a subset of the complete path. + /// \param[in] context User defined byte to store with each file. Use for whatever you want. + void AddFile(const char *filepath, const char *filename, FileListNodeContext context); + + /// \brief Delete all files stored in the file list. + /// \param[in] applicationDirectory Prefixed to the path to each filename. Use \ as the path delineator. + void DeleteFiles(const char *applicationDirectory); + + /// \brief Adds a callback to get progress reports about what the file list instances do. + /// \param[in] cb A pointer to an externally defined instance of FileListProgress. This pointer is held internally, so should remain valid as long as this class is valid. + void AddCallback(FileListProgress *cb); + + /// \brief Removes a callback + /// \param[in] cb A pointer to an externally defined instance of FileListProgress that was previously added with AddCallback() + void RemoveCallback(FileListProgress *cb); + + /// \brief Removes all callbacks + void ClearCallbacks(void); + + /// Returns all callbacks added with AddCallback() + /// \param[out] callbacks The list is set to the list of callbacks + void GetCallbacks(DataStructures::List &callbacks); + + // Here so you can read it, but don't modify it + DataStructures::List fileList; + + static bool FixEndingSlash(char *str); +protected: + DataStructures::List fileListProgressCallbacks; +}; + +} // namespace RakNet + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + +#endif // _RAKNET_SUPPORT_FileOperations diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileListNodeContext.h b/project/lib_projects/raknet/jni/RaknetSources/FileListNodeContext.h new file mode 100755 index 0000000..c0fd2e7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileListNodeContext.h @@ -0,0 +1,39 @@ +/// \file FileListNodeContext.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __FILE_LIST_NODE_CONTEXT_H +#define __FILE_LIST_NODE_CONTEXT_H + +#include "BitStream.h" + +struct FileListNodeContext +{ + FileListNodeContext() {dataPtr=0; dataLength=0;} + FileListNodeContext(unsigned char o, unsigned int f) : op(o), fileId(f) {dataPtr=0; dataLength=0;} + ~FileListNodeContext() {} + + unsigned char op; + unsigned int fileId; + void *dataPtr; + unsigned int dataLength; +}; + +inline RakNet::BitStream& operator<<(RakNet::BitStream& out, FileListNodeContext& in) +{ + out.Write(in.op); + out.Write(in.fileId); + return out; +} +inline RakNet::BitStream& operator>>(RakNet::BitStream& in, FileListNodeContext& out) +{ + in.Read(out.op); + bool success = in.Read(out.fileId); + (void) success; + assert(success); + return in; +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileListTransfer.cpp b/project/lib_projects/raknet/jni/RaknetSources/FileListTransfer.cpp new file mode 100755 index 0000000..887fb7e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileListTransfer.cpp @@ -0,0 +1,1086 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileListTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#include "FileListTransfer.h" +#include "DS_HuffmanEncodingTree.h" +#include "FileListTransferCBInterface.h" +#include "StringCompressor.h" +#include "FileList.h" +#include "DS_Queue.h" +#include "MessageIdentifiers.h" +#include "RakNetTypes.h" +#include "RakPeerInterface.h" +#include "RakNetStatistics.h" +#include "IncrementalReadInterface.h" +#include "RakAssert.h" +#include "RakAlloca.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + +struct FLR_MemoryBlock +{ + char *flrMemoryBlock; +}; + +struct FileListReceiver +{ + FileListReceiver(); + ~FileListReceiver(); + FileListTransferCBInterface *downloadHandler; + SystemAddress allowedSender; + unsigned short setID; + unsigned setCount; + unsigned setTotalCompressedTransmissionLength; + unsigned setTotalFinalLength; + unsigned setTotalDownloadedLength; + bool gotSetHeader; + bool deleteDownloadHandler; + bool isCompressed; + int filesReceived; + DataStructures::Map pushedFiles; + + // Notifications + unsigned int partLength; + +}; + +} // namespace RakNet + +using namespace RakNet; + +FileListReceiver::FileListReceiver() {filesReceived=0; setTotalDownloadedLength=0; partLength=1; DataStructures::Map::IMPLEMENT_DEFAULT_COMPARISON();} +FileListReceiver::~FileListReceiver() { + unsigned int i=0; + for (i=0; i < pushedFiles.Size(); i++) + rakFree_Ex(pushedFiles[i].flrMemoryBlock, _FILE_AND_LINE_ ); +} + +STATIC_FACTORY_DEFINITIONS(FileListTransfer,FileListTransfer) + +void FileListTransfer::FileToPushRecipient::DeleteThis(void) +{ + for (unsigned int j=0; j < filesToPush.Size(); j++) + RakNet::OP_DELETE(filesToPush[j],_FILE_AND_LINE_); + RakNet::OP_DELETE(this,_FILE_AND_LINE_); +} +void FileListTransfer::FileToPushRecipient::AddRef(void) +{ + refCountMutex.Lock(); + ++refCount; + refCountMutex.Unlock(); +} +void FileListTransfer::FileToPushRecipient::Deref(void) +{ + refCountMutex.Lock(); + --refCount; + if (refCount==0) + { + refCountMutex.Unlock(); + DeleteThis(); + return; + } + refCountMutex.Unlock(); +} +FileListTransfer::FileListTransfer() +{ + setId=0; + DataStructures::Map::IMPLEMENT_DEFAULT_COMPARISON(); +} +FileListTransfer::~FileListTransfer() +{ + threadPool.StopThreads(); + Clear(); +} +void FileListTransfer::StartIncrementalReadThreads(int numThreads, int threadPriority) +{ + (void) threadPriority; + + threadPool.StartThreads(numThreads, 0); +} +unsigned short FileListTransfer::SetupReceive(FileListTransferCBInterface *handler, bool deleteHandler, SystemAddress allowedSender) +{ + if (rakPeerInterface && rakPeerInterface->GetConnectionState(allowedSender)!=IS_CONNECTED) + return (unsigned short)-1; + FileListReceiver *receiver; + + if (fileListReceivers.Has(setId)) + { + receiver=fileListReceivers.Get(setId); + receiver->downloadHandler->OnDereference(); + if (receiver->deleteDownloadHandler) + RakNet::OP_DELETE(receiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(receiver, _FILE_AND_LINE_); + fileListReceivers.Delete(setId); + } + + unsigned short oldId; + receiver = RakNet::OP_NEW( _FILE_AND_LINE_ ); + RakAssert(handler); + receiver->downloadHandler=handler; + receiver->allowedSender=allowedSender; + receiver->gotSetHeader=false; + receiver->deleteDownloadHandler=deleteHandler; + receiver->setID=setId; + fileListReceivers.Set(setId, receiver); + oldId=setId; + if (++setId==(unsigned short)-1) + setId=0; + return oldId; +} + +void FileListTransfer::Send(FileList *fileList, RakNet::RakPeerInterface *rakPeer, SystemAddress recipient, unsigned short setID, PacketPriority priority, char orderingChannel, IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize) +{ + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileList->AddCallback(fileListProgressCallbacks[flpcIndex]); + + unsigned int i, totalLength; + RakNet::BitStream outBitstream; + bool sendReference; + const char *dataBlocks[2]; + int lengths[2]; + totalLength=0; + for (i=0; i < fileList->fileList.Size(); i++) + { + const FileListNode &fileListNode = fileList->fileList[i]; + totalLength+=fileListNode.fileLengthBytes; + } + + // Write the chunk header, which contains the frequency table, the total number of files, and the total number of bytes + bool anythingToWrite; + outBitstream.Write((MessageID)ID_FILE_LIST_TRANSFER_HEADER); + outBitstream.Write(setID); + anythingToWrite=fileList->fileList.Size()>0; + outBitstream.Write(anythingToWrite); + if (anythingToWrite) + { + outBitstream.WriteCompressed(fileList->fileList.Size()); + outBitstream.WriteCompressed(totalLength); + + if (rakPeer) + rakPeer->Send(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + else + SendUnified(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + + DataStructures::Queue filesToPush; + + for (i=0; i < fileList->fileList.Size(); i++) + { + sendReference = fileList->fileList[i].isAReference && _incrementalReadInterface!=0; + if (sendReference) + { + FileToPush *fileToPush = RakNet::OP_NEW(_FILE_AND_LINE_); + fileToPush->fileListNode.context=fileList->fileList[i].context; + fileToPush->setIndex=i; + fileToPush->fileListNode.filename=fileList->fileList[i].filename; + fileToPush->fileListNode.fullPathToFile=fileList->fileList[i].fullPathToFile; + fileToPush->fileListNode.fileLengthBytes=fileList->fileList[i].fileLengthBytes; + fileToPush->fileListNode.dataLengthBytes=fileList->fileList[i].dataLengthBytes; + // fileToPush->systemAddress=recipient; + fileToPush->setID=setID; + fileToPush->packetPriority=priority; + fileToPush->orderingChannel=orderingChannel; + fileToPush->currentOffset=0; + fileToPush->incrementalReadInterface=_incrementalReadInterface; + fileToPush->chunkSize=_chunkSize; + filesToPush.Push(fileToPush,_FILE_AND_LINE_); + } + else + { + outBitstream.Reset(); + outBitstream.Write((MessageID)ID_FILE_LIST_TRANSFER_FILE); + outBitstream << fileList->fileList[i].context; + // outBitstream.Write(fileList->fileList[i].context); + outBitstream.Write(setID); + StringCompressor::Instance()->EncodeString(fileList->fileList[i].filename, 512, &outBitstream); + + outBitstream.WriteCompressed(i); + outBitstream.WriteCompressed(fileList->fileList[i].dataLengthBytes); // Original length in bytes + + outBitstream.AlignWriteToByteBoundary(); + + dataBlocks[0]=(char*) outBitstream.GetData(); + lengths[0]=outBitstream.GetNumberOfBytesUsed(); + dataBlocks[1]=fileList->fileList[i].data; + lengths[1]=fileList->fileList[i].dataLengthBytes; + SendListUnified(dataBlocks,lengths,2,priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + } + } + + if (filesToPush.IsEmpty()==false) + { + FileToPushRecipient *ftpr=0; + + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]->systemAddress==recipient) + { + ftpr=fileToPushRecipientList[i]; + ftpr->AddRef(); + break; + } + } + fileToPushRecipientListMutex.Unlock(); + + if (ftpr==0) + { + ftpr = RakNet::OP_NEW(_FILE_AND_LINE_); + ftpr->systemAddress=recipient; + ftpr->refCount=2; // Allocated and in the list + fileToPushRecipientList.Push(ftpr, _FILE_AND_LINE_); + } + while (filesToPush.IsEmpty()==false) + { + ftpr->filesToPush.Push(filesToPush.Pop(), _FILE_AND_LINE_); + } + // ftpr out of scope + ftpr->Deref(); + SendIRIToAddress(recipient); + return; + } + else + { + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnFilePushesComplete(recipient, setID); + } + } + else + { + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnFilePushesComplete(recipient, setID); + + if (rakPeer) + rakPeer->Send(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + else + SendUnified(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + } +} + +bool FileListTransfer::DecodeSetHeader(Packet *packet) +{ + bool anythingToWrite=false; + unsigned short setID; + RakNet::BitStream inBitStream(packet->data, packet->length, false); + inBitStream.IgnoreBits(8); + inBitStream.Read(setID); + FileListReceiver *fileListReceiver; + if (fileListReceivers.Has(setID)==false) + { + // If this assert hits you didn't call SetupReceive +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + fileListReceiver=fileListReceivers.Get(setID); + if (fileListReceiver->allowedSender!=packet->systemAddress) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + +#ifdef _DEBUG + RakAssert(fileListReceiver->gotSetHeader==false); +#endif + + inBitStream.Read(anythingToWrite); + + if (anythingToWrite) + { + inBitStream.ReadCompressed(fileListReceiver->setCount); + if (inBitStream.ReadCompressed(fileListReceiver->setTotalFinalLength)) + { + fileListReceiver->setTotalCompressedTransmissionLength=fileListReceiver->setTotalFinalLength; + fileListReceiver->gotSetHeader=true; + return true; + } + + } + else + { + FileListTransferCBInterface::DownloadCompleteStruct dcs; + dcs.setID=fileListReceiver->setID; + dcs.numberOfFilesInThisSet=fileListReceiver->setCount; + dcs.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + dcs.senderSystemAddress=packet->systemAddress; + dcs.senderGuid=packet->guid; + + if (fileListReceiver->downloadHandler->OnDownloadComplete(&dcs)==false) + { + fileListReceiver->downloadHandler->OnDereference(); + fileListReceivers.Delete(setID); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + } + + return true; + } + + return false; +} + +bool FileListTransfer::DecodeFile(Packet *packet, bool isTheFileAndIsNotDownloadProgress) +{ + FileListTransferCBInterface::OnFileStruct onFileStruct; + RakNet::BitStream inBitStream(packet->data, packet->length, false); + inBitStream.IgnoreBits(8); + + onFileStruct.senderSystemAddress=packet->systemAddress; + onFileStruct.senderGuid=packet->guid; + + unsigned int partCount=0; + unsigned int partTotal=0; + unsigned int partLength=0; + onFileStruct.fileData=0; + if (isTheFileAndIsNotDownloadProgress==false) + { + // Disable endian swapping on reading this, as it's generated locally in ReliabilityLayer.cpp + inBitStream.ReadBits( (unsigned char* ) &partCount, BYTES_TO_BITS(sizeof(partCount)), true ); + inBitStream.ReadBits( (unsigned char* ) &partTotal, BYTES_TO_BITS(sizeof(partTotal)), true ); + inBitStream.ReadBits( (unsigned char* ) &partLength, BYTES_TO_BITS(sizeof(partLength)), true ); + inBitStream.IgnoreBits(8); + // The header is appended to every chunk, which we continue to read after this statement flrMemoryBlock + } + inBitStream >> onFileStruct.context; + // inBitStream.Read(onFileStruct.context); + inBitStream.Read(onFileStruct.setID); + FileListReceiver *fileListReceiver; + if (fileListReceivers.Has(onFileStruct.setID)==false) + { + return false; + } + fileListReceiver=fileListReceivers.Get(onFileStruct.setID); + if (fileListReceiver->allowedSender!=packet->systemAddress) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + +#ifdef _DEBUG + RakAssert(fileListReceiver->gotSetHeader==true); +#endif + + if (StringCompressor::Instance()->DecodeString(onFileStruct.fileName, 512, &inBitStream)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + + inBitStream.ReadCompressed(onFileStruct.fileIndex); + inBitStream.ReadCompressed(onFileStruct.byteLengthOfThisFile); + onFileStruct.bytesDownloadedForThisFile=onFileStruct.byteLengthOfThisFile; + + if (isTheFileAndIsNotDownloadProgress) + { + // Support SendLists + inBitStream.AlignReadToByteBoundary(); + + onFileStruct.fileData = (char*) rakMalloc_Ex( (size_t) onFileStruct.byteLengthOfThisFile, _FILE_AND_LINE_ ); + + inBitStream.Read((char*)onFileStruct.fileData, onFileStruct.byteLengthOfThisFile); + + fileListReceiver->setTotalDownloadedLength+=onFileStruct.byteLengthOfThisFile; + } + + + onFileStruct.numberOfFilesInThisSet=fileListReceiver->setCount; +// onFileStruct.setTotalCompressedTransmissionLength=fileListReceiver->setTotalCompressedTransmissionLength; + onFileStruct.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + + // User callback for this file. + if (isTheFileAndIsNotDownloadProgress) + { + onFileStruct.bytesDownloadedForThisSet=fileListReceiver->setTotalDownloadedLength; + + FileListTransferCBInterface::FileProgressStruct fps; + fps.onFileStruct=&onFileStruct; + fps.partCount=1; + fps.partTotal=1; + fps.dataChunkLength=onFileStruct.byteLengthOfThisFile; + fps.firstDataChunk=onFileStruct.fileData; + fps.iriDataChunk=onFileStruct.fileData; + fps.allocateIrIDataChunkAutomatically=true; + fps.iriWriteOffset=0; + fps.senderSystemAddress=packet->systemAddress; + fps.senderGuid=packet->guid; + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + // Got a complete file + // Either we are using IncrementalReadInterface and it was a small file or + // We are not using IncrementalReadInterface + if (fileListReceiver->downloadHandler->OnFile(&onFileStruct)) + rakFree_Ex(onFileStruct.fileData, _FILE_AND_LINE_ ); + + fileListReceiver->filesReceived++; + + // If this set is done, free the memory for it. + if ((int) fileListReceiver->setCount==fileListReceiver->filesReceived) + { + FileListTransferCBInterface::DownloadCompleteStruct dcs; + dcs.setID=fileListReceiver->setID; + dcs.numberOfFilesInThisSet=fileListReceiver->setCount; + dcs.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + dcs.senderSystemAddress=packet->systemAddress; + dcs.senderGuid=packet->guid; + + if (fileListReceiver->downloadHandler->OnDownloadComplete(&dcs)==false) + { + fileListReceiver->downloadHandler->OnDereference(); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + fileListReceivers.Delete(onFileStruct.setID); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + } + } + + } + else + { + inBitStream.AlignReadToByteBoundary(); + + char *firstDataChunk; + unsigned int unreadBits = inBitStream.GetNumberOfUnreadBits(); + unsigned int unreadBytes = BITS_TO_BYTES(unreadBits); + firstDataChunk=(char*) inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()); + + onFileStruct.bytesDownloadedForThisSet=fileListReceiver->setTotalDownloadedLength+unreadBytes; + onFileStruct.bytesDownloadedForThisFile=onFileStruct.byteLengthOfThisFile; + + FileListTransferCBInterface::FileProgressStruct fps; + fps.onFileStruct=&onFileStruct; + fps.partCount=partCount; + fps.partTotal=partTotal; + fps.dataChunkLength=unreadBytes; + fps.firstDataChunk=firstDataChunk; + fps.iriDataChunk=0; + fps.allocateIrIDataChunkAutomatically=true; + fps.iriWriteOffset=0; + fps.senderSystemAddress=packet->systemAddress; + fps.senderGuid=packet->guid; + + // Remote system is sending a complete file, but the file is large enough that we get ID_PROGRESS_NOTIFICATION from the transport layer + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + } + + return true; +} +PluginReceiveResult FileListTransfer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_FILE_LIST_TRANSFER_HEADER: + DecodeSetHeader(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FILE_LIST_TRANSFER_FILE: + DecodeFile(packet, true); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FILE_LIST_REFERENCE_PUSH: + OnReferencePush(packet, true); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FILE_LIST_REFERENCE_PUSH_ACK: + OnReferencePushAck(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_DOWNLOAD_PROGRESS: + if (packet->length>sizeof(MessageID)+sizeof(unsigned int)*3) + { + if (packet->data[sizeof(MessageID)+sizeof(unsigned int)*3]==ID_FILE_LIST_TRANSFER_FILE) + { + DecodeFile(packet, false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + if (packet->data[sizeof(MessageID)+sizeof(unsigned int)*3]==ID_FILE_LIST_REFERENCE_PUSH) + { + OnReferencePush(packet, false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + break; + } + + return RR_CONTINUE_PROCESSING; +} +void FileListTransfer::OnRakPeerShutdown(void) +{ + threadPool.StopThreads(); + threadPool.ClearInput(); + Clear(); +} +void FileListTransfer::Clear(void) +{ + unsigned i; + for (i=0; i < fileListReceivers.Size(); i++) + { + fileListReceivers[i]->downloadHandler->OnDereference(); + if (fileListReceivers[i]->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceivers[i]->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceivers[i], _FILE_AND_LINE_); + } + fileListReceivers.Clear(); + + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + FileToPushRecipient *ftpr = fileToPushRecipientList[i]; + // Taken out of the list + ftpr->Deref(); + } + fileToPushRecipientList.Clear(false,_FILE_AND_LINE_); + fileToPushRecipientListMutex.Unlock(); + + //filesToPush.Clear(false, _FILE_AND_LINE_); +} +void FileListTransfer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + RemoveReceiver(systemAddress); +} +void FileListTransfer::CancelReceive(unsigned short setId) +{ + if (fileListReceivers.Has(setId)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + FileListReceiver *fileListReceiver=fileListReceivers.Get(setId); + fileListReceiver->downloadHandler->OnDereference(); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + fileListReceivers.Delete(setId); +} +void FileListTransfer::RemoveReceiver(SystemAddress systemAddress) +{ + unsigned i; + i=0; + threadPool.LockInput(); + while (i < threadPool.InputSize()) + { + if (threadPool.GetInputAtIndex(i).systemAddress==systemAddress) + { + threadPool.RemoveInputAtIndex(i); + } + else + i++; + } + threadPool.UnlockInput(); + + i=0; + while (i < fileListReceivers.Size()) + { + if (fileListReceivers[i]->allowedSender==systemAddress) + { + fileListReceivers[i]->downloadHandler->OnDereference(); + if (fileListReceivers[i]->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceivers[i]->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceivers[i], _FILE_AND_LINE_); + fileListReceivers.RemoveAtIndex(i); + } + else + i++; + } + + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]->systemAddress==systemAddress) + { + FileToPushRecipient *ftpr = fileToPushRecipientList[i]; + + // Tell the user that this recipient was lost + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnSendAborted(ftpr->systemAddress); + + fileToPushRecipientList.RemoveAtIndex(i); + // Taken out of the list + ftpr->Deref(); + break; + } + } + fileToPushRecipientListMutex.Unlock(); +} +bool FileListTransfer::IsHandlerActive(unsigned short setId) +{ + return fileListReceivers.Has(setId); +} +void FileListTransfer::AddCallback(FileListProgress *cb) +{ + if (cb==0) + return; + + if (fileListProgressCallbacks.GetIndexOf(cb)==(unsigned int) -1) + fileListProgressCallbacks.Push(cb, _FILE_AND_LINE_); +} +void FileListTransfer::RemoveCallback(FileListProgress *cb) +{ + unsigned int idx = fileListProgressCallbacks.GetIndexOf(cb); + if (idx!=(unsigned int) -1) + fileListProgressCallbacks.RemoveAtIndex(idx); +} +void FileListTransfer::ClearCallbacks(void) +{ + fileListProgressCallbacks.Clear(true, _FILE_AND_LINE_); +} +void FileListTransfer::GetCallbacks(DataStructures::List &callbacks) +{ + callbacks = fileListProgressCallbacks; +} + +void FileListTransfer::Update(void) +{ + unsigned i; + i=0; + while (i < fileListReceivers.Size()) + { + if (fileListReceivers[i]->downloadHandler->Update()==false) + { + fileListReceivers[i]->downloadHandler->OnDereference(); + if (fileListReceivers[i]->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceivers[i]->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceivers[i], _FILE_AND_LINE_); + fileListReceivers.RemoveAtIndex(i); + } + else + i++; + } +} +void FileListTransfer::OnReferencePush(Packet *packet, bool isTheFileAndIsNotDownloadProgress) +{ + RakNet::BitStream refPushAck; + if (isTheFileAndIsNotDownloadProgress) + { + // This is not a progress notification, it is actually the entire packet + refPushAck.Write((MessageID)ID_FILE_LIST_REFERENCE_PUSH_ACK); + SendUnified(&refPushAck,HIGH_PRIORITY, RELIABLE, 0, packet->systemAddress, false); + } + else + { + // 12/23/09 Why do I care about ID_DOWNLOAD_PROGRESS for reference pushes? + return; + } + + FileListTransferCBInterface::OnFileStruct onFileStruct; + RakNet::BitStream inBitStream(packet->data, packet->length, false); + inBitStream.IgnoreBits(8); + + unsigned int partCount=0; + unsigned int partTotal=1; + unsigned int partLength=0; + onFileStruct.fileData=0; + if (isTheFileAndIsNotDownloadProgress==false) + { + // UNREACHABLE CODE + // Disable endian swapping on reading this, as it's generated locally in ReliabilityLayer.cpp + inBitStream.ReadBits( (unsigned char* ) &partCount, BYTES_TO_BITS(sizeof(partCount)), true ); + inBitStream.ReadBits( (unsigned char* ) &partTotal, BYTES_TO_BITS(sizeof(partTotal)), true ); + inBitStream.ReadBits( (unsigned char* ) &partLength, BYTES_TO_BITS(sizeof(partLength)), true ); + inBitStream.IgnoreBits(8); + // The header is appended to every chunk, which we continue to read after this statement flrMemoryBlock + } + + inBitStream >> onFileStruct.context; + // inBitStream.Read(onFileStruct.context); + inBitStream.Read(onFileStruct.setID); + FileListReceiver *fileListReceiver; + if (fileListReceivers.Has(onFileStruct.setID)==false) + { + return; + } + fileListReceiver=fileListReceivers.Get(onFileStruct.setID); + if (fileListReceiver->allowedSender!=packet->systemAddress) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + +#ifdef _DEBUG + RakAssert(fileListReceiver->gotSetHeader==true); +#endif + + if (StringCompressor::Instance()->DecodeString(onFileStruct.fileName, 512, &inBitStream)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + + inBitStream.ReadCompressed(onFileStruct.fileIndex); + inBitStream.ReadCompressed(onFileStruct.byteLengthOfThisFile); + unsigned int offset; + unsigned int chunkLength; + inBitStream.ReadCompressed(offset); + inBitStream.ReadCompressed(chunkLength); + + bool lastChunk=false; + inBitStream.Read(lastChunk); + bool finished = lastChunk && isTheFileAndIsNotDownloadProgress; + + if (isTheFileAndIsNotDownloadProgress==false) + fileListReceiver->partLength=partLength; + + FLR_MemoryBlock mb; + if (fileListReceiver->pushedFiles.Has(onFileStruct.fileIndex)==false) + { + mb.flrMemoryBlock=(char*) rakMalloc_Ex(onFileStruct.byteLengthOfThisFile, _FILE_AND_LINE_); + fileListReceiver->pushedFiles.SetNew(onFileStruct.fileIndex, mb); + } + else + { + mb=fileListReceiver->pushedFiles.Get(onFileStruct.fileIndex); + } + + unsigned int unreadBits = inBitStream.GetNumberOfUnreadBits(); + unsigned int unreadBytes = BITS_TO_BYTES(unreadBits); + unsigned int amountToRead; + if (isTheFileAndIsNotDownloadProgress) + amountToRead=chunkLength; + else + amountToRead=unreadBytes; + + inBitStream.AlignReadToByteBoundary(); + + FileListTransferCBInterface::FileProgressStruct fps; + + if (isTheFileAndIsNotDownloadProgress) + { + if (mb.flrMemoryBlock) + { + // Either the very first block, or a subsequent block and allocateIrIDataChunkAutomatically was true for the first block + memcpy(mb.flrMemoryBlock+offset, inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()), amountToRead); + fps.iriDataChunk=mb.flrMemoryBlock+offset; + } + else + { + // In here mb.flrMemoryBlock is null + // This means the first block explicitly deallocated the memory, and no blocks will be permanently held by RakNet + fps.iriDataChunk=(char*) inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()); + } + + onFileStruct.bytesDownloadedForThisFile=offset+amountToRead; + } + else + { + fileListReceiver->setTotalDownloadedLength+=partLength; + onFileStruct.bytesDownloadedForThisFile=partCount*partLength; + fps.iriDataChunk=(char*) inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()); + } + onFileStruct.bytesDownloadedForThisSet=fileListReceiver->setTotalDownloadedLength; + + onFileStruct.numberOfFilesInThisSet=fileListReceiver->setCount; +// onFileStruct.setTotalCompressedTransmissionLength=fileListReceiver->setTotalCompressedTransmissionLength; + onFileStruct.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + // Note: mb.flrMemoryBlock may be null here + onFileStruct.fileData=mb.flrMemoryBlock; + onFileStruct.senderSystemAddress=packet->systemAddress; + onFileStruct.senderGuid=packet->guid; + + unsigned int totalNotifications; + unsigned int currentNotificationIndex; + if (chunkLength==0 || chunkLength==onFileStruct.byteLengthOfThisFile) + totalNotifications=1; + else + totalNotifications = onFileStruct.byteLengthOfThisFile / chunkLength + 1; + + if (chunkLength==0) + currentNotificationIndex = 0; + else + currentNotificationIndex = offset / chunkLength; + + fps.onFileStruct=&onFileStruct; + fps.partCount=currentNotificationIndex; + fps.partTotal=totalNotifications; + fps.dataChunkLength=amountToRead; + fps.firstDataChunk=mb.flrMemoryBlock; + fps.allocateIrIDataChunkAutomatically=true; + fps.onFileStruct->fileData=mb.flrMemoryBlock; + fps.iriWriteOffset=offset; + fps.senderSystemAddress=packet->systemAddress; + fps.senderGuid=packet->guid; + + if (finished) + { + char *oldFileData=fps.onFileStruct->fileData; + if (fps.partCount==0) + fps.firstDataChunk=fps.iriDataChunk; + if (fps.partTotal==1) + fps.onFileStruct->fileData=fps.iriDataChunk; + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + // Incremental read interface sent us a file chunk + // This is the last file chunk we were waiting for to consider the file done + if (fileListReceiver->downloadHandler->OnFile(&onFileStruct)) + rakFree_Ex(oldFileData, _FILE_AND_LINE_ ); + fileListReceiver->pushedFiles.Delete(onFileStruct.fileIndex); + + fileListReceiver->filesReceived++; + + // If this set is done, free the memory for it. + if ((int) fileListReceiver->setCount==fileListReceiver->filesReceived) + { + FileListTransferCBInterface::DownloadCompleteStruct dcs; + dcs.setID=fileListReceiver->setID; + dcs.numberOfFilesInThisSet=fileListReceiver->setCount; + dcs.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + dcs.senderSystemAddress=packet->systemAddress; + dcs.senderGuid=packet->guid; + + if (fileListReceiver->downloadHandler->OnDownloadComplete(&dcs)==false) + { + fileListReceiver->downloadHandler->OnDereference(); + fileListReceivers.Delete(onFileStruct.setID); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + } + } + } + else + { + if (isTheFileAndIsNotDownloadProgress) + { + // 12/23/09 Don't use OnReferencePush anymore, just use OnFileProgress + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + if (fps.allocateIrIDataChunkAutomatically==false) + { + rakFree_Ex(fileListReceiver->pushedFiles.Get(onFileStruct.fileIndex).flrMemoryBlock, _FILE_AND_LINE_ ); + fileListReceiver->pushedFiles.Get(onFileStruct.fileIndex).flrMemoryBlock=0; + } + } + else + { + // This is a download progress notification for a file chunk using incremental read interface + // We don't have all the data for this chunk yet + + // UNREACHABLE CODE + totalNotifications = onFileStruct.byteLengthOfThisFile / fileListReceiver->partLength + 1; + if (isTheFileAndIsNotDownloadProgress==false) + currentNotificationIndex = (offset+partCount*fileListReceiver->partLength) / fileListReceiver->partLength ; + else + currentNotificationIndex = (offset+chunkLength) / fileListReceiver->partLength ; + unreadBytes = onFileStruct.byteLengthOfThisFile - ((currentNotificationIndex+1) * fileListReceiver->partLength); + + if (rakPeerInterface) + { + // Thus chunk is incomplete + fps.iriDataChunk=0; + + fileListReceiver->downloadHandler->OnFileProgress(&fps); + } + } + } + + return; +} +namespace RakNet +{ +int SendIRIToAddressCB(FileListTransfer::ThreadData threadData, bool *returnOutput, void* perThreadData) +{ + (void) perThreadData; + + FileListTransfer *fileListTransfer = threadData.fileListTransfer; + SystemAddress systemAddress = threadData.systemAddress; + *returnOutput=false; + + // Was previously using GetStatistics to get outgoing buffer size, but TCP with UnifiedSend doesn't have this + unsigned int bytesRead; + const char *dataBlocks[2]; + int lengths[2]; + unsigned int smallFileTotalSize=0; + RakNet::BitStream outBitstream; + unsigned int ftpIndex; + + fileListTransfer->fileToPushRecipientListMutex.Lock(); + for (ftpIndex=0; ftpIndex < fileListTransfer->fileToPushRecipientList.Size(); ftpIndex++) + { + FileListTransfer::FileToPushRecipient *ftpr = fileListTransfer->fileToPushRecipientList[ftpIndex]; + // Referenced by both ftpr and list + ftpr->AddRef(); + + fileListTransfer->fileToPushRecipientListMutex.Unlock(); + + if (ftpr->systemAddress==systemAddress) + { + FileListTransfer::FileToPush *ftp = ftpr->filesToPush.Peek(); + + // Read and send chunk. If done, delete at this index + void *buff = rakMalloc_Ex(ftp->chunkSize, _FILE_AND_LINE_); + if (buff==0) + { + ftpr->Deref(); + notifyOutOfMemory(_FILE_AND_LINE_); + return 0; + } + + // Read the next file chunk + bytesRead=ftp->incrementalReadInterface->GetFilePart(ftp->fileListNode.fullPathToFile, ftp->currentOffset, ftp->chunkSize, buff, ftp->fileListNode.context); + + bool done = ftp->fileListNode.dataLengthBytes == ftp->currentOffset+bytesRead; + while (done && ftp->currentOffset==0 && ftpr->filesToPush.Size()>=2 && smallFileTotalSizechunkSize) + { + // Send all small files at once, rather than wait for ID_FILE_LIST_REFERENCE_PUSH. But at least one ID_FILE_LIST_REFERENCE_PUSH must be sent + outBitstream.Reset(); + outBitstream.Write((MessageID)ID_FILE_LIST_TRANSFER_FILE); + // outBitstream.Write(ftp->fileListNode.context); + outBitstream << ftp->fileListNode.context; + outBitstream.Write(ftp->setID); + StringCompressor::Instance()->EncodeString(ftp->fileListNode.filename, 512, &outBitstream); + outBitstream.WriteCompressed(ftp->setIndex); + outBitstream.WriteCompressed(ftp->fileListNode.dataLengthBytes); // Original length in bytes + outBitstream.AlignWriteToByteBoundary(); + dataBlocks[0]=(char*) outBitstream.GetData(); + lengths[0]=outBitstream.GetNumberOfBytesUsed(); + dataBlocks[1]=(const char*) buff; + lengths[1]=bytesRead; + + fileListTransfer->SendListUnified(dataBlocks,lengths,2,ftp->packetPriority, RELIABLE_ORDERED, ftp->orderingChannel, systemAddress, false); + + // LWS : fixed freed pointer reference +// unsigned int chunkSize = ftp->chunkSize; + RakNet::OP_DELETE(ftp,_FILE_AND_LINE_); + ftpr->filesToPush.Pop(); + smallFileTotalSize+=bytesRead; + //done = bytesRead!=ftp->chunkSize; + ftp = ftpr->filesToPush.Peek(); + + bytesRead=ftp->incrementalReadInterface->GetFilePart(ftp->fileListNode.fullPathToFile, ftp->currentOffset, ftp->chunkSize, buff, ftp->fileListNode.context); + done = ftp->fileListNode.dataLengthBytes == ftp->currentOffset+bytesRead; + } + + + outBitstream.Reset(); + outBitstream.Write((MessageID)ID_FILE_LIST_REFERENCE_PUSH); + // outBitstream.Write(ftp->fileListNode.context); + outBitstream << ftp->fileListNode.context; + outBitstream.Write(ftp->setID); + StringCompressor::Instance()->EncodeString(ftp->fileListNode.filename, 512, &outBitstream); + outBitstream.WriteCompressed(ftp->setIndex); + outBitstream.WriteCompressed(ftp->fileListNode.dataLengthBytes); // Original length in bytes + outBitstream.WriteCompressed(ftp->currentOffset); + ftp->currentOffset+=bytesRead; + outBitstream.WriteCompressed(bytesRead); + outBitstream.Write(done); + + for (unsigned int flpcIndex=0; flpcIndex < fileListTransfer->fileListProgressCallbacks.Size(); flpcIndex++) + fileListTransfer->fileListProgressCallbacks[flpcIndex]->OnFilePush(ftp->fileListNode.filename, ftp->fileListNode.fileLengthBytes, ftp->currentOffset-bytesRead, bytesRead, done, systemAddress, ftp->setID); + + dataBlocks[0]=(char*) outBitstream.GetData(); + lengths[0]=outBitstream.GetNumberOfBytesUsed(); + dataBlocks[1]=(char*) buff; + lengths[1]=bytesRead; + //rakPeerInterface->SendList(dataBlocks,lengths,2,ftp->packetPriority, RELIABLE_ORDERED, ftp->orderingChannel, ftp->systemAddress, false); + fileListTransfer->SendListUnified(dataBlocks,lengths,2,ftp->packetPriority, RELIABLE_ORDERED, ftp->orderingChannel, systemAddress, false); + + // Mutex state: FileToPushRecipient (ftpr) has AddRef. fileToPushRecipientListMutex not locked. + if (done) + { + // Done + unsigned short setId = ftp->setID; + RakNet::OP_DELETE(ftp,_FILE_AND_LINE_); + ftpr->filesToPush.Pop(); + + if (ftpr->filesToPush.Size()==0) + { + for (unsigned int flpcIndex=0; flpcIndex < fileListTransfer->fileListProgressCallbacks.Size(); flpcIndex++) + fileListTransfer->fileListProgressCallbacks[flpcIndex]->OnFilePushesComplete(systemAddress, setId); + + // Remove ftpr from fileToPushRecipientList + fileListTransfer->RemoveFromList(ftpr); + } + } + + // ftpr out of scope + ftpr->Deref(); + + rakFree_Ex(buff, _FILE_AND_LINE_ ); + return 0; + } + else + { + ftpr->Deref(); + fileListTransfer->fileToPushRecipientListMutex.Lock(); + } + } + + fileListTransfer->fileToPushRecipientListMutex.Unlock(); + + return 0; +} +} +void FileListTransfer::SendIRIToAddress(SystemAddress systemAddress) +{ + ThreadData threadData; + threadData.fileListTransfer=this; + threadData.systemAddress=systemAddress; + + if (threadPool.WasStarted()) + { + threadPool.AddInput(SendIRIToAddressCB, threadData); + } + else + { + bool doesNothing; + SendIRIToAddressCB(threadData, &doesNothing, 0); + } +} +void FileListTransfer::OnReferencePushAck(Packet *packet) +{ + SendIRIToAddress(packet->systemAddress); +} +void FileListTransfer::RemoveFromList(FileToPushRecipient *ftpr) +{ + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]==ftpr) + { + fileToPushRecipientList.RemoveAtIndex(i); + // List no longer references + ftpr->Deref(); + fileToPushRecipientListMutex.Unlock(); + return; + } + } + fileToPushRecipientListMutex.Unlock(); +} +unsigned int FileListTransfer::GetPendingFilesToAddress(SystemAddress recipient) +{ + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]->systemAddress==recipient) + { + unsigned int size = fileToPushRecipientList[i]->filesToPush.Size(); + fileToPushRecipientListMutex.Unlock(); + return size; + } + } + fileToPushRecipientListMutex.Unlock(); + + return 0; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileListTransfer.h b/project/lib_projects/raknet/jni/RaknetSources/FileListTransfer.h new file mode 100755 index 0000000..11bc4ad --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileListTransfer.h @@ -0,0 +1,173 @@ +/// \file FileListTransfer.h +/// \brief A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileListTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __FILE_LIST_TRANFER_H +#define __FILE_LIST_TRANFER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "DS_Map.h" +#include "RakNetTypes.h" +#include "PacketPriority.h" +#include "RakMemoryOverride.h" +#include "FileList.h" +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "ThreadPool.h" + +namespace RakNet +{ +/// Forward declarations +class IncrementalReadInterface; +class FileListTransferCBInterface; +class FileListProgress; +struct FileListReceiver; + +/// \defgroup FILE_LIST_TRANSFER_GROUP FileListTransfer +/// \brief A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. +/// \details Similar to the DirectoryDeltaTransfer plugin, except that it doesn't send deltas based on pre-existing files or actually write the files to disk. +/// +/// Usage: +/// Call SetupReceive to allow one file set to arrive. The value returned by FileListTransfer::SetupReceive() +/// is the setID that is allowed. +/// It's up to you to transmit this value to the other system, along with information indicating what kind of files you want to get. +/// The other system should then prepare a FileList and call FileListTransfer::Send(), passing the return value of FileListTransfer::SetupReceive() +/// as the \a setID parameter to FileListTransfer::Send() +/// \ingroup FILE_LIST_TRANSFER_GROUP +class RAK_DLL_EXPORT FileListTransfer : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FileListTransfer) + + FileListTransfer(); + virtual ~FileListTransfer(); + + /// \brief Optionally start worker threads when using _incrementalReadInterface for the Send() operation + /// \param[in] numThreads how many worker threads to start + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + void StartIncrementalReadThreads(int numThreads, int threadPriority=-99999); + + /// \brief Allows one corresponding Send() call from another system to arrive. + /// \param[in] handler The class to call on each file + /// \param[in] deleteHandler True to delete the handler when it is no longer needed. False to not do so. + /// \param[in] allowedSender Which system to allow files from. + /// \return A set ID value, which should be passed as the \a setID value to the Send() call on the other system. This value will be returned in the callback and is unique per file set. Returns 65535 on failure (not connected to sender) + unsigned short SetupReceive(FileListTransferCBInterface *handler, bool deleteHandler, SystemAddress allowedSender); + + /// \brief Send the FileList structure to another system, which must have previously called SetupReceive(). + /// \param[in] fileList A list of files. The data contained in FileList::data will be sent incrementally and compressed among all files in the set + /// \param[in] rakPeer The instance of RakNet to use to send the message. Pass 0 to use the instance the plugin is attached to + /// \param[in] recipient The address of the system to send to + /// \param[in] setID The return value of SetupReceive() which was previously called on \a recipient + /// \param[in] priority Passed to RakPeerInterface::Send() + /// \param[in] orderingChannel Passed to RakPeerInterface::Send() + /// \param[in] _incrementalReadInterface If a file in \a fileList has no data, _incrementalReadInterface will be used to read the file in chunks of size \a chunkSize + /// \param[in] _chunkSize How large of a block of a file to send at once + void Send(FileList *fileList, RakNet::RakPeerInterface *rakPeer, SystemAddress recipient, unsigned short setID, PacketPriority priority, char orderingChannel, IncrementalReadInterface *_incrementalReadInterface=0, unsigned int _chunkSize=262144*4*16); + + /// Return number of files waiting to go out to a particular address + unsigned int GetPendingFilesToAddress(SystemAddress recipient); + + /// \brief Stop a download. + void CancelReceive(unsigned short setId); + + /// \brief Remove all handlers associated with a particular system address. + void RemoveReceiver(SystemAddress systemAddress); + + /// \brief Is a handler passed to SetupReceive still running? + bool IsHandlerActive(unsigned short setId); + + /// \brief Adds a callback to get progress reports about what the file list instances do. + /// \param[in] cb A pointer to an externally defined instance of FileListProgress. This pointer is held internally, so should remain valid as long as this class is valid. + void AddCallback(FileListProgress *cb); + + /// \brief Removes a callback + /// \param[in] cb A pointer to an externally defined instance of FileListProgress that was previously added with AddCallback() + void RemoveCallback(FileListProgress *cb); + + /// \brief Removes all callbacks + void ClearCallbacks(void); + + /// Returns all callbacks added with AddCallback() + /// \param[out] callbacks The list is set to the list of callbacks + void GetCallbacks(DataStructures::List &callbacks); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal For plugin handling + virtual void OnRakPeerShutdown(void); + /// \internal For plugin handling + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal For plugin handling + virtual void Update(void); + +protected: + bool DecodeSetHeader(Packet *packet); + bool DecodeFile(Packet *packet, bool fullFile); + + void Clear(void); + + void OnReferencePush(Packet *packet, bool fullFile); + void OnReferencePushAck(Packet *packet); + void SendIRIToAddress(SystemAddress systemAddress); + + DataStructures::Map fileListReceivers; + unsigned short setId; + DataStructures::List fileListProgressCallbacks; + + struct FileToPush + { + FileListNode fileListNode; + PacketPriority packetPriority; + char orderingChannel; + unsigned int currentOffset; + unsigned short setID; + unsigned int setIndex; + IncrementalReadInterface *incrementalReadInterface; + unsigned int chunkSize; + }; + struct FileToPushRecipient + { + unsigned int refCount; + SimpleMutex refCountMutex; + void DeleteThis(void); + void AddRef(void); + void Deref(void); + + SystemAddress systemAddress; + DataStructures::Queue filesToPush; + }; + DataStructures::List< FileToPushRecipient* > fileToPushRecipientList; + SimpleMutex fileToPushRecipientListMutex; + void RemoveFromList(FileToPushRecipient *ftpr); + + struct ThreadData + { + FileListTransfer *fileListTransfer; + SystemAddress systemAddress; + }; + + ThreadPool threadPool; + + friend int SendIRIToAddressCB(FileListTransfer::ThreadData threadData, bool *returnOutput, void* perThreadData); +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileListTransferCBInterface.h b/project/lib_projects/raknet/jni/RaknetSources/FileListTransferCBInterface.h new file mode 100755 index 0000000..7337317 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileListTransferCBInterface.h @@ -0,0 +1,154 @@ +/// \file FileListTransferCBInterface.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __FILE_LIST_TRANSFER_CALLBACK_INTERFACE_H +#define __FILE_LIST_TRANSFER_CALLBACK_INTERFACE_H + +#include "RakMemoryOverride.h" +#include "FileListNodeContext.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + +/// \brief Used by FileListTransfer plugin as a callback for when we get a file. +/// \details You get the last file when fileIndex==numberOfFilesInThisSet +/// \sa FileListTransfer +class FileListTransferCBInterface +{ +public: + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct OnFileStruct + { + /// \brief The index into the set of files, from 0 to numberOfFilesInThisSet + unsigned fileIndex; + + /// \brief The name of the file + char fileName[512]; + + /// \brief The data pointed to by the file + char *fileData; + + /// \brief The actual length of this file. + BitSize_t byteLengthOfThisFile; + + /// \brief How many bytes of this file has been downloaded + BitSize_t bytesDownloadedForThisFile; + + /// \brief Files are transmitted in sets, where more than one set of files can be transmitted at the same time. + /// \details This is the identifier for the set, which is returned by FileListTransfer::SetupReceive + unsigned short setID; + + /// \brief The number of files that are in this set. + unsigned numberOfFilesInThisSet; + + /// \brief The total length of the transmitted files for this set, after being uncompressed + unsigned byteLengthOfThisSet; + + /// \brief The total length, in bytes, downloaded for this set. + unsigned bytesDownloadedForThisSet; + + /// \brief User data passed to one of the functions in the FileList class. + /// \details However, on error, this is instead changed to one of the enumerations in the PatchContext structure. + FileListNodeContext context; + + /// \brief Who sent this file + SystemAddress senderSystemAddress; + + /// \brief Who sent this file. Not valid when using TCP, only RakPeer (UDP) + RakNetGUID senderGuid; + }; + + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct FileProgressStruct + { + /// \param[out] onFileStruct General information about this file, such as the filename and the first \a partLength bytes. You do NOT need to save this data yourself. The complete file will arrive normally. + OnFileStruct *onFileStruct; + /// \param[out] partCount The zero based index into partTotal. The percentage complete done of this file is 100 * (partCount+1)/partTotal + unsigned int partCount; + /// \param[out] partTotal The total number of parts this file was split into. Each part will be roughly the MTU size, minus the UDP header and RakNet headers + unsigned int partTotal; + /// \param[out] dataChunkLength How many bytes long firstDataChunk and iriDataChunk are + unsigned int dataChunkLength; + /// \param[out] firstDataChunk The first \a partLength of the final file. If you store identifying information about the file in the first \a partLength bytes, you can read them while the download is taking place. If this hasn't arrived yet, firstDataChunk will be 0 + char *firstDataChunk; + /// \param[out] iriDataChunk If the remote system is sending this file using IncrementalReadInterface, then this is the chunk we just downloaded. It will not exist in memory after this callback. You should either store this to disk, or in memory. If it is 0, then the file is smaller than one chunk, and will be held in memory automatically + char *iriDataChunk; + /// \param[out] iriWriteOffset Offset in bytes from the start of the file for the data pointed to by iriDataChunk + unsigned int iriWriteOffset; + /// \param[out] Who sent this file + SystemAddress senderSystemAddress; + /// \param[out] Who sent this file. Not valid when using TCP, only RakPeer (UDP) + RakNetGUID senderGuid; + /// \param[in] allocateIrIDataChunkAutomatically If true, then RakNet will hold iriDataChunk for you and return it in OnFile. Defaults to true + bool allocateIrIDataChunkAutomatically; + }; + + struct DownloadCompleteStruct + { + /// \brief Files are transmitted in sets, where more than one set of files can be transmitted at the same time. + /// \details This is the identifier for the set, which is returned by FileListTransfer::SetupReceive + unsigned short setID; + + /// \brief The number of files that are in this set. + unsigned numberOfFilesInThisSet; + + /// \brief The total length of the transmitted files for this set, after being uncompressed + unsigned byteLengthOfThisSet; + + /// \brief Who sent this file + SystemAddress senderSystemAddress; + + /// \brief Who sent this file. Not valid when using TCP, only RakPeer (UDP) + RakNetGUID senderGuid; + }; + + FileListTransferCBInterface() {} + virtual ~FileListTransferCBInterface() {} + + /// \brief Got a file. + /// \details This structure is only valid for the duration of this function call. + /// \return Return true to have RakNet delete the memory allocated to hold this file for this function call. + virtual bool OnFile(OnFileStruct *onFileStruct)=0; + + /// \brief Got part of a big file internally in RakNet + /// \details This is called in one of two circumstances: Either the transport layer is returning ID_PROGRESS_NOTIFICATION, or you got a block via IncrementalReadInterface + /// If the transport layer is returning ID_PROGRESS_NOTIFICATION (see RakPeer::SetSplitMessageProgressInterval()) then FileProgressStruct::iriDataChunk will be 0. + /// If this is a block via IncrementalReadInterface, then iriDataChunk will point to the block just downloaded. + /// If not using IncrementalReadInterface, then you only care about partCount and partTotal to tell how far the download has progressed. YOu can use firstDataChunk to read the first part of the file if desired. The file is usable when you get the OnFile callback. + /// If using IncrementalReadInterface and you let RakNet buffer the files in memory (default), then it is the same as above. The file is usable when you get the OnFile callback. + /// If using IncrementalReadInterface and you do not let RakNet buffer the files in memory, then set allocateIrIDataChunkAutomatically to false. Write the file to disk whenever you get OnFileProgress and iriDataChunk is not 0, and ignore OnFile. + virtual void OnFileProgress(FileProgressStruct *fps)=0; + + /// \brief Called while the handler is active by FileListTransfer + /// \details Return false when you are done with the class. + /// At that point OnDereference will be called and the class will no longer be maintained by the FileListTransfer plugin. + virtual bool Update(void) {return true;} + + /// \brief Called when the download is completed. + /// \details If you are finished with this class, return false. + /// At that point OnDereference will be called and the class will no longer be maintained by the FileListTransfer plugin. + /// Otherwise return true, and Update will continue to be called. + virtual bool OnDownloadComplete(DownloadCompleteStruct *dcs) {(void) dcs; return false;} + + /// \brief This function is called when this instance is about to be dereferenced by the FileListTransfer plugin. + /// \details Update will no longer be called. + /// It will will be deleted automatically if true was passed to FileListTransfer::SetupReceive::deleteHandler + /// Otherwise it is up to you to delete it yourself. + virtual void OnDereference(void) {} +}; + +} // namespace RakNet + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileOperations.cpp b/project/lib_projects/raknet/jni/RaknetSources/FileOperations.cpp new file mode 100755 index 0000000..93f6f31 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileOperations.cpp @@ -0,0 +1,173 @@ +#include "FileOperations.h" +#if _RAKNET_SUPPORT_FileOperations==1 +#include "RakMemoryOverride.h" +#include "_FindFirst.h" // For linux +#include +#include +#ifdef _WIN32 +// For mkdir +#include +#include +#else +#include +#include +#include "_FindFirst.h" +#endif +#include "errno.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +#ifdef _MSC_VER +#pragma warning( disable : 4966 ) // mkdir declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. +#endif +bool WriteFileWithDirectories( const char *path, char *data, unsigned dataLength ) +{ + int index; + FILE *fp; + char *pathCopy; + int res; + + if ( path == 0 || path[ 0 ] == 0 ) + return false; + + pathCopy = (char*) rakMalloc_Ex( strlen( path ) + 1, _FILE_AND_LINE_ ); + + strcpy( pathCopy, path ); + + // Ignore first / if there is one + if (pathCopy[0]) + { + index = 1; + while ( pathCopy[ index ] ) + { + if ( pathCopy[ index ] == '/' || pathCopy[ index ] == '\\') + { + pathCopy[ index ] = 0; + + #ifdef _WIN32 + #pragma warning( disable : 4966 ) // mkdir declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. + res = mkdir( pathCopy ); + #else + + res = mkdir( pathCopy, 0744 ); + #endif + if (res<0 && errno!=EEXIST && errno!=EACCES) + { + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + return false; + } + + pathCopy[ index ] = '/'; + } + + index++; + } + } + + if (data) + { + fp = fopen( path, "wb" ); + + if ( fp == 0 ) + { + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + return false; + } + + fwrite( data, 1, dataLength, fp ); + + fclose( fp ); + } + else + { +#ifdef _WIN32 +#pragma warning( disable : 4966 ) // mkdir declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. + res = mkdir( pathCopy ); +#else + res = mkdir( pathCopy, 0744 ); +#endif + + if (res<0 && errno!=EEXIST) + { + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + return false; + } + } + + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + + return true; +} +bool IsSlash(unsigned char c) +{ + return c=='/' || c=='\\'; +} + +void AddSlash( char *input ) +{ + if (input==0 || input[0]==0) + return; + + int lastCharIndex=(int) strlen(input)-1; + if (input[lastCharIndex]=='\\') + input[lastCharIndex]='/'; + else if (input[lastCharIndex]!='/') + { + input[lastCharIndex+1]='/'; + input[lastCharIndex+2]=0; + } +} +bool DirectoryExists(const char *directory) +{ + _finddata_t fileInfo; + intptr_t dir; + char baseDirWithStars[560]; + strcpy(baseDirWithStars, directory); + AddSlash(baseDirWithStars); + strcat(baseDirWithStars, "*.*"); + dir=_findfirst(baseDirWithStars, &fileInfo ); + if (dir==-1) + return false; + _findclose(dir); + return true; +} +void QuoteIfSpaces(char *str) +{ + unsigned i; + bool hasSpace=false; + for (i=0; str[i]; i++) + { + if (str[i]==' ') + { + hasSpace=true; + break; + } + } + if (hasSpace) + { + int len=(int)strlen(str); + memmove(str+1, str, len); + str[0]='\"'; + str[len]='\"'; + str[len+1]=0; + } +} +unsigned int GetFileLength(const char *path) +{ + FILE *fp = fopen(path, "rb"); + if (fp==0) return 0; + fseek(fp, 0, SEEK_END); + unsigned int fileLength = ftell(fp); + fclose(fp); + return fileLength; + +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_FileOperations + diff --git a/project/lib_projects/raknet/jni/RaknetSources/FileOperations.h b/project/lib_projects/raknet/jni/RaknetSources/FileOperations.h new file mode 100755 index 0000000..fc7be06 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FileOperations.h @@ -0,0 +1,24 @@ +/// \file FileOperations.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __FILE_OPERATIONS_H +#define __FILE_OPERATIONS_H + +#include "Export.h" + +bool RAK_DLL_EXPORT WriteFileWithDirectories( const char *path, char *data, unsigned dataLength ); +bool RAK_DLL_EXPORT IsSlash(unsigned char c); +void RAK_DLL_EXPORT AddSlash( char *input ); +void RAK_DLL_EXPORT QuoteIfSpaces(char *str); +bool RAK_DLL_EXPORT DirectoryExists(const char *directory); +unsigned int RAK_DLL_EXPORT GetFileLength(const char *path); + +#endif + +#endif // _RAKNET_SUPPORT_FileOperations diff --git a/project/lib_projects/raknet/jni/RaknetSources/FormatString.cpp b/project/lib_projects/raknet/jni/RaknetSources/FormatString.cpp new file mode 100755 index 0000000..f91ae31 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FormatString.cpp @@ -0,0 +1,30 @@ +#include "FormatString.h" +#include +#include +#include +#include "LinuxStrings.h" + +char * FormatString(const char *format, ...) +{ + static int textIndex=0; + static char text[4][8096]; + va_list ap; + va_start(ap, format); + + if (++textIndex==4) + textIndex=0; + _vsnprintf(text[textIndex], 8096, format, ap); + va_end(ap); + text[textIndex][8096-1]=0; + + return text[textIndex]; +} + +char * FormatStringTS(char *output, const char *format, ...) +{ + va_list ap; + va_start(ap, format); + _vsnprintf(output, 512, format, ap); + va_end(ap); + return output; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/FormatString.h b/project/lib_projects/raknet/jni/RaknetSources/FormatString.h new file mode 100755 index 0000000..9badba8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FormatString.h @@ -0,0 +1,22 @@ +/// \file FormatString.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __FORMAT_STRING_H +#define __FORMAT_STRING_H + +#include "Export.h" + +extern "C" { +char * FormatString(const char *format, ...); +} +// Threadsafe +extern "C" { +char * FormatStringTS(char *output, const char *format, ...); +} + + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/FullyConnectedMesh2.cpp b/project/lib_projects/raknet/jni/RaknetSources/FullyConnectedMesh2.cpp new file mode 100755 index 0000000..fb9877e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FullyConnectedMesh2.cpp @@ -0,0 +1,552 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FullyConnectedMesh2==1 + +#include "FullyConnectedMesh2.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakAssert.h" +#include "GetTime.h" +#include "Rand.h" +#include "DS_OrderedList.h" + +using namespace RakNet; + +int FCM2ParticipantComp( const FullyConnectedMesh2::FCM2Participant &key, const FullyConnectedMesh2::FCM2Participant &data ) +{ + if (key.fcm2Guid < data.fcm2Guid) + return -1; + if (key.fcm2Guid > data.fcm2Guid) + return 1; + return 0; +} + +STATIC_FACTORY_DEFINITIONS(FullyConnectedMesh2,FullyConnectedMesh2); + +FullyConnectedMesh2::FullyConnectedMesh2() +{ + startupTime=0; + totalConnectionCount=0; + ourFCMGuid=0; + autoParticipateConnections=true; + + + + + connectOnNewRemoteConnections=true; + + hostRakNetGuid=UNASSIGNED_RAKNET_GUID; +} +FullyConnectedMesh2::~FullyConnectedMesh2() +{ + Clear(); +} +RakNetGUID FullyConnectedMesh2::GetConnectedHost(void) const +{ + if (ourFCMGuid==0) + return UNASSIGNED_RAKNET_GUID; + return hostRakNetGuid; +} +SystemAddress FullyConnectedMesh2::GetConnectedHostAddr(void) const +{ + if (ourFCMGuid==0) + return UNASSIGNED_SYSTEM_ADDRESS; + return rakPeerInterface->GetSystemAddressFromGuid(hostRakNetGuid); +} +RakNetGUID FullyConnectedMesh2::GetHostSystem(void) const +{ + if (ourFCMGuid==0) + return rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + + return hostRakNetGuid; +} +bool FullyConnectedMesh2::IsHostSystem(void) const +{ + return GetHostSystem()==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +void FullyConnectedMesh2::GetHostOrder(DataStructures::List &hostList) +{ + hostList.Clear(true, _FILE_AND_LINE_); + + if (ourFCMGuid==0 || fcm2ParticipantList.Size()==0) + { + hostList.Push(rakPeerInterface->GetMyGUID(), _FILE_AND_LINE_); + return; + } + + FCM2Participant fcm2; + fcm2.fcm2Guid=ourFCMGuid; + fcm2.rakNetGuid=rakPeerInterface->GetMyGUID(); + + DataStructures::OrderedList olist; + olist.Insert(fcm2, fcm2, true, _FILE_AND_LINE_); + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + olist.Insert(fcm2ParticipantList[i], fcm2ParticipantList[i], true, _FILE_AND_LINE_); + + for (unsigned int i=0; i < olist.Size(); i++) + { + hostList.Push(olist[i].rakNetGuid, _FILE_AND_LINE_); + } +} +bool FullyConnectedMesh2::IsConnectedHost(void) const +{ + return GetConnectedHost()==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +void FullyConnectedMesh2::SetAutoparticipateConnections(bool b) +{ + autoParticipateConnections=b; +} +void FullyConnectedMesh2::ResetHostCalculation(void) +{ + hostRakNetGuid=UNASSIGNED_RAKNET_GUID; + startupTime=RakNet::GetTimeUS(); + totalConnectionCount=0; + ourFCMGuid=0; + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + SendFCMGuidRequest(fcm2ParticipantList[i].rakNetGuid); +} +bool FullyConnectedMesh2::AddParticipantInternal( RakNetGUID rakNetGuid, FCM2Guid theirFCMGuid ) +{ + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + { + if (fcm2ParticipantList[i].rakNetGuid==rakNetGuid) + { + if (theirFCMGuid!=0) + fcm2ParticipantList[i].fcm2Guid=theirFCMGuid; + return false; + } + } + + FCM2Participant participant; + participant.rakNetGuid=rakNetGuid; + participant.fcm2Guid=theirFCMGuid; + fcm2ParticipantList.Push(participant,_FILE_AND_LINE_); + + SendFCMGuidRequest(rakNetGuid); + + return true; +} +void FullyConnectedMesh2::AddParticipant( RakNetGUID rakNetGuid ) +{ + if (rakPeerInterface->GetConnectionState(rakPeerInterface->GetSystemAddressFromGuid(rakNetGuid))!=IS_CONNECTED) + { +#ifdef DEBUG_FCM2 + printf("AddParticipant to %s failed (not connected)\n", rakNetGuid.ToString()); +#endif + return; + } + + AddParticipantInternal(rakNetGuid,0); +} +void FullyConnectedMesh2::GetParticipantList(DataStructures::List &participantList) +{ + participantList.Clear(true, _FILE_AND_LINE_); + unsigned int i; + for (i=0; i < fcm2ParticipantList.Size(); i++) + participantList.Push(fcm2ParticipantList[i].rakNetGuid, _FILE_AND_LINE_); +} +PluginReceiveResult FullyConnectedMesh2::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_REMOTE_NEW_INCOMING_CONNECTION: + { + if (connectOnNewRemoteConnections) + ConnectToRemoteNewIncomingConnections(packet); + } + break; + case ID_FCM2_REQUEST_FCMGUID: + OnRequestFCMGuid(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_RESPOND_CONNECTION_COUNT: + OnRespondConnectionCount(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_INFORM_FCMGUID: + OnInformFCMGuid(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT: + OnUpdateMinTotalConnectionCount(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_NEW_HOST: + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + break; + } + return RR_CONTINUE_PROCESSING; +} +void FullyConnectedMesh2::OnRakPeerStartup(void) +{ + Clear(); + startupTime=RakNet::GetTimeUS(); +} +void FullyConnectedMesh2::OnAttach(void) +{ + Clear(); + // In case Startup() was called first + if (rakPeerInterface->IsActive()) + startupTime=RakNet::GetTimeUS(); +} +void FullyConnectedMesh2::OnRakPeerShutdown(void) +{ + Clear(); + startupTime=0; +} +void FullyConnectedMesh2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + (void) rakNetGUID; + + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + { + if (fcm2ParticipantList[idx].rakNetGuid==rakNetGUID) + { + fcm2ParticipantList[idx]=fcm2ParticipantList[fcm2ParticipantList.Size()-1]; +#ifdef DEBUG_FCM2 + printf("Popping participant %s\n", fcm2ParticipantList[fcm2ParticipantList.Size()-1].rakNetGuid.ToString()); +#endif + + fcm2ParticipantList.Pop(); + if (rakNetGUID==hostRakNetGuid && ourFCMGuid!=0) + { + if (fcm2ParticipantList.Size()==0) + { + hostRakNetGuid=rakPeerInterface->GetMyGUID(); + hostFCM2Guid=ourFCMGuid; + } + else + { + CalculateHost(&hostRakNetGuid, &hostFCM2Guid); + } + PushNewHost(hostRakNetGuid, rakNetGUID); + } + return; + } + } + +} +RakNet::TimeUS FullyConnectedMesh2::GetElapsedRuntime(void) +{ + RakNet::TimeUS curTime=RakNet::GetTimeUS(); + if (curTime>startupTime) + return curTime-startupTime; + else + return 0; +} +void FullyConnectedMesh2::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) isIncoming; + (void) rakNetGUID; + (void) systemAddress; + + if (autoParticipateConnections) + AddParticipant(rakNetGUID); +} +void FullyConnectedMesh2::Clear(void) +{ + fcm2ParticipantList.Clear(false, _FILE_AND_LINE_); + + totalConnectionCount=0; + ourFCMGuid=0; + lastPushedHost=UNASSIGNED_RAKNET_GUID; +} +void FullyConnectedMesh2::PushNewHost(const RakNetGUID &guid, RakNetGUID oldHost) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(oldHost)); + RakNet::BitStream bs(p->data,p->length,false); + bs.SetWriteOffset(0); + bs.Write((MessageID)ID_FCM2_NEW_HOST); + bs.Write(oldHost); + p->systemAddress=rakPeerInterface->GetSystemAddressFromGuid(guid); + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=guid; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); + + lastPushedHost=guid; +} +void FullyConnectedMesh2::SendFCMGuidRequest(RakNetGUID rakNetGuid) +{ + if (rakNetGuid==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_REQUEST_FCMGUID); + if (ourFCMGuid==0) + { + bsOut.Write(false); + bsOut.Write(GetElapsedRuntime()); + } + else + { + bsOut.Write(true); + bsOut.Write(totalConnectionCount); + bsOut.Write(ourFCMGuid); + } + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,rakNetGuid,false); +} +void FullyConnectedMesh2::SendOurFCMGuid(SystemAddress addr) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_INFORM_FCMGUID); + RakAssert(ourFCMGuid!=0); // Can't inform others of our FCM2Guid if it's unset! + bsOut.Write(ourFCMGuid); + bsOut.Write(totalConnectionCount); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,addr,false); +} +void FullyConnectedMesh2::SendConnectionCountResponse(SystemAddress addr, unsigned int responseTotalConnectionCount) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_RESPOND_CONNECTION_COUNT); + bsOut.Write(responseTotalConnectionCount); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,addr,false); +} +void FullyConnectedMesh2::AssignOurFCMGuid(void) +{ + // Only assigned once ever + RakAssert(ourFCMGuid==0); + unsigned int randomNumber = randomMT(); + randomNumber ^= (unsigned int) (RakNet::GetTimeUS() & 0xFFFFFFFF); + randomNumber ^= (unsigned int) (rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS).g & 0xFFFFFFFF); + ourFCMGuid |= randomNumber; + uint64_t reponse64 = totalConnectionCount; + ourFCMGuid |= reponse64<<32; +} +void FullyConnectedMesh2::CalculateHost(RakNetGUID *rakNetGuid, FCM2Guid *fcm2Guid) +{ + // Can't calculate host without knowing our own + RakAssert(ourFCMGuid!=0); + + // Can't calculate host without being connected to anyone else + RakAssert(fcm2ParticipantList.Size()>0); + + // Return the lowest value of all FCM2Guid + FCM2Guid lowestFCMGuid=ourFCMGuid; + // SystemAddress associatedSystemAddress=UNASSIGNED_SYSTEM_ADDRESS; + RakNetGUID associatedRakNetGuid=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + { + if (fcm2ParticipantList[idx].fcm2Guid!=0 && fcm2ParticipantList[idx].fcm2Guiddata,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bool hasRemoteFCMGuid=false; + bsIn.Read(hasRemoteFCMGuid); + RakNet::TimeUS senderElapsedRuntime=0; + unsigned int remoteTotalConnectionCount=0; + FCM2Guid theirFCMGuid=0; + if (hasRemoteFCMGuid) + { + bsIn.Read(remoteTotalConnectionCount); + bsIn.Read(theirFCMGuid); + } + else + { + bsIn.Read(senderElapsedRuntime); + } + AddParticipantInternal(packet->guid,theirFCMGuid); + if (ourFCMGuid==0) + { + if (hasRemoteFCMGuid==false) + { + // Nobody has a fcmGuid + + RakNet::TimeUS ourElapsedRuntime = GetElapsedRuntime(); + if (ourElapsedRuntime>senderElapsedRuntime) + { + // We are probably host + SendConnectionCountResponse(packet->systemAddress, 2); + } + else + { + // They are probably host + SendConnectionCountResponse(packet->systemAddress, 1); + } + } + else + { + // They have a fcmGuid, we do not + IncrementTotalConnectionCount(remoteTotalConnectionCount+1); + + AssignOurFCMGuid(); + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + SendOurFCMGuid(rakPeerInterface->GetSystemAddressFromGuid(fcm2ParticipantList[idx].rakNetGuid)); + } + } + else + { + if (hasRemoteFCMGuid==false) + { + // We have a fcmGuid they do not + SendConnectionCountResponse(packet->systemAddress, totalConnectionCount+1); + } + else + { + // We both have fcmGuids + IncrementTotalConnectionCount(remoteTotalConnectionCount); + + SendOurFCMGuid(packet->systemAddress); + } + } + CalculateAndPushHost(); +} +void FullyConnectedMesh2::OnRespondConnectionCount(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + unsigned int responseTotalConnectionCount; + bsIn.Read(responseTotalConnectionCount); + IncrementTotalConnectionCount(responseTotalConnectionCount); + bool wasAssigned; + if (ourFCMGuid==0) + { + wasAssigned=true; + AssignOurFCMGuid(); + } + else + wasAssigned=false; + + // 1 is returned to give us lower priority, but the actual minimum is 2 + IncrementTotalConnectionCount(2); + + if (wasAssigned==true) + { + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + SendOurFCMGuid(rakPeerInterface->GetSystemAddressFromGuid(fcm2ParticipantList[idx].rakNetGuid)); + CalculateAndPushHost(); + } +} +void FullyConnectedMesh2::OnInformFCMGuid(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + + FCM2Guid theirFCMGuid; + unsigned int theirTotalConnectionCount; + bsIn.Read(theirFCMGuid); + bsIn.Read(theirTotalConnectionCount); + IncrementTotalConnectionCount(theirTotalConnectionCount); + + if (AddParticipantInternal(packet->guid,theirFCMGuid)) + { + // 1/19/2010 - Relay increased total connection count in case new participant only connects to part of the mesh + unsigned int idx; + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT); + bsOut.Write(totalConnectionCount); + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + { + if (packet->guid!=fcm2ParticipantList[idx].rakNetGuid) + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,fcm2ParticipantList[idx].rakNetGuid,false); + } + } + + if (ourFCMGuid==0) + { + AssignOurFCMGuid(); + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + SendOurFCMGuid(rakPeerInterface->GetSystemAddressFromGuid(fcm2ParticipantList[idx].rakNetGuid)); + } + + CalculateAndPushHost(); +} +void FullyConnectedMesh2::OnUpdateMinTotalConnectionCount(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + unsigned int newMin; + bsIn.Read(newMin); + IncrementTotalConnectionCount(newMin); +} +void FullyConnectedMesh2::GetParticipantCount(unsigned int *participantListSize) const +{ + *participantListSize=fcm2ParticipantList.Size(); +} + +unsigned int FullyConnectedMesh2::GetParticipantCount(void) const +{ + return fcm2ParticipantList.Size(); +} +void FullyConnectedMesh2::CalculateAndPushHost(void) +{ + RakNetGUID newHostGuid; + FCM2Guid newFcmGuid; + if (ParticipantListComplete()) + { + CalculateHost(&newHostGuid, &newFcmGuid); + if (newHostGuid!=lastPushedHost) + { + hostRakNetGuid=newHostGuid; + hostFCM2Guid=newFcmGuid; + PushNewHost(hostRakNetGuid, hostRakNetGuid); + } + } +} +bool FullyConnectedMesh2::ParticipantListComplete(void) +{ + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + { + if (fcm2ParticipantList[i].fcm2Guid==0) + return false; + } + return true; +} +void FullyConnectedMesh2::IncrementTotalConnectionCount(unsigned int i) +{ + if (i>totalConnectionCount) + { + totalConnectionCount=i; + // printf("totalConnectionCount=%i\n",i); + } +} +void FullyConnectedMesh2::SetConnectOnNewRemoteConnection(bool attemptConnection, RakNet::RakString pw) +{ + connectOnNewRemoteConnections=attemptConnection; + connectionPassword=pw; +} + +void FullyConnectedMesh2::ConnectToRemoteNewIncomingConnections(Packet *packet) +{ + unsigned int count; + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bsIn.Read(count); + SystemAddress remoteAddress; + RakNetGUID remoteGuid; + char str[64]; + for (unsigned int i=0; i < count; i++) + { + bsIn.Read(remoteAddress); + bsIn.Read(remoteGuid); + remoteAddress.ToString(false,str); + rakPeerInterface->Connect(str,remoteAddress.GetPort(),connectionPassword.C_String(),(int) connectionPassword.GetLength()); + } +} +unsigned int FullyConnectedMesh2::GetTotalConnectionCount(void) const +{ + return totalConnectionCount; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/FullyConnectedMesh2.h b/project/lib_projects/raknet/jni/RaknetSources/FullyConnectedMesh2.h new file mode 100755 index 0000000..f3859ea --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/FullyConnectedMesh2.h @@ -0,0 +1,253 @@ +/// \file FullyConnectedMesh2.h +/// \brief Fully connected mesh plugin, revision 2. +/// \details This will connect RakPeer to all connecting peers, and all peers the connecting peer knows about. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FullyConnectedMesh2==1 + +#ifndef __FULLY_CONNECTED_MESH_2_H +#define __FULLY_CONNECTED_MESH_2_H + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "DS_List.h" +#include "RakString.h" + +typedef int64_t FCM2Guid; + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief Fully connected mesh plugin, revision 2 +/// \details This will connect RakPeer to all connecting peers, and all peers the connecting peer knows about.
+/// It will also calculate which system has been running longest, to find out who should be host, if you need one system to act as a host +/// \pre You must also install the ConnectionGraph2 plugin in order to use SetConnectOnNewRemoteConnection() +/// \ingroup FULLY_CONNECTED_MESH_GROUP +class RAK_DLL_EXPORT FullyConnectedMesh2 : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FullyConnectedMesh2) + + FullyConnectedMesh2(); + virtual ~FullyConnectedMesh2(); + + /// When the message ID_REMOTE_NEW_INCOMING_CONNECTION arrives, we try to connect to that system + /// If \a attemptConnection is false, you can manually connect to all systems listed in ID_REMOTE_NEW_INCOMING_CONNECTION with ConnectToRemoteNewIncomingConnections() + /// \note This will not work on any console. It will also not work if NAT punchthrough is needed. Generally, this should be false and you should connect manually. It is here for legacy reasons. + /// \param[in] attemptConnection If true, we try to connect to any systems we are notified about with ID_REMOTE_NEW_INCOMING_CONNECTION, which comes from the ConnectionGraph2 plugin. Defaults to true. + /// \param[in] pw The password to use to connect with. Only used if \a attemptConnection is true + void SetConnectOnNewRemoteConnection(bool attemptConnection, RakNet::RakString pw); + + /// \brief The connected host is whichever system we are connected to that has been running the longest. + /// \details Will return UNASSIGNED_RAKNET_GUID if we are not connected to anyone, or if we are connected and are calculating the host + /// If includeCalculating is true, will return the estimated calculated host as long as the calculation is nearly complete + /// includeCalculating should be true if you are taking action based on another system becoming host, because not all host calculations may complete at the exact same time + /// \sa ConnectionGraph2::GetLowestAveragePingSystem() . If you need one system in the peer to peer group to relay data, have the host call this function after host migration, and use that system + /// \return System address of whichever system is host. + RakNetGUID GetConnectedHost(void) const; + SystemAddress GetConnectedHostAddr(void) const; + + /// \return System address of whichever system is host. Always returns something, even though it may be our own system. + RakNetGUID GetHostSystem(void) const; + + /// \return If our system is host + bool IsHostSystem(void) const; + + /// Get the list of connected systems, from oldest connected to newest + /// This is also the order that the hosts will be chosen in + void GetHostOrder(DataStructures::List &hostList); + + /// \param[in] includeCalculating If true, and we are currently calculating a new host, return the new host if the calculation is nearly complete + /// \return If our system is host + bool IsConnectedHost(void) const; + + /// \brief Automatically add new connections to the fully connected mesh. + /// Each remote system that you want to check should be added as a participant, either through SetAutoparticipateConnections() or by calling this function + /// \details Defaults to true. + /// \param[in] b As stated + void SetAutoparticipateConnections(bool b); + + /// Clear our own host order, and recalculate as if we had just reconnected + /// Call this to reset the running time of the host just before joining/creating a game room for networking + void ResetHostCalculation(void); + + /// \brief if SetAutoparticipateConnections() is called with false, then you need to use AddParticipant before these systems will be added to the mesh + /// FullyConnectedMesh2 will track who is the who host among a fully connected mesh of participants + /// Each remote system that you want to check should be added as a participant, either through SetAutoparticipateConnections() or by calling this function + /// \param[in] participant The new participant + void AddParticipant(RakNetGUID rakNetGuid); + + /// Get the participants added with AddParticipant() + /// \param[out] participantList Participants added with AddParticipant(); + void GetParticipantList(DataStructures::List &participantList); + + /// Connect to all systems from ID_REMOTE_NEW_INCOMING_CONNECTION + /// You can call this if SetConnectOnNewRemoteConnection is false + /// \param[in] packet The packet containing ID_REMOTE_NEW_INCOMING_CONNECTION + /// \param[in] connectionPassword Password passed to RakPeerInterface::Connect() + /// \param[in] connectionPasswordLength Password length passed to RakPeerInterface::Connect() + void ConnectToRemoteNewIncomingConnections(Packet *packet); + + /// \brief Clear all memory and reset everything + void Clear(void); + + unsigned int GetParticipantCount(void) const; + void GetParticipantCount(unsigned int *participantListSize) const; + /// \internal + RakNet::TimeUS GetElapsedRuntime(void); + + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnRakPeerStartup(void); + /// \internal + virtual void OnAttach(void); + /// \internal + virtual void OnRakPeerShutdown(void); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + + /// \internal + struct FCM2Participant + { + FCM2Participant() {} + FCM2Participant(const FCM2Guid &_fcm2Guid, const RakNetGUID &_rakNetGuid) : fcm2Guid(_fcm2Guid), rakNetGuid(_rakNetGuid) {} + + // Low half is a random number. + // High half is the order we connected in (totalConnectionCount) + FCM2Guid fcm2Guid; + RakNetGUID rakNetGuid; + }; + + /// \internal for debugging + unsigned int GetTotalConnectionCount(void) const; + +protected: + void PushNewHost(const RakNetGUID &guid, RakNetGUID oldHost); + void SendOurFCMGuid(SystemAddress addr); + void SendFCMGuidRequest(RakNetGUID rakNetGuid); + void SendConnectionCountResponse(SystemAddress addr, unsigned int responseTotalConnectionCount); + void OnRequestFCMGuid(Packet *packet); + void OnRespondConnectionCount(Packet *packet); + void OnInformFCMGuid(Packet *packet); + void OnUpdateMinTotalConnectionCount(Packet *packet); + void AssignOurFCMGuid(void); + void CalculateHost(RakNetGUID *rakNetGuid, FCM2Guid *fcm2Guid); + bool AddParticipantInternal( RakNetGUID rakNetGuid, FCM2Guid theirFCMGuid ); + void CalculateAndPushHost(void); + bool ParticipantListComplete(void); + void IncrementTotalConnectionCount(unsigned int i); + + // Used to track how long RakNet has been running. This is so we know who has been running longest + RakNet::TimeUS startupTime; + + // Option for SetAutoparticipateConnections + bool autoParticipateConnections; + + // totalConnectionCount is roughly maintained across all systems, and increments by 1 each time a new system connects to the mesh + // It is always kept at the highest known value + // It is used as the high 4 bytes for new FCMGuids. This causes newer values of FCM2Guid to be higher than lower values. The lowest value is the host. + unsigned int totalConnectionCount; + + // Our own ourFCMGuid. Starts at unassigned (0). Assigned once we send ID_FCM2_REQUEST_FCMGUID and get back ID_FCM2_RESPOND_CONNECTION_COUNT + FCM2Guid ourFCMGuid; + + /// List of systems we know the FCM2Guid for + DataStructures::List fcm2ParticipantList; + + RakNetGUID lastPushedHost; + + // Optimization: Store last calculated host in these variables. + RakNetGUID hostRakNetGuid; + FCM2Guid hostFCM2Guid; + + RakNet::RakString connectionPassword; + bool connectOnNewRemoteConnections; +}; + +} // namespace RakNet + +/* +Startup() +ourFCMGuid=unknown +totalConnectionCount=0 +Set startupTime + +AddParticipant() +if (sender by guid is a participant) +return; +AddParticipantInternal(guid); +if (ourFCMGuid==unknown) +Send to that system a request for their fcmGuid, totalConnectionCount. Inform startupTime. +else +Send to that system a request for their fcmGuid. Inform total connection count, our fcmGuid + +OnRequestGuid() +if (sender by guid is not a participant) +{ + // They added us as a participant, but we didn't add them. This can be caused by lag where both participants are not added at the same time. + // It doesn't affect the outcome as long as we still process the data + AddParticipantInternal(guid); +} +if (ourFCMGuid==unknown) +{ + if (includedStartupTime) + { + // Nobody has a fcmGuid + + if (their startup time is greater than our startup time) + ReplyConnectionCount(1); + else + ReplyConnectionCount(2); + } + else + { + // They have a fcmGuid, we do not + + SetMaxTotalConnectionCount(remoteCount); + AssignTheirGuid() + GenerateOurGuid(); + SendOurGuid(all); + } +} +else +{ + if (includedStartupTime) + { + // We have a fcmGuid they do not + + ReplyConnectionCount(totalConnectionCount+1); + SendOurGuid(sender); + } + else + { + // We both have fcmGuids + + SetMaxTotalConnectionCount(remoteCount); + AssignTheirGuid(); + SendOurGuid(sender); + } +} + +OnReplyConnectionCount() +SetMaxTotalConnectionCount(remoteCount); +GenerateOurGuid(); +SendOurGuid(allParticipants); + +OnReceiveTheirGuid() +AssignTheirGuid() +*/ + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/GetTime.cpp b/project/lib_projects/raknet/jni/RaknetSources/GetTime.cpp new file mode 100755 index 0000000..4f868f8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/GetTime.cpp @@ -0,0 +1,220 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#if defined(_WIN32) +#include "WindowsIncludes.h" +// To call timeGetTime +// on Code::Blocks, this needs to be libwinmm.a instead +#pragma comment(lib, "Winmm.lib") +#endif + +#include "GetTime.h" + + + + +#if defined(_WIN32) +DWORD mProcMask; +DWORD mSysMask; +HANDLE mThread; + + + + + + + + + +#else +#include +#include +RakNet::TimeUS initialTime; +#endif + +static bool initialized=false; + +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +#include "SimpleMutex.h" +RakNet::TimeUS lastNormalizedReturnedValue=0; +RakNet::TimeUS lastNormalizedInputValue=0; +/// This constraints timer forward jumps to 1 second, and does not let it jump backwards +/// See http://support.microsoft.com/kb/274323 where the timer can sometimes jump forward by hours or days +/// This also has the effect where debugging a sending system won't treat the time spent halted past 1 second as elapsed network time +RakNet::TimeUS NormalizeTime(RakNet::TimeUS timeIn) +{ + RakNet::TimeUS diff, lastNormalizedReturnedValueCopy; + static RakNet::SimpleMutex mutex; + + mutex.Lock(); + if (timeIn>=lastNormalizedInputValue) + { + diff = timeIn-lastNormalizedInputValue; + if (diff > GET_TIME_SPIKE_LIMIT) + lastNormalizedReturnedValue+=GET_TIME_SPIKE_LIMIT; + else + lastNormalizedReturnedValue+=diff; + } + else + lastNormalizedReturnedValue+=GET_TIME_SPIKE_LIMIT; + + lastNormalizedInputValue=timeIn; + lastNormalizedReturnedValueCopy=lastNormalizedReturnedValue; + mutex.Unlock(); + + return lastNormalizedReturnedValueCopy; +} +#endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +RakNet::Time RakNet::GetTime( void ) +{ + return (RakNet::Time)(GetTimeUS()/1000); +} +RakNet::TimeMS RakNet::GetTimeMS( void ) +{ + return (RakNet::TimeMS)(GetTimeUS()/1000); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if defined(_WIN32) +RakNet::TimeUS GetTimeUS_Windows( void ) +{ + if ( initialized == false) + { + initialized = true; + + // Save the current process +#if !defined(_WIN32_WCE) + HANDLE mProc = GetCurrentProcess(); + + // Get the current Affinity +#if _MSC_VER >= 1400 && defined (_M_X64) + GetProcessAffinityMask(mProc, (PDWORD_PTR)&mProcMask, (PDWORD_PTR)&mSysMask); +#else + GetProcessAffinityMask(mProc, &mProcMask, &mSysMask); +#endif + mThread = GetCurrentThread(); + +#endif // _WIN32_WCE + } + + // 9/26/2010 In China running LuDaShi, QueryPerformanceFrequency has to be called every time because CPU clock speeds can be different + RakNet::TimeUS curTime; + LARGE_INTEGER PerfVal; + LARGE_INTEGER yo1; + + QueryPerformanceFrequency( &yo1 ); + QueryPerformanceCounter( &PerfVal ); + + __int64 quotient, remainder; + quotient=((PerfVal.QuadPart) / yo1.QuadPart); + remainder=((PerfVal.QuadPart) % yo1.QuadPart); + curTime = (RakNet::TimeUS) quotient*(RakNet::TimeUS)1000000 + (remainder*(RakNet::TimeUS)1000000 / yo1.QuadPart); + +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 + return NormalizeTime(curTime); +#else + return curTime; +#endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +} +#elif defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) +RakNet::TimeUS GetTimeUS_Linux( void ) +{ + timeval tp; + if ( initialized == false) + { + gettimeofday( &tp, 0 ); + initialized=true; + // I do this because otherwise RakNet::Time in milliseconds won't work as it will underflow when dividing by 1000 to do the conversion + initialTime = ( tp.tv_sec ) * (RakNet::TimeUS) 1000000 + ( tp.tv_usec ); + } + + // GCC + RakNet::TimeUS curTime; + gettimeofday( &tp, 0 ); + + curTime = ( tp.tv_sec ) * (RakNet::TimeUS) 1000000 + ( tp.tv_usec ); + +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 + return NormalizeTime(curTime - initialTime); +#else + return curTime - initialTime; +#endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +} +#endif + +RakNet::TimeUS RakNet::GetTimeUS( void ) +{ + + + + + + +#if defined(_WIN32) + return GetTimeUS_Windows(); +#else + return GetTimeUS_Linux(); +#endif +} +bool RakNet::GreaterThan(RakNet::Time a, RakNet::Time b) +{ + // a > b? + const RakNet::Time halfSpan =(RakNet::Time) (((RakNet::Time)(const RakNet::Time)-1)/(RakNet::Time)2); + return b!=a && b-a>halfSpan; +} +bool RakNet::LessThan(RakNet::Time a, RakNet::Time b) +{ + // a < b? + const RakNet::Time halfSpan = ((RakNet::Time)(const RakNet::Time)-1)/(RakNet::Time)2; + return b!=a && b-a b? + extern RAK_DLL_EXPORT bool GreaterThan(RakNet::Time a, RakNet::Time b); + /// a < b? + extern RAK_DLL_EXPORT bool LessThan(RakNet::Time a, RakNet::Time b); +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Getche.cpp b/project/lib_projects/raknet/jni/RaknetSources/Getche.cpp new file mode 100755 index 0000000..c6b6e21 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Getche.cpp @@ -0,0 +1,27 @@ + + +#if defined(_WIN32) +#include /* getche() */ +#elif defined(__S3E__) + +#else + +#include "Getche.h" + +char getche() +{ + + + struct termios oldt, + newt; + char ch; + tcgetattr( STDIN_FILENO, &oldt ); + newt = oldt; + newt.c_lflag &= ~( ICANON | ECHO ); + tcsetattr( STDIN_FILENO, TCSANOW, &newt ); + ch = getchar(); + tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); + return ch; + +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Getche.h b/project/lib_projects/raknet/jni/RaknetSources/Getche.h new file mode 100755 index 0000000..70326d9 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Getche.h @@ -0,0 +1,11 @@ + + +#if defined(_WIN32) +#include /* getche() */ + +#else +#include +#include +#include +char getche(); +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Gets.cpp b/project/lib_projects/raknet/jni/RaknetSources/Gets.cpp new file mode 100755 index 0000000..2ff468a --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Gets.cpp @@ -0,0 +1,25 @@ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +char * Gets ( char * str, int num ) +{ + fgets(str, num, stdin); + if (str[0]=='\n' || str[0]=='\r') + str[0]=0; + + size_t len=strlen(str); + if (len>0 && (str[len-1]=='\n' || str[len-1]=='\r')) + str[len-1]=0; + if (len>1 && (str[len-2]=='\n' || str[len-2]=='\r')) + str[len-2]=0; + + return str; +} + +#ifdef __cplusplus +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Gets.h b/project/lib_projects/raknet/jni/RaknetSources/Gets.h new file mode 100755 index 0000000..78bcb6d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Gets.h @@ -0,0 +1,14 @@ +#ifndef __GETS__H_ +#define __GETS__H_ + +#ifdef __cplusplus +extern "C" { +#endif + +char * Gets ( char * str, int num ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/GridSectorizer.cpp b/project/lib_projects/raknet/jni/RaknetSources/GridSectorizer.cpp new file mode 100755 index 0000000..1fafc30 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/GridSectorizer.cpp @@ -0,0 +1,191 @@ +#include "RakAssert.h" +#include "GridSectorizer.h" +//#include +#include + +GridSectorizer::GridSectorizer() +{ + grid=0; +} +GridSectorizer::~GridSectorizer() +{ + if (grid) + RakNet::OP_DELETE_ARRAY(grid, _FILE_AND_LINE_); +} +void GridSectorizer::Init(const float _maxCellWidth, const float _maxCellHeight, const float minX, const float minY, const float maxX, const float maxY) +{ + RakAssert(_maxCellWidth > 0.0f && _maxCellHeight > 0.0f); + if (grid) + RakNet::OP_DELETE_ARRAY(grid, _FILE_AND_LINE_); + + cellOriginX=minX; + cellOriginY=minY; + gridWidth=maxX-minX; + gridHeight=maxY-minY; + gridCellWidthCount=(int) ceil(gridWidth/_maxCellWidth); + gridCellHeightCount=(int) ceil(gridHeight/_maxCellHeight); + // Make the cells slightly smaller, so we allocate an extra unneeded cell if on the edge. This way we don't go outside the array on rounding errors. + cellWidth=gridWidth/gridCellWidthCount; + cellHeight=gridHeight/gridCellHeightCount; + invCellWidth = 1.0f / cellWidth; + invCellHeight = 1.0f / cellHeight; + +#ifdef _USE_ORDERED_LIST + grid = RakNet::OP_NEW>(gridCellWidthCount*gridCellHeightCount, _FILE_AND_LINE_ ); + DataStructures::OrderedList::IMPLEMENT_DEFAULT_COMPARISON(); +#else + grid = RakNet::OP_NEW_ARRAY >(gridCellWidthCount*gridCellHeightCount, _FILE_AND_LINE_ ); +#endif +} +void GridSectorizer::AddEntry(void *entry, const float minX, const float minY, const float maxX, const float maxY) +{ + RakAssert(cellWidth>0.0f); + RakAssert(minX < maxX && minY < maxY); + + int xStart, yStart, xEnd, yEnd, xCur, yCur; + xStart=WorldToCellXOffsetAndClamped(minX); + yStart=WorldToCellYOffsetAndClamped(minY); + xEnd=WorldToCellXOffsetAndClamped(maxX); + yEnd=WorldToCellYOffsetAndClamped(maxY); + + for (xCur=xStart; xCur <= xEnd; ++xCur) + { + for (yCur=yStart; yCur <= yEnd; ++yCur) + { +#ifdef _USE_ORDERED_LIST + grid[yCur*gridCellWidthCount+xCur].Insert(entry,entry, true); +#else + grid[yCur*gridCellWidthCount+xCur].Insert(entry, _FILE_AND_LINE_); +#endif + } + } +} +#ifdef _USE_ORDERED_LIST +void GridSectorizer::RemoveEntry(void *entry, const float minX, const float minY, const float maxX, const float maxY) +{ + RakAssert(cellWidth>0.0f); + RakAssert(minX <= maxX && minY <= maxY); + + int xStart, yStart, xEnd, yEnd, xCur, yCur; + xStart=WorldToCellXOffsetAndClamped(minX); + yStart=WorldToCellYOffsetAndClamped(minY); + xEnd=WorldToCellXOffsetAndClamped(maxX); + yEnd=WorldToCellYOffsetAndClamped(maxY); + + for (xCur=xStart; xCur <= xEnd; ++xCur) + { + for (yCur=yStart; yCur <= yEnd; ++yCur) + { + grid[yCur*gridCellWidthCount+xCur].RemoveIfExists(entry); + } + } +} +void GridSectorizer::MoveEntry(void *entry, const float sourceMinX, const float sourceMinY, const float sourceMaxX, const float sourceMaxY, + const float destMinX, const float destMinY, const float destMaxX, const float destMaxY) +{ + RakAssert(cellWidth>0.0f); + RakAssert(sourceMinX < sourceMaxX && sourceMinY < sourceMaxY); + RakAssert(destMinX < destMaxX && destMinY < destMaxY); + + if (PositionCrossesCells(sourceMinX, sourceMinY, destMinX, destMinY)==false && + PositionCrossesCells(destMinX, destMinY, destMinX, destMinY)==false) + return; + + int xStartSource, yStartSource, xEndSource, yEndSource; + int xStartDest, yStartDest, xEndDest, yEndDest; + int xCur, yCur; + xStartSource=WorldToCellXOffsetAndClamped(sourceMinX); + yStartSource=WorldToCellYOffsetAndClamped(sourceMinY); + xEndSource=WorldToCellXOffsetAndClamped(sourceMaxX); + yEndSource=WorldToCellYOffsetAndClamped(sourceMaxY); + + xStartDest=WorldToCellXOffsetAndClamped(destMinX); + yStartDest=WorldToCellYOffsetAndClamped(destMinY); + xEndDest=WorldToCellXOffsetAndClamped(destMaxX); + yEndDest=WorldToCellYOffsetAndClamped(destMaxY); + + // Remove source that is not in dest + for (xCur=xStartSource; xCur <= xEndSource; ++xCur) + { + for (yCur=yStartSource; yCur <= yEndSource; ++yCur) + { + if (xCur < xStartDest || xCur > xEndDest || + yCur < yStartDest || yCur > yEndDest) + { + grid[yCur*gridCellWidthCount+xCur].RemoveIfExists(entry); + } + } + } + + // Add dest that is not in source + for (xCur=xStartDest; xCur <= xEndDest; ++xCur) + { + for (yCur=yStartDest; yCur <= yEndDest; ++yCur) + { + if (xCur < xStartSource || xCur > xEndSource || + yCur < yStartSource || yCur > yEndSource) + { + grid[yCur*gridCellWidthCount+xCur].Insert(entry,entry, true); + } + } + } +} +#endif +void GridSectorizer::GetEntries(DataStructures::List& intersectionList, const float minX, const float minY, const float maxX, const float maxY) +{ +#ifdef _USE_ORDERED_LIST + DataStructures::OrderedList* cell; +#else + DataStructures::List* cell; +#endif + int xStart, yStart, xEnd, yEnd, xCur, yCur; + unsigned index; + xStart=WorldToCellXOffsetAndClamped(minX); + yStart=WorldToCellYOffsetAndClamped(minY); + xEnd=WorldToCellXOffsetAndClamped(maxX); + yEnd=WorldToCellYOffsetAndClamped(maxY); + + intersectionList.Clear(true, _FILE_AND_LINE_); + for (xCur=xStart; xCur <= xEnd; ++xCur) + { + for (yCur=yStart; yCur <= yEnd; ++yCur) + { + cell = grid+yCur*gridCellWidthCount+xCur; + for (index=0; index < cell->Size(); ++index) + intersectionList.Insert(cell->operator [](index), _FILE_AND_LINE_); + } + } +} +bool GridSectorizer::PositionCrossesCells(const float originX, const float originY, const float destinationX, const float destinationY) const +{ + return originX/cellWidth!=destinationX/cellWidth || originY/cellHeight!=destinationY/cellHeight; +} +int GridSectorizer::WorldToCellX(const float input) const +{ + return (int)((input-cellOriginX)*invCellWidth); +} +int GridSectorizer::WorldToCellY(const float input) const +{ + return (int)((input-cellOriginY)*invCellHeight); +} +int GridSectorizer::WorldToCellXOffsetAndClamped(const float input) const +{ + int cell=WorldToCellX(input); + cell = cell > 0 ? cell : 0; // __max(cell,0); + cell = gridCellWidthCount-1 < cell ? gridCellWidthCount-1 : cell; // __min(gridCellWidthCount-1, cell); + return cell; +} +int GridSectorizer::WorldToCellYOffsetAndClamped(const float input) const +{ + int cell=WorldToCellY(input); + cell = cell > 0 ? cell : 0; // __max(cell,0); + cell = gridCellHeightCount-1 < cell ? gridCellHeightCount-1 : cell; // __min(gridCellHeightCount-1, cell); + return cell; +} +void GridSectorizer::Clear(void) +{ + int cur; + int count = gridCellWidthCount*gridCellHeightCount; + for (cur=0; cur& intersectionList, const float minX, const float minY, const float maxX, const float maxY); + + void Clear(void); + +protected: + int WorldToCellX(const float input) const; + int WorldToCellY(const float input) const; + int WorldToCellXOffsetAndClamped(const float input) const; + int WorldToCellYOffsetAndClamped(const float input) const; + + // Returns true or false if a position crosses cells in the grid. If false, you don't need to move entries + bool PositionCrossesCells(const float originX, const float originY, const float destinationX, const float destinationY) const; + + float cellOriginX, cellOriginY; + float cellWidth, cellHeight; + float invCellWidth, invCellHeight; + float gridWidth, gridHeight; + int gridCellWidthCount, gridCellHeightCount; + + + // int gridWidth, gridHeight; + +#ifdef _USE_ORDERED_LIST + DataStructures::OrderedList* grid; +#else + DataStructures::List* grid; +#endif +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/HTTPConnection.cpp b/project/lib_projects/raknet/jni/RaknetSources/HTTPConnection.cpp new file mode 100755 index 0000000..dd541fb --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/HTTPConnection.cpp @@ -0,0 +1,313 @@ +/// \file +/// \brief Contains HTTPConnection, used to communicate with web servers +/// +/// This file is part of RakNet Copyright 2008 Kevin Jenkins. +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_HTTPConnection==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "TCPInterface.h" +#include "HTTPConnection.h" +#include "RakSleep.h" +#include "RakString.h" +#include "RakAssert.h" +#include +#include +#include +#include + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(HTTPConnection,HTTPConnection); + +HTTPConnection::HTTPConnection() : connectionState(CS_NONE) +{ + tcp=0; +} + +void HTTPConnection::Init(TCPInterface* _tcp, const char *_host, unsigned short _port) +{ + tcp=_tcp; + host=_host; + port=_port; +} + +void HTTPConnection::Post(const char *remote_path, const char *data, const char *_contentType) +{ + OutgoingCommand op; + op.contentType=_contentType; + op.data=data; + op.remotePath=remote_path; + op.isPost=true; + outgoingCommand.Push(op, _FILE_AND_LINE_ ); + //printf("Adding outgoing post\n"); +} + +void HTTPConnection::Get(const char *path) +{ + OutgoingCommand op; + op.remotePath=path; + op.isPost=false; + outgoingCommand.Push(op, _FILE_AND_LINE_ ); +} + +bool HTTPConnection::HasBadResponse(int *code, RakNet::RakString *data) +{ + if(badResponses.IsEmpty()) + return false; + + if (code) + *code = badResponses.Peek().code; + if (data) + *data = badResponses.Pop().data; + return true; +} +void HTTPConnection::CloseConnection() +{ + connectionState=CS_DISCONNECTING; +} +void HTTPConnection::Update(void) +{ + SystemAddress sa; + sa = tcp->HasCompletedConnectionAttempt(); + while (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { +// printf("Connected\n"); + connectionState=CS_CONNECTED; + server=sa; + sa = tcp->HasCompletedConnectionAttempt(); + } + + sa = tcp->HasFailedConnectionAttempt(); + while (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + //printf("Failed connected\n"); + CloseConnection(); + sa = tcp->HasFailedConnectionAttempt(); + } + + sa = tcp->HasLostConnection(); + while (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + //printf("Lost connection\n"); + CloseConnection(); + sa = tcp->HasLostConnection(); + } + + + switch (connectionState) + { + case CS_NONE: + { + if (outgoingCommand.IsEmpty()) + return; + + //printf("Connecting\n"); + server = tcp->Connect(host, port, false); + connectionState = CS_CONNECTING; + } + break; + case CS_DISCONNECTING: + { + if (tcp->ReceiveHasPackets()==false) + { + if (incomingData.IsEmpty()==false) + { + results.Push(incomingData, _FILE_AND_LINE_ ); + } + incomingData.Clear(); + tcp->CloseConnection(server); + connectionState=CS_NONE; + } + } + break; + case CS_CONNECTING: + { + } + break; + case CS_CONNECTED: + { + //printf("Connected\n"); + if (outgoingCommand.IsEmpty()) + { + //printf("Closed connection (nothing to do)\n"); + CloseConnection(); + return; + } + +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcp->StartSSLClient(server); +#endif + + //printf("Sending request\n"); + currentProcessingCommand = outgoingCommand.Pop(); + RakString request; + if (currentProcessingCommand.isPost) + { + request.Set("POST %s HTTP/1.0\r\n" + "Host: %s:%i\r\n" + "Content-Type: %s\r\n" + "Content-Length: %u\r\n" + "\r\n" + "%s", + currentProcessingCommand.remotePath.C_String(), + host.C_String(), + port, + currentProcessingCommand.contentType.C_String(), + (unsigned) currentProcessingCommand.data.GetLength(), + currentProcessingCommand.data.C_String()); + } + else + { + // request.Set("GET %s\r\n", host.C_String()); + // http://www.jenkinssoftware.com/forum/index.php?topic=4601.0;topicseen + request.Set("GET %s HTTP/1.0\r\n" + "Host: %s:%i\r\n" + "\r\n", + currentProcessingCommand.remotePath.C_String(), + host.C_String(), + port); + } + + // printf(request.C_String()); + // request.URLEncode(); + tcp->Send(request.C_String(), (unsigned int) request.GetLength(), server,false); + connectionState=CS_PROCESSING; + } + break; + case CS_PROCESSING: + { + } + } + +// if (connectionState==CS_PROCESSING && currentProcessingCommand.data.IsEmpty()==false) +// outgoingCommand.PushAtHead(currentProcessingCommand); +} +bool HTTPConnection::HasRead(void) const +{ + return results.IsEmpty()==false; +} +RakString HTTPConnection::Read(void) +{ + if (results.IsEmpty()) + return RakString(); + + RakNet::RakString resultStr = results.Pop(); + // const char *start_of_body = strstr(resultStr.C_String(), "\r\n\r\n"); + const char *start_of_body = strpbrk(resultStr.C_String(), "\001\002\003%"); + + if(start_of_body) + return RakNet::RakString::NonVariadic(start_of_body); + else + return resultStr; +} +SystemAddress HTTPConnection::GetServerAddress(void) const +{ + return server; +} +void HTTPConnection::ProcessTCPPacket(Packet *packet) +{ + RakAssert(packet); + + // read all the packets possible + if(packet->systemAddress == server) + { + if(incomingData.GetLength() == 0) + { + int response_code = atoi((char *)packet->data + strlen("HTTP/1.0 ")); + + if(response_code > 299) + { + badResponses.Push(BadResponse(packet->data, response_code), _FILE_AND_LINE_ ); + //printf("Closed connection (Bad response 2)\n"); + CloseConnection(); + return; + } + } + + RakNet::RakString incomingTemp = RakNet::RakString::NonVariadic((const char*) packet->data); + incomingTemp.URLDecode(); + incomingData += incomingTemp; + + // printf((const char*) packet->data); + // printf("\n"); + + RakAssert(strlen((char *)packet->data) == packet->length); // otherwise it contains Null bytes + + const char *start_of_body = strstr(incomingData, "\r\n\r\n"); + + // besides having the server close the connection, they may + // provide a length header and supply that many bytes + if( + // Why was start_of_body here? Makes the GET command fail + // start_of_body && + connectionState == CS_PROCESSING) + { + /* + // The stupid programmer that wrote this originally didn't think that just because the header contains this value doesn't mean you got the whole message + if (strstr((const char*) packet->data, "\r\nConnection: close\r\n")) + { + CloseConnection(); + } + else + { + */ + long length_of_headers; + if (start_of_body) + { + length_of_headers = (long)(start_of_body + 4 - incomingData.C_String()); + const char *length_header = strstr(incomingData, "\r\nLength: "); + + if(length_header) + { + long length = atol(length_header + 10) + length_of_headers; + + if((long) incomingData.GetLength() >= length) + { + //printf("Closed connection (Got all data due to length header)\n"); + CloseConnection(); + } + } + } + else + { + // No processing needed + } + + + //} + } + } +} + +bool HTTPConnection::IsBusy(void) const +{ + return connectionState != CS_NONE; +} + +int HTTPConnection::GetState(void) const +{ + return connectionState; +} + + +HTTPConnection::~HTTPConnection(void) +{ + if (tcp) + tcp->CloseConnection(server); +} + + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/HTTPConnection.h b/project/lib_projects/raknet/jni/RaknetSources/HTTPConnection.h new file mode 100755 index 0000000..cd1b0c6 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/HTTPConnection.h @@ -0,0 +1,176 @@ +/// \file HTTPConnection.h +/// \brief Contains HTTPConnection, used to communicate with web servers +/// +/// This file is part of RakNet Copyright 2008 Kevin Jenkins. +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_HTTPConnection==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __HTTP_CONNECTION +#define __HTTP_CONNECTION + +#include "Export.h" +#include "RakString.h" +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "DS_Queue.h" + +namespace RakNet +{ +/// Forward declarations +class TCPInterface; +struct SystemAddress; + +/// \brief Use HTTPConnection to communicate with a web server. +/// \details Start an instance of TCPInterface via the Start() command. +/// Instantiate a new instance of HTTPConnection, and associate TCPInterface with the class in the constructor. +/// Use Post() to send commands to the web server, and ProcessDataPacket() to update the connection with packets returned from TCPInterface that have the system address of the web server +/// This class will handle connecting and reconnecting as necessary. +/// +/// Note that only one Post() can be handled at a time. +class RAK_DLL_EXPORT HTTPConnection +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(HTTPConnection) + + /// Returns a HTTP object associated with this tcp connection + HTTPConnection(); + virtual ~HTTPConnection(); + + /// \pre tcp should already be started + void Init(TCPInterface *_tcp, const char *host, unsigned short port=80); + + /// Submit data to the HTTP server + /// HTTP only allows one request at a time per connection + /// + /// \pre IsBusy()==false + /// \param path the path on the remote server you want to POST to. For example "index.html" + /// \param data A NULL terminated string to submit to the server + /// \param contentType "Content-Type:" passed to post. + void Post(const char *path, const char *data, const char *_contentType="application/x-www-form-urlencoded"); + + /// Get a file from a webserver + /// \param path the path on the remote server you want to GET from. For example "index.html" + void Get(const char *path); + + /// Is there a Read result ready? + bool HasRead(void) const; + + /// Get one result from the server + /// \pre HasResult must return true + RakNet::RakString Read(void); + + /// Call periodically to do time-based updates + void Update(void); + + /// Returns the address of the server we are connected to + SystemAddress GetServerAddress(void) const; + + /// Process an HTTP data packet returned from TCPInterface + /// Returns true when we have gotten all the data from the HTTP server. + /// If this returns true then it's safe to Post() another request + /// Deallocate the packet as usual via TCPInterface + /// \param packet NULL or a packet associated with our host and port + void ProcessTCPPacket(Packet *packet); + + /// Results of HTTP requests. Standard response codes are < 999 + /// ( define HTTP codes and our internal codes as needed ) + enum ResponseCodes { NoBody=1001, OK=200, Deleted=1002 }; + + HTTPConnection& operator=(const HTTPConnection& rhs){(void) rhs; return *this;} + + /// Encapsulates a raw HTTP response and response code + struct BadResponse + { + public: + BadResponse() {code=0;} + + BadResponse(const unsigned char *_data, int _code) + : data((const char *)_data), code(_code) {} + + BadResponse(const char *_data, int _code) + : data(_data), code(_code) {} + + operator int () const { return code; } + + RakNet::RakString data; + int code; // ResponseCodes + }; + + /// Queued events of failed exchanges with the HTTP server + bool HasBadResponse(int *code, RakNet::RakString *data); + + /// Returns false if the connection is not doing anything else + bool IsBusy(void) const; + + /// \internal + int GetState(void) const; + + struct OutgoingCommand + { + RakNet::RakString remotePath; + RakNet::RakString data; + RakNet::RakString contentType; + bool isPost; + }; + + DataStructures::Queue outgoingCommand; + OutgoingCommand currentProcessingCommand; + +private: + SystemAddress server; + TCPInterface *tcp; + RakNet::RakString host; + unsigned short port; + DataStructures::Queue badResponses; + + enum ConnectionState + { + CS_NONE, + CS_DISCONNECTING, + CS_CONNECTING, + CS_CONNECTED, + CS_PROCESSING, + } connectionState; + + RakNet::RakString incomingData; + DataStructures::Queue results; + + void CloseConnection(); + + /* + enum { RAK_HTTP_INITIAL, + RAK_HTTP_STARTING, + RAK_HTTP_CONNECTING, + RAK_HTTP_ESTABLISHED, + RAK_HTTP_REQUEST_SENT, + RAK_HTTP_IDLE } state; + + RakNet::RakString outgoing, incoming, path, contentType; + void Process(Packet *packet); // the workhorse + + // this helps check the various status lists in TCPInterface + typedef SystemAddress (TCPInterface::*StatusCheckFunction)(void); + bool InList(StatusCheckFunction func); + */ + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/IncrementalReadInterface.cpp b/project/lib_projects/raknet/jni/RaknetSources/IncrementalReadInterface.cpp new file mode 100755 index 0000000..2809380 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/IncrementalReadInterface.cpp @@ -0,0 +1,15 @@ +#include "IncrementalReadInterface.h" +#include + +using namespace RakNet; + +unsigned int IncrementalReadInterface::GetFilePart( const char *filename, unsigned int startReadBytes, unsigned int numBytesToRead, void *preallocatedDestination, FileListNodeContext context) +{ + FILE *fp = fopen(filename, "rb"); + if (fp==0) + return 0; + fseek(fp,startReadBytes,SEEK_SET); + unsigned int numRead = (unsigned int) fread(preallocatedDestination,1,numBytesToRead, fp); + fclose(fp); + return numRead; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/IncrementalReadInterface.h b/project/lib_projects/raknet/jni/RaknetSources/IncrementalReadInterface.h new file mode 100755 index 0000000..0bf56a8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/IncrementalReadInterface.h @@ -0,0 +1,28 @@ +#ifndef __INCREMENTAL_READ_INTERFACE_H +#define __INCREMENTAL_READ_INTERFACE_H + +#include "FileListNodeContext.h" +#include "Export.h" + +namespace RakNet +{ + +class RAK_DLL_EXPORT IncrementalReadInterface +{ +public: + IncrementalReadInterface() {} + virtual ~IncrementalReadInterface() {} + + /// Read part of a file into \a destination + /// Return the number of bytes written. Return 0 when file is done. + /// \param[in] filename Filename to read + /// \param[in] startReadBytes What offset from the start of the file to read from + /// \param[in] numBytesToRead How many bytes to read. This is also how many bytes have been allocated to preallocatedDestination + /// \param[out] preallocatedDestination Write your data here + /// \return The number of bytes read, or 0 if none + virtual unsigned int GetFilePart( const char *filename, unsigned int startReadBytes, unsigned int numBytesToRead, void *preallocatedDestination, FileListNodeContext context); +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/InternalPacket.h b/project/lib_projects/raknet/jni/RaknetSources/InternalPacket.h new file mode 100755 index 0000000..4461cce --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/InternalPacket.h @@ -0,0 +1,131 @@ +/// \file +/// \brief \b [Internal] A class which stores a user message, and all information associated with sending and receiving that message. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#ifndef __INTERNAL_PACKET_H +#define __INTERNAL_PACKET_H + +#include "PacketPriority.h" +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "RakNetDefines.h" +#include "NativeTypes.h" +#include "RakNetDefines.h" +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 +#include "CCRakNetUDT.h" +#else +#include "CCRakNetSlidingWindow.h" +#endif + +namespace RakNet { + +typedef uint16_t SplitPacketIdType; +typedef uint32_t SplitPacketIndexType; + +/// This is the counter used for holding packet numbers, so we can detect duplicate packets. It should be large enough that if the variables +/// Internally assumed to be 4 bytes, but written as 3 bytes in ReliabilityLayer::WriteToBitStreamFromInternalPacket +typedef uint24_t MessageNumberType; + +/// This is the counter used for holding ordered packet numbers, so we can detect out-of-order packets. It should be large enough that if the variables +/// were to wrap, the newly wrapped values would no longer be in use. Warning: Too large of a value wastes bandwidth! +typedef MessageNumberType OrderingIndexType; + +typedef RakNet::TimeUS RemoteSystemTimeType; + +struct InternalPacketFixedSizeTransmissionHeader +{ + /// A unique numerical identifier given to this user message. Used to identify reliable messages on the network + MessageNumberType reliableMessageNumber; + ///The ID used as identification for ordering messages. Also included in sequenced messages + OrderingIndexType orderingIndex; + // Used only with sequenced messages + OrderingIndexType sequencingIndex; + ///What ordering channel this packet is on, if the reliability type uses ordering channels + unsigned char orderingChannel; + ///The ID of the split packet, if we have split packets. This is the maximum number of split messages we can send simultaneously per connection. + SplitPacketIdType splitPacketId; + ///If this is a split packet, the index into the array of subsplit packets + SplitPacketIndexType splitPacketIndex; + ///The size of the array of subsplit packets + SplitPacketIndexType splitPacketCount;; + ///How many bits long the data is + BitSize_t dataBitLength; + ///What type of reliability algorithm to use with this packet + PacketReliability reliability; + // Not endian safe + // unsigned char priority : 3; + // unsigned char reliability : 5; +}; + +/// Used in InternalPacket when pointing to sharedDataBlock, rather than allocating itself +struct InternalPacketRefCountedData +{ + unsigned char *sharedDataBlock; + unsigned int refCount; +}; + +/// Holds a user message, and related information +/// Don't use a constructor or destructor, due to the memory pool I am using +struct InternalPacket : public InternalPacketFixedSizeTransmissionHeader +{ + /// Identifies the order in which this number was sent. Used locally + MessageNumberType messageInternalOrder; + /// Has this message number been assigned yet? We don't assign until the message is actually sent. + /// This fixes a bug where pre-determining message numbers and then sending a message on a different channel creates a huge gap. + /// This causes performance problems and causes those messages to timeout. + bool messageNumberAssigned; + /// Was this packet number used this update to track windowing drops or increases? Each packet number is only used once per update. +// bool allowWindowUpdate; + ///When this packet was created + RakNet::TimeUS creationTime; + ///The resendNext time to take action on this packet + RakNet::TimeUS nextActionTime; + // Size of the header when encoded into a bitstream + BitSize_t headerLength; + /// Buffer is a pointer to the actual data, assuming this packet has data at all + unsigned char *data; + /// How to alloc and delete the data member + enum AllocationScheme + { + /// Data is allocated using rakMalloc. Just free it + NORMAL, + + /// data points to a larger block of data, where the larger block is reference counted. internalPacketRefCountedData is used in this case + REF_COUNTED, + + /// If allocation scheme is STACK, data points to stackData and should not be deallocated + /// This is only used when sending. Received packets are deallocated in RakPeer + STACK + } allocationScheme; + InternalPacketRefCountedData *refCountedData; + /// How many attempts we made at sending this message +// unsigned char timesSent; + /// The priority level of this packet + PacketPriority priority; + /// If the reliability type requires a receipt, then return this number with it + uint32_t sendReceiptSerial; + + // Used for the resend queue + // Linked list implementation so I can remove from the list via a pointer, without finding it in the list + InternalPacket *resendPrev, *resendNext,*unreliablePrev,*unreliableNext; + + unsigned char stackData[128]; +}; + +} // namespace RakNet + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/Itoa.cpp b/project/lib_projects/raknet/jni/RaknetSources/Itoa.cpp new file mode 100755 index 0000000..c5dc1a7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Itoa.cpp @@ -0,0 +1,52 @@ +#ifdef __cplusplus +extern "C" { +#endif + +// Fast itoa from http://www.jb.man.ac.uk/~slowe/cpp/itoa.html for Linux since it seems like Linux doesn't support this function. +// I modified it to remove the std dependencies. +char* Itoa( int value, char* result, int base ) + { + // check that the base if valid + if (base < 2 || base > 16) { *result = 0; return result; } + char* out = result; + int quotient = value; + + int absQModB; + + do { + // KevinJ - get rid of this dependency + //*out = "0123456789abcdef"[ std::abs( quotient % base ) ]; + absQModB=quotient % base; + if (absQModB < 0) + absQModB=-absQModB; + *out = "0123456789abcdef"[ absQModB ]; + ++out; + quotient /= base; + } while ( quotient ); + + // Only apply negative sign for base 10 + if ( value < 0 && base == 10) *out++ = '-'; + + // KevinJ - get rid of this dependency + // std::reverse( result, out ); + *out = 0; + + // KevinJ - My own reverse code + char *start = result; + char temp; + out--; + while (start < out) + { + temp=*start; + *start=*out; + *out=temp; + start++; + out--; + } + + return result; +} + +#ifdef __cplusplus +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Itoa.h b/project/lib_projects/raknet/jni/RaknetSources/Itoa.h new file mode 100755 index 0000000..1b41ad7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Itoa.h @@ -0,0 +1,15 @@ +#ifndef __RAK_ITOA_H +#define __RAK_ITOA_H + +#ifdef __cplusplus +extern "C" { +#endif + +char* Itoa( int value, char* result, int base ); + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Kbhit.h b/project/lib_projects/raknet/jni/RaknetSources/Kbhit.h new file mode 100755 index 0000000..c311c15 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Kbhit.h @@ -0,0 +1,84 @@ +/***************************************************************************** +kbhit() and getch() for Linux/UNIX +Chris Giese http://my.execpc.com/~geezer +Release date: ? +This code is public domain (no copyright). +You can do whatever you want with it. +*****************************************************************************/ +#if defined(_WIN32) +#include /* kbhit(), getch() */ + +#else +#include /* struct timeval, select() */ +/* ICANON, ECHO, TCSANOW, struct termios */ +#include /* tcgetattr(), tcsetattr() */ +#include /* atexit(), exit() */ +#include /* read() */ +#include /* printf() */ +#include /* memcpy */ + +static struct termios g_old_kbd_mode; +/***************************************************************************** +*****************************************************************************/ +static void cooked(void) +{ + tcsetattr(0, TCSANOW, &g_old_kbd_mode); +} +/***************************************************************************** +*****************************************************************************/ +static void raw(void) +{ + static char init; +/**/ + struct termios new_kbd_mode; + + if(init) + return; +/* put keyboard (stdin, actually) in raw, unbuffered mode */ + tcgetattr(0, &g_old_kbd_mode); + memcpy(&new_kbd_mode, &g_old_kbd_mode, sizeof(struct termios)); + new_kbd_mode.c_lflag &= ~(ICANON /*| ECHO */ ); + new_kbd_mode.c_cc[VTIME] = 0; + new_kbd_mode.c_cc[VMIN] = 1; + tcsetattr(0, TCSANOW, &new_kbd_mode); +/* when we exit, go back to normal, "cooked" mode */ + atexit(cooked); + + init = 1; +} +/***************************************************************************** +*****************************************************************************/ +static int kbhit(void) +{ + struct timeval timeout; + fd_set read_handles; + int status; + + raw(); +/* check stdin (fd 0) for activity */ + FD_ZERO(&read_handles); + FD_SET(0, &read_handles); + timeout.tv_sec = timeout.tv_usec = 0; + status = select(0 + 1, &read_handles, NULL, NULL, &timeout); + if(status < 0) + { + printf("select() failed in kbhit()\n"); + exit(1); + } + return status; +} +/***************************************************************************** +*****************************************************************************/ +static int getch(void) +{ + unsigned char temp; + + raw(); +/* stdin = fd 0 */ + if(read(0, &temp, 1) != 1) + return 0; + return temp; +} +#endif + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/LinuxStrings.cpp b/project/lib_projects/raknet/jni/RaknetSources/LinuxStrings.cpp new file mode 100755 index 0000000..e29ed14 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/LinuxStrings.cpp @@ -0,0 +1,26 @@ +#if (defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__)) && !defined(_WIN32) +#include +#ifndef _stricmp +int _stricmp(const char* s1, const char* s2) +{ + return strcasecmp(s1,s2); +} +#endif +int _strnicmp(const char* s1, const char* s2, size_t n) +{ + return strncasecmp(s1,s2,n); +} +#ifndef __APPLE__ +char *_strlwr(char * str ) +{ + if (str==0) + return 0; + for (int i=0; str[i]; i++) + { + if (str[i]>='A' && str[i]<='Z') + str[i]+='a'-'A'; + } + return str; +} +#endif +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/LinuxStrings.h b/project/lib_projects/raknet/jni/RaknetSources/LinuxStrings.h new file mode 100755 index 0000000..11c8589 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/LinuxStrings.h @@ -0,0 +1,26 @@ +#ifndef _GCC_WIN_STRINGS +#define _GCC_WIN_STRINGS + + + + + + + + + + #if (defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__)) && !defined(_WIN32) + #ifndef _stricmp + int _stricmp(const char* s1, const char* s2); + #endif + int _strnicmp(const char* s1, const char* s2, size_t n); +#ifndef __APPLE__ + char *_strlwr(char * str ); //this won't compile on OSX for some reason +#endif + #ifndef _vsnprintf + #define _vsnprintf vsnprintf + #endif + #endif + + +#endif // _GCC_WIN_STRINGS diff --git a/project/lib_projects/raknet/jni/RaknetSources/LocklessTypes.cpp b/project/lib_projects/raknet/jni/RaknetSources/LocklessTypes.cpp new file mode 100755 index 0000000..501e33b --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/LocklessTypes.cpp @@ -0,0 +1,42 @@ +#include "LocklessTypes.h" + +using namespace RakNet; + +LocklessUint32_t::LocklessUint32_t() +{ + value=0; +} +LocklessUint32_t::LocklessUint32_t(uint32_t initial) +{ + value=initial; +} +uint32_t LocklessUint32_t::Increment(void) +{ +#ifdef _WIN32 + return (uint32_t) InterlockedIncrement(&value); +#elif defined(ANDROID) || defined(__S3E__) + uint32_t v; + mutex.Lock(); + ++value; + v=value; + mutex.Unlock(); + return v; +#else + return __sync_fetch_and_add (&value, (uint32_t) 1); +#endif +} +uint32_t LocklessUint32_t::Decrement(void) +{ +#ifdef _WIN32 + return (uint32_t) InterlockedDecrement(&value); +#elif defined(ANDROID) || defined(__S3E__) + uint32_t v; + mutex.Lock(); + --value; + v=value; + mutex.Unlock(); + return v; +#else + return __sync_fetch_and_add (&value, (uint32_t) -1); +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/LocklessTypes.h b/project/lib_projects/raknet/jni/RaknetSources/LocklessTypes.h new file mode 100755 index 0000000..441e6bd --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/LocklessTypes.h @@ -0,0 +1,40 @@ +#ifndef __LOCKLESS_TYPES_H +#define __LOCKLESS_TYPES_H + +#include "Export.h" +#include "NativeTypes.h" +#include "WindowsIncludes.h" +#if defined(ANDROID) || defined(__S3E__) +// __sync_fetch_and_add not supported apparently +#include "SimpleMutex.h" +#endif + +namespace RakNet +{ + +class RAK_DLL_EXPORT LocklessUint32_t +{ +public: + LocklessUint32_t(); + explicit LocklessUint32_t(uint32_t initial); + // Returns variable value after changing it + uint32_t Increment(void); + // Returns variable value after changing it + uint32_t Decrement(void); + volatile uint32_t GetValue(void) const {return value;} + +protected: +#ifdef _WIN32 + volatile LONG value; +#elif defined(ANDROID) || defined(__S3E__) + // __sync_fetch_and_add not supported apparently + SimpleMutex mutex; + uint32_t value; +#else + volatile uint32_t value; +#endif +}; + +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/LogCommandParser.cpp b/project/lib_projects/raknet/jni/RaknetSources/LogCommandParser.cpp new file mode 100755 index 0000000..50ed7fa --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/LogCommandParser.cpp @@ -0,0 +1,279 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_LogCommandParser==1 + +#include "LogCommandParser.h" +#include "TransportInterface.h" + +#include + +#include +#include +#include + +#include "LinuxStrings.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(LogCommandParser,LogCommandParser); + +LogCommandParser::LogCommandParser() +{ + RegisterCommand(CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS,"Subscribe","[] - Subscribes to a named channel, or all channels"); + RegisterCommand(CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS,"Unsubscribe","[] - Unsubscribes from a named channel, or all channels"); + memset(channelNames,0,sizeof(channelNames)); +} +LogCommandParser::~LogCommandParser() +{ +} +bool LogCommandParser::OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString) +{ + (void) originalString; + + if (strcmp(command, "Subscribe")==0) + { + unsigned channelIndex; + if (numParameters==0) + { + Subscribe(systemAddress, 0); + transport->Send(systemAddress, "Subscribed to all channels.\r\n"); + } + else if (numParameters==1) + { + if ((channelIndex=Subscribe(systemAddress, parameterList[0]))!=(unsigned)-1) + { + transport->Send(systemAddress, "You are now subscribed to channel %s.\r\n", channelNames[channelIndex]); + } + else + { + transport->Send(systemAddress, "Cannot find channel %s.\r\n", parameterList[0]); + PrintChannels(systemAddress, transport); + } + } + else + { + transport->Send(systemAddress, "Subscribe takes either 0 or 1 parameters.\r\n"); + } + } + else if (strcmp(command, "Unsubscribe")==0) + { + unsigned channelIndex; + if (numParameters==0) + { + Unsubscribe(systemAddress, 0); + transport->Send(systemAddress, "Unsubscribed from all channels.\r\n"); + } + else if (numParameters==1) + { + if ((channelIndex=Unsubscribe(systemAddress, parameterList[0]))!=(unsigned)-1) + { + transport->Send(systemAddress, "You are now unsubscribed from channel %s.\r\n", channelNames[channelIndex]); + } + else + { + transport->Send(systemAddress, "Cannot find channel %s.\r\n", parameterList[0]); + PrintChannels(systemAddress, transport); + } + } + else + { + transport->Send(systemAddress, "Unsubscribe takes either 0 or 1 parameters.\r\n"); + } + } + + return true; +} +const char *LogCommandParser::GetName(void) const +{ + return "Logger"; +} +void LogCommandParser::SendHelp(TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "The logger will accept user log data via the Log(...) function.\r\n"); + transport->Send(systemAddress, "Each log is associated with a named channel.\r\n"); + transport->Send(systemAddress, "You can subscribe to or unsubscribe from named channels.\r\n"); + PrintChannels(systemAddress, transport); +} +void LogCommandParser::AddChannel(const char *channelName) +{ + unsigned channelIndex=0; + channelIndex = GetChannelIndexFromName(channelName); + // Each channel can only be added once. + RakAssert(channelIndex==(unsigned)-1); + + unsigned i; + for (i=0; i < 32; i++) + { + if (channelNames[i]==0) + { + // Assuming a persistent static string. + channelNames[i]=channelName; + return; + } + } + + // No more available channels - max 32 with this implementation where I save subscribed channels with bit operations + RakAssert(0); +} +void LogCommandParser::WriteLog(const char *channelName, const char *format, ...) +{ + if (channelName==0 || format==0) + return; + + unsigned channelIndex; + channelIndex = GetChannelIndexFromName(channelName); + if (channelIndex==(unsigned)-1) + { + AddChannel(channelName); + } + + char text[REMOTE_MAX_TEXT_INPUT]; + va_list ap; + va_start(ap, format); + _vsnprintf(text, REMOTE_MAX_TEXT_INPUT, format, ap); + va_end(ap); + text[REMOTE_MAX_TEXT_INPUT-1]=0; + + // Make sure that text ends in \r\n + int textLen; + textLen=(int)strlen(text); + if (textLen==0) + return; + if (text[textLen-1]=='\n') + { + text[textLen-1]=0; + } + if (textLen < REMOTE_MAX_TEXT_INPUT-4) + strcat(text, "\r\n"); + else + { + text[textLen-3]='\r'; + text[textLen-2]='\n'; + text[textLen-1]=0; + } + + // For each user that subscribes to this channel, send to them. + unsigned i; + for (i=0; i < remoteUsers.Size(); i++) + { + if (remoteUsers[i].channels & (1 << channelIndex)) + { + trans->Send(remoteUsers[i].systemAddress, text); + } + } +} +void LogCommandParser::PrintChannels(const SystemAddress &systemAddress, TransportInterface *transport) const +{ + unsigned i; + bool anyChannels=false; + transport->Send(systemAddress, "CHANNELS:\r\n"); + for (i=0; i < 32; i++) + { + if (channelNames[i]) + { + transport->Send(systemAddress, "%i. %s\r\n", i+1,channelNames[i]); + anyChannels=true; + } + } + if (anyChannels==false) + transport->Send(systemAddress, "None.\r\n"); +} +void LogCommandParser::OnNewIncomingConnection(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) systemAddress; + (void) transport; +} +void LogCommandParser::OnConnectionLost(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) transport; + Unsubscribe(systemAddress, 0); +} +unsigned LogCommandParser::Unsubscribe(const SystemAddress &systemAddress, const char *channelName) +{ + unsigned i; + for (i=0; i < remoteUsers.Size(); i++) + { + if (remoteUsers[i].systemAddress==systemAddress) + { + if (channelName==0) + { + // Unsubscribe from all and delete this user. + remoteUsers[i]=remoteUsers[remoteUsers.Size()-1]; + remoteUsers.RemoveFromEnd(); + return 0; + } + else + { + unsigned channelIndex; + channelIndex = GetChannelIndexFromName(channelName); + if (channelIndex!=(unsigned)-1) + { + remoteUsers[i].channels&=0xFFFF ^ (1< remoteUsers; + + /// Names of the channels at each bit, or 0 for an unused channel + const char *channelNames[32]; + + /// This is so I can save the current transport provider, solely so I can use it without having the user pass it to Log + TransportInterface *trans; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/MTUSize.h b/project/lib_projects/raknet/jni/RaknetSources/MTUSize.h new file mode 100755 index 0000000..0786b4f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/MTUSize.h @@ -0,0 +1,31 @@ +/// \file +/// \brief \b [Internal] Defines the default maximum transfer unit. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef MAXIMUM_MTU_SIZE + +/// \li \em 17914 16 Mbit/Sec Token Ring +/// \li \em 4464 4 Mbits/Sec Token Ring +/// \li \em 4352 FDDI +/// \li \em 1500. The largest Ethernet packet size \b recommended. This is the typical setting for non-PPPoE, non-VPN connections. The default value for NETGEAR routers, adapters and switches. +/// \li \em 1492. The size PPPoE prefers. +/// \li \em 1472. Maximum size to use for pinging. (Bigger packets are fragmented.) +/// \li \em 1468. The size DHCP prefers. +/// \li \em 1460. Usable by AOL if you don't have large email attachments, etc. +/// \li \em 1430. The size VPN and PPTP prefer. +/// \li \em 1400. Maximum size for AOL DSL. +/// \li \em 576. Typical value to connect to dial-up ISPs. +/// The largest value for an UDP datagram + + + +#define MAXIMUM_MTU_SIZE 1492 + + +#define MINIMUM_MTU_SIZE 400 + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Makefile b/project/lib_projects/raknet/jni/RaknetSources/Makefile new file mode 100755 index 0000000..30cebf8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Makefile @@ -0,0 +1,23 @@ +MODULE := raknet +SOURCES := $(wildcard *.cpp) + +CFLAGS:=-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads $(CFLAGS) +CFLAGS+=-DNDEBUG -s -O1 +LDFLAGS:=-L/opt/vc/lib -lpthread +CC:=g++ + +OBJECTS:=$(SOURCES:%.cpp=%.o) + +all: $(MODULE) + +%.o: %.cpp + $(CC) -fpic -g -c $(CFLAGS) $< -o $@ + +$(MODULE): $(OBJECTS) + $(CC) $(LDFLAGS) $(OBJECTS) -shared -o libRakNet.so + +static: $(OBJECTS) + ar rvs libRaknet.a $(OBJECTS) + +clean: + rm -f $(OBJECTS) $(MODULE) diff --git a/project/lib_projects/raknet/jni/RaknetSources/MessageFilter.cpp b/project/lib_projects/raknet/jni/RaknetSources/MessageFilter.cpp new file mode 100755 index 0000000..28fa423 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/MessageFilter.cpp @@ -0,0 +1,408 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_MessageFilter==1 + +#include "MessageFilter.h" +#include "RakAssert.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "RakAssert.h" +#include "RakPeerInterface.h" +#include "PacketizedTCP.h" +#include "BitStream.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +int RakNet::MessageFilterStrComp( char *const &key,char *const &data ) +{ + return strcmp(key,data); +} + +int RakNet::FilterSetComp( const int &key, FilterSet * const &data ) +{ + if (key < data->filterSetID) + return -1; + else if (key==data->filterSetID) + return 0; + else + return 1; +} +STATIC_FACTORY_DEFINITIONS(MessageFilter,MessageFilter); + +MessageFilter::MessageFilter() +{ + whenLastTimeoutCheck=RakNet::GetTime(); +} +MessageFilter::~MessageFilter() +{ + Clear(); +} +void MessageFilter::SetAutoAddNewConnectionsToFilter(int filterSetID) +{ + autoAddNewConnectionsToFilter=filterSetID; +} +void MessageFilter::SetAllowMessageID(bool allow, int messageIDStart, int messageIDEnd,int filterSetID) +{ + RakAssert(messageIDStart <= messageIDEnd); + FilterSet *filterSet = GetFilterSetByID(filterSetID); + int i; + for (i=messageIDStart; i <= messageIDEnd; ++i) + filterSet->allowedIDs[i]=allow; +} +void MessageFilter::SetAllowRPC4(bool allow, const char* uniqueID, int filterSetID) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + bool objectExists; + unsigned int idx = filterSet->allowedRPC4.GetIndexFromKey(uniqueID, &objectExists); + if (allow) + { + if (objectExists==false) + { + filterSet->allowedRPC4.InsertAtIndex(uniqueID, idx, _FILE_AND_LINE_); + filterSet->allowedIDs[ID_RPC_PLUGIN]=true; + } + } + else + { + if (objectExists==true) + { + filterSet->allowedRPC4.RemoveAtIndex(idx); + if (filterSet->allowedRPC4.Size()==0) + { + filterSet->allowedIDs[ID_RPC_PLUGIN]=false; + } + } + } +} +void MessageFilter::SetActionOnDisallowedMessage(bool kickOnDisallowed, bool banOnDisallowed, RakNet::TimeMS banTimeMS, int filterSetID) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->kickOnDisallowedMessage=kickOnDisallowed; + filterSet->disallowedMessageBanTimeMS=banTimeMS; + filterSet->banOnDisallowedMessage=banOnDisallowed; +} +void MessageFilter::SetDisallowedMessageCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData, unsigned char messageID)) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->invalidMessageCallback=invalidMessageCallback; + filterSet->disallowedCallbackUserData=userData; +} +void MessageFilter::SetTimeoutCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData)) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->timeoutCallback=invalidMessageCallback; + filterSet->timeoutUserData=userData; +} +void MessageFilter::SetFilterMaxTime(int allowedTimeMS, bool banOnExceed, RakNet::TimeMS banTimeMS, int filterSetID) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->maxMemberTimeMS=allowedTimeMS; + filterSet->banOnFilterTimeExceed=banOnExceed; + filterSet->timeExceedBanTimeMS=banTimeMS; +} +int MessageFilter::GetSystemFilterSet(AddressOrGUID systemAddress) +{ +// bool objectExists; +// unsigned index = systemList.GetIndexFromKey(systemAddress, &objectExists); +// if (objectExists==false) +// return -1; +// else +// return systemList[index].filter->filterSetID; + + DataStructures::HashIndex index = systemList.GetIndexOf(systemAddress); + if (index.IsInvalid()) + return -1; + else + return systemList.ItemAtIndex(index).filter->filterSetID; +} +void MessageFilter::SetSystemFilterSet(AddressOrGUID addressOrGUID, int filterSetID) +{ + // Allocate this filter set if it doesn't exist. + RakAssert(addressOrGUID.IsUndefined()==false); +// bool objectExists; +// unsigned index = systemList.GetIndexFromKey(addressOrGUID, &objectExists); +// if (objectExists==false) + DataStructures::HashIndex index = systemList.GetIndexOf(addressOrGUID); + if (index.IsInvalid()) + { + if (filterSetID<0) + return; + + FilteredSystem filteredSystem; + filteredSystem.filter = GetFilterSetByID(filterSetID); + // filteredSystem.addressOrGUID=addressOrGUID; + filteredSystem.timeEnteredThisSet=RakNet::GetTimeMS(); + // systemList.Insert(addressOrGUID, filteredSystem, true, _FILE_AND_LINE_); + systemList.Push(addressOrGUID,filteredSystem,_FILE_AND_LINE_); + } + else + { + if (filterSetID>=0) + { + FilterSet *filterSet = GetFilterSetByID(filterSetID); + systemList.ItemAtIndex(index).timeEnteredThisSet=RakNet::GetTimeMS(); + systemList.ItemAtIndex(index).filter=filterSet; + } + else + { + systemList.RemoveAtIndex(index, _FILE_AND_LINE_); + } + } +} +unsigned MessageFilter::GetSystemCount(int filterSetID) const +{ + if (filterSetID==-1) + { + return systemList.Size(); + } + else + { + unsigned i; + unsigned count=0; + DataStructures::List< FilteredSystem > itemList; + DataStructures::List< AddressOrGUID > keyList; + systemList.GetAsList(itemList, keyList, _FILE_AND_LINE_); + for (i=0; i < itemList.Size(); i++) + if (itemList[i].filter->filterSetID==filterSetID) + ++count; + return count; + } +} +unsigned MessageFilter::GetFilterSetCount(void) const +{ + return filterList.Size(); +} +int MessageFilter::GetFilterSetIDByIndex(unsigned index) +{ + return filterList[index]->filterSetID; +} +void MessageFilter::DeleteFilterSet(int filterSetID) +{ + FilterSet *filterSet; + bool objectExists; + unsigned i,index; + index = filterList.GetIndexFromKey(filterSetID, &objectExists); + if (objectExists) + { + filterSet=filterList[index]; + DeallocateFilterSet(filterSet); + filterList.RemoveAtIndex(index); + + DataStructures::List< FilteredSystem > itemList; + DataStructures::List< AddressOrGUID > keyList; + systemList.GetAsList(itemList, keyList, _FILE_AND_LINE_); + for (i=0; i < itemList.Size(); i++) + { + if (itemList[i].filter==filterSet) + { + systemList.Remove(keyList[i], _FILE_AND_LINE_); + } + } + + /* + // Don't reference this pointer any longer + i=0; + while (i < systemList.Size()) + { + if (systemList[i].filter==filterSet) + systemList.RemoveAtIndex(i); + else + ++i; + } + */ + } +} +void MessageFilter::Clear(void) +{ + unsigned i; + systemList.Clear(_FILE_AND_LINE_); + for (i=0; i < filterList.Size(); i++) + DeallocateFilterSet(filterList[i]); + filterList.Clear(false, _FILE_AND_LINE_); +} +void MessageFilter::DeallocateFilterSet(FilterSet* filterSet) +{ + RakNet::OP_DELETE(filterSet, _FILE_AND_LINE_); +} +FilterSet* MessageFilter::GetFilterSetByID(int filterSetID) +{ + RakAssert(filterSetID>=0); + bool objectExists; + unsigned index; + index = filterList.GetIndexFromKey(filterSetID, &objectExists); + if (objectExists) + return filterList[index]; + else + { + FilterSet *newFilterSet = RakNet::OP_NEW( _FILE_AND_LINE_ ); + memset(newFilterSet->allowedIDs, 0, MESSAGE_FILTER_MAX_MESSAGE_ID * sizeof(bool)); + newFilterSet->banOnFilterTimeExceed=false; + newFilterSet->kickOnDisallowedMessage=false; + newFilterSet->banOnDisallowedMessage=false; + newFilterSet->disallowedMessageBanTimeMS=0; + newFilterSet->timeExceedBanTimeMS=0; + newFilterSet->maxMemberTimeMS=0; + newFilterSet->filterSetID=filterSetID; + newFilterSet->invalidMessageCallback=0; + newFilterSet->timeoutCallback=0; + newFilterSet->timeoutUserData=0; + filterList.Insert(filterSetID, newFilterSet, true, _FILE_AND_LINE_); + return newFilterSet; + } +} +void MessageFilter::OnInvalidMessage(FilterSet *filterSet, AddressOrGUID systemAddress, unsigned char messageID) +{ + if (filterSet->invalidMessageCallback) + filterSet->invalidMessageCallback(rakPeerInterface, systemAddress, filterSet->filterSetID, filterSet->disallowedCallbackUserData, messageID); + if (filterSet->banOnDisallowedMessage && rakPeerInterface) + { + char str1[64]; + systemAddress.systemAddress.ToString(false, str1); + rakPeerInterface->AddToBanList(str1, filterSet->disallowedMessageBanTimeMS); + } + if (filterSet->kickOnDisallowedMessage) + { + if (rakPeerInterface) + rakPeerInterface->CloseConnection(systemAddress, true, 0); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->CloseConnection(systemAddress.systemAddress); +#endif + } +} +void MessageFilter::Update(void) +{ + // Update all timers for all systems. If those systems' filter sets are expired, take the appropriate action. + RakNet::Time curTime = RakNet::GetTime(); + if (GreaterThan(curTime - 1000, whenLastTimeoutCheck)) + { + DataStructures::List< FilteredSystem > itemList; + DataStructures::List< AddressOrGUID > keyList; + systemList.GetAsList(itemList, keyList, _FILE_AND_LINE_); + + unsigned int index; + for (index=0; index < itemList.Size(); index++) + { + if (itemList[index].filter && + itemList[index].filter->maxMemberTimeMS>0 && + curTime-itemList[index].timeEnteredThisSet >= itemList[index].filter->maxMemberTimeMS) + { + if (itemList[index].filter->timeoutCallback) + itemList[index].filter->timeoutCallback(rakPeerInterface, keyList[index], itemList[index].filter->filterSetID, itemList[index].filter->timeoutUserData); + + if (itemList[index].filter->banOnFilterTimeExceed && rakPeerInterface) + { + char str1[64]; + keyList[index].ToString(false, str1); + rakPeerInterface->AddToBanList(str1, itemList[index].filter->timeExceedBanTimeMS); + } + if (rakPeerInterface) + rakPeerInterface->CloseConnection(keyList[index], true, 0); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->CloseConnection(keyList[index].systemAddress); +#endif + + systemList.Remove(keyList[index], _FILE_AND_LINE_); + } + } + + whenLastTimeoutCheck=curTime+1000; + } +} +void MessageFilter::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) systemAddress; + (void) rakNetGUID; + (void) isIncoming; + + AddressOrGUID aog; + aog.rakNetGuid=rakNetGUID; + aog.systemAddress=systemAddress; + + // New system, automatically assign to filter set if appropriate + if (autoAddNewConnectionsToFilter>=0 && systemList.HasData(aog)==false) + SetSystemFilterSet(aog, autoAddNewConnectionsToFilter); +} +void MessageFilter::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) rakNetGUID; + (void) lostConnectionReason; + + AddressOrGUID aog; + aog.rakNetGuid=rakNetGUID; + aog.systemAddress=systemAddress; + + // Lost system, remove from the list + systemList.Remove(aog, _FILE_AND_LINE_); +} + PluginReceiveResult MessageFilter::OnReceive(Packet *packet) +{ + DataStructures::HashIndex index; + unsigned char messageId; + + switch (packet->data[0]) + { + case ID_NEW_INCOMING_CONNECTION: + case ID_CONNECTION_REQUEST_ACCEPTED: + case ID_CONNECTION_LOST: + case ID_DISCONNECTION_NOTIFICATION: + case ID_CONNECTION_ATTEMPT_FAILED: + case ID_NO_FREE_INCOMING_CONNECTIONS: + case ID_IP_RECENTLY_CONNECTED: + case ID_CONNECTION_BANNED: + case ID_INVALID_PASSWORD: + case ID_UNCONNECTED_PONG: + case ID_ALREADY_CONNECTED: + case ID_ADVERTISE_SYSTEM: + case ID_REMOTE_DISCONNECTION_NOTIFICATION: + case ID_REMOTE_CONNECTION_LOST: + case ID_REMOTE_NEW_INCOMING_CONNECTION: + case ID_DOWNLOAD_PROGRESS: + break; + default: + if (packet->data[0]==ID_TIMESTAMP) + { + if (packet->lengthdata[sizeof(MessageID) + sizeof(RakNet::TimeMS)]; + } + else + messageId=packet->data[0]; + // If this system is filtered, check if this message is allowed. If not allowed, return RR_STOP_PROCESSING_AND_DEALLOCATE + // index = systemList.GetIndexFromKey(packet->addressOrGUID, &objectExists); + index = systemList.GetIndexOf(packet); + if (index.IsInvalid()) + break; + if (systemList.ItemAtIndex(index).filter->allowedIDs[messageId]==false) + { + OnInvalidMessage(systemList.ItemAtIndex(index).filter, packet, packet->data[0]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + if (packet->data[0]==ID_RPC_PLUGIN) + { + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + RakNet::RakString functionName; + bsIn.ReadCompressed(functionName); + if (systemList.ItemAtIndex(index).filter->allowedRPC4.HasData(functionName)==false) + { + OnInvalidMessage(systemList.ItemAtIndex(index).filter, packet, packet->data[0]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + break; + } + + return RR_CONTINUE_PROCESSING; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/MessageFilter.h b/project/lib_projects/raknet/jni/RaknetSources/MessageFilter.h new file mode 100755 index 0000000..011bb36 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/MessageFilter.h @@ -0,0 +1,191 @@ +/// \file +/// \brief Message filter plugin. Assigns systems to FilterSets. Each FilterSet limits what messages are allowed. This is a security related plugin. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_MessageFilter==1 + +#ifndef __MESSAGE_FILTER_PLUGIN_H +#define __MESSAGE_FILTER_PLUGIN_H + +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "DS_OrderedList.h" +#include "DS_Hash.h" +#include "Export.h" + +/// MessageIdentifier (ID_*) values shoudln't go higher than this. Change it if you do. +#define MESSAGE_FILTER_MAX_MESSAGE_ID 256 + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \internal Has to be public so some of the shittier compilers can use it. +int RAK_DLL_EXPORT MessageFilterStrComp( char *const &key,char *const &data ); + +/// \internal Has to be public so some of the shittier compilers can use it. +struct FilterSet +{ + bool banOnFilterTimeExceed; + bool kickOnDisallowedMessage; + bool banOnDisallowedMessage; + RakNet::TimeMS disallowedMessageBanTimeMS; + RakNet::TimeMS timeExceedBanTimeMS; + RakNet::TimeMS maxMemberTimeMS; + void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData, unsigned char messageID); + void *disallowedCallbackUserData; + void (*timeoutCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData); + void *timeoutUserData; + int filterSetID; + bool allowedIDs[MESSAGE_FILTER_MAX_MESSAGE_ID]; + DataStructures::OrderedList allowedRPC4; +}; + +/// \internal Has to be public so some of the shittier compilers can use it. +int RAK_DLL_EXPORT FilterSetComp( const int &key, FilterSet * const &data ); + +/// \internal Has to be public so some of the shittier compilers can use it. +struct FilteredSystem +{ + FilterSet *filter; + RakNet::TimeMS timeEnteredThisSet; +}; + +/// \defgroup MESSAGEFILTER_GROUP MessageFilter +/// \brief Remote incoming packets from unauthorized systems +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Assigns systems to FilterSets. Each FilterSet limits what kinds of messages are allowed. +/// \details The MessageFilter plugin is used for security where you limit what systems can send what kind of messages.
+/// You implicitly define FilterSets, and add allowed message IDs to these FilterSets.
+/// You then add systems to these filters, such that those systems are limited to sending what the filters allows.
+/// You can automatically assign systems to a filter.
+/// You can automatically kick and possibly ban users that stay in a filter too long, or send the wrong message.
+/// Each system is a member of either zero or one filters.
+/// Add this plugin before any plugin you wish to filter (most likely just add this plugin before any other). +/// \ingroup MESSAGEFILTER_GROUP +class RAK_DLL_EXPORT MessageFilter : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(MessageFilter) + + MessageFilter(); + virtual ~MessageFilter(); + + // -------------------------------------------------------------------------------------------- + // User functions + // -------------------------------------------------------------------------------------------- + + /// Automatically add all new systems to a particular filter + /// Defaults to -1 + /// \param[in] filterSetID Which filter to add new systems to. <0 for do not add. + void SetAutoAddNewConnectionsToFilter(int filterSetID); + + /// Allow a range of message IDs + /// Always allowed by default: ID_CONNECTION_REQUEST_ACCEPTED through ID_DOWNLOAD_PROGRESS + /// Usually you specify a range to make it easier to add new enumerations without having to constantly refer back to this function. + /// \param[in] allow True to allow this message ID, false to disallow. By default, all messageIDs except the noted types are disallowed. This includes messages from other plugins! + /// \param[in] messageIDStart The first ID_* message to allow in the range. Inclusive. + /// \param[in] messageIDEnd The last ID_* message to allow in the range. Inclusive. + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetAllowMessageID(bool allow, int messageIDStart, int messageIDEnd,int filterSetID); + + /// Allow a specific RPC4 call + /// \pre MessageFilter must be attached before RPC4 + /// \param[in] uniqueID Identifier passed to RegisterFunction() + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetAllowRPC4(bool allow, const char* uniqueID, int filterSetID); + + /// What action to take on a disallowed message. You can kick or not. You can add them to the ban list for some time + /// By default no action is taken. The message is simply ignored. + /// param[in] 0 for permanent ban, >0 for ban time in milliseconds. + /// \param[in] kickOnDisallowed kick the system that sent a disallowed message. + /// \param[in] banOnDisallowed ban the system that sent a disallowed message. See \a banTimeMS for the ban duration + /// \param[in] banTimeMS Passed to the milliseconds parameter of RakPeer::AddToBanList. + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetActionOnDisallowedMessage(bool kickOnDisallowed, bool banOnDisallowed, RakNet::TimeMS banTimeMS, int filterSetID); + + /// Set a user callback to be called on an invalid message for a particular filterSet + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + /// \param[in] userData A pointer passed with the callback + /// \param[in] invalidMessageCallback A pointer to a C function to be called back with the specified parameters. + void SetDisallowedMessageCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID addressOrGUID, int filterSetID, void *userData, unsigned char messageID)); + + /// Set a user callback to be called when a user is disconnected due to SetFilterMaxTime + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + /// \param[in] userData A pointer passed with the callback + /// \param[in] invalidMessageCallback A pointer to a C function to be called back with the specified parameters. + void SetTimeoutCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID addressOrGUID, int filterSetID, void *userData)); + + /// Limit how long a connection can stay in a particular filterSetID. After this time, the connection is kicked and possibly banned. + /// By default there is no limit to how long a connection can stay in a particular filter set. + /// \param[in] allowedTimeMS How many milliseconds to allow a connection to stay in this filter set. + /// \param[in] banOnExceed True or false to ban the system, or not, when \a allowedTimeMS is exceeded + /// \param[in] banTimeMS Passed to the milliseconds parameter of RakPeer::AddToBanList. + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetFilterMaxTime(int allowedTimeMS, bool banOnExceed, RakNet::TimeMS banTimeMS, int filterSetID); + + /// Get the filterSetID a system is using. Returns -1 for none. + /// \param[in] addressOrGUID The system we are referring to + int GetSystemFilterSet(AddressOrGUID addressOrGUID); + + /// Assign a system to a filter set. + /// Systems are automatically added to filter sets (or not) based on SetAutoAddNewConnectionsToFilter() + /// This function is used to change the filter set a system is using, to add it to a new filter set, or to remove it from all existin filter sets. + /// \param[in] addressOrGUID The system we are referring to + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. If -1, the system will be removed from all filter sets. + void SetSystemFilterSet(AddressOrGUID addressOrGUID, int filterSetID); + + /// Returns the number of systems subscribed to a particular filter set + /// Using anything other than -1 for \a filterSetID is slow, so you should store the returned value. + /// \param[in] filterSetID The filter set to limit to. Use -1 for none (just returns the total number of filter systems in that case). + unsigned GetSystemCount(int filterSetID) const; + + /// Returns the total number of filter sets. + /// \return The total number of filter sets. + unsigned GetFilterSetCount(void) const; + + /// Returns the ID of a filter set, by index + /// \param[in] An index between 0 and GetFilterSetCount()-1 inclusive + int GetFilterSetIDByIndex(unsigned index); + + /// Delete a FilterSet. All systems formerly subscribed to this filter are now unrestricted. + /// \param[in] filterSetID The ID of the filter set to delete. + void DeleteFilterSet(int filterSetID); + + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + +protected: + + void Clear(void); + void DeallocateFilterSet(FilterSet *filterSet); + FilterSet* GetFilterSetByID(int filterSetID); + void OnInvalidMessage(FilterSet *filterSet, AddressOrGUID systemAddress, unsigned char messageID); + + DataStructures::OrderedList filterList; + // Change to guid + DataStructures::Hash systemList; + + int autoAddNewConnectionsToFilter; + RakNet::Time whenLastTimeoutCheck; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/MessageIdentifiers.h b/project/lib_projects/raknet/jni/RaknetSources/MessageIdentifiers.h new file mode 100755 index 0000000..65917db --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/MessageIdentifiers.h @@ -0,0 +1,403 @@ +/// \file +/// \brief All the message identifiers used by RakNet. Message identifiers comprise the first byte of any message. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __MESSAGE_IDENTIFIERS_H +#define __MESSAGE_IDENTIFIERS_H + +#if defined(RAKNET_USE_CUSTOM_PACKET_IDS) +#include "CustomPacketIdentifiers.h" +#else + +enum OutOfBandIdentifiers +{ + ID_NAT_ESTABLISH_UNIDIRECTIONAL, + ID_NAT_ESTABLISH_BIDIRECTIONAL, + ID_NAT_TYPE_DETECT, + ID_ROUTER_2_REPLY_TO_SENDER_PORT, + ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT, + ID_ROUTER_2_MINI_PUNCH_REPLY, + ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE, + ID_XBOX_360_VOICE, + ID_XBOX_360_GET_NETWORK_ROOM, + ID_XBOX_360_RETURN_NETWORK_ROOM, +}; + +/// You should not edit the file MessageIdentifiers.h as it is a part of RakNet static library +/// To define your own message id, define an enum following the code example that follows. +/// +/// \code +/// enum { +/// ID_MYPROJECT_MSG_1 = ID_USER_PACKET_ENUM, +/// ID_MYPROJECT_MSG_2, +/// ... +/// }; +/// \endcode +/// +/// \note All these enumerations should be casted to (unsigned char) before writing them to RakNet::BitStream +enum DefaultMessageIDTypes +{ + // + // RESERVED TYPES - DO NOT CHANGE THESE + // All types from RakPeer + // + /// These types are never returned to the user. + /// Ping from a connected system. Update timestamps (internal use only) + ID_CONNECTED_PING, + /// Ping from an unconnected system. Reply but do not update timestamps. (internal use only) + ID_UNCONNECTED_PING, + /// Ping from an unconnected system. Only reply if we have open connections. Do not update timestamps. (internal use only) + ID_UNCONNECTED_PING_OPEN_CONNECTIONS, + /// Pong from a connected system. Update timestamps (internal use only) + ID_CONNECTED_PONG, + /// A reliable packet to detect lost connections (internal use only) + ID_DETECT_LOST_CONNECTIONS, + /// C2S: Initial query: Header(1), OfflineMesageID(16), Protocol number(1), Pad(toMTU), sent with no fragment set. + /// If protocol fails on server, returns ID_INCOMPATIBLE_PROTOCOL_VERSION to client + ID_OPEN_CONNECTION_REQUEST_1, + /// S2C: Header(1), OfflineMesageID(16), server GUID(8), HasSecurity(1), Cookie(4, if HasSecurity) + /// , public key (if do security is true), MTU(2). If public key fails on client, returns ID_PUBLIC_KEY_MISMATCH + ID_OPEN_CONNECTION_REPLY_1, + /// C2S: Header(1), OfflineMesageID(16), Cookie(4, if HasSecurity is true on the server), clientSupportsSecurity(1 bit), + /// handshakeChallenge (if has security on both server and client), remoteBindingAddress(6), MTU(2), client GUID(8) + /// Connection slot allocated if cookie is valid, server is not full, GUID and IP not already in use. + ID_OPEN_CONNECTION_REQUEST_2, + /// S2C: Header(1), OfflineMesageID(16), server GUID(8), mtu(2), doSecurity(1 bit), handshakeAnswer (if do security is true) + ID_OPEN_CONNECTION_REPLY_2, + /// C2S: Header(1), GUID(8), Timestamp, HasSecurity(1), Proof(32) + ID_CONNECTION_REQUEST, + /// RakPeer - Remote system requires secure connections, pass a public key to RakPeerInterface::Connect() + ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY, + /// RakPeer - We passed a public key to RakPeerInterface::Connect(), but the other system did not have security turned on + ID_OUR_SYSTEM_REQUIRES_SECURITY, + /// RakPeer - Wrong public key passed to RakPeerInterface::Connect() + ID_PUBLIC_KEY_MISMATCH, + /// RakPeer - Same as ID_ADVERTISE_SYSTEM, but intended for internal use rather than being passed to the user. + /// Second byte indicates type. Used currently for NAT punchthrough for receiver port advertisement. See ID_NAT_ADVERTISE_RECIPIENT_PORT + ID_OUT_OF_BAND_INTERNAL, + /// If RakPeerInterface::Send() is called where PacketReliability contains _WITH_ACK_RECEIPT, then on a later call to + /// RakPeerInterface::Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS. The message will be 5 bytes long, + /// and bytes 1-4 inclusive will contain a number in native order containing a number that identifies this message. + /// This number will be returned by RakPeerInterface::Send() or RakPeerInterface::SendList(). ID_SND_RECEIPT_ACKED means that + /// the message arrived + ID_SND_RECEIPT_ACKED, + /// If RakPeerInterface::Send() is called where PacketReliability contains UNRELIABLE_WITH_ACK_RECEIPT, then on a later call to + /// RakPeerInterface::Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS. The message will be 5 bytes long, + /// and bytes 1-4 inclusive will contain a number in native order containing a number that identifies this message. This number + /// will be returned by RakPeerInterface::Send() or RakPeerInterface::SendList(). ID_SND_RECEIPT_LOSS means that an ack for the + /// message did not arrive (it may or may not have been delivered, probably not). On disconnect or shutdown, you will not get + /// ID_SND_RECEIPT_LOSS for unsent messages, you should consider those messages as all lost. + ID_SND_RECEIPT_LOSS, + + + // + // USER TYPES - DO NOT CHANGE THESE + // + + /// RakPeer - In a client/server environment, our connection request to the server has been accepted. + ID_CONNECTION_REQUEST_ACCEPTED, + /// RakPeer - Sent to the player when a connection request cannot be completed due to inability to connect. + ID_CONNECTION_ATTEMPT_FAILED, + /// RakPeer - Sent a connect request to a system we are currently connected to. + ID_ALREADY_CONNECTED, + /// RakPeer - A remote system has successfully connected. + ID_NEW_INCOMING_CONNECTION, + /// RakPeer - The system we attempted to connect to is not accepting new connections. + ID_NO_FREE_INCOMING_CONNECTIONS, + /// RakPeer - The system specified in Packet::systemAddress has disconnected from us. For the client, this would mean the + /// server has shutdown. + ID_DISCONNECTION_NOTIFICATION, + /// RakPeer - Reliable packets cannot be delivered to the system specified in Packet::systemAddress. The connection to that + /// system has been closed. + ID_CONNECTION_LOST, + /// RakPeer - We are banned from the system we attempted to connect to. + ID_CONNECTION_BANNED, + /// RakPeer - The remote system is using a password and has refused our connection because we did not set the correct password. + ID_INVALID_PASSWORD, + // RAKNET_PROTOCOL_VERSION in RakNetVersion.h does not match on the remote system what we have on our system + // This means the two systems cannot communicate. + // The 2nd byte of the message contains the value of RAKNET_PROTOCOL_VERSION for the remote system + ID_INCOMPATIBLE_PROTOCOL_VERSION, + // Means that this IP address connected recently, and can't connect again as a security measure. See + /// RakPeer::SetLimitIPConnectionFrequency() + ID_IP_RECENTLY_CONNECTED, + /// RakPeer - The sizeof(RakNetTime) bytes following this byte represent a value which is automatically modified by the difference + /// in system times between the sender and the recipient. Requires that you call SetOccasionalPing. + ID_TIMESTAMP, + /// RakPeer - Pong from an unconnected system. First byte is ID_UNCONNECTED_PONG, second sizeof(RakNet::TimeMS) bytes is the ping, + /// following bytes is system specific enumeration data. + /// Read using bitstreams + ID_UNCONNECTED_PONG, + /// RakPeer - Inform a remote system of our IP/Port. On the recipient, all data past ID_ADVERTISE_SYSTEM is whatever was passed to + /// the data parameter + ID_ADVERTISE_SYSTEM, + // RakPeer - Downloading a large message. Format is ID_DOWNLOAD_PROGRESS (MessageID), partCount (unsigned int), + /// partTotal (unsigned int), + /// partLength (unsigned int), first part data (length <= MAX_MTU_SIZE). See the three parameters partCount, partTotal + /// and partLength in OnFileProgress in FileListTransferCBInterface.h + ID_DOWNLOAD_PROGRESS, + + /// ConnectionGraph2 plugin - In a client/server environment, a client other than ourselves has disconnected gracefully. + /// Packet::systemAddress is modified to reflect the systemAddress of this client. + ID_REMOTE_DISCONNECTION_NOTIFICATION, + /// ConnectionGraph2 plugin - In a client/server environment, a client other than ourselves has been forcefully dropped. + /// Packet::systemAddress is modified to reflect the systemAddress of this client. + ID_REMOTE_CONNECTION_LOST, + /// ConnectionGraph2 plugin: Bytes 1-4 = count. for (count items) contains {SystemAddress, RakNetGUID, 2 byte ping} + ID_REMOTE_NEW_INCOMING_CONNECTION, + + /// FileListTransfer plugin - Setup data + ID_FILE_LIST_TRANSFER_HEADER, + /// FileListTransfer plugin - A file + ID_FILE_LIST_TRANSFER_FILE, + // Ack for reference push, to send more of the file + ID_FILE_LIST_REFERENCE_PUSH_ACK, + + /// DirectoryDeltaTransfer plugin - Request from a remote system for a download of a directory + ID_DDT_DOWNLOAD_REQUEST, + + /// RakNetTransport plugin - Transport provider message, used for remote console + ID_TRANSPORT_STRING, + + /// ReplicaManager plugin - Create an object + ID_REPLICA_MANAGER_CONSTRUCTION, + /// ReplicaManager plugin - Changed scope of an object + ID_REPLICA_MANAGER_SCOPE_CHANGE, + /// ReplicaManager plugin - Serialized data of an object + ID_REPLICA_MANAGER_SERIALIZE, + /// ReplicaManager plugin - New connection, about to send all world objects + ID_REPLICA_MANAGER_DOWNLOAD_STARTED, + /// ReplicaManager plugin - Finished downloading all serialized objects + ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE, + + /// RakVoice plugin - Open a communication channel + ID_RAKVOICE_OPEN_CHANNEL_REQUEST, + /// RakVoice plugin - Communication channel accepted + ID_RAKVOICE_OPEN_CHANNEL_REPLY, + /// RakVoice plugin - Close a communication channel + ID_RAKVOICE_CLOSE_CHANNEL, + /// RakVoice plugin - Voice data + ID_RAKVOICE_DATA, + + /// Autopatcher plugin - Get a list of files that have changed since a certain date + ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE, + /// Autopatcher plugin - A list of files to create + ID_AUTOPATCHER_CREATION_LIST, + /// Autopatcher plugin - A list of files to delete + ID_AUTOPATCHER_DELETION_LIST, + /// Autopatcher plugin - A list of files to get patches for + ID_AUTOPATCHER_GET_PATCH, + /// Autopatcher plugin - A list of patches for a list of files + ID_AUTOPATCHER_PATCH_LIST, + /// Autopatcher plugin - Returned to the user: An error from the database repository for the autopatcher. + ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR, + /// Autopatcher plugin - Finished getting all files from the autopatcher + ID_AUTOPATCHER_FINISHED_INTERNAL, + ID_AUTOPATCHER_FINISHED, + /// Autopatcher plugin - Returned to the user: You must restart the application to finish patching. + ID_AUTOPATCHER_RESTART_APPLICATION, + + /// NATPunchthrough plugin: internal + ID_NAT_PUNCHTHROUGH_REQUEST, + /// NATPunchthrough plugin: internal + ID_NAT_GROUP_PUNCHTHROUGH_REQUEST, + /// NATPunchthrough plugin: internal + ID_NAT_GROUP_PUNCHTHROUGH_REPLY, + /// NATPunchthrough plugin: internal + ID_NAT_CONNECT_AT_TIME, + /// NATPunchthrough plugin: internal + ID_NAT_GET_MOST_RECENT_PORT, + /// NATPunchthrough plugin: internal + ID_NAT_CLIENT_READY, + /// NATPunchthrough plugin: internal + ID_NAT_GROUP_PUNCHTHROUGH_FAILURE_NOTIFICATION, + + /// NATPunchthrough plugin: Destination system is not connected to the server. Bytes starting at offset 1 contains the + /// RakNetGUID destination field of NatPunchthroughClient::OpenNAT(). + ID_NAT_TARGET_NOT_CONNECTED, + /// NATPunchthrough plugin: Destination system is not responding to ID_NAT_GET_MOST_RECENT_PORT. Possibly the plugin is not installed. + /// Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT(). + ID_NAT_TARGET_UNRESPONSIVE, + /// NATPunchthrough plugin: The server lost the connection to the destination system while setting up punchthrough. + /// Possibly the plugin is not installed. Bytes starting at offset 1 contains the RakNetGUID destination + /// field of NatPunchthroughClient::OpenNAT(). + ID_NAT_CONNECTION_TO_TARGET_LOST, + /// NATPunchthrough plugin: This punchthrough is already in progress. Possibly the plugin is not installed. + /// Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT(). + ID_NAT_ALREADY_IN_PROGRESS, + /// NATPunchthrough plugin: This message is generated on the local system, and does not come from the network. + /// packet::guid contains the destination field of NatPunchthroughClient::OpenNAT(). Byte 1 contains 1 if you are the sender, 0 if not + ID_NAT_PUNCHTHROUGH_FAILED, + /// NATPunchthrough plugin: Punchthrough succeeded. See packet::systemAddress and packet::guid. Byte 1 contains 1 if you are the sender, + /// 0 if not. You can now use RakPeer::Connect() or other calls to communicate with this system. + ID_NAT_PUNCHTHROUGH_SUCCEEDED, + /// NATPunchthrough plugin: OpenNATGroup failed. + /// packet::guid contains the facilitator field of NatPunchthroughClient::OpenNAT() + /// Data format starts at byte 1:
+ /// (char) passedSystemsCount,
+ /// (RakNetGuid, SystemAddress) (for passedSystemsCount),
+ /// (char) ignoredSystemsCount (caused by ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_CONNECTION_TO_TARGET_LOST, ID_NAT_TARGET_UNRESPONSIVE),
+ /// RakNetGuid (for ignoredSystemsCount),
+ /// (char) failedSystemsCount,
+ /// RakNetGuid (for failedSystemsCount)
+ ID_NAT_GROUP_PUNCH_FAILED, + /// NATPunchthrough plugin: OpenNATGroup succeeded. + /// packet::guid contains the facilitator field of NatPunchthroughClient::OpenNAT() + /// See ID_NAT_GROUP_PUNCH_FAILED for data format + ID_NAT_GROUP_PUNCH_SUCCEEDED, + + /// ReadyEvent plugin - Set the ready state for a particular system + /// First 4 bytes after the message contains the id + ID_READY_EVENT_SET, + /// ReadyEvent plugin - Unset the ready state for a particular system + /// First 4 bytes after the message contains the id + ID_READY_EVENT_UNSET, + /// All systems are in state ID_READY_EVENT_SET + /// First 4 bytes after the message contains the id + ID_READY_EVENT_ALL_SET, + /// \internal, do not process in your game + /// ReadyEvent plugin - Request of ready event state - used for pulling data when newly connecting + ID_READY_EVENT_QUERY, + + /// Lobby packets. Second byte indicates type. + ID_LOBBY_GENERAL, + + // RPC3, RPC4Plugin error + ID_RPC_REMOTE_ERROR, + /// Plugin based replacement for RPC system + ID_RPC_PLUGIN, + + /// FileListTransfer transferring large files in chunks that are read only when needed, to save memory + ID_FILE_LIST_REFERENCE_PUSH, + /// Force the ready event to all set + ID_READY_EVENT_FORCE_ALL_SET, + + /// Rooms function + ID_ROOMS_EXECUTE_FUNC, + ID_ROOMS_LOGON_STATUS, + ID_ROOMS_HANDLE_CHANGE, + + /// Lobby2 message + ID_LOBBY2_SEND_MESSAGE, + ID_LOBBY2_SERVER_ERROR, + + /// Informs user of a new host GUID. Packet::Guid contains this new host RakNetGuid. The old host can be read out using BitStream->Read(RakNetGuid) starting on byte 1 + /// This is not returned until connected to a remote system + /// If the oldHost is UNASSIGNED_RAKNET_GUID, then this is the first time the host has been determined + ID_FCM2_NEW_HOST, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_REQUEST_FCMGUID, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_RESPOND_CONNECTION_COUNT, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_INFORM_FCMGUID, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT, + + /// UDP proxy messages. Second byte indicates type. + ID_UDP_PROXY_GENERAL, + + /// SQLite3Plugin - execute + ID_SQLite3_EXEC, + /// SQLite3Plugin - Remote database is unknown + ID_SQLite3_UNKNOWN_DB, + /// Events happening with SQLiteClientLoggerPlugin + ID_SQLLITE_LOGGER, + + /// Sent to NatTypeDetectionServer + ID_NAT_TYPE_DETECTION_REQUEST, + /// Sent to NatTypeDetectionClient. Byte 1 contains the type of NAT detected. + ID_NAT_TYPE_DETECTION_RESULT, + + /// Used by the router2 plugin + ID_ROUTER_2_INTERNAL, + /// No path is available or can be established to the remote system + /// Packet::guid contains the endpoint guid that we were trying to reach + ID_ROUTER_2_FORWARDING_NO_PATH, + /// \brief You can now call connect, ping, or other operations to the destination system. + /// + /// Connect as follows: + /// + /// RakNet::BitStream bs(packet->data, packet->length, false); + /// bs.IgnoreBytes(sizeof(MessageID)); + /// RakNetGUID endpointGuid; + /// bs.Read(endpointGuid); + /// unsigned short sourceToDestPort; + /// bs.Read(sourceToDestPort); + /// char ipAddressString[32]; + /// packet->systemAddress.ToString(false, ipAddressString); + /// rakPeerInterface->Connect(ipAddressString, sourceToDestPort, 0,0); + ID_ROUTER_2_FORWARDING_ESTABLISHED, + /// The IP address for a forwarded connection has changed + /// Read endpointGuid and port as per ID_ROUTER_2_FORWARDING_ESTABLISHED + ID_ROUTER_2_REROUTED, + + /// \internal Used by the team balancer plugin + ID_TEAM_BALANCER_INTERNAL, + /// Cannot switch to the desired team because it is full. However, if someone on that team leaves, you will + /// get ID_TEAM_BALANCER_SET_TEAM later. Byte 1 contains the team you requested to join. Following bytes contain NetworkID of which member. + ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING, + /// Cannot switch to the desired team because all teams are locked. However, if someone on that team leaves, + /// you will get ID_TEAM_BALANCER_SET_TEAM later. Byte 1 contains the team you requested to join. + ID_TEAM_BALANCER_TEAMS_LOCKED, + /// Team balancer plugin informing you of your team. Byte 1 contains the team you requested to join. Following bytes contain NetworkID of which member. + ID_TEAM_BALANCER_TEAM_ASSIGNED, + + /// Gamebryo Lightspeed integration + ID_LIGHTSPEED_INTEGRATION, + + /// XBOX integration + ID_XBOX_LOBBY, + + /// The password we used to challenge the other system passed, meaning the other system has called TwoWayAuthentication::AddPassword() with the same password we passed to TwoWayAuthentication::Challenge() + /// You can read the identifier used to challenge as follows: + /// RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(RakNet::MessageID)); RakNet::RakString password; bs.Read(password); + ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS, + ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS, + /// A remote system sent us a challenge using TwoWayAuthentication::Challenge(), and the challenge failed. + /// If the other system must pass the challenge to stay connected, you should call RakPeer::CloseConnection() to terminate the connection to the other system. + ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE, + /// The other system did not add the password we used to TwoWayAuthentication::AddPassword() + /// You can read the identifier used to challenge as follows: + /// RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(MessageID)); RakNet::RakString password; bs.Read(password); + ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE, + /// The other system did not respond within a timeout threshhold. Either the other system is not running the plugin or the other system was blocking on some operation for a long time. + /// You can read the identifier used to challenge as follows: + /// RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(MessageID)); RakNet::RakString password; bs.Read(password); + ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, + /// \internal + ID_TWO_WAY_AUTHENTICATION_NEGOTIATION, + + /// CloudClient / CloudServer + ID_CLOUD_POST_REQUEST, + ID_CLOUD_RELEASE_REQUEST, + ID_CLOUD_GET_REQUEST, + ID_CLOUD_GET_RESPONSE, + ID_CLOUD_UNSUBSCRIBE_REQUEST, + ID_CLOUD_SERVER_TO_SERVER_COMMAND, + ID_CLOUD_SUBSCRIPTION_NOTIFICATION, + + // So I can add more without changing user enumerations + ID_RESERVED_1, + ID_RESERVED_2, + ID_RESERVED_3, + ID_RESERVED_4, + ID_RESERVED_5, + ID_RESERVED_6, + ID_RESERVED_7, + ID_RESERVED_8, + ID_RESERVED_9, + + // For the user to use. Start your first enumeration at this value. + ID_USER_PACKET_ENUM, + //------------------------------------------------------------------------------------------------------------- + +}; + +#endif // RAKNET_USE_CUSTOM_PACKET_IDS + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughClient.cpp b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughClient.cpp new file mode 100755 index 0000000..da1c948 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughClient.cpp @@ -0,0 +1,970 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughClient==1 + +#include "NatPunchthroughClient.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "GetTime.h" +#include "PacketLogger.h" +#include "Itoa.h" + +using namespace RakNet; + +void NatPunchthroughDebugInterface_Printf::OnClientMessage(const char *msg) +{ + printf("%s\n", msg); +} +#if _RAKNET_SUPPORT_PacketLogger==1 +void NatPunchthroughDebugInterface_PacketLogger::OnClientMessage(const char *msg) +{ + if (pl) + { + pl->WriteMiscellaneous("Nat", msg); + } +} +#endif + +STATIC_FACTORY_DEFINITIONS(NatPunchthroughClient,NatPunchthroughClient); + +NatPunchthroughClient::NatPunchthroughClient() +{ + natPunchthroughDebugInterface=0; + mostRecentNewExternalPort=0; + sp.nextActionTime=0; +} +NatPunchthroughClient::~NatPunchthroughClient() +{ + rakPeerInterface=0; + Clear(); +} +bool NatPunchthroughClient::OpenNAT(RakNetGUID destination, const SystemAddress &facilitator) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(facilitator); + if (cs!=IS_CONNECTED) + return false; + + SendPunchthrough(destination, facilitator); + return true; +} +bool NatPunchthroughClient::OpenNATGroup(DataStructures::List destinationSystems, const SystemAddress &facilitator) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(facilitator); + if (cs!=IS_CONNECTED) + return false; + + unsigned long i; + for (i=0; i < destinationSystems.Size(); i++) + { + SendPunchthrough(destinationSystems[i], facilitator); + } + + GroupPunchRequest *gpr = RakNet::OP_NEW(_FILE_AND_LINE_); + gpr->facilitator=facilitator; + gpr->pendingList=destinationSystems; + groupPunchRequests.Push(gpr, _FILE_AND_LINE_); + + return true; +} +void NatPunchthroughClient::SetDebugInterface(NatPunchthroughDebugInterface *i) +{ + natPunchthroughDebugInterface=i; +} +void NatPunchthroughClient::Update(void) +{ + RakNet::Time time = RakNet::GetTime(); + if (sp.nextActionTime && sp.nextActionTime < time) + { + RakNet::Time delta = time - sp.nextActionTime; + if (sp.testMode==SendPing::TESTING_INTERNAL_IPS) + { + SendOutOfBand(sp.internalIds[sp.attemptCount],ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + if (++sp.retryCount>=pc.UDP_SENDS_PER_PORT_INTERNAL) + { + ++sp.attemptCount; + sp.retryCount=0; + } + + if (sp.attemptCount>=pc.MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK) + { + sp.testMode=SendPing::WAITING_FOR_INTERNAL_IPS_RESPONSE; + if (pc.INTERNAL_IP_WAIT_AFTER_ATTEMPTS>0) + { + sp.nextActionTime=time+pc.INTERNAL_IP_WAIT_AFTER_ATTEMPTS-delta; + } + else + { + // TESTING: Try sending to unused ports on the remote system to reserve our own ports while not getting banned + sp.testMode=SendPing::SEND_WITH_TTL; + // sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + sp.attemptCount=0; + } + } + else + { + sp.nextActionTime=time+pc.TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL-delta; + } + } + else if (sp.testMode==SendPing::WAITING_FOR_INTERNAL_IPS_RESPONSE) + { + // TESTING: Try sending to unused ports on the remote system to reserve our own ports while not getting banned + sp.testMode=SendPing::SEND_WITH_TTL; + // sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + sp.attemptCount=0; + } + else if (sp.testMode==SendPing::SEND_WITH_TTL) + { + // See http://www.jenkinssoftware.com/forum/index.php?topic=4021.0 + // For Linux 2.6.32 soft-router (ip-tables) + /* + If I understand correctly, getting a datagram on a particular address that was not previously used causes that the port for that address to not be used for when a reply would have otherwise been sent back from that address. + + PHASE 1: + 1. System 1 and 2 send to each other. + 2. Due to latency, system 1 sends first using the server port. + 3. System 2 gets the datagram and no longer uses the server port. Instead, it replies using port 1024. + 4. System 1 gets the reply. The source port is wrong, so it is rejected. + + To put it another way, if a router gets a datagram on a port that was not previously used, it will not reply on that port. However, if it doesn't reply on that port, the message will not be accepted by the remote system. + */ + + // Send to unused port. We do not want the message to arrive, just to open our router's table + SystemAddress sa=sp.targetAddress; + int ttlSendIndex; + for (ttlSendIndex=0; ttlSendIndex <= pc.MAX_PREDICTIVE_PORT_RANGE; ttlSendIndex++) + { + sa.SetPort((unsigned short) (sp.targetAddress.GetPort()+ttlSendIndex)); + SendTTL(sa); + } + + // Only do this stage once + // Wait 250 milliseconds for next stage. The delay is so that even with timing errors both systems send out the + // datagram with TTL before either sends a real one + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + sp.nextActionTime=time-delta+250; + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT) + { + SystemAddress sa=sp.targetAddress; + sa.SetPort((unsigned short) (sa.GetPort()+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + sp.testMode=SendPing::WAITING_AFTER_ALL_ATTEMPTS; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS-delta; + + // Skip TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT, etc. + /* + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT; + sp.attemptCount=0; + */ + } + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT) + { + SystemAddress sa=sp.targetAddress; + if ( sp.targetGuid < rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS) ) + sa.SetPort((unsigned short) (1024+sp.attemptCount)); + else + sa.SetPort((unsigned short) (sa.GetPort()+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + // From 1024 disabled, never helps as I've seen, but slows down the process by half + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_1024; + sp.attemptCount=0; + } + + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_1024) + { + SystemAddress sa=sp.targetAddress; + if ( sp.targetGuid > rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS) ) + sa.SetPort((unsigned short) (1024+sp.attemptCount)); + else + sa.SetPort((unsigned short) (sa.GetPort()+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + // From 1024 disabled, never helps as I've seen, but slows down the process by half + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_1024_TO_1024; + sp.attemptCount=0; + } + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_1024_TO_1024) + { + SystemAddress sa=sp.targetAddress; + sa.SetPort((unsigned short) (1024+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Likely bidirectional punchthrough failure to guid %s, system address %s.", guidString, ipAddressString)); + } + + sp.testMode=SendPing::WAITING_AFTER_ALL_ATTEMPTS; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS-delta; + } + } + else if (sp.testMode==SendPing::WAITING_AFTER_ALL_ATTEMPTS) + { + // Failed. Tell the user + OnPunchthroughFailure(); + UpdateGroupPunchOnNatResult(sp.facilitator, sp.targetGuid, sp.targetAddress, 1); + } + + if (sp.testMode==SendPing::PUNCHING_FIXED_PORT) + { + SendOutOfBand(sp.targetAddress,ID_NAT_ESTABLISH_BIDIRECTIONAL); + if (++sp.retryCount>=sp.punchingFixedPortAttempts) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Likely unidirectional punchthrough failure to guid %s, system address %s.", guidString, ipAddressString)); + } + + sp.testMode=SendPing::WAITING_AFTER_ALL_ATTEMPTS; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS-delta; + } + else + { + if ((sp.retryCount%pc.UDP_SENDS_PER_PORT_EXTERNAL)==0) + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_BETWEEN_PORTS-delta; + else + sp.nextActionTime=time+pc.TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL-delta; + } + } + } + + // Remove elapsed groupRequestsInProgress + unsigned int i; + i=0; + while (i < groupRequestsInProgress.Size()) + { + if (time > groupRequestsInProgress[i].time) + groupRequestsInProgress.RemoveAtIndexFast(i); + else + i++; + } +} +void NatPunchthroughClient::PushFailure(void) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)); + p->data[0]=ID_NAT_PUNCHTHROUGH_FAILED; + p->systemAddress=sp.targetAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=sp.targetGuid; + if (sp.weAreSender) + p->data[1]=1; + else + p->data[1]=0; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); +} +void NatPunchthroughClient::OnPunchthroughFailure(void) +{ + if (pc.retryOnFailure==false) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Failed punchthrough once. Returning failure to guid %s, system address %s to user.", guidString, ipAddressString)); + } + + PushFailure(); + OnReadyForNextPunchthrough(); + return; + } + + unsigned int i; + for (i=0; i < failedAttemptList.Size(); i++) + { + if (failedAttemptList[i].guid==sp.targetGuid) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Failed punchthrough twice. Returning failure to guid %s, system address %s to user.", guidString, ipAddressString)); + } + + // Failed a second time, so return failed to user + PushFailure(); + + OnReadyForNextPunchthrough(); + + failedAttemptList.RemoveAtIndexFast(i); + return; + } + } + + if (rakPeerInterface->GetConnectionState(sp.facilitator)!=IS_CONNECTED) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Not connected to facilitator, so cannot retry punchthrough after first failure. Returning failure onj guid %s, system address %s to user.", guidString, ipAddressString)); + } + + // Failed, and can't try again because no facilitator + PushFailure(); + return; + } + + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("First punchthrough failure on guid %s, system address %s. Reattempting.", guidString, ipAddressString)); + } + + // Failed the first time. Add to the failure queue and try again + AddrAndGuid aag; + aag.addr=sp.targetAddress; + aag.guid=sp.targetGuid; + failedAttemptList.Push(aag, _FILE_AND_LINE_); + + // Tell the server we are ready + OnReadyForNextPunchthrough(); + + // If we are the sender, try again, immediately if possible, else added to the queue on the faciltiator + if (sp.weAreSender) + SendPunchthrough(sp.targetGuid, sp.facilitator); +} +PluginReceiveResult NatPunchthroughClient::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_NAT_GET_MOST_RECENT_PORT: + { + OnGetMostRecentPort(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_NAT_PUNCHTHROUGH_FAILED: + case ID_NAT_PUNCHTHROUGH_SUCCEEDED: + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + break; + case ID_OUT_OF_BAND_INTERNAL: + if (packet->length>=2 && + (packet->data[1]==ID_NAT_ESTABLISH_UNIDIRECTIONAL || packet->data[1]==ID_NAT_ESTABLISH_BIDIRECTIONAL) && + sp.nextActionTime!=0) + { + RakNet::BitStream bs(packet->data,packet->length,false); + bs.IgnoreBytes(2); + uint16_t sessionId; + bs.Read(sessionId); +// RakAssert(sessionId<100); + if (sessionId!=sp.sessionId) + break; + + char ipAddressString[32]; + packet->systemAddress.ToString(true,ipAddressString); + // sp.targetGuid==packet->guid is because the internal IP addresses reported may include loopbacks not reported by RakPeer::IsLocalIP() + if (packet->data[1]==ID_NAT_ESTABLISH_UNIDIRECTIONAL && sp.targetGuid==packet->guid) + { + if (natPunchthroughDebugInterface) + { + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Received ID_NAT_ESTABLISH_UNIDIRECTIONAL from guid %s, system address %s.", guidString, ipAddressString)); + } + if (sp.testMode!=SendPing::PUNCHING_FIXED_PORT) + { + sp.testMode=SendPing::PUNCHING_FIXED_PORT; + sp.retryCount+=sp.attemptCount*pc.UDP_SENDS_PER_PORT_EXTERNAL; + sp.targetAddress=packet->systemAddress; + // Keeps trying until the other side gives up too, in case it is unidirectional + sp.punchingFixedPortAttempts=pc.UDP_SENDS_PER_PORT_EXTERNAL*(pc.MAX_PREDICTIVE_PORT_RANGE+1); + } + + SendOutOfBand(sp.targetAddress,ID_NAT_ESTABLISH_BIDIRECTIONAL); + } + else if (packet->data[1]==ID_NAT_ESTABLISH_BIDIRECTIONAL && + sp.targetGuid==packet->guid) + { + // They send back our port + bs.Read(mostRecentNewExternalPort); + + SendOutOfBand(packet->systemAddress,ID_NAT_ESTABLISH_BIDIRECTIONAL); + + // Tell the user about the success + sp.targetAddress=packet->systemAddress; + PushSuccess(); + UpdateGroupPunchOnNatResult(sp.facilitator, sp.targetGuid, sp.targetAddress, 1); + OnReadyForNextPunchthrough(); + bool removedFromFailureQueue=RemoveFromFailureQueue(); + + if (natPunchthroughDebugInterface) + { + char guidString[128]; + sp.targetGuid.ToString(guidString); + if (removedFromFailureQueue) + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough to guid %s, system address %s succeeded on 2nd attempt.", guidString, ipAddressString)); + else + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough to guid %s, system address %s succeeded on 1st attempt.", guidString, ipAddressString)); + } + } + + // mostRecentNewExternalPort=packet->systemAddress.GetPort(); + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_NAT_ALREADY_IN_PROGRESS: + { + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID targetGuid; + incomingBs.Read(targetGuid); + // Don't update group, just use later message + // UpdateGroupPunchOnNatResult(packet->systemAddress, targetGuid, UNASSIGNED_SYSTEM_ADDRESS, 2); + if (natPunchthroughDebugInterface) + { + char guidString[128]; + targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough retry to guid %s failed due to ID_NAT_ALREADY_IN_PROGRESS. Returning failure.", guidString)); + } + + } + break; + case ID_NAT_TARGET_NOT_CONNECTED: + case ID_NAT_CONNECTION_TO_TARGET_LOST: + case ID_NAT_TARGET_UNRESPONSIVE: + { + const char *reason; + if (packet->data[0]==ID_NAT_TARGET_NOT_CONNECTED) + reason=(char *)"ID_NAT_TARGET_NOT_CONNECTED"; + else if (packet->data[0]==ID_NAT_CONNECTION_TO_TARGET_LOST) + reason=(char *)"ID_NAT_CONNECTION_TO_TARGET_LOST"; + else + reason=(char *)"ID_NAT_TARGET_UNRESPONSIVE"; + + + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + + RakNetGUID targetGuid; + incomingBs.Read(targetGuid); + UpdateGroupPunchOnNatResult(packet->systemAddress, targetGuid, UNASSIGNED_SYSTEM_ADDRESS, 2); + + if (packet->data[0]==ID_NAT_CONNECTION_TO_TARGET_LOST || + packet->data[0]==ID_NAT_TARGET_UNRESPONSIVE) + { + uint16_t sessionId; + incomingBs.Read(sessionId); + if (sessionId!=sp.sessionId) + break; + } + + unsigned int i; + for (i=0; i < failedAttemptList.Size(); i++) + { + if (failedAttemptList[i].guid==targetGuid) + { + if (natPunchthroughDebugInterface) + { + char guidString[128]; + targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough retry to guid %s failed due to %s.", guidString, reason)); + + } + + // If the retry target is not connected, or loses connection, or is not responsive, then previous failures cannot be retried. + + // Don't need to return failed, the other messages indicate failure anyway + /* + Packet *p = AllocatePacketUnified(sizeof(MessageID)); + p->data[0]=ID_NAT_PUNCHTHROUGH_FAILED; + p->systemAddress=failedAttemptList[i].addr; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=failedAttemptList[i].guid; + rakPeerInterface->PushBackPacket(p, false); + */ + + failedAttemptList.RemoveAtIndexFast(i); + break; + } + } + + if (natPunchthroughDebugInterface) + { + char guidString[128]; + targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough attempt to guid %s failed due to %s.", guidString, reason)); + } + + // Stop trying punchthrough + sp.nextActionTime=0; + + /* + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID failedSystem; + bs.Read(failedSystem); + bool deletedFirst=false; + unsigned int i=0; + while (i < pendingOpenNAT.Size()) + { + if (pendingOpenNAT[i].destination==failedSystem) + { + if (i==0) + deletedFirst=true; + pendingOpenNAT.RemoveAtIndex(i); + } + else + i++; + } + // Failed while in progress. Go to next in attempt queue + if (deletedFirst && pendingOpenNAT.Size()) + { + SendPunchthrough(pendingOpenNAT[0].destination, pendingOpenNAT[0].facilitator); + sp.nextActionTime=0; + } + */ + } + break; + case ID_TIMESTAMP: + if (packet->data[sizeof(MessageID)+sizeof(RakNet::Time)]==ID_NAT_CONNECT_AT_TIME) + { + OnConnectAtTime(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + break; + } + return RR_CONTINUE_PROCESSING; +} +/* +void NatPunchthroughClient::ProcessNextPunchthroughQueue(void) +{ + // Go to the next attempt + if (pendingOpenNAT.Size()) + pendingOpenNAT.RemoveAtIndex(0); + + // Do next punchthrough attempt + if (pendingOpenNAT.Size()) + SendPunchthrough(pendingOpenNAT[0].destination, pendingOpenNAT[0].facilitator); + + sp.nextActionTime=0; +} +*/ +void NatPunchthroughClient::OnConnectAtTime(Packet *packet) +{ +// RakAssert(sp.nextActionTime==0); + + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.Read(sp.nextActionTime); + bs.IgnoreBytes(sizeof(MessageID)); + bs.Read(sp.sessionId); + bs.Read(sp.targetAddress); + int j; +// int k; +// k=0; + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) + bs.Read(sp.internalIds[j]); + + // Prevents local testing + /* + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) + { + SystemAddress id; + bs.Read(id); + char str[32]; + id.ToString(false,str); + if (rakPeerInterface->IsLocalIP(str)==false) + sp.internalIds[k++]=id; + } + */ + sp.attemptCount=0; + sp.retryCount=0; + if (pc.MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK>0) + { + sp.testMode=SendPing::TESTING_INTERNAL_IPS; + } + else + { + // TESTING: Try sending to unused ports on the remote system to reserve our own ports while not getting banned + sp.testMode=SendPing::SEND_WITH_TTL; + // sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + } + bs.Read(sp.targetGuid); + bs.Read(sp.weAreSender); +} +void NatPunchthroughClient::SendTTL(const SystemAddress &sa) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + if (sa.GetPort()==0) + return; + + char ipAddressString[32]; + sa.ToString(false, ipAddressString); + // TTL of 1 doesn't get past the router, 2 might hit the other system on a LAN + rakPeerInterface->SendTTL(ipAddressString,sa.GetPort(), 2); +} +void NatPunchthroughClient::SendOutOfBand(SystemAddress sa, MessageID oobId) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + if (sa.GetPort()==0) + return; + + RakNet::BitStream oob; + oob.Write(oobId); + oob.Write(sp.sessionId); +// RakAssert(sp.sessionId<100); + if (oobId==ID_NAT_ESTABLISH_BIDIRECTIONAL) + oob.Write(sa.GetPort()); + char ipAddressString[32]; + sa.ToString(false, ipAddressString); + rakPeerInterface->SendOutOfBand((const char*) ipAddressString,sa.GetPort(),(const char*) oob.GetData(),oob.GetNumberOfBytesUsed()); + + if (natPunchthroughDebugInterface) + { + sa.ToString(true,ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + + if (oobId==ID_NAT_ESTABLISH_UNIDIRECTIONAL) + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Sent OOB ID_NAT_ESTABLISH_UNIDIRECTIONAL to guid %s, system address %s.", guidString, ipAddressString)); + else + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Sent OOB ID_NAT_ESTABLISH_BIDIRECTIONAL to guid %s, system address %s.", guidString, ipAddressString)); + } +} +void NatPunchthroughClient::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) rakNetGUID; + (void) isIncoming; + + // Try to track new port mappings on the router. Not reliable, but better than nothing. + SystemAddress ourExternalId = rakPeerInterface->GetExternalID(systemAddress); + if (ourExternalId!=UNASSIGNED_SYSTEM_ADDRESS) + mostRecentNewExternalPort=ourExternalId.GetPort(); + + unsigned int i; + i=0; + while (i < groupRequestsInProgress.Size()) + { + if (groupRequestsInProgress[i].guid==rakNetGUID) + { + groupRequestsInProgress.RemoveAtIndexFast(i); + } + else + { + i++; + } + } +} + +void NatPunchthroughClient::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) systemAddress; + (void) rakNetGUID; + (void) lostConnectionReason; + + if (sp.facilitator==systemAddress) + { + // If we lose the connection to the facilitator, all previous failures not currently in progress are returned as such + unsigned int i=0; + while (i < failedAttemptList.Size()) + { + if (sp.nextActionTime!=0 && sp.targetGuid==failedAttemptList[i].guid) + { + i++; + continue; + } + + PushFailure(); + + failedAttemptList.RemoveAtIndexFast(i); + } + } + + unsigned int i; + i=0; + while (i < groupPunchRequests.Size()) + { + if (groupPunchRequests[i]->facilitator==systemAddress) + { + RakNet::OP_DELETE(groupPunchRequests[i],_FILE_AND_LINE_); + groupPunchRequests.RemoveAtIndexFast(i); + } + else + { + i++; + } + } + +} +void NatPunchthroughClient::GetUPNPPortMappings(char *externalPort, char *internalPort, const SystemAddress &natPunchthroughServerAddress) +{ + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + Itoa(sockets[0]->boundAddress.GetPort(),internalPort,10); + if (mostRecentNewExternalPort==0) + mostRecentNewExternalPort=rakPeerInterface->GetExternalID(natPunchthroughServerAddress).GetPort(); + Itoa(mostRecentNewExternalPort,externalPort,10); +} +void NatPunchthroughClient::OnFailureNotification(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data,packet->length,false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID senderGuid; + incomingBs.Read(senderGuid); + + unsigned int i; + i=0; + while (i < groupRequestsInProgress.Size()) + { + if (groupRequestsInProgress[i].guid==senderGuid) + { + groupRequestsInProgress.RemoveAtIndexFast(i); + break; + } + else + { + i++; + } + } +} +void NatPunchthroughClient::OnGetMostRecentPort(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data,packet->length,false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + uint16_t sessionId; + incomingBs.Read(sessionId); + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_GET_MOST_RECENT_PORT); + outgoingBs.Write(sessionId); + if (mostRecentNewExternalPort==0) + mostRecentNewExternalPort=rakPeerInterface->GetExternalID(packet->systemAddress).GetPort(); + RakAssert(mostRecentNewExternalPort!=0); + outgoingBs.Write(mostRecentNewExternalPort); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + sp.facilitator=packet->systemAddress; +} +/* +unsigned int NatPunchthroughClient::GetPendingOpenNATIndex(RakNetGUID destination, const SystemAddress &facilitator) +{ + unsigned int i; + for (i=0; i < pendingOpenNAT.Size(); i++) + { + if (pendingOpenNAT[i].destination==destination && pendingOpenNAT[i].facilitator==facilitator) + return i; + } + return (unsigned int) -1; +} +*/ +void NatPunchthroughClient::SendPunchthrough(RakNetGUID destination, const SystemAddress &facilitator) +{ + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_PUNCHTHROUGH_REQUEST); + outgoingBs.Write(destination); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,facilitator,false); + +// RakAssert(rakPeerInterface->GetSystemAddressFromGuid(destination)==UNASSIGNED_SYSTEM_ADDRESS); + + if (natPunchthroughDebugInterface) + { + char guidString[128]; + destination.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Starting ID_NAT_PUNCHTHROUGH_REQUEST to guid %s.", guidString)); + } +} +void NatPunchthroughClient::OnAttach(void) +{ + Clear(); +} +void NatPunchthroughClient::OnDetach(void) +{ + Clear(); +} +void NatPunchthroughClient::OnRakPeerShutdown(void) +{ + Clear(); +} +void NatPunchthroughClient::Clear(void) +{ + OnReadyForNextPunchthrough(); + + failedAttemptList.Clear(false, _FILE_AND_LINE_); + groupRequestsInProgress.Clear(false, _FILE_AND_LINE_); + unsigned int i; + for (i=0; i < groupPunchRequests.Size(); i++) + { + RakNet::OP_DELETE(groupPunchRequests[i],_FILE_AND_LINE_); + } + groupPunchRequests.Clear(true, _FILE_AND_LINE_); +} +PunchthroughConfiguration* NatPunchthroughClient::GetPunchthroughConfiguration(void) +{ + return &pc; +} +void NatPunchthroughClient::OnReadyForNextPunchthrough(void) +{ + if (rakPeerInterface==0) + return; + + sp.nextActionTime=0; + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_CLIENT_READY); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,sp.facilitator,false); +} + +void NatPunchthroughClient::PushSuccess(void) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)); + p->data[0]=ID_NAT_PUNCHTHROUGH_SUCCEEDED; + p->systemAddress=sp.targetAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=sp.targetGuid; + if (sp.weAreSender) + p->data[1]=1; + else + p->data[1]=0; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); +} +bool NatPunchthroughClient::RemoveFromFailureQueue(void) +{ + unsigned int i; + for (i=0; i < failedAttemptList.Size(); i++) + { + if (failedAttemptList[i].guid==sp.targetGuid) + { + // Remove from failure queue + failedAttemptList.RemoveAtIndexFast(i); + return true; + } + } + return false; +} + +void NatPunchthroughClient::IncrementExternalAttemptCount(RakNet::Time time, RakNet::Time delta) +{ + if (++sp.retryCount>=pc.UDP_SENDS_PER_PORT_EXTERNAL) + { + ++sp.attemptCount; + sp.retryCount=0; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_BETWEEN_PORTS-delta; + } + else + { + sp.nextActionTime=time+pc.TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL-delta; + } +} +// 0=failed, 1=success, 2=ignore +void NatPunchthroughClient::UpdateGroupPunchOnNatResult(SystemAddress facilitator, RakNetGUID targetSystem, SystemAddress targetSystemAddress, int result) +{ + GroupPunchRequest *gpr; + unsigned long i,j,k; + i=0; + while (i < groupPunchRequests.Size()) + { + gpr = groupPunchRequests[i]; + if (gpr->facilitator==facilitator) + { + j=0; + while (j < gpr->pendingList.Size()) + { + if (gpr->pendingList[j]==targetSystem) + { + if (result==0) + { + gpr->failedList.Push(targetSystem, _FILE_AND_LINE_); + } + else if (result==1) + { + gpr->passedListGuid.Push(targetSystem, _FILE_AND_LINE_); + gpr->passedListAddress.Push(targetSystemAddress, _FILE_AND_LINE_); + } + else + { + gpr->ignoredList.Push(targetSystem, _FILE_AND_LINE_); + } + gpr->pendingList.RemoveAtIndex(j); + } + else + j++; + } + } + if (gpr->pendingList.Size()==0) + { + RakNet::BitStream output; + if (gpr->failedList.Size()==0) + { + output.Write(ID_NAT_GROUP_PUNCH_SUCCEEDED); + } + else + { + output.Write(ID_NAT_GROUP_PUNCH_FAILED); + } + + output.WriteCasted(gpr->passedListGuid.Size()); + for (k=0; k < gpr->passedListGuid.Size(); k++) + { + output.Write(gpr->passedListGuid[k]); + output.Write(gpr->passedListAddress[k]); + } + output.WriteCasted(gpr->ignoredList.Size()); + for (k=0; k < gpr->ignoredList.Size(); k++) + { + output.Write(gpr->ignoredList[k]); + } + output.WriteCasted(gpr->failedList.Size()); + for (k=0; k < gpr->failedList.Size(); k++) + { + output.Write(gpr->failedList[k]); + } + + Packet *p = AllocatePacketUnified(output.GetNumberOfBytesUsed()); + p->systemAddress=gpr->facilitator; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=rakPeerInterface->GetGuidFromSystemAddress(gpr->facilitator); + p->wasGeneratedLocally=true; + memcpy(p->data, output.GetData(), output.GetNumberOfBytesUsed()); + rakPeerInterface->PushBackPacket(p, true); + + groupPunchRequests.RemoveAtIndex(i); + RakNet::OP_DELETE(gpr, _FILE_AND_LINE_); + } + else + i++; + } +} + +#endif // _RAKNET_SUPPORT_* + diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughClient.h b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughClient.h new file mode 100755 index 0000000..827de71 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughClient.h @@ -0,0 +1,265 @@ + +/// \file +/// \brief Contains the NAT-punchthrough plugin for the client. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughClient==1 + +#ifndef __NAT_PUNCHTHROUGH_CLIENT_H +#define __NAT_PUNCHTHROUGH_CLIENT_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_List.h" +#include "RakString.h" + +// Trendnet TEW-632BRP sometimes starts at port 1024 and increments sequentially. +// Zonnet zsr1134we. Replies go out on the net, but are always absorbed by the remote router?? +// Dlink ebr2310 to Trendnet ok +// Trendnet TEW-652BRP to Trendnet 632BRP OK +// Trendnet TEW-632BRP to Trendnet 632BRP OK +// Buffalo WHR-HP-G54 OK +// Netgear WGR614 ok + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; +#if _RAKNET_SUPPORT_PacketLogger==1 +class PacketLogger; +#endif + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT PunchthroughConfiguration +{ + /// internal: (15 ms * 2 tries + 30 wait) * 5 ports * 8 players = 2.4 seconds + /// external: (50 ms * 8 sends + 100 wait) * 2 port * 8 players = 8 seconds + /// Total: 8 seconds + PunchthroughConfiguration() { + TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL=15; + TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL=50; + UDP_SENDS_PER_PORT_INTERNAL=2; + UDP_SENDS_PER_PORT_EXTERNAL=8; + INTERNAL_IP_WAIT_AFTER_ATTEMPTS=30; + MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK=5; /// set to 0 to not do lan connects + MAX_PREDICTIVE_PORT_RANGE=2; + EXTERNAL_IP_WAIT_BETWEEN_PORTS=100; + EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS=EXTERNAL_IP_WAIT_BETWEEN_PORTS; + retryOnFailure=false; + } + + /// How much time between each UDP send + RakNet::Time TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL; + RakNet::Time TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL; + + /// How many tries for one port before giving up and going to the next port + int UDP_SENDS_PER_PORT_INTERNAL; + int UDP_SENDS_PER_PORT_EXTERNAL; + + /// After giving up on one internal port, how long to wait before trying the next port + int INTERNAL_IP_WAIT_AFTER_ATTEMPTS; + + /// How many external ports to try past the last known starting port + int MAX_PREDICTIVE_PORT_RANGE; + + /// After giving up on one external port, how long to wait before trying the next port + int EXTERNAL_IP_WAIT_BETWEEN_PORTS; + + /// After trying all external ports, how long to wait before returning ID_NAT_PUNCHTHROUGH_FAILED + int EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS; + + /// Maximum number of internal IP address to try to connect to. + /// Cannot be greater than MAXIMUM_NUMBER_OF_INTERNAL_IDS + /// Should be high enough to try all internal IP addresses on the majority of computers + int MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK; + + /// If the first punchthrough attempt fails, try again + /// This sometimes works because the remote router was looking for an incoming message on a higher numbered port before responding to a lower numbered port from the other system + bool retryOnFailure; +}; + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughDebugInterface +{ + NatPunchthroughDebugInterface() {} + virtual ~NatPunchthroughDebugInterface() {} + virtual void OnClientMessage(const char *msg)=0; +}; + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughDebugInterface_Printf : public NatPunchthroughDebugInterface +{ + virtual void OnClientMessage(const char *msg); +}; + +#if _RAKNET_SUPPORT_PacketLogger==1 +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughDebugInterface_PacketLogger : public NatPunchthroughDebugInterface +{ + // Set to non-zero to write to the packetlogger! + PacketLogger *pl; + + NatPunchthroughDebugInterface_PacketLogger() {pl=0;} + ~NatPunchthroughDebugInterface_PacketLogger() {} + virtual void OnClientMessage(const char *msg); +}; +#endif + +/// \brief Client code for NATPunchthrough +/// \details Maintain connection to NatPunchthroughServer to process incoming connection attempts through NatPunchthroughClient
+/// Client will send datagrams to port to estimate next port
+/// Will simultaneously connect with another client once ports are estimated. +/// \sa NatTypeDetectionClient +/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html +/// \ingroup NAT_PUNCHTHROUGH_GROUP +class RAK_DLL_EXPORT NatPunchthroughClient : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NatPunchthroughClient) + + NatPunchthroughClient(); + ~NatPunchthroughClient(); + + /// Punchthrough a NAT. Doesn't connect, just tries to setup the routing table + /// \param[in] destination The system to punch. Must already be connected to \a facilitator + /// \param[in] facilitator A system we are already connected to running the NatPunchthroughServer plugin + /// \sa OpenNATGroup() + /// You will get ID_NAT_PUNCHTHROUGH_SUCCEEDED on success + /// You will get ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_TARGET_UNRESPONSIVE, ID_NAT_CONNECTION_TO_TARGET_LOST, ID_NAT_ALREADY_IN_PROGRESS, or ID_NAT_PUNCHTHROUGH_FAILED on failures of various types + /// However, if you lose connection to the facilitator, you may not necessarily get above + bool OpenNAT(RakNetGUID destination, const SystemAddress &facilitator); + + /// Same as calling OpenNAT for a list of systems, but reply is delayed until all systems pass. + /// This is useful for peer to peer games where you want to connect to every system in the remote session, not just one particular system + /// \note For cloud computing, all systems in the group must be connected to the same facilitator since we're only specifying one + /// You will get ID_NAT_GROUP_PUNCH_SUCCEEDED on success + /// You will get ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_ALREADY_IN_PROGRESS, or ID_NAT_GROUP_PUNCH_FAILED on failures of various types + /// However, if you lose connection to the facilitator, you may not necessarily get above + bool OpenNATGroup(DataStructures::List destinationSystems, const SystemAddress &facilitator); + + /// Modify the system configuration if desired + /// Don't modify the variables in the structure while punchthrough is in progress + PunchthroughConfiguration* GetPunchthroughConfiguration(void); + + /// Sets a callback to be called with debug messages + /// \param[in] i Pointer to an interface. The pointer is stored, so don't delete it while in progress. Pass 0 to clear. + void SetDebugInterface(NatPunchthroughDebugInterface *i); + + /// Get the port mappings you should pass to UPNP (for miniupnpc-1.5, for the function UPNP_AddPortMapping) + void GetUPNPPortMappings(char *externalPort, char *internalPort, const SystemAddress &natPunchthroughServerAddress); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + + /// \internal For plugin handling + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + + /// \internal For plugin handling + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + virtual void OnAttach(void); + virtual void OnDetach(void); + virtual void OnRakPeerShutdown(void); + void Clear(void); + +protected: + unsigned short mostRecentNewExternalPort; + void OnNatGroupPunchthroughRequest(Packet *packet); + void OnFailureNotification(Packet *packet); + void OnNatGroupPunchthroughReply(Packet *packet); + void OnGetMostRecentPort(Packet *packet); + void OnConnectAtTime(Packet *packet); + unsigned int GetPendingOpenNATIndex(RakNetGUID destination, const SystemAddress &facilitator); + void SendPunchthrough(RakNetGUID destination, const SystemAddress &facilitator); + void SendTTL(const SystemAddress &sa); + void SendOutOfBand(SystemAddress sa, MessageID oobId); + void OnPunchthroughFailure(void); + void OnReadyForNextPunchthrough(void); + void PushFailure(void); + bool RemoveFromFailureQueue(void); + void PushSuccess(void); + + struct SendPing + { + RakNet::Time nextActionTime; + SystemAddress targetAddress; + SystemAddress facilitator; + SystemAddress internalIds[MAXIMUM_NUMBER_OF_INTERNAL_IDS]; + RakNetGUID targetGuid; + bool weAreSender; + int attemptCount; + int retryCount; + int punchingFixedPortAttempts; // only used for TestMode::PUNCHING_FIXED_PORT + uint16_t sessionId; + // Give priority to internal IP addresses because if we are on a LAN, we don't want to try to connect through the internet + enum TestMode + { + TESTING_INTERNAL_IPS, + WAITING_FOR_INTERNAL_IPS_RESPONSE, + SEND_WITH_TTL, + TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT, + TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT, + TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_1024, + TESTING_EXTERNAL_IPS_1024_TO_1024, + WAITING_AFTER_ALL_ATTEMPTS, + + // The trendnet remaps the remote port to 1024. + // If you continue punching on a different port for the same IP it bans you and the communication becomes unidirectioal + PUNCHING_FIXED_PORT, + + // try port 1024-1028 + } testMode; + } sp; + + PunchthroughConfiguration pc; + NatPunchthroughDebugInterface *natPunchthroughDebugInterface; + + // The first time we fail a NAT attempt, we add it to failedAttemptList and try again, since sometimes trying again later fixes the problem + // The second time we fail, we return ID_NAT_PUNCHTHROUGH_FAILED + struct AddrAndGuid + { + SystemAddress addr; + RakNetGUID guid; + }; + DataStructures::List failedAttemptList; + + void IncrementExternalAttemptCount(RakNet::Time time, RakNet::Time delta); + + struct TimeAndGuid + { + RakNet::Time time; + RakNetGUID guid; + }; + DataStructures::List groupRequestsInProgress; + + struct GroupPunchRequest + { + SystemAddress facilitator; + DataStructures::List pendingList; + DataStructures::List passedListGuid; + DataStructures::List passedListAddress; + DataStructures::List failedList; + DataStructures::List ignoredList; + }; + DataStructures::List groupPunchRequests; + void UpdateGroupPunchOnNatResult(SystemAddress facilitator, RakNetGUID targetSystem, SystemAddress targetSystemAddress, int result); // 0=failed, 1=success, 2=ignore +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughServer.cpp b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughServer.cpp new file mode 100755 index 0000000..4130b65 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughServer.cpp @@ -0,0 +1,563 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughServer==1 + +#include "NatPunchthroughServer.h" +#include "SocketLayer.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "MTUSize.h" +#include "GetTime.h" +#include "PacketLogger.h" + +using namespace RakNet; + +void NatPunchthroughServerDebugInterface_Printf::OnServerMessage(const char *msg) +{ + printf("%s\n", msg); +} +#if _RAKNET_SUPPORT_PacketLogger==1 +void NatPunchthroughServerDebugInterface_PacketLogger::OnServerMessage(const char *msg) +{ + if (pl) + { + pl->WriteMiscellaneous("Nat", msg); + } +} +#endif + +void NatPunchthroughServer::User::DeleteConnectionAttempt(NatPunchthroughServer::ConnectionAttempt *ca) +{ + unsigned int index = connectionAttempts.GetIndexOf(ca); + if ((unsigned int)index!=(unsigned int)-1) + { + RakNet::OP_DELETE(ca,_FILE_AND_LINE_); + connectionAttempts.RemoveAtIndex(index); + } +} +void NatPunchthroughServer::User::DerefConnectionAttempt(NatPunchthroughServer::ConnectionAttempt *ca) +{ + unsigned int index = connectionAttempts.GetIndexOf(ca); + if ((unsigned int)index!=(unsigned int)-1) + { + connectionAttempts.RemoveAtIndex(index); + } +} +bool NatPunchthroughServer::User::HasConnectionAttemptToUser(User *user) +{ + unsigned int index; + for (index=0; index < connectionAttempts.Size(); index++) + { + if (connectionAttempts[index]->recipient->guid==user->guid || + connectionAttempts[index]->sender->guid==user->guid) + return true; + } + return false; +} +void NatPunchthroughServer::User::LogConnectionAttempts(RakNet::RakString &rs) +{ + rs.Clear(); + unsigned int index; + char guidStr[128], ipStr[128]; + guid.ToString(guidStr); + systemAddress.ToString(true,ipStr); + rs=RakNet::RakString("User systemAddress=%s guid=%s\n", ipStr, guidStr); + rs+=RakNet::RakString("%i attempts in list:\n", connectionAttempts.Size()); + for (index=0; index < connectionAttempts.Size(); index++) + { + rs+=RakNet::RakString("%i. SessionID=%i ", index+1, connectionAttempts[index]->sessionId); + if (connectionAttempts[index]->sender==this) + rs+="(We are sender) "; + else + rs+="(We are recipient) "; + if (isReady) + rs+="(READY TO START) "; + else + rs+="(NOT READY TO START) "; + if (connectionAttempts[index]->attemptPhase==NatPunchthroughServer::ConnectionAttempt::NAT_ATTEMPT_PHASE_NOT_STARTED) + rs+="(NOT_STARTED). "; + else + rs+="(GETTING_RECENT_PORTS). "; + if (connectionAttempts[index]->sender==this) + { + connectionAttempts[index]->recipient->guid.ToString(guidStr); + connectionAttempts[index]->recipient->systemAddress.ToString(true,ipStr); + } + else + { + connectionAttempts[index]->sender->guid.ToString(guidStr); + connectionAttempts[index]->sender->systemAddress.ToString(true,ipStr); + } + + rs+=RakNet::RakString("Target systemAddress=%s, guid=%s.\n", ipStr, guidStr); + } +} + +int RakNet::NatPunchthroughServer::NatPunchthroughUserComp( const RakNetGUID &key, User * const &data ) +{ + if (key < data->guid) + return -1; + if (key > data->guid) + return 1; + return 0; +} + +STATIC_FACTORY_DEFINITIONS(NatPunchthroughServer,NatPunchthroughServer); + +NatPunchthroughServer::NatPunchthroughServer() +{ + lastUpdate=0; + sessionId=0; + natPunchthroughServerDebugInterface=0; +} +NatPunchthroughServer::~NatPunchthroughServer() +{ + User *user, *otherUser; + ConnectionAttempt *connectionAttempt; + unsigned int j; + while(users.Size()) + { + user = users[0]; + for (j=0; j < user->connectionAttempts.Size(); j++) + { + connectionAttempt=user->connectionAttempts[j]; + if (connectionAttempt->sender==user) + otherUser=connectionAttempt->recipient; + else + otherUser=connectionAttempt->sender; + otherUser->DeleteConnectionAttempt(connectionAttempt); + } + RakNet::OP_DELETE(user,_FILE_AND_LINE_); + users[0]=users[users.Size()-1]; + users.RemoveAtIndex(users.Size()-1); + } +} +void NatPunchthroughServer::SetDebugInterface(NatPunchthroughServerDebugInterface *i) +{ + natPunchthroughServerDebugInterface=i; +} +void NatPunchthroughServer::Update(void) +{ + ConnectionAttempt *connectionAttempt; + User *user, *recipient; + unsigned int i,j; + RakNet::Time time = RakNet::GetTime(); + if (time > lastUpdate+250) + { + lastUpdate=time; + + for (i=0; i < users.Size(); i++) + { + user=users[i]; + for (j=0; j < user->connectionAttempts.Size(); j++) + { + connectionAttempt=user->connectionAttempts[j]; + if (connectionAttempt->sender==user) + { + if (connectionAttempt->attemptPhase!=ConnectionAttempt::NAT_ATTEMPT_PHASE_NOT_STARTED && + time > connectionAttempt->startTime && + time > 10000 + connectionAttempt->startTime ) // Formerly 5000, but sometimes false positives + { + RakNet::BitStream outgoingBs; + + // that other system might not be running the plugin + outgoingBs.Write((MessageID)ID_NAT_TARGET_UNRESPONSIVE); + outgoingBs.Write(connectionAttempt->recipient->guid); + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,connectionAttempt->sender->systemAddress,false); + + // 05/28/09 Previously only told sender about ID_NAT_CONNECTION_TO_TARGET_LOST + // However, recipient may be expecting it due to external code + // In that case, recipient would never get any response if the sender dropped + outgoingBs.Reset(); + outgoingBs.Write((MessageID)ID_NAT_TARGET_UNRESPONSIVE); + outgoingBs.Write(connectionAttempt->sender->guid); + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,connectionAttempt->recipient->systemAddress,false); + + connectionAttempt->sender->isReady=true; + connectionAttempt->recipient->isReady=true; + recipient=connectionAttempt->recipient; + + + if (natPunchthroughServerDebugInterface) + { + char str[1024]; + char addr1[128], addr2[128]; + // 8/01/09 Fixed bug where this was after DeleteConnectionAttempt() + connectionAttempt->sender->systemAddress.ToString(true,addr1); + connectionAttempt->recipient->systemAddress.ToString(true,addr2); + sprintf(str, "Sending ID_NAT_TARGET_UNRESPONSIVE to sender %s and recipient %s.", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(str); + RakNet::RakString log; + connectionAttempt->sender->LogConnectionAttempts(log); + connectionAttempt->recipient->LogConnectionAttempts(log); + } + + + connectionAttempt->sender->DerefConnectionAttempt(connectionAttempt); + connectionAttempt->recipient->DeleteConnectionAttempt(connectionAttempt); + + StartPunchthroughForUser(user); + StartPunchthroughForUser(recipient); + + break; + } + } + } + } + } +} +PluginReceiveResult NatPunchthroughServer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_NAT_PUNCHTHROUGH_REQUEST: + OnNATPunchthroughRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_NAT_GET_MOST_RECENT_PORT: + OnGetMostRecentPort(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_NAT_CLIENT_READY: + OnClientReady(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void NatPunchthroughServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + + unsigned int i=0; + bool objectExists; + i = users.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { + RakNet::BitStream outgoingBs; + DataStructures::List freedUpInProgressUsers; + User *user = users[i]; + User *otherUser; + unsigned int connectionAttemptIndex; + ConnectionAttempt *connectionAttempt; + for (connectionAttemptIndex=0; connectionAttemptIndex < user->connectionAttempts.Size(); connectionAttemptIndex++) + { + connectionAttempt=user->connectionAttempts[connectionAttemptIndex]; + outgoingBs.Reset(); + if (connectionAttempt->recipient==user) + { + otherUser=connectionAttempt->sender; + } + else + { + otherUser=connectionAttempt->recipient; + } + + // 05/28/09 Previously only told sender about ID_NAT_CONNECTION_TO_TARGET_LOST + // However, recipient may be expecting it due to external code + // In that case, recipient would never get any response if the sender dropped + outgoingBs.Write((MessageID)ID_NAT_CONNECTION_TO_TARGET_LOST); + outgoingBs.Write(rakNetGUID); + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,otherUser->systemAddress,false); + + // 4/22/09 - Bug: was checking inProgress, legacy variable not used elsewhere + if (connectionAttempt->attemptPhase==ConnectionAttempt::NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS) + { + otherUser->isReady=true; + freedUpInProgressUsers.Insert(otherUser, _FILE_AND_LINE_ ); + } + + otherUser->DeleteConnectionAttempt(connectionAttempt); + } + + RakNet::OP_DELETE(users[i], _FILE_AND_LINE_); + users.RemoveAtIndex(i); + + for (i=0; i < freedUpInProgressUsers.Size(); i++) + { + StartPunchthroughForUser(freedUpInProgressUsers[i]); + } + } + + // Also remove from groupPunchthroughRequests + for (i=0; i < users.Size(); i++) + { + bool objectExists; + unsigned int gprIndex; + gprIndex = users[i]->groupPunchthroughRequests.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { +// printf("DEBUG %i\n", __LINE__); + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_TARGET_NOT_CONNECTED); + outgoingBs.Write(rakNetGUID); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,users[i]->systemAddress,false); + + users[i]->groupPunchthroughRequests.RemoveAtIndex(gprIndex); + } + } +} + +void NatPunchthroughServer::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) systemAddress; + (void) isIncoming; + + User *user = RakNet::OP_NEW(_FILE_AND_LINE_); + user->guid=rakNetGUID; + user->mostRecentPort=0; + user->systemAddress=systemAddress; + user->isReady=true; + users.Insert(rakNetGUID, user, true, _FILE_AND_LINE_); + +// printf("Adding to users %s\n", rakNetGUID.ToString()); +// printf("DEBUG users[0] guid=%s\n", users[0]->guid.ToString()); +} +void NatPunchthroughServer::OnNATPunchthroughRequest(Packet *packet) +{ + RakNet::BitStream outgoingBs; + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID recipientGuid, senderGuid; + incomingBs.Read(recipientGuid); + senderGuid=packet->guid; + unsigned int i; + bool objectExists; + i = users.GetIndexFromKey(senderGuid, &objectExists); + RakAssert(objectExists); + + ConnectionAttempt *ca = RakNet::OP_NEW(_FILE_AND_LINE_); + ca->sender=users[i]; + ca->sessionId=sessionId++; + i = users.GetIndexFromKey(recipientGuid, &objectExists); + if (objectExists==false) + { +// printf("DEBUG %i\n", __LINE__); +// printf("DEBUG recipientGuid=%s\n", recipientGuid.ToString()); +// printf("DEBUG users[0] guid=%s\n", users[0]->guid.ToString()); + + outgoingBs.Write((MessageID)ID_NAT_TARGET_NOT_CONNECTED); + outgoingBs.Write(recipientGuid); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + RakNet::OP_DELETE(ca,_FILE_AND_LINE_); + return; + } + ca->recipient=users[i]; + if (ca->recipient->HasConnectionAttemptToUser(ca->sender)) + { + outgoingBs.Write((MessageID)ID_NAT_ALREADY_IN_PROGRESS); + outgoingBs.Write(recipientGuid); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + RakNet::OP_DELETE(ca,_FILE_AND_LINE_); + return; + } + + ca->sender->connectionAttempts.Insert(ca, _FILE_AND_LINE_ ); + ca->recipient->connectionAttempts.Insert(ca, _FILE_AND_LINE_ ); + + StartPunchthroughForUser(ca->sender); +} +void NatPunchthroughServer::OnClientReady(Packet *packet) +{ + unsigned int i; + bool objectExists; + i = users.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists) + { + users[i]->isReady=true; + StartPunchthroughForUser(users[i]); + } +} +void NatPunchthroughServer::OnGetMostRecentPort(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + uint16_t sessionId; + unsigned short mostRecentPort; + bsIn.Read(sessionId); + bsIn.Read(mostRecentPort); + + unsigned int i,j; + User *user; + ConnectionAttempt *connectionAttempt; + bool objectExists; + i = users.GetIndexFromKey(packet->guid, &objectExists); + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + packet->systemAddress.ToString(true,addr1); + packet->guid.ToString(addr2); + log=RakNet::RakString("Got ID_NAT_GET_MOST_RECENT_PORT from systemAddress %s guid %s. port=%i. sessionId=%i. userFound=%i.", addr1, addr2, mostRecentPort, sessionId, objectExists); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + if (objectExists) + { + user=users[i]; + user->mostRecentPort=mostRecentPort; + RakNet::Time time = RakNet::GetTime(); + + for (j=0; j < user->connectionAttempts.Size(); j++) + { + connectionAttempt=user->connectionAttempts[j]; + if (connectionAttempt->attemptPhase==ConnectionAttempt::NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS && + connectionAttempt->sender->mostRecentPort!=0 && + connectionAttempt->recipient->mostRecentPort!=0 && + // 04/29/08 add sessionId to prevent processing for other systems + connectionAttempt->sessionId==sessionId) + { + SystemAddress senderSystemAddress = connectionAttempt->sender->systemAddress; + SystemAddress recipientSystemAddress = connectionAttempt->recipient->systemAddress; + SystemAddress recipientTargetAddress = recipientSystemAddress; + SystemAddress senderTargetAddress = senderSystemAddress; + recipientTargetAddress.SetPort(connectionAttempt->recipient->mostRecentPort); + senderTargetAddress.SetPort(connectionAttempt->sender->mostRecentPort); + + // Pick a time far enough in the future that both systems will have gotten the message + int targetPing = rakPeerInterface->GetAveragePing(recipientTargetAddress); + int senderPing = rakPeerInterface->GetAveragePing(senderSystemAddress); + RakNet::Time simultaneousAttemptTime; + if (targetPing==-1 || senderPing==-1) + simultaneousAttemptTime = time + 1500; + else + { + int largerPing = targetPing > senderPing ? targetPing : senderPing; + if (largerPing * 4 < 100) + simultaneousAttemptTime = time + 100; + else + simultaneousAttemptTime = time + (largerPing * 4); + } + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + recipientSystemAddress.ToString(true,addr1); + connectionAttempt->recipient->guid.ToString(addr2); + log=RakNet::RakString("Sending ID_NAT_CONNECT_AT_TIME to recipient systemAddress %s guid %s", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + // Send to recipient timestamped message to connect at time + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TIMESTAMP); + bsOut.Write(simultaneousAttemptTime); + bsOut.Write((MessageID)ID_NAT_CONNECT_AT_TIME); + bsOut.Write(connectionAttempt->sessionId); + bsOut.Write(senderTargetAddress); // Public IP, using most recent port + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) // Internal IP + bsOut.Write(rakPeerInterface->GetInternalID(senderSystemAddress,j)); + bsOut.Write(connectionAttempt->sender->guid); + bsOut.Write(false); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,recipientSystemAddress,false); + + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + senderSystemAddress.ToString(true,addr1); + connectionAttempt->sender->guid.ToString(addr2); + log=RakNet::RakString("Sending ID_NAT_CONNECT_AT_TIME to sender systemAddress %s guid %s", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + + // Same for sender + bsOut.Reset(); + bsOut.Write((MessageID)ID_TIMESTAMP); + bsOut.Write(simultaneousAttemptTime); + bsOut.Write((MessageID)ID_NAT_CONNECT_AT_TIME); + bsOut.Write(connectionAttempt->sessionId); + bsOut.Write(recipientTargetAddress); // Public IP, using most recent port + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) // Internal IP + bsOut.Write(rakPeerInterface->GetInternalID(recipientSystemAddress,j)); + bsOut.Write(connectionAttempt->recipient->guid); + bsOut.Write(true); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,senderSystemAddress,false); + + connectionAttempt->recipient->DerefConnectionAttempt(connectionAttempt); + connectionAttempt->sender->DeleteConnectionAttempt(connectionAttempt); + + // 04/29/08 missing return + return; + } + } + } + else + { + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + packet->systemAddress.ToString(true,addr1); + packet->guid.ToString(addr2); + log=RakNet::RakString("Ignoring ID_NAT_GET_MOST_RECENT_PORT from systemAddress %s guid %s", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + } +} +void NatPunchthroughServer::StartPunchthroughForUser(User *user) +{ + if (user->isReady==false) + return; + + ConnectionAttempt *connectionAttempt; + User *sender,*recipient,*otherUser; + unsigned int i; + for (i=0; i < user->connectionAttempts.Size(); i++) + { + connectionAttempt=user->connectionAttempts[i]; + if (connectionAttempt->sender==user) + { + otherUser=connectionAttempt->recipient; + sender=user; + recipient=otherUser; + } + else + { + otherUser=connectionAttempt->sender; + recipient=user; + sender=otherUser; + } + + if (otherUser->isReady) + { + if (natPunchthroughServerDebugInterface) + { + char str[1024]; + char addr1[128], addr2[128]; + sender->systemAddress.ToString(true,addr1); + recipient->systemAddress.ToString(true,addr2); + sprintf(str, "Sending NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS to sender %s and recipient %s.", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(str); + } + + sender->isReady=false; + recipient->isReady=false; + connectionAttempt->attemptPhase=ConnectionAttempt::NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS; + connectionAttempt->startTime=RakNet::GetTime(); + + sender->mostRecentPort=0; + recipient->mostRecentPort=0; + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_GET_MOST_RECENT_PORT); + // 4/29/09 Write sessionID so we don't use returned port for a system we don't want + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,sender->systemAddress,false); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,recipient->systemAddress,false); + + // 4/22/09 - BUG: missing break statement here + break; + } + } +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughServer.h b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughServer.h new file mode 100755 index 0000000..3b4f6df --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatPunchthroughServer.h @@ -0,0 +1,145 @@ +/// \file +/// \brief Contains the NAT-punchthrough plugin for the server. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughServer==1 + +#ifndef __NAT_PUNCHTHROUGH_SERVER_H +#define __NAT_PUNCHTHROUGH_SERVER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_OrderedList.h" +#include "RakString.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; +#if _RAKNET_SUPPORT_PacketLogger==1 +class PacketLogger; +#endif + +/// \defgroup NAT_PUNCHTHROUGH_GROUP NatPunchthrough +/// \brief Connect systems despite both systems being behind a router +/// \details +/// \ingroup PLUGINS_GROUP + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughServerDebugInterface +{ + NatPunchthroughServerDebugInterface() {} + virtual ~NatPunchthroughServerDebugInterface() {} + virtual void OnServerMessage(const char *msg)=0; +}; + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughServerDebugInterface_Printf : public NatPunchthroughServerDebugInterface +{ + virtual void OnServerMessage(const char *msg); +}; + +#if _RAKNET_SUPPORT_PacketLogger==1 +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughServerDebugInterface_PacketLogger : public NatPunchthroughServerDebugInterface +{ + // Set to non-zero to write to the packetlogger! + PacketLogger *pl; + + NatPunchthroughServerDebugInterface_PacketLogger() {pl=0;} + ~NatPunchthroughServerDebugInterface_PacketLogger() {} + virtual void OnServerMessage(const char *msg); +}; +#endif + +/// \brief Server code for NATPunchthrough +/// \details Maintain connection to NatPunchthroughServer to process incoming connection attempts through NatPunchthroughClient
+/// Server maintains two sockets clients can connect to so as to estimate the next port choice
+/// Server tells other client about port estimate, current public port to the server, and a time to start connection attempts +/// \sa NatTypeDetectionClient +/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html +/// \ingroup NAT_PUNCHTHROUGH_GROUP +class RAK_DLL_EXPORT NatPunchthroughServer : public PluginInterface2 +{ +public: + + STATIC_FACTORY_DECLARATIONS(NatPunchthroughServer) + + // Constructor + NatPunchthroughServer(); + + // Destructor + virtual ~NatPunchthroughServer(); + + /// Sets a callback to be called with debug messages + /// \param[in] i Pointer to an interface. The pointer is stored, so don't delete it while in progress. Pass 0 to clear. + void SetDebugInterface(NatPunchthroughServerDebugInterface *i); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + + /// \internal For plugin handling + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + + // Each connected user has a ready state. Ready means ready for nat punchthrough. + struct User; + struct ConnectionAttempt + { + ConnectionAttempt() {sender=0; recipient=0; startTime=0; attemptPhase=NAT_ATTEMPT_PHASE_NOT_STARTED;} + User *sender, *recipient; + uint16_t sessionId; + RakNet::Time startTime; + enum + { + NAT_ATTEMPT_PHASE_NOT_STARTED, + NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS, + } attemptPhase; + }; + struct User + { + RakNetGUID guid; + SystemAddress systemAddress; + unsigned short mostRecentPort; + bool isReady; + DataStructures::OrderedList groupPunchthroughRequests; + + DataStructures::List connectionAttempts; + bool HasConnectionAttemptToUser(User *user); + void DerefConnectionAttempt(ConnectionAttempt *ca); + void DeleteConnectionAttempt(ConnectionAttempt *ca); + void LogConnectionAttempts(RakNet::RakString &rs); + }; + RakNet::Time lastUpdate; + static int NatPunchthroughUserComp( const RakNetGUID &key, User * const &data ); +protected: + void OnNATPunchthroughRequest(Packet *packet); + DataStructures::OrderedList users; + + void OnGetMostRecentPort(Packet *packet); + void OnClientReady(Packet *packet); + + void SendTimestamps(void); + void StartPendingPunchthrough(void); + void StartPunchthroughForUser(User*user); + uint16_t sessionId; + NatPunchthroughServerDebugInterface *natPunchthroughServerDebugInterface; + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionClient.cpp b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionClient.cpp new file mode 100755 index 0000000..89e28fd --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionClient.cpp @@ -0,0 +1,170 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionClient==1 + +#include "NatTypeDetectionClient.h" +#include "RakNetSocket.h" +#include "RakNetSmartPtr.h" +#include "BitStream.h" +#include "SocketIncludes.h" +#include "RakString.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "SocketLayer.h" +#include "SocketDefines.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(NatTypeDetectionClient,NatTypeDetectionClient); + +NatTypeDetectionClient::NatTypeDetectionClient() +{ + c2=INVALID_SOCKET; +} +NatTypeDetectionClient::~NatTypeDetectionClient() +{ + if (c2!=INVALID_SOCKET) + { + closesocket__(c2); + } +} +void NatTypeDetectionClient::DetectNATType(SystemAddress _serverAddress) +{ + if (IsInProgress()) + return; + + if (c2==INVALID_SOCKET) + { + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + SystemAddress sockAddr; + SocketLayer::GetSystemAddress(sockets[0]->s, &sockAddr); + char str[64]; + sockAddr.ToString(false,str); + c2=CreateNonblockingBoundSocket(str); + c2Port=SocketLayer::GetLocalPort(c2); + } + + + serverAddress=_serverAddress; + + RakNet::BitStream bs; + bs.Write((unsigned char)ID_NAT_TYPE_DETECTION_REQUEST); + bs.Write(true); // IsRequest + bs.Write(c2Port); + rakPeerInterface->Send(&bs,MEDIUM_PRIORITY,RELIABLE,0,serverAddress,false); +} +void NatTypeDetectionClient::OnCompletion(NATTypeDetectionResult result) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)*2); + printf("Returning nat detection result to the user\n"); + p->data[0]=ID_NAT_TYPE_DETECTION_RESULT; + p->systemAddress=serverAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=rakPeerInterface->GetGuidFromSystemAddress(serverAddress); + p->data[1]=(unsigned char) result; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); + + // Symmetric and port restricted are determined by server, so no need to notify server we are done + if (result!=NAT_TYPE_PORT_RESTRICTED && result!=NAT_TYPE_SYMMETRIC) + { + // Otherwise tell the server we got this message, so it stops sending tests to us + RakNet::BitStream bs; + bs.Write((unsigned char)ID_NAT_TYPE_DETECTION_REQUEST); + bs.Write(false); // Done + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,serverAddress,false); + } + + Shutdown(); +} +bool NatTypeDetectionClient::IsInProgress(void) const +{ + return serverAddress!=UNASSIGNED_SYSTEM_ADDRESS; +} +void NatTypeDetectionClient::Update(void) +{ + if (IsInProgress()) + { + char data[ MAXIMUM_MTU_SIZE ]; + int len; + SystemAddress sender; + len=NatTypeRecvFrom(data, c2, sender); + if (len==1 && data[0]==NAT_TYPE_NONE) + { + OnCompletion(NAT_TYPE_NONE); + RakAssert(IsInProgress()==false); + } + } +} +PluginReceiveResult NatTypeDetectionClient::OnReceive(Packet *packet) +{ + if (IsInProgress()) + { + switch (packet->data[0]) + { + case ID_OUT_OF_BAND_INTERNAL: + { + if (packet->length>=3 && packet->data[1]==ID_NAT_TYPE_DETECT) + { + OnCompletion((NATTypeDetectionResult)packet->data[2]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + break; + case ID_NAT_TYPE_DETECTION_RESULT: + if (packet->wasGeneratedLocally==false) + { + OnCompletion((NATTypeDetectionResult)packet->data[1]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else + break; + case ID_NAT_TYPE_DETECTION_REQUEST: + OnTestPortRestricted(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + return RR_CONTINUE_PROCESSING; +} +void NatTypeDetectionClient::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + if (IsInProgress() && systemAddress==serverAddress) + Shutdown(); +} +void NatTypeDetectionClient::OnTestPortRestricted(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + RakNet::RakString s3p4StrAddress; + bsIn.Read(s3p4StrAddress); + unsigned short s3p4Port; + bsIn.Read(s3p4Port); + + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + SystemAddress s3p4Addr = sockets[0]->boundAddress; + s3p4Addr.FromStringExplicitPort(s3p4StrAddress.C_String(), s3p4Port); + + // Send off the RakNet socket to the specified address, message is unformatted + // Server does this twice, so don't have to unduly worry about packetloss + RakNet::BitStream bsOut; + bsOut.Write((MessageID) NAT_TYPE_PORT_RESTRICTED); + bsOut.Write(rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + SocketLayer::SendTo_PC( sockets[0]->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), s3p4Addr, __FILE__, __LINE__ ); +} +void NatTypeDetectionClient::Shutdown(void) +{ + serverAddress=UNASSIGNED_SYSTEM_ADDRESS; + if (c2!=INVALID_SOCKET) + { + closesocket__(c2); + c2=INVALID_SOCKET; + } + +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionClient.h b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionClient.h new file mode 100755 index 0000000..86cc74e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionClient.h @@ -0,0 +1,81 @@ +/// \file +/// \brief Contains the NAT-type detection code for the client +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionClient==1 + +#ifndef __NAT_TYPE_DETECTION_CLIENT_H +#define __NAT_TYPE_DETECTION_CLIENT_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_OrderedList.h" +#include "RakString.h" +#include "NatTypeDetectionCommon.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; + + /// \brief Client code for NatTypeDetection + /// \details See NatTypeDetectionServer.h for algorithm + /// To use, just connect to the server, and call DetectNAT + /// You will get back ID_NAT_TYPE_DETECTION_RESULT with one of the enumerated values of NATTypeDetectionResult found in NATTypeDetectionCommon.h + /// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html + /// \sa NatPunchthroughClient + /// \sa NatTypeDetectionServer + /// \ingroup NAT_TYPE_DETECTION_GROUP + class RAK_DLL_EXPORT NatTypeDetectionClient : public PluginInterface2 + { + public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NatTypeDetectionClient) + + // Constructor + NatTypeDetectionClient(); + + // Destructor + virtual ~NatTypeDetectionClient(); + + /// Send the message to the server to detect the nat type + /// Server must be running NatTypeDetectionServer + /// We must already be connected to the server + /// \param[in] serverAddress address of the server + void DetectNATType(SystemAddress _serverAddress); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + protected: + SOCKET c2; + unsigned short c2Port; + void Shutdown(void); + void OnCompletion(NATTypeDetectionResult result); + bool IsInProgress(void) const; + + void OnTestPortRestricted(Packet *packet); + SystemAddress serverAddress; + }; + + +} + + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionCommon.cpp b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionCommon.cpp new file mode 100755 index 0000000..ddfc5d1 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionCommon.cpp @@ -0,0 +1,116 @@ +#include "NatTypeDetectionCommon.h" +#include "SocketLayer.h" +#include "SocketIncludes.h" +#include "SocketDefines.h" + +using namespace RakNet; + +bool RakNet::CanConnect(NATTypeDetectionResult type1, NATTypeDetectionResult type2) +{ + /// If one system is NAT_TYPE_SYMMETRIC, the other must be NAT_TYPE_ADDRESS_RESTRICTED or less + /// If one system is NAT_TYPE_PORT_RESTRICTED, the other must be NAT_TYPE_PORT_RESTRICTED or less + bool connectionGraph[NAT_TYPE_COUNT][NAT_TYPE_COUNT] = + { + // None, Full Cone, Address Restricted, Port Restricted, Symmetric, Unknown, InProgress, Supports_UPNP + {true, true, true, true, true, false, false, false}, // None + {true, true, true, true, true, false, false, false}, // Full Cone + {true, true, true, true, true, false, false, false}, // Address restricted + {true, true, true, true, false, false, false, false}, // Port restricted + {true, true, true, false, false, false, false, false}, // Symmetric + {false, false, false, false, false, false, false, false}, // Unknown + {false, false, false, false, false, false, false, false}, // InProgress + {false, false, false, false, false, false, false, false} // Supports_UPNP + }; + + return connectionGraph[(int) type1][(int) type2]; +} + +const char *RakNet::NATTypeDetectionResultToString(NATTypeDetectionResult type) +{ + switch (type) + { + case NAT_TYPE_NONE: + return "None"; + case NAT_TYPE_FULL_CONE: + return "Full cone"; + case NAT_TYPE_ADDRESS_RESTRICTED: + return "Address restricted"; + case NAT_TYPE_PORT_RESTRICTED: + return "Port restricted"; + case NAT_TYPE_SYMMETRIC: + return "Symmetric"; + case NAT_TYPE_UNKNOWN: + return "Unknown"; + case NAT_TYPE_DETECTION_IN_PROGRESS: + return "In Progress"; + case NAT_TYPE_SUPPORTS_UPNP: + return "Supports UPNP"; + case NAT_TYPE_COUNT: + return "NAT_TYPE_COUNT"; + } + return "Error, unknown enum in NATTypeDetectionResult"; +} + +// None and relaxed can connect to anything +// Moderate can connect to moderate or less +// Strict can connect to relaxed or less +const char *RakNet::NATTypeDetectionResultToStringFriendly(NATTypeDetectionResult type) +{ + switch (type) + { + case NAT_TYPE_NONE: + return "Open"; + case NAT_TYPE_FULL_CONE: + return "Relaxed"; + case NAT_TYPE_ADDRESS_RESTRICTED: + return "Relaxed"; + case NAT_TYPE_PORT_RESTRICTED: + return "Moderate"; + case NAT_TYPE_SYMMETRIC: + return "Strict"; + case NAT_TYPE_UNKNOWN: + return "Unknown"; + case NAT_TYPE_DETECTION_IN_PROGRESS: + return "In Progress"; + case NAT_TYPE_SUPPORTS_UPNP: + return "Supports UPNP"; + case NAT_TYPE_COUNT: + return "NAT_TYPE_COUNT"; + } + return "Error, unknown enum in NATTypeDetectionResult"; +} + + +SOCKET RakNet::CreateNonblockingBoundSocket(const char *bindAddr ) +{ + SOCKET s = SocketLayer::CreateBoundSocket( 0, false, bindAddr, true, 0, AF_INET ); + #ifdef _WIN32 + unsigned long nonblocking = 1; + ioctlsocket__( s, FIONBIO, &nonblocking ); + + + + #else + fcntl( s, F_SETFL, O_NONBLOCK ); + #endif + return s; +} + +int RakNet::NatTypeRecvFrom(char *data, SOCKET socket, SystemAddress &sender) +{ + sockaddr_in sa; + socklen_t len2; + const int flag=0; + len2 = sizeof( sa ); + sa.sin_family = AF_INET; + sa.sin_port=0; + int len = recvfrom__( socket, data, MAXIMUM_MTU_SIZE, flag, ( sockaddr* ) & sa, ( socklen_t* ) & len2 ); + if (len>0) + { + sender.address.addr4.sin_family=AF_INET; + sender.address.addr4.sin_addr.s_addr = sa.sin_addr.s_addr; + //sender.SetPort( ntohs( sa.sin_port ) ); + sender.SetPort( ntohs( sa.sin_port ) ); + } + return len; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionCommon.h b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionCommon.h new file mode 100755 index 0000000..1fbdacf --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionCommon.h @@ -0,0 +1,56 @@ +/// \defgroup NAT_TYPE_DETECTION_GROUP NatTypeDetection +/// \brief Use a remote server with multiple IP addresses to determine what type of NAT your router is using +/// \details +/// \ingroup PLUGINS_GROUP + +#ifndef __NAT_TYPE_DETECTION_COMMON_H +#define __NAT_TYPE_DETECTION_COMMON_H + +#include "SocketIncludes.h" +#include "RakNetTypes.h" + +namespace RakNet +{ + /// All possible types of NATs (except NAT_TYPE_COUNT, which is an internal value) + enum NATTypeDetectionResult + { + /// Works with anyone + NAT_TYPE_NONE, + /// Accepts any datagrams to a port that has been previously used. Will accept the first datagram from the remote peer. + NAT_TYPE_FULL_CONE, + /// Accepts datagrams to a port as long as the datagram source IP address is a system we have already sent to. Will accept the first datagram if both systems send simultaneously. Otherwise, will accept the first datagram after we have sent one datagram. + NAT_TYPE_ADDRESS_RESTRICTED, + /// Same as address-restricted cone NAT, but we had to send to both the correct remote IP address and correct remote port. The same source address and port to a different destination uses the same mapping. + NAT_TYPE_PORT_RESTRICTED, + /// A different port is chosen for every remote destination. The same source address and port to a different destination uses a different mapping. Since the port will be different, the first external punchthrough attempt will fail. For this to work it requires port-prediction (MAX_PREDICTIVE_PORT_RANGE>1) and that the router chooses ports sequentially. + NAT_TYPE_SYMMETRIC, + /// Hasn't been determined. NATTypeDetectionClient does not use this, but other plugins might + NAT_TYPE_UNKNOWN, + /// In progress. NATTypeDetectionClient does not use this, but other plugins might + NAT_TYPE_DETECTION_IN_PROGRESS, + /// Didn't bother figuring it out, as we support UPNP, so it is equivalent to NAT_TYPE_NONE. NATTypeDetectionClient does not use this, but other plugins might + NAT_TYPE_SUPPORTS_UPNP, + /// \internal Must be last + NAT_TYPE_COUNT + }; + + /// \return Can one system with NATTypeDetectionResult \a type1 connect to \a type2 + bool RAK_DLL_EXPORT CanConnect(NATTypeDetectionResult type1, NATTypeDetectionResult type2); + + /// Return a technical string representin the enumeration + RAK_DLL_EXPORT const char * NATTypeDetectionResultToString(NATTypeDetectionResult type); + + /// Return a friendly string representing the enumeration + /// None and relaxed can connect to anything + /// Moderate can connect to moderate or less + /// Strict can connect to relaxed or less + RAK_DLL_EXPORT const char * NATTypeDetectionResultToStringFriendly(NATTypeDetectionResult type); + + /// \internal + SOCKET RAK_DLL_EXPORT CreateNonblockingBoundSocket(const char *bindAddr); + + /// \internal + int NatTypeRecvFrom(char *data, SOCKET socket, SystemAddress &sender); +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionServer.cpp b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionServer.cpp new file mode 100755 index 0000000..cf9e7be --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionServer.cpp @@ -0,0 +1,263 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionServer==1 + +#include "NatTypeDetectionServer.h" +#include "SocketLayer.h" +#include "RakNetSocket.h" +#include "RakNetSmartPtr.h" +#include "SocketIncludes.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "GetTime.h" +#include "BitStream.h" +#include "SocketDefines.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(NatTypeDetectionServer,NatTypeDetectionServer); + +NatTypeDetectionServer::NatTypeDetectionServer() +{ + s1p2=s2p3=s3p4=s4p5=INVALID_SOCKET; +} +NatTypeDetectionServer::~NatTypeDetectionServer() +{ + Shutdown(); +} +void NatTypeDetectionServer::Startup( + const char *nonRakNetIP2, + const char *nonRakNetIP3, + const char *nonRakNetIP4) +{ + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + char str[64]; + sockets[0]->boundAddress.ToString(false,str); + s1p2=CreateNonblockingBoundSocket(str); + s1p2Port=SocketLayer::GetLocalPort(s1p2); + s2p3=CreateNonblockingBoundSocket(nonRakNetIP2); + s2p3Port=SocketLayer::GetLocalPort(s2p3); + s3p4=CreateNonblockingBoundSocket(nonRakNetIP3); + s3p4Port=SocketLayer::GetLocalPort(s3p4); + s4p5=CreateNonblockingBoundSocket(nonRakNetIP4); + s4p5Port=SocketLayer::GetLocalPort(s4p5); + strcpy(s3p4Address, nonRakNetIP3); +} +void NatTypeDetectionServer::Shutdown() +{ + if (s1p2!=INVALID_SOCKET) + { + closesocket__(s1p2); + s1p2=INVALID_SOCKET; + } + if (s2p3!=INVALID_SOCKET) + { + closesocket__(s2p3); + s2p3=INVALID_SOCKET; + } + if (s3p4!=INVALID_SOCKET) + { + closesocket__(s3p4); + s3p4=INVALID_SOCKET; + } + if (s4p5!=INVALID_SOCKET) + { + closesocket__(s4p5); + s4p5=INVALID_SOCKET; + } +} +void NatTypeDetectionServer::Update(void) +{ + int i=0; + RakNet::TimeMS time = RakNet::GetTimeMS(); + RakNet::BitStream bs; + SystemAddress boundAddress; + + // Only socket that receives messages is s3p4, to see if the external address is different than that of the connection to rakPeerInterface + char data[ MAXIMUM_MTU_SIZE ]; + int len; + SystemAddress senderAddr; + len=NatTypeRecvFrom(data, s3p4, senderAddr); + // Client is asking us if this is port restricted. Only client requests of this type come in on s3p4 + while (len>0 && data[0]==NAT_TYPE_PORT_RESTRICTED) + { + RakNet::BitStream bsIn((unsigned char*) data,len,false); + RakNetGUID senderGuid; + bsIn.IgnoreBytes(sizeof(MessageID)); + bool readSuccess = bsIn.Read(senderGuid); + RakAssert(readSuccess); + if (readSuccess) + { + unsigned int i = GetDetectionAttemptIndex(senderGuid); + if (i!=(unsigned int)-1) + { + bs.Reset(); + bs.Write((unsigned char) ID_NAT_TYPE_DETECTION_RESULT); + // If different, then symmetric + if (senderAddr!=natDetectionAttempts[i].systemAddress) + { + printf("Determined client is symmetric\n"); + bs.Write((unsigned char) NAT_TYPE_SYMMETRIC); + } + else + { + // else port restricted + printf("Determined client is port restricted\n"); + bs.Write((unsigned char) NAT_TYPE_PORT_RESTRICTED); + } + + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,natDetectionAttempts[i].systemAddress,false); + + // Done + natDetectionAttempts.RemoveAtIndexFast(i); + } + else + { + // RakAssert("i==0 in Update when looking up GUID in NatTypeDetectionServer.cpp. Either a bug or a late resend" && 0); + } + } + else + { + // RakAssert("Didn't read GUID in Update in NatTypeDetectionServer.cpp. Message format error" && 0); + } + + len=NatTypeRecvFrom(data, s3p4, senderAddr); + } + + + while (i < (int) natDetectionAttempts.Size()) + { + if (time > natDetectionAttempts[i].nextStateTime) + { + natDetectionAttempts[i].detectionState=(NATDetectionState)((int)natDetectionAttempts[i].detectionState+1); + natDetectionAttempts[i].nextStateTime=time+natDetectionAttempts[i].timeBetweenAttempts; + SystemAddress saOut; + unsigned char c; + bs.Reset(); + switch (natDetectionAttempts[i].detectionState) + { + case STATE_TESTING_NONE_1: + case STATE_TESTING_NONE_2: + c = NAT_TYPE_NONE; + printf("Testing NAT_TYPE_NONE\n"); + // S4P5 sends to C2. If arrived, no NAT. Done. (Else S4P5 potentially banned, do not use again). + saOut=natDetectionAttempts[i].systemAddress; + saOut.SetPort(natDetectionAttempts[i].c2Port); + SocketLayer::SendTo_PC( s4p5, (const char*) &c, 1, saOut, __FILE__, __LINE__ ); + break; + case STATE_TESTING_FULL_CONE_1: + case STATE_TESTING_FULL_CONE_2: + printf("Testing NAT_TYPE_FULL_CONE\n"); + rakPeerInterface->WriteOutOfBandHeader(&bs); + bs.Write((unsigned char) ID_NAT_TYPE_DETECT); + bs.Write((unsigned char) NAT_TYPE_FULL_CONE); + // S2P3 sends to C1 (Different address, different port, to previously used port on client). If received, Full-cone nat. Done. (Else S2P3 potentially banned, do not use again). + saOut=natDetectionAttempts[i].systemAddress; + saOut.SetPort(natDetectionAttempts[i].systemAddress.GetPort()); + SocketLayer::SendTo_PC( s2p3, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), saOut, __FILE__, __LINE__ ); + break; + case STATE_TESTING_ADDRESS_RESTRICTED_1: + case STATE_TESTING_ADDRESS_RESTRICTED_2: + printf("Testing NAT_TYPE_ADDRESS_RESTRICTED\n"); + rakPeerInterface->WriteOutOfBandHeader(&bs); + bs.Write((unsigned char) ID_NAT_TYPE_DETECT); + bs.Write((unsigned char) NAT_TYPE_ADDRESS_RESTRICTED); + // S1P2 sends to C1 (Same address, different port, to previously used port on client). If received, address-restricted cone nat. Done. + saOut=natDetectionAttempts[i].systemAddress; + saOut.SetPort(natDetectionAttempts[i].systemAddress.GetPort()); + SocketLayer::SendTo_PC( s1p2, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), saOut, __FILE__, __LINE__ ); + break; + case STATE_TESTING_PORT_RESTRICTED_1: + case STATE_TESTING_PORT_RESTRICTED_2: + // C1 sends to S3P4. If address of C1 as seen by S3P4 is the same as the address of C1 as seen by S1P1, then port-restricted cone nat. Done + printf("Testing NAT_TYPE_PORT_RESTRICTED\n"); + bs.Write((unsigned char) ID_NAT_TYPE_DETECTION_REQUEST); + bs.Write(RakString::NonVariadic(s3p4Address)); + bs.Write(s3p4Port); + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,natDetectionAttempts[i].systemAddress,false); + break; + default: + printf("Warning, exceeded final check STATE_TESTING_PORT_RESTRICTED_2.\nExpected that client would have sent NAT_TYPE_PORT_RESTRICTED on s3p4.\nDefaulting to Symmetric\n"); + bs.Write((unsigned char) ID_NAT_TYPE_DETECTION_RESULT); + bs.Write((unsigned char) NAT_TYPE_SYMMETRIC); + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,natDetectionAttempts[i].systemAddress,false); + natDetectionAttempts.RemoveAtIndexFast(i); + i--; + break; + } + + } + i++; + } +} +PluginReceiveResult NatTypeDetectionServer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_NAT_TYPE_DETECTION_REQUEST: + OnDetectionRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void NatTypeDetectionServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + unsigned int i = GetDetectionAttemptIndex(systemAddress); + if (i==(unsigned int)-1) + return; + natDetectionAttempts.RemoveAtIndexFast(i); +} +void NatTypeDetectionServer::OnDetectionRequest(Packet *packet) +{ + unsigned int i = GetDetectionAttemptIndex(packet->systemAddress); + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(1); + bool isRequest=false; + bsIn.Read(isRequest); + if (isRequest) + { + if (i!=(unsigned int)-1) + return; // Already in progress + + NATDetectionAttempt nda; + nda.detectionState=STATE_NONE; + nda.systemAddress=packet->systemAddress; + nda.guid=packet->guid; + bsIn.Read(nda.c2Port); + nda.nextStateTime=0; + nda.timeBetweenAttempts=rakPeerInterface->GetLastPing(nda.systemAddress)*3+50; + natDetectionAttempts.Push(nda, _FILE_AND_LINE_); + } + else + { + if (i==(unsigned int)-1) + return; // Unknown + // They are done + natDetectionAttempts.RemoveAtIndexFast(i); + } + +} +unsigned int NatTypeDetectionServer::GetDetectionAttemptIndex(const SystemAddress &sa) +{ + for (unsigned int i=0; i < natDetectionAttempts.Size(); i++) + { + if (natDetectionAttempts[i].systemAddress==sa) + return i; + } + return (unsigned int) -1; +} +unsigned int NatTypeDetectionServer::GetDetectionAttemptIndex(RakNetGUID guid) +{ + for (unsigned int i=0; i < natDetectionAttempts.Size(); i++) + { + if (natDetectionAttempts[i].guid==guid) + return i; + } + return (unsigned int) -1; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionServer.h b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionServer.h new file mode 100755 index 0000000..093382d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NatTypeDetectionServer.h @@ -0,0 +1,120 @@ +/// \file +/// \brief Contains the NAT-type detection code for the server +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionServer==1 + +#ifndef __NAT_TYPE_DETECTION_SERVER_H +#define __NAT_TYPE_DETECTION_SERVER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_OrderedList.h" +#include "RakString.h" +#include "NatTypeDetectionCommon.h" + + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; + +/// \brief Server code for NatTypeDetection +/// \details +/// Sends to a remote system on certain ports and addresses to determine what type of router, if any, that client is behind +/// Requires that the server have 4 external IP addresses +///
    +///
  1. Server has 1 instance of RakNet. Server has four external ip addresses S1 to S4. Five ports are used in total P1 to P5. RakNet is bound to S1P1. Sockets are bound to S1P2, S2P3, S3P4, S4P5 +///
  2. Client with one port using RakNet (C1). Another port not using anything (C2). +///
  3. C1 connects to S1P1 for normal communication. +///
  4. S4P5 sends to C2. If arrived, no NAT. Done. (If didn't arrive, S4P5 potentially banned, do not use again). +///
  5. S2P3 sends to C1 (Different address, different port, to previously used port on client). If received, Full-cone nat. Done. (If didn't arrive, S2P3 potentially banned, do not use again). +///
  6. S1P2 sends to C1 (Same address, different port, to previously used port on client). If received, address-restricted cone nat. Done. +///
  7. Server via RakNet connection tells C1 to send to to S3P4. If address of C1 as seen by S3P4 is the same as the address of C1 as seen by S1P1 (RakNet connection), then port-restricted cone nat. Done +///
  8. Else symmetric nat. Done. +///
+/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html +/// \sa NatPunchthroughServer +/// \sa NatTypeDetectionClient +/// \ingroup NAT_TYPE_DETECTION_GROUP +class RAK_DLL_EXPORT NatTypeDetectionServer : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NatTypeDetectionServer) + + // Constructor + NatTypeDetectionServer(); + + // Destructor + virtual ~NatTypeDetectionServer(); + + /// Start the system, binding to 3 external IPs not already in useS + /// \param[in] nonRakNetIP2 First unused external IP + /// \param[in] nonRakNetIP3 Second unused external IP + /// \param[in] nonRakNetIP4 Third unused external IP + void Startup( + const char *nonRakNetIP2, + const char *nonRakNetIP3, + const char *nonRakNetIP4); + + // Releases the sockets created in Startup(); + void Shutdown(void); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + enum NATDetectionState + { + STATE_NONE, + STATE_TESTING_NONE_1, + STATE_TESTING_NONE_2, + STATE_TESTING_FULL_CONE_1, + STATE_TESTING_FULL_CONE_2, + STATE_TESTING_ADDRESS_RESTRICTED_1, + STATE_TESTING_ADDRESS_RESTRICTED_2, + STATE_TESTING_PORT_RESTRICTED_1, + STATE_TESTING_PORT_RESTRICTED_2, + STATE_DONE, + }; + + struct NATDetectionAttempt + { + SystemAddress systemAddress; + NATDetectionState detectionState; + RakNet::TimeMS nextStateTime; + RakNet::TimeMS timeBetweenAttempts; + unsigned short c2Port; + RakNetGUID guid; + }; + +protected: + void OnDetectionRequest(Packet *packet); + DataStructures::List natDetectionAttempts; + unsigned int GetDetectionAttemptIndex(const SystemAddress &sa); + unsigned int GetDetectionAttemptIndex(RakNetGUID guid); + + // s1p1 is rakpeer itself + SOCKET s1p2,s2p3,s3p4,s4p5; + unsigned short s1p2Port, s2p3Port, s3p4Port, s4p5Port; + char s3p4Address[64]; +}; +} + + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/NativeFeatureIncludes.h b/project/lib_projects/raknet/jni/RaknetSources/NativeFeatureIncludes.h new file mode 100755 index 0000000..1a8df4d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NativeFeatureIncludes.h @@ -0,0 +1,175 @@ +// If you want to change these defines, put them in NativeFeatureIncludesOverrides so your changes are not lost when updating RakNet +// The user should not edit this file +#include "NativeFeatureIncludesOverrides.h" + +#ifndef __NATIVE_FEATURE_INCLDUES_H +#define __NATIVE_FEATURE_INCLDUES_H + +// Uncomment below defines, and paste to NativeFeatureIncludesOverrides.h, to exclude plugins that you do not want to build into the static library, or DLL +// These are not all the plugins, only those that are in the core library +// Other plugins are located in DependentExtensions +// #define _RAKNET_SUPPORT_ConnectionGraph2 0 +// #define _RAKNET_SUPPORT_DirectoryDeltaTransfer 0 +// #define _RAKNET_SUPPORT_FileListTransfer 0 +// #define _RAKNET_SUPPORT_FullyConnectedMesh2 0 +// #define _RAKNET_SUPPORT_MessageFilter 0 +// #define _RAKNET_SUPPORT_NatPunchthroughClient 0 +// #define _RAKNET_SUPPORT_NatPunchthroughServer 0 +// #define _RAKNET_SUPPORT_NatTypeDetectionClient 0 +// #define _RAKNET_SUPPORT_NatTypeDetectionServer 0 +// #define _RAKNET_SUPPORT_PacketLogger 0 +// #define _RAKNET_SUPPORT_ReadyEvent 0 +// #define _RAKNET_SUPPORT_ReplicaManager3 0 +// #define _RAKNET_SUPPORT_Router2 0 +// #define _RAKNET_SUPPORT_RPC4Plugin 0 +// #define _RAKNET_SUPPORT_TeamBalancer 0 +// #define _RAKNET_SUPPORT_UDPProxyClient 0 +// #define _RAKNET_SUPPORT_UDPProxyCoordinator 0 +// #define _RAKNET_SUPPORT_UDPProxyServer 0 +// #define _RAKNET_SUPPORT_ConsoleServer 0 +// #define _RAKNET_SUPPORT_RakNetTransport 0 +// #define _RAKNET_SUPPORT_TelnetTransport 0 +// #define _RAKNET_SUPPORT_TCPInterface 0 +// #define _RAKNET_SUPPORT_LogCommandParser 0 +// #define _RAKNET_SUPPORT_RakNetCommandParser 0 +// #define _RAKNET_SUPPORT_EmailSender 0 +// #define _RAKNET_SUPPORT_HTTPConnection 0 +// #define _RAKNET_SUPPORT_PacketizedTCP 0 +// #define _RAKNET_SUPPORT_TwoWayAuthentication 0 + +// SET DEFAULTS IF UNDEFINED +#ifndef LIBCAT_SECURITY +#define LIBCAT_SECURITY 0 +#endif +#ifndef _RAKNET_SUPPORT_ConnectionGraph2 +#define _RAKNET_SUPPORT_ConnectionGraph2 1 +#endif +#ifndef _RAKNET_SUPPORT_DirectoryDeltaTransfer +#define _RAKNET_SUPPORT_DirectoryDeltaTransfer 1 +#endif +#ifndef _RAKNET_SUPPORT_FileListTransfer +#define _RAKNET_SUPPORT_FileListTransfer 1 +#endif +#ifndef _RAKNET_SUPPORT_FullyConnectedMesh +#define _RAKNET_SUPPORT_FullyConnectedMesh 1 +#endif +#ifndef _RAKNET_SUPPORT_FullyConnectedMesh2 +#define _RAKNET_SUPPORT_FullyConnectedMesh2 1 +#endif +#ifndef _RAKNET_SUPPORT_MessageFilter +#define _RAKNET_SUPPORT_MessageFilter 1 +#endif +#ifndef _RAKNET_SUPPORT_NatPunchthroughClient +#define _RAKNET_SUPPORT_NatPunchthroughClient 1 +#endif +#ifndef _RAKNET_SUPPORT_NatPunchthroughServer +#define _RAKNET_SUPPORT_NatPunchthroughServer 1 +#endif +#ifndef _RAKNET_SUPPORT_NatTypeDetectionClient +#define _RAKNET_SUPPORT_NatTypeDetectionClient 1 +#endif +#ifndef _RAKNET_SUPPORT_NatTypeDetectionServer +#define _RAKNET_SUPPORT_NatTypeDetectionServer 1 +#endif +#ifndef _RAKNET_SUPPORT_PacketLogger +#define _RAKNET_SUPPORT_PacketLogger 1 +#endif +#ifndef _RAKNET_SUPPORT_ReadyEvent +#define _RAKNET_SUPPORT_ReadyEvent 1 +#endif +#ifndef _RAKNET_SUPPORT_ReplicaManager3 +#define _RAKNET_SUPPORT_ReplicaManager3 1 +#endif +#ifndef _RAKNET_SUPPORT_Router2 +#define _RAKNET_SUPPORT_Router2 1 +#endif +#ifndef _RAKNET_SUPPORT_RPC4Plugin +#define _RAKNET_SUPPORT_RPC4Plugin 1 +#endif +#ifndef _RAKNET_SUPPORT_TeamBalancer +#define _RAKNET_SUPPORT_TeamBalancer 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPProxyClient +#define _RAKNET_SUPPORT_UDPProxyClient 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPProxyCoordinator +#define _RAKNET_SUPPORT_UDPProxyCoordinator 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPProxyServer +#define _RAKNET_SUPPORT_UDPProxyServer 1 +#endif +#ifndef _RAKNET_SUPPORT_ConsoleServer +#define _RAKNET_SUPPORT_ConsoleServer 1 +#endif +#ifndef _RAKNET_SUPPORT_RakNetTransport +#define _RAKNET_SUPPORT_RakNetTransport 1 +#endif +#ifndef _RAKNET_SUPPORT_TelnetTransport +#define _RAKNET_SUPPORT_TelnetTransport 1 +#endif +#ifndef _RAKNET_SUPPORT_TCPInterface +#define _RAKNET_SUPPORT_TCPInterface 1 +#endif +#ifndef _RAKNET_SUPPORT_LogCommandParser +#define _RAKNET_SUPPORT_LogCommandParser 1 +#endif +#ifndef _RAKNET_SUPPORT_RakNetCommandParser +#define _RAKNET_SUPPORT_RakNetCommandParser 1 +#endif +#ifndef _RAKNET_SUPPORT_EmailSender +#define _RAKNET_SUPPORT_EmailSender 1 +#endif +#ifndef _RAKNET_SUPPORT_HTTPConnection +#define _RAKNET_SUPPORT_HTTPConnection 1 +#endif +#ifndef _RAKNET_SUPPORT_PacketizedTCP +#define _RAKNET_SUPPORT_PacketizedTCP 1 +#endif +#ifndef _RAKNET_SUPPORT_TwoWayAuthentication +#define _RAKNET_SUPPORT_TwoWayAuthentication 1 +#endif +#ifndef _RAKNET_SUPPORT_CloudClient +#define _RAKNET_SUPPORT_CloudClient 1 +#endif +#ifndef _RAKNET_SUPPORT_CloudServer +#define _RAKNET_SUPPORT_CloudServer 1 +#endif +#ifndef _RAKNET_SUPPORT_DynDNS +#define _RAKNET_SUPPORT_DynDNS 1 +#endif +#ifndef _RAKNET_SUPPORT_Rackspace +#define _RAKNET_SUPPORT_Rackspace 1 +#endif +#ifndef _RAKNET_SUPPORT_FileOperations +#define _RAKNET_SUPPORT_FileOperations 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPForwarder +#define _RAKNET_SUPPORT_UDPForwarder 1 +#endif + +// Take care of dependencies + +#undef _RAKNET_SUPPORT_FileListTransfer +#define _RAKNET_SUPPORT_FileListTransfer 1 + + +#undef _RAKNET_SUPPORT_ConnectionGraph2 +#define _RAKNET_SUPPORT_ConnectionGraph2 1 + + +#undef _RAKNET_SUPPORT_PacketizedTCP +#define _RAKNET_SUPPORT_PacketizedTCP 1 + + +#undef _RAKNET_SUPPORT_TCPInterface +#define _RAKNET_SUPPORT_TCPInterface 1 + + + + + + + + + +#endif // __NATIVE_FEATURE_INCLDUES_H diff --git a/project/lib_projects/raknet/jni/RaknetSources/NativeFeatureIncludesOverrides.h b/project/lib_projects/raknet/jni/RaknetSources/NativeFeatureIncludesOverrides.h new file mode 100755 index 0000000..820f7ab --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NativeFeatureIncludesOverrides.h @@ -0,0 +1,9 @@ +// USER EDITABLE FILE +// See NativeFeatureIncludes.h + +#ifndef __NATIVE_FEATURE_INCLDUES_OVERRIDES_H +#define __NATIVE_FEATURE_INCLDUES_OVERRIDES_H + +//#define LIBCAT_SECURITY 1 + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/NativeTypes.h b/project/lib_projects/raknet/jni/RaknetSources/NativeTypes.h new file mode 100755 index 0000000..f1ee4cf --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NativeTypes.h @@ -0,0 +1,23 @@ +#ifndef __NATIVE_TYPES_H +#define __NATIVE_TYPES_H + +#if defined(__GNUC__) || defined(__GCCXML__) || defined(__SNC__) || defined(__S3E__) +#include +#elif !defined(_STDINT_H) && !defined(_SN_STDINT_H) && !defined(_SYS_STDINT_H_) && !defined(_STDINT) && !defined(_MACHTYPES_H_) && !defined(_STDINT_H_) + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned __int32 uint32_t; + typedef signed char int8_t; + typedef signed short int16_t; + typedef __int32 int32_t; + #if defined(_MSC_VER) && _MSC_VER < 1300 + typedef unsigned __int64 uint64_t; + typedef signed __int64 int64_t; + #else + typedef unsigned long long int uint64_t; + typedef signed long long int64_t; + #endif +#endif + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/NetworkIDManager.cpp b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDManager.cpp new file mode 100755 index 0000000..35f429a --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDManager.cpp @@ -0,0 +1,108 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NetworkIDManager.h" +#include "NetworkIDObject.h" +#include "RakAssert.h" +#include "GetTime.h" +#include "RakSleep.h" +#include "SuperFastHash.h" +#include "RakPeerInterface.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(NetworkIDManager,NetworkIDManager) + +NetworkIDManager::NetworkIDManager() +{ + startingOffset = RakPeerInterface::Get64BitUniqueRandomNumber(); + memset(networkIdHash,0,sizeof(networkIdHash)); +} +NetworkIDManager::~NetworkIDManager(void) +{ + +} +NetworkIDObject *NetworkIDManager::GET_BASE_OBJECT_FROM_ID(NetworkID x) +{ + unsigned int hashIndex=NetworkIDToHashIndex(x); + NetworkIDObject *nio=networkIdHash[hashIndex]; + while (nio) + { + if (nio->GetNetworkID()==x) + return nio; + nio=nio->nextInstanceForNetworkIDManager; + } + return 0; +} +NetworkID NetworkIDManager::GetNewNetworkID(void) +{ + while (GET_BASE_OBJECT_FROM_ID(++startingOffset)) + ; + return startingOffset; +} +unsigned int NetworkIDManager::NetworkIDToHashIndex(NetworkID networkId) +{ +// return SuperFastHash((const char*) &networkId.guid.g,sizeof(networkId.guid.g)) % NETWORK_ID_MANAGER_HASH_LENGTH; + return (unsigned int) (networkId % NETWORK_ID_MANAGER_HASH_LENGTH); +} +void NetworkIDManager::TrackNetworkIDObject(NetworkIDObject *networkIdObject) +{ + RakAssert(networkIdObject->GetNetworkID()!=UNASSIGNED_NETWORK_ID); + unsigned int hashIndex=NetworkIDToHashIndex(networkIdObject->GetNetworkID()); +// printf("TrackNetworkIDObject hashIndex=%i guid=%s\n",hashIndex, networkIdObject->GetNetworkID().guid.ToString()); // removeme + if (networkIdHash[hashIndex]==0) + { + networkIdHash[hashIndex]=networkIdObject; + return; + } + NetworkIDObject *nio=networkIdHash[hashIndex]; + // Duplicate insertion? + RakAssert(nio!=networkIdObject); + // Random GUID conflict? + RakAssert(nio->GetNetworkID()!=networkIdObject->GetNetworkID()); + + while (nio->nextInstanceForNetworkIDManager!=0) + { + nio=nio->nextInstanceForNetworkIDManager; + + // Duplicate insertion? + RakAssert(nio!=networkIdObject); + // Random GUID conflict? + RakAssert(nio->GetNetworkID()!=networkIdObject->GetNetworkID()); + } + + networkIdObject->nextInstanceForNetworkIDManager=0; + nio->nextInstanceForNetworkIDManager=networkIdObject; +} +void NetworkIDManager::StopTrackingNetworkIDObject(NetworkIDObject *networkIdObject) +{ + RakAssert(networkIdObject->GetNetworkID()!=UNASSIGNED_NETWORK_ID); + unsigned int hashIndex=NetworkIDToHashIndex(networkIdObject->GetNetworkID()); +// printf("hashIndex=%i\n",hashIndex); // removeme + NetworkIDObject *nio=networkIdHash[hashIndex]; + if (nio==0) + { + RakAssert("NetworkIDManager::StopTrackingNetworkIDObject didn't find object" && 0); + return; + } + if (nio==networkIdObject) + { + networkIdHash[hashIndex]=nio->nextInstanceForNetworkIDManager; + return; + } + + while (nio) + { + if (nio->nextInstanceForNetworkIDManager==networkIdObject) + { + nio->nextInstanceForNetworkIDManager=networkIdObject->nextInstanceForNetworkIDManager; + return; + } + nio=nio->nextInstanceForNetworkIDManager; + } + + RakAssert("NetworkIDManager::StopTrackingNetworkIDObject didn't find object" && 0); +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/NetworkIDManager.h b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDManager.h new file mode 100755 index 0000000..0afd057 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDManager.h @@ -0,0 +1,70 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __NETWORK_ID_MANAGER_H +#define __NETWORK_ID_MANAGER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "RakMemoryOverride.h" +#include "NetworkIDObject.h" +#include "Rand.h" + +namespace RakNet +{ + +/// Increase this value if you plan to have many persistent objects +/// This value must match on all systems +#define NETWORK_ID_MANAGER_HASH_LENGTH 1024 + +/// This class is simply used to generate a unique number for a group of instances of NetworkIDObject +/// An instance of this class is required to use the ObjectID to pointer lookup system +/// You should have one instance of this class per game instance. +/// Call SetIsNetworkIDAuthority before using any functions of this class, or of NetworkIDObject +class RAK_DLL_EXPORT NetworkIDManager +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NetworkIDManager) + + NetworkIDManager(); + virtual ~NetworkIDManager(void); + + /// Returns the parent object, or this instance if you don't use a parent. + /// Supports NetworkIDObject anywhere in the inheritance hierarchy + /// \pre You must first call SetNetworkIDManager before using this function + template + returnType GET_OBJECT_FROM_ID(NetworkID x) { + NetworkIDObject *nio = GET_BASE_OBJECT_FROM_ID(x); + if (nio==0) + return 0; + if (nio->GetParent()) + return (returnType) nio->GetParent(); + return (returnType) nio; + } + + /// \internal + NetworkIDObject *GET_BASE_OBJECT_FROM_ID(NetworkID x); + + /// \internal + void TrackNetworkIDObject(NetworkIDObject *networkIdObject); + void StopTrackingNetworkIDObject(NetworkIDObject *networkIdObject); + +protected: + friend class NetworkIDObject; + + NetworkIDObject *networkIdHash[NETWORK_ID_MANAGER_HASH_LENGTH]; + unsigned int NetworkIDToHashIndex(NetworkID networkId); + uint64_t startingOffset; + /// \internal + NetworkID GetNewNetworkID(void); + +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/NetworkIDObject.cpp b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDObject.cpp new file mode 100755 index 0000000..89b4209 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDObject.cpp @@ -0,0 +1,62 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "NetworkIDObject.h" +#include "NetworkIDManager.h" +#include "RakAssert.h" +#include "RakAlloca.h" + +using namespace RakNet; + +NetworkIDObject::NetworkIDObject() +{ + networkID=UNASSIGNED_NETWORK_ID; + parent=0; + networkIDManager=0; + nextInstanceForNetworkIDManager=0; +} +NetworkIDObject::~NetworkIDObject() +{ + if (networkID!=UNASSIGNED_NETWORK_ID) + networkIDManager->StopTrackingNetworkIDObject(this); +} +void NetworkIDObject::SetNetworkIDManager( NetworkIDManager *manager) +{ + networkIDManager=manager; +} +NetworkIDManager * NetworkIDObject::GetNetworkIDManager( void ) +{ + return networkIDManager; +} +NetworkID NetworkIDObject::GetNetworkID( void ) +{ + if (networkID==UNASSIGNED_NETWORK_ID) + { + RakAssert(networkIDManager); + networkID = networkIDManager->GetNewNetworkID(); + networkIDManager->TrackNetworkIDObject(this); + } + return networkID; +} +void NetworkIDObject::SetNetworkID( NetworkID id ) +{ + if (id==networkID) + return; + + if (networkID!=UNASSIGNED_NETWORK_ID) + networkIDManager->StopTrackingNetworkIDObject(this); + networkID = id; + networkIDManager->TrackNetworkIDObject(this); +} +void NetworkIDObject::SetParent( void *_parent ) +{ + parent=_parent; +} +void* NetworkIDObject::GetParent( void ) const +{ + return parent; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/NetworkIDObject.h b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDObject.h new file mode 100755 index 0000000..b53b702 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/NetworkIDObject.h @@ -0,0 +1,81 @@ +/// \file +/// \brief A class you can derive from to make it easier to represent every networked object with an integer. This way you can refer to objects over the network. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#if !defined(__NETWORK_ID_GENERATOR) +#define __NETWORK_ID_GENERATOR + +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class NetworkIDManager; + +typedef uint32_t NetworkIDType; + +/// \brief Unique shared ids for each object instance +/// \details A class you can derive from to make it easier to represent every networked object with an integer. This way you can refer to objects over the network. +/// One system should return true for IsNetworkIDAuthority() and the rest should return false. When an object needs to be created, have the the one system create the object. +/// Then have that system send a message to all other systems, and include the value returned from GetNetworkID() in that packet. All other systems should then create the same +/// class of object, and call SetNetworkID() on that class with the NetworkID in the packet. +/// \see the manual for more information on this. +class RAK_DLL_EXPORT NetworkIDObject +{ +public: + // Constructor. NetworkIDs, if IsNetworkIDAuthority() is true, are created here. + NetworkIDObject(); + + // Destructor. Used NetworkIDs, if any, are freed here. + virtual ~NetworkIDObject(); + + /// Sets the manager class from which to request unique network IDs + /// Unlike previous versions, the NetworkIDObject relies on a manager class to provide IDs, rather than using statics, + /// So you can have more than one set of IDs on the same system. + virtual void SetNetworkIDManager( NetworkIDManager *manager); + + /// Returns what was passed to SetNetworkIDManager + virtual NetworkIDManager * GetNetworkIDManager( void ); + + /// Returns the NetworkID that you can use to refer to this object over the network. + /// \pre You must first call SetNetworkIDManager before using this function + /// \retval UNASSIGNED_NETWORK_ID UNASSIGNED_NETWORK_ID is returned IsNetworkIDAuthority() is false and SetNetworkID() was not previously called. This is also returned if you call this function in the constructor. + /// \retval 0-65534 Any other value is a valid NetworkID. NetworkIDs start at 0 and go to 65534, wrapping at that point. + virtual NetworkID GetNetworkID( void ); + + /// Sets the NetworkID for this instance. Usually this is called by the clients and determined from the servers. However, if you save multiplayer games you would likely use + /// This on load as well. + virtual void SetNetworkID( NetworkID id ); + + /// Your class does not have to derive from NetworkIDObject, although that is the easiest way to implement this. + /// If you want this to be a member object of another class, rather than inherit, then call SetParent() with a pointer to the parent class instance. + /// GET_OBJECT_FROM_ID will then return the parent rather than this instance. + virtual void SetParent( void *_parent ); + + /// Return what was passed to SetParent + /// \return The value passed to SetParent, or 0 if it was never called. + virtual void* GetParent( void ) const; + +protected: + /// The network ID of this object + NetworkID networkID; + + NetworkIDManager *networkIDManager; + + /// The parent set by SetParent() + void *parent; + + /// \internal, used by NetworkIDManager + friend class NetworkIDManager; + NetworkIDObject *nextInstanceForNetworkIDManager; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/PS3Includes.h b/project/lib_projects/raknet/jni/RaknetSources/PS3Includes.h new file mode 100755 index 0000000..5d0e340 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PS3Includes.h @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketConsoleLogger.cpp b/project/lib_projects/raknet/jni/RaknetSources/PacketConsoleLogger.cpp new file mode 100755 index 0000000..4d69f99 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketConsoleLogger.cpp @@ -0,0 +1,26 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_LogCommandParser==1 && _RAKNET_SUPPORT_PacketLogger==1 +#include "PacketConsoleLogger.h" +#include "LogCommandParser.h" +#include + +using namespace RakNet; + +PacketConsoleLogger::PacketConsoleLogger() +{ + logCommandParser=0; +} + +void PacketConsoleLogger::SetLogCommandParser(LogCommandParser *lcp) +{ + logCommandParser=lcp; + if (logCommandParser) + logCommandParser->AddChannel("PacketConsoleLogger"); +} +void PacketConsoleLogger::WriteLog(const char *str) +{ + if (logCommandParser) + logCommandParser->WriteLog("PacketConsoleLogger", str); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketConsoleLogger.h b/project/lib_projects/raknet/jni/RaknetSources/PacketConsoleLogger.h new file mode 100755 index 0000000..28aaef9 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketConsoleLogger.h @@ -0,0 +1,38 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to the log command parser, which can be accessed through Telnet +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_LogCommandParser==1 && _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_CONSOLE_LOGGER_H_ +#define __PACKET_CONSOLE_LOGGER_H_ + +#include "PacketLogger.h" + +namespace RakNet +{ +/// Forward declarations +class LogCommandParser; + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Packetlogger that logs to a remote command console +class RAK_DLL_EXPORT PacketConsoleLogger : public PacketLogger +{ +public: + PacketConsoleLogger(); + // Writes to the command parser used for logging, which is accessed through a secondary communication layer (such as Telnet or RakNet) - See ConsoleServer.h + virtual void SetLogCommandParser(LogCommandParser *lcp); + virtual void WriteLog(const char *str); +protected: + LogCommandParser *logCommandParser; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketFileLogger.cpp b/project/lib_projects/raknet/jni/RaknetSources/PacketFileLogger.cpp new file mode 100755 index 0000000..18631c2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketFileLogger.cpp @@ -0,0 +1,45 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 +#include "PacketFileLogger.h" +#include "GetTime.h" + +using namespace RakNet; + +PacketFileLogger::PacketFileLogger() +{ + packetLogFile=0; +} +PacketFileLogger::~PacketFileLogger() +{ + if (packetLogFile) + { + fflush(packetLogFile); + fclose(packetLogFile); + } +} +void PacketFileLogger::StartLog(const char *filenamePrefix) +{ + // Open file for writing + char filename[256]; + if (filenamePrefix) + sprintf(filename, "%s_%i.csv", filenamePrefix, (int) RakNet::GetTimeMS()); + else + sprintf(filename, "PacketLog_%i.csv", (int) RakNet::GetTimeMS()); + packetLogFile = fopen(filename, "wt"); + LogHeader(); + if (packetLogFile) + { + fflush(packetLogFile); + } +} + +void PacketFileLogger::WriteLog(const char *str) +{ + if (packetLogFile) + { + fprintf(packetLogFile, "%s\n", str); + fflush(packetLogFile); + } +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketFileLogger.h b/project/lib_projects/raknet/jni/RaknetSources/PacketFileLogger.h new file mode 100755 index 0000000..48f5ce2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketFileLogger.h @@ -0,0 +1,37 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to a file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_FILE_LOGGER_H_ +#define __PACKET_FILE_LOGGER_H_ + +#include "PacketLogger.h" +#include + +namespace RakNet +{ + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Packetlogger that outputs to a file +class RAK_DLL_EXPORT PacketFileLogger : public PacketLogger +{ +public: + PacketFileLogger(); + virtual ~PacketFileLogger(); + void StartLog(const char *filenamePrefix); + virtual void WriteLog(const char *str); +protected: + FILE *packetLogFile; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketLogger.cpp b/project/lib_projects/raknet/jni/RaknetSources/PacketLogger.cpp new file mode 100755 index 0000000..35e8c68 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketLogger.cpp @@ -0,0 +1,456 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#include "PacketLogger.h" +#include "BitStream.h" +#include "DS_List.h" +#include "InternalPacket.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "StringCompressor.h" +#include "GetTime.h" +#include +#include +#include +#include "Itoa.h" +#include +#include "SocketIncludes.h" +#include "gettimeofday.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(PacketLogger,PacketLogger); + +PacketLogger::PacketLogger() +{ + printId=true; + printAcks=true; + prefix[0]=0; + suffix[0]=0; + logDirectMessages=true; +} +PacketLogger::~PacketLogger() +{ +} +void PacketLogger::FormatLine( +char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame, unsigned char id +, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, +unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex) +{ + char numericID[16]; + const char* idToPrint = NULL; + if(printId) + { + if (splitPacketCount>0 && splitPacketCount!=(unsigned int)-1) + idToPrint="(SPLIT PACKET)"; + else + idToPrint = IDTOString(id); + } + // If printId is false, idToPrint will be NULL, as it will + // in the case of an unrecognized id. Testing printId for false + // would just be redundant. + if(idToPrint == NULL) + { + sprintf(numericID, "%5u", id); + idToPrint = numericID; + } + + FormatLine(into, dir, type, reliableMessageNumber, frame, idToPrint, bitLen, time, local, remote,splitPacketId,splitPacketIndex,splitPacketCount, orderingIndex); +} + +void PacketLogger::FormatLine( +char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame, const char* idToPrint +, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, +unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex) +{ + char str1[64], str2[62]; + local.ToString(true, str1); + remote.ToString(true, str2); + char localtime[128]; + GetLocalTime(localtime); + char str3[64]; + if (reliableMessageNumber==(unsigned int)-1) + { + str3[0]='N'; + str3[1]='/'; + str3[2]='A'; + str3[3]=0; + } + else + { + sprintf(str3,"%5u",reliableMessageNumber); + } + + sprintf(into, "%s,%s%s,%s,%s,%5u,%s,%u,%llu,%s,%s,%i,%i,%i,%i,%s," + , localtime + , prefix + , dir + , type + , str3 + , frame + , idToPrint + , bitLen + , time + , str1 + , str2 + , splitPacketId + , splitPacketIndex + , splitPacketCount + , orderingIndex + , suffix + ); +} +void PacketLogger::OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + if (logDirectMessages==false) + return; + + char str[256]; + FormatLine(str, "Snd", "Raw", 0, 0, data[0], bitsUsed, RakNet::GetTimeMS(), rakPeerInterface->GetExternalID(remoteSystemAddress), remoteSystemAddress, (unsigned int)-1,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1); + AddToLog(str); +} + +void PacketLogger::LogHeader(void) +{ + // Last 5 are splitpacket id, split packet index, split packet count, ordering index, suffix + AddToLog("Clock,S|R,Typ,Reliable#,Frm #,PktID,BitLn,Time ,Local IP:Port ,RemoteIP:Port,SPID,SPIN,SPCO,OI,Suffix,Miscellaneous\n"); +} +void PacketLogger::OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + if (logDirectMessages==false) + return; + + char str[256]; + FormatLine(str, "Rcv", "Raw", 0, 0, data[0], bitsUsed, RakNet::GetTime(), rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS), remoteSystemAddress,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1); + AddToLog(str); +} +void PacketLogger::OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + char str[1024]; + FormatLine(str, "RcvErr", errorMessage, 0, 0, "", bitsUsed, RakNet::GetTime(), rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS), remoteSystemAddress,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1); + AddToLog(str); +} +void PacketLogger::OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time) +{ + char str[256]; + char str1[64], str2[62]; + SystemAddress localSystemAddress = rakPeerInterface->GetExternalID(remoteSystemAddress); + localSystemAddress.ToString(true, str1); + remoteSystemAddress.ToString(true, str2); + char localtime[128]; + GetLocalTime(localtime); + + sprintf(str, "%s,Rcv,Ack,%i,,,,%llu,%s,%s,,,,,," + , localtime + , messageNumber + , (unsigned long long) time + , str1 + , str2 + ); + AddToLog(str); +} +void PacketLogger::OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + char str[256]; + char str1[64], str2[62]; + SystemAddress localSystemAddress = rakPeerInterface->GetExternalID(remoteSystemAddress); + localSystemAddress.ToString(true, str1); + remoteSystemAddress.ToString(true, str2); + RakNet::TimeMS time = RakNet::GetTimeMS(); + char localtime[128]; + GetLocalTime(localtime); + + sprintf(str, "%s,Lcl,PBP,,,%s,%i,%llu,%s,%s,,,,,," + , localtime + , BaseIDTOString(data[0]) + , bitsUsed + , (unsigned long long) time + , str1 + , str2 + ); + AddToLog(str); +} +void PacketLogger::OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time, int isSend) +{ + char str[256]; + const char *sendTypes[] = + { + "Rcv", + "Snd", + "Err1", + "Err2", + "Err3", + "Err4", + "Err5", + "Err6", + }; + const char *sendType = sendTypes[isSend]; + SystemAddress localSystemAddress = rakPeerInterface->GetExternalID(remoteSystemAddress); + + unsigned int reliableMessageNumber; + if (internalPacket->reliability==UNRELIABLE || internalPacket->reliability==UNRELIABLE_SEQUENCED || internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT) + reliableMessageNumber=(unsigned int)-1; + else + reliableMessageNumber=internalPacket->reliableMessageNumber; + + if (internalPacket->data[0]==ID_TIMESTAMP) + { + FormatLine(str, sendType, "Tms", reliableMessageNumber, frameNumber, internalPacket->data[1+sizeof(RakNet::Time)], internalPacket->dataBitLength, (unsigned long long)time, localSystemAddress, remoteSystemAddress, internalPacket->splitPacketId, internalPacket->splitPacketIndex, internalPacket->splitPacketCount, internalPacket->orderingIndex); + } + else + { + FormatLine(str, sendType, "Nrm", reliableMessageNumber, frameNumber, internalPacket->data[0], internalPacket->dataBitLength, (unsigned long long)time, localSystemAddress, remoteSystemAddress, internalPacket->splitPacketId, internalPacket->splitPacketIndex, internalPacket->splitPacketCount, internalPacket->orderingIndex); + } + + AddToLog(str); +} +void PacketLogger::AddToLog(const char *str) +{ + WriteLog(str); +} +void PacketLogger::WriteLog(const char *str) +{ + RAKNET_DEBUG_PRINTF("%s\n", str); +} +void PacketLogger::WriteMiscellaneous(const char *type, const char *msg) +{ + char str[1024]; + char str1[64]; + SystemAddress localSystemAddress = rakPeerInterface->GetInternalID(); + localSystemAddress.ToString(true, str1); + RakNet::TimeMS time = RakNet::GetTimeMS(); + char localtime[128]; + GetLocalTime(localtime); + + sprintf(str, "%s,Lcl,%s,,,,,%llu,%s,,,,,,,%s" + , localtime + , type + , (unsigned long long) time + , str1 + , msg + ); + + AddToLog(msg); +} +void PacketLogger::SetPrintID(bool print) +{ + printId=print; +} +void PacketLogger::SetPrintAcks(bool print) +{ + printAcks=print; +} +const char* PacketLogger::BaseIDTOString(unsigned char Id) +{ + if (Id >= ID_USER_PACKET_ENUM) + return 0; + + const char *IDTable[((int)ID_USER_PACKET_ENUM)+1]= + { + "ID_CONNECTED_PING", + "ID_UNCONNECTED_PING", + "ID_UNCONNECTED_PING_OPEN_CONNECTIONS", + "ID_CONNECTED_PONG", + "ID_DETECT_LOST_CONNECTIONS", + "ID_OPEN_CONNECTION_REQUEST_1", + "ID_OPEN_CONNECTION_REPLY_1", + "ID_OPEN_CONNECTION_REQUEST_2", + "ID_OPEN_CONNECTION_REPLY_2", + "ID_CONNECTION_REQUEST", + "ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY", + "ID_OUR_SYSTEM_REQUIRES_SECURITY", + "ID_PUBLIC_KEY_MISMATCH", + "ID_OUT_OF_BAND_INTERNAL", + "ID_SND_RECEIPT_ACKED", + "ID_SND_RECEIPT_LOSS", + "ID_CONNECTION_REQUEST_ACCEPTED", + "ID_CONNECTION_ATTEMPT_FAILED", + "ID_ALREADY_CONNECTED", + "ID_NEW_INCOMING_CONNECTION", + "ID_NO_FREE_INCOMING_CONNECTIONS", + "ID_DISCONNECTION_NOTIFICATION", + "ID_CONNECTION_LOST", + "ID_CONNECTION_BANNED", + "ID_INVALID_PASSWORD", + "ID_INCOMPATIBLE_PROTOCOL_VERSION", + "ID_IP_RECENTLY_CONNECTED", + "ID_TIMESTAMP", + "ID_UNCONNECTED_PONG", + "ID_ADVERTISE_SYSTEM", + "ID_DOWNLOAD_PROGRESS", + "ID_REMOTE_DISCONNECTION_NOTIFICATION", + "ID_REMOTE_CONNECTION_LOST", + "ID_REMOTE_NEW_INCOMING_CONNECTION", + "ID_FILE_LIST_TRANSFER_HEADER", + "ID_FILE_LIST_TRANSFER_FILE", + "ID_FILE_LIST_REFERENCE_PUSH_ACK", + "ID_DDT_DOWNLOAD_REQUEST", + "ID_TRANSPORT_STRING", + "ID_REPLICA_MANAGER_CONSTRUCTION", + "ID_REPLICA_MANAGER_SCOPE_CHANGE", + "ID_REPLICA_MANAGER_SERIALIZE", + "ID_REPLICA_MANAGER_DOWNLOAD_STARTED", + "ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE", + "ID_RAKVOICE_OPEN_CHANNEL_REQUEST", + "ID_RAKVOICE_OPEN_CHANNEL_REPLY", + "ID_RAKVOICE_CLOSE_CHANNEL", + "ID_RAKVOICE_DATA", + "ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE", + "ID_AUTOPATCHER_CREATION_LIST", + "ID_AUTOPATCHER_DELETION_LIST", + "ID_AUTOPATCHER_GET_PATCH", + "ID_AUTOPATCHER_PATCH_LIST", + "ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR", + "ID_AUTOPATCHER_FINISHED_INTERNAL", + "ID_AUTOPATCHER_FINISHED", + "ID_AUTOPATCHER_RESTART_APPLICATION", + "ID_NAT_PUNCHTHROUGH_REQUEST", + "ID_NAT_GROUP_PUNCHTHROUGH_REQUEST", + "ID_NAT_GROUP_PUNCHTHROUGH_REPLY", + "ID_NAT_CONNECT_AT_TIME", + "ID_NAT_GET_MOST_RECENT_PORT", + "ID_NAT_CLIENT_READY", + "ID_NAT_GROUP_PUNCHTHROUGH_FAILURE_NOTIFICATION", + "ID_NAT_TARGET_NOT_CONNECTED", + "ID_NAT_TARGET_UNRESPONSIVE", + "ID_NAT_CONNECTION_TO_TARGET_LOST", + "ID_NAT_ALREADY_IN_PROGRESS", + "ID_NAT_PUNCHTHROUGH_FAILED", + "ID_NAT_PUNCHTHROUGH_SUCCEEDED", + "ID_NAT_GROUP_PUNCH_FAILED", + "ID_NAT_GROUP_PUNCH_SUCCEEDED", + "ID_READY_EVENT_SET", + "ID_READY_EVENT_UNSET", + "ID_READY_EVENT_ALL_SET", + "ID_READY_EVENT_QUERY", + "ID_LOBBY_GENERAL", + "ID_RPC_REMOTE_ERROR", + "ID_RPC_PLUGIN", + "ID_FILE_LIST_REFERENCE_PUSH", + "ID_READY_EVENT_FORCE_ALL_SET", + "ID_ROOMS_EXECUTE_FUNC", + "ID_ROOMS_LOGON_STATUS", + "ID_ROOMS_HANDLE_CHANGE", + "ID_LOBBY2_SEND_MESSAGE", + "ID_LOBBY2_SERVER_ERROR", + "ID_FCM2_NEW_HOST", + "ID_FCM2_REQUEST_FCMGUID", + "ID_FCM2_RESPOND_CONNECTION_COUNT", + "ID_FCM2_INFORM_FCMGUID", + "ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT", + "ID_UDP_PROXY_GENERAL", + "ID_SQLite3_EXEC", + "ID_SQLite3_UNKNOWN_DB", + "ID_SQLLITE_LOGGER", + "ID_NAT_TYPE_DETECTION_REQUEST", + "ID_NAT_TYPE_DETECTION_RESULT", + "ID_ROUTER_2_INTERNAL", + "ID_ROUTER_2_FORWARDING_NO_PATH", + "ID_ROUTER_2_FORWARDING_ESTABLISHED", + "ID_ROUTER_2_REROUTED", + "ID_TEAM_BALANCER_INTERNAL", + "ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING", + "ID_TEAM_BALANCER_TEAMS_LOCKED", + "ID_TEAM_BALANCER_TEAM_ASSIGNED", + "ID_LIGHTSPEED_INTEGRATION", + "ID_XBOX_LOBBY", + "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS", + "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS", + "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE", + "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE", + "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT", + "ID_TWO_WAY_AUTHENTICATION_NEGOTIATION", + "ID_CLOUD_POST_REQUEST", + "ID_CLOUD_RELEASE_REQUEST", + "ID_CLOUD_GET_REQUEST", + "ID_CLOUD_GET_RESPONSE", + "ID_CLOUD_UNSUBSCRIBE_REQUEST", + "ID_CLOUD_SERVER_TO_SERVER_COMMAND", + "ID_CLOUD_SUBSCRIPTION_NOTIFICATION", + "ID_RESERVED_1", + "ID_RESERVED_2", + "ID_RESERVED_3", + "ID_RESERVED_4", + "ID_RESERVED_5", + "ID_RESERVED_6", + "ID_RESERVED_7", + "ID_RESERVED_8", + "ID_RESERVED_9", + "ID_USER_PACKET_ENUM", + }; + + return (char*)IDTable[Id]; +} +const char* PacketLogger::UserIDTOString(unsigned char Id) +{ + // Users should override this + static char str[256]; + Itoa(Id, str, 10); + return (const char*) str; +} +const char* PacketLogger::IDTOString(unsigned char Id) +{ + const char *out; + out=BaseIDTOString(Id); + if (out) + return out; + return UserIDTOString(Id); +} +void PacketLogger::SetPrefix(const char *_prefix) +{ + strncpy(prefix, _prefix, 255); + prefix[255]=0; +} +void PacketLogger::SetSuffix(const char *_suffix) +{ + strncpy(suffix, _suffix, 255); + suffix[255]=0; +} +void PacketLogger::GetLocalTime(char buffer[128]) +{ +#if defined(_WIN32) && !defined(__GNUC__) && !defined(__GCCXML__) + time_t rawtime; + struct timeval tv; + // If you get an arror about an incomplete type, just delete this file + struct timezone tz; + gettimeofday(&tv, &tz); + // time ( &rawtime ); + rawtime=tv.tv_sec; + + struct tm * timeinfo; + timeinfo = localtime ( &rawtime ); + strftime (buffer,128,"%x %X",timeinfo); + char buff[32]; + sprintf(buff, ".%i", tv.tv_usec); + strcat(buffer,buff); + + // Commented version puts the time first + /* + struct tm * timeinfo; + timeinfo = localtime ( &rawtime ); + strftime (buffer,128,"%X",timeinfo); + char buff[32]; + sprintf(buff, ".%i ", tv.tv_usec); + strcat(buffer,buff); + char buff2[32]; + strftime (buff2,32,"%x",timeinfo); + strcat(buffer,buff2); + */ +#else + buffer[0]=0; +#endif +} +void PacketLogger::SetLogDirectMessages(bool send) +{ + logDirectMessages=send; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketLogger.h b/project/lib_projects/raknet/jni/RaknetSources/PacketLogger.h new file mode 100755 index 0000000..740620f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketLogger.h @@ -0,0 +1,101 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to the local console screen. See derived functions for other outputs +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_LOGGER_H +#define __PACKET_LOGGER_H + +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \defgroup PACKETLOGGER_GROUP PacketLogger +/// \brief Print out incoming messages to a target destination +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Writes incoming and outgoing messages to the screen. +/// This will write all incoming and outgoing messages to the console window, or to a file if you override it and give it this functionality. +/// \ingroup PACKETLOGGER_GROUP +class RAK_DLL_EXPORT PacketLogger : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(PacketLogger) + + PacketLogger(); + virtual ~PacketLogger(); + + // Translate the supplied parameters into an output line - overloaded version that takes a MessageIdentifier + // and translates it into a string (numeric or textual representation based on printId); this calls the + // second version which takes a const char* argument for the messageIdentifier + virtual void FormatLine(char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame + , unsigned char messageIdentifier, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, + unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex); + virtual void FormatLine(char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame + , const char* idToPrint, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, + unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex); + + /// Events on low level sends and receives. These functions may be called from different threads at the same time. + virtual void OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + virtual void OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + virtual void OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + virtual void OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time, int isSend); + virtual void OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time); + virtual void OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + + /// Logs out a header for all the data + virtual void LogHeader(void); + + /// Override this to log strings to wherever. Log should be threadsafe + virtual void WriteLog(const char *str); + + // Write informational messages + virtual void WriteMiscellaneous(const char *type, const char *msg); + + + // Set to true to print ID_* instead of numbers + virtual void SetPrintID(bool print); + // Print or hide acks (clears up the screen not to print them but is worse for debugging) + virtual void SetPrintAcks(bool print); + + /// Prepend this string to output logs. + virtual void SetPrefix(const char *_prefix); + + /// Append this string to output logs. (newline is useful here) + virtual void SetSuffix(const char *_suffix); + static const char* BaseIDTOString(unsigned char Id); + + /// Log the direct sends and receives or not. Default true + void SetLogDirectMessages(bool send); +protected: + + virtual bool UsesReliabilityLayer(void) const {return true;} + const char* IDTOString(unsigned char Id); + virtual void AddToLog(const char *str); + // Users should override this + virtual const char* UserIDTOString(unsigned char Id); + void GetLocalTime(char buffer[128]); + bool logDirectMessages; + + bool printId, printAcks; + char prefix[256]; + char suffix[256]; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketOutputWindowLogger.cpp b/project/lib_projects/raknet/jni/RaknetSources/PacketOutputWindowLogger.cpp new file mode 100755 index 0000000..b5ffb5f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketOutputWindowLogger.cpp @@ -0,0 +1,39 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#if defined(UNICODE) +#include "RakWString.h" +#endif + +#include "PacketOutputWindowLogger.h" +#include "RakString.h" +#if defined(_WIN32) && !defined(X360__) +#include "WindowsIncludes.h" +#endif + +using namespace RakNet; + +PacketOutputWindowLogger::PacketOutputWindowLogger() +{ +} +PacketOutputWindowLogger::~PacketOutputWindowLogger() +{ +} +void PacketOutputWindowLogger::WriteLog(const char *str) +{ +#if defined(_WIN32) && !defined(X360__) + + #if defined(UNICODE) + RakNet::RakWString str2 = str; + str2+="\n"; + OutputDebugString(str2.C_String()); + #else + RakNet::RakString str2 = str; + str2+="\n"; + OutputDebugString(str2.C_String()); + #endif + +#endif +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketOutputWindowLogger.h b/project/lib_projects/raknet/jni/RaknetSources/PacketOutputWindowLogger.h new file mode 100755 index 0000000..f2655a0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketOutputWindowLogger.h @@ -0,0 +1,34 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to a file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_OUTPUT_WINDOW_LOGGER_H_ +#define __PACKET_OUTPUT_WINDOW_LOGGER_H_ + +#include "PacketLogger.h" + +namespace RakNet +{ + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Packetlogger that outputs to the output window in the debugger. Windows only. +class RAK_DLL_EXPORT PacketOutputWindowLogger : public PacketLogger +{ +public: + PacketOutputWindowLogger(); + virtual ~PacketOutputWindowLogger(); + virtual void WriteLog(const char *str); +protected: +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketPool.h b/project/lib_projects/raknet/jni/RaknetSources/PacketPool.h new file mode 100755 index 0000000..b534cac --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketPool.h @@ -0,0 +1 @@ +// REMOVEME \ No newline at end of file diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketPriority.h b/project/lib_projects/raknet/jni/RaknetSources/PacketPriority.h new file mode 100755 index 0000000..83bcd57 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketPriority.h @@ -0,0 +1,79 @@ +/// \file +/// \brief This file contains enumerations for packet priority and reliability enumerations. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __PACKET_PRIORITY_H +#define __PACKET_PRIORITY_H + +/// These enumerations are used to describe when packets are delivered. +enum PacketPriority +{ + /// The highest possible priority. These message trigger sends immediately, and are generally not buffered or aggregated into a single datagram. + IMMEDIATE_PRIORITY, + + /// For every 2 IMMEDIATE_PRIORITY messages, 1 HIGH_PRIORITY will be sent. + /// Messages at this priority and lower are buffered to be sent in groups at 10 millisecond intervals to reduce UDP overhead and better measure congestion control. + HIGH_PRIORITY, + + /// For every 2 HIGH_PRIORITY messages, 1 MEDIUM_PRIORITY will be sent. + /// Messages at this priority and lower are buffered to be sent in groups at 10 millisecond intervals to reduce UDP overhead and better measure congestion control. + MEDIUM_PRIORITY, + + /// For every 2 MEDIUM_PRIORITY messages, 1 LOW_PRIORITY will be sent. + /// Messages at this priority and lower are buffered to be sent in groups at 10 millisecond intervals to reduce UDP overhead and better measure congestion control. + LOW_PRIORITY, + + /// \internal + NUMBER_OF_PRIORITIES +}; + +/// These enumerations are used to describe how packets are delivered. +/// \note Note to self: I write this with 3 bits in the stream. If I add more remember to change that +/// \note In ReliabilityLayer::WriteToBitStreamFromInternalPacket I assume there are 5 major types +/// \note Do not reorder, I check on >= UNRELIABLE_WITH_ACK_RECEIPT +enum PacketReliability +{ + /// Same as regular UDP, except that it will also discard duplicate datagrams. RakNet adds (6 to 17) + 21 bits of overhead, 16 of which is used to detect duplicate packets and 6 to 17 of which is used for message length. + UNRELIABLE, + + /// Regular UDP with a sequence counter. Out of order messages will be discarded. + /// Sequenced and ordered messages sent on the same channel will arrive in the order sent. + UNRELIABLE_SEQUENCED, + + /// The message is sent reliably, but not necessarily in any order. Same overhead as UNRELIABLE. + RELIABLE, + + /// This message is reliable and will arrive in the order you sent it. Messages will be delayed while waiting for out of order messages. Same overhead as UNRELIABLE_SEQUENCED. + /// Sequenced and ordered messages sent on the same channel will arrive in the order sent. + RELIABLE_ORDERED, + + /// This message is reliable and will arrive in the sequence you sent it. Out or order messages will be dropped. Same overhead as UNRELIABLE_SEQUENCED. + /// Sequenced and ordered messages sent on the same channel will arrive in the order sent. + RELIABLE_SEQUENCED, + + /// Same as UNRELIABLE, however the user will get either ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS based on the result of sending this message when calling RakPeerInterface::Receive(). Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. + UNRELIABLE_WITH_ACK_RECEIPT, + + /// Same as UNRELIABLE_SEQUENCED, however the user will get either ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS based on the result of sending this message when calling RakPeerInterface::Receive(). Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. + /// 05/04/10 You can't have sequenced and ack receipts, because you don't know if the other system discarded the message, meaning you don't know if the message was processed + // UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT, + + /// Same as RELIABLE. The user will also get ID_SND_RECEIPT_ACKED after the message is delivered when calling RakPeerInterface::Receive(). ID_SND_RECEIPT_ACKED is returned when the message arrives, not necessarily the order when it was sent. Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. This does not return ID_SND_RECEIPT_LOSS. + RELIABLE_WITH_ACK_RECEIPT, + + /// Same as RELIABLE_ORDERED_ACK_RECEIPT. The user will also get ID_SND_RECEIPT_ACKED after the message is delivered when calling RakPeerInterface::Receive(). ID_SND_RECEIPT_ACKED is returned when the message arrives, not necessarily the order when it was sent. Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. This does not return ID_SND_RECEIPT_LOSS. + RELIABLE_ORDERED_WITH_ACK_RECEIPT, + + /// Same as RELIABLE_SEQUENCED. The user will also get ID_SND_RECEIPT_ACKED after the message is delivered when calling RakPeerInterface::Receive(). Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. + /// 05/04/10 You can't have sequenced and ack receipts, because you don't know if the other system discarded the message, meaning you don't know if the message was processed + // RELIABLE_SEQUENCED_WITH_ACK_RECEIPT, + + /// \internal + NUMBER_OF_RELIABILITIES +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketizedTCP.cpp b/project/lib_projects/raknet/jni/RaknetSources/PacketizedTCP.cpp new file mode 100755 index 0000000..bffab02 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketizedTCP.cpp @@ -0,0 +1,408 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "PacketizedTCP.h" +#include "NativeTypes.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakAlloca.h" + +using namespace RakNet; + +typedef uint32_t PTCPHeader; + +STATIC_FACTORY_DEFINITIONS(PacketizedTCP,PacketizedTCP); + +PacketizedTCP::PacketizedTCP() +{ + +} +PacketizedTCP::~PacketizedTCP() +{ + ClearAllConnections(); +} + +bool PacketizedTCP::Start(unsigned short port, unsigned short maxIncomingConnections, int threadPriority, unsigned short socketFamily) +{ + bool success = TCPInterface::Start(port, maxIncomingConnections,0,threadPriority, socketFamily); + if (success) + { + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnRakPeerStartup(); + } + return success; +} + +void PacketizedTCP::Stop(void) +{ + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnRakPeerShutdown(); + for (i=0; i < waitingPackets.Size(); i++) + DeallocatePacket(waitingPackets[i]); + TCPInterface::Stop(); + ClearAllConnections(); +} + +void PacketizedTCP::Send( const char *data, unsigned length, const SystemAddress &systemAddress, bool broadcast ) +{ + PTCPHeader dataLength; + dataLength=length; +#ifndef __BITSTREAM_NATIVE_END + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytes((unsigned char*) &length,(unsigned char*) &dataLength,sizeof(dataLength)); +#else + dataLength=length; +#endif + + unsigned int lengthsArray[2]; + const char *dataArray[2]; + dataArray[0]=(char*) &dataLength; + dataArray[1]=data; + lengthsArray[0]=sizeof(dataLength); + lengthsArray[1]=length; + TCPInterface::SendList(dataArray,lengthsArray,2,systemAddress,broadcast); +} +bool PacketizedTCP::SendList( const char **data, const int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ) +{ + if (isStarted==false) + return false; + if (data==0) + return false; + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS && broadcast==false) + return false; + PTCPHeader totalLengthOfUserData=0; + int i; + for (i=0; i < numParameters; i++) + { + if (lengths[i]>0) + totalLengthOfUserData+=lengths[i]; + } + if (totalLengthOfUserData==0) + return false; + + PTCPHeader dataLength; +#ifndef __BITSTREAM_NATIVE_END + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytes((unsigned char*) &totalLengthOfUserData,(unsigned char*) &dataLength,sizeof(dataLength)); +#else + dataLength=totalLengthOfUserData; +#endif + + + unsigned int lengthsArray[512]; + const char *dataArray[512]; + dataArray[0]=(char*) &dataLength; + lengthsArray[0]=sizeof(dataLength); + for (int i=0; i < 512 && i < numParameters; i++) + { + dataArray[i+1]=data[i]; + lengthsArray[i+1]=lengths[i]; + } + return TCPInterface::SendList(dataArray,lengthsArray,numParameters+1,systemAddress,broadcast); +} +void PacketizedTCP::PushNotificationsToQueues(void) +{ + SystemAddress sa; + sa = TCPInterface::HasNewIncomingConnection(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _newIncomingConnections.Push(sa, _FILE_AND_LINE_ ); + AddToConnectionList(sa); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnNewConnection(sa, UNASSIGNED_RAKNET_GUID, true); + } + + sa = TCPInterface::HasFailedConnectionAttempt(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _failedConnectionAttempts.Push(sa, _FILE_AND_LINE_ ); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + { + Packet p; + p.systemAddress=sa; + p.data=0; + p.length=0; + p.bitSize=0; + messageHandlerList[i]->OnFailedConnectionAttempt(&p, FCAR_CONNECTION_ATTEMPT_FAILED); + } + } + + sa = TCPInterface::HasLostConnection(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _lostConnections.Push(sa, _FILE_AND_LINE_ ); + RemoveFromConnectionList(sa); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnClosedConnection(sa, UNASSIGNED_RAKNET_GUID, LCR_DISCONNECTION_NOTIFICATION); + } + + sa = TCPInterface::HasCompletedConnectionAttempt(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _completedConnectionAttempts.Push(sa, _FILE_AND_LINE_ ); + AddToConnectionList(sa); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnNewConnection(sa, UNASSIGNED_RAKNET_GUID, true); + } +} +Packet* PacketizedTCP::Receive( void ) +{ + PushNotificationsToQueues(); + + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->Update(); + + Packet *outgoingPacket=ReturnOutgoingPacket(); + if (outgoingPacket) + return outgoingPacket; + + Packet *incomingPacket; + incomingPacket = TCPInterface::Receive(); + unsigned int index; + + while (incomingPacket) + { + if (connections.Has(incomingPacket->systemAddress)) + index = connections.GetIndexAtKey(incomingPacket->systemAddress); + else + index=(unsigned int) -1; + if ((unsigned int)index==(unsigned int)-1) + { + DeallocatePacket(incomingPacket); + incomingPacket = TCPInterface::Receive(); + continue; + } + + + if (incomingPacket->deleteData==true) + { + // Came from network + SystemAddress systemAddressFromPacket; + if (index < connections.Size()) + { + DataStructures::ByteQueue *bq = connections[index]; + // Buffer data + bq->WriteBytes((const char*) incomingPacket->data,incomingPacket->length, _FILE_AND_LINE_); + systemAddressFromPacket=incomingPacket->systemAddress; + PTCPHeader dataLength; + + // Peek the header to see if a full message is waiting + bq->ReadBytes((char*) &dataLength,sizeof(PTCPHeader),true); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &dataLength,sizeof(dataLength)); + // Header indicates packet length. If enough data is available, read out and return one packet + if (bq->GetBytesWritten()>=dataLength+sizeof(PTCPHeader)) + { + do + { + bq->IncrementReadOffset(sizeof(PTCPHeader)); + outgoingPacket = RakNet::OP_NEW(_FILE_AND_LINE_); + outgoingPacket->length=dataLength; + outgoingPacket->bitSize=BYTES_TO_BITS(dataLength); + outgoingPacket->guid=UNASSIGNED_RAKNET_GUID; + outgoingPacket->systemAddress=systemAddressFromPacket; + outgoingPacket->deleteData=false; // Did not come from the network + outgoingPacket->data=(unsigned char*) rakMalloc_Ex(dataLength, _FILE_AND_LINE_); + if (outgoingPacket->data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + RakNet::OP_DELETE(outgoingPacket,_FILE_AND_LINE_); + return 0; + } + bq->ReadBytes((char*) outgoingPacket->data,dataLength,false); + + waitingPackets.Push(outgoingPacket, _FILE_AND_LINE_ ); + + // Peek the header to see if a full message is waiting + if (bq->ReadBytes((char*) &dataLength,sizeof(PTCPHeader),true)) + { + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &dataLength,sizeof(dataLength)); + } + else + break; + } while (bq->GetBytesWritten()>=dataLength+sizeof(PTCPHeader)); + } + else + { + + unsigned int oldWritten = bq->GetBytesWritten()-incomingPacket->length; + unsigned int newWritten = bq->GetBytesWritten(); + + // Return ID_DOWNLOAD_PROGRESS + if (newWritten/65536!=oldWritten/65536) + { + outgoingPacket = RakNet::OP_NEW(_FILE_AND_LINE_); + outgoingPacket->length=sizeof(MessageID) + + sizeof(unsigned int)*2 + + sizeof(unsigned int) + + 65536; + outgoingPacket->bitSize=BYTES_TO_BITS(incomingPacket->length); + outgoingPacket->guid=UNASSIGNED_RAKNET_GUID; + outgoingPacket->systemAddress=incomingPacket->systemAddress; + outgoingPacket->deleteData=false; + outgoingPacket->data=(unsigned char*) rakMalloc_Ex(outgoingPacket->length, _FILE_AND_LINE_); + if (outgoingPacket->data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + RakNet::OP_DELETE(outgoingPacket,_FILE_AND_LINE_); + return 0; + } + + outgoingPacket->data[0]=(MessageID)ID_DOWNLOAD_PROGRESS; + unsigned int totalParts=dataLength/65536; + unsigned int partIndex=newWritten/65536; + unsigned int oneChunkSize=65536; + memcpy(outgoingPacket->data+sizeof(MessageID), &partIndex, sizeof(unsigned int)); + memcpy(outgoingPacket->data+sizeof(MessageID)+sizeof(unsigned int)*1, &totalParts, sizeof(unsigned int)); + memcpy(outgoingPacket->data+sizeof(MessageID)+sizeof(unsigned int)*2, &oneChunkSize, sizeof(unsigned int)); + bq->IncrementReadOffset(sizeof(PTCPHeader)); + bq->ReadBytes((char*) outgoingPacket->data+sizeof(MessageID)+sizeof(unsigned int)*3,oneChunkSize,true); + bq->DecrementReadOffset(sizeof(PTCPHeader)); + + waitingPackets.Push(outgoingPacket, _FILE_AND_LINE_ ); + } + } + + } + + DeallocatePacket(incomingPacket); + incomingPacket=0; + } + else + waitingPackets.Push(incomingPacket, _FILE_AND_LINE_ ); + + incomingPacket = TCPInterface::Receive(); + } + + return ReturnOutgoingPacket(); +} +Packet *PacketizedTCP::ReturnOutgoingPacket(void) +{ + Packet *outgoingPacket=0; + unsigned int i; + while (outgoingPacket==0 && waitingPackets.IsEmpty()==false) + { + outgoingPacket=waitingPackets.Pop(); + PluginReceiveResult pluginResult; + for (i=0; i < messageHandlerList.Size(); i++) + { + pluginResult=messageHandlerList[i]->OnReceive(outgoingPacket); + if (pluginResult==RR_STOP_PROCESSING_AND_DEALLOCATE) + { + DeallocatePacket( outgoingPacket ); + outgoingPacket=0; // Will do the loop again and get another packet + break; // break out of the enclosing for + } + else if (pluginResult==RR_STOP_PROCESSING) + { + outgoingPacket=0; + break; + } + } + } + + return outgoingPacket; +} + +void PacketizedTCP::AttachPlugin( PluginInterface2 *plugin ) +{ + if (messageHandlerList.GetIndexOf(plugin)==MAX_UNSIGNED_LONG) + { + messageHandlerList.Insert(plugin, _FILE_AND_LINE_); + plugin->SetPacketizedTCP(this); + plugin->OnAttach(); + } +} +void PacketizedTCP::DetachPlugin( PluginInterface2 *plugin ) +{ + if (plugin==0) + return; + + unsigned int index; + index = messageHandlerList.GetIndexOf(plugin); + if (index!=MAX_UNSIGNED_LONG) + { + messageHandlerList[index]->OnDetach(); + // Unordered list so delete from end for speed + messageHandlerList[index]=messageHandlerList[messageHandlerList.Size()-1]; + messageHandlerList.RemoveFromEnd(); + plugin->SetPacketizedTCP(0); + } +} +void PacketizedTCP::CloseConnection( SystemAddress systemAddress ) +{ + RemoveFromConnectionList(systemAddress); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnClosedConnection(systemAddress, UNASSIGNED_RAKNET_GUID, LCR_CLOSED_BY_USER); + TCPInterface::CloseConnection(systemAddress); +} +void PacketizedTCP::RemoveFromConnectionList(const SystemAddress &sa) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + if (connections.Has(sa)) + { + unsigned int index = connections.GetIndexAtKey(sa); + if (index!=(unsigned int)-1) + { + RakNet::OP_DELETE(connections[index],_FILE_AND_LINE_); + connections.RemoveAtIndex(index); + } + } +} +void PacketizedTCP::AddToConnectionList(const SystemAddress &sa) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + connections.SetNew(sa, RakNet::OP_NEW(_FILE_AND_LINE_)); +} +void PacketizedTCP::ClearAllConnections(void) +{ + unsigned int i; + for (i=0; i < connections.Size(); i++) + RakNet::OP_DELETE(connections[i],_FILE_AND_LINE_); + connections.Clear(); +} +SystemAddress PacketizedTCP::HasCompletedConnectionAttempt(void) +{ + PushNotificationsToQueues(); + + if (_completedConnectionAttempts.IsEmpty()==false) + return _completedConnectionAttempts.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress PacketizedTCP::HasFailedConnectionAttempt(void) +{ + PushNotificationsToQueues(); + + if (_failedConnectionAttempts.IsEmpty()==false) + return _failedConnectionAttempts.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress PacketizedTCP::HasNewIncomingConnection(void) +{ + PushNotificationsToQueues(); + + if (_newIncomingConnections.IsEmpty()==false) + return _newIncomingConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress PacketizedTCP::HasLostConnection(void) +{ + PushNotificationsToQueues(); + + if (_lostConnections.IsEmpty()==false) + return _lostConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PacketizedTCP.h b/project/lib_projects/raknet/jni/RaknetSources/PacketizedTCP.h new file mode 100755 index 0000000..9a08fe3 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PacketizedTCP.h @@ -0,0 +1,93 @@ +/// \file +/// \brief A simple TCP based server allowing sends and receives. Can be connected by any TCP client, including telnet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __PACKETIZED_TCP +#define __PACKETIZED_TCP + +#include "TCPInterface.h" +#include "DS_ByteQueue.h" +#include "PluginInterface2.h" +#include "DS_Map.h" + +namespace RakNet +{ + +class RAK_DLL_EXPORT PacketizedTCP : public TCPInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(PacketizedTCP) + + PacketizedTCP(); + virtual ~PacketizedTCP(); + + /// Starts the TCP server on the indicated port + /// \param[in] port Which port to listen on. + /// \param[in] maxIncomingConnections Max incoming connections we will accept + /// \param[in] maxConnections Max total connections, which should be >= maxIncomingConnections + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \param[in] socketFamily IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + bool Start(unsigned short port, unsigned short maxIncomingConnections, int threadPriority=-99999, unsigned short socketFamily=AF_INET); + + /// Stops the TCP server + void Stop(void); + + /// Sends a byte stream + void Send( const char *data, unsigned length, const SystemAddress &systemAddress, bool broadcast ); + + // Sends a concatenated list of byte streams + bool SendList( const char **data, const int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ); + + /// Returns data received + Packet* Receive( void ); + + /// Disconnects a player/address + void CloseConnection( SystemAddress systemAddress ); + + /// Has a previous call to connect succeeded? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasCompletedConnectionAttempt(void); + + /// Has a previous call to connect failed? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasFailedConnectionAttempt(void); + + /// Queued events of new incoming connections + SystemAddress HasNewIncomingConnection(void); + + /// Queued events of lost connections + SystemAddress HasLostConnection(void); + + // Only currently tested with FileListTransfer! + void AttachPlugin( PluginInterface2 *plugin ); + void DetachPlugin( PluginInterface2 *plugin ); + +protected: + void ClearAllConnections(void); + void RemoveFromConnectionList(const SystemAddress &sa); + void AddToConnectionList(const SystemAddress &sa); + void PushNotificationsToQueues(void); + Packet *ReturnOutgoingPacket(void); + + // Plugins + DataStructures::List messageHandlerList; + // A single TCP recieve may generate multiple split packets. They are stored in the waitingPackets list until Receive is called + DataStructures::Queue waitingPackets; + DataStructures::Map connections; + + // Mirrors single producer / consumer, but processes them in Receive() before returning to user + DataStructures::Queue _newIncomingConnections, _lostConnections, _failedConnectionAttempts, _completedConnectionAttempts; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/PluginInterface2.cpp b/project/lib_projects/raknet/jni/RaknetSources/PluginInterface2.cpp new file mode 100755 index 0000000..706962d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PluginInterface2.cpp @@ -0,0 +1,89 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "PluginInterface2.h" +#include "PacketizedTCP.h" +#include "RakPeerInterface.h" +#include "BitStream.h" + +using namespace RakNet; + +PluginInterface2::PluginInterface2() +{ + rakPeerInterface=0; +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + packetizedTCP=0; +#endif +} +PluginInterface2::~PluginInterface2() +{ + +} +void PluginInterface2::SendUnified( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ) +{ + if (rakPeerInterface) + rakPeerInterface->Send(bitStream,priority,reliability,orderingChannel,systemIdentifier,broadcast); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->Send((const char*) bitStream->GetData(), bitStream->GetNumberOfBytesUsed(), systemIdentifier.systemAddress, broadcast); +#endif +} +Packet *PluginInterface2::AllocatePacketUnified(unsigned dataSize) +{ + if (rakPeerInterface) + return rakPeerInterface->AllocatePacket(dataSize); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + return packetizedTCP->AllocatePacket(dataSize); +#else + return 0; +#endif + +} +void PluginInterface2::PushBackPacketUnified(Packet *packet, bool pushAtHead) +{ + if (rakPeerInterface) + rakPeerInterface->PushBackPacket(packet,pushAtHead); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->PushBackPacket(packet,pushAtHead); +#endif +} +void PluginInterface2::DeallocPacketUnified(Packet *packet) +{ + if (rakPeerInterface) + rakPeerInterface->DeallocatePacket(packet); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->DeallocatePacket(packet); +#endif +} +bool PluginInterface2::SendListUnified( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ) +{ + if (rakPeerInterface) + { + return rakPeerInterface->SendList(data,lengths,numParameters,priority,reliability,orderingChannel,systemIdentifier,broadcast)!=0; + } +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + { + return packetizedTCP->SendList(data,lengths,numParameters,systemIdentifier.systemAddress,broadcast ); + } +#else + return false; +#endif +} +void PluginInterface2::SetRakPeerInterface( RakPeerInterface *ptr ) +{ + rakPeerInterface=ptr; +} +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 +void PluginInterface2::SetPacketizedTCP( PacketizedTCP *ptr ) +{ + packetizedTCP=ptr; +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/PluginInterface2.h b/project/lib_projects/raknet/jni/RaknetSources/PluginInterface2.h new file mode 100755 index 0000000..549885d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/PluginInterface2.h @@ -0,0 +1,200 @@ +/// \file +/// \brief \b RakNet's plugin functionality system, version 2. You can derive from this to create your own plugins. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __PLUGIN_INTERFACE_2_H +#define __PLUGIN_INTERFACE_2_H + +#include "NativeFeatureIncludes.h" +#include "RakNetTypes.h" +#include "Export.h" +#include "PacketPriority.h" + +namespace RakNet { + +/// Forward declarations +class RakPeerInterface; +class PacketizedTCP; +struct Packet; +struct InternalPacket; + +/// \defgroup PLUGIN_INTERFACE_GROUP PluginInterface2 + +/// \defgroup PLUGINS_GROUP Plugins +/// \ingroup PLUGIN_INTERFACE_GROUP + +/// For each message that arrives on an instance of RakPeer, the plugins get an opportunity to process them first. This enumeration represents what to do with the message +/// \ingroup PLUGIN_INTERFACE_GROUP +enum PluginReceiveResult +{ + /// The plugin used this message and it shouldn't be given to the user. + RR_STOP_PROCESSING_AND_DEALLOCATE=0, + + /// This message will be processed by other plugins, and at last by the user. + RR_CONTINUE_PROCESSING, + + /// The plugin is going to hold on to this message. Do not deallocate it but do not pass it to other plugins either. + RR_STOP_PROCESSING, +}; + +/// Reasons why a connection was lost +/// \ingroup PLUGIN_INTERFACE_GROUP +enum PI2_LostConnectionReason +{ + /// Called RakPeer::CloseConnection() + LCR_CLOSED_BY_USER, + + /// Got ID_DISCONNECTION_NOTIFICATION + LCR_DISCONNECTION_NOTIFICATION, + + /// GOT ID_CONNECTION_LOST + LCR_CONNECTION_LOST +}; + +/// Returns why a connection attempt failed +/// \ingroup PLUGIN_INTERFACE_GROUP +enum PI2_FailedConnectionAttemptReason +{ + FCAR_CONNECTION_ATTEMPT_FAILED, + FCAR_ALREADY_CONNECTED, + FCAR_NO_FREE_INCOMING_CONNECTIONS, + FCAR_SECURITY_PUBLIC_KEY_MISMATCH, + FCAR_CONNECTION_BANNED, + FCAR_INVALID_PASSWORD, + FCAR_INCOMPATIBLE_PROTOCOL, + FCAR_IP_RECENTLY_CONNECTED, + FCAR_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY, + FCAR_OUR_SYSTEM_REQUIRES_SECURITY, + FCAR_PUBLIC_KEY_MISMATCH, +}; + +/// RakNet's plugin system. Each plugin processes the following events: +/// -Connection attempts +/// -The result of connection attempts +/// -Each incoming message +/// -Updates over time, when RakPeer::Receive() is called +/// +/// \ingroup PLUGIN_INTERFACE_GROUP +class RAK_DLL_EXPORT PluginInterface2 +{ +public: + PluginInterface2(); + virtual ~PluginInterface2(); + + /// Called when the interface is attached + virtual void OnAttach(void) {} + + /// Called when the interface is detached + virtual void OnDetach(void) {} + + /// Update is called every time a packet is checked for . + virtual void Update(void) {} + + /// OnReceive is called for every packet. + /// \param[in] packet the packet that is being returned to the user + /// \return True to allow the game and other plugins to get this message, false to absorb it + virtual PluginReceiveResult OnReceive(Packet *packet) {(void) packet; return RR_CONTINUE_PROCESSING;} + + /// Called when RakPeer is initialized + virtual void OnRakPeerStartup(void) {} + + /// Called when RakPeer is shutdown + virtual void OnRakPeerShutdown(void) {} + + /// Called when a connection is dropped because the user called RakPeer::CloseConnection() for a particular system + /// \param[in] systemAddress The system whose connection was closed + /// \param[in] rakNetGuid The guid of the specified system + /// \param[in] lostConnectionReason How the connection was closed: manually, connection lost, or notification of disconnection + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ){(void) systemAddress; (void) rakNetGUID; (void) lostConnectionReason;} + + /// Called when we got a new connection + /// \param[in] systemAddress Address of the new connection + /// \param[in] rakNetGuid The guid of the specified system + /// \param[in] isIncoming If true, this is ID_NEW_INCOMING_CONNECTION, or the equivalent + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) {(void) systemAddress; (void) rakNetGUID; (void) isIncoming;} + + /// Called when a connection attempt fails + /// \param[in] packet Packet to be returned to the user + /// \param[in] failedConnectionReason Why the connection failed + virtual void OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason) {(void) packet; (void) failedConnectionAttemptReason;} + + /// Queried when attached to RakPeer + /// Return true to call OnDirectSocketSend(), OnDirectSocketReceive(), OnReliabilityLayerPacketError(), OnInternalPacket(), and OnAck() + /// If true, then you cannot call RakPeer::AttachPlugin() or RakPeer::DetachPlugin() for this plugin, while RakPeer is active + virtual bool UsesReliabilityLayer(void) const {return false;} + + /// Called on a send to the socket, per datagram, that does not go through the reliability layer + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] data The data being sent + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress Which system this message is being sent to + virtual void OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;} + + /// Called on a receive from the socket, per datagram, that does not go through the reliability layer + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] data The data being sent + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress Which system this message is being sent to + virtual void OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;} + + /// Called when the reliability layer rejects a send or receive + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress Which system this message is being sent to + virtual void OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) errorMessage; (void) bitsUsed; (void) remoteSystemAddress;} + + /// Called on a send or receive of a message within the reliability layer + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] internalPacket The user message, along with all send data. + /// \param[in] frameNumber The number of frames sent or received so far for this player depending on \a isSend . Indicates the frame of this user message. + /// \param[in] remoteSystemAddress The player we sent or got this packet from + /// \param[in] time The current time as returned by RakNet::GetTimeMS() + /// \param[in] isSend Is this callback representing a send event or receive event? + virtual void OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time, int isSend) {(void) internalPacket; (void) frameNumber; (void) remoteSystemAddress; (void) time; (void) isSend;} + + /// Called when we get an ack for a message we reliably sent + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] messageNumber The numerical identifier for which message this is + /// \param[in] remoteSystemAddress The player we sent or got this packet from + /// \param[in] time The current time as returned by RakNet::GetTimeMS() + virtual void OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time) {(void) messageNumber; (void) remoteSystemAddress; (void) time;} + + /// System called RakPeerInterface::PushBackPacket + /// \param[in] data The data being sent + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress The player we sent or got this packet from + virtual void OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;} + + RakPeerInterface *GetRakPeerInterface(void) const {return rakPeerInterface;} + + /// \internal + void SetRakPeerInterface( RakPeerInterface *ptr ); + +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + /// \internal + void SetPacketizedTCP( PacketizedTCP *ptr ); +#endif +protected: + // Send through either rakPeerInterface or packetizedTCP, whichever is available + void SendUnified( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ); + bool SendListUnified( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ); + + Packet *AllocatePacketUnified(unsigned dataSize); + void PushBackPacketUnified(Packet *packet, bool pushAtHead); + void DeallocPacketUnified(Packet *packet); + + // Filled automatically in when attached + RakPeerInterface *rakPeerInterface; +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + PacketizedTCP *packetizedTCP; +#endif +}; + +} // namespace RakNet + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/RPC4Plugin.cpp b/project/lib_projects/raknet/jni/RaknetSources/RPC4Plugin.cpp new file mode 100755 index 0000000..7583d28 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RPC4Plugin.cpp @@ -0,0 +1,594 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RPC4Plugin==1 + +#include "RPC4Plugin.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "PacketizedTCP.h" +#include "RakSleep.h" +#include "RakNetDefines.h" +#include "DS_Queue.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(RPC4,RPC4); + +struct GlobalRegistration +{ + void ( *registerFunctionPointer ) ( RakNet::BitStream *userData, Packet *packet ); + void ( *registerBlockingFunctionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet ); + char functionName[RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH]; + MessageID messageId; + int callPriority; +}; +static GlobalRegistration globalRegistrationBuffer[RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS]; +static unsigned int globalRegistrationIndex=0; + +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=functionPointer; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].callPriority=0xFFFFFFFF; + globalRegistrationIndex++; +} +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=functionPointer; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=0; + RakAssert(callPriority!=0xFFFFFFFF); + globalRegistrationBuffer[globalRegistrationIndex].callPriority=callPriority; + globalRegistrationIndex++; +} +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=functionPointer; + globalRegistrationIndex++; +} +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, MessageID messageId) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].messageId=messageId; + globalRegistrationIndex++; +} + +enum RPC4Identifiers +{ + ID_RPC4_CALL, + ID_RPC4_RETURN, + ID_RPC4_SIGNAL, +}; +int RPC4::LocalSlotObjectComp( const LocalSlotObject &key, const LocalSlotObject &data ) +{ + if (key.callPriority>data.callPriority) + return -1; + if (key.callPriority==data.callPriority) + { + if (key.registrationCountmessageId) + return -1; + if (key > data->messageId) + return 1; + return 0; +} + +RPC4::RPC4() +{ + gotBlockingReturnValue=false; + nextSlotRegistrationCount=0; + interruptSignal=false; +} +RPC4::~RPC4() +{ + unsigned int i; + for (i=0; i < localCallbacks.Size(); i++) + { + RakNet::OP_DELETE(localCallbacks[i],_FILE_AND_LINE_); + } + + DataStructures::List keyList; + DataStructures::List outputList; + localSlots.GetAsList(outputList,keyList,_FILE_AND_LINE_); + unsigned int j; + for (j=0; j < outputList.Size(); j++) + { + RakNet::OP_DELETE(outputList[j],_FILE_AND_LINE_); + } + localSlots.Clear(_FILE_AND_LINE_); +} +bool RPC4::RegisterFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )) +{ + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(uniqueID); + if (skhi.IsInvalid()==false) + return false; + + registeredNonblockingFunctions.Push(uniqueID,functionPointer,_FILE_AND_LINE_); + return true; +} +void RPC4::RegisterSlot(const char *sharedIdentifier, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority) +{ + LocalSlotObject lso(nextSlotRegistrationCount++, callPriority, functionPointer); + DataStructures::HashIndex idx = GetLocalSlotIndex(sharedIdentifier); + LocalSlot *localSlot; + if (idx.IsInvalid()) + { + localSlot = RakNet::OP_NEW(_FILE_AND_LINE_); + localSlots.Push(sharedIdentifier, localSlot,_FILE_AND_LINE_); + } + else + { + localSlot=localSlots.ItemAtIndex(idx); + } + localSlot->slotObjects.Insert(lso,lso,true,_FILE_AND_LINE_); +} +bool RPC4::RegisterBlockingFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )) +{ + DataStructures::HashIndex skhi = registeredBlockingFunctions.GetIndexOf(uniqueID); + if (skhi.IsInvalid()==false) + return false; + + registeredBlockingFunctions.Push(uniqueID,functionPointer,_FILE_AND_LINE_); + return true; +} +void RPC4::RegisterLocalCallback(const char* uniqueID, MessageID messageId) +{ + bool objectExists; + unsigned int index; + LocalCallback *lc; + RakNet::RakString str; + str=uniqueID; + index = localCallbacks.GetIndexFromKey(messageId,&objectExists); + if (objectExists) + { + lc = localCallbacks[index]; + index = lc->functions.GetIndexFromKey(str,&objectExists); + if (objectExists==false) + lc->functions.InsertAtIndex(str,index,_FILE_AND_LINE_); + } + else + { + lc = RakNet::OP_NEW(_FILE_AND_LINE_); + lc->messageId=messageId; + lc->functions.Insert(str,str,false,_FILE_AND_LINE_); + localCallbacks.InsertAtIndex(lc,index,_FILE_AND_LINE_); + } +} +bool RPC4::UnregisterFunction(const char* uniqueID) +{ + void ( *f ) ( RakNet::BitStream *, Packet * ); + return registeredNonblockingFunctions.Pop(f,uniqueID,_FILE_AND_LINE_); +} +bool RPC4::UnregisterBlockingFunction(const char* uniqueID) +{ + void ( *f ) ( RakNet::BitStream *, RakNet::BitStream *,Packet * ); + return registeredBlockingFunctions.Pop(f,uniqueID,_FILE_AND_LINE_); +} +bool RPC4::UnregisterLocalCallback(const char* uniqueID, MessageID messageId) +{ + bool objectExists; + unsigned int index, index2; + LocalCallback *lc; + RakNet::RakString str; + str=uniqueID; + index = localCallbacks.GetIndexFromKey(messageId,&objectExists); + if (objectExists) + { + lc = localCallbacks[index]; + index2 = lc->functions.GetIndexFromKey(str,&objectExists); + if (objectExists) + { + lc->functions.RemoveAtIndex(index2); + if (lc->functions.Size()==0) + { + RakNet::OP_DELETE(lc,_FILE_AND_LINE_); + localCallbacks.RemoveAtIndex(index); + return true; + } + } + } + return false; +} +bool RPC4::UnregisterSlot(const char* sharedIdentifier) +{ + DataStructures::HashIndex hi = localSlots.GetIndexOf(sharedIdentifier); + if (hi.IsInvalid()==false) + { + LocalSlot *ls = localSlots.ItemAtIndex(hi); + RakNet::OP_DELETE(ls, _FILE_AND_LINE_); + localSlots.RemoveAtIndex(hi, _FILE_AND_LINE_); + return true; + } + + return false; +} +void RPC4::CallLoopback( const char* uniqueID, RakNet::BitStream * bitStream ) +{ + Packet *p=0; + + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(uniqueID); + + if (skhi.IsInvalid()==true) + { + if (rakPeerInterface) + p=AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)+(unsigned int) strlen(uniqueID)+1); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p=packetizedTCP->AllocatePacket(sizeof(MessageID)+sizeof(unsigned char)+(unsigned int) strlen(uniqueID)+1); +#endif + + if (rakPeerInterface) + p->guid=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p->guid=UNASSIGNED_RAKNET_GUID; +#endif + + p->systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->data[0]=ID_RPC_REMOTE_ERROR; + p->data[1]=RPC_ERROR_FUNCTION_NOT_REGISTERED; + strcpy((char*) p->data+2, uniqueID); + + PushBackPacketUnified(p,false); + + return; + } + + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_CALL); + out.WriteCompressed(uniqueID); + out.Write(false); // nonblocking + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + if (rakPeerInterface) + p=AllocatePacketUnified(out.GetNumberOfBytesUsed()); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p=packetizedTCP->AllocatePacket(out.GetNumberOfBytesUsed()); +#endif + + if (rakPeerInterface) + p->guid=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p->guid=UNASSIGNED_RAKNET_GUID; +#endif + p->systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + p->systemAddress.systemIndex=(SystemIndex)-1; + memcpy(p->data,out.GetData(),out.GetNumberOfBytesUsed()); + PushBackPacketUnified(p,false); + return; +} +void RPC4::Call( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ) +{ + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_CALL); + out.WriteCompressed(uniqueID); + out.Write(false); // Nonblocking + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + SendUnified(&out,priority,reliability,orderingChannel,systemIdentifier,broadcast); +} +bool RPC4::CallBlocking( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, RakNet::BitStream *returnData ) +{ + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_CALL); + out.WriteCompressed(uniqueID); + out.Write(true); // Blocking + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + RakAssert(returnData); + RakAssert(rakPeerInterface); + ConnectionState cs; + cs = rakPeerInterface->GetConnectionState(systemIdentifier); + if (cs!=IS_CONNECTED) + return false; + + SendUnified(&out,priority,reliability,orderingChannel,systemIdentifier,false); + + returnData->Reset(); + blockingReturnValue.Reset(); + gotBlockingReturnValue=false; + Packet *packet; + DataStructures::Queue packetQueue; + while (gotBlockingReturnValue==false) + { + // TODO - block, filter until gotBlockingReturnValue==true or ID_CONNECTION_LOST or ID_DISCONNECTION_NOTIFICXATION or ID_RPC_REMOTE_ERROR/RPC_ERROR_FUNCTION_NOT_REGISTERED + RakSleep(30); + + packet=rakPeerInterface->Receive(); + + if (packet) + { + if ( + (packet->data[0]==ID_CONNECTION_LOST || packet->data[0]==ID_DISCONNECTION_NOTIFICATION) && + ((systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID && packet->guid==systemIdentifier.rakNetGuid) || + (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS && packet->systemAddress==systemIdentifier.systemAddress)) + ) + { + // Push back to head in reverse order + rakPeerInterface->PushBackPacket(packet,true); + while (packetQueue.Size()) + rakPeerInterface->PushBackPacket(packetQueue.Pop(),true); + return false; + } + else if (packet->data[0]==ID_RPC_REMOTE_ERROR && packet->data[1]==RPC_ERROR_FUNCTION_NOT_REGISTERED) + { + RakNet::RakString functionName; + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + bsIn.Read(functionName); + if (functionName==uniqueID) + { + // Push back to head in reverse order + rakPeerInterface->PushBackPacket(packet,true); + while (packetQueue.Size()) + rakPeerInterface->PushBackPacket(packetQueue.Pop(),true); + return false; + } + else + { + packetQueue.PushAtHead(packet,0,_FILE_AND_LINE_); + } + } + else + { + packetQueue.PushAtHead(packet,0,_FILE_AND_LINE_); + } + } + } + + returnData->Read(blockingReturnValue); + return true; +} +void RPC4::Signal(const char *sharedIdentifier, RakNet::BitStream *bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool invokeLocal) +{ + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_SIGNAL); + out.WriteCompressed(sharedIdentifier); + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + SendUnified(&out,priority,reliability,orderingChannel,systemIdentifier,broadcast); + + if (invokeLocal) + { + DataStructures::HashIndex functionIndex; + functionIndex = localSlots.GetIndexOf(sharedIdentifier); + if (functionIndex.IsInvalid()) + return; + + Packet p; + p.guid=rakPeerInterface->GetMyGUID(); + p.systemAddress=rakPeerInterface->GetMyBoundAddress(0); + p.wasGeneratedLocally=true; + RakNet::BitStream *bsptr, bstemp; + if (bitStream) + { + bitStream->ResetReadPointer(); + p.length=bitStream->GetNumberOfBytesUsed(); + p.bitSize=bitStream->GetNumberOfBitsUsed(); + bsptr=bitStream; + } + else + { + p.length=0; + p.bitSize=0; + bsptr=&bstemp; + } + InvokeSignal(functionIndex, bsptr, &p); + } +} +void RPC4::InvokeSignal(DataStructures::HashIndex functionIndex, RakNet::BitStream *serializedParameters, Packet *packet) +{ + if (functionIndex.IsInvalid()) + return; + + interruptSignal=false; + LocalSlot *localSlot = localSlots.ItemAtIndex(functionIndex); + unsigned int i; + i=0; + while (i < localSlot->slotObjects.Size()) + { + localSlot->slotObjects[i].functionPointer(serializedParameters, packet); + + // Not threadsafe + if (interruptSignal==true) + break; + + serializedParameters->ResetReadPointer(); + + i++; + } +} +void RPC4::InterruptSignal(void) +{ + interruptSignal=true; +} +void RPC4::OnAttach(void) +{ + unsigned int i; + for (i=0; i < globalRegistrationIndex; i++) + { + if (globalRegistrationBuffer[i].registerFunctionPointer) + { + if (globalRegistrationBuffer[i].callPriority==(int)0xFFFFFFFF) + RegisterFunction(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].registerFunctionPointer); + else + RegisterSlot(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].registerFunctionPointer, globalRegistrationBuffer[i].callPriority); + } + else if (globalRegistrationBuffer[i].registerBlockingFunctionPointer) + RegisterBlockingFunction(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].registerBlockingFunctionPointer); + else + RegisterLocalCallback(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].messageId); + } +} +PluginReceiveResult RPC4::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_RPC_PLUGIN) + { + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + + if (packet->data[1]==ID_RPC4_CALL) + { + RakNet::RakString functionName; + bsIn.ReadCompressed(functionName); + bool isBlocking=false; + bsIn.Read(isBlocking); + if (isBlocking==false) + { + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(functionName.C_String()); + if (skhi.IsInvalid()) + { + RakNet::BitStream bsOut; + bsOut.Write((unsigned char) ID_RPC_REMOTE_ERROR); + bsOut.Write((unsigned char) RPC_ERROR_FUNCTION_NOT_REGISTERED); + bsOut.Write(functionName.C_String(),(unsigned int) functionName.GetLength()+1); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + void ( *fp ) ( RakNet::BitStream *, Packet * ); + fp = registeredNonblockingFunctions.ItemAtIndex(skhi); + bsIn.AlignReadToByteBoundary(); + fp(&bsIn,packet); + } + else + { + DataStructures::HashIndex skhi = registeredBlockingFunctions.GetIndexOf(functionName.C_String()); + if (skhi.IsInvalid()) + { + RakNet::BitStream bsOut; + bsOut.Write((unsigned char) ID_RPC_REMOTE_ERROR); + bsOut.Write((unsigned char) RPC_ERROR_FUNCTION_NOT_REGISTERED); + bsOut.Write(functionName.C_String(),(unsigned int) functionName.GetLength()+1); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + void ( *fp ) ( RakNet::BitStream *, RakNet::BitStream *, Packet * ); + fp = registeredBlockingFunctions.ItemAtIndex(skhi); + RakNet::BitStream returnData; + bsIn.AlignReadToByteBoundary(); + fp(&bsIn, &returnData, packet); + + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_RETURN); + returnData.ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(returnData); + SendUnified(&out,IMMEDIATE_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + } + } + else if (packet->data[1]==ID_RPC4_SIGNAL) + { + RakNet::RakString sharedIdentifier; + bsIn.ReadCompressed(sharedIdentifier); + DataStructures::HashIndex functionIndex; + functionIndex = localSlots.GetIndexOf(sharedIdentifier); + RakNet::BitStream serializedParameters; + bsIn.AlignReadToByteBoundary(); + bsIn.Read(&serializedParameters); + InvokeSignal(functionIndex, &serializedParameters, packet); + } + else + { + RakAssert(packet->data[1]==ID_RPC4_RETURN); + blockingReturnValue.Reset(); + blockingReturnValue.Read(bsIn); + gotBlockingReturnValue=true; + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + bool objectExists; + unsigned int index, index2; + index = localCallbacks.GetIndexFromKey(packet->data[0],&objectExists); + if (objectExists) + { + LocalCallback *lc; + lc = localCallbacks[index]; + for (index2=0; index2 < lc->functions.Size(); index2++) + { + RakNet::BitStream bsIn(packet->data, packet->length, false); + + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(lc->functions[index2].C_String()); + if (skhi.IsInvalid()==false) + { + void ( *fp ) ( RakNet::BitStream *, Packet * ); + fp = registeredNonblockingFunctions.ItemAtIndex(skhi); + bsIn.AlignReadToByteBoundary(); + fp(&bsIn,packet); + } + } + } + + return RR_CONTINUE_PROCESSING; +} +DataStructures::HashIndex RPC4::GetLocalSlotIndex(const char *sharedIdentifier) +{ + return localSlots.GetIndexOf(sharedIdentifier); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/RPC4Plugin.h b/project/lib_projects/raknet/jni/RaknetSources/RPC4Plugin.h new file mode 100755 index 0000000..d5296a6 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RPC4Plugin.h @@ -0,0 +1,236 @@ +/// \file +/// \brief Remote procedure call, supporting C functions only. No external dependencies required. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RPC4Plugin==1 + +#ifndef __RPC_4_PLUGIN_H +#define __RPC_4_PLUGIN_H + +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "RakNetTypes.h" +#include "BitStream.h" +#include "RakString.h" +#include "NetworkIDObject.h" +#include "DS_Hash.h" +#include "DS_OrderedList.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// \defgroup RPC_PLUGIN_GROUP RPC +/// \brief Remote procedure calls, without external dependencies. +/// \details This should not be used at the same time as RPC3. This is a less functional version of RPC3, and is here for users that do not want the Boost dependency of RPC3. +/// \ingroup PLUGINS_GROUP + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class NetworkIDManager; + + /// \brief Error codes returned by a remote system as to why an RPC function call cannot execute + /// \details Error code follows packet ID ID_RPC_REMOTE_ERROR, that is packet->data[1]
+ /// Name of the function will be appended starting at packet->data[2] + /// \ingroup RPC_PLUGIN_GROUP + enum RPCErrorCodes + { + /// Named function was not registered with RegisterFunction(). Check your spelling. + RPC_ERROR_FUNCTION_NOT_REGISTERED, + }; + + /// \brief Instantiate this class globally if you want to register a function with RPC4 at the global space + class RAK_DLL_EXPORT RPC4GlobalRegistration + { + public: + /// \brief Queue a call to RPC4::RegisterFunction() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )); + + /// \brief Queue a call to RPC4::RegisterSlot() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority); + + /// \brief Queue a call to RPC4::RegisterBlockingFunction() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )); + + /// \brief Queue a call to RPC4::RegisterLocalCallback() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, MessageID messageId); + }; + + /// \brief The RPC4 plugin is just an association between a C function pointer and a string. + /// \details It is for users that want to use RPC, but do not want to use boost. + /// You do not have the automatic serialization or other features of RPC3, and C++ member calls are not supported. + /// \note You cannot use RPC4 at the same time as RPC3Plugin + /// \ingroup RPC_PLUGIN_GROUP + class RAK_DLL_EXPORT RPC4 : public PluginInterface2 + { + public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RPC4) + + // Constructor + RPC4(); + + // Destructor + virtual ~RPC4(); + + /// \deprecated Use RegisterSlot + /// \brief Register a function pointer to be callable from a remote system + /// \details The hash of the function name will be stored as an association with the function pointer + /// When a call is made to call this function from the \a Call() or CallLoopback() function, the function pointer will be invoked with the passed bitStream to Call() and the actual Packet that RakNet got. + /// \sa RegisterPacketCallback() + /// \param[in] uniqueID Identifier to be associated with \a functionPointer. If this identifier is already in use, the call will return false. + /// \param[in] functionPointer C function pointer to be called + /// \return True if the hash of uniqueID is not in use, false otherwise. + bool RegisterFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )); + + /// Register a slot, which is a function pointer to one or more implementations that supports this function signature + /// When a signal occurs, all slots with the same identifier are called. + /// \param[in] sharedIdentifier A string to identify the slot. Recommended to be the same as the name of the function. + /// \param[in] functionPtr Pointer to the function. For C, just pass the name of the function. For C++, use ARPC_REGISTER_CPP_FUNCTION + /// \param[in] callPriority Slots are called by order of the highest callPriority first. For slots with the same priority, they are called in the order they are registered + void RegisterSlot(const char *sharedIdentifier, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority); + + /// \brief Same as \a RegisterFunction, but is called with CallBlocking() instead of Call() and returns a value to the caller + bool RegisterBlockingFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )); + + /// \deprecated Use RegisterSlot and invoke on self only when the packet you want arrives + /// When a RakNet Packet with the specified identifier is returned, execute CallLoopback() on a function previously registered with RegisterFunction() + /// For example, you could call "OnClosedConnection" whenever you get ID_DISCONNECTION_NOTIFICATION or ID_CONNECTION_LOST + /// \param[in] uniqueID Identifier passed to RegisterFunction() + /// \param[in] messageId What RakNet packet ID to call on, for example ID_DISCONNECTION_NOTIFICATION or ID_CONNECTION_LOST + void RegisterLocalCallback(const char* uniqueID, MessageID messageId); + + /// \brief Unregister a function pointer previously registered with RegisterFunction() + /// \param[in] Identifier originally passed to RegisterFunction() + /// \return True if the hash of uniqueID was in use, and hence removed. false otherwise. + bool UnregisterFunction(const char* uniqueID); + + /// \brief Same as UnregisterFunction, except for a blocking function + bool UnregisterBlockingFunction(const char* uniqueID); + + /// Remove the association created with RegisterPacketCallback() + /// \param[in] uniqueID Identifier passed as uniqueID to RegisterLocalCallback() + /// \param[in] messageId Identifier passed as messageId to RegisterLocalCallback() + /// \return True if the combination of uniqueID and messageId was in use, and hence removed + bool UnregisterLocalCallback(const char* uniqueID, MessageID messageId); + + /// Remove the association created with RegisterSlot() + /// \param[in] sharedIdentifier Identifier passed as sharedIdentifier to RegisterSlot() + bool UnregisterSlot(const char* sharedIdentifier); + + /// \deprecated Use RegisterSlot() and Signal() with your own RakNetGUID as the send target + /// Send to the attached instance of RakPeer. See RakPeerInterface::SendLoopback() + /// \param[in] Identifier originally passed to RegisterFunction() on the local system + /// \param[in] bitStream bitStream encoded data to send to the function callback + void CallLoopback( const char* uniqueID, RakNet::BitStream * bitStream ); + + /// \deprecated, use Signal() + /// Send to the specified remote instance of RakPeer. + /// \param[in] uniqueID Identifier originally passed to RegisterFunction() on the remote system(s) + /// \param[in] bitStream bitStream encoded data to send to the function callback + /// \param[in] priority See RakPeerInterface::Send() + /// \param[in] reliability See RakPeerInterface::Send() + /// \param[in] orderingChannel See RakPeerInterface::Send() + /// \param[in] systemIdentifier See RakPeerInterface::Send() + /// \param[in] broadcast See RakPeerInterface::Send() + void Call( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ); + + /// \brief Same as call, but don't return until the remote system replies. + /// Broadcasting parameter does not exist, this can only call one remote system + /// \note This function does not return until the remote system responds, disconnects, or was never connected to begin with + /// \param[in] Identifier originally passed to RegisterBlockingFunction() on the remote system(s) + /// \param[in] bitStream bitStream encoded data to send to the function callback + /// \param[in] priority See RakPeerInterface::Send() + /// \param[in] reliability See RakPeerInterface::Send() + /// \param[in] orderingChannel See RakPeerInterface::Send() + /// \param[in] systemIdentifier See RakPeerInterface::Send() + /// \param[out] returnData Written to by the function registered with RegisterBlockingFunction. + /// \return true if successfully called. False on disconnect, function not registered, or not connected to begin with + bool CallBlocking( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, RakNet::BitStream *returnData ); + + /// Calls zero or more functions identified by sharedIdentifier registered with RegisterSlot() + /// \param[in] sharedIdentifier parameter of the same name passed to RegisterSlot() on the remote system + /// \param[in] bitStream bitStream encoded data to send to the function callback + /// \param[in] priority See RakPeerInterface::Send() + /// \param[in] reliability See RakPeerInterface::Send() + /// \param[in] orderingChannel See RakPeerInterface::Send() + /// \param[in] systemIdentifier See RakPeerInterface::Send() + /// \param[in] broadcast See RakPeerInterface::Send() + /// \param[in] invokeLocal If true, also sends to self. + void Signal(const char *sharedIdentifier, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool invokeLocal); + + /// If called while processing a slot, no further slots for the currently executing signal will be executed + void InterruptSignal(void); + + /// \internal + struct LocalCallback + { + MessageID messageId; + DataStructures::OrderedList functions; + }; + static int LocalCallbackComp(const MessageID &key, LocalCallback* const &data ); + + /// \internal + // Callable object, along with priority to call relative to other objects + struct LocalSlotObject + { + LocalSlotObject() {} + LocalSlotObject(unsigned int _registrationCount,int _callPriority, void ( *_functionPointer ) ( RakNet::BitStream *userData, Packet *packet )) + {registrationCount=_registrationCount;callPriority=_callPriority;functionPointer=_functionPointer;} + ~LocalSlotObject() {} + + // Used so slots are called in the order they are registered + unsigned int registrationCount; + int callPriority; + void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ); + }; + + static int LocalSlotObjectComp( const LocalSlotObject &key, const LocalSlotObject &data ); + + /// \internal + struct LocalSlot + { + DataStructures::OrderedList slotObjects; + }; + DataStructures::Hash localSlots; + + protected: + + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual void OnAttach(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + + DataStructures::Hash registeredNonblockingFunctions; + DataStructures::Hash registeredBlockingFunctions; + DataStructures::OrderedList localCallbacks; + + RakNet::BitStream blockingReturnValue; + bool gotBlockingReturnValue; + + DataStructures::HashIndex GetLocalSlotIndex(const char *sharedIdentifier); + + /// Used so slots are called in the order they are registered + unsigned int nextSlotRegistrationCount; + + bool interruptSignal; + + void InvokeSignal(DataStructures::HashIndex functionIndex, RakNet::BitStream *serializedParameters, Packet *packet); + }; + +} // End namespace + +#endif + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/Rackspace.cpp b/project/lib_projects/raknet/jni/RaknetSources/Rackspace.cpp new file mode 100755 index 0000000..9d0dfe8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Rackspace.cpp @@ -0,0 +1,655 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_Rackspace==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "Rackspace.h" +#include "RakString.h" +#include "TCPInterface.h" + +using namespace RakNet; + +Rackspace::Rackspace() +{ + tcpInterface=0; +} + +Rackspace::~Rackspace() +{ + +} + +void Rackspace::AddEventCallback(RackspaceEventCallback *callback) +{ + unsigned int idx = eventCallbacks.GetIndexOf(callback); + if (idx == (unsigned int)-1) + eventCallbacks.Push(callback,_FILE_AND_LINE_); +} +void Rackspace::RemoveEventCallback(RackspaceEventCallback *callback) +{ + unsigned int idx = eventCallbacks.GetIndexOf(callback); + if (idx != (unsigned int)-1) + eventCallbacks.RemoveAtIndex(idx); +} +void Rackspace::ClearEventCallbacks(void) +{ + eventCallbacks.Clear(true, _FILE_AND_LINE_); +} +SystemAddress Rackspace::Authenticate(TCPInterface *_tcpInterface, const char *_authenticationURL, const char *_rackspaceCloudUsername, const char *_apiAccessKey) +{ + unsigned int index = GetOperationOfTypeIndex(RO_CONNECT_AND_AUTHENTICATE); + if (index!=(unsigned int)-1) + { + // In progress + return operations[index].connectionAddress; + } + + tcpInterface=_tcpInterface; + + rackspaceCloudUsername=_rackspaceCloudUsername; + apiAccessKey=_apiAccessKey; + + unsigned int i; + + RackspaceOperation ro; + ro.type=RO_CONNECT_AND_AUTHENTICATE; + ro.isPendingAuthentication=false; + + RakAssert(tcpInterface->WasStarted()); + ro.connectionAddress=tcpInterface->Connect(_authenticationURL,443,true); + if (ro.connectionAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnConnectionAttemptFailure(RO_CONNECT_AND_AUTHENTICATE, _authenticationURL); + + return UNASSIGNED_SYSTEM_ADDRESS; + } + +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcpInterface->StartSSLClient(ro.connectionAddress); +#endif + + RakNet::RakString command( + "GET /v1.0 HTTP/1.1\n" + "Host: %s\n" + "X-Auth-User: %s\n" + "X-Auth-Key: %s\n\n" + ,_authenticationURL, _rackspaceCloudUsername, _apiAccessKey); + tcpInterface->Send(command.C_String(), (unsigned int) command.GetLength(), ro.connectionAddress, false); + + operations.Insert(ro,_FILE_AND_LINE_); + return ro.connectionAddress; +} + +const char * Rackspace::EventTypeToString(RackspaceEventType eventType) +{ + switch (eventType) + { + case RET_Success_200: + return "Success_200"; + case RET_Success_201: + return "Success_201"; + case RET_Success_202: + return "Success_202"; + case RET_Success_203: + return "Success_203"; + case RET_Success_204: + return "Success_204"; + case RET_Cloud_Servers_Fault_500: + return "Cloud_Servers_Fault_500"; + case RET_Service_Unavailable_503: + return "Service_Unavailable_503"; + case RET_Unauthorized_401: + return "Unauthorized_401"; + case RET_Bad_Request_400: + return "Bad_Request_400"; + case RET_Over_Limit_413: + return "Over_Limit_413"; + case RET_Bad_Media_Type_415: + return "Bad_Media_Type_415"; + case RET_Item_Not_Found_404: + return "Item_Not_Found_404"; + case RET_Build_In_Progress_409: + return "Build_In_Progress_409"; + case RET_Resize_Not_Allowed_403: + return "Resize_Not_Allowed_403"; + case RET_Connection_Closed_Without_Reponse: + return "Connection_Closed_Without_Reponse"; + case RET_Unknown_Failure: + return "Unknown_Failure"; + } + return "Unknown event type (bug)"; +} +void Rackspace::AddOperation(RackspaceOperationType type, RakNet::RakString httpCommand, RakNet::RakString operation, RakNet::RakString xml) +{ + RackspaceOperation ro; + ro.type=type; + ro.httpCommand=httpCommand; + ro.operation=operation; + ro.xml=xml; + ro.isPendingAuthentication=HasOperationOfType(RO_CONNECT_AND_AUTHENTICATE); + if (ro.isPendingAuthentication==false) + { + if (ExecuteOperation(ro)) + operations.Insert(ro,_FILE_AND_LINE_); + } + else + operations.Insert(ro,_FILE_AND_LINE_); +} +void Rackspace::ListServers(void) +{ + AddOperation(RO_LIST_SERVERS, "GET", "servers", ""); +} +void Rackspace::ListServersWithDetails(void) +{ + AddOperation(RO_LIST_SERVERS_WITH_DETAILS, "GET", "servers/detail", ""); +} +void Rackspace::CreateServer(RakNet::RakString name, RakNet::RakString imageId, RakNet::RakString flavorId) +{ + RakNet::RakString xml( + "" + "" + "" + ,name.C_String() ,imageId.C_String(), flavorId.C_String()); + AddOperation(RO_CREATE_SERVER, "POST", "servers", xml); +} +void Rackspace::GetServerDetails(RakNet::RakString serverId) +{ + AddOperation(RO_GET_SERVER_DETAILS, "GET", RakNet::RakString("servers/%s", serverId.C_String()), ""); +} +void Rackspace::UpdateServerNameOrPassword(RakNet::RakString serverId, RakNet::RakString newName, RakNet::RakString newPassword) +{ + if (newName.IsEmpty() && newPassword.IsEmpty()) + return; + RakNet::RakString xml( + "" + "" + "", + rebootType.C_String()); + + AddOperation(RO_REBOOT_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::RebuildServer(RakNet::RakString serverId, RakNet::RakString imageId) +{ + RakNet::RakString xml( + "" + "", + imageId.C_String()); + + AddOperation(RO_REBUILD_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::ResizeServer(RakNet::RakString serverId, RakNet::RakString flavorId) +{ + RakNet::RakString xml( + "" + "", + flavorId.C_String()); + + AddOperation(RO_RESIZE_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::ConfirmResizedServer(RakNet::RakString serverId) +{ + RakNet::RakString xml( + "" + ""); + AddOperation(RO_CONFIRM_RESIZED_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::RevertResizedServer(RakNet::RakString serverId) +{ + RakNet::RakString xml( + "" + ""); + AddOperation(RO_REVERT_RESIZED_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::ListFlavors(void) +{ + AddOperation(RO_LIST_FLAVORS, "GET", "flavors", ""); +} +void Rackspace::GetFlavorDetails(RakNet::RakString flavorId) +{ + AddOperation(RO_GET_FLAVOR_DETAILS, "GET", RakNet::RakString("flavors/%s", flavorId.C_String()), ""); +} +void Rackspace::ListImages(void) +{ + AddOperation(RO_LIST_IMAGES, "GET", "images", ""); +} +void Rackspace::CreateImage(RakNet::RakString serverId, RakNet::RakString imageName) +{ + RakNet::RakString xml( + "" + "", + imageName.C_String(),serverId.C_String()); + + AddOperation(RO_CREATE_IMAGE, "POST", "images", xml); +} +void Rackspace::GetImageDetails(RakNet::RakString imageId) +{ + AddOperation(RO_GET_IMAGE_DETAILS, "GET", RakNet::RakString("images/%s", imageId.C_String()), ""); +} +void Rackspace::DeleteImage(RakNet::RakString imageId) +{ + AddOperation(RO_DELETE_IMAGE, "DELETE", RakNet::RakString("images/%s", imageId.C_String()), ""); +} +void Rackspace::ListSharedIPGroups(void) +{ + AddOperation(RO_LIST_SHARED_IP_GROUPS, "GET", "shared_ip_groups", ""); +} +void Rackspace::ListSharedIPGroupsWithDetails(void) +{ + AddOperation(RO_LIST_SHARED_IP_GROUPS_WITH_DETAILS, "GET", "shared_ip_groups/detail", ""); +} +void Rackspace::CreateSharedIPGroup(RakNet::RakString name, RakNet::RakString optionalServerId) +{ + RakNet::RakString xml( + "" + "", name.C_String()); + if (optionalServerId.IsEmpty()==false) + xml+=RakNet::RakString("", optionalServerId.C_String()); + xml+=""; + + AddOperation(RO_CREATE_SHARED_IP_GROUP, "POST", "shared_ip_groups", xml); +} +void Rackspace::GetSharedIPGroupDetails(RakNet::RakString groupId) +{ + AddOperation(RO_GET_SHARED_IP_GROUP_DETAILS, "GET", RakNet::RakString("shared_ip_groups/%s", groupId.C_String()), ""); +} +void Rackspace::DeleteSharedIPGroup(RakNet::RakString groupId) +{ + AddOperation(RO_DELETE_SHARED_IP_GROUP, "DELETE", RakNet::RakString("shared_ip_groups/%s", groupId.C_String()), ""); +} +void Rackspace::OnClosedConnection(SystemAddress systemAddress) +{ + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS) + return; + + unsigned int i, operationsIndex; + operationsIndex=0; + while (operationsIndex < operations.Size()) + { + if (operations[operationsIndex].isPendingAuthentication==false && operations[operationsIndex].connectionAddress==systemAddress) + { + RackspaceOperation ro = operations[operationsIndex]; + operations.RemoveAtIndex(operationsIndex); + + RakNet::RakString packetDataString = ro.incomingStream; + const char *packetData = packetDataString.C_String(); + + char resultCodeStr[32]; + int resultCodeInt; + + RackspaceEventType rackspaceEventType; + char *result; + result=strstr((char*) packetData, "HTTP/1.1 "); + if (result!=0) + { + result+=strlen("HTTP/1.1 "); + for (i=0; i < sizeof(resultCodeStr)-1 && result[i] && result[i]>='0' && result[i]<='9'; i++) + resultCodeStr[i]=result[i]; + resultCodeStr[i]=0; + resultCodeInt=atoi(resultCodeStr); + + switch (resultCodeInt) + { + case 200: rackspaceEventType=RET_Success_200; break; + case 201: rackspaceEventType=RET_Success_201; break; + case 202: rackspaceEventType=RET_Success_202; break; + case 203: rackspaceEventType=RET_Success_203; break; + case 204: rackspaceEventType=RET_Success_204; break; + case 500: rackspaceEventType=RET_Cloud_Servers_Fault_500; break; + case 503: rackspaceEventType=RET_Service_Unavailable_503; break; + case 401: rackspaceEventType=RET_Unauthorized_401; break; + case 400: rackspaceEventType=RET_Bad_Request_400; break; + case 413: rackspaceEventType=RET_Over_Limit_413; break; + case 415: rackspaceEventType=RET_Bad_Media_Type_415; break; + case 404: rackspaceEventType=RET_Item_Not_Found_404; break; + case 409: rackspaceEventType=RET_Build_In_Progress_409; break; + case 403: rackspaceEventType=RET_Resize_Not_Allowed_403; break; + default: rackspaceEventType=RET_Unknown_Failure; break; + } + } + else + { + rackspaceEventType=RET_Connection_Closed_Without_Reponse; + } + + switch (ro.type) + { + case RO_CONNECT_AND_AUTHENTICATE: + { + if (rackspaceEventType==RET_Success_204) + { + RakNet::RakString header; + ReadLine(packetData, "X-Server-Management-Url: ", serverManagementURL); + serverManagementURL.SplitURI(header, serverManagementDomain, serverManagementPath); + ReadLine(packetData, "X-Storage-Url: ", storageURL); + storageURL.SplitURI(header, storageDomain, storagePath); + ReadLine(packetData, "X-CDN-Management-Url: ", cdnManagementURL); + cdnManagementURL.SplitURI(header, cdnManagementDomain, cdnManagementPath); + ReadLine(packetData, "X-Auth-Token: ", authToken); + ReadLine(packetData, "X-Storage-Token: ", storageToken); + + operationsIndex=0; + while (operationsIndex < operations.Size()) + { + if (operations[operationsIndex].isPendingAuthentication==true) + { + operations[operationsIndex].isPendingAuthentication=false; + if (ExecuteOperation(operations[operationsIndex])==false) + { + operations.RemoveAtIndex(operationsIndex); + } + else + operationsIndex++; + } + else + operationsIndex++; + } + + // Restart in list + operationsIndex=0; + } + + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnAuthenticationResult(rackspaceEventType, (const char*) packetData); + + break; + } + case RO_LIST_SERVERS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListServersResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SERVERS_WITH_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListServersWithDetailsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CREATE_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnCreateServerResult(rackspaceEventType, (const char*) packetData); + break; + } + + case RO_GET_SERVER_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetServerDetails(rackspaceEventType, (const char*) packetData); + break; + } + case RO_UPDATE_SERVER_NAME_OR_PASSWORD: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnUpdateServerNameOrPassword(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SERVER_ADDRESSES: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListServerAddresses(rackspaceEventType, (const char*) packetData); + break; + } + case RO_SHARE_SERVER_ADDRESS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnShareServerAddress(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_SERVER_ADDRESS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteServerAddress(rackspaceEventType, (const char*) packetData); + break; + } + case RO_REBOOT_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnRebootServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_REBUILD_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnRebuildServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_RESIZE_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnResizeServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CONFIRM_RESIZED_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnConfirmResizedServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_REVERT_RESIZED_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnRevertResizedServer(rackspaceEventType, (const char*) packetData); + break; + } + + + case RO_LIST_FLAVORS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListFlavorsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_GET_FLAVOR_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetFlavorDetailsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_IMAGES: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListImagesResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CREATE_IMAGE: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnCreateImageResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_GET_IMAGE_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetImageDetailsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_IMAGE: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteImageResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SHARED_IP_GROUPS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListSharedIPGroups(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SHARED_IP_GROUPS_WITH_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListSharedIPGroupsWithDetails(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CREATE_SHARED_IP_GROUP: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnCreateSharedIPGroup(rackspaceEventType, (const char*) packetData); + break; + } + case RO_GET_SHARED_IP_GROUP_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetSharedIPGroupDetails(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_SHARED_IP_GROUP: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteSharedIPGroup(rackspaceEventType, (const char*) packetData); + break; + } + default: + break; + + } + } + else + { + operationsIndex++; + } + } +} +void Rackspace::OnReceive(Packet *packet) +{ + unsigned int operationsIndex; + for (operationsIndex=0; operationsIndex < operations.Size(); operationsIndex++) + { + if (operations[operationsIndex].isPendingAuthentication==false && operations[operationsIndex].connectionAddress==packet->systemAddress) + { + operations[operationsIndex].incomingStream+=packet->data; + } + } +} +bool Rackspace::ExecuteOperation(RackspaceOperation &ro) +{ + if (ConnectToServerManagementDomain(ro)==false) + return false; + + RakNet::RakString command( + "%s %s/%s HTTP/1.1\n" + "Host: %s\n" + "Content-Type: application/xml\n" + "Content-Length: %i\n" + "Accept: application/xml\n" + "X-Auth-Token: %s\n", + ro.httpCommand.C_String(), serverManagementPath.C_String(), ro.operation.C_String(), serverManagementDomain.C_String(), + ro.xml.GetLength(), + authToken.C_String()); + + if (ro.xml.IsEmpty()==false) + { + command+="\n"; + command+=ro.xml; + command+="\n"; + } + + command+="\n"; + + //printf(command.C_String()); + + tcpInterface->Send(command.C_String(), (unsigned int) command.GetLength(), ro.connectionAddress, false); + return true; +} +void Rackspace::ReadLine(const char *data, const char *stringStart, RakNet::RakString &output) +{ + output.Clear(); + + char *result, *resultEnd; + + result=strstr((char*) data, stringStart); + result+=strlen(stringStart); + if (result==0) + { + RakAssert(0); + return; + } + + output=result; + resultEnd=result; + while (*resultEnd && (*resultEnd!='\r') && (*resultEnd!='\n') ) + resultEnd++; + output.Truncate((unsigned int) (resultEnd-result)); +} + + +bool Rackspace::ConnectToServerManagementDomain(RackspaceOperation &ro) +{ + unsigned int i; + + ro.connectionAddress=tcpInterface->Connect(serverManagementDomain.C_String(),443,true); + if (ro.connectionAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnConnectionAttemptFailure(ro.type, serverManagementURL); + return false; + } + +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcpInterface->StartSSLClient(ro.connectionAddress); +#endif + + return true; +} +bool Rackspace::HasOperationOfType(RackspaceOperationType t) +{ + unsigned int i; + for (i=0; i < operations.Size(); i++) + { + if (operations[i].type==t) + return true; + } + return false; +} +unsigned int Rackspace::GetOperationOfTypeIndex(RackspaceOperationType t) +{ + unsigned int i; + for (i=0; i < operations.Size(); i++) + { + if (operations[i].type==t) + return i; + } + return (unsigned int) -1; +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Rackspace.h b/project/lib_projects/raknet/jni/RaknetSources/Rackspace.h new file mode 100755 index 0000000..145e55c --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Rackspace.h @@ -0,0 +1,405 @@ +/// \file Rackspace.h +/// \brief Helper to class to manage Rackspace servers +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" + +#if _RAKNET_SUPPORT_Rackspace==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "Export.h" +#include "DS_List.h" +#include "RakNetTypes.h" +#include "DS_Queue.h" +#include "RakString.h" + +#ifndef __RACKSPACE_H +#define __RACKSPACE_H + +namespace RakNet +{ + + class TCPInterface; + struct Packet; + + /// \brief Result codes for Rackspace commands + /// /sa Rackspace::EventTypeToString() + enum RackspaceEventType + { + RET_Success_200, + RET_Success_201, + RET_Success_202, + RET_Success_203, + RET_Success_204, + RET_Cloud_Servers_Fault_500, + RET_Service_Unavailable_503, + RET_Unauthorized_401, + RET_Bad_Request_400, + RET_Over_Limit_413, + RET_Bad_Media_Type_415, + RET_Item_Not_Found_404, + RET_Build_In_Progress_409, + RET_Resize_Not_Allowed_403, + RET_Connection_Closed_Without_Reponse, + RET_Unknown_Failure, + }; + + /// \internal + enum RackspaceOperationType + { + RO_CONNECT_AND_AUTHENTICATE, + RO_LIST_SERVERS, + RO_LIST_SERVERS_WITH_DETAILS, + RO_CREATE_SERVER, + RO_GET_SERVER_DETAILS, + RO_UPDATE_SERVER_NAME_OR_PASSWORD, + RO_DELETE_SERVER, + RO_LIST_SERVER_ADDRESSES, + RO_SHARE_SERVER_ADDRESS, + RO_DELETE_SERVER_ADDRESS, + RO_REBOOT_SERVER, + RO_REBUILD_SERVER, + RO_RESIZE_SERVER, + RO_CONFIRM_RESIZED_SERVER, + RO_REVERT_RESIZED_SERVER, + RO_LIST_FLAVORS, + RO_GET_FLAVOR_DETAILS, + RO_LIST_IMAGES, + RO_CREATE_IMAGE, + RO_GET_IMAGE_DETAILS, + RO_DELETE_IMAGE, + RO_LIST_SHARED_IP_GROUPS, + RO_LIST_SHARED_IP_GROUPS_WITH_DETAILS, + RO_CREATE_SHARED_IP_GROUP, + RO_GET_SHARED_IP_GROUP_DETAILS, + RO_DELETE_SHARED_IP_GROUP, + + RO_NONE, + }; + + /// \brief Callback interface to receive the results of operations + class RAK_DLL_EXPORT RackspaceEventCallback + { + public: + RackspaceEventCallback() {} + virtual ~RackspaceEventCallback() {} + virtual void OnAuthenticationResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListServersResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListServersWithDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnCreateServerResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetServerDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnUpdateServerNameOrPassword(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListServerAddresses(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnShareServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnRebootServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnRebuildServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnResizeServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnConfirmResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnRevertResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListFlavorsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetFlavorDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListImagesResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnCreateImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetImageDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListSharedIPGroups(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListSharedIPGroupsWithDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnCreateSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetSharedIPGroupDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + + virtual void OnConnectionAttemptFailure(RackspaceOperationType operationType, const char *url)=0; + }; + + /// \brief Callback interface to receive the results of operations, with a default result + class RAK_DLL_EXPORT RackspaceEventCallback_Default : public RackspaceEventCallback + { + public: + virtual void ExecuteDefault(const char *callbackName, RackspaceEventType eventType, const char *htmlAdditionalInfo) {(void) callbackName; (void) eventType; (void) htmlAdditionalInfo;} + + virtual void OnAuthenticationResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnAuthenticationResult", eventType, htmlAdditionalInfo);} + virtual void OnListServersResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListServersResult", eventType, htmlAdditionalInfo);} + virtual void OnListServersWithDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListServersWithDetailsResult", eventType, htmlAdditionalInfo);} + virtual void OnCreateServerResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnCreateServerResult", eventType, htmlAdditionalInfo);} + virtual void OnGetServerDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetServerDetails", eventType, htmlAdditionalInfo);} + virtual void OnUpdateServerNameOrPassword(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnUpdateServerNameOrPassword", eventType, htmlAdditionalInfo);} + virtual void OnDeleteServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteServer", eventType, htmlAdditionalInfo);} + virtual void OnListServerAddresses(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListServerAddresses", eventType, htmlAdditionalInfo);} + virtual void OnShareServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnShareServerAddress", eventType, htmlAdditionalInfo);} + virtual void OnDeleteServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteServerAddress", eventType, htmlAdditionalInfo);} + virtual void OnRebootServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnRebootServer", eventType, htmlAdditionalInfo);} + virtual void OnRebuildServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnRebuildServer", eventType, htmlAdditionalInfo);} + virtual void OnResizeServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnResizeServer", eventType, htmlAdditionalInfo);} + virtual void OnConfirmResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnConfirmResizedServer", eventType, htmlAdditionalInfo);} + virtual void OnRevertResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnRevertResizedServer", eventType, htmlAdditionalInfo);} + virtual void OnListFlavorsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListFlavorsResult", eventType, htmlAdditionalInfo);} + virtual void OnGetFlavorDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetFlavorDetailsResult", eventType, htmlAdditionalInfo);} + virtual void OnListImagesResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListImagesResult", eventType, htmlAdditionalInfo);} + virtual void OnCreateImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnCreateImageResult", eventType, htmlAdditionalInfo);} + virtual void OnGetImageDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetImageDetailsResult", eventType, htmlAdditionalInfo);} + virtual void OnDeleteImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteImageResult", eventType, htmlAdditionalInfo);} + virtual void OnListSharedIPGroups(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListSharedIPGroups", eventType, htmlAdditionalInfo);} + virtual void OnListSharedIPGroupsWithDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListSharedIPGroupsWithDetails", eventType, htmlAdditionalInfo);} + virtual void OnCreateSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnCreateSharedIPGroup", eventType, htmlAdditionalInfo);} + virtual void OnGetSharedIPGroupDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetSharedIPGroupDetails", eventType, htmlAdditionalInfo);} + virtual void OnDeleteSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteSharedIPGroup", eventType, htmlAdditionalInfo);} + + virtual void OnConnectionAttemptFailure(RackspaceOperationType operationType, const char *url) {(void) operationType; (void) url;} + }; + + /// \brief Code that uses the TCPInterface class to communicate with the Rackspace API servers + /// \pre Compile RakNet with OPEN_SSL_CLIENT_SUPPORT set to 1 + /// \pre Packets returned from TCPInterface::OnReceive() must be passed to Rackspace::OnReceive() + /// \pre Packets returned from TCPInterface::HasLostConnection() must be passed to Rackspace::OnClosedConnection() + class RAK_DLL_EXPORT Rackspace + { + public: + Rackspace(); + ~Rackspace(); + + /// \brief Authenticate with Rackspace servers, required before executing any commands. + /// \details All requests to authenticate and operate against Cloud Servers are performed using SSL over HTTP (HTTPS) on TCP port 443. + /// Times out after 24 hours - if you get RET_Authenticate_Unauthorized in the RackspaceEventCallback callback, call again + /// \sa RackspaceEventCallback::OnAuthenticationResult() + /// \param[in] _tcpInterface An instance of TCPInterface, build with OPEN_SSL_CLIENT_SUPPORT 1 and already started + /// \param[in] _authenticationURL See http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf . US-based accounts authenticate through auth.api.rackspacecloud.com. UK-based accounts authenticate through lon.auth.api.rackspacecloud.com + /// \param[in] _rackspaceCloudUsername Username you registered with Rackspace on their website + /// \param[in] _apiAccessKey Obtain your API access key from the Rackspace Cloud Control Panel in the Your Account API Access section. + /// \return The address of the authentication server, or UNASSIGNED_SYSTEM_ADDRESS if the connection attempt failed + SystemAddress Authenticate(TCPInterface *_tcpInterface, const char *_authenticationURL, const char *_rackspaceCloudUsername, const char *_apiAccessKey); + + /// \brief Get a list of running servers + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListServersResult() + void ListServers(void); + + /// \brief Get a list of running servers, with extended details on each server + /// \sa GetServerDetails() + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListServersWithDetailsResult() + void ListServersWithDetails(void); + + /// \brief Create a server + /// \details Create a server with a given image (harddrive contents) and flavor (hardware configuration) + /// Get the available images with ListImages() + /// Get the available flavors with ListFlavors() + /// It is possible to configure the server in more detail. See the XML schema at http://docs.rackspacecloud.com/servers/api/v1.0 + /// You can execute such a custom command by calling AddOperation() manually. See the implementation of CreateServer for how to do so. + /// The server takes a while to build. Call GetServerDetails() to get the current build status. Server id to pass to GetServerDetails() is returned in the field + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnCreateServerResult() + /// \param[in] name Name of the server. Only alphanumeric characters, periods, and hyphens are valid. Server Name cannot start or end with a period or hyphen. + /// \param[in] imageId Which image (harddrive contents, including OS) to use + /// \param[in] flavorId Which flavor (hardware config) to use, primarily how much memory is available. + void CreateServer(RakNet::RakString name, RakNet::RakString imageId, RakNet::RakString flavorId); + + /// \brief Get details on a particular server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnGetServerDetailsResult() + /// \param[in] serverId Which server to get details on. You can call ListServers() to get the list of active servers. + void GetServerDetails(RakNet::RakString serverId); + + /// \brief Changes the name or password for a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnUpdateServerNameOrPasswordResult() + /// \param[in] serverId Which server to get details on. You can call ListServers() to get the list of active servers. + /// \param[in] newName The new server name. Leave blank to leave unchanged. Only alphanumeric characters, periods, and hyphens are valid. Server Name cannot start or end with a period or hyphen. + /// \param[in] newPassword The new server password. Leave blank to leave unchanged. + void UpdateServerNameOrPassword(RakNet::RakString serverId, RakNet::RakString newName, RakNet::RakString newPassword); + + /// \brief Deletes a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnDeleteServerResult() + /// \param[in] serverId Which server to get details on. You can call ListServers() to get the list of active servers. + void DeleteServer(RakNet::RakString serverId); + + /// \brief Lists the IP addresses available to a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListServerAddressesResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + void ListServerAddresses(RakNet::RakString serverId); + + /// \brief Shares an IP address with a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnShareServerAddressResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] ipAddress Which IP address. You can call ListServerAddresses() to get the list of addresses for the specified server + void ShareServerAddress(RakNet::RakString serverId, RakNet::RakString ipAddress); + + /// \brief Stops sharing an IP address with a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnDeleteServerAddressResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] ipAddress Which IP address. You can call ListServerAddresses() to get the list of addresses for the specified server + void DeleteServerAddress(RakNet::RakString serverId, RakNet::RakString ipAddress); + + /// \brief Reboots a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnRebootServerResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] rebootType Should be either "HARD" or "SOFT" + void RebootServer(RakNet::RakString serverId, RakNet::RakString rebootType); + + /// \brief Rebuilds a server with a different image (harddrive contents) + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnRebuildServerResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] imageId Which image (harddrive contents, including OS) to use + void RebuildServer(RakNet::RakString serverId, RakNet::RakString imageId); + + /// \brief Changes the hardware configuration of a server. This does not take effect until you call ConfirmResizedServer() + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnResizeServerResult() + /// \sa RevertResizedServer() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] flavorId Which flavor (hardware config) to use, primarily how much memory is available. + void ResizeServer(RakNet::RakString serverId, RakNet::RakString flavorId); + + /// \brief Confirm a resize for the specified server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnConfirmResizedServerResult() + /// \sa ResizeServer() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + void ConfirmResizedServer(RakNet::RakString serverId); + + /// \brief Reverts a resize for the specified server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnRevertResizedServerResult() + /// \sa ResizeServer() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + void RevertResizedServer(RakNet::RakString serverId); + + /// \brief List all flavors (hardware configs, primarily memory) + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListFlavorsResult() + void ListFlavors(void); + + /// \brief Get extended details about a specific flavor + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnGetFlavorDetailsResult() + /// \sa ListFlavors() + /// \param[in] flavorId Which flavor (hardware config) + void GetFlavorDetails(RakNet::RakString flavorId); + + /// \brief List all images (software configs, including operating systems), which includes images you create yourself + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListImagesResult() + /// \sa CreateImage() + void ListImages(void); + + /// \brief Images a running server. This essentially copies the harddrive, and lets you start a server with the same harddrive contents later + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnCreateImageResult() + /// \sa ListImages() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] imageName What to call this image + void CreateImage(RakNet::RakString serverId, RakNet::RakString imageName); + + /// \brief Get extended details about a particular image + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnGetImageDetailsResult() + /// \sa ListImages() + /// \param[in] imageId Which image + void GetImageDetails(RakNet::RakString imageId); + + /// \brief Delete a custom image created with CreateImage() + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnDeleteImageResult() + /// \sa ListImages() + /// \param[in] imageId Which image + void DeleteImage(RakNet::RakString imageId); + + /// \brief List IP groups + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListSharedIPGroupsResult() + void ListSharedIPGroups(void); + + /// \brief List IP groups with extended details + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListSharedIPGroupsWithDetailsResult() + void ListSharedIPGroupsWithDetails(void); + + // I don't know what this does + void CreateSharedIPGroup(RakNet::RakString name, RakNet::RakString optionalServerId); + // I don't know what this does + void GetSharedIPGroupDetails(RakNet::RakString groupId); + // I don't know what this does + void DeleteSharedIPGroup(RakNet::RakString groupId); + + /// \brief Adds a callback to the list of callbacks to be called when any of the above functions finish executing + /// The callbacks are called in the order they are added + void AddEventCallback(RackspaceEventCallback *callback); + /// \brief Removes a callback from the list of callbacks to be called when any of the above functions finish executing + /// The callbacks are called in the order they are added + void RemoveEventCallback(RackspaceEventCallback *callback); + /// \brief Removes all callbacks + void ClearEventCallbacks(void); + + /// Call this anytime TCPInterface returns a packet + void OnReceive(Packet *packet); + + /// Call this when TCPInterface returns something other than UNASSIGNED_SYSTEM_ADDRESS from HasLostConnection() + void OnClosedConnection(SystemAddress systemAddress); + + /// String representation of each RackspaceEventType + static const char * EventTypeToString(RackspaceEventType eventType); + + /// \brief Mostly for internal use, but you can use it to execute an operation with more complex xml if desired + /// See the Rackspace.cpp on how to use it + void AddOperation(RackspaceOperationType type, RakNet::RakString httpCommand, RakNet::RakString operation, RakNet::RakString xml); + protected: + + DataStructures::List eventCallbacks; + + struct RackspaceOperation + { + RackspaceOperationType type; + // RakNet::RakString stringInfo; + SystemAddress connectionAddress; + bool isPendingAuthentication; + RakNet::RakString incomingStream; + RakNet::RakString httpCommand; + RakNet::RakString operation; + RakNet::RakString xml; + }; + + TCPInterface *tcpInterface; + + // RackspaceOperationType currentOperation; + // DataStructures::Queue nextOperationQueue; + + DataStructures::List operations; + bool HasOperationOfType(RackspaceOperationType t); + unsigned int GetOperationOfTypeIndex(RackspaceOperationType t); + + RakNet::RakString serverManagementURL; + RakNet::RakString serverManagementDomain; + RakNet::RakString serverManagementPath; + RakNet::RakString storageURL; + RakNet::RakString storageDomain; + RakNet::RakString storagePath; + RakNet::RakString cdnManagementURL; + RakNet::RakString cdnManagementDomain; + RakNet::RakString cdnManagementPath; + + RakNet::RakString storageToken; + RakNet::RakString authToken; + RakNet::RakString rackspaceCloudUsername; + RakNet::RakString apiAccessKey; + + bool ExecuteOperation(RackspaceOperation &ro); + void ReadLine(const char *data, const char *stringStart, RakNet::RakString &output); + bool ConnectToServerManagementDomain(RackspaceOperation &ro); + + + }; + +} // namespace RakNet + +#endif // __RACKSPACE_API_H + +#endif // _RAKNET_SUPPORT_Rackspace diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakAlloca.h b/project/lib_projects/raknet/jni/RaknetSources/RakAlloca.h new file mode 100755 index 0000000..b25e5ba --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakAlloca.h @@ -0,0 +1,16 @@ +#if defined(__FreeBSD__) +#include + + + + +#elif defined ( __APPLE__ ) || defined ( __APPLE_CC__ ) +#include +#include +#elif defined(_WIN32) +#include +#else +#include +// Alloca needed on Ubuntu apparently +#include +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakAssert.h b/project/lib_projects/raknet/jni/RaknetSources/RakAssert.h new file mode 100755 index 0000000..4521d5f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakAssert.h @@ -0,0 +1,2 @@ +#include +#include "RakNetDefines.h" diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakMemoryOverride.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakMemoryOverride.cpp new file mode 100755 index 0000000..8e20f8f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakMemoryOverride.cpp @@ -0,0 +1,294 @@ +#include "RakMemoryOverride.h" +#include "RakAssert.h" +#include + +#ifdef _RAKNET_SUPPORT_DL_MALLOC +#include "rdlmalloc.h" +#endif + + + + + +using namespace RakNet; + +#if _USE_RAK_MEMORY_OVERRIDE==1 + #if defined(malloc) + #pragma push_macro("malloc") + #undef malloc + #define RMO_MALLOC_UNDEF + #endif + + #if defined(realloc) + #pragma push_macro("realloc") + #undef realloc + #define RMO_REALLOC_UNDEF + #endif + + #if defined(free) + #pragma push_macro("free") + #undef free + #define RMO_FREE_UNDEF + #endif +#endif + +void DefaultOutOfMemoryHandler(const char *file, const long line) +{ + (void) file; + (void) line; + RakAssert(0); +} + +void * (*rakMalloc) (size_t size) = RakNet::_RakMalloc; +void* (*rakRealloc) (void *p, size_t size) = RakNet::_RakRealloc; +void (*rakFree) (void *p) = RakNet::_RakFree; +void* (*rakMalloc_Ex) (size_t size, const char *file, unsigned int line) = RakNet::_RakMalloc_Ex; +void* (*rakRealloc_Ex) (void *p, size_t size, const char *file, unsigned int line) = RakNet::_RakRealloc_Ex; +void (*rakFree_Ex) (void *p, const char *file, unsigned int line) = RakNet::_RakFree_Ex; +void (*notifyOutOfMemory) (const char *file, const long line)=DefaultOutOfMemoryHandler; +void * (*dlMallocMMap) (size_t size) = RakNet::_DLMallocMMap; +void * (*dlMallocDirectMMap) (size_t size) = RakNet::_DLMallocDirectMMap; +int (*dlMallocMUnmap) (void* ptr, size_t size) = RakNet::_DLMallocMUnmap; + +void SetMalloc( void* (*userFunction)(size_t size) ) +{ + rakMalloc=userFunction; +} +void SetRealloc( void* (*userFunction)(void *p, size_t size) ) +{ + rakRealloc=userFunction; +} +void SetFree( void (*userFunction)(void *p) ) +{ + rakFree=userFunction; +} +void SetMalloc_Ex( void* (*userFunction)(size_t size, const char *file, unsigned int line) ) +{ + rakMalloc_Ex=userFunction; +} +void SetRealloc_Ex( void* (*userFunction)(void *p, size_t size, const char *file, unsigned int line) ) +{ + rakRealloc_Ex=userFunction; +} +void SetFree_Ex( void (*userFunction)(void *p, const char *file, unsigned int line) ) +{ + rakFree_Ex=userFunction; +} +void SetNotifyOutOfMemory( void (*userFunction)(const char *file, const long line) ) +{ + notifyOutOfMemory=userFunction; +} +void SetDLMallocMMap( void* (*userFunction)(size_t size) ) +{ + dlMallocMMap=userFunction; +} +void SetDLMallocDirectMMap( void* (*userFunction)(size_t size) ) +{ + dlMallocDirectMMap=userFunction; +} +void SetDLMallocMUnmap( int (*userFunction)(void* ptr, size_t size) ) +{ + dlMallocMUnmap=userFunction; +} +void * (*GetMalloc()) (size_t size) +{ + return rakMalloc; +} +void * (*GetRealloc()) (void *p, size_t size) +{ + return rakRealloc; +} +void (*GetFree()) (void *p) +{ + return rakFree; +} +void * (*GetMalloc_Ex()) (size_t size, const char *file, unsigned int line) +{ + return rakMalloc_Ex; +} +void * (*GetRealloc_Ex()) (void *p, size_t size, const char *file, unsigned int line) +{ + return rakRealloc_Ex; +} +void (*GetFree_Ex()) (void *p, const char *file, unsigned int line) +{ + return rakFree_Ex; +} +void *(*GetDLMallocMMap())(size_t size) +{ + return dlMallocMMap; +} +void *(*GetDLMallocDirectMMap())(size_t size) +{ + return dlMallocDirectMMap; +} +int (*GetDLMallocMUnmap())(void* ptr, size_t size) +{ + return dlMallocMUnmap; +} +void* RakNet::_RakMalloc (size_t size) +{ + return malloc(size); +} + +void* RakNet::_RakRealloc (void *p, size_t size) +{ + return realloc(p,size); +} + +void RakNet::_RakFree (void *p) +{ + free(p); +} + +void* RakNet::_RakMalloc_Ex (size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return malloc(size); +} + +void* RakNet::_RakRealloc_Ex (void *p, size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return realloc(p,size); +} + +void RakNet::_RakFree_Ex (void *p, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + free(p); +} +#ifdef _RAKNET_SUPPORT_DL_MALLOC +void * RakNet::_DLMallocMMap (size_t size) +{ + return RAK_MMAP_DEFAULT(size); +} +void * RakNet::_DLMallocDirectMMap (size_t size) +{ + return RAK_DIRECT_MMAP_DEFAULT(size); +} +int RakNet::_DLMallocMUnmap (void *p, size_t size) +{ + return RAK_MUNMAP_DEFAULT(p,size); +} + +static mspace rakNetFixedHeapMSpace=0; + +void* _DLMalloc(size_t size) +{ + return rak_mspace_malloc(rakNetFixedHeapMSpace,size); +} + +void* _DLRealloc(void *p, size_t size) +{ + return rak_mspace_realloc(rakNetFixedHeapMSpace,p,size); +} + +void _DLFree(void *p) +{ + if (p) + rak_mspace_free(rakNetFixedHeapMSpace,p); +} +void* _DLMalloc_Ex (size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return rak_mspace_malloc(rakNetFixedHeapMSpace,size); +} + +void* _DLRealloc_Ex (void *p, size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return rak_mspace_realloc(rakNetFixedHeapMSpace,p,size); +} + +void _DLFree_Ex (void *p, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + if (p) + rak_mspace_free(rakNetFixedHeapMSpace,p); +} + +void UseRaknetFixedHeap(size_t initialCapacity, + void * (*yourMMapFunction) (size_t size), + void * (*yourDirectMMapFunction) (size_t size), + int (*yourMUnmapFunction) (void *p, size_t size)) +{ + SetDLMallocMMap(yourMMapFunction); + SetDLMallocDirectMMap(yourDirectMMapFunction); + SetDLMallocMUnmap(yourMUnmapFunction); + SetMalloc(_DLMalloc); + SetRealloc(_DLRealloc); + SetFree(_DLFree); + SetMalloc_Ex(_DLMalloc_Ex); + SetRealloc_Ex(_DLRealloc_Ex); + SetFree_Ex(_DLFree_Ex); + + rakNetFixedHeapMSpace=rak_create_mspace(initialCapacity, 0); +} +void FreeRakNetFixedHeap(void) +{ + if (rakNetFixedHeapMSpace) + { + rak_destroy_mspace(rakNetFixedHeapMSpace); + rakNetFixedHeapMSpace=0; + } + + SetMalloc(_RakMalloc); + SetRealloc(_RakRealloc); + SetFree(_RakFree); + SetMalloc_Ex(_RakMalloc_Ex); + SetRealloc_Ex(_RakRealloc_Ex); + SetFree_Ex(_RakFree_Ex); +} +#else +void * RakNet::_DLMallocMMap (size_t size) {(void) size; return 0;} +void * RakNet::_DLMallocDirectMMap (size_t size) {(void) size; return 0;} +int RakNet::_DLMallocMUnmap (void *p, size_t size) {(void) size; (void) p; return 0;} +void* _DLMalloc(size_t size) {(void) size; return 0;} +void* _DLRealloc(void *p, size_t size) {(void) p; (void) size; return 0;} +void _DLFree(void *p) {(void) p;} +void* _DLMalloc_Ex (size_t size, const char *file, unsigned int line) {(void) size; (void) file; (void) line; return 0;} +void* _DLRealloc_Ex (void *p, size_t size, const char *file, unsigned int line) {(void) p; (void) size; (void) file; (void) line; return 0;} +void _DLFree_Ex (void *p, const char *file, unsigned int line) {(void) p; (void) file; (void) line;} + +void UseRaknetFixedHeap(size_t initialCapacity, + void * (*yourMMapFunction) (size_t size), + void * (*yourDirectMMapFunction) (size_t size), + int (*yourMUnmapFunction) (void *p, size_t size)) +{ + (void) initialCapacity; + (void) yourMMapFunction; + (void) yourDirectMMapFunction; + (void) yourMUnmapFunction; +} +void FreeRakNetFixedHeap(void) {} +#endif + +#if _USE_RAK_MEMORY_OVERRIDE==1 + + #pragma pop_macro("malloc") + #undef RMO_MALLOC_UNDEF + + + + #pragma pop_macro("realloc") + #undef RMO_REALLOC_UNDEF + + + + #pragma pop_macro("free") + #undef RMO_FREE_UNDEF + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakMemoryOverride.h b/project/lib_projects/raknet/jni/RaknetSources/RakMemoryOverride.h new file mode 100755 index 0000000..57b0de6 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakMemoryOverride.h @@ -0,0 +1,236 @@ +/// \file +/// \brief If _USE_RAK_MEMORY_OVERRIDE is defined, memory allocations go through rakMalloc, rakRealloc, and rakFree +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAK_MEMORY_H +#define __RAK_MEMORY_H + +#include "Export.h" +#include "RakNetDefines.h" +#include + + + + + + + +#include "RakAlloca.h" + +// #if _USE_RAK_MEMORY_OVERRIDE==1 +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RMO_NEW_UNDEF +// #endif +// #endif + + +// These pointers are statically and globally defined in RakMemoryOverride.cpp +// Change them to point to your own allocators if you want. +// Use the functions for a DLL, or just reassign the variable if using source +extern RAK_DLL_EXPORT void * (*rakMalloc) (size_t size); +extern RAK_DLL_EXPORT void * (*rakRealloc) (void *p, size_t size); +extern RAK_DLL_EXPORT void (*rakFree) (void *p); +extern RAK_DLL_EXPORT void * (*rakMalloc_Ex) (size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void * (*rakRealloc_Ex) (void *p, size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void (*rakFree_Ex) (void *p, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void (*notifyOutOfMemory) (const char *file, const long line); +extern RAK_DLL_EXPORT void * (*dlMallocMMap) (size_t size); +extern RAK_DLL_EXPORT void * (*dlMallocDirectMMap) (size_t size); +extern RAK_DLL_EXPORT int (*dlMallocMUnmap) (void* ptr, size_t size); + +// Change to a user defined allocation function +void RAK_DLL_EXPORT SetMalloc( void* (*userFunction)(size_t size) ); +void RAK_DLL_EXPORT SetRealloc( void* (*userFunction)(void *p, size_t size) ); +void RAK_DLL_EXPORT SetFree( void (*userFunction)(void *p) ); +void RAK_DLL_EXPORT SetMalloc_Ex( void* (*userFunction)(size_t size, const char *file, unsigned int line) ); +void RAK_DLL_EXPORT SetRealloc_Ex( void* (*userFunction)(void *p, size_t size, const char *file, unsigned int line) ); +void RAK_DLL_EXPORT SetFree_Ex( void (*userFunction)(void *p, const char *file, unsigned int line) ); +// Change to a user defined out of memory function +void RAK_DLL_EXPORT SetNotifyOutOfMemory( void (*userFunction)(const char *file, const long line) ); +void RAK_DLL_EXPORT SetDLMallocMMap( void* (*userFunction)(size_t size) ); +void RAK_DLL_EXPORT SetDLMallocDirectMMap( void* (*userFunction)(size_t size) ); +void RAK_DLL_EXPORT SetDLMallocMUnmap( int (*userFunction)(void* ptr, size_t size) ); + +extern RAK_DLL_EXPORT void * (*GetMalloc()) (size_t size); +extern RAK_DLL_EXPORT void * (*GetRealloc()) (void *p, size_t size); +extern RAK_DLL_EXPORT void (*GetFree()) (void *p); +extern RAK_DLL_EXPORT void * (*GetMalloc_Ex()) (size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void * (*GetRealloc_Ex()) (void *p, size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void (*GetFree_Ex()) (void *p, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void *(*GetDLMallocMMap())(size_t size); +extern RAK_DLL_EXPORT void *(*GetDLMallocDirectMMap())(size_t size); +extern RAK_DLL_EXPORT int (*GetDLMallocMUnmap())(void* ptr, size_t size); + +namespace RakNet +{ + + template + RAK_DLL_EXPORT Type* OP_NEW(const char *file, unsigned int line) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type; + return t; +#else + (void) file; + (void) line; + return new Type; +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_1(const char *file, unsigned int line, const P1 &p1) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1); + return t; +#else + (void) file; + (void) line; + return new Type(p1); +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_2(const char *file, unsigned int line, const P1 &p1, const P2 &p2) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1, p2); + return t; +#else + (void) file; + (void) line; + return new Type(p1, p2); +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_3(const char *file, unsigned int line, const P1 &p1, const P2 &p2, const P3 &p3) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1, p2, p3); + return t; +#else + (void) file; + (void) line; + return new Type(p1, p2, p3); +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_4(const char *file, unsigned int line, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1, p2, p3, p4); + return t; +#else + (void) file; + (void) line; + return new Type(p1, p2, p3, p4); +#endif + } + + + template + RAK_DLL_EXPORT Type* OP_NEW_ARRAY(const int count, const char *file, unsigned int line) + { + if (count==0) + return 0; + +#if _USE_RAK_MEMORY_OVERRIDE==1 +// Type *t; + char *buffer = (char *) (GetMalloc_Ex())(sizeof(int)+sizeof(Type)*count, file, line); + ((int*)buffer)[0]=count; + for (int i=0; i + RAK_DLL_EXPORT void OP_DELETE(Type *buff, const char *file, unsigned int line) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + if (buff==0) return; + buff->~Type(); + (GetFree_Ex())((char*)buff, file, line ); +#else + (void) file; + (void) line; + delete buff; +#endif + + } + + template + RAK_DLL_EXPORT void OP_DELETE_ARRAY(Type *buff, const char *file, unsigned int line) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + if (buff==0) + return; + + int count = ((int*)((char*)buff-sizeof(int)))[0]; + Type *t; + for (int i=0; i~Type(); + } + (GetFree_Ex())((char*)buff-sizeof(int), file, line ); +#else + (void) file; + (void) line; + delete [] buff; +#endif + + } + + void RAK_DLL_EXPORT * _RakMalloc (size_t size); + void RAK_DLL_EXPORT * _RakRealloc (void *p, size_t size); + void RAK_DLL_EXPORT _RakFree (void *p); + void RAK_DLL_EXPORT * _RakMalloc_Ex (size_t size, const char *file, unsigned int line); + void RAK_DLL_EXPORT * _RakRealloc_Ex (void *p, size_t size, const char *file, unsigned int line); + void RAK_DLL_EXPORT _RakFree_Ex (void *p, const char *file, unsigned int line); + void RAK_DLL_EXPORT * _DLMallocMMap (size_t size); + void RAK_DLL_EXPORT * _DLMallocDirectMMap (size_t size); + int RAK_DLL_EXPORT _DLMallocMUnmap (void *p, size_t size); + +} + +// Call to make RakNet allocate a large block of memory, and do all subsequent allocations in that memory block +// Initial and reallocations will be done through whatever function is pointed to by yourMMapFunction, and yourDirectMMapFunction (default is malloc) +// Allocations will be freed through whatever function is pointed to by yourMUnmapFunction (default free) +void UseRaknetFixedHeap(size_t initialCapacity, + void * (*yourMMapFunction) (size_t size) = RakNet::_DLMallocMMap, + void * (*yourDirectMMapFunction) (size_t size) = RakNet::_DLMallocDirectMMap, + int (*yourMUnmapFunction) (void *p, size_t size) = RakNet::_DLMallocMUnmap); + +// Free memory allocated from UseRaknetFixedHeap +void FreeRakNetFixedHeap(void); + +// #if _USE_RAK_MEMORY_OVERRIDE==1 +// #if defined(RMO_NEW_UNDEF) +// #pragma pop_macro("new") +// #undef RMO_NEW_UNDEF +// #endif +// #endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNet.vcproj b/project/lib_projects/raknet/jni/RaknetSources/RakNet.vcproj new file mode 100755 index 0000000..b8f5f07 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNet.vcproj @@ -0,0 +1,845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetCommandParser.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakNetCommandParser.cpp new file mode 100755 index 0000000..8e156d1 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetCommandParser.cpp @@ -0,0 +1,302 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RakNetCommandParser==1 + +#include "RakNetCommandParser.h" +#include "TransportInterface.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "RakAssert.h" +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(RakNetCommandParser,RakNetCommandParser); + +RakNetCommandParser::RakNetCommandParser() +{ + RegisterCommand(4, "Startup","( unsigned short maxConnections, unsigned short localPort, const char *forceHostAddress );"); + RegisterCommand(0,"InitializeSecurity","();"); + RegisterCommand(0,"DisableSecurity","( void );"); + RegisterCommand(1,"AddToSecurityExceptionList","( const char *ip );"); + RegisterCommand(1,"RemoveFromSecurityExceptionList","( const char *ip );"); + RegisterCommand(1,"IsInSecurityExceptionList","( const char *ip );"); + RegisterCommand(1,"SetMaximumIncomingConnections","( unsigned short numberAllowed );"); + RegisterCommand(0,"GetMaximumIncomingConnections","( void ) const;"); + RegisterCommand(4,"Connect","( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength );"); + RegisterCommand(2,"Disconnect","( unsigned int blockDuration, unsigned char orderingChannel=0 );"); + RegisterCommand(0,"IsActive","( void ) const;"); + RegisterCommand(0,"GetConnectionList","() const;"); + RegisterCommand(3,"CloseConnection","( const SystemAddress target, bool sendDisconnectionNotification, unsigned char orderingChannel=0 );"); + RegisterCommand(2,"IsConnected","( );"); + RegisterCommand(1,"GetIndexFromSystemAddress","( const SystemAddress systemAddress );"); + RegisterCommand(1,"GetSystemAddressFromIndex","( int index );"); + RegisterCommand(2,"AddToBanList","( const char *IP, RakNet::TimeMS milliseconds=0 );"); + RegisterCommand(1,"RemoveFromBanList","( const char *IP );"); + RegisterCommand(0,"ClearBanList","( void );"); + RegisterCommand(1,"IsBanned","( const char *IP );"); + RegisterCommand(1,"Ping1","( const SystemAddress target );"); + RegisterCommand(3,"Ping2","( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections );"); + RegisterCommand(1,"GetAveragePing","( const SystemAddress systemAddress );"); + RegisterCommand(1,"GetLastPing","( const SystemAddress systemAddress ) const;"); + RegisterCommand(1,"GetLowestPing","( const SystemAddress systemAddress ) const;"); + RegisterCommand(1,"SetOccasionalPing","( bool doPing );"); + RegisterCommand(2,"SetOfflinePingResponse","( const char *data, const unsigned int length );"); + RegisterCommand(0,"GetInternalID","( void ) const;"); + RegisterCommand(1,"GetExternalID","( const SystemAddress target ) const;"); + RegisterCommand(2,"SetTimeoutTime","( RakNet::TimeMS timeMS, const SystemAddress target );"); +// RegisterCommand(1,"SetMTUSize","( int size );"); + RegisterCommand(0,"GetMTUSize","( void ) const;"); + RegisterCommand(0,"GetNumberOfAddresses","( void );"); + RegisterCommand(1,"GetLocalIP","( unsigned int index );"); + RegisterCommand(1,"AllowConnectionResponseIPMigration","( bool allow );"); + RegisterCommand(4,"AdvertiseSystem","( const char *host, unsigned short remotePort, const char *data, int dataLength );"); + RegisterCommand(2,"SetIncomingPassword","( const char* passwordData, int passwordDataLength );"); + RegisterCommand(0,"GetIncomingPassword","( void );"); + RegisterCommand(0,"IsNetworkSimulatorActive","( void );"); +} +RakNetCommandParser::~RakNetCommandParser() +{ +} +void RakNetCommandParser::SetRakPeerInterface(RakNet::RakPeerInterface *rakPeer) +{ + peer=rakPeer; +} +bool RakNetCommandParser::OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString) +{ + (void) originalString; + (void) numParameters; + + if (peer==0) + return false; + + if (strcmp(command, "Startup")==0) + { + RakNet::SocketDescriptor socketDescriptor((unsigned short)atoi(parameterList[1]), parameterList[2]); + ReturnResult(peer->Startup((unsigned short)atoi(parameterList[0]), &socketDescriptor, 1), command, transport, systemAddress); + } + else if (strcmp(command, "InitializeSecurity")==0) + { + ReturnResult(peer->InitializeSecurity(parameterList[0],parameterList[1]), command, transport, systemAddress); + } + else if (strcmp(command, "DisableSecurity")==0) + { + peer->DisableSecurity(); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "AddToSecurityExceptionList")==0) + { + peer->AddToSecurityExceptionList(parameterList[1]); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "RemoveFromSecurityExceptionList")==0) + { + peer->RemoveFromSecurityExceptionList(parameterList[1]); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "IsInSecurityExceptionList")==0) + { + ReturnResult(peer->IsInSecurityExceptionList(parameterList[1]),command, transport, systemAddress); + } + else if (strcmp(command, "SetMaximumIncomingConnections")==0) + { + peer->SetMaximumIncomingConnections((unsigned short)atoi(parameterList[0])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetMaximumIncomingConnections")==0) + { + ReturnResult(peer->GetMaximumIncomingConnections(), command, transport, systemAddress); + } + else if (strcmp(command, "Connect")==0) + { + ReturnResult(peer->Connect(parameterList[0], (unsigned short)atoi(parameterList[1]),parameterList[2],atoi(parameterList[3]))==RakNet::CONNECTION_ATTEMPT_STARTED, command, transport, systemAddress); + } + else if (strcmp(command, "Disconnect")==0) + { + peer->Shutdown(atoi(parameterList[0]), (unsigned char)atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "IsActive")==0) + { + ReturnResult(peer->IsActive(), command, transport, systemAddress); + } + else if (strcmp(command, "GetConnectionList")==0) + { + SystemAddress remoteSystems[32]; + unsigned short count=32; + unsigned i; + if (peer->GetConnectionList(remoteSystems, &count)) + { + if (count==0) + { + transport->Send(systemAddress, "GetConnectionList() returned no systems connected.\r\n"); + } + else + { + transport->Send(systemAddress, "GetConnectionList() returned:\r\n"); + for (i=0; i < count; i++) + { + char str1[64]; + remoteSystems[i].ToString(true, str1); + transport->Send(systemAddress, "%i %s\r\n", i, str1); + } + } + } + else + transport->Send(systemAddress, "GetConnectionList() returned false.\r\n"); + } + else if (strcmp(command, "CloseConnection")==0) + { + peer->CloseConnection(SystemAddress(parameterList[0]), atoi(parameterList[1])!=0,(unsigned char)atoi(parameterList[2])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetConnectionState")==0) + { + ReturnResult((int) peer->GetConnectionState(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetIndexFromSystemAddress")==0) + { + ReturnResult(peer->GetIndexFromSystemAddress(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetSystemAddressFromIndex")==0) + { + ReturnResult(peer->GetSystemAddressFromIndex(atoi(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "AddToBanList")==0) + { + peer->AddToBanList(parameterList[0], atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "RemoveFromBanList")==0) + { + peer->RemoveFromBanList(parameterList[0]); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "ClearBanList")==0) + { + peer->ClearBanList(); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "IsBanned")==0) + { + ReturnResult(peer->IsBanned(parameterList[0]), command, transport, systemAddress); + } + else if (strcmp(command, "Ping1")==0) + { + peer->Ping(SystemAddress(parameterList[0])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "Ping2")==0) + { + peer->Ping(parameterList[0], (unsigned short) atoi(parameterList[1]), atoi(parameterList[2])!=0); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetAveragePing")==0) + { + ReturnResult(peer->GetAveragePing(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetLastPing")==0) + { + ReturnResult(peer->GetLastPing(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetLowestPing")==0) + { + ReturnResult(peer->GetLowestPing(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "SetOccasionalPing")==0) + { + peer->SetOccasionalPing(atoi(parameterList[0])!=0); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "SetOfflinePingResponse")==0) + { + peer->SetOfflinePingResponse(parameterList[0], atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetInternalID")==0) + { + ReturnResult(peer->GetInternalID(), command, transport, systemAddress); + } + else if (strcmp(command, "GetExternalID")==0) + { + ReturnResult(peer->GetExternalID(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "SetTimeoutTime")==0) + { + peer->SetTimeoutTime(atoi(parameterList[0]), SystemAddress(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + /* + else if (strcmp(command, "SetMTUSize")==0) + { + ReturnResult(peer->SetMTUSize(atoi(parameterList[0]), UNASSIGNED_SYSTEM_ADDRESS), command, transport, systemAddress); + } + */ + else if (strcmp(command, "GetMTUSize")==0) + { + ReturnResult(peer->GetMTUSize(UNASSIGNED_SYSTEM_ADDRESS), command, transport, systemAddress); + } + else if (strcmp(command, "GetNumberOfAddresses")==0) + { + ReturnResult((int)peer->GetNumberOfAddresses(), command, transport, systemAddress); + } + else if (strcmp(command, "GetLocalIP")==0) + { + ReturnResult((char*) peer->GetLocalIP(atoi(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "AllowConnectionResponseIPMigration")==0) + { + peer->AllowConnectionResponseIPMigration(atoi(parameterList[0])!=0); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "AdvertiseSystem")==0) + { + peer->AdvertiseSystem(parameterList[0], (unsigned short) atoi(parameterList[1]),parameterList[2],atoi(parameterList[3])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "SetIncomingPassword")==0) + { + peer->SetIncomingPassword(parameterList[0], atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetIncomingPassword")==0) + { + char password[256]; + int passwordLength; + peer->GetIncomingPassword(password, &passwordLength); + if (passwordLength) + ReturnResult((char*)password, command, transport, systemAddress); + else + ReturnResult(0, command, transport, systemAddress); + } + + return true; +} +const char *RakNetCommandParser::GetName(void) const +{ + return "RakNet"; +} +void RakNetCommandParser::SendHelp(TransportInterface *transport, const SystemAddress &systemAddress) +{ + if (peer) + { + transport->Send(systemAddress, "The RakNet parser provides mirror functions to RakPeer\r\n"); + transport->Send(systemAddress, "SystemAddresss take two parameters: send .\r\n"); + transport->Send(systemAddress, "For bool, send 1 or 0.\r\n"); + } + else + { + transport->Send(systemAddress, "Parser not active. Call SetRakPeerInterface.\r\n"); + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetCommandParser.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetCommandParser.h new file mode 100755 index 0000000..3b684e4 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetCommandParser.h @@ -0,0 +1,63 @@ +/// \file +/// \brief Contains RakNetCommandParser , used to send commands to an instance of RakPeer +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RakNetCommandParser==1 + +#ifndef __RAKNET_COMMAND_PARSER +#define __RAKNET_COMMAND_PARSER + +#include "CommandParserInterface.h" +#include "Export.h" + +namespace RakNet +{ +class RakPeerInterface; + +/// \brief This allows a console client to call most of the functions in RakPeer +class RAK_DLL_EXPORT RakNetCommandParser : public CommandParserInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RakNetCommandParser) + + RakNetCommandParser(); + ~RakNetCommandParser(); + + /// Given \a command with parameters \a parameterList , do whatever processing you wish. + /// \param[in] command The command to process + /// \param[in] numParameters How many parameters were passed along with the command + /// \param[in] parameterList The list of parameters. parameterList[0] is the first parameter and so on. + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that sent this command. + /// \param[in] originalString The string that was actually sent over the network, in case you want to do your own parsing + bool OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString); + + /// You are responsible for overriding this function and returning a static string, which will identifier your parser. + /// This should return a static string + /// \return The name that you return. + const char *GetName(void) const; + + /// A callback for when you are expected to send a brief description of your parser to \a systemAddress + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that requested help. + void SendHelp(TransportInterface *transport, const SystemAddress &systemAddress); + + /// Records the instance of RakPeer to perform the desired commands on + /// \param[in] rakPeer The RakPeer instance, or a derived class (e.g. RakPeer or RakPeer) + void SetRakPeerInterface(RakNet::RakPeerInterface *rakPeer); +protected: + + /// Which instance of RakPeer we are working on. Set from SetRakPeerInterface() + RakPeerInterface *peer; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetDefines.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetDefines.h new file mode 100755 index 0000000..78822f6 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetDefines.h @@ -0,0 +1,169 @@ +#ifndef __RAKNET_DEFINES_H +#define __RAKNET_DEFINES_H + +// If you want to change these defines, put them in RakNetDefinesOverrides so your changes are not lost when updating RakNet +// The user should not edit this file +#include "RakNetDefinesOverrides.h" + +/// Define __GET_TIME_64BIT to have RakNet::TimeMS use a 64, rather than 32 bit value. A 32 bit value will overflow after about 5 weeks. +/// However, this doubles the bandwidth use for sending times, so don't do it unless you have a reason to. +/// Comment out if you are using the iPod Touch TG. See http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 +/// This must be the same on all systems, or they won't connect +#ifndef __GET_TIME_64BIT +#define __GET_TIME_64BIT 1 +#endif + +// Define _FILE_AND_LINE_ to "",0 if you want to strip out file and line info for memory tracking from the EXE +#ifndef _FILE_AND_LINE_ +#define _FILE_AND_LINE_ __FILE__,__LINE__ +#endif + +/// Define __BITSTREAM_NATIVE_END to NOT support endian swapping in the BitStream class. This is faster and is what you should use +/// unless you actually plan to have different endianness systems connect to each other +/// Enabled by default. +// #define __BITSTREAM_NATIVE_END + +/// Maximum (stack) size to use with _alloca before using new and delete instead. +#ifndef MAX_ALLOCA_STACK_ALLOCATION +#define MAX_ALLOCA_STACK_ALLOCATION 1048576 +#endif + +// Use WaitForSingleObject instead of sleep. +// Defining it plays nicer with other systems, and uses less CPU, but gives worse RakNet performance +// Undefining it uses more CPU time, but is more responsive and faster. +#ifndef _WIN32_WCE +#define USE_WAIT_FOR_MULTIPLE_EVENTS +#endif + +/// Uncomment to use RakMemoryOverride for custom memory tracking +/// See RakMemoryOverride.h. +#ifndef _USE_RAK_MEMORY_OVERRIDE +#define _USE_RAK_MEMORY_OVERRIDE 0 +#endif + +/// If defined, OpenSSL is enabled for the class TCPInterface +/// This is necessary to use the SendEmail class with Google POP servers +/// Note that OpenSSL carries its own license restrictions that you should be aware of. If you don't agree, don't enable this define +/// This also requires that you enable header search paths to DependentExtensions\openssl-0.9.8g +// #define OPEN_SSL_CLIENT_SUPPORT +#ifndef OPEN_SSL_CLIENT_SUPPORT +#define OPEN_SSL_CLIENT_SUPPORT 0 +#endif + +/// Threshold at which to do a malloc / free rather than pushing data onto a fixed stack for the bitstream class +/// Arbitrary size, just picking something likely to be larger than most packets +#ifndef BITSTREAM_STACK_ALLOCATION_SIZE +#define BITSTREAM_STACK_ALLOCATION_SIZE 256 +#endif + +// Redefine if you want to disable or change the target for debug RAKNET_DEBUG_PRINTF +#ifndef RAKNET_DEBUG_PRINTF +#define RAKNET_DEBUG_PRINTF printf +#endif + +// Maximum number of local IP addresses supported +#ifndef MAXIMUM_NUMBER_OF_INTERNAL_IDS +#define MAXIMUM_NUMBER_OF_INTERNAL_IDS 10 +#endif + +#ifndef RakAssert + + + + +#if defined(_DEBUG) +#define RakAssert(x) assert(x); +#else +#define RakAssert(x) +#endif + +#endif + +/// This controls the amount of memory used per connection. +/// This many datagrams are tracked by datagramNumber. If more than this many datagrams are sent, then an ack for an older datagram would be ignored +/// This results in an unnecessary resend in that case +#ifndef DATAGRAM_MESSAGE_ID_ARRAY_LENGTH +#define DATAGRAM_MESSAGE_ID_ARRAY_LENGTH 512 +#endif + +/// This is the maximum number of reliable user messages that can be on the wire at a time +/// If this is too low, then high ping connections with a large throughput will be underutilized +/// This will be evident because RakNetStatistics::messagesInSend buffer will increase over time, yet at the same time the outgoing bandwidth per second is less than your connection supports +#ifndef RESEND_BUFFER_ARRAY_LENGTH +#define RESEND_BUFFER_ARRAY_LENGTH 512 +#define RESEND_BUFFER_ARRAY_MASK 511 +#endif + +/// Uncomment if you want to link in the DLMalloc library to use with RakMemoryOverride +// #define _LINK_DL_MALLOC + +#ifndef GET_TIME_SPIKE_LIMIT +/// Workaround for http://support.microsoft.com/kb/274323 +/// If two calls between RakNet::GetTime() happen farther apart than this time in microseconds, this delta will be returned instead +/// Note: This will cause ID_TIMESTAMP to be temporarily inaccurate if you set a breakpoint that pauses the UpdateNetworkLoop() thread in RakPeer +/// Define in RakNetDefinesOverrides.h to enable (non-zero) or disable (0) +#define GET_TIME_SPIKE_LIMIT 0 +#endif + +// Use sliding window congestion control instead of ping based congestion control +#ifndef USE_SLIDING_WINDOW_CONGESTION_CONTROL +#define USE_SLIDING_WINDOW_CONGESTION_CONTROL 1 +#endif + +// When a large message is arriving, preallocate the memory for the entire block +// This results in large messages not taking up time to reassembly with memcpy, but is vulnerable to attackers causing the host to run out of memory +#ifndef PREALLOCATE_LARGE_MESSAGES +#define PREALLOCATE_LARGE_MESSAGES 0 +#endif + +#ifndef RAKNET_SUPPORT_IPV6 +#define RAKNET_SUPPORT_IPV6 0 +#endif + + + + + + + + + + + +#ifndef RAKSTRING_TYPE +#if defined(_UNICODE) +#define RAKSTRING_TYPE RakWString +#define RAKSTRING_TYPE_IS_UNICODE 1 +#else +#define RAKSTRING_TYPE RakString +#define RAKSTRING_TYPE_IS_UNICODE 0 +#endif +#endif + +#ifndef RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS +#define RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS 32 +#endif + +#ifndef RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH +#define RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH 32 +#endif + +#ifndef XBOX_BYPASS_SECURITY +#define XBOX_BYPASS_SECURITY 1 +#endif + +// Controls how many allocations occur at once for the memory pool of incoming datagrams waiting to be transferred between the recvfrom thread and the main update thread +// Has large effect on memory usage, per instance of RakPeer. Approximately MAXIMUM_MTU_SIZE*BUFFERED_PACKETS_PAGE_SIZE bytes, once after calling RakPeer::Startup() +#ifndef BUFFERED_PACKETS_PAGE_SIZE +#define BUFFERED_PACKETS_PAGE_SIZE 8 +#endif + +// Controls how many allocations occur at once for the memory pool of incoming or outgoing datagrams. +// Has small effect on memory usage per connection. Uses about 256 bytes*INTERNAL_PACKET_PAGE_SIZE per connection +#ifndef INTERNAL_PACKET_PAGE_SIZE +#define INTERNAL_PACKET_PAGE_SIZE 8 +#endif + +//#define USE_THREADED_SEND + +#endif // __RAKNET_DEFINES_H diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetDefinesOverrides.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetDefinesOverrides.h new file mode 100755 index 0000000..7613ea2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetDefinesOverrides.h @@ -0,0 +1,2 @@ +// USER EDITABLE FILE + diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetSmartPtr.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetSmartPtr.h new file mode 100755 index 0000000..fb9b9d8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetSmartPtr.h @@ -0,0 +1,173 @@ +#ifndef __RAKNET_SMART_PTR_H +#define __RAKNET_SMART_PTR_H + +// From http://www.codeproject.com/KB/cpp/SmartPointers.aspx +// with bugs fixed + +#include "RakMemoryOverride.h" +#include "Export.h" + +//static int allocCount=0; +//static int deallocCount=0; + +namespace RakNet +{ + +class RAK_DLL_EXPORT ReferenceCounter +{ +private: + int refCount; + +public: + ReferenceCounter() {refCount=0;} + ~ReferenceCounter() {} + void AddRef() {refCount++;} + int Release() {return --refCount;} + int GetRefCount(void) const {return refCount;} +}; + +template < typename T > class RAK_DLL_EXPORT RakNetSmartPtr +{ +private: + T* ptr; // pointer + ReferenceCounter* reference; // Reference refCount + +public: + RakNetSmartPtr() : ptr(0), reference(0) + { + // Do not allocate by default, wasteful if we just have a list of preallocated and unassigend smart pointers + } + + RakNetSmartPtr(T* pValue) : ptr(pValue) + { + reference = RakNet::OP_NEW(_FILE_AND_LINE_); + reference->AddRef(); + +// allocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + + RakNetSmartPtr(const RakNetSmartPtr& sp) : ptr(sp.ptr), reference(sp.reference) + { + if (reference) + reference->AddRef(); + } + + ~RakNetSmartPtr() + { + if(reference && reference->Release() == 0) + { + RakNet::OP_DELETE(ptr, _FILE_AND_LINE_); + RakNet::OP_DELETE(reference, _FILE_AND_LINE_); + +// deallocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + } + + bool IsNull(void) const + { + return ptr==0; + } + + void SetNull(void) + { + if(reference && reference->Release() == 0) + { + RakNet::OP_DELETE(ptr, _FILE_AND_LINE_); + RakNet::OP_DELETE(reference, _FILE_AND_LINE_); + +// deallocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + ptr=0; + reference=0; + } + + bool IsUnique(void) const + { + return reference->GetRefCount()==1; + } + + // Allow you to change the values of the internal contents of the pointer, without changing what is pointed to by other instances of the smart pointer + void Clone(bool copyContents) + { + if (IsUnique()==false) + { + reference->Release(); + + reference = RakNet::OP_NEW(_FILE_AND_LINE_); + reference->AddRef(); + T* oldPtr=ptr; + ptr=RakNet::OP_NEW(_FILE_AND_LINE_); + if (copyContents) + *ptr=*oldPtr; + } + } + + int GetRefCount(void) const + { + return reference->GetRefCount(); + } + + T& operator* () + { + return *ptr; + } + + const T& operator* () const + { + return *ptr; + } + + T* operator-> () + { + return ptr; + } + + const T* operator-> () const + { + return ptr; + } + + bool operator == (const RakNetSmartPtr& sp) + { + return ptr == sp.ptr; + } + bool operator<( const RakNetSmartPtr &right ) {return ptr < right.ptr;} + bool operator>( const RakNetSmartPtr &right ) {return ptr > right.ptr;} + + bool operator != (const RakNetSmartPtr& sp) + { + return ptr != sp.ptr; + } + + RakNetSmartPtr& operator = (const RakNetSmartPtr& sp) + { + // Assignment operator + + if (this != &sp) // Avoid self assignment + { + if(reference && reference->Release() == 0) + { + RakNet::OP_DELETE(ptr, _FILE_AND_LINE_); + RakNet::OP_DELETE(reference, _FILE_AND_LINE_); + +// deallocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + + ptr = sp.ptr; + reference = sp.reference; + if (reference) + reference->AddRef(); + } + return *this; + } + + +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetSocket.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakNetSocket.cpp new file mode 100755 index 0000000..a3903b1 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetSocket.cpp @@ -0,0 +1,25 @@ +#include "RakNetSocket.h" +#include "SocketIncludes.h" +#include "SocketDefines.h" + +using namespace RakNet; + +RakNetSocket::RakNetSocket() { + s = (unsigned int)-1; +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + recvEvent=INVALID_HANDLE_VALUE; +#endif +} +RakNetSocket::~RakNetSocket() +{ + if ((SOCKET)s != (SOCKET)-1) + closesocket__(s); + +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + if (recvEvent!=INVALID_HANDLE_VALUE) + { + CloseHandle( recvEvent ); + recvEvent = INVALID_HANDLE_VALUE; + } +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetSocket.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetSocket.h new file mode 100755 index 0000000..49c9557 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetSocket.h @@ -0,0 +1,38 @@ +#ifndef __RAKNET_SOCKET_H +#define __RAKNET_SOCKET_H + +#include "RakNetTypes.h" +#include "RakNetDefines.h" +#include "Export.h" + +namespace RakNet +{ + +struct RAK_DLL_EXPORT RakNetSocket +{ + RakNetSocket(); + ~RakNetSocket(); + // SocketIncludes.h includes Windows.h, which messes up a lot of compiles + // SOCKET s; + unsigned int s; + unsigned int userConnectionSocketIndex; + SystemAddress boundAddress; + unsigned short socketFamily; + +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + void* recvEvent; +#endif + + + + + + + unsigned short remotePortRakNetWasStartedOn_PS3_PSP2; + + unsigned int extraSocketOptions; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetStatistics.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakNetStatistics.cpp new file mode 100755 index 0000000..eba7885 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetStatistics.cpp @@ -0,0 +1,148 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "RakNetStatistics.h" +#include // sprintf +#include "GetTime.h" +#include "RakString.h" + +using namespace RakNet; + +// Verbosity level currently supports 0 (low), 1 (medium), 2 (high) +// Buffer must be hold enough to hold the output string. See the source to get an idea of how many bytes will be output +void RAK_DLL_EXPORT RakNet::StatisticsToString( RakNetStatistics *s, char *buffer, int verbosityLevel ) +{ + if ( s == 0 ) + { + sprintf( buffer, "stats is a NULL pointer in statsToString\n" ); + return ; + } + + if (verbosityLevel==0) + { + sprintf(buffer, + "Bytes per second sent %llu\n" + "Bytes per second received %llu\n" + "Current packetloss %.1f%%\n", + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_RECEIVED], + s->packetlossLastSecond*100.0f + ); + } + else if (verbosityLevel==1) + { + sprintf(buffer, + "Actual bytes per second sent %llu\n" + "Actual bytes per second received %llu\n" + "Message bytes per second pushed %llu\n" + "Total actual bytes sent %llu\n" + "Total actual bytes received %llu\n" + "Total message bytes pushed %llu\n" + "Current packetloss %.1f%%\n" + "Average packetloss %.1f%%\n" + "Elapsed connection time in seconds %llu\n", + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_PUSHED], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_SENT], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_PUSHED], + s->packetlossLastSecond*100.0f, + s->packetlossTotal*100.0f, + (long long unsigned int) (uint64_t)((RakNet::GetTimeUS()-s->connectionStartTime)/1000000) + ); + + if (s->BPSLimitByCongestionControl!=0) + { + char buff2[128]; + sprintf(buff2, + "Send capacity %llu bytes per second (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByCongestionControl, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByCongestionControl + ); + strcat(buffer,buff2); + } + if (s->BPSLimitByOutgoingBandwidthLimit!=0) + { + char buff2[128]; + sprintf(buff2, + "Send limit %llu (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByOutgoingBandwidthLimit, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByOutgoingBandwidthLimit + ); + strcat(buffer,buff2); + } + } + else + { + sprintf(buffer, + "Actual bytes per second sent %llu\n" + "Actual bytes per second received %llu\n" + "Message bytes per second sent %llu\n" + "Message bytes per second resent %llu\n" + "Message bytes per second pushed %llu\n" + "Message bytes per second processed %llu\n" + "Message bytes per second ignored %llu\n" + "Total bytes sent %llu\n" + "Total bytes received %llu\n" + "Total message bytes sent %llu\n" + "Total message bytes resent %llu\n" + "Total message bytes pushed %llu\n" + "Total message bytes received %llu\n" + "Total message bytes ignored %llu\n" + "Messages in send buffer, by priority %i,%i,%i,%i\n" + "Bytes in send buffer, by priority %i,%i,%i,%i\n" + "Messages in resend buffer %i\n" + "Bytes in resend buffer %llu\n" + "Current packetloss %.1f%%\n" + "Average packetloss %.1f%%\n" + "Elapsed connection time in seconds %llu\n", + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_PUSHED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_RECEIVED_PROCESSED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_RECEIVED_IGNORED], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_SENT], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_SENT], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_RESENT], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_PUSHED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_RECEIVED_PROCESSED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_RECEIVED_IGNORED], + s->messageInSendBuffer[IMMEDIATE_PRIORITY],s->messageInSendBuffer[HIGH_PRIORITY],s->messageInSendBuffer[MEDIUM_PRIORITY],s->messageInSendBuffer[LOW_PRIORITY], + (unsigned int) s->bytesInSendBuffer[IMMEDIATE_PRIORITY],(unsigned int) s->bytesInSendBuffer[HIGH_PRIORITY],(unsigned int) s->bytesInSendBuffer[MEDIUM_PRIORITY],(unsigned int) s->bytesInSendBuffer[LOW_PRIORITY], + s->messagesInResendBuffer, + (long long unsigned int) s->bytesInResendBuffer, + s->packetlossLastSecond*100.0f, + s->packetlossTotal*100.0f, + (long long unsigned int) (uint64_t)((RakNet::GetTimeUS()-s->connectionStartTime)/1000000) + ); + + if (s->BPSLimitByCongestionControl!=0) + { + char buff2[128]; + sprintf(buff2, + "Send capacity %llu bytes per second (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByCongestionControl, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByCongestionControl + ); + strcat(buffer,buff2); + } + if (s->BPSLimitByOutgoingBandwidthLimit!=0) + { + char buff2[128]; + sprintf(buff2, + "Send limit %llu (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByOutgoingBandwidthLimit, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByOutgoingBandwidthLimit + ); + strcat(buffer,buff2); + } + } +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetStatistics.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetStatistics.h new file mode 100755 index 0000000..4f9cd6b --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetStatistics.h @@ -0,0 +1,126 @@ +/// \file +/// \brief A structure that holds all statistical data returned by RakNet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + + +#ifndef __RAK_NET_STATISTICS_H +#define __RAK_NET_STATISTICS_H + +#include "PacketPriority.h" +#include "Export.h" +#include "RakNetTypes.h" + +namespace RakNet +{ + +enum RNSPerSecondMetrics +{ + /// How many bytes per pushed via a call to RakPeerInterface::Send() + USER_MESSAGE_BYTES_PUSHED, + + /// How many user message bytes were sent via a call to RakPeerInterface::Send(). This is less than or equal to USER_MESSAGE_BYTES_PUSHED. + /// A message would be pushed, but not yet sent, due to congestion control + USER_MESSAGE_BYTES_SENT, + + /// How many user message bytes were resent. A message is resent if it is marked as reliable, and either the message didn't arrive or the message ack didn't arrive. + USER_MESSAGE_BYTES_RESENT, + + /// How many user message bytes were received, and processed successfully. + USER_MESSAGE_BYTES_RECEIVED_PROCESSED, + + /// How many user message bytes were received, but ignored due to data format errors. This will usually be 0. + USER_MESSAGE_BYTES_RECEIVED_IGNORED, + + /// How many actual bytes were sent, including per-message and per-datagram overhead, and reliable message acks + ACTUAL_BYTES_SENT, + + /// How many actual bytes were received, including overead and acks. + ACTUAL_BYTES_RECEIVED, + + /// \internal + RNS_PER_SECOND_METRICS_COUNT +}; + +/// \brief Network Statisics Usage +/// +/// Store Statistics information related to network usage +struct RAK_DLL_EXPORT RakNetStatistics +{ + /// For each type in RNSPerSecondMetrics, what is the value over the last 1 second? + uint64_t valueOverLastSecond[RNS_PER_SECOND_METRICS_COUNT]; + + /// For each type in RNSPerSecondMetrics, what is the total value over the lifetime of the connection? + uint64_t runningTotal[RNS_PER_SECOND_METRICS_COUNT]; + + /// When did the connection start? + /// \sa RakNet::GetTimeUS() + RakNet::TimeUS connectionStartTime; + + /// Is our current send rate throttled by congestion control? + /// This value should be true if you send more data per second than your bandwidth capacity + bool isLimitedByCongestionControl; + + /// If \a isLimitedByCongestionControl is true, what is the limit, in bytes per second? + uint64_t BPSLimitByCongestionControl; + + /// Is our current send rate throttled by a call to RakPeer::SetPerConnectionOutgoingBandwidthLimit()? + bool isLimitedByOutgoingBandwidthLimit; + + /// If \a isLimitedByOutgoingBandwidthLimit is true, what is the limit, in bytes per second? + uint64_t BPSLimitByOutgoingBandwidthLimit; + + /// For each priority level, how many messages are waiting to be sent out? + unsigned int messageInSendBuffer[NUMBER_OF_PRIORITIES]; + + /// For each priority level, how many bytes are waiting to be sent out? + double bytesInSendBuffer[NUMBER_OF_PRIORITIES]; + + /// How many messages are waiting in the resend buffer? This includes messages waiting for an ack, so should normally be a small value + /// If the value is rising over time, you are exceeding the bandwidth capacity. See BPSLimitByCongestionControl + unsigned int messagesInResendBuffer; + + /// How many bytes are waiting in the resend buffer. See also messagesInResendBuffer + uint64_t bytesInResendBuffer; + + /// Over the last second, what was our packetloss? This number will range from 0.0 (for none) to 1.0 (for 100%) + float packetlossLastSecond; + + /// What is the average total packetloss over the lifetime of the connection? + float packetlossTotal; + + RakNetStatistics& operator +=(const RakNetStatistics& other) + { + unsigned i; + for (i=0; i < NUMBER_OF_PRIORITIES; i++) + { + messageInSendBuffer[i]+=other.messageInSendBuffer[i]; + bytesInSendBuffer[i]+=other.bytesInSendBuffer[i]; + } + + for (i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + valueOverLastSecond[i]+=other.valueOverLastSecond[i]; + runningTotal[i]+=other.runningTotal[i]; + } + + return *this; + } +}; + +/// Verbosity level currently supports 0 (low), 1 (medium), 2 (high) +/// \param[in] s The Statistical information to format out +/// \param[in] buffer The buffer containing a formated report +/// \param[in] verbosityLevel +/// 0 low +/// 1 medium +/// 2 high +/// 3 debugging congestion control +void RAK_DLL_EXPORT StatisticsToString( RakNetStatistics *s, char *buffer, int verbosityLevel ); + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetTime.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetTime.h new file mode 100755 index 0000000..f9e7cd9 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetTime.h @@ -0,0 +1,23 @@ +#ifndef __RAKNET_TIME_H +#define __RAKNET_TIME_H + +#include "NativeTypes.h" +#include "RakNetDefines.h" + +namespace RakNet { + +// Define __GET_TIME_64BIT if you want to use large types for GetTime (takes more bandwidth when you transmit time though!) +// You would want to do this if your system is going to run long enough to overflow the millisecond counter (over a month) +#if __GET_TIME_64BIT==1 +typedef uint64_t Time; +typedef uint32_t TimeMS; +typedef uint64_t TimeUS; +#else +typedef uint32_t Time; +typedef uint32_t TimeMS; +typedef uint64_t TimeUS; +#endif + +}; // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetTransport2.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakNetTransport2.cpp new file mode 100755 index 0000000..514318f --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetTransport2.cpp @@ -0,0 +1,128 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 + +#include "RakNetTransport2.h" + +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include +#include +#include +#include "LinuxStrings.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(RakNetTransport2,RakNetTransport2); + +RakNetTransport2::RakNetTransport2() +{ +} +RakNetTransport2::~RakNetTransport2() +{ + Stop(); +} +bool RakNetTransport2::Start(unsigned short port, bool serverMode) +{ + (void) port; + (void) serverMode; + return true; +} +void RakNetTransport2::Stop(void) +{ + newConnections.Clear(_FILE_AND_LINE_); + lostConnections.Clear(_FILE_AND_LINE_); + for (unsigned int i=0; i < packetQueue.Size(); i++) + { + rakFree_Ex(packetQueue[i]->data,_FILE_AND_LINE_); + RakNet::OP_DELETE(packetQueue[i],_FILE_AND_LINE_); + } + packetQueue.Clear(_FILE_AND_LINE_); +} +void RakNetTransport2::Send( SystemAddress systemAddress, const char *data, ... ) +{ + if (data==0 || data[0]==0) return; + + char text[REMOTE_MAX_TEXT_INPUT]; + va_list ap; + va_start(ap, data); + _vsnprintf(text, REMOTE_MAX_TEXT_INPUT, data, ap); + va_end(ap); + text[REMOTE_MAX_TEXT_INPUT-1]=0; + + RakNet::BitStream str; + str.Write((MessageID)ID_TRANSPORT_STRING); + str.Write(text, (int) strlen(text)); + str.Write((unsigned char) 0); // Null terminate the string + rakPeerInterface->Send(&str, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, systemAddress, (systemAddress==UNASSIGNED_SYSTEM_ADDRESS)!=0); +} +void RakNetTransport2::CloseConnection( SystemAddress systemAddress ) +{ + rakPeerInterface->CloseConnection(systemAddress, true, 0); +} +Packet* RakNetTransport2::Receive( void ) +{ + if (packetQueue.Size()==0) + return 0; + return packetQueue.Pop(); +} +SystemAddress RakNetTransport2::HasNewIncomingConnection(void) +{ + if (newConnections.Size()) + return newConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress RakNetTransport2::HasLostConnection(void) +{ + if (lostConnections.Size()) + return lostConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +void RakNetTransport2::DeallocatePacket( Packet *packet ) +{ + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(packet, _FILE_AND_LINE_ ); +} +PluginReceiveResult RakNetTransport2::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_TRANSPORT_STRING: + { + if (packet->length==sizeof(MessageID)) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + Packet *p = RakNet::OP_NEW(_FILE_AND_LINE_); + *p=*packet; + p->bitSize-=8; + p->length--; + p->data=(unsigned char*) rakMalloc_Ex(p->length,_FILE_AND_LINE_); + memcpy(p->data, packet->data+1, p->length); + packetQueue.Push(p, _FILE_AND_LINE_ ); + + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void RakNetTransport2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) rakNetGUID; + (void) lostConnectionReason; + lostConnections.Push(systemAddress, _FILE_AND_LINE_ ); +} +void RakNetTransport2::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) rakNetGUID; + (void) isIncoming; + newConnections.Push(systemAddress, _FILE_AND_LINE_ ); +} +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetTransport2.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetTransport2.h new file mode 100755 index 0000000..a8b522d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetTransport2.h @@ -0,0 +1,102 @@ +/// \file +/// \brief Contains RakNetTransportCommandParser and RakNetTransport used to provide a secure console connection. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 + +#ifndef __RAKNET_TRANSPORT_2 +#define __RAKNET_TRANSPORT_2 + +#include "TransportInterface.h" +#include "DS_Queue.h" +#include "CommandParserInterface.h" +#include "PluginInterface2.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class BitStream; +class RakPeerInterface; +class RakNetTransport; + +/// \defgroup RAKNET_TRANSPORT_GROUP RakNetTransport +/// \brief UDP based transport implementation for the ConsoleServer +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Use RakNetTransport if you need a secure connection between the client and the console server. +/// \details RakNetTransport automatically initializes security for the system. Use the project CommandConsoleClient to connect +/// To the ConsoleServer if you use RakNetTransport +/// \ingroup RAKNET_TRANSPORT_GROUP +class RAK_DLL_EXPORT RakNetTransport2 : public TransportInterface, public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RakNetTransport2) + + RakNetTransport2(); + virtual ~RakNetTransport2(); + + /// Start the transport provider on the indicated port. + /// \param[in] port The port to start the transport provider on + /// \param[in] serverMode If true, you should allow incoming connections (I don't actually use this anywhere) + /// \return Return true on success, false on failure. + bool Start(unsigned short port, bool serverMode); + + /// Stop the transport provider. You can clear memory and shutdown threads here. + void Stop(void); + + /// Send a null-terminated string to \a systemAddress + /// If your transport method requires particular formatting of the outgoing data (e.g. you don't just send strings) you can do it here + /// and parse it out in Receive(). + /// \param[in] systemAddress The player to send the string to + /// \param[in] data format specifier - same as RAKNET_DEBUG_PRINTF + /// \param[in] ... format specification arguments - same as RAKNET_DEBUG_PRINTF + void Send( SystemAddress systemAddress, const char *data, ... ); + + /// Disconnect \a systemAddress . The binary address and port defines the SystemAddress structure. + /// \param[in] systemAddress The player/address to disconnect + void CloseConnection( SystemAddress systemAddress ); + + /// Return a string. The string should be allocated and written to Packet::data . + /// The byte length should be written to Packet::length . The player/address should be written to Packet::systemAddress + /// If your transport protocol adds special formatting to the data stream you should parse it out before returning it in the packet + /// and thus only return a string in Packet::data + /// \return The packet structure containing the result of Receive, or 0 if no data is available + Packet* Receive( void ); + + /// Deallocate the Packet structure returned by Receive + /// \param[in] The packet to deallocate + void DeallocatePacket( Packet *packet ); + + /// If a new system connects to you, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + SystemAddress HasNewIncomingConnection(void); + + /// If a system loses the connection, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + SystemAddress HasLostConnection(void); + + virtual CommandParserInterface* GetCommandParser(void) {return 0;} + + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); +protected: + DataStructures::Queue newConnections, lostConnections; + DataStructures::Queue packetQueue; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetTypes.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakNetTypes.cpp new file mode 100755 index 0000000..d39af87 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetTypes.cpp @@ -0,0 +1,725 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "RakNetTypes.h" +#include "RakAssert.h" +#include +#include +#include "WindowsIncludes.h" +#include "WSAStartupSingleton.h" +#include "SocketDefines.h" + + +#if defined(_WIN32) +// extern __int64 _strtoui64(const char*, char**, int); // needed for Code::Blocks. Does not compile on Visual Studio 2010 +// IP_DONTFRAGMENT is different between winsock 1 and winsock 2. Therefore, Winsock2.h must be linked againt Ws2_32.lib +// winsock.h must be linked against WSock32.lib. If these two are mixed up the flag won't work correctly +#include + +#else +#include +#include +#include +#endif + +#include // strncasecmp +#include "Itoa.h" +#include "SocketLayer.h" +#include "SuperFastHash.h" +#include + +using namespace RakNet; + +const char *IPV6_LOOPBACK="::1"; +const char *IPV4_LOOPBACK="127.0.0.1"; + +AddressOrGUID::AddressOrGUID( Packet *packet ) +{ + rakNetGuid=packet->guid; + systemAddress=packet->systemAddress; +} + +unsigned long AddressOrGUID::ToInteger( const AddressOrGUID &aog ) +{ + if (aog.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return RakNetGUID::ToUint32(aog.rakNetGuid); + return SystemAddress::ToInteger(aog.systemAddress); +} +const char *AddressOrGUID::ToString(bool writePort) const +{ + if (rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return rakNetGuid.ToString(); + return systemAddress.ToString(writePort); +} +void AddressOrGUID::ToString(bool writePort, char *dest) const +{ + if (rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return rakNetGuid.ToString(dest); + return systemAddress.ToString(writePort,dest); +} +bool RakNet::NonNumericHostString( const char *host ) +{ + if ( host[ 0 ] >= '0' && host[ 0 ] <= '9' ) + return false; + + if ( (host[ 0 ] == '-') && ( host[ 1 ] >= '0' && host[ 1 ] <= '9' ) ) + return false; + + if ( strstr(host,":") ) + return false; + + return true; +} + +SocketDescriptor::SocketDescriptor() {port=0; hostAddress[0]=0; remotePortRakNetWasStartedOn_PS3_PSP2=0; extraSocketOptions=0; socketFamily=AF_INET;} +SocketDescriptor::SocketDescriptor(unsigned short _port, const char *_hostAddress) +{ + remotePortRakNetWasStartedOn_PS3_PSP2=0; + port=_port; + if (_hostAddress) + strcpy(hostAddress, _hostAddress); + else + hostAddress[0]=0; + extraSocketOptions=0; + socketFamily=AF_INET; +} + +// Defaults to not in peer to peer mode for NetworkIDs. This only sends the localSystemAddress portion in the BitStream class +// This is what you want for client/server, where the server assigns all NetworkIDs and it is unnecessary to transmit the full structure. +// For peer to peer, this will transmit the systemAddress of the system that created the object in addition to localSystemAddress. This allows +// Any system to create unique ids locally. +// All systems must use the same value for this variable. +//bool RAK_DLL_EXPORT NetworkID::peerToPeerMode=false; + +SystemAddress& SystemAddress::operator = ( const SystemAddress& input ) +{ + memcpy(&address, &input.address, sizeof(address)); + systemIndex = input.systemIndex; + debugPort = input.debugPort; + return *this; +} +bool SystemAddress::EqualsExcludingPort( const SystemAddress& right ) const +{ + return (address.addr4.sin_family==AF_INET && address.addr4.sin_addr.s_addr==right.address.addr4.sin_addr.s_addr) +#if RAKNET_SUPPORT_IPV6==1 + || (address.addr4.sin_family==AF_INET6 && memcmp(address.addr6.sin6_addr.s6_addr, right.address.addr6.sin6_addr.s6_addr, sizeof(address.addr6.sin6_addr.s6_addr))==0) +#endif + ; +} +unsigned short SystemAddress::GetPort(void) const +{ + return ntohs(address.addr4.sin_port); +} +unsigned short SystemAddress::GetPortNetworkOrder(void) const +{ + return address.addr4.sin_port; +} +void SystemAddress::SetPort(unsigned short s) +{ + address.addr4.sin_port=htons(s); + debugPort=s; +} +void SystemAddress::SetPortNetworkOrder(unsigned short s) +{ + address.addr4.sin_port=s; + debugPort=ntohs(s); +} +bool SystemAddress::operator==( const SystemAddress& right ) const +{ + return address.addr4.sin_port == right.address.addr4.sin_port && EqualsExcludingPort(right); +} + +bool SystemAddress::operator!=( const SystemAddress& right ) const +{ + return (*this==right)==false; +} + +bool SystemAddress::operator>( const SystemAddress& right ) const +{ + if (address.addr4.sin_port == right.address.addr4.sin_port) + { +#if RAKNET_SUPPORT_IPV6==1 + if (address.addr4.sin_family==AF_INET) + return address.addr4.sin_addr.s_addr>right.address.addr4.sin_addr.s_addr; + return memcmp(address.addr6.sin6_addr.s6_addr, right.address.addr6.sin6_addr.s6_addr, sizeof(address.addr6.sin6_addr.s6_addr))>0; +#else + return address.addr4.sin_addr.s_addr>right.address.addr4.sin_addr.s_addr; +#endif + } + return address.addr4.sin_port>right.address.addr4.sin_port; +} + +bool SystemAddress::operator<( const SystemAddress& right ) const +{ + if (address.addr4.sin_port == right.address.addr4.sin_port) + { +#if RAKNET_SUPPORT_IPV6==1 + if (address.addr4.sin_family==AF_INET) + return address.addr4.sin_addr.s_addr0; +#else + return address.addr4.sin_addr.s_addr'9')) + break; + IPPart[index]=str[index]; + } + IPPart[index]=0; + portPart[0]=0; + if (str[index] && str[index+1]) + { + index++; + for (portIndex=0; portIndex<10 && str[index] && index < 22+10; index++, portIndex++) + { + if (str[index]<'0' || str[index]>'9') + break; + + portPart[portIndex]=str[index]; + } + portPart[portIndex]=0; + } + + + + + + + + + + + + + + if (IPPart[0]) + { + + + + address.addr4.sin_addr.s_addr=inet_addr__(IPPart); + + } + + + if (portPart[0]) + { + address.addr4.sin_port=htons((unsigned short) atoi(portPart)); + debugPort=ntohs(address.addr4.sin_port); + } + //#endif + } +} + +bool SystemAddress::FromString(const char *str, char portDelineator, int ipVersion) +{ +#if RAKNET_SUPPORT_IPV6!=1 + (void) ipVersion; + SetBinaryAddress(str,portDelineator); + return true; +#else + if (str==0) + { + memset(&address,0,sizeof(address)); + address.addr4.sin_family=AF_INET; + return true; + } +#if RAKNET_SUPPORT_IPV6==1 + char ipPart[INET6_ADDRSTRLEN]; +#else + char ipPart[INET_ADDRSTRLEN]; +#endif + char portPart[32]; + int i=0,j; + + // TODO - what about 255.255.255.255? + if (ipVersion==4 && strcmp(str, IPV6_LOOPBACK)==0) + { + strcpy(ipPart,IPV4_LOOPBACK); + } + else if (ipVersion==6 && strcmp(str, IPV4_LOOPBACK)==0) + { + address.addr4.sin_family=AF_INET6; + strcpy(ipPart,IPV6_LOOPBACK); + } + else if (NonNumericHostString(str)==false) + { + for (; i < sizeof(ipPart) && str[i]!=0 && str[i]!=portDelineator; i++) + { + if ((str[i]<'0' || str[i]>'9') && (str[i]<'a' || str[i]>'f') && (str[i]<'A' || str[i]>'F') && str[i]!='.' && str[i]!=':' && str[i]!='%' && str[i]!='-' && str[i]!='/') + break; + + ipPart[i]=str[i]; + } + ipPart[i]=0; + } + else + { + strncpy(ipPart,str,sizeof(ipPart)); + ipPart[sizeof(ipPart)-1]=0; + } + + j=0; + if (str[i]==portDelineator && portDelineator!=0) + { + i++; + for (; j < sizeof(portPart) && str[i]!=0; i++, j++) + { + portPart[j]=str[i]; + } + } + portPart[j]=0; + + + + + + + + + + + // needed for getaddrinfo + WSAStartupSingleton::AddRef(); + + // This could be a domain, or a printable address such as "192.0.2.1" or "2001:db8:63b3:1::3490" + // I want to convert it to its binary representation + addrinfo hints, *servinfo=0; + memset(&hints, 0, sizeof hints); + hints.ai_socktype = SOCK_DGRAM; + if (ipVersion==6) + hints.ai_family = AF_INET6; + else if (ipVersion==4) + hints.ai_family = AF_INET; + else + hints.ai_family = AF_UNSPEC; + getaddrinfo(ipPart, "", &hints, &servinfo); + if (servinfo==0) + return false; + RakAssert(servinfo); + + unsigned short oldPort = address.addr4.sin_port; +#if RAKNET_SUPPORT_IPV6==1 + if (servinfo->ai_family == AF_INET) + { +// if (ipVersion==6) +// { + address.addr4.sin_family=AF_INET6; +// memset(&address.addr6,0,sizeof(address.addr6)); +// memcpy(address.addr6.sin6_addr.s6_addr+12,&((struct sockaddr_in *)servinfo->ai_addr)->sin_addr.s_addr,sizeof(unsigned long)); +// } +// else +// { + address.addr4.sin_family=AF_INET; + memcpy(&address.addr4, (struct sockaddr_in *)servinfo->ai_addr,sizeof(struct sockaddr_in)); +// } + } + else + { + address.addr4.sin_family=AF_INET6; + memcpy(&address.addr6, (struct sockaddr_in6 *)servinfo->ai_addr,sizeof(struct sockaddr_in6)); + } +#else + address.addr4.sin_family=AF_INET4; + memcpy(&address.addr4, (struct sockaddr_in *)servinfo->ai_addr,sizeof(struct sockaddr_in)); +#endif + + freeaddrinfo(servinfo); // free the linked list + + // needed for getaddrinfo + WSAStartupSingleton::Deref(); + + // PORT + if (portPart[0]) + { + address.addr4.sin_port=htons((unsigned short) atoi(portPart)); + debugPort=ntohs(address.addr4.sin_port); + } + else + { + address.addr4.sin_port=oldPort; + } +#endif // #if RAKNET_SUPPORT_IPV6!=1 + + return true; +} +bool SystemAddress::FromStringExplicitPort(const char *str, unsigned short port, int ipVersion) +{ + bool b = FromString(str,(char) 0,ipVersion); + if (b==false) + return false; + address.addr4.sin_port=htons(port); + debugPort=ntohs(address.addr4.sin_port); + return true; +} +void SystemAddress::CopyPort( const SystemAddress& right ) +{ + address.addr4.sin_port=right.address.addr4.sin_port; + debugPort=right.debugPort; +} +RakNetGUID::RakNetGUID() +{ + systemIndex=(SystemIndex)-1; + *this=UNASSIGNED_RAKNET_GUID; +} +bool RakNetGUID::operator==( const RakNetGUID& right ) const +{ + return g==right.g; +} +bool RakNetGUID::operator!=( const RakNetGUID& right ) const +{ + return g!=right.g; +} +bool RakNetGUID::operator > ( const RakNetGUID& right ) const +{ + return g > right.g; +} +bool RakNetGUID::operator < ( const RakNetGUID& right ) const +{ + return g < right.g; +} +const char *RakNetGUID::ToString(void) const +{ + static unsigned char strIndex=0; + static char str[8][64]; + + unsigned char lastStrIndex=strIndex; + strIndex++; + ToString(str[lastStrIndex&7]); + return (char*) str[lastStrIndex&7]; +} +void RakNetGUID::ToString(char *dest) const +{ + if (*this==UNASSIGNED_RAKNET_GUID) + strcpy(dest, "UNASSIGNED_RAKNET_GUID"); + + //sprintf(dest, "%u.%u.%u.%u.%u.%u", g[0], g[1], g[2], g[3], g[4], g[5]); + sprintf(dest, "%" PRINTF_64_BIT_MODIFIER "u", (long long unsigned int) g); + // sprintf(dest, "%u.%u.%u.%u.%u.%u", g[0], g[1], g[2], g[3], g[4], g[5]); +} +bool RakNetGUID::FromString(const char *source) +{ + if (source==0) + return false; + + + +#if defined(WIN32) + g=_strtoui64(source, NULL, 10); + + +#else + // Changed from g=strtoull(source,0,10); for android + g=strtoull(source, (char **)NULL, 10); +#endif + return true; + +} +unsigned long RakNetGUID::ToUint32( const RakNetGUID &g ) +{ + return ((unsigned long) (g.g >> 32)) ^ ((unsigned long) (g.g & 0xFFFFFFFF)); +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetTypes.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetTypes.h new file mode 100755 index 0000000..befcfc1 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetTypes.h @@ -0,0 +1,482 @@ +/// \file +/// \brief Types used by RakNet, most of which involve user code. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __NETWORK_TYPES_H +#define __NETWORK_TYPES_H + +#include "RakNetDefines.h" +#include "NativeTypes.h" +#include "RakNetTime.h" +#include "Export.h" +#include "SocketIncludes.h" +#include "WindowsIncludes.h" +#include "XBox360Includes.h" + + + + + +namespace RakNet { +/// Forward declarations +class RakPeerInterface; +class BitStream; +struct Packet; + +enum StartupResult +{ + RAKNET_STARTED, + RAKNET_ALREADY_STARTED, + INVALID_SOCKET_DESCRIPTORS, + INVALID_MAX_CONNECTIONS, + SOCKET_FAMILY_NOT_SUPPORTED, + SOCKET_PORT_ALREADY_IN_USE, + SOCKET_FAILED_TO_BIND, + SOCKET_FAILED_TEST_SEND, + PORT_CANNOT_BE_ZERO, + FAILED_TO_CREATE_NETWORK_THREAD, + STARTUP_OTHER_FAILURE, +}; + + +enum ConnectionAttemptResult +{ + CONNECTION_ATTEMPT_STARTED, + INVALID_PARAMETER, + CANNOT_RESOLVE_DOMAIN_NAME, + ALREADY_CONNECTED_TO_ENDPOINT, + CONNECTION_ATTEMPT_ALREADY_IN_PROGRESS, + SECURITY_INITIALIZATION_FAILED +}; + +/// Returned from RakPeerInterface::GetConnectionState() +enum ConnectionState +{ + /// Connect() was called, but the process hasn't started yet + IS_PENDING, + /// Processing the connection attempt + IS_CONNECTING, + /// Is connected and able to communicate + IS_CONNECTED, + /// Was connected, but will disconnect as soon as the remaining messages are delivered + IS_DISCONNECTING, + /// A connection attempt failed and will be aborted + IS_SILENTLY_DISCONNECTING, + /// No longer connected + IS_DISCONNECTED, + /// Was never connected, or else was disconnected long enough ago that the entry has been discarded + IS_NOT_CONNECTED, +}; + +/// Given a number of bits, return how many bytes are needed to represent that. +#define BITS_TO_BYTES(x) (((x)+7)>>3) +#define BYTES_TO_BITS(x) ((x)<<3) + +/// \sa NetworkIDObject.h +typedef unsigned char UniqueIDType; +typedef unsigned short SystemIndex; +typedef unsigned char RPCIndex; +const int MAX_RPC_MAP_SIZE=((RPCIndex)-1)-1; +const int UNDEFINED_RPC_INDEX=((RPCIndex)-1); + +/// First byte of a network message +typedef unsigned char MessageID; + +typedef uint32_t BitSize_t; + +#if defined(_MSC_VER) && _MSC_VER > 0 +#define PRINTF_64_BIT_MODIFIER "I64" +#else +#define PRINTF_64_BIT_MODIFIER "ll" +#endif + +/// Used with the PublicKey structure +enum PublicKeyMode +{ + /// The connection is insecure. You can also just pass 0 for the pointer to PublicKey in RakPeerInterface::Connect() + PKM_INSECURE_CONNECTION, + + /// Accept whatever public key the server gives us. This is vulnerable to man in the middle, but does not require + /// distribution of the public key in advance of connecting. + PKM_ACCEPT_ANY_PUBLIC_KEY, + + /// Use a known remote server public key. PublicKey::remoteServerPublicKey must be non-zero. + /// This is the recommended mode for secure connections. + PKM_USE_KNOWN_PUBLIC_KEY, + + /// Use a known remote server public key AND provide a public key for the connecting client. + /// PublicKey::remoteServerPublicKey, myPublicKey and myPrivateKey must be all be non-zero. + /// The server must cooperate for this mode to work. + /// I recommend not using this mode except for server-to-server communication as it significantly increases the CPU requirements during connections for both sides. + /// Furthermore, when it is used, a connection password should be used as well to avoid DoS attacks. + PKM_USE_TWO_WAY_AUTHENTICATION +}; + +/// Passed to RakPeerInterface::Connect() +struct RAK_DLL_EXPORT PublicKey +{ + /// How to interpret the public key, see above + PublicKeyMode publicKeyMode; + + /// Pointer to a public key of length cat::EasyHandshake::PUBLIC_KEY_BYTES. See the Encryption sample. + char *remoteServerPublicKey; + + /// (Optional) Pointer to a public key of length cat::EasyHandshake::PUBLIC_KEY_BYTES + char *myPublicKey; + + /// (Optional) Pointer to a private key of length cat::EasyHandshake::PRIVATE_KEY_BYTES + char *myPrivateKey; +}; + +/// Describes the local socket to use for RakPeer::Startup +struct RAK_DLL_EXPORT SocketDescriptor +{ + SocketDescriptor(); + SocketDescriptor(unsigned short _port, const char *_hostAddress); + + /// The local port to bind to. Pass 0 to have the OS autoassign a port. + unsigned short port; + + /// The local network card address to bind to, such as "127.0.0.1". Pass an empty string to use INADDR_ANY. + char hostAddress[32]; + + /// IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + /// IPV6 is the newer internet protocol. Instead of addresses such as 94.198.81.195, you may have an address such as fe80::7c:31f7:fec4:27de%14. + /// Encoding takes 16 bytes instead of 4, so IPV6 is less efficient for bandwidth. + /// On the positive side, NAT Punchthrough is not needed and should not be used with IPV6 because there are enough addresses that routers do not need to create address mappings. + /// RakPeer::Startup() will fail if this IP version is not supported. + /// \pre RAKNET_SUPPORT_IPV6 must be set to 1 in RakNetDefines.h for AF_INET6 + short socketFamily; + + + + + + + + + + unsigned short remotePortRakNetWasStartedOn_PS3_PSP2; + + /// XBOX only: set IPPROTO_VDP if you want to use VDP. If enabled, this socket does not support broadcast to 255.255.255.255 + unsigned int extraSocketOptions; +}; + +extern bool NonNumericHostString( const char *host ); + +/// \brief Network address for a system +/// \details Corresponds to a network address
+/// This is not necessarily a unique identifier. For example, if a system has both LAN and internet connections, the system may be identified by either one, depending on who is communicating
+/// Therefore, you should not transmit the SystemAddress over the network and expect it to identify a system, or use it to connect to that system, except in the case where that system is not behind a NAT (such as with a dedciated server) +/// Use RakNetGUID for a unique per-instance of RakPeer to identify systems +struct RAK_DLL_EXPORT SystemAddress +{ + /// Constructors + SystemAddress(); + SystemAddress(const char *str); + SystemAddress(const char *str, unsigned short port); + + + + + + + + /// SystemAddress, with RAKNET_SUPPORT_IPV6 defined, holds both an sockaddr_in6 and a sockaddr_in + union// In6OrIn4 + { +#if RAKNET_SUPPORT_IPV6==1 + struct sockaddr_in6 addr6; +#endif + + struct sockaddr_in addr4; + } address; + + /// This is not used internally, but holds a copy of the port held in the address union, so for debugging it's easier to check what port is being held + unsigned short debugPort; + + /// \internal Return the size to write to a bitStream + static int size(void); + + /// Hash the system address + static unsigned long ToInteger( const SystemAddress &sa ); + + /// Return the IP version, either IPV4 or IPV6 + /// \return Either 4 or 6 + unsigned char GetIPVersion(void) const; + + /// \internal Returns either IPPROTO_IP or IPPROTO_IPV6 + /// \sa GetIPVersion + unsigned int GetIPPROTO(void) const; + + /// Call SetToLoopback(), with whatever IP version is currently held. Defaults to IPV4 + void SetToLoopback(void); + + /// Call SetToLoopback() with a specific IP version + /// \param[in] ipVersion Either 4 for IPV4 or 6 for IPV6 + void SetToLoopback(unsigned char ipVersion); + + /// \return If was set to 127.0.0.1 or ::1 + bool IsLoopback(void) const; + + // Return the systemAddress as a string in the format | + // Returns a static string + // NOT THREADSAFE + // portDelineator should not be '.', ':', '%', '-', '/', a number, or a-f + const char *ToString(bool writePort=true, char portDelineator='|') const; + + // Return the systemAddress as a string in the format | + // dest must be large enough to hold the output + // portDelineator should not be '.', ':', '%', '-', '/', a number, or a-f + // THREADSAFE + void ToString(bool writePort, char *dest, char portDelineator='|') const; + + /// Set the system address from a printable IP string, for example "192.0.2.1" or "2001:db8:63b3:1::3490" + /// You can write the port as well, using the portDelineator, for example "192.0.2.1|1234" + /// \param[in] str A printable IP string, for example "192.0.2.1" or "2001:db8:63b3:1::3490". Pass 0 for \a str to set to UNASSIGNED_SYSTEM_ADDRESS + /// \param[in] portDelineator if \a str contains a port, delineate the port with this character. portDelineator should not be '.', ':', '%', '-', '/', a number, or a-f + /// \param[in] ipVersion Only used if str is a pre-defined address in the wrong format, such as 127.0.0.1 but you want ip version 6, so you can pass 6 here to do the conversion + /// \note The current port is unchanged if a port is not specified in \a str + /// \return True on success, false on ipVersion does not match type of passed string + bool FromString(const char *str, char portDelineator='|', int ipVersion=0); + + /// Same as FromString(), but you explicitly set a port at the same time + bool FromStringExplicitPort(const char *str, unsigned short port, int ipVersion=0); + + /// Copy the port from another SystemAddress structure + void CopyPort( const SystemAddress& right ); + + /// Returns if two system addresses have the same IP (port is not checked) + bool EqualsExcludingPort( const SystemAddress& right ) const; + + /// Returns the port in host order (this is what you normally use) + unsigned short GetPort(void) const; + + /// \internal Returns the port in network order + unsigned short GetPortNetworkOrder(void) const; + + /// Sets the port. The port value should be in host order (this is what you normally use) + void SetPort(unsigned short s); + + /// \internal Sets the port. The port value should already be in network order. + void SetPortNetworkOrder(unsigned short s); + + /// Old version, for crap platforms that don't support newer socket functions + void SetBinaryAddress(const char *str, char portDelineator=':'); + /// Old version, for crap platforms that don't support newer socket functions + void ToString_Old(bool writePort, char *dest, char portDelineator=':') const; + + /// \internal sockaddr_in6 requires extra data beyond just the IP and port. Copy that extra data from an existing SystemAddress that already has it + void FixForIPVersion(const SystemAddress &boundAddressToSocket); + + SystemAddress& operator = ( const SystemAddress& input ); + bool operator==( const SystemAddress& right ) const; + bool operator!=( const SystemAddress& right ) const; + bool operator > ( const SystemAddress& right ) const; + bool operator < ( const SystemAddress& right ) const; + + /// \internal Used internally for fast lookup. Optional (use -1 to do regular lookup). Don't transmit this. + SystemIndex systemIndex; + + private: + +#if RAKNET_SUPPORT_IPV6==1 + void ToString_New(bool writePort, char *dest, char portDelineator) const; +#endif +}; + +/// Uniquely identifies an instance of RakPeer. Use RakPeer::GetGuidFromSystemAddress() and RakPeer::GetSystemAddressFromGuid() to go between SystemAddress and RakNetGUID +/// Use RakPeer::GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS) to get your own GUID +struct RAK_DLL_EXPORT RakNetGUID +{ + RakNetGUID(); + explicit RakNetGUID(uint64_t _g) {g=_g; systemIndex=(SystemIndex)-1;} +// uint32_t g[6]; + uint64_t g; + + // Return the GUID as a string + // Returns a static string + // NOT THREADSAFE + const char *ToString(void) const; + + // Return the GUID as a string + // dest must be large enough to hold the output + // THREADSAFE + void ToString(char *dest) const; + + bool FromString(const char *source); + + static unsigned long ToUint32( const RakNetGUID &g ); + + RakNetGUID& operator = ( const RakNetGUID& input ) + { + g=input.g; + systemIndex=input.systemIndex; + return *this; + } + + // Used internally for fast lookup. Optional (use -1 to do regular lookup). Don't transmit this. + SystemIndex systemIndex; + static int size() {return (int) sizeof(uint64_t);} + + bool operator==( const RakNetGUID& right ) const; + bool operator!=( const RakNetGUID& right ) const; + bool operator > ( const RakNetGUID& right ) const; + bool operator < ( const RakNetGUID& right ) const; +}; + +/// Index of an invalid SystemAddress +//const SystemAddress UNASSIGNED_SYSTEM_ADDRESS = +//{ +// 0xFFFFFFFF, 0xFFFF +//}; +#ifndef SWIG +const SystemAddress UNASSIGNED_SYSTEM_ADDRESS; +const RakNetGUID UNASSIGNED_RAKNET_GUID((uint64_t)-1); +#endif +//{ +// {0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF} +// 0xFFFFFFFFFFFFFFFF +//}; + + +struct RAK_DLL_EXPORT AddressOrGUID +{ + RakNetGUID rakNetGuid; + SystemAddress systemAddress; + + SystemIndex GetSystemIndex(void) const {if (rakNetGuid!=UNASSIGNED_RAKNET_GUID) return rakNetGuid.systemIndex; else return systemAddress.systemIndex;} + bool IsUndefined(void) const {return rakNetGuid==UNASSIGNED_RAKNET_GUID && systemAddress==UNASSIGNED_SYSTEM_ADDRESS;} + void SetUndefined(void) {rakNetGuid=UNASSIGNED_RAKNET_GUID; systemAddress=UNASSIGNED_SYSTEM_ADDRESS;} + static unsigned long ToInteger( const AddressOrGUID &aog ); + const char *ToString(bool writePort=true) const; + void ToString(bool writePort, char *dest) const; + + AddressOrGUID() {} + AddressOrGUID( const AddressOrGUID& input ) + { + rakNetGuid=input.rakNetGuid; + systemAddress=input.systemAddress; + } + AddressOrGUID( const SystemAddress& input ) + { + rakNetGuid=UNASSIGNED_RAKNET_GUID; + systemAddress=input; + } + AddressOrGUID( Packet *packet ); + AddressOrGUID( const RakNetGUID& input ) + { + rakNetGuid=input; + systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + } + AddressOrGUID& operator = ( const AddressOrGUID& input ) + { + rakNetGuid=input.rakNetGuid; + systemAddress=input.systemAddress; + return *this; + } + + AddressOrGUID& operator = ( const SystemAddress& input ) + { + rakNetGuid=UNASSIGNED_RAKNET_GUID; + systemAddress=input; + return *this; + } + + AddressOrGUID& operator = ( const RakNetGUID& input ) + { + rakNetGuid=input; + systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + return *this; + } + + inline bool operator==( const AddressOrGUID& right ) const {return (rakNetGuid!=UNASSIGNED_RAKNET_GUID && rakNetGuid==right.rakNetGuid) || (systemAddress!=UNASSIGNED_SYSTEM_ADDRESS && systemAddress==right.systemAddress);} +}; + +typedef uint64_t NetworkID; + +/// This represents a user message from another system. +struct Packet +{ + /// The system that send this packet. + SystemAddress systemAddress; + + /// A unique identifier for the system that sent this packet, regardless of IP address (internal / external / remote system) + /// Only valid once a connection has been established (ID_CONNECTION_REQUEST_ACCEPTED, or ID_NEW_INCOMING_CONNECTION) + /// Until that time, will be UNASSIGNED_RAKNET_GUID + RakNetGUID guid; + + /// The length of the data in bytes + unsigned int length; + + /// The length of the data in bits + BitSize_t bitSize; + + /// The data from the sender + unsigned char* data; + + /// @internal + /// Indicates whether to delete the data, or to simply delete the packet. + bool deleteData; + + /// @internal + /// If true, this message is meant for the user, not for the plugins, so do not process it through plugins + bool wasGeneratedLocally; +}; + +/// Index of an unassigned player +const SystemIndex UNASSIGNED_PLAYER_INDEX = 65535; + +/// Unassigned object ID +const NetworkID UNASSIGNED_NETWORK_ID = (uint64_t) -1; + +const int PING_TIMES_ARRAY_SIZE = 5; + +struct RAK_DLL_EXPORT uint24_t +{ + uint32_t val; + + uint24_t() {} + inline operator uint32_t() { return val; } + inline operator uint32_t() const { return val; } + + inline uint24_t(const uint24_t& a) {val=a.val;} + inline uint24_t operator++() {++val; val&=0x00FFFFFF; return *this;} + inline uint24_t operator--() {--val; val&=0x00FFFFFF; return *this;} + inline uint24_t operator++(int) {uint24_t temp(val); ++val; val&=0x00FFFFFF; return temp;} + inline uint24_t operator--(int) {uint24_t temp(val); --val; val&=0x00FFFFFF; return temp;} + inline uint24_t operator&(const uint24_t& a) {return uint24_t(val&a.val);} + inline uint24_t& operator=(const uint24_t& a) { val=a.val; return *this; } + inline uint24_t& operator+=(const uint24_t& a) { val+=a.val; val&=0x00FFFFFF; return *this; } + inline uint24_t& operator-=(const uint24_t& a) { val-=a.val; val&=0x00FFFFFF; return *this; } + inline bool operator==( const uint24_t& right ) const {return val==right.val;} + inline bool operator!=( const uint24_t& right ) const {return val!=right.val;} + inline bool operator > ( const uint24_t& right ) const {return val>right.val;} + inline bool operator < ( const uint24_t& right ) const {return val ( const uint32_t& right ) const {return val>(right&0x00FFFFFF);} + inline bool operator < ( const uint32_t& right ) const {return val<(right&0x00FFFFFF);} + inline const uint24_t operator+( const uint32_t &other ) const { return uint24_t(val+other); } + inline const uint24_t operator-( const uint32_t &other ) const { return uint24_t(val-other); } + inline const uint24_t operator/( const uint32_t &other ) const { return uint24_t(val/other); } + inline const uint24_t operator*( const uint32_t &other ) const { return uint24_t(val*other); } +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNetVersion.h b/project/lib_projects/raknet/jni/RaknetSources/RakNetVersion.h new file mode 100755 index 0000000..4e61675 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNetVersion.h @@ -0,0 +1,8 @@ +#define RAKNET_VERSION "4.036" +#define RAKNET_VERSION_NUMBER 4.036 + +#define RAKNET_DATE "2/1/2012" + +// What compatible protocol version RakNet is using. When this value changes, it indicates this version of RakNet cannot connection to an older version. +// ID_INCOMPATIBLE_PROTOCOL_VERSION will be returned on connection attempt in this case +#define RAKNET_PROTOCOL_VERSION 5 diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNet_vc8.vcproj b/project/lib_projects/raknet/jni/RaknetSources/RakNet_vc8.vcproj new file mode 100755 index 0000000..694c818 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNet_vc8.vcproj @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakNet_vc9.vcproj b/project/lib_projects/raknet/jni/RaknetSources/RakNet_vc9.vcproj new file mode 100755 index 0000000..694c818 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakNet_vc9.vcproj @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakPeer.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakPeer.cpp new file mode 100755 index 0000000..698374e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakPeer.cpp @@ -0,0 +1,5964 @@ +// \file +// +// This file is part of RakNet Copyright 2003 Jenkins Software LLC +// +// Usage of RakNet is subject to the appropriate license agreement. + + +#define CAT_NEUTER_EXPORT /* Neuter dllimport for libcat */ + +#include "RakNetDefines.h" +#include "RakPeer.h" +#include "RakNetTypes.h" + +#ifdef _WIN32 + +#else +#include +#endif + +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + +#include +#include // toupper +#include +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "DS_HuffmanEncodingTree.h" +#include "Rand.h" +#include "PluginInterface2.h" +#include "StringCompressor.h" +#include "StringTable.h" +#include "NetworkIDObject.h" +#include "RakNetTypes.h" +#include "SHA1.h" +#include "RakSleep.h" +#include "RakAssert.h" +#include "RakNetVersion.h" +#include "NetworkIDManager.h" +#include "gettimeofday.h" +#include "SignaledEvent.h" +#include "SuperFastHash.h" +#include "RakAlloca.h" +#include "WSAStartupSingleton.h" + +#ifdef USE_THREADED_SEND +#include "SendToThread.h" +#endif + +#ifdef CAT_AUDIT +#define CAT_AUDIT_PRINTF(...) printf(__VA_ARGS__) +#else +#define CAT_AUDIT_PRINTF(...) +#endif + +namespace RakNet +{ +RAK_THREAD_DECLARATION(UpdateNetworkLoop); +RAK_THREAD_DECLARATION(RecvFromLoop); +RAK_THREAD_DECLARATION(UDTConnect); +} +#define REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE 8 + +#if !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) +#include // malloc +#endif + + + +#if defined(_WIN32) +// +#else +/* +#include // Console 2 +#include +extern bool _extern_Console2LoadModules(void); +extern int _extern_Console2GetConnectionStatus(void); +extern int _extern_Console2GetLobbyStatus(void); +//extern bool Console2StartupFluff(unsigned int *); +extern void Console2ShutdownFluff(void); +//extern unsigned int Console2ActivateConnection(unsigned int, void *); +//extern bool Console2BlockOnEstablished(void); +extern void Console2GetIPAndPort(unsigned int, char *, unsigned short *, unsigned int ); +//extern void Console2DeactivateConnection(unsigned int, unsigned int); +*/ +#endif + + +static const int NUM_MTU_SIZES=3; + + + +static const int mtuSizes[NUM_MTU_SIZES]={MAXIMUM_MTU_SIZE, 1200, 576}; + + +// Note to self - if I change this it might affect RECIPIENT_OFFLINE_MESSAGE_INTERVAL in Natpunchthrough.cpp +//static const int MAX_OPEN_CONNECTION_REQUESTS=8; +//static const int TIME_BETWEEN_OPEN_CONNECTION_REQUESTS=500; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +static RakNetRandom rnr; + +struct RakPeerAndIndex +{ + SOCKET s; + unsigned short remotePortRakNetWasStartedOn_PS3; + RakPeer *rakPeer; + unsigned int extraSocketOptions; +}; + +static const unsigned int MAX_OFFLINE_DATA_LENGTH=400; // I set this because I limit ID_CONNECTION_REQUEST to 512 bytes, and the password is appended to that packet. + +// Used to distinguish between offline messages with data, and messages from the reliability layer +// Should be different than any message that could result from messages from the reliability layer +#if !defined(__GNUC__) +#pragma warning(disable:4309) // 'initializing' : truncation of constant value +#endif +// Make sure highest bit is 0, so isValid in DatagramHeaderFormat is false +static const char OFFLINE_MESSAGE_DATA_ID[16]={0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFD,0xFD,0x12,0x34,0x56,0x78}; + +struct PacketFollowedByData +{ + Packet p; + unsigned char data[1]; +}; + +Packet *RakPeer::AllocPacket(unsigned dataSize, const char *file, unsigned int line) +{ + // Crashes when dataSize is 4 bytes - not sure why +// unsigned char *data = (unsigned char *) rakMalloc_Ex(sizeof(PacketFollowedByData)+dataSize, file, line); +// Packet *p = &((PacketFollowedByData *)data)->p; +// p->data=((PacketFollowedByData *)data)->data; +// p->length=dataSize; +// p->bitSize=BYTES_TO_BITS(dataSize); +// p->deleteData=false; +// p->guid=UNASSIGNED_RAKNET_GUID; +// return p; + + RakNet::Packet *p; + packetAllocationPoolMutex.Lock(); + p = packetAllocationPool.Allocate(file,line); + packetAllocationPoolMutex.Unlock(); + p = new ((void*)p) Packet; + p->data=(unsigned char*) rakMalloc_Ex(dataSize,file,line); + p->length=dataSize; + p->bitSize=BYTES_TO_BITS(dataSize); + p->deleteData=true; + p->guid=UNASSIGNED_RAKNET_GUID; + p->wasGeneratedLocally=false; + return p; +} + +Packet *RakPeer::AllocPacket(unsigned dataSize, unsigned char *data, const char *file, unsigned int line) +{ + // Packet *p = (Packet *)rakMalloc_Ex(sizeof(Packet), file, line); + RakNet::Packet *p; + packetAllocationPoolMutex.Lock(); + p = packetAllocationPool.Allocate(file,line); + packetAllocationPoolMutex.Unlock(); + p = new ((void*)p) Packet; + RakAssert(p); + p->data=data; + p->length=dataSize; + p->bitSize=BYTES_TO_BITS(dataSize); + p->deleteData=true; + p->guid=UNASSIGNED_RAKNET_GUID; + p->wasGeneratedLocally=false; + return p; +} + +STATIC_FACTORY_DEFINITIONS(RakPeerInterface,RakPeer) + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Constructor +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RakPeer() +{ + errorState = 0; +#if LIBCAT_SECURITY==1 + // Encryption and security + CAT_AUDIT_PRINTF("AUDIT: Initializing RakPeer security flags: using_security = false, server_handshake = null, cookie_jar = null\n"); + _using_security = false; + _server_handshake = 0; + _cookie_jar = 0; +#endif + + StringCompressor::AddReference(); + RakNet::StringTable::AddReference(); + WSAStartupSingleton::AddRef(); + + defaultMTUSize = mtuSizes[NUM_MTU_SIZES-1]; + trackFrequencyTable = false; + maximumIncomingConnections = 0; + maximumNumberOfPeers = 0; + //remoteSystemListSize=0; + remoteSystemList = 0; + activeSystemList = 0; + activeSystemListSize=0; + remoteSystemLookup=0; + bytesSentPerSecond = bytesReceivedPerSecond = 0; + endThreads = true; + isMainLoopThreadActive = false; + + + + + + // isRecvfromThreadActive=false; +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 + occasionalPing = true; +#else + occasionalPing = false; +#endif + allowInternalRouting=false; + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + ipList[i]=UNASSIGNED_SYSTEM_ADDRESS; + allowConnectionResponseIPMigration = false; + //incomingPasswordLength=outgoingPasswordLength=0; + incomingPasswordLength=0; + splitMessageProgressInterval=0; + //unreliableTimeout=0; + unreliableTimeout=1000; + maxOutgoingBPS=0; + firstExternalID=UNASSIGNED_SYSTEM_ADDRESS; + myGuid=UNASSIGNED_RAKNET_GUID; + userUpdateThreadPtr=0; + userUpdateThreadData=0; + +#ifdef _DEBUG + // Wait longer to disconnect in debug so I don't get disconnected while tracing + defaultTimeoutTime=30000; +#else + defaultTimeoutTime=10000; +#endif + +#ifdef _DEBUG + _packetloss=0.0; + _minExtraPing=0; + _extraPingVariance=0; +#endif + + bufferedCommands.SetPageSize(sizeof(BufferedCommandStruct)*16); + socketQueryOutput.SetPageSize(sizeof(SocketQueryOutput)*8); + bufferedPackets.SetPageSize(sizeof(RecvFromStruct)*BUFFERED_PACKETS_PAGE_SIZE); // This is big, keep the size down + + packetAllocationPoolMutex.Lock(); + packetAllocationPool.SetPageSize(sizeof(DataStructures::MemoryPool::MemoryWithPage)*32); + packetAllocationPoolMutex.Unlock(); + + remoteSystemIndexPool.SetPageSize(sizeof(DataStructures::MemoryPool::MemoryWithPage)*32); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GenerateGUID(); + + quitAndDataEvents.InitEvent(); + limitConnectionFrequencyFromTheSameIP=false; + ResetSendReceipt(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Destructor +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::~RakPeer() +{ + Shutdown( 0, 0 ); + + // Free the ban list. + ClearBanList(); + + StringCompressor::RemoveReference(); + RakNet::StringTable::RemoveReference(); + WSAStartupSingleton::Deref(); + + quitAndDataEvents.CloseEvent(); + +#if LIBCAT_SECURITY==1 + // Encryption and security + CAT_AUDIT_PRINTF("AUDIT: Deleting RakPeer security objects, handshake = %x, cookie jar = %x\n", _server_handshake, _cookie_jar); + if (_server_handshake) RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + if (_cookie_jar) RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); +#endif + + + + + + + + + + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// \brief Starts the network threads, opens the listen port. +// You must call this before calling Connect(). +// Multiple calls while already active are ignored. To call this function again with different settings, you must first call Shutdown(). +// \note Call SetMaximumIncomingConnections if you want to accept incoming connections +// \param[in] maxConnections The maximum number of connections between this instance of RakPeer and another instance of RakPeer. Required so the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.- A hybrid would set it to the sum of both types of connections +// \param[in] localPort The port to listen for connections on. +// \param[in] _threadSleepTimer How many ms to Sleep each internal update cycle. With new congestion control, the best results will be obtained by passing 10. +// \param[in] socketDescriptors An array of SocketDescriptor structures to force RakNet to listen on a particular IP address or port (or both). Each SocketDescriptor will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass &socketDescriptor, 1SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); +// \param[in] socketDescriptorCount The size of the \a socketDescriptors array. Pass 1 if you are not sure what to pass. +// \return False on failure (can't create socket or thread), true on success. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +StartupResult RakPeer::Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority ) +{ + errorState = 0; + + if (IsActive()) + return RAKNET_ALREADY_STARTED; + + if (threadPriority==-99999) + { + + +#if defined(_WIN32) + threadPriority=0; + + +#else + threadPriority=1000; +#endif + } + + + // Fill out ipList structure + unsigned int i; + + SocketLayer::GetMyIP( ipList ); +// for (i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) +// { +// if (ipList[i]!=UNASSIGNED_SYSTEM_ADDRESS) +// { +// char str[128]; +// ipList[i].ToString(false,str); +// printf("%s\n",str); +// } +// } + + + if (myGuid==UNASSIGNED_RAKNET_GUID) + { + rnr.SeedMT( GenerateSeedFromGuid() ); + } + + RakPeerAndIndex rpai[32]; + RakAssert(socketDescriptorCount<32); + + RakAssert(socketDescriptors && socketDescriptorCount>=1); + + if (socketDescriptors==0 || socketDescriptorCount<1) + return INVALID_SOCKET_DESCRIPTORS; + + //unsigned short localPort; + //localPort=socketDescriptors[0].port; + + RakAssert( maxConnections > 0 ); + + if ( maxConnections <= 0 ) + return INVALID_MAX_CONNECTIONS; + + DerefAllSockets(); + + + // Go through all socket descriptors and precreate sockets on the specified addresses + for (i=0; i rns(RakNet::OP_NEW(_FILE_AND_LINE_)); + if (socketDescriptors[i].remotePortRakNetWasStartedOn_PS3_PSP2==0) + { + rns->s = (unsigned int) SocketLayer::CreateBoundSocket( socketDescriptors[i].port, true, addrToBind, 100, socketDescriptors[i].extraSocketOptions, socketDescriptors[i].socketFamily ); + } + else + { + + + + + + } + + if ((SOCKET)rns->s==(SOCKET)-1) + { + DerefAllSockets(); + return SOCKET_FAILED_TO_BIND; + } + + SocketLayer::GetSystemAddress( rns->s, &rns->boundAddress ); + + rns->remotePortRakNetWasStartedOn_PS3_PSP2=socketDescriptors[i].remotePortRakNetWasStartedOn_PS3_PSP2; + rns->extraSocketOptions=socketDescriptors[i].extraSocketOptions; + rns->userConnectionSocketIndex=i; + +#if RAKNET_SUPPORT_IPV6==0 + if (addrToBind==0) + rns->boundAddress.SetToLoopback(4); +#endif + + int zero=0; + if (SocketLayer::SendTo((SOCKET)rns->s, (const char*) &zero,4,rns->boundAddress, rns->remotePortRakNetWasStartedOn_PS3_PSP2, rns->extraSocketOptions, _FILE_AND_LINE_)!=0) + { + DerefAllSockets(); + return SOCKET_FAILED_TEST_SEND; + } + + socketList.Push(rns, _FILE_AND_LINE_ ); + + } + + + if ( maximumNumberOfPeers == 0 ) + { + // Don't allow more incoming connections than we have peers. + if ( maximumIncomingConnections > maxConnections ) + maximumIncomingConnections = maxConnections; + + maximumNumberOfPeers = maxConnections; + // 04/19/2006 - Don't overallocate because I'm no longer allowing connected pings. + // The disconnects are not consistently processed and the process was sloppy and complicated. + // Allocate 10% extra to handle new connections from players trying to connect when the server is full + //remoteSystemListSize = maxConnections;// * 11 / 10 + 1; + + // remoteSystemList in Single thread + //remoteSystemList = RakNet::OP_NEW( _FILE_AND_LINE_ ); + remoteSystemList = RakNet::OP_NEW_ARRAY(maximumNumberOfPeers, _FILE_AND_LINE_ ); + + remoteSystemLookup = RakNet::OP_NEW_ARRAY((unsigned int) maximumNumberOfPeers * REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE, _FILE_AND_LINE_ ); + + activeSystemList = RakNet::OP_NEW_ARRAY(maximumNumberOfPeers, _FILE_AND_LINE_ ); + + for ( i = 0; i < maximumNumberOfPeers; i++ ) + //for ( i = 0; i < remoteSystemListSize; i++ ) + { + // remoteSystemList in Single thread + remoteSystemList[ i ].isActive = false; + remoteSystemList[ i ].systemAddress = UNASSIGNED_SYSTEM_ADDRESS; + remoteSystemList[ i ].guid = UNASSIGNED_RAKNET_GUID; + remoteSystemList[ i ].myExternalSystemAddress = UNASSIGNED_SYSTEM_ADDRESS; + remoteSystemList[ i ].connectMode=RemoteSystemStruct::NO_ACTION; + remoteSystemList[ i ].MTUSize = defaultMTUSize; + remoteSystemList[ i ].remoteSystemIndex = (SystemIndex) i; +#ifdef _DEBUG + remoteSystemList[ i ].reliabilityLayer.ApplyNetworkSimulator(_packetloss, _minExtraPing, _extraPingVariance); +#endif + + // All entries in activeSystemList have valid pointers all the time. + activeSystemList[ i ] = &remoteSystemList[ i ]; + } + + for (unsigned int i=0; i < (unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE; i++) + { + remoteSystemLookup[i]=0; + } + } + + // For histogram statistics + // nextReadBytesTime=0; + // lastSentBytes=lastReceivedBytes=0; + + if ( endThreads ) + { + updateCycleIsRunning = false; + endThreads = false; + + ClearBufferedCommands(); + ClearBufferedPackets(); + ClearSocketQueryOutput(); + + if ( isMainLoopThreadActive == false ) + { + int errorCode; + + + + + + + + errorCode = RakNet::RakThread::Create(UpdateNetworkLoop, this, threadPriority); + + + if ( errorCode != 0 ) + { + Shutdown( 0, 0 ); + return FAILED_TO_CREATE_NETWORK_THREAD; + } + + RakAssert(isRecvFromLoopThreadActive.GetValue()==0); + for (i=0; is; + rpai[i].rakPeer=this; + + + + + + errorCode = RakNet::RakThread::Create(RecvFromLoop, &rpai[i], threadPriority); + + + if ( errorCode != 0 ) + { + Shutdown( 0, 0 ); + return FAILED_TO_CREATE_NETWORK_THREAD; + } + } + + + while ( isRecvFromLoopThreadActive.GetValue() < (uint32_t) socketDescriptorCount ) + RakSleep(10); + } + + // Wait for the threads to activate. When they are active they will set these variables to true + + while ( isMainLoopThreadActive == false ) + RakSleep(10); + + } + + for (i=0; i < pluginListTS.Size(); i++) + { + pluginListTS[i]->OnRakPeerStartup(); + } + + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginListNTS[i]->OnRakPeerStartup(); + } + +#ifdef USE_THREADED_SEND + RakNet::SendToThread::AddRef(); +#endif + + return RAKNET_STARTED; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Must be called while offline +// +// If you accept connections, you must call this or else security will not be enabled for incoming connections. +// +// This feature requires more round trips, bandwidth, and CPU time for the connection handshake +// x64 builds require under 25% of the CPU time of other builds +// +// See the Encryption sample for example usage +// +// Parameters: +// publicKey = A pointer to the public key for accepting new connections +// privateKey = A pointer to the private key for accepting new connections +// If the private keys are 0, then a new key will be generated when this function is called +// bRequireClientKey: Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::InitializeSecurity(const char *public_key, const char *private_key, bool bRequireClientKey) +{ +#if LIBCAT_SECURITY==1 + if ( endThreads == false ) + return false; + + // Copy client public key requirement flag + _require_client_public_key = bRequireClientKey; + + if (_server_handshake) + { + CAT_AUDIT_PRINTF("AUDIT: Deleting old server_handshake %x\n", _server_handshake); + RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + } + if (_cookie_jar) + { + CAT_AUDIT_PRINTF("AUDIT: Deleting old cookie jar %x\n", _cookie_jar); + RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); + } + + _server_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + _cookie_jar = RakNet::OP_NEW(_FILE_AND_LINE_); + + CAT_AUDIT_PRINTF("AUDIT: Created new server_handshake %x\n", _server_handshake); + CAT_AUDIT_PRINTF("AUDIT: Created new cookie jar %x\n", _cookie_jar); + CAT_AUDIT_PRINTF("AUDIT: Running _server_handshake->Initialize()\n"); + + if (_server_handshake->Initialize(public_key, private_key)) + { + CAT_AUDIT_PRINTF("AUDIT: Successfully initialized, filling cookie jar with goodies, storing public key and setting using security flag to true\n"); + + _server_handshake->FillCookieJar(_cookie_jar); + + memcpy(my_public_key, public_key, sizeof(my_public_key)); + + _using_security = true; + return true; + } + + CAT_AUDIT_PRINTF("AUDIT: Failure to initialize so deleting server handshake and cookie jar; also setting using_security flag = false\n"); + + RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + _server_handshake=0; + RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); + _cookie_jar=0; + _using_security = false; + return false; +#else + (void) public_key; + (void) private_key; + (void) bRequireClientKey; + + return false; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description +// Must be called while offline +// Disables security for incoming connections. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DisableSecurity( void ) +{ +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: DisableSecurity() called, so deleting _server_handshake %x and cookie_jar %x\n", _server_handshake, _cookie_jar); + RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + _server_handshake=0; + RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); + _cookie_jar=0; + + _using_security = false; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AddToSecurityExceptionList(const char *ip) +{ + securityExceptionMutex.Lock(); + securityExceptionList.Insert(RakString(ip), _FILE_AND_LINE_); + securityExceptionMutex.Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::RemoveFromSecurityExceptionList(const char *ip) +{ + if (securityExceptionList.Size()==0) + return; + + if (ip==0) + { + securityExceptionMutex.Lock(); + securityExceptionList.Clear(false, _FILE_AND_LINE_); + securityExceptionMutex.Unlock(); + } + else + { + unsigned i=0; + securityExceptionMutex.Lock(); + while (i < securityExceptionList.Size()) + { + if (securityExceptionList[i].IPAddressMatch(ip)) + { + securityExceptionList[i]=securityExceptionList[securityExceptionList.Size()-1]; + securityExceptionList.RemoveAtIndex(securityExceptionList.Size()-1); + } + else + i++; + } + securityExceptionMutex.Unlock(); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsInSecurityExceptionList(const char *ip) +{ + if (securityExceptionList.Size()==0) + return false; + + unsigned i=0; + securityExceptionMutex.Lock(); + for (; i < securityExceptionList.Size(); i++) + { + if (securityExceptionList[i].IPAddressMatch(ip)) + { + securityExceptionMutex.Unlock(); + return true; + } + } + securityExceptionMutex.Unlock(); + return false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sets how many incoming connections are allowed. If this is less than the number of players currently connected, no +// more players will be allowed to connect. If this is greater than the maximum number of peers allowed, it will be reduced +// to the maximum number of peers allowed. Defaults to 0. +// +// Parameters: +// numberAllowed - Maximum number of incoming connections allowed. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetMaximumIncomingConnections( unsigned short numberAllowed ) +{ + maximumIncomingConnections = numberAllowed; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the maximum number of incoming connections, which is always <= maxConnections +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::GetMaximumIncomingConnections( void ) const +{ + return maximumIncomingConnections; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns how many open connections there are at this time +// \return the number of open connections +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::NumberOfConnections(void) const +{ + DataStructures::List addresses; + DataStructures::List guids; + GetSystemList(addresses, guids); + return (unsigned short) addresses.Size(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sets the password incoming connections must match in the call to Connect (defaults to none) +// Pass 0 to passwordData to specify no password +// +// Parameters: +// passwordData: A data block that incoming connections must match. This can be just a password, or can be a stream of data. +// - Specify 0 for no password data +// passwordDataLength: The length in bytes of passwordData +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetIncomingPassword( const char* passwordData, int passwordDataLength ) +{ + //if (passwordDataLength > MAX_OFFLINE_DATA_LENGTH) + // passwordDataLength=MAX_OFFLINE_DATA_LENGTH; + + if (passwordDataLength > 255) + passwordDataLength=255; + + if (passwordData==0) + passwordDataLength=0; + + // Not threadsafe but it's not important enough to lock. Who is going to change the password a lot during runtime? + // It won't overflow at least because incomingPasswordLength is an unsigned char + if (passwordDataLength>0) + memcpy(incomingPassword, passwordData, passwordDataLength); + incomingPasswordLength=(unsigned char)passwordDataLength; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetIncomingPassword( char* passwordData, int *passwordDataLength ) +{ + if (passwordData==0) + { + *passwordDataLength=incomingPasswordLength; + return; + } + + if (*passwordDataLength > incomingPasswordLength) + *passwordDataLength=incomingPasswordLength; + + if (*passwordDataLength>0) + memcpy(passwordData, incomingPassword, *passwordDataLength); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Call this to connect to the specified host (ip or domain name) and server port. +// Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. Calling both acts as a true peer. +// This is a non-blocking connection. You know the connection is successful when IsConnected() returns true +// or receive gets a packet with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. If the connection is not +// successful, such as rejected connection or no response then neither of these things will happen. +// Requires that you first call Initialize +// +// Parameters: +// host: Either a dotted IP address or a domain name +// remotePort: Which port to connect to on the remote machine. +// passwordData: A data block that must match the data block on the server. This can be just a password, or can be a stream of data +// passwordDataLength: The length in bytes of passwordData +// +// Returns: +// True on successful initiation. False on incorrect parameters, internal error, or too many existing peers +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ConnectionAttemptResult RakPeer::Connect( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime ) +{ + // If endThreads is true here you didn't call Startup() first. + if ( host == 0 || endThreads || connectionSocketIndex>=socketList.Size() ) + return INVALID_PARAMETER; + + RakAssert(remotePort!=0); + + connectionSocketIndex=GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + + if (passwordDataLength>255) + passwordDataLength=255; + + if (passwordData==0) + passwordDataLength=0; + + // Not threadsafe but it's not important enough to lock. Who is going to change the password a lot during runtime? + // It won't overflow at least because outgoingPasswordLength is an unsigned char +// if (passwordDataLength>0) +// memcpy(outgoingPassword, passwordData, passwordDataLength); +// outgoingPasswordLength=(unsigned char) passwordDataLength; + + // 04/02/09 - Can't remember why I disabled connecting to self, but it seems to work + // Connecting to ourselves in the same instance of the program? +// if ( ( strcmp( host, "127.0.0.1" ) == 0 || strcmp( host, "0.0.0.0" ) == 0 ) && remotePort == mySystemAddress[0].port ) +// return false; + + return SendConnectionRequest( host, remotePort, passwordData, passwordDataLength, publicKey, connectionSocketIndex, 0, sendConnectionAttemptCount, timeBetweenSendConnectionAttemptsMS, timeoutTime); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ConnectionAttemptResult RakPeer::ConnectWithSocket(const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSmartPtr socket, PublicKey *publicKey, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime) +{ + if ( host == 0 || endThreads || socket.IsNull() ) + return INVALID_PARAMETER; + + if (passwordDataLength>255) + passwordDataLength=255; + + if (passwordData==0) + passwordDataLength=0; + + return SendConnectionRequest( host, remotePort, passwordData, passwordDataLength, publicKey, 0, 0, sendConnectionAttemptCount, timeBetweenSendConnectionAttemptsMS, timeoutTime, socket ); + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Stops the network threads and close all connections. Multiple calls are ok. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::Shutdown( unsigned int blockDuration, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ + unsigned i,j; + bool anyActive; + RakNet::TimeMS startWaitingTime; +// SystemAddress systemAddress; + RakNet::TimeMS time; + //unsigned short systemListSize = remoteSystemListSize; // This is done for threading reasons + unsigned short systemListSize = maximumNumberOfPeers; + + if ( blockDuration > 0 ) + { + for ( i = 0; i < systemListSize; i++ ) + { + // remoteSystemList in user thread + if (remoteSystemList[i].isActive) + NotifyAndFlagForShutdown(remoteSystemList[i].systemAddress, false, orderingChannel, disconnectionNotificationPriority); + } + + time = RakNet::GetTimeMS(); + startWaitingTime = time; + while ( time - startWaitingTime < blockDuration ) + { + anyActive=false; + for (j=0; j < systemListSize; j++) + { + // remoteSystemList in user thread + if (remoteSystemList[j].isActive) + { + anyActive=true; + break; + } + } + + // If this system is out of packets to send, then stop waiting + if ( anyActive==false ) + break; + + // This will probably cause the update thread to run which will probably + // send the disconnection notification + + RakSleep(15); + time = RakNet::GetTimeMS(); + } + } + for (i=0; i < pluginListTS.Size(); i++) + { + pluginListTS[i]->OnRakPeerShutdown(); + } + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginListNTS[i]->OnRakPeerShutdown(); + } + + activeSystemListSize=0; + + quitAndDataEvents.SetEvent(); + + endThreads = true; + // Get recvfrom to unblock + for (i=0; i < socketList.Size(); i++) + { + SystemAddress sa2 = socketList[i]->boundAddress; + if (SocketLayer::SendTo(socketList[i]->s, (const char*) &i,1,sa2, socketList[i]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[i]->extraSocketOptions, _FILE_AND_LINE_)!=0) + break; + } + while ( isMainLoopThreadActive ) + { + endThreads = true; + RakSleep(15); + } + + RakNet::TimeMS timeout = RakNet::GetTimeMS()+1000; + while ( isRecvFromLoopThreadActive.GetValue()>0 && RakNet::GetTimeMS()boundAddress; + SocketLayer::SendTo(socketList[i]->s, (const char*) &i,1,sa2, socketList[i]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[i]->extraSocketOptions, _FILE_AND_LINE_); + } + + RakSleep(30); + } + +// char c=0; +// unsigned int socketIndex; + // remoteSystemList in Single thread + for ( i = 0; i < systemListSize; i++ ) + { + // Reserve this reliability layer for ourselves + remoteSystemList[ i ].isActive = false; + + // Remove any remaining packets + remoteSystemList[ i ].reliabilityLayer.Reset(false, remoteSystemList[ i ].MTUSize, false); + remoteSystemList[ i ].rakNetSocket.SetNull(); + + } + + + // Setting maximumNumberOfPeers to 0 allows remoteSystemList to be reallocated in Initialize. + // Setting remoteSystemListSize prevents threads from accessing the reliability layer + maximumNumberOfPeers = 0; + //remoteSystemListSize = 0; + + // Free any packets the user didn't deallocate + packetReturnMutex.Lock(); + for (i=0; i < packetReturnQueue.Size(); i++) + DeallocatePacket(packetReturnQueue[i]); + packetReturnQueue.Clear(_FILE_AND_LINE_); + packetReturnMutex.Unlock(); + packetAllocationPoolMutex.Lock(); + packetAllocationPool.Clear(_FILE_AND_LINE_); + packetAllocationPoolMutex.Unlock(); + + if (isRecvFromLoopThreadActive.GetValue()>0) + { + timeout = RakNet::GetTimeMS()+1000; + while ( isRecvFromLoopThreadActive.GetValue()>0 && RakNet::GetTimeMS() addresses; + DataStructures::List guids; + GetSystemList(addresses, guids); + if (remoteSystems) + { + unsigned short i; + for (i=0; i < *numberOfSystems && i < addresses.Size(); i++) + remoteSystems[i]=addresses[i]; + *numberOfSystems=i; + } + else + { + *numberOfSystems=(unsigned short) addresses.Size(); + } + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::GetNextSendReceipt(void) +{ + sendReceiptSerialMutex.Lock(); + uint32_t retVal = sendReceiptSerial; + sendReceiptSerialMutex.Unlock(); + return retVal; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::IncrementNextSendReceipt(void) +{ + sendReceiptSerialMutex.Lock(); + uint32_t returned = sendReceiptSerial; + if (++sendReceiptSerial==0) + sendReceiptSerial=1; + sendReceiptSerialMutex.Unlock(); + return returned; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sends a block of data to the specified system that you are connected to. +// This function only works while the client is connected (Use the Connect function). +// The first byte should be a message identifier starting at ID_USER_PACKET_ENUM +// +// Parameters: +// data: The block of data to send +// length: The size in bytes of the data to send +// bitStream: The bitstream to send +// priority: What priority level to send on. +// reliability: How reliability to send this data +// orderingChannel: When using ordered or sequenced packets, what channel to order these on. +// - Packets are only ordered relative to other packets on the same stream +// systemAddress: Who to send this packet to, or in the case of broadcasting who not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none +// broadcast: True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. +// Returns: +// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::Send( const char *data, const int length, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber ) +{ +#ifdef _DEBUG + RakAssert( data && length > 0 ); +#endif + RakAssert( !( reliability >= NUMBER_OF_RELIABILITIES || reliability < 0 ) ); + RakAssert( !( priority > NUMBER_OF_PRIORITIES || priority < 0 ) ); + RakAssert( !( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) ); + + if ( data == 0 || length < 0 ) + return 0; + + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + if ( broadcast == false && systemIdentifier.IsUndefined()) + return 0; + + uint32_t usedSendReceipt; + if (forceReceiptNumber!=0) + usedSendReceipt=forceReceiptNumber; + else + usedSendReceipt=IncrementNextSendReceipt(); + + if (broadcast==false && IsLoopbackAddress(systemIdentifier,true)) + { + SendLoopback(data,length); + + if (reliability>=UNRELIABLE_WITH_ACK_RECEIPT) + { + char buff[5]; + buff[0]=ID_SND_RECEIPT_ACKED; + sendReceiptSerialMutex.Lock(); + memcpy(buff+1, &sendReceiptSerial, 4); + sendReceiptSerialMutex.Unlock(); + SendLoopback( buff, 5 ); + } + + return usedSendReceipt; + } + + SendBuffered(data, length*8, priority, reliability, orderingChannel, systemIdentifier, broadcast, RemoteSystemStruct::NO_ACTION, usedSendReceipt); + + return usedSendReceipt; +} + +void RakPeer::SendLoopback( const char *data, const int length ) +{ + if ( data == 0 || length < 0 ) + return; + + Packet *packet = AllocPacket(length, _FILE_AND_LINE_); + memcpy(packet->data, data, length); + packet->systemAddress = GetLoopbackAddress(); + packet->guid=myGuid; + PushBackPacket(packet, false); +} + +uint32_t RakPeer::Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber ) +{ +#ifdef _DEBUG + RakAssert( bitStream->GetNumberOfBytesUsed() > 0 ); +#endif + + RakAssert( !( reliability >= NUMBER_OF_RELIABILITIES || reliability < 0 ) ); + RakAssert( !( priority > NUMBER_OF_PRIORITIES || priority < 0 ) ); + RakAssert( !( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) ); + + if ( bitStream->GetNumberOfBytesUsed() == 0 ) + return 0; + + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + if ( broadcast == false && systemIdentifier.IsUndefined() ) + return 0; + + uint32_t usedSendReceipt; + if (forceReceiptNumber!=0) + usedSendReceipt=forceReceiptNumber; + else + usedSendReceipt=IncrementNextSendReceipt(); + + if (broadcast==false && IsLoopbackAddress(systemIdentifier,true)) + { + SendLoopback((const char*) bitStream->GetData(),bitStream->GetNumberOfBytesUsed()); + if (reliability>=UNRELIABLE_WITH_ACK_RECEIPT) + { + char buff[5]; + buff[0]=ID_SND_RECEIPT_ACKED; + sendReceiptSerialMutex.Lock(); + memcpy(buff+1, &sendReceiptSerial,4); + sendReceiptSerialMutex.Unlock(); + SendLoopback( buff, 5 ); + } + return usedSendReceipt; + } + + // Sends need to be buffered and processed in the update thread because the systemAddress associated with the reliability layer can change, + // from that thread, resulting in a send to the wrong player! While I could mutex the systemAddress, that is much slower than doing this + SendBuffered((const char*)bitStream->GetData(), bitStream->GetNumberOfBitsUsed(), priority, reliability, orderingChannel, systemIdentifier, broadcast, RemoteSystemStruct::NO_ACTION, usedSendReceipt); + + + return usedSendReceipt; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Sends multiple blocks of data, concatenating them automatically. +// +// This is equivalent to: +// RakNet::BitStream bs; +// bs.WriteAlignedBytes(block1, blockLength1); +// bs.WriteAlignedBytes(block2, blockLength2); +// bs.WriteAlignedBytes(block3, blockLength3); +// Send(&bs, ...) +// +// This function only works while the connected +// \param[in] data An array of pointers to blocks of data +// \param[in] lengths An array of integers indicating the length of each block of data +// \param[in] numParameters Length of the arrays data and lengths +// \param[in] priority What priority level to send on. See PacketPriority.h +// \param[in] reliability How reliability to send this data. See PacketPriority.h +// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream +// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none +// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. +// \return False if we are not connected to the specified recipient. True otherwise +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::SendList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber ) +{ +#ifdef _DEBUG + RakAssert( data ); +#endif + + if ( data == 0 || lengths == 0 ) + return 0; + + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + if (numParameters==0) + return 0; + + if (lengths==0) + return 0; + + if ( broadcast == false && systemIdentifier.IsUndefined() ) + return 0; + + uint32_t usedSendReceipt; + if (forceReceiptNumber!=0) + usedSendReceipt=forceReceiptNumber; + else + usedSendReceipt=IncrementNextSendReceipt(); + + SendBufferedList(data, lengths, numParameters, priority, reliability, orderingChannel, systemIdentifier, broadcast, RemoteSystemStruct::NO_ACTION, usedSendReceipt); + + return usedSendReceipt; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Gets a packet from the incoming packet queue. Use DeallocatePacket to deallocate the packet after you are done with it. +// Check the Packet struct at the top of CoreNetworkStructures.h for the format of the struct +// +// Returns: +// 0 if no packets are waiting to be handled, otherwise an allocated packet +// If the client is not active this will also return 0, as all waiting packets are flushed when the client is Disconnected +// This also updates all memory blocks associated with synchronized memory and distributed objects +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#ifdef _MSC_VER +#pragma warning( disable : 4701 ) // warning C4701: local variable may be used without having been initialized +#endif +Packet* RakPeer::Receive( void ) +{ + if ( !( IsActive() ) ) + return 0; + + RakNet::Packet *packet; +// Packet **threadPacket; + PluginReceiveResult pluginResult; + + int offset; + unsigned int i; + + for (i=0; i < pluginListTS.Size(); i++) + { + pluginListTS[i]->Update(); + } + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginListNTS[i]->Update(); + } + + do + { + packetReturnMutex.Lock(); + if (packetReturnQueue.IsEmpty()) + packet=0; + else + packet = packetReturnQueue.Pop(); + packetReturnMutex.Unlock(); + if (packet==0) + return 0; + +// unsigned char msgId; + if ( ( packet->length >= sizeof(unsigned char) + sizeof( RakNet::Time ) ) && + ( (unsigned char) packet->data[ 0 ] == ID_TIMESTAMP ) ) + { + offset = sizeof(unsigned char); + ShiftIncomingTimestamp( packet->data + offset, packet->systemAddress ); +// msgId=packet->data[sizeof(unsigned char) + sizeof( RakNet::Time )]; + } +// else + // msgId=packet->data[0]; + + // Some locally generated packets need to be processed by plugins, for example ID_FCM2_NEW_HOST + // The plugin itself should intercept these messages generated remotely +// if (packet->wasGeneratedLocally) +// return packet; + + + CallPluginCallbacks(pluginListTS, packet); + CallPluginCallbacks(pluginListNTS, packet); + + for (i=0; i < pluginListTS.Size(); i++) + { + pluginResult=pluginListTS[i]->OnReceive(packet); + if (pluginResult==RR_STOP_PROCESSING_AND_DEALLOCATE) + { + DeallocatePacket( packet ); + packet=0; // Will do the loop again and get another packet + break; // break out of the enclosing for + } + else if (pluginResult==RR_STOP_PROCESSING) + { + packet=0; + break; + } + } + + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginResult=pluginListNTS[i]->OnReceive(packet); + if (pluginResult==RR_STOP_PROCESSING_AND_DEALLOCATE) + { + DeallocatePacket( packet ); + packet=0; // Will do the loop again and get another packet + break; // break out of the enclosing for + } + else if (pluginResult==RR_STOP_PROCESSING) + { + packet=0; + break; + } + } + + } while(packet==0); + +#ifdef _DEBUG + RakAssert( packet->data ); +#endif + + return packet; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Call this to deallocate a packet returned by Receive +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DeallocatePacket( Packet *packet ) +{ + if ( packet == 0 ) + return; + + if (packet->deleteData) + { + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + packet->~Packet(); + packetAllocationPoolMutex.Lock(); + packetAllocationPool.Release(packet,_FILE_AND_LINE_); + packetAllocationPoolMutex.Unlock(); + } + else + { + rakFree_Ex(packet, _FILE_AND_LINE_ ); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Return the total number of connections we are allowed +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::GetMaximumNumberOfPeers( void ) const +{ + return maximumNumberOfPeers; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). +// +// Parameters: +// target: Which connection to close +// sendDisconnectionNotification: True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. +// channel: If blockDuration > 0, the disconnect packet will be sent on this channel +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::CloseConnection( const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ + /* + // This only be called from the user thread, for the user shutting down. + // From the network thread, this should occur because of ID_DISCONNECTION_NOTIFICATION and ID_CONNECTION_LOST + unsigned j; + for (j=0; j < messageHandlerList.Size(); j++) + { + messageHandlerList[j]->OnClosedConnection( + target.systemAddress==UNASSIGNED_SYSTEM_ADDRESS ? GetSystemAddressFromGuid(target.rakNetGuid) : target.systemAddress, + target.rakNetGuid==UNASSIGNED_RAKNET_GUID ? GetGuidFromSystemAddress(target.systemAddress) : target.rakNetGuid, + LCR_CLOSED_BY_USER); + } + */ + + CloseConnectionInternal(target, sendDisconnectionNotification, false, orderingChannel, disconnectionNotificationPriority); + + // 12/14/09 Return ID_CONNECTION_LOST when calling CloseConnection with sendDisconnectionNotification==false, elsewise it is never returned + if (sendDisconnectionNotification==false && GetConnectionState(target)==IS_CONNECTED) + { + Packet *packet=AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_CONNECTION_LOST; // DeadConnection + packet->guid = target.rakNetGuid==UNASSIGNED_RAKNET_GUID ? GetGuidFromSystemAddress(target.systemAddress) : target.rakNetGuid; + packet->systemAddress = target.systemAddress==UNASSIGNED_SYSTEM_ADDRESS ? GetSystemAddressFromGuid(target.rakNetGuid) : target.systemAddress; + packet->systemAddress.systemIndex = (SystemIndex) GetIndexFromSystemAddress(packet->systemAddress); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + packet->wasGeneratedLocally=true; // else processed twice + AddPacketToProducer(packet); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Cancel a pending connection attempt +// If we are already connected, the connection stays open +// \param[in] target Which system to cancel +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::CancelConnectionAttempt( const SystemAddress target ) +{ + unsigned int i; + + // Cancel pending connection attempt, if there is one + i=0; + requestedConnectionQueueMutex.Lock(); + while (i < requestedConnectionQueue.Size()) + { + if (requestedConnectionQueue[i]->systemAddress==target) + { +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Deleting requestedConnectionQueue %i client_handshake %x\n", i, requestedConnectionQueue[ i ]->client_handshake); + RakNet::OP_DELETE(requestedConnectionQueue[i]->client_handshake, _FILE_AND_LINE_ ); +#endif + RakNet::OP_DELETE(requestedConnectionQueue[i], _FILE_AND_LINE_ ); + requestedConnectionQueue.RemoveAtIndex(i); + break; + } + else + i++; + } + requestedConnectionQueueMutex.Unlock(); + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ConnectionState RakPeer::GetConnectionState(const AddressOrGUID systemIdentifier) +{ + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + unsigned int i=0; + requestedConnectionQueueMutex.Lock(); + for (; i < requestedConnectionQueue.Size(); i++) + { + if (requestedConnectionQueue[i]->systemAddress==systemIdentifier.systemAddress) + { + requestedConnectionQueueMutex.Unlock(); + return IS_PENDING; + } + } + requestedConnectionQueueMutex.Unlock(); + } + + int index; + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + index = GetIndexFromSystemAddress(systemIdentifier.systemAddress, false); + } + else + { + index = GetIndexFromGuid(systemIdentifier.rakNetGuid); + } + + if (index==-1) + return IS_NOT_CONNECTED; + + if (remoteSystemList[index].isActive==false) + return IS_DISCONNECTED; + + switch (remoteSystemList[index].connectMode) + { + case RemoteSystemStruct::DISCONNECT_ASAP: + return IS_DISCONNECTING; + case RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY: + return IS_SILENTLY_DISCONNECTING; + case RemoteSystemStruct::DISCONNECT_ON_NO_ACK: + return IS_DISCONNECTING; + case RemoteSystemStruct::REQUESTED_CONNECTION: + return IS_CONNECTING; + case RemoteSystemStruct::HANDLING_CONNECTION_REQUEST: + return IS_CONNECTING; + case RemoteSystemStruct::UNVERIFIED_SENDER: + return IS_CONNECTING; + case RemoteSystemStruct::CONNECTED: + return IS_CONNECTED; + default: + return IS_NOT_CONNECTED; + } + + return IS_NOT_CONNECTED; +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Given a systemAddress, returns an index from 0 to the maximum number of players allowed - 1. +// +// Parameters +// systemAddress - The systemAddress to search for +// +// Returns +// An integer from 0 to the maximum number of peers -1, or -1 if that player is not found +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetIndexFromSystemAddress( const SystemAddress systemAddress ) const +{ + return GetIndexFromSystemAddress(systemAddress, false); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// This function is only useful for looping through all players. +// +// Parameters +// index - an integer between 0 and the maximum number of players allowed - 1. +// +// Returns +// A valid systemAddress or UNASSIGNED_SYSTEM_ADDRESS if no such player at that index +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetSystemAddressFromIndex( int index ) +{ + // remoteSystemList in user thread + //if ( index >= 0 && index < remoteSystemListSize ) + if ( index >= 0 && index < maximumNumberOfPeers ) + if (remoteSystemList[index].isActive && remoteSystemList[ index ].connectMode==RakPeer::RemoteSystemStruct::CONNECTED) // Don't give the user players that aren't fully connected, since sends will fail + return remoteSystemList[ index ].systemAddress; + + return UNASSIGNED_SYSTEM_ADDRESS; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Same as GetSystemAddressFromIndex but returns RakNetGUID +// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. +// \return The RakNetGUID +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakNetGUID RakPeer::GetGUIDFromIndex( int index ) +{ + // remoteSystemList in user thread + //if ( index >= 0 && index < remoteSystemListSize ) + if ( index >= 0 && index < maximumNumberOfPeers ) + if (remoteSystemList[index].isActive && remoteSystemList[ index ].connectMode==RakPeer::RemoteSystemStruct::CONNECTED) // Don't give the user players that aren't fully connected, since sends will fail + return remoteSystemList[ index ].guid; + + return UNASSIGNED_RAKNET_GUID; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient +// Indices match each other, so \a addresses[0] and \a guids[0] refer to the same system +// \param[out] addresses All system addresses. Size of the list is the number of connections. Size of the list will match the size of the \a guids list. +// \param[out] guids All guids. Size of the list is the number of connections. Size of the list will match the size of the \a addresses list. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetSystemList(DataStructures::List &addresses, DataStructures::List &guids) const +{ + addresses.Clear(false, _FILE_AND_LINE_); + guids.Clear(false, _FILE_AND_LINE_); + + if ( remoteSystemList == 0 || endThreads == true ) + return; + + unsigned int i; + for (i=0; i < activeSystemListSize; i++) + { + if ((activeSystemList[i])->isActive && + (activeSystemList[i])->connectMode==RakPeer::RemoteSystemStruct::CONNECTED) + { + addresses.Push((activeSystemList[i])->systemAddress, _FILE_AND_LINE_ ); + guids.Push((activeSystemList[i])->guid, _FILE_AND_LINE_ ); + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Bans an IP from connecting. Banned IPs persist between connections. +// +// Parameters +// IP - Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will ban +// All IP addresses starting with 128.0.0 +// milliseconds - how many ms for a temporary ban. Use 0 for a permanent ban +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AddToBanList( const char *IP, RakNet::TimeMS milliseconds ) +{ + unsigned index; + RakNet::TimeMS time = RakNet::GetTimeMS(); + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return ; + + // If this guy is already in the ban list, do nothing + index = 0; + + banListMutex.Lock(); + + for ( ; index < banList.Size(); index++ ) + { + if ( strcmp( IP, banList[ index ]->IP ) == 0 ) + { + // Already in the ban list. Just update the time + if (milliseconds==0) + banList[ index ]->timeout=0; // Infinite + else + banList[ index ]->timeout=time+milliseconds; + banListMutex.Unlock(); + return; + } + } + + banListMutex.Unlock(); + + BanStruct *banStruct = RakNet::OP_NEW( _FILE_AND_LINE_ ); + banStruct->IP = (char*) rakMalloc_Ex( 16, _FILE_AND_LINE_ ); + if (milliseconds==0) + banStruct->timeout=0; // Infinite + else + banStruct->timeout=time+milliseconds; + strcpy( banStruct->IP, IP ); + banListMutex.Lock(); + banList.Insert( banStruct, _FILE_AND_LINE_ ); + banListMutex.Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Allows a previously banned IP to connect. +// +// Parameters +// IP - Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will ban +// All IP addresses starting with 128.0.0 +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::RemoveFromBanList( const char *IP ) +{ + unsigned index; + BanStruct *temp; + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return ; + + index = 0; + temp=0; + + banListMutex.Lock(); + + for ( ; index < banList.Size(); index++ ) + { + if ( strcmp( IP, banList[ index ]->IP ) == 0 ) + { + temp = banList[ index ]; + banList[ index ] = banList[ banList.Size() - 1 ]; + banList.RemoveAtIndex( banList.Size() - 1 ); + break; + } + } + + banListMutex.Unlock(); + + if (temp) + { + rakFree_Ex(temp->IP, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(temp, _FILE_AND_LINE_); + } + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Allows all previously banned IPs to connect. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearBanList( void ) +{ + unsigned index; + index = 0; + banListMutex.Lock(); + + for ( ; index < banList.Size(); index++ ) + { + rakFree_Ex(banList[ index ]->IP, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(banList[ index ], _FILE_AND_LINE_); + } + + banList.Clear(false, _FILE_AND_LINE_); + + banListMutex.Unlock(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetLimitIPConnectionFrequency(bool b) +{ + limitConnectionFrequencyFromTheSameIP=b; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Determines if a particular IP is banned. +// +// Parameters +// IP - Complete dotted IP address +// +// Returns +// True if IP matches any IPs in the ban list, accounting for any wildcards. +// False otherwise. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsBanned( const char *IP ) +{ + unsigned banListIndex, characterIndex; + RakNet::TimeMS time; + BanStruct *temp; + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return false; + + banListIndex = 0; + + if ( banList.Size() == 0 ) + return false; // Skip the mutex if possible + + time = RakNet::GetTimeMS(); + + banListMutex.Lock(); + + while ( banListIndex < banList.Size() ) + { + if (banList[ banListIndex ]->timeout>0 && banList[ banListIndex ]->timeoutIP, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(temp, _FILE_AND_LINE_); + } + else + { + characterIndex = 0; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) + { + if ( banList[ banListIndex ]->IP[ characterIndex ] == IP[ characterIndex ] ) + { + // Equal characters + + if ( IP[ characterIndex ] == 0 ) + { + banListMutex.Unlock(); + // End of the string and the strings match + + return true; + } + + characterIndex++; + } + + else + { + if ( banList[ banListIndex ]->IP[ characterIndex ] == 0 || IP[ characterIndex ] == 0 ) + { + // End of one of the strings + break; + } + + // Characters do not match + if ( banList[ banListIndex ]->IP[ characterIndex ] == '*' ) + { + banListMutex.Unlock(); + + // Domain is banned. + return true; + } + + // Characters do not match and it is not a * + break; + } + } + + banListIndex++; + } + } + + banListMutex.Unlock(); + + // No match found. + return false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Send a ping to the specified connected system. +// +// Parameters: +// target - who to ping +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::Ping( const SystemAddress target ) +{ + PingInternal(target, false, UNRELIABLE); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Send a ping to the specified unconnected system. +// The remote system, if it is Initialized, will respond with ID_UNCONNECTED_PONG. +// The final ping time will be encoded in the following sizeof(RakNet::TimeMS) bytes. (Default is 4 bytes - See __GET_TIME_64BIT in RakNetTypes.h +// +// Parameters: +// host: Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. +// remotePort: Which port to connect to on the remote machine. +// onlyReplyOnAcceptingConnections: Only request a reply if the remote system has open connections +// connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::Ping( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex ) +{ + if ( host == 0 ) + return false; + + // If this assert hits then Startup wasn't called or the call failed. + RakAssert(connectionSocketIndex < socketList.Size()); + +// if ( IsActive() == false ) +// return; + + RakNet::BitStream bitStream( sizeof(unsigned char) + sizeof(RakNet::Time) ); + if ( onlyReplyOnAcceptingConnections ) + bitStream.Write((MessageID)ID_UNCONNECTED_PING_OPEN_CONNECTIONS); + else + bitStream.Write((MessageID)ID_UNCONNECTED_PING); + + bitStream.Write(RakNet::GetTime()); + + bitStream.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + + // No timestamp for 255.255.255.255 + unsigned int realIndex = GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + + SystemAddress systemAddress; + systemAddress.FromStringExplicitPort(host,remotePort, socketList[realIndex]->boundAddress.GetIPVersion()); + systemAddress.FixForIPVersion(socketList[realIndex]->boundAddress); + + unsigned i; + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnDirectSocketSend((const char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( socketList[realIndex]->s, (const char*)bitStream.GetData(), (int) bitStream.GetNumberOfBytesUsed(), systemAddress, socketList[realIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[realIndex]->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the average of all ping times read for a specified target +// +// Parameters: +// target - whose time to read +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetAveragePing( const AddressOrGUID systemIdentifier ) +{ + int sum, quantity; + RemoteSystemStruct *remoteSystem = GetRemoteSystem( systemIdentifier, false, false ); + + if ( remoteSystem == 0 ) + return -1; + + for ( sum = 0, quantity = 0; quantity < PING_TIMES_ARRAY_SIZE; quantity++ ) + { + if ( remoteSystem->pingAndClockDifferential[ quantity ].pingTime == 65535 ) + break; + else + sum += remoteSystem->pingAndClockDifferential[ quantity ].pingTime; + } + + if ( quantity > 0 ) + return sum / quantity; + else + return -1; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the last ping time read for the specific player or -1 if none read yet +// +// Parameters: +// target - whose time to read +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetLastPing( const AddressOrGUID systemIdentifier ) const +{ + RemoteSystemStruct * remoteSystem = GetRemoteSystem( systemIdentifier, false, false ); + + if ( remoteSystem == 0 ) + return -1; + +// return (int)(remoteSystem->reliabilityLayer.GetAckPing()/(RakNet::TimeUS)1000); + + if ( remoteSystem->pingAndClockDifferentialWriteIndex == 0 ) + return remoteSystem->pingAndClockDifferential[ PING_TIMES_ARRAY_SIZE - 1 ].pingTime; + else + return remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex - 1 ].pingTime; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the lowest ping time read or -1 if none read yet +// +// Parameters: +// target - whose time to read +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetLowestPing( const AddressOrGUID systemIdentifier ) const +{ + RemoteSystemStruct * remoteSystem = GetRemoteSystem( systemIdentifier, false, false ); + + if ( remoteSystem == 0 ) + return -1; + + return remoteSystem->lowestPing; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Ping the remote systems every so often. This is off by default +// This will work anytime +// +// Parameters: +// doPing - True to start occasional pings. False to stop them. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetOccasionalPing( bool doPing ) +{ + occasionalPing = doPing; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Length should be under 400 bytes, as a security measure against flood attacks +// Sets the data to send with an (LAN server discovery) /(offline ping) response +// See the Ping sample project for how this is used. +// data: a block of data to store, or 0 for none +// length: The length of data in bytes, or 0 for none +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetOfflinePingResponse( const char *data, const unsigned int length ) +{ + RakAssert(length < 400); + + rakPeerMutexes[ offlinePingResponse_Mutex ].Lock(); + offlinePingResponse.Reset(); + + if ( data && length > 0 ) + offlinePingResponse.Write( data, length ); + + rakPeerMutexes[ offlinePingResponse_Mutex ].Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns pointers to a copy of the data passed to SetOfflinePingResponse +// \param[out] data A pointer to a copy of the data passed to \a SetOfflinePingResponse() +// \param[out] length A pointer filled in with the length parameter passed to SetOfflinePingResponse() +// \sa SetOfflinePingResponse +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetOfflinePingResponse( char **data, unsigned int *length ) +{ + rakPeerMutexes[ offlinePingResponse_Mutex ].Lock(); + *data = (char*) offlinePingResponse.GetData(); + *length = (int) offlinePingResponse.GetNumberOfBytesUsed(); + rakPeerMutexes[ offlinePingResponse_Mutex ].Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Return the unique SystemAddress that represents you on the the network +// Note that unlike in previous versions, this is a struct and is not sequential +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetInternalID( const SystemAddress systemAddress, const int index ) const +{ + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + return ipList[index]; + } + else + { + +// SystemAddress returnValue; + RemoteSystemStruct * remoteSystem = GetRemoteSystemFromSystemAddress( systemAddress, false, true ); + if (remoteSystem==0) + return UNASSIGNED_SYSTEM_ADDRESS; + + return remoteSystem->theirInternalSystemAddress[index]; + /* + sockaddr_in sa; + socklen_t len = sizeof(sa); + if (getsockname__(connectionSockets[remoteSystem->connectionSocketIndex], (sockaddr*)&sa, &len)!=0) + return UNASSIGNED_SYSTEM_ADDRESS; + returnValue.port=ntohs(sa.sin_port); + returnValue.binaryAddress=sa.sin_addr.s_addr; + return returnValue; +*/ + + + + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Return the unique address identifier that represents you on the the network and is based on your external +// IP / port (the IP / port the specified player uses to communicate with you) +// Note that unlike in previous versions, this is a struct and is not sequential +// +// Parameters: +// target: Which remote system you are referring to for your external ID +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetExternalID( const SystemAddress target ) const +{ + unsigned i; + SystemAddress inactiveExternalId; + + inactiveExternalId=UNASSIGNED_SYSTEM_ADDRESS; + + if (target==UNASSIGNED_SYSTEM_ADDRESS) + return firstExternalID; + + // First check for active connection with this systemAddress + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].systemAddress == target ) + { + if ( remoteSystemList[ i ].isActive ) + return remoteSystemList[ i ].myExternalSystemAddress; + else if (remoteSystemList[ i ].myExternalSystemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + inactiveExternalId=remoteSystemList[ i ].myExternalSystemAddress; + } + } + + return inactiveExternalId; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +const RakNetGUID RakPeer::GetMyGUID(void) const +{ + return myGuid; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetMyBoundAddress(const int socketIndex) +{ + DataStructures::List > sockets; + GetSockets( sockets ); + if (sockets.Size()>0) + return sockets[socketIndex]->boundAddress; + else + return UNASSIGNED_SYSTEM_ADDRESS; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +const RakNetGUID& RakPeer::GetGuidFromSystemAddress( const SystemAddress input ) const +{ + if (input==UNASSIGNED_SYSTEM_ADDRESS) + return myGuid; + + if (input.systemIndex!=(SystemIndex)-1 && input.systemIndexreliabilityLayer.SetTimeoutTime(timeMS); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNet::TimeMS RakPeer::GetTimeoutTime( const SystemAddress target ) +{ + if (target==UNASSIGNED_SYSTEM_ADDRESS) + { + return defaultTimeoutTime; + } + else + { + RemoteSystemStruct * remoteSystem = GetRemoteSystemFromSystemAddress( target, false, true ); + + if ( remoteSystem != 0 ) + remoteSystem->reliabilityLayer.GetTimeoutTime(); + } + return defaultTimeoutTime; +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the current MTU size +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetMTUSize( const SystemAddress target ) const +{ + if (target!=UNASSIGNED_SYSTEM_ADDRESS) + { + RemoteSystemStruct *rss=GetRemoteSystemFromSystemAddress(target, false, true); + if (rss) + return rss->MTUSize; + } + return defaultMTUSize; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the number of IP addresses we have +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetNumberOfAddresses( void ) +{ + + int i = 0; + + while ( ipList[ i ]!=UNASSIGNED_SYSTEM_ADDRESS ) + i++; + + return i; + + + + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns an IP address at index 0 to GetNumberOfAddresses-1 +// \param[in] index index into the list of IP addresses +// \return The local IP address at this index +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +const char* RakPeer::GetLocalIP( unsigned int index ) +{ + if (IsActive()==false) + { + // Fill out ipList structure + + SocketLayer::GetMyIP( ipList ); + + } + + + static char str[128]; + ipList[index].ToString(false,str); + return str; + + + + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Is this a local IP? +// \param[in] An IP address to check +// \return True if this is one of the IP addresses returned by GetLocalIP +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsLocalIP( const char *ip ) +{ + if (ip==0 || ip[0]==0) + return false; + + + if (strcmp(ip, "127.0.0.1")==0 || strcmp(ip, "localhost")==0) + return true; + + int num = GetNumberOfAddresses(); + int i; + for (i=0; i < num; i++) + { + if (strcmp(ip, GetLocalIP(i))==0) + return true; + } + + + + + return false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Allow or disallow connection responses from any IP. Normally this should be false, but may be necessary +// when connection to servers with multiple IP addresses +// +// Parameters: +// allow - True to allow this behavior, false to not allow. Defaults to false. Value persists between connections +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AllowConnectionResponseIPMigration( bool allow ) +{ + allowConnectionResponseIPMigration = allow; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sends a message ID_ADVERTISE_SYSTEM to the remote unconnected system. +// This will tell the remote system our external IP outside the LAN, and can be used for NAT punch through +// +// Requires: +// The sender and recipient must already be started via a successful call to Initialize +// +// host: Either a dotted IP address or a domain name +// remotePort: Which port to connect to on the remote machine. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::AdvertiseSystem( const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex ) +{ + RakNet::BitStream bs; + bs.Write((MessageID)ID_ADVERTISE_SYSTEM); + bs.WriteAlignedBytes((const unsigned char*) data,dataLength); + return SendOutOfBand(host, remotePort, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), connectionSocketIndex ); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. +// ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived +// As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. +// Defaults to 0 (never return this notification) +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetSplitMessageProgressInterval(int interval) +{ + RakAssert(interval>=0); + splitMessageProgressInterval=interval; + for ( unsigned short i = 0; i < maximumNumberOfPeers; i++ ) + remoteSystemList[ i ].reliabilityLayer.SetSplitMessageProgressInterval(splitMessageProgressInterval); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns what was passed to SetSplitMessageProgressInterval() +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetSplitMessageProgressInterval(void) const +{ + return splitMessageProgressInterval; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Set how long to wait before giving up on sending an unreliable message +// Useful if the network is clogged up. +// Set to 0 or less to never timeout. Defaults to 0. +// timeoutMS How many ms to wait before simply not sending an unreliable message. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetUnreliableTimeout(RakNet::TimeMS timeoutMS) +{ + unreliableTimeout=timeoutMS; + for ( unsigned short i = 0; i < maximumNumberOfPeers; i++ ) + remoteSystemList[ i ].reliabilityLayer.SetUnreliableTimeout(unreliableTimeout); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Send a message to host, with the IP socket option TTL set to 3 +// This message will not reach the host, but will open the router. +// Used for NAT-Punchthrough +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SendTTL( const char* host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex ) +{ + char fakeData[2]; + fakeData[0]=0; + fakeData[1]=1; + unsigned int realIndex = GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + SystemAddress systemAddress = socketList[realIndex]->boundAddress; + systemAddress.FromStringExplicitPort(host,remotePort); + SocketLayer::SendToTTL( socketList[realIndex]->s, (char*)fakeData, 2, systemAddress, ttl ); +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Attatches a Plugin interface to run code automatically on message receipt in the Receive call +// +// \param messageHandler Pointer to a plugin to attach +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AttachPlugin( PluginInterface2 *plugin ) +{ + bool isNotThreadsafe = plugin->UsesReliabilityLayer(); + if (isNotThreadsafe) + { + if (pluginListNTS.GetIndexOf(plugin)==MAX_UNSIGNED_LONG) + { + plugin->SetRakPeerInterface(this); + plugin->OnAttach(); + pluginListNTS.Insert(plugin, _FILE_AND_LINE_); + } + } + else + { + if (pluginListTS.GetIndexOf(plugin)==MAX_UNSIGNED_LONG) + { + plugin->SetRakPeerInterface(this); + plugin->OnAttach(); + pluginListTS.Insert(plugin, _FILE_AND_LINE_); + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Detaches a Plugin interface to run code automatically on message receipt +// +// \param messageHandler Pointer to a plugin to detach +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DetachPlugin( PluginInterface2 *plugin ) +{ + if (plugin==0) + return; + + unsigned int index; + + bool isNotThreadsafe = plugin->UsesReliabilityLayer(); + if (isNotThreadsafe) + { + index = pluginListNTS.GetIndexOf(plugin); + if (index!=MAX_UNSIGNED_LONG) + { + // Unordered list so delete from end for speed + pluginListNTS[index]=pluginListNTS[pluginListNTS.Size()-1]; + pluginListNTS.RemoveFromEnd(); + } + } + else + { + index = pluginListTS.GetIndexOf(plugin); + if (index!=MAX_UNSIGNED_LONG) + { + // Unordered list so delete from end for speed + pluginListTS[index]=pluginListTS[pluginListTS.Size()-1]; + pluginListTS.RemoveFromEnd(); + } + } + plugin->OnDetach(); + plugin->SetRakPeerInterface(0); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Put a packet back at the end of the receive queue in case you don't want to deal with it immediately +// +// packet The packet you want to push back. +// pushAtHead True to push the packet so that the next receive call returns it. False to push it at the end of the queue (obviously pushing it at the end makes the packets out of order) +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::PushBackPacket( Packet *packet, bool pushAtHead) +{ + if (packet==0) + return; + + unsigned i; + for (i=0; i < pluginListTS.Size(); i++) + pluginListTS[i]->OnPushBackPacket((const char*) packet->data, packet->bitSize, packet->systemAddress); + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnPushBackPacket((const char*) packet->data, packet->bitSize, packet->systemAddress); + + packetReturnMutex.Lock(); + if (pushAtHead) + packetReturnQueue.PushAtHead(packet,0,_FILE_AND_LINE_); + else + packetReturnQueue.Push(packet,_FILE_AND_LINE_); + packetReturnMutex.Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ChangeSystemAddress(RakNetGUID guid, const SystemAddress &systemAddress) +{ + BufferedCommandStruct *bcs; + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->data = 0; + bcs->systemIdentifier.systemAddress=systemAddress; + bcs->systemIdentifier.rakNetGuid=guid; + bcs->command=BufferedCommandStruct::BCS_CHANGE_SYSTEM_ADDRESS; + bufferedCommands.Push(bcs); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Packet* RakPeer::AllocatePacket(unsigned dataSize) +{ + return AllocPacket(dataSize, _FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakNetSmartPtr RakPeer::GetSocket( const SystemAddress target ) +{ + // Send a query to the thread to get the socket, and return when we got it + BufferedCommandStruct *bcs; + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->command=BufferedCommandStruct::BCS_GET_SOCKET; + bcs->systemIdentifier=target; + bcs->data=0; + bufferedCommands.Push(bcs); + + // Block up to one second to get the socket, although it should actually take virtually no time + SocketQueryOutput *sqo; + RakNet::TimeMS stopWaiting = RakNet::GetTimeMS()+1000; + DataStructures::List > output; + while (RakNet::GetTimeMS() < stopWaiting) + { + if (isMainLoopThreadActive==false) + return RakNetSmartPtr(); + + RakSleep(0); + + sqo = socketQueryOutput.Pop(); + if (sqo) + { + output=sqo->sockets; + sqo->sockets.Clear(false, _FILE_AND_LINE_); + socketQueryOutput.Deallocate(sqo, _FILE_AND_LINE_); + if (output.Size()) + return output[0]; + break; + } + } + return RakNetSmartPtr(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetSockets( DataStructures::List > &sockets ) +{ + sockets.Clear(false, _FILE_AND_LINE_); + + // Send a query to the thread to get the socket, and return when we got it + BufferedCommandStruct *bcs; + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->command=BufferedCommandStruct::BCS_GET_SOCKET; + bcs->systemIdentifier=UNASSIGNED_SYSTEM_ADDRESS; + bcs->data=0; + bufferedCommands.Push(bcs); + + // Block up to one second to get the socket, although it should actually take virtually no time + SocketQueryOutput *sqo; + RakNetSmartPtr output; + while (1) + { + if (isMainLoopThreadActive==false) + return; + + RakSleep(0); + + sqo = socketQueryOutput.Pop(); + if (sqo) + { + sockets=sqo->sockets; + sqo->sockets.Clear(false, _FILE_AND_LINE_); + socketQueryOutput.Deallocate(sqo, _FILE_AND_LINE_); + return; + } + } + return; +} +void RakPeer::ReleaseSockets( DataStructures::List > &sockets ) +{ + sockets.Clear(false,_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Adds simulated ping and packet loss to the outgoing data flow. +// To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and maxSendBPS value on each. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ApplyNetworkSimulator( float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance) +{ +#ifdef _DEBUG + if (remoteSystemList) + { + unsigned short i; + for (i=0; i < maximumNumberOfPeers; i++) + //for (i=0; i < remoteSystemListSize; i++) + remoteSystemList[i].reliabilityLayer.ApplyNetworkSimulator(packetloss, minExtraPing, extraPingVariance); + } + + _packetloss=packetloss; + _minExtraPing=minExtraPing; + _extraPingVariance=extraPingVariance; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void RakPeer::SetPerConnectionOutgoingBandwidthLimit( unsigned maxBitsPerSecond ) +{ + maxOutgoingBPS=maxBitsPerSecond; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns if you previously called ApplyNetworkSimulator +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsNetworkSimulatorActive( void ) +{ +#ifdef _DEBUG + return _packetloss>0 || _minExtraPing>0 || _extraPingVariance>0; +#else + return false; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::WriteOutOfBandHeader(RakNet::BitStream *bitStream) +{ + bitStream->Write((MessageID)ID_OUT_OF_BAND_INTERNAL); + bitStream->Write(myGuid); + bitStream->WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetUserUpdateThread(void (*_userUpdateThreadPtr)(RakPeerInterface *, void *), void *_userUpdateThreadData) +{ + userUpdateThreadPtr=_userUpdateThreadPtr; + userUpdateThreadData=_userUpdateThreadData; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::SendOutOfBand(const char *host, unsigned short remotePort, const char *data, BitSize_t dataLength, unsigned connectionSocketIndex ) +{ + if ( IsActive() == false ) + return false; + + if (host==0 || host[0]==0) + return false; + + // If this assert hits then Startup wasn't called or the call failed. + RakAssert(connectionSocketIndex < socketList.Size()); + + // This is a security measure. Don't send data longer than this value + RakAssert(dataLength <= (MAX_OFFLINE_DATA_LENGTH + sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID))); + + if (host==0) + return false; + + // 34 bytes + RakNet::BitStream bitStream; + WriteOutOfBandHeader(&bitStream); + + if (dataLength>0) + { + bitStream.Write(data, dataLength); + } + + unsigned int realIndex = GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + + SystemAddress systemAddress; + systemAddress.FromStringExplicitPort(host,remotePort, socketList[realIndex]->boundAddress.GetIPVersion()); + systemAddress.FixForIPVersion(socketList[realIndex]->boundAddress); + + unsigned i; + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnDirectSocketSend((const char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), systemAddress); + + SocketLayer::SendTo( socketList[realIndex]->s, (const char*)bitStream.GetData(), (int) bitStream.GetNumberOfBytesUsed(), systemAddress, socketList[realIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[realIndex]->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakNetStatistics * RakPeer::GetStatistics( const SystemAddress systemAddress, RakNetStatistics *rns ) +{ + static RakNetStatistics staticStatistics; + RakNetStatistics *systemStats; + if (rns==0) + systemStats=&staticStatistics; + else + systemStats=rns; + + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + bool firstWrite=false; + // Return a crude sum + for ( unsigned short i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].isActive) + { + RakNetStatistics rnsTemp; + remoteSystemList[ i ].reliabilityLayer.GetStatistics(&rnsTemp); + + if (firstWrite==false) + { + memcpy(systemStats, &rnsTemp, sizeof(RakNetStatistics)); + firstWrite=true; + } + else + (*systemStats)+=rnsTemp; + } + } + return systemStats; + } + else + { + RemoteSystemStruct * rss; + rss = GetRemoteSystemFromSystemAddress( systemAddress, false, false ); + if ( rss && endThreads==false ) + { + rss->reliabilityLayer.GetStatistics(systemStats); + return systemStats; + } + } + + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::GetStatistics( const int index, RakNetStatistics *rns ) +{ + if (index < maximumNumberOfPeers && remoteSystemList[ index ].isActive) + { + remoteSystemList[ index ].reliabilityLayer.GetStatistics(rns); + return true; + } + return false; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetReceiveBufferSize(void) +{ + unsigned int size; + packetReturnMutex.Lock(); + size=packetReturnQueue.Size(); + packetReturnMutex.Unlock(); + return size; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetIndexFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread ) const +{ + unsigned i; + + if ( systemAddress == UNASSIGNED_SYSTEM_ADDRESS ) + return -1; + + if (systemAddress.systemIndex!=(SystemIndex)-1 && systemAddress.systemIndex < maximumNumberOfPeers && remoteSystemList[systemAddress.systemIndex].systemAddress==systemAddress && remoteSystemList[ systemAddress.systemIndex ].isActive) + return systemAddress.systemIndex; + + if (calledFromNetworkThread) + { + return GetRemoteSystemIndex(systemAddress); + } + else + { + // remoteSystemList in user and network thread + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].isActive && remoteSystemList[ i ].systemAddress == systemAddress ) + return i; + + // If no active results found, try previously active results. + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].systemAddress == systemAddress ) + return i; + } + + return -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetIndexFromGuid( const RakNetGUID guid ) +{ + unsigned i; + + if ( guid == UNASSIGNED_RAKNET_GUID ) + return -1; + + if (guid.systemIndex!=(SystemIndex)-1 && guid.systemIndex < maximumNumberOfPeers && remoteSystemList[guid.systemIndex].guid==guid && remoteSystemList[ guid.systemIndex ].isActive) + return guid.systemIndex; + + // remoteSystemList in user and network thread + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].isActive && remoteSystemList[ i ].guid == guid ) + return i; + + // If no active results found, try previously active results. + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].guid == guid ) + return i; + + return -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#if LIBCAT_SECURITY==1 +bool RakPeer::GenerateConnectionRequestChallenge(RequestedConnectionStruct *rcs,PublicKey *publicKey) +{ + CAT_AUDIT_PRINTF("AUDIT: In GenerateConnectionRequestChallenge()\n"); + + rcs->client_handshake = 0; + rcs->publicKeyMode = PKM_INSECURE_CONNECTION; + + if (!publicKey) return true; + + switch (publicKey->publicKeyMode) + { + default: + case PKM_INSECURE_CONNECTION: + break; + + case PKM_ACCEPT_ANY_PUBLIC_KEY: + CAT_OBJCLR(rcs->remote_public_key); + rcs->client_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + + rcs->publicKeyMode = PKM_ACCEPT_ANY_PUBLIC_KEY; + break; + + case PKM_USE_TWO_WAY_AUTHENTICATION: + if (publicKey->myPublicKey == 0 || publicKey->myPrivateKey == 0 || + publicKey->remoteServerPublicKey == 0) + { + return false; + } + + rcs->client_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + memcpy(rcs->remote_public_key, publicKey->remoteServerPublicKey, cat::EasyHandshake::PUBLIC_KEY_BYTES); + + if (!rcs->client_handshake->Initialize(publicKey->remoteServerPublicKey) || + !rcs->client_handshake->SetIdentity(publicKey->myPublicKey, publicKey->myPrivateKey) || + !rcs->client_handshake->GenerateChallenge(rcs->handshakeChallenge)) + { + CAT_AUDIT_PRINTF("AUDIT: Failure initializing new client_handshake object with identity for this RequestedConnectionStruct\n"); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + rcs->client_handshake=0; + return false; + } + + CAT_AUDIT_PRINTF("AUDIT: Success initializing new client handshake object with identity for this RequestedConnectionStruct -- pre-generated challenge\n"); + + rcs->publicKeyMode = PKM_USE_TWO_WAY_AUTHENTICATION; + break; + + case PKM_USE_KNOWN_PUBLIC_KEY: + if (publicKey->remoteServerPublicKey == 0) + return false; + + rcs->client_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + memcpy(rcs->remote_public_key, publicKey->remoteServerPublicKey, cat::EasyHandshake::PUBLIC_KEY_BYTES); + + if (!rcs->client_handshake->Initialize(publicKey->remoteServerPublicKey) || + !rcs->client_handshake->GenerateChallenge(rcs->handshakeChallenge)) + { + CAT_AUDIT_PRINTF("AUDIT: Failure initializing new client_handshake object for this RequestedConnectionStruct\n"); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + rcs->client_handshake=0; + return false; + } + + CAT_AUDIT_PRINTF("AUDIT: Success initializing new client handshake object for this RequestedConnectionStruct -- pre-generated challenge\n"); + + rcs->publicKeyMode = PKM_USE_KNOWN_PUBLIC_KEY; + break; + } + + return true; +} +#endif +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ConnectionAttemptResult RakPeer::SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime ) +{ + RakAssert(passwordDataLength <= 256); + RakAssert(remotePort!=0); + SystemAddress systemAddress; + if (!systemAddress.FromStringExplicitPort(host,remotePort,socketList[connectionSocketIndex]->boundAddress.GetIPVersion())) + return CANNOT_RESOLVE_DOMAIN_NAME; + + // Already connected? + if (GetRemoteSystemFromSystemAddress(systemAddress, false, true)) + return ALREADY_CONNECTED_TO_ENDPOINT; + + //RequestedConnectionStruct *rcs = (RequestedConnectionStruct *) rakMalloc_Ex(sizeof(RequestedConnectionStruct), _FILE_AND_LINE_); + RequestedConnectionStruct *rcs = RakNet::OP_NEW(_FILE_AND_LINE_); + + rcs->systemAddress=systemAddress; + rcs->nextRequestTime=RakNet::GetTimeMS(); + rcs->requestsMade=0; + rcs->data=0; + rcs->extraData=extraData; + rcs->socketIndex=connectionSocketIndex; + rcs->actionToTake=RequestedConnectionStruct::CONNECT; + rcs->sendConnectionAttemptCount=sendConnectionAttemptCount; + rcs->timeBetweenSendConnectionAttemptsMS=timeBetweenSendConnectionAttemptsMS; + memcpy(rcs->outgoingPassword, passwordData, passwordDataLength); + rcs->outgoingPasswordLength=(unsigned char) passwordDataLength; + rcs->timeoutTime=timeoutTime; + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: In SendConnectionRequest()\n"); + if (!GenerateConnectionRequestChallenge(rcs,publicKey)) + return SECURITY_INITIALIZATION_FAILED; +#else + (void) publicKey; +#endif + + // Return false if already pending, else push on queue + unsigned int i=0; + requestedConnectionQueueMutex.Lock(); + for (; i < requestedConnectionQueue.Size(); i++) + { + if (requestedConnectionQueue[i]->systemAddress==systemAddress) + { + requestedConnectionQueueMutex.Unlock(); + // Not necessary + //RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + return CONNECTION_ATTEMPT_ALREADY_IN_PROGRESS; + } + } + requestedConnectionQueue.Push(rcs, _FILE_AND_LINE_ ); + requestedConnectionQueueMutex.Unlock(); + + return CONNECTION_ATTEMPT_STARTED; +} +ConnectionAttemptResult RakPeer::SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime, RakNetSmartPtr socket ) +{ + RakAssert(passwordDataLength <= 256); + SystemAddress systemAddress; + systemAddress.FromStringExplicitPort(host,remotePort); + + // Already connected? + if (GetRemoteSystemFromSystemAddress(systemAddress, false, true)) + return ALREADY_CONNECTED_TO_ENDPOINT; + + //RequestedConnectionStruct *rcs = (RequestedConnectionStruct *) rakMalloc_Ex(sizeof(RequestedConnectionStruct), _FILE_AND_LINE_); + RequestedConnectionStruct *rcs = RakNet::OP_NEW(_FILE_AND_LINE_); + + rcs->systemAddress=systemAddress; + rcs->nextRequestTime=RakNet::GetTimeMS(); + rcs->requestsMade=0; + rcs->data=0; + rcs->extraData=extraData; + rcs->socketIndex=connectionSocketIndex; + rcs->actionToTake=RequestedConnectionStruct::CONNECT; + rcs->sendConnectionAttemptCount=sendConnectionAttemptCount; + rcs->timeBetweenSendConnectionAttemptsMS=timeBetweenSendConnectionAttemptsMS; + memcpy(rcs->outgoingPassword, passwordData, passwordDataLength); + rcs->outgoingPasswordLength=(unsigned char) passwordDataLength; + rcs->timeoutTime=timeoutTime; + rcs->socket=socket; + +#if LIBCAT_SECURITY==1 + if (!GenerateConnectionRequestChallenge(rcs,publicKey)) + return SECURITY_INITIALIZATION_FAILED; +#else + (void) publicKey; +#endif + + // Return false if already pending, else push on queue + unsigned int i=0; + requestedConnectionQueueMutex.Lock(); + for (; i < requestedConnectionQueue.Size(); i++) + { + if (requestedConnectionQueue[i]->systemAddress==systemAddress) + { + requestedConnectionQueueMutex.Unlock(); + // Not necessary + //RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + return CONNECTION_ATTEMPT_ALREADY_IN_PROGRESS; + } + } + requestedConnectionQueue.Push(rcs, _FILE_AND_LINE_ ); + requestedConnectionQueueMutex.Unlock(); + + return CONNECTION_ATTEMPT_STARTED; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ValidateRemoteSystemLookup(void) const +{ +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct *RakPeer::GetRemoteSystem( const AddressOrGUID systemIdentifier, bool calledFromNetworkThread, bool onlyActive ) const +{ + if (systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return GetRemoteSystemFromGUID(systemIdentifier.rakNetGuid, onlyActive); + else + return GetRemoteSystemFromSystemAddress(systemIdentifier.systemAddress, calledFromNetworkThread, onlyActive); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct *RakPeer::GetRemoteSystemFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread, bool onlyActive ) const +{ + unsigned i; + + if ( systemAddress == UNASSIGNED_SYSTEM_ADDRESS ) + return 0; + + if (calledFromNetworkThread) + { + unsigned int index = GetRemoteSystemIndex(systemAddress); + if (index!=(unsigned int) -1) + { + if (onlyActive==false || remoteSystemList[ index ].isActive==true ) + { + RakAssert(remoteSystemList[index].systemAddress==systemAddress); + return remoteSystemList + index; + } + } + } + else + { + int deadConnectionIndex=-1; + + // Active connections take priority. But if there are no active connections, return the first systemAddress match found + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].systemAddress == systemAddress) + { + if ( remoteSystemList[ i ].isActive ) + return remoteSystemList + i; + else if (deadConnectionIndex==-1) + deadConnectionIndex=i; + } + } + + if (deadConnectionIndex!=-1 && onlyActive==false) + return remoteSystemList + deadConnectionIndex; + } + + return 0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct *RakPeer::GetRemoteSystemFromGUID( const RakNetGUID guid, bool onlyActive ) const +{ + if (guid==UNASSIGNED_RAKNET_GUID) + return 0; + + unsigned i; + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].guid == guid && (onlyActive==false || remoteSystemList[ i ].isActive)) + { + return remoteSystemList + i; + } + } + return 0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ParseConnectionRequestPacket( RakPeer::RemoteSystemStruct *remoteSystem, const SystemAddress &systemAddress, const char *data, int byteSize ) +{ + RakNet::BitStream bs((unsigned char*) data,byteSize,false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID guid; + bs.Read(guid); + RakNet::Time incomingTimestamp; + bs.Read(incomingTimestamp); + unsigned char doSecurity; + bs.Read(doSecurity); + +#if LIBCAT_SECURITY==1 + unsigned char doClientKey; + if (_using_security) + { + // Ignore message on bad state + if (doSecurity != 1 || !remoteSystem->reliabilityLayer.GetAuthenticatedEncryption()) + return; + + // Validate client proof of key + unsigned char proof[cat::EasyHandshake::PROOF_BYTES]; + bs.ReadAlignedBytes(proof, sizeof(proof)); + if (!remoteSystem->reliabilityLayer.GetAuthenticatedEncryption()->ValidateProof(proof, sizeof(proof))) + { + remoteSystem->connectMode = RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + + CAT_OBJCLR(remoteSystem->client_public_key); + + bs.Read(doClientKey); + + // Check if client wants to prove identity + if (doClientKey == 1) + { + // Read identity proof + unsigned char ident[cat::EasyHandshake::IDENTITY_BYTES]; + bs.ReadAlignedBytes(ident, sizeof(ident)); + + // If we are listening to these proofs, + if (_require_client_public_key) + { + // Validate client identity + if (!_server_handshake->VerifyInitiatorIdentity(remoteSystem->answer, ident, remoteSystem->client_public_key)) + { + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY); // Report an error since the client is not providing an identity when it is necessary to connect + bitStream.Write((unsigned char)2); // Indicate client identity is invalid + SendImmediate((char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0); + remoteSystem->connectMode = RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + } + + // Otherwise ignore the client public key + } + else + { + // If no client key was provided but it is required, + if (_require_client_public_key) + { + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY); // Report an error since the client is not providing an identity when it is necessary to connect + bitStream.Write((unsigned char)1); // Indicate client identity is missing + SendImmediate((char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0); + remoteSystem->connectMode = RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + } + } +#endif // LIBCAT_SECURITY + + unsigned char *password = bs.GetData()+BITS_TO_BYTES(bs.GetReadOffset()); + int passwordLength = byteSize - BITS_TO_BYTES(bs.GetReadOffset()); + if ( incomingPasswordLength != passwordLength || + memcmp( password, incomingPassword, incomingPasswordLength ) != 0 ) + { + CAT_AUDIT_PRINTF("AUDIT: Invalid password\n"); + // This one we only send once since we don't care if it arrives. + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_INVALID_PASSWORD); + bitStream.Write(GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + SendImmediate((char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0); + remoteSystem->connectMode=RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + + // OK + remoteSystem->connectMode=RemoteSystemStruct::HANDLING_CONNECTION_REQUEST; + + OnConnectionRequest( remoteSystem, incomingTimestamp ); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::OnConnectionRequest( RakPeer::RemoteSystemStruct *remoteSystem, RakNet::Time incomingTimestamp ) +{ + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_CONNECTION_REQUEST_ACCEPTED); + bitStream.Write(remoteSystem->systemAddress); + SystemIndex systemIndex = (SystemIndex) GetIndexFromSystemAddress( remoteSystem->systemAddress, true ); + RakAssert(systemIndex!=65535); + bitStream.Write(systemIndex); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + bitStream.Write(ipList[i]); + bitStream.Write(incomingTimestamp); + bitStream.Write(RakNet::GetTime()); + + SendImmediate((char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, RELIABLE_ORDERED, 0, remoteSystem->systemAddress, false, false, RakNet::GetTimeUS(), 0); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::NotifyAndFlagForShutdown( const SystemAddress systemAddress, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ + RakNet::BitStream temp( sizeof(unsigned char) ); + temp.Write( (MessageID)ID_DISCONNECTION_NOTIFICATION ); + if (performImmediate) + { + SendImmediate((char*)temp.GetData(), temp.GetNumberOfBitsUsed(), disconnectionNotificationPriority, RELIABLE_ORDERED, orderingChannel, systemAddress, false, false, RakNet::GetTimeUS(), 0); + RemoteSystemStruct *rss=GetRemoteSystemFromSystemAddress(systemAddress, true, true); + rss->connectMode=RemoteSystemStruct::DISCONNECT_ASAP; + } + else + { + SendBuffered((const char*)temp.GetData(), temp.GetNumberOfBitsUsed(), disconnectionNotificationPriority, RELIABLE_ORDERED, orderingChannel, systemAddress, false, RemoteSystemStruct::DISCONNECT_ASAP, 0); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::GetNumberOfRemoteInitiatedConnections( void ) const +{ + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + unsigned short numberOfIncomingConnections; + numberOfIncomingConnections = 0; + unsigned int i; + for (i=0; i < activeSystemListSize; i++) + { + if ((activeSystemList[i])->isActive && + (activeSystemList[i])->connectMode==RakPeer::RemoteSystemStruct::CONNECTED && + (activeSystemList[i])->weInitiatedTheConnection==false + ) + { + numberOfIncomingConnections++; + } + } + return numberOfIncomingConnections; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct * RakPeer::AssignSystemAddressToRemoteSystemList( const SystemAddress systemAddress, RemoteSystemStruct::ConnectMode connectionMode, RakNetSmartPtr incomingRakNetSocket, bool *thisIPConnectedRecently, SystemAddress bindingAddress, int incomingMTU, RakNetGUID guid, bool useSecurity ) +{ + RemoteSystemStruct * remoteSystem; + unsigned i,j,assignedIndex; + RakNet::TimeMS time = RakNet::GetTimeMS(); +#ifdef _DEBUG + RakAssert(systemAddress!=UNASSIGNED_SYSTEM_ADDRESS); +#endif + + if (limitConnectionFrequencyFromTheSameIP) + { + if (IsLoopbackAddress(systemAddress,false)==false) + { + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if ( remoteSystemList[ i ].isActive==true && + remoteSystemList[ i ].systemAddress.EqualsExcludingPort(systemAddress) && + time >= remoteSystemList[ i ].connectionTime && + time - remoteSystemList[ i ].connectionTime < 100 + ) + { + // 4/13/09 Attackers can flood ID_OPEN_CONNECTION_REQUEST and use up all available connection slots + // Ignore connection attempts if this IP address connected within the last 100 milliseconds + *thisIPConnectedRecently=true; + ValidateRemoteSystemLookup(); + return 0; + } + } + } + } + + // Don't use a different port than what we received on + bindingAddress.CopyPort(incomingRakNetSocket->boundAddress); + + *thisIPConnectedRecently=false; + for ( assignedIndex = 0; assignedIndex < maximumNumberOfPeers; assignedIndex++ ) + { + if ( remoteSystemList[ assignedIndex ].isActive==false ) + { + remoteSystem=remoteSystemList+assignedIndex; + ReferenceRemoteSystem(systemAddress, assignedIndex); + remoteSystem->MTUSize=defaultMTUSize; + remoteSystem->guid=guid; + remoteSystem->isActive = true; // This one line causes future incoming packets to go through the reliability layer + // Reserve this reliability layer for ourselves. + if (incomingMTU > remoteSystem->MTUSize) + remoteSystem->MTUSize=incomingMTU; + remoteSystem->reliabilityLayer.Reset(true, remoteSystem->MTUSize, useSecurity); + remoteSystem->reliabilityLayer.SetSplitMessageProgressInterval(splitMessageProgressInterval); + remoteSystem->reliabilityLayer.SetUnreliableTimeout(unreliableTimeout); + remoteSystem->reliabilityLayer.SetTimeoutTime(defaultTimeoutTime); + AddToActiveSystemList(assignedIndex); + if (incomingRakNetSocket->boundAddress==bindingAddress) + { + remoteSystem->rakNetSocket=incomingRakNetSocket; + } + else + { + char str[256]; + bindingAddress.ToString(true,str); + // See if this is an internal IP address. + // If so, force binding on it so we reply on the same IP address as they sent to. + unsigned int ipListIndex, foundIndex=(unsigned int)-1; + + for (ipListIndex=0; ipListIndex < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ipListIndex++) + { + if (ipList[ipListIndex]==UNASSIGNED_SYSTEM_ADDRESS) + break; + + if (bindingAddress.EqualsExcludingPort(ipList[ipListIndex])) + { + foundIndex=ipListIndex; + break; + } + } + + // 06/26/09 Unconfirmed report that Vista firewall blocks the reply if we force a binding + // For now use the incoming socket only + // Originally this code was to force a machine with multiple IP addresses to reply back on the IP + // that the datagram came in on + if (1 || foundIndex==(unsigned int)-1) + { + // Must not be an internal LAN address. Just use whatever socket it came in on + remoteSystem->rakNetSocket=incomingRakNetSocket; + } + else + { + // Force binding + unsigned int socketListIndex; + for (socketListIndex=0; socketListIndex < socketList.Size(); socketListIndex++) + { + if (socketList[socketListIndex]->boundAddress==bindingAddress) + { + // Force binding with existing socket + remoteSystem->rakNetSocket=socketList[socketListIndex]; + break; + } + } + + if (socketListIndex==socketList.Size()) + { + char ipListFoundIndexStr[128]; + ipList[foundIndex].ToString(false,str); + + // Force binding with new socket + RakNetSmartPtr rns(RakNet::OP_NEW(_FILE_AND_LINE_)); + if (incomingRakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2==0) + rns->s = (unsigned int) SocketLayer::CreateBoundSocket( bindingAddress.GetPort(), true, ipListFoundIndexStr, 0, incomingRakNetSocket->extraSocketOptions, incomingRakNetSocket->socketFamily ); + else + rns->s = (unsigned int) SocketLayer::CreateBoundSocket_PS3Lobby( bindingAddress.GetPort(), true, ipListFoundIndexStr, incomingRakNetSocket->socketFamily ); + if ((SOCKET)rns->s==(SOCKET)-1) + { + // Can't bind. Just use whatever socket it came in on + remoteSystem->rakNetSocket=incomingRakNetSocket; + } + else + { + rns->boundAddress=bindingAddress; + rns->remotePortRakNetWasStartedOn_PS3_PSP2=incomingRakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2; + rns->extraSocketOptions=incomingRakNetSocket->extraSocketOptions; + rns->userConnectionSocketIndex=(unsigned int)-1; + socketList.Push(rns, _FILE_AND_LINE_ ); + remoteSystem->rakNetSocket=rns; + + RakPeerAndIndex rpai; + rpai.remotePortRakNetWasStartedOn_PS3=rns->remotePortRakNetWasStartedOn_PS3_PSP2; + rpai.extraSocketOptions=rns->extraSocketOptions; + rpai.s=rns->s; + rpai.rakPeer=this; +#ifdef _WIN32 + int highPriority=THREAD_PRIORITY_ABOVE_NORMAL; +#else + int highPriority=-10; +#endif + +//#if !defined(_XBOX) && !defined(X360) + highPriority=0; +//#endif + + + + + + + + RakNet::RakThread::Create(RecvFromLoop, &rpai, highPriority); + + RakSleep(10); + + + /* +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + if (threadSleepTimer>0) + { + rns->recvEvent=CreateEvent(0,FALSE,FALSE,0); + WSAEventSelect(rns->s,rns->recvEvent,FD_READ); + } +#endif + */ + } + } + } + } + + for ( j = 0; j < (unsigned) PING_TIMES_ARRAY_SIZE; j++ ) + { + remoteSystem->pingAndClockDifferential[ j ].pingTime = 65535; + remoteSystem->pingAndClockDifferential[ j ].clockDifferential = 0; + } + + remoteSystem->connectMode=connectionMode; + remoteSystem->pingAndClockDifferentialWriteIndex = 0; + remoteSystem->lowestPing = 65535; + remoteSystem->nextPingTime = 0; // Ping immediately + remoteSystem->weInitiatedTheConnection = false; + remoteSystem->connectionTime = time; + remoteSystem->myExternalSystemAddress = UNASSIGNED_SYSTEM_ADDRESS; + remoteSystem->lastReliableSend=time; + +#ifdef _DEBUG + int indexLoopupCheck=GetIndexFromSystemAddress( systemAddress, true ); + if ((int) indexLoopupCheck!=(int) assignedIndex) + { + RakAssert((int) indexLoopupCheck==(int) assignedIndex); + } +#endif + + return remoteSystem; + } + } + + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Adjust the first four bytes (treated as unsigned int) of the pointer +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ShiftIncomingTimestamp( unsigned char *data, const SystemAddress &systemAddress ) const +{ +#ifdef _DEBUG + RakAssert( IsActive() ); + RakAssert( data ); +#endif + + RakNet::BitStream timeBS( data, sizeof(RakNet::Time), false); + RakNet::Time encodedTimestamp; + timeBS.Read(encodedTimestamp); + + encodedTimestamp = encodedTimestamp - GetBestClockDifferential( systemAddress ); + timeBS.SetWriteOffset(0); + timeBS.Write(encodedTimestamp); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Thanks to Chris Taylor (cat02e@fsu.edu) for the improved timestamping algorithm +RakNet::Time RakPeer::GetBestClockDifferential( const SystemAddress systemAddress ) const +{ + int counter, lowestPingSoFar; + RakNet::Time clockDifferential; + RemoteSystemStruct *remoteSystem = GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + + if ( remoteSystem == 0 ) + return 0; + + lowestPingSoFar = 65535; + + clockDifferential = 0; + + for ( counter = 0; counter < PING_TIMES_ARRAY_SIZE; counter++ ) + { + if ( remoteSystem->pingAndClockDifferential[ counter ].pingTime == 65535 ) + break; + + if ( remoteSystem->pingAndClockDifferential[ counter ].pingTime < lowestPingSoFar ) + { + clockDifferential = remoteSystem->pingAndClockDifferential[ counter ].clockDifferential; + lowestPingSoFar = remoteSystem->pingAndClockDifferential[ counter ].pingTime; + } + } + + return clockDifferential; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::RemoteSystemLookupHashIndex(const SystemAddress &sa) const +{ + return SystemAddress::ToInteger(sa) % ((unsigned int) maximumNumberOfPeers * REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ReferenceRemoteSystem(const SystemAddress &sa, unsigned int remoteSystemListIndex) +{ +// #ifdef _DEBUG +// for ( int remoteSystemIndex = 0; remoteSystemIndex < maximumNumberOfPeers; ++remoteSystemIndex ) +// { +// if (remoteSystemList[remoteSystemIndex].isActive ) +// { +// unsigned int hashIndex = GetRemoteSystemIndex(remoteSystemList[remoteSystemIndex].systemAddress); +// RakAssert(hashIndex==remoteSystemIndex); +// } +// } +// #endif + + + SystemAddress oldAddress = remoteSystemList[remoteSystemListIndex].systemAddress; + if (oldAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + // The system might be active if rerouting +// RakAssert(remoteSystemList[remoteSystemListIndex].isActive==false); + + // Remove the reference if the reference is pointing to this inactive system + if (GetRemoteSystem(oldAddress)==&remoteSystemList[remoteSystemListIndex]) + DereferenceRemoteSystem(oldAddress); + } + DereferenceRemoteSystem(sa); + +// #ifdef _DEBUG +// for ( int remoteSystemIndex = 0; remoteSystemIndex < maximumNumberOfPeers; ++remoteSystemIndex ) +// { +// if (remoteSystemList[remoteSystemIndex].isActive ) +// { +// unsigned int hashIndex = GetRemoteSystemIndex(remoteSystemList[remoteSystemIndex].systemAddress); +// if (hashIndex!=remoteSystemIndex) +// { +// RakAssert(hashIndex==remoteSystemIndex); +// } +// } +// } +// #endif + + + remoteSystemList[remoteSystemListIndex].systemAddress=sa; + + unsigned int hashIndex = RemoteSystemLookupHashIndex(sa); + RemoteSystemIndex *rsi; + rsi = remoteSystemIndexPool.Allocate(_FILE_AND_LINE_); + if (remoteSystemLookup[hashIndex]==0) + { + rsi->next=0; + rsi->index=remoteSystemListIndex; + remoteSystemLookup[hashIndex]=rsi; + } + else + { + RemoteSystemIndex *cur = remoteSystemLookup[hashIndex]; + while (cur->next!=0) + { + cur=cur->next; + } + + rsi = remoteSystemIndexPool.Allocate(_FILE_AND_LINE_); + rsi->next=0; + rsi->index=remoteSystemListIndex; + cur->next=rsi; + } + +// #ifdef _DEBUG +// for ( int remoteSystemIndex = 0; remoteSystemIndex < maximumNumberOfPeers; ++remoteSystemIndex ) +// { +// if (remoteSystemList[remoteSystemIndex].isActive ) +// { +// unsigned int hashIndex = GetRemoteSystemIndex(remoteSystemList[remoteSystemIndex].systemAddress); +// RakAssert(hashIndex==remoteSystemIndex); +// } +// } +// #endif + + + RakAssert(GetRemoteSystemIndex(sa)==remoteSystemListIndex); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DereferenceRemoteSystem(const SystemAddress &sa) +{ + unsigned int hashIndex = RemoteSystemLookupHashIndex(sa); + RemoteSystemIndex *cur = remoteSystemLookup[hashIndex]; + RemoteSystemIndex *last = 0; + while (cur!=0) + { + if (remoteSystemList[cur->index].systemAddress==sa) + { + if (last==0) + { + remoteSystemLookup[hashIndex]=cur->next; + } + else + { + last->next=cur->next; + } + remoteSystemIndexPool.Release(cur,_FILE_AND_LINE_); + break; + } + last=cur; + cur=cur->next; + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetRemoteSystemIndex(const SystemAddress &sa) const +{ + unsigned int hashIndex = RemoteSystemLookupHashIndex(sa); + RemoteSystemIndex *cur = remoteSystemLookup[hashIndex]; + while (cur!=0) + { + if (remoteSystemList[cur->index].systemAddress==sa) + return cur->index; + cur=cur->next; + } + return (unsigned int) -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct* RakPeer::GetRemoteSystem(const SystemAddress &sa) const +{ + unsigned int remoteSystemIndex = GetRemoteSystemIndex(sa); + if (remoteSystemIndex==(unsigned int)-1) + return 0; + return remoteSystemList + remoteSystemIndex; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearRemoteSystemLookup(void) +{ + remoteSystemIndexPool.Clear(_FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(remoteSystemLookup,_FILE_AND_LINE_); + remoteSystemLookup=0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AddToActiveSystemList(unsigned int remoteSystemListIndex) +{ + activeSystemList[activeSystemListSize++]=remoteSystemList+remoteSystemListIndex; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::RemoveFromActiveSystemList(const SystemAddress &sa) +{ + unsigned int i; + for (i=0; i < activeSystemListSize; i++) + { + RemoteSystemStruct *rss=activeSystemList[i]; + if (rss->systemAddress==sa) + { + activeSystemList[i]=activeSystemList[activeSystemListSize-1]; + activeSystemListSize--; + return; + } + } + RakAssert("activeSystemList invalid, entry not found in RemoveFromActiveSystemList. Ensure that AddToActiveSystemList and RemoveFromActiveSystemList are called by the same thread." && 0); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +/* +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::LookupIndexUsingHashIndex(const SystemAddress &sa) const +{ + unsigned int scanCount=0; + unsigned int index = RemoteSystemLookupHashIndex(sa); + if (remoteSystemLookup[index].index==(unsigned int)-1) + return (unsigned int) -1; + while (remoteSystemList[remoteSystemLookup[index].index].systemAddress!=sa) + { + if (++index==(unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE) + index=0; + if (++scanCount>(unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE) + return (unsigned int) -1; + if (remoteSystemLookup[index].index==-1) + return (unsigned int) -1; + } + return index; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::RemoteSystemListIndexUsingHashIndex(const SystemAddress &sa) const +{ + unsigned int index = LookupIndexUsingHashIndex(sa); + if (index!=(unsigned int) -1) + { + return remoteSystemLookup[index].index; + } + return (unsigned int) -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::FirstFreeRemoteSystemLookupIndex(const SystemAddress &sa) const +{ +// unsigned int collisionCount=0; + unsigned int index = RemoteSystemLookupHashIndex(sa); + while (remoteSystemLookup[index].index!=(unsigned int)-1) + { + if (++index==(unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE) + index=0; +// collisionCount++; + } +// printf("%i collisions. Using index %i\n", collisionCount, index); + return index; +} +*/ +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsLoopbackAddress(const AddressOrGUID &systemIdentifier, bool matchPort) const +{ + if (systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return systemIdentifier.rakNetGuid==myGuid; + + for (int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS && ipList[i]!=UNASSIGNED_SYSTEM_ADDRESS; i++) + { + if (matchPort) + { + if (ipList[i]==systemIdentifier.systemAddress) + return true; + } + else + { + if (ipList[i].EqualsExcludingPort(systemIdentifier.systemAddress)) + return true; + } + } + + return (matchPort==true && systemIdentifier.systemAddress==firstExternalID) || + (matchPort==false && systemIdentifier.systemAddress.EqualsExcludingPort(firstExternalID)); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetLoopbackAddress(void) const +{ + + return ipList[0]; + + + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::AllowIncomingConnections(void) const +{ + return GetNumberOfRemoteInitiatedConnections() < GetMaximumIncomingConnections(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::PingInternal( const SystemAddress target, bool performImmediate, PacketReliability reliability ) +{ + if ( IsActive() == false ) + return ; + + RakNet::BitStream bitStream(sizeof(unsigned char)+sizeof(RakNet::Time)); + bitStream.Write((MessageID)ID_CONNECTED_PING); + bitStream.Write(RakNet::GetTime()); + if (performImmediate) + SendImmediate( (char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, reliability, 0, target, false, false, RakNet::GetTimeUS(), 0 ); + else + Send( &bitStream, IMMEDIATE_PRIORITY, reliability, 0, target, false ); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::CloseConnectionInternal( const AddressOrGUID& systemIdentifier, bool sendDisconnectionNotification, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ +#ifdef _DEBUG + RakAssert(orderingChannel < 32); +#endif + + if (systemIdentifier.IsUndefined()) + return; + + if ( remoteSystemList == 0 || endThreads == true ) + return; + + SystemAddress target; + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + target=systemIdentifier.systemAddress; + } + else + { + target=GetSystemAddressFromGuid(systemIdentifier.rakNetGuid); + } + + if (target!=UNASSIGNED_SYSTEM_ADDRESS && performImmediate) + target.FixForIPVersion(socketList[0]->boundAddress); + + if (sendDisconnectionNotification) + { + NotifyAndFlagForShutdown(target, performImmediate, orderingChannel, disconnectionNotificationPriority); + } + else + { + if (performImmediate) + { + unsigned int index = GetRemoteSystemIndex(target); + if (index!=(unsigned int) -1) + { + if ( remoteSystemList[index].isActive ) + { + RemoveFromActiveSystemList(target); + + // Found the index to stop + remoteSystemList[index].isActive = false; + + remoteSystemList[index].guid=UNASSIGNED_RAKNET_GUID; + + // Reserve this reliability layer for ourselves + //remoteSystemList[ remoteSystemLookup[index].index ].systemAddress = UNASSIGNED_SYSTEM_ADDRESS; + + // Clear any remaining messages + remoteSystemList[index].reliabilityLayer.Reset(false, remoteSystemList[index].MTUSize, false); + + // Not using this socket + remoteSystemList[index].rakNetSocket.SetNull(); + } + } + } + else + { + BufferedCommandStruct *bcs; + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->command=BufferedCommandStruct::BCS_CLOSE_CONNECTION; + bcs->systemIdentifier=target; + bcs->data=0; + bcs->orderingChannel=orderingChannel; + bcs->priority=disconnectionNotificationPriority; + bufferedCommands.Push(bcs); + } + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SendBuffered( const char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ) +{ + BufferedCommandStruct *bcs; + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->data = (char*) rakMalloc_Ex( (size_t) BITS_TO_BYTES(numberOfBitsToSend), _FILE_AND_LINE_ ); // Making a copy doesn't lose efficiency because I tell the reliability layer to use this allocation for its own copy + if (bcs->data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + bufferedCommands.Deallocate(bcs, _FILE_AND_LINE_); + return; + } + memcpy(bcs->data, data, (size_t) BITS_TO_BYTES(numberOfBitsToSend)); + bcs->numberOfBitsToSend=numberOfBitsToSend; + bcs->priority=priority; + bcs->reliability=reliability; + bcs->orderingChannel=orderingChannel; + bcs->systemIdentifier=systemIdentifier; + bcs->broadcast=broadcast; + bcs->connectionMode=connectionMode; + bcs->receipt=receipt; + bcs->command=BufferedCommandStruct::BCS_SEND; + bufferedCommands.Push(bcs); + + if (priority==IMMEDIATE_PRIORITY) + { + // Forces pending sends to go out now, rather than waiting to the next update interval + quitAndDataEvents.SetEvent(); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SendBufferedList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ) +{ + BufferedCommandStruct *bcs; + unsigned int totalLength=0; + unsigned int lengthOffset; + int i; + for (i=0; i < numParameters; i++) + { + if (lengths[i]>0) + totalLength+=lengths[i]; + } + if (totalLength==0) + return; + + char *dataAggregate; + dataAggregate = (char*) rakMalloc_Ex( (size_t) totalLength, _FILE_AND_LINE_ ); // Making a copy doesn't lose efficiency because I tell the reliability layer to use this allocation for its own copy + if (dataAggregate==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return; + } + for (i=0, lengthOffset=0; i < numParameters; i++) + { + if (lengths[i]>0) + { + memcpy(dataAggregate+lengthOffset, data[i], lengths[i]); + lengthOffset+=lengths[i]; + } + } + + if (broadcast==false && IsLoopbackAddress(systemIdentifier,true)) + { + SendLoopback(dataAggregate,totalLength); + rakFree_Ex(dataAggregate,_FILE_AND_LINE_); + return; + } + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->data = dataAggregate; + bcs->numberOfBitsToSend=BYTES_TO_BITS(totalLength); + bcs->priority=priority; + bcs->reliability=reliability; + bcs->orderingChannel=orderingChannel; + bcs->systemIdentifier=systemIdentifier; + bcs->broadcast=broadcast; + bcs->connectionMode=connectionMode; + bcs->receipt=receipt; + bcs->command=BufferedCommandStruct::BCS_SEND; + bufferedCommands.Push(bcs); + + if (priority==IMMEDIATE_PRIORITY) + { + // Forces pending sends to go out now, rather than waiting to the next update interval + quitAndDataEvents.SetEvent(); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::SendImmediate( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool useCallerDataAllocation, RakNet::TimeUS currentTime, uint32_t receipt ) +{ + unsigned *sendList; + unsigned sendListSize; + bool callerDataAllocationUsed; + unsigned int remoteSystemIndex, sendListIndex; // Iterates into the list of remote systems +// unsigned numberOfBytesUsed = (unsigned) BITS_TO_BYTES(numberOfBitsToSend); + callerDataAllocationUsed=false; + + sendListSize=0; + + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + remoteSystemIndex=GetIndexFromSystemAddress( systemIdentifier.systemAddress, true ); + else if (systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + remoteSystemIndex=GetSystemIndexFromGuid(systemIdentifier.rakNetGuid); + else + remoteSystemIndex=(unsigned int) -1; + + // 03/06/06 - If broadcast is false, use the optimized version of GetIndexFromSystemAddress + if (broadcast==false) + { + if (remoteSystemIndex==(unsigned int) -1) + { +#ifdef _DEBUG +// int debugIndex = GetRemoteSystemIndex(systemIdentifier.systemAddress); +#endif + return false; + } + + + sendList=(unsigned *)alloca(sizeof(unsigned)); + + + + + if (remoteSystemList[remoteSystemIndex].isActive && + remoteSystemList[remoteSystemIndex].connectMode!=RemoteSystemStruct::DISCONNECT_ASAP && + remoteSystemList[remoteSystemIndex].connectMode!=RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY && + remoteSystemList[remoteSystemIndex].connectMode!=RemoteSystemStruct::DISCONNECT_ON_NO_ACK) + { + sendList[0]=remoteSystemIndex; + sendListSize=1; + } + } + else + { + + //sendList=(unsigned *)alloca(sizeof(unsigned)*remoteSystemListSize); + sendList=(unsigned *)alloca(sizeof(unsigned)*maximumNumberOfPeers); + + + + + + // remoteSystemList in network thread + unsigned int idx; + for ( idx = 0; idx < maximumNumberOfPeers; idx++ ) + { + if (remoteSystemIndex!=(unsigned int) -1 && idx==remoteSystemIndex) + continue; + + if ( remoteSystemList[ idx ].isActive && remoteSystemList[ idx ].systemAddress != UNASSIGNED_SYSTEM_ADDRESS ) + sendList[sendListSize++]=idx; + } + } + + if (sendListSize==0) + { + + + + return false; + } + + for (sendListIndex=0; sendListIndex < sendListSize; sendListIndex++) + { + // Send may split the packet and thus deallocate data. Don't assume data is valid if we use the callerAllocationData + bool useData = useCallerDataAllocation && callerDataAllocationUsed==false && sendListIndex+1==sendListSize; + remoteSystemList[sendList[sendListIndex]].reliabilityLayer.Send( data, numberOfBitsToSend, priority, reliability, orderingChannel, useData==false, remoteSystemList[sendList[sendListIndex]].MTUSize, currentTime, receipt ); + if (useData) + callerDataAllocationUsed=true; + + if (reliability==RELIABLE || + reliability==RELIABLE_ORDERED || + reliability==RELIABLE_SEQUENCED || + reliability==RELIABLE_WITH_ACK_RECEIPT || + reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT +// || +// reliability==RELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + remoteSystemList[sendList[sendListIndex]].lastReliableSend=(RakNet::TimeMS)(currentTime/(RakNet::TimeUS)1000); + } + + + + + + // Return value only meaningful if true was passed for useCallerDataAllocation. Means the reliability layer used that data copy, so the caller should not deallocate it + return callerDataAllocationUsed; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ResetSendReceipt(void) +{ + sendReceiptSerialMutex.Lock(); + sendReceiptSerial=1; + sendReceiptSerialMutex.Unlock(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::OnConnectedPong(RakNet::Time sendPingTime, RakNet::Time sendPongTime, RemoteSystemStruct *remoteSystem) +{ + RakNet::Time ping; +// RakNet::TimeMS lastPing; + RakNet::Time time = RakNet::GetTime(); // Update the time value to be accurate + if (time > sendPingTime) + ping = time - sendPingTime; + else + ping=0; + +// lastPing = remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex ].pingTime; + + remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex ].pingTime = ( unsigned short ) ping; + // Thanks to Chris Taylor (cat02e@fsu.edu) for the improved timestamping algorithm + // Divide each integer by 2, rather than the sum by 2, to prevent overflow + remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex ].clockDifferential = sendPongTime - ( time/2 + sendPingTime/2 ); + + if ( remoteSystem->lowestPing == (unsigned short)-1 || remoteSystem->lowestPing > (int) ping ) + remoteSystem->lowestPing = (unsigned short) ping; + + if ( ++( remoteSystem->pingAndClockDifferentialWriteIndex ) == (RakNet::Time) PING_TIMES_ARRAY_SIZE ) + remoteSystem->pingAndClockDifferentialWriteIndex = 0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearBufferedCommands(void) +{ + BufferedCommandStruct *bcs; + + while ((bcs=bufferedCommands.Pop())!=0) + { + if (bcs->data) + rakFree_Ex(bcs->data, _FILE_AND_LINE_ ); + + bufferedCommands.Deallocate(bcs, _FILE_AND_LINE_); + } + bufferedCommands.Clear(_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearBufferedPackets(void) +{ + RecvFromStruct *bcs; + + while ((bcs=bufferedPackets.Pop())!=0) + { + bufferedPackets.Deallocate(bcs, _FILE_AND_LINE_); + } + bufferedPackets.Clear(_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearSocketQueryOutput(void) +{ + socketQueryOutput.Clear(_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearRequestedConnectionList(void) +{ + DataStructures::Queue freeQueue; + requestedConnectionQueueMutex.Lock(); + while (requestedConnectionQueue.Size()) + freeQueue.Push(requestedConnectionQueue.Pop(), _FILE_AND_LINE_ ); + requestedConnectionQueueMutex.Unlock(); + unsigned i; + for (i=0; i < freeQueue.Size(); i++) + { +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: In ClearRequestedConnectionList(), Deleting freeQueue index %i client_handshake %x\n", i, freeQueue[i]->client_handshake); + RakNet::OP_DELETE(freeQueue[i]->client_handshake,_FILE_AND_LINE_); +#endif + RakNet::OP_DELETE(freeQueue[i], _FILE_AND_LINE_ ); + } +} +inline void RakPeer::AddPacketToProducer(RakNet::Packet *p) +{ + packetReturnMutex.Lock(); + packetReturnQueue.Push(p,_FILE_AND_LINE_); + packetReturnMutex.Unlock(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +union Buff6AndBuff8 +{ + unsigned char buff6[6]; + uint64_t buff8; +}; +uint64_t RakPeerInterface::Get64BitUniqueRandomNumber(void) +{ + // Mac address is a poor solution because you can't have multiple connections from the same system + + + + + + + + + + + + + +#if defined(_WIN32) + uint64_t g=RakNet::GetTimeUS(); + + RakNet::TimeUS lastTime, thisTime; + int j; + // Sleep a small random time, then use the last 4 bits as a source of randomness + for (j=0; j < 8; j++) + { + lastTime = RakNet::GetTimeUS(); + RakSleep(1); + RakSleep(0); + thisTime = RakNet::GetTimeUS(); + RakNet::TimeUS diff = thisTime-lastTime; + unsigned int diff4Bits = (unsigned int) (diff & 15); + diff4Bits <<= 32-4; + diff4Bits >>= j*4; + ((char*)&g)[j] ^= diff4Bits; + } + return g; + +#else + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_usec + tv.tv_sec * 1000000; +#endif +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GenerateGUID(void) +{ + myGuid.g=Get64BitUniqueRandomNumber(); + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// void RakNet::ProcessPortUnreachable( SystemAddress systemAddress, RakPeer *rakPeer ) +// { +// (void) binaryAddress; +// (void) port; +// (void) rakPeer; +// +// } +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +namespace RakNet { +bool ProcessOfflineNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, bool *isOfflineMessage, RakNet::TimeUS timeRead ) +{ + (void) timeRead; + RakPeer::RemoteSystemStruct *remoteSystem; + RakNet::Packet *packet; + unsigned i; + + + char str1[64]; + systemAddress.ToString(false, str1); + if (rakPeer->IsBanned( str1 )) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bs; + bs.Write((MessageID)ID_CONNECTION_BANNED); + bs.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bs.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + + unsigned i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((char*) bs.GetData(), bs.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (char*) bs.GetData(), bs.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + + + + // The reason for all this is that the reliability layer has no way to tell between offline messages that arrived late for a player that is now connected, + // and a regular encoding. So I insert OFFLINE_MESSAGE_DATA_ID into the stream, the encoding of which is essentially impossible to hit by chance + if (length <=2) + { + *isOfflineMessage=true; + } + else if ( + ((unsigned char)data[0] == ID_UNCONNECTED_PING || + (unsigned char)data[0] == ID_UNCONNECTED_PING_OPEN_CONNECTIONS) && + length == sizeof(unsigned char) + sizeof(RakNet::Time) + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(unsigned char) + sizeof(RakNet::Time), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if ((unsigned char)data[0] == ID_UNCONNECTED_PONG && (size_t) length >= sizeof(unsigned char) + sizeof(RakNet::TimeMS) + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(unsigned char) + sizeof(RakNet::Time) + RakNetGUID::size(), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if ( + (unsigned char)data[0] == ID_OUT_OF_BAND_INTERNAL && + (size_t) length >= sizeof(MessageID) + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(MessageID) + RakNetGUID::size(), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if ( + ( + (unsigned char)data[0] == ID_OPEN_CONNECTION_REPLY_1 || + (unsigned char)data[0] == ID_OPEN_CONNECTION_REPLY_2 || + (unsigned char)data[0] == ID_OPEN_CONNECTION_REQUEST_1 || + (unsigned char)data[0] == ID_OPEN_CONNECTION_REQUEST_2 || + (unsigned char)data[0] == ID_CONNECTION_ATTEMPT_FAILED || + (unsigned char)data[0] == ID_NO_FREE_INCOMING_CONNECTIONS || + (unsigned char)data[0] == ID_CONNECTION_BANNED || + (unsigned char)data[0] == ID_ALREADY_CONNECTED || + (unsigned char)data[0] == ID_IP_RECENTLY_CONNECTED) && + (size_t) length >= sizeof(MessageID) + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(MessageID), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if (((unsigned char)data[0] == ID_INCOMPATIBLE_PROTOCOL_VERSION&& + (size_t) length == sizeof(MessageID)*2 + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID))) + { + *isOfflineMessage=memcmp(data+sizeof(MessageID)*2, OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else + { + *isOfflineMessage=false; + } + + if (*isOfflineMessage) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + // These are all messages from unconnected systems. Messages here can be any size, but are never processed from connected systems. + if ( ( (unsigned char) data[ 0 ] == ID_UNCONNECTED_PING_OPEN_CONNECTIONS + || (unsigned char)(data)[0] == ID_UNCONNECTED_PING) && length == sizeof(unsigned char)+sizeof(RakNet::Time)+sizeof(OFFLINE_MESSAGE_DATA_ID) ) + { + if ( (unsigned char)(data)[0] == ID_UNCONNECTED_PING || + rakPeer->AllowIncomingConnections() ) // Open connections with players + { +// #if !defined(_XBOX) && !defined(X360) + RakNet::BitStream inBitStream( (unsigned char *) data, length, false ); + inBitStream.IgnoreBits(8); + RakNet::Time sendPingTime; + inBitStream.Read(sendPingTime); + + RakNet::BitStream outBitStream; + outBitStream.Write((MessageID)ID_UNCONNECTED_PONG); // Should be named ID_UNCONNECTED_PONG eventually + outBitStream.Write(sendPingTime); + outBitStream.Write(rakPeer->myGuid); + outBitStream.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + + rakPeer->rakPeerMutexes[ RakPeer::offlinePingResponse_Mutex ].Lock(); + // They are connected, so append offline ping data + outBitStream.Write( (char*)rakPeer->offlinePingResponse.GetData(), rakPeer->offlinePingResponse.GetNumberOfBytesUsed() ); + rakPeer->rakPeerMutexes[ RakPeer::offlinePingResponse_Mutex ].Unlock(); + + unsigned i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*)outBitStream.GetData(), outBitStream.GetNumberOfBytesUsed(), systemAddress); + + SocketLayer::SendTo( rakNetSocket->s, (const char*)outBitStream.GetData(), (unsigned int) outBitStream.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + packet=rakPeer->AllocPacket(sizeof(MessageID), _FILE_AND_LINE_); + packet->data[0]=data[0]; + packet->systemAddress = systemAddress; + packet->guid=UNASSIGNED_RAKNET_GUID; + packet->systemAddress.systemIndex = ( SystemIndex ) rakPeer->GetIndexFromSystemAddress( systemAddress, true ); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + rakPeer->AddPacketToProducer(packet); +// #endif + } + } + // UNCONNECTED MESSAGE Pong with no data. + else if ((unsigned char) data[ 0 ] == ID_UNCONNECTED_PONG && (size_t) length >= sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID) && (size_t) length < sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID)+MAX_OFFLINE_DATA_LENGTH) + { + packet=rakPeer->AllocPacket((unsigned int) (length-sizeof(OFFLINE_MESSAGE_DATA_ID)-RakNetGUID::size()-sizeof(RakNet::Time)+sizeof(RakNet::TimeMS)), _FILE_AND_LINE_); + RakNet::BitStream bsIn((unsigned char*) data, length, false); + bsIn.IgnoreBytes(sizeof(unsigned char)); + RakNet::Time ping; + bsIn.Read(ping); + bsIn.Read(packet->guid); + + RakNet::BitStream bsOut((unsigned char*) packet->data, packet->length, false); + bsOut.ResetWritePointer(); + bsOut.Write((unsigned char)ID_UNCONNECTED_PONG); + RakNet::TimeMS pingMS=(RakNet::TimeMS)ping; + bsOut.Write(pingMS); + bsOut.WriteAlignedBytes( + (const unsigned char*)data+sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID), + length-sizeof(unsigned char)-sizeof(RakNet::Time)-RakNetGUID::size()-sizeof(OFFLINE_MESSAGE_DATA_ID) + ); + + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = ( SystemIndex ) rakPeer->GetIndexFromSystemAddress( systemAddress, true ); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + rakPeer->AddPacketToProducer(packet); + } + else if ((unsigned char) data[ 0 ] == ID_OUT_OF_BAND_INTERNAL && + (size_t) length < MAX_OFFLINE_DATA_LENGTH+sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID)+RakNetGUID::size()) + { + unsigned int dataLength = (unsigned int) (length-sizeof(OFFLINE_MESSAGE_DATA_ID)-RakNetGUID::size()-sizeof(MessageID)); + RakAssert(dataLength<1024); + packet=rakPeer->AllocPacket(dataLength+1, _FILE_AND_LINE_); + RakAssert(packet->length<1024); + + RakNet::BitStream bs2((unsigned char*) data, length, false); + bs2.IgnoreBytes(sizeof(MessageID)); + bs2.Read(packet->guid); + + if (data[sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID) + RakNetGUID::size()]==ID_ADVERTISE_SYSTEM) + { + packet->length--; + packet->bitSize=BYTES_TO_BITS(packet->length); + packet->data[0]=ID_ADVERTISE_SYSTEM; + memcpy(packet->data+1, data+sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID)*2 + RakNetGUID::size(), dataLength-1); + } + else + { + packet->data[0]=ID_OUT_OF_BAND_INTERNAL; + memcpy(packet->data+1, data+sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID) + RakNetGUID::size(), dataLength); + } + + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = ( SystemIndex ) rakPeer->GetIndexFromSystemAddress( systemAddress, true ); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + rakPeer->AddPacketToProducer(packet); + } + else if ((unsigned char)(data)[0] == (MessageID)ID_OPEN_CONNECTION_REPLY_1) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bsIn((unsigned char*) data,length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bsIn.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + RakNetGUID serverGuid; + bsIn.Read(serverGuid); + unsigned char serverHasSecurity; + uint32_t cookie; + (void) cookie; + bsIn.Read(serverHasSecurity); + // Even if the server has security, it may not be required of us if we are in the security exception list + if (serverHasSecurity) + { + bsIn.Read(cookie); + } + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_OPEN_CONNECTION_REQUEST_2); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + if (serverHasSecurity) + bsOut.Write(cookie); + + unsigned i; + rakPeer->requestedConnectionQueueMutex.Lock(); + for (i=0; i < rakPeer->requestedConnectionQueue.Size(); i++) + { + RakPeer::RequestedConnectionStruct *rcs; + rcs=rakPeer->requestedConnectionQueue[i]; + if (rcs->systemAddress==systemAddress) + { + if (serverHasSecurity) + { +#if LIBCAT_SECURITY==1 + unsigned char public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; + bsIn.ReadAlignedBytes(public_key, sizeof(public_key)); + + if (rcs->publicKeyMode==PKM_ACCEPT_ANY_PUBLIC_KEY) + { + memcpy(rcs->remote_public_key, public_key, cat::EasyHandshake::PUBLIC_KEY_BYTES); + if (!rcs->client_handshake->Initialize(public_key) || + !rcs->client_handshake->GenerateChallenge(rcs->handshakeChallenge)) + { + CAT_AUDIT_PRINTF("AUDIT: Server passed a bad public key with PKM_ACCEPT_ANY_PUBLIC_KEY"); + return true; + } + } + + if (cat::SecureEqual(public_key, + rcs->remote_public_key, + cat::EasyHandshake::PUBLIC_KEY_BYTES)==false) + { + rakPeer->requestedConnectionQueueMutex.Unlock(); + CAT_AUDIT_PRINTF("AUDIT: Expected public key does not match what was sent by server -- Reporting back ID_PUBLIC_KEY_MISMATCH to user\n"); + + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_PUBLIC_KEY_MISMATCH; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=serverGuid; + rakPeer->AddPacketToProducer(packet); + return true; + } + + if (rcs->client_handshake==0) + { + // Message does not contain a challenge + // We might still pass if we are in the security exception list + bsOut.Write((unsigned char)0); + } + else + { + // Message contains a challenge + bsOut.Write((unsigned char)1); + // challenge + CAT_AUDIT_PRINTF("AUDIT: Sending challenge\n"); + bsOut.WriteAlignedBytes((const unsigned char*) rcs->handshakeChallenge,cat::EasyHandshake::CHALLENGE_BYTES); + } +#else // LIBCAT_SECURITY + // Message does not contain a challenge + bsOut.Write((unsigned char)0); +#endif // LIBCAT_SECURITY + } + else + { + // Server does not need security +#if LIBCAT_SECURITY==1 + if (rcs->client_handshake!=0) + { + rakPeer->requestedConnectionQueueMutex.Unlock(); + CAT_AUDIT_PRINTF("AUDIT: Security disabled by server but we expected security (indicated by client_handshake not null) so failing!\n"); + + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_OUR_SYSTEM_REQUIRES_SECURITY; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=serverGuid; + rakPeer->AddPacketToProducer(packet); + return true; + } +#endif // LIBCAT_SECURITY + + } + + uint16_t mtu; + bsIn.Read(mtu); + + // Binding address + bsOut.Write(rcs->systemAddress); + rakPeer->requestedConnectionQueueMutex.Unlock(); + // MTU + bsOut.Write(mtu); + // Our guid + bsOut.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), rcs->systemAddress); + + SocketLayer::SendTo( rakPeer->socketList[rcs->socketIndex]->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), rcs->systemAddress, rakPeer->socketList[rcs->socketIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, rakPeer->socketList[rcs->socketIndex]->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + } + rakPeer->requestedConnectionQueueMutex.Unlock(); + } + else if ((unsigned char)(data)[0] == (MessageID)ID_OPEN_CONNECTION_REPLY_2) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bs((unsigned char*) data,length,false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + RakNetGUID guid; + bs.Read(guid); + SystemAddress bindingAddress; + bool b = bs.Read(bindingAddress); + RakAssert(b); + uint16_t mtu; + b=bs.Read(mtu); + RakAssert(b); + bool doSecurity=false; + b=bs.Read(doSecurity); + RakAssert(b); + +#if LIBCAT_SECURITY==1 + char answer[cat::EasyHandshake::ANSWER_BYTES]; + CAT_AUDIT_PRINTF("AUDIT: Got ID_OPEN_CONNECTION_REPLY_2 and given doSecurity=%i\n", (int)doSecurity); + if (doSecurity) + { + CAT_AUDIT_PRINTF("AUDIT: Reading cookie and public key\n"); + bs.ReadAlignedBytes((unsigned char*) answer, sizeof(answer)); + } + cat::ClientEasyHandshake *client_handshake=0; +#endif // LIBCAT_SECURITY + + RakPeer::RequestedConnectionStruct *rcs; + bool unlock=true; + unsigned i; + rakPeer->requestedConnectionQueueMutex.Lock(); + for (i=0; i < rakPeer->requestedConnectionQueue.Size(); i++) + { + rcs=rakPeer->requestedConnectionQueue[i]; + + + if (rcs->systemAddress==systemAddress) + { +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: System address matches an entry in the requestedConnectionQueue and doSecurity=%i\n", (int)doSecurity); + if (doSecurity) + { + if (rcs->client_handshake==0) + { + CAT_AUDIT_PRINTF("AUDIT: Server wants security but we didn't set a public key -- Reporting back ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY to user\n"); + rakPeer->requestedConnectionQueueMutex.Unlock(); + + packet=rakPeer->AllocPacket(2, _FILE_AND_LINE_); + packet->data[ 0 ] = ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY; // Attempted a connection and couldn't + packet->data[ 1 ] = 0; // Indicate server public key is missing + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=guid; + rakPeer->AddPacketToProducer(packet); + return true; + } + + CAT_AUDIT_PRINTF("AUDIT: Looks good, preparing to send challenge to server! client_handshake = %x\n", client_handshake); + } + +#endif // LIBCAT_SECURITY + + rakPeer->requestedConnectionQueueMutex.Unlock(); + unlock=false; + + RakAssert(rcs->actionToTake==RakPeer::RequestedConnectionStruct::CONNECT); + // You might get this when already connected because of cross-connections + bool thisIPConnectedRecently=false; + remoteSystem=rakPeer->GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + if (remoteSystem==0) + { + if (rcs->socket.IsNull()) + { + remoteSystem=rakPeer->AssignSystemAddressToRemoteSystemList(systemAddress, RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER, rakNetSocket, &thisIPConnectedRecently, bindingAddress, mtu, guid, doSecurity); + } + else + { + remoteSystem=rakPeer->AssignSystemAddressToRemoteSystemList(systemAddress, RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER, rcs->socket, &thisIPConnectedRecently, bindingAddress, mtu, guid, doSecurity); + } + } + + // 4/13/09 Attackers can flood ID_OPEN_CONNECTION_REQUEST and use up all available connection slots + // Ignore connection attempts if this IP address connected within the last 100 milliseconds + if (thisIPConnectedRecently==false) + { + // Don't check GetRemoteSystemFromGUID, server will verify + if (remoteSystem) + { + // Move pointer from RequestedConnectionStruct to RemoteSystemStruct +#if LIBCAT_SECURITY==1 + cat::u8 ident[cat::EasyHandshake::IDENTITY_BYTES]; + bool doIdentity = false; + + if (rcs->client_handshake) + { + CAT_AUDIT_PRINTF("AUDIT: Processing answer\n"); + if (rcs->publicKeyMode == PKM_USE_TWO_WAY_AUTHENTICATION) + { + if (!rcs->client_handshake->ProcessAnswerWithIdentity(answer, ident, remoteSystem->reliabilityLayer.GetAuthenticatedEncryption())) + { + CAT_AUDIT_PRINTF("AUDIT: Processing answer -- Invalid Answer\n"); + rakPeer->requestedConnectionQueueMutex.Unlock(); + + return true; + } + + doIdentity = true; + } + else + { + if (!rcs->client_handshake->ProcessAnswer(answer, remoteSystem->reliabilityLayer.GetAuthenticatedEncryption())) + { + CAT_AUDIT_PRINTF("AUDIT: Processing answer -- Invalid Answer\n"); + rakPeer->requestedConnectionQueueMutex.Unlock(); + + return true; + } + } + CAT_AUDIT_PRINTF("AUDIT: Success!\n"); + + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + rcs->client_handshake=0; + } +#endif // LIBCAT_SECURITY + + remoteSystem->weInitiatedTheConnection=true; + remoteSystem->connectMode=RakPeer::RemoteSystemStruct::REQUESTED_CONNECTION; + if (rcs->timeoutTime!=0) + remoteSystem->reliabilityLayer.SetTimeoutTime(rcs->timeoutTime); + + RakNet::BitStream temp; + temp.Write( (MessageID)ID_CONNECTION_REQUEST); + temp.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + temp.Write(RakNet::GetTime()); + +#if LIBCAT_SECURITY==1 + temp.Write((unsigned char)(doSecurity ? 1 : 0)); + + if (doSecurity) + { + unsigned char proof[32]; + remoteSystem->reliabilityLayer.GetAuthenticatedEncryption()->GenerateProof(proof, sizeof(proof)); + temp.WriteAlignedBytes(proof, sizeof(proof)); + + temp.Write((unsigned char)(doIdentity ? 1 : 0)); + + if (doIdentity) + { + temp.WriteAlignedBytes(ident, sizeof(ident)); + } + } +#else + temp.Write((unsigned char)0); +#endif // LIBCAT_SECURITY + + if ( rcs->outgoingPasswordLength > 0 ) + temp.Write( ( char* ) rcs->outgoingPassword, rcs->outgoingPasswordLength ); + + rakPeer->SendImmediate((char*)temp.GetData(), temp.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, timeRead, 0 ); + } + else + { + // Failed, no connections available anymore + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_CONNECTION_ATTEMPT_FAILED; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=guid; + rakPeer->AddPacketToProducer(packet); + } + } + + rakPeer->requestedConnectionQueueMutex.Lock(); + for (unsigned int k=0; k < rakPeer->requestedConnectionQueue.Size(); k++) + { + if (rakPeer->requestedConnectionQueue[k]->systemAddress==systemAddress) + { + rakPeer->requestedConnectionQueue.RemoveAtIndex(k); + break; + } + } + rakPeer->requestedConnectionQueueMutex.Unlock(); + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Deleting client_handshake object %x and rcs->client_handshake object %x\n", client_handshake, rcs->client_handshake); + RakNet::OP_DELETE(client_handshake,_FILE_AND_LINE_); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); +#endif // LIBCAT_SECURITY + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + + break; + } + } + + if (unlock) + rakPeer->requestedConnectionQueueMutex.Unlock(); + + return true; + + } + else if ((unsigned char)(data)[0] == (MessageID)ID_CONNECTION_ATTEMPT_FAILED || + (unsigned char)(data)[0] == (MessageID)ID_NO_FREE_INCOMING_CONNECTIONS || + (unsigned char)(data)[0] == (MessageID)ID_CONNECTION_BANNED || + (unsigned char)(data)[0] == (MessageID)ID_ALREADY_CONNECTED || + (unsigned char)(data)[0] == (MessageID)ID_INVALID_PASSWORD || + (unsigned char)(data)[0] == (MessageID)ID_IP_RECENTLY_CONNECTED || + (unsigned char)(data)[0] == (MessageID)ID_INCOMPATIBLE_PROTOCOL_VERSION) + { + + RakNet::BitStream bs((unsigned char*) data,length,false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + if ((unsigned char)(data)[0] == (MessageID)ID_INCOMPATIBLE_PROTOCOL_VERSION) + bs.IgnoreBytes(sizeof(unsigned char)); + + RakNetGUID guid; + bs.Read(guid); + + RakPeer::RequestedConnectionStruct *rcs; + bool connectionAttemptCancelled=false; + unsigned i; + rakPeer->requestedConnectionQueueMutex.Lock(); + for (i=0; i < rakPeer->requestedConnectionQueue.Size(); i++) + { + rcs=rakPeer->requestedConnectionQueue[i]; + if (rcs->actionToTake==RakPeer::RequestedConnectionStruct::CONNECT && rcs->systemAddress==systemAddress) + { + connectionAttemptCancelled=true; + rakPeer->requestedConnectionQueue.RemoveAtIndex(i); + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Connection attempt canceled so deleting rcs->client_handshake object %x\n", rcs->client_handshake); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); +#endif // LIBCAT_SECURITY + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + break; + } + } + + rakPeer->requestedConnectionQueueMutex.Unlock(); + + if (connectionAttemptCancelled) + { + // Tell user of connection attempt failed + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = data[0]; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = systemAddress; + packet->guid=guid; + rakPeer->AddPacketToProducer(packet); + } + } + else if ((unsigned char)(data)[0] == ID_OPEN_CONNECTION_REQUEST_1 && length > (int) (1+sizeof(OFFLINE_MESSAGE_DATA_ID))) + {/* + static int x = 0; + ++x; + + SystemAddress *addr = (SystemAddress*)&systemAddress; + addr->binaryAddress += x;*/ + + unsigned int i; + //RAKNET_DEBUG_PRINTF("%i:IOCR, ", __LINE__); + char remoteProtocol=data[1+sizeof(OFFLINE_MESSAGE_DATA_ID)]; + if (remoteProtocol!=RAKNET_PROTOCOL_VERSION) + { + RakNet::BitStream bs; + bs.Write((MessageID)ID_INCOMPATIBLE_PROTOCOL_VERSION); + bs.Write((unsigned char)RAKNET_PROTOCOL_VERSION); + bs.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bs.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((char*)bs.GetData(), bs.GetNumberOfBitsUsed(), systemAddress); + + SocketLayer::SendTo( rakNetSocket->s, (char*)bs.GetData(), bs.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + return true; + } + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_OPEN_CONNECTION_REPLY_1); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); +#if LIBCAT_SECURITY==1 + if (rakPeer->_using_security) + { + bsOut.Write((unsigned char) 1); // HasCookie Yes + // Write cookie + uint32_t cookie = rakPeer->_cookie_jar->Generate(&systemAddress.address,sizeof(systemAddress.address)); + CAT_AUDIT_PRINTF("AUDIT: Writing cookie %i to %i:%i\n", cookie, systemAddress); + bsOut.Write(cookie); + // Write my public key + bsOut.WriteAlignedBytes((const unsigned char *) rakPeer->my_public_key,sizeof(rakPeer->my_public_key)); + } + else +#endif // LIBCAT_SECURITY + bsOut.Write((unsigned char) 0); // HasCookie No + + // MTU + bsOut.Write((uint16_t) (length+UDP_HEADER_SIZE)); + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + } + else if ((unsigned char)(data)[0] == ID_OPEN_CONNECTION_REQUEST_2) + { + SystemAddress bindingAddress; + RakNetGUID guid; + RakNet::BitStream bsOut; + RakNet::BitStream bs((unsigned char*) data, length, false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + + bool requiresSecurityOfThisClient=false; +#if LIBCAT_SECURITY==1 + char remoteHandshakeChallenge[cat::EasyHandshake::CHALLENGE_BYTES]; + + if (rakPeer->_using_security) + { + char str1[64]; + systemAddress.ToString(false, str1); + requiresSecurityOfThisClient=rakPeer->IsInSecurityExceptionList(str1)==false; + + uint32_t cookie; + bs.Read(cookie); + CAT_AUDIT_PRINTF("AUDIT: Got cookie %i from %i:%i\n", cookie, systemAddress); + if (rakPeer->_cookie_jar->Verify(&systemAddress.address,sizeof(systemAddress.address), cookie)==false) + { + return true; + } + CAT_AUDIT_PRINTF("AUDIT: Cookie good!\n"); + + unsigned char clientWroteChallenge; + bs.Read(clientWroteChallenge); + + if (requiresSecurityOfThisClient==true && clientWroteChallenge==0) + { + // Fail, client doesn't support security, and it is required + return true; + } + + if (clientWroteChallenge) + { + bs.ReadAlignedBytes((unsigned char*) remoteHandshakeChallenge, cat::EasyHandshake::CHALLENGE_BYTES); +#ifdef CAT_AUDIT + printf("AUDIT: RECV CHALLENGE "); + for (int ii = 0; ii < sizeof(remoteHandshakeChallenge); ++ii) + { + printf("%02x", (cat::u8)remoteHandshakeChallenge[ii]); + } + printf("\n"); +#endif + } + } +#endif // LIBCAT_SECURITY + + bs.Read(bindingAddress); + uint16_t mtu; + bs.Read(mtu); + bs.Read(guid); + + RakPeer::RemoteSystemStruct *rssFromSA = rakPeer->GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + bool IPAddrInUse = rssFromSA != 0 && rssFromSA->isActive; + RakPeer::RemoteSystemStruct *rssFromGuid = rakPeer->GetRemoteSystemFromGUID(guid, true); + bool GUIDInUse = rssFromGuid != 0 && rssFromGuid->isActive; + + // IPAddrInUse, GuidInUse, outcome + // TRUE, , TRUE , ID_OPEN_CONNECTION_REPLY if they are the same, else ID_ALREADY_CONNECTED + // FALSE, , TRUE , ID_ALREADY_CONNECTED (someone else took this guid) + // TRUE, , FALSE , ID_ALREADY_CONNECTED (silently disconnected, restarted rakNet) + // FALSE , FALSE , Allow connection + + int outcome; + if (IPAddrInUse & GUIDInUse) + { + if (rssFromSA==rssFromGuid && rssFromSA->connectMode==RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER) + { + // ID_OPEN_CONNECTION_REPLY if they are the same + outcome=1; + } + else + { + // ID_ALREADY_CONNECTED (restarted raknet, connected again from same ip, plus someone else took this guid) + outcome=2; + } + } + else if (IPAddrInUse==false && GUIDInUse==true) + { + // ID_ALREADY_CONNECTED (someone else took this guid) + outcome=3; + } + else if (IPAddrInUse==true && GUIDInUse==false) + { + // ID_ALREADY_CONNECTED (silently disconnected, restarted rakNet) + outcome=4; + } + else + { + // Allow connection + outcome=0; + } + + RakNet::BitStream bsAnswer; + bsAnswer.Write((MessageID)ID_OPEN_CONNECTION_REPLY_2); + bsAnswer.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsAnswer.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + bsAnswer.Write(systemAddress); + bsAnswer.Write(mtu); + bsAnswer.Write(requiresSecurityOfThisClient); + + if (outcome==1) + { + // Duplicate connection request packet from packetloss + // Send back the same answer +#if LIBCAT_SECURITY==1 + if (requiresSecurityOfThisClient) + { + CAT_AUDIT_PRINTF("AUDIT: Resending public key and answer from packetloss. Sending ID_OPEN_CONNECTION_REPLY_2\n"); + bsAnswer.WriteAlignedBytes((const unsigned char *) rssFromSA->answer,sizeof(rssFromSA->answer)); + } +#endif // LIBCAT_SECURITY + + unsigned int i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + else if (outcome!=0) + { + bsOut.Write((MessageID)ID_ALREADY_CONNECTED); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(guid); + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + + if (rakPeer->AllowIncomingConnections()==false) + { + bsOut.Write((MessageID)ID_NO_FREE_INCOMING_CONNECTIONS); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(guid); + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + + bool thisIPConnectedRecently=false; + rssFromSA = rakPeer->AssignSystemAddressToRemoteSystemList(systemAddress, RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER, rakNetSocket, &thisIPConnectedRecently, bindingAddress, mtu, guid, requiresSecurityOfThisClient); + + if (thisIPConnectedRecently==true) + { + bsOut.Write((MessageID)ID_IP_RECENTLY_CONNECTED); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(guid); + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + +#if LIBCAT_SECURITY==1 + if (requiresSecurityOfThisClient) + { + CAT_AUDIT_PRINTF("AUDIT: Writing public key. Sending ID_OPEN_CONNECTION_REPLY_2\n"); + if (rakPeer->_server_handshake->ProcessChallenge(remoteHandshakeChallenge, rssFromSA->answer, rssFromSA->reliabilityLayer.GetAuthenticatedEncryption() )) + { + CAT_AUDIT_PRINTF("AUDIT: Challenge good!\n"); + // Keep going to OK block + } + else + { + CAT_AUDIT_PRINTF("AUDIT: Challenge BAD!\n"); + + // Unassign this remote system + rakPeer->DereferenceRemoteSystem(systemAddress); + return true; + } + + bsAnswer.WriteAlignedBytes((const unsigned char *) rssFromSA->answer,sizeof(rssFromSA->answer)); + } +#endif // LIBCAT_SECURITY + + unsigned int i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + } + return true; + } + + return false; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void ProcessNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNet::TimeUS timeRead, BitStream &updateBitStream ) +{ + ProcessNetworkPacket(systemAddress,data,length,rakPeer,rakPeer->socketList[0],timeRead, updateBitStream); +} +void ProcessNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, RakNet::TimeUS timeRead, BitStream &updateBitStream ) +{ +#if LIBCAT_SECURITY==1 +#ifdef CAT_AUDIT + printf("AUDIT: RECV "); + for (int ii = 0; ii < length; ++ii) + { + printf("%02x", (cat::u8)data[ii]); + } + printf("\n"); +#endif +#endif // LIBCAT_SECURITY + + RakAssert(systemAddress.GetPort()); + bool isOfflineMessage; + if (ProcessOfflineNetworkPacket(systemAddress, data, length, rakPeer, rakNetSocket, &isOfflineMessage, timeRead)) + { + return; + } + +// RakNet::Packet *packet; + RakPeer::RemoteSystemStruct *remoteSystem; + + // See if this datagram came from a connected system + remoteSystem = rakPeer->GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + if ( remoteSystem ) + { + // Handle regular incoming data + // HandleSocketReceiveFromConnectedPlayer is only safe to be called from the same thread as Update, which is this thread + if ( isOfflineMessage==false) + { + remoteSystem->reliabilityLayer.HandleSocketReceiveFromConnectedPlayer( + data, length, systemAddress, rakPeer->pluginListNTS, remoteSystem->MTUSize, + rakNetSocket->s, &rnr, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, timeRead, updateBitStream); + } + } +} + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GenerateSeedFromGuid(void) +{ + /* + // Construct a random seed based on the initial guid value, and the last digits of the difference to each subsequent number + // This assumes that only the last 3 bits of each guidId integer has a meaningful amount of randomness between it and the prior number + unsigned int t = guid.g[0]; + unsigned int i; + for (i=1; i < sizeof(guid.g) / sizeof(guid.g[0]); i++) + { + unsigned int diff = guid.g[i]-guid.g[i-1]; + unsigned int diff3Bits = diff & 0x0007; + diff3Bits <<= 29; + diff3Bits >>= (i-1)*3; + t ^= diff3Bits; + } + + return t; + */ + return (unsigned int) ((myGuid.g >> 32) ^ myGuid.g); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DerefAllSockets(void) +{ + unsigned int i; + for (i=0; i < socketList.Size(); i++) + { + socketList[i].SetNull(); + } + socketList.Clear(false, _FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetRakNetSocketFromUserConnectionSocketIndex(unsigned int userIndex) const +{ + unsigned int i; + for (i=0; i < socketList.Size(); i++) + { + if (socketList[i]->userConnectionSocketIndex==userIndex) + return i; + } + RakAssert("GetRakNetSocketFromUserConnectionSocketIndex failed" && 0); + return (unsigned int) -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::RunUpdateCycle( RakNet::TimeUS timeNS, RakNet::Time timeMS, BitStream &updateBitStream ) +{ + RakPeer::RemoteSystemStruct * remoteSystem; + unsigned int activeSystemListIndex; + Packet *packet; + // int currentSentBytes,currentReceivedBytes; +// unsigned numberOfBytesUsed; +// BitSize_t numberOfBitsUsed; + //SystemAddress authoritativeClientSystemAddress; + BitSize_t bitSize; + unsigned int byteSize; + unsigned char *data; + SystemAddress systemAddress; + BufferedCommandStruct *bcs; + bool callerDataAllocationUsed; + RakNetStatistics *rnss; + + // This is here so RecvFromBlocking actually gets data from the same thread + if (SocketLayer::GetSocketLayerOverride()) + { + int len; + SystemAddress sender; + char dataOut[ MAXIMUM_MTU_SIZE ]; + do { + len = SocketLayer::GetSocketLayerOverride()->RakNetRecvFrom(socketList[0]->s,this,dataOut,&sender,true); + if (len>0) + ProcessNetworkPacket( sender, dataOut, len, this, socketList[0], RakNet::GetTimeUS(), updateBitStream ); + } while (len>0); + } + + unsigned int socketListIndex; + RakPeer::RecvFromStruct *recvFromStruct; + while ((recvFromStruct=bufferedPackets.PopInaccurate())!=0) + { + for (socketListIndex=0; socketListIndex < socketList.Size(); socketListIndex++) + { + if ((SOCKET) socketList[socketListIndex]->s==recvFromStruct->s) + break; + } + if (socketListIndex!=socketList.Size()) + ProcessNetworkPacket(recvFromStruct->systemAddress, recvFromStruct->data, recvFromStruct->bytesRead, this, socketList[socketListIndex], recvFromStruct->timeRead, updateBitStream); + bufferedPackets.Deallocate(recvFromStruct, _FILE_AND_LINE_); + } + + while ((bcs=bufferedCommands.PopInaccurate())!=0) + { + if (bcs->command==BufferedCommandStruct::BCS_SEND) + { + // GetTime is a very slow call so do it once and as late as possible + if (timeNS==0) + { + timeNS = RakNet::GetTimeUS(); + timeMS = (RakNet::TimeMS)(timeNS/(RakNet::TimeUS)1000); + } + + callerDataAllocationUsed=SendImmediate((char*)bcs->data, bcs->numberOfBitsToSend, bcs->priority, bcs->reliability, bcs->orderingChannel, bcs->systemIdentifier, bcs->broadcast, true, timeNS, bcs->receipt); + if ( callerDataAllocationUsed==false ) + rakFree_Ex(bcs->data, _FILE_AND_LINE_ ); + + // Set the new connection state AFTER we call sendImmediate in case we are setting it to a disconnection state, which does not allow further sends + if (bcs->connectionMode!=RemoteSystemStruct::NO_ACTION ) + { + remoteSystem=GetRemoteSystem( bcs->systemIdentifier, true, true ); + if (remoteSystem) + remoteSystem->connectMode=bcs->connectionMode; + } + } + else if (bcs->command==BufferedCommandStruct::BCS_CLOSE_CONNECTION) + { + CloseConnectionInternal(bcs->systemIdentifier, false, true, bcs->orderingChannel, bcs->priority); + } + else if (bcs->command==BufferedCommandStruct::BCS_CHANGE_SYSTEM_ADDRESS) + { + // Reroute + RakPeer::RemoteSystemStruct *rssFromGuid = GetRemoteSystem(bcs->systemIdentifier.rakNetGuid,true,true); + if (rssFromGuid!=0) + { + unsigned int existingSystemIndex = GetRemoteSystemIndex(rssFromGuid->systemAddress); + ReferenceRemoteSystem(bcs->systemIdentifier.systemAddress, existingSystemIndex); + } + } + else if (bcs->command==BufferedCommandStruct::BCS_GET_SOCKET) + { + SocketQueryOutput *sqo; + if (bcs->systemIdentifier.IsUndefined()) + { + sqo = socketQueryOutput.Allocate( _FILE_AND_LINE_ ); + sqo->sockets=socketList; + socketQueryOutput.Push(sqo); + } + else + { + remoteSystem=GetRemoteSystem( bcs->systemIdentifier, true, true ); + sqo = socketQueryOutput.Allocate( _FILE_AND_LINE_ ); + + sqo->sockets.Clear(false, _FILE_AND_LINE_); + if (remoteSystem) + { + sqo->sockets.Push(remoteSystem->rakNetSocket, _FILE_AND_LINE_ ); + } + else + { + // Leave empty smart pointer + } + socketQueryOutput.Push(sqo); + } + + } + +#ifdef _DEBUG + bcs->data=0; +#endif + + bufferedCommands.Deallocate(bcs, _FILE_AND_LINE_); + } + + if (requestedConnectionQueue.IsEmpty()==false) + { + if (timeNS==0) + { + timeNS = RakNet::GetTimeUS(); + timeMS = (RakNet::TimeMS)(timeNS/(RakNet::TimeUS)1000); + } + + bool condition1, condition2; + unsigned requestedConnectionQueueIndex=0; + requestedConnectionQueueMutex.Lock(); + while (requestedConnectionQueueIndex < requestedConnectionQueue.Size()) + { + RequestedConnectionStruct *rcs; + rcs = requestedConnectionQueue[requestedConnectionQueueIndex]; + requestedConnectionQueueMutex.Unlock(); + if (rcs->nextRequestTime < timeMS) + { + condition1=rcs->requestsMade==rcs->sendConnectionAttemptCount+1; + condition2=(bool)((rcs->systemAddress==UNASSIGNED_SYSTEM_ADDRESS)==1); + // If too many requests made or a hole then remove this if possible, otherwise invalidate it + if (condition1 || condition2) + { + if (rcs->data) + { + rakFree_Ex(rcs->data, _FILE_AND_LINE_ ); + rcs->data=0; + } + + if (condition1 && !condition2 && rcs->actionToTake==RequestedConnectionStruct::CONNECT) + { + // Tell user of connection attempt failed + packet=AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_CONNECTION_ATTEMPT_FAILED; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + AddPacketToProducer(packet); + } + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Connection attempt FAILED so deleting rcs->client_handshake object %x\n", rcs->client_handshake); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); +#endif + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + + requestedConnectionQueueMutex.Lock(); + for (unsigned int k=0; k < requestedConnectionQueue.Size(); k++) + { + if (requestedConnectionQueue[k]==rcs) + { + requestedConnectionQueue.RemoveAtIndex(k); + break; + } + } + requestedConnectionQueueMutex.Unlock(); + } + else + { + + int MTUSizeIndex = rcs->requestsMade / (rcs->sendConnectionAttemptCount/NUM_MTU_SIZES); + if (MTUSizeIndex>=NUM_MTU_SIZES) + MTUSizeIndex=NUM_MTU_SIZES-1; + rcs->requestsMade++; + rcs->nextRequestTime=timeMS+rcs->timeBetweenSendConnectionAttemptsMS; + + RakNet::BitStream bitStream; + //WriteOutOfBandHeader(&bitStream, ID_USER_PACKET_ENUM); + bitStream.Write((MessageID)ID_OPEN_CONNECTION_REQUEST_1); + bitStream.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bitStream.Write((MessageID)RAKNET_PROTOCOL_VERSION); + bitStream.PadWithZeroToByteLength(mtuSizes[MTUSizeIndex]-UDP_HEADER_SIZE); + + char str[256]; + rcs->systemAddress.ToString(true,str); + + //RAKNET_DEBUG_PRINTF("%i:IOCR, ", __LINE__); + + unsigned i; + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnDirectSocketSend((const char*) bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), rcs->systemAddress); + + if (rcs->socket.IsNull()) + { + rcs->systemAddress.FixForIPVersion(socketList[rcs->socketIndex]->boundAddress); + SocketLayer::SetDoNotFragment(socketList[rcs->socketIndex]->s, 1, socketList[rcs->socketIndex]->boundAddress.GetIPPROTO()); + RakNet::Time sendToStart=RakNet::GetTime(); + if (SocketLayer::SendTo( socketList[rcs->socketIndex]->s, (const char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), rcs->systemAddress, socketList[rcs->socketIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[rcs->socketIndex]->extraSocketOptions, _FILE_AND_LINE_ )==-10040) + { + // Don't use this MTU size again + rcs->requestsMade = (unsigned char) ((MTUSizeIndex + 1) * (rcs->sendConnectionAttemptCount/NUM_MTU_SIZES)); + rcs->nextRequestTime=timeMS; + } + else + { + RakNet::Time sendToEnd=RakNet::GetTime(); + if (sendToEnd-sendToStart>100) + { + // Drop to lowest MTU + int lowestMtuIndex = rcs->sendConnectionAttemptCount/NUM_MTU_SIZES * (NUM_MTU_SIZES - 1); + if (lowestMtuIndex > rcs->requestsMade) + { + rcs->requestsMade = (unsigned char) lowestMtuIndex; + rcs->nextRequestTime=timeMS; + } + else + rcs->requestsMade=(unsigned char)(rcs->sendConnectionAttemptCount+1); + } + } + SocketLayer::SetDoNotFragment(socketList[rcs->socketIndex]->s, 0, socketList[rcs->socketIndex]->boundAddress.GetIPPROTO()); + } + else + { + rcs->systemAddress.FixForIPVersion(rcs->socket->boundAddress); + SocketLayer::SetDoNotFragment(rcs->socket->s, 1, rcs->socket->boundAddress.GetIPPROTO()); + RakNet::Time sendToStart=RakNet::GetTime(); + if (SocketLayer::SendTo( rcs->socket->s, (const char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), rcs->systemAddress, socketList[rcs->socketIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[rcs->socketIndex]->extraSocketOptions, _FILE_AND_LINE_ )==-10040) + { + // Don't use this MTU size again + rcs->requestsMade = (unsigned char) ((MTUSizeIndex + 1) * (rcs->sendConnectionAttemptCount/NUM_MTU_SIZES)); + rcs->nextRequestTime=timeMS; + } + else + { + RakNet::Time sendToEnd=RakNet::GetTime(); + if (sendToEnd-sendToStart>100) + { + // Drop to lowest MTU + int lowestMtuIndex = rcs->sendConnectionAttemptCount/NUM_MTU_SIZES * (NUM_MTU_SIZES - 1); + if (lowestMtuIndex > rcs->requestsMade) + { + rcs->requestsMade = (unsigned char) lowestMtuIndex; + rcs->nextRequestTime=timeMS; + } + else + rcs->requestsMade= (unsigned char) rcs->sendConnectionAttemptCount+1; + } + } + SocketLayer::SetDoNotFragment(rcs->socket->s, 0, rcs->socket->boundAddress.GetIPPROTO()); + } + + requestedConnectionQueueIndex++; + } + } + else + requestedConnectionQueueIndex++; + + requestedConnectionQueueMutex.Lock(); + } + requestedConnectionQueueMutex.Unlock(); + } + + // remoteSystemList in network thread + for ( activeSystemListIndex = 0; activeSystemListIndex < activeSystemListSize; ++activeSystemListIndex ) + //for ( remoteSystemIndex = 0; remoteSystemIndex < remoteSystemListSize; ++remoteSystemIndex ) + { + // I'm using systemAddress from remoteSystemList but am not locking it because this loop is called very frequently and it doesn't + // matter if we miss or do an extra update. The reliability layers themselves never care which player they are associated with + //systemAddress = remoteSystemList[ remoteSystemIndex ].systemAddress; + // Allow the systemAddress for this remote system list to change. We don't care if it changes now. + // remoteSystemList[ remoteSystemIndex ].allowSystemAddressAssigment=true; + + + // Found an active remote system + remoteSystem = activeSystemList[ activeSystemListIndex ]; + systemAddress = remoteSystem->systemAddress; + RakAssert(systemAddress!=UNASSIGNED_SYSTEM_ADDRESS); + // Update is only safe to call from the same thread that calls HandleSocketReceiveFromConnectedPlayer, + // which is this thread + + if (timeNS==0) + { + timeNS = RakNet::GetTimeUS(); + timeMS = (RakNet::TimeMS)(timeNS/(RakNet::TimeUS)1000); + //RAKNET_DEBUG_PRINTF("timeNS = %I64i timeMS=%i\n", timeNS, timeMS); + } + + + if (timeMS > remoteSystem->lastReliableSend && timeMS-remoteSystem->lastReliableSend > remoteSystem->reliabilityLayer.GetTimeoutTime()/2 && remoteSystem->connectMode==RemoteSystemStruct::CONNECTED) + { + // If no reliable packets are waiting for an ack, do a one byte reliable send so that disconnections are noticed + RakNetStatistics rakNetStatistics; + rnss=remoteSystem->reliabilityLayer.GetStatistics(&rakNetStatistics); + if (rnss->messagesInResendBuffer==0) + { + PingInternal( systemAddress, true, RELIABLE ); + + //remoteSystem->lastReliableSend=timeMS+remoteSystem->reliabilityLayer.GetTimeoutTime(); + remoteSystem->lastReliableSend=timeMS; + } + } + + remoteSystem->reliabilityLayer.Update( remoteSystem->rakNetSocket->s, systemAddress, remoteSystem->MTUSize, timeNS, maxOutgoingBPS, pluginListNTS, &rnr, remoteSystem->rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, remoteSystem->rakNetSocket->extraSocketOptions, updateBitStream ); // systemAddress only used for the internet simulator test + + // Check for failure conditions + if ( remoteSystem->reliabilityLayer.IsDeadConnection() || + ((remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ASAP || remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY) && remoteSystem->reliabilityLayer.IsOutgoingDataWaiting()==false) || + (remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ON_NO_ACK && (remoteSystem->reliabilityLayer.AreAcksWaiting()==false || remoteSystem->reliabilityLayer.AckTimeout(timeMS)==true)) || + (( + (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION || + remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST || + remoteSystem->connectMode==RemoteSystemStruct::UNVERIFIED_SENDER) + && timeMS > remoteSystem->connectionTime && timeMS - remoteSystem->connectionTime > 10000)) + ) + { + // RAKNET_DEBUG_PRINTF("timeMS=%i remoteSystem->connectionTime=%i\n", timeMS, remoteSystem->connectionTime ); + + // Failed. Inform the user? + // TODO - RakNet 4.0 - Return a different message identifier for DISCONNECT_ASAP_SILENTLY and DISCONNECT_ASAP than for DISCONNECT_ON_NO_ACK + // The first two mean we called CloseConnection(), the last means the other system sent us ID_DISCONNECTION_NOTIFICATION + if (remoteSystem->connectMode==RemoteSystemStruct::CONNECTED || remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION + || remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ASAP || remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ON_NO_ACK) + { + +// RakNet::BitStream undeliveredMessages; +// remoteSystem->reliabilityLayer.GetUndeliveredMessages(&undeliveredMessages,remoteSystem->MTUSize); + +// packet=AllocPacket(sizeof( char ) + undeliveredMessages.GetNumberOfBytesUsed()); + packet=AllocPacket(sizeof( char ), _FILE_AND_LINE_); + if (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION) + packet->data[ 0 ] = ID_CONNECTION_ATTEMPT_FAILED; // Attempted a connection and couldn't + else if (remoteSystem->connectMode==RemoteSystemStruct::CONNECTED) + packet->data[ 0 ] = ID_CONNECTION_LOST; // DeadConnection + else + packet->data[ 0 ] = ID_DISCONNECTION_NOTIFICATION; // DeadConnection + +// memcpy(packet->data+1, undeliveredMessages.GetData(), undeliveredMessages.GetNumberOfBytesUsed()); + + packet->guid = remoteSystem->guid; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + + AddPacketToProducer(packet); + } + // else connection shutting down, don't bother telling the user + +#ifdef _DO_PRINTF + RAKNET_DEBUG_PRINTF("Connection dropped for player %i:%i\n", systemAddress); +#endif + CloseConnectionInternal( systemAddress, false, true, 0, LOW_PRIORITY ); + continue; + } + + // Ping this guy if it is time to do so + if ( remoteSystem->connectMode==RemoteSystemStruct::CONNECTED && timeMS > remoteSystem->nextPingTime && ( occasionalPing || remoteSystem->lowestPing == (unsigned short)-1 ) ) + { + remoteSystem->nextPingTime = timeMS + 5000; + PingInternal( systemAddress, true, UNRELIABLE ); + + // Update again immediately after this tick so the ping goes out right away + quitAndDataEvents.SetEvent(); + } + + // Find whoever has the lowest player ID + //if (systemAddress < authoritativeClientSystemAddress) + // authoritativeClientSystemAddress=systemAddress; + + // Does the reliability layer have any packets waiting for us? + // To be thread safe, this has to be called in the same thread as HandleSocketReceiveFromConnectedPlayer + bitSize = remoteSystem->reliabilityLayer.Receive( &data ); + + while ( bitSize > 0 ) + { + // These types are for internal use and should never arrive from a network packet + if (data[0]==ID_CONNECTION_ATTEMPT_FAILED) + { + RakAssert(0); + bitSize=0; + continue; + } + + // Fast and easy - just use the data that was returned + byteSize = (unsigned int) BITS_TO_BYTES( bitSize ); + + // For unknown senders we only accept a few specific packets + if (remoteSystem->connectMode==RemoteSystemStruct::UNVERIFIED_SENDER) + { + if ( (unsigned char)(data)[0] == ID_CONNECTION_REQUEST ) + { + ParseConnectionRequestPacket(remoteSystem, systemAddress, (const char*)data, byteSize); + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else + { + CloseConnectionInternal( systemAddress, false, true, 0, LOW_PRIORITY ); +#ifdef _DO_PRINTF + RAKNET_DEBUG_PRINTF("Temporarily banning %i:%i for sending nonsense data\n", systemAddress); +#endif + + char str1[64]; + systemAddress.ToString(false, str1); + AddToBanList(str1, remoteSystem->reliabilityLayer.GetTimeoutTime()); + + + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else + { + // However, if we are connected we still take a connection request in case both systems are trying to connect to each other + // at the same time + if ( (unsigned char)(data)[0] == ID_CONNECTION_REQUEST ) + { + // 04/27/06 This is wrong. With cross connections, we can both have initiated the connection are in state REQUESTED_CONNECTION + // 04/28/06 Downgrading connections from connected will close the connection due to security at ((remoteSystem->connectMode!=RemoteSystemStruct::CONNECTED && time > remoteSystem->connectionTime && time - remoteSystem->connectionTime > 10000)) + if (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION) + { + ParseConnectionRequestPacket(remoteSystem, systemAddress, (const char*)data, byteSize); + } + else + { + + RakNet::BitStream bs((unsigned char*) data,byteSize,false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + bs.IgnoreBytes(RakNetGUID::size()); + RakNet::Time incomingTimestamp; + bs.Read(incomingTimestamp); + + // Got a connection request message from someone we are already connected to. Just reply normally. + // This can happen due to race conditions with the fully connected mesh + OnConnectionRequest( remoteSystem, incomingTimestamp ); + } + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char) data[ 0 ] == ID_NEW_INCOMING_CONNECTION && byteSize > sizeof(unsigned char)+sizeof(unsigned int)+sizeof(unsigned short)+sizeof(RakNet::Time)*2 ) + { + if (remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST) + { + remoteSystem->connectMode=RemoteSystemStruct::CONNECTED; + PingInternal( systemAddress, true, UNRELIABLE ); + + // Update again immediately after this tick so the ping goes out right away + quitAndDataEvents.SetEvent(); + + RakNet::BitStream inBitStream((unsigned char *) data, byteSize, false); + SystemAddress bsSystemAddress; + + inBitStream.IgnoreBits(8); + inBitStream.Read(bsSystemAddress); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + inBitStream.Read(remoteSystem->theirInternalSystemAddress[i]); + + RakNet::Time sendPingTime, sendPongTime; + inBitStream.Read(sendPingTime); + inBitStream.Read(sendPongTime); + OnConnectedPong(sendPingTime,sendPongTime,remoteSystem); + + // Overwrite the data in the packet + // NewIncomingConnectionStruct newIncomingConnectionStruct; + // RakNet::BitStream nICS_BS( data, NewIncomingConnectionStruct_Size, false ); + // newIncomingConnectionStruct.Deserialize( nICS_BS ); + + remoteSystem->myExternalSystemAddress = bsSystemAddress; + firstExternalID=bsSystemAddress; + firstExternalID.debugPort=ntohs(firstExternalID.address.addr4.sin_port); + + // Send this info down to the game + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = bitSize; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + } + else + { + // Send to game even if already connected. This could happen when connecting to 127.0.0.1 + // Ignore, already connected + // rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else if ( (unsigned char) data[ 0 ] == ID_CONNECTED_PONG && byteSize == sizeof(unsigned char)+sizeof(RakNet::Time)*2 ) + { + RakNet::Time sendPingTime, sendPongTime; + + // Copy into the ping times array the current time - the value returned + // First extract the sent ping + RakNet::BitStream inBitStream( (unsigned char *) data, byteSize, false ); + //PingStruct ps; + //ps.Deserialize(psBS); + inBitStream.IgnoreBits(8); + inBitStream.Read(sendPingTime); + inBitStream.Read(sendPongTime); + + OnConnectedPong(sendPingTime,sendPongTime,remoteSystem); + + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char)data[0] == ID_CONNECTED_PING && byteSize == sizeof(unsigned char)+sizeof(RakNet::Time) ) + { + RakNet::BitStream inBitStream( (unsigned char *) data, byteSize, false ); + inBitStream.IgnoreBits(8); + RakNet::Time sendPingTime; + inBitStream.Read(sendPingTime); + + RakNet::BitStream outBitStream; + outBitStream.Write((MessageID)ID_CONNECTED_PONG); + outBitStream.Write(sendPingTime); + outBitStream.Write(RakNet::GetTime()); + SendImmediate( (char*)outBitStream.GetData(), outBitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, UNRELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0 ); + + // Update again immediately after this tick so the ping goes out right away + quitAndDataEvents.SetEvent(); + + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char) data[ 0 ] == ID_DISCONNECTION_NOTIFICATION ) + { + // We shouldn't close the connection immediately because we need to ack the ID_DISCONNECTION_NOTIFICATION + remoteSystem->connectMode=RemoteSystemStruct::DISCONNECT_ON_NO_ACK; + rakFree_Ex(data, _FILE_AND_LINE_ ); + + // AddPacketToProducer(packet); + } + else if ( (unsigned char)(data)[0] == ID_DETECT_LOST_CONNECTIONS && byteSize == sizeof(unsigned char) ) + { + // Do nothing + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char)(data)[0] == ID_INVALID_PASSWORD ) + { + if (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION) + { + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = bitSize; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + + remoteSystem->connectMode=RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + } + else + { + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else if ( (unsigned char)(data)[0] == ID_CONNECTION_REQUEST_ACCEPTED ) + { + if (byteSize > sizeof(MessageID)+sizeof(unsigned int)+sizeof(unsigned short)+sizeof(SystemIndex)+sizeof(RakNet::Time)*2) + { + // Make sure this connection accept is from someone we wanted to connect to + bool allowConnection, alreadyConnected; + + if (remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST || + remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION || + allowConnectionResponseIPMigration) + allowConnection=true; + else + allowConnection=false; + + if (remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST) + alreadyConnected=true; + else + alreadyConnected=false; + + if ( allowConnection ) + { + SystemAddress externalID; + SystemIndex systemIndex; +// SystemAddress internalID; + + RakNet::BitStream inBitStream((unsigned char *) data, byteSize, false); + inBitStream.IgnoreBits(8); + // inBitStream.Read(remotePort); + inBitStream.Read(externalID); + inBitStream.Read(systemIndex); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + inBitStream.Read(remoteSystem->theirInternalSystemAddress[i]); + + RakNet::Time sendPingTime, sendPongTime; + inBitStream.Read(sendPingTime); + inBitStream.Read(sendPongTime); + OnConnectedPong(sendPingTime, sendPongTime, remoteSystem); + + // Find a free remote system struct to use + // RakNet::BitStream casBitS(data, byteSize, false); + // ConnectionAcceptStruct cas; + // cas.Deserialize(casBitS); + // systemAddress.GetPort() = remotePort; + + // The remote system told us our external IP, so save it + remoteSystem->myExternalSystemAddress = externalID; + remoteSystem->connectMode=RemoteSystemStruct::CONNECTED; + + firstExternalID=externalID; + firstExternalID.debugPort=ntohs(firstExternalID.address.addr4.sin_port); + + // Send the connection request complete to the game + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = byteSize * 8; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = ( SystemIndex ) GetIndexFromSystemAddress( systemAddress, true ); + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + + RakNet::BitStream outBitStream; + outBitStream.Write((MessageID)ID_NEW_INCOMING_CONNECTION); + outBitStream.Write(systemAddress); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + outBitStream.Write(ipList[i]); + outBitStream.Write(sendPongTime); + outBitStream.Write(RakNet::GetTime()); + + + // We turned on encryption with SetEncryptionKey. This pads packets to up to a multiple of 16 bytes. + // As soon as a multiple of 16 byte packet arrives on the remote system, we will turn on AES. This works because all encrypted packets are multiples of 16 and the + // packets I happen to be sending before this are not a multiple of 16 bytes. Otherwise there is no way to know if a packet that arrived is + // encrypted or not so the other side won't know to turn on encryption or not. + RakAssert((outBitStream.GetNumberOfBytesUsed()&15)!=0); + SendImmediate( (char*)outBitStream.GetData(), outBitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, RELIABLE_ORDERED, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0 ); + + if (alreadyConnected==false) + { + PingInternal( systemAddress, true, UNRELIABLE ); + } + } + else + { + // Ignore, already connected + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else + { + // Version mismatch error? + RakAssert(0); + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else + { + // What do I do if I get a message from a system, before I am fully connected? + // I can either ignore it or give it to the user + // It seems like giving it to the user is a better option + if ((data[0]>=(MessageID)ID_TIMESTAMP || data[0]==ID_SND_RECEIPT_ACKED || data[0]==ID_SND_RECEIPT_LOSS) && + remoteSystem->isActive + ) + { + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = bitSize; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + } + else + { + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + } + + // Does the reliability layer have any more packets waiting for us? + // To be thread safe, this has to be called in the same thread as HandleSocketReceiveFromConnectedPlayer + bitSize = remoteSystem->reliabilityLayer.Receive( &data ); + } + + } + + return true; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RAK_THREAD_DECLARATION(RakNet::RecvFromLoop) +{ + + + + RakPeerAndIndex *rpai = ( RakPeerAndIndex * ) arguments; + + RakPeer * rakPeer = rpai->rakPeer; + SOCKET s = rpai->s; + unsigned short remotePortRakNetWasStartedOn_PS3 = rpai->remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions = rpai->extraSocketOptions; + + rakPeer->isRecvFromLoopThreadActive.Increment(); + + RakPeer::RecvFromStruct *recvFromStruct; + while ( rakPeer->endThreads == false ) + { + recvFromStruct=rakPeer->bufferedPackets.Allocate( _FILE_AND_LINE_ ); + if (recvFromStruct != NULL) + { + recvFromStruct->s=s; + recvFromStruct->remotePortRakNetWasStartedOn_PS3=remotePortRakNetWasStartedOn_PS3; + recvFromStruct->extraSocketOptions=extraSocketOptions; + SocketLayer::RecvFromBlocking(s, rakPeer, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, recvFromStruct->data, &recvFromStruct->bytesRead, &recvFromStruct->systemAddress, &recvFromStruct->timeRead); + + if (recvFromStruct->bytesRead>0) + { + RakAssert(recvFromStruct->systemAddress.GetPort()); + rakPeer->bufferedPackets.Push(recvFromStruct); + rakPeer->quitAndDataEvents.SetEvent(); + rakPeer->errorState = 0; + } + else + { + if (recvFromStruct->bytesRead < 0) { + --rakPeer->errorState; + RakSleep(30); + } + rakPeer->bufferedPackets.Deallocate(recvFromStruct, _FILE_AND_LINE_); + } + } + else + RakSleep(30); + } + rakPeer->isRecvFromLoopThreadActive.Decrement(); + + + + + return 0; + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RAK_THREAD_DECLARATION(RakNet::UpdateNetworkLoop) +{ + + + + RakPeer * rakPeer = ( RakPeer * ) arguments; + + +/* + // 11/15/05 - this is slower than Sleep() +#ifdef _WIN32 +#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) + // Lets see if these timers give better performance than Sleep + HANDLE timerHandle; + LARGE_INTEGER dueTime; + + if ( rakPeer->threadSleepTimer <= 0 ) + rakPeer->threadSleepTimer = 1; + + // 2nd parameter of false means synchronization timer instead of manual-reset timer + timerHandle = CreateWaitableTimer( NULL, FALSE, 0 ); + + RakAssert( timerHandle ); + + dueTime.QuadPart = -10000 * rakPeer->threadSleepTimer; // 10000 is 1 ms? + + BOOL success = SetWaitableTimer( timerHandle, &dueTime, rakPeer->threadSleepTimer, NULL, NULL, FALSE ); + (void) success; + RakAssert( success ); + +#endif +#endif +*/ + + BitStream updateBitStream( MAXIMUM_MTU_SIZE +#if LIBCAT_SECURITY==1 + + cat::AuthenticatedEncryption::OVERHEAD_BYTES +#endif + ); + + RakNet::TimeUS timeNS; + RakNet::TimeMS timeMS; + + rakPeer->isMainLoopThreadActive = true; + + while ( rakPeer->endThreads == false ) + { + // Set inside RunUpdateCycle() itself, this is here for testing + timeNS=0; + timeMS=0; + +// #ifdef _DEBUG +// // Sanity check, make sure RunUpdateCycle does not block or not otherwise get called for a long time +// RakNetTime thisCall=RakNet::GetTime(); +// RakAssert(thisCall-lastCall<250); +// lastCall=thisCall; +// #endif + if (rakPeer->userUpdateThreadPtr) + rakPeer->userUpdateThreadPtr(rakPeer, rakPeer->userUpdateThreadData); + + rakPeer->RunUpdateCycle(timeNS, timeMS, updateBitStream); + + // Pending sends go out this often, unless quitAndDataEvents is set + rakPeer->quitAndDataEvents.WaitOnEvent(10); + + /* + +// #if ((_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)) && +#if defined(USE_WAIT_FOR_MULTIPLE_EVENTS) && defined(_WIN32) + + if (rakPeer->threadSleepTimer>0) + { + WSAEVENT eventArray[256]; + unsigned int i, eventArrayIndex; + for (i=0,eventArrayIndex=0; i < rakPeer->socketList.Size(); i++) + { + if (rakPeer->socketList[i]->recvEvent!=INVALID_HANDLE_VALUE) + { + eventArray[eventArrayIndex]=rakPeer->socketList[i]->recvEvent; + eventArrayIndex++; + if (eventArrayIndex==256) + break; + } + } + WSAWaitForMultipleEvents(eventArrayIndex,(const HANDLE*) &eventArray,FALSE,rakPeer->threadSleepTimer,FALSE); + } + else + { + RakSleep(0); + } + +#else // ((_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + #pragma message("-- RakNet: Using Sleep(). Uncomment USE_WAIT_FOR_MULTIPLE_EVENTS in RakNetDefines.h if you want to use WaitForSingleObject instead. --") + + RakSleep( rakPeer->threadSleepTimer ); +#endif + */ + } + + rakPeer->isMainLoopThreadActive = false; + + /* +#ifdef _WIN32 +#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) + CloseHandle(timerHandle); +#endif +#endif + */ + + + + + return 0; + +} + +void RakPeer::CallPluginCallbacks(DataStructures::List &pluginList, Packet *packet) +{ + for (unsigned int i=0; i < pluginList.Size(); i++) + { + switch (packet->data[0]) + { + case ID_DISCONNECTION_NOTIFICATION: + pluginList[i]->OnClosedConnection(packet->systemAddress, packet->guid, LCR_DISCONNECTION_NOTIFICATION); + break; + case ID_CONNECTION_LOST: + pluginList[i]->OnClosedConnection(packet->systemAddress, packet->guid, LCR_CONNECTION_LOST); + break; + case ID_NEW_INCOMING_CONNECTION: + pluginList[i]->OnNewConnection(packet->systemAddress, packet->guid, true); + break; + case ID_CONNECTION_REQUEST_ACCEPTED: + pluginList[i]->OnNewConnection(packet->systemAddress, packet->guid, false); + break; + case ID_CONNECTION_ATTEMPT_FAILED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_CONNECTION_ATTEMPT_FAILED); + break; + case ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY); + break; + case ID_OUR_SYSTEM_REQUIRES_SECURITY: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_OUR_SYSTEM_REQUIRES_SECURITY); + break; + case ID_PUBLIC_KEY_MISMATCH: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_PUBLIC_KEY_MISMATCH); + break; + case ID_ALREADY_CONNECTED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_ALREADY_CONNECTED); + break; + case ID_NO_FREE_INCOMING_CONNECTIONS: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_NO_FREE_INCOMING_CONNECTIONS); + break; + case ID_CONNECTION_BANNED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_CONNECTION_BANNED); + break; + case ID_INVALID_PASSWORD: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_INVALID_PASSWORD); + break; + case ID_INCOMPATIBLE_PROTOCOL_VERSION: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_INCOMPATIBLE_PROTOCOL); + break; + case ID_IP_RECENTLY_CONNECTED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_IP_RECENTLY_CONNECTED); + break; + } + } +} + +// #if defined(RMO_NEW_UNDEF_ALLOCATING_QUEUE) +// #pragma pop_macro("new") +// #undef RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakPeer.h b/project/lib_projects/raknet/jni/RaknetSources/RakPeer.h new file mode 100755 index 0000000..8fff5c7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakPeer.h @@ -0,0 +1,984 @@ +/// \file +/// \brief Declares RakPeer class. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +// TODO - RakNet 4 - Add network simulator +// TODO - RakNet 4 - Enable disabling flow control per connections + +#ifndef __RAK_PEER_H +#define __RAK_PEER_H + +#include "ReliabilityLayer.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "SingleProducerConsumer.h" +#include "SimpleMutex.h" +#include "DS_OrderedList.h" +#include "Export.h" +#include "RakString.h" +#include "RakThread.h" +#include "RakNetSocket.h" +#include "RakNetSmartPtr.h" +#include "DS_ThreadsafeAllocatingQueue.h" +#include "SignaledEvent.h" +#include "NativeFeatureIncludes.h" +#include "SecureHandshake.h" +#include "LocklessTypes.h" + +namespace RakNet { +/// Forward declarations +class HuffmanEncodingTree; +class PluginInterface2; + +// Sucks but this struct has to be outside the class. Inside and DevCPP won't let you refer to the struct as RakPeer::RemoteSystemIndex while GCC +// forces you to do RakPeer::RemoteSystemIndex +struct RemoteSystemIndex{unsigned index; RemoteSystemIndex *next;}; +//int RAK_DLL_EXPORT SystemAddressAndIndexComp( const SystemAddress &key, const RemoteSystemIndex &data ); // GCC requires RakPeer::RemoteSystemIndex or it won't compile + +///\brief Main interface for network communications. +/// \details It implements most of RakNet's functionality and is the primary interface for RakNet. +/// +/// Inherits RakPeerInterface. +/// +/// See the individual functions for what the class can do. +/// +class RAK_DLL_EXPORT RakPeer : public RakPeerInterface +{ +public: + ///Constructor + RakPeer(); + + ///Destructor + virtual ~RakPeer(); + + // --------------------------------------------------------------------------------------------Major Low Level Functions - Functions needed by most users-------------------------------------------------------------------------------------------- + /// \brief Starts the network threads and opens the listen port. + /// \details You must call this before calling Connect(). + /// \pre On the PS3, call Startup() after Client_Login() + /// \note Multiple calls while already active are ignored. To call this function again with different settings, you must first call Shutdown(). + /// \note Call SetMaximumIncomingConnections if you want to accept incoming connections. + /// \param[in] maxConnections Maximum number of connections between this instance of RakPeer and another instance of RakPeer. Required so that the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.A hybrid would set it to the sum of both types of connections. + /// \param[in] localPort The port to listen for connections on. On linux the system may be set up so thast ports under 1024 are restricted for everything but the root user. Use a higher port for maximum compatibility. + /// \param[in] socketDescriptors An array of SocketDescriptor structures to force RakNet to listen on a particular IP address or port (or both). Each SocketDescriptor will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); However, on the XBOX be sure to use IPPROTO_VDP + /// \param[in] socketDescriptorCount The size of the \a socketDescriptors array. Pass 1 if you are not sure what to pass. + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \return RAKNET_STARTED on success, otherwise appropriate failure enumeration. + StartupResult Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority=-99999 ); + + /// If you accept connections, you must call this or else security will not be enabled for incoming connections. + /// This feature requires more round trips, bandwidth, and CPU time for the connection handshake + /// x64 builds require under 25% of the CPU time of other builds + /// See the Encryption sample for example usage + /// \pre Must be called while offline + /// \pre LIBCAT_SECURITY must be defined to 1 in NativeFeatureIncludes.h for this function to have any effect + /// \param[in] publicKey A pointer to the public key for accepting new connections + /// \param[in] privateKey A pointer to the private key for accepting new connections + /// \param[in] bRequireClientKey: Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection + bool InitializeSecurity( const char *publicKey, const char *privateKey, bool bRequireClientKey = false ); + + /// Disables security for incoming connections. + /// \note Must be called while offline + void DisableSecurity( void ); + + /// \brief This is useful if you have a fixed-address internal server behind a LAN. + /// + /// Secure connections are determined by the recipient of an incoming connection. This has no effect if called on the system attempting to connect. + /// \note If secure connections are on, do not use secure connections for a specific IP address. + /// \param[in] ip IP address to add. * wildcards are supported. + void AddToSecurityExceptionList(const char *ip); + + /// \brief Remove a specific connection previously added via AddToSecurityExceptionList. + /// \param[in] ip IP address to remove. Pass 0 to remove all IP addresses. * wildcards are supported. + void RemoveFromSecurityExceptionList(const char *ip); + + /// \brief Checks to see if a given IP is in the security exception list. + /// \param[in] IP address to check. + /// \return True if the IP address is found in security exception list, else returns false. + bool IsInSecurityExceptionList(const char *ip); + + /// \brief Sets the maximum number of incoming connections allowed. + /// \details If the number of incoming connections is less than the number of players currently connected, + /// no more players will be allowed to connect. If this is greater than the maximum number of peers allowed, + /// it will be reduced to the maximum number of peers allowed. + /// + /// Defaults to 0, meaning by default, nobody can connect to you + /// \param[in] numberAllowed Maximum number of incoming connections allowed. + void SetMaximumIncomingConnections( unsigned short numberAllowed ); + + /// \brief Returns the value passed to SetMaximumIncomingConnections(). + /// \return Maximum number of incoming connections, which is always <= maxConnections + unsigned short GetMaximumIncomingConnections( void ) const; + + /// \brief Returns how many open connections exist at this time. + /// \return Number of open connections. + unsigned short NumberOfConnections(void) const; + + /// \brief Sets the password for the incoming connections. + /// \details The password must match in the call to Connect (defaults to none). + /// Pass 0 to passwordData to specify no password. + /// This is a way to set a low level password for all incoming connections. To selectively reject connections, implement your own scheme using CloseConnection() to remove unwanted connections. + /// \param[in] passwordData A data block that incoming connections must match. This can be just a password, or can be a stream of data. Specify 0 for no password data + /// \param[in] passwordDataLength The length in bytes of passwordData + void SetIncomingPassword( const char* passwordData, int passwordDataLength ); + + /// \brief Gets the password passed to SetIncomingPassword + /// \param[out] passwordData Should point to a block large enough to hold the password data you passed to SetIncomingPassword() + /// \param[in,out] passwordDataLength Maximum size of the passwordData array. Modified to hold the number of bytes actually written. + void GetIncomingPassword( char* passwordData, int *passwordDataLength ); + + /// \brief Connect to the specified host (ip or domain name) and server port. + /// \details Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. + /// Calling both acts as a true peer. + /// + /// This is a non-blocking connection. + /// + /// The connection is successful when GetConnectionState() returns IS_CONNECTED or Receive() gets a message with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. + /// If the connection is not successful, such as a rejected connection or no response then neither of these things will happen. + /// \pre Requires that you first call Initialize. + /// \param[in] host Either a dotted IP address or a domain name. + /// \param[in] remotePort Port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword(). This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData. + /// \param[in] publicKey The public key the server is using. If 0, the server is not using security. If non-zero, the publicKeyMode member determines how to connect + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to determine the one to send on. + /// \param[in] sendConnectionAttemptCount Number of datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime Time to elapse before dropping the connection if a reliable message could not be sent. 0 to use the default value from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + /// \note It is possible to immediately get back ID_CONNECTION_ATTEMPT_FAILED if you exceed the maxConnections parameter passed to Startup(). This could happen if you call CloseConnection() with sendDisconnectionNotificaiton true, then immediately call Connect() before the connection has closed. + ConnectionAttemptResult Connect( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey=0, unsigned connectionSocketIndex=0, unsigned sendConnectionAttemptCount=6, unsigned timeBetweenSendConnectionAttemptsMS=1000, RakNet::TimeMS timeoutTime=0 ); + + /// \brief Connect to the specified host (ip or domain name) and server port. + /// \param[in] host Either a dotted IP address or a domain name. + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword(). This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData. + /// \param[in] socket A bound socket returned by another instance of RakPeerInterface. + /// \param[in] sendConnectionAttemptCount Number of datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned.. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime Time to elapse before dropping the connection if a reliable message could not be sent. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + virtual ConnectionAttemptResult ConnectWithSocket(const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSmartPtr socket, PublicKey *publicKey=0, unsigned sendConnectionAttemptCount=6, unsigned timeBetweenSendConnectionAttemptsMS=1000, RakNet::TimeMS timeoutTime=0); + + /* /// \brief Connect to the specified network ID (Platform specific console function) + /// \details Does built-in NAT traversal + /// \param[in] networkServiceId Network ID structure for the online service + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword(). This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData. + //bool Console2LobbyConnect( void *networkServiceId, const char *passwordData, int passwordDataLength );*/ + + /// \brief Stops the network threads and closes all connections. + /// \param[in] blockDuration Wait time(milli seconds) for all remaining messages to go out, including ID_DISCONNECTION_NOTIFICATION. If 0, it doesn't wait at all. + /// \param[in] orderingChannel Channel on which ID_DISCONNECTION_NOTIFICATION will be sent, if blockDuration > 0. + /// \param[in] disconnectionNotificationPriority Priority of sending ID_DISCONNECTION_NOTIFICATION. + /// If set to 0, the disconnection notification won't be sent. + void Shutdown( unsigned int blockDuration, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY ); + + /// \brief Returns true if the network thread is running. + /// \return True if the network thread is running, False otherwise + bool IsActive( void ) const; + + /// \brief Fills the array remoteSystems with the SystemAddress of all the systems we are connected to. + /// \param[out] remoteSystems An array of SystemAddress structures, to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to get the number of systems we are connected to. + /// \param[in, out] numberOfSystems As input, the size of remoteSystems array. As output, the number of elements put into the array. + bool GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const; + + /// Returns the next uint32_t that Send() will return + /// \note If using RakPeer from multiple threads, this may not be accurate for your thread. Use IncrementNextSendReceipt() in that case. + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t GetNextSendReceipt(void); + + /// Returns the next uint32_t that Send() will return, and increments the value by one + /// \note If using RakPeer from multiple threads, pass this to forceReceipt in the send function + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t IncrementNextSendReceipt(void); + + /// \brief Sends a block of data to the specified system that you are connected to. + /// \note This function only works while the connected. + /// \note The first byte should be a message identifier starting at ID_USER_PACKET_ENUM. + /// \param[in] data Block of data to send. + /// \param[in] length Size in bytes of the data to send. + /// \param[in] priority Priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliably to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, the channel to order these on. Messages are only ordered relative to other messages on the same stream. + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + uint32_t Send( const char *data, const int length, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 ); + + /// \brief "Send" to yourself rather than a remote system. + /// \details The message will be processed through the plugins and returned to the game as usual. + /// This function works anytime + /// \note The first byte should be a message identifier starting at ID_USER_PACKET_ENUM + /// \param[in] data Block of data to send. + /// \param[in] length Size in bytes of the data to send. + void SendLoopback( const char *data, const int length ); + + /// \brief Sends a block of data to the specified system that you are connected to. + /// + /// Same as the above version, but takes a BitStream as input. + /// \param[in] bitStream Bitstream to send + /// \param[in] priority Priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliably to send this data. See PacketPriority.h + /// \param[in] orderingChannel Channel to order the messages on, when using ordered or sequenced messages. Messages are only ordered relative to other messages on the same stream. + /// \param[in] systemIdentifier System Address or RakNetGUID to send this packet to, or in the case of broadcasting, the address not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none. + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + /// \note COMMON MISTAKE: When writing the first byte, bitStream->Write((unsigned char) ID_MY_TYPE) be sure it is casted to a byte, and you are not writing a 4 byte enumeration. + uint32_t Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 ); + + /// \brief Sends multiple blocks of data, concatenating them automatically. + /// + /// This is equivalent to: + /// RakNet::BitStream bs; + /// bs.WriteAlignedBytes(block1, blockLength1); + /// bs.WriteAlignedBytes(block2, blockLength2); + /// bs.WriteAlignedBytes(block3, blockLength3); + /// Send(&bs, ...) + /// + /// This function only works when connected. + /// \param[in] data An array of pointers to blocks of data + /// \param[in] lengths An array of integers indicating the length of each block of data + /// \param[in] numParameters Length of the arrays data and lengths + /// \param[in] priority Priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliably to send this data. See PacketPriority.h + /// \param[in] orderingChannel Channel to order the messages on, when using ordered or sequenced messages. Messages are only ordered relative to other messages on the same stream. + /// \param[in] systemIdentifier System Address or RakNetGUID to send this packet to, or in the case of broadcasting, the address not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none. + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + uint32_t SendList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 ); + + /// \brief Gets a message from the incoming message queue. + /// \details Use DeallocatePacket() to deallocate the message after you are done with it. + /// User-thread functions, such as RPC calls and the plugin function PluginInterface::Update occur here. + /// \return 0 if no packets are waiting to be handled, otherwise a pointer to a packet. + /// \note COMMON MISTAKE: Be sure to call this in a loop, once per game tick, until it returns 0. If you only process one packet per game tick they will buffer up. + /// \sa RakNetTypes.h contains struct Packet. + Packet* Receive( void ); + + /// \brief Call this to deallocate a message returned by Receive() when you are done handling it. + /// \param[in] packet Message to deallocate. + void DeallocatePacket( Packet *packet ); + + /// \brief Return the total number of connections we are allowed. + /// \return Total number of connections allowed. + unsigned short GetMaximumNumberOfPeers( void ) const; + + // -------------------------------------------------------------------------------------------- Connection Management Functions-------------------------------------------------------------------------------------------- + /// \brief Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). + /// \details This method closes the connection irrespective of who initiated the connection. + /// \param[in] target Which system to close the connection to. + /// \param[in] sendDisconnectionNotification True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. + /// \param[in] channel Which ordering channel to send the disconnection notification on, if any + /// \param[in] disconnectionNotificationPriority Priority to send ID_DISCONNECTION_NOTIFICATION on. + void CloseConnection( const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY ); + + /// \brief Cancel a pending connection attempt. + /// \details If we are already connected, the connection stays open + /// \param[in] target Target system to cancel. + void CancelConnectionAttempt( const SystemAddress target ); + /// Returns if a system is connected, disconnected, connecting in progress, or various other states + /// \param[in] systemIdentifier The system we are referring to + /// \note This locks a mutex, do not call too frequently during connection attempts or the attempt will take longer and possibly even timeout + /// \return What state the remote system is in + ConnectionState GetConnectionState(const AddressOrGUID systemIdentifier); + + /// \brief Given \a systemAddress, returns its index into remoteSystemList. + /// \details Values range from 0 to the maximum number of players allowed - 1. + /// This includes systems which were formerly connected, but are now not connected. + /// \param[in] systemAddress The SystemAddress we are referring to + /// \return The index of this SystemAddress or -1 on system not found. + int GetIndexFromSystemAddress( const SystemAddress systemAddress ) const; + + /// \brief Given \a index into remoteSystemList, will return a SystemAddress. + /// This function is only useful for looping through all systems. + /// + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The SystemAddress structure corresponding to \a index in remoteSystemList. + SystemAddress GetSystemAddressFromIndex( int index ); + + /// \brief Same as GetSystemAddressFromIndex but returns RakNetGUID + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The RakNetGUID + RakNetGUID GetGUIDFromIndex( int index ); + + /// \brief Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient + /// Indices match each other, so \a addresses[0] and \a guids[0] refer to the same system + /// \param[out] addresses All system addresses. Size of the list is the number of connections. Size of the \a addresses list will match the size of the \a guids list. + /// \param[out] guids All guids. Size of the list is the number of connections. Size of the list will match the size of the \a addresses list. + void GetSystemList(DataStructures::List &addresses, DataStructures::List &guids) const; + + /// \brief Bans an IP from connecting. + /// \details Banned IPs persist between connections but are not saved on shutdown nor loaded on startup. + /// \param[in] IP Dotted IP address. You can use * for a wildcard address, such as 128.0.0. * will ban all IP addresses starting with 128.0.0. + /// \param[in] milliseconds Gives time in milli seconds for a temporary ban of the IP address. Use 0 for a permanent ban. + void AddToBanList( const char *IP, RakNet::TimeMS milliseconds=0 ); + + /// \brief Allows a previously banned IP to connect. + /// param[in] Dotted IP address. You can use * as a wildcard. An IP such as 128.0.0.* will ban all IP addresses starting with 128.0.0. + void RemoveFromBanList( const char *IP ); + + /// \brief Allows all previously banned IPs to connect. + void ClearBanList( void ); + + /// \brief Returns true or false indicating if a particular IP is banned. + /// \param[in] IP Dotted IP address. + /// \return True if IP matches any IPs in the ban list, accounting for any wildcards. False otherwise. + bool IsBanned( const char *IP ); + + /// \brief Enable or disable allowing frequent connections from the same IP adderss + /// \details This is a security measure which is disabled by default, but can be set to true to prevent attackers from using up all connection slots. + /// \param[in] b True to limit connections from the same ip to at most 1 per 100 milliseconds. + void SetLimitIPConnectionFrequency(bool b); + + // --------------------------------------------------------------------------------------------Pinging Functions - Functions dealing with the automatic ping mechanism-------------------------------------------------------------------------------------------- + /// Send a ping to the specified connected system. + /// \pre The sender and recipient must already be started via a successful call to Startup() + /// \param[in] target Which system to ping + void Ping( const SystemAddress target ); + + /// \brief Send a ping to the specified unconnected system. + /// \details The remote system, if it is Initialized, will respond with ID_PONG followed by sizeof(RakNet::TimeMS) containing the system time the ping was sent. Default is 4 bytes - See __GET_TIME_64BIT in RakNetTypes.h + /// System should reply with ID_PONG if it is active + /// \param[in] host Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] onlyReplyOnAcceptingConnections Only request a reply if the remote system is accepting connections + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return true on success, false on failure (unknown hostname) + bool Ping( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex=0 ); + + /// \brief Returns the average of all ping times read for the specific system or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The ping time for this system, or -1 + int GetAveragePing( const AddressOrGUID systemIdentifier ); + + /// \brief Returns the last ping time read for the specific system or -1 if none read yet. + /// \param[in] systemAddress Which system we are referring to + /// \return The last ping time for this system, or -1. + int GetLastPing( const AddressOrGUID systemIdentifier ) const; + + /// \brief Returns the lowest ping time read or -1 if none read yet. + /// \param[in] systemAddress Which system we are referring to + /// \return The lowest ping time for this system, or -1. + int GetLowestPing( const AddressOrGUID systemIdentifier ) const; + + /// Ping the remote systems every so often, or not. Can be called anytime. + /// By default this is true. Recommended to leave on, because congestion control uses it to determine how often to resend lost packets. + /// It would be true by default to prevent timestamp drift, since in the event of a clock spike, the timestamp deltas would no longer be accurate + /// \param[in] doPing True to start occasional pings. False to stop them. + void SetOccasionalPing( bool doPing ); + + // --------------------------------------------------------------------------------------------Static Data Functions - Functions dealing with API defined synchronized memory-------------------------------------------------------------------------------------------- + /// \brief Sets the data to send along with a LAN server discovery or offline ping reply. + /// \param[in] data Block of data to send, or 0 for none + /// \param[in] length Length of the data in bytes, or 0 for none + /// \note \a length should be under 400 bytes, as a security measure against flood attacks + /// \sa Ping.cpp + void SetOfflinePingResponse( const char *data, const unsigned int length ); + + /// \brief Returns pointers to a copy of the \a data passed to SetOfflinePingResponse. + /// \param[out] data A pointer to a copy of the data passed to SetOfflinePingResponse() + /// \param[out] length A pointer filled in with the length parameter passed to SetOfflinePingResponse() + /// \sa SetOfflinePingResponse + void GetOfflinePingResponse( char **data, unsigned int *length ); + + //--------------------------------------------------------------------------------------------Network Functions - Functions dealing with the network in general-------------------------------------------------------------------------------------------- + /// \brief Returns the unique address identifier that represents you or another system on the the network and is based on your local IP / port. + /// \note Not supported by the XBOX + /// \param[in] systemAddress Use UNASSIGNED_SYSTEM_ADDRESS to get your behind-LAN address. Use a connected system to get their behind-LAN address + /// \param[in] index When you have multiple internal IDs, which index to return? Currently limited to MAXIMUM_NUMBER_OF_INTERNAL_IDS (so the maximum value of this variable is MAXIMUM_NUMBER_OF_INTERNAL_IDS-1) + /// \return Identifier of your system internally, which may not be how other systems see if you if you are behind a NAT or proxy + SystemAddress GetInternalID( const SystemAddress systemAddress=UNASSIGNED_SYSTEM_ADDRESS, const int index=0 ) const; + + /// \brief Returns the unique address identifier that represents the target on the the network and is based on the target's external IP / port. + /// \param[in] target The SystemAddress of the remote system. Usually the same for all systems, unless you have two or more network cards. + SystemAddress GetExternalID( const SystemAddress target ) const; + + /// Return my own GUID + const RakNetGUID GetMyGUID(void) const; + + /// Return the address bound to a socket at the specified index + SystemAddress GetMyBoundAddress(const int socketIndex=0); + + /// \brief Given a connected system address, this method gives the unique GUID representing that instance of RakPeer. + /// This will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different. + /// Complexity is O(log2(n)). + /// If \a input is UNASSIGNED_SYSTEM_ADDRESS, will return your own GUID + /// \pre Call Startup() first, or the function will return UNASSIGNED_RAKNET_GUID + /// \param[in] input The system address of the target system we are connected to. + const RakNetGUID& GetGuidFromSystemAddress( const SystemAddress input ) const; + + /// \brief Gives the system address of a connected system, given its GUID. + /// The GUID will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different. + /// Currently O(log(n)), but this may be improved in the future + /// If \a input is UNASSIGNED_RAKNET_GUID, UNASSIGNED_SYSTEM_ADDRESS is returned. + /// \param[in] input The RakNetGUID of the target system. + SystemAddress GetSystemAddressFromGuid( const RakNetGUID input ) const; + + /// Given the SystemAddress of a connected system, get the public key they provided as an identity + /// Returns false if system address was not found or client public key is not known + /// \param[in] input The RakNetGUID of the system + /// \param[in] client_public_key The connected client's public key is copied to this address. Buffer must be cat::EasyHandshake::PUBLIC_KEY_BYTES bytes in length. + bool GetClientPublicKeyFromSystemAddress( const SystemAddress input, char *client_public_key ) const; + + /// \brief Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. + + /// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. + /// Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. + /// Do not set different values for different computers that are connected to each other, or you won't be able to reconnect after ID_CONNECTION_LOST + /// \param[in] timeMS Time, in MS + /// \param[in] target SystemAddress structure of the target system. Pass UNASSIGNED_SYSTEM_ADDRESS for all systems. + void SetTimeoutTime( RakNet::TimeMS timeMS, const SystemAddress target ); + + /// \brief Returns the Timeout time for the given system. + /// \param[in] target Target system to get the TimeoutTime for. Pass UNASSIGNED_SYSTEM_ADDRESS to get the default value. + /// \return Timeout time for a given system. + RakNet::TimeMS GetTimeoutTime( const SystemAddress target ); + + /// \brief Returns the current MTU size + /// \param[in] target Which system to get MTU for. UNASSIGNED_SYSTEM_ADDRESS to get the default + /// \return The current MTU size of the target system. + int GetMTUSize( const SystemAddress target ) const; + + /// \brief Returns the number of IP addresses this system has internally. + /// \details Get the actual addresses from GetLocalIP() + unsigned GetNumberOfAddresses( void ); + + /// Returns an IP address at index 0 to GetNumberOfAddresses-1 in ipList array. + /// \param[in] index index into the list of IP addresses + /// \return The local IP address at this index + const char* GetLocalIP( unsigned int index ); + + /// Is this a local IP? + /// Checks if this ip is in the ipList array. + /// \param[in] An IP address to check, excluding the port. + /// \return True if this is one of the IP addresses returned by GetLocalIP + bool IsLocalIP( const char *ip ); + + /// \brief Allow or disallow connection responses from any IP. + /// \details Normally this should be false, but may be necessary when connecting to servers with multiple IP addresses. + /// \param[in] allow - True to allow this behavior, false to not allow. Defaults to false. Value persists between connections. + void AllowConnectionResponseIPMigration( bool allow ); + + /// \brief Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. + /// This will send our external IP outside the LAN along with some user data to the remote system. + /// \pre The sender and recipient must already be started via a successful call to Initialize + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] data Optional data to append to the packet. + /// \param[in] dataLength Length of data in bytes. Use 0 if no data. + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return False if IsActive()==false or the host is unresolvable. True otherwise. + bool AdvertiseSystem( const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex=0 ); + + /// \brief Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. + /// \details ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived. + /// As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. + /// Defaults to 0 (never return this notification). + /// \param[in] interval How many messages to use as an interval before a download progress notification is returned. + void SetSplitMessageProgressInterval(int interval); + + /// \brief Returns what was passed to SetSplitMessageProgressInterval(). + /// \return Number of messages to be recieved before a download progress notification is returned. Default to 0. + int GetSplitMessageProgressInterval(void) const; + + /// \brief Set how long to wait before giving up on sending an unreliable message. + /// Useful if the network is clogged up. + /// Set to 0 or less to never timeout. Defaults to 0. + /// \param[in] timeoutMS How many ms to wait before simply not sending an unreliable message. + void SetUnreliableTimeout(RakNet::TimeMS timeoutMS); + + /// \brief Send a message to a host, with the IP socket option TTL set to 3. + /// \details This message will not reach the host, but will open the router. + /// \param[in] host The address of the remote host in dotted notation. + /// \param[in] remotePort The port number to send to. + /// \param[in] ttl Max hops of datagram, set to 3 + /// \param[in] connectionSocketIndex userConnectionSocketIndex. + /// \remarks Used for NAT-Punchthrough + void SendTTL( const char* host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex=0 ); + + // -------------------------------------------------------------------------------------------- Plugin Functions-------------------------------------------------------------------------------------------- + /// \brief Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code automatically on message receipt in the Receive call. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to the plugin to attach. + void AttachPlugin( PluginInterface2 *plugin ); + + /// \brief Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is attached to. + /// \details This method disables the plugin code from running automatically on base class's updates or message receipt. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to a plugin to detach. + void DetachPlugin( PluginInterface2 *messageHandler ); + + // --------------------------------------------------------------------------------------------Miscellaneous Functions-------------------------------------------------------------------------------------------- + /// \brief Puts a message back in the receive queue in case you don't want to deal with it immediately. + /// \param[in] packet The pointer to the packet you want to push back. + /// \param[in] pushAtHead True to push the packet at the start of the queue so that the next receive call returns it. False to push it at the end of the queue. + /// \note Setting pushAtHead to false end makes the packets out of order. + void PushBackPacket( Packet *packet, bool pushAtHead ); + + /// \internal + /// \brief For a given system identified by \a guid, change the SystemAddress to send to. + /// \param[in] guid The connection we are referring to + /// \param[in] systemAddress The new address to send to + void ChangeSystemAddress(RakNetGUID guid, const SystemAddress &systemAddress); + + /// \brief Returns a packet for you to write to if you want to create a Packet for some reason. + /// You can add it to the receive buffer with PushBackPacket + /// \param[in] dataSize How many bytes to allocate for the buffer + /// \return A packet. + Packet* AllocatePacket(unsigned dataSize); + + /// \brief Get the socket used with a particular active connection. + /// The smart pointer reference counts the RakNetSocket object, so the socket will remain active as long as the smart pointer does, even if RakNet were to shutdown or close the connection. + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[in] target Which system. + /// \return A smart pointer object containing the socket information about the target. Be sure to check IsNull() which is returned if the update thread is unresponsive, shutting down, or if this system is not connected. + virtual RakNetSmartPtr GetSocket( const SystemAddress target ); + + /// \brief Gets all sockets in use. + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[out] sockets List of RakNetSocket structures in use. Sockets will not be closed until \a sockets goes out of scope + virtual void GetSockets( DataStructures::List > &sockets ); + virtual void ReleaseSockets( DataStructures::List > &sockets ); + + /// \internal + virtual void WriteOutOfBandHeader(RakNet::BitStream *bitStream); + + /// If you need code to run in the same thread as RakNet's update thread, this function can be used for that + /// \param[in] _userUpdateThreadPtr C callback function + /// \param[in] _userUpdateThreadData Passed to C callback function + virtual void SetUserUpdateThread(void (*_userUpdateThreadPtr)(RakPeerInterface *, void *), void *_userUpdateThreadData); + + // --------------------------------------------------------------------------------------------Network Simulator Functions-------------------------------------------------------------------------------------------- + /// Adds simulated ping and packet loss to the outgoing data flow. + /// To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and packetloss value on each. + /// You can exclude network simulator code with the _RELEASE #define to decrease code size + /// \deprecated Use http://www.jenkinssoftware.com/forum/index.php?topic=1671.0 instead. + /// \note Doesn't work past version 3.6201 + /// \param[in] packetloss Chance to lose a packet. Ranges from 0 to 1. + /// \param[in] minExtraPing The minimum time to delay sends. + /// \param[in] extraPingVariance The additional random time to delay sends. + virtual void ApplyNetworkSimulator( float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance); + + /// Limits how much outgoing bandwidth can be sent per-connection. + /// This limit does not apply to the sum of all connections! + /// Exceeding the limit queues up outgoing traffic + /// \param[in] maxBitsPerSecond Maximum bits per second to send. Use 0 for unlimited (default). Once set, it takes effect immedately and persists until called again. + virtual void SetPerConnectionOutgoingBandwidthLimit( unsigned maxBitsPerSecond ); + + /// Returns if you previously called ApplyNetworkSimulator + /// \return If you previously called ApplyNetworkSimulator + virtual bool IsNetworkSimulatorActive( void ); + + // --------------------------------------------------------------------------------------------Statistical Functions - Functions dealing with API performance-------------------------------------------------------------------------------------------- + + /// \brief Returns a structure containing a large set of network statistics for the specified system. + /// You can map this data to a string using the C style StatisticsToString() function + /// \param[in] systemAddress Which connected system to get statistics for. + /// \param[in] rns If you supply this structure,the network statistics will be written to it. Otherwise the method uses a static struct to write the data, which is not threadsafe. + /// \return 0 if the specified system can't be found. Otherwise a pointer to the struct containing the specified system's network statistics. + /// \sa RakNetStatistics.h + RakNetStatistics * GetStatistics( const SystemAddress systemAddress, RakNetStatistics *rns=0 ); + /// \brief Returns the network statistics of the system at the given index in the remoteSystemList. + /// \return True if the index is less than the maximum number of peers allowed and the system is active. False otherwise. + bool GetStatistics( const int index, RakNetStatistics *rns ); + + /// \Returns how many messages are waiting when you call Receive() + virtual unsigned int GetReceiveBufferSize(void); + + // --------------------------------------------------------------------------------------------EVERYTHING AFTER THIS COMMENT IS FOR INTERNAL USE ONLY-------------------------------------------------------------------------------------------- + + /// \internal + bool SendOutOfBand(const char *host, unsigned short remotePort, const char *data, BitSize_t dataLength, unsigned connectionSocketIndex=0 ); + + // static Packet *AllocPacket(unsigned dataSize, const char *file, unsigned int line); + + /// \internal + /// \brief Holds the clock differences between systems, along with the ping + struct PingAndClockDifferential + { + unsigned short pingTime; + RakNet::Time clockDifferential; + }; + + /// \internal + /// \brief All the information representing a connected system + struct RemoteSystemStruct + { + bool isActive; // Is this structure in use? + SystemAddress systemAddress; /// Their external IP on the internet + SystemAddress myExternalSystemAddress; /// Your external IP on the internet, from their perspective + SystemAddress theirInternalSystemAddress[MAXIMUM_NUMBER_OF_INTERNAL_IDS]; /// Their internal IP, behind the LAN + ReliabilityLayer reliabilityLayer; /// The reliability layer associated with this player + bool weInitiatedTheConnection; /// True if we started this connection via Connect. False if someone else connected to us. + PingAndClockDifferential pingAndClockDifferential[ PING_TIMES_ARRAY_SIZE ]; /// last x ping times and calculated clock differentials with it + RakNet::Time pingAndClockDifferentialWriteIndex; /// The index we are writing into the pingAndClockDifferential circular buffer + unsigned short lowestPing; ///The lowest ping value encountered + RakNet::Time nextPingTime; /// When to next ping this player + RakNet::Time lastReliableSend; /// When did the last reliable send occur. Reliable sends must occur at least once every timeoutTime/2 units to notice disconnects + RakNet::Time connectionTime; /// connection time, if active. +// int connectionSocketIndex; // index into connectionSockets to send back on. + RakNetGUID guid; + int MTUSize; + // Reference counted socket to send back on + RakNetSmartPtr rakNetSocket; + SystemIndex remoteSystemIndex; + +#if LIBCAT_SECURITY==1 + // Cached answer used internally by RakPeer to prevent DoS attacks based on the connexion handshake + char answer[cat::EasyHandshake::ANSWER_BYTES]; + + // If the server has bRequireClientKey = true, then this is set to the validated public key of the connected client + // Valid after connectMode reaches HANDLING_CONNECTION_REQUEST + char client_public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; +#endif + + enum ConnectMode {NO_ACTION, DISCONNECT_ASAP, DISCONNECT_ASAP_SILENTLY, DISCONNECT_ON_NO_ACK, REQUESTED_CONNECTION, HANDLING_CONNECTION_REQUEST, UNVERIFIED_SENDER, CONNECTED} connectMode; + }; + +protected: + + friend RAK_THREAD_DECLARATION(UpdateNetworkLoop); + friend RAK_THREAD_DECLARATION(RecvFromLoop); + friend RAK_THREAD_DECLARATION(UDTConnect); + + friend bool ProcessOfflineNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, bool *isOfflineMessage, RakNet::TimeUS timeRead ); + friend void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNet::TimeUS timeRead, BitStream &updateBitStream ); + friend void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, RakNet::TimeUS timeRead, BitStream &updateBitStream ); + + int GetIndexFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread ) const; + int GetIndexFromGuid( const RakNetGUID guid ); + + //void RemoveFromRequestedConnectionsList( const SystemAddress systemAddress ); + // Two versions needed because some buggy compilers strip the last parameter if unused, and crashes + ConnectionAttemptResult SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime, RakNetSmartPtr socket ); + ConnectionAttemptResult SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime ); + ///Get the reliability layer associated with a systemAddress. + /// \param[in] systemAddress The player identifier + /// \return 0 if none + RemoteSystemStruct *GetRemoteSystemFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread, bool onlyActive ) const; + RakPeer::RemoteSystemStruct *GetRemoteSystem( const AddressOrGUID systemIdentifier, bool calledFromNetworkThread, bool onlyActive ) const; + void ValidateRemoteSystemLookup(void) const; + RemoteSystemStruct *GetRemoteSystemFromGUID( const RakNetGUID guid, bool onlyActive ) const; + ///Parse out a connection request packet + void ParseConnectionRequestPacket( RakPeer::RemoteSystemStruct *remoteSystem, const SystemAddress &systemAddress, const char *data, int byteSize); + void OnConnectionRequest( RakPeer::RemoteSystemStruct *remoteSystem, RakNet::Time incomingTimestamp ); + ///Send a reliable disconnect packet to this player and disconnect them when it is delivered + void NotifyAndFlagForShutdown( const SystemAddress systemAddress, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ); + ///Returns how many remote systems initiated a connection to us + unsigned short GetNumberOfRemoteInitiatedConnections( void ) const; + /// \brief Get a free remote system from the list and assign our systemAddress to it. + /// \note Should only be called from the update thread - not the user thread. + /// \param[in] systemAddress systemAddress to be assigned + /// \param[in] connectionMode connection mode of the RemoteSystem. + /// \param[in] rakNetSocket + /// \param[in] thisIPConnectedRecently Is this IP connected recently? set to False; + /// \param[in] bindingAddress Address to be binded with the remote system + /// \param[in] incomingMTU MTU for the remote system + RemoteSystemStruct * AssignSystemAddressToRemoteSystemList( const SystemAddress systemAddress, RemoteSystemStruct::ConnectMode connectionMode, RakNetSmartPtr incomingRakNetSocket, bool *thisIPConnectedRecently, SystemAddress bindingAddress, int incomingMTU, RakNetGUID guid, bool useSecurity ); + /// \brief Adjust the timestamp of the incoming packet to be relative to this system. + /// \param[in] data Data in the incoming packet. + /// \param[in] systemAddress Sender of the incoming packet. + void ShiftIncomingTimestamp( unsigned char *data, const SystemAddress &systemAddress ) const; + /// Get the most accurate clock differential for a certain player. + /// \param[in] systemAddress The player with whose clock the time difference is calculated. + /// \returns The clock differential for a certain player. + RakNet::Time GetBestClockDifferential( const SystemAddress systemAddress ) const; + + bool IsLoopbackAddress(const AddressOrGUID &systemIdentifier, bool matchPort) const; + SystemAddress GetLoopbackAddress(void) const; + + ///Set this to true to terminate the Peer thread execution + volatile bool endThreads; + ///true if the peer thread is active. + volatile bool isMainLoopThreadActive; + + RakNet::LocklessUint32_t isRecvFromLoopThreadActive; + + + bool occasionalPing; /// Do we occasionally ping the other systems?*/ + ///Store the maximum number of peers allowed to connect + unsigned short maximumNumberOfPeers; + //05/02/06 Just using maximumNumberOfPeers instead + ///Store the maximum number of peers able to connect, including reserved connection slots for pings, etc. + //unsigned short remoteSystemListSize; + ///Store the maximum incoming connection allowed + unsigned short maximumIncomingConnections; + RakNet::BitStream offlinePingResponse; + ///Local Player ID + // SystemAddress mySystemAddress[MAXIMUM_NUMBER_OF_INTERNAL_IDS]; + char incomingPassword[256]; + unsigned char incomingPasswordLength; + + /// This is an array of pointers to RemoteSystemStruct + /// This allows us to preallocate the list when starting, so we don't have to allocate or delete at runtime. + /// Another benefit is that is lets us add and remove active players simply by setting systemAddress + /// and moving elements in the list by copying pointers variables without affecting running threads, even if they are in the reliability layer + RemoteSystemStruct* remoteSystemList; + /// activeSystemList holds a list of pointers and is preallocated to be the same size as remoteSystemList. It is updated only by the network thread, but read by both threads + /// When the isActive member of RemoteSystemStruct is set to true or false, that system is added to this list of pointers + /// Threadsafe because RemoteSystemStruct is preallocated, and the list is only added to, not removed from + RemoteSystemStruct** activeSystemList; + unsigned int activeSystemListSize; + + // Use a hash, with binaryAddress plus port mod length as the index + RemoteSystemIndex **remoteSystemLookup; + unsigned int RemoteSystemLookupHashIndex(const SystemAddress &sa) const; + void ReferenceRemoteSystem(const SystemAddress &sa, unsigned int remoteSystemListIndex); + void DereferenceRemoteSystem(const SystemAddress &sa); + RemoteSystemStruct* GetRemoteSystem(const SystemAddress &sa) const; + unsigned int GetRemoteSystemIndex(const SystemAddress &sa) const; + void ClearRemoteSystemLookup(void); + DataStructures::MemoryPool remoteSystemIndexPool; + + void AddToActiveSystemList(unsigned int remoteSystemListIndex); + void RemoveFromActiveSystemList(const SystemAddress &sa); + +// unsigned int LookupIndexUsingHashIndex(const SystemAddress &sa) const; +// unsigned int RemoteSystemListIndexUsingHashIndex(const SystemAddress &sa) const; +// unsigned int FirstFreeRemoteSystemLookupIndex(const SystemAddress &sa) const; + + enum + { + // Only put these mutexes in user thread functions! + requestedConnectionList_Mutex, + offlinePingResponse_Mutex, + NUMBER_OF_RAKPEER_MUTEXES + }; + SimpleMutex rakPeerMutexes[ NUMBER_OF_RAKPEER_MUTEXES ]; + ///RunUpdateCycle is not thread safe but we don't need to mutex calls. Just skip calls if it is running already + + bool updateCycleIsRunning; + ///The list of people we have tried to connect to recently + + //DataStructures::Queue requestedConnectionsList; + ///Data that both the client and the server needs + + unsigned int bytesSentPerSecond, bytesReceivedPerSecond; + // bool isSocketLayerBlocking; + // bool continualPing,isRecvfromThreadActive,isMainLoopThreadActive, endThreads, isSocketLayerBlocking; + unsigned int validationInteger; + SimpleMutex incomingQueueMutex, banListMutex; //,synchronizedMemoryQueueMutex, automaticVariableSynchronizationMutex; + //DataStructures::Queue incomingpacketSingleProducerConsumer; //, synchronizedMemorypacketSingleProducerConsumer; + // BitStream enumerationData; + + struct BanStruct + { + char *IP; + RakNet::TimeMS timeout; // 0 for none + }; + + struct RequestedConnectionStruct + { + SystemAddress systemAddress; + RakNet::Time nextRequestTime; + unsigned char requestsMade; + char *data; + unsigned short dataLength; + char outgoingPassword[256]; + unsigned char outgoingPasswordLength; + unsigned socketIndex; + unsigned int extraData; + unsigned sendConnectionAttemptCount; + unsigned timeBetweenSendConnectionAttemptsMS; + RakNet::TimeMS timeoutTime; + PublicKeyMode publicKeyMode; + RakNetSmartPtr socket; + enum {CONNECT=1, /*PING=2, PING_OPEN_CONNECTIONS=4,*/ /*ADVERTISE_SYSTEM=2*/} actionToTake; + +#if LIBCAT_SECURITY==1 + char handshakeChallenge[cat::EasyHandshake::CHALLENGE_BYTES]; + cat::ClientEasyHandshake *client_handshake; + char remote_public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; +// char remote_challenge[cat::EasyHandshake::CHALLENGE_BYTES]; + // char random[16]; +#endif + }; +#if LIBCAT_SECURITY==1 + bool GenerateConnectionRequestChallenge(RequestedConnectionStruct *rcs,PublicKey *publicKey); +#endif + + //DataStructures::List* > automaticVariableSynchronizationList; + DataStructures::List banList; + // Threadsafe, and not thread safe + DataStructures::List pluginListTS, pluginListNTS; + + DataStructures::Queue requestedConnectionQueue; + SimpleMutex requestedConnectionQueueMutex; + + bool RunUpdateCycle( RakNet::TimeUS timeNS, RakNet::Time timeMS, BitStream &updateBitStream ); + // void RunMutexedUpdateCycle(void); + + struct BufferedCommandStruct + { + BitSize_t numberOfBitsToSend; + PacketPriority priority; + PacketReliability reliability; + char orderingChannel; + AddressOrGUID systemIdentifier; + bool broadcast; + RemoteSystemStruct::ConnectMode connectionMode; + NetworkID networkID; + bool blockingCommand; // Only used for RPC + char *data; + bool haveRakNetCloseSocket; + unsigned connectionSocketIndex; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + SOCKET socket; + unsigned short port; + uint32_t receipt; + enum {BCS_SEND, BCS_CLOSE_CONNECTION, BCS_GET_SOCKET, BCS_CHANGE_SYSTEM_ADDRESS,/* BCS_USE_USER_SOCKET, BCS_REBIND_SOCKET_ADDRESS, BCS_RPC, BCS_RPC_SHIFT,*/ BCS_DO_NOTHING} command; + }; + + // Single producer single consumer queue using a linked list + //BufferedCommandStruct* bufferedCommandReadIndex, bufferedCommandWriteIndex; + + DataStructures::ThreadsafeAllocatingQueue bufferedCommands; + + + // Constructor not called! + struct RecvFromStruct + { + + + + char data[MAXIMUM_MTU_SIZE]; + + int bytesRead; + SystemAddress systemAddress; + RakNet::TimeUS timeRead; + SOCKET s; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + }; + + + DataStructures::ThreadsafeAllocatingQueue bufferedPackets; + + + struct SocketQueryOutput + { + SocketQueryOutput() {} + ~SocketQueryOutput() {} + DataStructures::List > sockets; + }; + + DataStructures::ThreadsafeAllocatingQueue socketQueryOutput; + + + bool AllowIncomingConnections(void) const; + + void PingInternal( const SystemAddress target, bool performImmediate, PacketReliability reliability ); + // This stores the user send calls to be handled by the update thread. This way we don't have thread contention over systemAddresss + void CloseConnectionInternal( const AddressOrGUID& systemIdentifier, bool sendDisconnectionNotification, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ); + void SendBuffered( const char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ); + void SendBufferedList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ); + bool SendImmediate( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool useCallerDataAllocation, RakNet::TimeUS currentTime, uint32_t receipt ); + //bool HandleBufferedRPC(BufferedCommandStruct *bcs, RakNet::TimeMS time); + void ClearBufferedCommands(void); + void ClearBufferedPackets(void); + void ClearSocketQueryOutput(void); + void ClearRequestedConnectionList(void); + void AddPacketToProducer(RakNet::Packet *p); + unsigned int GenerateSeedFromGuid(void); + SimpleMutex securityExceptionMutex; + + //DataStructures::AVLBalancedBinarySearchTree rpcTree; + int defaultMTUSize; + bool trackFrequencyTable; + + // Smart pointer so I can return the object to the user + DataStructures::List > socketList; + void DerefAllSockets(void); + unsigned int GetRakNetSocketFromUserConnectionSocketIndex(unsigned int userIndex) const; + // Used for RPC replies + RakNet::BitStream *replyFromTargetBS; + SystemAddress replyFromTargetPlayer; + bool replyFromTargetBroadcast; + + RakNet::TimeMS defaultTimeoutTime; + + // Generate and store a unique GUID + void GenerateGUID(void); + unsigned int GetSystemIndexFromGuid( const RakNetGUID input ) const; + RakNetGUID myGuid; + + unsigned maxOutgoingBPS; + + // Nobody would use the internet simulator in a final build. +#ifdef _DEBUG + double _packetloss; + unsigned short _minExtraPing, _extraPingVariance; +#endif + + ///How long it has been since things were updated by a call to receiveUpdate thread uses this to determine how long to sleep for + //unsigned int lastUserUpdateCycle; + /// True to allow connection accepted packets from anyone. False to only allow these packets from servers we requested a connection to. + bool allowConnectionResponseIPMigration; + + SystemAddress firstExternalID; + int splitMessageProgressInterval; + RakNet::TimeMS unreliableTimeout; + + // Systems in this list will not go through the secure connection process, even when secure connections are turned on. Wildcards are accepted. + DataStructures::List securityExceptionList; + + SystemAddress ipList[ MAXIMUM_NUMBER_OF_INTERNAL_IDS ]; + + bool allowInternalRouting; + + void (*userUpdateThreadPtr)(RakPeerInterface *, void *); + void *userUpdateThreadData; + + + SignaledEvent quitAndDataEvents; + bool limitConnectionFrequencyFromTheSameIP; + + SimpleMutex packetAllocationPoolMutex; + DataStructures::MemoryPool packetAllocationPool; + + SimpleMutex packetReturnMutex; + DataStructures::Queue packetReturnQueue; + Packet *AllocPacket(unsigned dataSize, const char *file, unsigned int line); + Packet *AllocPacket(unsigned dataSize, unsigned char *data, const char *file, unsigned int line); + + /// This is used to return a number to the user when they call Send identifying the message + /// This number will be returned back with ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS and is only returned + /// with the reliability types that contain RECEIPT in the name + SimpleMutex sendReceiptSerialMutex; + uint32_t sendReceiptSerial; + void ResetSendReceipt(void); + void OnConnectedPong(RakNet::Time sendPingTime, RakNet::Time sendPongTime, RemoteSystemStruct *remoteSystem); + void CallPluginCallbacks(DataStructures::List &pluginList, Packet *packet); + +#if LIBCAT_SECURITY==1 + // Encryption and security + bool _using_security, _require_client_public_key; + char my_public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; + cat::ServerEasyHandshake *_server_handshake; + cat::CookieJar *_cookie_jar; + bool InitializeClientSecurity(RequestedConnectionStruct *rcs, const char *public_key); +#endif + + + + + +} +// #if defined(SN_TARGET_PSP2) +// __attribute__((aligned(8))) +// #endif +; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakPeerInterface.h b/project/lib_projects/raknet/jni/RaknetSources/RakPeerInterface.h new file mode 100755 index 0000000..599980d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakPeerInterface.h @@ -0,0 +1,571 @@ +/// \file +/// \brief An interface for RakPeer. Simply contains all user functions as pure virtuals. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAK_PEER_INTERFACE_H +#define __RAK_PEER_INTERFACE_H + +#include "PacketPriority.h" +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "Export.h" +#include "DS_List.h" +#include "RakNetSmartPtr.h" +#include "RakNetSocket.h" + +namespace RakNet +{ +// Forward declarations +class BitStream; +class PluginInterface2; +struct RPCMap; +struct RakNetStatistics; +struct RakNetBandwidth; +class RouterInterface; +class NetworkIDManager; + +/// The primary interface for RakNet, RakPeer contains all major functions for the library. +/// See the individual functions for what the class can do. +/// \brief The main interface for network communications +class RAK_DLL_EXPORT RakPeerInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RakPeerInterface) + + ///Destructor + virtual ~RakPeerInterface() {} + + // --------------------------------------------------------------------------------------------Major Low Level Functions - Functions needed by most users-------------------------------------------------------------------------------------------- + /// \brief Starts the network threads, opens the listen port. + /// \details You must call this before calling Connect(). + /// \pre On the PS3, call Startup() after Client_Login() + /// \pre On Android, add the necessary permission to your application's androidmanifest.xml: + /// Multiple calls while already active are ignored. To call this function again with different settings, you must first call Shutdown(). + /// \note Call SetMaximumIncomingConnections if you want to accept incoming connections + /// \param[in] maxConnections The maximum number of connections between this instance of RakPeer and another instance of RakPeer. Required so the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.- A hybrid would set it to the sum of both types of connections + /// \param[in] localPort The port to listen for connections on. On linux the system may be set up so thast ports under 1024 are restricted for everything but the root user. Use a higher port for maximum compatibility. + /// \param[in] socketDescriptors An array of SocketDescriptor structures to force RakNet to listen on a particular IP address or port (or both). Each SocketDescriptor will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); However, on the XBOX be sure to use IPPROTO_VDP + /// \param[in] socketDescriptorCount The size of the \a socketDescriptors array. Pass 1 if you are not sure what to pass. + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \return RAKNET_STARTED on success, otherwise appropriate failure enumeration. + virtual StartupResult Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority=-99999 )=0; + + /// If you accept connections, you must call this or else security will not be enabled for incoming connections. + /// This feature requires more round trips, bandwidth, and CPU time for the connection handshake + /// x64 builds require under 25% of the CPU time of other builds + /// See the Encryption sample for example usage + /// \pre Must be called while offline + /// \pre LIBCAT_SECURITY must be defined to 1 in NativeFeatureIncludes.h for this function to have any effect + /// \param[in] publicKey A pointer to the public key for accepting new connections + /// \param[in] privateKey A pointer to the private key for accepting new connections + /// \param[in] bRequireClientKey: Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection + virtual bool InitializeSecurity( const char *publicKey, const char *privateKey, bool bRequireClientKey = false )=0; + + /// Disables security for incoming connections. + /// \note Must be called while offline + virtual void DisableSecurity( void )=0; + + /// If secure connections are on, do not use secure connections for a specific IP address. + /// This is useful if you have a fixed-address internal server behind a LAN. + /// \note Secure connections are determined by the recipient of an incoming connection. This has no effect if called on the system attempting to connect. + /// \param[in] ip IP address to add. * wildcards are supported. + virtual void AddToSecurityExceptionList(const char *ip)=0; + + /// Remove a specific connection previously added via AddToSecurityExceptionList + /// \param[in] ip IP address to remove. Pass 0 to remove all IP addresses. * wildcards are supported. + virtual void RemoveFromSecurityExceptionList(const char *ip)=0; + + /// Checks to see if a given IP is in the security exception list + /// \param[in] IP address to check. + virtual bool IsInSecurityExceptionList(const char *ip)=0; + + /// Sets how many incoming connections are allowed. If this is less than the number of players currently connected, + /// no more players will be allowed to connect. If this is greater than the maximum number of peers allowed, + /// it will be reduced to the maximum number of peers allowed. + /// Defaults to 0, meaning by default, nobody can connect to you + /// \param[in] numberAllowed Maximum number of incoming connections allowed. + virtual void SetMaximumIncomingConnections( unsigned short numberAllowed )=0; + + /// Returns the value passed to SetMaximumIncomingConnections() + /// \return the maximum number of incoming connections, which is always <= maxConnections + virtual unsigned short GetMaximumIncomingConnections( void ) const=0; + + /// Returns how many open connections there are at this time + /// \return the number of open connections + virtual unsigned short NumberOfConnections(void) const=0; + + /// Sets the password incoming connections must match in the call to Connect (defaults to none). Pass 0 to passwordData to specify no password + /// This is a way to set a low level password for all incoming connections. To selectively reject connections, implement your own scheme using CloseConnection() to remove unwanted connections + /// \param[in] passwordData A data block that incoming connections must match. This can be just a password, or can be a stream of data. Specify 0 for no password data + /// \param[in] passwordDataLength The length in bytes of passwordData + virtual void SetIncomingPassword( const char* passwordData, int passwordDataLength )=0; + + /// Gets the password passed to SetIncomingPassword + /// \param[out] passwordData Should point to a block large enough to hold the password data you passed to SetIncomingPassword() + /// \param[in,out] passwordDataLength Maximum size of the array passwordData. Modified to hold the number of bytes actually written + virtual void GetIncomingPassword( char* passwordData, int *passwordDataLength )=0; + + /// \brief Connect to the specified host (ip or domain name) and server port. + /// Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. + /// Calling both acts as a true peer. This is a non-blocking connection. + /// You know the connection is successful when GetConnectionState() returns IS_CONNECTED or Receive() gets a message with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. + /// If the connection is not successful, such as a rejected connection or no response then neither of these things will happen. + /// \pre Requires that you first call Initialize + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword. This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData + /// \param[in] publicKey The public key the server is using. If 0, the server is not using security. If non-zero, the publicKeyMode member determines how to connect + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \param[in] sendConnectionAttemptCount How many datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime How long to keep the connection alive before dropping it on unable to send a reliable message. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + /// \note It is possible to immediately get back ID_CONNECTION_ATTEMPT_FAILED if you exceed the maxConnections parameter passed to Startup(). This could happen if you call CloseConnection() with sendDisconnectionNotificaiton true, then immediately call Connect() before the connection has closed. + virtual ConnectionAttemptResult Connect( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey=0, unsigned connectionSocketIndex=0, unsigned sendConnectionAttemptCount=12, unsigned timeBetweenSendConnectionAttemptsMS=500, RakNet::TimeMS timeoutTime=0 )=0; + + /// \brief Connect to the specified host (ip or domain name) and server port, using a shared socket from another instance of RakNet + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword. This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData + /// \param[in] socket A bound socket returned by another instance of RakPeerInterface + /// \param[in] sendConnectionAttemptCount How many datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime How long to keep the connection alive before dropping it on unable to send a reliable message. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + virtual ConnectionAttemptResult ConnectWithSocket(const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSmartPtr socket, PublicKey *publicKey=0, unsigned sendConnectionAttemptCount=12, unsigned timeBetweenSendConnectionAttemptsMS=500, RakNet::TimeMS timeoutTime=0)=0; + + /// \brief Connect to the specified network ID (Platform specific console function) + /// \details Does built-in NAt traversal + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword. This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData + //virtual bool Console2LobbyConnect( void *networkServiceId, const char *passwordData, int passwordDataLength )=0; + + /// \brief Stops the network threads and closes all connections. + /// \param[in] blockDuration How long, in milliseconds, you should wait for all remaining messages to go out, including ID_DISCONNECTION_NOTIFICATION. If 0, it doesn't wait at all. + /// \param[in] orderingChannel If blockDuration > 0, ID_DISCONNECTION_NOTIFICATION will be sent on this channel + /// \param[in] disconnectionNotificationPriority Priority to send ID_DISCONNECTION_NOTIFICATION on. + /// If you set it to 0 then the disconnection notification won't be sent + virtual void Shutdown( unsigned int blockDuration, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY )=0; + + /// Returns if the network thread is running + /// \return true if the network thread is running, false otherwise + virtual bool IsActive( void ) const=0; + + /// Fills the array remoteSystems with the SystemAddress of all the systems we are connected to + /// \param[out] remoteSystems An array of SystemAddress structures to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to only get the number of systems we are connected to + /// \param[in, out] numberOfSystems As input, the size of remoteSystems array. As output, the number of elements put into the array + virtual bool GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const=0; + + /// Returns the next uint32_t that Send() will return + /// \note If using RakPeer from multiple threads, this may not be accurate for your thread. Use IncrementNextSendReceipt() in that case. + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t GetNextSendReceipt(void)=0; + + /// Returns the next uint32_t that Send() will return, and increments the value by one + /// \note If using RakPeer from multiple threads, pass this to forceReceipt in the send function + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t IncrementNextSendReceipt(void)=0; + + /// Sends a block of data to the specified system that you are connected to. + /// This function only works while the connected + /// The first byte should be a message identifier starting at ID_USER_PACKET_ENUM + /// \param[in] data The block of data to send + /// \param[in] length The size in bytes of the data to send + /// \param[in] priority What priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliability to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + virtual uint32_t Send( const char *data, const int length, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 )=0; + + /// "Send" to yourself rather than a remote system. The message will be processed through the plugins and returned to the game as usual + /// This function works anytime + /// The first byte should be a message identifier starting at ID_USER_PACKET_ENUM + /// \param[in] data The block of data to send + /// \param[in] length The size in bytes of the data to send + virtual void SendLoopback( const char *data, const int length )=0; + + /// Sends a block of data to the specified system that you are connected to. Same as the above version, but takes a BitStream as input. + /// \param[in] bitStream The bitstream to send + /// \param[in] priority What priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliability to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + /// \note COMMON MISTAKE: When writing the first byte, bitStream->Write((unsigned char) ID_MY_TYPE) be sure it is casted to a byte, and you are not writing a 4 byte enumeration. + virtual uint32_t Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 )=0; + + /// Sends multiple blocks of data, concatenating them automatically. + /// + /// This is equivalent to: + /// RakNet::BitStream bs; + /// bs.WriteAlignedBytes(block1, blockLength1); + /// bs.WriteAlignedBytes(block2, blockLength2); + /// bs.WriteAlignedBytes(block3, blockLength3); + /// Send(&bs, ...) + /// + /// This function only works while the connected + /// \param[in] data An array of pointers to blocks of data + /// \param[in] lengths An array of integers indicating the length of each block of data + /// \param[in] numParameters Length of the arrays data and lengths + /// \param[in] priority What priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliability to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + virtual uint32_t SendList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 )=0; + + /// Gets a message from the incoming message queue. + /// Use DeallocatePacket() to deallocate the message after you are done with it. + /// User-thread functions, such as RPC calls and the plugin function PluginInterface::Update occur here. + /// \return 0 if no packets are waiting to be handled, otherwise a pointer to a packet. + /// \note COMMON MISTAKE: Be sure to call this in a loop, once per game tick, until it returns 0. If you only process one packet per game tick they will buffer up. + /// sa RakNetTypes.h contains struct Packet + virtual Packet* Receive( void )=0; + + /// Call this to deallocate a message returned by Receive() when you are done handling it. + /// \param[in] packet The message to deallocate. + virtual void DeallocatePacket( Packet *packet )=0; + + /// Return the total number of connections we are allowed + virtual unsigned short GetMaximumNumberOfPeers( void ) const=0; + + // -------------------------------------------------------------------------------------------- Connection Management Functions-------------------------------------------------------------------------------------------- + /// Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). + /// \param[in] target Which system to close the connection to. + /// \param[in] sendDisconnectionNotification True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. + /// \param[in] channel Which ordering channel to send the disconnection notification on, if any + /// \param[in] disconnectionNotificationPriority Priority to send ID_DISCONNECTION_NOTIFICATION on. + virtual void CloseConnection( const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY )=0; + + /// Returns if a system is connected, disconnected, connecting in progress, or various other states + /// \param[in] systemIdentifier The system we are referring to + /// \note This locks a mutex, do not call too frequently during connection attempts or the attempt will take longer and possibly even timeout + /// \return What state the remote system is in + virtual ConnectionState GetConnectionState(const AddressOrGUID systemIdentifier)=0; + + /// Cancel a pending connection attempt + /// If we are already connected, the connection stays open + /// \param[in] target Which system to cancel + virtual void CancelConnectionAttempt( const SystemAddress target )=0; + + /// Given a systemAddress, returns an index from 0 to the maximum number of players allowed - 1. + /// \param[in] systemAddress The SystemAddress we are referring to + /// \return The index of this SystemAddress or -1 on system not found. + virtual int GetIndexFromSystemAddress( const SystemAddress systemAddress ) const=0; + + /// This function is only useful for looping through all systems + /// Given an index, will return a SystemAddress. + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The SystemAddress + virtual SystemAddress GetSystemAddressFromIndex( int index )=0; + + /// Same as GetSystemAddressFromIndex but returns RakNetGUID + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The RakNetGUID + virtual RakNetGUID GetGUIDFromIndex( int index )=0; + + /// Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient + /// Indices match each other, so \a addresses[0] and \a guids[0] refer to the same system + /// \param[out] addresses All system addresses. Size of the list is the number of connections. Size of the list will match the size of the \a guids list. + /// \param[out] guids All guids. Size of the list is the number of connections. Size of the list will match the size of the \a addresses list. + virtual void GetSystemList(DataStructures::List &addresses, DataStructures::List &guids) const=0; + + /// Bans an IP from connecting. Banned IPs persist between connections but are not saved on shutdown nor loaded on startup. + /// param[in] IP Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will ban all IP addresses starting with 128.0.0 + /// \param[in] milliseconds how many ms for a temporary ban. Use 0 for a permanent ban + virtual void AddToBanList( const char *IP, RakNet::TimeMS milliseconds=0 )=0; + + /// Allows a previously banned IP to connect. + /// param[in] Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will banAll IP addresses starting with 128.0.0 + virtual void RemoveFromBanList( const char *IP )=0; + + /// Allows all previously banned IPs to connect. + virtual void ClearBanList( void )=0; + + /// Returns true or false indicating if a particular IP is banned. + /// \param[in] IP - Dotted IP address. + /// \return true if IP matches any IPs in the ban list, accounting for any wildcards. False otherwise. + virtual bool IsBanned( const char *IP )=0; + + /// Enable or disable allowing frequent connections from the same IP adderss + /// This is a security measure which is disabled by default, but can be set to true to prevent attackers from using up all connection slots + /// \param[in] b True to limit connections from the same ip to at most 1 per 100 milliseconds. + virtual void SetLimitIPConnectionFrequency(bool b)=0; + + // --------------------------------------------------------------------------------------------Pinging Functions - Functions dealing with the automatic ping mechanism-------------------------------------------------------------------------------------------- + /// Send a ping to the specified connected system. + /// \pre The sender and recipient must already be started via a successful call to Startup() + /// \param[in] target Which system to ping + virtual void Ping( const SystemAddress target )=0; + + /// Send a ping to the specified unconnected system. The remote system, if it is Initialized, will respond with ID_PONG followed by sizeof(RakNet::TimeMS) containing the system time the ping was sent.(Default is 4 bytes - See __GET_TIME_64BIT in RakNetTypes.h + /// System should reply with ID_PONG if it is active + /// \param[in] host Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] onlyReplyOnAcceptingConnections Only request a reply if the remote system is accepting connections + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return true on success, false on failure (unknown hostname) + virtual bool Ping( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex=0 )=0; + + /// Returns the average of all ping times read for the specific system or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The ping time for this system, or -1 + virtual int GetAveragePing( const AddressOrGUID systemIdentifier )=0; + + /// Returns the last ping time read for the specific system or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The last ping time for this system, or -1 + virtual int GetLastPing( const AddressOrGUID systemIdentifier ) const=0; + + /// Returns the lowest ping time read or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The lowest ping time for this system, or -1 + virtual int GetLowestPing( const AddressOrGUID systemIdentifier ) const=0; + + /// Ping the remote systems every so often, or not. Can be called anytime. + /// By default this is true. Recommended to leave on, because congestion control uses it to determine how often to resend lost packets. + /// It would be true by default to prevent timestamp drift, since in the event of a clock spike, the timestamp deltas would no longer be accurate + /// \param[in] doPing True to start occasional pings. False to stop them. + virtual void SetOccasionalPing( bool doPing )=0; + + // --------------------------------------------------------------------------------------------Static Data Functions - Functions dealing with API defined synchronized memory-------------------------------------------------------------------------------------------- + /// Sets the data to send along with a LAN server discovery or offline ping reply. + /// \a length should be under 400 bytes, as a security measure against flood attacks + /// \param[in] data a block of data to store, or 0 for none + /// \param[in] length The length of data in bytes, or 0 for none + /// \sa Ping.cpp + virtual void SetOfflinePingResponse( const char *data, const unsigned int length )=0; + + /// Returns pointers to a copy of the data passed to SetOfflinePingResponse + /// \param[out] data A pointer to a copy of the data passed to \a SetOfflinePingResponse() + /// \param[out] length A pointer filled in with the length parameter passed to SetOfflinePingResponse() + /// \sa SetOfflinePingResponse + virtual void GetOfflinePingResponse( char **data, unsigned int *length )=0; + + //--------------------------------------------------------------------------------------------Network Functions - Functions dealing with the network in general-------------------------------------------------------------------------------------------- + /// Return the unique address identifier that represents you or another system on the the network and is based on your local IP / port. + /// \note Not supported by the XBOX + /// \param[in] systemAddress Use UNASSIGNED_SYSTEM_ADDRESS to get your behind-LAN address. Use a connected system to get their behind-LAN address + /// \param[in] index When you have multiple internal IDs, which index to return? Currently limited to MAXIMUM_NUMBER_OF_INTERNAL_IDS (so the maximum value of this variable is MAXIMUM_NUMBER_OF_INTERNAL_IDS-1) + /// \return the identifier of your system internally, which may not be how other systems see if you if you are behind a NAT or proxy + virtual SystemAddress GetInternalID( const SystemAddress systemAddress=UNASSIGNED_SYSTEM_ADDRESS, const int index=0 ) const=0; + + /// Return the unique address identifier that represents you on the the network and is based on your externalIP / port + /// (the IP / port the specified player uses to communicate with you) + /// \param[in] target Which remote system you are referring to for your external ID. Usually the same for all systems, unless you have two or more network cards. + virtual SystemAddress GetExternalID( const SystemAddress target ) const=0; + + /// Return my own GUID + virtual const RakNetGUID GetMyGUID(void) const=0; + + /// Return the address bound to a socket at the specified index + virtual SystemAddress GetMyBoundAddress(const int socketIndex=0)=0; + + /// Get a random number (to generate a GUID) + static uint64_t Get64BitUniqueRandomNumber(void); + + /// Given a connected system, give us the unique GUID representing that instance of RakPeer. + /// This will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different + /// Currently O(log(n)), but this may be improved in the future. If you use this frequently, you may want to cache the value as it won't change. + /// Returns UNASSIGNED_RAKNET_GUID if system address can't be found. + /// If \a input is UNASSIGNED_SYSTEM_ADDRESS, will return your own GUID + /// \pre Call Startup() first, or the function will return UNASSIGNED_RAKNET_GUID + /// \param[in] input The system address of the system we are connected to + virtual const RakNetGUID& GetGuidFromSystemAddress( const SystemAddress input ) const=0; + + /// Given the GUID of a connected system, give us the system address of that system. + /// The GUID will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different + /// Currently O(log(n)), but this may be improved in the future. If you use this frequently, you may want to cache the value as it won't change. + /// If \a input is UNASSIGNED_RAKNET_GUID, will return UNASSIGNED_SYSTEM_ADDRESS + /// \param[in] input The RakNetGUID of the system we are checking to see if we are connected to + virtual SystemAddress GetSystemAddressFromGuid( const RakNetGUID input ) const=0; + + /// Given the SystemAddress of a connected system, get the public key they provided as an identity + /// Returns false if system address was not found or client public key is not known + /// \param[in] input The RakNetGUID of the system + /// \param[in] client_public_key The connected client's public key is copied to this address. Buffer must be cat::EasyHandshake::PUBLIC_KEY_BYTES bytes in length. + virtual bool GetClientPublicKeyFromSystemAddress( const SystemAddress input, char *client_public_key ) const=0; + + /// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. + /// Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. + /// Do not set different values for different computers that are connected to each other, or you won't be able to reconnect after ID_CONNECTION_LOST + /// \param[in] timeMS Time, in MS + /// \param[in] target Which system to do this for. Pass UNASSIGNED_SYSTEM_ADDRESS for all systems. + virtual void SetTimeoutTime( RakNet::TimeMS timeMS, const SystemAddress target )=0; + + /// \param[in] target Which system to do this for. Pass UNASSIGNED_SYSTEM_ADDRESS to get the default value + /// \return timeoutTime for a given system. + virtual RakNet::TimeMS GetTimeoutTime( const SystemAddress target )=0; + + /// Returns the current MTU size + /// \param[in] target Which system to get this for. UNASSIGNED_SYSTEM_ADDRESS to get the default + /// \return The current MTU size + virtual int GetMTUSize( const SystemAddress target ) const=0; + + /// Returns the number of IP addresses this system has internally. Get the actual addresses from GetLocalIP() + virtual unsigned GetNumberOfAddresses( void )=0; + + /// Returns an IP address at index 0 to GetNumberOfAddresses-1 + /// \param[in] index index into the list of IP addresses + /// \return The local IP address at this index + virtual const char* GetLocalIP( unsigned int index )=0; + + /// Is this a local IP? + /// \param[in] An IP address to check, excluding the port + /// \return True if this is one of the IP addresses returned by GetLocalIP + virtual bool IsLocalIP( const char *ip )=0; + + /// Allow or disallow connection responses from any IP. Normally this should be false, but may be necessary + /// when connecting to servers with multiple IP addresses. + /// \param[in] allow - True to allow this behavior, false to not allow. Defaults to false. Value persists between connections + virtual void AllowConnectionResponseIPMigration( bool allow )=0; + + /// Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. + /// This will tell the remote system our external IP outside the LAN along with some user data. + /// \pre The sender and recipient must already be started via a successful call to Initialize + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] data Optional data to append to the packet. + /// \param[in] dataLength length of data in bytes. Use 0 if no data. + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return false if IsActive()==false or the host is unresolvable. True otherwise + virtual bool AdvertiseSystem( const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex=0 )=0; + + /// Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. + /// ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived + /// As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. + /// Defaults to 0 (never return this notification) + /// \param[in] interval How many messages to use as an interval + virtual void SetSplitMessageProgressInterval(int interval)=0; + + /// Returns what was passed to SetSplitMessageProgressInterval() + /// \return What was passed to SetSplitMessageProgressInterval(). Default to 0. + virtual int GetSplitMessageProgressInterval(void) const=0; + + /// Set how long to wait before giving up on sending an unreliable message + /// Useful if the network is clogged up. + /// Set to 0 or less to never timeout. Defaults to 0. + /// \param[in] timeoutMS How many ms to wait before simply not sending an unreliable message. + virtual void SetUnreliableTimeout(RakNet::TimeMS timeoutMS)=0; + + /// Send a message to host, with the IP socket option TTL set to 3 + /// This message will not reach the host, but will open the router. + /// Used for NAT-Punchthrough + virtual void SendTTL( const char* host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex=0 )=0; + + // -------------------------------------------------------------------------------------------- Plugin Functions-------------------------------------------------------------------------------------------- + /// \brief Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code automatically on message receipt in the Receive call. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to the plugin to attach. + virtual void AttachPlugin( PluginInterface2 *plugin )=0; + + /// \brief Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is attached to. + /// \details This method disables the plugin code from running automatically on base class's updates or message receipt. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to a plugin to detach. + virtual void DetachPlugin( PluginInterface2 *messageHandler )=0; + + // --------------------------------------------------------------------------------------------Miscellaneous Functions-------------------------------------------------------------------------------------------- + /// Put a message back at the end of the receive queue in case you don't want to deal with it immediately + /// \param[in] packet The packet you want to push back. + /// \param[in] pushAtHead True to push the packet so that the next receive call returns it. False to push it at the end of the queue (obviously pushing it at the end makes the packets out of order) + virtual void PushBackPacket( Packet *packet, bool pushAtHead )=0; + + /// \internal + /// \brief For a given system identified by \a guid, change the SystemAddress to send to. + /// \param[in] guid The connection we are referring to + /// \param[in] systemAddress The new address to send to + virtual void ChangeSystemAddress(RakNetGUID guid, const SystemAddress &systemAddress)=0; + + /// \returns a packet for you to write to if you want to create a Packet for some reason. + /// You can add it to the receive buffer with PushBackPacket + /// \param[in] dataSize How many bytes to allocate for the buffer + /// \return A packet you can write to + virtual Packet* AllocatePacket(unsigned dataSize)=0; + + /// Get the socket used with a particular active connection + /// The smart pointer reference counts the RakNetSocket object, so the socket will remain active as long as the smart pointer does, even if RakNet were to shutdown or close the connection. + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[in] target Which system + /// \return A smart pointer object containing the socket information about the socket. Be sure to check IsNull() which is returned if the update thread is unresponsive, shutting down, or if this system is not connected + virtual RakNetSmartPtr GetSocket( const SystemAddress target )=0; + + /// Get all sockets in use + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[out] sockets List of RakNetSocket structures in use. Sockets will not be closed until \a sockets goes out of scope + virtual void GetSockets( DataStructures::List > &sockets )=0; + virtual void ReleaseSockets( DataStructures::List > &sockets )=0; + + virtual void WriteOutOfBandHeader(RakNet::BitStream *bitStream)=0; + + /// If you need code to run in the same thread as RakNet's update thread, this function can be used for that + /// \param[in] _userUpdateThreadPtr C callback function + /// \param[in] _userUpdateThreadData Passed to C callback function + virtual void SetUserUpdateThread(void (*_userUpdateThreadPtr)(RakPeerInterface *, void *), void *_userUpdateThreadData)=0; + + // --------------------------------------------------------------------------------------------Network Simulator Functions-------------------------------------------------------------------------------------------- + /// Adds simulated ping and packet loss to the outgoing data flow. + /// To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and packetloss value on each. + /// You can exclude network simulator code with the _RELEASE #define to decrease code size + /// \deprecated Use http://www.jenkinssoftware.com/forum/index.php?topic=1671.0 instead. + /// \note Doesn't work past version 3.6201 + /// \param[in] packetloss Chance to lose a packet. Ranges from 0 to 1. + /// \param[in] minExtraPing The minimum time to delay sends. + /// \param[in] extraPingVariance The additional random time to delay sends. + virtual void ApplyNetworkSimulator( float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance)=0; + + /// Limits how much outgoing bandwidth can be sent per-connection. + /// This limit does not apply to the sum of all connections! + /// Exceeding the limit queues up outgoing traffic + /// \param[in] maxBitsPerSecond Maximum bits per second to send. Use 0 for unlimited (default). Once set, it takes effect immedately and persists until called again. + virtual void SetPerConnectionOutgoingBandwidthLimit( unsigned maxBitsPerSecond )=0; + + /// Returns if you previously called ApplyNetworkSimulator + /// \return If you previously called ApplyNetworkSimulator + virtual bool IsNetworkSimulatorActive( void )=0; + + // --------------------------------------------------------------------------------------------Statistical Functions - Functions dealing with API performance-------------------------------------------------------------------------------------------- + + /// Returns a structure containing a large set of network statistics for the specified system. + /// You can map this data to a string using the C style StatisticsToString() function + /// \param[in] systemAddress: Which connected system to get statistics for + /// \param[in] rns If you supply this structure, it will be written to it. Otherwise it will use a static struct, which is not threadsafe + /// \return 0 on can't find the specified system. A pointer to a set of data otherwise. + /// \sa RakNetStatistics.h + virtual RakNetStatistics * GetStatistics( const SystemAddress systemAddress, RakNetStatistics *rns=0 )=0; + virtual bool GetStatistics( const int index, RakNetStatistics *rns )=0; + + /// \Returns how many messages are waiting when you call Receive() + virtual unsigned int GetReceiveBufferSize(void)=0; + + // --------------------------------------------------------------------------------------------EVERYTHING AFTER THIS COMMENT IS FOR INTERNAL USE ONLY-------------------------------------------------------------------------------------------- + + /// \internal + virtual bool SendOutOfBand(const char *host, unsigned short remotePort, const char *data, BitSize_t dataLength, unsigned connectionSocketIndex=0 )=0; + + int errorState; +} +// #if defined(SN_TARGET_PSP2) +// __attribute__((aligned(8))) +// #endif +; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakSleep.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakSleep.cpp new file mode 100755 index 0000000..41bc904 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakSleep.cpp @@ -0,0 +1,53 @@ + + +#if defined(_WIN32) +#include "WindowsIncludes.h" // Sleep + + + + + +#else +#include +#include +#include +#endif + +#include "RakSleep.h" + +void RakSleep(unsigned int ms) +{ +#ifdef _WIN32 + Sleep(ms); + + + + + +#else + //Single thread sleep code thanks to Furquan Shaikh, http://somethingswhichidintknow.blogspot.com/2009/09/sleep-in-pthread.html + //Modified slightly from the original + pthread_mutex_t fakeMutex = PTHREAD_MUTEX_INITIALIZER; + pthread_cond_t fakeCond = PTHREAD_COND_INITIALIZER; + struct timespec timeToWait; + struct timeval now; + int rt; + + gettimeofday(&now,NULL); + + long seconds = ms/1000; + long nanoseconds = (ms - seconds * 1000) * 1000000; + timeToWait.tv_sec = now.tv_sec + seconds; + timeToWait.tv_nsec = now.tv_usec*1000 + nanoseconds; + + if (timeToWait.tv_nsec >= 1000000000) + { + timeToWait.tv_nsec -= 1000000000; + timeToWait.tv_sec++; + } + + pthread_mutex_lock(&fakeMutex); + rt = pthread_cond_timedwait(&fakeCond, &fakeMutex, &timeToWait); + pthread_mutex_unlock(&fakeMutex); +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakSleep.h b/project/lib_projects/raknet/jni/RaknetSources/RakSleep.h new file mode 100755 index 0000000..f1a4148 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakSleep.h @@ -0,0 +1,8 @@ +#ifndef __RAK_SLEEP_H +#define __RAK_SLEEP_H + +#include "Export.h" + +void RAK_DLL_EXPORT RakSleep(unsigned int ms); + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakString.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakString.cpp new file mode 100755 index 0000000..b51c955 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakString.cpp @@ -0,0 +1,1422 @@ +#include "RakString.h" +#include "RakAssert.h" +#include "RakMemoryOverride.h" +#include "BitStream.h" +#include +#include +#include "LinuxStrings.h" +#include "StringCompressor.h" +#include "SimpleMutex.h" + +using namespace RakNet; + +//DataStructures::MemoryPool RakString::pool; +RakString::SharedString RakString::emptyString={0,0,0,(char*) "",(char*) ""}; +//RakString::SharedString *RakString::sharedStringFreeList=0; +//unsigned int RakString::sharedStringFreeListAllocationCount=0; +DataStructures::List RakString::freeList; + +class RakStringCleanup +{ +public: + ~RakStringCleanup() + { + RakNet::RakString::FreeMemoryNoMutex(); + } +}; + +static RakStringCleanup cleanup; + +SimpleMutex& GetPoolMutex(void) +{ + static SimpleMutex poolMutex; + return poolMutex; +} + +int RakNet::RakString::RakStringComp( RakString const &key, RakString const &data ) +{ + return key.StrCmp(data); +} + +RakString::RakString() +{ + sharedString=&emptyString; +} +RakString::RakString( RakString::SharedString *_sharedString ) +{ + sharedString=_sharedString; +} +RakString::RakString(char input) +{ + char str[2]; + str[0]=input; + str[1]=0; + Assign(str); +} +RakString::RakString(unsigned char input) +{ + char str[2]; + str[0]=(char) input; + str[1]=0; + Assign(str); +} +RakString::RakString(const unsigned char *format, ...){ + va_list ap; + va_start(ap, format); + Assign((const char*) format,ap); +} +RakString::RakString(const char *format, ...){ + va_list ap; + va_start(ap, format); + Assign(format,ap); +} +RakString::RakString( const RakString & rhs) +{ + if (rhs.sharedString==&emptyString) + { + sharedString=&emptyString; + return; + } + + rhs.sharedString->refCountMutex->Lock(); + if (rhs.sharedString->refCount==0) + { + sharedString=&emptyString; + } + else + { + rhs.sharedString->refCount++; + sharedString=rhs.sharedString; + } + rhs.sharedString->refCountMutex->Unlock(); +} +RakString::~RakString() +{ + Free(); +} +RakString& RakString::operator = ( const RakString& rhs ) +{ + Free(); + if (rhs.sharedString==&emptyString) + return *this; + + rhs.sharedString->refCountMutex->Lock(); + if (rhs.sharedString->refCount==0) + { + sharedString=&emptyString; + } + else + { + sharedString=rhs.sharedString; + sharedString->refCount++; + } + rhs.sharedString->refCountMutex->Unlock(); + return *this; +} +RakString& RakString::operator = ( const char *str ) +{ + Free(); + Assign(str); + return *this; +} +RakString& RakString::operator = ( char *str ) +{ + return operator = ((const char*)str); +} +RakString& RakString::operator = ( const unsigned char *str ) +{ + return operator = ((const char*)str); +} +RakString& RakString::operator = ( char unsigned *str ) +{ + return operator = ((const char*)str); +} +RakString& RakString::operator = ( const char c ) +{ + char buff[2]; + buff[0]=c; + buff[1]=0; + return operator = ((const char*)buff); +} +void RakString::Realloc(SharedString *sharedString, size_t bytes) +{ + if (bytes<=sharedString->bytesUsed) + return; + RakAssert(bytes>0); + size_t oldBytes = sharedString->bytesUsed; + size_t newBytes; + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + newBytes = GetSizeToAllocate(bytes); + if (oldBytes <=(size_t) smallStringSize && newBytes > (size_t) smallStringSize) + { + sharedString->bigString=(char*) rakMalloc_Ex(newBytes, _FILE_AND_LINE_); + strcpy(sharedString->bigString, sharedString->smallString); + sharedString->c_str=sharedString->bigString; + } + else if (oldBytes > smallStringSize) + { + sharedString->bigString=(char*) rakRealloc_Ex(sharedString->bigString,newBytes, _FILE_AND_LINE_); + sharedString->c_str=sharedString->bigString; + } + sharedString->bytesUsed=newBytes; +} +RakString& RakString::operator +=( const RakString& rhs) +{ + if (rhs.IsEmpty()) + return *this; + + if (IsEmpty()) + { + return operator=(rhs); + } + else + { + Clone(); + size_t strLen=rhs.GetLength()+GetLength()+1; + Realloc(sharedString, strLen+GetLength()); + strcat(sharedString->c_str,rhs.C_String()); + } + return *this; +} +RakString& RakString::operator +=( const char *str ) +{ + if (str==0 || str[0]==0) + return *this; + + if (IsEmpty()) + { + Assign(str); + } + else + { + Clone(); + size_t strLen=strlen(str)+GetLength()+1; + Realloc(sharedString, strLen); + strcat(sharedString->c_str,str); + } + return *this; +} +RakString& RakString::operator +=( char *str ) +{ + return operator += ((const char*)str); +} +RakString& RakString::operator +=( const unsigned char *str ) +{ + return operator += ((const char*)str); +} +RakString& RakString::operator +=( unsigned char *str ) +{ + return operator += ((const char*)str); +} +RakString& RakString::operator +=( const char c ) +{ + char buff[2]; + buff[0]=c; + buff[1]=0; + return operator += ((const char*)buff); +} +unsigned char RakString::operator[] ( const unsigned int position ) const +{ + RakAssert(positionc_str[position]; +} +bool RakString::operator==(const RakString &rhs) const +{ + return strcmp(sharedString->c_str,rhs.sharedString->c_str)==0; +} +bool RakString::operator==(const char *str) const +{ + return strcmp(sharedString->c_str,str)==0; +} +bool RakString::operator==(char *str) const +{ + return strcmp(sharedString->c_str,str)==0; +} +bool RakString::operator < ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) < 0; +} +bool RakString::operator <= ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) <= 0; +} +bool RakString::operator > ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) > 0; +} +bool RakString::operator >= ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) >= 0; +} +bool RakString::operator!=(const RakString &rhs) const +{ + return strcmp(sharedString->c_str,rhs.sharedString->c_str)!=0; +} +bool RakString::operator!=(const char *str) const +{ + return strcmp(sharedString->c_str,str)!=0; +} +bool RakString::operator!=(char *str) const +{ + return strcmp(sharedString->c_str,str)!=0; +} +const RakNet::RakString operator+(const RakNet::RakString &lhs, const RakNet::RakString &rhs) +{ + if (lhs.IsEmpty() && rhs.IsEmpty()) + { + return RakString(&RakString::emptyString); + } + if (lhs.IsEmpty()) + { + rhs.sharedString->refCountMutex->Lock(); + if (rhs.sharedString->refCount==0) + { + rhs.sharedString->refCountMutex->Unlock(); + lhs.sharedString->refCountMutex->Lock(); + lhs.sharedString->refCount++; + lhs.sharedString->refCountMutex->Unlock(); + return RakString(lhs.sharedString); + } + else + { + rhs.sharedString->refCount++; + rhs.sharedString->refCountMutex->Unlock(); + return RakString(rhs.sharedString); + } + // rhs.sharedString->refCountMutex->Unlock(); + } + if (rhs.IsEmpty()) + { + lhs.sharedString->refCountMutex->Lock(); + lhs.sharedString->refCount++; + lhs.sharedString->refCountMutex->Unlock(); + return RakString(lhs.sharedString); + } + + size_t len1 = lhs.GetLength(); + size_t len2 = rhs.GetLength(); + size_t allocatedBytes = len1 + len2 + 1; + allocatedBytes = RakString::GetSizeToAllocate(allocatedBytes); + RakString::SharedString *sharedString; + + RakString::LockMutex(); + // sharedString = RakString::pool.Allocate( _FILE_AND_LINE_ ); + if (RakString::freeList.Size()==0) + { + //RakString::sharedStringFreeList=(RakString::SharedString*) rakRealloc_Ex(RakString::sharedStringFreeList,(RakString::sharedStringFreeListAllocationCount+1024)*sizeof(RakString::SharedString), _FILE_AND_LINE_); + unsigned i; + for (i=0; i < 128; i++) + { + // RakString::freeList.Insert(RakString::sharedStringFreeList+i+RakString::sharedStringFreeListAllocationCount); + RakString::SharedString *ss; + ss = (RakString::SharedString*) rakMalloc_Ex(sizeof(RakString::SharedString), _FILE_AND_LINE_); + ss->refCountMutex=RakNet::OP_NEW(_FILE_AND_LINE_); + RakString::freeList.Insert(ss, _FILE_AND_LINE_); + + } + //RakString::sharedStringFreeListAllocationCount+=1024; + } + sharedString = RakString::freeList[RakString::freeList.Size()-1]; + RakString::freeList.RemoveAtIndex(RakString::freeList.Size()-1); + RakString::UnlockMutex(); + + const int smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + sharedString->bytesUsed=allocatedBytes; + sharedString->refCount=1; + if (allocatedBytes <= (size_t) smallStringSize) + { + sharedString->c_str=sharedString->smallString; + } + else + { + sharedString->bigString=(char*)rakMalloc_Ex(sharedString->bytesUsed, _FILE_AND_LINE_); + sharedString->c_str=sharedString->bigString; + } + + strcpy(sharedString->c_str, lhs); + strcat(sharedString->c_str, rhs); + + return RakString(sharedString); +} +const char * RakString::ToLower(void) +{ + Clone(); + + size_t strLen = strlen(sharedString->c_str); + unsigned i; + for (i=0; i < strLen; i++) + sharedString->c_str[i]=ToLower(sharedString->c_str[i]); + return sharedString->c_str; +} +const char * RakString::ToUpper(void) +{ + Clone(); + + size_t strLen = strlen(sharedString->c_str); + unsigned i; + for (i=0; i < strLen; i++) + sharedString->c_str[i]=ToUpper(sharedString->c_str[i]); + return sharedString->c_str; +} +void RakString::Set(const char *format, ...) +{ + va_list ap; + va_start(ap, format); + Clear(); + Assign(format,ap); +} +bool RakString::IsEmpty(void) const +{ + return sharedString==&emptyString; +} +size_t RakString::GetLength(void) const +{ + return strlen(sharedString->c_str); +} +// http://porg.es/blog/counting-characters-in-utf-8-strings-is-faster +int porges_strlen2(char *s) +{ + int i = 0; + int iBefore = 0; + int count = 0; + + while (s[i] > 0) +ascii: i++; + + count += i-iBefore; + while (s[i]) + { + if (s[i] > 0) + { + iBefore = i; + goto ascii; + } + else + switch (0xF0 & s[i]) + { + case 0xE0: i += 3; break; + case 0xF0: i += 4; break; + default: i += 2; break; + } + ++count; + } + return count; +} +size_t RakString::GetLengthUTF8(void) const +{ + return porges_strlen2(sharedString->c_str); +} +void RakString::Replace(unsigned index, unsigned count, unsigned char c) +{ + RakAssert(index+count < GetLength()); + Clone(); + unsigned countIndex=0; + while (countIndexc_str[index]=c; + index++; + countIndex++; + } +} +void RakString::SetChar( unsigned index, unsigned char c ) +{ + RakAssert(index < GetLength()); + Clone(); + sharedString->c_str[index]=c; +} +void RakString::SetChar( unsigned index, RakNet::RakString s ) +{ + RakAssert(index < GetLength()); + Clone(); + RakNet::RakString firstHalf = SubStr(0, index); + RakNet::RakString secondHalf = SubStr(index+1, (unsigned int)-1); + *this = firstHalf; + *this += s; + *this += secondHalf; +} + +#ifdef _WIN32 +WCHAR * RakString::ToWideChar(void) +{ + // + // Special case of NULL or empty input string + // + if ( (sharedString->c_str == NULL) || (*sharedString->c_str == '\0') ) + { + // Return empty string + return L""; + } + + // + // Get size of destination UTF-16 buffer, in WCHAR's + // + int cchUTF16 = ::MultiByteToWideChar( + CP_UTF8, // convert from UTF-8 + 0, // Flags + sharedString->c_str, // source UTF-8 string + GetLength()+1, // total length of source UTF-8 string, + // in CHAR's (= bytes), including end-of-string \0 + NULL, // unused - no conversion done in this step + 0 // request size of destination buffer, in WCHAR's + ); + + if ( cchUTF16 == 0 ) + { + RakAssert("RakString::ToWideChar exception from cchUTF16==0" && 0); + return 0; + } + + // + // Allocate destination buffer to store UTF-16 string + // + WCHAR * pszUTF16 = RakNet::OP_NEW_ARRAY(cchUTF16,__FILE__,__LINE__); + + // + // Do the conversion from UTF-8 to UTF-16 + // + int result = ::MultiByteToWideChar( + CP_UTF8, // convert from UTF-8 + 0, // Buffer + sharedString->c_str, // source UTF-8 string + GetLength()+1, // total length of source UTF-8 string, + // in CHAR's (= bytes), including end-of-string \0 + pszUTF16, // destination buffer + cchUTF16 // size of destination buffer, in WCHAR's + ); + + if ( result == 0 ) + { + RakAssert("RakString::ToWideChar exception from MultiByteToWideChar" && 0); + return 0; + } + + return pszUTF16; +} +void RakString::DeallocWideChar(WCHAR * w) +{ + RakNet::OP_DELETE_ARRAY(w,__FILE__,__LINE__); +} +#endif + +size_t RakString::Find(const char *stringToFind,size_t pos) +{ + size_t len=GetLength(); + if (pos>=len || stringToFind==0 || stringToFind[0]==0) + { + return (size_t) -1; + } + size_t matchLen= strlen(stringToFind); + size_t matchPos=0; + size_t iStart=0; + + for (size_t i=pos;ic_str[i]) + { + if(matchPos==0) + { + iStart=i; + } + matchPos++; + } + else + { + matchPos=0; + } + + if (matchPos>=matchLen) + { + return iStart; + } + } + + return (size_t) -1; +} + +void RakString::TruncateUTF8(unsigned int length) +{ + int i = 0; + unsigned int count = 0; + + while (sharedString->c_str[i]!=0) + { + if (count==length) + { + sharedString->c_str[i]=0; + return; + } + else if (sharedString->c_str[i]>0) + { + i++; + } + else + { + switch (0xF0 & sharedString->c_str[i]) + { + case 0xE0: i += 3; break; + case 0xF0: i += 4; break; + default: i += 2; break; + } + } + + count++; + } +} + +void RakString::Truncate(unsigned int length) +{ + if (length < GetLength()) + { + SetChar(length, 0); + } +} + +RakString RakString::SubStr(unsigned int index, unsigned int count) const +{ + size_t length = GetLength(); + if (index >= length || count==0) + return RakString(); + RakString copy; + size_t numBytes = length-index; + if (count < numBytes) + numBytes=count; + copy.Allocate(numBytes+1); + size_t i; + for (i=0; i < numBytes; i++) + copy.sharedString->c_str[i]=sharedString->c_str[index+i]; + copy.sharedString->c_str[i]=0; + return copy; +} +void RakString::Erase(unsigned int index, unsigned int count) +{ + size_t len = GetLength(); + RakAssert(index+count <= len); + + Clone(); + unsigned i; + for (i=index; i < len-count; i++) + { + sharedString->c_str[i]=sharedString->c_str[i+count]; + } + sharedString->c_str[i]=0; +} +void RakString::TerminateAtLastCharacter(char c) +{ + int i, len=(int) GetLength(); + for (i=len-1; i >= 0; i--) + { + if (sharedString->c_str[i]==c) + { + Clone(); + sharedString->c_str[i]=0; + return; + } + } +} +void RakString::TerminateAtFirstCharacter(char c) +{ + unsigned int i, len=(unsigned int) GetLength(); + for (i=0; i < len; i++) + { + if (sharedString->c_str[i]==c) + { + Clone(); + sharedString->c_str[i]=0; + return; + } + } +} +void RakString::RemoveCharacter(char c) +{ + if (c==0) + return; + + unsigned int readIndex, writeIndex=0; + for (readIndex=0; sharedString->c_str[readIndex]; readIndex++) + { + if (sharedString->c_str[readIndex]!=c) + sharedString->c_str[writeIndex++]=sharedString->c_str[readIndex]; + else + Clone(); + } + sharedString->c_str[writeIndex]=0; +} +int RakString::StrCmp(const RakString &rhs) const +{ + return strcmp(sharedString->c_str, rhs); +} +int RakString::StrICmp(const RakString &rhs) const +{ + return _stricmp(sharedString->c_str, rhs); +} +void RakString::Printf(void) +{ + RAKNET_DEBUG_PRINTF("%s", sharedString->c_str); +} +void RakString::FPrintf(FILE *fp) +{ + fprintf(fp,"%s", sharedString->c_str); +} +bool RakString::IPAddressMatch(const char *IP) +{ + unsigned characterIndex; + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return false; + + characterIndex = 0; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) + { + if (sharedString->c_str[ characterIndex ] == IP[ characterIndex ] ) + { + // Equal characters + if ( IP[ characterIndex ] == 0 ) + { + // End of the string and the strings match + + return true; + } + + characterIndex++; + } + + else + { + if ( sharedString->c_str[ characterIndex ] == 0 || IP[ characterIndex ] == 0 ) + { + // End of one of the strings + break; + } + + // Characters do not match + if ( sharedString->c_str[ characterIndex ] == '*' ) + { + // Domain is banned. + return true; + } + + // Characters do not match and it is not a * + break; + } + } + + + // No match found. + return false; +} +bool RakString::ContainsNonprintableExceptSpaces(void) const +{ + size_t strLen = strlen(sharedString->c_str); + unsigned i; + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i] < ' ' || sharedString->c_str[i] >126) + return true; + } + return false; +} +bool RakString::IsEmailAddress(void) const +{ + if (IsEmpty()) + return false; + size_t strLen = strlen(sharedString->c_str); + if (strLen < 6) // a@b.de + return false; + if (sharedString->c_str[strLen-4]!='.' && sharedString->c_str[strLen-3]!='.') // .com, .net., .org, .de + return false; + unsigned i; + // Has non-printable? + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i] <= ' ' || sharedString->c_str[i] >126) + return false; + } + int atCount=0; + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i]=='@') + { + atCount++; + } + } + if (atCount!=1) + return false; + int dotCount=0; + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i]=='.') + { + dotCount++; + } + } + if (dotCount==0) + return false; + + // There's more I could check, but this is good enough + return true; +} +RakNet::RakString& RakString::URLEncode(void) +{ + RakString result; + size_t strLen = strlen(sharedString->c_str); + result.Allocate(strLen*3); + char *output=result.sharedString->c_str; + unsigned int outputIndex=0; + unsigned i; + char c; + for (i=0; i < strLen; i++) + { + c=sharedString->c_str[i]; + if ( + (c<=47) || + (c>=58 && c<=64) || + (c>=91 && c<=96) || + (c>=123) + ) + { + RakNet::RakString tmp("%2X", c); + output[outputIndex++]='%'; + output[outputIndex++]=tmp.sharedString->c_str[0]; + output[outputIndex++]=tmp.sharedString->c_str[1]; + } + else + { + output[outputIndex++]=c; + } + } + + output[outputIndex]=0; + + *this = result; + return *this; +} +RakNet::RakString& RakString::URLDecode(void) +{ + RakString result; + size_t strLen = strlen(sharedString->c_str); + result.Allocate(strLen); + char *output=result.sharedString->c_str; + unsigned int outputIndex=0; + char c; + char hexDigits[2]; + char hexValues[2]; + unsigned int i; + for (i=0; i < strLen; i++) + { + c=sharedString->c_str[i]; + if (c=='%') + { + hexDigits[0]=sharedString->c_str[++i]; + hexDigits[1]=sharedString->c_str[++i]; + if (hexDigits[0]==' ') + hexValues[0]=0; + else if (hexDigits[0]>='A') + hexValues[0]=hexDigits[0]-'A'+10; + else + hexValues[0]=hexDigits[0]-'0'; + if (hexDigits[1]>='A') + hexValues[1]=hexDigits[1]-'A'+10; + else + hexValues[1]=hexDigits[1]-'0'; + output[outputIndex++]=hexValues[0]*16+hexValues[1]; + } + else + { + output[outputIndex++]=c; + } + } + + output[outputIndex]=0; + + *this = result; + return *this; +} +void RakString::SplitURI(RakNet::RakString &header, RakNet::RakString &domain, RakNet::RakString &path) +{ + header.Clear(); + domain.Clear(); + path.Clear(); + + size_t strLen = strlen(sharedString->c_str); + + char c; + unsigned int i=0; + if (strncmp(sharedString->c_str, "http://", 7)==0) + i+=(unsigned int) strlen("http://"); + else if (strncmp(sharedString->c_str, "https://", 8)==0) + i+=(unsigned int) strlen("https://"); + + if (strncmp(sharedString->c_str, "www.", 4)==0) + i+=(unsigned int) strlen("www."); + + if (i!=0) + { + header.Allocate(i+1); + strncpy(header.sharedString->c_str, sharedString->c_str, i); + header.sharedString->c_str[i]=0; + } + + + domain.Allocate(strLen-i+1); + char *domainOutput=domain.sharedString->c_str; + unsigned int outputIndex=0; + for (; i < strLen; i++) + { + c=sharedString->c_str[i]; + if (c=='/') + { + break; + } + else + { + domainOutput[outputIndex++]=sharedString->c_str[i]; + } + } + + domainOutput[outputIndex]=0; + + path.Allocate(strLen-header.GetLength()-outputIndex+1); + outputIndex=0; + char *pathOutput=path.sharedString->c_str; + for (; i < strLen; i++) + { + pathOutput[outputIndex++]=sharedString->c_str[i]; + } + pathOutput[outputIndex]=0; +} +RakNet::RakString& RakString::SQLEscape(void) +{ + int strLen=(int)GetLength(); + int escapedCharacterCount=0; + int index; + for (index=0; index < strLen; index++) + { + if (sharedString->c_str[index]=='\'' || + sharedString->c_str[index]=='"' || + sharedString->c_str[index]=='\\') + escapedCharacterCount++; + } + if (escapedCharacterCount==0) + return *this; + + Clone(); + Realloc(sharedString, strLen+escapedCharacterCount); + int writeIndex, readIndex; + writeIndex = strLen+escapedCharacterCount; + readIndex=strLen; + while (readIndex>=0) + { + if (sharedString->c_str[readIndex]=='\'' || + sharedString->c_str[readIndex]=='"' || + sharedString->c_str[readIndex]=='\\') + { + sharedString->c_str[writeIndex--]=sharedString->c_str[readIndex--]; + sharedString->c_str[writeIndex--]='\\'; + } + else + { + sharedString->c_str[writeIndex--]=sharedString->c_str[readIndex--]; + } + } + return *this; +} +RakNet::RakString& RakString::MakeFilePath(void) +{ + if (IsEmpty()) + return *this; + + RakNet::RakString fixedString = *this; + fixedString.Clone(); + for (int i=0; fixedString.sharedString->c_str[i]; i++) + { +#ifdef _WIN32 + if (fixedString.sharedString->c_str[i]=='/') + fixedString.sharedString->c_str[i]='\\'; +#else + if (fixedString.sharedString->c_str[i]=='\\') + fixedString.sharedString->c_str[i]='/'; +#endif + } + +#ifdef _WIN32 + if (fixedString.sharedString->c_str[strlen(fixedString.sharedString->c_str)-1]!='\\') + { + fixedString+='\\'; + } +#else + if (fixedString.sharedString->c_str[strlen(fixedString.sharedString->c_str)-1]!='/') + { + fixedString+='/'; + } +#endif + + if (fixedString!=*this) + *this = fixedString; + return *this; +} +void RakString::FreeMemory(void) +{ + LockMutex(); + FreeMemoryNoMutex(); + UnlockMutex(); +} +void RakString::FreeMemoryNoMutex(void) +{ + for (unsigned int i=0; i < freeList.Size(); i++) + { + RakNet::OP_DELETE(freeList[i]->refCountMutex,_FILE_AND_LINE_); + rakFree_Ex(freeList[i], _FILE_AND_LINE_ ); + } + freeList.Clear(false, _FILE_AND_LINE_); +} +void RakString::Serialize(BitStream *bs) const +{ + Serialize(sharedString->c_str, bs); +} +void RakString::Serialize(const char *str, BitStream *bs) +{ + unsigned short l = (unsigned short) strlen(str); + bs->Write(l); + bs->WriteAlignedBytes((const unsigned char*) str, (const unsigned int) l); +} +void RakString::SerializeCompressed(BitStream *bs, uint8_t languageId, bool writeLanguageId) const +{ + SerializeCompressed(C_String(), bs, languageId, writeLanguageId); +} +void RakString::SerializeCompressed(const char *str, BitStream *bs, uint8_t languageId, bool writeLanguageId) +{ + if (writeLanguageId) + bs->WriteCompressed(languageId); + StringCompressor::Instance()->EncodeString(str,0xFFFF,bs,languageId); +} +bool RakString::Deserialize(BitStream *bs) +{ + Clear(); + + bool b; + unsigned short l; + b=bs->Read(l); + if (l>0) + { + Allocate(((unsigned int) l)+1); + b=bs->ReadAlignedBytes((unsigned char*) sharedString->c_str, l); + if (b) + sharedString->c_str[l]=0; + else + Clear(); + } + else + bs->AlignReadToByteBoundary(); + return b; +} +bool RakString::Deserialize(char *str, BitStream *bs) +{ + bool b; + unsigned short l; + b=bs->Read(l); + if (b && l>0) + b=bs->ReadAlignedBytes((unsigned char*) str, l); + + if (b==false) + str[0]=0; + + str[l]=0; + return b; +} +bool RakString::DeserializeCompressed(BitStream *bs, bool readLanguageId) +{ + uint8_t languageId; + if (readLanguageId) + bs->ReadCompressed(languageId); + else + languageId=0; + return StringCompressor::Instance()->DecodeString(this,0xFFFF,bs,languageId); +} +bool RakString::DeserializeCompressed(char *str, BitStream *bs, bool readLanguageId) +{ + uint8_t languageId; + if (readLanguageId) + bs->ReadCompressed(languageId); + else + languageId=0; + return StringCompressor::Instance()->DecodeString(str,0xFFFF,bs,languageId); +} +const char *RakString::ToString(int64_t i) +{ + static int index=0; + static char buff[64][64]; +#if defined(_WIN32) + sprintf(buff[index], "%I64d", i); +#else + sprintf(buff[index], "%lld", (long long unsigned int) i); +#endif + int lastIndex=index; + if (++index==64) + index=0; + return buff[lastIndex]; +} +const char *RakString::ToString(uint64_t i) +{ + static int index=0; + static char buff[64][64]; +#if defined(_WIN32) + sprintf(buff[index], "%I64u", i); +#else + sprintf(buff[index], "%llu", (long long unsigned int) i); +#endif + int lastIndex=index; + if (++index==64) + index=0; + return buff[lastIndex]; +} +void RakString::Clear(void) +{ + Free(); +} +void RakString::Allocate(size_t len) +{ + RakString::LockMutex(); + // sharedString = RakString::pool.Allocate( _FILE_AND_LINE_ ); + if (RakString::freeList.Size()==0) + { + //RakString::sharedStringFreeList=(RakString::SharedString*) rakRealloc_Ex(RakString::sharedStringFreeList,(RakString::sharedStringFreeListAllocationCount+1024)*sizeof(RakString::SharedString), _FILE_AND_LINE_); + unsigned i; + for (i=0; i < 128; i++) + { + // RakString::freeList.Insert(RakString::sharedStringFreeList+i+RakString::sharedStringFreeListAllocationCount); + // RakString::freeList.Insert((RakString::SharedString*)rakMalloc_Ex(sizeof(RakString::SharedString), _FILE_AND_LINE_), _FILE_AND_LINE_); + + RakString::SharedString *ss; + ss = (RakString::SharedString*) rakMalloc_Ex(sizeof(RakString::SharedString), _FILE_AND_LINE_); + ss->refCountMutex=RakNet::OP_NEW(_FILE_AND_LINE_); + RakString::freeList.Insert(ss, _FILE_AND_LINE_); + } + //RakString::sharedStringFreeListAllocationCount+=1024; + } + sharedString = RakString::freeList[RakString::freeList.Size()-1]; + RakString::freeList.RemoveAtIndex(RakString::freeList.Size()-1); + RakString::UnlockMutex(); + + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + sharedString->refCount=1; + if (len <= smallStringSize) + { + sharedString->bytesUsed=smallStringSize; + sharedString->c_str=sharedString->smallString; + } + else + { + sharedString->bytesUsed=len<<1; + sharedString->bigString=(char*)rakMalloc_Ex(sharedString->bytesUsed, _FILE_AND_LINE_); + sharedString->c_str=sharedString->bigString; + } +} +void RakString::Assign(const char *str) +{ + if (str==0 || str[0]==0) + { + sharedString=&emptyString; + return; + } + + size_t len = strlen(str)+1; + Allocate(len); + memcpy(sharedString->c_str, str, len); +} +void RakString::Assign(const char *str, va_list ap) +{ + char stackBuff[512]; + if (_vsnprintf(stackBuff, 512, str, ap)!=-1 +#ifndef _WIN32 + // Here Windows will return -1 if the string is too long; Linux just truncates the string. + && strlen(str) <511 +#endif + ) + { + Assign(stackBuff); + return; + } + char *buff=0, *newBuff; + size_t buffSize=8096; + while (1) + { + newBuff = (char*) rakRealloc_Ex(buff, buffSize,__FILE__,__LINE__); + if (newBuff==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + if (buff!=0) + { + Assign(buff); + rakFree_Ex(buff,__FILE__,__LINE__); + } + else + { + Assign(stackBuff); + } + return; + } + buff=newBuff; + if (_vsnprintf(buff, buffSize, str, ap)!=-1) + { + Assign(buff); + rakFree_Ex(buff,__FILE__,__LINE__); + return; + } + buffSize*=2; + } +} +RakNet::RakString RakString::Assign(const char *str,size_t pos, size_t n ) +{ + size_t incomingLen=strlen(str); + + Clone(); + + if (str==0 || str[0]==0||pos>=incomingLen) + { + sharedString=&emptyString; + return (*this); + } + + if (pos+n>=incomingLen) + { + n=incomingLen-pos; + + } + const char * tmpStr=&(str[pos]); + + size_t len = n+1; + Allocate(len); + memcpy(sharedString->c_str, tmpStr, len); + sharedString->c_str[n]=0; + + return (*this); +} + +RakNet::RakString RakString::NonVariadic(const char *str) +{ + RakNet::RakString rs; + rs=str; + return rs; +} +unsigned long RakString::ToInteger(const char *str) +{ + unsigned long hash = 0; + int c; + + while ((c = *str++)) + hash = c + (hash << 6) + (hash << 16) - hash; + + return hash; +} +unsigned long RakString::ToInteger(const RakString &rs) +{ + return RakString::ToInteger(rs.C_String()); +} +void RakString::AppendBytes(const char *bytes, unsigned int count) +{ + Clone(); + Realloc(sharedString, count); + unsigned int length=(unsigned int) GetLength(); + memcpy(sharedString->c_str+length, bytes, count); + sharedString->c_str[length+count]=0; +} +void RakString::Clone(void) +{ + if (sharedString==&emptyString) + { + return; + } + + // Empty or solo then no point to cloning + sharedString->refCountMutex->Lock(); + if (sharedString->refCount==1) + { + sharedString->refCountMutex->Unlock(); + return; + } + + sharedString->refCount--; + sharedString->refCountMutex->Unlock(); + Assign(sharedString->c_str); +} +void RakString::Free(void) +{ + if (sharedString==&emptyString) + return; + sharedString->refCountMutex->Lock(); + sharedString->refCount--; + if (sharedString->refCount==0) + { + sharedString->refCountMutex->Unlock(); + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + if (sharedString->bytesUsed>smallStringSize) + rakFree_Ex(sharedString->bigString, _FILE_AND_LINE_ ); + /* + poolMutex->Lock(); + pool.Release(sharedString); + poolMutex->Unlock(); + */ + + RakString::LockMutex(); + RakString::freeList.Insert(sharedString, _FILE_AND_LINE_); + RakString::UnlockMutex(); + + sharedString=&emptyString; + } + else + { + sharedString->refCountMutex->Unlock(); + } + sharedString=&emptyString; +} +unsigned char RakString::ToLower(unsigned char c) +{ + if (c >= 'A' && c <= 'Z') + return c-'A'+'a'; + return c; +} +unsigned char RakString::ToUpper(unsigned char c) +{ + if (c >= 'a' && c <= 'z') + return c-'a'+'A'; + return c; +} +void RakString::LockMutex(void) +{ + GetPoolMutex().Lock(); +} +void RakString::UnlockMutex(void) +{ + GetPoolMutex().Unlock(); +} + +/* +#include "RakString.h" +#include +#include "GetTime.h" + +using namespace RakNet; + +int main(void) +{ + RakString s3("Hello world"); + RakString s5=s3; + + RakString s1; + RakString s2('a'); + + RakString s4("%i %f", 5, 6.0); + + RakString s6=s3; + RakString s7=s6; + RakString s8=s6; + RakString s9; + s9=s9; + RakString s10(s3); + RakString s11=s10 + s4 + s9 + s2; + s11+=RakString("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + RakString s12("Test"); + s12+=s11; + bool b1 = s12==s12; + s11=s5; + s12.ToUpper(); + s12.ToLower(); + RakString s13; + bool b3 = s13.IsEmpty(); + s13.Set("blah %s", s12.C_String()); + bool b4 = s13.IsEmpty(); + size_t i1=s13.GetLength(); + s3.Clear(_FILE_AND_LINE_); + s4.Clear(_FILE_AND_LINE_); + s5.Clear(_FILE_AND_LINE_); + s5.Clear(_FILE_AND_LINE_); + s6.Printf(); + s7.Printf(); + RAKNET_DEBUG_PRINTF("\n"); + + static const int repeatCount=750; + DataStructures::List rakStringList; + DataStructures::List stdStringList; + DataStructures::List referenceStringList; + char *c; + unsigned i; + RakNet::TimeMS beforeReferenceList, beforeRakString, beforeStdString, afterStdString; + + unsigned loop; + for (loop=0; loop<2; loop++) + { + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + c = RakNet::OP_NEW_ARRAY(56,_FILE_AND_LINE_ ); + strcpy(c, "Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + referenceStringList.Insert(c); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + beforeStdString=RakNet::GetTimeMS(); + + for (i=0; i < repeatCount; i++) + stdStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("Insertion 1 Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + RakNet::OP_DELETE_ARRAY(referenceStringList[0], _FILE_AND_LINE_); + referenceStringList.RemoveAtIndex(0); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.RemoveAtIndex(0); + beforeStdString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + stdStringList.RemoveAtIndex(0); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("RemoveHead Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + c = RakNet::OP_NEW_ARRAY(56, _FILE_AND_LINE_ ); + strcpy(c, "Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + referenceStringList.Insert(0); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + beforeStdString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + stdStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("Insertion 2 Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + RakNet::OP_DELETE_ARRAY(referenceStringList[referenceStringList.Size()-1], _FILE_AND_LINE_); + referenceStringList.RemoveAtIndex(referenceStringList.Size()-1); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.RemoveAtIndex(rakStringList.Size()-1); + beforeStdString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + stdStringList.RemoveAtIndex(stdStringList.Size()-1); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("RemoveTail Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + } + + printf("Done."); + char str[128]; + Gets(str, sizeof(str)); + return 1; +} +*/ diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakString.h b/project/lib_projects/raknet/jni/RaknetSources/RakString.h new file mode 100755 index 0000000..125586e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakString.h @@ -0,0 +1,307 @@ +#ifndef __RAK_STRING_H +#define __RAK_STRING_H + +#include "Export.h" +#include "DS_List.h" +#include "RakNetTypes.h" // int64_t +#include +#include "stdarg.h" + + +#ifdef _WIN32 + + + +#include "WindowsIncludes.h" +#endif + +namespace RakNet +{ +/// Forward declarations +class SimpleMutex; +class BitStream; + +/// \brief String class +/// \details Has the following improvements over std::string +/// -Reference counting: Suitable to store in lists +/// -Variadic assignment operator +/// -Doesn't cause linker errors +class RAK_DLL_EXPORT RakString +{ +public: + // Constructors + RakString(); + RakString(char input); + RakString(unsigned char input); + RakString(const unsigned char *format, ...); + RakString(const char *format, ...); + ~RakString(); + RakString( const RakString & rhs); + + /// Implicit return of const char* + operator const char* () const {return sharedString->c_str;} + + /// Same as std::string::c_str + const char *C_String(void) const {return sharedString->c_str;} + + // Lets you modify the string. Do not make the string longer - however, you can make it shorter, or change the contents. + // Pointer is only valid in the scope of RakString itself + char *C_StringUnsafe(void) {Clone(); return sharedString->c_str;} + + /// Assigment operators + RakString& operator = ( const RakString& rhs ); + RakString& operator = ( const char *str ); + RakString& operator = ( char *str ); + RakString& operator = ( const unsigned char *str ); + RakString& operator = ( char unsigned *str ); + RakString& operator = ( const char c ); + + /// Concatenation + RakString& operator +=( const RakString& rhs); + RakString& operator += ( const char *str ); + RakString& operator += ( char *str ); + RakString& operator += ( const unsigned char *str ); + RakString& operator += ( char unsigned *str ); + RakString& operator += ( const char c ); + + /// Character index. Do not use to change the string however. + unsigned char operator[] ( const unsigned int position ) const; + +#ifdef _WIN32 + // Return as Wide char + // Deallocate with DeallocWideChar + WCHAR * ToWideChar(void); + void DeallocWideChar(WCHAR * w); +#endif + + ///String class find replacement + ///Searches the string for the content specified in stringToFind and returns the position of the first occurrence in the string. + ///Search only includes characters on or after position pos, ignoring any possible occurrences in previous locations. + /// \param[in] stringToFind The string to find inside of this object's string + /// \param[in] pos The position in the string to start the search + /// \return Returns the position of the first occurrence in the string. + size_t Find(const char *stringToFind,size_t pos = 0 ); + + /// Equality + bool operator==(const RakString &rhs) const; + bool operator==(const char *str) const; + bool operator==(char *str) const; + + // Comparison + bool operator < ( const RakString& right ) const; + bool operator <= ( const RakString& right ) const; + bool operator > ( const RakString& right ) const; + bool operator >= ( const RakString& right ) const; + + /// Inequality + bool operator!=(const RakString &rhs) const; + bool operator!=(const char *str) const; + bool operator!=(char *str) const; + + /// Change all characters to lowercase + const char * ToLower(void); + + /// Change all characters to uppercase + const char * ToUpper(void); + + /// Set the value of the string + void Set(const char *format, ...); + + /// Sets a copy of a substring of str as the new content. The substring is the portion of str + /// that begins at the character position pos and takes up to n characters + /// (it takes less than n if the end of str is reached before). + /// \param[in] str The string to copy in + /// \param[in] pos The position on str to start the copy + /// \param[in] n How many chars to copy + /// \return Returns the string, note that the current string is set to that value as well + RakString Assign(const char *str,size_t pos, size_t n ); + + /// Returns if the string is empty. Also, C_String() would return "" + bool IsEmpty(void) const; + + /// Returns the length of the string + size_t GetLength(void) const; + size_t GetLengthUTF8(void) const; + + /// Replace character(s) in starting at index, for count, with c + void Replace(unsigned index, unsigned count, unsigned char c); + + /// Replace character at index with c + void SetChar( unsigned index, unsigned char c ); + + /// Replace character at index with string s + void SetChar( unsigned index, RakNet::RakString s ); + + /// Make sure string is no longer than \a length + void Truncate(unsigned int length); + void TruncateUTF8(unsigned int length); + + // Gets the substring starting at index for count characters + RakString SubStr(unsigned int index, unsigned int count) const; + + /// Erase characters out of the string at index for count + void Erase(unsigned int index, unsigned int count); + + /// Set the first instance of c with a NULL terminator + void TerminateAtFirstCharacter(char c); + /// Set the last instance of c with a NULL terminator + void TerminateAtLastCharacter(char c); + + /// Remove all instances of c + void RemoveCharacter(char c); + + /// Create a RakString with a value, without doing printf style parsing + /// Equivalent to assignment operator + static RakNet::RakString NonVariadic(const char *str); + + /// Has the string into an unsigned int + static unsigned long ToInteger(const char *str); + static unsigned long ToInteger(const RakString &rs); + + // Like strncat, but for a fixed length + void AppendBytes(const char *bytes, unsigned int count); + + /// Compare strings (case sensitive) + int StrCmp(const RakString &rhs) const; + + /// Compare strings (not case sensitive) + int StrICmp(const RakString &rhs) const; + + /// Clear the string + void Clear(void); + + /// Print the string to the screen + void Printf(void); + + /// Print the string to a file + void FPrintf(FILE *fp); + + /// Does the given IP address match the IP address encoded into this string, accounting for wildcards? + bool IPAddressMatch(const char *IP); + + /// Does the string contain non-printable characters other than spaces? + bool ContainsNonprintableExceptSpaces(void) const; + + /// Is this a valid email address? + bool IsEmailAddress(void) const; + + /// URL Encode the string. See http://www.codeguru.com/cpp/cpp/cpp_mfc/article.php/c4029/ + RakNet::RakString& URLEncode(void); + + /// URL decode the string + RakNet::RakString& URLDecode(void); + + /// https://servers.api.rackspacecloud.com/v1.0 to https://, servers.api.rackspacecloud.com, /v1.0 + void SplitURI(RakNet::RakString &header, RakNet::RakString &domain, RakNet::RakString &path); + + /// Scan for quote, double quote, and backslash and prepend with backslash + RakNet::RakString& SQLEscape(void); + + /// Fix to be a file path, ending with / + RakNet::RakString& MakeFilePath(void); + + /// RakString uses a freeList of old no-longer used strings + /// Call this function to clear this memory on shutdown + static void FreeMemory(void); + /// \internal + static void FreeMemoryNoMutex(void); + + /// Serialize to a bitstream, uncompressed (slightly faster) + /// \param[out] bs Bitstream to serialize to + void Serialize(BitStream *bs) const; + + /// Static version of the Serialize function + static void Serialize(const char *str, BitStream *bs); + + /// Serialize to a bitstream, compressed (better bandwidth usage) + /// \param[out] bs Bitstream to serialize to + /// \param[in] languageId languageId to pass to the StringCompressor class + /// \param[in] writeLanguageId encode the languageId variable in the stream. If false, 0 is assumed, and DeserializeCompressed will not look for this variable in the stream (saves bandwidth) + /// \pre StringCompressor::AddReference must have been called to instantiate the class (Happens automatically from RakPeer::Startup()) + void SerializeCompressed(BitStream *bs, uint8_t languageId=0, bool writeLanguageId=false) const; + + /// Static version of the SerializeCompressed function + static void SerializeCompressed(const char *str, BitStream *bs, uint8_t languageId=0, bool writeLanguageId=false); + + /// Deserialize what was written by Serialize + /// \param[in] bs Bitstream to serialize from + /// \return true if the deserialization was successful + bool Deserialize(BitStream *bs); + + /// Static version of the Deserialize() function + static bool Deserialize(char *str, BitStream *bs); + + /// Deserialize compressed string, written by SerializeCompressed + /// \param[in] bs Bitstream to serialize from + /// \param[in] readLanguageId If true, looks for the variable langaugeId in the data stream. Must match what was passed to SerializeCompressed + /// \return true if the deserialization was successful + /// \pre StringCompressor::AddReference must have been called to instantiate the class (Happens automatically from RakPeer::Startup()) + bool DeserializeCompressed(BitStream *bs, bool readLanguageId=false); + + /// Static version of the DeserializeCompressed() function + static bool DeserializeCompressed(char *str, BitStream *bs, bool readLanguageId=false); + + static const char *ToString(int64_t i); + static const char *ToString(uint64_t i); + + /// \internal + static size_t GetSizeToAllocate(size_t bytes) + { + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + if (bytes<=smallStringSize) + return smallStringSize; + else + return bytes*2; + } + + /// \internal + struct SharedString + { + SimpleMutex *refCountMutex; + unsigned int refCount; + size_t bytesUsed; + char *bigString; + char *c_str; + char smallString[128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2]; + }; + + /// \internal + RakString( SharedString *_sharedString ); + + /// \internal + SharedString *sharedString; + +// static SimpleMutex poolMutex; +// static DataStructures::MemoryPool pool; + /// \internal + static SharedString emptyString; + + //static SharedString *sharedStringFreeList; + //static unsigned int sharedStringFreeListAllocationCount; + /// \internal + /// List of free objects to reduce memory reallocations + static DataStructures::List freeList; + + static int RakStringComp( RakString const &key, RakString const &data ); + + static void LockMutex(void); + static void UnlockMutex(void); + +protected: + void Allocate(size_t len); + void Assign(const char *str); + void Assign(const char *str, va_list ap); + + void Clone(void); + void Free(void); + unsigned char ToLower(unsigned char c); + unsigned char ToUpper(unsigned char c); + void Realloc(SharedString *sharedString, size_t bytes); +}; + +} + +const RakNet::RakString RAK_DLL_EXPORT operator+(const RakNet::RakString &lhs, const RakNet::RakString &rhs); + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakThread.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakThread.cpp new file mode 100755 index 0000000..268ee3a --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakThread.cpp @@ -0,0 +1,163 @@ +#include "RakThread.h" +#include "RakAssert.h" +#include "RakNetDefines.h" +#include "RakSleep.h" +#include "RakMemoryOverride.h" + +using namespace RakNet; + + + + +#if defined(_WIN32) +#include "WindowsIncludes.h" +#include + #if !defined(_WIN32_WCE) + #include + #endif + + + + +#else +#include +#endif + + +#if defined(_WIN32_WCE) +int RakThread::Create( LPTHREAD_START_ROUTINE start_address, void *arglist, int priority) +#elif defined(_WIN32) +int RakThread::Create( unsigned __stdcall start_address( void* ), void *arglist, int priority) + + + +#else +int RakThread::Create( void* start_address( void* ), void *arglist, int priority) +#endif +{ +#ifdef _WIN32 + HANDLE threadHandle; + unsigned threadID = 0; + + +#if defined (_WIN32_WCE) + threadHandle = CreateThread(NULL,MAX_ALLOCA_STACK_ALLOCATION*2,start_address,arglist,0,(DWORD*)&threadID); + SetThreadPriority(threadHandle, priority); +#else + threadHandle = (HANDLE) _beginthreadex( NULL, MAX_ALLOCA_STACK_ALLOCATION*2, start_address, arglist, 0, &threadID ); +#endif + SetThreadPriority(threadHandle, priority); + + if (threadHandle==0) + { + return 1; + } + else + { + CloseHandle( threadHandle ); + return 0; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#else + pthread_t threadHandle; + // Create thread linux + pthread_attr_t attr; + sched_param param; + param.sched_priority=priority; + pthread_attr_init( &attr ); + pthread_attr_setschedparam(&attr, ¶m); + + + + + + pthread_attr_setstacksize(&attr, MAX_ALLOCA_STACK_ALLOCATION*2); + + pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_DETACHED ); + int res = pthread_create( &threadHandle, &attr, start_address, arglist ); + RakAssert(res==0 && "pthread_create in RakThread.cpp failed.") + return res; +#endif +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakThread.h b/project/lib_projects/raknet/jni/RaknetSources/RakThread.h new file mode 100755 index 0000000..e6bf005 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakThread.h @@ -0,0 +1,88 @@ +#ifndef __RAK_THREAD_H +#define __RAK_THREAD_H + +#if defined(_WIN32_WCE) +#include "WindowsIncludes.h" +#endif + +#include "Export.h" + + + + + + +namespace RakNet +{ + +/// To define a thread, use RAK_THREAD_DECLARATION(functionName); +#if defined(_WIN32_WCE) +#define RAK_THREAD_DECLARATION(functionName) DWORD WINAPI functionName(LPVOID arguments) + + +#elif defined(_WIN32) +#define RAK_THREAD_DECLARATION(functionName) unsigned __stdcall functionName( void* arguments ) + + +#else +#define RAK_THREAD_DECLARATION(functionName) void* functionName( void* arguments ) +#endif + +class RAK_DLL_EXPORT RakThread +{ +public: + + + + + /// Create a thread, simplified to be cross platform without all the extra junk + /// To then start that thread, call RakCreateThread(functionName, arguments); + /// \param[in] start_address Function you want to call + /// \param[in] arglist Arguments to pass to the function + /// \return 0=success. >0 = error code + + /* + nice value Win32 Priority + -20 to -16 THREAD_PRIORITY_HIGHEST + -15 to -6 THREAD_PRIORITY_ABOVE_NORMAL + -5 to +4 THREAD_PRIORITY_NORMAL + +5 to +14 THREAD_PRIORITY_BELOW_NORMAL + +15 to +19 THREAD_PRIORITY_LOWEST + */ +#if defined(_WIN32_WCE) + static int Create( LPTHREAD_START_ROUTINE start_address, void *arglist, int priority=0); + + +#elif defined(_WIN32) + static int Create( unsigned __stdcall start_address( void* ), void *arglist, int priority=0); + + + +#else + static int Create( void* start_address( void* ), void *arglist, int priority=0); +#endif + + + + + + + + + + + + + + + + + + + + +}; + +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakWString.cpp b/project/lib_projects/raknet/jni/RaknetSources/RakWString.cpp new file mode 100755 index 0000000..fbaea50 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakWString.cpp @@ -0,0 +1,345 @@ +#include "RakWString.h" +#include "BitStream.h" +#include +#include +#include + +using namespace RakNet; + +// From http://www.joelonsoftware.com/articles/Unicode.html +// Only code points 128 and above are stored using 2, 3, in fact, up to 6 bytes. +//#define MAX_BYTES_PER_UNICODE_CHAR 6 +#define MAX_BYTES_PER_UNICODE_CHAR 2 + +RakWString::RakWString() +{ + c_str=0; + c_strCharLength=0; +} +RakWString::RakWString( const RakString &right ) +{ + c_str=0; + c_strCharLength=0; + *this=right; +} +RakWString::RakWString( const char *input ) +{ + c_str=0; + c_strCharLength=0; + *this = input; +} +RakWString::RakWString( const wchar_t *input ) +{ + c_str=0; + c_strCharLength=0; + *this = input; +} +RakWString::RakWString( const RakWString & right) +{ + c_str=0; + c_strCharLength=0; + *this = right; +} +RakWString::~RakWString() +{ + rakFree_Ex(c_str,_FILE_AND_LINE_); +} +RakWString& RakWString::operator = ( const RakWString& right ) +{ + Clear(); + if (right.IsEmpty()) + return *this; + c_str = (wchar_t *) rakMalloc_Ex( (right.GetLength() + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + c_strCharLength=0; + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + c_strCharLength = right.GetLength(); + memcpy(c_str,right.C_String(),(right.GetLength() + 1) * MAX_BYTES_PER_UNICODE_CHAR); + + return *this; +} +RakWString& RakWString::operator = ( const RakString& right ) +{ + return *this = right.C_String(); +} +RakWString& RakWString::operator = ( const wchar_t * const str ) +{ + Clear(); + if (str==0) + return *this; + c_strCharLength = wcslen(str); + if (c_strCharLength==0) + return *this; + c_str = (wchar_t *) rakMalloc_Ex( (c_strCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + c_strCharLength=0; + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + wcscpy(c_str,str); + + return *this; +} +RakWString& RakWString::operator = ( wchar_t *str ) +{ + *this = ( const wchar_t * const) str; + return *this; +} +RakWString& RakWString::operator = ( const char * const str ) +{ + Clear(); + +// Not supported on android +#if !defined(ANDROID) + if (str==0) + return *this; + if (str[0]==0) + return *this; + + c_strCharLength = mbstowcs(NULL, str, 0); + c_str = (wchar_t *) rakMalloc_Ex( (c_strCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + c_strCharLength=0; + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + + c_strCharLength = mbstowcs(c_str, str, c_strCharLength+1); + if (c_strCharLength == (size_t) (-1)) + { + RAKNET_DEBUG_PRINTF("Couldn't convert string--invalid multibyte character.\n"); + Clear(); + return *this; + } +#else + // mbstowcs not supported on android + RakAssert("mbstowcs not supported on Android" && 0); +#endif // defined(ANDROID) + + return *this; +} +RakWString& RakWString::operator = ( char *str ) +{ + *this = ( const char * const) str; + return *this; +} +RakWString& RakWString::operator +=( const RakWString& right) +{ + if (right.IsEmpty()) + return *this; + size_t newCharLength = c_strCharLength + right.GetLength(); + wchar_t *newCStr; + bool isEmpty = IsEmpty(); + if (isEmpty) + newCStr = (wchar_t *) rakMalloc_Ex( (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + else + newCStr = (wchar_t *) rakRealloc_Ex( c_str, (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!newCStr) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + c_str = newCStr; + c_strCharLength = newCharLength; + if (isEmpty) + { + memcpy(newCStr,right.C_String(),(right.GetLength() + 1) * MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + wcscat(c_str, right.C_String()); + } + + return *this; +} +RakWString& RakWString::operator += ( const wchar_t * const right ) +{ + if (right==0) + return *this; + size_t rightLength = wcslen(right); + size_t newCharLength = c_strCharLength + rightLength; + wchar_t *newCStr; + bool isEmpty = IsEmpty(); + if (isEmpty) + newCStr = (wchar_t *) rakMalloc_Ex( (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + else + newCStr = (wchar_t *) rakRealloc_Ex( c_str, (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!newCStr) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + c_str = newCStr; + c_strCharLength = newCharLength; + if (isEmpty) + { + memcpy(newCStr,right,(rightLength + 1) * MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + wcscat(c_str, right); + } + + return *this; +} +RakWString& RakWString::operator += ( wchar_t *right ) +{ + return *this += (const wchar_t * const) right; +} +bool RakWString::operator==(const RakWString &right) const +{ + if (GetLength()!=right.GetLength()) + return false; + return wcscmp(c_str,right.C_String())==0; +} +bool RakWString::operator < ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())<0; +} +bool RakWString::operator <= ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())<=0; +} +bool RakWString::operator > ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())>0; +} +bool RakWString::operator >= ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())>=0; +} +bool RakWString::operator!=(const RakWString &right) const +{ + if (GetLength()!=right.GetLength()) + return true; + return wcscmp(c_str,right.C_String())!=0; +} +void RakWString::Set( wchar_t *str ) +{ + *this = str; +} +bool RakWString::IsEmpty(void) const +{ + return GetLength()==0; +} +size_t RakWString::GetLength(void) const +{ + return c_strCharLength; +} +unsigned long RakWString::ToInteger(const RakWString &rs) +{ + unsigned long hash = 0; + int c; + + const char *str = (const char *)rs.C_String(); + size_t i; + for (i=0; i < rs.GetLength()*MAX_BYTES_PER_UNICODE_CHAR*sizeof(wchar_t); i++) + { + c = *str++; + hash = c + (hash << 6) + (hash << 16) - hash; + } + + return hash; +} +int RakWString::StrCmp(const RakWString &right) const +{ + return wcscmp(C_String(), right.C_String()); +} +int RakWString::StrICmp(const RakWString &right) const +{ +#ifdef _WIN32 + return wcsicmp(C_String(), right.C_String()); +#else + // Not supported + return wcscmp(C_String(), right.C_String()); +#endif +} +void RakWString::Clear(void) +{ + rakFree_Ex(c_str,_FILE_AND_LINE_); + c_str=0; + c_strCharLength=0; +} +void RakWString::Printf(void) +{ + printf("%ls", C_String()); +} +void RakWString::FPrintf(FILE *fp) +{ + fprintf(fp,"%ls", C_String()); +} +void RakWString::Serialize(BitStream *bs) const +{ + bs->WriteCasted(c_strCharLength); + bs->WriteAlignedBytes((const unsigned char*) c_str,(const unsigned int) (c_strCharLength+1)*MAX_BYTES_PER_UNICODE_CHAR); +} +void RakWString::Serialize(const wchar_t * const str, BitStream *bs) +{ + size_t length = wcslen(str); + bs->WriteCasted(length); + bs->WriteAlignedBytes((const unsigned char*) str,(const unsigned int) length*MAX_BYTES_PER_UNICODE_CHAR); +} +bool RakWString::Deserialize(BitStream *bs) +{ + Clear(); + size_t length; + bs->ReadCasted(length); + if (length>0) + { + c_str = (wchar_t *) rakMalloc_Ex( (length + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return false; + } + c_strCharLength = (size_t) length; + return bs->ReadAlignedBytes((unsigned char*) c_str,(const unsigned int) (c_strCharLength+1)*MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + return true; + } +} +bool RakWString::Deserialize(wchar_t *str, BitStream *bs) +{ + size_t length; + bs->ReadCasted(length); + if (length>0) + { + return bs->ReadAlignedBytes((unsigned char*) str,(const unsigned int) (length+1)*MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + wcscpy(str,L""); + } + return true; +} + +/* +RakNet::BitStream bsTest; +RakNet::RakWString testString("cat"), testString2; +testString = "Hllo"; +testString = L"Hello"; +testString += L" world"; +testString2 += testString2; +RakNet::RakWString ts3(L" from here"); +testString2+=ts3; +RakNet::RakWString ts4(L" 222"); +testString2=ts4; +RakNet::RakString rs("rakstring"); +testString2+=rs; +testString2=rs; +bsTest.Write(L"one"); +bsTest.Write(testString2); +bsTest.SetReadOffset(0); +RakNet::RakWString ts5, ts6; +wchar_t buff[99]; +wchar_t *wptr = (wchar_t*)buff; +bsTest.Read(wptr); +bsTest.Read(ts5); +*/ diff --git a/project/lib_projects/raknet/jni/RaknetSources/RakWString.h b/project/lib_projects/raknet/jni/RaknetSources/RakWString.h new file mode 100755 index 0000000..e3baa7e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RakWString.h @@ -0,0 +1,113 @@ +#ifndef __RAK_W_STRING_H +#define __RAK_W_STRING_H + +#include "Export.h" +#include "RakNetTypes.h" // int64_t +#include "RakString.h" + +#ifdef _WIN32 + + + +#include "WindowsIncludes.h" +#endif + +namespace RakNet +{ + /// \brief String class for Unicode + class RAK_DLL_EXPORT RakWString + { + public: + // Constructors + RakWString(); + RakWString( const RakString &right ); + RakWString( const wchar_t *input ); + RakWString( const RakWString & right); + RakWString( const char *input ); + ~RakWString(); + + /// Implicit return of wchar_t* + operator wchar_t* () const {if (c_str) return c_str; return (wchar_t*) L"";} + + /// Same as std::string::c_str + const wchar_t* C_String(void) const {if (c_str) return c_str; return (const wchar_t*) L"";} + + /// Assignment operators + RakWString& operator = ( const RakWString& right ); + RakWString& operator = ( const RakString& right ); + RakWString& operator = ( const wchar_t * const str ); + RakWString& operator = ( wchar_t *str ); + RakWString& operator = ( const char * const str ); + RakWString& operator = ( char *str ); + + /// Concatenation + RakWString& operator +=( const RakWString& right); + RakWString& operator += ( const wchar_t * const right ); + RakWString& operator += ( wchar_t *right ); + + /// Equality + bool operator==(const RakWString &right) const; + + // Comparison + bool operator < ( const RakWString& right ) const; + bool operator <= ( const RakWString& right ) const; + bool operator > ( const RakWString& right ) const; + bool operator >= ( const RakWString& right ) const; + + /// Inequality + bool operator!=(const RakWString &right) const; + + /// Set the value of the string + void Set( wchar_t *str ); + + /// Returns if the string is empty. Also, C_String() would return "" + bool IsEmpty(void) const; + + /// Returns the length of the string + size_t GetLength(void) const; + + /// Has the string into an unsigned int + static unsigned long ToInteger(const RakWString &rs); + + /// Compare strings (case sensitive) + int StrCmp(const RakWString &right) const; + + /// Compare strings (not case sensitive) + int StrICmp(const RakWString &right) const; + + /// Clear the string + void Clear(void); + + /// Print the string to the screen + void Printf(void); + + /// Print the string to a file + void FPrintf(FILE *fp); + + /// Serialize to a bitstream, uncompressed (slightly faster) + /// \param[out] bs Bitstream to serialize to + void Serialize(BitStream *bs) const; + + /// Static version of the Serialize function + static void Serialize(const wchar_t * const str, BitStream *bs); + + /// Deserialize what was written by Serialize + /// \param[in] bs Bitstream to serialize from + /// \return true if the deserialization was successful + bool Deserialize(BitStream *bs); + + /// Static version of the Deserialize() function + static bool Deserialize(wchar_t *str, BitStream *bs); + + + protected: + wchar_t* c_str; + size_t c_strCharLength; + }; + +} + +const RakNet::RakWString RAK_DLL_EXPORT operator+(const RakNet::RakWString &lhs, const RakNet::RakWString &rhs); + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/Rand.cpp b/project/lib_projects/raknet/jni/RaknetSources/Rand.cpp new file mode 100755 index 0000000..c3d8413 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Rand.cpp @@ -0,0 +1,274 @@ +/** +* +* Grabbed by Kevin from http://www.math.keio.ac.jp/~matumoto/cokus.c +* This is the ``Mersenne Twister'' random number generator MT19937, which +* generates pseudorandom integers uniformly distributed in 0..(2^32 - 1) +* starting from any odd seed in 0..(2^32 - 1). This version is a recode +* by Shawn Cokus (Cokus@math.washington.edu) on March 8, 1998 of a version by +* Takuji Nishimura (who had suggestions from Topher Cooper and Marc Rieffel in +* July-August 1997). +* +* Effectiveness of the recoding (on Goedel2.math.washington.edu, a DEC Alpha +* running OSF/1) using GCC -O3 as a compiler: before recoding: 51.6 sec. to +* generate 300 million random numbers; after recoding: 24.0 sec. for the same +* (i.e., 46.5% of original time), so speed is now about 12.5 million random +* number generations per second on this machine. +* +* According to the URL +* (and paraphrasing a bit in places), the Mersenne Twister is ``designed +* with consideration of the flaws of various existing generators,'' has +* a period of 2^19937 - 1, gives a sequence that is 623-dimensionally +* equidistributed, and ``has passed many stringent tests, including the +* die-hard test of G. Marsaglia and the load test of P. Hellekalek and +* S. Wegenkittl.'' It is efficient in memory usage (typically using 2506 +* to 5012 bytes of static data, depending on data type sizes, and the code +* is quite short as well). It generates random numbers in batches of 624 +* at a time, so the caching and pipelining of modern systems is exploited. +* It is also divide- and mod-free. +* +* Licensing is free http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/elicense.html +* +* The code as Shawn received it included the following notice: +* +* Copyright (C) 1997 Makoto Matsumoto and Takuji Nishimura. When +* you use this, send an e-mail to with +* an appropriate reference to your work. +* +* It would be nice to CC: when you write. +*/ + +#include +#include +#include +#include "Rand.h" + +// +// uint32 must be an unsigned integer type capable of holding at least 32 +// bits; exactly 32 should be fastest, but 64 is better on an Alpha with +// GCC at -O3 optimization so try your options and see what's best for you +// + +//typedef unsigned int uint32; + +#define N (624) // length of state vector +#define M (397) // a period parameter +#define K (0x9908B0DFU) // a magic constant +#define hiBit(u) ((u) & 0x80000000U) // mask all but highest bit of u +#define loBit(u) ((u) & 0x00000001U) // mask all but lowest bit of u +#define loBits(u) ((u) & 0x7FFFFFFFU) // mask the highest bit of u +#define mixBits(u, v) (hiBit(u)|loBits(v)) // move hi bit of u to hi bit of v + +static unsigned int _state[ N + 1 ]; // state vector + 1 extra to not violate ANSI C +static unsigned int *_next; // next random value is computed from here +static int _left = -1; // can *next++ this many times before reloading + +using namespace RakNet; + +void seedMT( unsigned int seed, unsigned int *state, unsigned int *&next, int &left ); +unsigned int reloadMT( unsigned int *state, unsigned int *&next, int &left ); +unsigned int randomMT( unsigned int *state, unsigned int *&next, int &left ); +void fillBufferMT( void *buffer, unsigned int bytes, unsigned int *state, unsigned int *&next, int &left ); +float frandomMT( unsigned int *state, unsigned int *&next, int &left ); + +// Uses global vars +void seedMT( unsigned int seed ) +{ + seedMT(seed, _state, _next, _left); +} +unsigned int reloadMT( void ) +{ + return reloadMT(_state, _next, _left); +} +unsigned int randomMT( void ) +{ + return randomMT(_state, _next, _left); +} +float frandomMT( void ) +{ + return frandomMT(_state, _next, _left); +} +void fillBufferMT( void *buffer, unsigned int bytes ) +{ + fillBufferMT(buffer, bytes, _state, _next, _left); +} + +void seedMT( unsigned int seed, unsigned int *state, unsigned int *&next, int &left ) // Defined in cokus_c.c +{ + (void) next; + + // + // We initialize state[0..(N-1)] via the generator + // + // x_new = (69069 * x_old) mod 2^32 + // + // from Line 15 of Table 1, p. 106, Sec. 3.3.4 of Knuth's + // _The Art of Computer Programming_, Volume 2, 3rd ed. + // + // Notes (SJC): I do not know what the initial state requirements + // of the Mersenne Twister are, but it seems this seeding generator + // could be better. It achieves the maximum period for its modulus + // (2^30) iff x_initial is odd (p. 20-21, Sec. 3.2.1.2, Knuth); if + // x_initial can be even, you have sequences like 0, 0, 0, ...; + // 2^31, 2^31, 2^31, ...; 2^30, 2^30, 2^30, ...; 2^29, 2^29 + 2^31, + // 2^29, 2^29 + 2^31, ..., etc. so I force seed to be odd below. + // + // Even if x_initial is odd, if x_initial is 1 mod 4 then + // + // the lowest bit of x is always 1, + // the next-to-lowest bit of x is always 0, + // the 2nd-from-lowest bit of x alternates ... 0 1 0 1 0 1 0 1 ... , + // the 3rd-from-lowest bit of x 4-cycles ... 0 1 1 0 0 1 1 0 ... , + // the 4th-from-lowest bit of x has the 8-cycle ... 0 0 0 1 1 1 1 0 ... , + // ... + // + // and if x_initial is 3 mod 4 then + // + // the lowest bit of x is always 1, + // the next-to-lowest bit of x is always 1, + // the 2nd-from-lowest bit of x alternates ... 0 1 0 1 0 1 0 1 ... , + // the 3rd-from-lowest bit of x 4-cycles ... 0 0 1 1 0 0 1 1 ... , + // the 4th-from-lowest bit of x has the 8-cycle ... 0 0 1 1 1 1 0 0 ... , + // ... + // + // The generator's potency (min. s>=0 with (69069-1)^s = 0 mod 2^32) is + // 16, which seems to be alright by p. 25, Sec. 3.2.1.3 of Knuth. It + // also does well in the dimension 2..5 spectral tests, but it could be + // better in dimension 6 (Line 15, Table 1, p. 106, Sec. 3.3.4, Knuth). + // + // Note that the random number user does not see the values generated + // here directly since reloadMT() will always munge them first, so maybe + // none of all of this matters. In fact, the seed values made here could + // even be extra-special desirable if the Mersenne Twister theory says + // so-- that's why the only change I made is to restrict to odd seeds. + // + + register unsigned int x = ( seed | 1U ) & 0xFFFFFFFFU, *s = state; + register int j; + + for ( left = 0, *s++ = x, j = N; --j; + *s++ = ( x *= 69069U ) & 0xFFFFFFFFU ) + + ; +} + + +unsigned int reloadMT( unsigned int *state, unsigned int *&next, int &left ) +{ + register unsigned int * p0 = state, *p2 = state + 2, *pM = state + M, s0, s1; + register int j; + + if ( left < -1 ) + seedMT( 4357U ); + + left = N - 1, next = state + 1; + + for ( s0 = state[ 0 ], s1 = state[ 1 ], j = N - M + 1; --j; s0 = s1, s1 = *p2++ ) + * p0++ = *pM++ ^ ( mixBits( s0, s1 ) >> 1 ) ^ ( loBit( s1 ) ? K : 0U ); + + for ( pM = state, j = M; --j; s0 = s1, s1 = *p2++ ) + * p0++ = *pM++ ^ ( mixBits( s0, s1 ) >> 1 ) ^ ( loBit( s1 ) ? K : 0U ); + + s1 = state[ 0 ], *p0 = *pM ^ ( mixBits( s0, s1 ) >> 1 ) ^ ( loBit( s1 ) ? K : 0U ); + + s1 ^= ( s1 >> 11 ); + + s1 ^= ( s1 << 7 ) & 0x9D2C5680U; + + s1 ^= ( s1 << 15 ) & 0xEFC60000U; + + return ( s1 ^ ( s1 >> 18 ) ); +} + + +unsigned int randomMT( unsigned int *state, unsigned int *&next, int &left ) +{ + unsigned int y; + + if ( --left < 0 ) + return ( reloadMT(state, next, left) ); + + y = *next++; + + y ^= ( y >> 11 ); + + y ^= ( y << 7 ) & 0x9D2C5680U; + + y ^= ( y << 15 ) & 0xEFC60000U; + + return ( y ^ ( y >> 18 ) ); + + // This change made so the value returned is in the same range as what rand() returns + // return(y ^ (y >> 18)) % 32767; +} + +void fillBufferMT( void *buffer, unsigned int bytes, unsigned int *state, unsigned int *&next, int &left ) +{ + unsigned int offset=0; + unsigned int r; + while (bytes-offset>=sizeof(r)) + { + r = randomMT(state, next, left); + memcpy((char*)buffer+offset, &r, sizeof(r)); + offset+=sizeof(r); + } + + r = randomMT(state, next, left); + memcpy((char*)buffer+offset, &r, bytes-offset); +} + +float frandomMT( unsigned int *state, unsigned int *&next, int &left ) +{ + return ( float ) ( ( double ) randomMT(state, next, left) / 4294967296.0 ); +} +RakNetRandom::RakNetRandom() +{ + left=-1; +} +RakNetRandom::~RakNetRandom() +{ +} +void RakNetRandom::SeedMT( unsigned int seed ) +{ + printf("%i\n",seed); + seedMT(seed, state, next, left); +} + +unsigned int RakNetRandom::ReloadMT( void ) +{ + return reloadMT(state, next, left); +} + +unsigned int RakNetRandom::RandomMT( void ) +{ + return randomMT(state, next, left); +} + +float RakNetRandom::FrandomMT( void ) +{ + return frandomMT(state, next, left); +} + +void RakNetRandom::FillBufferMT( void *buffer, unsigned int bytes ) +{ + fillBufferMT(buffer, bytes, state, next, left); +} + +/* +int main(void) +{ +int j; + +// you can seed with any uint32, but the best are odds in 0..(2^32 - 1) + +seedMT(4357U); + +// print the first 2,002 random numbers seven to a line as an example + +for(j=0; j<2002; j++) +RAKNET_DEBUG_PRINTF(" %10lu%s", (unsigned int) randomMT(), (j%7)==6 ? "\n" : ""); + +return(EXIT_SUCCESS); +} + +*/ + diff --git a/project/lib_projects/raknet/jni/RaknetSources/Rand.h b/project/lib_projects/raknet/jni/RaknetSources/Rand.h new file mode 100755 index 0000000..c7efab3 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Rand.h @@ -0,0 +1,60 @@ +/// \file +/// \brief \b [Internal] Random number generator +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + + +#ifndef __RAND_H +#define __RAND_H + +#include "Export.h" + +/// Initialise seed for Random Generator +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +/// \param[in] seed The seed value for the random number generator. +extern void RAK_DLL_EXPORT seedMT( unsigned int seed ); + +/// \internal +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +extern unsigned int RAK_DLL_EXPORT reloadMT( void ); + +/// Gets a random unsigned int +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +/// \return an integer random value. +extern unsigned int RAK_DLL_EXPORT randomMT( void ); + +/// Gets a random float +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +/// \return 0 to 1.0f, inclusive +extern float RAK_DLL_EXPORT frandomMT( void ); + +/// Randomizes a buffer +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +extern void RAK_DLL_EXPORT fillBufferMT( void *buffer, unsigned int bytes ); + +namespace RakNet { + +// Same thing as above functions, but not global +class RAK_DLL_EXPORT RakNetRandom +{ +public: + RakNetRandom(); + ~RakNetRandom(); + void SeedMT( unsigned int seed ); + unsigned int ReloadMT( void ); + unsigned int RandomMT( void ); + float FrandomMT( void ); + void FillBufferMT( void *buffer, unsigned int bytes ); + +protected: + unsigned int state[ 624 + 1 ]; + unsigned int *next; + int left; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/ReadyEvent.cpp b/project/lib_projects/raknet/jni/RaknetSources/ReadyEvent.cpp new file mode 100755 index 0000000..277efb4 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ReadyEvent.cpp @@ -0,0 +1,564 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReadyEvent==1 + +#include "ReadyEvent.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakAssert.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +int RakNet::ReadyEvent::RemoteSystemCompBySystemAddress( const SystemAddress &key, const RemoteSystem &data ) +{ + if (key < data.systemAddress) + return -1; + else if (key==data.systemAddress) + return 0; + else + return 1; +} + +int RakNet::ReadyEvent::ReadyEventNodeComp( const int &key, ReadyEvent::ReadyEventNode * const &data ) +{ + if (key < data->eventId) + return -1; + else if (key==data->eventId) + return 0; + else + return 1; +} + +STATIC_FACTORY_DEFINITIONS(ReadyEvent,ReadyEvent); + +ReadyEvent::ReadyEvent() +{ + channel=0; +} + +ReadyEvent::~ReadyEvent() +{ + Clear(); +} + + +bool ReadyEvent::SetEvent(int eventId, bool isReady) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists==false) + { + // Totally new event + CreateNewEvent(eventId, isReady); + } + else + { + return SetEventByIndex(eventIndex, isReady); + } + return true; +} +bool ReadyEvent::ForceCompletion(int eventId) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists==false) + { + // Totally new event + CreateNewEvent(eventId, true); + eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + } + + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + ren->eventStatus=ID_READY_EVENT_FORCE_ALL_SET; + UpdateReadyStatus(eventIndex); + + return true; +} +bool ReadyEvent::DeleteEvent(int eventId) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + RakNet::OP_DELETE(readyEventNodeList[eventIndex], _FILE_AND_LINE_); + readyEventNodeList.RemoveAtIndex(eventIndex); + return true; + } + return false; +} +bool ReadyEvent::IsEventSet(int eventId) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[eventIndex]->eventStatus==ID_READY_EVENT_SET || readyEventNodeList[eventIndex]->eventStatus==ID_READY_EVENT_ALL_SET; + } + return false; +} +bool ReadyEvent::IsEventCompletionProcessing(int eventId) const +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + bool anyAllReady=false; + bool allAllReady=true; + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return false; + for (unsigned i=0; i < ren->systemList.Size(); i++) + { + if (ren->systemList[i].lastReceivedStatus==ID_READY_EVENT_ALL_SET) + anyAllReady=true; + else + allAllReady=false; + } + return anyAllReady==true && allAllReady==false; + } + return false; +} +bool ReadyEvent::IsEventCompleted(int eventId) const +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return IsEventCompletedByIndex(eventIndex); + } + return false; +} + +bool ReadyEvent::HasEvent(int eventId) +{ + return readyEventNodeList.HasData(eventId); +} + +unsigned ReadyEvent::GetEventListSize(void) const +{ + return readyEventNodeList.Size(); +} + +int ReadyEvent::GetEventAtIndex(unsigned index) const +{ + return readyEventNodeList[index]->eventId; +} + +bool ReadyEvent::AddToWaitList(int eventId, SystemAddress address) +{ + bool eventExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &eventExists); + if (eventExists==false) + eventIndex=CreateNewEvent(eventId, false); + + // Don't do this, otherwise if we are trying to start a 3 player game, it will not allow the 3rd player to hit ready if the first two players have already done so + //if (IsLocked(eventIndex)) + // return false; // Not in the list, but event is already completed, or is starting to complete, and adding more waiters would fail this. + + unsigned i; + unsigned numAdded=0; + if (address==UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < rakPeerInterface->GetMaximumNumberOfPeers(); i++) + { + SystemAddress internalAddress = rakPeerInterface->GetSystemAddressFromIndex(i); + if (internalAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + numAdded+=AddToWaitListInternal(eventIndex, internalAddress); + } + } + } + else + { + numAdded=AddToWaitListInternal(eventIndex, address); + } + + if (numAdded>0) + UpdateReadyStatus(eventIndex); + return numAdded>0; +} +bool ReadyEvent::RemoveFromWaitList(int eventId, SystemAddress address) +{ + bool eventExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &eventExists); + if (eventExists) + { + if (address==UNASSIGNED_SYSTEM_ADDRESS) + { + // Remove all waiters + readyEventNodeList[eventIndex]->systemList.Clear(false, _FILE_AND_LINE_); + UpdateReadyStatus(eventIndex); + } + else + { + bool systemExists; + unsigned systemIndex = readyEventNodeList[eventIndex]->systemList.GetIndexFromKey(address, &systemExists); + if (systemExists) + { + bool isCompleted = IsEventCompletedByIndex(eventIndex); + readyEventNodeList[eventIndex]->systemList.RemoveAtIndex(systemIndex); + + if (isCompleted==false && IsEventCompletedByIndex(eventIndex)) + PushCompletionPacket(readyEventNodeList[eventIndex]->eventId); + + UpdateReadyStatus(eventIndex); + + return true; + } + } + } + + return false; +} +bool ReadyEvent::IsInWaitList(int eventId, SystemAddress address) +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[readyIndex]->systemList.HasData(address); + } + return false; +} + +unsigned ReadyEvent::GetRemoteWaitListSize(int eventId) const +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[readyIndex]->systemList.Size(); + } + return 0; +} + +SystemAddress ReadyEvent::GetFromWaitListAtIndex(int eventId, unsigned index) const +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[readyIndex]->systemList[index].systemAddress; + } + return UNASSIGNED_SYSTEM_ADDRESS; +} +ReadyEventSystemStatus ReadyEvent::GetReadyStatus(int eventId, SystemAddress address) +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + ReadyEventNode *ren = readyEventNodeList[readyIndex]; + unsigned systemIndex = ren->systemList.GetIndexFromKey(address, &objectExists); + if (objectExists==false) + return RES_NOT_WAITING; + if (ren->systemList[systemIndex].lastReceivedStatus==ID_READY_EVENT_SET) + return RES_READY; + if (ren->systemList[systemIndex].lastReceivedStatus==ID_READY_EVENT_UNSET) + return RES_WAITING; + if (ren->systemList[systemIndex].lastReceivedStatus==ID_READY_EVENT_ALL_SET) + return RES_ALL_READY; + } + + return RES_UNKNOWN_EVENT; +} +void ReadyEvent::SetSendChannel(unsigned char newChannel) +{ + channel=newChannel; +} +PluginReceiveResult ReadyEvent::OnReceive(Packet *packet) +{ + unsigned char packetIdentifier; + packetIdentifier = ( unsigned char ) packet->data[ 0 ]; + +// bool doPrint = packet->systemAddress.GetPort()==60002 || rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).GetPort()==60002; + + switch (packetIdentifier) + { + case ID_READY_EVENT_UNSET: + case ID_READY_EVENT_SET: + case ID_READY_EVENT_ALL_SET: +// if (doPrint) {if (packet->systemAddress.GetPort()==60002) RAKNET_DEBUG_PRINTF("FROM 60002: "); else if (rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).port==60002) RAKNET_DEBUG_PRINTF("TO 60002: "); RAKNET_DEBUG_PRINTF("ID_READY_EVENT_SET\n");} + OnReadyEventPacketUpdate(packet); + return RR_CONTINUE_PROCESSING; + case ID_READY_EVENT_FORCE_ALL_SET: + OnReadyEventForceAllSet(packet); + return RR_CONTINUE_PROCESSING; + case ID_READY_EVENT_QUERY: +// if (doPrint) {if (packet->systemAddress.GetPort()==60002) RAKNET_DEBUG_PRINTF("FROM 60002: "); else if (rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).port==60002) RAKNET_DEBUG_PRINTF("TO 60002: "); RAKNET_DEBUG_PRINTF("ID_READY_EVENT_QUERY\n");} + OnReadyEventQuery(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} +bool ReadyEvent::AddToWaitListInternal(unsigned eventIndex, SystemAddress address) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + bool objectExists; + unsigned systemIndex = ren->systemList.GetIndexFromKey(address, &objectExists); + if (objectExists==false) + { + RemoteSystem rs; + rs.lastReceivedStatus=ID_READY_EVENT_UNSET; + rs.lastSentStatus=ID_READY_EVENT_UNSET; + rs.systemAddress=address; + ren->systemList.InsertAtIndex(rs,systemIndex, _FILE_AND_LINE_); + + SendReadyStateQuery(ren->eventId, address); + return true; + } + return false; +} +void ReadyEvent::OnReadyEventForceAllSet(Packet *packet) +{ + RakNet::BitStream incomingBitStream(packet->data, packet->length, false); + incomingBitStream.IgnoreBits(8); + int eventId; + incomingBitStream.Read(eventId); + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + ReadyEventNode *ren = readyEventNodeList[readyIndex]; + if (ren->eventStatus!=ID_READY_EVENT_FORCE_ALL_SET) + { + ren->eventStatus=ID_READY_EVENT_FORCE_ALL_SET; + PushCompletionPacket(ren->eventId); + } + } +} +void ReadyEvent::OnReadyEventPacketUpdate(Packet *packet) +{ + RakNet::BitStream incomingBitStream(packet->data, packet->length, false); + incomingBitStream.IgnoreBits(8); + int eventId; + incomingBitStream.Read(eventId); + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + ReadyEventNode *ren = readyEventNodeList[readyIndex]; + bool systemExists; + unsigned systemIndex = ren->systemList.GetIndexFromKey(packet->systemAddress, &systemExists); + if (systemExists) + { + // Just return if no change + if (ren->systemList[systemIndex].lastReceivedStatus==packet->data[0]) + return; + + bool wasCompleted = IsEventCompletedByIndex(readyIndex); + ren->systemList[systemIndex].lastReceivedStatus=packet->data[0]; + // If forced all set, doesn't matter what the new packet is + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return; + UpdateReadyStatus(readyIndex); + if (wasCompleted==false && IsEventCompletedByIndex(readyIndex)) + PushCompletionPacket(readyIndex); + } + } +} +void ReadyEvent::OnReadyEventQuery(Packet *packet) +{ + RakNet::BitStream incomingBitStream(packet->data, packet->length, false); + incomingBitStream.IgnoreBits(8); + int eventId; + incomingBitStream.Read(eventId); + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + unsigned systemIndex = readyEventNodeList[readyIndex]->systemList.GetIndexFromKey(packet->systemAddress,&objectExists); + // Force the non-default send, because our initial send may have arrived at a system that didn't yet create the ready event + if (objectExists) + SendReadyUpdate(readyIndex, systemIndex, true); + } +} +void ReadyEvent::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) systemAddress; + (void) rakNetGUID; + (void) lostConnectionReason; + + RemoveFromAllLists(systemAddress); +} +void ReadyEvent::OnRakPeerShutdown(void) +{ + Clear(); +} + +bool ReadyEvent::SetEventByIndex(int eventIndex, bool isReady) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + if ((ren->eventStatus==ID_READY_EVENT_ALL_SET || ren->eventStatus==ID_READY_EVENT_SET) && isReady==true) + return true; // Success - no change + if (ren->eventStatus==ID_READY_EVENT_UNSET && isReady==false) + return true; // Success - no change + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return true; // Can't change + + if (isReady) + ren->eventStatus=ID_READY_EVENT_SET; + else + ren->eventStatus=ID_READY_EVENT_UNSET; + + UpdateReadyStatus(eventIndex); + + // Check if now completed, and if so, tell the user about it + if (IsEventCompletedByIndex(eventIndex)) + { + PushCompletionPacket(ren->eventId); + } + + return true; +} + +bool ReadyEvent::IsEventCompletedByIndex(unsigned eventIndex) const +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + unsigned i; + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return true; + if (ren->eventStatus!=ID_READY_EVENT_ALL_SET) + return false; + for (i=0; i < ren->systemList.Size(); i++) + if (ren->systemList[i].lastReceivedStatus!=ID_READY_EVENT_ALL_SET) + return false; + return true; +} + +void ReadyEvent::Clear(void) +{ + unsigned i; + for (i=0; i < readyEventNodeList.Size(); i++) + { + RakNet::OP_DELETE(readyEventNodeList[i], _FILE_AND_LINE_); + } + readyEventNodeList.Clear(false, _FILE_AND_LINE_); +} + +unsigned ReadyEvent::CreateNewEvent(int eventId, bool isReady) +{ + ReadyEventNode *ren = RakNet::OP_NEW( _FILE_AND_LINE_ ); + ren->eventId=eventId; + if (isReady==false) + ren->eventStatus=ID_READY_EVENT_UNSET; + else + ren->eventStatus=ID_READY_EVENT_SET; + return readyEventNodeList.Insert(eventId, ren, true, _FILE_AND_LINE_); +} +void ReadyEvent::UpdateReadyStatus(unsigned eventIndex) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + bool anyUnset; + unsigned i; + if (ren->eventStatus==ID_READY_EVENT_SET) + { + // If you are set, and no other systems are ID_READY_EVENT_UNSET, then change your status to ID_READY_EVENT_ALL_SET + anyUnset=false; + for (i=0; i < ren->systemList.Size(); i++) + { + if (ren->systemList[i].lastReceivedStatus==ID_READY_EVENT_UNSET) + { + anyUnset=true; + break; + } + } + if (anyUnset==false) + { + ren->eventStatus=ID_READY_EVENT_ALL_SET; + } + } + else if (ren->eventStatus==ID_READY_EVENT_ALL_SET) + { + // If you are all set, and any systems are ID_READY_EVENT_UNSET, then change your status to ID_READY_EVENT_SET + anyUnset=false; + for (i=0; i < ren->systemList.Size(); i++) + { + if (ren->systemList[i].lastReceivedStatus==ID_READY_EVENT_UNSET) + { + anyUnset=true; + break; + } + } + if (anyUnset==true) + { + ren->eventStatus=ID_READY_EVENT_SET; + } + } + BroadcastReadyUpdate(eventIndex, false); +} +void ReadyEvent::SendReadyUpdate(unsigned eventIndex, unsigned systemIndex, bool forceIfNotDefault) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + RakNet::BitStream bs; + // I do this rather than write true or false, so users that do not use BitStreams can still read the data + if ((ren->eventStatus!=ren->systemList[systemIndex].lastSentStatus) || + (forceIfNotDefault && ren->eventStatus!=ID_READY_EVENT_UNSET)) + { + bs.Write(ren->eventStatus); + bs.Write(ren->eventId); + SendUnified(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, channel, ren->systemList[systemIndex].systemAddress, false); + + ren->systemList[systemIndex].lastSentStatus=ren->eventStatus; + } + +} +void ReadyEvent::BroadcastReadyUpdate(unsigned eventIndex, bool forceIfNotDefault) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + unsigned systemIndex; + for (systemIndex=0; systemIndex < ren->systemList.Size(); systemIndex++) + { + SendReadyUpdate(eventIndex, systemIndex, forceIfNotDefault); + } +} +void ReadyEvent::SendReadyStateQuery(unsigned eventId, SystemAddress address) +{ + RakNet::BitStream bs; + bs.Write((MessageID)ID_READY_EVENT_QUERY); + bs.Write(eventId); + SendUnified(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, channel, address, false); +} +void ReadyEvent::RemoveFromAllLists(SystemAddress address) +{ + unsigned eventIndex; + for (eventIndex=0; eventIndex < readyEventNodeList.Size(); eventIndex++) + { + bool isCompleted = IsEventCompletedByIndex(eventIndex); + bool systemExists; + unsigned systemIndex; + + systemIndex = readyEventNodeList[eventIndex]->systemList.GetIndexFromKey(address, &systemExists); + if (systemExists) + readyEventNodeList[eventIndex]->systemList.RemoveAtIndex(systemIndex); + + UpdateReadyStatus(eventIndex); + + if (isCompleted==false && IsEventCompletedByIndex(eventIndex)) + PushCompletionPacket(readyEventNodeList[eventIndex]->eventId); + } +} +void ReadyEvent::PushCompletionPacket(unsigned eventId) +{ + (void) eventId; + // Not necessary + /* + // Pass a packet to the user that we are now completed, as setting ourselves to signaled was the last thing being waited on + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(int)); + RakNet::BitStream bs(p->data, sizeof(MessageID)+sizeof(int), false); + bs.SetWriteOffset(0); + bs.Write((MessageID)ID_READY_EVENT_ALL_SET); + bs.Write(eventId); + rakPeerInterface->PushBackPacket(p, false); + */ +} +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ReadyEvent.h b/project/lib_projects/raknet/jni/RaknetSources/ReadyEvent.h new file mode 100755 index 0000000..a6d516d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ReadyEvent.h @@ -0,0 +1,234 @@ +/// \file +/// \brief Ready event plugin. This enables a set of systems to create a signal event, set this signal as ready or unready, and to trigger the event when all systems are ready +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReadyEvent==1 + +#ifndef __READY_EVENT_H +#define __READY_EVENT_H + +#include "PluginInterface2.h" +#include "DS_OrderedList.h" + +namespace RakNet { + +class RakPeerInterface; + +/// \defgroup READY_EVENT_GROUP ReadyEvent +/// \brief Peer to peer synchronized ready and unready events +/// \details +/// \ingroup PLUGINS_GROUP + +/// \ingroup READY_EVENT_GROUP +/// Returns the status of a remote system when querying with ReadyEvent::GetReadyStatus +enum ReadyEventSystemStatus +{ + /// ----------- Normal states --------------- + /// The remote system is not in the wait list, and we have never gotten a ready or complete message from it. + /// This is the default state for valid events + RES_NOT_WAITING, + /// We are waiting for this remote system to call SetEvent(thisEvent,true). + RES_WAITING, + /// The remote system called SetEvent(thisEvent,true), but it still waiting for other systems before completing the ReadyEvent. + RES_READY, + /// The remote system called SetEvent(thisEvent,true), and is no longer waiting for any other systems. + /// This remote system has completed the ReadyEvent + RES_ALL_READY, + + /// Error code, we couldn't look up the system because the event was unknown + RES_UNKNOWN_EVENT, +}; + +/// \brief Peer to peer synchronized ready and unready events +/// \details For peer to peer networks in a fully connected mesh.
+/// Solves the problem of how to tell if all peers, relative to all other peers, are in a certain ready state.
+/// For example, if A is connected to B and C, A may see that B and C are ready, but does not know if B is ready to C, or vice-versa.
+/// This plugin uses two stages to solve that problem, first, everyone I know about is ready. Second, everyone I know about is ready to everyone they know about.
+/// The user will get ID_READY_EVENT_SET and ID_READY_EVENT_UNSET as the signal flag is set or unset
+/// The user will get ID_READY_EVENT_ALL_SET when all systems are done waiting for all other systems, in which case the event is considered complete, and no longer tracked.
+/// \sa FullyConnectedMesh2 +/// \ingroup READY_EVENT_GROUP +class ReadyEvent : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(ReadyEvent) + + // Constructor + ReadyEvent(); + + // Destructor + virtual ~ReadyEvent(); + + // -------------------------------------------------------------------------------------------- + // User functions + // -------------------------------------------------------------------------------------------- + /// Sets or updates the initial ready state for our local system. + /// If eventId is an unknown event the event is created. + /// If eventId was previously used and you want to reuse it, call DeleteEvent first, or else you will keep the same event signals from before + /// Systems previously or later added through AddToWaitList() with the same \a eventId when isReady=true will get ID_READY_EVENT_SET + /// Systems previously added through AddToWaitList with the same \a eventId will get ID_READY_EVENT_UNSET + /// For both ID_READY_EVENT_SET and ID_READY_EVENT_UNSET, eventId is encoded in bytes 1 through 1+sizeof(int) + /// \param[in] eventId A user-defined identifier to wait on. This can be a sequence counter, an event identifier, or anything else you want. + /// \param[in] isReady True to signal we are ready to proceed with this event, false to unsignal + /// \return True on success. False (failure) on unknown eventId + bool SetEvent(int eventId, bool isReady); + + /// When systems can call SetEvent() with isReady==false, it is possible for one system to return true from IsEventCompleted() while the other systems return false + /// This can occur if a system SetEvent() with isReady==false while the completion message is still being transmitted. + /// If your game has the situation where some action should be taken on all systems when IsEventCompleted() is true for any system, then call ForceCompletion() when the action begins. + /// This will force all systems to return true from IsEventCompleted(). + /// \param[in] eventId A user-defined identifier to immediately set as completed + bool ForceCompletion(int eventId); + + /// Deletes an event. We will no longer wait for this event, and any systems that we know have set the event will be forgotten. + /// Call this to clear memory when events are completed and you know you will never need them again. + /// \param[in] eventId A user-defined identifier + /// \return True on success. False (failure) on unknown eventId + bool DeleteEvent(int eventId); + + /// Returns what was passed to SetEvent() + /// \return The value of isReady passed to SetEvent(). Also returns false on unknown event. + bool IsEventSet(int eventId); + + /// Returns if the event is about to be ready and we are negotiating the final packets. + /// This will usually only be true for a very short time, after which IsEventCompleted should return true. + /// While this is true you cannot add to the wait list, or SetEvent() isReady to false anymore. + /// \param[in] eventId A user-defined identifier + /// \return True if any other system has completed processing. Will always be true if IsEventCompleted() is true + bool IsEventCompletionProcessing(int eventId) const; + + /// Returns if the wait list is a subset of the completion list. + /// Call this after all systems you want to wait for have been added with AddToWaitList + /// If you are waiting for a specific number of systems (such as players later connecting), also check GetRemoteWaitListSize(eventId) to be equal to 1 less than the total number of participants. + /// \param[in] eventId A user-defined identifier + /// \return True on completion. False (failure) on unknown eventId, or the set is not completed. + bool IsEventCompleted(int eventId) const; + + /// Returns if this is a known event. + /// Events may be known even if we never ourselves referenced them with SetEvent, because other systems created them via ID_READY_EVENT_SET. + /// \param[in] eventId A user-defined identifier + /// \return true if we have this event, false otherwise + bool HasEvent(int eventId); + + /// Returns the total number of events stored in the system. + /// \return The total number of events stored in the system. + unsigned GetEventListSize(void) const; + + /// Returns the event ID stored at a particular index. EventIDs are stored sorted from least to greatest. + /// \param[in] index Index into the array, from 0 to GetEventListSize() + /// \return The event ID stored at a particular index + int GetEventAtIndex(unsigned index) const; + + /// Adds a system to wait for to signal an event before considering the event complete and returning ID_READY_EVENT_ALL_SET. + /// As we add systems, if this event was previously set to true with SetEvent, these systems will get ID_READY_EVENT_SET. + /// As these systems disconnect (directly or indirectly through the router) they are removed. + /// \note If the event completion process has already started, you cannot add more systems, as this would cause the completion process to fail + /// \param[in] eventId A user-defined number previously passed to SetEvent that has not yet completed + /// \param[in] addressArray An address to wait for event replies from. Pass UNASSIGNED_SYSTEM_ADDRESS for all currently connected systems. Until all systems in this list have called SetEvent with this ID and true, and have this system in the list, we won't get ID_READY_EVENT_COMPLETE + /// \return True on success, false on unknown eventId (this should be considered an error), or if the completion process has already started. + bool AddToWaitList(int eventId, SystemAddress address); + + /// Removes systems from the wait list, which should have been previously added with AddToWaitList + /// \note Systems that directly or indirectly disconnect from us are automatically removed from the wait list + /// \param[in] address The system to remove from the wait list. Pass UNASSIGNED_SYSTEM_ADDRESS for all currently connected systems. + /// \return True on success, false on unknown eventId (this should be considered an error) + bool RemoveFromWaitList(int eventId, SystemAddress address); + + /// Returns if a particular system is waiting on a particular event. + /// \param[in] eventId A user-defined identifier + /// \param[in] The address of the system we are checking up on + /// \return True if this system is waiting on this event, false otherwise. + bool IsInWaitList(int eventId, SystemAddress address); + + /// Returns the total number of systems we are waiting on for this event. + /// Does not include yourself + /// \param[in] eventId A user-defined identifier + /// \return The total number of systems we are waiting on for this event. + unsigned GetRemoteWaitListSize(int eventId) const; + + /// Returns the system address of a system at a particular index, for this event. + /// \param[in] eventId A user-defined identifier + /// \param[in] index Index into the array, from 0 to GetWaitListSize() + /// \return The system address of a system at a particular index, for this event. + SystemAddress GetFromWaitListAtIndex(int eventId, unsigned index) const; + + /// For a remote system, find out what their ready status is (waiting, signaled, complete). + /// \param[in] eventId A user-defined identifier + /// \param[in] address Which system we are checking up on + /// \return The status of this system, for this particular event. \sa ReadyEventSystemStatus + ReadyEventSystemStatus GetReadyStatus(int eventId, SystemAddress address); + + /// This channel will be used for all RakPeer::Send calls + /// \param[in] newChannel The channel to use for internal RakPeer::Send calls from this system. Defaults to 0. + void SetSendChannel(unsigned char newChannel); + + // ---------------------------- ALL INTERNAL AFTER HERE ---------------------------- + /// \internal + /// Status of a remote system + struct RemoteSystem + { + MessageID lastSentStatus, lastReceivedStatus; + SystemAddress systemAddress; + }; + static int RemoteSystemCompBySystemAddress( const SystemAddress &key, const RemoteSystem &data ); + /// \internal + /// An event, with a set of systems we are waiting for, a set of systems that are signaled, and a set of systems with completed events + struct ReadyEventNode + { + int eventId; // Sorted on this + MessageID eventStatus; + DataStructures::OrderedList systemList; + }; + static int ReadyEventNodeComp( const int &key, ReadyEvent::ReadyEventNode * const &data ); + + +protected: + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnRakPeerShutdown(void); + + void Clear(void); + /* + bool AnyWaitersCompleted(unsigned eventIndex) const; + bool AllWaitersCompleted(unsigned eventIndex) const; + bool AllWaitersReady(unsigned eventIndex) const; + void SendAllReady(unsigned eventId, SystemAddress address); + void BroadcastAllReady(unsigned eventIndex); + void SendReadyStateQuery(unsigned eventId, SystemAddress address); + void BroadcastReadyUpdate(unsigned eventIndex); + bool AddToWaitListInternal(unsigned eventIndex, SystemAddress address); + bool IsLocked(unsigned eventIndex) const; + bool IsAllReadyByIndex(unsigned eventIndex) const; + */ + + void SendReadyStateQuery(unsigned eventId, SystemAddress address); + void SendReadyUpdate(unsigned eventIndex, unsigned systemIndex, bool forceIfNotDefault); + void BroadcastReadyUpdate(unsigned eventIndex, bool forceIfNotDefault); + void RemoveFromAllLists(SystemAddress address); + void OnReadyEventQuery(Packet *packet); + void PushCompletionPacket(unsigned eventId); + bool AddToWaitListInternal(unsigned eventIndex, SystemAddress address); + void OnReadyEventForceAllSet(Packet *packet); + void OnReadyEventPacketUpdate(Packet *packet); + void UpdateReadyStatus(unsigned eventIndex); + bool IsEventCompletedByIndex(unsigned eventIndex) const; + unsigned CreateNewEvent(int eventId, bool isReady); + bool SetEventByIndex(int eventIndex, bool isReady); + + DataStructures::OrderedList readyEventNodeList; + unsigned char channel; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/RefCountedObj.h b/project/lib_projects/raknet/jni/RaknetSources/RefCountedObj.h new file mode 100755 index 0000000..221ec81 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/RefCountedObj.h @@ -0,0 +1,25 @@ +/// \file +/// \brief \b Reference counted object. Very simple class for quick and dirty uses. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __REF_COUNTED_OBJ_H +#define __REF_COUNTED_OBJ_H + +#include "RakMemoryOverride.h" + +/// World's simplest class :) +class RefCountedObj +{ + public: + RefCountedObj() {refCount=1;} + virtual ~RefCountedObj() {} + void AddRef(void) {refCount++;} + void Deref(void) {if (--refCount==0) RakNet::OP_DELETE(this, _FILE_AND_LINE_);} + int refCount; +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/ReliabilityLayer.cpp b/project/lib_projects/raknet/jni/RaknetSources/ReliabilityLayer.cpp new file mode 100755 index 0000000..3ac9cfa --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ReliabilityLayer.cpp @@ -0,0 +1,3827 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "ReliabilityLayer.h" +#include "GetTime.h" +#include "SocketLayer.h" +#include "PluginInterface2.h" +#include "RakAssert.h" +#include "Rand.h" +#include "MessageIdentifiers.h" +#ifdef USE_THREADED_SEND +#include "SendToThread.h" +#endif +#include + +using namespace RakNet; + +// Can't figure out which library has this function on the PS3 +double Ceil(double d) {if (((double)((int)d))==d) return d; return (int) (d+1.0);} + +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RELIABILITY_LAYER_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + + +//#define _DEBUG_LOGGER + +#if CC_TIME_TYPE_BYTES==4 +static const CCTimeType MAX_TIME_BETWEEN_PACKETS= 350; // 350 milliseconds +static const CCTimeType HISTOGRAM_RESTART_CYCLE=10000; // Every 10 seconds reset the histogram +#else +static const CCTimeType MAX_TIME_BETWEEN_PACKETS= 350000; // 350 milliseconds +//static const CCTimeType HISTOGRAM_RESTART_CYCLE=10000000; // Every 10 seconds reset the histogram +#endif +static const int DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE=512; +static const CCTimeType STARTING_TIME_BETWEEN_PACKETS=MAX_TIME_BETWEEN_PACKETS; +//static const long double TIME_BETWEEN_PACKETS_INCREASE_MULTIPLIER_DEFAULT=.02; +//static const long double TIME_BETWEEN_PACKETS_DECREASE_MULTIPLIER_DEFAULT=1.0 / 9.0; + +typedef uint32_t BitstreamLengthEncoding; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +//#define PRINT_TO_FILE_ROT +#ifdef PRINT_TO_FILE_ROT +static FILE *fp=0; +#endif + +BPSTracker::TimeAndValue2::TimeAndValue2() {} +BPSTracker::TimeAndValue2::~TimeAndValue2() {} +BPSTracker::TimeAndValue2::TimeAndValue2(RakNet::TimeUS t, uint64_t v1) : value1(v1), time(t) {} +//BPSTracker::TimeAndValue2::TimeAndValue2(RakNet::TimeUS t, uint64_t v1, uint64_t v2) : time(t), value1(v1), value2(v2) {} +BPSTracker::BPSTracker() {Reset(_FILE_AND_LINE_);} +BPSTracker::~BPSTracker() {} +//void BPSTracker::Reset(const char *file, unsigned int line) {total1=total2=lastSec1=lastSec2=0; dataQueue.Clear(file,line);} +void BPSTracker::Reset(const char *file, unsigned int line) {total1=lastSec1=0; dataQueue.Clear(file,line);} +//void BPSTracker::Push2(RakNetTimeUS time, uint64_t value1, uint64_t value2) {dataQueue.Push(TimeAndValue2(time,value1,value2),_FILE_AND_LINE_); total1+=value1; lastSec1+=value1; total2+=value2; lastSec2+=value2;} +//uint64_t BPSTracker::GetBPS2(RakNetTimeUS time) {ClearExpired2(time); return lastSec2;} +//void BPSTracker::GetBPS1And2(RakNetTimeUS time, uint64_t &out1, uint64_t &out2) {ClearExpired2(time); out1=lastSec1; out2=lastSec2;} +uint64_t BPSTracker::GetTotal1(void) const {return total1;} +//uint64_t BPSTracker::GetTotal2(void) const {return total2;} + +// void BPSTracker::ClearExpired2(RakNet::TimeUS time) { +// RakNet::TimeUS threshold=time; +// if (threshold < 1000000) +// return; +// threshold-=1000000; +// while (dataQueue.IsEmpty()==false && dataQueue.Peek().time < threshold) +// { +// lastSec1-=dataQueue.Peek().value1; +// lastSec2-=dataQueue.Peek().value2; +// dataQueue.Pop(); +// } +// } +void BPSTracker::ClearExpired1(RakNet::TimeUS time) +{ + while (dataQueue.IsEmpty()==false && +#if CC_TIME_TYPE_BYTES==8 + dataQueue.Peek().time+1000000 < time +#else + dataQueue.Peek().time+1000 < time +#endif + ) + { + lastSec1-=dataQueue.Peek().value1; + dataQueue.Pop(); + } +} + +struct DatagramHeaderFormat +{ +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + CCTimeType sourceSystemTime; +#endif + DatagramSequenceNumberType datagramNumber; + + // Use floats to save bandwidth + // float B; // Link capacity + float AS; // Data arrival rate + bool isACK; + bool isNAK; + bool isPacketPair; + bool hasBAndAS; + bool isContinuousSend; + bool needsBAndAs; + bool isValid; // To differentiate between what I serialized, and offline data + + static BitSize_t GetDataHeaderBitLength() + { + return BYTES_TO_BITS(GetDataHeaderByteLength()); + } + + static unsigned int GetDataHeaderByteLength() + { + //return 2 + 3 + sizeof(RakNet::TimeMS) + sizeof(float)*2; + return 2 + 3 + +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + sizeof(RakNetTimeMS) + +#endif + sizeof(float)*1; + } + + void Serialize(RakNet::BitStream *b) + { + // Not endian safe + // RakAssert(GetDataHeaderByteLength()==sizeof(DatagramHeaderFormat)); + // b->WriteAlignedBytes((const unsigned char*) this, sizeof(DatagramHeaderFormat)); + // return; + + b->Write(true); // IsValid + if (isACK) + { + b->Write(true); + b->Write(hasBAndAS); + b->AlignWriteToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMSLow=(RakNet::TimeMS) sourceSystemTime&0xFFFFFFFF; b->Write(timeMSLow); +#endif + if (hasBAndAS) + { + // b->Write(B); + b->Write(AS); + } + } + else if (isNAK) + { + b->Write(false); + b->Write(true); + } + else + { + b->Write(false); + b->Write(false); + b->Write(isPacketPair); + b->Write(isContinuousSend); + b->Write(needsBAndAs); + b->AlignWriteToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMSLow=(RakNet::TimeMS) sourceSystemTime&0xFFFFFFFF; b->Write(timeMSLow); +#endif + b->Write(datagramNumber); + } + } + void Deserialize(RakNet::BitStream *b) + { + // Not endian safe + // b->ReadAlignedBytes((unsigned char*) this, sizeof(DatagramHeaderFormat)); + // return; + + b->Read(isValid); + b->Read(isACK); + if (isACK) + { + isNAK=false; + isPacketPair=false; + b->Read(hasBAndAS); + b->AlignReadToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMS; b->Read(timeMS); sourceSystemTime=(CCTimeType) timeMS; +#endif + if (hasBAndAS) + { + // b->Read(B); + b->Read(AS); + } + } + else + { + b->Read(isNAK); + if (isNAK) + { + isPacketPair=false; + } + else + { + b->Read(isPacketPair); + b->Read(isContinuousSend); + b->Read(needsBAndAs); + b->AlignReadToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMS; b->Read(timeMS); sourceSystemTime=(CCTimeType) timeMS; +#endif + b->Read(datagramNumber); + } + } + } +}; + +#if !defined(__GNUC__) && !defined(__ARMCC) +#pragma warning(disable:4702) // unreachable code +#endif + +#ifdef _WIN32 +//#define _DEBUG_LOGGER +#ifdef _DEBUG_LOGGER +#include "WindowsIncludes.h" +#endif +#endif + +//#define DEBUG_SPLIT_PACKET_PROBLEMS +#if defined (DEBUG_SPLIT_PACKET_PROBLEMS) +static int waitFlag=-1; +#endif + +using namespace RakNet; + +int RakNet::SplitPacketChannelComp( SplitPacketIdType const &key, SplitPacketChannel* const &data ) +{ +#if PREALLOCATE_LARGE_MESSAGES==1 + if (key < data->returnedPacket->splitPacketId) + return -1; + if (key == data->returnedPacket->splitPacketId) + return 0; +#else + if (key < data->splitPacketList[0]->splitPacketId) + return -1; + if (key == data->splitPacketList[0]->splitPacketId) + return 0; +#endif + return 1; +} + +// DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS( InternalPacket, SplitPacketIndexType, splitPacketIndex ) +/* +bool operator<( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get() < cls->splitPacketIndex; +} +bool operator>( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get() > cls->splitPacketIndex; +} +bool operator==( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get() == cls->splitPacketIndex; +} +/// Semi-hack: This is necessary to call Sort() +bool operator<( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get()->splitPacketIndex < cls->splitPacketIndex; +} +bool operator>( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get()->splitPacketIndex > cls->splitPacketIndex; +} +bool operator==( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get()->splitPacketIndex == cls->splitPacketIndex; +} +*/ + +int SplitPacketIndexComp( SplitPacketIndexType const &key, InternalPacket* const &data ) +{ +if (key < data->splitPacketIndex) +return -1; +if (key == data->splitPacketIndex) +return 0; +return 1; +} + +//------------------------------------------------------------------------------------------------------- +// Constructor +//------------------------------------------------------------------------------------------------------- +// Add 21 to the default MTU so if we encrypt it can hold potentially 21 more bytes of extra data + padding. +ReliabilityLayer::ReliabilityLayer() +{ + +#ifdef _DEBUG + // Wait longer to disconnect in debug so I don't get disconnected while tracing + timeoutTime=30000; +#else + timeoutTime=10000; +#endif + +#ifdef _DEBUG + minExtraPing=extraPingVariance=0; + packetloss=(double) minExtraPing; +#endif + + +#ifdef PRINT_TO_FILE_ROT + if (fp==0 && 0) + { + fp = fopen("reliableorderedoutput.txt", "wt"); + } +#endif + + InitializeVariables(); +//int i = sizeof(InternalPacket); + datagramHistoryMessagePool.SetPageSize(sizeof(MessageNumberNode)*128); + internalPacketPool.SetPageSize(sizeof(InternalPacket)*INTERNAL_PACKET_PAGE_SIZE); + refCountedDataPool.SetPageSize(sizeof(InternalPacketRefCountedData)*32); +} + +//------------------------------------------------------------------------------------------------------- +// Destructor +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::~ReliabilityLayer() +{ + FreeMemory( true ); // Free all memory immediately +} +//------------------------------------------------------------------------------------------------------- +// Resets the layer for reuse +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::Reset( bool resetVariables, int MTUSize, bool _useSecurity ) +{ + + FreeMemory( true ); // true because making a memory reset pending in the update cycle causes resets after reconnects. Instead, just call Reset from a single thread + if (resetVariables) + { + InitializeVariables(); + +#if LIBCAT_SECURITY==1 + useSecurity = _useSecurity; + + if (_useSecurity) + MTUSize -= cat::AuthenticatedEncryption::OVERHEAD_BYTES; +#else + (void) _useSecurity; +#endif // LIBCAT_SECURITY + congestionManager.Init(RakNet::GetTimeUS(), MTUSize - UDP_HEADER_SIZE); + } +} + +//------------------------------------------------------------------------------------------------------- +// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable packet +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SetTimeoutTime( RakNet::TimeMS time ) +{ + timeoutTime=time; +} + +//------------------------------------------------------------------------------------------------------- +// Returns the value passed to SetTimeoutTime. or the default if it was never called +//------------------------------------------------------------------------------------------------------- +RakNet::TimeMS ReliabilityLayer::GetTimeoutTime(void) +{ + return timeoutTime; +} + +//------------------------------------------------------------------------------------------------------- +// Initialize the variables +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InitializeVariables( void ) +{ + memset( orderedWriteIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType)); + memset( sequencedWriteIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType) ); + memset( orderedReadIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType) ); + memset( highestSequencedReadIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType) ); + memset( &statistics, 0, sizeof( statistics ) ); + memset( &heapIndexOffsets, 0, sizeof( heapIndexOffsets ) ); + + statistics.connectionStartTime = RakNet::GetTimeUS(); + splitPacketId = 0; + elapsedTimeSinceLastUpdate=0; + throughputCapCountdown=0; + sendReliableMessageNumberIndex = 0; + internalOrderIndex=0; + timeToNextUnreliableCull=0; + unreliableLinkedListHead=0; + lastUpdateTime= RakNet::GetTimeUS(); + bandwidthExceededStatistic=false; + remoteSystemTime=0; + unreliableTimeout=0; + lastBpsClear=0; + + // Disable packet pairs + countdownToNextPacketPair=15; + + nextAllowedThroughputSample=0; + deadConnection = cheater = false; + timeOfLastContinualSend=0; + + // timeResendQueueNonEmpty = 0; + timeLastDatagramArrived=RakNet::GetTimeMS(); + // packetlossThisSample=false; + // backoffThisSample=0; + // packetlossThisSampleResendCount=0; + // lastPacketlossTime=0; + statistics.messagesInResendBuffer=0; + statistics.bytesInResendBuffer=0; + + receivedPacketsBaseIndex=0; + resetReceivedPackets=true; + receivePacketCount=0; + + // SetPing( 1000 ); + + timeBetweenPackets=STARTING_TIME_BETWEEN_PACKETS; + + ackPingIndex=0; + ackPingSum=(CCTimeType)0; + + nextSendTime=lastUpdateTime; + //nextLowestPingReset=(CCTimeType)0; + // continuousSend=false; + + // histogramStart=(CCTimeType)0; + // histogramBitsSent=0; + unacknowledgedBytes=0; + resendLinkedListHead=0; + totalUserDataBytesAcked=0; + + datagramHistoryPopCount=0; + + InitHeapWeights(); + for (int i=0; i < NUMBER_OF_PRIORITIES; i++) + { + statistics.messageInSendBuffer[i]=0; + statistics.bytesInSendBuffer[i]=0.0; + } + + for (int i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + bpsMetrics[i].Reset(_FILE_AND_LINE_); + } +} + +//------------------------------------------------------------------------------------------------------- +// Frees all allocated memory +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::FreeMemory( bool freeAllImmediately ) +{ + (void) freeAllImmediately; + FreeThreadSafeMemory(); +} + +void ReliabilityLayer::FreeThreadSafeMemory( void ) +{ + unsigned i,j; + InternalPacket *internalPacket; + + ClearPacketsAndDatagrams(); + + for (i=0; i < splitPacketChannelList.Size(); i++) + { + for (j=0; j < splitPacketChannelList[i]->splitPacketList.Size(); j++) + { + FreeInternalPacketData(splitPacketChannelList[i]->splitPacketList[j], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( splitPacketChannelList[i]->splitPacketList[j] ); + } +#if PREALLOCATE_LARGE_MESSAGES==1 + if (splitPacketChannelList[i]->returnedPacket) + { + FreeInternalPacketData(splitPacketChannelList[i]->returnedPacket, __FILE__, __LINE__ ); + ReleaseToInternalPacketPool( splitPacketChannelList[i]->returnedPacket ); + } +#endif + RakNet::OP_DELETE(splitPacketChannelList[i], __FILE__, __LINE__); + } + splitPacketChannelList.Clear(false, _FILE_AND_LINE_); + + while ( outputQueue.Size() > 0 ) + { + internalPacket = outputQueue.Pop(); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + } + + outputQueue.ClearAndForceAllocation( 32, _FILE_AND_LINE_ ); + + /* + for ( i = 0; i < orderingList.Size(); i++ ) + { + if ( orderingList[ i ] ) + { + DataStructures::LinkedList* theList = orderingList[ i ]; + + if ( theList ) + { + while ( theList->Size() ) + { + internalPacket = orderingList[ i ]->Pop(); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + } + + RakNet::OP_DELETE(theList, _FILE_AND_LINE_); + } + } + } + + orderingList.Clear(false, _FILE_AND_LINE_); + */ + + for (i=0; i < NUMBER_OF_ORDERED_STREAMS; i++) + { + for (j=0; j < orderingHeaps[i].Size(); j++) + { + FreeInternalPacketData(orderingHeaps[i][j], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( orderingHeaps[i][j] ); + } + orderingHeaps[i].Clear(true, _FILE_AND_LINE_); + } + + //resendList.ForEachData(DeleteInternalPacket); + // resendTree.Clear(_FILE_AND_LINE_); + memset(resendBuffer, 0, sizeof(resendBuffer)); + statistics.messagesInResendBuffer=0; + statistics.bytesInResendBuffer=0; + + if (resendLinkedListHead) + { + InternalPacket *prev; + InternalPacket *iter = resendLinkedListHead; + while (1) + { + if (iter->data) + FreeInternalPacketData(iter, _FILE_AND_LINE_ ); + prev=iter; + iter=iter->resendNext; + if (iter==resendLinkedListHead) + { + ReleaseToInternalPacketPool(prev); + break; + } + ReleaseToInternalPacketPool(prev); + } + resendLinkedListHead=0; + } + unacknowledgedBytes=0; + + // acknowlegements.Clear(_FILE_AND_LINE_); + + for ( j=0 ; j < outgoingPacketBuffer.Size(); j++ ) + { + if ( outgoingPacketBuffer[ j ]->data) + FreeInternalPacketData( outgoingPacketBuffer[ j ], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( outgoingPacketBuffer[ j ] ); + } + + outgoingPacketBuffer.Clear(true, _FILE_AND_LINE_); + +#ifdef _DEBUG + for (unsigned i = 0; i < delayList.Size(); i++ ) + RakNet::OP_DELETE(delayList[ i ], __FILE__, __LINE__); + delayList.Clear(__FILE__, __LINE__); +#endif + + unreliableWithAckReceiptHistory.Clear(false, _FILE_AND_LINE_); + + packetsToSendThisUpdate.Clear(false, _FILE_AND_LINE_); + packetsToSendThisUpdate.Preallocate(512, _FILE_AND_LINE_); + packetsToDeallocThisUpdate.Clear(false, _FILE_AND_LINE_); + packetsToDeallocThisUpdate.Preallocate(512, _FILE_AND_LINE_); + packetsToSendThisUpdateDatagramBoundaries.Clear(false, _FILE_AND_LINE_); + packetsToSendThisUpdateDatagramBoundaries.Preallocate(128, _FILE_AND_LINE_); + datagramSizesInBytes.Clear(false, _FILE_AND_LINE_); + datagramSizesInBytes.Preallocate(128, _FILE_AND_LINE_); + + internalPacketPool.Clear(_FILE_AND_LINE_); + + refCountedDataPool.Clear(_FILE_AND_LINE_); + + /* + DataStructures::Page *cur = datagramMessageIDTree.GetListHead(); + while (cur) + { + int treeIndex; + for (treeIndex=0; treeIndex < cur->size; treeIndex++) + ReleaseToDatagramMessageIDPool(cur->data[treeIndex]); + cur=cur->resendNext; + } + datagramMessageIDTree.Clear(_FILE_AND_LINE_); + datagramMessageIDPool.Clear(_FILE_AND_LINE_); + */ + + while (datagramHistory.Size()) + { + RemoveFromDatagramHistory(datagramHistoryPopCount); + datagramHistory.Pop(); + datagramHistoryPopCount++; + } + datagramHistoryMessagePool.Clear(_FILE_AND_LINE_); + datagramHistoryPopCount=0; + + acknowlegements.Clear(); + NAKs.Clear(); + + unreliableLinkedListHead=0; +} + +//------------------------------------------------------------------------------------------------------- +// Packets are read directly from the socket layer and skip the reliability +//layer because unconnected players do not use the reliability layer +// This function takes packet data after a player has been confirmed as +//connected. The game should not use that data directly +// because some data is used internally, such as packet acknowledgment and +//split packets +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::HandleSocketReceiveFromConnectedPlayer( + const char *buffer, unsigned int length, SystemAddress &systemAddress, DataStructures::List &messageHandlerList, int MTUSize, + SOCKET s, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType timeRead, + BitStream &updateBitStream) +{ +#ifdef _DEBUG + RakAssert( !( buffer == 0 ) ); +#endif + +#if CC_TIME_TYPE_BYTES==4 + timeRead/=1000; +#endif + + + bpsMetrics[(int) ACTUAL_BYTES_RECEIVED].Push1(timeRead,length); + + (void) MTUSize; + + if ( length <= 2 || buffer == 0 ) // Length of 1 is a connection request resend that we just ignore + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("length <= 2 || buffer == 0", BYTES_TO_BITS(length), systemAddress); + return true; + } + + timeLastDatagramArrived=RakNet::GetTimeMS(); + + // CCTimeType time; +// bool indexFound; +// int count, size; + DatagramSequenceNumberType holeCount; + unsigned i; + +#if LIBCAT_SECURITY==1 + if (useSecurity) + { + unsigned int received = length; + + if (!auth_enc.Decrypt((cat::u8*)buffer, received)) + return false; + + length = received; + } +#endif + + RakNet::BitStream socketData( (unsigned char*) buffer, length, false ); // Convert the incoming data to a bitstream for easy parsing + // time = RakNet::GetTimeUS(); + + // Set to the current time if it is not zero, and we get incoming data + // if (timeResendQueueNonEmpty!=0) + // timeResendQueueNonEmpty=timeRead; + + DatagramHeaderFormat dhf; + dhf.Deserialize(&socketData); + if (dhf.isValid==false) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("dhf.isValid==false", BYTES_TO_BITS(length), systemAddress); + + return true; + } + if (dhf.isACK) + { + DatagramSequenceNumberType datagramNumber; + // datagramNumber=dhf.datagramNumber; + +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMSLow=(RakNet::TimeMS) timeRead&0xFFFFFFFF; + CCTimeType rtt = timeMSLow-dhf.sourceSystemTime; +#if CC_TIME_TYPE_BYTES==4 + if (rtt > 10000) +#else + if (rtt > 10000000) +#endif + { + // Sanity check. This could happen due to type overflow, especially since I only send the low 4 bytes to reduce bandwidth + rtt=(CCTimeType) congestionManager.GetRTT(); + } + // RakAssert(rtt < 500000); + // printf("%i ", (RakNet::TimeMS)(rtt/1000)); + ackPing=rtt; +#endif + +#ifdef _DEBUG + if (dhf.hasBAndAS==false) + { + // dhf.B=0; + dhf.AS=0; + } +#endif + // congestionManager.OnAck(timeRead, rtt, dhf.hasBAndAS, dhf.B, dhf.AS, totalUserDataBytesAcked ); + + + incomingAcks.Clear(); + if (incomingAcks.Deserialize(&socketData)==false) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingAcks.Deserialize failed", BYTES_TO_BITS(length), systemAddress); + + return false; + } + for (i=0; iincomingAcks.ranges[i].maxIndex) + { + RakAssert(incomingAcks.ranges[i].minIndex<=incomingAcks.ranges[i].maxIndex); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingAcks minIndex > maxIndex", BYTES_TO_BITS(length), systemAddress); + return false; + } + for (datagramNumber=incomingAcks.ranges[i].minIndex; datagramNumber >= incomingAcks.ranges[i].minIndex && datagramNumber <= incomingAcks.ranges[i].maxIndex; datagramNumber++) + { + CCTimeType whenSent; + + if (unreliableWithAckReceiptHistory.Size()>0) + { + unsigned int k=0; + while (k < unreliableWithAckReceiptHistory.Size()) + { + if (unreliableWithAckReceiptHistory[k].datagramNumber == datagramNumber) + { + InternalPacket *ackReceipt = AllocateFromInternalPacketPool(); + AllocInternalPacketData(ackReceipt, 5, false, _FILE_AND_LINE_ ); + ackReceipt->dataBitLength=BYTES_TO_BITS(5); + ackReceipt->data[0]=(MessageID)ID_SND_RECEIPT_ACKED; + memcpy(ackReceipt->data+sizeof(MessageID), &unreliableWithAckReceiptHistory[k].sendReceiptSerial, sizeof(uint32_t)); + outputQueue.Push(ackReceipt, _FILE_AND_LINE_ ); + + // Remove, swap with last + unreliableWithAckReceiptHistory.RemoveAtIndex(k); + } + else + k++; + } + } + + MessageNumberNode *messageNumberNode = GetMessageNumberNodeByDatagramIndex(datagramNumber, &whenSent); + if (messageNumberNode) + { + // printf("%p Got ack for %i\n", this, datagramNumber.val); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + congestionManager.OnAck(timeRead, rtt, dhf.hasBAndAS, 0, dhf.AS, totalUserDataBytesAcked, bandwidthExceededStatistic, datagramNumber ); +#else + CCTimeType ping; + if (timeRead>whenSent) + ping=timeRead-whenSent; + else + ping=0; + congestionManager.OnAck(timeRead, ping, dhf.hasBAndAS, 0, dhf.AS, totalUserDataBytesAcked, bandwidthExceededStatistic, datagramNumber ); +#endif + while (messageNumberNode) + { + // TESTING1 +// printf("Remove %i on ack for datagramNumber=%i.\n", messageNumberNode->messageNumber.val, datagramNumber.val); + + RemovePacketFromResendListAndDeleteOlderReliableSequenced( messageNumberNode->messageNumber, timeRead, messageHandlerList, systemAddress ); + messageNumberNode=messageNumberNode->next; + } + + RemoveFromDatagramHistory(datagramNumber); + } +// else if (isReliable) +// { +// // Previously used slot, rather than empty unreliable slot +// printf("%p Ack %i is duplicate\n", this, datagramNumber.val); +// +// congestionManager.OnDuplicateAck(timeRead, datagramNumber); +// } + } + } + } + else if (dhf.isNAK) + { + DatagramSequenceNumberType messageNumber; + DataStructures::RangeList incomingNAKs; + if (incomingNAKs.Deserialize(&socketData)==false) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingNAKs.Deserialize failed", BYTES_TO_BITS(length), systemAddress); + + return false; + } + for (i=0; iincomingNAKs.ranges[i].maxIndex) + { + RakAssert(incomingNAKs.ranges[i].minIndex<=incomingNAKs.ranges[i].maxIndex); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingNAKs minIndex>maxIndex", BYTES_TO_BITS(length), systemAddress); + + return false; + } + // Sanity check + RakAssert(incomingNAKs.ranges[i].maxIndex.val-incomingNAKs.ranges[i].minIndex.val<1000); + for (messageNumber=incomingNAKs.ranges[i].minIndex; messageNumber >= incomingNAKs.ranges[i].minIndex && messageNumber <= incomingNAKs.ranges[i].maxIndex; messageNumber++) + { + congestionManager.OnNAK(timeRead, messageNumber); + + // REMOVEME + // printf("%p NAK %i\n", this, dhf.datagramNumber.val); + + + CCTimeType timeSent; + MessageNumberNode *messageNumberNode = GetMessageNumberNodeByDatagramIndex(messageNumber, &timeSent); + while (messageNumberNode) + { + // Update timers so resends occur immediately + InternalPacket *internalPacket = resendBuffer[messageNumberNode->messageNumber & (uint32_t) RESEND_BUFFER_ARRAY_MASK]; + if (internalPacket) + { + if (internalPacket->nextActionTime!=0) + { + internalPacket->nextActionTime=timeRead; + } + } + + messageNumberNode=messageNumberNode->next; + } + } + } + } + else + { + uint32_t skippedMessageCount; + if (!congestionManager.OnGotPacket(dhf.datagramNumber, dhf.isContinuousSend, timeRead, length, &skippedMessageCount)) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("congestionManager.OnGotPacket failed", BYTES_TO_BITS(length), systemAddress); + + return true; + } + if (dhf.isPacketPair) + congestionManager.OnGotPacketPair(dhf.datagramNumber, length, timeRead); + + DatagramHeaderFormat dhfNAK; + dhfNAK.isNAK=true; + uint32_t skippedMessageOffset; + for (skippedMessageOffset=skippedMessageCount; skippedMessageOffset > 0; skippedMessageOffset--) + { + NAKs.Insert(dhf.datagramNumber-skippedMessageOffset); + } + remoteSystemNeedsBAndAS=dhf.needsBAndAs; + + // Ack dhf.datagramNumber + // Ack even unreliable messages for congestion control, just don't resend them on no ack +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + SendAcknowledgementPacket( dhf.datagramNumber, dhf.sourceSystemTime); +#else + SendAcknowledgementPacket( dhf.datagramNumber, 0); +#endif + + InternalPacket* internalPacket = CreateInternalPacketFromBitStream( &socketData, timeRead ); + if (internalPacket==0) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("CreateInternalPacketFromBitStream failed", BYTES_TO_BITS(length), systemAddress); + + return true; + } + + while ( internalPacket ) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, receivePacketCount, systemAddress, timeRead, false); +#else + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, receivePacketCount, systemAddress, (RakNet::TimeMS)(timeRead/(CCTimeType)1000), false); +#endif + } + + { + + // resetReceivedPackets is set from a non-threadsafe function. + // We do the actual reset in this function so the data is not modified by multiple threads + if (resetReceivedPackets) + { + hasReceivedPacketQueue.ClearAndForceAllocation(DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE, _FILE_AND_LINE_); + receivedPacketsBaseIndex=0; + resetReceivedPackets=false; + } + + // Check for corrupt orderingChannel + if ( + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED + ) + { + if ( internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS", BYTES_TO_BITS(length), systemAddress); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + + // 8/12/09 was previously not checking if the message was reliable. However, on packetloss this would mean you'd eventually exceed the + // hole count because unreliable messages were never resent, and you'd stop getting messages + if (internalPacket->reliability == RELIABLE || internalPacket->reliability == RELIABLE_SEQUENCED || internalPacket->reliability == RELIABLE_ORDERED ) + { + // If the following conditional is true then this either a duplicate packet + // or an older out of order packet + // The subtraction unsigned overflow is intentional + holeCount = (DatagramSequenceNumberType)(internalPacket->reliableMessageNumber-receivedPacketsBaseIndex); + const DatagramSequenceNumberType typeRange = (DatagramSequenceNumberType)(const uint32_t)-1; + + // TESTING1 +// printf("waiting on reliableMessageNumber=%i holeCount=%i datagramNumber=%i\n", receivedPacketsBaseIndex.val, holeCount.val, dhf.datagramNumber.val); + + if (holeCount==(DatagramSequenceNumberType) 0) + { + // Got what we were expecting + if (hasReceivedPacketQueue.Size()) + hasReceivedPacketQueue.Pop(); + ++receivedPacketsBaseIndex; + } + else if (holeCount > typeRange/(DatagramSequenceNumberType) 2) + { + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Duplicate packet + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + else if ((unsigned int) holeCountdataBitLength)); + + // Duplicate packet + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + else // holeCount>=receivedPackets.Size() + { + if (holeCount > (DatagramSequenceNumberType) 1000000) + { + RakAssert("Hole count too high. See ReliabilityLayer.h" && 0); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("holeCount > 1000000", BYTES_TO_BITS(length), systemAddress); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Would crash due to out of memory! + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + + // Fix - sending on a higher priority gives us a very very high received packets base index if we formerly had pre-split a lot of messages and + // used that as the message number. Because of this, a lot of time is spent in this linear loop and the timeout time expires because not + // all of the message is sent in time. + // Fixed by late assigning message IDs on the sender + + // Add 0 times to the queue until (reliableMessageNumber - baseIndex) < queue size. + while ((unsigned int)(holeCount) > hasReceivedPacketQueue.Size()) + hasReceivedPacketQueue.Push(true, _FILE_AND_LINE_ ); // time+(CCTimeType)60 * (CCTimeType)1000 * (CCTimeType)1000); // Didn't get this packet - set the time to give up waiting + hasReceivedPacketQueue.Push(false, _FILE_AND_LINE_ ); // Got the packet +#ifdef _DEBUG + // If this assert hits then DatagramSequenceNumberType has overflowed + RakAssert(hasReceivedPacketQueue.Size() < (unsigned int)((DatagramSequenceNumberType)(const uint32_t)(-1))); +#endif + } + + while ( hasReceivedPacketQueue.Size()>0 && hasReceivedPacketQueue.Peek()==false ) + { + hasReceivedPacketQueue.Pop(); + ++receivedPacketsBaseIndex; + } + } + + // If the allocated buffer is > DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE and it is 3x greater than the number of elements actually being used + if (hasReceivedPacketQueue.AllocationSize() > (unsigned int) DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE && hasReceivedPacketQueue.AllocationSize() > hasReceivedPacketQueue.Size() * 3) + hasReceivedPacketQueue.Compress(_FILE_AND_LINE_); + + + /* + if ( internalPacket->reliability == RELIABLE_SEQUENCED || internalPacket->reliability == UNRELIABLE_SEQUENCED ) + { +#ifdef _DEBUG + RakAssert( internalPacket->orderingChannel < NUMBER_OF_ORDERED_STREAMS ); +#endif + + if ( internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + { + + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS", BYTES_TO_BITS(length), systemAddress); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + if ( IsOlderOrderedPacket( internalPacket->orderingIndex, waitingForSequencedPacketReadIndex[ internalPacket->orderingChannel ] ) == false ) + { + // Is this a split packet? + if ( internalPacket->splitPacketCount > 0 ) + { + // Generate the split + // Verify some parameters to make sure we don't get junk data + + + // Check for a rebuilt packet + InsertIntoSplitPacketList( internalPacket, timeRead ); + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Sequenced + internalPacket = BuildPacketFromSplitPacketList( internalPacket->splitPacketId, timeRead, + s, systemAddress, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions); + + if ( internalPacket ) + { + // Update our index to the newest packet + waitingForSequencedPacketReadIndex[ internalPacket->orderingChannel ] = internalPacket->orderingIndex + (OrderingIndexType)1; + + // If there is a rebuilt packet, add it to the output queue + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + internalPacket = 0; + } + + // else don't have all the parts yet + } + else + { + // Update our index to the newest packet + waitingForSequencedPacketReadIndex[ internalPacket->orderingChannel ] = internalPacket->orderingIndex + (OrderingIndexType)1; + + // Not a split packet. Add the packet to the output queue + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + internalPacket = 0; + } + } + else + { + // Older sequenced packet. Discard it + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + } + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + // Is this an unsequenced split packet? + if ( internalPacket->splitPacketCount > 0 ) + { + // Check for a rebuilt packet + if ( internalPacket->reliability != RELIABLE_ORDERED ) + internalPacket->orderingChannel = 255; // Use 255 to designate not sequenced and not ordered + + InsertIntoSplitPacketList( internalPacket, timeRead ); + + internalPacket = BuildPacketFromSplitPacketList( internalPacket->splitPacketId, timeRead, + s, systemAddress, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions); + + if ( internalPacket == 0 ) + { + + // Don't have all the parts yet + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + */ + + /* + if ( internalPacket->reliability == RELIABLE_ORDERED ) + { +#ifdef _DEBUG + RakAssert( internalPacket->orderingChannel < NUMBER_OF_ORDERED_STREAMS ); +#endif + + if ( internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + { + // Invalid packet + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + if ( waitingForOrderedPacketReadIndex[ internalPacket->orderingChannel ] == internalPacket->orderingIndex ) + { + // Get the list to hold ordered packets for this stream + DataStructures::LinkedList *orderingListAtOrderingStream; + unsigned char orderingChannelCopy = internalPacket->orderingChannel; + + // Push the packet for the user to read + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + internalPacket = 0; // Don't reference this any longer since other threads access it + + // Wait for the resendNext ordered packet in sequence + waitingForOrderedPacketReadIndex[ orderingChannelCopy ] ++; // This wraps + + orderingListAtOrderingStream = GetOrderingListAtOrderingStream( orderingChannelCopy ); + + if ( orderingListAtOrderingStream != 0) + { + while ( orderingListAtOrderingStream->Size() > 0 ) + { + // Cycle through the list until nothing is found + orderingListAtOrderingStream->Beginning(); + indexFound=false; + size=orderingListAtOrderingStream->Size(); + count=0; + + while (count++ < size) + { + if ( orderingListAtOrderingStream->Peek()->orderingIndex == waitingForOrderedPacketReadIndex[ orderingChannelCopy ] ) + { + outputQueue.Push( orderingListAtOrderingStream->Pop(), _FILE_AND_LINE_ ); + waitingForOrderedPacketReadIndex[ orderingChannelCopy ]++; + indexFound=true; + } + else + (*orderingListAtOrderingStream)++; + } + + if (indexFound==false) + break; + } + } + internalPacket = 0; + } + else + { + // This is a newer ordered packet than we are waiting for. Store it for future use + AddToOrderingList( internalPacket ); + } + + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + */ + + // Is this a split packet? If so then reassemble + if ( internalPacket->splitPacketCount > 0 ) + { + // Check for a rebuilt packet + if ( internalPacket->reliability != RELIABLE_ORDERED && internalPacket->reliability!=RELIABLE_SEQUENCED && internalPacket->reliability!=UNRELIABLE_SEQUENCED) + internalPacket->orderingChannel = 255; // Use 255 to designate not sequenced and not ordered + + InsertIntoSplitPacketList( internalPacket, timeRead ); + + internalPacket = BuildPacketFromSplitPacketList( internalPacket->splitPacketId, timeRead, + s, systemAddress, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, updateBitStream); + + if ( internalPacket == 0 ) + { + // Don't have all the parts yet + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + + if (internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED) + { +#ifdef PRINT_TO_FILE_ROT + // ___________________ + BitStream bitStream(internalPacket->data, BITS_TO_BYTES(internalPacket->dataBitLength), false); + unsigned int receivedPacketNumber; + RakNet::Time receivedTime; + unsigned char streamNumber; + PacketReliability reliability; + // ___________________ + + + bitStream.IgnoreBits(8); // Ignore ID_TIMESTAMP + bitStream.Read(receivedTime); + bitStream.IgnoreBits(8); // Ignore ID_USER_ENUM+1 + bitStream.Read(receivedPacketNumber); + bitStream.Read(streamNumber); + bitStream.Read(reliability); + char *type="UNDEFINED"; + if (reliability==UNRELIABLE_SEQUENCED) + type="UNRELIABLE_SEQUENCED"; + else if (reliability==RELIABLE_ORDERED) + type="RELIABLE_ORDERED"; + // ___________________ +#endif + + + if (internalPacket->orderingIndex==orderedReadIndex[internalPacket->orderingChannel]) + { + // Has current ordering index + if (internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED) + { + // Is sequenced + if (IsOlderOrderedPacket(internalPacket->sequencingIndex,highestSequencedReadIndex[internalPacket->orderingChannel])==false) + { + // Expected or highest known value + + // Update highest sequence + highestSequencedReadIndex[internalPacket->orderingChannel] = internalPacket->sequencingIndex; + +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "Returning %i, %s by fallthrough. OI=%i. SI=%i.\n", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + // Fallthrough, returned to user below + } + else + { +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "Discarding %i, %s late sequenced. OI=%i. SI=%i.\n", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + // Lower than highest known value + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + else + { + // Push to output buffer immediately + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "outputting immediate %i, %s. OI=%i. SI=%i.", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + if (orderingHeaps[internalPacket->orderingChannel].Size()==0) + fprintf(fp, "heap empty\n"); + else + fprintf(fp, "heap head=%i\n", orderingHeaps[internalPacket->orderingChannel].Peek()->orderingIndex.val); + fflush(fp); + } +#endif + + orderedReadIndex[internalPacket->orderingChannel]++; + highestSequencedReadIndex[internalPacket->orderingChannel] = 0; + + // Return off heap until order lost + while (orderingHeaps[internalPacket->orderingChannel].Size()>0 && + orderingHeaps[internalPacket->orderingChannel].Peek()->orderingIndex==orderedReadIndex[internalPacket->orderingChannel]) + { + internalPacket = orderingHeaps[internalPacket->orderingChannel].Pop(0); + +#ifdef PRINT_TO_FILE_ROT + BitStream bitStream2(internalPacket->data, BITS_TO_BYTES(internalPacket->dataBitLength), false); + bitStream2.IgnoreBits(8); // Ignore ID_TIMESTAMP + bitStream2.Read(receivedTime); + bitStream2.IgnoreBits(8); // Ignore ID_USER_ENUM+1 + bitStream2.Read(receivedPacketNumber); + bitStream2.Read(streamNumber); + bitStream2.Read(reliability); + char *type="UNDEFINED"; + if (reliability==UNRELIABLE_SEQUENCED) + type="UNRELIABLE_SEQUENCED"; + else if (reliability==RELIABLE_ORDERED) + type="RELIABLE_ORDERED"; + + if (fp) + { + fprintf(fp, "Heap pop %i, %s. OI=%i. SI=%i.\n", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + + if (internalPacket->reliability == RELIABLE_ORDERED) + { + orderedReadIndex[internalPacket->orderingChannel]++; + } + else + { + highestSequencedReadIndex[internalPacket->orderingChannel] = internalPacket->sequencingIndex; + } + } + + // Done + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + else if (IsOlderOrderedPacket(internalPacket->orderingIndex,orderedReadIndex[internalPacket->orderingChannel])==false) + { + // internalPacket->_orderingIndex is greater + // If a message has a greater ordering index, and is sequenced or ordered, buffer it + // Sequenced has a lower heap weight, ordered has max sequenced weight + + // Keep orderedHoleCount count small + if (orderingHeaps[internalPacket->orderingChannel].Size()==0) + heapIndexOffsets[internalPacket->orderingChannel]=orderedReadIndex[internalPacket->orderingChannel]; + + reliabilityHeapWeightType orderedHoleCount = internalPacket->orderingIndex-heapIndexOffsets[internalPacket->orderingChannel]; + reliabilityHeapWeightType weight = orderedHoleCount*1048576; + if (internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED) + weight+=internalPacket->sequencingIndex; + else + weight+=(1048576-1); + orderingHeaps[internalPacket->orderingChannel].Push(weight, internalPacket, _FILE_AND_LINE_); + +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "Heap push %i, %s, weight=%llu. OI=%i. waiting on %i. SI=%i.\n", receivedPacketNumber, type, weight, internalPacket->orderingIndex.val, orderedReadIndex[internalPacket->orderingChannel].val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + // Buffered, nothing to do + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + else + { + // Out of order + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + // Ignored, nothing to do + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + } + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Nothing special about this packet. Add it to the output queue + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + + internalPacket = 0; + } + + // Used for a goto to jump to the resendNext packet immediately + +CONTINUE_SOCKET_DATA_PARSE_LOOP: + // Parse the bitstream to create an internal packet + internalPacket = CreateInternalPacketFromBitStream( &socketData, timeRead ); + } + + } + + + receivePacketCount++; + + return true; +} + +//------------------------------------------------------------------------------------------------------- +// This gets an end-user packet already parsed out. Returns number of BITS put into the buffer +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::Receive( unsigned char **data ) +{ + InternalPacket * internalPacket; + + if ( outputQueue.Size() > 0 ) + { + // #ifdef _DEBUG + // RakAssert(bitStream->GetNumberOfBitsUsed()==0); + // #endif + internalPacket = outputQueue.Pop(); + + BitSize_t bitLength; + *data = internalPacket->data; + bitLength = internalPacket->dataBitLength; + ReleaseToInternalPacketPool( internalPacket ); + return bitLength; + } + + else + { + return 0; + } + +} + +//------------------------------------------------------------------------------------------------------- +// Puts data on the send queue +// bitStream contains the data to send +// priority is what priority to send the data at +// reliability is what reliability to use +// ordering channel is from 0 to 255 and specifies what stream to use +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::Send( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, unsigned char orderingChannel, bool makeDataCopy, int MTUSize, CCTimeType currentTime, uint32_t receipt ) +{ +#ifdef _DEBUG + RakAssert( !( reliability >= NUMBER_OF_RELIABILITIES || reliability < 0 ) ); + RakAssert( !( priority > NUMBER_OF_PRIORITIES || priority < 0 ) ); + RakAssert( !( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) ); + RakAssert( numberOfBitsToSend > 0 ); +#endif + +#if CC_TIME_TYPE_BYTES==4 + currentTime/=1000; +#endif + + (void) MTUSize; + + // int a = BITS_TO_BYTES(numberOfBitsToSend); + + // Fix any bad parameters + if ( reliability > RELIABLE_ORDERED_WITH_ACK_RECEIPT || reliability < 0 ) + reliability = RELIABLE; + + if ( priority > NUMBER_OF_PRIORITIES || priority < 0 ) + priority = HIGH_PRIORITY; + + if ( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + orderingChannel = 0; + + unsigned int numberOfBytesToSend=(unsigned int) BITS_TO_BYTES(numberOfBitsToSend); + if ( numberOfBitsToSend == 0 ) + { + return false; + } + InternalPacket * internalPacket = AllocateFromInternalPacketPool(); + if (internalPacket==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return false; // Out of memory + } + + bpsMetrics[(int) USER_MESSAGE_BYTES_PUSHED].Push1(currentTime,numberOfBytesToSend); + + internalPacket->creationTime = currentTime; + + if ( makeDataCopy ) + { + AllocInternalPacketData(internalPacket, numberOfBytesToSend, true, _FILE_AND_LINE_ ); + //internalPacket->data = (unsigned char*) rakMalloc_Ex( numberOfBytesToSend, _FILE_AND_LINE_ ); + memcpy( internalPacket->data, data, numberOfBytesToSend ); + } + else + { + // Allocated the data elsewhere, delete it in here + //internalPacket->data = ( unsigned char* ) data; + AllocInternalPacketData(internalPacket, (unsigned char*) data ); + } + + internalPacket->dataBitLength = numberOfBitsToSend; + internalPacket->messageInternalOrder = internalOrderIndex++; + internalPacket->priority = priority; + internalPacket->reliability = reliability; + internalPacket->sendReceiptSerial=receipt; + + // Calculate if I need to split the packet + // int headerLength = BITS_TO_BYTES( GetMessageHeaderLengthBits( internalPacket, true ) ); + + unsigned int maxDataSizeBytes = GetMaxDatagramSizeExcludingMessageHeaderBytes() - BITS_TO_BYTES(GetMaxMessageHeaderLengthBits()); + + bool splitPacket = numberOfBytesToSend > maxDataSizeBytes; + + // If a split packet, we might have to upgrade the reliability + if ( splitPacket ) + { + // Split packets cannot be unreliable, in case that one part doesn't arrive and the whole cannot be reassembled. + // One part could not arrive either due to packetloss or due to unreliable discard + if (internalPacket->reliability==UNRELIABLE) + internalPacket->reliability=RELIABLE; + else if (internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT) + internalPacket->reliability=RELIABLE_WITH_ACK_RECEIPT; + else if (internalPacket->reliability==UNRELIABLE_SEQUENCED) + internalPacket->reliability=RELIABLE_SEQUENCED; +// else if (internalPacket->reliability==UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT) +// internalPacket->reliability=RELIABLE_SEQUENCED_WITH_ACK_RECEIPT; + } + + // ++sendMessageNumberIndex; + + if ( internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED +// || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// internalPacket->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + // Assign the sequence stream and index + internalPacket->orderingChannel = orderingChannel; + internalPacket->orderingIndex = orderedWriteIndex[ orderingChannel ]; + internalPacket->sequencingIndex = sequencedWriteIndex[ orderingChannel ]++; + + // This packet supersedes all other sequenced packets on the same ordering channel + // Delete all packets in all send lists that are sequenced and on the same ordering channel + // UPDATE: + // Disabled. We don't have enough info to consistently do this. Sometimes newer data does supercede + // older data such as with constantly declining health, but not in all cases. + // For example, with sequenced unreliable sound packets just because you send a newer one doesn't mean you + // don't need the older ones because the odds are they will still arrive in order + /* + for (int i=0; i < NUMBER_OF_PRIORITIES; i++) + { + DeleteSequencedPacketsInList(orderingChannel, sendQueue[i]); + } + */ + } + else if ( internalPacket->reliability == RELIABLE_ORDERED || internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT ) + { + // Assign the ordering channel and index + internalPacket->orderingChannel = orderingChannel; + internalPacket->orderingIndex = orderedWriteIndex[ orderingChannel ] ++; + sequencedWriteIndex[ orderingChannel ]=0; + } + + if ( splitPacket ) // If it uses a secure header it will be generated here + { + // Must split the packet. This will also generate the SHA1 if it is required. It also adds it to the send list. + //InternalPacket packetCopy; + //memcpy(&packetCopy, internalPacket, sizeof(InternalPacket)); + //sendPacketSet[priority].CancelWriteLock(internalPacket); + //SplitPacket( &packetCopy, MTUSize ); + SplitPacket( internalPacket ); + //RakNet::OP_DELETE_ARRAY(packetCopy.data, _FILE_AND_LINE_); + return true; + } + + RakAssert(internalPacket->dataBitLengthdataBitLengthmessageNumberAssigned==false); + outgoingPacketBuffer.Push( GetNextWeight(internalPacket->priority), internalPacket, _FILE_AND_LINE_ ); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthpriority]++; + statistics.bytesInSendBuffer[(int)internalPacket->priority]+=(double) BITS_TO_BYTES(internalPacket->dataBitLength); + + // sendPacketSet[priority].WriteUnlock(); + return true; +} +//------------------------------------------------------------------------------------------------------- +// Run this once per game cycle. Handles internal lists and actually does the send +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::Update( SOCKET s, SystemAddress &systemAddress, int MTUSize, CCTimeType time, + unsigned bitsPerSecondLimit, + DataStructures::List &messageHandlerList, + RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, + BitStream &updateBitStream) + +{ + (void) MTUSize; + + RakNet::TimeMS timeMs; +#if CC_TIME_TYPE_BYTES==4 + time/=1000; + timeMs=time; +#else + timeMs=(RakNet::TimeMS) (time/(CCTimeType)1000); +#endif + +#ifdef _DEBUG + while (delayList.Size()) + { + if (delayList.Peek()->sendTime <= timeMs) + { + DataAndTime *dat = delayList.Pop(); + SocketLayer::SendTo( dat->s, dat->data, dat->length, systemAddress, dat->remotePortRakNetWasStartedOn_PS3, dat->extraSocketOptions, __FILE__, __LINE__ ); + RakNet::OP_DELETE(dat,__FILE__,__LINE__); + } + break; + } +#endif + + // This line is necessary because the timer isn't accurate + if (time <= lastUpdateTime) + { + // Always set the last time in case of overflow + lastUpdateTime=time; + return; + } + + CCTimeType timeSinceLastTick = time - lastUpdateTime; + lastUpdateTime=time; +#if CC_TIME_TYPE_BYTES==4 + if (timeSinceLastTick>100) + timeSinceLastTick=100; +#else + if (timeSinceLastTick>100000) + timeSinceLastTick=100000; +#endif + + if (unreliableTimeout>0) + { + if (timeSinceLastTick>=timeToNextUnreliableCull) + { + if (unreliableLinkedListHead) + { + // Cull out all unreliable messages that have exceeded the timeout + InternalPacket *cur = unreliableLinkedListHead; + InternalPacket *end = unreliableLinkedListHead->unreliablePrev; + while (1) + { + if (time > cur->creationTime+(CCTimeType)unreliableTimeout) + { + // Flag invalid, and clear the memory. Still needs to be removed from the sendPacketSet later + // This fixes a problem where a remote system disconnects, but we don't know it yet, and memory consumption increases to a huge value + FreeInternalPacketData(cur, _FILE_AND_LINE_ ); + cur->data=0; + InternalPacket *next = cur->unreliableNext; + RemoveFromUnreliableLinkedList(cur); + + if (cur==end) + break; + + cur=next; + } + else + { + // if (cur==end) + // break; + // + // cur=cur->unreliableNext; + + // They should be inserted in-order, so no need to iterate past the first failure + break; + } + } + } + + timeToNextUnreliableCull=unreliableTimeout/(CCTimeType)2; + } + else + { + timeToNextUnreliableCull-=timeSinceLastTick; + } + } + + + // Due to thread vagarities and the way I store the time to avoid slow calls to RakNet::GetTime + // time may be less than lastAck +#if CC_TIME_TYPE_BYTES==4 + if ( statistics.messagesInResendBuffer!=0 && AckTimeout(time) ) +#else + if ( statistics.messagesInResendBuffer!=0 && AckTimeout(RakNet::TimeMS(time/(CCTimeType)1000)) ) +#endif + { + // SHOW - dead connection + // We've waited a very long time for a reliable packet to get an ack and it never has + deadConnection = true; + return; + } + + if (congestionManager.ShouldSendACKs(time,timeSinceLastTick)) + { + SendACKs(s, systemAddress, time, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, updateBitStream); + } + + if (NAKs.Size()>0) + { + updateBitStream.Reset(); + DatagramHeaderFormat dhfNAK; + dhfNAK.isNAK=true; + dhfNAK.isACK=false; + dhfNAK.isPacketPair=false; + dhfNAK.Serialize(&updateBitStream); + NAKs.Serialize(&updateBitStream, GetMaxDatagramSizeExcludingMessageHeaderBits(), true); + SendBitStream( s, systemAddress, &updateBitStream, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, time ); + } + + DatagramHeaderFormat dhf; + dhf.needsBAndAs=congestionManager.GetIsInSlowStart(); + dhf.isContinuousSend=bandwidthExceededStatistic; + // bandwidthExceededStatistic=sendPacketSet[0].IsEmpty()==false || + // sendPacketSet[1].IsEmpty()==false || + // sendPacketSet[2].IsEmpty()==false || + // sendPacketSet[3].IsEmpty()==false; + bandwidthExceededStatistic=outgoingPacketBuffer.Size()>0; + + const bool hasDataToSendOrResend = IsResendQueueEmpty()==false || bandwidthExceededStatistic; + RakAssert(NUMBER_OF_PRIORITIES==4); + congestionManager.Update(time, hasDataToSendOrResend); + + statistics.BPSLimitByOutgoingBandwidthLimit = BITS_TO_BYTES(bitsPerSecondLimit); + statistics.BPSLimitByCongestionControl = congestionManager.GetBytesPerSecondLimitByCongestionControl(); + + unsigned int i; + if (time > lastBpsClear+ +#if CC_TIME_TYPE_BYTES==4 + 100 +#else + 100000 +#endif + ) + { + for (i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + bpsMetrics[i].ClearExpired1(time); + } + + lastBpsClear=time; + } + + if (unreliableWithAckReceiptHistory.Size()>0) + { + i=0; + while (i < unreliableWithAckReceiptHistory.Size()) + { + if (unreliableWithAckReceiptHistory[i].nextActionTime < time) + { + InternalPacket *ackReceipt = AllocateFromInternalPacketPool(); + AllocInternalPacketData(ackReceipt, 5, false, _FILE_AND_LINE_ ); + ackReceipt->dataBitLength=BYTES_TO_BITS(5); + ackReceipt->data[0]=(MessageID)ID_SND_RECEIPT_LOSS; + memcpy(ackReceipt->data+sizeof(MessageID), &unreliableWithAckReceiptHistory[i].sendReceiptSerial, sizeof(uint32_t)); + outputQueue.Push(ackReceipt, _FILE_AND_LINE_ ); + + // Remove, swap with last + unreliableWithAckReceiptHistory.RemoveAtIndex(i); + } + else + i++; + } + } + + if (hasDataToSendOrResend==true) + { + InternalPacket *internalPacket; + // bool forceSend=false; + bool pushedAnything; + BitSize_t nextPacketBitLength; + dhf.isACK=false; + dhf.isNAK=false; + dhf.hasBAndAS=false; + ResetPacketsAndDatagrams(); + + int transmissionBandwidth = congestionManager.GetTransmissionBandwidth(time, timeSinceLastTick, unacknowledgedBytes,dhf.isContinuousSend); + int retransmissionBandwidth = congestionManager.GetRetransmissionBandwidth(time, timeSinceLastTick, unacknowledgedBytes,dhf.isContinuousSend); + if (retransmissionBandwidth>0 || transmissionBandwidth>0) + { + statistics.isLimitedByCongestionControl=false; + + allDatagramSizesSoFar=0; + + // Keep filling datagrams until we exceed retransmission bandwidth + while ((int)BITS_TO_BYTES(allDatagramSizesSoFar)messageNumberAssigned==true); + + if ( internalPacket->nextActionTime < time ) + { + nextPacketBitLength = internalPacket->headerLength + internalPacket->dataBitLength; + if ( datagramSizeSoFar + nextPacketBitLength > GetMaxDatagramSizeExcludingMessageHeaderBits() ) + { + // Gathers all PushPackets() + PushDatagram(); + break; + } + + PopListHead(false); + + CC_DEBUG_PRINTF_2("Rs %i ", internalPacket->reliableMessageNumber.val); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RESENT].Push1(time,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Testing1 +// if (internalPacket->reliability==RELIABLE_ORDERED || internalPacket->reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT) +// printf("RESEND reliableMessageNumber %i with datagram %i\n", internalPacket->reliableMessageNumber.val, congestionManager.GetNextDatagramSequenceNumber().val); + + PushPacket(time,internalPacket,true); // Affects GetNewTransmissionBandwidth() +// internalPacket->timesSent++; + internalPacket->nextActionTime = congestionManager.GetRTOForRetransmission()+time; +#if CC_TIME_TYPE_BYTES==4 + if (internalPacket->nextActionTime-time > 10000) +#else + if (internalPacket->nextActionTime-time > 10000000) +#endif + { + // int a=5; + RakAssert(0); + } + + congestionManager.OnResend(time); + + pushedAnything=true; + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS) time, true); +#else + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS)(time/(CCTimeType)1000), true); +#endif + } + + // Put the packet back into the resend list at the correct spot + // Don't make a copy since I'm reinserting an allocated struct + InsertPacketIntoResendList( internalPacket, time, false, false ); + + // Removeme + // printf("Resend:%i ", internalPacket->reliableMessageNumber); + } + else + { + // Filled one datagram. + // If the 2nd and it's time to send a datagram pair, will be marked as a pair + PushDatagram(); + break; + } + } + + if (pushedAnything==false) + break; + } + } + else + { + statistics.isLimitedByCongestionControl=true; + } + + if ((int)BITS_TO_BYTES(allDatagramSizesSoFar)messageNumberAssigned==false); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthdata==0) + { + //sendPacketSet[ i ].Pop(); + outgoingPacketBuffer.Pop(0); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthpriority]--; + statistics.bytesInSendBuffer[(int)internalPacket->priority]-=(double) BITS_TO_BYTES(internalPacket->dataBitLength); + ReleaseToInternalPacketPool( internalPacket ); + continue; + } + + internalPacket->headerLength=GetMessageHeaderLengthBits(internalPacket); + nextPacketBitLength = internalPacket->headerLength + internalPacket->dataBitLength; + if ( datagramSizeSoFar + nextPacketBitLength > GetMaxDatagramSizeExcludingMessageHeaderBits() ) + { + // Hit MTU. May still push packets if smaller ones exist at a lower priority + RakAssert(datagramSizeSoFar!=0); + RakAssert(internalPacket->dataBitLengthreliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + isReliable = true; + else + isReliable = false; + + //sendPacketSet[ i ].Pop(); + outgoingPacketBuffer.Pop(0); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthmessageNumberAssigned==false); + statistics.messageInSendBuffer[(int)internalPacket->priority]--; + statistics.bytesInSendBuffer[(int)internalPacket->priority]-=(double) BITS_TO_BYTES(internalPacket->dataBitLength); + if (isReliable + /* + I thought about this and agree that UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT and RELIABLE_SEQUENCED_WITH_ACK_RECEIPT is not useful unless you also know if the message was discarded. + + The problem is that internally, message numbers are only assigned to reliable messages, because message numbers are only used to discard duplicate message receipt and only reliable messages get sent more than once. However, without message numbers getting assigned and transmitted, there is no way to tell the sender about which messages were discarded. In fact, in looking this over I realized that UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT introduced a bug, because the remote system assumes all message numbers are used (no holes). With that send type, on packetloss, a permanent hole would have been created which eventually would cause the system to discard all further packets. + + So I have two options. Either do not support ack receipts when sending sequenced, or write complex and major new systems. UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT would need to send the message ID number on a special channel which allows for non-delivery. And both of them would need to have a special range list to indicate which message numbers were not delivered, so when acks are sent that can be indicated as well. A further problem is that the ack itself can be lost - it is possible that the message can arrive but be discarded, yet the ack is lost. On resend, the resent message would be ignored as duplicate, and you'd never get the discard message either (unless I made a special buffer for that case too). +*/ +// || + // If needs an ack receipt, keep the internal packet around in the list +// internalPacket->reliability == UNRELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + internalPacket->messageNumberAssigned=true; + internalPacket->reliableMessageNumber=sendReliableMessageNumberIndex; + internalPacket->nextActionTime = congestionManager.GetRTOForRetransmission()+time; +#if CC_TIME_TYPE_BYTES==4 + const CCTimeType threshhold = 10000; +#else + const CCTimeType threshhold = 10000000; +#endif + if (internalPacket->nextActionTime-time > threshhold) + { + // int a=5; + RakAssert(time-internalPacket->nextActionTime < threshhold); + } + //resendTree.Insert( internalPacket->reliableMessageNumber, internalPacket); + if (resendBuffer[internalPacket->reliableMessageNumber & (uint32_t) RESEND_BUFFER_ARRAY_MASK]!=0) + { + // bool overflow = ResendBufferOverflow(); + RakAssert(0); + } + resendBuffer[internalPacket->reliableMessageNumber & (uint32_t) RESEND_BUFFER_ARRAY_MASK] = internalPacket; + statistics.messagesInResendBuffer++; + statistics.bytesInResendBuffer+=BITS_TO_BYTES(internalPacket->dataBitLength); + + // printf("pre:%i ", unacknowledgedBytes); + + InsertPacketIntoResendList( internalPacket, time, true, isReliable); + + + // printf("post:%i ", unacknowledgedBytes); + sendReliableMessageNumberIndex++; + } + else if (internalPacket->reliability == UNRELIABLE_WITH_ACK_RECEIPT) + { + unreliableWithAckReceiptHistory.Push(UnreliableWithAckReceiptNode( + congestionManager.GetNextDatagramSequenceNumber() + packetsToSendThisUpdateDatagramBoundaries.Size(), + internalPacket->sendReceiptSerial, + congestionManager.GetRTOForRetransmission()+time + ), _FILE_AND_LINE_); + } + +// internalPacket->timesSent=1; + // If isReliable is false, the packet and its contents will be added to a list to be freed in ClearPacketsAndDatagrams + // However, the internalPacket structure will remain allocated and be in the resendBuffer list if it requires a receipt + bpsMetrics[(int) USER_MESSAGE_BYTES_SENT].Push1(time,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Testing1 +// if (internalPacket->reliability==RELIABLE_ORDERED || internalPacket->reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT) +// printf("SEND reliableMessageNumber %i in datagram %i\n", internalPacket->reliableMessageNumber.val, congestionManager.GetNextDatagramSequenceNumber().val); + + PushPacket(time,internalPacket, isReliable); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS)time, true); +#else + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS)(time/(CCTimeType)1000), true); +#endif + } + pushedAnything=true; + + if (ResendBufferOverflow()) + break; + } + // if (ResendBufferOverflow()) + // break; + // }z + + // No datagrams pushed? + if (datagramSizeSoFar==0) + break; + + // Filled one datagram. + // If the 2nd and it's time to send a datagram pair, will be marked as a pair + PushDatagram(); + } + } + + + for (unsigned int datagramIndex=0; datagramIndex < packetsToSendThisUpdateDatagramBoundaries.Size(); datagramIndex++) + { + if (datagramIndex>0) + dhf.isContinuousSend=true; + MessageNumberNode* messageNumberNode = 0; + dhf.datagramNumber=congestionManager.GetAndIncrementNextDatagramSequenceNumber(); + dhf.isPacketPair=datagramsToSendThisUpdateIsPair[datagramIndex]; + + //printf("%p pushing datagram %i\n", this, dhf.datagramNumber.val); + + bool isSecondOfPacketPair=dhf.isPacketPair && datagramIndex>0 && datagramsToSendThisUpdateIsPair[datagramIndex-1]; + unsigned int msgIndex, msgTerm; + if (datagramIndex==0) + { + msgIndex=0; + msgTerm=packetsToSendThisUpdateDatagramBoundaries[0]; + } + else + { + msgIndex=packetsToSendThisUpdateDatagramBoundaries[datagramIndex-1]; + msgTerm=packetsToSendThisUpdateDatagramBoundaries[datagramIndex]; + } + + // More accurate time to reset here +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + dhf.sourceSystemTime=RakNet::GetTimeUS(); +#endif + updateBitStream.Reset(); + dhf.Serialize(&updateBitStream); + CC_DEBUG_PRINTF_2("S%i ",dhf.datagramNumber.val); + + while (msgIndex < msgTerm) + { + // If reliable or needs receipt + if ( packetsToSendThisUpdate[msgIndex]->reliability != UNRELIABLE && + packetsToSendThisUpdate[msgIndex]->reliability != UNRELIABLE_SEQUENCED + ) + { + if (messageNumberNode==0) + { + messageNumberNode = AddFirstToDatagramHistory(dhf.datagramNumber, packetsToSendThisUpdate[msgIndex]->reliableMessageNumber, time); + } + else + { + messageNumberNode = AddSubsequentToDatagramHistory(messageNumberNode, packetsToSendThisUpdate[msgIndex]->reliableMessageNumber); + } + } + + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + WriteToBitStreamFromInternalPacket( &updateBitStream, packetsToSendThisUpdate[msgIndex], time ); + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + msgIndex++; + } + + if (isSecondOfPacketPair) + { + // Pad to size of first datagram + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + updateBitStream.PadWithZeroToByteLength(datagramSizesInBytes[datagramIndex-1]); + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + } + + if (messageNumberNode==0) + { + // Unreliable, add dummy node + AddFirstToDatagramHistory(dhf.datagramNumber, time); + } + + // Store what message ids were sent with this datagram + // datagramMessageIDTree.Insert(dhf.datagramNumber,idList); + + congestionManager.OnSendBytes(time,UDP_HEADER_SIZE+DatagramHeaderFormat::GetDataHeaderByteLength()); + + SendBitStream( s, systemAddress, &updateBitStream, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, time ); + + bandwidthExceededStatistic=outgoingPacketBuffer.Size()>0; + // bandwidthExceededStatistic=sendPacketSet[0].IsEmpty()==false || + // sendPacketSet[1].IsEmpty()==false || + // sendPacketSet[2].IsEmpty()==false || + // sendPacketSet[3].IsEmpty()==false; + + + + if (bandwidthExceededStatistic==true) + timeOfLastContinualSend=time; + else + timeOfLastContinualSend=0; + } + + ClearPacketsAndDatagrams(); + + // Any data waiting to send after attempting to send, then bandwidth is exceeded + bandwidthExceededStatistic=outgoingPacketBuffer.Size()>0; + // bandwidthExceededStatistic=sendPacketSet[0].IsEmpty()==false || + // sendPacketSet[1].IsEmpty()==false || + // sendPacketSet[2].IsEmpty()==false || + // sendPacketSet[3].IsEmpty()==false; + } + + + // Keep on top of deleting old unreliable split packets so they don't clog the list. + //DeleteOldUnreliableSplitPackets( time ); +} + +//------------------------------------------------------------------------------------------------------- +// Writes a bitstream to the socket +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SendBitStream( SOCKET s, SystemAddress &systemAddress, RakNet::BitStream *bitStream, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType currentTime) +{ + (void) systemAddress; + (void) rnr; + + unsigned int length; + + length = (unsigned int) bitStream->GetNumberOfBytesUsed(); + + +#ifdef _DEBUG + if (packetloss > 0.0) + { + if (frandomMT() < packetloss) + return; + } + + if (minExtraPing > 0 || extraPingVariance > 0) + { + RakNet::TimeMS delay = minExtraPing; + if (extraPingVariance>0) + delay += (randomMT() % extraPingVariance); + if (delay > 0) + { + DataAndTime *dat = RakNet::OP_NEW(__FILE__,__LINE__); + memcpy(dat->data, ( char* ) bitStream->GetData(), length ); + dat->s=s; + dat->length=length; + dat->sendTime = RakNet::GetTimeMS() + delay; + dat->remotePortRakNetWasStartedOn_PS3=remotePortRakNetWasStartedOn_PS3; + dat->extraSocketOptions=extraSocketOptions; + for (unsigned int i=0; i < delayList.Size(); i++) + { + if (dat->sendTime < delayList[i]->sendTime) + { + delayList.PushAtHead(dat, i, __FILE__, __LINE__); + dat=0; + break; + } + } + if (dat!=0) + delayList.Push(dat,__FILE__,__LINE__); + return; + } + } +#endif + +#if LIBCAT_SECURITY==1 + if (useSecurity) + { + unsigned char *buffer = reinterpret_cast( bitStream->GetData() ); + + int buffer_size = bitStream->GetNumberOfBitsAllocated() / 8; + + // Verify there is enough room for encrypted output and encrypt + // Encrypt() will increase length + bool success = auth_enc.Encrypt(buffer, buffer_size, length); + RakAssert(success); + } +#endif + + bpsMetrics[(int) ACTUAL_BYTES_SENT].Push1(currentTime,length); + + RakAssert(length <= congestionManager.GetMTU()); + +#ifdef USE_THREADED_SEND + SendToThread::SendToThreadBlock *block = SendToThread::AllocateBlock(); + memcpy(block->data, bitStream->GetData(), length); + block->dataWriteOffset=length; + block->extraSocketOptions=extraSocketOptions; + block->remotePortRakNetWasStartedOn_PS3=remotePortRakNetWasStartedOn_PS3; + block->s=s; + block->systemAddress=systemAddress; + SendToThread::ProcessBlock(block); +#else + SocketLayer::SendTo( s, ( char* ) bitStream->GetData(), length, systemAddress, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, __FILE__, __LINE__ ); +#endif +} + +//------------------------------------------------------------------------------------------------------- +// Are we waiting for any data to be sent out or be processed by the player? +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsOutgoingDataWaiting(void) +{ + if (outgoingPacketBuffer.Size()>0) + return true; + + // unsigned i; + // for ( i = 0; i < NUMBER_OF_PRIORITIES; i++ ) + // { + // if (sendPacketSet[ i ].Size() > 0) + // return true; + // } + + return + //acknowlegements.Size() > 0 || + //resendTree.IsEmpty()==false;// || outputQueue.Size() > 0 || orderingList.Size() > 0 || splitPacketChannelList.Size() > 0; + statistics.messagesInResendBuffer!=0; +} +bool ReliabilityLayer::AreAcksWaiting(void) +{ + return acknowlegements.Size() > 0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ApplyNetworkSimulator( double _packetloss, RakNet::TimeMS _minExtraPing, RakNet::TimeMS _extraPingVariance ) +{ +#ifdef _DEBUG + packetloss=_packetloss; + minExtraPing=_minExtraPing; + extraPingVariance=_extraPingVariance; + // if (ping < (unsigned int)(minExtraPing+extraPingVariance)*2) + // ping=(minExtraPing+extraPingVariance)*2; +#endif +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SetSplitMessageProgressInterval(int interval) +{ + splitMessageProgressInterval=interval; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SetUnreliableTimeout(RakNet::TimeMS timeoutMS) +{ +#if CC_TIME_TYPE_BYTES==4 + unreliableTimeout=timeoutMS; +#else + unreliableTimeout=(CCTimeType)timeoutMS*(CCTimeType)1000; +#endif +} + +//------------------------------------------------------------------------------------------------------- +// This will return true if we should not send at this time +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsSendThrottled( int MTUSize ) +{ + (void) MTUSize; + + return false; + // return resendList.Size() > windowSize; + + // Disabling this, because it can get stuck here forever + /* + unsigned packetsWaiting; + unsigned resendListDataSize=0; + unsigned i; + for (i=0; i < resendList.Size(); i++) + { + if (resendList[i]) + resendListDataSize+=resendList[i]->dataBitLength; + } + packetsWaiting = 1 + ((BITS_TO_BYTES(resendListDataSize)) / (MTUSize - UDP_HEADER_SIZE - 10)); // 10 to roughly estimate the raknet header + + return packetsWaiting >= windowSize; + */ +} + +//------------------------------------------------------------------------------------------------------- +// We lost a packet +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::UpdateWindowFromPacketloss( CCTimeType time ) +{ + (void) time; +} + +//------------------------------------------------------------------------------------------------------- +// Increase the window size +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::UpdateWindowFromAck( CCTimeType time ) +{ + (void) time; +} + +//------------------------------------------------------------------------------------------------------- +// Does what the function name says +//------------------------------------------------------------------------------------------------------- +unsigned ReliabilityLayer::RemovePacketFromResendListAndDeleteOlderReliableSequenced( const MessageNumberType messageNumber, CCTimeType time, DataStructures::List &messageHandlerList, const SystemAddress &systemAddress ) +{ + (void) time; + (void) messageNumber; + InternalPacket * internalPacket; + //InternalPacket *temp; +// PacketReliability reliability; // What type of reliability algorithm to use with this packet +// unsigned char orderingChannel; // What ordering channel this packet is on, if the reliability type uses ordering channels +// OrderingIndexType orderingIndex; // The ID used as identification for ordering channels + // unsigned j; + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnAck(messageNumber, systemAddress, time); +#else + messageHandlerList[messageHandlerIndex]->OnAck(messageNumber, systemAddress, (RakNet::TimeMS)(time/(CCTimeType)1000)); +#endif + } + + // Testing1 +// if (resendLinkedListHead) +// { +// InternalPacket *internalPacket = resendLinkedListHead; +// do +// { +// internalPacket=internalPacket->resendNext; +// printf("%i ", internalPacket->reliableMessageNumber.val); +// } while (internalPacket!=resendLinkedListHead); +// printf("\n"); +// } + + // bool deleted; + // deleted=resendTree.Delete(messageNumber, internalPacket); + internalPacket = resendBuffer[messageNumber & RESEND_BUFFER_ARRAY_MASK]; + // May ask to remove twice, for example resend twice, then second ack + if (internalPacket && internalPacket->reliableMessageNumber==messageNumber) + { + // ValidateResendList(); + resendBuffer[messageNumber & RESEND_BUFFER_ARRAY_MASK]=0; + CC_DEBUG_PRINTF_2("AckRcv %i ", messageNumber); + + statistics.messagesInResendBuffer--; + statistics.bytesInResendBuffer-=BITS_TO_BYTES(internalPacket->dataBitLength); + +// orderingIndex = internalPacket->orderingIndex; + totalUserDataBytesAcked+=(double) BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength); + + // Return receipt if asked for + if (internalPacket->reliability>=RELIABLE_WITH_ACK_RECEIPT && + (internalPacket->splitPacketCount==0 || internalPacket->splitPacketIndex+1==internalPacket->splitPacketCount) + ) + { + InternalPacket *ackReceipt = AllocateFromInternalPacketPool(); + AllocInternalPacketData(ackReceipt, 5, false, _FILE_AND_LINE_ ); + ackReceipt->dataBitLength=BYTES_TO_BITS(5); + ackReceipt->data[0]=(MessageID)ID_SND_RECEIPT_ACKED; + memcpy(ackReceipt->data+sizeof(MessageID), &internalPacket->sendReceiptSerial, sizeof(internalPacket->sendReceiptSerial)); + outputQueue.Push(ackReceipt, _FILE_AND_LINE_ ); + } + + bool isReliable; + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + isReliable = true; + else + isReliable = false; + + RemoveFromList(internalPacket, isReliable); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + + return 0; + } + else + { + + } + + return (unsigned)-1; +} + +//------------------------------------------------------------------------------------------------------- +// Acknowledge receipt of the packet with the specified messageNumber +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SendAcknowledgementPacket( const DatagramSequenceNumberType messageNumber, CCTimeType time ) +{ + + // REMOVEME + // printf("%p Send ack %i\n", this, messageNumber.val); + + nextAckTimeToSend=time; + acknowlegements.Insert(messageNumber); + + //printf("ACK_DG:%i ", messageNumber.val); + + CC_DEBUG_PRINTF_2("AckPush %i ", messageNumber); + +} + +//------------------------------------------------------------------------------------------------------- +// Parse an internalPacket and figure out how many header bits would be +// written. Returns that number +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::GetMaxMessageHeaderLengthBits( void ) +{ + InternalPacket ip; + ip.reliability=RELIABLE_SEQUENCED; + ip.splitPacketCount=1; + return GetMessageHeaderLengthBits(&ip); +} +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::GetMessageHeaderLengthBits( const InternalPacket *const internalPacket ) +{ + BitSize_t bitLength; + + // bitStream->AlignWriteToByteBoundary(); // Potentially unaligned + // tempChar=(unsigned char)internalPacket->reliability; bitStream->WriteBits( (const unsigned char *)&tempChar, 3, true ); // 3 bits to write reliability. + // bool hasSplitPacket = internalPacket->splitPacketCount>0; bitStream->Write(hasSplitPacket); // Write 1 bit to indicate if splitPacketCount>0 + bitLength = 8*1; + + // bitStream->AlignWriteToByteBoundary(); + // RakAssert(internalPacket->dataBitLength < 65535); + // unsigned short s; s = (unsigned short) internalPacket->dataBitLength; bitStream->WriteAlignedVar16((const char*)& s); + bitLength += 8*2; + + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + bitLength += 8*3; // bitStream->Write(internalPacket->reliableMessageNumber); // Message sequence number + // bitStream->AlignWriteToByteBoundary(); // Potentially nothing else to write + + + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED + ) + { + bitLength += 8*3;; // bitStream->Write(internalPacket->_sequencingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + } + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + { + bitLength += 8*3; // bitStream->Write(internalPacket->orderingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + bitLength += 8*1; // tempChar=internalPacket->orderingChannel; bitStream->WriteAlignedVar8((const char*)& tempChar); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 5 bits needed, write one byte + } + if (internalPacket->splitPacketCount>0) + { + bitLength += 8*4; // bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketCount); RakAssert(sizeof(SplitPacketIndexType)==4); // Only needed if splitPacketCount>0. 4 bytes + bitLength += 8*sizeof(SplitPacketIdType); // bitStream->WriteAlignedVar16((const char*)& internalPacket->splitPacketId); RakAssert(sizeof(SplitPacketIdType)==2); // Only needed if splitPacketCount>0. + bitLength += 8*4; // bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketIndex); // Only needed if splitPacketCount>0. 4 bytes + } + + return bitLength; +} + +//------------------------------------------------------------------------------------------------------- +// Parse an internalPacket and create a bitstream to represent this data +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::WriteToBitStreamFromInternalPacket( RakNet::BitStream *bitStream, const InternalPacket *const internalPacket, CCTimeType curTime ) +{ + (void) curTime; + + BitSize_t start = bitStream->GetNumberOfBitsUsed(); + unsigned char tempChar; + + // (Incoming data may be all zeros due to padding) + bitStream->AlignWriteToByteBoundary(); // Potentially unaligned + if (internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT) + tempChar=UNRELIABLE; + else if (internalPacket->reliability==RELIABLE_WITH_ACK_RECEIPT) + tempChar=RELIABLE; + else if (internalPacket->reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT) + tempChar=RELIABLE_ORDERED; + else + tempChar=(unsigned char)internalPacket->reliability; + + bitStream->WriteBits( (const unsigned char *)&tempChar, 3, true ); // 3 bits to write reliability. + + bool hasSplitPacket = internalPacket->splitPacketCount>0; bitStream->Write(hasSplitPacket); // Write 1 bit to indicate if splitPacketCount>0 + bitStream->AlignWriteToByteBoundary(); + RakAssert(internalPacket->dataBitLength < 65535); + unsigned short s; s = (unsigned short) internalPacket->dataBitLength; bitStream->WriteAlignedVar16((const char*)& s); + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + bitStream->Write(internalPacket->reliableMessageNumber); // Used for all reliable types + bitStream->AlignWriteToByteBoundary(); // Potentially nothing else to write + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED + ) + { + bitStream->Write(internalPacket->sequencingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + } + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + { + bitStream->Write(internalPacket->orderingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + tempChar=internalPacket->orderingChannel; bitStream->WriteAlignedVar8((const char*)& tempChar); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 5 bits needed, write one byte + } + + if (internalPacket->splitPacketCount>0) + { + // printf("Write before\n"); + // bitStream->PrintBits(); + + bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketCount); RakAssert(sizeof(SplitPacketIndexType)==4); // Only needed if splitPacketCount>0. 4 bytes + bitStream->WriteAlignedVar16((const char*)& internalPacket->splitPacketId); RakAssert(sizeof(SplitPacketIdType)==2); // Only needed if splitPacketCount>0. + bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketIndex); // Only needed if splitPacketCount>0. 4 bytes + + // printf("Write after\n"); + // bitStream->PrintBits(); + } + + // Write the actual data. + bitStream->WriteAlignedBytes( ( unsigned char* ) internalPacket->data, BITS_TO_BYTES( internalPacket->dataBitLength ) ); + + return bitStream->GetNumberOfBitsUsed() - start; +} + +//------------------------------------------------------------------------------------------------------- +// Parse a bitstream and create an internal packet to represent this data +//------------------------------------------------------------------------------------------------------- +InternalPacket* ReliabilityLayer::CreateInternalPacketFromBitStream( RakNet::BitStream *bitStream, CCTimeType time ) +{ + bool bitStreamSucceeded; + InternalPacket* internalPacket; + unsigned char tempChar; + bool hasSplitPacket=false; + bool readSuccess; + + if ( bitStream->GetNumberOfUnreadBits() < (int) sizeof( internalPacket->reliableMessageNumber ) * 8 ) + return 0; // leftover bits + + internalPacket = AllocateFromInternalPacketPool(); + if (internalPacket==0) + { + // Out of memory + RakAssert(0); + return 0; + } + internalPacket->creationTime = time; + + // (Incoming data may be all zeros due to padding) + bitStream->AlignReadToByteBoundary(); // Potentially unaligned + bitStream->ReadBits( ( unsigned char* ) ( &( tempChar ) ), 3 ); + internalPacket->reliability = ( const PacketReliability ) tempChar; + readSuccess=bitStream->Read(hasSplitPacket); // Read 1 bit to indicate if splitPacketCount>0 + bitStream->AlignReadToByteBoundary(); + unsigned short s; bitStream->ReadAlignedVar16((char*)&s); internalPacket->dataBitLength=s; // Length of message (2 bytes) + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED + // I don't write ACK_RECEIPT to the remote system +// || +// internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + bitStream->Read(internalPacket->reliableMessageNumber); // Message sequence number + else + internalPacket->reliableMessageNumber=(MessageNumberType)(const uint32_t)-1; + bitStream->AlignReadToByteBoundary(); // Potentially nothing else to Read + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED + ) + { + bitStream->Read(internalPacket->sequencingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + } + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + { + bitStream->Read(internalPacket->orderingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 4 bytes. + readSuccess=bitStream->ReadAlignedVar8((char*)& internalPacket->orderingChannel); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 5 bits needed, Read one byte + } + else + internalPacket->orderingChannel=0; + + if (hasSplitPacket) + { +// printf("Read before\n"); +// bitStream->PrintBits(); + + bitStream->ReadAlignedVar32((char*)& internalPacket->splitPacketCount); // Only needed if splitPacketCount>0. 4 bytes + bitStream->ReadAlignedVar16((char*)& internalPacket->splitPacketId); // Only needed if splitPacketCount>0. + readSuccess=bitStream->ReadAlignedVar32((char*)& internalPacket->splitPacketIndex); // Only needed if splitPacketCount>0. 4 bytes + RakAssert(readSuccess); + +// printf("Read after\n"); +// bitStream->PrintBits(); + } + else + { + internalPacket->splitPacketCount=0; + } + + if (readSuccess==false || + internalPacket->dataBitLength==0 || + internalPacket->reliability>=NUMBER_OF_RELIABILITIES || + internalPacket->orderingChannel>=32 || + (hasSplitPacket && (internalPacket->splitPacketIndex >= internalPacket->splitPacketCount))) + { + // If this assert hits, encoding is garbage + RakAssert("Encoding is garbage" && 0); + ReleaseToInternalPacketPool( internalPacket ); + return 0; + } + + // Allocate memory to hold our data + AllocInternalPacketData(internalPacket, BITS_TO_BYTES( internalPacket->dataBitLength ), false, _FILE_AND_LINE_ ); + RakAssert(BITS_TO_BYTES( internalPacket->dataBitLength )data == 0) + { + RakAssert("Out of memory in ReliabilityLayer::CreateInternalPacketFromBitStream" && 0); + notifyOutOfMemory(_FILE_AND_LINE_); + ReleaseToInternalPacketPool( internalPacket ); + return 0; + } + + // Set the last byte to 0 so if ReadBits does not read a multiple of 8 the last bits are 0'ed out + internalPacket->data[ BITS_TO_BYTES( internalPacket->dataBitLength ) - 1 ] = 0; + + // Read the data the packet holds + bitStreamSucceeded = bitStream->ReadAlignedBytes( ( unsigned char* ) internalPacket->data, BITS_TO_BYTES( internalPacket->dataBitLength ) ); + + if ( bitStreamSucceeded == false ) + { + // If this hits, most likely the variable buff is too small in RunUpdateCycle in RakPeer.cpp + RakAssert("Couldn't read all the data" && 0); + + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + return 0; + } + + return internalPacket; +} + + +//------------------------------------------------------------------------------------------------------- +// Get the SHA1 code +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::GetSHA1( unsigned char * const buffer, unsigned int + nbytes, char code[ SHA1_LENGTH ] ) +{ + CSHA1 sha1; + + sha1.Reset(); + sha1.Update( ( unsigned char* ) buffer, nbytes ); + sha1.Final(); + memcpy( code, sha1.GetHash(), SHA1_LENGTH ); +} + +//------------------------------------------------------------------------------------------------------- +// Check the SHA1 code +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::CheckSHA1( char code[ SHA1_LENGTH ], unsigned char * + const buffer, unsigned int nbytes ) +{ + char code2[ SHA1_LENGTH ]; + GetSHA1( buffer, nbytes, code2 ); + + for ( int i = 0; i < SHA1_LENGTH; i++ ) + if ( code[ i ] != code2[ i ] ) + return false; + + return true; +} + +//------------------------------------------------------------------------------------------------------- +// Search the specified list for sequenced packets on the specified ordering +// stream, optionally skipping those with splitPacketId, and delete them +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::List&theList, int splitPacketId ) +{ + unsigned i = 0; + + while ( i < theList.Size() ) + { + if ( ( + theList[ i ]->reliability == RELIABLE_SEQUENCED || + theList[ i ]->reliability == UNRELIABLE_SEQUENCED +// || +// theList[ i ]->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// theList[ i ]->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) && + theList[ i ]->orderingChannel == orderingChannel && ( splitPacketId == -1 || theList[ i ]->splitPacketId != (unsigned int) splitPacketId ) ) + { + InternalPacket * internalPacket = theList[ i ]; + theList.RemoveAtIndex( i ); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + } + + else + i++; + } +} + +//------------------------------------------------------------------------------------------------------- +// Search the specified list for sequenced packets with a value less than orderingIndex and delete them +// Note - I added functionality so you can use the Queue as a list (in this case for searching) but it is less efficient to do so than a regular list +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::Queue&theList ) +{ + InternalPacket * internalPacket; + int listSize = theList.Size(); + int i = 0; + + while ( i < listSize ) + { + if ( ( + theList[ i ]->reliability == RELIABLE_SEQUENCED || + theList[ i ]->reliability == UNRELIABLE_SEQUENCED +// || +// theList[ i ]->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// theList[ i ]->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) && theList[ i ]->orderingChannel == orderingChannel ) + { + internalPacket = theList[ i ]; + theList.RemoveAtIndex( i ); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + listSize--; + } + + else + i++; + } +} + +//------------------------------------------------------------------------------------------------------- +// Returns true if newPacketOrderingIndex is older than the waitingForPacketOrderingIndex +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsOlderOrderedPacket( OrderingIndexType newPacketOrderingIndex, OrderingIndexType waitingForPacketOrderingIndex ) +{ + OrderingIndexType maxRange = (OrderingIndexType) (const uint32_t)-1; + + if ( waitingForPacketOrderingIndex > maxRange/(OrderingIndexType)2 ) + { + if ( newPacketOrderingIndex >= waitingForPacketOrderingIndex - maxRange/(OrderingIndexType)2+(OrderingIndexType)1 && newPacketOrderingIndex < waitingForPacketOrderingIndex ) + { + return true; + } + } + + else + if ( newPacketOrderingIndex >= ( OrderingIndexType ) ( waitingForPacketOrderingIndex - (( OrderingIndexType ) maxRange/(OrderingIndexType)2+(OrderingIndexType)1) ) || + newPacketOrderingIndex < waitingForPacketOrderingIndex ) + { + return true; + } + + // Old packet + return false; +} + +//------------------------------------------------------------------------------------------------------- +// Split the passed packet into chunks under MTU_SIZEbytes (including headers) and save those new chunks +// Optimized version +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SplitPacket( InternalPacket *internalPacket ) +{ + // Doing all sizes in bytes in this function so I don't write partial bytes with split packets + internalPacket->splitPacketCount = 1; // This causes GetMessageHeaderLengthBits to account for the split packet header + unsigned int headerLength = (unsigned int) BITS_TO_BYTES( GetMessageHeaderLengthBits( internalPacket ) ); + unsigned int dataByteLength = (unsigned int) BITS_TO_BYTES( internalPacket->dataBitLength ); + int maximumSendBlockBytes, byteOffset, bytesToSend; + SplitPacketIndexType splitPacketIndex; + int i; + InternalPacket **internalPacketArray; + + maximumSendBlockBytes = GetMaxDatagramSizeExcludingMessageHeaderBytes() - BITS_TO_BYTES(GetMaxMessageHeaderLengthBits()); + + // Calculate how many packets we need to create + internalPacket->splitPacketCount = ( ( dataByteLength - 1 ) / ( maximumSendBlockBytes ) + 1 ); + + // Optimization + // internalPacketArray = RakNet::OP_NEW(internalPacket->splitPacketCount, _FILE_AND_LINE_ ); + bool usedAlloca=false; + + if (sizeof( InternalPacket* ) * internalPacket->splitPacketCount < MAX_ALLOCA_STACK_ALLOCATION) + { + internalPacketArray = ( InternalPacket** ) alloca( sizeof( InternalPacket* ) * internalPacket->splitPacketCount ); + usedAlloca=true; + } + else + + internalPacketArray = (InternalPacket**) rakMalloc_Ex( sizeof(InternalPacket*) * internalPacket->splitPacketCount, _FILE_AND_LINE_ ); + + for ( i = 0; i < ( int ) internalPacket->splitPacketCount; i++ ) + { + internalPacketArray[ i ] = AllocateFromInternalPacketPool(); + + //internalPacketArray[ i ] = (InternalPacket*) alloca( sizeof( InternalPacket ) ); + // internalPacketArray[ i ] = sendPacketSet[internalPacket->priority].WriteLock(); + *internalPacketArray[ i ]=*internalPacket; + internalPacketArray[ i ]->messageNumberAssigned=false; + + if (i!=0) + internalPacket->messageInternalOrder = internalOrderIndex++; + } + + // This identifies which packet this is in the set + splitPacketIndex = 0; + + InternalPacketRefCountedData *refCounter=0; + + // Do a loop to send out all the packets + do + { + byteOffset = splitPacketIndex * maximumSendBlockBytes; + bytesToSend = dataByteLength - byteOffset; + + if ( bytesToSend > maximumSendBlockBytes ) + bytesToSend = maximumSendBlockBytes; + + // Copy over our chunk of data + + AllocInternalPacketData(internalPacketArray[ splitPacketIndex ], &refCounter, internalPacket->data, internalPacket->data + byteOffset); + // internalPacketArray[ splitPacketIndex ]->data = (unsigned char*) rakMalloc_Ex( bytesToSend, _FILE_AND_LINE_ ); + // memcpy( internalPacketArray[ splitPacketIndex ]->data, internalPacket->data + byteOffset, bytesToSend ); + + if ( bytesToSend != maximumSendBlockBytes ) + internalPacketArray[ splitPacketIndex ]->dataBitLength = internalPacket->dataBitLength - splitPacketIndex * ( maximumSendBlockBytes << 3 ); + else + internalPacketArray[ splitPacketIndex ]->dataBitLength = bytesToSend << 3; + + internalPacketArray[ splitPacketIndex ]->splitPacketIndex = splitPacketIndex; + internalPacketArray[ splitPacketIndex ]->splitPacketId = splitPacketId; + internalPacketArray[ splitPacketIndex ]->splitPacketCount = internalPacket->splitPacketCount; + RakAssert(internalPacketArray[ splitPacketIndex ]->dataBitLengthsplitPacketCount ); + + splitPacketId++; // It's ok if this wraps to 0 + + // InternalPacket *workingPacket; + + // Tell the heap we are going to push a list of elements where each element in the list follows the heap order + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthsplitPacketCount; i++ ) + { + internalPacketArray[ i ]->headerLength=headerLength; + RakAssert(internalPacketArray[ i ]->dataBitLengthpriority ].Push( internalPacketArray[ i ], _FILE_AND_LINE_ ); + RakAssert(internalPacketArray[ i ]->dataBitLengthmessageNumberAssigned==false); + outgoingPacketBuffer.PushSeries(GetNextWeight(internalPacketArray[ i ]->priority), internalPacketArray[ i ], _FILE_AND_LINE_); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthpriority]++; + statistics.bytesInSendBuffer[(int)(int)internalPacketArray[ i ]->priority]+=(double) BITS_TO_BYTES(internalPacketArray[ i ]->dataBitLength); + // workingPacket=sendPacketSet[internalPacket->priority].WriteLock(); + // memcpy(workingPacket, internalPacketArray[ i ], sizeof(InternalPacket)); + // sendPacketSet[internalPacket->priority].WriteUnlock(); + } + + // Do not delete, original is referenced by all split packets to avoid numerous allocations. See AllocInternalPacketData above + // FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + if (usedAlloca==false) + rakFree_Ex(internalPacketArray, _FILE_AND_LINE_ ); +} + +//------------------------------------------------------------------------------------------------------- +// Insert a packet into the split packet list +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InsertIntoSplitPacketList( InternalPacket * internalPacket, CCTimeType time ) +{ + bool objectExists; + unsigned index; + index=splitPacketChannelList.GetIndexFromKey(internalPacket->splitPacketId, &objectExists); + if (objectExists==false) + { + SplitPacketChannel *newChannel = RakNet::OP_NEW( __FILE__, __LINE__ ); +#if PREALLOCATE_LARGE_MESSAGES==1 + index=splitPacketChannelList.Insert(internalPacket->splitPacketId, newChannel, true, __FILE__,__LINE__); + newChannel->returnedPacket=CreateInternalPacketCopy( internalPacket, 0, 0, time ); + newChannel->gotFirstPacket=false; + newChannel->splitPacketsArrived=0; + AllocInternalPacketData(newChannel->returnedPacket, BITS_TO_BYTES( internalPacket->dataBitLength*internalPacket->splitPacketCount ), false, __FILE__, __LINE__ ); + RakAssert(newChannel->returnedPacket->data); +#else + newChannel->firstPacket=0; + index=splitPacketChannelList.Insert(internalPacket->splitPacketId, newChannel, true, __FILE__,__LINE__); + // Preallocate to the final size, to avoid runtime copies + newChannel->splitPacketList.Preallocate(internalPacket->splitPacketCount, __FILE__,__LINE__); + +#endif + } + +#if PREALLOCATE_LARGE_MESSAGES==1 + splitPacketChannelList[index]->lastUpdateTime=time; + splitPacketChannelList[index]->splitPacketsArrived++; + splitPacketChannelList[index]->returnedPacket->dataBitLength+=internalPacket->dataBitLength; + + bool dealloc; + if (internalPacket->splitPacketIndex==0) + { + splitPacketChannelList[index]->gotFirstPacket=true; + splitPacketChannelList[index]->stride=BITS_TO_BYTES(internalPacket->dataBitLength); + + for (unsigned int j=0; j < splitPacketChannelList[index]->splitPacketList.Size(); j++) + { + memcpy(splitPacketChannelList[index]->returnedPacket->data+internalPacket->splitPacketIndex*splitPacketChannelList[index]->stride, internalPacket->data, (size_t) BITS_TO_BYTES(internalPacket->dataBitLength)); + FreeInternalPacketData(splitPacketChannelList[index]->splitPacketList[j], __FILE__, __LINE__ ); + ReleaseToInternalPacketPool(splitPacketChannelList[index]->splitPacketList[j]); + } + + memcpy(splitPacketChannelList[index]->returnedPacket->data, internalPacket->data, (size_t) BITS_TO_BYTES(internalPacket->dataBitLength)); + splitPacketChannelList[index]->splitPacketList.Clear(true,__FILE__,__LINE__); + dealloc=true; + } + else + { + if (splitPacketChannelList[index]->gotFirstPacket==true) + { + memcpy(splitPacketChannelList[index]->returnedPacket->data+internalPacket->splitPacketIndex*splitPacketChannelList[index]->stride, internalPacket->data, (size_t) BITS_TO_BYTES(internalPacket->dataBitLength)); + dealloc=true; + } + else + { + splitPacketChannelList[index]->splitPacketList.Push(internalPacket,__FILE__,__LINE__); + dealloc=false; + } + } + + if (splitPacketChannelList[index]->gotFirstPacket==true && + splitMessageProgressInterval && + // splitPacketChannelList[index]->firstPacket && + // splitPacketChannelList[index]->splitPacketList.Size()!=splitPacketChannelList[index]->firstPacket->splitPacketCount && + // (splitPacketChannelList[index]->splitPacketList.Size()%splitMessageProgressInterval)==0 + splitPacketChannelList[index]->gotFirstPacket && + splitPacketChannelList[index]->splitPacketsArrived!=splitPacketChannelList[index]->returnedPacket->splitPacketCount && + (splitPacketChannelList[index]->splitPacketsArrived%splitMessageProgressInterval)==0 + ) + { + // Return ID_DOWNLOAD_PROGRESS + // Write splitPacketIndex (SplitPacketIndexType) + // Write splitPacketCount (SplitPacketIndexType) + // Write byteLength (4) + // Write data, splitPacketChannelList[index]->splitPacketList[0]->data + InternalPacket *progressIndicator = AllocateFromInternalPacketPool(); + // unsigned int len = sizeof(MessageID) + sizeof(unsigned int)*2 + sizeof(unsigned int) + (unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + unsigned int l = (unsigned int) splitPacketChannelList[index]->stride; + const unsigned int len = sizeof(MessageID) + sizeof(unsigned int)*2 + sizeof(unsigned int) + l; + AllocInternalPacketData(progressIndicator, len, false, __FILE__, __LINE__ ); + progressIndicator->dataBitLength=BYTES_TO_BITS(len); + progressIndicator->data[0]=(MessageID)ID_DOWNLOAD_PROGRESS; + unsigned int temp; + // temp=splitPacketChannelList[index]->splitPacketList.Size(); + temp=splitPacketChannelList[index]->splitPacketsArrived; + memcpy(progressIndicator->data+sizeof(MessageID), &temp, sizeof(unsigned int)); + temp=(unsigned int)internalPacket->splitPacketCount; + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*1, &temp, sizeof(unsigned int)); + // temp=(unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + temp=(unsigned int) BITS_TO_BYTES(l); + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*2, &temp, sizeof(unsigned int)); + //memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*3, splitPacketChannelList[index]->firstPacket->data, (size_t) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength)); + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*3, splitPacketChannelList[index]->returnedPacket->data, (size_t) BITS_TO_BYTES(l)); + } + + if (dealloc) + { + FreeInternalPacketData(internalPacket, __FILE__, __LINE__ ); + ReleaseToInternalPacketPool(internalPacket); + } +#else + splitPacketChannelList[index]->splitPacketList.Insert(internalPacket, __FILE__, __LINE__ ); + splitPacketChannelList[index]->lastUpdateTime=time; + + if (internalPacket->splitPacketIndex==0) + splitPacketChannelList[index]->firstPacket=internalPacket; + + if (splitMessageProgressInterval && + splitPacketChannelList[index]->firstPacket && + splitPacketChannelList[index]->splitPacketList.Size()!=splitPacketChannelList[index]->firstPacket->splitPacketCount && + (splitPacketChannelList[index]->splitPacketList.Size()%splitMessageProgressInterval)==0) + { + // Return ID_DOWNLOAD_PROGRESS + // Write splitPacketIndex (SplitPacketIndexType) + // Write splitPacketCount (SplitPacketIndexType) + // Write byteLength (4) + // Write data, splitPacketChannelList[index]->splitPacketList[0]->data + InternalPacket *progressIndicator = AllocateFromInternalPacketPool(); + unsigned int length = sizeof(MessageID) + sizeof(unsigned int)*2 + sizeof(unsigned int) + (unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + AllocInternalPacketData(progressIndicator, length, false, __FILE__, __LINE__ ); + progressIndicator->dataBitLength=BYTES_TO_BITS(length); + progressIndicator->data[0]=(MessageID)ID_DOWNLOAD_PROGRESS; + unsigned int temp; + temp=splitPacketChannelList[index]->splitPacketList.Size(); + memcpy(progressIndicator->data+sizeof(MessageID), &temp, sizeof(unsigned int)); + temp=(unsigned int)internalPacket->splitPacketCount; + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*1, &temp, sizeof(unsigned int)); + temp=(unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*2, &temp, sizeof(unsigned int)); + + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*3, splitPacketChannelList[index]->firstPacket->data, (size_t) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength)); + outputQueue.Push(progressIndicator, __FILE__, __LINE__ ); + } + +#endif +} + +//------------------------------------------------------------------------------------------------------- +// Take all split chunks with the specified splitPacketId and try to +//reconstruct a packet. If we can, allocate and return it. Otherwise return 0 +// Optimized version +//------------------------------------------------------------------------------------------------------- +InternalPacket * ReliabilityLayer::BuildPacketFromSplitPacketList( SplitPacketChannel *splitPacketChannel, CCTimeType time ) +{ +#if PREALLOCATE_LARGE_MESSAGES==1 + InternalPacket *returnedPacket=splitPacketChannel->returnedPacket; + RakNet::OP_DELETE(splitPacketChannel, __FILE__, __LINE__); + (void) time; + return returnedPacket; +#else + unsigned int j; + InternalPacket * internalPacket, *splitPacket; + int splitPacketPartLength; + + // Reconstruct + internalPacket = CreateInternalPacketCopy( splitPacketChannel->splitPacketList[0], 0, 0, time ); + internalPacket->dataBitLength=0; + for (j=0; j < splitPacketChannel->splitPacketList.Size(); j++) + internalPacket->dataBitLength+=splitPacketChannel->splitPacketList[j]->dataBitLength; + splitPacketPartLength=BITS_TO_BYTES(splitPacketChannel->firstPacket->dataBitLength); + + internalPacket->data = (unsigned char*) rakMalloc_Ex( (size_t) BITS_TO_BYTES( internalPacket->dataBitLength ), _FILE_AND_LINE_ ); + internalPacket->allocationScheme=InternalPacket::NORMAL; + + for (j=0; j < splitPacketChannel->splitPacketList.Size(); j++) + { + splitPacket=splitPacketChannel->splitPacketList[j]; + memcpy(internalPacket->data+splitPacket->splitPacketIndex*splitPacketPartLength, splitPacket->data, (size_t) BITS_TO_BYTES(splitPacketChannel->splitPacketList[j]->dataBitLength)); + } + + for (j=0; j < splitPacketChannel->splitPacketList.Size(); j++) + { + FreeInternalPacketData(splitPacketChannel->splitPacketList[j], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool(splitPacketChannel->splitPacketList[j]); + } + RakNet::OP_DELETE(splitPacketChannel, __FILE__, __LINE__); + + return internalPacket; +#endif +} +//------------------------------------------------------------------------------------------------------- +InternalPacket * ReliabilityLayer::BuildPacketFromSplitPacketList( SplitPacketIdType splitPacketId, CCTimeType time, + SOCKET s, SystemAddress &systemAddress, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, + BitStream &updateBitStream) +{ + unsigned int i; + bool objectExists; + SplitPacketChannel *splitPacketChannel; + InternalPacket * internalPacket; + + i=splitPacketChannelList.GetIndexFromKey(splitPacketId, &objectExists); + splitPacketChannel=splitPacketChannelList[i]; + +#if PREALLOCATE_LARGE_MESSAGES==1 + if (splitPacketChannel->splitPacketsArrived==splitPacketChannel->returnedPacket->splitPacketCount) +#else + if (splitPacketChannel->splitPacketList.Size()==splitPacketChannel->splitPacketList[0]->splitPacketCount) +#endif + { + // Ack immediately, because for large files this can take a long time + SendACKs(s, systemAddress, time, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, updateBitStream); + internalPacket=BuildPacketFromSplitPacketList(splitPacketChannel,time); + splitPacketChannelList.RemoveAtIndex(i); + return internalPacket; + } + else + { + return 0; + } +} +/* +//------------------------------------------------------------------------------------------------------- +// Delete any unreliable split packets that have long since expired +void ReliabilityLayer::DeleteOldUnreliableSplitPackets( CCTimeType time ) +{ +unsigned i,j; +i=0; +while (i < splitPacketChannelList.Size()) +{ +#if CC_TIME_TYPE_BYTES==4 +if (time > splitPacketChannelList[i]->lastUpdateTime + timeoutTime && +#else +if (time > splitPacketChannelList[i]->lastUpdateTime + (CCTimeType)timeoutTime*(CCTimeType)1000 && +#endif +(splitPacketChannelList[i]->splitPacketList[0]->reliability==UNRELIABLE || splitPacketChannelList[i]->splitPacketList[0]->reliability==UNRELIABLE_SEQUENCED)) +{ +for (j=0; j < splitPacketChannelList[i]->splitPacketList.Size(); j++) +{ +RakNet::OP_DELETE_ARRAY(splitPacketChannelList[i]->splitPacketList[j]->data, _FILE_AND_LINE_); +ReleaseToInternalPacketPool(splitPacketChannelList[i]->splitPacketList[j]); +} +RakNet::OP_DELETE(splitPacketChannelList[i], _FILE_AND_LINE_); +splitPacketChannelList.RemoveAtIndex(i); +} +else +i++; +} +} +*/ + +//------------------------------------------------------------------------------------------------------- +// Creates a copy of the specified internal packet with data copied from the original starting at dataByteOffset for dataByteLength bytes. +// Does not copy any split data parameters as that information is always generated does not have any reason to be copied +//------------------------------------------------------------------------------------------------------- +InternalPacket * ReliabilityLayer::CreateInternalPacketCopy( InternalPacket *original, int dataByteOffset, int dataByteLength, CCTimeType time ) +{ + InternalPacket * copy = AllocateFromInternalPacketPool(); +#ifdef _DEBUG + // Remove accessing undefined memory error + memset( copy, 255, sizeof( InternalPacket ) ); +#endif + // Copy over our chunk of data + + if ( dataByteLength > 0 ) + { + AllocInternalPacketData(copy, BITS_TO_BYTES(dataByteLength ), false, _FILE_AND_LINE_ ); + memcpy( copy->data, original->data + dataByteOffset, dataByteLength ); + } + else + copy->data = 0; + + copy->dataBitLength = dataByteLength << 3; + copy->creationTime = time; + copy->nextActionTime = 0; + copy->orderingIndex = original->orderingIndex; + copy->sequencingIndex = original->sequencingIndex; + copy->orderingChannel = original->orderingChannel; + copy->reliableMessageNumber = original->reliableMessageNumber; + copy->priority = original->priority; + copy->reliability = original->reliability; +#if PREALLOCATE_LARGE_MESSAGES==1 + copy->splitPacketCount = original->splitPacketCount; + copy->splitPacketId = original->splitPacketId; + copy->splitPacketIndex = original->splitPacketIndex; +#endif + + return copy; +} + +//------------------------------------------------------------------------------------------------------- +// Get the specified ordering list +//------------------------------------------------------------------------------------------------------- +/* +DataStructures::LinkedList *ReliabilityLayer::GetOrderingListAtOrderingStream( unsigned char orderingChannel ) +{ + if ( orderingChannel >= orderingList.Size() ) + return 0; + + return orderingList[ orderingChannel ]; +} + +//------------------------------------------------------------------------------------------------------- +// Add the internal packet to the ordering list in order based on order index +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddToOrderingList( InternalPacket * internalPacket ) +{ + } +*/ + +//------------------------------------------------------------------------------------------------------- +// Inserts a packet into the resend list in order +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InsertPacketIntoResendList( InternalPacket *internalPacket, CCTimeType time, bool firstResend, bool modifyUnacknowledgedBytes ) +{ + (void) firstResend; + (void) time; + (void) internalPacket; + + AddToListTail(internalPacket, modifyUnacknowledgedBytes); + RakAssert(internalPacket->nextActionTime!=0); + +} + +//------------------------------------------------------------------------------------------------------- +// Were you ever unable to deliver a packet despite retries? +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsDeadConnection( void ) const +{ + return deadConnection; +} + +//------------------------------------------------------------------------------------------------------- +// Causes IsDeadConnection to return true +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::KillConnection( void ) +{ + deadConnection=true; +} + + +//------------------------------------------------------------------------------------------------------- +// Statistics +//------------------------------------------------------------------------------------------------------- +RakNetStatistics * ReliabilityLayer::GetStatistics( RakNetStatistics *rns ) +{ + unsigned i; + RakNet::TimeUS time = RakNet::GetTimeUS(); + uint64_t uint64Denominator; + double doubleDenominator; + + for (i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + statistics.valueOverLastSecond[i]=bpsMetrics[i].GetBPS1Threadsafe(time); + statistics.runningTotal[i]=bpsMetrics[i].GetTotal1(); + } + + memcpy(rns, &statistics, sizeof(statistics)); + + if (rns->valueOverLastSecond[USER_MESSAGE_BYTES_SENT]+rns->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT]>0) + rns->packetlossLastSecond=(float)((double) rns->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT]/((double) rns->valueOverLastSecond[USER_MESSAGE_BYTES_SENT]+(double) rns->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT])); + else + rns->packetlossLastSecond=0.0f; + + rns->packetlossTotal=0.0f; + uint64Denominator=(rns->runningTotal[USER_MESSAGE_BYTES_SENT]+rns->runningTotal[USER_MESSAGE_BYTES_RESENT]); + if (uint64Denominator!=0&&rns->runningTotal[USER_MESSAGE_BYTES_SENT]/uint64Denominator>0) + { + doubleDenominator=((double) rns->runningTotal[USER_MESSAGE_BYTES_SENT]+(double) rns->runningTotal[USER_MESSAGE_BYTES_RESENT]); + if(doubleDenominator!=0) + { + rns->packetlossTotal=(float)((double) rns->runningTotal[USER_MESSAGE_BYTES_RESENT]/doubleDenominator); + } + } + + rns->isLimitedByCongestionControl=statistics.isLimitedByCongestionControl; + rns->BPSLimitByCongestionControl=statistics.BPSLimitByCongestionControl; + rns->isLimitedByOutgoingBandwidthLimit=statistics.isLimitedByOutgoingBandwidthLimit; + rns->BPSLimitByOutgoingBandwidthLimit=statistics.BPSLimitByOutgoingBandwidthLimit; + + return rns; +} + +//------------------------------------------------------------------------------------------------------- +// Returns the number of packets in the resend queue, not counting holes +//------------------------------------------------------------------------------------------------------- +unsigned int ReliabilityLayer::GetResendListDataSize(void) const +{ + // Not accurate but thread-safe. The commented version might crash if the queue is cleared while we loop through it + // return resendTree.Size(); + return statistics.messagesInResendBuffer; +} + +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::AckTimeout(RakNet::Time curTime) +{ + // I check timeLastDatagramArrived-curTime because with threading it is possible that timeLastDatagramArrived is + // slightly greater than curTime, in which case this is NOT an ack timeout + return (timeLastDatagramArrived-curTime)>10000 && curTime-timeLastDatagramArrived>timeoutTime; +} +//------------------------------------------------------------------------------------------------------- +CCTimeType ReliabilityLayer::GetNextSendTime(void) const +{ + return nextSendTime; +} +//------------------------------------------------------------------------------------------------------- +CCTimeType ReliabilityLayer::GetTimeBetweenPackets(void) const +{ + return timeBetweenPackets; +} +//------------------------------------------------------------------------------------------------------- +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 +CCTimeType ReliabilityLayer::GetAckPing(void) const +{ + return ackPing; +} +#endif +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ResetPacketsAndDatagrams(void) +{ + packetsToSendThisUpdate.Clear(true, _FILE_AND_LINE_); + packetsToDeallocThisUpdate.Clear(true, _FILE_AND_LINE_); + packetsToSendThisUpdateDatagramBoundaries.Clear(true, _FILE_AND_LINE_); + datagramsToSendThisUpdateIsPair.Clear(true, _FILE_AND_LINE_); + datagramSizesInBytes.Clear(true, _FILE_AND_LINE_); + datagramSizeSoFar=0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::PushPacket(CCTimeType time, InternalPacket *internalPacket, bool isReliable) +{ + BitSize_t bitsForThisPacket=BYTES_TO_BITS(BITS_TO_BYTES(internalPacket->dataBitLength)+BITS_TO_BYTES(internalPacket->headerLength)); + datagramSizeSoFar+=bitsForThisPacket; + RakAssert(BITS_TO_BYTES(datagramSizeSoFar)headerLength==GetMessageHeaderLengthBits(internalPacket)); + +// This code tells me how much time elapses between when you send, and when the message actually goes out +// if (internalPacket->data[0]==0) +// { +// RakNet::TimeMS t; +// RakNet::BitStream bs(internalPacket->data+1,sizeof(t),false); +// bs.Read(t); +// RakNet::TimeMS curTime=RakNet::GetTimeMS(); +// RakNet::TimeMS diff = curTime-t; +// } + + congestionManager.OnSendBytes(time, BITS_TO_BYTES(internalPacket->dataBitLength)+BITS_TO_BYTES(internalPacket->headerLength)); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::PushDatagram(void) +{ + if (datagramSizeSoFar>0) + { + packetsToSendThisUpdateDatagramBoundaries.Push(packetsToSendThisUpdate.Size(), _FILE_AND_LINE_ ); + datagramsToSendThisUpdateIsPair.Push(false, _FILE_AND_LINE_ ); + RakAssert(BITS_TO_BYTES(datagramSizeSoFar)=2) + { + datagramsToSendThisUpdateIsPair[datagramsToSendThisUpdateIsPair.Size()-2]=true; + datagramsToSendThisUpdateIsPair[datagramsToSendThisUpdateIsPair.Size()-1]=true; + return true; + } + return false; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ClearPacketsAndDatagrams(void) +{ + unsigned int i; + for (i=0; i < packetsToDeallocThisUpdate.Size(); i++) + { + // packetsToDeallocThisUpdate holds a boolean indicating if packetsToSendThisUpdate at this index should be freed + if (packetsToDeallocThisUpdate[i]) + { + RemoveFromUnreliableLinkedList(packetsToSendThisUpdate[i]); + FreeInternalPacketData(packetsToSendThisUpdate[i], _FILE_AND_LINE_ ); + // if (keepInternalPacketIfNeedsAck==false || packetsToSendThisUpdate[i]->reliabilityresendNext=internalPacket; + internalPacket->resendPrev=internalPacket; + resendLinkedListHead=internalPacket; + return; + } + internalPacket->resendPrev->resendNext = internalPacket->resendNext; + internalPacket->resendNext->resendPrev = internalPacket->resendPrev; + internalPacket->resendNext=resendLinkedListHead; + internalPacket->resendPrev=resendLinkedListHead->resendPrev; + internalPacket->resendPrev->resendNext=internalPacket; + resendLinkedListHead->resendPrev=internalPacket; + resendLinkedListHead=internalPacket; + RakAssert(internalPacket->headerLength+internalPacket->dataBitLength>0); + + //ValidateResendList(); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::RemoveFromList(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes) +{ + InternalPacket *newPosition; + internalPacket->resendPrev->resendNext = internalPacket->resendNext; + internalPacket->resendNext->resendPrev = internalPacket->resendPrev; + newPosition = internalPacket->resendNext; + if ( internalPacket == resendLinkedListHead ) + resendLinkedListHead = newPosition; + if (resendLinkedListHead==internalPacket) + resendLinkedListHead=0; + + if (modifyUnacknowledgedBytes) + { + RakAssert(unacknowledgedBytes>=BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength)); + unacknowledgedBytes-=BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength); + // printf("-unacknowledgedBytes:%i ", unacknowledgedBytes); + + +// ValidateResendList(); + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddToListTail(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes) +{ + if (modifyUnacknowledgedBytes) + { + unacknowledgedBytes+=BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength); + // printf("+unacknowledgedBytes:%i ", unacknowledgedBytes); + } + + if (resendLinkedListHead==0) + { + internalPacket->resendNext=internalPacket; + internalPacket->resendPrev=internalPacket; + resendLinkedListHead=internalPacket; + return; + } + internalPacket->resendNext=resendLinkedListHead; + internalPacket->resendPrev=resendLinkedListHead->resendPrev; + internalPacket->resendPrev->resendNext=internalPacket; + resendLinkedListHead->resendPrev=internalPacket; + +// ValidateResendList(); + +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::PopListHead(bool modifyUnacknowledgedBytes) +{ + RakAssert(resendLinkedListHead!=0); + RemoveFromList(resendLinkedListHead, modifyUnacknowledgedBytes); +} +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsResendQueueEmpty(void) const +{ + return resendLinkedListHead==0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SendACKs(SOCKET s, SystemAddress &systemAddress, CCTimeType time, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream) +{ + BitSize_t maxDatagramPayload = GetMaxDatagramSizeExcludingMessageHeaderBits(); + + while (acknowlegements.Size()>0) + { + // Send acks + updateBitStream.Reset(); + DatagramHeaderFormat dhf; + dhf.isACK=true; + dhf.isNAK=false; + dhf.isPacketPair=false; +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + dhf.sourceSystemTime=time; +#endif + double B; + double AS; + bool hasBAndAS; + if (remoteSystemNeedsBAndAS) + { + congestionManager.OnSendAckGetBAndAS(time, &hasBAndAS,&B,&AS); + dhf.AS=(float)AS; + dhf.hasBAndAS=hasBAndAS; + } + else + dhf.hasBAndAS=false; +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + dhf.sourceSystemTime=nextAckTimeToSend; +#endif + // dhf.B=(float)B; + updateBitStream.Reset(); + dhf.Serialize(&updateBitStream); + CC_DEBUG_PRINTF_1("AckSnd "); + acknowlegements.Serialize(&updateBitStream, maxDatagramPayload, true); + SendBitStream( s, systemAddress, &updateBitStream, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, time ); + congestionManager.OnSendAck(time,updateBitStream.GetNumberOfBytesUsed()); + + // I think this is causing a bug where if the estimated bandwidth is very low for the recipient, only acks ever get sent + // congestionManager.OnSendBytes(time,UDP_HEADER_SIZE+updateBitStream.GetNumberOfBytesUsed()); + } +} +/* +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::DatagramMessageIDList* ReliabilityLayer::AllocateFromDatagramMessageIDPool(void) +{ +DatagramMessageIDList*s; +s=datagramMessageIDPool.Allocate( _FILE_AND_LINE_ ); +// Call new operator, memoryPool doesn't do this +s = new ((void*)s) DatagramMessageIDList; +return s; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ReleaseToDatagramMessageIDPool(DatagramMessageIDList* d) +{ +d->~DatagramMessageIDList(); +datagramMessageIDPool.Release(d); +} +*/ +//------------------------------------------------------------------------------------------------------- +InternalPacket* ReliabilityLayer::AllocateFromInternalPacketPool(void) +{ + InternalPacket *ip = internalPacketPool.Allocate( _FILE_AND_LINE_ ); + ip->reliableMessageNumber = (MessageNumberType) (const uint32_t)-1; + ip->messageNumberAssigned=false; + ip->nextActionTime = 0; + ip->splitPacketCount = 0; + ip->allocationScheme=InternalPacket::NORMAL; + ip->data=0; + return ip; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ReleaseToInternalPacketPool(InternalPacket *ip) +{ + internalPacketPool.Release(ip, _FILE_AND_LINE_); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::RemoveFromUnreliableLinkedList(InternalPacket *internalPacket) +{ + if (internalPacket->reliability==UNRELIABLE || + internalPacket->reliability==UNRELIABLE_SEQUENCED || + internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT +// || +// internalPacket->reliability==UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + InternalPacket *newPosition; + internalPacket->unreliablePrev->unreliableNext = internalPacket->unreliableNext; + internalPacket->unreliableNext->unreliablePrev = internalPacket->unreliablePrev; + newPosition = internalPacket->unreliableNext; + if ( internalPacket == unreliableLinkedListHead ) + unreliableLinkedListHead = newPosition; + if (unreliableLinkedListHead==internalPacket) + unreliableLinkedListHead=0; + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddToUnreliableLinkedList(InternalPacket *internalPacket) +{ + if (internalPacket->reliability==UNRELIABLE || + internalPacket->reliability==UNRELIABLE_SEQUENCED || + internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT +// || +// internalPacket->reliability==UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + if (unreliableLinkedListHead==0) + { + internalPacket->unreliableNext=internalPacket; + internalPacket->unreliablePrev=internalPacket; + unreliableLinkedListHead=internalPacket; + return; + } + internalPacket->unreliableNext=unreliableLinkedListHead; + internalPacket->unreliablePrev=unreliableLinkedListHead->unreliablePrev; + internalPacket->unreliablePrev->unreliableNext=internalPacket; + unreliableLinkedListHead->unreliablePrev=internalPacket; + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ValidateResendList(void) const +{ +// unsigned int count1=0, count2=0; +// for (unsigned int i=0; i < RESEND_BUFFER_ARRAY_LENGTH; i++) +// if (resendBuffer[i]) +// count1++; +// +// if (resendLinkedListHead) +// { +// InternalPacket *internalPacket = resendLinkedListHead; +// do +// { +// count2++; +// internalPacket=internalPacket->resendNext; +// } while (internalPacket!=resendLinkedListHead); +// } +// RakAssert(count1==count2); +// RakAssert(count2<=RESEND_BUFFER_ARRAY_LENGTH); +} +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::ResendBufferOverflow(void) const +{ + int index1 = sendReliableMessageNumberIndex & (uint32_t) RESEND_BUFFER_ARRAY_MASK; + // int index2 = (sendReliableMessageNumberIndex+(uint32_t)1) & (uint32_t) RESEND_BUFFER_ARRAY_MASK; + RakAssert(index1= datagramHistory.Size()) + return 0; + + *timeSent=datagramHistory[offsetIntoList].timeSent; + return datagramHistory[offsetIntoList].head; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::RemoveFromDatagramHistory(DatagramSequenceNumberType index) +{ + DatagramSequenceNumberType offsetIntoList = index - datagramHistoryPopCount; + MessageNumberNode *mnm = datagramHistory[offsetIntoList].head; + MessageNumberNode *next; + while (mnm) + { + next=mnm->next; + datagramHistoryMessagePool.Release(mnm, _FILE_AND_LINE_); + mnm=next; + } + datagramHistory[offsetIntoList].head=0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, CCTimeType timeSent) +{ + (void) datagramNumber; + if (datagramHistory.Size()>DATAGRAM_MESSAGE_ID_ARRAY_LENGTH) + { + RemoveFromDatagramHistory(datagramHistoryPopCount); + datagramHistory.Pop(); + datagramHistoryPopCount++; + } + + datagramHistory.Push(DatagramHistoryNode(0, timeSent), _FILE_AND_LINE_); + // printf("%p Pushed empty DatagramHistoryNode to datagram history at index %i\n", this, datagramHistory.Size()-1); +} +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::MessageNumberNode* ReliabilityLayer::AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, DatagramSequenceNumberType messageNumber, CCTimeType timeSent) +{ + (void) datagramNumber; +// RakAssert(datagramHistoryPopCount+(unsigned int) datagramHistory.Size()==datagramNumber); + if (datagramHistory.Size()>DATAGRAM_MESSAGE_ID_ARRAY_LENGTH) + { + RemoveFromDatagramHistory(datagramHistoryPopCount); + datagramHistory.Pop(); + datagramHistoryPopCount++; + } + + MessageNumberNode *mnm = datagramHistoryMessagePool.Allocate(_FILE_AND_LINE_); + mnm->next=0; + mnm->messageNumber=messageNumber; + datagramHistory.Push(DatagramHistoryNode(mnm, timeSent), _FILE_AND_LINE_); + // printf("%p Pushed message %i to DatagramHistoryNode to datagram history at index %i\n", this, messageNumber.val, datagramHistory.Size()-1); + return mnm; +} +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::MessageNumberNode* ReliabilityLayer::AddSubsequentToDatagramHistory(MessageNumberNode *messageNumberNode, DatagramSequenceNumberType messageNumber) +{ + messageNumberNode->next=datagramHistoryMessagePool.Allocate(_FILE_AND_LINE_); + messageNumberNode->next->messageNumber=messageNumber; + messageNumberNode->next->next=0; + return messageNumberNode->next; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AllocInternalPacketData(InternalPacket *internalPacket, InternalPacketRefCountedData **refCounter, unsigned char *externallyAllocatedPtr, unsigned char *ourOffset) +{ + internalPacket->allocationScheme=InternalPacket::REF_COUNTED; + internalPacket->data=ourOffset; + if (*refCounter==0) + { + *refCounter = refCountedDataPool.Allocate(_FILE_AND_LINE_); + // *refCounter = RakNet::OP_NEW(_FILE_AND_LINE_); + (*refCounter)->refCount=1; + (*refCounter)->sharedDataBlock=externallyAllocatedPtr; + } + else + (*refCounter)->refCount++; + internalPacket->refCountedData=(*refCounter); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AllocInternalPacketData(InternalPacket *internalPacket, unsigned char *externallyAllocatedPtr) +{ + internalPacket->allocationScheme=InternalPacket::NORMAL; + internalPacket->data=externallyAllocatedPtr; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AllocInternalPacketData(InternalPacket *internalPacket, unsigned int numBytes, bool allowStack, const char *file, unsigned int line) +{ + if (allowStack && numBytes <= sizeof(internalPacket->stackData)) + { + internalPacket->allocationScheme=InternalPacket::STACK; + internalPacket->data=internalPacket->stackData; + } + else + { + internalPacket->allocationScheme=InternalPacket::NORMAL; + internalPacket->data=(unsigned char*) rakMalloc_Ex(numBytes,file,line); + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::FreeInternalPacketData(InternalPacket *internalPacket, const char *file, unsigned int line) +{ + if (internalPacket==0) + return; + + if (internalPacket->allocationScheme==InternalPacket::REF_COUNTED) + { + if (internalPacket->refCountedData==0) + return; + + internalPacket->refCountedData->refCount--; + if (internalPacket->refCountedData->refCount==0) + { + rakFree_Ex(internalPacket->refCountedData->sharedDataBlock, file, line ); + internalPacket->refCountedData->sharedDataBlock=0; + // RakNet::OP_DELETE(internalPacket->refCountedData,file, line); + refCountedDataPool.Release(internalPacket->refCountedData,file, line); + internalPacket->refCountedData=0; + } + } + else if (internalPacket->allocationScheme==InternalPacket::NORMAL) + { + if (internalPacket->data==0) + return; + + rakFree_Ex(internalPacket->data, file, line ); + internalPacket->data=0; + } + else + { + // Data was on stack + internalPacket->data=0; + } +} +//------------------------------------------------------------------------------------------------------- +unsigned int ReliabilityLayer::GetMaxDatagramSizeExcludingMessageHeaderBytes(void) +{ + unsigned int val = congestionManager.GetMTU() - DatagramHeaderFormat::GetDataHeaderByteLength(); + +#if LIBCAT_SECURITY==1 + if (useSecurity) + val -= cat::AuthenticatedEncryption::OVERHEAD_BYTES; +#endif + + return val; +} +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::GetMaxDatagramSizeExcludingMessageHeaderBits(void) +{ + return BYTES_TO_BITS(GetMaxDatagramSizeExcludingMessageHeaderBytes()); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InitHeapWeights(void) +{ + for (int priorityLevel=0; priorityLevel < NUMBER_OF_PRIORITIES; priorityLevel++) + outgoingPacketBufferNextWeights[priorityLevel]=(1<0) + { + int peekPL = outgoingPacketBuffer.Peek()->priority; + reliabilityHeapWeightType weight = outgoingPacketBuffer.PeekWeight(); + reliabilityHeapWeightType min = weight - (1< +{ + CCTimeType lastUpdateTime; + + DataStructures::List splitPacketList; + +#if PREALLOCATE_LARGE_MESSAGES==1 + InternalPacket *returnedPacket; + bool gotFirstPacket; + unsigned int stride; + unsigned int splitPacketsArrived; +#else + // This is here for progress notifications, since progress notifications return the first packet data, if available + InternalPacket *firstPacket; +#endif + +}; +int RAK_DLL_EXPORT SplitPacketChannelComp( SplitPacketIdType const &key, SplitPacketChannel* const &data ); + +// Helper class +struct BPSTracker +{ + BPSTracker(); + ~BPSTracker(); + void Reset(const char *file, unsigned int line); + inline void Push1(CCTimeType time, uint64_t value1) {dataQueue.Push(TimeAndValue2(time,value1),_FILE_AND_LINE_); total1+=value1; lastSec1+=value1;} +// void Push2(RakNet::TimeUS time, uint64_t value1, uint64_t value2); + inline uint64_t GetBPS1(CCTimeType time) {(void) time; return lastSec1;} + inline uint64_t GetBPS1Threadsafe(CCTimeType time) {(void) time; return lastSec1;} +// uint64_t GetBPS2(RakNetTimeUS time); +// void GetBPS1And2(RakNetTimeUS time, uint64_t &out1, uint64_t &out2); + uint64_t GetTotal1(void) const; +// uint64_t GetTotal2(void) const; + + struct TimeAndValue2 + { + TimeAndValue2(); + ~TimeAndValue2(); + TimeAndValue2(CCTimeType t, uint64_t v1); + // TimeAndValue2(RakNet::TimeUS t, uint64_t v1, uint64_t v2); + // uint64_t value1, value2; + uint64_t value1; + CCTimeType time; + }; + + uint64_t total1, lastSec1; +// uint64_t total2, lastSec2; + DataStructures::Queue dataQueue; + void ClearExpired1(CCTimeType time); +// void ClearExpired2(RakNet::TimeUS time); +}; + +/// Datagram reliable, ordered, unordered and sequenced sends. Flow control. Message splitting, reassembly, and coalescence. +class ReliabilityLayer// +{ +public: + + // Constructor + ReliabilityLayer(); + + // Destructor + ~ReliabilityLayer(); + + /// Resets the layer for reuse + void Reset( bool resetVariables, int MTUSize, bool _useSecurity ); + + /// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable packet + /// Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. + /// \param[in] time Time, in MS + void SetTimeoutTime( RakNet::TimeMS time ); + + /// Returns the value passed to SetTimeoutTime. or the default if it was never called + /// \param[out] the value passed to SetTimeoutTime + RakNet::TimeMS GetTimeoutTime(void); + + /// Packets are read directly from the socket layer and skip the reliability layer because unconnected players do not use the reliability layer + /// This function takes packet data after a player has been confirmed as connected. + /// \param[in] buffer The socket data + /// \param[in] length The length of the socket data + /// \param[in] systemAddress The player that this data is from + /// \param[in] messageHandlerList A list of registered plugins + /// \param[in] MTUSize maximum datagram size + /// \retval true Success + /// \retval false Modified packet + bool HandleSocketReceiveFromConnectedPlayer( + const char *buffer, unsigned int length, SystemAddress &systemAddress, DataStructures::List &messageHandlerList, int MTUSize, + SOCKET s, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType timeRead, BitStream &updateBitStream); + + /// This allocates bytes and writes a user-level message to those bytes. + /// \param[out] data The message + /// \return Returns number of BITS put into the buffer + BitSize_t Receive( unsigned char**data ); + + /// Puts data on the send queue + /// \param[in] data The data to send + /// \param[in] numberOfBitsToSend The length of \a data in bits + /// \param[in] priority The priority level for the send + /// \param[in] reliability The reliability type for the send + /// \param[in] orderingChannel 0 to 31. Specifies what channel to use, for relational ordering and sequencing of packets. + /// \param[in] makeDataCopy If true \a data will be copied. Otherwise, only a pointer will be stored. + /// \param[in] MTUSize maximum datagram size + /// \param[in] currentTime Current time, as per RakNet::GetTimeMS() + /// \param[in] receipt This number will be returned back with ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS and is only returned with the reliability types that contain RECEIPT in the name + /// \return True or false for success or failure. + bool Send( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, unsigned char orderingChannel, bool makeDataCopy, int MTUSize, CCTimeType currentTime, uint32_t receipt ); + + /// Call once per game cycle. Handles internal lists and actually does the send. + /// \param[in] s the communication end point + /// \param[in] systemAddress The Unique Player Identifier who shouldhave sent some packets + /// \param[in] MTUSize maximum datagram size + /// \param[in] time current system time + /// \param[in] maxBitsPerSecond if non-zero, enforces that outgoing bandwidth does not exceed this amount + /// \param[in] messageHandlerList A list of registered plugins + void Update( SOCKET s, SystemAddress &systemAddress, int MTUSize, CCTimeType time, + unsigned bitsPerSecondLimit, + DataStructures::List &messageHandlerList, + RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream); + + /// Were you ever unable to deliver a packet despite retries? + /// \return true means the connection has been lost. Otherwise not. + bool IsDeadConnection( void ) const; + + /// Causes IsDeadConnection to return true + void KillConnection(void); + + /// Get Statistics + /// \return A pointer to a static struct, filled out with current statistical information. + RakNetStatistics * GetStatistics( RakNetStatistics *rns ); + + ///Are we waiting for any data to be sent out or be processed by the player? + bool IsOutgoingDataWaiting(void); + bool AreAcksWaiting(void); + + // Set outgoing lag and packet loss properties + void ApplyNetworkSimulator( double _maxSendBPS, RakNet::TimeMS _minExtraPing, RakNet::TimeMS _extraPingVariance ); + + /// Returns if you previously called ApplyNetworkSimulator + /// \return If you previously called ApplyNetworkSimulator + bool IsNetworkSimulatorActive( void ); + + void SetSplitMessageProgressInterval(int interval); + void SetUnreliableTimeout(RakNet::TimeMS timeoutMS); + /// Has a lot of time passed since the last ack + bool AckTimeout(RakNet::Time curTime); + CCTimeType GetNextSendTime(void) const; + CCTimeType GetTimeBetweenPackets(void) const; + + + + RakNet::TimeMS GetTimeLastDatagramArrived(void) const {return timeLastDatagramArrived;} + + // If true, will update time between packets quickly based on ping calculations + //void SetDoFastThroughputReactions(bool fast); + + // Encoded as numMessages[unsigned int], message1BitLength[unsigned int], message1Data (aligned), ... + //void GetUndeliveredMessages(RakNet::BitStream *messages, int MTUSize); + +private: + /// Send the contents of a bitstream to the socket + /// \param[in] s The socket used for sending data + /// \param[in] systemAddress The address and port to send to + /// \param[in] bitStream The data to send. + void SendBitStream( SOCKET s, SystemAddress &systemAddress, RakNet::BitStream *bitStream, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType currentTime); + + ///Parse an internalPacket and create a bitstream to represent this data + /// \return Returns number of bits used + BitSize_t WriteToBitStreamFromInternalPacket( RakNet::BitStream *bitStream, const InternalPacket *const internalPacket, CCTimeType curTime ); + + + /// Parse a bitstream and create an internal packet to represent this data + InternalPacket* CreateInternalPacketFromBitStream( RakNet::BitStream *bitStream, CCTimeType time ); + + /// Does what the function name says + unsigned RemovePacketFromResendListAndDeleteOlderReliableSequenced( const MessageNumberType messageNumber, CCTimeType time, DataStructures::List &messageHandlerList, const SystemAddress &systemAddress ); + + /// Acknowledge receipt of the packet with the specified messageNumber + void SendAcknowledgementPacket( const DatagramSequenceNumberType messageNumber, CCTimeType time); + + /// This will return true if we should not send at this time + bool IsSendThrottled( int MTUSize ); + + /// We lost a packet + void UpdateWindowFromPacketloss( CCTimeType time ); + + /// Increase the window size + void UpdateWindowFromAck( CCTimeType time ); + + /// Parse an internalPacket and figure out how many header bits would be written. Returns that number + BitSize_t GetMaxMessageHeaderLengthBits( void ); + BitSize_t GetMessageHeaderLengthBits( const InternalPacket *const internalPacket ); + + /// Get the SHA1 code + void GetSHA1( unsigned char * const buffer, unsigned int nbytes, char code[ SHA1_LENGTH ] ); + + /// Check the SHA1 code + bool CheckSHA1( char code[ SHA1_LENGTH ], unsigned char * const buffer, unsigned int nbytes ); + + /// Search the specified list for sequenced packets on the specified ordering channel, optionally skipping those with splitPacketId, and delete them + void DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::List&theList, int splitPacketId = -1 ); + + /// Search the specified list for sequenced packets with a value less than orderingIndex and delete them + void DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::Queue&theList ); + + /// Returns true if newPacketOrderingIndex is older than the waitingForPacketOrderingIndex + bool IsOlderOrderedPacket( OrderingIndexType newPacketOrderingIndex, OrderingIndexType waitingForPacketOrderingIndex ); + + /// Split the passed packet into chunks under MTU_SIZE bytes (including headers) and save those new chunks + void SplitPacket( InternalPacket *internalPacket ); + + /// Insert a packet into the split packet list + void InsertIntoSplitPacketList( InternalPacket * internalPacket, CCTimeType time ); + + /// Take all split chunks with the specified splitPacketId and try to reconstruct a packet. If we can, allocate and return it. Otherwise return 0 + InternalPacket * BuildPacketFromSplitPacketList( SplitPacketIdType splitPacketId, CCTimeType time, + SOCKET s, SystemAddress &systemAddress, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream); + InternalPacket * BuildPacketFromSplitPacketList( SplitPacketChannel *splitPacketChannel, CCTimeType time ); + + /// Delete any unreliable split packets that have long since expired + //void DeleteOldUnreliableSplitPackets( CCTimeType time ); + + /// Creates a copy of the specified internal packet with data copied from the original starting at dataByteOffset for dataByteLength bytes. + /// Does not copy any split data parameters as that information is always generated does not have any reason to be copied + InternalPacket * CreateInternalPacketCopy( InternalPacket *original, int dataByteOffset, int dataByteLength, CCTimeType time ); + + /// Get the specified ordering list + // DataStructures::LinkedList *GetOrderingListAtOrderingStream( unsigned char orderingChannel ); + + /// Add the internal packet to the ordering list in order based on order index + // void AddToOrderingList( InternalPacket * internalPacket ); + + /// Inserts a packet into the resend list in order + void InsertPacketIntoResendList( InternalPacket *internalPacket, CCTimeType time, bool firstResend, bool modifyUnacknowledgedBytes ); + + /// Memory handling + void FreeMemory( bool freeAllImmediately ); + + /// Memory handling + void FreeThreadSafeMemory( void ); + + // Initialize the variables + void InitializeVariables( void ); + + /// Given the current time, is this time so old that we should consider it a timeout? + bool IsExpiredTime(unsigned int input, CCTimeType currentTime) const; + + // Make it so we don't do resends within a minimum threshold of time + void UpdateNextActionTime(void); + + + /// Does this packet number represent a packet that was skipped (out of order?) + //unsigned int IsReceivedPacketHole(unsigned int input, RakNet::TimeMS currentTime) const; + + /// Skip an element in the received packets list + //unsigned int MakeReceivedPacketHole(unsigned int input) const; + + /// How many elements are waiting to be resent? + unsigned int GetResendListDataSize(void) const; + + /// Update all memory which is not threadsafe + void UpdateThreadedMemory(void); + + void CalculateHistogramAckSize(void); + + // Used ONLY for RELIABLE_ORDERED + // RELIABLE_SEQUENCED just returns the newest one + // DataStructures::List*> orderingList; + DataStructures::Queue outputQueue; + int splitMessageProgressInterval; + CCTimeType unreliableTimeout; + + struct MessageNumberNode + { + DatagramSequenceNumberType messageNumber; + MessageNumberNode *next; + }; + struct DatagramHistoryNode + { + DatagramHistoryNode() {} + DatagramHistoryNode(MessageNumberNode *_head, CCTimeType ts + ) : + head(_head), timeSent(ts) + {} + MessageNumberNode *head; + CCTimeType timeSent; + }; + // Queue length is programmatically restricted to DATAGRAM_MESSAGE_ID_ARRAY_LENGTH + // This is essentially an O(1) lookup to get a DatagramHistoryNode given an index + // datagramHistory holds a linked list of MessageNumberNode. Each MessageNumberNode refers to one element in resendList which can be cleared on an ack. + DataStructures::Queue datagramHistory; + DataStructures::MemoryPool datagramHistoryMessagePool; + + struct UnreliableWithAckReceiptNode + { + UnreliableWithAckReceiptNode() {} + UnreliableWithAckReceiptNode(DatagramSequenceNumberType _datagramNumber, uint32_t _sendReceiptSerial, RakNet::TimeUS _nextActionTime) : + datagramNumber(_datagramNumber), sendReceiptSerial(_sendReceiptSerial), nextActionTime(_nextActionTime) + {} + DatagramSequenceNumberType datagramNumber; + uint32_t sendReceiptSerial; + RakNet::TimeUS nextActionTime; + }; + DataStructures::List unreliableWithAckReceiptHistory; + + void RemoveFromDatagramHistory(DatagramSequenceNumberType index); + MessageNumberNode* GetMessageNumberNodeByDatagramIndex(DatagramSequenceNumberType index, CCTimeType *timeSent); + void AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, CCTimeType timeSent); + MessageNumberNode* AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, DatagramSequenceNumberType messageNumber, CCTimeType timeSent); + MessageNumberNode* AddSubsequentToDatagramHistory(MessageNumberNode *messageNumberNode, DatagramSequenceNumberType messageNumber); + DatagramSequenceNumberType datagramHistoryPopCount; + + DataStructures::MemoryPool internalPacketPool; + // DataStructures::BPlusTree resendTree; + InternalPacket *resendBuffer[RESEND_BUFFER_ARRAY_LENGTH]; + InternalPacket *resendLinkedListHead; + InternalPacket *unreliableLinkedListHead; + void RemoveFromUnreliableLinkedList(InternalPacket *internalPacket); + void AddToUnreliableLinkedList(InternalPacket *internalPacket); +// unsigned int numPacketsOnResendBuffer; + //unsigned int blockWindowIncreaseUntilTime; + // DataStructures::RangeList acknowlegements; + // Resend list is a tree of packets we need to resend + + // Set to the current time when the resend queue is no longer empty + // Set to zero when it becomes empty + // Set to the current time if it is not zero, and we get incoming data + // If the current time - timeResendQueueNonEmpty is greater than a threshold, we are disconnected +// CCTimeType timeResendQueueNonEmpty; + RakNet::TimeMS timeLastDatagramArrived; + + + // If we backoff due to packetloss, don't remeasure until all waiting resends have gone out or else we overcount +// bool packetlossThisSample; +// int backoffThisSample; +// unsigned packetlossThisSampleResendCount; +// CCTimeType lastPacketlossTime; + + //DataStructures::Queue sendPacketSet[ NUMBER_OF_PRIORITIES ]; + DataStructures::Heap outgoingPacketBuffer; + reliabilityHeapWeightType outgoingPacketBufferNextWeights[NUMBER_OF_PRIORITIES]; + void InitHeapWeights(void); + reliabilityHeapWeightType GetNextWeight(int priorityLevel); +// unsigned int messageInSendBuffer[NUMBER_OF_PRIORITIES]; +// double bytesInSendBuffer[NUMBER_OF_PRIORITIES]; + + + DataStructures::OrderedList splitPacketChannelList; + + MessageNumberType sendReliableMessageNumberIndex; + MessageNumberType internalOrderIndex; + //unsigned int windowSize; + //RakNet::BitStream updateBitStream; + bool deadConnection, cheater; + SplitPacketIdType splitPacketId; + RakNet::TimeMS timeoutTime; // How long to wait in MS before timing someone out + //int MAX_AVERAGE_PACKETS_PER_SECOND; // Name says it all +// int RECEIVED_PACKET_LOG_LENGTH, requestedReceivedPacketLogLength; // How big the receivedPackets array is +// unsigned int *receivedPackets; + RakNetStatistics statistics; + + // Algorithm for blending ordered and sequenced on the same channel: + // 1. Each ordered message transmits OrderingIndexType orderedWriteIndex. There are NUMBER_OF_ORDERED_STREAMS independent values of these. The value + // starts at 0. Every time an ordered message is sent, the value increments by 1 + // 2. Each sequenced message contains the current value of orderedWriteIndex for that channel, and additionally OrderingIndexType sequencedWriteIndex. + // sequencedWriteIndex resets to 0 every time orderedWriteIndex increments. It increments by 1 every time a sequenced message is sent. + // 3. The receiver maintains the next expected value for the orderedWriteIndex, stored in orderedReadIndex. + // 4. As messages arrive: + // If a message has the current ordering index, and is sequenced, and is < the current highest sequence value, discard + // If a message has the current ordering index, and is sequenced, and is >= the current highest sequence value, return immediately + // If a message has a greater ordering index, and is sequenced or ordered, buffer it + // If a message has the current ordering index, and is ordered, buffer, then push off messages from buffer + // 5. Pushing off messages from buffer: + // Messages in buffer are put in a minheap. The value of each node is calculated such that messages are returned: + // A. (lowest ordering index, lowest sequence index) + // B. (lowest ordering index, no sequence index) + // Messages are pushed off until the heap is empty, or the next message to be returned does not preserve the ordered index + // For an empty heap, the heap weight should start at the lowest value based on the next expected ordering index, to avoid variable overflow + + // Sender increments this by 1 for every ordered message sent + OrderingIndexType orderedWriteIndex[NUMBER_OF_ORDERED_STREAMS]; + // Sender increments by 1 for every sequenced message sent. Resets to 0 when an ordered message is sent + OrderingIndexType sequencedWriteIndex[NUMBER_OF_ORDERED_STREAMS]; + // Next expected index for ordered messages. + OrderingIndexType orderedReadIndex[NUMBER_OF_ORDERED_STREAMS]; + // Highest value received for sequencedWriteIndex for the current value of orderedReadIndex on the same channel. + OrderingIndexType highestSequencedReadIndex[NUMBER_OF_ORDERED_STREAMS]; + DataStructures::Heap orderingHeaps[NUMBER_OF_ORDERED_STREAMS]; + OrderingIndexType heapIndexOffsets[NUMBER_OF_ORDERED_STREAMS]; + + + + + + + +// CCTimeType histogramStart; +// unsigned histogramBitsSent; + + + /// Memory-efficient receivedPackets algorithm: + /// receivedPacketsBaseIndex is the packet number we are expecting + /// Everything under receivedPacketsBaseIndex is a packet we already got + /// Everything over receivedPacketsBaseIndex is stored in hasReceivedPacketQueue + /// It stores the time to stop waiting for a particular packet number, where the packet number is receivedPacketsBaseIndex + the index into the queue + /// If 0, we got got that packet. Otherwise, the time to give up waiting for that packet. + /// If we get a packet number where (receivedPacketsBaseIndex-packetNumber) is less than half the range of receivedPacketsBaseIndex then it is a duplicate + /// Otherwise, it is a duplicate packet (and ignore it). + // DataStructures::Queue hasReceivedPacketQueue; + DataStructures::Queue hasReceivedPacketQueue; + DatagramSequenceNumberType receivedPacketsBaseIndex; + bool resetReceivedPackets; + + CCTimeType lastUpdateTime; + CCTimeType timeBetweenPackets, nextSendTime; + + + +// CCTimeType ackPingSamples[ACK_PING_SAMPLES_SIZE]; // Must be range of unsigned char to wrap ackPingIndex properly + CCTimeType ackPingSum; + unsigned char ackPingIndex; + //CCTimeType nextLowestPingReset; + RemoteSystemTimeType remoteSystemTime; +// bool continuousSend; +// CCTimeType lastTimeBetweenPacketsIncrease,lastTimeBetweenPacketsDecrease; + // Limit changes in throughput to once per ping - otherwise even if lag starts we don't know about it + // In the meantime the connection is flooded and overrun. + CCTimeType nextAllowedThroughputSample; + bool bandwidthExceededStatistic; + + // If Update::maxBitsPerSecond > 0, then throughputCapCountdown is used as a timer to prevent sends for some amount of time after each send, depending on + // the amount of data sent + long long throughputCapCountdown; + + unsigned receivePacketCount; + +#ifdef _DEBUG + struct DataAndTime// + { + SOCKET s; + char data[ MAXIMUM_MTU_SIZE ]; + unsigned int length; + RakNet::TimeMS sendTime; + // SystemAddress systemAddress; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + }; + DataStructures::Queue delayList; + + // Internet simulator + double packetloss; + RakNet::TimeMS minExtraPing, extraPingVariance; +#endif + + CCTimeType elapsedTimeSinceLastUpdate; + + CCTimeType nextAckTimeToSend; + + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL==1 + RakNet::CCRakNetSlidingWindow congestionManager; +#else + RakNet::CCRakNetUDT congestionManager; +#endif + + + uint32_t unacknowledgedBytes; + + bool ResendBufferOverflow(void) const; + void ValidateResendList(void) const; + void ResetPacketsAndDatagrams(void); + void PushPacket(CCTimeType time, InternalPacket *internalPacket, bool isReliable); + void PushDatagram(void); + bool TagMostRecentPushAsSecondOfPacketPair(void); + void ClearPacketsAndDatagrams(void); + void MoveToListHead(InternalPacket *internalPacket); + void RemoveFromList(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes); + void AddToListTail(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes); + void PopListHead(bool modifyUnacknowledgedBytes); + bool IsResendQueueEmpty(void) const; + void SortSplitPacketList(DataStructures::List &data, unsigned int leftEdge, unsigned int rightEdge) const; + void SendACKs(SOCKET s, SystemAddress &systemAddress, CCTimeType time, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream); + + DataStructures::List packetsToSendThisUpdate; + DataStructures::List packetsToDeallocThisUpdate; + // boundary is in packetsToSendThisUpdate, inclusive + DataStructures::List packetsToSendThisUpdateDatagramBoundaries; + DataStructures::List datagramsToSendThisUpdateIsPair; + DataStructures::List datagramSizesInBytes; + BitSize_t datagramSizeSoFar; + BitSize_t allDatagramSizesSoFar; + double totalUserDataBytesAcked; + CCTimeType timeOfLastContinualSend; + CCTimeType timeToNextUnreliableCull; + + // This doesn't need to be a member, but I do it to avoid reallocations + DataStructures::RangeList incomingAcks; + + // Every 16 datagrams, we make sure the 17th datagram goes out the same update tick, and is the same size as the 16th + int countdownToNextPacketPair; + InternalPacket* AllocateFromInternalPacketPool(void); + void ReleaseToInternalPacketPool(InternalPacket *ip); + + DataStructures::RangeList acknowlegements; + DataStructures::RangeList NAKs; + bool remoteSystemNeedsBAndAS; + + unsigned int GetMaxDatagramSizeExcludingMessageHeaderBytes(void); + BitSize_t GetMaxDatagramSizeExcludingMessageHeaderBits(void); + + // ourOffset refers to a section within externallyAllocatedPtr. Do not deallocate externallyAllocatedPtr until all references are lost + void AllocInternalPacketData(InternalPacket *internalPacket, InternalPacketRefCountedData **refCounter, unsigned char *externallyAllocatedPtr, unsigned char *ourOffset); + // Set the data pointer to externallyAllocatedPtr, do not allocate + void AllocInternalPacketData(InternalPacket *internalPacket, unsigned char *externallyAllocatedPtr); + // Allocate new + void AllocInternalPacketData(InternalPacket *internalPacket, unsigned int numBytes, bool allowStack, const char *file, unsigned int line); + void FreeInternalPacketData(InternalPacket *internalPacket, const char *file, unsigned int line); + DataStructures::MemoryPool refCountedDataPool; + + BPSTracker bpsMetrics[RNS_PER_SECOND_METRICS_COUNT]; + CCTimeType lastBpsClear; + +#if LIBCAT_SECURITY==1 +public: + cat::AuthenticatedEncryption* GetAuthenticatedEncryption(void) { return &auth_enc; } + +protected: + cat::AuthenticatedEncryption auth_enc; + bool useSecurity; +#endif // LIBCAT_SECURITY +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/ReplicaEnums.h b/project/lib_projects/raknet/jni/RaknetSources/ReplicaEnums.h new file mode 100755 index 0000000..93aeef8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ReplicaEnums.h @@ -0,0 +1,43 @@ +/// \file +/// \brief Contains enumerations used by the ReplicaManager system. This file is a lightweight header, so you can include it without worrying about linking in lots of other crap +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __REPLICA_ENUMS_H +#define __REPLICA_ENUMS_H + +/// Replica interface flags, used to enable and disable function calls on the Replica object +/// Passed to ReplicaManager::EnableReplicaInterfaces and ReplicaManager::DisableReplicaInterfaces +enum +{ + REPLICA_RECEIVE_DESTRUCTION=1<<0, + REPLICA_RECEIVE_SERIALIZE=1<<1, + REPLICA_RECEIVE_SCOPE_CHANGE=1<<2, + REPLICA_SEND_CONSTRUCTION=1<<3, + REPLICA_SEND_DESTRUCTION=1<<4, + REPLICA_SEND_SCOPE_CHANGE=1<<5, + REPLICA_SEND_SERIALIZE=1<<6, + REPLICA_SET_ALL = 0xFF // Allow all of the above +}; + +enum ReplicaReturnResult +{ + /// This means call the function again later, with the same parameters + REPLICA_PROCESS_LATER, + /// This means we are done processing (the normal result to return) + REPLICA_PROCESSING_DONE, + /// This means cancel the processing - don't send any network messages and don't change the current state. + REPLICA_CANCEL_PROCESS, + /// Same as REPLICA_PROCESSING_DONE, where a message is sent, but does not clear the send bit. + /// Useful for multi-part sends with different reliability levels. + /// Only currently used by Replica::Serialize + REPLICA_PROCESS_AGAIN, + /// Only returned from the Replica::SendConstruction interface, means act as if the other system had this object but don't actually + /// Send a construction packet. This way you will still send scope and serialize packets to that system + REPLICA_PROCESS_IMPLICIT +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/ReplicaManager3.cpp b/project/lib_projects/raknet/jni/RaknetSources/ReplicaManager3.cpp new file mode 100755 index 0000000..0bf0958 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ReplicaManager3.cpp @@ -0,0 +1,2250 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReplicaManager3==1 + +#include "ReplicaManager3.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "NetworkIDManager.h" + +using namespace RakNet; + +// DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS(LastSerializationResult,Replica3*,replica); + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool PRO::operator==( const PRO& right ) const +{ + return priority == right.priority && reliability == right.reliability && orderingChannel == right.orderingChannel && sendReceipt == right.sendReceipt; +} + +bool PRO::operator!=( const PRO& right ) const +{ + return priority != right.priority || reliability != right.reliability || orderingChannel != right.orderingChannel || sendReceipt != right.sendReceipt; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +int Connection_RM3::Replica3LSRComp( Replica3 * const &replica3, LastSerializationResult * const &data ) +{ + if (replica3->GetNetworkID() < data->replica->GetNetworkID()) + return -1; + if (replica3->GetNetworkID() > data->replica->GetNetworkID()) + return 1; + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +LastSerializationResult::LastSerializationResult() +{ + replica=0; + lastSerializationResultBS=0; +} +LastSerializationResult::~LastSerializationResult() +{ + if (lastSerializationResultBS) + RakNet::OP_DELETE(lastSerializationResultBS,_FILE_AND_LINE_); +} +void LastSerializationResult::AllocBS(void) +{ + if (lastSerializationResultBS==0) + { + lastSerializationResultBS=RakNet::OP_NEW(_FILE_AND_LINE_); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ReplicaManager3::ReplicaManager3() +{ + defaultSendParameters.orderingChannel=0; + defaultSendParameters.priority=HIGH_PRIORITY; + defaultSendParameters.reliability=RELIABLE_ORDERED; + defaultSendParameters.sendReceipt=0; + autoSerializeInterval=30; + lastAutoSerializeOccurance=0; + worldId=0; + autoCreateConnections=true; + autoDestroyConnections=true; + networkIDManager=0; + currentlyDeallocatingReplica=0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ReplicaManager3::~ReplicaManager3() +{ + if (autoDestroyConnections) + { + // Clear() calls DeallocConnection(), which is pure virtual and cannot be called from the destructor + RakAssert(connectionList.Size()==0); + } + Clear(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetAutoManageConnections(bool autoCreate, bool autoDestroy) +{ + autoCreateConnections=autoCreate; + autoDestroyConnections=autoDestroy; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool ReplicaManager3::PushConnection(RakNet::Connection_RM3 *newConnection) +{ + if (newConnection==0) + return false; + if (GetConnectionByGUID(newConnection->GetRakNetGUID())) + return false; + unsigned int index = connectionList.GetIndexOf(newConnection); + if (index==(unsigned int)-1) + { + connectionList.Push(newConnection,_FILE_AND_LINE_); + + // Send message to validate the connection + newConnection->SendValidation(rakPeerInterface, worldId); + + Connection_RM3::ConstructionMode constructionMode = newConnection->QueryConstructionMode(); + if (constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int pushIdx; + for (pushIdx=0; pushIdx < userReplicaList.Size(); pushIdx++) + newConnection->OnLocalReference(userReplicaList[pushIdx], this); + } + } + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::DeallocReplicaNoBroadcastDestruction(RakNet::Connection_RM3 *connection, RakNet::Replica3 *replica3) +{ + currentlyDeallocatingReplica=replica3; + replica3->DeallocReplica(connection); + currentlyDeallocatingReplica=0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNet::Connection_RM3 * ReplicaManager3::PopConnection(unsigned int index) +{ + DataStructures::List replicaList; + DataStructures::List destructionList; + DataStructures::List broadcastList; + RakNet::Connection_RM3 *connection; + unsigned int index2; + RM3ActionOnPopConnection action; + + connection=connectionList[index]; + + // Clear out downloadGroup + connection->ClearDownloadGroup(rakPeerInterface); + + RakNetGUID guid = connection->GetRakNetGUID(); + // This might be wrong, I am relying on the variable creatingSystemGuid which is transmitted + // automatically from the first system to reference the object. However, if an object changes + // owners then it is not going to be returned here, and therefore QueryActionOnPopConnection() + // will not be called for the new owner. + GetReplicasCreatedByGuid(guid, replicaList); + + for (index2=0; index2 < replicaList.Size(); index2++) + { + action = replicaList[index2]->QueryActionOnPopConnection(connection); + replicaList[index2]->OnPoppedConnection(connection); + if (action==RM3AOPC_DELETE_REPLICA) + { + destructionList.Push( replicaList[index2], _FILE_AND_LINE_ ); + } + else if (action==RM3AOPC_DELETE_REPLICA_AND_BROADCAST_DESTRUCTION) + { + destructionList.Push( replicaList[index2], _FILE_AND_LINE_ ); + + broadcastList.Push( replicaList[index2], _FILE_AND_LINE_ ); + } + } + + BroadcastDestructionList(broadcastList, connection->GetSystemAddress()); + for (index2=0; index2 < destructionList.Size(); index2++) + { + destructionList[index2]->PreDestruction(connection); + destructionList[index2]->DeallocReplica(connection); + } + + connectionList.RemoveAtIndex(index); + return connection; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNet::Connection_RM3 * ReplicaManager3::PopConnection(RakNetGUID guid) +{ + unsigned int index; + + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->GetRakNetGUID()==guid) + { + return PopConnection(index); + } + } + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::Reference(RakNet::Replica3 *replica3) +{ + unsigned int index = ReferenceInternal(replica3); + + if (index!=(unsigned int)-1) + { + unsigned int pushIdx; + for (pushIdx=0; pushIdx < connectionList.Size(); pushIdx++) + { + Connection_RM3::ConstructionMode constructionMode = connectionList[pushIdx]->QueryConstructionMode(); + if (constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + connectionList[pushIdx]->OnLocalReference(replica3, this); + } + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned int ReplicaManager3::ReferenceInternal(RakNet::Replica3 *replica3) +{ + unsigned int index; + index = userReplicaList.GetIndexOf(replica3); + if (index==(unsigned int)-1) + { + RakAssert(networkIDManager); + replica3->SetNetworkIDManager(networkIDManager); + if (replica3->creatingSystemGUID==UNASSIGNED_RAKNET_GUID) + replica3->creatingSystemGUID=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + replica3->replicaManager=this; + userReplicaList.Push(replica3,_FILE_AND_LINE_); + index=userReplicaList.Size()-1; + } + return index; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::Dereference(RakNet::Replica3 *replica3) +{ + unsigned int index, index2; + for (index=0; index < userReplicaList.Size(); index++) + { + if (userReplicaList[index]==replica3) + { + userReplicaList.RemoveAtIndex(index); + break; + } + } + + // Remove from all connections + for (index2=0; index2 < connectionList.Size(); index2++) + { + connectionList[index2]->OnDereference(replica3, this); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::DereferenceList(DataStructures::List &replicaListIn) +{ + unsigned int index; + for (index=0; index < replicaListIn.Size(); index++) + Dereference(replicaListIn[index]); +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetReplicasCreatedByMe(DataStructures::List &replicaListOut) +{ + RakNetGUID myGuid = rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + GetReplicasCreatedByGuid(rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS), replicaListOut); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetReferencedReplicaList(DataStructures::List &replicaListOut) +{ + replicaListOut=userReplicaList; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetReplicasCreatedByGuid(RakNetGUID guid, DataStructures::List &replicaListOut) +{ + replicaListOut.Clear(false,_FILE_AND_LINE_); + unsigned int index; + for (index=0; index < userReplicaList.Size(); index++) + { + if (userReplicaList[index]->creatingSystemGUID==guid) + replicaListOut.Push(userReplicaList[index],_FILE_AND_LINE_); + } +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned ReplicaManager3::GetReplicaCount(void) const +{ + return userReplicaList.Size(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3 *ReplicaManager3::GetReplicaAtIndex(unsigned index) +{ + return userReplicaList[index]; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned int ReplicaManager3::GetConnectionCount(void) const +{ + return connectionList.Size(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3* ReplicaManager3::GetConnectionAtIndex(unsigned index) const +{ + return connectionList[index]; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3* ReplicaManager3::GetConnectionBySystemAddress(const SystemAddress &sa) const +{ + unsigned int index; + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->GetSystemAddress()==sa) + { + return connectionList[index]; + } + } + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3* ReplicaManager3::GetConnectionByGUID(RakNetGUID guid) const +{ + unsigned int index; + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->GetRakNetGUID()==guid) + { + return connectionList[index]; + } + } + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetDefaultOrderingChannel(char def) +{ + defaultSendParameters.orderingChannel=def; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetDefaultPacketPriority(PacketPriority def) +{ + defaultSendParameters.priority=def; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetDefaultPacketReliability(PacketReliability def) +{ + defaultSendParameters.reliability=def; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetAutoSerializeInterval(RakNet::Time intervalMS) +{ + autoSerializeInterval=intervalMS; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetConnectionsThatHaveReplicaConstructed(Replica3 *replica, DataStructures::List &connectionsThatHaveConstructedThisReplica) +{ + connectionsThatHaveConstructedThisReplica.Clear(false,_FILE_AND_LINE_); + unsigned int index; + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->HasReplicaConstructed(replica)) + connectionsThatHaveConstructedThisReplica.Push(connectionList[index],_FILE_AND_LINE_); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::Clear(void) +{ + if (autoDestroyConnections) + { + for (unsigned int i=0; i < connectionList.Size(); i++) + DeallocConnection(connectionList[i]); + } + else + { + // Clear out downloadGroup even if not auto destroying the connection, since the packets need to go back to RakPeer + for (unsigned int i=0; i < connectionList.Size(); i++) + connectionList[i]->ClearDownloadGroup(rakPeerInterface); + } + + + + connectionList.Clear(true,_FILE_AND_LINE_); + userReplicaList.Clear(true,_FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PRO ReplicaManager3::GetDefaultSendParameters(void) const +{ + return defaultSendParameters; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetWorldID(unsigned char id) +{ + worldId=id; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned char ReplicaManager3::GetWorldID(void) const +{ + return worldId; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +NetworkIDManager *ReplicaManager3::GetNetworkIDManager(void) const +{ + return networkIDManager; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetNetworkIDManager(NetworkIDManager *_networkIDManager) +{ + networkIDManager=_networkIDManager; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnReceive(Packet *packet) +{ + if (packet->length<2) + return RR_CONTINUE_PROCESSING; + + unsigned char incomingWorldId; + + RakNet::Time timestamp=0; + unsigned char packetIdentifier, packetDataOffset; + if ( ( unsigned char ) packet->data[ 0 ] == ID_TIMESTAMP ) + { + if ( packet->length > sizeof( unsigned char ) + sizeof( RakNet::Time ) ) + { + packetIdentifier = ( unsigned char ) packet->data[ sizeof( unsigned char ) + sizeof( RakNet::Time ) ]; + // Required for proper endian swapping + RakNet::BitStream tsBs(packet->data+sizeof(MessageID),packet->length-1,false); + tsBs.Read(timestamp); + incomingWorldId=packet->data[sizeof( unsigned char )*2 + sizeof( RakNet::Time )]; + packetDataOffset=sizeof( unsigned char )*3 + sizeof( RakNet::Time ); + } + else + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else + { + packetIdentifier = ( unsigned char ) packet->data[ 0 ]; + incomingWorldId=packet->data[sizeof( unsigned char )]; + packetDataOffset=sizeof( unsigned char )*2; + } + + switch (packetIdentifier) + { + case ID_REPLICA_MANAGER_CONSTRUCTION: + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnConstruction(packet, packet->data, packet->length, packet->guid, packetDataOffset); + case ID_REPLICA_MANAGER_SERIALIZE: + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnSerialize(packet, packet->data, packet->length, packet->guid, timestamp, packetDataOffset); + case ID_REPLICA_MANAGER_DOWNLOAD_STARTED: + if (packet->wasGeneratedLocally==false) + { + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnDownloadStarted(packet, packet->data, packet->length, packet->guid, packetDataOffset); + } + else + break; + case ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE: + if (packet->wasGeneratedLocally==false) + { + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnDownloadComplete(packet, packet->data, packet->length, packet->guid, packetDataOffset); + } + else + break; + case ID_REPLICA_MANAGER_SCOPE_CHANGE: + { + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + + Connection_RM3 *connection = GetConnectionByGUID(packet->guid); + if (connection && connection->isValidated==false) + { + // This connection is now confirmed bidirectional + connection->isValidated=true; + // Reply back on validation + connection->SendValidation(rakPeerInterface,worldId); + } + } + } + + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::AutoConstructByQuery(ReplicaManager3 *replicaManager3) +{ + ValidateLists(replicaManager3); + + ConstructionMode constructionMode = QueryConstructionMode(); + + unsigned int index; + RM3ConstructionState constructionState; + LastSerializationResult *lsr; + index=0; + + constructedReplicasCulled.Clear(false,_FILE_AND_LINE_); + destroyedReplicasCulled.Clear(false,_FILE_AND_LINE_); + + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + while (index < queryToConstructReplicaList.Size()) + { + lsr=queryToConstructReplicaList[index]; + constructionState=lsr->replica->QueryConstruction(this, replicaManager3); + if (constructionState==RM3CS_ALREADY_EXISTS_REMOTELY || constructionState==RM3CS_ALREADY_EXISTS_REMOTELY_DO_NOT_CONSTRUCT) + { + OnReplicaAlreadyExists(index, replicaManager3); + if (constructionState==RM3CS_ALREADY_EXISTS_REMOTELY) + constructedReplicasCulled.Push(lsr->replica,_FILE_AND_LINE_); + + /* + if (constructionState==RM3CS_ALREADY_EXISTS_REMOTELY) + { + // Serialize construction data to this connection + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_REPLICA_MANAGER_3_SERIALIZE_CONSTRUCTION_EXISTING); + bsOut.Write(replicaManager3->GetWorldID()); + NetworkID networkId; + networkId=lsr->replica->GetNetworkID(); + bsOut.Write(networkId); + BitSize_t bitsWritten = bsOut.GetNumberOfBitsUsed(); + lsr->replica->SerializeConstructionExisting(&bsOut, this); + if (bsOut.GetNumberOfBitsUsed()!=bitsWritten) + replicaManager3->SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,GetSystemAddress(), false); + } + + // Serialize first serialization to this connection. + // This is done here, as it isn't done in PushConstruction + SerializeParameters sp; + RakNet::BitStream emptyBs; + for (index=0; index < (unsigned int) RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; index++) + { + sp.lastSentBitstream[index]=&emptyBs; + sp.pro[index]=replicaManager3->GetDefaultSendParameters(); + } + sp.bitsWrittenSoFar=0; + sp.destinationConnection=this; + sp.messageTimestamp=0; + sp.whenLastSerialized=0; + + RakNet::Replica3 *replica = lsr->replica; + + RM3SerializationResult res = replica->Serialize(&sp); + if (res!=RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION && + res!=RM3SR_DO_NOT_SERIALIZE && + res!=RM3SR_SERIALIZED_UNIQUELY) + { + bool allIndices[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp.bitsWrittenSoFar+=sp.outputBitstream[z].GetNumberOfBitsUsed(); + allIndices[z]=true; + } + if (SendSerialize(replica, allIndices, sp.outputBitstream, sp.messageTimestamp, sp.pro, replicaManager3->GetRakPeerInterface(), replicaManager3->GetWorldID())==SSICR_SENT_DATA) + lsr->replica->whenLastSerialized=RakNet::GetTimeMS(); + } + */ + } + else if (constructionState==RM3CS_SEND_CONSTRUCTION) + { + OnConstructToThisConnection(index, replicaManager3); + constructedReplicasCulled.Push(lsr->replica,_FILE_AND_LINE_); + } + else if (constructionState==RM3CS_NEVER_CONSTRUCT) + { + OnNeverConstruct(index, replicaManager3); + } + else// if (constructionState==RM3CS_NO_ACTION) + { + // Do nothing + index++; + } + } + + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + RM3DestructionState destructionState; + index=0; + while (index < queryToDestructReplicaList.Size()) + { + lsr=queryToDestructReplicaList[index]; + destructionState=lsr->replica->QueryDestruction(this, replicaManager3); + if (destructionState==RM3DS_SEND_DESTRUCTION) + { + OnSendDestructionFromQuery(index, replicaManager3); + destroyedReplicasCulled.Push(lsr->replica,_FILE_AND_LINE_); + } + else if (destructionState==RM3DS_DO_NOT_QUERY_DESTRUCTION) + { + OnDoNotQueryDestruction(index, replicaManager3); + } + else// if (destructionState==RM3CS_NO_ACTION) + { + // Do nothing + index++; + } + } + } + } + else if (constructionMode==QUERY_CONNECTION_FOR_REPLICA_LIST) + { + QueryReplicaList(constructedReplicasCulled,destroyedReplicasCulled); + + unsigned int idx1, idx2; + + // Create new + for (idx2=0; idx2 < constructedReplicasCulled.Size(); idx2++) + OnConstructToThisConnection(constructedReplicasCulled[idx2], replicaManager3); + + bool exists; + for (idx2=0; idx2 < destroyedReplicasCulled.Size(); idx2++) + { + exists=false; + bool objectExists; + idx1=constructedReplicaList.GetIndexFromKey(destroyedReplicasCulled[idx2], &objectExists); + RakAssert(objectExists); + if (objectExists) + { + OnSendDestructionFromQuery(idx1,replicaManager3); + } + + // If this assert hits, the user tried to destroy a replica that doesn't exist on the remote system + RakAssert(exists); + } + } + + SendConstruction(constructedReplicasCulled,destroyedReplicasCulled,replicaManager3->defaultSendParameters,replicaManager3->rakPeerInterface,replicaManager3->worldId,replicaManager3); +} +void ReplicaManager3::Update(void) +{ + unsigned int index,index2; + + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->isValidated==false) + continue; + connectionList[index]->AutoConstructByQuery(this); + } + + RakNet::Time time = RakNet::GetTimeMS(); + + if (time - lastAutoSerializeOccurance >= autoSerializeInterval) + { + for (index=0; index < userReplicaList.Size(); index++) + { + userReplicaList[index]->forceSendUntilNextUpdate=false; + userReplicaList[index]->OnUserReplicaPreSerializeTick(); + } + + + unsigned int index; + SerializeParameters sp; + sp.curTime=time; + Connection_RM3 *connection; + SendSerializeIfChangedResult ssicr; + sp.messageTimestamp=0; + for (int i=0; i < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; i++) + sp.pro[i]=defaultSendParameters; + index2=0; + for (index=0; index < connectionList.Size(); index++) + { + connection = connectionList[index]; + sp.bitsWrittenSoFar=0; + index2=0; + while (index2 < connection->queryToSerializeReplicaList.Size()) + { + sp.destinationConnection=connection; + sp.whenLastSerialized=connection->queryToSerializeReplicaList[index2]->replica->whenLastSerialized; + ssicr=connection->SendSerializeIfChanged(index2, &sp, GetRakPeerInterface(), GetWorldID(), this); + if (ssicr==SSICR_SENT_DATA) + { + connection->queryToSerializeReplicaList[index2]->replica->whenLastSerialized=time; + index2++; + } + else if (ssicr==SSICR_NEVER_SERIALIZE) + { + // Removed from the middle of the list + } + else + index2++; + } + } + + lastAutoSerializeOccurance=time; + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + if (autoDestroyConnections) + { + Connection_RM3 *connection = PopConnection(rakNetGUID); + if (connection) + DeallocConnection(connection); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) isIncoming; + if (autoCreateConnections) + { + Connection_RM3 *connection = AllocConnection(systemAddress, rakNetGUID); + if (connection) + PushConnection(connection); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnRakPeerShutdown(void) +{ + if (autoDestroyConnections) + { + while (connectionList.Size()) + { + Connection_RM3 *connection = PopConnection(connectionList.Size()-1); + if (connection) + DeallocConnection(connection); + } + } + + Clear(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnDetach(void) +{ + OnRakPeerShutdown(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnConstruction(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + { + // Almost certainly a bug + RakAssert("Got OnConstruction but no connection yet" && 0); + return RR_CONTINUE_PROCESSING; + } + if (connection->groupConstructionAndSerialize) + { + connection->downloadGroup.Push(packet, __FILE__, __LINE__); + return RR_STOP_PROCESSING; + } + + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + uint16_t constructionObjectListSize, destructionObjectListSize, index, index2; + BitSize_t streamEnd, writeAllocationIDEnd; + Replica3 *replica; + NetworkID networkId; + RakNetGUID creatingSystemGuid; + bool actuallyCreateObject=false; + + DataStructures::List actuallyCreateObjectList; + DataStructures::List constructionTickStack; + + RakAssert(networkIDManager); + + bsIn.Read(constructionObjectListSize); + for (index=0; index < constructionObjectListSize; index++) + { + bsIn.Read(streamEnd); + bsIn.Read(networkId); + Replica3* existingReplica = networkIDManager->GET_OBJECT_FROM_ID(networkId); + bsIn.Read(actuallyCreateObject); + actuallyCreateObjectList.Push(actuallyCreateObject, _FILE_AND_LINE_); + bsIn.AlignReadToByteBoundary(); + + if (actuallyCreateObject) + { + bsIn.Read(creatingSystemGuid); + bsIn.Read(writeAllocationIDEnd); + + //printf("OnConstruction: %i\n",networkId.guid.g); // Removeme + if (existingReplica) + { + existingReplica->replicaManager=this; + + // Network ID already in use + connection->OnDownloadExisting(existingReplica, this); + + constructionTickStack.Push(0, _FILE_AND_LINE_); + bsIn.SetReadOffset(streamEnd); + continue; + } + + bsIn.AlignReadToByteBoundary(); + replica = connection->AllocReplica(&bsIn, this); + if (replica==0) + { + constructionTickStack.Push(0, _FILE_AND_LINE_); + bsIn.SetReadOffset(streamEnd); + continue; + } + + // Go past the bitStream written to with WriteAllocationID(). Necessary in case the user didn't read out the bitStream the same way it was written + // bitOffset2 is already aligned + bsIn.SetReadOffset(writeAllocationIDEnd); + + replica->SetNetworkIDManager(networkIDManager); + replica->SetNetworkID(networkId); + + replica->replicaManager=this; + replica->creatingSystemGUID=creatingSystemGuid; + + if (!replica->QueryRemoteConstruction(connection) || + !replica->DeserializeConstruction(&bsIn, connection)) + { + DeallocReplicaNoBroadcastDestruction(connection, replica); + bsIn.SetReadOffset(streamEnd); + constructionTickStack.Push(0, _FILE_AND_LINE_); + continue; + } + + constructionTickStack.Push(replica, _FILE_AND_LINE_); + + // Register the replica + ReferenceInternal(replica); + } + else + { + if (existingReplica) + { + existingReplica->DeserializeConstructionExisting(&bsIn, connection); + constructionTickStack.Push(existingReplica, _FILE_AND_LINE_); + } + else + { + constructionTickStack.Push(0, _FILE_AND_LINE_); + } + } + + + bsIn.SetReadOffset(streamEnd); + bsIn.AlignReadToByteBoundary(); + } + + RakAssert(constructionTickStack.Size()==constructionObjectListSize); + RakAssert(actuallyCreateObjectList.Size()==constructionObjectListSize); + + RakNet::BitStream empty; + for (index=0; index < constructionObjectListSize; index++) + { + bool pdcWritten=false; + bsIn.Read(pdcWritten); + if (pdcWritten) + { + bsIn.AlignReadToByteBoundary(); + bsIn.Read(streamEnd); + bsIn.Read(networkId); + if (constructionTickStack[index]!=0) + { + bsIn.AlignReadToByteBoundary(); + if (actuallyCreateObjectList[index]) + constructionTickStack[index]->PostDeserializeConstruction(&bsIn, connection); + else + constructionTickStack[index]->PostDeserializeConstructionExisting(&bsIn, connection); + } + bsIn.SetReadOffset(streamEnd); + } + else + { + if (constructionTickStack[index]!=0) + constructionTickStack[index]->PostDeserializeConstruction(&empty, connection); + } + } + + for (index=0; index < constructionObjectListSize; index++) + { + if (constructionTickStack[index]!=0) + { + if (actuallyCreateObjectList[index]) + { + // Tell the connection(s) that this object exists since they just sent it to us + connection->OnDownloadFromThisSystem(constructionTickStack[index], this); + + for (index2=0; index2 < connectionList.Size(); index2++) + { + if (connectionList[index2]!=connection) + connectionList[index2]->OnDownloadFromOtherSystem(constructionTickStack[index], this); + } + } + } + } + + // Destructions + bool b = bsIn.Read(destructionObjectListSize); + (void) b; + RakAssert(b); + for (index=0; index < destructionObjectListSize; index++) + { + bsIn.Read(networkId); + bsIn.Read(streamEnd); + replica = networkIDManager->GET_OBJECT_FROM_ID(networkId); + if (replica==0) + { + // Unknown object + bsIn.SetReadOffset(streamEnd); + continue; + } + bsIn.Read(replica->deletingSystemGUID); + if (replica->DeserializeDestruction(&bsIn,connection)) + { + // Make sure it wasn't deleted in DeserializeDestruction + if (networkIDManager->GET_OBJECT_FROM_ID(networkId)) + { + replica->PreDestruction(connection); + + // Forward deletion by remote system + if (replica->QueryRelayDestruction(connection)) + BroadcastDestruction(replica,connection->GetSystemAddress()); + Dereference(replica); + DeallocReplicaNoBroadcastDestruction(connection, replica); + } + } + else + { + replica->PreDestruction(connection); + connection->OnDereference(replica, this); + } + + bsIn.AlignReadToByteBoundary(); + } + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnSerialize(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, RakNet::Time timestamp, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + return RR_CONTINUE_PROCESSING; + if (connection->groupConstructionAndSerialize) + { + connection->downloadGroup.Push(packet, __FILE__, __LINE__); + return RR_STOP_PROCESSING; + } + RakAssert(networkIDManager); + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + + struct DeserializeParameters ds; + ds.timeStamp=timestamp; + ds.sourceConnection=connection; + + Replica3 *replica; + NetworkID networkId; + BitSize_t bitsUsed; + bsIn.Read(networkId); + //printf("OnSerialize: %i\n",networkId.guid.g); // Removeme + replica = networkIDManager->GET_OBJECT_FROM_ID(networkId); + if (replica) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + bsIn.Read(ds.bitstreamWrittenTo[z]); + if (ds.bitstreamWrittenTo[z]) + { + bsIn.ReadCompressed(bitsUsed); + bsIn.AlignReadToByteBoundary(); + bsIn.Read(ds.serializationBitstream[z], bitsUsed); + } + } + replica->Deserialize(&ds); + } + return RR_CONTINUE_PROCESSING; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnDownloadStarted(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + return RR_CONTINUE_PROCESSING; + if (connection->QueryGroupDownloadMessages() && + // ID_DOWNLOAD_STARTED will be processed twice, being processed the second time once ID_DOWNLOAD_COMPLETE arrives. + // However, the second time groupConstructionAndSerialize will be set to true so it won't be processed a third time + connection->groupConstructionAndSerialize==false + ) + { + // These messages will be held by the plugin and returned when the download is complete + connection->groupConstructionAndSerialize=true; + RakAssert(connection->downloadGroup.Size()==0); + connection->downloadGroup.Push(packet, __FILE__, __LINE__); + return RR_STOP_PROCESSING; + } + + connection->groupConstructionAndSerialize=false; + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + connection->DeserializeOnDownloadStarted(&bsIn); + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnDownloadComplete(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + return RR_CONTINUE_PROCESSING; + + if (connection->groupConstructionAndSerialize==true && connection->downloadGroup.Size()>0) + { + // Push back buffered packets in front of this one + unsigned int i; + for (i=0; i < connection->downloadGroup.Size(); i++) + rakPeerInterface->PushBackPacket(connection->downloadGroup[i],false); + + // Push this one to be last too. It will be processed again, but the second time + // groupConstructionAndSerialize will be false and downloadGroup will be empty, so it will go past this block + connection->downloadGroup.Clear(__FILE__,__LINE__); + rakPeerInterface->PushBackPacket(packet,false); + + return RR_STOP_PROCESSING; + } + + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + connection->DeserializeOnDownloadComplete(&bsIn); + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3* ReplicaManager3::GetReplicaByNetworkID(NetworkID networkId) +{ + unsigned int i; + for (i=0; i < userReplicaList.Size(); i++) + { + if (userReplicaList[i]->GetNetworkID()==networkId) + return userReplicaList[i]; + } + return 0; +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +void ReplicaManager3::BroadcastDestructionList(DataStructures::List &replicaListSource, const SystemAddress &exclusionAddress) +{ + RakNet::BitStream bsOut; + unsigned int i,j; + + DataStructures::List replicaList; + + for (i=0; i < replicaListSource.Size(); i++) + { + if (replicaListSource[i]==currentlyDeallocatingReplica) + continue; + replicaList.Push(replicaListSource[i], __FILE__, __LINE__); + } + + if (replicaList.Size()==0) + return; + + for (i=0; i < replicaList.Size(); i++) + { + if (replicaList[i]->deletingSystemGUID==UNASSIGNED_RAKNET_GUID) + replicaList[i]->deletingSystemGUID=GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + } + + for (j=0; j < connectionList.Size(); j++) + { + if (connectionList[j]->GetSystemAddress()==exclusionAddress) + continue; + + bsOut.Reset(); + bsOut.Write((MessageID)ID_REPLICA_MANAGER_CONSTRUCTION); + bsOut.Write(worldId); + uint16_t cnt=0; + bsOut.Write(cnt); // No construction + cnt=(uint16_t) replicaList.Size(); + BitSize_t cntOffset=bsOut.GetWriteOffset();; + bsOut.Write(cnt); // Overwritten at send call + cnt=0; + + for (i=0; i < replicaList.Size(); i++) + { + if (connectionList[j]->HasReplicaConstructed(replicaList[i])==false) + continue; + cnt++; + + NetworkID networkId; + networkId=replicaList[i]->GetNetworkID(); + bsOut.Write(networkId); + BitSize_t offsetStart, offsetEnd; + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); + bsOut.Write(replicaList[i]->deletingSystemGUID); + replicaList[i]->SerializeDestruction(&bsOut, connectionList[j]); + bsOut.AlignWriteToByteBoundary(); + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + + if (cnt>0) + { + BitSize_t curOffset=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(cntOffset); + bsOut.Write(cnt); + bsOut.SetWriteOffset(curOffset); + rakPeerInterface->Send(&bsOut,defaultSendParameters.priority,defaultSendParameters.reliability,defaultSendParameters.orderingChannel,connectionList[j]->GetSystemAddress(),false, defaultSendParameters.sendReceipt); + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +void ReplicaManager3::BroadcastDestruction(Replica3 *replica, const SystemAddress &exclusionAddress) +{ + DataStructures::List replicaList; + replicaList.Push(replica, _FILE_AND_LINE_ ); + BroadcastDestructionList(replicaList,exclusionAddress); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3::Connection_RM3(const SystemAddress &_systemAddress, RakNetGUID _guid) +: systemAddress(_systemAddress), guid(_guid) +{ + isValidated=false; + isFirstConstruction=true; + groupConstructionAndSerialize=false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3::~Connection_RM3() +{ + unsigned int i; + for (i=0; i < constructedReplicaList.Size(); i++) + RakNet::OP_DELETE(constructedReplicaList[i], _FILE_AND_LINE_); + for (i=0; i < queryToConstructReplicaList.Size(); i++) + RakNet::OP_DELETE(queryToConstructReplicaList[i], _FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::GetConstructedReplicas(DataStructures::List &objectsTheyDoHave) +{ + objectsTheyDoHave.Clear(true,_FILE_AND_LINE_); + for (unsigned int idx=0; idx < constructedReplicaList.Size(); idx++) + { + objectsTheyDoHave.Push(constructedReplicaList[idx]->replica, _FILE_AND_LINE_ ); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Connection_RM3::HasReplicaConstructed(RakNet::Replica3 *replica) +{ + bool objectExists; + constructedReplicaList.GetIndexFromKey(replica, &objectExists); + return objectExists; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void Connection_RM3::SendSerializeHeader(RakNet::Replica3 *replica, RakNet::Time timestamp, RakNet::BitStream *bs, unsigned char worldId) +{ + bs->Reset(); + + if (timestamp!=0) + { + bs->Write((MessageID)ID_TIMESTAMP); + bs->Write(timestamp); + } + bs->Write((MessageID)ID_REPLICA_MANAGER_SERIALIZE); + bs->Write(worldId); + bs->Write(replica->GetNetworkID()); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void Connection_RM3::ClearDownloadGroup(RakPeerInterface *rakPeerInterface) +{ + unsigned int i; + for (i=0; i < downloadGroup.Size(); i++) + rakPeerInterface->DeallocatePacket(downloadGroup[i]); + downloadGroup.Clear(__FILE__,__LINE__); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SendSerializeIfChangedResult Connection_RM3::SendSerialize(RakNet::Replica3 *replica, bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::BitStream serializationData[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::Time timestamp, PRO sendParameters[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakPeerInterface *rakPeer, unsigned char worldId) +{ + bool channelHasData; + BitSize_t sum=0; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (indicesToSend[z]) + sum+=serializationData[z].GetNumberOfBitsUsed(); + } + if (sum==0) + return SSICR_DID_NOT_SEND_DATA; + + RakAssert(replica->GetNetworkID()!=UNASSIGNED_NETWORK_ID); + + RakNet::BitStream out; + BitSize_t bitsUsed; + + int channelIndex; + PRO lastPro=sendParameters[0]; + + for (channelIndex=0; channelIndex < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; channelIndex++) + { + if (channelIndex==0) + { + SendSerializeHeader(replica, timestamp, &out, worldId); + } + else if (lastPro!=sendParameters[channelIndex]) + { + // Write out remainder + for (int channelIndex2=channelIndex; channelIndex2 < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; channelIndex2++) + out.Write(false); + + // Send remainder + replica->OnSerializeTransmission(&out, systemAddress); + rakPeer->Send(&out,lastPro.priority,lastPro.reliability,lastPro.orderingChannel,systemAddress,false,lastPro.sendReceipt); + + // If no data left to send, quit out + bool anyData=false; + for (int channelIndex2=channelIndex; channelIndex2 < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; channelIndex2++) + { + if (serializationData[channelIndex2].GetNumberOfBitsUsed()>0) + { + anyData=true; + break; + } + } + if (anyData==false) + return SSICR_SENT_DATA; + + // Restart stream + SendSerializeHeader(replica, timestamp, &out, worldId); + + for (int channelIndex2=0; channelIndex2 < channelIndex; channelIndex2++) + out.Write(false); + lastPro=sendParameters[channelIndex]; + } + + bitsUsed=serializationData[channelIndex].GetNumberOfBitsUsed(); + channelHasData = indicesToSend[channelIndex]==true && bitsUsed>0; + out.Write(channelHasData); + if (channelHasData) + { + out.WriteCompressed(bitsUsed); + out.AlignWriteToByteBoundary(); + out.Write(serializationData[channelIndex]); + // Crap, forgot this line, was a huge bug in that I'd only send to the first 3 systems + serializationData[channelIndex].ResetReadPointer(); + } + } + replica->OnSerializeTransmission(&out, systemAddress); + rakPeer->Send(&out,lastPro.priority,lastPro.reliability,lastPro.orderingChannel,systemAddress,false,lastPro.sendReceipt); + return SSICR_SENT_DATA; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +SendSerializeIfChangedResult Connection_RM3::SendSerializeIfChanged(unsigned int queryToSerializeIndex, SerializeParameters *sp, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager) +{ + RakNet::Replica3 *replica = queryToSerializeReplicaList[queryToSerializeIndex]->replica; + + if (replica->GetNetworkID()==UNASSIGNED_NETWORK_ID) + return SSICR_DID_NOT_SEND_DATA; + + RM3QuerySerializationResult rm3qsr = replica->QuerySerialization(this); + if (rm3qsr==RM3QSR_NEVER_CALL_SERIALIZE) + { + // Never again for this connection and replica pair + OnNeverSerialize(queryToSerializeIndex, replicaManager); + return SSICR_NEVER_SERIALIZE; + } + + if (rm3qsr==RM3QSR_DO_NOT_CALL_SERIALIZE) + return SSICR_DID_NOT_SEND_DATA; + + if (replica->forceSendUntilNextUpdate) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (replica->lastSentSerialization.indicesToSend[z]) + sp->bitsWrittenSoFar+=replica->lastSentSerialization.bitStream[z].GetNumberOfBitsUsed(); + } + return SendSerialize(replica, replica->lastSentSerialization.indicesToSend, replica->lastSentSerialization.bitStream, sp->messageTimestamp, sp->pro, rakPeer, worldId); + } + + for (int i=0; i < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; i++) + { + sp->outputBitstream[i].Reset(); + if (queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS) + sp->lastSentBitstream[i]=&queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[i]; + else + sp->lastSentBitstream[i]=&replica->lastSentSerialization.bitStream[i]; + } + + RM3SerializationResult serializationResult = replica->Serialize(sp); + + if (serializationResult==RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION) + { + // Never again for this connection and replica pair + OnNeverSerialize(queryToSerializeIndex, replicaManager); + return SSICR_NEVER_SERIALIZE; + } + + if (serializationResult==RM3SR_DO_NOT_SERIALIZE) + { + // Don't serialize this tick only + return SSICR_DID_NOT_SEND_DATA; + } + + // This is necessary in case the user in the Serialize() function for some reason read the bitstream they also wrote + // WIthout this code, the Write calls to another bitstream would not write the entire bitstream + BitSize_t sum=0; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp->outputBitstream[z].ResetReadPointer(); + sum+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + } + + if (sum==0) + { + // Don't serialize this tick only + return SSICR_DID_NOT_SEND_DATA; + } + + if (serializationResult==RM3SR_SERIALIZED_ALWAYS) + { + bool allIndices[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + allIndices[z]=true; + + queryToSerializeReplicaList[queryToSerializeIndex]->AllocBS(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Reset(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + } + return SendSerialize(replica, allIndices, sp->outputBitstream, sp->messageTimestamp, sp->pro, rakPeer, worldId); + } + + if (serializationResult==RM3SR_SERIALIZED_ALWAYS_IDENTICALLY) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + replica->lastSentSerialization.indicesToSend[z]=sp->outputBitstream[z].GetNumberOfBitsUsed()>0; + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + replica->lastSentSerialization.bitStream[z].Reset(); + replica->lastSentSerialization.bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + replica->forceSendUntilNextUpdate=true; + } + return SendSerialize(replica, replica->lastSentSerialization.indicesToSend, sp->outputBitstream, sp->messageTimestamp, sp->pro, rakPeer, worldId); + } + + bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + if (serializationResult==RM3SR_BROADCAST_IDENTICALLY || serializationResult==RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (sp->outputBitstream[z].GetNumberOfBitsUsed() > 0 && + (serializationResult==RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION || + ((sp->outputBitstream[z].GetNumberOfBitsUsed()!=replica->lastSentSerialization.bitStream[z].GetNumberOfBitsUsed() || + memcmp(sp->outputBitstream[z].GetData(), replica->lastSentSerialization.bitStream[z].GetData(), sp->outputBitstream[z].GetNumberOfBytesUsed())!=0)))) + { + indicesToSend[z]=true; + replica->lastSentSerialization.indicesToSend[z]=true; + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + replica->lastSentSerialization.bitStream[z].Reset(); + replica->lastSentSerialization.bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + replica->forceSendUntilNextUpdate=true; + } + else + { + indicesToSend[z]=false; + replica->lastSentSerialization.indicesToSend[z]=false; + } + } + } + else + { + queryToSerializeReplicaList[queryToSerializeIndex]->AllocBS(); + + // RM3SR_SERIALIZED_UNIQUELY + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (sp->outputBitstream[z].GetNumberOfBitsUsed() > 0 && + (sp->outputBitstream[z].GetNumberOfBitsUsed()!=queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].GetNumberOfBitsUsed() || + memcmp(sp->outputBitstream[z].GetData(), queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].GetData(), sp->outputBitstream[z].GetNumberOfBytesUsed())!=0) + ) + { + indicesToSend[z]=true; + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Reset(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + } + else + { + indicesToSend[z]=false; + } + } + } + + + if (serializationResult==RM3SR_BROADCAST_IDENTICALLY || serializationResult==RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION) + replica->forceSendUntilNextUpdate=true; + + // Send out the data + return SendSerialize(replica, indicesToSend, sp->outputBitstream, sp->messageTimestamp, sp->pro, rakPeer, worldId); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void Connection_RM3::OnLocalReference(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) replicaManager; + (void) constructionMode; + + LastSerializationResult* lsr=RakNet::OP_NEW(_FILE_AND_LINE_); + lsr->replica=replica3; + queryToConstructReplicaList.Push(lsr,_FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDereference(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + + LastSerializationResult* lsr=0; + unsigned int idx; + + bool objectExists; + idx=constructedReplicaList.GetIndexFromKey(replica3, &objectExists); + if (objectExists) + { + lsr=constructedReplicaList[idx]; + constructedReplicaList.RemoveAtIndex(idx); + } + + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + if (queryToConstructReplicaList[idx]->replica==replica3) + { + lsr=queryToConstructReplicaList[idx]; + queryToConstructReplicaList.RemoveAtIndex(idx); + break; + } + } + + for (idx=0; idx < queryToSerializeReplicaList.Size(); idx++) + { + if (queryToSerializeReplicaList[idx]->replica==replica3) + { + lsr=queryToSerializeReplicaList[idx]; + queryToSerializeReplicaList.RemoveAtIndex(idx); + break; + } + } + + for (idx=0; idx < queryToDestructReplicaList.Size(); idx++) + { + if (queryToDestructReplicaList[idx]->replica==replica3) + { + lsr=queryToDestructReplicaList[idx]; + queryToDestructReplicaList.RemoveAtIndex(idx); + break; + } + } + + ValidateLists(replicaManager); + + if (lsr) + RakNet::OP_DELETE(lsr,_FILE_AND_LINE_); + + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDownloadFromThisSystem(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + LastSerializationResult* lsr=RakNet::OP_NEW(_FILE_AND_LINE_); + lsr->replica=replica3; + + ConstructionMode constructionMode = QueryConstructionMode(); + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int j; + for (j=0; j < queryToConstructReplicaList.Size(); j++) + { + if (queryToConstructReplicaList[j]->replica->GetNetworkID()==replica3->GetNetworkID() ) + { + queryToConstructReplicaList.RemoveAtIndex(j); + break; + } + } + + queryToDestructReplicaList.Push(lsr,_FILE_AND_LINE_); + } + + constructedReplicaList.Insert(lsr->replica, lsr, true, _FILE_AND_LINE_); + //assert(queryToSerializeReplicaList.GetIndexOf(replica3)==(unsigned int)-1); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); + + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDownloadFromOtherSystem(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int j; + for (j=0; j < queryToConstructReplicaList.Size(); j++) + { + if (queryToConstructReplicaList[j]->replica->GetNetworkID()==replica3->GetNetworkID() ) + { + return; + } + } + + OnLocalReference(replica3, replicaManager); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnNeverConstruct(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToConstructReplicaList[queryToConstructIdx]; + queryToConstructReplicaList.RemoveAtIndex(queryToConstructIdx); + RakNet::OP_DELETE(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnConstructToThisConnection(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToConstructReplicaList[queryToConstructIdx]; + queryToConstructReplicaList.RemoveAtIndex(queryToConstructIdx); + //assert(constructedReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + constructedReplicaList.Insert(lsr->replica,lsr,true,_FILE_AND_LINE_); + //assert(queryToDestructReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToDestructReplicaList.Push(lsr,_FILE_AND_LINE_); + //assert(queryToSerializeReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnConstructToThisConnection(Replica3 *replica, ReplicaManager3 *replicaManager) +{ + RakAssert(QueryConstructionMode()==QUERY_CONNECTION_FOR_REPLICA_LIST); + (void) replicaManager; + + LastSerializationResult* lsr=RakNet::OP_NEW(_FILE_AND_LINE_); + lsr->replica=replica; + constructedReplicaList.Insert(replica,lsr,true,_FILE_AND_LINE_); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnNeverSerialize(unsigned int queryToSerializeIndex, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + queryToSerializeReplicaList.RemoveAtIndex(queryToSerializeIndex); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnReplicaAlreadyExists(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToConstructReplicaList[queryToConstructIdx]; + queryToConstructReplicaList.RemoveAtIndex(queryToConstructIdx); + //assert(constructedReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + constructedReplicaList.Insert(lsr->replica,lsr,true,_FILE_AND_LINE_); + //assert(queryToDestructReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToDestructReplicaList.Push(lsr,_FILE_AND_LINE_); + //assert(queryToSerializeReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDownloadExisting(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + + ConstructionMode constructionMode = QueryConstructionMode(); + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int idx; + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + if (queryToConstructReplicaList[idx]->replica==replica3) + { + OnConstructToThisConnection(idx, replicaManager); + return; + } + } + } + else + { + OnConstructToThisConnection(replica3, replicaManager); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnSendDestructionFromQuery(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToDestructReplicaList[queryToDestructIdx]; + queryToDestructReplicaList.RemoveAtIndex(queryToDestructIdx); + unsigned int j; + for (j=0; j < queryToSerializeReplicaList.Size(); j++) + { + if (queryToSerializeReplicaList[j]->replica->GetNetworkID()==lsr->replica->GetNetworkID() ) + { + queryToSerializeReplicaList.RemoveAtIndex(j); + break; + } + } + for (j=0; j < constructedReplicaList.Size(); j++) + { + if (constructedReplicaList[j]->replica->GetNetworkID()==lsr->replica->GetNetworkID() ) + { + constructedReplicaList.RemoveAtIndex(j); + break; + } + } + //assert(queryToConstructReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToConstructReplicaList.Push(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDoNotQueryDestruction(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + queryToDestructReplicaList.RemoveAtIndex(queryToDestructIdx); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::ValidateLists(ReplicaManager3 *replicaManager) const +{ + (void) replicaManager; + /* +#ifdef _DEBUG + // Each object should exist only once in either constructedReplicaList or queryToConstructReplicaList + // replicaPointer from LastSerializationResult should be same among all lists + unsigned int idx, idx2; + for (idx=0; idx < constructedReplicaList.Size(); idx++) + { + idx2=queryToConstructReplicaList.GetIndexOf(constructedReplicaList[idx]->replica); + if (idx2!=(unsigned int)-1) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + idx2=constructedReplicaList.GetIndexOf(queryToConstructReplicaList[idx]->replica); + if (idx2!=(unsigned int)-1) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + LastSerializationResult *lsr, *lsr2; + for (idx=0; idx < constructedReplicaList.Size(); idx++) + { + lsr=constructedReplicaList[idx]; + + idx2=queryToSerializeReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToSerializeReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + idx2=queryToDestructReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToDestructReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + } + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + lsr=queryToConstructReplicaList[idx]; + + idx2=queryToSerializeReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToSerializeReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + idx2=queryToDestructReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToDestructReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + } + + // Verify pointer integrity + for (idx=0; idx < constructedReplicaList.Size(); idx++) + { + if (constructedReplicaList[idx]->replica->replicaManager!=replicaManager) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + // Verify pointer integrity + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + if (queryToConstructReplicaList[idx]->replica->replicaManager!=replicaManager) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } +#endif + */ +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::SendConstruction(DataStructures::List &newObjects, DataStructures::List &deletedObjects, PRO sendParameters, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager3) +{ + if (newObjects.Size()==0 && deletedObjects.Size()==0) + return; + + // All construction and destruction takes place in the same network message + // Otherwise, if objects rely on each other being created the same tick to be valid, this won't always be true + // DataStructures::List serializedObjects; + BitSize_t offsetStart, offsetStart2, offsetEnd; + unsigned int newListIndex, oldListIndex; + RakNet::BitStream bsOut; + NetworkID networkId; + if (isFirstConstruction) + { + bsOut.Write((MessageID)ID_REPLICA_MANAGER_DOWNLOAD_STARTED); + bsOut.Write(worldId); + SerializeOnDownloadStarted(&bsOut); + rakPeer->Send(&bsOut,sendParameters.priority,RELIABLE_ORDERED,sendParameters.orderingChannel,systemAddress,false,sendParameters.sendReceipt); + } + + // LastSerializationResult* lsr; + bsOut.Reset(); + bsOut.Write((MessageID)ID_REPLICA_MANAGER_CONSTRUCTION); + bsOut.Write(worldId); + uint16_t objectSize = (uint16_t) newObjects.Size(); + bsOut.Write(objectSize); + + // Construction + for (newListIndex=0; newListIndex < newObjects.Size(); newListIndex++) + { + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); // overwritten to point to the end of the stream + networkId=newObjects[newListIndex]->GetNetworkID(); + bsOut.Write(networkId); + + RM3ConstructionState cs = newObjects[newListIndex]->QueryConstruction(this, replicaManager3); + bool actuallyCreateObject = cs==RM3CS_SEND_CONSTRUCTION; + bsOut.Write(actuallyCreateObject); + bsOut.AlignWriteToByteBoundary(); + + if (actuallyCreateObject) + { + // Actually create the object + bsOut.Write(newObjects[newListIndex]->creatingSystemGUID); + offsetStart2=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart2); // overwritten to point to after the call to WriteAllocationID + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + newObjects[newListIndex]->WriteAllocationID(this, &bsOut); + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart2); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + newObjects[newListIndex]->SerializeConstruction(&bsOut, this); + } + else + { + newObjects[newListIndex]->SerializeConstructionExisting(&bsOut, this); + } + + bsOut.AlignWriteToByteBoundary(); + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + + RakNet::BitStream bsOut2; + for (newListIndex=0; newListIndex < newObjects.Size(); newListIndex++) + { + bsOut2.Reset(); + RM3ConstructionState cs = newObjects[newListIndex]->QueryConstruction(this, replicaManager3); + if (cs==RM3CS_SEND_CONSTRUCTION) + { + newObjects[newListIndex]->PostSerializeConstruction(&bsOut2, this); + } + else + { + RakAssert(cs==RM3CS_ALREADY_EXISTS_REMOTELY); + newObjects[newListIndex]->PostSerializeConstructionExisting(&bsOut2, this); + } + if (bsOut2.GetNumberOfBitsUsed()>0) + { + bsOut.Write(true); + bsOut.AlignWriteToByteBoundary(); + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); // overwritten to point to the end of the stream + networkId=newObjects[newListIndex]->GetNetworkID(); + bsOut.Write(networkId); + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + bsOut.Write(&bsOut2); + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + else + bsOut.Write(false); + } + bsOut.AlignWriteToByteBoundary(); + + // Destruction + objectSize = (uint16_t) deletedObjects.Size(); + bsOut.Write(objectSize); + for (oldListIndex=0; oldListIndex < deletedObjects.Size(); oldListIndex++) + { + networkId=deletedObjects[oldListIndex]->GetNetworkID(); + bsOut.Write(networkId); + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); + deletedObjects[oldListIndex]->deletingSystemGUID=rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + bsOut.Write(deletedObjects[oldListIndex]->deletingSystemGUID); + deletedObjects[oldListIndex]->SerializeDestruction(&bsOut, this); + bsOut.AlignWriteToByteBoundary(); + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + rakPeer->Send(&bsOut,sendParameters.priority,RELIABLE_ORDERED,sendParameters.orderingChannel,systemAddress,false,sendParameters.sendReceipt); + + // TODO - shouldn't this be part of construction? + + // Initial Download serialize to a new system + // Immediately send serialize after construction if the replica object already has saved data + // If the object was serialized identically, and does not change later on, then the new connection never gets the data + SerializeParameters sp; + sp.whenLastSerialized=0; + RakNet::BitStream emptyBs; + for (int index=0; index < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; index++) + { + sp.lastSentBitstream[index]=&emptyBs; + sp.pro[index]=sendParameters; + sp.pro[index].reliability=RELIABLE_ORDERED; + } + + sp.bitsWrittenSoFar=0; + RakNet::Time t = RakNet::GetTimeMS(); + for (newListIndex=0; newListIndex < newObjects.Size(); newListIndex++) + { + sp.destinationConnection=this; + sp.messageTimestamp=0; + RakNet::Replica3 *replica = newObjects[newListIndex]; + // 8/22/09 Forgot ResetWritePointer + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp.outputBitstream[z].ResetWritePointer(); + } + + RM3SerializationResult res = replica->Serialize(&sp); + if (res!=RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION && + res!=RM3SR_DO_NOT_SERIALIZE && + res!=RM3SR_SERIALIZED_UNIQUELY) + { + bool allIndices[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp.bitsWrittenSoFar+=sp.outputBitstream[z].GetNumberOfBitsUsed(); + allIndices[z]=true; + } + SendSerialize(replica, allIndices, sp.outputBitstream, sp.messageTimestamp, sp.pro, rakPeer, worldId); + newObjects[newListIndex]->whenLastSerialized=t; + + } + // else wait for construction request accepted before serializing + } + + if (isFirstConstruction) + { + bsOut.Reset(); + bsOut.Write((MessageID)ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE); + bsOut.Write(worldId); + SerializeOnDownloadComplete(&bsOut); + rakPeer->Send(&bsOut,sendParameters.priority,RELIABLE_ORDERED,sendParameters.orderingChannel,systemAddress,false,sendParameters.sendReceipt); + } + + isFirstConstruction=false; + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::SendValidation(RakNet::RakPeerInterface *rakPeer, unsigned char worldId) +{ + // Hijack to mean sendValidation + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_REPLICA_MANAGER_SCOPE_CHANGE); + bsOut.Write(worldId); + rakPeer->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,false); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3::Replica3() +{ + creatingSystemGUID=UNASSIGNED_RAKNET_GUID; + deletingSystemGUID=UNASSIGNED_RAKNET_GUID; + replicaManager=0; + forceSendUntilNextUpdate=false; + whenLastSerialized=0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3::~Replica3() +{ + if (replicaManager) + { + replicaManager->Dereference(this); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Replica3::BroadcastDestruction(void) +{ + replicaManager->BroadcastDestruction(this,UNASSIGNED_SYSTEM_ADDRESS); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNetGUID Replica3::GetCreatingSystemGUID(void) const +{ + return creatingSystemGUID; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ConstructionState Replica3::QueryConstruction_ClientConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + (void) destinationConnection; + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3CS_SEND_CONSTRUCTION; + // Send back to the owner client too, because they couldn't assign the network ID + if (isThisTheServer) + return RM3CS_SEND_CONSTRUCTION; + return RM3CS_NEVER_CONSTRUCT; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Replica3::QueryRemoteConstruction_ClientConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer) +{ + (void) sourceConnection; + (void) isThisTheServer; + + // OK to create + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ConstructionState Replica3::QueryConstruction_ServerConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + (void) destinationConnection; + + if (isThisTheServer) + return RM3CS_SEND_CONSTRUCTION; + return RM3CS_NEVER_CONSTRUCT; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Replica3::QueryRemoteConstruction_ServerConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer) +{ + (void) sourceConnection; + if (isThisTheServer) + return false; + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ConstructionState Replica3::QueryConstruction_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode) +{ + (void) destinationConnection; + + if (p2pMode==R3P2PM_SINGLE_OWNER) + { + // We send to all, others do nothing + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3CS_SEND_CONSTRUCTION; + + // RM3CS_NEVER_CONSTRUCT will not send the object, and will not Serialize() it + return RM3CS_NEVER_CONSTRUCT; + } + else if (p2pMode==R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE) + { + return RM3CS_SEND_CONSTRUCTION; + } + else + { + RakAssert(p2pMode==R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE); + + // RM3CS_ALREADY_EXISTS_REMOTELY will not send the object, but WILL call QuerySerialization() and Serialize() on it. + return RM3CS_ALREADY_EXISTS_REMOTELY; + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Replica3::QueryRemoteConstruction_PeerToPeer(RakNet::Connection_RM3 *sourceConnection) +{ + (void) sourceConnection; + + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3QuerySerializationResult Replica3::QuerySerialization_ClientSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + // Owner client sends to all + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3QSR_CALL_SERIALIZE; + // Server sends to all but owner client + if (isThisTheServer && destinationConnection->GetRakNetGUID()!=creatingSystemGUID) + return RM3QSR_CALL_SERIALIZE; + // Remote clients do not send + return RM3QSR_NEVER_CALL_SERIALIZE; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3QuerySerializationResult Replica3::QuerySerialization_ServerSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + (void) destinationConnection; + // Server sends to all + if (isThisTheServer) + return RM3QSR_CALL_SERIALIZE; + + // Clients do not send + return RM3QSR_NEVER_CALL_SERIALIZE; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3QuerySerializationResult Replica3::QuerySerialization_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode) +{ + (void) destinationConnection; + + if (p2pMode==R3P2PM_SINGLE_OWNER) + { + // Owner peer sends to all + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3QSR_CALL_SERIALIZE; + + // Remote peers do not send + return RM3QSR_NEVER_CALL_SERIALIZE; + } + else if (p2pMode==R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE) + { + return RM3QSR_CALL_SERIALIZE; + } + else + { + RakAssert(p2pMode==R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE); + return RM3QSR_DO_NOT_CALL_SERIALIZE; + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ActionOnPopConnection Replica3::QueryActionOnPopConnection_Client(RakNet::Connection_RM3 *droppedConnection) const +{ + (void) droppedConnection; + return RM3AOPC_DELETE_REPLICA; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ActionOnPopConnection Replica3::QueryActionOnPopConnection_Server(RakNet::Connection_RM3 *droppedConnection) const +{ + (void) droppedConnection; + return RM3AOPC_DELETE_REPLICA_AND_BROADCAST_DESTRUCTION; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ActionOnPopConnection Replica3::QueryActionOnPopConnection_PeerToPeer(RakNet::Connection_RM3 *droppedConnection) const +{ + (void) droppedConnection; + return RM3AOPC_DELETE_REPLICA; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ReplicaManager3.h b/project/lib_projects/raknet/jni/RaknetSources/ReplicaManager3.h new file mode 100755 index 0000000..d256ad9 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ReplicaManager3.h @@ -0,0 +1,1040 @@ +/// \file +/// \brief Contains the third iteration of the ReplicaManager class. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReplicaManager3==1 + +#ifndef __REPLICA_MANAGER_3 +#define __REPLICA_MANAGER_3 + +#include "RakNetTypes.h" +#include "RakNetTime.h" +#include "BitStream.h" +#include "PacketPriority.h" +#include "PluginInterface2.h" +#include "NetworkIDObject.h" +#include "DS_OrderedList.h" +#include "DS_Queue.h" + +/// \defgroup REPLICA_MANAGER_GROUP3 ReplicaManager3 +/// \brief Third implementation of object replication +/// \details +/// \ingroup REPLICA_MANAGER_GROUP + +namespace RakNet +{ +class Connection_RM3; +class Replica3; + + +/// \internal +/// \ingroup REPLICA_MANAGER_GROUP3 +struct PRO +{ + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketPriority(). + PacketPriority priority; + + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketReliability(). + PacketReliability reliability; + + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultOrderingChannel(). + char orderingChannel; + + /// Passed to RakPeerInterface::Send(). Defaults to 0. + uint32_t sendReceipt; + + bool operator==( const PRO& right ) const; + bool operator!=( const PRO& right ) const; +}; + + +/// \brief System to help automate game object construction, destruction, and serialization +/// \details ReplicaManager3 tracks your game objects and automates the networking for replicating them across the network
+/// As objects are created, destroyed, or serialized differently, those changes are pushed out to other systems.
+/// To use:
+///
    +///
  1. Derive from Connection_RM3 and implement Connection_RM3::AllocReplica(). This is a factory function where given a user-supplied identifier for a class (such as name) return an instance of that class. Should be able to return any networked object in your game. +///
  2. Derive from ReplicaManager3 and implement AllocConnection() and DeallocConnection() to return the class you created in step 1. +///
  3. Derive your networked game objects from Replica3. All pure virtuals have to be implemented, however defaults are provided for Replica3::QueryConstruction(), Replica3::QueryRemoteConstruction(), and Replica3::QuerySerialization() depending on your network architecture. +///
  4. When a new game object is created on the local system, pass it to ReplicaManager3::Reference(). +///
  5. When a game object is destroyed on the local system, and you want other systems to know about it, call Replica3::BroadcastDestruction() +///
+///
+/// At this point, all new connections will automatically download, get construction messages, get destruction messages, and update serialization automatically. +/// \ingroup REPLICA_MANAGER_GROUP3 +class RAK_DLL_EXPORT ReplicaManager3 : public PluginInterface2 +{ +public: + ReplicaManager3(); + virtual ~ReplicaManager3(); + + /// \brief Implement to return a game specific derivation of Connection_RM3 + /// \details The connection object represents a remote system connected to you that is using the ReplicaManager3 system.
+ /// It has functions to perform operations per-connection.
+ /// AllocConnection() and DeallocConnection() are factory functions to create and destroy instances of the connection object.
+ /// It is used if autoCreate is true via SetAutoManageConnections() (true by default). Otherwise, the function is not called, and you will have to call PushConnection() manually
+ /// \note If you do not want a new network connection to immediately download game objects, SetAutoManageConnections() and PushConnection() are how you do this. + /// \sa SetAutoManageConnections() + /// \param[in] systemAddress Address of the system you are adding + /// \param[in] rakNetGUID GUID of the system you are adding. See Packet::rakNetGUID or RakPeerInterface::GetGUIDFromSystemAddress() + /// \return The new connection instance. + virtual Connection_RM3* AllocConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID) const=0; + + /// \brief Implement to destroy a class instanced returned by AllocConnection() + /// \details Most likely just implement as {delete connection;}
+ /// It is used if autoDestroy is true via SetAutoManageConnections() (true by default). Otherwise, the function is not called and you would then be responsible for deleting your own connection objects. + /// \param[in] connection The pointer instance to delete + virtual void DeallocConnection(Connection_RM3 *connection) const=0; + + /// \brief Enable or disable automatically assigning connections to new instances of Connection_RM3 + /// \details ReplicaManager3 can automatically create and/or destroy Connection_RM3 as systems connect or disconnect from RakPeerInterface.
+ /// By default this is on, to make the system easier to learn and setup.
+ /// If you don't want all connections to take part in the game, or you want to delay when a connection downloads the game, set \a autoCreate to false.
+ /// If you want to delay deleting a connection that has dropped, set \a autoDestroy to false. If you do this, then you must call PopConnection() to remove that connection from being internally tracked. You'll also have to delete the connection instance on your own.
+ /// \param[in] autoCreate Automatically call ReplicaManager3::AllocConnection() for each new connection. Defaults to true. + /// \param[in] autoDestroy Automatically call ReplicaManager3::DeallocConnection() for each dropped connection. Defaults to true. + void SetAutoManageConnections(bool autoCreate, bool autoDestroy); + + /// \brief Track a new Connection_RM3 instance + /// \details If \a autoCreate is false for SetAutoManageConnections(), then you need this function to add new instances of Connection_RM3 yourself.
+ /// You don't need to track this pointer yourself, you can get it with GetConnectionAtIndex(), GetConnectionByGUID(), or GetConnectionBySystemAddress().
+ /// \param[in] newConnection The new connection instance to track. + bool PushConnection(RakNet::Connection_RM3 *newConnection); + + /// \brief Stop tracking a connection + /// \details On call, for each replica returned by GetReplicasCreatedByGuid(), QueryActionOnPopConnection() will be called. Depending on the return value, this may delete the corresponding replica.
+ /// If autoDestroy is true in the call to SetAutoManageConnections() (true by default) then this is called automatically when the connection is lost. In that case, the returned connection instance is deleted.
+ /// \param[in] guid of the connection to get. Passed to ReplicaManager3::AllocConnection() originally. + RakNet::Connection_RM3 * PopConnection(RakNetGUID guid); + + /// \brief Adds a replicated object to the system. + /// \details Anytime you create a new object that derives from Replica3, and you want ReplicaManager3 to use it, pass it to Reference().
+ /// Remote systems already connected will potentially download this object the next time ReplicaManager3::Update() is called, which happens every time you call RakPeerInterface::Receive().
+ /// You can also call ReplicaManager3::Update() manually to send referenced objects right away + /// \param[in] replica3 The object to start tracking + void Reference(RakNet::Replica3 *replica3); + + /// \brief Removes a replicated object from the system. + /// \details The object is not deallocated, it is up to the caller to do so.
+ /// This is called automatically from the destructor of Replica3, so you don't need to call it manually unless you want to stop tracking an object before it is destroyed. + /// \param[in] replica3 The object to stop tracking + void Dereference(RakNet::Replica3 *replica3); + + /// \brief Removes multiple replicated objects from the system. + /// \details Same as Dereference(), but for a list of objects.
+ /// Useful with the lists returned by GetReplicasCreatedByGuid(), GetReplicasCreatedByMe(), or GetReferencedReplicaList().
+ /// \param[in] replicaListIn List of objects + void DereferenceList(DataStructures::List &replicaListIn); + + /// \brief Returns all objects originally created by a particular system + /// \details Originally created is defined as the value of Replica3::creatingSystemGUID, which is automatically assigned in ReplicaManager3::Reference().
+ /// You do not have to be directly connected to that system to get the objects originally created by that system.
+ /// \param[in] guid GUID of the system we are referring to. Originally passed as the \a guid parameter to ReplicaManager3::AllocConnection() + /// \param[out] List of Replica3 instances to be returned + void GetReplicasCreatedByGuid(RakNetGUID guid, DataStructures::List &replicaListOut); + + /// \brief Returns all objects originally created by your system + /// \details Calls GetReplicasCreatedByGuid() for your own system guid. + /// \param[out] List of Replica3 instances to be returned + void GetReplicasCreatedByMe(DataStructures::List &replicaListOut); + + /// \brief Returns the entire list of Replicas that we know about. + /// \details This is all Replica3 instances passed to Reference, as well as instances we downloaded and created via Connection_RM3::AllocReference() + /// \param[out] List of Replica3 instances to be returned + void GetReferencedReplicaList(DataStructures::List &replicaListOut); + + /// \brief Returns the number of replicas known about + /// \details Returns the size of the list that would be returned by GetReferencedReplicaList() + /// \return How many replica objects are in the list of replica objects + unsigned GetReplicaCount(void) const; + + /// \brief Returns a replica by index + /// \details Returns one of the items in the list that would be returned by GetReferencedReplicaList() + /// \param[in] index An index, from 0 to GetReplicaCount()-1. + /// \return A Replica3 instance + Replica3 *GetReplicaAtIndex(unsigned index); + + /// \brief Returns the number of connections + /// \details Returns the number of connections added with ReplicaManager3::PushConnection(), minus the number removed with ReplicaManager3::PopConnection() + /// \return The number of registered connections + unsigned int GetConnectionCount(void) const; + + /// \brief Returns a connection pointer previously added with PushConnection() + /// \param[in] index An index, from 0 to GetConnectionCount()-1. + /// \return A Connection_RM3 pointer + Connection_RM3* GetConnectionAtIndex(unsigned index) const; + + /// \brief Returns a connection pointer previously added with PushConnection() + /// \param[in] sa The system address of the connection to return + /// \return A Connection_RM3 pointer, or 0 if not found + Connection_RM3* GetConnectionBySystemAddress(const SystemAddress &sa) const; + + /// \brief Returns a connection pointer previously added with PushConnection.() + /// \param[in] guid The guid of the connection to return + /// \return A Connection_RM3 pointer, or 0 if not found + Connection_RM3* GetConnectionByGUID(RakNetGUID guid) const; + + /// \param[in] Default ordering channel to use for object creation, destruction, and serializations + void SetDefaultOrderingChannel(char def); + + /// \param[in] Default packet priority to use for object creation, destruction, and serializations + void SetDefaultPacketPriority(PacketPriority def); + + /// \param[in] Default packet reliability to use for object creation, destruction, and serializations + void SetDefaultPacketReliability(PacketReliability def); + + /// \details Every \a intervalMS milliseconds, Connection_RM3::OnAutoserializeInterval() will be called.
+ /// Defaults to 30.
+ /// Pass with <0 to disable. Pass 0 to Serialize() every time RakPeer::Recieve() is called
+ /// If you want to control the update interval with more granularity, use the return values from Replica3::Serialize().
+ /// \param[in] intervalMS How frequently to autoserialize all objects. This controls the maximum number of game object updates per second. + void SetAutoSerializeInterval(RakNet::Time intervalMS); + + /// \brief Return the connections that we think have an instance of the specified Replica3 instance + /// \details This can be wrong, for example if that system locally deleted the outside the scope of ReplicaManager3, if QueryRemoteConstruction() returned false, or if DeserializeConstruction() returned false. + /// \param[in] replica The replica to check against. + /// \param[out] connectionsThatHaveConstructedThisReplica Populated with connection instances that we believe have \a replica allocated + void GetConnectionsThatHaveReplicaConstructed(Replica3 *replica, DataStructures::List &connectionsThatHaveConstructedThisReplica); + + /// \brief Defines the unique instance of ReplicaManager3 if multiple instances are on the same instance of RakPeerInterface + /// \details ReplicaManager3 supports multiple instances of itself attached to the same instance of rakPeer, in case your game has multiple worlds.
+ /// Call SetWorldID with a different number for each instance.
+ /// The default worldID is 0.
+ /// To use multiple worlds, you will also need to call ReplicaManager3::SetNetworkIDManager() to have a different NetworkIDManager instance per world + void SetWorldID(unsigned char id); + + /// \return Whatever was passed to SetWorldID(), or 0 if it was never called. + unsigned char GetWorldID(void) const; + + /// \details Sets the networkIDManager instance that this plugin relys upon.
+ /// Uses whatever instance is attached to RakPeerInterface if unset.
+ /// To support multiple worlds, you should set it to a different manager for each instance of the plugin + /// \param[in] _networkIDManager The externally allocated NetworkIDManager instance for this plugin to use. + void SetNetworkIDManager(NetworkIDManager *_networkIDManager); + + /// Returns what was passed to SetNetworkIDManager(), or the instance on RakPeerInterface if unset. + NetworkIDManager *GetNetworkIDManager(void) const; + + /// \details Send a network command to destroy one or more Replica3 instances + /// Usually you won't need this, but use Replica3::BroadcastDestruction() instead. + /// The objects are unaffected locally + /// \param[in] replicaList List of Replica3 objects to tell other systems to destroy. + /// \param[in] exclusionAddress Which system to not send to. UNASSIGNED_SYSTEM_ADDRESS to send to all. + void BroadcastDestructionList(DataStructures::List &replicaListSource, const SystemAddress &exclusionAddress); + + /// \internal + /// \details Tell other systems that have this replica to destroy this replica.
+ /// You shouldn't need to call this, as it happens in the Replica3 destructor + void BroadcastDestruction(Replica3 *replica, const SystemAddress &exclusionAddress); + + /// \internal + /// \details Frees internal lists.
+ /// Externally allocated pointers are not deallocated + void Clear(void); + + /// \internal + PRO GetDefaultSendParameters(void) const; + + /// Call interfaces, send data + virtual void Update(void); +protected: + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + virtual void OnRakPeerShutdown(void); + virtual void OnDetach(void); + + PluginReceiveResult OnConstruction(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset); + PluginReceiveResult OnSerialize(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, RakNet::Time timestamp, unsigned char packetDataOffset); + PluginReceiveResult OnDownloadStarted(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset); + PluginReceiveResult OnDownloadComplete(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset); + + void DeallocReplicaNoBroadcastDestruction(RakNet::Connection_RM3 *connection, RakNet::Replica3 *replica3); + RakNet::Connection_RM3 * PopConnection(unsigned int index); + Replica3* GetReplicaByNetworkID(NetworkID networkId); + unsigned int ReferenceInternal(RakNet::Replica3 *replica3); + + DataStructures::List connectionList; + DataStructures::List userReplicaList; + + PRO defaultSendParameters; + RakNet::Time autoSerializeInterval; + RakNet::Time lastAutoSerializeOccurance; + unsigned char worldId; + NetworkIDManager *networkIDManager; + bool autoCreateConnections, autoDestroyConnections; + Replica3 *currentlyDeallocatingReplica; + + friend class Connection_RM3; +}; + +static const int RM3_NUM_OUTPUT_BITSTREAM_CHANNELS=16; + +/// \ingroup REPLICA_MANAGER_GROUP3 +struct LastSerializationResultBS +{ + RakNet::BitStream bitStream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; +}; + +/// Represents the serialized data for an object the last time it was sent. Used by Connection_RM3::OnAutoserializeInterval() and Connection_RM3::SendSerializeIfChanged() +/// \ingroup REPLICA_MANAGER_GROUP3 +struct LastSerializationResult +{ + LastSerializationResult(); + ~LastSerializationResult(); + + /// The replica instance we serialized + RakNet::Replica3 *replica; + //bool neverSerialize; +// bool isConstructed; + + void AllocBS(void); + LastSerializationResultBS* lastSerializationResultBS; +}; + +/// Parameters passed to Replica3::Serialize() +/// \ingroup REPLICA_MANAGER_GROUP3 +struct SerializeParameters +{ + /// Write your output for serialization here + /// If nothing is written, the serialization will not occur + /// Write to any or all of the NUM_OUTPUT_BITSTREAM_CHANNELS channels available. Channels can hold independent data + RakNet::BitStream outputBitstream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + + /// Last bitstream we sent for this replica to this system. + /// Read, but DO NOT MODIFY + RakNet::BitStream* lastSentBitstream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + + /// Set to non-zero to transmit a timestamp with this message. + /// Defaults to 0 + /// Use RakNet::GetTime() for this + RakNet::Time messageTimestamp; + + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketPriority(). + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketReliability(). + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultOrderingChannel(). + PRO pro[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + + /// Passed to RakPeerInterface::Send(). + RakNet::Connection_RM3 *destinationConnection; + + /// For prior serializations this tick, for the same connection, how many bits have we written so far? + /// Use this to limit how many objects you send to update per-tick if desired + BitSize_t bitsWrittenSoFar; + + /// When this object was last serialized to the connection + /// 0 means never + RakNet::Time whenLastSerialized; + + /// Current time, in milliseconds. + /// curTime - whenLastSerialized is how long it has been since this object was last sent + RakNet::Time curTime; +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +struct DeserializeParameters +{ + RakNet::BitStream serializationBitstream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + bool bitstreamWrittenTo[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + RakNet::Time timeStamp; + RakNet::Connection_RM3 *sourceConnection; +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +enum SendSerializeIfChangedResult +{ + SSICR_SENT_DATA, + SSICR_DID_NOT_SEND_DATA, + SSICR_NEVER_SERIALIZE, +}; + +/// \brief Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instances have been allocated +/// \details Important function: AllocReplica() - must be overridden to create an object given an identifier for that object, which you define for all objects in your game +/// \ingroup REPLICA_MANAGER_GROUP3 +class RAK_DLL_EXPORT Connection_RM3 +{ +public: + + Connection_RM3(const SystemAddress &_systemAddress, RakNetGUID _guid); + virtual ~Connection_RM3(); + + /// \brief Class factory to create a Replica3 instance, given a user-defined identifier + /// \details Identifier is returned by Replica3::WriteAllocationID() for what type of class to create.
+ /// This is called when you download a replica from another system.
+ /// See Replica3::Dealloc for the corresponding destruction message.
+ /// Return 0 if unable to create the intended object. Note, in that case the other system will still think we have the object and will try to serialize object updates to us. Generally, you should not send objects the other system cannot create.
+ /// \sa Replica3::WriteAllocationID(). + /// Sample implementation:
+ /// {RakNet::RakString typeName; allocationIdBitstream->Read(typeName); if (typeName=="Soldier") return new Soldier; return 0;}
+ /// \param[in] allocationIdBitstream user-defined bitstream uniquely identifying a game object type + /// \param[in] replicaManager3 Instance of ReplicaManager3 that controls this connection + /// \return The new replica instance + virtual Replica3 *AllocReplica(RakNet::BitStream *allocationIdBitstream, ReplicaManager3 *replicaManager3)=0; + + /// \brief Get list of all replicas that are constructed for this connection + /// \param[out] objectsTheyDoHave Destination list. Returned in sorted ascending order, sorted on the value of the Replica3 pointer. + virtual void GetConstructedReplicas(DataStructures::List &objectsTheyDoHave); + + /// Returns true if we think this remote connection has this replica constructed + /// \param[in] replica3 Which replica we are querying + /// \return True if constructed, false othewise + bool HasReplicaConstructed(RakNet::Replica3 *replica); + + /// When a new connection connects, before sending any objects, SerializeOnDownloadStarted() is called + /// \param[out] bitStream Passed to DeserializeOnDownloadStarted() + virtual void SerializeOnDownloadStarted(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// Receives whatever was written in SerializeOnDownloadStarted() + /// \param[in] bitStream Written in SerializeOnDownloadStarted() + virtual void DeserializeOnDownloadStarted(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// When a new connection connects, after constructing and serialization all objects, SerializeOnDownloadComplete() is called + /// \param[out] bitStream Passed to DeserializeOnDownloadComplete() + virtual void SerializeOnDownloadComplete(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// Receives whatever was written in DeserializeOnDownloadComplete() + /// \param[in] bitStream Written in SerializeOnDownloadComplete() + virtual void DeserializeOnDownloadComplete(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// \return The system address passed to the constructor of this object + SystemAddress GetSystemAddress(void) const {return systemAddress;} + + /// \return Returns the RakNetGUID passed to the constructor of this object + RakNetGUID GetRakNetGUID(void) const {return guid;} + + /// List of enumerations for how to get the list of valid objects for other systems + enum ConstructionMode + { + /// For every object that does not exist on the remote system, call Replica3::QueryConstruction() every tick. + /// Do not call Replica3::QueryDestruction() + /// Do not call Connection_RM3::QueryReplicaList() + QUERY_REPLICA_FOR_CONSTRUCTION, + + /// For every object that does not exist on the remote system, call Replica3::QueryConstruction() every tick. Based on the call, the object may be sent to the other system. + /// For every object that does exist on the remote system, call Replica3::QueryDestruction() every tick. Based on the call, the object may be deleted on the other system. + /// Do not call Connection_RM3::QueryReplicaList() + QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION, + + /// Do not call Replica3::QueryConstruction() or Replica3::QueryDestruction() + /// Call Connection_RM3::QueryReplicaList() to determine which objects exist on remote systems + /// This can be faster than QUERY_REPLICA_FOR_CONSTRUCTION and QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION for large worlds + /// See GridSectorizer.h under /Source for code that can help with this + QUERY_CONNECTION_FOR_REPLICA_LIST + }; + + /// \brief Return whether or not downloads to our system should all be processed the same tick (call to RakPeer::Receive() ) + /// \details Normally the system will send ID_REPLICA_MANAGER_DOWNLOAD_STARTED, ID_REPLICA_MANAGER_CONSTRUCTION for all downloaded objects, + /// ID_REPLICA_MANAGER_SERIALIZE for each downloaded object, and lastly ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE. + /// This enables the application to show a downloading splash screen on ID_REPLICA_MANAGER_DOWNLOAD_STARTED, a progress bar, and to close the splash screen and activate all objects on ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE + /// However, if the application was not set up for this then it would result in incomplete objects spread out over time, and cause problems + /// If you return true from QueryGroupDownloadMessages(), then these messages will be returned all in one tick, returned only when the download is complete + /// \note ID_REPLICA_MANAGER_DOWNLOAD_STARTED calls the callback DeserializeOnDownloadStarted() + /// \note ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE calls the callback DeserializeOnDownloadComplete() + virtual bool QueryGroupDownloadMessages(void) const {return false;} + + /// \brief Queries how to get the list of objects that exist on remote systems + /// \details The default of calling QueryConstruction for every known object is easy to use, but not efficient, especially for large worlds where many objects are outside of the player's circle of influence.
+ /// QueryDestruction is also not necessarily useful or efficient, as object destruction tends to happen in known cases, and can be accomplished by calling Replica3::BroadcastDestruction() + /// QueryConstructionMode() allows you to specify more efficient algorithms than the default when overriden. + /// \return How to get the list of objects that exist on the remote system. You should always return the same value for a given connection + virtual ConstructionMode QueryConstructionMode(void) const {return QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION;} + + /// \brief Callback used when QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST + /// \details This advantage of this callback is if that there are many objects that a particular connection does not have, then we do not have to iterate through those + /// objects calling QueryConstruction() for each of them.
+ ///
+ /// The following code uses a sorted merge sort to quickly find new and deleted objects, given a list of objects we know should exist.
+ ///
+ /// DataStructures::List objectsTheyShouldHave; // You have to fill in this list
+ /// DataStructures::List objectsTheyCurrentlyHave,objectsTheyStillHave,existingReplicasToDestro,newReplicasToCreatey;
+ /// GetConstructedReplicas(objectsTheyCurrentlyHave);
+ /// DataStructures::Multilist::FindIntersection(objectsTheyCurrentlyHave, objectsTheyShouldHave, objectsTheyStillHave, existingReplicasToDestroy, newReplicasToCreate);
+ ///
+ /// See GridSectorizer in the Source directory as a method to find all objects within a certain radius in a fast way.
+ ///
+ /// \param[out] newReplicasToCreate Anything in this list will be created on the remote system + /// \param[out] existingReplicasToDestroy Anything in this list will be destroyed on the remote system + virtual void QueryReplicaList( + DataStructures::List newReplicasToCreate, + DataStructures::List existingReplicasToDestroy) {} + + /// \internal This is used internally - however, you can also call it manually to send a data update for a remote replica.
+ /// \brief Sends over a serialization update for \a replica.
+ /// NetworkID::GetNetworkID() is written automatically, serializationData is the object data.
+ /// \param[in] replica Which replica to serialize + /// \param[in] serializationData Serialized object data + /// \param[in] timestamp 0 means no timestamp. Otherwise message is prepended with ID_TIMESTAMP + /// \param[in] sendParameters Parameters on how to send + /// \param[in] rakPeer Instance of RakPeerInterface to send on + /// \param[in] worldId Which world, see ReplicaManager3::SetWorldID() + virtual SendSerializeIfChangedResult SendSerialize(RakNet::Replica3 *replica, bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::BitStream serializationData[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::Time timestamp, PRO sendParameters[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::RakPeerInterface *rakPeer, unsigned char worldId); + + /// \internal + /// \details Calls Connection_RM3::SendSerialize() if Replica3::Serialize() returns a different result than what is contained in \a lastSerializationResult.
+ /// Used by autoserialization in Connection_RM3::OnAutoserializeInterval() + /// \param[in] queryToSerializeIndex Index into queryToSerializeReplicaList for whichever replica this is + /// \param[in] sp Controlling parameters over the serialization + /// \param[in] rakPeer Instance of RakPeerInterface to send on + /// \param[in] worldId Which world, see ReplicaManager3::SetWorldID() + virtual SendSerializeIfChangedResult SendSerializeIfChanged(unsigned int queryToSerializeIndex, SerializeParameters *sp, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager); + + /// \internal + /// \brief Given a list of objects that were created and destroyed, serialize and send them to another system. + /// \param[in] newObjects Objects to serialize construction + /// \param[in] deletedObjects Objects to serialize destruction + /// \param[in] sendParameters Controlling parameters over the serialization + /// \param[in] rakPeer Instance of RakPeerInterface to send on + /// \param[in] worldId Which world, see ReplicaManager3::SetWorldID() + /// \param[in] replicaManager3 ReplicaManager3 instance + virtual void SendConstruction(DataStructures::List &newObjects, DataStructures::List &deletedObjects, PRO sendParameters, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager3); + + /// \internal + /// Remove from \a newObjectsIn objects that already exist and save to \a newObjectsOut + /// Remove from \a deletedObjectsIn objects that do not exist, and save to \a deletedObjectsOut + void CullUniqueNewAndDeletedObjects(DataStructures::List &newObjectsIn, + DataStructures::List &deletedObjectsIn, + DataStructures::List &newObjectsOut, + DataStructures::List &deletedObjectsOut); + + /// \internal + void SendValidation(RakNet::RakPeerInterface *rakPeer, unsigned char worldId); + + /// \internal + void AutoConstructByQuery(ReplicaManager3 *replicaManager3); + + + // Internal - does the other system have this connection too? Validated means we can now use it + bool isValidated; + // Internal - Used to see if we should send download started + bool isFirstConstruction; + + static int Replica3LSRComp( Replica3 * const &replica3, LastSerializationResult * const &data ); + +protected: + + SystemAddress systemAddress; + RakNetGUID guid; + + /* + Operations: + + Locally reference a new replica: + Add to queryToConstructReplicaList for all objects + + Add all objects to queryToConstructReplicaList + + Download: + Add to constructedReplicaList for connection that send the object to us + Add to queryToSerializeReplicaList for connection that send the object to us + Add to queryToConstructReplicaList for all other connections + + Never construct for this connection: + Remove from queryToConstructReplicaList + + Construct to this connection + Remove from queryToConstructReplicaList + Add to constructedReplicaList for this connection + Add to queryToSerializeReplicaList for this connection + + Serialize: + Iterate through queryToSerializeReplicaList + + Never serialize for this connection + Remove from queryToSerializeReplicaList + + Reference (this system has this object already) + Remove from queryToConstructReplicaList + Add to constructedReplicaList for this connection + Add to queryToSerializeReplicaList for this connection + + Downloaded an existing object + if replica is in queryToConstructReplicaList, OnConstructToThisConnection() + else ignore + + Send destruction from query + Remove from queryToDestructReplicaList + Remove from queryToSerializeReplicaList + Remove from constructedReplicaList + Add to queryToConstructReplicaList + + Do not query destruction again + Remove from queryToDestructReplicaList + */ + void OnLocalReference(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnDereference(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnDownloadFromThisSystem(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnDownloadFromOtherSystem(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnNeverConstruct(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager); + void OnConstructToThisConnection(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager); + void OnConstructToThisConnection(Replica3 *replica, ReplicaManager3 *replicaManager); + void OnNeverSerialize(unsigned int queryToSerializeIndex, ReplicaManager3 *replicaManager); + void OnReplicaAlreadyExists(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager); + void OnDownloadExisting(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnSendDestructionFromQuery(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager); + void OnDoNotQueryDestruction(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager); + void ValidateLists(ReplicaManager3 *replicaManager) const; + void SendSerializeHeader(RakNet::Replica3 *replica, RakNet::Time timestamp, RakNet::BitStream *bs, unsigned char worldId); + + // The list of objects that our local system and this remote system both have + // Either we sent this object to them, or they sent this object to us + // A given Replica can be either in queryToConstructReplicaList or constructedReplicaList but not both at the same time + DataStructures::OrderedList constructedReplicaList; + + // Objects that we have, but this system does not, and we will query each tick to see if it should be sent to them + // If we do send it to them, the replica is moved to constructedReplicaList + // A given Replica can be either in queryToConstructReplicaList or constructedReplicaList but not both at the same time + DataStructures::List queryToConstructReplicaList; + + // Objects that this system has constructed are added at the same time to queryToSerializeReplicaList + // This list is used to serialize all objects that this system has to this connection + DataStructures::List queryToSerializeReplicaList; + + // Objects that are constructed on this system are also queried if they should be destroyed to this system + DataStructures::List queryToDestructReplicaList; + + // Working lists + DataStructures::List constructedReplicasCulled, destroyedReplicasCulled; + + // This is used if QueryGroupDownloadMessages() returns true when ID_REPLICA_MANAGER_DOWNLOAD_STARTED arrives + // Packets will be gathered and not returned until ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE arrives + bool groupConstructionAndSerialize; + DataStructures::Queue downloadGroup; + void ClearDownloadGroup(RakPeerInterface *rakPeerInterface); + + friend class ReplicaManager3; +private: + Connection_RM3() {}; + + ConstructionMode constructionMode; +}; + +/// \brief Return codes for Connection_RM3::GetConstructionState() and Replica3::QueryConstruction() +/// \details Indicates what state the object should be in for the remote system +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3ConstructionState +{ + /// This object should exist on the remote system. Send a construction message if necessary + /// If the NetworkID is already in use, it will not do anything + /// If it is not in use, it will create the object, and then call DeserializeConstruction + RM3CS_SEND_CONSTRUCTION, + + /// This object should exist on the remote system. + /// The other system already has the object, and the object will never be deleted. + /// This is true of objects that are loaded with the level, for example. + /// Treat it as if it existed, without sending a construction message. + /// Will call Serialize() and SerializeConstructionExisting() to the object on the remote system + RM3CS_ALREADY_EXISTS_REMOTELY, + + /// Same as RM3CS_ALREADY_EXISTS_REMOTELY but does not call SerializeConstructionExisting() + RM3CS_ALREADY_EXISTS_REMOTELY_DO_NOT_CONSTRUCT, + + /// This object will never be sent to the target system + /// This object will never be serialized from this system to the target system + RM3CS_NEVER_CONSTRUCT, + + /// Don't do anything this tick. Will query again next tick + RM3CS_NO_ACTION, + + /// Max enum + RM3CS_MAX, +}; + +/// If this object already exists for this system, should it be removed? +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3DestructionState +{ + /// This object should not exist on the remote system. Send a destruction message if necessary. + RM3DS_SEND_DESTRUCTION, + + /// This object will never be destroyed by a per-tick query. Don't call again + RM3DS_DO_NOT_QUERY_DESTRUCTION, + + /// Don't do anything this tick. Will query again next tick + RM3DS_NO_ACTION, + + /// Max enum + RM3DS_MAX, +}; + +/// Return codes when constructing an object +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3SerializationResult +{ + /// This object serializes identically no matter who we send to + /// We also send it to every connection (broadcast). + /// Efficient for memory, speed, and bandwidth but only if the object is always broadcast identically. + RM3SR_BROADCAST_IDENTICALLY, + + /// Same as RM3SR_BROADCAST_IDENTICALLY, but assume the object needs to be serialized, do not check with a memcmp + /// Assume the object changed, and serialize it + /// Use this if you know exactly when your object needs to change. Can be faster than RM3SR_BROADCAST_IDENTICALLY. + /// An example of this is if every member variable has an accessor, changing a member sets a flag, and you check that flag in Replica3::QuerySerialization() + /// The opposite of this is RM3SR_DO_NOT_SERIALIZE, in case the object did not change + RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION, + + /// Either this object serializes differently depending on who we send to or we send it to some systems and not others. + /// Inefficient for memory and speed, but efficient for bandwidth + /// However, if you don't know what to return, return this + RM3SR_SERIALIZED_UNIQUELY, + + /// Do not compare against last sent value. Just send even if the data is the same as the last tick + /// If the data is always changing anyway, or you want to send unreliably, this is a good method of serialization + /// Can send unique data per connection if desired. If same data is sent to all connections, use RM3SR_SERIALIZED_ALWAYS_IDENTICALLY for even better performance + /// Efficient for memory and speed, but not necessarily bandwidth + RM3SR_SERIALIZED_ALWAYS, + + /// Even faster than RM3SR_SERIALIZED_ALWAYS + /// Serialize() will only be called for the first system. The remaining systems will get the same data as the first system. + RM3SR_SERIALIZED_ALWAYS_IDENTICALLY, + + /// Do not serialize this object this tick, for this connection. Will query again next autoserialize timer + RM3SR_DO_NOT_SERIALIZE, + + /// Never serialize this object for this connection + /// Useful for objects that are downloaded, and never change again + /// Efficient + RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION, + + /// Max enum + RM3SR_MAX, +}; + +/// First pass at topology to see if an object should be serialized +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3QuerySerializationResult +{ + /// Call Serialize() to see if this object should be serializable for this connection + RM3QSR_CALL_SERIALIZE, + /// Do not call Serialize() this tick to see if this object should be serializable for this connection + RM3QSR_DO_NOT_CALL_SERIALIZE, + /// Never call Serialize() for this object and connection. This system will not serialize this object for this topology + RM3QSR_NEVER_CALL_SERIALIZE, + /// Max enum + RM3QSR_MAX, +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3ActionOnPopConnection +{ + RM3AOPC_DO_NOTHING, + RM3AOPC_DELETE_REPLICA, + RM3AOPC_DELETE_REPLICA_AND_BROADCAST_DESTRUCTION, + RM3AOPC_MAX, +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +/// Used for Replica3::QueryConstruction_PeerToPeer() and Replica3::QuerySerialization_PeerToPeer() to describe how the object replicates between hosts +enum Replica3P2PMode +{ + /// The Replica3 instance is constructed and serialized by one system only. + /// Example: Your avatar. No other player serializes or can create your avatar. + R3P2PM_SINGLE_OWNER, + /// The Replica3 instance is constructed and/or serialized by different systems + /// This system is currently in charge of construction and/or serialization + /// Example: A pickup. When an avatar holds it, that avatar controls it. When it is on the ground, the host controls it. + R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE, + /// The Replica3 instance is constructed and/or serialized by different systems + /// Another system is in charge of construction and/or serialization, but this system may be in charge at a later time + /// Example: A pickup held by another player. That player sends creation of that object to new connections, and serializes it until it is dropped. + R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE, +}; + +/// \brief Base class for your replicated objects for the ReplicaManager3 system. +/// \details To use, derive your class, or a member of your class, from Replica3.
+/// \ingroup REPLICA_MANAGER_GROUP3 +class RAK_DLL_EXPORT Replica3 : public NetworkIDObject +{ +public: + Replica3(); + + /// Before deleting a local instance of Replica3, call Replica3::BroadcastDestruction() for the deletion notification to go out on the network. + /// It is not necessary to call ReplicaManager3::Dereference(), as this happens automatically in the destructor + virtual ~Replica3(); + + /// \brief Write a unique identifer that can be read on a remote system to create an object of this same class. + /// \details The value written to \a allocationIdBitstream will be passed to Connection_RM3::AllocReplica().
+ /// Sample implementation:
+ /// {allocationIdBitstream->Write(RakNet::RakString("Soldier");}
+ /// \param[out] allocationIdBitstream Bitstream for the user to write to, to identify this class + virtual void WriteAllocationID(RakNet::Connection_RM3 *destinationConnection, RakNet::BitStream *allocationIdBitstream) const=0; + + /// \brief Ask if this object, which does not exist on \a destinationConnection should (now) be sent to that system. + /// \details If ReplicaManager3::QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST or QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION (default), + /// then QueyrConstruction() is called once per tick from ReplicaManager3::Update() to determine if an object should exist on a given system.
+ /// Based on the return value, a network message may be sent to the other system to create the object.
+ /// If QueryConstructionMode() is overriden to return QUERY_CONNECTION_FOR_REPLICA_LIST, this function is unused.
+ /// \note Defaults are provided: QueryConstruction_PeerToPeer(), QueryConstruction_ServerConstruction(), QueryConstruction_ClientConstruction(). Return one of these functions for a working default for the relevant topology. + /// \param[in] destinationConnection Which system we will send to + /// \param[in] replicaManager3 Plugin instance for this Replica3 + /// \return What action to take + virtual RM3ConstructionState QueryConstruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3)=0; + + /// \brief Ask if this object, which does exist on \a destinationConnection should be removed from the remote system + /// \details If ReplicaManager3::QueryConstructionMode() returns QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION (default), + /// then QueryDestruction() is called once per tick from ReplicaManager3::Update() to determine if an object that exists on a remote system should be destroyed for a given system.
+ /// Based on the return value, a network message may be sent to the other system to destroy the object.
+ /// Note that you can also destroy objects with BroadcastDestruction(), so this function is not useful unless you plan to delete objects for only a particular connection.
+ /// If QueryConstructionMode() is overriden to return QUERY_CONNECTION_FOR_REPLICA_LIST, this function is unused.
+ /// \param[in] destinationConnection Which system we will send to + /// \param[in] replicaManager3 Plugin instance for this Replica3 + /// \return What action to take. Only RM3CS_SEND_DESTRUCTION does anything at this time. + virtual RM3DestructionState QueryDestruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3) {(void) destinationConnection; (void) replicaManager3; return RM3DS_DO_NOT_QUERY_DESTRUCTION;} + + /// \brief We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns false, this object is deleted instead. + /// \details By default, QueryRemoteConstruction_ServerConstruction() does not allow clients to create objects. The client will get Replica3::DeserializeConstructionRequestRejected().
+ /// If you want the client to be able to potentially create objects for client/server, override accordingly.
+ /// Other variants of QueryRemoteConstruction_* just return true. + /// \note Defaults are provided: QueryRemoteConstruction_PeerToPeer(), QueryRemoteConstruction_ServerConstruction(), QueryRemoteConstruction_ClientConstruction(). Return one of these functions for a working default for the relevant topology. + /// \param[in] sourceConnection Which system sent us the object creation request message. + /// \return True to allow the object to pass onto DeserializeConstruction() (where it may also be rejected), false to immediately reject the remote construction request + virtual bool QueryRemoteConstruction(RakNet::Connection_RM3 *sourceConnection)=0; + + /// \brief We got a message from a connection to destroy this replica + /// Return true to automatically relay the destruction message to all our other connections + /// For a client in client/server, it does not matter what this funtion returns + /// For a server in client/server, this should normally return true + /// For a peer in peer to peer, you can normally return false since the original destroying peer would have told all other peers about the destruction + /// If a system gets a destruction command for an object that was already destroyed, the destruction message is ignored + virtual bool QueryRelayDestruction(Connection_RM3 *sourceConnection) const {(void) sourceConnection; return true;} + + /// \brief Write data to be sent only when the object is constructed on a remote system. + /// \details SerializeConstruction is used to write out data that you need to create this object in the context of your game, such as health, score, name. Use it for data you only need to send when the object is created.
+ /// After SerializeConstruction() is called, Serialize() will be called immediately thereafter. However, they are sent in different messages, so Serialize() may arrive a later frame than SerializeConstruction() + /// For that reason, the object should be valid after a call to DeserializeConstruction() for at least a short time.
+ /// \note The object's NetworkID and allocation id are handled by the system automatically, you do not need to write these values to \a constructionBitstream + /// \param[out] constructionBitstream Destination bitstream to write your data to + /// \param[in] destinationConnection System that will receive this network message. + virtual void SerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection)=0; + + /// \brief Read data written by Replica3::SerializeConstruction() + /// \details Reads whatever data was written to \a constructionBitstream in Replica3::SerializeConstruction() + /// \param[out] constructionBitstream Bitstream written to in Replica3::SerializeConstruction() + /// \param[in] sourceConnection System that sent us this network message. + /// \return true to accept construction of the object. false to reject, in which case the object will be deleted via Replica3::DeallocReplica() + virtual bool DeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection)=0; + + /// Same as SerializeConstruction(), but for an object that already exists on the remote system. + /// Used if you return RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void SerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {(void) constructionBitstream; (void) destinationConnection;}; + + /// Same as DeserializeConstruction(), but for an object that already exists on the remote system. + /// Used if you return RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void DeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {(void) constructionBitstream; (void) sourceConnection;}; + + /// \brief Write extra data to send with the object deletion event, if desired + /// \details Replica3::SerializeDestruction() will be called to write any object destruction specific data you want to send with this event. + /// \a destructionBitstream can be read in DeserializeDestruction() + /// \param[out] destructionBitstream Bitstream for you to write to + /// \param[in] destinationConnection System that will receive this network message. + virtual void SerializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *destinationConnection)=0; + + /// \brief Read data written by Replica3::SerializeDestruction() + /// \details Return true to delete the object. BroadcastDestruction() will be called automatically, followed by ReplicaManager3::Dereference.
+ /// Return false to not delete it. If you delete it at a later point, you are responsible for calling BroadcastDestruction() yourself. + virtual bool DeserializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *sourceConnection)=0; + + /// \brief The system is asking what to do with this replica when the connection is dropped + /// \details Return QueryActionOnPopConnection_Client, QueryActionOnPopConnection_Server, or QueryActionOnPopConnection_PeerToPeer + virtual RakNet::RM3ActionOnPopConnection QueryActionOnPopConnection(RakNet::Connection_RM3 *droppedConnection) const=0; + + /// Notification called for each of our replicas when a connection is popped + virtual void OnPoppedConnection(RakNet::Connection_RM3 *droppedConnection) {(void) droppedConnection;} + + /// \brief Override with {delete this;} + /// \details + ///
    + ///
  1. Got a remote message to delete this object which passed DeserializeDestruction(), OR + ///
  2. ReplicaManager3::SetAutoManageConnections() was called autoDestroy true (which is the default setting), and a remote system that owns this object disconnected) OR + /// <\OL> + ///
    + /// Override with {delete this;} to actually delete the object (and any other processing you wish).
    + /// If you don't want to delete the object, just do nothing, however, the system will not know this so you are responsible for deleting it yoruself later.
    + /// destructionBitstream may be 0 if the object was deleted locally + virtual void DeallocReplica(RakNet::Connection_RM3 *sourceConnection)=0; + + /// \brief Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer() + /// \details QuerySerialization() is a first pass query to check if a given object should serializable to a given system. The intent is that the user implements with one of the defaults for client, server, or peer to peer.
    + /// Without this function, a careless implementation would serialize an object anytime it changed to all systems. This would give you feedback loops as the sender gets the same message back from the recipient it just sent to.
    + /// If more than one system can serialize the same object then you will need to override to return true, and control the serialization result from Replica3::Serialize(). Be careful not to send back the same data to the system that just sent to you! + /// \return True to allow calling Replica3::Serialize() for this connection, false to not call. + virtual RakNet::RM3QuerySerializationResult QuerySerialization(RakNet::Connection_RM3 *destinationConnection)=0; + + /// \brief Called for each replica owned by the user, once per Serialization tick, before Serialize() is called. + /// If you want to do some kind of operation on the Replica objects that you own, just before Serialization(), then overload this function + virtual void OnUserReplicaPreSerializeTick(void) {} + + /// \brief Serialize our class to a bitstream + /// \details User should implement this function to write the contents of this class to SerializationParamters::serializationBitstream.
    + /// If data only needs to be written once, you can write it to SerializeConstruction() instead for efficiency.
    + /// Transmitted over the network if it changed from the last time we called Serialize().
    + /// Called every time the time interval to ReplicaManager3::SetAutoSerializeInterval() elapses and ReplicaManager3::Update is subsequently called. + /// \param[in/out] serializeParameters Parameters controlling the serialization, including destination bitstream to write to + /// \return Whether to serialize, and if so, how to optimize the results + virtual RM3SerializationResult Serialize(RakNet::SerializeParameters *serializeParameters)=0; + + /// \brief Called when the class is actually transmitted via Serialize() + /// \details Use to track how much bandwidth this class it taking + virtual void OnSerializeTransmission(RakNet::BitStream *bitStream, const SystemAddress &systemAddress) {(void) bitStream; (void) systemAddress; } + + /// \brief Read what was written in Serialize() + /// \details Reads the contents of the class from SerializationParamters::serializationBitstream.
    + /// Called whenever Serialize() is called with different data from the last send. + /// \param[in] serializationBitstream Bitstream passed to Serialize() + /// \param[in] timeStamp 0 if unused, else contains the time the message originated on the remote system + /// \param[in] sourceConnection Which system sent to us + virtual void Deserialize(RakNet::DeserializeParameters *deserializeParameters)=0; + + /// \brief Called after SerializeConstruction completes for all objects in a given update tick.
    + /// Writes to PostDeserializeConstruction(), which is called after all objects are created for a given Construction tick(). + /// Override to send data to PostDeserializeConstruction(), such as the NetworkID of other objects to resolve pointers to + virtual void PostSerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {(void) constructionBitstream; (void) destinationConnection;} + + /// Called after DeserializeConstruction completes for all objects in a given update tick.
    + /// This is used to resolve dependency chains, where two objects would refer to each other in DeserializeConstruction, yet one had not been constructed yet + /// In PostDeserializeConstruction(), you know that all objects have already been created, so can resolve NetworkIDs to pointers safely. + /// You can also use it to trigger some sort of event when you know the object has completed deserialization. + /// \param[in] constructionBitstream BitStream written in PostSerializeConstruction() + /// \param[in] sourceConnection System that sent us this network message. + virtual void PostDeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {(void) constructionBitstream; (void) sourceConnection;} + + /// Same as PostSerializeConstruction(), but for objects that returned RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void PostSerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {(void) constructionBitstream; (void) destinationConnection;} + + /// Same as PostDeserializeConstruction(), but for objects that returned RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void PostDeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {(void) constructionBitstream; (void) sourceConnection;} + + /// Called after DeserializeDestruction completes for the object successfully, but obviously before the object is deleted.
    + /// Override to trigger some sort of event when you know the object has completed destruction. + /// \param[in] sourceConnection System that sent us this network message. + virtual void PreDestruction(RakNet::Connection_RM3 *sourceConnection) {(void) sourceConnection;} + + /// \brief Default call for QueryConstruction(). + /// \details Both the client and the server is allowed to create this object. The network topology is client/server + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RM3ConstructionState QueryConstruction_ClientConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// Default call for QueryRemoteConstruction(). + /// \details Both the client and the server is allowed to create this object. The network topology is client/server + /// \param[in] sourceConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual bool QueryRemoteConstruction_ClientConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer); + + /// \brief Default call for QueryConstruction(). + /// \details Only the server is allowed to create this object. The network topology is client/server + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RM3ConstructionState QueryConstruction_ServerConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// \brief Default call for QueryRemoteConstruction(). Allow the server to create this object, but not the client. + /// \details Only the server is allowed to create this object. The network topology is client/server + /// \param[in] sourceConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual bool QueryRemoteConstruction_ServerConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer); + + /// \brief Default call for QueryConstruction(). + /// \details All clients are allowed to create all objects. The object is not relayed when remotely created + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] p2pMode If controlled only by this system ever, pass R3P2PM_SINGLE_OWNER. Otherwise pass R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE or R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE + virtual RM3ConstructionState QueryConstruction_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode=R3P2PM_SINGLE_OWNER); + /// \brief Default call for QueryRemoteConstruction(). + /// \details All clients are allowed to create all objects. The object is not relayed when remotely created + /// \param[in] sourceConnection destinationConnection parameter passed to QueryConstruction() + virtual bool QueryRemoteConstruction_PeerToPeer(RakNet::Connection_RM3 *sourceConnection); + + /// \brief Default call for QuerySerialization(). + /// \details Use if the values you are serializing are generated by the client that owns the object. The serialization will be relayed through the server to the other clients. + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RakNet::RM3QuerySerializationResult QuerySerialization_ClientSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// \brief Default call for QuerySerialization(). + /// \details Use if the values you are serializing are generated only by the server. The serialization will be sent to all clients, but the clients will not send back to the server. + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RakNet::RM3QuerySerializationResult QuerySerialization_ServerSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// \brief Default call for QuerySerialization(). + /// \details Use if the values you are serializing are on a peer to peer network. The peer that owns the object will send to all. Remote peers will not send. + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] p2pMode If controlled only by this system ever, pass R3P2PM_SINGLE_OWNER. Otherwise pass R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE or R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE + virtual RakNet::RM3QuerySerializationResult QuerySerialization_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode=R3P2PM_SINGLE_OWNER); + + /// Default: If we are a client, and the connection is lost, delete the server's objects + virtual RM3ActionOnPopConnection QueryActionOnPopConnection_Client(RakNet::Connection_RM3 *droppedConnection) const; + /// Default: If we are a client, and the connection is lost, delete the client's objects and broadcast the destruction + virtual RM3ActionOnPopConnection QueryActionOnPopConnection_Server(RakNet::Connection_RM3 *droppedConnection) const; + /// Default: If we are a peer, and the connection is lost, delete the peer's objects + virtual RM3ActionOnPopConnection QueryActionOnPopConnection_PeerToPeer(RakNet::Connection_RM3 *droppedConnection) const; + + /// Call to send a network message to delete this object on other systems.
    + /// Call it before deleting the object + virtual void BroadcastDestruction(void); + + /// creatingSystemGUID is set the first time Reference() is called, or if we get the object from another system + /// \return System that originally created this object + RakNetGUID GetCreatingSystemGUID(void) const; + + /// \return If ReplicaManager3::Reference() was called on this object. + bool WasReferenced(void) const {return replicaManager!=0;} + + /// GUID of the system that first called Reference() on this object. + /// Transmitted automatically when the object is constructed + RakNetGUID creatingSystemGUID; + /// GUID of the system that caused the item to send a deletion command over the network + RakNetGUID deletingSystemGUID; + + /// \internal + /// ReplicaManager3 plugin associated with this object + ReplicaManager3 *replicaManager; + + LastSerializationResultBS lastSentSerialization; + RakNet::Time whenLastSerialized; + bool forceSendUntilNextUpdate; +}; + +/// \brief Use Replica3 through composition instead of inheritance by containing an instance of this templated class +/// Calls to parent class for all functions +/// Parent class must still define and functions though! +/// \pre Parent class must call SetParent() on this object +template +class RAK_DLL_EXPORT Replica3Composite : public Replica3 +{ +protected: + parent_type *r3CompositeOwner; +public: + void SetCompositeOwner(parent_type *p) {r3CompositeOwner=p;} + parent_type* GetCompositeOwner(void) const {return r3CompositeOwner;}; + virtual void WriteAllocationID(RakNet::Connection_RM3 *destinationConnection, RakNet::BitStream *allocationIdBitstream) const {r3CompositeOwner->WriteAllocationID(destinationConnection, allocationIdBitstream);} + virtual RM3ConstructionState QueryConstruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3) {return r3CompositeOwner->QueryConstruction(destinationConnection, replicaManager3);} + virtual RM3DestructionState QueryDestruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3) {return r3CompositeOwner->QueryDestruction(destinationConnection, replicaManager3);} + virtual bool QueryRemoteConstruction(RakNet::Connection_RM3 *sourceConnection) {return r3CompositeOwner->QueryRemoteConstruction(sourceConnection);} + virtual bool QueryRelayDestruction(Connection_RM3 *sourceConnection) const {return r3CompositeOwner->QueryRelayDestruction(sourceConnection);} + virtual void SerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->SerializeConstruction(constructionBitstream, destinationConnection);} + virtual bool DeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {return r3CompositeOwner->DeserializeConstruction(constructionBitstream, sourceConnection);} + virtual void SerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->SerializeConstructionExisting(constructionBitstream, destinationConnection);} + virtual void DeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->DeserializeConstructionExisting(constructionBitstream, sourceConnection);} + virtual void SerializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->SerializeDestruction(destructionBitstream, destinationConnection);} + virtual bool DeserializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *sourceConnection) {return r3CompositeOwner->DeserializeDestruction(destructionBitstream, sourceConnection);} + virtual RakNet::RM3ActionOnPopConnection QueryActionOnPopConnection(RakNet::Connection_RM3 *droppedConnection) const {return r3CompositeOwner->QueryActionOnPopConnection(droppedConnection);} + virtual void OnPoppedConnection(RakNet::Connection_RM3 *droppedConnection) {r3CompositeOwner->OnPoppedConnection(droppedConnection);} + virtual void DeallocReplica(RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->DeallocReplica(sourceConnection);} + virtual RakNet::RM3QuerySerializationResult QuerySerialization(RakNet::Connection_RM3 *destinationConnection) {return r3CompositeOwner->QuerySerialization(destinationConnection);} + virtual void OnUserReplicaPreSerializeTick(void) {r3CompositeOwner->OnUserReplicaPreSerializeTick();} + virtual RM3SerializationResult Serialize(RakNet::SerializeParameters *serializeParameters) {return r3CompositeOwner->Serialize(serializeParameters);} + virtual void OnSerializeTransmission(RakNet::BitStream *bitStream, const SystemAddress &systemAddress) {r3CompositeOwner->OnSerializeTransmission(bitStream, systemAddress);} + virtual void Deserialize(RakNet::DeserializeParameters *deserializeParameters) {r3CompositeOwner->Deserialize(deserializeParameters);} + virtual void PostSerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->PostSerializeConstruction(constructionBitstream, destinationConnection);} + virtual void PostDeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->PostDeserializeConstruction(constructionBitstream, sourceConnection);} + virtual void PostSerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->PostSerializeConstructionExisting(constructionBitstream, destinationConnection);} + virtual void PostDeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->PostDeserializeConstructionExisting(constructionBitstream, sourceConnection);} + virtual void PreDestruction(RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->PreDestruction(sourceConnection);} +}; + +} // namespace RakNet + + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/Router2.cpp b/project/lib_projects/raknet/jni/RaknetSources/Router2.cpp new file mode 100755 index 0000000..a442fb5 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Router2.cpp @@ -0,0 +1,1329 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_Router2==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#include "Router2.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "RakNetTime.h" +#include "GetTime.h" +#include "DS_OrderedList.h" +#include "SocketLayer.h" +#include "FormatString.h" + +using namespace RakNet; + +/* +Algorithm: + +1. Sender calls ConnectInternal(). A ConnnectRequest structure is allocated and stored in the connectionRequests list, containing a list of every system we are connected to. ID_ROUTER_2_QUERY_FORWARDING is sent to all connected systems. + +2. Upon the router getting ID_ROUTER_2_QUERY_FORWARDING, ID_ROUTER_2_REPLY_FORWARDING is sent to the sender indicating if that router is connected to the endpoint, along with the ping from the router to the endpoint. + +3. Upon the sender getting ID_ROUTER_2_REPLY_FORWARDING, the connection request structure is looked up in Router2::UpdateForwarding. The ping is stored in that structure. Once all systems have replied, the system continues to the next state. If every system in step 1 has been exhausted, and routing has occured at least once, then ID_CONNECTION_LOST is returned. If every system in step 1 has been exhausted and routing has never occured, then ID_ROUTER_2_FORWARDING_NO_PATH is returned. Otherwise, the router with the lowest ping is chosen, and RequestForwarding() is called with that system, which sends ID_ROUTER_2_REQUEST_FORWARDING to the router. + +4. When the router gets ID_ROUTER_2_REQUEST_FORWARDING, a MiniPunchRequest structure is allocated and stored in the miniPunchesInProgress list. The function SendOOBMessages() sends ID_ROUTER_2_REPLY_TO_SENDER_PORT from the routing sockets to both the sender and endpoint. It also sends ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT through the regular RakNet connection. + +5. The sender and endpoint should get ID_ROUTER_2_REPLY_TO_SENDER_PORT and/or ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT depending on what type of router they have. If ID_ROUTER_2_REPLY_TO_SENDER_PORT arrives, then this will reply back to the routing socket directly. If ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT arrives, then the reply port is modified to be the port specified by the router system. In both cases, ID_ROUTER_2_MINI_PUNCH_REPLY is sent. As the router has already setup the forwarding, ID_ROUTER_2_MINI_PUNCH_REPLY will actually arrive to the endpoint from the sender, and from the sender to the endpoint. + +6. When ID_ROUTER_2_MINI_PUNCH_REPLY arrives, ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE will be sent to the router. This is to tell the router that the forwarding has succeeded. + +7. When ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE arrives on the router, the router will find the two systems in the miniPunchesInProgress list, which was added in step 4 (See OnMiniPunchReplyBounce()). gotReplyFromSource or gotReplyFromEndpoint will be set to true, depending on the sender. When both gotReplyFromSource and gotReplyFromEndpoint have replied, then ID_ROUTER_2_REROUTE is sent to the endpoint, and ID_ROUTER_2_FORWARDING_ESTABLISHED is sent to the sender. + +8. When the endpoint gets ID_ROUTER_2_REROUTE, the system address is updated for the guid of the sender using RakPeer::ChangeSystemAddress(). This happens in OnRerouted(). + +9. When the sender gets ID_ROUTER_2_FORWARDING_ESTABLISHED, then in OnForwardingSuccess() the endpoint is removed from the connectionRequest list and moved to the forwardedConnectionList. + +10. In OnClosedConnection(), for the sender, if the closed connection is the endpoint, then the endpoint is removed from the forwardedConnectionList (this is a graceful disconnect). If the connection was instead lost to the router, then ConnectInternal() gets called, which goes back to step 1. If instead this was a connection requset in progress, then UpdateForwarding() gets called, which goes back to step 3. + +11. When the user connects the endpoint and sender, then the sender will get ID_CONNECTION_REQUEST_ACCEPTED. The sender will look up the endpoint in the forwardedConnectionList, and send ID_ROUTER_2_INCREASE_TIMEOUT to the endpoint. This message will call SetTimeoutTime() on the endpoint, so that if the router disconnects, enough time is available for the reroute to complete. +*/ + +#define MIN_MINIPUNCH_TIMEOUT 5000 + + + + +void Router2DebugInterface::ShowFailure(const char *message) +{ + printf("%s", message); +} +void Router2DebugInterface::ShowDiagnostic(const char *message) +{ + printf("%s", message); +} + +enum Router2MessageIdentifiers +{ + ID_ROUTER_2_QUERY_FORWARDING, + ID_ROUTER_2_REPLY_FORWARDING, + ID_ROUTER_2_REQUEST_FORWARDING, + ID_ROUTER_2_INCREASE_TIMEOUT, +}; +Router2::ConnnectRequest::ConnnectRequest() +{ + +} +Router2::ConnnectRequest::~ConnnectRequest() +{ + +} + +STATIC_FACTORY_DEFINITIONS(Router2,Router2); + +Router2::Router2() +{ + udpForwarder=0; + maximumForwardingRequests=0; + debugInterface=0; + socketFamily=AF_INET; +} +Router2::~Router2() +{ + ClearAll(); + + if (udpForwarder) + { + udpForwarder->Shutdown(); + RakNet::OP_DELETE(udpForwarder,_FILE_AND_LINE_); + } +} +void Router2::ClearMinipunches(void) +{ + miniPunchesInProgressMutex.Lock(); + miniPunchesInProgress.Clear(false,_FILE_AND_LINE_); + miniPunchesInProgressMutex.Unlock(); +} +void Router2::ClearConnectionRequests(void) +{ + connectionRequestsMutex.Lock(); + for (unsigned int i=0; i < connectionRequests.Size(); i++) + { + RakNet::OP_DELETE(connectionRequests[i],_FILE_AND_LINE_); + } + connectionRequests.Clear(false,_FILE_AND_LINE_); + connectionRequestsMutex.Unlock(); +} +bool Router2::ConnectInternal(RakNetGUID endpointGuid, bool returnConnectionLostOnFailure) +{ + int largestPing = GetLargestPingAmongConnectedSystems(); + if (largestPing<0) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2: ConnectInternal(%I64d) failed at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + + // Not connected to anyone + return false; + } + + // ALready in progress? + connectionRequestsMutex.Lock(); + if (GetConnectionRequestIndex(endpointGuid)!=(unsigned int)-1) + { + connectionRequestsMutex.Unlock(); + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2: ConnectInternal(%I64d) failed at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + + return false; + } + connectionRequestsMutex.Unlock(); + + // StoreRequest(endpointGuid, Largest(ping*2), systemsSentTo). Set state REQUEST_STATE_QUERY_FORWARDING + Router2::ConnnectRequest *cr = RakNet::OP_NEW(_FILE_AND_LINE_); + DataStructures::List addresses; + DataStructures::List guids; + rakPeerInterface->GetSystemList(addresses, guids); + if (guids.Size()==0) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i\n", _FILE_AND_LINE_)); + + return false; + } + cr->requestState=R2RS_REQUEST_STATE_QUERY_FORWARDING; + cr->pingTimeout=RakNet::GetTimeMS()+largestPing*2+1000; + cr->endpointGuid=endpointGuid; + cr->returnConnectionLostOnFailure=returnConnectionLostOnFailure; + for (unsigned int i=0; i < guids.Size(); i++) + { + ConnectionRequestSystem crs; + if (guids[i]!=endpointGuid) + { + crs.guid=guids[i]; + crs.pingToEndpoint=-1; + cr->connectionRequestSystemsMutex.Lock(); + cr->connectionRequestSystems.Push(crs,_FILE_AND_LINE_); + cr->connectionRequestSystemsMutex.Unlock(); + + // Broadcast(ID_ROUTER_2_QUERY_FORWARDING, endpointGuid); + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_QUERY_FORWARDING); + bsOut.Write(endpointGuid); + uint32_t pack_id = rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,crs.guid,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Router2::ConnectInternal: at %s:%i, pack_id = %d", __FILE__, __LINE__,pack_id)); + } + + } + else + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Router2::ConnectInternal: at %s:%i [else ..].: %I64d==%I64d", __FILE__, __LINE__, + guids[i].g,endpointGuid.g)); + } + } + } + connectionRequestsMutex.Lock(); + connectionRequests.Push(cr,_FILE_AND_LINE_); + connectionRequestsMutex.Unlock(); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Broadcasting ID_ROUTER_2_QUERY_FORWARDING to %I64d at %s:%i\n", endpointGuid.g , __FILE__, __LINE__)); + } + + return true; +} +void Router2::SetSocketFamily(unsigned short _socketFamily) +{ + socketFamily=_socketFamily; +} +void Router2::EstablishRouting(RakNetGUID endpointGuid) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(endpointGuid); + if (cs!=IS_DISCONNECTED && cs!=IS_NOT_CONNECTED) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i " + "(already connected to the %I64d)\n", __FILE__, __LINE__, endpointGuid.g )); + return; + } + + ConnectInternal(endpointGuid,false); +} +void Router2::SetMaximumForwardingRequests(int max) +{ + if (max>0 && maximumForwardingRequests<=0) + { + udpForwarder = RakNet::OP_NEW(_FILE_AND_LINE_); + udpForwarder->Startup(); + } + else if (max<=0 && maximumForwardingRequests>0) + { + udpForwarder->Shutdown(); + RakNet::OP_DELETE(udpForwarder,_FILE_AND_LINE_); + udpForwarder=0; + } + + maximumForwardingRequests=max; +} +PluginReceiveResult Router2::OnReceive(Packet *packet) +{ + SystemAddress sa; + RakNet::BitStream bs(packet->data,packet->length,false); + if (packet->data[0]==ID_ROUTER_2_INTERNAL) + { + switch (packet->data[1]) + { + case ID_ROUTER_2_QUERY_FORWARDING: + { + OnQueryForwarding(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_REPLY_FORWARDING: + { + OnQueryForwardingReply(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_REQUEST_FORWARDING: + { + + if (debugInterface) + { + char buff[512]; + char buff2[32]; + packet->systemAddress.ToString(true,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REQUEST_FORWARDING on ip %s from %I64d, ", + buff2,packet->guid.g)); + } + + OnRequestForwarding(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_INCREASE_TIMEOUT: + { + /// The routed system wants more time to stay alive on no communication, in case the router drops or crashes + rakPeerInterface->SetTimeoutTime(rakPeerInterface->GetTimeoutTime(packet->systemAddress)+10000, packet->systemAddress); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + } + else if (packet->data[0]==ID_OUT_OF_BAND_INTERNAL && packet->length>=2) + { + switch (packet->data[1]) + { + case ID_ROUTER_2_REPLY_TO_SENDER_PORT: + { + RakNet::BitStream bsOut; + bsOut.Write(packet->guid); + SendOOBFromRakNetPort(ID_ROUTER_2_MINI_PUNCH_REPLY, &bsOut, packet->systemAddress); + + if (debugInterface) + { + char buff[512]; + char buff2[32]; + sa.ToString(false,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_TO_SENDER_PORT %i on address %s, replying with ID_ROUTER_2_MINI_PUNCH_REPLY at %s:%i\n", sa.GetPort(), buff2, _FILE_AND_LINE_)); + +// packet->systemAddress.ToString(true,buff2); +// debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_TO_SENDER_PORT on address %s (%I64d), " +// "replying with ID_ROUTER_2_MINI_PUNCH_REPLY at %s:%i\n", buff2,packet->guid.g, __FILE__, __LINE__)); + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT: + { + RakNet::BitStream bsOut; + bsOut.Write(packet->guid); + bs.IgnoreBytes(2); + sa=packet->systemAddress; + unsigned short port; + bs.Read(port); + sa.SetPort(port); + RakAssert(sa.GetPort()!=0); + SendOOBFromRakNetPort(ID_ROUTER_2_MINI_PUNCH_REPLY, &bsOut, sa); + + if (debugInterface) + { + char buff[512]; + char buff2[32]; + sa.ToString(false,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT %i on address %s, " + "replying with ID_ROUTER_2_MINI_PUNCH_REPLY at %s:%i\n", sa.GetPort(), buff2, __FILE__, __LINE__)); + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_MINI_PUNCH_REPLY: + OnMiniPunchReply(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE: + OnMiniPunchReplyBounce(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + else if (packet->data[0]==ID_ROUTER_2_FORWARDING_ESTABLISHED) + { +// printf("Got ID_ROUTER_2_FORWARDING_ESTABLISHED\n"); + if (OnForwardingSuccess(packet)==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else if (packet->data[0]==ID_ROUTER_2_REROUTED) + { + OnRerouted(packet); + } + else if (packet->data[0]==ID_CONNECTION_REQUEST_ACCEPTED) + { + unsigned int forwardingIndex; + forwardedConnectionListMutex.Lock(); + for (forwardingIndex=0; forwardingIndex < forwardedConnectionList.Size(); forwardingIndex++) + { + if (forwardedConnectionList[forwardingIndex].endpointGuid==packet->guid && forwardedConnectionList[forwardingIndex].weInitiatedForwarding) + break; + } + + if (forwardingIndexSend(&bsOut,HIGH_PRIORITY,RELIABLE,0,packet->guid,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_CONNECTION_REQUEST_ACCEPTED, " + "sending ID_ROUTER_2_INCREASE_TIMEOUT to the %I64d at %s:%i\n", packet->guid.g, __FILE__, __LINE__)); + } + + // Also take longer ourselves + rakPeerInterface->SetTimeoutTime(rakPeerInterface->GetTimeoutTime(packet->systemAddress)+10000, packet->systemAddress); + } + else { + // ~Gwynn: Fix for Receive hanging up problem on Windows XP + // See http://blog.delphi-jedi.net/2008/04/23/the-case-of-the-unexplained-dead-lock-in-a-single-thread/ for details + forwardedConnectionListMutex.Unlock(); + } + } + else if (packet->data[0]==ID_ROUTER_2_FORWARDING_NO_PATH) + { + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} +void Router2::Update(void) +{ + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + unsigned int connectionRequestIndex=0; + connectionRequestsMutex.Lock(); + while (connectionRequestIndex < connectionRequests.Size()) + { + ConnnectRequest* connectionRequest = connectionRequests[connectionRequestIndex]; + + // pingTimeout is only used with R2RS_REQUEST_STATE_QUERY_FORWARDING + if (connectionRequest->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING && + connectionRequest->pingTimeout < curTime) + { + bool anyRemoved=false; + unsigned int connectionRequestGuidIndex=0; + connectionRequest->connectionRequestSystemsMutex.Lock(); + while (connectionRequestGuidIndex < connectionRequest->connectionRequestSystems.Size()) + { + if (connectionRequest->connectionRequestSystems[connectionRequestGuidIndex].pingToEndpoint<0) + { + anyRemoved=true; + connectionRequest->connectionRequestSystems.RemoveAtIndexFast(connectionRequestGuidIndex); + } + else + { + connectionRequestGuidIndex++; + } + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + if (anyRemoved) + { + if (connectionRequestIndex!=(unsigned int)-1) + { + // connectionRequestsMutex should be locked before calling this function + if (UpdateForwarding(connectionRequest)==false) + { + RemoveConnectionRequest(connectionRequestIndex); + } + else + { + connectionRequestIndex++; + } + } + else + { + connectionRequestIndex++; + } + } + else + { + connectionRequestIndex++; + } + } + else + { + connectionRequestIndex++; + } + } + connectionRequestsMutex.Unlock(); + + unsigned int i=0; + miniPunchesInProgressMutex.Lock(); + while (i < miniPunchesInProgress.Size()) + { + if (miniPunchesInProgress[i].timeoutminiPunchesInProgress[i].nextAction) + { + miniPunchesInProgress[i].nextAction=curTime+100; + SendOOBMessages(&miniPunchesInProgress[i]); + } + else + i++; + } + miniPunchesInProgressMutex.Unlock(); + +} +void Router2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + + + unsigned int forwardedConnectionIndex=0; + forwardedConnectionListMutex.Lock(); + while (forwardedConnectionIndexShowDiagnostic(FormatStringTS(buff,"Closed connection to the %I64d, removing forwarding from list at %s:%i\n", rakNetGUID.g, __FILE__, __LINE__)); + } + + // No longer need forwarding + forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + } + else if (forwardedConnectionList[forwardedConnectionIndex].intermediaryGuid==rakNetGUID && forwardedConnectionList[forwardedConnectionIndex].weInitiatedForwarding) + { + // Lost connection to intermediary. Restart process to connect to endpoint. If failed, push ID_CONNECTION_LOST. Also remove connection request if it already is in the list, to restart it + connectionRequestsMutex.Lock(); + unsigned int pos = GetConnectionRequestIndex(forwardedConnectionList[forwardedConnectionIndex].endpointGuid); + if((unsigned int)-1 != pos) {RakNet::OP_DELETE(connectionRequests[pos], __FILE__, __LINE__); connectionRequests.RemoveAtIndexFast(pos);} + connectionRequestsMutex.Unlock(); + + ConnectInternal(forwardedConnectionList[forwardedConnectionIndex].endpointGuid, true); + + forwardedConnectionIndex++; + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Closed connection %I64d, restarting forwarding at %s:%i\n",rakNetGUID.g, __FILE__, __LINE__)); + } + + // This should not be removed - the connection is still forwarded, but perhaps through another system +// forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + } + else + forwardedConnectionIndex++; + } + forwardedConnectionListMutex.Unlock(); + + unsigned int connectionRequestIndex=0; + connectionRequestsMutex.Lock(); + while (connectionRequestIndex < connectionRequests.Size()) + { + ConnnectRequest *cr = connectionRequests[connectionRequestIndex]; + cr->connectionRequestSystemsMutex.Lock(); + unsigned int connectionRequestGuidIndex = cr->GetGuidIndex(rakNetGUID); + if (connectionRequestGuidIndex!=(unsigned int)-1) + { + cr->connectionRequestSystems.RemoveAtIndexFast(connectionRequestGuidIndex); + cr->connectionRequestSystemsMutex.Unlock(); + if (UpdateForwarding(cr)==false) // If returns false, no connection request systems left + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Aborted connection to the %I64d, aborted forwarding at %s:%i\n", rakNetGUID.g, __FILE__, __LINE__)); + } + + RemoveConnectionRequest(connectionRequestIndex); + } + else // Else a system in the connection request list dropped. If cr->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING then we are still waiting for other systems to respond. + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Aborted connection attempt to %I64d, restarting forwarding to %I64d at %s:%i\n", rakNetGUID.g,cr->endpointGuid.g,__FILE__, __LINE__)); + } +// if(volatile bool is_my_fix_a_truth = true) { // A system in the list of potential systems to try routing to dropped. There is no need to restart the whole process. +// connectionRequestsMutex.Lock(); +// connectionRequests.RemoveAtIndexFast(connectionRequestIndex); +// connectionRequestsMutex.Unlock(); +// +// if(false == ConnectInternal(cr->endpointGuid,cr->returnConnectionLostOnFailure)) +// if (debugInterface) +// { +// char buff[512]; +// debugInterface->ShowDiagnostic(FormatStringTS(buff,"ConnectInternal(cr->endpointGuid,cr->returnConnectionLostOnFailure) is false. at %s:%i\n", __FILE__, __LINE__)); +// } +// } + + connectionRequestIndex++; + } + } + else + { + cr->connectionRequestSystemsMutex.Unlock(); + connectionRequestIndex++; + } + } + connectionRequestsMutex.Unlock(); + + + unsigned int i=0; + miniPunchesInProgressMutex.Lock(); + while (i < miniPunchesInProgress.Size()) + { + if (miniPunchesInProgress[i].sourceGuid==rakNetGUID || miniPunchesInProgress[i].endpointGuid==rakNetGUID) + { + if (miniPunchesInProgress[i].sourceGuid!=rakNetGUID) + { + SendFailureOnCannotForward(miniPunchesInProgress[i].sourceGuid, miniPunchesInProgress[i].endpointGuid); + } + miniPunchesInProgress.RemoveAtIndexFast(i); + } + else + i++; + } + miniPunchesInProgressMutex.Unlock(); +} +void Router2::OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason) +{ + (void) failedConnectionAttemptReason; + (void) packet; + + unsigned int forwardedConnectionIndex=0; + forwardedConnectionListMutex.Lock(); + while (forwardedConnectionIndexsystemAddress) + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Failed connection attempt to forwarded system (%I64d : %s) at %s:%i\n", + forwardedConnectionList[forwardedConnectionIndex].endpointGuid.g, packet->systemAddress.ToString(true), __FILE__, __LINE__)); + } + + packet->guid=forwardedConnectionList[forwardedConnectionIndex].endpointGuid; + forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + } + else + forwardedConnectionIndex++; + } + forwardedConnectionListMutex.Unlock(); +} +void Router2::OnRakPeerShutdown(void) +{ + ClearAll(); +} +// connectionRequestsMutex should already be locked +bool Router2::UpdateForwarding(ConnnectRequest* connectionRequest) +{ + connectionRequest->connectionRequestSystemsMutex.Lock(); + + // RAKNET_DEBUG_PRINTF(__FUNCTION__": connectionRequest->connectionRequestSystems.Size = %d", connectionRequest->connectionRequestSystems.Size()); + + if (connectionRequest->connectionRequestSystems.Size()==0) + { + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + // printf("Router2 failed at %s:%i\n", __FILE__, __LINE__); + if (connectionRequest->returnConnectionLostOnFailure) { + ReturnToUser(ID_CONNECTION_LOST, connectionRequest->endpointGuid, UNASSIGNED_SYSTEM_ADDRESS, true); // This is a connection which was previously established. Rerouting is not possible. +// bool sendDisconnectionNotification = false; +// rakPeerInterface->CloseConnection(rakPeerInterface->GetSystemAddressFromGuid(connectionRequest->endpointGuid), sendDisconnectionNotification); +// RAKNET_DEBUG_PRINTF(__FUNCTION__": call rakPeerInterface->CloseConnection(%I64d)" , connectionRequest->endpointGuid.g); + } + else + ReturnToUser(ID_ROUTER_2_FORWARDING_NO_PATH, connectionRequest->endpointGuid, UNASSIGNED_SYSTEM_ADDRESS, false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Forwarding failed, no remaining systems at %s:%i\n", _FILE_AND_LINE_)); + } + + forwardedConnectionListMutex.Lock(); + + for (unsigned int forwardedConnectionIndex=0; forwardedConnectionIndex < forwardedConnectionList.Size(); forwardedConnectionIndex++) + { + if (forwardedConnectionList[forwardedConnectionIndex].endpointGuid==connectionRequest->endpointGuid && forwardedConnectionList[forwardedConnectionIndex].weInitiatedForwarding) + { + forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + break; + } + } + forwardedConnectionListMutex.Unlock(); + + return false; + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + if (connectionRequest->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING) + { + connectionRequest->connectionRequestSystemsMutex.Lock(); + + for (unsigned int i=0; i < connectionRequest->connectionRequestSystems.Size(); i++) + { + if (connectionRequest->connectionRequestSystems[i].pingToEndpoint<0) + { + connectionRequest->connectionRequestSystemsMutex.Unlock(); + return true; // Forward query still in progress, just return + } + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + RequestForwarding(connectionRequest); + } +// else if (connectionRequest->requestState==REQUEST_STATE_REQUEST_FORWARDING) +// { +// RequestForwarding(connectionRequestIndex); +// } + + return true; +} +// connectionRequestsMutex should already be locked +void Router2::RemoveConnectionRequest(unsigned int connectionRequestIndex) +{ + RakNet::OP_DELETE(connectionRequests[connectionRequestIndex],_FILE_AND_LINE_); + connectionRequests.RemoveAtIndexFast(connectionRequestIndex); +} +int ConnectionRequestSystemComp( const Router2::ConnectionRequestSystem & key, const Router2::ConnectionRequestSystem &data ) +{ + if (key.pingToEndpoint * (key.usedForwardingEntries+1) < data.pingToEndpoint * (data.usedForwardingEntries+1)) + return -1; + if (key.pingToEndpoint * (key.usedForwardingEntries+1) == data.pingToEndpoint * (data.usedForwardingEntries+1)) + return 1; + if (key.guid < data.guid) + return -1; + if (key.guid > data.guid) + return -1; + return 0; +} +// connectionRequestsMutex should already be locked +void Router2::RequestForwarding(ConnnectRequest* connectionRequest) +{ + RakAssert(connectionRequest->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING); + connectionRequest->requestState=REQUEST_STATE_REQUEST_FORWARDING; + + if (connectionRequest->GetGuidIndex(connectionRequest->lastRequestedForwardingSystem)!=(unsigned int)-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i\n", _FILE_AND_LINE_)); + return; + } + + // Prioritize systems to request forwarding + DataStructures::OrderedList commandList; + unsigned int connectionRequestGuidIndex; + connectionRequest->connectionRequestSystemsMutex.Lock(); + for (connectionRequestGuidIndex=0; connectionRequestGuidIndex < connectionRequest->connectionRequestSystems.Size(); connectionRequestGuidIndex++) + { + RakAssert(connectionRequest->connectionRequestSystems[connectionRequestGuidIndex].pingToEndpoint>=0); + commandList.Insert(connectionRequest->connectionRequestSystems[connectionRequestGuidIndex], + connectionRequest->connectionRequestSystems[connectionRequestGuidIndex], + true, + _FILE_AND_LINE_); + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + connectionRequest->lastRequestedForwardingSystem=commandList[0].guid; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_REQUEST_FORWARDING); + bsOut.Write(connectionRequest->endpointGuid); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,connectionRequest->lastRequestedForwardingSystem,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_REQUEST_FORWARDING " + "(connectionRequest->lastRequestedForwardingSystem = %I64d, connectionRequest->endpointGuid = %I64d) at %s:%i\n", + connectionRequest->lastRequestedForwardingSystem.g,connectionRequest->endpointGuid.g, __FILE__, __LINE__)); + } +} +void Router2::SendFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_REPLY_FORWARDING); + bsOut.Write(endpointGuid); + bsOut.Write(false); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,sourceGuid,false); +} +int Router2::ReturnFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid) +{ + // If the number of systems we are currently forwarding>=maxForwarding, return ID_ROUTER_2_REPLY_FORWARDING,endpointGuid,false + if (udpForwarder==0 || udpForwarder->GetUsedForwardEntries()/2>maximumForwardingRequests) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d -> %I64d) at %s:%i\n", + sourceGuid.g, endpointGuid.g,__FILE__, __LINE__)); + SendFailureOnCannotForward(sourceGuid,endpointGuid); + return -1; + } + + // We cannot forward connections which are themselves forwarded. Return fail in that case + forwardedConnectionListMutex.Lock(); + for (unsigned int i=0; i < forwardedConnectionList.Size(); i++) + { + if ((forwardedConnectionList[i].endpointGuid==endpointGuid) + || (forwardedConnectionList[i].endpointGuid==sourceGuid)) // sourceGuid is here so you do not respond to routing requests from systems you are already routing through. + { + forwardedConnectionListMutex.Unlock(); + + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i\n", __FILE__, __LINE__)); + SendFailureOnCannotForward(sourceGuid,endpointGuid); + return -1; + } + } + forwardedConnectionListMutex.Unlock(); + + int pingToEndpoint; + pingToEndpoint = rakPeerInterface->GetAveragePing(endpointGuid); + if (pingToEndpoint==-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d -> %I64d) at %s:%i\n", + sourceGuid.g, endpointGuid.g,__FILE__, __LINE__)); + + SendFailureOnCannotForward(sourceGuid,endpointGuid); + return -1; + } + return pingToEndpoint; +} +void Router2::OnQueryForwarding(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID endpointGuid; + // Read endpointGuid + bs.Read(endpointGuid); + + int pingToEndpoint = ReturnFailureOnCannotForward(packet->guid, endpointGuid); + if (pingToEndpoint==-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d) at %s:%i\n", packet->guid.g, __FILE__, __LINE__)); + return; + } + + // If we are connected to endpointGuid, reply ID_ROUTER_2_REPLY_FORWARDING,endpointGuid,true,ping,numCurrentlyForwarding + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_REPLY_FORWARDING); + bsOut.Write(endpointGuid); + bsOut.Write(true); + bsOut.Write((unsigned short) pingToEndpoint); + bsOut.Write((unsigned short) udpForwarder->GetUsedForwardEntries()/2); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,packet->guid,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_REPLY_FORWARDING to the %I64d at %s:%i\n", packet->guid.g, __FILE__, __LINE__)); + } +} +void Router2::OnQueryForwardingReply(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + // Find endpointGuid among stored requests + bool canForward=false; + bs.Read(canForward); + + + connectionRequestsMutex.Lock(); + unsigned int connectionRequestIndex = GetConnectionRequestIndex(endpointGuid); + if (connectionRequestIndex==(unsigned int)-1) + { + connectionRequestsMutex.Unlock(); + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d) at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + return; + } + + connectionRequests[connectionRequestIndex]->connectionRequestSystemsMutex.Lock(); + unsigned int connectionRequestGuidIndex = connectionRequests[connectionRequestIndex]->GetGuidIndex(packet->guid); + if (connectionRequestGuidIndex==(unsigned int)-1) + { + connectionRequests[connectionRequestIndex]->connectionRequestSystemsMutex.Unlock(); + connectionRequestsMutex.Unlock(); + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d) at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + return; + } + + if (debugInterface) + { + char buff[512]; + char buff2[512]; + packet->systemAddress.ToString(true,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_FORWARDING on address %s(%I64d -> %I64d) canForward=%i at %s:%i\n", + buff2, packet->guid.g, endpointGuid.g, canForward, __FILE__, __LINE__)); + } + + if (canForward) + { + unsigned short pingToEndpoint; + unsigned short usedEntries; + bs.Read(pingToEndpoint); + bs.Read(usedEntries); + connectionRequests[connectionRequestIndex]->connectionRequestSystems[connectionRequestGuidIndex].usedForwardingEntries=usedEntries; + connectionRequests[connectionRequestIndex]->connectionRequestSystems[connectionRequestGuidIndex].pingToEndpoint=rakPeerInterface->GetAveragePing(packet->guid)+pingToEndpoint; + } + else + { + connectionRequests[connectionRequestIndex]->connectionRequestSystems.RemoveAtIndex(connectionRequestGuidIndex); + } + connectionRequests[connectionRequestIndex]->connectionRequestSystemsMutex.Unlock(); + + if (UpdateForwarding(connectionRequests[connectionRequestIndex])==false) + { + RemoveConnectionRequest(connectionRequestIndex); + } + connectionRequestsMutex.Unlock(); +} +void Router2::SendForwardingSuccess(MessageID messageId, RakNetGUID sourceGuid, RakNetGUID endpointGuid, unsigned short sourceToDstPort) +{ + RakNet::BitStream bsOut; + bsOut.Write(messageId); + bsOut.Write(endpointGuid); + bsOut.Write(sourceToDstPort); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,sourceGuid,false); + + if (debugInterface) + { + char buff[512]; + if (messageId==ID_ROUTER_2_FORWARDING_ESTABLISHED) + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_FORWARDING_ESTABLISHED at %s:%i\n", _FILE_AND_LINE_ )); + else + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_REROUTED at %s:%i\n", _FILE_AND_LINE_ )); + } +} +void Router2::SendOOBFromRakNetPort(OutOfBandIdentifiers oob, BitStream *extraData, SystemAddress sa) +{ + RakNet::BitStream oobBs; + oobBs.Write((unsigned char)oob); + if (extraData) + { + extraData->ResetReadPointer(); + oobBs.Write(*extraData); + } + char ipAddressString[32]; + sa.ToString(false, ipAddressString); + rakPeerInterface->SendOutOfBand((const char*) ipAddressString,sa.GetPort(),(const char*) oobBs.GetData(),oobBs.GetNumberOfBytesUsed()); +} +void Router2::SendOOBFromSpecifiedSocket(OutOfBandIdentifiers oob, SystemAddress sa, SOCKET socket) +{ + RakNet::BitStream bs; + rakPeerInterface->WriteOutOfBandHeader(&bs); + bs.Write((unsigned char) oob); + SocketLayer::SendTo_PC( socket, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), sa, __FILE__, __LINE__ ); +} +void Router2::SendOOBMessages(Router2::MiniPunchRequest *mpr) +{ + // Mini NAT punch + // Send from srcToDestPort to packet->systemAddress (source). If the message arrives, the remote system should reply. + SendOOBFromSpecifiedSocket(ID_ROUTER_2_REPLY_TO_SENDER_PORT, mpr->sourceAddress, mpr->forwardingSocket); + + // Send from destToSourcePort to endpointSystemAddress (destination). If the message arrives, the remote system should reply. + SendOOBFromSpecifiedSocket(ID_ROUTER_2_REPLY_TO_SENDER_PORT, mpr->endpointAddress, mpr->forwardingSocket); + + + if (debugInterface) { + char buff [512]; + + char buff2[128]; + + mpr->sourceAddress .ToString(true,buff2); + + debugInterface->ShowDiagnostic(FormatStringTS(buff,"call SendOOBFromSpecifiedSocket(...,%s,...)", buff2)); + + mpr->endpointAddress .ToString(true,buff2); + + debugInterface->ShowDiagnostic(FormatStringTS(buff,"call SendOOBFromSpecifiedSocket(...,%s,...)", buff2)); + } + + // Tell source to send to forwardingPort + RakNet::BitStream extraData; + extraData.Write(mpr->forwardingPort); + RakAssert(mpr->forwardingPort!=0); + SendOOBFromRakNetPort(ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT, &extraData, mpr->sourceAddress); + + // Tell destination to send to forwardingPort + extraData.Reset(); + extraData.Write(mpr->forwardingPort); + RakAssert(mpr->forwardingPort); + SendOOBFromRakNetPort(ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT, &extraData, mpr->endpointAddress); +} +void Router2::OnRequestForwarding(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + + int pingToEndpoint = ReturnFailureOnCannotForward(packet->guid, endpointGuid); + if (pingToEndpoint==-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (packet->guid =%I64d, endpointGuid = %I64d) at %s:%i\n", + packet->guid.g, endpointGuid.g, __FILE__, __LINE__)); + return; + } + + unsigned short forwardingPort=0; + SOCKET forwardingSocket=0; + SystemAddress endpointSystemAddress = rakPeerInterface->GetSystemAddressFromGuid(endpointGuid); + UDPForwarderResult result = udpForwarder->StartForwarding( + packet->systemAddress, endpointSystemAddress, 30000, 0, socketFamily, + &forwardingPort, &forwardingSocket); + + if (result==UDPFORWARDER_FORWARDING_ALREADY_EXISTS) + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REQUEST_FORWARDING, result=UDPFORWARDER_FORWARDING_ALREADY_EXISTS " + "(packet->guid =%I64d, endpointGuid = %I64d) at %s:%i\n", + packet->guid.g, endpointGuid.g,__FILE__, __LINE__)); + } + + SendForwardingSuccess(ID_ROUTER_2_FORWARDING_ESTABLISHED, packet->guid, endpointGuid, forwardingPort); + } + else if (result==UDPFORWARDER_NO_SOCKETS) + { + char buff[512]; + char buff2[64]; + char buff3[64]; + packet->systemAddress.ToString(true,buff2); + endpointSystemAddress.ToString(true,buff3); + if (debugInterface) + debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i with UDPFORWARDER_NO_SOCKETS, packet->systemAddress=%s, endpointSystemAddress=%s, forwardingPort=%i, forwardingSocket=%i\n", + __FILE__, __LINE__, buff2, buff3, forwardingPort, forwardingSocket)); + SendFailureOnCannotForward(packet->guid, endpointGuid); + } + else if (result==UDPFORWARDER_INVALID_PARAMETERS) + { + char buff[512]; + char buff2[64]; + char buff3[64]; + packet->systemAddress.ToString(true,buff2); + endpointSystemAddress.ToString(true,buff3); + if (debugInterface) + debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i with UDPFORWARDER_INVALID_PARAMETERS, packet->systemAddress=%s, endpointSystemAddress=%s, forwardingPort=%i, forwardingSocket=%i\n", + __FILE__, __LINE__, buff2, buff3, forwardingPort, forwardingSocket)); + SendFailureOnCannotForward(packet->guid, endpointGuid); + } + else if (result==UDPFORWARDER_BIND_FAILED) + { + char buff[512]; + char buff2[64]; + char buff3[64]; + packet->systemAddress.ToString(true,buff2); + endpointSystemAddress.ToString(true,buff3); + if (debugInterface) + debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i with UDPFORWARDER_BIND_FAILED, packet->systemAddress=%s, endpointSystemAddress=%s, forwardingPort=%i, forwardingSocket=%i\n", + __FILE__, __LINE__, buff2, buff3, forwardingPort, forwardingSocket)); + SendFailureOnCannotForward(packet->guid, endpointGuid); + } + else + { + if (debugInterface) + { + char buff2[32]; + char buff3[32]; + endpointSystemAddress.ToString(true,buff2); + packet->systemAddress.ToString(true,buff3); + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REQUEST_FORWARDING.\n" + "endpointAddress=%s\nsourceAddress=%s\nforwardingPort=%i\n " + "calling SendOOBMessages at %s:%i\n", buff2,buff3,forwardingPort,_FILE_AND_LINE_)); + } + + // Store the punch request + MiniPunchRequest miniPunchRequest; + miniPunchRequest.endpointAddress=endpointSystemAddress; + miniPunchRequest.endpointGuid=endpointGuid; + miniPunchRequest.gotReplyFromEndpoint=false; + miniPunchRequest.gotReplyFromSource=false; + miniPunchRequest.sourceGuid=packet->guid; + miniPunchRequest.sourceAddress=packet->systemAddress; + miniPunchRequest.forwardingPort=forwardingPort; + miniPunchRequest.forwardingSocket=forwardingSocket; + int ping1 = rakPeerInterface->GetAveragePing(packet->guid); + int ping2 = rakPeerInterface->GetAveragePing(endpointGuid); + if (ping1>ping2) + miniPunchRequest.timeout=RakNet::GetTimeMS() + ping1*8+300; + else + miniPunchRequest.timeout=RakNet::GetTimeMS() + ping2*8+300; + miniPunchRequest.nextAction=RakNet::GetTimeMS()+100; + SendOOBMessages(&miniPunchRequest); + miniPunchesInProgressMutex.Lock(); + miniPunchesInProgress.Push(miniPunchRequest,_FILE_AND_LINE_); + miniPunchesInProgressMutex.Unlock(); + } +} +void Router2::OnMiniPunchReplyBounce(Packet *packet) +{ + // Find stored punch request + unsigned int i=0; + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE from guid=%I64d (miniPunchesInProgress.Size() = %d)", + packet->guid.g, miniPunchesInProgress.Size())); + } + + miniPunchesInProgressMutex.Lock(); + while (i < miniPunchesInProgress.Size()) + { + if (miniPunchesInProgress[i].sourceGuid==packet->guid || miniPunchesInProgress[i].endpointGuid==packet->guid) + { + if (miniPunchesInProgress[i].sourceGuid==packet->guid) + miniPunchesInProgress[i].gotReplyFromSource=true; + if (miniPunchesInProgress[i].endpointGuid==packet->guid) + miniPunchesInProgress[i].gotReplyFromEndpoint=true; + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Processing ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE, gotReplyFromSource=%i gotReplyFromEndpoint=%i at %s:%i\n", miniPunchesInProgress[i].gotReplyFromSource, miniPunchesInProgress[i].gotReplyFromEndpoint, __FILE__, __LINE__)); + } + + if (miniPunchesInProgress[i].gotReplyFromEndpoint==true && + miniPunchesInProgress[i].gotReplyFromSource==true) + { + SendForwardingSuccess(ID_ROUTER_2_REROUTED, miniPunchesInProgress[i].endpointGuid, miniPunchesInProgress[i].sourceGuid, miniPunchesInProgress[i].forwardingPort); + SendForwardingSuccess(ID_ROUTER_2_FORWARDING_ESTABLISHED, miniPunchesInProgress[i].sourceGuid, miniPunchesInProgress[i].endpointGuid, miniPunchesInProgress[i].forwardingPort); + miniPunchesInProgress.RemoveAtIndexFast(i); + } + else + { + i++; + } + } + else + i++; + } + miniPunchesInProgressMutex.Unlock(); +} +void Router2::OnMiniPunchReply(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID routerGuid; + bs.Read(routerGuid); + SendOOBFromRakNetPort(ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE, 0, rakPeerInterface->GetSystemAddressFromGuid(routerGuid)); + + if (debugInterface) + { + char buff[512]; + + char buff2[512]; + + rakPeerInterface->GetSystemAddressFromGuid(routerGuid).ToString(true,buff2); + + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE (%s) at %s:%i\n", buff2, __FILE__, __LINE__)); + } +} +void Router2::OnRerouted(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + unsigned short sourceToDestPort; + bs.Read(sourceToDestPort); + + // Return rerouted notice + SystemAddress intermediaryAddress=packet->systemAddress; + intermediaryAddress.SetPort(sourceToDestPort); + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + unsigned int forwardingIndex; + forwardedConnectionListMutex.Lock(); + for (forwardingIndex=0; forwardingIndex < forwardedConnectionList.Size(); forwardingIndex++) + { + if (forwardedConnectionList[forwardingIndex].endpointGuid==endpointGuid) + break; + } + + if (forwardingIndexsystemAddress; + ref_fc.intermediaryAddress.SetPort(sourceToDestPort); + ref_fc.intermediaryGuid = packet->guid; + + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"FIX: Got ID_ROUTER_2_REROUTE, returning ID_ROUTER_2_REROUTED," + " Calling RakPeer::ChangeSystemAddress(%I64d, %s) at %s:%i\n",endpointGuid.g, intermediaryAddress.ToString(true), __FILE__, __LINE__)); + } + } + else + { + ForwardedConnection fc; + fc.endpointGuid=endpointGuid; + fc.intermediaryAddress=packet->systemAddress; + fc.intermediaryAddress.SetPort(sourceToDestPort); + fc.intermediaryGuid=packet->guid; + fc.weInitiatedForwarding=false; + // add to forwarding list. This is only here to avoid reporting direct connections in Router2::ReturnFailureOnCannotForward + forwardedConnectionList.Push (fc,__FILE__, __LINE__); + forwardedConnectionListMutex.Unlock(); + + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REROUTE, returning ID_ROUTER_2_REROUTED, Calling RakPeer::ChangeSystemAddress at %s:%i\n", __FILE__, __LINE__)); + } + } + +} +bool Router2::OnForwardingSuccess(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + unsigned short sourceToDestPort; + bs.Read(sourceToDestPort); + + unsigned int forwardingIndex; + forwardedConnectionListMutex.Lock(); + for (forwardingIndex=0; forwardingIndex < forwardedConnectionList.Size(); forwardingIndex++) + { + if (forwardedConnectionList[forwardingIndex].endpointGuid==endpointGuid) + break; + } + + if (forwardingIndexsystemAddress; + intermediaryAddress.SetPort(sourceToDestPort); + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + //////////////////////////////////////////////////////////////////////////// + ForwardedConnection& ref_fc = forwardedConnectionList[forwardingIndex]; + ref_fc.intermediaryAddress = packet->systemAddress; + ref_fc.intermediaryAddress.SetPort(sourceToDestPort); + ref_fc.intermediaryGuid = packet->guid; + //////////////////////////////////////////////////////////////////////////// + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_FORWARDING_ESTABLISHED, returning ID_ROUTER_2_REROUTED, Calling RakPeer::ChangeSystemAddress at %s:%i\n", _FILE_AND_LINE_)); + } + + packet->data[0]=ID_ROUTER_2_REROUTED; + + forwardedConnectionListMutex.Unlock(); + return true; // Return packet to user + } + else + { + forwardedConnectionListMutex.Unlock(); + + // removeFrom connectionRequests; + ForwardedConnection fc; + connectionRequestsMutex.Lock(); + unsigned int connectionRequestIndex = GetConnectionRequestIndex(endpointGuid); + fc.returnConnectionLostOnFailure=connectionRequests[connectionRequestIndex]->returnConnectionLostOnFailure; + connectionRequests.RemoveAtIndexFast(connectionRequestIndex); + connectionRequestsMutex.Unlock(); + fc.endpointGuid=endpointGuid; + fc.intermediaryAddress=packet->systemAddress; + fc.intermediaryAddress.SetPort(sourceToDestPort); + fc.intermediaryGuid=packet->guid; + fc.weInitiatedForwarding=true; + + // add to forwarding list + forwardedConnectionListMutex.Lock(); + forwardedConnectionList.Push (fc,_FILE_AND_LINE_); + forwardedConnectionListMutex.Unlock(); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got and returning to user ID_ROUTER_2_FORWARDING_ESTABLISHED at %s:%i\n", _FILE_AND_LINE_)); + } + + } + return true; // Return packet to user +} +int Router2::GetLargestPingAmongConnectedSystems(void) const +{ + int avePing; + int largestPing=-1; + unsigned short maxPeers = rakPeerInterface->GetMaximumNumberOfPeers(); + if (maxPeers==0) + return 9999; + unsigned short index; + for (index=0; index < rakPeerInterface->GetMaximumNumberOfPeers(); index++) + { + RakNetGUID g = rakPeerInterface->GetGUIDFromIndex(index); + if (g!=UNASSIGNED_RAKNET_GUID) + { + avePing=rakPeerInterface->GetAveragePing(rakPeerInterface->GetGUIDFromIndex(index)); + if (avePing>largestPing) + largestPing=avePing; + } + } + return largestPing; +} + +unsigned int Router2::GetConnectionRequestIndex(RakNetGUID endpointGuid) +{ + unsigned int i; + for (i=0; i < connectionRequests.Size(); i++) + { + if (connectionRequests[i]->endpointGuid==endpointGuid) + return i; + } + return (unsigned int) -1; +} +unsigned int Router2::ConnnectRequest::GetGuidIndex(RakNetGUID guid) +{ + unsigned int i; + for (i=0; i < connectionRequestSystems.Size(); i++) + { + if (connectionRequestSystems[i].guid==guid) + return i; + } + return (unsigned int) -1; +} +void Router2::ReturnToUser(MessageID messageId, RakNetGUID endpointGuid, const SystemAddress &systemAddress, bool wasGeneratedLocally) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)); + p->data[0]=messageId; + p->systemAddress=systemAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=endpointGuid; + p->wasGeneratedLocally=wasGeneratedLocally; + rakPeerInterface->PushBackPacket(p, true); +} +void Router2::ClearForwardedConnections(void) +{ + forwardedConnectionListMutex.Lock(); + forwardedConnectionList.Clear(false,_FILE_AND_LINE_); + forwardedConnectionListMutex.Unlock(); +} +void Router2::ClearAll(void) +{ + ClearConnectionRequests(); + ClearMinipunches(); + ClearForwardedConnections(); +} +void Router2::SetDebugInterface(Router2DebugInterface *_debugInterface) +{ + debugInterface=_debugInterface; +} +Router2DebugInterface *Router2::GetDebugInterface(void) const +{ + return debugInterface; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/Router2.h b/project/lib_projects/raknet/jni/RaknetSources/Router2.h new file mode 100755 index 0000000..b4debe0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/Router2.h @@ -0,0 +1,195 @@ +/// \file +/// \brief Router2 plugin. Allows you to connect to a system by routing packets through another system that is connected to both you and the destination. Useful for getting around NATs. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_Router2==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __ROUTER_2_PLUGIN_H +#define __ROUTER_2_PLUGIN_H + +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "Export.h" +#include "UDPForwarder.h" +#include "MessageIdentifiers.h" +#include "DS_List.h" +#include "SimpleMutex.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +struct Router2DebugInterface +{ + Router2DebugInterface() {} + virtual ~Router2DebugInterface() {} + virtual void ShowFailure(const char *message); + virtual void ShowDiagnostic(const char *message); +}; + +/// \defgroup ROUTER_2_GROUP Router2 +/// \brief Part of the NAT punchthrough solution, allowing you to connect to systems by routing through a shared connection. +/// \details Router2 routes datagrams between two systems that are not directly connected by using the bandwidth of a third system, to which the other two systems were connected +/// It is of benefit when a fully connected mesh topology is desired, but could not be completely established due to routers and/or firewalls +/// As the system address of a remote system will be the system address of the intermediary, it is necessary to use the RakNetGUID object to refer to systems, including with other plugins +/// \ingroup PLUGINS_GROUP + +/// \ingroup ROUTER_2_GROUP +/// \brief Class interface for the Router2 system +/// \details +class RAK_DLL_EXPORT Router2 : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(Router2) + + Router2(); + virtual ~Router2(); + + /// Sets the socket family to use, either IPV4 or IPV6 + /// \param[in] socketFamily For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + void SetSocketFamily(unsigned short _socketFamily); + + /// \brief Query all connected systems to connect through them to a third system. + /// System will return ID_ROUTER_2_FORWARDING_NO_PATH if unable to connect. + /// Else you will get ID_ROUTER_2_FORWARDING_ESTABLISHED + /// + /// On ID_ROUTER_2_FORWARDING_ESTABLISHED, EstablishRouting as follows: + /// + /// RakNet::BitStream bs(packet->data, packet->length, false); + /// bs.IgnoreBytes(sizeof(MessageID)); + /// RakNetGUID endpointGuid; + /// bs.Read(endpointGuid); + /// unsigned short sourceToDestPort; + /// bs.Read(sourceToDestPort); + /// char ipAddressString[32]; + /// packet->systemAddress.ToString(false, ipAddressString); + /// rakPeerInterface->EstablishRouting(ipAddressString, sourceToDestPort, 0,0); + /// + /// \note The SystemAddress for a connection should not be used - always use RakNetGuid as the address can change at any time. + /// When the address changes, you will get ID_ROUTER_2_REROUTED + void EstablishRouting(RakNetGUID endpointGuid); + + /// Set the maximum number of bidirectional connections this system will support + /// Defaults to 0 + void SetMaximumForwardingRequests(int max); + + /// For testing and debugging + void SetDebugInterface(Router2DebugInterface *_debugInterface); + + /// Get the pointer passed to SetDebugInterface() + Router2DebugInterface *GetDebugInterface(void) const; + + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void Update(void); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason); + virtual void OnRakPeerShutdown(void); + + + enum Router2RequestStates + { + R2RS_REQUEST_STATE_QUERY_FORWARDING, + REQUEST_STATE_REQUEST_FORWARDING, + }; + + struct ConnectionRequestSystem + { + RakNetGUID guid; + int pingToEndpoint; + unsigned short usedForwardingEntries; + }; + + struct ConnnectRequest + { + ConnnectRequest(); + ~ConnnectRequest(); + + DataStructures::List connectionRequestSystems; + SimpleMutex connectionRequestSystemsMutex; + Router2RequestStates requestState; + RakNet::TimeMS pingTimeout; + RakNetGUID endpointGuid; + RakNetGUID lastRequestedForwardingSystem; + bool returnConnectionLostOnFailure; + unsigned int GetGuidIndex(RakNetGUID guid); + }; + + unsigned int GetConnectionRequestIndex(RakNetGUID endpointGuid); + + struct MiniPunchRequest + { + RakNetGUID endpointGuid; + SystemAddress endpointAddress; + bool gotReplyFromEndpoint; + RakNetGUID sourceGuid; + SystemAddress sourceAddress; + bool gotReplyFromSource; + RakNet::TimeMS timeout; + RakNet::TimeMS nextAction; + unsigned short forwardingPort; + SOCKET forwardingSocket; + }; + + struct ForwardedConnection + { + RakNetGUID endpointGuid; + RakNetGUID intermediaryGuid; + SystemAddress intermediaryAddress; + bool returnConnectionLostOnFailure; + bool weInitiatedForwarding; + }; + +protected: + + bool UpdateForwarding(ConnnectRequest* connectionRequest); + void RemoveConnectionRequest(unsigned int connectionRequestIndex); + void RequestForwarding(ConnnectRequest* connectionRequest); + void OnQueryForwarding(Packet *packet); + void OnQueryForwardingReply(Packet *packet); + void OnRequestForwarding(Packet *packet); + void OnRerouted(Packet *packet); + void OnMiniPunchReply(Packet *packet); + void OnMiniPunchReplyBounce(Packet *packet); + bool OnForwardingSuccess(Packet *packet); + int GetLargestPingAmongConnectedSystems(void) const; + void ReturnToUser(MessageID messageId, RakNetGUID endpointGuid, const SystemAddress &systemAddress, bool wasGeneratedLocally); + bool ConnectInternal(RakNetGUID endpointGuid, bool returnConnectionLostOnFailure); + + UDPForwarder *udpForwarder; + int maximumForwardingRequests; + SimpleMutex connectionRequestsMutex, miniPunchesInProgressMutex, forwardedConnectionListMutex; + DataStructures::List connectionRequests; + DataStructures::List miniPunchesInProgress; + // Forwarding we have initiated + DataStructures::List forwardedConnectionList; + + void ClearConnectionRequests(void); + void ClearMinipunches(void); + void ClearForwardedConnections(void); + void ClearAll(void); + int ReturnFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid); + void SendFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid); + void SendForwardingSuccess(MessageID messageId, RakNetGUID sourceGuid, RakNetGUID endpointGuid, unsigned short sourceToDstPort); + void SendOOBFromRakNetPort(OutOfBandIdentifiers oob, BitStream *extraData, SystemAddress sa); + void SendOOBFromSpecifiedSocket(OutOfBandIdentifiers oob, SystemAddress sa, SOCKET socket); + void SendOOBMessages(MiniPunchRequest *mpr); + + Router2DebugInterface *debugInterface; + unsigned short socketFamily; +}; + +} + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/SHA1.cpp b/project/lib_projects/raknet/jni/RaknetSources/SHA1.cpp new file mode 100755 index 0000000..b53b72c --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SHA1.cpp @@ -0,0 +1,326 @@ +/** +* @brief SHA-1 Hash key computation +* +* 100% free public domain implementation of the SHA-1 +* algorithm by Dominik Reichl +* +* +* === Test Vectors (from FIPS PUB 180-1) === +* +* "abc" +* A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +* +* "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" +* 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +* +* A million repetitions of "a" +* 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + + +#include "SHA1.h" +#include + + +CSHA1::CSHA1() +{ + Reset(); +} + +CSHA1::~CSHA1() +{ + Reset(); +} + + +void CSHA1::Reset() +{ + // SHA1 initialization constants + m_state[ 0 ] = 0x67452301; + m_state[ 1 ] = 0xEFCDAB89; + m_state[ 2 ] = 0x98BADCFE; + m_state[ 3 ] = 0x10325476; + m_state[ 4 ] = 0xC3D2E1F0; + + m_count[ 0 ] = 0; + m_count[ 1 ] = 0; +} + +void CSHA1::Transform( unsigned int state[ 5 ], unsigned char buffer[ 64 ] ) +{ + unsigned int a = 0, b = 0, c = 0, d = 0, e = 0; + + SHA1_WORKSPACE_BLOCK* block; + // static unsigned char workspace[64]; + block = ( SHA1_WORKSPACE_BLOCK * ) workspace; + memcpy( block, buffer, 64 ); + + // Copy state[] to working vars + a = state[ 0 ]; + b = state[ 1 ]; + c = state[ 2 ]; + d = state[ 3 ]; + e = state[ 4 ]; + + // 4 rounds of 20 operations each. Loop unrolled. + R0( a, b, c, d, e, 0 ); + R0( e, a, b, c, d, 1 ); + R0( d, e, a, b, c, 2 ); + R0( c, d, e, a, b, 3 ); + R0( b, c, d, e, a, 4 ); + R0( a, b, c, d, e, 5 ); + R0( e, a, b, c, d, 6 ); + R0( d, e, a, b, c, 7 ); + R0( c, d, e, a, b, 8 ); + R0( b, c, d, e, a, 9 ); + R0( a, b, c, d, e, 10 ); + R0( e, a, b, c, d, 11 ); + R0( d, e, a, b, c, 12 ); + R0( c, d, e, a, b, 13 ); + R0( b, c, d, e, a, 14 ); + R0( a, b, c, d, e, 15 ); + R1( e, a, b, c, d, 16 ); + R1( d, e, a, b, c, 17 ); + R1( c, d, e, a, b, 18 ); + R1( b, c, d, e, a, 19 ); + R2( a, b, c, d, e, 20 ); + R2( e, a, b, c, d, 21 ); + R2( d, e, a, b, c, 22 ); + R2( c, d, e, a, b, 23 ); + R2( b, c, d, e, a, 24 ); + R2( a, b, c, d, e, 25 ); + R2( e, a, b, c, d, 26 ); + R2( d, e, a, b, c, 27 ); + R2( c, d, e, a, b, 28 ); + R2( b, c, d, e, a, 29 ); + R2( a, b, c, d, e, 30 ); + R2( e, a, b, c, d, 31 ); + R2( d, e, a, b, c, 32 ); + R2( c, d, e, a, b, 33 ); + R2( b, c, d, e, a, 34 ); + R2( a, b, c, d, e, 35 ); + R2( e, a, b, c, d, 36 ); + R2( d, e, a, b, c, 37 ); + R2( c, d, e, a, b, 38 ); + R2( b, c, d, e, a, 39 ); + R3( a, b, c, d, e, 40 ); + R3( e, a, b, c, d, 41 ); + R3( d, e, a, b, c, 42 ); + R3( c, d, e, a, b, 43 ); + R3( b, c, d, e, a, 44 ); + R3( a, b, c, d, e, 45 ); + R3( e, a, b, c, d, 46 ); + R3( d, e, a, b, c, 47 ); + R3( c, d, e, a, b, 48 ); + R3( b, c, d, e, a, 49 ); + R3( a, b, c, d, e, 50 ); + R3( e, a, b, c, d, 51 ); + R3( d, e, a, b, c, 52 ); + R3( c, d, e, a, b, 53 ); + R3( b, c, d, e, a, 54 ); + R3( a, b, c, d, e, 55 ); + R3( e, a, b, c, d, 56 ); + R3( d, e, a, b, c, 57 ); + R3( c, d, e, a, b, 58 ); + R3( b, c, d, e, a, 59 ); + R4( a, b, c, d, e, 60 ); + R4( e, a, b, c, d, 61 ); + R4( d, e, a, b, c, 62 ); + R4( c, d, e, a, b, 63 ); + R4( b, c, d, e, a, 64 ); + R4( a, b, c, d, e, 65 ); + R4( e, a, b, c, d, 66 ); + R4( d, e, a, b, c, 67 ); + R4( c, d, e, a, b, 68 ); + R4( b, c, d, e, a, 69 ); + R4( a, b, c, d, e, 70 ); + R4( e, a, b, c, d, 71 ); + R4( d, e, a, b, c, 72 ); + R4( c, d, e, a, b, 73 ); + R4( b, c, d, e, a, 74 ); + R4( a, b, c, d, e, 75 ); + R4( e, a, b, c, d, 76 ); + R4( d, e, a, b, c, 77 ); + R4( c, d, e, a, b, 78 ); + R4( b, c, d, e, a, 79 ); + + // Add the working vars back into state[] + state[ 0 ] += a; + state[ 1 ] += b; + state[ 2 ] += c; + state[ 3 ] += d; + state[ 4 ] += e; + + // Wipe variables + a = 0; + b = 0; + c = 0; + d = 0; + e = 0; +} + +// Use this function to hash in binary data and strings +void CSHA1::Update( unsigned char* data, unsigned int len ) +{ + unsigned int i = 0, j = 0; + + j = ( m_count[ 0 ] >> 3 ) & 63; + + if ( ( m_count[ 0 ] += len << 3 ) < ( len << 3 ) ) + m_count[ 1 ] ++; + + m_count[ 1 ] += ( len >> 29 ); + + if ( ( j + len ) > 63 ) + { + memcpy( &m_buffer[ j ], data, ( i = 64 - j ) ); + Transform( m_state, m_buffer ); + + for ( ; i + 63 < len; i += 64 ) + { + Transform( m_state, &data[ i ] ); + } + + j = 0; + } + + else + i = 0; + + memcpy( &m_buffer[ j ], &data[ i ], len - i ); +} + +// Hash in file contents +bool CSHA1::HashFile( char *szFileName ) +{ + unsigned long ulFileSize = 0, ulRest = 0, ulBlocks = 0; + unsigned long i = 0; + unsigned char uData[ MAX_FILE_READ_BUFFER ]; + FILE *fIn = NULL; + + if ( ( fIn = fopen( szFileName, "rb" ) ) == NULL ) + return ( false ); + + fseek( fIn, 0, SEEK_END ); + + ulFileSize = ftell( fIn ); + + fseek( fIn, 0, SEEK_SET ); + + // This is faster + div_t temp; + + temp = div( ulFileSize, MAX_FILE_READ_BUFFER ); + + ulRest = temp.rem; + + ulBlocks = temp.quot; + + // ulRest = ulFileSize % MAX_FILE_READ_BUFFER; + // ulBlocks = ulFileSize / MAX_FILE_READ_BUFFER; + + for ( i = 0; i < ulBlocks; i++ ) + { + fread( uData, 1, MAX_FILE_READ_BUFFER, fIn ); + Update( uData, MAX_FILE_READ_BUFFER ); + } + + if ( ulRest != 0 ) + { + fread( uData, 1, ulRest, fIn ); + Update( uData, ulRest ); + } + + fclose( fIn ); + fIn = NULL; + + return ( true ); +} + +void CSHA1::Final() +{ + unsigned int i = 0; + unsigned char finalcount[ 8 ] = + { + 0, 0, 0, 0, 0, 0, 0, 0 + }; + + for ( i = 0; i < 8; i++ ) + finalcount[ i ] = (unsigned char) ( ( m_count[ ( i >= 4 ? 0 : 1 ) ] + >> ( ( 3 - ( i & 3 ) ) * 8 ) ) & 255 ); // Endian independent + + Update( ( unsigned char * ) "\200", 1 ); + + while ( ( m_count[ 0 ] & 504 ) != 448 ) + Update( ( unsigned char * ) "\0", 1 ); + + Update( finalcount, 8 ); // Cause a SHA1Transform() + + for ( i = 0; i < 20; i++ ) + { + m_digest[ i ] = (unsigned char) ( ( m_state[ i >> 2 ] >> ( ( 3 - ( i & 3 ) ) * 8 ) ) & 255 ); + } + + // Wipe variables for security reasons + i = 0; + +// j = 0; + + memset( m_buffer, 0, 64 ); + + memset( m_state, 0, 20 ); + + memset( m_count, 0, 8 ); + + memset( finalcount, 0, 8 ); + + Transform( m_state, m_buffer ); +} + +// Get the final hash as a pre-formatted string +void CSHA1::ReportHash( char *szReport, unsigned char uReportType ) +{ + unsigned char i = 0; + char szTemp[ 4 ]; + + if ( uReportType == REPORT_HEX ) + { + sprintf( szTemp, "%02X", m_digest[ 0 ] ); + strcat( szReport, szTemp ); + + for ( i = 1; i < 20; i++ ) + { + sprintf( szTemp, " %02X", m_digest[ i ] ); + strcat( szReport, szTemp ); + } + } + + else + if ( uReportType == REPORT_DIGIT ) + { + sprintf( szTemp, "%u", m_digest[ 0 ] ); + strcat( szReport, szTemp ); + + for ( i = 1; i < 20; i++ ) + { + sprintf( szTemp, " %u", m_digest[ i ] ); + strcat( szReport, szTemp ); + } + } + + else + strcpy( szReport, "Error: Unknown report type!" ); +} + +// Get the raw message digest +void CSHA1::GetHash( unsigned char *uDest ) +{ + memcpy( uDest, m_digest, 20 ); +} + +// Get the raw message digest +// Added by Kevin to be quicker +unsigned char * CSHA1::GetHash( void ) const +{ + return ( unsigned char * ) m_digest; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/SHA1.h b/project/lib_projects/raknet/jni/RaknetSources/SHA1.h new file mode 100755 index 0000000..212f490 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SHA1.h @@ -0,0 +1,87 @@ +/// \brief \b [Internal] SHA-1 computation class +/// +/// 100% free public domain implementation of the SHA-1 +/// algorithm by Dominik Reichl +/// +/// +/// === Test Vectors (from FIPS PUB 180-1) === +/// +/// "abc" +/// A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +/// +/// "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" +/// 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +/// +/// A million repetitions of "a" +/// 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F + +#ifndef ___SHA1_H___ +#define ___SHA1_H___ + +#include "RakMemoryOverride.h" +#include // Needed for file access + +#include // Needed for memset and memcpy + +#include // Needed for strcat and strcpy +#include "Export.h" + +#define MAX_FILE_READ_BUFFER 8000 + +#define SHA1_LENGTH 20 + +class RAK_DLL_EXPORT CSHA1 +{ + +public: + // Rotate x bits to the left + #define ROL32(value, bits) (((value)<<(bits))|((value)>>(32-(bits)))) + +#ifdef LITTLE_ENDIAN +#define SHABLK0(i) (block->l[i] = (ROL32(block->l[i],24) & 0xFF00FF00) \ + | (ROL32(block->l[i],8) & 0x00FF00FF)) +#else +#define SHABLK0(i) (block->l[i]) +#endif + +#define SHABLK(i) (block->l[i&15] = ROL32(block->l[(i+13)&15] ^ block->l[(i+8)&15] \ + ^ block->l[(i+2)&15] ^ block->l[i&15],1)) + + // SHA-1 rounds +#define R0(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK0(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); } +#define R1(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); } +#define R2(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0x6ED9EBA1+ROL32(v,5); w=ROL32(w,30); } +#define R3(v,w,x,y,z,i) { z+=(((w|x)&y)|(w&x))+SHABLK(i)+0x8F1BBCDC+ROL32(v,5); w=ROL32(w,30); } +#define R4(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0xCA62C1D6+ROL32(v,5); w=ROL32(w,30); } + + typedef union { + unsigned char c[ 64 ]; + unsigned int l[ 16 ]; + } SHA1_WORKSPACE_BLOCK; + /* Two different formats for ReportHash(...) + */ + enum { REPORT_HEX = 0, + REPORT_DIGIT = 1}; + + CSHA1(); + virtual ~CSHA1(); + + unsigned int m_state[ 5 ]; + unsigned int m_count[ 2 ]; + unsigned char m_buffer[ 64 ]; + unsigned char m_digest[ 20 ]; + void Reset(); + void Update( unsigned char* data, unsigned int len ); + bool HashFile( char *szFileName ); + void Final(); + void ReportHash( char *szReport, unsigned char uReportType = REPORT_HEX ); + void GetHash( unsigned char *uDest ); + unsigned char * GetHash( void ) const; + +private: + void Transform( unsigned int state[ 5 ], unsigned char buffer[ 64 ] ); + unsigned char workspace[ 64 ]; +}; + +#endif // ___SHA1_H___ + diff --git a/project/lib_projects/raknet/jni/RaknetSources/SecureHandshake.cpp b/project/lib_projects/raknet/jni/RaknetSources/SecureHandshake.cpp new file mode 100755 index 0000000..e3b3c71 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SecureHandshake.cpp @@ -0,0 +1,54 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" + +#if LIBCAT_SECURITY==1 + +// If building a RakNet DLL, be sure to tweak the CAT_EXPORT macro meaning +#if !defined(_RAKNET_LIB) && defined(_RAKNET_DLL) +# define CAT_BUILD_DLL +#else +# define CAT_NEUTER_EXPORT +#endif + +#include "cat/src/port/EndianNeutral.cpp" +#include "cat/src/port/AlignedAlloc.cpp" +#include "cat/src/time/Clock.cpp" +#include "cat/src/threads/Mutex.cpp" +#include "cat/src/threads/Thread.cpp" +#include "cat/src/threads/WaitableFlag.cpp" +#include "cat/src/hash/MurmurHash2.cpp" +#include "cat/src/lang/Strings.cpp" + +#include "cat/src/math/BigRTL.cpp" +#include "cat/src/math/BigPseudoMersenne.cpp" +#include "cat/src/math/BigTwistedEdwards.cpp" + +#include "cat/src/crypt/SecureCompare.cpp" +#include "cat/src/crypt/cookie/CookieJar.cpp" +#include "cat/src/crypt/hash/HMAC_MD5.cpp" +#include "cat/src/crypt/privatekey/ChaCha.cpp" +#include "cat/src/crypt/hash/Skein.cpp" +#include "cat/src/crypt/hash/Skein256.cpp" +#include "cat/src/crypt/hash/Skein512.cpp" +#include "cat/src/crypt/pass/Passwords.cpp" + +#include "cat/src/crypt/rand/EntropyWindows.cpp" +#include "cat/src/crypt/rand/EntropyLinux.cpp" +#include "cat/src/crypt/rand/EntropyWindowsCE.cpp" +#include "cat/src/crypt/rand/EntropyGeneric.cpp" +#include "cat/src/crypt/rand/Fortuna.cpp" + +#include "cat/src/crypt/tunnel/KeyAgreement.cpp" +#include "cat/src/crypt/tunnel/AuthenticatedEncryption.cpp" +#include "cat/src/crypt/tunnel/KeyAgreementInitiator.cpp" +#include "cat/src/crypt/tunnel/KeyAgreementResponder.cpp" +#include "cat/src/crypt/tunnel/KeyMaker.cpp" + +#include "cat/src/crypt/tunnel/EasyHandshake.cpp" + +#endif // LIBCAT_SECURITY diff --git a/project/lib_projects/raknet/jni/RaknetSources/SecureHandshake.h b/project/lib_projects/raknet/jni/RaknetSources/SecureHandshake.h new file mode 100755 index 0000000..b289ff5 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SecureHandshake.h @@ -0,0 +1,25 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef SECURE_HANDSHAKE_H +#define SECURE_HANDSHAKE_H + +#include "NativeFeatureIncludes.h" + +#if LIBCAT_SECURITY==1 + +// If building a RakNet DLL, be sure to tweak the CAT_EXPORT macro meaning +#if !defined(_RAKNET_LIB) && defined(_RAKNET_DLL) +# define CAT_BUILD_DLL +#else +# define CAT_NEUTER_EXPORT +#endif + +#include "cat/AllTunnel.hpp" + +#endif // LIBCAT_SECURITY + +#endif // SECURE_HANDSHAKE_H diff --git a/project/lib_projects/raknet/jni/RaknetSources/SendToThread.cpp b/project/lib_projects/raknet/jni/RaknetSources/SendToThread.cpp new file mode 100755 index 0000000..0c3d313 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SendToThread.cpp @@ -0,0 +1,77 @@ +#include "SendToThread.h" +#ifdef USE_THREADED_SEND +#include "RakThread.h" +#include "InternalPacket.h" +#include "GetTime.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 +#include "CCRakNetUDT.h" +#else +#include "CCRakNetSlidingWindow.h" +#endif + +using namespace RakNet; + +int SendToThread::refCount=0; +DataStructures::ThreadsafeAllocatingQueue SendToThread::objectQueue; +ThreadPool SendToThread::threadPool; + +SendToThread::SendToThreadBlock* SendToWorkerThread(SendToThread::SendToThreadBlock* input, bool *returnOutput, void* perThreadData) +{ + (void) perThreadData; + *returnOutput=false; +// RakNet::TimeUS *mostRecentTime=(RakNet::TimeUS *)input->data; +// *mostRecentTime=RakNet::GetTimeUS(); + SocketLayer::SendTo(input->s, input->data, input->dataWriteOffset, input->systemAddress, input->remotePortRakNetWasStartedOn_PS3, input->extraSocketOptions, _FILE_AND_LINE_); + SendToThread::objectQueue.Push(input); + return 0; +} +SendToThread::SendToThread() +{ +} +SendToThread::~SendToThread() +{ + +} +void SendToThread::AddRef(void) +{ + if (++refCount==1) + { + threadPool.StartThreads(1,0); + } +} +void SendToThread::Deref(void) +{ + if (refCount>0) + { + if (--refCount==0) + { + threadPool.StopThreads(); + RakAssert(threadPool.NumThreadsWorking()==0); + + unsigned i; + SendToThreadBlock* info; + for (i=0; i < threadPool.InputSize(); i++) + { + info = threadPool.GetInputAtIndex(i); + objectQueue.Push(info); + } + threadPool.ClearInput(); + objectQueue.Clear(_FILE_AND_LINE_); + } + } +} +SendToThread::SendToThreadBlock* SendToThread::AllocateBlock(void) +{ + SendToThread::SendToThreadBlock *b; + b=objectQueue.Pop(); + if (b==0) + b=objectQueue.Allocate(_FILE_AND_LINE_); + return b; +} +void SendToThread::ProcessBlock(SendToThread::SendToThreadBlock* threadedSend) +{ + RakAssert(threadedSend->dataWriteOffset>0 && threadedSend->dataWriteOffset<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + threadPool.AddInput(SendToWorkerThread,threadedSend); +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SendToThread.h b/project/lib_projects/raknet/jni/RaknetSources/SendToThread.h new file mode 100755 index 0000000..676a5f4 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SendToThread.h @@ -0,0 +1,47 @@ +#ifndef __SENDTO_THREAD +#define __SENDTO_THREAD + +#include "RakNetDefines.h" + +#ifdef USE_THREADED_SEND + +#include "InternalPacket.h" +#include "SocketLayer.h" +#include "DS_ThreadsafeAllocatingQueue.h" +#include "ThreadPool.h" + +namespace RakNet +{ +class SendToThread +{ +public: + SendToThread(); + ~SendToThread(); + + struct SendToThreadBlock + { + SOCKET s; + SystemAddress systemAddress; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + char data[MAXIMUM_MTU_SIZE]; + unsigned short dataWriteOffset; + }; + + static SendToThreadBlock* AllocateBlock(void); + static void ProcessBlock(SendToThreadBlock* threadedSend); + + static void AddRef(void); + static void Deref(void); + static DataStructures::ThreadsafeAllocatingQueue objectQueue; +protected: + static int refCount; + static ThreadPool threadPool; + +}; +} + + +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SignaledEvent.cpp b/project/lib_projects/raknet/jni/RaknetSources/SignaledEvent.cpp new file mode 100755 index 0000000..6e0ca07 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SignaledEvent.cpp @@ -0,0 +1,245 @@ +#include "SignaledEvent.h" +#include "RakAssert.h" +#include "RakSleep.h" + +#if defined(__GNUC__) +#include +#include +#endif + +using namespace RakNet; + + + + + +SignaledEvent::SignaledEvent() +{ +#ifdef _WIN32 + eventList=INVALID_HANDLE_VALUE; + + +#else + isSignaled=false; +#endif +} +SignaledEvent::~SignaledEvent() +{ + // Intentionally do not close event, so it doesn't close twice on linux +} + +void SignaledEvent::InitEvent(void) +{ +#ifdef _WIN32 + eventList=CreateEvent(0, false, false, 0); + + + + + + + + + +#else + +#if !defined(ANDROID) + pthread_condattr_init( &condAttr ); + pthread_cond_init(&eventList, &condAttr); +#else + pthread_cond_init(&eventList, 0); +#endif + pthread_mutexattr_init( &mutexAttr ); + pthread_mutex_init(&hMutex, &mutexAttr); +#endif +} + +void SignaledEvent::CloseEvent(void) +{ +#ifdef _WIN32 + if (eventList!=INVALID_HANDLE_VALUE) + { + CloseHandle(eventList); + eventList=INVALID_HANDLE_VALUE; + } + + + + + + + + + +#else + pthread_cond_destroy(&eventList); + pthread_mutex_destroy(&hMutex); +#if !defined(ANDROID) + pthread_condattr_destroy( &condAttr ); +#endif + pthread_mutexattr_destroy( &mutexAttr ); +#endif +} + +void SignaledEvent::SetEvent(void) +{ +#ifdef _WIN32 + ::SetEvent(eventList); + + + + + + + + + + +#else + // Different from SetEvent which stays signaled. + // We have to record manually that the event was signaled + isSignaledMutex.Lock(); + isSignaled=true; + isSignaledMutex.Unlock(); + + // Unblock waiting threads + pthread_cond_broadcast(&eventList); +#endif +} + +void SignaledEvent::WaitOnEvent(int timeoutMs) +{ +#ifdef _WIN32 +// WaitForMultipleObjects( +// 2, +// eventList, +// false, +// timeoutMs); + WaitForSingleObject(eventList,timeoutMs); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#else + + // If was previously set signaled, just unset and return + isSignaledMutex.Lock(); + if (isSignaled==true) + { + isSignaled=false; + isSignaledMutex.Unlock(); + return; + } + isSignaledMutex.Unlock(); + + + struct timespec ts; + + // Else wait for SetEvent to be called + + + + + + + + + + + + + + + int rc; + struct timeval tp; + rc = gettimeofday(&tp, NULL); + ts.tv_sec = tp.tv_sec; + ts.tv_nsec = tp.tv_usec * 1000; + + + while (timeoutMs > 30) + { + // Wait 30 milliseconds for the signal, then check again. + // This is in case we missed the signal between the top of this function and pthread_cond_timedwait, or after the end of the loop and pthread_cond_timedwait + ts.tv_nsec += 30*1000000; + if (ts.tv_nsec >= 1000000000) + { + ts.tv_nsec -= 1000000000; + ts.tv_sec++; + } + + // [SBC] added mutex lock/unlock around cond_timedwait. + // this prevents airplay from generating a whole much of errors. + // not sure how this works on other platforms since according to + // the docs you are suppost to hold the lock before you wait + // on the cond. + pthread_mutex_lock(&hMutex); + pthread_cond_timedwait(&eventList, &hMutex, &ts); + pthread_mutex_unlock(&hMutex); + + timeoutMs-=30; + + isSignaledMutex.Lock(); + if (isSignaled==true) + { + isSignaled=false; + isSignaledMutex.Unlock(); + return; + } + isSignaledMutex.Unlock(); + } + + // Wait the remaining time, and turn off the signal in case it was set + ts.tv_nsec += timeoutMs*1000000; + if (ts.tv_nsec >= 1000000000) + { + ts.tv_nsec -= 1000000000; + ts.tv_sec++; + } + + pthread_mutex_lock(&hMutex); + pthread_cond_timedwait(&eventList, &hMutex, &ts); + pthread_mutex_unlock(&hMutex); + + isSignaledMutex.Lock(); + isSignaled=false; + isSignaledMutex.Unlock(); +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/SignaledEvent.h b/project/lib_projects/raknet/jni/RaknetSources/SignaledEvent.h new file mode 100755 index 0000000..b744b40 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SignaledEvent.h @@ -0,0 +1,59 @@ +#ifndef __SIGNALED_EVENT_H +#define __SIGNALED_EVENT_H + + + +#if defined(_WIN32) +#include + + + +#else + #include + #include + #include "SimpleMutex.h" + + + + +#endif + +#include "Export.h" + +namespace RakNet +{ + +class RAK_DLL_EXPORT SignaledEvent +{ +public: + SignaledEvent(); + ~SignaledEvent(); + + void InitEvent(void); + void CloseEvent(void); + void SetEvent(void); + void WaitOnEvent(int timeoutMs); + +protected: +#ifdef _WIN32 + HANDLE eventList; + + + + + +#else + SimpleMutex isSignaledMutex; + bool isSignaled; +#if !defined(ANDROID) + pthread_condattr_t condAttr; +#endif + pthread_cond_t eventList; + pthread_mutex_t hMutex; + pthread_mutexattr_t mutexAttr; +#endif +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SimpleMutex.cpp b/project/lib_projects/raknet/jni/RaknetSources/SimpleMutex.cpp new file mode 100755 index 0000000..0f5eae7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SimpleMutex.cpp @@ -0,0 +1,181 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "SimpleMutex.h" +#include "RakAssert.h" + +using namespace RakNet; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SimpleMutex::SimpleMutex() //: isInitialized(false) +{ + + + + + + + + // Prior implementation of Initializing in Lock() was not threadsafe + Init(); +} + +SimpleMutex::~SimpleMutex() +{ +// if (isInitialized==false) +// return; +#ifdef _WIN32 + // CloseHandle(hMutex); + DeleteCriticalSection(&criticalSection); + + + + + + +#else + pthread_mutex_destroy(&hMutex); +#endif + + + + + + + +} + +#ifdef _WIN32 +#ifdef _DEBUG +#include +#endif +#endif + +void SimpleMutex::Lock(void) +{ +// if (isInitialized==false) +// Init(); + +#ifdef _WIN32 + /* + DWORD d = WaitForSingleObject(hMutex, INFINITE); + #ifdef _DEBUG + if (d==WAIT_FAILED) + { + LPVOID messageBuffer; + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &messageBuffer, + 0, + NULL + ); + // Process any inserts in messageBuffer. + // ... + // Display the string. + //MessageBox( NULL, (LPCTSTR)messageBuffer, "Error", MB_OK | MB_ICONINFORMATION ); + RAKNET_DEBUG_PRINTF("SimpleMutex error: %s", messageBuffer); + // Free the buffer. + LocalFree( messageBuffer ); + + } + + RakAssert(d==WAIT_OBJECT_0); + */ + EnterCriticalSection(&criticalSection); + + + + + + +#else + int error = pthread_mutex_lock(&hMutex); + (void) error; + RakAssert(error==0); +#endif +} + +void SimpleMutex::Unlock(void) +{ +// if (isInitialized==false) +// return; +#ifdef _WIN32 + // ReleaseMutex(hMutex); + LeaveCriticalSection(&criticalSection); + + + + + + +#else + int error = pthread_mutex_unlock(&hMutex); + (void) error; + RakAssert(error==0); +#endif +} + +void SimpleMutex::Init(void) +{ +#ifdef _WIN32 + // hMutex = CreateMutex(NULL, FALSE, 0); + // RakAssert(hMutex); + InitializeCriticalSection(&criticalSection); + + + + + + + + +#else + int error = pthread_mutex_init(&hMutex, 0); + (void) error; + RakAssert(error==0); +#endif +// isInitialized=true; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/SimpleMutex.h b/project/lib_projects/raknet/jni/RaknetSources/SimpleMutex.h new file mode 100755 index 0000000..cf28355 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SimpleMutex.h @@ -0,0 +1,70 @@ +/// \file +/// \brief \b [Internal] Encapsulates a mutex +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __SIMPLE_MUTEX_H +#define __SIMPLE_MUTEX_H + +#include "RakMemoryOverride.h" + + +#if defined(_WIN32) +#include "WindowsIncludes.h" + + +#else +#include +#include +#endif +#include "Export.h" + +namespace RakNet +{ + +/// \brief An easy to use mutex. +/// +/// I wrote this because the version that comes with Windows is too complicated and requires too much code to use. +/// @remark Previously I used this everywhere, and in fact for a year or two RakNet was totally threadsafe. While doing profiling, I saw that this function was incredibly slow compared to the blazing performance of everything else, so switched to single producer / consumer everywhere. Now the user thread of RakNet is not threadsafe, but it's 100X faster than before. +class RAK_DLL_EXPORT SimpleMutex +{ +public: + + // Constructor + SimpleMutex(); + + // Destructor + ~SimpleMutex(); + + // Locks the mutex. Slow! + void Lock(void); + + // Unlocks the mutex. + void Unlock(void); + + + + + + + +private: + void Init(void); +#ifdef _WIN32 + CRITICAL_SECTION criticalSection; /// Docs say this is faster than a mutex for single process access + + +#else + pthread_mutex_t hMutex; +#endif + // Not threadsafe + // bool isInitialized; +}; + +} // namespace RakNet + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/SimpleTCPServer.h b/project/lib_projects/raknet/jni/RaknetSources/SimpleTCPServer.h new file mode 100755 index 0000000..1181cd0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SimpleTCPServer.h @@ -0,0 +1 @@ +// Eraseme \ No newline at end of file diff --git a/project/lib_projects/raknet/jni/RaknetSources/SingleProducerConsumer.h b/project/lib_projects/raknet/jni/RaknetSources/SingleProducerConsumer.h new file mode 100755 index 0000000..8897e40 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SingleProducerConsumer.h @@ -0,0 +1,259 @@ +/// \file +/// \brief \b [Internal] Passes queued data between threads using a circular buffer with read and write pointers +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __SINGLE_PRODUCER_CONSUMER_H +#define __SINGLE_PRODUCER_CONSUMER_H + +#include "RakAssert.h" + +static const int MINIMUM_LIST_SIZE=8; + +#include "RakMemoryOverride.h" +#include "Export.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief A single producer consumer implementation without critical sections. + template + class RAK_DLL_EXPORT SingleProducerConsumer + { + public: + // Constructor + SingleProducerConsumer(); + + // Destructor + ~SingleProducerConsumer(); + + /// WriteLock must be immediately followed by WriteUnlock. These two functions must be called in the same thread. + /// \return A pointer to a block of data you can write to. + SingleProducerConsumerType* WriteLock(void); + + /// Call if you don't want to write to a block of data from WriteLock() after all. + /// Cancelling locks cancels all locks back up to the data passed. So if you lock twice and cancel using the first lock, the second lock is ignored + /// \param[in] cancelToLocation Which WriteLock() to cancel. + void CancelWriteLock(SingleProducerConsumerType* cancelToLocation); + + /// Call when you are done writing to a block of memory returned by WriteLock() + void WriteUnlock(void); + + /// ReadLock must be immediately followed by ReadUnlock. These two functions must be called in the same thread. + /// \retval 0 No data is availble to read + /// \retval Non-zero The data previously written to, in another thread, by WriteLock followed by WriteUnlock. + SingleProducerConsumerType* ReadLock(void); + + // Cancelling locks cancels all locks back up to the data passed. So if you lock twice and cancel using the first lock, the second lock is ignored + /// param[in] Which ReadLock() to cancel. + void CancelReadLock(SingleProducerConsumerType* cancelToLocation); + + /// Signals that we are done reading the the data from the least recent call of ReadLock. + /// At this point that pointer is no longer valid, and should no longer be read. + void ReadUnlock(void); + + /// Clear is not thread-safe and none of the lock or unlock functions should be called while it is running. + void Clear(void); + + /// This function will estimate how many elements are waiting to be read. It's threadsafe enough that the value returned is stable, but not threadsafe enough to give accurate results. + /// \return An ESTIMATE of how many data elements are waiting to be read + int Size(void) const; + + /// Make sure that the pointer we done reading for the call to ReadUnlock is the right pointer. + /// param[in] A previous pointer returned by ReadLock() + bool CheckReadUnlockOrder(const SingleProducerConsumerType* data) const; + + /// Returns if ReadUnlock was called before ReadLock + /// \return If the read is locked + bool ReadIsLocked(void) const; + + private: + struct DataPlusPtr + { + DataPlusPtr () {readyToRead=false;} + SingleProducerConsumerType object; + + // Ready to read is so we can use an equality boolean comparison, in case the writePointer var is trashed while context switching. + volatile bool readyToRead; + volatile DataPlusPtr *next; + }; + volatile DataPlusPtr *readAheadPointer; + volatile DataPlusPtr *writeAheadPointer; + volatile DataPlusPtr *readPointer; + volatile DataPlusPtr *writePointer; + unsigned readCount, writeCount; + }; + + template + SingleProducerConsumer::SingleProducerConsumer() + { + // Preallocate + readPointer = RakNet::OP_NEW( _FILE_AND_LINE_ ); + writePointer=readPointer; + readPointer->next = RakNet::OP_NEW( _FILE_AND_LINE_ ); + int listSize; +#ifdef _DEBUG + RakAssert(MINIMUM_LIST_SIZE>=3); +#endif + for (listSize=2; listSize < MINIMUM_LIST_SIZE; listSize++) + { + readPointer=readPointer->next; + readPointer->next = RakNet::OP_NEW( _FILE_AND_LINE_ ); + } + readPointer->next->next=writePointer; // last to next = start + readPointer=writePointer; + readAheadPointer=readPointer; + writeAheadPointer=writePointer; + readCount=writeCount=0; + } + + template + SingleProducerConsumer::~SingleProducerConsumer() + { + volatile DataPlusPtr *next; + readPointer=writeAheadPointer->next; + while (readPointer!=writeAheadPointer) + { + next=readPointer->next; + RakNet::OP_DELETE((char*) readPointer, _FILE_AND_LINE_); + readPointer=next; + } + RakNet::OP_DELETE((char*) readPointer, _FILE_AND_LINE_); + } + + template + SingleProducerConsumerType* SingleProducerConsumer::WriteLock( void ) + { + if (writeAheadPointer->next==readPointer || + writeAheadPointer->next->readyToRead==true) + { + volatile DataPlusPtr *originalNext=writeAheadPointer->next; + writeAheadPointer->next=RakNet::OP_NEW(_FILE_AND_LINE_); + RakAssert(writeAheadPointer->next); + writeAheadPointer->next->next=originalNext; + } + + volatile DataPlusPtr *last; + last=writeAheadPointer; + writeAheadPointer=writeAheadPointer->next; + + return (SingleProducerConsumerType*) last; + } + + template + void SingleProducerConsumer::CancelWriteLock( SingleProducerConsumerType* cancelToLocation ) + { + writeAheadPointer=(DataPlusPtr *)cancelToLocation; + } + + template + void SingleProducerConsumer::WriteUnlock( void ) + { + // DataPlusPtr *dataContainer = (DataPlusPtr *)structure; + +#ifdef _DEBUG + RakAssert(writePointer->next!=readPointer); + RakAssert(writePointer!=writeAheadPointer); +#endif + + writeCount++; + // User is done with the data, allow send by updating the write pointer + writePointer->readyToRead=true; + writePointer=writePointer->next; + } + + template + SingleProducerConsumerType* SingleProducerConsumer::ReadLock( void ) + { + if (readAheadPointer==writePointer || + readAheadPointer->readyToRead==false) + { + return 0; + } + + volatile DataPlusPtr *last; + last=readAheadPointer; + readAheadPointer=readAheadPointer->next; + return (SingleProducerConsumerType*)last; + } + + template + void SingleProducerConsumer::CancelReadLock( SingleProducerConsumerType* cancelToLocation ) + { +#ifdef _DEBUG + RakAssert(readPointer!=writePointer); +#endif + readAheadPointer=(DataPlusPtr *)cancelToLocation; + } + + template + void SingleProducerConsumer::ReadUnlock( void ) + { +#ifdef _DEBUG + RakAssert(readAheadPointer!=readPointer); // If hits, then called ReadUnlock before ReadLock + RakAssert(readPointer!=writePointer); // If hits, then called ReadUnlock when Read returns 0 +#endif + readCount++; + + // Allow writes to this memory block + readPointer->readyToRead=false; + readPointer=readPointer->next; + } + + template + void SingleProducerConsumer::Clear( void ) + { + // Shrink the list down to MINIMUM_LIST_SIZE elements + volatile DataPlusPtr *next; + writePointer=readPointer->next; + + int listSize=1; + next=readPointer->next; + while (next!=readPointer) + { + listSize++; + next=next->next; + } + + while (listSize-- > MINIMUM_LIST_SIZE) + { + next=writePointer->next; +#ifdef _DEBUG + RakAssert(writePointer!=readPointer); +#endif + RakNet::OP_DELETE((char*) writePointer, _FILE_AND_LINE_); + writePointer=next; + } + + readPointer->next=writePointer; + writePointer=readPointer; + readAheadPointer=readPointer; + writeAheadPointer=writePointer; + readCount=writeCount=0; + } + + template + int SingleProducerConsumer::Size( void ) const + { + return writeCount-readCount; + } + + template + bool SingleProducerConsumer::CheckReadUnlockOrder(const SingleProducerConsumerType* data) const + { + return const_cast(&readPointer->object) == data; + } + + + template + bool SingleProducerConsumer::ReadIsLocked(void) const + { + return readAheadPointer!=readPointer; + } +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SocketDefines.h b/project/lib_projects/raknet/jni/RaknetSources/SocketDefines.h new file mode 100755 index 0000000..f6548ab --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SocketDefines.h @@ -0,0 +1,69 @@ +#ifndef __SOCKET_DEFINES_H +#define __SOCKET_DEFINES_H + +/// Internal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #if defined(_WIN32) + #define closesocket__ closesocket + #define select__ select + #else + #define closesocket__ close + #define select__ select + #endif +#define accept__ accept +#define connect__ connect +#define socket__ socket +#define bind__ bind +#define getsockname__ getsockname +#define getsockopt__ getsockopt +#define inet_addr__ inet_addr +#define ioctlsocket__ ioctlsocket +#define listen__ listen +#define recv__ recv +#define recvfrom__ recvfrom +#define sendto__ sendto +#define send__ send +#define setsockopt__ setsockopt +#define shutdown__ shutdown +#define WSASendTo__ WSASendTo + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SocketIncludes.h b/project/lib_projects/raknet/jni/RaknetSources/SocketIncludes.h new file mode 100755 index 0000000..3c530c5 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SocketIncludes.h @@ -0,0 +1,31 @@ +// All this crap just to include type SOCKET + + + + + + + + + + +#if defined(_WIN32) +typedef int socklen_t; +// IP_DONTFRAGMENT is different between winsock 1 and winsock 2. Therefore, Winsock2.h must be linked againt Ws2_32.lib +// winsock.h must be linked against WSock32.lib. If these two are mixed up the flag won't work correctly +#include +#else +#define closesocket close +#include +#include +#include +#include +#include +#include +#include +#include +#define INVALID_SOCKET -1 +//#include "RakMemoryOverride.h" +/// Unix/Linux uses ints for sockets +typedef int SOCKET; +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SocketLayer.cpp b/project/lib_projects/raknet/jni/RaknetSources/SocketLayer.cpp new file mode 100755 index 0000000..ae11076 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SocketLayer.cpp @@ -0,0 +1,1851 @@ +/// \file +/// \brief SocketLayer class implementation +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "SocketLayer.h" +#include "RakAssert.h" +#include "RakNetTypes.h" +#include "GetTime.h" +#include "LinuxStrings.h" +#include "SocketDefines.h" + +using namespace RakNet; + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 +#include "CCRakNetUDT.h" +#else +#include "CCRakNetSlidingWindow.h" +#endif + +SocketLayerOverride *SocketLayer::slo=0; + +#ifdef _WIN32 +#else +#include // memcpy +#include +#include +#include +#include // error numbers +#include // RAKNET_DEBUG_PRINTF +#if !defined(ANDROID) +#include +#endif +#include +#include +#include +#include +#include + +#endif + + + + + + + + + + + + + +#if defined(_WIN32) +#include "WSAStartupSingleton.h" +#include // 'IP_DONTFRAGMENT' 'IP_TTL' +#elif defined SN_TARGET_PSP2 +#else +#include +#endif + +#include "RakSleep.h" +#include +#include "Itoa.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + extern void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNet::TimeUS timeRead ); + extern void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, RakNet::TimeUS timeRead ); +} + +#ifdef _DEBUG +#include +#endif + +// http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#ip4to6 +// http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#getaddrinfo + +#if RAKNET_SUPPORT_IPV6==1 +void PrepareAddrInfoHints(addrinfo *hints) +{ + memset(hints, 0, sizeof (addrinfo)); // make sure the struct is empty + hints->ai_socktype = SOCK_DGRAM; // UDP sockets + hints->ai_flags = AI_PASSIVE; // fill in my IP for me +} +#endif + +// Frogwares: Define this +// #define DEBUG_SENDTO_SPIKES + +bool SocketLayer::IsPortInUse_Old(unsigned short port, const char *hostAddress) +{ + SOCKET listenSocket; + sockaddr_in listenerSocketAddress; + memset(&listenerSocketAddress,0,sizeof(sockaddr_in)); + // Listen on our designated Port# + listenerSocketAddress.sin_port = htons( port ); + listenSocket = socket__( AF_INET, SOCK_DGRAM, 0 ); + if ( listenSocket == (SOCKET) -1 ) + return true; + // bind our name to the socket + // Fill in the rest of the address structure + listenerSocketAddress.sin_family = AF_INET; + + if ( hostAddress && hostAddress[0] ) + { + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( hostAddress ); + + } + else + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + + + + + + + + int ret = bind__( listenSocket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + closesocket__(listenSocket); + + + + + // #if defined(_DEBUG) + // if (ret == -1) + // perror("Failed to bind to address:"); + // #endif + return ret <= -1; + +} +bool SocketLayer::IsSocketFamilySupported(const char *hostAddress, unsigned short socketFamily) +{ + (void) hostAddress; + (void) socketFamily; + +#if RAKNET_SUPPORT_IPV6!=1 + return socketFamily==AF_INET; +#else + struct addrinfo hints; +#if RAKNET_SUPPORT_IPV6==1 + PrepareAddrInfoHints(&hints); +#endif + hints.ai_family = socketFamily; + struct addrinfo *servinfo=0; + int error; + // On Ubuntu, "" returns "No address associated with hostname" while 0 works. + if (hostAddress && + (_stricmp(hostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0 || hostAddress[0]==0)) + { + getaddrinfo(0, "0", &hints, &servinfo); + } + else + { + getaddrinfo(hostAddress, "0", &hints, &servinfo); + } + + + (void) error; + if (servinfo) + { + freeaddrinfo(servinfo); + return true; + } + else + { +#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(_WIN32) + printf("IsSocketFamilySupported failed. hostAddress=%s. %s\n", hostAddress, gai_strerror(error)); +#endif + } + return false; +#endif +} +bool SocketLayer::IsPortInUse(unsigned short port, const char *hostAddress, unsigned short socketFamily) +{ +#if RAKNET_SUPPORT_IPV6!=1 + (void) socketFamily; + return IsPortInUse_Old(port, hostAddress); +#else + SOCKET listenSocket; + struct addrinfo hints; + struct addrinfo *servinfo=0, *aip; // will point to the results + PrepareAddrInfoHints(&hints); + hints.ai_family = socketFamily; + char portStr[32]; + Itoa(port,portStr,10); + + // On Ubuntu, "" returns "No address associated with hostname" while 0 works. + if (hostAddress && + (_stricmp(hostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0 || hostAddress[0]==0)) + { + getaddrinfo(0, portStr, &hints, &servinfo); + } + else + { + getaddrinfo(hostAddress, portStr, &hints, &servinfo); + } + + // Try all returned addresses until one works + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + listenSocket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (listenSocket != -1) + { + int ret = bind__( listenSocket, aip->ai_addr, (int) aip->ai_addrlen ); + closesocket__(listenSocket); + if (ret>=0) + { + freeaddrinfo(servinfo); // free the linked-list + return false; + } + } + + // If the user didn't specify which host address, then only apply the first + if (hostAddress==0 || hostAddress[0]==0) + break; + } + + freeaddrinfo(servinfo); // free the linked-list + return true; +#endif // #if RAKNET_SUPPORT_IPV6!=1 +} +void SocketLayer::SetDoNotFragment( SOCKET listenSocket, int opt, int IPPROTO ) +{ +#if defined(IP_DONTFRAGMENT ) + +#if defined(_WIN32) && defined(_DEBUG) + // If this assert hit you improperly linked against WSock32.h + RakAssert(IP_DONTFRAGMENT==14); +#endif + + if ( setsockopt__( listenSocket, IPPROTO, IP_DONTFRAGMENT, ( char * ) & opt, sizeof ( opt ) ) == -1 ) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // I see this hit on XP with IPV6 for some reason + RAKNET_DEBUG_PRINTF( "Warning: setsockopt__(IP_DONTFRAGMENT) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + LocalFree( messageBuffer ); +#endif + } +#endif +} + +void SocketLayer::SetNonBlocking( SOCKET listenSocket) +{ +#ifdef _WIN32 + unsigned long nonBlocking = 1; + ioctlsocket__( listenSocket, FIONBIO, &nonBlocking ); + + + +#else + int flags = fcntl(listenSocket, F_GETFL, 0); + fcntl(listenSocket, F_SETFL, flags | O_NONBLOCK); +#endif +} + +void SocketLayer::SetSocketOptions( SOCKET listenSocket) +{ + int sock_opt = 1; + // // On Vista, can get WSAEACCESS (10013) + /* + if ( setsockopt__( listenSocket, SOL_SOCKET, SO_REUSEADDR, ( char * ) & sock_opt, sizeof ( sock_opt ) ) == -1 ) + { + #if defined(_WIN32) && !defined(_XBOX) && defined(_DEBUG) && !defined(X360) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "setsockopt__(SO_REUSEADDR) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); + #endif + } + */ + + // This doubles the max throughput rate + sock_opt=1024*256; + setsockopt__(listenSocket, SOL_SOCKET, SO_RCVBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + // Immediate hard close. Don't linger the socket, or recreating the socket quickly on Vista fails. + // Fail with voice and xbox + + sock_opt=0; + setsockopt__(listenSocket, SOL_SOCKET, SO_LINGER, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + + + // This doesn't make much difference: 10% maybe + // Not supported on console 2 + sock_opt=1024*16; + setsockopt__(listenSocket, SOL_SOCKET, SO_SNDBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + +#ifdef __APPLE__ + // Preventing SEGPIPE on "broken" socket + int set = 1; + setsockopt__(listenSocket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int)); +#endif + + /* + #ifdef _WIN32 + unsigned long nonblocking = 1; + ioctlsocket__( listenSocket, FIONBIO, &nonblocking ); + #elif defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) + sock_opt=1; + setsockopt__(listenSocket, SOL_SOCKET, SO_NBIO, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + #else + fcntl( listenSocket, F_SETFL, O_NONBLOCK ); + #endif + */ + + // TODO - teston ipv6 + + // Note: Fails with VDP but not xbox + // Set broadcast capable + sock_opt=1; + if ( setsockopt__( listenSocket, SOL_SOCKET, SO_BROADCAST, ( char * ) & sock_opt, sizeof( sock_opt ) ) == -1 ) + { +#if defined(_WIN32) && defined(_DEBUG) + + DWORD dwIOError = GetLastError(); + // On Vista, can get WSAEACCESS (10013) + // See http://support.microsoft.com/kb/819124 + // http://blogs.msdn.com/wndp/archive/2007/03/19/winsock-so-exclusiveaddruse-on-vista.aspx + // http://msdn.microsoft.com/en-us/library/ms740621(VS.85).aspx + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "setsockopt__(SO_BROADCAST) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); + +#endif + + } +} +SOCKET SocketLayer::CreateBoundSocket_PS3Lobby( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ) +{ + (void) port; + (void) blockingSocket; + (void) forceHostAddress; + (void) socketFamily; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return 0; + +} +SOCKET SocketLayer::CreateBoundSocket_PSP2( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ) +{ + (void) port; + (void) blockingSocket; + (void) forceHostAddress; + (void) socketFamily; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return 0; + +} +SOCKET SocketLayer::CreateBoundSocket_Old( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions ) +{ + (void) blockingSocket; + + int ret; + SOCKET listenSocket; + sockaddr_in listenerSocketAddress; + memset(&listenerSocketAddress,0,sizeof(sockaddr_in)); + // Listen on our designated Port# + listenerSocketAddress.sin_port = htons( port ); + + listenSocket = socket__( AF_INET, SOCK_DGRAM, extraSocketOptions ); + + if ( listenSocket == (SOCKET) -1 ) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "socket__(...) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + char str[512]; + strcpy(str,(const char*) messageBuffer); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + + return (SOCKET) -1; + } + + SetSocketOptions(listenSocket); + + // Fill in the rest of the address structure + listenerSocketAddress.sin_family = AF_INET; + + if (forceHostAddress && forceHostAddress[0]) + { + // RAKNET_DEBUG_PRINTF("Force binding %s:%i\n", forceHostAddress, port); + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( forceHostAddress ); + + } + else + { + // RAKNET_DEBUG_PRINTF("Binding any on port %i\n", port); + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + } + + + + + + + + + // bind our name to the socket + ret = bind__( listenSocket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + + if ( ret <= -1 ) + { + + + + + + + +#if defined(_WIN32) + DWORD dwIOError = GetLastError(); + if (dwIOError==10048) + { + if (sleepOn10048==0) + return (SOCKET) -1; + // Vista has a bug where it returns WSAEADDRINUSE (10048) if you create, shutdown, then rebind the socket port unless you wait a while first. + // Wait, then rebind + RakSleep(100); + + closesocket__(listenSocket); + listenerSocketAddress.sin_port = htons( port ); + listenSocket = socket__( AF_INET, SOCK_DGRAM, 0 ); + if ( listenSocket == (SOCKET) -1 ) + return false; + SetSocketOptions(listenSocket); + + // Fill in the rest of the address structure + listenerSocketAddress.sin_family = AF_INET; + if (forceHostAddress && forceHostAddress[0]) + { + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( forceHostAddress ); + + } + else + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + + // bind our name to the socket + ret = bind__( listenSocket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + + if ( ret >= 0 ) + return listenSocket; + } + dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "bind__(...) failed:Error code - %d\n%s", (unsigned int) dwIOError, (char*) messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#elif (defined(__GNUC__) || defined(__GCCXML__) ) && !defined(_WIN32) + switch (ret) + { + case EBADF: + RAKNET_DEBUG_PRINTF("bind__(): sockfd is not a valid descriptor.\n"); break; + + case ENOTSOCK: + RAKNET_DEBUG_PRINTF("bind__(): Argument is a descriptor for a file, not a socket.\n"); break; + + case EINVAL: + RAKNET_DEBUG_PRINTF("bind__(): The addrlen is wrong, or the socket was not in the AF_UNIX family.\n"); break; + case EROFS: + RAKNET_DEBUG_PRINTF("bind__(): The socket inode would reside on a read-only file system.\n"); break; + case EFAULT: + RAKNET_DEBUG_PRINTF("bind__(): my_addr points outside the user's accessible address space.\n"); break; + case ENAMETOOLONG: + RAKNET_DEBUG_PRINTF("bind__(): my_addr is too long.\n"); break; + case ENOENT: + RAKNET_DEBUG_PRINTF("bind__(): The file does not exist.\n"); break; + case ENOMEM: + RAKNET_DEBUG_PRINTF("bind__(): Insufficient kernel memory was available.\n"); break; + case ENOTDIR: + RAKNET_DEBUG_PRINTF("bind__(): A component of the path prefix is not a directory.\n"); break; + case EACCES: + RAKNET_DEBUG_PRINTF("bind__(): Search permission is denied on a component of the path prefix.\n"); break; + + case ELOOP: + RAKNET_DEBUG_PRINTF("bind__(): Too many symbolic links were encountered in resolving my_addr.\n"); break; + + default: + RAKNET_DEBUG_PRINTF("Unknown bind__() error %i.\n", ret); break; + } +#endif + + return (SOCKET) -1; + } + + return listenSocket; +} +SOCKET SocketLayer::CreateBoundSocket( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions, unsigned short socketFamily ) +{ + (void) blockingSocket; + (void) extraSocketOptions; + (void) socketFamily; + +#if RAKNET_SUPPORT_IPV6!=1 + return CreateBoundSocket_Old(port,blockingSocket,forceHostAddress,sleepOn10048,extraSocketOptions); +#else + +#ifdef _WIN32 + // Vista has a bug where it returns WSAEADDRINUSE (10048) if you create, shutdown, then rebind the socket port unless you wait a while first. + if (sleepOn10048==0) + RakSleep(100); +#endif + + int ret=0; + SOCKET listenSocket; + struct addrinfo hints; + struct addrinfo *servinfo=0, *aip; // will point to the results + PrepareAddrInfoHints(&hints); + hints.ai_family=socketFamily; + char portStr[32]; + Itoa(port,portStr,10); + + // On Ubuntu, "" returns "No address associated with hostname" while 0 works. + if (forceHostAddress && + (_stricmp(forceHostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0 || forceHostAddress[0]==0)) + { + getaddrinfo(0, portStr, &hints, &servinfo); + } + else + { + getaddrinfo(forceHostAddress, portStr, &hints, &servinfo); + } + + // Try all returned addresses until one works + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + listenSocket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (listenSocket != -1) + { + ret = bind__( listenSocket, aip->ai_addr, (int) aip->ai_addrlen ); + if (ret>=0) + { + // Is this valid? + sockaddr_in6 addr6; + memcpy(&addr6, aip->ai_addr, sizeof(addr6)); + + freeaddrinfo(servinfo); // free the linked-list + + SetSocketOptions(listenSocket); + return listenSocket; + } + } + } + +#if defined(_WIN32) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + + RAKNET_DEBUG_PRINTF( "bind__(...) failed:Error code - %d\n%s", (unsigned int) dwIOError, (char*) messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#elif defined(__GNUC__) || defined(__GCCXML__) && !defined(_WIN32) + switch (ret) + { + case EBADF: + RAKNET_DEBUG_PRINTF("bind__(): sockfd is not a valid descriptor.\n"); break; + + case ENOTSOCK: + RAKNET_DEBUG_PRINTF("bind__(): Argument is a descriptor for a file, not a socket.\n"); break; + + case EINVAL: + RAKNET_DEBUG_PRINTF("bind__(): The addrlen is wrong, or the socket was not in the AF_UNIX family.\n"); break; + case EROFS: + RAKNET_DEBUG_PRINTF("bind__(): The socket inode would reside on a read-only file system.\n"); break; + case EFAULT: + RAKNET_DEBUG_PRINTF("bind__(): my_addr points outside the user's accessible address space.\n"); break; + case ENAMETOOLONG: + RAKNET_DEBUG_PRINTF("bind__(): my_addr is too long.\n"); break; + case ENOENT: + RAKNET_DEBUG_PRINTF("bind__(): The file does not exist.\n"); break; + case ENOMEM: + RAKNET_DEBUG_PRINTF("bind__(): Insufficient kernel memory was available.\n"); break; + case ENOTDIR: + RAKNET_DEBUG_PRINTF("bind__(): A component of the path prefix is not a directory.\n"); break; + case EACCES: + RAKNET_DEBUG_PRINTF("bind__(): Search permission is denied on a component of the path prefix.\n"); break; + + case ELOOP: + RAKNET_DEBUG_PRINTF("bind__(): Too many symbolic links were encountered in resolving my_addr.\n"); break; + + default: + RAKNET_DEBUG_PRINTF("Unknown bind__() error %i.\n", ret); break; + } +#endif + + +#endif + + return (SOCKET) -1; +} +const char* SocketLayer::DomainNameToIP_Old( const char *domainName ) +{ + struct in_addr addr; + memset(&addr,0,sizeof(in_addr)); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // Use inet_addr instead? What is the difference? + struct hostent * phe = gethostbyname( domainName ); + + if ( phe == 0 || phe->h_addr_list[ 0 ] == 0 ) + { + //cerr << "Yow! Bad host lookup." << endl; + return 0; + } + + if (phe->h_addr_list[ 0 ]==0) + return 0; + + memcpy( &addr, phe->h_addr_list[ 0 ], sizeof( struct in_addr ) ); + return inet_ntoa( addr ); + + + return ""; +} +const char* SocketLayer::DomainNameToIP( const char *domainName ) +{ +#if RAKNET_SUPPORT_IPV6!=1 + return DomainNameToIP_Old(domainName); +#else + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + struct addrinfo hints, *res, *p; + int status; + static char ipstr[INET6_ADDRSTRLEN]; + memset(&hints, 0, sizeof hints); + hints.ai_family = AF_UNSPEC; // AF_INET or AF_INET6 to force version + hints.ai_socktype = SOCK_DGRAM; + + if ((status = getaddrinfo(domainName, NULL, &hints, &res)) != 0) { + return 0; + } + + p=res; +// for(p = res;p != NULL; p = p->ai_next) { + void *addr; +// char *ipver; + + // get the pointer to the address itself, + // different fields in IPv4 and IPv6: + if (p->ai_family == AF_INET) + { + struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr; + addr = &(ipv4->sin_addr); + strcpy(ipstr, inet_ntoa( ipv4->sin_addr )); + } + else + { + // TODO - test + struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; + addr = &(ipv6->sin6_addr); + // inet_ntop function does not exist on windows + // http://www.mail-archive.com/users@ipv6.org/msg02107.html + getnameinfo((struct sockaddr *)ipv6, sizeof(struct sockaddr_in6), ipstr, 1, NULL, 0, NI_NUMERICHOST); + } + freeaddrinfo(res); // free the linked list + return ipstr; +// } + + + + return ""; + +#endif // #if RAKNET_SUPPORT_IPV6!=1 +} + + +void SocketLayer::Write( const SOCKET writeSocket, const char* data, const int length ) +{ +#ifdef _DEBUG + RakAssert( writeSocket != (SOCKET) -1 ); +#endif + + send__( writeSocket, data, length, 0 ); +} +void SocketLayer::RecvFromBlocking_Old( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ) +{ + (void) rakPeer; + + sockaddr* sockAddrPtr; + socklen_t sockLen; + socklen_t* socketlenPtr=(socklen_t*) &sockLen; + sockaddr_in sa; + memset(&sa,0,sizeof(sockaddr_in)); + int dataOutSize; + const int flag=0; + + (void) remotePortRakNetWasStartedOn_PS3; + (void) extraSocketOptions; + + + + + + + + + + + + + + + + + + + + + { + sockLen=sizeof(sa); + sa.sin_family = AF_INET; + sa.sin_port=0; + sockAddrPtr=(sockaddr*) &sa; + } + + + + + dataOutSize=MAXIMUM_MTU_SIZE; + + + *bytesReadOut = recvfrom__( s, dataOut, dataOutSize, flag, sockAddrPtr, socketlenPtr ); + + + + + + + + + + if (*bytesReadOut<=0) + return; + *timeRead=RakNet::GetTimeUS(); + + + + + + + + + + { + systemAddressOut->SetPortNetworkOrder( sa.sin_port ); + systemAddressOut->address.addr4.sin_addr.s_addr=sa.sin_addr.s_addr; + } +} + +void SocketLayer::RecvFromBlocking( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ) +{ +#if RAKNET_SUPPORT_IPV6!=1 + RecvFromBlocking_Old(s,rakPeer,remotePortRakNetWasStartedOn_PS3,extraSocketOptions,dataOut,bytesReadOut,systemAddressOut,timeRead); +#else + (void) rakPeer; + sockaddr_storage their_addr; + sockaddr* sockAddrPtr; + socklen_t sockLen; + socklen_t* socketlenPtr=(socklen_t*) &sockLen; + memset(&their_addr,0,sizeof(their_addr)); + int dataOutSize; + const int flag=0; + + (void) remotePortRakNetWasStartedOn_PS3; + (void) extraSocketOptions; + + + + + + + + + + + + { + sockLen=sizeof(their_addr); + sockAddrPtr=(sockaddr*) &their_addr; + } + + + + + dataOutSize=MAXIMUM_MTU_SIZE; + + + *bytesReadOut = recvfrom__( s, dataOut, dataOutSize, flag, sockAddrPtr, socketlenPtr ); + + + + + + + + + + if (*bytesReadOut<=0) + return; + *timeRead=RakNet::GetTimeUS(); + + + + + + + + + + { + if (their_addr.ss_family==AF_INET) + { + memcpy(&systemAddressOut->address.addr4,(sockaddr_in *)&their_addr,sizeof(sockaddr_in)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr4.sin_port); + // systemAddressOut->address.addr4.sin_port=ntohs( systemAddressOut->address.addr4.sin_port ); + } + else + { + memcpy(&systemAddressOut->address.addr6,(sockaddr_in6 *)&their_addr,sizeof(sockaddr_in6)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr6.sin6_port); + // systemAddressOut->address.addr6.sin6_port=ntohs( systemAddressOut->address.addr6.sin6_port ); + } + } + +#endif // defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) +} + +int SocketLayer::SendTo_PS3Lobby( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ) +{ + (void) s; + (void) data; + (void) length; + (void) remotePortRakNetWasStartedOn_PS3; + (void) systemAddress; + + int len=0; + + + + + + + + + + + + + + + return len; +} +int SocketLayer::SendTo_PSP2( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ) +{ + (void) s; + (void) data; + (void) length; + (void) remotePortRakNetWasStartedOn_PS3; + (void) systemAddress; + + int len=0; + + + + + + + + + + + + + + return len; +} +int SocketLayer::SendTo_360( SOCKET s, const char *data, int length, const char *voiceData, int voiceLength, const SystemAddress &systemAddress, unsigned int extraSocketOptions ) +{ + (void) s; + (void) data; + (void) length; + (void) voiceData; + (void) voiceLength; + (void) extraSocketOptions; + (void) systemAddress; + + int len=0; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return len; +} +int SocketLayer::SendTo_PC( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, const char *file, const long line ) +{ + // TODO + // http://www.linuxquestions.org/questions/linux-software-2/ipv6-linux-sendto-problems-519485/ + +// #if RAKNET_SUPPORT_IPV6==1 +// RakAssert( +// systemAddress.address.addr4.sin_family!=AF_MAX && +// (systemAddress.address.addr4.sin_family==AF_INET || (systemAddress.address.addr6.sin6_scope_id!=0)) +// ); +// #endif + + /* + sockaddr_in sa; + memset(&sa,0,sizeof(sockaddr_in)); + sa.sin_port = htons( port ); // User port + sa.sin_addr.s_addr = binaryAddress; + sa.sin_family = socketFamily; + */ + + int len=0; + do + { +#ifdef DEBUG_SENDTO_SPIKES + RakNetTime start = RakNet::GetTime(); +#else + (void) file; + (void) line; +#endif + if (systemAddress.address.addr4.sin_family==AF_INET) + { + //systemAddress.address.addr4.sin_port=htons(systemAddress.address.addr4.sin_port); + len = sendto__( s, data, length, 0, ( const sockaddr* ) & systemAddress.address.addr4, sizeof( sockaddr_in ) ); + //systemAddress.address.addr4.sin_port=ntohs(systemAddress.address.addr4.sin_port); + } + else + { +#if RAKNET_SUPPORT_IPV6==1 + // systemAddress.address.addr6.sin6_port=htons(systemAddress.address.addr6.sin6_port); + len = sendto__( s, data, length, 0, ( const sockaddr* ) & systemAddress.address.addr6, sizeof( sockaddr_in6 ) ); + //systemAddress.address.addr6.sin6_port=ntohs(systemAddress.address.addr6.sin6_port); +#endif + } + +#ifdef DEBUG_SENDTO_SPIKES + RakNetTime end = RakNet::GetTime(); + static unsigned int callCount=1; + RAKNET_DEBUG_PRINTF("%i. SendTo_PC, time=%llu, elapsed=%llu, length=%i, returned=%i, binaryAddress=%i, port=%i, file=%s, line=%i\n", callCount++, end, end-start, length, len, binaryAddress, port, file, line); +#endif + if (len<0) + { + RAKNET_DEBUG_PRINTF("sendto failed with code %i for char %i and length %i.\n", len, data[0], length); + } + } + while ( len == 0 ); + return len; +} + +#ifdef _MSC_VER +#pragma warning( disable : 4702 ) // warning C4702: unreachable code +#endif +int SocketLayer::SendTo( SOCKET s, const char *data, int length, SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ) +{ + (void) extraSocketOptions; + + int len=0; + RakAssert(length<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); +#if !defined(__S3E__) + RakAssert(systemAddress.address.addr4.sin_family!=AF_MAX); +#endif + + if (slo) + { + len = slo->RakNetSendTo(s,data,length,systemAddress); + if ( len != -1 ) + return 0; + return 1; + } + + if ( s == (SOCKET) -1 ) + { + return -1; + } + + + if (remotePortRakNetWasStartedOn_PS3!=0) + { + + + + + + } + else + { + + + + + + + len = SendTo_PC(s,data,length,systemAddress,file,line); + + } + + if ( len != -1 ) + return 0; + +#if defined(_WIN32) && !defined(_WIN32_WCE) + + DWORD dwIOError = WSAGetLastError(); + + if ( dwIOError == WSAECONNRESET ) + { +#if defined(_DEBUG) + RAKNET_DEBUG_PRINTF( "A previous send operation resulted in an ICMP Port Unreachable message.\n" ); +#endif + + } + else if ( dwIOError != WSAEWOULDBLOCK && dwIOError != WSAEADDRNOTAVAIL) + { +#if defined(_WIN32) && defined(_DEBUG) + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "sendto failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); +#endif + + } + + return dwIOError; +#endif + + return 1; // error +} +// Not enough info for IPV6 +// int SocketLayer::SendTo( SOCKET s, const char *data, int length, const char ip[ 16 ], unsigned short port, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ) +// { +// SystemAddress systemAddress; +// systemAddress.FromStringAndPort(ip,port); +// return SendTo( s, data, length, systemAddress,remotePortRakNetWasStartedOn_PS3, extraSocketOptions, file, line ); +// } +int SocketLayer::SendToTTL( SOCKET s, const char *data, int length, SystemAddress &systemAddress, int ttl ) +{ + if (slo) + return slo->RakNetSendTo(s,data,length,systemAddress); + + + int oldTTL; + socklen_t opLen=sizeof(oldTTL); + // Get the current TTL + if (getsockopt__(s, systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & oldTTL, &opLen ) == -1) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "getsockopt__(IPPROTO_IP,IP_TTL) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + } + + // Set to TTL + int newTTL=ttl; + if (setsockopt__(s, systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & newTTL, sizeof ( newTTL ) ) == -1) + { + +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "setsockopt__(IPPROTO_IP,IP_TTL) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + } + + // Send + int res = SendTo(s,data,length,systemAddress,0,0, __FILE__, __LINE__ ); + + // Restore the old TTL + setsockopt__(s, systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & oldTTL, opLen ); + + return res; + + + +} + + +RakNet::RakString SocketLayer::GetSubNetForSocketAndIp(SOCKET inSock, RakNet::RakString inIpString) +{ + RakNet::RakString netMaskString; + RakNet::RakString ipString; + + + + + +#if defined(_WIN32) + INTERFACE_INFO InterfaceList[20]; + unsigned long nBytesReturned; + if (WSAIoctl(inSock, SIO_GET_INTERFACE_LIST, 0, 0, &InterfaceList, + sizeof(InterfaceList), &nBytesReturned, 0, 0) == SOCKET_ERROR) { + return ""; + } + + int nNumInterfaces = nBytesReturned / sizeof(INTERFACE_INFO); + + for (int i = 0; i < nNumInterfaces; ++i) + { + sockaddr_in *pAddress; + pAddress = (sockaddr_in *) & (InterfaceList[i].iiAddress); + ipString=inet_ntoa(pAddress->sin_addr); + + if (inIpString==ipString) + { + pAddress = (sockaddr_in *) & (InterfaceList[i].iiNetmask); + netMaskString=inet_ntoa(pAddress->sin_addr); + return netMaskString; + } + } + return ""; +#else + + int fd,fd2; + fd2 = socket__(AF_INET, SOCK_DGRAM, 0); + + if(fd2 < 0) + { + return ""; + } + + struct ifconf ifc; + char buf[1999]; + ifc.ifc_len = sizeof(buf); + ifc.ifc_buf = buf; + if(ioctl(fd2, SIOCGIFCONF, &ifc) < 0) + { + return ""; + } + + struct ifreq *ifr; + ifr = ifc.ifc_req; + int intNum = ifc.ifc_len / sizeof(struct ifreq); + for(int i = 0; i < intNum; i++) + { + ipString=inet_ntoa(((struct sockaddr_in *)&ifr[i].ifr_addr)->sin_addr); + + if (inIpString==ipString) + { + struct ifreq ifr2; + fd = socket__(AF_INET, SOCK_DGRAM, 0); + if(fd < 0) + { + return ""; + } + ifr2.ifr_addr.sa_family = AF_INET; + + strncpy(ifr2.ifr_name, ifr[i].ifr_name, IFNAMSIZ-1); + + ioctl(fd, SIOCGIFNETMASK, &ifr2); + + close(fd); + close(fd2); + netMaskString=inet_ntoa(((struct sockaddr_in *)&ifr2.ifr_addr)->sin_addr); + + return netMaskString; + } + } + + close(fd2); + return ""; + +#endif + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +void GetMyIP_Win32( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ) +{ + char ac[ 80 ]; + if ( gethostname( ac, sizeof( ac ) ) == -1 ) + { + #if defined(_WIN32) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "gethostname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); + #endif + return ; + } + + +#if RAKNET_SUPPORT_IPV6==1 + struct addrinfo hints; + struct addrinfo *servinfo=0, *aip; // will point to the results + PrepareAddrInfoHints(&hints); + getaddrinfo(ac, "", &hints, &servinfo); + + int idx; + for (idx=0, aip = servinfo; aip != NULL && idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; aip = aip->ai_next, idx++) + { + if (aip->ai_family == AF_INET) + { + struct sockaddr_in *ipv4 = (struct sockaddr_in *)aip->ai_addr; + memcpy(&addresses[idx].address.addr4,ipv4,sizeof(sockaddr_in)); + } + else + { + struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)aip->ai_addr; + memcpy(&addresses[idx].address.addr4,ipv6,sizeof(sockaddr_in6)); + } + + } + + freeaddrinfo(servinfo); // free the linked-list +#else + struct hostent *phe = gethostbyname( ac ); + + if ( phe == 0 ) + { + #ifdef _WIN32 + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "gethostbyname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); + #endif + return ; + } + int idx; + for ( idx = 0; idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ++idx ) + { + if (phe->h_addr_list[ idx ] == 0) + break; + + memcpy(&addresses[idx].address.addr4.sin_addr,phe->h_addr_list[ idx ],sizeof(struct in_addr)); + + } +#endif + + + while (idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS) + { + addresses[idx]=UNASSIGNED_SYSTEM_ADDRESS; + idx++; + } +} +// #else +/* +void GetMyIP_Linux( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ) +{ + struct ifaddrs *ifaddr, *ifa; + int family, s; + char host[NI_MAXHOST]; + struct in_addr linux_in_addr; + + if (getifaddrs(&ifaddr) == -1) { + printf( "Error getting interface list\n"); + } + + int idx = 0; + for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { + if (!ifa->ifa_addr) continue; + family = ifa->ifa_addr->sa_family; + + if (family == AF_INET) { + s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (s != 0) { + // printf ("getnameinfo() failed: %s\n", gai_strerror(s)); + } + else if (strcmp(host,"127.0.0.1")!=0) + { + if (inet_aton(host, &addresses[idx].address.addr4.sin_addr)!=0) + idx++; + } + } +#if RAKNET_SUPPORT_IPV6==1 + else + { + s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (s != 0) { + // printf ("getnameinfo() failed: %s\n", gai_strerror(s)); + } + else if (strcmp(host,"::1")!=0) + { + if (inet_pton(family, host, &addresses[idx].address.addr6.sin6_addr)!=0) + idx++; + } + } +#endif + } + + for ( ; idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ++idx ) + { + addresses[idx]=UNASSIGNED_SYSTEM_ADDRESS; + } + + freeifaddrs(ifaddr); +} +*/ + + + +void SocketLayer::GetMyIP( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ) +{ + + + + +#if defined(_WIN32) + GetMyIP_Win32(addresses); +#else +// GetMyIP_Linux(addresses); + GetMyIP_Win32(addresses); +#endif +} + + +unsigned short SocketLayer::GetLocalPort(SOCKET s) +{ + SystemAddress sa; + GetSystemAddress(s,&sa); + return sa.GetPort(); +} +void SocketLayer::GetSystemAddress_Old ( SOCKET s, SystemAddress *systemAddressOut ) +{ + sockaddr_in sa; + memset(&sa,0,sizeof(sockaddr_in)); + socklen_t len = sizeof(sa); + if (getsockname__(s, (sockaddr*)&sa, &len)!=0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "getsockname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); +#endif + *systemAddressOut = UNASSIGNED_SYSTEM_ADDRESS; + return; + } + + systemAddressOut->SetPortNetworkOrder(sa.sin_port); + systemAddressOut->address.addr4.sin_addr.s_addr=sa.sin_addr.s_addr; +} +void SocketLayer::GetSystemAddress ( SOCKET s, SystemAddress *systemAddressOut ) +{ +#if RAKNET_SUPPORT_IPV6!=1 + GetSystemAddress_Old(s,systemAddressOut); +#else + socklen_t slen; + sockaddr_storage ss; + slen = sizeof(ss); + + if (getsockname__(s, (struct sockaddr *)&ss, &slen)!=0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "getsockname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); +#endif + systemAddressOut->FromString(0); + return; + } + + if (ss.ss_family==AF_INET) + { + memcpy(&systemAddressOut->address.addr4,(sockaddr_in *)&ss,sizeof(sockaddr_in)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr4.sin_port); + + uint32_t zero = 0; + if (memcmp(&systemAddressOut->address.addr4.sin_addr.s_addr, &zero, sizeof(zero))==0) + systemAddressOut->SetToLoopback(4); + // systemAddressOut->address.addr4.sin_port=ntohs(systemAddressOut->address.addr4.sin_port); + } + else + { + memcpy(&systemAddressOut->address.addr6,(sockaddr_in6 *)&ss,sizeof(sockaddr_in6)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr6.sin6_port); + + char zero[16]; + memset(zero,0,sizeof(zero)); + if (memcmp(&systemAddressOut->address.addr4.sin_addr.s_addr, &zero, sizeof(zero))==0) + systemAddressOut->SetToLoopback(6); + + // systemAddressOut->address.addr6.sin6_port=ntohs(systemAddressOut->address.addr6.sin6_port); + } +#endif // #if RAKNET_SUPPORT_IPV6!=1 +} + +void SocketLayer::SetSocketLayerOverride(SocketLayerOverride *_slo) +{ + slo=_slo; +} + +bool SocketLayer::GetFirstBindableIP(char firstBindable[128], int ipProto) +{ + SystemAddress ipList[ MAXIMUM_NUMBER_OF_INTERNAL_IDS ]; + SocketLayer::GetMyIP( ipList ); + + + if (ipProto==AF_UNSPEC) + + { + ipList[0].ToString(false,firstBindable); + return true; + } + + // Find the first valid host address + unsigned int l; + for (l=0; l < MAXIMUM_NUMBER_OF_INTERNAL_IDS; l++) + { + if (ipList[l]==UNASSIGNED_SYSTEM_ADDRESS) + break; + if (ipList[l].GetIPVersion()==4 && ipProto==AF_INET) + break; + if (ipList[l].GetIPVersion()==6 && ipProto==AF_INET6) + break; + } + + if (ipList[l]==UNASSIGNED_SYSTEM_ADDRESS || l==MAXIMUM_NUMBER_OF_INTERNAL_IDS) + return false; +// RAKNET_DEBUG_PRINTF("%i %i %i %i\n", +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[0], +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[1], +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[2], +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[3] +// ); + ipList[l].ToString(false,firstBindable); + return true; + +} + + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SocketLayer.h b/project/lib_projects/raknet/jni/RaknetSources/SocketLayer.h new file mode 100755 index 0000000..01265d5 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SocketLayer.h @@ -0,0 +1,164 @@ +/// \file +/// \brief SocketLayer class implementation +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + + +#ifndef __SOCKET_LAYER_H +#define __SOCKET_LAYER_H + +#include "RakMemoryOverride.h" +#include "SocketIncludes.h" +#include "RakNetTypes.h" +#include "RakNetSmartPtr.h" +#include "RakNetSocket.h" +#include "Export.h" +#include "MTUSize.h" +#include "RakString.h" + +//#include "ClientContextStruct.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeer; + +class RAK_DLL_EXPORT SocketLayerOverride +{ +public: + SocketLayerOverride() {} + virtual ~SocketLayerOverride() {} + + /// Called when SendTo would otherwise occur. + virtual int RakNetSendTo( SOCKET s, const char *data, int length, const SystemAddress &systemAddress )=0; + + /// Called when RecvFrom would otherwise occur. Return number of bytes read. Write data into dataOut + // Return -1 to use RakNet's normal recvfrom, 0 to abort RakNet's normal recvfrom, and positive to return data + virtual int RakNetRecvFrom( const SOCKET sIn, RakPeer *rakPeerIn, char dataOut[ MAXIMUM_MTU_SIZE ], SystemAddress *senderOut, bool calledFromMainThread )=0; +}; + + +// A platform independent implementation of Berkeley sockets, with settings used by RakNet +class RAK_DLL_EXPORT SocketLayer +{ + +public: + + /// Default Constructor + SocketLayer(); + + // Destructor + ~SocketLayer(); + + /// Creates a bound socket to listen for incoming connections on the specified port + /// \param[in] port the port number + /// \param[in] blockingSocket + /// \return A new socket used for accepting clients + static SOCKET CreateBoundSocket( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions, unsigned short socketFamily ); + static SOCKET CreateBoundSocket_Old( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions ); + static SOCKET CreateBoundSocket_PS3Lobby( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ); + static SOCKET CreateBoundSocket_PSP2( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ); + + /// Returns if this specified port is in use, for UDP + /// \param[in] port the port number + /// \return If this port is already in use + static bool IsPortInUse_Old(unsigned short port, const char *hostAddress); + static bool IsPortInUse(unsigned short port, const char *hostAddress, unsigned short socketFamily ); + static bool IsSocketFamilySupported(const char *hostAddress, unsigned short socketFamily); + + static const char* DomainNameToIP_Old( const char *domainName ); + static const char* DomainNameToIP( const char *domainName ); + + /// Write \a data of length \a length to \a writeSocket + /// \param[in] writeSocket The socket to write to + /// \param[in] data The data to write + /// \param[in] length The length of \a data + static void Write( const SOCKET writeSocket, const char* data, const int length ); + + /// Read data from a socket + /// \param[in] s the socket + /// \param[in] rakPeer The instance of rakPeer containing the recvFrom C callback + /// \param[in] errorCode An error code if an error occured . + /// \param[in] connectionSocketIndex Which of the sockets in RakPeer we are using + /// \return Returns true if you successfully read data, false on error. + static void RecvFromBlocking_Old( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ); + static void RecvFromBlocking( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ); + + /// Given a socket and IP, retrieves the subnet mask, on linux the socket is unused + /// \param[in] inSock the socket + /// \param[in] inIpString The ip of the interface you wish to retrieve the subnet mask from + /// \return Returns the ip dotted subnet mask if successful, otherwise returns empty string ("") + static RakNet::RakString GetSubNetForSocketAndIp(SOCKET inSock, RakNet::RakString inIpString); + + + /// Sets the socket flags to nonblocking + /// \param[in] listenSocket the socket to set + static void SetNonBlocking( SOCKET listenSocket); + + + /// Retrieve all local IP address in a string format. + /// \param[in] s The socket whose port we are referring to + /// \param[in] ipList An array of ip address in dotted notation. + static void GetMyIP( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ); + + + /// Call sendto (UDP obviously) + /// \param[in] s the socket + /// \param[in] data The byte buffer to send + /// \param[in] length The length of the \a data in bytes + /// \param[in] ip The address of the remote host in dotted notation. + /// \param[in] port The port number to send to. + /// \return 0 on success, nonzero on failure. +// static int SendTo( SOCKET s, const char *data, int length, const char ip[ 16 ], unsigned short port, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ); + + /// Call sendto (UDP obviously) + /// It won't reach the recipient, except on a LAN + /// However, this is good for opening routers / firewalls + /// \param[in] s the socket + /// \param[in] data The byte buffer to send + /// \param[in] length The length of the \a data in bytes + /// \param[in] ip The address of the remote host in dotted notation. + /// \param[in] port The port number to send to. + /// \param[in] ttl Max hops of datagram + /// \return 0 on success, nonzero on failure. + static int SendToTTL( SOCKET s, const char *data, int length, SystemAddress &systemAddress, int ttl ); + + /// Call sendto (UDP obviously) + /// \param[in] s the socket + /// \param[in] data The byte buffer to send + /// \param[in] length The length of the \a data in bytes + /// \param[in] binaryAddress The address of the remote host in binary format. + /// \param[in] port The port number to send to. + /// \return 0 on success, nonzero on failure. + static int SendTo( SOCKET s, const char *data, int length, SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ); + + static unsigned short GetLocalPort(SOCKET s); + static void GetSystemAddress_Old ( SOCKET s, SystemAddress *systemAddressOut ); + static void GetSystemAddress ( SOCKET s, SystemAddress *systemAddressOut ); + + static void SetSocketLayerOverride(SocketLayerOverride *_slo); + static SocketLayerOverride* GetSocketLayerOverride(void) {return slo;} + + static int SendTo_PS3Lobby( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ); + static int SendTo_PSP2( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ); + static int SendTo_360( SOCKET s, const char *data, int length, const char *voiceData, int voiceLength, const SystemAddress &systemAddress, unsigned int extraSocketOptions ); + static int SendTo_PC( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, const char *file, const long line ); + + static void SetDoNotFragment( SOCKET listenSocket, int opt, int IPPROTO ); + + + // AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + static bool GetFirstBindableIP(char firstBindable[128], int ipProto); + +private: + + static void SetSocketOptions( SOCKET listenSocket); + static SocketLayerOverride *slo; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/StringCompressor.cpp b/project/lib_projects/raknet/jni/RaknetSources/StringCompressor.cpp new file mode 100755 index 0000000..8516a33 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/StringCompressor.cpp @@ -0,0 +1,499 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "StringCompressor.h" +#include "DS_HuffmanEncodingTree.h" +#include "BitStream.h" +#include "RakString.h" +#include "RakAssert.h" +#include + +#include + + + + + +using namespace RakNet; + +StringCompressor* StringCompressor::instance=0; +int StringCompressor::referenceCount=0; + +void StringCompressor::AddReference(void) +{ + if (++referenceCount==1) + { + instance = RakNet::OP_NEW( _FILE_AND_LINE_ ); + } +} +void StringCompressor::RemoveReference(void) +{ + RakAssert(referenceCount > 0); + + if (referenceCount > 0) + { + if (--referenceCount==0) + { + RakNet::OP_DELETE(instance, _FILE_AND_LINE_); + instance=0; + } + } +} + +StringCompressor* StringCompressor::Instance(void) +{ + return instance; +} + +unsigned int englishCharacterFrequencies[ 256 ] = +{ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 722, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11084, + 58, + 63, + 1, + 0, + 31, + 0, + 317, + 64, + 64, + 44, + 0, + 695, + 62, + 980, + 266, + 69, + 67, + 56, + 7, + 73, + 3, + 14, + 2, + 69, + 1, + 167, + 9, + 1, + 2, + 25, + 94, + 0, + 195, + 139, + 34, + 96, + 48, + 103, + 56, + 125, + 653, + 21, + 5, + 23, + 64, + 85, + 44, + 34, + 7, + 92, + 76, + 147, + 12, + 14, + 57, + 15, + 39, + 15, + 1, + 1, + 1, + 2, + 3, + 0, + 3611, + 845, + 1077, + 1884, + 5870, + 841, + 1057, + 2501, + 3212, + 164, + 531, + 2019, + 1330, + 3056, + 4037, + 848, + 47, + 2586, + 2919, + 4771, + 1707, + 535, + 1106, + 152, + 1243, + 100, + 0, + 2, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 +}; + +StringCompressor::StringCompressor() +{ + DataStructures::Map::IMPLEMENT_DEFAULT_COMPARISON(); + + // Make a default tree immediately, since this is used for RPC possibly from multiple threads at the same time + HuffmanEncodingTree *huffmanEncodingTree = RakNet::OP_NEW( _FILE_AND_LINE_ ); + huffmanEncodingTree->GenerateFromFrequencyTable( englishCharacterFrequencies ); + + huffmanEncodingTrees.Set(0, huffmanEncodingTree); +} +void StringCompressor::GenerateTreeFromStrings( unsigned char *input, unsigned inputLength, uint8_t languageId ) +{ + HuffmanEncodingTree *huffmanEncodingTree; + if (huffmanEncodingTrees.Has(languageId)) + { + huffmanEncodingTree = huffmanEncodingTrees.Get(languageId); + RakNet::OP_DELETE(huffmanEncodingTree, _FILE_AND_LINE_); + } + + unsigned index; + unsigned int frequencyTable[ 256 ]; + + if ( inputLength == 0 ) + return ; + + // Zero out the frequency table + memset( frequencyTable, 0, sizeof( frequencyTable ) ); + + // Generate the frequency table from the strings + for ( index = 0; index < inputLength; index++ ) + frequencyTable[ input[ index ] ] ++; + + // Build the tree + huffmanEncodingTree = RakNet::OP_NEW( _FILE_AND_LINE_ ); + huffmanEncodingTree->GenerateFromFrequencyTable( frequencyTable ); + huffmanEncodingTrees.Set(languageId, huffmanEncodingTree); +} + +StringCompressor::~StringCompressor() +{ + for (unsigned i=0; i < huffmanEncodingTrees.Size(); i++) + RakNet::OP_DELETE(huffmanEncodingTrees[i], _FILE_AND_LINE_); +} + +void StringCompressor::EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId ) +{ + HuffmanEncodingTree *huffmanEncodingTree; + if (huffmanEncodingTrees.Has(languageId)==false) + return; + huffmanEncodingTree=huffmanEncodingTrees.Get(languageId); + + if ( input == 0 ) + { + output->WriteCompressed( (uint32_t) 0 ); + return ; + } + + RakNet::BitStream encodedBitStream; + + uint32_t stringBitLength; + + int charsToWrite; + + if ( maxCharsToWrite<=0 || ( int ) strlen( input ) < maxCharsToWrite ) + charsToWrite = ( int ) strlen( input ); + else + charsToWrite = maxCharsToWrite - 1; + + huffmanEncodingTree->EncodeArray( ( unsigned char* ) input, charsToWrite, &encodedBitStream ); + + stringBitLength = (uint32_t) encodedBitStream.GetNumberOfBitsUsed(); + + output->WriteCompressed( stringBitLength ); + + output->WriteBits( encodedBitStream.GetData(), stringBitLength ); +} + +bool StringCompressor::DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + HuffmanEncodingTree *huffmanEncodingTree; + if (huffmanEncodingTrees.Has(languageId)==false) + return false; + if (maxCharsToWrite<=0) + return false; + huffmanEncodingTree=huffmanEncodingTrees.Get(languageId); + + uint32_t stringBitLength; + int bytesInStream; + + output[ 0 ] = 0; + + if ( input->ReadCompressed( stringBitLength ) == false ) + return false; + + if ( (unsigned) input->GetNumberOfUnreadBits() < stringBitLength ) + return false; + + bytesInStream = huffmanEncodingTree->DecodeArray( input, stringBitLength, maxCharsToWrite, ( unsigned char* ) output ); + + if ( bytesInStream < maxCharsToWrite ) + output[ bytesInStream ] = 0; + else + output[ maxCharsToWrite - 1 ] = 0; + + return true; +} +#ifdef _CSTRING_COMPRESSOR +void StringCompressor::EncodeString( const CString &input, int maxCharsToWrite, RakNet::BitStream *output ) +{ + LPTSTR p = input; + EncodeString(p, maxCharsToWrite*sizeof(TCHAR), output, languageID); +} +bool StringCompressor::DecodeString( CString &output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + LPSTR p = output.GetBuffer(maxCharsToWrite*sizeof(TCHAR)); + DecodeString(p,maxCharsToWrite*sizeof(TCHAR), input, languageID); + output.ReleaseBuffer(0) + +} +#endif +#ifdef _STD_STRING_COMPRESSOR +void StringCompressor::EncodeString( const std::string &input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId ) +{ + EncodeString(input.c_str(), maxCharsToWrite, output, languageID); +} +bool StringCompressor::DecodeString( std::string *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + if (maxCharsToWrite <= 0) + { + output->clear(); + return true; + } + + char *destinationBlock; + bool out; + + + if (maxCharsToWrite < MAX_ALLOCA_STACK_ALLOCATION) + { + destinationBlock = (char*) alloca(maxCharsToWrite); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageID); + *output=destinationBlock; + } + else + + { + destinationBlock = (char*) rakMalloc_Ex( maxCharsToWrite, _FILE_AND_LINE_ ); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageId); + *output=destinationBlock; + rakFree_Ex(destinationBlock, _FILE_AND_LINE_ ); + } + + return out; +} +#endif +void StringCompressor::EncodeString( const RakString *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId ) +{ + EncodeString(input->C_String(), maxCharsToWrite, output, languageId); +} +bool StringCompressor::DecodeString( RakString *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + if (maxCharsToWrite <= 0) + { + output->Clear(); + return true; + } + + char *destinationBlock; + bool out; + + + if (maxCharsToWrite < MAX_ALLOCA_STACK_ALLOCATION) + { + destinationBlock = (char*) alloca(maxCharsToWrite); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageId); + *output=destinationBlock; + } + else + + { + destinationBlock = (char*) rakMalloc_Ex( maxCharsToWrite, _FILE_AND_LINE_ ); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageId); + *output=destinationBlock; + rakFree_Ex(destinationBlock, _FILE_AND_LINE_ ); + } + + return out; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/StringCompressor.h b/project/lib_projects/raknet/jni/RaknetSources/StringCompressor.h new file mode 100755 index 0000000..6852ce8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/StringCompressor.h @@ -0,0 +1,105 @@ +/// \file +/// \brief \b Compresses/Decompresses ASCII strings and writes/reads them to BitStream class instances. You can use this to easily serialize and deserialize your own strings. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __STRING_COMPRESSOR_H +#define __STRING_COMPRESSOR_H + +#include "Export.h" +#include "DS_Map.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" + +#ifdef _STD_STRING_COMPRESSOR +#include +#endif + +/// Forward declaration +namespace RakNet +{ + class BitStream; + class RakString; +}; + + +namespace RakNet +{ +/// Forward declarations +class HuffmanEncodingTree; + +/// \brief Writes and reads strings to and from bitstreams. +/// +/// Only works with ASCII strings. The default compression is for English. +/// You can call GenerateTreeFromStrings to compress and decompress other languages efficiently as well. +class RAK_DLL_EXPORT StringCompressor +{ +public: + + // Destructor + ~StringCompressor(); + + /// static function because only static functions can access static members + /// The RakPeer constructor adds a reference to this class, so don't call this until an instance of RakPeer exists, or unless you call AddReference yourself. + /// \return the unique instance of the StringCompressor + static StringCompressor* Instance(void); + + /// Given an array of strings, such as a chat log, generate the optimal encoding tree for it. + /// This function is optional and if it is not called a default tree will be used instead. + /// \param[in] input An array of bytes which should point to text. + /// \param[in] inputLength Length of \a input + /// \param[in] languageID An identifier for the language / string table to generate the tree for. English is automatically created with ID 0 in the constructor. + void GenerateTreeFromStrings( unsigned char *input, unsigned inputLength, uint8_t languageId ); + + /// Writes input to output, compressed. Takes care of the null terminator for you. + /// \param[in] input Pointer to an ASCII string + /// \param[in] maxCharsToWrite The max number of bytes to write of \a input. Use 0 to mean no limit. + /// \param[out] output The bitstream to write the compressed string to + /// \param[in] languageID Which language to use + void EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + + /// Writes input to output, uncompressed. Takes care of the null terminator for you. + /// \param[out] output A block of bytes to receive the output + /// \param[in] maxCharsToWrite Size, in bytes, of \a output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. + /// \param[in] input The bitstream containing the compressed string + /// \param[in] languageID Which language to use + bool DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); + +#ifdef _CSTRING_COMPRESSOR + void EncodeString( const CString &input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + bool DecodeString( CString &output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); +#endif + +#ifdef _STD_STRING_COMPRESSOR + void EncodeString( const std::string &input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + bool DecodeString( std::string *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); +#endif + + void EncodeString( const RakNet::RakString *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + bool DecodeString( RakNet::RakString *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); + + /// Used so I can allocate and deallocate this singleton at runtime + static void AddReference(void); + + /// Used so I can allocate and deallocate this singleton at runtime + static void RemoveReference(void); + + StringCompressor(); + +private: + + /// Singleton instance + static StringCompressor *instance; + + /// Pointer to the huffman encoding trees. + DataStructures::Map huffmanEncodingTrees; + + static int referenceCount; +}; + +} // namespace RakNet + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/StringTable.cpp b/project/lib_projects/raknet/jni/RaknetSources/StringTable.cpp new file mode 100755 index 0000000..48665d8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/StringTable.cpp @@ -0,0 +1,140 @@ +#include "StringTable.h" +#include +#include "RakAssert.h" +#include +#include "BitStream.h" +#include "StringCompressor.h" +using namespace RakNet; + +StringTable* StringTable::instance=0; +int StringTable::referenceCount=0; + + +int RakNet::StrAndBoolComp( char *const &key, const StrAndBool &data ) +{ + return strcmp(key,(const char*)data.str); +} + +StringTable::StringTable() +{ + +} + +StringTable::~StringTable() +{ + unsigned i; + for (i=0; i < orderedStringList.Size(); i++) + { + if (orderedStringList[i].b) + rakFree_Ex(orderedStringList[i].str, _FILE_AND_LINE_ ); + } +} + +void StringTable::AddReference(void) +{ + if (++referenceCount==1) + { + instance = RakNet::OP_NEW( _FILE_AND_LINE_ ); + } +} +void StringTable::RemoveReference(void) +{ + RakAssert(referenceCount > 0); + + if (referenceCount > 0) + { + if (--referenceCount==0) + { + RakNet::OP_DELETE(instance, _FILE_AND_LINE_); + instance=0; + } + } +} + +StringTable* StringTable::Instance(void) +{ + return instance; +} + +void StringTable::AddString(const char *str, bool copyString) +{ + StrAndBool sab; + sab.b=copyString; + if (copyString) + { + sab.str = (char*) rakMalloc_Ex( strlen(str)+1, _FILE_AND_LINE_ ); + strcpy(sab.str, str); + } + else + { + sab.str=(char*)str; + } + + // If it asserts inside here you are adding duplicate strings. + orderedStringList.Insert(sab.str,sab, true, _FILE_AND_LINE_); + + // If this assert hits you need to increase the range of StringTableType + RakAssert(orderedStringList.Size() < (StringTableType)-1); + +} +void StringTable::EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output ) +{ + unsigned index; + bool objectExists; + // This is fast because the list is kept ordered. + index=orderedStringList.GetIndexFromKey((char*)input, &objectExists); + if (objectExists) + { + output->Write(true); + output->Write((StringTableType)index); + } + else + { + LogStringNotFound(input); + output->Write(false); + StringCompressor::Instance()->EncodeString(input, maxCharsToWrite, output); + } +} + +bool StringTable::DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input ) +{ + bool hasIndex=false; + RakAssert(maxCharsToWrite>0); + + if (maxCharsToWrite==0) + return false; + if (!input->Read(hasIndex)) + return false; + if (hasIndex==false) + { + StringCompressor::Instance()->DecodeString(output, maxCharsToWrite, input); + } + else + { + StringTableType index; + if (!input->Read(index)) + return false; + if (index >= orderedStringList.Size()) + { +#ifdef _DEBUG + // Critical error - got a string index out of range, which means AddString was called more times on the remote system than on this system. + // All systems must call AddString the same number of types, with the same strings in the same order. + RakAssert(0); +#endif + return false; + } + + strncpy(output, orderedStringList[index].str, maxCharsToWrite); + output[maxCharsToWrite-1]=0; + } + + return true; +} +void StringTable::LogStringNotFound(const char *strName) +{ + (void) strName; + +#ifdef _DEBUG + RAKNET_DEBUG_PRINTF("Efficiency Warning! Unregistered String %s sent to StringTable.\n", strName); +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/StringTable.h b/project/lib_projects/raknet/jni/RaknetSources/StringTable.h new file mode 100755 index 0000000..f886bb7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/StringTable.h @@ -0,0 +1,96 @@ +/// \file +/// \brief A simple class to encode and decode known strings based on a lookup table. Similar to the StringCompressor class. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __STRING_TABLE_H +#define __STRING_TABLE_H + +#include "DS_OrderedList.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +/// Forward declaration +namespace RakNet +{ + class BitStream; +}; + +/// StringTableType should be the smallest type possible, or else it defeats the purpose of the StringTable class, which is to save bandwidth. +typedef unsigned char StringTableType; + +/// The string plus a bool telling us if this string was copied or not. +struct StrAndBool +{ + char *str; + bool b; +}; + +namespace RakNet +{ + int RAK_DLL_EXPORT StrAndBoolComp( char *const &key, const StrAndBool &data ); + + /// \details This is an even more efficient alternative to StringCompressor in that it writes a single byte from a lookup table and only does compression.
    + /// if the string does not already exist in the table.
    + /// All string tables must match on all systems - hence you must add all the strings in the same order on all systems.
    + /// Furthermore, this must be done before sending packets that use this class, since the strings are ordered for fast lookup. Adding after that time would mess up all the indices so don't do it.
    + /// Don't use this class to write strings which were not previously registered with AddString, since you just waste bandwidth then. Use StringCompressor instead. + /// \brief Writes a string index, instead of the whole string + class RAK_DLL_EXPORT StringTable + { + public: + + // Destructor + ~StringTable(); + + /// static function because only static functions can access static members + /// The RakPeer constructor adds a reference to this class, so don't call this until an instance of RakPeer exists, or unless you call AddReference yourself. + /// \return the unique instance of the StringTable + static StringTable* Instance(void); + + /// Add a string to the string table. + /// \param[in] str The string to add to the string table + /// \param[in] copyString true to make a copy of the passed string (takes more memory), false to not do so (if your string is in static memory). + void AddString(const char *str, bool copyString); + + /// Writes input to output, compressed. Takes care of the null terminator for you. + /// Relies on the StringCompressor class, which is automatically reference counted in the constructor and destructor in RakPeer. You can call the reference counting functions yourself if you wish too. + /// \param[in] input Pointer to an ASCII string + /// \param[in] maxCharsToWrite The size of \a input + /// \param[out] output The bitstream to write the compressed string to + void EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output ); + + /// Writes input to output, uncompressed. Takes care of the null terminator for you. + /// Relies on the StringCompressor class, which is automatically reference counted in the constructor and destructor in RakPeer. You can call the reference counting functions yourself if you wish too. + /// \param[out] output A block of bytes to receive the output + /// \param[in] maxCharsToWrite Size, in bytes, of \a output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. + /// \param[in] input The bitstream containing the compressed string + bool DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input ); + + /// Used so I can allocate and deallocate this singleton at runtime + static void AddReference(void); + + /// Used so I can allocate and deallocate this singleton at runtime + static void RemoveReference(void); + + /// Private Constructor + StringTable(); + + protected: + /// Called when you mess up and send a string using this class that was not registered with AddString + /// \param[in] maxCharsToWrite Size, in bytes, of \a output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. + void LogStringNotFound(const char *strName); + + /// Singleton instance + static StringTable *instance; + static int referenceCount; + + DataStructures::OrderedList orderedStringList; + }; +} + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/SuperFastHash.cpp b/project/lib_projects/raknet/jni/RaknetSources/SuperFastHash.cpp new file mode 100755 index 0000000..f5626e9 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SuperFastHash.cpp @@ -0,0 +1,119 @@ +#include "SuperFastHash.h" +#include "NativeTypes.h" +#include + +#if !defined(_WIN32) +#include +#endif + +#undef get16bits + +#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ + || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) +#define get16bits(d) (*((const uint16_t *) (d))) +#else +#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif + +static const int INCREMENTAL_READ_BLOCK=65536; + +uint32_t SuperFastHash (const char * data, int length) +{ + // All this is necessary or the hash does not match SuperFastHashIncremental + int bytesRemaining=length; + unsigned int lastHash = length; + int offset=0; + while (bytesRemaining>=INCREMENTAL_READ_BLOCK) + { + lastHash=SuperFastHashIncremental (data+offset, INCREMENTAL_READ_BLOCK, lastHash ); + bytesRemaining-=INCREMENTAL_READ_BLOCK; + offset+=INCREMENTAL_READ_BLOCK; + } + if (bytesRemaining>0) + { + lastHash=SuperFastHashIncremental (data+offset, bytesRemaining, lastHash ); + } + return lastHash; + +// return SuperFastHashIncremental(data,len,len); +} +uint32_t SuperFastHashIncremental (const char * data, int len, unsigned int lastHash ) +{ + uint32_t hash = (uint32_t) lastHash; + uint32_t tmp; + int rem; + + if (len <= 0 || data == NULL) return 0; + + rem = len & 3; + len >>= 2; + + /* Main loop */ + for (;len > 0; len--) { + hash += get16bits (data); + tmp = (get16bits (data+2) << 11) ^ hash; + hash = (hash << 16) ^ tmp; + data += 2*sizeof (uint16_t); + hash += hash >> 11; + } + + /* Handle end cases */ + switch (rem) { + case 3: hash += get16bits (data); + hash ^= hash << 16; + hash ^= data[sizeof (uint16_t)] << 18; + hash += hash >> 11; + break; + case 2: hash += get16bits (data); + hash ^= hash << 11; + hash += hash >> 17; + break; + case 1: hash += *data; + hash ^= hash << 10; + hash += hash >> 1; + } + + /* Force "avalanching" of final 127 bits */ + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + + return (uint32_t) hash; + +} + +uint32_t SuperFastHashFile (const char * filename) +{ + FILE *fp = fopen(filename, "rb"); + if (fp==0) + return 0; + uint32_t hash = SuperFastHashFilePtr(fp); + fclose(fp); + return hash; +} + +uint32_t SuperFastHashFilePtr (FILE *fp) +{ + fseek(fp, 0, SEEK_END); + int length = ftell(fp); + fseek(fp, 0, SEEK_SET); + int bytesRemaining=length; + unsigned int lastHash = length; + char readBlock[INCREMENTAL_READ_BLOCK]; + while (bytesRemaining>=(int) sizeof(readBlock)) + { + fread(readBlock, sizeof(readBlock), 1, fp); + lastHash=SuperFastHashIncremental (readBlock, (int) sizeof(readBlock), lastHash ); + bytesRemaining-=(int) sizeof(readBlock); + } + if (bytesRemaining>0) + { + fread(readBlock, bytesRemaining, 1, fp); + lastHash=SuperFastHashIncremental (readBlock, bytesRemaining, lastHash ); + } + return lastHash; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/SuperFastHash.h b/project/lib_projects/raknet/jni/RaknetSources/SuperFastHash.h new file mode 100755 index 0000000..fd8463c --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/SuperFastHash.h @@ -0,0 +1,17 @@ +#ifndef __SUPER_FAST_HASH_H +#define __SUPER_FAST_HASH_H + +#include +#include "NativeTypes.h" + +// From http://www.azillionmonkeys.com/qed/hash.html +// Author of main code is Paul Hsieh +// I just added some convenience functions +// Also note http://burtleburtle.net/bob/hash/doobs.html, which shows that this is 20% faster than the one on that page but has more collisions + +uint32_t SuperFastHash (const char * data, int length); +uint32_t SuperFastHashIncremental (const char * data, int len, unsigned int lastHash ); +uint32_t SuperFastHashFile (const char * filename); +uint32_t SuperFastHashFilePtr (FILE *fp); + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/TCPInterface.cpp b/project/lib_projects/raknet/jni/RaknetSources/TCPInterface.cpp new file mode 100755 index 0000000..78826af --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TCPInterface.cpp @@ -0,0 +1,1218 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TCPInterface==1 + +/// \file +/// \brief A simple TCP based server allowing sends and receives. Can be connected to by a telnet client. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "TCPInterface.h" +#ifdef _WIN32 +typedef int socklen_t; + + +#else +#include +#include +#include +#endif +#include +#include "RakAssert.h" +#include +#include "RakAssert.h" +#include "RakSleep.h" +#include "StringCompressor.h" +#include "StringTable.h" +#include "Itoa.h" +#include "SocketLayer.h" +#include "SocketDefines.h" + +#ifdef _DO_PRINTF +#endif + +#ifdef _WIN32 +#include "WSAStartupSingleton.h" +#endif +namespace RakNet +{ +RAK_THREAD_DECLARATION(UpdateTCPInterfaceLoop); +RAK_THREAD_DECLARATION(ConnectionAttemptLoop); +} +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(TCPInterface,TCPInterface); + +TCPInterface::TCPInterface() +{ + isStarted=false; + threadRunning=false; + listenSocket=(SOCKET) -1; + remoteClients=0; + remoteClientsLength=0; + + StringCompressor::AddReference(); + RakNet::StringTable::AddReference(); + +#if OPEN_SSL_CLIENT_SUPPORT==1 + ctx=0; + meth=0; +#endif + +#ifdef _WIN32 + WSAStartupSingleton::AddRef(); +#endif +} +TCPInterface::~TCPInterface() +{ + Stop(); +#ifdef _WIN32 + WSAStartupSingleton::Deref(); +#endif + + RakNet::OP_DELETE_ARRAY(remoteClients,_FILE_AND_LINE_); + + StringCompressor::RemoveReference(); + RakNet::StringTable::RemoveReference(); +} +bool TCPInterface::Start(unsigned short port, unsigned short maxIncomingConnections, unsigned short maxConnections, int _threadPriority, unsigned short socketFamily) +{ + (void) socketFamily; + + if (isStarted) + return false; + + threadPriority=_threadPriority; + + if (threadPriority==-99999) + { + + +#if defined(_WIN32) + threadPriority=0; + + +#else + threadPriority=1000; +#endif + } + + isStarted=true; + if (maxConnections==0) + maxConnections=maxIncomingConnections; + if (maxConnections==0) + maxConnections=1; + remoteClientsLength=maxConnections; + remoteClients=RakNet::OP_NEW_ARRAY(maxConnections,_FILE_AND_LINE_); + + +#if RAKNET_SUPPORT_IPV6!=1 + if (maxIncomingConnections>0) + { + listenSocket = socket__(AF_INET, SOCK_STREAM, 0); + if ((int)listenSocket ==-1) + return false; + + struct sockaddr_in serverAddress; + memset(&serverAddress,0,sizeof(sockaddr_in)); + serverAddress.sin_family = AF_INET; + + serverAddress.sin_addr.s_addr = htonl(INADDR_ANY); + + serverAddress.sin_port = htons(port); + + if (bind__(listenSocket,(struct sockaddr *) &serverAddress,sizeof(serverAddress)) < 0) + return false; + + listen__(listenSocket, maxIncomingConnections); + } +#else + listenSocket=INVALID_SOCKET; + if (maxIncomingConnections>0) + { + struct addrinfo hints; + memset(&hints, 0, sizeof (addrinfo)); // make sure the struct is empty + hints.ai_family = socketFamily; // don't care IPv4 or IPv6 + hints.ai_socktype = SOCK_STREAM; // TCP sockets + hints.ai_flags = AI_PASSIVE; // fill in my IP for me + struct addrinfo *servinfo=0, *aip; // will point to the results + char portStr[32]; + Itoa(port,portStr,10); + + getaddrinfo(0, portStr, &hints, &servinfo); + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + listenSocket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (listenSocket != INVALID_SOCKET) + { + int ret = bind__( listenSocket, aip->ai_addr, (int) aip->ai_addrlen ); + if (ret>=0) + { + break; + } + else + { + closesocket__(listenSocket); + listenSocket=INVALID_SOCKET; + } + } + } + + if (listenSocket==INVALID_SOCKET) + return false; + + listen__(listenSocket, maxIncomingConnections); + } +#endif // #if RAKNET_SUPPORT_IPV6!=1 + + + // Start the update thread + int errorCode; + + + + + + errorCode = RakNet::RakThread::Create(UpdateTCPInterfaceLoop, this, threadPriority); + + + if (errorCode!=0) + return false; + + while (threadRunning==false) + RakSleep(0); + + return true; +} +void TCPInterface::Stop(void) +{ + if (isStarted==false) + return; + + unsigned i; +#if OPEN_SSL_CLIENT_SUPPORT==1 + for (i=0; i < remoteClientsLength; i++) + remoteClients[i].DisconnectSSL(); +#endif + + isStarted=false; + + if (listenSocket!=(SOCKET) -1) + { +#ifdef _WIN32 + shutdown__(listenSocket, SD_BOTH); + +#else + shutdown__(listenSocket, SHUT_RDWR); +#endif + closesocket__(listenSocket); + listenSocket=(SOCKET) -1; + } + + // Abort waiting connect calls + blockingSocketListMutex.Lock(); + for (i=0; i < blockingSocketList.Size(); i++) + { + closesocket__(blockingSocketList[i]); + } + blockingSocketListMutex.Unlock(); + + // Wait for the thread to stop + while ( threadRunning ) + RakSleep(15); + + RakSleep(100); + + // Stuff from here on to the end of the function is not threadsafe + for (i=0; i < (unsigned int) remoteClientsLength; i++) + { + closesocket__(remoteClients[i].socket); +#if OPEN_SSL_CLIENT_SUPPORT==1 + remoteClients[i].FreeSSL(); +#endif + } + remoteClientsLength=0; + RakNet::OP_DELETE_ARRAY(remoteClients,_FILE_AND_LINE_); + remoteClients=0; + + incomingMessages.Clear(_FILE_AND_LINE_); + newIncomingConnections.Clear(_FILE_AND_LINE_); + newRemoteClients.Clear(_FILE_AND_LINE_); + lostConnections.Clear(_FILE_AND_LINE_); + requestedCloseConnections.Clear(_FILE_AND_LINE_); + failedConnectionAttempts.Clear(_FILE_AND_LINE_); + completedConnectionAttempts.Clear(_FILE_AND_LINE_); + failedConnectionAttempts.Clear(_FILE_AND_LINE_); + for (i=0; i < headPush.Size(); i++) + DeallocatePacket(headPush[i]); + headPush.Clear(_FILE_AND_LINE_); + for (i=0; i < tailPush.Size(); i++) + DeallocatePacket(tailPush[i]); + tailPush.Clear(_FILE_AND_LINE_); + +#if OPEN_SSL_CLIENT_SUPPORT==1 + SSL_CTX_free (ctx); + startSSL.Clear(_FILE_AND_LINE_); + activeSSLConnections.Clear(false, _FILE_AND_LINE_); +#endif + + + + + +} +SystemAddress TCPInterface::Connect(const char* host, unsigned short remotePort, bool block, unsigned short socketFamily) +{ + if (threadRunning==false) + return UNASSIGNED_SYSTEM_ADDRESS; + + int newRemoteClientIndex=-1; + for (newRemoteClientIndex=0; newRemoteClientIndex < remoteClientsLength; newRemoteClientIndex++) + { + remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + if (remoteClients[newRemoteClientIndex].isActive==false) + { + remoteClients[newRemoteClientIndex].SetActive(true); + remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + break; + } + remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + } + if (newRemoteClientIndex==-1) + return UNASSIGNED_SYSTEM_ADDRESS; + + if (block) + { + SystemAddress systemAddress; + systemAddress.FromString(host); + systemAddress.SetPort(remotePort); + systemAddress.systemIndex=(SystemIndex) newRemoteClientIndex; + char buffout[128]; + systemAddress.ToString(false,buffout); + + SOCKET sockfd = SocketConnect(buffout, remotePort, socketFamily); + if (sockfd==(SOCKET)-1) + { + remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + remoteClients[newRemoteClientIndex].SetActive(false); + remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + + failedConnectionAttemptMutex.Lock(); + failedConnectionAttempts.Push(systemAddress, _FILE_AND_LINE_ ); + failedConnectionAttemptMutex.Unlock(); + + return UNASSIGNED_SYSTEM_ADDRESS; + } + + remoteClients[newRemoteClientIndex].socket=sockfd; + remoteClients[newRemoteClientIndex].systemAddress=systemAddress; + + completedConnectionAttemptMutex.Lock(); + completedConnectionAttempts.Push(remoteClients[newRemoteClientIndex].systemAddress, _FILE_AND_LINE_ ); + completedConnectionAttemptMutex.Unlock(); + + return remoteClients[newRemoteClientIndex].systemAddress; + } + else + { + ThisPtrPlusSysAddr *s = RakNet::OP_NEW( _FILE_AND_LINE_ ); + s->systemAddress.FromStringExplicitPort(host,remotePort); + s->systemAddress.systemIndex=(SystemIndex) newRemoteClientIndex; + s->tcpInterface=this; + s->socketFamily=socketFamily; + + // Start the connection thread + int errorCode; + + + + + errorCode = RakNet::RakThread::Create(ConnectionAttemptLoop, s, threadPriority); + + if (errorCode!=0) + { + RakNet::OP_DELETE(s, _FILE_AND_LINE_); + failedConnectionAttempts.Push(s->systemAddress, _FILE_AND_LINE_ ); + } + return UNASSIGNED_SYSTEM_ADDRESS; + } +} +#if OPEN_SSL_CLIENT_SUPPORT==1 +void TCPInterface::StartSSLClient(SystemAddress systemAddress) +{ + if (ctx==0) + { + sharedSslMutex.Lock(); + SSLeay_add_ssl_algorithms(); + meth = (SSL_METHOD*) SSLv2_client_method(); + SSL_load_error_strings(); + ctx = SSL_CTX_new (meth); + RakAssert(ctx!=0); + sharedSslMutex.Unlock(); + } + + SystemAddress *id = startSSL.Allocate( _FILE_AND_LINE_ ); + *id=systemAddress; + startSSL.Push(id); + unsigned index = activeSSLConnections.GetIndexOf(systemAddress); + if (index==(unsigned)-1) + activeSSLConnections.Insert(systemAddress,_FILE_AND_LINE_); +} +bool TCPInterface::IsSSLActive(SystemAddress systemAddress) +{ + return activeSSLConnections.GetIndexOf(systemAddress)!=-1; +} +#endif +void TCPInterface::Send( const char *data, unsigned length, const SystemAddress &systemAddress, bool broadcast ) +{ + SendList( &data, &length, 1, systemAddress,broadcast ); +} +bool TCPInterface::SendList( const char **data, const unsigned int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ) +{ + if (isStarted==false) + return false; + if (data==0) + return false; + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS && broadcast==false) + return false; + unsigned int totalLength=0; + int i; + for (i=0; i < numParameters; i++) + { + if (lengths[i]>0) + totalLength+=lengths[i]; + } + if (totalLength==0) + return false; + + if (broadcast) + { + // Send to all, possible exception system + for (i=0; i < remoteClientsLength; i++) + { + if (remoteClients[i].systemAddress!=systemAddress) + { + remoteClients[i].SendOrBuffer(data, lengths, numParameters); + } + } + } + else + { + // Send to this player + if (systemAddress.systemIndexdeleteData) + { + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + incomingMessages.Deallocate(packet, _FILE_AND_LINE_); + } + else + { + // Came from userspace AllocatePacket + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(packet, _FILE_AND_LINE_); + } +} +Packet* TCPInterface::AllocatePacket(unsigned dataSize) +{ + Packet*p = RakNet::OP_NEW(_FILE_AND_LINE_); + p->data=(unsigned char*) rakMalloc_Ex(dataSize,_FILE_AND_LINE_); + p->length=dataSize; + p->bitSize=BYTES_TO_BITS(dataSize); + p->deleteData=false; + p->guid=UNASSIGNED_RAKNET_GUID; + p->systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + p->systemAddress.systemIndex=(SystemIndex)-1; + return p; +} +void TCPInterface::PushBackPacket( Packet *packet, bool pushAtHead ) +{ + if (pushAtHead) + headPush.Push(packet, _FILE_AND_LINE_ ); + else + tailPush.Push(packet, _FILE_AND_LINE_ ); +} +bool TCPInterface::WasStarted(void) const +{ + return threadRunning==true; +} +int TCPInterface::Base64Encoding(const char *inputData, int dataLength, char *outputData) +{ + // http://en.wikipedia.org/wiki/Base64 + + int outputOffset, charCount; + int write3Count; + outputOffset=0; + charCount=0; + int j; + + write3Count=dataLength/3; + for (j=0; j < write3Count; j++) + { + // 6 leftmost bits from first byte, shifted to bits 7,8 are 0 + outputData[outputOffset++]=Base64Map()[inputData[j*3+0] >> 2]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Remaining 2 bits from first byte, placed in position, and 4 high bits from the second byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+0] << 4) | (inputData[j*3+1] >> 4)) & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // 4 low bits from the second byte and the two high bits from the third byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+1] << 2) | (inputData[j*3+2] >> 6)) & 63]; // Third 6 bits + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Last 6 bits from the third byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[inputData[j*3+2] & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + } + + if (dataLength % 3==1) + { + // One input byte remaining + outputData[outputOffset++]=Base64Map()[inputData[j*3+0] >> 2]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Remaining 2 bits from first byte, placed in position, and 4 high bits from the second byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+0] << 4) | (inputData[j*3+1] >> 4)) & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Pad with two equals + outputData[outputOffset++]='='; + outputData[outputOffset++]='='; + } + else if (dataLength % 3==2) + { + // Two input bytes remaining + + // 6 leftmost bits from first byte, shifted to bits 7,8 are 0 + outputData[outputOffset++]=Base64Map()[inputData[j*3+0] >> 2]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Remaining 2 bits from first byte, placed in position, and 4 high bits from the second byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+0] << 4) | (inputData[j*3+1] >> 4)) & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // 4 low bits from the second byte, followed by 00 + outputData[outputOffset++]=Base64Map()[(inputData[j*3+1] << 2) & 63]; // Third 6 bits + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Pad with one equal + outputData[outputOffset++]='='; + //outputData[outputOffset++]='='; + } + + // Append \r\n + outputData[outputOffset++]='\r'; + outputData[outputOffset++]='\n'; + outputData[outputOffset]=0; + + return outputOffset; +} +SystemAddress TCPInterface::HasCompletedConnectionAttempt(void) +{ + SystemAddress sysAddr=UNASSIGNED_SYSTEM_ADDRESS; + completedConnectionAttemptMutex.Lock(); + if (completedConnectionAttempts.IsEmpty()==false) + sysAddr=completedConnectionAttempts.Pop(); + completedConnectionAttemptMutex.Unlock(); + return sysAddr; +} +SystemAddress TCPInterface::HasFailedConnectionAttempt(void) +{ + SystemAddress sysAddr=UNASSIGNED_SYSTEM_ADDRESS; + failedConnectionAttemptMutex.Lock(); + if (failedConnectionAttempts.IsEmpty()==false) + sysAddr=failedConnectionAttempts.Pop(); + failedConnectionAttemptMutex.Unlock(); + return sysAddr; +} +SystemAddress TCPInterface::HasNewIncomingConnection(void) +{ + SystemAddress *out, out2; + out = newIncomingConnections.PopInaccurate(); + if (out) + { + out2=*out; + newIncomingConnections.Deallocate(out, _FILE_AND_LINE_); + return *out; + } + else + { + return UNASSIGNED_SYSTEM_ADDRESS; + } +} +SystemAddress TCPInterface::HasLostConnection(void) +{ + SystemAddress *out, out2; + out = lostConnections.PopInaccurate(); + if (out) + { + out2=*out; + lostConnections.Deallocate(out, _FILE_AND_LINE_); + return *out; + } + else + { + return UNASSIGNED_SYSTEM_ADDRESS; + } +} +void TCPInterface::GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const +{ + unsigned short systemCount=0; + unsigned short maxToWrite=*numberOfSystems; + for (int i=0; i < remoteClientsLength; i++) + { + if (remoteClients[i].isActive) + { + if (systemCount < maxToWrite) + remoteSystems[systemCount]=remoteClients[i].systemAddress; + systemCount++; + } + } + *numberOfSystems=systemCount; +} +unsigned short TCPInterface::GetConnectionCount(void) const +{ + unsigned short systemCount=0; + for (int i=0; i < remoteClientsLength; i++) + { + if (remoteClients[i].isActive) + systemCount++; + } + return systemCount; +} + +unsigned int TCPInterface::GetOutgoingDataBufferSize(SystemAddress systemAddress) const +{ + unsigned bytesWritten=0; + if (systemAddress.systemIndexh_addr, server->h_length); + + + + + + + blockingSocketListMutex.Lock(); + blockingSocketList.Insert(sockfd, _FILE_AND_LINE_); + blockingSocketListMutex.Unlock(); + + // This is blocking + connectResult = connect__( sockfd, ( struct sockaddr * ) &serverAddress, sizeof( struct sockaddr ) ); + +#else + + + struct addrinfo hints, *res; + int sockfd; + memset(&hints, 0, sizeof hints); + hints.ai_family = socketFamily; + hints.ai_socktype = SOCK_STREAM; + char portStr[32]; + Itoa(remotePort,portStr,10); + getaddrinfo(host, portStr, &hints, &res); + sockfd = socket__(res->ai_family, res->ai_socktype, res->ai_protocol); + blockingSocketListMutex.Lock(); + blockingSocketList.Insert(sockfd, _FILE_AND_LINE_); + blockingSocketListMutex.Unlock(); + connectResult=connect__(sockfd, res->ai_addr, res->ai_addrlen); + freeaddrinfo(res); // free the linked-list + +#endif // #if RAKNET_SUPPORT_IPV6!=1 + + if (connectResult==-1) + { + unsigned sockfdIndex; + blockingSocketListMutex.Lock(); + sockfdIndex=blockingSocketList.GetIndexOf(sockfd); + if (sockfdIndex!=(unsigned)-1) + blockingSocketList.RemoveAtIndexFast(sockfdIndex); + blockingSocketListMutex.Unlock(); + + closesocket__(sockfd); + return (SOCKET) -1; + } + + return sockfd; +} + +RAK_THREAD_DECLARATION(RakNet::ConnectionAttemptLoop) +{ + + + + TCPInterface::ThisPtrPlusSysAddr *s = (TCPInterface::ThisPtrPlusSysAddr *) arguments; + + + + SystemAddress systemAddress = s->systemAddress; + TCPInterface *tcpInterface = s->tcpInterface; + int newRemoteClientIndex=systemAddress.systemIndex; + unsigned short socketFamily = s->socketFamily; + RakNet::OP_DELETE(s, _FILE_AND_LINE_); + + char str1[64]; + systemAddress.ToString(false, str1); + SOCKET sockfd = tcpInterface->SocketConnect(str1, systemAddress.GetPort(), socketFamily); + if (sockfd==(SOCKET)-1) + { + tcpInterface->remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + tcpInterface->remoteClients[newRemoteClientIndex].SetActive(false); + tcpInterface->remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + + tcpInterface->failedConnectionAttemptMutex.Lock(); + tcpInterface->failedConnectionAttempts.Push(systemAddress, _FILE_AND_LINE_ ); + tcpInterface->failedConnectionAttemptMutex.Unlock(); + return 0; + } + + tcpInterface->remoteClients[newRemoteClientIndex].socket=sockfd; + tcpInterface->remoteClients[newRemoteClientIndex].systemAddress=systemAddress; + + // Notify user that the connection attempt has completed. + if (tcpInterface->threadRunning) + { + tcpInterface->completedConnectionAttemptMutex.Lock(); + tcpInterface->completedConnectionAttempts.Push(systemAddress, _FILE_AND_LINE_ ); + tcpInterface->completedConnectionAttemptMutex.Unlock(); + } + + + + + return 0; + +} + +RAK_THREAD_DECLARATION(RakNet::UpdateTCPInterfaceLoop) +{ + + + + TCPInterface * sts = ( TCPInterface * ) arguments; + + +// const int BUFF_SIZE=8096; + const unsigned int BUFF_SIZE=1048576; + //char data[ BUFF_SIZE ]; + char * data = (char*) rakMalloc_Ex(BUFF_SIZE,_FILE_AND_LINE_); + Packet *incomingMessage; + fd_set readFD, exceptionFD, writeFD; + sts->threadRunning=true; + +#if RAKNET_SUPPORT_IPV6!=1 + sockaddr_in sockAddr; + int sockAddrSize = sizeof(sockAddr); +#else + struct sockaddr_storage sockAddr; + socklen_t sockAddrSize = sizeof(sockAddr); +#endif + + int len; + SOCKET newSock; + int selectResult; + + + timeval tv; + tv.tv_sec=0; + tv.tv_usec=30000; + + + while (sts->isStarted) + { +#if OPEN_SSL_CLIENT_SUPPORT==1 + SystemAddress *sslSystemAddress; + sslSystemAddress = sts->startSSL.PopInaccurate(); + if (sslSystemAddress) + { + if (sslSystemAddress->systemIndex>=0 && + sslSystemAddress->systemIndexremoteClientsLength && + sts->remoteClients[sslSystemAddress->systemIndex].systemAddress==*sslSystemAddress) + { + sts->remoteClients[sslSystemAddress->systemIndex].InitSSL(sts->ctx,sts->meth); + } + else + { + for (int i=0; i < sts->remoteClientsLength; i++) + { + sts->remoteClients[i].isActiveMutex.Lock(); + if (sts->remoteClients[i].isActive && sts->remoteClients[i].systemAddress==*sslSystemAddress) + { + if (sts->remoteClients[i].ssl==0) + sts->remoteClients[i].InitSSL(sts->ctx,sts->meth); + } + sts->remoteClients[i].isActiveMutex.Unlock(); + } + } + sts->startSSL.Deallocate(sslSystemAddress,_FILE_AND_LINE_); + } +#endif + + + SOCKET largestDescriptor=0; // see select__()'s first parameter's documentation under linux + + + // Linux' select__() implementation changes the timeout + + tv.tv_sec=0; + tv.tv_usec=30000; + + + while (1) + { + // Reset readFD, writeFD, and exceptionFD since select seems to clear it + FD_ZERO(&readFD); + FD_ZERO(&exceptionFD); + FD_ZERO(&writeFD); +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + largestDescriptor=0; + if (sts->listenSocket!=(SOCKET) -1) + { + FD_SET(sts->listenSocket, &readFD); + FD_SET(sts->listenSocket, &exceptionFD); + largestDescriptor = sts->listenSocket; // @see largestDescriptor def + } + + unsigned i; + for (i=0; i < (unsigned int) sts->remoteClientsLength; i++) + { + sts->remoteClients[i].isActiveMutex.Lock(); + if (sts->remoteClients[i].isActive && sts->remoteClients[i].socket!=INVALID_SOCKET) + { + FD_SET(sts->remoteClients[i].socket, &readFD); + FD_SET(sts->remoteClients[i].socket, &exceptionFD); + if (sts->remoteClients[i].outgoingData.GetBytesWritten()>0) + FD_SET(sts->remoteClients[i].socket, &writeFD); + if(sts->remoteClients[i].socket > largestDescriptor) // @see largestDescriptorDef + largestDescriptor = sts->remoteClients[i].socket; + } + sts->remoteClients[i].isActiveMutex.Unlock(); + } + +#ifdef _MSC_VER +#pragma warning( disable : 4244 ) // warning C4127: conditional expression is constant +#endif + + + selectResult=(int) select__(largestDescriptor+1, &readFD, &writeFD, &exceptionFD, &tv); + + + + + if (selectResult<=0) + break; + + if (sts->listenSocket!=(SOCKET) -1 && FD_ISSET(sts->listenSocket, &readFD)) + { + newSock = accept__(sts->listenSocket, (sockaddr*)&sockAddr, (socklen_t*)&sockAddrSize); + + if (newSock != (SOCKET) -1) + { + int newRemoteClientIndex=-1; + for (newRemoteClientIndex=0; newRemoteClientIndex < sts->remoteClientsLength; newRemoteClientIndex++) + { + sts->remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + if (sts->remoteClients[newRemoteClientIndex].isActive==false) + { + sts->remoteClients[newRemoteClientIndex].socket=newSock; + +#if RAKNET_SUPPORT_IPV6!=1 + sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4.sin_addr.s_addr=sockAddr.sin_addr.s_addr; + sts->remoteClients[newRemoteClientIndex].systemAddress.SetPortNetworkOrder( sockAddr.sin_port); + sts->remoteClients[newRemoteClientIndex].systemAddress.systemIndex=newRemoteClientIndex; +#else + if (sockAddr.ss_family==AF_INET) + { + memcpy(&sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4,(sockaddr_in *)&sockAddr,sizeof(sockaddr_in)); + // sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4.sin_port=ntohs( sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4.sin_port ); + } + else + { + memcpy(&sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr6,(sockaddr_in6 *)&sockAddr,sizeof(sockaddr_in6)); + // sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr6.sin6_port=ntohs( sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr6.sin6_port ); + } + +#endif // #if RAKNET_SUPPORT_IPV6!=1 + sts->remoteClients[newRemoteClientIndex].SetActive(true); + sts->remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + + + SystemAddress *newConnectionSystemAddress=sts->newIncomingConnections.Allocate( _FILE_AND_LINE_ ); + *newConnectionSystemAddress=sts->remoteClients[newRemoteClientIndex].systemAddress; + sts->newIncomingConnections.Push(newConnectionSystemAddress); + + break; + } + sts->remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + } + if (newRemoteClientIndex==-1) + { + closesocket__(sts->listenSocket); + } + } + else + { +#ifdef _DO_PRINTF + RAKNET_DEBUG_PRINTF("Error: connection failed\n"); +#endif + } + } + else if (sts->listenSocket!=(SOCKET) -1 && FD_ISSET(sts->listenSocket, &exceptionFD)) + { +#ifdef _DO_PRINTF + int err; + int errlen = sizeof(err); + getsockopt__(sts->listenSocket, SOL_SOCKET, SO_ERROR,(char*)&err, &errlen); + RAKNET_DEBUG_PRINTF("Socket error %s on listening socket\n", err); +#endif + } + + { + i=0; + while (i < (unsigned int) sts->remoteClientsLength) + { + if (sts->remoteClients[i].isActive==false) + { + i++; + continue; + } + + if (FD_ISSET(sts->remoteClients[i].socket, &exceptionFD)) + { +// #ifdef _DO_PRINTF +// if (sts->listenSocket!=-1) +// { +// int err; +// int errlen = sizeof(err); +// getsockopt__(sts->listenSocket, SOL_SOCKET, SO_ERROR,(char*)&err, &errlen); +// in_addr in; +// in.s_addr = sts->remoteClients[i].systemAddress.binaryAddress; +// RAKNET_DEBUG_PRINTF("Socket error %i on %s:%i\n", err,inet_ntoa( in ), sts->remoteClients[i].systemAddress.GetPort() ); +// } +// +// #endif + // Connection lost abruptly + SystemAddress *lostConnectionSystemAddress=sts->lostConnections.Allocate( _FILE_AND_LINE_ ); + *lostConnectionSystemAddress=sts->remoteClients[i].systemAddress; + sts->lostConnections.Push(lostConnectionSystemAddress); + sts->remoteClients[i].isActiveMutex.Lock(); + sts->remoteClients[i].SetActive(false); + sts->remoteClients[i].isActiveMutex.Unlock(); + } + else + { + if (FD_ISSET(sts->remoteClients[i].socket, &readFD)) + { + // if recv returns 0 this was a graceful close + len = sts->remoteClients[i].Recv(data,BUFF_SIZE); + + + // removeme +// data[len]=0; +// printf(data); + + if (len>0) + { + incomingMessage=sts->incomingMessages.Allocate( _FILE_AND_LINE_ ); + incomingMessage->data = (unsigned char*) rakMalloc_Ex( len+1, _FILE_AND_LINE_ ); + memcpy(incomingMessage->data, data, len); + incomingMessage->data[len]=0; // Null terminate this so we can print it out as regular strings. This is different from RakNet which does not do this. +// printf("RECV: %s\n",incomingMessage->data); + incomingMessage->length=len; + incomingMessage->deleteData=true; // actually means came from SPSC, rather than AllocatePacket + incomingMessage->systemAddress=sts->remoteClients[i].systemAddress; + sts->incomingMessages.Push(incomingMessage); + } + else + { + // Connection lost gracefully + SystemAddress *lostConnectionSystemAddress=sts->lostConnections.Allocate( _FILE_AND_LINE_ ); + *lostConnectionSystemAddress=sts->remoteClients[i].systemAddress; + sts->lostConnections.Push(lostConnectionSystemAddress); + sts->remoteClients[i].isActiveMutex.Lock(); + sts->remoteClients[i].SetActive(false); + sts->remoteClients[i].isActiveMutex.Unlock(); + continue; + } + } + if (FD_ISSET(sts->remoteClients[i].socket, &writeFD)) + { + RemoteClient *rc = &sts->remoteClients[i]; + unsigned int bytesInBuffer; + int bytesAvailable; + int bytesSent; + rc->outgoingDataMutex.Lock(); + bytesInBuffer=rc->outgoingData.GetBytesWritten(); + if (bytesInBuffer>0) + { + unsigned int contiguousLength; + char* contiguousBytesPointer = rc->outgoingData.PeekContiguousBytes(&contiguousLength); + if (contiguousLength < (unsigned int) BUFF_SIZE && contiguousLength BUFF_SIZE) + bytesAvailable=BUFF_SIZE; + else + bytesAvailable=bytesInBuffer; + rc->outgoingData.ReadBytes(data,bytesAvailable,true); + bytesSent=rc->Send(data,bytesAvailable); + } + else + { + bytesSent=rc->Send(contiguousBytesPointer,contiguousLength); + } + + rc->outgoingData.IncrementReadOffset(bytesSent); + bytesInBuffer=rc->outgoingData.GetBytesWritten(); + } + rc->outgoingDataMutex.Unlock(); + } + + i++; // Nothing deleted so increment the index + } + } + } + } + + // Sleep 0 on Linux monopolizes the CPU + RakSleep(30); + } + sts->threadRunning=false; + + rakFree_Ex(data,_FILE_AND_LINE_); + + + + + return 0; + +} + +void RemoteClient::SetActive(bool a) +{ + if (isActive != a) + { + isActive=a; + Reset(); + if (isActive==false && socket!=INVALID_SOCKET) + { + closesocket__(socket); + socket=INVALID_SOCKET; + } + } +} +void RemoteClient::SendOrBuffer(const char **data, const unsigned int *lengths, const int numParameters) +{ + // True can save memory and buffer copies, but gives worse performance overall + // Do not use true for the XBOX, as it just locks up + const bool ALLOW_SEND_FROM_USER_THREAD=false; + + int parameterIndex; + if (isActive==false) + return; + parameterIndex=0; + for (; parameterIndex < numParameters; parameterIndex++) + { + outgoingDataMutex.Lock(); + if (ALLOW_SEND_FROM_USER_THREAD && outgoingData.GetBytesWritten()==0) + { + outgoingDataMutex.Unlock(); + int bytesSent = Send(data[parameterIndex],lengths[parameterIndex]); + if (bytesSent<(int) lengths[parameterIndex]) + { + // Push remainder + outgoingDataMutex.Lock(); + outgoingData.WriteBytes(data[parameterIndex]+bytesSent,lengths[parameterIndex]-bytesSent,_FILE_AND_LINE_); + outgoingDataMutex.Unlock(); + } + } + else + { + outgoingData.WriteBytes(data[parameterIndex],lengths[parameterIndex],_FILE_AND_LINE_); + outgoingDataMutex.Unlock(); + } + } +} +#if OPEN_SSL_CLIENT_SUPPORT==1 +void RemoteClient::InitSSL(SSL_CTX* ctx, SSL_METHOD *meth) +{ + (void) meth; + + ssl = SSL_new (ctx); + RakAssert(ssl); + SSL_set_fd (ssl, socket); + SSL_connect (ssl); +} +void RemoteClient::DisconnectSSL(void) +{ + if (ssl) + SSL_shutdown (ssl); /* send SSL/TLS close_notify */ +} +void RemoteClient::FreeSSL(void) +{ + if (ssl) + SSL_free (ssl); +} +int RemoteClient::Send(const char *data, unsigned int length) +{ + int err; + if (ssl) + { + return SSL_write (ssl, data, length); + } + else + return send__(socket, data, length, 0); +} +int RemoteClient::Recv(char *data, const int dataSize) +{ + if (ssl) + return SSL_read (ssl, data, dataSize); + else + return recv__(socket, data, dataSize, 0); +} +#else +int RemoteClient::Send(const char *data, unsigned int length) +{ + return send__(socket, data, length, 0); +} +int RemoteClient::Recv(char *data, const int dataSize) +{ + return recv__(socket, data, dataSize, 0); +} +#endif + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/TCPInterface.h b/project/lib_projects/raknet/jni/RaknetSources/TCPInterface.h new file mode 100755 index 0000000..e7bc8a0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TCPInterface.h @@ -0,0 +1,240 @@ +/// \file +/// \brief A simple TCP based server allowing sends and receives. Can be connected by any TCP client, including telnet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __SIMPLE_TCP_SERVER +#define __SIMPLE_TCP_SERVER + +#include "RakMemoryOverride.h" +#include "DS_List.h" +#include "RakNetTypes.h" +#include "Export.h" +#include "RakThread.h" +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "RakNetDefines.h" +#include "SocketIncludes.h" +#include "DS_ByteQueue.h" +#include "DS_ThreadsafeAllocatingQueue.h" + +#if OPEN_SSL_CLIENT_SUPPORT==1 +#include +#include +#include +#include +#include +#endif + +namespace RakNet +{ +/// Forward declarations +struct RemoteClient; + +/// \internal +/// \brief As the name says, a simple multithreaded TCP server. Used by TelnetTransport +class RAK_DLL_EXPORT TCPInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TCPInterface) + + TCPInterface(); + virtual ~TCPInterface(); + + /// Starts the TCP server on the indicated port + /// \param[in] port Which port to listen on. + /// \param[in] maxIncomingConnections Max incoming connections we will accept + /// \param[in] maxConnections Max total connections, which should be >= maxIncomingConnections + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \param[in] socketFamily IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + bool Start(unsigned short port, unsigned short maxIncomingConnections, unsigned short maxConnections=0, int _threadPriority=-99999, unsigned short socketFamily=AF_INET); + + /// Stops the TCP server + void Stop(void); + + /// Connect to the specified host on the specified port + SystemAddress Connect(const char* host, unsigned short remotePort, bool block=true, unsigned short socketFamily=AF_INET); + +#if OPEN_SSL_CLIENT_SUPPORT==1 + /// Start SSL on an existing connection, notified with HasCompletedConnectionAttempt + void StartSSLClient(SystemAddress systemAddress); + + /// Was SSL started on this socket? + bool IsSSLActive(SystemAddress systemAddress); +#endif + + /// Sends a byte stream + void Send( const char *data, unsigned int length, const SystemAddress &systemAddress, bool broadcast ); + + // Sends a concatenated list of byte streams + bool SendList( const char **data, const unsigned int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ); + + // Get how many bytes are waiting to be sent. If too many, you may want to skip sending + unsigned int GetOutgoingDataBufferSize(SystemAddress systemAddress) const; + + /// Returns if Receive() will return data + bool ReceiveHasPackets( void ); + + /// Returns data received + Packet* Receive( void ); + + /// Disconnects a player/address + void CloseConnection( SystemAddress systemAddress ); + + /// Deallocates a packet returned by Receive + void DeallocatePacket( Packet *packet ); + + /// Fills the array remoteSystems with the SystemAddress of all the systems we are connected to + /// \param[out] remoteSystems An array of SystemAddress structures to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to only get the number of systems we are connected to + /// \param[in, out] numberOfSystems As input, the size of remoteSystems array. As output, the number of elements put into the array + void GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const; + + /// Returns just the number of connections we have + unsigned short GetConnectionCount(void) const; + + /// Has a previous call to connect succeeded? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasCompletedConnectionAttempt(void); + + /// Has a previous call to connect failed? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasFailedConnectionAttempt(void); + + /// Queued events of new incoming connections + SystemAddress HasNewIncomingConnection(void); + + /// Queued events of lost connections + SystemAddress HasLostConnection(void); + + /// Return an allocated but empty packet, for custom use + Packet* AllocatePacket(unsigned dataSize); + + // Push a packet back to the queue + virtual void PushBackPacket( Packet *packet, bool pushAtHead ); + + static const char *Base64Map(void) {return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";} + + /// \brief Returns how many bytes were written. + static int Base64Encoding(const char *inputData, int dataLength, char *outputData); + + /// Returns if Start() was called successfully + bool WasStarted(void) const; + +protected: + + bool isStarted, threadRunning; + SOCKET listenSocket; + + DataStructures::Queue headPush, tailPush; + RemoteClient* remoteClients; + int remoteClientsLength; + + // Assuming remoteClients is only used by one thread! + // DataStructures::List remoteClients; + // Use this thread-safe queue to add to remoteClients + // DataStructures::Queue remoteClientsInsertionQueue; + // SimpleMutex remoteClientsInsertionQueueMutex; + + /* + struct OutgoingMessage + { + unsigned char* data; + SystemAddress systemAddress; + bool broadcast; + unsigned int length; + }; + */ +// DataStructures::SingleProducerConsumer outgoingMessages; +// DataStructures::SingleProducerConsumer incomingMessages; +// DataStructures::SingleProducerConsumer newIncomingConnections, lostConnections, requestedCloseConnections; +// DataStructures::SingleProducerConsumer newRemoteClients; +// DataStructures::ThreadsafeAllocatingQueue outgoingMessages; + DataStructures::ThreadsafeAllocatingQueue incomingMessages; + DataStructures::ThreadsafeAllocatingQueue newIncomingConnections, lostConnections, requestedCloseConnections; + DataStructures::ThreadsafeAllocatingQueue newRemoteClients; + SimpleMutex completedConnectionAttemptMutex, failedConnectionAttemptMutex; + DataStructures::Queue completedConnectionAttempts, failedConnectionAttempts; + + int threadPriority; + + DataStructures::List blockingSocketList; + SimpleMutex blockingSocketListMutex; + + + + + + friend RAK_THREAD_DECLARATION(UpdateTCPInterfaceLoop); + friend RAK_THREAD_DECLARATION(ConnectionAttemptLoop); + +// void DeleteRemoteClient(RemoteClient *remoteClient, fd_set *exceptionFD); +// void InsertRemoteClient(RemoteClient* remoteClient); + SOCKET SocketConnect(const char* host, unsigned short remotePort, unsigned short socketFamily); + + struct ThisPtrPlusSysAddr + { + TCPInterface *tcpInterface; + SystemAddress systemAddress; + bool useSSL; + unsigned short socketFamily; + }; + +#if OPEN_SSL_CLIENT_SUPPORT==1 + SSL_CTX* ctx; + SSL_METHOD *meth; + DataStructures::ThreadsafeAllocatingQueue startSSL; + DataStructures::List activeSSLConnections; + SimpleMutex sharedSslMutex; +#endif +}; + +/// Stores information about a remote client. +struct RemoteClient +{ + RemoteClient() { +#if OPEN_SSL_CLIENT_SUPPORT==1 + ssl=0; +#endif + isActive=false; + socket=INVALID_SOCKET; + } + SOCKET socket; + SystemAddress systemAddress; + DataStructures::ByteQueue outgoingData; + bool isActive; + SimpleMutex outgoingDataMutex; + SimpleMutex isActiveMutex; + +#if OPEN_SSL_CLIENT_SUPPORT==1 + SSL* ssl; + void InitSSL(SSL_CTX* ctx, SSL_METHOD *meth); + void DisconnectSSL(void); + void FreeSSL(void); + int Send(const char *data, unsigned int length); + int Recv(char *data, const int dataSize); +#else + int Send(const char *data, unsigned int length); + int Recv(char *data, const int dataSize); +#endif + void Reset(void) + { + outgoingDataMutex.Lock(); + outgoingData.Clear(_FILE_AND_LINE_); + outgoingDataMutex.Unlock(); + } + void SetActive(bool a); + void SendOrBuffer(const char **data, const unsigned int *lengths, const int numParameters); +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* + diff --git a/project/lib_projects/raknet/jni/RaknetSources/TableSerializer.cpp b/project/lib_projects/raknet/jni/RaknetSources/TableSerializer.cpp new file mode 100755 index 0000000..17b5373 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TableSerializer.cpp @@ -0,0 +1,320 @@ +#include "TableSerializer.h" +#include "DS_Table.h" +#include "BitStream.h" +#include "StringCompressor.h" +#include "RakAssert.h" + +using namespace RakNet; + +void TableSerializer::SerializeTable(DataStructures::Table *in, RakNet::BitStream *out) +{ + DataStructures::Page *cur = in->GetRows().GetListHead(); + const DataStructures::List &columns=in->GetColumns(); + SerializeColumns(in, out); + out->Write((unsigned)in->GetRows().Size()); + unsigned rowIndex; + while (cur) + { + for (rowIndex=0; rowIndex < (unsigned)cur->size; rowIndex++) + { + SerializeRow(cur->data[rowIndex], cur->keys[rowIndex], columns, out); + } + cur=cur->next; + } +} +void TableSerializer::SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out) +{ + const DataStructures::List &columns=in->GetColumns(); + out->Write((unsigned)columns.Size()); + unsigned i; + for (i=0; iEncodeString(columns[i].columnName, _TABLE_MAX_COLUMN_NAME_LENGTH, out); + out->Write((unsigned char)columns[i].columnType); + } +} +void TableSerializer::SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out, DataStructures::List &skipColumnIndices) +{ + const DataStructures::List &columns=in->GetColumns(); + out->Write((unsigned)columns.Size()-skipColumnIndices.Size()); + unsigned i; + for (i=0; iEncodeString(columns[i].columnName, _TABLE_MAX_COLUMN_NAME_LENGTH, out); + out->Write((unsigned char)columns[i].columnType); + } + } +} +bool TableSerializer::DeserializeTable(unsigned char *serializedTable, unsigned int dataLength, DataStructures::Table *out) +{ + RakNet::BitStream in((unsigned char*) serializedTable, dataLength, false); + return DeserializeTable(&in, out); +} +bool TableSerializer::DeserializeTable(RakNet::BitStream *in, DataStructures::Table *out) +{ + unsigned rowSize; + DeserializeColumns(in,out); + if (in->Read(rowSize)==false || rowSize>100000) + { + RakAssert(0); + return false; // Hacker crash prevention + } + + unsigned rowIndex; + for (rowIndex=0; rowIndex < rowSize; rowIndex++) + { + if (DeserializeRow(in, out)==false) + return false; + } + return true; +} +bool TableSerializer::DeserializeColumns(RakNet::BitStream *in, DataStructures::Table *out) +{ + unsigned columnSize; + unsigned char columnType; + char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]; + if (in->Read(columnSize)==false || columnSize > 10000) + return false; // Hacker crash prevention + + out->Clear(); + unsigned i; + for (i=0; iDecodeString(columnName, 32, in); + in->Read(columnType); + out->AddColumn(columnName, (DataStructures::Table::ColumnType)columnType); + } + return true; +} +void TableSerializer::SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out) +{ + unsigned cellIndex; + out->Write(keyIn); + unsigned int columnsSize = columns.Size(); + out->Write(columnsSize); + for (cellIndex=0; cellIndexWrite(cellIndex); + SerializeCell(out, in->cells[cellIndex], columns[cellIndex].columnType); + } +} +void TableSerializer::SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out, DataStructures::List &skipColumnIndices) +{ + unsigned cellIndex; + out->Write(keyIn); + unsigned int numEntries=0; + for (cellIndex=0; cellIndexWrite(numEntries); + + for (cellIndex=0; cellIndexWrite(cellIndex); + SerializeCell(out, in->cells[cellIndex], columns[cellIndex].columnType); + } + } +} +bool TableSerializer::DeserializeRow(RakNet::BitStream *in, DataStructures::Table *out) +{ + const DataStructures::List &columns=out->GetColumns(); + unsigned numEntries; + DataStructures::Table::Row *row; + unsigned key; + if (in->Read(key)==false) + return false; + row=out->AddRow(key); + unsigned int cnt; + in->Read(numEntries); + for (cnt=0; cntRead(cellIndex); + if (DeserializeCell(in, row->cells[cellIndex], columns[cellIndex].columnType)==false) + { + out->RemoveRow(key); + return false; + } + } + return true; +} +void TableSerializer::SerializeCell(RakNet::BitStream *out, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType) +{ + out->Write(cell->isEmpty); + if (cell->isEmpty==false) + { + if (columnType==DataStructures::Table::NUMERIC) + { + out->Write(cell->i); + } + else if (columnType==DataStructures::Table::STRING) + { + StringCompressor::Instance()->EncodeString(cell->c, 65535, out); + } + else if (columnType==DataStructures::Table::POINTER) + { + out->Write(cell->ptr); + } + else + { + // Binary + RakAssert(columnType==DataStructures::Table::BINARY); + RakAssert(cell->i>0); + unsigned binaryLength; + binaryLength=(unsigned)cell->i; + out->Write(binaryLength); + out->WriteAlignedBytes((const unsigned char*) cell->c, (const unsigned int) cell->i); + } + } +} +bool TableSerializer::DeserializeCell(RakNet::BitStream *in, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType) +{ + bool isEmpty=false; + double value; + void *ptr; + char tempString[65535]; + cell->Clear(); + + if (in->Read(isEmpty)==false) + return false; + if (isEmpty==false) + { + if (columnType==DataStructures::Table::NUMERIC) + { + if (in->Read(value)==false) + return false; + cell->Set(value); + } + else if (columnType==DataStructures::Table::STRING) + { + if (StringCompressor::Instance()->DecodeString(tempString, 65535, in)==false) + return false; + cell->Set(tempString); + } + else if (columnType==DataStructures::Table::POINTER) + { + if (in->Read(ptr)==false) + return false; + cell->SetPtr(ptr); + } + else + { + unsigned binaryLength; + // Binary + RakAssert(columnType==DataStructures::Table::BINARY); + if (in->Read(binaryLength)==false || binaryLength > 10000000) + return false; // Sanity check to max binary cell of 10 megabytes + in->AlignReadToByteBoundary(); + if (BITS_TO_BYTES(in->GetNumberOfUnreadBits())<(BitSize_t)binaryLength) + return false; + cell->Set((char*) in->GetData()+BITS_TO_BYTES(in->GetReadOffset()), (int) binaryLength); + in->IgnoreBits(BYTES_TO_BITS((int) binaryLength)); + } + } + return true; +} +void TableSerializer::SerializeFilterQuery(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query) +{ + StringCompressor::Instance()->EncodeString(query->columnName,_TABLE_MAX_COLUMN_NAME_LENGTH,in,0); + in->WriteCompressed(query->columnIndex); + in->Write((unsigned char) query->operation); + in->Write(query->cellValue->isEmpty); + if (query->cellValue->isEmpty==false) + { + in->Write(query->cellValue->i); + in->WriteAlignedBytesSafe((const char*)query->cellValue->c,(const unsigned int)query->cellValue->i,10000000); // Sanity check to max binary cell of 10 megabytes + in->Write(query->cellValue->ptr); + + } +} +bool TableSerializer::DeserializeFilterQuery(RakNet::BitStream *out, DataStructures::Table::FilterQuery *query) +{ + bool b; + RakAssert(query->cellValue); + StringCompressor::Instance()->DecodeString(query->columnName,_TABLE_MAX_COLUMN_NAME_LENGTH,out,0); + out->ReadCompressed(query->columnIndex); + unsigned char op; + out->Read(op); + query->operation=(DataStructures::Table::FilterQueryType) op; + query->cellValue->Clear(); + b=out->Read(query->cellValue->isEmpty); + if (query->cellValue->isEmpty==false) + { + // HACK - cellValue->i is used for integer, character, and binary data. However, for character and binary c will be 0. So use that to determine if the data was integer or not. + out->Read(query->cellValue->i); + unsigned int inputLength; + out->ReadAlignedBytesSafeAlloc(&query->cellValue->c,inputLength,10000000); // Sanity check to max binary cell of 10 megabytes + if (query->cellValue->c) + query->cellValue->i=inputLength; + b=out->Read(query->cellValue->ptr); + } + return b; +} +void TableSerializer::SerializeFilterQueryList(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query, unsigned int numQueries, unsigned int maxQueries) +{ + (void) maxQueries; + in->Write((bool)(query && numQueries>0)); + if (query==0 || numQueries<=0) + return; + + RakAssert(numQueries<=maxQueries); + in->WriteCompressed(numQueries); + unsigned i; + for (i=0; i < numQueries; i++) + { + SerializeFilterQuery(in, query); + } +} +bool TableSerializer::DeserializeFilterQueryList(RakNet::BitStream *out, DataStructures::Table::FilterQuery **query, unsigned int *numQueries, unsigned int maxQueries, int allocateExtraQueries) +{ + bool b, anyQueries=false; + out->Read(anyQueries); + if (anyQueries==false) + { + if (allocateExtraQueries<=0) + *query=0; + else + *query=new DataStructures::Table::FilterQuery[allocateExtraQueries]; + + *numQueries=0; + return true; + } + b=out->ReadCompressed(*numQueries); + if (*numQueries>maxQueries) + { + RakAssert(0); + *numQueries=maxQueries; + } + if (*numQueries==0) + return b; + + *query=new DataStructures::Table::FilterQuery[*numQueries+allocateExtraQueries]; + DataStructures::Table::FilterQuery *queryPtr = *query; + + unsigned i; + for (i=0; i < *numQueries; i++) + { + queryPtr[i].cellValue=new DataStructures::Table::Cell; + b=DeserializeFilterQuery(out, queryPtr+i); + } + + return b; +} +void TableSerializer::DeallocateQueryList(DataStructures::Table::FilterQuery *query, unsigned int numQueries) +{ + if (query==0 || numQueries==0) + return; + + unsigned i; + for (i=0; i < numQueries; i++) + RakNet::OP_DELETE(query[i].cellValue, _FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(query, _FILE_AND_LINE_); +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/TableSerializer.h b/project/lib_projects/raknet/jni/RaknetSources/TableSerializer.h new file mode 100755 index 0000000..fb15bf8 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TableSerializer.h @@ -0,0 +1,208 @@ +#ifndef __TABLE_SERIALIZER_H +#define __TABLE_SERIALIZER_H + +#include "RakMemoryOverride.h" +#include "DS_Table.h" +#include "Export.h" + +namespace RakNet +{ + class BitStream; +} + +namespace RakNet +{ + +class RAK_DLL_EXPORT TableSerializer +{ +public: + static void SerializeTable(DataStructures::Table *in, RakNet::BitStream *out); + static bool DeserializeTable(unsigned char *serializedTable, unsigned int dataLength, DataStructures::Table *out); + static bool DeserializeTable(RakNet::BitStream *in, DataStructures::Table *out); + static void SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out); + static void SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out, DataStructures::List &skipColumnIndices); + static bool DeserializeColumns(RakNet::BitStream *in, DataStructures::Table *out); + static void SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out); + static void SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out, DataStructures::List &skipColumnIndices); + static bool DeserializeRow(RakNet::BitStream *in, DataStructures::Table *out); + static void SerializeCell(RakNet::BitStream *out, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType); + static bool DeserializeCell(RakNet::BitStream *in, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType); + static void SerializeFilterQuery(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query); + // Note that this allocates query->cell->c! + static bool DeserializeFilterQuery(RakNet::BitStream *out, DataStructures::Table::FilterQuery *query); + static void SerializeFilterQueryList(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query, unsigned int numQueries, unsigned int maxQueries); + // Note that this allocates queries, cells, and query->cell->c!. Use DeallocateQueryList to free. + static bool DeserializeFilterQueryList(RakNet::BitStream *out, DataStructures::Table::FilterQuery **query, unsigned int *numQueries, unsigned int maxQueries, int allocateExtraQueries=0); + static void DeallocateQueryList(DataStructures::Table::FilterQuery *query, unsigned int numQueries); +}; + +} // namespace RakNet + +#endif + +// Test code for the table +/* +#include "LightweightDatabaseServer.h" +#include "LightweightDatabaseClient.h" +#include "TableSerializer.h" +#include "BitStream.h" +#include "StringCompressor.h" +#include "DS_Table.h" +void main(void) +{ + DataStructures::Table table; + DataStructures::Table::Row *row; + unsigned int dummydata=12345; + + // Add columns Name (string), IP (binary), score (int), and players (int). + table.AddColumn("Name", DataStructures::Table::STRING); + table.AddColumn("IP", DataStructures::Table::BINARY); + table.AddColumn("Score", DataStructures::Table::NUMERIC); + table.AddColumn("Players", DataStructures::Table::NUMERIC); + table.AddColumn("Empty Test Column", DataStructures::Table::STRING); + RakAssert(table.GetColumnCount()==5); + row=table.AddRow(0); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,5); + row->UpdateCell(3,10); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(1); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,5); + row->UpdateCell(3,15); + + row=table.AddRow(2); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,5); + row->UpdateCell(3,20); + + row=table.AddRow(3); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,15); + row->UpdateCell(3,5); + row->UpdateCell(4,"col index 4"); + + row=table.AddRow(4); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + //row->UpdateCell(2,25); + row->UpdateCell(3,30); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(5); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + //row->UpdateCell(2,25); + row->UpdateCell(3,5); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(6); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,35); + //row->UpdateCell(3,40); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(7); + RakAssert(row); + row->UpdateCell(0,"Bob Jenkins"); + + row=table.AddRow(8); + RakAssert(row); + row->UpdateCell(0,"Zack Jenkins"); + + // Test multi-column sorting + DataStructures::Table::Row *rows[30]; + DataStructures::Table::SortQuery queries[4]; + queries[0].columnIndex=0; + queries[0].operation=DataStructures::Table::QS_INCREASING_ORDER; + queries[1].columnIndex=1; + queries[1].operation=DataStructures::Table::QS_INCREASING_ORDER; + queries[2].columnIndex=2; + queries[2].operation=DataStructures::Table::QS_INCREASING_ORDER; + queries[3].columnIndex=3; + queries[3].operation=DataStructures::Table::QS_DECREASING_ORDER; + table.SortTable(queries, 4, rows); + unsigned i; + char out[256]; + RAKNET_DEBUG_PRINTF("Sort: Ascending except for column index 3\n"); + for (i=0; i < table.GetRowCount(); i++) + { + table.PrintRow(out,256,',',true, rows[i]); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + // Test query: + // Don't return column 3, and swap columns 0 and 2 + unsigned columnsToReturn[4]; + columnsToReturn[0]=2; + columnsToReturn[1]=1; + columnsToReturn[2]=0; + columnsToReturn[3]=4; + DataStructures::Table resultsTable; + table.QueryTable(columnsToReturn,4,0,0,&resultsTable); + RAKNET_DEBUG_PRINTF("Query: Don't return column 3, and swap columns 0 and 2:\n"); + for (i=0; i < resultsTable.GetRowCount(); i++) + { + resultsTable.PrintRow(out,256,',',true, resultsTable.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + // Test filter: + // Only return rows with column index 4 empty + DataStructures::Table::FilterQuery inclusionFilters[3]; + inclusionFilters[0].columnIndex=4; + inclusionFilters[0].operation=DataStructures::Table::QF_IS_EMPTY; + // inclusionFilters[0].cellValue; // Unused for IS_EMPTY + table.QueryTable(0,0,inclusionFilters,1,&resultsTable); + RAKNET_DEBUG_PRINTF("Filter: Only return rows with column index 4 empty:\n"); + for (i=0; i < resultsTable.GetRowCount(); i++) + { + resultsTable.PrintRow(out,256,',',true, resultsTable.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + // Column 5 empty and column 0 == Kevin Jenkins + inclusionFilters[0].columnIndex=4; + inclusionFilters[0].operation=DataStructures::Table::QF_IS_EMPTY; + inclusionFilters[1].columnIndex=0; + inclusionFilters[1].operation=DataStructures::Table::QF_EQUAL; + inclusionFilters[1].cellValue.Set("Kevin Jenkins"); + table.QueryTable(0,0,inclusionFilters,2,&resultsTable); + RAKNET_DEBUG_PRINTF("Filter: Column 5 empty and column 0 == Kevin Jenkins:\n"); + for (i=0; i < resultsTable.GetRowCount(); i++) + { + resultsTable.PrintRow(out,256,',',true, resultsTable.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + RakNet::BitStream bs; + RAKNET_DEBUG_PRINTF("PreSerialize:\n"); + for (i=0; i < table.GetRowCount(); i++) + { + table.PrintRow(out,256,',',true, table.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + StringCompressor::AddReference(); + TableSerializer::Serialize(&table, &bs); + TableSerializer::Deserialize(&bs, &table); + StringCompressor::RemoveReference(); + RAKNET_DEBUG_PRINTF("PostDeserialize:\n"); + for (i=0; i < table.GetRowCount(); i++) + { + table.PrintRow(out,256,',',true, table.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + int a=5; +} +*/ diff --git a/project/lib_projects/raknet/jni/RaknetSources/TeamBalancer.cpp b/project/lib_projects/raknet/jni/RaknetSources/TeamBalancer.cpp new file mode 100755 index 0000000..1c1eb0d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TeamBalancer.cpp @@ -0,0 +1,874 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TeamBalancer==1 + +#include "TeamBalancer.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "Rand.h" + +using namespace RakNet; + +enum TeamBalancerOperations +{ + ID_STATUS_UPDATE_TO_NEW_HOST, + ID_CANCEL_TEAM_REQUEST, + ID_REQUEST_ANY_TEAM, + ID_REQUEST_SPECIFIC_TEAM +}; + +STATIC_FACTORY_DEFINITIONS(TeamBalancer,TeamBalancer); + +TeamBalancer::TeamBalancer() +{ + defaultAssigmentAlgorithm=SMALLEST_TEAM; + forceTeamsToBeEven=false; + lockTeams=false; + hostGuid=UNASSIGNED_RAKNET_GUID; +} +TeamBalancer::~TeamBalancer() +{ + +} +void TeamBalancer::SetTeamSizeLimit(TeamId team, unsigned short limit) +{ + teamLimits.Replace(limit,0,team,_FILE_AND_LINE_); + if (teamLimits.Size() > teamMemberCounts.Size()) + teamMemberCounts.Replace(0,0,teamLimits.Size()-1,_FILE_AND_LINE_); +} +void TeamBalancer::SetDefaultAssignmentAlgorithm(DefaultAssigmentAlgorithm daa) +{ + // Just update the default. Currently active teams are not affected. + defaultAssigmentAlgorithm=daa; +} +void TeamBalancer::SetForceEvenTeams(bool force) +{ + // Set flag to indicate that teams should be even. + forceTeamsToBeEven=force; + + // If teams are locked, just return. + if (lockTeams==true) + return; + + if (forceTeamsToBeEven==true) + { + // Run the even team algorithm + EvenTeams(); + } +} +void TeamBalancer::SetLockTeams(bool lock) +{ + if (lock==lockTeams) + return; + + // Set flag to indicate that teams can no longer be changed. + lockTeams=lock; + + // If lock is false, and teams were set to be forced as even, then run through the even team algorithm + if (lockTeams==false) + { + // Process even swaps + TeamId i,j; + for (i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].requestedTeam!=UNASSIGNED_TEAM_ID) + { + for (j=i+1; j < teamMembers.Size(); j++) + { + if (teamMembers[j].requestedTeam==teamMembers[i].currentTeam && + teamMembers[i].requestedTeam==teamMembers[j].currentTeam) + { + SwapTeamMembersByRequest(i,j); + NotifyTeamAssigment(i); + NotifyTeamAssigment(j); + } + } + } + } + + if (forceTeamsToBeEven==true) + { + EvenTeams(); + } + else + { + // Process requested team changes + // Process movement while not full + for (i=0; i < teamMembers.Size(); i++) + { + TeamId requestedTeam = teamMembers[i].requestedTeam; + if (requestedTeam!=UNASSIGNED_TEAM_ID) + { + if (teamMemberCounts[requestedTeam]Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); +} +void TeamBalancer::CancelRequestSpecificTeam(NetworkID memberId) +{ + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + myTeamMembers[i].requestedTeam=UNASSIGNED_TEAM_ID; + + // Send packet to the host to remove our request flag. + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_INTERNAL); + bsOut.Write((MessageID)ID_CANCEL_TEAM_REQUEST); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); + + return; + } + } +} +void TeamBalancer::RequestAnyTeam(NetworkID memberId) +{ + bool foundMatch=false; + + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + foundMatch=true; + if (myTeamMembers[i].currentTeam!=UNASSIGNED_TEAM_ID) + return; + else + myTeamMembers[i].requestedTeam=UNASSIGNED_TEAM_ID; + break; + } + } + + if (foundMatch==false) + { + MyTeamMembers mtm; + mtm.currentTeam=UNASSIGNED_TEAM_ID; + mtm.memberId=memberId; + mtm.requestedTeam=UNASSIGNED_TEAM_ID; + myTeamMembers.Push(mtm, _FILE_AND_LINE_); + } + + // Else send to the current host that we need a team. + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_INTERNAL); + bsOut.Write((MessageID)ID_REQUEST_ANY_TEAM); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); +} +TeamId TeamBalancer::GetMyTeam(NetworkID memberId) const +{ + // Return team returned by last ID_TEAM_BALANCER_TEAM_ASSIGNED packet + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + return myTeamMembers[i].currentTeam; + } + } + + return UNASSIGNED_TEAM_ID; +} +void TeamBalancer::DeleteMember(NetworkID memberId) +{ + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + myTeamMembers.RemoveAtIndexFast(i); + break; + } + } + + for (unsigned int i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].memberId==memberId) + { + RemoveTeamMember(i); + break; + } + } +} +PluginReceiveResult TeamBalancer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_FCM2_NEW_HOST: + { + hostGuid=packet->guid; + + if (myTeamMembers.Size()>0) + { + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_INTERNAL); + bsOut.Write((MessageID)ID_STATUS_UPDATE_TO_NEW_HOST); + + bsOut.WriteCasted(myTeamMembers.Size()); + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + bsOut.Write(myTeamMembers[i].memberId); + bsOut.Write(myTeamMembers[i].currentTeam); + bsOut.Write(myTeamMembers[i].requestedTeam); + } + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); + } + } + break; + case ID_TEAM_BALANCER_INTERNAL: + { + if (packet->length>=2) + { + switch (packet->data[1]) + { + case ID_STATUS_UPDATE_TO_NEW_HOST: + OnStatusUpdateToNewHost(packet); + break; + case ID_CANCEL_TEAM_REQUEST: + OnCancelTeamRequest(packet); + break; + case ID_REQUEST_ANY_TEAM: + OnRequestAnyTeam(packet); + break; + case ID_REQUEST_SPECIFIC_TEAM: + OnRequestSpecificTeam(packet); + break; + } + } + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + case ID_TEAM_BALANCER_TEAM_ASSIGNED: + { + return OnTeamAssigned(packet); + } + + case ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING: + { + return OnRequestedTeamChangePending(packet); + } + + case ID_TEAM_BALANCER_TEAMS_LOCKED: + { + return OnTeamsLocked(packet); + } + } + + // Got RequestSpecificTeam + // If teams are locked + // - If this user already has a team, return ID_TEAM_BALANCER_TEAMS_LOCKED + // - This user does not already have a team. Assign a team as if the user called RequestAnyTeam(), with a preference for the requested team. Return ID_TEAM_BALANCER_TEAM_ASSIGNED once the team has been assigned. + // If teams are not locked + // - If even team balancing is on, only assign this user if this would not cause teams to be unbalanced. If teams WOULD be unbalanced, then flag this user as wanting to join this team. Return ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING + // - If the destination team is full, flag this user as wanting to join this team. Return ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING + // - Else, join this team. Return ID_TEAM_BALANCER_TEAM_ASSIGNED + + // Got RequestAnyTeam + // Put user on a team following the algorithm. No team is set as preferred. + + return RR_CONTINUE_PROCESSING; +} +void TeamBalancer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) systemAddress; + (void) lostConnectionReason; + + RemoveByGuid(rakNetGUID); +} +void TeamBalancer::OnAttach(void) +{ + hostGuid = rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +void TeamBalancer::RemoveByGuid(RakNetGUID rakNetGUID) +{ + // If we are the host, and the closed connection has a team, and teams are not locked: + if (WeAreHost()) + { + unsigned int droppedMemberIndex=0; + while (droppedMemberIndex < teamMembers.Size()) + { + if (teamMembers[droppedMemberIndex].memberGuid==rakNetGUID) + { + TeamId droppedTeam = teamMembers[droppedMemberIndex].currentTeam; + RemoveTeamMember(droppedMemberIndex); + if (lockTeams==false) + { + if (forceTeamsToBeEven) + { + // - teams were forced to be even, then run the even team algorithm + EvenTeams(); + } + else + { + // - teams were NOT forced to be even, and the team the dropped player on was full, then move users wanting to join that team (if any) + if (teamMemberCounts[ droppedTeam ]==teamLimits[ droppedTeam ]-1) + { + MoveMemberThatWantsToJoinTeam(droppedTeam); + } + } + } + } + else + { + droppedMemberIndex++; + } + } + } +} +void TeamBalancer::OnStatusUpdateToNewHost(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + uint8_t requestedTeamChangeListSize; + bsIn.Read(requestedTeamChangeListSize); + TeamMember tm; + tm.memberGuid=packet->guid; + for (uint8_t i=0; i < requestedTeamChangeListSize; i++) + { + bsIn.Read(tm.memberId); + bsIn.Read(tm.currentTeam); + bsIn.Read(tm.requestedTeam); + + if (tm.currentTeam!=UNASSIGNED_TEAM_ID && tm.currentTeam>teamLimits.Size()) + { + RakAssert("Current team out of range in TeamBalancer::OnStatusUpdateToNewHost" && 0); + return; + } + + if (tm.requestedTeam!=UNASSIGNED_TEAM_ID && tm.requestedTeam>teamLimits.Size()) + { + RakAssert("Requested team out of range in TeamBalancer::OnStatusUpdateToNewHost" && 0); + return; + } + + if (tm.currentTeam==UNASSIGNED_TEAM_ID && tm.requestedTeam==UNASSIGNED_TEAM_ID) + return; + + unsigned int memberIndex = GetMemberIndex(tm.memberId, packet->guid); + if (memberIndex==(unsigned int) -1) + { + // Add this system (by GUID) to the list of members if he is not already there + // Also update his requested team flag. + // Do not process balancing on requested teams, since we don't necessarily have all data from all systems yet and hopefully the state during the host migration was stable. + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + // Assign a default team, then add team member + if (tm.requestedTeam==UNASSIGNED_TEAM_ID) + { + // Assign a default team + tm.currentTeam=GetNextDefaultTeam(); + } + else + { + // Assign to requested team if possible. Otherwise, assign to a default team + if (TeamWouldBeOverpopulatedOnAddition(tm.requestedTeam, teamMembers.Size())==false) + { + tm.currentTeam=tm.requestedTeam; + } + else + { + tm.currentTeam=GetNextDefaultTeam(); + } + } + } + + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + RakAssert("Too many members asking for teams!" && 0); + return; + } + NotifyTeamAssigment(AddTeamMember(tm)); + } + } +} +void TeamBalancer::OnCancelTeamRequest(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + NetworkID memberId; + bsIn.Read(memberId); + + unsigned int memberIndex = GetMemberIndex(memberId, packet->guid); + if (memberIndex!=(unsigned int)-1) + teamMembers[memberIndex].requestedTeam=UNASSIGNED_TEAM_ID; +} +void TeamBalancer::OnRequestAnyTeam(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + NetworkID memberId; + bsIn.Read(memberId); + + unsigned int memberIndex = GetMemberIndex(memberId, packet->guid); + if (memberIndex==(unsigned int)-1) + { + TeamMember tm; + tm.currentTeam=GetNextDefaultTeam(); + tm.requestedTeam=UNASSIGNED_TEAM_ID; + tm.memberGuid=packet->guid; + tm.memberId=memberId; + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + RakAssert("Too many members asking for teams!" && 0); + return; + } + NotifyTeamAssigment(AddTeamMember(tm)); + } +} +void TeamBalancer::OnRequestSpecificTeam(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + TeamMember tm; + bsIn.Read(tm.memberId); + bsIn.Read(tm.requestedTeam); + + unsigned int memberIndex = GetMemberIndex(tm.memberId, packet->guid); + if (tm.requestedTeam==UNASSIGNED_TEAM_ID) + { + NotifyNoTeam(tm.memberId, packet->guid); + RemoveTeamMember(memberIndex); + return; + } + + if (tm.requestedTeam>teamLimits.Size()) + { + RakAssert("Requested team out of range in TeamBalancer::OnRequestSpecificTeam" && 0); + return; + } + if (memberIndex==(unsigned int) -1) + { + tm.memberGuid=packet->guid; + + // Assign to requested team if possible. Otherwise, assign to a default team + if (TeamWouldBeOverpopulatedOnAddition(tm.requestedTeam, teamMembers.Size())==false) + { + tm.currentTeam=tm.requestedTeam; + tm.requestedTeam=UNASSIGNED_TEAM_ID; + } + else + { + tm.currentTeam=GetNextDefaultTeam(); + } + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + RakAssert("Too many members asking for teams!" && 0); + return; + } + NotifyTeamAssigment(AddTeamMember(tm)); + } + else + { + teamMembers[memberIndex].requestedTeam=tm.requestedTeam; + TeamId oldTeamThisUserWasOn = teamMembers[memberIndex].currentTeam; + + if (lockTeams) + { + NotifyTeamsLocked(packet->guid, tm.requestedTeam); + return; + } + + // Assign to requested team if possible. Otherwise, assign to a default team + if (TeamsWouldBeEvenOnSwitch(tm.requestedTeam,oldTeamThisUserWasOn)==true) + { + SwitchMemberTeam(memberIndex,tm.requestedTeam); + NotifyTeamAssigment(memberIndex); + } + else + { + // If someone wants to join this user's old team, and we want to join their team, they can swap + unsigned int swappableMemberIndex; + for (swappableMemberIndex=0; swappableMemberIndex < teamMembers.Size(); swappableMemberIndex++) + { + if (teamMembers[swappableMemberIndex].currentTeam==tm.requestedTeam && teamMembers[swappableMemberIndex].requestedTeam==oldTeamThisUserWasOn) + break; + } + + if (swappableMemberIndex!=teamMembers.Size()) + { + SwapTeamMembersByRequest(memberIndex,swappableMemberIndex); + NotifyTeamAssigment(memberIndex); + NotifyTeamAssigment(swappableMemberIndex); + } + else + { + // Full or would not be even + NotifyTeamSwitchPending(packet->guid, tm.requestedTeam, tm.memberId); + } + } + } +} +unsigned int TeamBalancer::GetMemberIndex(NetworkID memberId, RakNetGUID guid) const +{ + for (unsigned int i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].memberGuid==guid && teamMembers[i].memberId==memberId) + return i; + } + return (unsigned int) -1; +} +unsigned int TeamBalancer::AddTeamMember(const TeamMember &tm) +{ + if (tm.currentTeam>teamLimits.Size()) + { + RakAssert("TeamBalancer::AddTeamMember team index out of bounds" && 0); + return (unsigned int) -1; + } + + RakAssert(tm.currentTeam!=UNASSIGNED_TEAM_ID); + + teamMembers.Push(tm,_FILE_AND_LINE_); + if (teamMemberCounts.Size() overpopulatedTeams; + TeamId teamMemberCountsIndex; + unsigned int memberIndexToSwitch; + for (teamMemberCountsIndex=0; teamMemberCountsIndex0); + memberIndexToSwitch=GetMemberIndexToSwitchTeams(overpopulatedTeams,teamMemberCountsIndex); + RakAssert(memberIndexToSwitch!=(unsigned int)-1); + SwitchMemberTeam(memberIndexToSwitch,teamMemberCountsIndex); + // Tell this member he switched teams + NotifyTeamAssigment(memberIndexToSwitch); + } + } +} +unsigned int TeamBalancer::GetMemberIndexToSwitchTeams(const DataStructures::List &sourceTeamNumbers, TeamId targetTeamNumber) +{ + DataStructures::List preferredSwapIndices; + DataStructures::List potentialSwapIndices; + unsigned int i,j; + for (j=0; j < sourceTeamNumbers.Size(); j++) + { + RakAssert(sourceTeamNumbers[j]!=targetTeamNumber); + for (i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].currentTeam==sourceTeamNumbers[j]) + { + if (teamMembers[i].requestedTeam==targetTeamNumber) + preferredSwapIndices.Push(i,_FILE_AND_LINE_); + else + potentialSwapIndices.Push(i,_FILE_AND_LINE_); + } + } + } + + if (preferredSwapIndices.Size()>0) + { + return preferredSwapIndices[ randomMT() % preferredSwapIndices.Size() ]; + } + else if (potentialSwapIndices.Size()>0) + { + return potentialSwapIndices[ randomMT() % potentialSwapIndices.Size() ]; + } + else + { + return (unsigned int) -1; + } +} +void TeamBalancer::SwitchMemberTeam(unsigned int teamMemberIndex, TeamId destinationTeam) +{ + teamMemberCounts[ teamMembers[teamMemberIndex].currentTeam ]=teamMemberCounts[ teamMembers[teamMemberIndex].currentTeam ]-1; + teamMemberCounts[ destinationTeam ]=teamMemberCounts[ destinationTeam ]+1; + teamMembers[teamMemberIndex].currentTeam=destinationTeam; + if (teamMembers[teamMemberIndex].requestedTeam==destinationTeam) + teamMembers[teamMemberIndex].requestedTeam=UNASSIGNED_TEAM_ID; +} +void TeamBalancer::GetOverpopulatedTeams(DataStructures::List &overpopulatedTeams, int maxTeamSize) +{ + overpopulatedTeams.Clear(true,_FILE_AND_LINE_); + for (TeamId i=0; i < teamMemberCounts.Size(); i++) + { + if (teamMemberCounts[i]>=maxTeamSize) + overpopulatedTeams.Push(i,_FILE_AND_LINE_); + } +} +void TeamBalancer::NotifyTeamAssigment(unsigned int teamMemberIndex) +{ + RakAssert(teamMemberIndex < teamMembers.Size()); + if (teamMemberIndex>=teamMembers.Size()) + return; + + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_TEAM_ASSIGNED); + bsOut.Write(teamMembers[teamMemberIndex].currentTeam); + bsOut.Write(teamMembers[teamMemberIndex].memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,teamMembers[teamMemberIndex].memberGuid,false); +} +bool TeamBalancer::WeAreHost(void) const +{ + return hostGuid==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +PluginReceiveResult TeamBalancer::OnTeamAssigned(Packet *packet) +{ + if (packet->guid!=hostGuid) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(1); + + MyTeamMembers mtm; + bsIn.Read(mtm.currentTeam); + bsIn.Read(mtm.memberId); + mtm.requestedTeam=UNASSIGNED_TEAM_ID; + + bool foundMatch=false; + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==mtm.memberId) + { + foundMatch=true; + if (myTeamMembers[i].requestedTeam==mtm.currentTeam) + myTeamMembers[i].requestedTeam=UNASSIGNED_TEAM_ID; + myTeamMembers[i].currentTeam=mtm.currentTeam; + break; + } + } + + if (foundMatch==false) + { + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} +PluginReceiveResult TeamBalancer::OnRequestedTeamChangePending(Packet *packet) +{ + if (packet->guid!=hostGuid) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + return RR_CONTINUE_PROCESSING; +} +PluginReceiveResult TeamBalancer::OnTeamsLocked(Packet *packet) +{ + if (packet->guid!=hostGuid) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + return RR_CONTINUE_PROCESSING; +} +TeamId TeamBalancer::GetNextDefaultTeam(void) +{ + // Accounting for team balancing and team limits, get the team a player should be placed on + switch (defaultAssigmentAlgorithm) + { + case SMALLEST_TEAM: + { + return GetSmallestNonFullTeam(); + } + + case FILL_IN_ORDER: + { + return GetFirstNonFullTeam(); + } + + default: + { + RakAssert("TeamBalancer::GetNextDefaultTeam unknown algorithm enumeration" && 0); + return UNASSIGNED_TEAM_ID; + } + } +} +bool TeamBalancer::TeamWouldBeOverpopulatedOnAddition(TeamId teamId, unsigned int teamMemberSize) +{ + // Accounting for team balancing and team limits, would this team be overpopulated if a member was added to it? + if (teamMemberCounts[teamId]>=teamLimits[teamId]) + { + return true; + } + + if (forceTeamsToBeEven) + { + int allowedLimit = teamMemberSize/teamLimits.Size() + 1; + return teamMemberCounts[teamId]>=allowedLimit; + } + + return false; +} +bool TeamBalancer::TeamWouldBeUnderpopulatedOnLeave(TeamId teamId, unsigned int teamMemberSize) +{ + if (forceTeamsToBeEven) + { + unsigned int minMembersOnASingleTeam = (teamMemberSize-1)/teamLimits.Size(); + return teamMemberCounts[teamId]<=minMembersOnASingleTeam; + } + return false; +} +TeamId TeamBalancer::GetSmallestNonFullTeam(void) const +{ + TeamId idx; + unsigned long smallestTeamCount=MAX_UNSIGNED_LONG; + TeamId smallestTeamIndex = UNASSIGNED_TEAM_ID; + for (idx=0; idx < teamMemberCounts.Size(); idx++) + { + if (teamMemberCounts[idx] membersThatWantToJoinTheTeam; + for (TeamId i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].requestedTeam==teamId) + membersThatWantToJoinTheTeam.Push(i,_FILE_AND_LINE_); + } + + if (membersThatWantToJoinTheTeam.Size()>0) + { + TeamId oldTeam; + unsigned int swappedMemberIndex = membersThatWantToJoinTheTeam[ randomMT() % membersThatWantToJoinTheTeam.Size() ]; + oldTeam=teamMembers[swappedMemberIndex].currentTeam; + SwitchMemberTeam(swappedMemberIndex,teamId); + NotifyTeamAssigment(swappedMemberIndex); + return oldTeam; + } + return UNASSIGNED_TEAM_ID; +} +void TeamBalancer::NotifyTeamsLocked(RakNetGUID target, TeamId requestedTeam) +{ + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_TEAMS_LOCKED); + bsOut.Write(requestedTeam); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,target,false); +} +void TeamBalancer::NotifyTeamSwitchPending(RakNetGUID target, TeamId requestedTeam, NetworkID memberId) +{ + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING); + bsOut.Write(requestedTeam); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,target,false); +} +void TeamBalancer::SwapTeamMembersByRequest(unsigned int memberIndex1, unsigned int memberIndex2) +{ + TeamId index1Team = teamMembers[memberIndex1].currentTeam; + teamMembers[memberIndex1].currentTeam=teamMembers[memberIndex2].currentTeam; + teamMembers[memberIndex2].currentTeam=index1Team; + teamMembers[memberIndex1].requestedTeam=UNASSIGNED_TEAM_ID; + teamMembers[memberIndex2].requestedTeam=UNASSIGNED_TEAM_ID; +} +void TeamBalancer::NotifyNoTeam(NetworkID memberId, RakNetGUID target) +{ + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_TEAM_ASSIGNED); + bsOut.Write((unsigned char)UNASSIGNED_TEAM_ID); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,target,false); +} +bool TeamBalancer::TeamsWouldBeEvenOnSwitch(TeamId t1, TeamId t2) +{ + RakAssert(teamMembers.Size()!=0); + return TeamWouldBeOverpopulatedOnAddition(t1, teamMembers.Size()-1)==false && + TeamWouldBeUnderpopulatedOnLeave(t2, teamMembers.Size()-1)==false; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/TeamBalancer.h b/project/lib_projects/raknet/jni/RaknetSources/TeamBalancer.h new file mode 100755 index 0000000..1776aca --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TeamBalancer.h @@ -0,0 +1,194 @@ +/// \file TeamBalancer.h +/// \brief Set and network team selection (supports peer to peer or client/server) +/// \details Automatically handles transmission and resolution of team selection, including team switching and balancing +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TeamBalancer==1 + +#ifndef __TEAM_BALANCER_H +#define __TEAM_BALANCER_H + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "DS_List.h" +#include "RakString.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \defgroup TEAM_BALANCER_GROUP TeamBalancer +/// \brief Set and network team selection (supports peer to peer or client/server) +/// \details Automatically handles transmission and resolution of team selection, including team switching and balancing +/// \ingroup PLUGINS_GROUP + +/// 0...254 for your team number identifiers. 255 is reserved as undefined. +/// \ingroup TEAM_BALANCER_GROUP +typedef unsigned char TeamId; + +#define UNASSIGNED_TEAM_ID 255 + +/// \brief Set and network team selection (supports peer to peer or client/server) +/// \details Automatically handles transmission and resolution of team selection, including team switching and balancing.
    +/// Usage: TODO +/// \ingroup TEAM_BALANCER_GROUP +class RAK_DLL_EXPORT TeamBalancer : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TeamBalancer) + + TeamBalancer(); + virtual ~TeamBalancer(); + + /// \brief Set the limit to the number of players on the specified team + /// \details SetTeamSizeLimit() must be called on the host, so the host can enforce the maximum number of players on each team. + /// SetTeamSizeLimit() can be called on all systems if desired - for example, in a P2P environment you may wish to call it on all systems in advanced in case you become host. + /// \param[in] team Which team to set the limit for + /// \param[in] limit The maximum number of people on this team + void SetTeamSizeLimit(TeamId team, unsigned short limit); + + enum DefaultAssigmentAlgorithm + { + /// Among all the teams, join the team with the smallest number of players + SMALLEST_TEAM, + /// Join the team with the lowest index that has open slots. + FILL_IN_ORDER + }; + /// \brief Determine how players' teams will be set when they call RequestAnyTeam() + /// \details Based on the specified enumeration, a player will join a team automatically + /// Defaults to SMALLEST_TEAM + /// This function is only used by the host + /// \param[in] daa Enumeration describing the algorithm to use + void SetDefaultAssignmentAlgorithm(DefaultAssigmentAlgorithm daa); + + /// \brief By default, teams can be unbalanced up to the team size limit defined by SetTeamSizeLimits() + /// \details If SetForceEvenTeams(true) is called on the host, then teams cannot be unbalanced by more than 1 player + /// If teams are uneven at the time that SetForceEvenTeams(true) is called, players at randomly will be switched, and will be notified of ID_TEAM_BALANCER_TEAM_ASSIGNED + /// If players disconnect from the host such that teams would not be even, and teams are not locked, then a player from the largest team is randomly moved to even the teams. + /// Defaults to false + /// \note SetLockTeams(true) takes priority over SetForceEvenTeams(), so if teams are currently locked, this function will have no effect until teams become unlocked. + /// \param[in] force True to force even teams. False to allow teams to not be evenly matched + void SetForceEvenTeams(bool force); + + /// \brief If set, calls to RequestSpecificTeam() and RequestAnyTeam() will return the team you are currently on. + /// \details However, if those functions are called and you do not have a team, then you will be assigned to a default team according to SetDefaultAssignmentAlgorithm() and possibly SetForceEvenTeams(true) + /// If \a lock is false, and SetForceEvenTeams() was called with \a force as true, and teams are currently uneven, they will be made even, and those players randomly moved will get ID_TEAM_BALANCER_TEAM_ASSIGNED + /// Defaults to false + /// \param[in] lock True to lock teams, false to unlock + void SetLockTeams(bool lock); + + /// Set your requested team. UNASSIGNED_TEAM_ID means no team. + /// After enough time for network communication, ID_TEAM_BALANCER_SET_TEAM will be returned with your current team, or + /// If team switch is not possible, ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING or ID_TEAM_BALANCER_TEAMS_LOCKED will be returned. + /// In the case of ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING the request will stay in memory. ID_TEAM_BALANCER_SET_TEAM will be returned when someone on the desired team leaves or wants to switch to your team. + /// If SetLockTeams(true) is called while you have a request pending, you will get ID_TEAM_BALANCER_TEAMS_LOCKED + /// \pre Call SetTeamSizeLimits() on the host and call SetHostGuid() on this system. If the host is not running the TeamBalancer plugin or did not have SetTeamSizeLimits() called, then you will not get any response. + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + /// \param[in] desiredTeam An index representing your team number. The index should range from 0 to one less than the size of the list passed to SetTeamSizeLimits() on the host. You can also pass UNASSIGNED_TEAM_ID to not be on any team (such as if spectating) + void RequestSpecificTeam(NetworkID memberId, TeamId desiredTeam); + + /// If ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING is returned after a call to RequestSpecificTeam(), the request will stay in memory on the host and execute when available, or until the teams become locked. + /// You can cancel the request by calling CancelRequestSpecificTeam(), in which case you will stay on your existing team. + /// \note Due to latency, even after calling CancelRequestSpecificTeam() you may still get ID_TEAM_BALANCER_SET_TEAM if the packet was already in transmission. + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + void CancelRequestSpecificTeam(NetworkID memberId); + + /// Allow host to pick your team, based on whatever algorithm it uses for default team assignments. + /// This only has an effect if you are not currently on a team (GetMyTeam() returns UNASSIGNED_TEAM_ID) + /// \pre Call SetTeamSizeLimits() on the host and call SetHostGuid() on this system + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + void RequestAnyTeam(NetworkID memberId); + + /// Returns your team. + /// As your team changes, you are notified through the ID_TEAM_BALANCER_TEAM_ASSIGNED packet in byte 1. + /// Returns UNASSIGNED_TEAM_ID initially + /// \pre For this to return anything other than UNASSIGNED_TEAM_ID, connect to a properly initialized host and RequestSpecificTeam() or RequestAnyTeam() first + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + /// \return UNASSIGNED_TEAM_ID for no team. Otherwise, the index should range from 0 to one less than the size of the list passed to SetTeamSizeLimits() on the host + TeamId GetMyTeam(NetworkID memberId) const; + + /// If you called RequestSpecificTeam() or RequestAnyTeam() with a value for \a memberId that + /// Has since been deleted, call DeleteMember(). to notify this plugin of that event. + /// Not necessary with only one team member per system + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + void DeleteMember(NetworkID memberId); + + struct TeamMember + { + RakNetGUID memberGuid; + NetworkID memberId; + TeamId currentTeam; + TeamId requestedTeam; + }; + struct MyTeamMembers + { + NetworkID memberId; + TeamId currentTeam; + TeamId requestedTeam; + }; + +protected: + + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + void OnAttach(void); + + void OnStatusUpdateToNewHost(Packet *packet); + void OnCancelTeamRequest(Packet *packet); + void OnRequestAnyTeam(Packet *packet); + void OnRequestSpecificTeam(Packet *packet); + + RakNetGUID hostGuid; + DefaultAssigmentAlgorithm defaultAssigmentAlgorithm; + bool forceTeamsToBeEven; + bool lockTeams; + // So if we lose the connection while processing, we request the same info of the new host + DataStructures::List myTeamMembers; + + DataStructures::List teamLimits; + DataStructures::List teamMemberCounts; + DataStructures::List teamMembers; + unsigned int GetMemberIndex(NetworkID memberId, RakNetGUID guid) const; + unsigned int AddTeamMember(const TeamMember &tm); // Returns index of new member + void RemoveTeamMember(unsigned int index); + void EvenTeams(void); + unsigned int GetMemberIndexToSwitchTeams(const DataStructures::List &sourceTeamNumbers, TeamId targetTeamNumber); + void GetOverpopulatedTeams(DataStructures::List &overpopulatedTeams, int maxTeamSize); + void SwitchMemberTeam(unsigned int teamMemberIndex, TeamId destinationTeam); + void NotifyTeamAssigment(unsigned int teamMemberIndex); + bool WeAreHost(void) const; + PluginReceiveResult OnTeamAssigned(Packet *packet); + PluginReceiveResult OnRequestedTeamChangePending(Packet *packet); + PluginReceiveResult OnTeamsLocked(Packet *packet); + void GetMinMaxTeamMembers(int &minMembersOnASingleTeam, int &maxMembersOnASingleTeam); + TeamId GetNextDefaultTeam(void); // Accounting for team balancing and team limits, get the team a player should be placed on + bool TeamWouldBeOverpopulatedOnAddition(TeamId teamId, unsigned int teamMemberSize); // Accounting for team balancing and team limits, would this team be overpopulated if a member was added to it? + bool TeamWouldBeUnderpopulatedOnLeave(TeamId teamId, unsigned int teamMemberSize); + TeamId GetSmallestNonFullTeam(void) const; + TeamId GetFirstNonFullTeam(void) const; + void MoveMemberThatWantsToJoinTeam(TeamId teamId); + TeamId MoveMemberThatWantsToJoinTeamInternal(TeamId teamId); + void NotifyTeamsLocked(RakNetGUID target, TeamId requestedTeam); + void NotifyTeamSwitchPending(RakNetGUID target, TeamId requestedTeam, NetworkID memberId); + void NotifyNoTeam(NetworkID memberId, RakNetGUID target); + void SwapTeamMembersByRequest(unsigned int memberIndex1, unsigned int memberIndex2); + void RemoveByGuid(RakNetGUID rakNetGUID); + bool TeamsWouldBeEvenOnSwitch(TeamId t1, TeamId t2); + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/TelnetTransport.cpp b/project/lib_projects/raknet/jni/RaknetSources/TelnetTransport.cpp new file mode 100755 index 0000000..cc20897 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TelnetTransport.cpp @@ -0,0 +1,364 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "TelnetTransport.h" +#include "TCPInterface.h" +#include +#include +#include +#include "LinuxStrings.h" + +// #define _PRINTF_DEBUG + +#define ECHO_INPUT + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(TelnetTransport,TelnetTransport); + +TelnetTransport::TelnetTransport() +{ + tcpInterface=0; + sendSuffix=0; + sendPrefix=0; +} +TelnetTransport::~TelnetTransport() +{ + Stop(); + if (sendSuffix) + rakFree_Ex(sendSuffix, _FILE_AND_LINE_ ); + if (sendPrefix) + rakFree_Ex(sendPrefix, _FILE_AND_LINE_ ); +} +bool TelnetTransport::Start(unsigned short port, bool serverMode) +{ + (void) serverMode; + AutoAllocate(); + RakAssert(serverMode); + return tcpInterface->Start(port, 64); +} +void TelnetTransport::Stop(void) +{ + if (tcpInterface==0) return; + tcpInterface->Stop(); + unsigned i; + for (i=0; i < remoteClients.Size(); i++) + RakNet::OP_DELETE(remoteClients[i], _FILE_AND_LINE_); + remoteClients.Clear(false, _FILE_AND_LINE_); + RakNet::OP_DELETE(tcpInterface, _FILE_AND_LINE_); + tcpInterface=0; +} +void TelnetTransport::Send( SystemAddress systemAddress, const char *data,... ) +{ + if (tcpInterface==0) return; + + if (data==0 || data[0]==0) + return; + + char text[REMOTE_MAX_TEXT_INPUT]; + size_t prefixLength; + if (sendPrefix) + { + strcpy(text, sendPrefix); + prefixLength = strlen(sendPrefix); + } + else + { + text[0]=0; + prefixLength=0; + } + va_list ap; + va_start(ap, data); + _vsnprintf(text+prefixLength, REMOTE_MAX_TEXT_INPUT-prefixLength, data, ap); + va_end(ap); + text[REMOTE_MAX_TEXT_INPUT-1]=0; + + if (sendSuffix) + { + size_t length = strlen(text); + size_t availableChars = REMOTE_MAX_TEXT_INPUT-length-1; + strncat(text, sendSuffix, availableChars); + } + + tcpInterface->Send(text, (unsigned int) strlen(text), systemAddress, false); +} +void TelnetTransport::CloseConnection( SystemAddress systemAddress ) +{ + tcpInterface->CloseConnection(systemAddress); +} +Packet* TelnetTransport::Receive( void ) +{ + if (tcpInterface==0) return 0; + Packet *p = tcpInterface->Receive(); + if (p==0) + return 0; + + /* + if (p->data[0]==255) + { + unsigned i; + for (i=0; i < p->length; i++) + { + RAKNET_DEBUG_PRINTF("%i ", p->data[i]); + } + RAKNET_DEBUG_PRINTF("\n"); + tcpInterface->DeallocatePacket(p); + return 0; + } + */ + + // Get this guy's cursor buffer. This is real bullcrap that I have to do this. + unsigned i; + TelnetClient *remoteClient=0; + for (i=0; i < remoteClients.Size(); i++) + { + if (remoteClients[i]->systemAddress==p->systemAddress) + remoteClient=remoteClients[i]; + } + //RakAssert(remoteClient); + if (remoteClient==0) + { + tcpInterface->DeallocatePacket(p); + return 0; + } + + + if (p->length==3 && p->data[0]==27 && p->data[1]==91 && p->data[2]==65) + { + if (remoteClient->lastSentTextInput[0]) + { + // Up arrow, return last string + for (int i=0; remoteClient->textInput[i]; i++) + remoteClient->textInput[i]=8; + strcat(remoteClient->textInput, remoteClient->lastSentTextInput); + tcpInterface->Send((const char *)remoteClient->textInput, (unsigned int) strlen(remoteClient->textInput), p->systemAddress, false); + strcpy(remoteClient->textInput,remoteClient->lastSentTextInput); + remoteClient->cursorPosition=(unsigned int) strlen(remoteClient->textInput); + } + + return 0; + } + + + // 127 is delete - ignore that + // 9 is tab + // 27 is escape + if (p->data[0]>=127 || p->data[0]==9 || p->data[0]==27) + { + tcpInterface->DeallocatePacket(p); + return 0; + } + + // Hack - I don't know what the hell this is about but cursor keys send 3 characters at a time. I can block these + //Up=27,91,65 + //Down=27,91,66 + //Right=27,91,67 + //Left=27,91,68 + if (p->length==3 && p->data[0]==27 && p->data[1]==91 && p->data[2]>=65 && p->data[2]<=68) + { + tcpInterface->DeallocatePacket(p); + return 0; + } + + + + // Echo + + tcpInterface->Send((const char *)p->data, p->length, p->systemAddress, false); + + + bool gotLine; + // Process each character in turn + for (i=0; i < p->length; i++) + { + + + if (p->data[i]==8) + { + char spaceThenBack[2]; + spaceThenBack[0]=' '; + spaceThenBack[1]=8; + tcpInterface->Send((const char *)spaceThenBack, 2, p->systemAddress, false); + } + + + gotLine=ReassembleLine(remoteClient, p->data[i]); + if (gotLine && remoteClient->textInput[0]) + { + + Packet *reassembledLine = (Packet*) rakMalloc_Ex(sizeof(Packet), _FILE_AND_LINE_); + reassembledLine->length=(unsigned int) strlen(remoteClient->textInput); + memcpy(remoteClient->lastSentTextInput, remoteClient->textInput, reassembledLine->length+1); + RakAssert(reassembledLine->length < REMOTE_MAX_TEXT_INPUT); + reassembledLine->data= (unsigned char*) rakMalloc_Ex( reassembledLine->length+1, _FILE_AND_LINE_ ); + memcpy(reassembledLine->data, remoteClient->textInput, reassembledLine->length); +#ifdef _PRINTF_DEBUG + memset(remoteClient->textInput, 0, REMOTE_MAX_TEXT_INPUT); +#endif + reassembledLine->data[reassembledLine->length]=0; + reassembledLine->systemAddress=p->systemAddress; + tcpInterface->DeallocatePacket(p); + return reassembledLine; + } + } + + tcpInterface->DeallocatePacket(p); + return 0; +} +void TelnetTransport::DeallocatePacket( Packet *packet ) +{ + if (tcpInterface==0) return; + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + rakFree_Ex(packet, _FILE_AND_LINE_ ); +} +SystemAddress TelnetTransport::HasNewIncomingConnection(void) +{ + unsigned i; + SystemAddress newConnection; + newConnection = tcpInterface->HasNewIncomingConnection(); + // 03/16/06 Can't force the stupid windows telnet to use line mode or local echo so now I have to track all the remote players and their + // input buffer + if (newConnection != UNASSIGNED_SYSTEM_ADDRESS) + { + unsigned char command[10]; + // http://www.pcmicro.com/netfoss/RFC857.html + // IAC WON'T ECHO + command[0]=255; // IAC + //command[1]=253; // WON'T + command[1]=251; // WILL + command[2]=1; // ECHO + tcpInterface->Send((const char*)command, 3, newConnection, false); + + /* + // Tell the other side to use line mode + // http://www.faqs.org/rfcs/rfc1184.html + // IAC DO LINEMODE + // command[0]=255; // IAC + // command[1]=252; // DO + // command[2]=34; // LINEMODE + // tcpInterface->Send((const char*)command, 3, newConnection); + + */ + + TelnetClient *remoteClient=0; + for (i=0; i < remoteClients.Size(); i++) + { + if (remoteClients[i]->systemAddress==newConnection) + { + remoteClient=remoteClients[i]; + remoteClient->cursorPosition=0; + } + } + + if (remoteClient==0) + { + remoteClient=new TelnetClient; + remoteClient->lastSentTextInput[0]=0; + remoteClient->cursorPosition=0; + remoteClient->systemAddress=newConnection; +#ifdef _PRINTF_DEBUG + memset(remoteClient->textInput, 0, REMOTE_MAX_TEXT_INPUT); +#endif + } + + remoteClients.Insert(remoteClient, _FILE_AND_LINE_); + } + return newConnection; +} +SystemAddress TelnetTransport::HasLostConnection(void) +{ + SystemAddress systemAddress; + unsigned i; + systemAddress=tcpInterface->HasLostConnection(); + if (systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < remoteClients.Size(); i++) + { + if (remoteClients[i]->systemAddress==systemAddress) + { + RakNet::OP_DELETE(remoteClients[i], _FILE_AND_LINE_); + remoteClients[i]=remoteClients[remoteClients.Size()-1]; + remoteClients.RemoveFromEnd(); + } + } + } + return systemAddress; +} +CommandParserInterface* TelnetTransport::GetCommandParser(void) +{ + return 0; +} +void TelnetTransport::SetSendSuffix(const char *suffix) +{ + if (sendSuffix) + { + rakFree_Ex(sendSuffix, _FILE_AND_LINE_ ); + sendSuffix=0; + } + if (suffix) + { + sendSuffix = (char*) rakMalloc_Ex(strlen(suffix)+1, _FILE_AND_LINE_); + strcpy(sendSuffix, suffix); + } +} +void TelnetTransport::SetSendPrefix(const char *prefix) +{ + if (sendPrefix) + { + rakFree_Ex(sendPrefix, _FILE_AND_LINE_ ); + sendPrefix=0; + } + if (prefix) + { + sendPrefix = (char*) rakMalloc_Ex(strlen(prefix)+1, _FILE_AND_LINE_); + strcpy(sendPrefix, prefix); + } +} +void TelnetTransport::AutoAllocate(void) +{ + if (tcpInterface==0) + tcpInterface=new TCPInterface; +} +bool TelnetTransport::ReassembleLine(TelnetTransport::TelnetClient* remoteClient, unsigned char c) +{ + if (c=='\n') + { + remoteClient->textInput[remoteClient->cursorPosition]=0; + remoteClient->cursorPosition=0; +#ifdef _PRINTF_DEBUG + RAKNET_DEBUG_PRINTF("[Done] %s\n", remoteClient->textInput); +#endif + return true; + } + else if (c==8) // backspace + { + if (remoteClient->cursorPosition>0) + { + remoteClient->textInput[--remoteClient->cursorPosition]=0; +#ifdef _PRINTF_DEBUG + RAKNET_DEBUG_PRINTF("[Back] %s\n", remoteClient->textInput); +#endif + } + } + else if (c>=32 && c <127) + { + if (remoteClient->cursorPosition < REMOTE_MAX_TEXT_INPUT) + { + remoteClient->textInput[remoteClient->cursorPosition++]=c; +#ifdef _PRINTF_DEBUG + RAKNET_DEBUG_PRINTF("[Norm] %s\n", remoteClient->textInput); +#endif + } + } + return false; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/TelnetTransport.h b/project/lib_projects/raknet/jni/RaknetSources/TelnetTransport.h new file mode 100755 index 0000000..e5e515b --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TelnetTransport.h @@ -0,0 +1,72 @@ +/// \file +/// \brief Contains TelnetTransport , used to supports the telnet transport protocol. Insecure +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __TELNET_TRANSPORT +#define __TELNET_TRANSPORT + +#include "TransportInterface.h" +#include "DS_List.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class TCPInterface; +struct TelnetClient; + +/// \brief Use TelnetTransport to easily allow windows telnet to connect to your ConsoleServer +/// \details To run Windows telnet, go to your start menu, click run, and in the edit box type "telnet " where is the ip address.
    +/// of your ConsoleServer (most likely the same IP as your game).
    +/// This implementation always echos commands. +class RAK_DLL_EXPORT TelnetTransport : public TransportInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TelnetTransport) + + TelnetTransport(); + virtual ~TelnetTransport(); + bool Start(unsigned short port, bool serverMode); + void Stop(void); + void Send( SystemAddress systemAddress, const char *data, ... ); + void CloseConnection( SystemAddress systemAddress ); + Packet* Receive( void ); + void DeallocatePacket( Packet *packet ); + SystemAddress HasNewIncomingConnection(void); + SystemAddress HasLostConnection(void); + CommandParserInterface* GetCommandParser(void); + void SetSendSuffix(const char *suffix); + void SetSendPrefix(const char *prefix); +protected: + + struct TelnetClient + { + SystemAddress systemAddress; + char textInput[REMOTE_MAX_TEXT_INPUT]; + char lastSentTextInput[REMOTE_MAX_TEXT_INPUT]; + unsigned cursorPosition; + }; + + TCPInterface *tcpInterface; + void AutoAllocate(void); + bool ReassembleLine(TelnetTransport::TelnetClient* telnetClient, unsigned char c); + + // Crap this sucks but because windows telnet won't send line at a time, I have to reconstruct the lines at the server per player + DataStructures::List remoteClients; + + char *sendSuffix, *sendPrefix; + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ThreadPool.h b/project/lib_projects/raknet/jni/RaknetSources/ThreadPool.h new file mode 100755 index 0000000..087460e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ThreadPool.h @@ -0,0 +1,620 @@ +#ifndef __THREAD_POOL_H +#define __THREAD_POOL_H + +#include "RakMemoryOverride.h" +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "Export.h" +#include "RakThread.h" +#include "SignaledEvent.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +class ThreadDataInterface +{ +public: + ThreadDataInterface() {} + virtual ~ThreadDataInterface() {} + + virtual void* PerThreadFactory(void *context)=0; + virtual void PerThreadDestructor(void* factoryResult, void *context)=0; +}; +/// A simple class to create worker threads that processes a queue of functions with data. +/// This class does not allocate or deallocate memory. It is up to the user to handle memory management. +/// InputType and OutputType are stored directly in a queue. For large structures, if you plan to delete from the middle of the queue, +/// you might wish to store pointers rather than the structures themselves so the array can shift efficiently. +template +struct RAK_DLL_EXPORT ThreadPool +{ + ThreadPool(); + ~ThreadPool(); + + /// Start the specified number of threads. + /// \param[in] numThreads The number of threads to start + /// \param[in] stackSize 0 for default (except on consoles). + /// \param[in] _perThreadInit User callback to return data stored per thread. Pass 0 if not needed. + /// \param[in] _perThreadDeinit User callback to destroy data stored per thread, created by _perThreadInit. Pass 0 if not needed. + /// \return True on success, false on failure. + bool StartThreads(int numThreads, int stackSize, void* (*_perThreadInit)()=0, void (*_perThreadDeinit)(void*)=0); + + // Alternate form of _perThreadDataFactory, _perThreadDataDestructor + void SetThreadDataInterface(ThreadDataInterface *tdi, void *context); + + /// Stops all threads + void StopThreads(void); + + /// Adds a function to a queue with data to pass to that function. This function will be called from the thread + /// Memory management is your responsibility! This class does not allocate or deallocate memory. + /// The best way to deallocate \a inputData is in userCallback. If you call EndThreads such that callbacks were not called, you + /// can iterate through the inputQueue and deallocate all pending input data there + /// The best way to deallocate output is as it is returned to you from GetOutput. Similarly, if you end the threads such that + /// not all output was returned, you can iterate through outputQueue and deallocate it there. + /// \param[in] workerThreadCallback The function to call from the thread + /// \param[in] inputData The parameter to pass to \a userCallback + void AddInput(OutputType (*workerThreadCallback)(InputType, bool *returnOutput, void* perThreadData), InputType inputData); + + /// Adds to the output queue + /// Use it if you want to inject output into the same queue that the system uses. Normally you would not use this. Consider it a convenience function. + /// \param[in] outputData The output to inject + void AddOutput(OutputType outputData); + + /// Returns true if output from GetOutput is waiting. + /// \return true if output is waiting, false otherwise + bool HasOutput(void); + + /// Inaccurate but fast version of HasOutput. If this returns true, you should still check HasOutput for the real value. + /// \return true if output is probably waiting, false otherwise + bool HasOutputFast(void); + + /// Returns true if input from GetInput is waiting. + /// \return true if input is waiting, false otherwise + bool HasInput(void); + + /// Inaccurate but fast version of HasInput. If this returns true, you should still check HasInput for the real value. + /// \return true if input is probably waiting, false otherwise + bool HasInputFast(void); + + /// Gets the output of a call to \a userCallback + /// HasOutput must return true before you call this function. Otherwise it will assert. + /// \return The output of \a userCallback. If you have different output signatures, it is up to you to encode the data to indicate this + OutputType GetOutput(void); + + /// Clears internal buffers + void Clear(void); + + /// Lock the input buffer before calling the functions InputSize, InputAtIndex, and RemoveInputAtIndex + /// It is only necessary to lock the input or output while the threads are running + void LockInput(void); + + /// Unlock the input buffer after you are done with the functions InputSize, GetInputAtIndex, and RemoveInputAtIndex + void UnlockInput(void); + + /// Length of the input queue + unsigned InputSize(void); + + /// Get the input at a specified index + InputType GetInputAtIndex(unsigned index); + + /// Remove input from a specific index. This does NOT do memory deallocation - it only removes the item from the queue + void RemoveInputAtIndex(unsigned index); + + /// Lock the output buffer before calling the functions OutputSize, OutputAtIndex, and RemoveOutputAtIndex + /// It is only necessary to lock the input or output while the threads are running + void LockOutput(void); + + /// Unlock the output buffer after you are done with the functions OutputSize, GetOutputAtIndex, and RemoveOutputAtIndex + void UnlockOutput(void); + + /// Length of the output queue + unsigned OutputSize(void); + + /// Get the output at a specified index + OutputType GetOutputAtIndex(unsigned index); + + /// Remove output from a specific index. This does NOT do memory deallocation - it only removes the item from the queue + void RemoveOutputAtIndex(unsigned index); + + /// Removes all items from the input queue + void ClearInput(void); + + /// Removes all items from the output queue + void ClearOutput(void); + + /// Are any of the threads working, or is input or output available? + bool IsWorking(void); + + /// The number of currently active threads. + int NumThreadsWorking(void); + + /// Did we call Start? + bool WasStarted(void); + + // Block until all threads are stopped. + bool Pause(void); + + // Continue running + void Resume(void); + +protected: + // It is valid to cancel input before it is processed. To do so, lock the inputQueue with inputQueueMutex, + // Scan the list, and remove the item you don't want. + RakNet::SimpleMutex inputQueueMutex, outputQueueMutex, workingThreadCountMutex, runThreadsMutex; + + void* (*perThreadDataFactory)(); + void (*perThreadDataDestructor)(void*); + + // inputFunctionQueue & inputQueue are paired arrays so if you delete from one at a particular index you must delete from the other + // at the same index + DataStructures::Queue inputFunctionQueue; + DataStructures::Queue inputQueue; + DataStructures::Queue outputQueue; + + ThreadDataInterface *threadDataInterface; + void *tdiContext; + + + template + friend RAK_THREAD_DECLARATION(WorkerThread); + + /* +#ifdef _WIN32 + friend unsigned __stdcall WorkerThread( LPVOID arguments ); +#else + friend void* WorkerThread( void* arguments ); +#endif + */ + + /// \internal + bool runThreads; + /// \internal + int numThreadsRunning; + /// \internal + int numThreadsWorking; + /// \internal + RakNet::SimpleMutex numThreadsRunningMutex; + + RakNet::SignaledEvent quitAndIncomingDataEvents; + +// #if defined(SN_TARGET_PSP2) +// RakNet::RakThread::UltUlThreadRuntime *runtime; +// #endif +}; + +#include "ThreadPool.h" +#include "RakSleep.h" +#ifdef _WIN32 + +#else +#include +#endif + +#ifdef _MSC_VER +#pragma warning(disable:4127) +#pragma warning( disable : 4701 ) // potentially uninitialized local variable 'inputData' used +#endif + +template +RAK_THREAD_DECLARATION(WorkerThread) +/* +#ifdef _WIN32 +unsigned __stdcall WorkerThread( LPVOID arguments ) +#else +void* WorkerThread( void* arguments ) +#endif +*/ +{ + + + + ThreadPool *threadPool = (ThreadPool*) arguments; + + + bool returnOutput; + ThreadOutputType (*userCallback)(ThreadInputType, bool *, void*); + ThreadInputType inputData; + ThreadOutputType callbackOutput; + + userCallback=0; + + void *perThreadData; + if (threadPool->perThreadDataFactory) + perThreadData=threadPool->perThreadDataFactory(); + else if (threadPool->threadDataInterface) + perThreadData=threadPool->threadDataInterface->PerThreadFactory(threadPool->tdiContext); + else + perThreadData=0; + + // Increase numThreadsRunning + threadPool->numThreadsRunningMutex.Lock(); + ++threadPool->numThreadsRunning; + threadPool->numThreadsRunningMutex.Unlock(); + + while (1) + { +#ifdef _WIN32 + if (userCallback==0) + { + threadPool->quitAndIncomingDataEvents.WaitOnEvent(INFINITE); + } +#endif + + threadPool->runThreadsMutex.Lock(); + if (threadPool->runThreads==false) + { + threadPool->runThreadsMutex.Unlock(); + break; + } + threadPool->runThreadsMutex.Unlock(); + + threadPool->workingThreadCountMutex.Lock(); + ++threadPool->numThreadsWorking; + threadPool->workingThreadCountMutex.Unlock(); + + // Read input data + userCallback=0; + threadPool->inputQueueMutex.Lock(); + if (threadPool->inputFunctionQueue.Size()) + { + userCallback=threadPool->inputFunctionQueue.Pop(); + inputData=threadPool->inputQueue.Pop(); + } + threadPool->inputQueueMutex.Unlock(); + + if (userCallback) + { + callbackOutput=userCallback(inputData, &returnOutput,perThreadData); + if (returnOutput) + { + threadPool->outputQueueMutex.Lock(); + threadPool->outputQueue.Push(callbackOutput, _FILE_AND_LINE_ ); + threadPool->outputQueueMutex.Unlock(); + } + } + + threadPool->workingThreadCountMutex.Lock(); + --threadPool->numThreadsWorking; + threadPool->workingThreadCountMutex.Unlock(); + } + + // Decrease numThreadsRunning + threadPool->numThreadsRunningMutex.Lock(); + --threadPool->numThreadsRunning; + threadPool->numThreadsRunningMutex.Unlock(); + + if (threadPool->perThreadDataDestructor) + threadPool->perThreadDataDestructor(perThreadData); + else if (threadPool->threadDataInterface) + threadPool->threadDataInterface->PerThreadDestructor(perThreadData, threadPool->tdiContext); + + + + + return 0; + +} +template +ThreadPool::ThreadPool() +{ + runThreads=false; + numThreadsRunning=0; + threadDataInterface=0; + tdiContext=0; + numThreadsWorking=0; + +} +template +ThreadPool::~ThreadPool() +{ + StopThreads(); + Clear(); +} +template +bool ThreadPool::StartThreads(int numThreads, int stackSize, void* (*_perThreadDataFactory)(), void (*_perThreadDataDestructor)(void *)) +{ + (void) stackSize; + +// #if defined(SN_TARGET_PSP2) +// runtime = RakNet::RakThread::AllocRuntime(numThreads); +// #endif + + runThreadsMutex.Lock(); + if (runThreads==true) + { + // Already running + runThreadsMutex.Unlock(); + return false; + } + runThreadsMutex.Unlock(); + + quitAndIncomingDataEvents.InitEvent(); + + perThreadDataFactory=_perThreadDataFactory; + perThreadDataDestructor=_perThreadDataDestructor; + + runThreadsMutex.Lock(); + runThreads=true; + runThreadsMutex.Unlock(); + + numThreadsWorking=0; + unsigned threadId = 0; + (void) threadId; + int i; + for (i=0; i < numThreads; i++) + { + int errorCode; + + + + + errorCode = RakNet::RakThread::Create(WorkerThread, this); + + if (errorCode!=0) + { + StopThreads(); + return false; + } + } + // Wait for number of threads running to increase to numThreads + bool done=false; + while (done==false) + { + RakSleep(50); + numThreadsRunningMutex.Lock(); + if (numThreadsRunning==numThreads) + done=true; + numThreadsRunningMutex.Unlock(); + } + + return true; +} +template +void ThreadPool::SetThreadDataInterface(ThreadDataInterface *tdi, void *context) +{ + threadDataInterface=tdi; + tdiContext=context; +} +template +void ThreadPool::StopThreads(void) +{ + runThreadsMutex.Lock(); + if (runThreads==false) + { + runThreadsMutex.Unlock(); + return; + } + + runThreads=false; + runThreadsMutex.Unlock(); + + // Wait for number of threads running to decrease to 0 + bool done=false; + while (done==false) + { + quitAndIncomingDataEvents.SetEvent(); + + RakSleep(50); + numThreadsRunningMutex.Lock(); + if (numThreadsRunning==0) + done=true; + numThreadsRunningMutex.Unlock(); + } + + quitAndIncomingDataEvents.CloseEvent(); + +// #if defined(SN_TARGET_PSP2) +// RakNet::RakThread::DeallocRuntime(runtime); +// runtime=0; +// #endif + +} +template +void ThreadPool::AddInput(OutputType (*workerThreadCallback)(InputType, bool *returnOutput, void* perThreadData), InputType inputData) +{ + inputQueueMutex.Lock(); + inputQueue.Push(inputData, _FILE_AND_LINE_ ); + inputFunctionQueue.Push(workerThreadCallback, _FILE_AND_LINE_ ); + inputQueueMutex.Unlock(); + + quitAndIncomingDataEvents.SetEvent(); +} +template +void ThreadPool::AddOutput(OutputType outputData) +{ + outputQueueMutex.Lock(); + outputQueue.Push(outputData, _FILE_AND_LINE_ ); + outputQueueMutex.Unlock(); +} +template +bool ThreadPool::HasOutputFast(void) +{ + return outputQueue.IsEmpty()==false; +} +template +bool ThreadPool::HasOutput(void) +{ + bool res; + outputQueueMutex.Lock(); + res=outputQueue.IsEmpty()==false; + outputQueueMutex.Unlock(); + return res; +} +template +bool ThreadPool::HasInputFast(void) +{ + return inputQueue.IsEmpty()==false; +} +template +bool ThreadPool::HasInput(void) +{ + bool res; + inputQueueMutex.Lock(); + res=inputQueue.IsEmpty()==false; + inputQueueMutex.Unlock(); + return res; +} +template +OutputType ThreadPool::GetOutput(void) +{ + // Real output check + OutputType output; + outputQueueMutex.Lock(); + output=outputQueue.Pop(); + outputQueueMutex.Unlock(); + return output; +} +template +void ThreadPool::Clear(void) +{ + runThreadsMutex.Lock(); + if (runThreads) + { + runThreadsMutex.Unlock(); + inputQueueMutex.Lock(); + inputFunctionQueue.Clear(_FILE_AND_LINE_); + inputQueue.Clear(_FILE_AND_LINE_); + inputQueueMutex.Unlock(); + + outputQueueMutex.Lock(); + outputQueue.Clear(_FILE_AND_LINE_); + outputQueueMutex.Unlock(); + } + else + { + inputFunctionQueue.Clear(_FILE_AND_LINE_); + inputQueue.Clear(_FILE_AND_LINE_); + outputQueue.Clear(_FILE_AND_LINE_); + } +} +template +void ThreadPool::LockInput(void) +{ + inputQueueMutex.Lock(); +} +template +void ThreadPool::UnlockInput(void) +{ + inputQueueMutex.Unlock(); +} +template +unsigned ThreadPool::InputSize(void) +{ + return inputQueue.Size(); +} +template +InputType ThreadPool::GetInputAtIndex(unsigned index) +{ + return inputQueue[index]; +} +template +void ThreadPool::RemoveInputAtIndex(unsigned index) +{ + inputQueue.RemoveAtIndex(index); + inputFunctionQueue.RemoveAtIndex(index); +} +template +void ThreadPool::LockOutput(void) +{ + outputQueueMutex.Lock(); +} +template +void ThreadPool::UnlockOutput(void) +{ + outputQueueMutex.Unlock(); +} +template +unsigned ThreadPool::OutputSize(void) +{ + return outputQueue.Size(); +} +template +OutputType ThreadPool::GetOutputAtIndex(unsigned index) +{ + return outputQueue[index]; +} +template +void ThreadPool::RemoveOutputAtIndex(unsigned index) +{ + outputQueue.RemoveAtIndex(index); +} +template +void ThreadPool::ClearInput(void) +{ + inputQueue.Clear(_FILE_AND_LINE_); + inputFunctionQueue.Clear(_FILE_AND_LINE_); +} + +template +void ThreadPool::ClearOutput(void) +{ + outputQueue.Clear(_FILE_AND_LINE_); +} +template +bool ThreadPool::IsWorking(void) +{ + bool isWorking; +// workingThreadCountMutex.Lock(); +// isWorking=numThreadsWorking!=0; +// workingThreadCountMutex.Unlock(); + +// if (isWorking) +// return true; + + // Bug fix: Originally the order of these two was reversed. + // It's possible with the thread timing that working could have been false, then it picks up the data in the other thread, then it checks + // here and sees there is no data. So it thinks the thread is not working when it was. + if (HasOutputFast() && HasOutput()) + return true; + + if (HasInputFast() && HasInput()) + return true; + + // Need to check is working again, in case the thread was between the first and second checks + workingThreadCountMutex.Lock(); + isWorking=numThreadsWorking!=0; + workingThreadCountMutex.Unlock(); + + return isWorking; +} + +template +int ThreadPool::NumThreadsWorking(void) +{ + return numThreadsWorking; +} + +template +bool ThreadPool::WasStarted(void) +{ + bool b; + runThreadsMutex.Lock(); + b = runThreads; + runThreadsMutex.Unlock(); + return b; +} +template +bool ThreadPool::Pause(void) +{ + if (WasStarted()==false) + return false; + + workingThreadCountMutex.Lock(); + while (numThreadsWorking>0) + { + RakSleep(30); + } + return true; +} +template +void ThreadPool::Resume(void) +{ + workingThreadCountMutex.Unlock(); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/ThreadsafePacketLogger.cpp b/project/lib_projects/raknet/jni/RaknetSources/ThreadsafePacketLogger.cpp new file mode 100755 index 0000000..a749da0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ThreadsafePacketLogger.cpp @@ -0,0 +1,38 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#include "ThreadsafePacketLogger.h" +#include + +using namespace RakNet; + +ThreadsafePacketLogger::ThreadsafePacketLogger() +{ + +} +ThreadsafePacketLogger::~ThreadsafePacketLogger() +{ + char **msg; + while ((msg = logMessages.ReadLock()) != 0) + { + rakFree_Ex((*msg), _FILE_AND_LINE_ ); + } +} +void ThreadsafePacketLogger::Update(void) +{ + char **msg; + while ((msg = logMessages.ReadLock()) != 0) + { + WriteLog(*msg); + rakFree_Ex((*msg), _FILE_AND_LINE_ ); + } +} +void ThreadsafePacketLogger::AddToLog(const char *str) +{ + char **msg = logMessages.WriteLock(); + *msg = (char*) rakMalloc_Ex( strlen(str)+1, _FILE_AND_LINE_ ); + strcpy(*msg, str); + logMessages.WriteUnlock(); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/ThreadsafePacketLogger.h b/project/lib_projects/raknet/jni/RaknetSources/ThreadsafePacketLogger.h new file mode 100755 index 0000000..bca5cf2 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/ThreadsafePacketLogger.h @@ -0,0 +1,40 @@ +/// \file +/// \brief Derivation of the packet logger to defer the call to WriteLog until the user thread. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __THREADSAFE_PACKET_LOGGER_H +#define __THREADSAFE_PACKET_LOGGER_H + +#include "PacketLogger.h" +#include "SingleProducerConsumer.h" + +namespace RakNet +{ + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Same as PacketLogger, but writes output in the user thread. +class RAK_DLL_EXPORT ThreadsafePacketLogger : public PacketLogger +{ +public: + ThreadsafePacketLogger(); + virtual ~ThreadsafePacketLogger(); + + virtual void Update(void); + +protected: + virtual void AddToLog(const char *str); + + DataStructures::SingleProducerConsumer logMessages; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/TransportInterface.h b/project/lib_projects/raknet/jni/RaknetSources/TransportInterface.h new file mode 100755 index 0000000..f4f8076 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TransportInterface.h @@ -0,0 +1,83 @@ +/// \file +/// \brief Contains TransportInterface from which you can derive custom transport providers for ConsoleServer. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __TRANSPORT_INTERFACE_H +#define __TRANSPORT_INTERFACE_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +#define REMOTE_MAX_TEXT_INPUT 2048 + +namespace RakNet +{ + +class CommandParserInterface; + + +/// \brief Defines an interface that is used to send and receive null-terminated strings. +/// \details In practice this is only used by the CommandParser system for for servers. +class RAK_DLL_EXPORT TransportInterface +{ +public: + TransportInterface() {} + virtual ~TransportInterface() {} + + /// Start the transport provider on the indicated port. + /// \param[in] port The port to start the transport provider on + /// \param[in] serverMode If true, you should allow incoming connections (I don't actually use this anywhere) + /// \return Return true on success, false on failure. + virtual bool Start(unsigned short port, bool serverMode)=0; + + /// Stop the transport provider. You can clear memory and shutdown threads here. + virtual void Stop(void)=0; + + /// Send a null-terminated string to \a systemAddress + /// If your transport method requires particular formatting of the outgoing data (e.g. you don't just send strings) you can do it here + /// and parse it out in Receive(). + /// \param[in] systemAddress The player to send the string to + /// \param[in] data format specifier - same as RAKNET_DEBUG_PRINTF + /// \param[in] ... format specification arguments - same as RAKNET_DEBUG_PRINTF + virtual void Send( SystemAddress systemAddress, const char *data, ... )=0; + + /// Disconnect \a systemAddress . The binary address and port defines the SystemAddress structure. + /// \param[in] systemAddress The player/address to disconnect + virtual void CloseConnection( SystemAddress systemAddress )=0; + + /// Return a string. The string should be allocated and written to Packet::data . + /// The byte length should be written to Packet::length . The player/address should be written to Packet::systemAddress + /// If your transport protocol adds special formatting to the data stream you should parse it out before returning it in the packet + /// and thus only return a string in Packet::data + /// \return The packet structure containing the result of Receive, or 0 if no data is available + virtual Packet* Receive( void )=0; + + /// Deallocate the Packet structure returned by Receive + /// \param[in] The packet to deallocate + virtual void DeallocatePacket( Packet *packet )=0; + + /// If a new system connects to you, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + virtual SystemAddress HasNewIncomingConnection(void)=0; + + /// If a system loses the connection, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + virtual SystemAddress HasLostConnection(void)=0; + + /// Your transport provider can itself have command parsers if the transport layer has user-modifiable features + /// For example, your transport layer may have a password which you want remote users to be able to set or you may want + /// to allow remote users to turn on or off command echo + /// \return 0 if you do not need a command parser - otherwise the desired derivation of CommandParserInterface + virtual CommandParserInterface* GetCommandParser(void)=0; +protected: +}; + +} // namespace RakNet + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/TwoWayAuthentication.cpp b/project/lib_projects/raknet/jni/RaknetSources/TwoWayAuthentication.cpp new file mode 100755 index 0000000..17648e7 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TwoWayAuthentication.cpp @@ -0,0 +1,431 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TwoWayAuthentication==1 + +#include "TwoWayAuthentication.h" +#include "Rand.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakPeerInterface.h" + +#if LIBCAT_SECURITY==1 +static const int HASH_BITS = 256; +static const int HASH_BYTES = HASH_BITS / 8; +static const int STRENGTHENING_FACTOR = 256; +#include +#endif + +using namespace RakNet; + +enum NegotiationIdentifiers +{ + ID_NONCE_REQUEST, + ID_NONCE_REPLY, + ID_HASHED_NONCE_AND_PASSWORD, +}; + +TwoWayAuthentication::NonceGenerator::NonceGenerator() {nextRequestId=0;} +TwoWayAuthentication::NonceGenerator::~NonceGenerator() +{ + Clear(); +} +void TwoWayAuthentication::NonceGenerator::GetNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short *requestId, RakNet::AddressOrGUID remoteSystem) +{ + TwoWayAuthentication::NonceAndRemoteSystemRequest *narsr = RakNet::OP_NEW(_FILE_AND_LINE_); + narsr->remoteSystem=remoteSystem; + GenerateNonce(narsr->nonce); + narsr->requestId=nextRequestId++; + *requestId=narsr->requestId; + memcpy(nonce,narsr->nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + narsr->whenGenerated=RakNet::GetTime(); + generatedNonces.Push(narsr,_FILE_AND_LINE_); +} +void TwoWayAuthentication::NonceGenerator::GenerateNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]) +{ + fillBufferMT(nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); +} +bool TwoWayAuthentication::NonceGenerator::GetNonceById(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short requestId, RakNet::AddressOrGUID remoteSystem, bool popIfFound) +{ + unsigned int i; + for (i=0; i < generatedNonces.Size(); i++) + { + if (generatedNonces[i]->requestId==requestId) + { + if (remoteSystem==generatedNonces[i]->remoteSystem) + { + memcpy(nonce,generatedNonces[i]->nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + if (popIfFound) + { + RakNet::OP_DELETE(generatedNonces[i],_FILE_AND_LINE_); + generatedNonces.RemoveAtIndex(i); + } + return true; + } + else + { + return false; + } + } + } + return false; +} +void TwoWayAuthentication::NonceGenerator::Clear(void) +{ + unsigned int i; + for (i=0; i < generatedNonces.Size(); i++) + RakNet::OP_DELETE(generatedNonces[i],_FILE_AND_LINE_); + generatedNonces.Clear(true,_FILE_AND_LINE_); +} +void TwoWayAuthentication::NonceGenerator::ClearByAddress(RakNet::AddressOrGUID remoteSystem) +{ + unsigned int i=0; + while (i < generatedNonces.Size()) + { + if (generatedNonces[i]->remoteSystem==remoteSystem) + { + RakNet::OP_DELETE(generatedNonces[i],_FILE_AND_LINE_); + generatedNonces.RemoveAtIndex(i); + } + else + { + i++; + } + } +} +void TwoWayAuthentication::NonceGenerator::Update(RakNet::Time curTime) +{ + if (generatedNonces.Size()>0 && GreaterThan(curTime-5000, generatedNonces[0]->whenGenerated)) + { + RakNet::OP_DELETE(generatedNonces[0], _FILE_AND_LINE_); + generatedNonces.RemoveAtIndex(0); + } +} +TwoWayAuthentication::TwoWayAuthentication() +{ + whenLastTimeoutCheck=RakNet::GetTime(); + seedMT(RakNet::GetTimeMS()); +} +TwoWayAuthentication::~TwoWayAuthentication() +{ + Clear(); +} +bool TwoWayAuthentication::AddPassword(RakNet::RakString identifier, RakNet::RakString password) +{ + if (password.IsEmpty()) + return false; + + if (identifier.IsEmpty()) + return false; + + if (password==identifier) + return false; // Insecure + + if (passwords.GetIndexOf(identifier.C_String()).IsInvalid()==false) + return false; // This identifier already in use + + passwords.Push(identifier, password,_FILE_AND_LINE_); + return true; +} +bool TwoWayAuthentication::Challenge(RakNet::RakString identifier, AddressOrGUID remoteSystem) +{ + DataStructures::HashIndex skhi = passwords.GetIndexOf(identifier.C_String()); + if (skhi.IsInvalid()) + return false; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_NEGOTIATION); + bsOut.Write((MessageID)ID_NONCE_REQUEST); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,remoteSystem,false); + + PendingChallenge pc; + pc.identifier=identifier; + pc.remoteSystem=remoteSystem; + pc.time=RakNet::GetTime(); + pc.sentHash=false; + outgoingChallenges.Push(pc,_FILE_AND_LINE_); + + return true; +} +void TwoWayAuthentication::Update(void) +{ + RakNet::Time curTime = RakNet::GetTime(); + nonceGenerator.Update(curTime); + if (GreaterThan(curTime - CHALLENGE_MINIMUM_TIMEOUT, whenLastTimeoutCheck)) + { + while (outgoingChallenges.Size() && GreaterThan(curTime - CHALLENGE_MINIMUM_TIMEOUT, outgoingChallenges.Peek().time)) + { + PendingChallenge pc = outgoingChallenges.Pop(); + + // Tell the user about the timeout + PushToUser(ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, pc.identifier, pc.remoteSystem); + } + + whenLastTimeoutCheck=curTime+CHALLENGE_MINIMUM_TIMEOUT; + } +} +PluginReceiveResult TwoWayAuthentication::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_TWO_WAY_AUTHENTICATION_NEGOTIATION: + { + if (packet->length>=sizeof(MessageID)*2) + { + switch (packet->data[sizeof(MessageID)]) + { + case ID_NONCE_REQUEST: + { + OnNonceRequest(packet); + } + break; + case ID_NONCE_REPLY: + { + OnNonceReply(packet); + } + break; + case ID_HASHED_NONCE_AND_PASSWORD: + { + return OnHashedNonceAndPassword(packet); + } + break; + } + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE: + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS: + { + if (packet->wasGeneratedLocally==false) + { + OnPasswordResult(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else + break; + } + break; + // These should only be generated locally + case ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS: + case ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE: + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT: + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + break; + } + + return RR_CONTINUE_PROCESSING; +} +void TwoWayAuthentication::OnRakPeerShutdown(void) +{ + Clear(); +} +void TwoWayAuthentication::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + + // Remove from pending challenges + unsigned int i=0; + while (i < outgoingChallenges.Size()) + { + if ((rakNetGUID!=UNASSIGNED_RAKNET_GUID && outgoingChallenges[i].remoteSystem.rakNetGuid==rakNetGUID) || + (systemAddress!=UNASSIGNED_SYSTEM_ADDRESS && outgoingChallenges[i].remoteSystem.systemAddress==systemAddress)) + { + outgoingChallenges.RemoveAtIndex(i); + } + else + { + i++; + } + } + + if (rakNetGUID!=UNASSIGNED_RAKNET_GUID) + nonceGenerator.ClearByAddress(rakNetGUID); + else + nonceGenerator.ClearByAddress(systemAddress); +} +void TwoWayAuthentication::Clear(void) +{ + outgoingChallenges.Clear(_FILE_AND_LINE_); + passwords.Clear(_FILE_AND_LINE_); + nonceGenerator.Clear(); +} +void TwoWayAuthentication::PushToUser(MessageID messageId, RakNet::RakString password, RakNet::AddressOrGUID remoteSystem) +{ + RakNet::BitStream output; + output.Write(messageId); + if (password.IsEmpty()==false) + output.Write(password); + Packet *p = AllocatePacketUnified(output.GetNumberOfBytesUsed()); + p->systemAddress=remoteSystem.systemAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=remoteSystem.rakNetGuid; + p->wasGeneratedLocally=true; + memcpy(p->data, output.GetData(), output.GetNumberOfBytesUsed()); + rakPeerInterface->PushBackPacket(p, true); +} +void TwoWayAuthentication::OnNonceRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + unsigned short requestId; + nonceGenerator.GetNonce(nonce,&requestId,packet); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_NEGOTIATION); + bsOut.Write((MessageID)ID_NONCE_REPLY); + bsOut.Write(requestId); + bsOut.WriteAlignedBytes((const unsigned char*) nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); +} +void TwoWayAuthentication::OnNonceReply(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + char thierNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + unsigned short requestId; + bsIn.Read(requestId); + bsIn.ReadAlignedBytes((unsigned char *) thierNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + + // Lookup one of the negotiations for this guid/system address + AddressOrGUID aog(packet); + unsigned int i; + for (i=0; i < outgoingChallenges.Size(); i++) + { + if (outgoingChallenges[i].remoteSystem==aog && outgoingChallenges[i].sentHash==false) + { + outgoingChallenges[i].sentHash=true; + + // Get the password for this identifier + DataStructures::HashIndex skhi = passwords.GetIndexOf(outgoingChallenges[i].identifier.C_String()); + if (skhi.IsInvalid()==false) + { + RakNet::RakString password = passwords.ItemAtIndex(skhi); + + // Hash their nonce with password and reply + char hashedNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + Hash(thierNonce, password, hashedNonceAndPw); + + // Send + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_NEGOTIATION); + bsOut.Write((MessageID)ID_HASHED_NONCE_AND_PASSWORD); + bsOut.Write(requestId); + bsOut.Write(outgoingChallenges[i].identifier); // Identifier helps the other system lookup the password quickly. + bsOut.WriteAlignedBytes((const unsigned char*) hashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); + } + + return; + } + } +} +PluginReceiveResult TwoWayAuthentication::OnHashedNonceAndPassword(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + char remoteHashedNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + unsigned short requestId; + bsIn.Read(requestId); + RakNet::RakString passwordIdentifier; + bsIn.Read(passwordIdentifier); + bsIn.ReadAlignedBytes((unsigned char *) remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + + // Look up used nonce from requestId + char usedNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + if (nonceGenerator.GetNonceById(usedNonce, requestId, packet, true)==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + DataStructures::HashIndex skhi = passwords.GetIndexOf(passwordIdentifier.C_String()); + if (skhi.IsInvalid()==false) + { + char hashedThisNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + Hash(usedNonce, passwords.ItemAtIndex(skhi), hashedThisNonceAndPw); + if (memcmp(hashedThisNonceAndPw, remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH)==0) + { + // Pass + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS); + bsOut.WriteAlignedBytes((const unsigned char*) usedNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + bsOut.WriteAlignedBytes((const unsigned char*) remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + bsOut.Write(passwordIdentifier); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); + + // Incoming success, modify packet header to tell user + PushToUser(ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS, passwordIdentifier, packet); + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + // Incoming failure, modify arrived packet header to tell user + packet->data[0]=(MessageID) ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE); + bsOut.WriteAlignedBytes((const unsigned char*) usedNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + bsOut.WriteAlignedBytes((const unsigned char*) remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + bsOut.Write(passwordIdentifier); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); + + return RR_CONTINUE_PROCESSING; +} +void TwoWayAuthentication::OnPasswordResult(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*1); + char usedNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + bsIn.ReadAlignedBytes((unsigned char *)usedNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + char hashedNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + bsIn.ReadAlignedBytes((unsigned char *)hashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + RakNet::RakString passwordIdentifier; + bsIn.Read(passwordIdentifier); + + DataStructures::HashIndex skhi = passwords.GetIndexOf(passwordIdentifier.C_String()); + if (skhi.IsInvalid()==false) + { + RakNet::RakString password = passwords.ItemAtIndex(skhi); + char testHash[HASHED_NONCE_AND_PW_LENGTH]; + Hash(usedNonce, password, testHash); + if (memcmp(testHash,hashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH)==0) + { + // Lookup the outgoing challenge and remove it from the list + unsigned int i; + AddressOrGUID aog(packet); + for (i=0; i < outgoingChallenges.Size(); i++) + { + if (outgoingChallenges[i].identifier==passwordIdentifier && + outgoingChallenges[i].remoteSystem==aog && + outgoingChallenges[i].sentHash==true) + { + outgoingChallenges.RemoveAtIndex(i); + + PushToUser(packet->data[0], passwordIdentifier, packet); + return; + } + } + } + } +} +void TwoWayAuthentication::Hash(char thierNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], RakNet::RakString password, char out[HASHED_NONCE_AND_PW_LENGTH]) +{ +#if LIBCAT_SECURITY==1 + cat::Skein hash; + if (!hash.BeginKey(HASH_BITS)) return; + hash.Crunch(thierNonce, TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + hash.Crunch(password.C_String(), (int) password.GetLength()); + hash.End(); + hash.Generate(out, HASH_BYTES, STRENGTHENING_FACTOR); +#else + CSHA1 sha1; + sha1.Update((unsigned char *) thierNonce, TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + sha1.Update((unsigned char *) password.C_String(), (unsigned int) password.GetLength()); + sha1.Final(); + sha1.GetHash((unsigned char *) out); +#endif +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/TwoWayAuthentication.h b/project/lib_projects/raknet/jni/RaknetSources/TwoWayAuthentication.h new file mode 100755 index 0000000..7993f8e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/TwoWayAuthentication.h @@ -0,0 +1,146 @@ +/// \file TwoWayAuthentication.h +/// \brief Implements two way authentication +/// \details Given two systems, each of whom known a common password, verify the password without transmitting it +/// This can be used to determine what permissions are should be allowed to the other system +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TwoWayAuthentication==1 + +#ifndef __TWO_WAY_AUTHENTICATION_H +#define __TWO_WAY_AUTHENTICATION_H + +// How often to change the nonce. +#define NONCE_TIMEOUT_MS 10000 +// How often to check for ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, and the minimum timeout time. Maximum is double this value. +#define CHALLENGE_MINIMUM_TIMEOUT 3000 + +#if LIBCAT_SECURITY==1 +// From CPP FILE: +// static const int HASH_BITS = 256; +// static const int HASH_BYTES = HASH_BITS / 8; +// static const int STRENGTHENING_FACTOR = 1000; +#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH 32 +#define HASHED_NONCE_AND_PW_LENGTH 32 +#else +#include "SHA1.h" +#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH 20 +#define HASHED_NONCE_AND_PW_LENGTH SHA1_LENGTH +#endif + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "RakString.h" +#include "DS_Hash.h" +#include "DS_Queue.h" + +typedef int64_t FCM2Guid; + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief Implements two way authentication +/// \details Given two systems, each of whom known a common password / identifier pair, verify the password without transmitting it +/// This can be used to determine what permissions are should be allowed to the other system +/// If the other system should not send any data until authentication passes, you can use the MessageFilter plugin for this. Call MessageFilter::SetAllowMessageID() including ID_TWO_WAY_AUTHENTICATION_NEGOTIATION when doing so. Also attach MessageFilter first in the list of plugins +/// \note If other systems challenges us, and fails, you will get ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILED. +/// \ingroup PLUGINS_GROUP +class RAK_DLL_EXPORT TwoWayAuthentication : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TwoWayAuthentication) + + TwoWayAuthentication(); + virtual ~TwoWayAuthentication(); + + /// \brief Adds a password to the list of passwords the system will accept + /// \details Each password, which is secret and not transmitted, is identified by \a identifier. + /// \a identifier is transmitted in plaintext with the request. It is only needed because the system supports multiple password. + /// It is used to only hash against once password on the remote system, rather than having to hash against every known password. + /// \param[in] identifier A unique identifier representing this password. This is transmitted in plaintext and should be considered insecure + /// \param[in] password The password to add + /// \return True on success, false on identifier==password, either identifier or password is blank, or identifier is already in use + bool AddPassword(RakNet::RakString identifier, RakNet::RakString password); + + /// \brief Challenge another system for the specified identifier + /// \details After calling Challenge, you will get back ID_TWO_WAY_AUTHENTICATION_SUCCESS, ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, or ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILED + /// ID_TWO_WAY_AUTHENTICATION_SUCCESS will be returned if and only if the other system has called AddPassword() with the same identifier\password pair as this system. + /// \param[in] identifier A unique identifier representing this password. This is transmitted in plaintext and should be considered insecure + /// \return True on success, false on remote system not connected, or identifier not previously added with AddPassword() + bool Challenge(RakNet::RakString identifier, AddressOrGUID remoteSystem); + + /// \brief Free all memory + void Clear(void); + + /// \internal + virtual void Update(void); + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnRakPeerShutdown(void); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + /// \internal + struct PendingChallenge + { + RakNet::RakString identifier; + AddressOrGUID remoteSystem; + RakNet::Time time; + bool sentHash; + }; + + DataStructures::Queue outgoingChallenges; + + /// \internal + struct NonceAndRemoteSystemRequest + { + char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + RakNet::AddressOrGUID remoteSystem; + unsigned short requestId; + RakNet::Time whenGenerated; + }; + /// \internal + struct RAK_DLL_EXPORT NonceGenerator + { + NonceGenerator(); + ~NonceGenerator(); + void GetNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short *requestId, RakNet::AddressOrGUID remoteSystem); + void GenerateNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]); + bool GetNonceById(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short requestId, RakNet::AddressOrGUID remoteSystem, bool popIfFound); + void Clear(void); + void ClearByAddress(RakNet::AddressOrGUID remoteSystem); + void Update(RakNet::Time curTime); + + DataStructures::List generatedNonces; + unsigned short nextRequestId; + }; + +protected: + void PushToUser(MessageID messageId, RakNet::RakString password, RakNet::AddressOrGUID remoteSystem); + // Key is identifier, data is password + DataStructures::Hash passwords; + + RakNet::Time whenLastTimeoutCheck; + + NonceGenerator nonceGenerator; + + void OnNonceRequest(Packet *packet); + void OnNonceReply(Packet *packet); + PluginReceiveResult OnHashedNonceAndPassword(Packet *packet); + void OnPasswordResult(Packet *packet); + void Hash(char thierNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], RakNet::RakString password, char out[HASHED_NONCE_AND_PW_LENGTH]); +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPForwarder.cpp b/project/lib_projects/raknet/jni/RaknetSources/UDPForwarder.cpp new file mode 100755 index 0000000..c043e5e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPForwarder.cpp @@ -0,0 +1,816 @@ +#include "UDPForwarder.h" + +#if _RAKNET_SUPPORT_UDPForwarder==1 + +#include "GetTime.h" +#include "MTUSize.h" +#include "SocketLayer.h" +#include "WSAStartupSingleton.h" +#include "RakSleep.h" +#include "DS_OrderedList.h" +#include "LinuxStrings.h" +#include "SocketDefines.h" +#include "VitaIncludes.h" + +using namespace RakNet; +static const unsigned short DEFAULT_MAX_FORWARD_ENTRIES=64; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED +namespace RakNet +{ + RAK_THREAD_DECLARATION(UpdateUDPForwarder); +} +#endif + +int UDPForwarder::SrcAndDestForwardEntryComp( const UDPForwarder::SrcAndDest &inputKey, UDPForwarder::ForwardEntry * const &cls ) +{ + if (inputKey.source < cls->srcAndDest.source) + return -1; + + if (inputKey.source > cls->srcAndDest.source) + return 1; + + if (inputKey.dest < cls->srcAndDest.dest) + return -1; + + if (inputKey.dest > cls->srcAndDest.dest) + return 1; + + return 0; +} +/* +bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPForwarder::ForwardEntry *cls ) +{ + return inputKey.Get().source < cls->srcAndDest.source || + (inputKey.Get().source == cls->srcAndDest.source && inputKey.Get().dest < cls->srcAndDest.dest); +} +bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPForwarder::ForwardEntry *cls ) +{ + return inputKey.Get().source > cls->srcAndDest.source || + (inputKey.Get().source == cls->srcAndDest.source && inputKey.Get().dest > cls->srcAndDest.dest); +} +bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPForwarder::ForwardEntry *cls ) +{ + return inputKey.Get().source == cls->srcAndDest.source && inputKey.Get().dest == cls->srcAndDest.dest; +} +*/ + + +UDPForwarder::ForwardEntry::ForwardEntry() {socket=INVALID_SOCKET; timeLastDatagramForwarded=RakNet::GetTimeMS(); updatedSourcePort=false; updatedDestPort=false;} +UDPForwarder::ForwardEntry::~ForwardEntry() { + if (socket!=INVALID_SOCKET) + closesocket__(socket); +} + +UDPForwarder::UDPForwarder() +{ +#ifdef _WIN32 + WSAStartupSingleton::AddRef(); +#endif + + maxForwardEntries=DEFAULT_MAX_FORWARD_ENTRIES; + isRunning=false; + threadRunning=false; + + + + +} +UDPForwarder::~UDPForwarder() +{ + Shutdown(); + +#ifdef _WIN32 + WSAStartupSingleton::Deref(); +#endif +} +void UDPForwarder::Startup(void) +{ + if (isRunning==true) + return; + + isRunning=true; + threadRunning=false; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED + + + + + + int errorCode; + + + + + errorCode = RakNet::RakThread::Create(UpdateUDPForwarder, this); + + if ( errorCode != 0 ) + { + RakAssert(0); + return; + } + + while (threadRunning==false) + RakSleep(30); +#endif +} +void UDPForwarder::Shutdown(void) +{ + if (isRunning==false) + return; + + isRunning=false; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED + while (threadRunning==true) + RakSleep(30); +#endif + + unsigned int j; + for (j=0; j < forwardList.Size(); j++) + RakNet::OP_DELETE(forwardList[j],_FILE_AND_LINE_); + forwardList.Clear(false, _FILE_AND_LINE_); + + + + + + +} +void UDPForwarder::Update(void) +{ +#ifndef UDP_FORWARDER_EXECUTE_THREADED + #if RAKNET_SUPPORT_IPV6!=1 + UpdateThreaded_Old(); + #else + UpdateThreaded(); + #endif +#endif +} +void UDPForwarder::UpdateThreaded_Old(void) +{ + fd_set readFD; + //fd_set exceptionFD; + FD_ZERO(&readFD); + // FD_ZERO(&exceptionFD); + int selectResult; + + + timeval tv; + tv.tv_sec=0; + tv.tv_usec=0; + + + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + + SOCKET largestDescriptor=0; + unsigned int i; + + // Remove unused entries + i=0; + while (i < forwardList.Size()) + { + if (curTime > forwardList[i]->timeLastDatagramForwarded && // Account for timestamp wrap + curTime > forwardList[i]->timeLastDatagramForwarded+forwardList[i]->timeoutOnNoDataMS) + { + RakNet::OP_DELETE(forwardList[i],_FILE_AND_LINE_); + forwardList.RemoveAtIndex(i); + } + else + i++; + } + + if (forwardList.Size()==0) + return; + + for (i=0; i < forwardList.Size(); i++) + { +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + FD_SET(forwardList[i]->socket, &readFD); + // FD_SET(forwardList[i]->readSocket, &exceptionFD); + + if (forwardList[i]->socket > largestDescriptor) + largestDescriptor = forwardList[i]->socket; + } + + + selectResult=(int) select__((int) largestDescriptor+1, &readFD, 0, 0, &tv); + + + + + char data[ MAXIMUM_MTU_SIZE ]; + sockaddr_in sa; + socklen_t len2; + + if (selectResult > 0) + { + DataStructures::Queue entriesToRead; + ForwardEntry *forwardEntry; + + for (i=0; i < forwardList.Size(); i++) + { + forwardEntry = forwardList[i]; + // I do this because I'm updating the forwardList, and don't want to lose FD_ISSET as the list is no longer in order + if (FD_ISSET(forwardEntry->socket, &readFD)) + entriesToRead.Push(forwardEntry,_FILE_AND_LINE_); + } + + while (entriesToRead.IsEmpty()==false) + { + forwardEntry=entriesToRead.Pop(); + + const int flag=0; + int receivedDataLen, len=0; + unsigned short portnum=0; + len2 = sizeof( sa ); + sa.sin_family = AF_INET; + receivedDataLen = recvfrom__( forwardEntry->socket, data, MAXIMUM_MTU_SIZE, flag, ( sockaddr* ) & sa, ( socklen_t* ) & len2 ); + + if (receivedDataLen<0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = WSAGetLastError(); + + if (dwIOError!=WSAECONNRESET && dwIOError!=WSAEINTR && dwIOError!=WSAETIMEDOUT) + { + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "recvfrom failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); + } +#endif + continue; + } + + portnum = ntohs( sa.sin_port ); + if (forwardEntry->srcAndDest.source.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->updatedSourcePort==false && forwardEntry->srcAndDest.dest.GetPort()!=portnum) + { + forwardEntry->updatedSourcePort=true; + + if (forwardEntry->srcAndDest.source.GetPort()!=portnum) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.dest, forwardEntry->srcAndDest.source); + bool objectExists; + index = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists) + { + forwardList.RemoveAtIndex(index); + } + forwardEntry->srcAndDest.source.SetPort(portnum); + forwardList.Insert(forwardEntry->srcAndDest,forwardEntry,true,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.source.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->srcAndDest.source.GetPort()==portnum) + { + // Forward to dest + len=0; + sockaddr_in saOut; + saOut.sin_port = forwardEntry->srcAndDest.dest.GetPortNetworkOrder(); // User port + saOut.sin_addr.s_addr = forwardEntry->srcAndDest.dest.address.addr4.sin_addr.s_addr; + saOut.sin_family = AF_INET; + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & saOut, sizeof( saOut ) ); + } + while ( len == 0 ); + + // printf("1. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + + if (forwardEntry->srcAndDest.dest.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->updatedDestPort==false && forwardEntry->srcAndDest.source.GetPort()!=portnum) + { + forwardEntry->updatedDestPort=true; + + if (forwardEntry->srcAndDest.dest.GetPort()!=portnum) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.source, forwardEntry->srcAndDest.dest); + bool objectExists; + index = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists) + { + forwardList.RemoveAtIndex(index); + } + forwardEntry->srcAndDest.dest.SetPort(portnum); + forwardList.Insert(forwardEntry->srcAndDest,forwardEntry,true,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.dest.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->srcAndDest.dest.GetPort()==portnum) + { + // Forward to source + len=0; + sockaddr_in saOut; + saOut.sin_port = forwardEntry->srcAndDest.source.GetPortNetworkOrder(); // User port + saOut.sin_addr.s_addr = forwardEntry->srcAndDest.source.address.addr4.sin_addr.s_addr; + saOut.sin_family = AF_INET; + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & saOut, sizeof( saOut ) ); + } + while ( len == 0 ); + + // printf("2. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + } + } +} +#if RAKNET_SUPPORT_IPV6==1 +void UDPForwarder::UpdateThreaded(void) +{ + fd_set readFD; + //fd_set exceptionFD; + FD_ZERO(&readFD); +// FD_ZERO(&exceptionFD); + timeval tv; + int selectResult; + tv.tv_sec=0; + tv.tv_usec=0; + + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + + SOCKET largestDescriptor=0; + unsigned int i; + + // Remove unused entries + i=0; + while (i < forwardList.Size()) + { + if (curTime > forwardList[i]->timeLastDatagramForwarded && // Account for timestamp wrap + curTime > forwardList[i]->timeLastDatagramForwarded+forwardList[i]->timeoutOnNoDataMS) + { + RakNet::OP_DELETE(forwardList[i],_FILE_AND_LINE_); + forwardList.RemoveAtIndex(i); + } + else + i++; + } + + if (forwardList.Size()==0) + return; + + for (i=0; i < forwardList.Size(); i++) + { +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + FD_SET(forwardList[i]->socket, &readFD); +// FD_SET(forwardList[i]->readSocket, &exceptionFD); + + if (forwardList[i]->socket > largestDescriptor) + largestDescriptor = forwardList[i]->socket; + } + + selectResult=(int) select__((int) largestDescriptor+1, &readFD, 0, 0, &tv); + + char data[ MAXIMUM_MTU_SIZE ]; + sockaddr_storage their_addr; + sockaddr* sockAddrPtr; + socklen_t sockLen; + socklen_t* socketlenPtr=(socklen_t*) &sockLen; + sockaddr_in *sockAddrIn; + sockaddr_in6 *sockAddrIn6; + SystemAddress receivedAddr; + sockLen=sizeof(their_addr); + sockAddrPtr=(sockaddr*) &their_addr; + + if (selectResult > 0) + { + DataStructures::Queue entriesToRead; + ForwardEntry *forwardEntry; + + for (i=0; i < forwardList.Size(); i++) + { + forwardEntry = forwardList[i]; + // I do this because I'm updating the forwardList, and don't want to lose FD_ISSET as the list is no longer in order + if (FD_ISSET(forwardEntry->socket, &readFD)) + entriesToRead.Push(forwardEntry,_FILE_AND_LINE_); + } + + while (entriesToRead.IsEmpty()==false) + { + forwardEntry=entriesToRead.Pop(); + + const int flag=0; + int receivedDataLen, len=0; + receivedDataLen = recvfrom__( forwardEntry->socket, data, MAXIMUM_MTU_SIZE, flag, sockAddrPtr, socketlenPtr ); + + if (receivedDataLen<0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = WSAGetLastError(); + + if (dwIOError!=WSAECONNRESET && dwIOError!=WSAEINTR && dwIOError!=WSAETIMEDOUT) + { + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "recvfrom failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); + } +#endif + continue; + } + + if (their_addr.ss_family==AF_INET) + { + sockAddrIn=(sockaddr_in *)&their_addr; + sockAddrIn6=0; + memcpy(&receivedAddr.address.addr4,sockAddrIn,sizeof(sockaddr_in)); + // receivedAddr.address.addr4.sin_port=ntohs( sockAddrIn->sin_port ); + } + else + { + sockAddrIn=0; + sockAddrIn6=(sockaddr_in6 *)&their_addr; + memcpy(&receivedAddr.address.addr6,sockAddrIn6,sizeof(sockaddr_in6)); + // receivedAddr.address.addr6.sin6_port=ntohs( sockAddrIn6->sin6_port ); + } + + if (forwardEntry->srcAndDest.source.EqualsExcludingPort(receivedAddr) && forwardEntry->updatedSourcePort==false && forwardEntry->srcAndDest.dest.GetPort()!=receivedAddr.GetPort()) + { + forwardEntry->updatedSourcePort=true; + + if (forwardEntry->srcAndDest.source.GetPort()!=receivedAddr.GetPort()) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.dest, forwardEntry->srcAndDest.source); + bool objectExists; + index=forwardList.GetIndexFromKey(srcAndDest, &objectExists); + forwardList.RemoveAtIndex(index); + forwardEntry->srcAndDest.source.SetPort(receivedAddr.GetPort()); + forwardList.Push(forwardEntry,forwardEntry->srcAndDest,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.source.EqualsExcludingPort(receivedAddr) && forwardEntry->srcAndDest.source.GetPort()==receivedAddr.GetPort()) + { + // Forward to dest + len=0; + + if (forwardEntry->srcAndDest.dest.address.addr4.sin_family==AF_INET) + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.dest.address.addr4, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + else + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.dest.address.addr6, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + + + // printf("1. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + + if (forwardEntry->srcAndDest.dest.EqualsExcludingPort(receivedAddr) && forwardEntry->updatedDestPort==false && forwardEntry->srcAndDest.source.GetPort()!=receivedAddr.GetPort()) + { + forwardEntry->updatedDestPort=true; + + if (forwardEntry->srcAndDest.dest.GetPort()!=receivedAddr.GetPort()) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.source, forwardEntry->srcAndDest.dest); + index=forwardList.GetIndexOf(srcAndDest); + forwardList.RemoveAtIndex(index); + forwardEntry->srcAndDest.dest.SetPort(receivedAddr.GetPort()); + forwardList.Push(forwardEntry,forwardEntry->srcAndDest,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.dest.EqualsExcludingPort(receivedAddr) && forwardEntry->srcAndDest.dest.GetPort()==receivedAddr.GetPort()) + { + // Forward to source + len=0; + if (forwardEntry->srcAndDest.source.address.addr4.sin_family==AF_INET) + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.source.address.addr4, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + else + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.source.address.addr6, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + + // printf("2. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + } + } +} +#endif // #if RAKNET_SUPPORT_IPV6!=1 +void UDPForwarder::SetMaxForwardEntries(unsigned short maxEntries) +{ + RakAssert(maxEntries>0 && maxEntries<65535/2); + maxForwardEntries=maxEntries; +} +int UDPForwarder::GetMaxForwardEntries(void) const +{ + return maxForwardEntries; +} +int UDPForwarder::GetUsedForwardEntries(void) const +{ + return (int) forwardList.Size(); +} +UDPForwarderResult UDPForwarder::AddForwardingEntry(SrcAndDest srcAndDest, RakNet::TimeMS timeoutOnNoDataMS, unsigned short *port, const char *forceHostAddress, short socketFamily) +{ + (void) socketFamily; + + unsigned int insertionIndex; + bool objectExists; + insertionIndex = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists==false) + { +#if RAKNET_SUPPORT_IPV6!=1 + int sock_opt; + sockaddr_in listenerSocketAddress; + listenerSocketAddress.sin_port = 0; + ForwardEntry *fe = RakNet::OP_NEW(_FILE_AND_LINE_); + fe->srcAndDest=srcAndDest; + fe->timeoutOnNoDataMS=timeoutOnNoDataMS; + fe->socket = socket__( AF_INET, SOCK_DGRAM, 0 ); + + //printf("Made socket %i\n", fe->readSocket); + + // This doubles the max throughput rate + sock_opt=1024*256; + setsockopt__(fe->socket, SOL_SOCKET, SO_RCVBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + // Immediate hard close. Don't linger the readSocket, or recreating the readSocket quickly on Vista fails. + sock_opt=0; + setsockopt__(fe->socket, SOL_SOCKET, SO_LINGER, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + listenerSocketAddress.sin_family = AF_INET; + + if (forceHostAddress && forceHostAddress[0]) + { + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( forceHostAddress ); + + } + else + { + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + } + + int ret = bind__( fe->socket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + if (ret==-1) + { + RakNet::OP_DELETE(fe,_FILE_AND_LINE_); + return UDPFORWARDER_BIND_FAILED; + } +#else + ForwardEntry *fe = RakNet::OP_NEW(_FILE_AND_LINE_); + fe->srcAndDest=srcAndDest; + fe->timeoutOnNoDataMS=timeoutOnNoDataMS; + fe->socket=INVALID_SOCKET; + + struct addrinfo hints; + memset(&hints, 0, sizeof (addrinfo)); // make sure the struct is empty + hints.ai_family = socketFamily; + hints.ai_socktype = SOCK_DGRAM; // UDP sockets + hints.ai_flags = AI_PASSIVE; // fill in my IP for me + struct addrinfo *servinfo=0, *aip; // will point to the results + + + RakAssert(forceHostAddress==0 || forceHostAddress[0]!=0); + if (_stricmp(forceHostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0) + { + getaddrinfo(0, "0", &hints, &servinfo); + } + else + { + getaddrinfo(forceHostAddress, "0", &hints, &servinfo); + } + + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + fe->socket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (fe->socket != INVALID_SOCKET) + { + int ret = bind__( fe->socket, aip->ai_addr, (int) aip->ai_addrlen ); + if (ret>=0) + { + break; + } + else + { + closesocket__(fe->socket); + fe->socket=INVALID_SOCKET; + } + } + } + + if (fe->socket==INVALID_SOCKET) + return UDPFORWARDER_BIND_FAILED; + + //printf("Made socket %i\n", fe->readSocket); + + // This doubles the max throughput rate + int sock_opt; + sock_opt=1024*256; + setsockopt__(fe->socket, SOL_SOCKET, SO_RCVBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + // Immediate hard close. Don't linger the readSocket, or recreating the readSocket quickly on Vista fails. + sock_opt=0; + setsockopt__(fe->socket, SOL_SOCKET, SO_LINGER, ( char * ) & sock_opt, sizeof ( sock_opt ) ); +#endif // #if RAKNET_SUPPORT_IPV6!=1 + +// unsigned int oldSize = forwardList.Size(); + forwardList.InsertAtIndex(fe,insertionIndex,_FILE_AND_LINE_); + // RakAssert(forwardList.GetIndexOf(fe->srcAndDest)!=(unsigned int) -1); + *port = SocketLayer::GetLocalPort ( fe->socket ); + return UDPFORWARDER_SUCCESS; + } + + return UDPFORWARDER_FORWARDING_ALREADY_EXISTS; +} +UDPForwarderResult UDPForwarder::StartForwarding(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket) +{ + // Invalid parameters? + if (timeoutOnNoDataMS == 0 || timeoutOnNoDataMS > UDP_FORWARDER_MAXIMUM_TIMEOUT || source==UNASSIGNED_SYSTEM_ADDRESS || destination==UNASSIGNED_SYSTEM_ADDRESS) + return UDPFORWARDER_INVALID_PARAMETERS; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED + ThreadOperation threadOperation; + threadOperation.source=source; + threadOperation.destination=destination; + threadOperation.timeoutOnNoDataMS=timeoutOnNoDataMS; + threadOperation.forceHostAddress=forceHostAddress; + threadOperation.socketFamily=socketFamily; + threadOperation.operation=ThreadOperation::TO_START_FORWARDING; + threadOperationIncomingMutex.Lock(); + threadOperationIncomingQueue.Push(threadOperation, _FILE_AND_LINE_ ); + threadOperationIncomingMutex.Unlock(); + + while (1) + { + RakSleep(0); + threadOperationOutgoingMutex.Lock(); + if (threadOperationOutgoingQueue.Size()!=0) + { + threadOperation=threadOperationOutgoingQueue.Pop(); + threadOperationOutgoingMutex.Unlock(); + if (forwardingPort) + *forwardingPort=threadOperation.forwardingPort; + if (forwardingSocket) + *forwardingSocket=threadOperation.forwardingSocket; + return threadOperation.result; + } + threadOperationOutgoingMutex.Unlock(); + + } +#else + return StartForwardingThreaded(source, destination, timeoutOnNoDataMS, forceHostAddress, socketFamily, srcToDestPort, destToSourcePort, srcToDestSocket, destToSourceSocket); +#endif + +} +UDPForwarderResult UDPForwarder::StartForwardingThreaded(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket) +{ + SrcAndDest srcAndDest(source, destination); + + UDPForwarderResult result = AddForwardingEntry(srcAndDest, timeoutOnNoDataMS, forwardingPort, forceHostAddress, socketFamily); + + if (result!=UDPFORWARDER_SUCCESS) + return result; + + if (*forwardingSocket) + { + unsigned int idx; + bool objectExists; + idx = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + RakAssert(objectExists); + *forwardingSocket=forwardList[idx]->socket; + } + + return UDPFORWARDER_SUCCESS; +} +void UDPForwarder::StopForwarding(SystemAddress source, SystemAddress destination) +{ +#ifdef UDP_FORWARDER_EXECUTE_THREADED + ThreadOperation threadOperation; + threadOperation.source=source; + threadOperation.destination=destination; + threadOperation.operation=ThreadOperation::TO_STOP_FORWARDING; + threadOperationIncomingMutex.Lock(); + threadOperationIncomingQueue.Push(threadOperation, _FILE_AND_LINE_ ); + threadOperationIncomingMutex.Unlock(); +#else + StopForwardingThreaded(source, destination); +#endif +} +void UDPForwarder::StopForwardingThreaded(SystemAddress source, SystemAddress destination) +{ + SrcAndDest srcAndDest(destination,source); + + bool objectExists; + unsigned int idx = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists) + { + RakNet::OP_DELETE(forwardList[idx],_FILE_AND_LINE_); + forwardList.RemoveAtIndex(idx); + } +} +namespace RakNet { +#ifdef UDP_FORWARDER_EXECUTE_THREADED +RAK_THREAD_DECLARATION(UpdateUDPForwarder) +{ + + + + UDPForwarder * udpForwarder = ( UDPForwarder * ) arguments; + + + udpForwarder->threadRunning=true; + UDPForwarder::ThreadOperation threadOperation; + while (udpForwarder->isRunning) + { + udpForwarder->threadOperationIncomingMutex.Lock(); + while (udpForwarder->threadOperationIncomingQueue.Size()) + { + threadOperation=udpForwarder->threadOperationIncomingQueue.Pop(); + udpForwarder->threadOperationIncomingMutex.Unlock(); + if (threadOperation.operation==UDPForwarder::ThreadOperation::TO_START_FORWARDING) + { + threadOperation.result=udpForwarder->StartForwardingThreaded(threadOperation.source, threadOperation.destination, threadOperation.timeoutOnNoDataMS, + threadOperation.forceHostAddress, threadOperation.socketFamily, &threadOperation.forwardingPort, &threadOperation.forwardingSocket); + udpForwarder->threadOperationOutgoingMutex.Lock(); + udpForwarder->threadOperationOutgoingQueue.Push(threadOperation, _FILE_AND_LINE_ ); + udpForwarder->threadOperationOutgoingMutex.Unlock(); + } + else + { + udpForwarder->StopForwardingThreaded(threadOperation.source, threadOperation.destination); + } + + + udpForwarder->threadOperationIncomingMutex.Lock(); + } + udpForwarder->threadOperationIncomingMutex.Unlock(); + +#if RAKNET_SUPPORT_IPV6!=1 + udpForwarder->UpdateThreaded_Old(); +#else + udpForwarder->UpdateThreaded(); +#endif + + + // 12/1/2010 Do not change from 0 + // See http://www.jenkinssoftware.com/forum/index.php?topic=4033.0;topicseen + // Avoid 100% reported CPU usage + RakSleep(0); + } + udpForwarder->threadRunning=false; + + + + + return 0; + + +} +} // namespace RakNet +#endif + +#endif // #if _RAKNET_SUPPORT_FileOperations==1 diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPForwarder.h b/project/lib_projects/raknet/jni/RaknetSources/UDPForwarder.h new file mode 100755 index 0000000..372352e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPForwarder.h @@ -0,0 +1,177 @@ +/// \file +/// \brief Forwards UDP datagrams. Independent of RakNet's protocol. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __UDP_FORWARDER_H +#define __UDP_FORWARDER_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "SocketIncludes.h" +#include "UDPProxyCommon.h" +#include "SimpleMutex.h" +#include "RakString.h" +#include "RakThread.h" +#include "DS_Queue.h" +#include "DS_OrderedList.h" + +#define UDP_FORWARDER_EXECUTE_THREADED + +namespace RakNet +{ + +enum UDPForwarderResult +{ + UDPFORWARDER_FORWARDING_ALREADY_EXISTS, + UDPFORWARDER_NO_SOCKETS, + UDPFORWARDER_BIND_FAILED, + UDPFORWARDER_INVALID_PARAMETERS, + UDPFORWARDER_SUCCESS, + +}; + +/// \brief Forwards UDP datagrams. Independent of RakNet's protocol. +/// \ingroup NAT_PUNCHTHROUGH_GROUP +class RAK_DLL_EXPORT UDPForwarder +{ +public: + UDPForwarder(); + ~UDPForwarder(); + + /// Starts the system. + /// Required to call before StartForwarding + void Startup(void); + + /// Stops the system, and frees all sockets + void Shutdown(void); + + /// Call on a regular basis, unless using UDP_FORWARDER_EXECUTE_THREADED. + /// Will call select__() on all sockets and forward messages. + void Update(void); + + /// Sets the maximum number of forwarding entries allowed + /// Set according to your available bandwidth and the estimated average bandwidth per forwarded address. + /// A single connection requires 2 entries, as connections are bi-directional. + /// \param[in] maxEntries The maximum number of simultaneous forwarding entries. Defaults to 64 (32 connections) + void SetMaxForwardEntries(unsigned short maxEntries); + + /// \return The \a maxEntries parameter passed to SetMaxForwardEntries(), or the default if it was never called + int GetMaxForwardEntries(void) const; + + /// \note Each call to StartForwarding uses up two forwarding entries, since communications are bidirectional + /// \return How many entries have been used + int GetUsedForwardEntries(void) const; + + /// Forwards datagrams from source to destination, and vice-versa + /// Does nothing if this forward entry already exists via a previous call + /// \pre Call Startup() + /// \note RakNet's protocol will ensure a message is sent at least every 15 seconds, so if routing RakNet messages, it is a reasonable value for timeoutOnNoDataMS, plus an some extra seconds for latency + /// \param[in] source The source IP and port + /// \param[in] destination Where to forward to (and vice-versa) + /// \param[in] timeoutOnNoDataMS If no messages are forwarded for this many MS, then automatically remove this entry. Currently hardcoded to UDP_FORWARDER_MAXIMUM_TIMEOUT (else the call fails) + /// \param[in] forceHostAddress Force binding on a particular address. 0 to use any. + /// \param[in] socketFamily IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + short socketFamily; + /// \param[out] forwardingPort New opened port for forwarding + /// \param[out] forwardingSocket New opened socket for forwarding + /// \return UDPForwarderResult + UDPForwarderResult StartForwarding(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket); + + /// No longer forward datagrams from source to destination + /// \param[in] source The source IP and port + /// \param[in] destination Where to forward to + void StopForwarding(SystemAddress source, SystemAddress destination); + + struct SrcAndDest + { + SrcAndDest() {} + SrcAndDest(SystemAddress sa1, SystemAddress sa2) + { + if (sa1 < sa2) + { + source=sa1; + dest=sa2; + } + else + { + source=sa2; + dest=sa1; + } + } + SystemAddress source; + SystemAddress dest; + }; + + struct ForwardEntry + { + ForwardEntry(); + ~ForwardEntry(); + SrcAndDest srcAndDest; + RakNet::TimeMS timeLastDatagramForwarded; + SOCKET socket; + RakNet::TimeMS timeoutOnNoDataMS; + bool updatedSourcePort, updatedDestPort; + short socketFamily; + }; + + +protected: + + static int SrcAndDestForwardEntryComp( const SrcAndDest &inputKey, ForwardEntry * const &cls ); + + + friend RAK_THREAD_DECLARATION(UpdateUDPForwarder); + struct ThreadOperation + { + enum { + TO_NONE, + TO_START_FORWARDING, + TO_STOP_FORWARDING, + } operation; + + SystemAddress source; + SystemAddress destination; + RakNet::TimeMS timeoutOnNoDataMS; + RakNet::RakString forceHostAddress; + unsigned short forwardingPort; + SOCKET forwardingSocket; + UDPForwarderResult result; + unsigned short socketFamily; + }; + SimpleMutex threadOperationIncomingMutex,threadOperationOutgoingMutex; + DataStructures::Queue threadOperationIncomingQueue; + DataStructures::Queue threadOperationOutgoingQueue; + +#if RAKNET_SUPPORT_IPV6==1 + void UpdateThreaded(void); +#endif + void UpdateThreaded_Old(void); + UDPForwarderResult StartForwardingThreaded(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket); + void StopForwardingThreaded(SystemAddress source, SystemAddress destination); + + DataStructures::OrderedList forwardList; + unsigned short maxForwardEntries; + + UDPForwarderResult AddForwardingEntry(SrcAndDest srcAndDest, RakNet::TimeMS timeoutOnNoDataMS, unsigned short *port, const char *forceHostAddress, short socketFamily); + + + bool isRunning, threadRunning; + + + +}; + +} // End namespace + +#endif + +#endif // #if _RAKNET_SUPPORT_UDPForwarder==1 diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyClient.cpp b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyClient.cpp new file mode 100755 index 0000000..3ce9a2d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyClient.cpp @@ -0,0 +1,301 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyClient==1 + +#include "UDPProxyClient.h" +#include "BitStream.h" +#include "UDPProxyCommon.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "GetTime.h" + +using namespace RakNet; +static const int DEFAULT_UNRESPONSIVE_PING_TIME=1000; + +// bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPProxyClient::ServerWithPing &cls ) {return inputKey.Get().serverAddress < cls.serverAddress;} +// bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPProxyClient::ServerWithPing &cls ) {return inputKey.Get().serverAddress > cls.serverAddress;} +// bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPProxyClient::ServerWithPing &cls ) {return inputKey.Get().serverAddress == cls.serverAddress;} + +STATIC_FACTORY_DEFINITIONS(UDPProxyClient,UDPProxyClient); + +UDPProxyClient::UDPProxyClient() +{ + resultHandler=0; +} +UDPProxyClient::~UDPProxyClient() +{ + Clear(); +} +void UDPProxyClient::SetResultHandler(UDPProxyClientResultHandler *rh) +{ + resultHandler=rh; +} +bool UDPProxyClient::RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, RakNetGUID targetGuid, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream) +{ + // Return false if not connected + ConnectionState cs = rakPeerInterface->GetConnectionState(proxyCoordinator); + if (cs!=IS_CONNECTED) + return false; + + // Pretty much a bug not to set the result handler, as otherwise you won't know if the operation succeeed or not + RakAssert(resultHandler!=0); + if (resultHandler==0) + return false; + + BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(false); + outgoingBs.Write(targetGuid); + outgoingBs.Write(timeoutOnNoDataMS); + if (serverSelectionBitstream && serverSelectionBitstream->GetNumberOfBitsUsed()>0) + { + outgoingBs.Write(true); + outgoingBs.Write(serverSelectionBitstream); + } + else + { + outgoingBs.Write(false); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, proxyCoordinator, false); + + return true; +} +bool UDPProxyClient::RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddressAsSeenFromCoordinator, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream) +{ + // Return false if not connected + ConnectionState cs = rakPeerInterface->GetConnectionState(proxyCoordinator); + if (cs!=IS_CONNECTED) + return false; + + // Pretty much a bug not to set the result handler, as otherwise you won't know if the operation succeeed or not + RakAssert(resultHandler!=0); + if (resultHandler==0) + return false; + + BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(true); + outgoingBs.Write(targetAddressAsSeenFromCoordinator); + outgoingBs.Write(timeoutOnNoDataMS); + if (serverSelectionBitstream && serverSelectionBitstream->GetNumberOfBitsUsed()>0) + { + outgoingBs.Write(true); + outgoingBs.Write(serverSelectionBitstream); + } + else + { + outgoingBs.Write(false); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, proxyCoordinator, false); + + return true; +} +void UDPProxyClient::Update(void) +{ + unsigned int idx1=0; + while (idx1 < pingServerGroups.Size()) + { + PingServerGroup *psg = pingServerGroups[idx1]; + + if (psg->serversToPing.Size() > 0 && + RakNet::GetTimeMS() > psg->startPingTime+DEFAULT_UNRESPONSIVE_PING_TIME) + { + // If they didn't reply within DEFAULT_UNRESPONSIVE_PING_TIME, just give up on them + psg->SendPingedServersToCoordinator(rakPeerInterface); + + RakNet::OP_DELETE(psg,_FILE_AND_LINE_); + pingServerGroups.RemoveAtIndex(idx1); + } + else + idx1++; + } + +} +PluginReceiveResult UDPProxyClient::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_UNCONNECTED_PONG) + { + unsigned int idx1, idx2; + PingServerGroup *psg; + for (idx1=0; idx1 < pingServerGroups.Size(); idx1++) + { + psg = pingServerGroups[idx1]; + for (idx2=0; idx2 < psg->serversToPing.Size(); idx2++) + { + if (psg->serversToPing[idx2].serverAddress==packet->systemAddress) + { + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + RakNet::TimeMS sentTime; + bsIn.Read(sentTime); + RakNet::TimeMS curTime=RakNet::GetTimeMS(); + int ping; + if (curTime>sentTime) + ping=(int) (curTime-sentTime); + else + ping=0; + psg->serversToPing[idx2].ping=(unsigned short) ping; + + // If all servers to ping are now pinged, reply to coordinator + if (psg->AreAllServersPinged()) + { + psg->SendPingedServersToCoordinator(rakPeerInterface); + RakNet::OP_DELETE(psg,_FILE_AND_LINE_); + pingServerGroups.RemoveAtIndex(idx1); + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + } + } + else if (packet->data[0]==ID_UDP_PROXY_GENERAL && packet->length>1) + { + switch (packet->data[1]) + { + case ID_UDP_PROXY_PING_SERVERS_FROM_COORDINATOR_TO_CLIENT: + { + OnPingServers(packet); + } + break; + case ID_UDP_PROXY_FORWARDING_SUCCEEDED: + case ID_UDP_PROXY_ALL_SERVERS_BUSY: + case ID_UDP_PROXY_IN_PROGRESS: + case ID_UDP_PROXY_NO_SERVERS_ONLINE: + case ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR: + case ID_UDP_PROXY_FORWARDING_NOTIFICATION: + { + RakNetGUID targetGuid; + SystemAddress senderAddress, targetAddress; + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)*2); + incomingBs.Read(senderAddress); + incomingBs.Read(targetAddress); + incomingBs.Read(targetGuid); + + switch (packet->data[1]) + { + case ID_UDP_PROXY_FORWARDING_NOTIFICATION: + case ID_UDP_PROXY_FORWARDING_SUCCEEDED: + { + unsigned short forwardingPort; + RakNet::RakString serverIP; + incomingBs.Read(serverIP); + incomingBs.Read(forwardingPort); + if (packet->data[1]==ID_UDP_PROXY_FORWARDING_SUCCEEDED) + { + if (resultHandler) + resultHandler->OnForwardingSuccess(serverIP.C_String(), forwardingPort, packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + } + else + { + // Send a datagram to the proxy, so if we are behind a router, that router adds an entry to the routing table. + // Otherwise the router would block the incoming datagrams from source + // It doesn't matter if the message actually arrives as long as it goes through the router + rakPeerInterface->Ping(serverIP.C_String(), forwardingPort, false); + + if (resultHandler) + resultHandler->OnForwardingNotification(serverIP.C_String(), forwardingPort, packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + } + } + break; + case ID_UDP_PROXY_ALL_SERVERS_BUSY: + if (resultHandler) + resultHandler->OnAllServersBusy(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + case ID_UDP_PROXY_IN_PROGRESS: + if (resultHandler) + resultHandler->OnForwardingInProgress(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + case ID_UDP_PROXY_NO_SERVERS_ONLINE: + if (resultHandler) + resultHandler->OnNoServersOnline(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + case ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR: + { + if (resultHandler) + resultHandler->OnRecipientNotConnected(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + } + } + + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + return RR_CONTINUE_PROCESSING; +} +void UDPProxyClient::OnRakPeerShutdown(void) +{ + Clear(); +} +void UDPProxyClient::OnPingServers(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + + PingServerGroup *psg = RakNet::OP_NEW(_FILE_AND_LINE_); + + ServerWithPing swp; + incomingBs.Read(psg->sata.senderClientAddress); + incomingBs.Read(psg->sata.targetClientAddress); + psg->startPingTime=RakNet::GetTimeMS(); + psg->coordinatorAddressForPings=packet->systemAddress; + unsigned short serverListSize; + incomingBs.Read(serverListSize); + SystemAddress serverAddress; + unsigned short serverListIndex; + char ipStr[64]; + for (serverListIndex=0; serverListIndexserversToPing.Push(swp, _FILE_AND_LINE_ ); + swp.serverAddress.ToString(false,ipStr); + rakPeerInterface->Ping(ipStr,swp.serverAddress.GetPort(),false,0); + } + pingServerGroups.Push(psg,_FILE_AND_LINE_); +} + +bool UDPProxyClient::PingServerGroup::AreAllServersPinged(void) const +{ + unsigned int serversToPingIndex; + for (serversToPingIndex=0; serversToPingIndex < serversToPing.Size(); serversToPingIndex++) + { + if (serversToPing[serversToPingIndex].ping==DEFAULT_UNRESPONSIVE_PING_TIME) + return false; + } + return true; +} + +void UDPProxyClient::PingServerGroup::SendPingedServersToCoordinator(RakPeerInterface *rakPeerInterface) +{ + BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_PING_SERVERS_REPLY_FROM_CLIENT_TO_COORDINATOR); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + unsigned short serversToPingSize = (unsigned short) serversToPing.Size(); + outgoingBs.Write(serversToPingSize); + unsigned int serversToPingIndex; + for (serversToPingIndex=0; serversToPingIndex < serversToPingSize; serversToPingIndex++) + { + outgoingBs.Write(serversToPing[serversToPingIndex].serverAddress); + outgoingBs.Write(serversToPing[serversToPingIndex].ping); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, coordinatorAddressForPings, false); +} +void UDPProxyClient::Clear(void) +{ + for (unsigned int i=0; i < pingServerGroups.Size(); i++) + RakNet::OP_DELETE(pingServerGroups[i],_FILE_AND_LINE_); + pingServerGroups.Clear(false, _FILE_AND_LINE_); +} + + +#endif // _RAKNET_SUPPORT_* + diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyClient.h b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyClient.h new file mode 100755 index 0000000..fe49847 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyClient.h @@ -0,0 +1,178 @@ +/// \file +/// \brief A RakNet plugin performing networking to communicate with UDPProxyCoordinator. Ultimately used to tell UDPProxyServer to forward UDP packets. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyClient==1 + +#ifndef __UDP_PROXY_CLIENT_H +#define __UDP_PROXY_CLIENT_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "DS_List.h" + +/// \defgroup UDP_PROXY_GROUP UDPProxy +/// \brief Forwards UDP datagrams from one system to another. Protocol independent +/// \details Used when NatPunchthroughClient fails +/// \ingroup PLUGINS_GROUP + +namespace RakNet +{ +class UDPProxyClient; + +/// Callback to handle results of calling UDPProxyClient::RequestForwarding() +/// \ingroup UDP_PROXY_GROUP +struct UDPProxyClientResultHandler +{ + UDPProxyClientResultHandler() {} + virtual ~UDPProxyClientResultHandler() {} + + /// Called when our forwarding request was completed. We can now connect to \a targetAddress by using \a proxyAddress instead + /// \param[out] proxyIPAddress IP Address of the proxy server, which will forward messages to targetAddress + /// \param[out] proxyPort Remote port to use on the proxy server, which will forward messages to targetAddress + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnForwardingSuccess(const char *proxyIPAddress, unsigned short proxyPort, + SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when another system has setup forwarding, with our system as the target address. + /// Plugin automatically sends a datagram to proxyIPAddress before this callback, to open our router if necessary. + /// \param[out] proxyIPAddress IP Address of the proxy server, which will forward messages to targetAddress + /// \param[out] proxyPort Remote port to use on the proxy server, which will forward messages to targetAddress + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. This is originating source IP address of the remote system that will be sending to us. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding. This is our external IP address. + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnForwardingNotification(const char *proxyIPAddress, unsigned short proxyPort, + SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request failed, because no UDPProxyServers are connected to UDPProxyCoordinator + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnNoServersOnline(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request failed, because no UDPProxyServers are connected to UDPProxyCoordinator + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnRecipientNotConnected(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request failed, because all UDPProxyServers that are connected to UDPProxyCoordinator are at their capacity + /// Either add more servers, or increase capacity via UDPForwarder::SetMaxForwardEntries() + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnAllServersBusy(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request is already in progress on the \a proxyCoordinator. + /// This can be ignored, but indicates an unneeded second request + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnForwardingInProgress(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; +}; + + +/// \brief Communicates with UDPProxyCoordinator, in order to find a UDPProxyServer to forward our datagrams. +/// \details When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa.
    +/// The class to forward messages is UDPForwarder, and it is triggered over the network via the UDPProxyServer plugin.
    +/// The UDPProxyClient connects to UDPProxyCoordinator to get a list of servers running UDPProxyServer, and the coordinator will relay our forwarding request +/// \sa NatPunchthroughServer +/// \sa NatPunchthroughClient +/// \ingroup UDP_PROXY_GROUP +class RAK_DLL_EXPORT UDPProxyClient : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(UDPProxyClient) + + UDPProxyClient(); + ~UDPProxyClient(); + + /// Receives the results of calling RequestForwarding() + /// Set before calling RequestForwarding or you won't know what happened + /// \param[in] resultHandler + void SetResultHandler(UDPProxyClientResultHandler *rh); + + /// Sends a request to proxyCoordinator to find a server and have that server setup UDPForwarder::StartForwarding() on our address to \a targetAddressAsSeenFromCoordinator + /// The forwarded datagrams can be from any UDP source, not just RakNet + /// \pre Must be connected to \a proxyCoordinator + /// \pre Systems running UDPProxyServer must be connected to \a proxyCoordinator and logged in via UDPProxyCoordinator::LoginServer() or UDPProxyServer::LoginToCoordinator() + /// \note May still fail, if all proxy servers have no open connections. + /// \note RakNet's protocol will ensure a message is sent at least every 5 seconds, so if routing RakNet messages, it is a reasonable value for timeoutOnNoDataMS, plus an extra few seconds for latency. + /// \param[in] proxyCoordinator System we are connected to that is running the UDPProxyCoordinator plugin + /// \param[in] sourceAddress External IP address of the system we want to forward messages from. This does not have to be our own system. To specify our own system, you can pass UNASSIGNED_SYSTEM_ADDRESS which the coordinator will treat as our external IP address. + /// \param[in] targetAddressAsSeenFromCoordinator External IP address of the system we want to forward messages to. If this system is connected to UDPProxyCoordinator at this address using RakNet, that system will ping the server and thus open the router for incoming communication. In any other case, you are responsible for doing your own network communication to have that system ping the server. See also targetGuid in the other version of RequestForwarding(), to avoid the need to know the IP address to the coordinator of the destination. + /// \param[in] timeoutOnNoData If no data is sent by the forwarded systems, how long before removing the forward entry from UDPForwarder? UDP_FORWARDER_MAXIMUM_TIMEOUT is the maximum value. Recommended high enough to not drop valid connections, but low enough to not waste forwarding slots on the proxy server. + /// \param[in] serverSelectionBitstream If you want to send data to UDPProxyCoordinator::GetBestServer(), write it here + /// \return true if the request was sent, false if we are not connected to proxyCoordinator + bool RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddressAsSeenFromCoordinator, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream=0); + + /// Same as above, but specify the target with a GUID, in case you don't know what its address is to the coordinator + /// If requesting forwarding to a RakNet enabled system, then it is easier to use targetGuid instead of targetAddressAsSeenFromCoordinator + bool RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, RakNetGUID targetGuid, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream=0); + + /// \internal + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnRakPeerShutdown(void); + + struct ServerWithPing + { + unsigned short ping; + SystemAddress serverAddress; + }; + struct SenderAndTargetAddress + { + SystemAddress senderClientAddress; + SystemAddress targetClientAddress; + }; + struct PingServerGroup + { + SenderAndTargetAddress sata; + RakNet::TimeMS startPingTime; + SystemAddress coordinatorAddressForPings; + //DataStructures::Multilist serversToPing; + DataStructures::List serversToPing; + bool AreAllServersPinged(void) const; + void SendPingedServersToCoordinator(RakPeerInterface *rakPeerInterface); + }; + //DataStructures::Multilist pingServerGroups; + DataStructures::List pingServerGroups; +protected: + + void OnPingServers(Packet *packet); + void Clear(void); + UDPProxyClientResultHandler *resultHandler; + +}; + +} // End namespace + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCommon.h b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCommon.h new file mode 100755 index 0000000..29699f3 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCommon.h @@ -0,0 +1,57 @@ +#ifndef __UDP_PROXY_COMMON_H +#define __UDP_PROXY_COMMON_H + +// System flow: +/* +UDPProxyClient: End user +UDPProxyServer: open server, to route messages from end users that can't connect to each other using UDPForwarder class. +UDPProxyCoordinator: Server somewhere, connected to by RakNet, to maintain a list of UDPProxyServer + +UDPProxyServer + On startup, log into UDPProxyCoordinator and register self + +UDPProxyClient + Wish to open route to X + Send message to UDPProxyCoordinator containing X, desired timeout + Wait for success or failure + +UDPProxyCoordinator: +* Get openRouteRequest + If no servers registered, return failure + Add entry to memory + chooseBestUDPProxyServer() (overridable, chooses at random by default) + Query this server to StartForwarding(). Return success or failure + If failure, choose another server from the remaining list. If none remaining, return failure. Else return success. +* Disconnect: + If disconnected system is pending client on openRouteRequest, delete that request + If disconnected system is UDPProxyServer, remove from list. For each pending client for this server, choose from remaining servers. +* Login: + Add to UDPProxyServer list, validating password if set +*/ + +// Stored in the second byte after ID_UDP_PROXY_GENERAL +// Otherwise MessageIdentifiers.h is too cluttered and will hit the limit on enumerations in a single byte +enum UDPProxyMessages +{ + ID_UDP_PROXY_FORWARDING_SUCCEEDED, + ID_UDP_PROXY_FORWARDING_NOTIFICATION, + ID_UDP_PROXY_NO_SERVERS_ONLINE, + ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR, + ID_UDP_PROXY_ALL_SERVERS_BUSY, + ID_UDP_PROXY_IN_PROGRESS, + ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR, + ID_UDP_PROXY_PING_SERVERS_FROM_COORDINATOR_TO_CLIENT, + ID_UDP_PROXY_PING_SERVERS_REPLY_FROM_CLIENT_TO_COORDINATOR, + ID_UDP_PROXY_FORWARDING_REQUEST_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_FORWARDING_REPLY_FROM_SERVER_TO_COORDINATOR, + ID_UDP_PROXY_LOGIN_REQUEST_FROM_SERVER_TO_COORDINATOR, + ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER +}; + + +#define UDP_FORWARDER_MAXIMUM_TIMEOUT (60000 * 10) + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCoordinator.cpp b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCoordinator.cpp new file mode 100755 index 0000000..9e063cd --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCoordinator.cpp @@ -0,0 +1,543 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyCoordinator==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#include "UDPProxyCoordinator.h" +#include "BitStream.h" +#include "UDPProxyCommon.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "Rand.h" +#include "GetTime.h" +#include "UDPForwarder.h" + +// Larger than the client version +static const int DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME=2000; +static const int DEFAULT_UNRESPONSIVE_PING_TIME=DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME+1000; + +using namespace RakNet; + +// bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ServerWithPing &cls ) {return inputKey.Get() < cls.ping;} +// bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ServerWithPing &cls ) {return inputKey.Get() > cls.ping;} +// bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ServerWithPing &cls ) {return inputKey.Get() == cls.ping;} + +int UDPProxyCoordinator::ServerWithPingComp( const unsigned short &key, const UDPProxyCoordinator::ServerWithPing &data ) +{ + if (key < data.ping) + return -1; + if (key > data.ping) + return 1; + return 0; +} + +int UDPProxyCoordinator::ForwardingRequestComp( const SenderAndTargetAddress &key, ForwardingRequest* const &data) +{ + if (key.senderClientAddress < data->sata.senderClientAddress ) + return -1; + if (key.senderClientAddress > data->sata.senderClientAddress ) + return -1; + if (key.targetClientAddress < data->sata.targetClientAddress ) + return -1; + if (key.targetClientAddress > data->sata.targetClientAddress ) + return 1; + return 0; +} +// +// bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ForwardingRequest *cls ) +// { +// return inputKey.Get().senderClientAddress < cls->sata.senderClientAddress || +// (inputKey.Get().senderClientAddress == cls->sata.senderClientAddress && inputKey.Get().targetClientAddress < cls->sata.targetClientAddress); +// } +// bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ForwardingRequest *cls ) +// { +// return inputKey.Get().senderClientAddress > cls->sata.senderClientAddress || +// (inputKey.Get().senderClientAddress == cls->sata.senderClientAddress && inputKey.Get().targetClientAddress > cls->sata.targetClientAddress); +// } +// bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ForwardingRequest *cls ) +// { +// return inputKey.Get().senderClientAddress == cls->sata.senderClientAddress && inputKey.Get().targetClientAddress == cls->sata.targetClientAddress; +// } + +STATIC_FACTORY_DEFINITIONS(UDPProxyCoordinator,UDPProxyCoordinator); + +UDPProxyCoordinator::UDPProxyCoordinator() +{ + +} +UDPProxyCoordinator::~UDPProxyCoordinator() +{ + Clear(); +} +void UDPProxyCoordinator::SetRemoteLoginPassword(RakNet::RakString password) +{ + remoteLoginPassword=password; +} +void UDPProxyCoordinator::Update(void) +{ + unsigned int idx; + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + ForwardingRequest *fw; + idx=0; + while (idx < forwardingRequestList.Size()) + { + fw=forwardingRequestList[idx]; + if (fw->timeRequestedPings!=0 && + curTime > fw->timeRequestedPings + DEFAULT_UNRESPONSIVE_PING_TIME) + { + fw->OrderRemainingServersToTry(); + fw->timeRequestedPings=0; + TryNextServer(fw->sata, fw); + idx++; + } + else if (fw->timeoutAfterSuccess!=0 && + curTime > fw->timeoutAfterSuccess) + { + // Forwarding request succeeded, we waited a bit to prevent duplicates. Can forget about the entry now. + RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + forwardingRequestList.RemoveAtIndex(idx); + } + else + idx++; + } +} +PluginReceiveResult UDPProxyCoordinator::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_UDP_PROXY_GENERAL && packet->length>1) + { + switch (packet->data[1]) + { + case ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR: + OnForwardingRequestFromClientToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_UDP_PROXY_LOGIN_REQUEST_FROM_SERVER_TO_COORDINATOR: + OnLoginRequestFromServerToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_UDP_PROXY_FORWARDING_REPLY_FROM_SERVER_TO_COORDINATOR: + OnForwardingReplyFromServerToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_UDP_PROXY_PING_SERVERS_REPLY_FROM_CLIENT_TO_COORDINATOR: + OnPingServersReplyFromClientToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + return RR_CONTINUE_PROCESSING; +} +void UDPProxyCoordinator::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + unsigned int idx, idx2; + + idx=0; + while (idx < forwardingRequestList.Size()) + { + if (forwardingRequestList[idx]->requestingAddress==systemAddress) + { + // Guy disconnected before the attempt completed + RakNet::OP_DELETE(forwardingRequestList[idx], _FILE_AND_LINE_); + forwardingRequestList.RemoveAtIndex(idx ); + } + else + idx++; + } + + idx = serverList.GetIndexOf(systemAddress); + if (idx!=(unsigned int)-1) + { + ForwardingRequest *fw; + // For each pending client for this server, choose from remaining servers. + for (idx2=0; idx2 < forwardingRequestList.Size(); idx2++) + { + fw = forwardingRequestList[idx2]; + if (fw->currentlyAttemptedServerAddress==systemAddress) + { + // Try the next server + TryNextServer(fw->sata, fw); + } + } + + // Remove dead server + serverList.RemoveAtIndexFast(idx); + } +} +void UDPProxyCoordinator::OnForwardingRequestFromClientToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + SystemAddress sourceAddress; + incomingBs.Read(sourceAddress); + if (sourceAddress==UNASSIGNED_SYSTEM_ADDRESS) + sourceAddress=packet->systemAddress; + SystemAddress targetAddress; + RakNetGUID targetGuid; + bool usesAddress=false; + incomingBs.Read(usesAddress); + if (usesAddress) + { + incomingBs.Read(targetAddress); + targetGuid=rakPeerInterface->GetGuidFromSystemAddress(targetAddress); + } + else + { + incomingBs.Read(targetGuid); + targetAddress=rakPeerInterface->GetSystemAddressFromGuid(targetGuid); + } + ForwardingRequest *fw = RakNet::OP_NEW(_FILE_AND_LINE_); + fw->timeoutAfterSuccess=0; + incomingBs.Read(fw->timeoutOnNoDataMS); + bool hasServerSelectionBitstream=false; + incomingBs.Read(hasServerSelectionBitstream); + if (hasServerSelectionBitstream) + incomingBs.Read(&(fw->serverSelectionBitstream)); + + RakNet::BitStream outgoingBs; + SenderAndTargetAddress sata; + sata.senderClientAddress=sourceAddress; + sata.targetClientAddress=targetAddress; + sata.targetClientGuid=targetGuid; + sata.senderClientGuid=rakPeerInterface->GetGuidFromSystemAddress(sourceAddress); + SenderAndTargetAddress sataReversed; + sataReversed.senderClientAddress=targetAddress; + sataReversed.targetClientAddress=sourceAddress; + sataReversed.senderClientGuid=sata.targetClientGuid; + sataReversed.targetClientGuid=sata.senderClientGuid; + + unsigned int insertionIndex; + bool objectExists1, objectExists2; + insertionIndex=forwardingRequestList.GetIndexFromKey(sata, &objectExists1); + forwardingRequestList.GetIndexFromKey(sataReversed, &objectExists2); + + if (objectExists1 || objectExists2) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_IN_PROGRESS); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + RakNet::OP_DELETE(fw, _FILE_AND_LINE_); + return; + } + + if (serverList.Size()==0) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_NO_SERVERS_ONLINE); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + RakNet::OP_DELETE(fw, _FILE_AND_LINE_); + return; + } + + if (rakPeerInterface->GetConnectionState(targetAddress)!=IS_CONNECTED && usesAddress==false) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + RakNet::OP_DELETE(fw, _FILE_AND_LINE_); + return; + } + + fw->sata=sata; + fw->requestingAddress=packet->systemAddress; + + if (serverList.Size()>1) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_PING_SERVERS_FROM_COORDINATOR_TO_CLIENT); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + unsigned short serverListSize = (unsigned short) serverList.Size(); + outgoingBs.Write(serverListSize); + unsigned int idx; + for (idx=0; idx < serverList.Size(); idx++) + outgoingBs.Write(serverList[idx]); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, sourceAddress, false); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, targetAddress, false); + fw->timeRequestedPings=RakNet::GetTimeMS(); + unsigned int copyIndex; + for (copyIndex=0; copyIndex < serverList.Size(); copyIndex++) + fw->remainingServersToTry.Push(serverList[copyIndex], _FILE_AND_LINE_ ); + forwardingRequestList.InsertAtIndex(fw, insertionIndex, _FILE_AND_LINE_ ); + } + else + { + fw->timeRequestedPings=0; + fw->currentlyAttemptedServerAddress=serverList[0]; + forwardingRequestList.InsertAtIndex(fw, insertionIndex, _FILE_AND_LINE_ ); + SendForwardingRequest(sourceAddress, targetAddress, fw->currentlyAttemptedServerAddress, fw->timeoutOnNoDataMS); + } +} + +void UDPProxyCoordinator::SendForwardingRequest(SystemAddress sourceAddress, SystemAddress targetAddress, SystemAddress serverAddress, RakNet::TimeMS timeoutOnNoDataMS) +{ + RakNet::BitStream outgoingBs; + // Send request to desired server + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REQUEST_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(timeoutOnNoDataMS); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, serverAddress, false); +} +void UDPProxyCoordinator::OnLoginRequestFromServerToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + RakNet::RakString password; + incomingBs.Read(password); + RakNet::BitStream outgoingBs; + + if (remoteLoginPassword.IsEmpty()) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + return; + } + + if (remoteLoginPassword!=password) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + return; + } + + unsigned int insertionIndex; + insertionIndex=serverList.GetIndexOf(packet->systemAddress); + if (insertionIndex!=(unsigned int)-1) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + return; + } + serverList.Push(packet->systemAddress, _FILE_AND_LINE_ ); + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); +} +void UDPProxyCoordinator::OnForwardingReplyFromServerToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + SenderAndTargetAddress sata; + incomingBs.Read(sata.senderClientAddress); + incomingBs.Read(sata.targetClientAddress); + bool objectExists; + unsigned int index = forwardingRequestList.GetIndexFromKey(sata, &objectExists); + if (objectExists==false) + { + // The guy disconnected before the request finished + return; + } + ForwardingRequest *fw = forwardingRequestList[index]; + sata.senderClientGuid = fw->sata.senderClientGuid; + sata.targetClientGuid = fw->sata.targetClientGuid; + + UDPForwarderResult success; + unsigned char c; + incomingBs.Read(c); + success=(UDPForwarderResult)c; + + RakNet::BitStream outgoingBs; + if (success==UDPFORWARDER_SUCCESS) + { + char serverIP[64]; + packet->systemAddress.ToString(false,serverIP); + unsigned short forwardingPort; + incomingBs.Read(forwardingPort); + + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_SUCCEEDED); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + outgoingBs.Write(sata.targetClientGuid); + outgoingBs.Write(RakNet::RakString(serverIP)); + outgoingBs.Write(forwardingPort); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, fw->requestingAddress, false); + + outgoingBs.Reset(); + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_NOTIFICATION); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + outgoingBs.Write(sata.targetClientGuid); + outgoingBs.Write(RakNet::RakString(serverIP)); + outgoingBs.Write(forwardingPort); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, sata.targetClientAddress, false); + + // 05/18/09 Keep the entry around for some time after success, so duplicates are reported if attempting forwarding from the target system before notification of success + fw->timeoutAfterSuccess=RakNet::GetTimeMS()+fw->timeoutOnNoDataMS; + // forwardingRequestList.RemoveAtIndex(index); + // RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + + return; + } + else if (success==UDPFORWARDER_NO_SOCKETS) + { + // Try next server + TryNextServer(sata, fw); + } + else + { + RakAssert(success==UDPFORWARDER_FORWARDING_ALREADY_EXISTS); + + // Return in progress + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_IN_PROGRESS); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + outgoingBs.Write(sata.targetClientGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, fw->requestingAddress, false); + forwardingRequestList.RemoveAtIndex(index); + RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + } +} +void UDPProxyCoordinator::OnPingServersReplyFromClientToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + unsigned short serversToPingSize; + SystemAddress serverAddress; + SenderAndTargetAddress sata; + incomingBs.Read(sata.senderClientAddress); + incomingBs.Read(sata.targetClientAddress); + bool objectExists; + unsigned int index = forwardingRequestList.GetIndexFromKey(sata, &objectExists); + if (objectExists==false) + return; + unsigned short idx; + ServerWithPing swp; + ForwardingRequest *fw = forwardingRequestList[index]; + if (fw->timeRequestedPings==0) + return; + + incomingBs.Read(serversToPingSize); + if (packet->systemAddress==sata.senderClientAddress) + { + for (idx=0; idx < serversToPingSize; idx++) + { + incomingBs.Read(swp.serverAddress); + incomingBs.Read(swp.ping); + unsigned int index2; + for (index2=0; index2 < fw->sourceServerPings.Size(); index2++) + { + if (fw->sourceServerPings[index2].ping >= swp.ping ) + break; + } + fw->sourceServerPings.Insert(swp, index2, _FILE_AND_LINE_); + } + } + else + { + for (idx=0; idx < serversToPingSize; idx++) + { + incomingBs.Read(swp.serverAddress); + incomingBs.Read(swp.ping); + + unsigned int index2; + for (index2=0; index2 < fw->targetServerPings.Size(); index2++) + { + if (fw->targetServerPings[index2].ping >= swp.ping ) + break; + } + fw->sourceServerPings.Insert(swp, index2, _FILE_AND_LINE_); + } + } + + // Both systems have to give us pings to progress here. Otherwise will timeout in Update() + if (fw->sourceServerPings.Size()>0 && + fw->targetServerPings.Size()>0) + { + fw->OrderRemainingServersToTry(); + fw->timeRequestedPings=0; + TryNextServer(fw->sata, fw); + } +} +void UDPProxyCoordinator::TryNextServer(SenderAndTargetAddress sata, ForwardingRequest *fw) +{ + bool pickedGoodServer=false; + while(fw->remainingServersToTry.Size()>0) + { + fw->currentlyAttemptedServerAddress=fw->remainingServersToTry.Pop(); + if (serverList.GetIndexOf(fw->currentlyAttemptedServerAddress)!=(unsigned int)-1) + { + pickedGoodServer=true; + break; + } + } + + if (pickedGoodServer==false) + { + SendAllBusy(sata.senderClientAddress, sata.targetClientAddress, sata.targetClientGuid, fw->requestingAddress); + forwardingRequestList.Remove(sata); + RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + return; + } + + SendForwardingRequest(sata.senderClientAddress, sata.targetClientAddress, fw->currentlyAttemptedServerAddress, fw->timeoutOnNoDataMS); +} +void UDPProxyCoordinator::SendAllBusy(SystemAddress senderClientAddress, SystemAddress targetClientAddress, RakNetGUID targetClientGuid, SystemAddress requestingAddress) +{ + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_ALL_SERVERS_BUSY); + outgoingBs.Write(senderClientAddress); + outgoingBs.Write(targetClientAddress); + outgoingBs.Write(targetClientGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, requestingAddress, false); +} +void UDPProxyCoordinator::Clear(void) +{ + serverList.Clear(true, _FILE_AND_LINE_); + for (unsigned int i=0; i < forwardingRequestList.Size(); i++) + { + RakNet::OP_DELETE(forwardingRequestList[i],_FILE_AND_LINE_); + } + forwardingRequestList.Clear(false, _FILE_AND_LINE_); +} +void UDPProxyCoordinator::ForwardingRequest::OrderRemainingServersToTry(void) +{ + //DataStructures::Multilist swpList; + DataStructures::OrderedList swpList; + // swpList.SetSortOrder(true); + + if (sourceServerPings.Size()==0 && targetServerPings.Size()==0) + return; + + unsigned int idx; + UDPProxyCoordinator::ServerWithPing swp; + for (idx=0; idx < remainingServersToTry.Size(); idx++) + { + swp.serverAddress=remainingServersToTry[idx]; + swp.ping=0; + if (sourceServerPings.Size()) + swp.ping+=(unsigned short) (sourceServerPings[idx].ping); + else + swp.ping+=(unsigned short) (DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME); + if (targetServerPings.Size()) + swp.ping+=(unsigned short) (targetServerPings[idx].ping); + else + swp.ping+=(unsigned short) (DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME); + swpList.Insert(swp.ping, swp, false, _FILE_AND_LINE_); + } + remainingServersToTry.Clear(_FILE_AND_LINE_ ); + for (idx=0; idx < swpList.Size(); idx++) + { + remainingServersToTry.Push(swpList[idx].serverAddress, _FILE_AND_LINE_ ); + } +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCoordinator.h b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCoordinator.h new file mode 100755 index 0000000..783e061 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyCoordinator.h @@ -0,0 +1,115 @@ +/// \file +/// \brief Essentially maintains a list of servers running UDPProxyServer, and some state management for UDPProxyClient to find a free server to forward datagrams +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyCoordinator==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __UDP_PROXY_COORDINATOR_H +#define __UDP_PROXY_COORDINATOR_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "RakString.h" +#include "BitStream.h" +#include "DS_Queue.h" +#include "DS_OrderedList.h" + +namespace RakNet +{ + /// When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa + /// The class to forward messages is UDPForwarder, and it is triggered over the network via the UDPProxyServer plugin. + /// The UDPProxyClient connects to UDPProxyCoordinator to get a list of servers running UDPProxyServer, and the coordinator will relay our forwarding request + /// \brief Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server. + /// \ingroup NAT_PUNCHTHROUGH_GROUP + class RAK_DLL_EXPORT UDPProxyCoordinator : public PluginInterface2 + { + public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(UDPProxyCoordinator) + + UDPProxyCoordinator(); + virtual ~UDPProxyCoordinator(); + + /// For UDPProxyServers logging in remotely, they must pass a password to UDPProxyServer::LoginToCoordinator(). It must match the password set here. + /// If no password is set, they cannot login remotely. + /// By default, no password is set + void SetRemoteLoginPassword(RakNet::RakString password); + + /// \internal + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + struct SenderAndTargetAddress + { + SystemAddress senderClientAddress; + RakNetGUID senderClientGuid; + SystemAddress targetClientAddress; + RakNetGUID targetClientGuid; + }; + + struct ServerWithPing + { + unsigned short ping; + SystemAddress serverAddress; + }; + + struct ForwardingRequest + { + RakNet::TimeMS timeoutOnNoDataMS; + RakNet::TimeMS timeoutAfterSuccess; + SenderAndTargetAddress sata; + SystemAddress requestingAddress; // Which system originally sent the network message to start forwarding + SystemAddress currentlyAttemptedServerAddress; + DataStructures::Queue remainingServersToTry; + RakNet::BitStream serverSelectionBitstream; + + DataStructures::List sourceServerPings, targetServerPings; + RakNet::TimeMS timeRequestedPings; + // Order based on sourceServerPings and targetServerPings + void OrderRemainingServersToTry(void); + + }; + protected: + + static int ServerWithPingComp( const unsigned short &key, const UDPProxyCoordinator::ServerWithPing &data ); + static int ForwardingRequestComp( const SenderAndTargetAddress &key, ForwardingRequest* const &data); + + void OnForwardingRequestFromClientToCoordinator(Packet *packet); + void OnLoginRequestFromServerToCoordinator(Packet *packet); + void OnForwardingReplyFromServerToCoordinator(Packet *packet); + void OnPingServersReplyFromClientToCoordinator(Packet *packet); + void TryNextServer(SenderAndTargetAddress sata, ForwardingRequest *fw); + void SendAllBusy(SystemAddress senderClientAddress, SystemAddress targetClientAddress, RakNetGUID targetClientGuid, SystemAddress requestingAddress); + void Clear(void); + + void SendForwardingRequest(SystemAddress sourceAddress, SystemAddress targetAddress, SystemAddress serverAddress, RakNet::TimeMS timeoutOnNoDataMS); + + // Logged in servers + //DataStructures::Multilist serverList; + DataStructures::List serverList; + + // Forwarding requests in progress + //DataStructures::Multilist forwardingRequestList; + DataStructures::OrderedList forwardingRequestList; + + RakNet::RakString remoteLoginPassword; + + }; + +} // End namespace + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyServer.cpp b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyServer.cpp new file mode 100755 index 0000000..f999627 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyServer.cpp @@ -0,0 +1,167 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyServer==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#include "UDPProxyServer.h" +#include "BitStream.h" +#include "UDPProxyCommon.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(UDPProxyServer,UDPProxyServer); + +UDPProxyServer::UDPProxyServer() +{ + resultHandler=0; + socketFamily=AF_INET; +} +UDPProxyServer::~UDPProxyServer() +{ + +} +void UDPProxyServer::SetSocketFamily(unsigned short _socketFamily) +{ + socketFamily=_socketFamily; +} +void UDPProxyServer::SetResultHandler(UDPProxyServerResultHandler *rh) +{ + resultHandler=rh; +} +bool UDPProxyServer::LoginToCoordinator(RakNet::RakString password, SystemAddress coordinatorAddress) +{ + unsigned int insertionIndex; + bool objectExists; + insertionIndex=loggingInCoordinators.GetIndexFromKey(coordinatorAddress,&objectExists); + if (objectExists==true) + return false; + loggedInCoordinators.GetIndexFromKey(coordinatorAddress,&objectExists); + if (objectExists==true) + return false; + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_LOGIN_REQUEST_FROM_SERVER_TO_COORDINATOR); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, coordinatorAddress, false); + loggingInCoordinators.InsertAtIndex(coordinatorAddress, insertionIndex, _FILE_AND_LINE_ ); + return true; +} +void UDPProxyServer::Update(void) +{ + udpForwarder.Update(); +} +PluginReceiveResult UDPProxyServer::OnReceive(Packet *packet) +{ + // Make sure incoming messages from from UDPProxyCoordinator + + if (packet->data[0]==ID_UDP_PROXY_GENERAL && packet->length>1) + { + bool objectExists; + + switch (packet->data[1]) + { + case ID_UDP_PROXY_FORWARDING_REQUEST_FROM_COORDINATOR_TO_SERVER: + if (loggedInCoordinators.GetIndexFromKey(packet->systemAddress, &objectExists)!=(unsigned int)-1) + { + OnForwardingRequestFromCoordinatorToServer(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + break; + case ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER: + case ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER: + case ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER: + case ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER: + { + unsigned int removalIndex = loggingInCoordinators.GetIndexFromKey(packet->systemAddress, &objectExists); + if (objectExists) + { + loggingInCoordinators.RemoveAtIndex(removalIndex); + + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + RakNet::RakString password; + incomingBs.Read(password); + switch (packet->data[1]) + { + case ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER: + if (resultHandler) + resultHandler->OnNoPasswordSet(password, this); + break; + case ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER: + if (resultHandler) + resultHandler->OnWrongPassword(password, this); + break; + case ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER: + if (resultHandler) + resultHandler->OnAlreadyLoggedIn(password, this); + break; + case ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER: + // RakAssert(loggedInCoordinators.GetIndexOf(packet->systemAddress)==(unsigned int)-1); + loggedInCoordinators.Insert(packet->systemAddress, packet->systemAddress, true, _FILE_AND_LINE_); + if (resultHandler) + resultHandler->OnLoginSuccess(password, this); + break; + } + } + + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + } + return RR_CONTINUE_PROCESSING; +} +void UDPProxyServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + loggingInCoordinators.RemoveIfExists(systemAddress); + loggedInCoordinators.RemoveIfExists(systemAddress); +} +void UDPProxyServer::OnRakPeerStartup(void) +{ + udpForwarder.Startup(); +} +void UDPProxyServer::OnRakPeerShutdown(void) +{ + udpForwarder.Shutdown(); + loggingInCoordinators.Clear(true,_FILE_AND_LINE_); + loggedInCoordinators.Clear(true,_FILE_AND_LINE_); +} +void UDPProxyServer::OnAttach(void) +{ + if (rakPeerInterface->IsActive()) + OnRakPeerStartup(); +} +void UDPProxyServer::OnDetach(void) +{ + OnRakPeerShutdown(); +} +void UDPProxyServer::OnForwardingRequestFromCoordinatorToServer(Packet *packet) +{ + SystemAddress sourceAddress, targetAddress; + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + incomingBs.Read(sourceAddress); + incomingBs.Read(targetAddress); + RakNet::TimeMS timeoutOnNoDataMS; + incomingBs.Read(timeoutOnNoDataMS); + RakAssert(timeoutOnNoDataMS > 0 && timeoutOnNoDataMS <= UDP_FORWARDER_MAXIMUM_TIMEOUT); + + unsigned short forwardingPort; + UDPForwarderResult success = udpForwarder.StartForwarding(sourceAddress, targetAddress, timeoutOnNoDataMS, 0, socketFamily, &forwardingPort, 0); + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REPLY_FROM_SERVER_TO_COORDINATOR); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write((unsigned char) success); + if (success==UDPFORWARDER_SUCCESS) + { + outgoingBs.Write(forwardingPort); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/UDPProxyServer.h b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyServer.h new file mode 100755 index 0000000..d3b776e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/UDPProxyServer.h @@ -0,0 +1,118 @@ +/// \file +/// \brief A RakNet plugin performing networking to communicate with UDPProxyServer. It allows UDPProxyServer to control our instance of UDPForwarder. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyServer==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __UDP_PROXY_SERVER_H +#define __UDP_PROXY_SERVER_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "UDPForwarder.h" +#include "RakString.h" + +namespace RakNet +{ +class UDPProxyServer; + +/// Callback to handle results of calling UDPProxyServer::LoginToCoordinator() +/// \ingroup UDP_PROXY_GROUP +struct UDPProxyServerResultHandler +{ + UDPProxyServerResultHandler() {} + virtual ~UDPProxyServerResultHandler() {} + + /// Called when our login succeeds + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnLoginSuccess(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; + + /// We are already logged in. + /// This login failed, but the system is operational as if it succeeded + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnAlreadyLoggedIn(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; + + /// The coordinator operator forgot to call UDPProxyCoordinator::SetRemoteLoginPassword() + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnNoPasswordSet(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; + + /// The coordinator operator set a different password in UDPProxyCoordinator::SetRemoteLoginPassword() than what we passed + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnWrongPassword(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; +}; + +/// \brief UDPProxyServer to control our instance of UDPForwarder +/// \details When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa.
    +/// The class to forward messages is UDPForwarder, and it is triggered over the network via the UDPProxyServer plugin.
    +/// The UDPProxyServer connects to UDPProxyServer to get a list of servers running UDPProxyServer, and the coordinator will relay our forwarding request. +/// \ingroup UDP_PROXY_GROUP +class RAK_DLL_EXPORT UDPProxyServer : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(UDPProxyServer) + + UDPProxyServer(); + ~UDPProxyServer(); + + /// Sets the socket family to use, either IPV4 or IPV6 + /// \param[in] socketFamily For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + void SetSocketFamily(unsigned short _socketFamily); + + /// Receives the results of calling LoginToCoordinator() + /// Set before calling LoginToCoordinator or you won't know what happened + /// \param[in] resultHandler + void SetResultHandler(UDPProxyServerResultHandler *rh); + + /// Before the coordinator will register the UDPProxyServer, you must login + /// \pre Must be connected to the coordinator + /// \pre Coordinator must have set a password with UDPProxyCoordinator::SetRemoteLoginPassword() + /// \returns false if already logged in, or logging in. Returns true otherwise + bool LoginToCoordinator(RakNet::RakString password, SystemAddress coordinatorAddress); + + /// Operative class that performs the forwarding + /// Exposed so you can call UDPForwarder::SetMaxForwardEntries() if you want to change away from the default + /// UDPForwarder::Startup(), UDPForwarder::Shutdown(), and UDPForwarder::Update() are called automatically by the plugin + UDPForwarder udpForwarder; + + virtual void OnAttach(void); + virtual void OnDetach(void); + + /// \internal + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnRakPeerStartup(void); + virtual void OnRakPeerShutdown(void); + +protected: + void OnForwardingRequestFromCoordinatorToServer(Packet *packet); + + DataStructures::OrderedList loggingInCoordinators; + DataStructures::OrderedList loggedInCoordinators; + + UDPProxyServerResultHandler *resultHandler; + unsigned short socketFamily; + +}; + +} // End namespace + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/project/lib_projects/raknet/jni/RaknetSources/VariableDeltaSerializer.cpp b/project/lib_projects/raknet/jni/RaknetSources/VariableDeltaSerializer.cpp new file mode 100755 index 0000000..92ff24c --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VariableDeltaSerializer.cpp @@ -0,0 +1,275 @@ +#include "VariableDeltaSerializer.h" + +using namespace RakNet; + +VariableDeltaSerializer::VariableDeltaSerializer() {didComparisonThisTick=false;} +VariableDeltaSerializer::~VariableDeltaSerializer() {RemoveRemoteSystemVariableHistory();} + +VariableDeltaSerializer::SerializationContext::SerializationContext() {variableHistoryIdentical=0; variableHistoryUnique=0;} +VariableDeltaSerializer::SerializationContext::~SerializationContext() {} + +void VariableDeltaSerializer::OnMessageReceipt(RakNetGUID guid, uint32_t receiptId, bool messageArrived) +{ + // Module? + if (messageArrived) + FreeVarsAssociatedWithReceipt(guid, receiptId); + else + DirtyAndFreeVarsAssociatedWithReceipt(guid, receiptId); + +} + +void VariableDeltaSerializer::BeginUnreliableAckedSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream, uint32_t _sendReceipt) +{ + RakAssert(_guid!=UNASSIGNED_RAKNET_GUID); + context->anyVariablesWritten=false; + context->guid=_guid; + context->bitStream=_bitStream; + if (context->variableHistoryUnique==0) + context->variableHistoryUnique=StartVariableHistoryWrite(_guid); + context->variableHistory=context->variableHistoryUnique; + context->sendReceipt=_sendReceipt; + context->changedVariables = AllocChangedVariablesList(); + context->newSystemSend=false; + context->serializationMode=UNRELIABLE_WITH_ACK_RECEIPT; +} + +void VariableDeltaSerializer::BeginUniqueSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream) +{ + RakAssert(_guid!=UNASSIGNED_RAKNET_GUID); + context->anyVariablesWritten=false; + context->guid=_guid; + context->bitStream=_bitStream; + if (context->variableHistoryUnique==0) + context->variableHistoryUnique=StartVariableHistoryWrite(_guid); + context->variableHistory=context->variableHistoryUnique; + context->newSystemSend=false; + + context->serializationMode=RELIABLE; +} + + +void VariableDeltaSerializer::BeginIdenticalSerialize(SerializationContext *context, bool _isFirstSendToRemoteSystem, BitStream *_bitStream) +{ + context->anyVariablesWritten=false; + context->guid=UNASSIGNED_RAKNET_GUID; + context->bitStream=_bitStream; + context->serializationMode=RELIABLE; + if (context->variableHistoryIdentical==0) + context->variableHistoryIdentical=StartVariableHistoryWrite(UNASSIGNED_RAKNET_GUID); + context->variableHistory=context->variableHistoryIdentical; + context->newSystemSend=_isFirstSendToRemoteSystem; +} + +void VariableDeltaSerializer::EndSerialize(SerializationContext *context) +{ + if (context->serializationMode==UNRELIABLE_WITH_ACK_RECEIPT) + { + if (context->anyVariablesWritten==false) + { + context->bitStream->Reset(); + FreeChangedVariablesList(context->changedVariables); + return; + } + + StoreChangedVariablesList(context->variableHistory, context->changedVariables, context->sendReceipt); + } + else + { + if (context->variableHistoryIdentical) + { + if (didComparisonThisTick==false) + { + didComparisonThisTick=true; + identicalSerializationBs.Reset(); + + if (context->anyVariablesWritten==false) + { + context->bitStream->Reset(); + return; + } + + identicalSerializationBs.Write(context->bitStream); + context->bitStream->ResetReadPointer(); + } + else + { + context->bitStream->Write(&identicalSerializationBs); + identicalSerializationBs.ResetReadPointer(); + } + } + else if (context->anyVariablesWritten==false) + { + context->bitStream->Reset(); + return; + } + } +} + +void VariableDeltaSerializer::BeginDeserialize(DeserializationContext *context, BitStream *_bitStream) +{ + context->bitStream=_bitStream; +} + +void VariableDeltaSerializer::EndDeserialize(DeserializationContext *context) +{ + (void) context; +} + +void VariableDeltaSerializer::AddRemoteSystemVariableHistory(RakNetGUID guid) +{ + (void) guid; +} + +void VariableDeltaSerializer::RemoveRemoteSystemVariableHistory(RakNetGUID guid) +{ + unsigned int idx,idx2; + idx = GetVarsWrittenPerRemoteSystemListIndex(guid); + if (idx==(unsigned int)-1) + return; + + if (remoteSystemVariableHistoryList[idx]->guid==guid) + { + // Memory pool doesn't call destructor + for (idx2=0; idx2 < remoteSystemVariableHistoryList[idx]->updatedVariablesHistory.Size(); idx2++) + { + FreeChangedVariablesList(remoteSystemVariableHistoryList[idx]->updatedVariablesHistory[idx2]); + } + + delete remoteSystemVariableHistoryList[idx]; + remoteSystemVariableHistoryList.RemoveAtIndexFast(idx); + return; + } +} + +int RakNet::VariableDeltaSerializer::UpdatedVariablesListPtrComp( const uint32_t &key, ChangedVariablesList* const &data ) +{ + if (keysendReceipt) + return -1; + if (key==data->sendReceipt) + return 0; + return 1; +} + +void VariableDeltaSerializer::FreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId) +{ + unsigned int idx, idx2; + idx = GetVarsWrittenPerRemoteSystemListIndex(guid); + if (idx==(unsigned int)-1) + return; + + RemoteSystemVariableHistory* vprs = remoteSystemVariableHistoryList[idx]; + bool objectExists; + idx2=vprs->updatedVariablesHistory.GetIndexFromKey(receiptId,&objectExists); + if (objectExists) + { + // Free this history node + FreeChangedVariablesList(vprs->updatedVariablesHistory[idx2]); + vprs->updatedVariablesHistory.RemoveAtIndex(idx2); + } +} + +void VariableDeltaSerializer::DirtyAndFreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId) +{ + unsigned int idx, idx2; + idx = GetVarsWrittenPerRemoteSystemListIndex(guid); + if (idx==(unsigned int)-1) + return; + + RemoteSystemVariableHistory* vprs = remoteSystemVariableHistoryList[idx]; + bool objectExists; + idx2=vprs->updatedVariablesHistory.GetIndexFromKey(receiptId,&objectExists); + if (objectExists) + { + // 'Dirty' all variables sent this update, meaning they will be resent the next time Serialize() is called + vprs->variableListDeltaTracker.FlagDirtyFromBitArray(vprs->updatedVariablesHistory[idx2]->bitField); + + // Free this history node + FreeChangedVariablesList(vprs->updatedVariablesHistory[idx2]); + vprs->updatedVariablesHistory.RemoveAtIndex(idx2); + } +} +unsigned int VariableDeltaSerializer::GetVarsWrittenPerRemoteSystemListIndex(RakNetGUID guid) +{ + unsigned int idx; + for (idx=0; idx < remoteSystemVariableHistoryList.Size(); idx++) + { + if (remoteSystemVariableHistoryList[idx]->guid==guid) + return idx; + } + return (unsigned int) -1; +} +void VariableDeltaSerializer::RemoveRemoteSystemVariableHistory(void) +{ + unsigned int idx,idx2; + for (idx=0; idx < remoteSystemVariableHistoryList.Size(); idx++) + { + for (idx2=0; idx2 < remoteSystemVariableHistoryList[idx]->updatedVariablesHistory.Size(); idx2++) + { + FreeChangedVariablesList(remoteSystemVariableHistoryList[idx]->updatedVariablesHistory[idx2]); + } + + delete remoteSystemVariableHistoryList[idx]; + } + remoteSystemVariableHistoryList.Clear(false,_FILE_AND_LINE_); +} + +VariableDeltaSerializer::RemoteSystemVariableHistory* VariableDeltaSerializer::GetRemoteSystemVariableHistory(RakNetGUID guid) +{ + unsigned int rshli = GetRemoteSystemHistoryListIndex(guid); + return remoteSystemVariableHistoryList[rshli]; +} + +VariableDeltaSerializer::ChangedVariablesList *VariableDeltaSerializer::AllocChangedVariablesList(void) +{ + VariableDeltaSerializer::ChangedVariablesList *p = updatedVariablesMemoryPool.Allocate(_FILE_AND_LINE_); + p->bitWriteIndex=0; + p->bitField[0]=0; + return p; +} +void VariableDeltaSerializer::FreeChangedVariablesList(ChangedVariablesList *changedVariables) +{ + updatedVariablesMemoryPool.Release(changedVariables, _FILE_AND_LINE_); +} +void VariableDeltaSerializer::StoreChangedVariablesList(RemoteSystemVariableHistory *variableHistory, ChangedVariablesList *changedVariables, uint32_t sendReceipt) +{ + changedVariables->sendReceipt=sendReceipt; + variableHistory->updatedVariablesHistory.Insert(changedVariables->sendReceipt,changedVariables,true,_FILE_AND_LINE_); +} + +VariableDeltaSerializer::RemoteSystemVariableHistory *VariableDeltaSerializer::StartVariableHistoryWrite(RakNetGUID guid) +{ + RemoteSystemVariableHistory *variableHistory; + + unsigned int rshli = GetRemoteSystemHistoryListIndex(guid); + if (rshli==(unsigned int) -1) + { + variableHistory = new RemoteSystemVariableHistory; + variableHistory->guid=guid; + remoteSystemVariableHistoryList.Push(variableHistory,_FILE_AND_LINE_); + } + else + { + variableHistory=remoteSystemVariableHistoryList[rshli]; + } + + variableHistory->variableListDeltaTracker.StartWrite(); + return variableHistory; +} +unsigned int VariableDeltaSerializer::GetRemoteSystemHistoryListIndex(RakNetGUID guid) +{ + // Find the variable tracker for the target system + unsigned int idx; + for (idx=0; idx < remoteSystemVariableHistoryList.Size(); idx++) + { + if (remoteSystemVariableHistoryList[idx]->guid==guid) + { + return idx; + } + } + return (unsigned int) -1; +} + +void VariableDeltaSerializer::OnPreSerializeTick(void) +{ + didComparisonThisTick=false; +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/VariableDeltaSerializer.h b/project/lib_projects/raknet/jni/RaknetSources/VariableDeltaSerializer.h new file mode 100755 index 0000000..257426d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VariableDeltaSerializer.h @@ -0,0 +1,257 @@ +#ifndef __VARIABLE_DELTA_SERIALIZER_H +#define __VARIABLE_DELTA_SERIALIZER_H + +#include "VariableListDeltaTracker.h" +#include "DS_MemoryPool.h" +#include "NativeTypes.h" +#include "BitStream.h" +#include "PacketPriority.h" +#include "DS_OrderedList.h" + +namespace RakNet +{ + +/// \brief Class to compare memory values of variables in a current state to a prior state +/// Results of the comparisons will be written to a bitStream, such that only changed variables get written
    +/// Can be used with ReplicaManager3 to Serialize a Replica3 per-variable, rather than comparing the entire object against itself
    +/// Usage:
    +///
    +/// 1. Call BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize(). In the case of Replica3, this would be in the Serialize() call
    +/// 2. For each variable of the type in step 1, call Serialize(). The same variables must be serialized every tick()
    +/// 3. Call EndSerialize()
    +/// 4. Repeat step 1 for each of the other categories of how to send varaibles +/// +/// On the receiver: +/// +/// 1. Call BeginDeserialize(). In the case of Replica3, this would be in the Deserialize() call +/// 2. Call DeserializeVariable() for each variable, in the same order as was Serialized() +/// 3. Call EndSerialize() +/// \sa The ReplicaManager3 sample +class VariableDeltaSerializer +{ +protected: + struct RemoteSystemVariableHistory; + struct ChangedVariablesList; + +public: + VariableDeltaSerializer(); + ~VariableDeltaSerializer(); + + struct SerializationContext + { + SerializationContext(); + ~SerializationContext(); + + RakNetGUID guid; + BitStream *bitStream; + uint32_t rakPeerSendReceipt; + RemoteSystemVariableHistory *variableHistory; + RemoteSystemVariableHistory *variableHistoryIdentical; + RemoteSystemVariableHistory *variableHistoryUnique; + ChangedVariablesList *changedVariables; + uint32_t sendReceipt; + PacketReliability serializationMode; + bool anyVariablesWritten; + bool newSystemSend; // Force send all, do not record + }; + + struct DeserializationContext + { + BitStream *bitStream; + }; + + /// \brief Call before doing one or more SerializeVariable calls when the data will be sent UNRELIABLE_WITH_ACK_RECEIPT + /// The last value of each variable will be saved per remote system. Additionally, a history of \a _sendReceipts is stored to determine what to resend on packetloss. + /// When variables are lost, they will be flagged dirty and always resent to the system that lost it + /// Disadvantages: Every variable for every remote system is copied internally, in addition to a history list of what variables changed for which \a _sendReceipt. Very memory and CPU intensive for multiple connections. + /// Advantages: When data needs to be resent by RakNet, RakNet can only resend the value it currently has. This allows the application to control the resend, sending the most recent value of the variable. The end result is that bandwidth is used more efficiently because old data is never sent. + /// \pre Upon getting ID_SND_RECEIPT_LOSS or ID_SND_RECEIPT_ACKED call OnMessageReceipt() + /// \pre AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() must be called for new and lost connections + /// \param[in] context Holds the context of this group of serialize calls. This can be a stack object just passed to the function. + /// \param[in] _guid Which system we are sending to + /// \param[in] _bitSteam Which bitStream to write to + /// \param[in] _sendReceipt Returned from RakPeer::IncrementNextSendReceipt() and passed to the Send() or SendLists() function. Identifies this update for ID_SND_RECEIPT_LOSS and ID_SND_RECEIPT_ACKED + void BeginUnreliableAckedSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream, uint32_t _sendReceipt); + + /// \brief Call before doing one or more SerializeVariable calls for data that may be sent differently to every remote system (such as an invisibility flag that only teammates can see) + /// The last value of each variable will be saved per remote system. + /// Unlike BeginUnreliableAckedSerialize(), send receipts are not necessary + /// Disadvantages: Every variable for every remote system is copied internally. Very memory and CPU intensive for multiple connections. + /// Advantages: When data is sent differently depending on the recipient, this system can make things easier to use and is as efficient as it can be. + /// \pre AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() must be called for new and lost connections + /// \param[in] context Holds the context of this group of serialize calls. This can be a stack object just passed to the function. + /// \param[in] _guid Which system we are sending to + /// \param[in] _bitSteam Which bitStream to write to + void BeginUniqueSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream); + + /// \brief Call before doing one or more SerializeVariable calls for data that is sent with the same value to every remote system (such as health, position, etc.) + /// This is the most common type of serialization, and also the most efficient + /// Disadvantages: A copy of every variable still needs to be held, although only once + /// Advantages: After the first serialization, the last serialized bitStream will be used for subsequent sends + /// \pre Call OnPreSerializeTick() before doing any calls to BeginIdenticalSerialize() for each of your objects, once per game tick + /// \param[in] context Holds the context of this group of serialize calls. This can be a stack object just passed to the function. + /// \param[in] _isFirstSerializeToThisSystem Pass true if this is the first time ever serializing to this system (the initial download). This way all variables will be written, rather than checking against prior sent values. + /// \param[in] _bitSteam Which bitStream to write to + void BeginIdenticalSerialize(SerializationContext *context, bool _isFirstSerializeToThisSystem, BitStream *_bitStream); + + /// \brief Call after BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize(), then after calling SerializeVariable() one or more times + /// \param[in] context Same context pointer passed to BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize() + void EndSerialize(SerializationContext *context); + + /// \brief Call when you receive the BitStream written by SerializeVariable(), before calling DeserializeVariable() + /// \param[in] context Holds the context of this group of deserialize calls. This can be a stack object just passed to the function. + /// \param[in] _bitStream Pass the bitStream originally passed to and written to by serialize calls + void BeginDeserialize(DeserializationContext *context, BitStream *_bitStream); + + /// \param[in] context Same context pointer passed to BeginDeserialize() + void EndDeserialize(DeserializationContext *context); + + /// BeginUnreliableAckedSerialize() and BeginUniqueSerialize() require knowledge of when connections are added and dropped + /// Call AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() to notify the system of these events + /// \param[in] _guid Which system we are sending to + void AddRemoteSystemVariableHistory(RakNetGUID guid); + + /// BeginUnreliableAckedSerialize() and BeginUniqueSerialize() require knowledge of when connections are added and dropped + /// Call AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() to notify the system of these events + /// \param[in] _guid Which system we are sending to + void RemoveRemoteSystemVariableHistory(RakNetGUID guid); + + /// BeginIdenticalSerialize() requires knowledge of when serialization has started for an object across multiple systems + /// This way it can setup the flag to do new comparisons against the last sent values, rather than just resending the last sent bitStream + /// For Replica3, overload and call this from Replica3::OnUserReplicaPreSerializeTick() + void OnPreSerializeTick(void); + + /// Call when getting ID_SND_RECEIPT_LOSS or ID_SND_RECEIPT_ACKED for a particular system + /// Example: + /// + /// uint32_t msgNumber; + /// memcpy(&msgNumber, packet->data+1, 4); + /// DataStructures::List replicaListOut; + /// replicaManager.GetReplicasCreatedByMe(replicaListOut); + /// unsigned int idx; + /// for (idx=0; idx < replicaListOut.GetSize(); idx++) + /// { + /// ((SampleReplica*)replicaListOut[idx])->NotifyReplicaOfMessageDeliveryStatus(packet->guid,msgNumber, packet->data[0]==ID_SND_RECEIPT_ACKED); + /// } + /// + /// \param[in] guid Which system we are sending to + /// \param[in] receiptId Encoded in bytes 1-4 inclusive of ID_SND_RECEIPT_LOSS and ID_SND_RECEIPT_ACKED + /// \param[in] messageArrived True for ID_SND_RECEIPT_ACKED, false otherwise + void OnMessageReceipt(RakNetGUID guid, uint32_t receiptId, bool messageArrived); + + /// Call to Serialize a variable + /// Will write to the bitSteam passed to \a context true, variableValue if the variable has changed or has never been written. Otherwise will write false. + /// \pre You have called BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize() + /// \pre Will also require calling OnPreSerializeTick() if using BeginIdenticalSerialize() + /// \note Be sure to call EndSerialize() after finishing all serializations + /// \param[in] context Same context pointer passed to BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize() + /// \param[in] variable A variable to write to the bitStream passed to \a context + template + void SerializeVariable(SerializationContext *context, const VarType &variable) + { + if (context->newSystemSend) + { + if (context->variableHistory->variableListDeltaTracker.IsPastEndOfList()==false) + { + // previously sent data to another system + context->bitStream->Write(true); + context->bitStream->Write(variable); + context->anyVariablesWritten=true; + } + else + { + // never sent data to another system + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream); + context->anyVariablesWritten=true; + } + } + else if (context->serializationMode==UNRELIABLE_WITH_ACK_RECEIPT) + { + context->anyVariablesWritten|= + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream, context->changedVariables->bitField, context->changedVariables->bitWriteIndex++); + } + else + { + if (context->variableHistoryIdentical) + { + // Identical serialization to a number of systems + if (didComparisonThisTick==false) + context->anyVariablesWritten|= + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream); + // Else bitstream is written to at the end + } + else + { + // Per-system serialization + context->anyVariablesWritten|= + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream); + } + } + } + + /// Call to deserialize into a variable + /// \pre You have called BeginDeserialize() + /// \note Be sure to call EndDeserialize() after finishing all deserializations + /// \param[in] context Same context pointer passed to BeginDeserialize() + /// \param[in] variable A variable to write to the bitStream passed to \a context + template + bool DeserializeVariable(DeserializationContext *context, VarType &variable) + { + return VariableListDeltaTracker::ReadVarFromBitstream(variable, context->bitStream); + } + + + +protected: + + // For a given send receipt from RakPeer::Send() track which variables we updated + // That way if that send does not arrive (ID_SND_RECEIPT_LOSS) we can mark those variables as dirty to resend them with current values + struct ChangedVariablesList + { + uint32_t sendReceipt; + unsigned short bitWriteIndex; + unsigned char bitField[56]; + }; + + // static int Replica2ObjectComp( const uint32_t &key, ChangedVariablesList* const &data ); + + static int UpdatedVariablesListPtrComp( const uint32_t &key, ChangedVariablesList* const &data ); + + // For each remote system, track the last values of variables we sent to them, and the history of what values changed per call to Send() + // Every serialize if a variable changes from its last value, send it out again + // Also if a send does not arrive (ID_SND_RECEIPT_LOSS) we use updatedVariablesHistory to mark those variables as dirty, to resend them unreliably with the current values + struct RemoteSystemVariableHistory + { + RakNetGUID guid; + VariableListDeltaTracker variableListDeltaTracker; + DataStructures::OrderedList updatedVariablesHistory; + }; + /// A list of RemoteSystemVariableHistory indexed by guid, one per connection that we serialize to + /// List is added to when SerializeConstruction is called, and removed from when SerializeDestruction is called, or when a given connection is dropped + DataStructures::List remoteSystemVariableHistoryList; + + // Because the ChangedVariablesList is created every serialize and destroyed every receipt I use a pool to avoid fragmentation + DataStructures::MemoryPool updatedVariablesMemoryPool; + + bool didComparisonThisTick; + RakNet::BitStream identicalSerializationBs; + + void FreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId); + void DirtyAndFreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId); + unsigned int GetVarsWrittenPerRemoteSystemListIndex(RakNetGUID guid); + void RemoveRemoteSystemVariableHistory(void); + + RemoteSystemVariableHistory* GetRemoteSystemVariableHistory(RakNetGUID guid); + + ChangedVariablesList *AllocChangedVariablesList(void); + void FreeChangedVariablesList(ChangedVariablesList *changedVariables); + void StoreChangedVariablesList(RemoteSystemVariableHistory *variableHistory, ChangedVariablesList *changedVariables, uint32_t sendReceipt); + + RemoteSystemVariableHistory *StartVariableHistoryWrite(RakNetGUID guid); + unsigned int GetRemoteSystemHistoryListIndex(RakNetGUID guid); + +}; + +} + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/VariableListDeltaTracker.cpp b/project/lib_projects/raknet/jni/RaknetSources/VariableListDeltaTracker.cpp new file mode 100755 index 0000000..5523a99 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VariableListDeltaTracker.cpp @@ -0,0 +1,40 @@ +#include "VariableListDeltaTracker.h" + +using namespace RakNet; + +VariableListDeltaTracker::VariableListDeltaTracker() {nextWriteIndex=0;} +VariableListDeltaTracker::~VariableListDeltaTracker() +{ + unsigned int i; + for (i=0; i < variableList.Size(); i++) + rakFree_Ex(variableList[i].lastData,_FILE_AND_LINE_); +} + +// Call before using a series of WriteVar +void VariableListDeltaTracker::StartWrite(void) {nextWriteIndex=0;} + +void VariableListDeltaTracker::FlagDirtyFromBitArray(unsigned char *bArray) +{ + unsigned short readOffset=0; + for (readOffset=0; readOffset < variableList.Size(); readOffset++) + { + bool result = ( bArray[ readOffset >> 3 ] & ( 0x80 >> ( readOffset & 7 ) ) ) !=0; + + if (result==true) + variableList[readOffset].isDirty=true; + } +} +VariableListDeltaTracker::VariableLastValueNode::VariableLastValueNode() +{ + lastData=0; +} +VariableListDeltaTracker::VariableLastValueNode::VariableLastValueNode(const unsigned char *data, int _byteLength) +{ + lastData=(char*) rakMalloc_Ex(_byteLength,_FILE_AND_LINE_); + memcpy(lastData,data,_byteLength); + byteLength=_byteLength; + isDirty=false; +} +VariableListDeltaTracker::VariableLastValueNode::~VariableLastValueNode() +{ +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/VariableListDeltaTracker.h b/project/lib_projects/raknet/jni/RaknetSources/VariableListDeltaTracker.h new file mode 100755 index 0000000..5b55d3e --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VariableListDeltaTracker.h @@ -0,0 +1,131 @@ +#include "NativeTypes.h" +#include "DS_List.h" +#include "RakMemoryOverride.h" +#include "BitStream.h" + +namespace RakNet +{ +/// Class to write a series of variables, copy the contents to memory, and return if the newly written value is different than what was last written +/// Can also encode the reads, writes, and results directly to/from a bitstream +class VariableListDeltaTracker +{ +public: + VariableListDeltaTracker(); + ~VariableListDeltaTracker(); + + // Call before using a series of WriteVar + void StartWrite(void); + + bool IsPastEndOfList(void) const {return nextWriteIndex>=variableList.Size();} + + /// Records the passed value of the variable to memory, and returns true if the value is different from the write before that (or if it is the first write) + /// \pre Call StartWrite() before doing the first of a series of calls to WriteVar or other functions that call WriteVar + /// \note Variables must be of the same type, written in the same order, each time + template + bool WriteVar(const VarType &varData) + { + RakNet::BitStream temp; + temp.Write(varData); + if (nextWriteIndex>=variableList.Size()) + { + variableList.Push(VariableLastValueNode(temp.GetData(),temp.GetNumberOfBytesUsed()),_FILE_AND_LINE_); + nextWriteIndex++; + return true; // Different because it's new + } + + if (temp.GetNumberOfBytesUsed()!=variableList[nextWriteIndex].byteLength) + { + variableList[nextWriteIndex].lastData=(char*) rakRealloc_Ex(variableList[nextWriteIndex].lastData, temp.GetNumberOfBytesUsed(),_FILE_AND_LINE_); + variableList[nextWriteIndex].byteLength=temp.GetNumberOfBytesUsed(); + memcpy(variableList[nextWriteIndex].lastData,temp.GetData(),temp.GetNumberOfBytesUsed()); + nextWriteIndex++; + variableList[nextWriteIndex].isDirty=false; + return true; // Different because the serialized size is different + } + if (variableList[nextWriteIndex].isDirty==false && memcmp(temp.GetData(),variableList[nextWriteIndex].lastData, variableList[nextWriteIndex].byteLength)==0) + { + nextWriteIndex++; + return false; // Same because not dirty and memcmp is the same + } + + variableList[nextWriteIndex].isDirty=false; + memcpy(variableList[nextWriteIndex].lastData,temp.GetData(),temp.GetNumberOfBytesUsed()); + nextWriteIndex++; + return true; // Different because dirty or memcmp was different + } + /// Calls WriteVar. If the variable has changed, writes true, and writes the variable. Otherwise writes false. + template + bool WriteVarToBitstream(const VarType &varData, RakNet::BitStream *bitStream) + { + bool wasDifferent = WriteVar(varData); + bitStream->Write(wasDifferent); + if (wasDifferent) + { + bitStream->Write(varData); + return true; + } + return false; + } + /// Calls WriteVarToBitstream(). Additionally, adds the boolean result of WriteVar() to boolean bit array + template + bool WriteVarToBitstream(const VarType &varData, RakNet::BitStream *bitStream, unsigned char *bArray, unsigned short writeOffset) + { + if (WriteVarToBitstream(varData,bitStream)==true) + { + BitSize_t numberOfBitsMod8 = writeOffset & 7; + + if ( numberOfBitsMod8 == 0 ) + bArray[ writeOffset >> 3 ] = 0x80; + else + bArray[ writeOffset >> 3 ] |= 0x80 >> ( numberOfBitsMod8 ); // Set the bit to 1 + + return true; + } + else + { + if ( ( writeOffset & 7 ) == 0 ) + bArray[ writeOffset >> 3 ] = 0; + + return false; + } + } + + /// Paired with a call to WriteVarToBitstream(), will read a variable if it had changed. Otherwise the values remains the same. + template + static bool ReadVarFromBitstream(const VarType &varData, RakNet::BitStream *bitStream) + { + bool wasWritten; + if (bitStream->Read(wasWritten)==false) + return false; + if (wasWritten) + { + if (bitStream->Read(varData)==false) + return false; + } + return wasWritten; + } + + /// Variables flagged dirty will cause WriteVar() to return true, even if the variable had not otherwise changed + /// This updates all the variables in the list, where in each index \a varsWritten is true, so will the variable at the corresponding index be flagged dirty + void FlagDirtyFromBitArray(unsigned char *bArray); + + /// \internal + struct VariableLastValueNode + { + VariableLastValueNode(); + VariableLastValueNode(const unsigned char *data, int _byteLength); + ~VariableLastValueNode(); + char *lastData; + unsigned int byteLength; + bool isDirty; + }; + +protected: + /// \internal + DataStructures::List variableList; + /// \internal + unsigned int nextWriteIndex; +}; + + +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/VariadicSQLParser.cpp b/project/lib_projects/raknet/jni/RaknetSources/VariadicSQLParser.cpp new file mode 100755 index 0000000..bc8e3fc --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VariadicSQLParser.cpp @@ -0,0 +1,150 @@ +#include "VariadicSQLParser.h" +#include "BitStream.h" +#include + +using namespace VariadicSQLParser; + +struct TypeMapping +{ + char inputType; + const char *type; +}; +const int NUM_TYPE_MAPPINGS=7; +TypeMapping typeMappings[NUM_TYPE_MAPPINGS] = +{ + {'i', "int"}, + {'d', "int"}, + {'s', "text"}, + {'b', "bool"}, + {'f', "numeric"}, + {'g', "double precision"}, + {'a', "bytea"}, +}; +unsigned int GetTypeMappingIndex(char c) +{ + unsigned int i; + for (i=0; i < (unsigned int) NUM_TYPE_MAPPINGS; i++ ) + if (typeMappings[i].inputType==c) + return i; + return (unsigned int)-1; +} +const char* VariadicSQLParser::GetTypeMappingAtIndex(int i) +{ + return typeMappings[i].type; +} +void VariadicSQLParser::GetTypeMappingIndices( const char *format, DataStructures::List &indices ) +{ + bool previousCharWasPercentSign; + unsigned int i; + unsigned int typeMappingIndex; + indices.Clear(false, _FILE_AND_LINE_); + unsigned int len = (unsigned int) strlen(format); + previousCharWasPercentSign=false; + for (i=0; i < len; i++) + { + if (previousCharWasPercentSign==true ) + { + typeMappingIndex = GetTypeMappingIndex(format[i]); + if (typeMappingIndex!=(unsigned int) -1) + { + IndexAndType iat; + iat.strIndex=i-1; + iat.typeMappingIndex=typeMappingIndex; + indices.Insert(iat, _FILE_AND_LINE_ ); + } + } + + previousCharWasPercentSign=format[i]=='%'; + } +} +void VariadicSQLParser::ExtractArguments( va_list argptr, const DataStructures::List &indices, char ***argumentBinary, int **argumentLengths ) +{ + if (indices.Size()==0) + return; + + unsigned int i; + *argumentBinary=RakNet::OP_NEW_ARRAY(indices.Size(), _FILE_AND_LINE_); + *argumentLengths=RakNet::OP_NEW_ARRAY(indices.Size(), _FILE_AND_LINE_); + + char **paramData=*argumentBinary; + int *paramLength=*argumentLengths; + + int variadicArgIndex; + for (variadicArgIndex=0, i=0; i < indices.Size(); i++, variadicArgIndex++) + { + switch (typeMappings[indices[i].typeMappingIndex].inputType) + { + case 'i': + case 'd': + { + int val = va_arg( argptr, int ); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + case 's': + { + char* val = va_arg( argptr, char* ); + paramLength[i]=(int) strlen(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i]+1, _FILE_AND_LINE_); + memcpy(paramData[i], val, paramLength[i]+1); + } + break; + case 'b': + { + bool val = (va_arg( argptr, int )!=0); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + /* + case 'f': + { + // On MSVC at least, this only works with double as the 2nd param + float val = (float) va_arg( argptr, double ); + //float val = va_arg( argptr, float ); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + */ + // On MSVC at least, this only works with double as the 2nd param + case 'f': + case 'g': + { + double val = va_arg( argptr, double ); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + case 'a': + { + char* val = va_arg( argptr, char* ); + paramLength[i]=va_arg( argptr, unsigned int ); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], val, paramLength[i]); + } + break; + } + } + +} +void VariadicSQLParser::FreeArguments(const DataStructures::List &indices, char **argumentBinary, int *argumentLengths) +{ + if (indices.Size()==0) + return; + + unsigned int i; + for (i=0; i < indices.Size(); i++) + rakFree_Ex(argumentBinary[i],_FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(argumentBinary,_FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(argumentLengths,_FILE_AND_LINE_); +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/VariadicSQLParser.h b/project/lib_projects/raknet/jni/RaknetSources/VariadicSQLParser.h new file mode 100755 index 0000000..a176751 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VariadicSQLParser.h @@ -0,0 +1,24 @@ +#ifndef __VARIADIC_SQL_PARSER_H +#define __VARIADIC_SQL_PARSER_H + +#include "DS_List.h" + +#include + +namespace VariadicSQLParser +{ + struct IndexAndType + { + unsigned int strIndex; + unsigned int typeMappingIndex; + }; + const char* GetTypeMappingAtIndex(int i); + void GetTypeMappingIndices( const char *format, DataStructures::List &indices ); + // Given an SQL string with variadic arguments, allocate argumentBinary and argumentLengths, and hold the parameters in binary format + // Last 2 parameters are out parameters + void ExtractArguments( va_list argptr, const DataStructures::List &indices, char ***argumentBinary, int **argumentLengths ); + void FreeArguments(const DataStructures::List &indices, char **argumentBinary, int *argumentLengths); +} + + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/VitaIncludes.cpp b/project/lib_projects/raknet/jni/RaknetSources/VitaIncludes.cpp new file mode 100755 index 0000000..fa0e62d --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VitaIncludes.cpp @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/VitaIncludes.h b/project/lib_projects/raknet/jni/RaknetSources/VitaIncludes.h new file mode 100755 index 0000000..062dad9 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/VitaIncludes.h @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/WSAStartupSingleton.cpp b/project/lib_projects/raknet/jni/RaknetSources/WSAStartupSingleton.cpp new file mode 100755 index 0000000..17e848b --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/WSAStartupSingleton.cpp @@ -0,0 +1,75 @@ +#include "WSAStartupSingleton.h" + + + + + +#if defined(_WIN32) +#include +#include + + + + + +#endif +#include "RakNetDefines.h" +#include + +int WSAStartupSingleton::refCount=0; + +WSAStartupSingleton::WSAStartupSingleton() {} +WSAStartupSingleton::~WSAStartupSingleton() {} +void WSAStartupSingleton::AddRef(void) +{ +#ifdef _WIN32 + + refCount++; + + if (refCount!=1) + return; + + + + + + WSADATA winsockInfo; + if ( WSAStartup( MAKEWORD( 2, 2 ), &winsockInfo ) != 0 ) + { +#if defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "WSAStartup failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + } + +#endif +} +void WSAStartupSingleton::Deref(void) +{ +#ifdef _WIN32 + if (refCount==0) + return; + + if (refCount>1) + { + refCount--; + return; + } + + WSACleanup(); + + + + + + + refCount=0; +#endif +} diff --git a/project/lib_projects/raknet/jni/RaknetSources/WSAStartupSingleton.h b/project/lib_projects/raknet/jni/RaknetSources/WSAStartupSingleton.h new file mode 100755 index 0000000..d2930fe --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/WSAStartupSingleton.h @@ -0,0 +1,16 @@ +#ifndef __WSA_STARTUP_SINGLETON_H +#define __WSA_STARTUP_SINGLETON_H + +class WSAStartupSingleton +{ +public: + WSAStartupSingleton(); + ~WSAStartupSingleton(); + static void AddRef(void); + static void Deref(void); + +protected: + static int refCount; +}; + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/WindowsIncludes.h b/project/lib_projects/raknet/jni/RaknetSources/WindowsIncludes.h new file mode 100755 index 0000000..7e504dc --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/WindowsIncludes.h @@ -0,0 +1,17 @@ +#if defined(X360__) +#elif defined (_WIN32) +#include +#include +#include + +// Must always include Winsock2.h before windows.h +// or else: +// winsock2.h(99) : error C2011: 'fd_set' : 'struct' type redefinition +// winsock2.h(134) : warning C4005: 'FD_SET' : macro redefinition +// winsock.h(83) : see previous definition of 'FD_SET' +// winsock2.h(143) : error C2011: 'timeval' : 'struct' type redefinition +// winsock2.h(199) : error C2011: 'hostent' : 'struct' type redefinition +// winsock2.h(212) : error C2011: 'netent' : 'struct' type redefinition +// winsock2.h(219) : error C2011: 'servent' : 'struct' type redefinition + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/XBox360Includes.h b/project/lib_projects/raknet/jni/RaknetSources/XBox360Includes.h new file mode 100755 index 0000000..7896bec --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/XBox360Includes.h @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/lib_projects/raknet/jni/RaknetSources/_FindFirst.cpp b/project/lib_projects/raknet/jni/RaknetSources/_FindFirst.cpp new file mode 100755 index 0000000..6db92ac --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/_FindFirst.cpp @@ -0,0 +1,159 @@ +/** +* Original file by the_viking, fixed by Rômulo Fernandes, fixed by Emmanuel Nars +* Should emulate windows finddata structure +*/ +#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(_WIN32) +#include "_FindFirst.h" +#include "DS_List.h" + +#include + +#include + + +static DataStructures::List< _findinfo_t* > fileInfo; + +#include "RakMemoryOverride.h" +#include "RakAssert.h" + +/** +* _findfirst - equivalent +*/ +long _findfirst(const char *name, _finddata_t *f) +{ + RakNet::RakString nameCopy = name; + RakNet::RakString filter; + + // This is linux only, so don't bother with '\' + const char* lastSep = strrchr(name,'/'); + if(!lastSep) + { + // filter pattern only is given, search current directory. + filter = nameCopy; + nameCopy = "."; + } else + { + // strip filter pattern from directory name, leave + // trailing '/' intact. + filter = lastSep+1; + unsigned sepIndex = lastSep - name; + nameCopy.Erase(sepIndex+1, nameCopy.GetLength() - sepIndex-1); + } + + DIR* dir = opendir(nameCopy); + + if(!dir) return -1; + + _findinfo_t* fi = RakNet::OP_NEW<_findinfo_t>( _FILE_AND_LINE_ ); + fi->filter = filter; + fi->dirName = nameCopy; // we need to remember this for stat() + fi->openedDir = dir; + fileInfo.Insert(fi, _FILE_AND_LINE_); + + long ret = fileInfo.Size()-1; + + // Retrieve the first file. We cannot rely on the first item + // being '.' + if (_findnext(ret, f) == -1) return -1; + else return ret; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +int _findnext(long h, _finddata_t *f) +{ + RakAssert(h >= 0 && h < (long)fileInfo.Size()); + if (h < 0 || h >= (long)fileInfo.Size()) return -1; + + _findinfo_t* fi = fileInfo[h]; + + while(true) + { + dirent* entry = readdir(fi->openedDir); + if(entry == 0) return -1; + + // Only report stuff matching our filter + if (fnmatch(fi->filter, entry->d_name, FNM_PATHNAME) != 0) continue; + + // To reliably determine the entry's type, we must do + // a stat... don't rely on entry->d_type, as this + // might be unavailable! + struct stat filestat; + RakNet::RakString fullPath = fi->dirName + entry->d_name; + if (stat(fullPath, &filestat) != 0) + { + RAKNET_DEBUG_PRINTF("Cannot stat %s\n", fullPath.C_String()); + continue; + } + + if (S_ISREG(filestat.st_mode)) + { + f->attrib = _A_NORMAL; + } else if (S_ISDIR(filestat.st_mode)) + { + f->attrib = _A_SUBDIR; + } else continue; // We are interested in files and + // directories only. Links currently + // are not supported. + + f->size = filestat.st_size; + strncpy(f->name, entry->d_name, STRING_BUFFER_SIZE); + + return 0; + } + + return -1; +} + + + + + +/** + * _findclose - equivalent + */ +int _findclose(long h) +{ + if (h==-1) return 0; + + if (h < 0 || h >= (long)fileInfo.Size()) + { + RakAssert(false); + return -1; + } + + _findinfo_t* fi = fileInfo[h]; + closedir(fi->openedDir); + fileInfo.RemoveAtIndex(h); + RakNet::OP_DELETE(fi, _FILE_AND_LINE_); + return 0; +} +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/_FindFirst.h b/project/lib_projects/raknet/jni/RaknetSources/_FindFirst.h new file mode 100755 index 0000000..a664222 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/_FindFirst.h @@ -0,0 +1,56 @@ +/// +/// Original file by the_viking, fixed by Rômulo Fernandes +/// Should emulate windows finddata structure +/// + +#ifndef GCC_FINDFIRST_H +#define GCC_FINDFIRST_H + +#if (defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(__WIN32) + +#include + +#include "RakString.h" + +#define _A_NORMAL 0x00 // Normal file +#define _A_RDONLY 0x01 // Read-only file +#define _A_HIDDEN 0x02 // Hidden file +#define _A_SYSTEM 0x04 // System file +#define _A_VOLID 0x08 // Volume ID +#define _A_SUBDIR 0x10 // Subdirectory +#define _A_ARCH 0x20 // File changed since last archive +#define FA_NORMAL 0x00 // Synonym of _A_NORMAL +#define FA_RDONLY 0x01 // Synonym of _A_RDONLY +#define FA_HIDDEN 0x02 // Synonym of _A_HIDDEN +#define FA_SYSTEM 0x04 // Synonym of _A_SYSTEM +#define FA_LABEL 0x08 // Synonym of _A_VOLID +#define FA_DIREC 0x10 // Synonym of _A_SUBDIR +#define FA_ARCH 0x20 // Synonym of _A_ARCH + + +const unsigned STRING_BUFFER_SIZE = 512; + +typedef struct _finddata_t +{ + char name[STRING_BUFFER_SIZE]; + int attrib; + unsigned long size; +} _finddata; + +/** + * Hold information about the current search + */ +typedef struct _findinfo_t +{ + DIR* openedDir; + RakNet::RakString filter; + RakNet::RakString dirName; +} _findinfo; + +long _findfirst(const char *name, _finddata_t *f); +int _findnext(long h, _finddata_t *f); +int _findclose(long h); + +#endif +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/gettimeofday.cpp b/project/lib_projects/raknet/jni/RaknetSources/gettimeofday.cpp new file mode 100755 index 0000000..6b2e1c0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/gettimeofday.cpp @@ -0,0 +1,55 @@ + + + + +#if defined(_WIN32) && !defined(__GNUC__) &&!defined(__GCCXML__) + +#include "gettimeofday.h" + +// From http://www.openasthra.com/c-tidbits/gettimeofday-function-for-windows/ + +#include "WindowsIncludes.h" + +#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) + #define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 +#else + #define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL +#endif + +int gettimeofday(struct timeval *tv, struct timezone *tz) +{ + FILETIME ft; + unsigned __int64 tmpres = 0; + static int tzflag; + + if (NULL != tv) + { + GetSystemTimeAsFileTime(&ft); + + tmpres |= ft.dwHighDateTime; + tmpres <<= 32; + tmpres |= ft.dwLowDateTime; + + /*converting file time to unix epoch*/ + tmpres /= 10; /*convert into microseconds*/ + tmpres -= DELTA_EPOCH_IN_MICROSECS; + tv->tv_sec = (long)(tmpres / 1000000UL); + tv->tv_usec = (long)(tmpres % 1000000UL); + } + + if (NULL != tz) + { + if (!tzflag) + { + _tzset(); + tzflag++; + } + tz->tz_minuteswest = _timezone / 60; + tz->tz_dsttime = _daylight; + } + + return 0; +} + +#endif + diff --git a/project/lib_projects/raknet/jni/RaknetSources/gettimeofday.h b/project/lib_projects/raknet/jni/RaknetSources/gettimeofday.h new file mode 100755 index 0000000..52c4207 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/gettimeofday.h @@ -0,0 +1,56 @@ +#ifndef __GET_TIME_OF_DAY_H +#define __GET_TIME_OF_DAY_H + +#if defined(_WIN32) && !defined(__GNUC__) &&!defined(__GCCXML__) +#include < time.h > +struct timezone +{ + int tz_minuteswest; /* minutes W of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; +int gettimeofday(struct timeval *tv, struct timezone *tz); + + +#else + + + + +#include + +#include + +// Uncomment this if you need to +/* +// http://www.halcode.com/archives/2008/08/26/retrieving-system-time-gettimeofday/ +struct timezone +{ + int tz_minuteswest; + int tz_dsttime; +}; + +#ifdef __cplusplus + +void GetSystemTimeAsFileTime(FILETIME*); + +inline int gettimeofday(struct timeval* p, void* tz ) +{ + union { + long long ns100; // time since 1 Jan 1601 in 100ns units + FILETIME ft; + } now; + + GetSystemTimeAsFileTime( &(now.ft) ); + p->tv_usec=(long)((now.ns100 / 10LL) % 1000000LL ); + p->tv_sec= (long)((now.ns100-(116444736000000000LL))/10000000LL); + return 0; +} + +#else + int gettimeofday(struct timeval* p, void* tz ); +#endif +*/ + +#endif + +#endif diff --git a/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc-options.h b/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc-options.h new file mode 100755 index 0000000..37e9887 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc-options.h @@ -0,0 +1,28 @@ +#ifdef _RAKNET_SUPPORT_DL_MALLOC + +#ifndef __DLMALLOC_OPTIONS_H +#define __DLMALLOC_OPTIONS_H + +#include "NativeTypes.h" +#include "Export.h" +#include +#include + +#define MSPACES 1 +#define ONLY_MSPACES 1 +#define USE_DL_PREFIX 1 +#define NO_MALLINFO 1 +// Make it threadsafe +#define USE_LOCKS 1 + +extern RAK_DLL_EXPORT void * (*dlMallocMMap) (size_t size); +extern RAK_DLL_EXPORT void * (*dlMallocDirectMMap) (size_t size); +extern RAK_DLL_EXPORT int (*dlMallocMUnmap) (void* ptr, size_t size); + +#define MMAP(s) dlMallocMMap(s) +#define MUNMAP(a, s) dlMallocMUnmap((a), (s)) +#define DIRECT_MMAP(s) dlMallocDirectMMap(s) + +#endif + +#endif // _RAKNET_SUPPORT_DL_MALLOC \ No newline at end of file diff --git a/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc.cpp b/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc.cpp new file mode 100755 index 0000000..2eb71f0 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc.cpp @@ -0,0 +1,4161 @@ +#ifdef _RAKNET_SUPPORT_DL_MALLOC + +#include "rdlmalloc.h" + +/* --------------------------- Lock preliminaries ------------------------ */ + +/* +When locks are defined, there is one global lock, plus +one per-mspace lock. + +The global lock_ensures that mparams.magic and other unique +mparams values are initialized only once. It also protects +sequences of calls to MORECORE. In many cases sys_alloc requires +two calls, that should not be interleaved with calls by other +threads. This does not protect against direct calls to MORECORE +by other threads not using this lock, so there is still code to +cope the best we can on interference. + +Per-mspace locks surround calls to malloc, free, etc. To enable use +in layered extensions, per-mspace locks are reentrant. + +Because lock-protected regions generally have bounded times, it is +OK to use the supplied simple spinlocks in the custom versions for +x86. Spinlocks are likely to improve performance for lightly +contended applications, but worsen performance under heavy +contention. + +If USE_LOCKS is > 1, the definitions of lock routines here are +bypassed, in which case you will need to define the type MLOCK_T, +and at least INITIAL_LOCK, ACQUIRE_LOCK, RELEASE_LOCK and possibly +TRY_LOCK (which is not used in this malloc, but commonly needed in +extensions.) You must also declare a +static MLOCK_T malloc_global_mutex = { initialization values };. + +*/ + +#if USE_LOCKS == 1 + +#if USE_SPIN_LOCKS && SPIN_LOCKS_AVAILABLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if !defined(DL_PLATFORM_WIN32) + +/* Custom pthread-style spin locks on x86 and x64 for gcc */ +struct pthread_mlock_t { + volatile unsigned int l; + unsigned int c; + pthread_t threadid; +}; +#define MLOCK_T struct pthread_mlock_t +#define CURRENT_THREAD pthread_self() +#define INITIAL_LOCK(sl) ((sl)->threadid = 0, (sl)->l = (sl)->c = 0, 0) +#define ACQUIRE_LOCK(sl) pthread_acquire_lock(sl) +#define RELEASE_LOCK(sl) pthread_release_lock(sl) +#define TRY_LOCK(sl) pthread_try_lock(sl) +#define SPINS_PER_YIELD 63 + +static MLOCK_T malloc_global_mutex = { 0, 0, 0}; + +static FORCEINLINE int pthread_acquire_lock (MLOCK_T *sl) { + int spins = 0; + volatile unsigned int* lp = &sl->l; + for (;;) { + if (*lp != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 0; + } + } + else { + /* place args to cmpxchgl in locals to evade oddities in some gccs */ + int cmp = 0; + int val = 1; + int ret; + __asm__ __volatile__ ("lock; cmpxchgl %1, %2" + : "=a" (ret) + : "r" (val), "m" (*(lp)), "0"(cmp) + : "memory", "cc"); + if (!ret) { + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 0; + } + } + if ((++spins & SPINS_PER_YIELD) == 0) { +#if defined (__SVR4) && defined (__sun) /* solaris */ + thr_yield(); +#else +#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) + sched_yield(); +#else /* no-op yield on unknown systems */ + ; +#endif /* __linux__ || __FreeBSD__ || __APPLE__ */ +#endif /* solaris */ + } + } +} + +static FORCEINLINE void pthread_release_lock (MLOCK_T *sl) { + volatile unsigned int* lp = &sl->l; + assert(*lp != 0); + assert(sl->threadid == CURRENT_THREAD); + if (--sl->c == 0) { + sl->threadid = 0; + int prev = 0; + int ret; + __asm__ __volatile__ ("lock; xchgl %0, %1" + : "=r" (ret) + : "m" (*(lp)), "0"(prev) + : "memory"); + } +} + +static FORCEINLINE int pthread_try_lock (MLOCK_T *sl) { + volatile unsigned int* lp = &sl->l; + if (*lp != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 1; + } + } + else { + int cmp = 0; + int val = 1; + int ret; + __asm__ __volatile__ ("lock; cmpxchgl %1, %2" + : "=a" (ret) + : "r" (val), "m" (*(lp)), "0"(cmp) + : "memory", "cc"); + if (!ret) { + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 1; + } + } + return 0; +} + + +#else /* DL_PLATFORM_WIN32 */ +/* Custom win32-style spin locks on x86 and x64 for MSC */ +struct win32_mlock_t { + volatile long l; + unsigned int c; + long threadid; +}; + +#define MLOCK_T struct win32_mlock_t +#define CURRENT_THREAD GetCurrentThreadId() +#define INITIAL_LOCK(sl) ((sl)->threadid = 0, (sl)->l = (sl)->c = 0, 0) +#define ACQUIRE_LOCK(sl) win32_acquire_lock(sl) +#define RELEASE_LOCK(sl) win32_release_lock(sl) +#define TRY_LOCK(sl) win32_try_lock(sl) +#define SPINS_PER_YIELD 63 + +static MLOCK_T malloc_global_mutex = { 0, 0, 0}; + +static FORCEINLINE int win32_acquire_lock (MLOCK_T *sl) { + int spins = 0; + for (;;) { + if (sl->l != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 0; + } + } + else { + if (!interlockedexchange(&sl->l, 1)) { + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 0; + } + } + if ((++spins & SPINS_PER_YIELD) == 0) + SleepEx(0, FALSE); + } +} + +static FORCEINLINE void win32_release_lock (MLOCK_T *sl) { + assert(sl->threadid == CURRENT_THREAD); + assert(sl->l != 0); + if (--sl->c == 0) { + sl->threadid = 0; + interlockedexchange (&sl->l, 0); + } +} + +static FORCEINLINE int win32_try_lock (MLOCK_T *sl) { + if (sl->l != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 1; + } + } + else { + if (!interlockedexchange(&sl->l, 1)){ + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 1; + } + } + return 0; +} + +#endif /* DL_PLATFORM_WIN32 */ +#else /* USE_SPIN_LOCKS */ + +#ifndef DL_PLATFORM_WIN32 +/* pthreads-based locks */ + +#define MLOCK_T pthread_mutex_t +#define CURRENT_THREAD pthread_self() +#define INITIAL_LOCK(sl) pthread_init_lock(sl) +#define ACQUIRE_LOCK(sl) pthread_mutex_lock(sl) +#define RELEASE_LOCK(sl) pthread_mutex_unlock(sl) +#define TRY_LOCK(sl) (!pthread_mutex_trylock(sl)) + +static MLOCK_T malloc_global_mutex = PTHREAD_MUTEX_INITIALIZER; + +/* Cope with old-style linux recursive lock initialization by adding */ +/* skipped internal declaration from pthread.h */ +#ifdef linux +#ifndef PTHREAD_MUTEX_RECURSIVE +extern int pthread_mutexattr_setkind_np __P ((pthread_mutexattr_t *__attr, + int __kind)); +#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP +#define pthread_mutexattr_settype(x,y) pthread_mutexattr_setkind_np(x,y) +#endif +#endif + +static int pthread_init_lock (MLOCK_T *sl) { + pthread_mutexattr_t attr; + if (pthread_mutexattr_init(&attr)) return 1; + if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1; + if (pthread_mutex_init(sl, &attr)) return 1; + if (pthread_mutexattr_destroy(&attr)) return 1; + return 0; +} + +#else /* DL_PLATFORM_WIN32 */ +/* Win32 critical sections */ +#define MLOCK_T CRITICAL_SECTION +#define CURRENT_THREAD GetCurrentThreadId() +#define INITIAL_LOCK(s) (!InitializeCriticalSectionAndSpinCount((s), 0x80000000|4000)) +#define ACQUIRE_LOCK(s) (EnterCriticalSection(sl), 0) +#define RELEASE_LOCK(s) LeaveCriticalSection(sl) +#define TRY_LOCK(s) TryEnterCriticalSection(sl) +#define NEED_GLOBAL_LOCK_INIT + +static MLOCK_T malloc_global_mutex; +static volatile long malloc_global_mutex_status; + +/* Use spin loop to initialize global lock */ +static void init_malloc_global_mutex() { + for (;;) { + long stat = malloc_global_mutex_status; + if (stat > 0) + return; + /* transition to < 0 while initializing, then to > 0) */ + if (stat == 0 && + interlockedcompareexchange(&malloc_global_mutex_status, -1, 0) == 0) { + InitializeCriticalSection(&malloc_global_mutex); + interlockedexchange(&malloc_global_mutex_status,1); + return; + } + SleepEx(0, FALSE); + } +} + +#endif /* DL_PLATFORM_WIN32 */ +#endif /* USE_SPIN_LOCKS */ +#endif /* USE_LOCKS == 1 */ + +/* ----------------------- User-defined locks ------------------------ */ + +#if USE_LOCKS > 1 +/* Define your own lock implementation here */ +/* #define INITIAL_LOCK(sl) ... */ +/* #define ACQUIRE_LOCK(sl) ... */ +/* #define RELEASE_LOCK(sl) ... */ +/* #define TRY_LOCK(sl) ... */ +/* static MLOCK_T malloc_global_mutex = ... */ +#endif /* USE_LOCKS > 1 */ + +/* ----------------------- Lock-based state ------------------------ */ + +#if USE_LOCKS +#define USE_LOCK_BIT (2U) +#else /* USE_LOCKS */ +#define USE_LOCK_BIT (0U) +#define INITIAL_LOCK(l) +#endif /* USE_LOCKS */ + +#if USE_LOCKS +#ifndef ACQUIRE_MALLOC_GLOBAL_LOCK +#define ACQUIRE_MALLOC_GLOBAL_LOCK() ACQUIRE_LOCK(&malloc_global_mutex); +#endif +#ifndef RELEASE_MALLOC_GLOBAL_LOCK +#define RELEASE_MALLOC_GLOBAL_LOCK() RELEASE_LOCK(&malloc_global_mutex); +#endif +#else /* USE_LOCKS */ +#define ACQUIRE_MALLOC_GLOBAL_LOCK() +#define RELEASE_MALLOC_GLOBAL_LOCK() +#endif /* USE_LOCKS */ + + +/* ----------------------- Chunk representations ------------------------ */ + +/* +(The following includes lightly edited explanations by Colin Plumb.) + +The malloc_chunk declaration below is misleading (but accurate and +necessary). It declares a "view" into memory allowing access to +necessary fields at known offsets from a given base. + +Chunks of memory are maintained using a `boundary tag' method as +originally described by Knuth. (See the paper by Paul Wilson +ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a survey of such +techniques.) Sizes of free chunks are stored both in the front of +each chunk and at the end. This makes consolidating fragmented +chunks into bigger chunks fast. The head fields also hold bits +representing whether chunks are free or in use. + +Here are some pictures to make it clearer. They are "exploded" to +show that the state of a chunk can be thought of as extending from +the high 31 bits of the head field of its header through the +prev_foot and PINUSE_BIT bit of the following chunk header. + +A chunk that's in use looks like: + +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of previous chunk (if P = 0) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| +| Size of this chunk 1| +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| | ++- -+ +| | ++- -+ +| : ++- size - sizeof(size_t) available payload bytes -+ +: | +chunk-> +- -+ +| | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| +| Size of next chunk (may or may not be in use) | +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +And if it's free, it looks like this: + +chunk-> +- -+ +| User payload (must be in use, or we would have merged!) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| +| Size of this chunk 0| +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Next pointer | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Prev pointer | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| : ++- size - sizeof(struct chunk) unused bytes -+ +: | +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of this chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| +| Size of next chunk (must be in use, or we would have merged)| +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| : ++- User payload -+ +: | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +|0| ++-+ +Note that since we always merge adjacent free chunks, the chunks +adjacent to a free chunk must be in use. + +Given a pointer to a chunk (which can be derived trivially from the +payload pointer) we can, in O(1) time, find out whether the adjacent +chunks are free, and if so, unlink them from the lists that they +are on and merge them with the current chunk. + +Chunks always begin on even word boundaries, so the mem portion +(which is returned to the user) is also on an even word boundary, and +thus at least double-word aligned. + +The P (PINUSE_BIT) bit, stored in the unused low-order bit of the +chunk size (which is always a multiple of two words), is an in-use +bit for the *previous* chunk. If that bit is *clear*, then the +word before the current chunk size contains the previous chunk +size, and can be used to find the front of the previous chunk. +The very first chunk allocated always has this bit set, preventing +access to non-existent (or non-owned) memory. If pinuse is set for +any given chunk, then you CANNOT determine the size of the +previous chunk, and might even get a memory addressing fault when +trying to do so. + +The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of +the chunk size redundantly records whether the current chunk is +inuse (unless the chunk is mmapped). This redundancy enables usage +checks within free and realloc, and reduces indirection when freeing +and consolidating chunks. + +Each freshly allocated chunk must have both cinuse and pinuse set. +That is, each allocated chunk borders either a previously allocated +and still in-use chunk, or the base of its memory arena. This is +ensured by making all allocations from the the `lowest' part of any +found chunk. Further, no free chunk physically borders another one, +so each free chunk is known to be preceded and followed by either +inuse chunks or the ends of memory. + +Note that the `foot' of the current chunk is actually represented +as the prev_foot of the NEXT chunk. This makes it easier to +deal with alignments etc but can be very confusing when trying +to extend or adapt this code. + +The exceptions to all this are + +1. The special chunk `top' is the top-most available chunk (i.e., +the one bordering the end of available memory). It is treated +specially. Top is never included in any bin, is used only if +no other chunk is available, and is released back to the +system if it is very large (see M_TRIM_THRESHOLD). In effect, +the top chunk is treated as larger (and thus less well +fitting) than any other available chunk. The top chunk +doesn't update its trailing size field since there is no next +contiguous chunk that would have to index off it. However, +space is still allocated for it (TOP_FOOT_SIZE) to enable +separation or merging when space is extended. + +3. Chunks allocated via mmap, have both cinuse and pinuse bits +cleared in their head fields. Because they are allocated +one-by-one, each must carry its own prev_foot field, which is +also used to hold the offset this chunk has within its mmapped +region, which is needed to preserve alignment. Each mmapped +chunk is trailed by the first two fields of a fake next-chunk +for sake of usage checks. + +*/ + +struct malloc_chunk { + size_t prev_foot; /* Size of previous chunk (if free). */ + size_t head; /* Size and inuse bits. */ + struct malloc_chunk* fd; /* double links -- used only if free. */ + struct malloc_chunk* bk; +}; + +typedef struct malloc_chunk mchunk; +typedef struct malloc_chunk* mchunkptr; +typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */ +typedef unsigned int bindex_t; /* Described below */ +typedef unsigned int binmap_t; /* Described below */ +typedef unsigned int flag_t; /* The type of various bit flag sets */ + +/* ------------------- Chunks sizes and alignments ----------------------- */ + +#define MCHUNK_SIZE (sizeof(mchunk)) + +#if FOOTERS +#define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +#else /* FOOTERS */ +#define CHUNK_OVERHEAD (SIZE_T_SIZE) +#endif /* FOOTERS */ + +/* MMapped chunks need a second word of overhead ... */ +#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +/* ... and additional padding for fake next-chunk at foot */ +#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES) + +/* The smallest size we can malloc is an aligned minimal chunk */ +#define MIN_CHUNK_SIZE\ + ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* conversion from malloc headers to user pointers, and back */ +#define chunk2mem(p) ((void*)((char*)(p) + TWO_SIZE_T_SIZES)) +#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - TWO_SIZE_T_SIZES)) +/* chunk associated with aligned address A */ +#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A))) + +/* Bounds on request (not chunk) sizes. */ +#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2) +#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE) + +/* pad request bytes into a usable size */ +#define pad_request(req) \ + (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* pad request, checking for minimum (but not maximum) */ +#define request2size(req) \ + (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req)) + + +/* ------------------ Operations on head and foot fields ----------------- */ + +/* +The head field of a chunk is or'ed with PINUSE_BIT when previous +adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in +use, unless mmapped, in which case both bits are cleared. + +FLAG4_BIT is not used by this malloc, but might be useful in extensions. +*/ + +#define PINUSE_BIT (SIZE_T_ONE) +#define CINUSE_BIT (SIZE_T_TWO) +#define FLAG4_BIT (SIZE_T_FOUR) +#define INUSE_BITS (PINUSE_BIT|CINUSE_BIT) +#define FLAG_BITS (PINUSE_BIT|CINUSE_BIT|FLAG4_BIT) + +/* Head value for fenceposts */ +#define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE) + +/* extraction of fields from head words */ +#define cinuse(p) ((p)->head & CINUSE_BIT) +#define pinuse(p) ((p)->head & PINUSE_BIT) +#define is_inuse(p) (((p)->head & INUSE_BITS) != PINUSE_BIT) +#define is_mmapped(p) (((p)->head & INUSE_BITS) == 0) + +#define chunksize(p) ((p)->head & ~(FLAG_BITS)) + +#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT) + +/* Treat space at ptr +/- offset as a chunk */ +#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) +#define chunk_minus_offset(p, s) ((mchunkptr)(((char*)(p)) - (s))) + +/* Ptr to next or previous physical malloc_chunk. */ +#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->head & ~FLAG_BITS))) +#define prev_chunk(p) ((mchunkptr)( ((char*)(p)) - ((p)->prev_foot) )) + +/* extract next chunk's pinuse bit */ +#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT) + +/* Get/set size at footer */ +#define get_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot) +#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot = (s)) + +/* Set size, pinuse bit, and foot */ +#define set_size_and_pinuse_of_free_chunk(p, s)\ + ((p)->head = (s|PINUSE_BIT), set_foot(p, s)) + +/* Set size, pinuse bit, foot, and clear next pinuse */ +#define set_free_with_pinuse(p, s, n)\ + (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s)) + +/* Get the internal overhead associated with chunk p */ +#define overhead_for(p)\ + (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) + +/* Return true if malloced space is not necessarily cleared */ +#if MMAP_CLEARS +#define calloc_must_clear(p) (!is_mmapped(p)) +#else /* MMAP_CLEARS */ +#define calloc_must_clear(p) (1) +#endif /* MMAP_CLEARS */ + +/* ---------------------- Overlaid data structures ----------------------- */ + +/* +When chunks are not in use, they are treated as nodes of either +lists or trees. + +"Small" chunks are stored in circular doubly-linked lists, and look +like this: + +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of previous chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`head:' | Size of chunk, in bytes |P| +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Forward pointer to next chunk in list | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Back pointer to previous chunk in list | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Unused space (may be 0 bytes long) . +. . +. | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`foot:' | Size of chunk, in bytes | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Larger chunks are kept in a form of bitwise digital trees (aka +tries) keyed on chunksizes. Because malloc_tree_chunks are only for +free chunks greater than 256 bytes, their size doesn't impose any +constraints on user chunk sizes. Each node looks like: + +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of previous chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`head:' | Size of chunk, in bytes |P| +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Forward pointer to next chunk of same size | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Back pointer to previous chunk of same size | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Pointer to left child (child[0]) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Pointer to right child (child[1]) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Pointer to parent | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| bin index of this chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Unused space . +. | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`foot:' | Size of chunk, in bytes | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Each tree holding treenodes is a tree of unique chunk sizes. Chunks +of the same size are arranged in a circularly-linked list, with only +the oldest chunk (the next to be used, in our FIFO ordering) +actually in the tree. (Tree members are distinguished by a non-null +parent pointer.) If a chunk with the same size an an existing node +is inserted, it is linked off the existing node using pointers that +work in the same way as fd/bk pointers of small chunks. + +Each tree contains a power of 2 sized range of chunk sizes (the +smallest is 0x100 <= x < 0x180), which is is divided in half at each +tree level, with the chunks in the smaller half of the range (0x100 +<= x < 0x140 for the top nose) in the left subtree and the larger +half (0x140 <= x < 0x180) in the right subtree. This is, of course, +done by inspecting individual bits. + +Using these rules, each node's left subtree contains all smaller +sizes than its right subtree. However, the node at the root of each +subtree has no particular ordering relationship to either. (The +dividing line between the subtree sizes is based on trie relation.) +If we remove the last chunk of a given size from the interior of the +tree, we need to replace it with a leaf node. The tree ordering +rules permit a node to be replaced by any leaf below it. + +The smallest chunk in a tree (a common operation in a best-fit +allocator) can be found by walking a path to the leftmost leaf in +the tree. Unlike a usual binary tree, where we follow left child +pointers until we reach a null, here we follow the right child +pointer any time the left one is null, until we reach a leaf with +both child pointers null. The smallest chunk in the tree will be +somewhere along that path. + +The worst case number of steps to add, find, or remove a node is +bounded by the number of bits differentiating chunks within +bins. Under current bin calculations, this ranges from 6 up to 21 +(for 32 bit sizes) or up to 53 (for 64 bit sizes). The typical case +is of course much better. +*/ + +struct malloc_tree_chunk { + /* The first four fields must be compatible with malloc_chunk */ + size_t prev_foot; + size_t head; + struct malloc_tree_chunk* fd; + struct malloc_tree_chunk* bk; + + struct malloc_tree_chunk* child[2]; + struct malloc_tree_chunk* parent; + bindex_t index; +}; + +typedef struct malloc_tree_chunk tchunk; +typedef struct malloc_tree_chunk* tchunkptr; +typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */ + +/* A little helper macro for trees */ +#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1]) + +/* ----------------------------- Segments -------------------------------- */ + +/* +Each malloc space may include non-contiguous segments, held in a +list headed by an embedded malloc_segment record representing the +top-most space. Segments also include flags holding properties of +the space. Large chunks that are directly allocated by mmap are not +included in this list. They are instead independently created and +destroyed without otherwise keeping track of them. + +Segment management mainly comes into play for spaces allocated by +MMAP. Any call to MMAP might or might not return memory that is +adjacent to an existing segment. MORECORE normally contiguously +extends the current space, so this space is almost always adjacent, +which is simpler and faster to deal with. (This is why MORECORE is +used preferentially to MMAP when both are available -- see +sys_alloc.) When allocating using MMAP, we don't use any of the +hinting mechanisms (inconsistently) supported in various +implementations of unix mmap, or distinguish reserving from +committing memory. Instead, we just ask for space, and exploit +contiguity when we get it. It is probably possible to do +better than this on some systems, but no general scheme seems +to be significantly better. + +Management entails a simpler variant of the consolidation scheme +used for chunks to reduce fragmentation -- new adjacent memory is +normally prepended or appended to an existing segment. However, +there are limitations compared to chunk consolidation that mostly +reflect the fact that segment processing is relatively infrequent +(occurring only when getting memory from system) and that we +don't expect to have huge numbers of segments: + +* Segments are not indexed, so traversal requires linear scans. (It +would be possible to index these, but is not worth the extra +overhead and complexity for most programs on most platforms.) +* New segments are only appended to old ones when holding top-most +memory; if they cannot be prepended to others, they are held in +different segments. + +Except for the top-most segment of an mstate, each segment record +is kept at the tail of its segment. Segments are added by pushing +segment records onto the list headed by &mstate.seg for the +containing mstate. + +Segment flags control allocation/merge/deallocation policies: +* If EXTERN_BIT set, then we did not allocate this segment, +and so should not try to deallocate or merge with others. +(This currently holds only for the initial segment passed +into rak_create_mspace_with_base.) +* If USE_MMAP_BIT set, the segment may be merged with +other surrounding mmapped segments and trimmed/de-allocated +using munmap. +* If neither bit is set, then the segment was obtained using +MORECORE so can be merged with surrounding MORECORE'd segments +and deallocated/trimmed using MORECORE with negative arguments. +*/ + +struct malloc_segment { + char* base; /* base address */ + size_t size; /* allocated size */ + struct malloc_segment* next; /* ptr to next segment */ + flag_t sflags; /* mmap and extern flag */ +}; + +#define is_mmapped_segment(S) ((S)->sflags & USE_MMAP_BIT) +#define is_extern_segment(S) ((S)->sflags & EXTERN_BIT) + +typedef struct malloc_segment msegment; +typedef struct malloc_segment* msegmentptr; + +/* ---------------------------- malloc_state ----------------------------- */ + +/* +A malloc_state holds all of the bookkeeping for a space. +The main fields are: + +Top +The topmost chunk of the currently active segment. Its size is +cached in topsize. The actual size of topmost space is +topsize+TOP_FOOT_SIZE, which includes space reserved for adding +fenceposts and segment records if necessary when getting more +space from the system. The size at which to autotrim top is +cached from mparams in trim_check, except that it is disabled if +an autotrim fails. + +Designated victim (dv) +This is the preferred chunk for servicing small requests that +don't have exact fits. It is normally the chunk split off most +recently to service another small request. Its size is cached in +dvsize. The link fields of this chunk are not maintained since it +is not kept in a bin. + +SmallBins +An array of bin headers for free chunks. These bins hold chunks +with sizes less than MIN_LARGE_SIZE bytes. Each bin contains +chunks of all the same size, spaced 8 bytes apart. To simplify +use in double-linked lists, each bin header acts as a malloc_chunk +pointing to the real first node, if it exists (else pointing to +itself). This avoids special-casing for headers. But to avoid +waste, we allocate only the fd/bk pointers of bins, and then use +repositioning tricks to treat these as the fields of a chunk. + +TreeBins +Treebins are pointers to the roots of trees holding a range of +sizes. There are 2 equally spaced treebins for each power of two +from TREE_SHIFT to TREE_SHIFT+16. The last bin holds anything +larger. + +Bin maps +There is one bit map for small bins ("smallmap") and one for +treebins ("treemap). Each bin sets its bit when non-empty, and +clears the bit when empty. Bit operations are then used to avoid +bin-by-bin searching -- nearly all "search" is done without ever +looking at bins that won't be selected. The bit maps +conservatively use 32 bits per map word, even if on 64bit system. +For a good description of some of the bit-based techniques used +here, see Henry S. Warren Jr's book "Hacker's Delight" (and +supplement at http://hackersdelight.org/). Many of these are +intended to reduce the branchiness of paths through malloc etc, as +well as to reduce the number of memory locations read or written. + +Segments +A list of segments headed by an embedded malloc_segment record +representing the initial space. + +Address check support +The least_addr field is the least address ever obtained from +MORECORE or MMAP. Attempted frees and reallocs of any address less +than this are trapped (unless INSECURE is defined). + +Magic tag +A cross-check field that should always hold same value as mparams.magic. + +Flags +Bits recording whether to use MMAP, locks, or contiguous MORECORE + +Statistics +Each space keeps track of current and maximum system memory +obtained via MORECORE or MMAP. + +Trim support +Fields holding the amount of unused topmost memory that should trigger +timming, and a counter to force periodic scanning to release unused +non-topmost segments. + +Locking +If USE_LOCKS is defined, the "mutex" lock is acquired and released +around every public call using this mspace. + +Extension support +A void* pointer and a size_t field that can be used to help implement +extensions to this malloc. +*/ + +/* Bin types, widths and sizes */ +#define NSMALLBINS (32U) +#define NTREEBINS (32U) +#define SMALLBIN_SHIFT (3U) +#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT) +#define TREEBIN_SHIFT (8U) +#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT) +#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE) +#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD) + +struct malloc_state { + binmap_t smallmap; + binmap_t treemap; + size_t dvsize; + size_t topsize; + char* least_addr; + mchunkptr dv; + mchunkptr top; + size_t trim_check; + size_t release_checks; + size_t magic; + mchunkptr smallbins[(NSMALLBINS+1)*2]; + tbinptr treebins[NTREEBINS]; + size_t footprint; + size_t max_footprint; + flag_t mflags; +#if USE_LOCKS + MLOCK_T mutex; /* locate lock among fields that rarely change */ +#endif /* USE_LOCKS */ + msegment seg; + void* extp; /* Unused but available for extensions */ + size_t exts; +}; + +typedef struct malloc_state* mstate; + +/* ------------- Global malloc_state and malloc_params ------------------- */ + +/* +malloc_params holds global properties, including those that can be +dynamically set using mallopt. There is a single instance, mparams, +initialized in init_mparams. Note that the non-zeroness of "magic" +also serves as an initialization flag. +*/ + +struct malloc_params { + volatile size_t magic; + size_t page_size; + size_t granularity; + size_t mmap_threshold; + size_t trim_threshold; + flag_t default_mflags; +}; + +static struct malloc_params mparams; + +/* Ensure mparams initialized */ +#define ensure_initialization() (void)(mparams.magic != 0 || init_mparams()) + +#if !ONLY_MSPACES + +/* The global malloc_state used for all non-"mspace" calls */ +static struct malloc_state _gm_; +#define gm (&_gm_) +#define is_global(M) ((M) == &_gm_) + +#endif /* !ONLY_MSPACES */ + +#define is_initialized(M) ((M)->top != 0) + +/* -------------------------- system alloc setup ------------------------- */ + +/* Operations on mflags */ + +#define use_lock(M) ((M)->mflags & USE_LOCK_BIT) +#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT) +#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT) + +#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT) +#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT) +#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT) + +#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT) +#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT) + +#define set_lock(M,L)\ + ((M)->mflags = (L)?\ + ((M)->mflags | USE_LOCK_BIT) :\ + ((M)->mflags & ~USE_LOCK_BIT)) + +/* page-align a size */ +#define page_align(S)\ + (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE)) + +/* granularity-align a size */ +#define granularity_align(S)\ + (((S) + (mparams.granularity - SIZE_T_ONE))\ + & ~(mparams.granularity - SIZE_T_ONE)) + + +/* For mmap, use granularity alignment on windows, else page-align */ +#ifdef DL_PLATFORM_WIN32 +#define mmap_align(S) granularity_align(S) +#else +#define mmap_align(S) page_align(S) +#endif + +/* For sys_alloc, enough padding to ensure can malloc request on success */ +#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT) + +#define is_page_aligned(S)\ + (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0) +#define is_granularity_aligned(S)\ + (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0) + +/* True if segment S holds address A */ +#define segment_holds(S, A)\ + ((char*)(A) >= S->base && (char*)(A) < S->base + S->size) + +/* Return segment holding given address */ +static msegmentptr segment_holding(mstate m, char* addr) { + msegmentptr sp = &m->seg; + for (;;) { + if (addr >= sp->base && addr < sp->base + sp->size) + return sp; + if ((sp = sp->next) == 0) + return 0; + } +} + +/* Return true if segment contains a segment link */ +static int has_segment_link(mstate m, msegmentptr ss) { + msegmentptr sp = &m->seg; + for (;;) { + if ((char*)sp >= ss->base && (char*)sp < ss->base + ss->size) + return 1; + if ((sp = sp->next) == 0) + return 0; + } +} + +#ifndef MORECORE_CANNOT_TRIM +#define should_trim(M,s) ((s) > (M)->trim_check) +#else /* MORECORE_CANNOT_TRIM */ +#define should_trim(M,s) (0) +#endif /* MORECORE_CANNOT_TRIM */ + +/* +TOP_FOOT_SIZE is padding at the end of a segment, including space +that may be needed to place segment records and fenceposts when new +noncontiguous segments are added. +*/ +#define TOP_FOOT_SIZE\ + (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE) + + +/* ------------------------------- Hooks -------------------------------- */ + +/* +PREACTION should be defined to return 0 on success, and nonzero on +failure. If you are not using locking, you can redefine these to do +anything you like. +*/ + +#if USE_LOCKS + +#define PREACTION(M) ((use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0) +#define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); } +#else /* USE_LOCKS */ + +#ifndef PREACTION +#define PREACTION(M) (0) +#endif /* PREACTION */ + +#ifndef POSTACTION +#define POSTACTION(M) +#endif /* POSTACTION */ + +#endif /* USE_LOCKS */ + +/* +CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses. +USAGE_ERROR_ACTION is triggered on detected bad frees and +reallocs. The argument p is an address that might have triggered the +fault. It is ignored by the two predefined actions, but might be +useful in custom actions that try to help diagnose errors. +*/ + +#if PROCEED_ON_ERROR + +/* A count of the number of corruption errors causing resets */ +int malloc_corruption_error_count; + +/* default corruption action */ +static void reset_on_error(mstate m); + +#define CORRUPTION_ERROR_ACTION(m) reset_on_error(m) +#define USAGE_ERROR_ACTION(m, p) + +#else /* PROCEED_ON_ERROR */ + +#ifndef CORRUPTION_ERROR_ACTION +#define CORRUPTION_ERROR_ACTION(m) ABORT +#endif /* CORRUPTION_ERROR_ACTION */ + +#ifndef USAGE_ERROR_ACTION +#define USAGE_ERROR_ACTION(m,p) ABORT +#endif /* USAGE_ERROR_ACTION */ + +#endif /* PROCEED_ON_ERROR */ + +/* -------------------------- Debugging setup ---------------------------- */ + +#if ! DEBUG + +#define check_free_chunk(M,P) +#define check_inuse_chunk(M,P) +#define check_malloced_chunk(M,P,N) +#define check_mmapped_chunk(M,P) +#define check_malloc_state(M) +#define check_top_chunk(M,P) + +#else /* DEBUG */ +#define check_free_chunk(M,P) do_check_free_chunk(M,P) +#define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P) +#define check_top_chunk(M,P) do_check_top_chunk(M,P) +#define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N) +#define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P) +#define check_malloc_state(M) do_check_malloc_state(M) + +static void do_check_any_chunk(mstate m, mchunkptr p); +static void do_check_top_chunk(mstate m, mchunkptr p); +static void do_check_mmapped_chunk(mstate m, mchunkptr p); +static void do_check_inuse_chunk(mstate m, mchunkptr p); +static void do_check_free_chunk(mstate m, mchunkptr p); +static void do_check_malloced_chunk(mstate m, void* mem, size_t s); +static void do_check_tree(mstate m, tchunkptr t); +static void do_check_treebin(mstate m, bindex_t i); +static void do_check_smallbin(mstate m, bindex_t i); +static void do_check_malloc_state(mstate m); +static int bin_find(mstate m, mchunkptr x); +static size_t traverse_and_check(mstate m); +#endif /* DEBUG */ + +/* ---------------------------- Indexing Bins ---------------------------- */ + +#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) +#define small_index(s) ((s) >> SMALLBIN_SHIFT) +#define small_index2size(i) ((i) << SMALLBIN_SHIFT) +#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE)) + +/* addressing by index. See above about smallbin repositioning */ +#define smallbin_at(M, i) ((sbinptr)((char*)&((M)->smallbins[(i)<<1]))) +#define treebin_at(M,i) (&((M)->treebins[i])) + +/* assign tree index for size S to variable I. Use x86 asm if possible */ +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define compute_tree_index(S, I)\ +{\ + unsigned int X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K;\ + __asm__("bsrl\t%1, %0\n\t" : "=r" (K) : "g" (X));\ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ +}\ +} + +#elif defined (__INTEL_COMPILER) +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K = _bit_scan_reverse (X); \ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ +}\ +} + +#elif defined(_MSC_VER) && _MSC_VER>=1300 && defined(DL_PLATFORM_WIN32) +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K;\ + _BitScanReverse((DWORD *) &K, X);\ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ +}\ +} + +#else /* GNUC */ +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int Y = (unsigned int)X;\ + unsigned int N = ((Y - 0x100) >> 16) & 8;\ + unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4;\ + N += K;\ + N += K = (((Y <<= K) - 0x4000) >> 16) & 2;\ + K = 14 - N + ((Y <<= K) >> 15);\ + I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1));\ +}\ +} +#endif /* GNUC */ + +/* Bit representing maximum resolved size in a treebin at i */ +#define bit_for_tree_index(i) \ + (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2) + +/* Shift placing maximum resolved bit in a treebin at i as sign bit */ +#define leftshift_for_tree_index(i) \ + ((i == NTREEBINS-1)? 0 : \ + ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2))) + +/* The size of the smallest chunk held in bin with index i */ +#define minsize_for_tree_index(i) \ + ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | \ + (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1))) + + +/* ------------------------ Operations on bin maps ----------------------- */ + +/* bit corresponding to given index */ +#define idx2bit(i) ((binmap_t)(1) << (i)) + +/* Mark/Clear bits with given index */ +#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i)) +#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i)) +#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i)) + +#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i)) +#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i)) +#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i)) + +/* isolate the least set bit of a bitmap */ +#define least_bit(x) ((x) & -(x)) + +/* mask with all bits to left of least bit of x on */ +#define left_bits(x) ((x<<1) | -(x<<1)) + +/* mask with all bits to left of or equal to least bit of x on */ +#define same_or_left_bits(x) ((x) | -(x)) + +/* index corresponding to given bit. Use x86 asm if possible */ + +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + __asm__("bsfl\t%1, %0\n\t" : "=r" (J) : "g" (X));\ + I = (bindex_t)J;\ +} + +#elif defined (__INTEL_COMPILER) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + J = _bit_scan_forward (X); \ + I = (bindex_t)J;\ +} + +#elif defined(_MSC_VER) && _MSC_VER>=1300 && defined(DL_PLATFORM_WIN32) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + _BitScanForward((DWORD *) &J, X);\ + I = (bindex_t)J;\ +} + +#elif USE_BUILTIN_FFS +#define compute_bit2idx(X, I) I = ffs(X)-1 + +#else +#define compute_bit2idx(X, I)\ +{\ + unsigned int Y = X - 1;\ + unsigned int K = Y >> (16-4) & 16;\ + unsigned int N = K; Y >>= K;\ + N += K = Y >> (8-3) & 8; Y >>= K;\ + N += K = Y >> (4-2) & 4; Y >>= K;\ + N += K = Y >> (2-1) & 2; Y >>= K;\ + N += K = Y >> (1-0) & 1; Y >>= K;\ + I = (bindex_t)(N + Y);\ +} +#endif /* GNUC */ + + +/* ----------------------- Runtime Check Support ------------------------- */ + +/* +For security, the main invariant is that malloc/free/etc never +writes to a static address other than malloc_state, unless static +malloc_state itself has been corrupted, which cannot occur via +malloc (because of these checks). In essence this means that we +believe all pointers, sizes, maps etc held in malloc_state, but +check all of those linked or offsetted from other embedded data +structures. These checks are interspersed with main code in a way +that tends to minimize their run-time cost. + +When FOOTERS is defined, in addition to range checking, we also +verify footer fields of inuse chunks, which can be used guarantee +that the mstate controlling malloc/free is intact. This is a +streamlined version of the approach described by William Robertson +et al in "Run-time Detection of Heap-based Overflows" LISA'03 +http://www.usenix.org/events/lisa03/tech/robertson.html The footer +of an inuse chunk holds the xor of its mstate and a random seed, +that is checked upon calls to free() and realloc(). This is +(probablistically) unguessable from outside the program, but can be +computed by any code successfully malloc'ing any chunk, so does not +itself provide protection against code that has already broken +security through some other means. Unlike Robertson et al, we +always dynamically check addresses of all offset chunks (previous, +next, etc). This turns out to be cheaper than relying on hashes. +*/ + +#if !INSECURE +/* Check if address a is at least as high as any from MORECORE or MMAP */ +#define ok_address(M, a) ((char*)(a) >= (M)->least_addr) +/* Check if address of next chunk n is higher than base chunk p */ +#define ok_next(p, n) ((char*)(p) < (char*)(n)) +/* Check if p has inuse status */ +#define ok_inuse(p) is_inuse(p) +/* Check if p has its pinuse bit on */ +#define ok_pinuse(p) pinuse(p) + +#else /* !INSECURE */ +#define ok_address(M, a) (1) +#define ok_next(b, n) (1) +#define ok_inuse(p) (1) +#define ok_pinuse(p) (1) +#endif /* !INSECURE */ + +#if (FOOTERS && !INSECURE) +/* Check if (alleged) mstate m has expected magic field */ +#define ok_magic(M) ((M)->magic == mparams.magic) +#else /* (FOOTERS && !INSECURE) */ +#define ok_magic(M) (1) +#endif /* (FOOTERS && !INSECURE) */ + + +/* In gcc, use __builtin_expect to minimize impact of checks */ +#if !INSECURE +#if defined(__GNUC__) && __GNUC__ >= 3 +#define RTCHECK(e) __builtin_expect(e, 1) +#else /* GNUC */ +#define RTCHECK(e) (e) +#endif /* GNUC */ +#else /* !INSECURE */ +#define RTCHECK(e) (1) +#endif /* !INSECURE */ + +/* macros to set up inuse chunks with or without footers */ + +#if !FOOTERS + +#define mark_inuse_foot(M,p,s) + +/* Macros for setting head/foot of non-mmapped chunks */ + +/* Set cinuse bit and pinuse bit of next chunk */ +#define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT) + +/* Set cinuse and pinuse of this chunk and pinuse of next chunk */ +#define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT) + +/* Set size, cinuse and pinuse bit of this chunk */ +#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT)) + +#else /* FOOTERS */ + +/* Set foot of inuse chunk to be xor of mstate and seed */ +#define mark_inuse_foot(M,p,s)\ + (((mchunkptr)((char*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic)) + +#define get_mstate_for(p)\ + ((mstate)(((mchunkptr)((char*)(p) +\ + (chunksize(p))))->prev_foot ^ mparams.magic)) + +#define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT), \ + mark_inuse_foot(M,p,s)) + +#define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT),\ + mark_inuse_foot(M,p,s)) + +#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + mark_inuse_foot(M, p, s)) + +#endif /* !FOOTERS */ + +/* ---------------------------- setting mparams -------------------------- */ + +/* Initialize mparams */ +static int init_mparams(void) { + + if (malloc_global_mutex_status <= 0) + init_malloc_global_mutex(); + + + ACQUIRE_MALLOC_GLOBAL_LOCK(); + if (mparams.magic == 0) { + size_t magic; + size_t psize; + size_t gsize; + +#ifndef DL_PLATFORM_WIN32 + psize = malloc_getpagesize; + gsize = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : psize); +#else /* DL_PLATFORM_WIN32 */ + { + SYSTEM_INFO system_info; + GetSystemInfo(&system_info); + psize = system_info.dwPageSize; + gsize = ((DEFAULT_GRANULARITY != 0)? +DEFAULT_GRANULARITY : system_info.dwAllocationGranularity); + } +#endif /* DL_PLATFORM_WIN32 */ + + /* Sanity-check configuration: + size_t must be unsigned and as wide as pointer type. + ints must be at least 4 bytes. + alignment must be at least 8. + Alignment, min chunk size, and page size must all be powers of 2. + */ + if ((sizeof(size_t) != sizeof(char*)) || + (MAX_SIZE_T < MIN_CHUNK_SIZE) || + (sizeof(int) < 4) || + (MALLOC_ALIGNMENT < (size_t)8U) || + ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || + ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || + ((gsize & (gsize-SIZE_T_ONE)) != 0) || + ((psize & (psize-SIZE_T_ONE)) != 0)) + ABORT; + + mparams.granularity = gsize; + mparams.page_size = psize; + mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD; + mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD; +#if MORECORE_CONTIGUOUS + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT; +#else /* MORECORE_CONTIGUOUS */ + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT; +#endif /* MORECORE_CONTIGUOUS */ + +#if !ONLY_MSPACES + /* Set up lock for main malloc area */ + gm->mflags = mparams.default_mflags; + INITIAL_LOCK(&gm->mutex); +#endif + + { +#if USE_DEV_RANDOM + int fd; + unsigned char buf[sizeof(size_t)]; + /* Try to use /dev/urandom, else fall back on using time */ + if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 && + read(fd, buf, sizeof(buf)) == sizeof(buf)) { + magic = *((size_t *) buf); + close(fd); + } + else +#endif /* USE_DEV_RANDOM */ + + + +#if defined(DL_PLATFORM_WIN32) + magic = (size_t)(GetTickCount() ^ (size_t)0x55555555U); +#else + magic = (size_t)(time(0) ^ (size_t)0x55555555U); +#endif + magic |= (size_t)8U; /* ensure nonzero */ + magic &= ~(size_t)7U; /* improve chances of fault for bad values */ + mparams.magic = magic; + } + } + + RELEASE_MALLOC_GLOBAL_LOCK(); + return 1; +} + +/* support for mallopt */ +static int change_mparam(int param_number, int value) { + size_t val; + ensure_initialization(); + val = (value == -1)? MAX_SIZE_T : (size_t)value; + switch(param_number) { + case M_TRIM_THRESHOLD: + mparams.trim_threshold = val; + return 1; + case M_GRANULARITY: + if (val >= mparams.page_size && ((val & (val-1)) == 0)) { + mparams.granularity = val; + return 1; + } + else + return 0; + case M_MMAP_THRESHOLD: + mparams.mmap_threshold = val; + return 1; + default: + return 0; + } +} + +#if DEBUG +/* ------------------------- Debugging Support --------------------------- */ + +/* Check properties of any chunk, whether free, inuse, mmapped etc */ +static void do_check_any_chunk(mstate m, mchunkptr p) { + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); +} + +/* Check properties of top chunk */ +static void do_check_top_chunk(mstate m, mchunkptr p) { + msegmentptr sp = segment_holding(m, (char*)p); + size_t sz = p->head & ~INUSE_BITS; /* third-lowest bit can be set! */ + assert(sp != 0); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); + assert(sz == m->topsize); + assert(sz > 0); + assert(sz == ((sp->base + sp->size) - (char*)p) - TOP_FOOT_SIZE); + assert(pinuse(p)); + assert(!pinuse(chunk_plus_offset(p, sz))); +} + +/* Check properties of (inuse) mmapped chunks */ +static void do_check_mmapped_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + size_t len = (sz + (p->prev_foot) + MMAP_FOOT_PAD); + assert(is_mmapped(p)); + assert(use_mmap(m)); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); + assert(!is_small(sz)); + assert((len & (mparams.page_size-SIZE_T_ONE)) == 0); + assert(chunk_plus_offset(p, sz)->head == FENCEPOST_HEAD); + assert(chunk_plus_offset(p, sz+SIZE_T_SIZE)->head == 0); +} + +/* Check properties of inuse chunks */ +static void do_check_inuse_chunk(mstate m, mchunkptr p) { + do_check_any_chunk(m, p); + assert(is_inuse(p)); + assert(next_pinuse(p)); + /* If not pinuse and not mmapped, previous chunk has OK offset */ + assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p); + if (is_mmapped(p)) + do_check_mmapped_chunk(m, p); +} + +/* Check properties of free chunks */ +static void do_check_free_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + mchunkptr next = chunk_plus_offset(p, sz); + do_check_any_chunk(m, p); + assert(!is_inuse(p)); + assert(!next_pinuse(p)); + assert (!is_mmapped(p)); + if (p != m->dv && p != m->top) { + if (sz >= MIN_CHUNK_SIZE) { + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(is_aligned(chunk2mem(p))); + assert(next->prev_foot == sz); + assert(pinuse(p)); + assert (next == m->top || is_inuse(next)); + assert(p->fd->bk == p); + assert(p->bk->fd == p); + } + else /* markers are always of size SIZE_T_SIZE */ + assert(sz == SIZE_T_SIZE); + } +} + +/* Check properties of malloced chunks at the point they are malloced */ +static void do_check_malloced_chunk(mstate m, void* mem, size_t s) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + size_t sz = p->head & ~INUSE_BITS; + do_check_inuse_chunk(m, p); + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(sz >= MIN_CHUNK_SIZE); + assert(sz >= s); + /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */ + assert(is_mmapped(p) || sz < (s + MIN_CHUNK_SIZE)); + } +} + +/* Check a tree and its subtrees. */ +static void do_check_tree(mstate m, tchunkptr t) { + tchunkptr head = 0; + tchunkptr u = t; + bindex_t tindex = t->index; + size_t tsize = chunksize(t); + bindex_t idx; + compute_tree_index(tsize, idx); + assert(tindex == idx); + assert(tsize >= MIN_LARGE_SIZE); + assert(tsize >= minsize_for_tree_index(idx)); + assert((idx == NTREEBINS-1) || (tsize < minsize_for_tree_index((idx+1)))); + + do { /* traverse through chain of same-sized nodes */ + do_check_any_chunk(m, ((mchunkptr)u)); + assert(u->index == tindex); + assert(chunksize(u) == tsize); + assert(!is_inuse(u)); + assert(!next_pinuse(u)); + assert(u->fd->bk == u); + assert(u->bk->fd == u); + if (u->parent == 0) { + assert(u->child[0] == 0); + assert(u->child[1] == 0); + } + else { + assert(head == 0); /* only one node on chain has parent */ + head = u; + assert(u->parent != u); + assert (u->parent->child[0] == u || + u->parent->child[1] == u || + *((tbinptr*)(u->parent)) == u); + if (u->child[0] != 0) { + assert(u->child[0]->parent == u); + assert(u->child[0] != u); + do_check_tree(m, u->child[0]); + } + if (u->child[1] != 0) { + assert(u->child[1]->parent == u); + assert(u->child[1] != u); + do_check_tree(m, u->child[1]); + } + if (u->child[0] != 0 && u->child[1] != 0) { + assert(chunksize(u->child[0]) < chunksize(u->child[1])); + } + } + u = u->fd; + } while (u != t); + assert(head != 0); +} + +/* Check all the chunks in a treebin. */ +static void do_check_treebin(mstate m, bindex_t i) { + tbinptr* tb = treebin_at(m, i); + tchunkptr t = *tb; + int empty = (m->treemap & (1U << i)) == 0; + if (t == 0) + assert(empty); + if (!empty) + do_check_tree(m, t); +} + +/* Check all the chunks in a smallbin. */ +static void do_check_smallbin(mstate m, bindex_t i) { + sbinptr b = smallbin_at(m, i); + mchunkptr p = b->bk; + unsigned int empty = (m->smallmap & (1U << i)) == 0; + if (p == b) + assert(empty); + if (!empty) { + for (; p != b; p = p->bk) { + size_t size = chunksize(p); + mchunkptr q; + /* each chunk claims to be free */ + do_check_free_chunk(m, p); + /* chunk belongs in bin */ + assert(small_index(size) == i); + assert(p->bk == b || chunksize(p->bk) == chunksize(p)); + /* chunk is followed by an inuse chunk */ + q = next_chunk(p); + if (q->head != FENCEPOST_HEAD) + do_check_inuse_chunk(m, q); + } + } +} + +/* Find x in a bin. Used in other check functions. */ +static int bin_find(mstate m, mchunkptr x) { + size_t size = chunksize(x); + if (is_small(size)) { + bindex_t sidx = small_index(size); + sbinptr b = smallbin_at(m, sidx); + if (smallmap_is_marked(m, sidx)) { + mchunkptr p = b; + do { + if (p == x) + return 1; + } while ((p = p->fd) != b); + } + } + else { + bindex_t tidx; + compute_tree_index(size, tidx); + if (treemap_is_marked(m, tidx)) { + tchunkptr t = *treebin_at(m, tidx); + size_t sizebits = size << leftshift_for_tree_index(tidx); + while (t != 0 && chunksize(t) != size) { + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + sizebits <<= 1; + } + if (t != 0) { + tchunkptr u = t; + do { + if (u == (tchunkptr)x) + return 1; + } while ((u = u->fd) != t); + } + } + } + return 0; +} + +/* Traverse each chunk and check it; return total */ +static size_t traverse_and_check(mstate m) { + size_t sum = 0; + if (is_initialized(m)) { + msegmentptr s = &m->seg; + sum += m->topsize + TOP_FOOT_SIZE; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + mchunkptr lastq = 0; + assert(pinuse(q)); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + sum += chunksize(q); + if (is_inuse(q)) { + assert(!bin_find(m, q)); + do_check_inuse_chunk(m, q); + } + else { + assert(q == m->dv || bin_find(m, q)); + assert(lastq == 0 || is_inuse(lastq)); /* Not 2 consecutive free */ + do_check_free_chunk(m, q); + } + lastq = q; + q = next_chunk(q); + } + s = s->next; + } + } + return sum; +} + +/* Check all properties of malloc_state. */ +static void do_check_malloc_state(mstate m) { + bindex_t i; + size_t total; + /* check bins */ + for (i = 0; i < NSMALLBINS; ++i) + do_check_smallbin(m, i); + for (i = 0; i < NTREEBINS; ++i) + do_check_treebin(m, i); + + if (m->dvsize != 0) { /* check dv chunk */ + do_check_any_chunk(m, m->dv); + assert(m->dvsize == chunksize(m->dv)); + assert(m->dvsize >= MIN_CHUNK_SIZE); + assert(bin_find(m, m->dv) == 0); + } + + if (m->top != 0) { /* check top chunk */ + do_check_top_chunk(m, m->top); + /*assert(m->topsize == chunksize(m->top)); redundant */ + assert(m->topsize > 0); + assert(bin_find(m, m->top) == 0); + } + + total = traverse_and_check(m); + assert(total <= m->footprint); + assert(m->footprint <= m->max_footprint); +} +#endif /* DEBUG */ + +/* ----------------------------- statistics ------------------------------ */ + +#if !NO_MALLINFO +static struct mallinfo internal_mallinfo(mstate m) { + struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + ensure_initialization(); + if (!PREACTION(m)) { + check_malloc_state(m); + if (is_initialized(m)) { + size_t nfree = SIZE_T_ONE; /* top always free */ + size_t mfree = m->topsize + TOP_FOOT_SIZE; + size_t sum = mfree; + msegmentptr s = &m->seg; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + size_t sz = chunksize(q); + sum += sz; + if (!is_inuse(q)) { + mfree += sz; + ++nfree; + } + q = next_chunk(q); + } + s = s->next; + } + + nm.arena = sum; + nm.ordblks = nfree; + nm.hblkhd = m->footprint - sum; + nm.usmblks = m->max_footprint; + nm.uordblks = m->footprint - mfree; + nm.fordblks = mfree; + nm.keepcost = m->topsize; + } + + POSTACTION(m); + } + return nm; +} +#endif /* !NO_MALLINFO */ + +static void internal_malloc_stats(mstate m) { + ensure_initialization(); + if (!PREACTION(m)) { + size_t maxfp = 0; + size_t fp = 0; + size_t used = 0; + check_malloc_state(m); + if (is_initialized(m)) { + msegmentptr s = &m->seg; + maxfp = m->max_footprint; + fp = m->footprint; + used = fp - (m->topsize + TOP_FOOT_SIZE); + + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + if (!is_inuse(q)) + used -= chunksize(q); + q = next_chunk(q); + } + s = s->next; + } + } + + fprintf(stderr, "max system bytes = %10lu\n", (unsigned long)(maxfp)); + fprintf(stderr, "system bytes = %10lu\n", (unsigned long)(fp)); + fprintf(stderr, "in use bytes = %10lu\n", (unsigned long)(used)); + + POSTACTION(m); + } +} + +/* ----------------------- Operations on smallbins ----------------------- */ + +/* +Various forms of linking and unlinking are defined as macros. Even +the ones for trees, which are very long but have very short typical +paths. This is ugly but reduces reliance on inlining support of +compilers. +*/ + +/* Link a free chunk into a smallbin */ +#define insert_small_chunk(M, P, S) {\ + bindex_t I = small_index(S);\ + mchunkptr B = smallbin_at(M, I);\ + mchunkptr F = B;\ + assert(S >= MIN_CHUNK_SIZE);\ + if (!smallmap_is_marked(M, I))\ + mark_smallmap(M, I);\ + else if (RTCHECK(ok_address(M, B->fd)))\ + F = B->fd;\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ + B->fd = P;\ + F->bk = P;\ + P->fd = F;\ + P->bk = B;\ +} + +/* Unlink a chunk from a smallbin */ +#define unlink_small_chunk(M, P, S) {\ + mchunkptr F = P->fd;\ + mchunkptr B = P->bk;\ + bindex_t I = small_index(S);\ + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ + if (F == B)\ + clear_smallmap(M, I);\ + else if (RTCHECK((F == smallbin_at(M,I) || ok_address(M, F)) &&\ + (B == smallbin_at(M,I) || ok_address(M, B)))) {\ + F->bk = B;\ + B->fd = F;\ +}\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ +} + +/* Unlink the first chunk from a smallbin */ +#define unlink_first_small_chunk(M, B, P, I) {\ + mchunkptr F = P->fd;\ + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ + if (B == F)\ + clear_smallmap(M, I);\ + else if (RTCHECK(ok_address(M, F))) {\ + B->fd = F;\ + F->bk = B;\ +}\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ +} + + + +/* Replace dv node, binning the old one */ +/* Used only when dvsize known to be small */ +#define replace_dv(M, P, S) {\ + size_t DVS = M->dvsize;\ + if (DVS != 0) {\ + mchunkptr DV = M->dv;\ + assert(is_small(DVS));\ + insert_small_chunk(M, DV, DVS);\ + }\ + M->dvsize = S;\ + M->dv = P;\ +} + +/* ------------------------- Operations on trees ------------------------- */ + +/* Insert chunk into tree */ +#define insert_large_chunk(M, X, S) {\ + tbinptr* H;\ + bindex_t I;\ + compute_tree_index(S, I);\ + H = treebin_at(M, I);\ + X->index = I;\ + X->child[0] = X->child[1] = 0;\ + if (!treemap_is_marked(M, I)) {\ + mark_treemap(M, I);\ + *H = X;\ + X->parent = (tchunkptr)H;\ + X->fd = X->bk = X;\ + }\ + else {\ + tchunkptr T = *H;\ + size_t K = S << leftshift_for_tree_index(I);\ + for (;;) {\ + if (chunksize(T) != S) {\ + tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]);\ + K <<= 1;\ + if (*C != 0)\ + T = *C;\ + else if (RTCHECK(ok_address(M, C))) {\ + *C = X;\ + X->parent = T;\ + X->fd = X->bk = X;\ + break;\ +}\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + break;\ +}\ + }\ + else {\ + tchunkptr F = T->fd;\ + if (RTCHECK(ok_address(M, T) && ok_address(M, F))) {\ + T->fd = F->bk = X;\ + X->fd = F;\ + X->bk = T;\ + X->parent = 0;\ + break;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + break;\ +}\ +}\ + }\ +}\ +} + +/* +Unlink steps: + +1. If x is a chained node, unlink it from its same-sized fd/bk links +and choose its bk node as its replacement. +2. If x was the last node of its size, but not a leaf node, it must +be replaced with a leaf node (not merely one with an open left or +right), to make sure that lefts and rights of descendents +correspond properly to bit masks. We use the rightmost descendent +of x. We could use any other leaf, but this is easy to locate and +tends to counteract removal of leftmosts elsewhere, and so keeps +paths shorter than minimally guaranteed. This doesn't loop much +because on average a node in a tree is near the bottom. +3. If x is the base of a chain (i.e., has parent links) relink +x's parent and children to x's replacement (or null if none). +*/ + +#define unlink_large_chunk(M, X) {\ + tchunkptr XP = X->parent;\ + tchunkptr R;\ + if (X->bk != X) {\ + tchunkptr F = X->fd;\ + R = X->bk;\ + if (RTCHECK(ok_address(M, F))) {\ + F->bk = R;\ + R->fd = F;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ + }\ + else {\ + tchunkptr* RP;\ + if (((R = *(RP = &(X->child[1]))) != 0) ||\ + ((R = *(RP = &(X->child[0]))) != 0)) {\ + tchunkptr* CP;\ + while ((*(CP = &(R->child[1])) != 0) ||\ + (*(CP = &(R->child[0])) != 0)) {\ + R = *(RP = CP);\ +}\ + if (RTCHECK(ok_address(M, RP)))\ + *RP = 0;\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ +}\ +}\ + if (XP != 0) {\ + tbinptr* H = treebin_at(M, X->index);\ + if (X == *H) {\ + if ((*H = R) == 0) \ + clear_treemap(M, X->index);\ + }\ + else if (RTCHECK(ok_address(M, XP))) {\ + if (XP->child[0] == X) \ + XP->child[0] = R;\ + else \ + XP->child[1] = R;\ +}\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + if (R != 0) {\ + if (RTCHECK(ok_address(M, R))) {\ + tchunkptr C0, C1;\ + R->parent = XP;\ + if ((C0 = X->child[0]) != 0) {\ + if (RTCHECK(ok_address(M, C0))) {\ + R->child[0] = C0;\ + C0->parent = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + if ((C1 = X->child[1]) != 0) {\ + if (RTCHECK(ok_address(M, C1))) {\ + R->child[1] = C1;\ + C1->parent = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ +} + +/* Relays to large vs small bin operations */ + +#define insert_chunk(M, P, S)\ + if (is_small(S)) insert_small_chunk(M, P, S)\ + else { tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); } + +#define unlink_chunk(M, P, S)\ + if (is_small(S)) unlink_small_chunk(M, P, S)\ + else { tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); } + + +/* Relays to internal calls to malloc/free from realloc, memalign etc */ + +#if ONLY_MSPACES +#define internal_malloc(m, b) rak_mspace_malloc(m, b) +#define internal_free(m, mem) rak_mspace_free(m,mem); +#else /* ONLY_MSPACES */ +#if MSPACES +#define internal_malloc(m, b)\ + (m == gm)? rdlmalloc(b) : rak_mspace_malloc(m, b) +#define internal_free(m, mem)\ + if (m == gm) rdlfree(mem); else rak_mspace_free(m,mem); +#else /* MSPACES */ +#define internal_malloc(m, b) rdlmalloc(b) +#define internal_free(m, mem) rdlfree(mem) +#endif /* MSPACES */ +#endif /* ONLY_MSPACES */ + +/* ----------------------- Direct-mmapping chunks ----------------------- */ + +/* +Directly mmapped chunks are set up with an offset to the start of +the mmapped region stored in the prev_foot field of the chunk. This +allows reconstruction of the required argument to MUNMAP when freed, +and also allows adjustment of the returned chunk to meet alignment +requirements (especially in memalign). +*/ + +/* Malloc using mmap */ +static void* mmap_alloc(mstate m, size_t nb) { + size_t mmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + if (mmsize > nb) { /* Check for wrap around 0 */ + char* mm = (char*)(CALL_DIRECT_MMAP(mmsize)); + if (mm != CMFAIL) { + size_t offset = align_offset(chunk2mem(mm)); + size_t psize = mmsize - offset - MMAP_FOOT_PAD; + mchunkptr p = (mchunkptr)(mm + offset); + p->prev_foot = offset; + p->head = psize; + mark_inuse_foot(m, p, psize); + chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0; + + if (m->least_addr == 0 || mm < m->least_addr) + m->least_addr = mm; + if ((m->footprint += mmsize) > m->max_footprint) + m->max_footprint = m->footprint; + assert(is_aligned(chunk2mem(p))); + check_mmapped_chunk(m, p); + return chunk2mem(p); + } + } + return 0; +} + +/* Realloc using mmap */ +static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb) { + size_t oldsize = chunksize(oldp); + if (is_small(nb)) /* Can't shrink mmap regions below small size */ + return 0; + /* Keep old chunk if big enough but not too big */ + if (oldsize >= nb + SIZE_T_SIZE && + (oldsize - nb) <= (mparams.granularity << 1)) + return oldp; + else { + size_t offset = oldp->prev_foot; + size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD; + size_t newmmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + char* cp = (char*)CALL_MREMAP((char*)oldp - offset, + oldmmsize, newmmsize, 1); + if (cp != CMFAIL) { + mchunkptr newp = (mchunkptr)(cp + offset); + size_t psize = newmmsize - offset - MMAP_FOOT_PAD; + newp->head = psize; + mark_inuse_foot(m, newp, psize); + chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0; + + if (cp < m->least_addr) + m->least_addr = cp; + if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint) + m->max_footprint = m->footprint; + check_mmapped_chunk(m, newp); + return newp; + } + } + return 0; +} + +/* -------------------------- mspace management -------------------------- */ + +/* Initialize top chunk and its size */ +static void init_top(mstate m, mchunkptr p, size_t psize) { + /* Ensure alignment */ + size_t offset = align_offset(chunk2mem(p)); + p = (mchunkptr)((char*)p + offset); + psize -= offset; + + m->top = p; + m->topsize = psize; + p->head = psize | PINUSE_BIT; + /* set size of fake trailing chunk holding overhead space only once */ + chunk_plus_offset(p, psize)->head = TOP_FOOT_SIZE; + m->trim_check = mparams.trim_threshold; /* reset on each update */ +} + +/* Initialize bins for a new mstate that is otherwise zeroed out */ +static void init_bins(mstate m) { + /* Establish circular links for smallbins */ + bindex_t i; + for (i = 0; i < NSMALLBINS; ++i) { + sbinptr bin = smallbin_at(m,i); + bin->fd = bin->bk = bin; + } +} + +#if PROCEED_ON_ERROR + +/* default corruption action */ +static void reset_on_error(mstate m) { + int i; + ++malloc_corruption_error_count; + /* Reinitialize fields to forget about all memory */ + m->smallbins = m->treebins = 0; + m->dvsize = m->topsize = 0; + m->seg.base = 0; + m->seg.size = 0; + m->seg.next = 0; + m->top = m->dv = 0; + for (i = 0; i < NTREEBINS; ++i) + *treebin_at(m, i) = 0; + init_bins(m); +} +#endif /* PROCEED_ON_ERROR */ + +/* Allocate chunk and prepend remainder with chunk in successor base. */ +static void* prepend_alloc(mstate m, char* newbase, char* oldbase, + size_t nb) { + mchunkptr p = align_as_chunk(newbase); + mchunkptr oldfirst = align_as_chunk(oldbase); + size_t psize = (char*)oldfirst - (char*)p; + mchunkptr q = chunk_plus_offset(p, nb); + size_t qsize = psize - nb; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + + assert((char*)oldfirst > (char*)q); + assert(pinuse(oldfirst)); + assert(qsize >= MIN_CHUNK_SIZE); + + /* consolidate remainder with first chunk of old base */ + if (oldfirst == m->top) { + size_t tsize = m->topsize += qsize; + m->top = q; + q->head = tsize | PINUSE_BIT; + check_top_chunk(m, q); + } + else if (oldfirst == m->dv) { + size_t dsize = m->dvsize += qsize; + m->dv = q; + set_size_and_pinuse_of_free_chunk(q, dsize); + } + else { + if (!is_inuse(oldfirst)) { + size_t nsize = chunksize(oldfirst); + unlink_chunk(m, oldfirst, nsize); + oldfirst = chunk_plus_offset(oldfirst, nsize); + qsize += nsize; + } + set_free_with_pinuse(q, qsize, oldfirst); + insert_chunk(m, q, qsize); + check_free_chunk(m, q); + } + + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); +} + +/* Add a segment to hold a new noncontiguous region */ +static void add_segment(mstate m, char* tbase, size_t tsize, flag_t mmapped) { + /* Determine locations and sizes of segment, fenceposts, old top */ + char* old_top = (char*)m->top; + msegmentptr oldsp = segment_holding(m, old_top); + char* old_end = oldsp->base + oldsp->size; + size_t ssize = pad_request(sizeof(struct malloc_segment)); + char* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + size_t offset = align_offset(chunk2mem(rawsp)); + char* asp = rawsp + offset; + char* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp; + mchunkptr sp = (mchunkptr)csp; + msegmentptr ss = (msegmentptr)(chunk2mem(sp)); + mchunkptr tnext = chunk_plus_offset(sp, ssize); + mchunkptr p = tnext; + int nfences = 0; + + /* reset top to new space */ + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + + /* Set up segment record */ + assert(is_aligned(ss)); + set_size_and_pinuse_of_inuse_chunk(m, sp, ssize); + *ss = m->seg; /* Push current record */ + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmapped; + m->seg.next = ss; + + /* Insert trailing fenceposts */ + for (;;) { + mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE); + p->head = FENCEPOST_HEAD; + ++nfences; + if ((char*)(&(nextp->head)) < old_end) + p = nextp; + else + break; + } + assert(nfences >= 2); + + /* Insert the rest of old top into a bin as an ordinary free chunk */ + if (csp != old_top) { + mchunkptr q = (mchunkptr)old_top; + size_t psize = csp - old_top; + mchunkptr tn = chunk_plus_offset(q, psize); + set_free_with_pinuse(q, psize, tn); + insert_chunk(m, q, psize); + } + + check_top_chunk(m, m->top); +} + +/* -------------------------- System allocation -------------------------- */ + +/* Get memory from system using MORECORE or MMAP */ +static void* sys_alloc(mstate m, size_t nb) { + char* tbase = CMFAIL; + size_t tsize = 0; + flag_t mmap_flag = 0; + + ensure_initialization(); + + /* Directly map large chunks, but only if already initialized */ + if (use_mmap(m) && nb >= mparams.mmap_threshold && m->topsize != 0) { + void* mem = mmap_alloc(m, nb); + if (mem != 0) + return mem; + } + + /* + Try getting memory in any of three ways (in most-preferred to + least-preferred order): + 1. A call to MORECORE that can normally contiguously extend memory. + (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or + or main space is mmapped or a previous contiguous call failed) + 2. A call to MMAP new space (disabled if not HAVE_MMAP). + Note that under the default settings, if MORECORE is unable to + fulfill a request, and HAVE_MMAP is true, then mmap is + used as a noncontiguous system allocator. This is a useful backup + strategy for systems with holes in address spaces -- in this case + sbrk cannot contiguously expand the heap, but mmap may be able to + find space. + 3. A call to MORECORE that cannot usually contiguously extend memory. + (disabled if not HAVE_MORECORE) + + In all cases, we need to request enough bytes from system to ensure + we can malloc nb bytes upon success, so pad with enough space for + top_foot, plus alignment-pad to make sure we don't lose bytes if + not on boundary, and round this up to a granularity unit. + */ + + if (MORECORE_CONTIGUOUS && !use_noncontiguous(m)) { + char* br = CMFAIL; + msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (char*)m->top); + size_t asize = 0; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + + if (ss == 0) { /* First time through or recovery */ + char* base = (char*)CALL_MORECORE(0); + if (base != CMFAIL) { + asize = granularity_align(nb + SYS_ALLOC_PADDING); + /* Adjust to end on a page boundary */ + if (!is_page_aligned(base)) + asize += (page_align((size_t)base) - (size_t)base); + /* Can't call MORECORE if size is negative when treated as signed */ + if (asize < HALF_MAX_SIZE_T && + (br = (char*)(CALL_MORECORE(asize))) == base) { + tbase = base; + tsize = asize; + } + } + } + else { + /* Subtract out existing available top space from MORECORE request. */ + asize = granularity_align(nb - m->topsize + SYS_ALLOC_PADDING); + /* Use mem here only if it did continuously extend old space */ + if (asize < HALF_MAX_SIZE_T && + (br = (char*)(CALL_MORECORE(asize))) == ss->base+ss->size) { + tbase = br; + tsize = asize; + } + } + + if (tbase == CMFAIL) { /* Cope with partial failure */ + if (br != CMFAIL) { /* Try to use/extend the space we did get */ + if (asize < HALF_MAX_SIZE_T && + asize < nb + SYS_ALLOC_PADDING) { + size_t esize = granularity_align(nb + SYS_ALLOC_PADDING - asize); + if (esize < HALF_MAX_SIZE_T) { + char* end = (char*)CALL_MORECORE(esize); + if (end != CMFAIL) + asize += esize; + else { /* Can't use; try to release */ + (void) CALL_MORECORE(-asize); + br = CMFAIL; + } + } + } + } + if (br != CMFAIL) { /* Use the space we did get */ + tbase = br; + tsize = asize; + } + else + disable_contiguous(m); /* Don't try contiguous path in the future */ + } + + RELEASE_MALLOC_GLOBAL_LOCK(); + } + + if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */ + size_t rsize = granularity_align(nb + SYS_ALLOC_PADDING); + if (rsize > nb) { /* Fail if wraps around zero */ + char* mp = (char*)(CALL_MMAP(rsize)); + if (mp != CMFAIL) { + tbase = mp; + tsize = rsize; + mmap_flag = USE_MMAP_BIT; + } + } + } + + if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */ + size_t asize = granularity_align(nb + SYS_ALLOC_PADDING); + if (asize < HALF_MAX_SIZE_T) { + char* br = CMFAIL; + char* end = CMFAIL; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + br = (char*)(CALL_MORECORE(asize)); + end = (char*)(CALL_MORECORE(0)); + RELEASE_MALLOC_GLOBAL_LOCK(); + if (br != CMFAIL && end != CMFAIL && br < end) { + size_t ssize = end - br; + if (ssize > nb + TOP_FOOT_SIZE) { + tbase = br; + tsize = ssize; + } + } + } + } + + if (tbase != CMFAIL) { + + if ((m->footprint += tsize) > m->max_footprint) + m->max_footprint = m->footprint; + + if (!is_initialized(m)) { /* first-time initialization */ + if (m->least_addr == 0 || tbase < m->least_addr) + m->least_addr = tbase; + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmap_flag; + m->magic = mparams.magic; + m->release_checks = MAX_RELEASE_CHECK_RATE; + init_bins(m); +#if !ONLY_MSPACES + if (is_global(m)) + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + else +#endif + { + /* Offset top by embedded malloc_state */ + mchunkptr mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) -TOP_FOOT_SIZE); + } + } + + else { + /* Try to merge with an existing segment */ + msegmentptr sp = &m->seg; + /* Only consider most recent segment if traversal suppressed */ + while (sp != 0 && tbase != sp->base + sp->size) + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & USE_MMAP_BIT) == mmap_flag && + segment_holds(sp, m->top)) { /* append */ + sp->size += tsize; + init_top(m, m->top, m->topsize + tsize); + } + else { + if (tbase < m->least_addr) + m->least_addr = tbase; + sp = &m->seg; + while (sp != 0 && sp->base != tbase + tsize) + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & USE_MMAP_BIT) == mmap_flag) { + char* oldbase = sp->base; + sp->base = tbase; + sp->size += tsize; + return prepend_alloc(m, tbase, oldbase, nb); + } + else + add_segment(m, tbase, tsize, mmap_flag); + } + } + + if (nb < m->topsize) { /* Allocate from new or extended top space */ + size_t rsize = m->topsize -= nb; + mchunkptr p = m->top; + mchunkptr r = m->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + check_top_chunk(m, m->top); + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); + } + } + + MALLOC_FAILURE_ACTION; + return 0; +} + +/* ----------------------- system deallocation -------------------------- */ + +/* Unmap and unlink any mmapped segments that don't contain used chunks */ +static size_t release_unused_segments(mstate m) { + size_t released = 0; + int nsegs = 0; + msegmentptr pred = &m->seg; + msegmentptr sp = pred->next; + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + msegmentptr next = sp->next; + ++nsegs; + if (is_mmapped_segment(sp) && !is_extern_segment(sp)) { + mchunkptr p = align_as_chunk(base); + size_t psize = chunksize(p); + /* Can unmap if first chunk holds entire segment and not pinned */ + if (!is_inuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) { + tchunkptr tp = (tchunkptr)p; + assert(segment_holds(sp, (char*)sp)); + if (p == m->dv) { + m->dv = 0; + m->dvsize = 0; + } + else { + unlink_large_chunk(m, tp); + } + if (CALL_MUNMAP(base, size) == 0) { + released += size; + m->footprint -= size; + /* unlink obsoleted record */ + sp = pred; + sp->next = next; + } + else { /* back out if cannot unmap */ + insert_large_chunk(m, tp, psize); + } + } + } + if (NO_SEGMENT_TRAVERSAL) /* scan only first segment */ + break; + pred = sp; + sp = next; + } + /* Reset check counter */ + m->release_checks = ((nsegs > MAX_RELEASE_CHECK_RATE)? +nsegs : MAX_RELEASE_CHECK_RATE); + return released; +} + +static int sys_trim(mstate m, size_t pad) { + size_t released = 0; + ensure_initialization(); + if (pad < MAX_REQUEST && is_initialized(m)) { + pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ + + if (m->topsize > pad) { + /* Shrink top space in granularity-size units, keeping at least one */ + size_t unit = mparams.granularity; + size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit - + SIZE_T_ONE) * unit; + msegmentptr sp = segment_holding(m, (char*)m->top); + + if (!is_extern_segment(sp)) { + if (is_mmapped_segment(sp)) { + if (HAVE_MMAP && + sp->size >= extra && + !has_segment_link(m, sp)) { /* can't shrink if pinned */ + size_t newsize = sp->size - extra; + /* Prefer mremap, fall back to munmap */ + if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) || + (CALL_MUNMAP(sp->base + newsize, extra) == 0)) { + released = extra; + } + } + } + else if (HAVE_MORECORE) { + if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */ + extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + { + /* Make sure end of memory is where we last set it. */ + char* old_br = (char*)(CALL_MORECORE(0)); + if (old_br == sp->base + sp->size) { + char* rel_br = (char*)(CALL_MORECORE(-extra)); + char* new_br = (char*)(CALL_MORECORE(0)); + if (rel_br != CMFAIL && new_br < old_br) + released = old_br - new_br; + } + } + RELEASE_MALLOC_GLOBAL_LOCK(); + } + } + + if (released != 0) { + sp->size -= released; + m->footprint -= released; + init_top(m, m->top, m->topsize - released); + check_top_chunk(m, m->top); + } + } + + /* Unmap any unused mmapped segments */ + if (HAVE_MMAP) + released += release_unused_segments(m); + + /* On failure, disable autotrim to avoid repeated failed future calls */ + if (released == 0 && m->topsize > m->trim_check) + m->trim_check = MAX_SIZE_T; + } + + return (released != 0)? 1 : 0; +} + + +/* ---------------------------- malloc support --------------------------- */ + +/* allocate a large request from the best fitting chunk in a treebin */ +static void* tmalloc_large(mstate m, size_t nb) { + tchunkptr v = 0; + size_t rsize = -nb; /* Unsigned negation */ + tchunkptr t; + bindex_t idx; + compute_tree_index(nb, idx); + if ((t = *treebin_at(m, idx)) != 0) { + /* Traverse tree for this bin looking for node with size == nb */ + size_t sizebits = nb << leftshift_for_tree_index(idx); + tchunkptr rst = 0; /* The deepest untaken right subtree */ + for (;;) { + tchunkptr rt; + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + v = t; + if ((rsize = trem) == 0) + break; + } + rt = t->child[1]; + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + if (rt != 0 && rt != t) + rst = rt; + if (t == 0) { + t = rst; /* set t to least subtree holding sizes > nb */ + break; + } + sizebits <<= 1; + } + } + if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */ + binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap; + if (leftbits != 0) { + bindex_t i; + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + t = *treebin_at(m, i); + } + } + + while (t != 0) { /* find smallest of tree or subtree */ + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + t = leftmost_child(t); + } + + /* If dv is a better fit, return 0 so malloc will use it */ + if (v != 0 && rsize < (size_t)(m->dvsize - nb)) { + if (RTCHECK(ok_address(m, v))) { /* split */ + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + insert_chunk(m, r, rsize); + } + return chunk2mem(v); + } + } + CORRUPTION_ERROR_ACTION(m); + } + return 0; +} + +/* allocate a small request from the best fitting chunk in a treebin */ +static void* tmalloc_small(mstate m, size_t nb) { + tchunkptr t, v; + size_t rsize; + bindex_t i; + binmap_t leastbit = least_bit(m->treemap); + compute_bit2idx(leastbit, i); + v = t = *treebin_at(m, i); + rsize = chunksize(t) - nb; + + while ((t = leftmost_child(t)) != 0) { + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + } + + if (RTCHECK(ok_address(m, v))) { + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(m, r, rsize); + } + return chunk2mem(v); + } + } + + CORRUPTION_ERROR_ACTION(m); + return 0; +} + +/* --------------------------- realloc support --------------------------- */ + +static void* internal_realloc(mstate m, void* oldmem, size_t bytes) { + if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + return 0; + } + if (!PREACTION(m)) { + mchunkptr oldp = mem2chunk(oldmem); + size_t oldsize = chunksize(oldp); + mchunkptr next = chunk_plus_offset(oldp, oldsize); + mchunkptr newp = 0; + void* extra = 0; + + /* Try to either shrink or extend into top. Else malloc-copy-free */ + + if (RTCHECK(ok_address(m, oldp) && ok_inuse(oldp) && + ok_next(oldp, next) && ok_pinuse(next))) { + size_t nb = request2size(bytes); + if (is_mmapped(oldp)) + newp = mmap_resize(m, oldp, nb); + else if (oldsize >= nb) { /* already big enough */ + size_t rsize = oldsize - nb; + newp = oldp; + if (rsize >= MIN_CHUNK_SIZE) { + mchunkptr remainder = chunk_plus_offset(newp, nb); + set_inuse(m, newp, nb); + set_inuse_and_pinuse(m, remainder, rsize); + extra = chunk2mem(remainder); + } + } + else if (next == m->top && oldsize + m->topsize > nb) { + /* Expand into top */ + size_t newsize = oldsize + m->topsize; + size_t newtopsize = newsize - nb; + mchunkptr newtop = chunk_plus_offset(oldp, nb); + set_inuse(m, oldp, nb); + newtop->head = newtopsize |PINUSE_BIT; + m->top = newtop; + m->topsize = newtopsize; + newp = oldp; + } + } + else { + USAGE_ERROR_ACTION(m, oldmem); + POSTACTION(m); + return 0; + } +#if DEBUG + if (newp != 0) { + check_inuse_chunk(m, newp); /* Check requires lock */ + } +#endif + + POSTACTION(m); + + if (newp != 0) { + if (extra != 0) { + internal_free(m, extra); + } + return chunk2mem(newp); + } + else { + void* newmem = internal_malloc(m, bytes); + if (newmem != 0) { + size_t oc = oldsize - overhead_for(oldp); + memcpy(newmem, oldmem, (oc < bytes)? oc : bytes); + internal_free(m, oldmem); + } + return newmem; + } + } + return 0; +} + +/* --------------------------- memalign support -------------------------- */ + +static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { + if (alignment <= MALLOC_ALIGNMENT) /* Can just use malloc */ + return internal_malloc(m, bytes); + if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */ + alignment = MIN_CHUNK_SIZE; + if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */ + size_t a = MALLOC_ALIGNMENT << 1; + while (a < alignment) a <<= 1; + alignment = a; + } + + if (bytes >= MAX_REQUEST - alignment) { + if (m != 0) { /* Test isn't needed but avoids compiler warning */ + MALLOC_FAILURE_ACTION; + } + } + else { + size_t nb = request2size(bytes); + size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD; + char* mem = (char*)internal_malloc(m, req); + if (mem != 0) { + void* leader = 0; + void* trailer = 0; + mchunkptr p = mem2chunk(mem); + + if (PREACTION(m)) return 0; + if ((((size_t)(mem)) % alignment) != 0) { /* misaligned */ + /* + Find an aligned spot inside chunk. Since we need to give + back leading space in a chunk of at least MIN_CHUNK_SIZE, if + the first calculation places us at a spot with less than + MIN_CHUNK_SIZE leader, we can move to the next aligned spot. + We've allocated enough total room so that this is always + possible. + */ + char* br = (char*)mem2chunk((size_t)(((size_t)(mem + + alignment - + SIZE_T_ONE)) & + -alignment)); + char* pos = ((size_t)(br - (char*)(p)) >= MIN_CHUNK_SIZE)? +br : br+alignment; + mchunkptr newp = (mchunkptr)pos; + size_t leadsize = pos - (char*)(p); + size_t newsize = chunksize(p) - leadsize; + + if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */ + newp->prev_foot = p->prev_foot + leadsize; + newp->head = newsize; + } + else { /* Otherwise, give back leader, use the rest */ + set_inuse(m, newp, newsize); + set_inuse(m, p, leadsize); + leader = chunk2mem(p); + } + p = newp; + } + + /* Give back spare room at the end */ + if (!is_mmapped(p)) { + size_t size = chunksize(p); + if (size > nb + MIN_CHUNK_SIZE) { + size_t remainder_size = size - nb; + mchunkptr remainder = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + set_inuse(m, remainder, remainder_size); + trailer = chunk2mem(remainder); + } + } + + assert (chunksize(p) >= nb); + assert((((size_t)(chunk2mem(p))) % alignment) == 0); + check_inuse_chunk(m, p); + POSTACTION(m); + if (leader != 0) { + internal_free(m, leader); + } + if (trailer != 0) { + internal_free(m, trailer); + } + return chunk2mem(p); + } + } + return 0; +} + +/* ------------------------ comalloc/coalloc support --------------------- */ + +static void** ialloc(mstate m, + size_t n_elements, + size_t* sizes, + int opts, + void* chunks[]) { + /* + This provides common support for independent_X routines, handling + all of the combinations that can result. + + The opts arg has: + bit 0 set if all elements are same size (using sizes[0]) + bit 1 set if elements should be zeroed + */ + + size_t element_size; /* chunksize of each element, if all same */ + size_t contents_size; /* total size of elements */ + size_t array_size; /* request size of pointer array */ + void* mem; /* malloced aggregate space */ + mchunkptr p; /* corresponding chunk */ + size_t remainder_size; /* remaining bytes while splitting */ + void** marray; /* either "chunks" or malloced ptr array */ + mchunkptr array_chunk; /* chunk for malloced ptr array */ + flag_t was_enabled; /* to disable mmap */ + size_t size; + size_t i; + + ensure_initialization(); + /* compute array length, if needed */ + if (chunks != 0) { + if (n_elements == 0) + return chunks; /* nothing to do */ + marray = chunks; + array_size = 0; + } + else { + /* if empty req, must still return chunk representing empty array */ + if (n_elements == 0) + return (void**)internal_malloc(m, 0); + marray = 0; + array_size = request2size(n_elements * (sizeof(void*))); + } + + /* compute total element size */ + if (opts & 0x1) { /* all-same-size */ + element_size = request2size(*sizes); + contents_size = n_elements * element_size; + } + else { /* add up all the sizes */ + element_size = 0; + contents_size = 0; + for (i = 0; i != n_elements; ++i) + contents_size += request2size(sizes[i]); + } + + size = contents_size + array_size; + + /* + Allocate the aggregate chunk. First disable direct-mmapping so + malloc won't use it, since we would not be able to later + free/realloc space internal to a segregated mmap region. + */ + was_enabled = use_mmap(m); + disable_mmap(m); + mem = internal_malloc(m, size - CHUNK_OVERHEAD); + if (was_enabled) + enable_mmap(m); + if (mem == 0) + return 0; + + if (PREACTION(m)) return 0; + p = mem2chunk(mem); + remainder_size = chunksize(p); + + assert(!is_mmapped(p)); + + if (opts & 0x2) { /* optionally clear the elements */ + memset((size_t*)mem, 0, remainder_size - SIZE_T_SIZE - array_size); + } + + /* If not provided, allocate the pointer array as final part of chunk */ + if (marray == 0) { + size_t array_chunk_size; + array_chunk = chunk_plus_offset(p, contents_size); + array_chunk_size = remainder_size - contents_size; + marray = (void**) (chunk2mem(array_chunk)); + set_size_and_pinuse_of_inuse_chunk(m, array_chunk, array_chunk_size); + remainder_size = contents_size; + } + + /* split out elements */ + for (i = 0; ; ++i) { + marray[i] = chunk2mem(p); + if (i != n_elements-1) { + if (element_size != 0) + size = element_size; + else + size = request2size(sizes[i]); + remainder_size -= size; + set_size_and_pinuse_of_inuse_chunk(m, p, size); + p = chunk_plus_offset(p, size); + } + else { /* the final element absorbs any overallocation slop */ + set_size_and_pinuse_of_inuse_chunk(m, p, remainder_size); + break; + } + } + +#if DEBUG + if (marray != chunks) { + /* final element must have exactly exhausted chunk */ + if (element_size != 0) { + assert(remainder_size == element_size); + } + else { + assert(remainder_size == request2size(sizes[i])); + } + check_inuse_chunk(m, mem2chunk(marray)); + } + for (i = 0; i != n_elements; ++i) + check_inuse_chunk(m, mem2chunk(marray[i])); + +#endif /* DEBUG */ + + POSTACTION(m); + return marray; +} + + +/* -------------------------- public routines ---------------------------- */ + +#if !ONLY_MSPACES + +void* rdlmalloc(size_t bytes) { + /* + Basic algorithm: + If a small request (< 256 bytes minus per-chunk overhead): + 1. If one exists, use a remainderless chunk in associated smallbin. + (Remainderless means that there are too few excess bytes to + represent as a chunk.) + 2. If it is big enough, use the dv chunk, which is normally the + chunk adjacent to the one used for the most recent small request. + 3. If one exists, split the smallest available chunk in a bin, + saving remainder in dv. + 4. If it is big enough, use the top chunk. + 5. If available, get memory from system and use it + Otherwise, for a large request: + 1. Find the smallest available binned chunk that fits, and use it + if it is better fitting than dv chunk, splitting if necessary. + 2. If better fitting than any binned chunk, use the dv chunk. + 3. If it is big enough, use the top chunk. + 4. If request size >= mmap threshold, try to directly mmap this chunk. + 5. If available, get memory from system and use it + + The ugly goto's here ensure that postaction occurs along all paths. + */ + +#if USE_LOCKS + ensure_initialization(); /* initialize in sys_alloc if not using locks */ +#endif + + if (!PREACTION(gm)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = gm->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(gm, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(gm, b, p, idx); + set_inuse_and_pinuse(gm, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb > gm->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(gm, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(gm, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(gm, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(gm, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + + if (nb <= gm->dvsize) { + size_t rsize = gm->dvsize - nb; + mchunkptr p = gm->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = gm->dv = chunk_plus_offset(p, nb); + gm->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + } + else { /* exhaust dv */ + size_t dvs = gm->dvsize; + gm->dvsize = 0; + gm->dv = 0; + set_inuse_and_pinuse(gm, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb < gm->topsize) { /* Split top */ + size_t rsize = gm->topsize -= nb; + mchunkptr p = gm->top; + mchunkptr r = gm->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + mem = chunk2mem(p); + check_top_chunk(gm, gm->top); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + mem = sys_alloc(gm, nb); + +postaction: + POSTACTION(gm); + return mem; + } + + return 0; +} + +void rdlfree(void* mem) { + /* + Consolidate freed chunks with preceeding or succeeding bordering + free chunks, if they exist, and then place in a bin. Intermixed + with special cases for top, dv, mmapped chunks, and usage errors. + */ + + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + if (!ok_magic(fm)) { + USAGE_ERROR_ACTION(fm, p); + return; + } +#else /* FOOTERS */ +#define fm gm +#endif /* FOOTERS */ + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + else { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ + if (p != fm->dv) { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == fm->top) { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + + if (is_small(psize)) { + insert_small_chunk(fm, p, psize); + check_free_chunk(fm, p); + } + else { + tchunkptr tp = (tchunkptr)p; + insert_large_chunk(fm, tp, psize); + check_free_chunk(fm, p); + if (--fm->release_checks == 0) + release_unused_segments(fm); + } + goto postaction; + } + } +erroraction: + USAGE_ERROR_ACTION(fm, p); +postaction: + POSTACTION(fm); + } + } +#if !FOOTERS +#undef fm +#endif /* FOOTERS */ +} + +void* rdlcalloc(size_t n_elements, size_t elem_size) { + void* mem; + size_t req = 0; + if (n_elements != 0) { + req = n_elements * elem_size; + if (((n_elements | elem_size) & ~(size_t)0xffff) && + (req / n_elements != elem_size)) + req = MAX_SIZE_T; /* force downstream failure on overflow */ + } + mem = rdlmalloc(req); + if (mem != 0 && calloc_must_clear(mem2chunk(mem))) + memset(mem, 0, req); + return mem; +} + +void* rdlrealloc(void* oldmem, size_t bytes) { + if (oldmem == 0) + return rdlmalloc(bytes); +#ifdef REALLOC_ZERO_BYTES_FREES + if (bytes == 0) { + rdlfree(oldmem); + return 0; + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { +#if ! FOOTERS + mstate m = gm; +#else /* FOOTERS */ + mstate m = get_mstate_for(mem2chunk(oldmem)); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + return internal_realloc(m, oldmem, bytes); + } +} + +void* rdlmemalign(size_t alignment, size_t bytes) { + return internal_memalign(gm, alignment, bytes); +} + +void** rdlindependent_calloc(size_t n_elements, size_t elem_size, + void* chunks[]) { + size_t sz = elem_size; /* serves as 1-element array */ + return ialloc(gm, n_elements, &sz, 3, chunks); +} + +void** rdlindependent_comalloc(size_t n_elements, size_t sizes[], + void* chunks[]) { + return ialloc(gm, n_elements, sizes, 0, chunks); +} + +void* rdlvalloc(size_t bytes) { + size_t pagesz; + ensure_initialization(); + pagesz = mparams.page_size; + return rdlmemalign(pagesz, bytes); +} + +void* rdlpvalloc(size_t bytes) { + size_t pagesz; + ensure_initialization(); + pagesz = mparams.page_size; + return rdlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE)); +} + +int rdlmalloc_trim(size_t pad) { + int result = 0; + ensure_initialization(); + if (!PREACTION(gm)) { + result = sys_trim(gm, pad); + POSTACTION(gm); + } + return result; +} + +size_t rdlmalloc_footprint(void) { + return gm->footprint; +} + +size_t dlmalloc_max_footprint(void) { + return gm->max_footprint; +} + +#if !NO_MALLINFO +struct mallinfo rdlmallinfo(void) { + return internal_mallinfo(gm); +} +#endif /* NO_MALLINFO */ + +void rdlmalloc_stats() { + internal_malloc_stats(gm); +} + +int rdlmallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +#endif /* !ONLY_MSPACES */ + +size_t rdlmalloc_usable_size(void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +} + +/* ----------------------------- user mspaces ---------------------------- */ + +#if MSPACES + +static mstate init_user_mstate(char* tbase, size_t tsize) { + size_t msize = pad_request(sizeof(struct malloc_state)); + mchunkptr mn; + mchunkptr msp = align_as_chunk(tbase); + mstate m = (mstate)(chunk2mem(msp)); + memset(m, 0, msize); + INITIAL_LOCK(&m->mutex); + msp->head = (msize|INUSE_BITS); + m->seg.base = m->least_addr = tbase; + m->seg.size = m->footprint = m->max_footprint = tsize; + m->magic = mparams.magic; + m->release_checks = MAX_RELEASE_CHECK_RATE; + m->mflags = mparams.default_mflags; + m->extp = 0; + m->exts = 0; + disable_contiguous(m); + init_bins(m); + mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) - TOP_FOOT_SIZE); + check_top_chunk(m, m->top); + return m; +} + +mspace rak_create_mspace(size_t capacity, int locked) { + mstate m = 0; + size_t msize; + ensure_initialization(); + msize = pad_request(sizeof(struct malloc_state)); + if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + size_t rs = ((capacity == 0)? mparams.granularity : + (capacity + TOP_FOOT_SIZE + msize)); + size_t tsize = granularity_align(rs); + char* tbase = (char*)(CALL_MMAP(tsize)); + if (tbase != CMFAIL) { + m = init_user_mstate(tbase, tsize); + m->seg.sflags = USE_MMAP_BIT; + set_lock(m, locked); + } + } + return (mspace)m; +} + +mspace rak_create_mspace_with_base(void* base, size_t capacity, int locked) { + mstate m = 0; + size_t msize; + ensure_initialization(); + msize = pad_request(sizeof(struct malloc_state)); + if (capacity > msize + TOP_FOOT_SIZE && + capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + m = init_user_mstate((char*)base, capacity); + m->seg.sflags = EXTERN_BIT; + set_lock(m, locked); + } + return (mspace)m; +} + +int rak_mspace_track_large_chunks(mspace msp, int enable) { + int ret = 0; + mstate ms = (mstate)msp; + if (!PREACTION(ms)) { + if (!use_mmap(ms)) + ret = 1; + if (!enable) + enable_mmap(ms); + else + disable_mmap(ms); + POSTACTION(ms); + } + return ret; +} + +size_t rak_destroy_mspace(mspace msp) { + size_t freed = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + msegmentptr sp = &ms->seg; + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + flag_t flag = sp->sflags; + sp = sp->next; + if ((flag & USE_MMAP_BIT) && !(flag & EXTERN_BIT) && + CALL_MUNMAP(base, size) == 0) + freed += size; + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return freed; +} + +/* +mspace versions of routines are near-clones of the global +versions. This is not so nice but better than the alternatives. +*/ + + +void* rak_mspace_malloc(mspace msp, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (!PREACTION(ms)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = ms->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(ms, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(ms, b, p, idx); + set_inuse_and_pinuse(ms, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (nb > ms->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(ms, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(ms, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(ms, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(ms, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (ms->treemap != 0 && (mem = tmalloc_small(ms, nb)) != 0) { + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (ms->treemap != 0 && (mem = tmalloc_large(ms, nb)) != 0) { + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + } + + if (nb <= ms->dvsize) { + size_t rsize = ms->dvsize - nb; + mchunkptr p = ms->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = ms->dv = chunk_plus_offset(p, nb); + ms->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + } + else { /* exhaust dv */ + size_t dvs = ms->dvsize; + ms->dvsize = 0; + ms->dv = 0; + set_inuse_and_pinuse(ms, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (nb < ms->topsize) { /* Split top */ + size_t rsize = ms->topsize -= nb; + mchunkptr p = ms->top; + mchunkptr r = ms->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + mem = chunk2mem(p); + check_top_chunk(ms, ms->top); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + mem = sys_alloc(ms, nb); + +postaction: + POSTACTION(ms); + return mem; + } + + return 0; +} + +void rak_mspace_free(mspace msp, void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + msp = msp; /* placate people compiling -Wunused */ +#else /* FOOTERS */ + mstate fm = (mstate)msp; +#endif /* FOOTERS */ + if (!ok_magic(fm)) { + USAGE_ERROR_ACTION(fm, p); + return; + } + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + else { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ + if (p != fm->dv) { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == fm->top) { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + + if (is_small(psize)) { + insert_small_chunk(fm, p, psize); + check_free_chunk(fm, p); + } + else { + tchunkptr tp = (tchunkptr)p; + insert_large_chunk(fm, tp, psize); + check_free_chunk(fm, p); + if (--fm->release_checks == 0) + release_unused_segments(fm); + } + goto postaction; + } + } +erroraction: + USAGE_ERROR_ACTION(fm, p); +postaction: + POSTACTION(fm); + } + } +} + +void* rak_mspace_calloc(mspace msp, size_t n_elements, size_t elem_size) { + void* mem; + size_t req = 0; + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (n_elements != 0) { + req = n_elements * elem_size; + if (((n_elements | elem_size) & ~(size_t)0xffff) && + (req / n_elements != elem_size)) + req = MAX_SIZE_T; /* force downstream failure on overflow */ + } + mem = internal_malloc(ms, req); + if (mem != 0 && calloc_must_clear(mem2chunk(mem))) + memset(mem, 0, req); + return mem; +} + +void* rak_mspace_realloc(mspace msp, void* oldmem, size_t bytes) { + if (oldmem == 0) + return rak_mspace_malloc(msp, bytes); +#ifdef REALLOC_ZERO_BYTES_FREES + if (bytes == 0) { + rak_mspace_free(msp, oldmem); + return 0; + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { +#if FOOTERS + mchunkptr p = mem2chunk(oldmem); + mstate ms = get_mstate_for(p); +#else /* FOOTERS */ + mstate ms = (mstate)msp; +#endif /* FOOTERS */ + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return internal_realloc(ms, oldmem, bytes); + } +} + +void* rak_mspace_memalign(mspace msp, size_t alignment, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return internal_memalign(ms, alignment, bytes); +} + +void** rak_mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]) { + size_t sz = elem_size; /* serves as 1-element array */ + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return ialloc(ms, n_elements, &sz, 3, chunks); +} + +void** rak_mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return ialloc(ms, n_elements, sizes, 0, chunks); +} + +int rak_mspace_trim(mspace msp, size_t pad) { + int result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + if (!PREACTION(ms)) { + result = sys_trim(ms, pad); + POSTACTION(ms); + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +void rak_mspace_malloc_stats(mspace msp) { + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + internal_malloc_stats(ms); + } + else { + USAGE_ERROR_ACTION(ms,ms); + } +} + +size_t rak_mspace_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + result = ms->footprint; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + + +size_t mspace_max_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + result = ms->max_footprint; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + + +#if !NO_MALLINFO +struct mallinfo rak_mspace_mallinfo(mspace msp) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + } + return internal_mallinfo(ms); +} +#endif /* NO_MALLINFO */ + +size_t rak_mspace_usable_size(void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +} + +int rak_mspace_mallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +#endif /* MSPACES */ + + +/* -------------------- Alternative MORECORE functions ------------------- */ + +/* +Guidelines for creating a custom version of MORECORE: + +* For best performance, MORECORE should allocate in multiples of pagesize. +* MORECORE may allocate more memory than requested. (Or even less, +but this will usually result in a malloc failure.) +* MORECORE must not allocate memory when given argument zero, but +instead return one past the end address of memory from previous +nonzero call. +* For best performance, consecutive calls to MORECORE with positive +arguments should return increasing addresses, indicating that +space has been contiguously extended. +* Even though consecutive calls to MORECORE need not return contiguous +addresses, it must be OK for malloc'ed chunks to span multiple +regions in those cases where they do happen to be contiguous. +* MORECORE need not handle negative arguments -- it may instead +just return MFAIL when given negative arguments. +Negative arguments are always multiples of pagesize. MORECORE +must not misinterpret negative args as large positive unsigned +args. You can suppress all such calls from even occurring by defining +MORECORE_CANNOT_TRIM, + +As an example alternative MORECORE, here is a custom allocator +kindly contributed for pre-OSX macOS. It uses virtually but not +necessarily physically contiguous non-paged memory (locked in, +present and won't get swapped out). You can use it by uncommenting +this section, adding some #includes, and setting up the appropriate +defines above: + +#define MORECORE osMoreCore + +There is also a shutdown routine that should somehow be called for +cleanup upon program exit. + +#define MAX_POOL_ENTRIES 100 +#define MINIMUM_MORECORE_SIZE (64 * 1024U) +static int next_os_pool; +void *our_os_pools[MAX_POOL_ENTRIES]; + +void *osMoreCore(int size) +{ +void *ptr = 0; +static void *sbrk_top = 0; + +if (size > 0) +{ +if (size < MINIMUM_MORECORE_SIZE) +size = MINIMUM_MORECORE_SIZE; +if (CurrentExecutionLevel() == kTaskLevel) +ptr = PoolAllocateResident(size + RM_PAGE_SIZE, 0); +if (ptr == 0) +{ +return (void *) MFAIL; +} +// save ptrs so they can be freed during cleanup +our_os_pools[next_os_pool] = ptr; +next_os_pool++; +ptr = (void *) ((((size_t) ptr) + RM_PAGE_MASK) & ~RM_PAGE_MASK); +sbrk_top = (char *) ptr + size; +return ptr; +} +else if (size < 0) +{ +// we don't currently support shrink behavior +return (void *) MFAIL; +} +else +{ +return sbrk_top; +} +} + +// cleanup any allocated memory pools +// called as last thing before shutting down driver + +void osCleanupMem(void) +{ +void **ptr; + +for (ptr = our_os_pools; ptr < &our_os_pools[MAX_POOL_ENTRIES]; ptr++) +if (*ptr) +{ +PoolDeallocate(*ptr); +*ptr = 0; +} +} + +*/ + + +/* ----------------------------------------------------------------------- +History: +V2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee) +* Use zeros instead of prev foot for is_mmapped +* Add rak_mspace_track_large_chunks; thanks to Jean Brouwers +* Fix set_inuse in internal_realloc; thanks to Jean Brouwers +* Fix insufficient sys_alloc padding when using 16byte alignment +* Fix bad error check in rak_mspace_footprint +* Adaptations for ptmalloc; thanks to Wolfram Gloger. +* Reentrant spin locks; thanks to Earl Chew and others +* Win32 improvements; thanks to Niall Douglas and Earl Chew +* Add NO_SEGMENT_TRAVERSAL and MAX_RELEASE_CHECK_RATE options +* Extension hook in malloc_state +* Various small adjustments to reduce warnings on some compilers +* Various configuration extensions/changes for more platforms. Thanks +to all who contributed these. + +V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee) +* Add max_footprint functions +* Ensure all appropriate literals are size_t +* Fix conditional compilation problem for some #define settings +* Avoid concatenating segments with the one provided +in rak_create_mspace_with_base +* Rename some variables to avoid compiler shadowing warnings +* Use explicit lock initialization. +* Better handling of sbrk interference. +* Simplify and fix segment insertion, trimming and mspace_destroy +* Reinstate REALLOC_ZERO_BYTES_FREES option from 2.7.x +* Thanks especially to Dennis Flanagan for help on these. + +V2.8.2 Sun Jun 12 16:01:10 2005 Doug Lea (dl at gee) +* Fix memalign brace error. + +V2.8.1 Wed Jun 8 16:11:46 2005 Doug Lea (dl at gee) +* Fix improper #endif nesting in C++ +* Add explicit casts needed for C++ + +V2.8.0 Mon May 30 14:09:02 2005 Doug Lea (dl at gee) +* Use trees for large bins +* Support mspaces +* Use segments to unify sbrk-based and mmap-based system allocation, +removing need for emulation on most platforms without sbrk. +* Default safety checks +* Optional footer checks. Thanks to William Robertson for the idea. +* Internal code refactoring +* Incorporate suggestions and platform-specific changes. +Thanks to Dennis Flanagan, Colin Plumb, Niall Douglas, +Aaron Bachmann, Emery Berger, and others. +* Speed up non-fastbin processing enough to remove fastbins. +* Remove useless cfree() to avoid conflicts with other apps. +* Remove internal memcpy, memset. Compilers handle builtins better. +* Remove some options that no one ever used and rename others. + +V2.7.2 Sat Aug 17 09:07:30 2002 Doug Lea (dl at gee) +* Fix malloc_state bitmap array misdeclaration + +V2.7.1 Thu Jul 25 10:58:03 2002 Doug Lea (dl at gee) +* Allow tuning of FIRST_SORTED_BIN_SIZE +* Use PTR_UINT as type for all ptr->int casts. Thanks to John Belmonte. +* Better detection and support for non-contiguousness of MORECORE. +Thanks to Andreas Mueller, Conal Walsh, and Wolfram Gloger +* Bypass most of malloc if no frees. Thanks To Emery Berger. +* Fix freeing of old top non-contiguous chunk im sysmalloc. +* Raised default trim and map thresholds to 256K. +* Fix mmap-related #defines. Thanks to Lubos Lunak. +* Fix copy macros; added LACKS_FCNTL_H. Thanks to Neal Walfield. +* Branch-free bin calculation +* Default trim and mmap thresholds now 256K. + +V2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee) +* Introduce independent_comalloc and independent_calloc. +Thanks to Michael Pachos for motivation and help. +* Make optional .h file available +* Allow > 2GB requests on 32bit systems. +* new DL_PLATFORM_WIN32 sbrk, mmap, munmap, lock code from . +Thanks also to Andreas Mueller , +and Anonymous. +* Allow override of MALLOC_ALIGNMENT (Thanks to Ruud Waij for +helping test this.) +* memalign: check alignment arg +* realloc: don't try to shift chunks backwards, since this +leads to more fragmentation in some programs and doesn't +seem to help in any others. +* Collect all cases in malloc requiring system memory into sysmalloc +* Use mmap as backup to sbrk +* Place all internal state in malloc_state +* Introduce fastbins (although similar to 2.5.1) +* Many minor tunings and cosmetic improvements +* Introduce USE_PUBLIC_MALLOC_WRAPPERS, USE_MALLOC_LOCK +* Introduce MALLOC_FAILURE_ACTION, MORECORE_CONTIGUOUS +Thanks to Tony E. Bennett and others. +* Include errno.h to support default failure action. + +V2.6.6 Sun Dec 5 07:42:19 1999 Doug Lea (dl at gee) +* return null for negative arguments +* Added Several DL_PLATFORM_WIN32 cleanups from Martin C. Fong +* Add 'LACKS_SYS_PARAM_H' for those systems without 'sys/param.h' +(e.g. DL_PLATFORM_WIN32 platforms) +* Cleanup header file inclusion for DL_PLATFORM_WIN32 platforms +* Cleanup code to avoid Microsoft Visual C++ compiler complaints +* Add 'USE_DL_PREFIX' to quickly allow co-existence with existing +memory allocation routines +* Set 'malloc_getpagesize' for DL_PLATFORM_WIN32 platforms (needs more work) +* Use 'assert' rather than 'ASSERT' in DL_PLATFORM_WIN32 code to conform to +usage of 'assert' in non-DL_PLATFORM_WIN32 code +* Improve DL_PLATFORM_WIN32 'sbrk()' emulation's 'findRegion()' routine to +avoid infinite loop +* Always call 'fREe()' rather than 'free()' + +V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee) +* Fixed ordering problem with boundary-stamping + +V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee) +* Added pvalloc, as recommended by H.J. Liu +* Added 64bit pointer support mainly from Wolfram Gloger +* Added anonymously donated DL_PLATFORM_WIN32 sbrk emulation +* Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen +* malloc_extend_top: fix mask error that caused wastage after +foreign sbrks +* Add linux mremap support code from HJ Liu + +V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee) +* Integrated most documentation with the code. +* Add support for mmap, with help from +Wolfram Gloger (Gloger@lrz.uni-muenchen.de). +* Use last_remainder in more cases. +* Pack bins using idea from colin@nyx10.cs.du.edu +* Use ordered bins instead of best-fit threshhold +* Eliminate block-local decls to simplify tracing and debugging. +* Support another case of realloc via move into top +* Fix error occuring when initial sbrk_base not word-aligned. +* Rely on page size for units instead of SBRK_UNIT to +avoid surprises about sbrk alignment conventions. +* Add mallinfo, mallopt. Thanks to Raymond Nijssen +(raymond@es.ele.tue.nl) for the suggestion. +* Add `pad' argument to malloc_trim and top_pad mallopt parameter. +* More precautions for cases where other routines call sbrk, +courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de). +* Added macros etc., allowing use in linux libc from +H.J. Lu (hjl@gnu.ai.mit.edu) +* Inverted this history list + +V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee) +* Re-tuned and fixed to behave more nicely with V2.6.0 changes. +* Removed all preallocation code since under current scheme +the work required to undo bad preallocations exceeds +the work saved in good cases for most test programs. +* No longer use return list or unconsolidated bins since +no scheme using them consistently outperforms those that don't +given above changes. +* Use best fit for very large chunks to prevent some worst-cases. +* Added some support for debugging + +V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee) +* Removed footers when chunks are in use. Thanks to +Paul Wilson (wilson@cs.texas.edu) for the suggestion. + +V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee) +* Added malloc_trim, with help from Wolfram Gloger +(wmglo@Dent.MED.Uni-Muenchen.DE). + +V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g) + +V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g) +* realloc: try to expand in both directions +* malloc: swap order of clean-bin strategy; +* realloc: only conditionally expand backwards +* Try not to scavenge used bins +* Use bin counts as a guide to preallocation +* Occasionally bin return list chunks in first scan +* Add a few optimizations from colin@nyx10.cs.du.edu + +V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g) +* faster bin computation & slightly different binning +* merged all consolidations to one part of malloc proper +(eliminating old malloc_find_space & malloc_clean_bin) +* Scan 2 returns chunks (not just 1) +* Propagate failure in realloc if malloc returns 0 +* Add stuff to allow compilation on non-ANSI compilers +from kpv@research.att.com + +V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu) +* removed potential for odd address access in prev_chunk +* removed dependency on getpagesize.h +* misc cosmetics and a bit more internal documentation +* anticosmetics: mangled names in macros to evade debugger strangeness +* tested on sparc, hp-700, dec-mips, rs6000 +with gcc & native cc (hp, dec only) allowing +Detlefs & Zorn comparison study (in SIGPLAN Notices.) + +Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu) +* Based loosely on libg++-1.2X malloc. (It retains some of the overall +structure of old version, but most details differ.) + +*/ + +#endif // _RAKNET_SUPPORT_DL_MALLOC diff --git a/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc.h b/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc.h new file mode 100755 index 0000000..9180496 --- /dev/null +++ b/project/lib_projects/raknet/jni/RaknetSources/rdlmalloc.h @@ -0,0 +1,2261 @@ +#ifdef _RAKNET_SUPPORT_DL_MALLOC + +/* +Default header file for malloc-2.8.x, written by Doug Lea +and released to the public domain, as explained at +http://creativecommons.org/licenses/publicdomain. + +last update: Wed May 27 14:25:17 2009 Doug Lea (dl at gee) + +This header is for ANSI C/C++ only. You can set any of +the following #defines before including: + +* If USE_DL_PREFIX is defined, it is assumed that malloc.c +was also compiled with this option, so all routines +have names starting with "dl". + +* If HAVE_USR_INCLUDE_MALLOC_H is defined, it is assumed that this +file will be #included AFTER . This is needed only if +your system defines a struct mallinfo that is incompatible with the +standard one declared here. Otherwise, you can include this file +INSTEAD of your system system . At least on ANSI, all +declarations should be compatible with system versions + +* If MSPACES is defined, declarations for mspace versions are included. +*/ + +#ifndef MALLOC_280_H +#define MALLOC_280_H + +#include "rdlmalloc-options.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include /* for size_t */ + +#ifndef ONLY_MSPACES +#define ONLY_MSPACES 0 /* define to a value */ +#endif /* ONLY_MSPACES */ +#ifndef NO_MALLINFO +#define NO_MALLINFO 0 +#endif /* NO_MALLINFO */ + + +#if !ONLY_MSPACES + +#ifndef USE_DL_PREFIX +#define rdlcalloc calloc +#define rdlfree free +#define rdlmalloc malloc +#define rdlmemalign memalign +#define rdlrealloc realloc +#define rdlvalloc valloc +#define rdlpvalloc pvalloc +#define rdlmallinfo mallinfo +#define rdlmallopt mallopt +#define rdlmalloc_trim malloc_trim +#define rdlmalloc_stats malloc_stats +#define rdlmalloc_usable_size malloc_usable_size +#define rdlmalloc_footprint malloc_footprint +#define rdlindependent_calloc independent_calloc +#define rdlindependent_comalloc independent_comalloc +#endif /* USE_DL_PREFIX */ +#if !NO_MALLINFO +#ifndef HAVE_USR_INCLUDE_MALLOC_H +#ifndef _MALLOC_H +#ifndef MALLINFO_FIELD_TYPE +#define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ +#ifndef STRUCT_MALLINFO_DECLARED +#define STRUCT_MALLINFO_DECLARED 1 + struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ + }; +#endif /* STRUCT_MALLINFO_DECLARED */ +#endif /* _MALLOC_H */ +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +#endif /* !NO_MALLINFO */ + + /* + malloc(size_t n) + Returns a pointer to a newly allocated chunk of at least n bytes, or + null if no space is available, in which case errno is set to ENOMEM + on ANSI C systems. + + If n is zero, malloc returns a minimum-sized chunk. (The minimum + size is 16 bytes on most 32bit systems, and 32 bytes on 64bit + systems.) Note that size_t is an unsigned type, so calls with + arguments that would be negative if signed are interpreted as + requests for huge amounts of space, which will often fail. The + maximum supported value of n differs across systems, but is in all + cases less than the maximum representable value of a size_t. + */ + void* rdlmalloc(size_t); + + /* + free(void* p) + Releases the chunk of memory pointed to by p, that had been previously + allocated using malloc or a related routine such as realloc. + It has no effect if p is null. If p was not malloced or already + freed, free(p) will by default cuase the current program to abort. + */ + void rdlfree(void*); + + /* + calloc(size_t n_elements, size_t element_size); + Returns a pointer to n_elements * element_size bytes, with all locations + set to zero. + */ + void* rdlcalloc(size_t, size_t); + + /* + realloc(void* p, size_t n) + Returns a pointer to a chunk of size n that contains the same data + as does chunk p up to the minimum of (n, p's size) bytes, or null + if no space is available. + + The returned pointer may or may not be the same as p. The algorithm + prefers extending p in most cases when possible, otherwise it + employs the equivalent of a malloc-copy-free sequence. + + If p is null, realloc is equivalent to malloc. + + If space is not available, realloc returns null, errno is set (if on + ANSI) and p is NOT freed. + + if n is for fewer bytes than already held by p, the newly unused + space is lopped off and freed if possible. realloc with a size + argument of zero (re)allocates a minimum-sized chunk. + + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is not supported. + */ + + void* rdlrealloc(void*, size_t); + + /* + memalign(size_t alignment, size_t n); + Returns a pointer to a newly allocated chunk of n bytes, aligned + in accord with the alignment argument. + + The alignment argument should be a power of two. If the argument is + not a power of two, the nearest greater power is used. + 8-byte alignment is guaranteed by normal malloc calls, so don't + bother calling memalign with an argument of 8 or less. + + Overreliance on memalign is a sure way to fragment space. + */ + void* rdlmemalign(size_t, size_t); + + /* + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system. If the pagesize is unknown, 4096 is used. + */ + void* rdlvalloc(size_t); + + /* + mallopt(int parameter_number, int parameter_value) + Sets tunable parameters The format is to provide a + (parameter-number, parameter-value) pair. mallopt then sets the + corresponding parameter to the argument value if it can (i.e., so + long as the value is meaningful), and returns 1 if successful else + 0. SVID/XPG/ANSI defines four standard param numbers for mallopt, + normally defined in malloc.h. None of these are use in this malloc, + so setting them has no effect. But this malloc also supports other + options in mallopt: + + Symbol param # default allowed param values + M_TRIM_THRESHOLD -1 2*1024*1024 any (-1U disables trimming) + M_GRANULARITY -2 page size any power of 2 >= page size + M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support) + */ + int rdlmallopt(int, int); + +#define M_TRIM_THRESHOLD (-1) +#define M_GRANULARITY (-2) +#define M_MMAP_THRESHOLD (-3) + + + /* + malloc_footprint(); + Returns the number of bytes obtained from the system. The total + number of bytes allocated by malloc, realloc etc., is less than this + value. Unlike mallinfo, this function returns only a precomputed + result, so can be called frequently to monitor memory consumption. + Even if locks are otherwise defined, this function does not use them, + so results might not be up to date. + */ + size_t rdlmalloc_footprint(); + +#if !NO_MALLINFO + /* + mallinfo() + Returns (by copy) a struct containing various summary statistics: + + arena: current total non-mmapped bytes allocated from system + ordblks: the number of free chunks + smblks: always zero. + hblks: current number of mmapped regions + hblkhd: total bytes held in mmapped regions + usmblks: the maximum total allocated space. This will be greater + than current total if trimming has occurred. + fsmblks: always zero + uordblks: current total allocated space (normal or mmapped) + fordblks: total free space + keepcost: the maximum number of bytes that could ideally be released + back to system via malloc_trim. ("ideally" means that + it ignores page restrictions etc.) + + Because these fields are ints, but internal bookkeeping may + be kept as longs, the reported values may wrap around zero and + thus be inaccurate. + */ + + struct mallinfo rdlmallinfo(void); +#endif /* NO_MALLINFO */ + + /* + independent_calloc(size_t n_elements, size_t element_size, void* chunks[]); + + independent_calloc is similar to calloc, but instead of returning a + single cleared space, it returns an array of pointers to n_elements + independent elements that can hold contents of size elem_size, each + of which starts out cleared, and can be independently freed, + realloc'ed etc. The elements are guaranteed to be adjacently + allocated (this is not guaranteed to occur with multiple callocs or + mallocs), which may also improve cache locality in some + applications. + + The "chunks" argument is optional (i.e., may be null, which is + probably the most typical usage). If it is null, the returned array + is itself dynamically allocated and should also be freed when it is + no longer needed. Otherwise, the chunks array must be of at least + n_elements in length. It is filled in with the pointers to the + chunks. + + In either case, independent_calloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and "chunks" + is null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use regular calloc and assign pointers into this + space to represent elements. (In this case though, you cannot + independently free elements.) + + independent_calloc simplifies and speeds up implementations of many + kinds of pools. It may also be useful when constructing large data + structures that initially have a fixed number of fixed-sized nodes, + but the number is not known at compile time, and some of the nodes + may later need to be freed. For example: + + struct Node { int item; struct Node* next; }; + + struct Node* build_list() { + struct Node** pool; + int n = read_number_of_nodes_needed(); + if (n <= 0) return 0; + pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0); + if (pool == 0) die(); + // organize into a linked list... + struct Node* first = pool[0]; + for (i = 0; i < n-1; ++i) + pool[i]->next = pool[i+1]; + free(pool); // Can now free the array (or not, if it is needed later) + return first; + } + */ + void** rdlindependent_calloc(size_t, size_t, void**); + + /* + independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]); + + independent_comalloc allocates, all at once, a set of n_elements + chunks with sizes indicated in the "sizes" array. It returns + an array of pointers to these elements, each of which can be + independently freed, realloc'ed etc. The elements are guaranteed to + be adjacently allocated (this is not guaranteed to occur with + multiple callocs or mallocs), which may also improve cache locality + in some applications. + + The "chunks" argument is optional (i.e., may be null). If it is null + the returned array is itself dynamically allocated and should also + be freed when it is no longer needed. Otherwise, the chunks array + must be of at least n_elements in length. It is filled in with the + pointers to the chunks. + + In either case, independent_comalloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and chunks is + null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use a single regular malloc, and assign pointers at + particular offsets in the aggregate space. (In this case though, you + cannot independently free elements.) + + independent_comallac differs from independent_calloc in that each + element may have a different size, and also that it does not + automatically clear elements. + + independent_comalloc can be used to speed up allocation in cases + where several structs or objects must always be allocated at the + same time. For example: + + struct Head { ... } + struct Foot { ... } + + void send_message(char* msg) { + int msglen = strlen(msg); + size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) }; + void* chunks[3]; + if (independent_comalloc(3, sizes, chunks) == 0) + die(); + struct Head* head = (struct Head*)(chunks[0]); + char* body = (char*)(chunks[1]); + struct Foot* foot = (struct Foot*)(chunks[2]); + // ... + } + + In general though, independent_comalloc is worth using only for + larger values of n_elements. For small values, you probably won't + detect enough difference from series of malloc calls to bother. + + Overuse of independent_comalloc can increase overall memory usage, + since it cannot reuse existing noncontiguous small chunks that + might be available for some of the elements. + */ + void** rdlindependent_comalloc(size_t, size_t*, void**); + + + /* + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + */ + void* rdlpvalloc(size_t); + + /* + malloc_trim(size_t pad); + + If possible, gives memory back to the system (via negative arguments + to sbrk) if there is unused memory at the `high' end of the malloc + pool or in unused MMAP segments. You can call this after freeing + large blocks of memory to potentially reduce the system-level memory + requirements of a program. However, it cannot guarantee to reduce + memory. Under some allocation patterns, some large free blocks of + memory will be locked between two used chunks, so they cannot be + given back to the system. + + The `pad' argument to malloc_trim represents the amount of free + trailing space to leave untrimmed. If this argument is zero, only + the minimum amount of memory to maintain internal data structures + will be left. Non-zero arguments can be supplied to maintain enough + trailing space to service future expected allocations without having + to re-obtain memory from the system. + + Malloc_trim returns 1 if it actually released any memory, else 0. + */ + int rdlmalloc_trim(size_t); + + /* + malloc_stats(); + Prints on stderr the amount of space obtained from the system (both + via sbrk and mmap), the maximum amount (which may be more than + current if malloc_trim and/or munmap got called), and the current + number of bytes allocated via malloc (or realloc, etc) but not yet + freed. Note that this is the number of bytes allocated, not the + number requested. It will be larger than the number requested + because of alignment and bookkeeping overhead. Because it includes + alignment wastage as being in use, this figure may be greater than + zero even when no user-level chunks are allocated. + + The reported current and maximum system memory can be inaccurate if + a program makes other calls to system memory allocation functions + (normally sbrk) outside of malloc. + + malloc_stats prints only the most commonly interesting statistics. + More information can be obtained by calling mallinfo. + */ + void rdlmalloc_stats(); + +#endif /* !ONLY_MSPACES */ + + /* + malloc_usable_size(void* p); + + Returns the number of bytes you can actually use in + an allocated chunk, which may be more than you requested (although + often not) due to alignment and minimum size constraints. + You can use this many bytes without worrying about + overwriting other allocated objects. This is not a particularly great + programming practice. malloc_usable_size can be more useful in + debugging and assertions, for example: + + p = malloc(n); + assert(malloc_usable_size(p) >= 256); + */ + size_t rdlmalloc_usable_size(void*); + + +#if MSPACES + + /* + mspace is an opaque type representing an independent + region of space that supports rak_mspace_malloc, etc. + */ + typedef void* mspace; + + /* + rak_create_mspace creates and returns a new independent space with the + given initial capacity, or, if 0, the default granularity size. It + returns null if there is no system memory available to create the + space. If argument locked is non-zero, the space uses a separate + lock to control access. The capacity of the space will grow + dynamically as needed to service rak_mspace_malloc requests. You can + control the sizes of incremental increases of this space by + compiling with a different DEFAULT_GRANULARITY or dynamically + setting with mallopt(M_GRANULARITY, value). + */ + mspace rak_create_mspace(size_t capacity, int locked); + + /* + rak_destroy_mspace destroys the given space, and attempts to return all + of its memory back to the system, returning the total number of + bytes freed. After destruction, the results of access to all memory + used by the space become undefined. + */ + size_t rak_destroy_mspace(mspace msp); + + /* + rak_create_mspace_with_base uses the memory supplied as the initial base + of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this + space is used for bookkeeping, so the capacity must be at least this + large. (Otherwise 0 is returned.) When this initial space is + exhausted, additional memory will be obtained from the system. + Destroying this space will deallocate all additionally allocated + space (if possible) but not the initial base. + */ + mspace rak_create_mspace_with_base(void* base, size_t capacity, int locked); + + /* + rak_mspace_track_large_chunks controls whether requests for large chunks + are allocated in their own untracked mmapped regions, separate from + others in this mspace. By default large chunks are not tracked, + which reduces fragmentation. However, such chunks are not + necessarily released to the system upon rak_destroy_mspace. Enabling + tracking by setting to true may increase fragmentation, but avoids + leakage when relying on rak_destroy_mspace to release all memory + allocated using this space. The function returns the previous + setting. + */ + int rak_mspace_track_large_chunks(mspace msp, int enable); + + /* + rak_mspace_malloc behaves as malloc, but operates within + the given space. + */ + void* rak_mspace_malloc(mspace msp, size_t bytes); + + /* + rak_mspace_free behaves as free, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_free is not actually needed. + free may be called instead of rak_mspace_free because freed chunks from + any space are handled by their originating spaces. + */ + void rak_mspace_free(mspace msp, void* mem); + + /* + rak_mspace_realloc behaves as realloc, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_realloc is not actually + needed. realloc may be called instead of rak_mspace_realloc because + realloced chunks from any space are handled by their originating + spaces. + */ + void* rak_mspace_realloc(mspace msp, void* mem, size_t newsize); + + /* + rak_mspace_calloc behaves as calloc, but operates within + the given space. + */ + void* rak_mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + + /* + rak_mspace_memalign behaves as memalign, but operates within + the given space. + */ + void* rak_mspace_memalign(mspace msp, size_t alignment, size_t bytes); + + /* + rak_mspace_independent_calloc behaves as independent_calloc, but + operates within the given space. + */ + void** rak_mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]); + + /* + rak_mspace_independent_comalloc behaves as independent_comalloc, but + operates within the given space. + */ + void** rak_mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]); + + /* + rak_mspace_footprint() returns the number of bytes obtained from the + system for this space. + */ + size_t rak_mspace_footprint(mspace msp); + + +#if !NO_MALLINFO + /* + rak_mspace_mallinfo behaves as mallinfo, but reports properties of + the given space. + */ + struct mallinfo rak_mspace_mallinfo(mspace msp); +#endif /* NO_MALLINFO */ + + /* + malloc_usable_size(void* p) behaves the same as malloc_usable_size; + */ + size_t rak_mspace_usable_size(void* mem); + + /* + rak_mspace_malloc_stats behaves as malloc_stats, but reports + properties of the given space. + */ + void rak_mspace_malloc_stats(mspace msp); + + /* + rak_mspace_trim behaves as malloc_trim, but + operates within the given space. + */ + int rak_mspace_trim(mspace msp, size_t pad); + + /* + An alias for mallopt. + */ + int rak_mspace_mallopt(int, int); + +#endif /* MSPACES */ + +#ifdef __cplusplus +}; /* end of extern "C" */ +#endif + +/* +This is a version (aka rdlmalloc) of malloc/free/realloc written by +Doug Lea and released to the public domain, as explained at +http://creativecommons.org/licenses/publicdomain. Send questions, +comments, complaints, performance data, etc to dl@cs.oswego.edu + +* Version 2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee) + +Note: There may be an updated version of this malloc obtainable at +ftp://gee.cs.oswego.edu/pub/misc/malloc.c +Check before installing! + +* Quickstart + +This library is all in one file to simplify the most common usage: +ftp it, compile it (-O3), and link it into another program. All of +the compile-time options default to reasonable values for use on +most platforms. You might later want to step through various +compile-time and dynamic tuning options. + +For convenience, an include file for code using this malloc is at: +ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.4.h +You don't really need this .h file unless you call functions not +defined in your system include files. The .h file contains only the +excerpts from this file needed for using this malloc on ANSI C/C++ +systems, so long as you haven't changed compile-time options about +naming and tuning parameters. If you do, then you can create your +own malloc.h that does include all settings by cutting at the point +indicated below. Note that you may already by default be using a C +library containing a malloc that is based on some version of this +malloc (for example in linux). You might still want to use the one +in this file to customize settings or to avoid overheads associated +with library versions. + +* Vital statistics: + +Supported pointer/size_t representation: 4 or 8 bytes +size_t MUST be an unsigned type of the same width as +pointers. (If you are using an ancient system that declares +size_t as a signed type, or need it to be a different width +than pointers, you can use a previous release of this malloc +(e.g. 2.7.2) supporting these.) + +Alignment: 8 bytes (default) +This suffices for nearly all current machines and C compilers. +However, you can define MALLOC_ALIGNMENT to be wider than this +if necessary (up to 128bytes), at the expense of using more space. + +Minimum overhead per allocated chunk: 4 or 8 bytes (if 4byte sizes) +8 or 16 bytes (if 8byte sizes) +Each malloced chunk has a hidden word of overhead holding size +and status information, and additional cross-check word +if FOOTERS is defined. + +Minimum allocated size: 4-byte ptrs: 16 bytes (including overhead) +8-byte ptrs: 32 bytes (including overhead) + +Even a request for zero bytes (i.e., malloc(0)) returns a +pointer to something of the minimum allocatable size. +The maximum overhead wastage (i.e., number of extra bytes +allocated than were requested in malloc) is less than or equal +to the minimum size, except for requests >= mmap_threshold that +are serviced via mmap(), where the worst case wastage is about +32 bytes plus the remainder from a system page (the minimal +mmap unit); typically 4096 or 8192 bytes. + +Security: static-safe; optionally more or less +The "security" of malloc refers to the ability of malicious +code to accentuate the effects of errors (for example, freeing +space that is not currently malloc'ed or overwriting past the +ends of chunks) in code that calls malloc. This malloc +guarantees not to modify any memory locations below the base of +heap, i.e., static variables, even in the presence of usage +errors. The routines additionally detect most improper frees +and reallocs. All this holds as long as the static bookkeeping +for malloc itself is not corrupted by some other means. This +is only one aspect of security -- these checks do not, and +cannot, detect all possible programming errors. + +If FOOTERS is defined nonzero, then each allocated chunk +carries an additional check word to verify that it was malloced +from its space. These check words are the same within each +execution of a program using malloc, but differ across +executions, so externally crafted fake chunks cannot be +freed. This improves security by rejecting frees/reallocs that +could corrupt heap memory, in addition to the checks preventing +writes to statics that are always on. This may further improve +security at the expense of time and space overhead. (Note that +FOOTERS may also be worth using with MSPACES.) + +By default detected errors cause the program to abort (calling +"abort()"). You can override this to instead proceed past +errors by defining PROCEED_ON_ERROR. In this case, a bad free +has no effect, and a malloc that encounters a bad address +caused by user overwrites will ignore the bad address by +dropping pointers and indices to all known memory. This may +be appropriate for programs that should continue if at all +possible in the face of programming errors, although they may +run out of memory because dropped memory is never reclaimed. + +If you don't like either of these options, you can define +CORRUPTION_ERROR_ACTION and USAGE_ERROR_ACTION to do anything +else. And if if you are sure that your program using malloc has +no errors or vulnerabilities, you can define INSECURE to 1, +which might (or might not) provide a small performance improvement. + +Thread-safety: NOT thread-safe unless USE_LOCKS defined +When USE_LOCKS is defined, each public call to malloc, free, +etc is surrounded with either a pthread mutex or a win32 +spinlock (depending on DL_PLATFORM_WIN32). This is not especially fast, and +can be a major bottleneck. It is designed only to provide +minimal protection in concurrent environments, and to provide a +basis for extensions. If you are using malloc in a concurrent +program, consider instead using nedmalloc +(http://www.nedprod.com/programs/portable/nedmalloc/) or +ptmalloc (See http://www.malloc.de), which are derived +from versions of this malloc. + +System requirements: Any combination of MORECORE and/or MMAP/MUNMAP +This malloc can use unix sbrk or any emulation (invoked using +the CALL_MORECORE macro) and/or mmap/munmap or any emulation +(invoked using CALL_MMAP/CALL_MUNMAP) to get and release system +memory. On most unix systems, it tends to work best if both +MORECORE and MMAP are enabled. On Win32, it uses emulations +based on VirtualAlloc. It also uses common C library functions +like memset. + +Compliance: I believe it is compliant with the Single Unix Specification +(See http://www.unix.org). Also SVID/XPG, ANSI C, and probably +others as well. + +* Overview of algorithms + +This is not the fastest, most space-conserving, most portable, or +most tunable malloc ever written. However it is among the fastest +while also being among the most space-conserving, portable and +tunable. Consistent balance across these factors results in a good +general-purpose allocator for malloc-intensive programs. + +In most ways, this malloc is a best-fit allocator. Generally, it +chooses the best-fitting existing chunk for a request, with ties +broken in approximately least-recently-used order. (This strategy +normally maintains low fragmentation.) However, for requests less +than 256bytes, it deviates from best-fit when there is not an +exactly fitting available chunk by preferring to use space adjacent +to that used for the previous small request, as well as by breaking +ties in approximately most-recently-used order. (These enhance +locality of series of small allocations.) And for very large requests +(>= 256Kb by default), it relies on system memory mapping +facilities, if supported. (This helps avoid carrying around and +possibly fragmenting memory used only for large chunks.) + +All operations (except malloc_stats and mallinfo) have execution +times that are bounded by a constant factor of the number of bits in +a size_t, not counting any clearing in calloc or copying in realloc, +or actions surrounding MORECORE and MMAP that have times +proportional to the number of non-contiguous regions returned by +system allocation routines, which is often just 1. In real-time +applications, you can optionally suppress segment traversals using +NO_SEGMENT_TRAVERSAL, which assures bounded execution even when +system allocators return non-contiguous spaces, at the typical +expense of carrying around more memory and increased fragmentation. + +The implementation is not very modular and seriously overuses +macros. Perhaps someday all C compilers will do as good a job +inlining modular code as can now be done by brute-force expansion, +but now, enough of them seem not to. + +Some compilers issue a lot of warnings about code that is +dead/unreachable only on some platforms, and also about intentional +uses of negation on unsigned types. All known cases of each can be +ignored. + +For a longer but out of date high-level description, see +http://gee.cs.oswego.edu/dl/html/malloc.html + +* MSPACES +If MSPACES is defined, then in addition to malloc, free, etc., +this file also defines rak_mspace_malloc, rak_mspace_free, etc. These +are versions of malloc routines that take an "mspace" argument +obtained using rak_create_mspace, to control all internal bookkeeping. +If ONLY_MSPACES is defined, only these versions are compiled. +So if you would like to use this allocator for only some allocations, +and your system malloc for others, you can compile with +ONLY_MSPACES and then do something like... +static mspace mymspace = rak_create_mspace(0,0); // for example +#define mymalloc(bytes) rak_mspace_malloc(mymspace, bytes) + +(Note: If you only need one instance of an mspace, you can instead +use "USE_DL_PREFIX" to relabel the global malloc.) + +You can similarly create thread-local allocators by storing +mspaces as thread-locals. For example: +static __thread mspace tlms = 0; +void* tlmalloc(size_t bytes) { +if (tlms == 0) tlms = rak_create_mspace(0, 0); +return rak_mspace_malloc(tlms, bytes); +} +void tlfree(void* mem) { rak_mspace_free(tlms, mem); } + +Unless FOOTERS is defined, each mspace is completely independent. +You cannot allocate from one and free to another (although +conformance is only weakly checked, so usage errors are not always +caught). If FOOTERS is defined, then each chunk carries around a tag +indicating its originating mspace, and frees are directed to their +originating spaces. + +------------------------- Compile-time options --------------------------- + +Be careful in setting #define values for numerical constants of type +size_t. On some systems, literal values are not automatically extended +to size_t precision unless they are explicitly casted. You can also +use the symbolic values MAX_SIZE_T, SIZE_T_ONE, etc below. + +DL_PLATFORM_WIN32 default: defined if _WIN32 defined +Defining DL_PLATFORM_WIN32 sets up defaults for MS environment and compilers. +Otherwise defaults are for unix. Beware that there seem to be some +cases where this malloc might not be a pure drop-in replacement for +Win32 malloc: Random-looking failures from Win32 GDI API's (eg; +SetDIBits()) may be due to bugs in some video driver implementations +when pixel buffers are malloc()ed, and the region spans more than +one VirtualAlloc()ed region. Because rdlmalloc uses a small (64Kb) +default granularity, pixel buffers may straddle virtual allocation +regions more often than when using the Microsoft allocator. You can +avoid this by using VirtualAlloc() and VirtualFree() for all pixel +buffers rather than using malloc(). If this is not possible, +recompile this malloc with a larger DEFAULT_GRANULARITY. + +MALLOC_ALIGNMENT default: (size_t)8 +Controls the minimum alignment for malloc'ed chunks. It must be a +power of two and at least 8, even on machines for which smaller +alignments would suffice. It may be defined as larger than this +though. Note however that code and data structures are optimized for +the case of 8-byte alignment. + +MSPACES default: 0 (false) +If true, compile in support for independent allocation spaces. +This is only supported if HAVE_MMAP is true. + +ONLY_MSPACES default: 0 (false) +If true, only compile in mspace versions, not regular versions. + +USE_LOCKS default: 0 (false) +Causes each call to each public routine to be surrounded with +pthread or DL_PLATFORM_WIN32 mutex lock/unlock. (If set true, this can be +overridden on a per-mspace basis for mspace versions.) If set to a +non-zero value other than 1, locks are used, but their +implementation is left out, so lock functions must be supplied manually, +as described below. + +USE_SPIN_LOCKS default: 1 iff USE_LOCKS and on x86 using gcc or MSC +If true, uses custom spin locks for locking. This is currently +supported only for x86 platforms using gcc or recent MS compilers. +Otherwise, posix locks or win32 critical sections are used. + +FOOTERS default: 0 +If true, provide extra checking and dispatching by placing +information in the footers of allocated chunks. This adds +space and time overhead. + +INSECURE default: 0 +If true, omit checks for usage errors and heap space overwrites. + +USE_DL_PREFIX default: NOT defined +Causes compiler to prefix all public routines with the string 'dl'. +This can be useful when you only want to use this malloc in one part +of a program, using your regular system malloc elsewhere. + +ABORT default: defined as abort() +Defines how to abort on failed checks. On most systems, a failed +check cannot die with an "assert" or even print an informative +message, because the underlying print routines in turn call malloc, +which will fail again. Generally, the best policy is to simply call +abort(). It's not very useful to do more than this because many +errors due to overwriting will show up as address faults (null, odd +addresses etc) rather than malloc-triggered checks, so will also +abort. Also, most compilers know that abort() does not return, so +can better optimize code conditionally calling it. + +PROCEED_ON_ERROR default: defined as 0 (false) +Controls whether detected bad addresses cause them to bypassed +rather than aborting. If set, detected bad arguments to free and +realloc are ignored. And all bookkeeping information is zeroed out +upon a detected overwrite of freed heap space, thus losing the +ability to ever return it from malloc again, but enabling the +application to proceed. If PROCEED_ON_ERROR is defined, the +static variable malloc_corruption_error_count is compiled in +and can be examined to see if errors have occurred. This option +generates slower code than the default abort policy. + +DEBUG default: NOT defined +The DEBUG setting is mainly intended for people trying to modify +this code or diagnose problems when porting to new platforms. +However, it may also be able to better isolate user errors than just +using runtime checks. The assertions in the check routines spell +out in more detail the assumptions and invariants underlying the +algorithms. The checking is fairly extensive, and will slow down +execution noticeably. Calling malloc_stats or mallinfo with DEBUG +set will attempt to check every non-mmapped allocated and free chunk +in the course of computing the summaries. + +ABORT_ON_ASSERT_FAILURE default: defined as 1 (true) +Debugging assertion failures can be nearly impossible if your +version of the assert macro causes malloc to be called, which will +lead to a cascade of further failures, blowing the runtime stack. +ABORT_ON_ASSERT_FAILURE cause assertions failures to call abort(), +which will usually make debugging easier. + +MALLOC_FAILURE_ACTION default: sets errno to ENOMEM, or no-op on win32 +The action to take before "return 0" when malloc fails to be able to +return memory because there is none available. + +HAVE_MORECORE default: 1 (true) unless win32 or ONLY_MSPACES +True if this system supports sbrk or an emulation of it. + +MORECORE default: sbrk +The name of the sbrk-style system routine to call to obtain more +memory. See below for guidance on writing custom MORECORE +functions. The type of the argument to sbrk/MORECORE varies across +systems. It cannot be size_t, because it supports negative +arguments, so it is normally the signed type of the same width as +size_t (sometimes declared as "intptr_t"). It doesn't much matter +though. Internally, we only call it with arguments less than half +the max value of a size_t, which should work across all reasonable +possibilities, although sometimes generating compiler warnings. + +MORECORE_CONTIGUOUS default: 1 (true) if HAVE_MORECORE +If true, take advantage of fact that consecutive calls to MORECORE +with positive arguments always return contiguous increasing +addresses. This is true of unix sbrk. It does not hurt too much to +set it true anyway, since malloc copes with non-contiguities. +Setting it false when definitely non-contiguous saves time +and possibly wasted space it would take to discover this though. + +MORECORE_CANNOT_TRIM default: NOT defined +True if MORECORE cannot release space back to the system when given +negative arguments. This is generally necessary only if you are +using a hand-crafted MORECORE function that cannot handle negative +arguments. + +NO_SEGMENT_TRAVERSAL default: 0 +If non-zero, suppresses traversals of memory segments +returned by either MORECORE or CALL_MMAP. This disables +merging of segments that are contiguous, and selectively +releasing them to the OS if unused, but bounds execution times. + +HAVE_MMAP default: 1 (true) +True if this system supports mmap or an emulation of it. If so, and +HAVE_MORECORE is not true, MMAP is used for all system +allocation. If set and HAVE_MORECORE is true as well, MMAP is +primarily used to directly allocate very large blocks. It is also +used as a backup strategy in cases where MORECORE fails to provide +space from system. Note: A single call to MUNMAP is assumed to be +able to unmap memory that may have be allocated using multiple calls +to MMAP, so long as they are adjacent. + +HAVE_MREMAP default: 1 on linux, else 0 +If true realloc() uses mremap() to re-allocate large blocks and +extend or shrink allocation spaces. + +MMAP_CLEARS default: 1 except on WINCE. +True if mmap clears memory so calloc doesn't need to. This is true +for standard unix mmap using /dev/zero and on DL_PLATFORM_WIN32 except for WINCE. + +USE_BUILTIN_FFS default: 0 (i.e., not used) +Causes malloc to use the builtin ffs() function to compute indices. +Some compilers may recognize and intrinsify ffs to be faster than the +supplied C version. Also, the case of x86 using gcc is special-cased +to an asm instruction, so is already as fast as it can be, and so +this setting has no effect. Similarly for Win32 under recent MS compilers. +(On most x86s, the asm version is only slightly faster than the C version.) + +malloc_getpagesize default: derive from system includes, or 4096. +The system page size. To the extent possible, this malloc manages +memory from the system in page-size units. This may be (and +usually is) a function rather than a constant. This is ignored +if DL_PLATFORM_WIN32, where page size is determined using getSystemInfo during +initialization. + +USE_DEV_RANDOM default: 0 (i.e., not used) +Causes malloc to use /dev/random to initialize secure magic seed for +stamping footers. Otherwise, the current time is used. + +NO_MALLINFO default: 0 +If defined, don't compile "mallinfo". This can be a simple way +of dealing with mismatches between system declarations and +those in this file. + +MALLINFO_FIELD_TYPE default: size_t +The type of the fields in the mallinfo struct. This was originally +defined as "int" in SVID etc, but is more usefully defined as +size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set + +REALLOC_ZERO_BYTES_FREES default: not defined +This should be set if a call to realloc with zero bytes should +be the same as a call to free. Some people think it should. Otherwise, +since this malloc returns a unique pointer for malloc(0), so does +realloc(p, 0). + +LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H +LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H +LACKS_STDLIB_H default: NOT defined unless on DL_PLATFORM_WIN32 +Define these if your system does not have these header files. +You might need to manually insert some of the declarations they provide. + +DEFAULT_GRANULARITY default: page size if MORECORE_CONTIGUOUS, +system_info.dwAllocationGranularity in DL_PLATFORM_WIN32, +otherwise 64K. +Also settable using mallopt(M_GRANULARITY, x) +The unit for allocating and deallocating memory from the system. On +most systems with contiguous MORECORE, there is no reason to +make this more than a page. However, systems with MMAP tend to +either require or encourage larger granularities. You can increase +this value to prevent system allocation functions to be called so +often, especially if they are slow. The value must be at least one +page and must be a power of two. Setting to 0 causes initialization +to either page size or win32 region size. (Note: In previous +versions of malloc, the equivalent of this option was called +"TOP_PAD") + +DEFAULT_TRIM_THRESHOLD default: 2MB +Also settable using mallopt(M_TRIM_THRESHOLD, x) +The maximum amount of unused top-most memory to keep before +releasing via malloc_trim in free(). Automatic trimming is mainly +useful in long-lived programs using contiguous MORECORE. Because +trimming via sbrk can be slow on some systems, and can sometimes be +wasteful (in cases where programs immediately afterward allocate +more large chunks) the value should be high enough so that your +overall system performance would improve by releasing this much +memory. As a rough guide, you might set to a value close to the +average size of a process (program) running on your system. +Releasing this much memory would allow such a process to run in +memory. Generally, it is worth tuning trim thresholds when a +program undergoes phases where several large chunks are allocated +and released in ways that can reuse each other's storage, perhaps +mixed with phases where there are no such chunks at all. The trim +value must be greater than page size to have any useful effect. To +disable trimming completely, you can set to MAX_SIZE_T. Note that the trick +some people use of mallocing a huge space and then freeing it at +program startup, in an attempt to reserve system memory, doesn't +have the intended effect under automatic trimming, since that memory +will immediately be returned to the system. + +DEFAULT_MMAP_THRESHOLD default: 256K +Also settable using mallopt(M_MMAP_THRESHOLD, x) +The request size threshold for using MMAP to directly service a +request. Requests of at least this size that cannot be allocated +using already-existing space will be serviced via mmap. (If enough +normal freed space already exists it is used instead.) Using mmap +segregates relatively large chunks of memory so that they can be +individually obtained and released from the host system. A request +serviced through mmap is never reused by any other request (at least +not directly; the system may just so happen to remap successive +requests to the same locations). Segregating space in this way has +the benefits that: Mmapped space can always be individually released +back to the system, which helps keep the system level memory demands +of a long-lived program low. Also, mapped memory doesn't become +`locked' between other chunks, as can happen with normally allocated +chunks, which means that even trimming via malloc_trim would not +release them. However, it has the disadvantage that the space +cannot be reclaimed, consolidated, and then used to service later +requests, as happens with normal chunks. The advantages of mmap +nearly always outweigh disadvantages for "large" chunks, but the +value of "large" may vary across systems. The default is an +empirically derived value that works well in most systems. You can +disable mmap by setting to MAX_SIZE_T. + +MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP +The number of consolidated frees between checks to release +unused segments when freeing. When using non-contiguous segments, +especially with multiple mspaces, checking only for topmost space +doesn't always suffice to trigger trimming. To compensate for this, +free() will, with a period of MAX_RELEASE_CHECK_RATE (or the +current number of segments, if greater) try to release unused +segments to the OS when freeing chunks that result in +consolidation. The best value for this parameter is a compromise +between slowing down frees with relatively costly checks that +rarely trigger versus holding on to unused memory. To effectively +disable, set to MAX_SIZE_T. This may lead to a very slight speed +improvement at the expense of carrying around more memory. +*/ + +/* Version identifier to allow people to support multiple versions */ +#ifndef DLMALLOC_VERSION +#define DLMALLOC_VERSION 20804 +#endif /* DLMALLOC_VERSION */ + +#include "rdlmalloc-options.h" + +#ifndef WIN32 +#if defined(_XBOX) || defined(X360) +#else +#if defined(_WIN32) +#define DL_PLATFORM_WIN32 1 +#endif /* _WIN32 */ +#ifdef _WIN32_WCE +#define LACKS_FCNTL_H +#define DL_PLATFORM_WIN32 1 +#endif /* _WIN32_WCE */ +#endif +#else +#define DL_PLATFORM_WIN32 1 +#endif /* DL_PLATFORM_WIN32 */ + +#if defined(_XBOX) || defined(X360) +#define HAVE_MMAP 1 +#define HAVE_MORECORE 0 +#define LACKS_UNISTD_H +#define LACKS_SYS_PARAM_H +#define LACKS_SYS_MMAN_H +#define LACKS_STRING_H +#define LACKS_STRINGS_H +#define LACKS_SYS_TYPES_H +#define LACKS_ERRNO_H +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION +#endif +#define MMAP_CLEARS 1 +#endif + +#if defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) +#define LACKS_SYS_PARAM_H +#include "sysutil\sysutil_sysparam.h" +#define LACKS_SYS_MMAN_H +#endif + + +#ifdef DL_PLATFORM_WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#define HAVE_MMAP 1 +#define HAVE_MORECORE 0 +#define LACKS_UNISTD_H +#define LACKS_SYS_PARAM_H +#define LACKS_SYS_MMAN_H +#define LACKS_STRING_H +#define LACKS_STRINGS_H +#define LACKS_SYS_TYPES_H +#define LACKS_ERRNO_H +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION +#endif /* MALLOC_FAILURE_ACTION */ +#ifdef _WIN32_WCE /* WINCE reportedly does not clear */ +#define MMAP_CLEARS 0 +#else +#define MMAP_CLEARS 1 +#endif /* _WIN32_WCE */ +#endif /* DL_PLATFORM_WIN32 */ + +#if defined(DARWIN) || defined(_DARWIN) +/* Mac OSX docs advise not to use sbrk; it seems better to use mmap */ +#ifndef HAVE_MORECORE +#define HAVE_MORECORE 0 +#define HAVE_MMAP 1 +/* OSX allocators provide 16 byte alignment */ +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGNMENT ((size_t)16U) +#endif +#endif /* HAVE_MORECORE */ +#endif /* DARWIN */ + +#ifndef LACKS_SYS_TYPES_H +#include /* For size_t */ +#endif /* LACKS_SYS_TYPES_H */ + +#if (defined(__GNUC__) && ((defined(__i386__) || defined(__x86_64__)))) || (defined(_MSC_VER) && _MSC_VER>=1310) +#define SPIN_LOCKS_AVAILABLE 1 +#else +#define SPIN_LOCKS_AVAILABLE 0 +#endif + +/* The maximum possible size_t value has all bits set */ +#define MAX_SIZE_T (~(size_t)0) + +#ifndef ONLY_MSPACES +#define ONLY_MSPACES 0 /* define to a value */ +#else +#define ONLY_MSPACES 1 +#endif /* ONLY_MSPACES */ +#ifndef MSPACES +#if ONLY_MSPACES +#define MSPACES 1 +#else /* ONLY_MSPACES */ +#define MSPACES 0 +#endif /* ONLY_MSPACES */ +#endif /* MSPACES */ +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGNMENT ((size_t)8U) +#endif /* MALLOC_ALIGNMENT */ +#ifndef FOOTERS +#define FOOTERS 0 +#endif /* FOOTERS */ +#ifndef ABORT +#define ABORT abort() +#endif /* ABORT */ +#ifndef ABORT_ON_ASSERT_FAILURE +#define ABORT_ON_ASSERT_FAILURE 1 +#endif /* ABORT_ON_ASSERT_FAILURE */ +#ifndef PROCEED_ON_ERROR +#define PROCEED_ON_ERROR 0 +#endif /* PROCEED_ON_ERROR */ +#ifndef USE_LOCKS +#define USE_LOCKS 0 +#endif /* USE_LOCKS */ +#ifndef USE_SPIN_LOCKS +#if USE_LOCKS && SPIN_LOCKS_AVAILABLE +#define USE_SPIN_LOCKS 1 +#else +#define USE_SPIN_LOCKS 0 +#endif /* USE_LOCKS && SPIN_LOCKS_AVAILABLE. */ +#endif /* USE_SPIN_LOCKS */ +#ifndef INSECURE +#define INSECURE 0 +#endif /* INSECURE */ +#ifndef HAVE_MMAP +#define HAVE_MMAP 1 +#endif /* HAVE_MMAP */ +#ifndef MMAP_CLEARS +#define MMAP_CLEARS 1 +#endif /* MMAP_CLEARS */ +#ifndef HAVE_MREMAP +#ifdef linux +#define HAVE_MREMAP 1 +#else /* linux */ +#define HAVE_MREMAP 0 +#endif /* linux */ +#endif /* HAVE_MREMAP */ +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION errno = ENOMEM; +#endif /* MALLOC_FAILURE_ACTION */ +#ifndef HAVE_MORECORE +#if ONLY_MSPACES +#define HAVE_MORECORE 0 +#else /* ONLY_MSPACES */ +#define HAVE_MORECORE 1 +#endif /* ONLY_MSPACES */ +#endif /* HAVE_MORECORE */ +#if !HAVE_MORECORE +#define MORECORE_CONTIGUOUS 0 +#else /* !HAVE_MORECORE */ +#define MORECORE_DEFAULT sbrk +#ifndef MORECORE_CONTIGUOUS +#define MORECORE_CONTIGUOUS 1 +#endif /* MORECORE_CONTIGUOUS */ +#endif /* HAVE_MORECORE */ +#ifndef DEFAULT_GRANULARITY +#if (MORECORE_CONTIGUOUS || defined(DL_PLATFORM_WIN32)) +#define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */ +#else /* MORECORE_CONTIGUOUS */ +#define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U) +#endif /* MORECORE_CONTIGUOUS */ +#endif /* DEFAULT_GRANULARITY */ +#ifndef DEFAULT_TRIM_THRESHOLD +#ifndef MORECORE_CANNOT_TRIM +#define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U) +#else /* MORECORE_CANNOT_TRIM */ +#define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T +#endif /* MORECORE_CANNOT_TRIM */ +#endif /* DEFAULT_TRIM_THRESHOLD */ +#ifndef DEFAULT_MMAP_THRESHOLD +#if HAVE_MMAP +#define DEFAULT_MMAP_THRESHOLD ((size_t)256U * (size_t)1024U) +#else /* HAVE_MMAP */ +#define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T +#endif /* HAVE_MMAP */ +#endif /* DEFAULT_MMAP_THRESHOLD */ +#ifndef MAX_RELEASE_CHECK_RATE +#if HAVE_MMAP +#define MAX_RELEASE_CHECK_RATE 4095 +#else +#define MAX_RELEASE_CHECK_RATE MAX_SIZE_T +#endif /* HAVE_MMAP */ +#endif /* MAX_RELEASE_CHECK_RATE */ +#ifndef USE_BUILTIN_FFS +#define USE_BUILTIN_FFS 0 +#endif /* USE_BUILTIN_FFS */ +#ifndef USE_DEV_RANDOM +#define USE_DEV_RANDOM 0 +#endif /* USE_DEV_RANDOM */ +#ifndef NO_MALLINFO +#define NO_MALLINFO 0 +#endif /* NO_MALLINFO */ +#ifndef MALLINFO_FIELD_TYPE +#define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ +#ifndef NO_SEGMENT_TRAVERSAL +#define NO_SEGMENT_TRAVERSAL 0 +#endif /* NO_SEGMENT_TRAVERSAL */ + +/* +mallopt tuning options. SVID/XPG defines four standard parameter +numbers for mallopt, normally defined in malloc.h. None of these +are used in this malloc, so setting them has no effect. But this +malloc does support the following options. +*/ + +#define M_TRIM_THRESHOLD (-1) +#define M_GRANULARITY (-2) +#define M_MMAP_THRESHOLD (-3) + +/* ------------------------ Mallinfo declarations ------------------------ */ + +#if !NO_MALLINFO +/* +This version of malloc supports the standard SVID/XPG mallinfo +routine that returns a struct containing usage properties and +statistics. It should work on any system that has a +/usr/include/malloc.h defining struct mallinfo. The main +declaration needed is the mallinfo struct that is returned (by-copy) +by mallinfo(). The malloinfo struct contains a bunch of fields that +are not even meaningful in this version of malloc. These fields are +are instead filled by mallinfo() with other numbers that might be of +interest. + +HAVE_USR_INCLUDE_MALLOC_H should be set if you have a +/usr/include/malloc.h file that includes a declaration of struct +mallinfo. If so, it is included; else a compliant version is +declared below. These must be precisely the same for mallinfo() to +work. The original SVID version of this struct, defined on most +systems with mallinfo, declares all fields as ints. But some others +define as unsigned long. If your system defines the fields using a +type of different width than listed here, you MUST #include your +system version and #define HAVE_USR_INCLUDE_MALLOC_H. +*/ + +/* #define HAVE_USR_INCLUDE_MALLOC_H */ + +#ifdef HAVE_USR_INCLUDE_MALLOC_H +#include "/usr/include/malloc.h" +#else /* HAVE_USR_INCLUDE_MALLOC_H */ +#ifndef STRUCT_MALLINFO_DECLARED +#define STRUCT_MALLINFO_DECLARED 1 +struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ +}; +#endif /* STRUCT_MALLINFO_DECLARED */ +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +#endif /* NO_MALLINFO */ + +/* +Try to persuade compilers to inline. The most critical functions for +inlining are defined as macros, so these aren't used for them. +*/ + +#ifndef FORCEINLINE +#if defined(__GNUC__) +#define FORCEINLINE __inline __attribute__ ((always_inline)) +#elif defined(_MSC_VER) +#define FORCEINLINE __forceinline +#endif +#endif +#ifndef NOINLINE +#if defined(__GNUC__) +#define NOINLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +#define NOINLINE __declspec(noinline) +#else +#define NOINLINE +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#ifndef FORCEINLINE +#define FORCEINLINE inline +#endif +#endif /* __cplusplus */ +#ifndef FORCEINLINE +#define FORCEINLINE +#endif + +#if !ONLY_MSPACES + + /* ------------------- Declarations of public routines ------------------- */ + +#ifndef USE_DL_PREFIX +#define rdlcalloc calloc +#define rdlfree free +#define rdlmalloc malloc +#define rdlmemalign memalign +#define rdlrealloc realloc +#define rdlvalloc valloc +#define rdlpvalloc pvalloc +#define rdlmallinfo mallinfo +#define rdlmallopt mallopt +#define rdlmalloc_trim malloc_trim +#define rdlmalloc_stats malloc_stats +#define rdlmalloc_usable_size malloc_usable_size +#define rdlmalloc_footprint malloc_footprint +#define dlmalloc_max_footprint malloc_max_footprint +#define rdlindependent_calloc independent_calloc +#define rdlindependent_comalloc independent_comalloc +#endif /* USE_DL_PREFIX */ + + + /* + malloc(size_t n) + Returns a pointer to a newly allocated chunk of at least n bytes, or + null if no space is available, in which case errno is set to ENOMEM + on ANSI C systems. + + If n is zero, malloc returns a minimum-sized chunk. (The minimum + size is 16 bytes on most 32bit systems, and 32 bytes on 64bit + systems.) Note that size_t is an unsigned type, so calls with + arguments that would be negative if signed are interpreted as + requests for huge amounts of space, which will often fail. The + maximum supported value of n differs across systems, but is in all + cases less than the maximum representable value of a size_t. + */ + void* rdlmalloc(size_t); + + /* + free(void* p) + Releases the chunk of memory pointed to by p, that had been previously + allocated using malloc or a related routine such as realloc. + It has no effect if p is null. If p was not malloced or already + freed, free(p) will by default cause the current program to abort. + */ + void rdlfree(void*); + + /* + calloc(size_t n_elements, size_t element_size); + Returns a pointer to n_elements * element_size bytes, with all locations + set to zero. + */ + void* rdlcalloc(size_t, size_t); + + /* + realloc(void* p, size_t n) + Returns a pointer to a chunk of size n that contains the same data + as does chunk p up to the minimum of (n, p's size) bytes, or null + if no space is available. + + The returned pointer may or may not be the same as p. The algorithm + prefers extending p in most cases when possible, otherwise it + employs the equivalent of a malloc-copy-free sequence. + + If p is null, realloc is equivalent to malloc. + + If space is not available, realloc returns null, errno is set (if on + ANSI) and p is NOT freed. + + if n is for fewer bytes than already held by p, the newly unused + space is lopped off and freed if possible. realloc with a size + argument of zero (re)allocates a minimum-sized chunk. + + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is not supported. + */ + + void* rdlrealloc(void*, size_t); + + /* + memalign(size_t alignment, size_t n); + Returns a pointer to a newly allocated chunk of n bytes, aligned + in accord with the alignment argument. + + The alignment argument should be a power of two. If the argument is + not a power of two, the nearest greater power is used. + 8-byte alignment is guaranteed by normal malloc calls, so don't + bother calling memalign with an argument of 8 or less. + + Overreliance on memalign is a sure way to fragment space. + */ + void* rdlmemalign(size_t, size_t); + + /* + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system. If the pagesize is unknown, 4096 is used. + */ + void* rdlvalloc(size_t); + + /* + mallopt(int parameter_number, int parameter_value) + Sets tunable parameters The format is to provide a + (parameter-number, parameter-value) pair. mallopt then sets the + corresponding parameter to the argument value if it can (i.e., so + long as the value is meaningful), and returns 1 if successful else + 0. To workaround the fact that mallopt is specified to use int, + not size_t parameters, the value -1 is specially treated as the + maximum unsigned size_t value. + + SVID/XPG/ANSI defines four standard param numbers for mallopt, + normally defined in malloc.h. None of these are use in this malloc, + so setting them has no effect. But this malloc also supports other + options in mallopt. See below for details. Briefly, supported + parameters are as follows (listed defaults are for "typical" + configurations). + + Symbol param # default allowed param values + M_TRIM_THRESHOLD -1 2*1024*1024 any (-1 disables) + M_GRANULARITY -2 page size any power of 2 >= page size + M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support) + */ + int rdlmallopt(int, int); + + /* + malloc_footprint(); + Returns the number of bytes obtained from the system. The total + number of bytes allocated by malloc, realloc etc., is less than this + value. Unlike mallinfo, this function returns only a precomputed + result, so can be called frequently to monitor memory consumption. + Even if locks are otherwise defined, this function does not use them, + so results might not be up to date. + */ + size_t rdlmalloc_footprint(void); + + /* + malloc_max_footprint(); + Returns the maximum number of bytes obtained from the system. This + value will be greater than current footprint if deallocated space + has been reclaimed by the system. The peak number of bytes allocated + by malloc, realloc etc., is less than this value. Unlike mallinfo, + this function returns only a precomputed result, so can be called + frequently to monitor memory consumption. Even if locks are + otherwise defined, this function does not use them, so results might + not be up to date. + */ + size_t dlmalloc_max_footprint(void); + +#if !NO_MALLINFO + /* + mallinfo() + Returns (by copy) a struct containing various summary statistics: + + arena: current total non-mmapped bytes allocated from system + ordblks: the number of free chunks + smblks: always zero. + hblks: current number of mmapped regions + hblkhd: total bytes held in mmapped regions + usmblks: the maximum total allocated space. This will be greater + than current total if trimming has occurred. + fsmblks: always zero + uordblks: current total allocated space (normal or mmapped) + fordblks: total free space + keepcost: the maximum number of bytes that could ideally be released + back to system via malloc_trim. ("ideally" means that + it ignores page restrictions etc.) + + Because these fields are ints, but internal bookkeeping may + be kept as longs, the reported values may wrap around zero and + thus be inaccurate. + */ + struct mallinfo rdlmallinfo(void); +#endif /* NO_MALLINFO */ + + /* + independent_calloc(size_t n_elements, size_t element_size, void* chunks[]); + + independent_calloc is similar to calloc, but instead of returning a + single cleared space, it returns an array of pointers to n_elements + independent elements that can hold contents of size elem_size, each + of which starts out cleared, and can be independently freed, + realloc'ed etc. The elements are guaranteed to be adjacently + allocated (this is not guaranteed to occur with multiple callocs or + mallocs), which may also improve cache locality in some + applications. + + The "chunks" argument is optional (i.e., may be null, which is + probably the most typical usage). If it is null, the returned array + is itself dynamically allocated and should also be freed when it is + no longer needed. Otherwise, the chunks array must be of at least + n_elements in length. It is filled in with the pointers to the + chunks. + + In either case, independent_calloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and "chunks" + is null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use regular calloc and assign pointers into this + space to represent elements. (In this case though, you cannot + independently free elements.) + + independent_calloc simplifies and speeds up implementations of many + kinds of pools. It may also be useful when constructing large data + structures that initially have a fixed number of fixed-sized nodes, + but the number is not known at compile time, and some of the nodes + may later need to be freed. For example: + + struct Node { int item; struct Node* next; }; + + struct Node* build_list() { + struct Node** pool; + int n = read_number_of_nodes_needed(); + if (n <= 0) return 0; + pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0); + if (pool == 0) die(); + // organize into a linked list... + struct Node* first = pool[0]; + for (i = 0; i < n-1; ++i) + pool[i]->next = pool[i+1]; + free(pool); // Can now free the array (or not, if it is needed later) + return first; + } + */ + void** rdlindependent_calloc(size_t, size_t, void**); + + /* + independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]); + + independent_comalloc allocates, all at once, a set of n_elements + chunks with sizes indicated in the "sizes" array. It returns + an array of pointers to these elements, each of which can be + independently freed, realloc'ed etc. The elements are guaranteed to + be adjacently allocated (this is not guaranteed to occur with + multiple callocs or mallocs), which may also improve cache locality + in some applications. + + The "chunks" argument is optional (i.e., may be null). If it is null + the returned array is itself dynamically allocated and should also + be freed when it is no longer needed. Otherwise, the chunks array + must be of at least n_elements in length. It is filled in with the + pointers to the chunks. + + In either case, independent_comalloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and chunks is + null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use a single regular malloc, and assign pointers at + particular offsets in the aggregate space. (In this case though, you + cannot independently free elements.) + + independent_comallac differs from independent_calloc in that each + element may have a different size, and also that it does not + automatically clear elements. + + independent_comalloc can be used to speed up allocation in cases + where several structs or objects must always be allocated at the + same time. For example: + + struct Head { ... } + struct Foot { ... } + + void send_message(char* msg) { + int msglen = strlen(msg); + size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) }; + void* chunks[3]; + if (independent_comalloc(3, sizes, chunks) == 0) + die(); + struct Head* head = (struct Head*)(chunks[0]); + char* body = (char*)(chunks[1]); + struct Foot* foot = (struct Foot*)(chunks[2]); + // ... + } + + In general though, independent_comalloc is worth using only for + larger values of n_elements. For small values, you probably won't + detect enough difference from series of malloc calls to bother. + + Overuse of independent_comalloc can increase overall memory usage, + since it cannot reuse existing noncontiguous small chunks that + might be available for some of the elements. + */ + void** rdlindependent_comalloc(size_t, size_t*, void**); + + + /* + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + */ + void* rdlpvalloc(size_t); + + /* + malloc_trim(size_t pad); + + If possible, gives memory back to the system (via negative arguments + to sbrk) if there is unused memory at the `high' end of the malloc + pool or in unused MMAP segments. You can call this after freeing + large blocks of memory to potentially reduce the system-level memory + requirements of a program. However, it cannot guarantee to reduce + memory. Under some allocation patterns, some large free blocks of + memory will be locked between two used chunks, so they cannot be + given back to the system. + + The `pad' argument to malloc_trim represents the amount of free + trailing space to leave untrimmed. If this argument is zero, only + the minimum amount of memory to maintain internal data structures + will be left. Non-zero arguments can be supplied to maintain enough + trailing space to service future expected allocations without having + to re-obtain memory from the system. + + Malloc_trim returns 1 if it actually released any memory, else 0. + */ + int rdlmalloc_trim(size_t); + + /* + malloc_stats(); + Prints on stderr the amount of space obtained from the system (both + via sbrk and mmap), the maximum amount (which may be more than + current if malloc_trim and/or munmap got called), and the current + number of bytes allocated via malloc (or realloc, etc) but not yet + freed. Note that this is the number of bytes allocated, not the + number requested. It will be larger than the number requested + because of alignment and bookkeeping overhead. Because it includes + alignment wastage as being in use, this figure may be greater than + zero even when no user-level chunks are allocated. + + The reported current and maximum system memory can be inaccurate if + a program makes other calls to system memory allocation functions + (normally sbrk) outside of malloc. + + malloc_stats prints only the most commonly interesting statistics. + More information can be obtained by calling mallinfo. + */ + void rdlmalloc_stats(void); + +#endif /* ONLY_MSPACES */ + + /* + malloc_usable_size(void* p); + + Returns the number of bytes you can actually use in + an allocated chunk, which may be more than you requested (although + often not) due to alignment and minimum size constraints. + You can use this many bytes without worrying about + overwriting other allocated objects. This is not a particularly great + programming practice. malloc_usable_size can be more useful in + debugging and assertions, for example: + + p = malloc(n); + assert(malloc_usable_size(p) >= 256); + */ + size_t rdlmalloc_usable_size(void*); + + +#if MSPACES + + /* + mspace is an opaque type representing an independent + region of space that supports rak_mspace_malloc, etc. + */ + typedef void* mspace; + + /* + rak_create_mspace creates and returns a new independent space with the + given initial capacity, or, if 0, the default granularity size. It + returns null if there is no system memory available to create the + space. If argument locked is non-zero, the space uses a separate + lock to control access. The capacity of the space will grow + dynamically as needed to service rak_mspace_malloc requests. You can + control the sizes of incremental increases of this space by + compiling with a different DEFAULT_GRANULARITY or dynamically + setting with mallopt(M_GRANULARITY, value). + */ + mspace rak_create_mspace(size_t capacity, int locked); + + /* + rak_destroy_mspace destroys the given space, and attempts to return all + of its memory back to the system, returning the total number of + bytes freed. After destruction, the results of access to all memory + used by the space become undefined. + */ + size_t rak_destroy_mspace(mspace msp); + + /* + rak_create_mspace_with_base uses the memory supplied as the initial base + of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this + space is used for bookkeeping, so the capacity must be at least this + large. (Otherwise 0 is returned.) When this initial space is + exhausted, additional memory will be obtained from the system. + Destroying this space will deallocate all additionally allocated + space (if possible) but not the initial base. + */ + mspace rak_create_mspace_with_base(void* base, size_t capacity, int locked); + + /* + rak_mspace_track_large_chunks controls whether requests for large chunks + are allocated in their own untracked mmapped regions, separate from + others in this mspace. By default large chunks are not tracked, + which reduces fragmentation. However, such chunks are not + necessarily released to the system upon rak_destroy_mspace. Enabling + tracking by setting to true may increase fragmentation, but avoids + leakage when relying on rak_destroy_mspace to release all memory + allocated using this space. The function returns the previous + setting. + */ + int rak_mspace_track_large_chunks(mspace msp, int enable); + + + /* + rak_mspace_malloc behaves as malloc, but operates within + the given space. + */ + void* rak_mspace_malloc(mspace msp, size_t bytes); + + /* + rak_mspace_free behaves as free, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_free is not actually needed. + free may be called instead of rak_mspace_free because freed chunks from + any space are handled by their originating spaces. + */ + void rak_mspace_free(mspace msp, void* mem); + + /* + rak_mspace_realloc behaves as realloc, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_realloc is not actually + needed. realloc may be called instead of rak_mspace_realloc because + realloced chunks from any space are handled by their originating + spaces. + */ + void* rak_mspace_realloc(mspace msp, void* mem, size_t newsize); + + /* + rak_mspace_calloc behaves as calloc, but operates within + the given space. + */ + void* rak_mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + + /* + rak_mspace_memalign behaves as memalign, but operates within + the given space. + */ + void* rak_mspace_memalign(mspace msp, size_t alignment, size_t bytes); + + /* + rak_mspace_independent_calloc behaves as independent_calloc, but + operates within the given space. + */ + void** rak_mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]); + + /* + rak_mspace_independent_comalloc behaves as independent_comalloc, but + operates within the given space. + */ + void** rak_mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]); + + /* + rak_mspace_footprint() returns the number of bytes obtained from the + system for this space. + */ + size_t rak_mspace_footprint(mspace msp); + + /* + mspace_max_footprint() returns the peak number of bytes obtained from the + system for this space. + */ + size_t mspace_max_footprint(mspace msp); + + +#if !NO_MALLINFO + /* + rak_mspace_mallinfo behaves as mallinfo, but reports properties of + the given space. + */ + struct mallinfo rak_mspace_mallinfo(mspace msp); +#endif /* NO_MALLINFO */ + + /* + malloc_usable_size(void* p) behaves the same as malloc_usable_size; + */ + size_t rak_mspace_usable_size(void* mem); + + /* + rak_mspace_malloc_stats behaves as malloc_stats, but reports + properties of the given space. + */ + void rak_mspace_malloc_stats(mspace msp); + + /* + rak_mspace_trim behaves as malloc_trim, but + operates within the given space. + */ + int rak_mspace_trim(mspace msp, size_t pad); + + /* + An alias for mallopt. + */ + int rak_mspace_mallopt(int, int); + +#endif /* MSPACES */ + +#ifdef __cplusplus +}; /* end of extern "C" */ +#endif /* __cplusplus */ + +/* +======================================================================== +To make a fully customizable malloc.h header file, cut everything +above this line, put into file malloc.h, edit to suit, and #include it +on the next line, as well as in programs that use this malloc. +======================================================================== +*/ + +/* #include "malloc.h" */ + +/*------------------------------ internal #includes ---------------------- */ + +#ifdef DL_PLATFORM_WIN32 +#pragma warning( disable : 4146 ) /* no "unsigned" warnings */ +#endif /* DL_PLATFORM_WIN32 */ + +#include /* for printing in malloc_stats */ + +#ifndef LACKS_ERRNO_H +#include /* for MALLOC_FAILURE_ACTION */ +#endif /* LACKS_ERRNO_H */ + +#if FOOTERS || DEBUG +#include /* for magic initialization */ +#endif /* FOOTERS */ + +#ifndef LACKS_STDLIB_H +#include /* for abort() */ +#endif /* LACKS_STDLIB_H */ + +#ifdef DEBUG +#if ABORT_ON_ASSERT_FAILURE +#undef assert +#define assert(x) if(!(x)) ABORT +#else /* ABORT_ON_ASSERT_FAILURE */ +#include +#endif /* ABORT_ON_ASSERT_FAILURE */ +#else /* DEBUG */ +#ifndef assert +#define assert(x) +#endif +#define DEBUG 0 +#endif /* DEBUG */ + +#ifndef LACKS_STRING_H +#include /* for memset etc */ +#endif /* LACKS_STRING_H */ + +#if USE_BUILTIN_FFS +#ifndef LACKS_STRINGS_H +#include /* for ffs */ +#endif /* LACKS_STRINGS_H */ +#endif /* USE_BUILTIN_FFS */ + +#if HAVE_MMAP +#ifndef LACKS_SYS_MMAN_H +/* On some versions of linux, mremap decl in mman.h needs __USE_GNU set */ +#if (defined(linux) && !defined(__USE_GNU)) +#define __USE_GNU 1 +#include /* for mmap */ +#undef __USE_GNU +#else +#include /* for mmap */ +#endif /* linux */ +#endif /* LACKS_SYS_MMAN_H */ +#ifndef LACKS_FCNTL_H +#include +#endif /* LACKS_FCNTL_H */ +#endif /* HAVE_MMAP */ + +#ifndef LACKS_UNISTD_H +#include /* for sbrk, sysconf */ +#else /* LACKS_UNISTD_H */ +#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) +extern void* sbrk(ptrdiff_t); +#endif /* FreeBSD etc */ +#endif /* LACKS_UNISTD_H */ + +/* Declarations for locking */ +#if USE_LOCKS +#if defined(_XBOX) || defined(X360) +#pragma intrinsic (_InterlockedCompareExchange) +#pragma intrinsic (_InterlockedExchange) +#define interlockedcompareexchange _InterlockedCompareExchange +#define interlockedexchange _InterlockedExchange +#elif !defined(DL_PLATFORM_WIN32) +#include +#if defined (__SVR4) && defined (__sun) /* solaris */ +#include +#endif /* solaris */ +#else +#ifndef _M_AMD64 +/* These are already defined on AMD64 builds */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp); + LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value); +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* _M_AMD64 */ +#pragma intrinsic (_InterlockedCompareExchange) +#pragma intrinsic (_InterlockedExchange) +#define interlockedcompareexchange _InterlockedCompareExchange +#define interlockedexchange _InterlockedExchange +#endif /* Win32 */ +#endif /* USE_LOCKS */ + +/* Declarations for bit scanning on win32 */ +#if defined(_MSC_VER) && _MSC_VER>=1300 && defined(DL_PLATFORM_WIN32) +#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + unsigned char _BitScanForward(unsigned long *index, unsigned long mask); + unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#define BitScanForward _BitScanForward +#define BitScanReverse _BitScanReverse +#pragma intrinsic(_BitScanForward) +#pragma intrinsic(_BitScanReverse) +#endif /* BitScanForward */ +#endif /* defined(_MSC_VER) && _MSC_VER>=1300 */ + +#ifndef DL_PLATFORM_WIN32 +#ifndef malloc_getpagesize +# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ +# ifndef _SC_PAGE_SIZE +# define _SC_PAGE_SIZE _SC_PAGESIZE +# endif +# endif +# ifdef _SC_PAGE_SIZE +# define malloc_getpagesize sysconf(_SC_PAGE_SIZE) +# else +# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) +extern size_t getpagesize(); +# define malloc_getpagesize getpagesize() +# else +# ifdef DL_PLATFORM_WIN32 /* use supplied emulation of getpagesize */ +# define malloc_getpagesize getpagesize() +# else +# ifndef LACKS_SYS_PARAM_H +# include +# endif +# ifdef EXEC_PAGESIZE +# define malloc_getpagesize EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define malloc_getpagesize NBPG +# else +# define malloc_getpagesize (NBPG * CLSIZE) +# endif +# else +# ifdef NBPC +# define malloc_getpagesize NBPC +# else +# ifdef PAGESIZE +# define malloc_getpagesize PAGESIZE +# else /* just guess */ +# define malloc_getpagesize ((size_t)4096U) +# endif +# endif +# endif +# endif +# endif +# endif +# endif +#endif +#endif + + + +/* ------------------- size_t and alignment properties -------------------- */ + +/* The byte and bit size of a size_t */ +#define SIZE_T_SIZE (sizeof(size_t)) +#define SIZE_T_BITSIZE (sizeof(size_t) << 3) + +/* Some constants coerced to size_t */ +/* Annoying but necessary to avoid errors on some platforms */ +#define SIZE_T_ZERO ((size_t)0) +#define SIZE_T_ONE ((size_t)1) +#define SIZE_T_TWO ((size_t)2) +#define SIZE_T_FOUR ((size_t)4) +#define TWO_SIZE_T_SIZES (SIZE_T_SIZE<<1) +#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE<<2) +#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES+TWO_SIZE_T_SIZES) +#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U) + +/* The bit mask value corresponding to MALLOC_ALIGNMENT */ +#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE) + +/* True if address a has acceptable alignment */ +#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) + +/* the number of bytes to offset an address to align it */ +#define align_offset(A)\ + ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\ + ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK)) + +/* -------------------------- MMAP preliminaries ------------------------- */ + +/* +If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and +checks to fail so compiler optimizer can delete code rather than +using so many "#if"s. +*/ + + +/* MORECORE and MMAP must return MFAIL on failure */ +#define MFAIL ((void*)(MAX_SIZE_T)) +#define CMFAIL ((char*)(MFAIL)) /* defined for convenience */ + +#if HAVE_MMAP + +#if defined(_XBOX) || defined(X360) + /* Win32 MMAP via VirtualAlloc */ + static void* win32mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* For direct MMAP, use MEM_TOP_DOWN to minimize interference */ + static void* win32direct_mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN, + PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* This function supports releasing coalesed segments */ + static int win32munmap(void* ptr, size_t size) { + MEMORY_BASIC_INFORMATION minfo; + char* cptr = (char*)ptr; + while (size) { + if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0) + return -1; + if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr || + minfo.State != MEM_COMMIT || minfo.RegionSize > size) + return -1; + if (VirtualFree(cptr, 0, MEM_RELEASE) == 0) + return -1; + cptr += minfo.RegionSize; + size -= minfo.RegionSize; + } + return 0; + } + + #define RAK_MMAP_DEFAULT(s) win32mmap(s) + #define RAK_MUNMAP_DEFAULT(a, s) win32munmap((a), (s)) + #define RAK_DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s) +#elif defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) + +inline int ___freeit_dlmalloc_default__(void* s) {free(s); return 0;} +#define RAK_MMAP_DEFAULT(s) malloc(s); +#define RAK_MUNMAP_DEFAULT(a, s) ___freeit_dlmalloc_default__(a); +#define RAK_DIRECT_MMAP_DEFAULT(s) malloc(s); + +#elif !defined(DL_PLATFORM_WIN32) + #define RAK_MUNMAP_DEFAULT(a, s) munmap((a), (s)) + #define MMAP_PROT (PROT_READ|PROT_WRITE) + #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) + #define MAP_ANONYMOUS MAP_ANON + #endif /* MAP_ANON */ + #ifdef MAP_ANONYMOUS + #define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS) + #define RAK_MMAP_DEFAULT(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0) + #else /* MAP_ANONYMOUS */ + /* + Nearly all versions of mmap support MAP_ANONYMOUS, so the following + is unlikely to be needed, but is supplied just in case. + */ + #define MMAP_FLAGS (MAP_PRIVATE) + static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */ + #define RAK_MMAP_DEFAULT(s) ((dev_zero_fd < 0) ? \ + (dev_zero_fd = open("/dev/zero", O_RDWR), \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) + #endif /* MAP_ANONYMOUS */ + + #define RAK_DIRECT_MMAP_DEFAULT(s) RAK_MMAP_DEFAULT(s) + +#else /* DL_PLATFORM_WIN32 */ + + /* Win32 MMAP via VirtualAlloc */ + static FORCEINLINE void* win32mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* For direct MMAP, use MEM_TOP_DOWN to minimize interference */ + static FORCEINLINE void* win32direct_mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN, + PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* This function supports releasing coalesed segments */ + static FORCEINLINE int win32munmap(void* ptr, size_t size) { + MEMORY_BASIC_INFORMATION minfo; + char* cptr = (char*)ptr; + while (size) { + if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0) + return -1; + if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr || + minfo.State != MEM_COMMIT || minfo.RegionSize > size) + return -1; + if (VirtualFree(cptr, 0, MEM_RELEASE) == 0) + return -1; + cptr += minfo.RegionSize; + size -= minfo.RegionSize; + } + return 0; + } + + #define RAK_MMAP_DEFAULT(s) win32mmap(s) + #define RAK_MUNMAP_DEFAULT(a, s) win32munmap((a), (s)) + #define RAK_DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s) +#endif /* DL_PLATFORM_WIN32 */ +#endif /* HAVE_MMAP */ + +#if HAVE_MREMAP +#ifndef DL_PLATFORM_WIN32 +#define MREMAP_DEFAULT(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv)) +#endif /* DL_PLATFORM_WIN32 */ +#endif /* HAVE_MREMAP */ + + +/** +* Define CALL_MORECORE +*/ +#if HAVE_MORECORE +#ifdef MORECORE +#define CALL_MORECORE(S) MORECORE(S) +#else /* MORECORE */ +#define CALL_MORECORE(S) MORECORE_DEFAULT(S) +#endif /* MORECORE */ +#else /* HAVE_MORECORE */ +#define CALL_MORECORE(S) MFAIL +#endif /* HAVE_MORECORE */ + +/** +* Define CALL_MMAP/CALL_MUNMAP/CALL_DIRECT_MMAP +*/ +#if HAVE_MMAP +#define USE_MMAP_BIT (SIZE_T_ONE) + +#ifdef MMAP +#define CALL_MMAP(s) MMAP(s) +#else /* MMAP */ +#define CALL_MMAP(s) RAK_MMAP_DEFAULT(s) +#endif /* MMAP */ +#ifdef MUNMAP +#define CALL_MUNMAP(a, s) MUNMAP((a), (s)) +#else /* MUNMAP */ +#define CALL_MUNMAP(a, s) RAK_MUNMAP_DEFAULT((a), (s)) +#endif /* MUNMAP */ +#ifdef DIRECT_MMAP +#define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) +#else /* DIRECT_MMAP */ +#define CALL_DIRECT_MMAP(s) RAK_DIRECT_MMAP_DEFAULT(s) +#endif /* DIRECT_MMAP */ +#else /* HAVE_MMAP */ +#define USE_MMAP_BIT (SIZE_T_ZERO) + +#define MMAP(s) MFAIL +#define MUNMAP(a, s) (-1) +#define DIRECT_MMAP(s) MFAIL +#define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) +#define CALL_MMAP(s) MMAP(s) +#define CALL_MUNMAP(a, s) MUNMAP((a), (s)) +#endif /* HAVE_MMAP */ + +/** +* Define CALL_MREMAP +*/ +#if HAVE_MMAP && HAVE_MREMAP +#ifdef MREMAP +#define CALL_MREMAP(addr, osz, nsz, mv) MREMAP((addr), (osz), (nsz), (mv)) +#else /* MREMAP */ +#define CALL_MREMAP(addr, osz, nsz, mv) MREMAP_DEFAULT((addr), (osz), (nsz), (mv)) +#endif /* MREMAP */ +#else /* HAVE_MMAP && HAVE_MREMAP */ +#define CALL_MREMAP(addr, osz, nsz, mv) MFAIL +#endif /* HAVE_MMAP && HAVE_MREMAP */ + +/* mstate bit set if continguous morecore disabled or failed */ +#define USE_NONCONTIGUOUS_BIT (4U) + +/* segment bit set in rak_create_mspace_with_base */ +#define EXTERN_BIT (8U) + + +#endif /* MALLOC_280_H */ + +#endif // _RAKNET_SUPPORT_DL_MALLOC \ No newline at end of file diff --git a/project/raspberry/Makefile b/project/raspberry/Makefile new file mode 100755 index 0000000..a501aa9 --- /dev/null +++ b/project/raspberry/Makefile @@ -0,0 +1,309 @@ +MODULE := minecraftpi +SOURCES := ../../src/main.cpp \ +../../src/main_rpi.cpp \ +../../src/platform/input/Controller.cpp \ +../../src/platform/input/Keyboard.cpp \ +../../src/platform/input/Mouse.cpp \ +../../src/platform/input/Multitouch.cpp \ +../../src/platform/time.cpp \ +../../src/platform/CThread.cpp \ +../../src/NinecraftApp.cpp \ +../../src/Performance.cpp \ +../../src/SharedConstants.cpp \ +../../src/client/IConfigListener.cpp \ +../../src/client/Minecraft.cpp \ +../../src/client/Options.cpp \ +../../src/client/OptionStrings.cpp \ +../../src/client/OptionsFile.cpp \ +../../src/client/MouseHandler.cpp \ +../../src/client/gamemode/CreatorMode.cpp \ +../../src/client/gamemode/GameMode.cpp \ +../../src/client/gamemode/CreativeMode.cpp \ +../../src/client/gamemode/SurvivalMode.cpp \ +../../src/client/gui/components/Button.cpp \ +../../src/client/gui/components/ImageButton.cpp \ +../../src/client/gui/components/GuiElement.cpp \ +../../src/client/gui/components/GuiElementContainer.cpp \ +../../src/client/gui/components/ItemPane.cpp \ +../../src/client/gui/components/InventoryPane.cpp \ +../../src/client/gui/components/LargeImageButton.cpp \ +../../src/client/gui/components/NinePatch.cpp \ +../../src/client/gui/components/RolledSelectionListH.cpp \ +../../src/client/gui/components/RolledSelectionListV.cpp \ +../../src/client/gui/components/ScrolledSelectionList.cpp \ +../../src/client/gui/components/ScrollingPane.cpp \ +../../src/client/gui/components/SmallButton.cpp \ +../../src/client/gui/components/Slider.cpp \ +../../src/client/gui/components/OptionsItem.cpp \ +../../src/client/gui/components/OptionsGroup.cpp \ +../../src/client/gui/components/OptionsPane.cpp \ +../../src/client/gui/Font.cpp \ +../../src/client/gui/Gui.cpp \ +../../src/client/gui/GuiComponent.cpp \ +../../src/client/gui/Screen.cpp \ +../../src/client/gui/screens/ScreenChooser.cpp \ +../../src/client/gui/screens/ArmorScreen.cpp \ +../../src/client/gui/screens/ChatScreen.cpp \ +../../src/client/gui/screens/ConfirmScreen.cpp \ +../../src/client/gui/screens/ChestScreen.cpp \ +../../src/client/gui/screens/crafting/PaneCraftingScreen.cpp \ +../../src/client/gui/screens/crafting/StonecutterScreen.cpp \ +../../src/client/gui/screens/crafting/WorkbenchScreen.cpp \ +../../src/client/gui/screens/crafting/CraftingFilters.cpp \ +../../src/client/gui/screens/DeathScreen.cpp \ +../../src/client/gui/screens/ChooseLevelScreen.cpp \ +../../src/client/gui/screens/SimpleChooseLevelScreen.cpp \ +../../src/client/gui/screens/FurnaceScreen.cpp \ +../../src/client/gui/screens/InBedScreen.cpp \ +../../src/client/gui/screens/IngameBlockSelectionScreen.cpp \ +../../src/client/gui/screens/JoinGameScreen.cpp \ +../../src/client/gui/screens/MouseUnlockedScreen.cpp \ +../../src/client/gui/screens/OptionsScreen.cpp \ +../../src/client/gui/screens/PauseScreen.cpp \ +../../src/client/gui/screens/ProgressScreen.cpp \ +../../src/client/gui/screens/RenameMPLevelScreen.cpp \ +../../src/client/gui/screens/SelectWorldScreen.cpp \ +../../src/client/gui/screens/StartMenuScreen.cpp \ +../../src/client/gui/screens/TextEditScreen.cpp \ +../../src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp \ +../../src/client/gui/screens/touch/TouchJoinGameScreen.cpp \ +../../src/client/gui/screens/touch/TouchSelectWorldScreen.cpp \ +../../src/client/gui/screens/touch/TouchStartMenuScreen.cpp \ +../../src/client/gui/screens/UploadPhotoScreen.cpp \ +../../src/client/model/ChickenModel.cpp \ +../../src/client/model/CowModel.cpp \ +../../src/client/model/HumanoidModel.cpp \ +../../src/client/model/PigModel.cpp \ +../../src/client/model/QuadrupedModel.cpp \ +../../src/client/model/SheepModel.cpp \ +../../src/client/model/SheepFurModel.cpp \ +../../src/client/model/geom/Cube.cpp \ +../../src/client/model/geom/ModelPart.cpp \ +../../src/client/model/geom/Polygon.cpp \ +../../src/client/particle/Particle.cpp \ +../../src/client/particle/ParticleEngine.cpp \ +../../src/client/player/LocalPlayer.cpp \ +../../src/client/player/RemotePlayer.cpp \ +../../src/client/player/input/KeyboardInput.cpp \ +../../src/client/player/input/touchscreen/TouchscreenInput.cpp \ +../../src/client/renderer/Chunk.cpp \ +../../src/client/renderer/EntityTileRenderer.cpp \ +../../src/client/renderer/GameRenderer.cpp \ +../../src/client/renderer/ItemInHandRenderer.cpp \ +../../src/client/renderer/LevelRenderer.cpp \ +../../src/client/renderer/RenderChunk.cpp \ +../../src/client/renderer/RenderList.cpp \ +../../src/client/renderer/Tesselator.cpp \ +../../src/client/renderer/Textures.cpp \ +../../src/client/renderer/TileRenderer.cpp \ +../../src/client/renderer/gles.cpp \ +../../src/client/renderer/culling/Frustum.cpp \ +../../src/client/renderer/entity/ArrowRenderer.cpp \ +../../src/client/renderer/entity/ChickenRenderer.cpp \ +../../src/client/renderer/entity/EntityRenderDispatcher.cpp \ +../../src/client/renderer/entity/EntityRenderer.cpp \ +../../src/client/renderer/entity/FallingTileRenderer.cpp \ +../../src/client/renderer/entity/HumanoidMobRenderer.cpp \ +../../src/client/renderer/entity/ItemRenderer.cpp \ +../../src/client/renderer/entity/ItemSpriteRenderer.cpp \ +../../src/client/renderer/entity/MobRenderer.cpp \ +../../src/client/renderer/entity/PaintingRenderer.cpp \ +../../src/client/renderer/entity/PlayerRenderer.cpp \ +../../src/client/renderer/entity/SheepRenderer.cpp \ +../../src/client/renderer/entity/TntRenderer.cpp \ +../../src/client/renderer/entity/TripodCameraRenderer.cpp \ +../../src/client/renderer/ptexture/DynamicTexture.cpp \ +../../src/client/renderer/tileentity/ChestRenderer.cpp \ +../../src/client/renderer/tileentity/SignRenderer.cpp \ +../../src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp \ +../../src/client/renderer/tileentity/TileEntityRenderer.cpp \ +../../src/client/sound/Sound.cpp \ +../../src/client/sound/SoundEngine.cpp \ +../../src/locale/I18n.cpp \ +../../src/nbt/Tag.cpp \ +../../src/network/command/CommandServer.cpp \ +../../src/network/ClientSideNetworkHandler.cpp \ +../../src/network/NetEventCallback.cpp \ +../../src/network/Packet.cpp \ +../../src/network/RakNetInstance.cpp \ +../../src/network/ServerSideNetworkHandler.cpp \ +../../src/server/CreatorLevel.cpp \ +../../src/server/ServerLevel.cpp \ +../../src/server/ServerPlayer.cpp \ +../../src/util/DataIO.cpp \ +../../src/util/Mth.cpp \ +../../src/util/StringUtils.cpp \ +../../src/util/PerfTimer.cpp \ +../../src/util/PerfRenderer.cpp \ +../../src/world/Direction.cpp \ +../../src/world/entity/AgableMob.cpp \ +../../src/world/entity/Entity.cpp \ +../../src/world/entity/EntityFactory.cpp \ +../../src/world/entity/FlyingMob.cpp \ +../../src/world/entity/HangingEntity.cpp \ +../../src/world/entity/Mob.cpp \ +../../src/world/entity/MobCategory.cpp \ +../../src/world/entity/Motive.cpp \ +../../src/world/entity/Painting.cpp \ +../../src/world/entity/PathfinderMob.cpp \ +../../src/world/entity/SynchedEntityData.cpp \ +../../src/world/entity/ai/control/MoveControl.cpp \ +../../src/world/entity/animal/Animal.cpp \ +../../src/world/entity/animal/Chicken.cpp \ +../../src/world/entity/animal/Cow.cpp \ +../../src/world/entity/animal/Pig.cpp \ +../../src/world/entity/animal/Sheep.cpp \ +../../src/world/entity/animal/WaterAnimal.cpp \ +../../src/world/entity/item/FallingTile.cpp \ +../../src/world/entity/item/ItemEntity.cpp \ +../../src/world/entity/item/PrimedTnt.cpp \ +../../src/world/entity/item/TripodCamera.cpp \ +../../src/world/entity/monster/Creeper.cpp \ +../../src/world/entity/monster/Monster.cpp \ +../../src/world/entity/monster/PigZombie.cpp \ +../../src/world/entity/monster/Skeleton.cpp \ +../../src/world/entity/monster/Spider.cpp \ +../../src/world/entity/monster/Zombie.cpp \ +../../src/world/entity/projectile/Arrow.cpp \ +../../src/world/entity/projectile/Throwable.cpp \ +../../src/world/entity/player/Inventory.cpp \ +../../src/world/entity/player/Player.cpp \ +../../src/world/food/SimpleFoodData.cpp \ +../../src/world/inventory/BaseContainerMenu.cpp \ +../../src/world/inventory/ContainerMenu.cpp \ +../../src/world/inventory/FillingContainer.cpp \ +../../src/world/inventory/FurnaceMenu.cpp \ +../../src/world/item/ArmorItem.cpp \ +../../src/world/item/BedItem.cpp \ +../../src/world/item/DyePowderItem.cpp \ +../../src/world/item/Item.cpp \ +../../src/world/item/ItemInstance.cpp \ +../../src/world/item/HangingEntityItem.cpp \ +../../src/world/item/HatchetItem.cpp \ +../../src/world/item/HoeItem.cpp \ +../../src/world/item/PickaxeItem.cpp \ +../../src/world/item/ShovelItem.cpp \ +../../src/world/item/crafting/Recipe.cpp \ +../../src/world/item/crafting/ArmorRecipes.cpp \ +../../src/world/item/crafting/Recipes.cpp \ +../../src/world/item/crafting/FurnaceRecipes.cpp \ +../../src/world/item/crafting/OreRecipes.cpp \ +../../src/world/item/crafting/StructureRecipes.cpp \ +../../src/world/item/crafting/ToolRecipes.cpp \ +../../src/world/item/crafting/WeaponRecipes.cpp \ +../../src/world/level/Explosion.cpp \ +../../src/world/level/Level.cpp \ +../../src/world/level/LightLayer.cpp \ +../../src/world/level/LightUpdate.cpp \ +../../src/world/level/MobSpawner.cpp \ +../../src/world/level/Region.cpp \ +../../src/world/level/TickNextTickData.cpp \ +../../src/world/level/biome/Biome.cpp \ +../../src/world/level/biome/BiomeSource.cpp \ +../../src/world/level/chunk/LevelChunk.cpp \ +../../src/world/level/dimension/Dimension.cpp \ +../../src/world/level/levelgen/CanyonFeature.cpp \ +../../src/world/level/levelgen/DungeonFeature.cpp \ +../../src/world/level/levelgen/LargeCaveFeature.cpp \ +../../src/world/level/levelgen/LargeFeature.cpp \ +../../src/world/level/levelgen/RandomLevelSource.cpp \ +../../src/world/level/levelgen/feature/Feature.cpp \ +../../src/world/level/levelgen/synth/ImprovedNoise.cpp \ +../../src/world/level/levelgen/synth/PerlinNoise.cpp \ +../../src/world/level/levelgen/synth/Synth.cpp \ +../../src/world/level/material/Material.cpp \ +../../src/world/level/pathfinder/Path.cpp \ +../../src/world/level/storage/ExternalFileLevelStorage.cpp \ +../../src/world/level/storage/ExternalFileLevelStorageSource.cpp \ +../../src/world/level/storage/FolderMethods.cpp \ +../../src/world/level/storage/LevelData.cpp \ +../../src/world/level/storage/LevelStorageSource.cpp \ +../../src/world/level/storage/RegionFile.cpp \ +../../src/world/level/tile/BedTile.cpp \ +../../src/world/level/tile/ChestTile.cpp \ +../../src/world/level/tile/CropTile.cpp \ +../../src/world/level/tile/DoorTile.cpp \ +../../src/world/level/tile/EntityTile.cpp \ +../../src/world/level/tile/FurnaceTile.cpp \ +../../src/world/level/tile/GrassTile.cpp \ +../../src/world/level/tile/HeavyTile.cpp \ +../../src/world/level/tile/LightGemTile.cpp \ +../../src/world/level/tile/MelonTile.cpp \ +../../src/world/level/tile/Mushroom.cpp \ +../../src/world/level/tile/NetherReactor.cpp \ +../../src/world/level/tile/NetherReactorPattern.cpp \ +../../src/world/level/tile/StairTile.cpp \ +../../src/world/level/tile/StemTile.cpp \ +../../src/world/level/tile/StoneSlabTile.cpp \ +../../src/world/level/tile/TallGrass.cpp \ +../../src/world/level/tile/Tile.cpp \ +../../src/world/level/tile/TrapDoorTile.cpp \ +../../src/world/level/tile/entity/ChestTileEntity.cpp \ +../../src/world/level/tile/entity/NetherReactorTileEntity.cpp \ +../../src/world/level/tile/entity/SignTileEntity.cpp \ +../../src/world/level/tile/entity/TileEntity.cpp \ +../../src/world/level/tile/entity/FurnaceTileEntity.cpp \ +../../src/world/phys/HitResult.cpp + +# +# Build environment +# +CC:=g++ +SHELL:=/bin/bash + +# +# Setup default vars and paths +# +CFLAGS:=-mfloat-abi=hard -march=armv6j -mfpu=vfp -DRPI -DPOSIX -DGFX_SMALLER_CHUNKS -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads + +OBJECTS:=$(SOURCES:%.cpp=%.o) +DEPS:=$(SOURCES:%.cpp=%.d) + +OBJDIR=. +SRCDIR=. + +# +# Build mode specifics +# +ifeq ($(BUILD),release) + CFLAGS+=-Os -g -DNDEBUG -DPUBLISH + OBJDIR=obj/release/d1/d2 + OBJECTS:=$(patsubst %,$(OBJDIR)/%,$(OBJECTS)) +else + CFLAGS+=-O0 -g + OBJDIR=obj/debug/d1/d2 + OBJECTS:=$(patsubst %,$(OBJDIR)/%,$(OBJECTS)) +endif + +# +# +# +LDFLAGS:=-L/opt/vc/lib/ -lGLESv1_CM -lEGL -lbcm_host -lpng -lSDL -L. libRakNet_static_O1.a + + +# +# Targets +# +all: $(MODULE) + +-include $(DEPS) + +release: + make "BUILD=release" + +#$(CC) -MM $(CFLAGS) $*.cpp > $*.d + +$(OBJDIR)/%.o: $(SRCDIR)/%.cpp + @mkdir -p $(@D) + $(CC) -c $(CFLAGS) $< -o $@ + $(CC) -MM -MT $*.o $(CFLAGS) $*.cpp > $*.d + @cp -f $*.d $*.d.tmp + @rm -f $*.d.tmp + +#@sed -e 's/.*://' -e 's/\$$//' < $*.d.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d + +$(MODULE): $(OBJECTS) + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + +clean: + rm -f $(OBJECTS) $(DEPS) $(MODULE) diff --git a/project/raspberry/libRakNet.so b/project/raspberry/libRakNet.so new file mode 100755 index 0000000..3db609a Binary files /dev/null and b/project/raspberry/libRakNet.so differ diff --git a/project/raspberry/libRakNet_static.a b/project/raspberry/libRakNet_static.a new file mode 100755 index 0000000..4c2ae84 Binary files /dev/null and b/project/raspberry/libRakNet_static.a differ diff --git a/project/raspberry/minecraftpi b/project/raspberry/minecraftpi new file mode 100755 index 0000000..dee4ad7 Binary files /dev/null and b/project/raspberry/minecraftpi differ diff --git a/project/raspberry/py/__pycache__/api.cpython-312.pyc b/project/raspberry/py/__pycache__/api.cpython-312.pyc new file mode 100755 index 0000000..42c1afe Binary files /dev/null and b/project/raspberry/py/__pycache__/api.cpython-312.pyc differ diff --git a/project/raspberry/py/__pycache__/apiutil.cpython-312.pyc b/project/raspberry/py/__pycache__/apiutil.cpython-312.pyc new file mode 100755 index 0000000..5080f01 Binary files /dev/null and b/project/raspberry/py/__pycache__/apiutil.cpython-312.pyc differ diff --git a/project/raspberry/py/__pycache__/event.cpython-312.pyc b/project/raspberry/py/__pycache__/event.cpython-312.pyc new file mode 100755 index 0000000..f791ed0 Binary files /dev/null and b/project/raspberry/py/__pycache__/event.cpython-312.pyc differ diff --git a/project/raspberry/py/__pycache__/vec3.cpython-312.pyc b/project/raspberry/py/__pycache__/vec3.cpython-312.pyc new file mode 100755 index 0000000..99ea300 Binary files /dev/null and b/project/raspberry/py/__pycache__/vec3.cpython-312.pyc differ diff --git a/project/raspberry/py/api.py b/project/raspberry/py/api.py new file mode 100755 index 0000000..84dfc83 --- /dev/null +++ b/project/raspberry/py/api.py @@ -0,0 +1,100 @@ +import socket, select +import apiutil +from vec3 import Vec3 +from event import TileEvent + +comm = None +def connect(address, port=4711): + global comm + comm = socket.socket(socket.AF_INET,socket.SOCK_STREAM) + comm.connect((address, 4711)) + +connect("localhost") + +def drainSocket(s): + while True: + read, w, x = select.select([s], [], [], 0.0) + if len(read) == 0: break + s.recv(1500) + +def generateFunc(name, unpack=None): + def _inner(*l): + s = apiutil.call(name,*l) + drainSocket(comm) + comm.send(s) + if not unpack: return + + r = comm.recv(1024) + if r != "Fail\n": + return unpack(r) + return _inner + +def unpackArrayTo(func, f=lambda x:x): + """Calling func with unpacked array element arguments""" + def _inner(s): return [func(*map(f, e.split(","))) for e in s.split("|") if e.strip()] + return _inner + +def unpackTo(func, f=lambda x:x): + """Calling func with unpacked arguments""" + def _inner(s): return func(*map(f, s.split(","))) + return _inner + +def postMessageLoop(): + n = 0 + while 1: + postMessage(n) + n += 1 + +def Print(s): + print(s) + +def readV3(s): return unpackTo(Vec3, float)(s) +def readV3ints(s): return unpackTo(Vec3, lambda x:int(float(x)))(s) + +class Holder: + pass + +# Block, world +world = Holder() +world.setBlock = generateFunc("world.setBlock") +world.getBlock = generateFunc("world.getBlock", int) +world.setBlocks = generateFunc("world.setBlocks") +world.getHeight = generateFunc("world.getHeight", int) +world.getPlayerIds = generateFunc("world.getPlayerIds", unpackArrayTo(int)) +world.setting = generateFunc("world.setting") + +# Checkpoint +world.checkpoint = Holder() +world.checkpoint.save = generateFunc("world.checkpoint.save") +world.checkpoint.restore= generateFunc("world.checkpoint.restore") +# = generateFunc("entity.getType + +# Player +player = Holder() +player.setTile = generateFunc("player.setTile") +player.getTile = generateFunc("player.getTile", readV3ints) +player.setPos = generateFunc("player.setPos") +player.getPos = generateFunc("player.getPos", readV3) +player.setting = generateFunc("player.setting") + +# Camera +camera = Holder() +camera.setNormal = generateFunc("camera.mode.setNormal") +#camera.setThirdPerson = generateFunc("camera.mode.setThirdPerson") +camera.setFixed = generateFunc("camera.mode.setFixed") +camera.setFollow = generateFunc("camera.mode.setFollow") +camera.setPos = generateFunc("camera.setPos") +#setCameraFollow1 = generateFunc("camera.mode.setFollowWithPosition") +#setCameraFollow2 = generateFunc("camera.mode.setFollowWithRotation") + +# Events +events = Holder() +events.block = Holder() +events.block.hits = generateFunc("events.block.hits", unpackArrayTo(TileEvent.Hit, int)) +#pollChat = generateFunc("events.chat", unpackArrayTo(TileEvent.Hit, int)) +# Chat +chat = Holder() +chat.post = generateFunc("chat.post") + +from functools import partial +setAutojump = partial(player.setting, "autojump") \ No newline at end of file diff --git a/project/raspberry/py/apiutil.py b/project/raspberry/py/apiutil.py new file mode 100755 index 0000000..3888c98 --- /dev/null +++ b/project/raspberry/py/apiutil.py @@ -0,0 +1,13 @@ +import collections + +def flatten(l): + for e in l: + if isinstance(e, collections.Iterable) and not isinstance(e, basestring): + for ee in flatten(e): yield ee + else: yield e + +def toParameters(l): + return ",".join(map(str, flatten(l))) + +def call(name, *l): + return "%s(%s)\n"%(name, toParameters(l)) diff --git a/project/raspberry/py/event.py b/project/raspberry/py/event.py new file mode 100755 index 0000000..d4ae4a0 --- /dev/null +++ b/project/raspberry/py/event.py @@ -0,0 +1,19 @@ +from vec3 import Vec3 + +class TileEvent: + HIT = 0 + + def __init__(self, type, x, y, z, face, entityId): + self.type = type + self.pos = Vec3(x, y, z) + self.face = face + self.entityId = entityId + + def __str__(self): + types = {TileEvent.HIT: "Hit"} + return "TileEvent(%s @ %s:%d by %d)"%(types.get(self.type, 0), + self.pos, self.face, self.entityId); + + @staticmethod + def Hit(x, y, z, face, entityId): + return TileEvent(TileEvent.HIT, x, y, z, face, entityId) diff --git a/project/raspberry/py/game_snake.py b/project/raspberry/py/game_snake.py new file mode 100755 index 0000000..da656d5 --- /dev/null +++ b/project/raspberry/py/game_snake.py @@ -0,0 +1,199 @@ +import time, random +import api, kbhelp +from vec3 import Vec3 + +class BlockType: + AIR = 0 + ROCK = 1 + DIRT = 3 + SANDSTONE = 24 + CLOTH = 35 + CACTUS = 81 + +class ClothColor: + WHITE = 0 + RED = 14 + + @staticmethod + def dark(x): return x + 8 if x < 8 else x + def bright(x): return x - 8 if x >= 8 else x + +class Level: + Wall = BlockType.DIRT + Food = BlockType.SANDSTONE + + def __init__(self, w, h, pos=Vec3(0,0,0)): + self.w = w + self.h = h + self.pos = pos + self.m = [0] * (w * h) + + def setup(self, numApples): + size = Vec3(self.w-1, 0, self.h-1) + margin = Vec3(1, 0, 1) + api.world.setBlocks(self.pos - margin + Vec3.down(3), self.pos + size + margin, BlockType.ROCK) + api.world.setBlocks(self.pos, self.pos + size + Vec3.up(8), BlockType.AIR) + + for i in random.sample(range(self.w * self.h), numApples): + xx = i % self.w + yy = i / self.w + self.m[i] = Level.Food + api.world.setBlock(xx, self.pos.y, yy, Level.Food) + + def getTile(self, x, y): + return self.m[y * self.w + x] if self.inRange(x, y) else None + + def clearTile(self, x, y): + if self.inRange(x, y): self.m[y * self.w + x] = 0 + + def isFood(self, x, y): + return self.inRange(x, y) and Level.Food == self.getTile(x, y) + + def isWall(self, x, y): + return (not self.inRange(x, y)) or Level.Wall == self.getTile(x, y) + + def inRange(self, x, y): + return x >= 0 and y >= 0 and x < self.w and y < self.h + + def countApples(self): + return self.m.count(Level.Food) + +class Snake: + def __init__(self, pos=Vec3(0,0,0), length=5): + self.dir = Vec3(1, 0, 0) + self.seg = [pos] + self.dead = False + self.growTicks = 0 + + for i in range(length-1): + self._add() + + def left(self): self.dir.rotateLeft() + def right(self): self.dir.rotateRight() + + def next(self): + return self.head() + self.dir + + def head(self): + return self.seg[-1] + + def tick(self): + self._add() + if self.growTicks == 0: self._remove() + if self.growTicks > 0: self.growTicks -= 1 + + def _add(self): + n = self.next() + if n in self.seg: + self.kill() + return + self.seg.append( n ) + api.world.setBlock(n.x, n.y, n.z, 45) + + def _remove(self): + h, self.seg = self.seg[0], self.seg[1:] + api.world.setBlock(h.x, h.y, h.z, 0) + + def grow(self, ticks): + self.growTicks = ticks + + def kill(self): + for p in self.seg: + api.world.setBlock(p.x, p.y, p.z, BlockType.CLOTH, 14) + self.dead = True + +class SnakeGame: + def __init__(self, numSnakes): + self.numSnakes = numSnakes + self.snakes = [] + self.level = None + self.noActionTicks = 10 + + def startLevel(self, level, numApples=8): + self.level = level + self.level.setup(numApples) + self.snakes = [Snake(Vec3(3, 0, 3)) for x in range(self.numSnakes)] + self.noActionTicks = 10 + for s in self.snakes: + for t in s.seg: self.level.clearTile(t.x, t.z) + api.camera.setFixed() + api.camera.setPos(Vec3((level.w-1)/2.0, 10, level.h/2.0 - 1)) + + def tick(self): + if self.noActionTicks > 0: + self.noActionTicks -= 1 + return + + for s in self.snakes: + self.tickSnake(s) + + def tickSnake(self, snake): + if snake.dead: return + self.onTile(snake, snake.next()) + if not snake.dead: snake.tick() + + def isFinished(self): + return self.isWon() or self.allSnakesDead() + + def isWon(self): + #print self.level.countApples() + return self.level.countApples() == 0 + + def allSnakesDead(self): + for s in self.snakes: + if not s.dead: return False + return True + + def onTile(self, snake, pos): + x, y = pos.x, pos.z + if self.level.isWall(x, y): snake.kill() + if self.level.isFood(x, y): snake.grow(2) + self.level.clearTile(x, y) + +def run(): + kb = kbhelp.KeyboardInput() + keys = (('a', 'd'), + ('4', '6')) + + numSnakes = 1 + + def play(level, numApples, tickDelay): + g = SnakeGame(numSnakes) + g.startLevel(Level(16, 12), numApples) + api.chat.post("Snake - level %d"%level) + + while 1: + # Update input + if kb.hasChar(): + key = kb.readChar() + for i in range(min(len(g.snakes), len(keys))): + LeftKey, RightKey = keys[i] + s = g.snakes[i] + if key == LeftKey: s.left() + if key == RightKey: s.right() + # Update game + g.tick() + time.sleep(tickDelay) + + if g.isFinished(): + return g.isWon() + + delay = 0.15 + level = 0 + apples = 5 + + while 1: + level += 1 + apples += 1 + won = play(level, apples, delay) + if not won: + api.chat.post("Snake - Game over! [ level %d ]!"%level) + return + + delay -= 0.01 + if delay < 0.04: + return + + +if __name__ == "__main__": + run() diff --git a/project/raspberry/py/image.py b/project/raspberry/py/image.py new file mode 100755 index 0000000..41ebd53 --- /dev/null +++ b/project/raspberry/py/image.py @@ -0,0 +1,38 @@ +import Image +import apiutil + +def hexToRgb(hex): + return (hex >> 16) & 255, (hex >> 8) & 255, hex & 255 + +cgaColors = map(hexToRgb, ( + 0x000000, + 0x0000A8, + 0x00A800, + 0x00A8A8, + 0xFF0000, + 0xA800A8, + 0xA85400, + 0xA8A8A8, + 0x545454, + 0x5454FE, + 0x54FE54, + 0x54FEFE, + 0xFE5454, + 0xFE54FE, + 0xFEFE54, + 0xFEFEFE)) + +cgaPalette = apiutil.flatten(cgaColors) + +def _padPalette(values, count): + v = tuple(values) + return v + (0, 0, 0) * (count - len(v)) + +def imageToCga(im): + p = Image.new("P", (1,1)) + p.putpalette(_padPalette(cgaPalette, 256)) + return im.convert("RGB").quantize(palette=p, kmeans=255) + +def imageToWool(im, (w, h)): + cga = imageToCga(im.resize((w, h))) + diff --git a/project/raspberry/py/kbhelp.py b/project/raspberry/py/kbhelp.py new file mode 100755 index 0000000..fed1412 --- /dev/null +++ b/project/raspberry/py/kbhelp.py @@ -0,0 +1,60 @@ +try: + import msvcrt + + """Win32 implementation of a keyboard input reader""" + class KeyboardInput_win32: + def __init__(self): + self.setBlocking(True) + + def clear(self): + while 1: + if self.readChar_nonblocking() is None: + break + + def setBlocking(self, block): + self.readChar = self.readChar_blocking if block else \ + self.readChar_nonblocking + + def hasChar(self): + return msvcrt.kbhit() + + def readChar_blocking(self): + return msvcrt.getch() + + def readChar_nonblocking(self): + if not msvcrt.kbhit(): return None + return msvcrt.getch() + + KeyboardInput = KeyboardInput_win32 + +except: + try: + class KeyboardInput_unix: + def hasChar(self): + import sys, tty, termios + from select import select + fd = sys.stdin.fileno() + old_settings = termios.tcgetattr(fd) + try: + tty.setraw(sys.stdin.fileno()) + [i, o, e] = select([sys.stdin.fileno()], [], [], 5) + if i: ch = True + else: ch = False + finally: + termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) + return ch + + def readChar(self): + import sys, tty, termios + from select import select + fd = sys.stdin.fileno() + old_settings = termios.tcgetattr(fd) + try: + tty.setraw(sys.stdin.fileno()) + ch = sys.stdin.read(1) + finally: + termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) + return ch + + KeyboardInput = KeyboardInput_unix + except: pass diff --git a/project/raspberry/py/mojang_cga.png b/project/raspberry/py/mojang_cga.png new file mode 100755 index 0000000..83549ce Binary files /dev/null and b/project/raspberry/py/mojang_cga.png differ diff --git a/project/raspberry/py/vec3.py b/project/raspberry/py/vec3.py new file mode 100755 index 0000000..0bef495 --- /dev/null +++ b/project/raspberry/py/vec3.py @@ -0,0 +1,80 @@ +class Vec3: + def __init__(self, x=0, y=0, z=0): + self.x = x + self.y = y + self.z = z + + def __add__(self, rhs): + c = self.clone() + c += rhs + return c + + def __iadd__(self, rhs): + self.x += rhs.x + self.y += rhs.y + self.z += rhs.z + return self + + def clone(self): + return Vec3(self.x, self.y, self.z) + + def __neg__(self): + return Vec3(-self.x, -self.y, -self.z) + + def __sub__(self, rhs): + return self.__add__(-rhs) + + def __isub__(self, rhs): + return self.__iadd__(-rhs) + + def __repr__(self): + return "Vec3(%s,%s,%s)"%(self.x,self.y,self.z) + + def __iter__(self): + return iter((self.x, self.y, self.z)) + + def _map(self, func): + self.x = func(self.x) + self.y = func(self.y) + self.z = func(self.z) + + def __cmp__(self, rhs): + dx = self.x - rhs.x + if dx != 0: return dx + dy = self.y - rhs.y + if dy != 0: return dy + dz = self.z - rhs.z + if dz != 0: return dz + return 0 + + def iround(self): self._map(lambda v:int(v+0.5)) + def ifloor(self): self._map(int) + + def rotateLeft(self): self.x, self.z = self.z, -self.x + def rotateRight(self): self.x, self.z = -self.z, self.x + + @staticmethod + def y(n=1): return Vec3(0, n, 0) + @staticmethod + def up(n=1): return Vec3.y(n) + @staticmethod + def down(n=1): return Vec3.y(-n) + +def testVec3(): + # Note: It's not testing everything + + # 1.1 Test initialization + it = Vec3(1, -2, 3) + assert it.x == 1 + assert it.y == -2 + assert it.z == 3 + + # 2.1 Test cloning and equality + clone = it.clone() + assert it == clone + it.x += 1 + assert it != clone + + # Test repr + e = eval(repr(it)) + assert e == it diff --git a/project/win32/MinecraftWin32.sdf b/project/win32/MinecraftWin32.sdf new file mode 100755 index 0000000..9b16277 Binary files /dev/null and b/project/win32/MinecraftWin32.sdf differ diff --git a/project/win32/MinecraftWin32.sln b/project/win32/MinecraftWin32.sln new file mode 100755 index 0000000..d1bdd36 --- /dev/null +++ b/project/win32/MinecraftWin32.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MinecraftWin32", "MinecraftWin32.vcxproj", "{61D12CAD-CC16-4024-9C45-DE97AB0465AF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{57B259AC-F044-44F2-A67D-DA49970BED5D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MinecraftWin32_GL", "..\win32_gl\MinecraftWin32_GL.vcxproj", "{19B34E47-B11C-E628-ED97-698E93339EA3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug DEMO|Win32 = Debug DEMO|Win32 + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {61D12CAD-CC16-4024-9C45-DE97AB0465AF}.Debug DEMO|Win32.ActiveCfg = Debug DEMO|Win32 + {61D12CAD-CC16-4024-9C45-DE97AB0465AF}.Debug DEMO|Win32.Build.0 = Debug DEMO|Win32 + {61D12CAD-CC16-4024-9C45-DE97AB0465AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {61D12CAD-CC16-4024-9C45-DE97AB0465AF}.Debug|Win32.Build.0 = Debug|Win32 + {61D12CAD-CC16-4024-9C45-DE97AB0465AF}.Release|Win32.ActiveCfg = Release|Win32 + {61D12CAD-CC16-4024-9C45-DE97AB0465AF}.Release|Win32.Build.0 = Release|Win32 + {19B34E47-B11C-E628-ED97-698E93339EA3}.Debug DEMO|Win32.ActiveCfg = Debug|Win32 + {19B34E47-B11C-E628-ED97-698E93339EA3}.Debug|Win32.ActiveCfg = Debug|Win32 + {19B34E47-B11C-E628-ED97-698E93339EA3}.Debug|Win32.Build.0 = Debug|Win32 + {19B34E47-B11C-E628-ED97-698E93339EA3}.Release|Win32.ActiveCfg = Release|Win32 + {19B34E47-B11C-E628-ED97-698E93339EA3}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/project/win32/MinecraftWin32.v11.suo b/project/win32/MinecraftWin32.v11.suo new file mode 100755 index 0000000..3110a70 Binary files /dev/null and b/project/win32/MinecraftWin32.v11.suo differ diff --git a/project/win32/MinecraftWin32.vcxproj b/project/win32/MinecraftWin32.vcxproj new file mode 100755 index 0000000..04646a7 --- /dev/null +++ b/project/win32/MinecraftWin32.vcxproj @@ -0,0 +1,1126 @@ + + + + + Debug DEMO + Win32 + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {61D12CAD-CC16-4024-9C45-DE97AB0465AF} + Win32Proj + MinecraftWin32 + + + + Application + true + NotSet + v110 + + + Application + true + NotSet + v110 + + + Application + false + true + NotSet + v110 + + + + + + + + + + + + + + + + true + ..\..\lib\include;$(IncludePath) + ..\..\lib\lib;$(LibraryPath) + + + true + ..\..\lib\include;$(IncludePath) + ..\..\lib\lib;$(LibraryPath) + + + false + ..\..\lib\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; + ..\..\lib\lib;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib + + + + + + Level3 + Disabled + GLDEBUG;OPENGL_ES;WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) + true + false + + + Console + true + libEGL.lib;libGLES_CM.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libpng.lib;%(AdditionalDependencies) + + + + + + + + + Level3 + Disabled + DEMO_MODE;OPENGL_ES;WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + libEGL.lib;libGLES_CM.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libpng.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + OPENGL_ES;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + $(WindowsSdkDir)\include\um;$(WindowsSdkDir)\include\shared;%(AdditionalIncludeDirectories) + + + Console + true + true + true + libEGL.lib;libGLES_CM.lib;WS2_32.Lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libpng.lib;%(AdditionalDependencies) + $(WindowsSdkDir)lib\win8\um\x86;%(AdditionalLibraryDirectories) + + + + + + \ No newline at end of file diff --git a/project/win32/MinecraftWin32.vcxproj.filters b/project/win32/MinecraftWin32.vcxproj.filters new file mode 100755 index 0000000..0c9ec12 --- /dev/null +++ b/project/win32/MinecraftWin32.vcxproj.filters @@ -0,0 +1,3191 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {315d8115-3fca-4a3f-9374-57f41665e3a0} + + + {84771a0f-b6af-479c-a26d-fbf611d14fcb} + + + {93f057aa-83e6-442e-a126-9d244453eb38} + + + {82f6d408-1efb-43bc-99fd-f6029eabe32b} + + + {01996801-7e5f-476e-b41c-e7d3bad443b0} + + + {4398bfb3-fb0a-498c-9772-3c815e8ad360} + + + {7887f605-f5e2-4bca-86b9-ccaf7228184d} + + + {9b2956dc-ea58-4192-8bb8-3a7c97e92141} + + + {c13ce830-5bad-4622-b008-4198a50fd760} + + + {d0112033-5536-42af-9a19-d188bb7b4a29} + + + {ee8fd90c-82e9-4f37-b468-fa264e20843d} + + + {cbcb2ae1-8eee-4d76-b137-e68c8edc55c0} + + + {81419bca-bcb4-46bd-bfd5-d05ec83adece} + + + {5094f961-132c-4d23-9077-353cf989adc5} + + + {71ab63f9-7c1d-4cdc-bbe1-67a69e54fcf9} + + + {e9e550bf-9345-4cb4-bd3d-a6d0f70136f6} + + + {94682265-c50a-4307-84b3-a2e2488f56aa} + + + {57e82abe-b138-40da-be47-75c872682126} + + + {3053195e-e3a9-4481-813f-2c63c7d4fc3b} + + + {4f6589cb-0d2a-4a0d-b94f-a15cc5af30db} + + + {711b9f4f-6a59-4c97-a37d-50f5e6171b08} + + + {7f18df66-372a-4d60-9e34-ddaed7b522e3} + + + {eed0a973-fbec-4dd6-96ef-308b80850ab1} + + + {ef4ebf01-6f5f-4b01-990d-feb9885d9f11} + + + {3c1f4573-74cc-4b76-b4ce-fc01f1e9ff6f} + + + {2360ae39-413c-4514-8898-fbed347600bd} + + + {e9f52cee-84ea-43b1-814d-822cb70805fa} + + + {e536d920-0d4b-4c39-97de-2b83a6ca3cf4} + + + {7c33753b-7228-4c43-a0db-e50621e60be8} + + + {00188837-a1b6-446f-94aa-c7cbd7da8291} + + + {bdda49a8-dce0-4e2c-bd52-a08949611547} + + + {fe0157fa-e486-47be-9a78-ea4abe58a75a} + + + {3f7b68ba-24bf-4a04-a072-3c63d061c6d3} + + + {7abec229-7c62-4f8c-be0c-b0541ebe6a2b} + + + {9a993a4b-5523-4ce6-8fc5-d45b6c098655} + + + {5db94373-ca02-4a85-8029-da71c6bb7b9c} + + + {db6877ab-b3ee-4c4e-a4db-a934d366ccf2} + + + {55eb3700-6e83-4ddd-acf1-8007be34240c} + + + {d75d193d-81f9-4fbd-8c1e-0688149b829b} + + + {64ffbf67-3499-4004-8bb1-124d6ef1c10c} + + + {0f4d45e8-d068-489e-a66e-d42d36067fbd} + + + {e2511587-18cc-4635-9921-513debf878df} + + + {99bc510f-d187-40f7-befc-1c5a02571110} + + + {76b518bc-f17f-4bf5-bd69-15c3945d8d98} + + + {89c4918c-8ff9-4290-81c8-e6115afb6e0a} + + + {8faf4949-1190-46ba-97ba-8d854cb8f104} + + + {491d98ea-686d-417c-9e42-ed3a4e66781d} + + + {d400197c-231e-4e27-a176-9e91bcc92934} + + + {d0aee588-4f58-44f9-8a82-0d1998cba02f} + + + {9b9a6b73-102d-40b8-bd32-cb552c9f83e4} + + + {85c02cb0-6cdf-4ec8-9d94-92b7c7b82e0c} + + + {1a46cf05-e5e8-4b61-af27-291435577b37} + + + {57b58ea4-2f23-4f79-ac82-6c40619f3ded} + + + {cab0cd1e-1e3c-4f6b-af63-a8b90c20e86e} + + + {fe32771a-8f08-471c-8696-28951441b3a2} + + + {7c895144-ec49-4465-be5c-e59960757bb3} + + + {3860d844-27c3-441e-adfa-e5993010a24a} + + + {8d46e789-d2ac-4888-adc7-499c25659dd8} + + + {d73bff72-4294-4b54-acf1-e4da7c159895} + + + {908ab587-566a-4177-94a0-67e66c25fac1} + + + {633779f8-e638-42a9-a5e4-98c3c8d810b0} + + + {160d7e15-8f93-46c7-8aec-a13299e9d090} + + + {d9a5faa2-fae5-4072-950e-89ca5a5f86fd} + + + + + Source Files + + + Source Files\client + + + Source Files\client + + + Source Files\client\gamemode + + + Source Files\client\player + + + Platform + + + Source Files\util + + + Source Files\world + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\phys + + + Source Files\world\level + + + Source Files\world\level + + + Source Files\world\level\chunk + + + Source Files\world\level\dimension + + + Source Files\world\level\levelgen + + + Source Files\world\level\material + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\world\level + + + Source Files\client\renderer\culling + + + Source Files\client\renderer + + + Source Files\world\level + + + Source Files\world\entity\player + + + Platform\input + + + Platform\input + + + Platform\input + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\level + + + Source Files\client\renderer + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\renderer + + + Platform + + + Source Files\client\gui + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\network + + + Source Files\network + + + Source Files\network + + + Source Files\network + + + Source Files\client\sound + + + Source Files\client\renderer\entity + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files + + + Source Files\world\level\tile + + + Source Files\client\renderer\ptexture + + + Source Files\client\renderer\entity + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\world\level + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen\synth + + + Source Files\world\level\levelgen\synth + + + Source Files\world\level\levelgen\synth + + + Source Files\world\entity\item + + + Source Files\world\entity\item + + + Source Files\world\entity\item + + + Source Files\world\entity\item + + + Source Files\client\renderer\entity + + + Source Files\client\gui + + + Source Files\client\gui + + + Source Files\client\gui + + + Source Files\client\renderer\entity + + + Source Files\client\model + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\util + + + Source Files\client\gui\screens + + + Source Files\world\level\storage + + + Source Files\client\gui\screens + + + Source Files\client\player\input + + + Platform\input + + + Source Files\client\player\input\touchscreen + + + Source Files\client\gui\screens\touch + + + Source Files\client\gui\components + + + Source Files + + + Source Files\client\gui\screens\touch + + + Source Files\client\gui\screens\touch + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\screens + + + Source Files\client\gui\components + + + Source Files\client\gui\screens\touch + + + Source Files\client + + + Source Files\nbt + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\entity + + + Source Files\world\level + + + Source Files\client\model\geom + + + Source Files\client\model\geom + + + Source Files\client\model\geom + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\util + + + Source Files\util + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\entity\monster + + + Source Files\network + + + Source Files\client\renderer\entity + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\entity\projectile + + + Source Files\world\item\crafting + + + Source Files\world\entity\animal + + + Source Files\client\gamemode + + + Source Files\util + + + Source Files\world\entity + + + Source Files\client\gui\screens + + + Source Files\world\entity\player + + + Source Files\world\item + + + Source Files\world\level\storage + + + Source Files\world\entity\ai\control + + + Source Files\client + + + Source Files + + + Source Files\world\level\pathfinder + + + Source Files\world\item\crafting + + + Source Files\locale + + + Libs\raknet + + + Source Files\client\gui\components + + + Source Files\world\item\crafting + + + Source Files\client\sound + + + Source Files\world\level\tile + + + Source Files\world\level\tile\entity + + + Source Files\world\level\tile\entity + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\client\gui\screens + + + Source Files\client\gui\components + + + Source Files\world\level\levelgen\feature + + + Source Files\world\inventory + + + Source Files\world\inventory + + + Source Files\client\gui\components + + + Source Files\world\level\tile\entity + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\inventory + + + Source Files\client\gui\screens + + + Source Files\client\renderer + + + Source Files\client\renderer\tileentity + + + Source Files\client\renderer\tileentity + + + Source Files\client\renderer\tileentity + + + Source Files\world\inventory + + + Source Files\client\renderer\entity + + + Source Files\world\entity + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\client\renderer\entity + + + Source Files\world\food + + + Source Files\client\player + + + Source Files\server + + + Source Files\server + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files + + + Source Files\client\gamemode + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\item + + + Source Files\client\renderer\entity + + + Source Files\world\level\tile + + + Source Files\world\entity\monster + + + Source Files\world\level\tile\entity + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile\entity + + + Source Files\client\renderer\tileentity + + + Source Files\client\gui\screens + + + Source Files\world\level\tile + + + Source Files\network + + + Source Files\network\command + + + Source Files\network + + + Source Files\client\gamemode\creator + + + Source Files\client\gui\components + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens\crafting + + + Source Files\client\gui\screens\crafting + + + Source Files\client\renderer\entity + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\world\entity + + + Source Files\client + + + Source Files\client\renderer\entity + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\world\item\crafting + + + Source Files\world\level\tile + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens\crafting + + + Source Files\client\gui\screens\crafting + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files + + + Source Files\client\gui\components + + + Source Files\client + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\client + + + Source Files\client + + + Source Files\client + + + Source Files\client + + + Source Files\client\gamemode + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\client\player + + + Platform + + + Source Files\util + + + Source Files\util + + + Source Files\util + + + Source Files\world + + + Source Files\world + + + Source Files\world + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\entity\item + + + Source Files\world\entity\player + + + Source Files\world\entity\player + + + Source Files\world\entity\player + + + Source Files\world\phys + + + Source Files\world\phys + + + Source Files\world\phys + + + Source Files\world\level + + + Source Files\world\level + + + Source Files\world\level + + + Source Files\world\level + + + Source Files\world\level\chunk + + + Source Files\world\level\chunk + + + Source Files\world\level\chunk + + + Source Files\world\level\chunk + + + Source Files\world\level\chunk + + + Source Files\world\level\chunk\storage + + + Source Files\world\level\chunk\storage + + + Source Files\world\level\dimension + + + Source Files\world\level\dimension + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen + + + Source Files\world\level\levelgen\synth + + + Source Files\world\level\levelgen\synth + + + Source Files\world\level\levelgen\synth + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\material + + + Source Files\world\level\material + + + Source Files\world\level\material + + + Source Files\world\level\material + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\world\level + + + Source Files\client\renderer\culling + + + Source Files\client\renderer\culling + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\world\level + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\client\renderer + + + Source Files\client + + + Source Files\world\entity + + + Source Files\world\level\pathfinder + + + Source Files\world\level\pathfinder + + + Source Files\world\level\tile + + + Source Files\world\level + + + Source Files\client + + + Source Files\client\renderer\culling + + + Source Files\client\renderer\culling + + + Source Files\client\renderer\culling + + + Platform\input + + + Platform\input + + + Platform\input + + + Source Files\world\level + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\locale + + + Source Files\world\item + + + Source Files\world\entity\item + + + Source Files\world\level\tile + + + Source Files\world\entity\item + + + Source Files\world\level + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\client\renderer + + + Platform + + + Source Files\client\gui + + + Source Files\client\gui + + + Source Files\world\level + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Libs\raknet + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\network + + + Source Files\network + + + Source Files\client\renderer + + + Source Files\network + + + Source Files\network + + + Source Files\network + + + Source Files\client\renderer + + + Source Files\client\sound + + + Source Files\client\sound + + + Source Files\client\sound + + + Platform\audio + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\client\gui + + + Source Files\client\gui + + + Platform\audio + + + Source Files\client\renderer\entity + + + Source Files\client\renderer + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\biome + + + Source Files\world\level\levelgen\feature + + + Source Files\world\level\levelgen\feature + + + Platform + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files + + + Source Files + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\client\renderer\ptexture + + + Source Files\world\item + + + Source Files + + + Source Files\client\renderer\entity + + + Source Files\world\item + + + Source Files\world\entity\item + + + Source Files\client\renderer + + + Source Files + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Platform + + + Source Files\client\gui\screens + + + Source Files\util + + + Source Files\client\gui\screens + + + Source Files\world\level\storage + + + Source Files\world\level\storage + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\player\input + + + Source Files\client\player\input + + + Source Files\client\player\input + + + Source Files\client\gui\screens + + + Source Files + + + Source Files\client\gui\screens + + + Platform\input + + + Source Files\client\player\input\touchscreen + + + Source Files\client\player\input\touchscreen + + + Source Files\client\player\input\touchscreen + + + Source Files\client\player\input + + + Source Files\client\player\input + + + Source Files\client\player\input + + + Source Files\client\player\input + + + Source Files\client\player\input\touchscreen + + + Source Files\client\player\input + + + Source Files\client\player\input\touchscreen + + + Source Files\client\gui\screens\touch + + + Source Files\client\gui\components + + + Source Files\client\gui\screens\touch + + + Source Files\client\gui + + + Source Files\client\gui\screens\touch + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\screens + + + Source Files\client\gui\components + + + Source Files\client\gui\screens\touch + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\nbt + + + Source Files\util + + + Source Files\util + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\level + + + Source Files\client\renderer\entity + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\model\geom + + + Source Files\client\model\geom + + + Source Files\client\model\geom + + + Source Files\client\model\geom + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\entity\animal + + + Source Files\world\level\pathfinder + + + Source Files\world\level\pathfinder + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\model + + + Source Files + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\util + + + Source Files\util + + + Source Files\util + + + Source Files\util + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\client\multiplayer + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\client\renderer\entity + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\item + + + Source Files\world\entity\monster + + + Source Files\world\entity\monster + + + Source Files\world\entity\projectile + + + Source Files\client\particle + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\renderer\entity + + + Source Files\client\renderer\entity + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\client\gui\screens + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\world\entity\animal + + + Source Files\client\model + + + Source Files\client\model + + + Source Files\client\renderer\entity + + + Source Files\world\item + + + Source Files\client\gamemode + + + Source Files\client\gamemode + + + Source Files\util + + + Source Files\world\level + + + Source Files\world\entity + + + Source Files\network\packet + + + Source Files\client\gui\screens + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\util + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\client\model + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\world\entity\player + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\world\entity\ai + + + Source Files\world\entity\ai\control + + + Source Files\world\entity\ai\control + + + Source Files\world\entity\ai\control + + + Source Files\world\entity\ai\goal + + + Source Files\world\entity\ai\goal + + + Source Files\world\entity\ai\goal + + + Source Files\world\entity\ai\goal + + + Source Files\world\entity\ai\goal\target + + + Source Files\world\entity\ai\goal\target + + + Source Files\world\entity\ai\util + + + Source Files\world\entity\ai\goal\target + + + Source Files\world\entity\ai\goal + + + Source Files\world\entity\ai\goal + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\item + + + Source Files\world\item + + + Libs\raknet + + + Source Files\client\gui\components + + + Source Files\network\packet + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\client\gui\components + + + Source Files\world\item\crafting + + + Source Files\network\packet + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile\entity + + + Source Files\world\level\tile\entity + + + Source Files\world\item\crafting + + + Source Files\world\item\crafting + + + Source Files\world\level\tile + + + Source Files\client\gui\screens + + + Source Files\client\gui\components + + + Source Files\world\level + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\client\gui\screens + + + Source Files\network\packet + + + Source Files\world\inventory + + + Source Files\world\inventory + + + Source Files\client\gui\components + + + Source Files\world\level\tile\entity + + + Source Files\world\level\tile + + + Source Files\client\model + + + Source Files\client\renderer + + + Source Files\network\packet + + + Source Files\world\inventory + + + Source Files\client\gui\screens + + + Source Files\network\packet + + + Source Files\client\renderer\tileentity + + + Source Files\client\renderer\tileentity + + + Source Files\client\renderer\tileentity + + + Source Files\world\inventory + + + Source Files + + + Source Files\world\item + + + Source Files\world\entity + + + Source Files\client\renderer\entity + + + Source Files\world\item + + + Source Files\network\packet + + + Source Files\world\entity + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\client\renderer\entity + + + Source Files\world\food + + + Source Files\network\packet + + + Source Files\world\food + + + Source Files\world + + + Source Files\world + + + Source Files\client\player + + + Source Files\client\particle + + + Source Files\server + + + Source Files\server + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\world\item + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\entity\projectile + + + Source Files\world\entity\projectile + + + Source Files\world\entity\projectile + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\entity + + + Source Files\world\item + + + Source Files\client\renderer\entity + + + Source Files\network\packet + + + Source Files\world\level\tile + + + Source Files\world\entity\monster + + + Source Files\world\level\tile\entity + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\world\level\tile\entity + + + Source Files\world\item + + + Source Files\world\level\tile + + + Source Files\client\model + + + Source Files\client\renderer\tileentity + + + Source Files\network\packet + + + Source Files\client\gui\screens + + + Source Files\network\packet + + + Source Files\world\level\tile + + + Source Files\world\level\material + + + Source Files\network\packet + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\network + + + Source Files\network\command + + + Source Files\network + + + Source Files\client\gamemode\creator + + + Source Files\client\gui\components + + + Source Files\world + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens\crafting + + + Source Files\client\gui\screens\crafting + + + Source Files\world\entity + + + Source Files\client\renderer\entity + + + Source Files\client\particle + + + Source Files\client\particle + + + Source Files\world\level\tile + + + Source Files\world\item + + + Source Files\world\item\crafting + + + Source Files\world\level\tile + + + Source Files\network\packet + + + Source Files\network\packet + + + Source Files\world\level\tile + + + Source Files\world\level\tile + + + Source Files\client\gui\screens + + + Source Files\client\gui\screens\crafting + + + Source Files\client\gui\screens\crafting + + + Source Files\world\level\tile + + + Source Files\network\packet + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + Source Files\client\gui\components + + + \ No newline at end of file diff --git a/project/win32/MinecraftWin32.vcxproj.user b/project/win32/MinecraftWin32.vcxproj.user new file mode 100755 index 0000000..f5e1823 --- /dev/null +++ b/project/win32/MinecraftWin32.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/project/win32_gl/MinecraftWin32_GL.sln b/project/win32_gl/MinecraftWin32_GL.sln new file mode 100755 index 0000000..f9b310c --- /dev/null +++ b/project/win32_gl/MinecraftWin32_GL.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MinecraftWin32_GL", "MinecraftWin32_GL.vcxproj", "{7DB16490-D454-6E18-6820-3219A119CD8E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7DB16490-D454-6E18-6820-3219A119CD8E}.Debug|Win32.ActiveCfg = Debug|Win32 + {7DB16490-D454-6E18-6820-3219A119CD8E}.Debug|Win32.Build.0 = Debug|Win32 + {7DB16490-D454-6E18-6820-3219A119CD8E}.Release|Win32.ActiveCfg = Release|Win32 + {7DB16490-D454-6E18-6820-3219A119CD8E}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/project/win32_gl/MinecraftWin32_GL.vcxproj b/project/win32_gl/MinecraftWin32_GL.vcxproj new file mode 100755 index 0000000..1e8a3c7 --- /dev/null +++ b/project/win32_gl/MinecraftWin32_GL.vcxproj @@ -0,0 +1,525 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Win32Proj + {19B34E47-B11C-E628-ED97-698E93339EA3} + + + + Application + true + NotSet + v110 + + + Application + false + NotSet + v110 + + + + + + + + + + + + + true + ..\..\lib\include;$(IncludePath) + ..\..\lib\lib;$(LibraryPath) + + + true + ..\..\lib\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; + ..\..\lib\lib;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib + ExtendedCorrectnessRules.ruleset + + + + WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + ProgramDatabase + Disabled + true + false + + + MachineX86 + true + Console + ws2_32.lib;libegl.lib;glew32.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libpng.lib;%(AdditionalDependencies) + + + + + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + true + false + + + MachineX86 + true + Console + true + true + ws2_32.lib;libegl.lib;glew32.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libpng.lib;%(AdditionalDependencies) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/win32_gl/MinecraftWin32_GL.vcxproj.filters b/project/win32_gl/MinecraftWin32_GL.vcxproj.filters new file mode 100755 index 0000000..bf08185 --- /dev/null +++ b/project/win32_gl/MinecraftWin32_GL.vcxproj.filters @@ -0,0 +1,1329 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {a641bbc8-1cce-483d-b0b8-76464a379015} + + + {7703ad7e-3c90-464d-a54e-d30cb1b7daa1} + + + {70a5efe2-2f9f-40bc-8663-c2e37b5767cf} + + + {d6713e84-c5a8-4169-a161-121d4b4de306} + + + {b9684a1f-db09-43fa-83be-903dcc316369} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files\raknet + + + Source Files + + + Source Files + + + Source Files\network + + + Source Files\network + + + Source Files\network + + + Source Files\network + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\world\level\storage + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/project/win32_gl/MinecraftWin32_GL.vcxproj.user b/project/win32_gl/MinecraftWin32_GL.vcxproj.user new file mode 100755 index 0000000..695b5c7 --- /dev/null +++ b/project/win32_gl/MinecraftWin32_GL.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/App.h b/src/App.h new file mode 100755 index 0000000..3e5152e --- /dev/null +++ b/src/App.h @@ -0,0 +1,87 @@ +#ifndef APP_H__ +#define APP_H__ + +#ifdef __APPLE__ +#define NO_EGL +#endif +#ifdef STANDALONE_SERVER +#define NO_EGL +#endif + +#include "AppPlatform.h" +#ifndef NO_EGL + #include +#endif +#include "platform/log.h" + +typedef struct AppContext { +#ifndef NO_EGL + EGLDisplay display; + EGLContext context; + EGLSurface surface; +#endif + AppPlatform* platform; + bool doRender; +} AppContext; + + +class App +{ +public: + App() + : _finished(false), + _inited(false) + { + _context.platform = 0; + } + virtual ~App() {} + + void init(AppContext& c) { + _context = c; + init(); + _inited = true; + } + bool isInited() { return _inited; } + + virtual AppPlatform* platform() { return _context.platform; } + + void onGraphicsReset(AppContext& c) { + _context = c; + onGraphicsReset(); + } + + virtual void audioEngineOn () {} + virtual void audioEngineOff() {} + + virtual void destroy() {} + + virtual void loadState(void* state, int stateSize) {} + virtual bool saveState(void** state, int* stateSize) { return false; } + + void swapBuffers() { +#ifndef NO_EGL + if (_context.doRender) + eglSwapBuffers(_context.display, _context.surface); +#endif + } + + virtual void draw() {} + virtual void update() {};// = 0; + virtual void setSize(int width, int height) {} + + virtual void quit() { _finished = true; } + virtual bool wantToQuit() { return _finished; } + virtual bool handleBack(bool isDown) { return false; } + +protected: + virtual void init() {} + //virtual void onGraphicsLost() = 0; + virtual void onGraphicsReset() = 0; + +private: + bool _inited; + bool _finished; + AppContext _context; +}; + +#endif//APP_H__ diff --git a/src/AppConstants.h b/src/AppConstants.h new file mode 100755 index 0000000..3311284 --- /dev/null +++ b/src/AppConstants.h @@ -0,0 +1,10 @@ +#ifndef _MINECRAFT_APPCONSTANTS_H_ +#define _MINECRAFT_APPCONSTANTS_H_ + + +#define APP_VERSION_STRING "Demo" +#define APP_NAME "Minecraft - Pocket Edition " APP_VERSION_STRING + + + +#endif diff --git a/src/AppPlatform.h b/src/AppPlatform.h new file mode 100755 index 0000000..60d5d96 --- /dev/null +++ b/src/AppPlatform.h @@ -0,0 +1,143 @@ +#ifndef APPPLATFORM_H__ +#define APPPLATFORM_H__ + +#include +#include +#include +#include "client/renderer/TextureData.h" + +typedef std::vector StringVector; + +/* +typedef struct UserInput +{ + static const int STATUS_INVALID = -1; + static const int STATUS_NOTINITED = -2; + static const int STATUS_OK = 1; + static const int STATUS_CANCEL = 0; + + UserInput(int id) + : _id(id), + status(STATUS_NOTINITED) + {} + UserInput(int id, int status) + : _id(id), + status(status) + {} + int getId() { return _id; } + + int status; +private: + int _id; +} UserInput; + + +class UserInputStatus { + int _status; +public: + UserInputStatus(int status) + : _status(status) + {} + bool isAnswered() { return _status >= 0; } + bool isOk() { return _status == UserInput::STATUS_OK; } + bool isCancel() { return _status == UserInput::STATUS_CANCEL; } +}; +*/ + +class BinaryBlob { +public: + BinaryBlob() + : data(NULL), + size(-1) {} + + BinaryBlob(unsigned char* data, unsigned int size) + : data(data), + size(size) {} + + unsigned char* data; + int size; +}; + +class PlatformStringVars { +public: + static const int DEVICE_BUILD_MODEL = 0; +}; + +class AppPlatform +{ +public: + AppPlatform() : keyboardVisible(false) {} + virtual ~AppPlatform() {} + + virtual void saveScreenshot(const std::string& filename, int glWidth, int glHeight) {} + virtual TextureData loadTexture(const std::string& filename_, bool textureFolder) { return TextureData(); } + + virtual void playSound(const std::string& fn, float volume, float pitch) {} + + virtual void showDialog(int dialogId) {} + virtual void createUserInput() {} + + bool is_big_endian(void) { + union { + unsigned int i; + char c[4]; + } bint = {0x01020304}; + return bint.c[0] == 1; + } + + void createUserInput(int dialogId) + { + showDialog(dialogId); + createUserInput(); + } + virtual int getUserInputStatus() { return 0; } + virtual StringVector getUserInput() { return StringVector(); } + + virtual std::string getDateString(int s) { return ""; } + //virtual void createUserInputScreen(const char* types) {} + + virtual int checkLicense() { return 0; } + virtual bool hasBuyButtonWhenInvalidLicense() { return false; } + + virtual void uploadPlatformDependentData(int id, void* data) {} + virtual BinaryBlob readAssetFile(const std::string& filename) { return BinaryBlob(); } + virtual void _tick() {} + + virtual int getScreenWidth() { return 854; } + virtual int getScreenHeight() { return 480; } + virtual float getPixelsPerMillimeter() { return 10; } + + virtual bool isNetworkEnabled(bool onlyWifiAllowed) { return true; } + + virtual bool isPowerVR() { + return false; + } + virtual int getKeyFromKeyCode(int keyCode, int metaState, int deviceId) {return 0;} +#ifdef __APPLE__ + virtual bool isSuperFast() = 0; +#endif + + virtual void buyGame() {} + + virtual void finish() {} + + virtual bool supportsTouchscreen() { return false; } + + virtual void vibrate(int milliSeconds) {} + + virtual std::string getPlatformStringVar(int stringId) { + return ""; + } + + virtual void showKeyboard() { + keyboardVisible = true; + } + virtual void hideKeyboard() { + keyboardVisible = false; + } + virtual bool isKeyboardVisible() {return keyboardVisible;} +protected: + bool keyboardVisible; +}; + +#endif /*APPPLATFORM_H__*/ diff --git a/src/AppPlatform_android.h b/src/AppPlatform_android.h new file mode 100755 index 0000000..54304dd --- /dev/null +++ b/src/AppPlatform_android.h @@ -0,0 +1,674 @@ +#ifndef APPPLATFORM_ANDROID_H__ +#define APPPLATFORM_ANDROID_H__ + +#include "AppPlatform.h" +#include "client/renderer/gles.h" +#include "platform/log.h" +#include "platform/time.h" +#include +#include +#include +#include +class JVMAttacher { +public: + JVMAttacher(JavaVM* vm) + : _vm(vm), + _isAttached(false), + _env(NULL) + { + if( _vm->GetEnv((void**)&_env, JNI_VERSION_1_4 ) != JNI_OK ) { + _vm->AttachCurrentThread(&_env, NULL); + _isAttached = _env != NULL; + } + } + + ~JVMAttacher() { + forceDetach(); + } + + JNIEnv* getEnv() { + return _env; + } + + void forceDetach() { + if (!_isAttached) return; + _vm->DetachCurrentThread(); + _isAttached = false; + } + +private: + JavaVM* _vm; + JNIEnv* _env; + bool _isAttached; +}; + +class AppPlatform_android: public AppPlatform +{ + typedef AppPlatform super; +public: + AppPlatform_android() + : _vm(NULL), + _isInited(false), + + instance(0), + _activityClass(0), + + _methodSaveScreenshot(0), + _postScreenshotToFacebook(0), + _getImageData(0), + _readAssetFile(0), + _methodPlaySound(0), + _showDialog(0), + _methodTick(0), + _methodFinish(0), + + _methodUserInputInitiate(0), + _methodUserInputStatus(0), + _methodUserInputString(0), + + _methodGetDateString(0), + + _methodCheckLicense(0), + _methodHasBuyButton(0), + _methodBuyGame(0), + _methodVibrate(0), + _methodSupportsTouchscreen(0), + _methodSetIsPowerVR(0), + _methodIsNetworkEnabled(0), + + _getScreenWidth(0), + _getScreenHeight(0), + _methodGetPixelsPerMillimeter(0), + _methodGetPlatformStringVar(0), + + _classWindow(0), + _classContext(0), + _fieldINPUT_METHOD_SERVICE(0), + _classInputManager(0), + _methodGetSystemService(0), + _methodGetWindow(0), + _methodGetDecorView(0), + _methodShowSoftInput(0), + _classView(0), + _methodGetWindowToken(0), + _methodHideSoftInput(0), + + _screenWidth(854), + _screenHeight(480), + _hasSetPowerVR(false), + _nativeActivity(0), + + _methodGetKeyFromKeyCode(0) + { + } + + int getScreenWidth() { return _screenWidth; } + int getScreenHeight() { return _screenHeight; } + + // Note, this has to be called from the main thread (e.g. do it from JNI_onLoad) + // Somewhere between calling this, and calling the AppPlatform methods, + // this->instance will be assigned by its creator + int init(JavaVM* vm) { + if (_isInited) + return -1; + + JVMAttacher ta(vm); + JNIEnv* env = ta.getEnv(); + + if(!env) { + LOGI("%s - Failed to get the environment using JVMAttacher::getEnv()", __FUNCTION__); + return -2; + } + + // Get Class reference + const char* interface_path = "com/mojang/minecraftpe/MainActivity"; + jclass clazz = NULL; + if( (clazz = env->FindClass( interface_path )) == 0 ) { + return -3; + } + _activityClass = (jclass)env->NewGlobalRef(clazz); + + // Save all the method IDs + _methodSaveScreenshot = env->GetStaticMethodID( _activityClass, "saveScreenshot", "(Ljava/lang/String;II[I)V"); + _postScreenshotToFacebook = env->GetMethodID( _activityClass, "postScreenshotToFacebook", "(Ljava/lang/String;II[I)V"); + _getImageData = env->GetMethodID( _activityClass, "getImageData", "(Ljava/lang/String;)[I"); + _readAssetFile = env->GetMethodID( _activityClass, "getFileDataBytes", "(Ljava/lang/String;)[B"); + #if defined(PRE_ANDROID23) + _methodPlaySound = env->GetMethodID( _activityClass, "playSound", "(Ljava/lang/String;FF)V"); + #endif + _showDialog = env->GetMethodID( _activityClass, "displayDialog", "(I)V"); + _methodTick = env->GetMethodID( _activityClass, "tick", "()V"); + _methodFinish = env->GetMethodID( _activityClass, "quit", "()V"); + + _methodUserInputInitiate = env->GetMethodID( _activityClass, "initiateUserInput", "(I)V"); + _methodUserInputStatus = env->GetMethodID( _activityClass, "getUserInputStatus", "()I"); + _methodUserInputString = env->GetMethodID( _activityClass, "getUserInputString", "()[Ljava/lang/String;"); + + _methodGetDateString = env->GetMethodID( _activityClass, "getDateString", "(I)Ljava/lang/String;"); + + _methodCheckLicense = env->GetMethodID( _activityClass, "checkLicense", "()I"); + _methodHasBuyButton = env->GetMethodID( _activityClass, "hasBuyButtonWhenInvalidLicense", "()Z"); + _methodBuyGame = env->GetMethodID( _activityClass, "buyGame", "()V"); + + _methodVibrate = env->GetMethodID( _activityClass, "vibrate", "(I)V"); + _methodSupportsTouchscreen = env->GetMethodID( _activityClass, "supportsTouchscreen", "()Z"); + _methodSetIsPowerVR = env->GetMethodID( _activityClass, "setIsPowerVR", "(Z)V"); + _methodIsNetworkEnabled = env->GetMethodID( _activityClass, "isNetworkEnabled", "(Z)Z"); + + _methodGetPixelsPerMillimeter = env->GetMethodID( _activityClass, "getPixelsPerMillimeter", "()F"); + _methodGetPlatformStringVar = env->GetMethodID( _activityClass, "getPlatformStringVar", "(I)Ljava/lang/String;"); + + _classWindow = (jclass)env->NewGlobalRef(env->FindClass("android/view/Window")); + _classContext = (jclass)env->NewGlobalRef(env->FindClass("android/content/Context")); + _classView = (jclass)env->NewGlobalRef(env->FindClass( "android/view/View")); + _classInputManager = (jclass)env->NewGlobalRef(env->FindClass("android/view/inputmethod/InputMethodManager")); + + _fieldINPUT_METHOD_SERVICE = env->GetStaticFieldID(_classContext, "INPUT_METHOD_SERVICE", "Ljava/lang/String;"); + _methodGetSystemService = env->GetMethodID(_activityClass, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;"); + _methodGetWindow = env->GetMethodID( _activityClass, "getWindow", "()Landroid/view/Window;"); + _methodGetDecorView = env->GetMethodID(_classWindow, "getDecorView", "()Landroid/view/View;"); + _methodShowSoftInput = env->GetMethodID(_classInputManager, "showSoftInput", "(Landroid/view/View;I)Z"); + _methodGetWindowToken = env->GetMethodID(_classView, "getWindowToken", "()Landroid/os/IBinder;"); + _methodHideSoftInput = env->GetMethodID(_classInputManager, "hideSoftInputFromWindow", "(Landroid/os/IBinder;I)Z"); + + _methodGetKeyFromKeyCode = env->GetMethodID( _activityClass, "getKeyFromKeyCode", "(III)I"); + + if (env->ExceptionOccurred()) { + env->ExceptionDescribe(); + } + + // LOGI("Class: %d\n. Methods: %d,%d\n", _activityClass, + // _methodSaveScreenshot, + // _postScreenshotToFacebook); + + _vm = vm; + _isInited = true; + + return JNI_VERSION_1_4; + } + + // Stuff that should only be written once, e.g. device specs + // @note: This is called after instance is set, BUT this will + // be rewritten later on anyway + int initConsts() { + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + jmethodID fWidth = env->GetMethodID( _activityClass, "getScreenWidth", "()I"); + jmethodID fHeight = env->GetMethodID( _activityClass, "getScreenHeight", "()I"); + + _screenWidth = env->CallIntMethod(instance, fWidth); + _screenHeight = env->CallIntMethod(instance, fHeight); + } + + void tick() { + if (!_isInited) return; + if (!_methodTick) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + env->CallVoidMethod(instance, _methodTick); + } + + void showDialog(int dialogId) { + if (!_isInited) return; + if (!_showDialog) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + env->CallVoidMethod(instance, _showDialog, dialogId); + } + + void createUserInput() { + if (!_isInited) return; + if (!_methodUserInputInitiate) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + env->CallVoidMethod(instance, _methodUserInputInitiate, 1); + } + + int getUserInputStatus() { + if (!_isInited) return -2; + if (!_methodUserInputStatus) return -2; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return env->CallIntMethod(instance, _methodUserInputStatus); + } + + float getPixelsPerMillimeter() { + if (!_isInited) return 10; + if (!_methodGetPixelsPerMillimeter) return 10; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return env->CallFloatMethod(instance, _methodGetPixelsPerMillimeter); + } + + StringVector getUserInput() { + if (!_isInited) return std::vector(); + if (!_methodUserInputString) return std::vector(); + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + jobjectArray sa = (jobjectArray) env->CallObjectMethod(instance, _methodUserInputString); + jsize len = env->GetArrayLength(sa); + + StringVector out; + for (int i = 0; i < len; ++i) { + + jstring s = (jstring)env->GetObjectArrayElement(sa, i); + int length = env->GetStringLength (s); + if (length > 1023) + length = 1023; + static char buf[1024]; + + // Only supporting 7 bit chars, right now + const char* str = env->GetStringUTFChars(s, 0); + strncpy(buf, str, 1023); + buf[1023] = 0; + + out.push_back(std::string(buf)); + } + return out; + } + + void saveScreenshot(const std::string& filename, int glWidth, int glHeight) { + if (!_isInited) return; + if (!_methodSaveScreenshot) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + const int numPixels = glWidth * glHeight; + unsigned int* pixels = new unsigned int[numPixels]; + + if (!pixels) + return; + + // Create the OpenGL "screenshot" + glReadPixels(0, 0, glWidth, glHeight, GL_RGBA, GL_UNSIGNED_BYTE, pixels); + convertOpenGlToAndroidPixels(glWidth, glHeight, pixels); + + // Tell Android to save the screenshot + jintArray jPixels = env->NewIntArray(numPixels); + if (jPixels != NULL) + { + jobject gpixRef = env->NewGlobalRef(jPixels); + env->SetIntArrayRegion(jPixels, 0, numPixels, (int*)pixels); +// env->CallVoidMethod( instance, +// _postScreenshotToFacebook, +// env->NewStringUTF(filename.c_str()), +// glWidth, glHeight, jPixels); + env->CallStaticVoidMethod( _activityClass, + _methodSaveScreenshot, + env->NewStringUTF(filename.c_str()), + glWidth, glHeight, jPixels); + // Teardown + env->DeleteGlobalRef(gpixRef); + delete[] pixels; + } + } + + __inline unsigned int rgbToBgr(unsigned int p) { + return (p & 0xff00ff00) | ((p >> 16) & 0xff) | ((p << 16) & 0xff0000); + } + + void convertOpenGlToAndroidPixels(int w, int h, unsigned int* pixels) { + // Making the conversion in-place + for (int y = 0; y < h/2; ++y) + for (int x = 0; x < w; ++x) { + const int i0 = y * w + x; + const int i1 = (h - y - 1) * w + x; + const unsigned int p1 = pixels[i1]; + const unsigned int p0 = pixels[i0]; + pixels[i0] = rgbToBgr(p1); + pixels[i1] = rgbToBgr(p0); + } + // Handle the middle row, if any + if (h & 1) { + const int start = w * h/2; + const int stop = start + w; + for (int i = start; i < stop; ++i) { + const unsigned int p = pixels[i]; + pixels[i] = rgbToBgr(p); + } + } + } + + virtual void playSound(const std::string& filename, float volume, float pitch) { + if (!_isInited || !_methodPlaySound) return; + + //static Stopwatch w; + //w.start(); + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + env->CallVoidMethod(instance, _methodPlaySound, env->NewStringUTF(filename.c_str()), volume, pitch); + //w.stop(); + //w.printEvery(1, "playSound-java"); + } + + virtual void uploadPlatformDependentData(int id, void* data) { + if (!_isInited) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + if (id == 1) { + } + if (id == 2) { + } + } + + TextureData loadTexture(const std::string& filename, bool textureFolder) { + if (!_isInited) return TextureData(); + if (!_getImageData) return TextureData(); + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + jintArray arr = (jintArray)env->CallObjectMethod( + instance, _getImageData, env->NewStringUTF(filename.c_str())); + + if (!arr) + return TextureData(); + + jsize len = env->GetArrayLength(arr); + int numPixels = len-2; + + // pixels = [width, height, p_0, p_1, ..., p_numPixels-1] + int* pixels = new int[numPixels]; + jint* body = env->GetIntArrayElements(arr, 0); + + int w = body[0]; + int h = body[1]; + memcpy(pixels, &body[2], numPixels * sizeof(int)); + + // Convert pixels + for (int i = 0; i < numPixels; ++i) + pixels[i] = rgbToBgr(pixels[i]); + + //LOGI("Read-Image-Data: Decided file size to be: %d x %d (len %d)\n", w, h, len); + + env->ReleaseIntArrayElements(arr, body, 0); + // LOGI("loadtexture: 9\n"); + + // Set the result + TextureData out; + out.w = w; + out.h = h; + out.data = (unsigned char*)pixels; + out.memoryHandledExternally = false; + return out; + } + + BinaryBlob readAssetFile(const std::string& filename) { + if (!_isInited) return BinaryBlob(); + if (!_readAssetFile) return BinaryBlob(); + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + jbyteArray arr = (jbyteArray)env->CallObjectMethod( + instance, _readAssetFile, env->NewStringUTF(filename.c_str())); + + if (!arr) + return BinaryBlob(); + + jsize len = env->GetArrayLength(arr); + BinaryBlob blob(new unsigned char[len], len); + jbyte* body = env->GetByteArrayElements(arr, 0); + memcpy(blob.data, body, len); + + env->ReleaseByteArrayElements(arr, body, 0); + return blob; + } + + std::string getDateString(int s) { + if (!_isInited) return ""; + if (!_methodGetDateString) return ""; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + std::string out; + jstring dateString = (jstring)env->CallObjectMethod(instance, _methodGetDateString, s); + const char* str = env->GetStringUTFChars(dateString, NULL); + if (str) + out = str; + env->ReleaseStringUTFChars(dateString, str); + return out; + } + + std::string getPlatformStringVar(int s) { + if (!_isInited) return ""; + if (!_methodGetPlatformStringVar) return ""; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + std::string out; + jstring stringVar = (jstring)env->CallObjectMethod(instance, _methodGetPlatformStringVar, s); + const char* str = env->GetStringUTFChars(stringVar, NULL); + if (str) + out = str; + env->ReleaseStringUTFChars(stringVar, str); + return out; + } + + int checkLicense() { + if (!_isInited) return -2; + if (!_methodCheckLicense) return -2; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return env->CallIntMethod(instance, _methodCheckLicense); + } + + bool hasBuyButtonWhenInvalidLicense() { + if (!_isInited) return false; + if (!_methodHasBuyButton) return false; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return JNI_TRUE == env->CallBooleanMethod(instance, _methodHasBuyButton); + } + + void buyGame() { + if (!_isInited) return; + if (!_methodBuyGame) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + env->CallVoidMethod(instance, _methodBuyGame); + } + + virtual void finish() { + if (!_isInited) return; + if (!_methodFinish) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + env->CallVoidMethod(instance, _methodFinish); + env->DeleteGlobalRef( _activityClass ); + + env->DeleteGlobalRef( _classWindow ); + env->DeleteGlobalRef( _classContext ); + env->DeleteGlobalRef( _classView ); + env->DeleteGlobalRef( _classInputManager ); + } + + virtual bool supportsTouchscreen() { + if (!_isInited) return true; + if (!_methodSupportsTouchscreen) return true; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return env->CallBooleanMethod(instance, _methodSupportsTouchscreen); + } + + virtual void vibrate(int milliSeconds) { + if (!_isInited) return; + if (!_methodVibrate) return; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return env->CallVoidMethod(instance, _methodVibrate, milliSeconds); + } + + virtual bool isPowerVR() { + bool is = super::isPowerVR(); + + if (_methodSetIsPowerVR && _isInited && !_hasSetPowerVR ) { + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + _hasSetPowerVR = true; + env->CallVoidMethod(instance, _methodSetIsPowerVR, is); + } + return is; + } + + virtual bool isNetworkEnabled(bool onlyWifiAllowed) { + if (!_isInited) return false; + if (!_methodIsNetworkEnabled) return false; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return env->CallBooleanMethod(instance, _methodIsNetworkEnabled, onlyWifiAllowed); + } + + static __inline bool isSquare(int n) { + int L = n & 0xf; + if ((1 << L) & 0x213 == 0) return false; + + int t = (int) sqrt((double) n) + 0.5; + return t*t == n; + } + + virtual void showKeyboard() { + showKeyboard(true); + super::showKeyboard(); + } + virtual void hideKeyboard() { + showKeyboard(false); + super::hideKeyboard(); + } + virtual void showKeyboard(bool bShow) { + if (!_isInited) return; + + jint lResult = 0; + jint lFlags = 0; + + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + jobject INPUT_METHOD_SERVICE = + env->GetStaticObjectField(_classContext, + _fieldINPUT_METHOD_SERVICE); + + jobject lInputMethodManager = env->CallObjectMethod( + instance, _methodGetSystemService, + INPUT_METHOD_SERVICE); + + jobject lWindow = env->CallObjectMethod(instance, + _methodGetWindow); + + jobject lDecorView = env->CallObjectMethod(lWindow, + _methodGetDecorView); + + if (bShow) { + // Runs lInputMethodManager.showSoftInput(...). + jboolean lResult = env->CallBooleanMethod( + lInputMethodManager, _methodShowSoftInput, + lDecorView, lFlags); + } else { + // Runs lWindow.getViewToken() + jobject lBinder = env->CallObjectMethod(lDecorView, + _methodGetWindowToken); + jboolean lRes = env->CallBooleanMethod( + lInputMethodManager, _methodHideSoftInput, + lBinder, lFlags); + } + } + virtual int getKeyFromKeyCode(int keyCode, int metaState, int deviceId) { + JVMAttacher ta(_vm); + JNIEnv* env = ta.getEnv(); + + return (int) env->CallIntMethod(instance, _methodGetKeyFromKeyCode, keyCode, metaState, deviceId); + } +public: + jobject instance; + +private: + bool _isInited; + JavaVM* _vm; + + jclass _activityClass; + + jmethodID _methodSaveScreenshot; + jmethodID _postScreenshotToFacebook; + jmethodID _getImageData; + jmethodID _readAssetFile; + jmethodID _methodPlaySound; + jmethodID _showDialog; + jmethodID _methodTick; + jmethodID _methodFinish; + + jmethodID _methodUserInputInitiate; + jmethodID _methodUserInputStatus; + jmethodID _methodUserInputString; + + jmethodID _methodGetDateString; + + jmethodID _methodCheckLicense; + jmethodID _methodHasBuyButton; + jmethodID _methodBuyGame; + + jmethodID _getScreenWidth; + jmethodID _getScreenHeight; + jmethodID _methodGetPixelsPerMillimeter; + jmethodID _methodVibrate; + jmethodID _methodSupportsTouchscreen; + jmethodID _methodSetIsPowerVR; + jmethodID _methodIsNetworkEnabled; + + jmethodID _methodGetPlatformStringVar; + + jclass _classWindow; + jclass _classContext; + jfieldID _fieldINPUT_METHOD_SERVICE; + jclass _classInputManager; + jmethodID _methodGetSystemService; + jmethodID _methodGetWindow; + jmethodID _methodGetDecorView; + jmethodID _methodShowSoftInput; + jclass _classView; + jmethodID _methodGetWindowToken; + jmethodID _methodHideSoftInput; + + jmethodID _methodGetKeyFromKeyCode; + + int _screenWidth; + int _screenHeight; + bool _hasSetPowerVR; +public: + ANativeActivity* _nativeActivity; +}; + +#endif /*APPPLATFORM_ANDROID_H__*/ diff --git a/src/AppPlatform_android23.h b/src/AppPlatform_android23.h new file mode 100755 index 0000000..1e69bc7 --- /dev/null +++ b/src/AppPlatform_android23.h @@ -0,0 +1,49 @@ +#include "AppPlatform_android.h" +#include +#include + +class AppPlatform_android23 : public AppPlatform_android +{ + typedef AppPlatform_android super; +public: + AppPlatform_android23() + : _assetManager(NULL) + { + } + + // If we're using Android 2.3+, try reading assets from NDK at first. + // If that doesn't work, read through java/JNI as usual. + BinaryBlob readAssetFile(const std::string& filename) { + if (!_isInited) + return BinaryBlob(); + + if (_assetManager != NULL) { + AAsset* asset = AAssetManager_open(_assetManager, filename.c_str(), AASSET_MODE_BUFFER); + if (asset != NULL) { + const int len = AAsset_getLength(asset); + const void* buf = len > 0? AAsset_getBuffer(asset) : NULL; + + BinaryBlob blob; + if (buf != NULL) { + blob = BinaryBlob(new unsigned char[len], len); + memcpy(blob.data, buf, len); + } + AAsset_close(asset); + if (blob.data) + return blob; + } + } + return super::readAssetFile(filename); + } + + + // Another init method... added to read data from the activity, and setup constants + // @note: This is called after instance is set from the outside, BUT this + // will be rewritten later on anyway + void initWithActivity(struct ANativeActivity* activity) { + _assetManager = activity->assetManager; + } + +private: + AAssetManager* _assetManager; +}; diff --git a/src/AppPlatform_glfw.cpp b/src/AppPlatform_glfw.cpp new file mode 100755 index 0000000..01fd7b4 --- /dev/null +++ b/src/AppPlatform_glfw.cpp @@ -0,0 +1,12 @@ +#include "AppPlatform_glfw.h" + +float AppPlatform_glfw::getPixelsPerMillimeter() { + GLFWmonitor* monitor = glfwGetPrimaryMonitor(); + + int width_mm, height_mm; + glfwGetMonitorPhysicalSize(monitor, &width_mm, &height_mm); + + const GLFWvidmode* mode = glfwGetVideoMode(monitor); + + return (float)mode->width / (float)width_mm; +} \ No newline at end of file diff --git a/src/AppPlatform_glfw.h b/src/AppPlatform_glfw.h new file mode 100755 index 0000000..a9c5b3e --- /dev/null +++ b/src/AppPlatform_glfw.h @@ -0,0 +1,129 @@ +#ifndef APPPLATFORM_GLFW_H__ +#define APPPLATFORM_GLFW_H__ + +#include "AppPlatform.h" +#include "platform/log.h" +#include "client/renderer/gles.h" +#include "world/level/storage/FolderMethods.h" +#include +#include +#include +#include +#include + +static void png_funcReadFile(png_structp pngPtr, png_bytep data, png_size_t length) { + ((std::istream*)png_get_io_ptr(pngPtr))->read((char*)data, length); +} + +class AppPlatform_glfw: public AppPlatform +{ +public: + AppPlatform_glfw() + { + } + + BinaryBlob readAssetFile(const std::string& filename) { + FILE* fp = fopen(("data/" + filename).c_str(), "r"); + if (!fp) + return BinaryBlob(); + + int size = getRemainingFileSize(fp); + + BinaryBlob blob; + blob.size = size; + blob.data = new unsigned char[size]; + + fread(blob.data, 1, size, fp); + fclose(fp); + + return blob; + } + + void saveScreenshot(const std::string& filename, int glWidth, int glHeight) { + //@todo + } + + __inline unsigned int rgbToBgr(unsigned int p) { + return (p & 0xff00ff00) | ((p >> 16) & 0xff) | ((p << 16) & 0xff0000); + } + + TextureData loadTexture(const std::string& filename_, bool textureFolder) + { + TextureData out; + + std::string filename = textureFolder? "data/images/" + filename_ + : filename_; + std::ifstream source(filename.c_str(), std::ios::binary); + + if (source) { + png_structp pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!pngPtr) + return out; + + png_infop infoPtr = png_create_info_struct(pngPtr); + + if (!infoPtr) { + png_destroy_read_struct(&pngPtr, NULL, NULL); + return out; + } + + // Hack to get around the broken libpng for windows + png_set_read_fn(pngPtr,(void*)&source, png_funcReadFile); + + png_read_info(pngPtr, infoPtr); + + // Set up the texdata properties + out.w = png_get_image_width(pngPtr, infoPtr); + out.h = png_get_image_height(pngPtr, infoPtr); + + png_bytep* rowPtrs = new png_bytep[out.h]; + out.data = new unsigned char[4 * out.w * out.h]; + out.memoryHandledExternally = false; + + int rowStrideBytes = 4 * out.w; + for (int i = 0; i < out.h; i++) { + rowPtrs[i] = (png_bytep)&out.data[i*rowStrideBytes]; + } + png_read_image(pngPtr, rowPtrs); + + // Teardown and return + png_destroy_read_struct(&pngPtr, &infoPtr,(png_infopp)0); + delete[] (png_bytep)rowPtrs; + source.close(); + + return out; + } + else + { + LOGI("Couldn't find file: %s\n", filename.c_str()); + return out; + } + } + + std::string getDateString(int s) { + std::stringstream ss; + ss << s << " s (UTC)"; + return ss.str(); + } + + virtual int checkLicense() { + static int _z = 0;//20; + _z--; + if (_z < 0) return 0; + //if (_z < 0) return 107; + return -2; + } + + virtual int getScreenWidth() { return 854; }; + virtual int getScreenHeight() { return 480; }; + + virtual float getPixelsPerMillimeter(); + + virtual bool supportsTouchscreen() { return true; } + virtual bool hasBuyButtonWhenInvalidLicense() { return false; } + +private: +}; + +#endif /*APPPLATFORM_GLFW_H__*/ diff --git a/src/AppPlatform_iOS.h b/src/AppPlatform_iOS.h new file mode 100755 index 0000000..b43817e --- /dev/null +++ b/src/AppPlatform_iOS.h @@ -0,0 +1,77 @@ +#ifndef APPPLATFORM_IOS_H__ +#define APPPLATFORM_IOS_H__ + +#include "AppPlatform.h" +#include "client/renderer/gles.h" +#include "platform/log.h" +#include +#include +#include + +@class minecraftpeViewController; + +class AppPlatform_iOS: public AppPlatform +{ + typedef AppPlatform super; +public: + AppPlatform_iOS(minecraftpeViewController* vc) { + _viewController = vc; + srand(time(0)); + + LOGI("ViewController in AppPlatform: %p\n", _viewController); + } + + void setBasePath(const std::string& bp) { _basePath = bp; } + + void saveScreenshot(const std::string& filename, int glWidth, int glHeight) { + //@todo + } + + __inline unsigned int rgbToBgr(unsigned int p) { + return (p & 0xff00ff00) | ((p >> 16) & 0xff) | ((p << 16) & 0xff0000); + } + + virtual void showDialog(int dialogId); + virtual int getUserInputStatus(); + virtual StringVector getUserInput(); + + TextureData loadTexture(const std::string& filename_, bool textureFolder); + + virtual BinaryBlob readAssetFile(const std::string& filename); + + std::string getDateString(int s); + + virtual int checkLicense() { + return 0; + static int _z = 20; + _z--; + if (_z < 0) return 0; + //if (_z < 0) return 107; + return -2; + } + + virtual void buyGame(); + + virtual int getScreenWidth(); + virtual int getScreenHeight(); + virtual float getPixelsPerMillimeter(); + + virtual bool isTouchscreen(); + virtual void vibrate(int milliSeconds); + + virtual bool isNetworkEnabled(bool onlyWifiAllowed); + + virtual StringVector getOptionStrings(); + + virtual bool isPowerVR() { return false; } + virtual bool isSuperFast(); + virtual void showKeyboard(); + virtual void hideKeyboard(); + virtual void isPowerVR(); +private: + + std::string _basePath; + minecraftpeViewController* _viewController; +}; + +#endif /*APPPLATFORM_IOS_H__*/ diff --git a/src/AppPlatform_iOS.mm b/src/AppPlatform_iOS.mm new file mode 100755 index 0000000..696539c --- /dev/null +++ b/src/AppPlatform_iOS.mm @@ -0,0 +1,286 @@ +#include "AppPlatform_iOS.h" +#import +#import + +#import "../project/iosproj/minecraftpe/minecraftpeViewController.h" +#import "../project/iosproj/minecraftpe/dialogs/BaseDialogController.h" +#import "../project/iosproj/minecraftpe/PVRTexture.h" +#import "client/gui/screens/DialogDefinitions.h" + +#import "terrain_565.h" + +typedef unsigned int PVRTuint32; + +struct PVR_Texture_Header +{ + PVRTuint32 dwHeaderSize; /*!< size of the structure */ + PVRTuint32 dwHeight; /*!< height of surface to be created */ + PVRTuint32 dwWidth; /*!< width of input surface */ + PVRTuint32 dwMipMapCount; /*!< number of mip-map levels requested */ + PVRTuint32 dwpfFlags; /*!< pixel format flags */ + PVRTuint32 dwTextureDataSize; /*!< Total size in bytes */ + PVRTuint32 dwBitCount; /*!< number of bits per pixel */ + PVRTuint32 dwRBitMask; /*!< mask for red bit */ + PVRTuint32 dwGBitMask; /*!< mask for green bits */ + PVRTuint32 dwBBitMask; /*!< mask for blue bits */ + PVRTuint32 dwAlphaBitMask; /*!< mask for alpha channel */ + PVRTuint32 dwPVR; /*!< magic number identifying pvr file */ + PVRTuint32 dwNumSurfs; /*!< the number of surfaces present in the pvr */ +} ; + +void AppPlatform_iOS::showDialog(int dialogId) { + if (dialogId == DialogDefinitions::DIALOG_CREATE_NEW_WORLD) { + [_viewController showDialog_CreateWorld]; + } + if (dialogId == DialogDefinitions::DIALOG_MAINMENU_OPTIONS) { + [_viewController showDialog_MainMenuOptions]; + } + if (dialogId == DialogDefinitions::DIALOG_RENAME_MP_WORLD) { + [_viewController showDialog_RenameMPWorld]; + } + if (dialogId == DialogDefinitions::DIALOG_DEMO_FEATURE_DISABLED) { + UIAlertView *a = [[UIAlertView alloc] + initWithTitle:@"" + message:@"Feature not enabled for this demo" + delegate:nil + cancelButtonTitle:@"OK" + otherButtonTitles:nil]; + [a show]; + [a release]; + } +} + +TextureData AppPlatform_iOS::loadTexture(const std::string& filename_, bool textureFolder) +{ + TextureData out; + out.memoryHandledExternally = false; + + std::string filename = filename_; + size_t dotp = filename.rfind("."); + size_t slashp = filename.rfind("/"); + if (dotp != std::string::npos || slashp != std::string::npos) { + if (slashp == std::string::npos) slashp = -1; + filename = filename.substr(slashp+1, dotp-(slashp+1)); + } + +// if (filename == "terrain" || filename_[dotp+2] == 'v') { // @fix +// //NSString *path = [[NSBundle mainBundle] pathForResource:[[NSString alloc] initWithUTF8String:filename.c_str()] ofType:@"pvr4"]; +// +// //FILE* fp = fopen([path UTF8String], "rb"); +// int fp = 1; +// if (fp) { +// PVR_Texture_Header header; +// header = *((PVR_Texture_Header*)terrain_565); +// //fread(&header, 1, sizeof(PVR_Texture_Header), fp); +// int numBytes = header.dwTextureDataSize; +// //out.data = new unsigned char[numBytes]; +// out.data = (unsigned char*)&terrain_565[header.dwHeaderSize]; +// out.memoryHandledExternally = true; +// out.numBytes = numBytes; +// out.transparent = (header.dwAlphaBitMask != 0); +// //fread(out.data, 1, numBytes, fp); +// out.w = header.dwWidth; +// out.h = header.dwHeight; +// LOGI("Size of file: %d (%d, %d) - %x,%x,%x,%x\n", out.numBytes, out.w, out.h, +// header.dwRBitMask, +// header.dwGBitMask, +// header.dwBBitMask, +// header.dwAlphaBitMask); +// out.format = TEXF_UNCOMPRESSED_565;// TEXF_COMPRESSED_PVRTC_5551; +// //fclose(fp); +// } +// +//// PVRTexture* tex = [PVRTexture pvrTextureWithContentsOfFile:path]; +//// //NSLog(@"path: %@, tex: %p, name: %d\n", path, tex, [tex name]); +//// out.identifier = [tex name]; +//// out.w = [tex width]; +//// out.h = [tex height]; +//// GLuint texId; +//// //PVRTTextureLoadFromPVR([path UTF8String], &texId); +//// out.identifier = texId; +// return out; +// } + + NSString *p = [[NSString alloc] initWithUTF8String:filename.c_str()]; + NSString *path = [[NSBundle mainBundle] pathForResource:p ofType:@"png"]; + [p release]; + NSData *texData = [[NSData alloc] initWithContentsOfFile:path]; + UIImage *image = [[UIImage alloc] initWithData:texData]; + + if (image != nil) { + // Get Image size + out.w = CGImageGetWidth(image.CGImage); + out.h = CGImageGetHeight(image.CGImage); + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); + // Allocate memory for image + out.data = new unsigned char[4 * out.w * out.h]; + CGContextRef imgcontext = CGBitmapContextCreate( out.data, out.w, out.h, 8, 4 * out.w, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big ); + CGColorSpaceRelease( colorSpace ); + CGContextClearRect( imgcontext, CGRectMake( 0, 0, out.w, out.h ) ); + CGContextTranslateCTM( imgcontext, 0, 0);//height - height ); + CGContextDrawImage( imgcontext, CGRectMake( 0, 0, out.w, out.h ), image.CGImage ); + CGContextRelease(imgcontext); + } else { + LOGI("Couldn't find file: %s\n", filename.c_str()); + + if ("this is idiotic but temporary") { + out.w = 16; + out.h = 16; + bool isTerrain = (filename.find("terrain") != std::string::npos); + int numPixels = out.w * out.h; + out.data = new unsigned char[4 * numPixels]; + if (isTerrain) { + for (int i = 0; i < numPixels; ++i) { + unsigned int color = 0xff000000 | ((rand() & 0xff) << 16) | (rand() & 0xffff); + *((int*)(&out.data[4*i])) = color; + } + } else { + unsigned int color = 0xff000000 | ((rand() & 0xff) << 16) | (rand() & 0xffff); + for (int i = 0; i < numPixels; ++i) { + *((int*)(&out.data[4*i])) = color; + } + } + } + } + [image release]; + [texData release]; + + return out; +} + +BinaryBlob AppPlatform_iOS::readAssetFile(const std::string& filename_) { + std::string filename = filename_; + size_t dotp = filename.rfind("."); + size_t slashp = filename.rfind("/"); + std::string ext; + if (dotp != std::string::npos || slashp != std::string::npos) { + // Get file extension + if (dotp != std::string::npos) { + ext = filename.substr(dotp+1); + } + if (slashp == std::string::npos) slashp = -1; + filename = filename.substr(slashp+1, dotp-(slashp+1)); + } + NSString *rext = [NSString stringWithUTF8String:ext.c_str()]; + NSString *p = [[NSString alloc] initWithUTF8String:filename.c_str()]; + NSString *path = [[NSBundle mainBundle] pathForResource:p ofType:rext]; + [p release]; + NSData *data = [NSData dataWithContentsOfFile:path]; + if (!data) + return BinaryBlob(); + + unsigned int numBytes = [data length]; + unsigned char* bytes = new unsigned char[numBytes]; + memcpy(bytes, [data bytes], numBytes); + return BinaryBlob(bytes, numBytes); +} + +void AppPlatform_iOS::buyGame() { + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=479516143&mt=8"]]; +} + +std::string AppPlatform_iOS::getDateString(int s) { + + NSDate* date = [NSDate dateWithTimeIntervalSince1970:s]; + + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + //dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm"; + + [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; + [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; + + //NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; + //[dateFormatter setTimeZone:gmt]; + NSString *timeStamp = [dateFormatter stringFromDate:date]; + [dateFormatter release]; + + return std::string( [timeStamp UTF8String] ); +} + +int AppPlatform_iOS::getScreenWidth() { return 480; } +int AppPlatform_iOS::getScreenHeight() { return 320; } + +float AppPlatform_iOS::getPixelsPerMillimeter() { + // @note: @retina has a much higher density, however, + // we use 480x320 for the OpenGL context size + BOOL isIpad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); + if (isIpad) { + return 5.1968503937007879f * _viewController->viewScale; + } else { + return 6.4173228346456694f * _viewController->viewScale; + } +} + +bool AppPlatform_iOS::isTouchscreen() { return true; } + +void AppPlatform_iOS::vibrate(int ms) { + // Note: In iOS 4, there's no way to set length of the vibration, so it's useless + //AudioServicesPlaySystemSound (kSystemSoundID_Vibrate); +} + +int AppPlatform_iOS::getUserInputStatus() { + return [_viewController getUserInputStatus]; +} + +StringVector AppPlatform_iOS::getUserInput() { + return [_viewController getUserInput]; +} + +StringVector AppPlatform_iOS::getOptionStrings() { + //@options + StringVector options; + NSDictionary* d = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; + + for( NSString *key in d ) + { + if ([key hasPrefix:@"mp_"] + || [key hasPrefix:@"gfx_"] + || [key hasPrefix:@"ctrl_"] + || [key hasPrefix:@"feedback_"] + || [key hasPrefix:@"game_"] ) { + id value = [d objectForKey: key]; + options.push_back([key UTF8String]); + options.push_back([[value description] UTF8String]); + //LOGI("Added strings: %s\n", options[options.size()-1].c_str()); + } + } + return options; +} + +bool AppPlatform_iOS::isSuperFast() { + const char* s = (const char*)glGetString(GL_RENDERER); + if (!s) return false; + + return (strstr(s, "SGX") != NULL) && (strstr(s, "543") != NULL); +} + +bool AppPlatform_iOS::isNetworkEnabled(bool onlyWifiAllowed) { + return true; + /* + Reachability *reachability = [Reachability reachabilityForInternetConnection]; + [reachability startNotifier]; + + NetworkStatus status = [reachability currentReachabilityStatus]; + bool success = (status == ReachableViaWiFiNetwork); + if (!onlyWifiAllowed && !success) + success = (status == ReachableViaWWAN); + + [reachability stopNotifier]; + return success; + */ +} + +void AppPlatform_iOS::showKeyboard() { + [_viewController showKeyboard]; + super::showKeyboard(); +} + +void AppPlatform_iOS::hideKeyboard() { + [_viewController hideKeyboard]; + super::hideKeyboard(); +} +void AppPlatform_iOS::isPowerVR() { + const char* s = (const char*)glGetString(GL_RENDERER); + if (!s) return false; + return strstr(s, "SGX") != NULL; +} \ No newline at end of file diff --git a/src/AppPlatform_win32.cpp b/src/AppPlatform_win32.cpp new file mode 100755 index 0000000..13df325 --- /dev/null +++ b/src/AppPlatform_win32.cpp @@ -0,0 +1,17 @@ +#include "AppPlatform_win32.h" +#include "util/Mth.h" + +int AppPlatform_win32::getScreenWidth() { return 854; } +int AppPlatform_win32::getScreenHeight() { return 480; } + +float AppPlatform_win32::getPixelsPerMillimeter() { + // assuming 24" @ 1920x1200 + const int w = 1920; + const int h = 1200; + const float pixels = Mth::sqrt(w*w + h*h); + const float mm = 24 * 25.4f; + return pixels / mm; +} + +bool AppPlatform_win32::supportsTouchscreen() { return true; } +bool AppPlatform_win32::hasBuyButtonWhenInvalidLicense() { return true; } diff --git a/src/AppPlatform_win32.h b/src/AppPlatform_win32.h new file mode 100755 index 0000000..8faca4a --- /dev/null +++ b/src/AppPlatform_win32.h @@ -0,0 +1,128 @@ +#ifndef APPPLATFORM_WIN32_H__ +#define APPPLATFORM_WIN32_H__ + +#include "AppPlatform.h" +#include "platform/log.h" +#include "client/renderer/gles.h" +#include "world/level/storage/FolderMethods.h" +#include +#include +#include +#include + +static void png_funcReadFile(png_structp pngPtr, png_bytep data, png_size_t length) { + ((std::istream*)png_get_io_ptr(pngPtr))->read((char*)data, length); +} + +class AppPlatform_win32: public AppPlatform +{ +public: + AppPlatform_win32() + { + } + + BinaryBlob readAssetFile(const std::string& filename) { + FILE* fp = fopen(("data/" + filename).c_str(), "r"); + if (!fp) + return BinaryBlob(); + + int size = getRemainingFileSize(fp); + + BinaryBlob blob; + blob.size = size; + blob.data = new unsigned char[size]; + + fread(blob.data, 1, size, fp); + fclose(fp); + + return blob; + } + + void saveScreenshot(const std::string& filename, int glWidth, int glHeight) { + //@todo + } + + __inline unsigned int rgbToBgr(unsigned int p) { + return (p & 0xff00ff00) | ((p >> 16) & 0xff) | ((p << 16) & 0xff0000); + } + + TextureData loadTexture(const std::string& filename_, bool textureFolder) + { + TextureData out; + + std::string filename = textureFolder? "data/images/" + filename_ + : filename_; + std::ifstream source(filename.c_str(), std::ios::binary); + + if (source) { + png_structp pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!pngPtr) + return out; + + png_infop infoPtr = png_create_info_struct(pngPtr); + + if (!infoPtr) { + png_destroy_read_struct(&pngPtr, NULL, NULL); + return out; + } + + // Hack to get around the broken libpng for windows + png_set_read_fn(pngPtr,(void*)&source, png_funcReadFile); + + png_read_info(pngPtr, infoPtr); + + // Set up the texdata properties + out.w = png_get_image_width(pngPtr, infoPtr); + out.h = png_get_image_height(pngPtr, infoPtr); + + png_bytep* rowPtrs = new png_bytep[out.h]; + out.data = new unsigned char[4 * out.w * out.h]; + out.memoryHandledExternally = false; + + int rowStrideBytes = 4 * out.w; + for (int i = 0; i < out.h; i++) { + rowPtrs[i] = (png_bytep)&out.data[i*rowStrideBytes]; + } + png_read_image(pngPtr, rowPtrs); + + // Teardown and return + png_destroy_read_struct(&pngPtr, &infoPtr,(png_infopp)0); + delete[] (png_bytep)rowPtrs; + source.close(); + + return out; + } + else + { + LOGI("Couldn't find file: %s\n", filename.c_str()); + return out; + } + } + + std::string getDateString(int s) { + std::stringstream ss; + ss << s << " s (UTC)"; + return ss.str(); + } + + virtual int checkLicense() { + static int _z = 0;//20; + _z--; + if (_z < 0) return 0; + //if (_z < 0) return 107; + return -2; + } + + virtual int getScreenWidth(); + virtual int getScreenHeight(); + + virtual float getPixelsPerMillimeter(); + + virtual bool supportsTouchscreen(); + virtual bool hasBuyButtonWhenInvalidLicense(); + +private: +}; + +#endif /*APPPLATFORM_WIN32_H__*/ diff --git a/src/EglConfigPrinter.h b/src/EglConfigPrinter.h new file mode 100755 index 0000000..dbf7ead --- /dev/null +++ b/src/EglConfigPrinter.h @@ -0,0 +1,125 @@ +#ifndef EGLCONFIGPRINTER_H__ +#define EGLCONFIGPRINTER_H__ + +#include +#include +#include + +class EGLConfigPrinter +{ +public: + static void printAllConfigs(EGLDisplay display) { + + const EGLint attribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_BLUE_SIZE, 5, + EGL_GREEN_SIZE, 6, + EGL_RED_SIZE, 5, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, + EGL_NONE + }; + + int num_config[1]; + eglChooseConfig(display, attribs, NULL, 0, num_config); + + int numConfigs = num_config[0]; + LOGI("Found %d configs\n", numConfigs); + + EGLConfig* configs = new EGLConfig[numConfigs]; + eglChooseConfig(display, attribs, configs, numConfigs, num_config); + LOGI("Found %d configs (was %d))\n", num_config[0], numConfigs); + + for (int i = 0; i < numConfigs; ++i) { + printConfig(display, configs[i]); + } + + delete[] configs; + } + + static void printConfig(EGLDisplay display, EGLConfig config) { + int attributes[] = { + EGL_BUFFER_SIZE, + EGL_ALPHA_SIZE, + EGL_BLUE_SIZE, + EGL_GREEN_SIZE, + EGL_RED_SIZE, + EGL_DEPTH_SIZE, + EGL_STENCIL_SIZE, + EGL_CONFIG_CAVEAT, + EGL_CONFIG_ID, + EGL_LEVEL, + EGL_MAX_PBUFFER_HEIGHT, + EGL_MAX_PBUFFER_PIXELS, + EGL_MAX_PBUFFER_WIDTH, + EGL_NATIVE_RENDERABLE, + EGL_NATIVE_VISUAL_ID, + EGL_NATIVE_VISUAL_TYPE, + 0x3030, // EGL10.EGL_PRESERVED_RESOURCES, + EGL_SAMPLES, + EGL_SAMPLE_BUFFERS, + EGL_SURFACE_TYPE, + EGL_TRANSPARENT_TYPE, + EGL_TRANSPARENT_RED_VALUE, + EGL_TRANSPARENT_GREEN_VALUE, + EGL_TRANSPARENT_BLUE_VALUE, + 0x3039, // EGL10.EGL_BIND_TO_TEXTURE_RGB, + 0x303A, // EGL10.EGL_BIND_TO_TEXTURE_RGBA, + 0x303B, // EGL10.EGL_MIN_SWAP_INTERVAL, + 0x303C, // EGL10.EGL_MAX_SWAP_INTERVAL, + EGL_LUMINANCE_SIZE, + EGL_ALPHA_MASK_SIZE, + EGL_COLOR_BUFFER_TYPE, + EGL_RENDERABLE_TYPE, + 0x3042 // EGL10.EGL_CONFORMANT + }; + std::string names[] = { + "EGL_BUFFER_SIZE", + "EGL_ALPHA_SIZE", + "EGL_BLUE_SIZE", + "EGL_GREEN_SIZE", + "EGL_RED_SIZE", + "EGL_DEPTH_SIZE", + "EGL_STENCIL_SIZE", + "EGL_CONFIG_CAVEAT", + "EGL_CONFIG_ID", + "EGL_LEVEL", + "EGL_MAX_PBUFFER_HEIGHT", + "EGL_MAX_PBUFFER_PIXELS", + "EGL_MAX_PBUFFER_WIDTH", + "EGL_NATIVE_RENDERABLE", + "EGL_NATIVE_VISUAL_ID", + "EGL_NATIVE_VISUAL_TYPE", + "EGL_PRESERVED_RESOURCES", + "EGL_SAMPLES", + "EGL_SAMPLE_BUFFERS", + "EGL_SURFACE_TYPE", + "EGL_TRANSPARENT_TYPE", + "EGL_TRANSPARENT_RED_VALUE", + "EGL_TRANSPARENT_GREEN_VALUE", + "EGL_TRANSPARENT_BLUE_VALUE", + "EGL_BIND_TO_TEXTURE_RGB", + "EGL_BIND_TO_TEXTURE_RGBA", + "EGL_MIN_SWAP_INTERVAL", + "EGL_MAX_SWAP_INTERVAL", + "EGL_LUMINANCE_SIZE", + "EGL_ALPHA_MASK_SIZE", + "EGL_COLOR_BUFFER_TYPE", + "EGL_RENDERABLE_TYPE", + "EGL_CONFORMANT" + }; + int value[1]; + LOGI("\nPRINTCONFIG:"); + for (int i = 0; i < 33; i++) { + int attribute = attributes[i]; + std::string name = names[i]; + if ( eglGetConfigAttrib(display, config, attribute, value)) { + LOGI(" %s: %d\n", name.c_str(), value[0] ); + } else { + // Log.w(TAG, String.format(" %s: failed\n", name)); + while (eglGetError() != EGL_SUCCESS); + } + } + } +}; + +#endif /*EGLCONFIGPRINTER_H__*/ \ No newline at end of file diff --git a/src/ErrorCodes.h b/src/ErrorCodes.h new file mode 100755 index 0000000..0820847 --- /dev/null +++ b/src/ErrorCodes.h @@ -0,0 +1,13 @@ +#ifndef ERRORCODES_H__ +#define ERRORCODES_H__ + +namespace ErrorCodes { + +enum Enum { + Unknown, + ContainerRefStillExistsAfterDestruction +}; + +} + +#endif /*ERRORCODES_H__*/ diff --git a/src/LicenseCodes.h b/src/LicenseCodes.h new file mode 100755 index 0000000..f62f42b --- /dev/null +++ b/src/LicenseCodes.h @@ -0,0 +1,40 @@ +#ifndef LICENSECODES_H__ +#define LICENSECODES_H__ + +class LicenseCodes +{ +public: + // Something's not ready, call again later + static const int WAIT_PLATFORM_NOT_READY = -2; + static const int WAIT_SERVER_NOT_READY = -1; + + // License is ok + static const int LICENSE_OK = 0; + static const int LICENSE_TRIAL_OK = 1; + + // License is not working in one way or another + static const int LICENSE_VALIDATION_FAILED = 50; + static const int ITEM_NOT_FOUND = 51; + static const int LICENSE_NOT_FOUND = 52; + static const int ERROR_CONTENT_HANDLER = 100; + static const int ERROR_ILLEGAL_ARGUMENT = 101; + static const int ERROR_SECURITY = 102; + static const int ERROR_INPUT_OUTPUT = 103; + static const int ERROR_ILLEGAL_STATE = 104; + static const int ERROR_NULL_POINTER = 105; + static const int ERROR_GENERAL = 106; + static const int ERROR_UNABLE_TO_CONNECT_TO_CDS = 107; + + // The call went wrong so we didn't get a license value at all + static const int ERROR_EXCEPTION = 200; + + static bool isOk(int i) { + return (i == 0) || (i == 1); + } + static bool isReady(int i) { + return (i >= 0); + } +}; + +#endif /*LICENSECODES_H__ */ + diff --git a/src/NinecraftApp.cpp b/src/NinecraftApp.cpp new file mode 100755 index 0000000..cdc24d8 --- /dev/null +++ b/src/NinecraftApp.cpp @@ -0,0 +1,419 @@ +#include "NinecraftApp.h" +//#include + +#ifdef RPI +//#define NO_STORAGE +#endif + +#include + +#include "platform/input/Mouse.h" +#include "platform/input/Multitouch.h" + +#include "world/item/Item.h" +#include "world/level/Level.h" +#include "world/level/biome/Biome.h" +#include "world/level/material/Material.h" +#include "world/entity/MobCategory.h" +//#include "world/level/storage/FolderMethods.h" +#ifndef STANDALONE_SERVER +#include "client/gui/screens/StartMenuScreen.h" +#endif +#include "client/player/LocalPlayer.h" +#ifndef STANDALONE_SERVER +#include "client/renderer/gles.h" +#include "client/renderer/Chunk.h" +#include "client/renderer/LevelRenderer.h" +#include "client/renderer/Tesselator.h" +#endif +// sorry for raknet dependency, but I'm too lazy to find another getTime method +#include "raknet/GetTime.h" +#include "network/RakNetInstance.h" +#include "network/ClientSideNetworkHandler.h" +#include "client/gui/screens/ProgressScreen.h" + +//#include "world/entity/player/Inventory2.h" + +#if !defined(DEMO_MODE) && !defined(APPLE_DEMO_PROMOTION) && !defined(NO_STORAGE) + #include "world/level/storage/ExternalFileLevelStorageSource.h" +#else + #include "world/level/storage/MemoryLevelStorageSource.h" +#endif +#ifndef STANDALONE_SERVER +#include "client/renderer/Textures.h" +#include "client/renderer/entity/ItemRenderer.h" +#endif +#include "world/item/crafting/Recipes.h" +#include "world/level/tile/entity/TileEntity.h" +#ifndef STANDALONE_SERVER +#include "client/renderer/EntityTileRenderer.h" +#endif + +bool NinecraftApp::_hasInitedStatics = false; + +NinecraftApp::NinecraftApp() +: _verbose(true), + _lastTickMs(0), + _frames(0) +{ + #if defined(ANDROID) || defined(__APPLE__) || defined(RPI) + signal(SIGPIPE, SIG_IGN); + #endif +} + +NinecraftApp::~NinecraftApp() +{ + teardown(); +} + +void NinecraftApp::init() +{ + // Global initialization goes here + Mth::initMth(); + + //#ifdef DEMO_MODE + //writeDemoFile(); + //#endif + + // If we're running Android, only initialize + // the first time class is instanced + #ifdef ANDROID + if (!_hasInitedStatics) { + _hasInitedStatics = true; + #endif + Material::initMaterials(); + MobCategory::initMobCategories(); + Tile::initTiles(); + Item::initItems(); + Biome::initBiomes(); + TileEntity::initTileEntities(); + + #ifdef ANDROID + } + #endif + +#ifndef STANDALONE_SERVER + initGLStates(); + Tesselator::instance.init(); + I18n::loadLanguage(platform(), "en_US"); +#endif + + Minecraft::init(); + +#if !defined(DEMO_MODE) && !defined(APPLE_DEMO_PROMOTION) && !defined(NO_STORAGE) + storageSource = new ExternalFileLevelStorageSource(externalStoragePath, externalCacheStoragePath); +#else + storageSource = new MemoryLevelStorageSource(); +#endif + _running = false; + +#ifndef STANDALONE_SERVER + LOGI("This: %p\n", this); + screenChooser.setScreen(SCREEN_STARTMENU); +#else + user->name = "Server"; + hostMultiplayer(); +#endif +} + +void NinecraftApp::teardown() +{ + // Note: Don't tear down statics if we run on Android + // (we might change this in the future) +#ifndef ANDROID + Biome::teardownBiomes(); + Item ::teardownItems(); + Tile ::teardownTiles(); + Material::teardownMaterials(); + Recipes ::teardownRecipes(); + TileEntity::teardownTileEntities(); +#endif +#ifdef WIN32 + ItemRenderer::teardown_static(); + if (EntityTileRenderer::instance != NULL) { + delete EntityTileRenderer::instance; + EntityTileRenderer::instance = NULL; + } + TileEntityRenderDispatcher::destroy(); +#endif +} + +void NinecraftApp::update() +{ + ++_frames; + + // Generate Multitouch active pointer list + Multitouch::commit(); + +#ifndef ANDROID_PUBLISH + //testCreationAndDestruction(); + //testJoiningAndDestruction(); +#endif /*ANDROID_PUBLISH*/ + + Minecraft::update(); + + swapBuffers(); + Mouse::reset2(); + + // Restart the server if (our modded) RakNet reports an error + if (level && raknetInstance->isProbablyBroken() && raknetInstance->isServer()) { + restartServer(); + } + +#ifndef WIN32 + updateStats(); +#endif +} + +void NinecraftApp::updateStats() +{ +#ifndef STANDALONE_SERVER + if (Options::debugGl) + LOGI("--------------------------------------------\n"); + + //* + int now = getTimeMs(); + //int since = now - _lastTickMs; + + if (now >= lastTime + 1000) + { + if (player) { + LOGI("%d fps \t%3d chunk updates. (%.2f, %.2f, %.2f)\n", + _frames, Chunk::updates, player->x, player->y, player->z); + Chunk::resetUpdates(); + + //static int _n = 0; + //if (++_n % 5 == -1) { // @note: -1 + // static char filename[256]; + // sprintf(filename, "%s/games/com.mojang/img_%.4d.jpg", externalStoragePath.c_str(), _n/5); + // _context.platform->saveScreenshot(filename, width, height); + //} + + LOGI("%s", levelRenderer->gatherStats1().c_str()); + //printf("Texture swaps (this frame): %d\n", Textures::textureChanges); + } else { + LOGI("%d fps\n", _frames); + } + + //const int* pointerIds; + //int pointerCount = Multitouch::getActivePointerIds(&pointerIds); + //if (pointerCount) { + // std::string s = "Pointers ("; + // s += (char)(48 + pointerCount); + // s += ": "; + // for (int i = 0; i < pointerCount; ++i) { + // s += (char)(48 + pointerIds[i]); + // s += ", "; + // } + // LOGI("%s\n", s.c_str()); + //} + + lastTime = now; + _frames = 0; +#ifdef GLDEBUG + while (1) { + int error = glGetError(); + if (error == GL_NO_ERROR) break; + + LOGI("#################### GL-ERROR: %d\t#####################\n", error); + LOGI("#################### GL-ERROR: %d\t#####################\n", error); + LOGI("#################### GL-ERROR: %d\t#####################\n", error); + } +#endif + } + Textures::textureChanges = 0; + /**/ +#endif /* STANDALONE_SERVER */ +} + +void NinecraftApp::initGLStates() +{ +#ifndef STANDALONE_SERVER + //glShadeModel2(GL_SMOOTH); + //glClearDepthf(1.0f); + glEnable2(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); + glDepthRangef(0, 1); + glEnable2(GL_ALPHA_TEST); + glAlphaFunc(GL_GREATER, 0.1f); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + + glEnable2(GL_TEXTURE_2D); + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); + + // Both updates isPowerVR flag in java and returns if the graphics chip is PowerVR SGX or not + _powerVr = platform()->isPowerVR(); +#ifdef __APPLE__ + _isSuperFast = platform()->isSuperFast(); +#endif + //glLineWidth(4); +#endif /* STANDALONE_SERVER */ +} + +void NinecraftApp::restartServer() { + if (!level) return; + + for (int i = level->players.size()-1; i >= 0; --i) { + Player* p = level->players[i]; + if (p != player) + level->removeEntity(p); + } + + raknetInstance->resetIsBroken(); +#ifndef STANDALONE_SERVER + gui.addMessage("This server has restarted!"); +#endif + hostMultiplayer(); + if (netCallback) netCallback->levelGenerated(level); +} + +bool NinecraftApp::handleBack(bool isDown) +{ + if (isGeneratingLevel) + { + return true; + } + if (level) + { + if (!isDown) + { + if (screen) + { + if (!screen->handleBackEvent(isDown)) + { + if (player->containerMenu) player->closeContainer(); + setScreen(NULL); + } + return true; + } else { + pauseGame(true); + } + //leaveGame(); + return false; + } + return true; + } + else if (screen) + { + return screen->handleBackEvent(isDown); + } + return false; +} + +void NinecraftApp::onGraphicsReset() +{ +#ifndef STANDALONE_SERVER + initGLStates(); + Tesselator::instance.init(); + + Minecraft::onGraphicsReset(); +#endif +} + +#ifndef ANDROID_PUBLISH + +static int _state = -1; +static int _stateTicksLeft = 0; +void NinecraftApp::testCreationAndDestruction() +{ + if (_state == -1) { + _stateTicksLeft = 100; + _state = 0; + } + if (_state == 0) { + if (--_stateTicksLeft <= 0) + _state = 1; + } + else if (_state == 1) { + getLevelSource()->deleteLevel("perf"); + int seed = getEpochTimeS(); + LOGI(">seed %d\n", seed); + selectLevel("perf", "perf", LevelSettings(seed, GameType::Creative)); + hostMultiplayer(); +#ifndef STANDALONE_SERVER + setScreen(new ProgressScreen()); +#endif + _state = 2; + _stateTicksLeft = 1000;//25000;//00; + } + else if (_state == 2) { + if (isLevelGenerated()) { + if (--_stateTicksLeft <= 0) { + _state = 3; + } + } + } else if (_state == 3) { + leaveGame(); + _state = 1; + } +} + + +void NinecraftApp::testJoiningAndDestruction() +{ + if (_state == -1) { + //LightUpdate sz[2] = { LightUpdate(LightLayer::Block, 0, 0, 0, 1, 1, 1), + // LightUpdate(LightLayer::Sky, 0, 0, 0, 1, 1, 1) }; + //LOGI("size of lightupdate: %lu == %d\n", sizeof(LightUpdate), (const char*)&sz[1] - (const char*)&sz[0]); + _stateTicksLeft = 100; + _state = 0; + } + if (_state == 0) { + if (--_stateTicksLeft <= 0) { + raknetInstance->clearServerList(); + locateMultiplayer(); + _state = 1; + } + } + else if (_state == 1) { + if (!raknetInstance->getServerList().empty()) { + PingedCompatibleServer s = raknetInstance->getServerList().at(0); + if (s.name.GetLength() > 0) { + joinMultiplayer(s); +#ifndef STANDALONE_SERVER + setScreen(new ProgressScreen()); +#endif + _state = 2; + _stateTicksLeft = 80;//1000; + } + } + } + else if (_state == 2) { + if (isLevelGenerated()) { + if (--_stateTicksLeft <= 0) { + _state = 3; + } + } + } else if (_state == 3) { + leaveGame(); + _stateTicksLeft = 50; + _state = 0; + } +} + +#endif /*ANDROID_PUBLISH*/ + +/* +void NinecraftApp::writeDemoFile() { + std::string path = externalStoragePath + "/games"; + + if (createFolderIfNotExists(path.c_str())) { + path += "/com.mojang"; + if (createFolderIfNotExists(path.c_str())) { + path += "/minecraftpe"; + if (createFolderIfNotExists(path.c_str())) { + path += "/played_demo"; + FILE* fp = fopen(path.c_str(), "w"); + if (fp) fclose(fp); + }}} +} + +bool NinecraftApp::hasPlayedDemo() { + std::string filename = externalStoragePath + "/games/com.mojang/minecraftpe/played_demo"; + FILE* fp = fopen(filename.c_str(), "r"); + if (!fp) return false; + fclose(fp); + return true; +} +*/ diff --git a/src/NinecraftApp.h b/src/NinecraftApp.h new file mode 100755 index 0000000..1c90bb7 --- /dev/null +++ b/src/NinecraftApp.h @@ -0,0 +1,52 @@ +#ifndef NINECRAFTAPP_H__ +#define NINECRAFTAPP_H__ + +#include "world/Pos.h" +#include "App.h" +#include "client/Minecraft.h" +#include "world/level/storage/MemoryLevelStorage.h" +#include + + +class Level; +class LocalPlayer; +class ExternalFileLevelStorageSource; + +class NinecraftApp: public Minecraft +{ +public: + NinecraftApp(); + ~NinecraftApp(); + + void init(); + void teardown(); + + void update(); + + virtual bool handleBack(bool isDown); + +protected: + void onGraphicsReset(); + +private: + void initGLStates(); + void restartServer(); + + void updateStats(); + + //void writeDemoFile(); + //bool hasPlayedDemo(); + +#ifndef ANDROID_PUBLISH + void testCreationAndDestruction(); + void testJoiningAndDestruction(); +#endif /*ANDROID_PUBLISH*/ + + bool _verbose; + int _frames; + int _lastTickMs; + + static bool _hasInitedStatics; +}; + +#endif//NINECRAFTAPP_H__ diff --git a/src/Performance.cpp b/src/Performance.cpp new file mode 100755 index 0000000..82c1343 --- /dev/null +++ b/src/Performance.cpp @@ -0,0 +1,4 @@ +#include "Performance.h" + +/*static*/ +StopwatchHandler Performance::watches; diff --git a/src/Performance.h b/src/Performance.h new file mode 100755 index 0000000..c30d0d5 --- /dev/null +++ b/src/Performance.h @@ -0,0 +1,12 @@ +#ifndef PERFORMANCE_H__ +#define PERFORMANCE_H__ + +#include "platform/time.h" + +class Performance +{ +public: + static StopwatchHandler watches; +}; + +#endif /*PERFORMANCE_H__*/ diff --git a/src/SharedConstants.cpp b/src/SharedConstants.cpp new file mode 100755 index 0000000..676cc0b --- /dev/null +++ b/src/SharedConstants.cpp @@ -0,0 +1,10 @@ +#include "SharedConstants.h" + +namespace Common { + +std::string getGameVersionString(const std::string& versionSuffix /* = "" */) +{ + return std::string("v0.6.1") + versionSuffix + " alpha"; +} + +}; diff --git a/src/SharedConstants.h b/src/SharedConstants.h new file mode 100755 index 0000000..f97ea36 --- /dev/null +++ b/src/SharedConstants.h @@ -0,0 +1,34 @@ +#ifndef NET_MINECRAFT_SharedConstants_H__ +#define NET_MINECRAFT_SharedConstants_H__ + +#include + +enum LevelGeneratorVersion +{ + LGV_ORIGINAL = 0, +}; + +namespace Common { + std::string getGameVersionString(const std::string& versionSuffix = ""); +} + +namespace SharedConstants +{ + // 0.5.0 uses NPv8 + // 0.6.0 uses NPv9 + const int NetworkProtocolVersion = 9; + const int NetworkProtocolLowestSupportedVersion = 9; + const int GameProtocolVersion = 1; + const int GameProtocolLowestSupportedVersion = 1; + + const int StorageVersion = 3; + + const int MaxChatLength = 100; + + const int TicksPerSecond = 20; + + const int GeneratorVersion = (int)LGV_ORIGINAL; + //int FULLBRIGHT_LIGHTVALUE = 15 << 20 | 15 << 4; +} + +#endif /*NET_MINECRAFT_SharedConstants_H__*/ diff --git a/src/client/IConfigListener.cpp b/src/client/IConfigListener.cpp new file mode 100755 index 0000000..2c312e7 --- /dev/null +++ b/src/client/IConfigListener.cpp @@ -0,0 +1,16 @@ +#include "IConfigListener.h" +#include "Minecraft.h" +#ifndef STANDALONE_SERVER +#include "gui/Gui.h" +#endif /* STANDALONE_SERVER */ +Config createConfig(Minecraft* mc) { + Config c; + #ifndef STANDALONE_SERVER + c.setScreenSize(mc->width, mc->height, Gui::GuiScale); + #endif + c.pixelCalc = mc->pixelCalc; + c.pixelCalcUi = mc->pixelCalcUi; + c.minecraft = mc; + c.options = &mc->options; + return c; +} diff --git a/src/client/IConfigListener.h b/src/client/IConfigListener.h new file mode 100755 index 0000000..6e96a2b --- /dev/null +++ b/src/client/IConfigListener.h @@ -0,0 +1,48 @@ +#ifndef CONFIGLISTENER_H__ +#define CONFIGLISTENER_H__ + +#include "PixelCalc.h" +class Minecraft; +class Options; + +class Config { +public: + // Screen dimensions and world-to-screen conversion + void setScreenSize(int width, int height, float scale) { + this->width = width; + this->height = height; + this->guiScale = scale; + this->invGuiScale = 1.0f / scale; + this->guiWidth = (int)(width * invGuiScale); + this->guiHeight = (int)(height * invGuiScale); + } + + int width; + int height; + + float guiScale; + float invGuiScale; + int guiWidth; + int guiHeight; + + PixelCalc pixelCalc; + PixelCalc pixelCalcUi; + + Minecraft* minecraft; + Options* options; +}; + +Config createConfig(Minecraft* mc); + +// Interface for Configuration-Changed listener +// This can mean (for instance); +// - Screen has changed dimensions, or rotation if rotations are enabled +// - New input device or control mechanism +class IConfigListener +{ +public: + virtual ~IConfigListener() {} + virtual void onConfigChanged(const Config& config) = 0; +}; + +#endif /*CONFIGLISTENER_H__*/ diff --git a/src/client/KeyMapping.h b/src/client/KeyMapping.h new file mode 100755 index 0000000..06740c8 --- /dev/null +++ b/src/client/KeyMapping.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT__KeyMapping_H__ +#define NET_MINECRAFT_CLIENT__KeyMapping_H__ + +//package net.minecraft.client; +#include + +class KeyMapping +{ +public: + std::string name; + int key; + + KeyMapping() {} + + KeyMapping(const std::string& name_, int key_) + : name(name_), + key(key_) + {} +}; + +#endif /*NET_MINECRAFT_CLIENT__KeyMapping_H__*/ diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp new file mode 100755 index 0000000..44b15ce --- /dev/null +++ b/src/client/Minecraft.cpp @@ -0,0 +1,1553 @@ +#include "Minecraft.h" + +#if defined(APPLE_DEMO_PROMOTION) + #define NO_NETWORK +#endif + +#if defined(RPI) + #define CREATORMODE +#endif + +#include "../network/RakNetInstance.h" +#include "../network/ClientSideNetworkHandler.h" +#include "../network/ServerSideNetworkHandler.h" +//#include "../network/Packet.h" +#include "../world/entity/player/Inventory.h" +#include "../world/level/chunk/ChunkCache.h" +#include "../world/level/tile/Tile.h" +#include "../world/level/storage/LevelStorageSource.h" +#include "../world/level/storage/LevelStorage.h" +#include "player/input/KeyboardInput.h" +#ifndef STANDALONE_SERVER +#include "player/input/touchscreen/TouchInputHolder.h" +#endif +#include "player/LocalPlayer.h" +#include "gamemode/CreativeMode.h" +#include "gamemode/SurvivalMode.h" +#include "player/LocalPlayer.h" +#ifndef STANDALONE_SERVER +#include "particle/ParticleEngine.h" +#include "gui/Screen.h" +#include "gui/Font.h" +#include "gui/screens/RenameMPLevelScreen.h" +#include "sound/SoundEngine.h" +#endif +#include "../platform/CThread.h" +#include "../platform/input/Mouse.h" +#include "../AppPlatform.h" +#include "../Performance.h" +#include "../LicenseCodes.h" +#include "../util/PerfTimer.h" +#include "../util/PerfRenderer.h" +#include "player/input/MouseBuildInput.h" + +#include "../world/Facing.h" + +#include "../network/packet/PlaceBlockPacket.h" + +#include "player/input/IInputHolder.h" +#ifndef STANDALONE_SERVER +#include "player/input/touchscreen/TouchscreenInput.h" + +#include "player/input/ControllerTurnInput.h" +#include "player/input/XperiaPlayInput.h" + +#endif + +#include "player/input/MouseTurnInput.h" +#include "../world/entity/MobFactory.h" +#include "../world/level/MobSpawner.h" +#include "../util/Mth.h" +#include "../network/packet/InteractPacket.h" +#ifndef STANDALONE_SERVER +#include "gui/screens/PrerenderTilesScreen.h" +#include "renderer/Textures.h" +#include "gui/screens/DeathScreen.h" +#endif + +#include "../network/packet/RespawnPacket.h" +#include "IConfigListener.h" +#include "../world/entity/MobCategory.h" +#ifndef STANDALONE_SERVER +#include "gui/screens/FurnaceScreen.h" +#endif +#include "../world/Difficulty.h" +#include "../server/ServerLevel.h" +#ifdef CREATORMODE +#include "../server/CreatorLevel.h" +#endif +#include "../network/packet/AdventureSettingsPacket.h" +#include "../network/packet/SetSpawnPositionPacket.h" +#include "../network/command/CommandServer.h" +#include "gamemode/CreatorMode.h" +#ifndef STANDALONE_SERVER +#include "gui/screens/ArmorScreen.h" +#endif +#include "../world/level/levelgen/synth/ImprovedNoise.h" +#ifndef STANDALONE_SERVER +#include "renderer/tileentity/TileEntityRenderDispatcher.h" +#endif + +#ifndef STANDALONE_SERVER +#include "renderer/ptexture/DynamicTexture.h" +#include "renderer/GameRenderer.h" +#include "renderer/ItemInHandRenderer.h" +#include "renderer/LevelRenderer.h" +#include "renderer/entity/EntityRenderDispatcher.h" +#include "gui/Screen.h" +#include "gui/Font.h" +#include "gui/screens/RenameMPLevelScreen.h" +#include "sound/SoundEngine.h" +#endif + +static void checkGlError(const char* tag) { +#ifdef GLDEBUG + while (1) { + const int errCode = glGetError(); + if (errCode == GL_NO_ERROR) break; + + LOGE("################\nOpenGL-error @ %s : #%d\n", tag, errCode); + } +#endif /*GLDEBUG*/ +} + +/*static*/ +const char* Minecraft::progressMessages[] = { + "Locating server", + "Building terrain", + "Preparing", + "Saving chunks" +}; + +int Minecraft::customDebugId = Minecraft::CDI_NONE; + +#if defined(_MSC_VER) + #pragma warning( disable : 4355 ) // 'this' pointer in initialization list which is perfectly legal +#endif + +bool Minecraft::useAmbientOcclusion = false; + +Minecraft::Minecraft() +: user(NULL), + level(NULL), + player(NULL), + cameraTargetPlayer(NULL), + levelRenderer(NULL), + gameRenderer(NULL), +#ifndef STANDALONE_SERVER + particleEngine(NULL), + _perfRenderer(NULL), +#endif + _commandServer(NULL), +#ifndef STANDALONE_SERVER + textures(NULL), +#endif + lastTickTime(-1), + lastTime(0), + ticksSinceLastUpdate(0), + gameMode(NULL), + mouseGrabbed(true), + missTime(0), + pause(false), + _running(false), + timer(20), +#ifndef STANDALONE_SERVER + gui(this), +#endif + netCallback(NULL), +#ifndef STANDALONE_SERVER + screen(NULL), + font(NULL), +#endif + screenMutex(false), +#ifndef STANDALONE_SERVER + scheduledScreen(NULL), + hasScheduledScreen(false), + soundEngine(NULL), +#endif + ticks(0), + isGeneratingLevel(false), + _hasSignaledGeneratingLevelFinished(true), + generateLevelThread(NULL), + progressStagePercentage(0), + progressStageStatusId(0), + isLookingForMultiplayer(false), + _licenseId(LicenseCodes::WAIT_PLATFORM_NOT_READY), + inputHolder(0), + _supportsNonTouchscreen(false), +#ifndef STANDALONE_SERVER + screenChooser(this), +#endif + width(1), height(1), + //_respawnPlayerTicks(-1), +#ifdef __APPLE__ + _isSuperFast(false), +#endif + _powerVr(false), + commandPort(4711), + reserved_d1(0),reserved_d2(0), + reserved_f1(0),reserved_f2(0) +{ +//#ifdef ANDROID + +#if defined(NO_NETWORK) + raknetInstance = new IRakNetInstance(); +#else + raknetInstance = new RakNetInstance(); +#endif +#ifndef STANDALONE_SERVER + soundEngine = new SoundEngine(20.0f); + soundEngine->init(this, &options); +#endif + //setupPieces(); +} + +Minecraft::~Minecraft() +{ + delete netCallback; + delete raknetInstance; +#ifndef STANDALONE_SERVER + delete levelRenderer; + delete gameRenderer; + delete particleEngine; + + delete soundEngine; +#endif + delete gameMode; +#ifndef STANDALONE_SERVER + delete font; + delete textures; + + if (screen != NULL) { + delete screen; + screen = NULL; + } +#endif + if (level != NULL) { + level->saveGame(); + if (level->getChunkSource()) + level->getChunkSource()->saveAll(true); + delete level->getLevelStorage(); + delete level; + level = NULL; + } + + //delete player; + delete user; + delete inputHolder; + + delete storageSource; + delete _perfRenderer; + delete _commandServer; + + MobFactory::clearStaticTestMobs(); +#ifndef STANDALONE_SERVER + EntityRenderDispatcher::destroy(); +#endif +} + +// Only called by server +void Minecraft::selectLevel( const std::string& levelId, const std::string& levelName, const LevelSettings& settings ) +{ +#if defined(CREATORMODE) + level = new CreatorLevel( +#else + level = new ServerLevel( +#endif + storageSource->selectLevel(levelId, false), + levelName, + settings, + SharedConstants::GeneratorVersion); + + // note: settings is useless beyond this point, since it's + // either copied to LevelData (or LevelData read from file) + setLevel(level, "Generating level"); + setIsCreativeMode(level->getLevelData()->getGameType() == GameType::Creative); + _running = true; +} + +void Minecraft::setLevel(Level* level, const std::string& message /* ="" */, LocalPlayer* forceInsertPlayer /* = NULL */) { + cameraTargetPlayer = NULL; + LOGI("Seed is %ld\n", level->getSeed()); + + if (level != NULL) { + level->raknetInstance = raknetInstance; + gameMode->initLevel(level); + + if (!player && forceInsertPlayer) + { + player = forceInsertPlayer; + player->resetPos(false); + //level->addEntity(forceInsertPlayer); + } + else if (player != NULL) { + player->resetPos(false); + if (level != NULL) { + level->addEntity(player); + } + } + this->level = level; + _hasSignaledGeneratingLevelFinished = false; +#ifdef STANDALONE_SERVER + const bool threadedLevelCreation = false; +#else + const bool threadedLevelCreation = true; +#endif + + if (threadedLevelCreation) { + // Threaded + // "Lock" + isGeneratingLevel = true; + generateLevelThread = new CThread(Minecraft::prepareLevel_tspawn, this); + } else { + // Non-threaded + generateLevel("Currently not used", level); + } + } else { + player = NULL; + } + + this->lastTickTime = 0; + this->_running = true; +} + +void Minecraft::leaveGame(bool renameLevel /*=false*/) +{ + if (isGeneratingLevel || !_hasSignaledGeneratingLevelFinished) + return; + + isGeneratingLevel = false; + bool saveLevel = level && (!level->isClientSide || renameLevel); + + raknetInstance->disconnect(); + if (saveLevel) { + // If server or wanting to save level as client, save all unsaved chunks! + level->getChunkSource()->saveAll(true); + } + + LOGI("Clearing levels\n"); + + cameraTargetPlayer = NULL; +#ifndef STANDALONE_SERVER + levelRenderer->setLevel(NULL); + particleEngine->setLevel(NULL); +#endif + LOGI("Erasing callback\n"); + delete netCallback; + netCallback = NULL; + + LOGI("Erasing level\n"); + if (level != NULL) { + delete level->getLevelStorage(); + delete level; + level = NULL; + } + //delete player; + player = NULL; + cameraTargetPlayer = NULL; + + _running = false; +#ifndef STANDALONE_SERVER + if (renameLevel) { + setScreen(new RenameMPLevelScreen(LevelStorageSource::TempLevelId)); + } + else + screenChooser.setScreen(SCREEN_STARTMENU); +#endif +} + +void Minecraft::prepareLevel(const std::string& title) { + LOGI("status: 1\n"); + progressStageStatusId = 1; + + Stopwatch A, B, C, D; + A.start(); + + Stopwatch L; + + // Dont update lights if we load the level (ok, actually just with leveldata version=1.+(?)) + if (!level->isNew()) + level->setUpdateLights(false); + + int Max = CHUNK_CACHE_WIDTH * CHUNK_CACHE_WIDTH; + int pp = 0; + for (int x = 8; x < (CHUNK_CACHE_WIDTH * CHUNK_WIDTH); x += CHUNK_WIDTH) { + for (int z = 8; z < (CHUNK_CACHE_WIDTH * CHUNK_WIDTH); z += CHUNK_WIDTH) { + progressStagePercentage = 100 * pp++ / Max; + //printf("level generation progress %d\n", progressStagePercentage); + B.start(); + level->getTile(x, 64, z); + B.stop(); + L.start(); + if (level->isNew()) + while (level->updateLights()) + ; + L.stop(); + } + } + A.stop(); + level->setUpdateLights(true); + + C.start(); + for (int x = 0; x < CHUNK_CACHE_WIDTH; x++) + { + for (int z = 0; z < CHUNK_CACHE_WIDTH; z++) + { + LevelChunk* chunk = level->getChunk(x, z); + if (chunk && !chunk->createdFromSave) + { + chunk->unsaved = false; + chunk->clearUpdateMap(); + } + } + } + C.stop(); + + LOGI("status: 3\n"); + progressStageStatusId = 3; + if (level->isNew()) { + level->setInitialSpawn(); // @note: should obviously be called from Level itself + level->saveLevelData(); + level->getChunkSource()->saveAll(false); + level->saveGame(); + } else { + level->saveLevelData(); + level->loadEntities(); + } + + progressStagePercentage = -1; + progressStageStatusId = 2; + LOGI("status: 2\n"); + + D.start(); + level->prepare(); + D.stop(); + + A.print("Generate level: "); + L.print(" - light: "); + B.print(" - getTl: "); + C.print(" - clear: "); + D.print(" - prepr: "); + progressStageStatusId = 0; +} + +void Minecraft::update() { + //LOGI("Enter Update\n"); + + if (Options::debugGl) + LOGI(">>>>>>>>>>\n"); + + TIMER_PUSH("root"); + + //if (level) { + // LOGI("numplayers: %d\n", level->players.size()); + // for (int i = 0; i < level->players.size(); ++i) { + // Player* p = level->players[i]; + // bool inEnt = std::find(level->entities.begin(), level->entities.end(), p) != level->entities.end(); + // LOGI(" %p, %d, %d - in? %d\n", p, p->entityId, p->owner.ToUint32(p->owner), inEnt); + // } + //} + + if (pause && level != NULL) { + float lastA = timer.a; + timer.advanceTime(); + timer.a = lastA; + } else { + timer.advanceTime(); + } + + if (raknetInstance) { + raknetInstance->runEvents(netCallback); + } + + TIMER_PUSH("tick"); + int toTick = timer.ticks; + for (int i = 0; i < toTick; ++i, ++ticks) + tick(i, toTick-1); + + TIMER_POP_PUSH("updatelights"); + if (level && !isGeneratingLevel) { + level->updateLights(); + } + TIMER_POP(); + + #ifndef STANDALONE_SERVER + if (gameMode != NULL) gameMode->render(timer.a); + TIMER_PUSH("sound"); + soundEngine->update(player, timer.a); + TIMER_POP_PUSH("render"); + gameRenderer->render(timer.a); + TIMER_POP(); + #else + CThread::sleep(1); + #endif +#ifndef STANDALONE_SERVER + Multitouch::resetThisUpdate(); +#endif + TIMER_POP(); +#ifndef STANDALONE_SERVER + checkGlError("Update finished"); + + if (options.renderDebug) { + if (!PerfTimer::enabled) { + PerfTimer::reset(); + PerfTimer::enabled = true; + } + + //TIMER_PUSH("debugfps"); + _perfRenderer->renderFpsMeter(1); + checkGlError("render debug"); + //TIMER_POP(); + } else { + PerfTimer::enabled = false; + } +#endif + //LOGI("Exit Update\n"); +} + +void Minecraft::tick(int nTick, int maxTick) { + if (missTime > 0) missTime--; +#ifndef STANDALONE_SERVER + if (!screen && player) { + if (player->health <= 0) { + setScreen(new DeathScreen()); + } + } +#endif + TIMER_PUSH("gameMode"); + if (level && !pause) { + gameMode->tick(); + } + + TIMER_POP_PUSH("commandServer"); + if (level && _commandServer) { + _commandServer->tick(); + } + + TIMER_POP_PUSH("input"); + tickInput(); +#ifndef STANDALONE_SERVER + TIMER_POP_PUSH("gui"); + gui.tick(); +#endif + // + // Ongoing level generation in a (perhaps) different thread. When it's + // ready, _levelGenerated() is called once and any threads are deleted. + // + if (isGeneratingLevel) { + return; + } else if (!_hasSignaledGeneratingLevelFinished) { + if (generateLevelThread) { + delete generateLevelThread; + generateLevelThread = NULL; + } + _levelGenerated(); + } + + // + // Normal game loop, run before or efter level generation + // + if (level != NULL) + { + if (!pause) { +#ifndef STANDALONE_SERVER + TIMER_POP_PUSH("gameRenderer"); + gameRenderer->tick(nTick, maxTick); + + TIMER_POP_PUSH("levelRenderer"); + levelRenderer->tick(); +#endif + level->difficulty = options.difficulty; + if (level->isClientSide) level->difficulty = Difficulty::EASY; + + TIMER_POP_PUSH("level"); + level->tickEntities(); + level->tick(); +#ifndef STANDALONE_SERVER + TIMER_POP_PUSH("animateTick"); + if (player) { + level->animateTick(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + } +#endif + } + } +#ifndef STANDALONE_SERVER + textures->loadAndBindTexture("terrain.png"); + if (!pause && !(screen && !screen->renderGameBehind())) { + #if !defined(RPI) + #ifdef __APPLE__ + if (isSuperFast()) + #endif + { + if (nTick == maxTick) { + TIMER_POP_PUSH("textures"); + textures->tick(true); + } + } + #endif + } + TIMER_POP_PUSH("particles"); + particleEngine->tick(); + if (screen) { + screenMutex = true; + screen->tick(); + screenMutex = false; + } + + // @note: fix to keep "isPressed" and "isReleased" as long as necessary. + // Most likely keyboard and mouse could/should be reset here as well. + Multitouch::reset(); +#endif + TIMER_POP(); +} + +class InputRAII { +public: + ~InputRAII() { +#ifndef STANDALONE_SERVER + Mouse::reset(); + Keyboard::reset(); +#endif + } +}; + +void Minecraft::tickInput() { +#ifndef STANDALONE_SERVER + InputRAII raiiInput; + + if (screen && !screen->passEvents) { + screenMutex = true; + screen->updateEvents(); + //screen->updateSetScreen(); + screenMutex = false; + if (hasScheduledScreen) { + setScreen(scheduledScreen); + scheduledScreen = NULL; + hasScheduledScreen = false; + } + return; + } + + if (!player) { + return; + } + +#ifdef RPI + bool mouseDiggable = true; + bool allowGuiClicks = !mouseGrabbed; +#else + bool mouseDiggable = !gui.isInside(Mouse::getX(), Mouse::getY()); + bool allowGuiClicks = true; +#endif + + TIMER_PUSH("mouse"); + while (Mouse::next()) { + //if (Mouse::getButtonState(MouseAction::ACTION_LEFT)) + // LOGI("mouse-down-at: %d, %d\n", Mouse::getX(), Mouse::getY()); + int passedTime = getTimeMs() - lastTickTime; + if (passedTime > 200) continue; // @note: As long Mouse::clear CLEARS the whole buffer, it's safe to break here + // But since it might be rewritten anyway (and hopefully there aren't a lot of messages, we just continue. + + const MouseAction& e = Mouse::getEvent(); + +#ifdef RPI // If clicked when not having focus, get focus @keyboard + if (!mouseGrabbed) { + if (!screen && e.data == MouseAction::DATA_DOWN) { + grabMouse(); + } + } +#endif + + if (allowGuiClicks && e.action == MouseAction::ACTION_LEFT && e.data == MouseAction::DATA_DOWN) { + gui.handleClick(MouseAction::ACTION_LEFT, Mouse::getX(), Mouse::getY()); + } + + if (e.action == MouseAction::ACTION_WHEEL) { + Inventory* v = player->inventory; + int numSlots = gui.getNumSlots() - 1; + int slot = (v->selected - e.dy + numSlots) % numSlots; + v->selectSlot(slot); + } + /* + if (mouseDiggable && options.useMouseForDigging) { + if (Mouse::getEventButton() == MouseAction::ACTION_LEFT && Mouse::getEventButtonState()) { + handleMouseClick(MouseAction::ACTION_LEFT); + lastClickTick = ticks; + } + if (Mouse::getEventButton() == MouseAction::ACTION_RIGHT && Mouse::getEventButtonState()) { + handleMouseClick(MouseAction::ACTION_RIGHT); + lastClickTick = ticks; + } + } + */ + } + + TIMER_POP_PUSH("keyboard"); + while (Keyboard::next()) { + int key = Keyboard::getEventKey(); + bool isPressed = (Keyboard::getEventKeyState() == KeyboardAction::KEYDOWN); + player->setKey(key, isPressed); + + if (isPressed) { + gui.handleKeyPressed(key); + + #if defined(WIN32) || defined(RPI)//|| defined(_DEBUG) || defined(DEBUG) + if (key >= '0' && key <= '9') { + int digit = key - '0'; + int slot = digit - 1; + + if (slot >= 0 && slot < gui.getNumSlots()-1) + player->inventory->selectSlot(slot); + + #if defined(WIN32) + if (digit >= 1 && GetAsyncKeyState(VK_CONTROL) < 0) { + // Set adventure settings here! + AdventureSettingsPacket p(level->adventureSettings); + p.toggle((AdventureSettingsPacket::Flags)(1 << slot)); + p.fillIn(level->adventureSettings); + raknetInstance->send(p); + } + if (digit == 0) { + Pos pos((int)player->x, (int)player->y-1, (int)player->z); + SetSpawnPositionPacket p(pos); + raknetInstance->send(p); + } + #endif + } + #endif + #if defined(RPI) + if (key == Keyboard::KEY_E) { + screenChooser.setScreen(SCREEN_BLOCKSELECTION); + } + if (!screen && key == Keyboard::KEY_O || key == 250) { + releaseMouse(); + } + #endif + #if defined(WIN32) + if (key == Keyboard::KEY_F) { + options.isFlying = !options.isFlying; + player->noPhysics = options.isFlying; + } + + if (key == Keyboard::KEY_T) { + options.thirdPersonView = !options.thirdPersonView; + /* + ImprovedNoise noise; + for (int i = 0; i < 16; ++i) + printf("%d\t%f\n", i, noise.grad2(i, 3, 8)); + */ + } + + if (key == Keyboard::KEY_O) { + useAmbientOcclusion = !useAmbientOcclusion; + options.ambientOcclusion = useAmbientOcclusion; + levelRenderer->allChanged(); + } + + if (key == Keyboard::KEY_L) + options.viewDistance = (options.viewDistance + 1) % 4; + + if (key == Keyboard::KEY_U) { + onGraphicsReset(); + player->heal(100); + } + + if (key == Keyboard::KEY_B || key == 108) // Toggle the game mode + setIsCreativeMode(!isCreativeMode()); + + if (key == Keyboard::KEY_P) // Step forward in time + level->setTime( level->getTime() + 1000); + + if (key == Keyboard::KEY_G) { + setScreen(new ArmorScreen()); + /* + std::vector& boxs = level->getCubes(NULL, AABB(128.1f, 73, 128.1f, 128.9f, 74.9f, 128.9f)); + LOGI("boxes: %d\n", (int)boxs.size()); + */ + } + + if (key == Keyboard::KEY_Y) { + textures->reloadAll(); + player->hurtTo(2); + } + if (key == Keyboard::KEY_Z || key == 108) { + for (int i = 0; i < 1; ++i) { + Mob* mob = NULL; + int forceId = 0;//MobTypes::Sheep; + + int types[] = { + MobTypes::Sheep, + MobTypes::Pig, + MobTypes::Chicken, + MobTypes::Cow, + }; + + int mobType = (forceId > 0)? forceId : types[Mth::random(sizeof(types) / sizeof(int))]; + mob = MobFactory::CreateMob(mobType, level); + + //((Animal*)mob)->setAge(-1000); + float dx = 4 - 8 * Mth::random() + 4 * Mth::sin(Mth::DEGRAD * player->yRot); + float dz = 4 - 8 * Mth::random() + 4 * Mth::cos(Mth::DEGRAD * player->yRot); + if (mob && !MobSpawner::addMob(level, mob, player->x + dx, player->y, player->z + dz, Mth::random()*360, 0, true)) + delete mob; + } + } + + if (key == Keyboard::KEY_X) { + const EntityList& entities = level->getAllEntities(); + for (int i = entities.size()-1; i >= 0; --i) { + Entity* e = entities[i]; + if (!e->isPlayer()) + level->removeEntity(e); + } + } + + if (key == Keyboard::KEY_C /*|| key == 4*/) { + player->inventory->clearInventoryWithDefault(); + // @todo: Add saving here for benchmarking + } + if (key == Keyboard::KEY_H) { + setScreen( new PrerenderTilesScreen() ); + } + + if (key == Keyboard::KEY_O) { + for (int i = Inventory::MAX_SELECTION_SIZE; i < player->inventory->getContainerSize(); ++i) + if (player->inventory->getItem(i)) + player->inventory->dropSlot(i, false); + } + if (key == Keyboard::KEY_F3) { + options.renderDebug = !options.renderDebug; + } + if (key == Keyboard::KEY_M) { + options.difficulty = (options.difficulty == Difficulty::PEACEFUL)? + Difficulty::NORMAL : Difficulty::PEACEFUL; + //setIsCreativeMode( !isCreativeMode() ); + } + + if (options.renderDebug) { + if (key >= '0' && key <= '9') { + _perfRenderer->debugFpsMeterKeyPress(key - '0'); + } + } + #endif + + #if !defined(RPI) && !defined(PLATFORM_GLFW) + if (key == 82) + pauseGame(false); + #else + if (key == Keyboard::KEY_ESCAPE) + pauseGame(false); + #endif + + #ifndef OPENGL_ES + if (key == Keyboard::KEY_P) { + static bool isWireFrame = false; + isWireFrame = !isWireFrame; + glPolygonMode(GL_FRONT, isWireFrame? GL_LINE : GL_FILL); + //glPolygonMode(GL_BACK, isWireFrame? GL_LINE : GL_FILL); + } + #endif + } + #ifdef WIN32 + if (key == Keyboard::KEY_M) { + for (int i = 0; i < 5 * SharedConstants::TicksPerSecond; ++i) + level->tick(); + } + #endif + + + //if (!isPressed) LOGI("Key released: %d\n", key); + + if (!options.useMouseForDigging) { + int passedTime = getTimeMs() - lastTickTime; + if (passedTime > 200) continue; + + // Destroy and attack is on same button + if (key == options.keyDestroy.key && isPressed) { + BuildActionIntention bai(BuildActionIntention::BAI_REMOVE | BuildActionIntention::BAI_ATTACK); + handleBuildAction(&bai); + } + else // Build and use/interact is on same button + if (key == options.keyUse.key && isPressed) { + BuildActionIntention bai(BuildActionIntention::BAI_BUILD | BuildActionIntention::BAI_INTERACT); + handleBuildAction(&bai); + } + } + } + + TIMER_POP_PUSH("tickbuild"); + BuildActionIntention bai; + // @note: This might be a problem. This method is polling based here, but + // event based when using mouse (or keys..), and in java. Not quite + // sure just yet what way to go. + bool buildHandled = inputHolder->getBuildInput()->tickBuild(player, &bai); + if (buildHandled) { + if (!bai.isRemoveContinue()) + handleBuildAction(&bai); + } + + bool isTryingToDestroyBlock = (options.useMouseForDigging + ? (Mouse::isButtonDown(MouseAction::ACTION_LEFT) && mouseDiggable) + : Keyboard::isKeyDown(options.keyDestroy.key)) + || (buildHandled && bai.isRemove()); + + TIMER_POP_PUSH("handlemouse"); +#if defined(RPI) || defined(PLATFORM_GLFW) + handleMouseDown(MouseAction::ACTION_LEFT, isTryingToDestroyBlock); + handleMouseClick(buildHandled && bai.isInteract() + || options.useMouseForDigging && Mouse::isButtonDown(MouseAction::ACTION_RIGHT)); +#else + handleMouseDown(MouseAction::ACTION_LEFT, isTryingToDestroyBlock || (buildHandled && bai.isInteract())); +#endif + + lastTickTime = getTimeMs(); + + // we have (hopefully) handled the keyboard & mouse queue and it + // can now be emptied. If wanted, the reset could be changed to: + // index -= numRead; // then this code doesn't have to be placed here + // + it prepares for tick not handling all or any events. + // update: RAII'ing instead, see above + //Keyboard::reset(); + //Mouse::reset(); + + TIMER_POP(); +#endif +} + +void Minecraft::handleMouseDown(int button, bool down) { +#ifndef STANDALONE_SERVER +#ifndef RPI + if(player->isUsingItem()) { + if(!down && !Keyboard::isKeyDown(options.keyUse.key)) { + gameMode->releaseUsingItem(player); + } + return; + } +#endif + if(player->isSleeping()) { + return; + } + if (button == MouseAction::ACTION_LEFT && missTime > 0) return; + if (down && hitResult.type == TILE && button == MouseAction::ACTION_LEFT && !hitResult.indirectHit) { + int x = hitResult.x; + int y = hitResult.y; + int z = hitResult.z; + gameMode->continueDestroyBlock(x, y, z, hitResult.f); + particleEngine->crack(x, y, z, hitResult.f); + player->swing(); + } else { + gameMode->stopDestroyBlock(); + } +#endif +} + +void Minecraft::handleMouseClick(int button) { +// BuildActionIntention bai( +// (button == MouseAction::ACTION_LEFT)? +// BuildActionIntention::BAI_REMOVE +// : BuildActionIntention::BAI_BUILD); +// +// handleBuildAction(&bai); +} + +void Minecraft::handleBuildAction(BuildActionIntention* action) { +#ifndef STANDALONE_SERVER + if (action->isRemove()) { + if (missTime > 0) return; + player->swing(); + } + if(player->isUsingItem()) + return; + bool mayUse = true; + + if (!hitResult.isHit()) { + if (action->isRemove() && !gameMode->isCreativeType()) { + missTime = 10; + } + } else if (hitResult.type == ENTITY) { + if (action->isAttack()) { + player->swing(); + //LOGI("attacking!\n"); + InteractPacket packet(InteractPacket::Attack, player->entityId, hitResult.entity->entityId); + raknetInstance->send(packet); + gameMode->attack(player, hitResult.entity); + } else if (action->isInteract()) { + if (hitResult.entity->interactPreventDefault()) + mayUse = false; + //LOGI("interacting!\n"); + InteractPacket packet(InteractPacket::Interact, player->entityId, hitResult.entity->entityId); + raknetInstance->send(packet); + gameMode->interact(player, hitResult.entity); + } + } else if (hitResult.type == TILE) { + int x = hitResult.x; + int y = hitResult.y; + int z = hitResult.z; + int face = hitResult.f; + + int oldTileId = level->getTile(x, y, z); + Tile* oldTile = Tile::tiles[oldTileId]; + + //bool tryDestroyBlock = false; + + if (action->isRemove()) { + if (!oldTile) + return; + + //LOGI("tile: %s - %d, %d, %d. b: %f - %f\n", oldTile->getDescriptionId().c_str(), x, y, z, oldTile->getBrightness(level, x, y, z), oldTile->getBrightness(level, x, y+1, z)); + level->extinguishFire(x, y, z, hitResult.f); + gameMode->startDestroyBlock(x, y, z, hitResult.f); + } + else { + ItemInstance* item = player->inventory->getSelected(); + if (gameMode->useItemOn(player, level, item, x, y, z, face, hitResult.pos)) { + mayUse = false; + player->swing(); + #ifdef RPI + } else if (item && item->id == ((Item*)Item::sword_iron)->id) { + player->swing(); + #endif + } + if (item && item->count <= 0) { + player->inventory->clearSlot(player->inventory->selected); + } + //} else if (item && item->count != oldCount) { + // gameRenderer->itemInHandRenderer->itemPlaced(); + //} + } + } + if (mayUse && action->isInteract()) { + ItemInstance* item = player->inventory->getSelected(); + if (item && !player->isUsingItem()) { + if (gameMode->useItem(player, level, item)) { + gameRenderer->itemInHandRenderer->itemUsed(); + } + if (item && item->count <= 0) { + player->inventory->clearSlot(player->inventory->selected); + } + } + } +#endif +} + +bool Minecraft::isOnlineClient() +{ + return (level != NULL && level->isClientSide); +} + +bool Minecraft::isOnline() +{ + return netCallback != NULL; +} + +void Minecraft::pauseGame(bool isBackPaused) { +#ifndef STANDALONE_SERVER + if (screen != NULL) return; + screenChooser.setScreen(isBackPaused? SCREEN_PAUSEPREV : SCREEN_PAUSE); +#endif +} +void Minecraft::gameLostFocus() { +#ifndef STANDALONE_SERVER + if(screen != NULL) { + screen->lostFocus(); + } +#endif +} + + +void Minecraft::setScreen( Screen* screen ) +{ +#ifndef STANDALONE_SERVER + Mouse::reset(); + Multitouch::reset(); + Multitouch::resetThisUpdate(); + + if (screenMutex) { + hasScheduledScreen = true; + scheduledScreen = screen; + return; + } + + if (screen != NULL && screen->isErrorScreen()) + return; + if (screen == NULL && level == NULL) + screen = screenChooser.createScreen(SCREEN_STARTMENU); + + if (this->screen != NULL) { + this->screen->removed(); + delete this->screen; + } + + this->screen = screen; + if (screen != NULL) { + releaseMouse(); + //ScreenSizeCalculator ssc = new ScreenSizeCalculator(options, width, height); + int screenWidth = (int)(width * Gui::InvGuiScale); //ssc.getWidth(); + int screenHeight = (int)(height * Gui::InvGuiScale); //ssc.getHeight(); + screen->init(this, screenWidth, screenHeight); + + if (screen->isInGameScreen() && level) { + level->saveLevelData(); + level->saveGame(); + } + + //noRender = false; + } else { + grabMouse(); + } +#endif +} + +void Minecraft::grabMouse() +{ +#ifndef STANDALONE_SERVER + if (mouseGrabbed) return; + mouseGrabbed = true; + mouseHandler.grab(); + //setScreen(NULL); +#endif +} + +void Minecraft::releaseMouse() +{ +#ifndef STANDALONE_SERVER + if (!mouseGrabbed) { + return; + } + if (player) { + player->releaseAllKeys(); + } + mouseGrabbed = false; + mouseHandler.release(); +#endif +} + +bool Minecraft::useTouchscreen() { +#if defined(RPI) || defined(PLATFORM_GLFW) + return false; +#endif + return options.useTouchScreen || !_supportsNonTouchscreen; +} +bool Minecraft::supportNonTouchScreen() { + return _supportsNonTouchscreen; +} +void Minecraft::init() +{ + options.minecraft = this; + options.initDefaultValues(); +#ifndef STANDALONE_SERVER + checkGlError("Init enter"); + + _supportsNonTouchscreen = !platform()->supportsTouchscreen(); + + LOGI("IS TOUCHSCREEN? %d\n", options.useTouchScreen); + + textures = new Textures(&options, platform()); + textures->addDynamicTexture(new WaterTexture()); + textures->addDynamicTexture(new WaterSideTexture()); + gui.texturesLoaded(textures); + + levelRenderer = new LevelRenderer(this); + gameRenderer = new GameRenderer(this); + particleEngine = new ParticleEngine(level, textures); + + // Platform specific initialization here + font = new Font(&options, "font/default8.png", textures); + + _perfRenderer = new PerfRenderer(this, font); + + checkGlError("Init complete"); +#endif + + user = new User("TestUser", ""); + setIsCreativeMode(false); // false means it's Survival Mode + reloadOptions(); + +} + +void Minecraft::setSize(int w, int h) { +#ifndef STANDALONE_SERVER + transformResolution(&w, &h); + + width = w; + height = h; + + if (width >= 1000) { + #ifdef __APPLE__ + Gui::GuiScale = (width > 2000)? 8.0f : 4.0f; + #else + Gui::GuiScale = 4.0f; + #endif + } + else if (width >= 800) { +#ifdef __APPLE__ + Gui::GuiScale = 4.0f; +#else + Gui::GuiScale = 3.0f; +#endif + } + else if (width >= 400) + Gui::GuiScale = 2.0f; + else + Gui::GuiScale = 1.0f; + + Gui::InvGuiScale = 1.0f / Gui::GuiScale; + int screenWidth = (int)(width * Gui::InvGuiScale); + int screenHeight = (int)(height * Gui::InvGuiScale); + + if (platform()) { + float pixelsPerMillimeter = options.getProgressValue(&Options::Option::PIXELS_PER_MILLIMETER); + pixelCalc.setPixelsPerMillimeter(pixelsPerMillimeter); + pixelCalcUi.setPixelsPerMillimeter(pixelsPerMillimeter * Gui::InvGuiScale); + } + + Config config = createConfig(this); + gui.onConfigChanged(config); + + if (screen) + screen->setSize(screenWidth, screenHeight); + + if (inputHolder) + inputHolder->onConfigChanged(config); + //LOGI("Setting size: %d, %d: %f\n", width, height, Gui::InvGuiScale); + +#ifdef WIN32 + char resbuf[128]; + sprintf(resbuf, " %d x %d @ scale %.2f", width, height, Gui::GuiScale); + //gui.addMessage(resbuf); +#endif +#endif /* STANDALONE_SERVER */ +} + +void Minecraft::reloadOptions() { + options.update(); + options.save(); + bool wasTouchscreen = options.useTouchScreen; + options.useTouchScreen = useTouchscreen(); + options.save(); + + if ((wasTouchscreen != options.useTouchScreen) || (inputHolder == 0)) + _reloadInput(); + + user->name = options.username; + + LOGI("Reloading-options\n"); + + // @todo @fix Android and iOS behaves a bit differently when leaving + // an options screen (Android recreates OpenGL surface) + setSize(width, height); +} + +void Minecraft::_reloadInput() { +#ifndef STANDALONE_SERVER + delete inputHolder; + + if (useTouchscreen()) { + inputHolder = new TouchInputHolder(this, &options); + } else { + #if defined(ANDROID) || defined(__APPLE__) + inputHolder = new CustomInputHolder( + new XperiaPlayInput(&options), + new ControllerTurnInput(2, ControllerTurnInput::MODE_DELTA), + new IBuildInput()); + #else + inputHolder = new CustomInputHolder( + new KeyboardInput(&options), + new MouseTurnInput(MouseTurnInput::MODE_DELTA, width/2, height/2), + new MouseBuildInput()); + #endif + } + + mouseHandler.setTurnInput(inputHolder->getTurnInput()); + if (level && player) { + player->input = inputHolder->getMoveInput(); + } +#endif +} + + +// +// Multiplayer +// +void Minecraft::locateMultiplayer() { + isLookingForMultiplayer = true; + + raknetInstance->pingForHosts(19132); + netCallback = new ClientSideNetworkHandler(this, raknetInstance); +} + +void Minecraft::cancelLocateMultiplayer() { + isLookingForMultiplayer = false; + + raknetInstance->stopPingForHosts(); + + delete netCallback; + netCallback = NULL; +} + +bool Minecraft::joinMultiplayer( const PingedCompatibleServer& server ) +{ + if (isLookingForMultiplayer && netCallback) { + isLookingForMultiplayer = false; + return raknetInstance->connect(server.address.ToString(false), server.address.GetPort()); + } + return false; +} + +void Minecraft::hostMultiplayer(int port) { + // Tear down last instance + raknetInstance->disconnect(); + delete netCallback; + netCallback = NULL; + +#if !defined(NO_NETWORK) + netCallback = new ServerSideNetworkHandler(this, raknetInstance); + #ifdef STANDALONE_SERVER + raknetInstance->host(user->name, port, 16); + #else + raknetInstance->host(user->name, port); + #endif +#endif +} + +// +// Level generation +// +/*static*/ void* Minecraft::prepareLevel_tspawn(void *p_param) { + Minecraft* mc = (Minecraft*) p_param; + mc->generateLevel("Currently not used", mc->level); + return 0; +} + +void Minecraft::generateLevel( const std::string& message, Level* level ) +{ + Stopwatch s; + s.start(); + prepareLevel(message); + s.stop(); + s.print("Level generated: "); + + // "Unlock" + isGeneratingLevel = false; +} + +void Minecraft::_levelGenerated() +{ +#ifndef STANDALONE_SERVER + if (player == NULL) { + player = (LocalPlayer*) gameMode->createPlayer(level); + gameMode->initPlayer(player); + } + + if (player) { + player->input = inputHolder->getMoveInput(); + } + + if (levelRenderer != NULL) levelRenderer->setLevel(level); + if (particleEngine != NULL) particleEngine->setLevel(level); + + gameMode->adjustPlayer(player); + gui.onLevelGenerated(); +#endif + + level->validateSpawn(); + level->loadPlayer(player, true); + // if we are client side, we trust the server to have given us a correct position + if (player && !level->isClientSide) { + player->resetPos(false); + } + + this->cameraTargetPlayer = player; + + if (raknetInstance->isServer()) + raknetInstance->announceServer(user->name); + + if (netCallback) { + netCallback->levelGenerated(level); + } + +#if defined(WIN32) || defined(RPI) + if (_commandServer) { + delete _commandServer; + } + _commandServer = new CommandServer(this); + _commandServer->init(commandPort); +#endif + + // Hack to (hopefully) get the players to show (note: in LevelListener + // instead, since adding yourself always generates a entityAdded) + //EntityRenderDispatcher::getInstance()->onGraphicsReset(); + _hasSignaledGeneratingLevelFinished = true; +} + +Player* Minecraft::respawnPlayer(int playerId) { + for (unsigned int i = 0; i < level->players.size(); ++i) { + if (level->players[i]->entityId == playerId) { + resetPlayer(level->players[i]); + return level->players[i]; + } + } + return NULL; +} + +void Minecraft::resetPlayer(Player* player) { + level->validateSpawn(); + player->reset(); + + Pos p; + if(player->hasRespawnPosition()) { + p = player->getRespawnPosition(); + } + else { + p = level->getSharedSpawnPos(); + } + player->setPos((float)p.x + 0.5f, (float)p.y + 1.0f, (float)p.z + 0.5f); + player->resetPos(true); + + if (isCreativeMode()) + player->inventory->clearInventoryWithDefault(); +} + +void Minecraft::respawnPlayer() { + // RESET THE FRACKING PLAYER HERE + //bool slowCheck = false; + //for (int i = 0; i < level->entities.size(); ++i) + // if (level->entities[i] == player) slowCheck = true; + // + //LOGI("Has entity? %d, %d\n", level->getEntity(player->entityId), slowCheck); + + resetPlayer(player); + + // tell server (or other client) that we re-spawned + RespawnPacket packet(player); + raknetInstance->send(packet); +} + +void Minecraft::onGraphicsReset() +{ +#ifndef STANDALONE_SERVER + textures->clear(); + + font->onGraphicsReset(); + gui.onGraphicsReset(); + + if (levelRenderer) levelRenderer->onGraphicsReset(); + if (gameRenderer) gameRenderer->onGraphicsReset(); + + EntityRenderDispatcher::getInstance()->onGraphicsReset(); + TileEntityRenderDispatcher::getInstance()->onGraphicsReset(); +#endif +} + +int Minecraft::getProgressStatusId() { + return progressStageStatusId; +} + +const char* Minecraft::getProgressMessage() +{ + return progressMessages[progressStageStatusId]; +} + +bool Minecraft::isLevelGenerated() +{ + return level != NULL && !isGeneratingLevel; +} + +LevelStorageSource* Minecraft::getLevelSource() +{ + return storageSource; +} + +int Minecraft::getLicenseId() { + if (!LicenseCodes::isReady(_licenseId)) + _licenseId = platform()->checkLicense(); + return _licenseId; +} + +void Minecraft::audioEngineOn() { +#ifndef STANDALONE_SERVER + soundEngine->enable(true); +#endif +} +void Minecraft::audioEngineOff() { +#ifndef STANDALONE_SERVER + soundEngine->enable(false); +#endif +} + +void Minecraft::setIsCreativeMode(bool isCreative) +{ +#ifdef CREATORMODE + delete gameMode; + gameMode = new CreatorMode(this); + _isCreativeMode = true; +#else + if (!gameMode || isCreative != _isCreativeMode) + { + delete gameMode; + if (isCreative) gameMode = new CreativeMode(this); + else gameMode = new SurvivalMode(this); + _isCreativeMode = isCreative; + } +#endif + if (player) + gameMode->initAbilities(player->abilities); +} + +bool Minecraft::isCreativeMode() { + return _isCreativeMode; +} + +bool Minecraft::isKindleFire(int kindleVersion) { + if (kindleVersion != 1) + return false; + + std::string model = platform()->getPlatformStringVar(PlatformStringVars::DEVICE_BUILD_MODEL); + std::string modelLower(model); + std::transform(modelLower.begin(), modelLower.end(), modelLower.begin(), tolower); + + return (modelLower.find("kindle") != std::string::npos) && (modelLower.find("fire") != std::string::npos); +} + +bool Minecraft::transformResolution(int* w, int* h) +{ + bool changed = false; + + // Kindle Fire 1: reporting wrong height in + // certain cases (e.g. after screen lock) + if (isKindleFire(1) && *h >= 560 && *h <= 620) { + *h = 580; + changed = true; + } + + return changed; +} + +ICreator* Minecraft::getCreator() +{ +#ifdef CREATORMODE + return ((CreatorMode*)gameMode)->getCreator(); +#else + return NULL; +#endif +} + +void Minecraft::optionUpdated( const Options::Option* option, bool value ) { + if(netCallback != NULL && option == &Options::Option::SERVER_VISIBLE) { + ServerSideNetworkHandler* ss = (ServerSideNetworkHandler*) netCallback; + ss->allowIncomingConnections(value); + } +} + +void Minecraft::optionUpdated( const Options::Option* option, float value ) { +#ifndef STANDALONE_SERVER + if(option == &Options::Option::PIXELS_PER_MILLIMETER) { + pixelCalcUi.setPixelsPerMillimeter(value * Gui::InvGuiScale); + pixelCalc.setPixelsPerMillimeter(value); + } +#endif +} + +void Minecraft::optionUpdated( const Options::Option* option, int value ) { + +} diff --git a/src/client/Minecraft.h b/src/client/Minecraft.h new file mode 100755 index 0000000..51edbff --- /dev/null +++ b/src/client/Minecraft.h @@ -0,0 +1,233 @@ +#ifndef NET_MINECRAFT_CLIENT__Minecraft_H__ +#define NET_MINECRAFT_CLIENT__Minecraft_H__ + +#include "Options.h" +#ifndef STANDALONE_SERVER +#include "MouseHandler.h" +#endif +#include "Timer.h" +#include "player/input/ITurnInput.h" +#ifndef STANDALONE_SERVER +#include "gui/Gui.h" +#include "gui/screens/ScreenChooser.h" +#endif +//#include "../network/RakNetInstance.h" +#include "../world/phys/HitResult.h" + +class User; +class Level; +class LocalPlayer; +class IInputHolder; +class Mob; +class Player; +class LevelRenderer; +class GameRenderer; +class ParticleEngine; +class Entity; +class ICreator; +class GameMode; +class Textures; +class CThread; +class SoundEngine; +class Screen; +class Font; +class LevelStorageSource; +class BuildActionIntention; +class PerfRenderer; +class LevelSettings; +class IRakNetInstance; +class NetEventCallback; +class CommandServer; +struct PingedCompatibleServer; +//class ExternalFileLevelStorageSource; + + +#include "../App.h" +#include "PixelCalc.h" +class AppPlatform; +class AppPlatform_android; + +class Minecraft: public App +{ +protected: + Minecraft(); +public: + virtual ~Minecraft(); + + void init(); + void setSize(int width, int height); + void reloadOptions(); + + bool supportNonTouchScreen(); + bool useTouchscreen(); + void grabMouse(); + void releaseMouse(); + + void handleBuildAction(BuildActionIntention*); + + void toggleDimension(){} + bool isCreativeMode(); + void setIsCreativeMode(bool isCreative); + void setScreen(Screen*); + + virtual void selectLevel(const std::string& levelId, const std::string& levelName, const LevelSettings& settings); + virtual void setLevel(Level* level, const std::string& message = "", LocalPlayer* forceInsertPlayer = NULL); + + void generateLevel( const std::string& message, Level* level ); + LevelStorageSource* getLevelSource(); + + bool isLookingForMultiplayer; + void locateMultiplayer(); + void cancelLocateMultiplayer(); + bool joinMultiplayer(const PingedCompatibleServer& server); + void hostMultiplayer(int port=19132); + Player* respawnPlayer(int playerId); + void respawnPlayer(); + void resetPlayer(Player* player); + void doActuallyRespawnPlayer(); + + void update(); + + void tick(int nTick, int maxTick); + void tickInput(); + + bool isOnlineClient(); + bool isOnline(); + void pauseGame(bool isBackPaused); + void gameLostFocus(); + + void prepareLevel(const std::string& message); + + void leaveGame(bool renameLevel = false); + + int getProgressStatusId(); + const char* getProgressMessage(); + + ICreator* getCreator(); + + // void onGraphicsLost() {} + void onGraphicsReset(); + + bool isLevelGenerated(); + int getLicenseId(); + + void audioEngineOn(); + void audioEngineOff(); + + bool isPowerVR() { return _powerVr; } + bool isKindleFire(int kindleVersion); + bool transformResolution(int* w, int* h); + void optionUpdated(const Options::Option* option, bool value); + void optionUpdated(const Options::Option* option, float value); + void optionUpdated(const Options::Option* option, int value); +#ifdef __APPLE__ + bool _isSuperFast; + bool isSuperFast() { return _isSuperFast; } +#endif + +protected: + void _levelGenerated(); + +private: + static void* prepareLevel_tspawn(void *p_param); + + void handleMouseClick(int button); + void handleMouseDown(int button, bool down); + + void _reloadInput(); +public: + int width; + int height; + + // Vars that the platform is allowed to use in the future + int commandPort; + int reserved_d1, reserved_d2; + float reserved_f1, reserved_f2; + + Options options; + + static bool useAmbientOcclusion; + //static bool threadInterrupt; + + volatile bool pause; + + LevelRenderer* levelRenderer; + GameRenderer* gameRenderer; + ParticleEngine* particleEngine; + SoundEngine* soundEngine; + + GameMode* gameMode; +#ifndef STANDALONE_SERVER + Textures* textures; + ScreenChooser screenChooser; + Font* font; +#endif + IRakNetInstance* raknetInstance; + NetEventCallback* netCallback; + + int lastTime; + int lastTickTime; + float ticksSinceLastUpdate; + + User* user; + Level* level; + + LocalPlayer* player; + IInputHolder* inputHolder; + Mob* cameraTargetPlayer; +#ifndef STANDALONE_SERVER + Gui gui; +#endif + CThread* generateLevelThread; + Screen* screen; + static int customDebugId; + + static const int CDI_NONE = 0; + static const int CDI_GRAPHICS = 1; +#ifndef STANDALONE_SERVER + MouseHandler mouseHandler; +#endif + bool mouseGrabbed; + + PixelCalc pixelCalc; + PixelCalc pixelCalcUi; + + HitResult hitResult; + volatile int progressStagePercentage; + + // This field is initialized in main() + // It sets the base path to where worlds can be written (sdcard on android) + std::string externalStoragePath; + std::string externalCacheStoragePath; +protected: + Timer timer; + // @note @attn @warn: this is dangerous as fuck! + volatile bool isGeneratingLevel; + bool _hasSignaledGeneratingLevelFinished; + + LevelStorageSource* storageSource; + bool _running; + bool _powerVr; + +private: + volatile int progressStageStatusId; + static const char* progressMessages[]; + + int missTime; + int ticks; + bool screenMutex; + bool hasScheduledScreen; + Screen* scheduledScreen; + + int _licenseId; + bool _supportsNonTouchscreen; + + bool _isCreativeMode; + //int _respawnPlayerTicks; + Player* _pendingRemovePlayer; // @attn @todo @fix: remove this shait and fix the respawn behaviour + + PerfRenderer* _perfRenderer; + CommandServer* _commandServer; +}; + +#endif /*NET_MINECRAFT_CLIENT__Minecraft_H__*/ diff --git a/src/client/MouseHandler.cpp b/src/client/MouseHandler.cpp new file mode 100755 index 0000000..7855e41 --- /dev/null +++ b/src/client/MouseHandler.cpp @@ -0,0 +1,60 @@ +#include "MouseHandler.h" +#include "player/input/ITurnInput.h" + +#ifdef RPI +#include +#endif + +#ifdef PLATFORM_GLFW +#include +#endif + +MouseHandler::MouseHandler( ITurnInput* turnInput ) +: _turnInput(turnInput) +{} + +MouseHandler::MouseHandler() +: _turnInput(0) +{} + +MouseHandler::~MouseHandler() { +} + +void MouseHandler::setTurnInput( ITurnInput* turnInput ) { + _turnInput = turnInput; +} + +void MouseHandler::grab() { + xd = 0; + yd = 0; + +#if defined(RPI) + //LOGI("Grabbing input!\n"); + SDL_WM_GrabInput(SDL_GRAB_ON); + SDL_ShowCursor(0); +#endif + +#ifdef PLATFORM_GLFW + glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_DISABLED); +#endif +} + +void MouseHandler::release() { +#if defined(RPI) + //LOGI("Releasing input!\n"); + SDL_WM_GrabInput(SDL_GRAB_OFF); + SDL_ShowCursor(1); +#endif + +#ifdef PLATFORM_GLFW + glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_NORMAL); +#endif +} + +void MouseHandler::poll() { + if (_turnInput != 0) { + TurnDelta td = _turnInput->getTurnDelta(); + xd = td.x; + yd = td.y; + } +} diff --git a/src/client/MouseHandler.h b/src/client/MouseHandler.h new file mode 100755 index 0000000..32ff60c --- /dev/null +++ b/src/client/MouseHandler.h @@ -0,0 +1,28 @@ +#ifndef NET_MINECRAFT_CLIENT__MouseHandler_H__ +#define NET_MINECRAFT_CLIENT__MouseHandler_H__ + +//package net.minecraft.client; + +class ITurnInput; + +class MouseHandler +{ +public: + MouseHandler(ITurnInput* turnInput); + MouseHandler(); + ~MouseHandler(); + + void setTurnInput(ITurnInput* turnInput); + + void grab(); + void release(); + + void poll(); + + float xd, yd; +private: + int toSkip; + ITurnInput* _turnInput; +}; + +#endif /*NET_MINECRAFT_CLIENT__MouseHandler_H__*/ diff --git a/src/client/OptionStrings.cpp b/src/client/OptionStrings.cpp new file mode 100755 index 0000000..ba068d7 --- /dev/null +++ b/src/client/OptionStrings.cpp @@ -0,0 +1,16 @@ +#include "OptionStrings.h" + +const char* OptionStrings::Multiplayer_Username = "mp_username"; +const char* OptionStrings::Multiplayer_ServerVisible = "mp_server_visible_default"; + +const char* OptionStrings::Graphics_Fancy = "gfx_fancygraphics"; +const char* OptionStrings::Graphics_LowQuality = "gfx_lowquality"; + +const char* OptionStrings::Controls_Sensitivity = "ctrl_sensitivity"; +const char* OptionStrings::Controls_InvertMouse = "ctrl_invertmouse"; +const char* OptionStrings::Controls_UseTouchScreen = "ctrl_usetouchscreen"; +const char* OptionStrings::Controls_UseTouchJoypad = "ctrl_usetouchjoypad"; +const char* OptionStrings::Controls_IsLefthanded = "ctrl_islefthanded"; +const char* OptionStrings::Controls_FeedbackVibration = "feedback_vibration"; + +const char* OptionStrings::Game_DifficultyLevel = "game_difficulty"; diff --git a/src/client/OptionStrings.h b/src/client/OptionStrings.h new file mode 100755 index 0000000..d536fa0 --- /dev/null +++ b/src/client/OptionStrings.h @@ -0,0 +1,22 @@ +#ifndef NET_MINECRAFT_CLIENT__OptionStrings_H__ +#define NET_MINECRAFT_CLIENT__OptionStrings_H__ + +class OptionStrings { +public: + static const char* Multiplayer_Username; + static const char* Multiplayer_ServerVisible; + + static const char* Graphics_Fancy; + static const char* Graphics_LowQuality; + + static const char* Controls_Sensitivity; + static const char* Controls_InvertMouse; + static const char* Controls_UseTouchScreen; + static const char* Controls_UseTouchJoypad; + static const char* Controls_IsLefthanded; + static const char* Controls_FeedbackVibration; + + static const char* Game_DifficultyLevel; +}; + +#endif /*NET_MINECRAFT_CLIENT__OptionsStrings_H__*/ diff --git a/src/client/Options.cpp b/src/client/Options.cpp new file mode 100755 index 0000000..cde2f5b --- /dev/null +++ b/src/client/Options.cpp @@ -0,0 +1,460 @@ +#include "Options.h" +#include "OptionStrings.h" +#include "Minecraft.h" +#include "../platform/log.h" +#include "../world/Difficulty.h" +#include +#include +/*static*/ +bool Options::debugGl = false; + +void Options::initDefaultValues() { + difficulty = Difficulty::NORMAL; + hideGui = false; + thirdPersonView = false; + renderDebug = false; + isFlying = false; + smoothCamera = true; + fixedCamera = false; + flySpeed = 1; + cameraSpeed = 1; + guiScale = 0; + + useMouseForDigging = false; + destroyVibration = true; + isLeftHanded = false; + + isJoyTouchArea = false; + + music = 1; + sound = 1; + sensitivity = 0.5f; + invertYMouse = false; + viewDistance = 2; + bobView = true; + anaglyph3d = false; + limitFramerate = false; + fancyGraphics = true;//false; + ambientOcclusion = false; + if(minecraft->supportNonTouchScreen()) + useTouchScreen = false; + else + useTouchScreen = true; + pixelsPerMillimeter = minecraft->platform()->getPixelsPerMillimeter(); + //useMouseForDigging = true; + + //skin = "Default"; + username = "Steve"; + serverVisible = true; + + keyUp = KeyMapping("key.forward", Keyboard::KEY_W); + keyLeft = KeyMapping("key.left", Keyboard::KEY_A); + keyDown = KeyMapping("key.back", Keyboard::KEY_S); + keyRight = KeyMapping("key.right", Keyboard::KEY_D); + keyJump = KeyMapping("key.jump", Keyboard::KEY_SPACE); + keyBuild = KeyMapping("key.inventory", Keyboard::KEY_E); + keySneak = KeyMapping("key.sneak", Keyboard::KEY_LSHIFT); +#if defined(RPI) || defined(PLATFORM_GLFW) + keyCraft = KeyMapping("key.crafting", Keyboard::KEY_Q); + keyDrop = KeyMapping("key.drop", Keyboard::KEY_Q); + keyChat = KeyMapping("key.chat", Keyboard::KEY_T); + keyFog = KeyMapping("key.fog", Keyboard::KEY_F); + keyDestroy=KeyMapping("key.destroy", 88); // @todo @fix + keyUse = KeyMapping("key.use", Keyboard::KEY_U); +#endif + + //const int Unused = 99999; + keyMenuNext = KeyMapping("key.menu.next", 40); + keyMenuPrevious = KeyMapping("key.menu.previous", 38); + keyMenuOk = KeyMapping("key.menu.ok", 13); + keyMenuCancel = KeyMapping("key.menu.cancel", 8); + + int k = 0; + keyMappings[k++] = &keyUp; + keyMappings[k++] = &keyLeft; + keyMappings[k++] = &keyDown; + keyMappings[k++] = &keyRight; + keyMappings[k++] = &keyJump; + keyMappings[k++] = &keySneak; + keyMappings[k++] = &keyDrop; + keyMappings[k++] = &keyBuild; + keyMappings[k++] = &keyChat; + keyMappings[k++] = &keyFog; + keyMappings[k++] = &keyDestroy; + keyMappings[k++] = &keyUse; + + keyMappings[k++] = &keyMenuNext; + keyMappings[k++] = &keyMenuPrevious; + keyMappings[k++] = &keyMenuOk; + keyMappings[k++] = &keyMenuCancel; + +// "Polymorphism" at it's worst. At least it's better to have it here +// for now, then to have it spread all around the game code (even if +// it would be slightly better performance with it inlined. Should +// probably create separate subclasses (or read from file). @fix @todo. +#if defined(ANDROID) || defined(__APPLE__) || defined(RPI) + viewDistance = 2; + thirdPersonView = false; + useMouseForDigging = false; + fancyGraphics = false; + + //renderDebug = true; + #if !defined(RPI) + keyUp.key = 19; + keyDown.key = 20; + keyLeft.key = 21; + keyRight.key = 22; + keyJump.key = 23; + keyUse.key = 103; + keyDestroy.key = 102; + keyCraft.key = 109; + + keyMenuNext.key = 20; + keyMenuPrevious.key = 19; + keyMenuOk.key = 23; + keyMenuCancel.key = 4; + #endif +#endif + +#if defined(RPI) + username = "StevePi"; + sensitivity *= 0.4f; + useMouseForDigging = true; +#endif +} + +const Options::Option + Options::Option::MUSIC (0, "options.music", true, false), + Options::Option::SOUND (1, "options.sound", true, false), + Options::Option::INVERT_MOUSE (2, "options.invertMouse", false, true), + Options::Option::SENSITIVITY (3, "options.sensitivity", true, false), + Options::Option::RENDER_DISTANCE (4, "options.renderDistance",false, false), + Options::Option::VIEW_BOBBING (5, "options.viewBobbing", false, true), + Options::Option::ANAGLYPH (6, "options.anaglyph", false, true), + Options::Option::LIMIT_FRAMERATE (7, "options.limitFramerate",false, true), + Options::Option::DIFFICULTY (8, "options.difficulty", false, false), + Options::Option::GRAPHICS (9, "options.graphics", false, false), + Options::Option::AMBIENT_OCCLUSION (10, "options.ao", false, true), + Options::Option::GUI_SCALE (11, "options.guiScale", false, false), + Options::Option::THIRD_PERSON (12, "options.thirdperson", false, true), + Options::Option::HIDE_GUI (13, "options.hidegui", false, true), + Options::Option::SERVER_VISIBLE (14, "options.servervisible", false, true), + Options::Option::LEFT_HANDED (15, "options.lefthanded", false, true), + Options::Option::USE_TOUCHSCREEN (16, "options.usetouchscreen", false, true), + Options::Option::USE_TOUCH_JOYPAD (17, "options.usetouchpad", false, true), + Options::Option::DESTROY_VIBRATION (18, "options.destroyvibration", false, true), + Options::Option::PIXELS_PER_MILLIMETER(19, "options.pixelspermilimeter", true, false); + +/* private */ +const float Options::SOUND_MIN_VALUE = 0.0f; +const float Options::SOUND_MAX_VALUE = 1.0f; +const float Options::MUSIC_MIN_VALUE = 0.0f; +const float Options::MUSIC_MAX_VALUE = 1.0f; +const float Options::SENSITIVITY_MIN_VALUE = 0.0f; +const float Options::SENSITIVITY_MAX_VALUE = 1.0f; +const float Options::PIXELS_PER_MILLIMETER_MIN_VALUE = 3.0f; +const float Options::PIXELS_PER_MILLIMETER_MAX_VALUE = 4.0f; +const int DIFFICULY_LEVELS[] = { + Difficulty::PEACEFUL, + Difficulty::NORMAL +}; + +/*private*/ +const char* Options::RENDER_DISTANCE_NAMES[] = { + "options.renderDistance.far", + "options.renderDistance.normal", + "options.renderDistance.short", + "options.renderDistance.tiny" +}; + +/*private*/ +const char* Options::DIFFICULTY_NAMES[] = { + "options.difficulty.peaceful", + "options.difficulty.easy", + "options.difficulty.normal", + "options.difficulty.hard" +}; + +/*private*/ +const char* Options::GUI_SCALE[] = { + "options.guiScale.auto", + "options.guiScale.small", + "options.guiScale.normal", + "options.guiScale.large" +}; + +void Options::update() +{ + viewDistance = 2; + StringVector optionStrings = optionsFile.getOptionStrings(); + for (unsigned int i = 0; i < optionStrings.size(); i += 2) { + const std::string& key = optionStrings[i]; + const std::string& value = optionStrings[i+1]; + + //LOGI("reading key: %s (%s)\n", key.c_str(), value.c_str()); + + // Multiplayer + if (key == OptionStrings::Multiplayer_Username) username = value; + if (key == OptionStrings::Multiplayer_ServerVisible) readBool(value, serverVisible); + + // Controls + if (key == OptionStrings::Controls_Sensitivity) { + float sens; + if (readFloat(value, sens)) { + // sens is in range [0,1] with default/center at 0.5 (for aesthetics) + // We wanna map it to something like [0.3, 0.9] BUT keep 0.5 @ ~0.5... + sensitivity = 0.3f + std::pow(1.1f * sens, 1.3f) * 0.42f; + } + } + if (key == OptionStrings::Controls_InvertMouse) { + readBool(value, invertYMouse); + } + if (key == OptionStrings::Controls_IsLefthanded) { + readBool(value, isLeftHanded); + } + if (key == OptionStrings::Controls_UseTouchJoypad) { + readBool(value, isJoyTouchArea); + if (!minecraft->useTouchscreen()) + isJoyTouchArea = false; + } + + // Feedback + if (key == OptionStrings::Controls_FeedbackVibration) + readBool(value, destroyVibration); + + // Graphics + if (key == OptionStrings::Graphics_Fancy) { + readBool(value, fancyGraphics); + } + if (key == OptionStrings::Graphics_LowQuality) { + bool isLow; + readBool(value, isLow); + if (isLow) { + viewDistance = 3; + fancyGraphics = false; + } + } + // Game + if (key == OptionStrings::Game_DifficultyLevel) { + readInt(value, difficulty); + // Only support peaceful and normal right now + if (difficulty != Difficulty::PEACEFUL && difficulty != Difficulty::NORMAL) + difficulty = Difficulty::NORMAL; + } + } + +#ifdef __APPLE__ +// if (minecraft->isSuperFast()) { +// viewDistance = (viewDistance>0)? --viewDistance : 0; +// } +// LOGI("Is this card super fast?: %d\n", viewDistance); +#endif + + //LOGI("Lefty is: %d\n", isLeftHanded); +} + +void Options::load() +{ + int a = 0; + //try { + // if (!optionsFile.exists()) return; + // BufferedReader br = /*new*/ BufferedReader(/*new*/ FileReader(optionsFile)); + // std::string line = ""; + // while ((line = br.readLine()) != NULL) { + // std::string[] cmds = line.split(":"); + // if (cmds[0].equals("music")) music = readFloat(cmds[1]); + // if (cmds[0].equals("sound")) sound = readFloat(cmds[1]); + // if (cmds[0].equals("mouseSensitivity")) sensitivity = readFloat(cmds[1]); + // if (cmds[0].equals("invertYMouse")) invertYMouse = cmds[1].equals("true"); + // if (cmds[0].equals("viewDistance")) viewDistance = Integer.parseInt(cmds[1]); + // if (cmds[0].equals("guiScale")) guiScale = Integer.parseInt(cmds[1]); + // if (cmds[0].equals("bobView")) bobView = cmds[1].equals("true"); + // if (cmds[0].equals("anaglyph3d")) anaglyph3d = cmds[1].equals("true"); + // if (cmds[0].equals("limitFramerate")) limitFramerate = cmds[1].equals("true"); + // if (cmds[0].equals("difficulty")) difficulty = Integer.parseInt(cmds[1]); + // if (cmds[0].equals("fancyGraphics")) fancyGraphics = cmds[1].equals("true"); + // if (cmds[0].equals("ao")) ambientOcclusion = cmds[1].equals("true"); + // if (cmds[0].equals("skin")) skin = cmds[1]; + // if (cmds[0].equals("lastServer") && cmds.length >= 2) lastMpIp = cmds[1]; + + // for (int i = 0; i < keyMappings.length; i++) { + // if (cmds[0].equals("key_" + keyMappings[i].name)) { + // keyMappings[i].key = Integer.parseInt(cmds[1]); + // } + // } + // } + // br.close(); + //} catch (Exception e) { + // System.out.println("Failed to load options"); + // e.printStackTrace(); + //} +} + +void Options::save() +{ + StringVector stringVec; + // Game + addOptionToSaveOutput(stringVec, OptionStrings::Multiplayer_ServerVisible, serverVisible); + addOptionToSaveOutput(stringVec, OptionStrings::Game_DifficultyLevel, difficulty); + + // Input + addOptionToSaveOutput(stringVec, OptionStrings::Controls_InvertMouse, invertYMouse); + addOptionToSaveOutput(stringVec, OptionStrings::Controls_Sensitivity, sensitivity); + addOptionToSaveOutput(stringVec, OptionStrings::Controls_IsLefthanded, isLeftHanded); + addOptionToSaveOutput(stringVec, OptionStrings::Controls_UseTouchScreen, useTouchScreen); + addOptionToSaveOutput(stringVec, OptionStrings::Controls_UseTouchJoypad, isJoyTouchArea); + addOptionToSaveOutput(stringVec, OptionStrings::Controls_FeedbackVibration, destroyVibration); +// +// static const Option MUSIC; +// static const Option SOUND; +// static const Option INVERT_MOUSE; +// static const Option SENSITIVITY; +// static const Option RENDER_DISTANCE; +// static const Option VIEW_BOBBING; +// static const Option ANAGLYPH; +// static const Option LIMIT_FRAMERATE; +// static const Option DIFFICULTY; +// static const Option GRAPHICS; +// static const Option AMBIENT_OCCLUSION; +// static const Option GUI_SCALE; +// +// static const Option THIRD_PERSON; +// static const Option HIDE_GUI; + //try { + // PrintWriter pw = /*new*/ PrintWriter(/*new*/ FileWriter(optionsFile)); + + // pw.println("music:" + music); + // pw.println("sound:" + sound); + // pw.println("invertYMouse:" + invertYMouse); + // pw.println("mouseSensitivity:" + sensitivity); + // pw.println("viewDistance:" + viewDistance); + // pw.println("guiScale:" + guiScale); + // pw.println("bobView:" + bobView); + // pw.println("anaglyph3d:" + anaglyph3d); + // pw.println("limitFramerate:" + limitFramerate); + // pw.println("difficulty:" + difficulty); + // pw.println("fancyGraphics:" + fancyGraphics); + // pw.println("ao:" + ambientOcclusion); + // pw.println("skin:" + skin); + // pw.println("lastServer:" + lastMpIp); + + // for (int i = 0; i < keyMappings.length; i++) { + // pw.println("key_" + keyMappings[i].name + ":" + keyMappings[i].key); + // } + + // pw.close(); + //} catch (Exception e) { + // System.out.println("Failed to save options"); + // e.printStackTrace(); + //} +} +void Options::addOptionToSaveOutput(StringVector& stringVector, std::string name, bool boolValue) { + std::stringstream ss; + ss << name << ":" << boolValue; + stringVector.push_back(ss.str()); +} +void Options::addOptionToSaveOutput(StringVector& stringVector, std::string name, float floatValue) { + std::stringstream ss; + ss << name << ":" << floatValue; + stringVector.push_back(ss.str()); +} +void Options::addOptionToSaveOutput(StringVector& stringVector, std::string name, int intValue) { + std::stringstream ss; + ss << name << ":" << intValue; + stringVector.push_back(ss.str()); +} + +std::string Options::getMessage( const Option* item ) +{ + return "Options::getMessage - Not implemented"; + + //Language language = Language.getInstance(); + //std::string caption = language.getElement(item.getCaptionId()) + ": "; + + //if (item.isProgress()) { + // float progressValue = getProgressValue(item); + + // if (item == Option.SENSITIVITY) { + // if (progressValue == 0) { + // return caption + language.getElement("options.sensitivity.min"); + // } + // if (progressValue == 1) { + // return caption + language.getElement("options.sensitivity.max"); + // } + // return caption + (int) (progressValue * 200) + "%"; + // } else { + // if (progressValue == 0) { + // return caption + language.getElement("options.off"); + // } + // return caption + (int) (progressValue * 100) + "%"; + // } + //} else if (item.isBoolean()) { + + // bool booleanValue = getBooleanValue(item); + // if (booleanValue) { + // return caption + language.getElement("options.on"); + // } + // return caption + language.getElement("options.off"); + //} else if (item == Option.RENDER_DISTANCE) { + // return caption + language.getElement(RENDER_DISTANCE_NAMES[viewDistance]); + //} else if (item == Option.DIFFICULTY) { + // return caption + language.getElement(DIFFICULTY_NAMES[difficulty]); + //} else if (item == Option.GUI_SCALE) { + // return caption + language.getElement(GUI_SCALE[guiScale]); + //} else if (item == Option.GRAPHICS) { + // if (fancyGraphics) { + // return caption + language.getElement("options.graphics.fancy"); + // } + // return caption + language.getElement("options.graphics.fast"); + //} + + //return caption; +} + +/*static*/ +bool Options::readFloat(const std::string& string, float& value) { + if (string == "true" || string == "YES") { value = 1; return true; } + if (string == "false" || string == "NO") { value = 0; return true; } +#ifdef _WIN32 + if (sscanf_s(string.c_str(), "%f", &value)) + return true; +#else + if (sscanf(string.c_str(), "%f", &value)) + return true; +#endif + return false; +} + +/*static*/ +bool Options::readInt(const std::string& string, int& value) { + if (string == "true" || string == "YES") { value = 1; return true; } + if (string == "false" || string == "NO") { value = 0; return true; } +#ifdef _WIN32 + if (sscanf_s(string.c_str(), "%d", &value)) + return true; +#else + if (sscanf(string.c_str(), "%d", &value)) + return true; +#endif + return false; +} + +/*static*/ +bool Options::readBool(const std::string& string, bool& value) { + std::string s = Util::stringTrim(string); + if (string == "true" || string == "1" || string == "YES") { value = true; return true; } + if (string == "false" || string == "0" || string == "NO") { value = false; return true; } + return false; +} + +void Options::notifyOptionUpdate( const Option* option, bool value ) { + minecraft->optionUpdated(option, value); +} + +void Options::notifyOptionUpdate( const Option* option, float value ) { + minecraft->optionUpdated(option, value); +} + +void Options::notifyOptionUpdate( const Option* option, int value ) { + minecraft->optionUpdated(option, value); +} diff --git a/src/client/Options.h b/src/client/Options.h new file mode 100755 index 0000000..4420ba7 --- /dev/null +++ b/src/client/Options.h @@ -0,0 +1,328 @@ +#ifndef NET_MINECRAFT_CLIENT__Options_H__ +#define NET_MINECRAFT_CLIENT__Options_H__ + +//package net.minecraft.client; + +//#include "locale/Language.h" + +#include +#include +#include "KeyMapping.h" +#include "../platform/input/Keyboard.h" +#include "../util/StringUtils.h" +#include "OptionsFile.h" + +class Minecraft; +typedef std::vector StringVector; + +class Options +{ +public: + class Option + { + const bool _isProgress; + const bool _isBoolean; + const std::string _captionId; + const int _ordinal; + + public: + static const Option MUSIC; + static const Option SOUND; + static const Option INVERT_MOUSE; + static const Option SENSITIVITY; + static const Option RENDER_DISTANCE; + static const Option VIEW_BOBBING; + static const Option ANAGLYPH; + static const Option LIMIT_FRAMERATE; + static const Option DIFFICULTY; + static const Option GRAPHICS; + static const Option AMBIENT_OCCLUSION; + static const Option GUI_SCALE; + + static const Option THIRD_PERSON; + static const Option HIDE_GUI; + static const Option SERVER_VISIBLE; + static const Option LEFT_HANDED; + static const Option USE_TOUCHSCREEN; + static const Option USE_TOUCH_JOYPAD; + static const Option DESTROY_VIBRATION; + + static const Option PIXELS_PER_MILLIMETER; + + /* + static Option* getItem(int id) { + for (Option item : Option.values()) { + if (item.getId() == id) { + return item; + } + } + return NULL; + } + */ + + Option(int ordinal, const std::string& captionId, bool hasProgress, bool isBoolean) + : _captionId(captionId), + _isProgress(hasProgress), + _isBoolean(isBoolean), + _ordinal(ordinal) + {} + + bool isProgress() const { + return _isProgress; + } + + bool isBoolean() const { + return _isBoolean; + } + + bool isInt() const { + return (!_isBoolean && !_isProgress); + } + + int getId() { + return _ordinal; + } + + std::string getCaptionId() const { + return _captionId; + } + }; + +private: + static const float SOUND_MIN_VALUE; + static const float SOUND_MAX_VALUE; + static const float MUSIC_MIN_VALUE; + static const float MUSIC_MAX_VALUE; + static const float SENSITIVITY_MIN_VALUE; + static const float SENSITIVITY_MAX_VALUE; + static const float PIXELS_PER_MILLIMETER_MIN_VALUE; + static const float PIXELS_PER_MILLIMETER_MAX_VALUE; + static const char* RENDER_DISTANCE_NAMES[]; + static const char* DIFFICULTY_NAMES[]; + static const char* GUI_SCALE[]; + static const int DIFFICULY_LEVELS[]; +public: + static bool debugGl; + + float music; + float sound; + //note: sensitivity is transformed in Options::update + float sensitivity; + bool invertYMouse; + int viewDistance; + bool bobView; + bool anaglyph3d; + bool limitFramerate; + bool fancyGraphics; + bool ambientOcclusion; + bool useMouseForDigging; + bool isLeftHanded; + bool destroyVibration; + //std::string skin; + + KeyMapping keyUp; + KeyMapping keyLeft; + KeyMapping keyDown; + KeyMapping keyRight; + KeyMapping keyJump; + KeyMapping keyBuild; + KeyMapping keyDrop; + KeyMapping keyChat; + KeyMapping keyFog; + KeyMapping keySneak; + KeyMapping keyCraft; + KeyMapping keyDestroy; + KeyMapping keyUse; + + KeyMapping keyMenuNext; + KeyMapping keyMenuPrevious; + KeyMapping keyMenuOk; + KeyMapping keyMenuCancel; + + KeyMapping* keyMappings[16]; + + /*protected*/ Minecraft* minecraft; + ///*private*/ File optionsFile; + + int difficulty; + bool hideGui; + bool thirdPersonView; + bool renderDebug; + + bool isFlying; + bool smoothCamera; + bool fixedCamera; + float flySpeed; + float cameraSpeed; + int guiScale; + std::string username; + + bool serverVisible; + bool isJoyTouchArea; + bool useTouchScreen; + float pixelsPerMillimeter; + Options(Minecraft* minecraft, const std::string& workingDirectory) + : minecraft(minecraft) + { + //optionsFile = /*new*/ File(workingDirectory, "options.txt"); + initDefaultValues(); + + load(); + } + + Options() + : minecraft(NULL) + { + + } + + void initDefaultValues(); + + std::string getKeyDescription(int i) { + //Language language = Language.getInstance(); + //return language.getElement(keyMappings[i].name); + return "Options::getKeyDescription not implemented"; + } + + std::string getKeyMessage(int i) { + //return Keyboard.getKeyName(keyMappings[i].key); + return "Options::getKeyMessage not implemented"; + } + + void setKey(int i, int key) { + keyMappings[i]->key = key; + save(); + } + + void set(const Option* item, float value) { + if (item == &Option::MUSIC) { + music = value; + //minecraft.soundEngine.updateOptions(); + } else if (item == &Option::SOUND) { + sound = value; + //minecraft.soundEngine.updateOptions(); + } else if (item == &Option::SENSITIVITY) { + sensitivity = value; + } else if (item == &Option::PIXELS_PER_MILLIMETER) { + pixelsPerMillimeter = value; + } + notifyOptionUpdate(item, value); + } + void set(const Option* item, int value) { + if(item == &Option::DIFFICULTY) { + difficulty = value; + } + notifyOptionUpdate(item, value); + } + + void toggle(const Option* option, int dir) { + if (option == &Option::INVERT_MOUSE) invertYMouse = !invertYMouse; + if (option == &Option::RENDER_DISTANCE) viewDistance = (viewDistance + dir) & 3; + if (option == &Option::GUI_SCALE) guiScale = (guiScale + dir) & 3; + if (option == &Option::VIEW_BOBBING) bobView = !bobView; + if (option == &Option::THIRD_PERSON) thirdPersonView = !thirdPersonView; + if (option == &Option::HIDE_GUI) hideGui = !hideGui; + if (option == &Option::SERVER_VISIBLE) serverVisible = !serverVisible; + if (option == &Option::LEFT_HANDED) isLeftHanded = !isLeftHanded; + if (option == &Option::USE_TOUCHSCREEN) useTouchScreen = !useTouchScreen; + if (option == &Option::USE_TOUCH_JOYPAD) isJoyTouchArea = !isJoyTouchArea; + if (option == &Option::DESTROY_VIBRATION) destroyVibration = !destroyVibration; + if (option == &Option::ANAGLYPH) { + anaglyph3d = !anaglyph3d; + //minecraft->textures.reloadAll(); + } + if (option == &Option::LIMIT_FRAMERATE) limitFramerate = !limitFramerate; + if (option == &Option::DIFFICULTY) difficulty = (difficulty + dir) & 3; + if (option == &Option::GRAPHICS) { + fancyGraphics = !fancyGraphics; + //minecraft->levelRenderer.allChanged(); + } + if (option == &Option::AMBIENT_OCCLUSION) { + ambientOcclusion = !ambientOcclusion; + //minecraft->levelRenderer.allChanged(); + } + notifyOptionUpdate(option, getBooleanValue(option)); + save(); + } + + int getIntValue(const Option* item) { + if(item == &Option::DIFFICULTY) return difficulty; + return 0; + } + + float getProgressValue(const Option* item) { + if (item == &Option::MUSIC) return music; + if (item == &Option::SOUND) return sound; + if (item == &Option::SENSITIVITY) return sensitivity; + if (item == &Option::PIXELS_PER_MILLIMETER) return pixelsPerMillimeter; + return 0; + } + + bool getBooleanValue(const Option* item) { + if (item == &Option::INVERT_MOUSE) + return invertYMouse; + if (item == &Option::VIEW_BOBBING) + return bobView; + if (item == &Option::ANAGLYPH) + return anaglyph3d; + if (item == &Option::LIMIT_FRAMERATE) + return limitFramerate; + if (item == &Option::AMBIENT_OCCLUSION) + return ambientOcclusion; + if (item == &Option::THIRD_PERSON) + return thirdPersonView; + if (item == &Option::HIDE_GUI) + return hideGui; + if (item == &Option::THIRD_PERSON) + return thirdPersonView; + if (item == &Option::SERVER_VISIBLE) + return serverVisible; + if (item == &Option::LEFT_HANDED) + return isLeftHanded; + if (item == &Option::USE_TOUCHSCREEN) + return useTouchScreen; + if (item == &Option::USE_TOUCH_JOYPAD) + return isJoyTouchArea; + if (item == &Option::DESTROY_VIBRATION) + return destroyVibration; + return false; + } + + float getProgrssMin(const Option* item) { + if (item == &Option::MUSIC) return MUSIC_MIN_VALUE; + if (item == &Option::SOUND) return SOUND_MIN_VALUE; + if (item == &Option::SENSITIVITY) return SENSITIVITY_MIN_VALUE; + if (item == &Option::PIXELS_PER_MILLIMETER) return PIXELS_PER_MILLIMETER_MIN_VALUE; + return 0; + } + + float getProgrssMax(const Option* item) { + if (item == &Option::MUSIC) return MUSIC_MAX_VALUE; + if (item == &Option::SOUND) return SOUND_MAX_VALUE; + if (item == &Option::SENSITIVITY) return SENSITIVITY_MAX_VALUE; + if (item == &Option::PIXELS_PER_MILLIMETER) return PIXELS_PER_MILLIMETER_MAX_VALUE; + return 1.0f; + } + + std::string getMessage(const Option* item); + + void update(); + void load(); + void save(); + void addOptionToSaveOutput(StringVector& stringVector, std::string name, bool boolValue); + void addOptionToSaveOutput(StringVector& stringVector, std::string name, float floatValue); + void addOptionToSaveOutput(StringVector& stringVector, std::string name, int intValue); + void notifyOptionUpdate(const Option* option, bool value); + void notifyOptionUpdate(const Option* option, float value); + void notifyOptionUpdate(const Option* option, int value); +private: + static bool readFloat(const std::string& string, float& value); + static bool readInt(const std::string& string, int& value); + static bool readBool(const std::string& string, bool& value); + +private: + OptionsFile optionsFile; + +}; + +#endif /*NET_MINECRAFT_CLIENT__Options_H__*/ diff --git a/src/client/OptionsFile.cpp b/src/client/OptionsFile.cpp new file mode 100755 index 0000000..49375a0 --- /dev/null +++ b/src/client/OptionsFile.cpp @@ -0,0 +1,37 @@ +#include "OptionsFile.h" +#include +#include + +OptionsFile::OptionsFile() { +#ifdef __APPLE__ + settingsPath = "./Documents/options.txt"; +#elif defined(ANDROID) + settingsPath = "options.txt"; +#else + settingsPath = "options.txt"; +#endif +} + +void OptionsFile::save(const StringVector& settings) { + FILE* pFile = fopen(settingsPath.c_str(), "w"); + if(pFile != NULL) { + for(StringVector::const_iterator it = settings.begin(); it != settings.end(); ++it) { + fprintf(pFile, "%s\n", it->c_str()); + } + fclose(pFile); + } +} + +StringVector OptionsFile::getOptionStrings() { + StringVector returnVector; + FILE* pFile = fopen(settingsPath.c_str(), "w"); + if(pFile != NULL) { + char lineBuff[128]; + while(fgets(lineBuff, sizeof lineBuff, pFile)) { + if(strlen(lineBuff) > 2) + returnVector.push_back(std::string(lineBuff)); + } + fclose(pFile); + } + return returnVector; +} diff --git a/src/client/OptionsFile.h b/src/client/OptionsFile.h new file mode 100755 index 0000000..942af75 --- /dev/null +++ b/src/client/OptionsFile.h @@ -0,0 +1,19 @@ +#ifndef NET_MINECRAFT_CLIENT__OptionsFile_H__ +#define NET_MINECRAFT_CLIENT__OptionsFile_H__ + +//package net.minecraft.client; +#include +#include +typedef std::vector StringVector; +class OptionsFile +{ +public: + OptionsFile(); + void save(const StringVector& settings); + StringVector getOptionStrings(); + +private: + std::string settingsPath; +}; + +#endif /* NET_MINECRAFT_CLIENT__OptionsFile_H__ */ diff --git a/src/client/PixelCalc.h b/src/client/PixelCalc.h new file mode 100755 index 0000000..c70a34a --- /dev/null +++ b/src/client/PixelCalc.h @@ -0,0 +1,36 @@ +// +// PixelCalc.h +// minecraftpe +// +// Created by rhino on 10/24/11. +// Copyright (c) 2011 Mojang AB. All rights reserved. +// + +#ifndef minecraftpe_PixelCalc_h +#define minecraftpe_PixelCalc_h + +class PixelCalc +{ +public: + PixelCalc(float pixelsPerMillimeter = 1) { + setPixelsPerMillimeter(pixelsPerMillimeter); + } + + float millimetersToPixels(float mm) const { + return mm * _pixelsPerMillimeter; + } + float pixelsToMillimeters(float pp) const { + return pp * _millimetersPerPixel; + } + + void setPixelsPerMillimeter(float pixelsPerMillimeter) { + _pixelsPerMillimeter = pixelsPerMillimeter; + _millimetersPerPixel = 1.0f / _pixelsPerMillimeter; + } + +private: + float _pixelsPerMillimeter; + float _millimetersPerPixel; +}; + +#endif diff --git a/src/client/Timer.h b/src/client/Timer.h new file mode 100755 index 0000000..cb7a928 --- /dev/null +++ b/src/client/Timer.h @@ -0,0 +1,124 @@ +#ifndef NET_MINECRAFT_CLIENT__Timer_H__ +#define NET_MINECRAFT_CLIENT__Timer_H__ + +//package net.minecraft.client; +#include "../platform/time.h" + +class Timer +{ +public: + Timer(float ticksPerSecond) + : ticksPerSecond(ticksPerSecond), + adjustTime(1.0f), + timeScale(1.0f), + passedTime(0) + { + lastMs = getTimeMs(); + lastMsSysTime = lastMs; + lastTime = lastMs / 1000.0f; + } + + void advanceTime() { + long nowMs = getTimeMs(); + long passedMs = nowMs - lastMs; + long msSysTime = nowMs;//System.nanoTime() / 1000000; + + if (passedMs > 1000) { + long passedMsSysTime = msSysTime - lastMsSysTime; + if (passedMsSysTime == 0) + passedMs = passedMsSysTime = 1; + + float adjustTimeT = passedMs / (float) passedMsSysTime; + adjustTime += (adjustTimeT - adjustTime) * 0.2f; + + lastMs = nowMs; + lastMsSysTime = msSysTime; + } + if (passedMs < 0) { + lastMs = nowMs; + lastMsSysTime = msSysTime; + } + + float now = msSysTime / 1000.0f; + float passedSeconds = (now - lastTime) * adjustTime; + lastTime = now; + + if (passedSeconds < 0) passedSeconds = 0; + if (passedSeconds > 1) passedSeconds = 1; + //LOGI("passed s: %f\n", passedSeconds); + + passedTime += passedSeconds * timeScale * ticksPerSecond; + + ticks = (int) passedTime; + passedTime -= ticks; + if (ticks > MAX_TICKS_PER_UPDATE) ticks = MAX_TICKS_PER_UPDATE; + a = passedTime; + } + + /** + * Advances time the max number of ticks per second. + */ + void advanceTimeQuickly() { + + float passedSeconds = (float) MAX_TICKS_PER_UPDATE / (float) ticksPerSecond; + + passedTime += passedSeconds * timeScale * ticksPerSecond; + ticks = (int) passedTime; + passedTime -= ticks; + a = passedTime; + + lastMs = getTimeMs();//System.currentTimeMillis(); + lastMsSysTime = lastMs; + } + + void skipTime() { + long nowMs = getTimeMs();//System.currentTimeMillis(); + long passedMs = nowMs - lastMs; + long msSysTime = nowMs;//System.nanoTime() / 1000000; + + if (passedMs > 1000) { + long passedMsSysTime = msSysTime - lastMsSysTime; + if (passedMsSysTime == 0) + passedMs = passedMsSysTime = 1; + + float adjustTimeT = passedMs / (float) passedMsSysTime; + adjustTime += (adjustTimeT - adjustTime) * 0.2f; + + lastMs = nowMs; + lastMsSysTime = msSysTime; + } + if (passedMs < 0) { + lastMs = nowMs; + lastMsSysTime = msSysTime; + } + + float now = msSysTime / 1000.0f; + float passedSeconds = (now - lastTime) * adjustTime; + lastTime = now; + + if (passedSeconds < 0) passedSeconds = 0; + if (passedSeconds > 1) passedSeconds = 1; + + passedTime += passedSeconds * timeScale * ticksPerSecond; + + ticks = (int) 0; + if (ticks > MAX_TICKS_PER_UPDATE) ticks = MAX_TICKS_PER_UPDATE; + passedTime -= ticks; + } + +public: + float ticksPerSecond; + int ticks; + float a; + float timeScale; + float passedTime; +private: + static const int MAX_TICKS_PER_UPDATE = 10; + + float lastTime; + long lastMs; + long lastMsSysTime; + float adjustTime; +}; + +#endif /*NET_MINECRAFT_CLIENT__Timer_H__*/ diff --git a/src/client/User.h b/src/client/User.h new file mode 100755 index 0000000..ebbb2d0 --- /dev/null +++ b/src/client/User.h @@ -0,0 +1,62 @@ +#ifndef NET_MINECRAFT_CLIENT__User_H__ +#define NET_MINECRAFT_CLIENT__User_H__ + +//package net.minecraft.client; + +#include "../world/level/tile/Tile.h" + +class User +{ +public: + //static List allowedTiles = /*new*/ ArrayList(); + + //static { + // allowedTiles.push_back(Tile::rock); + // allowedTiles.push_back(Tile::stoneBrick); + // allowedTiles.push_back(Tile::redBrick); + // allowedTiles.push_back(Tile::dirt); + // allowedTiles.push_back(Tile::wood); + // allowedTiles.push_back(Tile::treeTrunk); + // allowedTiles.push_back(Tile::leaves); + // allowedTiles.push_back(Tile::torch); + // allowedTiles.push_back(Tile::stoneSlabHalf); + + // allowedTiles.push_back(Tile::glass); + // allowedTiles.push_back(Tile::mossStone); + // allowedTiles.push_back(Tile::sapling); + // allowedTiles.push_back(Tile::flower); + // allowedTiles.push_back(Tile::rose); + // allowedTiles.push_back(Tile::mushroom1); + // allowedTiles.push_back(Tile::mushroom2); + // allowedTiles.push_back(Tile::sand); + // allowedTiles.push_back(Tile::gravel); + // allowedTiles.push_back(Tile::sponge); + + // allowedTiles.push_back(Tile::cloth); + // allowedTiles.push_back(Tile::coalOre); + // allowedTiles.push_back(Tile::ironOre); + // allowedTiles.push_back(Tile::goldOre); + // allowedTiles.push_back(Tile::ironBlock); + // allowedTiles.push_back(Tile::goldBlock); + // allowedTiles.push_back(Tile::bookshelf); + // allowedTiles.push_back(Tile::tnt); + // allowedTiles.push_back(Tile::obsidian); + + // // System.out.println(allowedTiles.size()); + //} + + static bool isTileAllowed(const Tile& tile) { + return true; + } + + std::string name; + std::string sessionId; + //std::string mpPassword; + + User(const std::string& name, const std::string& sessionId) { + this->name = name; + this->sessionId = sessionId; + } +}; + +#endif /*NET_MINECRAFT_CLIENT__User_H__*/ diff --git a/src/client/gamemode/CreativeMode.cpp b/src/client/gamemode/CreativeMode.cpp new file mode 100755 index 0000000..43a1b16 --- /dev/null +++ b/src/client/gamemode/CreativeMode.cpp @@ -0,0 +1,72 @@ +#include "CreativeMode.h" +#include "../Minecraft.h" +#ifndef STANDALONE_SERVER +#include "../particle/ParticleEngine.h" +#endif +#include "../player/LocalPlayer.h" +#ifndef STANDALONE_SERVER +#include "../renderer/LevelRenderer.h" +#include "../sound/SoundEngine.h" +#endif +#include "../../world/level/Level.h" +//#include "../../network/Packet.h" +#include "../../network/packet/RemoveBlockPacket.h" +#include "../../world/entity/player/Abilities.h" + +static const int DestructionTickDelay = 10; + +CreativeMode::CreativeMode(Minecraft* minecraft) +: super(minecraft) +{ +} + +void CreativeMode::startDestroyBlock(int x, int y, int z, int face) { + if(minecraft->player->getCarriedItem() != NULL && minecraft->player->getCarriedItem()->id == Item::bow->id) + return; + + creativeDestroyBlock(x, y, z, face); + destroyDelay = DestructionTickDelay; +} + +void CreativeMode::creativeDestroyBlock(int x, int y, int z, int face) { + //if (! + minecraft->level->extinguishFire(x, y, z, face) + //{ + ; + destroyBlock(x, y, z, face); + //} +} + +void CreativeMode::continueDestroyBlock(int x, int y, int z, int face) { + destroyDelay--; + if (destroyDelay <= 0) { + destroyDelay = DestructionTickDelay; + creativeDestroyBlock(x, y, z, face); + } +} + +void CreativeMode::stopDestroyBlock() { +} + +void CreativeMode::initAbilities( Abilities& abilities ) { + abilities.mayfly = true; + abilities.instabuild = true; + abilities.invulnerable = true; +} + +bool CreativeMode::isCreativeType() { + return true; +} + +void CreativeMode::releaseUsingItem( Player* player ) { + if(player->getCarriedItem() != NULL) { + int oldItemId = player->getCarriedItem()->id; + int oldAux = player->getAuxData(); + super::releaseUsingItem(player); + if(player->getCarriedItem() != NULL && player->getCarriedItem()->id == oldItemId) { + player->getCarriedItem()->setAuxValue(oldAux); + } + } else { + super::releaseUsingItem(player); + } +} diff --git a/src/client/gamemode/CreativeMode.h b/src/client/gamemode/CreativeMode.h new file mode 100755 index 0000000..b418111 --- /dev/null +++ b/src/client/gamemode/CreativeMode.h @@ -0,0 +1,27 @@ +#ifndef NET_MINECRAFT_CLIENT_GAMEMODE__CreativeMode_H__ +#define NET_MINECRAFT_CLIENT_GAMEMODE__CreativeMode_H__ + +//package net.minecraft.client.gamemode; + +#include "GameMode.h" + +class CreativeMode: public GameMode +{ + typedef GameMode super; +public: + CreativeMode(Minecraft* minecraft); + + void startDestroyBlock(int x, int y, int z, int face); + void continueDestroyBlock(int x, int y, int z, int face); + void stopDestroyBlock(); + + bool isCreativeType(); + + void initAbilities(Abilities& abilities); + + void releaseUsingItem(Player* player); +private: + void creativeDestroyBlock(int x, int y, int z, int face); +}; + +#endif /*NET_MINECRAFT_CLIENT_GAMEMODE__CreativeMode_H__*/ diff --git a/src/client/gamemode/CreatorMode.cpp b/src/client/gamemode/CreatorMode.cpp new file mode 100755 index 0000000..ae1ffd2 --- /dev/null +++ b/src/client/gamemode/CreatorMode.cpp @@ -0,0 +1,118 @@ +#include "CreatorMode.h" +#include "../Minecraft.h" +#include "../particle/ParticleEngine.h" +#include "../player/LocalPlayer.h" +#include "../renderer/LevelRenderer.h" +#include "../sound/SoundEngine.h" +#include "../../world/level/Level.h" +//#include "../../network/Packet.h" +#include "../../network/packet/RemoveBlockPacket.h" +#include "../../world/entity/player/Abilities.h" + +static const int DestructionTickDelay = 10; + +class Creator: public ICreator { + //virtual void getEvents(); + +public: + Creator(/*int eventLifeTime*/) + : _tileEvents(32), + _tickId(0) + { + } + + void setTick(int tick) { + _tickId = tick; + } + + EventList& getTileEvents() { return _tileEvents; } + + void addevent_blockUse(int entityId, int x, int y, int z, int face) { + TileEvent t = { + entityId, + x,y,z, + face + }; + _tileEvents.add(t, _tickId); + } + +private: + EventList _tileEvents; + int _tickId; +}; + +CreatorMode::CreatorMode(Minecraft* minecraft) +: super(minecraft) +{ + _creator = new Creator(); +} + +CreatorMode::~CreatorMode() { + delete _creator; +} + +void CreatorMode::startDestroyBlock(int x, int y, int z, int face) { + if(minecraft->player->getCarriedItem() != NULL && minecraft->player->getCarriedItem()->id == Item::bow->id) + return; + + CreatorDestroyBlock(x, y, z, face); + destroyDelay = DestructionTickDelay; +} + +void CreatorMode::CreatorDestroyBlock(int x, int y, int z, int face) { + //if (! + minecraft->level->extinguishFire(x, y, z, face) + //{ + ; + destroyBlock(x, y, z, face); + //} +} + +void CreatorMode::continueDestroyBlock(int x, int y, int z, int face) { + destroyDelay--; + if (destroyDelay <= 0) { + destroyDelay = DestructionTickDelay; + CreatorDestroyBlock(x, y, z, face); + } +} + +bool CreatorMode::useItemOn( Player* player, Level* level, ItemInstance* item, int x, int y, int z, int face, const Vec3& hit ) { + if (item && item->id == ((Item*)Item::sword_iron)->id) + _creator->addevent_blockUse(player->entityId, x, y, z, face); + return super::useItemOn(player, level, item, x, y, z, face, hit); +} + +void CreatorMode::stopDestroyBlock() { +} + +void CreatorMode::initAbilities( Abilities& abilities ) { + abilities.mayfly = true; + abilities.instabuild = true; + abilities.invulnerable = true; +} + +bool CreatorMode::isCreativeType() { + return true; +} + +void CreatorMode::releaseUsingItem( Player* player ) { + if(player->getCarriedItem() != NULL) { + int oldItemId = player->getCarriedItem()->id; + int oldAux = player->getAuxData(); + super::releaseUsingItem(player); + if(player->getCarriedItem() != NULL && player->getCarriedItem()->id == oldItemId) { + player->getCarriedItem()->setAuxValue(oldAux); + } + } else { + super::releaseUsingItem(player); + } +} + +ICreator* CreatorMode::getCreator() { + return _creator; +} + +void CreatorMode::tick() { + _creator->setTick(minecraft->level->getTime()); + super::tick(); +} diff --git a/src/client/gamemode/CreatorMode.h b/src/client/gamemode/CreatorMode.h new file mode 100755 index 0000000..a74fe52 --- /dev/null +++ b/src/client/gamemode/CreatorMode.h @@ -0,0 +1,128 @@ +#ifndef NET_MINECRAFT_CLIENT_GAMEMODE__CreatorMode_H__ +#define NET_MINECRAFT_CLIENT_GAMEMODE__CreatorMode_H__ + +//package net.minecraft.client.gamemode; + +#include "GameMode.h" +#include "../../world/PosTranslator.h" + +class ICreator { +public: + virtual ~ICreator() {} + + struct TileEvent { + int entityId; + int x, y, z; + int face; + + void write(std::stringstream& ss, IPosTranslator& t) const { + int xx = x, yy = y, zz = z; + t.to(xx, yy, zz); + ss << xx << "," << yy << "," << zz << "," << face << "," << entityId; + } + }; + + template + class EventList { + public: + EventList(int size) { + _events.reserve(size); + _maxSize = (int)size; + clear(); + } + void clear() { + _index = -1; + _size = 0; + } + void add(const T& item, int tick) { + if (_size < _maxSize) { + _events.push_back(Item()); + ++_size; + } + Item& e = _events[_nextIndex()]; + e.item = item; + e.timestamp = tick; + } + int size() const { + return _size; + } + + const T& operator[](int i) const { + return _events[_getIndex(i)].item; + } + + T& operator[](int i) { + return _events[_getIndex(i)].item; + } + + void write(std::stringstream& ss, IPosTranslator& t, int minTimetamp) const { + int i = _getFirstNewerIndex(minTimetamp); + if (i < 0) + return; + + while (1) { + _events[i].item.write(ss, t); + if (i == _index) return; + ss << "|"; + if (++i == _size) i = 0; + } + } + + private: + int _getIndex(int i) const { return (1 + _index + i) % _size; } + int _nextIndex() { + if (++_index == _size) _index = 0; + return _index; + } + + int _getFirstNewerIndex(int timestamp) const { + for (int i = _index + 1, j = 0; j < _size; ++i, ++j) { + if (i == _size) i = 0; + if (_events[i].timestamp >= timestamp) return i; + } + return -1; + } + struct Item { + int timestamp; + T item; + }; + + int _index; + int _size; + int _maxSize; + std::vector _events; + }; + + virtual EventList& getTileEvents() = 0; +}; + +class Creator; + +class CreatorMode: public GameMode +{ + typedef GameMode super; +public: + CreatorMode(Minecraft* minecraft); + ~CreatorMode(); + + void startDestroyBlock(int x, int y, int z, int face); + void continueDestroyBlock(int x, int y, int z, int face); + void stopDestroyBlock(); + + bool useItemOn(Player* player, Level* level, ItemInstance* item, int x, int y, int z, int face, const Vec3& hit); + + void tick(); + ICreator* getCreator(); + + bool isCreativeType(); + + void initAbilities(Abilities& abilities); + + void releaseUsingItem(Player* player); +private: + void CreatorDestroyBlock(int x, int y, int z, int face); + + Creator* _creator; +}; + +#endif /*NET_MINECRAFT_CLIENT_GAMEMODE__CreatorMode_H__*/ diff --git a/src/client/gamemode/GameMode.cpp b/src/client/gamemode/GameMode.cpp new file mode 100755 index 0000000..7535f35 --- /dev/null +++ b/src/client/gamemode/GameMode.cpp @@ -0,0 +1,173 @@ +#include "GameMode.h" +#include "../Minecraft.h" +#include "../../network/packet/UseItemPacket.h" +#include "../../network/packet/PlayerActionPacket.h" +#include "../../world/level/Level.h" +#include "../../world/item/ItemInstance.h" +#include "../player/LocalPlayer.h" +#ifndef STANDALONE_SERVER +#include "../sound/SoundEngine.h" +#include "../particle/ParticleEngine.h" +#endif +#include "../../network/RakNetInstance.h" +#include "../../network/packet/RemoveBlockPacket.h" +#ifndef STANDALONE_SERVER +#include "../renderer/LevelRenderer.h" +#endif +#include "../../world/level/material/Material.h" + +GameMode::GameMode( Minecraft* minecraft) +: minecraft(minecraft), + destroyProgress(0), + oDestroyProgress(0), + destroyTicks(0), + destroyDelay(0) +{ +} + +/*virtual*/ +Player* GameMode::createPlayer(Level* level) { + return new LocalPlayer(minecraft, level, minecraft->user, level->dimension->id, isCreativeType()); +} + +/*virtual*/ +void GameMode::interact(Player* player, Entity* entity) { + player->interact(entity); +} + +/*virtual*/ +void GameMode::attack(Player* player, Entity* entity) { + if (minecraft->level->adventureSettings.noPvP && entity->isPlayer()) + return; + if (minecraft->level->adventureSettings.noPvM && entity->isMob()) + return; + player->attack(entity); +} + +/* virtual */ +void GameMode::startDestroyBlock( int x, int y, int z, int face ) { + if(minecraft->player->getCarriedItem() != NULL && minecraft->player->getCarriedItem()->id == Item::bow->id) + return; + destroyBlock(x, y, z, face); +} + +/*virtual*/ +bool GameMode::destroyBlock(int x, int y, int z, int face) { + Level* level = minecraft->level; + Tile* oldTile = Tile::tiles[level->getTile(x, y, z)]; + if (!oldTile) + return false; + + if (level->adventureSettings.immutableWorld) { + if (oldTile != (Tile*)Tile::leaves + && oldTile->material != Material::plant) { + return false; + } + } +#ifndef STANDALONE_SERVER + minecraft->particleEngine->destroy(x, y, z); +#endif + int data = level->getData(x, y, z); + bool changed = level->setTile(x, y, z, 0); + if (changed) { +#ifndef STANDALONE_SERVER + minecraft->soundEngine->play(oldTile->soundType->getBreakSound(), x + 0.5f, y + 0.5f, z + 0.5f, (oldTile->soundType->getVolume() + 1) / 2, oldTile->soundType->getPitch() * 0.8f); +#endif + oldTile->destroy(level, x, y, z, data); + if (minecraft->options.destroyVibration) minecraft->platform()->vibrate(24); + + if (minecraft->isOnline()) { + RemoveBlockPacket packet(minecraft->player, x, y, z); + minecraft->raknetInstance->send(packet); + } + } + return changed; +} +/*virtual*/ +bool GameMode::useItemOn(Player* player, Level* level, ItemInstance* item, int x, int y, int z, int face, const Vec3& hit) { + float clickX = hit.x - x; + float clickY = hit.y - y; + float clickZ = hit.z - z; + item = player->inventory->getSelected(); + if(level->isClientSide) { + UseItemPacket packet(x, y, z, face, item, player->entityId, clickX, clickY, clickZ); + minecraft->raknetInstance->send(packet); + } + int t = level->getTile(x, y, z); + if (t == Tile::invisible_bedrock->id) return false; + if (t > 0 && Tile::tiles[t]->use(level, x, y, z, player)) + return true; + + if (item == NULL) return false; + if(isCreativeType()) { + int aux = item->getAuxValue(); + int count = item->count; + bool success = item->useOn(player, level, x, y, z, face, clickX, clickY, clickZ); + item->setAuxValue(aux); + item->count = count; + return success; + } else { + return item->useOn(player, level, x, y, z, face, clickX, clickY, clickZ); + } +} + +bool GameMode::useItem( Player* player, Level* level, ItemInstance* item ) { + int oldCount = item->count; + + ItemInstance* itemInstance = item->use(level, player); + if(level->isClientSide) { + UseItemPacket packet(item, player->entityId, player->aimDirection); + minecraft->raknetInstance->send(packet); + } + if (itemInstance != item || (itemInstance != NULL && itemInstance->count != oldCount)) { + //player.inventory.items[player.inventory.selected] = itemInstance; + //if (itemInstance.count == 0) { + // player.inventory.items[player.inventory.selected] = NULL; + //} + return true; + } + return false; +} + +ItemInstance* GameMode::handleInventoryMouseClick( int containerId, int slotNum, int buttonNum, Player* player ) { + //return player.containerMenu.clicked(slotNum, buttonNum, player); + return NULL; +} + +void GameMode::handleCloseInventory( int containerId, Player* player ) { + //player.containerMenu.removed(player); + //player.containerMenu = player.inventoryMenu; +} + +float GameMode::getPickRange() { + return 5.0f; +} + +void GameMode::initPlayer( Player* player ) { + initAbilities(player->abilities); +} + +void GameMode::releaseUsingItem(Player* player){ + if(minecraft->level->isClientSide) { + PlayerActionPacket packet(PlayerActionPacket::RELEASE_USE_ITEM, 0, 0, 0, 0, player->entityId); + minecraft->raknetInstance->send(packet); + } + player->releaseUsingItem(); +} + +void GameMode::tick() { + oDestroyProgress = destroyProgress; +} + +void GameMode::render( float a ) { +#ifndef STANDALONE_SERVER + if (destroyProgress <= 0) { + minecraft->gui.progress = 0; + minecraft->levelRenderer->destroyProgress = 0; + } else { + float dp = oDestroyProgress + (destroyProgress - oDestroyProgress) * a; + minecraft->gui.progress = dp; + minecraft->levelRenderer->destroyProgress = dp; + } +#endif +} diff --git a/src/client/gamemode/GameMode.h b/src/client/gamemode/GameMode.h new file mode 100755 index 0000000..83e7f7d --- /dev/null +++ b/src/client/gamemode/GameMode.h @@ -0,0 +1,63 @@ +#ifndef NET_MINECRAFT_CLIENT_GAMEMODE__GameMode_H__ +#define NET_MINECRAFT_CLIENT_GAMEMODE__GameMode_H__ + +//package net.minecraft.client.gamemode; + +#include "../../world/level/tile/Tile.h" + +class ItemInstance; +class Minecraft; +class Level; +class Player; +class Abilities; + +class GameMode +{ +protected: + Minecraft* minecraft; +public: + GameMode(Minecraft* minecraft); + virtual ~GameMode() {} + + virtual void initLevel(Level* level) {} + + virtual void startDestroyBlock(int x, int y, int z, int face); + virtual bool destroyBlock(int x, int y, int z, int face); + virtual void continueDestroyBlock(int x, int y, int z, int face) = 0; + virtual void stopDestroyBlock() {} + + virtual void tick(); + virtual void render(float a); + + virtual float getPickRange(); + /* void postLevelGen(LevelGen levelGen, Level level) {} */ + + virtual bool useItem(Player* player, Level* level, ItemInstance* item); + virtual bool useItemOn(Player* player, Level* level, ItemInstance* item, int x, int y, int z, int face, const Vec3& hit); + + virtual Player* createPlayer(Level* level); + virtual void initPlayer(Player* player); + virtual void adjustPlayer(Player* player) {} + virtual bool canHurtPlayer() { return false; } + + virtual void interact(Player* player, Entity* entity); + virtual void attack(Player* player, Entity* entity); + + virtual ItemInstance* handleInventoryMouseClick(int containerId, int slotNum, int buttonNum, Player* player); + virtual void handleCloseInventory(int containerId, Player* player); + + virtual bool isCreativeType() { return false; } + virtual bool isSurvivalType() { return false; } + + virtual void initAbilities(Abilities& abilities) {} + + virtual void releaseUsingItem(Player* player); + + float oDestroyProgress; + float destroyProgress; +protected: + int destroyTicks; + int destroyDelay; +}; + +#endif /*NET_MINECRAFT_CLIENT_GAMEMODE__GameMode_H__*/ diff --git a/src/client/gamemode/SurvivalMode.cpp b/src/client/gamemode/SurvivalMode.cpp new file mode 100755 index 0000000..ac49fda --- /dev/null +++ b/src/client/gamemode/SurvivalMode.cpp @@ -0,0 +1,98 @@ +#include "SurvivalMode.h" +#include "../Minecraft.h" +#include "../player/LocalPlayer.h" +#ifndef STANDALONE_SERVER +#include "../particle/ParticleEngine.h" +#include "../sound/SoundEngine.h" +#endif +#include "../../world/level/Level.h" +#include "../../world/entity/player/Abilities.h" + +SurvivalMode::SurvivalMode( Minecraft* minecraft ) +: super(minecraft), + xDestroyBlock(-1), + yDestroyBlock(-1), + zDestroyBlock(-1) +{ +} + +void SurvivalMode::continueDestroyBlock( int x, int y, int z, int face ) { + if (destroyDelay > 0) { + destroyDelay--; + return; + } + + if (x == xDestroyBlock && y == yDestroyBlock && z == zDestroyBlock) { + int t = minecraft->level->getTile(x, y, z); + if (t == 0) return; + Tile* tile = Tile::tiles[t]; + + destroyProgress += tile->getDestroyProgress(minecraft->player); + + if ((++destroyTicks & 3) == 1) { +#ifndef STANDALONE_SERVER + if (tile != NULL) { + minecraft->soundEngine->play(tile->soundType->getStepSound(), x + 0.5f, y + 0.5f, z + 0.5f, (tile->soundType->getVolume() + 1) / 8, tile->soundType->getPitch() * 0.5f); + } +#endif + } + + if (destroyProgress >= 1) { + destroyBlock(x, y, z, face); + destroyProgress = 0; + oDestroyProgress = 0; + destroyTicks = 0; + destroyDelay = 5; + } + } else { + destroyProgress = 0; + oDestroyProgress = 0; + destroyTicks = 0; + xDestroyBlock = x; + yDestroyBlock = y; + zDestroyBlock = z; + } +} + +bool SurvivalMode::destroyBlock( int x, int y, int z, int face ) { + int t = minecraft->level->getTile(x, y, z); + int data = minecraft->level->getData(x, y, z); + bool changed = GameMode::destroyBlock(x, y, z, face); + bool couldDestroy = minecraft->player->canDestroy(Tile::tiles[t]); + + ItemInstance* item = minecraft->player->inventory->getSelected(); + if (item != NULL) { + item->mineBlock(t, x, y, z); + if (item->count == 0) { + //item->snap(minecraft->player); + minecraft->player->inventory->clearSlot(minecraft->player->inventory->selected); + } + } + if (changed && couldDestroy) { + ItemInstance instance(t, 1, data); + Tile::tiles[t]->playerDestroy(minecraft->level, minecraft->player, x, y, z, data); + } + return changed; +} + +void SurvivalMode::stopDestroyBlock() { + destroyProgress = 0; + destroyDelay = 0; +} + +void SurvivalMode::initAbilities( Abilities& abilities ) { + abilities.flying = false; + abilities.mayfly = false; + abilities.instabuild = false; + abilities.invulnerable = false; +} + +void SurvivalMode::startDestroyBlock( int x, int y, int z, int face ) { + if(minecraft->player->getCarriedItem() != NULL && minecraft->player->getCarriedItem()->id == Item::bow->id) + return; + + int t = minecraft->level->getTile(x, y, z); + if (t > 0 && destroyProgress == 0) Tile::tiles[t]->attack(minecraft->level, x, y, z, minecraft->player); + if (t > 0 && Tile::tiles[t]->getDestroyProgress(minecraft->player) >= 1) + destroyBlock(x, y, z, face); +} diff --git a/src/client/gamemode/SurvivalMode.h b/src/client/gamemode/SurvivalMode.h new file mode 100755 index 0000000..3057103 --- /dev/null +++ b/src/client/gamemode/SurvivalMode.h @@ -0,0 +1,31 @@ +#ifndef NET_MINECRAFT_CLIENT_GAMEMODE__SurvivalMode_H__ +#define NET_MINECRAFT_CLIENT_GAMEMODE__SurvivalMode_H__ + +#include "GameMode.h" + +class Abilities; +class Minecraft; + +class SurvivalMode: public GameMode +{ + typedef GameMode super; +public: + SurvivalMode(Minecraft* minecraft); + + bool destroyBlock(int x, int y, int z, int face); + void startDestroyBlock(int x, int y, int z, int face); + void continueDestroyBlock(int x, int y, int z, int face); + void stopDestroyBlock(); + + bool canHurtPlayer() { return true; } + + bool isSurvivalType() { return true; } + + void initAbilities( Abilities& abilities ); +private: + int xDestroyBlock; + int yDestroyBlock; + int zDestroyBlock; +}; + +#endif /*NET_MINECRAFT_CLIENT_GAMEMODE__SurvivalMode_H__*/ diff --git a/src/client/gui/Font.cpp b/src/client/gui/Font.cpp new file mode 100755 index 0000000..48efbf7 --- /dev/null +++ b/src/client/gui/Font.cpp @@ -0,0 +1,372 @@ +#include "Font.h" + +//#include "SharedConstants.h" +#include "../Options.h" +#include "../renderer/Textures.h" +#include "../renderer/Tesselator.h" +#include "../../util/Mth.h" +#include + +Font::Font( Options* options, const std::string& name, Textures* textures ) +: options(options), + fontTexture(0), + fontName(name), + index(0), + count(0), + _textures(textures), + _x(0), _y(0), + _cols(16), _rows(16), + _charOffset(0), + lineHeight(DefaultLineHeight) +{ + init(options); +} + + +//Font::Font( Options* options, const std::string& name, Textures* textures, int imgW, int imgH, int x, int y, int cols, int rows, unsigned char charOffset ) +//: options(options), +// fontTexture(0), +// fontName(name), +// index(0), +// count(0), +// _textures(textures), +// _x(x), _y(y), +// _cols(cols), _rows(rows), +// _charOffset(charOffset) +//{ +// init(options); +//} + +void Font::onGraphicsReset() +{ + init(options); +} + +void Font::init( Options* options ) +{ + TextureId fontTexture = _textures->loadTexture(fontName); + const TextureData* tex = _textures->getTemporaryTextureData(fontTexture); + + if (!tex) + return; + + unsigned char* rawPixels = tex->data; + + const int numChars = _rows * _cols; + for (int i = 0; i < numChars; i++) { + int xt = i % _cols; + int yt = i / _cols; + + int x = 7; + for (; x >= 0; x--) { + int xPixel = _x + xt * 8 + x; + bool emptyColumn = true; + for (int y = 0; y < 8 && emptyColumn; y++) { + int yPixel = _y + (yt * 8 + y) * tex->w; + unsigned char pixelalpha = rawPixels[(xPixel + yPixel) << 2]; + if (pixelalpha > 0) emptyColumn = false; + } + if (!emptyColumn) { + break; + } + } + + if (i == ' ') x = 4 - 2; + charWidths[i] = x + 2; + fcharWidths[i] = (float) charWidths[i]; + } + +#ifdef USE_VBO + return; // this <1 +#endif + +#ifndef USE_VBO + listPos = glGenLists(256 + 32); + + Tesselator& t = Tesselator::instance; + for (int i = 0; i < 256; i++) { + glNewList(listPos + i, GL_COMPILE); + // @attn @huge @note: This is some dangerous code right here / Aron, added ^1 + t.begin(); + buildChar(i); + t.end(false, -1); + + glTranslatef2((GLfloat)charWidths[i], 0.0f, 0.0f); + glEndList(); + } + + for (int i = 0; i < 32; i++) { + int br = ((i >> 3) & 1) * 0x55; + int r = ((i >> 2) & 1) * 0xaa + br; + int g = ((i >> 1) & 1) * 0xaa + br; + int b = ((i >> 0) & 1) * 0xaa + br; + if (i == 6) { + r += 0x55; + } + bool darken = i >= 16; + + if (options->anaglyph3d) { + int cr = (r * 30 + g * 59 + b * 11) / 100; + int cg = (r * 30 + g * 70) / (100); + int cb = (r * 30 + b * 70) / (100); + + r = cr; + g = cg; + b = cb; + } + + // color = r << 16 | g << 8 | b; + if (darken) { + r /= 4; + g /= 4; + b /= 4; + } + + glNewList(listPos + 256 + i, GL_COMPILE); + glColor3f(r / 255.0f, g / 255.0f, b / 255.0f); + glEndList(); + } +#endif +} + +void Font::drawShadow( const std::string& str, float x, float y, int color ) +{ + draw(str, x + 1, y + 1, color, true); + draw(str, x, y, color); +} +void Font::drawShadow( const char* str, float x, float y, int color ) +{ + draw(str, x + 1, y + 1, color, true); + draw(str, x, y, color); +} + +void Font::draw( const std::string& str, float x, float y, int color ) +{ + draw(str, x, y, color, false); +} + +void Font::draw( const char* str, float x, float y, int color ) +{ + draw(str, x, y, color, false); +} + +void Font::draw( const char* str, float x, float y, int color, bool darken ) +{ +#ifdef USE_VBO + drawSlow(str, x, y, color, darken); +#endif +} + +void Font::draw( const std::string& str, float x, float y, int color, bool darken ) +{ +#ifdef USE_VBO + drawSlow(str, x, y, color, darken); + return; +#endif + + if (str.empty()) return; + + if (darken) { + int oldAlpha = color & 0xff000000; + color = (color & 0xfcfcfc) >> 2; + color += oldAlpha; + } + + _textures->loadAndBindTexture(fontName); + float r = ((color >> 16) & 0xff) / 255.0f; + float g = ((color >> 8) & 0xff) / 255.0f; + float b = ((color) & 0xff) / 255.0f; + float a = ((color >> 24) & 0xff) / 255.0f; + if (a == 0) a = 1; + glColor4f2(r, g, b, a); + + static const std::string hex("0123456789abcdef"); + + index = 0; + glPushMatrix2(); + glTranslatef2((GLfloat)x, (GLfloat)y, 0.0f); + for (unsigned int i = 0; i < str.length(); i++) { + while (str.length() > i + 1 && str[i] == '§') { + int cc = hex.find((char)tolower(str[i + 1])); + if (cc < 0 || cc > 15) cc = 15; + lists[index++] = listPos + 256 + cc + (darken ? 16 : 0); + + if (index == 1024) { + count = index; + index = 0; +#ifndef USE_VBO + glCallLists(count, GL_UNSIGNED_INT, lists); +#endif + count = 1024; + } + + i += 2; + } + + if (i < str.length()) { + //int ch = SharedConstants.acceptableLetters.indexOf(str.charAt(i)); + char ch = str[i]; + if (ch >= 0) { + //ib.put(listPos + ch + 32); + lists[index++] = listPos + ch; + } + } + + if (index == 1024) { + count = index; + index = 0; +#ifndef USE_VBO + glCallLists(count, GL_UNSIGNED_INT, lists); +#endif + count = 1024; + } + } + count = index; + index = 0; +#ifndef USE_VBO + glCallLists(count, GL_UNSIGNED_INT, lists); +#endif + glPopMatrix2(); +} + +int Font::width( const std::string& str ) +{ + int maxLen = 0; + int len = 0; + + for (unsigned int i = 0; i < str.length(); i++) { + if (str[i] == '§') { + i++; + } else { + //int ch = SharedConstants.acceptableLetters.indexOf(str.charAt(i)); + //if (ch >= 0) { + // len += charWidths[ch + 32]; + //} + if (str[i] == '\n') { + if (len > maxLen) maxLen = len; + len = 0; + } + else { + int charWidth = charWidths[ (unsigned char) str[i] ]; + len += charWidth; + } + } + } + return maxLen>len? maxLen : len; +} + +int Font::height( const std::string& str ) { + int h = 0; + bool hasLine = false; + for (unsigned int i = 0; i < str.length(); ++i) { + if (str[i] == '\n') hasLine = true; + else { + if (hasLine) h += lineHeight; + hasLine = false; + } + } + return h; +} + +std::string Font::sanitize( const std::string& str ) +{ + std::string sanitized(str.length() + 1, 0); + int j = 0; + + for (unsigned int i = 0; i < str.length(); i++) { + if (str[i] == '§') { + i++; + //} else if (SharedConstants.acceptableLetters.indexOf(str.charAt(i)) >= 0) { + } else { + sanitized[j++] = str[i]; + } + } + return sanitized.erase(j); +} + +void Font::drawWordWrap( const std::string& str, float x, float y, float w, int col ) +{ + char* cstr = new char[str.length() + 1]; + strncpy(cstr, str.c_str(), str.length()); + cstr[str.length()] = 0; + + const char* lims = " \n\t\r"; + char* ptok = strtok(cstr, lims); + + std::vector words; + while (ptok != NULL) { + words.push_back( ptok ); + ptok = strtok(NULL, lims); + } + + delete[] cstr; + + int pos = 0; + while (pos < (int)words.size()) { + std::string line = words[pos++] + " "; + while (pos < (int)words.size() && width(line + words[pos]) < w) { + line += words[pos++] + " "; + } + drawShadow(line, x, y, col); + y += lineHeight; + } +} + +void Font::drawSlow( const std::string& str, float x, float y, int color, bool darken /*= false*/ ) { + drawSlow(str.c_str(), x, y, color, darken); +} +void Font::drawSlow( const char* str, float x, float y, int color, bool darken /*= false*/ ) +{ + if (!str) return; + + if (darken) { + int oldAlpha = color & 0xff000000; + color = (color & 0xfcfcfc) >> 2; + color += oldAlpha; + } + + _textures->loadAndBindTexture(fontName); + + Tesselator& t = Tesselator::instance; + t.begin(); + int alpha = (0xff000000 & color) >> 24; + if (!alpha) alpha = 0xff; + t.color((color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, alpha); + + t.addOffset((float)x, (float)y, 0); + float xOffset = 0; + float yOffset = 0; + + while (unsigned char ch = *(str++)) { + if (ch == '\n') { + xOffset = 0; + yOffset += lineHeight; + } else { + buildChar(ch, xOffset, yOffset); + xOffset += fcharWidths[ch]; + } + } + t.draw(); + t.addOffset(-(float)x, -(float)y, 0); +} + +void Font::buildChar( unsigned char i, float x /*= 0*/, float y /*=0*/ ) +{ + Tesselator& t = Tesselator::instance; + + //i -= _charOffset; + //int ix = (i % _cols) * 8 + _x; + //int iy = (i / _cols) * 8 + _y; + float ix = (float)((i & 15) * 8); + float iy = (float)((i >> 4) * 8); + float s = 7.99f; + + float uo = (0.0f) / 128.0f; + float vo = (0.0f) / 128.0f; + + t.vertexUV(x, y + s, 0, ix / 128.0f + uo, (iy + s) / 128.0f + vo); + t.vertexUV(x + s, y + s, 0, (ix + s) / 128.0f + uo, (iy + s) / 128.0f + vo); + t.vertexUV(x + s, y, 0, (ix + s) / 128.0f + uo, iy / 128.0f + vo); + t.vertexUV(x, y, 0, ix / 128.0f + uo, iy / 128.0f + vo); +} + diff --git a/src/client/gui/Font.h b/src/client/gui/Font.h new file mode 100755 index 0000000..69a0106 --- /dev/null +++ b/src/client/gui/Font.h @@ -0,0 +1,63 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__Font_H__ +#define NET_MINECRAFT_CLIENT_GUI__Font_H__ + +//package net.minecraft.client.gui; + +#include +#include + +#include "../renderer/gles.h" + +class Textures; +class Options; + +class Font +{ +public: + Font(Options* options, const std::string& name, Textures* textures); + //Font(Options* options, const std::string& name, Textures* textures, int imgW, int imgH, int x, int y, int cols, int rows, unsigned char charOffset); + + void init(Options* options); + void onGraphicsReset(); + + void draw(const char* str, float x, float y, int color); + void draw(const std::string& str, float x, float y, int color); + void draw(const char* str, float x, float y, int color, bool darken); + void draw(const std::string& str, float x, float y, int color, bool darken); + void drawShadow(const std::string& str, float x, float y, int color); + void drawShadow(const char* str, float x, float y, int color); + void drawWordWrap(const std::string& str, float x, float y, float w, int col); + + int width(const std::string& str); + int height(const std::string& str); + + static std::string sanitize(const std::string& str); +private: + void buildChar(unsigned char i, float x = 0, float y = 0); + void drawSlow(const std::string& str, float x, float y, int color, bool darken = false); + void drawSlow(const char* str, float x, float y, int color, bool darken = false); +public: + int fontTexture; + int lineHeight; + static const int DefaultLineHeight = 10; +private: + int charWidths[256]; + float fcharWidths[256]; + int listPos; + + int index; + int count; + GLuint lists[1024]; + + std::string fontName; + Textures* _textures; + + Options* options; + + int _x, _y; + int _cols; + int _rows; + unsigned char _charOffset; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__Font_H__*/ diff --git a/src/client/gui/Gui.cpp b/src/client/gui/Gui.cpp new file mode 100755 index 0000000..93a3c0c --- /dev/null +++ b/src/client/gui/Gui.cpp @@ -0,0 +1,810 @@ +#include "Gui.h" +#include "Font.h" +#include "screens/IngameBlockSelectionScreen.h" +#include "../Minecraft.h" +#include "../player/LocalPlayer.h" +#include "../renderer/Tesselator.h" +#include "../renderer/TileRenderer.h" +#include "../renderer/LevelRenderer.h" +#include "../renderer/GameRenderer.h" +#include "../renderer/entity/ItemRenderer.h" +#include "../player/input/IInputHolder.h" +#include "../gamemode/GameMode.h" +#include "../gamemode/CreativeMode.h" +#include "../renderer/Textures.h" +#include "../../AppConstants.h" +#include "../../world/entity/player/Inventory.h" +#include "../../world/level/material/Material.h" +#include "../../world/item/Item.h" +#include "../../world/item/ItemInstance.h" +#include "../../platform/input/Mouse.h" +#include "../../world/level/Level.h" +#include "../../world/PosTranslator.h" + +float Gui::InvGuiScale = 1.0f / 3.0f; +float Gui::GuiScale = 1.0f / Gui::InvGuiScale; +const float Gui::DropTicks = 40.0f; + +//#include + +Gui::Gui(Minecraft* minecraft) +: minecraft(minecraft), + tickCount(0), + progress(0), + overlayMessageTime(0), + animateOverlayMessageColor(false), + tbr(1), + _inventoryNeedsUpdate(true), + _flashSlotId(-1), + _flashSlotStartTime(-1), + _slotFont(NULL), + _numSlots(4), + _currentDropTicks(-1), + _currentDropSlot(-1), + MAX_MESSAGE_WIDTH(240), + itemNameOverlayTime(2) +{ + glGenBuffers2(1, &_inventoryRc.vboId); + glGenBuffers2(1, &rcFeedbackInner.vboId); + glGenBuffers2(1, &rcFeedbackOuter.vboId); + //Gui::InvGuiScale = 1.0f / (int) (3 * Minecraft::width / 854); +} + +Gui::~Gui() +{ + if (_slotFont) + delete _slotFont; + + glDeleteBuffers(1, &_inventoryRc.vboId); +} + +void Gui::render(float a, bool mouseFree, int xMouse, int yMouse) { + + if (!minecraft->level || !minecraft->player) + return; + + //minecraft->gameRenderer->setupGuiScreen(); + Font* font = minecraft->font; + + const bool isTouchInterface = minecraft->useTouchscreen(); + const int screenWidth = (int)(minecraft->width * InvGuiScale); + const int screenHeight = (int)(minecraft->height * InvGuiScale); + blitOffset = -90; + renderProgressIndicator(isTouchInterface, screenWidth, screenHeight, a); + + glColor4f2(1, 1, 1, 1); + + // H: 4 + // T: 7 + // L: 6 + // F: 3 + int ySlot = screenHeight - 16 - 3; + + if (minecraft->gameMode->canHurtPlayer()) { + minecraft->textures->loadAndBindTexture("gui/icons.png"); + Tesselator& t = Tesselator::instance; + t.beginOverride(); + t.colorABGR(0xffffffff); + renderHearts(); + renderBubbles(); + t.endOverrideAndDraw(); + } + + if(minecraft->player->getSleepTimer() > 0) { + glDisable(GL_DEPTH_TEST); + glDisable(GL_ALPHA_TEST); + + renderSleepAnimation(screenWidth, screenHeight); + + glEnable(GL_ALPHA_TEST); + glEnable(GL_DEPTH_TEST); + } + + renderToolBar(a, ySlot, screenWidth); + + + //font->drawShadow(APP_NAME, 2, 2, 0xffffffff); + //font->drawShadow("This is a demo, not the finished product", 2, 10 + 2, 0xffffffff); + #ifdef APPLE_DEMO_PROMOTION + font->drawShadow("Demo version", 2, 0 + 2, 0xffffffff); + #endif /*APPLE_DEMO_PROMOTION*/ + glEnable(GL_BLEND); + unsigned int max = 10; + bool isChatting = false; + renderChatMessages(screenHeight, max, isChatting, font); +#if !defined(RPI) + renderOnSelectItemNameText(screenWidth, font, ySlot); +#endif +#if defined(RPI) + renderDebugInfo(); +#endif + +// glPopMatrix2(); +// +// glEnable(GL_ALPHA_TEST); + glDisable(GL_BLEND); + glEnable2(GL_ALPHA_TEST); +} + +int Gui::getSlotIdAt(int x, int y) { + int screenWidth = (int)(minecraft->width * InvGuiScale); + int screenHeight = (int)(minecraft->height * InvGuiScale); + x = (int)(x * InvGuiScale); + y = (int)(y * InvGuiScale); + + if (y < (screenHeight - 16 - 3) || y > screenHeight) + return -1; + + int xBase = 2 + screenWidth / 2 - getNumSlots() * 10; + int xRel = (x - xBase); + if (xRel < 0) + return -1; + + int slot = xRel / 20; + return (slot >= 0 && slot < getNumSlots())? slot : -1; +} + +bool Gui::isInside(int x, int y) { + return getSlotIdAt(x, y) != -1; +} + +int Gui::getNumSlots() { + return _numSlots; +} + +void Gui::flashSlot(int slotId) { + _flashSlotId = slotId; + _flashSlotStartTime = getTimeS(); +} + +void Gui::getSlotPos(int slot, int& posX, int& posY) { + int screenWidth = (int)(minecraft->width * InvGuiScale); + int screenHeight = (int)(minecraft->height * InvGuiScale); + posX = screenWidth / 2 - getNumSlots() * 10 + slot * 20, + posY = screenHeight - 22; +} + +RectangleArea Gui::getRectangleArea(int extendSide) { + const int Spacing = 3; + const float pCenterX = 2.0f + (float)(minecraft->width / 2); + const float pHalfWidth = (1.0f + (getNumSlots() * 10 + Spacing)) * Gui::GuiScale; + const float pHeight = (22 + Spacing) * Gui::GuiScale; + + if (extendSide < 0) + return RectangleArea(0, (float)minecraft->height-pHeight, pCenterX+pHalfWidth+2, (float)minecraft->height); + if (extendSide > 0) + return RectangleArea(pCenterX-pHalfWidth, (float)minecraft->height-pHeight, (float)minecraft->width, (float)minecraft->height); + + return RectangleArea(pCenterX-pHalfWidth, (float)minecraft->height-pHeight, pCenterX+pHalfWidth+2, (float)minecraft->height); +} + +void Gui::handleClick(int button, int x, int y) { + if (button != MouseAction::ACTION_LEFT) return; + + int slot = getSlotIdAt(x, y); + if (slot != -1) + { + if (slot == (getNumSlots()-1)) + { + minecraft->screenChooser.setScreen(SCREEN_BLOCKSELECTION); + } + else + { + minecraft->player->inventory->selectSlot(slot); + itemNameOverlayTime = 0; + } + } +} + +void Gui::handleKeyPressed(int key) +{ + if (key == 99) + { + if (minecraft->player->inventory->selected > 0) + { + minecraft->player->inventory->selected--; + } + } + else if (key == 4) + { + if (minecraft->player->inventory->selected < (getNumSlots() - 2)) + { + minecraft->player->inventory->selected++; + } + } + else if (key == 100) + { + minecraft->screenChooser.setScreen(SCREEN_BLOCKSELECTION); + } +} + +void Gui::tick() { + if (overlayMessageTime > 0) overlayMessageTime--; + tickCount++; + if(itemNameOverlayTime < 2) + itemNameOverlayTime += 1.0f / SharedConstants::TicksPerSecond; + for (unsigned int i = 0; i < guiMessages.size(); i++) { + guiMessages.at(i).ticks++; + } + + if (!minecraft->isCreativeMode()) + tickItemDrop(); +} + +void Gui::addMessage(const std::string& _string) { + if (!minecraft->font) + return; + + std::string string = _string; + while (minecraft->font->width(string) > MAX_MESSAGE_WIDTH) { + unsigned int i = 1; + while (i < string.length() && minecraft->font->width(string.substr(0, i + 1)) <= MAX_MESSAGE_WIDTH) { + i++; + } + addMessage(string.substr(0, i)); + string = string.substr(i); + } + GuiMessage message; + message.message = string; + message.ticks = 0; + guiMessages.insert(guiMessages.begin(), message); + while (guiMessages.size() > 30) { + guiMessages.pop_back(); + } +} + +void Gui::setNowPlaying(const std::string& string) { + overlayMessageString = "Now playing: " + string; + overlayMessageTime = 20 * 3; + animateOverlayMessageColor = true; +} + +void Gui::displayClientMessage(const std::string& messageId) { + //Language language = Language.getInstance(); + //std::string languageString = language.getElement(messageId); + addMessage(std::string("Client message: ") + messageId); +} + +void Gui::renderVignette(float br, int w, int h) { + br = 1 - br; + if (br < 0) br = 0; + if (br > 1) br = 1; + tbr += (br - tbr) * 0.01f; + + glDisable(GL_DEPTH_TEST); + glDepthMask(false); + glBlendFunc2(GL_ZERO, GL_ONE_MINUS_SRC_COLOR); + glColor4f2(tbr, tbr, tbr, 1); + minecraft->textures->loadAndBindTexture("misc/vignette.png"); + + Tesselator& t = Tesselator::instance; + t.begin(); + t.vertexUV(0, (float)h, -90, 0, 1); + t.vertexUV((float)w, (float)h, -90, 1, 1); + t.vertexUV((float)w, 0, -90, 1, 0); + t.vertexUV(0, 0, -90, 0, 0); + t.draw(); + glDepthMask(true); + glEnable(GL_DEPTH_TEST); + glColor4f2(1, 1, 1, 1); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +} + +void Gui::renderSlot(int slot, int x, int y, float a) { + ItemInstance* item = minecraft->player->inventory->getItem(slot); + if (!item) { + //LOGW("Warning: item @ Gui::renderSlot is NULL\n"); + return; + } + + const bool fancy = true; + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, item, (float)x, (float)y, fancy); +} + +void Gui::renderSlotText( const ItemInstance* item, float x, float y, bool hasFinite, bool shadow ) +{ + //if (!item || item->getItem()->getMaxStackSize() <= 1) { + if (item->count <= 1) { + return; + } + + int c = item->count; + + char buffer[4] = {0,0,0,0}; + if (hasFinite) + itemCountItoa(buffer, c); + else + buffer[0] = (char)157; + + //LOGI("slot: %d - %s\n", slot, buffer); + if (shadow) + minecraft->font->drawShadow(buffer, x, y, item->count>0?0xffcccccc:0x60cccccc); + else + minecraft->font->draw(buffer, x, y, item->count>0?0xffcccccc:0x60cccccc); +} + +void Gui::inventoryUpdated() { + _inventoryNeedsUpdate = true; +} + +void Gui::onGraphicsReset() { + inventoryUpdated(); +} + +void Gui::texturesLoaded( Textures* textures ) { + //_slotFont = new Font(&minecraft->options, "gui/gui_blocks.png", textures, 0, 504, 10, 1, '0'); +} + +void Gui::onConfigChanged( const Config& c ) { + Tesselator& t = Tesselator::instance; + t.begin(); + + // + // Create outer feedback circle + // +#ifdef ANDROID + const float mm = 12; +#else + const float mm = 12; +#endif + const float maxRadius = minecraft->pixelCalcUi.millimetersToPixels(mm); + const float radius = Mth::Min(80.0f/2, maxRadius); + //LOGI("radius, maxradius: %f, %f\n", radius, maxRadius); + const float radiusInner = radius * 0.95f; + + const int steps = 24; + const float fstep = Mth::TWO_PI / steps; + for (int i = 0; i < steps; ++i) { + float a = i * fstep;; + float b = a + fstep; + + float aCos = Mth::cos(a); + float bCos = Mth::cos(b); + float aSin = Mth::sin(a); + float bSin = Mth::sin(b); + float x00 = radius * aCos; + float x01 = radiusInner * aCos; + float x10 = radius * bCos; + float x11 = radiusInner * bCos; + float y00 = radius * aSin; + float y01 = radiusInner * aSin; + float y10 = radius * bSin; + float y11 = radiusInner * bSin; + + t.vertexUV(x01, y01, 0, 0, 1); + t.vertexUV(x11, y11, 0, 1, 1); + t.vertexUV(x10, y10, 0, 1, 0); + t.vertexUV(x00, y00, 0, 0, 0); + } + rcFeedbackOuter = t.end(true, rcFeedbackOuter.vboId); + + // + // Create the inner feedback ring + // + t.begin(GL_TRIANGLE_FAN); + t.vertex(0, 0, 0); + for (int i = 0; i < steps + 1; ++i) { + float a = -i * fstep; + float xx = radiusInner * Mth::cos(a); + float yy = radiusInner * Mth::sin(a); + t.vertex(xx, yy, 0); + //LOGI("x,y: %f, %f\n", xx, yy); + } + rcFeedbackInner = t.end(true, rcFeedbackInner.vboId); + + if (c.minecraft->useTouchscreen()) { + // I'll bump this up to 6. + int num = 6; // without "..." dots + if (!c.minecraft->options.isJoyTouchArea && c.width > 480) { + while (num < Inventory::MAX_SELECTION_SIZE - 1) { + int x0, x1, y; + getSlotPos(0, x0, y); + getSlotPos(num, x1, y); + int width = x1 - x0; + float leftoverPixels = c.width - c.guiScale*width; + if (c.pixelCalc.pixelsToMillimeters(leftoverPixels) < 80) + break; + num++; + } + } + _numSlots = num; +#if defined(__APPLE__) + _numSlots = Mth::Min(7, _numSlots); +#endif + } else { + _numSlots = Inventory::MAX_SELECTION_SIZE; // Xperia Play + } + MAX_MESSAGE_WIDTH = c.guiWidth; +} + +float Gui::floorAlignToScreenPixel(float v) { + return (int)(v * Gui::GuiScale) * Gui::InvGuiScale; +} + +int Gui::itemCountItoa( char* buffer, int count ) +{ + if (count < 0) + return 0; + + if (count < 10) { // 1 digit + buffer[0] = '0' + count; + buffer[1] = 0; + return 1; + } else if (count < 100) { // 2 digits + int digit = count/10; + buffer[0] = '0' + digit; + buffer[1] = '0' + count - digit*10; + buffer[2] = 0; + } else { // 3 digits -> "99+" + buffer[0] = buffer[1] = '9'; + buffer[2] = '+'; + buffer[3] = 0; + return 3; + } + return 2; +} + +void Gui::tickItemDrop() +{ + // Handle item drop + static bool isCurrentlyActive = false; + isCurrentlyActive = false; + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { + int slot = getSlotIdAt(Mouse::getX(), Mouse::getY()); + if (slot >= 0 && slot < getNumSlots()-1) { + if (slot != _currentDropSlot) { + _currentDropTicks = 0; + _currentDropSlot = slot; + } + isCurrentlyActive = true; + if ((_currentDropTicks += 1.0f) >= DropTicks) { + minecraft->player->inventory->dropSlot(slot, false); + minecraft->level->playSound(minecraft->player, "random.pop", 0.3f, 1); + isCurrentlyActive = false; + } + } + } + if (!isCurrentlyActive) { + _currentDropSlot = -1; + _currentDropTicks = -1; + } +} + +void Gui::postError( int errCode ) +{ + static std::set posted; + if (posted.find(errCode) != posted.end()) + return; + + posted.insert(errCode); + + std::stringstream s; + s << "Something went wrong! (errcode " << errCode << ")\n"; + addMessage(s.str()); +} + +void Gui::setScissorRect( const IntRectangle& bbox ) +{ + GLuint x = (GLuint)(GuiScale * bbox.x); + GLuint y = minecraft->height - (GLuint)(GuiScale * (bbox.y + bbox.h)); + GLuint w = (GLuint)(GuiScale * bbox.w); + GLuint h = (GLuint)(GuiScale * bbox.h); + glScissor(x, y, w, h); +} + +float Gui::cubeSmoothStep(float percentage, float min, float max) { + //percentage = percentage * percentage; + //return (min * percentage) + (max * (1 - percentage)); + return (percentage) * (percentage) * (3 - 2 * (percentage)); +} + +void Gui::renderProgressIndicator( const bool isTouchInterface, const int screenWidth, const int screenHeight, float a ) { + ItemInstance* currentItem = minecraft->player->inventory->getSelected(); + bool bowEquipped = currentItem != NULL ? currentItem->getItem() == Item::bow : false; + bool itemInUse = currentItem != NULL ? currentItem->getItem() == minecraft->player->getUseItem()->getItem() : false; + if (!isTouchInterface || minecraft->options.isJoyTouchArea || (bowEquipped && itemInUse)) { + minecraft->textures->loadAndBindTexture("gui/icons.png"); + glEnable(GL_BLEND); + glBlendFunc2(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR); + blit(screenWidth/2 - 8, screenHeight/2 - 8, 0, 0, 16, 16); + glDisable(GL_BLEND); + } else if(!bowEquipped) { + const float tprogress = minecraft->gameMode->destroyProgress; + const float alpha = Mth::clamp(minecraft->inputHolder->alpha, 0.0f, 1.0f); + //LOGI("alpha: %f\n", alpha); + + if (tprogress <= 0 && minecraft->inputHolder->alpha >= 0) { + glDisable2(GL_TEXTURE_2D); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + if (minecraft->hitResult.isHit()) + glColor4f2(1, 1, 1, 0.8f * alpha); + else + glColor4f2(1, 1, 1, Mth::Min(0.4f, alpha*0.4f)); + + //LOGI("alpha2: %f\n", alpha); + const float x = InvGuiScale * minecraft->inputHolder->mousex; + const float y = InvGuiScale * minecraft->inputHolder->mousey; + glTranslatef2(x, y, 0); + drawArrayVT(rcFeedbackOuter.vboId, rcFeedbackOuter.vertexCount, 24); + glTranslatef2(-x, -y, 0); + + glEnable2(GL_TEXTURE_2D); + glDisable(GL_BLEND); + } else if (tprogress > 0) { + const float oProgress = minecraft->gameMode->oDestroyProgress; + const float progress = 0.5f * (oProgress + (tprogress - oProgress) * a); + + //static Stopwatch w; + //w.start(); + + glDisable2(GL_TEXTURE_2D); + glColor4f2(1, 1, 1, 0.8f * alpha); + glEnable(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + const float x = InvGuiScale * minecraft->inputHolder->mousex; + const float y = InvGuiScale * minecraft->inputHolder->mousey; + glPushMatrix2(); + glTranslatef2(x, y, 0); + drawArrayVT(rcFeedbackOuter.vboId, rcFeedbackOuter.vertexCount, 24); + glScalef2(0.5f + progress, 0.5f + progress, 1); + //glDisable2(GL_CULL_FACE); + glColor4f2(1, 1, 1, 1); + glBlendFunc2(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR); + drawArrayVT(rcFeedbackInner.vboId, rcFeedbackInner.vertexCount, 24, GL_TRIANGLE_FAN); + glPopMatrix2(); + + glDisable(GL_BLEND); + glEnable2(GL_TEXTURE_2D); + + //w.stop(); + //w.printEvery(100, "feedback-r "); + } + } +} + +void Gui::renderHearts() { + bool blink = (minecraft->player->invulnerableTime / 3) % 2 == 1; + if (minecraft->player->invulnerableTime < 10) blink = false; + int h = minecraft->player->health; + int oh = minecraft->player->lastHealth; + random.setSeed(tickCount * 312871); + + int xx = 2;//screenWidth / 2 - getNumSlots() * 10; + + int armor = minecraft->player->getArmorValue(); + for (int i = 0; i < Player::MAX_HEALTH / 2; i++) { + int yo = 2; + int ip2 = i + i + 1; + + if (armor > 0) { + int xo = xx + 80 + i * 8 + 4; + if (ip2 < armor) blit(xo, yo, 16 + 2 * 9, 9 * 1, 9, 9); + else if (ip2 == armor) blit(xo, yo, 16 + 4 * 9, 9 * 1, 9, 9); + else if (ip2 > armor) blit(xo, yo, 16 + 0 * 9, 9 * 1, 9, 9); + } + + int bg = 0; + if (blink) bg = 1; + int xo = xx + i * 8; + if (h <= 4) { + yo = yo + random.nextInt(2) - 1; + } + blit(xo, yo, 16 + bg * 9, 9 * 0, 9, 9); + if (blink) { + if (ip2 < oh) blit(xo, yo, 16 + 6 * 9, 9 * 0, 9, 9); + else if (ip2 == oh) blit(xo, yo, 16 + 7 * 9, 9 * 0, 9, 9); + } + if (ip2 < h) blit(xo, yo, 16 + 4 * 9, 9 * 0, 9, 9); + else if (ip2 == h) blit(xo, yo, 16 + 5 * 9, 9 * 0, 9, 9); + } +} + +void Gui::renderBubbles() { + if (minecraft->player->isUnderLiquid(Material::water)) { + int yo = 12; + int count = (int) std::ceil((minecraft->player->airSupply - 2) * 10.0f / Player::TOTAL_AIR_SUPPLY); + int extra = (int) std::ceil((minecraft->player->airSupply) * 10.0f / Player::TOTAL_AIR_SUPPLY) - count; + for (int i = 0; i < count + extra; i++) { + int xo = i * 8 + 2; + if (i < count) blit(xo, yo, 16, 9 * 2, 9, 9); + else blit(xo, yo, 16 + 9, 9 * 2, 9, 9); + } + } +} + +static OffsetPosTranslator posTranslator; +void Gui::onLevelGenerated() { + if (Level* level = minecraft->level) { + Pos p = level->getSharedSpawnPos(); + posTranslator = OffsetPosTranslator((float)-p.x, (float)-p.y, (float)-p.z); + } +} + +void Gui::renderDebugInfo() { + static char buf[256]; + float xx = minecraft->player->x; + float yy = minecraft->player->y - minecraft->player->heightOffset; + float zz = minecraft->player->z; + posTranslator.to(xx, yy, zz); + sprintf(buf, "pos: %3.1f, %3.1f, %3.1f\n", xx, yy, zz); + Tesselator& t = Tesselator::instance; + t.beginOverride(); + t.scale2d(InvGuiScale, InvGuiScale); + minecraft->font->draw(buf, 2, 2, 0xffffff); + t.resetScale(); + t.endOverrideAndDraw(); +} + +void Gui::renderSleepAnimation( const int screenWidth, const int screenHeight ) { + int timer = minecraft->player->getSleepTimer(); + float amount = (float) timer / (float) Player::SLEEP_DURATION; + if (amount > 1) { + // waking up + amount = 1.0f - ((float) (timer - Player::SLEEP_DURATION) / (float) Player::WAKE_UP_DURATION); + } + + int color = (int) (220.0f * amount) << 24 | (0x101020); + fill(0, 0, screenWidth, screenHeight, color); +} + +void Gui::renderOnSelectItemNameText( const int screenWidth, Font* font, int ySlot ) { + if(itemNameOverlayTime < 1.0f) { + ItemInstance* item = minecraft->player->inventory->getSelected(); + if(item != NULL) { + float x = float(screenWidth / 2 - font->width(item->getName()) / 2); + float y = float(ySlot - 22); + int alpha = 255; + if(itemNameOverlayTime > 0.75) { + float time = 0.25f - (itemNameOverlayTime - 0.75f); + float percentage = cubeSmoothStep(time * 4, 0.0f, 1.0f); + alpha = int(percentage * 255); + } + if(alpha != 0) + font->drawShadow(item->getName(), x, y, 0x00ffffff + (alpha << 24)); + } + } +} + +void Gui::renderChatMessages( const int screenHeight, unsigned int max, bool isChatting, Font* font ) { + // if (minecraft.screen instanceof ChatScreen) { + // max = 20; + // isChatting = true; + // } + // + // glEnable(GL_BLEND); + // glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + // glDisable(GL_ALPHA_TEST); + // + // glPushMatrix2(); + // glTranslatef2(0, screenHeight - 48, 0); + // // glScalef2(1.0f / ssc.scale, 1.0f / ssc.scale, 1); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + int baseY = screenHeight - 48; + for (unsigned int i = 0; i < guiMessages.size() && i < max; i++) { + if (guiMessages.at(i).ticks < 20 * 10 || isChatting) { + float t = guiMessages.at(i).ticks / (20 * 10.0f); + t = 1 - t; + t = t * 10; + if (t < 0) t = 0; + if (t > 1) t = 1; + t = t * t; + int alpha = (int) (255 * t); + if (isChatting) alpha = 255; + + if (alpha > 0) { + const float x = 2; + const float y = (float)(baseY - i * 9); + std::string msg = guiMessages.at(i).message; + this->fill(x, y - 1, x + MAX_MESSAGE_WIDTH, y + 8, (alpha / 2) << 24); + glEnable(GL_BLEND); + + font->drawShadow(msg, x, y, 0xffffff + (alpha << 24)); + } + } + } +} + +void Gui::renderToolBar( float a, int ySlot, const int screenWidth ) { + glColor4f2(1, 1, 1, .5); + minecraft->textures->loadAndBindTexture("gui/gui.png"); + + Inventory* inventory = minecraft->player->inventory; + + int xBase, yBase; + getSlotPos(0, xBase, yBase); + const float baseItemX = (float)xBase + 3; + const int slotsWidth = 20 * getNumSlots(); + // Left + right side of the selection bar + blit(xBase, yBase, 0, 0, slotsWidth, 22); + blit(xBase + slotsWidth, yBase, 180, 0, 2, 22); + + if (_currentDropSlot >= 0 && inventory->getItem(_currentDropSlot)) { + int x = xBase + 3 + _currentDropSlot * 20; + int color = 0x8000ff00; + int yy = (int)(17.0f * (_currentDropTicks + a) / DropTicks); + + if (_currentDropTicks >= 3) { + glColor4f2(0, 1, 0, 0.5f); + } + fill(x, ySlot+16-yy, x+16, ySlot+16, color); + } + blit(xBase-1 + 20*inventory->selected, yBase - 1, 0, 22, 24, 22); + glColor4f2(1, 1, 1, 1); + + // Flash a slot background + if (_flashSlotId >= 0) { + const float since = getTimeS() - _flashSlotStartTime; + if (since > 0.2f) _flashSlotId = -1; + else { + int x = screenWidth / 2 - getNumSlots() * 10 + _flashSlotId * 20 + 2; + int color = 0xffffff + (((int)(/*0x80 * since +*/ 0x51 - 0x50 * Mth::cos(10 * 6.28f * since))) << 24); + //LOGI("Color: %.8x\n", color); + fill(x, ySlot, x+16, ySlot+16, color); + } + } + glColor4f2(1, 1, 1, 1); + + //static Stopwatch w; + //w.start(); + + Tesselator& t = Tesselator::instance; + t.beginOverride(); + + float x = baseItemX; + for (int i = 0; i < getNumSlots()-1; i++) { + renderSlot(i, (int)x, ySlot, a); + x += 20; + } + _inventoryNeedsUpdate = false; + //_inventoryRc = t.end(_inventoryRc.vboId); + + //drawArrayVTC(_inventoryRc.vboId, _inventoryRc.vertexCount); + + //renderSlotWatch.stop(); + //renderSlotWatch.printEvery(100, "Render slots:"); + + //int x = screenWidth / 2 + getNumSlots() * 10 + (getNumSlots()-1) * 20 + 2; + blit(screenWidth / 2 + 10 * getNumSlots() - 20 + 4, ySlot + 6, 242, 252, 14, 4, 14, 4); + + minecraft->textures->loadAndBindTexture("gui/gui_blocks.png"); + t.endOverrideAndDraw(); + + // Render damaged items (@todo: investigate if it's faster by drawing in same batch) + glDisable2(GL_DEPTH_TEST); + glDisable2(GL_TEXTURE_2D); + t.beginOverride(); + x = baseItemX; + for (int i = 0; i < getNumSlots()-1; i++) { + ItemRenderer::renderGuiItemDecorations(minecraft->player->inventory->getItem(i), x, (float)ySlot); + x += 20; + } + t.endOverrideAndDraw(); + glEnable(GL_DEPTH_TEST); + glEnable(GL_TEXTURE_2D); + + //w.stop(); + //w.printEvery(100, "gui-slots"); + + // Draw count + //Tesselator& t = Tesselator::instance; + glPushMatrix2(); + glScalef2(InvGuiScale + InvGuiScale, InvGuiScale + InvGuiScale, 1); + const float k = 0.5f * GuiScale; + + t.beginOverride(); + if (minecraft->gameMode->isSurvivalType()) { + x = baseItemX; + for (int i = 0; i < getNumSlots()-1; i++) { + ItemInstance* item = minecraft->player->inventory->getItem(i); + if (item && item->count >= 0) + renderSlotText(item, k*x, k*ySlot + 1, true, true); + x += 20; + } + } + minecraft->textures->loadAndBindTexture("font/default8.png"); + t.endOverrideAndDraw(); + + glPopMatrix2(); +} diff --git a/src/client/gui/Gui.h b/src/client/gui/Gui.h new file mode 100755 index 0000000..b1f4293 --- /dev/null +++ b/src/client/gui/Gui.h @@ -0,0 +1,122 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__Gui_H__ +#define NET_MINECRAFT_CLIENT_GUI__Gui_H__ + +//package net.minecraft.client.gui; + +#include "GuiComponent.h" +#include "Font.h" +#include "../player/input/touchscreen/TouchAreaModel.h" +#include "../renderer/RenderChunk.h" +#include "../../util/Random.h" +#include "../IConfigListener.h" + +class Minecraft; +class ItemInstance; +class Textures; +class Tesselator; +struct IntRectangle; + +struct GuiMessage +{ + std::string message; + int ticks; +}; + +typedef std::vector GuiMessageList; + +class Gui: public GuiComponent, IConfigListener +{ +public: + Gui(Minecraft* minecraft); + ~Gui(); + + int getSlotIdAt(int x, int y); + void flashSlot(int slotId); + bool isInside(int x, int y); + RectangleArea getRectangleArea(int extendSide); + void getSlotPos(int slot, int& posX, int& posY); + int getNumSlots(); + + void handleClick(int button, int x, int y); + void handleKeyPressed( int key ); + + void tick(); + void render(float a, bool mouseFree, int xMouse, int yMouse); + + void renderToolBar( float a, int ySlot, const int screenWidth ); + + void renderChatMessages( const int screenHeight, unsigned int max, bool isChatting, Font* font ); + + void renderOnSelectItemNameText( const int screenWidth, Font* font, int ySlot ); + + void renderSleepAnimation( const int screenWidth, const int screenHeight ); + + void renderBubbles(); + void renderHearts(); + void renderDebugInfo(); + + void renderProgressIndicator( const bool isTouchInterface, const int screenWidth, const int screenHeight, float a ); + + void addMessage(const std::string& string); + void postError(int errCode); + + void onGraphicsReset(); + void inventoryUpdated(); + + void setNowPlaying(const std::string& string); + void displayClientMessage(const std::string& messageId); + void renderSlotText(const ItemInstance* item, float x, float y, bool hasFinite, bool shadow); + void texturesLoaded( Textures* textures ); + + void onConfigChanged(const Config& config); + void onLevelGenerated(); + + void setScissorRect(const IntRectangle& rect); + + static float floorAlignToScreenPixel(float); + static int itemCountItoa(char* buf, int count); +private: + void renderVignette(float br, int w, int h); + void renderSlot(int slot, int x, int y, float a); + void tickItemDrop(); + float cubeSmoothStep(float percentage, float min, float max); +public: + float progress; + std::string selectedName; + static float InvGuiScale; + static float GuiScale; + +private: + int MAX_MESSAGE_WIDTH; + //ItemRenderer itemRenderer; + GuiMessageList guiMessages; + Random random; + + Minecraft* minecraft; + int tickCount; + float itemNameOverlayTime; + std::string overlayMessageString; + int overlayMessageTime; + bool animateOverlayMessageColor; + + float tbr; + + RenderChunk _inventoryRc; + bool _inventoryNeedsUpdate; + + int _flashSlotId; + float _flashSlotStartTime; + + Font* _slotFont; + int _numSlots; + + RenderChunk rcFeedbackOuter; + RenderChunk rcFeedbackInner; + + // For dropping + static const float DropTicks; + float _currentDropTicks; + int _currentDropSlot; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__Gui_H__*/ diff --git a/src/client/gui/GuiComponent.cpp b/src/client/gui/GuiComponent.cpp new file mode 100755 index 0000000..884c96a --- /dev/null +++ b/src/client/gui/GuiComponent.cpp @@ -0,0 +1,156 @@ +#include "GuiComponent.h" + +#include "../renderer/Tesselator.h" +#include "../renderer/gles.h" +#include "Font.h" + + +GuiComponent::GuiComponent() +: blitOffset(0) +{ +} + +GuiComponent::~GuiComponent() +{ +} + +void GuiComponent::drawCenteredString( Font* font, const std::string& str, int x, int y, int color ) +{ + font->drawShadow(str, (float)(x - font->width(str) / 2), (float)(y - font->height(str) / 2), color); +} + +void GuiComponent::drawString( Font* font, const std::string& str, int x, int y, int color ) +{ + font->drawShadow(str, (float)x, (float)y /*- font->height(str)/2*/, color); +} + +void GuiComponent::blit( int x, int y, int sx, int sy, int w, int h, int sw/*=0*/, int sh/*=0*/ ) +{ + if (!sw) sw = w; + if (!sh) sh = h; + float us = 1 / 256.0f; + float vs = 1 / 256.0f; + Tesselator& t = Tesselator::instance; + t.begin(); + t.vertexUV((float)(x) , (float)(y + h), blitOffset, (float)(sx ) * us, (float)(sy + sh) * vs); + t.vertexUV((float)(x + w), (float)(y + h), blitOffset, (float)(sx + sw) * us, (float)(sy + sh) * vs); + t.vertexUV((float)(x + w), (float)(y) , blitOffset, (float)(sx + sw) * us, (float)(sy ) * vs); + t.vertexUV((float)(x) , (float)(y) , blitOffset, (float)(sx ) * us, (float)(sy ) * vs); + t.draw(); +} +void GuiComponent::blit( float x, float y, int sx, int sy, float w, float h, int sw/*=0*/, int sh/*=0*/ ) +{ + if (!sw) sw = (int)w; + if (!sh) sh = (int)h; + float us = 1 / 256.0f; + float vs = 1 / 256.0f; + Tesselator& t = Tesselator::instance; + t.begin(); + t.vertexUV(x , y + h, blitOffset, (float)(sx ) * us, (float)(sy + sh) * vs); + t.vertexUV(x + w, y + h, blitOffset, (float)(sx + sw) * us, (float)(sy + sh) * vs); + t.vertexUV(x + w, y , blitOffset, (float)(sx + sw) * us, (float)(sy ) * vs); + t.vertexUV(x , y , blitOffset, (float)(sx ) * us, (float)(sy ) * vs); + t.draw(); +} + +void GuiComponent::fill( int x0, int y0, int x1, int y1, int col ) { + fill((float)x0, (float)y0, (float)x1, (float)y1, col); +} +void GuiComponent::fill( float x0, float y0, float x1, float y1, int col ) +{ + //float a = ((col >> 24) & 0xff) / 255.0f; + //float r = ((col >> 16) & 0xff) / 255.0f; + //float g = ((col >> 8) & 0xff) / 255.0f; + //float b = ((col) & 0xff) / 255.0f; + //glColor4f2(r, g, b, a); + + Tesselator& t = Tesselator::instance; + glEnable2(GL_BLEND); + glDisable2(GL_TEXTURE_2D); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + //LOGI("col: %f, %f, %f, %f\n", r, g, b, a); + t.begin(); + const int color = (col&0xff00ff00) | ((col&0xff0000) >> 16) | ((col&0xff) << 16); + t.colorABGR(color); + t.vertex(x0, y1, 0); + t.vertex(x1, y1, 0); + t.vertex(x1, y0, 0); + t.vertex(x0, y0, 0); + t.draw(); + glEnable2(GL_TEXTURE_2D); + glDisable2(GL_BLEND); +} + +void GuiComponent::fillGradient( int x0, int y0, int x1, int y1, int col1, int col2 ) { + fillGradient((float)x0, (float)y0, (float)x1, (float)y1, col1, col2); +} +void GuiComponent::fillGradient( float x0, float y0, float x1, float y1, int col1, int col2 ) +{ + float a1 = ((col1 >> 24) & 0xff) / 255.0f; + float r1 = ((col1 >> 16) & 0xff) / 255.0f; + float g1 = ((col1 >> 8) & 0xff) / 255.0f; + float b1 = ((col1) & 0xff) / 255.0f; + + float a2 = ((col2 >> 24) & 0xff) / 255.0f; + float r2 = ((col2 >> 16) & 0xff) / 255.0f; + float g2 = ((col2 >> 8) & 0xff) / 255.0f; + float b2 = ((col2) & 0xff) / 255.0f; + glDisable2(GL_TEXTURE_2D); + glEnable2(GL_BLEND); + glDisable2(GL_ALPHA_TEST); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glShadeModel2(GL_SMOOTH); + + Tesselator& t = Tesselator::instance; + t.begin(); + t.color(r1, g1, b1, a1); + t.vertex(x1, y0, 0); + t.vertex(x0, y0, 0); + t.color(r2, g2, b2, a2); + t.vertex(x0, y1, 0); + t.vertex(x1, y1, 0); + t.draw(); + + glShadeModel2(GL_FLAT); + glDisable2(GL_BLEND); + glEnable2(GL_ALPHA_TEST); + glEnable2(GL_TEXTURE_2D); +} +void GuiComponent::fillHorizontalGradient( int x0, int y0, int x1, int y1, int col1, int col2 ) { + fillHorizontalGradient((float)x0, (float)y0, (float)x1, (float)y1, col1, col2); +} +void GuiComponent::fillHorizontalGradient( float x0, float y0, float x1, float y1, int col1, int col2 ) +{ + float a1 = ((col1 >> 24) & 0xff) / 255.0f; + float r1 = ((col1 >> 16) & 0xff) / 255.0f; + float g1 = ((col1 >> 8) & 0xff) / 255.0f; + float b1 = ((col1) & 0xff) / 255.0f; + + float a2 = ((col2 >> 24) & 0xff) / 255.0f; + float r2 = ((col2 >> 16) & 0xff) / 255.0f; + float g2 = ((col2 >> 8) & 0xff) / 255.0f; + float b2 = ((col2) & 0xff) / 255.0f; + glDisable2(GL_TEXTURE_2D); + glEnable2(GL_BLEND); + glDisable2(GL_ALPHA_TEST); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glShadeModel2(GL_SMOOTH); + + Tesselator& t = Tesselator::instance; + t.begin(); + t.color(r2, g2, b2, a2); + t.vertex(x1, y0, 0); + t.color(r1, g1, b1, a1); + t.vertex(x0, y0, 0); + t.color(r1, g1, b1, a1); + t.vertex(x0, y1, 0); + t.color(r2, g2, b2, a2); + t.vertex(x1, y1, 0); + t.draw(); + + glShadeModel2(GL_FLAT); + glDisable2(GL_BLEND); + glEnable2(GL_ALPHA_TEST); + glEnable2(GL_TEXTURE_2D); +} diff --git a/src/client/gui/GuiComponent.h b/src/client/gui/GuiComponent.h new file mode 100755 index 0000000..1b8c468 --- /dev/null +++ b/src/client/gui/GuiComponent.h @@ -0,0 +1,34 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__GuiComponent_H__ +#define NET_MINECRAFT_CLIENT_GUI__GuiComponent_H__ + +//package net.minecraft.client.gui; + +#include +class Font; +class Minecraft; + +class GuiComponent +{ +public: + GuiComponent(); + virtual ~GuiComponent(); + + void drawString(Font* font, const std::string& str, int x, int y, int color); + void drawCenteredString(Font* font, const std::string& str, int x, int y, int color); + + void blit(int x, int y, int sx, int sy, int w, int h, int sw=0, int sh=0); + void blit(float x, float y, int sx, int sy, float w, float h, int sw=0, int sh=0); + +protected: + void fill(int x0, int y0, int x1, int y1, int col); + void fill(float x0, float y0, float x1, float y1, int col); + void fillGradient(int x0, int y0, int x1, int y1, int col1, int col2); + void fillGradient(float x0, float y0, float x1, float y1, int col1, int col2); + void fillHorizontalGradient(int x0, int y0, int x1, int y1, int col1, int col2); + void fillHorizontalGradient(float x0, float y0, float x1, float y1, int col1, int col2); + + float blitOffset; + +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__GuiComponent_H__*/ diff --git a/src/client/gui/Screen.cpp b/src/client/gui/Screen.cpp new file mode 100755 index 0000000..d92ef58 --- /dev/null +++ b/src/client/gui/Screen.cpp @@ -0,0 +1,255 @@ +#include "Screen.h" +#include "components/Button.h" +#include "components/TextBox.h" +#include "../Minecraft.h" +#include "../renderer/Tesselator.h" +#include "../sound/SoundEngine.h" +#include "../../platform/input/Keyboard.h" +#include "../../platform/input/Mouse.h" +#include "../renderer/Textures.h" + +Screen::Screen() +: passEvents(false), + clickedButton(NULL), + tabButtonIndex(0), + width(1), + height(1), + minecraft(NULL), + font(NULL) +{ +} + +void Screen::render( int xm, int ym, float a ) +{ + for (unsigned int i = 0; i < buttons.size(); i++) { + Button* button = buttons[i]; + button->render(minecraft, xm, ym); + } +} + +void Screen::init( Minecraft* minecraft, int width, int height ) +{ + //particles = /*new*/ GuiParticles(minecraft); + this->minecraft = minecraft; + this->font = minecraft->font; + this->width = width; + this->height = height; + init(); + setupPositions(); + updateTabButtonSelection(); +} + +void Screen::init() +{ +} + +void Screen::setSize( int width, int height ) +{ + this->width = width; + this->height = height; + setupPositions(); +} + +bool Screen::handleBackEvent( bool isDown ) +{ + return false; +} + +void Screen::updateEvents() +{ + if (passEvents) + return; + + while (Mouse::next()) + mouseEvent(); + + while (Keyboard::next()) + keyboardEvent(); + while (Keyboard::nextTextChar()) + keyboardTextEvent(); +} + +void Screen::mouseEvent() +{ + const MouseAction& e = Mouse::getEvent(); + if (!e.isButton()) + return; + + if (Mouse::getEventButtonState()) { + int xm = e.x * width / minecraft->width; + int ym = e.y * height / minecraft->height - 1; + mouseClicked(xm, ym, Mouse::getEventButton()); + } else { + int xm = e.x * width / minecraft->width; + int ym = e.y * height / minecraft->height - 1; + mouseReleased(xm, ym, Mouse::getEventButton()); + } +} + +void Screen::keyboardEvent() +{ + if (Keyboard::getEventKeyState()) { + //if (Keyboard.getEventKey() == Keyboard.KEY_F11) { + // minecraft->toggleFullScreen(); + // return; + //} + keyPressed(Keyboard::getEventKey()); + } +} +void Screen::keyboardTextEvent() +{ + keyboardNewChar(Keyboard::getChar()); +} +void Screen::renderBackground() +{ + renderBackground(0); +} + +void Screen::renderBackground( int vo ) +{ + if (minecraft->isLevelGenerated()) { + fillGradient(0, 0, width, height, 0xc0101010, 0xd0101010); + } else { + renderDirtBackground(vo); + } +} + +void Screen::renderDirtBackground( int vo ) +{ + //glDisable2(GL_LIGHTING); + glDisable2(GL_FOG); + Tesselator& t = Tesselator::instance; + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1, 1, 1, 1); + float s = 32; + float fvo = (float) vo; + t.begin(); + t.color(0x404040); + t.vertexUV(0, (float)height, 0, 0, height / s + fvo); + t.vertexUV((float)width, (float)height, 0, width / s, (float)height / s + fvo); + t.vertexUV((float)width, 0, 0, (float)width / s, 0 + fvo); + t.vertexUV(0, 0, 0, 0, 0 + fvo); + t.draw(); +} + +bool Screen::isPauseScreen() +{ + return true; +} + +bool Screen::isErrorScreen() +{ + return false; +} + +bool Screen::isInGameScreen() +{ + return true; +} + +bool Screen::closeOnPlayerHurt() { + return false; +} + +void Screen::keyPressed( int eventKey ) +{ + if (eventKey == Keyboard::KEY_ESCAPE) { + minecraft->setScreen(NULL); + //minecraft->grabMouse(); + } + if (minecraft->useTouchscreen()) + return; + + // "Tabbing" the buttons (walking with keys) + const int tabButtonCount = tabButtons.size(); + if (!tabButtonCount) + return; + + Options& o = minecraft->options; + if (eventKey == o.keyMenuNext.key) + if (++tabButtonIndex == tabButtonCount) tabButtonIndex = 0; + if (eventKey == o.keyMenuPrevious.key) + if (--tabButtonIndex == -1) tabButtonIndex = tabButtonCount-1; + if (eventKey == o.keyMenuOk.key) { + Button* button = tabButtons[tabButtonIndex]; + if (button->active) { + minecraft->soundEngine->playUI("random.click", 1, 1); + buttonClicked(button); + } + } + + updateTabButtonSelection(); +} + +void Screen::updateTabButtonSelection() +{ + if (minecraft->useTouchscreen()) + return; + + for (unsigned int i = 0; i < tabButtons.size(); ++i) + tabButtons[i]->selected = (i == tabButtonIndex); +} + +void Screen::mouseClicked( int x, int y, int buttonNum ) +{ + if (buttonNum == MouseAction::ACTION_LEFT) { + for (unsigned int i = 0; i < buttons.size(); ++i) { + Button* button = buttons[i]; + //LOGI("Hit-testing button: %p\n", button); + if (button->clicked(minecraft, x, y)) { + button->setPressed(); + + //LOGI("Hit-test successful: %p\n", button); + clickedButton = button; +/* +#if !defined(ANDROID) && !defined(__APPLE__) //if (!minecraft->isTouchscreen()) { + minecraft->soundEngine->playUI("random.click", 1, 1); + buttonClicked(button); +#endif } +*/ + } + } + } +} + +void Screen::mouseReleased( int x, int y, int buttonNum ) +{ + //LOGI("b_id: %d, (%p), text: %s\n", buttonNum, clickedButton, clickedButton?clickedButton->msg.c_str():""); + if (!clickedButton || buttonNum != MouseAction::ACTION_LEFT) return; + +#if 1 +//#if defined(ANDROID) || defined(__APPLE__) //if (minecraft->isTouchscreen()) { + for (unsigned int i = 0; i < buttons.size(); ++i) { + Button* button = buttons[i]; + if (clickedButton == button && button->clicked(minecraft, x, y)) { + buttonClicked(button); + minecraft->soundEngine->playUI("random.click", 1, 1); + clickedButton->released(x, y); + } + } +# else // } else { + clickedButton->released(x, y); +#endif // } + clickedButton = NULL; +} + +bool Screen::renderGameBehind() { + return true; +} + +bool Screen::hasClippingArea( IntRectangle& out ) +{ + return false; +} + +void Screen::lostFocus() { + for(std::vector::iterator it = textBoxes.begin(); it != textBoxes.end(); ++it) { + TextBox* tb = *it; + tb->loseFocus(minecraft); + } +} + +void Screen::toGUICoordinate( int& x, int& y ) { + x = x * width / minecraft->width; + y = y * height / minecraft->height - 1; +} diff --git a/src/client/gui/Screen.h b/src/client/gui/Screen.h new file mode 100755 index 0000000..eebe588 --- /dev/null +++ b/src/client/gui/Screen.h @@ -0,0 +1,80 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__Screen_H__ +#define NET_MINECRAFT_CLIENT_GUI__Screen_H__ + +//package net.minecraft.client.gui; + +#include +#include "GuiComponent.h" + +class Font; +class Minecraft; +class Button; +class TextBox; +struct IntRectangle; + +class Screen: public GuiComponent +{ +public: + Screen(); + + virtual void render(int xm, int ym, float a); + + void init(Minecraft* minecraft, int width, int height); + virtual void init(); + + void setSize(int width, int height); + virtual void setupPositions() {}; + + virtual void updateEvents(); + virtual void mouseEvent(); + virtual void keyboardEvent(); + virtual void keyboardTextEvent(); + virtual bool handleBackEvent(bool isDown); + + virtual void tick() {} + + virtual void removed() {} + + virtual void renderBackground(); + virtual void renderBackground(int vo); + virtual void renderDirtBackground(int vo); + // query + virtual bool renderGameBehind(); + virtual bool hasClippingArea(IntRectangle& out); + + virtual bool isPauseScreen(); + virtual bool isErrorScreen(); + virtual bool isInGameScreen(); + virtual bool closeOnPlayerHurt(); + + virtual void confirmResult(bool result, int id) {} + virtual void lostFocus(); + virtual void toGUICoordinate(int& x, int& y); +protected: + void updateTabButtonSelection(); + + virtual void buttonClicked(Button* button) {} + virtual void mouseClicked(int x, int y, int buttonNum); + virtual void mouseReleased(int x, int y, int buttonNum); + + virtual void keyPressed(int eventKey); + virtual void keyboardNewChar(char inputChar) {} +public: + int width; + int height; + bool passEvents; + //GuiParticles* particles; +protected: + Minecraft* minecraft; + std::vector buttons; + std::vector textBoxes; + + std::vector tabButtons; + int tabButtonIndex; + + Font* font; +private: + Button* clickedButton; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__Screen_H__*/ diff --git a/src/client/gui/TweenData.h b/src/client/gui/TweenData.h new file mode 100755 index 0000000..0d63b8e --- /dev/null +++ b/src/client/gui/TweenData.h @@ -0,0 +1,11 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__TweenData_H__ +#define NET_MINECRAFT_CLIENT_GUI__TweenData_H__ + +typedef struct TweenData { + float cur; + float dur; + float start; + float stop; +} TweenData; + +#endif /*NET_MINECRAFT_CLIENT_GUI__TweenData_H__*/ diff --git a/src/client/gui/components/Button.cpp b/src/client/gui/components/Button.cpp new file mode 100755 index 0000000..e03ae37 --- /dev/null +++ b/src/client/gui/components/Button.cpp @@ -0,0 +1,218 @@ +#include "Button.h" +#include "../../Minecraft.h" +#include "../../renderer/Textures.h" + +Button::Button(int id, const std::string& msg) +: GuiElement(true, true, 0, 0, 200, 24), + id(id), + msg(msg), + selected(false), + _currentlyDown(false) +{ +} + +Button::Button( int id, int x, int y, const std::string& msg ) +: GuiElement(true, true, x, y, 200, 24), + id(id), + msg(msg), + selected(false), + _currentlyDown(false) +{ +} + +Button::Button( int id, int x, int y, int w, int h, const std::string& msg ) +: GuiElement(true, true, x, y, w, h), + id(id), + msg(msg), + selected(false), + _currentlyDown(false) +{ +} + +void Button::render( Minecraft* minecraft, int xm, int ym ) +{ + if (!visible) return; + + /* + minecraft->textures->loadAndBindTexture("gui/gui.png"); + glColor4f2(1, 1, 1, 1); + + //printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym); + int yImage = getYImage(hovered || selected); + + blit(x, y, 0, 46 + yImage * 20, w / 2, h, 0, 20); + blit(x + w / 2, y, 200 - w / 2, 46 + yImage * 20, w / 2, h, 0, 20); + */ + + renderBg(minecraft, xm, ym); + renderFace(minecraft, xm , ym); +} + +void Button::released( int mx, int my ) { + _currentlyDown = false; +} + +bool Button::clicked( Minecraft* minecraft, int mx, int my ) +{ + return active && mx >= x && my >= y && mx < x + width && my < y + height; +} + +void Button::setPressed() { + _currentlyDown = true; +} + +int Button::getYImage( bool hovered ) +{ + int res = 1; + if (!active) res = 0; + else if (hovered) res = 2; + return res; +} + +void Button::renderFace(Minecraft* mc, int xm, int ym) { + Font* font = mc->font; + if (!active) { + drawCenteredString(font, msg, x + width / 2, y + (height - 8) / 2, 0xffa0a0a0); + } else { + if (hovered(mc, xm, ym) || selected) { + drawCenteredString(font, msg, x + width / 2, y + (height - 8) / 2, 0xffffa0); + } else { + drawCenteredString(font, msg, x + width / 2, y + (height - 8) / 2, 0xe0e0e0); + } + } +} + +void Button::renderBg( Minecraft* minecraft, int xm, int ym ) +{ + minecraft->textures->loadAndBindTexture("gui/gui.png"); + glColor4f2(1, 1, 1, 1); + + //printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym); + int yImage = getYImage(selected || hovered(minecraft, xm, ym));; + + blit(x, y, 0, 46 + yImage * 20, width / 2, height, 0, 20); + blit(x + width / 2, y, 200 - width / 2, 46 + yImage * 20, width / 2, height, 0, 20); +} + +bool Button::hovered(Minecraft* minecraft, int xm , int ym) { + return minecraft->useTouchscreen()? (_currentlyDown && isInside(xm, ym)) : false; +} + +bool Button::isInside( int xm, int ym ) { + return xm >= x && ym >= y && xm < x + width && ym < y + height; +} + +// +// BlankButton +// +BlankButton::BlankButton(int id) +: super(id, "") +{ + visible = false; +} + +BlankButton::BlankButton(int id, int x, int y, int w, int h) +: super(id, x, y, w, h, "") +{ + visible = false; +} + +// +// The Touch-interface button +// +namespace Touch { + +TButton::TButton(int id, const std::string& msg) +: super(id, msg) +{ + width = 66; + height = 26; +} + +TButton::TButton( int id, int x, int y, const std::string& msg ) +: super(id, x, y, msg) +{ + width = 66; + height = 26; +} + +TButton::TButton( int id, int x, int y, int w, int h, const std::string& msg ) +: super(id, x, y, w, h, msg) +{ +} + +void TButton::renderBg( Minecraft* minecraft, int xm, int ym ) +{ + bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false); + + minecraft->textures->loadAndBindTexture("gui/touchgui.png"); + + //printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym); + if (active) + glColor4f2(1, 1, 1, 1); + else + glColor4f2(0.5f, 0.5f, 0.5f, 1); + + blit(x, y, hovered?66:0, 0, width, height, 66, 26); + //blit(x + w / 2, y, 200 - w / 2, 46 + yImage * 20, w / 2, h, 0, 20); +} + + +// +// Header spacing in Touchscreen mode +// +THeader::THeader(int id, const std::string& msg) +: super(id, msg), + xText(-99999) +{ + active = false; + width = 66; + height = 26; +} + +THeader::THeader( int id, int x, int y, const std::string& msg ) +: super(id, x, y, msg), + xText(-99999) +{ + active = false; + width = 66; + height = 26; +} + +THeader::THeader( int id, int x, int y, int w, int h, const std::string& msg ) +: super(id, x, y, w, h, msg), + xText(-99999) +{ + active = false; +} + +void THeader::render( Minecraft* minecraft, int xm, int ym ) { + Font* font = minecraft->font; + renderBg(minecraft, xm, ym); + + int xx = x + width/2; + if (xText != -99999) + xx = xText; + drawCenteredString(font, msg, xx, y + (height - 8) / 2, 0xe0e0e0); +} + +void THeader::renderBg( Minecraft* minecraft, int xm, int ym ) +{ + minecraft->textures->loadAndBindTexture("gui/touchgui.png"); + + //printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym); + glColor4f2(1, 1, 1, 1); + + // Left cap + blit(x, y, 150, 26, 2, height-1, 2, 25); + // Middle + blit(x+2, y, 153, 26, width-3, height-1, 8, 25); + // Right cap + blit(x+width-2, y, 162, 26, 2, height-1, 2, 25); + // Shadow + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + blit(x, y+height-1, 153, 52, width, 3, 8, 3); +} + +}; diff --git a/src/client/gui/components/Button.h b/src/client/gui/components/Button.h new file mode 100755 index 0000000..1b93ddc --- /dev/null +++ b/src/client/gui/components/Button.h @@ -0,0 +1,80 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__Button_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__Button_H__ + +//package net.minecraft.client.gui; + +#include +#include "GuiElement.h" +#include "../../Options.h" + +class Font; +class Minecraft; + +class Button: public GuiElement +{ +public: + Button(int id, const std::string& msg); + Button(int id, int x, int y, const std::string& msg); + Button(int id, int x, int y, int w, int h, const std::string& msg); + virtual ~Button() {} + virtual void render(Minecraft* minecraft, int xm, int ym); + + virtual bool clicked(Minecraft* minecraft, int mx, int my); + virtual void released(int mx, int my); + virtual void setPressed(); + + bool isInside(int xm, int ym); +protected: + virtual int getYImage(bool hovered); + virtual void renderBg(Minecraft* minecraft, int xm, int ym); + + virtual void renderFace(Minecraft* minecraft, int xm, int ym); + bool hovered(Minecraft* minecraft, int xm, int ym); +public: + std::string msg; + int id; + + bool selected; +protected: + bool _currentlyDown; +}; + +// @note: A bit backwards, but this is a button that +// only reacts to clicks, but isn't rendered. +class BlankButton: public Button +{ + typedef Button super; +public: + BlankButton(int id); + BlankButton(int id, int x, int y, int w, int h); +}; + + +namespace Touch { +class TButton: public Button +{ + typedef Button super; +public: + TButton(int id, const std::string& msg); + TButton(int id, int x, int y, const std::string& msg); + TButton(int id, int x, int y, int w, int h, const std::string& msg); +protected: + virtual void renderBg(Minecraft* minecraft, int xm, int ym); +}; + +// "Header" in Touchscreen mode +class THeader: public Button { + typedef Button super; +public: + THeader(int id, const std::string& msg); + THeader(int id, int x, int y, const std::string& msg); + THeader(int id, int x, int y, int w, int h, const std::string& msg); +protected: + virtual void renderBg(Minecraft* minecraft, int xm, int ym); + void render( Minecraft* minecraft, int xm, int ym ); +public: + int xText; +}; +} + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__Button_H__*/ diff --git a/src/client/gui/components/GButton.cpp b/src/client/gui/components/GButton.cpp new file mode 100755 index 0000000..2ac8ade --- /dev/null +++ b/src/client/gui/components/GButton.cpp @@ -0,0 +1 @@ +#include "GuiElement.h" diff --git a/src/client/gui/components/GButton.h b/src/client/gui/components/GButton.h new file mode 100755 index 0000000..8e9474e --- /dev/null +++ b/src/client/gui/components/GButton.h @@ -0,0 +1,55 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__GButton_H__ +#define NET_MINECRAFT_CLIENT_GUI__GButton_H__ +#include "Button.h" + +class GButton: public Button { + typedef Button super; +public: + static const int LayerDefault = 1; + static const int LayerSelected = 2; + static const int LayerMax = 4; + + GButton(int id) + : super(id, "") + {} + ~GButton() { + for (unsigned int i = 0; i < layers.size(); ++i) { + delete layers[i].first; + } + } + + void addElement(int layerId, GuiElement* e) { + if (!e || layerId < 0 || layerId >= LayerMax) { + LOGE("Error @ GButton::element : Trying to add element %p at layer: %d\n", e, layerId); + return; + } + layers.push_back(std::make_pair(e, layerId)); + } + + void render( Minecraft* minecraft, int xm, int ym ) + { + if (!visible) return; + + bool isHovered = minecraft->isTouchscreen()? + (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height): false; + + int layer = isHovered? LayerSelected : LayerDefault; + if (layer < 0) return; + + Tesselator& t = Tesselator::instance; + t.addOffset((float)x, (float)y, 0); + + for (unsigned int i = 0; i < layers.size(); ++i) { + if ((layers[i].second & layer) != 0) + layers[i].first->render(minecraft, 0, 0); + } + + t.addOffset((float)-x, (float)-y, 0); + } + +private: + std::vector > layers; +}; + + +#endif /*NET_MINECRAFT_CLIENT_GUI__GButton_H__*/ diff --git a/src/client/gui/components/GuiElement.cpp b/src/client/gui/components/GuiElement.cpp new file mode 100755 index 0000000..5f4804e --- /dev/null +++ b/src/client/gui/components/GuiElement.cpp @@ -0,0 +1,20 @@ +#include "GuiElement.h" + +GuiElement::GuiElement( bool active/*=false*/, bool visible/*=true*/, int x /*= 0*/, int y /*= 0*/, int width/*=24*/, int height/*=24*/ ) +: active(active), + visible(visible), + x(x), + y(y), + width(width), + height(height) { + +} + +bool GuiElement::pointInside( int x, int y ) { + if(x >= this->x && x < this->x + this->width) { + if(y >= this->y && y < this->y + this->height) { + return true; + } + } + return false; +} diff --git a/src/client/gui/components/GuiElement.h b/src/client/gui/components/GuiElement.h new file mode 100755 index 0000000..d54a371 --- /dev/null +++ b/src/client/gui/components/GuiElement.h @@ -0,0 +1,27 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__GuiElement_H__ +#define NET_MINECRAFT_CLIENT_GUI__GuiElement_H__ +#include "../GuiComponent.h" + +class Tesselator; +class Minecraft; + +class GuiElement : public GuiComponent { +public: + GuiElement(bool active=false, bool visible=true, int x = 0, int y = 0, int width=24, int height=24); + virtual ~GuiElement() {} + virtual void tick(Minecraft* minecraft) {} + virtual void render(Minecraft* minecraft, int xm, int ym) { } + virtual void setupPositions() {} + virtual void mouseClicked(Minecraft* minecraft, int x, int y, int buttonNum) {} + virtual void mouseReleased(Minecraft* minecraft, int x, int y, int buttonNum) {} + virtual bool pointInside(int x, int y); + void setVisible(bool visible); + bool active; + bool visible; + int x; + int y; + int width; + int height; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__GuiElement_H__*/ diff --git a/src/client/gui/components/GuiElementContainer.cpp b/src/client/gui/components/GuiElementContainer.cpp new file mode 100755 index 0000000..b9ea085 --- /dev/null +++ b/src/client/gui/components/GuiElementContainer.cpp @@ -0,0 +1,54 @@ +#include "GuiElementContainer.h" +#include +GuiElementContainer::GuiElementContainer( bool active/*=false*/, bool visible/*=true*/, int x /*= 0*/, int y /*= 0*/, int width/*=24*/, int height/*=24*/ ) +: GuiElement(active, visible, x, y, width, height) { + +} + +GuiElementContainer::~GuiElementContainer() { + while(!children.empty()) { + GuiElement* element = children.back(); + children.pop_back(); + delete element; + } +} + +void GuiElementContainer::render( Minecraft* minecraft, int xm, int ym ) { + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->render(minecraft, xm, ym); + } +} + +void GuiElementContainer::setupPositions() { + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->setupPositions(); + } +} + +void GuiElementContainer::addChild( GuiElement* element ) { + children.push_back(element); +} + +void GuiElementContainer::removeChild( GuiElement* element ) { + std::vector::iterator it = std::find(children.begin(), children.end(), element); + if(it != children.end()) + children.erase(it); +} + +void GuiElementContainer::tick( Minecraft* minecraft ) { + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->tick(minecraft); + } +} + +void GuiElementContainer::mouseClicked( Minecraft* minecraft, int x, int y, int buttonNum ) { + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->mouseClicked(minecraft, x, y, buttonNum); + } +} + +void GuiElementContainer::mouseReleased( Minecraft* minecraft, int x, int y, int buttonNum ) { + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->mouseReleased(minecraft, x, y, buttonNum); + } +} diff --git a/src/client/gui/components/GuiElementContainer.h b/src/client/gui/components/GuiElementContainer.h new file mode 100755 index 0000000..3b20bae --- /dev/null +++ b/src/client/gui/components/GuiElementContainer.h @@ -0,0 +1,27 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__GuiElementContainer_H__ +#define NET_MINECRAFT_CLIENT_GUI__GuiElementContainer_H__ +#include "GuiElement.h" +#include +class Tesselator; +class Minecraft; + +class GuiElementContainer : public GuiElement { +public: + GuiElementContainer(bool active=false, bool visible=true, int x = 0, int y = 0, int width=24, int height=24); + virtual ~GuiElementContainer(); + virtual void render(Minecraft* minecraft, int xm, int ym); + virtual void setupPositions(); + virtual void addChild(GuiElement* element); + virtual void removeChild(GuiElement* element); + + virtual void tick( Minecraft* minecraft ); + + virtual void mouseClicked( Minecraft* minecraft, int x, int y, int buttonNum ); + + virtual void mouseReleased( Minecraft* minecraft, int x, int y, int buttonNum ); + +protected: + std::vector children; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__GuiElementContainer_H__*/ diff --git a/src/client/gui/components/ImageButton.cpp b/src/client/gui/components/ImageButton.cpp new file mode 100755 index 0000000..ce01534 --- /dev/null +++ b/src/client/gui/components/ImageButton.cpp @@ -0,0 +1,160 @@ +#include "ImageButton.h" +#include "../../renderer/Tesselator.h" +#include "../../Minecraft.h" +#include "../../../platform/log.h" +#include "../../../util/Mth.h" +#include "../../renderer/Textures.h" + + +ImageButton::ImageButton(int id, const std::string& msg) +: super(id, msg) +{ + setupDefault(); +} + +ImageButton::ImageButton(int id, const std::string& msg, const ImageDef& imagedef) +: super(id, msg), + _imageDef(imagedef) +{ + setupDefault(); +} + +void ImageButton::setupDefault() { + width = 48; + height = 48; + scaleWhenPressed = true; +} + +void ImageButton::setImageDef(const ImageDef& imageDef, bool setButtonSize) { + _imageDef = imageDef; + if (setButtonSize) { + width = (int)_imageDef.width; + height = (int)_imageDef.height; + } +} + +void ImageButton::render(Minecraft* minecraft, int xm, int ym) { + if (!visible) return; + + Font* font = minecraft->font; + + //minecraft->textures->loadAndBindTexture("gui/gui.png"); + glColor4f2(1, 1, 1, 1); + + bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false); + bool IsSecondImage = isSecondImage(hovered); + + //printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym); + //int yImage = getYImage(hovered || selected); + + //blit(x, y, 0, 46 + yImage * 20, w / 2, h, 0, 20); + //blit(x + w / 2, y, 200 - w / 2, 46 + yImage * 20, w / 2, h, 0, 20); + + renderBg(minecraft, xm, ym); + + TextureId texId = (_imageDef.name.length() > 0)? minecraft->textures->loadAndBindTexture(_imageDef.name) : Textures::InvalidId; + if ( Textures::isTextureIdValid(texId) ) { + const ImageDef& d = _imageDef; + Tesselator& t = Tesselator::instance; + + t.begin(); + if (!active) t.color(0xff808080); + //else if (hovered||selected) t.color(0xffffffff); + //else t.color(0xffe0e0e0); + else t.color(0xffffffff); + + float hx = ((float) d.width) * 0.5f; + float hy = ((float) d.height) * 0.5f; + const float cx = ((float)x+d.x) + hx; + const float cy = ((float)y+d.y) + hy; + if (scaleWhenPressed && hovered) { + hx *= 0.95f; + hy *= 0.95f; + } + + const IntRectangle* src = _imageDef.getSrc(); + if (src) { + const TextureData* d = minecraft->textures->getTemporaryTextureData(texId); + if (d != NULL) { + float u0 = (src->x+(IsSecondImage?src->w:0)) / (float)d->w; + float u1 = (src->x+(IsSecondImage?2*src->w:src->w)) / (float)d->w; + float v0 = src->y / (float)d->h; + float v1 = (src->y+src->h) / (float)d->h; + t.vertexUV(cx-hx, cy-hy, blitOffset, u0, v0); + t.vertexUV(cx-hx, cy+hy, blitOffset, u0, v1); + t.vertexUV(cx+hx, cy+hy, blitOffset, u1, v1); + t.vertexUV(cx+hx, cy-hy, blitOffset, u1, v0); + } + } else { + t.vertexUV(cx-hx, cy-hy, blitOffset, 0, 0); + t.vertexUV(cx-hx, cy+hy, blitOffset, 0, 1); + t.vertexUV(cx+hx, cy+hy, blitOffset, 1, 1); + t.vertexUV(cx+hx, cy-hy, blitOffset, 1, 0); + } + t.draw(); + } + //blit(0, 0, 0, 0, 64, 64, 256, 256); + + //LOGI("%d %d\n", x+d.x, x+d.x+d.w); + + if (!active) { + drawCenteredString(font, msg, x + width / 2, y + 16/*(h - 16)*/, 0xffa0a0a0); + } else { + if (hovered || selected) { + drawCenteredString(font, msg, x + width / 2, y + 17/*(h - 16)*/, 0xffffa0); + } else { + drawCenteredString(font, msg, x + width / 2, y + 16/*(h - 48)*/, 0xe0e0e0); + } + } +} + + +// +// A toggleable Button +// +OptionButton::OptionButton(const Options::Option* option) +: _option(option), + _isFloat(false), + super(ButtonId, "") +{ +} + +OptionButton::OptionButton(const Options::Option* option, float onValue, float offValue) +: _option(option), + _isFloat(true), + _onValue(onValue), + _offValue(offValue), + super(ButtonId, "") +{ +} + +bool OptionButton::isSecondImage(bool hovered) { + return _secondImage; +} + +void OptionButton::toggle(Options* options) { + if (_isFloat) { + options->set(_option, (Mth::abs(_current - _onValue) < 0.01f) ? _offValue : _onValue); + } else { + options->toggle(_option, 1); + } + // Update graphics here + updateImage(options); +} + +void OptionButton::updateImage(Options* options) { + if (_isFloat) { + _current = options->getProgressValue(_option); + _secondImage = Mth::abs(_current - _onValue) < 0.01f; + } else { + _secondImage = options->getBooleanValue(_option); + } +} + +void OptionButton::mouseClicked( Minecraft* minecraft, int x, int y, int buttonNum ) { + if(buttonNum == MouseAction::ACTION_LEFT) { + if(clicked(minecraft, x, y)) { + toggle(&minecraft->options); + } + } +} diff --git a/src/client/gui/components/ImageButton.h b/src/client/gui/components/ImageButton.h new file mode 100755 index 0000000..f14c25f --- /dev/null +++ b/src/client/gui/components/ImageButton.h @@ -0,0 +1,105 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ImageButton_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ImageButton_H__ + +#include "Button.h" + +typedef struct IntRectangle { + IntRectangle() + : x(0), + y(0), + w(1), + h(1) + {} + IntRectangle(int x, int y, int w, int h) + : x(x), + y(y), + w(w), + h(h) + {} + + int x, y; + int w, h; +} IntRectangle; + +typedef struct ImageDef { + ImageDef() + : hasSrc(false), + x(0), + y(0), + width(16), + height(16) + {} + + std::string name; + int x; + int y; + float width; + float height; + + ImageDef& setSrc(const IntRectangle& srcRect) { + hasSrc = true; + src = srcRect; + return *this; + } + IntRectangle* getSrc() { + return hasSrc? &src : NULL; + } +protected: + IntRectangle src; + bool hasSrc; +} ImageDef; + + +class ImageButton: public Button +{ + typedef Button super; +public: + ImageButton(int id, const std::string& msg); + ImageButton(int id, const std::string& msg, const ImageDef& imageDef); + void setImageDef(const ImageDef& imageDef, bool setButtonSize); + + void render(Minecraft* minecraft, int xm, int ym); + void renderBg(Minecraft* minecraft, int xm, int ym) {} + +protected: + virtual void setupDefault(); + virtual bool isSecondImage(bool hovered) { return hovered; } + + ImageDef _imageDef; +public: + bool scaleWhenPressed; +}; + +// +// A toggleable Button +// +class OptionButton: public ImageButton +{ + typedef ImageButton super; +public: + OptionButton(const Options::Option* option); + OptionButton(const Options::Option* option, float onValue, float offValue); + + void toggle(Options* options); + void updateImage(Options* options); + + static const int ButtonId = 9999999; +protected: + bool isSecondImage(bool hovered); + + virtual void mouseClicked( Minecraft* minecraft, int x, int y, int buttonNum ); + +private: + + const Options::Option* _option; + bool _secondImage; + + // If not float, it's considered to be a boolean value + bool _isFloat; + float _onValue; + float _offValue; + float _current; +}; + + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ImageButton_H__*/ diff --git a/src/client/gui/components/InventoryPane.cpp b/src/client/gui/components/InventoryPane.cpp new file mode 100755 index 0000000..1ee9334 --- /dev/null +++ b/src/client/gui/components/InventoryPane.cpp @@ -0,0 +1,206 @@ +#include "InventoryPane.h" +#include "../Gui.h" +#include "../../Minecraft.h" +#include "../../player/input/touchscreen/TouchAreaModel.h" +#include "../../renderer/entity/ItemRenderer.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/Textures.h" +#include "../../../world/item/ItemInstance.h" +#include "../../../world/entity/player/Inventory.h" + +namespace Touch { + +static const int By = 6; // Border Frame height + +InventoryPane::InventoryPane( IInventoryPaneCallback* screen, Minecraft* mc, const IntRectangle& rect, int paneWidth, float clickMarginH, int numItems, int itemSize, int itemBorderSize) +: screen(screen), + mc(mc), + paneWidth(paneWidth), + rect(rect), + super( + SF_LockX|/*SF_Scissor|*/SF_ShowScrollbar|SF_NoHoldSelect, + rect, // Pane rect + IntRectangle(0, 0, itemSize, itemSize), // Item rect + 0, numItems, Gui::GuiScale), + BorderPixels(itemBorderSize), + lastItemIndex(-1), + lastItemTicks(-1), + fillMarginX(2), + fillMarginY(4), + markerType(1), + markerIndex(-1), + markerShare(0), + renderDecorations(true) +{ + _clickArea = new RectangleArea(0, 0, 0, 0); + area._x0 = rect.x - clickMarginH; + area._x1 = rect.x + rect.w + clickMarginH; + area._y0 -= By; + area._y1 += By; + + /* + const int left = bbox.x + (bbox.w - paneWidth) / 2; + bg.x = left; + bg.w = left + paneWidth; // @note: read as x1, not width + bg.y = bbox.y - fillMarginY; + bg.h = bbox.y + bbox.h + fillMarginY; // @note: read as y1, not width + */ +} + +InventoryPane::~InventoryPane() { + delete _clickArea; +} + +void InventoryPane::renderBatch( std::vector& items, float alpha ) +{ + //fill(bg.x, bg.y, bg.w, bg.h, 0xff333333); + fill((float)(bbox.x-fillMarginX-1), (float)(bbox.y-fillMarginY), (float)(bbox.x + bbox.w + fillMarginX+1), (float)(bbox.y + bbox.h + fillMarginY), 0xff333333); + //fill(0.0f, (float)(bbox.y-fillMarginY), 400.0f, (float)(bbox.y + bbox.h + fillMarginY), 0xff333333);//(float)(bbox.x-fillMarginX), (float)(bbox.y-fillMarginY), (float)(bbox.x + bbox.w + fillMarginX), (float)(bbox.y + bbox.h + fillMarginY), 0xff333333); + glEnable2(GL_BLEND); + glDisable2(GL_ALPHA_TEST); + std::vector inventoryItems = screen->getItems(this); + + glEnable2(GL_SCISSOR_TEST); + GLuint x = (GLuint)(screenScale * bbox.x); + GLuint y = mc->height - (GLuint)(screenScale * (bbox.y + bbox.h)); + GLuint w = (GLuint)(screenScale * bbox.w); + GLuint h = (GLuint)(screenScale * bbox.h); + glScissor(x, y, w, h); + + Tesselator& t = Tesselator::instance; + + t.beginOverride(); + t.colorABGR(0xffffffff); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + blit(item.xf, item.yf, 200, 46, (float)itemBbox.w, (float)itemBbox.h, 16, 16); + } + mc->textures->loadAndBindTexture("gui/gui.png"); + t.endOverrideAndDraw(); + + GridItem* marked = NULL; + float mxx, myy; + + t.beginOverride(); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + int j = item.id; + const ItemInstance* citem = inventoryItems[j]; + if (!citem) continue; + + bool allowed = true; + + t.enableColor(); + //#ifdef DEMO_MODE //@huge @attn + if (!screen->isAllowed(j)) { allowed = false; t.color( 64, 64, 64); } + else + //#endif + if (lastItemTicks > 0 && lastItemIndex == j) { + int gv = 255 - lastItemTicks * 15; + t.color(gv, gv, gv, (allowed && citem->count <= 0)?0x60:0xff); + } else { + t.color(255, 255, 255, (allowed && citem->count <= 0)?0x60:0xff); + } + t.noColor(); + float xx = Gui::floorAlignToScreenPixel(item.xf + BorderPixels + 4); + float yy = Gui::floorAlignToScreenPixel(item.yf + BorderPixels + 4); + ItemRenderer::renderGuiItem(NULL, mc->textures, citem, xx, yy, 16, 16, false); + + if (j == markerIndex && markerShare >= 0) + marked = &item, mxx = xx, myy = yy; + + } + t.endOverrideAndDraw(); + + if (marked) { + glDisable2(GL_TEXTURE_2D); + const float yy0 = myy - 5.0f; + const float yy1 = yy0 + 2; + fill(mxx, yy0, mxx + 16.0f, yy1, 0xff606060); + fill(mxx, yy0, mxx + markerShare * 16.0f, yy1, markerType==1?0xff00ff00:0xff476543); + glEnable2(GL_BLEND); + glEnable2(GL_TEXTURE_2D); + } + + + if (!mc->isCreativeMode()) { + const float ikText = Gui::InvGuiScale + Gui::InvGuiScale; + const float kText = 0.5f * Gui::GuiScale; + t.beginOverride(); + t.scale2d(ikText, ikText); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + const ItemInstance* citem = inventoryItems[item.id]; + if (!citem) continue; + + char buf[64] = {0}; + /*int c = */ Gui::itemCountItoa(buf, citem->count); + + float tx = Gui::floorAlignToScreenPixel(kText * (item.xf + BorderPixels + 3)); + float ty = Gui::floorAlignToScreenPixel(kText * (item.yf + BorderPixels + 3)); + mc->gui.renderSlotText(citem, tx, ty, true, true); + } + t.resetScale(); + glEnable2(GL_BLEND); + t.endOverrideAndDraw(); + } + + if (renderDecorations) { + t.beginOverride(); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + const ItemInstance* citem = inventoryItems[item.id]; + if (!citem || citem->isNull()) continue; + + if (citem->isDamaged()) { + ItemRenderer::renderGuiItemDecorations(citem, item.xf + 8, item.yf + 12); + } + } + + glDisable2(GL_TEXTURE_2D); + t.endOverrideAndDraw(); + glEnable2(GL_TEXTURE_2D); + } + glDisable2(GL_SCISSOR_TEST); + + //fillGradient(bbox.x - 1, bbox.y, bbox.x + bbox.w + 1, bbox.y + 20, 0x99000000, 0x00000000); + //fillGradient(bbox.x - 1, bbox.y + bbox.h - 20, bbox.x + bbox.w + 1, bbox.y + bbox.h, 0x00000000, 0x99000000); + fillGradient(bg.x - fillMarginX, bbox.y, bg.w + fillMarginX, bbox.y + 20, 0x99000000, 0x00000000); + fillGradient(bg.x - fillMarginX, bbox.y + bbox.h - 20, bg.w + fillMarginX, bbox.y + bbox.h, 0x00000000, 0x99000000); + + drawScrollBar(hScroll); + drawScrollBar(vScroll); +} + +bool InventoryPane::onSelect( int gridId, bool selected ) +{ + //screen->onItemSelected(gridId); + if (screen->isAllowed(gridId)) + if (screen->addItem(this, gridId)) { + lastItemIndex = gridId; + lastItemTicks = 7; + } + + return false; +} + +void InventoryPane::drawScrollBar( ScrollBar& sb ) { + if (sb.alpha <= 0) + return; + + const int color = ((int)(255.0f * sb.alpha) << 24) | 0xaaaaaa; + const float xx = (float)(bbox.x + bbox.w); + fill(xx - sb.w, sb.y, xx, sb.y + sb.h, color); +} + +void InventoryPane::tick() +{ + --lastItemTicks; + super::tick(); +} + +void InventoryPane::setRenderDecorations( bool value ) { + renderDecorations = value; +} + +} diff --git a/src/client/gui/components/InventoryPane.h b/src/client/gui/components/InventoryPane.h new file mode 100755 index 0000000..c80f754 --- /dev/null +++ b/src/client/gui/components/InventoryPane.h @@ -0,0 +1,62 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__InventoryPane_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__InventoryPane_H__ + +#include "ScrollingPane.h" +#include "ImageButton.h" + +class Minecraft; +class ItemInstance; +class Font; +class IArea; + +namespace Touch { + +class IInventoryPaneCallback; + +class InventoryPane: public ScrollingPane +{ + typedef ScrollingPane super; +public: + InventoryPane(IInventoryPaneCallback* screen, Minecraft* mc, const IntRectangle& rect, int paneWidth, float clickMarginH, int numItems, int itemSize, int itemBorderSize); + ~InventoryPane(); + + void tick(); + void renderBatch( std::vector& item, float alpha ); + bool onSelect( int gridId, bool selected ); + void drawScrollBar( ScrollBar& hScroll ); + + void setRenderDecorations(bool value); + + IntRectangle rect; + int paneWidth; + IArea* _clickArea; + IInventoryPaneCallback* screen; + Minecraft* mc; + + int fillMarginX; + int fillMarginY; + + int markerType; + int markerIndex; + float markerShare; +private: + int lastItemIndex; + int lastItemTicks; + int BorderPixels; + bool renderDecorations; + + IntRectangle bg; +}; + +class IInventoryPaneCallback +{ +public: + virtual ~IInventoryPaneCallback() {} + virtual bool addItem(const InventoryPane* forPane, int index) = 0; + virtual bool isAllowed( int slot ) = 0; + virtual std::vector getItems(const InventoryPane* forPane) = 0; +}; + +} + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__InventoryPane_H__*/ diff --git a/src/client/gui/components/ItemPane.cpp b/src/client/gui/components/ItemPane.cpp new file mode 100755 index 0000000..e0ae8d2 --- /dev/null +++ b/src/client/gui/components/ItemPane.cpp @@ -0,0 +1,148 @@ +#include "ItemPane.h" +#include "../Gui.h" +#include "../../renderer/gles.h" +#include "../../renderer/Tesselator.h" +#include "NinePatch.h" +#include "../../renderer/entity/ItemRenderer.h" + +const int rgbActive = 0xfff0f0f0; +const int rgbInactive = 0xc0635558; +const int rgbInactiveShadow = 0xc0aaaaaa; + +ItemPane::ItemPane( IItemPaneCallback* screen, + Textures* textures, + const IntRectangle& rect, + int numItems, + int guiHeight, + int physicalScreenHeight, + bool isVertical /*= true*/) +: super( + (isVertical?SF_LockX:SF_LockY)/*|SF_Scissor*/|SF_ShowScrollbar, + rect, // Pane rect + isVertical?IntRectangle(0, 0, rect.w, 22) // Item rect if vertical + :IntRectangle(0, 0, 32, rect.h), // Item rect if horizontal + isVertical?1:numItems, numItems, Gui::GuiScale), + screen(screen), + textures(textures), + physicalScreenHeight(physicalScreenHeight), + guiSlotItem(NULL), + guiSlotItemSelected(NULL), + isVertical(isVertical) +{ + // Expand the area to make it easier to scroll + area._x0 -= 4; + area._x1 += 4; + area._y0 = 0; + area._y1 = (float)guiHeight; + + // GUI + NinePatchFactory builder(textures, "gui/spritesheet.png"); + guiSlotItem = builder.createSymmetrical(IntRectangle(20, 32, 8, 8), 2, 2); + guiSlotItemSelected = builder.createSymmetrical(IntRectangle(28, 32, 8, 8), 2, 2); + guiSlotItem->setSize((float)rect.w + 4, 22); + guiSlotItemSelected->setSize((float)rect.w + 4, 22); +} + +ItemPane::~ItemPane() { + delete guiSlotItem; + delete guiSlotItemSelected; +} + +void ItemPane::renderBatch( std::vector& items, float alpha ) +{ + //fill(bbox.x, bbox.y, bbox.x + bbox.w, bbox.y + bbox.h, 0xff666666); + const std::vector& cat = screen->getItems(this); + if (cat.empty()) return; + + glEnable2(GL_SCISSOR_TEST); + GLuint x = (GLuint)(screenScale * bbox.x); + GLuint y = physicalScreenHeight - (GLuint)(screenScale * (bbox.y + bbox.h)); + GLuint w = (GLuint)(screenScale * bbox.w); + GLuint h = (GLuint)(screenScale * bbox.h); + glScissor(x, y, w, h); + + Tesselator& t = Tesselator::instance; + + t.beginOverride(); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + (item.selected? guiSlotItemSelected : guiSlotItem)->draw(t, Gui::floorAlignToScreenPixel(item.xf-1), Gui::floorAlignToScreenPixel(item.yf)); + } + t.endOverrideAndDraw(); + + t.beginOverride(); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + CItem* citem = cat[item.id]; + + ItemRenderer::renderGuiItem(NULL, textures, &citem->item, + Gui::floorAlignToScreenPixel(item.xf + itemBbox.w - 16), + Gui::floorAlignToScreenPixel(2 + item.yf), 16, 16, false); + } + t.endOverrideAndDraw(); + + t.beginOverride(); + for (unsigned int i = 0; i < items.size(); ++i) { + GridItem& item = items[i]; + CItem* citem = cat[item.id]; + + char buf[64] = {0}; + int c = Gui::itemCountItoa(buf, citem->inventoryCount); + + float xf = item.xf - 1; + if (citem->canCraft()) { + f->drawShadow(citem->text, + Gui::floorAlignToScreenPixel(xf + 2), + Gui::floorAlignToScreenPixel(item.yf + 6), rgbActive); + t.scale2d(0.6667f, 0.6667f); + f->drawShadow(buf, + Gui::floorAlignToScreenPixel(1.5f * (xf + itemBbox.w - c*4)), + Gui::floorAlignToScreenPixel(1.5f * (item.yf + itemBbox.h - 8)), rgbActive); + t.resetScale(); + } else { + f->draw(citem->text, + Gui::floorAlignToScreenPixel(xf + 3), + Gui::floorAlignToScreenPixel(item.yf + 7), rgbInactiveShadow); + f->draw(citem->text, + Gui::floorAlignToScreenPixel(xf + 2), + Gui::floorAlignToScreenPixel(item.yf + 6), rgbInactive); + t.scale2d(0.6667f, 0.6667f); + f->draw(buf, + Gui::floorAlignToScreenPixel(1.5f * (xf + itemBbox.w - c*4)), + Gui::floorAlignToScreenPixel(1.5f * (item.yf + itemBbox.h - 8)), rgbInactive); + t.resetScale(); + } + } + t.endOverrideAndDraw(); + + //fillGradient(bbox.x, bbox.y, bbox.x + bbox.w, 20, 0x00000000, 0x80ff0000) + if (isVertical) { + fillGradient(bbox.x, bbox.y, bbox.x + bbox.w, bbox.y + 28, 0xbb000000, 0x00000000); + fillGradient(bbox.x, bbox.y + bbox.h - 28, bbox.x + bbox.w, bbox.y + bbox.h, 0x00000000, 0xbb000000);//0xbb2A272B); + } else { + fillHorizontalGradient(bbox.x, bbox.y, bbox.x + 28, bbox.y + bbox.h, 0xbb000000, 0x00000000); + fillHorizontalGradient(bbox.x + bbox.w - 28, bbox.y, bbox.x + bbox.w, bbox.y + bbox.h, 0x00000000, 0xbb000000);//0xbb2A272B); + } + + //LOGI("scroll: %f - %f, %f :: %f, %f\n", hScroll.alpha, hScroll.x, hScroll.y, hScroll.w, hScroll.h); + glDisable2(GL_SCISSOR_TEST); + + drawScrollBar(hScroll); + drawScrollBar(vScroll); +} + +bool ItemPane::onSelect( int gridId, bool selected ) +{ + if (selected) + screen->onItemSelected(this, gridId); + + return selected; +} + +void ItemPane::drawScrollBar( ScrollBar& sb ) { + if (sb.alpha <= 0) + return; + + int color = ((int)(255.0f * sb.alpha) << 24) | 0xffffff; + fill(2 + sb.x, sb.y, 2 + sb.x + sb.w, sb.y + sb.h, color); +} diff --git a/src/client/gui/components/ItemPane.h b/src/client/gui/components/ItemPane.h new file mode 100755 index 0000000..ebb0f31 --- /dev/null +++ b/src/client/gui/components/ItemPane.h @@ -0,0 +1,95 @@ +#ifndef ITEMPANE_H__ +#define ITEMPANE_H__ + +#include +#include +#include "ScrollingPane.h" +#include "../../../world/item/ItemInstance.h" + +class Font; +class Textures; +class NinePatchLayer; +class Recipe; +class ItemPane; + +class CItem +{ +public: + CItem(const ItemInstance& ins, Recipe* recipe, const std::string& text) + : item(ins), + recipe(recipe), + text(text), + sortText(text), + //maxBuildCount(0), + numBuilt(0), + inventoryCount(0), + _canCraft(false) + { + } + + typedef struct ReqItem { + ReqItem() {} + ReqItem(const ItemInstance& needItem, int has) + : item(needItem), has(has) {} + ItemInstance item; + int has; + bool enough() { return has >= item.count; } + } ReqItem; + + bool canCraft() { + return _canCraft;// || maxBuildCount > 0; + } + void setCanCraft(bool status) { + _canCraft = status; + } + + ItemInstance item; + Recipe* recipe; + std::string text; + std::string sortText; + //int maxBuildCount; + int numBuilt; + int inventoryCount; + std::vector neededItems; +private: + bool _canCraft; +}; + +class IItemPaneCallback +{ +public: + virtual ~IItemPaneCallback() {} + virtual void onItemSelected(const ItemPane* forPane, int index) = 0; + virtual const std::vector& getItems(const ItemPane* forPane) = 0; +}; + +class ItemPane: public ScrollingPane +{ + typedef ScrollingPane super; +public: + ItemPane( IItemPaneCallback* screen, + Textures* textures, + const IntRectangle& rect, + int numItems, + int guiHeight, + int physicalScreenHeight, + bool isVertical = true); + ~ItemPane(); + + void renderBatch( std::vector& item, float alpha ); + bool onSelect( int gridId, bool selected ); + void drawScrollBar( ScrollBar& hScroll ); + //void setSize() + + Font* f; + Textures* textures; + IItemPaneCallback* screen; + + int physicalScreenHeight; // Needed for glScissor + bool isVertical; + + NinePatchLayer* guiSlotItem; + NinePatchLayer* guiSlotItemSelected; +}; + +#endif /*ITEMPANE_H__*/ diff --git a/src/client/gui/components/LargeImageButton.cpp b/src/client/gui/components/LargeImageButton.cpp new file mode 100755 index 0000000..673d983 --- /dev/null +++ b/src/client/gui/components/LargeImageButton.cpp @@ -0,0 +1,104 @@ +#include "LargeImageButton.h" +#include "../../renderer/Tesselator.h" +#include "../../Minecraft.h" +#include "../../../util/Mth.h" +#include "../../../platform/log.h" +#include "../../../util/Mth.h" +#include "../../renderer/Textures.h" + + +LargeImageButton::LargeImageButton(int id, const std::string& msg) +: super(id, msg) +{ + setupDefault(); +} + +LargeImageButton::LargeImageButton(int id, const std::string& msg, ImageDef& imagedef) +: super(id, msg) +{ + _imageDef = imagedef; + setupDefault(); +} + +void LargeImageButton::setupDefault() { + _buttonScale = 1; + width = 72; + height = 72; +} + +void LargeImageButton::render(Minecraft* minecraft, int xm, int ym) { + if (!visible) return; + + Font* font = minecraft->font; + + //minecraft->textures->loadAndBindTexture("gui/gui.png"); + glColor4f2(1, 1, 1, 1); + bool hovered = active && (minecraft->useTouchscreen()? (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false); + + //printf("ButtonId: %d - Hovered? %d (cause: %d, %d, %d, %d, <> %d, %d)\n", id, hovered, x, y, x+w, y+h, xm, ym); + //int yImage = getYImage(hovered || selected); + + //blit(x, y, 0, 46 + yImage * 20, w / 2, h, 0, 20); + //blit(x + w / 2, y, 200 - w / 2, 46 + yImage * 20, w / 2, h, 0, 20); + + renderBg(minecraft, xm, ym); + + TextureId texId = (_imageDef.name.length() > 0)? minecraft->textures->loadAndBindTexture(_imageDef.name) : Textures::InvalidId; + if ( Textures::isTextureIdValid(texId) ) { + const ImageDef& d = _imageDef; + Tesselator& t = Tesselator::instance; + + t.begin(); + if (!active) t.color(0xff808080); + //else if (hovered||selected) t.color(0xffffffff); + //else t.color(0xffe0e0e0); + else t.color(0xffffffff); + + float hx = ((float) d.width) * 0.5f; + float hy = ((float) d.height) * 0.5f; + const float cx = ((float)x+d.x) + hx; + const float cy = ((float)y+d.y) + hy; + + if (hovered) + _buttonScale = Mth::Max(0.95f, _buttonScale-0.025f); + else + _buttonScale = Mth::Min(1.00f, _buttonScale+0.025f); + + hx *= _buttonScale; + hy *= _buttonScale; + + const IntRectangle* src = _imageDef.getSrc(); + if (src) { + const TextureData* d = minecraft->textures->getTemporaryTextureData(texId); + if (d != NULL) { + float u0 = (src->x+(hovered?src->w:0)) / (float)d->w; + float u1 = (src->x+(hovered?2*src->w:src->w)) / (float)d->w; + float v0 = src->y / (float)d->h; + float v1 = (src->y+src->h) / (float)d->h; + t.vertexUV(cx-hx, cy-hy, blitOffset, u0, v0); + t.vertexUV(cx-hx, cy+hy, blitOffset, u0, v1); + t.vertexUV(cx+hx, cy+hy, blitOffset, u1, v1); + t.vertexUV(cx+hx, cy-hy, blitOffset, u1, v0); + } + } else { + t.vertexUV(cx-hx, cy-hy, blitOffset, 0, 0); + t.vertexUV(cx-hx, cy+hy, blitOffset, 0, 1); + t.vertexUV(cx+hx, cy+hy, blitOffset, 1, 1); + t.vertexUV(cx+hx, cy-hy, blitOffset, 1, 0); + } + t.draw(); + } + //blit(0, 0, 0, 0, 64, 64, 256, 256); + + //LOGI("%d %d\n", x+d.x, x+d.x+d.w); + + if (!active) { + drawCenteredString(font, msg, x + width / 2, y + 11/*(h - 16)*/, 0xffa0a0a0); + } else { + if (hovered || selected) { + drawCenteredString(font, msg, x + width / 2, y + 11/*(h - 16)*/, 0xffffa0); + } else { + drawCenteredString(font, msg, x + width / 2, y + 11/*(h - 48)*/, 0xe0e0e0); + } + } +} diff --git a/src/client/gui/components/LargeImageButton.h b/src/client/gui/components/LargeImageButton.h new file mode 100755 index 0000000..9a06d53 --- /dev/null +++ b/src/client/gui/components/LargeImageButton.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__LargeImageButton_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__LargeImageButton_H__ + +#include "ImageButton.h" + +class LargeImageButton: public ImageButton +{ + typedef ImageButton super; +public: + LargeImageButton(int id, const std::string& msg); + LargeImageButton(int id, const std::string& msg, ImageDef& imageDef); + + void render(Minecraft* minecraft, int xm, int ym); + +private: + void setupDefault(); + + float _buttonScale; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__LargeImageButton_H__*/ diff --git a/src/client/gui/components/NinePatch.cpp b/src/client/gui/components/NinePatch.cpp new file mode 100755 index 0000000..a82b937 --- /dev/null +++ b/src/client/gui/components/NinePatch.cpp @@ -0,0 +1,141 @@ +#include "NinePatch.h" + +NinePatchDescription::NinePatchDescription( float x, float y, float x1, float x2, float x3, float y1, float y2, float y3, float w, float e, float n, float s ) : u0(x), u1(x + x1), u2(x + x2), u3(x + x3), + v0(y), v1(y + y1), v2(y + y2), v3(y + y3), + w(w), e(e), n(n), s(s), + imgW(-1), + imgH(-1) { + +} + +NinePatchDescription& NinePatchDescription::transformUVForImage( const TextureData& d ) { + return transformUVForImageSize(d.w, d.h); +} + +NinePatchDescription& NinePatchDescription::transformUVForImageSize( int w, int h ) { + if (imgW < 0) + imgW = imgH = 1; + + const float us = (float) imgW / w; // @todo: prepare for normal blit? (e.g. mult by 256) + const float vs = (float) imgH / h; + u0 *= us; u1 *= us; u2 *= us; u3 *= us; + v0 *= vs; v1 *= vs; v2 *= vs; v3 *= vs; + + imgW = w; + imgH = h; + + return *this; +} + +NinePatchDescription NinePatchDescription::createSymmetrical( int texWidth, int texHeight, const IntRectangle& src, int xCutAt, int yCutAt ) { + NinePatchDescription patch((float)src.x, (float)src.y,// width and height of src + (float)xCutAt, (float)(src.w-xCutAt), (float)src.w, // u tex coordinates + (float)yCutAt, (float)(src.h-yCutAt), (float)src.h, // v tex coordinates + (float)xCutAt, (float)xCutAt, (float)yCutAt, (float)yCutAt); // border width and heights + if (texWidth > 0) patch.transformUVForImageSize(texWidth, texHeight); + return patch; +} + +NinePatchLayer::NinePatchLayer(const NinePatchDescription& desc, const std::string& imageName, Textures* textures, float w, float h) + : desc(desc), + imageName(imageName), + textures(textures), + w(-1), h(-1), + excluded(0) +{ + setSize(w, h); +} + +void NinePatchLayer::setSize( float w, float h ) { + if (w == this->w && h == this->h) + return; + + this->w = w; + this->h = h; + + for (int i = 0; i < 9; ++i) + buildQuad(i); +} + +void NinePatchLayer::draw( Tesselator& t, float x, float y ) { + textures->loadAndBindTexture(imageName); + t.begin(); + t.addOffset(x, y, 0); + for (int i = 0, b = 1; i < 9; ++i, b += b) + if ((b & excluded) == 0) + d(t, quads[i]); + t.addOffset(-x, -y, 0); + t.draw(); +} + +NinePatchLayer* NinePatchLayer::exclude( int excludeId ) { + return setExcluded(excluded | (1 << excludeId)); +} + +NinePatchLayer* NinePatchLayer::setExcluded( int exludeBits ) { + excluded = exludeBits; + return this; +} + +void NinePatchLayer::buildQuad( int qid ) { + //@attn; fix + CachedQuad& q = quads[qid]; + const int yid = qid / 3; + const int xid = qid - 3 * yid; + q.u0 = (&desc.u0)[xid]; + q.u1 = (&desc.u0)[xid + 1]; + q.v0 = (&desc.v0)[yid]; + q.v1 = (&desc.v0)[yid + 1]; + q.z = 0; + getPatchInfo(xid, yid, q.x0, q.x1, q.y0, q.y1); + /* q.x0 = w * (q.u0 - desc.u0); + q.y0 = h * (q.v0 - desc.v0); + q.x1 = w * (q.u1 - desc.u0); + q.y1 = h * (q.v1 - desc.v0); + */ +} + +void NinePatchLayer::getPatchInfo( int xc, int yc, float& x0, float& x1, float& y0, float& y1 ) { + if (xc == 0) { x0 = 0; x1 = desc.w; } + else if (xc == 1) { x0 = desc.w; x1 = w - desc.e; } + else if (xc == 2) { x0 = w-desc.e; x1 = w; } + if (yc == 0) { y0 = 0; y1 = desc.n; } + else if (yc == 1) { y0 = desc.n; y1 = h - desc.s; } + else if (yc == 2) { y0 = h-desc.s; y1 = h; } +} + +void NinePatchLayer::d( Tesselator& t, const CachedQuad& q ) { + /* + t.vertexUV(x , y + h, blitOffset, (float)(sx ), (float)(sy + sh)); + t.vertexUV(x + w, y + h, blitOffset, (float)(sx + sw), (float)(sy + sh)); + t.vertexUV(x + w, y , blitOffset, (float)(sx + sw), (float)(sy )); + t.vertexUV(x , y , blitOffset, (float)(sx ), (float)(sy )); + */ + + t.vertexUV(q.x0, q.y1, q.z, q.u0, q.v1); + t.vertexUV(q.x1, q.y1, q.z, q.u1, q.v1); + t.vertexUV(q.x1, q.y0, q.z, q.u1, q.v0); + t.vertexUV(q.x0, q.y0, q.z, q.u0, q.v0); +} + +NinePatchFactory::NinePatchFactory( Textures* textures, const std::string& imageName ) : textures(textures), + imageName(imageName), + width(1), + height(1) { + TextureId id = textures->loadTexture(imageName); + if (id != Textures::InvalidId) { + const TextureData* data = textures->getTemporaryTextureData(id); + if (data) { // This should never be false + width = data->w; + height = data->h; + } + } else { + LOGE("Error @ NinePatchFactory::ctor - Couldn't find texture: %s\n", imageName.c_str()); + } +} + +NinePatchLayer* NinePatchFactory::createSymmetrical( const IntRectangle& src, int xCutAt, int yCutAt, float w /*= 32.0f*/, float h /*= 32.0f*/ ) { + return new NinePatchLayer( + NinePatchDescription::createSymmetrical(width, height, src, xCutAt, yCutAt), + imageName, textures, w, h); +} diff --git a/src/client/gui/components/NinePatch.h b/src/client/gui/components/NinePatch.h new file mode 100755 index 0000000..3403f2b --- /dev/null +++ b/src/client/gui/components/NinePatch.h @@ -0,0 +1,78 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__NinePatch_H__ +#define NET_MINECRAFT_CLIENT_GUI__NinePatch_H__ + +#include "ImageButton.h" +#include "../../renderer/TextureData.h" +#include "../../renderer/Textures.h" +#include "../../renderer/Tesselator.h" +#include "../../Minecraft.h" + +class Tesselator; + +class NinePatchDescription { +public: + NinePatchDescription& transformUVForImage(const TextureData& d); + NinePatchDescription& transformUVForImageSize(int w, int h); + + float u0, u1, u2, u3; + float v0, v1, v2, v3; + float w, e, n, s; + + static NinePatchDescription createSymmetrical(int texWidth, int texHeight, const IntRectangle& src, int xCutAt, int yCutAt); +private: + NinePatchDescription( float x, float y, float x1, float x2, float x3, float y1, float y2, float y3, + float w, float e, float n, float s); + + int imgW; + int imgH; +}; + +class NinePatchLayer: public GuiElement +{ + struct CachedQuad; +public: + NinePatchLayer(const NinePatchDescription& desc, const std::string& imageName, Textures* textures, float w = 32, float h = 32); + virtual ~NinePatchLayer() {}; + void setSize(float w, float h); + + void draw(Tesselator& t, float x, float y); + + NinePatchLayer* exclude(int excludeId); + NinePatchLayer* setExcluded(int exludeBits); + + float getWidth() { return w; } + float getHeight() { return h; } + +private: + void buildQuad(int qid); + void getPatchInfo(int xc, int yc, float& x0, float& x1, float& y0, float& y1); + + void d(Tesselator& t, const CachedQuad& q); + + float w, h; + NinePatchDescription desc; + std::string imageName; + Textures* textures; + int excluded; + + typedef struct CachedQuad { + float x0, x1, y0, y1, z; + float u0, u1, v0, v1; + } CachedQuad; + CachedQuad quads[9]; +}; + +class NinePatchFactory { +public: + NinePatchFactory(Textures* textures, const std::string& imageName ); + + NinePatchLayer* createSymmetrical(const IntRectangle& src, int xCutAt, int yCutAt, float w = 32.0f, float h = 32.0f); + +private: + Textures* textures; + std::string imageName; + int width; + int height; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__NinePatch_H__*/ diff --git a/src/client/gui/components/OptionsGroup.cpp b/src/client/gui/components/OptionsGroup.cpp new file mode 100755 index 0000000..7cd1a3a --- /dev/null +++ b/src/client/gui/components/OptionsGroup.cpp @@ -0,0 +1,68 @@ +#include "OptionsGroup.h" +#include "../../Minecraft.h" +#include "ImageButton.h" +#include "OptionsItem.h" +#include "Slider.h" +#include "../../../locale/I18n.h" +OptionsGroup::OptionsGroup( std::string labelID ) { + label = I18n::get(labelID); +} + +void OptionsGroup::setupPositions() { + // First we write the header and then we add the items + int curY = y + 10; + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->width = width - 5; + + (*it)->y = curY; + (*it)->x = x + 10; + (*it)->setupPositions(); + curY += (*it)->height + 3; + } + height = curY; +} + +void OptionsGroup::render( Minecraft* minecraft, int xm, int ym ) { + minecraft->font->draw(label, (float)x + 2, (float)y, 0xffffffff, false); + super::render(minecraft, xm, ym); +} + +OptionsGroup& OptionsGroup::addOptionItem( const Options::Option* option, Minecraft* minecraft ) { + if(option->isBoolean()) + createToggle(option, minecraft); + else if(option->isProgress()) + createProgressSlider(option, minecraft); + else if(option->isInt()) + createStepSlider(option, minecraft); + return *this; +} + +void OptionsGroup::createToggle( const Options::Option* option, Minecraft* minecraft ) { + ImageDef def; + def.setSrc(IntRectangle(160, 206, 39, 20)); + def.name = "gui/touchgui.png"; + def.width = 39 * 0.7f; + def.height = 20 * 0.7f; + OptionButton* element = new OptionButton(option); + element->setImageDef(def, true); + std::string itemLabel = I18n::get(option->getCaptionId()); + OptionsItem* item = new OptionsItem(itemLabel, element); + addChild(item); + setupPositions(); +} + +void OptionsGroup::createProgressSlider( const Options::Option* option, Minecraft* minecraft ) { + Slider* element = new Slider(minecraft, + option, + minecraft->options.getProgrssMin(option), + minecraft->options.getProgrssMax(option)); + element->width = 100; + element->height = 20; + OptionsItem* item = new OptionsItem(label, element); + addChild(item); + setupPositions(); +} + +void OptionsGroup::createStepSlider( const Options::Option* option, Minecraft* minecraft ) { + +} diff --git a/src/client/gui/components/OptionsGroup.h b/src/client/gui/components/OptionsGroup.h new file mode 100755 index 0000000..5fbe0c0 --- /dev/null +++ b/src/client/gui/components/OptionsGroup.h @@ -0,0 +1,27 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsGroup_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsGroup_H__ + +//package net.minecraft.client.gui; + +#include +#include "GuiElementContainer.h" +#include "../../Options.h" + +class Font; +class Minecraft; + +class OptionsGroup: public GuiElementContainer { + typedef GuiElementContainer super; +public: + OptionsGroup(std::string labelID); + virtual void setupPositions(); + virtual void render(Minecraft* minecraft, int xm, int ym); + virtual OptionsGroup& addOptionItem(const Options::Option* option, Minecraft* minecraft); +protected: + virtual void createToggle(const Options::Option* option, Minecraft* minecraft); + virtual void createProgressSlider(const Options::Option* option, Minecraft* minecraft); + virtual void createStepSlider(const Options::Option* option, Minecraft* minecraft); + std::string label; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsGroup_H__*/ diff --git a/src/client/gui/components/OptionsItem.cpp b/src/client/gui/components/OptionsItem.cpp new file mode 100755 index 0000000..39049e6 --- /dev/null +++ b/src/client/gui/components/OptionsItem.cpp @@ -0,0 +1,24 @@ +#include "OptionsItem.h" +#include "../../Minecraft.h" +#include "../../../util/Mth.h" +OptionsItem::OptionsItem( std::string label, GuiElement* element ) +: GuiElementContainer(false, true, 0, 0, 24, 12), + label(label) { + addChild(element); +} + +void OptionsItem::setupPositions() { + int currentHeight = 0; + for(std::vector::iterator it = children.begin(); it != children.end(); ++it) { + (*it)->x = x + width - (*it)->width - 15; + (*it)->y = y + currentHeight; + currentHeight += (*it)->height; + } + height = currentHeight; +} + +void OptionsItem::render( Minecraft* minecraft, int xm, int ym ) { + int yOffset = (height - 8) / 2; + minecraft->font->draw(label, (float)x, (float)y + yOffset, 0x909090, false); + super::render(minecraft, xm, ym); +} \ No newline at end of file diff --git a/src/client/gui/components/OptionsItem.h b/src/client/gui/components/OptionsItem.h new file mode 100755 index 0000000..82b8614 --- /dev/null +++ b/src/client/gui/components/OptionsItem.h @@ -0,0 +1,26 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsItem_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsItem_H__ + +#include +#include +#include "GuiElementContainer.h" +#include "../../../world/item/ItemInstance.h" +#include "../../../client/Options.h" +class Font; +class Textures; +class NinePatchLayer; +class ItemPane; + +class OptionsItem: public GuiElementContainer +{ + typedef GuiElementContainer super; +public: + OptionsItem(std::string label, GuiElement* element); + virtual void render(Minecraft* minecraft, int xm, int ym); + void setupPositions(); + +private: + std::string label; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__OptionsItem_H__*/ diff --git a/src/client/gui/components/OptionsPane.cpp b/src/client/gui/components/OptionsPane.cpp new file mode 100755 index 0000000..f00f5f0 --- /dev/null +++ b/src/client/gui/components/OptionsPane.cpp @@ -0,0 +1,64 @@ +#include "OptionsPane.h" +#include "OptionsGroup.h" +#include "OptionsItem.h" +#include "ImageButton.h" +#include "Slider.h" +#include "../../Minecraft.h" + +OptionsPane::OptionsPane() { + +} + +void OptionsPane::setupPositions() { + int currentHeight = y + 1; + for(std::vector::iterator it = children.begin(); it != children.end(); ++it ) { + (*it)->width = width; + (*it)->y = currentHeight; + (*it)->x = x; + currentHeight += (*it)->height + 1; + } + height = currentHeight; + super::setupPositions(); +} + +OptionsGroup& OptionsPane::createOptionsGroup( std::string label ) { + OptionsGroup* newGroup = new OptionsGroup(label); + children.push_back(newGroup); + // create and return a new group index + return *newGroup; +} + +void OptionsPane::createToggle( unsigned int group, std::string label, const Options::Option* option ) { +// if(group > children.size()) return; +// ImageDef def; +// def.setSrc(IntRectangle(160, 206, 39, 20)); +// def.name = "gui/touchgui.png"; +// def.width = 39 * 0.7f; +// def.height = 20 * 0.7f; +// OptionButton* element = new OptionButton(option); +// element->setImageDef(def, true); +// OptionsItem* item = new OptionsItem(label, element); +// ((OptionsGroup*)children[group])->addChild(item); +// setupPositions(); +} + +void OptionsPane::createProgressSlider( Minecraft* minecraft, unsigned int group, std::string label, const Options::Option* option, float progressMin/*=1.0f*/, float progressMax/*=1.0f */ ) { +// if(group > children.size()) return; +// Slider* element = new Slider(minecraft, option, progressMin, progressMax); +// element->width = 100; +// element->height = 20; +// OptionsItem* item = new OptionsItem(label, element); +// ((OptionsGroup*)children[group])->addChild(item); +// setupPositions(); +} + +void OptionsPane::createStepSlider( Minecraft* minecraft, unsigned int group, std::string label, const Options::Option* option, const std::vector& stepVec ) { +// if(group > children.size()) return; +// Slider* element = new Slider(minecraft, option, stepVec); +// element->width = 100; +// element->height = 20; +// sliders.push_back(element); +// OptionsItem* item = new OptionsItem(label, element); +// ((OptionsGroup*)children[group])->addChild(item); +// setupPositions(); +} \ No newline at end of file diff --git a/src/client/gui/components/OptionsPane.h b/src/client/gui/components/OptionsPane.h new file mode 100755 index 0000000..5eb9652 --- /dev/null +++ b/src/client/gui/components/OptionsPane.h @@ -0,0 +1,30 @@ +#ifndef ITEMPANE_H__ +#define ITEMPANE_H__ + +#include +#include +#include "GuiElementContainer.h" +#include "../../../world/item/ItemInstance.h" +#include "../../../client/Options.h" +class Font; +class Textures; +class NinePatchLayer; +class ItemPane; +class OptionButton; +class Button; +class OptionsGroup; +class Slider; +class Minecraft; +class OptionsPane: public GuiElementContainer +{ + typedef GuiElementContainer super; +public: + OptionsPane(); + OptionsGroup& createOptionsGroup( std::string label ); + void createToggle( unsigned int group, std::string label, const Options::Option* option ); + void createProgressSlider(Minecraft* minecraft, unsigned int group, std::string label, const Options::Option* option, float progressMin=1.0f, float progressMax=1.0f ); + void createStepSlider(Minecraft* minecraft, unsigned int group, std::string label, const Options::Option* option, const std::vector& stepVec ); + void setupPositions(); +}; + +#endif /*ITEMPANE_H__*/ diff --git a/src/client/gui/components/RolledSelectionListH.cpp b/src/client/gui/components/RolledSelectionListH.cpp new file mode 100755 index 0000000..625896d --- /dev/null +++ b/src/client/gui/components/RolledSelectionListH.cpp @@ -0,0 +1,299 @@ +#include "RolledSelectionListH.h" +#include "../../Minecraft.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/gles.h" +#include "../../../platform/input/Mouse.h" +#include "../../../platform/input/Multitouch.h" +#include "../../../util/Mth.h" +#include "../../renderer/Textures.h" + + +RolledSelectionListH::RolledSelectionListH( Minecraft* minecraft, int width, int height, int x0, int x1, int y0, int y1, int itemWidth ) +: minecraft(minecraft), + width(width), + height(height), + x0((float)x0), + x1((float)x1), + y0((float)y0), + y1((float)y1), + itemWidth(itemWidth), + selectionX(-1), + lastSelectionTime(0), + lastSelection(-1), + renderSelection(true), + doRenderHeader(false), + headerWidth(0), + dragState(DRAG_OUTSIDE), + xDrag(0.0f), + xo(0.0f), + xoo(0.0f), + xInertia(0.0f), + _componentSelected(false), + _renderTopBorder(true), + _renderBottomBorder(true), + _lastxoo(0), + _xinertia(0) +{ + xo = xoo = (float)(itemWidth-width) * 0.5f; + _lastxoo = xoo; +} + +void RolledSelectionListH::setRenderSelection( bool _renderSelection ) +{ + renderSelection = _renderSelection; +} + +void RolledSelectionListH::setComponentSelected(bool selected) { + _componentSelected = selected; +} + +void RolledSelectionListH::setRenderHeader( bool _renderHeader, int _headerHeight ) +{ + doRenderHeader = _renderHeader; + headerWidth = _headerHeight; + + if (!doRenderHeader) { + headerWidth = 0; + } +} + +int RolledSelectionListH::getMaxPosition() +{ + return getNumberOfItems() * itemWidth + headerWidth; +} + +int RolledSelectionListH::getItemAtPosition( int x, int y ) +{ + int clickSlotPos = (int)(x - x0 - headerWidth + (int) xo - 4); + int isInsideY = y >= y0 && y <= y1; + return isInsideY? getItemAtXPositionRaw(clickSlotPos) : -1; +} + +int RolledSelectionListH::getItemAtXPositionRaw(int x) { + int slot = x / itemWidth; + bool isInsideX = slot >= 0 && x >= 0 && slot < getNumberOfItems(); + return isInsideX? slot : -1; +} + +bool RolledSelectionListH::capXPosition() +{ + const float MinX = (float)(itemWidth-width)/2; + const float MaxX = MinX + (getNumberOfItems()-1) * itemWidth; + if (xo < MinX) { xo = MinX; xInertia = 0; return true; } + if (xo > MaxX) { xo = MaxX; xInertia = 0; return true; } + return false; +} + +void RolledSelectionListH::tick() { + + //if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) + { + _xinertia = _lastxoo - xoo; + } + _lastxoo = xoo; + xoo = xo - xInertia; +} + +float RolledSelectionListH::getPos(float alpha) { + return xoo - xInertia * alpha; +} + +void RolledSelectionListH::render( int xm, int ym, float a ) +{ + renderBackground(); + + int itemCount = getNumberOfItems(); + + //float yy0 = height / 2.0f + 124; + //float yy1 = yy0 + 6; + + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { + touched(); + //LOGI("DOWN ym: %d\n", ym); + if (ym >= y0 && ym <= y1) { + if (dragState == NO_DRAG) { + lastSelectionTime = getTimeMs(); + lastSelection = getItemAtPosition(xm, height/2); + //float localX = (float)(xm*Gui::InvGuiScale - x0 - xo + lastSelection * itemWidth + headerWidth); + selectStart(lastSelection, 0, 0);//localX, ym-y0); + selectionX = xm; + } + else if (dragState >= 0) { + xo -= (xm - xDrag); + xoo = xo; + } + dragState = DRAG_NORMAL; + //const int* ids; + //LOGI("mtouch: %d\n", Multitouch::getActivePointerIds(&ids)); + } + } else { + if (dragState >= 0) { + if (dragState >= 0) { + xInertia = _xinertia < 0? Mth::Max(-20.0f, _xinertia) : Mth::Min(20.0f, _xinertia); + } + //LOGI("Inertia: %f. Time: %d, delta-x: %d, (xm, sel: %d, %d)\n", xInertia, getTimeMs() - lastSelectionTime, std::abs(selectionX - xm), xm, selectionX); + // kill small inertia values when releasing scrollist + if (std::abs(xInertia) <= 2.0001f) { + xInertia = 0.0f; + } + + if (std::abs(xInertia) <= 10 && getTimeMs() - lastSelectionTime < 300) + { + int slot = getItemAtPosition(xm, height/2); + //LOGI("slot: %d, lt: %d. diff: %d - %d\n", slot, lastSelection, selectionX, xm); + if (slot >= 0 && slot == lastSelection && std::abs(selectionX - xm) < 10) + selectItem(slot, false); + else + selectCancel(); + } else { + selectCancel(); + } + } + + // if (slot >= 0 && std::abs(selectionX - xm) < itemWidth) + // { + // bool doubleClick = false; + // selectItem(slot, doubleClick); + // //xInertia = 0.0f; + // } + //} + dragState = NO_DRAG; + + xo = getPos(a); + } + xDrag = (float)xm; + + capXPosition(); + + Tesselator& t = Tesselator::instance; + + float by0 = _renderTopBorder? y0 : 0; + float by1 = _renderBottomBorder? y1 : height; + + //LOGI("x: %f\n", xo); + + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1.0f, 1, 1, 1); + float s = 32; + t.begin(); + t.color(0x202020); + t.vertexUV(x0, by1, 0, (x0 + (int) xo) / s, by1 / s); + t.vertexUV(x1, by1, 0, (x1 + (int) xo) / s, by1 / s); + t.vertexUV(x1, by0, 0, (x1 + (int) xo) / s, by0 / s); + t.vertexUV(x0, by0, 0, (x0 + (int) xo) / s, by0 / s); + t.draw(); + + const int HalfHeight = 48; + + if (getNumberOfItems() == 0) xo = 0; + + int rowY = (int)(height / 2 - HalfHeight + 8); + int rowBaseX = (int)(x0 /*+ 4*/ - (int) xo); + + if (doRenderHeader) { + renderHeader(rowBaseX, rowY, t); + } + + for (int i = 0; i < itemCount; i++) { + + float x = (float)(rowBaseX + (i) * itemWidth + headerWidth); + float h = (float)itemWidth; + + if (x > x1 || (x + h) < x0) { + continue; + } + + if (renderSelection && isSelectedItem(i)) { + float y0 = height / 2.0f - HalfHeight - 4; //@kindle-res:+2 + float y1 = height / 2.0f + HalfHeight - 4; //@kindle-res:-6 + glColor4f2(1, 1, 1, 1); + glDisable2(GL_TEXTURE_2D); + + int ew = 0; + int color = 0x808080; + if (_componentSelected) { + ew = 0; + color = 0x7F89BF; + } + t.begin(); + t.color(color); + t.vertex(x - 1 - ew, y0 - ew, 0); + t.vertex(x - 1 - ew, y1 + ew, 0); + t.vertex(x + h + 1 + ew, y1 + ew, 0); + t.vertex(x + h + 1 + ew, y0 - ew, 0); + + t.color(0x000000); + t.vertex(x, y0 + 1, 0); + t.vertex(x, y1 - 1, 0); + t.vertex(x + h, y1 - 1, 0); + t.vertex(x + h, y0 + 1, 0); + + t.draw(); + glEnable2(GL_TEXTURE_2D); + } + renderItem(i, (int)x, rowY, (int)h, t); + } + + glDisable2(GL_DEPTH_TEST); + + if (_renderTopBorder) + renderHoleBackground(0, y0, 255, 255); + if (_renderBottomBorder) + renderHoleBackground(y1, (float)height, 255, 255); + + //glEnable2(GL_BLEND); + //glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + //glDisable2(GL_ALPHA_TEST); + //glShadeModel2(GL_SMOOTH); + + //glDisable2(GL_TEXTURE_2D); + + //const int d = 4; + //t.begin(); + //t.color(0x000000, 0); + //t.vertexUV(y0, x0 + d, 0, 0, 1); + //t.vertexUV(y1, x0 + d, 0, 1, 1); + //t.color(0x000000, 255); + //t.vertexUV(y1, x0, 0, 1, 0); + //t.vertexUV(y0, x0, 0, 0, 0); + //t.draw(); + + //t.begin(); + //t.color(0x000000, 255); + //t.vertexUV(y0, x1, 0, 0, 1); + //t.vertexUV(y1, x1, 0, 1, 1); + //t.color(0x000000, 0); + //t.vertexUV(y1, x1 - d, 0, 1, 0); + //t.vertexUV(y0, x1 - d, 0, 0, 0); + //t.draw(); + + //renderDecorations(xm, ym); + + //glEnable2(GL_TEXTURE_2D); + glEnable2(GL_DEPTH_TEST); + + //glShadeModel2(GL_FLAT); + //glEnable2(GL_ALPHA_TEST); + //glDisable2(GL_BLEND); +} + +void RolledSelectionListH::renderHoleBackground( /*float x0, float x1,*/ float y0, float y1, int a0, int a1 ) +{ + Tesselator& t = Tesselator::instance; + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1.0f, 1, 1, 1); + float s = 32; + t.begin(); + t.color(0x505050, a1); + t.vertexUV(0, y1, 0, 0, y1 / s); + t.vertexUV((float)width, y1, 0, width / s, y1 / s); + t.color(0x505050, a0); + t.vertexUV((float)width, y0, 0, width / s, y0 / s); + t.vertexUV(0, y0, 0, 0, y0 / s); + t.draw(); + //printf("x, y, x1, y1: %d, %d, %d, %d\n", 0, (int)y0, width, (int)y1); +} + +void RolledSelectionListH::touched() +{ +} diff --git a/src/client/gui/components/RolledSelectionListH.h b/src/client/gui/components/RolledSelectionListH.h new file mode 100755 index 0000000..14592cd --- /dev/null +++ b/src/client/gui/components/RolledSelectionListH.h @@ -0,0 +1,82 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__RolledSelectionListH_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__RolledSelectionListH_H__ + +#include "../GuiComponent.h" +class Minecraft; +class Tesselator; + + +class RolledSelectionListH : public GuiComponent +{ + static const int NO_DRAG = -1; + static const int DRAG_OUTSIDE = -2; + static const int DRAG_NORMAL = 0; +public: + RolledSelectionListH(Minecraft* minecraft, int width, int height, int x0, int x1, int y0, int y1, int itemWidth); + + virtual int getItemAtPosition(int x, int y); + + virtual bool capXPosition(); + + virtual void tick(); + virtual void render(int xm, int ym, float a); + virtual void renderHoleBackground(/*float x0, float x1,*/ float y0, float y1, int a0, int a1); + virtual void setRenderSelection(bool _renderSelection); + virtual void setComponentSelected(bool selected); +protected: + void setRenderHeader(bool _renderHeader, int _headerHeight); + + virtual int getNumberOfItems() = 0; + + virtual void selectStart(int item, int localX, int localY) {} + virtual void selectCancel() {} + virtual void selectItem(int item, bool doubleClick) = 0; + virtual bool isSelectedItem(int item) = 0; + + virtual int getMaxPosition(); + virtual float getPos(float alpha); + virtual void touched(); + + virtual void renderItem(int i, int x, int y, int h, Tesselator& t) = 0; + virtual void renderHeader(int x, int y, Tesselator& t) {} + virtual void renderBackground() = 0; + virtual void renderDecorations(int mouseX, int mouseY) {} + + virtual void clickedHeader(int headerMouseX, int headerMouseY) {} + int getItemAtXPositionRaw(int x); +protected: + Minecraft* minecraft; + + float x0; + float x1; + int itemWidth; + int width; + int height; +//private: + float y0; + float y1; + + int dragState; + float xDrag; + float xo; + float xoo; + float xInertia; + float _xinertia; + + int selectionX; + bool renderSelection; + bool _componentSelected; + + bool _renderTopBorder; + bool _renderBottomBorder; + +private: + int headerWidth; + bool doRenderHeader; + long lastSelectionTime; + int lastSelection; + + float _lastxoo; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__RolledSelectionListH_H__*/ diff --git a/src/client/gui/components/RolledSelectionListV.cpp b/src/client/gui/components/RolledSelectionListV.cpp new file mode 100755 index 0000000..e42d9bd --- /dev/null +++ b/src/client/gui/components/RolledSelectionListV.cpp @@ -0,0 +1,352 @@ +#include "RolledSelectionListV.h" +#include "../../Minecraft.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/gles.h" +#include "../../../platform/input/Mouse.h" +#include "../../../util/Mth.h" +#include "../../renderer/Textures.h" + + +RolledSelectionListV::RolledSelectionListV( Minecraft* minecraft_, int width_, int height_, int x0_, int x1_, int y0_, int y1_, int itemHeight_ ) +: minecraft(minecraft_), + width(width_), + height(height_), + x0((float)x0_), + x1((float)x1_), + y0((float)y0_), + y1((float)y1_), + itemHeight(itemHeight_), + selectionY(-1), + lastSelectionTime(0), + lastSelection(-1), + renderSelection(true), + doRenderHeader(false), + headerHeight(0), + dragState(DRAG_OUTSIDE), + yDrag(0.0f), + yo(0.0f), + yoo(0.0f), + yInertia(0.0f), + _componentSelected(false), + _renderDirtBackground(true), + _renderTopBorder(true), + _renderBottomBorder(true), + _lastyoo(0), + _yinertia(0), + _stickPixels(0), + _lastxm(0), + _lastym(0) +{ + yo = yoo = 0;//(float)(-itemHeight) * 0.5f; + _lastyoo = yoo; +} + +void RolledSelectionListV::setRenderSelection( bool _renderSelection ) +{ + renderSelection = _renderSelection; +} + +void RolledSelectionListV::setComponentSelected(bool selected) { + _componentSelected = selected; +} + +void RolledSelectionListV::setRenderHeader( bool _renderHeader, int _headerHeight ) +{ + doRenderHeader = _renderHeader; + headerHeight = _headerHeight; + + if (!doRenderHeader) { + headerHeight = 0; + } +} + +int RolledSelectionListV::getMaxPosition() +{ + return getNumberOfItems() * itemHeight + headerHeight; +} + +int RolledSelectionListV::getItemAtPosition( int x, int y ) +{ + int clickSlotPos = (int)(y - y0 - headerHeight + (int) yo - 4); + int isInsideX = x >= x0 && x <= x1; + return isInsideX? getItemAtYPositionRaw(clickSlotPos) : -1; +} + +int RolledSelectionListV::getItemAtYPositionRaw(int y) { + int slot = y / itemHeight; + bool isInsideX = slot >= 0 && y >= 0 && slot < getNumberOfItems(); + return isInsideX? slot : -1; +} + +bool RolledSelectionListV::capYPosition() +{ + float max = getMaxPosition() - (y1 - y0 - 4); + if (max < 0) max /= 2; + if (yo < 0) yo = 0; + if (yo > max) yo = max; + return false; +/* + const float MinY = -itemHeight/2;//(float)(itemHeight-height)/2; + const float MaxY = MinY + (getNumberOfItems()-1) * itemHeight; + if (yo < MinY) { yo = MinY; yInertia = 0; return true; } + if (yo > MaxY) { yo = MaxY; yInertia = 0; return true; } + return false; + */ +} + +void RolledSelectionListV::tick() { + + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) + { + _yinertia = _lastyoo - yoo; + } + _lastyoo = yoo; + + //yInertia = Mth::absDecrease(yInertia, 1.0f, 0); + + yoo = yo - yInertia; + + //LOGI("tick: %f, %f, %f\n", yo, yInertia, _yinertia); +} + +float RolledSelectionListV::getPos(float alpha) { + return yoo - yInertia * alpha; +} + +void RolledSelectionListV::render( int xm, int ym, float a ) +{ + _lastxm = xm; + _lastym = ym; + renderBackground(); + + int itemCount = getNumberOfItems(); + + //float yy0 = height / 2.0f + 124; + //float yy1 = yy0 + 6; + + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { + touched(); + //LOGI("DOWN ym: %d\n", ym); + if (ym >= y0 && ym <= y1) { + if (dragState == NO_DRAG) { + lastSelectionTime = getTimeMs(); + lastSelection = convertSelection( getItemAtPosition(width/2, ym), xm, ym ); + selectStart(lastSelection); + //LOGI("Sel : %d\n", lastSelection); + selectionY = ym; + _stickPixels = 10; + } + else if (dragState >= 0) { + float delta = (ym - yDrag); + float absDelta = Mth::abs(delta); + if (absDelta > _stickPixels) { + _stickPixels = 0; + delta -= delta>0? _stickPixels : -_stickPixels; + } else { + delta = 0; + _stickPixels -= absDelta; + } + yo -= delta; + yoo = yo; + } + dragState = DRAG_NORMAL; + } + } else { + if (dragState >= 0) { + if (dragState >= 0) { + yInertia = _yinertia < 0? Mth::Max(-10.0f, _yinertia) : Mth::Min(10.0f, _yinertia); + } + // kill small inertia values when releasing scrollist + if (std::abs(yInertia) <= 2.0001f) { + yInertia = 0.0f; + } + + if (std::abs(yInertia) <= 10 /*&& getTimeMs() - lastSelectionTime < 300 */) + { + //float clickSlotPos = (ym - x0 - headerHeight + (int) yo - 4); + int slot = convertSelection( getItemAtPosition(width/2, ym), xm, ym); + //LOGI("slot: %d, lt: %d. diff: %d - %d\n", slot, lastSelection, selectionX, xm); + if (xm >= x0 && xm <= x1 && slot >= 0 && slot == lastSelection && std::abs(selectionY - ym) < 10) + selectItem(slot, false); + } else { + selectCancel(); + } + } + + // if (slot >= 0 && std::abs(selectionX - xm) < itemWidth) + // { + // bool doubleClick = false; + // selectItem(slot, doubleClick); + // //xInertia = 0.0f; + // } + //} + dragState = NO_DRAG; + + yo = getPos(a); + } + yDrag = (float)ym; + + evaluate(xm, ym); + capYPosition(); + + Tesselator& t = Tesselator::instance; + + const int HalfWidth = 48; + int rowX = (int)(width / 2 - HalfWidth + 8); + int rowBaseY = (int)(y0 + 4 - (int) yo); + + if (_renderDirtBackground) + renderDirtBackground(); + + if (getNumberOfItems() == 0) yo = 0; + + //int rowY = (int)(height / 2 - HalfHeight + 8); + if (doRenderHeader) { + const int HalfWidth = 48; + int rowX = (int)(width / 2 - HalfWidth + 8); + int rowBaseY = (int)(y0 + 4 - (int) yo); + renderHeader(rowX, rowBaseY, t); + } + + onPreRender(); + for (int i = 0; i < itemCount; i++) { + + float y = (float)(rowBaseY + (i) * itemHeight + headerHeight); + float h = itemHeight - 4.0f; + + if (y > y1 || (y + h) < y0) { + continue; + } + + if (renderSelection && isSelectedItem(i)) { + //float y0 = height / 2.0f - HalfHeight - 4; + //float y1 = height / 2.0f + HalfHeight - 4; + //glColor4f2(1, 1, 1, 1); + //glDisable2(GL_TEXTURE_2D); + + //int ew = 0; + //int color = 0x808080; + //if (_componentSelected) { + // ew = 0; + // color = 0x7F89BF; + //} + //t.begin(); + //t.color(color); + //t.vertex(x - 2 - ew, y0 - ew, 0); + //t.vertex(x - 2 - ew, y1 + ew, 0); + //t.vertex(x + h + 2 + ew, y1 + ew, 0); + //t.vertex(x + h + 2 + ew, y0 - ew, 0); + + //t.color(0x000000); + //t.vertex(x - 1, y0 + 1, 0); + //t.vertex(x - 1, y1 - 1, 0); + //t.vertex(x + h + 1, y1 - 1, 0); + //t.vertex(x + h + 1, y0 + 1, 0); + + //t.draw(); + //glEnable2(GL_TEXTURE_2D); + } + renderItem(i, rowX, (int)y, (int)h, t); + } + onPostRender(); + + glDisable2(GL_DEPTH_TEST); + + if (_renderTopBorder) + renderHoleBackground(0, y0, 255, 255); + if (_renderBottomBorder) + renderHoleBackground(y1, (float)height, 255, 255); + renderForeground(); + + //glEnable2(GL_BLEND); + //glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + //glDisable2(GL_ALPHA_TEST); + //glShadeModel2(GL_SMOOTH); + + //glDisable2(GL_TEXTURE_2D); + + //const int d = 4; + //t.begin(); + //t.color(0x000000, 0); + //t.vertexUV(y0, x0 + d, 0, 0, 1); + //t.vertexUV(y1, x0 + d, 0, 1, 1); + //t.color(0x000000, 255); + //t.vertexUV(y1, x0, 0, 1, 0); + //t.vertexUV(y0, x0, 0, 0, 0); + //t.draw(); + + //t.begin(); + //t.color(0x000000, 255); + //t.vertexUV(y0, x1, 0, 0, 1); + //t.vertexUV(y1, x1, 0, 1, 1); + //t.color(0x000000, 0); + //t.vertexUV(y1, x1 - d, 0, 1, 0); + //t.vertexUV(y0, x1 - d, 0, 0, 0); + //t.draw(); + + //renderDecorations(xm, ym); + + //glEnable2(GL_TEXTURE_2D); + //glEnable2(GL_DEPTH_TEST); + + //glShadeModel2(GL_FLAT); + //glEnable2(GL_ALPHA_TEST); + //glDisable2(GL_BLEND); +} + +void RolledSelectionListV::renderHoleBackground( /*float x0, float x1,*/ float y0, float y1, int a0, int a1 ) +{ + Tesselator& t = Tesselator::instance; + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1.0f, 1, 1, 1); + float s = 32; + t.begin(); + t.color(0x505050, a1); + t.vertexUV(0, y1, 0, 0, y1 / s); + t.vertexUV((float)width, y1, 0, width / s, y1 / s); + t.color(0x505050, a0); + t.vertexUV((float)width, y0, 0, width / s, y0 / s); + t.vertexUV(0, y0, 0, 0, y0 / s); + t.draw(); + //printf("x, y, x1, y1: %d, %d, %d, %d\n", 0, (int)y0, width, (int)y1); +} + +void RolledSelectionListV::touched() +{ +} + +void RolledSelectionListV::evaluate(int xm, int ym) +{ + if (std::abs(selectionY - ym) >= 10) { + lastSelection = -1; + selectCancel(); + } +} + +void RolledSelectionListV::onPreRender() +{ +} + +void RolledSelectionListV::onPostRender() +{ +} + +void RolledSelectionListV::renderDirtBackground() +{ + float by0 = _renderTopBorder? y0 : 0; + float by1 = _renderBottomBorder? y1 : height; + + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1.0f, 1, 1, 1); + float s = 32; + const float uvy = (float)((int) yo); + Tesselator& t = Tesselator::instance; + t.begin(); + t.color(0x202020); + t.vertexUV(x0, by1, 0, x0 / s, (by1+uvy) / s); + t.vertexUV(x1, by1, 0, x1 / s, (by1+uvy) / s); + t.vertexUV(x1, by0, 0, x1 / s, (by0+uvy) / s); + t.vertexUV(x0, by0, 0, x0 / s, (by0+uvy) / s); + t.draw(); + //LOGI("%f, %f - %f, %f\n", x0, by0, x1, by1); +} diff --git a/src/client/gui/components/RolledSelectionListV.h b/src/client/gui/components/RolledSelectionListV.h new file mode 100755 index 0000000..09fb85f --- /dev/null +++ b/src/client/gui/components/RolledSelectionListV.h @@ -0,0 +1,94 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__RolledSelectionListV_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__RolledSelectionListV_H__ + +#include "../GuiComponent.h" +class Minecraft; +class Tesselator; + + +class RolledSelectionListV : public GuiComponent +{ + static const int NO_DRAG = -1; + static const int DRAG_OUTSIDE = -2; + static const int DRAG_NORMAL = 0; +public: + RolledSelectionListV(Minecraft* minecraft, int width, int height, int x0, int x1, int y0, int y1, int itemHeight); + + virtual int getItemAtPosition(int x, int y); + + virtual bool capYPosition(); + + virtual void tick(); + virtual void render(int xm, int ym, float a); + virtual void renderHoleBackground(/*float x0, float x1,*/ float y0, float y1, int a0, int a1); + virtual void setRenderSelection(bool _renderSelection); + virtual void setComponentSelected(bool selected); +protected: + void setRenderHeader(bool _renderHeader, int _headerHeight); + + virtual int getNumberOfItems() = 0; + + virtual void selectStart(int item) {} + virtual void selectCancel() {} + virtual void selectItem(int item, bool doubleClick) = 0; + virtual bool isSelectedItem(int item) = 0; + + virtual int getMaxPosition(); + virtual float getPos(float alpha); + virtual void touched(); + + virtual void renderItem(int i, int x, int y, int h, Tesselator& t) = 0; + virtual void renderHeader(int x, int y, Tesselator& t) {} + virtual void renderBackground() = 0; + virtual void renderForeground() {} + virtual void renderDecorations(int mouseX, int mouseY) {} + + virtual void clickedHeader(int headerMouseX, int headerMouseY) {} + virtual int convertSelection(int item, int xm, int ym) { return item; } + + int getItemAtYPositionRaw(int y); + void evaluate(int xm, int ym); + virtual void onPreRender(); + virtual void onPostRender(); + void renderDirtBackground(); +protected: + Minecraft* minecraft; + + float x0; + float x1; + int itemHeight; + int width; + int height; +//private: + float y0; + float y1; + + int dragState; + float yDrag; + float yo; + float yoo; + float yInertia; + float _yinertia; + + int selectionY; + bool renderSelection; + bool _componentSelected; + + bool _renderDirtBackground; + bool _renderTopBorder; + bool _renderBottomBorder; + + int _lastxm; + int _lastym; +private: + int headerHeight; + bool doRenderHeader; + long lastSelectionTime; + int lastSelection; + + float _lastyoo; + + float _stickPixels; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__RolledSelectionListV_H__*/ diff --git a/src/client/gui/components/ScrolledSelectionList.cpp b/src/client/gui/components/ScrolledSelectionList.cpp new file mode 100755 index 0000000..55a643f --- /dev/null +++ b/src/client/gui/components/ScrolledSelectionList.cpp @@ -0,0 +1,296 @@ +#include "ScrolledSelectionList.h" +#include "../../Minecraft.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/gles.h" +#include "../../../platform/input/Mouse.h" +#include "../../renderer/Textures.h" + +static int Abs(int d) { + return d >= 0? d : -d; +} + +ScrolledSelectionList::ScrolledSelectionList( Minecraft* _minecraft, int _width, int _height, int _y0, int _y1, int _itemHeight ) +: minecraft(_minecraft), + width(_width), + height(_height), + y0((float)_y0), + y1((float)_y1), + itemHeight(_itemHeight), + x0(0.0f), + x1((float)_width), + selectionY(-1), + lastSelectionTime(0), + renderSelection(true), + doRenderHeader(false), + headerHeight(0), + dragState(DRAG_OUTSIDE), + yDrag(0.0f), + yo(0.0f), + yInertia(0.0f) +{ +} + +void ScrolledSelectionList::setRenderSelection( bool _renderSelection ) +{ + renderSelection = _renderSelection; +} + +void ScrolledSelectionList::setRenderHeader( bool _renderHeader, int _headerHeight ) +{ + doRenderHeader = _renderHeader; + headerHeight = _headerHeight; + + if (!doRenderHeader) { + headerHeight = 0; + } +} + +int ScrolledSelectionList::getMaxPosition() +{ + return getNumberOfItems() * itemHeight + headerHeight; +} + +int ScrolledSelectionList::getItemAtPosition( int x, int y ) +{ + int x0 = width / 2 - (92 + 16 + 2); + int x1 = width / 2 + (92 + 16 + 2); + + int clickSlotPos = (int)(y - y0 - headerHeight + (int) yo - 4); + int slot = clickSlotPos / itemHeight; + if (x >= x0 && x <= x1 && slot >= 0 && clickSlotPos >= 0 && slot < getNumberOfItems()) { + return slot; + } + return -1; +} + +void ScrolledSelectionList::capYPosition() +{ + float max = getMaxPosition() - (y1 - y0 - 4); + if (max < 0) max /= 2; + if (yo < 0) yo = 0; + if (yo > max) yo = max; +} + +void ScrolledSelectionList::render( int xm, int ym, float a ) +{ + renderBackground(); + + int itemCount = getNumberOfItems(); + + //float xx0 = width / 2.0f + 124; + //float xx1 = xx0 + 6; + + + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { + //LOGI("DOWN ym: %d\n", ym); + if (ym >= y0 && ym <= y1 && ym != ignoreY) { + if (dragState == NO_DRAG) { + dragState = DRAG_SKIP; + } + else if (dragState >= 0) + { + if (dragState == DRAG_SKIP) + { + lastSelectionTime = getTimeMs(); + selectionY = ym; + } + else if (dragState == DRAG_NORMAL) + { + yo -= (ym - yDrag); + yInertia += (float)(ym - yDrag); + } + dragState = DRAG_NORMAL; + } + ignoreY = -1; + } + + } else { + if (dragState != NO_DRAG) + { + //LOGI("UP ym: %d\n", ym); + } + //ignoreY = ym; + + // kill small inertia values when releasing scrollist + if (dragState >= 0 && std::abs(yInertia) < 2) + { + yInertia = 0.0f; + } + + if (dragState >= 0 && getTimeMs() - lastSelectionTime < 300) + { + float clickSlotPos = (ym - y0 - headerHeight + (int) yo - 4); + int slot = (int)clickSlotPos / itemHeight; + + if (slot >= 0 && Abs(selectionY - ym) < itemHeight) + { + bool doubleClick = false; + selectItem(slot, doubleClick); + yInertia = 0.0f; + } + } + dragState = NO_DRAG; + + yo -= yInertia; + } + yInertia = yInertia * .75f; + yDrag = (float)ym; + + capYPosition(); + + Tesselator& t = Tesselator::instance; + + renderDirtBackground(); + + int rowX = (int)(width / 2 - 92 - 16); + int rowBaseY = (int)(y0 + 4 - (int) yo); + + if (doRenderHeader) { + renderHeader(rowX, rowBaseY, t); + } + + for (int i = 0; i < itemCount; i++) { + + float y = (float)(rowBaseY + (i) * itemHeight + headerHeight); + float h = itemHeight - 4.0f; + + if (y > y1 || (y + h) < y0) { + continue; + } + + if (renderSelection && isSelectedItem(i)) { + float x0 = width / 2.0f - (92 + 16 + 2); + float x1 = width / 2.0f + (92 + 16 + 2); + glColor4f2(1, 1, 1, 1); + glDisable2(GL_TEXTURE_2D); + t.begin(); + t.color(0x808080); + t.vertexUV(x0, y + h + 2, 0, 0, 1); + t.vertexUV(x1, y + h + 2, 0, 1, 1); + t.vertexUV(x1, y - 2, 0, 1, 0); + t.vertexUV(x0, y - 2, 0, 0, 0); + + t.color(0x000000); + t.vertexUV(x0 + 1, y + h + 1, 0, 0, 1); + t.vertexUV(x1 - 1, y + h + 1, 0, 1, 1); + t.vertexUV(x1 - 1, y - 1, 0, 1, 0); + t.vertexUV(x0 + 1, y - 1, 0, 0, 0); + + t.draw(); + glEnable2(GL_TEXTURE_2D); + } + + renderItem(i, rowX, (int)y, (int)h, t); + + } + + glDisable2(GL_DEPTH_TEST); + + + int d = 4; + + renderHoleBackground(0, y0, 255, 255); + renderHoleBackground(y1, (float)height, 255, 255); + + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable2(GL_ALPHA_TEST); + glShadeModel2(GL_SMOOTH); + + glDisable2(GL_TEXTURE_2D); + + t.begin(); + t.color(0x000000, 0); + t.vertexUV(x0, y0 + d, 0, 0, 1); + t.vertexUV(x1, y0 + d, 0, 1, 1); + t.color(0x000000, 255); + t.vertexUV(x1, y0, 0, 1, 0); + t.vertexUV(x0, y0, 0, 0, 0); + t.draw(); + + t.begin(); + t.color(0x000000, 255); + t.vertexUV(x0, y1, 0, 0, 1); + t.vertexUV(x1, y1, 0, 1, 1); + t.color(0x000000, 0); + t.vertexUV(x1, y1 - d, 0, 1, 0); + t.vertexUV(x0, y1 - d, 0, 0, 0); + t.draw(); + + // { + // float max = getMaxPosition() - (y1 - y0 - 4); + // if (max > 0) { + // float barHeight = (y1 - y0) * (y1 - y0) / (getMaxPosition()); + // if (barHeight < 32) barHeight = 32; + // if (barHeight > (y1 - y0 - 8)) barHeight = (y1 - y0 - 8); + // + // float yp = (int) yo * (y1 - y0 - barHeight) / max + y0; + // if (yp < y0) yp = y0; + // + // t.begin(); + // t.color(0x000000, 255); + // t.vertexUV(xx0, y1, 0.0f, 0.0f, 1.0f); + // t.vertexUV(xx1, y1, 0.0f, 1.0f, 1.0f); + // t.vertexUV(xx1, y0, 0.0f, 1.0f, 0.0f); + // t.vertexUV(xx0, y0, 0.0f, 0.0f, 0.0f); + // t.draw(); + // + // t.begin(); + // t.color(0x808080, 255); + // t.vertexUV(xx0, yp + barHeight, 0, 0, 1); + // t.vertexUV(xx1, yp + barHeight, 0, 1, 1); + // t.vertexUV(xx1, yp, 0, 1, 0); + // t.vertexUV(xx0, yp, 0, 0, 0); + // t.draw(); + // + // t.begin(); + // t.color(0xc0c0c0, 255); + // t.vertexUV(xx0, yp + barHeight - 1, 0, 0, 1); + // t.vertexUV(xx1 - 1, yp + barHeight - 1, 0, 1, 1); + // t.vertexUV(xx1 - 1, yp, 0, 1, 0); + // t.vertexUV(xx0, yp, 0, 0, 0); + // t.draw(); + // } + // } + + renderDecorations(xm, ym); + + + glEnable2(GL_TEXTURE_2D); + glEnable2(GL_DEPTH_TEST); + + glShadeModel2(GL_FLAT); + glEnable2(GL_ALPHA_TEST); + glDisable2(GL_BLEND); +} + +void ScrolledSelectionList::renderHoleBackground( float y0, float y1, int a0, int a1 ) +{ + Tesselator& t = Tesselator::instance; + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1.0f, 1, 1, 1); + float s = 32; + t.begin(); + t.color(0x505050, a1); + t.vertexUV(0, y1, 0, 0, y1 / s); + t.vertexUV((float)width, y1, 0, width / s, y1 / s); + t.color(0x505050, a0); + t.vertexUV((float)width, y0, 0, width / s, y0 / s); + t.vertexUV(0, y0, 0, 0, y0 / s); + t.draw(); +} + +void ScrolledSelectionList::renderDirtBackground() +{ + Tesselator& t = Tesselator::instance; + minecraft->textures->loadAndBindTexture("gui/background.png"); + glColor4f2(1.0f, 1, 1, 1); + float s = 32; + t.begin(); + t.color(0x202020); + t.vertexUV(x0, y1, 0, x0 / s, (y1 + (int) yo) / s); + t.vertexUV(x1, y1, 0, x1 / s, (y1 + (int) yo) / s); + t.vertexUV(x1, y0, 0, x1 / s, (y0 + (int) yo) / s); + t.vertexUV(x0, y0, 0, x0 / s, (y0 + (int) yo) / s); + t.draw(); +} diff --git a/src/client/gui/components/ScrolledSelectionList.h b/src/client/gui/components/ScrolledSelectionList.h new file mode 100755 index 0000000..bb6e9e2 --- /dev/null +++ b/src/client/gui/components/ScrolledSelectionList.h @@ -0,0 +1,69 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ScrolledSelectionList_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ScrolledSelectionList_H__ + +#include "../GuiComponent.h" +class Minecraft; +class Tesselator; + + +class ScrolledSelectionList : public GuiComponent +{ + static const int NO_DRAG = -1; + static const int DRAG_OUTSIDE = -2; + static const int DRAG_NORMAL = 0; + static const int DRAG_SKIP = 1; // special case to fix android jump bug +public: + ScrolledSelectionList(Minecraft* _minecraft, int _width, int _height, int _y0, int _y1, int _itemHeight); + + virtual void setRenderSelection(bool _renderSelection); +protected: + void setRenderHeader(bool _renderHeader, int _headerHeight); + + virtual int getNumberOfItems() = 0; + + virtual void selectItem(int item, bool doubleClick) = 0; + virtual bool isSelectedItem(int item) = 0; + + virtual int getMaxPosition(); + + virtual void renderItem(int i, int x, int y, int h, Tesselator& t) = 0; + virtual void renderHeader(int x, int y, Tesselator& t) {} + virtual void renderBackground() = 0; + virtual void renderDecorations(int mouseX, int mouseY) {} + + virtual void clickedHeader(int headerMouseX, int headerMouseY) {} +public: + virtual int getItemAtPosition(int x, int y); + + virtual void capYPosition(); + + virtual void render(int xm, int ym, float a); + virtual void renderHoleBackground(float y0, float y1, int a0, int a1); + void renderDirtBackground(); +protected: + Minecraft* minecraft; + + float y0; + float y1; + int itemHeight; +private: + int width; + int height; + float x1; + float x0; + + int ignoreY; // new attempt to fix android jump bug + int dragState; + float yDrag; + float yo; + float yInertia; + + int selectionY; + long lastSelectionTime; + + bool renderSelection; + bool doRenderHeader; + int headerHeight; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ScrolledSelectionList_H__*/ diff --git a/src/client/gui/components/ScrollingPane.cpp b/src/client/gui/components/ScrollingPane.cpp new file mode 100755 index 0000000..78c0187 --- /dev/null +++ b/src/client/gui/components/ScrollingPane.cpp @@ -0,0 +1,732 @@ +#include "ScrollingPane.h" +#include "../../renderer/gles.h" +#include "../Gui.h" +#include "../../../util/Mth.h" +#include "../../../SharedConstants.h" + +#define STR(x) (x.toString().c_str()) + +static const float kPenetrationDeceleration = 0.03f; +static const float kPenetrationAcceleration = 0.08f; +static const float kMaxTrackingTime = 100.0f; +static const float kAcceleration = 15; +static const float kMinVelocityForDecelerationWithPaging = 4 / 3.0f; +static const float kMinVelocityForDeceleration = 1 / 3.0f; +static const float kDesiredAnimationFrameRate = 1000.0f / 60; +static const float kDecelerationFrictionFactor = 0.95f; +static const float kMinimumVelocityToHideScrollIndicators = 0.05f; +static const float kMinimumVelocity = 0.01f; +static const float kMinimumTrackingForDrag = 5; +static const float kMinIndicatorLength = 34.0f / 3; +static const float PKScrollIndicatorEndSize = 3; +static const float PKScrollIndicatorThickness = 7.0f /3; + +ScrollingPane::ScrollingPane( + int optionFlags, + const IntRectangle& boundingBox, + const IntRectangle& itemRect, + int columns, + int numItems, + float screenScale /* = 1.0f */, + const IntRectangle& itemBoundingRect /*= IntRectangle(0,0,0,0)*/ ) +: flags(optionFlags), + bbox(boundingBox), + size(boundingBox), + area((float)bbox.x, (float)bbox.y, (float)(bbox.x + bbox.w), (float)(bbox.y + bbox.h)), + bboxArea(area), + itemRect(itemRect), + numItems(numItems), + screenScale(screenScale), + invScreenScale(1.0f / screenScale), + //hasItemBounding(), + px(0), py(0), fpx(0), fpy(0), + dx(0), dy(0), + dragState(-1), + dragLastDeltaTimeStamp(-1.0f), + friction(0.95f), + highlightTimer(-1), + highlightStarted(-1), + selectedId(-1), + decelerating(false), + tracking(false), + dragging(false), + pagingEnabled(false), + _scrollEnabled(true), + _timer(60), + _doStepTimer(false), + _wasDown(false),//Mouse::isButtonDown(MouseAction::ACTION_LEFT)), + _lx(-9999), _ly(-9999) +{ + if (itemBoundingRect.w > 0) + itemBbox = itemBoundingRect; + else + itemBbox = itemRect; + + this->columns = (columns>0)? columns : bbox.w / itemBbox.w; + + if (this->columns <= 0) { + LOGW("Columns are 0! Area width is smaller than item width. Setting columns to 1.\n"); + this->columns = 1; + } + //LOGI("%d, %d :: %d\n", bbox.w, itemBbox.w, this->columns); + + rows = 1 + (numItems-1) / this->columns, + + /* + if (columns * itemBbox.w <= bbox.w) flags |= SF_LockX; + if (rows * itemBbox.h <= bbox.h) flags |= SF_LockY; + */ + + dragDeltas.reserve(128); + + te_moved = 0; + te_ended = 1; + + selected = new bool[numItems]; + for (int i = 0; i < numItems; ++i) + selected[i] = false; + + // Setup the scroll bars + vScroll.w = vScroll.h = PKScrollIndicatorThickness; + hScroll.w = hScroll.h = PKScrollIndicatorThickness; + vScroll.x = bbox.x + bbox.w - vScroll.w; + vScroll.y = 0; + hScroll.x = 0; + hScroll.y = bbox.y + bbox.h - hScroll.h; + +// vScroll.alpha +// vScroll.fading = hScroll.fading = -1; +} + +ScrollingPane::~ScrollingPane() { + delete[] selected; +} + +//void ScrollingPane::init(Minecraft* mc, int width, int height) { +// this->mc = mc; +// this->width = width; +// this->height = height; +//} + +void ScrollingPane::tick() { + + if (isSet(SF_ShowScrollbar)) { + updateScrollFade(vScroll); + updateScrollFade(hScroll); + } +} + +bool ScrollingPane::getGridItemFor_slow(int itemIndex, GridItem& out) { + GridItem nw = getItemForPos(0, 0, false); + GridItem se = getItemForPos((float)bbox.w - 1, (float)bbox.h - 1, false); + const float bxx = bbox.x - (fpx /*+ dx*alpha*/) + (nw.xf - nw.x); + const float byy = bbox.y - (fpy /*+ dy*alpha*/) + (nw.yf - nw.y); + + int y = itemIndex / columns; + int x = itemIndex - (y * columns); + + out.id = itemIndex; + out.xf = bxx + x * itemBbox.w; + out.yf = byy + y * itemBbox.h; + out.x = x; + out.y = y; + + return x >= nw.x && x <= se.x + && y >= nw.y && y <= se.y; +} + + +void ScrollingPane::render( int xm, int ym, float alpha ) { + // Handle user interaction first + handleUserInput(); + + _timer.advanceTime(); + + if (_doStepTimer && !te_moved) { + for (int i = 0; i < _timer.ticks; ++i) + stepThroughDecelerationAnimation(false); + this->lastFrame = getTimeMs(); + } + + // Render + //if (isSet(SF_Scissor)) { + // glEnable2(GL_SCISSOR_TEST); + // GLuint x = (GLuint)(screenScale * bbox.x); + // GLuint y = 480 - (GLuint)(screenScale * (bbox.y + bbox.h)); + // GLuint w = (GLuint)(screenScale * bbox.w); + // GLuint h = (GLuint)(screenScale * bbox.h); + // glScissor(x, y, w, h); + // LOGI("x, y, w, h: %d, %d, %d, %d\n", x, y, w, h); + //} + + std::vector itemsToRender; + GridItem nw = getItemForPos(0, 0, false); + GridItem se = getItemForPos((float)bbox.w - 1, (float)bbox.h - 1, false); + + //LOGI("getItem: %d, %d - %d, %d\n", nw.x, nw.y, se.x, se.y); + + const float bxx = bbox.x - (fpx /*+ dx*alpha*/) + (nw.xf - nw.x); + const float byy = bbox.y - (fpy /*+ dy*alpha*/) + (nw.yf - nw.y); + for (int y = nw.y; y <= se.y; ++y) + for (int x = nw.x; x <= se.x; ++x) { + int id = y * columns + x; + if (y <0 || id < 0 || id >= numItems) continue; // @todo: break rather + if (isNotSet(SF_WrapX) && (x < 0 || x >= columns)) continue; // @todo: break rather + GridItem item; //@todo: v- Does not support SF_Wrapping + item.id = id; + item.xf = bxx + x * itemBbox.w; + item.yf = byy + y * itemBbox.h; + item.x = (int)item.xf; + item.y = (int)item.yf; + //LOGI("i: %d (%.1f, %.1f)\t", id, item.xf, item.yf); + if (isSet(SF_MultiSelect)) item.selected = selected[id]; + else item.selected = (id == selectedId); + + itemsToRender.push_back(item); + } + renderBatch(itemsToRender, alpha); + + //if (isSet(SF_Scissor)) + // glDisable2(GL_SCISSOR_TEST); +} + +void ScrollingPane::renderBatch(std::vector& items, float alpha) { + for (unsigned int i = 0; i < items.size(); ++i) + renderItem(items[i], alpha); +} + +void ScrollingPane::renderItem(GridItem& item, float alpha) { +} + +ScrollingPane::GridItem ScrollingPane::getItemForPos( float x, float y, bool isScreenPos ) { + // Screen relative pos (rather than ScrollingPane relative pos) + if (isScreenPos) { + x -= bbox.x; + y -= bbox.y; + } + + // Add the scrolled offset + x += fpx; + y += fpy; + + // Does the grid SF_Wrap around? + if (isSet(SF_WrapX)) x = fmod(x, (float)(itemBbox.w * columns)); + if (isSet(SF_WrapY)) y = fmod(y, (float)(itemBbox.h * rows)); + + GridItem out; + out.xf = x / itemBbox.w; + out.yf = y / itemBbox.h; + out.x = (int) out.xf; + out.y = (int) out.yf; + out.id = out.y * columns + out.x; + return out; +} + +void ScrollingPane::addDeltaPos(float x, float y, float dt, int a) { + if (dt <= 0) + return; + + Vec3 delta = (dragLastPos - Vec3(x, y, 0)) * (1.0f / dt); + dragDeltas.push_back(delta.x); + dragDeltas.push_back(delta.y); + dragLastPos.set(x, y, 0); + dragLastDeltaTimeStamp += dt; // @attn @fix: This relies on user to be correct + //LOGI(">> delta %d: %s\n", a, STR(delta)); +} + +static const int PKTableViewMinTouchDurationForCellSelection = 150; + +void ScrollingPane::handleUserInput() { + + bool isDown = Mouse::isButtonDown(MouseAction::ACTION_LEFT); + float x = Mouse::getX() * invScreenScale; + float y = Mouse::getY() * invScreenScale; + int t = getTimeMs(); + bool isInside = area.isInside(x, y); + //LOGI("inside? %d\n", isInside); + + bool moved = (x != _lx || y != _ly); + + _lx = x; + _ly = y; + + if (te_ended > 0 && _wasDown && !isDown) + touchesEnded(x, y, t); + else if (isDown && !_wasDown && isInside) + touchesBegan(x, y, t); + else if (te_moved > 0 && moved && isDown) + touchesMoved(x, y, t); + + if (highlightTimer >= 0 && isNotSet(SF_NoHoldSelect)) { + if (getTimeMs() - highlightTimer >= PKTableViewMinTouchDurationForCellSelection) + onHoldItem(); + } + + _wasDown = isDown; +} + +Vec3& ScrollingPane::contentOffset() { + return _contentOffset; +} + +void ScrollingPane::beginTracking(float x, float y, int t) { //@param 1: MouseEvent a + if (this->tracking) { + return; + } + //a.preventDefault(); + this->stopDecelerationAnimation(); + //this->hostingLayer.style.webkitTransitionDuration = 0; + this->adjustContentSize(); //@todo @? + this->minPoint.set((float)(this->size.w - this->adjustedContentSize.w), (float)(this->size.h - this->adjustedContentSize.h), 0); //@todo + this->snapContentOffsetToBounds(false); + this->startPosition = this->_contentOffset; + this->startTouchPosition.set(x, y, 0); + this->startTime = (float)t; + this->startTimePosition = this->contentOffset(); + this->tracking = true; + this->dragging = false; + this->touchesHaveMoved = false; + //window.addEventListener(PKMoveEvent, this, true); //@todo + //window.addEventListener(PKEndEvent, this, true); + //window.addEventListener("touchcancel", this, true); + //window.addEventListener(PKEndEvent, this, false) +}; + +void ScrollingPane::touchesBegan(float x, float y, int t) { //@param 1: MouseEvent a + if (!this->_scrollEnabled) { + return; + } + + te_ended = 1; + //if (a.eventPhase == Event.CAPTURING_PHASE) { + // if (a._manufactured) { + // return + // } + //this->highlightItem = getItemForPos(x, y, true); + // if (this.delaysContentTouches) { + // a.stopPropagation(); + // this.callMethodNameAfterDelay("beginTouchesInContent", kContentTouchesDelay, a); + this->beginTracking(x, y, t); + // } + //} else { + // this.beginTracking(a) + //} + te_moved = 2; + + GridItem gi = getItemForPos(x, y, true); + if (gi.id >= 0 && gi.id < numItems) { + //LOGI("Pressed down at %d (%d, %d)\n", gi.id, gi.x, gi.y); + highlightItem.id = bboxArea.isInside(x, y)? gi.id : -1; + highlightStarted = highlightTimer = bboxArea.isInside(x, y)? getTimeMs() : -1; + } else { + highlightItem.id = -1; + highlightStarted = highlightTimer = -1; + } +} + +void ScrollingPane::touchesMoved(float x, float y, int t) +{ + this->touchesHaveMoved = true; + //this->callSuper(d); + Vec3 e(x, y, 0); + float b = e.x - this->startTouchPosition.x; + float c = e.y - this->startTouchPosition.y; + if (!this->dragging) { + if ((Mth::abs(b) >= kMinimumTrackingForDrag && isNotSet(SF_LockX)) || (Mth::abs(c) >= kMinimumTrackingForDrag && isNotSet(SF_LockY))) { + willBeginDragging(); + this->dragging = true; + this->firstDrag = true; + + if (isSet(SF_ShowScrollbar)) { + if (isNotSet(SF_LockX) && (this->adjustedContentSize.w > this->size.w)) + //this->hScroll.visible = true; + this->hScroll.fading = 1; + if (isNotSet(SF_LockY) && (this->adjustedContentSize.h > this->size.h)) + //this->vScroll.visible = true; + this->vScroll.fading = 1; + } + } + } + if (this->dragging) { + //d.stopPropagation(); + float f = isNotSet(SF_LockX) ? (this->startPosition.x + b) : this->_contentOffset.x; + float a = isNotSet(SF_LockY) ? (this->startPosition.y + c) : this->_contentOffset.y; + if (isNotSet(SF_HardLimits)) { + f -= ((f < this->minPoint.x) ? (f - this->minPoint.x) : ((f > 0) ? f : 0)) / 2; + a -= ((a < this->minPoint.y) ? (a - this->minPoint.y) : ((a > 0) ? a : 0)) / 2; + } else { + f = Mth::Min(Mth::Max(this->minPoint.x, f), 0.0f); + a = Mth::Min(Mth::Max(this->minPoint.y, a), 0.0f); + } + if (this->firstDrag) { + this->firstDrag = false; + this->startTouchPosition = e; + return; + } + this->setContentOffset(f, a); + this->lastEventTime = t;//d.timeStamp; + } +} + +void ScrollingPane::touchesEnded(float x, float y, int t) { + te_ended = 0; + highlightStarted = -1; + //te_moved = 0; + + //this.callSuper(a); + this->tracking = false; + if (this->dragging) { + this->dragging = false; + //a.stopPropagation(); + if (t - this->lastEventTime <= kMaxTrackingTime) { + this->_contentOffsetBeforeDeceleration = this->_contentOffset; + this->startDecelerationAnimation(false); + } + if (!this->decelerating) {} + //window.removeEventListener(PKEndEvent, this, false); + didEndDragging(); + } + if (!this->decelerating) { + if (fpy < 0 || fpy > bbox.h) { //@todo: for x as well (or rather, x^y) + this->_contentOffsetBeforeDeceleration = this->_contentOffset; + this->startDecelerationAnimation(true); + } else { + this->snapContentOffsetToBounds(true); //@fix + this->hideScrollIndicators(); + } + } + //if (a.eventPhase == Event.BUBBLING_PHASE) { //@? @todo + // window.removeEventListener(PKEndEvent, this, false); + + //// old and shaky, doesn't work good with Xperia Play (and presumably lots of others) + //if (!this->touchesHaveMoved && this->highlightItem.id >= 0) { + // _onSelect(this->highlightItem.id); + //} + if (Vec3(x, y, 0).distanceToSqr(startTouchPosition) <= 6.0f * 6.0f && this->highlightItem.id >= 0) { + _onSelect(this->highlightItem.id); + } + //} + te_moved = 0; +}; + + +void ScrollingPane::touchesCancelled(float x, float y, int a) { + touchesEnded(x, y, a); +} + +void ScrollingPane::startDecelerationAnimation( bool force ) +{ + Vec3 a(this->_contentOffset.x - this->startTimePosition.x, this->_contentOffset.y - this->startTimePosition.y, 0); + float b = (getTimeMs()/*event.timeStamp*/ - this->startTime) / kAcceleration; + //LOGI("starting deceleration! %s, %f\n", STR(a), b); + + this->decelerationVelocity = Vec3(a.x / b, a.y / b, 0); + this->minDecelerationPoint = this->minPoint; + this->maxDecelerationPoint = Vec3(0, 0, 0); + if (this->pagingEnabled) { + this->minDecelerationPoint.x = Mth::Max(this->minPoint.x, std::floor(this->_contentOffsetBeforeDeceleration.x / this->size.w) * this->size.w); + this->minDecelerationPoint.y = Mth::Max(this->minPoint.y, std::floor(this->_contentOffsetBeforeDeceleration.y / this->size.h) * this->size.h); + this->maxDecelerationPoint.x = Mth::Min(0.0f, std::ceil(this->_contentOffsetBeforeDeceleration.x / this->size.w) * this->size.w); + this->maxDecelerationPoint.y = Mth::Min(0.0f, std::ceil(this->_contentOffsetBeforeDeceleration.y / this->size.h) * this->size.h); + } + this->penetrationDeceleration = kPenetrationDeceleration; + this->penetrationAcceleration = kPenetrationAcceleration; + if (this->pagingEnabled) { + this->penetrationDeceleration *= 5; + } + float c = this->pagingEnabled ? kMinVelocityForDecelerationWithPaging : kMinVelocityForDeceleration; + if (force || (Mth::abs(this->decelerationVelocity.x) > c || Mth::abs(this->decelerationVelocity.y) > c)) { + this->decelerating = true; + //LOGI("accelerating True - A\n"); + _doStepTimer = true; + //this->decelerationTimer = this->callMethodNameAfterDelay("stepThroughDecelerationAnimation", kDesiredAnimationFrameRate); //@? + this->lastFrame = getTimeMs(); + willBeginDecelerating(); + } +} + +void ScrollingPane::hideScrollIndicators() { + //hScroll.visible = vScroll.visible = false; + hScroll.fading = vScroll.fading = 0; +} + + +void ScrollingPane::stopDecelerationAnimation() +{ + //LOGI("decelerating False - A\n"); + this->decelerating = false; + _doStepTimer = false; + //clearTimeout(this.decelerationTimer) //@? +} + +void ScrollingPane::stepThroughDecelerationAnimation(bool noAnimation) { + if (!this->decelerating) { + return; + } + int d = getTimeMs(); + int k = d - this->lastFrame; + + int l = noAnimation ? 0 : (int)(std::floor(0.5f + ((float)k / kDesiredAnimationFrameRate) - 1)); + //LOGI("k: %d, %d %d : %d\n", d, this->lastFrame, k, l); + for (int j = 0; j < l; j++) + this->stepThroughDecelerationAnimation(true); + + float g = this->contentOffset().x + this->decelerationVelocity.x; + float h = this->contentOffset().y + this->decelerationVelocity.y; + if (isSet(SF_HardLimits)) { + float a = Mth::Min(Mth::Max(this->minPoint.x, g), 0.0f); + if (a != g) { + g = a; + this->decelerationVelocity.x = 0; + } + float c = Mth::Min(Mth::Max(this->minPoint.y, h), 0.0f); + if (c != h) { + h = c; + this->decelerationVelocity.y = 0; + } + } + if (noAnimation) { + this->contentOffset().x = g; + this->contentOffset().y = h; + } else { + this->setContentOffset(g, h); + } + if (!this->pagingEnabled) { + this->decelerationVelocity.x *= kDecelerationFrictionFactor; + this->decelerationVelocity.y *= kDecelerationFrictionFactor; + } + float b = Mth::abs(this->decelerationVelocity.x); + float i = Mth::abs(this->decelerationVelocity.y); + if (!noAnimation && b <= kMinimumVelocityToHideScrollIndicators && i <= kMinimumVelocityToHideScrollIndicators) { + this->hideScrollIndicators(); + if (b <= kMinimumVelocity && i <= kMinimumVelocity) { + //LOGI("decelerating False - B\n"); + this->decelerating = false; + didEndDecelerating(); + return; + } + } + if (!noAnimation) { + //this->decelerationTimer = this->callMethodNameAfterDelay("stepThroughDecelerationAnimation", kDesiredAnimationFrameRate) + } + //if (noAnimation) doStepTimer = false; + + + if (isNotSet(SF_HardLimits)) { + Vec3 e; + if (g < this->minDecelerationPoint.x) { + e.x = this->minDecelerationPoint.x - g; + } else { + if (g > this->maxDecelerationPoint.x) { + e.x = this->maxDecelerationPoint.x - g; + } + } + if (h < this->minDecelerationPoint.y) { + e.y = this->minDecelerationPoint.y - h; + } else { + if (h > this->maxDecelerationPoint.y) { + e.y = this->maxDecelerationPoint.y - h; + } + } + if (e.x != 0) { + if (e.x * this->decelerationVelocity.x <= 0) { + this->decelerationVelocity.x += e.x * this->penetrationDeceleration; + } else { + this->decelerationVelocity.x = e.x * this->penetrationAcceleration; + } + } + if (e.y != 0) { + if (e.y * this->decelerationVelocity.y <= 0) { + this->decelerationVelocity.y += e.y * this->penetrationDeceleration; + } else { + this->decelerationVelocity.y = e.y * this->penetrationAcceleration; + } + } + } + if (!noAnimation) { + this->lastFrame = d; + } +} + +void ScrollingPane::setContentOffset(float x, float y) { + this->setContentOffsetWithAnimation(Vec3(x, y, 0), false); +} +void ScrollingPane::setContentOffset(Vec3 a) { + this->setContentOffsetWithAnimation(a, false); +}; + +void ScrollingPane::setContentOffsetWithAnimation(Vec3 b, bool doScroll) { + this->_contentOffset = b; + fpx = -this->_contentOffset.x; + fpy = -this->_contentOffset.y; + /* //@todo //@? + this->hostingLayer.style.webkitTransform = PKUtils.t(this->_contentOffset.x, this->_contentOffset.y); + if (a) { + this->scrollTransitionsNeedRemoval = true; + this->hostingLayer.style.webkitTransitionDuration = kPagingTransitionDuration + } else { + this->didScroll(false) + } + */ + if (!doScroll) { + // @todo: for scroll indicator //@? + if (isSet(SF_ShowScrollbar)) { + if (isNotSet(SF_LockX)) this->updateHorizontalScrollIndicator(); + if (isNotSet(SF_LockY)) this->updateVerticalScrollIndicator(); + } + } + //this->notifyPropertyChange("contentOffset") +} + +void ScrollingPane::snapContentOffsetToBounds(bool a) { + bool b = false; + Vec3 c; + if (this->pagingEnabled) { + c.x = std::floor(0.5f + this->_contentOffset.x / this->size.w) * this->size.w; + c.y = std::floor(0.5f + this->_contentOffset.y / this->size.h) * this->size.h; + b = true; + } else { + if (isNotSet(SF_HardLimits)) { + c.x = Mth::Min(Mth::Max(this->minPoint.x, this->_contentOffset.x), 0.0f); + c.y = Mth::Min(Mth::Max(this->minPoint.y, this->_contentOffset.y), 0.0f); + b = (c.x != this->_contentOffset.x || c.y != this->_contentOffset.y); + } + } + if (b) { + this->setContentOffsetWithAnimation(c, a); + } +} + +void ScrollingPane::adjustContentSize() +{ + this->adjustedContentSize.w = Mth::Max(itemBbox.w * columns, bbox.w); + this->adjustedContentSize.h = Mth::Max(itemBbox.h * rows, bbox.h); +} + +void ScrollingPane::onHoldItem() { + //LOGI("dragging, tracking %d, %d\n", !this->dragging, this->tracking); + int id = highlightItem.id; + if (id != -1 && !this->dragging && this->tracking) + _onSelect(id); + highlightTimer = -1; + //highlightItem.id = -1; +} + +bool ScrollingPane::onSelect( int gridId, bool selected ) +{ + return selected; +} + +void ScrollingPane::updateHorizontalScrollIndicator() +{ + float c = (isNotSet(SF_LockX) && isSet(SF_ShowScrollbar)) ? PKScrollIndicatorEndSize * 2 : 1; + float d = Mth::Max(kMinIndicatorLength, std::floor(0.5f + (this->size.w / this->adjustedContentSize.w) * (this->size.w - c))); + float a = (-this->_contentOffset.x / (this->adjustedContentSize.w - this->size.w)) * (this->size.w - c - d); + //float b = this->size.h - PKScrollIndicatorThickness - 1; + if (this->_contentOffset.x > 0) { + d = std::floor(0.5f + Mth::Max(d - this->_contentOffset.x, PKScrollIndicatorThickness)); + a = 1; + } else { + if (this->_contentOffset.x < -(this->adjustedContentSize.w - this->size.w)) { + d = std::floor(0.5f + Mth::Max(d + this->adjustedContentSize.w - this->size.w + this->contentOffset().x, PKScrollIndicatorThickness)); + a = this->size.w - d - c; + } + } + this->hScroll.x = a + bbox.x; + //this->hScroll.y = b; + this->hScroll.w = d; //@property +}; + + +void ScrollingPane::updateVerticalScrollIndicator() +{ + float c = (isNotSet(SF_LockY) && isSet(SF_ShowScrollbar)) ? PKScrollIndicatorEndSize * 2 : 1; + float d = Mth::Max(kMinIndicatorLength, std::floor(0.5f + (this->size.h / this->adjustedContentSize.h) * (this->size.h - c))); + //float a = this->size.w - PKScrollIndicatorThickness - 1; + float b = (-this->_contentOffset.y / (this->adjustedContentSize.h - this->size.h)) * (this->size.h - c - d); + if (this->_contentOffset.y > 0) { + d = std::floor(0.5f + Mth::Max(d - this->_contentOffset.y, PKScrollIndicatorThickness)); + b = 1; + } else { + if (this->_contentOffset.y < -(this->adjustedContentSize.h - this->size.h)) { + d = std::floor(0.5f + Mth::Max(d + this->adjustedContentSize.h - this->size.h + this->contentOffset().y, PKScrollIndicatorThickness)); + b = this->size.h - d - c; + } + } + //this->vScroll.x = a; + this->vScroll.y = b + bbox.y; + this->vScroll.h = d; //@property +}; + +void ScrollingPane::_onSelect( int id ) +{ + if (isSet(SF_MultiSelect)) { + selected[id] = onSelect(id, !selected[id]); + } else { + // Change the selection, if the user wants it + // @note: There's currently no way to clear a selection + bool doSelect = onSelect(id, true); + if (id != selectedId && doSelect) { + onSelect(selectedId, false); + selectedId = id; + } + } +} + +void ScrollingPane::updateScrollFade( ScrollBar& sb ) { + if (sb.fading == 1 && ((sb.alpha += 0.33f) >= 1)) { + sb.alpha = 1; + sb.fading = -1; + } + if (sb.fading == 0 && ((sb.alpha -= 0.10f) <= 0)) { + sb.alpha = 0; + sb.fading = -1; + } +} + +void ScrollingPane::setSelected( int id, bool selected ) +{ + if (isSet(SF_MultiSelect)) + this->selected[id] = selected; + else { + if (selected) selectedId = selected? id : -1; + else if (id == selectedId) + selectedId = -1; + } +} + +void ScrollingPane::translate( float xo, float yo ) +{ + bbox.x += (int)xo; + bbox.y += (int)yo; + area._x0 += xo; + area._x1 += xo; + area._y0 += yo; + area._y1 += yo; + bboxArea._x0 += xo; + bboxArea._x1 += xo; + bboxArea._y0 += yo; + bboxArea._y1 += yo; + hScroll.x += xo; + hScroll.y += yo; + vScroll.x += xo; + vScroll.y += yo; +} + +bool ScrollingPane::queryHoldTime(int* gridItem, int* heldMs) { + *gridItem = -1; + *heldMs = -1; + + if (!dragging && highlightStarted >= 0) { + GridItem item = getItemForPos(_lx, _ly, true); + if (item.id == highlightItem.id) { + *gridItem = highlightItem.id; + *heldMs = getTimeMs() - highlightStarted; + return true; + } else { + highlightStarted = -1; + } + } + + return false; +} diff --git a/src/client/gui/components/ScrollingPane.h b/src/client/gui/components/ScrollingPane.h new file mode 100755 index 0000000..ff31e7c --- /dev/null +++ b/src/client/gui/components/ScrollingPane.h @@ -0,0 +1,199 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ScrollingPane_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ScrollingPane_H__ + +#include "../GuiComponent.h" +#include "ImageButton.h" +#include "../../player/input/touchscreen/TouchAreaModel.h" +#include "../../../world/phys/Vec3.h" +#include "../../Timer.h" + +enum ScrollingPaneFlags { + SF_LockX = 1 << 0, + SF_LockY = 1 << 1, + SF_WrapX = 1 << 2, + SF_WrapY = 1 << 3, + SF_HardLimits = 1 << 4, + SF_MultiSelect = 1 << 5, + //SF_Snap = 1 << 6, + //SF_CustomSnap = 1 << 7, + //SF_Scissor = 1 << 8, + SF_ShowScrollbar= 1 << 9, + SF_NoHoldSelect = 1 << 10 +}; + +typedef struct ScrollBar { + ScrollBar() + : alpha(0), + fading(-1) + {} + float x; + float y; + float w; + float h; + //bool visible; + float alpha; + int fading; +} ScrollBar; + +class ScrollingPane: public GuiComponent { +public: + typedef struct GridItem { + int id; + int x, y; + // The GUI coordinates comes in (xf, yf) + float xf, yf; + bool selected; + } GridItem; + + ScrollingPane(int flags, const IntRectangle& boundingBox, const IntRectangle& itemRect, int columns, int numItems, float screenScale = 1.0f, const IntRectangle& itemBoundingRect = IntRectangle(0,0,0,0)); + ~ScrollingPane(); + //void init(Minecraft*, int width, int height); + void tick(); + void render(int xm, int ym, float alpha); + + bool getGridItemFor_slow(int itemIndex, GridItem& out); + + void setSelected(int id, bool selected); + + // This function is called with all visible GridItems. The base + // implementation just dispatches each item to renderItem in y,x order + virtual void renderBatch(std::vector& items, float alpha); + virtual void renderItem(GridItem& item, float alpha); + + //void render(int xx, int yy); + bool queryHoldTime(int* gridId, int* heldMs); + +protected: + GridItem getItemForPos(float x, float y, bool isScreenPos); + void handleUserInput(); + void addDeltaPos(float x, float y, float dt, int z); + + void translate(float xo, float yo); + + int flags; + + int columns; + int rows; + int numItems; + + int px, py; + float fpx, fpy; + + float screenScale; + float invScreenScale; + //bool hasItemBounding; + + IntRectangle bbox; + IntRectangle itemRect; + IntRectangle itemBbox; + RectangleArea area; + RectangleArea bboxArea; + + // Dragging info + std::vector dragDeltas; + int dragState; + Vec3 dragBeginPos; + Vec3 dragBeginScreenPos; + int dragTicks; + float dragLastDeltaTimeStamp; + Vec3 dragLastPos; + + float dx, dy; + float friction; + + float dstx, dsty; + + // Rewrite + bool dragging; //! + bool decelerating; + bool tracking; //! + + bool pagingEnabled; //! + + Vec3 _contentOffset; //! + Vec3 _contentOffsetBeforeDeceleration; //* + + int lastEventTime; //< + + Vec3 decelerationVelocity; //* + Vec3 minDecelerationPoint; //* + Vec3 maxDecelerationPoint; //* + + float penetrationDeceleration; //< + float penetrationAcceleration; //< + + Vec3 minPoint; //* + Vec3 startPosition; //* + Vec3 startTouchPosition; //* + Vec3 startTimePosition; //* + + bool wasDeceleratingWhenTouchesBegan; //* + bool firstDrag; //< + + float startTime; //< + //float startTime + + IntRectangle size; + int lastFrame; + + bool _scrollEnabled; //! + bool touchesHaveMoved; //* + + virtual void didEndDragging() {} + virtual void didEndDecelerating() {} + virtual void willBeginDecelerating() {} + virtual void willBeginDragging() {} + + int te_moved, + te_ended, + te_highlight; + int highlightTimer; + int highlightStarted; + GridItem highlightItem; + + bool* selected; + int selectedId; + + ScrollBar vScroll, hScroll; + + IntRectangle adjustedContentSize; + void touchesBegan(float x, float y, int t); + void touchesMoved(float x, float y, int t); + void touchesEnded(float x, float y, int t); + void touchesCancelled(float x, float y, int t); + void beginTracking(float x, float y, int t); + void onHoldItem(); + + void _onSelect( int id ); + virtual bool onSelect(int gridId, bool selected); + + Vec3& contentOffset(); + + void startDecelerationAnimation(bool force); + void stopDecelerationAnimation(); + void stepThroughDecelerationAnimation(bool f); + + void setContentOffset(float x, float y); + void setContentOffset(Vec3 a); + void setContentOffsetWithAnimation(Vec3 b, bool doScroll); + void snapContentOffsetToBounds(bool snap); //* + void adjustContentSize(); + //TouchAreaModel _areaModel; + + bool isAllSet(int flag) { return (flags & flag) == flag; } + bool isSet(int flag) { return (flags & flag) != 0; } + bool isNotSet(int flag) { return !isSet(flag); } + + void updateHorizontalScrollIndicator(); + void updateVerticalScrollIndicator(); + void hideScrollIndicators(); //* + void updateScrollFade( ScrollBar& vScroll ); +private: + Timer _timer; + bool _doStepTimer; + bool _wasDown; + float _lx; + float _ly; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__ScrollingPane_H__*/ diff --git a/src/client/gui/components/Slider.cpp b/src/client/gui/components/Slider.cpp new file mode 100755 index 0000000..2b978df --- /dev/null +++ b/src/client/gui/components/Slider.cpp @@ -0,0 +1,100 @@ +#include "Slider.h" +#include "../../Minecraft.h" +#include "../../renderer/Textures.h" +#include "../Screen.h" +#include "../../../util/Mth.h" +#include +#include +Slider::Slider(Minecraft* minecraft, const Options::Option* option, float progressMin, float progressMax) +: sliderType(SliderProgress), mouseDownOnElement(false), option(option), numSteps(0), progressMin(progressMin), progressMax(progressMax) { + if(option != NULL) { + percentage = (minecraft->options.getProgressValue(option) - progressMin) / (progressMax - progressMin); + } +} + +Slider::Slider(Minecraft* minecraft, const Options::Option* option, const std::vector& stepVec ) +: sliderType(SliderStep), + curStepValue(0), + curStep(0), + sliderSteps(stepVec), + mouseDownOnElement(false), + option(option), + percentage(0), + progressMin(0.0f), + progressMax(1.0) { + assert(stepVec.size() > 1); + numSteps = sliderSteps.size(); + if(option != NULL) { + curStepValue; + int curStep; + curStepValue = minecraft->options.getIntValue(option); + std::vector::iterator currentItem = std::find(sliderSteps.begin(), sliderSteps.end(), curStepValue); + if(currentItem != sliderSteps.end()) { + curStep = currentItem - sliderSteps.begin(); + } + } +} + +void Slider::render( Minecraft* minecraft, int xm, int ym ) { + int xSliderStart = x + 5; + int xSliderEnd = x + width - 5; + int ySliderStart = y + 6; + int ySliderEnd = y + 9; + int handleSizeX = 9; + int handleSizeY = 15; + int barWidth = xSliderEnd - xSliderStart; + //fill(x, y + 8, x + (int)(width * percentage), y + height, 0xffff00ff); + fill(xSliderStart, ySliderStart, xSliderEnd, ySliderEnd, 0xff606060); + if(sliderType == SliderStep) { + int stepDistance = barWidth / (numSteps -1); + for(int a = 0; a <= numSteps - 1; ++a) { + int renderSliderStepPosX = xSliderStart + a * stepDistance + 1; + fill(renderSliderStepPosX - 1, ySliderStart - 2, renderSliderStepPosX + 1, ySliderEnd + 2, 0xff606060); + } + } + minecraft->textures->loadAndBindTexture("gui/touchgui.png"); + blit(xSliderStart + (int)(percentage * barWidth) - handleSizeX / 2, y, 226, 126, handleSizeX, handleSizeY, handleSizeX, handleSizeY); +} + +void Slider::mouseClicked( Minecraft* minecraft, int x, int y, int buttonNum ) { + if(pointInside(x, y)) { + mouseDownOnElement = true; + } +} + +void Slider::mouseReleased( Minecraft* minecraft, int x, int y, int buttonNum ) { + mouseDownOnElement = false; + if(sliderType == SliderStep) { + curStep = Mth::floor((percentage * (numSteps-1) + 0.5f)); + curStepValue = sliderSteps[Mth::Min(curStep, numSteps-1)]; + percentage = float(curStep) / (numSteps - 1); + setOption(minecraft); + } +} + +void Slider::tick(Minecraft* minecraft) { + if(minecraft->screen != NULL) { + int xm = Mouse::getX(); + int ym = Mouse::getY(); + minecraft->screen->toGUICoordinate(xm, ym); + if(mouseDownOnElement) { + percentage = float(xm - x) / float(width); + percentage = Mth::clamp(percentage, 0.0f, 1.0f); + setOption(minecraft); + } + } +} + +void Slider::setOption( Minecraft* minecraft ) { + if(option != NULL) { + if(sliderType == SliderStep) { + if(minecraft->options.getIntValue(option) != curStepValue) { + minecraft->options.set(option, curStepValue); + } + } else { + if(minecraft->options.getProgressValue(option) != percentage * (progressMax - progressMin) + progressMin) { + minecraft->options.set(option, percentage * (progressMax - progressMin) + progressMin); + } + } + } +} diff --git a/src/client/gui/components/Slider.h b/src/client/gui/components/Slider.h new file mode 100755 index 0000000..d51b507 --- /dev/null +++ b/src/client/gui/components/Slider.h @@ -0,0 +1,40 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__Slider_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__Slider_H__ + +#include "GuiElement.h" +#include "../../../client/Options.h" +enum SliderType { + SliderProgress, // Sets slider between {0..1} + SliderStep // Uses the closest step +}; +class Slider : public GuiElement { + typedef GuiElement super; +public: + // Creates a progress slider with no steps + Slider(Minecraft* minecraft, const Options::Option* option, float progressMin, float progressMax); + Slider(Minecraft* minecraft, const Options::Option* option, const std::vector& stepVec); + virtual void render( Minecraft* minecraft, int xm, int ym ); + + virtual void mouseClicked( Minecraft* minecraft, int x, int y, int buttonNum ); + + virtual void mouseReleased( Minecraft* minecraft, int x, int y, int buttonNum ); + + virtual void tick(Minecraft* minecraft); + +private: + virtual void setOption(Minecraft* minecraft); + +private: + SliderType sliderType; + std::vector sliderSteps; + bool mouseDownOnElement; + float percentage; + int curStepValue; + int curStep; + int numSteps; + float progressMin; + float progressMax; + const Options::Option* option; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__Slider_H__*/ diff --git a/src/client/gui/components/SmallButton.cpp b/src/client/gui/components/SmallButton.cpp new file mode 100755 index 0000000..e2ebfaa --- /dev/null +++ b/src/client/gui/components/SmallButton.cpp @@ -0,0 +1,24 @@ +#include "SmallButton.h" + +SmallButton::SmallButton( int id, int x, int y, const std::string& msg ) +: super(id, x, y, 150, 20, msg), + option(NULL) +{ +} + +SmallButton::SmallButton( int id, int x, int y, int width, int height, const std::string& msg ) +: super(id, x, y, width, height, msg), + option(NULL) +{ +} + +SmallButton::SmallButton( int id, int x, int y, Options::Option* item, const std::string& msg ) +: super(id, x, y, 150, 20, msg), + option(item) +{ +} + +Options::Option* SmallButton::getOption() +{ + return option; +} diff --git a/src/client/gui/components/SmallButton.h b/src/client/gui/components/SmallButton.h new file mode 100755 index 0000000..05ae378 --- /dev/null +++ b/src/client/gui/components/SmallButton.h @@ -0,0 +1,23 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__SmallButton_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__SmallButton_H__ + +//package net.minecraft.client.gui; + +#include +#include "Button.h" +#include "../../Options.h" + +class SmallButton: public Button +{ + typedef Button super; +public: + SmallButton(int id, int x, int y, const std::string& msg); + SmallButton(int id, int x, int y, int width, int height, const std::string& msg); + SmallButton(int id, int x, int y, Options::Option* item, const std::string& msg); + + Options::Option* getOption(); +private: + Options::Option* option; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__SmallButton_H__*/ diff --git a/src/client/gui/components/TextBox.cpp b/src/client/gui/components/TextBox.cpp new file mode 100755 index 0000000..17c77ba --- /dev/null +++ b/src/client/gui/components/TextBox.cpp @@ -0,0 +1,37 @@ +#include "TextBox.h" +#include "../../Minecraft.h" +#include "../../../AppPlatform.h" +TextBox::TextBox( int id, const std::string& msg ) + : id(0), w(0), h(0), x(0), y(0), text(msg), focused(false) { + +} + +TextBox::TextBox( int id, int x, int y, const std::string& msg ) + : id(id), w(0), h(0), x(x), y(y), text(msg), focused(false) { + +} + +TextBox::TextBox( int id, int x, int y, int w, int h, const std::string& msg ) + : id(id), w(w), h(h), x(x), y(y), text(msg) { + +} + +void TextBox::setFocus(Minecraft* minecraft) { + if(!focused) { + minecraft->platform()->showKeyboard(); + focused = true; + } +} + +bool TextBox::loseFocus(Minecraft* minecraft) { + if(focused) { + minecraft->platform()->showKeyboard(); + focused = false; + return true; + } + return false; +} + +void TextBox::render( Minecraft* minecraft, int xm, int ym ) { + +} diff --git a/src/client/gui/components/TextBox.h b/src/client/gui/components/TextBox.h new file mode 100755 index 0000000..4de6182 --- /dev/null +++ b/src/client/gui/components/TextBox.h @@ -0,0 +1,34 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__TextBox_H__ +#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__TextBox_H__ + +//package net.minecraft.client.gui; + +#include +#include "../GuiComponent.h" +#include "../../Options.h" + +class Font; +class Minecraft; + +class TextBox: public GuiComponent +{ +public: + TextBox(int id, const std::string& msg); + TextBox(int id, int x, int y, const std::string& msg); + TextBox(int id, int x, int y, int w, int h, const std::string& msg); + + virtual void setFocus(Minecraft* minecraft); + virtual bool loseFocus(Minecraft* minecraft); + + virtual void render(Minecraft* minecraft, int xm, int ym); + +public: + int w, h; + int x, y; + + std::string text; + int id; + bool focused; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__TextBox_H__*/ diff --git a/src/client/gui/screens/ArmorScreen.cpp b/src/client/gui/screens/ArmorScreen.cpp new file mode 100755 index 0000000..593a892 --- /dev/null +++ b/src/client/gui/screens/ArmorScreen.cpp @@ -0,0 +1,370 @@ +#include "ArmorScreen.h" +#include "../Screen.h" +#include "../components/NinePatch.h" +#include "../../Minecraft.h" +#include "../../player/LocalPlayer.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/entity/ItemRenderer.h" +#include "../../../world/item/Item.h" +#include "../../../world/item/ItemCategory.h" +#include "../../../world/entity/player/Inventory.h" +#include "../../../world/entity/item/ItemEntity.h" +#include "../../../world/level/Level.h" +#include "../../../network/RakNetInstance.h" +#include "../../renderer/entity/EntityRenderDispatcher.h" +#include "../../../world/item/ArmorItem.h" + +static void setIfNotSet(bool& ref, bool condition) { + ref = (ref || condition); +} + +const int descFrameWidth = 100; + +const int rgbActive = 0xfff0f0f0; +const int rgbInactive = 0xc0635558; +const int rgbInactiveShadow = 0xc0aaaaaa; + +#ifdef __APPLE__ + static const float BorderPixels = 4; + #ifdef DEMO_MODE + static const float BlockPixels = 22; + #else + static const float BlockPixels = 22; + #endif +#else + static const float BorderPixels = 4; + static const float BlockPixels = 24; +#endif +static const int ItemSize = (int)(BlockPixels + 2*BorderPixels); + +static const int Bx = 10; // Border Frame width +static const int By = 6; // Border Frame height + + +ArmorScreen::ArmorScreen(): + inventoryPane(NULL), + btnArmor0(0), + btnArmor1(1), + btnArmor2(2), + btnArmor3(3), + btnClose(4, ""), + bHeader (5, "Armor"), + guiBackground(NULL), + guiSlot(NULL), + guiPaneFrame(NULL), + guiPlayerBg(NULL), + doRecreatePane(false), + descWidth(90) + //guiSlotItem(NULL), + //guiSlotItemSelected(NULL) +{ + //LOGI("Creating ArmorScreen with %p, %d\n", furnace, furnace->runningId); +} + +ArmorScreen::~ArmorScreen() { + delete inventoryPane; + + delete guiBackground; + delete guiSlot; + delete guiPaneFrame; + delete guiPlayerBg; +} + +void ArmorScreen::init() { + super::init(); + + player = minecraft->player; + + ImageDef def; + def.name = "gui/spritesheet.png"; + def.x = 0; + def.y = 1; + def.width = def.height = 18; + def.setSrc(IntRectangle(60, 0, 18, 18)); + btnClose.setImageDef(def, true); + btnClose.scaleWhenPressed = false; + + buttons.push_back(&bHeader); + buttons.push_back(&btnClose); + + armorButtons[0] = &btnArmor0; + armorButtons[1] = &btnArmor1; + armorButtons[2] = &btnArmor2; + armorButtons[3] = &btnArmor3; + for (int i = 0; i < NUM_ARMORBUTTONS; ++i) + buttons.push_back(armorButtons[i]); + + // GUI - nine patches + NinePatchFactory builder(minecraft->textures, "gui/spritesheet.png"); + + guiBackground = builder.createSymmetrical(IntRectangle(0, 0, 16, 16), 4, 4); + guiSlot = builder.createSymmetrical(IntRectangle(0, 32, 8, 8), 3, 3, 20, 20); + guiPaneFrame = builder.createSymmetrical(IntRectangle(28, 42, 4, 4), 1, 1)->setExcluded(1 << 4); + guiPlayerBg = builder.createSymmetrical(IntRectangle(0, 20, 8, 8), 3, 3); + + updateItems(); +} + +void ArmorScreen::setupPositions() { + // Left - Categories + bHeader.x = bHeader.y = 0; + bHeader.width = width;// - bDone.w; + + btnClose.width = btnClose.height = 19; + btnClose.x = width - btnClose.width; + btnClose.y = 0; + + // Inventory pane + const int maxWidth = (int)(width/1.8f) - Bx - Bx; + const int InventoryColumns = maxWidth / ItemSize; + const int realWidth = InventoryColumns * ItemSize; + const int paneWidth = realWidth + Bx + Bx; + const int realBx = (paneWidth - realWidth) / 2; + + inventoryPaneRect = IntRectangle(realBx, +#ifdef __APPLE__ + 26 + By - ((width==240)?1:0), realWidth, ((width==240)?1:0) + height-By-By-28); +#else + 26 + By, realWidth, height-By-By-28); +#endif + + for (int i = 0; i < NUM_ARMORBUTTONS; ++i) { + Button& b = *armorButtons[i]; + b.x = paneWidth; + b.y = inventoryPaneRect.y + 24 * i; + b.width = 20; + b.height = 20; + } + + guiPlayerBgRect.y = inventoryPaneRect.y; + int xx = armorButtons[0]->x + armorButtons[0]->width; + int xw = width - xx; + guiPlayerBgRect.x = xx + xw / 10; + guiPlayerBgRect.w = xw - (xw / 10) * 2; + guiPlayerBgRect.h = inventoryPaneRect.h; + + guiPaneFrame->setSize((float)inventoryPaneRect.w + 2, (float)inventoryPaneRect.h + 2); + guiPlayerBg->setSize((float)guiPlayerBgRect.w, (float)guiPlayerBgRect.h); + guiBackground->setSize((float)width, (float)height); + + updateItems(); + setupInventoryPane(); +} + +void ArmorScreen::tick() { + if (inventoryPane) + inventoryPane->tick(); + + if (doRecreatePane) { + updateItems(); + setupInventoryPane(); + doRecreatePane = false; + } +} + +void ArmorScreen::handleRenderPane(Touch::InventoryPane* pane, Tesselator& t, int xm, int ym, float a) { + if (pane) { + pane->render(xm, ym, a); + guiPaneFrame->draw(t, (float)(pane->rect.x - 1), (float)(pane->rect.y - 1)); + } +} + +void ArmorScreen::render(int xm, int ym, float a) { + //renderBackground(); + + Tesselator& t = Tesselator::instance; + + t.addOffset(0, 0, -500); + guiBackground->draw(t, 0, 0); + t.addOffset(0, 0, 500); + glEnable2(GL_ALPHA_TEST); + + // Buttons (Left side + crafting) + super::render(xm, ym, a); + + handleRenderPane(inventoryPane, t, xm, ym, a); + + t.colorABGR(0xffffffff); + glColor4f2(1, 1, 1, 1); + + t.addOffset(0, 0, -490); + guiPlayerBg->draw(t, (float)guiPlayerBgRect.x, (float)guiPlayerBgRect.y); + t.addOffset(0, 0, 490); + renderPlayer((float)(guiPlayerBgRect.x + guiPlayerBgRect.w / 2), 0.85f * height); + + for (int i = 0; i < NUM_ARMORBUTTONS; ++i) { + drawSlotItemAt(t, i, player->getArmor(i), armorButtons[i]->x, armorButtons[i]->y); + } + glDisable2(GL_ALPHA_TEST); +} + +void ArmorScreen::buttonClicked(Button* button) { + if (button == &btnClose) { + minecraft->setScreen(NULL); + } + + if (button->id >= 0 && button->id <= 3) { + takeAndClearSlot(button->id); + } +} + +bool ArmorScreen::addItem(const Touch::InventoryPane* forPane, int itemIndex) { + const ItemInstance* instance = armorItems[itemIndex]; + if (!ItemInstance::isArmorItem(instance)) + return false; + + ArmorItem* item = (ArmorItem*) instance->getItem(); + ItemInstance* old = player->getArmor(item->slot); + ItemInstance oldArmor; + + if (ItemInstance::isArmorItem(old)) { + oldArmor = *old; + } + + player->setArmor(item->slot, instance); + + player->inventory->removeItem(instance); + //@attn: this is hugely important + armorItems[itemIndex] = NULL; + + if (!oldArmor.isNull()) { + if (!player->inventory->add(&oldArmor)) { + player->drop(new ItemInstance(oldArmor), false); + } + } + + doRecreatePane = true; + return true; +} + +bool ArmorScreen::isAllowed( int slot ) { + return true; +} + +bool ArmorScreen::renderGameBehind() { + return false; +} + +std::vector ArmorScreen::getItems( const Touch::InventoryPane* forPane ) { + return armorItems; +} + +void ArmorScreen::updateItems() { + armorItems.clear(); + + for (int i = Inventory::MAX_SELECTION_SIZE; i < minecraft->player->inventory->getContainerSize(); ++i) { + ItemInstance* item = minecraft->player->inventory->getItem(i); + if (ItemInstance::isArmorItem(item)) + armorItems.push_back(item); + } +} + +bool ArmorScreen::canMoveToSlot(int slot, const ItemInstance* item) { + return ItemInstance::isArmorItem(item) + && ((ArmorItem*)item)->slot == slot; +} + +void ArmorScreen::setupInventoryPane() { + // IntRectangle(0, 0, 100, 100) + if (inventoryPane) delete inventoryPane; + inventoryPane = new Touch::InventoryPane(this, minecraft, inventoryPaneRect, inventoryPaneRect.w, BorderPixels, armorItems.size(), ItemSize, (int)BorderPixels); + inventoryPane->fillMarginX = 0; + inventoryPane->fillMarginY = 0; + //LOGI("Creating new pane: %d %p\n", inventoryItems.size(), inventoryPane); +} + +void ArmorScreen::drawSlotItemAt( Tesselator& t, int slot, const ItemInstance* item, int x, int y) +{ + float xx = (float)x; + float yy = (float)y; + + guiSlot->draw(t, xx, yy); + + if (item && !item->isNull()) { + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, item, xx + 2, yy, true); + glDisable2(GL_TEXTURE_2D); + ItemRenderer::renderGuiItemDecorations(item, xx + 2, yy + 3); + glEnable2(GL_TEXTURE_2D); + //minecraft->gui.renderSlotText(item, xx + 3, yy + 3, true, true); + } else { + minecraft->textures->loadAndBindTexture("gui/items.png"); + blit(x + 2, y, 15 * 16, slot * 16, 16, 16, 16, 16); + } +} + +void ArmorScreen::takeAndClearSlot( int slot ) { + ItemInstance* item = player->getArmor(slot); + if (!item) + return; + + int oldSize = minecraft->player->inventory->getNumEmptySlots(); + + if (!minecraft->player->inventory->add(item)) + minecraft->player->drop(new ItemInstance(*item), false); + + player->setArmor(slot, NULL); + + int newSize = minecraft->player->inventory->getNumEmptySlots(); + setIfNotSet(doRecreatePane, newSize != oldSize); +} + +void ArmorScreen::renderPlayer(float xo, float yo) { + // Push GL and player state + glPushMatrix(); + + glTranslatef(xo, yo, -200); + float ss = 45; + glScalef(-ss, ss, ss); + + glRotatef(180, 0, 0, 1); + //glDisable(GL_DEPTH_TEST); + + Player* player = (Player*) minecraft->player; + float oybr = player->yBodyRot; + float oyr = player->yRot; + float oxr = player->xRot; + + float t = getTimeS(); + + float xd = 10 * Mth::sin(t);//(xo + 51) - xm; + float yd = 10 * Mth::cos(t * 0.05f);//(yo + 75 - 50) - ym; + + glRotatef(45 + 90, 0, 1, 0); + glRotatef(-45 - 90, 0, 1, 0); + + const float xtan = Mth::atan(xd / 40.0f) * +20; + const float ytan = Mth::atan(yd / 40.0f) * -20; + + glRotatef(ytan, 1, 0, 0); + + player->yBodyRot = xtan; + player->yRot = xtan + xtan; + player->xRot = ytan; + glTranslatef(0, player->heightOffset, 0); + + // Push walking anim + float oldWAP = player->walkAnimPos; + float oldWAS = player->walkAnimSpeed; + float oldWASO = player->walkAnimSpeedO; + + // Set new walking anim + player->walkAnimSpeedO = player->walkAnimSpeed = 0.25f; + player->walkAnimPos = getTimeS() * player->walkAnimSpeed * SharedConstants::TicksPerSecond; + + EntityRenderDispatcher* rd = EntityRenderDispatcher::getInstance(); + rd->playerRotY = 180; + rd->render(player, 0, 0, 0, 0, 1); + + // Pop walking anim + player->walkAnimPos = oldWAP; + player->walkAnimSpeed = oldWAS; + player->walkAnimSpeedO = oldWASO; + + //glEnable(GL_DEPTH_TEST); + // Pop GL and player state + player->yBodyRot = oybr; + player->yRot = oyr; + player->xRot = oxr; + + glPopMatrix(); +} diff --git a/src/client/gui/screens/ArmorScreen.h b/src/client/gui/screens/ArmorScreen.h new file mode 100755 index 0000000..46c1d1f --- /dev/null +++ b/src/client/gui/screens/ArmorScreen.h @@ -0,0 +1,79 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ArmorScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ArmorScreen_H__ + +#include "BaseContainerScreen.h" + +#include "../components/InventoryPane.h" +#include "../components/Button.h" + +class Font; +class CItem; +class Textures; +class NinePatchLayer; +class Tesselator; + +class ArmorScreen: public Screen, + public Touch::IInventoryPaneCallback +{ + typedef Screen super; + typedef std::vector ItemList; + + static const int NUM_ARMORBUTTONS = 4; +public: + ArmorScreen(); + ~ArmorScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + bool renderGameBehind(); + void buttonClicked(Button* button); + + // IInventoryPaneCallback + bool addItem(const Touch::InventoryPane* pane, int itemId); + bool isAllowed( int slot ); + std::vector getItems( const Touch::InventoryPane* forPane ); +private: + void renderPlayer(float xo, float yo); + + void setupInventoryPane(); + void updateItems(); + + void drawSlotItemAt(Tesselator& t, int slot, const ItemInstance* item, int x, int y); + ItemInstance moveOver(const ItemInstance* item, int maxCount); + void takeAndClearSlot( int slot ); + void handleRenderPane(Touch::InventoryPane* pane, Tesselator& t, int xm, int ym, float a); + bool canMoveToSlot(int slot, const ItemInstance* item); + ItemList _items; + + std::string currentItemDesc; + ItemInstance burnResult; + float descWidth; + ImageButton btnClose; + + BlankButton btnArmor0; + BlankButton btnArmor1; + BlankButton btnArmor2; + BlankButton btnArmor3; + BlankButton* armorButtons[4]; + + Touch::THeader bHeader; + + Touch::InventoryPane* inventoryPane; + IntRectangle inventoryPaneRect; + IntRectangle guiPlayerBgRect; + + std::vector armorItems; + bool doRecreatePane; + + // GUI elements such as 9-Patches + NinePatchLayer* guiBackground; + NinePatchLayer* guiSlot; + NinePatchLayer* guiPaneFrame; + NinePatchLayer* guiPlayerBg; + Player* player; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ArmorScreen_H__*/ diff --git a/src/client/gui/screens/BaseContainerScreen.h b/src/client/gui/screens/BaseContainerScreen.h new file mode 100755 index 0000000..55ce1e0 --- /dev/null +++ b/src/client/gui/screens/BaseContainerScreen.h @@ -0,0 +1,50 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__BaseContainerScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI__BaseContainerScreen_H__ + +//package net.minecraft.client.gui.screens; + +#include +#include "../Screen.h" +#include "../../Minecraft.h" +#include "../../player/LocalPlayer.h" + +class BaseContainerMenu; + +class BaseContainerScreen: public Screen +{ + typedef Screen super; +public: + BaseContainerScreen(BaseContainerMenu* menu) + : menu(menu) + { + } + + virtual void init() { + super::init(); + minecraft->player->containerMenu = menu; + } + + virtual void tick() { + super::tick(); + if (!minecraft->player->isAlive() || minecraft->player->removed) + minecraft->player->closeContainer(); + } + + virtual void keyPressed( int eventKey ) + { + if (eventKey == Keyboard::KEY_ESCAPE) { + minecraft->player->closeContainer(); + } else { + super::keyPressed(eventKey); + } + } + + virtual bool closeOnPlayerHurt() { + return true; + } + +protected: + BaseContainerMenu* menu; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__BaseContainerScreen_H__*/ diff --git a/src/client/gui/screens/BuyGameScreen.h b/src/client/gui/screens/BuyGameScreen.h new file mode 100755 index 0000000..228cdba --- /dev/null +++ b/src/client/gui/screens/BuyGameScreen.h @@ -0,0 +1,26 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__BuyGameScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__BuyGameScreen_H__ + +#include "../Screen.h" +#include "../components/Button.h" + +class BuyGameScreen: public Screen +{ +public: + BuyGameScreen() {} + virtual ~BuyGameScreen() {} + + void init(); + + void render(int xm, int ym, float a); + + void buttonClicked(Button* button) { + //if (button->id == bQuit.id) + } + +private: + //Button bQuit; + //Button bBuyGame; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__BuyGameScreen_H__*/ diff --git a/src/client/gui/screens/ChatScreen.cpp b/src/client/gui/screens/ChatScreen.cpp new file mode 100755 index 0000000..925444f --- /dev/null +++ b/src/client/gui/screens/ChatScreen.cpp @@ -0,0 +1,24 @@ +#include "ChatScreen.h" +#include "DialogDefinitions.h" +#include "../Gui.h" +#include "../../Minecraft.h" +#include "../../../AppPlatform.h" +#include "../../../platform/log.h" + +void ChatScreen::init() { + minecraft->platform()->createUserInput(DialogDefinitions::DIALOG_NEW_CHAT_MESSAGE); +} + +void ChatScreen::render(int xm, int ym, float a) +{ + int status = minecraft->platform()->getUserInputStatus(); + if (status > -1) { + if (status == 1) { + std::vector v = minecraft->platform()->getUserInput(); + if (v.size() && v[0].length() > 0) + minecraft->gui.addMessage(v[0]); + } + + minecraft->setScreen(NULL); + } +} diff --git a/src/client/gui/screens/ChatScreen.h b/src/client/gui/screens/ChatScreen.h new file mode 100755 index 0000000..0d6444b --- /dev/null +++ b/src/client/gui/screens/ChatScreen.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ChatScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ChatScreen_H__ + +#include "../Screen.h" + +class ChatScreen: public Screen +{ +public: + ChatScreen() {} + virtual ~ChatScreen() {} + + void init(); + + void render(int xm, int ym, float a); + + void buttonClicked(Button* button) {}; + +private: +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ChatScreen_H__*/ diff --git a/src/client/gui/screens/ChestScreen.cpp b/src/client/gui/screens/ChestScreen.cpp new file mode 100755 index 0000000..c9383c9 --- /dev/null +++ b/src/client/gui/screens/ChestScreen.cpp @@ -0,0 +1,474 @@ +#include "ChestScreen.h" +#include "touch/TouchStartMenuScreen.h" +#include "../Screen.h" +#include "../components/NinePatch.h" +#include "../../Minecraft.h" +#include "../../player/LocalPlayer.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/entity/ItemRenderer.h" +#include "../../../world/item/Item.h" +#include "../../../world/item/ItemCategory.h" +#include "../../../world/entity/player/Inventory.h" +#include "../../../world/entity/item/ItemEntity.h" +#include "../../../world/level/Level.h" +#include "../../../locale/I18n.h" +#include "../../../util/StringUtils.h" +#include "../../../network/packet/ContainerSetSlotPacket.h" +#include "../../../network/RakNetInstance.h" +#include "../../../world/level/tile/entity/TileEntity.h" +#include "../../../world/level/tile/entity/ChestTileEntity.h" +#include "../../../world/inventory/ContainerMenu.h" +#include "../../../util/Mth.h" + +//static NinePatchLayer* guiPaneFrame = NULL; + +static __inline void setIfNotSet(bool& ref, bool condition) { + ref = (ref || condition); +} + +template +T* upcast(V* x) { return x; } + +static int heldMs = -1; +static int percent = -1; +static const float MaxHoldMs = 500.0f; +static const int MinChargeMs = 200; + +class ItemDiffer { +public: + ItemDiffer(int size) + : size(size), + count(0) + { + base = new ItemInstance[size]; + } + ItemDiffer(const std::vector& v) + : size(v.size()), + count(0) + { + base = new ItemInstance[size]; + init(v); + } + + ~ItemDiffer() { + delete[] base; + } + + void init(const std::vector& v) { + for (int i = 0; i < size; ++i) { + if (v[i]) base[i] = *v[i]; + else base[i].setNull(); + } + } + + int getDiff(const std::vector& v, std::vector& outIndices) { + int diffLen = v.size() - size; + int minLen = Mth::Max((int)v.size(), size); + for (int i = 0; i < minLen; ++i) { + //LOGI("%s, %s\n", base[i].toString().c_str(), v[i]?v[i]->toString().c_str() : "null"); + if (!ItemInstance::matchesNulls(&base[i], v[i])) + outIndices.push_back(i); + } + return diffLen; + } + +private: + int size; + int count; + ItemInstance* base; +}; + +const int descFrameWidth = 100; + +const int rgbActive = 0xfff0f0f0; +const int rgbInactive = 0xc0635558; +const int rgbInactiveShadow = 0xc0aaaaaa; + +#ifdef __APPLE__ + static const float BorderPixels = 3; + #ifdef DEMO_MODE + static const float BlockPixels = 22; + #else + static const float BlockPixels = 22; + #endif +#else + static const float BorderPixels = 4; + static const float BlockPixels = 24; +#endif +static const int ItemSize = (int)(BlockPixels + 2*BorderPixels); + +static const int Bx = 10; // Border Frame width +static const int By = 6; // Border Frame height + +typedef struct FlyingItem { + ItemInstance item; + float startTime; + float sx, sy; + float dx, dy; +} FlyingItem ; + +static std::vector flyingItems; + +ChestScreen::ChestScreen(Player* player, ChestTileEntity* chest) +: super(new ContainerMenu(chest, chest->runningId)), //@huge @attn + inventoryPane(NULL), + chestPane(NULL), + btnClose(4, ""), + bHeader (5, "Inventory"), + bHeaderChest (6, "Chest"), + guiBackground(NULL), + guiSlot(NULL), + guiSlotMarked(NULL), + guiSlotMarker(NULL), + player(player), + chest(chest), + selectedSlot(-1), + doRecreatePane(false) + //guiSlotItem(NULL), + //guiSlotItemSelected(NULL) +{ +} + +ChestScreen::~ChestScreen() { + delete inventoryPane; + delete chestPane; + + delete guiBackground; + delete guiSlot; + delete guiSlotMarked; + delete guiSlotMarker; + delete guiPaneFrame; + + delete menu; + + if (chest->clientSideOnly) + delete chest; +} + +void ChestScreen::init() { + super::init(); + //printf("-> %d\n", width/2); + + ImageDef def; + def.name = "gui/spritesheet.png"; + def.x = 0; + def.y = 1; + def.width = def.height = 18; + def.setSrc(IntRectangle(60, 0, 18, 18)); + btnClose.setImageDef(def, true); + btnClose.scaleWhenPressed = false; + + buttons.push_back(&bHeader); + buttons.push_back(&bHeaderChest); + buttons.push_back(&btnClose); + + // GUI - nine patches + NinePatchFactory builder(minecraft->textures, "gui/spritesheet.png"); + + guiBackground = builder.createSymmetrical(IntRectangle(0, 0, 16, 16), 4, 4); + guiSlot = builder.createSymmetrical(IntRectangle(0, 32, 8, 8), 3, 3); + guiSlotMarked = builder.createSymmetrical(IntRectangle(0, 44, 8, 8), 3, 3); + guiSlotMarker = builder.createSymmetrical(IntRectangle(10, 42, 16, 16), 5, 5); + guiPaneFrame = builder.createSymmetrical(IntRectangle(28, 42, 4, 4), 1, 1)->exclude(4); +} + +void ChestScreen::setupPositions() { + // Left - Categories + bHeader.x = 0; + bHeader.y = bHeaderChest.y = 0; + bHeader.width = bHeaderChest.width = width / 2;// - bDone.w; + bHeaderChest.x = bHeader.x + bHeader.width; + + // Right - Description + btnClose.width = btnClose.height = 19; + btnClose.x = width - btnClose.width; + btnClose.y = 0; + + //guiPaneFrame->setSize((float)paneFuelRect.w + 2, (float)paneFuelRect.h + 4); + guiBackground->setSize((float)width, (float)height); + //guiSlotItem->setSize((float)width, 22); //@todo + //guiSlotItemSelected->setSize((float)width, 22); + + setupPane(); +} + +void ChestScreen::tick() { + if (inventoryPane) + inventoryPane->tick(); + + if (chestPane) + chestPane->tick(); + + if (doRecreatePane) { + setupPane(); + doRecreatePane = false; + } +} + +void ChestScreen::handleRenderPane(Touch::InventoryPane* pane, Tesselator& t, int xm, int ym, float a) { + if (pane) { + int ms, id; + pane->markerIndex = -1; + if (pane->queryHoldTime(&id, &ms)) { + heldMs = ms; + + FillingContainer* c = (pane == inventoryPane)? + upcast(minecraft->player->inventory) + : upcast(chest); + + const int slotIndex = id + c->getNumLinkedSlots(); + ItemInstance* item = c->getItem(slotIndex); + int count = (item && !item->isNull())? item->count : 0; + float maxHoldMs = item? 700 + 10 * item->count: MaxHoldMs; + + if (count > 1) { + float share = (heldMs-MinChargeMs) / maxHoldMs; + pane->markerType = 1;//(heldMs >= MinChargeMs)? 1 : 0; + pane->markerIndex = id; + pane->markerShare = Mth::Max(share, 0.0f); + + percent = (int)Mth::clamp(100.0f * share, 0.0f, 100.0f); + if (percent >= 100) { + addItem(pane, id); + } + } + } + + pane->render(xm, ym, a); + guiPaneFrame->draw(t, (float)(pane->rect.x - 1), (float)(pane->rect.y - 1)); + //LOGI("query-iv: %d, %d\n", gridId, heldMs); + + } +} + +void ChestScreen::render(int xm, int ym, float a) { + const int N = 5; + static StopwatchNLast r(N); + //renderBackground(); + + Tesselator& t = Tesselator::instance; + guiBackground->draw(t, 0, 0); + glEnable2(GL_ALPHA_TEST); + + // Buttons (Left side + crafting) + super::render(xm, ym, a); + + heldMs = -1; + + handleRenderPane(inventoryPane, t, xm, ym, a); + handleRenderPane(chestPane, t, xm, ym, a); + + float now = getTimeS(); + float MaxTime = 0.3f; + std::vector flyingToSave; + + glEnable2(GL_BLEND); + glColor4f(1, 1, 1, 0.2f); + t.beginOverride(); + //t.color(1.0f, 0.0f, 0.0f, 0.2f); + //t.noColor(); + + glEnable2(GL_SCISSOR_TEST); + //LOGI("panesBox: %d, %d - %d, %d\n", panesBbox.x, panesBbox.y, panesBbox.w, panesBbox.h); + minecraft->gui.setScissorRect(panesBbox); + for (unsigned int i = 0; i < flyingItems.size(); ++i) { + FlyingItem& fi = flyingItems[i]; + float since = (now - fi.startTime); + if (since > MaxTime) continue; + float t = since / MaxTime; + t *= t; + //float xx = fi.sx + t * 100.0f; + + float xx = Mth::lerp(fi.sx, fi.dx, t); + float yy = Mth::lerp(fi.sy, fi.dy, t); + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, &fi.item, xx + 7, yy + 8, true); + //minecraft->gui.renderSlotText(&fi.item, xx + 3, yy + 3, true, true); + + flyingToSave.push_back(fi); + } + t.enableColor(); + t.endOverrideAndDraw(); + glDisable2(GL_SCISSOR_TEST); + + flyingItems = flyingToSave; + + t.colorABGR(0xffffffff); + glDisable2(GL_BLEND); + + minecraft->textures->loadAndBindTexture("gui/spritesheet.png"); +} + +void ChestScreen::buttonClicked(Button* button) { + if (button == &btnClose) { + minecraft->player->closeContainer(); + } +} + +bool ChestScreen::handleAddItem(FillingContainer* from, FillingContainer* to, int itemIndex) { + const int itemOffset = from->getNumLinkedSlots(); + const int slotIndex = itemIndex + itemOffset; + ItemInstance* item = from->getItem(slotIndex); + + bool added = false; + bool fromChest = (from == chest); + Touch::InventoryPane* pane = fromChest? chestPane : inventoryPane; + Touch::InventoryPane* toPane = fromChest? inventoryPane : chestPane; + + int wantedCount = (item && !item->isNull())? item->count * percent / 100 : 0; + if ((item && !item->isNull()) && (!wantedCount || heldMs < MinChargeMs)) { + wantedCount = 1; + } + + if (wantedCount > 0) { + ItemInstance takenItem(*item); + takenItem.count = wantedCount; + + ItemDiffer differ(getItems(toPane)); + to->add(&takenItem); + + added = (takenItem.count != wantedCount); + + if (added) { + item->count -= (wantedCount - takenItem.count); + std::vector changed; + std::vector items = getItems(toPane); + differ.getDiff(items, changed); + + ScrollingPane::GridItem g, gTo; + pane->getGridItemFor_slow(itemIndex, g); + + //LOGI("Changed: %d\n", changed.size()); + for (unsigned int i = 0; i < changed.size(); ++i) { + FlyingItem fi; + fi.startTime = getTimeS(); + fi.item = *item; + + fi.sx = g.xf; + fi.sy = g.yf; + + int toIndex = changed[i]; + toPane->getGridItemFor_slow(toIndex, gTo); + + fi.dx = gTo.xf; + fi.dy = gTo.yf; + flyingItems.push_back(fi); + + if (!fromChest && minecraft->level->isClientSide) { + int j = toIndex; + ItemInstance item = items[j]? *items[j] : ItemInstance(); + ContainerSetSlotPacket p(menu->containerId, j, item); + minecraft->raknetInstance->send(p); + } + } + } + + // Send to server, needs a bit special handling + if (fromChest) { + ItemInstance ins(item->count <= 0? ItemInstance() : *item); + ContainerSetSlotPacket p(menu->containerId, slotIndex, ins); + minecraft->raknetInstance->send(p); + } + if (item->count <= 0) + from->clearSlot(slotIndex); + } + // Clear the marker indices + pane->markerIndex = toPane->markerIndex = -1; + + return added; +} + +bool ChestScreen::addItem(const Touch::InventoryPane* forPane, int itemIndex) { + //LOGI("items.size, index: %d, %d\n", inventoryItems.size(), itemIndex); + bool l2r = (forPane == inventoryPane); + return handleAddItem( l2r? upcast(minecraft->player->inventory) : upcast(chest), + l2r? upcast(chest) : upcast(minecraft->player->inventory), + itemIndex); +} + +bool ChestScreen::isAllowed( int slot ) +{ + return true; +} + +bool ChestScreen::renderGameBehind() +{ + return false; +} + +std::vector ChestScreen::getItems( const Touch::InventoryPane* forPane ) +{ + if (forPane == inventoryPane) { + for (int i = Inventory::MAX_SELECTION_SIZE, j = 0; i < minecraft->player->inventory->getContainerSize(); ++i, ++j) + inventoryItems[j] = minecraft->player->inventory->getItem(i); + return inventoryItems; + } + else { + for (int i = 0; i < chest->getContainerSize(); ++i) + chestItems[i] = chest->getItem(i); + return chestItems; + } +} + + +void ChestScreen::setupPane() +{ + inventoryItems.clear(); + for (int i = Inventory::MAX_SELECTION_SIZE; i < minecraft->player->inventory->getContainerSize(); ++i) { + ItemInstance* item = minecraft->player->inventory->getItem(i); + /*if (!item || item->isNull()) continue;*/ + inventoryItems.push_back(item); + } + chestItems.clear(); + for (int i = 0; i < chest->getContainerSize(); ++i) { + ItemInstance* item = chest->getItem(i); + /*if (!item || item->isNull()) continue;*/ + chestItems.push_back(item); + } + + int maxWidth = width/2 - Bx/2;//- Bx - Bx/*- Bx*/; + int InventoryColumns = maxWidth / ItemSize; + const int realWidth = InventoryColumns * ItemSize; + int paneWidth = realWidth;// + Bx + Bx; + const int realBx = (width/2 - realWidth) / 2; + + IntRectangle rect(realBx, +#ifdef __APPLE__ + 24 + By - ((width==240)?1:0), realWidth, ((width==240)?1:0) + height-By-By-24); +#else + 24 + By, realWidth, height-By-By-24); +#endif + // IntRectangle(0, 0, 100, 100) + if (inventoryPane) delete inventoryPane; + inventoryPane = new Touch::InventoryPane(this, minecraft, rect, paneWidth, BorderPixels, minecraft->player->inventory->getContainerSize() - Inventory::MAX_SELECTION_SIZE, ItemSize, (int)BorderPixels); + inventoryPane->fillMarginX = 0; + inventoryPane->fillMarginY = 0; + guiPaneFrame->setSize((float)rect.w + 2, (float)rect.h + 2); + + panesBbox = rect; + rect.x += width/2;// - rect.w - Bx; + panesBbox.w += (rect.x - panesBbox.x); + + if (chestPane) delete chestPane; + chestPane = new Touch::InventoryPane(this, minecraft, rect, paneWidth, BorderPixels, chest->getContainerSize(), ItemSize, (int)BorderPixels); + chestPane->fillMarginX = 0; + chestPane->fillMarginY = 0; + LOGI("Creating new panes\n:" + " Inventory %d %p\n" + " Chest %d %p\n", (int)inventoryItems.size(), inventoryPane, (int)chestItems.size(), chestPane); +} + +void ChestScreen::drawSlotItemAt( Tesselator& t, const ItemInstance* item, int x, int y, bool selected) +{ + float xx = (float)x; + float yy = (float)y; + + (selected? guiSlot/*Marked*/ : guiSlot)->draw(t, xx, yy); + + if (selected) + guiSlotMarker->draw(t, xx - 2, yy - 2); + + if (item && !item->isNull()) { + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, item, xx + 7, yy + 8, true); + minecraft->gui.renderSlotText(item, xx + 3, yy + 3, true, true); + } +} diff --git a/src/client/gui/screens/ChestScreen.h b/src/client/gui/screens/ChestScreen.h new file mode 100755 index 0000000..7a072ef --- /dev/null +++ b/src/client/gui/screens/ChestScreen.h @@ -0,0 +1,72 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ChestScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ChestScreen_H__ + +#include "BaseContainerScreen.h" + +#include "../components/InventoryPane.h" +#include "../components/Button.h" + +class Font; +class CItem; +class Textures; +class NinePatchLayer; +class FillingContainer; +class ChestTileEntity; +class Tesselator; + +class ChestScreen: public BaseContainerScreen, + public Touch::IInventoryPaneCallback +{ + typedef BaseContainerScreen super; + typedef std::vector ItemList; + friend class ItemPane; +public: + ChestScreen(Player* player, ChestTileEntity* chest); + ~ChestScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + bool renderGameBehind(); + void buttonClicked(Button* button); + + // IInventoryPaneCallback + bool addItem(const Touch::InventoryPane* pane, int itemId); + bool isAllowed( int slot ); + std::vector getItems( const Touch::InventoryPane* forPane ); + //const ItemList& getItems(const ItemPane* forPane); +private: + void setupPane(); + + void drawSlotItemAt(Tesselator& t, const ItemInstance* item, int x, int y, bool selected); + bool handleAddItem(FillingContainer* from, FillingContainer* to, int itemIndex); + void handleRenderPane(Touch::InventoryPane* pane, Tesselator& t, int xm, int ym, float a); + + std::string currentItemDesc; + ImageButton btnClose; + Touch::THeader bHeader; + Touch::THeader bHeaderChest; + + Touch::InventoryPane* inventoryPane; + Touch::InventoryPane* chestPane; + IntRectangle panesBbox; + + std::vector inventoryItems; + std::vector chestItems; + bool doRecreatePane; + + int selectedSlot; + + // GUI elements such as 9-Patches + NinePatchLayer* guiBackground; + NinePatchLayer* guiSlot; + NinePatchLayer* guiSlotMarked; + NinePatchLayer* guiSlotMarker; + NinePatchLayer* guiPaneFrame; + Player* player; + ChestTileEntity* chest; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ChestScreen_H__*/ diff --git a/src/client/gui/screens/ChooseLevelScreen.cpp b/src/client/gui/screens/ChooseLevelScreen.cpp new file mode 100755 index 0000000..1cef1c5 --- /dev/null +++ b/src/client/gui/screens/ChooseLevelScreen.cpp @@ -0,0 +1,26 @@ +#include "ChooseLevelScreen.h" +#include +#include +#include "../../Minecraft.h" + +void ChooseLevelScreen::init() { + loadLevelSource(); +} + +void ChooseLevelScreen::loadLevelSource() +{ + LevelStorageSource* levelSource = minecraft->getLevelSource(); + levelSource->getLevelList(levels); + std::sort(levels.begin(), levels.end()); +} + +std::string ChooseLevelScreen::getUniqueLevelName( const std::string& level ) { + std::set Set; + for (unsigned int i = 0; i < levels.size(); ++i) + Set.insert(levels[i].id); + + std::string s = level; + while ( Set.find(s) != Set.end() ) + s += "-"; + return s; +} diff --git a/src/client/gui/screens/ChooseLevelScreen.h b/src/client/gui/screens/ChooseLevelScreen.h new file mode 100755 index 0000000..74d5341 --- /dev/null +++ b/src/client/gui/screens/ChooseLevelScreen.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ChooseLevelScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ChooseLevelScreen_H__ + +#include "../Screen.h" +#include "../../../world/level/storage/LevelStorageSource.h" + +class ChooseLevelScreen: public Screen +{ +public: + void init(); + +protected: + std::string getUniqueLevelName(const std::string& level); + +private: + void loadLevelSource(); + + LevelSummaryList levels; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ChooseLevelScreen_H__*/ diff --git a/src/client/gui/screens/ConfirmScreen.cpp b/src/client/gui/screens/ConfirmScreen.cpp new file mode 100755 index 0000000..ce911c6 --- /dev/null +++ b/src/client/gui/screens/ConfirmScreen.cpp @@ -0,0 +1,84 @@ +#include "ConfirmScreen.h" +#include "../components/Button.h" +#include "../../Minecraft.h" + +ConfirmScreen::ConfirmScreen(Screen* parent_, const std::string& title1_, const std::string& title2_, int id_) +: parent(parent_), + title1(title1_), + title2(title2_), + id(id_), + yesButtonText("Ok"), + noButtonText("Cancel"), + yesButton(0), + noButton(0) +{ +} + +ConfirmScreen::ConfirmScreen(Screen* parent_, const std::string& title1_, const std::string& title2_, const std::string& yesButton_, const std::string& noButton_, int id_ ) +: parent(parent_), + title1(title1_), + title2(title2_), + id(id_), + yesButtonText(yesButton_), + noButtonText(noButton_) +{ +} + +ConfirmScreen::~ConfirmScreen() { + delete yesButton; + delete noButton; +} + +void ConfirmScreen::init() +{ + if (minecraft->useTouchscreen()) { + yesButton = new Touch::TButton(0, 0, 0, yesButtonText), + noButton = new Touch::TButton(1, 0, 0, noButtonText); + } else { + yesButton = new Button(0, 0, 0, yesButtonText), + noButton = new Button(1, 0, 0, noButtonText); + } + + buttons.push_back(yesButton); + buttons.push_back(noButton); + + tabButtons.push_back(yesButton); + tabButtons.push_back(noButton); +} + +void ConfirmScreen::setupPositions() { + const int ButtonWidth = 120; + const int ButtonHeight = 24; + yesButton->x = width / 2 - ButtonWidth - 4; + yesButton->y = height / 6 + 72; + noButton->x = width / 2 + 4; + noButton->y = height / 6 + 72; + yesButton->width = noButton->width = ButtonWidth; + yesButton->height = noButton->height = ButtonHeight; +} + +bool ConfirmScreen::handleBackEvent(bool isDown) { + if (!isDown) + postResult(false); + return true; +} + +void ConfirmScreen::render( int xm, int ym, float a ) +{ + renderBackground(); + + drawCenteredString(font, title1, width / 2, 50, 0xffffff); + drawCenteredString(font, title2, width / 2, 70, 0xffffff); + + super::render(xm, ym, a); +} + +void ConfirmScreen::buttonClicked( Button* button ) +{ + postResult(button->id == 0); +} + +void ConfirmScreen::postResult(bool isOk) +{ + parent->confirmResult(isOk, id); +} diff --git a/src/client/gui/screens/ConfirmScreen.h b/src/client/gui/screens/ConfirmScreen.h new file mode 100755 index 0000000..07f40b3 --- /dev/null +++ b/src/client/gui/screens/ConfirmScreen.h @@ -0,0 +1,41 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ConfirmScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ConfirmScreen_H__ + +//package net.minecraft.client.gui; + +#include "../Screen.h" +#include "../components/SmallButton.h" +#include + +class ConfirmScreen: public Screen +{ + typedef Screen super; +public: + ConfirmScreen(Screen* parent_, const std::string& title1_, const std::string& title2_, int id_); + ConfirmScreen(Screen* parent_, const std::string& title1_, const std::string& title2_, const std::string& yesButton, const std::string& noButton, int id_); + ~ConfirmScreen(); + + void init(); + void setupPositions(); + + bool handleBackEvent(bool isDown); + void render(int xm, int ym, float a); +protected: + void buttonClicked(Button* button); + + virtual void postResult(bool isOk); + + Screen* parent; + int id; +private: + std::string title1; + std::string title2; + + std::string yesButtonText; + std::string noButtonText; + + Button* yesButton; // 0 + Button* noButton; // 1 +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ConfirmScreen_H__*/ diff --git a/src/client/gui/screens/DeathScreen.cpp b/src/client/gui/screens/DeathScreen.cpp new file mode 100755 index 0000000..a5685dc --- /dev/null +++ b/src/client/gui/screens/DeathScreen.cpp @@ -0,0 +1,83 @@ +#include "DeathScreen.h" +#include "ScreenChooser.h" +#include "../components/Button.h" +#include "../../Minecraft.h" +#include "../../player/LocalPlayer.h" +#include "../../../platform/time.h" + +static const int WAIT_TICKS = 30; + +DeathScreen::DeathScreen() +: bRespawn(0), + bTitle(0), + _hasChosen(false), + _tick(0) +{ +} + +DeathScreen::~DeathScreen() +{ + delete bRespawn; + delete bTitle; +} + +void DeathScreen::init() +{ + if (minecraft->useTouchscreen()) { + bRespawn = new Touch::TButton(1, "Respawn!"); + bTitle = new Touch::TButton(2, "Main menu"); + } else { + bRespawn = new Button(1, "Respawn!"); + bTitle = new Button(2, "Main menu"); + } + buttons.push_back(bRespawn); + buttons.push_back(bTitle); + + tabButtons.push_back(bRespawn); + tabButtons.push_back(bTitle); +} + +void DeathScreen::setupPositions() +{ + bRespawn->width = bTitle->width = width / 4; + + bRespawn->y = bTitle->y = height / 2; + bRespawn->x = width/2 - bRespawn->width - 10; + bTitle->x = width/2 + 10; + + LOGI("xyz: %d, %d (%d, %d)\n", bTitle->x, bTitle->y, width, height); +} + +void DeathScreen::tick() { + ++_tick; +} + +void DeathScreen::render( int xm, int ym, float a ) +{ + fillGradient(0, 0, width, height, 0x60500000, 0xa0803030); + + glPushMatrix2(); + glScalef2(2, 2, 2); + drawCenteredString(font, "You died!", width / 2 / 2, height / 8, 0xffffff); + glPopMatrix2(); + + if (_tick >= WAIT_TICKS) + Screen::render(xm, ym, a); +} + +void DeathScreen::buttonClicked( Button* button ) +{ + if (_tick < WAIT_TICKS) return; + + if (button == bRespawn) { + //RespawnPacket packet(); + //minecraft->raknetInstance->send(packet); + + minecraft->player->respawn(); + //minecraft->raknetInstance->send(); + minecraft->setScreen(NULL); + } + + if (button == bTitle) + minecraft->leaveGame(); +} diff --git a/src/client/gui/screens/DeathScreen.h b/src/client/gui/screens/DeathScreen.h new file mode 100755 index 0000000..8a728ce --- /dev/null +++ b/src/client/gui/screens/DeathScreen.h @@ -0,0 +1,30 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__DeathScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__DeathScreen_H__ + +#include "../Screen.h" +class Button; + +class DeathScreen: public Screen +{ +public: + DeathScreen(); + + virtual ~DeathScreen(); + + void init(); + + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + +private: + Button* bRespawn; + Button* bTitle; + bool _hasChosen; + int _tick; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__DeathScreen_H__*/ diff --git a/src/client/gui/screens/DialogDefinitions.h b/src/client/gui/screens/DialogDefinitions.h new file mode 100755 index 0000000..886e6a2 --- /dev/null +++ b/src/client/gui/screens/DialogDefinitions.h @@ -0,0 +1,13 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__DialogDefinitions_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__DialogDefinitions_H__ + +class DialogDefinitions { +public: + static const int DIALOG_CREATE_NEW_WORLD = 1; + static const int DIALOG_NEW_CHAT_MESSAGE = 2; + static const int DIALOG_MAINMENU_OPTIONS = 3; + static const int DIALOG_RENAME_MP_WORLD = 4; + static const int DIALOG_DEMO_FEATURE_DISABLED = 98; +}; + +#endif /*#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__DialogDefinitions_H__*/ diff --git a/src/client/gui/screens/DisconnectionScreen.h b/src/client/gui/screens/DisconnectionScreen.h new file mode 100755 index 0000000..12c62ec --- /dev/null +++ b/src/client/gui/screens/DisconnectionScreen.h @@ -0,0 +1,57 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__DisconnectionScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__DisconnectionScreen_H__ + +#include "../Screen.h" +#include "../Font.h" +#include "../components/Button.h" +#include "../../Minecraft.h" +#include + +class DisconnectionScreen: public Screen +{ + typedef Screen super; +public: + DisconnectionScreen(const std::string& msg) + : _msg(msg), + _back(NULL) + {} + + ~DisconnectionScreen() { + delete _back; + } + + void init() { + if (minecraft->useTouchscreen()) + _back = new Touch::TButton(1, "Ok"); + else + _back = new Button(1, "Ok"); + + buttons.push_back(_back); + tabButtons.push_back(_back); + + _back->width = 128; + _back->x = (width - _back->width) / 2; + _back->y = height / 2; + } + + void render( int xm, int ym, float a ) { + renderBackground(); + super::render(xm, ym, a); + + int center = (width - minecraft->font->width(_msg)) / 2; + minecraft->font->drawShadow(_msg, (float)center, (float)(height / 2 - 32), 0xffffffff); + } + + void buttonClicked(Button* button) { + if (button->id == _back->id) { + minecraft->leaveGame(); + } + } + bool isInGameScreen() { return false; } + +private: + std::string _msg; + Button* _back; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__DisconnectionScreen_H__*/ diff --git a/src/client/gui/screens/FurnaceScreen.cpp b/src/client/gui/screens/FurnaceScreen.cpp new file mode 100755 index 0000000..58d6df2 --- /dev/null +++ b/src/client/gui/screens/FurnaceScreen.cpp @@ -0,0 +1,555 @@ +#include "FurnaceScreen.h" +#include "crafting/PaneCraftingScreen.h" +#include "../Screen.h" +#include "../components/NinePatch.h" +#include "../../Minecraft.h" +#include "../../player/LocalPlayer.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/entity/ItemRenderer.h" +#include "../../../world/item/Item.h" +#include "../../../world/item/crafting/Recipes.h" +#include "../../../world/item/ItemCategory.h" +#include "../../../world/entity/player/Inventory.h" +#include "../../../world/entity/item/ItemEntity.h" +#include "../../../world/level/Level.h" +#include "../../../world/item/DyePowderItem.h" +#include "../../../world/item/crafting/FurnaceRecipes.h" +#include "../../../world/level/tile/entity/FurnaceTileEntity.h" +#include "../../../locale/I18n.h" +#include "../../../util/StringUtils.h" +#include "../../../world/inventory/FurnaceMenu.h" +#include "../../../network/packet/ContainerSetSlotPacket.h" +#include "../../../network/RakNetInstance.h" + +static int heldMs = -1; +static int percent = -1; +static const float MaxHoldMs = 500.0f; +static const int MinChargeMs = 200; + +static void setIfNotSet(bool& ref, bool condition) { + ref = (ref || condition); +} + +const int descFrameWidth = 100; + +const int rgbActive = 0xfff0f0f0; +const int rgbInactive = 0xc0635558; +const int rgbInactiveShadow = 0xc0aaaaaa; + +#ifdef __APPLE__ + static const float BorderPixels = 4; + #ifdef DEMO_MODE + static const float BlockPixels = 22; + #else + static const float BlockPixels = 22; + #endif +#else + static const float BorderPixels = 4; + static const float BlockPixels = 24; +#endif +static const int ItemSize = (int)(BlockPixels + 2*BorderPixels); + +static const int Bx = 10; // Border Frame width +static const int By = 6; // Border Frame height + + +FurnaceScreen::FurnaceScreen(Player* player, FurnaceTileEntity* furnace) +: super(new FurnaceMenu(furnace)), //@huge @attn + inventoryPane(NULL), + btnFuel(FurnaceTileEntity::SLOT_FUEL), + btnIngredient(FurnaceTileEntity::SLOT_INGREDIENT), + btnResult(FurnaceTileEntity::SLOT_RESULT), + btnClose(4, ""), + bHeader (5, "Furnace"), + guiBackground(NULL), + guiSlot(NULL), + guiSlotMarked(NULL), + guiSlotMarker(NULL), + guiPaneFrame(NULL), + player(player), + furnace(furnace), + selectedSlot(FurnaceTileEntity::SLOT_INGREDIENT), + doRecreatePane(false), + lastBurnTypeId(0), + descWidth(90) + //guiSlotItem(NULL), + //guiSlotItemSelected(NULL) +{ + //LOGI("Creating FurnaceScreen with %p, %d\n", furnace, furnace->runningId); +} + +FurnaceScreen::~FurnaceScreen() { + clearItems(); + + delete inventoryPane; + + delete guiBackground; + delete guiSlot; + delete guiSlotMarked; + delete guiSlotMarker; + delete guiPaneFrame; + + delete menu; + + if (furnace->clientSideOnly) + delete furnace; +} + +void FurnaceScreen::init() { + super::init(); + //printf("-> %d\n", width/2); + + ImageDef def; + def.name = "gui/spritesheet.png"; + def.x = 0; + def.y = 1; + def.width = def.height = 18; + def.setSrc(IntRectangle(60, 0, 18, 18)); + btnClose.setImageDef(def, true); + btnClose.scaleWhenPressed = false; + + buttons.push_back(&bHeader); + buttons.push_back(&btnIngredient); + buttons.push_back(&btnFuel); + buttons.push_back(&btnResult); + buttons.push_back(&btnClose); + + // GUI - nine patches + NinePatchFactory builder(minecraft->textures, "gui/spritesheet.png"); + + guiBackground = builder.createSymmetrical(IntRectangle(0, 0, 16, 16), 4, 4); + guiSlot = builder.createSymmetrical(IntRectangle(0, 32, 8, 8), 3, 3); + guiSlotMarked = builder.createSymmetrical(IntRectangle(0, 44, 8, 8), 3, 3); + guiSlotMarker = builder.createSymmetrical(IntRectangle(10, 42, 16, 16), 5, 5); + guiPaneFrame = builder.createSymmetrical(IntRectangle(28, 42, 4, 4), 1, 1)->setExcluded(1 << 4); + + recheckRecipes(); +} + +void FurnaceScreen::setupPositions() { + // Left - Categories + bHeader.x = bHeader.y = 0; + bHeader.width = width;// - bDone.w; + + btnClose.width = btnClose.height = 19; + btnClose.x = width - btnClose.width; + btnClose.y = 0; + + // Inventory pane + const int maxWidth = width/2 - Bx - Bx; + const int InventoryColumns = maxWidth / ItemSize; + const int realWidth = InventoryColumns * ItemSize; + const int paneWidth = realWidth + Bx + Bx; + const int realBx = (paneWidth - realWidth) / 2; + + inventoryPaneRect = IntRectangle(realBx, +#ifdef __APPLE__ + 26 + By - ((width==240)?1:0), realWidth, ((width==240)?1:0) + height-By-By-28); +#else + 26 + By, realWidth, height-By-By-28); +#endif + + // Right - Slots, description etc + { + int cx = (inventoryPaneRect.x + inventoryPaneRect.w); + int rightWidth = width - cx; + + btnIngredient.width = btnFuel.width = btnResult.width = (int)guiSlot->getWidth(); + btnIngredient.height = btnFuel.height = btnResult.height = (int)guiSlot->getHeight(); + int space = rightWidth - (2 * btnFuel.width + 40); + int margin = space/2; + int bx0 = cx + margin; + int bx1 = width - margin - btnFuel.width; + btnIngredient.x = btnFuel.x = bx0; + descWidth = (float)Mth::Min(90, width - bx1 + 24 - 4); + + int by = 36;// + (height-20) / 6; + btnIngredient.y = by; + btnFuel.y = by + 20 + btnFuel.height; + + btnResult.x = bx1; + btnResult.y = (btnIngredient.y + btnFuel.y) / 2; + + guiBackground->setSize((float)width, (float)height); + guiSlotMarker->setSize((float)btnFuel.width + 4, (float)btnFuel.height + 4); + + recheckRecipes(); + setupInventoryPane(); + } +} + +void FurnaceScreen::tick() { + if (inventoryPane) + inventoryPane->tick(); + + if (doRecreatePane) { + recheckRecipes(); + setupInventoryPane(); + doRecreatePane = false; + } +} + +void FurnaceScreen::handleRenderPane(Touch::InventoryPane* pane, Tesselator& t, int xm, int ym, float a) { + if (pane) { + int ms, id; + pane->markerIndex = -1; + if (pane->queryHoldTime(&id, &ms)) { + heldMs = ms; + + const ItemInstance* item = inventoryItems[id]; + int count = (item && !item->isNull())? item->count : 0; + float maxHoldMs = item? 700 + 10 * item->count: MaxHoldMs; + + if (count > 1 && canMoveToFurnace(id, item)) { + float share = (heldMs-MinChargeMs) / maxHoldMs; + pane->markerType = 1;//(heldMs >= MinChargeMs)? 1 : 0; + pane->markerIndex = id; + pane->markerShare = Mth::Max(share, 0.0f); + + percent = (int)Mth::clamp(100.0f * share, 0.0f, 100.0f); + if (percent >= 100) { + addItem(pane, id); + } + } + } + + pane->render(xm, ym, a); + guiPaneFrame->draw(t, (float)(pane->rect.x - 1), (float)(pane->rect.y - 1)); + //LOGI("query-iv: %d, %d\n", gridId, heldMs); + + } +} + +void FurnaceScreen::render(int xm, int ym, float a) { + const int N = 5; + static StopwatchNLast r(N); + //renderBackground(); + + updateResult(furnace->getItem(FurnaceTileEntity::SLOT_INGREDIENT)); + + Tesselator& t = Tesselator::instance; + guiBackground->draw(t, 0, 0); + glEnable2(GL_ALPHA_TEST); + + // Buttons (Left side + crafting) + super::render(xm, ym, a); + + handleRenderPane(inventoryPane, t, xm, ym, a); + + t.colorABGR(0xffffffff); + + drawSlotItemAt(t, furnace->getItem(btnIngredient.id), btnIngredient.x, btnIngredient.y, btnIngredient.id == selectedSlot); + drawSlotItemAt(t, furnace->getItem(btnFuel.id), btnFuel.x, btnFuel.y, btnFuel.id == selectedSlot); + + const ItemInstance* resultSlotItem = furnace->getItem(btnResult.id); + drawSlotItemAt(t, resultSlotItem, btnResult.x, btnResult.y, btnResult.id == selectedSlot); + + if (!burnResult.isNull()) { + if (!resultSlotItem || resultSlotItem->isNull()) { + glEnable2(GL_BLEND); + t.beginOverride(); + t.colorABGR(0x33ffffff); + t.noColor(); + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, &burnResult, (float)(btnResult.x + 7), (float)(btnResult.y + 8), true); + t.endOverrideAndDraw(); + glDisable2(GL_BLEND); + } + minecraft->font->drawWordWrap(currentItemDesc, (float)btnResult.x - 24, (float)(btnResult.y + btnResult.height + 6), descWidth, rgbActive); + } + + minecraft->textures->loadAndBindTexture("gui/spritesheet.png"); + int yy = btnResult.y + 8; + int fpx = furnace->getLitProgress(14) + 2; + int xx0 = btnIngredient.x + 8; + blit(xx0, yy, 80, 40, 16, 16, 32, 32); + blit(xx0, yy + 16 - fpx, 112, 40 + 32-fpx-fpx, 16, fpx, 32, fpx+fpx); + + int bpx = furnace->getBurnProgress(24); + int xx1 = btnIngredient.x + 40; + blit(xx1, yy, 144, 40, 24, 16, 48, 32); + blit(xx1, yy, 144, 72, bpx, 16, bpx+bpx, 32); +} + +void FurnaceScreen::buttonClicked(Button* button) { + int slot = button->id; + + if (button == &btnClose) { + minecraft->player->closeContainer(); + } + + if (slot >= FurnaceTileEntity::SLOT_INGREDIENT + && slot <= FurnaceTileEntity::SLOT_RESULT) { + // Can't highlight the Result slot + int oldSlot = selectedSlot; + if (slot != FurnaceTileEntity::SLOT_RESULT) + selectedSlot = slot; + + if (oldSlot == selectedSlot) + takeAndClearSlot(slot); + } +} + +static bool sortCanCraftPredicate(const CItem* a, const CItem* b) { + //if (a->maxBuildCount == 0 && b->maxBuildCount > 0) return false; + //if (b->maxBuildCount == 0 && a->maxBuildCount > 0) return true; + return a->sortText < b->sortText; +} + +void FurnaceScreen::recheckRecipes() +{ + clearItems(); + + Stopwatch w; + w.start(); + + const FurnaceRecipes* recipes = FurnaceRecipes::getInstance(); + ItemPack ip; + // Check for fuel, and items to burn + if (minecraft->player && minecraft->player->inventory) { + Inventory* inv = (minecraft->player)->inventory; + + for (int i = Inventory::MAX_SELECTION_SIZE; i < inv->getContainerSize(); ++i) { + if (ItemInstance* item = inv->getItem(i)) { + // Fuel material + if (FurnaceTileEntity::isFuel(*item)) { + CItem* ci = new CItem(*item, NULL, "");//item->getName()); + //LOGI("Adding fuel: %s\n", item->getName()); + listFuel.push_back(ci); + } + // Ingredient/burn material + if (recipes->isFurnaceItem(item->id)) { + CItem* ci = new CItem(*item, NULL, "");//item->getName()); + //LOGI("Adding item to burn: %s\n", item->getName()); + listIngredient.push_back(ci); + } + //ip.add(ItemPack::getIdForItemInstance(item), item->count); + } + } + } + + ip.print(); + + w.stop(); + w.printEvery(1, "> craft "); + + updateItems(); + //std::stable_sort(_categories[c].begin(), _categories[c].end(), sortCanCraftPredicate); +} + +bool FurnaceScreen::addItem(const Touch::InventoryPane* forPane, int itemIndex) { + //LOGI("items.size, index: %d, %d\n", inventoryItems.size(), itemIndex); + const ItemInstance* item = inventoryItems[itemIndex]; + if (!item || item->isNull()) return false; + + setIfNotSet(doRecreatePane, handleAddItem(selectedSlot, item)); + + if (doRecreatePane) { + int slot = inventorySlots[itemIndex]; + if (player->inventory->getItem(slot)) { + // fix: if we deplete a slot we didn't click on (but had same type), + // we need to NULLify the slot that actually was depleted + for (unsigned int i = 0; i < inventorySlots.size(); ++i) { + slot = inventorySlots[i]; + if (!player->inventory->getItem(slot)) { + LOGI("Changed! removing slot %d (was: %d)\n", i, itemIndex); + itemIndex = i; + break; + } + } + } + inventoryItems[itemIndex] = NULL; + } + //LOGI("Pressed button: %d\n", itemIndexInCurrentCategory); + return true; +} + +bool FurnaceScreen::isAllowed( int slot ) +{ //LOGI("items.size, index: %d, %d\n", inventoryItems.size(), slot); + if (slot >= (int)inventoryItems.size()) return false; + if (!inventoryItems[slot]) return false; + const ItemInstance& item = *inventoryItems[slot]; + + if (selectedSlot == btnFuel.id) + return (FurnaceTileEntity::getBurnDuration(item) > 0); + else + if (selectedSlot == btnIngredient.id) + return !FurnaceRecipes::getInstance()->getResult(item.id).isNull(); + return false; +} + +bool FurnaceScreen::renderGameBehind() +{ + return false; +} + +std::vector FurnaceScreen::getItems( const Touch::InventoryPane* forPane ) +{ + return inventoryItems; +} + +void FurnaceScreen::clearItems() +{ + for (unsigned int i = 0; i < listFuel.size(); ++i) delete listFuel[i]; + for (unsigned int i = 0; i < listIngredient.size(); ++i) delete listIngredient[i]; + listFuel.clear(); + listIngredient.clear(); +} + +void FurnaceScreen::updateItems() { + inventoryItems.clear(); + inventorySlots.clear(); + + ItemList all(listFuel.begin(), listFuel.end()); + all.insert(all.end(), listIngredient.begin(), listIngredient.end()); + for (int i = Inventory::MAX_SELECTION_SIZE; i < minecraft->player->inventory->getContainerSize(); ++i) { + ItemInstance* item = minecraft->player->inventory->getItem(i); + if (!item) continue; + //LOGI("ItemInstance (%p) Id/aux/count: %d, %d, %d\n", item, item->id, item->getAuxValue(), item->count); + bool added = false; + for (unsigned int j = 0; j < listFuel.size(); ++j) { + if (ItemInstance::matches(item, &listFuel[j]->item)) { + inventorySlots.push_back(i); + inventoryItems.push_back(item); + added = true; + break; + } + } + if (added) continue; + for (unsigned int j = 0; j < listIngredient.size(); ++j) { + if (ItemInstance::matches(item, &listIngredient[j]->item)) { + inventorySlots.push_back(i); + inventoryItems.push_back(item); + added = true; + break; + } + } + } +} + +bool FurnaceScreen::canMoveToFurnace(int inventorySlot, const ItemInstance* item) { + if (!isAllowed(inventorySlot)) return false; + ItemInstance* jitem = furnace->getItem(selectedSlot); + if (!jitem || jitem->isNull()) return true; + if (ItemInstance::isStackable(item, jitem) && jitem->count < jitem->getMaxStackSize()) + return true; + + return false; +} + +void FurnaceScreen::updateResult( const ItemInstance* item ) +{ + const ItemInstance* result = furnace->getItem(FurnaceTileEntity::SLOT_RESULT); + if (!result->isNull()) { + int id = result->id; + if (id == lastBurnTypeId) return; + currentItemDesc = I18n::getDescriptionString(*result); + lastBurnTypeId = id; + this->burnResult = *result; + } else { + int id = (item? item->id : 0); + if (id == lastBurnTypeId) return; + + ItemInstance burnResult = FurnaceRecipes::getInstance()->getResult(id); + if (!burnResult.isNull()) + currentItemDesc = I18n::getDescriptionString(burnResult); + else + currentItemDesc = ""; + lastBurnTypeId = id; + this->burnResult = burnResult; + } +} + +void FurnaceScreen::setupInventoryPane() +{ + // IntRectangle(0, 0, 100, 100) + if (inventoryPane) delete inventoryPane; + inventoryPane = new Touch::InventoryPane(this, minecraft, inventoryPaneRect, inventoryPaneRect.w, BorderPixels, inventoryItems.size(), ItemSize, (int)BorderPixels); + inventoryPane->fillMarginX = 0; + inventoryPane->fillMarginY = 0; + guiPaneFrame->setSize((float)inventoryPaneRect.w + 2, (float)inventoryPaneRect.h + 2); + //LOGI("Creating new pane: %d %p\n", inventoryItems.size(), inventoryPane); +} + +void FurnaceScreen::drawSlotItemAt( Tesselator& t, const ItemInstance* item, int x, int y, bool selected) +{ + float xx = (float)x; + float yy = (float)y; + + (selected? guiSlot/*Marked*/ : guiSlot)->draw(t, xx, yy); + + if (selected) + guiSlotMarker->draw(t, xx - 2, yy - 2); + + if (item && !item->isNull()) { + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, item, xx + 7, yy + 8, true); + minecraft->gui.renderSlotText(item, xx + 3, yy + 3, true, true); + } +} + +ItemInstance FurnaceScreen::moveOver(const ItemInstance* item, int maxCount) { + int wantedCount = item->count * percent / 100; + if (!wantedCount || heldMs < MinChargeMs) + wantedCount = 1; + + wantedCount = Mth::Min(wantedCount, maxCount); + + ItemInstance removed(item->id, wantedCount, item->getAuxValue()); + int oldSize = minecraft->player->inventory->getNumEmptySlots(); + if (minecraft->player->inventory->removeResource(removed)) { + int newSize = minecraft->player->inventory->getNumEmptySlots(); + setIfNotSet(doRecreatePane, newSize != oldSize); + return removed; + } + return ItemInstance(); +} + +void FurnaceScreen::takeAndClearSlot( int slot ) +{ + //if (selectedSlot == btnBurn.id && !furnace->isSlotEmpty(btnBurn.id)) + ItemInstance oldItem = *furnace->getItem(slot); + ItemInstance blank; + + furnace->setItem(slot, &blank); + if (minecraft->level->isClientSide) { + ContainerSetSlotPacket p(menu->containerId, slot, blank); + minecraft->raknetInstance->send(p); + } + + int oldSize = minecraft->player->inventory->getNumEmptySlots(); + + if (!minecraft->player->inventory->add(&oldItem)) + minecraft->player->drop(new ItemInstance(oldItem), false); + + int newSize = minecraft->player->inventory->getNumEmptySlots(); + setIfNotSet(doRecreatePane, newSize != oldSize); +} + +bool FurnaceScreen::handleAddItem( int slot, const ItemInstance* item ) +{ + ItemInstance* furnaceItem = furnace->getItem(slot); + int oldSize = minecraft->player->inventory->getNumEmptySlots(); + + if (item->id == furnaceItem->id) { + // If stackable, stack them! Else deny the addition + const int maxMovedCount = furnaceItem->getMaxStackSize() - furnaceItem->count; + if (maxMovedCount <= 0) + return false; + + ItemInstance added = moveOver(item, maxMovedCount); + furnaceItem->count += added.count; + } else { + if (!furnace->isSlotEmpty(slot)) + return false;//takeAndClearSlot(slot); + + ItemInstance moved = moveOver(item, item->getMaxStackSize()); + player->containerMenu->setSlot(slot, &moved); + } + + if (minecraft->level->isClientSide) { + ContainerSetSlotPacket p(menu->containerId, slot, *furnaceItem); + minecraft->raknetInstance->send(p); + } + + int newSize = minecraft->player->inventory->getNumEmptySlots(); + return (newSize != oldSize); +} diff --git a/src/client/gui/screens/FurnaceScreen.h b/src/client/gui/screens/FurnaceScreen.h new file mode 100755 index 0000000..d359abd --- /dev/null +++ b/src/client/gui/screens/FurnaceScreen.h @@ -0,0 +1,84 @@ +#ifndef _FURNACESCREEN_H__ +#define _FURNACESCREEN_H__ + +#include "BaseContainerScreen.h" + +#include "../components/InventoryPane.h" +#include "../components/Button.h" + +class Font; +class CItem; +class Textures; +class NinePatchLayer; +class Tesselator; + +class FurnaceScreen: public BaseContainerScreen, + public Touch::IInventoryPaneCallback +{ + typedef BaseContainerScreen super; + typedef std::vector ItemList; +public: + FurnaceScreen(Player* player, FurnaceTileEntity* furnace); + ~FurnaceScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + bool renderGameBehind(); + void buttonClicked(Button* button); + + // IInventoryPaneCallback + bool addItem(const Touch::InventoryPane* pane, int itemId); + bool isAllowed( int slot ); + std::vector getItems( const Touch::InventoryPane* forPane ); +private: + //void addItem(Recipe* recipe); + void recheckRecipes(); + + void clearItems(); + void updateResult(const ItemInstance* item); + void setupInventoryPane(); + void updateItems(); + + void drawSlotItemAt(Tesselator& t, const ItemInstance* item, int x, int y, bool selected); + ItemInstance moveOver(const ItemInstance* item, int maxCount); + void takeAndClearSlot( int slot ); + bool handleAddItem( int slot, const ItemInstance* item ); + void handleRenderPane(Touch::InventoryPane* pane, Tesselator& t, int xm, int ym, float a); + bool canMoveToFurnace(int inventorySlot, const ItemInstance* item); + ItemList _items; + + std::string currentItemDesc; + ItemInstance burnResult; + float descWidth; + ImageButton btnClose; + BlankButton btnIngredient; + BlankButton btnFuel; + BlankButton btnResult; + Touch::THeader bHeader; + + Touch::InventoryPane* inventoryPane; + IntRectangle inventoryPaneRect; + + ItemList listFuel; + ItemList listIngredient; + std::vector inventorySlots; + std::vector inventoryItems; + bool doRecreatePane; + + int selectedSlot; + int lastBurnTypeId; + + // GUI elements such as 9-Patches + NinePatchLayer* guiBackground; + NinePatchLayer* guiSlot; + NinePatchLayer* guiSlotMarked; + NinePatchLayer* guiSlotMarker; + NinePatchLayer* guiPaneFrame; + Player* player; + FurnaceTileEntity* furnace; +}; + +#endif /*_FURNACESCREEN_H__*/ diff --git a/src/client/gui/screens/InBedScreen.cpp b/src/client/gui/screens/InBedScreen.cpp new file mode 100755 index 0000000..ef6dd95 --- /dev/null +++ b/src/client/gui/screens/InBedScreen.cpp @@ -0,0 +1,49 @@ +#include "InBedScreen.h" +#include "ScreenChooser.h" +#include "../components/Button.h" +#include "../../Minecraft.h" +#include "../../player/LocalPlayer.h" +#include "../../../platform/time.h" + +static const int WAIT_TICKS = 30; + +InBedScreen::InBedScreen() + : bWakeUp(0) +{ +} + +InBedScreen::~InBedScreen() { + delete bWakeUp; +} + +void InBedScreen::init() { + if (minecraft->useTouchscreen()) { + bWakeUp = new Touch::TButton(1, "Leave Bed"); + } else { + bWakeUp = new Button(1, "Leave Bed"); + } + buttons.push_back(bWakeUp); + + tabButtons.push_back(bWakeUp); +} + +void InBedScreen::setupPositions() { + bWakeUp->width = width / 2; + bWakeUp->height = int(height * 0.2f); + bWakeUp->y = height - int(bWakeUp->height * 1.5); + bWakeUp->x = width/2 - bWakeUp->width/2; +} + +void InBedScreen::render( int xm, int ym, float a ) { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + Screen::render(xm, ym, a); + glDisable(GL_BLEND); +} + +void InBedScreen::buttonClicked( Button* button ) { + if (button == bWakeUp) { + minecraft->player->stopSleepInBed(true, true, true); + minecraft->setScreen(NULL); + } +} diff --git a/src/client/gui/screens/InBedScreen.h b/src/client/gui/screens/InBedScreen.h new file mode 100755 index 0000000..1004088 --- /dev/null +++ b/src/client/gui/screens/InBedScreen.h @@ -0,0 +1,26 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__InBedScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__InBedScreen_H__ + +#include "../Screen.h" +class Button; + +class InBedScreen: public Screen +{ +public: + InBedScreen(); + + virtual ~InBedScreen(); + + void init(); + + void setupPositions(); + + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + +private: + Button* bWakeUp; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__InBedScreen_H__*/ diff --git a/src/client/gui/screens/IngameBlockSelectionScreen.cpp b/src/client/gui/screens/IngameBlockSelectionScreen.cpp new file mode 100755 index 0000000..bc6fc64 --- /dev/null +++ b/src/client/gui/screens/IngameBlockSelectionScreen.cpp @@ -0,0 +1,322 @@ +#include "IngameBlockSelectionScreen.h" +#include "../../renderer/TileRenderer.h" +#include "../../player/LocalPlayer.h" +#include "../../renderer/gles.h" +#include "../../Minecraft.h" +#include "../../sound/SoundEngine.h" +#include "../../../world/entity/player/Inventory.h" +#include "../../../platform/input/Mouse.h" + +#include "../Gui.h" +#include "../../renderer/Textures.h" +#include "../../gamemode/GameMode.h" +#include "ArmorScreen.h" +#include "../components/Button.h" + +#if defined(__APPLE__) + static const std::string demoVersionString("Not available in the Lite version"); +#else + static const std::string demoVersionString("Not available in the demo version"); +#endif + +IngameBlockSelectionScreen::IngameBlockSelectionScreen() +: selectedItem(0), + _area(0,0,0,0), + _pendingQuit(false), + InventoryRows(1), + InventoryCols(1), + InventorySize(1), + bArmor(1, "Armor") +{ +} + +void IngameBlockSelectionScreen::init() +{ + Inventory* inventory = minecraft->player->inventory; + InventoryCols = minecraft->isCreativeMode()? 13 : 9; + InventorySize = inventory->getContainerSize() - Inventory::MAX_SELECTION_SIZE; + InventoryRows = 1 + (InventorySize - 1) / InventoryCols; + + _area = RectangleArea( (float)getSlotPosX(0) - 4, + (float)getSlotPosY(0) - 4, + (float)getSlotPosX(InventoryCols) + 4, + (float)getSlotPosY(InventoryRows) + 4); + + ItemInstance* selected = inventory->getSelected(); + if (!selected || selected->isNull()) { + selectedItem = 0; + return; + } + + for (int i = Inventory::MAX_SELECTION_SIZE; i < InventorySize; i++) { + if (selected == minecraft->player->inventory->getItem(i)) + { + selectedItem = i - Inventory::MAX_SELECTION_SIZE; + break; + } + } + if (!isAllowed(selectedItem)) + selectedItem = 0; + + if (!minecraft->isCreativeMode()) { + bArmor.width = 42; + bArmor.x = 0; + bArmor.y = height - bArmor.height; + buttons.push_back(&bArmor); + } +} + +void IngameBlockSelectionScreen::removed() +{ + minecraft->gui.inventoryUpdated(); +} + +void IngameBlockSelectionScreen::renderSlots() +{ + //static Stopwatch w; + //w.start(); + + glColor4f2(1, 1, 1, 1); + + blitOffset = -90; + + //glEnable2(GL_RESCALE_NORMAL); + //glPushMatrix2(); + //glRotatef2(180, 1, 0, 0); + //Lighting::turnOn(); + //glPopMatrix2(); + + minecraft->textures->loadAndBindTexture("gui/gui.png"); + for (int r = 0; r < InventoryRows; r++) + { + int x = getSlotPosX(0) - 3; + int y = getSlotPosY(r) - 3; + + if (InventoryCols == 9) { + blit(x, y, 0, 0, 182, 22); + } else { + // first 8 slots + blit(x, y, 0, 0, 182-20, 22); + // last k slots + const int k = 5; + const int w = k * 20; + blit(x + 162, y, 182-w, 0, w, 22); + } + } + if (selectedItem >= 0) + { + int x = getSlotPosX(selectedItem % InventoryCols) - 4;// width / 2 - 182 / 2 - 1 + () * 20; + int y = getSlotPosY(selectedItem / InventoryCols) - 4;// height - 22 * 3 - 1 - (selectedItem / InventoryCols) * 22; + blit(x, y, 0, 22, 24, 22); + } + + for (int r = 0; r < InventoryRows; r++) + { + int y = getSlotPosY(r); + for (int i = 0; i < InventoryCols; i++) { + int x = getSlotPosX(i); + renderSlot(r * InventoryCols + i + Inventory::MAX_SELECTION_SIZE, x, y, 0); + } + } + + //w.stop(); + //w.printEvery(1000, "render-blocksel"); + + //glDisable2(GL_RESCALE_NORMAL); + //Lighting::turnOn(); +} + +int IngameBlockSelectionScreen::getSlotPosX(int slotX) { + return width / 2 - InventoryCols * 10 + slotX * 20 + 2; +} + +int IngameBlockSelectionScreen::getSlotPosY(int slotY) { + //return height - 63 - 22 * (3 - slotY); + int yy = InventoryCols==9? 8 : 3; + return yy + slotY * getSlotHeight(); +} + +//int IngameBlockSelectionScreen::getLinearSlotId(int x, int y) { +// return +//} + + +#include "../../../world/item/ItemInstance.h" +#include "../../renderer/entity/ItemRenderer.h" + +void IngameBlockSelectionScreen::renderSlot(int slot, int x, int y, float a) +{ + ItemInstance* item = minecraft->player->inventory->getItem(slot); + if (!item) return; + + ItemRenderer::renderGuiItem(minecraft->font, minecraft->textures, item, (float)x, (float)y, true); + + if (minecraft->gameMode->isCreativeType()) return; + if (!isAllowed(slot - Inventory::MAX_SELECTION_SIZE)) return; + + glPushMatrix2(); + glScalef2(Gui::InvGuiScale + Gui::InvGuiScale, Gui::InvGuiScale + Gui::InvGuiScale, 1); + const float k = 0.5f * Gui::GuiScale; + minecraft->gui.renderSlotText(item, k*x, k*y, true, true); + glPopMatrix2(); +} + +void IngameBlockSelectionScreen::keyPressed(int eventKey) +{ + int selX = selectedItem % InventoryCols; + int selY = selectedItem / InventoryCols; + + int tmpSelectedSlot = selectedItem; + + Options& o = minecraft->options; + if (eventKey == o.keyLeft.key && selX > 0) + { + tmpSelectedSlot -= 1; + } + else if (eventKey == o.keyRight.key && selX < (InventoryCols - 1)) + { + tmpSelectedSlot += 1; + } + else if (eventKey == o.keyDown.key && selY < (InventoryRows - 1)) + { + tmpSelectedSlot += InventoryCols; + } + else if (eventKey == o.keyUp.key && selY > 0) + { + tmpSelectedSlot -= InventoryCols; + } + + if (isAllowed(tmpSelectedSlot)) + selectedItem = tmpSelectedSlot; + + if (eventKey == o.keyMenuOk.key) + selectSlotAndClose(); + +#ifdef RPI + if (eventKey == o.keyMenuCancel.key + || eventKey == Keyboard::KEY_ESCAPE) + minecraft->setScreen(NULL); +#else + if (eventKey == o.keyMenuCancel.key) + minecraft->setScreen(NULL); +#endif +} + +int IngameBlockSelectionScreen::getSelectedSlot(int x, int y) +{ + int left = width / 2 - InventoryCols * 10; + int top = -4 + getSlotPosY(0); + + if (x >= left && y >= top) + { + int xSlot = (x - left) / 20; + if (xSlot < InventoryCols) { + int row = ((y-top) / getSlotHeight()); + return row * InventoryCols + xSlot; + } + } + return -1; +} + +void IngameBlockSelectionScreen::mouseClicked(int x, int y, int buttonNum) +{ + if (buttonNum == MouseAction::ACTION_LEFT) { + + int slot = getSelectedSlot(x, y); + if (isAllowed(slot)) + { + selectedItem = slot; + //minecraft->soundEngine->playUI("random.click", 1, 1); + } else { + _pendingQuit = !_area.isInside((float)x, (float)y) + && !bArmor.isInside(x, y); + } + } + if (!_pendingQuit) + super::mouseClicked(x, y, buttonNum); +} + +void IngameBlockSelectionScreen::mouseReleased(int x, int y, int buttonNum) +{ + if (buttonNum == MouseAction::ACTION_LEFT) { + + int slot = getSelectedSlot(x, y); + if (isAllowed(slot) && slot == selectedItem) + { + selectSlotAndClose(); + } else { + if (_pendingQuit && !_area.isInside((float)x, (float)y)) + minecraft->setScreen(NULL); + } + } + if (!_pendingQuit) + super::mouseReleased(x, y, buttonNum); +} + +void IngameBlockSelectionScreen::selectSlotAndClose() +{ + Inventory* inventory = minecraft->player->inventory; + // Flash the selected gui item + //inventory->moveToSelectedSlot(selectedItem + Inventory::MAX_SELECTION_SIZE, true); + inventory->moveToSelectionSlot(0, selectedItem + Inventory::MAX_SELECTION_SIZE, true); + inventory->selectSlot(0); + minecraft->gui.flashSlot(inventory->selected); + + minecraft->soundEngine->playUI("random.click", 1, 1); + minecraft->setScreen(NULL); +} + +void IngameBlockSelectionScreen::render( int xm, int ym, float a ) +{ + glDisable2(GL_DEPTH_TEST); + fill(0, 0, width, height, (0x80) << 24); + glEnable2(GL_BLEND); + + glDisable2(GL_ALPHA_TEST); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + renderSlots(); + renderDemoOverlay(); + + glEnable2(GL_ALPHA_TEST); + glDisable2(GL_BLEND); + + glEnable2(GL_DEPTH_TEST); + + Screen::render(xm, ym, a); +} + +void IngameBlockSelectionScreen::renderDemoOverlay() { +#ifdef DEMO_MODE + fill( getSlotPosX(0) - 3, getSlotPosY(3) - 3, + getSlotPosX(InventoryCols) - 3, getSlotPosY(InventoryRows) - 3, 0xa0 << 24); + + const int centerX = (getSlotPosX(4) + getSlotPosX(5)) / 2; + const int centerY = (getSlotPosY(3) + getSlotPosY(InventoryRows-1)) / 2 + 5; + drawCenteredString(minecraft->font, demoVersionString, centerX, centerY, 0xffffffff); +#endif /*DEMO_MODE*/ +} + +bool IngameBlockSelectionScreen::isAllowed(int slot) { + if (slot < 0 || slot >= InventorySize) + return false; + + #ifdef DEMO_MODE + return slot < (minecraft->isCreativeMode()? 28 : 27); + #endif /*DEMO_MODE*/ + + return true; +} + +int IngameBlockSelectionScreen::getSlotHeight() { + return InventoryCols==9? 22 : 20; +} + +void IngameBlockSelectionScreen::buttonClicked( Button* button ) +{ + if (button == &bArmor) { + minecraft->setScreen(new ArmorScreen()); + } + super::buttonClicked(button); +} diff --git a/src/client/gui/screens/IngameBlockSelectionScreen.h b/src/client/gui/screens/IngameBlockSelectionScreen.h new file mode 100755 index 0000000..df8bacf --- /dev/null +++ b/src/client/gui/screens/IngameBlockSelectionScreen.h @@ -0,0 +1,56 @@ +#ifndef _MINECRAFT_INGAMEBLOCKSELECTIONSCREEN_H_ +#define _MINECRAFT_INGAMEBLOCKSELECTIONSCREEN_H_ + +#include "../Screen.h" +#include "../../player/input/touchscreen/TouchAreaModel.h" +#include "../components/Button.h" + +class IngameBlockSelectionScreen : public Screen +{ + typedef Screen super; +public: + IngameBlockSelectionScreen(); + virtual ~IngameBlockSelectionScreen() {} + + virtual void init(); + virtual void removed(); + + void render(int xm, int ym, float a); + +protected: + virtual void mouseClicked(int x, int y, int buttonNum); + virtual void mouseReleased(int x, int y, int buttonNum); + + virtual void buttonClicked(Button* button); + + virtual void keyPressed(int eventKey); +private: + void renderSlots(); + void renderSlot(int slot, int x, int y, float a); + void renderDemoOverlay(); + + int getSelectedSlot(int x, int y); + void selectSlotAndClose(); + + //int getLinearSlotId(int x, int y); + int getSlotPosX(int slotX); + int getSlotPosY(int slotY); + + int getSlotHeight(); + + bool isAllowed(int slot); + +private: + int InventoryCols; + int InventoryRows; + int InventorySize; + + int selectedItem; + bool _pendingQuit; + + Button bArmor; + + RectangleArea _area; +}; + +#endif diff --git a/src/client/gui/screens/InvalidLicenseScreen.h b/src/client/gui/screens/InvalidLicenseScreen.h new file mode 100755 index 0000000..2801521 --- /dev/null +++ b/src/client/gui/screens/InvalidLicenseScreen.h @@ -0,0 +1,107 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__InvalidLicenseScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__InvalidLicenseScreen_H__ + +#include "../Screen.h" +#include "../components/Button.h" +#include "../../Minecraft.h" +#include "../../../LicenseCodes.h" + +class InvalidLicenseScreen: public Screen +{ +public: + InvalidLicenseScreen(int id, bool hasBuyButton) + : _id(id), + _hasBuyButton(hasBuyButton), + _baseY(0), + bOk(0), + bBuy(0) + { + } + + virtual ~InvalidLicenseScreen() { + delete bOk; + delete bBuy; + } + + void init() { + if (minecraft->useTouchscreen()) { + bOk = new Touch::TButton(1, "Ok"); + bBuy = new Touch::TButton(2, "Buy"); + } else { + bOk = new Button(1, "Ok"); + bBuy = new Button(2, "Buy"); + } + + if (_hasBuyButton) + bOk->msg = "Quit"; + + if (!LicenseCodes::isOk(_id)) { + char buf[20] = {0}; + sprintf(buf, "%d", _id); + + desc1 = "License verification failed (error "; + desc1 += buf; + desc1 += ")"; + desc2 = "Try again later."; + hint = "You need to be connected to the internet\n"; + hint += "once while you start the game."; + } + + buttons.push_back(bOk); + tabButtons.push_back(bOk); + + if (_hasBuyButton) { + buttons.push_back(bBuy); + tabButtons.push_back(bBuy); + } + } + + void setupPositions() { + _baseY = height/5 + 6; + //if (_hasBuyButton) + _baseY -= 24; + + bOk->width = bBuy->width = 200; + bOk->x = bBuy->x = (width - bOk->width) / 2; + bBuy->y = _baseY + 84; + bOk->y = bBuy->y + bBuy->height + 4; + + if (!_hasBuyButton) + bOk->y -= 24; + } + + void tick() {} + + //void keyPressed(int eventKey) {} + + void render(int xm, int ym, float a) { + renderDirtBackground(0); + drawCenteredString(minecraft->font, desc1, width/2, _baseY, 0xffffff); + drawCenteredString(minecraft->font, desc2, width/2, _baseY + 24, 0xffffff); + + drawCenteredString(minecraft->font, hint, width/2, _baseY + 60, 0xffffff); + + Screen::render(xm, ym, a); + } + + void buttonClicked(Button* button) { + if (button->id == bOk->id) { + minecraft->quit(); + } + if (button->id == bBuy->id) { + minecraft->platform()->buyGame(); + } + }; +private: + int _id; + std::string desc1; + std::string desc2; + std::string hint; + + Button* bOk; + Button* bBuy; + bool _hasBuyButton; + int _baseY; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__InvalidLicenseScreen_H__*/ diff --git a/src/client/gui/screens/JoinGameScreen.cpp b/src/client/gui/screens/JoinGameScreen.cpp new file mode 100755 index 0000000..8626103 --- /dev/null +++ b/src/client/gui/screens/JoinGameScreen.cpp @@ -0,0 +1,167 @@ +#include "JoinGameScreen.h" +#include "StartMenuScreen.h" +#include "ProgressScreen.h" +#include "../Font.h" +#include "../../../network/RakNetInstance.h" + +JoinGameScreen::JoinGameScreen() +: bJoin( 2, "Join Game"), + bBack( 3, "Back"), + gamesList(NULL) +{ + bJoin.active = false; + //gamesList->yInertia = 0.5f; +} + +JoinGameScreen::~JoinGameScreen() +{ + delete gamesList; +} + +void JoinGameScreen::buttonClicked(Button* button) +{ + if (button->id == bJoin.id) + { + if (isIndexValid(gamesList->selectedItem)) + { + PingedCompatibleServer selectedServer = gamesList->copiedServerList[gamesList->selectedItem]; + minecraft->joinMultiplayer(selectedServer); + { + bJoin.active = false; + bBack.active = false; + minecraft->setScreen(new ProgressScreen()); + } + } + //minecraft->locateMultiplayer(); + //minecraft->setScreen(new JoinGameScreen()); + } + if (button->id == bBack.id) + { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } +} + +bool JoinGameScreen::handleBackEvent(bool isDown) +{ + if (!isDown) + { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + return true; +} + + +bool JoinGameScreen::isIndexValid( int index ) +{ + return gamesList && index >= 0 && index < gamesList->getNumberOfItems(); +} + +void JoinGameScreen::tick() +{ + const ServerList& orgServerList = minecraft->raknetInstance->getServerList(); + ServerList serverList; + for (unsigned int i = 0; i < orgServerList.size(); ++i) + if (orgServerList[i].name.GetLength() > 0) + serverList.push_back(orgServerList[i]); + + if (serverList.size() != gamesList->copiedServerList.size()) + { + // copy the currently selected item + PingedCompatibleServer selectedServer; + bool hasSelection = false; + if (isIndexValid(gamesList->selectedItem)) + { + selectedServer = gamesList->copiedServerList[gamesList->selectedItem]; + hasSelection = true; + } + + gamesList->copiedServerList = serverList; + gamesList->selectItem(-1, false); + + // re-select previous item if it still exists + if (hasSelection) + { + for (unsigned int i = 0; i < gamesList->copiedServerList.size(); i++) + { + if (gamesList->copiedServerList[i].address == selectedServer.address) + { + gamesList->selectItem(i, false); + break; + } + } + } + } else { + for (int i = (int)gamesList->copiedServerList.size()-1; i >= 0 ; --i) { + for (int j = 0; j < (int) serverList.size(); ++j) + if (serverList[j].address == gamesList->copiedServerList[i].address) + gamesList->copiedServerList[i].name = serverList[j].name; + } + } + + bJoin.active = isIndexValid(gamesList->selectedItem); +} + +void JoinGameScreen::init() +{ + buttons.push_back(&bJoin); + buttons.push_back(&bBack); + + minecraft->raknetInstance->clearServerList(); + gamesList = new AvailableGamesList(minecraft, width, height); + +#ifdef ANDROID + tabButtons.push_back(&bJoin); + tabButtons.push_back(&bBack); +#endif +} + +void JoinGameScreen::setupPositions() { + int yBase = height - 26; + + //#ifdef ANDROID + bJoin.y = yBase; + bBack.y = yBase; + + bBack.width = bJoin.width = 120; + //#endif + + // Center buttons + bJoin.x = width / 2 - 4 - bJoin.width; + bBack.x = width / 2 + 4; +} + +void JoinGameScreen::render( int xm, int ym, float a ) +{ + bool hasNetwork = minecraft->platform()->isNetworkEnabled(true); +#ifdef WIN32 + hasNetwork = hasNetwork && !GetAsyncKeyState(VK_TAB); +#endif + + renderBackground(); + if (hasNetwork) gamesList->render(xm, ym, a); + Screen::render(xm, ym, a); + + if (hasNetwork) { +#ifdef RPI + std::string s = "Scanning for Local Network Games..."; +#else + std::string s = "Scanning for WiFi Games..."; +#endif + drawCenteredString(minecraft->font, s, width / 2, 8, 0xffffffff); + + const int textWidth = minecraft->font->width(s); + const int spinnerX = width/2 + textWidth / 2 + 6; + + static const char* spinnerTexts[] = {"-", "\\", "|", "/"}; + int n = ((int)(5.5f * getTimeS()) % 4); + drawCenteredString(minecraft->font, spinnerTexts[n], spinnerX, 8, 0xffffffff); + } else { + std::string s = "WiFi is disabled"; + const int yy = height / 2 - 8; + drawCenteredString(minecraft->font, s, width / 2, yy, 0xffffffff); + } +} + +bool JoinGameScreen::isInGameScreen() { return false; } diff --git a/src/client/gui/screens/JoinGameScreen.h b/src/client/gui/screens/JoinGameScreen.h new file mode 100755 index 0000000..f4d5cbc --- /dev/null +++ b/src/client/gui/screens/JoinGameScreen.h @@ -0,0 +1,71 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__JoinGameScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__JoinGameScreen_H__ + +#include "../Screen.h" +#include "../components/Button.h" +#include "../components/SmallButton.h" +#include "../components/ScrolledSelectionList.h" +#include "../../Minecraft.h" +#include "../../../network/RakNetInstance.h" + + +class JoinGameScreen; + +class AvailableGamesList : public ScrolledSelectionList +{ + int selectedItem; + ServerList copiedServerList; + + friend class JoinGameScreen; + +public: + + AvailableGamesList(Minecraft* _minecraft, int _width, int _height) + : ScrolledSelectionList(_minecraft, _width, _height, 24, _height - 30, 28) + { + } + +protected: + + virtual int getNumberOfItems() { return (int)copiedServerList.size(); } + + virtual void selectItem(int item, bool doubleClick) { selectedItem = item; } + virtual bool isSelectedItem(int item) { return item == selectedItem; } + + virtual void renderBackground() {} + virtual void renderItem(int i, int x, int y, int h, Tesselator& t) + { + const PingedCompatibleServer& s = copiedServerList[i]; + unsigned int color = s.isSpecial? 0xff00b0 : 0xffffa0; + drawString(minecraft->font, s.name.C_String(), x, y + 2, color); + drawString(minecraft->font, s.address.ToString(false), x, y + 16, 0xffffa0); + } +}; + +class JoinGameScreen: public Screen +{ +public: + JoinGameScreen(); + virtual ~JoinGameScreen(); + + void init(); + void setupPositions(); + + virtual bool handleBackEvent(bool isDown); + + virtual bool isIndexValid(int index); + + virtual void tick(); + + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + + bool isInGameScreen(); +private: + Button bJoin; + Button bBack; + AvailableGamesList* gamesList; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__JoinGameScreen_H__*/ diff --git a/src/client/gui/screens/OptionsScreen.cpp b/src/client/gui/screens/OptionsScreen.cpp new file mode 100755 index 0000000..a20d800 --- /dev/null +++ b/src/client/gui/screens/OptionsScreen.cpp @@ -0,0 +1,181 @@ +#include "OptionsScreen.h" + +#include "StartMenuScreen.h" +#include "DialogDefinitions.h" +#include "../../Minecraft.h" +#include "../../../AppPlatform.h" + +#include "../components/OptionsPane.h" +#include "../components/ImageButton.h" +#include "../components/OptionsGroup.h" +OptionsScreen::OptionsScreen() +: btnClose(NULL), + bHeader(NULL), + selectedCategory(0) { +} + +OptionsScreen::~OptionsScreen() { + if(btnClose != NULL) { + delete btnClose; + btnClose = NULL; + } + if(bHeader != NULL) { + delete bHeader, + bHeader = NULL; + } + for(std::vector::iterator it = categoryButtons.begin(); it != categoryButtons.end(); ++it) { + if(*it != NULL) { + delete *it; + *it = NULL; + } + } + for(std::vector::iterator it = optionPanes.begin(); it != optionPanes.end(); ++it) { + if(*it != NULL) { + delete *it; + *it = NULL; + } + } + categoryButtons.clear(); +} + +void OptionsScreen::init() { + bHeader = new Touch::THeader(0, "Options"); + btnClose = new ImageButton(1, ""); + ImageDef def; + def.name = "gui/touchgui.png"; + def.width = 34; + def.height = 26; + + def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height)); + btnClose->setImageDef(def, true); + + categoryButtons.push_back(new Touch::TButton(2, "Login")); + categoryButtons.push_back(new Touch::TButton(3, "Game")); + categoryButtons.push_back(new Touch::TButton(4, "Controls")); + categoryButtons.push_back(new Touch::TButton(5, "Graphics")); + buttons.push_back(bHeader); + buttons.push_back(btnClose); + for(std::vector::iterator it = categoryButtons.begin(); it != categoryButtons.end(); ++it) { + buttons.push_back(*it); + tabButtons.push_back(*it); + } + generateOptionScreens(); + +} +void OptionsScreen::setupPositions() { + int buttonHeight = btnClose->height; + btnClose->x = width - btnClose->width; + btnClose->y = 0; + int offsetNum = 1; + for(std::vector::iterator it = categoryButtons.begin(); it != categoryButtons.end(); ++it) { + (*it)->x = 0; + (*it)->y = offsetNum * buttonHeight; + (*it)->selected = false; + offsetNum++; + } + bHeader->x = 0; + bHeader->y = 0; + bHeader->width = width - btnClose->width; + bHeader->height = btnClose->height; + for(std::vector::iterator it = optionPanes.begin(); it != optionPanes.end(); ++it) { + if(categoryButtons.size() > 0 && categoryButtons[0] != NULL) { + (*it)->x = categoryButtons[0]->width; + (*it)->y = bHeader->height; + (*it)->width = width - categoryButtons[0]->width; + (*it)->setupPositions(); + } + } + selectCategory(0); +} + +void OptionsScreen::render( int xm, int ym, float a ) { + renderBackground(); + super::render(xm, ym, a); + int xmm = xm * width / minecraft->width; + int ymm = ym * height / minecraft->height - 1; + if(currentOptionPane != NULL) + currentOptionPane->render(minecraft, xmm, ymm); +} + +void OptionsScreen::removed() +{ +} +void OptionsScreen::buttonClicked( Button* button ) { + if(button == btnClose) { + minecraft->reloadOptions(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } else if(button->id > 1 && button->id < 7) { + // This is a category button + int categoryButton = button->id - categoryButtons[0]->id; + selectCategory(categoryButton); + } +} + +void OptionsScreen::selectCategory( int index ) { + int currentIndex = 0; + for(std::vector::iterator it = categoryButtons.begin(); it != categoryButtons.end(); ++it) { + if(index == currentIndex) { + (*it)->selected = true; + } else { + (*it)->selected = false; + } + currentIndex++; + } + if(index < (int)optionPanes.size()) + currentOptionPane = optionPanes[index]; +} + +void OptionsScreen::generateOptionScreens() { + optionPanes.push_back(new OptionsPane()); + optionPanes.push_back(new OptionsPane()); + optionPanes.push_back(new OptionsPane()); + optionPanes.push_back(new OptionsPane()); + // Mojang Pane + optionPanes[0]->createOptionsGroup("options.group.mojang") + //.addOptionItem(&Options::Option::THIRD_PERSON, minecraft); + .addOptionItem(&Options::Option::SENSITIVITY, minecraft); +// int mojangGroup = optionPanes[0]->createOptionsGroup("Mojang"); +// static const int arr[] = {5,4,3,15}; +// std::vector vec (arr, arr + sizeof(arr) / sizeof(arr[0]) ); +// optionPanes[0]->createStepSlider(minecraft, mojangGroup, "This works?", &Options::Option::DIFFICULTY, vec); +// +// // Game Pane +// int gameGroup = optionPanes[1]->createOptionsGroup("Game"); +// optionPanes[1]->createToggle(gameGroup, "Third person camera", &Options::Option::THIRD_PERSON); +// optionPanes[1]->createToggle(gameGroup, "Server visible", &Options::Option::SERVER_VISIBLE); +// +// // Input Pane +// int controlsGroup = optionPanes[2]->createOptionsGroup("Controls"); +// optionPanes[2]->createToggle(controlsGroup, "Invert X-axis", &Options::Option::INVERT_MOUSE); +// optionPanes[2]->createToggle(controlsGroup, "Lefty", &Options::Option::LEFT_HANDED); +// optionPanes[2]->createToggle(controlsGroup, "Use touch screen", &Options::Option::USE_TOUCHSCREEN); +// optionPanes[2]->createToggle(controlsGroup, "Split touch controls", &Options::Option::USE_TOUCH_JOYPAD); +// int feedBackGroup = optionPanes[2]->createOptionsGroup("Feedback"); +// optionPanes[2]->createToggle(feedBackGroup, "Vibrate on destroy", &Options::Option::DESTROY_VIBRATION); +// +// int graphicsGroup = optionPanes[3]->createOptionsGroup("Graphics"); +// optionPanes[3]->createProgressSlider(minecraft, graphicsGroup, "Gui Scale", &Options::Option::PIXELS_PER_MILLIMETER, 3, 4); +// optionPanes[3]->createToggle(graphicsGroup, "Fancy Graphics", &Options::Option::INVERT_MOUSE); +// optionPanes[3]->createToggle(graphicsGroup, "Fancy Skies", &Options::Option::INVERT_MOUSE); +// optionPanes[3]->createToggle(graphicsGroup, "Animated water", &Options::Option::INVERT_MOUSE); +// int experimentalGraphicsGroup = optionPanes[3]->createOptionsGroup("Experimental graphics"); +// optionPanes[3]->createToggle(experimentalGraphicsGroup, "Soft shadows", &Options::Option::INVERT_MOUSE); +} + +void OptionsScreen::mouseClicked( int x, int y, int buttonNum ) { + if(currentOptionPane != NULL) + currentOptionPane->mouseClicked(minecraft, x, y, buttonNum); + super::mouseClicked(x, y, buttonNum); +} + +void OptionsScreen::mouseReleased( int x, int y, int buttonNum ) { + if(currentOptionPane != NULL) + currentOptionPane->mouseReleased(minecraft, x, y, buttonNum); + super::mouseReleased(x, y, buttonNum); +} + +void OptionsScreen::tick() { + if(currentOptionPane != NULL) + currentOptionPane->tick(minecraft); + super::tick(); +} diff --git a/src/client/gui/screens/OptionsScreen.h b/src/client/gui/screens/OptionsScreen.h new file mode 100755 index 0000000..95c1d98 --- /dev/null +++ b/src/client/gui/screens/OptionsScreen.h @@ -0,0 +1,38 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__OptionsScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__OptionsScreen_H__ + +#include "../Screen.h" +#include "../components/Button.h" + +class ImageButton; +class OptionsPane; + +class OptionsScreen: public Screen +{ + typedef Screen super; + void init(); + + void generateOptionScreens(); + +public: + OptionsScreen(); + ~OptionsScreen(); + void setupPositions(); + void buttonClicked( Button* button ); + void render(int xm, int ym, float a); + void removed(); + void selectCategory(int index); + + virtual void mouseClicked( int x, int y, int buttonNum ); + virtual void mouseReleased( int x, int y, int buttonNum ); + virtual void tick(); +private: + Touch::THeader* bHeader; + ImageButton* btnClose; + std::vector categoryButtons; + std::vector optionPanes; + OptionsPane* currentOptionPane; + int selectedCategory; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__OptionsScreen_H__*/ diff --git a/src/client/gui/screens/PauseScreen.cpp b/src/client/gui/screens/PauseScreen.cpp new file mode 100755 index 0000000..ca3d4d6 --- /dev/null +++ b/src/client/gui/screens/PauseScreen.cpp @@ -0,0 +1,189 @@ +#include "PauseScreen.h" +#include "StartMenuScreen.h" +#include "../components/ImageButton.h" +#include "../../Minecraft.h" +#include "../../../util/Mth.h" +#include "../../../network/RakNetInstance.h" +#include "../../../network/ServerSideNetworkHandler.h" + +PauseScreen::PauseScreen(bool wasBackPaused) +: saveStep(0), + visibleTime(0), + bContinue(0), + bQuit(0), + bQuitAndSaveLocally(0), + bServerVisibility(0), +// bThirdPerson(0), + wasBackPaused(wasBackPaused), + bSound(&Options::Option::SOUND, 1, 0), + bThirdPerson(&Options::Option::THIRD_PERSON), + bHideGui(&Options::Option::HIDE_GUI) +{ + ImageDef def; + def.setSrc(IntRectangle(160, 144, 39, 31)); + def.name = "gui/touchgui.png"; + IntRectangle& defSrc = *def.getSrc(); + + def.width = defSrc.w * 0.666667f; + def.height = defSrc.h * 0.666667f; + + bSound.setImageDef(def, true); + defSrc.y += defSrc.h; + bThirdPerson.setImageDef(def, true); + bHideGui.setImageDef(def, true); + //void setImageDef(ImageDef& imageDef, bool setButtonSize); +} + +PauseScreen::~PauseScreen() { + delete bContinue; + delete bQuit; + delete bQuitAndSaveLocally; + delete bServerVisibility; +// delete bThirdPerson; +} + +void PauseScreen::init() { + if (minecraft->useTouchscreen()) { + bContinue = new Touch::TButton(1, "Back to game"); + bQuit = new Touch::TButton(2, "Quit to title"); + bQuitAndSaveLocally = new Touch::TButton(3, "Quit and copy map"); + bServerVisibility = new Touch::TButton(4, ""); +// bThirdPerson = new Touch::TButton(5, "Toggle 3:rd person view"); + } else { + bContinue = new Button(1, "Back to game"); + bQuit = new Button(2, "Quit to title"); + bQuitAndSaveLocally = new Button(3, "Quit and copy map"); + bServerVisibility = new Button(4, ""); +// bThirdPerson = new Button(5, "Toggle 3:rd person view"); + } + + buttons.push_back(bContinue); + buttons.push_back(bQuit); + + bSound.updateImage(&minecraft->options); + bThirdPerson.updateImage(&minecraft->options); + bHideGui.updateImage(&minecraft->options); + buttons.push_back(&bSound); + buttons.push_back(&bThirdPerson); + //buttons.push_back(&bHideGui); + + // If Back wasn't pressed, set up additional items (more than Quit to menu + // and Back to game) here + + #if !defined(APPLE_DEMO_PROMOTION) && !defined(RPI) + if (true || !wasBackPaused) { + if (minecraft->raknetInstance) { + if (minecraft->raknetInstance->isServer()) { + updateServerVisibilityText(); + buttons.push_back(bServerVisibility); + } + else { + #if !defined(DEMO_MODE) + buttons.push_back(bQuitAndSaveLocally); + #endif + } + } + } + #endif +// buttons.push_back(bThirdPerson); + + for (unsigned int i = 0; i < buttons.size(); ++i) { + if (buttons[i] == &bSound) continue; + if (buttons[i] == &bThirdPerson) continue; + if (buttons[i] == &bHideGui) continue; + tabButtons.push_back(buttons[i]); + } +} + +void PauseScreen::setupPositions() { + saveStep = 0; + int yBase = 16; + + bContinue->width = bQuit->width = /*bThirdPerson->w =*/ 160; + bQuitAndSaveLocally->width = bServerVisibility->width = 160; + + bContinue->x = (width - bContinue->width) / 2; + bContinue->y = yBase + 32 * 1; + + bQuit->x = (width - bQuit->width) / 2; + bQuit->y = yBase + 32 * 2; + +#if APPLE_DEMO_PROMOTION + bQuit->y += 16; +#endif + + bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2; + bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 3; + + bSound.y = bThirdPerson.y = 8; + bSound.x = 4; + bThirdPerson.x = bSound.x + 4 + bSound.width; + bHideGui.x = bThirdPerson.x + 4 + bThirdPerson.width; + + //bThirdPerson->x = (width - bThirdPerson->w) / 2; + //bThirdPerson->y = yBase + 32 * 4; +} + +void PauseScreen::tick() { + super::tick(); + visibleTime++; +} + +void PauseScreen::render(int xm, int ym, float a) { + renderBackground(); + + //bool isSaving = !minecraft->level.pauseSave(saveStep++); + //if (isSaving || visibleTime < 20) { + // float col = ((visibleTime % 10) + a) / 10.0f; + // col = Mth::sin(col * Mth::PI * 2) * 0.2f + 0.8f; + // int br = (int) (255 * col); + + // drawString(font, "Saving level..", 8, height - 16, br << 16 | br << 8 | br); + //} + + drawCenteredString(font, "Game menu", width / 2, 24, 0xffffff); + + super::render(xm, ym, a); +} + +void PauseScreen::buttonClicked(Button* button) { + if (button->id == bContinue->id) { + minecraft->setScreen(NULL); + //minecraft->grabMouse(); + } + if (button->id == bQuit->id) { + minecraft->leaveGame(); + } + if (button->id == bQuitAndSaveLocally->id) { + minecraft->leaveGame(true); + } + + if (button->id == bServerVisibility->id) { + if (minecraft->raknetInstance && minecraft->netCallback && minecraft->raknetInstance->isServer()) { + ServerSideNetworkHandler* ss = (ServerSideNetworkHandler*) minecraft->netCallback; + bool allows = !ss->allowsIncomingConnections(); + ss->allowIncomingConnections(allows); + + updateServerVisibilityText(); + } + } + + if (button->id == OptionButton::ButtonId) { + ((OptionButton*)button)->toggle(&minecraft->options); + } + + //if (button->id == bThirdPerson->id) { + // minecraft->options.thirdPersonView = !minecraft->options.thirdPersonView; + //} +} + +void PauseScreen::updateServerVisibilityText() +{ + if (!minecraft->raknetInstance || !minecraft->raknetInstance->isServer()) + return; + + ServerSideNetworkHandler* ss = (ServerSideNetworkHandler*) minecraft->netCallback; + bServerVisibility->msg = ss->allowsIncomingConnections()? + "Server is visible" + : "Server is invisible"; +} diff --git a/src/client/gui/screens/PauseScreen.h b/src/client/gui/screens/PauseScreen.h new file mode 100755 index 0000000..1df9dbf --- /dev/null +++ b/src/client/gui/screens/PauseScreen.h @@ -0,0 +1,43 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI__PauseScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI__PauseScreen_H__ + +//package net.minecraft.client.gui; + +#include "../Screen.h" +#include "../components/ImageButton.h" + +class Button; + +class PauseScreen: public Screen +{ + typedef Screen super; +public: + PauseScreen(bool wasBackPaused); + ~PauseScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); +protected: + void buttonClicked(Button* button); +private: + void updateServerVisibilityText(); + + int saveStep; + int visibleTime; + bool wasBackPaused; + + Button* bContinue; + Button* bQuit; + Button* bQuitAndSaveLocally; + Button* bServerVisibility; +// Button* bThirdPerson; + + OptionButton bSound; + OptionButton bThirdPerson; + OptionButton bHideGui; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI__PauseScreen_H__*/ diff --git a/src/client/gui/screens/PrerenderTilesScreen.h b/src/client/gui/screens/PrerenderTilesScreen.h new file mode 100755 index 0000000..faa405d --- /dev/null +++ b/src/client/gui/screens/PrerenderTilesScreen.h @@ -0,0 +1,162 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__PrerenderTilesScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__PrerenderTilesScreen_H__ + +#include "../Screen.h" + +#include "../../renderer/GameRenderer.h" +#include "../../renderer/entity/ItemRenderer.h" +#include "../../../world/item/ItemInstance.h" +#include "../../../world/level/tile/Tile.h" + +#include "../../../world/entity/player/Inventory.h" +#include "../../renderer/Tesselator.h" +#include "../../../world/item/crafting/Recipes.h" +#include "../../../world/item/crafting/FurnaceRecipes.h" +#include "../../../world/level/tile/LeafTile.h" +#include "../../renderer/TileRenderer.h" + +class PrerenderTilesScreen: public Screen +{ +public: + void init() { + Player p(minecraft->level, true); + Inventory _inventory(&p, true); + Inventory* inventory = &_inventory; + + // Copy over the inventory items + for (int i = Inventory::MAX_SELECTION_SIZE; i < inventory->getContainerSize(); ++i) + addItem(inventory->getItem(i)); + + // Fill the inventory with all the recipe items we don't already have: furnace + const FurnaceRecipes::Map& furnaceRecipes = FurnaceRecipes::getInstance()->getRecipes(); + for (FurnaceRecipes::Map::const_iterator cit = furnaceRecipes.begin(); cit != furnaceRecipes.end(); ++cit) { + ItemInstance ingredient(cit->first, 1, 0); + addItem(&ingredient); + ItemInstance result = cit->second; + addItem(&result); + } + + // Fill the inventory with all the recipe items we don't already have: crafting + const RecipeList& recipes = Recipes::getInstance()->getRecipes(); + for (unsigned int i = 0; i < recipes.size(); ++i) { + + std::vector items; + std::vector required = recipes[i]->getItemPack().getItemInstances(); + items.push_back(recipes[i]->getResultItem()); + items.insert(items.end(), required.begin(), required.end()); + + for (unsigned int i = 0; i < items.size(); ++i) { + ItemInstance& item = items[i]; + addItem(&item); + } + } + + // Manually added stuff + // Example: the one that's spawned from tiles when destroyed + int items[] = { + Tile::sapling->id, LeafTile::BIRCH_LEAF, + Tile::sapling->id, LeafTile::EVERGREEN_LEAF, + Tile::sapling->id, LeafTile::NORMAL_LEAF, + Tile::dirt->id, 0, + Tile::reeds->id, 0, + Tile::gravel->id, 0, + Item::apple->id, 0, + Tile::grass_carried->id, 0, + Tile::web->id, 0, + Item::sign->id, 0, + }; + for (int i = 0; i < sizeof(items)/sizeof(int); i += 2) { + ItemInstance item(items[i], 1, items[i+1]); + addItem(&item); + } + } + + void render( int xm, int ym, float a ) { + static Stopwatch w; + w.start(); + + glDisable2(GL_DEPTH_TEST); + fill(0, 0, width, height, 0xffff00ff); + //fill(0, 0, width, height, 0xff333333); + glColor4f2(1, 1, 1, 1); + glEnable2(GL_BLEND); + + LOGI("--------------------\n"); + /*int j = 0; + for (int i = Inventory::MAX_SELECTION_SIZE; i < inventory->getContainerSize(); ++i) { + + ItemInstance* item = inventory->getItem(i); + if (!item) continue; + + //LOGI("desc: %d - %s. %d\n", i, item->toString().c_str()); + + int x = j%16 * 16; + int y = j/16 * 16; + + //Tesselator::instance.color(0xffffffff); + //minecraft->textures->loadAndBindTexture("gui/gui2.png"); + //glColor4f2(0.2f, 0.5f, 0.2f, 1); + //blit(x, y, 4 + 20 * (i%9), 4, 16, 16, 15, 15); + //glColor4f2(1, 1, 1, 1); + + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) { + LOGI("0, %d, %d, %d, 0\n", j, item->id, item->getAuxValue()); + ItemRenderer::renderGuiItemCorrect(minecraft->font, minecraft->textures, item, x, y); + } else if (item->getIcon() >= 0) { + LOGI("1, %d, %d, %d, %d\n", j, item->id, item->getAuxValue(), item->getIcon()); + } + ++j; + }*/ + int j = 0; + for(std::vector::iterator i = mItems.begin(); i != mItems.end(); ++i) { + ItemInstance* item = &(*i); + + //LOGI("desc: %d - %s. %d\n", i, item->toString().c_str()); + + int x = j%16 * 16; + int y = j/16 * 16; + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) { + LOGI("0, %d, %d, %d, 0\n", j, item->id, item->getAuxValue()); + ItemRenderer::renderGuiItemCorrect(minecraft->font, minecraft->textures, item, x, y); + } else if (item->getIcon() >= 0) { + LOGI("1, %d, %d, %d, %d\n", j, item->id, item->getAuxValue(), item->getIcon()); + } + j++; + } + //@todo: blit out something famous here + + //glRotatef2(-180, 1, 0, 0); + glEnable2(GL_DEPTH_TEST); + glDisable2(GL_BLEND); + + w.stop(); + w.printEvery(100, "render-blocksel"); + } + void removed(){} + + void addItem(ItemInstance* item) { + if(item == NULL) + return; + if (item->getAuxValue() < 0) return; + + bool found = false; + for(std::vector::iterator i = mItems.begin(); i != mItems.end(); ++i) { + ItemInstance *jitem = &*i; + if(jitem->id != item->id) continue; + if(jitem->isStackedByData() && jitem->getAuxValue() != item->getAuxValue()) continue; + + found = true; + break; + } + + if (!found) { + LOGI("Adding item: %s\n", item->getDescriptionId().c_str()); + mItems.push_back(*item); + } + } + +private: + std::vector mItems; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__PrerenderTilesScreen_H__*/ diff --git a/src/client/gui/screens/ProgressScreen.cpp b/src/client/gui/screens/ProgressScreen.cpp new file mode 100755 index 0000000..1bab3e5 --- /dev/null +++ b/src/client/gui/screens/ProgressScreen.cpp @@ -0,0 +1,99 @@ +#include "ProgressScreen.h" +#include "DisconnectionScreen.h" +#include "../Gui.h" +#include "../Font.h" +#include "../../Minecraft.h" +#include "../../renderer/Tesselator.h" +#include "../../../SharedConstants.h" +#include "../../renderer/Textures.h" + +ProgressScreen::ProgressScreen() +: ticks(0) +{ +} + +void ProgressScreen::render( int xm, int ym, float a ) +{ + if (minecraft->isLevelGenerated()) { + minecraft->setScreen(NULL); + return; + } + + Tesselator& t = Tesselator::instance; + renderBackground(); + + minecraft->textures->loadAndBindTexture("gui/background.png"); + + const float s = 32; + t.begin(); + t.color(0x404040); + t.vertexUV(0, (float)height, 0, 0, height / s); + t.vertexUV((float)width, (float)height, 0, width / s, height / s); + t.vertexUV((float)width, 0, 0, width / s, 0); + t.vertexUV(0, 0, 0, 0, 0); + t.draw(); + + int i = minecraft->progressStagePercentage; + + if (i >= 0) { + int w = 100; + int h = 2; + int x = width / 2 - w / 2; + int y = height / 2 + 16; + + //printf("%d, %d - %d, %d\n", x, y, x + w, y + h); + + glDisable2(GL_TEXTURE_2D); + t.begin(); + t.color(0x808080); + t.vertex((float)x, (float)y, 0); + t.vertex((float)x, (float)(y + h), 0); + t.vertex((float)(x + w), (float)(y + h), 0); + t.vertex((float)(x + w), (float)y, 0); + + t.color(0x80ff80); + t.vertex((float)x, (float)y, 0); + t.vertex((float)x, (float)(y + h), 0); + t.vertex((float)(x + i), (float)(y + h), 0); + t.vertex((float)(x + i), (float)y, 0); + t.draw(); + glEnable2(GL_TEXTURE_2D); + } + + glEnable2(GL_BLEND); + + const char* title = "Generating world"; + minecraft->font->drawShadow(title, (float)((width - minecraft->font->width(title)) / 2), (float)(height / 2 - 4 - 16), 0xffffff); + + const char* status = minecraft->getProgressMessage(); + const int progressWidth = minecraft->font->width(status); + const int progressLeft = (width - progressWidth) / 2; + const int progressY = height / 2 - 4 + 8; + minecraft->font->drawShadow(status, (float)progressLeft, (float)progressY, 0xffffff); + +#if APPLE_DEMO_PROMOTION + drawCenteredString(minecraft->font, "This demonstration version", width/2, progressY + 36, 0xffffff); + drawCenteredString(minecraft->font, "does not allow saving games", width/2, progressY + 46, 0xffffff); +#endif + + // If we're locating the server, show our famous spinner! + bool isLocating = (minecraft->getProgressStatusId() == 0); + if (isLocating) { + const int spinnerX = progressLeft + progressWidth + 6; + static const char* spinnerTexts[] = {"-", "\\", "|", "/"}; + int n = ((int)(5.5f * getTimeS()) % 4); + drawCenteredString(minecraft->font, spinnerTexts[n], spinnerX, progressY, 0xffffffff); + } + + glDisable2(GL_BLEND); + sleepMs(50); +} + +bool ProgressScreen::isInGameScreen() { return false; } + +void ProgressScreen::tick() { + // After 10 seconds of not connecting -> write an error message and go back + if (++ticks == 10 * SharedConstants::TicksPerSecond && minecraft->getProgressStatusId() == 0) { + minecraft->setScreen( new DisconnectionScreen("Could not connect to server. Try again.") ); + } +} diff --git a/src/client/gui/screens/ProgressScreen.h b/src/client/gui/screens/ProgressScreen.h new file mode 100755 index 0000000..263e346 --- /dev/null +++ b/src/client/gui/screens/ProgressScreen.h @@ -0,0 +1,19 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ProgressScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ProgressScreen_H__ + +#include "../Screen.h" + +class ProgressScreen: public Screen +{ +public: + ProgressScreen(); + + void render(int xm, int ym, float a); + bool isInGameScreen(); + + void tick(); +private: + int ticks; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ProgressScreen_H__*/ diff --git a/src/client/gui/screens/RenameMPLevelScreen.cpp b/src/client/gui/screens/RenameMPLevelScreen.cpp new file mode 100755 index 0000000..7a5a7c3 --- /dev/null +++ b/src/client/gui/screens/RenameMPLevelScreen.cpp @@ -0,0 +1,55 @@ +#include "RenameMPLevelScreen.h" +#include "StartMenuScreen.h" +#include "DialogDefinitions.h" +#include "../Gui.h" +#include "../../Minecraft.h" +#include "../../../AppPlatform.h" +#include "../../../platform/log.h" +#include "../../../world/level/storage/LevelStorageSource.h" + + +static char ILLEGAL_FILE_CHARACTERS[] = { + '/', '\n', '\r', '\t', '\0', '\f', '`', '?', '*', '\\', '<', '>', '|', '\"', ':' +}; + +RenameMPLevelScreen::RenameMPLevelScreen( const std::string& levelId ) +: _levelId(levelId) +{ +} + +void RenameMPLevelScreen::init() { + minecraft->platform()->createUserInput(DialogDefinitions::DIALOG_RENAME_MP_WORLD); +} + +void RenameMPLevelScreen::render(int xm, int ym, float a) +{ + renderBackground(); + + #ifdef WIN32 + minecraft->getLevelSource()->renameLevel(_levelId, "Save?Level"); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + #else + int status = minecraft->platform()->getUserInputStatus(); + if (status > -1) { + if (status == 1) { + std::vector v = minecraft->platform()->getUserInput(); + + if (!v.empty()) { + // Read the level name. + // 1) Trim name 2) Remove all bad chars -) We don't have to getUniqueLevelName, since renameLevel will do that + std::string levelId = v[0]; + + for (int i = 0; i < sizeof(ILLEGAL_FILE_CHARACTERS) / sizeof(char); ++i) + levelId = Util::stringReplace(levelId, std::string(1, ILLEGAL_FILE_CHARACTERS[i]), ""); + if ((int)levelId.length() == 0) { + levelId = "saved_world"; + } + + minecraft->getLevelSource()->renameLevel(_levelId, levelId); + } + } + + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + #endif +} diff --git a/src/client/gui/screens/RenameMPLevelScreen.h b/src/client/gui/screens/RenameMPLevelScreen.h new file mode 100755 index 0000000..02d5fa4 --- /dev/null +++ b/src/client/gui/screens/RenameMPLevelScreen.h @@ -0,0 +1,18 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__RenameMPLevelScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__RenameMPLevelScreen_H__ + +#include "../Screen.h" + +class RenameMPLevelScreen: public Screen +{ +public: + RenameMPLevelScreen(const std::string& levelId); + + virtual void init(); + virtual void render(int xm, int ym, float a); + +private: + std::string _levelId; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__RenameMPLevelScreen_H__*/ \ No newline at end of file diff --git a/src/client/gui/screens/ScreenChooser.cpp b/src/client/gui/screens/ScreenChooser.cpp new file mode 100755 index 0000000..63d0da1 --- /dev/null +++ b/src/client/gui/screens/ScreenChooser.cpp @@ -0,0 +1,56 @@ +#include "ScreenChooser.h" +#include "StartMenuScreen.h" +#include "SelectWorldScreen.h" +#include "JoinGameScreen.h" +#include "PauseScreen.h" +#include "RenameMPLevelScreen.h" +#include "IngameBlockSelectionScreen.h" +#include "touch/TouchStartMenuScreen.h" +#include "touch/TouchSelectWorldScreen.h" +#include "touch/TouchJoinGameScreen.h" +#include "touch/TouchIngameBlockSelectionScreen.h" + +#include "../../Minecraft.h" + +Screen* ScreenChooser::createScreen( ScreenId id ) +{ + Screen* screen = NULL; + + if (_mc->useTouchscreen()) { + switch (id) { + case SCREEN_STARTMENU: screen = new Touch::StartMenuScreen(); break; + case SCREEN_SELECTWORLD:screen = new Touch::SelectWorldScreen();break; + case SCREEN_JOINGAME: screen = new Touch::JoinGameScreen(); break; + case SCREEN_PAUSE: screen = new PauseScreen(false); break; + case SCREEN_PAUSEPREV: screen = new PauseScreen(true); break; + case SCREEN_BLOCKSELECTION: screen = new Touch::IngameBlockSelectionScreen(); break; + + case SCREEN_NONE: + default: + // Do nothing + break; + } + } else { + switch (id) { + case SCREEN_STARTMENU: screen = new StartMenuScreen(); break; + case SCREEN_SELECTWORLD:screen = new SelectWorldScreen();break; + case SCREEN_JOINGAME: screen = new JoinGameScreen(); break; + case SCREEN_PAUSE: screen = new PauseScreen(false); break; + case SCREEN_PAUSEPREV: screen = new PauseScreen(true); break; + case SCREEN_BLOCKSELECTION: screen = new IngameBlockSelectionScreen(); break; + + case SCREEN_NONE: + default: + // Do nothing + break; + } + } + return screen; +} + +Screen* ScreenChooser::setScreen(ScreenId id) +{ + Screen* screen = createScreen(id); + _mc->setScreen(screen); + return screen; +} diff --git a/src/client/gui/screens/ScreenChooser.h b/src/client/gui/screens/ScreenChooser.h new file mode 100755 index 0000000..0979ade --- /dev/null +++ b/src/client/gui/screens/ScreenChooser.h @@ -0,0 +1,30 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__ScreenChooser_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__ScreenChooser_H__ + +enum ScreenId { + SCREEN_NONE, + SCREEN_STARTMENU, + SCREEN_JOINGAME, + SCREEN_PAUSE, + SCREEN_PAUSEPREV, + SCREEN_SELECTWORLD, + SCREEN_BLOCKSELECTION +}; + +class Screen; +class Minecraft; + +class ScreenChooser +{ +public: + ScreenChooser(Minecraft* mc) + : _mc(mc) + {} + + Screen* createScreen(ScreenId id); + Screen* setScreen(ScreenId id); +private: + Minecraft* _mc; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__ScreenChooser_H__*/ diff --git a/src/client/gui/screens/SelectWorldScreen.cpp b/src/client/gui/screens/SelectWorldScreen.cpp new file mode 100755 index 0000000..dd3ebbb --- /dev/null +++ b/src/client/gui/screens/SelectWorldScreen.cpp @@ -0,0 +1,507 @@ +#include "SelectWorldScreen.h" +#include "StartMenuScreen.h" +#include "ProgressScreen.h" +#include "DialogDefinitions.h" +#include "../../renderer/Tesselator.h" +#include "../../../AppPlatform.h" +#include "../../../util/StringUtils.h" +#include "../../../util/Mth.h" +#include "../../../platform/input/Mouse.h" +#include "../../../Performance.h" +#include "../../../world/level/LevelSettings.h" + +#include +#include +#include "../../renderer/Textures.h" +#include "SimpleChooseLevelScreen.h" + +static float Max(float a, float b) { + return a>b? a : b; +} + +// +// World Selection List +// +WorldSelectionList::WorldSelectionList( Minecraft* minecraft, int width, int height ) +: _height(height), + hasPickedLevel(false), + currentTick(0), + stoppedTick(-1), + mode(0), + RolledSelectionListH(minecraft, width, height, 0, width, 26, height-32, 120) +{ +} + +int WorldSelectionList::getNumberOfItems() { + return (int)levels.size(); +} + +void WorldSelectionList::selectItem( int item, bool doubleClick ) { + //LOGI("sel: %d, item %d\n", selectedItem, item); + if (selectedItem < 0 || (selectedItem != item)) + return; + + if (!hasPickedLevel) { + hasPickedLevel = true; + pickedLevel = levels[item]; + } +} + +bool WorldSelectionList::isSelectedItem( int item ) { + return item == selectedItem; +} + +void WorldSelectionList::renderItem( int i, int x, int y, int h, Tesselator& t ) { + + int centerx = x + itemWidth/2; + + float a0 = Max(1.1f - std::abs( width / 2 - centerx ) * 0.0055f, 0.2f); + if (a0 > 1) a0 = 1; + int textColor = (int)(255.0f * a0) * 0x010101; + int textColor2 = (int)(140.0f * a0) * 0x010101; + + const int TY = y + 42; + const int TX = centerx - itemWidth / 2 + 5; + + StringVector v = _descriptions[i]; + drawString(minecraft->font, v[0].c_str(), TX, TY + 0, textColor); + drawString(minecraft->font, v[1].c_str(), TX, TY + 10, textColor2); + drawString(minecraft->font, v[2].c_str(), TX, TY + 20, textColor2); + drawString(minecraft->font, v[3].c_str(), TX, TY + 30, textColor2); + + minecraft->textures->loadAndBindTexture(_imageNames[i]); + t.color(0.3f, 1.0f, 0.2f); + + //float x0 = (float)x; + //float x1 = (float)x + (float)itemWidth; + + const float IY = (float)y - 8; + t.begin(); + t.color(textColor); + t.vertexUV((float)(centerx-32), IY, blitOffset, 0, 0); + t.vertexUV((float)(centerx-32), IY + 48, blitOffset, 0, 1); + t.vertexUV((float)(centerx+32), IY + 48, blitOffset, 1, 1); + t.vertexUV((float)(centerx+32), IY, blitOffset, 1, 0); + t.draw(); +} + +void WorldSelectionList::stepLeft() { + if (selectedItem > 0) { + td.start = xo; + td.stop = xo - itemWidth; + td.cur = 0; + td.dur = 8; + mode = 1; + tweenInited(); + } +} + +void WorldSelectionList::stepRight() { + if (selectedItem >= 0 && selectedItem < getNumberOfItems()-1) { + td.start = xo; + td.stop = xo + itemWidth; + td.cur = 0; + td.dur = 8; + mode = 1; + tweenInited(); + } +} + +void WorldSelectionList::commit() { + for (unsigned int i = 0; i < levels.size(); ++i) { + LevelSummary& level = levels[i]; + + std::stringstream ss; + ss << level.name << "/preview.png"; + TextureId id = Textures::InvalidId;//minecraft->textures->loadTexture(ss.str(), false); + + if (id != Textures::InvalidId) { + _imageNames.push_back( ss.str() ); + } else { + _imageNames.push_back("gui/default_world.png"); + } + + StringVector lines; + lines.push_back(level.name); + lines.push_back(minecraft->platform()->getDateString(level.lastPlayed)); + lines.push_back(level.id); + lines.push_back(LevelSettings::gameTypeToString(level.gameType)); + _descriptions.push_back(lines); + + selectedItem = 0; + } +} + +static float quadraticInOut(float t, float dur, float start, float stop) { + const float delta = stop - start; + const float T = (t / dur) * 2.0f; + if (T < 1) return 0.5f*delta*T*T + start; + return -0.5f*delta * ((T-1)*(T-3) - 1) + start; +} + +void WorldSelectionList::tick() +{ + RolledSelectionListH::tick(); + + ++currentTick; + + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT) || dragState == 0) + return; + + // Handle the tween (when in "mode 1") + selectedItem = -1; + if (mode == 1) { + if (++td.cur == td.dur) { + mode = 0; + xInertia = 0; + xoo = xo = td.stop; + selectedItem = getItemAtPosition(width/2, height/2); + } else { + tweenInited(); + } + return; + } + + // It's still going fast, let it run + float speed = Mth::abs(xInertia); + bool slowEnoughToBeBothered = speed < 5.0f; + if (!slowEnoughToBeBothered) { + xInertia = xInertia * .9f; + return; + } + + xInertia *= 0.8f; + + if (speed < 1 && dragState < 0) { + const int offsetx = (width-itemWidth) / 2; + const float pxo = xo + offsetx; + int index = getItemAtXPositionRaw((int)(pxo - 10*xInertia)); + int indexPos = index*itemWidth; + + // Pick closest + float diff = (float)indexPos - pxo; + if (diff < -itemWidth/2) { + diff += itemWidth; + index++; + //indexPos += itemWidth; + } + if (Mth::abs(diff) < 1 && speed < 0.1f) { + selectedItem = getItemAtPosition(width/2, height/2); + return; + } + + td.start = xo; + td.stop = xo + diff; + td.cur = 0; + td.dur = (float) Mth::Min(7, 1 + (int)(Mth::abs(diff) * 0.25f)); + mode = 1; + //LOGI("inited-t %d\n", dragState); + tweenInited(); + } +} + +float WorldSelectionList::getPos( float alpha ) +{ + if (mode != 1) return RolledSelectionListH::getPos(alpha); + + float x0 = quadraticInOut(td.cur, td.dur, td.start, td.stop); + float x1 = quadraticInOut(td.cur+1, td.dur, td.start, td.stop); + return x0 + (x1-x0)*alpha; +} + +bool WorldSelectionList::capXPosition() { + bool capped = RolledSelectionListH::capXPosition(); + if (capped) mode = 0; + return capped; +} + +void WorldSelectionList::tweenInited() { + float x0 = quadraticInOut(td.cur, td.dur, td.start, td.stop); + float x1 = quadraticInOut(td.cur+1, td.dur, td.start, td.stop); + xInertia = x0-x1; // yes, it's all backwards and messed up.. +} + +// +// Select World Screen +// +SelectWorldScreen::SelectWorldScreen() +: bDelete (1, "Delete"), + bCreate (2, "Create new"), + bBack (3, "Back"), + bWorldView(4, ""), + worldsList(NULL), + _state(_STATE_DEFAULT), + _hasStartedLevel(false) +{ + bDelete.active = false; +} + +SelectWorldScreen::~SelectWorldScreen() +{ + delete worldsList; +} + +void SelectWorldScreen::buttonClicked(Button* button) +{ + if (button->id == bCreate.id) { + //minecraft->setScreen( new CreateWorldScreen() ); + //minecraft->locateMultiplayer(); + //minecraft->setScreen(new JoinGameScreen()); + + //minecraft->hostMultiplayer(); + //minecraft->setScreen(new ProgressScreen()); + + if (_state == _STATE_DEFAULT && !_hasStartedLevel) { + minecraft->platform()->createUserInput(DialogDefinitions::DIALOG_CREATE_NEW_WORLD); + _state = _STATE_CREATEWORLD; + } + } + if (button->id == bDelete.id) { + if (isIndexValid(worldsList->selectedItem)) { + LevelSummary level = worldsList->levels[worldsList->selectedItem]; + LOGI("level: %s, %s\n", level.id.c_str(), level.name.c_str()); + minecraft->setScreen( new DeleteWorldScreen(level) ); + } + } + if (button->id == bBack.id) { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + if (button->id == bWorldView.id) { + // Try to "click" the item in the middle + worldsList->selectItem( worldsList->getItemAtPosition(width/2, height/2), false ); + } +} + +bool SelectWorldScreen::handleBackEvent(bool isDown) +{ + if (!isDown) + { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + return true; +} + +bool SelectWorldScreen::isIndexValid( int index ) +{ + return worldsList && index >= 0 && index < worldsList->getNumberOfItems(); +} + +static char ILLEGAL_FILE_CHARACTERS[] = { + '/', '\n', '\r', '\t', '\0', '\f', '`', '?', '*', '\\', '<', '>', '|', '\"', ':' +}; + +void SelectWorldScreen::tick() +{ + if (_state == _STATE_CREATEWORLD) { + #if defined(RPI) + std::string levelId = getUniqueLevelName("world"); + LevelSettings settings(getEpochTimeS(), GameType::Creative); + minecraft->selectLevel(levelId, levelId, settings); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + _hasStartedLevel = true; + #elif defined(WIN32) + std::string name = getUniqueLevelName("perf"); + minecraft->setScreen(new SimpleChooseLevelScreen(name)); + #else + int status = minecraft->platform()->getUserInputStatus(); + if (status > -1) { + if (status == 1) { + StringVector sv = minecraft->platform()->getUserInput(); + + // Read the level name. + // 1) Trim name 2) Remove all bad chars 3) Append '-' chars 'til the name is unique + std::string levelName = Util::stringTrim(sv[0]); + std::string levelId = levelName; + + for (int i = 0; i < sizeof(ILLEGAL_FILE_CHARACTERS) / sizeof(char); ++i) + levelId = Util::stringReplace(levelId, std::string(1, ILLEGAL_FILE_CHARACTERS[i]), ""); + if ((int)levelId.length() == 0) { + levelId = "no_name"; + } + levelId = getUniqueLevelName(levelId); + + // Read the seed + int seed = getEpochTimeS(); + if (sv.size() >= 2) { + std::string seedString = Util::stringTrim(sv[1]); + if (seedString.length() > 0) { + int tmpSeed; + // Try to read it as an integer + if (sscanf(seedString.c_str(), "%d", &tmpSeed) > 0) { + seed = tmpSeed; + } // Hash the "seed" + else { + seed = Util::hashCode(seedString); + } + } + } + // Read the game mode + bool isCreative = true; + if (sv.size() >= 3 && sv[2] == "survival") + isCreative = false; + + // Start a new level with the given name and seed + LevelSettings settings(seed, isCreative? GameType::Creative : GameType::Survival); + LOGI("Creating a level with id '%s', name '%s' and seed '%d'\n", levelId.c_str(), levelName.c_str(), seed); + minecraft->selectLevel(levelId, levelName, settings); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + _hasStartedLevel = true; + } + _state = _STATE_DEFAULT; + } + #endif + + return; + } + + worldsList->tick(); + + if (worldsList->hasPickedLevel) { + minecraft->selectLevel(worldsList->pickedLevel.id, worldsList->pickedLevel.name, LevelSettings::None()); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + _hasStartedLevel = true; + return; + } + + // copy the currently selected item + LevelSummary selectedWorld; + //bool hasSelection = false; + if (isIndexValid(worldsList->selectedItem)) + { + selectedWorld = worldsList->levels[worldsList->selectedItem]; + //hasSelection = true; + } + + bDelete.active = isIndexValid(worldsList->selectedItem); +} + +void SelectWorldScreen::init() +{ + worldsList = new WorldSelectionList(minecraft, width, height); + loadLevelSource(); + worldsList->commit(); + + buttons.push_back(&bDelete); + buttons.push_back(&bCreate); + buttons.push_back(&bBack); + + _mouseHasBeenUp = !Mouse::getButtonState(MouseAction::ACTION_LEFT); + + tabButtons.push_back(&bWorldView); + tabButtons.push_back(&bDelete); + tabButtons.push_back(&bCreate); + tabButtons.push_back(&bBack); +} + +void SelectWorldScreen::setupPositions() { + int yBase = height - 28; + + //#ifdef ANDROID + bCreate.y = yBase; + bBack.y = yBase; + bDelete.y = yBase; + + bBack.width = bDelete.width = bCreate.width = 84; + //bDelete.h = bCreate.h = bBack.h = 24; + //#endif + + // Center buttons + bDelete.x = width / 2 - 4 - bDelete.width - bDelete.width / 2; + bCreate.x = width / 2 - bCreate.width / 2; + bBack.x = width / 2 + 4 + bCreate.width - bBack.width / 2; +} + +void SelectWorldScreen::render( int xm, int ym, float a ) +{ + //Performance::watches.get("sws-full").start(); + //Performance::watches.get("sws-renderbg").start(); + renderBackground(); + //Performance::watches.get("sws-renderbg").stop(); + //Performance::watches.get("sws-worlds").start(); + + worldsList->setComponentSelected(bWorldView.selected); + + if (_mouseHasBeenUp) + worldsList->render(xm, ym, a); + else { + worldsList->render(0, 0, a); + _mouseHasBeenUp = !Mouse::getButtonState(MouseAction::ACTION_LEFT); + } + + //Performance::watches.get("sws-worlds").stop(); + //Performance::watches.get("sws-screen").start(); + Screen::render(xm, ym, a); + //Performance::watches.get("sws-screen").stop(); + + //Performance::watches.get("sws-string").start(); + drawCenteredString(minecraft->font, "Select world", width / 2, 8, 0xffffffff); + //Performance::watches.get("sws-string").stop(); + + //Performance::watches.get("sws-full").stop(); + //Performance::watches.printEvery(128); +} + +void SelectWorldScreen::loadLevelSource() +{ + LevelStorageSource* levelSource = minecraft->getLevelSource(); + levelSource->getLevelList(levels); + std::sort(levels.begin(), levels.end()); + + for (unsigned int i = 0; i < levels.size(); ++i) { + if (levels[i].id != LevelStorageSource::TempLevelId) + worldsList->levels.push_back( levels[i] ); + } +} + + +std::string SelectWorldScreen::getUniqueLevelName( const std::string& level ) +{ + std::set Set; + for (unsigned int i = 0; i < levels.size(); ++i) + Set.insert(levels[i].id); + + std::string s = level; + while ( Set.find(s) != Set.end() ) + s += "-"; + return s; +} + +bool SelectWorldScreen::isInGameScreen() { return true; } + +void SelectWorldScreen::keyPressed( int eventKey ) +{ + if (bWorldView.selected) { + if (eventKey == minecraft->options.keyLeft.key) + worldsList->stepLeft(); + if (eventKey == minecraft->options.keyRight.key) + worldsList->stepRight(); + } + + Screen::keyPressed(eventKey); +} + +// +// Delete World Screen +// +DeleteWorldScreen::DeleteWorldScreen(const LevelSummary& level) +: ConfirmScreen(NULL, "Are you sure you want to delete this world?", + "'" + level.name + "' will be lost forever!", + "Delete", "Cancel", 0), + _level(level) +{ + tabButtonIndex = 1; +} + +void DeleteWorldScreen::postResult( bool isOk ) +{ + if (isOk) { + LevelStorageSource* storageSource = minecraft->getLevelSource(); + storageSource->deleteLevel(_level.id); + } + minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD); +} diff --git a/src/client/gui/screens/SelectWorldScreen.h b/src/client/gui/screens/SelectWorldScreen.h new file mode 100755 index 0000000..a4eaf35 --- /dev/null +++ b/src/client/gui/screens/SelectWorldScreen.h @@ -0,0 +1,113 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__SelectWorldScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__SelectWorldScreen_H__ + +#include "../Screen.h" +#include "../TweenData.h" +#include "../components/Button.h" +#include "../components/SmallButton.h" +#include "../components/RolledSelectionListH.h" +#include "../../Minecraft.h" +#include "../../../world/level/storage/LevelStorageSource.h" + + +class SelectWorldScreen; + +// +// Scrolling World selection list +// +class WorldSelectionList : public RolledSelectionListH +{ +public: + WorldSelectionList(Minecraft* _minecraft, int _width, int _height); + virtual void tick(); + void stepLeft(); + void stepRight(); + + void commit(); +protected: + virtual int getNumberOfItems(); + virtual void selectItem(int item, bool doubleClick); + virtual bool isSelectedItem(int item); + + virtual void renderBackground() {} + virtual void renderItem(int i, int x, int y, int h, Tesselator& t); + virtual float getPos(float alpha); + virtual void touched() { mode = 0; } + virtual bool capXPosition(); +private: + TweenData td; + void tweenInited(); + + int selectedItem; + int _height; + LevelSummaryList levels; + std::vector _descriptions; + StringVector _imageNames; + + bool hasPickedLevel; + LevelSummary pickedLevel; + + int stoppedTick; + int currentTick; + float accRatio; + int mode; + + friend class SelectWorldScreen; +}; + +// +// Delete World screen +// +#include "ConfirmScreen.h" +class DeleteWorldScreen: public ConfirmScreen +{ +public: + DeleteWorldScreen(const LevelSummary& levelId); +protected: + virtual void postResult(bool isOk); +private: + LevelSummary _level; +}; + + +// +// Select world screen +// +class SelectWorldScreen: public Screen +{ +public: + SelectWorldScreen(); + virtual ~SelectWorldScreen(); + + virtual void init(); + virtual void setupPositions(); + virtual void tick(); + + virtual bool isIndexValid(int index); + virtual bool handleBackEvent(bool isDown); + virtual void buttonClicked(Button* button); + virtual void keyPressed(int eventKey); + + void render(int xm, int ym, float a); + + bool isInGameScreen(); +private: + void loadLevelSource(); + std::string getUniqueLevelName(const std::string& level); + + Button bDelete; + Button bCreate; + Button bBack; + Button bWorldView; + WorldSelectionList* worldsList; + LevelSummaryList levels; + + bool _mouseHasBeenUp; + bool _hasStartedLevel; + int _state; + static const int _STATE_DEFAULT = 0; + static const int _STATE_CREATEWORLD = 1; + //LevelStorageSource* levels; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__SelectWorldScreen_H__*/ diff --git a/src/client/gui/screens/SimpleChooseLevelScreen.cpp b/src/client/gui/screens/SimpleChooseLevelScreen.cpp new file mode 100755 index 0000000..a9deb36 --- /dev/null +++ b/src/client/gui/screens/SimpleChooseLevelScreen.cpp @@ -0,0 +1,97 @@ +#include "SimpleChooseLevelScreen.h" +#include "ProgressScreen.h" +#include "ScreenChooser.h" +#include "../components/Button.h" +#include "../../Minecraft.h" +#include "../../../world/level/LevelSettings.h" +#include "../../../platform/time.h" + +SimpleChooseLevelScreen::SimpleChooseLevelScreen(const std::string& levelName) +: bCreative(0), + bSurvival(0), + bBack(0), + levelName(levelName), + hasChosen(false) +{ +} + +SimpleChooseLevelScreen::~SimpleChooseLevelScreen() +{ + delete bCreative; + delete bSurvival; + delete bBack; +} + +void SimpleChooseLevelScreen::init() +{ + if (minecraft->useTouchscreen()) { + bCreative = new Touch::TButton(1, "Creative mode"); + bSurvival = new Touch::TButton(2, "Survival mode"); + bBack = new Touch::TButton(3, "Back"); + } else { + bCreative = new Button(1, "Creative mode"); + bSurvival = new Button(2, "Survival mode"); + bBack = new Button(3, "Back"); + } + buttons.push_back(bCreative); + buttons.push_back(bSurvival); + buttons.push_back(bBack); + + tabButtons.push_back(bCreative); + tabButtons.push_back(bSurvival); + tabButtons.push_back(bBack); +} + +void SimpleChooseLevelScreen::setupPositions() +{ + bCreative->width = bSurvival->width = bBack->width = 120; + bCreative->x = (width - bCreative->width) / 2; + bCreative->y = height/3 - 40; + bSurvival->x = (width - bSurvival->width) / 2; + bSurvival->y = 2*height/3 - 40; + bBack->x = bSurvival->x + bSurvival->width - bBack->width; + bBack->y = height - 40; +} + +void SimpleChooseLevelScreen::render( int xm, int ym, float a ) +{ + renderDirtBackground(0); + glEnable2(GL_BLEND); + + drawCenteredString(minecraft->font, "Mobs, health and gather resources", width/2, bSurvival->y + bSurvival->height + 4, 0xffcccccc); + drawCenteredString(minecraft->font, "Unlimited resources and flying", width/2, bCreative->y + bCreative->height + 4, 0xffcccccc); + + Screen::render(xm, ym, a); + glDisable2(GL_BLEND); +} + +void SimpleChooseLevelScreen::buttonClicked( Button* button ) +{ + if (button == bBack) { + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + return; + } + if (hasChosen) + return; + + int gameType; + + if (button == bCreative) + gameType = GameType::Creative; + + if (button == bSurvival) + gameType = GameType::Survival; + + std::string levelId = getUniqueLevelName(levelName); + LevelSettings settings(getEpochTimeS(), gameType); + minecraft->selectLevel(levelId, levelId, settings); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + hasChosen = true; +} + +bool SimpleChooseLevelScreen::handleBackEvent(bool isDown) { + if (!isDown) + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + return true; +} diff --git a/src/client/gui/screens/SimpleChooseLevelScreen.h b/src/client/gui/screens/SimpleChooseLevelScreen.h new file mode 100755 index 0000000..12e24a3 --- /dev/null +++ b/src/client/gui/screens/SimpleChooseLevelScreen.h @@ -0,0 +1,32 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__DemoChooseLevelScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__DemoChooseLevelScreen_H__ + +#include "ChooseLevelScreen.h" +class Button; + +class SimpleChooseLevelScreen: public ChooseLevelScreen +{ +public: + SimpleChooseLevelScreen(const std::string& levelName); + + virtual ~SimpleChooseLevelScreen(); + + void init(); + + void setupPositions(); + + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + bool handleBackEvent(bool isDown); + +private: + Button* bCreative; + Button* bSurvival; + Button* bBack; + bool hasChosen; + + std::string levelName; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__DemoChooseLevelScreen_H__*/ diff --git a/src/client/gui/screens/StartMenuScreen.cpp b/src/client/gui/screens/StartMenuScreen.cpp new file mode 100755 index 0000000..a216ad9 --- /dev/null +++ b/src/client/gui/screens/StartMenuScreen.cpp @@ -0,0 +1,208 @@ +#include "StartMenuScreen.h" +#include "SelectWorldScreen.h" +#include "ProgressScreen.h" +#include "JoinGameScreen.h" +#include "OptionsScreen.h" +#include "PauseScreen.h" +#include "InvalidLicenseScreen.h" +#include "PrerenderTilesScreen.h" // test button +//#include "BuyGameScreen.h" + +#include "../../../util/Mth.h" + +#include "../Font.h" +#include "../components/SmallButton.h" +#include "../components/ScrolledSelectionList.h" + +#include "../../Minecraft.h" +#include "../../renderer/Tesselator.h" +#include "../../../AppPlatform.h" +#include "../../../LicenseCodes.h" +#include "SimpleChooseLevelScreen.h" +#include "../../renderer/Textures.h" +#include "../../../SharedConstants.h" + +// Some kind of default settings, might be overridden in ::init +StartMenuScreen::StartMenuScreen() +: bHost( 2, 0, 0, 160, 24, "Start Game"), + bJoin( 3, 0, 0, 160, 24, "Join Game"), + bOptions( 4, 0, 0, 78, 22, "Options"), + bBuy( 5, 0, 0, 78, 22, "Buy"), + bTest( 999, 0, 0, 78, 22, "Create") +{ +} + +StartMenuScreen::~StartMenuScreen() +{ +} + +void StartMenuScreen::init() +{ + buttons.push_back(&bHost); + buttons.push_back(&bJoin); + //buttons.push_back(&bTest); + + tabButtons.push_back(&bHost); + tabButtons.push_back(&bJoin); + + #ifndef RPI + buttons.push_back(&bOptions); + tabButtons.push_back(&bOptions); + #endif + + #ifdef DEMO_MODE + buttons.push_back(&bBuy); + tabButtons.push_back(&bBuy); + #endif + + copyright = "\xffMojang AB";//. Do not distribute!"; + + #ifdef PRE_ANDROID23 + std::string versionString = Common::getGameVersionString("j"); + #else + std::string versionString = Common::getGameVersionString(); + #endif + + #ifdef DEMO_MODE + #ifdef __APPLE__ + version = versionString + " (Lite)"; + #else + version = versionString + " (Demo)"; + #endif + #else + #ifdef RPI + version = "v0.1.1 alpha";//(MCPE " + versionString + " compatible)"; + #else + version = versionString; + #endif + #endif + + bJoin.active = bHost.active = bOptions.active = false; +} + +void StartMenuScreen::setupPositions() { + int yBase = height / 2 + 25; + + //#ifdef ANDROID + bHost.y = yBase - 28; +#ifdef RPI + bJoin.y = yBase + 4; +#else + bJoin.y = yBase; +#endif + + bOptions.y = yBase + 28 + 2; + bTest.y = bBuy.y = bOptions.y; + //#endif + + // Center buttons + bHost.x = (width - bHost.width) / 2; + bJoin.x = (width - bJoin.width) / 2; + bOptions.x = (width - bJoin.width) / 2; + bTest.x = bBuy.x = bOptions.x + bOptions.width + 4; + + copyrightPosX = width - minecraft->font->width(copyright) - 1; + versionPosX = (width - minecraft->font->width(version)) / 2;// - minecraft->font->width(version) - 2; +} + +void StartMenuScreen::tick() { + _updateLicense(); +} + +void StartMenuScreen::buttonClicked(Button* button) { + + if (button->id == bHost.id) + { + #if defined(DEMO_MODE) || defined(APPLE_DEMO_PROMOTION) + minecraft->setScreen( new SimpleChooseLevelScreen("_DemoLevel") ); + #else + minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD); + #endif + } + if (button->id == bJoin.id) + { + minecraft->locateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_JOINGAME); + } + if (button->id == bOptions.id) + { + minecraft->setScreen(new OptionsScreen()); + } + if (button->id == bTest.id) + { + //minecraft->setScreen(new PauseScreen()); + //minecraft->setScreen(new PrerenderTilesScreen()); + } + if (button->id == bBuy.id) + { + minecraft->platform()->buyGame(); + //minecraft->setScreen(new BuyGameScreen()); + } +} + +bool StartMenuScreen::isInGameScreen() { return false; } + +void StartMenuScreen::render( int xm, int ym, float a ) +{ + renderBackground(); + +#if defined(RPI) + TextureId id = minecraft->textures->loadTexture("gui/pi_title.png"); +#else + TextureId id = minecraft->textures->loadTexture("gui/title.png"); +#endif + const TextureData* data = minecraft->textures->getTemporaryTextureData(id); + + if (data) { + minecraft->textures->bind(id); + + const float x = (float)width / 2; + const float y = 4; + //const float scale = Mth::Min( + const float wh = Mth::Min((float)width/2.0f, (float)data->w / 2); + const float scale = 2.0f * wh / (float)data->w; + const float h = scale * (float)data->h; + + // Render title text + Tesselator& t = Tesselator::instance; + glColor4f2(1, 1, 1, 1); + t.begin(); + t.vertexUV(x-wh, y+h, blitOffset, 0, 1); + t.vertexUV(x+wh, y+h, blitOffset, 1, 1); + t.vertexUV(x+wh, y+0, blitOffset, 1, 0); + t.vertexUV(x-wh, y+0, blitOffset, 0, 0); + t.draw(); + } + +#if defined(RPI) + if (Textures::isTextureIdValid(minecraft->textures->loadAndBindTexture("gui/logo/raknet_high_72.png"))) + blit(0, height - 12, 0, 0, 43, 12, 256, 72+72); +#endif + + drawString(font, version, versionPosX, 62, /*50,*/ 0xffcccccc);//0x666666); + drawString(font, copyright, copyrightPosX, height - 10, 0xffffff); + + Screen::render(xm, ym, a); +} + +void StartMenuScreen::_updateLicense() +{ + int id = minecraft->getLicenseId(); + if (LicenseCodes::isReady(id)) + { + if (LicenseCodes::isOk(id)) + bJoin.active = bHost.active = bOptions.active = true; + else + { + bool hasBuyButton = minecraft->platform()->hasBuyButtonWhenInvalidLicense(); + minecraft->setScreen(new InvalidLicenseScreen(id, hasBuyButton)); + } + } else { + bJoin.active = bHost.active = bOptions.active = false; + } +} + +bool StartMenuScreen::handleBackEvent( bool isDown ) { + minecraft->quit(); + return true; +} diff --git a/src/client/gui/screens/StartMenuScreen.h b/src/client/gui/screens/StartMenuScreen.h new file mode 100755 index 0000000..8d46c58 --- /dev/null +++ b/src/client/gui/screens/StartMenuScreen.h @@ -0,0 +1,38 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__StartMenuScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__StartMenuScreen_H__ + +#include "../Screen.h" +#include "../components/Button.h" + +class StartMenuScreen: public Screen +{ +public: + StartMenuScreen(); + virtual ~StartMenuScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + bool handleBackEvent(bool isDown); + bool isInGameScreen(); +private: + void _updateLicense(); + + Button bHost; + Button bJoin; + Button bOptions; + Button bTest; + Button bBuy; + + std::string copyright; + int copyrightPosX; + + std::string version; + int versionPosX; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__StartMenuScreen_H__*/ diff --git a/src/client/gui/screens/TextEditScreen.cpp b/src/client/gui/screens/TextEditScreen.cpp new file mode 100755 index 0000000..115db91 --- /dev/null +++ b/src/client/gui/screens/TextEditScreen.cpp @@ -0,0 +1,146 @@ +#include "TextEditScreen.h" +#include "../../../world/level/tile/entity/SignTileEntity.h" +#include "../../../AppPlatform.h" +#include "../../Minecraft.h" +#include "../../renderer/tileentity/TileEntityRenderDispatcher.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/Textures.h" +#include "../../renderer/GameRenderer.h" +#include "../components/Button.h" +#include "../../../network/Packet.h" +#include "../../../network/RakNetInstance.h" +TextEditScreen::TextEditScreen( SignTileEntity* signEntity ) + : sign(signEntity), isShowingKeyboard(false), frame(0), line(0), btnClose(1, "") { + +} +TextEditScreen::~TextEditScreen() { + +} +void TextEditScreen::init() { + super::init(); + minecraft->platform()->showKeyboard(); + isShowingKeyboard = true; + ImageDef def; + def.name = "gui/spritesheet.png"; + def.x = 0; + def.y = 1; + def.width = def.height = 18; + def.setSrc(IntRectangle(60, 0, 18, 18)); + btnClose.setImageDef(def, true); + btnClose.scaleWhenPressed = false; + buttons.push_back(&btnClose); +} + +void TextEditScreen::setupPositions() { + btnClose.width = btnClose.height = 19; + btnClose.x = width - btnClose.width; + btnClose.y = 0; +} + + +bool TextEditScreen::handleBackEvent( bool isDown ) { + sign->setChanged(); + Packet* signUpdatePacket = sign->getUpdatePacket(); + minecraft->raknetInstance->send(signUpdatePacket); + minecraft->platform()->hideKeyboard(); + minecraft->setScreen(NULL); + return true; +} + +void TextEditScreen::render( int xm, int ym, float a ) { + glDepthMask(GL_FALSE); + renderBackground(); + glPushMatrix(); + glDepthMask(GL_TRUE); + glDisable(GL_CULL_FACE); + glLoadIdentity(); + Tesselator& t = Tesselator::instance; + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrthof(0.0f, (float)minecraft->width, (float)minecraft->height, 0, -1, 1); + glMatrixMode(GL_MODELVIEW); + + minecraft->textures->loadAndBindTexture("item/sign.png"); + glColor4f2(1, 1, 1, 1); + + static float minUV[] = {0.03126f, 0.06249f}; + static float maxUV[] = {0.39063f, 0.4374f}; + float scale = ((minecraft->height / 2) / 32) * 0.9f; + + glTranslatef(minecraft->width / 2.0f, 5.0f, 0.0f); + glScalef2(scale,scale,1); + t.begin(GL_QUADS); + t.vertexUV(-32, 0, 0.0f,minUV[0],minUV[1]); + t.vertexUV(32, 0, 0.0f, maxUV[0], minUV[1]); + t.vertexUV(32, 0 + 32, 0.0f, maxUV[0], maxUV[1]); + t.vertexUV(-32, 0 + 32, 0.0f, minUV[0], maxUV[1]); + t.draw(); + + sign->selectedLine = line; + float textScale = 8.0f / 11.0f; + + glTranslatef(0, 2 ,0); + glScalef2(textScale, textScale, 1); + for(int i = 0; i < 4; ++i) { + //drawCenteredString(font, sign->messages[a], 32.0f, 10 * a, 0xFF000000); + std::string msg = sign->messages[i]; + if (i == sign->selectedLine && msg.length() < 14) { + std::string s = "> " + msg + " <"; + font->draw(s, -(float)font->width(s) / 2.0f, 10.0f * i, 0xFF000000, false); + } else { + font->draw(msg, -(float)font->width(msg) / 2.0f, 10.0f * i, 0xFF000000, false); + } + } + sign->selectedLine = -1; + //font->draw("Hej", minecraft->width / 2, 100, 0xFFFFFFFF, false); + + glPopMatrix(); + glEnable(GL_CULL_FACE); + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + + //glEnable(GL_DEPTH_TEST); + super::render(xm, ym, a); +} + +void TextEditScreen::lostFocus() { + +} + +void TextEditScreen::tick() { + frame++; +} + +void TextEditScreen::keyPressed( int eventKey ) { + LOGW("Key pressed! [%d]", eventKey); + if(eventKey == Keyboard::KEY_BACKSPACE) { + if(sign->messages[line].length() > 0) { + sign->messages[line].erase(sign->messages[line].size() - 1, 1); + } else { + line--; + if(line < 0) { + line = 3; + } + } + } else if(eventKey == Keyboard::KEY_RETURN) { + line = (line + 1) % 4; + } else { + super::keyPressed(eventKey); + } +} + +void TextEditScreen::keyboardNewChar( char inputChar ) { + std::string fullstring = sign->messages[line] + inputChar; + if(fullstring.length() < 16) { + sign->messages[line] = fullstring; + //LOGW("Line text updated: %s\n", fullstring.c_str()); + } +} + +void TextEditScreen::buttonClicked( Button* button ) { + if(button == &btnClose) + handleBackEvent(true); +} diff --git a/src/client/gui/screens/TextEditScreen.h b/src/client/gui/screens/TextEditScreen.h new file mode 100755 index 0000000..2ba7c4b --- /dev/null +++ b/src/client/gui/screens/TextEditScreen.h @@ -0,0 +1,35 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__TextEditScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__TextEditScreen_H__ + +//package net.minecraft.client.gui; + +#include "../Screen.h" +#include +#include "../components/ImageButton.h" +class SignTileEntity; +class Button; +class TextEditScreen: public Screen +{ + typedef Screen super; +public: + TextEditScreen(SignTileEntity* signEntity); + ~TextEditScreen(); + void init(); + void tick(); + bool handleBackEvent(bool isDown); + void render(int xm, int ym, float a); + virtual void lostFocus(); + virtual void keyPressed(int eventKey); + virtual void keyboardNewChar(char inputChar); + void setupPositions(); + void buttonClicked(Button* button); +protected: + bool isShowingKeyboard; + SignTileEntity* sign; + int frame; + int line; +private: + ImageButton btnClose; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__TextEditScreen_H__*/ diff --git a/src/client/gui/screens/UploadPhotoScreen.cpp b/src/client/gui/screens/UploadPhotoScreen.cpp new file mode 100755 index 0000000..ccf38f8 --- /dev/null +++ b/src/client/gui/screens/UploadPhotoScreen.cpp @@ -0,0 +1,177 @@ +#if 0 + +#include "UploadPhotoScreen.h" +#include "../renderer/TileRenderer.h" +#include "../player/LocalPlayer.h" +#include "../../world/entity/player/Inventory.h" + +UploadPhotoScreen::UploadPhotoScreen() + : +selectedItem(0) +{ +} + +void UploadPhotoScreen::init() +{ + int currentSelection = minecraft->player->inventory->getSelectedItemId(); + for (int i = 0; i < Inventory::INVENTORY_SIZE; i++) + { + if (currentSelection == minecraft->player->inventory->getSelectionSlotItemId(i + Inventory::SELECTION_SIZE)) + { + selectedItem = i; + break; + } + } + +} + +void UploadPhotoScreen::renderSlots() +{ + glColor4f2(1, 1, 1, 1); + + blitOffset = -90; + + minecraft->textures->loadAndBindTexture("gui/gui.png"); + for (int r = 0; r < Inventory::INVENTORY_ROWS; r++) + { + blit(width / 2 - 182 / 2, height - 22 * 3 - 22 * r, 0, 0, 182, 22); + } + if (selectedItem >= 0) + { + int x = width / 2 - 182 / 2 - 1 + (selectedItem % Inventory::SELECTION_SIZE) * 20; + int y = height - 22 * 3 - 1 - (selectedItem / Inventory::SELECTION_SIZE) * 22; + blit(x, y, 0, 22, 24, 22); + } + + for (int r = 0; r < Inventory::INVENTORY_ROWS; r++) + { + for (int i = 0; i < 9; i++) { + int x = width / 2 - 9 * 10 + i * 20 + 2; + int y = height - 16 - 3 - 22 * 2 - 22 * r; + renderSlot(r * 9 + i + Inventory::SELECTION_SIZE, x, y, 0); + } + } + +} + +void UploadPhotoScreen::renderSlot(int slot, int x, int y, float a) +{ + int itemId = minecraft->player->inventory->getSelectionSlotItemId(slot); + if (itemId < 0) return; + + const bool fancy = false; + + if (fancy && itemId < 256 && TileRenderer::canRender(Tile::tiles[itemId]->getRenderShape())) { + + } else { + if (itemId < 256) { + Tile* tile = Tile::tiles[itemId]; + if (tile == NULL) return; + + minecraft->textures->loadAndBindTexture("terrain.png"); + + int textureId = tile->getTexture(2, 0); + blit(x, y, textureId % 16 * 16, textureId / 16 * 16, 16, 16); + } + } + +} + +void UploadPhotoScreen::keyPressed(int eventKey) +{ + int selX = selectedItem % Inventory::SELECTION_SIZE; + int selY = selectedItem / Inventory::SELECTION_SIZE; + + Options& o = minecraft->options; + if (eventKey == o.keyLeft.key && selX > 0) + { + selectedItem -= 1; + } + else if (eventKey == o.keyRight.key && selX < (Inventory::SELECTION_SIZE - 1)) + { + selectedItem += 1; + } + else if (eventKey == o.keyDown.key && selY > 0) + { + selectedItem -= Inventory::SELECTION_SIZE; + } + else if (eventKey == o.keyUp.key && selY < (Inventory::INVENTORY_ROWS - 1)) + { + selectedItem += Inventory::SELECTION_SIZE; + } + + if (eventKey == o.keyMenuOk.key) + { + selectSlotAndClose(); + } +} + +int UploadPhotoScreen::getSelectedSlot(int x, int y) +{ + int left = 3 + width / 2 - Inventory::SELECTION_SIZE * 10; + int top = height - 16 - 3 - 22 * 2 - 22 * Inventory::INVENTORY_ROWS; + + if (x >= left && y >= top) + { + int xSlot = (x - left) / 20; + if (xSlot < Inventory::SELECTION_SIZE) + { + // rows are rendered upsidedown + return xSlot + Inventory::INVENTORY_SIZE - ((y - top) / 22) * Inventory::SELECTION_SIZE; + } + } + return -1; +} + +void UploadPhotoScreen::mouseClicked(int x, int y, int buttonNum) { + if (buttonNum == MouseAction::ACTION_LEFT) { + + int slot = getSelectedSlot(x, y); + if (slot >= 0 && slot < Inventory::INVENTORY_SIZE) + { + selectedItem = slot; + //minecraft->soundEngine->playUI("random.click", 1, 1); + } + } +} + +void UploadPhotoScreen::mouseReleased(int x, int y, int buttonNum) +{ + if (buttonNum == MouseAction::ACTION_LEFT) { + + int slot = getSelectedSlot(x, y); + if (slot >= 0 && slot < Inventory::INVENTORY_SIZE && slot == selectedItem) + { + selectSlotAndClose(); + } + } +} + +void UploadPhotoScreen::selectSlotAndClose() +{ + Inventory* inventory = minecraft->player->inventory; + + int itemId = inventory->getSelectionSlotItemId(selectedItem + Inventory::SELECTION_SIZE); + int i = 0; + + for (; i < Inventory::SELECTION_SIZE - 2; i++) + { + if (itemId == inventory->getSelectionSlotItemId(i)) + { + break; + } + } + + // update selection list + for (; i >= 1; i--) + { + inventory->setSelectionSlotItemId(i, inventory->getSelectionSlotItemId(i - 1)); + } + inventory->setSelectionSlotItemId(0, itemId); + inventory->selectSlot(0); + + minecraft->soundEngine->playUI("random.click", 1, 1); + minecraft->setScreen(NULL); +} + +#endif diff --git a/src/client/gui/screens/UploadPhotoScreen.h b/src/client/gui/screens/UploadPhotoScreen.h new file mode 100755 index 0000000..773f5bb --- /dev/null +++ b/src/client/gui/screens/UploadPhotoScreen.h @@ -0,0 +1,36 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__ + +#include "Screen.h" + +class UploadPhotoScreen : public Screen +{ +public: + + UploadPhotoScreen(); + virtual ~UploadPhotoScreen() {} + + virtual void init(); + + void render(int xm, int ym, float a) { + Screen::render(xm, ym, a); + } + +protected: + + virtual void mouseClicked(int x, int y, int buttonNum); + virtual void mouseReleased(int x, int y, int buttonNum); + virtual void keyPressed(int eventKey); + +private: + + int selectedItem; + + void renderSlots(); + void renderSlot(int slot, int x, int y, float a); + + int getSelectedSlot(int x, int y); + void selectSlotAndClose(); +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__*/ diff --git a/src/client/gui/screens/crafting/CraftingFilters.cpp b/src/client/gui/screens/crafting/CraftingFilters.cpp new file mode 100755 index 0000000..5820b13 --- /dev/null +++ b/src/client/gui/screens/crafting/CraftingFilters.cpp @@ -0,0 +1,32 @@ +#include "CraftingFilters.h" +#include "../../../../world/item/ItemInstance.h" +#include "../../../../world/item/Item.h" +#include "../../../../world/level/tile/Tile.h" +#include "../../../../world/level/material/Material.h" +#include "../../../../world/level/tile/StoneSlabTile.h" + +namespace CraftingFilters { + +bool isStonecutterItem(const ItemInstance& ins) { + Item* const item = ins.getItem(); + if (item->id < 0 || item->id >= 256) + return false; + + Tile* const tile = Tile::tiles[item->id]; + if (!tile) + return false; + + // Special stone/sand cases + if ( tile == Tile::lapisBlock + || tile == Tile::furnace + || tile == Tile::stonecutterBench) + return false; + + if (tile == Tile::stoneSlabHalf && ins.getAuxValue() == StoneSlabTile::WOOD_SLAB) + return false; + + // Return everything stone or sand + return (tile->material == Material::stone || tile->material == Material::sand); +} + +} \ No newline at end of file diff --git a/src/client/gui/screens/crafting/CraftingFilters.h b/src/client/gui/screens/crafting/CraftingFilters.h new file mode 100755 index 0000000..8ad3bc3 --- /dev/null +++ b/src/client/gui/screens/crafting/CraftingFilters.h @@ -0,0 +1,10 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_CraftingFilters_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_CraftingFilters_H__ + +class ItemInstance; + +namespace CraftingFilters { + bool isStonecutterItem(const ItemInstance& item); +} + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_CraftingFilters_H__*/ diff --git a/src/client/gui/screens/crafting/PaneCraftingScreen.cpp b/src/client/gui/screens/crafting/PaneCraftingScreen.cpp new file mode 100755 index 0000000..693a7a4 --- /dev/null +++ b/src/client/gui/screens/crafting/PaneCraftingScreen.cpp @@ -0,0 +1,555 @@ +#include "PaneCraftingScreen.h" +#include "../touch/TouchStartMenuScreen.h" +#include "../../Screen.h" +#include "../../components/NinePatch.h" +#include "../../../Minecraft.h" +#include "../../../player/LocalPlayer.h" +#include "../../../renderer/Tesselator.h" +#include "../../../renderer/entity/ItemRenderer.h" +#include "../../../../world/item/Item.h" +#include "../../../../world/item/crafting/Recipes.h" +#include "../../../../world/item/ItemCategory.h" +#include "../../../../world/entity/player/Inventory.h" +#include "../../../../util/StringUtils.h" +#include "../../../../locale/I18n.h" +#include "../../../../world/entity/item/ItemEntity.h" +#include "../../../../world/level/Level.h" +#include "../../../../world/item/DyePowderItem.h" +#include "../../../../world/item/crafting/Recipe.h" + +static NinePatchLayer* guiPaneFrame = NULL; + +const float BorderPixels = 6.0f; +const int descFrameWidth = 100; + +const int rgbActive = 0xfff0f0f0; +const int rgbInactive = 0xc0635558; +const int rgbInactiveShadow = 0xc0aaaaaa; + +class CategoryButton: public ImageButton { + typedef ImageButton super; +public: + CategoryButton(int id, const ImageButton* const* selectedPtr, NinePatchLayer* stateNormal, NinePatchLayer* statePressed) + : super(id, ""), + selectedPtr(selectedPtr), + stateNormal(stateNormal), + statePressed(statePressed) + {} + + void renderBg(Minecraft* minecraft, int xm, int ym) { + //fill(x+1, y+1, x+w-1, y+h-1, 0xff999999); + + bool hovered = active && (minecraft->useTouchscreen()? + (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false); + + if (hovered || *selectedPtr == this) + statePressed->draw(Tesselator::instance, (float)x, (float)y); + else + stateNormal->draw(Tesselator::instance, (float)x, (float)y); + } + bool isSecondImage(bool hovered) { return false; } + +private: + const ImageButton* const* selectedPtr; + NinePatchLayer* stateNormal; + NinePatchLayer* statePressed; +}; + +PaneCraftingScreen::PaneCraftingScreen(int craftingSize) +: craftingSize(craftingSize), + currentCategory(-1), + currentItem(NULL), + pane(NULL), + btnCraft(1), + btnClose(2, ""), + selectedCategoryButton(NULL), + guiBackground(NULL), + guiSlotCategory(NULL), + guiSlotCategorySelected(NULL), + numCategories(4) +{ + for (int i = 0; i < numCategories; ++i) { + categoryBitmasks.push_back(1 << i); + categoryIcons.push_back(i); + } +} + +PaneCraftingScreen::~PaneCraftingScreen() { + for (unsigned int i = 0; i < _items.size(); ++i) + delete _items[i]; + + for (unsigned int i = 0; i < _categoryButtons.size(); ++i) + delete _categoryButtons[i]; + + clearCategoryItems(); + + delete pane; + delete guiBackground; + + // statics + delete guiSlotCategory; + delete guiSlotCategorySelected; + delete guiPaneFrame; +} + +void PaneCraftingScreen::init() { + ImageDef def; + def.name = "gui/spritesheet.png"; + def.x = 0; + def.y = 1; + def.width = def.height = 18; + def.setSrc(IntRectangle(60, 0, 18, 18)); + btnClose.setImageDef(def, true); + btnClose.scaleWhenPressed = false; + + btnCraft.init(minecraft->textures); + + buttons.push_back(&btnCraft); + buttons.push_back(&btnClose); + + // GUI patches + NinePatchFactory builder(minecraft->textures, "gui/spritesheet.png"); + + guiBackground = builder.createSymmetrical(IntRectangle(0, 0, 16, 16), 4, 4); + guiPaneFrame = builder.createSymmetrical(IntRectangle(0, 20, 8, 8), 1, 2)->setExcluded(1 << 4); + guiSlotCategory = builder.createSymmetrical(IntRectangle(8, 32, 8, 8), 2, 2); + guiSlotCategorySelected = builder.createSymmetrical(IntRectangle(0, 32, 8, 8), 2, 2); + + initCategories(); +} + +void PaneCraftingScreen::initCategories() { + _categories.resize(numCategories); + + // Category buttons + for (int i = 0; i < numCategories; ++i) { + ImageButton* button = new CategoryButton(100 + i, &selectedCategoryButton, guiSlotCategory, guiSlotCategorySelected); + _categoryButtons.push_back( button ); + buttons.push_back( button ); + } + + const RecipeList& all = Recipes::getInstance()->getRecipes(); + RecipeList filtered; + filtered.reserve(all.size()); + + // Apply size filter + for (unsigned int i = 0; i < all.size(); ++i) { + if (craftingSize >= all[i]->getCraftingSize()) + filtered.push_back(all[i]); + } + // Filter by subclass impl + filterRecipes(filtered); + + // Add items from filtered recipes + for (unsigned int i = 0; i < filtered.size(); ++i) + addItem(filtered[i]); + + recheckRecipes(); +} + +void PaneCraftingScreen::setupPositions() { + // Left - Categories + const int buttonHeight = (height - 16) / (Mth::Max(numCategories, 4)); + for (unsigned c = 0; c < _categoryButtons.size(); ++c) { + ImageButton* button = _categoryButtons[c]; + button->x = (int)BorderPixels; + button->y = (int)BorderPixels + c * (1 + buttonHeight); + button->width = (int)buttonHeight; + button->height = (int)buttonHeight; + + int icon = categoryIcons[c]; + ImageDef def; + def.x = 0; + def.width = def.height = (float)buttonHeight; + def.name = "gui/spritesheet.png"; + def.setSrc(IntRectangle(32 * (icon/2), 64 + (icon&1) * 32, 32, 32)); + button->setImageDef(def, false); + } + // Right - Description + const int craftW = (int)(100 - 2 * BorderPixels - 0); + btnCraft.x = width - descFrameWidth + (descFrameWidth-craftW)/2 - 1;// width - descFrameWidth + (int)BorderPixels + 4; + btnCraft.y = 20; + btnCraft.setSize((float)craftW, 62); + + btnClose.width = btnClose.height = 19; + btnClose.x = width - btnClose.width; + btnClose.y = 0; + + // Middle - Scrolling pane + paneRect.x = buttonHeight + 2 * (int)BorderPixels; + paneRect.y = (int)BorderPixels + 2; + paneRect.w = width - paneRect.x - descFrameWidth; + paneRect.h = height - 2 * (int)BorderPixels - 4; + + guiPaneFrame->setSize((float)paneRect.w + 2, (float)paneRect.h + 4); + guiBackground->setSize((float)width, (float)height); + guiSlotCategory->setSize((float)buttonHeight, (float)buttonHeight); + guiSlotCategorySelected->setSize((float)buttonHeight, (float)buttonHeight); + + int oldCategory = currentCategory; + currentCategory = -1; + buttonClicked(_categoryButtons[pane?oldCategory:0]); +} + +void PaneCraftingScreen::tick() { + if (pane) pane->tick(); +} + +void PaneCraftingScreen::render(int xm, int ym, float a) { + const int N = 5; + static StopwatchNLast r(N); + //renderBackground(); + Tesselator& t = Tesselator::instance; + guiBackground->draw(t, 0, 0); + glEnable2(GL_ALPHA_TEST); + + // Buttons (Left side + crafting) + super::render(xm, ym, a); + + // Mid + r.start(); + // Blit frame + guiPaneFrame->draw(t, (float)paneRect.x - 1, (float)paneRect.y - 2); + if (pane) pane->render(xm, ym, a); + r.stop(); + //r.printEvery(N, "test"); + + const float slotWidth = (float)btnCraft.width / 2.0f; + const float slotHeight = (float)btnCraft.height / 2.0f; + const float slotBx = (float)btnCraft.x + slotWidth/2 - 8; + const float slotBy = (float)btnCraft.y + slotHeight/2 - 9; + + ItemInstance reqItem; + // Right side + if (currentItem) { + t.beginOverride(); + for (unsigned int i = 0; i < currentItem->neededItems.size(); ++i) { + const float xx = slotBx + slotWidth * (float)(i % 2); + const float yy = slotBy + slotHeight * (float)(i / 2); + CItem::ReqItem& req = currentItem->neededItems[i]; + reqItem = req.item; + if (reqItem.getAuxValue() == -1) reqItem.setAuxValue(0); + ItemRenderer::renderGuiItem(NULL, minecraft->textures, &reqItem, xx, yy, 16, 16, true); + } + t.endOverrideAndDraw(); + + char buf[16]; + const float scale = 2.0f / 3.0f; + const float invScale = 1.0f / scale; + t.beginOverride(); + t.scale2d(scale, scale); + for (unsigned int i = 0; i < currentItem->neededItems.size(); ++i) { + const float xx = 4 + invScale * (slotBx + slotWidth * (float)(i % 2)); + const float yy = 23 + invScale * (slotBy + slotHeight * (float)(i / 2)); + CItem::ReqItem& req = currentItem->neededItems[i]; + + int bufIndex = 0; + bufIndex += Gui::itemCountItoa(&buf[bufIndex], req.has); + strcpy(&buf[bufIndex], "/"); bufIndex += 1; + bufIndex += Gui::itemCountItoa(&buf[bufIndex], req.item.count); + + buf[bufIndex] = 0; + if (req.enough()) + minecraft->font->drawShadow(buf, xx, yy, rgbActive); + else { + minecraft->font->draw(buf, xx+1, yy+1, rgbInactiveShadow); + minecraft->font->draw(buf, xx, yy, rgbInactive); + } + } + t.resetScale(); + t.endOverrideAndDraw(); + + //minecraft->font->drawWordWrap(currentItemDesc, rightBx + 2, (float)btnCraft.y + btnCraft.h + 6, descFrameWidth-4, rgbActive); + minecraft->font->drawWordWrap(currentItemDesc, (float)btnCraft.x, (float)(btnCraft.y + btnCraft.height + 6), (float)btnCraft.width, rgbActive); + } + //glDisable2(GL_ALPHA_TEST); +} + +void PaneCraftingScreen::buttonClicked(Button* button) { + if (button == &btnCraft) + craftSelectedItem(); + + if (button == &btnClose) + minecraft->setScreen(NULL); + + // Did we click a category? + if (button->id >= 100 && button->id < 200) { + int categoryId = button->id - 100; + ItemList& cat = _categories[categoryId]; + if (!cat.empty()) { + onItemSelected(categoryId, cat[0]); + pane->setSelected(0, true); + } + currentCategory = categoryId; + selectedCategoryButton = (CategoryButton*)button; + } +} + +static void randomlyFillItemPack(ItemPack* ip, int numItems) { + int added = 0; + ItemInstance item(0, 1, 0); + while (added < numItems) { + int t = Mth::random(512); + if (!Item::items[t]) continue; + + item.id = t; + int id = ItemPack::getIdForItemInstance(&item); + int count = Mth::random(10); + for (int i = 0; i < count; ++i) + ip->add(id); + ++added; + } +} + +static bool sortCanCraftPredicate(const CItem* a, const CItem* b) { + //if (a->maxBuildCount == 0 && b->maxBuildCount > 0) return false; + //if (b->maxBuildCount == 0 && a->maxBuildCount > 0) return true; + return a->sortText < b->sortText; +} + +void PaneCraftingScreen::recheckRecipes() { + ItemPack ip; + + if (minecraft->player && minecraft->player->inventory) { + Inventory* inv = (minecraft->player)->inventory; + + for (int i = Inventory::MAX_SELECTION_SIZE; i < inv->getContainerSize(); ++i) { + if (ItemInstance* item = inv->getItem(i)) + ip.add(ItemPack::getIdForItemInstance(item), item->count); + } + } else { + randomlyFillItemPack(&ip, 50); + } + + ip.print(); + + Stopwatch w; + w.start(); + + for (unsigned int i = 0; i < _items.size(); ++i) { + CItem* item = _items[i]; + item->neededItems.clear(); + item->setCanCraft(true); + + Recipe* recipe = item->recipe; + item->inventoryCount = ip.getCount(ItemPack::getIdForItemInstance(&item->item)); + //item->maxBuildCount = recipe->getMaxCraftCount(ip); + // Override the canCraft thing, since I'm too lazy + // to fix the above (commented out) function + std::vector items = recipe->getItemPack().getItemInstances(); + for (unsigned int j = 0; j < items.size(); ++j) { + ItemInstance& jtem = items[j]; + int has = 0; + if (!Recipe::isAnyAuxValue(&jtem) && (jtem.getAuxValue() == Recipe::ANY_AUX_VALUE)) { + // If the aux value on the item matters, but the recipe says it doesn't, + // use this override (by fetching all items with aux-ids 0-15) + ItemInstance aux(jtem); + for (int i = 0; i < 16; ++i) { + aux.setAuxValue(i); + has += ip.getCount(ItemPack::getIdForItemInstance(&aux)); + } + } else { + // Else just use the normal aux-value rules + has = ip.getCount(ItemPack::getIdForItemInstance(&jtem)); + } + CItem::ReqItem req(jtem, has); + item->neededItems.push_back(req); + item->setCanCraft(item->canCraft() && req.enough()); + } + } + w.stop(); + w.printEvery(1, "> craft "); + + for (unsigned int c = 0; c < _categories.size(); ++c) + std::stable_sort(_categories[c].begin(), _categories[c].end(), sortCanCraftPredicate); +} + +void PaneCraftingScreen::addItem( Recipe* recipe ) +{ + ItemInstance instance = recipe->getResultItem(); + Item* item = instance.getItem(); + CItem* ci = new CItem(instance, recipe, instance.getName());//item->getDescriptionId()); + if (item->id == Tile::cloth->id) + ci->sortText = "Wool " + ci->text; + if (item->id == Item::dye_powder->id) + ci->sortText = "ZDye " + ci->text; + _items.push_back(ci); + + if (item->category < 0) + return; + + for (int i = 0; i < (int)categoryBitmasks.size(); ++i) { + int bitmask = categoryBitmasks[i]; + if ((bitmask & item->category) != 0) + _categories[i].push_back( ci ); + } +} + +void PaneCraftingScreen::onItemSelected(const ItemPane* forPane, int itemIndexInCurrentCategory) { + if (currentCategory >= (int)_categories.size()) return; + if (itemIndexInCurrentCategory >= (int)_categories[currentCategory].size()) return; + onItemSelected(currentCategory, _categories[currentCategory][itemIndexInCurrentCategory]); +} + +void PaneCraftingScreen::onItemSelected(int buttonIndex, CItem* item) { + currentItem = item; + currentItemDesc = I18n::getDescriptionString(currentItem->item); + + if (buttonIndex != currentCategory) { + // Clear item buttons for this category + clearCategoryItems(); + + // Setup new buttons for the items in this category + const int NumCategoryItems = _categories[buttonIndex].size(); + + if (pane) delete pane; + pane = new ItemPane(this, minecraft->textures, paneRect, NumCategoryItems, height, minecraft->height); + pane->f = minecraft->font; + + currentCategory = buttonIndex; + } +} + +void PaneCraftingScreen::clearCategoryItems() +{ + for (unsigned int i = 0; i < currentCategoryButtons.size(); ++i) { + delete currentCategoryButtons[i]; + } + currentCategoryButtons.clear(); +} + +void PaneCraftingScreen::keyPressed( int eventKey ) +{ + if (eventKey == Keyboard::KEY_ESCAPE) { + minecraft->setScreen(NULL); + //minecraft->grabMouse(); + } else { + super::keyPressed(eventKey); + } +} + +void PaneCraftingScreen::craftSelectedItem() +{ + if (!currentItem) + return; + if (!currentItem->canCraft()) + return; + + ItemInstance resultItem = currentItem->item; + + if (minecraft->player) { + // Remove all items required for the recipe and ... + for (unsigned int i = 0; i < currentItem->neededItems.size(); ++i) { + CItem::ReqItem& req = currentItem->neededItems[i]; + + // If the recipe allows any aux-value as ingredients, first deplete + // aux == 0 from inventory. Since I'm not sure if this always is + // correct, let's only do it for ingredient sandstone for now. + ItemInstance toRemove = req.item; + + if (Tile::sandStone->id == req.item.id + && Recipe::ANY_AUX_VALUE == req.item.getAuxValue()) { + toRemove.setAuxValue(0); + toRemove.count = minecraft->player->inventory->removeResource(toRemove, true); + toRemove.setAuxValue(Recipe::ANY_AUX_VALUE); + } + + if (toRemove.count > 0) { + minecraft->player->inventory->removeResource(toRemove); + } + } + // ... add the new one! (in this order, to fill empty slots better) + // if it doesn't fit, throw it on the ground! + if (!minecraft->player->inventory->add(&resultItem)) { + minecraft->player->drop(new ItemInstance(resultItem), false); + } + + recheckRecipes(); + } +} + +bool PaneCraftingScreen::renderGameBehind() +{ + return false; +} + +bool PaneCraftingScreen::closeOnPlayerHurt() { + return true; +} + +void PaneCraftingScreen::filterRecipes(RecipeList& recipes) { + for (int i = recipes.size() - 1; i >= 0; --i) { + if (!filterRecipe(*recipes[i])) + recipes.erase(recipes.begin() + i); + } +} + +const std::vector& PaneCraftingScreen::getItems(const ItemPane* forPane) +{ + return _categories[currentCategory]; +} + +void PaneCraftingScreen::setSingleCategoryAndIcon(int categoryBitmask, int categoryIcon) { + assert(!minecraft && "setSingleCategoryAndIcon needs to be called from subclass constructor!\n"); + + numCategories = 1; + + categoryIcons.clear(); + categoryIcons.push_back(categoryIcon); + + categoryBitmasks.clear(); + categoryBitmasks.push_back(categoryBitmask); +} + +// +// Craft button +// +CraftButton::CraftButton( int id) +: super(id, ""), + bg(NULL), + bgSelected(NULL), + numItems(0) +{ +} + +CraftButton::~CraftButton() +{ + delete bg; + delete bgSelected; +} + +void CraftButton::setSize(float w, float h ) { + this->width = (int)w; + this->height = (int)h; + + if (bg && bgSelected) { + bg->setSize(w, h); + bgSelected->setSize(w, h); + } +} + +void CraftButton::init( Textures* textures) +{ + NinePatchFactory builder(textures, "gui/spritesheet.png"); + bg = builder.createSymmetrical(IntRectangle(112, 0, 8, 67), 2, 2); + bgSelected = builder.createSymmetrical(IntRectangle(120, 0, 8, 67), 2, 2); +} + +IntRectangle CraftButton::getItemPos( int i ) +{ + return IntRectangle(); +} + +void CraftButton::renderBg(Minecraft* minecraft, int xm, int ym) { + if (!bg || !bgSelected) + return; + //fill(x+1, y+1, x+w-1, y+h-1, 0xff999999); + + bool hovered = active && (minecraft->useTouchscreen()? + (_currentlyDown && xm >= x && ym >= y && xm < x + width && ym < y + height) : false); + + if (hovered || selected) + bgSelected->draw(Tesselator::instance, (float)x, (float)y); + else + bg->draw(Tesselator::instance, (float)x, (float)y); +} diff --git a/src/client/gui/screens/crafting/PaneCraftingScreen.h b/src/client/gui/screens/crafting/PaneCraftingScreen.h new file mode 100755 index 0000000..d20303b --- /dev/null +++ b/src/client/gui/screens/crafting/PaneCraftingScreen.h @@ -0,0 +1,106 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_PaneCraftingScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_PaneCraftingScreen_H__ + +#include "../../Screen.h" +#include "../../../../world/item/crafting/Recipes.h" +#include "../../../../world/item/ItemInstance.h" + +#include "../../components/ScrollingPane.h" +#include "../../components/ImageButton.h" +#include "../../components/ItemPane.h" + +class Font; +class CItem; +class Textures; +class NinePatchLayer; + +class CraftButton: public ImageButton +{ + typedef ImageButton super; +public: + CraftButton(int id); + ~CraftButton(); + + void init(Textures*); + void setSize(float w, float h); + + void setNumItems(int i) { numItems = i; } + IntRectangle getItemPos(int i); + void renderBg(Minecraft* minecraft, int xm, int ym); +private: + NinePatchLayer* bg; + NinePatchLayer* bgSelected; + int numItems; +}; + +class PaneCraftingScreen: public Screen, + public IItemPaneCallback +{ + typedef Screen super; + typedef std::vector ItemList; +public: + PaneCraftingScreen(int craftingSize); + ~PaneCraftingScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + bool renderGameBehind(); + bool closeOnPlayerHurt(); + void buttonClicked(Button* button); + void keyPressed( int eventKey ); + + // IItemPaneCallback + void onItemSelected(const ItemPane* forPane, int itemIndexInCurrentCategory); + const std::vector& getItems(const ItemPane* forPane); +protected: + void setSingleCategoryAndIcon(int categoryBitmask, int categoryIcon); +private: + /// Filter out non craftable recipes. + /// The default implementation calls bool filterRecipe(r) for every + /// Recipe r and keeps the ones that returned true. + /// A crafting size filter has already been applied. + virtual void filterRecipes(RecipeList& recipes); + virtual bool filterRecipe(const Recipe& recipe) = 0; + + void initCategories(); + + void addItem(Recipe* recipe); + void recheckRecipes(); + void onItemSelected(int buttonIndex, CItem* item); + void clearCategoryItems(); + + void craftSelectedItem(); + std::vector _categoryButtons; + + ItemList _items; + std::vector _categories; + + int currentCategory; + CItem* currentItem; + std::string currentItemDesc; + std::vector currentCategoryButtons; + ImageButton btnClose; + CraftButton btnCraft; + + int craftingSize; + + ItemPane* pane; + IntRectangle paneRect; + //int paneX; + //int paneW; + + int numCategories; + std::vector categoryBitmasks; + std::vector categoryIcons; + ImageButton* selectedCategoryButton; + + // GUI elements such as 9-Patches + NinePatchLayer* guiBackground; + NinePatchLayer* guiSlotCategory; + NinePatchLayer* guiSlotCategorySelected; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_PaneCraftingScreen_H__*/ diff --git a/src/client/gui/screens/crafting/StonecutterScreen.cpp b/src/client/gui/screens/crafting/StonecutterScreen.cpp new file mode 100755 index 0000000..08a0fdd --- /dev/null +++ b/src/client/gui/screens/crafting/StonecutterScreen.cpp @@ -0,0 +1,17 @@ +#include "StonecutterScreen.h" +#include "CraftingFilters.h" +#include "../../../../world/level/material/Material.h" +#include "../../../../world/item/ItemCategory.h" + +StonecutterScreen::StonecutterScreen() +: super(Recipe::SIZE_3X3) +{ + setSingleCategoryAndIcon(ItemCategory::Structures, 5); +} + +StonecutterScreen::~StonecutterScreen() { +} + +bool StonecutterScreen::filterRecipe(const Recipe& r) { + return CraftingFilters::isStonecutterItem(r.getResultItem()); +} diff --git a/src/client/gui/screens/crafting/StonecutterScreen.h b/src/client/gui/screens/crafting/StonecutterScreen.h new file mode 100755 index 0000000..4baf0df --- /dev/null +++ b/src/client/gui/screens/crafting/StonecutterScreen.h @@ -0,0 +1,17 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_StonecutterScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_StonecutterScreen_H__ + +#include "PaneCraftingScreen.h" + +class StonecutterScreen: public PaneCraftingScreen +{ + typedef PaneCraftingScreen super; +public: + StonecutterScreen(); + ~StonecutterScreen(); + +private: + bool filterRecipe(const Recipe& r); +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_StonecutterScreen_H__*/ diff --git a/src/client/gui/screens/crafting/WorkbenchScreen.cpp b/src/client/gui/screens/crafting/WorkbenchScreen.cpp new file mode 100755 index 0000000..3c29dfc --- /dev/null +++ b/src/client/gui/screens/crafting/WorkbenchScreen.cpp @@ -0,0 +1,15 @@ +#include "WorkbenchScreen.h" +#include "CraftingFilters.h" +#include "../../../../world/level/material/Material.h" + +WorkbenchScreen::WorkbenchScreen(int craftingSize) +: super(craftingSize) +{ +} + +WorkbenchScreen::~WorkbenchScreen() { +} + +bool WorkbenchScreen::filterRecipe(const Recipe& r) { + return !CraftingFilters::isStonecutterItem(r.getResultItem()); +} diff --git a/src/client/gui/screens/crafting/WorkbenchScreen.h b/src/client/gui/screens/crafting/WorkbenchScreen.h new file mode 100755 index 0000000..e4e5c24 --- /dev/null +++ b/src/client/gui/screens/crafting/WorkbenchScreen.h @@ -0,0 +1,17 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_WorkbenchScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_WorkbenchScreen_H__ + +#include "PaneCraftingScreen.h" + +class WorkbenchScreen: public PaneCraftingScreen +{ + typedef PaneCraftingScreen super; +public: + WorkbenchScreen(int craftingSize); + ~WorkbenchScreen(); + +private: + bool filterRecipe(const Recipe& r); +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_CRAFT_WorkbenchScreen_H__*/ diff --git a/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp b/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp new file mode 100755 index 0000000..db0b3ef --- /dev/null +++ b/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.cpp @@ -0,0 +1,268 @@ +#include "TouchIngameBlockSelectionScreen.h" +#include "../crafting/WorkbenchScreen.h" +#include "../../Screen.h" +#include "../../components/ImageButton.h" +#include "../../components/InventoryPane.h" +#include "../../../gamemode/GameMode.h" +#include "../../../renderer/TileRenderer.h" +#include "../../../player/LocalPlayer.h" +#include "../../../renderer/gles.h" +#include "../../../renderer/entity/ItemRenderer.h" +#include "../../../renderer/Tesselator.h" +#include "../../../renderer/Textures.h" +#include "../../../Minecraft.h" +#include "../../../sound/SoundEngine.h" +#include "../../../../world/entity/player/Inventory.h" +#include "../../../../platform/input/Mouse.h" +#include "../../../../util/Mth.h" +#include "../../../../world/item/ItemInstance.h" +#include "../../../../world/entity/player/Player.h" +#include "../../../../world/item/crafting/Recipe.h" +#include "../../../player/input/touchscreen/TouchAreaModel.h" +#include "../ArmorScreen.h" + +namespace Touch { + +#if defined(__APPLE__) + static const std::string demoVersionString("Not available in the Lite version"); +#else + static const std::string demoVersionString("Not available in the demo version"); +#endif + +#ifdef __APPLE__ + static const float BorderPixels = 4; + #ifdef DEMO_MODE + static const float BlockPixels = 22; + #else + static const float BlockPixels = 22; + #endif +#else + static const float BorderPixels = 4; + static const float BlockPixels = 24; +#endif + +static const int ItemSize = (int)(BlockPixels + 2*BorderPixels); + +static const int Bx = 10; // Border Frame width +static const int By = 6; // Border Frame height + +// +// Block selection screen +// +IngameBlockSelectionScreen::IngameBlockSelectionScreen() +: selectedItem(0), + _blockList(NULL), + _pendingClose(false), + bArmor (4, "Armor"), + bDone (3, ""), + //bDone (3, "Done"), + bMenu (2, "Menu"), + bCraft (1, "Craft"), + bHeader (0, "Select blocks") +{ +} + +IngameBlockSelectionScreen::~IngameBlockSelectionScreen() +{ + delete _blockList; +} + +void IngameBlockSelectionScreen::init() +{ + Inventory* inventory = minecraft->player->inventory; + + //const int itemWidth = 2 * BorderPixels + + + int maxWidth = width - Bx - Bx; + InventoryColumns = maxWidth / ItemSize; + const int realWidth = InventoryColumns * ItemSize; + const int realBx = (width - realWidth) / 2; + + IntRectangle rect(realBx, +#ifdef __APPLE__ + 24 + By - ((width==240)?1:0), realWidth, ((width==240)?1:0) + height-By-By-20-24); +#else + 24 + By, realWidth, height-By-By-20-24); +#endif + + _blockList = new InventoryPane(this, minecraft, rect, width, BorderPixels, inventory->getContainerSize() - Inventory::MAX_SELECTION_SIZE, ItemSize, (int)BorderPixels); + _blockList->fillMarginX = realBx; + + //for (int i = 0; i < inventory->getContainerSize(); ++i) + //LOGI("> %d - %s\n", i, inventory->getItem(i)? inventory->getItem(i)->getDescriptionId().c_str() : "<-->\n"); + + InventorySize = inventory->getContainerSize(); + InventoryRows = 1 + (InventorySize-1) / InventoryColumns; + + // + // Buttons + // + ImageDef def; + def.name = "gui/spritesheet.png"; + def.x = 0; + def.y = 1; + def.width = def.height = 18; + def.setSrc(IntRectangle(60, 0, 18, 18)); + bDone.setImageDef(def, true); + bDone.width = bDone.height = 19; + + bDone.scaleWhenPressed = false; + + buttons.push_back(&bHeader); + buttons.push_back(&bDone); + if (!minecraft->isCreativeMode()) { + buttons.push_back(&bCraft); + buttons.push_back(&bArmor); + } +} + +void IngameBlockSelectionScreen::setupPositions() { + bHeader.y = bDone.y = bCraft.y = 0; + bDone.x = width - bDone.width; + bCraft.x = 0;//width - bDone.w - bCraft.w; + bCraft.width = bArmor.width = 48; + bArmor.x = bCraft.width; + + if (minecraft->isCreativeMode()) { + bHeader.x = 0; + bHeader.width = width;// - bDone.w; + bHeader.xText = width/2; // Center of the screen + } else { + bHeader.x = bCraft.width + bArmor.width; + bHeader.width = width - bCraft.width - bArmor.width;// - bDone.w; + bHeader.xText = bHeader.x + (bHeader.width - bDone.width) /2; + } + + clippingArea.x = 0; + clippingArea.w = minecraft->width; + clippingArea.y = 0; + clippingArea.h = (int)(Gui::GuiScale * 24); +} + +void IngameBlockSelectionScreen::removed() +{ + minecraft->gui.inventoryUpdated(); +} + +int IngameBlockSelectionScreen::getSlotPosX(int slotX) { + // @todo: Number of columns + return width / 2 - InventoryColumns * 10 + slotX * 20 + 2; +} + +int IngameBlockSelectionScreen::getSlotPosY(int slotY) { + return height - 16 - 3 - 22 * 2 - 22 * slotY; +} + +void IngameBlockSelectionScreen::mouseClicked(int x, int y, int buttonNum) { + _pendingClose = _blockList->_clickArea->isInside((float)x, (float)y); + if (!_pendingClose) + super::mouseClicked(x, y, buttonNum); +} + +void IngameBlockSelectionScreen::mouseReleased(int x, int y, int buttonNum) { + if (_pendingClose && _blockList->_clickArea->isInside((float)x, (float)y)) + minecraft->setScreen(NULL); + else + super::mouseReleased(x, y, buttonNum); +} + +bool IngameBlockSelectionScreen::addItem(const InventoryPane* pane, int itemId) +{ + Inventory* inventory = minecraft->player->inventory; + itemId += Inventory::MAX_SELECTION_SIZE; + + if (!inventory->getItem(itemId)) + return false; + + inventory->moveToSelectionSlot(0, itemId, true); + + inventory->selectSlot(0); +#ifdef __APPLE__ + minecraft->soundEngine->playUI("random.pop", 0.3f, 0.3f);//1.0f + 0.2f*(Mth::random()-Mth::random())); +#else + minecraft->soundEngine->playUI("random.pop2", 1.0f, 0.3f);//1.0f + 0.2f*(Mth::random()-Mth::random())); +#endif + + // Flash the selected gui item + minecraft->gui.flashSlot(inventory->selected); + return true; +} + +void IngameBlockSelectionScreen::tick() +{ + _blockList->tick(); + super::tick(); +} + +void IngameBlockSelectionScreen::render( int xm, int ym, float a ) +{ + glDisable2(GL_DEPTH_TEST); + glEnable2(GL_BLEND); + + Screen::render(xm, ym, a); + _blockList->render(xm, ym, a); + + // render frame + IntRectangle& bbox = _blockList->rect; + Tesselator::instance.colorABGR(0xffffffff); + minecraft->textures->loadAndBindTexture("gui/itemframe.png"); + glEnable2(GL_BLEND); + glColor4f2(1, 1, 1, 1); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + blit(0, bbox.y-By, 0, 0, width, bbox.h+By+By, 215, 256); // why bbox.h + 1*B? + glDisable2(GL_BLEND); + + glEnable2(GL_DEPTH_TEST); +} + +void IngameBlockSelectionScreen::renderDemoOverlay() { +#ifdef DEMO_MODE + fill( getSlotPosX(0) - 3, getSlotPosY(1) - 3, + getSlotPosX(9) - 3, getSlotPosY(-1) - 3, 0xa0 << 24); + + const int centerX = (getSlotPosX(4) + getSlotPosX(5)) / 2; + const int centerY = (getSlotPosY(0) + getSlotPosY(1)) / 2 + 5; + drawCenteredString(minecraft->font, demoVersionString, centerX, centerY, 0xffffffff); +#endif /*DEMO_MODE*/ +} + +void IngameBlockSelectionScreen::buttonClicked(Button* button) { + if (button->id == bDone.id) + minecraft->setScreen(NULL); + + if (button->id == bMenu.id) + minecraft->screenChooser.setScreen(SCREEN_PAUSE); + + if (button->id == bCraft.id) + minecraft->setScreen(new WorkbenchScreen(Recipe::SIZE_2X2)); + + if (button == &bArmor) + minecraft->setScreen(new ArmorScreen()); +} + +bool IngameBlockSelectionScreen::isAllowed( int slot ) +{ + if (slot < 0 || slot >= minecraft->player->inventory->getContainerSize()) + return false; + +#ifdef DEMO_MODE + if (slot >= (minecraft->isCreativeMode()? 28 : 27)) return false; +#endif + return true; +} + +bool IngameBlockSelectionScreen::hasClippingArea( IntRectangle& out ) +{ + out = clippingArea; + return true; +} + +std::vector IngameBlockSelectionScreen::getItems( const InventoryPane* forPane ) +{ + std::vector out; + for (int i = Inventory::MAX_SELECTION_SIZE; i < minecraft->player->inventory->getContainerSize(); ++i) + out.push_back(minecraft->player->inventory->getItem(i)); + return out; +} + +} diff --git a/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.h b/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.h new file mode 100755 index 0000000..1bfa25b --- /dev/null +++ b/src/client/gui/screens/touch/TouchIngameBlockSelectionScreen.h @@ -0,0 +1,69 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchIngameBlockSelectionScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchIngameBlockSelectionScreen_H__ + +#include "../../Screen.h" +#include "../../components/InventoryPane.h" +#include "../../components/Button.h" +#include "../../components/ScrollingPane.h" +#include "../../components/ItemPane.h" +#include "../../TweenData.h" +#include "../../../player/input/touchscreen/TouchAreaModel.h" +#include "../../../../AppPlatform.h" + +namespace Touch { + +class IngameBlockSelectionScreen : public Screen, + public IInventoryPaneCallback +{ + typedef Screen super; + +public: + IngameBlockSelectionScreen(); + virtual ~IngameBlockSelectionScreen(); + + virtual void init(); + virtual void setupPositions(); + virtual void removed(); + + void tick(); + void render(int xm, int ym, float a); + + bool hasClippingArea(IntRectangle& out); + + // IInventoryPaneCallback + bool addItem(const InventoryPane* pane, int itemId); + bool isAllowed(int slot); + std::vector getItems(const InventoryPane* forPane); + + void buttonClicked(Button* button); +protected: + virtual void mouseClicked(int x, int y, int buttonNum); + virtual void mouseReleased(int x, int y, int buttonNum); +private: + void renderDemoOverlay(); + + //int getLinearSlotId(int x, int y); + int getSlotPosX(int slotX); + int getSlotPosY(int slotY); + +private: + int selectedItem; + bool _pendingClose; + InventoryPane* _blockList; + + THeader bHeader; + ImageButton bDone; + TButton bCraft; + TButton bArmor; + TButton bMenu; + + IntRectangle clippingArea; + + int InventoryRows; + int InventorySize; + int InventoryColumns; +}; + +} + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchIngameBlockSelectionScreen_H__*/ diff --git a/src/client/gui/screens/touch/TouchJoinGameScreen.cpp b/src/client/gui/screens/touch/TouchJoinGameScreen.cpp new file mode 100755 index 0000000..8c8a955 --- /dev/null +++ b/src/client/gui/screens/touch/TouchJoinGameScreen.cpp @@ -0,0 +1,233 @@ +#include "TouchJoinGameScreen.h" +#include "../StartMenuScreen.h" +#include "../ProgressScreen.h" +#include "../../Font.h" +#include "../../../Minecraft.h" +#include "../../../renderer/Textures.h" + +namespace Touch { + +// +// Games list +// + +void AvailableGamesList::selectStart( int item) { + startSelected = item; +} + +void AvailableGamesList::selectCancel() { + startSelected = -1; +} + +void AvailableGamesList::selectItem( int item, bool doubleClick ) { + LOGI("selected an item! %d\n", item); + selectedItem = item; +} + +void AvailableGamesList::renderItem( int i, int x, int y, int h, Tesselator& t ) +{ + if (startSelected == i && Multitouch::getFirstActivePointerIdEx() >= 0) { + fill((int)x0, y, (int)x1, y+h, 0x809E684F); + } + + //static int colors[2] = {0xffffb0, 0xcccc90}; + const PingedCompatibleServer& s = copiedServerList[i]; + unsigned int color = s.isSpecial? 0x6090a0 : 0xffffb0; + unsigned int color2 = 0xffffa0;//colors[i&1]; + + int xx1 = (int)x0 + 24; + int xx2 = xx1; + + if (s.isSpecial) { + xx1 += 50; + + glEnable2(GL_TEXTURE_2D); + glColor4f2(1,1,1,1); + glEnable2(GL_BLEND); + minecraft->textures->loadAndBindTexture("gui/badge/minecon140.png"); + blit(xx2, y + 6, 0, 0, 37, 8, 140, 240); + } + + drawString(minecraft->font, s.name.C_String(), xx1, y + 4 + 2, color); + drawString(minecraft->font, s.address.ToString(false), xx2, y + 18, color2); + + /* + drawString(minecraft->font, copiedServerList[i].name.C_String(), (int)x0 + 24, y + 4, color); + drawString(minecraft->font, copiedServerList[i].address.ToString(false), (int)x0 + 24, y + 18, color); + */ +} + + +// +// Join Game screen +// +JoinGameScreen::JoinGameScreen() +: bJoin( 2, "Join Game"), + bBack( 3, "Back"), + bHeader(0, ""), + gamesList(NULL) +{ + bJoin.active = false; + //gamesList->yInertia = 0.5f; +} + +JoinGameScreen::~JoinGameScreen() +{ + delete gamesList; +} + +void JoinGameScreen::init() +{ + //buttons.push_back(&bJoin); + buttons.push_back(&bBack); + buttons.push_back(&bHeader); + + minecraft->raknetInstance->clearServerList(); + gamesList = new AvailableGamesList(minecraft, width, height); + +#ifdef ANDROID + //tabButtons.push_back(&bJoin); + tabButtons.push_back(&bBack); +#endif +} + +void JoinGameScreen::setupPositions() { + //int yBase = height - 26; + + //#ifdef ANDROID + bJoin.y = 0; + bBack.y = 0; + bHeader.y = 0; + //#endif + + // Center buttons + //bJoin.x = width / 2 - 4 - bJoin.w; + bBack.x = 0;//width / 2 + 4; + bHeader.x = bBack.width; + bHeader.width = width - bHeader.x; +} + +void JoinGameScreen::buttonClicked(Button* button) +{ + if (button->id == bJoin.id) + { + if (isIndexValid(gamesList->selectedItem)) + { + PingedCompatibleServer selectedServer = gamesList->copiedServerList[gamesList->selectedItem]; + minecraft->joinMultiplayer(selectedServer); + { + bJoin.active = false; + bBack.active = false; + minecraft->setScreen(new ProgressScreen()); + } + } + //minecraft->locateMultiplayer(); + //minecraft->setScreen(new JoinGameScreen()); + } + if (button->id == bBack.id) + { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } +} + +bool JoinGameScreen::handleBackEvent(bool isDown) +{ + if (!isDown) + { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + return true; +} + + +bool JoinGameScreen::isIndexValid( int index ) +{ + return gamesList && index >= 0 && index < gamesList->getNumberOfItems(); +} + +void JoinGameScreen::tick() +{ + if (isIndexValid(gamesList->selectedItem)) { + buttonClicked(&bJoin); + return; + } + + //gamesList->tick(); + + const ServerList& orgServerList = minecraft->raknetInstance->getServerList(); + ServerList serverList; + for (unsigned int i = 0; i < orgServerList.size(); ++i) + if (orgServerList[i].name.GetLength() > 0) + serverList.push_back(orgServerList[i]); + + if (serverList.size() != gamesList->copiedServerList.size()) + { + // copy the currently selected item + PingedCompatibleServer selectedServer; + bool hasSelection = false; + if (isIndexValid(gamesList->selectedItem)) + { + selectedServer = gamesList->copiedServerList[gamesList->selectedItem]; + hasSelection = true; + } + + gamesList->copiedServerList = serverList; + gamesList->selectItem(-1, false); + + // re-select previous item if it still exists + if (hasSelection) + { + for (unsigned int i = 0; i < gamesList->copiedServerList.size(); i++) + { + if (gamesList->copiedServerList[i].address == selectedServer.address) + { + gamesList->selectItem(i, false); + break; + } + } + } + } else { + for (int i = (int)gamesList->copiedServerList.size()-1; i >= 0 ; --i) { + for (int j = 0; j < (int) serverList.size(); ++j) + if (serverList[j].address == gamesList->copiedServerList[i].address) + gamesList->copiedServerList[i].name = serverList[j].name; + } + } + + bJoin.active = isIndexValid(gamesList->selectedItem); +} + +void JoinGameScreen::render( int xm, int ym, float a ) +{ + bool hasNetwork = minecraft->platform()->isNetworkEnabled(true); +#ifdef WIN32 + hasNetwork = hasNetwork && !GetAsyncKeyState(VK_TAB); +#endif + + renderBackground(); + if (hasNetwork) gamesList->render(xm, ym, a); + else gamesList->renderDirtBackground(); + Screen::render(xm, ym, a); + + const int baseX = bHeader.x + bHeader.width / 2; + + if (hasNetwork) { + std::string s = "Scanning for WiFi Games..."; + drawCenteredString(minecraft->font, s, baseX, 8, 0xffffffff); + + const int textWidth = minecraft->font->width(s); + const int spinnerX = baseX + textWidth / 2 + 6; + + static const char* spinnerTexts[] = {"-", "\\", "|", "/"}; + int n = ((int)(5.5f * getTimeS()) % 4); + drawCenteredString(minecraft->font, spinnerTexts[n], spinnerX, 8, 0xffffffff); + } else { + drawCenteredString(minecraft->font, "WiFi is disabled", baseX, 8, 0xffffffff); + } +} + +bool JoinGameScreen::isInGameScreen() { return false; } + +}; diff --git a/src/client/gui/screens/touch/TouchJoinGameScreen.h b/src/client/gui/screens/touch/TouchJoinGameScreen.h new file mode 100755 index 0000000..fa0debb --- /dev/null +++ b/src/client/gui/screens/touch/TouchJoinGameScreen.h @@ -0,0 +1,74 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchJoinGameScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchJoinGameScreen_H__ + +#include "../../Screen.h" +#include "../../components/Button.h" +#include "../../components/SmallButton.h" +#include "../../components/RolledSelectionListV.h" +#include "../../../Minecraft.h" +#include "../../../../platform/input/Multitouch.h" +#include "../../../../network/RakNetInstance.h" + +namespace Touch { + +class JoinGameScreen; + +class AvailableGamesList : public RolledSelectionListV +{ + int startSelected; + int selectedItem; + ServerList copiedServerList; + + friend class JoinGameScreen; + +public: + AvailableGamesList(Minecraft* _minecraft, int _width, int _height) + : RolledSelectionListV(_minecraft, _width, _height, 0, _width, 24, _height, 34), + selectedItem(-1), + startSelected(-1) + { + } + +protected: + + virtual int getNumberOfItems() { return (int)copiedServerList.size(); } + + virtual void selectCancel(); + virtual void selectStart(int item); + virtual void selectItem(int item, bool doubleClick); + + virtual bool isSelectedItem(int item) { return item == selectedItem; } + + virtual void renderBackground() {} + virtual void renderItem(int i, int x, int y, int h, Tesselator& t); +}; + +class JoinGameScreen: public Screen +{ +public: + JoinGameScreen(); + virtual ~JoinGameScreen(); + + void init(); + void setupPositions(); + + virtual bool handleBackEvent(bool isDown); + + virtual bool isIndexValid(int index); + + virtual void tick(); + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + + bool isInGameScreen(); +private: + Button bJoin; + TButton bBack; + THeader bHeader; + AvailableGamesList* gamesList; +}; + +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchJoinGameScreen_H__*/ diff --git a/src/client/gui/screens/touch/TouchSelectWorldScreen.cpp b/src/client/gui/screens/touch/TouchSelectWorldScreen.cpp new file mode 100755 index 0000000..bc0d977 --- /dev/null +++ b/src/client/gui/screens/touch/TouchSelectWorldScreen.cpp @@ -0,0 +1,584 @@ +#include "TouchSelectWorldScreen.h" +#include "../StartMenuScreen.h" +#include "../ProgressScreen.h" +#include "../DialogDefinitions.h" +#include "../../components/ImageButton.h" //weird! +#include "../../../renderer/Textures.h" +#include "../../../renderer/Tesselator.h" +#include "../../../../world/level/LevelSettings.h" +#include "../../../../AppPlatform.h" +#include "../../../../util/StringUtils.h" +#include "../../../../util/Mth.h" +#include "../../../../platform/input/Mouse.h" +#include "../../../../Performance.h" + +#include +#include +#include "../SimpleChooseLevelScreen.h" + +namespace Touch { + +// +// World Selection List +// +TouchWorldSelectionList::TouchWorldSelectionList( Minecraft* minecraft, int width, int height ) +: _height(height), + hasPickedLevel(false), + pickedIndex(-1), + currentTick(0), + stoppedTick(-1), + mode(0), + _newWorldSelected(false), + RolledSelectionListH(minecraft, width, height, 0, width, 24, height-32, 120) +{ + _renderBottomBorder = false; + //setRenderSelection(false); +} + +int TouchWorldSelectionList::getNumberOfItems() { + return (int)levels.size() + 1; +} + +void TouchWorldSelectionList::selectItem( int item, bool doubleClick ) { + if (selectedItem < 0) + return; + + const int delta = item - selectedItem; + + if (delta == -1) + stepLeft(); + if (delta == +1) + stepRight(); + if (delta == 0 ) { + if (!hasPickedLevel) { + hasPickedLevel = true; + pickedIndex = item; + if (item < (int)levels.size()) + pickedLevel = levels[item]; + } + } +} + +bool TouchWorldSelectionList::isSelectedItem( int item ) { + return item == selectedItem; +} + +void TouchWorldSelectionList::selectStart(int item, int localX, int localY) { + if (selectedItem != (int) levels.size() || item != selectedItem) + return; + _newWorldSelected = true; +} + +void TouchWorldSelectionList::selectCancel() { + _newWorldSelected = false; +} + +void TouchWorldSelectionList::renderItem( int i, int x, int y, int h, Tesselator& t ) { + int centerx = x + itemWidth/2; + float a0 = Mth::Max(1.1f - std::abs( width / 2 - centerx ) * 0.0055f, 0.2f); + if (a0 > 1) a0 = 1; + int textColor = (int)(255.0f * a0) * 0x010101; + int textColor2 = (int)(140.0f * a0) * 0x010101; + const int TX = centerx - itemWidth / 2 + 5; + const int TY = y + 44; //@kindle-res:42 + + if (i < (int)levels.size()) { + // Draw the worlds + StringVector v = _descriptions[i]; + drawString(minecraft->font, v[0].c_str(), TX, TY + 0, textColor); + drawString(minecraft->font, v[1].c_str(), TX, TY + 10, textColor2); + drawString(minecraft->font, v[2].c_str(), TX, TY + 20, textColor2); + drawString(minecraft->font, v[3].c_str(), TX, TY + 30, textColor2); + + minecraft->textures->loadAndBindTexture(_imageNames[i]); + t.color(0.3f, 1.0f, 0.2f); + + //float x0 = (float)x; + //float x1 = (float)x + (float)itemWidth; + + const float IY = (float)y - 8; // @kindle-res: -3 + t.begin(); + t.color(textColor); + t.vertexUV((float)(centerx-32), IY, blitOffset, 0, 0.125f); + t.vertexUV((float)(centerx-32), IY + 48, blitOffset, 0, 0.875f); //@kindle-res: +44 + t.vertexUV((float)(centerx+32), IY + 48, blitOffset, 1, 0.875f); //@kindle-res: +44 + t.vertexUV((float)(centerx+32), IY, blitOffset, 1, 0.125f); + t.draw(); + } else { + // Draw the "Create new world" icon + drawCenteredString(minecraft->font, "Create new", centerx, TY + 12, textColor); + + minecraft->textures->loadAndBindTexture("gui/touchgui.png"); + + const bool selected = _newWorldSelected; + + const float W = 54.0f; + const float H = 54.0f; + const float IY = (float)y; + const float u0 = (168.0f ) / 256.0f; + const float u1 = (168.0f + W) / 256.0f; + float v0 = (32.0f ) / 256.0f; + float v1 = (32.0f + H) / 256.0f; + if (selected) { + v0 += H / 256.0f; + v1 += H / 256.0f; + } + + t.begin(); + t.color(textColor); + t.vertexUV((float)centerx - W*0.5f, IY, blitOffset, u0, v0); + t.vertexUV((float)centerx - W*0.5f, IY + H, blitOffset, u0, v1); + t.vertexUV((float)centerx + W*0.5f, IY + H, blitOffset, u1, v1); + t.vertexUV((float)centerx + W*0.5f, IY, blitOffset, u1, v0); + t.draw(); + } +} + +void TouchWorldSelectionList::stepLeft() { + if (selectedItem > 0) { + int xoffset = (int)(xo - ((float)(selectedItem * itemWidth) + ((float)(itemWidth-width)) * 0.5f)); + td.start = xo; + td.stop = xo - itemWidth - xoffset; + td.cur = 0; + td.dur = 8; + mode = 1; + tweenInited(); + } +} + +void TouchWorldSelectionList::stepRight() { + if (selectedItem >= 0 && selectedItem < getNumberOfItems()-1) { + int xoffset = (int)(xo - ((float)(selectedItem * itemWidth) + ((float)(itemWidth-width)) * 0.5f)); + td.start = xo; + td.stop = xo + itemWidth - xoffset; + td.cur = 0; + td.dur = 8; + mode = 1; + tweenInited(); + } +} + +void TouchWorldSelectionList::commit() { + for (unsigned int i = 0; i < levels.size(); ++i) { + LevelSummary& level = levels[i]; + + std::stringstream ss; + ss << level.name << "/preview.png"; + TextureId id = Textures::InvalidId;//minecraft->textures->loadTexture(ss.str(), false); + + if (id != Textures::InvalidId) { + _imageNames.push_back( ss.str() ); + } else { + _imageNames.push_back("gui/default_world.png"); + } + + StringVector lines; + lines.push_back(levels[i].name); + lines.push_back(minecraft->platform()->getDateString(levels[i].lastPlayed)); + lines.push_back(levels[i].id); + lines.push_back(LevelSettings::gameTypeToString(level.gameType)); + _descriptions.push_back(lines); + + selectedItem = 0; + } +} + +static float quadraticInOut(float t, float dur, float start, float stop) { + const float delta = stop - start; + const float T = (t / dur) * 2.0f; + if (T < 1) return 0.5f*delta*T*T + start; + return -0.5f*delta * ((T-1)*(T-3) - 1) + start; +} + +void TouchWorldSelectionList::tick() +{ + RolledSelectionListH::tick(); + + ++currentTick; + + if (Mouse::isButtonDown(MouseAction::ACTION_LEFT) || dragState == 0) + return; + + // Handle the tween (when in "mode 1") + selectedItem = -1; + if (mode == 1) { + if (++td.cur == td.dur) { + mode = 0; + xInertia = 0; + xoo = xo = td.stop; + selectedItem = getItemAtPosition(width/2, height/2); + } else { + tweenInited(); + } + return; + } + + // It's still going fast, let it run + float speed = Mth::abs(xInertia); + bool slowEnoughToBeBothered = speed < 5.0f; + if (!slowEnoughToBeBothered) { + xInertia = xInertia * .9f; + return; + } + + xInertia *= 0.8f; + + if (speed < 1 && dragState < 0) { + const int offsetx = (width-itemWidth) / 2; + const float pxo = xo + offsetx; + int index = getItemAtXPositionRaw((int)(pxo - 10*xInertia)); + int indexPos = index*itemWidth; + + // Pick closest + float diff = (float)indexPos - pxo; + if (diff < -itemWidth/2) { + diff += itemWidth; + index++; + //indexPos += itemWidth; + } + if (Mth::abs(diff) < 1 && speed < 0.1f) { + selectedItem = getItemAtPosition(width/2, height/2); + return; + } + + td.start = xo; + td.stop = xo + diff; + td.cur = 0; + td.dur = (float) Mth::Min(7, 1 + (int)(Mth::abs(diff) * 0.25f)); + mode = 1; + //LOGI("inited-t %d\n", dragState); + tweenInited(); + } +} + +float TouchWorldSelectionList::getPos( float alpha ) +{ + if (mode != 1) return RolledSelectionListH::getPos(alpha); + + float x0 = quadraticInOut(td.cur, td.dur, td.start, td.stop); + float x1 = quadraticInOut(td.cur+1, td.dur, td.start, td.stop); + return x0 + (x1-x0)*alpha; +} + +bool TouchWorldSelectionList::capXPosition() { + bool capped = RolledSelectionListH::capXPosition(); + if (capped) mode = 0; + return capped; +} + +void TouchWorldSelectionList::tweenInited() { + float x0 = quadraticInOut(td.cur, td.dur, td.start, td.stop); + float x1 = quadraticInOut(td.cur+1, td.dur, td.start, td.stop); + _xinertia = 0; + xInertia = x0-x1; // yes, it's all backwards and messed up.. +} + +// +// Select World Screen +// +SelectWorldScreen::SelectWorldScreen() +: bDelete (1, ""), + bCreate (2, "Create new"), + bBack (3, "Back"), + bHeader (0, "Select world"), + bWorldView(4, ""), + worldsList(NULL), + _hasStartedLevel(false), + _state(_STATE_DEFAULT) +{ + bDelete.active = false; + + // Delete button + ImageDef def; + def.name = "gui/touchgui.png"; + def.width = 34; + def.height = 26; + + def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height)); + bDelete.setImageDef(def, true); + + // Create new, and Back button +/* + def.src.y = 26; // @ 0, 26 + def.src.w = def.w = 66; // 66, 26 size + bBack.setImageDef(def, true); + bCreate.setImageDef(def, true); +*/ +} + +SelectWorldScreen::~SelectWorldScreen() +{ + delete worldsList; +} + +void SelectWorldScreen::init() +{ + worldsList = new TouchWorldSelectionList(minecraft, width, height); + loadLevelSource(); + worldsList->commit(); + + buttons.push_back(&bDelete); + buttons.push_back(&bCreate); + buttons.push_back(&bBack); + buttons.push_back(&bHeader); + + _mouseHasBeenUp = !Mouse::getButtonState(MouseAction::ACTION_LEFT); + + tabButtons.push_back(&bWorldView); + tabButtons.push_back(&bDelete); + tabButtons.push_back(&bCreate); + tabButtons.push_back(&bBack); +} + +void SelectWorldScreen::setupPositions() { + //#ifdef ANDROID + bCreate.y = 0; + bBack.y = 0; + bHeader.y = 0; + bDelete.y = height - 30; + + // Center buttons + bDelete.x = (width - bDelete.width) / 2; + bCreate.x = width - bCreate.width;//width / 2 - bCreate.w / 2; + bBack.x = 0;//width / 2 + 4 + bCreate.w - bBack.w / 2; + bHeader.x = bBack.width; + bHeader.width = width - (bBack.width + bCreate.width); + bHeader.height = bCreate.height; +} + +void SelectWorldScreen::buttonClicked(Button* button) +{ + if (button->id == bCreate.id) { + if (_state == _STATE_DEFAULT && !_hasStartedLevel) { + minecraft->platform()->createUserInput(DialogDefinitions::DIALOG_CREATE_NEW_WORLD); + _state = _STATE_CREATEWORLD; + } + } + if (button->id == bDelete.id) { + if (isIndexValid(worldsList->selectedItem)) { + LevelSummary level = worldsList->levels[worldsList->selectedItem]; + LOGI("level: %s, %s\n", level.id.c_str(), level.name.c_str()); + minecraft->setScreen( new TouchDeleteWorldScreen(level) ); + } + } + if (button->id == bBack.id) { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + if (button->id == bWorldView.id) { + // Try to "click" the item in the middle + worldsList->selectItem( worldsList->getItemAtPosition(width/2, height/2), false ); + } +} + +bool SelectWorldScreen::handleBackEvent(bool isDown) +{ + if (!isDown) + { + minecraft->cancelLocateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_STARTMENU); + } + return true; +} + +bool SelectWorldScreen::isIndexValid( int index ) +{ + return worldsList && index >= 0 && index < worldsList->getNumberOfItems() - 1; +} + +static char ILLEGAL_FILE_CHARACTERS[] = { + '/', '\n', '\r', '\t', '\0', '\f', '`', '?', '*', '\\', '<', '>', '|', '\"', ':' +}; + +void SelectWorldScreen::tick() +{ + if (_state == _STATE_CREATEWORLD) { + #if defined(RPI) + std::string levelId = getUniqueLevelName("perf"); + //int seed = Util::hashCode("/r/Minecraft"); + LevelSettings settings(getEpochTimeS(), GameType::Creative); + minecraft->selectLevel(levelId, levelId, settings); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + _hasStartedLevel = true; + #elif defined(WIN32) + std::string name = getUniqueLevelName("perf"); + minecraft->setScreen(new SimpleChooseLevelScreen(name)); + #else + int status = minecraft->platform()->getUserInputStatus(); + //LOGI("Status is: %d\n", status); + if (status > -1) { + if (status == 1) { + StringVector sv = minecraft->platform()->getUserInput(); + + // Read the level name. + // 1) Trim name 2) Remove all bad chars 3) Append '-' chars 'til the name is unique + std::string levelName = Util::stringTrim(sv[0]); + std::string levelId = levelName; + + for (int i = 0; i < sizeof(ILLEGAL_FILE_CHARACTERS) / sizeof(char); ++i) + levelId = Util::stringReplace(levelId, std::string(1, ILLEGAL_FILE_CHARACTERS[i]), ""); + if ((int)levelId.length() == 0) { + levelId = "no_name"; + } + levelId = getUniqueLevelName(levelId); + + // Read the seed + int seed = getEpochTimeS(); + if (sv.size() >= 2) { + std::string seedString = Util::stringTrim(sv[1]); + if (seedString.length() > 0) { + int tmpSeed; + // Try to read it as an integer + if (sscanf(seedString.c_str(), "%d", &tmpSeed) > 0) { + seed = tmpSeed; + } // Hash the "seed" + else { + seed = Util::hashCode(seedString); + } + } + } + // Read the game mode + bool isCreative = true; + if (sv.size() >= 3 && sv[2] == "survival") + isCreative = false; + + // Start a new level with the given name and seed + LOGI("Creating a level with id '%s', name '%s' and seed '%d'\n", levelId.c_str(), levelName.c_str(), seed); + LevelSettings settings(seed, isCreative? GameType::Creative : GameType::Survival); + minecraft->selectLevel(levelId, levelName, settings); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + _hasStartedLevel = true; + } + _state = _STATE_DEFAULT; + // Reset the world list + worldsList->hasPickedLevel = false; + worldsList->pickedIndex = -1; + } + #endif + + worldsList->hasPickedLevel = false; + return; + } + + worldsList->tick(); + + if (worldsList->hasPickedLevel) { + if (worldsList->pickedIndex == worldsList->levels.size()) { + worldsList->hasPickedLevel = false; + minecraft->platform()->createUserInput(DialogDefinitions::DIALOG_CREATE_NEW_WORLD); + _state = _STATE_CREATEWORLD; + } else { + minecraft->selectLevel(worldsList->pickedLevel.id, worldsList->pickedLevel.name, LevelSettings::None()); + minecraft->hostMultiplayer(); + minecraft->setScreen(new ProgressScreen()); + _hasStartedLevel = true; + return; + } + } + + // copy the currently selected item + LevelSummary selectedWorld; + //bool hasSelection = false; + if (isIndexValid(worldsList->selectedItem)) + { + selectedWorld = worldsList->levels[worldsList->selectedItem]; + //hasSelection = true; + } + + bDelete.active = isIndexValid(worldsList->selectedItem); +} + +void SelectWorldScreen::render( int xm, int ym, float a ) +{ + //Performance::watches.get("sws-full").start(); + //Performance::watches.get("sws-renderbg").start(); + renderBackground(); + //Performance::watches.get("sws-renderbg").stop(); + //Performance::watches.get("sws-worlds").start(); + + worldsList->setComponentSelected(bWorldView.selected); + + if (_mouseHasBeenUp) + worldsList->render(xm, ym, a); + else { + worldsList->render(0, 0, a); + _mouseHasBeenUp = !Mouse::getButtonState(MouseAction::ACTION_LEFT); + } + + //Performance::watches.get("sws-worlds").stop(); + //Performance::watches.get("sws-screen").start(); + Screen::render(xm, ym, a); + //Performance::watches.get("sws-screen").stop(); + + //minecraft->textures->loadAndBindTexture("gui/selectworld/trash.png"); + + //Performance::watches.get("sws-string").start(); + //Performance::watches.get("sws-string").stop(); + + //Performance::watches.get("sws-full").stop(); + //Performance::watches.printEvery(128); +} + +void SelectWorldScreen::loadLevelSource() +{ + LevelStorageSource* levelSource = minecraft->getLevelSource(); + levelSource->getLevelList(levels); + std::sort(levels.begin(), levels.end()); + + for (unsigned int i = 0; i < levels.size(); ++i) { + if (levels[i].id != LevelStorageSource::TempLevelId) + worldsList->levels.push_back( levels[i] ); + } +} + + +std::string SelectWorldScreen::getUniqueLevelName( const std::string& level ) +{ + std::set Set; + for (unsigned int i = 0; i < levels.size(); ++i) + Set.insert(levels[i].id); + + std::string s = level; + while ( Set.find(s) != Set.end() ) + s += "-"; + return s; +} + +bool SelectWorldScreen::isInGameScreen() { return true; } + +void SelectWorldScreen::keyPressed( int eventKey ) +{ + if (bWorldView.selected) { + if (eventKey == minecraft->options.keyLeft.key) + worldsList->stepLeft(); + if (eventKey == minecraft->options.keyRight.key) + worldsList->stepRight(); + } + + Screen::keyPressed(eventKey); +} + +// +// Delete World Screen +// +TouchDeleteWorldScreen::TouchDeleteWorldScreen(const LevelSummary& level) +: ConfirmScreen(NULL, "Are you sure you want to delete this world?", + "'" + level.name + "' will be lost forever!", + "Delete", "Cancel", 0), + _level(level) +{ + tabButtonIndex = 1; +} + +void TouchDeleteWorldScreen::postResult( bool isOk ) +{ + if (isOk) { + LevelStorageSource* storageSource = minecraft->getLevelSource(); + storageSource->deleteLevel(_level.id); + } + minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD); +} + +}; diff --git a/src/client/gui/screens/touch/TouchSelectWorldScreen.h b/src/client/gui/screens/touch/TouchSelectWorldScreen.h new file mode 100755 index 0000000..b187f2f --- /dev/null +++ b/src/client/gui/screens/touch/TouchSelectWorldScreen.h @@ -0,0 +1,122 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchSelectWorldScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchSelectWorldScreen_H__ + +#include "../ConfirmScreen.h" +#include "../../Screen.h" +#include "../../TweenData.h" +#include "../../components/ImageButton.h" +#include "../../components/Button.h" +#include "../../components/RolledSelectionListH.h" +#include "../../../Minecraft.h" +#include "../../../../world/level/storage/LevelStorageSource.h" + + +namespace Touch { + +class SelectWorldScreen; + +// +// Scrolling World selection list +// +class TouchWorldSelectionList : public RolledSelectionListH +{ +public: + TouchWorldSelectionList(Minecraft* _minecraft, int _width, int _height); + virtual void tick(); + void stepLeft(); + void stepRight(); + + void commit(); +protected: + virtual int getNumberOfItems(); + virtual void selectItem(int item, bool doubleClick); + virtual bool isSelectedItem(int item); + + virtual void renderBackground() {} + virtual void renderItem(int i, int x, int y, int h, Tesselator& t); + virtual float getPos(float alpha); + virtual void touched() { mode = 0; } + virtual bool capXPosition(); + + virtual void selectStart(int item, int localX, int localY); + virtual void selectCancel(); +private: + TweenData td; + void tweenInited(); + + int selectedItem; + bool _newWorldSelected; // Is the PLUS button pressed? + int _height; + LevelSummaryList levels; + std::vector _descriptions; + StringVector _imageNames; + + bool hasPickedLevel; + LevelSummary pickedLevel; + int pickedIndex; + + int stoppedTick; + int currentTick; + float accRatio; + int mode; + + friend class SelectWorldScreen; +}; + +// +// Delete World screen +// +class TouchDeleteWorldScreen: public ConfirmScreen +{ +public: + TouchDeleteWorldScreen(const LevelSummary& levelId); +protected: + virtual void postResult(bool isOk); +private: + LevelSummary _level; +}; + + +// +// Select world screen +// +class SelectWorldScreen: public Screen +{ +public: + SelectWorldScreen(); + virtual ~SelectWorldScreen(); + + virtual void init(); + virtual void setupPositions(); + + virtual void tick(); + virtual void render(int xm, int ym, float a); + + virtual bool isIndexValid(int index); + virtual bool handleBackEvent(bool isDown); + virtual void buttonClicked(Button* button); + virtual void keyPressed(int eventKey); + + bool isInGameScreen(); +private: + void loadLevelSource(); + std::string getUniqueLevelName(const std::string& level); + + ImageButton bDelete; + TButton bCreate; + THeader bHeader; + TButton bBack; + Button bWorldView; + TouchWorldSelectionList* worldsList; + LevelSummaryList levels; + + bool _mouseHasBeenUp; + bool _hasStartedLevel; + int _state; + static const int _STATE_DEFAULT = 0; + static const int _STATE_CREATEWORLD = 1; + //LevelStorageSource* levels; +}; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchSelectWorldScreen_H__*/ diff --git a/src/client/gui/screens/touch/TouchStartMenuScreen.cpp b/src/client/gui/screens/touch/TouchStartMenuScreen.cpp new file mode 100755 index 0000000..9adad35 --- /dev/null +++ b/src/client/gui/screens/touch/TouchStartMenuScreen.cpp @@ -0,0 +1,292 @@ +#include "TouchStartMenuScreen.h" +#include "../ProgressScreen.h" +#include "../OptionsScreen.h" +#include "../PauseScreen.h" +#include "../InvalidLicenseScreen.h" +//#include "BuyGameScreen.h" + +#include "../../Font.h" +#include "../../components/SmallButton.h" +#include "../../components/ScrolledSelectionList.h" +#include "../../components/GuiElement.h" + +#include "../../../Minecraft.h" +#include "../../../renderer/Tesselator.h" +#include "../../../renderer/Textures.h" +#include "../../../renderer/TextureData.h" +#include "../../../../SharedConstants.h" +#include "../../../../AppPlatform.h" +#include "../../../../LicenseCodes.h" +#include "../../../../util/Mth.h" + +#include "../DialogDefinitions.h" +#include "../SimpleChooseLevelScreen.h" + +// +// Buy Button implementation +// +BuyButton::BuyButton(int id) +: super(id, "") +{ + ImageDef def; + // Setup the source rectangle + def.setSrc(IntRectangle(64, 182, 190, 55)); + def.width = 75;//rc.w / 3; + def.height = 75 * (55.0f / 190.0f);//rc.h / 3; + def.name = "gui/gui.png"; + + setImageDef(def, true); +} + +void BuyButton::render(Minecraft* minecraft, int xm, int ym) { + glColor4f2(1, 1, 1, 1); + bool hovered = active && (minecraft->useTouchscreen()? (xm >= x && ym >= y && xm < x + width && ym < y + height) : false); + renderBg(minecraft, xm, ym); + TextureId texId = (_imageDef.name.length() > 0)? minecraft->textures->loadAndBindTexture(_imageDef.name) : Textures::InvalidId; + if ( Textures::isTextureIdValid(texId) ) { + const ImageDef& d = _imageDef; + Tesselator& t = Tesselator::instance; + + t.begin(); + if (!active) t.color(0xff808080); + else if (hovered||selected) t.color(0xffcccccc); + //else t.color(0xffe0e0e0); + else t.color(0xffffffff); + + float hx = ((float) d.width) * 0.5f; + float hy = ((float) d.height) * 0.5f; + const float cx = ((float)x+d.x) + hx; + const float cy = ((float)y+d.y) + hy; + if (hovered) { + hx *= 0.95f; + hy *= 0.95f; + } + + const TextureData* td = minecraft->textures->getTemporaryTextureData(texId); + const IntRectangle* src = _imageDef.getSrc(); + if (td != NULL && src != NULL) { + float u0 = (src->x) / (float)td->w; + float u1 = (src->x+src->w) / (float)td->w; + float v0 = (src->y) / (float)td->h; + float v1 = (src->y+src->h) / (float)td->h; + t.vertexUV(cx-hx, cy-hy, blitOffset, u0, v0); + t.vertexUV(cx-hx, cy+hy, blitOffset, u0, v1); + t.vertexUV(cx+hx, cy+hy, blitOffset, u1, v1); + t.vertexUV(cx+hx, cy-hy, blitOffset, u1, v0); + } + t.draw(); + } +} + +namespace Touch { + +// +// Start menu screen implementation +// + +// Some kind of default settings, might be overridden in ::init +StartMenuScreen::StartMenuScreen() +: bHost( 2, "Start Game"), + bJoin( 3, "Join Game"), + bOptions( 4, "Options"), + bBuy( 5), + bTest( 9, "Create") +{ + ImageDef def; + bJoin.width = 75; + def.width = def.height = (float) bJoin.width; + + def.setSrc(IntRectangle(0, 26, (int)def.width, (int)def.width)); + def.name = "gui/touchgui.png"; + IntRectangle& defSrc = *def.getSrc(); + + bOptions.setImageDef(def, true); + + defSrc.y += defSrc.h; + bHost.setImageDef(def, true); + + defSrc.y += defSrc.h; + bJoin.setImageDef(def, true); +} + +StartMenuScreen::~StartMenuScreen() +{ +} + +void StartMenuScreen::init() +{ + buttons.push_back(&bHost); + buttons.push_back(&bJoin); + buttons.push_back(&bOptions); + + //buttons.push_back(&bTest); + + tabButtons.push_back(&bHost); + tabButtons.push_back(&bJoin); + tabButtons.push_back(&bOptions); + + #ifdef DEMO_MODE + buttons.push_back(&bBuy); + tabButtons.push_back(&bBuy); + #endif + + copyright = "\xffMojang AB";//. Do not distribute!"; + + #ifdef PRE_ANDROID23 + std::string versionString = Common::getGameVersionString("j"); + #else + std::string versionString = Common::getGameVersionString(); + #endif + + #ifdef DEMO_MODE + #ifdef __APPLE__ + version = versionString + " (Lite)"; + #else + version = versionString + " (Demo)"; + #endif + #else + version = versionString; + #endif + + #ifdef APPLE_DEMO_PROMOTION + version = versionString + " (Demo)"; + #endif + + bJoin.active = bHost.active = bOptions.active = false; +} + +void StartMenuScreen::setupPositions() { + int yBase = 2 + height / 3; + int buttonWidth = bHost.width; + float spacing = (width - (3.0f * buttonWidth)) / 4; + + //#ifdef ANDROID + bHost.y = yBase; + bJoin.y = yBase; + bOptions.y = yBase; + //#endif + + //bTest.x = 0; //width - bTest.w; + //bTest.y = height - bTest.h; + + // Center buttons + bJoin.x = 0*buttonWidth + (int)(1*spacing); + bHost.x = 1*buttonWidth + (int)(2*spacing); + bOptions.x = 2*buttonWidth + (int)(3*spacing); + //bBuy.y = bOptions.y - bBuy.h - 6; + //bBuy.x = bOptions.x + bOptions.w - bBuy.w; + + bBuy.y = height - bBuy.height - 3; + bBuy.x = (width - bBuy.width) / 2; + + bTest.x = 4; + bTest.y = height - bTest.height - 4; + + copyrightPosX = width - minecraft->font->width(copyright) - 1; + versionPosX = (width - minecraft->font->width(version)) / 2;// - minecraft->font->width(version) - 2; +} + +void StartMenuScreen::tick() { + _updateLicense(); +} + +void StartMenuScreen::buttonClicked(::Button* button) { + + //if (button->id == bTest.id) { + // minecraft->selectLevel("Broken", "Broken", 1317199248); + // minecraft->hostMultiplayer(); + // minecraft->setScreen(new ProgressScreen()); + //} + if (button->id == bHost.id) + { + #if defined(DEMO_MODE) || defined(APPLE_DEMO_PROMOTION) + minecraft->setScreen( new SimpleChooseLevelScreen("_DemoLevel") ); + #else + minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD); + #endif + } + if (button->id == bJoin.id) + { + #ifdef APPLE_DEMO_PROMOTION + minecraft->platform()->createUserInput(DialogDefinitions::DIALOG_DEMO_FEATURE_DISABLED); + #else + minecraft->locateMultiplayer(); + minecraft->screenChooser.setScreen(SCREEN_JOINGAME); + #endif + } + if (button->id == bOptions.id) + { + minecraft->setScreen(new OptionsScreen()); + } + if (button->id == bBuy.id) + { + minecraft->platform()->buyGame(); + //minecraft->setScreen(new BuyGameScreen()); + } +} + +bool StartMenuScreen::isInGameScreen() { return false; } + +void StartMenuScreen::render( int xm, int ym, float a ) +{ + renderBackground(); + + glEnable2(GL_BLEND); + +#if defined(RPI) + TextureId id = minecraft->textures->loadTexture("gui/pi_title.png"); +#else + TextureId id = minecraft->textures->loadTexture("gui/title.png"); +#endif + const TextureData* data = minecraft->textures->getTemporaryTextureData(id); + + if (data) { + minecraft->textures->bind(id); + + const float x = (float)width / 2; + const float y = 4; + const float wh = 0.5f * Mth::Min((float)width/2.0f, (float)data->w / 2); + const float scale = 2.0f * wh / (float)data->w; + const float h = scale * (float)data->h; + + // Render title text + Tesselator& t = Tesselator::instance; + glColor4f2(1, 1, 1, 1); + t.begin(); + t.vertexUV(x-wh, y+h, blitOffset, 0, 1); + t.vertexUV(x+wh, y+h, blitOffset, 1, 1); + t.vertexUV(x+wh, y+0, blitOffset, 1, 0); + t.vertexUV(x-wh, y+0, blitOffset, 0, 0); + t.draw(); + + drawString(font, version, versionPosX, (int)(y+h)+2, /*50,*/ 0xffcccccc);//0x666666); + drawString(font, copyright, copyrightPosX, height - 10, 0xffffff); + //patch->draw(t, 0, 20); + } + Screen::render(xm, ym, a); + glDisable2(GL_BLEND); +} + +void StartMenuScreen::_updateLicense() +{ + int id = minecraft->getLicenseId(); + if (LicenseCodes::isReady(id)) + { + if (LicenseCodes::isOk(id)) + bJoin.active = bHost.active = bOptions.active = true; + else + { + bool hasBuyButton = minecraft->platform()->hasBuyButtonWhenInvalidLicense(); + minecraft->setScreen(new InvalidLicenseScreen(id, hasBuyButton)); + } + } else { + bJoin.active = bHost.active = bOptions.active = false; + } +} + +bool StartMenuScreen::handleBackEvent( bool isDown ) { + minecraft->quit(); + return true; +} + +}; diff --git a/src/client/gui/screens/touch/TouchStartMenuScreen.h b/src/client/gui/screens/touch/TouchStartMenuScreen.h new file mode 100755 index 0000000..7f45545 --- /dev/null +++ b/src/client/gui/screens/touch/TouchStartMenuScreen.h @@ -0,0 +1,50 @@ +#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchStartMenuScreen_H__ +#define NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchStartMenuScreen_H__ + +#include "../../Screen.h" +#include "../../components/LargeImageButton.h" + + +class BuyButton: public ImageButton { + typedef ImageButton super; +public: + BuyButton(int id); + void render(Minecraft* minecraft, int xm, int ym); +}; + + +namespace Touch { + +class StartMenuScreen: public Screen +{ +public: + StartMenuScreen(); + virtual ~StartMenuScreen(); + + void init(); + void setupPositions(); + + void tick(); + void render(int xm, int ym, float a); + + void buttonClicked(Button* button); + bool handleBackEvent(bool isDown); + bool isInGameScreen(); +private: + void _updateLicense(); + + LargeImageButton bHost; + LargeImageButton bJoin; + LargeImageButton bOptions; + TButton bTest; + BuyButton bBuy; + + std::string copyright; + int copyrightPosX; + + std::string version; + int versionPosX; +}; +}; + +#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS_TOUCH__TouchStartMenuScreen_H__*/ diff --git a/src/client/model/ChestModel.h b/src/client/model/ChestModel.h new file mode 100755 index 0000000..4a91504 --- /dev/null +++ b/src/client/model/ChestModel.h @@ -0,0 +1,52 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__ChestModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__ChestModel_H__ + +//package net.minecraft.client.model; + +#include "Model.h" +#include "geom/ModelPart.h" + +class ChestModel: public Model +{ +public: + ChestModel() + : lid(0, 0), + lock(0, 0), + bottom(0, 0) + { + lid.setModel(this); + lid.setTexSize(64, 64); + lid.addBox(0.0f, -5, -14, 14, 5, 14, 0); + lid.x = 1; + lid.y = 7; + lid.z = 15; + + lock.setModel(this); + lock.setTexSize(64, 64); + lock.addBox(-1, -2, -15, 2, 4, 1, 0); + lock.x = 8; + lock.y = 7; + lock.z = 15; + + bottom.setModel(this); + bottom.setTexSize(64, 64); + bottom.addBox(0.0f, 0, 0, 14, 10, 14, 0); + bottom.x = 1; + bottom.y = 6; + bottom.z = 1; + } + + void render() { + lock.xRot = lid.xRot; + + lid.render(1 / 16.0f); + lock.render(1 / 16.0f); + bottom.render(1 / 16.0f); + } + + ModelPart lid; + ModelPart bottom; + ModelPart lock; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__ChestModel_H__*/ diff --git a/src/client/model/ChickenModel.cpp b/src/client/model/ChickenModel.cpp new file mode 100755 index 0000000..4c23498 --- /dev/null +++ b/src/client/model/ChickenModel.cpp @@ -0,0 +1,101 @@ +#include "ChickenModel.h" +#include "../../world/entity/Entity.h" + +ChickenModel::ChickenModel() +: head(0, 0), + beak(14, 0), + redThing(14, 4), + body(0, 9), + leg0(26, 0), + leg1(26, 0), + wing0(24, 13), + wing1(24, 13) +{ + head.setModel(this); + beak.setModel(this); + redThing.setModel(this); + body.setModel(this); + leg0.setModel(this); + leg1.setModel(this); + wing0.setModel(this); + wing1.setModel(this); + + int yo = 16; + head.addBox(-2, -6, -2, 4, 6, 3, 0); // Head + head.setPos(0, -1 + (float)yo, -4); + + beak.addBox(-2, -4, -4, 4, 2, 2, 0); // Beak + beak.setPos(0, -1 + (float)yo, -4); + + redThing.addBox(-1, -2, -3, 2, 2, 2, 0); // Beak + redThing.setPos(0, -1 + (float)yo, -4); + + body.addBox(-3, -4, -3, 6, 8, 6, 0); // Body + body.setPos(0, 0 + (float)yo, 0); + + leg0.addBox(-1, 0, -3, 3, 5, 3); // Leg0 + leg0.setPos(-2, 3 + (float)yo, 1); + + leg1.addBox(-1, 0, -3, 3, 5, 3); // Leg1 + leg1.setPos(1, 3 + (float)yo, 1); + + wing0.addBox(0, 0, -3, 1, 4, 6); // Wing0 + wing0.setPos(-4, -3 + (float)yo, 0); + + wing1.addBox(-1, 0, -3, 1, 4, 6); // Wing1 + wing1.setPos(4, -3 + (float)yo, 0); +} + +void ChickenModel::render( Entity* entity, float time, float r, float bob, float yRot, float xRot, float scale ) +{ + setupAnim(time, r, bob, yRot, xRot, scale); + + if (young) { + float ss = 2; + glPushMatrix(); + glTranslatef(0, 5 * scale, 2 * scale); + head.render(scale); + beak.render(scale); + redThing.render(scale); + glPopMatrix(); + glPushMatrix(); + glScalef(1 / ss, 1 / ss, 1 / ss); + glTranslatef(0, 24 * scale, 0); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + wing0.render(scale); + wing1.render(scale); + glPopMatrix(); + } else { + head.render(scale); + beak.render(scale); + redThing.render(scale); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + wing0.render(scale); + wing1.render(scale); + } +} + +void ChickenModel::setupAnim( float time, float r, float bob, float yRot, float xRot, float scale ) +{ + head.xRot = -((xRot / (float) (180 / Mth::PI))); + head.yRot = yRot / (float) (180 / Mth::PI); + + beak.xRot = head.xRot; + beak.yRot = head.yRot; + + redThing.xRot = head.xRot; + redThing.yRot = head.yRot; + + body.xRot = 90 / (float) (180 / Mth::PI); + + const float pend = Mth::cos(time * 0.6662f) * 1.4f * r; + leg0.xRot = pend; + leg1.xRot = -pend; + wing0.zRot = bob; + wing1.zRot = -bob; +} + diff --git a/src/client/model/ChickenModel.h b/src/client/model/ChickenModel.h new file mode 100755 index 0000000..7e9ff7c --- /dev/null +++ b/src/client/model/ChickenModel.h @@ -0,0 +1,23 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__ChickenModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__ChickenModel_H__ + +#include "Model.h" +#include "geom/ModelPart.h" + +class Entity; + +class ChickenModel: public Model +{ + typedef Model super; +public: + ModelPart head, hair, body, leg0, leg1, wing0, wing1, beak, redThing; + + ChickenModel(); + + /*@Override*/ + void render(Entity* entity, float time, float r, float bob, float yRot, float xRot, float scale); + + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale); +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__ChickenModel_H__*/ diff --git a/src/client/model/CowModel.cpp b/src/client/model/CowModel.cpp new file mode 100755 index 0000000..78154ca --- /dev/null +++ b/src/client/model/CowModel.cpp @@ -0,0 +1,30 @@ +#include "CowModel.h" + +CowModel::CowModel() +: super(12, 0) +{ + head = ModelPart(0, 0); + head.setModel(this); + head.addBox(-4, -4, -6, 8, 8, 6, 0); // Head + head.setPos(0, 12 - 6 - 2, -8); + + head.texOffs(22, 0).addBox(-5, -5, -4, 1, 3, 1, 0); // Horn1 + head.texOffs(22, 0).addBox(+4, -5, -4, 1, 3, 1, 0); // Horn1 + + body = ModelPart(18, 4); + body.setModel(this); + body.addBox(-6, -10, -7, 12, 18, 10, 0); // Body + body.setPos(0, 11 + 6 - 12, 2); + body.texOffs(52, 0).addBox(-2, 2, -8, 4, 6, 1); + + leg0.x -= 1; + leg1.x += 1; + leg0.z += 0; + leg1.z += 0; + leg2.x -= 1; + leg3.x += 1; + leg2.z -= 1; + leg3.z -= 1; + + this->zHeadOffs += 2; +} diff --git a/src/client/model/CowModel.h b/src/client/model/CowModel.h new file mode 100755 index 0000000..3840639 --- /dev/null +++ b/src/client/model/CowModel.h @@ -0,0 +1,15 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__CowModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__CowModel_H__ + +//package net.minecraft.client.model; + +#include "QuadrupedModel.h" + +class CowModel: public QuadrupedModel +{ + typedef QuadrupedModel super; +public: + CowModel(); +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__CowModel_H__*/ diff --git a/src/client/model/CreeperModel.h b/src/client/model/CreeperModel.h new file mode 100755 index 0000000..2909afe --- /dev/null +++ b/src/client/model/CreeperModel.h @@ -0,0 +1,82 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__CreeperModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__CreeperModel_H__ + +//package net.minecraft.client.model; + +#include "Model.h" + +#include "geom/ModelPart.h" +#include "../../world/entity/Entity.h" + +class CreeperModel: public Model +{ + typedef Model super; +public: + ModelPart head, /*hair,*/ body, leg0, leg1, leg2, leg3; + + CreeperModel(float g = 0) + : head(0, 0), + //hair(32, 0), + body(16, 16), + leg0(0, 16), + leg1(0, 16), + leg2(0, 16), + leg3(0, 16) + { + float yo = 4; + + head.setModel(this); + //hair.setModel(this); + body.setModel(this); + leg0.setModel(this); + leg1.setModel(this); + leg2.setModel(this); + leg3.setModel(this); + + head.addBox(-4, -8, -4, 8, 8, 8, g); // Head + head.setPos(0, yo, 0); + +// hair.addBox(-4, -8, -4, 8, 8, 8, g + 0.5f); // Head +// hair.setPos(0, yo, 0); + + body.addBox(-4, 0, -2, 8, 12, 4, g); // Body + body.setPos(0, yo, 0); + + leg0.addBox(-2, 0, -2, 4, 6, 4, g); // Leg0 + leg0.setPos(-2, 12 + yo, 4); + + leg1.addBox(-2, 0, -2, 4, 6, 4, g); // Leg1 + leg1.setPos(2, 12 + yo, 4); + + leg2.addBox(-2, 0, -2, 4, 6, 4, g); // Leg2 + leg2.setPos(-2, 12 + yo, -4); + + leg3.addBox(-2, 0, -2, 4, 6, 4, g); // Leg3 + leg3.setPos(2, 12 + yo, -4); + } + + /*@Override*/ + void render(Entity* entity, float time, float r, float bob, float yRot, float xRot, float scale) { + setupAnim(time, r, bob, yRot, xRot, scale); + + head.render(scale); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + leg2.render(scale); + leg3.render(scale); + } + + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale) { + head.yRot = yRot / (float) (180 / Mth::PI); + head.xRot = xRot / (float) (180 / Mth::PI); + + const float pend = (Mth::cos(time * 0.6662f) * 1.4f) * r; + leg0.xRot = pend; + leg1.xRot = -pend; + leg2.xRot = -pend; + leg3.xRot = pend; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__CreeperModel_H__*/ diff --git a/src/client/model/HumanoidModel.cpp b/src/client/model/HumanoidModel.cpp new file mode 100755 index 0000000..985019c --- /dev/null +++ b/src/client/model/HumanoidModel.cpp @@ -0,0 +1,246 @@ +#include "HumanoidModel.h" +#include "../Minecraft.h" +#include "../../util/Mth.h" +#include "../../world/entity/player/Player.h" +#include "../../world/entity/player/Inventory.h" + +HumanoidModel::HumanoidModel( float g /*= 0*/, float yOffset /*= 0*/ ) +: holdingLeftHand(false), + holdingRightHand(false), + sneaking(false), + bowAndArrow(false), + head(0, 0), + //ear (24, 0), + //hair(32, 0), + body(16, 16), + arm0(24 + 16, 16), + arm1(24 + 16, 16), + leg0(0, 16), + leg1(0, 16) +{ + head.setModel(this); + body.setModel(this); + arm0.setModel(this); + arm1.setModel(this); + leg0.setModel(this); + leg1.setModel(this); + + head.addBox(-4, -8, -4, 8, 8, 8, g); // Head + head.setPos(0, 0 + yOffset, 0); + + //ear.addBox(-3, -6, -1, 6, 6, 1, g); // Ear + + //hair.addBox(-4, -8, -4, 8, 8, 8, g + 0.5f); // Head + // hair.setPos(0, 0 + yOffset, 0); + + body.addBox(-4, 0, -2, 8, 12, 4, g); // Body + body.setPos(0, 0 + yOffset, 0); + + arm0.addBox(-3, -2, -2, 4, 12, 4, g); // Arm0 + arm0.setPos(-5, 2 + yOffset, 0); + + arm1.mirror = true; + arm1.addBox(-1, -2, -2, 4, 12, 4, g); // Arm1 + arm1.setPos(5, 2 + yOffset, 0); + + leg0.addBox(-2, 0, -2, 4, 12, 4, g); // Leg0 + leg0.setPos(-2, 12 + yOffset, 0); + + leg1.mirror = true; + leg1.addBox(-2, 0, -2, 4, 12, 4, g); // Leg1 + leg1.setPos(2, 12 + yOffset, 0); +} + +void HumanoidModel::render(Entity* e, float time, float r, float bob, float yRot, float xRot, float scale ) +{ + if(e != NULL && e->isMob()) { + Mob* mob = (Mob*)(e); + ItemInstance* item = mob->getCarriedItem(); + if(item != NULL) { + if(mob->getUseItemDuration() > 0) { + UseAnim::UseAnimation anim = item->getUseAnimation(); + if(anim == UseAnim::bow) { + bowAndArrow = true; + } + } + } + } + + setupAnim(time, r, bob, yRot, xRot, scale); + + head.render(scale); + body.render(scale); + arm0.render(scale); + arm1.render(scale); + leg0.render(scale); + leg1.render(scale); + bowAndArrow = false; + //hair.render(scale); +} + +void HumanoidModel::render( HumanoidModel* model, float scale ) +{ + head.yRot = model->head.yRot; + head.y = model->head.y; + head.xRot = model->head.xRot; + //hair.yRot = head.yRot; + //hair.xRot = head.xRot; + + arm0.xRot = model->arm0.xRot; + arm0.zRot = model->arm0.zRot; + + arm1.xRot = model->arm1.xRot; + arm1.zRot = model->arm1.zRot; + + leg0.xRot = model->leg0.xRot; + leg1.xRot = model->leg1.xRot; + + head.render(scale); + body.render(scale); + arm0.render(scale); + arm1.render(scale); + leg0.render(scale); + leg1.render(scale); + //hair.render(scale); +} + +void HumanoidModel::renderHorrible( float time, float r, float bob, float yRot, float xRot, float scale ) +{ + setupAnim(time, r, bob, yRot, xRot, scale); + head.renderHorrible(scale); + body.renderHorrible(scale); + arm0.renderHorrible(scale); + arm1.renderHorrible(scale); + leg0.renderHorrible(scale); + leg1.renderHorrible(scale); + //hair.renderHorrible(scale); +} +// Updated to match Minecraft Java, all except hair. +void HumanoidModel::setupAnim( float time, float r, float bob, float yRot, float xRot, float scale ) +{ + head.yRot = yRot / (180 / Mth::PI); + head.xRot = xRot / (180 / Mth::PI); + const float tcos0 = Mth::cos(time * 0.6662f) * r; + const float tcos1 = Mth::cos(time * 0.6662f + Mth::PI) * r; + + arm0.xRot = tcos1; + arm1.xRot = tcos0; + arm0.zRot = 0; + arm1.zRot = 0; + + leg0.xRot = tcos0 * 1.4f; + leg1.xRot = tcos1 * 1.4f; + leg0.yRot = 0; + leg1.yRot = 0; + + if (riding) { + arm0.xRot += -Mth::PI / 2 * 0.4f; + arm1.xRot += -Mth::PI / 2 * 0.4f; + leg0.xRot = -Mth::PI / 2 * 0.8f; + leg1.xRot = -Mth::PI / 2 * 0.8f; + leg0.yRot = Mth::PI / 2 * 0.2f; + leg1.yRot = -Mth::PI / 2 * 0.2f; + } + + if (holdingLeftHand != 0) { + arm1.xRot = arm1.xRot * 0.5f - Mth::PI / 2.0f * 0.2f * holdingLeftHand; + } + if (holdingRightHand != 0) { + arm0.xRot = arm0.xRot * 0.5f - Mth::PI / 2.0f * 0.2f * holdingRightHand; + } + arm0.yRot = 0; + arm1.yRot = 0; + + if (attackTime > -9990) { + float swing = attackTime; + body.yRot = Mth::sin(Mth::sqrt(swing) * Mth::PI * 2) * 0.2f; + arm0.z = Mth::sin(body.yRot) * 5; + arm0.x = -Mth::cos(body.yRot) * 5; + arm1.z = -Mth::sin(body.yRot) * 5; + arm1.x = Mth::cos(body.yRot) * 5; + arm0.yRot += body.yRot; + arm1.yRot += body.yRot; + arm1.xRot += body.yRot; + + swing = 1 - attackTime; + swing *= swing; + swing *= swing; + swing = 1 - swing; + float aa = Mth::sin(swing * Mth::PI); + float bb = Mth::sin(attackTime * Mth::PI) * -(head.xRot - 0.7f) * 0.75f; + arm0.xRot -= aa * 1.2f + bb; + arm0.yRot += body.yRot * 2; + arm0.zRot = Mth::sin(attackTime * Mth::PI) * -0.4f; + } + + if (sneaking) { + body.xRot = 0.5f; + arm0.xRot += 0.4f; + arm1.xRot += 0.4f; + leg0.z = +4.0f; + leg1.z = +4.0f; + leg0.y = +9.0f; + leg1.y = +9.0f; + head.y = +1; + } else { + body.xRot = 0.0f; + leg0.z = +0.0f; + leg1.z = +0.0f; + leg0.y = +12.0f; + leg1.y = +12.0f; + head.y = 0; + } + + const float bcos = Mth::cos(bob * 0.09f) * 0.05f + 0.05f; + const float bsin = Mth::sin(bob * 0.067f) * 0.05f; + + arm0.zRot += bcos; + arm1.zRot -= bcos; + arm0.xRot += bsin; + arm1.xRot -= bsin; + + if (bowAndArrow) { + float attack2 = 0; + float attack = 0; + + arm0.zRot = 0; + arm1.zRot = 0; + arm0.yRot = -(0.1f - attack2 * 0.6f) + head.yRot; + arm1.yRot = +(0.1f - attack2 * 0.6f) + head.yRot + 0.4f; + arm0.xRot = -Mth::PI / 2.0f + head.xRot; + arm1.xRot = -Mth::PI / 2.0f + head.xRot; + arm0.xRot -= attack2 * 1.2f - attack * 0.4f; + arm1.xRot -= attack2 * 1.2f - attack * 0.4f; + + arm0.zRot += bcos; + arm1.zRot -= bcos; + arm0.xRot += bsin; + arm1.xRot -= bsin; + } +} + +void HumanoidModel::onGraphicsReset() +{ + head.onGraphicsReset(); + body.onGraphicsReset(); + arm0.onGraphicsReset(); + arm1.onGraphicsReset(); + leg0.onGraphicsReset(); + leg1.onGraphicsReset(); + //hair.onGraphicsReset(); +} + +//void renderHair(float scale) { +// hair.yRot = head.yRot; +// hair.xRot = head.xRot; +// hair.render(scale); +//} +// +//void renderEars(float scale) { +// ear.yRot = head.yRot; +// ear.xRot = head.xRot; +// ear.x=0; +// ear.y=0; +// ear.render(scale); +//} +// diff --git a/src/client/model/HumanoidModel.h b/src/client/model/HumanoidModel.h new file mode 100755 index 0000000..14dc60e --- /dev/null +++ b/src/client/model/HumanoidModel.h @@ -0,0 +1,28 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__HumanoidModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__HumanoidModel_H__ + +//package net.minecraft.client.model; + +#include "Model.h" +#include "geom/ModelPart.h" +class ItemInstance; +class HumanoidModel: public Model +{ +public: + HumanoidModel(float g = 0, float yOffset = 0); + + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale); + + void render(HumanoidModel* model, float scale); + void render(Entity* e, float time, float r, float bob, float yRot, float xRot, float scale); + void renderHorrible(float time, float r, float bob, float yRot, float xRot, float scale); + void onGraphicsReset(); + + ModelPart head, /*hair,*/ body, arm0, arm1, leg0, leg1;//, ear; + bool holdingLeftHand; + bool holdingRightHand; + bool sneaking; + bool bowAndArrow; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__HumanoidModel_H__*/ diff --git a/src/client/model/Model.h b/src/client/model/Model.h new file mode 100755 index 0000000..176ca5e --- /dev/null +++ b/src/client/model/Model.h @@ -0,0 +1,48 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__Model_H__ +#define NET_MINECRAFT_CLIENT_MODEL__Model_H__ + +//package net.minecraft.client.model; + +#include +#include "geom/ModelPart.h" + +class Mob; +class Entity; + +class Model +{ +protected: + Model() + : riding(false), + attackTime(0), + texWidth(64), + texHeight(32), + young(true) + {} + +public: + virtual ~Model() {} + + virtual void onGraphicsReset() { + for (unsigned int i = 0; i < cubes.size(); ++i) + cubes[i]->onGraphicsReset(); + } + + virtual void render(Entity* e, float time, float r, float bob, float yRot, float xRot, float scale) {} + virtual void renderHorrible(float time, float r, float bob, float yRot, float xRot, float scale) {} + virtual void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale) {} + virtual void prepareMobModel(Mob* mob, float time, float r, float a) {} + + float attackTime; + bool riding; + + int texWidth; + int texHeight; + + std::vector cubes; + bool young; +private: + //Map mappedTexOffs = new HashMap(); +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__Model_H__*/ diff --git a/src/client/model/ModelInclude.h b/src/client/model/ModelInclude.h new file mode 100755 index 0000000..0fb4a51 --- /dev/null +++ b/src/client/model/ModelInclude.h @@ -0,0 +1,17 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__ModelInclude_H__ +#define NET_MINECRAFT_CLIENT_MODEL__ModelInclude_H__ + +#include "HumanoidModel.h" + +#include "ChickenModel.h" +#include "CowModel.h" +#include "PigModel.h" +#include "SheepModel.h" +#include "SheepFurModel.h" + +#include "ZombieModel.h" +#include "SkeletonModel.h" + +#include "SignModel.h" + +#endif /*NET_MINECRAFT_CLIENT_MODEL__ModelInclude_H__*/ diff --git a/src/client/model/PigModel.cpp b/src/client/model/PigModel.cpp new file mode 100755 index 0000000..9adc8eb --- /dev/null +++ b/src/client/model/PigModel.cpp @@ -0,0 +1,8 @@ +#include "PigModel.h" + +PigModel::PigModel( float g /*= 0*/ ) +: super(6, g) +{ + head.texOffs(16, 16).addBox(-2, 0, -9, 4, 3, 1, g); + yHeadOffs = 4; +} diff --git a/src/client/model/PigModel.h b/src/client/model/PigModel.h new file mode 100755 index 0000000..c4bcc69 --- /dev/null +++ b/src/client/model/PigModel.h @@ -0,0 +1,15 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__PigModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__PigModel_H__ + +//package net.minecraft.client.model; + +#include "QuadrupedModel.h" + +class PigModel: public QuadrupedModel +{ + typedef QuadrupedModel super; +public: + PigModel(float g = 0); +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__PigModel_H__*/ diff --git a/src/client/model/QuadrupedModel.cpp b/src/client/model/QuadrupedModel.cpp new file mode 100755 index 0000000..7f83c6e --- /dev/null +++ b/src/client/model/QuadrupedModel.cpp @@ -0,0 +1,122 @@ +#include "QuadrupedModel.h" +#include "geom/ModelPart.h" +#include "../../util/Mth.h" + +QuadrupedModel::QuadrupedModel( int legSize, float g ) +: yHeadOffs(8), + zHeadOffs(4), + head(0, 0), + body(28, 8), + leg0(0, 16), + leg1(0, 16), + leg2(0, 16), + leg3(0, 16) +{ + head.setModel(this); + body.setModel(this); + leg0.setModel(this); + leg1.setModel(this); + leg2.setModel(this); + leg3.setModel(this); + + head.addBox(-4, -4, -8, 8, 8, 8, g); // Head + head.setPos(0, 12 + 6 - (float)legSize, -6); + + body.addBox(-5, -10, -7, 10, 16, 8, g); // Body + body.setPos(0, 11 + 6 - (float)legSize, 2); + + leg0.addBox(-2, 0, -2, 4, legSize, 4, g); // Leg0 + leg0.setPos(-3, 18 + 6 - (float)legSize, 7); + + leg1.addBox(-2, 0, -2, 4, legSize, 4, g); // Leg1 + leg1.setPos(3, 18 + 6 - (float)legSize, 7); + + leg2.addBox(-2, 0, -2, 4, legSize, 4, g); // Leg2 + leg2.setPos(-3, 18 + 6 - (float)legSize, -5); + + leg3.addBox(-2, 0, -2, 4, legSize, 4, g); // Leg3 + leg3.setPos(3, 18 + 6 - (float)legSize, -5); +} + +void QuadrupedModel::render( Entity* entity, float time, float r, float bob, float yRot, float xRot, float scale ) +{ + setupAnim(time, r, bob, yRot, xRot, scale); + + if (young) { + float ss = 2.0f; + glPushMatrix(); + glTranslatef(0, yHeadOffs * scale, zHeadOffs * scale); + head.render(scale); + glPopMatrix(); + glPushMatrix(); + glScalef(1 / ss, 1 / ss, 1 / ss); + glTranslatef(0, 24 * scale, 0); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + leg2.render(scale); + leg3.render(scale); + glPopMatrix(); + } else { + head.render(scale); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + leg2.render(scale); + leg3.render(scale); + } +} + +void QuadrupedModel::render( QuadrupedModel* model, float scale ) +{ + head.yRot = model->head.yRot; + head.xRot = model->head.xRot; + + head.y = model->head.y; + head.x = model->head.x; + + body.yRot = model->body.yRot; + body.xRot = model->body.xRot; + + leg0.xRot = model->leg0.xRot; + leg1.xRot = model->leg1.xRot; + leg2.xRot = model->leg2.xRot; + leg3.xRot = model->leg3.xRot; + + if (young) { + float ss = 2.0f; + glPushMatrix(); + glTranslatef(0, 8 * scale, 4 * scale); + head.render(scale); + glPopMatrix(); + glPushMatrix(); + glScalef(1 / ss, 1 / ss, 1 / ss); + glTranslatef(0, 24 * scale, 0); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + leg2.render(scale); + leg3.render(scale); + glPopMatrix(); + } else { + head.render(scale); + body.render(scale); + leg0.render(scale); + leg1.render(scale); + leg2.render(scale); + leg3.render(scale); + } +} + +void QuadrupedModel::setupAnim( float time, float r, float bob, float yRot, float xRot, float scale ) +{ + head.xRot = xRot / (180.f / Mth::PI); + head.yRot = yRot / (180.f / Mth::PI); + body.xRot = 90 / (180.f / Mth::PI); + + const float pend = Mth::cos(time * 0.6662f) * 1.4f * r; + leg0.xRot = pend; + leg1.xRot = -pend; + leg2.xRot = -pend; + leg3.xRot = pend; +} diff --git a/src/client/model/QuadrupedModel.h b/src/client/model/QuadrupedModel.h new file mode 100755 index 0000000..0cce639 --- /dev/null +++ b/src/client/model/QuadrupedModel.h @@ -0,0 +1,28 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__QuadrupedModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__QuadrupedModel_H__ + +//package net.minecraft.client.model; + +#include "Model.h" +#include "geom/ModelPart.h" + +class Entity; + +class QuadrupedModel: public Model +{ +public: + QuadrupedModel(int legSize, float g); + + //@Override + void render(QuadrupedModel* model, float scale); + void render(Entity* entity, float time, float r, float bob, float yRot, float xRot, float scale); + + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale); + + ModelPart head, hair, body, leg0, leg1, leg2, leg3; +protected: + float yHeadOffs; + float zHeadOffs; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__QuadrupedModel_H__*/ diff --git a/src/client/model/SheepFurModel.cpp b/src/client/model/SheepFurModel.cpp new file mode 100755 index 0000000..0dd5368 --- /dev/null +++ b/src/client/model/SheepFurModel.cpp @@ -0,0 +1,49 @@ +#include "SheepFurModel.h" +#include "geom/ModelPart.h" +#include "../../world/entity/Mob.h" +#include "../../world/entity/animal/Sheep.h" + +SheepFurModel::SheepFurModel() +: super(12, 0) +{ + head = ModelPart(this, 0, 0); + head.addBox(-3, -4, -4, 6, 6, 6, 0.6f); // Head + head.setPos(0, 12 - 6, -8); + + body = ModelPart(this, 28, 8); + body.addBox(-4, -10, -7, 8, 16, 6, 1.75f); // Body + body.setPos(0, 11 + 6 - 12, 2); + + float g = 0.5f; + leg0 = ModelPart(this, 0, 16); + leg0.addBox(-2, 0, -2, 4, 6, 4, g); // Leg0 + leg0.setPos(-3, 18 + 6 - 12, 7); + + leg1 = ModelPart(this, 0, 16); + leg1.addBox(-2, 0, -2, 4, 6, 4, g); // Leg1 + leg1.setPos(3, 18 + 6 - 12, 7); + + leg2 = ModelPart(this, 0, 16); + leg2.addBox(-2, 0, -2, 4, 6, 4, g); // Leg2 + leg2.setPos(-3, 18 + 6 - 12, -5); + + leg3 = ModelPart(this, 0, 16); + leg3.addBox(-2, 0, -2, 4, 6, 4, g); // Leg3 + leg3.setPos(3, 18 + 6 - 12, -5); +} + +void SheepFurModel::prepareMobModel( Mob* mob, float time, float r, float a ) +{ + super::prepareMobModel(mob, time, r, a); + + Sheep* sheep = (Sheep*) mob; + head.y = 6 + sheep->getHeadEatPositionScale(a) * 9.f; + headXRot = sheep->getHeadEatAngleScale(a); +} + +void SheepFurModel::setupAnim( float time, float r, float bob, float yRot, float xRot, float scale ) +{ + super::setupAnim(time, r, bob, yRot, xRot, scale); + + head.xRot = headXRot; +} diff --git a/src/client/model/SheepFurModel.h b/src/client/model/SheepFurModel.h new file mode 100755 index 0000000..afc0b0f --- /dev/null +++ b/src/client/model/SheepFurModel.h @@ -0,0 +1,24 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__SheepFurModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__SheepFurModel_H__ + +//package net.minecraft.client.model; + +#include "QuadrupedModel.h" + +class SheepFurModel: public QuadrupedModel +{ + typedef QuadrupedModel super; + +public: + SheepFurModel(); + + /*@Override*/ + void prepareMobModel(Mob* mob, float time, float r, float a); + + /*@Override*/ + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale); +private: + float headXRot; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__SheepFurModel_H__*/ diff --git a/src/client/model/SheepModel.cpp b/src/client/model/SheepModel.cpp new file mode 100755 index 0000000..2dac992 --- /dev/null +++ b/src/client/model/SheepModel.cpp @@ -0,0 +1,32 @@ +#include "SheepModel.h" +#include "geom/ModelPart.h" +#include "../../world/entity/Mob.h" +#include "../../world/entity/animal/Sheep.h" + +SheepModel::SheepModel() +: super(12, 0) +{ + head = ModelPart(this, 0, 0); + head.addBox(-3, -4, -6, 6, 6, 8, 0); // Head + head.setPos(0, 12 - 6, -8); + + body = ModelPart(this, 28, 8); + body.addBox(-4, -10, -7, 8, 16, 6, 0); // Body + body.setPos(0, 11 + 6 - 12, 2); +} + +void SheepModel::prepareMobModel( Mob* mob, float time, float r, float a ) +{ + super::prepareMobModel(mob, time, r, a); + + Sheep* sheep = (Sheep*) mob; + head.y = 6 + sheep->getHeadEatPositionScale(a) * 9.f; + headXRot = sheep->getHeadEatAngleScale(a); +} + +void SheepModel::setupAnim( float time, float r, float bob, float yRot, float xRot, float scale ) +{ + super::setupAnim(time, r, bob, yRot, xRot, scale); + + head.xRot = headXRot; +} diff --git a/src/client/model/SheepModel.h b/src/client/model/SheepModel.h new file mode 100755 index 0000000..7b2bc63 --- /dev/null +++ b/src/client/model/SheepModel.h @@ -0,0 +1,23 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__SheepModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__SheepModel_H__ + +//package net.minecraft.client.model; + +#include "QuadrupedModel.h" + +class SheepModel: public QuadrupedModel +{ + typedef QuadrupedModel super; +public: + SheepModel(); + + /*@Override*/ + void prepareMobModel(Mob* mob, float time, float r, float a); + + /*@Override*/ + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale); +private: + float headXRot; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__SheepModel_H__*/ diff --git a/src/client/model/SignModel.h b/src/client/model/SignModel.h new file mode 100755 index 0000000..b2985c1 --- /dev/null +++ b/src/client/model/SignModel.h @@ -0,0 +1,32 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__SignModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__SignModel_H__ + +//package net.minecraft.client.model; + +#include "Model.h" +#include "geom/ModelPart.h" + +class SignModel: public Model +{ +public: + SignModel() + : cube(0, 0), + cube2(0, 14) + { + cube.addBox(-12, -14, -1, 24, 12, 2, 0); + cube2.addBox(-1, -2, -1, 2, 14, 2, 0); + + cube.setModel(this); + cube2.setModel(this); + } + + void render() { + cube.render(1 / 16.0f); + cube2.render(1 / 16.0f); + } + + ModelPart cube; + ModelPart cube2; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__SignModel_H__*/ diff --git a/src/client/model/SkeletonModel.h b/src/client/model/SkeletonModel.h new file mode 100755 index 0000000..86162c9 --- /dev/null +++ b/src/client/model/SkeletonModel.h @@ -0,0 +1,46 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__SkeletonModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__SkeletonModel_H__ + +//package net.minecraft.client.model; + +#include "ZombieModel.h" +#include "geom/ModelPart.h" + +class SkeletonModel: public ZombieModel +{ + typedef ZombieModel super; +public: + SkeletonModel() + { + float g = 0; + + arm0 = ModelPart(24 + 16, 16); + arm0.setModel(this); + arm0.addBox(-1, -2, -1, 2, 12, 2, g); // Arm0 + arm0.setPos(-5, 2, 0); + + arm1 = ModelPart(24 + 16, 16); + arm1.setModel(this); + arm1.mirror = true; + arm1.addBox(-1, -2, -1, 2, 12, 2, g); // Arm1 + arm1.setPos(5, 2, 0); + + leg0 = ModelPart(0, 16); + leg0.setModel(this); + leg0.addBox(-1, 0, -1, 2, 12, 2, g); // Leg0 + leg0.setPos(-2, 12, 0); + + leg1 = ModelPart(0, 16); + leg1.setModel(this); + leg1.mirror = true; + leg1.addBox(-1, 0, -1, 2, 12, 2, g); // Leg1 + leg1.setPos(2, 12, 0); + } + + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale) { + bowAndArrow = true; + super::setupAnim(time, r, bob, yRot, xRot, scale); + } +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__SkeletonModel_H__*/ diff --git a/src/client/model/SpiderModel.h b/src/client/model/SpiderModel.h new file mode 100755 index 0000000..f02c0ce --- /dev/null +++ b/src/client/model/SpiderModel.h @@ -0,0 +1,168 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__SpiderModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__SpiderModel_H__ + +//package net.minecraft.client.model; + +#include "Model.h" + +#include "geom/ModelPart.h" +#include "../../world/entity/Entity.h" +#include "../../util/Mth.h" + +class SpiderModel: public Model +{ + typedef Model super; +public: + ModelPart head, body0, body1, leg0, leg1, leg2, leg3, leg4, leg5, leg6, leg7; + + SpiderModel() + : head(32, 4), + body0(0, 0), + body1(0, 12), + leg0(18, 0), + leg1(18, 0), + leg2(18, 0), + leg3(18, 0), + leg4(18, 0), + leg5(18, 0), + leg6(18, 0), + leg7(18, 0) + { + float g = 0; + + head.setModel(this); + body0.setModel(this); + body0.setModel(this); + leg0.setModel(this); + leg1.setModel(this); + leg2.setModel(this); + leg3.setModel(this); + leg4.setModel(this); + leg5.setModel(this); + leg6.setModel(this); + leg7.setModel(this); + + float yo = 18 + 6 - 9; + + head.addBox(-4, -4, -8, 8, 8, 8, g); // Head + head.setPos(0, 0 + yo, -3); + + body0.addBox(-3, -3, -3, 6, 6, 6, g); // Body + body0.setPos(0, yo, 0); + + body1.addBox(-5, -4, -6, 10, 8, 12, g); // Body + body1.setPos(0, 0 + yo, 3 + 6); + + leg0.addBox(-15, -1, -1, 16, 2, 2, g); // Leg0 + leg0.setPos(-4, 0 + yo, 2); + + leg1.addBox(-1, -1, -1, 16, 2, 2, g); // Leg1 + leg1.setPos(4, 0 + yo, 2); + + leg2.addBox(-15, -1, -1, 16, 2, 2, g); // Leg2 + leg2.setPos(-4, 0 + yo, 1); + + leg3.addBox(-1, -1, -1, 16, 2, 2, g); // Leg3 + leg3.setPos(4, 0 + yo, 1); + + leg4.addBox(-15, -1, -1, 16, 2, 2, g); // Leg0 + leg4.setPos(-4, 0 + yo, 0); + + leg5.addBox(-1, -1, -1, 16, 2, 2, g); // Leg1 + leg5.setPos(4, 0 + yo, 0); + + leg6.addBox(-15, -1, -1, 16, 2, 2, g); // Leg2 + leg6.setPos(-4, 0 + yo, -1); + + leg7.addBox(-1, -1, -1, 16, 2, 2, g); // Leg3 + leg7.setPos(4, 0 + yo, -1); + } + + /*@Override*/ + void render(Entity* entity, float time, float r, float bob, float yRot, float xRot, float scale) { + setupAnim(time, r, bob, yRot, xRot, scale); + + head.render(scale); + body0.render(scale); + body1.render(scale); + leg0.render(scale); + leg1.render(scale); + leg2.render(scale); + leg3.render(scale); + leg4.render(scale); + leg5.render(scale); + leg6.render(scale); + leg7.render(scale); + } + + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale) { + head.yRot = yRot / (float) (180 / Mth::PI); + head.xRot = xRot / (float) (180 / Mth::PI); + + const float sr = (float) Mth::PI / 4.0f; + leg0.zRot = -sr; + leg1.zRot = sr; + + leg2.zRot = -sr * 0.74f; + leg3.zRot = sr * 0.74f; + + leg4.zRot = -sr * 0.74f; + leg5.zRot = sr * 0.74f; + + leg6.zRot = -sr; + leg7.zRot = sr; + + //float ro = -(float) Mth::PI / 2.0f * 0; + const float ur = (float) Mth::PI / 8.0f; + const float ur2 = sr; + + leg0.yRot = ur2; + leg1.yRot = -ur2; + leg2.yRot = ur; + leg3.yRot = -ur; + leg4.yRot = -ur; + leg5.yRot = +ur; + leg6.yRot = -ur2; + leg7.yRot = +ur2; + + //static Stopwatch w; + //w.start(); + + float c0 = -((float) Mth::cos(time * 0.6662f * 2 + Mth::PI * 2 * 0 / 4.0f) * 0.4f) * r; + float c1 = -((float) Mth::cos(time * 0.6662f * 2 + Mth::PI * 2 * 2 / 4.0f) * 0.4f) * r; + float c2 = -((float) Mth::cos(time * 0.6662f * 2 + Mth::PI * 2 * 1 / 4.0f) * 0.4f) * r; + float c3 = -((float) Mth::cos(time * 0.6662f * 2 + Mth::PI * 2 * 3 / 4.0f) * 0.4f) * r; + + //LOGI("spider: %f, %f, %f, %f\n", c0, c1, c2, c3); + + float s0 = std::abs((float) Mth::sin(time * 0.6662f + Mth::PI * 2 * 0 / 4.0f) * 0.4f) * r; + float s1 = std::abs((float) Mth::sin(time * 0.6662f + Mth::PI * 2 * 2 / 4.0f) * 0.4f) * r; + float s2 = std::abs((float) Mth::sin(time * 0.6662f + Mth::PI * 2 * 1 / 4.0f) * 0.4f) * r; + float s3 = std::abs((float) Mth::sin(time * 0.6662f + Mth::PI * 2 * 3 / 4.0f) * 0.4f) * r; + + //w.stop(); + //w.printEvery(100); + + //LOGI("spiddy: %f, %f, %f, %f\n", s0, s1, s2, s3); + + leg0.yRot += c0; + leg1.yRot -= c0; + leg2.yRot += c1; + leg3.yRot -= c1; + leg4.yRot += c2; + leg5.yRot -= c2; + leg6.yRot += c3; + leg7.yRot -= c3; + + leg0.zRot += s0; + leg1.zRot -= s0; + leg2.zRot += s1; + leg3.zRot -= s1; + leg4.zRot += s2; + leg5.zRot -= s2; + leg6.zRot += s3; + leg7.zRot -= s3; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__SpiderModel_H__*/ diff --git a/src/client/model/ZombieModel.h b/src/client/model/ZombieModel.h new file mode 100755 index 0000000..e0f404b --- /dev/null +++ b/src/client/model/ZombieModel.h @@ -0,0 +1,37 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__ZombieModel_H__ +#define NET_MINECRAFT_CLIENT_MODEL__ZombieModel_H__ + +//package net.minecraft.client.model; + +#include "HumanoidModel.h" + +class ZombieModel: public HumanoidModel +{ + typedef HumanoidModel super; +public: + void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale) { + super::setupAnim(time, r, bob, yRot, xRot, scale); + if(!holdingLeftHand && !holdingRightHand) { + float attack2 = (float) Mth::sin(attackTime * Mth::PI); + float attack = (float) Mth::sin((1 - (1 - attackTime) * (1 - attackTime)) * Mth::PI); + arm0.zRot = 0;// -attack; + arm1.zRot = 0;// +attack; + arm0.yRot = -(0.1f - attack2 * 0.6f); + arm1.yRot = +(0.1f - attack2 * 0.6f); + arm0.xRot = -Mth::PI / 2.0f; + arm1.xRot = -Mth::PI / 2.0f; + arm0.xRot -= attack2 * 1.2f - attack * 0.4f; + arm1.xRot -= attack2 * 1.2f - attack * 0.4f; + + // body.yRot = attack; + const float zBob = Mth::cos(bob * 0.09f) * 0.05f + 0.05f; + const float xBob = Mth::sin(bob * 0.067f) * 0.05f; + arm0.zRot += zBob; + arm1.zRot -= zBob; + arm0.xRot += xBob; + arm1.xRot -= xBob; + } + } +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__ZombieModel_H__*/ diff --git a/src/client/model/geom/Cube.cpp b/src/client/model/geom/Cube.cpp new file mode 100755 index 0000000..e1da77d --- /dev/null +++ b/src/client/model/geom/Cube.cpp @@ -0,0 +1,75 @@ +#include "Cube.h" +#include "ModelPart.h" +#include "../../renderer/Tesselator.h" +#include "../../renderer/gles.h" +#include "../../../util/Mth.h" + +Cube::Cube(ModelPart* modelPart, int xTexOffs, int yTexOffs, float x0, float y0, float z0, int w, int h, int d, float g) +: x0(x0), + y0(y0), + z0(z0), + x1(x0 + w), + y1(y0 + h), + z1(z0 + d) +{ + float x1 = this->x1; + float y1 = this->y1; + float z1 = this->z1; + + x0 -= g; + y0 -= g; + z0 -= g; + x1 += g; + y1 += g; + z1 += g; + + if (modelPart->mirror) { + float tmp = x1; + x1 = x0; + x0 = tmp; + } + + vertices[0] = VertexPT(x0, y0, z0, 0, 0); + vertices[1] = VertexPT(x1, y0, z0, 0, 8); + vertices[2] = VertexPT(x1, y1, z0, 8, 8); + vertices[3] = VertexPT(x0, y1, z0, 8, 0); + + vertices[4] = VertexPT(x0, y0, z1, 0, 0); + vertices[5] = VertexPT(x1, y0, z1, 0, 8); + vertices[6] = VertexPT(x1, y1, z1, 8, 8); + vertices[7] = VertexPT(x0, y1, z1, 8, 0); + + VertexPT* ptr = vertices - 1; + VertexPT* u0 = ++ptr; + VertexPT* u1 = ++ptr; + VertexPT* u2 = ++ptr; + VertexPT* u3 = ++ptr; + + VertexPT* l0 = ++ptr; + VertexPT* l1 = ++ptr; + VertexPT* l2 = ++ptr; + VertexPT* l3 = ++ptr; + + polygons[0] = PolygonQuad(l1, u1, u2, l2, xTexOffs + d + w, yTexOffs + d, xTexOffs + d + w + d, yTexOffs + d + h); // Right + polygons[1] = PolygonQuad(u0, l0, l3, u3, xTexOffs + 0, yTexOffs + d, xTexOffs + d, yTexOffs + d + h); // Left + polygons[2] = PolygonQuad(l1, l0, u0, u1, xTexOffs + d, yTexOffs + 0, xTexOffs + d + w, yTexOffs + d); // Up + polygons[3] = PolygonQuad(u2, u3, l3, l2, xTexOffs + d + w, yTexOffs + d, xTexOffs + d + w + w, yTexOffs); // Down + polygons[4] = PolygonQuad(u1, u0, u3, u2, xTexOffs + d, yTexOffs + d, xTexOffs + d + w, yTexOffs + d + h); // Front + polygons[5] = PolygonQuad(l0, l1, l2, l3, xTexOffs + d + w + d, yTexOffs + d, xTexOffs + d + w + d + w, yTexOffs + d + h); // Back + + if (modelPart->mirror) { + for (int i = 0; i < 6; i++) + polygons[i].mirror(); + } +} + +void Cube::compile(Tesselator& t, float scale) { + for (int i = 0; i < 6; i++) { + polygons[i].render(t, scale); + } +} + +Cube* Cube::setId(const std::string& id) { + this->id = id; + return this; +} \ No newline at end of file diff --git a/src/client/model/geom/Cube.h b/src/client/model/geom/Cube.h new file mode 100755 index 0000000..8638006 --- /dev/null +++ b/src/client/model/geom/Cube.h @@ -0,0 +1,29 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL_GEOM__Cube_H__ +#define NET_MINECRAFT_CLIENT_MODEL_GEOM__Cube_H__ + +//package net.minecraft.client.model; + +#include +#include "Polygon.h" + +class Tesselator; +class ModelPart; + +class Cube +{ +public: + Cube(ModelPart* modelPart, int xTexOffs, int yTexOffs, float x0, float y0, float z0, int w, int h, int d, float g); + + void compile(Tesselator& t, float scale); + Cube* setId(const std::string& id); +private: + + VertexPT vertices[8]; + PolygonQuad polygons[6]; + std::string id; + const float x0, y0, z0, x1, y1, z1; + + friend class ModelPart; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL_GEOM__Cube_H__*/ diff --git a/src/client/model/geom/ModelPart.cpp b/src/client/model/geom/ModelPart.cpp new file mode 100755 index 0000000..7fa8f70 --- /dev/null +++ b/src/client/model/geom/ModelPart.cpp @@ -0,0 +1,303 @@ +#include "ModelPart.h" +#include "Cube.h" +#include "../Model.h" +#include "../../renderer/Tesselator.h" +#include "../../../util/Mth.h" + + +ModelPart::ModelPart( const std::string& id ) +: id(id), + model(NULL), + xTexOffs(0), + yTexOffs(0) +{ + _init(); +} + +ModelPart::ModelPart( int xTexOffs /*= 0*/, int yTexOffs /*= 0*/ ) +: xTexOffs(xTexOffs), + yTexOffs(yTexOffs), + model(NULL) +{ + _init(); +} + +ModelPart::ModelPart( Model* model, int xTexOffs /*= 0*/, int yTexOffs /*= 0*/ ) +: model(model), + xTexOffs(xTexOffs), + yTexOffs(yTexOffs) +{ + _init(); +} + +ModelPart::~ModelPart() { + clear(); +} + +void ModelPart::_init() { + x = y = z = 0; + xRot = yRot = zRot = 0; + list = 0; + mirror = false; + visible = true; + neverRender = false; + compiled = false; + xTexSize = 64; + yTexSize = 32; + + vboId = 0; + glGenBuffers2(1, &vboId); +} + +void ModelPart::setModel(Model* model) { + if (this->model) { + Util::remove(this->model->cubes, this); + } + if (model) { + model->cubes.push_back(this); + setTexSize(model->texWidth, model->texHeight); + } + this->model = model; +} + +void ModelPart::addChild(ModelPart* child) { + children.push_back(child); +} + +ModelPart& ModelPart::addBox(const std::string& id, float x0, float y0, float z0, int w, int h, int d) { + std::string newid = this->id + "." + id; + //TexOffs offs = model.getMapTex(id); //@todo @diff + //texOffs(offs.x, offs.y); + cubes.push_back((new Cube(this, xTexOffs, yTexOffs, x0, y0, z0, w, h, d, 0))->setId(newid)); + return *this; +} + +ModelPart& ModelPart::addBox(float x0, float y0, float z0, int w, int h, int d) { + cubes.push_back(new Cube(this, xTexOffs, yTexOffs, x0, y0, z0, w, h, d, 0)); + return *this; +} + +void ModelPart::addBox(float x0, float y0, float z0, int w, int h, int d, float g) { + cubes.push_back(new Cube(this, xTexOffs, yTexOffs, x0, y0, z0, w, h, d, g)); +} + +//This Cube constructor is commented out +//void ModelPart::addTexBox(float x0, float y0, float z0, int w, int h, int d, int tex) { +// cubes.push_back(new Cube(this, xTexOffs, yTexOffs, x0, y0, z0, w, h, d, tex)); +//} + + +void ModelPart::setPos( float x, float y, float z ) +{ + this->x = x; + this->y = y; + this->z = z; +} + +void ModelPart::render( float scale ) +{ + if (neverRender) return; + if (!visible) return; + if (!compiled) compile(scale); + + if (xRot != 0 || yRot != 0 || zRot != 0) { + glPushMatrix2(); + glTranslatef2(x * scale, y * scale, z * scale); + + const float c = Mth::RADDEG; + if (zRot != 0) glRotatef2(zRot * c, 0.0f, 0.0f, 1.0f); + if (yRot != 0) glRotatef2(yRot * c, 0.0f, 1.0f, 0.0f); + if (xRot != 0) glRotatef2(xRot * c, 1.0f, 0.0f, 0.0f); + + //LOGI("A"); + draw(); + if (!children.empty()) { + for (unsigned int i = 0; i < children.size(); i++) { + children[i]->render(scale); + } + } + + glPopMatrix2(); + } else if (x != 0 || y != 0 || z != 0) { + glTranslatef2(x * scale, y * scale, z * scale); + //LOGI("B"); + draw(); + if (!children.empty()) { + for (unsigned int i = 0; i < children.size(); i++) { + children[i]->render(scale); + } + } + + glTranslatef2(-x * scale, -y * scale, -z * scale); + } else { + //LOGI("C"); + draw(); + if (!children.empty()) { + for (unsigned int i = 0; i < children.size(); i++) { + children[i]->render(scale); + } + } + } +} + + +void ModelPart::renderRollable( float scale ) +{ + if (neverRender) return; + if (!visible) return; + if (!compiled) compile(scale); + + glPushMatrix2(); + glTranslatef2(x * scale, y * scale, z * scale); + + const float c = Mth::RADDEG; + if (yRot != 0) glRotatef2(yRot * c, 0.0f, 1.0f, 0.0f); + if (xRot != 0) glRotatef2(xRot * c, 1.0f, 0.0f, 0.0f); + if (zRot != 0) glRotatef2(zRot * c, 0.0f, 0.0f, 1.0f); + + draw(); + glPopMatrix2(); +} + + +void ModelPart::translateTo( float scale ) +{ + if (neverRender) return; + if (!visible) return; + if (!compiled) compile(scale); + + if (xRot != 0 || yRot != 0 || zRot != 0) { + const float c = Mth::RADDEG; + glTranslatef2(x * scale, y * scale, z * scale); + if (zRot != 0) glRotatef2(zRot * c, 0.0f, 0.0f, 1.0f); + if (yRot != 0) glRotatef2(yRot * c, 0.0f, 1.0f, 0.0f); + if (xRot != 0) glRotatef2(xRot * c, 1.0f, 0.0f, 0.0f); + } else if (x != 0 || y != 0 || z != 0) { + glTranslatef2(x * scale, y * scale, z * scale); + } else { + } +} + + +void ModelPart::compile( float scale ) +{ +#ifndef OPENGL_ES + list = glGenLists(1); + // FIX NORMAL BUG HERE + glNewList(list, GL_COMPILE); +#endif + Tesselator& t = Tesselator::instance; + t.begin(); + t.color(255, 255, 255, 255); + for (int i = 0; i < 6; i++) { + for (unsigned int i = 0; i < cubes.size(); ++i) + cubes[i]->compile(t, scale); + } + t.end(true, vboId); +#ifndef OPENGL_ES + glEndList(); +#endif + compiled = true; +} + +void ModelPart::draw() +{ +#ifdef OPENGL_ES + drawArrayVT_NoState(vboId, cubes.size() * 2 * 3 * 6, 24); +#else + glCallList(list); +#endif +} + +ModelPart& ModelPart::setTexSize(int xs, int ys) { + xTexSize = (float)xs; + yTexSize = (float)ys; + return *this; +} + +ModelPart& ModelPart::texOffs(int xTexOffs, int yTexOffs) { + this->xTexOffs = xTexOffs; + this->yTexOffs = yTexOffs; + return *this; +} + +void ModelPart::mimic(const ModelPart* o) { + x = o->x; + y = o->y; + z = o->z; + + xRot = o->xRot; + yRot = o->yRot; + zRot = o->zRot; +} + +void ModelPart::renderHorrible( float scale ) +{ + if (neverRender) { + return; + } + if (!visible) { + return; + } + //if (!compiled) compile(scale); + + if (xRot != 0 || yRot != 0 || zRot != 0) { + glPushMatrix2(); + glTranslatef2(x * scale, y * scale, z * scale); + if (zRot != 0) glRotatef2(zRot * Mth::RADDEG, 0.0f, 0.0f, 1.0f); + if (yRot != 0) glRotatef2(yRot * Mth::RADDEG, 0.0f, 1.0f, 0.0f); + if (xRot != 0) glRotatef2(xRot * Mth::RADDEG, 1.0f, 0.0f, 0.0f); + + drawSlow(scale); + glPopMatrix2(); + } else if (x != 0 || y != 0 || z != 0) { + glTranslatef2(x * scale, y * scale, z * scale); + drawSlow(scale); + glTranslatef2(-x * scale, -y * scale, -z * scale); + } else { + drawSlow(scale); + } +} + +void ModelPart::drawSlow( float scale ) +{ + Tesselator& t = Tesselator::instance; + t.begin(); + for (int j = 0; j < (int)cubes.size(); ++j) { + Cube* c = cubes[j]; + for (int i = 0; i < 6; i++) { + c->polygons[i].render(t, scale, vboId); + } + } + t.draw(); +} + +void ModelPart::clear() +{ + for (unsigned int i = 0; i < cubes.size(); ++i) + delete cubes[i]; + cubes.clear(); + + setModel(NULL); +} + +ModelPart& ModelPart::operator=( const ModelPart& rhs ) +{ + clear(); + + if (!id.empty() || !rhs.id.empty()) { + id = rhs.id; + } + xTexOffs = rhs.xTexOffs; + yTexOffs = rhs.yTexOffs; + + compiled = false; + mirror = rhs.mirror; + + setModel(rhs.model); + cubes.assign(rhs.cubes.begin(), rhs.cubes.end()); + + mimic(&rhs); + + return *this; +} diff --git a/src/client/model/geom/ModelPart.h b/src/client/model/geom/ModelPart.h new file mode 100755 index 0000000..e666542 --- /dev/null +++ b/src/client/model/geom/ModelPart.h @@ -0,0 +1,74 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL_GEOM__ModelPart_H__ +#define NET_MINECRAFT_CLIENT_MODEL_GEOM__ModelPart_H__ + +#include "../../renderer/gles.h" + +class Model; +class Cube; + +class ModelPart +{ +public: + ModelPart(const std::string& id); + ModelPart(int xTexOffs = 0, int yTexOffs = 0); + ModelPart(Model* model, int xTexOffs = 0, int yTexOffs = 0); + ~ModelPart(); + + void _init(); + void clear();//const ModelPart& rhs); + ModelPart& operator=(const ModelPart& rhs); + + void setModel(Model* model); + + void setPos( float x, float y, float z ); + void translateTo( float scale ); + + ModelPart& setTexSize(int xs, int ys); + ModelPart& texOffs(int xTexOffs, int yTexOffs); + + void mimic(const ModelPart* o); + + // Render normally + void render( float scale ); + void renderRollable( float scale ); + void draw(); + // Bad, immediate version... //@fix @todo: remove this + void renderHorrible(float scale); + void drawSlow( float scale ); + + void onGraphicsReset() { compiled = false; } + void compile( float scale ); + + void addChild(ModelPart* child); + ModelPart& addBox(const std::string& id, float x0, float y0, float z0, int w, int h, int d); + ModelPart& addBox(float x0, float y0, float z0, int w, int h, int d); + void addBox(float x0, float y0, float z0, int w, int h, int d, float g); + void addTexBox(float x0, float y0, float z0, int w, int h, int d, int tex); + + float x, y, z; + float xRot, yRot, zRot; + + bool mirror; + bool visible; + + std::vector cubes; + std::vector children; + + std::string id; + + float xTexSize; + float yTexSize; + +private: + int xTexOffs, yTexOffs; + + bool neverRender; + + bool compiled; + int list; + GLuint vboId; + + Model* model; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL_GEOM__ModelPart_H__*/ diff --git a/src/client/model/geom/Polygon.cpp b/src/client/model/geom/Polygon.cpp new file mode 100755 index 0000000..db531f2 --- /dev/null +++ b/src/client/model/geom/Polygon.cpp @@ -0,0 +1,55 @@ +#include "Polygon.h" +#include "../../renderer/Tesselator.h" +#include "../../../world/phys/Vec3.h" + +PolygonQuad::PolygonQuad(VertexPT* v0, VertexPT* v1, VertexPT* v2, VertexPT* v3) +: _flipNormal(false) +{ + vertices[0] = *v0; + vertices[1] = *v1; + vertices[2] = *v2; + vertices[3] = *v3; +} + +PolygonQuad::PolygonQuad( VertexPT* v0, VertexPT* v1, VertexPT* v2, VertexPT* v3, + int uu0, int vv0, int uu1, int vv1) +: _flipNormal(false) +{ + const float us = -0.002f / 64.0f;//0.1f / 64.0f; + const float vs = -0.002f / 32.0f;//0.1f / 32.0f; + vertices[0] = v0->remap(uu1 / 64.0f - us, vv0 / 32.0f + vs); + vertices[1] = v1->remap(uu0 / 64.0f + us, vv0 / 32.0f + vs); + vertices[2] = v2->remap(uu0 / 64.0f + us, vv1 / 32.0f - vs); + vertices[3] = v3->remap(uu1 / 64.0f - us, vv1 / 32.0f - vs); +} + +PolygonQuad::PolygonQuad( VertexPT* v0, VertexPT* v1, VertexPT* v2, VertexPT* v3, + float uu0, float vv0, float uu1, float vv1) +: _flipNormal(false) +{ + vertices[0] = v0->remap(uu1, vv0); + vertices[1] = v1->remap(uu0, vv0); + vertices[2] = v2->remap(uu0, vv1); + vertices[3] = v3->remap(uu1, vv1); +} + +void PolygonQuad::mirror() { + for (int i = 0; i < VERTEX_COUNT / 2; ++i) { + const int j = VERTEX_COUNT - i - 1; + VertexPT tmp = vertices[i]; + vertices[i] = vertices[j]; + vertices[j] = tmp; + } +} + +void PolygonQuad::render(Tesselator& t, float scale, int vboId /* = -1 */) { + for (int i = 0; i < 4; i++) { + VertexPT& v = vertices[i]; + t.vertexUV(v.pos.x * scale, v.pos.y * scale, v.pos.z * scale, v.u, v.v); + } +} + +PolygonQuad* PolygonQuad::flipNormal() { + _flipNormal = true; + return this; +} diff --git a/src/client/model/geom/Polygon.h b/src/client/model/geom/Polygon.h new file mode 100755 index 0000000..875b0a6 --- /dev/null +++ b/src/client/model/geom/Polygon.h @@ -0,0 +1,29 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__Polygon_H__ +#define NET_MINECRAFT_CLIENT_MODEL__Polygon_H__ + +//package net.minecraft.client.model; +#include "Vertex.h" + +class Tesselator; + +class PolygonQuad +{ +public: + PolygonQuad() {} + PolygonQuad(VertexPT*,VertexPT*,VertexPT*,VertexPT*); + PolygonQuad(VertexPT*,VertexPT*,VertexPT*,VertexPT*, int u0, int v0, int u1, int v1); + PolygonQuad(VertexPT*,VertexPT*,VertexPT*,VertexPT*, float u0, float v0, float u1, float v1); + + void mirror(); + void render(Tesselator& t, float scale, int vboId = -1); + PolygonQuad* flipNormal(); + + VertexPT vertices[4]; + //int vertexCount; + +private: + static const int VERTEX_COUNT = 4; + bool _flipNormal; +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__Polygon_H__*/ diff --git a/src/client/model/geom/Vertex.h b/src/client/model/geom/Vertex.h new file mode 100755 index 0000000..b7babbb --- /dev/null +++ b/src/client/model/geom/Vertex.h @@ -0,0 +1,40 @@ +#ifndef NET_MINECRAFT_CLIENT_MODEL__Vertex_H__ +#define NET_MINECRAFT_CLIENT_MODEL__Vertex_H__ + +//package net.minecraft.client.model; + +#include "../../../world/phys/Vec3.h" + +class VertexPT +{ +public: + Vec3 pos; + + float u, v; + + VertexPT() {} + + VertexPT(float x, float y, float z, float u_, float v_) + : pos(x, y, z), + u(u_), + v(v_) + {} + + VertexPT remap(float u, float v) { + return VertexPT(*this, u, v); + } + + VertexPT(const VertexPT& vertex, float u_, float v_) { + pos = vertex.pos; + u = u_; + v = v_; + } + + VertexPT(const Vec3& pos_, float u_, float v_) { + pos = pos_; + u = u_; + v = v_; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_MODEL__Vertex_H__*/ diff --git a/src/client/multiplayer/MultiPlayerLevel.h b/src/client/multiplayer/MultiPlayerLevel.h new file mode 100755 index 0000000..3ed5737 --- /dev/null +++ b/src/client/multiplayer/MultiPlayerLevel.h @@ -0,0 +1,265 @@ +#ifndef NET_MINECRAFT_CLIENT_MULTIPLAYER__MultiPlayerLevel_H__ +#define NET_MINECRAFT_CLIENT_MULTIPLAYER__MultiPlayerLevel_H__ + +#include "../../world/Pos.h" +#include "../../world/level/Level.h" +//#include "../../network/packet/DisconnectPacket.h" +#include "../../world/entity/Entity.h" +#include "../../world/level/chunk/ChunkSource.h" +#include "../../world/level/dimension/Dimension.h" +//#include "../../world/level/storage/MockedLevelStorage.h" + +#include +#include +#include + +class MultiPlayerLevel: public Level +{ + typedef Level super; + typedef std::map EntityIdMap; + typedef std::set EntitySet; + + static const int TICKS_BEFORE_RESET = SharedConstants::TicksPerSecond * 4; + + class ResetInfo { + public: + int x, y, z, ticks, tile, data; + + ResetInfo(int x, int y, int z, int tile, int data) + : x(x), + y(y), + z(z), + ticks(TICKS_BEFORE_RESET), + tile(tile), + data(data) + {} + }; + typedef std::list ResetInfoList; + +public: + MultiPlayerLevel(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int levelVersion) + : super(levelStorage, levelName, settings, levelVersion) + { + //super(new MockedLevelStorage(), "MpServer", Dimension.getNew(dimension), levelSettings); + //this->difficulty = difficulty; + //setSpawnPos(new Pos(8, 64, 8)); + //this.savedDataStorage = connection.savedDataStorage; + } + + //@todo: destructor (to Entities) + + void tick() { + if (adventureSettings.doTickTime) { + setTime(getTime() + 1); + } + updateSkyDarken(); + + for (int i = 0; i < 10 && !reEntries.empty(); i++) { + EntitySet::iterator it = reEntries.begin(); + Entity* e = *it;//reEntries.iterator().next(); + reEntries.erase(it); + + //if (!entities.contains(e)) addEntity(e); + EntityList::iterator jt = std::find(entities.begin(), entities.end(), e); + if (jt == entities.end()) + addEntity(e); + } + + for (ResetInfoList::iterator it = updatesToReset.begin(); it != updatesToReset.end();) { + ResetInfo& r = *it; + if (--r.ticks == 0) { + super::setTileAndDataNoUpdate(r.x, r.y, r.z, r.tile, r.data); + super::sendTileUpdated(r.x, r.y, r.z); + it = updatesToReset.erase(it); + } else + ++it; + } + } + + void clearResetRegion(int x0, int y0, int z0, int x1, int y1, int z1) { + for (ResetInfoList::iterator it = updatesToReset.begin(); it != updatesToReset.end();) { + ResetInfo& r = *it; + if (r.x >= x0 && r.y >= y0 && r.z >= z0 && r.x <= x1 && r.y <= y1 && r.z <= z1) { + it = updatesToReset.erase(it); + } else + ++it; + } + } + + void validateSpawn() { + setSpawnPos(Pos(8, 64, 8)); + } + + void addToTickNextTick(int x, int y, int z, int tileId, int tickDelay) { + } + + bool tickPendingTicks(bool force) { + return false; + } + + //@todo + //void setChunkVisible(int x, int z, bool visible) { + // if (visible) chunkCache.create(x, z); + // else chunkCache.drop(x, z); + // if (!visible) { + // this->setTilesDirty(x * 16, 0, z * 16, x * 16 + 15, depth, z * 16 + 15); + // } + //} + + bool addEntity(Entity* e) { + bool ok = super::addEntity(e); + forced.insert(e); + + if (!ok) { + reEntries.insert(e); + } + + return ok; + } + + void removeEntity(Entity* e) { + super::removeEntity(e); + forced.erase(e); + } + + void putEntity(int id, Entity* e) { + Entity* old = getEntity(id); + if (old != NULL) { + removeEntity(old); + } + + forced.insert(e); + e->entityId = id; + if (!addEntity(e)) { + reEntries.insert(e); + } + entitiesById.insert(std::make_pair(id, e)); + } + + Entity* getEntity(int id) { + EntityIdMap::const_iterator cit = entitiesById.find(id); + return cit != entitiesById.end()? cit->second : NULL; + } + + Entity* removeEntity(int id) { + EntityIdMap::iterator it = entitiesById.find(id); + if (it != entitiesById.end()) { + Entity* e = it->second; + entitiesById.erase(it); + removeEntity(e); + return it->second; + } + return NULL; + } + + bool setDataNoUpdate(int x, int y, int z, int data) { + int t = getTile(x, y, z); + int d = getData(x, y, z); + if (super::setDataNoUpdate(x, y, z, data)) { + updatesToReset.push_back(/*new*/ ResetInfo(x, y, z, t, d)); + return true; + } + return false; + } + + bool setTileAndDataNoUpdate(int x, int y, int z, int tile, int data) { + int t = getTile(x, y, z); + int d = getData(x, y, z); + if (super::setTileAndDataNoUpdate(x, y, z, tile, data)) { + updatesToReset.push_back(/*new*/ ResetInfo(x, y, z, t, d)); + return true; + } + return false; + } + + bool setTileNoUpdate(int x, int y, int z, int tile) { + int t = getTile(x, y, z); + int d = getData(x, y, z); + if (super::setTileNoUpdate(x, y, z, tile)) { + updatesToReset.push_back(/*new*/ ResetInfo(x, y, z, t, d)); + return true; + } + return false; + } + + bool doSetTileAndData(int x, int y, int z, int tile, int data) { + clearResetRegion(x, y, z, x, y, z); + if (super::setTileAndDataNoUpdate(x, y, z, tile, data)) { + // if (setTile(x, y, z, tile)) { + // setData(x, y, z, data); + tileUpdated(x, y, z, tile); + return true; + } + return false; + } + + void disconnect() { + //connection.sendAndDisconnect(/*new*/ DisconnectPacket("Quitting")); + } + +protected: + void tickTiles() { + } + /*@Override*/ + ChunkSource* createChunkSource() { + //chunkCache = /*new*/ MultiPlayerChunkCache(this); + //return chunkCache; + return NULL; + } + + void entityAdded(Entity* e) { + super::entityAdded(e); + EntitySet::iterator it = reEntries.find(e); + if (it != reEntries.end()) { + reEntries.erase(it); + } + } + + void entityRemoved(Entity* e) { + super::entityRemoved(e); + EntitySet::iterator it = forced.find(e); + if (it != forced.end()) { + if (e->isAlive()) { + reEntries.insert(e); + } else { + forced.erase(it); + } + } + } + +// void tickWeather() { +// if (dimension.hasCeiling) return; +// +// if (lightningTime > 0) { +// lightningTime--; +// } +// +// oRainLevel = rainLevel; +// if (levelData.isRaining()) { +// rainLevel += 0.01; +// } else { +// rainLevel -= 0.01; +// } +// if (rainLevel < 0) rainLevel = 0; +// if (rainLevel > 1) rainLevel = 1; +// +// oThunderLevel = thunderLevel; +// if (levelData.isThundering()) { +// thunderLevel += 0.01; +// } else { +// thunderLevel -= 0.01; +// } +// if (thunderLevel < 0) thunderLevel = 0; +// if (thunderLevel > 1) thunderLevel = 1; +// } +private: + ResetInfoList updatesToReset; + //ClientConnection connection; + //MultiPlayerChunkCache chunkCache; + + EntityIdMap entitiesById; + EntitySet forced; + EntitySet reEntries; +}; + +#endif /*NET_MINECRAFT_CLIENT_MULTIPLAYER__MultiPlayerLevel_H__*/ diff --git a/src/client/particle/BreakingItemParticle.h b/src/client/particle/BreakingItemParticle.h new file mode 100755 index 0000000..b92e2dd --- /dev/null +++ b/src/client/particle/BreakingItemParticle.h @@ -0,0 +1,66 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__BreakingItemParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__BreakingItemParticle_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" +#include "../renderer/Tesselator.h" +#include "../../world/item/Item.h" +#include "../../world/level/Level.h" +#include "../../world/level/tile/Tile.h" + +class BreakingItemParticle: public Particle +{ + typedef Particle super; +public: + BreakingItemParticle(Level* level, float x, float y, float z, Item* item) + : super(level, x, y, z, 0, 0, 0) + { + _init(item); + } + + BreakingItemParticle(Level* level, float x, float y, float z, float xa, float ya, float za, Item* item) + : super(level, x, y, z, 0, 0, 0) + { + _init(item); + + xd *= 0.1f; + yd *= 0.1f; + zd *= 0.1f; + xd += xa; + yd += ya; + zd += za; + } + + void _init(Item* item) { + tex = item->getIcon(0); + rCol = gCol = bCol = 1.0f; + gravity = Tile::snow->gravity; + size /= 2; + } + + int getParticleTexture() { + return ParticleEngine::ITEM_TEXTURE; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float u0 = (tex % 16 + uo / 4.0f) / 16.0f; + float u1 = u0 + 0.999f / 16.0f / 4; + float v0 = (tex / 16 + vo / 4.0f) / 16.0f; + float v1 = v0 + 0.999f / 16.0f / 4; + float r = 0.1f * size; + + float x = (float) (xo + (this->x - xo) * a - xOff); + float y = (float) (yo + (this->y - yo) * a - yOff); + float z = (float) (zo + (this->z - zo) * a - zOff); + float br = getBrightness(a); + t.color(br * rCol, br * gCol, br * bCol); + + t.vertexUV(x - xa * r - xa2 * r, y - ya * r, z - za * r - za2 * r, u0, v1); + t.vertexUV(x - xa * r + xa2 * r, y + ya * r, z - za * r + za2 * r, u0, v0); + t.vertexUV(x + xa * r + xa2 * r, y + ya * r, z + za * r + za2 * r, u1, v0); + t.vertexUV(x + xa * r - xa2 * r, y - ya * r, z + za * r - za2 * r, u1, v1); + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__BreakingItemParticle_H__*/ diff --git a/src/client/particle/BubbleParticle.h b/src/client/particle/BubbleParticle.h new file mode 100755 index 0000000..4e2ee48 --- /dev/null +++ b/src/client/particle/BubbleParticle.h @@ -0,0 +1,51 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__BubbleParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__BubbleParticle_H__ + +//package net.minecraft.client.particle; + +#include "../../util/Mth.h" +#include "../../world/level/Level.h" +#include "../../world/level/material/Material.h" +#include "Particle.h" + +class BubbleParticle: public Particle +{ + typedef Particle super; + +public: + BubbleParticle(Level* level, float x, float y, float z, float xa, float ya, float za) + : super(level, x, y, z, xa, ya, za) + { + rCol = 1.0f; + gCol = 1.0f; + bCol = 1.0f; + tex = 32; + this->setSize(0.02f, 0.02f); + + size = size*(sharedRandom.nextFloat()*0.6f+0.2f); + + xd = xa*0.2f+(float)(Mth::random()*2-1)*0.02f; + yd = ya*0.2f+(float)(Mth::random()*2-1)*0.02f; + zd = za*0.2f+(float)(Mth::random()*2-1)*0.02f; + + lifetime = (int) (8 / (Mth::random() * 0.8 + 0.2)); + } + + void tick() { + xo = x; + yo = y; + zo = z; + + yd += 0.002f; + move(xd, yd, zd); + xd *= 0.85f; + yd *= 0.85f; + zd *= 0.85f; + + if (level->getMaterial(Mth::floor(x), Mth::floor(y), Mth::floor(z)) != Material::water) remove(); + + if (lifetime-- <= 0) remove(); + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__BubbleParticle_H__*/ diff --git a/src/client/particle/CritParticle2.h b/src/client/particle/CritParticle2.h new file mode 100755 index 0000000..229e386 --- /dev/null +++ b/src/client/particle/CritParticle2.h @@ -0,0 +1,74 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__CritParticle2_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__CritParticle2_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" +#include "../../util/Mth.h" +#include "../../world/level/Level.h" +#include "../../world/level/material/Material.h" + +class CritParticle2: public Particle +{ + typedef Particle super; +public: + CritParticle2(Level* level, float x, float y, float z, float xa, float ya, float za, float scale = 1.0f) + : super(level, x, y, z, 0, 0, 0), + visible(true) + { + xd *= 0.1f; + yd *= 0.1f; + zd *= 0.1f; + xd += xa * 0.4f; + yd += ya * 0.4f; + zd += za * 0.4f; + + rCol = gCol = bCol = (float) (Mth::random() * 0.3f + 0.6f); + size *= 0.75f; + size *= scale; + oSize = size; + + lifetime = (int)(6 / (Mth::random() * 0.8f + 0.6f) * scale); + noPhysics = false; + + tex = 16 * 4 + 1; + tick(); + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + if (!visible) return; + float l = ((age + a) / lifetime) * 32; + if (l < 0) l = 0; + if (l > 1) l = 1; + + size = oSize * l; + super::render(t, a, xa, ya, za, xa2, za2); + } + + void tick() { + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + + move(xd, yd, zd); + gCol *= 0.96f; + bCol *= 0.9f; + + xd *= 0.70f; + yd *= 0.70f; + zd *= 0.70f; + yd -= 0.02f; + + if (onGround) { + xd *= 0.7f; + zd *= 0.7f; + } + } +protected: + bool visible; + float oSize; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__CritParticle2_H__*/ diff --git a/src/client/particle/ExplodeParticle.h b/src/client/particle/ExplodeParticle.h new file mode 100755 index 0000000..0eeb305 --- /dev/null +++ b/src/client/particle/ExplodeParticle.h @@ -0,0 +1,51 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__ExplodeParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__ExplodeParticle_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" +#include "../renderer/Tesselator.h" +#include "../../world/level/Level.h" + +class ExplodeParticle: public Particle +{ + typedef Particle super; +public: + ExplodeParticle(Level* level, float x, float y, float z, float xa, float ya, float za) + : super(level, x, y, z, xa, ya, za) + { + xd = xa + (Mth::random()*2.0f-1.0f) * 0.05f; + yd = ya + (Mth::random()*2.0f-1.0f) * 0.05f; + zd = za + (Mth::random()*2.0f-1.0f) * 0.05f; + + rCol = gCol = bCol = sharedRandom.nextFloat() * 0.3f + 0.7f; + size = sharedRandom.nextFloat() * sharedRandom.nextFloat() * 6.0f + 1.0f; + + lifetime = (int)(16.0f/(sharedRandom.nextFloat() * 0.8f + 0.2f)) + 2; +// noPhysics = true; + } + + void tick() + { + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + + tex = 7 - age * 8 / lifetime; + + yd += 0.004f; + move(xd, yd, zd); + xd *= 0.90f; + yd *= 0.90f; + zd *= 0.90f; + + if (onGround) { + xd *= 0.7f; + zd *= 0.7f; + } + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__ExplodeParticle_H__*/ diff --git a/src/client/particle/FlameParticle.h b/src/client/particle/FlameParticle.h new file mode 100755 index 0000000..56fe208 --- /dev/null +++ b/src/client/particle/FlameParticle.h @@ -0,0 +1,73 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__FlameParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__FlameParticle_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" +#include "../renderer/Tesselator.h" +#include "../../world/level/Level.h" + +class FlameParticle: public Particle +{ + typedef Particle super; + float oSize; +public: + FlameParticle(Level* level, float x, float y, float z, float xa, float ya, float za) + : super(level, x, y, z, xa, ya, za) + { + xd = xd * 0.01f + xa; + yd = yd * 0.01f + ya; + zd = zd * 0.01f + za; + x += (sharedRandom.nextFloat()-sharedRandom.nextFloat()) * 0.05f; + y += (sharedRandom.nextFloat()-sharedRandom.nextFloat()) * 0.05f; + z += (sharedRandom.nextFloat()-sharedRandom.nextFloat()) * 0.05f; + + //printf("xd, yd, zd: %f, %f, %f\n", xd, yd, zd); + + oSize = size; + rCol = gCol = bCol = 1.0f; + + lifetime = (int)(8.0f/(Mth::random()*0.8f+0.2f))+4; + noPhysics = true; + tex = 48; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float s = (age + a) / (float) lifetime; + size = oSize * (1 - s*s*0.5f); + super::render(t, a, xa, ya, za, xa2, za2); + } + + float getBrightness(float a) { + return 1.0f; +/* + float l = (age+a)/lifetime; + if (l<0) l = 0; + if (l>1) l = 1; + float br = super::getBrightness(a); + + return br*l+(1-l); +*/ + } + + void tick() + { + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + + move(xd, yd, zd); + xd *= 0.96f; + yd *= 0.96f; + zd *= 0.96f; + + if (onGround) + { + xd *= 0.7f; + zd *= 0.7f; + } + } +}; +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__FlameParticle_H__*/ diff --git a/src/client/particle/HugeExplosionParticle.h b/src/client/particle/HugeExplosionParticle.h new file mode 100755 index 0000000..4bcd297 --- /dev/null +++ b/src/client/particle/HugeExplosionParticle.h @@ -0,0 +1,72 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__HugeExplosionParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__HugeExplosionParticle_H__ + +//package net.minecraft.client.particle; + +#include "../renderer/Tesselator.h" +#include "../renderer/Textures.h" +#include "../../world/level/Level.h" + +class HugeExplosionParticle: public Particle +{ + typedef Particle super; +public: + HugeExplosionParticle(Textures* textures, Level* level, float x, float y, float z, float xa, float ya, float za) + : super(level, x, y, z, 0, 0, 0), + life(0), + lifeTime(6 + sharedRandom.nextInt(4)), + textures(textures), + size(1 - xa * 0.5f) + { + rCol = gCol = bCol = sharedRandom.nextFloat() * 0.6f + 0.4f; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + int tex = (int) ((life + a) * 15 / lifeTime); + if (tex > 15) return; + textures->loadAndBindTexture("misc/explosion.png"); + + float u0 = (tex % 4) / 4.0f; + float u1 = u0 + 0.999f / 4.0f; + float v0 = (tex / 4) / 4.0f; + float v1 = v0 + 0.999f / 4.0f; + +// xa2 = 0; +// za2 = 1; + + float r = size + size; + + float x = xo + (this->x - xo) * a - xOff; + float y = yo + (this->y - yo) * a - yOff; + float z = zo + (this->z - zo) * a - zOff; + const float xar = xa * r, yar = ya * r, zar = za * r; + const float xa2r = xa2 * r, za2r = za2 * r; + t.begin(); + t.color(rCol, gCol, bCol, 1.0f); + t.vertexUV(x - xar - xa2r, y - yar, z - zar - za2r, u1, v1); + t.vertexUV(x - xar + xa2r, y + yar, z - zar + za2r, u1, v0); + t.vertexUV(x + xar + xa2r, y + yar, z + zar + za2r, u0, v0); + t.vertexUV(x + xar - xa2r, y - yar, z + zar - za2r, u0, v1); + t.draw(); + //glPolygonOffset(0, 0.0f); + } + + void tick() { + xo = x; + yo = y; + zo = z; + life++; + if (life == lifeTime) remove(); + } + + int getParticleTexture() { + return ParticleEngine::ENTITY_PARTICLE_TEXTURE; + } +private: + int life; + int lifeTime; + float size; + Textures* textures; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__HugeExplosionParticle_H__*/ diff --git a/src/client/particle/HugeExplosionSeedParticle.h b/src/client/particle/HugeExplosionSeedParticle.h new file mode 100755 index 0000000..6b06e8c --- /dev/null +++ b/src/client/particle/HugeExplosionSeedParticle.h @@ -0,0 +1,40 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__HugeExplosionSeedParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__HugeExplosionSeedParticle_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" + +class HugeExplosionSeedParticle: public Particle +{ + typedef Particle super; +public: + HugeExplosionSeedParticle(Level* level, float x, float y, float z, float xa, float ya, float za) + : super(level, x, y, z, 0, 0, 0), + life(0), + lifeTime(8) + { + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) {} + + void tick() { + for (int i = 0; i < 6; i++) { + float xx = x + (sharedRandom.nextFloat() - sharedRandom.nextFloat()) * 4; + float yy = y + (sharedRandom.nextFloat() - sharedRandom.nextFloat()) * 4; + float zz = z + (sharedRandom.nextFloat() - sharedRandom.nextFloat()) * 4; + level->addParticle(PARTICLETYPE(largeexplode), xx, yy, zz, life / (float) lifeTime, 0, 0); + } + life++; + if (life == lifeTime) remove(); + } + + int getParticleTexture() { + return ParticleEngine::TERRAIN_TEXTURE; + } +private: + int life; + int lifeTime; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__HugeExplosionSeedParticle_H__*/ diff --git a/src/client/particle/LavaParticle.h b/src/client/particle/LavaParticle.h new file mode 100755 index 0000000..86b6fe0 --- /dev/null +++ b/src/client/particle/LavaParticle.h @@ -0,0 +1,63 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__LavaParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__LavaParticle_H__ + +//package net.minecraft.client.particle; + +#include "../renderer/Tesselator.h" +#include "../../world/level/Level.h" + +class LavaParticle: public Particle +{ + typedef Particle super; + float oSize; +public: + LavaParticle(Level* level, float x, float y, float z) + : super(level, x, y, z, 0, 0, 0) + { + xd *= 0.8f; + yd *= 0.8f; + zd *= 0.8f; + yd = sharedRandom.nextFloat() * 0.4f + 0.05f; + + rCol = gCol = bCol = 1; + size *= (sharedRandom.nextFloat() * 2 + 0.2f); + oSize = size; + + lifetime = (int) (16 / (Mth::random() * 0.8 + 0.2)); + noPhysics = false; + tex = 49; + } + + float getBrightness(float a) { + return 1; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float s = (age + a) / (float) lifetime; + size = oSize * (1 - s*s); + super::render(t, a, xa, ya, za, xa2, za2); + } + + void tick() { + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + float odds = age / (float) lifetime; + if (sharedRandom.nextFloat() > odds) level->addParticle(PARTICLETYPE(smoke), x, y, z, xd, yd, zd); + + yd -= 0.03f; + move(xd, yd, zd); + xd *= 0.999f; + yd *= 0.999f; + zd *= 0.999f; + + if (onGround) { + xd *= 0.7f; + zd *= 0.7f; + } + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__LavaParticle_H__*/ diff --git a/src/client/particle/Particle.cpp b/src/client/particle/Particle.cpp new file mode 100755 index 0000000..2a31e2a --- /dev/null +++ b/src/client/particle/Particle.cpp @@ -0,0 +1,99 @@ +#include "Particle.h" + +float + Particle::xOff = 0, + Particle::yOff = 0, + Particle::zOff = 0; + +Particle::Particle( Level* level, float x, float y, float z, float xa, float ya, float za ) +: super(level), + age(0), + gravity(0), + rCol(1), gCol(1), bCol(1), + tex(0) +{ + setSize(0.2f, 0.2f); + heightOffset = bbHeight / 2.0f; + setPos(x, y, z); + + xd = xa + (float) (Mth::random() * 2 - 1) * 0.4f; + yd = ya + (float) (Mth::random() * 2 - 1) * 0.4f; + zd = za + (float) (Mth::random() * 2 - 1) * 0.4f; + float speed = (float) (Mth::random() + Mth::random() + 1) * 0.15f; + + float dd = (float) (Mth::sqrt(xd * xd + yd * yd + zd * zd)); + const float mul = 0.4f * speed / dd; + xd = xd * mul; + yd = yd * mul + 0.1f; + zd = zd * mul; + + uo = sharedRandom.nextFloat() * 3; + vo = sharedRandom.nextFloat() * 3; + + size = (sharedRandom.nextFloat() * 0.5f + 0.5f) * 2; + + lifetime = (int) (4.0f / (sharedRandom.nextFloat() * 0.9f + 0.1f)); + makeStepSound = false; +} + +Particle* Particle::setPower( float power ) +{ + xd *= power; + yd = (yd - 0.1f) * power + 0.1f; + zd *= power; + return this; +} + +Particle* Particle::scale( float scale ) +{ + setSize(0.2f * scale, 0.2f * scale); + size *= scale; + return this; +} + +void Particle::tick() +{ + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + + yd -= 0.04f * gravity; + move(xd, yd, zd); + xd *= 0.98f; + yd *= 0.98f; + zd *= 0.98f; + + if (onGround) { + xd *= 0.7f; + zd *= 0.7f; + } +} + +void Particle::render( Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2 ) +{ + float u0 = (tex % 16) / 16.0f; + float u1 = u0 + 0.999f / 16.0f; + float v0 = (tex / 16) / 16.0f; + float v1 = v0 + 0.999f / 16.0f; + float r = 0.1f * size; + + float x = (float) (xo + (this->x - xo) * a - xOff); + float y = (float) (yo + (this->y - yo) * a - yOff); + float z = (float) (zo + (this->z - zo) * a - zOff); + + float br = getBrightness(a); + t.color(rCol * br, gCol * br, bCol * br); + + t.vertexUV(x - xa * r - xa2 * r, y - ya * r, z - za * r - za2 * r, u1, v1); + t.vertexUV(x - xa * r + xa2 * r, y + ya * r, z - za * r + za2 * r, u1, v0); + t.vertexUV(x + xa * r + xa2 * r, y + ya * r, z + za * r + za2 * r, u0, v0); + t.vertexUV(x + xa * r - xa2 * r, y - ya * r, z + za * r - za2 * r, u0, v1); + //printf("uv: %f, %f, %f, %f\n", u0, v0, u1, v1); +} + +int Particle::getParticleTexture() +{ + return ParticleEngine::MISC_TEXTURE; +} diff --git a/src/client/particle/Particle.h b/src/client/particle/Particle.h new file mode 100755 index 0000000..dd96bb4 --- /dev/null +++ b/src/client/particle/Particle.h @@ -0,0 +1,46 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__Particle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__Particle_H__ + +//package net.minecraft.client.particle; + +#include "../renderer/Tesselator.h" +#include "../../world/entity/Entity.h" +#include "../../world/level/Level.h" +#include "ParticleEngine.h" + +class CompoundTag; + +class Particle: public Entity { + typedef Entity super; + +public: + static float xOff, yOff, zOff; + + Particle(Level* level, float x, float y, float z, float xa, float ya, float za); + + virtual ~Particle() {} + + Particle* setPower(float power); + Particle* scale(float scale); + + virtual void tick(); + virtual void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2); + + virtual int getParticleTexture(); + + virtual void addAdditonalSaveData(CompoundTag* entityTag) {} + virtual void readAdditionalSaveData(CompoundTag* tag) {} + + virtual int getEntityTypeId() const { return 0; } + +protected: + int tex; + float uo, vo; + int age; + int lifetime; + float size; + float gravity; + float rCol, gCol, bCol; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__Particle_H__*/ diff --git a/src/client/particle/ParticleEngine.cpp b/src/client/particle/ParticleEngine.cpp new file mode 100755 index 0000000..725b1da --- /dev/null +++ b/src/client/particle/ParticleEngine.cpp @@ -0,0 +1,157 @@ +#include "ParticleEngine.h" +#include "Particle.h" +#include "TerrainParticle.h" +#include "../renderer/Textures.h" +#include "../../world/level/Level.h" +#include "../../NinecraftApp.h" + +ParticleEngine::ParticleEngine(Level* level, Textures* textures) +: level(level), + textures(textures) +{ + textures->loadTexture("particles.png"); +} + +ParticleEngine::~ParticleEngine() { + clear(); +} + +void ParticleEngine::add(Particle* p) { + int t = p->getParticleTexture(); + particles[t].push_back(p); +} + +void ParticleEngine::tick() { + for (int tt = 0; tt < TEXTURE_COUNT; tt++) { + ParticleList& list = particles[tt]; + unsigned int size = list.size(); + for (unsigned int i = 0; i < size; ++i) { + Particle* p = list[i]; + p->tick(); + if (p->removed) { + list.erase(list.begin() + (i--)); + --size; + delete p; + } + } + } +} + +void ParticleEngine::render(Entity* player, float a) { + float xa = (float) Mth::cos(player->yRot * Mth::PI / 180); + float za = (float) Mth::sin(player->yRot * Mth::PI / 180); + + float xa2 = -za * (float) Mth::sin(player->xRot * Mth::PI / 180); + float za2 = xa * (float) Mth::sin(player->xRot * Mth::PI / 180); + float ya = (float) Mth::cos(player->xRot * Mth::PI / 180); + + Particle::xOff = (player->xOld+(player->x-player->xOld)*a); + Particle::yOff = (player->yOld+(player->y-player->yOld)*a); + Particle::zOff = (player->zOld+(player->z-player->zOld)*a); + for (int tt = 0; tt < 3; tt++) { + if (particles[tt].size() == 0) continue; + + if (tt == MISC_TEXTURE) + textures->loadAndBindTexture("particles.png"); + else if (tt == TERRAIN_TEXTURE) + textures->loadAndBindTexture("terrain.png"); + else if (tt == ITEM_TEXTURE) + textures->loadAndBindTexture("gui/items.png"); + + Tesselator& t = Tesselator::instance; + t.begin(); + for (unsigned int i = 0; i < particles[tt].size(); i++) { + Particle* p = particles[tt][i]; + + p->render(t, a, xa, ya, za, xa2, za2); + } + t.draw(); + } + + renderLit(player, a); +} + +void ParticleEngine::renderLit(Entity* player, float a) { + int tt = ENTITY_PARTICLE_TEXTURE; + ParticleList& pl = particles[tt]; + const int size = pl.size(); + if (size == 0) return; + + float xa = Mth::cos(player->yRot * Mth::DEGRAD); + float za = Mth::sin(player->yRot * Mth::DEGRAD); + + float xs = Mth::sin(player->xRot * Mth::DEGRAD); + float xa2 = -za * xs; + float za2 = xa * xs; + float ya = Mth::cos(player->xRot * Mth::DEGRAD); + + Tesselator& t = Tesselator::instance; + for (int i = 0; i < size; i++) { + Particle* p = pl[i]; + p->render(t, a, xa, ya, za, xa2, za2); + } +} + +void ParticleEngine::setLevel(Level* level) { + this->level = level; + clear(); +} + +void ParticleEngine::destroy(int x, int y, int z) { + int tid = level->getTile(x, y, z); + if (tid == 0) return; + int data = level->getData(x, y, z); + + //static Stopwatch sw; + //sw.start(); + Tile* tile = Tile::tiles[tid]; + const int SD = 3; + for (int xx = 0; xx < SD; xx++) + for (int yy = 1; yy < SD; yy++) + for (int zz = 0; zz < SD; zz++) { + float xp = x + (xx + 0.5f) / SD; + float yp = y + (yy + 0.5f) / SD; + float zp = z + (zz + 0.5f) / SD; + add((new TerrainParticle(level, xp, yp, zp, 2*(xp - x - 0.5f), 2*(yp - y - 0.5f), 2*(zp - z - 0.5f), tile, data))->init(x, y, z)); + } + //sw.stop(); + //sw.print("gen destroy particles: "); +} + +void ParticleEngine::crack(int x, int y, int z, int face) { + int tid = level->getTile(x, y, z); + if (tid == 0) return; + int data = level->getData(x, y, z); + Tile* tile = Tile::tiles[tid]; + float r = 0.10f; + float xp = x + random.nextFloat() * ((tile->xx1 - tile->xx0) - r * 2) + r + tile->xx0; + float yp = y + random.nextFloat() * ((tile->yy1 - tile->yy0) - r * 2) + r + tile->yy0; + float zp = z + random.nextFloat() * ((tile->zz1 - tile->zz0) - r * 2) + r + tile->zz0; + switch (face) { + case 0: yp = y + tile->yy0 - r; break; + case 1: yp = y + tile->yy1 + r; break; + case 2: zp = z + tile->zz0 - r; break; + case 3: zp = z + tile->zz1 + r; break; + case 4: xp = x + tile->xx0 - r; break; + case 5: xp = x + tile->xx1 + r; break; + } + add((new TerrainParticle(level, xp, yp, zp, 0, 0, 0, tile, data))->init(x, y, z)->setPower(0.2f)->scale(0.6f)); +} + +std::string ParticleEngine::countParticles() { + std::stringstream ss; + int count = 0; + for (int i = 0; i < TEXTURE_COUNT; ++i) + count += particles[i].size(); + ss << count; + return ss.str(); +} + +void ParticleEngine::clear() +{ + for (int tt = 0; tt < TEXTURE_COUNT; tt++) { + for (unsigned int i = 0; i < particles[tt].size(); i++) + delete particles[tt][i]; + particles[tt].clear(); + } +} diff --git a/src/client/particle/ParticleEngine.h b/src/client/particle/ParticleEngine.h new file mode 100755 index 0000000..b75c248 --- /dev/null +++ b/src/client/particle/ParticleEngine.h @@ -0,0 +1,54 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__ParticleEngine_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__ParticleEngine_H__ + +//package net.minecraft.client.particle; + +#include +#include "../../world/entity/Entity.h" +#include "../../world/level/tile/Tile.h" +#include "../renderer/gles.h" + +class Textures; +class Level; +class Particle; +typedef std::vector ParticleList; + +class ParticleEngine +{ +public: + static const int MISC_TEXTURE = 0; + static const int TERRAIN_TEXTURE = 1; + static const int ITEM_TEXTURE = 2; + static const int ENTITY_PARTICLE_TEXTURE = 3; + + static const int TEXTURE_COUNT = 4; + + ParticleEngine(Level* level, Textures* textures); + ~ParticleEngine(); + + void add(Particle* p); + void destroy(int x, int y, int z); + + void tick(); + void render(Entity* player, float a); + void renderLit(Entity* player, float a); + + void setLevel(Level* level); + + void crack(int x, int y, int z, int face); + + std::string countParticles(); + +protected: + void clear(); + + Level* level; + GLuint textureIds[4]; + +private: + ParticleList particles[4]; + Textures* textures; + Random random; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__ParticleEngine_H__*/ diff --git a/src/client/particle/ParticleInclude.h b/src/client/particle/ParticleInclude.h new file mode 100755 index 0000000..dadcd4b --- /dev/null +++ b/src/client/particle/ParticleInclude.h @@ -0,0 +1,17 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__ParticleInclude_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__ParticleInclude_H__ + +#include "Particle.h" + +#include "BubbleParticle.h" +#include "CritParticle2.h" +#include "ExplodeParticle.h" +#include "FlameParticle.h" +#include "LavaParticle.h" +#include "RedDustParticle.h" +#include "SmokeParticle.h" +#include "TerrainParticle.h" +#include "HugeExplosionSeedParticle.h" +#include "HugeExplosionParticle.h" + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__ParticleInclude_H__*/ diff --git a/src/client/particle/RedDustParticle.h b/src/client/particle/RedDustParticle.h new file mode 100755 index 0000000..67a6faf --- /dev/null +++ b/src/client/particle/RedDustParticle.h @@ -0,0 +1,73 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__RedDustParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__RedDustParticle_H__ + +//package net.minecraft.client.particle; + +#include "../renderer/Tesselator.h" +#include "../../world/level/Level.h" + + +class RedDustParticle: public Particle +{ + typedef Particle super; +public: + float oSize; + + RedDustParticle(Level* level, float x, float y, float z, float rCol, float gCol, float bCol, float scale = 1.0f) + : super(level, x, y, z, 0, 0, 0) + { + xd *= 0.1f; + yd *= 0.1f; + zd *= 0.1f; + + if (rCol == 0) { + rCol = 1; + } + float brr = (float) Mth::random() * 0.4f + 0.6f; + this->rCol = ((float) (Mth::random() * 0.2f) + 0.8f) * rCol * brr; + this->gCol = ((float) (Mth::random() * 0.2f) + 0.8f) * gCol * brr; + this->bCol = ((float) (Mth::random() * 0.2f) + 0.8f) * bCol * brr; + size *= 0.75f; + size *= scale; + oSize = size; + + lifetime = (int) (8 / (Mth::random() * 0.8 + 0.2)); + lifetime = (int)(lifetime * scale); + noPhysics = false; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float l = ((age + a) / lifetime) * 32; + if (l < 0) l = 0; + if (l > 1) l = 1; + + size = oSize * l; + super::render(t, a, xa, ya, za, xa2, za2); + } + + void tick() { + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + + tex = 7 - age * 8 / lifetime; + + move(xd, yd, zd); + if (y == yo) { + xd *= 1.1f; + zd *= 1.1f; + } + xd *= 0.96f; + yd *= 0.96f; + zd *= 0.96f; + + if (onGround) { + xd *= 0.7f; + zd *= 0.7f; + } + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__RedDustParticle_H__*/ diff --git a/src/client/particle/SmokeParticle.h b/src/client/particle/SmokeParticle.h new file mode 100755 index 0000000..7e92f18 --- /dev/null +++ b/src/client/particle/SmokeParticle.h @@ -0,0 +1,69 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__SmokeParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__SmokeParticle_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" + +class SmokeParticle: public Particle +{ + typedef Particle super; + +public: + float oSize; + + SmokeParticle(Level* level, float x, float y, float z, float xa, float ya, float za, float scale = 1.0f) + : super(level, x, y, z, 0, 0, 0) + { + xd *= 0.1f; + yd *= 0.1f; + zd *= 0.1f; + xd += xa; + yd += ya; + zd += za; + + rCol = gCol = bCol = (float) (Mth::random() * 0.5f); + size *= 0.75f; + size *= scale; + oSize = size; + + lifetime = (int) (scale * 8.0f / (Mth::random() * 0.8f + 0.2f)); + noPhysics = false; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float l = ((age + a) / lifetime) * 32; + if (l < 0) l = 0; + if (l > 1) l = 1; + + size = oSize * l; + super::render(t, a, xa, ya, za, xa2, za2); + } + + void tick() { + xo = x; + yo = y; + zo = z; + + if (age++ >= lifetime) remove(); + + tex = 7 - age * 8 / lifetime; + + yd += 0.004f; + move(xd, yd, zd); + if (y == yo) { + xd *= 1.1f; + zd *= 1.1f; + } + xd *= 0.96f; + yd *= 0.96f; + zd *= 0.96f; + + if (onGround) { + xd *= 0.7f; + zd *= 0.7f; + } + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__SmokeParticle_H__*/ diff --git a/src/client/particle/SplashParticle.h b/src/client/particle/SplashParticle.h new file mode 100755 index 0000000..b895de1 --- /dev/null +++ b/src/client/particle/SplashParticle.h @@ -0,0 +1,26 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__SplashParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__SplashParticle_H__ + +//package net.minecraft.client.particle; + +#include "WaterDropParticle.h" +#include "../../world/level/Level.h" + +class SplashParticle: public WaterDropParticle +{ + typedef WaterDropParticle super; +public: + SplashParticle(Level* level, float x, float y, float z, float xa, float ya, float za) + : super(level, x, y, z) + { + gravity = 0.04f; + tex += 1; + if (ya == 0 && (xa != 0 || za != 0)) { + xd = xa; + yd = ya + 0.1; + zd = za; + } + } +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__SplashParticle_H__*/ diff --git a/src/client/particle/TakeAnimationParticle.h b/src/client/particle/TakeAnimationParticle.h new file mode 100755 index 0000000..78bad7f --- /dev/null +++ b/src/client/particle/TakeAnimationParticle.h @@ -0,0 +1,82 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__TakeAnimationParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__TakeAnimationParticle_H__ + +//package net.minecraft.client.particle; + +#include "Particle.h" + +#include "../renderer/entity/EntityRenderDispatcher.h" +#include "../renderer/Tesselator.h" +#include "../../world/entity/Entity.h" +#include "../../world/level/Level.h" +#include "../../util/Mth.h" +#include "../../world/entity/item/ItemEntity.h" + +class TakeAnimationParticle: public Particle +{ + typedef Particle super; + +public: + //@todo:itementity + TakeAnimationParticle(Level* level, ItemEntity* item, Entity* target, float yOffs) + : super(level, item->x, item->y, item->z, item->xd, item->yd, item->zd), + e(level, item->x, item->y, item->z, item->item), + //bx(item->x), by(item->y), bz(item->z), + target(target), + yOffs(yOffs), + life(0), + lifeTime(3) + { + e.item.count = 1; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float time = (life + a) / lifeTime; + time = time*time; + + float xo = e.x; + float yo = e.y; + float zo = e.z; + + float xt = target->xOld + (target->x - target->xOld) * a; + float yt = target->yOld + (target->y - target->yOld) * a+yOffs; + float zt = target->zOld + (target->z - target->zOld) * a; + + float xx = xo + (xt - xo) * time; + float yy = yo + (yt - yo) * time; + float zz = zo + (zt - zo) * time; + + int xTile = Mth::floor(xx); + int yTile = Mth::floor(yy + heightOffset * 0.5f); + int zTile = Mth::floor(zz); + + float br = level->getBrightness(xTile, yTile, zTile); + glColor4f2(br, br, br, 1); + + xx -= xOff; + yy -= yOff; + zz -= zOff; + + EntityRenderDispatcher::getInstance()->render(&e, xx, yy, zz, e.yRot, a); + } + + void tick() { + life++; + if (life == lifeTime) remove(); + } + + int getParticleTexture() { + return ParticleEngine::ENTITY_PARTICLE_TEXTURE; + } + +private: + //Entity* item; + ItemEntity e; + Entity* target; + //float bx, by, bz; + int life; + int lifeTime; + float yOffs; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__TakeAnimationParticle_H__*/ diff --git a/src/client/particle/TerrainParticle.h b/src/client/particle/TerrainParticle.h new file mode 100755 index 0000000..663d87b --- /dev/null +++ b/src/client/particle/TerrainParticle.h @@ -0,0 +1,63 @@ +#ifndef NET_MINECRAFT_CLIENT_PARTICLE__TerrainParticle_H__ +#define NET_MINECRAFT_CLIENT_PARTICLE__TerrainParticle_H__ + +//package net.minecraft.client.particle; + +#include "../renderer/Tesselator.h" +#include "../../world/level/Level.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/level/tile/GrassTile.h" + +class TerrainParticle: public Particle +{ + typedef Particle super; + +public: + TerrainParticle(Level* level, float x, float y, float z, float xa, float ya, float za, Tile* tile, int data) + : super(level, x, y, z, xa, ya, za), + tile(tile) + { + tex = tile->getTexture(2, data); + gravity = tile->gravity; + rCol = gCol = bCol = 0.6f; + size /= 2; + //noPhysics = true; + } + + TerrainParticle* init(int x, int y, int z) { + if (tile == Tile::grass) return this; + int col = tile->getColor(level, x, y, z); + rCol *= ((col >> 16) & 0xff) / 255.0f; + gCol *= ((col >> 8) & 0xff) / 255.0f; + bCol *= ((col) & 0xff) / 255.0f; + return this; + } + + int getParticleTexture() { + return ParticleEngine::TERRAIN_TEXTURE; + } + + void render(Tesselator& t, float a, float xa, float ya, float za, float xa2, float za2) { + float u0 = ((tex & 15) + uo / 4.0f) / 16.0f; + float u1 = u0 + 0.999f / 16.0f / 4; + float v0 = ((tex >> 4) + vo / 4.0f) / 16.0f; + float v1 = v0 + 0.999f / 16.0f / 4; + float r = 0.1f * size; + + float x = (float) (xo + (this->x - xo) * a - xOff); + float y = (float) (yo + (this->y - yo) * a - yOff); + float z = (float) (zo + (this->z - zo) * a - zOff); + float br = getBrightness(a); + t.color(br * rCol, br * gCol, br * bCol); + + t.vertexUV(x - xa * r - xa2 * r, y - ya * r, z - za * r - za2 * r, u0, v1); + t.vertexUV(x - xa * r + xa2 * r, y + ya * r, z - za * r + za2 * r, u0, v0); + t.vertexUV(x + xa * r + xa2 * r, y + ya * r, z + za * r + za2 * r, u1, v0); + t.vertexUV(x + xa * r - xa2 * r, y - ya * r, z + za * r - za2 * r, u1, v1); + } + +private: + Tile* tile; +}; + +#endif /*NET_MINECRAFT_CLIENT_PARTICLE__TerrainParticle_H__*/ diff --git a/src/client/player/LocalPlayer.cpp b/src/client/player/LocalPlayer.cpp new file mode 100755 index 0000000..995d52c --- /dev/null +++ b/src/client/player/LocalPlayer.cpp @@ -0,0 +1,513 @@ +#include "LocalPlayer.h" +#include "../Minecraft.h" +#include "../../ErrorCodes.h" +#include "../../world/entity/EntityEvent.h" +#include "../../world/entity/player/Player.h" +#include "../../world/inventory/BaseContainerMenu.h" +#include "../../world/item/BowItem.h" +#include "../../world/level/Level.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/level/tile/entity/TileEntity.h" +#include "../../world/level/material/Material.h" +#include "../../network/packet/ContainerClosePacket.h" +#include "../../network/packet/MovePlayerPacket.h" +#include "../../network/packet/PlayerEquipmentPacket.h" +#include "../../network/RakNetInstance.h" +#include "../../network/packet/DropItemPacket.h" +#include "../../network/packet/SetHealthPacket.h" +#include "../../network/packet/SendInventoryPacket.h" +#include "../../network/packet/EntityEventPacket.h" +#include "../../network/packet/PlayerActionPacket.h" +#ifndef STANDALONE_SERVER +#include "../gui/Screen.h" +#include "../gui/screens/FurnaceScreen.h" +#include "../gui/screens/ChestScreen.h" +#include "../gui/screens/crafting/WorkbenchScreen.h" +#include "../gui/screens/crafting/StonecutterScreen.h" +#include "../gui/screens/InBedScreen.h" +#include "../gui/screens/TextEditScreen.h" +#include "../particle/TakeAnimationParticle.h" +#endif +#include "../../network/packet/AnimatePacket.h" +#include "../../world/item/ArmorItem.h" +#include "../../network/packet/PlayerArmorEquipmentPacket.h" + +//@note: doesn't work completely, since it doesn't care about stairs rotation +static bool isJumpable(int tileId) { + return tileId != Tile::fence->id + && tileId != Tile::fenceGate->id + && tileId != Tile::stoneSlabHalf->id + && tileId != Tile::trapdoor->id + && tileId != Tile::sign->id + && tileId != Tile::wallSign->id + && (Tile::tiles[tileId] != NULL && Tile::tiles[tileId]->getRenderShape() != Tile::SHAPE_STAIRS); +} + +LocalPlayer::LocalPlayer(Minecraft* minecraft, Level* level, User* user, int dimension, bool isCreative) +: Player(level, isCreative), + minecraft(minecraft), + input(NULL), + sentInventoryItemId(-1), + sentInventoryItemData(-1), + autoJumpEnabled(true), + armorTypeHash(0) +{ + this->dimension = dimension; + _init(); + + if (user != NULL) { + if (user->name.length() > 0) + //customTextureUrl = "http://s3.amazonaws.com/MinecraftSkins/" + user.name + ".png"; + this->name = user->name; + } +} + +LocalPlayer::~LocalPlayer() { + //delete input; + //input = NULL; +} + +/*private*/ +void LocalPlayer::calculateFlight(float xa, float ya, float za) { + + xa = xa * minecraft->options.flySpeed; + ya = 0; + za = za * minecraft->options.flySpeed; + +#ifdef ANDROID + if (Keyboard::isKeyDown(103)) ya = .2f * minecraft->options.flySpeed; + if (Keyboard::isKeyDown(102)) ya = -.2f * minecraft->options.flySpeed; +#else + if (Keyboard::isKeyDown(Keyboard::KEY_E)) ya = .2f * minecraft->options.flySpeed; + if (Keyboard::isKeyDown(Keyboard::KEY_Q)) ya = -.2f * minecraft->options.flySpeed; +#endif + + flyX = 10 * smoothFlyX.getNewDeltaValue(xa, .35f * minecraft->options.sensitivity); + flyY = 10 * smoothFlyY.getNewDeltaValue(ya, .35f * minecraft->options.sensitivity); + flyZ = 10 * smoothFlyZ.getNewDeltaValue(za, .35f * minecraft->options.sensitivity); +} + +bool LocalPlayer::isSolidTile(int x, int y, int z) { + int tileId = level->getTile(x, y, z); + return tileId > 0 && Tile::tiles[tileId]->material->isSolid(); +} + +void LocalPlayer::tick() { + + super::tick(); + if(!useItem.isNull()) { + ItemInstance* item = inventory->getSelected(); + if(item != NULL && *item == useItem) { + if (useItemDuration <= 25 && useItemDuration % 4 == 0) { + spawnEatParticles(item, 5); + } + if(--useItemDuration == 0) { + if(!level->isClientSide) { + completeUsingItem(); + } else { + EntityEventPacket p(entityId, EntityEvent::USE_ITEM_COMPLETE); + level->raknetInstance->send(p); + } + } + } + else { + stopUsingItem(); + } + } + if (minecraft->isOnline()) + { + if (std::abs(x - sentX) > .1f || std::abs(y - sentY) > .01f || std::abs(z - sentZ) > .1f || std::abs(sentRotX - xRot) > 1 || std::abs(sentRotY - yRot) > 1) + { + MovePlayerPacket packet(entityId, x, y - heightOffset, z, xRot, yRot); + minecraft->raknetInstance->send(packet); + sentX = x; + sentY = y; + sentZ = z; + sentRotX = xRot; + sentRotY = yRot; + } + + ItemInstance* item = inventory->getSelected(); + int newItemId = (item && item->count > 0) ? item->id : 0; + int newItemData = (item && item->count > 0) ? item->getAuxValue() : 0; + + if (sentInventoryItemId != newItemId + || sentInventoryItemData != newItemData) + { + sentInventoryItemId = newItemId; + sentInventoryItemData = newItemData; + PlayerEquipmentPacket packet(entityId, newItemId, newItemData); + minecraft->raknetInstance->send(packet); + } + } +/* + for (int i = 0; i < 4; ++i) { + ItemInstance* a = getArmor(i); + if (!a) continue; + + ArmorItem* item = (ArmorItem*) a->getItem(); + + printf("armor %d: %d\n", i, a->getAuxValue()); + } +/**/ + + updateArmorTypeHash(); +#ifndef STANDALONE_SERVER + if (!minecraft->screen && containerMenu) { + static bool hasPostedError = false; + if (!hasPostedError) { + minecraft->gui.postError( ErrorCodes::ContainerRefStillExistsAfterDestruction ); + hasPostedError = true; + } + } +#endif + //LOGI("biome: %s\n", level->getBiomeSource()->getBiome((int)x >> 4, (int)z >> 4)->name.c_str()); +} + +/*public*/ +void LocalPlayer::aiStep() { + jumpTriggerTime--; + ascendTriggerTime--; + descendTriggerTime--; + + bool wasJumping = input->jumping; +#ifndef STANDALONE_SERVER + bool screenCovering = minecraft->screen && !minecraft->screen->passEvents; + if (!screenCovering) + input->tick(this); + + if (input->sneaking) { + if (ySlideOffset < 0.2f) ySlideOffset = 0.2f; + } +#endif + if (abilities.mayfly) { + // Check for flight toggle + if (!wasJumping && input->jumping) { + if (jumpTriggerTime <= 0) jumpTriggerTime = 7; + else { + abilities.flying = !abilities.flying; + jumpTriggerTime = 0; + } + } + if (abilities.flying) { + if (input->wantUp) { + yd += 0.15f; + //xd = zd = 0; + } + if (input->wantDown) { + yd -= 0.15f; + } + } + } + + if(isUsingItem()) { + const float k = 0.35f; + input->xa *= k; + input->ya *= k; + } + + Mob::aiStep(); + super::aiStep(); + + //if (onGround && abilities.flying) + // abilities.flying = false; + + if (interpolateOnly()) + updateAi(); +} + +/*public*/ +void LocalPlayer::closeContainer() { + if (level->isClientSide) { + ContainerClosePacket packet(containerMenu->containerId); + minecraft->raknetInstance->send(packet); + } + super::closeContainer(); + minecraft->setScreen(NULL); +} + +//@Override +void LocalPlayer::move(float xa, float ya, float za) { + //@note: why is this == minecraft->player needed? + if (this == minecraft->player && minecraft->options.isFlying) { + noPhysics = true; + float tmp = walkDist; // update + calculateFlight((float) xa, (float) ya, (float) za); + fallDistance = 0; + yd = 0; + super::move(flyX, flyY, flyZ); + onGround = true; + walkDist = tmp; + } else { + if (autoJumpTime > 0) { + autoJumpTime--; + input->jumping = true; + } + float prevX = x, prevZ = z; + + super::move(xa, ya, za); + + float newX = x, newZ = z; + + if (autoJumpTime <= 0 && autoJumpEnabled) + { + // auto-jump when crossing the middle of a tile, and the tile in the front is blocked + bool jump = false; + if (Mth::floor(prevX * 2.0f) != Mth::floor(newX * 2.0f) || Mth::floor(prevZ * 2.0f) != Mth::floor(newZ * 2.0f)) + { + float dist = Mth::sqrt(xa * xa + za * za); + const int xx = Mth::floor(x + xa / dist); + const int zz = Mth::floor(z + za / dist); + const int tileId = level->getTile(xx, (int)(y-1), zz); + jump = (isSolidTile(xx, (int)(y-1), zz) // Solid block to jump up on + && !isSolidTile(xx, (int)y, zz) && !isSolidTile(xx, (int)(y+1), zz)) // Enough space + && isJumpable(tileId); + } + if (jump) + { + autoJumpTime = 1; + } + } + } +} + +void LocalPlayer::updateAi() { + super::updateAi(); + this->xxa = input->xa; + this->yya = input->ya; + this->jumping = input->jumping || autoJumpTime > 0; +} + +void LocalPlayer::take( Entity* e, int orgCount ) +{ +#ifndef STANDALONE_SERVER + if (e->isItemEntity()) + minecraft->particleEngine->add(new TakeAnimationParticle(minecraft->level, (ItemEntity*)e, this, -0.5f)); +#endif +} + +void LocalPlayer::setKey( int eventKey, bool eventKeyState ) +{ + input->setKey(eventKey, eventKeyState); +} + +void LocalPlayer::releaseAllKeys() +{ + if (input) input->releaseAllKeys(); +} + +float LocalPlayer::getFieldOfViewModifier() { + float targetFov = 1.0f; + if(abilities.flying) targetFov *= 1.1f; + targetFov *= ((walkingSpeed * getWalkingSpeedModifier()) / DEFAULT_WALK_SPEED +1) / 2; + + if(isUsingItem() && getUseItem()->id == Item::bow->id) { + float ticksHeld = (float)getTicksUsingItem(); + float scale = ticksHeld / BowItem::MAX_DRAW_DURATION; + if(scale > 1) { + scale = 1; + } + else { + scale *= scale; + } + targetFov *= 1.0f - scale * 0.15f; + } + return targetFov; +} +void LocalPlayer::addAdditonalSaveData( CompoundTag* entityTag ) +{ + super::addAdditonalSaveData(entityTag); + entityTag->putInt("Score", score); +} + +void LocalPlayer::readAdditionalSaveData( CompoundTag* entityTag ) +{ + super::readAdditionalSaveData(entityTag); + score = entityTag->getInt("Score"); +} + +bool LocalPlayer::isSneaking() +{ + return input->sneaking; +} + +void LocalPlayer::hurtTo( int newHealth ) +{ + int dmg = health - newHealth; + if (dmg <= 0) { + this->health = newHealth; + } else { + lastHurt = dmg; + lastHealth = health; + invulnerableTime = invulnerableDuration; + + minecraft->player->bypassArmor = true; + actuallyHurt(dmg); + minecraft->player->bypassArmor = false; + + hurtTime = hurtDuration = 10; + } +} + +void LocalPlayer::actuallyHurt( int dmg ) +{ +#ifndef STANDALONE_SERVER + if (minecraft->screen && minecraft->screen->closeOnPlayerHurt()) { + if (containerMenu) closeContainer(); + else minecraft->setScreen(NULL); + } +#endif + super::actuallyHurt(dmg); +} + +void LocalPlayer::respawn() +{ + minecraft->respawnPlayer(); +} + +void LocalPlayer::die(Entity* source) +{ + // If we're an online client, send the inventory to be dropped + // If we're the server, drop the inventory immediately + if (level->isClientSide) { + SendInventoryPacket packet(this, true); + minecraft->raknetInstance->send(packet); + } + inventory->dropAll(level->isClientSide); + for (int i = 0; i < NUM_ARMOR; ++i) { + ItemInstance* item = getArmor(i); + if (!ItemInstance::isArmorItem(item)) return; + + drop(new ItemInstance(*item), true); + setArmor(i, NULL); + } + + super::die(source); +} + +void LocalPlayer::swing() { + super::swing(); + + if (swingTime == -1) { + AnimatePacket packet(AnimatePacket::Swing, this); + packet.reliability = UNRELIABLE; + packet.priority = MEDIUM_PRIORITY; + minecraft->raknetInstance->send(packet); + } +} + +void LocalPlayer::reset() { + super::reset(); + this->_init(); +} + +void LocalPlayer::_init() { + autoJumpTime = 0; + jumpTriggerTime = 0; + ascendTriggerTime = 0; + descendTriggerTime = 0; + ascending = false; + descending = false; + + ItemInstance* item = inventory->getSelected(); + sentInventoryItemId = item? item->id : 0; + sentInventoryItemData = item? item->getAuxValue() : 0; +} + +void LocalPlayer::startCrafting(int x, int y, int z, int tableSize) { +#ifndef STANDALONE_SERVER + if (!minecraft->isCreativeMode()) + minecraft->setScreen( new WorkbenchScreen(tableSize) ); +#endif +} + +void LocalPlayer::startStonecutting(int x, int y, int z) { +#ifndef STANDALONE_SERVER + if (!minecraft->isCreativeMode()) + minecraft->setScreen( new StonecutterScreen() ); +#endif +} + +void LocalPlayer::openFurnace( FurnaceTileEntity* e ) { +#ifndef STANDALONE_SERVER + if (!minecraft->isCreativeMode()) + minecraft->setScreen( new FurnaceScreen(this, e) ); +#endif +} + +void LocalPlayer::openContainer( ChestTileEntity* container ) { +#ifndef STANDALONE_SERVER + if (!minecraft->isCreativeMode()) + minecraft->setScreen( new ChestScreen(this, container) ); +#endif +} + +void LocalPlayer::drop( ItemInstance* item, bool randomly ) +{ + if (!item) + return; + + if (level->isClientSide) { + DropItemPacket packet(entityId, *item); + minecraft->raknetInstance->send(packet); + // delete the ItemEntity here, since we don't add it to level + delete item; + } else { + super::drop(item, randomly); + } +} + +void LocalPlayer::causeFallDamage( float distance ) +{ + int dmg = (int) ceil((distance - 3)); + if (dmg > 0) { + if (level->isClientSide) { + SetHealthPacket packet(SetHealthPacket::HEALTH_MODIFY_OFFSET + dmg); + minecraft->raknetInstance->send(packet); + } + } + super::causeFallDamage(distance); + +} + +void LocalPlayer::displayClientMessage( const std::string& messageId ) { +#ifndef STANDALONE_SERVER + minecraft->gui.displayClientMessage(messageId); +#endif +} + +int LocalPlayer::startSleepInBed( int x, int y, int z ) { + int startSleepInBedReturnValue = super::startSleepInBed(x, y, z); +#ifndef STANDALONE_SERVER + if(startSleepInBedReturnValue == BedSleepingResult::OK) + minecraft->setScreen(new InBedScreen()); +#endif + return startSleepInBedReturnValue; +} + +void LocalPlayer::stopSleepInBed( bool forcefulWakeUp, bool updateLevelList, bool saveRespawnPoint ) { + if(level->isClientSide) { + PlayerActionPacket packet(PlayerActionPacket::STOP_SLEEPING, 0, 0, 0, 0, entityId); + minecraft->raknetInstance->send(packet); + } +#ifndef STANDALONE_SERVER + minecraft->setScreen(NULL); +#endif + super::stopSleepInBed(forcefulWakeUp, updateLevelList, saveRespawnPoint); +} + +void LocalPlayer::openTextEdit( TileEntity* tileEntity ) { +#if !defined(STANDALONE_SERVER) && !defined(RPI) + if(tileEntity->type == TileEntityType::Sign) + minecraft->setScreen(new TextEditScreen((SignTileEntity*) tileEntity)); +#endif +} + +void LocalPlayer::updateArmorTypeHash() { + int hash = getArmorTypeHash(); + if (hash != armorTypeHash) { + PlayerArmorEquipmentPacket p(this); + minecraft->raknetInstance->send(p); + armorTypeHash = hash; + } +} diff --git a/src/client/player/LocalPlayer.h b/src/client/player/LocalPlayer.h new file mode 100755 index 0000000..e7b1fb4 --- /dev/null +++ b/src/client/player/LocalPlayer.h @@ -0,0 +1,104 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__LocalPlayer_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__LocalPlayer_H__ + +//package net.minecraft.client.player; + +#include "input/IMoveInput.h" +#include "../User.h" +#include "../../platform/input/Keyboard.h" +#include "../../util/SmoothFloat.h" +#include "../../world/entity/player/Player.h" + +class Minecraft; +class Stat; +class CompoundTag; + +class LocalPlayer: public Player +{ + typedef Player super; +public: + LocalPlayer(Minecraft* minecraft, Level* level, User* user, int dimension, bool isCreative); + ~LocalPlayer(); + + void _init(); + virtual void reset(); + + void tick(); + void move(float xa, float ya, float za); + + void aiStep(); + void updateAi(); + + void setKey(int eventKey, bool eventKeyState); + void releaseAllKeys(); + + void addAdditonalSaveData(CompoundTag* entityTag); + void readAdditionalSaveData(CompoundTag* entityTag); + + void closeContainer(); + + void drop(ItemInstance* item, bool randomly); + void take(Entity* e, int orgCount); + + void startCrafting(int x, int y, int z, int tableSize); + void startStonecutting(int x, int y, int z); + + void openContainer(ChestTileEntity* container); + void openFurnace(FurnaceTileEntity* e); + + bool isSneaking(); + + void actuallyHurt(int dmg); + void hurtTo(int newHealth); + void die(Entity* source); + + void respawn(); + + void animateRespawn() {} + float getFieldOfViewModifier(); + void chat(const std::string& message) {} + void displayClientMessage(const std::string& messageId); + + void awardStat(Stat* stat, int count) { + //minecraft->stats.award(stat, count); + //minecraft->achievementPopup.popup("Achievement get!", stat.name); + } + void causeFallDamage( float distance ); + + virtual int startSleepInBed(int x, int y, int z); + virtual void stopSleepInBed(bool forcefulWakeUp, bool updateLevelList, bool saveRespawnPoint); + + void swing(); + virtual void openTextEdit( TileEntity* tileEntity ); +private: + void calculateFlight(float xa, float ya, float za); + bool isSolidTile(int x, int y, int z); + void updateArmorTypeHash(); +public: + IMoveInput* input; + bool autoJumpEnabled; +protected: + Minecraft* minecraft; + int jumpTriggerTime; + int ascendTriggerTime; + int descendTriggerTime; + bool ascending, descending; +private: + // local player fly + // ----------------------- + float flyX, flyY, flyZ; + + // smooth camera settings + SmoothFloat smoothFlyX; + SmoothFloat smoothFlyY; + SmoothFloat smoothFlyZ; + + int autoJumpTime; + + int sentInventoryItemId; + int sentInventoryItemData; + + int armorTypeHash; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__LocalPlayer_H__*/ diff --git a/src/client/player/RemotePlayer.cpp b/src/client/player/RemotePlayer.cpp new file mode 100755 index 0000000..56b20d7 --- /dev/null +++ b/src/client/player/RemotePlayer.cpp @@ -0,0 +1,35 @@ +#include "RemotePlayer.h" +#include "../../world/entity/player/Inventory.h" +#include "../../world/entity/SharedFlags.h" + +RemotePlayer::RemotePlayer(Level* level, bool isCreative) +: Player(level, isCreative), + hasStartedUsingItem(false) +{ + hasFakeInventory = true; +} + +void RemotePlayer::tick() { + super::tick(); + + if (!hasStartedUsingItem && getSharedFlag(SharedFlagsInformation::FLAG_USINGITEM)) { + hasStartedUsingItem = true; + ItemInstance* instance = inventory->getItem(Inventory::MAX_SELECTION_SIZE); + if (instance) { + Item* item = Item::items[instance->id]; + if (item) { + startUsingItem(*instance, item->getUseDuration(instance)); + //LOGI("Start using item! %s\n", instance->getDescriptionId().c_str()); + } + } + } else if (hasStartedUsingItem && !getSharedFlag(SharedFlagsInformation::FLAG_USINGITEM)) { +// LOGI("Stop using item! %s\n", useItem.getDescriptionId().c_str()); + stopUsingItem(); + hasStartedUsingItem = false; + } +} + +void RemotePlayer::aiStep() { + updateAttackAnim(); + super::aiStep(); +} diff --git a/src/client/player/RemotePlayer.h b/src/client/player/RemotePlayer.h new file mode 100755 index 0000000..6cdba9a --- /dev/null +++ b/src/client/player/RemotePlayer.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__RemotePlayer_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__RemotePlayer_H__ + +//package net.minecraft.client.player; + +#include "../../world/entity/player/Player.h" + +class Level; + +class RemotePlayer: public Player +{ + typedef Player super; +public: + RemotePlayer(Level* level, bool isCreative); + void aiStep(); + void tick(); +private: + bool hasStartedUsingItem; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__RemotePlayer_H__*/ diff --git a/src/client/player/input/ControllerTurnInput.h b/src/client/player/input/ControllerTurnInput.h new file mode 100755 index 0000000..d34a42f --- /dev/null +++ b/src/client/player/input/ControllerTurnInput.h @@ -0,0 +1,69 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT_ControllerTurnInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT_ControllerTurnInput_H__ + +#include "ITurnInput.h" +#include "../../../platform/input/Controller.h" + +/** A Controller Turn input */ +class ControllerTurnInput : public ITurnInput { +public: + static const int MODE_OFFSET = 1; + static const int MODE_DELTA = 2; + + ControllerTurnInput(int controllerId, int mode_) + : cid(controllerId), + mode(mode_), + cxO(0), cyO(0), + wasActive(false) + {} + + bool isTouched() { return Controller::isTouched(cid); } + + TurnDelta getTurnDelta() { + float dx = 0, dy = 0; + bool isActive = Controller::isTouched(cid); + + if (MODE_OFFSET == mode) { + float dt = getDeltaTime(); + const float MaxTurnX = 250.0f; + const float MaxTurnY = 200.0f; + float cx = isActive? Controller::getX(cid) : cxO * 0.7f; + float cy = isActive? Controller::getY(cid) : cyO * 0.7f; + dx = linearTransform( cx, 0.1f, MaxTurnX ) * dt; + dy = linearTransform( cy, 0.1f, MaxTurnY ) * dt; + cxO = cx; + cyO = cy; + } else + if (MODE_DELTA == mode && (wasActive || isActive)) { + float cx = Controller::getX(cid); + float cy = Controller::getY(cid); + +// const float dt = getDeltaTime(); + const float MaxTurnX = 100.0f; + const float MaxTurnY = 100.0f; + const float DeadZone = 0;//0.25f * dt;//0.02f; + + if (!wasActive) { + cxO = cx; + cyO = cy; + } + if (isActive) { + dx = linearTransform(cx - cxO, DeadZone) * MaxTurnX; + dy = linearTransform(cy - cyO, DeadZone) * MaxTurnY; + cxO = cx; + cyO = cy; + } + } + + wasActive = isActive; + return TurnDelta(dx, -dy); + } + + int mode; +private: + int cid; + float cxO, cyO; + bool wasActive; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT_ControllerTurnInput_H__*/ diff --git a/src/client/player/input/IBuildInput.h b/src/client/player/input/IBuildInput.h new file mode 100755 index 0000000..488e172 --- /dev/null +++ b/src/client/player/input/IBuildInput.h @@ -0,0 +1,45 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT__IBuildInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT__IBuildInput_H__ + +#include "../../IConfigListener.h" +class Player; + +class BuildActionIntention { +public: + BuildActionIntention() + : action(0) + {} + BuildActionIntention(int action) + : action(action) + {} + + bool isFirstRemove() { return (action & BAI_FIRSTREMOVE) != 0; } + bool isRemoveContinue() { return (action & BAI_REMOVE) != 0; } + + bool isBuild() { return (action & BAI_BUILD) != 0; } + bool isRemove() { return isFirstRemove() || isRemoveContinue(); } + + bool isAttack() { return (action & BAI_ATTACK) != 0; } + bool isInteract() { return (action & BAI_INTERACT) != 0; } + + int action; + + static const int BAI_BUILD = 1; + static const int BAI_REMOVE = 2; + static const int BAI_FIRSTREMOVE = 4; + + static const int BAI_ATTACK = 8; + static const int BAI_INTERACT = 16; +}; + + +class IBuildInput: public IConfigListener { +public: + virtual ~IBuildInput(){} + + virtual void onConfigChanged(const Config& c) {} + // @return true if user wants to do an action, false if not + virtual bool tickBuild(Player*, BuildActionIntention* bai) { return false; } +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT__IBuildInput_H__*/ diff --git a/src/client/player/input/IInputHolder.h b/src/client/player/input/IInputHolder.h new file mode 100755 index 0000000..4f531c6 --- /dev/null +++ b/src/client/player/input/IInputHolder.h @@ -0,0 +1,75 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__IInputHolder_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__IInputHolder_H__ + +#include "IMoveInput.h" +#include "ITurnInput.h" +#include "IBuildInput.h" + +#include "../../../platform/input/Mouse.h" + +class Player; + +class IInputHolder: public IConfigListener +{ +public: + IInputHolder() + : mousex(0), + mousey(0), + alpha(0) + {} + + virtual ~IInputHolder() {} + + virtual void render(float alpha) {} + + virtual bool allowPicking() { + mousex = Mouse::getX(); + mousey = Mouse::getY(); + return Mouse::getButtonState(MouseAction::ACTION_LEFT) == MouseAction::DATA_DOWN; + } + + void onConfigChanged(const Config& c) { + getMoveInput()->onConfigChanged(c); + getTurnInput()->onConfigChanged(c); + getBuildInput()->onConfigChanged(c); + } + + virtual IMoveInput* getMoveInput() = 0; + virtual ITurnInput* getTurnInput() = 0; + virtual IBuildInput* getBuildInput() = 0; + + float mousex, mousey; + float alpha; +}; + + +class CustomInputHolder: public IInputHolder +{ +public: + CustomInputHolder(IMoveInput* move, ITurnInput* turn, IBuildInput* build) + { + setInputs(move, turn, build); + } + + ~CustomInputHolder() { + delete _move; + delete _turn; + delete _build; + } + void setInputs(IMoveInput* move, ITurnInput* turn, IBuildInput* build) { + _move = move; + _turn = turn; + _build = build; + } + + virtual IMoveInput* getMoveInput() { return _move; } + virtual ITurnInput* getTurnInput() { return _turn; } + virtual IBuildInput* getBuildInput() { return _build; } + +private: + IMoveInput* _move; + ITurnInput* _turn; + IBuildInput* _build; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__IInputHolder_H__*/ diff --git a/src/client/player/input/IMoveInput.h b/src/client/player/input/IMoveInput.h new file mode 100755 index 0000000..e61bac1 --- /dev/null +++ b/src/client/player/input/IMoveInput.h @@ -0,0 +1,47 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__IMoveInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__IMoveInput_H__ + +//package net.minecraft.client.player; + +#include "../../IConfigListener.h" +class Player; +class Minecraft; + +class IMoveInput +{ +protected: + IMoveInput() + : xa(0), + ya(0), + wasJumping(false), + jumping(false), + sneaking(false), + wantUp(false), + wantDown(false), + isChangingFlightHeight(false) + {} +public: + virtual ~IMoveInput() {} + + virtual void tick(Player* player) {} + virtual void render(float a) {} + + virtual void setKey(int eventKey, bool eventKeyState) {} + virtual void releaseAllKeys() {} + + virtual void onConfigChanged(const Config& c) {} + +public: + float xa; + float ya; + + bool wasJumping; + bool jumping; + bool sneaking; + + bool wantUp; + bool wantDown; + bool isChangingFlightHeight; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__IMoveInput_H__*/ diff --git a/src/client/player/input/ITurnInput.h b/src/client/player/input/ITurnInput.h new file mode 100755 index 0000000..151e807 --- /dev/null +++ b/src/client/player/input/ITurnInput.h @@ -0,0 +1,52 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__ITurnInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__ITurnInput_H__ + +#include "../../../platform/time.h" +#include "../../IConfigListener.h" +#include + +/** Representing a Turn delta value */ +class TurnDelta { +public: + TurnDelta(float dx, float dy) + : x(dx), + y(dy) + {} + + float x, y; +}; + +/** Base class for classes providing TurnDeltas */ +class ITurnInput: public IConfigListener { +public: + virtual ~ITurnInput() {} + virtual void onConfigChanged(const Config& c) {} + + virtual TurnDelta getTurnDelta() = 0; +protected: + ITurnInput() + : _lastTime(-1.0f) + {} + + float getDeltaTime(){ + if (_lastTime == -1.0f) { + _lastTime = getTimeS(); + } + float now = getTimeS(); + float dt = now - _lastTime; + _lastTime = now; + return dt; + } + + static float linearTransform(float value, float deadZone, float scale=1.0f, bool limit1=false) { + float deadSigned = value >= 0? deadZone : -deadZone; + if (std::abs(deadSigned) >= std::abs(value)) return 0; + float ret = (value - deadSigned) * scale; + if (limit1 && std::abs(ret) > 1) ret /= std::abs(ret); + return ret; + } +private: + float _lastTime; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__ITurnInput_H__*/ diff --git a/src/client/player/input/KeyboardInput.cpp b/src/client/player/input/KeyboardInput.cpp new file mode 100755 index 0000000..30a5a55 --- /dev/null +++ b/src/client/player/input/KeyboardInput.cpp @@ -0,0 +1,65 @@ +#include "KeyboardInput.h" +#include "../../Options.h" +#include "../../../world/entity/player/Player.h" + +KeyboardInput::KeyboardInput( Options* options ) +{ + for (int i = 0; i < NumKeys; ++i) + keys[i] = false; + this->options = options; +} + +void KeyboardInput::setKey( int key, bool state ) +{ + int id = -1; + if (key == options->keyUp.key) id = KEY_UP; + if (key == options->keyDown.key) id = KEY_DOWN; + if (key == options->keyLeft.key) id = KEY_LEFT; + if (key == options->keyRight.key) id = KEY_RIGHT; + if (key == options->keyJump.key) id = KEY_JUMP; + if (key == options->keySneak.key) id = KEY_SNEAK; + if (key == options->keyCraft.key) id = KEY_CRAFT; + //printf("key: %d\n", id); + if (id >= 0) { + keys[id] = state; + } +} + +void KeyboardInput::releaseAllKeys() +{ + xa = 0; + ya = 0; + + for (int i = 0; i < NumKeys; i++) { + keys[i] = false; + } + wantUp = wantDown = false; +} + +void KeyboardInput::tick( Player* player ) +{ + xa = 0; + ya = 0; + + if (keys[KEY_UP]) ya++; + if (keys[KEY_DOWN]) ya--; + if (keys[KEY_LEFT]) xa++; + if (keys[KEY_RIGHT]) xa--; + jumping = keys[KEY_JUMP]; + sneaking = keys[KEY_SNEAK]; + if (sneaking) { + xa *= 0.3f; + ya *= 0.3f; + } + + #if defined(RPI) || defined(PLATFORM_GLFW) + wantUp = jumping; + wantDown = sneaking; + #endif + + if (keys[KEY_CRAFT]) + player->startCrafting((int)player->x, (int)player->y, (int)player->z, Recipe::SIZE_2X2); + + //printf("\n>- %f %f\n", xa, ya); +} + diff --git a/src/client/player/input/KeyboardInput.h b/src/client/player/input/KeyboardInput.h new file mode 100755 index 0000000..eb33c31 --- /dev/null +++ b/src/client/player/input/KeyboardInput.h @@ -0,0 +1,36 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__KeyboardInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__KeyboardInput_H__ + +//package net.minecraft.client.player; + +#include "IMoveInput.h" + +class Options; +class Player; + +// @todo: extract a separate MoveInput (-> merge XperiaPlayInput) +class KeyboardInput: public IMoveInput +{ + static const int NumKeys = 10; +public: + static const int KEY_UP = 0; + static const int KEY_DOWN = 1; + static const int KEY_LEFT = 2; + static const int KEY_RIGHT = 3; + static const int KEY_JUMP = 4; + static const int KEY_SNEAK = 5; + static const int KEY_CRAFT = 6; + + KeyboardInput(Options* options); + + void tick(Player* player); + + void setKey(int key, bool state); + void releaseAllKeys(); + +protected: + bool keys[NumKeys]; + Options* options; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__KeyboardInput_H__*/ diff --git a/src/client/player/input/MouseBuildInput.h b/src/client/player/input/MouseBuildInput.h new file mode 100755 index 0000000..c50b0c4 --- /dev/null +++ b/src/client/player/input/MouseBuildInput.h @@ -0,0 +1,36 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT_MouseBuildInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT_MouseBuildInput_H__ + +#include "IBuildInput.h" +#include "../../../platform/input/Mouse.h" + +/** A Mouse Build input */ +class MouseBuildInput : public IBuildInput { +public: + MouseBuildInput() + : buildDelayTicks(10), + buildHoldTicks(0) + {} + + virtual bool tickBuild(Player* p, BuildActionIntention* bai) { + if (Mouse::getButtonState(MouseAction::ACTION_LEFT) != 0) { + *bai = BuildActionIntention(BuildActionIntention::BAI_REMOVE | BuildActionIntention::BAI_ATTACK); + return true; + } + if (Mouse::getButtonState(MouseAction::ACTION_RIGHT) != 0) { + if (buildHoldTicks >= buildDelayTicks) buildHoldTicks = 0; + if (++buildHoldTicks == 1) { + *bai = BuildActionIntention(BuildActionIntention::BAI_BUILD | BuildActionIntention::BAI_INTERACT); + return true; + } + } else { + buildHoldTicks = 0; + } + return false; + } +private: + int buildHoldTicks; + int buildDelayTicks; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT_MouseBuildInput_H__*/ diff --git a/src/client/player/input/MouseTurnInput.h b/src/client/player/input/MouseTurnInput.h new file mode 100755 index 0000000..a1cf6b4 --- /dev/null +++ b/src/client/player/input/MouseTurnInput.h @@ -0,0 +1,43 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT_MouseTurnInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT_MouseTurnInput_H__ + +#include "ITurnInput.h" +#include "../../../platform/input/Mouse.h" + +/** A Mouse Turn input */ +class MouseTurnInput : public ITurnInput { +public: + static const int MODE_OFFSET = 1; + static const int MODE_DELTA = 2; + + MouseTurnInput(int mode_, int centerX, int centerY) + : mode(mode_), + _centerX((float)centerX), + _centerY((float)centerY) + {} + + void onConfigChanged(const Config& config) { + _centerX = ((float) config.width ) * 0.5f; + _centerY = ((float) config.height) * 0.5f; + } + + TurnDelta getTurnDelta() { + float dx = 0, dy = 0; + if ( MODE_DELTA == mode ) { + dx = (float)Mouse::getDX(); + dy = (float)Mouse::getDY(); + } else if (MODE_OFFSET == mode) { + float dt = getDeltaTime(); + dx = linearTransform( (float)Mouse::getX() - _centerX, 40, 0.4f ) * dt; + dy = linearTransform( (float)Mouse::getY() - _centerY, 30, 0.6f ) * dt; + } + return TurnDelta(dx, dy); + } + + int mode; +private: + float _centerX; + float _centerY; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT_MouseTurnInput_H__*/ diff --git a/src/client/player/input/XperiaPlayInput.h b/src/client/player/input/XperiaPlayInput.h new file mode 100755 index 0000000..196dda0 --- /dev/null +++ b/src/client/player/input/XperiaPlayInput.h @@ -0,0 +1,49 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__XperiaPlayInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__XperiaPlayInput_H__ + +//package net.minecraft.client.player; + +#include "KeyboardInput.h" + +// @note: This is just copy-pasted from KeyboardInput right now. +class XperiaPlayInput: public KeyboardInput +{ + typedef KeyboardInput super; +public: + XperiaPlayInput(Options* options) + : super(options), + wasSneakTouched(false) + {} + + void tick(Player* player) { + bool _sneaking = sneaking; + super::tick(player); + sneaking = _sneaking; + + wantUp = (jumping && keys[KEY_UP]); + wantDown = (jumping && keys[KEY_DOWN]); + if ((wantUp | wantDown) && (player && player->abilities.flying)) ya = 0; + + bool isSneakTouched = Controller::isTouched(1); + if (isSneakTouched && !wasSneakTouched) { + sneaking = !sneaking; + } + wasSneakTouched = isSneakTouched; + + if (sneaking) { + xa *= 0.3f; + ya *= 0.3f; + } + } + + /* + if (Controller::isTouched(moveStick)) { + xa = -Controller::getTransformedX(moveStick, 0.1f, 1.25f, true); + ya = +Controller::getTransformedY(moveStick, 0.1f, 1.25f, true); + } + */ +private: + bool wasSneakTouched; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__XperiaPlayInput_H__*/ diff --git a/src/client/player/input/touchscreen/ITouchScreenModel.h b/src/client/player/input/touchscreen/ITouchScreenModel.h new file mode 100755 index 0000000..be764e2 --- /dev/null +++ b/src/client/player/input/touchscreen/ITouchScreenModel.h @@ -0,0 +1,14 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__ITouchScreenModel_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__ITouchScreenModel_H__ + +#include "../../../../platform/input/Mouse.h" + +class ITouchScreenModel +{ +public: + virtual ~ITouchScreenModel() {} + virtual int getPointerId(const MouseAction& m) { return m.pointerId; } + virtual int getPointerId(int x, int y, int pid) { return pid; } +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__ITouchScreenModel_H__*/ diff --git a/src/client/player/input/touchscreen/TouchAreaModel.h b/src/client/player/input/touchscreen/TouchAreaModel.h new file mode 100755 index 0000000..636b2a3 --- /dev/null +++ b/src/client/player/input/touchscreen/TouchAreaModel.h @@ -0,0 +1,339 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER__TouchAreaModel_H__ +#define NET_MINECRAFT_CLIENT_PLAYER__TouchAreaModel_H__ + +#include "ITouchScreenModel.h" +#include +#include "../../../../platform/time.h" + +/// Interface for an area that can be point tested +class IArea{ +public: + IArea() + : deleteMe(true) + {} + + virtual ~IArea() {}; + virtual bool isInside(float x, float y) = 0; + //virtual void expandRectToInclude(float& l, float& t, float& r, float& b) {} + + bool deleteMe; +}; + +/// Holder for multiple pairs +class TouchAreaModel: public ITouchScreenModel +{ +public: + TouchAreaModel() {} + + ~TouchAreaModel() { + clear(); + } + + void clear() { + for (unsigned int i = 0; i < _areas.size(); ++i) { + Area* a = _areas[i]; + if (a->area && a->area->deleteMe) + delete a->area; + delete a; + } + _areas.clear(); + } + + int getPointerId(const MouseAction& m) { + return getPointerId(m.x, m.y, m.pointerId); + } + + int getPointerId(int x, int y, int pid) { + //static Stopwatch w; + //w.printEvery(200, "IArea"); + //w.start(); + float fx = (float)x, fy = (float) y; + for (unsigned int i = 0; i < _areas.size(); ++i) { + const Area* a = _areas[i]; + if (a->area->isInside(fx, fy)) { + //w.stop(); + return a->areaId; + } + } + //w.stop(); + return pid; + } + + void addArea(int areaId, IArea* area) { + Area* a = new Area(); + a->area = area; + a->areaId = areaId; + + _areas.push_back( a ); + } + +private: + struct Area { + IArea* area; + int areaId; + }; + + std::vector _areas; +}; + +/// Area represented by a polygon +class PolygonArea: public IArea +{ +public: + PolygonArea(int numPoints, const float* xp, const float* yp) + : _numPoints(numPoints) + { + _x = new float[numPoints]; + _y = new float[numPoints]; + + for (int i = 0; i < numPoints; ++i) { + _x[i] = xp[i]; + _y[i] = yp[i]; + } + } + + ~PolygonArea() { + delete[] _x; + delete[] _y; + } + + virtual bool isInside(float x, float y) + { + bool c = false; + for (int i = 0, j = _numPoints-1; i < _numPoints; j = i++) { + if ((((_y[i] <= y) && (y < _y[j])) || + ((_y[j] <= y) && (y < _y[i]))) && + (x < (_x[j] - _x[i]) * (y - _y[i]) / (_y[j] - _y[i]) + _x[i])) + c = !c; + } + return c == 1; + } + +//private: + float* _x; + float* _y; + int _numPoints; +}; + +/// Area represented by a rectangle +class RectangleArea: public IArea +{ +public: + RectangleArea(float x0, float y0, float x1, float y1) + : _x0(x0), + _x1(x1), + _y0(y0), + _y1(y1) + {} + + virtual bool isInside(float x, float y) { + return x >= _x0 && x <= _x1 + && y >= _y0 && y <= _y1; + } + + virtual float centerX() + { + return _x0 + (_x1 - _x0) * .5f; + } + + virtual float centerY() + { + return _y0 + (_y1 - _y0) * .5f; + } + +//private: + float _x0, _x1; + float _y0, _y1; +}; + +/// An area represented by a circle +class CircleArea: public IArea +{ +public: + CircleArea(float x, float y, float r) + : _x(x), _y(y), _rr(r*r) + {} + + virtual bool isInside(float x, float y) { + const float dx = x - _x; + const float dy = y - _y; + return (dx*dx + dy*dy) <= _rr; + } + +private: + float _x, _y; + float _rr; +}; + +/// Inside any area in include list but none of exclude list +class IncludeExcludeArea: public IArea +{ +public: + IncludeExcludeArea() {} + + ~IncludeExcludeArea() { + clear(); + } + + void clear() { + if (deleteMe) { + for (unsigned int i = 0; i < _includes.size(); ++i) { + IArea* area = _includes[i]; + if (area->deleteMe) delete area; + } + for (unsigned int i = 0; i < _excludes.size(); ++i) { + IArea* area = _excludes[i]; + if (area->deleteMe) delete area; + } + } + _includes.clear(); + _excludes.clear(); + } + + void include(IArea* area) { _includes.push_back(area); } + void exclude(IArea* area) { _excludes.push_back(area); } + + virtual bool isInside(float x, float y) { + for (unsigned int i = 0; i < _includes.size(); ++i) + if (_includes[i]->isInside(x, y)) { + bool good = true; + //@todo: cache _exclude-test results + for (unsigned int j = 0; j < _excludes.size(); ++j) + if (_excludes[j]->isInside(x, y)) { + good = false; + break; + } + if (good) { + return true; + } + } + return false; + } + +private: + std::vector _includes; + std::vector _excludes; +}; + + +/// At least one of the areas +class OrArea: public IArea +{ +public: + OrArea(IArea* a, IArea* b) + : _a(a), + _b(b) + {} + + ~OrArea() { + if (deleteMe) { + if (_a->deleteMe) delete _a; + if (_b->deleteMe) delete _b; + } + } + + virtual bool isInside(float x, float y) { + return _a->isInside(x, y) || _b->isInside(x, y); + } + +private: + IArea* _a; + IArea* _b; +}; + +/// In both areas +class AndArea: public IArea +{ +public: + AndArea(IArea* a, IArea* b) + : _a(a), + _b(b) + {} + + ~AndArea() { + if (deleteMe) { + if (_a->deleteMe) delete _a; + if (_b->deleteMe) delete _b; + } + } + + virtual bool isInside(float x, float y) { + return _a->isInside(x, y) && _b->isInside(x, y); + } + +private: + IArea* _a; + IArea* _b; +}; + +/// Exactly one of the areas +class XorArea: public IArea +{ +public: + XorArea(IArea* a, IArea* b) + : _a(a), + _b(b) + {} + + ~XorArea() { + if (deleteMe) { + if (_a->deleteMe) delete _a; + if (_b->deleteMe) delete _b; + } + } + + virtual bool isInside(float x, float y) { + return _a->isInside(x, y) ^ _b->isInside(x, y); + } + +private: + IArea* _a; + IArea* _b; +}; + +/// Everything except this area +class NotArea: public IArea +{ +public: + NotArea(IArea* a) + : _a(a) + {} + + ~NotArea() { + if (deleteMe && _a->deleteMe) delete _a; + } + + virtual bool isInside(float x, float y) { + return !_a->isInside(x, y); + } + +private: + IArea* _a; +}; + +/// First area, but not second +/// This is semantically the same as AndArea( a, new NotArea(b) ) +class DifferenceArea: public IArea +{ +public: + DifferenceArea(IArea* a, IArea* b) + : _a(a), + _b(b) + {} + + ~DifferenceArea() { + if (deleteMe) { + if (_a->deleteMe) delete _a; + if (_b->deleteMe) delete _b; + } + } + + virtual bool isInside(float x, float y) { + return _a->isInside(x, y) && !_b->isInside(x, y); + } +private: + IArea* _a; + IArea* _b; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER__TouchAreaModel_H__*/ diff --git a/src/client/player/input/touchscreen/TouchInputHolder.h b/src/client/player/input/touchscreen/TouchInputHolder.h new file mode 100755 index 0000000..9ed2647 --- /dev/null +++ b/src/client/player/input/touchscreen/TouchInputHolder.h @@ -0,0 +1,473 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchInputHolder_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchInputHolder_H__ + +#include "../IInputHolder.h" +#include "TouchscreenInput.h" + +#include "../ITurnInput.h" +#include "TouchAreaModel.h" +#include "../../../../platform/input/Multitouch.h" +#include "../../../../platform/time.h" +#include "../../../../util/SmoothFloat.h" + +#include "../../../../world/entity/player/Player.h" +#include "../../../../world/entity/player/Inventory.h" + +template +class ModifyNotify { +public: + ModifyNotify() + : _changed(false) + {} + + T& getOld() { return _old; } + T& getNew() { return _new; } + + bool update(T& val) { + _changed = !equals(val); + if (_changed) { + _old = _new; + _new = val; + } + return _changed; + } + + bool hasChanged() const { return _changed; } + + virtual bool equals(const T& newVal) { + return _old != newVal; + } +protected: + T _old; +private: + T _new; + bool _changed; +}; + +// +// Implementation for unified [Turn & Build Input] +// +class UnifiedTurnBuild: public GuiComponent, + public ITurnInput, + public IBuildInput +{ +public: + static const int MODE_OFFSET = 1; + static const int MODE_DELTA = 2; + + UnifiedTurnBuild(int turnMode, int width, int height, float maxMovementDelta, float sensitivity, IInputHolder* holder, Minecraft* minecraft) + : mode(turnMode), + _holder(holder), + _options(&minecraft->options), + cxO(0), cyO(0), + wasActive(false), + _totalMoveDelta(0), + _maxMovement(maxMovementDelta), + _lastPlayer(0), + screenArea(-1, -1, 0, 0), + allowPicking(false), + state(State_None), + moveArea(-1,-1,0,0), + joyTouchArea(-1, -1, 0, 0), + inventoryArea(-1,-1, 0, 0), + pauseArea(-1, -1, 0, 0), + _buildMovement(0), + _sentFirstRemove(false), + _canDestroy(false), + _forceCanUse(false) + { + _area.deleteMe = false; + setSensitivity(sensitivity); + //((ITurnInput*)this)->onConfigChanged(createConfig(minecraft)); + onConfigChanged(createConfig(minecraft)); + + _lastBuildDownTime = _startTurnTime = getTimeS(); + } + + void setSensitivity(float sensitivity) { + _sensitivity = sensitivity; + } + + virtual void onConfigChanged(const Config& c) { + if (false && _options->isJoyTouchArea) { + int touchWidth = c.width - (int)inventoryArea._x1; + if (touchWidth > (int)c.minecraft->pixelCalc.millimetersToPixels(60)) + touchWidth = (int)c.minecraft->pixelCalc.millimetersToPixels(60); + + int touchHeight = (int)(c.height * 0.4f); + if (touchHeight > (int)c.minecraft->pixelCalc.millimetersToPixels(40)) + touchHeight = (int)c.minecraft->pixelCalc.millimetersToPixels(40); + + joyTouchArea._x0 = (float)(c.width - touchWidth); + joyTouchArea._y0 = (float)(c.height - touchHeight); + joyTouchArea._x1 = (float)c.width; + joyTouchArea._y1 = (float)c.height; + + _area.clear(); + _area.include (&joyTouchArea); + _model.clear(); + _model.addArea(AREA_TURN, &_area); + } else { + screenArea = RectangleArea(0, 0, (float)c.width, (float)c.height); + // Expand the move area a bit + const float border = 10; + const float widen = (moveArea._x1-moveArea._x0) * 0.05f + border; // ~5% wider + moveArea._x0 -= widen; + moveArea._x1 += widen; + const float heighten = (moveArea._y1-moveArea._y0) * 0.05f + border; // ~5% taller + moveArea._y0 -= heighten; + moveArea._y1 += heighten; + + pauseArea._x0 -= border; + pauseArea._x1 += border; + pauseArea._y0 -= border; + pauseArea._y1 += border; + + //LOGI("move: %f, %f, %f, %f\n", moveArea._x0, moveArea._y0, moveArea._x1, moveArea._y1); + + _area.clear(); + _area.include(&screenArea); + _area.exclude(&moveArea); + _area.exclude(&inventoryArea); +#ifdef __APPLE__ + _area.exclude(&pauseArea); +#endif /*__APPLE__*/ + //LOGI("Movearea: %f %f %f% f\n", moveArea._x0, moveArea._x1, moveArea._y0, moveArea._y1); + + _model.clear(); + _model.addArea(AREA_TURN, &_area); + } + } + + float calcNewAlpha(float current, float wanted) { + if (wanted > current) + return Mth::clamp(current + 0.02f, 0.0f, wanted); + if (wanted < current) + return Mth::clamp(current - 0.04f, wanted, 1.0f); + return current; + } + + // + // Implementation for the ITurnInput part + // + TurnDelta getTurnDelta() { + float dx = 0, dy = 0; + const float now = getTimeS(); + + float cx = 0; + float cy = 0; + bool isActive = false; + + const int* pointerIds; + bool wasFirstMovement = false; + int pointerCount = Multitouch::getActivePointerIds(&pointerIds); + for (int i = 0; i < pointerCount; ++i) { + int p = pointerIds[i]; + int x = Multitouch::getX(p); + int y = Multitouch::getY(p); + int areaId = _model.getPointerId(x, y, p); + + if (areaId == AREA_TURN) { + isActive = true; + cx = (float)x * 0.5f; + cy = (float)y * -0.5f; + wasFirstMovement = Multitouch::wasFirstMovement(p); + break; + } + } + if (isActive && !wasActive) { + _startTurnTime = now; + _totalMoveDelta = 0; + bool isInMovement = _lastPlayer? getSpeedSquared(_lastPlayer) > 0.01f/*.25f*/ : false; + //state = isInMovement? State_Turn : State_Deciding; + state = State_Deciding; + _canDestroy = !isInMovement; + _forceCanUse = false; + if (!_canDestroy && (_lastPlayer && _lastPlayer->canUseCarriedItemWhileMoving())) { + _forceCanUse = true; + _canDestroy = true; + } + _sentFirstRemove = false; + } else if (wasActive && !isActive) { + _sentFirstRemove = false; + state = State_None; + //_inBuild = false; + } + + if (MODE_DELTA == mode && (wasActive || isActive)) { +// const float dt = getDeltaTime(); +// const float MaxTurnX = 100.0f; +// const float MaxTurnY = 100.0f; + const float DeadZone = 0;//0.25f * dt;//0.02f; + + if (!wasActive) { + cxO = cx; + cyO = cy; + } + if (isActive) { + dx = _sensitivity * linearTransform(cx - cxO, DeadZone);// * MaxTurnX; + dy = _sensitivity * linearTransform(cy - cyO, DeadZone);// * MaxTurnY; + + float moveDelta = ( Mth::abs(dx) + Mth::abs(dy) ); + //LOGI("moveDelta is : %f\n", moveDelta); + + if (moveDelta > _maxMovement) { + dx = 0; + dy = 0; + moveDelta = 0; + } + _totalMoveDelta += moveDelta; + + if (state == State_Deciding && _totalMoveDelta >= MaxBuildMovement/* && !_forceCanUse*/) + state = State_Turn; + + // If a certain time has passed since we pressed button; check if + // we've moved enough to prevent removal state to become activated + const float since = now - _startTurnTime; + if (state == State_Deciding && (since >= (0.001f*RemovalMilliseconds))) { + //LOGI("DECIDED!: %f\n", _totalMoveDelta); + bool isInMovement = _lastPlayer? getSpeedSquared(_lastPlayer) > 0.01f/*.25f*/ : false; + if (!_forceCanUse && (_totalMoveDelta > 20.0f || isInMovement)) { + state = State_Turn; + } else { + state = State_Destroy; + _canDestroy = true; + } + } + + // Removing the pointer ketchup-effect that's built into some devices + if (wasFirstMovement) { + dx = dy = 0; + } + + cxO = cx; + cyO = cy; + //LOGI("move delta: %f (%f, %f), %d\n", moveDelta, dx, dy, state); + } + } else { + // Wasn't active, and isn't active! + state = State_None; + } + + updateFeedbackProgressAlpha(now); + + wasActive = isActive; + return TurnDelta(dx, -dy); + } + + void updateFeedbackProgressAlpha(float now) { + const float MinAlphaValue = -0.05f; + if (_canDestroy) { + // Hack to test out fading in feedback circle + const float since = now - _startTurnTime; + if (state == State_Deciding) { + const float wantedAlpha = since / (0.001f*RemovalMilliseconds); + _holder->alpha = wantedAlpha * wantedAlpha; + } else { + if (state == State_Destroy) { + _holder->alpha = calcNewAlpha(_holder->alpha, 1); + } else if (state == State_Turn || state == State_None) { + _holder->alpha = calcNewAlpha(_holder->alpha, 0); + } + + } + } else { + _holder->alpha = MinAlphaValue; + } + //LOGI("state: %d, canDestroy: %d %d\n", state, _canDestroy, _forceCanUse); + //LOGI("alpha: %f\n", _holder->alpha); + } + + bool isInsideArea(float x, float y) { + return _area.isInside(x, y); + } + + int mode; + + static float getSpeedSquared(Entity* m) { + const float xd = m->x - m->xo; + const float yd = m->y - m->yo; + const float zd = m->z - m->zo; + const float speedSquared = xd*xd + yd*yd + zd*zd; + return speedSquared; + } + + void render(float alpha) { + if (_options->isJoyTouchArea) { + fill( (int) (Gui::InvGuiScale * joyTouchArea._x0), + (int) (Gui::InvGuiScale * joyTouchArea._y0), + (int) (Gui::InvGuiScale * joyTouchArea._x1), + (int) (Gui::InvGuiScale * joyTouchArea._y1), 0x40000000);//0x20ffffff); + } + } + + // + // Implementation for the IBuildInput part + // + virtual bool tickBuild(Player* player, BuildActionIntention* bai) { + _lastPlayer = player; + + if (state == State_Destroy) { + if (!_sentFirstRemove) { + *bai = BuildActionIntention((_forceCanUse?0:BuildActionIntention::BAI_FIRSTREMOVE) | BuildActionIntention::BAI_INTERACT); + _sentFirstRemove = true; + } else { + *bai = BuildActionIntention((_forceCanUse?0:BuildActionIntention::BAI_REMOVE) | BuildActionIntention::BAI_INTERACT); + } + return true; + } + + // Rewind the queue, in case someone has used it up before + Multitouch::rewind(); + const float now = getTimeS(); + allowPicking = false; + bool handled = false; + + while (Multitouch::next()) { + MouseAction& m = Multitouch::getEvent(); + if (m.action == MouseAction::ACTION_MOVE) continue; + + int areaId = _model.getPointerId(m.x, m.y, m.pointerId); + if (areaId != AREA_TURN) continue; + + allowPicking = true; + //LOGI("down? %d, up? %d (%d, %d)\n", z && (m.data == MouseAction::DATA_DOWN), z && (m.data == MouseAction::DATA_UP), m.x, m.y); + + if (_totalMoveDelta <= MaxBuildMovement && (m.data == MouseAction::DATA_UP && !handled)) { + const float since = now - _lastBuildDownTime; + //LOGI("move: (%d) %.2f - %f\n", state, _totalMoveDelta, since); + if (state <= State_Deciding) { + if (since >= 0.0f && since < 0.25f) { + // We've pressed and released in haste; Let's build! + *bai = BuildActionIntention(BuildActionIntention::BAI_BUILD | BuildActionIntention::BAI_ATTACK); + handled = true; + } + } + state = State_None; + } else if (m.data == MouseAction::DATA_DOWN) { + _lastBuildDownTime = now; + _buildMovement = 0; + state = State_Deciding; + } + } + return handled; + } + + bool allowPicking; + float alpha; + SmoothFloat smoothAlpha; + + RectangleArea screenArea; + RectangleArea moveArea; + RectangleArea joyTouchArea; + RectangleArea inventoryArea; + RectangleArea pauseArea; + +private: + IInputHolder* _holder; + + // Turn + int cid; + float cxO, cyO; + bool wasActive; + + TouchAreaModel _model; + IncludeExcludeArea _area; + + bool _decidedTurnMode; + + float _startTurnTime; + float _totalMoveDelta; + float _maxMovement; + float _sensitivity; + + Player* _lastPlayer; + + // Build + float _lastBuildDownTime; + float _buildMovement; + bool _sentFirstRemove; + bool _canDestroy; + bool _forceCanUse; + + int state; + static const int State_None = 0; + static const int State_Deciding = 1; + static const int State_Turn = 2; + static const int State_Destroy = 3; + static const int State_Build = 4; // Will never happen + + static const int MaxBuildMovement = 20; + static const int RemovalMilliseconds = 400; + + static const int AREA_TURN = 100; + Options* _options; +}; + +class Minecraft; + +#if defined(_MSC_VER) + #pragma warning( disable : 4355 ) // 'this' pointer in initialization list which is perfectly legal +#endif + +class TouchInputHolder: public IInputHolder +{ +public: + TouchInputHolder(Minecraft* mc, Options* options) + : _mc(mc), + _move(mc, options), + _turnBuild(UnifiedTurnBuild::MODE_DELTA, mc->width, mc->height, (float)MovementLimit, 1, this, mc) + { + onConfigChanged(createConfig(mc)); + } + ~TouchInputHolder() { + } + + virtual void onConfigChanged(const Config& c) { + _move.onConfigChanged(c); + _turnBuild.moveArea = _move.getRectangleArea(); +#ifdef __APPLE__ + _turnBuild.pauseArea = _move.getPauseRectangleArea(); +#endif + _turnBuild.inventoryArea = _mc->gui.getRectangleArea( _mc->options.isLeftHanded? 1 : -1 ); + _turnBuild.setSensitivity(c.options->isJoyTouchArea? 1.8f : 1.0f); + ((ITurnInput*)&_turnBuild)->onConfigChanged(c); + } + + virtual bool allowPicking() { + const int* pointerIds; + int pointerCount = Multitouch::getActivePointerIds(&pointerIds); + for (int i = 0; i < pointerCount; ++i) { + int p = pointerIds[i]; + const float x = Multitouch::getX(p); + const float y = Multitouch::getY(p); + + if (_turnBuild.isInsideArea(x, y)) { + mousex = x; + mousey = y; + return true; + } + } + + return false; + // return _turnBuild.allowPicking; + } + + virtual void render(float alpha) { + _turnBuild.render(alpha); + } + + virtual IMoveInput* getMoveInput() { return &_move; } + virtual ITurnInput* getTurnInput() { return &_turnBuild; } + virtual IBuildInput* getBuildInput() { return &_turnBuild; } + +private: + TouchscreenInput_TestFps _move; + UnifiedTurnBuild _turnBuild; + + Minecraft* _mc; + + static const int MovementLimit = 200; // per update +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchInputHolder_H__*/ diff --git a/src/client/player/input/touchscreen/TouchTurnInput.h b/src/client/player/input/touchscreen/TouchTurnInput.h new file mode 100755 index 0000000..eaa2e96 --- /dev/null +++ b/src/client/player/input/touchscreen/TouchTurnInput.h @@ -0,0 +1,88 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchTurnInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchTurnInput_H__ + +#include "../ITurnInput.h" +#include "TouchAreaModel.h" +#include "../../../../platform/input/Multitouch.h" + +class TouchTurnInput: public ITurnInput +{ +public: + static const int MODE_OFFSET = 1; + static const int MODE_DELTA = 2; + + TouchTurnInput(int mode_) + : mode(mode_), + cxO(0), cyO(0), + wasActive(false) + { + } + + TurnDelta getTurnDelta() { + float dx = 0, dy = 0; + + float cx = 0; + float cy = 0; + bool isActive = false; + + const int* pointerIds; + int pointerCount = Multitouch::getActivePointerIds(&pointerIds); + for (int i = 0; i < pointerCount; ++i) { + int p = pointerIds[i]; + int x = Multitouch::getX(p); + int y = Multitouch::getY(p); + int areaId = _model.getPointerId(x, y, p); + + if (areaId == AREA_TURN) { + isActive = true; + cx = (float)x * 0.5f; + cy = (float)y * -0.5f; + break; + } + } + + if (MODE_OFFSET == mode) { + //float dt = getDeltaTime(); + //const float MaxTurnX = 250.0f; + //const float MaxTurnY = 200.0f; + //float cx = isActive? Controller::getX(cid) : cxO * 0.7f; + //float cy = isActive? Controller::getY(cid) : cyO * 0.7f; + //dx = linearTransform( cx, 0.1f, MaxTurnX ) * dt; + //dy = linearTransform( cy, 0.1f, MaxTurnY ) * dt; + //cxO = cx; + //cyO = cy; + } else + if (MODE_DELTA == mode && (wasActive || isActive)) { +// const float dt = getDeltaTime(); +// const float MaxTurnX = 100.0f; +// const float MaxTurnY = 100.0f; + const float DeadZone = 0;//0.25f * dt;//0.02f; + + if (!wasActive) { + cxO = cx; + cyO = cy; + } + if (isActive) { + dx = linearTransform(cx - cxO, DeadZone);// * MaxTurnX; + dy = linearTransform(cy - cyO, DeadZone);// * MaxTurnY; + cxO = cx; + cyO = cy; + } + } + + wasActive = isActive; + return TurnDelta(dx, -dy); + } + + int mode; +private: + int cid; + float cxO, cyO; + bool wasActive; + + TouchAreaModel _model; + + static const int AREA_TURN = 100; +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchTurnInput_H__*/ diff --git a/src/client/player/input/touchscreen/TouchscreenInput.cpp b/src/client/player/input/touchscreen/TouchscreenInput.cpp new file mode 100755 index 0000000..7d58b1c --- /dev/null +++ b/src/client/player/input/touchscreen/TouchscreenInput.cpp @@ -0,0 +1,509 @@ +#include "TouchscreenInput.h" +#include "../../../Options.h" +#include "../../../../platform/input/Multitouch.h" +#include "../../../gui/Gui.h" +#include "../../../renderer/Tesselator.h" +#include "../../../../world/entity/player/Player.h" + +#include "../../../Minecraft.h" +#include "../../../../platform/log.h" +#include "../../../renderer/Textures.h" +#include "../../../sound/SoundEngine.h" + +static const int AREA_DPAD_FIRST = 100; +static const int AREA_DPAD_N = 100; +static const int AREA_DPAD_S = 101; +static const int AREA_DPAD_W = 102; +static const int AREA_DPAD_E = 103; +static const int AREA_DPAD_C = 104; +static const int AREA_PAUSE = 105; + +static int cPressed = 0; +static int cReleased = 0; +static int cDiscreet = 0; +static int cPressedPause = 0; +static int cReleasedPause = 0; +//static const int AREA_DPAD_N_JUMP = 105; + +// +// TouchscreenInput_TestFps +// + +static void Copy(int n, float* x, float* y, float* dx, float* dy) { + for (int i = 0; i < n; ++i) { + dx[i] = x[i]; + dy[i] = y[i]; + } +} + +static void Translate(int n, float* x, float* y, float xt, float yt) { + for (int i = 0; i < n; ++i) { + x[i] += xt; + y[i] += yt; + } +} + +static void Scale(int n, float* x, float* y, float xt, float yt) { + for (int i = 0; i < n; ++i) { + x[i] *= xt; + y[i] *= yt; + } +} + +static void Transformed(int n, float* x, float* y, float* dx, float* dy, float xt, float yt, float sx=1.0f, float sy=1.0f) { + Copy(n, x, y, dx, dy); + Scale(n, dx, dy, sx, sy); + Translate(n, dx, dy, xt, yt); + + //for (int i = 0; i < n; ++i) { + // LOGI("%d. (%f, %f)\n", i, dx[i], dy[i]); + //} +} + +TouchscreenInput_TestFps::TouchscreenInput_TestFps( Minecraft* mc, Options* options ) +: _minecraft(mc), + _options(options), + _northJump(false), + _forward(false), + _boundingRectangle(0, 0, 1, 1), + _pressedJump(false), + _pauseIsDown(false), + _sneakTapTime(-999), + aLeft(0), + aRight(0), + aUp(0), + aDown(0), + aJump(0), + aUpLeft(0), + aUpRight(0), + _allowHeightChange(false) +{ + releaseAllKeys(); + onConfigChanged( createConfig(mc) ); + + Tesselator& t = Tesselator::instance; + const int alpha = 128; + t.color( 0xc0c0c0, alpha); cPressed = t.getColor(); + t.color( 0xffffff, alpha); cReleased = t.getColor(); + t.color( 0xffffff, alpha / 4); cDiscreet = t.getColor(); + t.color( 0xc0c0c0, 80); cPressedPause=t.getColor(); + t.color( 0xffffff, 80); cReleasedPause=t.getColor(); +} + +TouchscreenInput_TestFps::~TouchscreenInput_TestFps() { + clear(); +} + +void TouchscreenInput_TestFps::clear() { + _model.clear(); + + delete aUpLeft; aUpLeft = NULL; // @todo: SAFEDEL + delete aUpRight; aUpRight = NULL; +} + +bool TouchscreenInput_TestFps::isButtonDown(int areaId) { + return _buttons[areaId - AREA_DPAD_FIRST]; +} + + +void TouchscreenInput_TestFps::onConfigChanged(const Config& c) { + clear(); + + const float w = (float)c.width; + const float h = (float)c.height; + + /* + // Code for "Move when touching left side of the screen" + float x0[] = { 0, w * 0.3f, w * 0.3f, 0 }; + float y0[] = { 0, 0, h-32, h-32 }; + + _model.addArea(AREA_MOVE, new RectangleArea(0, 0, w*0.3f, h-32)); + */ + + // Code for "D-pad with jump in center" + float Bw = w * 0.11f;//0.08f; + float Bh = Bw;//0.15f; + + // If too large (like playing on Tablet) + PixelCalc& pc = _minecraft->pixelCalc; + if (pc.pixelsToMillimeters(Bw) > 14) { + Bw = Bh = pc.millimetersToPixels(14); + } + // temp data + float xx; + float yy; + + const float BaseY = -8 + h - 3.0f * Bh; + const float BaseX = _options->isLeftHanded? -8 + w - 3 * Bw + : 8 + 0; + // Setup the bounding rectangle + _boundingRectangle = RectangleArea(BaseX, BaseY, BaseX + 3 * Bw, BaseY + 3 * Bh); + + xx = BaseX + Bw; yy = BaseY; + _model.addArea(AREA_DPAD_N, aUp = new RectangleArea(xx, yy, xx+Bw, yy+Bh)); + xx = BaseX; + aUpLeft = new RectangleArea(xx, yy, xx+Bw, yy+Bh); + xx = BaseX + 2 * Bw; + aUpRight = new RectangleArea(xx, yy, xx+Bw, yy+Bh); + + xx = BaseX + Bw; yy = BaseY + Bh; + _model.addArea(AREA_DPAD_C, aJump = new RectangleArea(xx, yy, xx+Bw, yy+Bh)); + + xx = BaseX + Bw; yy = BaseY + 2 * Bh; + _model.addArea(AREA_DPAD_S, aDown = new RectangleArea(xx, yy, xx+Bw, yy+Bh)); + + xx = BaseX; yy = BaseY + Bh; + _model.addArea(AREA_DPAD_W, aLeft = new RectangleArea(xx, yy, xx+Bw, yy+Bh)); + + xx = BaseX + 2 * Bw; yy = BaseY + Bh; + _model.addArea(AREA_DPAD_E, aRight = new RectangleArea(xx, yy, xx+Bw, yy+Bh)); + +#ifdef __APPLE__ + float maxPixels = _minecraft->pixelCalc.millimetersToPixels(10); + float btnSize = Mth::Min(18 * Gui::GuiScale, maxPixels); + _model.addArea(AREA_PAUSE, aPause = new RectangleArea(w - 4 - btnSize, + 4, + w - 4, + 4 + btnSize)); +#endif /* __APPLE__ */ + + //rebuild(); +} + +void TouchscreenInput_TestFps::setKey( int key, bool state ) +{ + #ifdef WIN32 + //LOGI("key: %d, %d\n", key, state); + + int id = -1; + if (key == _options->keyUp.key) id = KEY_UP; + if (key == _options->keyDown.key) id = KEY_DOWN; + if (key == _options->keyLeft.key) id = KEY_LEFT; + if (key == _options->keyRight.key) id = KEY_RIGHT; + if (key == _options->keyJump.key) id = KEY_JUMP; + if (key == _options->keySneak.key) id = KEY_SNEAK; + if (key == _options->keyCraft.key) id = KEY_CRAFT; + if (id >= 0) { + _keys[id] = state; + } + #endif +} + +void TouchscreenInput_TestFps::releaseAllKeys() +{ + xa = 0; + ya = 0; + + for (int i = 0; i<8; ++i) + _buttons[i] = false; +#ifdef WIN32 + for (int i = 0; iisInWater()) { + jumping = true; + } + else if (Multitouch::isPressed(p)) { + jumping = true; + } // Or if we are walking forward, jump while going forward! + else if (_forward && !player->abilities.flying) { + areaId = AREA_DPAD_N; + tmpNorthJump = true; + //jumping = true; + ya += 1; + } + } + + if (areaId == AREA_DPAD_N) + { + setButton = true; + if (player->isInWater()) + jumping = true; + else if (!isChangingFlightHeight) + tmpForward = true; + ya += 1; + } + else if (areaId == AREA_DPAD_S && !_forward) + { + setButton = true; + ya -= 1; + /* + if (Multitouch::isReleased(p)) { + float now = getTimeS(); + if (now - _sneakTapTime < 0.4f) { + ya += 1; + sneaking = !sneaking; + player->setSneaking(sneaking); + _sneakTapTime = -1; + } else { + _sneakTapTime = now; + } + } + */ + } + else if (areaId == AREA_DPAD_W && !_forward) + { + setButton = true; + xa += 1; + } + else if (areaId == AREA_DPAD_E && !_forward) + { + setButton = true; + xa -= 1; + } +#ifdef __APPLE__ + else if (areaId == AREA_PAUSE) { + if (Multitouch::isReleased(p)) { + _minecraft->soundEngine->playUI("random.click", 1, 1); + _minecraft->screenChooser.setScreen(SCREEN_PAUSE); + } + } +#endif /*__APPLE__*/ + _buttons[areaId - AREA_DPAD_FIRST] = setButton; + } + + _forward = tmpForward; + + // Only jump once at a time + if (tmpNorthJump) { + if (!_northJump) + jumping = true; + _northJump = true; + } + else _northJump = false; + + isChangingFlightHeight = false; + wantUp = isButtonDown(AREA_DPAD_N) && (_allowHeightChange & (_pressedJump | wantUp)); + wantDown = isButtonDown(AREA_DPAD_S) && (_allowHeightChange & (_pressedJump | wantDown)); + if (player->abilities.flying && (wantUp || wantDown || (heldJump && !_forward))) + { + isChangingFlightHeight = true; + ya = 0; + } + _renderFlightImage = player->abilities.flying; + +#ifdef WIN32 + if (_keys[KEY_UP]) ya++; + if (_keys[KEY_DOWN]) ya--; + if (_keys[KEY_LEFT]) xa++; + if (_keys[KEY_RIGHT]) xa--; + if (_keys[KEY_JUMP]) jumping = true; + //sneaking = _keys[KEY_SNEAK]; + if (_keys[KEY_CRAFT]) + player->startCrafting((int)player->x, (int)player->y, (int)player->z, Recipe::SIZE_2X2); +#endif + + if (sneaking) { + xa *= 0.3f; + ya *= 0.3f; + } + //printf("\n>- %f %f\n", xa, ya); + _pressedJump = heldJump; +} + +static void drawRectangleArea(Tesselator& t, RectangleArea* a, int ux, int vy, float ssz = 64.0f) { + const float pm = 1.0f / 256.0f; + const float sz = ssz * pm; + const float uu = (float)(ux) * pm; + const float vv = (float)(vy) * pm; + const float x0 = a->_x0 * Gui::InvGuiScale; + const float x1 = a->_x1 * Gui::InvGuiScale; + const float y0 = a->_y0 * Gui::InvGuiScale; + const float y1 = a->_y1 * Gui::InvGuiScale; + + t.vertexUV(x0, y1, 0, uu, vv+sz); + t.vertexUV(x1, y1, 0, uu+sz,vv+sz); + t.vertexUV(x1, y0, 0, uu+sz,vv); + t.vertexUV(x0, y0, 0, uu, vv); +} + +static void drawPolygonArea(Tesselator& t, PolygonArea* a, int x, int y) { + float pm = 1.0f / 256.0f; + float sz = 64.0f * pm; + float uu = (float)(x) * pm; + float vv = (float)(y) * pm; + + float uvs[] = {uu, vv, uu+sz, vv, uu+sz, vv+sz, uu, vv+sz}; + const int o = 0; + + for (int j = 0; j < a->_numPoints; ++j) { + t.vertexUV(a->_x[j] * Gui::InvGuiScale, a->_y[j] * Gui::InvGuiScale, 0, uvs[(o+j+j)&7], uvs[(o+j+j+1)&7]); + } +} + +void TouchscreenInput_TestFps::render( float a ) { + //return; + + //static Stopwatch sw; + //sw.start(); + + + //glColor4f2(1, 0, 1, 1.0f); + //glDisable2(GL_CULL_FACE); + glDisable2(GL_ALPHA_TEST); + + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + _minecraft->textures->loadAndBindTexture("gui/gui.png"); + + //glDisable2(GL_TEXTURE_2D); + + rebuild(); + //drawArrayVTC(_bufferId, 5 * 2 * 3, 24); + + glDisable2(GL_BLEND); + //glEnable2(GL_TEXTURE_2D); + //glEnable2(GL_CULL_FACE); + + //sw.stop(); + //sw.printEvery(100, "buttons"); +} + +const RectangleArea& TouchscreenInput_TestFps::getRectangleArea() +{ + return _boundingRectangle; +} +const RectangleArea& TouchscreenInput_TestFps::getPauseRectangleArea() +{ + return *aPause; +} + +void TouchscreenInput_TestFps::rebuild() { + if (_options->hideGui) + return; + + Tesselator& t = Tesselator::instance; + //LOGI("instance is: %p, %p, %p, %p, %p FOR %d\n", &t, aLeft, aRight, aUp, aDown, aJump, _bufferId); + //t.setAccessMode(Tesselator::ACCESS_DYNAMIC); + t.begin(); + + const int imageU = 0; + const int imageV = 107; + const int imageSize = 26; + + bool northDiagonals = !isChangingFlightHeight && (_northJump || _forward); + + // render left button + if (northDiagonals || isChangingFlightHeight) t.colorABGR(cDiscreet); + else if (isButtonDown(AREA_DPAD_W)) t.colorABGR(cPressed); + else t.colorABGR(cReleased); + drawRectangleArea(t, aLeft, imageU + imageSize, imageV, (float)imageSize); + + // render right button + if (northDiagonals || isChangingFlightHeight) t.colorABGR(cDiscreet); + else if (isButtonDown(AREA_DPAD_E)) t.colorABGR(cPressed); + else t.colorABGR(cReleased); + drawRectangleArea(t, aRight, imageU + imageSize * 3, imageV, (float)imageSize); + + // render forward button + if (isButtonDown(AREA_DPAD_N)) t.colorABGR(cPressed); + else t.colorABGR(cReleased); + if (isChangingFlightHeight) + { + drawRectangleArea(t, aUp, imageU + imageSize * 2, imageV + imageSize, (float)imageSize); + } + else + { + drawRectangleArea(t, aUp, imageU, imageV, (float)imageSize); + } + + // render diagonals, if available + if (northDiagonals) + { + t.colorABGR(cReleased); + drawRectangleArea(t, aUpLeft, imageU, imageV + imageSize, (float)imageSize); + drawRectangleArea(t, aUpRight, imageU + imageSize, imageV + imageSize, (float)imageSize); + } + + // render backwards button + if (northDiagonals) t.colorABGR(cDiscreet); + else if (isButtonDown(AREA_DPAD_S)) t.colorABGR(cPressed); + else t.colorABGR(cReleased); + if (isChangingFlightHeight) + { + drawRectangleArea(t, aDown, imageU + imageSize * 3, imageV + imageSize, (float)imageSize); + } + else + { + drawRectangleArea(t, aDown, imageU + imageSize * 2, imageV, (float)imageSize); + } + + // render jump / flight button + if (_renderFlightImage && northDiagonals) t.colorABGR(cDiscreet); + else if (isButtonDown(AREA_DPAD_C)) t.colorABGR(cPressed); + else t.colorABGR(cReleased); + if (_renderFlightImage) + { + drawRectangleArea(t, aJump, imageU + imageSize * 4, imageV + imageSize, (float)imageSize); + } + else + { + drawRectangleArea(t, aJump, imageU + imageSize * 4, imageV, (float)imageSize); + } + + +#ifdef __APPLE__ + if (!_minecraft->screen) { + if (isButtonDown(AREA_PAUSE)) t.colorABGR(cPressedPause); + else t.colorABGR(cReleasedPause); + + drawRectangleArea(t, aPause, 200, 64, 18.0f); + } +#endif /*__APPLE__*/ +//t.end(true, _bufferId); + //return; + + t.draw(); + //RenderChunk _render = t.end(true, _bufferId); + //t.setAccessMode(Tesselator::ACCESS_STATIC); + //_bufferId = _render.vboId; +} diff --git a/src/client/player/input/touchscreen/TouchscreenInput.h b/src/client/player/input/touchscreen/TouchscreenInput.h new file mode 100755 index 0000000..19cfa1a --- /dev/null +++ b/src/client/player/input/touchscreen/TouchscreenInput.h @@ -0,0 +1,79 @@ +#ifndef NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchscreenInput_H__ +#define NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchscreenInput_H__ + +//package net.minecraft.client.player; + +#include "../IMoveInput.h" +#include "../../../gui/GuiComponent.h" +#include "TouchAreaModel.h" +#include "../../../renderer/RenderChunk.h" + +class Options; +class Player; +class Minecraft; +class PolygonArea; + +// @todo: extract a separate MoveInput (-> merge XperiaPlayInput) +class TouchscreenInput_TestFps: public IMoveInput, + public GuiComponent +{ +public: + static const int KEY_UP = 0; + static const int KEY_DOWN = 1; + static const int KEY_LEFT = 2; + static const int KEY_RIGHT = 3; + static const int KEY_JUMP = 4; + static const int KEY_SNEAK = 5; + static const int KEY_CRAFT = 6; + static const int NumKeys = 7; + + TouchscreenInput_TestFps(Minecraft* mc, Options* options); + ~TouchscreenInput_TestFps(); + + void onConfigChanged(const Config& c); + + void tick(Player* player); + void render(float a); + + void setKey(int key, bool state); + void releaseAllKeys(); + + const RectangleArea& getRectangleArea(); + const RectangleArea& getPauseRectangleArea(); + +private: + void clear(); + + RectangleArea _boundingRectangle; + + bool _keys[NumKeys]; + Options* _options; + + bool _pressedJump; + bool _forward; + bool _northJump; + bool _renderFlightImage; + TouchAreaModel _model; + Minecraft* _minecraft; + + RectangleArea* aLeft; + RectangleArea* aRight; + RectangleArea* aUp; + RectangleArea* aDown; + RectangleArea* aPause; + //RectangleArea* aUpJump; + RectangleArea* aJump; + RectangleArea* aUpLeft; + RectangleArea* aUpRight; + bool _pauseIsDown; + + RenderChunk _render; + bool _allowHeightChange; + float _sneakTapTime; + + bool _buttons[8]; + bool isButtonDown(int areaId); + void rebuild(); +}; + +#endif /*NET_MINECRAFT_CLIENT_PLAYER_INPUT_TOUCHSCREEN_TouchscreenInput_H__*/ diff --git a/src/client/renderer/Chunk.cpp b/src/client/renderer/Chunk.cpp new file mode 100755 index 0000000..ca6cb37 --- /dev/null +++ b/src/client/renderer/Chunk.cpp @@ -0,0 +1,268 @@ +#include "Chunk.h" +#include "Tesselator.h" +#include "TileRenderer.h" +#include "culling/Culler.h" +#include "../../world/entity/Entity.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/level/Region.h" +#include "../../world/level/chunk/LevelChunk.h" +#include "../../util/Mth.h" +//#include "../../platform/time.h" + +/*static*/ int Chunk::updates = 0; +//static Stopwatch swRebuild; +//int* _layerChunks[3] = {0, 0, 0}; //Chunk::NumLayers]; +//int _layerChunkCount[3] = {0, 0, 0}; + +Chunk::Chunk( Level* level_, int x, int y, int z, int size, int lists_, GLuint* ptrBuf/*= NULL*/) +: level(level_), + visible(false), + compiled(false), + _empty(true), + xs(size), ys(size), zs(size), + dirty(false), + occlusion_visible(true), + occlusion_querying(false), + lists(lists_), + vboBuffers(ptrBuf), + bb(0,0,0,1,1,1), + t(Tesselator::instance) +{ + for (int l = 0; l < NumLayers; l++) { + empty[l] = false; + } + + radius = Mth::sqrt((float)(xs * xs + ys * ys + zs * zs)) * 0.5f; + + this->x = -999; + setPos(x, y, z); +} + +void Chunk::setPos( int x, int y, int z ) +{ + if (x == this->x && y == this->y && z == this->z) return; + + reset(); + this->x = x; + this->y = y; + this->z = z; + xm = x + xs / 2; + ym = y + ys / 2; + zm = z + zs / 2; + + const float xzg = 1.0f; + const float yp = 2.0f; + const float yn = 0.0f; + bb.set(x-xzg, y-yn, z-xzg, x + xs+xzg, y + ys+yp, z + zs+xzg); + + //glNewList(lists + 2, GL_COMPILE); + //ItemRenderer.renderFlat(AABB.newTemp(xRenderOffs - g, yRenderOffs - g, zRenderOffs - g, xRenderOffs + xs + g, yRenderOffs + ys + g, zRenderOffs + zs + g)); + //glEndList(); + setDirty(); +} + +void Chunk::translateToPos() +{ + glTranslatef2((float)x, (float)y, (float)z); +} + +void Chunk::rebuild() +{ + if (!dirty) return; + //if (!visible) return; + updates++; + + //if (!_layerChunks[0]) { + // for (int i = 0; i < NumLayers; ++i) + // _layerChunks[i] = new int[xs * ys * zs]; + //} + //for (int i = 0; i < NumLayers; ++i) + // _layerChunkCount[i] = 0; + + //Stopwatch& sw = swRebuild; + //sw.start(); + + int x0 = x; + int y0 = y; + int z0 = z; + int x1 = x + xs; + int y1 = y + ys; + int z1 = z + zs; + for (int l = 0; l < NumLayers; l++) { + empty[l] = true; + } + _empty = true; + + LevelChunk::touchedSky = false; + + int r = 1; + Region region(level, x0 - r, y0 - r, z0 - r, x1 + r, y1 + r, z1 + r); + TileRenderer tileRenderer(®ion); + + bool doRenderLayer[NumLayers] = {true, false, false}; + for (int l = 0; l < NumLayers; l++) { + if (!doRenderLayer[l]) continue; + bool renderNextLayer = false; + bool rendered = false; + + bool started = false; + int cindex = -1; + + for (int y = y0; y < y1; y++) { + for (int z = z0; z < z1; z++) { + for (int x = x0; x < x1; x++) { + ++cindex; + //if (l > 0 && cindex != _layerChunks[_layerChunkCount[l]]) + int tileId = region.getTile(x, y, z); + if (tileId > 0) { + if (!started) { + started = true; + +#ifndef USE_VBO + glNewList(lists + l, GL_COMPILE); + glPushMatrix2(); + translateToPos(); + float ss = 1.000001f; + glTranslatef2(-zs / 2.0f, -ys / 2.0f, -zs / 2.0f); + glScalef2(ss, ss, ss); + glTranslatef2(zs / 2.0f, ys / 2.0f, zs / 2.0f); +#endif + t.begin(); + //printf("."); + //printf("Tesselator::offset : %d, %d, %d\n", this->x, this->y, this->z); + t.offset((float)(-this->x), (float)(-this->y), (float)(-this->z)); + //printf("Tesselator::offset : %f, %f, %f\n", this->x, this->y, this->z); + } + + Tile* tile = Tile::tiles[tileId]; + int renderLayer = tile->getRenderLayer(); + +// if (renderLayer == l) +// rendered |= tileRenderer.tesselateInWorld(tile, x, y, z); +// else { +// _layerChunks[_layerChunkCount[renderLayer]++] = cindex; +// } + + if (renderLayer > l) { + renderNextLayer = true; + doRenderLayer[renderLayer] = true; + } else if (renderLayer == l) { + rendered |= tileRenderer.tesselateInWorld(tile, x, y, z); + } + } + } + } + } + + if (started) { + +#ifdef USE_VBO + renderChunk[l] = t.end(true, vboBuffers[l]); + renderChunk[l].pos.x = (float)this->x; + renderChunk[l].pos.y = (float)this->y; + renderChunk[l].pos.z = (float)this->z; +#else + t.end(false, -1); + glPopMatrix2(); + glEndList(); +#endif + t.offset(0, 0, 0); + } else { + rendered = false; + } + if (rendered) { + empty[l] = false; + _empty = false; + } + if (!renderNextLayer) break; + } + + //sw.stop(); + //sw.printEvery(1, "rebuild-"); + skyLit = LevelChunk::touchedSky; + compiled = true; + return; +} + +float Chunk::distanceToSqr( const Entity* player ) const +{ + float xd = (float) (player->x - xm); + float yd = (float) (player->y - ym); + float zd = (float) (player->z - zm); + return xd * xd + yd * yd + zd * zd; +} + +float Chunk::squishedDistanceToSqr( const Entity* player ) const +{ + float xd = (float) (player->x - xm); + float yd = (float) (player->y - ym) * 2; + float zd = (float) (player->z - zm); + return xd * xd + yd * yd + zd * zd; +} + +void Chunk::reset() +{ + for (int i = 0; i < NumLayers; i++) { + empty[i] = true; + } + visible = false; + compiled = false; + _empty = true; +} + +int Chunk::getList( int layer ) +{ + if (!visible) return -1; + if (!empty[layer]) return lists + layer; + return -1; +} + +RenderChunk& Chunk::getRenderChunk( int layer ) +{ + return renderChunk[layer]; +} + +int Chunk::getAllLists( int displayLists[], int p, int layer ) +{ + if (!visible) return p; + if (!empty[layer]) displayLists[p++] = (lists + layer); + return p; +} + +void Chunk::cull( Culler* culler ) +{ + visible = culler->isVisible(bb); +} + +void Chunk::renderBB() +{ + //glCallList(lists + 2); +} + +bool Chunk::isEmpty() +{ + return compiled && _empty;//empty[0] && empty[1] && empty[2]; +// if (!compiled) return false; +// return empty[0] && empty[1]; +} + +void Chunk::setDirty() +{ + dirty = true; +} + +void Chunk::setClean() +{ + dirty = false; +} + +bool Chunk::isDirty() +{ + return dirty; +} + +void Chunk::resetUpdates() +{ + updates = 0; + //swRebuild.reset(); +} diff --git a/src/client/renderer/Chunk.h b/src/client/renderer/Chunk.h new file mode 100755 index 0000000..569e078 --- /dev/null +++ b/src/client/renderer/Chunk.h @@ -0,0 +1,74 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__Chunk_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__Chunk_H__ + +//package net.minecraft.client.renderer; + +#include "RenderChunk.h" +#include "../../world/phys/AABB.h" + +class Level; +class Entity; +class Culler; +class Tesselator; + +// @note: TileEntity stuff is stripped away +class Chunk +{ + static const int NumLayers = 3; +public: + Chunk(Level* level_, int x, int y, int z, int size, int lists_, GLuint* ptrBuf = NULL); + + void setPos(int x, int y, int z); + + void rebuild(); + void setDirty(); + void setClean(); + bool isDirty(); + void reset(); + + float distanceToSqr(const Entity* player) const; + float squishedDistanceToSqr(const Entity* player) const; + + //@todo @fix + int getAllLists(int displayLists[], int p, int layer); + int getList(int layer); + + RenderChunk& getRenderChunk(int layer); + + bool isEmpty(); + void cull(Culler* culler); + + void renderBB(); + static void resetUpdates(); + +private: + void translateToPos(); +public: + Level* level; + + static int updates;// = 0; + + int x, y, z, xs, ys, zs; + bool empty[NumLayers]; + int xm, ym, zm; + float radius; + AABB bb; + + int id; + bool visible; + bool occlusion_visible; + bool occlusion_querying; + int occlusion_id; + bool skyLit; + + RenderChunk renderChunk[NumLayers]; +private: + Tesselator& t; + int lists; + GLuint* vboBuffers; + bool compiled; + bool dirty; + bool _empty; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__Chunk_H__*/ diff --git a/src/client/renderer/ChunkRenderer.h b/src/client/renderer/ChunkRenderer.h new file mode 100755 index 0000000..8f4cef2 --- /dev/null +++ b/src/client/renderer/ChunkRenderer.h @@ -0,0 +1,22 @@ +#ifndef CHUNKRENDERER_H__ +#define CHUNKRENDERER_H__ + +#include "gles.h" +#include "../../world/level/Region.h" + +class ChunkRenderer { +public: + ChunkRenderer(const Region& region) + : r(region) + { + } + + void render() { + //glTranslate(r.xc1, + } + +private: + const Region& r; +}; + +#endif /*CHUNKRENDERER_H__*/ diff --git a/src/client/renderer/Color4.h b/src/client/renderer/Color4.h new file mode 100755 index 0000000..a9f63d7 --- /dev/null +++ b/src/client/renderer/Color4.h @@ -0,0 +1,53 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__Color4_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__Color4_H__ + +class Color4 +{ +public: + GLfloat r; + GLfloat g; + GLfloat b; + GLfloat a; + + Color4(GLfloat r_, GLfloat g_, GLfloat b_, GLfloat a_ = 0) + : r(r_), + g(g_), + b(b_), + a(a_) + {} + + Color4(int hex) { + r = ((hex>>16)& 255) / 255.0f; + g = ((hex>>8) & 255) / 255.0f; + b = (hex&255) / 255.0f; + a = (hex >> 24) / 255.0f; + } + + void add(GLfloat val, bool modifyAlpha) { + r += val; + g += val; + b += val; + if (modifyAlpha) a += val; + sanitize(); + } + void mul(GLfloat val, bool modifyAlpha) { + r *= val; + g *= val; + b *= val; + if (modifyAlpha) a *= val; + sanitize(); + } +private: + void sanitize() { + range(r); + range(g); + range(b); + range(a); + } + __inline void range(GLfloat& v) { + if (v < 0) v = 0; + if (v > 1) v = 1; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__Color4_H__*/ diff --git a/src/client/renderer/DirtyChunkSorter.h b/src/client/renderer/DirtyChunkSorter.h new file mode 100755 index 0000000..2a5a690 --- /dev/null +++ b/src/client/renderer/DirtyChunkSorter.h @@ -0,0 +1,35 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__DirtyChunkSorter_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__DirtyChunkSorter_H__ + +//package net.minecraft.client.renderer; + +#include "../../world/entity/Entity.h" +#include "Chunk.h" + +class DirtyChunkSorter +{ + Entity* cameraEntity; + +public: + DirtyChunkSorter(Entity* cameraEntity) { + this->cameraEntity = cameraEntity; + } + + // @attn: c0 > c1 + bool operator() (Chunk* c0, Chunk* c1) { + bool i0 = c0->visible; + bool i1 = c1->visible; + if (i0 && !i1) return false; // 1; + if (i1 && !i0) return true; // -1; + + float d0 = c0->distanceToSqr(cameraEntity); + float d1 = c1->distanceToSqr(cameraEntity); + + if (d0 < d1) return false; // 1; + if (d0 > d1) return true; // -1; + + return c0->id > c1->id;// ? -1 : 1; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__DirtyChunkSorter_H__*/ diff --git a/src/client/renderer/DistanceChunkSorter.h b/src/client/renderer/DistanceChunkSorter.h new file mode 100755 index 0000000..c4bfa9d --- /dev/null +++ b/src/client/renderer/DistanceChunkSorter.h @@ -0,0 +1,27 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__DistanceChunkSorter_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__DistanceChunkSorter_H__ + +//package net.minecraft.client.renderer; + +#include "../../world/entity/Entity.h" +#include "Chunk.h" + +class DistanceChunkSorter +{ + Entity* player; + +public: + DistanceChunkSorter(Entity* player) { + this->player = player; + } + + bool operator() (const Chunk* c0, const Chunk* c1) { + float d0 = c0->distanceToSqr(player); + float d1 = c1->distanceToSqr(player); + if (d0 > 32 * 32 && c0->y < 64) d0 *= 10.0f; + if (d1 > 32 * 32 && c1->y < 64) d1 *= 10.0f; + return d0 < d1;//? -1 : 1; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__DistanceChunkSorter_H__*/ diff --git a/src/client/renderer/EntityTileRenderer.cpp b/src/client/renderer/EntityTileRenderer.cpp new file mode 100755 index 0000000..d94f5d0 --- /dev/null +++ b/src/client/renderer/EntityTileRenderer.cpp @@ -0,0 +1,8 @@ +#include "EntityTileRenderer.h" + +EntityTileRenderer* EntityTileRenderer::instance = new EntityTileRenderer(); + +void EntityTileRenderer::render( Tile* tile, int data, float brightness ) +{ + TileEntityRenderDispatcher::getInstance()->render(&chest, 0, 0, 0, 0); +} diff --git a/src/client/renderer/EntityTileRenderer.h b/src/client/renderer/EntityTileRenderer.h new file mode 100755 index 0000000..9902d0f --- /dev/null +++ b/src/client/renderer/EntityTileRenderer.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__EntityTileRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__EntityTileRenderer_H__ + +//package net.minecraft.client.renderer; + +#include "../../world/level/tile/entity/ChestTileEntity.h" +#include "tileentity/TileEntityRenderDispatcher.h" + +class Tile; + +class EntityTileRenderer +{ +public: + static EntityTileRenderer* instance; + + void render(Tile* tile, int data, float brightness); + + ChestTileEntity chest; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__EntityTileRenderer_H__*/ diff --git a/src/client/renderer/GameRenderer.cpp b/src/client/renderer/GameRenderer.cpp new file mode 100755 index 0000000..e8fb874 --- /dev/null +++ b/src/client/renderer/GameRenderer.cpp @@ -0,0 +1,952 @@ +#include "GameRenderer.h" +#include "gles.h" + +#include "../../util/PerfTimer.h" + +#include "LevelRenderer.h" +#include "ItemInHandRenderer.h" +#include "culling/AllowAllCuller.h" +#include "culling/FrustumCuller.h" +#include "entity/EntityRenderDispatcher.h" +#include "../Minecraft.h" +#include "../gamemode/GameMode.h" +#include "../particle/ParticleEngine.h" +#include "../player/LocalPlayer.h" +#include "../gui/Screen.h" +#include "../../world/level/Level.h" +#include "../../world/entity/Mob.h" +#include "../../world/level/chunk/ChunkCache.h" +#include "../../world/level/material/Material.h" +#include "../../world/Facing.h" +#include "../../platform/input/Controller.h" +#include "../../platform/input/Mouse.h" +#include "../../platform/input/Multitouch.h" +#include "../../NinecraftApp.h" +#include "../../world/level/tile/Tile.h" +#include "../player/input/IInputHolder.h" +#include "Textures.h" +#include "../gui/components/ImageButton.h" +#include "Tesselator.h" + +static int _shTicks = -1; + +GameRenderer::GameRenderer( Minecraft* mc ) +: mc(mc), + renderDistance(0), + _tick(0), + _lastTickT(0), + fovOffset(0), + fovOffsetO(0), + fov(1), oFov(1), + _setupCameraFov(0), + zoom(1), zoom_x(0), zoom_y(0), + cameraRoll(0), cameraRollO(0), + pickDirection(1, 0, 0), + + thirdDistance(4), thirdDistanceO(4), + thirdRotation(0), thirdRotationO(0), + thirdTilt(0), thirdTiltO(0), + + fogBr(0), fogBrO(0), + + fr(0), fg(0), fb(0), + _rotX(0), _rotY(0), + _rotXlast(0), _rotYlast(0), + useScreenScissor(false) +{ + saveMatrices(); + + itemInHandRenderer = new ItemInHandRenderer(mc); + + EntityRenderDispatcher* e = EntityRenderDispatcher::getInstance(); + e->itemInHandRenderer = itemInHandRenderer; + e->textures = mc->textures; +} + +GameRenderer::~GameRenderer() { + delete itemInHandRenderer; +} + +void renderCursor(float x, float y, Minecraft* minecraft) { + Tesselator& t = Tesselator::instance; + + minecraft->textures->loadAndBindTexture("gui/cursor.png"); + glEnable(GL_BLEND); + + const float s = 32; + const float width = 16; + const float height = 16; + t.begin(); + t.color(0xffffffff); + t.vertexUV(x, y + (float)height, 0, 0, 1); + t.vertexUV(x + (float)width, y + (float)height, 0, 1, 1); + t.vertexUV(x + (float)width, y, 0, 1, 0); + t.vertexUV(x, y, 0, 0, 0); + t.draw(); + + glDisable(GL_BLEND); +} + +/*private*/ +void GameRenderer::setupCamera(float a, int eye) { + renderDistance = (float) (16 * 16 >> (mc->options.viewDistance)); +#if defined(ANDROID) + if (mc->isPowerVR() && mc->options.viewDistance <= 2) + renderDistance *= 0.8f; +#endif + + glMatrixMode(GL_PROJECTION); + glLoadIdentity2(); + + float stereoScale = 0.07f; + if (mc->options.anaglyph3d) glTranslatef2(-(eye * 2 - 1) * stereoScale, 0, 0); + if (zoom != 1) { + glTranslatef2((float) zoom_x, (float) -zoom_y, 0); + glScalef2(zoom, zoom, 1); + gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 0.05f, renderDistance); + } else { + gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 0.05f, renderDistance); + } + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity2(); + if (mc->options.anaglyph3d) glTranslatef2((eye * 2 - 1) * 0.10f, 0, 0); + + bobHurt(a); + if (mc->options.bobView) bobView(a); + + moveCameraToPlayer(a); +} + +extern int _t_keepPic; + +/*public*/ +void GameRenderer::render(float a) { + TIMER_PUSH("mouse"); + if (mc->player && mc->mouseGrabbed) { + mc->mouseHandler.poll(); + //printf("Controller.x,y : %f,%f\n", Controller::getX(0), Controller::getY(0)); + + float ss = mc->options.sensitivity * 0.6f + 0.2f; + float sens = (ss * ss * ss) * 8; + float xo = mc->mouseHandler.xd * sens * 4.f; + float yo = mc->mouseHandler.yd * sens * 4.f; + + const float now = _tick + a; + float deltaT = now - _lastTickT; + if (deltaT > 3.0f) deltaT = 3.0f; + _lastTickT = now; + + _rotX += xo; + _rotY += yo; + + int yAxis = -1; + if (mc->options.invertYMouse) yAxis = 1; + + bool screenCovering = mc->screen && !mc->screen->passEvents; + if (!screenCovering) + { + mc->player->turn(deltaT * _rotXlast, deltaT * _rotYlast * yAxis); + } + } + + int xMouse = (int)(Mouse::getX() * Gui::InvGuiScale); + int yMouse = (int)(Mouse::getY() * Gui::InvGuiScale); + if (mc->useTouchscreen()) { + const int pid = Multitouch::getFirstActivePointerIdExThisUpdate(); + if (pid >= 0) { + xMouse = (int)(Multitouch::getX(pid) * Gui::InvGuiScale); + yMouse = (int)(Multitouch::getY(pid) * Gui::InvGuiScale); + } else { + xMouse = -9999; + yMouse = -9999; + } + } + TIMER_POP(); + + bool hasClearedColorBuffer = false; + bool hasSetupGuiScreen = false; + useScreenScissor = false; + if (mc->isLevelGenerated()) { + + TIMER_PUSH("level"); + if (_t_keepPic < 0) { + if (!(mc->screen && !mc->screen->renderGameBehind())) { + + if (mc->screen && mc->screen->hasClippingArea(screenScissorArea)) + useScreenScissor = true; + + renderLevel(a); + hasClearedColorBuffer = true; + + if (!mc->options.hideGui) { + TIMER_POP_PUSH("gui"); + setupGuiScreen(false); + hasSetupGuiScreen = true; + mc->gui.render(a, mc->screen != NULL, xMouse, yMouse); + } + }} + TIMER_POP(); + + } else { + glViewport(0, 0, mc->width, mc->height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity2(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity2(); + setupGuiScreen(true); + hasSetupGuiScreen = true; + hasClearedColorBuffer = true; + } + //@todo + if (!hasSetupGuiScreen) + setupGuiScreen(!hasClearedColorBuffer); + + if (mc->player && mc->screen == NULL) { + if (mc->inputHolder) mc->inputHolder->render(a); + if (mc->player->input) mc->player->input->render(a); + } + + if (mc->screen != NULL) { + if (useScreenScissor) + glDisable2(GL_SCISSOR_TEST); + + mc->screen->render(xMouse, yMouse, a); +#ifdef RPI + renderCursor(xMouse, yMouse, mc); +#endif + // Screen might have been removed, so check it again + if (mc->screen && !mc->screen->isInGameScreen()) + sleepMs(15); + } +} + +/*public*/ +void GameRenderer::renderLevel(float a) { + + if (mc->cameraTargetPlayer == NULL) { + if (mc->player) + { + mc->cameraTargetPlayer = mc->player; + } + else + { + return; + } + } + + TIMER_PUSH("pick"); + pick(a); + + Mob* cameraEntity = mc->cameraTargetPlayer; + LevelRenderer* levelRenderer = mc->levelRenderer; + ParticleEngine* particleEngine = mc->particleEngine; + float xOff = cameraEntity->xOld + (cameraEntity->x - cameraEntity->xOld) * a; + float yOff = cameraEntity->yOld + (cameraEntity->y - cameraEntity->yOld) * a; + float zOff = cameraEntity->zOld + (cameraEntity->z - cameraEntity->zOld) * a; + + for (int i = 0; i < 2; i++) { + if (mc->options.anaglyph3d) { + if (i == 0) glColorMask(false, true, true, false); + else glColorMask(true, false, false, false); + } + + TIMER_POP_PUSH("clear"); + glViewport(0, 0, mc->width, mc->height); + setupClearColor(a); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glEnable2(GL_CULL_FACE); + + TIMER_POP_PUSH("camera"); + setupCamera(a, i); + saveMatrices(); + + if (useScreenScissor) { + glEnable2(GL_SCISSOR_TEST); + glScissor( screenScissorArea.x, screenScissorArea.y, + screenScissorArea.w, screenScissorArea.h); + } + +// if(mc->options.fancyGraphics) { +// setupFog(-1); +// TIMER_POP_PUSH("sky"); +// glFogf(GL_FOG_START, renderDistance * 0.2f); +// glFogf(GL_FOG_END, renderDistance *0.75); +// levelRenderer->renderSky(a); +// glFogf(GL_FOG_START, renderDistance * 0.6f); +// glFogf(GL_FOG_END, renderDistance); +// } + glEnable2(GL_FOG); + setupFog(1); + + if (mc->options.ambientOcclusion) { + glShadeModel2(GL_SMOOTH); + } + + TIMER_POP_PUSH("frustrum"); + FrustumCuller frustum; + frustum.prepare(xOff, yOff, zOff); + + TIMER_POP_PUSH("culling"); + mc->levelRenderer->cull(&frustum, a); + mc->levelRenderer->updateDirtyChunks(cameraEntity, false); + + if(mc->options.fancyGraphics) { + prepareAndRenderClouds(levelRenderer, a); + } + + setupFog(0); + glEnable2(GL_FOG); + + mc->textures->loadAndBindTexture("terrain.png"); + glDisable2(GL_ALPHA_TEST); + glDisable2(GL_BLEND); + glEnable2(GL_CULL_FACE); + TIMER_POP_PUSH("terrain-0"); + levelRenderer->render(cameraEntity, 0, a); + + TIMER_POP_PUSH("terrain-1"); + glEnable2(GL_ALPHA_TEST); + levelRenderer->render(cameraEntity, 1, a); + + glShadeModel2(GL_FLAT); + TIMER_POP_PUSH("entities"); + mc->levelRenderer->renderEntities(cameraEntity->getPos(a), &frustum, a); +// setupFog(0); + TIMER_POP_PUSH("particles"); + particleEngine->render(cameraEntity, a); + + glDisable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + setupFog(0); + glEnable2(GL_BLEND); + glDisable2(GL_CULL_FACE); + glDepthMask(GL_FALSE); + glDisable2(GL_ALPHA_TEST); + mc->textures->loadAndBindTexture("terrain.png"); + //if (mc->options.fancyGraphics) { + // glColorMask(false, false, false, false); + // int visibleWaterChunks = levelRenderer->render(cameraEntity, 1, a); + // glColorMask(true, true, true, true); + // if (mc->options.anaglyph3d) { + // if (i == 0) glColorMask(false, true, true, false); + // else glColorMask(true, false, false, false); + // } + // if (visibleWaterChunks > 0) { + // levelRenderer->renderSameAsLast(1, a); + // } + //} else + { + //glDepthRangef(0.1f, 1.0f); + //glDepthMask(GL_FALSE); + TIMER_POP_PUSH("terrain-water"); + glEnable2(GL_DEPTH_TEST); + levelRenderer->render(cameraEntity, 2, a); + //glDepthRangef(0, 1); + + } + + glDepthMask(GL_TRUE); + glEnable2(GL_CULL_FACE); + glDisable2(GL_BLEND); + glEnable2(GL_ALPHA_TEST); + + if (/*!Minecraft::FLYBY_MODE &&*/ zoom == 1 && cameraEntity->isPlayer()) { + if (mc->hitResult.isHit() && !cameraEntity->isUnderLiquid(Material::water)) { + TIMER_POP_PUSH("select"); + Player* player = (Player*) cameraEntity; + if (mc->useTouchscreen()) { + levelRenderer->renderHitSelect(player, mc->hitResult, 0, NULL, a); //player.inventory->getSelected(), a); + } + levelRenderer->renderHit(player, mc->hitResult, 0, NULL, a);//player->inventory.getSelected(), a); + } + } + + glDisable2(GL_FOG); +// +// setupFog(0); +// glEnable2(GL_FOG); +//// levelRenderer->renderClouds(a); +// glDisable2(GL_FOG); + setupFog(1); + + if (zoom == 1) { + TIMER_POP_PUSH("hand"); + glClear(GL_DEPTH_BUFFER_BIT); + renderItemInHand(a, i); + } + + if (!mc->options.anaglyph3d) { + TIMER_POP(); + return; + } + } + glColorMask(true, true, true, false); + TIMER_POP(); +} + +void GameRenderer::tickFov() { + if (mc->cameraTargetPlayer != mc->player) + return; + + oFov = fov; + fov += (mc->player->getFieldOfViewModifier() - fov) * 0.5f; +} + +/*private*/ +float GameRenderer::getFov(float a, bool applyEffects) { + Mob* player = mc->cameraTargetPlayer; + float fov = 70; + + if (applyEffects) + fov *= this->oFov + (this->fov - this->oFov) * a; + + if (player->isUnderLiquid(Material::water)) fov = 60; + if (player->health <= 0) { + float duration = player->deathTime + a; + + fov /= ((1 - 500 / (duration + 500)) * 2.0f + 1); + } + return fov + fovOffsetO + (fovOffset - fovOffsetO) * a; +} + +/*private*/ +void GameRenderer::moveCameraToPlayer(float a) { + Entity* player = mc->cameraTargetPlayer; + + float heightOffset = player->heightOffset - 1.62f; + + float x = player->xo + (player->x - player->xo) * a; + float y = player->yo + (player->y - player->yo) * a - heightOffset; + //printf("camera y: %f\n", y); + float z = player->zo + (player->z - player->zo) * a; + + //printf("rot: %f %f\n", cameraRollO, cameraRoll); + glRotatef2(cameraRollO + (cameraRoll - cameraRollO) * a, 0, 0, 1); + + //LOGI("player. alive, removed: %d, %d\n", player->isAlive(), player->removed); + if(player->isPlayer() && ((Player*)player)->isSleeping()) { + heightOffset += 1.0; + glTranslatef(0.0f, 0.3f, 0); + if (!mc->options.fixedCamera) { + int t = mc->level->getTile(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + if (t == Tile::bed->id) { + int data = mc->level->getData(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + + int direction = data & 3; + glRotatef(float(direction * 90), 0, 1, 0); + } + glRotatef(player->yRotO + (player->yRot - player->yRotO) * a + 180, 0, -1, 0); + glRotatef(player->xRotO + (player->xRot - player->xRotO) * a, -1, 0, 0); + } + } else if (mc->options.thirdPersonView/* || (player->isPlayer() && !player->isAlive())*/) { + float cameraDist = thirdDistanceO + (thirdDistance - thirdDistanceO) * a; + + if (mc->options.fixedCamera) { + + float rotationY = thirdRotationO + (thirdRotation - thirdRotationO) * a; + float xRot = thirdTiltO + (thirdTilt - thirdTiltO) * a; + + glTranslatef2(0, 0, (float) -cameraDist); + glRotatef2(xRot, 1, 0, 0); + glRotatef2(rotationY, 0, 1, 0); + } else { + float yRot = player->yRot; + float xRot = player->xRot/* + 180.0f*/; + float xd = -Mth::sin(yRot / 180 * Mth::PI) * Mth::cos(xRot / 180 * Mth::PI) * cameraDist; + float zd = Mth::cos(yRot / 180 * Mth::PI) * Mth::cos(xRot / 180 * Mth::PI) * cameraDist; + float yd = -Mth::sin(xRot / 180 * Mth::PI) * cameraDist; + + for (int i = 0; i < 8; i++) { + float xo = (float)((i & 1) * 2 - 1); + float yo = (float)(((i >> 1) & 1) * 2 - 1); + float zo = (float)(((i >> 2) & 1) * 2 - 1); + + xo *= 0.1f; + yo *= 0.1f; + zo *= 0.1f; + + HitResult hr = mc->level->clip(Vec3(x + xo, y + yo, z + zo), Vec3(x - xd + xo + zo, y - yd + yo, z - zd + zo)); // newTemp + if (hr.type != NO_HIT) { + float dist = hr.pos.distanceTo(Vec3(x, y, z)); // newTemp + if (dist < cameraDist) cameraDist = dist; + } + } + + //glRotatef2(180, 0, 1, 0); + + glRotatef2(player->xRot - xRot, 1, 0, 0); + glRotatef2(player->yRot - yRot, 0, 1, 0); + glTranslatef2(0, 0, (float) -cameraDist); + glRotatef2(yRot - player->yRot, 0, 1, 0); + glRotatef2(xRot - player->xRot, 1, 0, 0); + } + } else { + glTranslatef2(0, 0, -0.1f); + } + + if (!mc->options.fixedCamera) { + glRotatef2(player->xRotO + (player->xRot - player->xRotO) * a, 1.0f, 0.0f, 0.0f); + glRotatef2(player->yRotO + (player->yRot - player->yRotO) * a + 180, 0, 1, 0); + //if (_t_keepPic > 0) + } + glTranslatef2(0, heightOffset, 0); +} + +/*private*/ +void GameRenderer::bobHurt(float a) { + Mob* player = mc->cameraTargetPlayer; + + float hurt = player->hurtTime - a; + + if (player->health <= 0) { + float duration = player->deathTime + a; + glRotatef2(40 - (40 * 200) / (duration + 200), 0, 0, 1); + } + + if (player->hurtTime <= 0) return; + + hurt /= player->hurtDuration; + hurt = (float) Mth::sin(hurt * hurt * hurt * hurt * Mth::PI); + + float rr = player->hurtDir; + + glRotatef2(-rr, 0, 1, 0); + glRotatef2(-hurt * 14, 0, 0, 1); + glRotatef2(+rr, 0, 1, 0); +} + +/*private*/ +void GameRenderer::bobView(float a) { + //if (mc->options.thirdPersonView) return; + if (!(mc->cameraTargetPlayer->isPlayer())) { + return; + } + Player* player = (Player*) mc->cameraTargetPlayer; + + float wda = player->walkDist - player->walkDistO; + float b = -(player->walkDist + wda * a); + float bob = player->oBob + (player->bob - player->oBob) * a; + float tilt = player->oTilt + (player->tilt - player->oTilt) * a; + glTranslatef2((float) Mth::sin(b * Mth::PI) * bob * 0.5f, -(float) std::abs(Mth::cos(b * Mth::PI) * bob), 0); + glRotatef2((float) Mth::sin(b * Mth::PI) * bob * 3, 0, 0, 1); + glRotatef2((float) std::abs(Mth::cos(b * Mth::PI - 0.2f) * bob) * 5, 1, 0, 0); + glRotatef2((float) tilt, 1, 0, 0); +} + +/*private*/ +void GameRenderer::setupFog(int i) { + Mob* player = mc->cameraTargetPlayer; + float fogBuffer[4] = {fr, fg, fb, 1}; + + glFogfv(GL_FOG_COLOR, (GLfloat*)fogBuffer); + glColor4f2(1, 1, 1, 1); + + if (player->isUnderLiquid(Material::water)) { + glFogx(GL_FOG_MODE, GL_EXP); + glFogf(GL_FOG_DENSITY, 0.1f); // was 0.06 + +// float rr = 0.4f; +// float gg = 0.4f; +// float bb = 0.9f; +// +// if (mc->options.anaglyph3d) { +// float rrr = (rr * 30 + gg * 59 + bb * 11) / 100; +// float ggg = (rr * 30 + gg * 70) / (100); +// float bbb = (rr * 30 + bb * 70) / (100); +// +// rr = rrr; +// gg = ggg; +// bb = bbb; +// } + } else if (player->isUnderLiquid(Material::lava)) { + glFogx(GL_FOG_MODE, GL_EXP); + glFogf(GL_FOG_DENSITY, 2.f); // was 0.06 +// float rr = 0.4f; +// float gg = 0.3f; +// float bb = 0.3f; +// +// if (mc->options.anaglyph3d) { +// float rrr = (rr * 30 + gg * 59 + bb * 11) / 100; +// float ggg = (rr * 30 + gg * 70) / (100); +// float bbb = (rr * 30 + bb * 70) / (100); +// +// rr = rrr; +// gg = ggg; +// bb = bbb; +// } + } else { + glFogx(GL_FOG_MODE, GL_LINEAR); + glFogf(GL_FOG_START, renderDistance * 0.6f); + glFogf(GL_FOG_END, renderDistance); + if (i < 0) { + glFogf(GL_FOG_START, 0); + glFogf(GL_FOG_END, renderDistance * 1.0f); + } + + if (mc->level->dimension->foggy) { + glFogf(GL_FOG_START, 0); + } + } + + glEnable2(GL_COLOR_MATERIAL); + //glColorMaterial(GL_FRONT, GL_AMBIENT); +} + +void GameRenderer::updateAllChunks() { + mc->levelRenderer->updateDirtyChunks(mc->cameraTargetPlayer, true); +} + +bool GameRenderer::updateFreeformPickDirection(float a, Vec3& outDir) { + + if (!mc->inputHolder->allowPicking()) { + _shTicks = 1; + return false; + } + + Vec3 c = mc->cameraTargetPlayer->getPos(a); + + bool firstPerson = !mc->options.thirdPersonView; + const float PickingDistance = firstPerson? 6.0f : 12.0f; + + _shTicks = -1; + + int vp[4] = {0, 0, mc->width, mc->height}; + float pt[3]; + float x = mc->inputHolder->mousex; + float y = mc->height - mc->inputHolder->mousey; + + //sw.start(); + + if (!glhUnProjectf(x, y, 1, lastModelMatrix, lastProjMatrix, vp, pt)) { + return false; + } + Vec3 p1(pt[0] + c.x, pt[1] + c.y, pt[2] + c.z); + + glhUnProjectf(x, y, 0, lastModelMatrix, lastProjMatrix, vp, pt); + Vec3 p0(pt[0] + c.x, pt[1] + c.y, pt[2] + c.z); + + outDir = (p1 - p0).normalized(); + p1 = p0 + outDir * PickingDistance; + + //sw.stop(); + //sw.printEvery(30, "unproject "); + + const HitResult& hit = mc->hitResult = mc->level->clip(p0, p1, false); + + // If in 3rd person view - verify that the hit target is within range + if (!firstPerson && hit.isHit()) { + const float MaxSqrDist = PickingDistance*PickingDistance; + if (mc->cameraTargetPlayer->distanceToSqr((float)hit.x, (float)hit.y, (float)hit.z) > MaxSqrDist) + mc->hitResult.type = NO_HIT; + } + return true; +} + +/*public*/ +void GameRenderer::pick(float a) { + if (mc->level == NULL) return; + if (mc->cameraTargetPlayer == NULL) return; + if (!mc->cameraTargetPlayer->isAlive()) return; + + float range = mc->gameMode->getPickRange(); + bool isPicking = true; + + bool freeform = mc->useTouchscreen() && !mc->options.isJoyTouchArea; + if (freeform) { + isPicking = updateFreeformPickDirection(a, pickDirection); + } else { + mc->hitResult = mc->cameraTargetPlayer->pick(range, a); + pickDirection = mc->cameraTargetPlayer->getViewVector(a); + } + + Vec3 from = mc->cameraTargetPlayer->getPos(a); + float dist = range; + if (mc->hitResult.isHit()) { + dist = mc->hitResult.pos.distanceTo(from); + } + + if (mc->gameMode->isCreativeType()) { + /*dist =*/ range = 12; + } else { + if (dist > 3) dist = 3; + range = dist; + } + + Vec3 pv = (pickDirection * range); + Vec3 to = from + pv; + mc->cameraTargetPlayer->aimDirection = pickDirection; + + Entity* hovered = NULL; + const float g = 1; + AABB aabb = mc->cameraTargetPlayer->bb.expand(pv.x, pv.y, pv.z).grow(g, g, g); + EntityList& objects = mc->level->getEntities(mc->cameraTargetPlayer, aabb); + float nearest = 0; + for (unsigned int i = 0; i < objects.size(); i++) { + Entity* e = objects[i]; + if (!e->isPickable()) continue; + + float rr = e->getPickRadius(); + AABB bb = e->bb.grow(rr, rr, rr); + HitResult p = bb.clip(from, to); + //printf("Clip Hitresult %d (%d)\n", p.type, p.isHit()); + + if (bb.contains(from)) { + //@todo: hovered = e; break; ? + if (nearest >= 0) { + hovered = e; + nearest = 0; + } + } else if (p.isHit()) { + float dd = from.distanceTo(p.pos); + if (dd < nearest || nearest == 0) { + hovered = e; + nearest = dd; + } + } + } + + if (hovered != NULL) { + if(nearest < dist) { + mc->hitResult = HitResult(hovered); + } + } + else if (isPicking && !mc->hitResult.isHit()) { + // if we don't have a hit result, attempt to hit the edge of the block we are standing on + // (this is an pocket edition simplification to help building floors) + //LOGI("hovered : %d (%f)\n", mc->hitResult.type, viewVec.y); + if (pickDirection.y < -.7f) { + // looking down by more than roughly 45 degrees, fetch a hit to the block standing on + Vec3 to = from.add(0, -2.0f, 0); + + HitResult downHitResult = mc->level->clip(from, to); + if (downHitResult.isHit()) { + mc->hitResult = downHitResult; + mc->hitResult.indirectHit = true; + // change face (not up) + if (std::abs(pickDirection.x) > std::abs(pickDirection.z)) { + mc->hitResult.f = (pickDirection.x < 0)? 4 : 5; + } else { + mc->hitResult.f = (pickDirection.z < 0)? 2 : 3; + } + } + } + } +} +/*public*/ +void GameRenderer::tick(int nTick, int maxTick) { + --_t_keepPic; + + if (!mc->player) + { + return; + } + + if (--_shTicks == 0) + mc->hitResult.type = NO_HIT; + + //_rotXlast = _rotX; + //_rotYlast = _rotY; + + //LOGI("x: %f\n", _rotX); + + if (nTick == maxTick) { + const float tickMult = 1.0f / (float)(1 + maxTick); + _rotXlast = 0.4f * std::pow(std::abs(_rotX), 1.2f) * tickMult; + if (_rotX < 0) _rotXlast = -_rotXlast; + + _rotYlast = 0.4f * std::pow(std::abs(_rotY), 1.2f) * tickMult; + if (_rotY < 0) _rotYlast = -_rotYlast; + + _rotX = 0; + _rotY = 0; + } + + fogBrO = fogBr; + thirdDistanceO = thirdDistance; + thirdRotationO = thirdRotation; + thirdTiltO = thirdTilt; + fovOffsetO = fovOffset; + cameraRollO = cameraRoll; + + if (mc->cameraTargetPlayer == NULL) { + mc->cameraTargetPlayer = mc->player; + } + + tickFov(); + + float brr = mc->level->getBrightness( Mth::floor(mc->cameraTargetPlayer->x), + Mth::floor(mc->cameraTargetPlayer->y), + Mth::floor(mc->cameraTargetPlayer->z)); + + float whiteness = (3 - mc->options.viewDistance) / 3.0f; + float fogBrT = brr * (1 - whiteness) + whiteness; + fogBr += (fogBrT - fogBr) * 0.1f; + + _tick++; + + itemInHandRenderer->tick(); +// if (mc->isRaining) tickRain(); +} + +/*private*/ +void GameRenderer::setupClearColor(float a) { + Level* level = mc->level; + Mob* player = mc->cameraTargetPlayer; + + float whiteness = 1.0f / (4 - mc->options.viewDistance); + whiteness = 1 - (float) pow(whiteness, 0.25f); + + Vec3 skyColor = level->getSkyColor(mc->cameraTargetPlayer, a); + float sr = (float) skyColor.x; + float sg = (float) skyColor.y; + float sb = (float) skyColor.z; + + Vec3 fogColor = level->getFogColor(a); + fr = (float) fogColor.x; + fg = (float) fogColor.y; + fb = (float) fogColor.z; + + fr += (sr - fr) * whiteness; + fg += (sg - fg) * whiteness; + fb += (sb - fb) * whiteness; + + if (player->isUnderLiquid(Material::water)) { + fr = 0.02f; + fg = 0.02f; + fb = 0.2f; + } else if (player->isUnderLiquid(Material::lava)) { + fr = 0.6f; + fg = 0.1f; + fb = 0.00f; + } + + float brr = fogBrO + (fogBr - fogBrO) * a; + fr *= brr; + fg *= brr; + fb *= brr; + + if (mc->options.anaglyph3d) { + float frr = (fr * 30 + fg * 59 + fb * 11) / 100; + float fgg = (fr * 30 + fg * 70) / (100); + float fbb = (fr * 30 + fb * 70) / (100); + + fr = frr; + fg = fgg; + fb = fbb; + } + + glClearColor(fr, fg, fb, 1.0f); +} + +void GameRenderer::zoomRegion( float zoom, float xa, float ya ) +{ + this->zoom = zoom; + this->zoom_x = xa; + this->zoom_y = ya; +} + +void GameRenderer::unZoomRegion() +{ + zoom = 1; +} + +void GameRenderer::setupGuiScreen( bool clearColorBuffer ) +{ + int screenWidth = (int)(mc->width * Gui::InvGuiScale); + int screenHeight = (int)(mc->height * Gui::InvGuiScale); + + // Setup GUI render mode + GLbitfield clearBits = clearColorBuffer? + GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT + : GL_DEPTH_BUFFER_BIT; + glClear(clearBits); + glMatrixMode(GL_PROJECTION); + glLoadIdentity2(); + glOrthof(0, (GLfloat)screenWidth, (GLfloat)screenHeight, 0, 2000, 3000); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity2(); + glTranslatef2(0, 0, -2000); +} + +/*private*/ +void GameRenderer::renderItemInHand(float a, int eye) { + glLoadIdentity2(); + if (mc->options.anaglyph3d) glTranslatef2((eye * 2 - 1) * 0.10f, 0, 0); + + glPushMatrix2(); + bobHurt(a); + if (mc->options.bobView) bobView(a); + + if (!mc->options.thirdPersonView && (mc->cameraTargetPlayer->isPlayer() && !((Player*)mc->cameraTargetPlayer)->isSleeping())) { + if (!mc->options.hideGui) { + float fov = getFov(a, false); + if (fov != _setupCameraFov) { + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(fov, mc->width / (float) mc->height, 0.05f, renderDistance); + glMatrixMode(GL_MODELVIEW); + } + itemInHandRenderer->render(a); + } + } + + glPopMatrix2(); + if (!mc->options.thirdPersonView && (mc->cameraTargetPlayer->isPlayer() && !((Player*)mc->cameraTargetPlayer)->isSleeping())) { + itemInHandRenderer->renderScreenEffect(a); + bobHurt(a); + } + if (mc->options.bobView) bobView(a); +} + +void GameRenderer::onGraphicsReset() +{ + if (itemInHandRenderer) itemInHandRenderer->onGraphicsReset(); +} + +void GameRenderer::saveMatrices() +{ + #if defined(RPI) + return; + #endif + + static bool saved = false; + //if (saved) return; + + saved = true; + + glGetFloatv(GL_PROJECTION_MATRIX, lastProjMatrix); + glGetFloatv(GL_MODELVIEW_MATRIX, lastModelMatrix); +} + +void GameRenderer::prepareAndRenderClouds( LevelRenderer* levelRenderer, float a ) { + //if(mc->options.isCloudsOn()) { + TIMER_PUSH("clouds"); + glMatrixMode(GL_PROJECTION); + glPushMatrix2(); + glLoadIdentity2(); + gluPerspective(_setupCameraFov = getFov(a, true), mc->width / (float) mc->height, 2, renderDistance * 512); + glMatrixMode(GL_MODELVIEW); + glPushMatrix2(); + setupFog(0); + glDepthMask(false); + glEnable2(GL_FOG); + glFogf(GL_FOG_START, renderDistance * 0.2f); + glFogf(GL_FOG_END, renderDistance * 0.75f); + levelRenderer->renderSky(a); + glFogf(GL_FOG_START, renderDistance * 4.2f * 0.6f); + glFogf(GL_FOG_END, renderDistance * 4.2f); + levelRenderer->renderClouds(a); + glFogf(GL_FOG_START, renderDistance * 0.6f); + glFogf(GL_FOG_END, renderDistance); + glDisable2(GL_FOG); + glDepthMask(true); + setupFog(1); + glPopMatrix2(); + glMatrixMode(GL_PROJECTION); + glPopMatrix2(); + glMatrixMode(GL_MODELVIEW); + TIMER_POP(); + //} +} diff --git a/src/client/renderer/GameRenderer.h b/src/client/renderer/GameRenderer.h new file mode 100755 index 0000000..ca8d7ec --- /dev/null +++ b/src/client/renderer/GameRenderer.h @@ -0,0 +1,117 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__GameRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__GameRenderer_H__ + +//package net.minecraft.client.renderer; + +#include "gles.h" +#include +#include "../../util/SmoothFloat.h" +#include "../../world/phys/Vec3.h" +#include "../gui/components/ImageButton.h" + +class Minecraft; +class Entity; +class ItemInHandRenderer; +class LevelRenderer; +class GameRenderer +{ +public: + GameRenderer(Minecraft* mc_); + ~GameRenderer(); + + void pick(float a); + + void updateAllChunks(); + + void zoomRegion(float zoom, float xa, float ya); + void unZoomRegion(); + void setupGuiScreen(bool clearColorBuffer); + + void tick(int nTick, int maxTick); + void render(float a); + void renderLevel(float a); + void renderItemInHand(float a, int eye); + + void onGraphicsReset(); + + void setupCamera(float a, int eye); + void moveCameraToPlayer(float a); + + void setupClearColor(float a); + float getFov(float a, bool applyEffects); +private: + void setupFog(int i); + + void tickFov(); + + + void bobHurt(float a); + void bobView(float a); + + bool updateFreeformPickDirection(float a, Vec3& outDir); + void prepareAndRenderClouds(LevelRenderer* levelRenderer, float a); + +public: + ItemInHandRenderer* itemInHandRenderer; + +private: + Minecraft* mc; + + float renderDistance; + int _tick; + Vec3 pickDirection; + + // smooth camera movement + SmoothFloat smoothTurnX; + SmoothFloat smoothTurnY; + + // // third-person distance etc + // SmoothFloat smoothDistance = /*new*/ SmoothFloat(); + // SmoothFloat smoothRotation = /*new*/ SmoothFloat(); + // SmoothFloat smoothTilt = /*new*/ SmoothFloat(); + // SmoothFloat smoothRoll = /*new*/ SmoothFloat(); + + float thirdDistance; + float thirdDistanceO; + float thirdRotation; + float thirdRotationO; + float thirdTilt; + float thirdTiltO; + + // zoom + float zoom; + float zoom_x; + float zoom_y; + + // fov modification + float fov, oFov; + float fovOffset; + float fovOffsetO; + float _setupCameraFov; + + // roll modification + float cameraRoll; + float cameraRollO; + + float fr; + float fg; + float fb; + + float fogBrO, fogBr; + + float _rotX; + float _rotY; + float _rotXlast; + float _rotYlast; + float _lastTickT; + + void saveMatrices(); + float lastProjMatrix[16]; + float lastModelMatrix[16]; + + // Scissor area that Minecraft::screen defines + bool useScreenScissor; + IntRectangle screenScissorArea; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__GameRenderer_H__*/ diff --git a/src/client/renderer/ItemInHandRenderer.cpp b/src/client/renderer/ItemInHandRenderer.cpp new file mode 100755 index 0000000..e63fd96 --- /dev/null +++ b/src/client/renderer/ItemInHandRenderer.cpp @@ -0,0 +1,533 @@ +#include "ItemInHandRenderer.h" + +#include "gles.h" +#include "Tesselator.h" +#include "entity/EntityRenderDispatcher.h" +#include "entity/EntityRenderer.h" +#include "entity/MobRenderer.h" +#include "../Minecraft.h" +#include "../player/LocalPlayer.h" +#include "../../world/entity/player/Player.h" +#include "../../world/item/Item.h" +#include "../../world/level/material/Material.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/level/Level.h" +#include "../../util/Mth.h" +#include "../../world/entity/player/Inventory.h" + +#include "../../platform/time.h" +#include "Textures.h" +#include "../../world/item/UseAnim.h" +#include "../../world/item/BowItem.h" +#include "../../world/level/tile/LeafTile.h" +#include "entity/HumanoidMobRenderer.h" + +//static StopwatchHandler handler; + +ItemInHandRenderer::ItemInHandRenderer( Minecraft* mc ) +: mc(mc), + lastSlot(-1), + height(0), + oHeight(0), + lastIconRendered(0), + lastItemRendered(0), + //selectedItem(NULL), + item(0, 1, 0) +{ + GLuint ids[MaxNumRenderObjects]; + glGenBuffers2(MaxNumRenderObjects, ids); + + for (int i = 0; i < MaxNumRenderObjects; ++i) { + renderObjects[i].itemId = -1; + renderObjects[i].chunk.vboId = ids[i]; + //LOGI("IDS: %d\n", ids[i]); + } + + //LOGI("SizeOf :%d (256 * %d)\n", sizeof(renderObjects), sizeof(RenderCall)); +} + +void ItemInHandRenderer::tick() +{ + oHeight = height; + item.id = 0; + + ItemInstance* itemInHand = mc->player->inventory->getSelected(); + if (itemInHand && itemInHand->count > 0) { + item.id = itemInHand->id; + item.setAuxValue(itemInHand->getAuxValue()); + } + + float max = 0.4f; + float tHeight = 1;//matches ? 1 : 0; + float dd = tHeight - height; + if (dd < -max) dd = -max; + if (dd > max) dd = max; + + height += dd; +} + +void ItemInHandRenderer::renderItem(Mob* mob, ItemInstance* item ) +{ + //Stopwatch& w = handler.get("item:" + Tile::tiles[item->id]->getDescriptionId()); + //w.start(); + + int itemId = item->id; + // Ugly hack, but what the heck, I don't have time at the moment + // Use spare slots between 200 and 255 (for now) for items with different + // graphics per data. @note: Check Tile.cpp for needed IDs to override + if (itemId == Tile::cloth->id) { + itemId = 200 + item->getAuxValue(); // 200 to 215 + } else if (itemId == Tile::treeTrunk->id) { + itemId = 216 + item->getAuxValue(); // 216 to 219 @treeTrunk + } else if (itemId == Tile::sapling->id) { + itemId = 220 + item->getAuxValue(); // 220 to 223 @sapling + } else if (itemId == Tile::stoneSlabHalf->id) { + itemId = 224 + item->getAuxValue(); // 224 to 231 @stoneslab + } else if (itemId == ((Tile*)Tile::leaves)->id) { + itemId = 232 + (item->getAuxValue() & LeafTile::LEAF_TYPE_MASK); // 232 to 235 @leaves + } + + RenderCall& renderObject = renderObjects[itemId]; + int itemIcon = item->getIcon(); + if(mob != NULL) { + itemIcon = mob->getItemInHandIcon(item, 0); + } + + bool reTesselate(false); + if(itemIcon != lastIconRendered && lastItemRendered == itemId) + reTesselate = true; + lastItemRendered = itemId; + lastIconRendered = itemIcon; + //const int aux = item->getAuxValue(); + + if (renderObject.itemId == -1 || reTesselate) { + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) { + Tesselator& t = Tesselator::instance; + t.beginOverride(); + + int renderedItemId = item->id; + if (renderedItemId == ((Tile*)Tile::leaves)->id) + renderedItemId = ((Tile*)Tile::leaves_carried)->id; + if (renderedItemId == Tile::grass->id) + renderedItemId = Tile::grass_carried->id; + tileRenderer.renderTile(Tile::tiles[renderedItemId], item->getAuxValue()); + renderObject.chunk = t.endOverride(renderObject.chunk.vboId); + + renderObject.texture = "terrain.png"; + renderObject.itemId = itemId; + renderObject.isFlat = false; + } else { + renderObject.itemId = itemId; + renderObject.isFlat = true; + + if (item->id < 256) { + renderObject.texture = "terrain.png"; + //mc->textures->loadAndBindTexture("terrain.png"); + } else { + renderObject.texture = "gui/items.png"; + //mc->textures->loadAndBindTexture("gui/items.png"); + } + // glDisable2(GL_LIGHTING); + Tesselator& t = Tesselator::instance; + t.beginOverride(); + t.color(0xff, 0xff, 0xff); + const int up = itemIcon & 15; + const int vp = itemIcon >> 4; + float u1 = (up * 16 + 0.00f) / 256.0f; + float u0 = (up * 16 + 15.99f) / 256.0f; + float v0 = (vp * 16 + 0.00f) / 256.0f; + float v1 = (vp * 16 + 15.99f) / 256.0f; + + float r = 1.0f; +// float xo = 0.0f; +// float yo = 0.3f; +/* + //glEnable2(GL_RESCALE_NORMAL); + glTranslatef2(-xo, -yo, 0); + float s = 1.5f; + glScalef2(s, s, s); + + glRotatef2(50, 0, 1, 0); + glRotatef2(45 + 290, 0, 0, 1); + glTranslatef2(-15 / 16.0f, -1 / 16.0f, 0); +*/ + float dd = 1 / 16.0f; + + t.vertexUV(0, 0, 0, u0, v1); + t.vertexUV(r, 0, 0, u1, v1); + t.vertexUV(r, 1, 0, u1, v0); + t.vertexUV(0, 1, 0, u0, v0); + + t.vertexUV(0, 1, 0 - dd, u0, v0); + t.vertexUV(r, 1, 0 - dd, u1, v0); + t.vertexUV(r, 0, 0 - dd, u1, v1); + t.vertexUV(0, 0, 0 - dd, u0, v1); + + for (int i = 0; i < 16; i++) { + float p = i / 16.0f; + float uu = u0 + (u1 - u0) * p - 0.5f / 256.0f; + float xx = r * p; + t.vertexUV(xx, 0, 0 - dd, uu, v1); + t.vertexUV(xx, 0, 0, uu, v1); + t.vertexUV(xx, 1, 0, uu, v0); + t.vertexUV(xx, 1, 0 - dd, uu, v0); + } + for (int i = 0; i < 16; i++) { + float p = i / 16.0f; + float uu = u0 + (u1 - u0) * p - 0.5f / 256.0f; + float xx = r * p + 1 / 16.0f; + t.vertexUV(xx, 1, 0 - dd, uu, v0); + t.vertexUV(xx, 1, 0, uu, v0); + t.vertexUV(xx, 0, 0, uu, v1); + t.vertexUV(xx, 0, 0 - dd, uu, v1); + } + for (int i = 0; i < 16; i++) { + float p = i / 16.0f; + float vv = v1 + (v0 - v1) * p - 0.5f / 256.0f; + float yy = r * p + 1 / 16.0f; + t.vertexUV(0, yy, 0, u0, vv); + t.vertexUV(r, yy, 0, u1, vv); + t.vertexUV(r, yy, 0 - dd, u1, vv); + t.vertexUV(0, yy, 0 - dd, u0, vv); + } + for (int i = 0; i < 16; i++) { + float p = i / 16.0f; + float vv = v1 + (v0 - v1) * p - 0.5f / 256.0f; + float yy = r * p; + t.vertexUV(r, yy, 0, u1, vv); + t.vertexUV(0, yy, 0, u0, vv); + t.vertexUV(0, yy, 0 - dd, u0, vv); + t.vertexUV(r, yy, 0 - dd, u1, vv); + } + renderObject.chunk = t.endOverride(renderObject.chunk.vboId); + } + } + + if (renderObject.itemId >= 0) { + if (renderObject.isFlat) { + float xo = 0.0f; + float yo = 0.3f; + + glPushMatrix2(); + glTranslatef2(-xo, -yo, 0); + float s = 1.5f; + glScalef2(s, s, s); + + glRotatef2(50, 0, 1, 0); + glRotatef2(45 + 290, 0, 0, 1); + glTranslatef2(-15 / 16.0f, -1 / 16.0f, 0); + } + mc->textures->loadAndBindTexture(renderObject.texture); + + drawArrayVT_NoState(renderObject.chunk.vboId, renderObject.chunk.vertexCount); + if (renderObject.isFlat) + glPopMatrix2(); + } + //w.stop(); + //handler.printEvery(100); +} + +void ItemInHandRenderer::render( float a ) +{ + //return; + + //Stopwatch& w = handler.get("render"); + //w.start(); + + float h = oHeight + (height - oHeight) * a; + Player* player = mc->player; + // if (selectedTile==NULL) return; + + glPushMatrix2(); + glRotatef2(player->xRotO + (player->xRot - player->xRotO) * a, 1, 0, 0); + glRotatef2(player->yRotO + (player->yRot - player->yRotO) * a, 0, 1, 0); + glPopMatrix2(); + + float br = mc->level->getBrightness(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + + ItemInstance* item;// = selectedItem; + //if (player.fishing != NULL) { + // item = /*new*/ ItemInstance(Item.stick); + //} + + if (this->item.id > 0) + item = &this->item; + else + item = NULL; + + if (item != NULL) { + glColor4f2(br, br, br, 1); + bool isUsing = player->getUseItemDuration() > 0; + bool isBow = item->id == Item::bow->id; + bool noSwingAnimation = isUsing && (isBow || (item->getUseAnimation() != UseAnim::none)); + const float swing = noSwingAnimation ? 0 : player->getAttackAnim(a); + const float sqrtSwing = Mth::sqrt(swing); + const float swing3 = Mth::sin(swing * swing * Mth::PI); + const float swing1 = Mth::sin(swing * Mth::PI); + const float swing2 = Mth::sin(sqrtSwing * Mth::PI); + const float d = 0.8f; + glPushMatrix2(); + + if (isUsing) { + UseAnim::UseAnimation anim = item->getUseAnimation(); + if (anim == UseAnim::eat || anim == UseAnim::drink) { + float t = (player->getUseItemDuration() - a + 1); + float useProgress = 1 - (t / item->getUseDuration()); + + float swing = useProgress; + float is = 1 - swing; + is = is * is * is; + is = is * is * is; + is = is * is * is; + float iss = 1 - is; + glTranslatef(0, Mth::abs(Mth::cos(t / 4 * Mth::PI) * 0.1f) * (swing > 0.2 ? 1 : 0), 0); + glTranslatef(iss * 0.6f, -iss * 0.5f, 0); + glRotatef(iss * 90, 0, 1, 0); + glRotatef(iss * 10, 1, 0, 0); + glRotatef(iss * 30, 0, 0, 1); + } + } else { + glTranslatef2(-swing2 * 0.4f, (float) Mth::sin(sqrtSwing * Mth::PI * 2) * 0.2f, -swing1 * 0.2f); + } + + glTranslatef2(0.7f * d, -0.65f * d - (1 - h) * 0.6f, -0.9f * d); + + glRotatef2(45, 0, 1, 0); + //glEnable2(GL_RESCALE_NORMAL); + glRotatef2(-swing3 * 20, 0, 1, 0); + glRotatef2(-swing2 * 20, 0, 0, 1); + glRotatef2(-swing2 * 80, 1, 0, 0); + float ss = 0.4f; + glScalef2(ss, ss, ss); + if (player->getUseItemDuration() > 0) { + UseAnim::UseAnimation anim = item->getUseAnimation(); + if(anim == UseAnim::bow) { + glRotatef(-18, 0, 0, 1); + glRotatef(-12, 0, 1, 0); + glRotatef(-8, 1, 0, 0); + glTranslatef(-0.9f, 0.2f, 0.0f); + float timeHeld = (item->getUseDuration() - (player->getUseItemDuration() - a + 1)); + float pow = timeHeld / (float) (BowItem::MAX_DRAW_DURATION); + pow = ((pow * pow) + pow * 2) / 3; + if (pow > 1) pow = 1; + if (pow > 0.1f) { + glTranslatef(0, Mth::sin((timeHeld - 0.1f) * 1.3f) * 0.01f * (pow - 0.1f), 0); + } + glTranslatef(0, 0, pow * 0.1f); + + glRotatef(-45 - 290, 0, 0, 1); + glRotatef(-50, 0, 1, 0); + glTranslatef(0, 0.5f, 0); + float ys = 1 + pow * 0.2f; + glScalef(1, 1, ys); + glTranslatef(0, -0.5f, 0); + glRotatef(50, 0, 1, 0); + glRotatef(45 + 290, 0, 0, 1); + } + } + if (item->getItem()->isMirroredArt()) { + glRotatef2(180, 0, 1, 0); + } + glEnableClientState2(GL_VERTEX_ARRAY); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + renderItem(player, item); + glDisableClientState2(GL_VERTEX_ARRAY); + glDisableClientState2(GL_TEXTURE_COORD_ARRAY); + glPopMatrix2(); + } else { + glColor4f2(br, br, br, 1); + + glPushMatrix2(); + float d = 0.8f; + const float swing = player->getAttackAnim(a); + const float sqrtSwing = Mth::sqrt(swing); + const float swing3 = Mth::sin(swing * swing * Mth::PI); + const float swing1 = Mth::sin(swing * Mth::PI); + const float swing2 = Mth::sin(sqrtSwing * Mth::PI); + + glTranslatef2(-swing2 * 0.3f, (float) Mth::sin(Mth::sqrt(swing) * Mth::PI * 2) * 0.4f, -swing1 * 0.4f); + glTranslatef2(0.8f * d, -0.75f * d - (1 - h) * 0.6f, -0.9f * d); + + glRotatef2(45, 0, 1, 0); + //glEnable2(GL_RESCALE_NORMAL); + glRotatef2(swing2 * 70, 0, 1, 0); + glRotatef2(-swing3 * 20, 0, 0, 1); + // glRotatef2(-swing2 * 80, 1, 0, 0); + + mc->textures->loadAndBindTexture("mob/char.png"); + glTranslatef2(-1.0f, +3.6f, +3.5f); + glRotatef2(120, 0, 0, 1); + glRotatef2(180 + 20, 1, 0, 0); + glRotatef2(-90 - 45, 0, 1, 0); + glScalef2(1.5f / 24.0f * 16, 1.5f / 24.0f * 16, 1.5f / 24.0f * 16); + glTranslatef2(5.6f, 0, 0); + + EntityRenderer* er = EntityRenderDispatcher::getInstance()->getRenderer(mc->player); + HumanoidMobRenderer* playerRenderer = (HumanoidMobRenderer*) er; + float ss = 1; + glScalef2(ss, ss, ss); + playerRenderer->renderHand(); + glPopMatrix2(); + } + //glDisable2(GL_RESCALE_NORMAL); + //Lighting.turnOff(); + //w.stop(); +} + +void ItemInHandRenderer::renderScreenEffect( float a ) +{ + glDisable2(GL_ALPHA_TEST); + if (mc->player->isOnFire()) { + mc->textures->loadAndBindTexture("terrain.png"); + renderFire(a); + } + + if (mc->player->isInWall()) // Inside a tile + { + int x = Mth::floor(mc->player->x); + int y = Mth::floor(mc->player->y); + int z = Mth::floor(mc->player->z); + + mc->textures->loadAndBindTexture("terrain.png"); + int tile = mc->level->getTile(x, y, z); + if (Tile::tiles[tile] != NULL) { + renderTex(a, Tile::tiles[tile]->getTexture(2)); + } + } + + // if (mc->player->isUnderLiquid(Material::water)) { + //mc->textures->loadAndBindTexture("misc/water.png"); + // renderWater(a); + // } + glEnable2(GL_ALPHA_TEST); +} + +void ItemInHandRenderer::itemPlaced() +{ + height = 0; +} + +void ItemInHandRenderer::itemUsed() +{ + height = 0; +} + +void ItemInHandRenderer::renderTex( float a, int tex ) +{ + Tesselator& t = Tesselator::instance; + + float br;// = mc->player->getBrightness(a); + br = 0.1f; + glColor4f2(br, br, br, 0.5f); + + glPushMatrix2(); + + float x0 = -1; + float x1 = +1; + float y0 = -1; + float y1 = +1; + float z0 = -0.5f; + + float r = 2 / 256.0f; + float u0 = (tex % 16) / 256.0f - r; + float u1 = (tex % 16 + 15.99f) / 256.0f + r; + float v0 = (tex / 16) / 256.0f - r; + float v1 = (tex / 16 + 15.99f) / 256.0f + r; + + t.begin(); + t.vertexUV(x0, y0, z0, u1, v1); + t.vertexUV(x1, y0, z0, u0, v1); + t.vertexUV(x1, y1, z0, u0, v0); + t.vertexUV(x0, y1, z0, u1, v0); + //t.end(); + t.draw(); + glPopMatrix2(); + + glColor4f2(1, 1, 1, 1); +} + +void ItemInHandRenderer::renderWater( float a ) +{ + Tesselator& t = Tesselator::instance; + + float br = mc->player->getBrightness(a); + glColor4f2(br, br, br, 0.5f); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glPushMatrix2(); + + float size = 4; + + float x0 = -1; + float x1 = +1; + float y0 = -1; + float y1 = +1; + float z0 = -0.5f; + + float uo = -mc->player->yRot / 64.0f; + float vo = +mc->player->xRot / 64.0f; + + t.begin(); + t.vertexUV(x0, y0, z0, size + uo, size + vo); + t.vertexUV(x1, y0, z0, 0 + uo, size + vo); + t.vertexUV(x1, y1, z0, 0 + uo, 0 + vo); + t.vertexUV(x0, y1, z0, size + uo, 0 + vo); + //t.end(); + t.draw(); + glPopMatrix2(); + + glColor4f2(1, 1, 1, 1); + glDisable2(GL_BLEND); +} + +void ItemInHandRenderer::renderFire( float a ) +{ + Tesselator& t = Tesselator::instance; + glColor4f2(1, 1, 1, 0.9f); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + float size = 1; + for (int i = 0; i < 2; i++) { + glPushMatrix2(); + int tex = ((Tile*)Tile::fire)->tex + i * 16; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f) / 256.0f; + + float x0 = (0 - size) / 2; + float x1 = x0 + size; + float y0 = 0 - size / 2; + float y1 = y0 + size; + float z0 = -0.5f; + glTranslatef2(-(i * 2 - 1) * 0.24f, -0.3f, 0); + glRotatef2((i * 2 - 1) * 10.f, 0, 1, 0); + + t.begin(); + t.vertexUV(x0, y0, z0, u1, v1); + t.vertexUV(x1, y0, z0, u0, v1); + t.vertexUV(x1, y1, z0, u0, v0); + t.vertexUV(x0, y1, z0, u1, v0); + //t.end(); + t.draw(); + glPopMatrix2(); + } + glColor4f2(1, 1, 1, 1); + glDisable2(GL_BLEND); +} + +void ItemInHandRenderer::onGraphicsReset() +{ + GLuint ids[MaxNumRenderObjects]; + glGenBuffers2(MaxNumRenderObjects, ids); + + for (int i = 0; i < MaxNumRenderObjects; ++i) { + renderObjects[i].itemId = -1; + renderObjects[i].chunk.vboId = ids[i]; + } +} diff --git a/src/client/renderer/ItemInHandRenderer.h b/src/client/renderer/ItemInHandRenderer.h new file mode 100755 index 0000000..22e89b3 --- /dev/null +++ b/src/client/renderer/ItemInHandRenderer.h @@ -0,0 +1,57 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__ItemInHandRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__ItemInHandRenderer_H__ + +//package net.minecraft.client.renderer; + +#include "TileRenderer.h" +#include "../renderer/RenderChunk.h" +#include "../../world/item/ItemInstance.h" + +class Minecraft; + +typedef struct RenderCall { + int itemId; + RenderChunk chunk; + std::string texture; + bool isFlat; +} RenderCall; + + +class ItemInHandRenderer +{ +public: + ItemInHandRenderer(Minecraft* mc); + + void tick(); + + void render(float a); + void renderItem(Mob* player, ItemInstance* item); + void renderScreenEffect(float a); + + void itemPlaced(); + void itemUsed(); + + void onGraphicsReset(); + +private: + void renderTex(float a, int tex); + void renderWater(float a); + void renderFire(float a); + +private: + int lastIconRendered; + int lastItemRendered; + int lastSlot; + ItemInstance item; + + Minecraft* mc; + //ItemInstance* selectedItem; + float height; + float oHeight; + TileRenderer tileRenderer; + + static const int MaxNumRenderObjects = 512; + RenderCall renderObjects[MaxNumRenderObjects]; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__ItemInHandRenderer_H__*/ diff --git a/src/client/renderer/LevelRenderer.cpp b/src/client/renderer/LevelRenderer.cpp new file mode 100755 index 0000000..2ccc821 --- /dev/null +++ b/src/client/renderer/LevelRenderer.cpp @@ -0,0 +1,1295 @@ +#include "LevelRenderer.h" + +#include "DirtyChunkSorter.h" +#include "DistanceChunkSorter.h" +#include "Chunk.h" +#include "TileRenderer.h" +#include "../Minecraft.h" +#include "../../util/Mth.h" +#include "../../world/entity/player/Player.h" +#include "../../world/level/tile/LevelEvent.h" +#include "../../world/level/tile/LeafTile.h" +#include "../../client/particle/ParticleEngine.h" +#include "../../client/particle/ParticleInclude.h" +#include "../sound/SoundEngine.h" +#include "culling/Culler.h" +#include "entity/EntityRenderDispatcher.h" +#include "../model/HumanoidModel.h" + +#include "GameRenderer.h" +#include "../../AppPlatform.h" +#include "../../util/PerfTimer.h" +#include "Textures.h" +#include "tileentity/TileEntityRenderDispatcher.h" +#include "../particle/BreakingItemParticle.h" + +#include "../../client/player/LocalPlayer.h" + +#ifdef GFX_SMALLER_CHUNKS +/* static */ const int LevelRenderer::CHUNK_SIZE = 8; +#else +/* static */ const int LevelRenderer::CHUNK_SIZE = 16; +#endif + +LevelRenderer::LevelRenderer( Minecraft* mc) +: mc(mc), + textures(mc->textures), + level(NULL), + cullStep(0), + + chunkLists(0), + xChunks(0), yChunks(0), zChunks(0), + + chunks(NULL), + sortedChunks(NULL), + + xMinChunk(0), yMinChunk(0), zMinChunk(0), + xMaxChunk(0), yMaxChunk(0), zMaxChunk(0), + + lastViewDistance(-1), + + noEntityRenderFrames(2), + totalEntities(0), + renderedEntities(0), + culledEntities(0), + + occlusionCheck(false), + totalChunks(0), offscreenChunks(0), renderedChunks(0), occludedChunks(0), emptyChunks(0), + + chunkFixOffs(0), + xOld(-9999), yOld(-9999), zOld(-9999), + + ticks(0), + skyList(0), starList(0), darkList(0), + tileRenderer(NULL), + destroyProgress(0) +{ +#ifdef OPENGL_ES + int maxChunksWidth = 2 * LEVEL_WIDTH / CHUNK_SIZE + 1; + numListsOrBuffers = maxChunksWidth * maxChunksWidth * (128/CHUNK_SIZE) * 3; + chunkBuffers = new GLuint[numListsOrBuffers]; + glGenBuffers2(numListsOrBuffers, chunkBuffers); + LOGI("numBuffers: %d\n", numListsOrBuffers); + //for (int i = 0; i < numListsOrBuffers; ++i) printf("bufId %d: %d\t", i, chunkBuffers[i]); + + glGenBuffers2(1, &skyBuffer); + generateSky(); +#else + int maxChunksWidth = 1024 / CHUNK_SIZE; + numListsOrBuffers = maxChunksWidth * maxChunksWidth * maxChunksWidth * 3; + chunkLists = glGenLists(numListsOrBuffers); +#endif +} + +LevelRenderer::~LevelRenderer() +{ + delete tileRenderer; + tileRenderer = NULL; + + deleteChunks(); + +#ifdef OPENGL_ES + glDeleteBuffers(numListsOrBuffers, chunkBuffers); + glDeleteBuffers(1, &skyBuffer); + delete[] chunkBuffers; +#else + glDeleteLists(numListsOrBuffers, chunkLists); +#endif +} + +void LevelRenderer::generateSky() { + Tesselator& t = Tesselator::instance; + float yy; + int s = 128; + int d = (256 / s) + 2; + yy = (float) (16); + t.begin(); + + skyVertexCount = 0; + for (int xx = -s * d; xx <= s * d; xx += s) { + for (int zz = -s * d; zz <= s * d; zz += s) { + t.vertex((float) xx + 0, yy, (float) zz + 0); + t.vertex((float)(xx + s), yy, (float) zz + 0); + t.vertex((float)(xx + s), yy, (float)(zz + s)); + t.vertex((float) xx + 0, yy, (float)(zz + s)); + //LOGI("x, z: %d, %d\n", xx, zz); + skyVertexCount += 4; + } + } + + t.end(true, skyBuffer); + //LOGI("skyvertexcount: %d\n", skyVertexCount); + //glEndList(); +} + +void LevelRenderer::setLevel( Level* level ) +{ + if (this->level != NULL) { + this->level->removeListener(this); + } + + xOld = -9999; + yOld = -9999; + zOld = -9999; + + EntityRenderDispatcher::getInstance()->setLevel(level); + EntityRenderDispatcher::getInstance()->setMinecraft(mc); + this->level = level; + + delete tileRenderer; + tileRenderer = new TileRenderer(level); + + if (level != NULL) { + level->addListener(this); + allChanged(); + } +} + +void LevelRenderer::allChanged() +{ + deleteChunks(); + + Tile::leaves->setFancy(mc->options.fancyGraphics); + Tile::leaves_carried->setFancy(mc->options.fancyGraphics); + lastViewDistance = mc->options.viewDistance; + + int dist = (512 >> 3) << (3 - lastViewDistance); + if (lastViewDistance <= 2 && mc->isPowerVR()) + dist = (int)((float)dist * 0.8f); + LOGI("last: %d, power: %d\n", lastViewDistance, mc->isPowerVR()); + + #if defined(RPI) + dist *= 0.6f; + #endif + + if (dist > 400) dist = 400; + /* + * if (Minecraft.FLYBY_MODE) { dist = 512 - CHUNK_SIZE * 2; } + */ + xChunks = (dist / LevelRenderer::CHUNK_SIZE) + 1; + yChunks = (128 / LevelRenderer::CHUNK_SIZE); + zChunks = (dist / LevelRenderer::CHUNK_SIZE) + 1; + chunksLength = xChunks * yChunks * zChunks; + LOGI("chunksLength: %d. Distance: %d\n", chunksLength, dist); + + chunks = new Chunk*[chunksLength]; + sortedChunks = new Chunk*[chunksLength]; + + int id = 0; + int count = 0; + + xMinChunk = 0; + yMinChunk = 0; + zMinChunk = 0; + xMaxChunk = xChunks; + yMaxChunk = yChunks; + zMaxChunk = zChunks; + dirtyChunks.clear(); + //renderableTileEntities.clear(); + + for (int x = 0; x < xChunks; x++) { + for (int y = 0; y < yChunks; y++) { + for (int z = 0; z < zChunks; z++) { + const int c = getLinearCoord(x, y, z); + Chunk* chunk = new Chunk(level, x * CHUNK_SIZE, y * CHUNK_SIZE, z * CHUNK_SIZE, CHUNK_SIZE, chunkLists + id, &chunkBuffers[id]); + + if (occlusionCheck) { + chunk->occlusion_id = 0;//occlusionCheckIds.get(count); + } + chunk->occlusion_querying = false; + chunk->occlusion_visible = true; + chunk->visible = true; + chunk->id = count++; + chunk->setDirty(); + + chunks[c] = chunk; + sortedChunks[c] = chunk; + dirtyChunks.push_back(chunk); + + id += 3; + } + } + } + + if (level != NULL) { + Entity* player = mc->cameraTargetPlayer; + if (player != NULL) { + this->resortChunks(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + DistanceChunkSorter distanceSorter(player); + std::sort(sortedChunks, sortedChunks + chunksLength, distanceSorter); + } + } + noEntityRenderFrames = 2; +} + +void LevelRenderer::deleteChunks() +{ + for (int z = 0; z < zChunks; ++z) + for (int y = 0; y < yChunks; ++y) + for (int x = 0; x < xChunks; ++x) { + int c = getLinearCoord(x, y, z); + delete chunks[c]; + } + + delete[] chunks; + chunks = NULL; + + delete[] sortedChunks; + sortedChunks = NULL; +} + +void LevelRenderer::resortChunks( int xc, int yc, int zc ) +{ + xc -= CHUNK_SIZE / 2; + //yc -= CHUNK_SIZE / 2; + zc -= CHUNK_SIZE / 2; + xMinChunk = INT_MAX; + yMinChunk = INT_MAX; + zMinChunk = INT_MAX; + xMaxChunk = INT_MIN; + yMaxChunk = INT_MIN; + zMaxChunk = INT_MIN; + + int dirty = 0; + + int s2 = xChunks * CHUNK_SIZE; + int s1 = s2 / 2; + + for (int x = 0; x < xChunks; x++) { + int xx = x * CHUNK_SIZE; + + int xOff = (xx + s1 - xc); + if (xOff < 0) xOff -= (s2 - 1); + xOff /= s2; + xx -= xOff * s2; + + if (xx < xMinChunk) xMinChunk = xx; + if (xx > xMaxChunk) xMaxChunk = xx; + + for (int z = 0; z < zChunks; z++) { + int zz = z * CHUNK_SIZE; + int zOff = (zz + s1 - zc); + if (zOff < 0) zOff -= (s2 - 1); + zOff /= s2; + zz -= zOff * s2; + + if (zz < zMinChunk) zMinChunk = zz; + if (zz > zMaxChunk) zMaxChunk = zz; + + for (int y = 0; y < yChunks; y++) { + int yy = y * CHUNK_SIZE; + if (yy < yMinChunk) yMinChunk = yy; + if (yy > yMaxChunk) yMaxChunk = yy; + + Chunk* chunk = chunks[(z * yChunks + y) * xChunks + x]; + bool wasDirty = chunk->isDirty(); + chunk->setPos(xx, yy, zz); + if (!wasDirty && chunk->isDirty()) { + dirtyChunks.push_back(chunk); + ++dirty; + } + } + } + } +} + +int LevelRenderer::render( Mob* player, int layer, float alpha ) +{ + if (mc->options.viewDistance != lastViewDistance) { + allChanged(); + } + + TIMER_PUSH("sortchunks"); + for (int i = 0; i < 10; i++) { + chunkFixOffs = (chunkFixOffs + 1) % chunksLength; + Chunk* c = chunks[chunkFixOffs]; + if (c->isDirty() && std::find(dirtyChunks.begin(), dirtyChunks.end(), c) == dirtyChunks.end()) { + dirtyChunks.push_back(c); + } + } + + if (layer == 0) { + totalChunks = 0; + offscreenChunks = 0; + occludedChunks = 0; + renderedChunks = 0; + emptyChunks = 0; + } + + float xOff = player->xOld + (player->x - player->xOld) * alpha; + float yOff = player->yOld + (player->y - player->yOld) * alpha; + float zOff = player->zOld + (player->z - player->zOld) * alpha; + + float xd = player->x - xOld; + float yd = player->y - yOld; + float zd = player->z - zOld; + if (xd * xd + yd * yd + zd * zd > 4 * 4) { + xOld = player->x; + yOld = player->y; + zOld = player->z; + + resortChunks(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + DistanceChunkSorter distanceSorter(player); + std::sort(sortedChunks, sortedChunks + chunksLength, distanceSorter); + } + + int count = 0; + if (occlusionCheck && !mc->options.anaglyph3d && layer == 0) { + int from = 0; + int to = 16; + //checkQueryResults(from, to); + for (int i = from; i < to; i++) { + sortedChunks[i]->occlusion_visible = true; + } + + count += renderChunks(from, to, layer, alpha); + + do { + from = to; + to = to * 2; + if (to > chunksLength) to = chunksLength; + + glDisable2(GL_TEXTURE_2D); + glDisable2(GL_LIGHTING); + glDisable2(GL_ALPHA_TEST); + glDisable2(GL_FOG); + + glColorMask(false, false, false, false); + glDepthMask(false); + //checkQueryResults(from, to); + glPushMatrix2(); + float xo = 0; + float yo = 0; + float zo = 0; + for (int i = from; i < to; i++) { + if (sortedChunks[i]->isEmpty()) { + sortedChunks[i]->visible = false; + continue; + } + if (!sortedChunks[i]->visible) { + sortedChunks[i]->occlusion_visible = true; + } + + if (sortedChunks[i]->visible && !sortedChunks[i]->occlusion_querying) { + float dist = Mth::sqrt(sortedChunks[i]->distanceToSqr(player)); + + int frequency = (int) (1 + dist / 128); + + if (ticks % frequency == i % frequency) { + Chunk* chunk = sortedChunks[i]; + float xt = (float) (chunk->x - xOff); + float yt = (float) (chunk->y - yOff); + float zt = (float) (chunk->z - zOff); + float xdd = xt - xo; + float ydd = yt - yo; + float zdd = zt - zo; + + if (xdd != 0 || ydd != 0 || zdd != 0) { + glTranslatef2(xdd, ydd, zdd); + xo += xdd; + yo += ydd; + zo += zdd; + } + + sortedChunks[i]->renderBB(); + sortedChunks[i]->occlusion_querying = true; + } + } + } + glPopMatrix2(); + glColorMask(true, true, true, true); + glDepthMask(true); + glEnable2(GL_TEXTURE_2D); + glEnable2(GL_ALPHA_TEST); + glEnable2(GL_FOG); + + count += renderChunks(from, to, layer, alpha); + + } while (to < chunksLength); + + } else { + TIMER_POP_PUSH("render"); + count += renderChunks(0, chunksLength, layer, alpha); + } + + TIMER_POP(); + return count; +} + +void LevelRenderer::renderDebug(const AABB& b, float a) const { + float x0 = b.x0; + float x1 = b.x1; + float y0 = b.y0; + float y1 = b.y1; + float z0 = b.z0; + float z1 = b.z1; + float u0 = 0, v0 = 0; + float u1 = 1, v1 = 1; + + glEnable2(GL_BLEND); + glBlendFunc2(GL_DST_COLOR, GL_SRC_COLOR); + glDisable2(GL_TEXTURE_2D); + glColor4f2(1, 1, 1, 1); + + textures->loadAndBindTexture("terrain.png"); + + Tesselator& t = Tesselator::instance; + t.begin(); + t.color(255, 255, 255, 255); + + t.offset(((Mob*)mc->player)->getPos(a).negated()); + + // up + t.vertexUV(x0, y0, z1, u0, v1); + t.vertexUV(x0, y0, z0, u0, v0); + t.vertexUV(x1, y0, z0, u1, v0); + t.vertexUV(x1, y0, z1, u1, v1); + + // down + t.vertexUV(x1, y1, z1, u1, v1); + t.vertexUV(x1, y1, z0, u1, v0); + t.vertexUV(x0, y1, z0, u0, v0); + t.vertexUV(x0, y1, z1, u0, v1); + + // north + t.vertexUV(x0, y1, z0, u1, v0); + t.vertexUV(x1, y1, z0, u0, v0); + t.vertexUV(x1, y0, z0, u0, v1); + t.vertexUV(x0, y0, z0, u1, v1); + + // south + t.vertexUV(x0, y1, z1, u0, v0); + t.vertexUV(x0, y0, z1, u0, v1); + t.vertexUV(x1, y0, z1, u1, v1); + t.vertexUV(x1, y1, z1, u1, v0); + + // west + t.vertexUV(x0, y1, z1, u1, v0); + t.vertexUV(x0, y1, z0, u0, v0); + t.vertexUV(x0, y0, z0, u0, v1); + t.vertexUV(x0, y0, z1, u1, v1); + + // east + t.vertexUV(x1, y0, z1, u0, v1); + t.vertexUV(x1, y0, z0, u1, v1); + t.vertexUV(x1, y1, z0, u1, v0); + t.vertexUV(x1, y1, z1, u0, v0); + + t.offset(0, 0, 0); + t.draw(); + + glEnable2(GL_TEXTURE_2D); + glDisable2(GL_BLEND); +} + +void LevelRenderer::render(const AABB& b) const +{ + Tesselator& t = Tesselator::instance; + + glColor4f2(1, 1, 1, 1); + + textures->loadAndBindTexture("terrain.png"); + + //t.begin(); + t.color(255, 255, 255, 255); + + t.offset(((Mob*)mc->player)->getPos(0).negated()); + + t.begin(GL_LINE_STRIP); + t.vertex(b.x0, b.y0, b.z0); + t.vertex(b.x1, b.y0, b.z0); + t.vertex(b.x1, b.y0, b.z1); + t.vertex(b.x0, b.y0, b.z1); + t.vertex(b.x0, b.y0, b.z0); + t.draw(); + + t.begin(GL_LINE_STRIP); + t.vertex(b.x0, b.y1, b.z0); + t.vertex(b.x1, b.y1, b.z0); + t.vertex(b.x1, b.y1, b.z1); + t.vertex(b.x0, b.y1, b.z1); + t.vertex(b.x0, b.y1, b.z0); + t.draw(); + + t.begin(GL_LINES); + t.vertex(b.x0, b.y0, b.z0); + t.vertex(b.x0, b.y1, b.z0); + t.vertex(b.x1, b.y0, b.z0); + t.vertex(b.x1, b.y1, b.z0); + t.vertex(b.x1, b.y0, b.z1); + t.vertex(b.x1, b.y1, b.z1); + t.vertex(b.x0, b.y0, b.z1); + t.vertex(b.x0, b.y1, b.z1); + + t.offset(0, 0, 0); + t.draw(); +} + +//void LevelRenderer::checkQueryResults( int from, int to ) +//{ +// for (int i = from; i < to; i++) { +// if (sortedChunks[i]->occlusion_querying) { +// // I wanna do a fast occusion culler here. +// } +// } +//} + +int LevelRenderer::renderChunks( int from, int to, int layer, float alpha ) +{ + _renderChunks.clear(); + int count = 0; + for (int i = from; i < to; i++) { + if (layer == 0) { + totalChunks++; + if (sortedChunks[i]->empty[layer]) emptyChunks++; + else if (!sortedChunks[i]->visible) offscreenChunks++; + else if (occlusionCheck && !sortedChunks[i]->occlusion_visible) occludedChunks++; + else renderedChunks++; + } + + if (!sortedChunks[i]->empty[layer] && sortedChunks[i]->visible && sortedChunks[i]->occlusion_visible) { + int list = sortedChunks[i]->getList(layer); + if (list >= 0) { + _renderChunks.push_back(sortedChunks[i]); + count++; + } + } + } + + Mob* player = mc->cameraTargetPlayer; + float xOff = player->xOld + (player->x - player->xOld) * alpha; + float yOff = player->yOld + (player->y - player->yOld) * alpha; + float zOff = player->zOld + (player->z - player->zOld) * alpha; + + //int lists = 0; + renderList.clear(); + renderList.init(xOff, yOff, zOff); + + for (unsigned int i = 0; i < _renderChunks.size(); ++i) { + Chunk* chunk = _renderChunks[i]; + #ifdef USE_VBO + renderList.addR(chunk->getRenderChunk(layer)); + #else + renderList.add(chunk->getList(layer)); + #endif + renderList.next(); + } + + renderSameAsLast(layer, alpha); + + return count; +} + +void LevelRenderer::renderSameAsLast( int layer, float alpha ) +{ + renderList.render(); +} + +void LevelRenderer::tick() +{ + ticks++; +} + +bool LevelRenderer::updateDirtyChunks( Mob* player, bool force ) +{ + bool slow = false; + + if (slow) { + DirtyChunkSorter dirtySorter(player); + std::sort(dirtyChunks.begin(), dirtyChunks.end(), dirtySorter); + int s = dirtyChunks.size() - 1; + int amount = dirtyChunks.size(); + for (int i = 0; i < amount; i++) { + Chunk* chunk = dirtyChunks[s-i]; + if (!force) { + if (chunk->distanceToSqr(player) > 16 * 16) { + if (chunk->visible) { + if (i >= MAX_VISIBLE_REBUILDS_PER_FRAME) return false; + } else { + if (i >= MAX_INVISIBLE_REBUILDS_PER_FRAME) return false; + } + } + } else { + if (!chunk->visible) continue; + } + chunk->rebuild(); + + dirtyChunks.erase( std::find(dirtyChunks.begin(), dirtyChunks.end(), chunk) ); // @q: s-i? + chunk->setClean(); + } + + return dirtyChunks.size() == 0; + } else { + const int count = 3; + + DirtyChunkSorter dirtyChunkSorter(player); + Chunk* toAdd[count] = {NULL}; + std::vector* nearChunks = NULL; + + int pendingChunkSize = dirtyChunks.size(); + int pendingChunkRemoved = 0; + + for (int i = 0; i < pendingChunkSize; i++) { + Chunk* chunk = dirtyChunks[i]; + + if (!force) { + if (chunk->distanceToSqr(player) > 1024.0f) { + int index; + + // is this chunk in the closest ? + for (index = 0; index < count; index++) { + if (toAdd[index] != NULL && dirtyChunkSorter(toAdd[index], chunk) == false) { + break; + } + } + + index--; + + if (index > 0) { + int x = index; + while (--x != 0) { + toAdd[x - 1] = toAdd[x]; + } + toAdd[index] = chunk; + } + + continue; + } + } else if (!chunk->visible) { + continue; + } + + // chunk is very close -- always render + + if (nearChunks == NULL) { + nearChunks = new std::vector(); + } + + pendingChunkRemoved++; + nearChunks->push_back(chunk); + dirtyChunks[i] = NULL; + } + + // if there are nearby chunks that need to be prepared for + // rendering, sort them and then process them + static const float MaxFrameTime = 1.0f / 100.0f; + Stopwatch chunkWatch; + chunkWatch.start(); + + if (nearChunks != NULL) { + if (nearChunks->size() > 1) { + std::sort(nearChunks->begin(), nearChunks->end(), dirtyChunkSorter); + } + + for (int i = nearChunks->size() - 1; i >= 0; i--) { + Chunk* chunk = (*nearChunks)[i]; + chunk->rebuild(); + chunk->setClean(); + } + delete nearChunks; + } + + // render the nearest chunks (farther than 1024 units away) + int secondaryRemoved = 0; + + for (int i = count - 1; i >= 0; i--) { + Chunk* chunk = toAdd[i]; + if (chunk != NULL) { + + float ttt = chunkWatch.stopContinue(); + if (ttt >= MaxFrameTime) { + //LOGI("Too much work, I quit2!\n"); + break; + } + + if (!chunk->visible && i != count - 1) { + // escape early if chunks aren't ready + toAdd[i] = NULL; + toAdd[0] = NULL; + break; + } + toAdd[i]->rebuild(); + toAdd[i]->setClean(); + secondaryRemoved++; + } + } + + // compact by removing nulls + int cursor = 0; + int target = 0; + int arraySize = dirtyChunks.size(); + while (cursor != arraySize) { + Chunk* chunk = dirtyChunks[cursor]; + if (chunk != NULL) { + bool remove = false; + for (int i = 0; i < count && !remove; i++) + if (chunk == toAdd[i]) { + remove = true; + } + + if (!remove) { + //if (chunk == toAdd[0] || chunk == toAdd[1] || chunk == toAdd[2]) { + // ; // this chunk was rendered and should be removed + //} else { + if (target != cursor) { + dirtyChunks[target] = chunk; + } + target++; + } + } + cursor++; + } + + // trim + if (cursor > target) + dirtyChunks.erase(dirtyChunks.begin() + target, dirtyChunks.end()); + + return pendingChunkSize == (pendingChunkRemoved + secondaryRemoved); + } +} + +void LevelRenderer::renderHit( Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a ) +{ + if (mode == 0) { + if (destroyProgress > 0) { + Tesselator& t = Tesselator::instance; + glEnable2(GL_BLEND); + glBlendFunc2(GL_DST_COLOR, GL_SRC_COLOR); + + textures->loadAndBindTexture("terrain.png"); + glPushMatrix2(); + + int tileId = level->getTile(h.x, h.y, h.z); + Tile* tile = tileId > 0 ? Tile::tiles[tileId] : NULL; + //glDisable2(GL_ALPHA_TEST); + + glPolygonOffset(-3.0f, -3.0f); + glEnable2(GL_POLYGON_OFFSET_FILL); + t.begin(); + t.color(1.0f, 1.0f, 1.0f, 0.5f); + t.noColor(); + float xo = player->xOld + (player->x - player->xOld) * a; + float yo = player->yOld + (player->y - player->yOld) * a; + float zo = player->zOld + (player->z - player->zOld) * a; + + t.offset(-xo, -yo, -zo); + //t.noColor(); + + if (tile == NULL) tile = Tile::rock; + const int progress = (int) (destroyProgress * 10); + tileRenderer->tesselateInWorld(tile, h.x, h.y, h.z, 15 * 16 + progress); + + t.draw(); + t.offset(0, 0, 0); + glPolygonOffset(0.0f, 0.0f); + glDisable2(GL_POLYGON_OFFSET_FILL); + //glDisable2(GL_ALPHA_TEST); + glDisable2(GL_BLEND); + + glDepthMask(true); + glPopMatrix2(); + } + } + //else if (inventoryItem != NULL) { + // glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + // float br = ((float) (util.Mth::sin(System.currentTimeMillis() / 100.0f)) * 0.2f + 0.8f); + // glColor4f2(br, br, br, ((float) (util.Mth::sin(System.currentTimeMillis() / 200.0f)) * 0.2f + 0.5f)); + + // int id = textures.loadTexture("terrain.png"); + // glBindTexture2(GL_TEXTURE_2D, id); + // int x = h.x; + // int y = h.y; + // int z = h.z; + // if (h.f == 0) y--; + // if (h.f == 1) y++; + // if (h.f == 2) z--; + // if (h.f == 3) z++; + // if (h.f == 4) x--; + // if (h.f == 5) x++; + // /* + // * t.begin(); t.noColor(); Tile.tiles[tileType].tesselate(level, x, + // * y, z, t); t.end(); + // */ + // } +} + +void LevelRenderer::renderHitOutline( Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a ) +{ + if (mode == 0 && h.type == TILE) { + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glColor4f2(0, 0, 0, 0.4f); + glLineWidth(1.0f); + glDisable2(GL_TEXTURE_2D); + glDepthMask(false); + float ss = 0.002f; + int tileId = level->getTile(h.x, h.y, h.z); + + if (tileId > 0) { + Tile::tiles[tileId]->updateShape(level, h.x, h.y, h.z); + float xo = player->xOld + (player->x - player->xOld) * a; + float yo = player->yOld + (player->y - player->yOld) * a; + float zo = player->zOld + (player->z - player->zOld) * a; + render(Tile::tiles[tileId]->getTileAABB(level, h.x, h.y, h.z).grow(ss, ss, ss).cloneMove(-xo, -yo, -zo)); + } + glDepthMask(true); + glEnable2(GL_TEXTURE_2D); + glDisable2(GL_BLEND); + } +} + +void LevelRenderer::setDirty( int x0, int y0, int z0, int x1, int y1, int z1 ) +{ + int _x0 = Mth::intFloorDiv(x0, CHUNK_SIZE); + int _y0 = Mth::intFloorDiv(y0, CHUNK_SIZE); + int _z0 = Mth::intFloorDiv(z0, CHUNK_SIZE); + int _x1 = Mth::intFloorDiv(x1, CHUNK_SIZE); + int _y1 = Mth::intFloorDiv(y1, CHUNK_SIZE); + int _z1 = Mth::intFloorDiv(z1, CHUNK_SIZE); + + for (int x = _x0; x <= _x1; x++) { + int xx = x % xChunks; + if (xx < 0) xx += xChunks; + for (int y = _y0; y <= _y1; y++) { + int yy = y % yChunks; + if (yy < 0) yy += yChunks; + for (int z = _z0; z <= _z1; z++) { + int zz = z % zChunks; + if (zz < 0) zz += zChunks; + + int p = ((zz) * yChunks + (yy)) * xChunks + (xx); + Chunk* chunk = chunks[p]; + if (!chunk->isDirty()) { + dirtyChunks.push_back(chunk); + chunk->setDirty(); + } + } + } + } +} + +void LevelRenderer::tileChanged( int x, int y, int z) +{ + setDirty(x - 1, y - 1, z - 1, x + 1, y + 1, z + 1); +} + + +void LevelRenderer::setTilesDirty( int x0, int y0, int z0, int x1, int y1, int z1 ) +{ + setDirty(x0 - 1, y0 - 1, z0 - 1, x1 + 1, y1 + 1, z1 + 1); +} + + +void LevelRenderer::cull( Culler* culler, float a ) +{ + for (int i = 0; i < chunksLength; i++) { + if (!chunks[i]->isEmpty()) { + if (!chunks[i]->visible || ((i + cullStep) & 15) == 0) { + chunks[i]->cull(culler); + } + } + } + cullStep++; +} + +void LevelRenderer::skyColorChanged() +{ + for (int i = 0; i < chunksLength; i++) { + if (chunks[i]->skyLit) { + if (!chunks[i]->isDirty()) { + dirtyChunks.push_back(chunks[i]); + chunks[i]->setDirty(); + } + } + } +} + +bool entityRenderPredicate(const Entity* a, const Entity* b) { + return a->entityRendererId < b->entityRendererId; +} + +void LevelRenderer::renderEntities(Vec3 cam, Culler* culler, float a) { + if (noEntityRenderFrames > 0) { + noEntityRenderFrames--; + return; + } + + TIMER_PUSH("prepare"); + TileEntityRenderDispatcher::getInstance()->prepare(level, textures, mc->font, mc->cameraTargetPlayer, a); + EntityRenderDispatcher::getInstance()->prepare(level, mc->font, mc->cameraTargetPlayer, &mc->options, a); + + totalEntities = 0; + renderedEntities = 0; + culledEntities = 0; + + Entity* player = mc->cameraTargetPlayer; + EntityRenderDispatcher::xOff = TileEntityRenderDispatcher::xOff = (player->xOld + (player->x - player->xOld) * a); + EntityRenderDispatcher::yOff = TileEntityRenderDispatcher::yOff = (player->yOld + (player->y - player->yOld) * a); + EntityRenderDispatcher::zOff = TileEntityRenderDispatcher::zOff = (player->zOld + (player->z - player->zOld) * a); + + glEnableClientState2(GL_VERTEX_ARRAY); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + + TIMER_POP_PUSH("entities"); + const EntityList& entities = level->getAllEntities(); + totalEntities = entities.size(); + if (totalEntities > 0) { + Entity** toRender = new Entity*[totalEntities]; + for (int i = 0; i < totalEntities; i++) { + Entity* entity = entities[i]; + + if (entity->shouldRender(cam) && culler->isVisible(entity->bb)) + { + if (entity == mc->cameraTargetPlayer && mc->options.thirdPersonView == 0 && mc->cameraTargetPlayer->isPlayer() && !((Player*)mc->cameraTargetPlayer)->isSleeping()) continue; + if (entity == mc->cameraTargetPlayer && !mc->options.thirdPersonView) + continue; + if (!level->hasChunkAt(Mth::floor(entity->x), Mth::floor(entity->y), Mth::floor(entity->z))) + continue; + + toRender[renderedEntities++] = entity; + //EntityRenderDispatcher::getInstance()->render(entity, a); + } + } + + if (renderedEntities > 0) { + std::sort(&toRender[0], &toRender[renderedEntities], entityRenderPredicate); + for (int i = 0; i < renderedEntities; ++i) { + EntityRenderDispatcher* disp = EntityRenderDispatcher::getInstance(); + disp->render(toRender[i], a); + } + } + + delete[] toRender; + } + + TIMER_POP_PUSH("tileentities"); + for (unsigned int i = 0; i < level->tileEntities.size(); i++) { + TileEntityRenderDispatcher::getInstance()->render(level->tileEntities[i], a); + } + + glDisableClientState2(GL_VERTEX_ARRAY); + glDisableClientState2(GL_TEXTURE_COORD_ARRAY); + + TIMER_POP(); +} + +std::string LevelRenderer::gatherStats1() { + std::stringstream ss; + ss << "C: " << renderedChunks << "/" << totalChunks << ". F: " << offscreenChunks << ", O: " << occludedChunks << ", E: " << emptyChunks << "\n"; + return ss.str(); +} + +// +// /*public*/ std::string gatherStats2() { +// return "E: " + renderedEntities + "/" + totalEntities + ". B: " + culledEntities + ", I: " + ((totalEntities - culledEntities) - renderedEntities); +// } +// +// int[] toRender = new int[50000]; +// IntBuffer resultBuffer = MemoryTracker.createIntBuffer(64); + +void LevelRenderer::renderSky(float alpha) { + if (mc->level->dimension->foggy) return; + + glDisable2(GL_TEXTURE_2D); + Vec3 sc = level->getSkyColor(mc->cameraTargetPlayer, alpha); + float sr = (float) sc.x; + float sg = (float) sc.y; + float sb = (float) sc.z;// + 0.5f; + + if (mc->options.anaglyph3d) { + float srr = (sr * 30.0f + sg * 59.0f + sb * 11.0f) / 100.0f; + float sgg = (sr * 30.0f + sg * 70.0f) / (100.0f); + float sbb = (sr * 30.0f + sb * 70.0f) / (100.0f); + + sr = srr; + sg = sgg; + sb = sbb; + } + glColor4f2(sr, sg, Mth::Min(1.0f, sb), 1); + + //Tesselator& t = Tesselator::instance; + + glEnable2(GL_FOG); + glColor4f2(sr, sg, sb, 1.0f); + +#ifdef OPENGL_ES + drawArrayVT(skyBuffer, skyVertexCount); +#endif + glEnable2(GL_TEXTURE_2D); +} + +void LevelRenderer::renderClouds( float alpha ) { + //if (!mc->level->dimension->isNaturalDimension()) return; + glEnable2(GL_TEXTURE_2D); + glDisable(GL_CULL_FACE); + float yOffs = (float) (mc->player->yOld + (mc->player->y - mc->player->yOld) * alpha); + int s = 32; + int d = 256 / s; + Tesselator& t = Tesselator::instance; + + //glBindTexture(GL_TEXTURE_2D, texturesloadTexture("/environment/clouds.png")); + textures->loadAndBindTexture("environment/clouds.png"); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + Vec3 cc = level->getCloudColor(alpha); + float cr = (float) cc.x; + float cg = (float) cc.y; + float cb = (float) cc.z; + + float scale = 1 / 2048.0f; + + float time = (ticks + alpha); + float xo = mc->player->xo + (mc->player->x - mc->player->xo) * alpha + time * 0.03f; + float zo = mc->player->zo + (mc->player->z - mc->player->zo) * alpha; + int xOffs = Mth::floor(xo / 2048); + int zOffs = Mth::floor(zo / 2048); + xo -= xOffs * 2048; + zo -= zOffs * 2048; + + float yy = /*level.dimension.getCloudHeight()*/ 128 - yOffs + 0.33f;//mc->player->y + 1; + float uo = (float) (xo * scale); + float vo = (float) (zo * scale); + t.begin(); + + t.color(cr, cg, cb, 0.8f); + for (int xx = -s * d; xx < +s * d; xx += s) { + for (int zz = -s * d; zz < +s * d; zz += s) { + t.vertexUV((float)xx, yy, (float)zz + s, xx * scale + uo, (zz + s) * scale + vo); + t.vertexUV((float)xx + s, yy, (float)zz + s, (xx + s) * scale + uo, (zz + s) * scale + vo); + t.vertexUV((float)xx + s, yy, (float)zz, (xx + s) * scale + uo, zz * scale + vo); + t.vertexUV((float)xx, yy, (float)zz, xx * scale + uo, zz * scale + vo); + } + } + t.endOverrideAndDraw(); + glColor4f(1, 1, 1, 1.0f); + glDisable(GL_BLEND); + glEnable(GL_CULL_FACE); +} + +void LevelRenderer::playSound(const std::string& name, float x, float y, float z, float volume, float pitch) { + // @todo: deny sounds here if sound is off (rather than waiting 'til SoundEngine) + float dd = 16; + + if (volume > 1) dd *= volume; + if (mc->cameraTargetPlayer->distanceToSqr(x, y, z) < dd * dd) { + mc->soundEngine->play(name, x, y, z, volume, pitch); + } +} + +void LevelRenderer::addParticle(const std::string& name, float x, float y, float z, float xa, float ya, float za, int data) { + + float xd = mc->cameraTargetPlayer->x - x; + float yd = mc->cameraTargetPlayer->y - y; + float zd = mc->cameraTargetPlayer->z - z; + float distanceSquared = xd * xd + yd * yd + zd * zd; + + //Particle* p = NULL; + //if (name == "hugeexplosion") p = new HugeExplosionSeedParticle(level, x, y, z, xa, ya, za); + //else if (name == "largeexplode") p = new HugeExplosionParticle(textures, level, x, y, z, xa, ya, za); + + //if (p) { + // if (distanceSquared < 32 * 32) { + // mc->particleEngine->add(p); + // } else { delete p; } + // return; + //} + + const float particleDistance = 16; + if (distanceSquared > particleDistance * particleDistance) return; + + //static Stopwatch sw; + //sw.start(); + + if (name == "bubble") mc->particleEngine->add(new BubbleParticle(level, x, y, z, xa, ya, za)); + else if (name == "crit") mc->particleEngine->add(new CritParticle2(level, x, y, z, xa, ya, za)); + else if (name == "smoke") mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za)); + //else if (name == "note") mc->particleEngine->add(new NoteParticle(level, x, y, z, xa, ya, za)); + else if (name == "explode") mc->particleEngine->add(new ExplodeParticle(level, x, y, z, xa, ya, za)); + else if (name == "flame") mc->particleEngine->add(new FlameParticle(level, x, y, z, xa, ya, za)); + else if (name == "lava") mc->particleEngine->add(new LavaParticle(level, x, y, z)); + //else if (name == "splash") mc->particleEngine->add(new SplashParticle(level, x, y, z, xa, ya, za)); + else if (name == "largesmoke") mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f)); + else if (name == "reddust") mc->particleEngine->add(new RedDustParticle(level, x, y, z, xa, ya, za)); + else if (name == "iconcrack") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data])); + else if (name == "snowballpoof") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::snowBall)); + //else if (name == "snowballpoof") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::snowBall)); + //else if (name == "slime") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::slimeBall)); + //else if (name == "heart") mc->particleEngine->add(new HeartParticle(level, x, y, z, xa, ya, za)); + + //sw.stop(); + //sw.printEvery(50, "add-particle-string"); +} + +/* +void LevelRenderer::addParticle(ParticleType::Id name, float x, float y, float z, float xa, float ya, float za, int data) { + float xd = mc->cameraTargetPlayer->x - x; + float yd = mc->cameraTargetPlayer->y - y; + float zd = mc->cameraTargetPlayer->z - z; + + const float particleDistance = 16; + if (xd * xd + yd * yd + zd * zd > particleDistance * particleDistance) return; + + //static Stopwatch sw; + //sw.start(); + + //Particle* p = NULL; + + if (name == ParticleType::bubble) mc->particleEngine->add( new BubbleParticle(level, x, y, z, xa, ya, za) ); + else if (name == ParticleType::crit) mc->particleEngine->add(new CritParticle2(level, x, y, z, xa, ya, za) ); + else if (name == ParticleType::smoke) mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za) ); + else if (name == ParticleType::explode) mc->particleEngine->add( new ExplodeParticle(level, x, y, z, xa, ya, za) ); + else if (name == ParticleType::flame) mc->particleEngine->add( new FlameParticle(level, x, y, z, xa, ya, za) ); + else if (name == ParticleType::lava) mc->particleEngine->add( new LavaParticle(level, x, y, z) ); + else if (name == ParticleType::largesmoke) mc->particleEngine->add( new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f) ); + else if (name == ParticleType::reddust) mc->particleEngine->add( new RedDustParticle(level, x, y, z, xa, ya, za) ); + else if (name == ParticleType::iconcrack) mc->particleEngine->add( new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]) ); + + //switch (name) { + // case ParticleType::bubble: p = new BubbleParticle(level, x, y, z, xa, ya, za); break; + // case ParticleType::crit: p = new CritParticle2(level, x, y, z, xa, ya, za); break; + // case ParticleType::smoke: p = new SmokeParticle(level, x, y, z, xa, ya, za); break; + // //case ParticleType::note: p = new NoteParticle(level, x, y, z, xa, ya, za); break; + // case ParticleType::explode: p = new ExplodeParticle(level, x, y, z, xa, ya, za); break; + // case ParticleType::flame: p = new FlameParticle(level, x, y, z, xa, ya, za); break; + // case ParticleType::lava: p = new LavaParticle(level, x, y, z); break; + // //case ParticleType::splash: p = new SplashParticle(level, x, y, z, xa, ya, za); break; + // case ParticleType::largesmoke: p = new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f); break; + // case ParticleType::reddust: p = new RedDustParticle(level, x, y, z, xa, ya, za); break; + // case ParticleType::iconcrack: p = new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]); break; + // //case ParticleType::snowballpoof: p = new BreakingItemParticle(level, x, y, z, Item::snowBall); break; + // //case ParticleType::slime: p = new BreakingItemParticle(level, x, y, z, Item::slimeBall); break; + // //case ParticleType::heart: p = new HeartParticle(level, x, y, z, xa, ya, za); break; + // default: + // LOGW("Couldn't find particle of type: %d\n", name); + // break; + //} + //if (p) { + // mc->particleEngine->add(p); + //} + + //sw.stop(); + //sw.printEvery(50, "add-particle-enum"); +} +*/ + +void LevelRenderer::renderHitSelect( Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a ) +{ + //if (h.type == TILE) LOGI("type: %s @ (%d, %d, %d)\n", Tile::tiles[level->getTile(h.x, h.y, h.z)]->getDescriptionId().c_str(), h.x, h.y, h.z); + + if (mode == 0) { + + Tesselator& t = Tesselator::instance; + glEnable2(GL_BLEND); + glDisable2(GL_TEXTURE_2D); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE); + glBlendFunc2(GL_DST_COLOR, GL_SRC_COLOR); + glEnable2(GL_DEPTH_TEST); + + textures->loadAndBindTexture("terrain.png"); + + int tileId = level->getTile(h.x, h.y, h.z); + Tile* tile = tileId > 0 ? Tile::tiles[tileId] : NULL; + glDisable2(GL_ALPHA_TEST); + + //LOGI("block: %d - %d (%s)\n", tileId, level->getData(h.x, h.y, h.z), tile==NULL?"null" : tile->getDescriptionId().c_str() ); + + const float br = 0.65f; + glColor4f2(br * 1.0f, br * 1.0f, br * 1.0f, br * 1.0f); + glPushMatrix2(); + + //glPolygonOffset(-.3f, -.3f); + glPolygonOffset(-1.f, -1.f); //Implementation dependent units + glEnable2(GL_POLYGON_OFFSET_FILL); + float xo = player->xOld + (player->x - player->xOld) * a; + float yo = player->yOld + (player->y - player->yOld) * a; + float zo = player->zOld + (player->z - player->zOld) * a; + + t.begin(); + t.offset(-xo, -yo, -zo); + t.noColor(); + + if (tile == NULL) tile = Tile::rock; + tileRenderer->tesselateInWorld(tile, h.x, h.y, h.z); + + t.draw(); + t.offset(0, 0, 0); + glPolygonOffset(0.0f, 0.0f); + + glDisable2(GL_POLYGON_OFFSET_FILL); + glEnable2(GL_TEXTURE_2D); + + glDepthMask(true); + glPopMatrix2(); + + glEnable2(GL_ALPHA_TEST); + glDisable2(GL_BLEND); + } +} + +void LevelRenderer::onGraphicsReset() +{ + generateSky(); + + // Get new buffers +#ifdef OPENGL_ES + glGenBuffers2(numListsOrBuffers, chunkBuffers); +#else + chunkLists = glGenLists(numListsOrBuffers); +#endif + + // Rebuild + allChanged(); +} + +void LevelRenderer::entityAdded( Entity* entity ) +{ + if (!entity->isPlayer()) + return; + + // Hack to (hopefully) get the players to show + EntityRenderDispatcher::getInstance()->onGraphicsReset(); +} + +int _t_keepPic = -1; + +void LevelRenderer::takePicture( TripodCamera* cam, Entity* entity ) +{ + // Push old values + Mob* oldCameraEntity = mc->cameraTargetPlayer; + bool hideGui = mc->options.hideGui; + bool thirdPerson = mc->options.thirdPersonView; + + // @huge @attn: This is highly illegal, super temp! + mc->cameraTargetPlayer = (Mob*)cam; + mc->options.hideGui = true; + mc->options.thirdPersonView = false; + + mc->gameRenderer->renderLevel(0); + + // Pop values back + mc->cameraTargetPlayer = oldCameraEntity; + mc->options.hideGui = hideGui; + mc->options.thirdPersonView = thirdPerson; + + _t_keepPic = -1; + + // Save image + static char filename[256]; + sprintf(filename, "%s/games/com.mojang/img_%.4d.jpg", mc->externalStoragePath.c_str(), getTimeMs()); + + mc->platform()->saveScreenshot(filename, mc->width, mc->height); +} + +void LevelRenderer::levelEvent(Player* player, int type, int x, int y, int z, int data) { + switch (type) { + case LevelEvent::SOUND_OPEN_DOOR: + if (Mth::random() < 0.5f) { + level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "random.door_open", 1, level->random.nextFloat() * 0.1f + 0.9f); + } else { + level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "random.door_close", 1, level->random.nextFloat() * 0.1f + 0.9f); + } + break; + } +} diff --git a/src/client/renderer/LevelRenderer.h b/src/client/renderer/LevelRenderer.h new file mode 100755 index 0000000..df43de1 --- /dev/null +++ b/src/client/renderer/LevelRenderer.h @@ -0,0 +1,130 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__LevelRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__LevelRenderer_H__ + +//package net.minecraft.client.renderer; + +#include "../../world/level/LevelListener.h" +#include "../../world/phys/Vec3.h" +#include "RenderList.h" +#include "gles.h" +#include + +class Minecraft; +class Textures; +class Culler; +class Chunk; +class TileRenderer; +class Level; +class Mob; +class Player; +class HitResult; +class AABB; +class TripodCamera; + +class LevelRenderer: public LevelListener +{ +public: + static const int CHUNK_SIZE; + static const int MAX_VISIBLE_REBUILDS_PER_FRAME = 3; + static const int MAX_INVISIBLE_REBUILDS_PER_FRAME = 1; + + float xOld; + float yOld; + float zOld; + float destroyProgress; + + LevelRenderer(Minecraft* mc); + ~LevelRenderer(); + + void setLevel(Level* level); + void allChanged(); + + int render(Mob* player, int layer, float alpha); + void renderDebug(const AABB& b, float a) const; + + void renderSky(float alpha); + void renderClouds(float alpha); + void renderEntities(Vec3 cam, Culler* culler, float a); + void renderSameAsLast(int layer, float alpha); + void renderHit(Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a); + void renderHitOutline(Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a); + void renderHitSelect(Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a); + void entityAdded(Entity* entity); + + void tick(); + bool updateDirtyChunks(Mob* player, bool force); + void setDirty(int x0, int y0, int z0, int x1, int y1, int z1); + void tileChanged(int x, int y, int z); + void setTilesDirty(int x0, int y0, int z0, int x1, int y1, int z1); + void cull(Culler* culler, float a); + void skyColorChanged(); + + //void addParticle(ParticleType::Id name, float x, float y, float z, float xa, float ya, float za, int data); + void addParticle(const std::string& name, float x, float y, float z, float xa, float ya, float za, int data); + void playSound(const std::string& name, float x, float y, float z, float volume, float pitch); + void takePicture(TripodCamera* cam, Entity* entity); + + void levelEvent(Player* source, int type, int x, int y, int z, int data); + + std::string gatherStats1(); + + void render(const AABB& b) const; + void onGraphicsReset(); +private: + void generateSky(); + + int renderChunks(int from, int to, int layer, float alpha); + void resortChunks(int xc, int yc, int zc); + void deleteChunks(); + //void checkQueryResults(int from, int to); + __inline int getLinearCoord(int x, int y, int z) { + return (z * yChunks + y) * xChunks + x; + } + int noEntityRenderFrames; + int totalEntities; + int renderedEntities; + int culledEntities; + + std::vector _renderChunks; + + int cullStep; + //static const int renderListsLength = 4; + RenderList renderList;//[renderListsLength]; + + int totalChunks, offscreenChunks, occludedChunks, renderedChunks, emptyChunks; + int chunkFixOffs; + + int xMinChunk, yMinChunk, zMinChunk; + int xMaxChunk, yMaxChunk, zMaxChunk; + + Level* level; + std::vector dirtyChunks; + + Chunk** chunks; + Chunk** sortedChunks; + int chunksLength; +public: + TileRenderer* tileRenderer; +private: + int xChunks, yChunks, zChunks; + int chunkLists; + Minecraft* mc; + + bool occlusionCheck; + int lastViewDistance; + + int ticks; + int starList, skyList, darkList; + + int numListsOrBuffers; + GLuint* chunkBuffers; + GLuint skyBuffer; + int skyVertexCount; + +// /*public*/ std::vector renderableTileEntities; + Textures* textures; +// /*private*/ TileRenderer tileRenderer; +// /*private*/ IntBuffer occlusionCheckIds; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__LevelRenderer_H__*/ diff --git a/src/client/renderer/RenderChunk.cpp b/src/client/renderer/RenderChunk.cpp new file mode 100755 index 0000000..a676ea8 --- /dev/null +++ b/src/client/renderer/RenderChunk.cpp @@ -0,0 +1,17 @@ +#include "RenderChunk.h" + +int RenderChunk::runningId = 0; + +RenderChunk::RenderChunk() : + vboId(-1), + vertexCount(0) +{ + id = ++runningId; +} + +RenderChunk::RenderChunk( GLuint vboId_, int vertexCount_ ) +: vboId(vboId_), + vertexCount(vertexCount_) +{ + id = ++runningId; +} diff --git a/src/client/renderer/RenderChunk.h b/src/client/renderer/RenderChunk.h new file mode 100755 index 0000000..dc582e4 --- /dev/null +++ b/src/client/renderer/RenderChunk.h @@ -0,0 +1,24 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__RenderChunk_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__RenderChunk_H__ + +//package net.minecraft.client.renderer; + +#include "gles.h" +#include "../../world/phys/Vec3.h" + +class RenderChunk +{ +public: + RenderChunk(); + RenderChunk(GLuint vboId_, int vertexCount_); + + GLuint vboId; + GLsizei vertexCount; + int id; + Vec3 pos; + +private: + static int runningId; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__RenderChunk_H__*/ diff --git a/src/client/renderer/RenderChunkHandler.h b/src/client/renderer/RenderChunkHandler.h new file mode 100755 index 0000000..f31f345 --- /dev/null +++ b/src/client/renderer/RenderChunkHandler.h @@ -0,0 +1,23 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__RenderChunkHandler_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__RenderChunkHandler_H__ + +#include +#include "RenderChunk.h" + +typedef std::vector ChunkList; + +class RenderChunkHandler +{ +public: + int vboCount; + ChunkList chunks; + + RenderChunkHandler() { + vboCount = Tesselator::getVboCount(); + } + + void render() { + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__RenderChunkHandler_H__*/ diff --git a/src/client/renderer/RenderList.cpp b/src/client/renderer/RenderList.cpp new file mode 100755 index 0000000..1dfa95f --- /dev/null +++ b/src/client/renderer/RenderList.cpp @@ -0,0 +1,96 @@ +#include "RenderList.h" + +#include "gles.h" +#include "RenderChunk.h" +#include "Tesselator.h" + + +RenderList::RenderList() + : inited(false), + rendered(false) +{ + lists = new int[MAX_NUM_OBJECTS]; + rlists = new RenderChunk[MAX_NUM_OBJECTS]; + + for (int i = 0; i < MAX_NUM_OBJECTS; ++i) + rlists[i].vboId = -1; +} + +RenderList::~RenderList() { + delete[] lists; + delete[] rlists; +} + +void RenderList::init(float xOff, float yOff, float zOff) { + inited = true; + listIndex = 0; + + this->xOff = (float) xOff; + this->yOff = (float) yOff; + this->zOff = (float) zOff; +} + +void RenderList::add(int list) { + lists[listIndex] = list; + if (listIndex == MAX_NUM_OBJECTS) /*lists.remaining() == 0)*/ render(); +} + +void RenderList::addR(const RenderChunk& chunk) { + rlists[listIndex] = chunk; +} + +void RenderList::render() { + + if (!inited) return; + if (!rendered) { + bufferLimit = listIndex; + listIndex = 0; + rendered = true; + } + if (listIndex < bufferLimit) { + glPushMatrix2(); + glTranslatef2(-xOff, -yOff, -zOff); + + #ifndef USE_VBO + glCallLists(bufferLimit, GL_UNSIGNED_INT, lists); + #else + renderChunks(); + #endif/*!USE_VBO*/ + + glPopMatrix2(); + } +} + +void RenderList::renderChunks() { + //glDisableClientState2(GL_NORMAL_ARRAY); + glEnableClientState2(GL_VERTEX_ARRAY); + glEnableClientState2(GL_COLOR_ARRAY); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + + const int Stride = VertexSizeBytes; + + for (int i = 0; i < bufferLimit; ++i) { + RenderChunk& rc = rlists[i]; + + glPushMatrix2(); + glTranslatef2(rc.pos.x, rc.pos.y, rc.pos.z); + glBindBuffer2(GL_ARRAY_BUFFER, rc.vboId); + + glVertexPointer2 (3, GL_FLOAT, Stride, 0); + glTexCoordPointer2 (2, GL_FLOAT, Stride, (GLvoid*) (3 * 4)); + glColorPointer2 (4, GL_UNSIGNED_BYTE, Stride, (GLvoid*) (5 * 4)); + + glDrawArrays2(GL_TRIANGLES, 0, rc.vertexCount); + + glPopMatrix2(); + } + + glDisableClientState2(GL_VERTEX_ARRAY); + glDisableClientState2(GL_COLOR_ARRAY); + glDisableClientState2(GL_TEXTURE_COORD_ARRAY); +} + +void RenderList::clear() { + inited = false; + rendered = false; +} diff --git a/src/client/renderer/RenderList.h b/src/client/renderer/RenderList.h new file mode 100755 index 0000000..9a9d005 --- /dev/null +++ b/src/client/renderer/RenderList.h @@ -0,0 +1,41 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__RenderList_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__RenderList_H__ + +//package net.minecraft.client.renderer; + +class RenderChunk; + +class RenderList +{ + static const int MAX_NUM_OBJECTS = 1024 * 3; + +public: + RenderList(); + ~RenderList(); + + void init(float xOff, float yOff, float zOff); + + void add(int list); + void addR(const RenderChunk& chunk); + + __inline void next() { ++listIndex; } + + void render(); + void renderChunks(); + + void clear(); + + + float xOff, yOff, zOff; + int* lists; + RenderChunk* rlists; + + int listIndex; + bool inited; + bool rendered; + +private: + int bufferLimit; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__RenderList_H__*/ diff --git a/src/client/renderer/Tesselator.cpp b/src/client/renderer/Tesselator.cpp new file mode 100755 index 0000000..2fe36e1 --- /dev/null +++ b/src/client/renderer/Tesselator.cpp @@ -0,0 +1,430 @@ +#include "Tesselator.h" +#include +#include +#include + +Tesselator Tesselator::instance(sizeof(GLfloat) * MAX_FLOATS); // max size in bytes + +const int VertexSizeBytes = sizeof(VERTEX); + +Tesselator::Tesselator( int size ) +: size(size), + vertices(0), + u(0), v(0), + _color(0), + hasColor(false), + hasTexture(false), + hasNormal(false), + p(0), + count(0), + _noColor(false), + mode(0), + xo(0), yo(0), zo(0), + _normal(0), + _sx(1), _sy(1), + + tesselating(false), + vboId(-1), + vboCounts(128), + totalSize(0), + accessMode(ACCESS_STATIC), + maxVertices(size / sizeof(VERTEX)), + _voidBeginEnd(false) +{ + vboIds = new GLuint[vboCounts]; + + _varray = new VERTEX[maxVertices]; + + char* a = (char*)&_varray[0]; + char* b = (char*)&_varray[1]; + LOGI("Vsize: %lu, %d\n", sizeof(VERTEX), (b-a)); +} + +Tesselator::~Tesselator() +{ + delete[] vboIds; + delete[] _varray; +} + +void Tesselator::init() +{ +#ifndef STANDALONE_SERVER + glGenBuffers2(vboCounts, vboIds); +#endif +} + +void Tesselator::clear() +{ + accessMode = ACCESS_STATIC; + vertices = 0; + count = 0; + p = 0; + _voidBeginEnd = false; +} + +int Tesselator::getVboCount() { + return vboCounts; +} + +RenderChunk Tesselator::end( bool useMine, int bufferId ) +{ +#ifndef STANDALONE_SERVER + //if (!tesselating) throw /*new*/ IllegalStateException("Not tesselating!"); + if (!tesselating) + LOGI("not tesselating!\n"); + + if (!tesselating || _voidBeginEnd) return RenderChunk(); + + tesselating = false; + const int o_vertices = vertices; + + if (vertices > 0) { + if (++vboId >= vboCounts) + vboId = 0; + +#ifdef USE_VBO + // Using VBO, use default buffer id only if we don't send in any + if (!useMine) { + bufferId = vboIds[vboId]; + } +#else + // Not using VBO - always use the next buffer object + bufferId = vboIds[vboId]; +#endif + int access = GL_STATIC_DRAW;//(accessMode==ACCESS_DYNAMIC) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW; + int bytes = p * sizeof(VERTEX); + glBindBuffer2(GL_ARRAY_BUFFER, bufferId); + glBufferData2(GL_ARRAY_BUFFER, bytes, _varray, access); // GL_STREAM_DRAW + totalSize += bytes; + +#ifndef USE_VBO + // 0 1 2 3 4 5 6 7 + // x y z u v c + if (hasTexture) { + glTexCoordPointer2(2, GL_FLOAT, VertexSizeBytes, (GLvoid*) (3 * 4)); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + } + if (hasColor) { + glColorPointer2(4, GL_UNSIGNED_BYTE, VertexSizeBytes, (GLvoid*) (5 * 4)); + glEnableClientState2(GL_COLOR_ARRAY); + } + if (hasNormal) { + glNormalPointer(GL_BYTE, VertexSizeBytes, (GLvoid*) (6 * 4)); + glEnableClientState2(GL_NORMAL_ARRAY); + } + glVertexPointer2(3, GL_FLOAT, VertexSizeBytes, 0); + glEnableClientState2(GL_VERTEX_ARRAY); + + if (mode == GL_QUADS) { + glDrawArrays2(GL_TRIANGLES, 0, vertices); + } else { + glDrawArrays2(mode, 0, vertices); + } + //printf("drawing %d tris, size %d (%d,%d,%d)\n", vertices, p, hasTexture, hasColor, hasNormal); + glDisableClientState2(GL_VERTEX_ARRAY); + if (hasTexture) glDisableClientState2(GL_TEXTURE_COORD_ARRAY); + if (hasColor) glDisableClientState2(GL_COLOR_ARRAY); + if (hasNormal) glDisableClientState2(GL_NORMAL_ARRAY); +#endif /*!USE_VBO*/ + } + + clear(); + RenderChunk out(bufferId, o_vertices); + //map.insert( std::make_pair(bufferId, out.id) ); + return out; +#else + return RenderChunk(); +#endif + +} + +void Tesselator::begin( int mode ) +{ + if (tesselating || _voidBeginEnd) { + if (tesselating && !_voidBeginEnd) + LOGI("already tesselating!\n"); + return; + } + //if (tesselating) { + // throw /*new*/ IllegalStateException("Already tesselating!"); + //} + tesselating = true; + + clear(); + this->mode = mode; + hasNormal = false; + hasColor = false; + hasTexture = false; + _noColor = false; +} + +void Tesselator::begin() +{ + begin(GL_QUADS); +} + +void Tesselator::tex( float u, float v ) +{ + hasTexture = true; + this->u = u; + this->v = v; +} + +int Tesselator::getColor() { + return _color; +} + +void Tesselator::color( float r, float g, float b ) +{ + color((int) (r * 255), (int) (g * 255), (int) (b * 255)); +} + +void Tesselator::color( float r, float g, float b, float a ) +{ + color((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255)); +} + +void Tesselator::color( int r, int g, int b ) +{ + color(r, g, b, 255); +} + +void Tesselator::color( int r, int g, int b, int a ) +{ + if (_noColor) return; + + if (r > 255) r = 255; + if (g > 255) g = 255; + if (b > 255) b = 255; + if (a > 255) a = 255; + if (r < 0) r = 0; + if (g < 0) g = 0; + if (b < 0) b = 0; + if (a < 0) a = 0; + + hasColor = true; + //if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) { + if (true) { + _color = (a << 24) | (b << 16) | (g << 8) | (r); + } else { + _color = (r << 24) | (g << 16) | (b << 8) | (a); + } +} + +void Tesselator::color( char r, char g, char b ) +{ + color(r & 0xff, g & 0xff, b & 0xff); +} + +void Tesselator::color( int c ) +{ + int r = ((c >> 16) & 255); + int g = ((c >> 8) & 255); + int b = ((c) & 255); + color(r, g, b); +} + +//@note: doesn't care about endianess +void Tesselator::colorABGR( int c ) +{ + if (_noColor) return; + hasColor = true; + _color = c; +} + +void Tesselator::color( int c, int alpha ) +{ + int r = ((c >> 16) & 255); + int g = ((c >> 8) & 255); + int b = ((c) & 255); + color(r, g, b, alpha); +} + +void Tesselator::vertexUV( float x, float y, float z, float u, float v ) +{ + tex(u, v); + vertex(x, y, z); +} + +void Tesselator::scale2d(float sx, float sy) { + _sx *= sx; + _sy *= sy; +} + +void Tesselator::resetScale() { + _sx = _sy = 1; +} + +void Tesselator::vertex( float x, float y, float z ) +{ +#ifndef STANDALONE_SERVER + count++; + + if (mode == GL_QUADS && (count & 3) == 0) { + for (int i = 0; i < 2; i++) { + + const int offs = 3 - i; + VERTEX& src = _varray[p - offs]; + VERTEX& dst = _varray[p]; + + if (hasTexture) { + dst.u = src.u; + dst.v = src.v; + } + if (hasColor) { + dst.color = src.color; + } + //if (hasNormal) { + // dst.normal = src.normal; + //} + + dst.x = src.x; + dst.y = src.y; + dst.z = src.z; + + ++vertices; + ++p; + } + } + + VERTEX& vertex = _varray[p]; + + if (hasTexture) { + vertex.u = u; + vertex.v = v; + } + if (hasColor) { + vertex.color = _color; + } + //if (hasNormal) { + // vertex.normal = _normal; + //} + + vertex.x = _sx * (x + xo); + vertex.y = _sy * (y + yo); + vertex.z = z + zo; + + ++p; + ++vertices; + + if ((vertices & 3) == 0 && p >= maxVertices-1) { + for (int i = 0; i < 3; ++i) + printf("Overwriting the vertex buffer! This chunk/entity won't show up\n"); + clear(); + } +#endif +} + +void Tesselator::noColor() +{ + _noColor = true; +} + +void Tesselator::setAccessMode(int mode) +{ + accessMode = mode; +} + +void Tesselator::normal( float x, float y, float z ) +{ + static int _warn_t = 0; + if ((++_warn_t & 32767) == 1) + LOGI("WARNING: Can't use normals (Tesselator::normal)\n"); + return; + + if (!tesselating) printf("But.."); + hasNormal = true; + char xx = (char) (x * 128); + char yy = (char) (y * 127); + char zz = (char) (z * 127); + + _normal = xx | (yy << 8) | (zz << 16); +} + +void Tesselator::offset( float xo, float yo, float zo ) { + this->xo = xo; + this->yo = yo; + this->zo = zo; +} + +void Tesselator::addOffset( float x, float y, float z ) { + xo += x; + yo += y; + zo += z; +} + +void Tesselator::offset( const Vec3& v ) { + xo = v.x; + yo = v.y; + zo = v.z; +} + +void Tesselator::addOffset( const Vec3& v ) { + xo += v.x; + yo += v.y; + zo += v.z; +} + +void Tesselator::draw() +{ +#ifndef STANDALONE_SERVER + if (!tesselating) + LOGI("not (draw) tesselating!\n"); + + if (!tesselating || _voidBeginEnd) + return; + + tesselating = false; + + if (vertices > 0) { + if (++vboId >= vboCounts) + vboId = 0; + + int bufferId = vboIds[vboId]; + + int access = GL_DYNAMIC_DRAW;//(accessMode==ACCESS_DYNAMIC) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW; + int bytes = p * sizeof(VERTEX); + glBindBuffer2(GL_ARRAY_BUFFER, bufferId); + glBufferData2(GL_ARRAY_BUFFER, bytes, _varray, access); // GL_STREAM_DRAW + + if (hasTexture) { + glTexCoordPointer2(2, GL_FLOAT, VertexSizeBytes, (GLvoid*) (3 * 4)); + //glTexCoordPointer2(2, GL_FLOAT, VertexSizeBytes, (GLvoid*) &_varray->u); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + } + if (hasColor) { + glColorPointer2(4, GL_UNSIGNED_BYTE, VertexSizeBytes, (GLvoid*) (5 * 4)); + //glColorPointer2(4, GL_UNSIGNED_BYTE, VertexSizeBytes, (GLvoid*) &_varray->color); + glEnableClientState2(GL_COLOR_ARRAY); + } + //if (hasNormal) { + // glNormalPointer(GL_BYTE, VertexSizeBytes, (GLvoid*) (6 * 4)); + // glEnableClientState2(GL_NORMAL_ARRAY); + //} + //glVertexPointer2(3, GL_FLOAT, VertexSizeBytes, (GLvoid*)&_varray); + glVertexPointer2(3, GL_FLOAT, VertexSizeBytes, 0); + glEnableClientState2(GL_VERTEX_ARRAY); + + if (mode == GL_QUADS) { + glDrawArrays2(GL_TRIANGLES, 0, vertices); + } else { + glDrawArrays2(mode, 0, vertices); + } + + glDisableClientState2(GL_VERTEX_ARRAY); + if (hasTexture) glDisableClientState2(GL_TEXTURE_COORD_ARRAY); + if (hasColor) glDisableClientState2(GL_COLOR_ARRAY); + //if (hasNormal) glDisableClientState2(GL_NORMAL_ARRAY); + } + + clear(); +#endif +} + +void Tesselator::voidBeginAndEndCalls(bool doVoid) { + _voidBeginEnd = doVoid; +} + +void Tesselator::enableColor() { + _noColor = false; +} diff --git a/src/client/renderer/Tesselator.h b/src/client/renderer/Tesselator.h new file mode 100755 index 0000000..85bad5f --- /dev/null +++ b/src/client/renderer/Tesselator.h @@ -0,0 +1,130 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__Tesselator_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__Tesselator_H__ + +//package net.minecraft.client.renderer; + +#include +#include "RenderChunk.h" +#include "gles.h" +#include "VertecDecl.h" + +extern const int VertexSizeBytes; + +typedef VertexDeclPTC VERTEX; +typedef std::map IntGLMap; + + +class Tesselator +{ + static const int MAX_MEMORY_USE = 16 * 1024 * 1024; + static const int MAX_FLOATS = MAX_MEMORY_USE / 4 / 2; + + Tesselator(int size); + +public: + static const int ACCESS_DYNAMIC = 1; + static const int ACCESS_STATIC = 2; + + static Tesselator instance; + + ~Tesselator(); + + void init(); + void clear(); + + void begin(); + void begin(int mode); + void draw(); + RenderChunk end(bool useMine, int bufferId); + + void color(int c); + void color(int c, int alpha); + void color(float r, float g, float b); + void color(float r, float g, float b, float a); + void color(int r, int g, int b); + void color(int r, int g, int b, int a); + void color(char r, char g, char b); + void colorABGR( int c ); + + void normal(float x, float y, float z); + void voidBeginAndEndCalls(bool doVoid); + + void tex(float u, float v); + + void vertex(float x, float y, float z); + void vertexUV(float x, float y, float z, float u, float v); + + void scale2d(float x, float y); + void resetScale(); + + void noColor(); + void enableColor(); +private: + void setAccessMode(int mode); +public: + + void offset(float xo, float yo, float zo); + void offset(const Vec3& v); + void addOffset(float x, float y, float z); + void addOffset(const Vec3& v); + + int getVboCount(); + + int getColor(); + + __inline void beginOverride() { + begin(); + voidBeginAndEndCalls(true); + } + __inline void endOverrideAndDraw() { + voidBeginAndEndCalls(false); + draw(); + } + __inline bool isOverridden() { + return _voidBeginEnd; + } + __inline RenderChunk endOverride(int bufferId) { + voidBeginAndEndCalls(false); + return end(true, bufferId); + } + +private: + Tesselator(const Tesselator& rhs) {} + Tesselator& operator=(const Tesselator& rhs) { return *this; } + VERTEX* _varray; + + int vertices; + + float xo, yo, zo; + float u, v; + unsigned int _color; + int _normal; + float _sx, _sy; + + bool hasColor; + bool hasTexture; + bool hasNormal; + bool _noColor; + bool _voidBeginEnd; + + int p; + int count; + + bool tesselating; + + bool vboMode; + int vboCounts; + int vboId; + GLuint* vboIds; + + int size; + int totalSize; + int maxVertices; + + int mode; + int accessMode; + + IntGLMap map; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__Tesselator_H__*/ diff --git a/src/client/renderer/TextureData.h b/src/client/renderer/TextureData.h new file mode 100755 index 0000000..ea2a6e8 --- /dev/null +++ b/src/client/renderer/TextureData.h @@ -0,0 +1,37 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__TextureData_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__TextureData_H__ + +enum TextureFormat +{ + TEXF_UNCOMPRESSED_8888, + TEXF_UNCOMPRESSED_565, + TEXF_UNCOMPRESSED_5551, + TEXF_UNCOMPRESSED_4444, + TEXF_COMPRESSED_PVRTC_565, + TEXF_COMPRESSED_PVRTC_5551, + TEXF_COMPRESSED_PVRTC_4444 +}; + +typedef struct TextureData { + TextureData() + : w(0), + h(0), + data(NULL), + numBytes(0), + transparent(true), + memoryHandledExternally(false), + format(TEXF_UNCOMPRESSED_8888), + identifier(-1) + {} + + int w, h; + unsigned char* data; + int numBytes; + bool transparent; + bool memoryHandledExternally; + + TextureFormat format; + int identifier; +} TextureData; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__Textures_H__*/ diff --git a/src/client/renderer/Textures.cpp b/src/client/renderer/Textures.cpp new file mode 100755 index 0000000..a64644a --- /dev/null +++ b/src/client/renderer/Textures.cpp @@ -0,0 +1,358 @@ +#include "Textures.h" + +#include "TextureData.h" +#include "ptexture/DynamicTexture.h" +#include "../Options.h" +#include "../../platform/time.h" +#include "../../AppPlatform.h" + +/*static*/ int Textures::textureChanges = 0; +/*static*/ bool Textures::MIPMAP = false; + +Textures::Textures( Options* options_, AppPlatform* platform_ ) +: clamp(false), + blur(false), + options(options_), + platform(platform_), + lastBoundTexture(Textures::InvalidId) +{ +} + +Textures::~Textures() +{ + clear(); + + for (unsigned int i = 0; i < dynamicTextures.size(); ++i) + delete dynamicTextures[i]; +} + +void Textures::clear() +{ + for (TextureMap::iterator it = idMap.begin(); it != idMap.end(); ++it) { + if (it->second != Textures::InvalidId) + glDeleteTextures(1, &it->second); + } + for (TextureImageMap::iterator it = loadedImages.begin(); it != loadedImages.end(); ++it) { + if (!(it->second).memoryHandledExternally) + delete[] (it->second).data; + } + idMap.clear(); + loadedImages.clear(); + + lastBoundTexture = Textures::InvalidId; +} + +TextureId Textures::loadAndBindTexture( const std::string& resourceName ) +{ + //static Stopwatch t; + + //t.start(); + TextureId id = loadTexture(resourceName); + //t.stop(); + if (id != Textures::InvalidId) + bind(id); + + //t.printEvery(1000); + + return id; +} + +TextureId Textures::loadTexture( const std::string& resourceName, bool inTextureFolder /* = true */ ) +{ + TextureMap::iterator it = idMap.find(resourceName); + if (it != idMap.end()) + return it->second; + + TextureData texdata = platform->loadTexture(resourceName, inTextureFolder); + if (texdata.data) + return assignTexture(resourceName, texdata); + else if (texdata.identifier != InvalidId) { + //LOGI("Adding id: %d for %s\n", texdata.identifier, resourceName.c_str()); + idMap.insert(std::make_pair(resourceName, texdata.identifier)); + } + else { + idMap.insert(std::make_pair(resourceName, Textures::InvalidId)); + //loadedImages.insert(std::make_pair(InvalidId, texdata)); + } + return Textures::InvalidId; +} + +TextureId Textures::assignTexture( const std::string& resourceName, const TextureData& img ) +{ + TextureId id; + glGenTextures(1, &id); + + bind(id); + + if (MIPMAP) { + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + } else { + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + } + if (blur) { + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + } + + if (clamp) { + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + } else { + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + } + + switch (img.format) + { + case TEXF_COMPRESSED_PVRTC_4444: + case TEXF_COMPRESSED_PVRTC_565: + case TEXF_COMPRESSED_PVRTC_5551: + { +#if defined(__APPLE__) + int fmt = img.transparent? GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG : GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + glCompressedTexImage2D(GL_TEXTURE_2D, 0, fmt, img.w, img.h, 0, img.numBytes, img.data); +#endif + break; + } + + default: + const GLint mode = img.transparent? GL_RGBA : GL_RGB; + + if (img.format == TEXF_UNCOMPRESSED_565) { + glTexImage2D2(GL_TEXTURE_2D, 0, mode, img.w, img.h, 0, mode, GL_UNSIGNED_SHORT_5_6_5, img.data); + } + else if (img.format == TEXF_UNCOMPRESSED_4444) { + glTexImage2D2(GL_TEXTURE_2D, 0, mode, img.w, img.h, 0, mode, GL_UNSIGNED_SHORT_4_4_4_4, img.data); + } + else if (img.format == TEXF_UNCOMPRESSED_5551) { + glTexImage2D2(GL_TEXTURE_2D, 0, mode, img.w, img.h, 0, mode, GL_UNSIGNED_SHORT_5_5_5_1, img.data); + } + else { + glTexImage2D2(GL_TEXTURE_2D, 0, mode, img.w, img.h, 0, mode, GL_UNSIGNED_BYTE, img.data); + } + break; + } + + //LOGI("Adding id: %d to map\n", id); + idMap.insert(std::make_pair(resourceName, id)); + loadedImages.insert(std::make_pair(id, img)); + + return id; +} + +const TextureData* Textures::getTemporaryTextureData( TextureId id ) +{ + TextureImageMap::iterator it = loadedImages.find(id); + if (it == loadedImages.end()) + return NULL; + + return &it->second; +} + +void Textures::tick(bool uploadToGraphicsCard) +{ + for (unsigned int i = 0; i < dynamicTextures.size(); ++i ) { + DynamicTexture* tex = dynamicTextures[i]; + tex->tick(); + + if (uploadToGraphicsCard) { + tex->bindTexture(this); + for (int xx = 0; xx < tex->replicate; xx++) + for (int yy = 0; yy < tex->replicate; yy++) { + glTexSubImage2D2(GL_TEXTURE_2D, 0, tex->tex % 16 * 16 + xx * 16, + tex->tex / 16 * 16 + yy * 16, 16, 16, + GL_RGBA, GL_UNSIGNED_BYTE, tex->pixels); + } + } + } +} + +void Textures::addDynamicTexture( DynamicTexture* dynamicTexture ) +{ + dynamicTextures.push_back(dynamicTexture); + dynamicTexture->tick(); +} + +void Textures::reloadAll() +{ + //TexturePack skin = skins.selected; + + //for (int id : loadedImages.keySet()) { + // BufferedImage image = loadedImages.get(id); + // loadTexture(image, id); + //} + + ////for (HttpTexture httpTexture : httpTextures.values()) { + //// httpTexture.isLoaded = false; + ////} + + //for (std::string name : idMap.keySet()) { + // try { + // BufferedImage image; + // if (name.startsWith("##")) { + // image = makeStrip(readImage(skin.getResource(name.substring(2)))); + // } else if (name.startsWith("%clamp%")) { + // clamp = true; + // image = readImage(skin.getResource(name.substring(7))); + // } else if (name.startsWith("%blur%")) { + // blur = true; + // image = readImage(skin.getResource(name.substring(6))); + // } else { + // image = readImage(skin.getResource(name)); + // } + // int id = idMap.get(name); + // loadTexture(image, id); + // blur = false; + // clamp = false; + // } catch (IOException e) { + // e.printStackTrace(); + // } + //} +} + +int Textures::smoothBlend( int c0, int c1 ) +{ + int a0 = (int) (((c0 & 0xff000000) >> 24)) & 0xff; + int a1 = (int) (((c1 & 0xff000000) >> 24)) & 0xff; + return ((a0 + a1) >> 1 << 24) + (((c0 & 0x00fefefe) + (c1 & 0x00fefefe)) >> 1); +} + +int Textures::crispBlend( int c0, int c1 ) +{ + int a0 = (int) (((c0 & 0xff000000) >> 24)) & 0xff; + int a1 = (int) (((c1 & 0xff000000) >> 24)) & 0xff; + + int a = 255; + if (a0 + a1 == 0) { + a0 = 1; + a1 = 1; + a = 0; + } + + int r0 = ((c0 >> 16) & 0xff) * a0; + int g0 = ((c0 >> 8) & 0xff) * a0; + int b0 = ((c0) & 0xff) * a0; + + int r1 = ((c1 >> 16) & 0xff) * a1; + int g1 = ((c1 >> 8) & 0xff) * a1; + int b1 = ((c1) & 0xff) * a1; + + int r = (r0 + r1) / (a0 + a1); + int g = (g0 + g1) / (a0 + a1); + int b = (b0 + b1) / (a0 + a1); + + return (a << 24) | (r << 16) | (g << 8) | b; +} + +///*public*/ int loadHttpTexture(std::string url, std::string backup) { +// HttpTexture texture = httpTextures.get(url); +// if (texture != NULL) { +// if (texture.loadedImage != NULL && !texture.isLoaded) { +// if (texture.id < 0) { +// texture.id = getTexture(texture.loadedImage); +// } else { +// loadTexture(texture.loadedImage, texture.id); +// } +// texture.isLoaded = true; +// } +// } +// if (texture == NULL || texture.id < 0) { +// if (backup == NULL) return -1; +// return loadTexture(backup); +// } +// return texture.id; +//} + +//HttpTexture addHttpTexture(std::string url, HttpTextureProcessor processor) { +// HttpTexture texture = httpTextures.get(url); +// if (texture == NULL) { +// httpTextures.put(url, /*new*/ HttpTexture(url, processor)); +// } else { +// texture.count++; +// } +// return texture; +//} + +//void removeHttpTexture(std::string url) { +// HttpTexture texture = httpTextures.get(url); +// if (texture != NULL) { +// texture.count--; +// if (texture.count == 0) { +// if (texture.id >= 0) releaseTexture(texture.id); +// httpTextures.remove(url); +// } +// } +//} + +//void tick() { +// for (int i = 0; i < dynamicTextures.size(); i++) { +// DynamicTexture dynamicTexture = dynamicTextures.get(i); +// dynamicTexture.anaglyph3d = options.anaglyph3d; +// dynamicTexture.tick(); +// +// pixels.clear(); +// pixels.put(dynamicTexture.pixels); +// pixels.position(0).limit(dynamicTexture.pixels.length); +// +// dynamicTexture.bindTexture(this); +// +// for (int xx = 0; xx < dynamicTexture.replicate; xx++) +// for (int yy = 0; yy < dynamicTexture.replicate; yy++) { +// +// glTexSubImage2D2(GL_TEXTURE_2D, 0, dynamicTexture.tex % 16 * 16 + xx * 16, dynamicTexture.tex / 16 * 16 + yy * 16, 16, 16, GL_RGBA, GL_UNSIGNED_BYTE, pixels); +// if (MIPMAP) { +// for (int level = 1; level <= 4; level++) { +// int os = 16 >> (level - 1); +// int s = 16 >> level; +// +// for (int x = 0; x < s; x++) +// for (int y = 0; y < s; y++) { +// int c0 = pixels.getInt(((x * 2 + 0) + (y * 2 + 0) * os) * 4); +// int c1 = pixels.getInt(((x * 2 + 1) + (y * 2 + 0) * os) * 4); +// int c2 = pixels.getInt(((x * 2 + 1) + (y * 2 + 1) * os) * 4); +// int c3 = pixels.getInt(((x * 2 + 0) + (y * 2 + 1) * os) * 4); +// int col = smoothBlend(smoothBlend(c0, c1), smoothBlend(c2, c3)); +// pixels.putInt((x + y * s) * 4, col); +// } +// glTexSubImage2D2(GL_TEXTURE_2D, level, dynamicTexture.tex % 16 * s, dynamicTexture.tex / 16 * s, s, s, GL_RGBA, GL_UNSIGNED_BYTE, pixels); +// } +// } +// } +// } +// +// for (int i = 0; i < dynamicTextures.size(); i++) { +// DynamicTexture dynamicTexture = dynamicTextures.get(i); +// +// if (dynamicTexture.copyTo > 0) { +// pixels.clear(); +// pixels.put(dynamicTexture.pixels); +// pixels.position(0).limit(dynamicTexture.pixels.length); +// glBindTexture2(GL_TEXTURE_2D, dynamicTexture.copyTo); +// glTexSubImage2D2(GL_TEXTURE_2D, 0, 0, 0, 16, 16, GL_RGBA, GL_UNSIGNED_BYTE, pixels); +// if (MIPMAP) { +// for (int level = 1; level <= 4; level++) { +// int os = 16 >> (level - 1); +// int s = 16 >> level; +// +// for (int x = 0; x < s; x++) +// for (int y = 0; y < s; y++) { +// int c0 = pixels.getInt(((x * 2 + 0) + (y * 2 + 0) * os) * 4); +// int c1 = pixels.getInt(((x * 2 + 1) + (y * 2 + 0) * os) * 4); +// int c2 = pixels.getInt(((x * 2 + 1) + (y * 2 + 1) * os) * 4); +// int c3 = pixels.getInt(((x * 2 + 0) + (y * 2 + 1) * os) * 4); +// int col = smoothBlend(smoothBlend(c0, c1), smoothBlend(c2, c3)); +// pixels.putInt((x + y * s) * 4, col); +// } +// glTexSubImage2D2(GL_TEXTURE_2D, level, 0, 0, s, s, GL_RGBA, GL_UNSIGNED_BYTE, pixels); +// } +// } +// } +// } +//} +// void releaseTexture(int id) { +// loadedImages.erase(id); +// glDeleteTextures(1, (const GLuint*)&id); +// } + diff --git a/src/client/renderer/Textures.h b/src/client/renderer/Textures.h new file mode 100755 index 0000000..faa5d1f --- /dev/null +++ b/src/client/renderer/Textures.h @@ -0,0 +1,77 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__Textures_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__Textures_H__ + +//package net.minecraft.client.renderer; + +#include +#include +#include +#include "gles.h" +#include "TextureData.h" + +class DynamicTexture; +class Options; +class AppPlatform; + +typedef GLuint TextureId; +typedef std::map TextureMap; +typedef std::map TextureImageMap; + +//@todo: Should probably delete the data buffers with image data +// after we've created an OpenGL-texture, and rewrite the +// getTemporaryTextureData() to actually load from file IF +// it's only read ~once anyway. +class Textures +{ +public: + Textures(Options* options_, AppPlatform* platform_); + ~Textures(); + + void addDynamicTexture(DynamicTexture* dynamicTexture); + + __inline void bind(TextureId id) { + if (id != Textures::InvalidId && lastBoundTexture != id) { + glBindTexture2(GL_TEXTURE_2D, id); + lastBoundTexture = id; + ++textureChanges; + } else if (id == Textures::InvalidId){ + LOGI("invalidId!\n"); + } + } + TextureId loadTexture(const std::string& resourceName, bool inTextureFolder = true); + TextureId loadAndBindTexture(const std::string& resourceName); + + TextureId assignTexture(const std::string& resourceName, const TextureData& img); + const TextureData* getTemporaryTextureData(TextureId id); + + void tick(bool uploadToGraphicsCard); + + void clear(); + void reloadAll(); + + __inline static bool isTextureIdValid(TextureId t) { return t != Textures::InvalidId; } + +private: + int smoothBlend(int c0, int c1); + int crispBlend(int c0, int c1); + +public: + static bool MIPMAP; + static int textureChanges; + static const TextureId InvalidId = -1; + +private: + TextureMap idMap; + TextureImageMap loadedImages; + + Options* options; + AppPlatform* platform; + + bool clamp; + bool blur; + + int lastBoundTexture; + std::vector dynamicTextures; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__Textures_H__*/ diff --git a/src/client/renderer/TileRenderer.cpp b/src/client/renderer/TileRenderer.cpp new file mode 100755 index 0000000..16c6bf7 --- /dev/null +++ b/src/client/renderer/TileRenderer.cpp @@ -0,0 +1,2811 @@ +#include "TileRenderer.h" +#include "../Minecraft.h" +#include "Tesselator.h" + +#include "../../world/level/LevelSource.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/level/tile/DoorTile.h" +#include "../../world/level/tile/LiquidTile.h" +#include "../../world/level/tile/FenceTile.h" +#include "../../world/level/tile/FenceGateTile.h" +#include "../../world/level/tile/ThinFenceTile.h" +#include "../../world/level/tile/BedTile.h" +#include "../../world/level/tile/StemTile.h" +#include "../../world/level/tile/StairTile.h" +#include "../../world/Direction.h" +#include "../../world/Facing.h" +#include "tileentity/TileEntityRenderer.h" +#include "EntityTileRenderer.h" + +TileRenderer::TileRenderer( LevelSource* level /* = NULL */ ) +: level(level), + fixedTexture(-1), + xFlipTexture(false), + noCulling(false), + blsmooth(1), + applyAmbienceOcclusion(false) +{ +} + +bool TileRenderer::tesselateBlockInWorld(Tile* tt, int x, int y, int z) { + int col = tt->getColor(level, x, y, z); + float r = ((col >> 16) & 0xff) / 255.0f; + float g = ((col >> 8) & 0xff) / 255.0f; + float b = ((col) & 0xff) / 255.0f; // xFlipTexture = (x & 1) != (y & 1); + + if (Minecraft::useAmbientOcclusion) { + return tesselateBlockInWorldWithAmbienceOcclusion(tt, x, y, z, r, g, b); + } else + { + return tesselateBlockInWorld(tt, x, y, z, r, g, b); + } +} + +bool TileRenderer::tesselateBlockInWorld( Tile* tt, int x, int y, int z, float r, float g, float b ) +{ + applyAmbienceOcclusion = false; + float xf = (float)x; + float yf = (float)y; + float zf = (float)z; + + Tesselator& t = Tesselator::instance; + + bool changed = false; + float c10 = 0.5f; + float c11 = 1; + float c2 = 0.8f; + float c3 = 0.6f; + + float r11 = c11 * r; + float g11 = c11 * g; + float b11 = c11 * b; + + if (tt == (Tile*)Tile::grass) { + r = g = b = 1.0f; + } + + float r10 = c10 * r; + float r2 = c2 * r; + float r3 = c3 * r; + + float g10 = c10 * g; + float g2 = c2 * g; + float g3 = c3 * g; + + float b10 = c10 * b; + float b2 = c2 * b; + float b3 = c3 * b; + + float centerBrightness = tt->getBrightness(level, x, y, z); + + if (noCulling || tt->shouldRenderFace(level, x, y - 1, z, Facing::DOWN)) { + float br = tt->getBrightness(level, x, y - 1, z); + t.color(r10 * br, g10 * br, b10 * br); + renderFaceDown(tt, xf, yf, zf, tt->getTexture(level, x, y, z, 0)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x, y + 1, z, Facing::UP)) { + float br = tt->getBrightness(level, x, y + 1, z); + if (tt->yy1 != 1 && !tt->material->isLiquid()) br = centerBrightness; + t.color(r11 * br, g11 * br, b11 * br); + renderFaceUp(tt, xf, yf, zf, tt->getTexture(level, x, y, z, 1)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x, y, z - 1, Facing::NORTH)) { + float br = tt->getBrightness(level, x, y, z - 1); + if (tt->zz0 > 0) br = centerBrightness; + t.color(r2 * br, g2 * br, b2 * br); + renderNorth(tt, xf, yf, zf, tt->getTexture(level, x, y, z, 2)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x, y, z + 1, Facing::SOUTH)) { + float br = tt->getBrightness(level, x, y, z + 1); + if (tt->zz1 < 1) br = centerBrightness; + t.color(r2 * br, g2 * br, b2 * br); + renderSouth(tt, xf, yf, zf, tt->getTexture(level, x, y, z, 3)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x - 1, y, z, Facing::WEST)) { + float br = tt->getBrightness(level, x - 1, y, z); + if (tt->xx0 > 0) br = centerBrightness; + t.color(r3 * br, g3 * br, b3 * br); + renderWest(tt, xf, yf, zf, tt->getTexture(level, x, y, z, 4)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x + 1, y, z, Facing::EAST)) { + float br = tt->getBrightness(level, x + 1, y, z); + if (tt->xx1 < 1) br = centerBrightness; + t.color(r3 * br, g3 * br, b3 * br); + renderEast(tt, xf, yf, zf, tt->getTexture(level, x, y, z, 5)); + changed = true; + } + + return changed; +} + +void TileRenderer::tesselateInWorld( Tile* tile, int x, int y, int z, int fixedTexture ) +{ + this->fixedTexture = fixedTexture; + tesselateInWorld(tile, x, y, z); + this->fixedTexture = -1; +} + +bool TileRenderer::tesselateInWorld( Tile* tt, int x, int y, int z ) +{ + int shape = tt->getRenderShape(); + tt->updateShape(level, x, y, z); + + if (shape == Tile::SHAPE_BLOCK) { + return tesselateBlockInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_WATER) { + return tesselateWaterInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_CACTUS) { + return tesselateCactusInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_CROSS_TEXTURE) { + return tesselateCrossInWorld(tt, x, y, z); + } else if(shape == Tile::SHAPE_STEM) { + return tesselateStemInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_ROWS) { + return tesselateRowInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_TORCH) { + return tesselateTorchInWorld(tt, x, y, z); + //} else if (shape == Tile::SHAPE_FIRE) { + // return tesselateFireInWorld(tt, x, y, z); + //} else if (shape == Tile::SHAPE_RED_DUST) { + // return tesselateDustInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_LADDER) { + return tesselateLadderInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_DOOR) { + return tesselateDoorInWorld(tt, x, y, z); + //} else if (shape == Tile::SHAPE_RAIL) { + // return tesselateRailInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_STAIRS) { + return tesselateStairsInWorld((StairTile*)tt, x, y, z); + } else if (shape == Tile::SHAPE_FENCE) { + return tesselateFenceInWorld((FenceTile*)tt, x, y, z); + } else if (shape == Tile::SHAPE_FENCE_GATE) { + return tesselateFenceGateInWorld((FenceGateTile*) tt, x, y, z); + //} else if (shape == Tile::SHAPE_LEVER) { + // return tesselateLeverInWorld(tt, x, y, z); + //} else if (shape == Tile::SHAPE_BED) { + // return tesselateBedInWorld(tt, x, y, z); + //} else if (shape == Tile::SHAPE_DIODE) { + // return tesselateDiodeInWorld(tt, x, y, z); + } else if (shape == Tile::SHAPE_IRON_FENCE) { + return tesselateThinFenceInWorld((ThinFenceTile*) tt, x, y, z); + } else if(shape == Tile::SHAPE_BED) { + return tesselateBedInWorld(tt, x, y, z); + } else { + return false; + } +} + +void TileRenderer::tesselateInWorldNoCulling( Tile* tile, int x, int y, int z ) +{ + noCulling = true; + tesselateInWorld(tile, x, y, z); + noCulling = false; +} + +bool TileRenderer::tesselateTorchInWorld( Tile* tt, int x, int y, int z ) +{ + int dir = level->getData(x, y, z); + + Tesselator& t = Tesselator::instance; + + float br = tt->getBrightness(level, x, y, z); + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(br, br, br); + + float r = 0.40f; + float r2 = 0.5f - r; + float h = 0.20f; + if (dir == 1) { + tesselateTorch(tt, (float)x - r2, (float)y + h, (float)z, -r, 0); + } else if (dir == 2) { + tesselateTorch(tt, (float)x + r2, (float)y + h, (float)z, +r, 0); + } else if (dir == 3) { + tesselateTorch(tt, (float)x, (float)y + h, (float)z - r2, 0, -r); + } else if (dir == 4) { + tesselateTorch(tt, (float)x, (float)y + h, (float)z + r2, 0, +r); + } else { + tesselateTorch(tt, (float)x, (float)y, (float)z, 0, 0); + } + return true; +} + +bool TileRenderer::tesselateLadderInWorld( Tile* tt, int x, int y, int z ) +{ + Tesselator& t = Tesselator::instance; + + int tex = tt->getTexture(0); + + if (fixedTexture >= 0) tex = fixedTexture; + + float br = tt->getBrightness(level, x, y, z); + t.color(br, br, br); + int xt = ((tex & 0xf) << 4); + int yt = tex & 0xf0; + + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f) / 256.0f; + + int face = level->getData(x, y, z); + + float o = 0 / 16.0f; + float r = 0.05f; + if (face == 5) { + t.vertexUV(x + r, y + 1 + o, z + 1 + o, u0, v0); + t.vertexUV(x + r, y + 0 - o, z + 1 + o, u0, v1); + t.vertexUV(x + r, y + 0 - o, z + 0 - o, u1, v1); + t.vertexUV(x + r, y + 1 + o, z + 0 - o, u1, v0); + } + if (face == 4) { + t.vertexUV(x + 1 - r, y + 0 - o, z + 1 + o, u1, v1); + t.vertexUV(x + 1 - r, y + 1 + o, z + 1 + o, u1, v0); + t.vertexUV(x + 1 - r, y + 1 + o, z + 0 - o, u0, v0); + t.vertexUV(x + 1 - r, y + 0 - o, z + 0 - o, u0, v1); + } + if (face == 3) { + t.vertexUV(x + 1 + o, y + 0 - o, z + r, u1, v1); + t.vertexUV(x + 1 + o, y + 1 + o, z + r, u1, v0); + t.vertexUV(x + 0 - o, y + 1 + o, z + r, u0, v0); + t.vertexUV(x + 0 - o, y + 0 - o, z + r, u0, v1); + } + if (face == 2) { + t.vertexUV(x + 1 + o, y + 1 + o, z + 1 - r, u0, v0); + t.vertexUV(x + 1 + o, y + 0 - o, z + 1 - r, u0, v1); + t.vertexUV(x + 0 - o, y + 0 - o, z + 1 - r, u1, v1); + t.vertexUV(x + 0 - o, y + 1 + o, z + 1 - r, u1, v0); + } + + return true; +} + +bool TileRenderer::tesselateCrossInWorld( Tile* tt, int x, int y, int z ) +{ + Tesselator& t = Tesselator::instance; + + float br = tt->getBrightness(level, x, y, z); + int col = tt->getColor(level, x, y, z); + float r = ((col >> 16) & 0xff) / 255.0f; + float g = ((col >> 8) & 0xff) / 255.0f; + float b = ((col) & 0xff) / 255.0f; + t.color(br * r, br * g, br * b); + + float xt = float(x); + float yt = float(y); + float zt = float(z); + + if (tt == Tile::tallgrass) { + long seed = (x * 3129871) ^ (z * 116129781l) ^ (y); + seed = seed * seed * 42317861 + seed * 11; + + xt += ((((seed >> 16) & 0xf) / 15.0f) - 0.5f) * 0.5f; + yt += ((((seed >> 20) & 0xf) / 15.0f) - 1.0f) * 0.2f; + zt += ((((seed >> 24) & 0xf) / 15.0f) - 0.5f) * 0.5f; + } + + tesselateCrossTexture(tt, level->getData(x, y, z), xt, yt, zt); + return true; + //return true; + /*Tesselator& t = Tesselator::instance; + + float br = tt->getBrightness(level, x, y, z); + t.color(br, br, br); + + tesselateCrossTexture(tt, level->getData(x, y, z), (float)x, (float)y, (float)z); + return true;*/ +} +bool TileRenderer::tesselateStemInWorld( Tile* _tt, int x, int y, int z ) { + StemTile* tt = (StemTile*) _tt; + Tesselator& t = Tesselator::instance; + + float br = tt->getBrightness(level, x, y, z); + + int col = tt->getColor(level, x, y, z); + float r = ((col >> 16) & 0xff) / 255.0f; + float g = ((col >> 8) & 0xff) / 255.0f; + float b = ((col) & 0xff) / 255.0f; + + t.color(br * r, br * g, br * b); + + tt->updateShape(level, x, y, z); + int dir = tt->getConnectDir(level, x, y, z); + if (dir < 0) { + tesselateStemTexture(tt, level->getData(x, y, z), tt->yy1, float(x), float(y - 1 / 16.0f), float(z)); + } else { + tesselateStemTexture(tt, level->getData(x, y, z), 0.5f, float(x), float(y - 1 / 16.0f), float(z)); + tesselateStemDirTexture(tt, level->getData(x, y, z), dir, tt->yy1, float(x), float(y - 1 / 16.0f), float(z)); + } + return true; +} +void TileRenderer::tesselateTorch( Tile* tt, float x, float y, float z, float xxa, float zza ) +{ + Tesselator& t = Tesselator::instance; + int tex = tt->getTexture(0); + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f) / 256.0f; + + + float uc0 = u0 + 7 / 256.0f; + float vc0 = v0 + 6 / 256.0f; + float uc1 = u0 + 9 / 256.0f; + float vc1 = v0 + 8 / 256.0f; + x += 0.5f; + z += 0.5f; + + float x0 = x - 0.5f; + float x1 = x + 0.5f; + float z0 = z - 0.5f; + float z1 = z + 0.5f; + float r = 1 / 16.0f; + + float h = 10.0f / 16.0f; + t.vertexUV(x + xxa * (1 - h) - r, y + h, z + zza * (1 - h) - r, uc0, vc0); + t.vertexUV(x + xxa * (1 - h) - r, y + h, z + zza * (1 - h) + r, uc0, vc1); + t.vertexUV(x + xxa * (1 - h) + r, y + h, z + zza * (1 - h) + r, uc1, vc1); + t.vertexUV(x + xxa * (1 - h) + r, y + h, z + zza * (1 - h) - r, uc1, vc0); + + t.vertexUV(x - r, y + 1, z0, u0, v0); + t.vertexUV(x - r + xxa, y + 0, z0 + zza, u0, v1); + t.vertexUV(x - r + xxa, y + 0, z1 + zza, u1, v1); + t.vertexUV(x - r, y + 1, z1, u1, v0); + + t.vertexUV(x + r, y + 1, z1, u0, v0); + t.vertexUV(x + xxa + r, y + 0, z1 + zza, u0, v1); + t.vertexUV(x + xxa + r, y + 0, z0 + zza, u1, v1); + t.vertexUV(x + r, y + 1, z0, u1, v0); + + t.vertexUV(x0, y + 1, z + r, u0, v0); + t.vertexUV(x0 + xxa, y + 0, z + r + zza, u0, v1); + t.vertexUV(x1 + xxa, y + 0, z + r + zza, u1, v1); + t.vertexUV(x1, y + 1, z + r, u1, v0); + + t.vertexUV(x1, y + 1, z - r, u0, v0); + t.vertexUV(x1 + xxa, y + 0, z - r + zza, u0, v1); + t.vertexUV(x0 + xxa, y + 0, z - r + zza, u1, v1); + t.vertexUV(x0, y + 1, z - r, u1, v0); +} + +void TileRenderer::tesselateCrossTexture( Tile* tt, int data, float x, float y, float z ) +{ + Tesselator& t = Tesselator::instance; + + int tex = tt->getTexture(0, data); + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f) / 256.0f; + + float x0 = x + 0.5f - 0.45f; + float x1 = x + 0.5f + 0.45f; + float z0 = z + 0.5f - 0.45f; + float z1 = z + 0.5f + 0.45f; + + t.vertexUV(x0, y + 1, z0, u0, v0); + t.vertexUV(x0, y + 0, z0, u0, v1); + t.vertexUV(x1, y + 0, z1, u1, v1); + t.vertexUV(x1, y + 1, z1, u1, v0); + + t.vertexUV(x1, y + 1, z1, u0, v0); + t.vertexUV(x1, y + 0, z1, u0, v1); + t.vertexUV(x0, y + 0, z0, u1, v1); + t.vertexUV(x0, y + 1, z0, u1, v0); + + t.vertexUV(x0, y + 1, z1, u0, v0); + t.vertexUV(x0, y + 0, z1, u0, v1); + t.vertexUV(x1, y + 0, z0, u1, v1); + t.vertexUV(x1, y + 1, z0, u1, v0); + + t.vertexUV(x1, y + 1, z0, u0, v0); + t.vertexUV(x1, y + 0, z0, u0, v1); + t.vertexUV(x0, y + 0, z1, u1, v1); + t.vertexUV(x0, y + 1, z1, u1, v0); +} +void TileRenderer::tesselateStemTexture( Tile* tt, int data, float h, float x, float y, float z ) { + Tesselator& t = Tesselator::instance; + int tex = tt->getTexture(0, data); + if(fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f * h) / 256.0f; + + float x0 = x + 0.5f - 0.45f; + float x1 = x + 0.5f + 0.45f; + float z0 = z + 0.5f - 0.45f; + float z1 = z + 0.5f + 0.45f; + + t.vertexUV(x0, y + h, z0, u0, v0); + t.vertexUV(x0, y + 0, z0, u0, v1); + t.vertexUV(x1, y + 0, z1, u1, v1); + t.vertexUV(x1, y + h, z1, u1, v0); + + t.vertexUV(x1, y + h, z1, u0, v0); + t.vertexUV(x1, y + 0, z1, u0, v1); + t.vertexUV(x0, y + 0, z0, u1, v1); + t.vertexUV(x0, y + h, z0, u1, v0); + + t.vertexUV(x0, y + h, z1, u0, v0); + t.vertexUV(x0, y + 0, z1, u0, v1); + t.vertexUV(x1, y + 0, z0, u1, v1); + t.vertexUV(x1, y + h, z0, u1, v0); + + t.vertexUV(x1, y + h, z0, u0, v0); + t.vertexUV(x1, y + 0, z0, u0, v1); + t.vertexUV(x0, y + 0, z1, u1, v1); + t.vertexUV(x0, y + h, z1, u1, v0); +} +void TileRenderer::tesselateStemDirTexture( Tile* tt, int data, int dir, float h, float x, float y, float z ) { + Tesselator& t = Tesselator::instance; + + int tex = tt->getTexture(0, data) + 16; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f * h) / 256.0f; + + float x0 = x + 0.5f - 0.5f; + float x1 = x + 0.5f + 0.5f; + float z0 = z + 0.5f - 0.5f; + float z1 = z + 0.5f + 0.5f; + + float xm = x + 0.5f; + float zm = z + 0.5f; + + if ((dir + 1) / 2 % 2 == 1) { + float tmp = u1; + u1 = u0; + u0 = tmp; + } + + if (dir < 2) { + t.vertexUV(x0, y + h, zm, u0, v0); + t.vertexUV(x0, y + 0, zm, u0, v1); + t.vertexUV(x1, y + 0, zm, u1, v1); + t.vertexUV(x1, y + h, zm, u1, v0); + + t.vertexUV(x1, y + h, zm, u1, v0); + t.vertexUV(x1, y + 0, zm, u1, v1); + t.vertexUV(x0, y + 0, zm, u0, v1); + t.vertexUV(x0, y + h, zm, u0, v0); + } else { + + t.vertexUV(xm, y + h, z1, u0, v0); + t.vertexUV(xm, y + 0, z1, u0, v1); + t.vertexUV(xm, y + 0, z0, u1, v1); + t.vertexUV(xm, y + h, z0, u1, v0); + + t.vertexUV(xm, y + h, z0, u1, v0); + t.vertexUV(xm, y + 0, z0, u1, v1); + t.vertexUV(xm, y + 0, z1, u0, v1); + t.vertexUV(xm, y + h, z1, u0, v0); + } +} + +bool TileRenderer::tesselateWaterInWorld( Tile* tt, int x, int y, int z ) +{ + Tesselator& t = Tesselator::instance; + + bool up = tt->shouldRenderFace(level, x, y + 1, z, 1); + bool down = tt->shouldRenderFace(level, x, y - 1, z, 0); + + bool dirs[4]; // static? + dirs[0] = tt->shouldRenderFace(level, x, y, z - 1, 2); + dirs[1] = tt->shouldRenderFace(level, x, y, z + 1, 3); + dirs[2] = tt->shouldRenderFace(level, x - 1, y, z, 4); + dirs[3] = tt->shouldRenderFace(level, x + 1, y, z, 5); + + if (!up && !down && !dirs[0] && !dirs[1] && !dirs[2] && !dirs[3]) return false; + + bool changed = false; + float c10 = 0.5f; + float c11 = 1; + float c2 = 0.8f; + float c3 = 0.6f; + + const float yo0 = 0; + const float yo1 = 1; + + const Material* m = tt->material; + int data = level->getData(x, y, z); + + float h0 = getWaterHeight(x, y, z, m); + float h1 = getWaterHeight(x, y, z + 1, m); + float h2 = getWaterHeight(x + 1, y, z + 1, m); + float h3 = getWaterHeight(x + 1, y, z, m); + + // renderFaceUp(tt, x, y, z, tt->getTexture(0)); + if (noCulling || up) { + changed = true; + int tex = tt->getTexture(1, data); + float angle = (float) LiquidTile::getSlopeAngle(level, x, y, z, m); + if (angle > -999) { + tex = tt->getTexture(2, data); + } + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float uc = (xt + 0.5f * 16) / 256.0f; + float vc = (yt + 0.5f * 16) / 256.0f; + if (angle < -999) { + angle = 0; + } else { + uc = (xt + 1 * 16) / 256.0f; + vc = (yt + 1 * 16) / 256.0f; + } + float s = (Mth::sin(angle) * 8) / 256.5f; // @attn: to get rid of "jitter" (caused + float c = (Mth::cos(angle) * 8) / 256.5f; // of fp rounding errors) in big oceans) + + float br = tt->getBrightness(level, x, y, z); + t.color(c11 * br, c11 * br, c11 * br); + t.vertexUV((float)x + 0, (float)y + h0, (float)z + 0, uc - c - s, vc - c + s); + t.vertexUV((float)x + 0, (float)y + h1, (float)z + 1, uc - c + s, vc + c + s); + t.vertexUV((float)x + 1, (float)y + h2, (float)z + 1, uc + c + s, vc + c - s); + t.vertexUV((float)x + 1, (float)y + h3, (float)z + 0, uc + c - s, vc - c - s); + } + + if (noCulling || down) { + float br = tt->getBrightness(level, x, y - 1, z); + t.color(c10 * br, c10 * br, c10 * br); + renderFaceDown(tt, (float)x, (float)y, (float)z, tt->getTexture(0)); + changed = true; + } + + for (int face = 0; face < 4; face++) { + int xt = x; + int yt = y; + int zt = z; + + if (face == 0) zt--; + if (face == 1) zt++; + if (face == 2) xt--; + if (face == 3) xt++; + + int tex = tt->getTexture(face + 2, data); + int xTex = (tex & 0xf) << 4; + int yTex = tex & 0xf0; + + if (noCulling || dirs[face]) { + float hh0; + float hh1; + float x0, z0, x1, z1; + if (face == 0) { + hh0 = h0; + hh1 = h3; + x0 = (float)(x ); + x1 = (float)(x + 1); + z0 = (float)(z ); + z1 = (float)(z ); + } else if (face == 1) { + hh0 = h2; + hh1 = h1; + x0 = (float)(x + 1); + x1 = (float)(x ); + z0 = (float)(z + 1); + z1 = (float)(z + 1); + } else if (face == 2) { + hh0 = h1; + hh1 = h0; + x0 = (float)(x ); + x1 = (float)(x ); + z0 = (float)(z + 1); + z1 = (float)(z ); + } else { + hh0 = h3; + hh1 = h2; + x0 = (float)(x + 1); + x1 = (float)(x + 1); + z0 = (float)(z ); + z1 = (float)(z + 1); + } + + changed = true; + float u0 = (xTex + 0 * 16) / 256.0f; + float u1 = (xTex + 1 * 16 - 0.01f) / 256.0f; + + float v01 = (yTex + (1 - hh0) * 16) / 256.0f; + float v02 = (yTex + (1 - hh1) * 16) / 256.0f; + float v1 = (yTex + 1 * 16 - 0.01f) / 256.0f; + + float br = tt->getBrightness(level, xt, yt, zt); + if (face < 2) br *= c2; + else br *= c3; + + float yf = (float)y; + t.color(c11 * br, c11 * br, c11 * br); + t.vertexUV(x0, yf + hh0, z0, u0, v01); + t.vertexUV(x1, yf + hh1, z1, u1, v02); + t.vertexUV(x1, yf + 0, z1, u1, v1); + t.vertexUV(x0, yf + 0, z0, u0, v1); + } + } + + //printf("w: %d ", (dirs[0] + dirs[1] + dirs[2] + dirs[3] + up + down)); + + tt->yy0 = yo0; + tt->yy1 = yo1; + + return changed; +} + +float TileRenderer::getWaterHeight( int x, int y, int z, const Material* m ) +{ + int count = 0; + float h = 0; + for (int i = 0; i < 4; i++) { + int xx = x - (i & 1); + int yy = y; + int zz = z - ((i >> 1) & 1); + if (level->getMaterial(xx, yy + 1, zz) == m) { + return 1; + } + const Material* tm = level->getMaterial(xx, yy, zz); + if (tm == m) { + int d = level->getData(xx, yy, zz); + if (d >= 8 || d == 0) { + h += (LiquidTile::getHeight(d)) * 10; + count += 10; + } + h += LiquidTile::getHeight(d); + count++; + } else if (!tm->isSolid()) { + h += 1; + count++; + } + } + return 1 - h / count; +} + +void TileRenderer::renderBlock(Tile* tt, LevelSource* level, int x, int y, int z) { + float c10 = 0.5f; + float c11 = 1; + float c2 = 0.8f; + float c3 = 0.6f; + + Tesselator& t = Tesselator::instance; + t.begin(); + + float center = tt->getBrightness(level, x, y, z); + float br = tt->getBrightness(level, x, y - 1, z); + if (br < center) br = center; + + t.color(c10 * br, c10 * br, c10 * br); + renderFaceDown(tt, -0.5f, -0.5f, -0.5f, tt->getTexture(0)); + + br = tt->getBrightness(level, x, y + 1, z); + if (br < center) br = center; + t.color(c11 * br, c11 * br, c11 * br); + renderFaceUp(tt, -0.5f, -0.5f, -0.5f, tt->getTexture(1)); + + br = tt->getBrightness(level, x, y, z - 1); + if (br < center) br = center; + t.color(c2 * br, c2 * br, c2 * br); + renderNorth(tt, -0.5f, -0.5f, -0.5f, tt->getTexture(2)); + + br = tt->getBrightness(level, x, y, z + 1); + if (br < center) br = center; + t.color(c2 * br, c2 * br, c2 * br); + renderSouth(tt, -0.5f, -0.5f, -0.5f, tt->getTexture(3)); + + br = tt->getBrightness(level, x - 1, y, z); + if (br < center) br = center; + t.color(c3 * br, c3 * br, c3 * br); + renderWest(tt, -0.5f, -0.5f, -0.5f, tt->getTexture(4)); + + br = tt->getBrightness(level, x + 1, y, z); + if (br < center) br = center; + t.color(c3 * br, c3 * br, c3 * br); + renderEast(tt, -0.5f, -0.5f, -0.5f, tt->getTexture(5)); + t.draw(); +} + +bool TileRenderer::tesselateBlockInWorldWithAmbienceOcclusion( Tile* tt, int pX, int pY, int pZ, float pBaseRed, float pBaseGreen, float pBaseBlue ) +{ + applyAmbienceOcclusion = true; + bool i = false; + float ll1 = ll000; + float ll2 = ll000; + float ll3 = ll000; + float ll4 = ll000; + bool tint0 = true; + bool tint1 = true; + bool tint2 = true; + bool tint3 = true; + bool tint4 = true; + bool tint5 = true; + + ll000 = tt->getBrightness(level, pX, pY, pZ); + llx00 = tt->getBrightness(level, pX - 1, pY, pZ); + ll0y0 = tt->getBrightness(level, pX, pY - 1, pZ); + ll00z = tt->getBrightness(level, pX, pY, pZ - 1); + llX00 = tt->getBrightness(level, pX + 1, pY, pZ); + ll0Y0 = tt->getBrightness(level, pX, pY + 1, pZ); + ll00Z = tt->getBrightness(level, pX, pY, pZ + 1); + + llTransXY0 = Tile::translucent[level->getTile(pX + 1, pY + 1, pZ)]; + llTransXy0 = Tile::translucent[level->getTile(pX + 1, pY - 1, pZ)]; + llTransX0Z = Tile::translucent[level->getTile(pX + 1, pY, pZ + 1)]; + llTransX0z = Tile::translucent[level->getTile(pX + 1, pY, pZ - 1)]; + llTransxY0 = Tile::translucent[level->getTile(pX - 1, pY + 1, pZ)]; + llTransxy0 = Tile::translucent[level->getTile(pX - 1, pY - 1, pZ)]; + llTransx0z = Tile::translucent[level->getTile(pX - 1, pY, pZ - 1)]; + llTransx0Z = Tile::translucent[level->getTile(pX - 1, pY, pZ + 1)]; + llTrans0YZ = Tile::translucent[level->getTile(pX, pY + 1, pZ + 1)]; + llTrans0Yz = Tile::translucent[level->getTile(pX, pY + 1, pZ - 1)]; + llTrans0yZ = Tile::translucent[level->getTile(pX, pY - 1, pZ + 1)]; + llTrans0yz = Tile::translucent[level->getTile(pX, pY - 1, pZ - 1)]; + + if (tt->tex == 3) tint0 = tint2 = tint3 = tint4 = tint5 = false; + + if ((noCulling) || (tt->shouldRenderFace(level, pX, pY - 1, pZ, 0))) { + if (blsmooth > 0) { + pY--; + + llxy0 = tt->getBrightness(level, pX - 1, pY, pZ); + ll0yz = tt->getBrightness(level, pX, pY, pZ - 1); + ll0yZ = tt->getBrightness(level, pX, pY, pZ + 1); + llXy0 = tt->getBrightness(level, pX + 1, pY, pZ); + + if (llTrans0yz || llTransxy0) { + llxyz = tt->getBrightness(level, pX - 1, pY, pZ - 1); + } else { + llxyz = llxy0; + } + if (llTrans0yZ || llTransxy0) { + llxyZ = tt->getBrightness(level, pX - 1, pY, pZ + 1); + } else { + llxyZ = llxy0; + } + if (llTrans0yz || llTransXy0) { + llXyz = tt->getBrightness(level, pX + 1, pY, pZ - 1); + } else { + llXyz = llXy0; + } + if (llTrans0yZ || llTransXy0) { + llXyZ = tt->getBrightness(level, pX + 1, pY, pZ + 1); + } else { + llXyZ = llXy0; + } + + pY++; + ll1 = (llxyZ + llxy0 + ll0yZ + ll0y0) / 4.0f; + ll4 = (ll0yZ + ll0y0 + llXyZ + llXy0) / 4.0f; + ll3 = (ll0y0 + ll0yz + llXy0 + llXyz) / 4.0f; + ll2 = (llxy0 + llxyz + ll0y0 + ll0yz) / 4.0f; + } else ll1 = ll2 = ll3 = ll4 = ll0y0; + c1r = c2r = c3r = c4r = (tint0 ? pBaseRed : 1.0f) * 0.5f; + c1g = c2g = c3g = c4g = (tint0 ? pBaseGreen : 1.0f) * 0.5f; + c1b = c2b = c3b = c4b = (tint0 ? pBaseBlue : 1.0f) * 0.5f; + c1r *= ll1; + c1g *= ll1; + c1b *= ll1; + c2r *= ll2; + c2g *= ll2; + c2b *= ll2; + c3r *= ll3; + c3g *= ll3; + c3b *= ll3; + c4r *= ll4; + c4g *= ll4; + c4b *= ll4; + + renderFaceDown(tt, (float) pX, (float) pY, (float) pZ, tt->getTexture(level, pX, pY, pZ, 0)); + i = true; + } + if ((noCulling) || (tt->shouldRenderFace(level, pX, pY + 1, pZ, 1))) { + if (blsmooth > 0) { + pY++; + + llxY0 = tt->getBrightness(level, pX - 1, pY, pZ); + llXY0 = tt->getBrightness(level, pX + 1, pY, pZ); + ll0Yz = tt->getBrightness(level, pX, pY, pZ - 1); + ll0YZ = tt->getBrightness(level, pX, pY, pZ + 1); + + if (llTrans0Yz || llTransxY0) { + llxYz = tt->getBrightness(level, pX - 1, pY, pZ - 1); + } else { + llxYz = llxY0; + } + if (llTrans0Yz || llTransXY0) { + llXYz = tt->getBrightness(level, pX + 1, pY, pZ - 1); + } else { + llXYz = llXY0; + } + if (llTrans0YZ || llTransxY0) { + llxYZ = tt->getBrightness(level, pX - 1, pY, pZ + 1); + } else { + llxYZ = llxY0; + } + if (llTrans0YZ || llTransXY0) { + llXYZ = tt->getBrightness(level, pX + 1, pY, pZ + 1); + } else { + llXYZ = llXY0; + } + pY--; + + ll4 = (llxYZ + llxY0 + ll0YZ + ll0Y0) / 4.0f; + ll1 = (ll0YZ + ll0Y0 + llXYZ + llXY0) / 4.0f; + ll2 = (ll0Y0 + ll0Yz + llXY0 + llXYz) / 4.0f; + ll3 = (llxY0 + llxYz + ll0Y0 + ll0Yz) / 4.0f; + } else ll1 = ll2 = ll3 = ll4 = ll0Y0; + c1r = c2r = c3r = c4r = (tint1 ? pBaseRed : 1.0f); + c1g = c2g = c3g = c4g = (tint1 ? pBaseGreen : 1.0f); + c1b = c2b = c3b = c4b = (tint1 ? pBaseBlue : 1.0f); + c1r *= ll1; + c1g *= ll1; + c1b *= ll1; + c2r *= ll2; + c2g *= ll2; + c2b *= ll2; + c3r *= ll3; + c3g *= ll3; + c3b *= ll3; + c4r *= ll4; + c4g *= ll4; + c4b *= ll4; + renderFaceUp(tt, (float) pX, (float) pY, (float) pZ, tt->getTexture(level, pX, pY, pZ, 1)); + i = true; + } + if ((noCulling) || (tt->shouldRenderFace(level, pX, pY, pZ - 1, 2))) { + if (blsmooth > 0) { + pZ--; + llx0z = tt->getBrightness(level, pX - 1, pY, pZ); + ll0yz = tt->getBrightness(level, pX, pY - 1, pZ); + ll0Yz = tt->getBrightness(level, pX, pY + 1, pZ); + llX0z = tt->getBrightness(level, pX + 1, pY, pZ); + + if (llTransx0z || llTrans0yz) { + llxyz = tt->getBrightness(level, pX - 1, pY - 1, pZ); + } else { + llxyz = llx0z; + } + if (llTransx0z || llTrans0Yz) { + llxYz = tt->getBrightness(level, pX - 1, pY + 1, pZ); + } else { + llxYz = llx0z; + } + if (llTransX0z || llTrans0yz) { + llXyz = tt->getBrightness(level, pX + 1, pY - 1, pZ); + } else { + llXyz = llX0z; + } + if (llTransX0z || llTrans0Yz) { + llXYz = tt->getBrightness(level, pX + 1, pY + 1, pZ); + } else { + llXYz = llX0z; + } + pZ++; + ll1 = (llx0z + llxYz + ll00z + ll0Yz) / 4.0f; + ll2 = (ll00z + ll0Yz + llX0z + llXYz) / 4.0f; + ll3 = (ll0yz + ll00z + llXyz + llX0z) / 4.0f; + ll4 = (llxyz + llx0z + ll0yz + ll00z) / 4.0f; + } else ll1 = ll2 = ll3 = ll4 = ll00z; + c1r = c2r = c3r = c4r = (tint2 ? pBaseRed : 1.0f) * 0.8f; + c1g = c2g = c3g = c4g = (tint2 ? pBaseGreen : 1.0f) * 0.8f; + c1b = c2b = c3b = c4b = (tint2 ? pBaseBlue : 1.0f) * 0.8f; + c1r *= ll1; + c1g *= ll1; + c1b *= ll1; + c2r *= ll2; + c2g *= ll2; + c2b *= ll2; + c3r *= ll3; + c3g *= ll3; + c3b *= ll3; + c4r *= ll4; + c4g *= ll4; + c4b *= ll4; + renderNorth(tt, (float) pX, (float) pY, (float) pZ, tt->getTexture(level, pX, pY, pZ, 2)); + i = true; + } + if ((noCulling) || (tt->shouldRenderFace(level, pX, pY, pZ + 1, 3))) { + if (blsmooth > 0) { + pZ++; + + llx0Z = tt->getBrightness(level, pX - 1, pY, pZ); + llX0Z = tt->getBrightness(level, pX + 1, pY, pZ); + ll0yZ = tt->getBrightness(level, pX, pY - 1, pZ); + ll0YZ = tt->getBrightness(level, pX, pY + 1, pZ); + + if (llTransx0Z || llTrans0yZ) { + llxyZ = tt->getBrightness(level, pX - 1, pY - 1, pZ); + } else { + llxyZ = llx0Z; + } + if (llTransx0Z || llTrans0YZ) { + llxYZ = tt->getBrightness(level, pX - 1, pY + 1, pZ); + } else { + llxYZ = llx0Z; + } + if (llTransX0Z || llTrans0yZ) { + llXyZ = tt->getBrightness(level, pX + 1, pY - 1, pZ); + } else { + llXyZ = llX0Z; + } + if (llTransX0Z || llTrans0YZ) { + llXYZ = tt->getBrightness(level, pX + 1, pY + 1, pZ); + } else { + llXYZ = llX0Z; + } + pZ--; + ll1 = (llx0Z + llxYZ + ll00Z + ll0YZ) / 4.0f; + ll4 = (ll00Z + ll0YZ + llX0Z + llXYZ) / 4.0f; + ll3 = (ll0yZ + ll00Z + llXyZ + llX0Z) / 4.0f; + ll2 = (llxyZ + llx0Z + ll0yZ + ll00Z) / 4.0f; + } else ll1 = ll2 = ll3 = ll4 = ll00Z; + c1r = c2r = c3r = c4r = (tint3 ? pBaseRed : 1.0f) * 0.8f; + c1g = c2g = c3g = c4g = (tint3 ? pBaseGreen : 1.0f) * 0.8f; + c1b = c2b = c3b = c4b = (tint3 ? pBaseBlue : 1.0f) * 0.8f; + c1r *= ll1; + c1g *= ll1; + c1b *= ll1; + c2r *= ll2; + c2g *= ll2; + c2b *= ll2; + c3r *= ll3; + c3g *= ll3; + c3b *= ll3; + c4r *= ll4; + c4g *= ll4; + c4b *= ll4; + renderSouth(tt, (float) pX, (float) pY, (float) pZ, tt->getTexture(level, pX, pY, pZ, 3)); + i = true; + } + if ((noCulling) || (tt->shouldRenderFace(level, pX - 1, pY, pZ, 4))) { + if (blsmooth > 0) { + pX--; + llxy0 = tt->getBrightness(level, pX, pY - 1, pZ); + llx0z = tt->getBrightness(level, pX, pY, pZ - 1); + llx0Z = tt->getBrightness(level, pX, pY, pZ + 1); + llxY0 = tt->getBrightness(level, pX, pY + 1, pZ); + + if (llTransx0z || llTransxy0) { + llxyz = tt->getBrightness(level, pX, pY - 1, pZ - 1); + } else { + llxyz = llx0z; + } + if (llTransx0Z || llTransxy0) { + llxyZ = tt->getBrightness(level, pX, pY - 1, pZ + 1); + } else { + llxyZ = llx0Z; + } + if (llTransx0z || llTransxY0) { + llxYz = tt->getBrightness(level, pX, pY + 1, pZ - 1); + } else { + llxYz = llx0z; + } + if (llTransx0Z || llTransxY0) { + llxYZ = tt->getBrightness(level, pX, pY + 1, pZ + 1); + } else { + llxYZ = llx0Z; + } + pX++; + ll4 = (llxy0 + llxyZ + llx00 + llx0Z) / 4.0f; + ll1 = (llx00 + llx0Z + llxY0 + llxYZ) / 4.0f; + ll2 = (llx0z + llx00 + llxYz + llxY0) / 4.0f; + ll3 = (llxyz + llxy0 + llx0z + llx00) / 4.0f; + } else ll1 = ll2 = ll3 = ll4 = llx00; + c1r = c2r = c3r = c4r = (tint4 ? pBaseRed : 1.0f) * 0.6f; + c1g = c2g = c3g = c4g = (tint4 ? pBaseGreen : 1.0f) * 0.6f; + c1b = c2b = c3b = c4b = (tint4 ? pBaseBlue : 1.0f) * 0.6f; + c1r *= ll1; + c1g *= ll1; + c1b *= ll1; + c2r *= ll2; + c2g *= ll2; + c2b *= ll2; + c3r *= ll3; + c3g *= ll3; + c3b *= ll3; + c4r *= ll4; + c4g *= ll4; + c4b *= ll4; + renderWest(tt, (float) pX, (float) pY, (float) pZ, tt->getTexture(level, pX, pY, pZ, 4)); + i = true; + } + if ((noCulling) || (tt->shouldRenderFace(level, pX + 1, pY, pZ, 5))) { + if (blsmooth > 0) { + pX++; + llXy0 = tt->getBrightness(level, pX, pY - 1, pZ); + llX0z = tt->getBrightness(level, pX, pY, pZ - 1); + llX0Z = tt->getBrightness(level, pX, pY, pZ + 1); + llXY0 = tt->getBrightness(level, pX, pY + 1, pZ); + + if (llTransXy0 || llTransX0z) { + llXyz = tt->getBrightness(level, pX, pY - 1, pZ - 1); + } else { + llXyz = llX0z; + } + if (llTransXy0 || llTransX0Z) { + llXyZ = tt->getBrightness(level, pX, pY - 1, pZ + 1); + } else { + llXyZ = llX0Z; + } + if (llTransXY0 || llTransX0z) { + llXYz = tt->getBrightness(level, pX, pY + 1, pZ - 1); + } else { + llXYz = llX0z; + } + if (llTransXY0 || llTransX0Z) { + llXYZ = tt->getBrightness(level, pX, pY + 1, pZ + 1); + } else { + llXYZ = llX0Z; + } + pX--; + ll1 = (llXy0 + llXyZ + llX00 + llX0Z) / 4.0f; + ll4 = (llX00 + llX0Z + llXY0 + llXYZ) / 4.0f; + ll3 = (llX0z + llX00 + llXYz + llXY0) / 4.0f; + ll2 = (llXyz + llXy0 + llX0z + llX00) / 4.0f; + } else ll1 = ll2 = ll3 = ll4 = llX00; + c1r = c2r = c3r = c4r = (tint5 ? pBaseRed : 1.0f) * 0.6f; + c1g = c2g = c3g = c4g = (tint5 ? pBaseGreen : 1.0f) * 0.6f; + c1b = c2b = c3b = c4b = (tint5 ? pBaseBlue : 1.0f) * 0.6f; + c1r *= ll1; + c1g *= ll1; + c1b *= ll1; + c2r *= ll2; + c2g *= ll2; + c2b *= ll2; + c3r *= ll3; + c3g *= ll3; + c3b *= ll3; + c4r *= ll4; + c4g *= ll4; + c4b *= ll4; + + renderEast(tt, (float) pX, (float) pY, (float) pZ, tt->getTexture(level, pX, pY, pZ, 5)); + i = true; + } + applyAmbienceOcclusion = false; + return i; +} + +bool TileRenderer::tesselateCactusInWorld(Tile* tt, int x, int y, int z) { + int col = tt->getColor(level, x, y, z); + float r = ((col >> 16) & 0xff) / 255.0f; + float g = ((col >> 8) & 0xff) / 255.0f; + float b = ((col) & 0xff) / 255.0f; + return tesselateCactusInWorld(tt, x, y, z, r, g, b); +} + +bool TileRenderer::tesselateCactusInWorld(Tile* tt, int x, int y, int z, float r, float g, float b) { + Tesselator& t = Tesselator::instance; + + bool changed = false; + float c10 = 0.5f; + float c11 = 1; + float c2 = 0.8f; + float c3 = 0.6f; + + float r10 = c10 * r; + float r11 = c11 * r; + float r2 = c2 * r; + float r3 = c3 * r; + + float g10 = c10 * g; + float g11 = c11 * g; + float g2 = c2 * g; + float g3 = c3 * g; + + float b10 = c10 * b; + float b11 = c11 * b; + float b2 = c2 * b; + float b3 = c3 * b; + + float s = 1 / 16.0f; + const float X = (float)x; + const float Y = (float)y; + const float Z = (float)z; + + float centerBrightness = tt->getBrightness(level, x, y, z); + + if (noCulling || tt->shouldRenderFace(level, x, y - 1, z, 0)) { + float br = tt->getBrightness(level, x, y - 1, z); + // if (Tile::lightEmission[tt->id] > br*Level.MAX_BRIGHTNESS) br = +// Tile::lightEmission[tt->id]/Level.MAX_BRIGHTNESS; + t.color(r10 * br, g10 * br, b10 * br); + renderFaceDown(tt, X, Y, Z, tt->getTexture(level, x, y, z, 0)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x, y + 1, z, 1)) { + float br = tt->getBrightness(level, x, y + 1, z); + if (tt->yy1 != 1 && !tt->material->isLiquid()) br = centerBrightness; + // if (Tile::lightEmission[tt->id] > br*Level.MAX_BRIGHTNESS) br = +// Tile::lightEmission[tt->id]/Level.MAX_BRIGHTNESS; + t.color(r11 * br, g11 * br, b11 * br); + renderFaceUp(tt, X, Y, Z, tt->getTexture(level, x, y, z, 1)); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x, y, z - 1, 2)) { + float br = tt->getBrightness(level, x, y, z - 1); + if (tt->zz0 > 0) br = centerBrightness; + // if (Tile::lightEmission[tt->id] > br*Level.MAX_BRIGHTNESS) br = +// Tile::lightEmission[tt->id]/Level.MAX_BRIGHTNESS; + t.color(r2 * br, g2 * br, b2 * br); + t.addOffset(0, 0, s); + renderNorth(tt, X, Y, Z, tt->getTexture(level, x, y, z, 2)); + t.addOffset(0, 0, -s); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x, y, z + 1, 3)) { + float br = tt->getBrightness(level, x, y, z + 1); + if (tt->zz1 < 1) br = centerBrightness; + // if (Tile::lightEmission[tt->id] > br*Level.MAX_BRIGHTNESS) br = +// Tile::lightEmission[tt->id]/Level.MAX_BRIGHTNESS; + t.color(r2 * br, g2 * br, b2 * br); + t.addOffset(0, 0, -s); + renderSouth(tt, X, Y, Z, tt->getTexture(level, x, y, z, 3)); + t.addOffset(0, 0, s); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x - 1, y, z, 4)) { + float br = tt->getBrightness(level, x - 1, y, z); + if (tt->xx0 > 0) br = centerBrightness; + // if (Tile::lightEmission[tt->id] > br*Level.MAX_BRIGHTNESS) br = +// Tile::lightEmission[tt->id]/Level.MAX_BRIGHTNESS; + t.color(r3 * br, g3 * br, b3 * br); + t.addOffset(s, 0, 0); + renderWest(tt, X, Y, Z, tt->getTexture(level, x, y, z, 4)); + t.addOffset(-s, 0, 0); + changed = true; + } + + if (noCulling || tt->shouldRenderFace(level, x + 1, y, z, 5)) { + float br = tt->getBrightness(level, x + 1, y, z); + if (tt->xx1 < 1) br = centerBrightness; + // if (Tile::lightEmission[tt->id] > br*Level.MAX_BRIGHTNESS) br = +// Tile::lightEmission[tt->id]/Level.MAX_BRIGHTNESS; + t.color(r3 * br, g3 * br, b3 * br); + t.addOffset(-s, 0, 0); + renderEast(tt, X, Y, Z, tt->getTexture(level, x, y, z, 5)); + t.addOffset(s, 0, 0); + changed = true; + } + + return changed; +} + +bool TileRenderer::tesselateFenceInWorld(FenceTile* tt, int x, int y, int z) { + bool changed = true; + + float a = 6 / 16.0f; + float b = 10 / 16.0f; + tt->setShape(a, 0, a, b, 1, b); + tesselateBlockInWorld(tt, x, y, z); + + bool vertical = false; + bool horizontal = false; + + bool l = tt->connectsTo(level, x - 1, y, z); + bool r = tt->connectsTo(level, x + 1, y, z); + bool u = tt->connectsTo(level, x, y, z - 1); + bool d = tt->connectsTo(level, x, y, z + 1); + + if (l || r) vertical = true; + if (u || d) horizontal = true; + + if (!vertical && !horizontal) vertical = true; + + a = 7 / 16.0f; + b = 9 / 16.0f; + float h0 = 12 / 16.0f; + float h1 = 15 / 16.0f; + + float x0 = l ? 0 : a; + float x1 = r ? 1 : b; + float z0 = u ? 0 : a; + float z1 = d ? 1 : b; + + if (vertical) { + tt->setShape(x0, h0, a, x1, h1, b); + tesselateBlockInWorld(tt, x, y, z); + } + if (horizontal) { + tt->setShape(a, h0, z0, b, h1, z1); + tesselateBlockInWorld(tt, x, y, z); + } + + h0 = 6 / 16.0f; + h1 = 9 / 16.0f; + if (vertical) { + tt->setShape(x0, h0, a, x1, h1, b); + tesselateBlockInWorld(tt, x, y, z); + } + if (horizontal) { + tt->setShape(a, h0, z0, b, h1, z1); + tesselateBlockInWorld(tt, x, y, z); + } + + tt->setShape(0, 0, 0, 1, 1, 1); + return changed; +} + +bool TileRenderer::tesselateFenceGateInWorld(FenceGateTile* tt, int x, int y, int z) { + bool changed = true; + + int data = level->getData(x, y, z); + bool isOpen = FenceGateTile::isOpen(data); + int direction = FenceGateTile::getDirection(data); + + const float h00 = 6 / 16.0f; + const float h01 = 9 / 16.0f; + const float h10 = 12 / 16.0f; + const float h11 = 15 / 16.0f; + const float h20 = 5 / 16.0f; + const float h21 = 16 / 16.0f; + + // edge sticks + if (direction == Direction::EAST || direction == Direction::WEST) { + float x0 = 7 / 16.0f; + float x1 = 9 / 16.0f; + float z0 = 0 / 16.0f; + float z1 = 2 / 16.0f; + tt->setShape(x0, h20, z0, x1, h21, z1); + tesselateBlockInWorld(tt, x, y, z); + + z0 = 14 / 16.0f; + z1 = 16 / 16.0f; + tt->setShape(x0, h20, z0, x1, h21, z1); + tesselateBlockInWorld(tt, x, y, z); + } else { + float x0 = 0 / 16.0f; + float x1 = 2 / 16.0f; + float z0 = 7 / 16.0f; + float z1 = 9 / 16.0f; + tt->setShape(x0, h20, z0, x1, h21, z1); + tesselateBlockInWorld(tt, x, y, z); + + x0 = 14 / 16.0f; + x1 = 16 / 16.0f; + tt->setShape(x0, h20, z0, x1, h21, z1); + tesselateBlockInWorld(tt, x, y, z); + } + if (!isOpen) { + if (direction == Direction::EAST || direction == Direction::WEST) { + float x0 = 7 / 16.0f; + float x1 = 9 / 16.0f; + float z0 = 6 / 16.0f; + float z1 = 8 / 16.0f; + tt->setShape(x0, h00, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + z0 = 8 / 16.0f; + z1 = 10 / 16.0f; + tt->setShape(x0, h00, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + z0 = 10 / 16.0f; + z1 = 14 / 16.0f; + tt->setShape(x0, h00, z0, x1, h01, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h10, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + z0 = 2 / 16.0f; + z1 = 6 / 16.0f; + tt->setShape(x0, h00, z0, x1, h01, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h10, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + } else { + float x0 = 6 / 16.0f; + float x1 = 8 / 16.0f; + float z0 = 7 / 16.0f; + float z1 = 9 / 16.0f; + tt->setShape(x0, h00, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + x0 = 8 / 16.0f; + x1 = 10 / 16.0f; + tt->setShape(x0, h00, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + x0 = 10 / 16.0f; + x1 = 14 / 16.0f; + tt->setShape(x0, h00, z0, x1, h01, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h10, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + x0 = 2 / 16.0f; + x1 = 6 / 16.0f; + tt->setShape(x0, h00, z0, x1, h01, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h10, z0, x1, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + + } + } else { + if (direction == Direction::EAST) { + + const float z00 = 0 / 16.0f; + const float z01 = 2 / 16.0f; + const float z10 = 14 / 16.0f; + const float z11 = 16 / 16.0f; + + const float x0 = 9 / 16.0f; + const float x1 = 13 / 16.0f; + const float x2 = 15 / 16.0f; + + tt->setShape(x1, h00, z00, x2, h11, z01); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x1, h00, z10, x2, h11, z11); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x0, h00, z00, x1, h01, z01); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h00, z10, x1, h01, z11); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x0, h10, z00, x1, h11, z01); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h10, z10, x1, h11, z11); + tesselateBlockInWorld(tt, x, y, z); + } else if (direction == Direction::WEST) { + const float z00 = 0 / 16.0f; + const float z01 = 2 / 16.0f; + const float z10 = 14 / 16.0f; + const float z11 = 16 / 16.0f; + + const float x0 = 1 / 16.0f; + const float x1 = 3 / 16.0f; + const float x2 = 7 / 16.0f; + + tt->setShape(x0, h00, z00, x1, h11, z01); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x0, h00, z10, x1, h11, z11); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x1, h00, z00, x2, h01, z01); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x1, h00, z10, x2, h01, z11); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x1, h10, z00, x2, h11, z01); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x1, h10, z10, x2, h11, z11); + tesselateBlockInWorld(tt, x, y, z); + } else if (direction == Direction::SOUTH) { + + const float x00 = 0 / 16.0f; + const float x01 = 2 / 16.0f; + const float x10 = 14 / 16.0f; + const float x11 = 16 / 16.0f; + + const float z0 = 9 / 16.0f; + const float z1 = 13 / 16.0f; + const float z2 = 15 / 16.0f; + + tt->setShape(x00, h00, z1, x01, h11, z2); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x10, h00, z1, x11, h11, z2); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x00, h00, z0, x01, h01, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x10, h00, z0, x11, h01, z1); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x00, h10, z0, x01, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x10, h10, z0, x11, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + } else if (direction == Direction::NORTH) { + const float x00 = 0 / 16.0f; + const float x01 = 2 / 16.0f; + const float x10 = 14 / 16.0f; + const float x11 = 16 / 16.0f; + + const float z0 = 1 / 16.0f; + const float z1 = 3 / 16.0f; + const float z2 = 7 / 16.0f; + + tt->setShape(x00, h00, z0, x01, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x10, h00, z0, x11, h11, z1); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x00, h00, z1, x01, h01, z2); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x10, h00, z1, x11, h01, z2); + tesselateBlockInWorld(tt, x, y, z); + + tt->setShape(x00, h10, z1, x01, h11, z2); + tesselateBlockInWorld(tt, x, y, z); + tt->setShape(x10, h10, z1, x11, h11, z2); + tesselateBlockInWorld(tt, x, y, z); + } + } + + tt->setShape(0, 0, 0, 1, 1, 1); + return changed; +} + +bool TileRenderer::tesselateBedInWorld(Tile *tt, int x, int y, int z) { + Tesselator& t = Tesselator::instance; + int data = level->getData(x, y, z); + int direction = BedTile::getDirection(data); + bool isHead = BedTile::isHeadPiece(data); + + float c10 = 0.5f; + float c11 = 1; + float c2 = 0.8f; + float c3 = 0.6f; + + float r11 = c11; + float g11 = c11; + float b11 = c11; + + float r10 = c10; + float r2 = c2; + float r3 = c3; + + float g10 = c10; + float g2 = c2; + float g3 = c3; + + float b10 = c10; + float b2 = c2; + float b3 = c3; + + float centerBrightness = tt->getBrightness(level, x, y, z); + // render wooden underside + { + t.color(r10 * centerBrightness, g10 * centerBrightness, b10 * centerBrightness); + int tex = tt->getTexture(level, x, y, z, Facing::DOWN); + + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt) / 256.0f; + float u1 = (xt + 16 - 0.01f) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 16 - 0.01f) / 256.0f; + + float x0 = x + tt->xx0; + float x1 = x + tt->xx1; + float y0 = y + tt->yy0 + 3.0f / 16.0f; + float z0 = z + tt->zz0; + float z1 = z + tt->zz1; + + t.vertexUV(x0, y0, z1, u0, v1); + t.vertexUV(x0, y0, z0, u0, v0); + t.vertexUV(x1, y0, z0, u1, v0); + t.vertexUV(x1, y0, z1, u1, v1); + } + + // render bed top + + float brightness = tt->getBrightness(level, x, y + 1, z); + t.color(r11 * brightness, g11 * brightness, b11 * brightness); + + int tex = tt->getTexture(level, x, y, z, Facing::UP); + + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt) / 256.0f; + float u1 = (xt + 16 ) / 256.0f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 16) / 256.0f; + + // Default is west + float topLeftU = u0; + float topRightU = u1; + float topLeftV = v0; + float topRightV = v0; + float bottomLeftU = u0; + float bottomRightU = u1; + float bottomLeftV = v1; + float bottomRightV = v1; + + if (direction == Direction::SOUTH) { + // rotate 90 degrees clockwise + topRightU = u0; + topLeftV = v1; + bottomLeftU = u1; + bottomRightV = v0; + } else if (direction == Direction::NORTH) { + // rotate 90 degrees counter-clockwise + topLeftU = u1; + topRightV = v1; + bottomRightU = u0; + bottomLeftV = v0; + } else if (direction == Direction::EAST) { + // rotate 180 degrees + topLeftU = u1; + topRightV = v1; + bottomRightU = u0; + bottomLeftV = v0; + topRightU = u0; + topLeftV = v1; + bottomLeftU = u1; + bottomRightV = v0; + } + + float x0 = x + tt->xx0; + float x1 = x + tt->xx1; + float y1 = y + tt->yy1; + float z0 = z + tt->zz0; + float z1 = z + tt->zz1; + + t.vertexUV(x1, y1, z1, bottomLeftU, bottomLeftV); + t.vertexUV(x1, y1, z0, topLeftU, topLeftV); + t.vertexUV(x0, y1, z0, topRightU, topRightV); + t.vertexUV(x0, y1, z1, bottomRightU, bottomRightV); + + // determine which edge to skip (the one between foot and head piece) + int skipEdge = Direction::DIRECTION_FACING[direction]; + if (isHead) { + skipEdge = Direction::DIRECTION_FACING[Direction::DIRECTION_OPPOSITE[direction]]; + } + // and which edge to x-flip + int flipEdge = Facing::WEST; + switch (direction) { + case Direction::NORTH: + break; + case Direction::SOUTH: + flipEdge = Facing::EAST; + break; + case Direction::EAST: + flipEdge = Facing::NORTH; + break; + case Direction::WEST: + flipEdge = Facing::SOUTH; + break; + } + + if ((skipEdge != Facing::NORTH) && (noCulling || tt->shouldRenderFace(level, x, y, z - 1, Facing::NORTH))) { + float br = tt->getBrightness(level, x, y, z - 1); + if (tt->zz0 > 0) br = centerBrightness; + + t.color(r2 * br, g2 * br, b2 * br); + xFlipTexture = flipEdge == Facing::NORTH; + renderNorth(tt, float(x), float(y), float(z), tt->getTexture(level, x, y, z, 2)); + } + + if ((skipEdge != Facing::SOUTH) && (noCulling || tt->shouldRenderFace(level, x, y, z + 1, Facing::SOUTH))) { + float br = tt->getBrightness(level, x, y, z + 1); + if (tt->zz1 < 1) br = centerBrightness; + + t.color(r2 * br, g2 * br, b2 * br); + + xFlipTexture = flipEdge == Facing::SOUTH; + renderSouth(tt, float(x), float(y), float(z), tt->getTexture(level, x, y, z, 3)); + } + + if ((skipEdge != Facing::WEST) && (noCulling || tt->shouldRenderFace(level, x - 1, y, z, Facing::WEST))) { + float br = tt->getBrightness(level, x - 1, y, z); + if (tt->xx0 > 0) br = centerBrightness; + + t.color(r3 * br, g3 * br, b3 * br); + xFlipTexture = flipEdge == Facing::WEST; + renderWest(tt, float(x), float(y), float(z), tt->getTexture(level, x, y, z, 4)); + } + + if ((skipEdge != Facing::EAST) && (noCulling || tt->shouldRenderFace(level, x + 1, y, z, Facing::EAST))) { + float br = tt->getBrightness(level, x + 1, y, z); + if (tt->xx1 < 1) br = centerBrightness; + + t.color(r3 * br, g3 * br, b3 * br); + xFlipTexture = flipEdge == Facing::EAST; + renderEast(tt, float(x), float(y), float(z), tt->getTexture(level, x, y, z, 5)); + } + xFlipTexture = false; + return true; +} + +bool TileRenderer::tesselateStairsInWorld( StairTile* tt, int x, int y, int z ) +{ + + tt->setBaseShape(level, x, y, z); + tesselateBlockInWorld(tt, x, y, z); + + bool checkInnerPiece = tt->setStepShape(level, x, y, z); + tesselateBlockInWorld(tt, x, y, z); + + if (checkInnerPiece) { + if (tt->setInnerPieceShape(level, x, y, z)) { + tesselateBlockInWorld(tt, x, y, z); + } + } + + // setShape(0, 0, 0, 1, 1, 1); + return true; +} + +bool TileRenderer::tesselateDoorInWorld( Tile* tt, int x, int y, int z ) +{ + Tesselator& t = Tesselator::instance; + + DoorTile* dt = (DoorTile*) tt; + + bool changed = false; + float c10 = 0.5f; + float c11 = 1; + float c2 = 0.8f; + float c3 = 0.6f; + + float centerBrightness = tt->getBrightness(level, x, y, z); + + { + float br = tt->getBrightness(level, x, y - 1, z); + if (dt->yy0 > 0) br = centerBrightness; + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(c10 * br, c10 * br, c10 * br); + renderFaceDown(tt, (float)x, (float)y, (float)z, tt->getTexture(level, x, y, z, 0)); + changed = true; + } + + { + float br = tt->getBrightness(level, x, y + 1, z); + if (dt->yy1 < 1) br = centerBrightness; + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(c11 * br, c11 * br, c11 * br); + renderFaceUp(tt, (float)x, (float)y, (float)z, tt->getTexture(level, x, y, z, 1)); + changed = true; + } + + { + float br = tt->getBrightness(level, x, y, z - 1); + if (dt->zz0 > 0) br = centerBrightness; + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(c2 * br, c2 * br, c2 * br); + int tex = tt->getTexture(level, x, y, z, 2); + if (tex < 0) { + xFlipTexture = true; + tex = -tex; + } + renderNorth(tt, (float)x, (float)y, (float)z, tex); + changed = true; + xFlipTexture = false; + } + + { + float br = tt->getBrightness(level, x, y, z + 1); + if (dt->zz1 < 1) br = centerBrightness; + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(c2 * br, c2 * br, c2 * br); + int tex = tt->getTexture(level, x, y, z, 3); + if (tex < 0) { + xFlipTexture = true; + tex = -tex; + } + renderSouth(tt, (float)x, (float)y, (float)z, tex); + changed = true; + xFlipTexture = false; + } + + { + float br = tt->getBrightness(level, x - 1, y, z); + if (dt->xx0 > 0) br = centerBrightness; + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(c3 * br, c3 * br, c3 * br); + int tex = tt->getTexture(level, x, y, z, 4); + if (tex < 0) { + xFlipTexture = true; + tex = -tex; + } + renderWest(tt, (float)x, (float)y, (float)z, tex); + changed = true; + xFlipTexture = false; + } + + { + float br = tt->getBrightness(level, x + 1, y, z); + if (dt->xx1 < 1) br = centerBrightness; + if (Tile::lightEmission[tt->id] > 0) br = 1.0f; + t.color(c3 * br, c3 * br, c3 * br); + int tex = tt->getTexture(level, x, y, z, 5); + if (tex < 0) { + xFlipTexture = true; + tex = -tex; + } + renderEast(tt, (float)x, (float)y, (float)z, tex); + changed = true; + xFlipTexture = false; + } + + return changed; +} + +bool TileRenderer::tesselateRowInWorld( Tile* tt, int x, int y, int z ) { + Tesselator& t = Tesselator::instance; + float br = tt->getBrightness(level, x, y, z); + t.color(br, br, br); + tesselateRowTexture(tt, level->getData(x, y, z), float(x), y - 1 / 16.0f, float(z)); + return true; +} + +void TileRenderer::renderFaceDown( Tile* tt, float x, float y, float z, int tex ) +{ + Tesselator& t = Tesselator::instance; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt + tt->xx0 * 16) / 256.0f; + float u1 = (xt + tt->xx1 * 16 - 0.01f) / 256.0f; + float v0 = (yt + tt->zz0 * 16) / 256.0f; + float v1 = (yt + tt->zz1 * 16 - 0.01f) / 256.0f; + + if (tt->xx0 < 0 || tt->xx1 > 1) { + u0 = (xt + 0 * 15.99f) / 256.0f; + u1 = (xt + 1 * 15.99f) / 256.0f; + } + if (tt->zz0 < 0 || tt->zz1 > 1) { + v0 = (yt + 0 * 15.99f) / 256.0f; + v1 = (yt + 1 * 15.99f) / 256.0f; + } + + float x0 = x + tt->xx0; + float x1 = x + tt->xx1; + float y0 = y + tt->yy0; + float z0 = z + tt->zz0; + float z1 = z + tt->zz1; + + if (applyAmbienceOcclusion) { + t.color(c1r, c1g, c1b); + t.vertexUV(x0, y0, z1, u0, v1); + t.color(c2r, c2g, c2b); + t.vertexUV(x0, y0, z0, u0, v0); + t.color(c3r, c3g, c3b); + t.vertexUV(x1, y0, z0, u1, v0); + t.color(c4r, c4g, c4b); + t.vertexUV(x1, y0, z1, u1, v1); + } else { + t.vertexUV(x0, y0, z1, u0, v1); + t.vertexUV(x0, y0, z0, u0, v0); + t.vertexUV(x1, y0, z0, u1, v0); + t.vertexUV(x1, y0, z1, u1, v1); + } +} + +void TileRenderer::renderFaceUp( Tile* tt, float x, float y, float z, int tex ) +{ + Tesselator& t = Tesselator::instance; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt + tt->xx0 * 16) / 256.0f; + float u1 = (xt + tt->xx1 * 16 - 0.01f) / 256.0f; + float v0 = (yt + tt->zz0 * 16) / 256.0f; + float v1 = (yt + tt->zz1 * 16 - 0.01f) / 256.0f; + + if (tt->xx0 < 0 || tt->xx1 > 1) { + u0 = (xt + 0 * 15.99f) / 256.0f; + u1 = (xt + 1 * 15.99f) / 256.0f; + } + if (tt->zz0 < 0 || tt->zz1 > 1) { + v0 = (yt + 0 * 15.99f) / 256.0f; + v1 = (yt + 1 * 15.99f) / 256.0f; + } + + float x0 = x + tt->xx0; + float x1 = x + tt->xx1; + float y1 = y + tt->yy1; + float z0 = z + tt->zz0; + float z1 = z + tt->zz1; + + if (applyAmbienceOcclusion) { + t.color(c1r, c1g, c1b); + t.vertexUV(x1, y1, z1, u1, v1); + t.color(c2r, c2g, c2b); + t.vertexUV(x1, y1, z0, u1, v0); + t.color(c3r, c3g, c3b); + t.vertexUV(x0, y1, z0, u0, v0); + t.color(c4r, c4g, c4b); + t.vertexUV(x0, y1, z1, u0, v1); + } else { + t.vertexUV(x1, y1, z1, u1, v1); + t.vertexUV(x1, y1, z0, u1, v0); + t.vertexUV(x0, y1, z0, u0, v0); + t.vertexUV(x0, y1, z1, u0, v1); + } +} + +void TileRenderer::renderNorth( Tile* tt, float x, float y, float z, int tex ) +{ + Tesselator& t = Tesselator::instance; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + float u0 = (xt + tt->xx0 * 16) / 256.0f; + float u1 = (xt + tt->xx1 * 16 - 0.01f) / 256.0f; + float v0 = (yt + 16 - tt->yy1 * 16) / 256.0f; + float v1 = (yt + 16 - tt->yy0 * 16 - 0.01f) / 256.0f; + if (xFlipTexture) { + float tmp = u0; + u0 = u1; + u1 = tmp; + } + + if (tt->xx0 < 0 || tt->xx1 > 1) { + u0 = (xt + 0 * 15.99f) / 256.0f; + u1 = (xt + 1 * 15.99f) / 256.0f; + } + if (tt->yy0 < 0 || tt->yy1 > 1) { + v0 = (yt + 0 * 15.99f) / 256.0f; + v1 = (yt + 1 * 15.99f) / 256.0f; + } + + float x0 = x + tt->xx0; + float x1 = x + tt->xx1; + float y0 = y + tt->yy0; + float y1 = y + tt->yy1; + float z0 = z + tt->zz0; + + if (applyAmbienceOcclusion) { + t.color(c1r, c1g, c1b); + t.vertexUV(x0, y1, z0, u1, v0); + t.color(c2r, c2g, c2b); + t.vertexUV(x1, y1, z0, u0, v0); + t.color(c3r, c3g, c3b); + t.vertexUV(x1, y0, z0, u0, v1); + t.color(c4r, c4g, c4b); + t.vertexUV(x0, y0, z0, u1, v1); + } else { + t.vertexUV(x0, y1, z0, u1, v0); + t.vertexUV(x1, y1, z0, u0, v0); + t.vertexUV(x1, y0, z0, u0, v1); + t.vertexUV(x0, y0, z0, u1, v1); + } +} + +void TileRenderer::renderSouth( Tile* tt, float x, float y, float z, int tex ) +{ + Tesselator& t = Tesselator::instance; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt + tt->xx0 * 16) / 256.0f; + float u1 = (xt + tt->xx1 * 16 - 0.01f) / 256.0f; + float v0 = (yt + 16 - tt->yy1 * 16) / 256.0f; + float v1 = (yt + 16 - tt->yy0 * 16 - 0.01f) / 256.0f; + if (xFlipTexture) { + float tmp = u0; + u0 = u1; + u1 = tmp; + } + + if (tt->xx0 < 0 || tt->xx1 > 1) { + u0 = (xt + 0 * 15.99f) / 256.0f; + u1 = (xt + 1 * 15.99f) / 256.0f; + } + if (tt->yy0 < 0 || tt->yy1 > 1) { + v0 = (yt + 0 * 15.99f) / 256.0f; + v1 = (yt + 1 * 15.99f) / 256.0f; + } + + float x0 = x + tt->xx0; + float x1 = x + tt->xx1; + float y0 = y + tt->yy0; + float y1 = y + tt->yy1; + float z1 = z + tt->zz1; + + if (applyAmbienceOcclusion) { + t.color(c1r, c1g, c1b); + t.vertexUV(x0, y1, z1, u0, v0); + t.color(c2r, c2g, c2b); + t.vertexUV(x0, y0, z1, u0, v1); + t.color(c3r, c3g, c3b); + t.vertexUV(x1, y0, z1, u1, v1); + t.color(c4r, c4g, c4b); + t.vertexUV(x1, y1, z1, u1, v0); + } else { + t.vertexUV(x0, y1, z1, u0, v0); + t.vertexUV(x0, y0, z1, u0, v1); + t.vertexUV(x1, y0, z1, u1, v1); + t.vertexUV(x1, y1, z1, u1, v0); + } +} + +void TileRenderer::renderWest( Tile* tt, float x, float y, float z, int tex ) +{ + Tesselator& t = Tesselator::instance; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt + tt->zz0 * 16) / 256.0f; + float u1 = (xt + tt->zz1 * 16 - 0.01f) / 256.0f; + float v0 = (yt + 16 - tt->yy1 * 16) / 256.0f; + float v1 = (yt + 16 - tt->yy0 * 16 - 0.01f) / 256.0f; + if (xFlipTexture) { + float tmp = u0; + u0 = u1; + u1 = tmp; + } + + if (tt->zz0 < 0 || tt->zz1 > 1) { + u0 = (xt + 0 * 15.99f) / 256.0f; + u1 = (xt + 1 * 15.99f) / 256.0f; + } + if (tt->yy0 < 0 || tt->yy1 > 1) { + v0 = (yt + 0 * 15.99f) / 256.0f; + v1 = (yt + 1 * 15.99f) / 256.0f; + } + + float x0 = x + tt->xx0; + float y0 = y + tt->yy0; + float y1 = y + tt->yy1; + float z0 = z + tt->zz0; + float z1 = z + tt->zz1; + + if (applyAmbienceOcclusion) { + t.color(c1r, c1g, c1b); + t.vertexUV(x0, y1, z1, u1, v0); + t.color(c2r, c2g, c2b); + t.vertexUV(x0, y1, z0, u0, v0); + t.color(c3r, c3g, c3b); + t.vertexUV(x0, y0, z0, u0, v1); + t.color(c4r, c4g, c4b); + t.vertexUV(x0, y0, z1, u1, v1); + } else { + t.vertexUV(x0, y1, z1, u1, v0); + t.vertexUV(x0, y1, z0, u0, v0); + t.vertexUV(x0, y0, z0, u0, v1); + t.vertexUV(x0, y0, z1, u1, v1); + } +} + +void TileRenderer::renderEast( Tile* tt, float x, float y, float z, int tex ) +{ + Tesselator& t = Tesselator::instance; + + if (fixedTexture >= 0) tex = fixedTexture; + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + + float u0 = (xt + tt->zz0 * 16) / 256.0f; + float u1 = (xt + tt->zz1 * 16 - 0.01f) / 256.0f; + float v0 = (yt + 16 - tt->yy1 * 16) / 256.0f; + float v1 = (yt + 16 - tt->yy0 * 16 - 0.01f) / 256.0f; + if (xFlipTexture) { + float tmp = u0; + u0 = u1; + u1 = tmp; + } + + if (tt->zz0 < 0 || tt->zz1 > 1) { + u0 = (xt + 0 * 15.99f) / 256.0f; + u1 = (xt + 1 * 15.99f) / 256.0f; + } + if (tt->yy0 < 0 || tt->yy1 > 1) { + v0 = (yt + 0 * 15.99f) / 256.0f; + v1 = (yt + 1 * 15.99f) / 256.0f; + } + + float x1 = x + tt->xx1; + float y0 = y + tt->yy0; + float y1 = y + tt->yy1; + float z0 = z + tt->zz0; + float z1 = z + tt->zz1; + + if (applyAmbienceOcclusion) { + t.color(c1r, c1g, c1b); + t.vertexUV(x1, y0, z1, u0, v1); + t.color(c2r, c2g, c2b); + t.vertexUV(x1, y0, z0, u1, v1); + t.color(c3r, c3g, c3b); + t.vertexUV(x1, y1, z0, u1, v0); + t.color(c4r, c4g, c4b); + t.vertexUV(x1, y1, z1, u0, v0); + } else { + t.vertexUV(x1, y0, z1, u0, v1); + t.vertexUV(x1, y0, z0, u1, v1); + t.vertexUV(x1, y1, z0, u1, v0); + t.vertexUV(x1, y1, z1, u0, v0); + } +} + +void TileRenderer::renderTile( Tile* tile, int data ) +{ + Tesselator& t = Tesselator::instance; + + t.color(0xff, 0xff, 0xff); + int shape = tile->getRenderShape(); + + if (shape == Tile::SHAPE_BLOCK) { + tile->updateDefaultShape(); + t.addOffset(-0.5f, -0.5f, -0.5f); + t.begin(); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0, data)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1, data)); + renderNorth(tile, 0, 0, 0, tile->getTexture(2, data)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3, data)); + renderWest(tile, 0, 0, 0, tile->getTexture(4, data)); + renderEast(tile, 0, 0, 0, tile->getTexture(5, data)); + t.draw(); + + t.addOffset(0.5f, 0.5f, 0.5f); + + } else if (shape == Tile::SHAPE_CROSS_TEXTURE) { + t.begin(); + tesselateCrossTexture(tile, data, -0.5f, -0.5f, -0.5f); + t.draw(); + } else if(shape == Tile::SHAPE_STEM) { + t.begin(); + tile->updateDefaultShape(); + tesselateStemTexture(tile, data, tile->yy1, -0.5f, -0.5f, -0.5f); + t.draw(); + } else if (shape == Tile::SHAPE_CACTUS) { + tile->updateDefaultShape(); + t.offset(-0.5f, -0.5f, -0.5f); + float s = 1 / 16.0f; + t.begin(); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1)); + t.addOffset(0, 0, s); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + t.addOffset(0, 0, -s); + t.addOffset(0, 0, -s); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + t.addOffset(0, 0, s); + t.addOffset(s, 0, 0); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + t.addOffset(-s, 0, 0); + t.addOffset(-s, 0, 0); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + t.addOffset(s, 0, 0); + t.draw(); + t.offset(0, 0, 0);//0.5f, 0.5f, 0.5f); + } else if (shape == Tile::SHAPE_ROWS) { + t.begin(); + t.normal(0, -1, 0); + tesselateRowTexture(tile, data, -0.5f, -0.5f, -0.5f); + //} else if (shape == Tile::SHAPE_TORCH) { + //// t.begin(); + //// t.normal(0, -1, 0); + //// tesselateTorch(tile, -0.5f, -0.5f, -0.5f, 0, 0); + //// t.end(); + } else if (shape == Tile::SHAPE_ENTITYTILE_ANIMATED) { + EntityTileRenderer::instance->render(tile, data, 1.0f); + //glEnable(GL_RESCALE_NORMAL); + } else if (shape == Tile::SHAPE_STAIRS) { + t.addOffset(-0.5f, -0.5f, -0.5f); + t.begin(); + for (int i = 0; i < 2; i++) { + if (i == 0) tile->setShape(0, 0, 0, 1, 1, 0.5f); + if (i == 1) tile->setShape(0, 0, 0.5f, 1, 0.5f, 1); + + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1)); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + } + t.draw(); + t.addOffset(0.5f, 0.5f, 0.5f); + } + else if (shape == Tile::SHAPE_FENCE) { + t.addOffset(-0.5f, -0.5f, -0.5f); + t.begin(); + for (int i = 0; i < 4; i++) { + float w = 2 / 16.0f; + if (i == 0) tile->setShape(0.5f - w, 0, 0, 0.5f + w, 1, w * 2); + if (i == 1) tile->setShape(0.5f - w, 0, 1 - w * 2, 0.5f + w, 1, 1); + w = 1 / 16.0f; + if (i == 2) tile->setShape(0.5f - w, 1 - w * 3, -w * 2, 0.5f + w, 1 - w, 1 + w * 2); + if (i == 3) tile->setShape(0.5f - w, 0.5f - w * 3, -w * 2, 0.5f + w, 0.5f - w, 1 + w * 2); + + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1)); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + } + t.draw(); + t.addOffset(0.5f, 0.5f, 0.5f); + tile->setShape(0, 0, 0, 1, 1, 1); + } else if (shape == Tile::SHAPE_FENCE_GATE) { + t.addOffset(-0.5f, -0.5f, -0.5f); + t.begin(); + for (int i = 0; i < 3; i++) { + float w = 1 / 16.0f; + if (i == 0) tile->setShape(0.5f - w, .3f, 0, 0.5f + w, 1, w * 2); + if (i == 1) tile->setShape(0.5f - w, .3f, 1 - w * 2, 0.5f + w, 1, 1); + if (i == 2) tile->setShape(0.5f - w, .5f, w * 2, 0.5f + w, 1 - w, 1 - w * 2); + + renderFaceUp(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(1)); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + } + t.draw(); + t.addOffset(0.5f, 0.5f, 0.5f); + tile->setShape(0, 0, 0, 1, 1, 1); + } + +} + +bool TileRenderer::canRender( int renderShape ) +{ + if (renderShape == Tile::SHAPE_BLOCK) return true; + if (renderShape == Tile::SHAPE_CACTUS) return true; + if (renderShape == Tile::SHAPE_STAIRS) return true; + if (renderShape == Tile::SHAPE_FENCE) return true; + if (renderShape == Tile::SHAPE_FENCE_GATE) return true; + //if (renderShape == Tile::SHAPE_CROSS_TEXTURE) return true; + //if (renderShape == Tile::SHAPE_ENTITYTILE_ANIMATED) return true; + + return false; +} + +void TileRenderer::renderGuiTile( Tile* tile, int data ) +{ + Tesselator& t = Tesselator::instance; + + int shape = tile->getRenderShape(); + + if (shape == Tile::SHAPE_BLOCK) { + tile->updateDefaultShape(); + + t.begin(); + t.addOffset(-0.5f, -0.5f, -0.5f); + t.color(0xff, 0xff, 0xff); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1, data)); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0, data)); + + t.color(0x80, 0x80, 0x80); + renderNorth(tile, 0, 0, 0, tile->getTexture(2, data)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3, data)); + + t.color(0xbb, 0xbb, 0xbb); + renderEast(tile, 0, 0, 0, tile->getTexture(5, data)); + renderWest(tile, 0, 0, 0, tile->getTexture(4, data)); + t.draw(); + t.addOffset(0.5f, 0.5f, 0.5f); + + } else if (shape == Tile::SHAPE_CROSS_TEXTURE) { + t.begin(); + //t.normal(0, -1, 0); + tesselateCrossTexture(tile, data, -0.5f, -0.5f, -0.5f); + //t.end(); + t.draw(); + } else if (shape == Tile::SHAPE_CACTUS) { + tile->updateDefaultShape(); + t.begin(); + t.offset(-0.5f, -0.5f, -0.5f); + float s = 1 / 16.0f; + t.color(0xff, 0xff, 0xff); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1)); + + t.color(0x80, 0x80, 0x80); + t.addOffset(0, 0, s); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + t.addOffset(0, 0, -s-s); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + + t.color(0xbb, 0xbb, 0xbb); + t.addOffset(s, 0, s); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + t.addOffset(-s-s, 0, 0); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + + t.draw(); + t.addOffset(s+0.5f, 0.5f, 0.5f); + } else if (shape == Tile::SHAPE_STAIRS) { + t.offset(-0.5f, -0.5f, -0.5f); + t.begin(); + for (int i = 0; i < 2; i++) { + if (i == 0) tile->setShape(0, 0, 0, 1, 1, 0.5f); + if (i == 1) tile->setShape(0, 0, 0.5f, 1, 0.5f, 1); + + t.color(0xff, 0xff, 0xff); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1)); + + t.color(0x80, 0x80, 0x80); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + + t.color(0xbb, 0xbb, 0xbb); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + } + t.draw(); + t.offset(0, 0, 0); + } + else if (shape == Tile::SHAPE_FENCE) { + t.addOffset(-0.5f, -0.5f, -0.5f); + t.begin(); + for (int i = 0; i < 4; i++) { + float w = 2 / 16.0f; + if (i == 0) tile->setShape(0.5f - w, 0, 0, 0.5f + w, 1, w * 2); + if (i == 1) tile->setShape(0.5f - w, 0, 1 - w * 2, 0.5f + w, 1, 1); + w = 1 / 16.0f; + if (i == 2) tile->setShape(0.5f - w, 1 - w * 3, -w * 2, 0.5f + w, 1 - w, 1 + w * 2); + if (i == 3) tile->setShape(0.5f - w, 0.5f - w * 3, -w * 2, 0.5f + w, 0.5f - w, 1 + w * 2); + + t.color(0xff, 0xff, 0xff); + + renderFaceDown(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(1)); + + t.color(0x80, 0x80, 0x80); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + + t.color(0xbb, 0xbb, 0xbb); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + } + t.draw(); + t.addOffset(0.5f, 0.5f, 0.5f); + tile->setShape(0, 0, 0, 1, 1, 1); + } + else if (shape == Tile::SHAPE_FENCE_GATE) { + t.addOffset(-0.5f, -0.5f, -0.5f); + t.begin(); + for (int i = 0; i < 3; i++) { + float w = 1 / 16.0f; + if (i == 0) tile->setShape(0.5f - w, .3f, 0, 0.5f + w, 1, w * 2); + if (i == 1) tile->setShape(0.5f - w, .3f, 1 - w * 2, 0.5f + w, 1, 1); + w = 1 / 16.0f; + if (i == 2) tile->setShape(0.5f - w, .5f, 0, 0.5f + w, 1 - w, 1); + + t.color(0xff, 0xff, 0xff); + renderFaceUp(tile, 0, 0, 0, tile->getTexture(0)); + renderFaceDown(tile, 0, 0, 0, tile->getTexture(1)); + + t.color(0x80, 0x80, 0x80); + renderNorth(tile, 0, 0, 0, tile->getTexture(2)); + renderSouth(tile, 0, 0, 0, tile->getTexture(3)); + + t.color(0xbb, 0xbb, 0xbb); + renderWest(tile, 0, 0, 0, tile->getTexture(4)); + renderEast(tile, 0, 0, 0, tile->getTexture(5)); + } + t.draw(); + tile->setShape(0, 0, 0, 1, 1, 1); + t.addOffset(0.5f, 0.5f, 0.5f); + } +} + +bool TileRenderer::tesselateThinFenceInWorld(ThinFenceTile* tt, int x, int y, int z) { + const int depth = 128; + Tesselator& t = Tesselator::instance; + + float br = tt->getBrightness(level, x, y, z); + int col = tt->getColor(level, x, y, z); + float r = ((col >> 16) & 0xff) / 255.0f; + float g = ((col >> 8) & 0xff) / 255.0f; + float b = ((col) & 0xff) / 255.0f; + + //if (GameRenderer::anaglyph3d) { + // float cr = (r * 30 + g * 59 + b * 11) / 100; + // float cg = (r * 30 + g * 70) / (100); + // float cb = (r * 30 + b * 70) / (100); + + // r = cr; + // g = cg; + // b = cb; + //} + t.color(br * r, br * g, br * b); + + int tex = 0; + int edgeTex = 0; + + if (fixedTexture >= 0) { + tex = fixedTexture; + edgeTex = fixedTexture; + } else { + int data = level->getData(x, y, z); + tex = tt->getTexture(0, data); + edgeTex = tt->getEdgeTexture(); + } + + const int xt = (tex & 0xf) << 4; + const int yt = tex & 0xf0; + float u0 = (xt) / 256.0f; + const float u1 = (xt + 7.99f) / 256.0f; + const float u2 = (xt + 15.99f) / 256.0f; + const float v0 = (yt) / 256.0f; + const float v2 = (yt + 15.99f) / 256.0f; + + const int xet = (edgeTex & 0xf) << 4; + const int yet = edgeTex & 0xf0; + + const float iu0 = (xet + 7) / 256.0f; + const float iu1 = (xet + 8.99f) / 256.0f; + const float iv0 = (yet) / 256.0f; + const float iv1 = (yet + 8) / 256.0f; + const float iv2 = (yet + 15.99f) / 256.0f; + + const float x0 = (float)x; + const float x1 = x0 + .5f; + const float x2 = x0 + 1; + const float y0 = (float)y + 0.001f; + const float y1 = y0 + 1 - 0.002f; + const float z0 = (float)z; + const float z1 = z0 + .5f; + const float z2 = z0 + 1; + const float ix0 = x0 + .5f - 1.0f / 16.0f; + const float ix1 = x0 + .5f + 1.0f / 16.0f; + const float iz0 = z0 + .5f - 1.0f / 16.0f; + const float iz1 = z0 + .5f + 1.0f / 16.0f; + + const bool n = tt->attachsTo(level->getTile(x, y, z - 1)); + const bool s = tt->attachsTo(level->getTile(x, y, z + 1)); + const bool w = tt->attachsTo(level->getTile(x - 1, y, z)); + const bool e = tt->attachsTo(level->getTile(x + 1, y, z)); + + const bool up = tt->shouldRenderFace(level, x, y + 1, z, Facing::UP); + const bool down = tt->shouldRenderFace(level, x, y - 1, z, Facing::DOWN); + + const float noZFightingOffset = 0.01f; + + if ((w && e) || (!w && !e && !n && !s)) { + t.vertexUV(x0, y1, z1, u0, v0); + t.vertexUV(x0, y0, z1, u0, v2); + t.vertexUV(x2, y0, z1, u2, v2); + t.vertexUV(x2, y1, z1, u2, v0); + + t.vertexUV(x2, y1, z1, u0, v0); + t.vertexUV(x2, y0, z1, u0, v2); + t.vertexUV(x0, y0, z1, u2, v2); + t.vertexUV(x0, y1, z1, u2, v0); + + if (up) { + // small edge texture + t.vertexUV(x0, y1 + noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x2, y1 + noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x2, y1 + noZFightingOffset, iz0, iu0, iv0); + t.vertexUV(x0, y1 + noZFightingOffset, iz0, iu0, iv2); + + t.vertexUV(x2, y1 + noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x0, y1 + noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x0, y1 + noZFightingOffset, iz0, iu0, iv0); + t.vertexUV(x2, y1 + noZFightingOffset, iz0, iu0, iv2); + } else { + if (y < (depth - 1) && level->isEmptyTile(x - 1, y + 1, z)) { + t.vertexUV(x0, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x0, y1 + noZFightingOffset, iz0, iu0, iv1); + + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x0, y1 + noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x0, y1 + noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv1); + } + if (y < (depth - 1) && level->isEmptyTile(x + 1, y + 1, z)) { + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x2, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x2, y1 + noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv0); + + t.vertexUV(x2, y1 + noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x2, y1 + noZFightingOffset, iz0, iu0, iv0); + } + } + if (down) { + // small edge texture + t.vertexUV(x0, y0 - noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x2, y0 - noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x2, y0 - noZFightingOffset, iz0, iu0, iv0); + t.vertexUV(x0, y0 - noZFightingOffset, iz0, iu0, iv2); + + t.vertexUV(x2, y0 - noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x0, y0 - noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x0, y0 - noZFightingOffset, iz0, iu0, iv0); + t.vertexUV(x2, y0 - noZFightingOffset, iz0, iu0, iv2); + } else { + if (y > 1 && level->isEmptyTile(x - 1, y - 1, z)) { + t.vertexUV(x0, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x0, y0 - noZFightingOffset, iz0, iu0, iv1); + + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x0, y0 - noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x0, y0 - noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv1); + } + if (y > 1 && level->isEmptyTile(x + 1, y - 1, z)) { + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x2, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x2, y0 - noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv0); + + t.vertexUV(x2, y0 - noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x2, y0 - noZFightingOffset, iz0, iu0, iv0); + } + } + + } else if (w && !e) { + // half-step towards west + t.vertexUV(x0, y1, z1, u0, v0); + t.vertexUV(x0, y0, z1, u0, v2); + t.vertexUV(x1, y0, z1, u1, v2); + t.vertexUV(x1, y1, z1, u1, v0); + + t.vertexUV(x1, y1, z1, u0, v0); + t.vertexUV(x1, y0, z1, u0, v2); + t.vertexUV(x0, y0, z1, u1, v2); + t.vertexUV(x0, y1, z1, u1, v0); + + // small edge texture + if (!s && !n) { + t.vertexUV(x1, y1, iz1, iu0, iv0); + t.vertexUV(x1, y0, iz1, iu0, iv2); + t.vertexUV(x1, y0, iz0, iu1, iv2); + t.vertexUV(x1, y1, iz0, iu1, iv0); + + t.vertexUV(x1, y1, iz0, iu0, iv0); + t.vertexUV(x1, y0, iz0, iu0, iv2); + t.vertexUV(x1, y0, iz1, iu1, iv2); + t.vertexUV(x1, y1, iz1, iu1, iv0); + } + + if (up || (y < (depth - 1) && level->isEmptyTile(x - 1, y + 1, z))) { + // small edge texture + t.vertexUV(x0, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x0, y1 + noZFightingOffset, iz0, iu0, iv1); + + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x0, y1 + noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x0, y1 + noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv1); + } + if (down || (y > 1 && level->isEmptyTile(x - 1, y - 1, z))) { + // small edge texture + t.vertexUV(x0, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x0, y0 - noZFightingOffset, iz0, iu0, iv1); + + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x0, y0 - noZFightingOffset, iz1, iu1, iv2); + t.vertexUV(x0, y0 - noZFightingOffset, iz0, iu0, iv2); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv1); + } + + } else if (!w && e) { + // half-step towards east + t.vertexUV(x1, y1, z1, u1, v0); + t.vertexUV(x1, y0, z1, u1, v2); + t.vertexUV(x2, y0, z1, u2, v2); + t.vertexUV(x2, y1, z1, u2, v0); + + t.vertexUV(x2, y1, z1, u1, v0); + t.vertexUV(x2, y0, z1, u1, v2); + t.vertexUV(x1, y0, z1, u2, v2); + t.vertexUV(x1, y1, z1, u2, v0); + + // small edge texture + if (!s && !n) { + t.vertexUV(x1, y1, iz0, iu0, iv0); + t.vertexUV(x1, y0, iz0, iu0, iv2); + t.vertexUV(x1, y0, iz1, iu1, iv2); + t.vertexUV(x1, y1, iz1, iu1, iv0); + + t.vertexUV(x1, y1, iz1, iu0, iv0); + t.vertexUV(x1, y0, iz1, iu0, iv2); + t.vertexUV(x1, y0, iz0, iu1, iv2); + t.vertexUV(x1, y1, iz0, iu1, iv0); + } + + if (up || (y < (depth - 1) && level->isEmptyTile(x + 1, y + 1, z))) { + // small edge texture + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x2, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x2, y1 + noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv0); + + t.vertexUV(x2, y1 + noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x1, y1 + noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y1 + noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x2, y1 + noZFightingOffset, iz0, iu0, iv0); + } + if (down || (y > 1 && level->isEmptyTile(x + 1, y - 1, z))) { + // small edge texture + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x2, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x2, y0 - noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv0); + + t.vertexUV(x2, y0 - noZFightingOffset, iz1, iu1, iv0); + t.vertexUV(x1, y0 - noZFightingOffset, iz1, iu1, iv1); + t.vertexUV(x1, y0 - noZFightingOffset, iz0, iu0, iv1); + t.vertexUV(x2, y0 - noZFightingOffset, iz0, iu0, iv0); + } + + } + + if ((n && s) || (!w && !e && !n && !s)) { + // straight north-south + t.vertexUV(x1, y1, z2, u0, v0); + t.vertexUV(x1, y0, z2, u0, v2); + t.vertexUV(x1, y0, z0, u2, v2); + t.vertexUV(x1, y1, z0, u2, v0); + + t.vertexUV(x1, y1, z0, u0, v0); + t.vertexUV(x1, y0, z0, u0, v2); + t.vertexUV(x1, y0, z2, u2, v2); + t.vertexUV(x1, y1, z2, u2, v0); + + if (up) { + // small edge texture + t.vertexUV(ix1, y1, z2, iu1, iv2); + t.vertexUV(ix1, y1, z0, iu1, iv0); + t.vertexUV(ix0, y1, z0, iu0, iv0); + t.vertexUV(ix0, y1, z2, iu0, iv2); + + t.vertexUV(ix1, y1, z0, iu1, iv2); + t.vertexUV(ix1, y1, z2, iu1, iv0); + t.vertexUV(ix0, y1, z2, iu0, iv0); + t.vertexUV(ix0, y1, z0, iu0, iv2); + } else { + if (y < (depth - 1) && level->isEmptyTile(x, y + 1, z - 1)) { + t.vertexUV(ix0, y1, z0, iu1, iv0); + t.vertexUV(ix0, y1, z1, iu1, iv1); + t.vertexUV(ix1, y1, z1, iu0, iv1); + t.vertexUV(ix1, y1, z0, iu0, iv0); + + t.vertexUV(ix0, y1, z1, iu1, iv0); + t.vertexUV(ix0, y1, z0, iu1, iv1); + t.vertexUV(ix1, y1, z0, iu0, iv1); + t.vertexUV(ix1, y1, z1, iu0, iv0); + } + if (y < (depth - 1) && level->isEmptyTile(x, y + 1, z + 1)) { + t.vertexUV(ix0, y1, z1, iu0, iv1); + t.vertexUV(ix0, y1, z2, iu0, iv2); + t.vertexUV(ix1, y1, z2, iu1, iv2); + t.vertexUV(ix1, y1, z1, iu1, iv1); + + t.vertexUV(ix0, y1, z2, iu0, iv1); + t.vertexUV(ix0, y1, z1, iu0, iv2); + t.vertexUV(ix1, y1, z1, iu1, iv2); + t.vertexUV(ix1, y1, z2, iu1, iv1); + } + } + if (down) { + // small edge texture + t.vertexUV(ix1, y0, z2, iu1, iv2); + t.vertexUV(ix1, y0, z0, iu1, iv0); + t.vertexUV(ix0, y0, z0, iu0, iv0); + t.vertexUV(ix0, y0, z2, iu0, iv2); + + t.vertexUV(ix1, y0, z0, iu1, iv2); + t.vertexUV(ix1, y0, z2, iu1, iv0); + t.vertexUV(ix0, y0, z2, iu0, iv0); + t.vertexUV(ix0, y0, z0, iu0, iv2); + } else { + if (y > 1 && level->isEmptyTile(x, y - 1, z - 1)) { + // north half-step + t.vertexUV(ix0, y0, z0, iu1, iv0); + t.vertexUV(ix0, y0, z1, iu1, iv1); + t.vertexUV(ix1, y0, z1, iu0, iv1); + t.vertexUV(ix1, y0, z0, iu0, iv0); + + t.vertexUV(ix0, y0, z1, iu1, iv0); + t.vertexUV(ix0, y0, z0, iu1, iv1); + t.vertexUV(ix1, y0, z0, iu0, iv1); + t.vertexUV(ix1, y0, z1, iu0, iv0); + } + if (y > 1 && level->isEmptyTile(x, y - 1, z + 1)) { + // south half-step + t.vertexUV(ix0, y0, z1, iu0, iv1); + t.vertexUV(ix0, y0, z2, iu0, iv2); + t.vertexUV(ix1, y0, z2, iu1, iv2); + t.vertexUV(ix1, y0, z1, iu1, iv1); + + t.vertexUV(ix0, y0, z2, iu0, iv1); + t.vertexUV(ix0, y0, z1, iu0, iv2); + t.vertexUV(ix1, y0, z1, iu1, iv2); + t.vertexUV(ix1, y0, z2, iu1, iv1); + } + } + + } else if (n && !s) { + // half-step towards north + t.vertexUV(x1, y1, z0, u0, v0); + t.vertexUV(x1, y0, z0, u0, v2); + t.vertexUV(x1, y0, z1, u1, v2); + t.vertexUV(x1, y1, z1, u1, v0); + + t.vertexUV(x1, y1, z1, u0, v0); + t.vertexUV(x1, y0, z1, u0, v2); + t.vertexUV(x1, y0, z0, u1, v2); + t.vertexUV(x1, y1, z0, u1, v0); + + // small edge texture + if (!e && !w) { + t.vertexUV(ix0, y1, z1, iu0, iv0); + t.vertexUV(ix0, y0, z1, iu0, iv2); + t.vertexUV(ix1, y0, z1, iu1, iv2); + t.vertexUV(ix1, y1, z1, iu1, iv0); + + t.vertexUV(ix1, y1, z1, iu0, iv0); + t.vertexUV(ix1, y0, z1, iu0, iv2); + t.vertexUV(ix0, y0, z1, iu1, iv2); + t.vertexUV(ix0, y1, z1, iu1, iv0); + } + + if (up || (y < (depth - 1) && level->isEmptyTile(x, y + 1, z - 1))) { + // small edge texture + t.vertexUV(ix0, y1, z0, iu1, iv0); + t.vertexUV(ix0, y1, z1, iu1, iv1); + t.vertexUV(ix1, y1, z1, iu0, iv1); + t.vertexUV(ix1, y1, z0, iu0, iv0); + + t.vertexUV(ix0, y1, z1, iu1, iv0); + t.vertexUV(ix0, y1, z0, iu1, iv1); + t.vertexUV(ix1, y1, z0, iu0, iv1); + t.vertexUV(ix1, y1, z1, iu0, iv0); + } + + if (down || (y > 1 && level->isEmptyTile(x, y - 1, z - 1))) { + // small edge texture + t.vertexUV(ix0, y0, z0, iu1, iv0); + t.vertexUV(ix0, y0, z1, iu1, iv1); + t.vertexUV(ix1, y0, z1, iu0, iv1); + t.vertexUV(ix1, y0, z0, iu0, iv0); + + t.vertexUV(ix0, y0, z1, iu1, iv0); + t.vertexUV(ix0, y0, z0, iu1, iv1); + t.vertexUV(ix1, y0, z0, iu0, iv1); + t.vertexUV(ix1, y0, z1, iu0, iv0); + } + + } else if (!n && s) { + // half-step towards south + t.vertexUV(x1, y1, z1, u1, v0); + t.vertexUV(x1, y0, z1, u1, v2); + t.vertexUV(x1, y0, z2, u2, v2); + t.vertexUV(x1, y1, z2, u2, v0); + + t.vertexUV(x1, y1, z2, u1, v0); + t.vertexUV(x1, y0, z2, u1, v2); + t.vertexUV(x1, y0, z1, u2, v2); + t.vertexUV(x1, y1, z1, u2, v0); + + // small edge texture + if (!e && !w) { + t.vertexUV(ix1, y1, z1, iu0, iv0); + t.vertexUV(ix1, y0, z1, iu0, iv2); + t.vertexUV(ix0, y0, z1, iu1, iv2); + t.vertexUV(ix0, y1, z1, iu1, iv0); + + t.vertexUV(ix0, y1, z1, iu0, iv0); + t.vertexUV(ix0, y0, z1, iu0, iv2); + t.vertexUV(ix1, y0, z1, iu1, iv2); + t.vertexUV(ix1, y1, z1, iu1, iv0); + } + + if (up || (y < (depth - 1) && level->isEmptyTile(x, y + 1, z + 1))) { + // small edge texture + t.vertexUV(ix0, y1, z1, iu0, iv1); + t.vertexUV(ix0, y1, z2, iu0, iv2); + t.vertexUV(ix1, y1, z2, iu1, iv2); + t.vertexUV(ix1, y1, z1, iu1, iv1); + + t.vertexUV(ix0, y1, z2, iu0, iv1); + t.vertexUV(ix0, y1, z1, iu0, iv2); + t.vertexUV(ix1, y1, z1, iu1, iv2); + t.vertexUV(ix1, y1, z2, iu1, iv1); + } + if (down || (y > 1 && level->isEmptyTile(x, y - 1, z + 1))) { + // small edge texture + t.vertexUV(ix0, y0, z1, iu0, iv1); + t.vertexUV(ix0, y0, z2, iu0, iv2); + t.vertexUV(ix1, y0, z2, iu1, iv2); + t.vertexUV(ix1, y0, z1, iu1, iv1); + + t.vertexUV(ix0, y0, z2, iu0, iv1); + t.vertexUV(ix0, y0, z1, iu0, iv2); + t.vertexUV(ix1, y0, z1, iu1, iv2); + t.vertexUV(ix1, y0, z2, iu1, iv1); + } + + } + + return true; +} + +void TileRenderer::tesselateRowTexture( Tile* tt, int data, float x, float y, float z ) { + Tesselator& t = Tesselator::instance; + + int tex = tt->getTexture(0, data); + if(fixedTexture >= 0) + tex = fixedTexture; + + int xt = (tex & 0xf) << 4; + int yt = tex & 0xf0; + float u0 = (xt) / 256.0f; + float u1 = (xt + 15.99f) / 256.f; + float v0 = (yt) / 256.0f; + float v1 = (yt + 15.99f) / 256.0f; + + float x0 = x + 0.5f - 0.25f; + float x1 = x + 0.5f + 0.25f; + float z0 = z + 0.5f - 0.5f; + float z1 = z + 0.5f + 0.5f; + t.vertexUV(x0, y + 1, z0, u0, v0); + t.vertexUV(x0, y + 0, z0, u0, v1); + t.vertexUV(x0, y + 0, z1, u1, v1); + t.vertexUV(x0, y + 1, z1, u1, v0); + + t.vertexUV(x0, y + 1, z1, u0, v0); + t.vertexUV(x0, y + 0, z1, u0, v1); + t.vertexUV(x0, y + 0, z0, u1, v1); + t.vertexUV(x0, y + 1, z0, u1, v0); + + t.vertexUV(x1, y + 1, z1, u0, v0); + t.vertexUV(x1, y + 0, z1, u0, v1); + t.vertexUV(x1, y + 0, z0, u1, v1); + t.vertexUV(x1, y + 1, z0, u1, v0); + + t.vertexUV(x1, y + 1, z0, u0, v0); + t.vertexUV(x1, y + 0, z0, u0, v1); + t.vertexUV(x1, y + 0, z1, u1, v1); + t.vertexUV(x1, y + 1, z1, u1, v0); + + x0 = x + 0.5f - 0.5f; + x1 = x + 0.5f + 0.5f; + z0 = z + 0.5f - 0.25f; + z1 = z + 0.5f + 0.25f; + + t.vertexUV(x0, y + 1, z0, u0, v0); + t.vertexUV(x0, y + 0, z0, u0, v1); + t.vertexUV(x1, y + 0, z0, u1, v1); + t.vertexUV(x1, y + 1, z0, u1, v0); + + t.vertexUV(x1, y + 1, z0, u0, v0); + t.vertexUV(x1, y + 0, z0, u0, v1); + t.vertexUV(x0, y + 0, z0, u1, v1); + t.vertexUV(x0, y + 1, z0, u1, v0); + + t.vertexUV(x1, y + 1, z1, u0, v0); + t.vertexUV(x1, y + 0, z1, u0, v1); + t.vertexUV(x0, y + 0, z1, u1, v1); + t.vertexUV(x0, y + 1, z1, u1, v0); + + t.vertexUV(x0, y + 1, z1, u0, v0); + t.vertexUV(x0, y + 0, z1, u0, v1); + t.vertexUV(x1, y + 0, z1, u1, v1); + t.vertexUV(x1, y + 1, z1, u1, v0); +} diff --git a/src/client/renderer/TileRenderer.h b/src/client/renderer/TileRenderer.h new file mode 100755 index 0000000..02420dd --- /dev/null +++ b/src/client/renderer/TileRenderer.h @@ -0,0 +1,85 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__TileRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__TileRenderer_H__ + +//package net.minecraft.client.renderer; + +class Tile; +class FenceTile; +class FenceGateTile; +class ThinFenceTile; +class StairTile; +class LevelSource; +class Material; + +class TileRenderer +{ +public: + TileRenderer(LevelSource* level = 0); + + void tesselateInWorld(Tile* tile, int x, int y, int z, int fixedTexture); + bool tesselateInWorld(Tile* tt, int x, int y, int z); + void tesselateInWorldNoCulling(Tile* tile, int x, int y, int z); + + bool tesselateTorchInWorld(Tile* tt, int x, int y, int z); + bool tesselateLadderInWorld(Tile* tt, int x, int y, int z); + bool tesselateCactusInWorld(Tile* tt, int x, int y, int z); + bool tesselateCactusInWorld(Tile* tt, int x, int y, int z, float r, float g, float b); + bool tesselateCrossInWorld(Tile* tt, int x, int y, int z); + bool tesselateStemInWorld(Tile* _tt, int x, int y, int z); + bool tesselateWaterInWorld(Tile* tt, int x, int y, int z); + bool tesselateStairsInWorld(StairTile* tt, int x, int y, int z); + bool tesselateDoorInWorld(Tile* tt, int x, int y, int z); + bool tesselateFenceInWorld(FenceTile* tt, int x, int y, int z); + bool tesselateThinFenceInWorld(ThinFenceTile* tt, int x, int y, int z); + bool tesselateFenceGateInWorld(FenceGateTile* tt, int x, int y, int z); + bool tesselateBedInWorld(Tile *tt, int x, int y, int z); + bool tesselateRowInWorld(Tile* tt, int x, int y, int z); + + void tesselateTorch(Tile* tt, float x, float y, float z, float xxa, float zza); + void tesselateCrossTexture(Tile* tt, int data, float x, float y, float z); + void tesselateStemTexture(Tile* tt, int data, float h, float x, float y, float z); + void tesselateStemDirTexture(Tile* tt, int data, int dir, float h, float x, float y, float z); + void tesselateRowTexture(Tile* tt, int data, float x, float y, float z); + + void renderBlock(Tile* tt, LevelSource* level, int x, int y, int z); + + /*public*/ + bool tesselateBlockInWorld(Tile* tt, int x, int y, int z); + bool tesselateBlockInWorld(Tile* tt, int x, int y, int z, float r, float g, float b); + bool tesselateBlockInWorldWithAmbienceOcclusion(Tile* tt, int pX, int pY, int pZ, float pBaseRed, float pBaseGreen, float pBaseBlue); + + void renderFaceDown(Tile* tt, float x, float y, float z, int tex); + void renderFaceUp(Tile* tt, float x, float y, float z, int tex); + void renderNorth(Tile* tt, float x, float y, float z, int tex); + void renderSouth(Tile* tt, float x, float y, float z, int tex); + void renderWest(Tile* tt, float x, float y, float z, int tex); + void renderEast(Tile* tt, float x, float y, float z, int tex); + + void renderTile(Tile* tile, int data); + void renderGuiTile(Tile* tile, int data); + + static bool canRender(int renderShape); +private: + float getWaterHeight(int x, int y, int z, const Material* m); + + LevelSource* level; + int fixedTexture; + bool xFlipTexture; + bool noCulling; + + bool applyAmbienceOcclusion; + float ll000, llx00, ll0y0, ll00z, llX00, ll0Y0, ll00Z; + float llxyz, llxy0, llxyZ, ll0yz, ll0yZ, llXyz, llXy0; + float llXyZ, llxYz, llxY0, llxYZ, ll0Yz, llXYz, llXY0; + float ll0YZ, llXYZ, llx0z, llX0z, llx0Z, llX0Z; + int blsmooth; + float c1r, c2r, c3r, c4r; + float c1g, c2g, c3g, c4g; + float c1b, c2b, c3b, c4b; + bool llTrans0Yz, llTransXY0, llTransxY0, llTrans0YZ; + bool llTransx0z, llTransX0Z, llTransx0Z, llTransX0z; + bool llTrans0yz, llTransXy0, llTransxy0, llTrans0yZ; +}; + + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__TileRenderer_H__*/ diff --git a/src/client/renderer/VertecDecl.h b/src/client/renderer/VertecDecl.h new file mode 100755 index 0000000..8abc1d3 --- /dev/null +++ b/src/client/renderer/VertecDecl.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__VertexDecl_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__VertexDecl_H__ + +typedef struct VertexDeclPTC +{ + GLfloat x, y, z; + GLfloat u, v; + GLuint color; + +} VertexDeclPTC; + +typedef struct VertexDeclPTCN +{ + GLfloat x, y, z; + GLfloat u, v; + GLuint color; + GLuint normal; + +} VertexDeclPTCN; + +#endif /*#ifndef NET_MINECRAFT_CLIENT_RENDERER__VertexDecl_H__ */ diff --git a/src/client/renderer/culling/AllowAllCuller.h b/src/client/renderer/culling/AllowAllCuller.h new file mode 100755 index 0000000..9d408c9 --- /dev/null +++ b/src/client/renderer/culling/AllowAllCuller.h @@ -0,0 +1,29 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__AllowAllCuller_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__AllowAllCuller_H__ + +//package net.minecraft.client.renderer.culling; + +#include "Culler.h" + +class AABB; + +class AllowAllCuller: public Culler +{ +public: + bool isVisible(const AABB& bb) { + return true; + } + + bool cubeFullyInFrustum(float x1, float y1, float z1, float x2, float y2, float z2) { + return true; + } + + bool cubeInFrustum(float x1, float y1, float z1, float x2, float y2, float z2) { + return true; + } + + void prepare(float xOff, float yOff, float zOff) { + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__AllowAllCuller_H__*/ diff --git a/src/client/renderer/culling/Culler.h b/src/client/renderer/culling/Culler.h new file mode 100755 index 0000000..bfd8c03 --- /dev/null +++ b/src/client/renderer/culling/Culler.h @@ -0,0 +1,22 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__Culler_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__Culler_H__ + +//package net.minecraft.client.renderer.culling; + +class AABB; + +class Culler +{ +public: + virtual ~Culler() {} + + virtual bool isVisible(const AABB& bb) = 0; + + virtual bool cubeInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) = 0; + + virtual bool cubeFullyInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) = 0; + + virtual void prepare(float xOff, float yOff, float zOff) {} +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__Culler_H__*/ diff --git a/src/client/renderer/culling/Frustum.cpp b/src/client/renderer/culling/Frustum.cpp new file mode 100755 index 0000000..e5a3832 --- /dev/null +++ b/src/client/renderer/culling/Frustum.cpp @@ -0,0 +1,3 @@ +#include "Frustum.h" + +Frustum Frustum::frustum; diff --git a/src/client/renderer/culling/Frustum.h b/src/client/renderer/culling/Frustum.h new file mode 100755 index 0000000..25396e3 --- /dev/null +++ b/src/client/renderer/culling/Frustum.h @@ -0,0 +1,163 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__Frustum_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__Frustum_H__ + +//package net.minecraft.client.renderer.culling; + +/* import static org.lwjgl.opengl.GL11.* */ + + +// 1) Stolen and ported to java from the web somewhere. +// 2) ... and then ported back to C++! + +//***********************************************************************// +// // +// - "Talk to me like I'm a 3 year old!" Programming Lessons - // +// // +// $Author: DigiBen digiben@gametutorials.com // +// // +// $Program: Frustum Culling // +// // +// $Description: Demonstrates checking if shapes are in view // +// // +// $Date: 8/28/01 // +// // +//***********************************************************************// + +//#include "main.h" + +#include "FrustumData.h" +#include "../../../util/Mth.h" +#include "../gles.h" + +class Frustum: public FrustumData +{ +private: + static Frustum frustum; + +public: + static FrustumData& getFrustum() { + frustum.calculateFrustum(); + return frustum; + } + + ///////////////////////////////// NORMALIZE PLANE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\* + ///// + ///// This normalizes a plane (A side) from a given frustum. + ///// + ///////////////////////////////// NORMALIZE PLANE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\* +private: + void normalizePlane(float frustum[16][16], int side) + { + // Here we calculate the magnitude of the normal to the plane (point A B C) + // Remember that (A, B, C) is that same thing as the normal's (X, Y, Z). + // To calculate magnitude you use the equation: magnitude = sqrt( x^2 + y^2 + z^2) + float invMagnitude = Mth::invSqrt(frustum[side][A] * frustum[side][A] + frustum[side][B] * frustum[side][B] + frustum[side][C] * frustum[side][C]); + + // Then we divide the plane's values by it's magnitude. + // This makes it easier to work with. + frustum[side][A] *= invMagnitude; + frustum[side][B] *= invMagnitude; + frustum[side][C] *= invMagnitude; + frustum[side][D] *= invMagnitude; + } + + float _proj[16]; + float _modl[16]; + float _clip[16]; + + void calculateFrustum() + { + // glGetFloatv() is used to extract information about our OpenGL world. + // Below, we pass in GL_PROJECTION_MATRIX to abstract our projection matrix. + // It then stores the matrix into an array of [16]. + glGetFloatv(GL_PROJECTION_MATRIX, proj); + + // By passing in GL_MODELVIEW_MATRIX, we can abstract our model view matrix. + // This also stores it in an array of [16]. + glGetFloatv(GL_MODELVIEW_MATRIX, modl); + // Now that we have our modelview and projection matrix, if we combine these 2 matrices, + // it will give us our clipping planes. To combine 2 matrices, we multiply them. + + clip[0] = modl[0] * proj[0] + modl[1] * proj[4] + modl[2] * proj[8] + modl[3] * proj[12]; + clip[1] = modl[0] * proj[1] + modl[1] * proj[5] + modl[2] * proj[9] + modl[3] * proj[13]; + clip[2] = modl[0] * proj[2] + modl[1] * proj[6] + modl[2] * proj[10] + modl[3] * proj[14]; + clip[3] = modl[0] * proj[3] + modl[1] * proj[7] + modl[2] * proj[11] + modl[3] * proj[15]; + + clip[4] = modl[4] * proj[0] + modl[5] * proj[4] + modl[6] * proj[8] + modl[7] * proj[12]; + clip[5] = modl[4] * proj[1] + modl[5] * proj[5] + modl[6] * proj[9] + modl[7] * proj[13]; + clip[6] = modl[4] * proj[2] + modl[5] * proj[6] + modl[6] * proj[10] + modl[7] * proj[14]; + clip[7] = modl[4] * proj[3] + modl[5] * proj[7] + modl[6] * proj[11] + modl[7] * proj[15]; + + clip[8] = modl[8] * proj[0] + modl[9] * proj[4] + modl[10] * proj[8] + modl[11] * proj[12]; + clip[9] = modl[8] * proj[1] + modl[9] * proj[5] + modl[10] * proj[9] + modl[11] * proj[13]; + clip[10] = modl[8] * proj[2] + modl[9] * proj[6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[8] * proj[3] + modl[9] * proj[7] + modl[10] * proj[11] + modl[11] * proj[15]; + + clip[12] = modl[12] * proj[0] + modl[13] * proj[4] + modl[14] * proj[8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[1] + modl[13] * proj[5] + modl[14] * proj[9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[2] + modl[13] * proj[6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[3] + modl[13] * proj[7] + modl[14] * proj[11] + modl[15] * proj[15]; + + // Now we actually want to get the sides of the frustum. To do this we take + // the clipping planes we received above and extract the sides from them. + + // This will extract the RIGHT side of the frustum + m_Frustum[RIGHT][A] = clip[3] - clip[0]; + m_Frustum[RIGHT][B] = clip[7] - clip[4]; + m_Frustum[RIGHT][C] = clip[11] - clip[8]; + m_Frustum[RIGHT][D] = clip[15] - clip[12]; + + // Now that we have a normal (A,B,C) and a distance (D) to the plane, + // we want to normalize that normal and distance. + + // Normalize the RIGHT side + normalizePlane(m_Frustum, RIGHT); + + // This will extract the LEFT side of the frustum + m_Frustum[LEFT][A] = clip[3] + clip[0]; + m_Frustum[LEFT][B] = clip[7] + clip[4]; + m_Frustum[LEFT][C] = clip[11] + clip[8]; + m_Frustum[LEFT][D] = clip[15] + clip[12]; + + // Normalize the LEFT side + normalizePlane(m_Frustum, LEFT); + + // This will extract the BOTTOM side of the frustum + m_Frustum[BOTTOM][A] = clip[3] + clip[1]; + m_Frustum[BOTTOM][B] = clip[7] + clip[5]; + m_Frustum[BOTTOM][C] = clip[11] + clip[9]; + m_Frustum[BOTTOM][D] = clip[15] + clip[13]; + + // Normalize the BOTTOM side + normalizePlane(m_Frustum, BOTTOM); + + // This will extract the TOP side of the frustum + m_Frustum[TOP][A] = clip[3] - clip[1]; + m_Frustum[TOP][B] = clip[7] - clip[5]; + m_Frustum[TOP][C] = clip[11] - clip[9]; + m_Frustum[TOP][D] = clip[15] - clip[13]; + + // Normalize the TOP side + normalizePlane(m_Frustum, TOP); + + // This will extract the BACK side of the frustum + m_Frustum[BACK][A] = clip[3] - clip[2]; + m_Frustum[BACK][B] = clip[7] - clip[6]; + m_Frustum[BACK][C] = clip[11] - clip[10]; + m_Frustum[BACK][D] = clip[15] - clip[14]; + + // Normalize the BACK side + normalizePlane(m_Frustum, BACK); + + // This will extract the FRONT side of the frustum + m_Frustum[FRONT][A] = clip[3] + clip[2]; + m_Frustum[FRONT][B] = clip[7] + clip[6]; + m_Frustum[FRONT][C] = clip[11] + clip[10]; + m_Frustum[FRONT][D] = clip[15] + clip[14]; + + // Normalize the FRONT side + normalizePlane(m_Frustum, FRONT); + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__Frustum_H__*/ diff --git a/src/client/renderer/culling/FrustumCuller.h b/src/client/renderer/culling/FrustumCuller.h new file mode 100755 index 0000000..470c953 --- /dev/null +++ b/src/client/renderer/culling/FrustumCuller.h @@ -0,0 +1,39 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__ + +//package net.minecraft.client.renderer.culling; + +#include "FrustumData.h" +#include "Frustum.h" + +class FrustumCuller: public Culler { + +private: + FrustumData frustum; + float xOff, yOff, zOff; + +public: + FrustumCuller() { + frustum = Frustum::getFrustum(); + } + + void prepare(float xOff, float yOff, float zOff) { + this->xOff = xOff; + this->yOff = yOff; + this->zOff = zOff; + } + + bool cubeFullyInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) { + return frustum.cubeFullyInFrustum(x0 - xOff, y0 - yOff, z0 - zOff, x1 - xOff, y1 - yOff, z1 - zOff); + } + + bool cubeInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) { + return frustum.cubeInFrustum(x0 - xOff, y0 - yOff, z0 - zOff, x1 - xOff, y1 - yOff, z1 - zOff); + } + + bool isVisible(const AABB& bb) { + return cubeInFrustum(bb.x0, bb.y0, bb.z0, bb.x1, bb.y1, bb.z1); + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__*/ diff --git a/src/client/renderer/culling/FrustumData.h b/src/client/renderer/culling/FrustumData.h new file mode 100755 index 0000000..f29a0de --- /dev/null +++ b/src/client/renderer/culling/FrustumData.h @@ -0,0 +1,97 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumData_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumData_H__ + +//package net.minecraft.client.renderer.culling; + +#include "../../../world/phys/AABB.h" + +// We create an enum of the sides so we don't have to call each side 0 or 1. +// This way it makes it more understandable and readable when dealing with frustum sides. +class FrustumData +{ +public: + //enum FrustumSide + static const int RIGHT = 0; // The RIGHT side of the frustum + static const int LEFT = 1; // The LEFT side of the frustum + static const int BOTTOM = 2; // The BOTTOM side of the frustum + static const int TOP = 3; // The TOP side of the frustum + static const int BACK = 4; // The BACK side of the frustum + static const int FRONT = 5; // The FRONT side of the frustum + + // Like above, instead of saying a number for the ABC and D of the plane, we + // want to be more descriptive. + static const int A = 0; // The X value of the plane's normal + static const int B = 1; // The Y value of the plane's normal + static const int C = 2; // The Z value of the plane's normal + static const int D = 3; // The distance the plane is from the origin + + float m_Frustum[16][16]; + float proj[16]; + float modl[16]; + float clip[16]; + + bool pointInFrustum(float x, float y, float z) + { + for (int i = 0; i < 6; i++) + { + if (m_Frustum[i][A] * x + m_Frustum[i][B] * y + m_Frustum[i][C] * z + m_Frustum[i][D] <= 0) + { + return false; + } + } + + return true; + } + bool sphereInFrustum(float x, float y, float z, float radius) + { + for (int i = 0; i < 6; i++) + { + if (m_Frustum[i][A] * x + m_Frustum[i][B] * y + m_Frustum[i][C] * z + m_Frustum[i][D] <= -radius) + { + return false; + } + } + + return true; + } + bool cubeFullyInFrustum(float x1, float y1, float z1, float x2, float y2, float z2) + { + for (int i = 0; i < 6; i++) + { + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + } + + return true; + } + + bool cubeInFrustum(float x1, float y1, float z1, float x2, float y2, float z2) + { + for (int i = 0; i < 6; i++) + { + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + + return false; + } + + return true; + } + bool isVisible(const AABB& aabb) + { + return cubeInFrustum(aabb.x0, aabb.y0, aabb.z0, aabb.x1, aabb.y1, aabb.z1); + } +}; +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumData_H__*/ diff --git a/src/client/renderer/culling/tmp/Frustum.h b/src/client/renderer/culling/tmp/Frustum.h new file mode 100755 index 0000000..012a28e --- /dev/null +++ b/src/client/renderer/culling/tmp/Frustum.h @@ -0,0 +1,172 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__Frustum_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__Frustum_H__ + +//package net.minecraft.client.renderer.culling; + +/* import static org.lwjgl.opengl.GL11.* */ + +#include "java/nio/FloatBuffer.h" + +#include "client/MemoryTracker.h" + + +// Stolen and ported to java from the web somewhere. + +//***********************************************************************// +// // +// - "Talk to me like I'm a 3 year old!" Programming Lessons - // +// // +// $Author: DigiBen digiben@gametutorials.com // +// // +// $Program: Frustum Culling // +// // +// $Description: Demonstrates checking if shapes are in view // +// // +// $Date: 8/28/01 // +// // +//***********************************************************************// + +//#include "main.h" + +// We create an enum of the sides so we don't have to call each side 0 or 1. +// This way it makes it more understandable and readable when dealing with frustum sides. +/*public*/ class Frustum: public FrustumData +{ + /*private*/ static Frustum frustum = /*new*/ Frustum(); + + /*public*/ static FrustumData getFrustum() + { + frustum.calculateFrustum(); + return frustum; + } + + ///////////////////////////////// NORMALIZE PLANE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\* + ///// + ///// This normalizes a plane (A side) from a given frustum. + ///// + ///////////////////////////////// NORMALIZE PLANE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\* + + /*private*/ void normalizePlane(float[][] frustum, int side) + { + // Here we calculate the magnitude of the normal to the plane (point A B C) + // Remember that (A, B, C) is that same thing as the normal's (X, Y, Z). + // To calculate magnitude you use the equation: magnitude = sqrt( x^2 + y^2 + z^2) + float magnitude = (float) util.Mth.sqrt(frustum[side][A] * frustum[side][A] + frustum[side][B] * frustum[side][B] + frustum[side][C] * frustum[side][C]); + + // Then we divide the plane's values by it's magnitude. + // This makes it easier to work with. + frustum[side][A] /= magnitude; + frustum[side][B] /= magnitude; + frustum[side][C] /= magnitude; + frustum[side][D] /= magnitude; + } + + /*private*/ FloatBuffer _proj = MemoryTracker.createFloatBuffer(16); + /*private*/ FloatBuffer _modl = MemoryTracker.createFloatBuffer(16); + /*private*/ FloatBuffer _clip = MemoryTracker.createFloatBuffer(16); + + /*private*/ void calculateFrustum() + { + _proj.clear(); + _modl.clear(); + _clip.clear(); + + // glGetFloatv() is used to extract information about our OpenGL world. + // Below, we pass in GL_PROJECTION_MATRIX to abstract our projection matrix. + // It then stores the matrix into an array of [16]. + glGetFloat(GL_PROJECTION_MATRIX, _proj); + + // By passing in GL_MODELVIEW_MATRIX, we can abstract our model view matrix. + // This also stores it in an array of [16]. + glGetFloat(GL_MODELVIEW_MATRIX, _modl); + + _proj.flip().limit(16); + _proj.get(proj); + _modl.flip().limit(16); + _modl.get(modl); + + // Now that we have our modelview and projection matrix, if we combine these 2 matrices, + // it will give us our clipping planes. To combine 2 matrices, we multiply them. + + clip[0] = modl[0] * proj[0] + modl[1] * proj[4] + modl[2] * proj[8] + modl[3] * proj[12]; + clip[1] = modl[0] * proj[1] + modl[1] * proj[5] + modl[2] * proj[9] + modl[3] * proj[13]; + clip[2] = modl[0] * proj[2] + modl[1] * proj[6] + modl[2] * proj[10] + modl[3] * proj[14]; + clip[3] = modl[0] * proj[3] + modl[1] * proj[7] + modl[2] * proj[11] + modl[3] * proj[15]; + + clip[4] = modl[4] * proj[0] + modl[5] * proj[4] + modl[6] * proj[8] + modl[7] * proj[12]; + clip[5] = modl[4] * proj[1] + modl[5] * proj[5] + modl[6] * proj[9] + modl[7] * proj[13]; + clip[6] = modl[4] * proj[2] + modl[5] * proj[6] + modl[6] * proj[10] + modl[7] * proj[14]; + clip[7] = modl[4] * proj[3] + modl[5] * proj[7] + modl[6] * proj[11] + modl[7] * proj[15]; + + clip[8] = modl[8] * proj[0] + modl[9] * proj[4] + modl[10] * proj[8] + modl[11] * proj[12]; + clip[9] = modl[8] * proj[1] + modl[9] * proj[5] + modl[10] * proj[9] + modl[11] * proj[13]; + clip[10] = modl[8] * proj[2] + modl[9] * proj[6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[8] * proj[3] + modl[9] * proj[7] + modl[10] * proj[11] + modl[11] * proj[15]; + + clip[12] = modl[12] * proj[0] + modl[13] * proj[4] + modl[14] * proj[8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[1] + modl[13] * proj[5] + modl[14] * proj[9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[2] + modl[13] * proj[6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[3] + modl[13] * proj[7] + modl[14] * proj[11] + modl[15] * proj[15]; + + // Now we actually want to get the sides of the frustum. To do this we take + // the clipping planes we received above and extract the sides from them. + + // This will extract the RIGHT side of the frustum + m_Frustum[RIGHT][A] = clip[3] - clip[0]; + m_Frustum[RIGHT][B] = clip[7] - clip[4]; + m_Frustum[RIGHT][C] = clip[11] - clip[8]; + m_Frustum[RIGHT][D] = clip[15] - clip[12]; + + // Now that we have a normal (A,B,C) and a distance (D) to the plane, + // we want to normalize that normal and distance. + + // Normalize the RIGHT side + normalizePlane(m_Frustum, RIGHT); + + // This will extract the LEFT side of the frustum + m_Frustum[LEFT][A] = clip[3] + clip[0]; + m_Frustum[LEFT][B] = clip[7] + clip[4]; + m_Frustum[LEFT][C] = clip[11] + clip[8]; + m_Frustum[LEFT][D] = clip[15] + clip[12]; + + // Normalize the LEFT side + normalizePlane(m_Frustum, LEFT); + + // This will extract the BOTTOM side of the frustum + m_Frustum[BOTTOM][A] = clip[3] + clip[1]; + m_Frustum[BOTTOM][B] = clip[7] + clip[5]; + m_Frustum[BOTTOM][C] = clip[11] + clip[9]; + m_Frustum[BOTTOM][D] = clip[15] + clip[13]; + + // Normalize the BOTTOM side + normalizePlane(m_Frustum, BOTTOM); + + // This will extract the TOP side of the frustum + m_Frustum[TOP][A] = clip[3] - clip[1]; + m_Frustum[TOP][B] = clip[7] - clip[5]; + m_Frustum[TOP][C] = clip[11] - clip[9]; + m_Frustum[TOP][D] = clip[15] - clip[13]; + + // Normalize the TOP side + normalizePlane(m_Frustum, TOP); + + // This will extract the BACK side of the frustum + m_Frustum[BACK][A] = clip[3] - clip[2]; + m_Frustum[BACK][B] = clip[7] - clip[6]; + m_Frustum[BACK][C] = clip[11] - clip[10]; + m_Frustum[BACK][D] = clip[15] - clip[14]; + + // Normalize the BACK side + normalizePlane(m_Frustum, BACK); + + // This will extract the FRONT side of the frustum + m_Frustum[FRONT][A] = clip[3] + clip[2]; + m_Frustum[FRONT][B] = clip[7] + clip[6]; + m_Frustum[FRONT][C] = clip[11] + clip[10]; + m_Frustum[FRONT][D] = clip[15] + clip[14]; + + // Normalize the FRONT side + normalizePlane(m_Frustum, FRONT); + } +} +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__Frustum_H__*/ diff --git a/src/client/renderer/culling/tmp/FrustumCuller.h b/src/client/renderer/culling/tmp/FrustumCuller.h new file mode 100755 index 0000000..939093d --- /dev/null +++ b/src/client/renderer/culling/tmp/FrustumCuller.h @@ -0,0 +1,165 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__ + +//package net.minecraft.client.renderer.culling; + +#include "Culler.h" +#include "../../../world/phys/AABB.h" + +class FrustumCuller: public Culler +{ + float xOff, yOff, zOff; + float frustum[6][4]; + +public: + FrustumCuller() { + ExtractFrustum(); + } + + void prepare(float xOff, float yOff, float zOff) { + this->xOff = xOff; + this->yOff = yOff; + this->zOff = zOff; + } + + //bool cubeFullyInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) { + // return frustum.cubeFullyInFrustum(x0 - xOff, y0 - yOff, z0 - zOff, x1 - xOff, y1 - yOff, z1 - zOff); + //} + + bool cubeFullyInFrustum( float x0, float y0, float z0, float x1, float y1, float z1 ) { + int c2 = 0; + for( int p = 0; p < 6; p++ ) { + int c = 0; + if( frustum[p][0] * (x0) + frustum[p][1] * (y0) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x1) + frustum[p][1] * (y0) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x0) + frustum[p][1] * (y1) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x1) + frustum[p][1] * (y1) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x0) + frustum[p][1] * (y0) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x1) + frustum[p][1] * (y0) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x0) + frustum[p][1] * (y1) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) c++; + if( frustum[p][0] * (x1) + frustum[p][1] * (y1) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) c++; + if( c == 0 ) + return false; // 0 + if( c == 8 ) + c2++; + } + return c2 == 6; //(c2 == 6) ? 2 : 1; + } + + bool isVisible(const AABB& bb) { + printf("cube is : %s\n", bb.toString().c_str()); + return cubeInFrustum(bb.x0, bb.y0, bb.z0, bb.x1, bb.y1, bb.z1); + } + + bool cubeInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) { + for(int p = 0; p < 6; p++ ) { + if( frustum[p][0] * (x0) + frustum[p][1] * (y0) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x1) + frustum[p][1] * (y0) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x0) + frustum[p][1] * (y1) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x1) + frustum[p][1] * (y1) + frustum[p][2] * (z0) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x0) + frustum[p][1] * (y0) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x1) + frustum[p][1] * (y0) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x0) + frustum[p][1] * (y1) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) continue; + if( frustum[p][0] * (x1) + frustum[p][1] * (y1) + frustum[p][2] * (z1) + frustum[p][3] > 0 ) continue; + return false; + } + return true; + } + +private: + void ExtractFrustum() { + float proj[16]; + float modl[16]; + float clip[16]; + float t; + /* Get the current PROJECTION matrix from OpenGL */ + glGetFloatv( GL_PROJECTION_MATRIX, proj ); + /* Get the current MODELVIEW matrix from OpenGL */ + glGetFloatv( GL_MODELVIEW_MATRIX, modl ); + /* Combine the two matrices (multiply projection by modelview) */ + clip[ 0] = modl[ 0] * proj[ 0] + modl[ 1] * proj[ 4] + modl[ 2] * proj[ 8] + modl[ 3] * proj[12]; + clip[ 1] = modl[ 0] * proj[ 1] + modl[ 1] * proj[ 5] + modl[ 2] * proj[ 9] + modl[ 3] * proj[13]; + clip[ 2] = modl[ 0] * proj[ 2] + modl[ 1] * proj[ 6] + modl[ 2] * proj[10] + modl[ 3] * proj[14]; + clip[ 3] = modl[ 0] * proj[ 3] + modl[ 1] * proj[ 7] + modl[ 2] * proj[11] + modl[ 3] * proj[15]; + clip[ 4] = modl[ 4] * proj[ 0] + modl[ 5] * proj[ 4] + modl[ 6] * proj[ 8] + modl[ 7] * proj[12]; + clip[ 5] = modl[ 4] * proj[ 1] + modl[ 5] * proj[ 5] + modl[ 6] * proj[ 9] + modl[ 7] * proj[13]; + clip[ 6] = modl[ 4] * proj[ 2] + modl[ 5] * proj[ 6] + modl[ 6] * proj[10] + modl[ 7] * proj[14]; + clip[ 7] = modl[ 4] * proj[ 3] + modl[ 5] * proj[ 7] + modl[ 6] * proj[11] + modl[ 7] * proj[15]; + clip[ 8] = modl[ 8] * proj[ 0] + modl[ 9] * proj[ 4] + modl[10] * proj[ 8] + modl[11] * proj[12]; + clip[ 9] = modl[ 8] * proj[ 1] + modl[ 9] * proj[ 5] + modl[10] * proj[ 9] + modl[11] * proj[13]; + clip[10] = modl[ 8] * proj[ 2] + modl[ 9] * proj[ 6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[ 8] * proj[ 3] + modl[ 9] * proj[ 7] + modl[10] * proj[11] + modl[11] * proj[15]; + clip[12] = modl[12] * proj[ 0] + modl[13] * proj[ 4] + modl[14] * proj[ 8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[ 1] + modl[13] * proj[ 5] + modl[14] * proj[ 9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[ 2] + modl[13] * proj[ 6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[ 3] + modl[13] * proj[ 7] + modl[14] * proj[11] + modl[15] * proj[15]; + /* Extract the numbers for the RIGHT plane */ + frustum[0][0] = clip[ 3] - clip[ 0]; + frustum[0][1] = clip[ 7] - clip[ 4]; + frustum[0][2] = clip[11] - clip[ 8]; + frustum[0][3] = clip[15] - clip[12]; + /* Normalize the result */ + t = sqrt( frustum[0][0] * frustum[0][0] + frustum[0][1] * frustum[0][1] + frustum[0][2] * frustum[0][2] ); + frustum[0][0] /= t; + frustum[0][1] /= t; + frustum[0][2] /= t; + frustum[0][3] /= t; + /* Extract the numbers for the LEFT plane */ + frustum[1][0] = clip[ 3] + clip[ 0]; + frustum[1][1] = clip[ 7] + clip[ 4]; + frustum[1][2] = clip[11] + clip[ 8]; + frustum[1][3] = clip[15] + clip[12]; + /* Normalize the result */ + t = sqrt( frustum[1][0] * frustum[1][0] + frustum[1][1] * frustum[1][1] + frustum[1][2] * frustum[1][2] ); + frustum[1][0] /= t; + frustum[1][1] /= t; + frustum[1][2] /= t; + frustum[1][3] /= t; + /* Extract the BOTTOM plane */ + frustum[2][0] = clip[ 3] + clip[ 1]; + frustum[2][1] = clip[ 7] + clip[ 5]; + frustum[2][2] = clip[11] + clip[ 9]; + frustum[2][3] = clip[15] + clip[13]; + /* Normalize the result */ + t = sqrt( frustum[2][0] * frustum[2][0] + frustum[2][1] * frustum[2][1] + frustum[2][2] * frustum[2][2] ); + frustum[2][0] /= t; + frustum[2][1] /= t; + frustum[2][2] /= t; + frustum[2][3] /= t; + /* Extract the TOP plane */ + frustum[3][0] = clip[ 3] - clip[ 1]; + frustum[3][1] = clip[ 7] - clip[ 5]; + frustum[3][2] = clip[11] - clip[ 9]; + frustum[3][3] = clip[15] - clip[13]; + /* Normalize the result */ + t = sqrt( frustum[3][0] * frustum[3][0] + frustum[3][1] * frustum[3][1] + frustum[3][2] * frustum[3][2] ); + frustum[3][0] /= t; + frustum[3][1] /= t; + frustum[3][2] /= t; + frustum[3][3] /= t; + /* Extract the FAR plane */ + frustum[4][0] = clip[ 3] - clip[ 2]; + frustum[4][1] = clip[ 7] - clip[ 6]; + frustum[4][2] = clip[11] - clip[10]; + frustum[4][3] = clip[15] - clip[14]; + /* Normalize the result */ + t = sqrt( frustum[4][0] * frustum[4][0] + frustum[4][1] * frustum[4][1] + frustum[4][2] * frustum[4][2] ); + frustum[4][0] /= t; + frustum[4][1] /= t; + frustum[4][2] /= t; + frustum[4][3] /= t; + /* Extract the NEAR plane */ + frustum[5][0] = clip[ 3] + clip[ 2]; + frustum[5][1] = clip[ 7] + clip[ 6]; + frustum[5][2] = clip[11] + clip[10]; + frustum[5][3] = clip[15] + clip[14]; + /* Normalize the result */ + t = sqrt( frustum[5][0] * frustum[5][0] + frustum[5][1] * frustum[5][1] + frustum[5][2] * frustum[5][2] ); + frustum[5][0] /= t; + frustum[5][1] /= t; + frustum[5][2] /= t; + frustum[5][3] /= t; + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__*/ diff --git a/src/client/renderer/culling/tmp/FrustumData.h b/src/client/renderer/culling/tmp/FrustumData.h new file mode 100755 index 0000000..aa9befd --- /dev/null +++ b/src/client/renderer/culling/tmp/FrustumData.h @@ -0,0 +1,102 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumData_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumData_H__ + +//package net.minecraft.client.renderer.culling; + +#include "world/phys/AABB.h" + + +/*public*/ class FrustumData +{ + //enum FrustumSide + /*public*/ static const int RIGHT = 0; // The RIGHT side of the frustum + /*public*/ static const int LEFT = 1; // The LEFT side of the frustum + /*public*/ static const int BOTTOM = 2; // The BOTTOM side of the frustum + /*public*/ static const int TOP = 3; // The TOP side of the frustum + /*public*/ static const int BACK = 4; // The BACK side of the frustum + /*public*/ static const int FRONT = 5; // The FRONT side of the frustum + + // Like above, instead of saying a number for the ABC and D of the plane, we + // want to be more descriptive. + /*public*/ static const int A = 0; // The X value of the plane's normal + /*public*/ static const int B = 1; // The Y value of the plane's normal + /*public*/ static const int C = 2; // The Z value of the plane's normal + /*public*/ static const int D = 3; // The distance the plane is from the origin + + /*public*/ float** m_Frustum; // = /*new*/ float[16][16]; + /*public*/ float* proj; // = /*new*/ float[16]; + /*public*/ float* modl; // = /*new*/ float[16]; + /*public*/ float* clip; // = /*new*/ float[16]; +/* + /*public*/ FrustumData(float** mFrustum, float* proj, float* modl, float* clip) + { + m_Frustum = mFrustum; + this->proj = proj; + this->modl = modl; + this->clip = clip; + } + /*public*/ bool pointInFrustum(float x, float y, float z) + { + for (int i = 0; i < 6; i++) + { + if (m_Frustum[i][A] * x + m_Frustum[i][B] * y + m_Frustum[i][C] * z + m_Frustum[i][D] <= 0) + { + return false; + } + } + + return true; + } + /*public*/ bool sphereInFrustum(float x, float y, float z, float radius) + { + for (int i = 0; i < 6; i++) + { + if (m_Frustum[i][A] * x + m_Frustum[i][B] * y + m_Frustum[i][C] * z + m_Frustum[i][D] <= -radius) + { + return false; + } + } + + return true; + } + /*public*/ bool cubeFullyInFrustum(float x1, float y1, float z1, float x2, float y2, float z2) + { + for (int i = 0; i < 6; i++) + { + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + if (!(m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0)) return false; + } + + return true; + } + + /*public*/ bool cubeInFrustum(float x1, float y1, float z1, float x2, float y2, float z2) + { + for (int i = 0; i < 6; i++) + { + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z1) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y1) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x1) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + if (m_Frustum[i][A] * (x2) + m_Frustum[i][B] * (y2) + m_Frustum[i][C] * (z2) + m_Frustum[i][D] > 0) continue; + + return false; + } + + return true; + } + /*public*/ bool isVisible(AABB aabb) + { + return cubeInFrustum(aabb.x0, aabb.y0, aabb.z0, aabb.x1, aabb.y1, aabb.z1); + } +} +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumData_H__*/ diff --git a/src/client/renderer/culling/tmp/_FrustumCuller.h b/src/client/renderer/culling/tmp/_FrustumCuller.h new file mode 100755 index 0000000..f93edac --- /dev/null +++ b/src/client/renderer/culling/tmp/_FrustumCuller.h @@ -0,0 +1,37 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__ + +//package net.minecraft.client.renderer.culling; + +#include "world/phys/AABB.h" + +/*public*/ class FrustumCuller: /*implements-interface*/ public Culler { + + /*private*/ FrustumData frustum; + + /*public*/ FrustumCuller() { + frustum = Frustum.getFrustum(); + } + + /*private*/ float xOff, yOff, zOff; + + /*public*/ void prepare(float xOff, float yOff, float zOff) { + this->xOff = xOff; + this->yOff = yOff; + this->zOff = zOff; + } + + /*public*/ bool cubeFullyInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) { + return frustum.cubeFullyInFrustum(x0 - xOff, y0 - yOff, z0 - zOff, x1 - xOff, y1 - yOff, z1 - zOff); + } + + /*public*/ bool cubeInFrustum(float x0, float y0, float z0, float x1, float y1, float z1) { + return frustum.cubeInFrustum(x0 - xOff, y0 - yOff, z0 - zOff, x1 - xOff, y1 - yOff, z1 - zOff); + } + + /*public*/ bool isVisible(AABB bb) { + return cubeInFrustum(bb.x0, bb.y0, bb.z0, bb.x1, bb.y1, bb.z1); + } +} + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_CULLING__FrustumCuller_H__*/ diff --git a/src/client/renderer/entity/ArrowRenderer.cpp b/src/client/renderer/entity/ArrowRenderer.cpp new file mode 100755 index 0000000..f24edfb --- /dev/null +++ b/src/client/renderer/entity/ArrowRenderer.cpp @@ -0,0 +1,63 @@ +#include "ArrowRenderer.h" + +#include "../Tesselator.h" +#include "../Textures.h" +#include "../gles.h" +#include "../../../world/entity/Entity.h" +#include "../../../world/entity/projectile/Arrow.h" + +void ArrowRenderer::render(Entity* entity, float x, float y, float z, float rot, float a) { + bindTexture("item/arrows.png"); + Arrow* arrow = (Arrow*) entity; + glPushMatrix2(); + glTranslatef(x, y, z); + glRotatef(arrow->yRotO + (arrow->yRot - arrow->yRotO) * a - 90, 0, 1, 0); + glRotatef(arrow->xRotO + (arrow->xRot - arrow->xRotO) * a, 0, 0, 1); + Tesselator& t = Tesselator::instance; + + int type = 0; + + float u0 = 0 / 32.0f; + float u1 = 16 / 32.0f; + float v0 = (0 + type * 10) / 32.0f; + float v1 = (5 + type * 10) / 32.0f; + + float u02 = 0 / 32.0f; + float u12 = 5 / 32.0f; + float v02 = (5 + type * 10) / 32.0f; + float v12 = (10 + type * 10) / 32.0f; + float ss = 0.9f / 16.0f; + float shake = arrow->shakeTime - a; + if (shake > 0) { + float pow = -Mth::sin(shake * 3) * shake; + glRotatef(pow, 0, 0, 1); + } + glRotatef(45, 1, 0, 0); + glScalef(ss, ss, ss); + + glTranslatef(-4, 0, 0); + + t.begin(); + t.vertexUV(-7, -2, -2, u02, v02); + t.vertexUV(-7, -2, +2, u12, v02); + t.vertexUV(-7, +2, +2, u12, v12); + t.vertexUV(-7, +2, -2, u02, v12); + + t.vertexUV(-7, +2, -2, u02, v02); + t.vertexUV(-7, +2, +2, u12, v02); + t.vertexUV(-7, -2, +2, u12, v12); + t.vertexUV(-7, -2, -2, u02, v12); + t.draw(); + + for (int i = 0; i < 4; i++) { + glRotatef(90, 1, 0, 0); + t.begin(); + t.vertexUV(-8, -2, 0, u0, v0); + t.vertexUV(+8, -2, 0, u1, v0); + t.vertexUV(+8, +2, 0, u1, v1); + t.vertexUV(-8, +2, 0, u0, v1); + t.endOverrideAndDraw(); + } + + glPopMatrix2(); +} \ No newline at end of file diff --git a/src/client/renderer/entity/ArrowRenderer.h b/src/client/renderer/entity/ArrowRenderer.h new file mode 100755 index 0000000..a69627f --- /dev/null +++ b/src/client/renderer/entity/ArrowRenderer.h @@ -0,0 +1,9 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ArrowRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ArrowRenderer_H__ +#include "EntityRenderer.h" + +class ArrowRenderer : public EntityRenderer { + void render(Entity* arrow, float x, float y, float z, float rot, float a); +}; + +#endif /* NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ArrowRenderer_H__ */ \ No newline at end of file diff --git a/src/client/renderer/entity/ChickenRenderer.cpp b/src/client/renderer/entity/ChickenRenderer.cpp new file mode 100755 index 0000000..3cc7eff --- /dev/null +++ b/src/client/renderer/entity/ChickenRenderer.cpp @@ -0,0 +1,23 @@ +#include "ChickenRenderer.h" +#include "../../../util/Mth.h" +#include "../../../world/entity/animal/Chicken.h" + + +ChickenRenderer::ChickenRenderer( Model* model, float shadow ) +: super(model, shadow) +{ +} + +void ChickenRenderer::render( Entity* mob, float x, float y, float z, float rot, float a ) +{ + super::render(mob, x, y, z, rot, a); +} + +float ChickenRenderer::getBob( Mob* mob_, float a ) +{ + Chicken* mob = (Chicken*) mob_; + float flap = mob->oFlap+(mob->flap-mob->oFlap)*a; + float flapSpeed = mob->oFlapSpeed+(mob->flapSpeed-mob->oFlapSpeed)*a; + + return (Mth::sin(flap)+1)*flapSpeed; +} diff --git a/src/client/renderer/entity/ChickenRenderer.h b/src/client/renderer/entity/ChickenRenderer.h new file mode 100755 index 0000000..f3e1bcf --- /dev/null +++ b/src/client/renderer/entity/ChickenRenderer.h @@ -0,0 +1,22 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ChickenRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ChickenRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "MobRenderer.h" + +class Mob; + +class ChickenRenderer: public MobRenderer +{ + typedef MobRenderer super; +public: + ChickenRenderer(Model* model, float shadow); + + void render(Entity* mob, float x, float y, float z, float rot, float a); + +protected: + float getBob(Mob* mob_, float a); +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ChickenRenderer_H__*/ diff --git a/src/client/renderer/entity/CreeperRenderer.h b/src/client/renderer/entity/CreeperRenderer.h new file mode 100755 index 0000000..594bc48 --- /dev/null +++ b/src/client/renderer/entity/CreeperRenderer.h @@ -0,0 +1,94 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__CreeperRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__CreeperRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "MobRenderer.h" + +#include "../../model/CreeperModel.h" +#include "../../model/Model.h" +#include "../../../world/entity/monster/Creeper.h" +#include "../../../util/Mth.h" + +class CreeperRenderer: public MobRenderer +{ + typedef MobRenderer super; +public: + CreeperRenderer() + : super(new CreeperModel(), 0.5f) + { + } + +protected: + void scale(Mob* mob, float a) { + Creeper* creeper = (Creeper*) mob; + + float g = creeper->getSwelling(a); + + float wobble = 1.0f + Mth::sin(g * 100) * g * 0.01f; + if (g < 0) g = 0; + if (g > 1) g = 1; + g = g * g; + g = g * g; + float s = (1.0f + g * 0.4f) * wobble; + float hs = (1.0f + g * 0.1f) / wobble; + glScalef(s, hs, s); + } + + int getOverlayColor(Mob* mob, float br, float a) { + Creeper* creeper = (Creeper*) mob; + + float step = creeper->getSwelling(a); + + if ((int) (step * 10) % 2 == 0) return 0; + + int _a = (int) (step * 0.2f * 255); + if (_a < 0) _a = 0; + if (_a > 255) _a = 255; + + int r = 255; + int g = 255; + int b = 255; + + return (_a << 24) | (r << 16) | (g << 8) | b; + } + + // int prepareArmor(Mob* mob, int layer, float a) { + //Creeper* creeper = (Creeper*) mob; + // if (creeper->isPowered()) { + // if (layer == 1) { + // float time = mob->tickCount + a; + // bindTexture("/armor/power.png"); + // glMatrixMode(GL_TEXTURE); + // glLoadIdentity(); + // float uo = time * 0.01f; + // float vo = time * 0.01f; + // glTranslatef(uo, vo, 0); + // setArmor(armorModel); + // glMatrixMode(GL_MODELVIEW); + // glEnable(GL_BLEND); + // float br = 0.5f; + // glColor4f2(br, br, br, 1); + // glDisable(GL_LIGHTING); + // glBlendFunc2(GL_ONE, GL_ONE); + // return 1; + // } + // if (layer == 2) { + // glMatrixMode(GL_TEXTURE); + // glLoadIdentity(); + // glMatrixMode(GL_MODELVIEW); + // glEnable(GL_LIGHTING); + // glDisable(GL_BLEND); + // } + // } + // return -1; + // } + + // int prepareArmorOverlay(Mob* mob, int layer, float a) { + // return -1; + // } +//private: + //Model* armorModel = /*new*/ CreeperModel(2); +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__CreeperRenderer_H__*/ diff --git a/src/client/renderer/entity/EntityRenderDispatcher.cpp b/src/client/renderer/entity/EntityRenderDispatcher.cpp new file mode 100755 index 0000000..6c0e72e --- /dev/null +++ b/src/client/renderer/entity/EntityRenderDispatcher.cpp @@ -0,0 +1,194 @@ +#include "EntityRenderDispatcher.h" + +#include "../../Options.h" +#include "../../../world/entity/player/Player.h" +#include "../../../world/item/Item.h" +#include "../../../world/level/Level.h" +#include "../../../world/level/tile/Tile.h" +#include "../../model/ModelInclude.h" + +#include "ItemSpriteRenderer.h" +#include "FallingTileRenderer.h" + +#include "HumanoidMobRenderer.h" +#include "ItemRenderer.h" +#include "TntRenderer.h" +#include "TripodCameraRenderer.h" +#include "PigRenderer.h" +#include "MobRenderer.h" +#include "PlayerRenderer.h" + +#include "CreeperRenderer.h" +#include "SpiderRenderer.h" + +#include "ChickenRenderer.h" +#include "SheepRenderer.h" +#include "ArrowRenderer.h" +#include "PaintingRenderer.h" + + +/*static*/ +EntityRenderDispatcher* EntityRenderDispatcher::instance = NULL; + +/*static*/ +float EntityRenderDispatcher::xOff = 0, + EntityRenderDispatcher::yOff = 0, + EntityRenderDispatcher::zOff = 0; + +EntityRenderDispatcher::EntityRenderDispatcher() +: itemInHandRenderer(NULL) +{ + //@note: The Models (model/armor) will be deleted by resp. MobRenderer + assign( ER_ITEM_RENDERER, new ItemRenderer()); + assign( ER_HUMANOID_RENDERER, new HumanoidMobRenderer(new HumanoidModel(), 0)); + assign( ER_PIG_RENDERER, new PigRenderer(new PigModel(), NULL/*new PigModel(0.5f)*/, 0)); + assign( ER_COW_RENDERER, new MobRenderer(new CowModel(), 0)); + assign( ER_CHICKEN_RENDERER, new ChickenRenderer( new ChickenModel(), 0)); + assign( ER_SHEEP_RENDERER, new SheepRenderer(new SheepModel(), new SheepFurModel(), 0)); + assign( ER_SKELETON_RENDERER, new HumanoidMobRenderer(new SkeletonModel(), 0.5f)); + assign( ER_ZOMBIE_RENDERER, new HumanoidMobRenderer(new ZombieModel(), 0.5f)); + assign( ER_CREEPER_RENDERER, new CreeperRenderer()); + assign( ER_SPIDER_RENDERER, new SpiderRenderer()); + assign( ER_TNT_RENDERER, new TntRenderer()); + assign( ER_ARROW_RENDERER, new ArrowRenderer()); + assign( ER_PLAYER_RENDERER, new PlayerRenderer(new HumanoidModel(), 0)); + assign( ER_THROWNEGG_RENDERER, new ItemSpriteRenderer(Item::egg->getIcon(0))); + assign( ER_SNOWBALL_RENDERER, new ItemSpriteRenderer(Item::snowBall->getIcon(0))); + assign( ER_PAINTING_RENDERER, new PaintingRenderer()); + assign( ER_FALLINGTILE_RENDERER,new FallingTileRenderer()); + + for (RendererIterator it = _renderers.begin(); it != _renderers.end(); ++it) { + it->second->init(this); + } +} + +void EntityRenderDispatcher::destroy() +{ + if (instance) { + delete instance; + instance = NULL; + } +} + +EntityRenderDispatcher* EntityRenderDispatcher::getInstance() +{ + if (!instance) + instance = new EntityRenderDispatcher(); + + return instance; +} + +EntityRenderDispatcher::~EntityRenderDispatcher() +{ + std::set destroyed; + for (RendererCIterator cit = _renderers.begin(); cit != _renderers.end(); ++cit) { + if (destroyed.find(cit->second) == destroyed.end()) { + destroyed.insert(cit->second); + delete cit->second; + } + } +} + +void EntityRenderDispatcher::prepare( Level* level, Font* font, Mob* player, Options* options, float a ) +{ + this->level = level; + this->options = options; + this->cameraEntity = player; + this->_font = font; + if(player->isSleeping()) { + int t = level->getTile(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + if (t == Tile::bed->id) { + int data = level->getData(Mth::floor(player->x), Mth::floor(player->y), Mth::floor(player->z)); + + int direction = data & 3; + playerRotY = float(direction * 90 + 180); + playerRotX = 0; + } + } + else { + playerRotY = player->yRotO + (player->yRot - player->yRotO) * a; + playerRotX = player->xRotO + (player->xRot - player->xRotO) * a; + } + + xPlayer = player->xOld + (player->x - player->xOld) * a; + yPlayer = player->yOld + (player->y - player->yOld) * a; + zPlayer = player->zOld + (player->z - player->zOld) * a; +} + +void EntityRenderDispatcher::render( Entity* entity, float a ) +{ + float x = entity->xOld + (entity->x - entity->xOld) * a; + float y = entity->yOld + (entity->y - entity->yOld) * a; + float z = entity->zOld + (entity->z - entity->zOld) * a; + float r = entity->yRotO + (entity->yRot - entity->yRotO) * a; + + float br = entity->getBrightness(a); + glColor4f2(br, br, br, 1); + + render(entity, x - xOff, y - yOff, z - zOff, r, a); +} + +void EntityRenderDispatcher::render( Entity* entity, float x, float y, float z, float rot, float a ) +{ + EntityRenderer* renderer = getRenderer(entity); + if (renderer != NULL) { + renderer->render(entity, x, y, z, rot, a); + //renderer->postRender(entity, x, y, z, rot, a); + } +} + +EntityRenderer* EntityRenderDispatcher::getRenderer( Entity* entity ) +{ + EntityRendererId rendererId = entity->entityRendererId; + + if (rendererId == ER_QUERY_RENDERER) + rendererId = entity->queryEntityRenderer(); + + return getRenderer(rendererId); +} + +EntityRenderer* EntityRenderDispatcher::getRenderer( EntityRendererId rendererId ) +{ + + EntityRenderer* renderer = NULL; + RendererCIterator cit = _renderers.find(rendererId); + if (cit != _renderers.end()) { + renderer = cit->second; + } + return renderer; +} + +void EntityRenderDispatcher::setLevel( Level* level ) +{ + this->level = level; +} + +void EntityRenderDispatcher::setMinecraft( Minecraft* minecraft ) +{ + this->minecraft = minecraft; +} + +float EntityRenderDispatcher::distanceToSqr( float x, float y, float z ) +{ + float xd = x - xPlayer; + float yd = y - yPlayer; + float zd = z - zPlayer; + return xd * xd + yd * yd + zd * zd; +} + +Font* EntityRenderDispatcher::getFont() +{ + return _font; +} + +void EntityRenderDispatcher::onGraphicsReset() +{ + for (RendererIterator it = _renderers.begin(); it != _renderers.end(); ++it) { + it->second->onGraphicsReset(); + } +} + +void EntityRenderDispatcher::assign( EntityRendererId id, EntityRenderer* renderer ) +{ + _renderers.insert(std::make_pair(id, renderer)); +} diff --git a/src/client/renderer/entity/EntityRenderDispatcher.h b/src/client/renderer/entity/EntityRenderDispatcher.h new file mode 100755 index 0000000..06c4eac --- /dev/null +++ b/src/client/renderer/entity/EntityRenderDispatcher.h @@ -0,0 +1,76 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__EntityRenderDispatcher_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__EntityRenderDispatcher_H__ + +//package net.minecraft.client.renderer.entity; + +#include +#include "../../../world/entity/EntityRendererId.h" + +class EntityRenderer; +class Level; +class Font; +class Textures; +class ItemInHandRenderer; +class Minecraft; +class Textures; +class Options; +class Entity; +class Mob; + +class EntityRenderDispatcher +{ + typedef std::map RendererMap; + typedef RendererMap::iterator RendererIterator; + typedef RendererMap::const_iterator RendererCIterator; + +public: + EntityRenderDispatcher(); + ~EntityRenderDispatcher(); + static EntityRenderDispatcher* getInstance(); + + static void destroy(); + + void prepare(Level* level, Font* font, Mob* player, Options* options, float a); + + void render(Entity* entity, float a); + void render(Entity* entity, float x, float y, float z, float rot, float a); + EntityRenderer* getRenderer( Entity* entity ); + EntityRenderer* getRenderer( EntityRendererId rendererId ); + + void setLevel(Level* level); + void setMinecraft(Minecraft* minecraft); + + float distanceToSqr(float x, float y, float z); + + Font* getFont(); + + void onGraphicsReset(); +private: + void assign(EntityRendererId id, EntityRenderer* renderer); +public: + ItemInHandRenderer* itemInHandRenderer; + + //TripodCameraRenderer tripodCameraRenderer; + + static float xOff, yOff, zOff; + + Textures* textures; + Level* level; + Minecraft* minecraft; + Mob* cameraEntity; + + float playerRotY; + float playerRotX; + Options* options; + + float xPlayer, yPlayer, zPlayer; + +private: + static EntityRenderDispatcher* instance; + + Font* _font; + // For onGraphicsReset etc + RendererMap _renderers; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__EntityRenderDispatcher_H__*/ diff --git a/src/client/renderer/entity/EntityRenderer.cpp b/src/client/renderer/entity/EntityRenderer.cpp new file mode 100755 index 0000000..641581b --- /dev/null +++ b/src/client/renderer/entity/EntityRenderer.cpp @@ -0,0 +1,249 @@ +#include "EntityRenderer.h" + +#include "../Tesselator.h" +#include "../Textures.h" +#include "../gles.h" +#include "../../../world/phys/AABB.h" +#include "EntityRenderDispatcher.h" + +EntityRenderDispatcher* EntityRenderer::entityRenderDispatcher = NULL; + +EntityRenderer::EntityRenderer() +: shadowRadius(0), + shadowStrength(1.0f) +{} + +void EntityRenderer::bindTexture(const std::string& resourceName) { + entityRenderDispatcher->textures->loadAndBindTexture(resourceName); +} + +//bool bindTexture(std::string urlTexture, std::string backupTexture) { +// Textures t = entityRenderDispatcher.textures; + +// int id = t.loadHttpTexture(urlTexture, backupTexture); +// if (id >= 0) { +// t.bind(id); +// return true; +// } else { +// return false; +// } +//} + +/*static*/ +void EntityRenderer::render(const AABB& bb, float xo, float yo, float zo) { + glDisable2(GL_TEXTURE_2D); + Tesselator& t = Tesselator::instance; + glColor4f2(1, 1, 1, 1); + t.begin(); + t.offset(xo, yo, zo); + //t.normal(0, 0, -1); + t.vertex(bb.x0, bb.y1, bb.z0); + t.vertex(bb.x1, bb.y1, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z0); + t.vertex(bb.x0, bb.y0, bb.z0); + + //t.normal(0, 0, 1); + t.vertex(bb.x0, bb.y0, bb.z1); + t.vertex(bb.x1, bb.y0, bb.z1); + t.vertex(bb.x1, bb.y1, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z1); + + //t.normal(0, -1, 0); + t.vertex(bb.x0, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z1); + t.vertex(bb.x0, bb.y0, bb.z1); + + //t.normal(0, 1, 0); + t.vertex(bb.x0, bb.y1, bb.z1); + t.vertex(bb.x1, bb.y1, bb.z1); + t.vertex(bb.x1, bb.y1, bb.z0); + t.vertex(bb.x0, bb.y1, bb.z0); + + //t.normal(-1, 0, 0); + t.vertex(bb.x0, bb.y0, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z0); + t.vertex(bb.x0, bb.y0, bb.z0); + + //t.normal(1, 0, 0); + t.vertex(bb.x1, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y1, bb.z0); + t.vertex(bb.x1, bb.y1, bb.z1); + t.vertex(bb.x1, bb.y0, bb.z1); + t.offset(0, 0, 0); + t.draw(); + glEnable2(GL_TEXTURE_2D); + // model.render(0, 1) +} + +/*static*/ +void EntityRenderer::renderFlat(const AABB& bb) { + Tesselator& t = Tesselator::instance; + t.begin(); + t.vertex(bb.x0, bb.y1, bb.z0); + t.vertex(bb.x1, bb.y1, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z0); + t.vertex(bb.x0, bb.y0, bb.z0); + t.vertex(bb.x0, bb.y0, bb.z1); + t.vertex(bb.x1, bb.y0, bb.z1); + t.vertex(bb.x1, bb.y1, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z1); + t.vertex(bb.x0, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z1); + t.vertex(bb.x0, bb.y0, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z1); + t.vertex(bb.x1, bb.y1, bb.z1); + t.vertex(bb.x1, bb.y1, bb.z0); + t.vertex(bb.x0, bb.y1, bb.z0); + t.vertex(bb.x0, bb.y0, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z1); + t.vertex(bb.x0, bb.y1, bb.z0); + t.vertex(bb.x0, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y0, bb.z0); + t.vertex(bb.x1, bb.y1, bb.z0); + t.vertex(bb.x1, bb.y1, bb.z1); + t.vertex(bb.x1, bb.y0, bb.z1); + t.draw(); +} + +void EntityRenderer::init(EntityRenderDispatcher* entityRenderDispatcher) { + this->entityRenderDispatcher = entityRenderDispatcher; +} + +Font* EntityRenderer::getFont() { + return entityRenderDispatcher->getFont(); +} + +//void postRender(Entity entity, float x, float y, float z, float rot, float a) { +// if (entityRenderDispatcher.options.fancyGraphics && shadowRadius > 0) { +// float dist = entityRenderDispatcher.distanceToSqr(entity.x, entity.y, entity.z); +// float pow = (float) ((1 - dist / (16.0f * 16.0f)) * shadowStrength); +// if (pow > 0) { +// renderShadow(entity, x, y, z, pow, a); +// } +// } +// if (entity.isOnFire()) renderFlame(entity, x, y, z, a); +//} + +//void renderFlame(Entity e, float x, float y, float z, float a) { +// glDisable2(GL_LIGHTING); +// int tex = Tile.fire.tex; + +// int xt = (tex & 0xf) << 4; +// int yt = tex & 0xf0; + +// float u0 = (xt) / 256.0f; +// float u1 = (xt + 15.99f) / 256.0f; +// float v0 = (yt) / 256.0f; +// float v1 = (yt + 15.99f) / 256.0f; + +// glPushMatrix2(); +// glTranslatef2((float) x, (float) y, (float) z); + +// float s = e.bbWidth * 1.4f; +// glScalef2(s, s, s); +// bindTexture("terrain.png"); +// Tesselator t = Tesselator.instance; + +// float r = 1.0f; +// float xo = 0.5f; +// float yo = 0.0f; + +// float h = e.bbHeight / e.bbWidth; + +// glRotatef2(-entityRenderDispatcher.playerRotY, 0, 1, 0); +// glTranslatef2(0, 0, -0.4f + ((int) h) * 0.02f); +// glColor4f2(1, 1, 1, 1); +// // glRotatef2(-playerRotX, 1, 0, 0); +// t.begin(); +// while (h > 0) { +// t.vertexUV(r - xo, 0 - yo, 0, u1, v1); +// t.vertexUV(0 - xo, 0 - yo, 0, u0, v1); +// t.vertexUV(0 - xo, 1.4f - yo, 0, u0, v0); +// t.vertexUV(r - xo, 1.4f - yo, 0, u1, v0); +// h -= 1; +// yo -= 1; +// r *= 0.9f; +// glTranslatef2(0, 0, -0.04f); +// } +// t.end(); +// glPopMatrix2(); +// glEnable2(GL_LIGHTING); +//} + +//void renderShadow(Entity e, float x, float y, float z, float pow, float a) { +// glEnable2(GL_BLEND); +// glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + +// Textures textures = entityRenderDispatcher.textures; +// textures.bind(textures.loadTexture("%clamp%/misc/shadow.png")); + +// Level level = getLevel(); + +// glDepthMask(false); +// float r = shadowRadius; + +// float ex = e.xOld + (e.x - e.xOld) * a; +// float ey = e.yOld + (e.y - e.yOld) * a + e.getShadowHeightOffs(); +// float ez = e.zOld + (e.z - e.zOld) * a; + +// int x0 = Mth.floor(ex - r); +// int x1 = Mth.floor(ex + r); +// int y0 = Mth.floor(ey - r); +// int y1 = Mth.floor(ey); +// int z0 = Mth.floor(ez - r); +// int z1 = Mth.floor(ez + r); + +// float xo = x - ex; +// float yo = y - ey; +// float zo = z - ez; + +// Tesselator tt = Tesselator.instance; +// tt.begin(); +// for (int xt = x0; xt <= x1; xt++) +// for (int yt = y0; yt <= y1; yt++) +// for (int zt = z0; zt <= z1; zt++) { +// int t = level.getTile(xt, yt - 1, zt); +// if (t > 0 && level.getRawBrightness(xt, yt, zt) > 3) { +// renderTileShadow(Tile.tiles[t], x, y + e.getShadowHeightOffs(), z, xt, yt, zt, pow, r, xo, yo + e.getShadowHeightOffs(), zo); +// } +// } +// tt.end(); + +// glColor4f2(1, 1, 1, 1); +// glDisable2(GL_BLEND); +// glDepthMask(true); +//} + +//Level* getLevel() { +// return entityRenderDispatcher.level; +//} + +//void renderTileShadow(Tile tt, float x, float y, float z, int xt, int yt, int zt, float pow, float r, float xo, float yo, float zo) { +// Tesselator t = Tesselator.instance; +// if (!tt.isCubeShaped()) return; + +// float a = ((pow - (y - (yt + yo)) / 2) * 0.5f) * getLevel().getBrightness(xt, yt, zt); +// if (a < 0) return; +// if (a > 1) a = 1; +// t.color(1, 1, 1, (float) a); +// // glColor4f2(1, 1, 1, (float) a); + +// float x0 = xt + tt.xx0 + xo; +// float x1 = xt + tt.xx1 + xo; +// float y0 = yt + tt.yy0 + yo + 1.0 / 64.0f; +// float z0 = zt + tt.zz0 + zo; +// float z1 = zt + tt.zz1 + zo; + +// float u0 = (float) ((x - (x0)) / 2 / r + 0.5f); +// float u1 = (float) ((x - (x1)) / 2 / r + 0.5f); +// float v0 = (float) ((z - (z0)) / 2 / r + 0.5f); +// float v1 = (float) ((z - (z1)) / 2 / r + 0.5f); + +// t.vertexUV(x0, y0, z0, u0, v0); +// t.vertexUV(x0, y0, z1, u0, v1); +// t.vertexUV(x1, y0, z1, u1, v1); +// t.vertexUV(x1, y0, z0, u1, v0); +//} diff --git a/src/client/renderer/entity/EntityRenderer.h b/src/client/renderer/entity/EntityRenderer.h new file mode 100755 index 0000000..318f7f2 --- /dev/null +++ b/src/client/renderer/entity/EntityRenderer.h @@ -0,0 +1,40 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__EntityRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__EntityRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include +#include "../../model/HumanoidModel.h" + +class Textures; +class Tesselator; +class EntityRenderDispatcher; +class Entity; +class AABB; +class Font; + +class EntityRenderer +{ +protected: + EntityRenderer(); +public: + virtual ~EntityRenderer() {} + void init(EntityRenderDispatcher* entityRenderDispatcher); + + virtual void render(Entity* entity, float x, float y, float z, float rot, float a) = 0; + static void render(const AABB& bb, float xo, float yo, float zo); + static void renderFlat(const AABB& bb); + + Font* getFont(); + + virtual void onGraphicsReset() {} + +protected: + void bindTexture(const std::string& resourceName); + + float shadowRadius; + float shadowStrength; + static EntityRenderDispatcher* entityRenderDispatcher; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__EntityRenderer_H__*/ diff --git a/src/client/renderer/entity/FallingTileRenderer.cpp b/src/client/renderer/entity/FallingTileRenderer.cpp new file mode 100755 index 0000000..0cf9eb4 --- /dev/null +++ b/src/client/renderer/entity/FallingTileRenderer.cpp @@ -0,0 +1,32 @@ +#include "FallingTileRenderer.h" +#include "../TileRenderer.h" +#include "../../../world/entity/item/FallingTile.h" +#include "../../../world/level/tile/Tile.h" +#include "../../../world/level/Level.h" + +FallingTileRenderer::FallingTileRenderer() { + this->shadowRadius = 0.5f; + tileRenderer = new TileRenderer(); +} + +FallingTileRenderer::~FallingTileRenderer() { + delete tileRenderer; +} + +void FallingTileRenderer::render( Entity* e, float x, float y, float z, float rot, float a ) { + FallingTile* tile = (FallingTile*) e; + + glPushMatrix(); + glTranslatef(x, y, z); + + bindTexture("terrain.png"); + Tile* tt = Tile::tiles[tile->tile]; + + Level* level = tile->getLevel(); + + if (tt != NULL) { + tileRenderer->renderBlock(tt, level, Mth::floor(tile->x), Mth::floor(tile->y), Mth::floor(tile->z)); + + } + glPopMatrix(); +} diff --git a/src/client/renderer/entity/FallingTileRenderer.h b/src/client/renderer/entity/FallingTileRenderer.h new file mode 100755 index 0000000..0147c8a --- /dev/null +++ b/src/client/renderer/entity/FallingTileRenderer.h @@ -0,0 +1,22 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__FallingTileRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__FallingTileRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "EntityRenderer.h" + +class TileRenderer; + +class FallingTileRenderer: public EntityRenderer +{ + typedef EntityRenderer super; +public: + FallingTileRenderer(); + ~FallingTileRenderer(); + + void render(Entity* e, float x, float y, float z, float rot, float a); +private: + TileRenderer* tileRenderer; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__FallingTileRenderer_H__*/ diff --git a/src/client/renderer/entity/HumanoidMobRenderer.cpp b/src/client/renderer/entity/HumanoidMobRenderer.cpp new file mode 100755 index 0000000..b9efe21 --- /dev/null +++ b/src/client/renderer/entity/HumanoidMobRenderer.cpp @@ -0,0 +1,83 @@ +#include "HumanoidMobRenderer.h" +#include "EntityRenderDispatcher.h" +#include "../ItemInHandRenderer.h" +#include "../TileRenderer.h" +#include "../../model/HumanoidModel.h" +#include "../../../world/level/tile/Tile.h" +#include "../../../world/entity/player/Player.h" +#include "../../../world/entity/player/Inventory.h" +#include "../../../world/item/ItemInstance.h" +#include "../../../world/item/Item.h" +#include "../../../world/item/BowItem.h" + +HumanoidMobRenderer::HumanoidMobRenderer(HumanoidModel* humanoidModel, float shadow) +: super(humanoidModel, shadow), + humanoidModel(humanoidModel) +{ +} + +void HumanoidMobRenderer::renderHand() { + humanoidModel->attackTime = 0; + humanoidModel->setupAnim(0, 0, 0, 0, 0, 1 / 16.0f); + + //@attn @cuberender @enableClientState @vertexarray + glEnableClientState2(GL_VERTEX_ARRAY); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + //glEnableClientState2(GL_COLOR_ARRAY); + humanoidModel->arm0.render(1 / 16.0f); + glDisableClientState2(GL_VERTEX_ARRAY); + glDisableClientState2(GL_TEXTURE_COORD_ARRAY); + //glDisableClientState2(GL_COLOR_ARRAY); +} + +void HumanoidMobRenderer::additionalRendering(Mob* mob, float a) { + ItemInstance* item = mob->getCarriedItem(); + if (item != NULL && item->count > 0) { + glPushMatrix2(); + humanoidModel->arm0.translateTo(1 / 16.0f); + glTranslatef2(-1.0f / 16.0f, 7.0f / 16.0f, 1.0f / 16.0f); + + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) { + float s = 8.0f / 16.0f; + glTranslatef2(0.0f, 3.0f / 16.0f, -5 / 16.0f); + s *= 0.75f; + glRotatef2(20.0f, 1.0f, 0.0f, 0.0f); + glRotatef2(45.0f, 0.0f, 1.0f, 0.0f); + glScalef2(s, -s, s); + } else if (item->id == Item::bow->id) { + const float s = 10.0f / 16.0f; + glTranslatef2(0 / 16.0f, 2 / 16.0f, 5 / 16.0f); + glRotatef2(-20, 0, 1, 0); + glScalef2(s, -s, s); + glRotatef2(-100, 1, 0, 0); + glRotatef2(45, 0, 1, 0); + } else if (Item::items[item->id]->isHandEquipped()) { + float s = 10.0f / 16.0f; + glTranslatef2(0.0f, 3.0f / 16.0f, 0.0f); + glScalef2(s, -s, s); + glRotatef2(-100.0f, 1.0f, 0.0f, 0.0f); + glRotatef2(45.0f, 0.0f, 1.0f, 0.0f); + } else { + float s = 6 / 16.0f; + glTranslatef2(+4 / 16.0f, +3 / 16.0f, -3 / 16.0f); + glScalef2(s, s, s); + glRotatef2(60.0f, 0.0f, 0.0f, 1.0f); + glRotatef2(-90.0f, 1.0f, 0.0f, 0.0f); + glRotatef2(20.0f, 0.0f, 0.0f, 1.0f); + } + entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item); + glPopMatrix2(); + } +} + +void HumanoidMobRenderer::render( Entity* mob_, float x, float y, float z, float rot, float a ) { + Mob* mob = (Mob*)mob_; + ItemInstance* carriedItem = mob->getCarriedItem(); + if(carriedItem != NULL) + humanoidModel->holdingRightHand = true; + + humanoidModel->sneaking = mob->isSneaking(); + + super::render(mob_, x, y, z, rot, a); + humanoidModel->holdingRightHand = false; +} diff --git a/src/client/renderer/entity/HumanoidMobRenderer.h b/src/client/renderer/entity/HumanoidMobRenderer.h new file mode 100755 index 0000000..59c6b0c --- /dev/null +++ b/src/client/renderer/entity/HumanoidMobRenderer.h @@ -0,0 +1,26 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__HumanoidMobRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__HumanoidMobRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "MobRenderer.h" + +class HumanoidModel; +class Mob; + +class HumanoidMobRenderer: public MobRenderer +{ + typedef MobRenderer super; +public: + HumanoidMobRenderer(HumanoidModel* humanoidModel, float shadow); + + void renderHand(); + void render(Entity* mob_, float x, float y, float z, float rot, float a); +protected: + void additionalRendering(Mob* mob, float a); + +private: + HumanoidModel* humanoidModel; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__HumanoidMobRenderer_H__*/ diff --git a/src/client/renderer/entity/ItemRenderer.cpp b/src/client/renderer/entity/ItemRenderer.cpp new file mode 100755 index 0000000..15e63d1 --- /dev/null +++ b/src/client/renderer/entity/ItemRenderer.cpp @@ -0,0 +1,321 @@ +#include "ItemRenderer.h" +#include "EntityRenderDispatcher.h" +#include "../Tesselator.h" +#include "../TileRenderer.h" +#include "../Textures.h" +#include "../../gui/Font.h" +#include "../../../world/entity/item/ItemEntity.h" +#include "../../../world/item/ItemInstance.h" +#include "../../../world/level/tile/Tile.h" +#include "../../../util/Mth.h" +#include "../../../util/Random.h" +#include "EntityRenderer.h" +#include "../ItemInHandRenderer.h" +#include "../../gui/Gui.h" +#include "../../../world/item/Item.h" + +/*static*/ +TileRenderer* ItemRenderer::tileRenderer = new TileRenderer(); + +ItemRenderer::ItemRenderer() +{ + shadowRadius = 0.15f; + shadowStrength = 0.75f; +} + +void ItemRenderer::teardown_static() { + if (tileRenderer) { + delete tileRenderer; + tileRenderer = NULL; + } +} + +void ItemRenderer::render(Entity* itemEntity_, float x, float y, float z, float rot, float a) { + ItemEntity* itemEntity = (ItemEntity*) itemEntity_; + random.setSeed(187); + ItemInstance* item = &itemEntity->item; + + glPushMatrix2(); + float bob = Mth::sin((itemEntity->age + a) / 10.0f + itemEntity->bobOffs) * 0.1f + 0.1f; + float spin = ((itemEntity->age + a) / 20.0f + itemEntity->bobOffs) * Mth::RADDEG; + + int count = 1; + if (item->count > 20) count = 4; + else if (item->count > 5) count = 3; + else if (item->count > 1) count = 2; + + glTranslatef2((float) x, (float) y + bob, (float) z); + //glEnable2(GL_RESCALE_NORMAL); + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) { + glRotatef2(spin, 0, 1, 0); + + float br = itemEntity->getBrightness(a); + if (item->id == Tile::sand->id || item->id == Tile::sandStone->id) br *= 0.8f; + glColor4f2(br, br, br, 1.0f); + + bindTexture("terrain.png"); + float s = 1 / 4.0f; + //if (!Tile::tiles[item->id]->isCubeShaped() && item->id != Tile::stoneSlabHalf->id) { + const int shape = Tile::tiles[item->id]->getRenderShape(); + if (shape == Tile::SHAPE_CROSS_TEXTURE || shape == Tile::SHAPE_TORCH) + s = 0.5f; + + glScalef2(s, s, s); + for (int i = 0; i < count; i++) { + if (i > 0) { + glPushMatrix2(); + float xo = (random.nextFloat() * 2 - 1) * 0.2f / s; + float yo = (random.nextFloat() * 2 - 1) * 0.2f / s; + float zo = (random.nextFloat() * 2 - 1) * 0.2f / s; + glTranslatef2(xo, yo, zo); + } + //static Stopwatch w; + //w.start(); + entityRenderDispatcher->itemInHandRenderer->renderItem(NULL, item); + //tileRenderer->renderTile(Tile::tiles[item->id], item->getAuxValue()); + //w.stop(); + //w.printEvery(100, "render-item"); + if (i > 0) glPopMatrix2(); + } + } else { + glScalef2(1 / 2.0f, 1 / 2.0f, 1 / 2.0f); + int icon = item->getIcon(); + if (item->id < 256) { + bindTexture("terrain.png"); + } else { + bindTexture("gui/items.png"); + } + Tesselator& t = Tesselator::instance; + + float u0 = ((icon % 16) * 16 + 0) / 256.0f; + float u1 = ((icon % 16) * 16 + 16) / 256.0f; + float v0 = ((icon / 16) * 16 + 0) / 256.0f; + float v1 = ((icon / 16) * 16 + 16) / 256.0f; + + float r = 1.0f; + float xo = 0.5f; + float yo = 0.25f; + + // glRotatef2(-playerRotX, 1, 0, 0); + for (int i = 0; i < count; i++) { + glPushMatrix2(); + if (i > 0) { + float _xo = (random.nextFloat() * 2 - 1) * 0.3f; + float _yo = (random.nextFloat() * 2 - 1) * 0.3f; + float _zo = (random.nextFloat() * 2 - 1) * 0.3f; + glTranslatef2(_xo, _yo, _zo); + } + glRotatef2(180 - entityRenderDispatcher->playerRotY, 0, 1, 0); + t.begin(); + //t.normal(0, 1, 0); + t.vertexUV(0 - xo, 0 - yo, 0, u0, v1); + t.vertexUV(r - xo, 0 - yo, 0, u1, v1); + t.vertexUV(r - xo, 1 - yo, 0, u1, v0); + t.vertexUV(0 - xo, 1 - yo, 0, u0, v0); + //t.end(); + t.draw(); + + glPopMatrix2(); + } + } + //glDisable2(GL_RESCALE_NORMAL); + glPopMatrix2(); +} + + +// @note: _18 -> a,b,c,-1, a,b,c-1, ... +static const signed short _6[] = {139, 140, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _17[] = {16, 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _18[] = {79, 80, 81, -1, 79, 80, 81, -1, 79, 80, 81, -1, 79, 80, 81, -1}; +static const signed short _24[] = {11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _35[] = {52, 59, 58, 57, 56, 55, 54, 53, 67, 66, 65, 64, 63, 62, 61, 60}; +static const signed short _44[] = {28, 32, 30, 29, 31, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _98[] = {1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _155[] = {34, 36, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _263[] = {230, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; +static const signed short _351[] = {-1, 152, 154, -1, 193, 215, 216, -1, -1, 217, 218, 219, 220, 221, 222, 144}; + +static const signed short _mapper[] = {-1, 7, 9, 8, 0, 5, -2, -1, -1, -1, -1, -1, 14, 15, 39, 38, 37, -2, -2, -1, 49, 41, 46, -1, -2, -1, -1, -1, -1, -1, 235, -1, -1, -1, -1, -2, -1, 134, 135, 136, 137, 43, 44, -1, -2, 6, 76, 71, 4, 47, 129, -1, -1, 22, 74, -1, 40, 45, 72, -1, -1, 75, -1, -1, -1, 128, -1, 21, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 48, 77, 10, 236, -1, 69, -1, 20, -1, 50, -1, -1, -1, -1, -1, -1, 68, -1, -2, -1, -1, -1, 130, 78, -1, -1, -1, 70, 23, 25, -1, -1, 19, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, 51, -1, -1, -1, -1, -1, 82, -1, -1, 174, 173, 175, 231, 234, 147, 190, -2, 153, 150, 149, 146, 185, 166, 164, 167, 186, 170, 169, 171, 187, 177, 176, 178, 165, 195, 194, 188, 181, 180, 182, 189, 191, 228, 168, 172, 145, 179, 183, 142, 233, 232, 198, 200, 201, 202, -1, -1, -1, -1, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 192, 156, 157, 133, -1, 148, 131, -1, -1, -1, -1, -1, -1, -1, 226, -1, 199, -1, 159, 158, 138, 224, 225, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -2, 223, 229, -1, 132, -1, -1, -1, 184, 196, -1, 143, 160, 161, 162, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, 197}; + +#define IRMAPCASE(x) case x: return _##x [item->getAuxValue() & 15] + +int ItemRenderer::getAtlasPos(const ItemInstance* item) { + int id = item->id; + if (id < 0 || id >= sizeof(_mapper) / sizeof(const signed short)) + return -1; + + int texId = _mapper[id]; + if (texId != -2) + return texId; + + switch(id) { + IRMAPCASE(6); + IRMAPCASE(17); + IRMAPCASE(18); + IRMAPCASE(24); + IRMAPCASE(35); + IRMAPCASE(44); + IRMAPCASE(98); + IRMAPCASE(155); + IRMAPCASE(263); + IRMAPCASE(351); + default: + break; + } + return -1; +} + +/*static*/ +void ItemRenderer::renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, bool fancy) { + renderGuiItem(font, textures, item, x, y, 16, 16, fancy); +} +void ItemRenderer::renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, float w, float h, bool fancy) { + if (item == NULL) { + //LOGW("item is NULL @ ItemRenderer::renderGuiItem\n"); + return; + } + const int id = item->id; + if (!Item::items[id]) + return; + + int i = getAtlasPos(item); + + if (i < 0) { + Tesselator& t = Tesselator::instance; + if (!t.isOverridden()) + renderGuiItemCorrect(font, textures, item, int(x), int(y)); + else { + // @huge @attn @todo @fix: This is just guess-works.. + // it we're batching for saving the + // buffer, this will fail miserably + t.endOverrideAndDraw(); + glDisable2(GL_TEXTURE_2D); + fillRect(t, x, y, w, h, 0xff0000); + glEnable2(GL_TEXTURE_2D); + renderGuiItemCorrect(font, textures, item, int(x), int(y)); + t.beginOverride(); + } + return; + } + + textures->loadAndBindTexture("gui/gui_blocks.png"); + float u0, u1, v0, v1; + if (i < 128) { + const float P = 48.0f / 512.0f; + u0 = (float)(i%10) * P; + v0 = (float)(i/10) * P; + u1 = u0 + P; + v1 = v0 + P; + } else { + i -= 128; + const float P = 16.0f / 512.0f; + u0 = float(i & 31) * P; + v0 = 27 * P + float(i >> 5) * P; // 27 "icon" rows down + u1 = u0 + P; + v1 = v0 + P; + } + + const float blitOffset = 0; + Tesselator& t = Tesselator::instance; + t.begin(); + t.colorABGR( item->count>0? 0xffffffff : 0x60ffffff); + t.vertexUV(x, y + h, blitOffset, u0, v1); + t.vertexUV(x + w, y + h, blitOffset, u1, v1); + t.vertexUV(x + w, y, blitOffset, u1, v0); + t.vertexUV(x, y, blitOffset, u0, v0); + t.draw(); +} + +void ItemRenderer::renderGuiItemDecorations(const ItemInstance* item, float x, float y) { + if (!item) return; + if (item->count > 0 && item->isDamaged()) { + float p = std::floor(13.5f - (float) item->getDamageValue() * 13.0f / (float) item->getMaxDamage()); + int cc = (int) std::floor(255.5f - (float) item->getDamageValue() * 255.0f / (float) item->getMaxDamage()); + //glDisable(GL_LIGHTING); + //glDisable(GL_DEPTH_TEST); + //glDisable(GL_TEXTURE_2D); + + Tesselator& t = Tesselator::instance; + + int ca = (255 - cc) << 16 | (cc) << 8; + int cb = ((255 - cc) / 4) << 16 | (255 / 4) << 8; + fillRect(t, x + 2, y + 13, 13, 1, 0x000000); + fillRect(t, x + 2, y + 13, 12, 1, cb); + fillRect(t, x + 2, y + 13, p, 1, ca); + + //glEnable(GL_TEXTURE_2D); + //glEnable(GL_LIGHTING); + //glEnable(GL_DEPTH_TEST); + glColor4f2(1, 1, 1, 1); + } +} + +void ItemRenderer::fillRect(Tesselator& t, float x, float y, float w, float h, int c) { + t.begin(); + t.color(c); + t.vertex(x + 0, y + 0, 0); + t.vertex(x + 0, y + h, 0); + t.vertex(x + w, y + h, 0); + t.vertex(x + w, y + 0, 0); + t.draw(); +} + + +void ItemRenderer::renderGuiItemCorrect(Font* font, Textures* textures, const ItemInstance* item, int x, int y) { + if (item == NULL) + return; + + //glDisable(GL_CULL_FACE); + if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) + { + int paint = item->id; + textures->loadAndBindTexture("terrain.png"); + + static float ff = 0;// ff += 0.005f; + static float gg = 0;// gg += 0.01f; + + Tile* tile = Tile::tiles[paint]; + glPushMatrix2(); + glTranslatef2((GLfloat)(x - 2), (GLfloat)(y + 3), -8); + glScalef2(10.0f, 10.0f, 10.0f); + glTranslatef2(1.0f, 0.5f, 0.0f); + glRotatef2(ff + 180.0f + 30.0f, 1, 0, 0); + glRotatef2(gg + 45.0f, 0, 1, 0); + + //glColor4f2(1, 1, 1, 1); + glScalef2(1, 1, 1); + tileRenderer->renderGuiTile(tile, item->getAuxValue()); + glPopMatrix2(); + } + else if (item->getIcon() >= 0) + { + //if (item->id == Item::camera->id) { + // printf("item->id: %d, %d\n", item->id, item->getIcon()); + //} + if (item->id < 256) { + textures->loadAndBindTexture("terrain.png"); + } else { + textures->loadAndBindTexture("gui/items.png"); + } + //Tesselator& t = Tesselator::instance; + //t.scale2d(Gui::InvGuiScale, Gui::InvGuiScale); + blit((float)x, (float)y, (float)(item->getIcon() % 16 * 16), (float)(item->getIcon() / 16 * 16), 16, 16); + //t.resetScale(); + } + //glEnable(GL_CULL_FACE); +} + +/*static*/ +void ItemRenderer::blit(float x, float y, float sx, float sy, float w, float h) { + float blitOffset = 0; + const float us = 1 / 256.0f; + const float vs = 1 / 256.0f; + Tesselator& t = Tesselator::instance; + t.begin(); + t.vertexUV(x, y + h, blitOffset, sx * us, (sy + h) * vs); + t.vertexUV(x + w, y + h, blitOffset, (sx + w) * us, (sy + h) * vs); + t.vertexUV(x + w, y, blitOffset, (sx + w) * us, sy * vs); + t.vertexUV(x, y, blitOffset, sx * us, sy * vs); + //t.end(); + t.draw(); +} diff --git a/src/client/renderer/entity/ItemRenderer.h b/src/client/renderer/entity/ItemRenderer.h new file mode 100755 index 0000000..9fb88f6 --- /dev/null +++ b/src/client/renderer/entity/ItemRenderer.h @@ -0,0 +1,38 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ItemRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ItemRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "EntityRenderer.h" +#include "../../../util/Random.h" + +class Font; +class Entity; +class ItemInstance; +class Textures; +class Tesselator; +class TileRenderer; + +class ItemRenderer: public EntityRenderer +{ +public: + ItemRenderer(); + + void render(Entity* itemEntity_, float x, float y, float z, float rot, float a); + static void renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, bool fancy); + static void renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, float w, float h, bool fancy); + static void renderGuiItemCorrect(Font* font, Textures* textures, const ItemInstance* item, int x, int y); + //void renderGuiItemDecorations(Font* font, Textures* textures, ItemInstance* item, int x, int y); + static void renderGuiItemDecorations(const ItemInstance* item, float x, float y); + + static void blit(float x, float y, float sx, float sy, float w, float h); + static int getAtlasPos(const ItemInstance* item); + + static void teardown_static(); +private: + static void fillRect(Tesselator& t, float x, float y, float w, float h, int c); + static TileRenderer* tileRenderer; + Random random; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ItemRenderer_H__*/ diff --git a/src/client/renderer/entity/ItemSpriteRenderer.cpp b/src/client/renderer/entity/ItemSpriteRenderer.cpp new file mode 100755 index 0000000..7557c4d --- /dev/null +++ b/src/client/renderer/entity/ItemSpriteRenderer.cpp @@ -0,0 +1,41 @@ +#include "ItemSpriteRenderer.h" +#include "EntityRenderDispatcher.h" +#include "../Tesselator.h" +#include "../../../world/entity/Entity.h" + + +ItemSpriteRenderer::ItemSpriteRenderer( int icon ) +: icon(icon) +{ +} + +void ItemSpriteRenderer::render( Entity* e, float x, float y, float z, float rot, float a ) +{ + glPushMatrix2(); + + glTranslatef2((float) x, (float) y, (float) z); + glScalef2(1 / 2.0f, 1 / 2.0f, 1 / 2.0f); + bindTexture("gui/items.png"); + Tesselator& t = Tesselator::instance; + + float u0 = ((icon % 16) * 16 + 0) / 256.0f; + float u1 = ((icon % 16) * 16 + 16) / 256.0f; + float v0 = ((icon / 16) * 16 + 0) / 256.0f; + float v1 = ((icon / 16) * 16 + 16) / 256.0f; + + + float r = 1.0f; + float xo = 0.5f; + float yo = 0.25f; + + glRotatef2(180 - entityRenderDispatcher->playerRotY, 0, 1, 0); + glRotatef2(-entityRenderDispatcher->playerRotX, 1, 0, 0); + t.begin(); + t.vertexUV(0 - xo, 0 - yo, 0, u0, v1); + t.vertexUV(r - xo, 0 - yo, 0, u1, v1); + t.vertexUV(r - xo, 1 - yo, 0, u1, v0); + t.vertexUV(0 - xo, 1 - yo, 0, u0, v0); + t.draw(); + + glPopMatrix2(); +} diff --git a/src/client/renderer/entity/ItemSpriteRenderer.h b/src/client/renderer/entity/ItemSpriteRenderer.h new file mode 100755 index 0000000..5987bc9 --- /dev/null +++ b/src/client/renderer/entity/ItemSpriteRenderer.h @@ -0,0 +1,18 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ItemSpriteRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ItemSpriteRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "EntityRenderer.h" + +class ItemSpriteRenderer: public EntityRenderer +{ +public: + ItemSpriteRenderer(int icon); + + void render(Entity* e, float x, float y, float z, float rot, float a); +private: + int icon; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__ItemSpriteRenderer_H__*/ diff --git a/src/client/renderer/entity/MobRenderer.cpp b/src/client/renderer/entity/MobRenderer.cpp new file mode 100755 index 0000000..51ccee9 --- /dev/null +++ b/src/client/renderer/entity/MobRenderer.cpp @@ -0,0 +1,241 @@ +#include "MobRenderer.h" +#include "EntityRenderDispatcher.h" +#include "../../gui/Font.h" +#include "../Tesselator.h" +#include "../../Minecraft.h" +#include "../../model/Model.h" +#include "../../../world/entity/Mob.h" +#include "../../../util/Mth.h" + +MobRenderer::MobRenderer(Model* model, float shadow) +: model(model), + armor(NULL) +{ + shadowRadius = shadow; +} + +MobRenderer::~MobRenderer() { + delete model; +} + +void MobRenderer::setArmor(Model* armor) { + this->armor = armor; +} + +Model* MobRenderer::getArmor() { + return armor; +} + +void MobRenderer::render(Entity* e, float x, float y, float z, float rot, float a) +{ + Mob* mob = (Mob*) e; + + glPushMatrix2(); + glDisable2(GL_CULL_FACE); + + model->attackTime = getAttackAnim(mob, a); + model->riding = false;//mob.isRiding(); + model->young = mob->isBaby(); + + if (armor) { + armor->riding = model->riding; + armor->young = model->young; + armor->attackTime = model->attackTime; + } + + float bodyRot = (mob->yBodyRotO + (mob->yBodyRot - mob->yBodyRotO) * a); + float headRot = (mob->yRotO + (mob->yRot - mob->yRotO) * a); + float headRotx = (mob->xRotO + (mob->xRot - mob->xRotO) * a); + + float yoffset = mob->heightOffset; + setupPosition(mob, x, y - yoffset, z); + + float bob = getBob(mob, a); + setupRotations(mob, bob, bodyRot, a); + + float ascale = 1 / 16.0f; + glScalef2(-1, -1, 1); + + scale(mob, a); + glTranslatef2(0, -24 * ascale - 0.125f / 16.0f, 0); + + float ws = mob->walkAnimSpeedO + (mob->walkAnimSpeed - mob->walkAnimSpeedO) * a; + float wp = mob->walkAnimPos - mob->walkAnimSpeed * (1 - a); + if (mob->isBaby()) { + wp *= 3.0f; + } + + if (ws > 1) ws = 1; + + bindTexture(mob->getTexture()); + //glEnable2(GL_ALPHA_TEST); + + model->prepareMobModel(mob, wp, ws, a); + model->render(e, wp, ws, bob, headRot - bodyRot, headRotx, ascale); + + for (int i = 0; i < MAX_ARMOR_LAYERS; i++) { + if (prepareArmor(mob, i, a) < 0) continue; + + armor->prepareMobModel(mob, wp, ws, a); + armor->render(e, wp, ws, bob, headRot - bodyRot, headRotx, ascale); + glDisable2(GL_BLEND); + glEnable2(GL_ALPHA_TEST); + } + + additionalRendering(mob, a); + float br = mob->getBrightness(a); + int overlayColor = getOverlayColor(mob, br, a); + + bool renderOverlay = ((overlayColor >> 24) & 0xff) > 0; + bool renderHurt = (mob->hurtTime > 0) || (mob->deathTime > 0); + + if (renderOverlay || renderHurt) { + glDisable2(GL_TEXTURE_2D); + glDisable2(GL_ALPHA_TEST); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDepthFunc(GL_EQUAL); + + if (renderHurt) { + glEnable(GL_COLOR_MATERIAL); + glColor4f2(br, 0, 0, 0.4f); + model->render(e, wp, ws, bob, headRot - bodyRot, headRotx, ascale); + for (int i = 0; i < MAX_ARMOR_LAYERS; i++) { + if (prepareArmor(mob, i, a) < 0) continue; + + glColor4f2(br, 0, 0, 0.4f); + armor->prepareMobModel(mob, wp, ws, a); + armor->render(e, wp, ws, bob, headRot - bodyRot, headRotx, ascale); + } + } + + if (renderOverlay) { + float r = ((overlayColor >> 16) & 0xff) / 255.0f; + float g = ((overlayColor >> 8) & 0xff) / 255.0f; + float b = ((overlayColor) & 0xff) / 255.0f; + float aa = ((overlayColor >> 24) & 0xff) / 255.0f; + glColor4f2(r, g, b, aa); + model->render(e, wp, ws, bob, headRot - bodyRot, headRotx, ascale); + for (int i = 0; i < MAX_ARMOR_LAYERS; i++) { + if (prepareArmor(mob, i, a) < 0) continue; + + glColor4f2(r, g, b, aa); + armor->prepareMobModel(mob, wp, ws, a); + armor->render(e, wp, ws, bob, headRot - bodyRot, headRotx, ascale); + } + } + + glDepthFunc(GL_LEQUAL); + glDisable2(GL_BLEND); + glEnable2(GL_ALPHA_TEST); + glEnable2(GL_TEXTURE_2D); + } + + glEnable2(GL_CULL_FACE); + //glEnable2(GL_DEPTH_TEST); + + glPopMatrix2(); + + renderName(mob, x, y, z); +} + +void MobRenderer::setupPosition(Entity* mob, float x, float y, float z) { + glTranslatef2((float) x, (float) y, (float) z); +} + +void MobRenderer::setupRotations(Entity* mob_, float bob, float bodyRot, float a) { + glRotatef2(180 - bodyRot, 0, 1, 0); + + Mob* mob = (Mob*)mob_; + if (mob->deathTime > 0) { + float fall = (mob->deathTime + a - 1) / 20.0f * 1.6f; + fall = Mth::sqrt(fall); + if (fall > 1) fall = 1; + glRotatef2(fall * getFlipDegrees(mob), 0, 0, 1); + } +} + +float MobRenderer::getAttackAnim(Mob* mob, float a) { + return mob->getAttackAnim(a); +} + +float MobRenderer::getBob(Mob* mob, float a) { + return (mob->tickCount + a); +} + +void MobRenderer::additionalRendering(Mob* mob, float a) { +} + +void MobRenderer::onGraphicsReset() { + if (model) model->onGraphicsReset(); + if (armor) armor->onGraphicsReset(); +} + +int MobRenderer::prepareArmor(Mob* mob, int layer, float a) { + return -1; +} + +float MobRenderer::getFlipDegrees(Mob* mob) { + return 90; +} + +int MobRenderer::getOverlayColor(Mob* mob, float br, float a) { + return 0; +} + +void MobRenderer::scale(Mob* mob, float a) { +} + +void MobRenderer::renderName(Mob* mob, float x, float y, float z) { + /* + std::stringstream ss; ss << mob->entityId; + renderNameTag(mob, ss.str(), x, y, z, 64); + */ +} + +void MobRenderer::renderNameTag(Mob* mob, const std::string& name, float x, float y, float z, int maxDist) { + float dist = mob->distanceToSqr(entityRenderDispatcher->cameraEntity); + + if (dist > maxDist*maxDist) + return; + + Font* font = getFont(); + + float size = 1.60f; + float s = 1 / 60.0f * size; + + glPushMatrix2(); + glTranslatef2((float) x + 0, (float) y + 1.0f /*2.3f*/, (float) z); + + glRotatef2(-entityRenderDispatcher->playerRotY, 0, 1, 0); + glRotatef2(entityRenderDispatcher->playerRotX, 1, 0, 0); + + glScalef2(-s, -s, s); + + glDepthMask(false); + glDisable2(GL_DEPTH_TEST); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + Tesselator& t = Tesselator::instance; + + glDisable2(GL_TEXTURE_2D); + t.begin(); + int w = font->width(name) / 2; + t.color(0.0f, 0.0f, 0.0f, 0.25f); + t.vertex(-(float)w - 1, -1, 0); + t.vertex(-(float)w - 1, +8, 0); + t.vertex(+(float)w + 1, +8, 0); + t.vertex(+(float)w + 1, -1, 0); + //t.end(); + t.draw(); + glEnable2(GL_TEXTURE_2D); + const float fnameWidth = (float)font->width(name) / -2; + font->draw(name, fnameWidth, 0, 0x20ffffff); + glEnable2(GL_DEPTH_TEST); + + glDepthMask(true); + font->draw(name, (float) fnameWidth, 0, 0xffffffff); + glDisable2(GL_BLEND); + glColor4f2(1, 1, 1, 1); + glPopMatrix2(); +} diff --git a/src/client/renderer/entity/MobRenderer.h b/src/client/renderer/entity/MobRenderer.h new file mode 100755 index 0000000..3f22618 --- /dev/null +++ b/src/client/renderer/entity/MobRenderer.h @@ -0,0 +1,51 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__MobRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__MobRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "EntityRenderer.h" + +#include + +class Model; +class Entity; +class Mob; + +class MobRenderer: public EntityRenderer +{ + static const int MAX_ARMOR_LAYERS = 4; +public: + // @note: MobRenderer::model will be deleted automagically + // Armor models (setArmor(Model*)) is to be deleted by derived classes. + MobRenderer(Model* model, float shadow); + ~MobRenderer(); + + virtual int prepareArmor(Mob* mob, int layer, float a); + + virtual void setupPosition(Entity* mob, float x, float y, float z); + virtual void setupRotations(Entity* mob_, float bob, float bodyRot, float a); + + virtual float getAttackAnim(Mob* mob, float a); + virtual float getBob(Mob* mob, float a); + + virtual float getFlipDegrees(Mob* mob); + + virtual int getOverlayColor(Mob* mob, float br, float a); + + virtual void scale(Mob* mob, float a); + + virtual void render(Entity* mob_, float x, float y, float z, float rot, float a); + virtual void renderName(Mob* mob, float x, float y, float z); + virtual void renderNameTag(Mob* mob, const std::string& name, float x, float y, float z, int maxDist); + virtual void additionalRendering(Mob* mob, float a); + + virtual void onGraphicsReset(); +protected: + void setArmor(Model* armor); + Model* getArmor(); +private: + Model* model; + Model* armor; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__MobRenderer_H__*/ diff --git a/src/client/renderer/entity/PaintingRenderer.cpp b/src/client/renderer/entity/PaintingRenderer.cpp new file mode 100755 index 0000000..1513e95 --- /dev/null +++ b/src/client/renderer/entity/PaintingRenderer.cpp @@ -0,0 +1,99 @@ +#include "PaintingRenderer.h" +#include "../../../world/entity/Painting.h" +#include "../../../world/Direction.h" +#include "../Tesselator.h" +#include "../Textures.h" +#include "../gles.h" + +void PaintingRenderer::render( Entity* entity, float x, float y, float z, float rot, float a ) { + glPushMatrix(); + glTranslatef(float(x), float(y), float(z)); + glRotatef(rot, 0, 1.0f, 0); + //glEnable(GL_RESCALE_NORMAL); + bindTexture("art/kz.png"); + Painting* painting = (Painting*)entity; + const Motive* motive = painting->motive; + + float s = 1.0f / 16.0f; + glScalef(s, s, s); + renderPainting(painting, motive->w, motive->h, motive->uo, motive->vo, a); + //glDisable(GL_RESCALE_NORMAL); + glPopMatrix(); +} + +void PaintingRenderer::renderPainting( Painting* painting, int w, int h, int uo, int vo, float a) { + float xx0 = -w / 2.0f; + float yy0 = -h / 2.0f; + + float edgeWidth = 0.5f; + + // Back + float bu0 = (12 * 16) / 256.0f; + float bu1 = (12 * 16 + 16) / 256.0f; + float bv0 = (0) / 256.0f; + float bv1 = (0 + 16) / 256.0f; + + // Border + float uu0 = (12 * 16) / 256.0f; + float uu1 = (12 * 16 + 16) / 256.0f; + float uv0 = (0.5f) / 256.0f; + float uv1 = (0.5f) / 256.0f; + + // Border + float su0 = (12 * 16 + 0.5f) / 256.0f; + float su1 = (12 * 16 + 0.5f) / 256.0f; + float sv0 = (0) / 256.0f; + float sv1 = (0 + 16) / 256.0f; + + for (int xs = 0; xs < w / 16; xs++) { + for (int ys = 0; ys < h / 16; ys++) { + float x0 = xx0 + (xs + 1) * 16; + float x1 = xx0 + (xs) * 16; + float y0 = yy0 + (ys + 1) * 16; + float y1 = yy0 + (ys) * 16; + //setBrightness(painting, (x0 + x1) / 2, (y0 + y1) / 2); + + // Painting + float fu0 = (uo + w - (xs) * 16) / 256.0f; + float fu1 = (uo + w - (xs + 1) * 16) / 256.0f; + float fv0 = (vo + h - (ys) * 16) / 256.0f; + float fv1 = (vo + h - (ys + 1) * 16) / 256.0f; + + Tesselator& t = Tesselator::instance; + float br = painting->getBrightness(a); + t.color(br, br, br); + + t.begin(); + t.vertexUV(x0, y1, -edgeWidth, fu1, fv0); + t.vertexUV(x1, y1, -edgeWidth, fu0, fv0); + t.vertexUV(x1, y0, -edgeWidth, fu0, fv1); + t.vertexUV(x0, y0, -edgeWidth, fu1, fv1); + + t.vertexUV(x0, y0, edgeWidth, bu0, bv0); + t.vertexUV(x1, y0, edgeWidth, bu1, bv0); + t.vertexUV(x1, y1, edgeWidth, bu1, bv1); + t.vertexUV(x0, y1, edgeWidth, bu0, bv1); + + t.vertexUV(x0, y0, -edgeWidth, uu0, uv0); + t.vertexUV(x1, y0, -edgeWidth, uu1, uv0); + t.vertexUV(x1, y0, edgeWidth, uu1, uv1); + t.vertexUV(x0, y0, edgeWidth, uu0, uv1); + + t.vertexUV(x0, y1, edgeWidth, uu0, uv0); + t.vertexUV(x1, y1, edgeWidth, uu1, uv0); + t.vertexUV(x1, y1, -edgeWidth, uu1, uv1); + t.vertexUV(x0, y1, -edgeWidth, uu0, uv1); + + t.vertexUV(x0, y0, edgeWidth, su1, sv0); + t.vertexUV(x0, y1, edgeWidth, su1, sv1); + t.vertexUV(x0, y1, -edgeWidth, su0, sv1); + t.vertexUV(x0, y0, -edgeWidth, su0, sv0); + + t.vertexUV(x1, y0, -edgeWidth, su1, sv0); + t.vertexUV(x1, y1, -edgeWidth, su1, sv1); + t.vertexUV(x1, y1, edgeWidth, su0, sv1); + t.vertexUV(x1, y0, edgeWidth, su0, sv0); + t.draw(); + } + } +} \ No newline at end of file diff --git a/src/client/renderer/entity/PaintingRenderer.h b/src/client/renderer/entity/PaintingRenderer.h new file mode 100755 index 0000000..cc8d6ac --- /dev/null +++ b/src/client/renderer/entity/PaintingRenderer.h @@ -0,0 +1,12 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PaintingRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PaintingRenderer_H__ +#include "EntityRenderer.h" +class Painting; +class PaintingRenderer : public EntityRenderer { +public: + void render(Entity* entity, float x, float y, float z, float rot, float a); +private: + void renderPainting(Painting* painting, int w, int h, int uo, int vo, float a); +}; + +#endif /* NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PaintingRenderer_H__ */ \ No newline at end of file diff --git a/src/client/renderer/entity/PigRenderer.h b/src/client/renderer/entity/PigRenderer.h new file mode 100755 index 0000000..80edbac --- /dev/null +++ b/src/client/renderer/entity/PigRenderer.h @@ -0,0 +1,29 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PigRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PigRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "../../model/Model.h" +#include "../../../world/entity/animal/Pig.h" + +class PigRenderer: public MobRenderer +{ + typedef MobRenderer super; +public: + PigRenderer(Model* model, Model* armor, float shadow) + : super(model, shadow) + { + // setArmor(armor); + } + + //void render(Entity* mob, float x, float y, float z, float rot, float a) { + // super::render(mob, x, y, z, rot, a); + //} +protected: + //int prepareArmor(Entity* pig, int layer, float a) { + // bindTexture("/mob/saddle.png"); + // return (layer == 0 && pig->hasSaddle()) ? 1 : -1; + //} +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PigRenderer_H__*/ diff --git a/src/client/renderer/entity/PlayerRenderer.cpp b/src/client/renderer/entity/PlayerRenderer.cpp new file mode 100755 index 0000000..590cbc8 --- /dev/null +++ b/src/client/renderer/entity/PlayerRenderer.cpp @@ -0,0 +1,87 @@ +#include "PlayerRenderer.h" +#include "EntityRenderDispatcher.h" +#include "../../../world/entity/player/Player.h" +#include "../../../world/level/Level.h" +#include "../../../world/item/ArmorItem.h" + +static const std::string armorFilenames[10] = { + "armor/cloth_1.png", "armor/cloth_2.png", + "armor/chain_1.png", "armor/chain_2.png", + "armor/iron_1.png", "armor/iron_2.png", + "armor/diamond_1.png", "armor/diamond_2.png", + "armor/gold_1.png", "armor/gold_2.png", +}; + +PlayerRenderer::PlayerRenderer( HumanoidModel* humanoidModel, float shadow ) +: super(humanoidModel, shadow), + armorParts1(new HumanoidModel(1.0f)), + armorParts2(new HumanoidModel(0.5f)) +{ +} + +PlayerRenderer::~PlayerRenderer() { + delete armorParts1; + delete armorParts2; +} + +void PlayerRenderer::setupPosition( Entity* mob, float x, float y, float z ) { + Player* player = (Player*) mob; + if(player->isAlive() && player->isSleeping()) { + return super::setupPosition(mob, x + player->bedOffsetX, y + player->bedOffsetY, z + player->bedOffsetZ); + } + return super::setupPosition(mob, x, y, z); +} + +void PlayerRenderer::setupRotations( Entity* mob, float bob, float bodyRot, float a ) { + Player* player = (Player*) mob; + if(player->isAlive() && player->isSleeping()) { + glRotatef(player->getSleepRotation(), 0, 1, 0); + glRotatef(getFlipDegrees(player), 0, 0, 1); + glRotatef(270, 0, 1, 0); + return; + } + super::setupRotations(mob, bob, bodyRot, a); +} + +void PlayerRenderer::renderName( Mob* mob, float x, float y, float z ){ + //@todo: figure out how to handle HideGUI + if (mob != entityRenderDispatcher->cameraEntity && mob->level->adventureSettings.showNameTags) { + renderNameTag(mob, ((Player*)mob)->name, x, y, z, 32); + } +} + +int PlayerRenderer::prepareArmor(Mob* mob, int layer, float a) { + Player* player = (Player*) mob; + + ItemInstance* itemInstance = player->getArmor(layer); + if (!ItemInstance::isArmorItem(itemInstance)) + return -1; + + ArmorItem* armorItem = (ArmorItem*) itemInstance->getItem(); + int fnIndex = (armorItem->modelIndex + armorItem->modelIndex) + (layer == 2 ? 1 : 0); + bindTexture(armorFilenames[fnIndex]); + + HumanoidModel* armor = layer == 2 ? armorParts2 : armorParts1; + + armor->head.visible = layer == 0; + //armor.hair.visible = layer == 0; + armor->body.visible = layer == 1 || layer == 2; + armor->arm0.visible = layer == 1; + armor->arm1.visible = layer == 1; + armor->leg0.visible = layer == 2 || layer == 3; + armor->leg1.visible = layer == 2 || layer == 3; + + setArmor(armor); + + /*if (itemInstance.isEnchanted()) + return 15; */ + + return 1; +} + +void PlayerRenderer::onGraphicsReset() { + super::onGraphicsReset(); + + if (armorParts1) armorParts1->onGraphicsReset(); + if (armorParts2) armorParts2->onGraphicsReset(); +} diff --git a/src/client/renderer/entity/PlayerRenderer.h b/src/client/renderer/entity/PlayerRenderer.h new file mode 100755 index 0000000..f370607 --- /dev/null +++ b/src/client/renderer/entity/PlayerRenderer.h @@ -0,0 +1,26 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PlayerRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PlayerRenderer_H__ + +#include "HumanoidMobRenderer.h" + +class PlayerRenderer : public HumanoidMobRenderer +{ + typedef HumanoidMobRenderer super; +public: + PlayerRenderer(HumanoidModel* humanoidModel, float shadow); + ~PlayerRenderer(); + + virtual int prepareArmor(Mob* mob, int layer, float a); + + virtual void setupPosition(Entity* mob, float x, float y, float z); + virtual void setupRotations(Entity* mob, float bob, float bodyRot, float a); + + virtual void renderName(Mob* mob, float x, float y, float z); + virtual void onGraphicsReset(); +private: + HumanoidModel* armorParts1; + HumanoidModel* armorParts2; +}; + + +#endif /* NET_MINECRAFT_CLIENT_RENDERER_ENTITY__PlayerRenderer_H__ */ \ No newline at end of file diff --git a/src/client/renderer/entity/SheepRenderer.cpp b/src/client/renderer/entity/SheepRenderer.cpp new file mode 100755 index 0000000..e8f6650 --- /dev/null +++ b/src/client/renderer/entity/SheepRenderer.cpp @@ -0,0 +1,29 @@ +#include "SheepRenderer.h" +#include "../../../world/entity/animal/Sheep.h" +#include "../gles.h" + +SheepRenderer::SheepRenderer( Model* model, Model* armor, float shadow ) +: super(model, shadow) +{ + setArmor(armor); +} + +SheepRenderer::~SheepRenderer() { + delete getArmor(); +} + +int SheepRenderer::prepareArmor(Mob* mob, int layer, float a) { + Sheep* sheep = (Sheep*) mob; + + if (layer == 0 && !sheep->isSheared()) { + bindTexture("mob/sheep_fur.png"); + + float brightness = sheep->getBrightness(a); + int color = sheep->getColor(); + glColor4f2( brightness * Sheep::COLOR[color][0], + brightness * Sheep::COLOR[color][1], + brightness * Sheep::COLOR[color][2], 1); + return 1; + } + return -1; +} diff --git a/src/client/renderer/entity/SheepRenderer.h b/src/client/renderer/entity/SheepRenderer.h new file mode 100755 index 0000000..7998933 --- /dev/null +++ b/src/client/renderer/entity/SheepRenderer.h @@ -0,0 +1,20 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__SheepRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__SheepRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "MobRenderer.h" +class Mob; + +class SheepRenderer: public MobRenderer +{ + typedef MobRenderer super; + +public: + SheepRenderer(Model* model, Model* armor, float shadow); + ~SheepRenderer(); +protected: + int prepareArmor(Mob* sheep, int layer, float a); +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__SheepRenderer_H__*/ diff --git a/src/client/renderer/entity/SpiderRenderer.h b/src/client/renderer/entity/SpiderRenderer.h new file mode 100755 index 0000000..9bdfdc8 --- /dev/null +++ b/src/client/renderer/entity/SpiderRenderer.h @@ -0,0 +1,46 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__SpiderRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__SpiderRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "MobRenderer.h" + +#include "../gles.h" +#include "../../model/SpiderModel.h" +#include "../../../world/entity/monster/Spider.h" + +class SpiderRenderer: public MobRenderer +{ + typedef MobRenderer super; +public: + SpiderRenderer() + : super(new SpiderModel(), 1.0f) + { + //this->setArmor(/*new*/ SpiderModel()); + } + +protected: + float getFlipDegrees(Mob* spider) { + return 180; + } + +// int prepareArmor(Mob* spider, int layer, float a) { +// if (layer != 0) return -1; +// bindTexture("/mob/spider_eyes.png"); +// float br = 1.0f; +// glEnable(GL_BLEND); +// glDisable(GL_ALPHA_TEST); +//// glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +// glBlendFunc2(GL_ONE, GL_ONE); +// glColor4f2(1, 1, 1, br); +// return 1; +// } + + /*@Override*/ + void scale(Mob* mob, float a) { + float scale = ((Spider*)mob)->getModelScale(); + glScalef(scale, scale, scale); + } +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__SpiderRenderer_H__*/ diff --git a/src/client/renderer/entity/TntRenderer.cpp b/src/client/renderer/entity/TntRenderer.cpp new file mode 100755 index 0000000..6371656 --- /dev/null +++ b/src/client/renderer/entity/TntRenderer.cpp @@ -0,0 +1,47 @@ +#include "TntRenderer.h" +#include "../Tesselator.h" +#include "../../../world/level/tile/Tile.h" +#include "../../../world/entity/item/PrimedTnt.h" + + +TntRenderer::TntRenderer() +{ + this->shadowRadius = 0.5f; +} + +void TntRenderer::render( Entity* tnt_, float x, float y, float z, float rot, float a ) +{ + PrimedTnt* tnt = (PrimedTnt*)tnt_; + glPushMatrix2(); + glTranslatef2((float) x, (float) y, (float) z); + if (tnt->life - a + 1 < 10) { + float g = 1 - ((tnt->life - a + 1) / 10.0f); + if (g < 0) g = 0; + if (g > 1) g = 1; + g = g * g; + g = g * g; + float s = 1.0f + g * 0.3f; + glScalef2(s, s, s); + } + + float br = (1 - ((tnt->life - a + 1) / 100.0f)) * 0.8f; + bindTexture("terrain.png"); + + Tesselator& t = Tesselator::instance; + t.color(1.0f, 1.0f, 1.0f); + tileRenderer.renderTile(Tile::tnt, 0); + + if (((tnt->life / 5) & 1) == 0) { + glDisable2(GL_TEXTURE_2D); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_DST_ALPHA); + glColor4f2(1, 1, 1, br); + //t.color(1.0f, 1.0f, 1.0f, br); + tileRenderer.renderTile(Tile::tnt, 0); + glColor4f2(1, 1, 1, 1); + glDisable2(GL_BLEND); + //glEnable2(GL_LIGHTING); + glEnable2(GL_TEXTURE_2D); + } + glPopMatrix2(); +} diff --git a/src/client/renderer/entity/TntRenderer.h b/src/client/renderer/entity/TntRenderer.h new file mode 100755 index 0000000..efa0e0d --- /dev/null +++ b/src/client/renderer/entity/TntRenderer.h @@ -0,0 +1,18 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__TntRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__TntRenderer_H__ + +//package net.minecraft.client.renderer.entity; + +#include "EntityRenderer.h" +#include "../TileRenderer.h" + +class TntRenderer: public EntityRenderer +{ +public: + TntRenderer(); + void render(Entity* tnt_, float x, float y, float z, float rot, float a); + + TileRenderer tileRenderer; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__TntRenderer_H__*/ diff --git a/src/client/renderer/entity/TripodCameraRenderer.cpp b/src/client/renderer/entity/TripodCameraRenderer.cpp new file mode 100755 index 0000000..97838d5 --- /dev/null +++ b/src/client/renderer/entity/TripodCameraRenderer.cpp @@ -0,0 +1,75 @@ +#include "TripodCameraRenderer.h" +#include "EntityRenderDispatcher.h" +#include "../Tesselator.h" +#include "../../Minecraft.h" +#include "../../../world/entity/item/TripodCamera.h" +#include "../../../world/level/material/Material.h" + +TripodCameraRenderer::TripodCameraRenderer() +: tripod(0, 15 * 16 + 3, Material::plant), + cameraCube(0, 0) +{ + cameraCube.addBox(-4, -4, -6, 8, 8, 10); + cameraCube.y = 11; + this->shadowRadius = 0.5f; +} + +float TripodCameraRenderer::getFlashTime(const TripodCamera* c, float a) { + if (c->life >= 8) return -1; + if (c->life < 0) return -1; + return (c->life - a) * 0.125f; +} + +void TripodCameraRenderer::render(Entity* cam_, float x, float y, float z, float rot, float a) { + TripodCamera* cam = (TripodCamera*)cam_; + + glPushMatrix2(); + glTranslatef2((float) x, (float) y, (float) z); + + cameraCube.xRot = Mth::DEGRAD * (180.0f + cam->xRot * 0.5f); + cameraCube.yRot = -Mth::DEGRAD * cam->yRot; + + //float br = (1 - ((cam->life - a + 1) / 100.0f)) * 0.8f; + + Tesselator& t = Tesselator::instance; + t.color(1.0f, 1.0f, 1.0f); + + //printf("xyz: %f, %f, %f\n", x, y, z); + + // Render tripod legs + bindTexture("gui/items.png"); + t.begin(); + tileRenderer.tesselateCrossTexture(&tripod, 0, -0.5f, -0.5f, -0.5f);//, y, z); + t.draw(); + + // Render tripod + bindTexture("item/camera.png"); + cameraCube.render(1.0f / 16.0f); + + bool isCurrentlyPicked = entityRenderDispatcher->minecraft->hitResult.entity == cam; + + const float flashLife = getFlashTime(cam, a); + + if (flashLife >= 0) { + const float flashStrength = ::sin(flashLife * 6.2830f); + + // Flash + glColor4f2(1, 1, 1, flashStrength); + glColor4f2(1, 1, 1, 1); + } + + // "red light" flashing when photo is about to go off + if (isCurrentlyPicked) { + glDisable2(GL_TEXTURE_2D); + glEnable2(GL_BLEND); + glBlendFunc2(GL_SRC_ALPHA, GL_DST_ALPHA); + glColor4f2(0.5f,0.5f,0.5f,0.5f); + + cameraCube.renderHorrible(1.0f / 16.0f); + + glColor4f2(1,1,1,1); + glDisable2(GL_BLEND); + glEnable2(GL_TEXTURE_2D); + } + glPopMatrix2(); +} diff --git a/src/client/renderer/entity/TripodCameraRenderer.h b/src/client/renderer/entity/TripodCameraRenderer.h new file mode 100755 index 0000000..35d4058 --- /dev/null +++ b/src/client/renderer/entity/TripodCameraRenderer.h @@ -0,0 +1,29 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_ENTITY__TripodCameraRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_ENTITY__TripodCameraRenderer_H__ + +#include "EntityRenderer.h" +#include "../TileRenderer.h" +#include "../../model/geom/ModelPart.h" +#include "../../../world/level/tile/Tile.h" + + +class TripodCamera; + +class TripodCameraRenderer: public EntityRenderer +{ + TileRenderer tileRenderer; + +public: + TripodCameraRenderer(); + + void render(Entity* cam_, float x, float y, float z, float rot, float a); + //void render( Tesselator &t ); + + static float getFlashTime(const TripodCamera* c, float a); + +private: + Tile tripod; + ModelPart cameraCube; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_ENTITY__TripodCameraRenderer_H__*/ diff --git a/src/client/renderer/gles.cpp b/src/client/renderer/gles.cpp new file mode 100755 index 0000000..f29fbc2 --- /dev/null +++ b/src/client/renderer/gles.cpp @@ -0,0 +1,382 @@ +#include "gles.h" +#include +#include + +static const float __glPi = 3.14159265358979323846f; + +static void __gluMakeIdentityf(GLfloat m[16]); + + +void gluPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar) { + GLfloat m[4][4]; + GLfloat sine, cotangent, deltaZ; + GLfloat radians=(GLfloat)(fovy/2.0f*__glPi/180.0f); + + deltaZ=zFar-zNear; + sine=(GLfloat)sin(radians); + if ((deltaZ==0.0f) || (sine==0.0f) || (aspect==0.0f)) + { + return; + } + cotangent=(GLfloat)(cos(radians)/sine); + + __gluMakeIdentityf(&m[0][0]); + m[0][0] = cotangent / aspect; + m[1][1] = cotangent; + m[2][2] = -(zFar + zNear) / deltaZ; + m[2][3] = -1.0f; + m[3][2] = -2.0f * zNear * zFar / deltaZ; + m[3][3] = 0; + glMultMatrixf(&m[0][0]); +} + +void __gluMakeIdentityf(GLfloat m[16]) { + m[0] = 1; m[4] = 0; m[8] = 0; m[12] = 0; + m[1] = 0; m[5] = 1; m[9] = 0; m[13] = 0; + m[2] = 0; m[6] = 0; m[10] = 1; m[14] = 0; + m[3] = 0; m[7] = 0; m[11] = 0; m[15] = 1; +} + +void glInit() +{ +#ifndef OPENGL_ES + + GLenum err = glewInit(); + printf("Err: %d\n", err); +#endif +} + +void anGenBuffers(GLsizei n, GLuint* buffers) { + static GLuint k = 1; + for (int i = 0; i < n; ++i) + buffers[i] = ++k; +} + +#ifdef USE_VBO +void drawArrayVT(int bufferId, int vertices, int vertexSize /* = 24 */, unsigned int mode /* = GL_TRIANGLES */) { + //if (Options::debugGl) LOGI("drawArray\n"); + glBindBuffer2(GL_ARRAY_BUFFER, bufferId); + glTexCoordPointer2(2, GL_FLOAT, vertexSize, (GLvoid*) (3 * 4)); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + glVertexPointer2(3, GL_FLOAT, vertexSize, 0); + glEnableClientState2(GL_VERTEX_ARRAY); + glDrawArrays2(mode, 0, vertices); + glDisableClientState2(GL_VERTEX_ARRAY); + glDisableClientState2(GL_TEXTURE_COORD_ARRAY); +} + +#ifndef drawArrayVT_NoState +void drawArrayVT_NoState(int bufferId, int vertices, int vertexSize /* = 24 */) { + //if (Options::debugGl) LOGI("drawArray\n"); + glBindBuffer2(GL_ARRAY_BUFFER, bufferId); + glTexCoordPointer2(2, GL_FLOAT, vertexSize, (GLvoid*) (3 * 4)); + //glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + glVertexPointer2(3, GL_FLOAT, vertexSize, 0); + //glEnableClientState2(GL_VERTEX_ARRAY); + glDrawArrays2(GL_TRIANGLES, 0, vertices); + //glDisableClientState2(GL_VERTEX_ARRAY); + //glDisableClientState2(GL_TEXTURE_COORD_ARRAY); +} +#endif + +void drawArrayVTC(int bufferId, int vertices, int vertexSize /* = 24 */) { + //if (Options::debugGl) LOGI("drawArray\n"); + //LOGI("draw-vtc: %d, %d, %d\n", bufferId, vertices, vertexSize); + glEnableClientState2(GL_VERTEX_ARRAY); + glEnableClientState2(GL_TEXTURE_COORD_ARRAY); + glEnableClientState2(GL_COLOR_ARRAY); + + glBindBuffer2(GL_ARRAY_BUFFER, bufferId); + + glVertexPointer2( 3, GL_FLOAT, vertexSize, 0); + glTexCoordPointer2(2, GL_FLOAT, vertexSize, (GLvoid*) (3 * 4)); + glColorPointer2(4, GL_UNSIGNED_BYTE, vertexSize, (GLvoid*) (5*4)); + + glDrawArrays2(GL_TRIANGLES, 0, vertices); + + glDisableClientState2(GL_VERTEX_ARRAY); + glDisableClientState2(GL_TEXTURE_COORD_ARRAY); + glDisableClientState2(GL_COLOR_ARRAY); +} + +#ifndef drawArrayVTC_NoState +void drawArrayVTC_NoState(int bufferId, int vertices, int vertexSize /* = 24 */) { + glBindBuffer2(GL_ARRAY_BUFFER, bufferId); + + glVertexPointer2( 3, GL_FLOAT, vertexSize, 0); + glTexCoordPointer2(2, GL_FLOAT, vertexSize, (GLvoid*) (3 * 4)); + glColorPointer2(4, GL_UNSIGNED_BYTE, vertexSize, (GLvoid*) (5*4)); + + glDrawArrays2(GL_TRIANGLES, 0, vertices); +} +#endif + +#endif + + +// +// Code borrowed from OpenGL.org +// http://www.opengl.org/wiki/GluProject_and_gluUnProject_code +// The gluUnProject code in Android seems to be broken +// + +void MultiplyMatrices4by4OpenGL_FLOAT(float *result, float *matrix1, float *matrix2) +{ + result[0]=matrix1[0]*matrix2[0]+ + matrix1[4]*matrix2[1]+ + matrix1[8]*matrix2[2]+ + matrix1[12]*matrix2[3]; + result[4]=matrix1[0]*matrix2[4]+ + matrix1[4]*matrix2[5]+ + matrix1[8]*matrix2[6]+ + matrix1[12]*matrix2[7]; + result[8]=matrix1[0]*matrix2[8]+ + matrix1[4]*matrix2[9]+ + matrix1[8]*matrix2[10]+ + matrix1[12]*matrix2[11]; + result[12]=matrix1[0]*matrix2[12]+ + matrix1[4]*matrix2[13]+ + matrix1[8]*matrix2[14]+ + matrix1[12]*matrix2[15]; + result[1]=matrix1[1]*matrix2[0]+ + matrix1[5]*matrix2[1]+ + matrix1[9]*matrix2[2]+ + matrix1[13]*matrix2[3]; + result[5]=matrix1[1]*matrix2[4]+ + matrix1[5]*matrix2[5]+ + matrix1[9]*matrix2[6]+ + matrix1[13]*matrix2[7]; + result[9]=matrix1[1]*matrix2[8]+ + matrix1[5]*matrix2[9]+ + matrix1[9]*matrix2[10]+ + matrix1[13]*matrix2[11]; + result[13]=matrix1[1]*matrix2[12]+ + matrix1[5]*matrix2[13]+ + matrix1[9]*matrix2[14]+ + matrix1[13]*matrix2[15]; + result[2]=matrix1[2]*matrix2[0]+ + matrix1[6]*matrix2[1]+ + matrix1[10]*matrix2[2]+ + matrix1[14]*matrix2[3]; + result[6]=matrix1[2]*matrix2[4]+ + matrix1[6]*matrix2[5]+ + matrix1[10]*matrix2[6]+ + matrix1[14]*matrix2[7]; + result[10]=matrix1[2]*matrix2[8]+ + matrix1[6]*matrix2[9]+ + matrix1[10]*matrix2[10]+ + matrix1[14]*matrix2[11]; + result[14]=matrix1[2]*matrix2[12]+ + matrix1[6]*matrix2[13]+ + matrix1[10]*matrix2[14]+ + matrix1[14]*matrix2[15]; + result[3]=matrix1[3]*matrix2[0]+ + matrix1[7]*matrix2[1]+ + matrix1[11]*matrix2[2]+ + matrix1[15]*matrix2[3]; + result[7]=matrix1[3]*matrix2[4]+ + matrix1[7]*matrix2[5]+ + matrix1[11]*matrix2[6]+ + matrix1[15]*matrix2[7]; + result[11]=matrix1[3]*matrix2[8]+ + matrix1[7]*matrix2[9]+ + matrix1[11]*matrix2[10]+ + matrix1[15]*matrix2[11]; + result[15]=matrix1[3]*matrix2[12]+ + matrix1[7]*matrix2[13]+ + matrix1[11]*matrix2[14]+ + matrix1[15]*matrix2[15]; +} + +void MultiplyMatrixByVector4by4OpenGL_FLOAT(float *resultvector, const float *matrix, const float *pvector) +{ + resultvector[0]=matrix[0]*pvector[0]+matrix[4]*pvector[1]+matrix[8]*pvector[2]+matrix[12]*pvector[3]; + resultvector[1]=matrix[1]*pvector[0]+matrix[5]*pvector[1]+matrix[9]*pvector[2]+matrix[13]*pvector[3]; + resultvector[2]=matrix[2]*pvector[0]+matrix[6]*pvector[1]+matrix[10]*pvector[2]+matrix[14]*pvector[3]; + resultvector[3]=matrix[3]*pvector[0]+matrix[7]*pvector[1]+matrix[11]*pvector[2]+matrix[15]*pvector[3]; +} + +#define SWAP_ROWS_DOUBLE(a, b) { double *_tmp = a; (a)=(b); (b)=_tmp; } +#define SWAP_ROWS_FLOAT(a, b) { float *_tmp = a; (a)=(b); (b)=_tmp; } +#define MAT(m,r,c) (m)[(c)*4+(r)] + +//This code comes directly from GLU except that it is for float +int glhInvertMatrixf2(float *m, float *out) +{ + float wtmp[4][8]; + float m0, m1, m2, m3, s; + float *r0, *r1, *r2, *r3; + r0 = wtmp[0], r1 = wtmp[1], r2 = wtmp[2], r3 = wtmp[3]; + r0[0] = MAT(m, 0, 0), r0[1] = MAT(m, 0, 1), + r0[2] = MAT(m, 0, 2), r0[3] = MAT(m, 0, 3), + r0[4] = 1.0f, r0[5] = r0[6] = r0[7] = 0.0f, + r1[0] = MAT(m, 1, 0), r1[1] = MAT(m, 1, 1), + r1[2] = MAT(m, 1, 2), r1[3] = MAT(m, 1, 3), + r1[5] = 1.0f, r1[4] = r1[6] = r1[7] = 0.0f, + r2[0] = MAT(m, 2, 0), r2[1] = MAT(m, 2, 1), + r2[2] = MAT(m, 2, 2), r2[3] = MAT(m, 2, 3), + r2[6] = 1.0f, r2[4] = r2[5] = r2[7] = 0.0f, + r3[0] = MAT(m, 3, 0), r3[1] = MAT(m, 3, 1), + r3[2] = MAT(m, 3, 2), r3[3] = MAT(m, 3, 3), + r3[7] = 1.0f, r3[4] = r3[5] = r3[6] = 0.0f; + /* choose pivot - or die */ + if (fabsf(r3[0]) > fabsf(r2[0])) + SWAP_ROWS_FLOAT(r3, r2); + if (fabsf(r2[0]) > fabsf(r1[0])) + SWAP_ROWS_FLOAT(r2, r1); + if (fabsf(r1[0]) > fabsf(r0[0])) + SWAP_ROWS_FLOAT(r1, r0); + if (0.0f == r0[0]) + return 0; + /* eliminate first variable */ + m1 = r1[0] / r0[0]; + m2 = r2[0] / r0[0]; + m3 = r3[0] / r0[0]; + s = r0[1]; + r1[1] -= m1 * s; + r2[1] -= m2 * s; + r3[1] -= m3 * s; + s = r0[2]; + r1[2] -= m1 * s; + r2[2] -= m2 * s; + r3[2] -= m3 * s; + s = r0[3]; + r1[3] -= m1 * s; + r2[3] -= m2 * s; + r3[3] -= m3 * s; + s = r0[4]; + if (s != 0.0f) { + r1[4] -= m1 * s; + r2[4] -= m2 * s; + r3[4] -= m3 * s; + } + s = r0[5]; + if (s != 0.0f) { + r1[5] -= m1 * s; + r2[5] -= m2 * s; + r3[5] -= m3 * s; + } + s = r0[6]; + if (s != 0.0f) { + r1[6] -= m1 * s; + r2[6] -= m2 * s; + r3[6] -= m3 * s; + } + s = r0[7]; + if (s != 0.0f) { + r1[7] -= m1 * s; + r2[7] -= m2 * s; + r3[7] -= m3 * s; + } + /* choose pivot - or die */ + if (fabsf(r3[1]) > fabsf(r2[1])) + SWAP_ROWS_FLOAT(r3, r2); + if (fabsf(r2[1]) > fabsf(r1[1])) + SWAP_ROWS_FLOAT(r2, r1); + if (0.0f == r1[1]) + return 0; + /* eliminate second variable */ + m2 = r2[1] / r1[1]; + m3 = r3[1] / r1[1]; + r2[2] -= m2 * r1[2]; + r3[2] -= m3 * r1[2]; + r2[3] -= m2 * r1[3]; + r3[3] -= m3 * r1[3]; + s = r1[4]; + if (0.0f != s) { + r2[4] -= m2 * s; + r3[4] -= m3 * s; + } + s = r1[5]; + if (0.0f != s) { + r2[5] -= m2 * s; + r3[5] -= m3 * s; + } + s = r1[6]; + if (0.0f != s) { + r2[6] -= m2 * s; + r3[6] -= m3 * s; + } + s = r1[7]; + if (0.0f != s) { + r2[7] -= m2 * s; + r3[7] -= m3 * s; + } + /* choose pivot - or die */ + if (fabsf(r3[2]) > fabsf(r2[2])) + SWAP_ROWS_FLOAT(r3, r2); + if (0.0f == r2[2]) + return 0; + /* eliminate third variable */ + m3 = r3[2] / r2[2]; + r3[3] -= m3 * r2[3], r3[4] -= m3 * r2[4], + r3[5] -= m3 * r2[5], r3[6] -= m3 * r2[6], r3[7] -= m3 * r2[7]; + /* last check */ + if (0.0f == r3[3]) + return 0; + s = 1.0f / r3[3]; /* now back substitute row 3 */ + r3[4] *= s; + r3[5] *= s; + r3[6] *= s; + r3[7] *= s; + m2 = r2[3]; /* now back substitute row 2 */ + s = 1.0f / r2[2]; + r2[4] = s * (r2[4] - r3[4] * m2), r2[5] = s * (r2[5] - r3[5] * m2), + r2[6] = s * (r2[6] - r3[6] * m2), r2[7] = s * (r2[7] - r3[7] * m2); + m1 = r1[3]; + r1[4] -= r3[4] * m1, r1[5] -= r3[5] * m1, + r1[6] -= r3[6] * m1, r1[7] -= r3[7] * m1; + m0 = r0[3]; + r0[4] -= r3[4] * m0, r0[5] -= r3[5] * m0, + r0[6] -= r3[6] * m0, r0[7] -= r3[7] * m0; + m1 = r1[2]; /* now back substitute row 1 */ + s = 1.0f / r1[1]; + r1[4] = s * (r1[4] - r2[4] * m1), r1[5] = s * (r1[5] - r2[5] * m1), + r1[6] = s * (r1[6] - r2[6] * m1), r1[7] = s * (r1[7] - r2[7] * m1); + m0 = r0[2]; + r0[4] -= r2[4] * m0, r0[5] -= r2[5] * m0, + r0[6] -= r2[6] * m0, r0[7] -= r2[7] * m0; + m0 = r0[1]; /* now back substitute row 0 */ + s = 1.0f / r0[0]; + r0[4] = s * (r0[4] - r1[4] * m0), r0[5] = s * (r0[5] - r1[5] * m0), + r0[6] = s * (r0[6] - r1[6] * m0), r0[7] = s * (r0[7] - r1[7] * m0); + MAT(out, 0, 0) = r0[4]; + MAT(out, 0, 1) = r0[5], MAT(out, 0, 2) = r0[6]; + MAT(out, 0, 3) = r0[7], MAT(out, 1, 0) = r1[4]; + MAT(out, 1, 1) = r1[5], MAT(out, 1, 2) = r1[6]; + MAT(out, 1, 3) = r1[7], MAT(out, 2, 0) = r2[4]; + MAT(out, 2, 1) = r2[5], MAT(out, 2, 2) = r2[6]; + MAT(out, 2, 3) = r2[7], MAT(out, 3, 0) = r3[4]; + MAT(out, 3, 1) = r3[5], MAT(out, 3, 2) = r3[6]; + MAT(out, 3, 3) = r3[7]; + return 1; +} + +int glhUnProjectf( float winx, float winy, float winz, + float *modelview, float *projection, + int *viewport, float *objectCoordinate) +{ + //Transformation matrices + float m[16], A[16]; + float in[4], out[4]; + //Calculation for inverting a matrix, compute projection x modelview + //and store in A[16] + MultiplyMatrices4by4OpenGL_FLOAT(A, projection, modelview); + //Now compute the inverse of matrix A + if(glhInvertMatrixf2(A, m)==0) + return 0; + //Transformation of normalized coordinates between -1 and 1 + in[0]=(winx-(float)viewport[0])/(float)viewport[2]*2.0f-1.0f; + in[1]=(winy-(float)viewport[1])/(float)viewport[3]*2.0f-1.0f; + in[2]=2.0f*winz-1.0f; + in[3]=1.0f; + //Objects coordinates + MultiplyMatrixByVector4by4OpenGL_FLOAT(out, m, in); + if(out[3]==0.0f) + return 0; + out[3]=1.0f/out[3]; + objectCoordinate[0]=out[0]*out[3]; + objectCoordinate[1]=out[1]*out[3]; + objectCoordinate[2]=out[2]*out[3]; + return 1; +} diff --git a/src/client/renderer/gles.h b/src/client/renderer/gles.h new file mode 100755 index 0000000..7e13d42 --- /dev/null +++ b/src/client/renderer/gles.h @@ -0,0 +1,143 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER__gles_H__ +#define NET_MINECRAFT_CLIENT_RENDERER__gles_H__ + +#include "../../platform/log.h" +#include "../Options.h" + +// Android should always run OPENGL_ES +#if defined(ANDROID) || defined(__APPLE__) || defined(RPI) + #define OPENGL_ES +#endif + +// Other systems might run it, if they #define OPENGL_ES +#if defined(OPENGL_ES) // || defined(ANDROID) + #define USE_VBO + #define GL_QUADS 0x0007 + #if defined(__APPLE__) + #import + #import + #else + // #include + #include + + #if defined(ANDROID) + #include + #endif + #endif +#else + // Uglyness to fix redeclaration issues + #ifdef WIN32 + #include + #include + #endif + // #include + // #include + + #define glFogx(a,b) glFogi(a,b) + #define glOrthof(a,b,c,d,e,f) glOrtho(a,b,c,d,e,f) +#endif + +#define GLERRDEBUG 1 +#if GLERRDEBUG +//#define GLERR(x) if((x) != 0) { LOGI("GLError: " #x "(%d)\n", __LINE__) } +#define GLERR(x) do { const int errCode = glGetError(); if (errCode != 0) LOGE("OpenGL ERROR @%d: #%d @ (%s : %d)\n", x, errCode, __FILE__, __LINE__); } while (0) +#else +#define GLERR(x) x +#endif + +void anGenBuffers(GLsizei n, GLuint* buffer); + +#ifdef USE_VBO +#define drawArrayVT_NoState drawArrayVT +#define drawArrayVTC_NoState drawArrayVTC +void drawArrayVT(int bufferId, int vertices, int vertexSize = 24, unsigned int mode = GL_TRIANGLES); +#ifndef drawArrayVT_NoState +//void drawArrayVT_NoState(int bufferId, int vertices, int vertexSize = 24); +#endif +void drawArrayVTC(int bufferId, int vertices, int vertexSize = 24); +#ifndef drawArrayVTC_NoState +void drawArrayVTC_NoState(int bufferId, int vertices, int vertexSize = 24); +#endif +#endif + +void glInit(); +void gluPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar); +int glhUnProjectf( float winx, float winy, float winz, + float *modelview, float *projection, + int *viewport, float *objectCoordinate); + +// Used for "debugging" (...). Obviously stupid dependency on Options (and ugly gl*2 calls). +#ifdef GLDEBUG + #define glTranslatef2(x, y, z) do{ if (Options::debugGl) LOGI("glTrans @ %s:%d: %f,%f,%f\n", __FILE__, __LINE__, x, y, z); glTranslatef(x, y, z); GLERR(0); } while(0) + #define glRotatef2(a, x, y, z) do{ if (Options::debugGl) LOGI("glRotat @ %s:%d: %f,%f,%f,%f\n", __FILE__, __LINE__, a, x, y, z); glRotatef(a, x, y, z); GLERR(1); } while(0) + #define glScalef2(x, y, z) do{ if (Options::debugGl) LOGI("glScale @ %s:%d: %f,%f,%f\n", __FILE__, __LINE__, x, y, z); glScalef(x, y, z); GLERR(2); } while(0) + #define glPushMatrix2() do{ if (Options::debugGl) LOGI("glPushM @ %s:%d\n", __FILE__, __LINE__); glPushMatrix(); GLERR(3); } while(0) + #define glPopMatrix2() do{ if (Options::debugGl) LOGI("glPopM @ %s:%d\n", __FILE__, __LINE__); glPopMatrix(); GLERR(4); } while(0) + #define glLoadIdentity2() do{ if (Options::debugGl) LOGI("glLoadI @ %s:%d\n", __FILE__, __LINE__); glLoadIdentity(); GLERR(5); } while(0) + + #define glVertexPointer2(a, b, c, d) do{ if (Options::debugGl) LOGI("glVertexPtr @ %s:%d : %d\n", __FILE__, __LINE__, 0); glVertexPointer(a, b, c, d); GLERR(6); } while(0) + #define glColorPointer2(a, b, c, d) do{ if (Options::debugGl) LOGI("glColorPtr @ %s:%d : %d\n", __FILE__, __LINE__, 0); glColorPointer(a, b, c, d); GLERR(7); } while(0) + #define glTexCoordPointer2(a, b, c, d) do{ if (Options::debugGl) LOGI("glTexPtr @ %s:%d : %d\n", __FILE__, __LINE__, 0); glTexCoordPointer(a, b, c, d); GLERR(8); } while(0) + #define glEnableClientState2(s) do{ if (Options::debugGl) LOGI("glEnableClient @ %s:%d : %d\n", __FILE__, __LINE__, 0); glEnableClientState(s); GLERR(9); } while(0) + #define glDisableClientState2(s) do{ if (Options::debugGl) LOGI("glDisableClient @ %s:%d : %d\n", __FILE__, __LINE__, 0); glDisableClientState(s); GLERR(10); } while(0) + #define glDrawArrays2(m, o, v) do{ if (Options::debugGl) LOGI("glDrawA @ %s:%d : %d\n", __FILE__, __LINE__, 0); glDrawArrays(m,o,v); GLERR(11); } while(0) + + #define glTexParameteri2(m, o, v) do{ if (Options::debugGl) LOGI("glTexParameteri @ %s:%d : %d\n", __FILE__, __LINE__, v); glTexParameteri(m,o,v); GLERR(12); } while(0) + #define glTexImage2D2(a,b,c,d,e,f,g,height,i) do{ if (Options::debugGl) LOGI("glTexImage2D @ %s:%d : %d\n", __FILE__, __LINE__, 0); glTexImage2D(a,b,c,d,e,f,g,height,i); GLERR(13); } while(0) + #define glTexSubImage2D2(a,b,c,d,e,f,g,height,i) do{ if (Options::debugGl) LOGI("glTexSubImage2D @ %s:%d : %d\n", __FILE__, __LINE__, 0); glTexSubImage2D(a,b,c,d,e,f,g,height,i); GLERR(14); } while(0) + #define glGenBuffers2(s, id) do{ if (Options::debugGl) LOGI("glGenBuffers @ %s:%d : %d\n", __FILE__, __LINE__, id); anGenBuffers(s, id); GLERR(15); } while(0) + #define glBindBuffer2(s, id) do{ if (Options::debugGl) LOGI("glBindBuffer @ %s:%d : %d\n", __FILE__, __LINE__, id); glBindBuffer(s, id); GLERR(16); } while(0) + #define glBufferData2(a, b, c, d) do{ if (Options::debugGl) LOGI("glBufferData @ %s:%d : %d\n", __FILE__, __LINE__, d); glBufferData(a, b, c, d); GLERR(17); } while(0) + #define glBindTexture2(m, z) do{ if (Options::debugGl) LOGI("glBindTexture @ %s:%d : %d\n", __FILE__, __LINE__, z); glBindTexture(m, z); GLERR(18); } while(0) + + #define glEnable2(s) do{ if (Options::debugGl) LOGI("glEnable @ %s:%d : %d\n", __FILE__, __LINE__, s); glEnable(s); GLERR(19); } while(0) + #define glDisable2(s) do{ if (Options::debugGl) LOGI("glDisable @ %s:%d : %d\n", __FILE__, __LINE__, s); glDisable(s); GLERR(20); } while(0) + + #define glColor4f2(r, g, b, a) do{ if (Options::debugGl) LOGI("glColor4f2 @ %s:%d : (%f,%f,%f,%f)\n", __FILE__, __LINE__, r,g,b,a); glColor4f(r,g,b,a); GLERR(21); } while(0) + + //#define glBlendMode2(s) do{ if (Options::debugGl) LOGI("glEnable @ %s:%d : %d\n", __FILE__, __LINE__, s); glEnable(s); GLERR(19); } while(0) + #define glBlendFunc2(src, dst) do{ if (Options::debugGl) LOGI("glBlendFunc @ %s:%d : %d - %d\n", __FILE__, __LINE__, src, dst); glBlendFunc(src, dst); GLERR(23); } while(0) + #define glShadeModel2(s) do{ if (Options::debugGl) LOGI("glShadeModel @ %s:%d : %d\n", __FILE__, __LINE__, s); glShadeModel(s); GLERR(25); } while(0) +#else + #define glTranslatef2 glTranslatef + #define glRotatef2 glRotatef + #define glScalef2 glScalef + #define glPushMatrix2 glPushMatrix + #define glPopMatrix2 glPopMatrix + #define glLoadIdentity2 glLoadIdentity + + #define glVertexPointer2 glVertexPointer + #define glColorPointer2 glColorPointer + #define glTexCoordPointer2 glTexCoordPointer + #define glEnableClientState2 glEnableClientState + #define glDisableClientState2 glDisableClientState + #define glDrawArrays2 glDrawArrays + + #define glTexParameteri2 glTexParameteri + #define glTexImage2D2 glTexImage2D + #define glTexSubImage2D2 glTexSubImage2D + #define glGenBuffers2 anGenBuffers + #define glBindBuffer2 glBindBuffer + #define glBufferData2 glBufferData + #define glBindTexture2 glBindTexture + + #define glEnable2 glEnable + #define glDisable2 glDisable + + #define glColor4f2 glColor4f + #define glBlendFunc2 glBlendFunc + #define glShadeModel2 glShadeModel +#endif + +// +// Extensions +// +#ifdef WIN32 + #define glGetProcAddress(a) wglGetProcAddress(a) +#else + #define glGetProcAddress(a) (void*(0)) +#endif + + + +#endif /*NET_MINECRAFT_CLIENT_RENDERER__gles_H__ */ diff --git a/src/client/renderer/ptexture/DynamicTexture.cpp b/src/client/renderer/ptexture/DynamicTexture.cpp new file mode 100755 index 0000000..e3b7b47 --- /dev/null +++ b/src/client/renderer/ptexture/DynamicTexture.cpp @@ -0,0 +1,208 @@ +#include "DynamicTexture.h" + +#include +#include "../Textures.h" +#include "../../../world/level/tile/Tile.h" +#include "../../../util/Mth.h" + +// +// DynamicTexture +// +DynamicTexture::DynamicTexture(int tex_) +: tex(tex_), + replicate(1) +{ + memset(pixels, 0, 16*16*4); +} + +void DynamicTexture::bindTexture(Textures* tex) { + tex->loadAndBindTexture("terrain.png"); +} + +// +// WaterTexture +// I was thinking of adding something simple (a simple frame copy from a +// "still water image sequence") every n:th tick for calm water, and shifting +// the rows of a texture for the running water. I might do that, but I got +// impressed over the java code, so I will try that first.. and I suspect they +// wont mix very good. +/* +WaterTexture::WaterTexture() +: super(Tile::water->tex), + _tick(0), + _frame(0) +{ +} + +void WaterTexture::tick() { +} +*/ + +WaterTexture::WaterTexture() +: super(Tile::water->tex), + _tick(0), + _frame(0) +{ + current = new float[16*16]; + next = new float[16*16]; + heat = new float[16*16]; + heata = new float[16*16]; + + for (int i = 0; i < 256; ++i) { + current[i] = 0; + next[i] = 0; + heat[i] = 0; + heata[i] = 0; + } +} + +WaterTexture::~WaterTexture() { + delete[] current; + delete[] next; + delete[] heat; + delete[] heata; +} + +void WaterTexture::tick() +{ + for (int x = 0; x < 16; x++) + for (int y = 0; y < 16; y++) { + float pow = 0; + for (int xx = x - 1; xx <= x + 1; xx++) { + int xi = (xx) & 15; + int yi = (y) & 15; + pow += current[xi + yi * 16]; + } + next[x + y * 16] = pow / 3.3f + heat[x + y * 16] * 0.8f; + } + + for (int x = 0; x < 16; x++) + for (int y = 0; y < 16; y++) { + heat[x + y * 16] += heata[x + y * 16] * 0.05f; + + if (heat[x + y * 16] < 0) heat[x + y * 16] = 0; + heata[x + y * 16] -= 0.1f; + if (Mth::random() < 0.05f) { + heata[x + y * 16] = 0.5f; + } + } + + float* tmp = next; + next = current; + current = tmp; + + for (int i = 0; i < 256; i++) { + float pow = current[i]; + if (pow > 1) pow = 1; + if (pow < 0) pow = 0; + + float pp = pow * pow; + + int r = (int) (32 + pp * 32); + int g = (int) (50 + pp * 64); + int b = (int) (255); + int a = (int) (146 + pp * 50); + + //if (anaglyph3d) { + // int rr = (r * 30 + g * 59 + b * 11) / 100; + // int gg = (r * 30 + g * 70) / (100); + // int bb = (r * 30 + b * 70) / (100); + + // r = rr; + // g = gg; + // b = bb; + //} + + pixels[i * 4 + 0] = r; + pixels[i * 4 + 1] = g; + pixels[i * 4 + 2] = b; + pixels[i * 4 + 3] = a; + } +} + +// +// WaterSideTexture +// +WaterSideTexture::WaterSideTexture() +: super(Tile::water->tex + 1), + _tick(0), + _frame(0), + _tickCount(0) +{ + replicate = 2; + + current = new float[16*16]; + next = new float[16*16]; + heat = new float[16*16]; + heata = new float[16*16]; + + for (int i = 0; i < 256; ++i) { + current[i] = 0; + next[i] = 0; + heat[i] = 0; + heata[i] = 0; + } +} + +WaterSideTexture::~WaterSideTexture() { + delete[] current; + delete[] next; + delete[] heat; + delete[] heata; +} + +void WaterSideTexture::tick() { + ++_tickCount; + for (int x = 0; x < 16; x++) + for (int y = 0; y < 16; y++) { + float pow = 0; + for (int xx = y - 2; xx <= y; xx++) { + int xi = (x) & 15; + int yi = (xx) & 15; + pow += current[xi + yi * 16]; + } + next[x + y * 16] = pow / 3.2f + heat[x + y * 16] * 0.8f; + } + + for (int x = 0; x < 16; x++) + for (int y = 0; y < 16; y++) { + heat[x + y * 16] += heata[x + y * 16] * 0.05f; + + if (heat[x + y * 16] < 0) heat[x + y * 16] = 0; + heata[x + y * 16] -= 0.3f; + if (Mth::random() < 0.2) { + heata[x + y * 16] = 0.5f; + } + } + float* tmp = next; + next = current; + current = tmp; + + for (int i = 0; i < 256; i++) { + float pow = current[(i - _tickCount * 16) & 255]; + if (pow > 1) pow = 1; + if (pow < 0) pow = 0; + + float pp = pow * pow; + + int r = (int) (32 + pp * 32); + int g = (int) (50 + pp * 64); + int b = (int) (255); + int a = (int) (146 + pp * 50); + + //if (anaglyph3d) { + // int rr = (r * 30 + g * 59 + b * 11) / 100; + // int gg = (r * 30 + g * 70) / (100); + // int bb = (r * 30 + b * 70) / (100); + + // r = rr; + // g = gg; + // b = bb; + //} + + pixels[i * 4 + 0] = r; + pixels[i * 4 + 1] = g; + pixels[i * 4 + 2] = b; + pixels[i * 4 + 3] = a; + } +} diff --git a/src/client/renderer/ptexture/DynamicTexture.h b/src/client/renderer/ptexture/DynamicTexture.h new file mode 100755 index 0000000..c95b3d7 --- /dev/null +++ b/src/client/renderer/ptexture/DynamicTexture.h @@ -0,0 +1,59 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_PTEXTURE__DynamicTexture_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_PTEXTURE__DynamicTexture_H__ + +#include + +class Textures; + +class DynamicTexture +{ +public: + int tex; + int replicate; + unsigned char pixels[16*16*4]; + + DynamicTexture(int tex_); + virtual ~DynamicTexture() {} + + virtual void tick() = 0; + virtual void bindTexture(Textures* tex); +}; + +class WaterTexture: public DynamicTexture +{ + typedef DynamicTexture super; + int _tick; + int _frame; + + float* current; + float* next; + float* heat; + float* heata; + +public: + WaterTexture(); + ~WaterTexture(); + + void tick(); +}; + +class WaterSideTexture: public DynamicTexture +{ + typedef DynamicTexture super; + int _tick; + int _frame; + int _tickCount; + + float* current; + float* next; + float* heat; + float* heata; + +public: + WaterSideTexture(); + ~WaterSideTexture(); + + void tick(); +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_PTEXTURE__DynamicTexture_H__*/ diff --git a/src/client/renderer/tileentity/ChestRenderer.cpp b/src/client/renderer/tileentity/ChestRenderer.cpp new file mode 100755 index 0000000..5a5a58f --- /dev/null +++ b/src/client/renderer/tileentity/ChestRenderer.cpp @@ -0,0 +1,76 @@ +#include "ChestRenderer.h" +#include "TileEntityRenderer.h" +#include "../gles.h" +#include "../../model/ChestModel.h" +#include "../../../world/level/tile/entity/ChestTileEntity.h" +#include "../../../world/level/tile/ChestTile.h" +#include "../../../util/Mth.h" + + +void ChestRenderer::render( TileEntity* entity, float x, float y, float z, float a ) +{ + ChestTileEntity* chest = (ChestTileEntity*) entity; + int data = 0; + + if (chest->level) { + Tile* tile = chest->getTile(); + data = chest->getData(); + + if (tile != NULL && data == 0) { + ((ChestTile*)tile)->recalcLockDir(chest->level, chest->x, chest->y, chest->z); + data = chest->getData(); + } + + chest->checkNeighbors(); + } + if (chest->n != NULL || chest->w != NULL) return; + + ChestModel* model; + //if (chest->e != NULL || chest->s != NULL) { + // //model = &largeChestModel; + // bindTexture("item/largechest.png"); + //} else + { + model = &chestModel; + bindTexture("item/chest.png"); + } + + glPushMatrix2(); + glColor4f2(1, 1, 1, 1); + glTranslatef2(x, y + 1, z + 1); + glScalef2(1, -1, -1); + + glTranslatef2(0.5f, 0.5f, 0.5f); + GLfloat rot = 0; + if (data == 2) rot = 180; + if (data == 3) rot = 0; + if (data == 4) rot = 90; + if (data == 5) rot = -90; + + if (data == 2 && chest->e != NULL) { + glTranslatef2(1, 0, 0); + } + if (data == 5 && chest->s != NULL) { + glTranslatef2(0, 0, -1); + } + glRotatef2(rot, 0, 1, 0); + glTranslatef2(-0.5f, -0.5f, -0.5f); + + float open = chest->oOpenness + (chest->openness - chest->oOpenness) * a; + if (chest->n != NULL) { + float open2 = chest->n->oOpenness + (chest->n->openness - chest->n->oOpenness) * a; + if (open2 > open) open = open2; + } + if (chest->w != NULL) { + float open2 = chest->w->oOpenness + (chest->w->openness - chest->w->oOpenness) * a; + if (open2 > open) open = open2; + } + + open = 1 - open; + open = 1 - open * open * open; + + model->lid.xRot = -(open * Mth::PI / 2); + model->render(); + glPopMatrix2(); + glColor4f2(1, 1, 1, 1); +} diff --git a/src/client/renderer/tileentity/ChestRenderer.h b/src/client/renderer/tileentity/ChestRenderer.h new file mode 100755 index 0000000..bf4e47e --- /dev/null +++ b/src/client/renderer/tileentity/ChestRenderer.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__ChestRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__ChestRenderer_H__ + +//package net.minecraft.client.renderer.tileentity; + +#include "TileEntityRenderer.h" +#include "../../model/ChestModel.h" + +class ChestTileEntity; + +class ChestRenderer: public TileEntityRenderer +{ + /*@Override*/ + void render(TileEntity* chest, float x, float y, float z, float a); + +private: + ChestModel chestModel; + //LargeChestModel* largeChestModel; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__ChestRenderer_H__*/ diff --git a/src/client/renderer/tileentity/SignRenderer.cpp b/src/client/renderer/tileentity/SignRenderer.cpp new file mode 100755 index 0000000..0bd5d4c --- /dev/null +++ b/src/client/renderer/tileentity/SignRenderer.cpp @@ -0,0 +1,65 @@ +#include "SignRenderer.h" +#include "../../../world/level/tile/Tile.h" +#include "../../../world/level/tile/entity/SignTileEntity.h" + +void SignRenderer::render( TileEntity* te, float x, float y, float z, float a ) +{ + SignTileEntity* sign = (SignTileEntity*) te; + Tile* tile = sign->getTile(); + + glPushMatrix(); + float size = 16 / 24.0f; + if (tile == Tile::sign) { + glTranslatef(x + 0.5f, y + 0.75f * size, z + 0.5f); + float rot = sign->getData() * 360 / 16.0f; + glRotatef(-rot, 0, 1, 0); + signModel.cube2.visible = true; + } else { + int face = sign->getData(); + float rot = 0; + + if (face == 2) rot = 180; + if (face == 4) rot = 90; + if (face == 5) rot = -90; + + glTranslatef(x + 0.5f, y + 0.75f * size, z + 0.5f); + glRotatef(-rot, 0, 1, 0); + glTranslatef(0, -5 / 16.0f, -7 / 16.0f); + + signModel.cube2.visible = false; + } + + bindTexture("item/sign.png"); + + glPushMatrix(); + glScalef(size, -size, -size); + signModel.render(); + glPopMatrix(); + Font* font = getFont(); + + float s = 1 / 60.0f * size; + glTranslatef(0, 0.5f * size, 0.07f * size); + glScalef(s, -s, s); + glNormal3f(0, 0, -1 * s); + glDepthMask(false); + + int col = 0; + float yy = (float)(SignTileEntity::NUM_LINES * -5); + for (int i = 0; i < SignTileEntity::NUM_LINES; i++) { + std::string& msg = sign->messages[i]; + if (i == sign->selectedLine) { + std::string s = "> " + msg + " <"; + font->draw(s, (float)-font->width(s) / 2, yy, col); + } else { + font->draw(msg, (float)-font->width(msg) / 2, yy, col); + } + yy += 10; + } + glDepthMask(true); + glColor4f(1, 1, 1, 1); + glPopMatrix(); +} + +void SignRenderer::onGraphicsReset() { + signModel.onGraphicsReset(); +} diff --git a/src/client/renderer/tileentity/SignRenderer.h b/src/client/renderer/tileentity/SignRenderer.h new file mode 100755 index 0000000..b9de6b3 --- /dev/null +++ b/src/client/renderer/tileentity/SignRenderer.h @@ -0,0 +1,21 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__SignRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__SignRenderer_H__ + +//package net.minecraft.client.renderer.tileentity; + +#include "TileEntityRenderer.h" + +#include "../../gui/Font.h" +#include "../../model/SignModel.h" + +class SignRenderer: public TileEntityRenderer +{ +public: + /*@Override*/ + void render(TileEntity* te, float x, float y, float z, float a); + void onGraphicsReset(); +private: + SignModel signModel; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__SignRenderer_H__*/ diff --git a/src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp b/src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp new file mode 100755 index 0000000..9b1f82d --- /dev/null +++ b/src/client/renderer/tileentity/TileEntityRenderDispatcher.cpp @@ -0,0 +1,136 @@ +#include "TileEntityRenderDispatcher.h" +#include "ChestRenderer.h" +#include "../Textures.h" +#include "../../gui/Font.h" +#include "../../../SharedConstants.h" +#include "../../../world/entity/Mob.h" +#include "../../../world/level/Level.h" +#include "../../../world/level/tile/entity/TileEntity.h" +#include "SignRenderer.h" + +/*static*/ +TileEntityRenderDispatcher* TileEntityRenderDispatcher::instance = 0; +/*static*/ +float TileEntityRenderDispatcher::xOff = 0, + TileEntityRenderDispatcher::yOff = 0, + TileEntityRenderDispatcher::zOff = 0; + +TileEntityRenderDispatcher* TileEntityRenderDispatcher::getInstance() +{ + if (!instance) instance = new TileEntityRenderDispatcher(); + return instance; +} + +TileEntityRenderDispatcher::~TileEntityRenderDispatcher() +{ + std::set destroyed; + for (RendererCIterator cit = _renderers.begin(); cit != _renderers.end(); ++cit) { + if (destroyed.find(cit->second) == destroyed.end()) { + destroyed.insert(cit->second); + delete cit->second; + } + } +} + +void TileEntityRenderDispatcher::destroy() +{ + if (instance) { + delete instance; + instance = NULL; + } +} + +void TileEntityRenderDispatcher::prepare( Level* level, Textures* textures, Font* font, Mob* player, float a ) +{ + if (this->level != level) + setLevel(level); + + this->textures = textures; + this->cameraEntity = player; + this->_font = font; + + playerRotY = player->yRotO + (player->yRot - player->yRotO) * a; + playerRotX = player->xRotO + (player->xRot - player->xRotO) * a; + + xPlayer = player->xOld + (player->x - player->xOld) * a; + yPlayer = player->yOld + (player->y - player->yOld) * a; + zPlayer = player->zOld + (player->z - player->zOld) * a; + + // xPlayer -= xPlayerOffs; + // yPlayer -= yPlayerOffs; + // zPlayer -= zPlayerOffs; +} + +void TileEntityRenderDispatcher::render( TileEntity* e, float a ) +{ + if (e->distanceToSqr(xPlayer, yPlayer, zPlayer) < 64 * 64) { + float br = level->getBrightness(e->x, e->y, e->z); + glColor4f(br, br, br, 1); + render(e, e->x - xOff, e->y - yOff, e->z - zOff, a); + } +} + +void TileEntityRenderDispatcher::render( TileEntity* entity, float x, float y, float z, float a ) +{ + TileEntityRenderer* renderer = getRenderer(entity); + if (renderer != NULL) { + renderer->render(entity, x, y, z, a); + } +} + +void TileEntityRenderDispatcher::setLevel( Level* level ) +{ + this->level = level; + + for (RendererCIterator cit = _renderers.begin(); cit != _renderers.end(); ++cit) + if (cit->second != NULL) + cit->second->onNewLevel(level); +} + +float TileEntityRenderDispatcher::distanceToSqr( float x, float y, float z ) +{ + float xd = x - xPlayer; + float yd = y - yPlayer; + float zd = z - zPlayer; + return xd * xd + yd * yd + zd * zd; +} + +Font* TileEntityRenderDispatcher::getFont() +{ + return _font; +} + +TileEntityRenderer* TileEntityRenderDispatcher::getRenderer( TileEntity* entity ) +{ + TileEntityRendererId rendererId = entity->rendererId; + + //if (rendererId == TR_QUERY_RENDERER) + // rendererId = entity->queryEntityRenderer(); + + return getRenderer(rendererId); +} + +TileEntityRenderer* TileEntityRenderDispatcher::getRenderer( TileEntityRendererId rendererId ) +{ + TileEntityRenderer* renderer = NULL; + RendererCIterator cit = _renderers.find(rendererId); + if (cit != _renderers.end()) { + renderer = cit->second; + } + return renderer; +} + +TileEntityRenderDispatcher::TileEntityRenderDispatcher() +{ + _renderers.insert(std::make_pair(TR_CHEST_RENDERER, new ChestRenderer())); + _renderers.insert(std::make_pair(TR_SIGN_RENDERER, new SignRenderer())); + + for (RendererCIterator cit = _renderers.begin(); cit != _renderers.end(); ++cit) + cit->second->init(this); +} + +void TileEntityRenderDispatcher::onGraphicsReset() { + for (RendererIterator it = _renderers.begin(); it != _renderers.end(); ++it) { + it->second->onGraphicsReset(); + } +} diff --git a/src/client/renderer/tileentity/TileEntityRenderDispatcher.h b/src/client/renderer/tileentity/TileEntityRenderDispatcher.h new file mode 100755 index 0000000..0f7539e --- /dev/null +++ b/src/client/renderer/tileentity/TileEntityRenderDispatcher.h @@ -0,0 +1,61 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__TileEntityRenderDispatcher_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__TileEntityRenderDispatcher_H__ + +//package net.minecraft.client.renderer.tileentity; + +#include +#include "../../../world/level/tile/entity/TileEntityRendererId.h" + +class TileEntityRenderer; +class Level; +class Textures; +class TileEntity; +class Font; +class Mob; + +class TileEntityRenderDispatcher +{ + typedef std::map RendererMap; + typedef RendererMap::iterator RendererIterator; + typedef RendererMap::const_iterator RendererCIterator; + +public: + ~TileEntityRenderDispatcher(); + + static TileEntityRenderDispatcher* getInstance(); + static void destroy(); + + void setLevel(Level* level); + void prepare(Level* level, Textures* textures, Font* font, Mob* player, float a); + + void render(TileEntity* e, float a); + void render(TileEntity* entity, float x, float y, float z, float a); + + float distanceToSqr(float x, float y, float z); + + Font* getFont(); + + TileEntityRenderer* getRenderer( TileEntity* entity ); + TileEntityRenderer* getRenderer( TileEntityRendererId rendererId ); + + void onGraphicsReset(); +private: + TileEntityRenderDispatcher(); +public: + static float xOff, yOff, zOff; + + Textures* textures; + Level* level; + Mob* cameraEntity; + float playerRotY; + float playerRotX; + + float xPlayer, yPlayer, zPlayer; +private: + static TileEntityRenderDispatcher* instance; + + Font* _font; + RendererMap _renderers; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__TileEntityRenderDispatcher_H__*/ diff --git a/src/client/renderer/tileentity/TileEntityRenderer.cpp b/src/client/renderer/tileentity/TileEntityRenderer.cpp new file mode 100755 index 0000000..042a3e3 --- /dev/null +++ b/src/client/renderer/tileentity/TileEntityRenderer.cpp @@ -0,0 +1,32 @@ +#include "TileEntityRenderer.h" +#include "TileEntityRenderDispatcher.h" +#include "../Textures.h" +#include "../../gui/Font.h" +#include "../../../world/level/Level.h" +#include "../../../world/level/tile/entity/TileEntity.h" + +TileEntityRenderer::TileEntityRenderer() +: tileEntityRenderDispatcher(NULL) +{ +} + +void TileEntityRenderer::bindTexture( const std::string& resourceName ) +{ + Textures* t = tileEntityRenderDispatcher->textures; + if (t != NULL) t->loadAndBindTexture(resourceName); +} + +Level* TileEntityRenderer::getLevel() +{ + return tileEntityRenderDispatcher->level; +} + +void TileEntityRenderer::init( TileEntityRenderDispatcher* tileEntityRenderDispatcher ) +{ + this->tileEntityRenderDispatcher = tileEntityRenderDispatcher; +} + +Font* TileEntityRenderer::getFont() +{ + return tileEntityRenderDispatcher->getFont(); +} diff --git a/src/client/renderer/tileentity/TileEntityRenderer.h b/src/client/renderer/tileentity/TileEntityRenderer.h new file mode 100755 index 0000000..0234682 --- /dev/null +++ b/src/client/renderer/tileentity/TileEntityRenderer.h @@ -0,0 +1,38 @@ +#ifndef NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__TileEntityRenderer_H__ +#define NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__TileEntityRenderer_H__ + +//package net.minecraft.client.renderer.tileentity; + +#include + +class Level; +class TileEntity; +class TileEntityRenderDispatcher; +class Font; + +class TileEntityRenderer +{ +public: + TileEntityRenderer(); + virtual ~TileEntityRenderer(){} + + void init(TileEntityRenderDispatcher* tileEntityRenderDispatcher); + virtual void render(TileEntity* entity, float x, float y, float z, float a) = 0; + + void bindTexture(const std::string& resourceName); +// /*protected*/ void bindTexture(const std::string& urlTexture, const std::string& backupTexture) { +// Textures t = tileEntityRenderDispatcher.textures; +// if (t != NULL) t.bind(t.loadHttpTexture(urlTexture, backupTexture)); +// } + + Level* getLevel(); + Font* getFont(); + + virtual void onGraphicsReset() {} + + virtual void onNewLevel(Level* level) {} +protected: + TileEntityRenderDispatcher* tileEntityRenderDispatcher; +}; + +#endif /*NET_MINECRAFT_CLIENT_RENDERER_TILEENTITY__TileEntityRenderer_H__*/ diff --git a/src/client/sound/Sound.cpp b/src/client/sound/Sound.cpp new file mode 100755 index 0000000..ff5442a --- /dev/null +++ b/src/client/sound/Sound.cpp @@ -0,0 +1,226 @@ +#include "Sound.h" + +#if !defined(PRE_ANDROID23) && !defined(__APPLE__) && !defined(RPI) + +#include "data/cloth1.pcm" +#include "data/cloth2.pcm" +#include "data/cloth3.pcm" +#include "data/cloth4.pcm" +#include "data/grass1.pcm" +#include "data/grass2.pcm" +#include "data/grass3.pcm" +#include "data/grass4.pcm" +#include "data/gravel1.pcm" +#include "data/gravel2.pcm" +#include "data/gravel3.pcm" +#include "data/gravel4.pcm" +#include "data/sand1.pcm" +#include "data/sand2.pcm" +#include "data/sand3.pcm" +#include "data/sand4.pcm" +#include "data/stone1.pcm" +#include "data/stone2.pcm" +#include "data/stone3.pcm" +#include "data/stone4.pcm" +#include "data/wood1.pcm" +#include "data/wood2.pcm" +#include "data/wood3.pcm" +#include "data/wood4.pcm" + +#include "data/click.pcm" +#include "data/explode.pcm" +#include "data/splash.pcm" +#include "data/pop.pcm" +#include "data/pop2.pcm" +#include "data/hurt.pcm" +#include "data/door_open.pcm" +#include "data/door_close.pcm" +#include "data/glass1.pcm" +#include "data/glass2.pcm" +#include "data/glass3.pcm" + +#include "data/sheep1.pcm" +#include "data/sheep2.pcm" +#include "data/sheep3.pcm" + +#include "data/pig1.pcm" +#include "data/pig2.pcm" +#include "data/pig3.pcm" +#include "data/pigdeath.pcm" + +//#include "data/chicken1.pcm" +#include "data/chicken2.pcm" +#include "data/chicken3.pcm" +#include "data/chickenhurt1.pcm" +#include "data/chickenhurt2.pcm" + +#include "data/cow1.pcm" +#include "data/cow2.pcm" +#include "data/cow3.pcm" +#include "data/cow4.pcm" +#include "data/cowhurt1.pcm" +#include "data/cowhurt2.pcm" +#include "data/cowhurt3.pcm" + +#include "data/zombie1.pcm" +#include "data/zombie2.pcm" +#include "data/zombie3.pcm" +#include "data/zombiedeath.pcm" +#include "data/zombiehurt1.pcm" +#include "data/zombiehurt2.pcm" + +#include "data/zpig1.pcm" +#include "data/zpig2.pcm" +#include "data/zpig3.pcm" +#include "data/zpig4.pcm" +#include "data/zpigangry1.pcm" +#include "data/zpigangry2.pcm" +#include "data/zpigangry3.pcm" +#include "data/zpigangry4.pcm" +#include "data/zpigdeath.pcm" +#include "data/zpighurt1.pcm" +#include "data/zpighurt2.pcm" + +#include "data/bow.pcm" +#include "data/bowhit1.pcm" +#include "data/bowhit2.pcm" +#include "data/bowhit3.pcm" +#include "data/bowhit4.pcm" +#include "data/fallbig1.pcm" +#include "data/fallbig2.pcm" +#include "data/fallsmall.pcm" +#include "data/skeleton1.pcm" +#include "data/skeleton2.pcm" +#include "data/skeleton3.pcm" +#include "data/skeletondeath.pcm" +#include "data/skeletonhurt1.pcm" +#include "data/skeletonhurt2.pcm" +#include "data/skeletonhurt3.pcm" +#include "data/skeletonhurt4.pcm" +#include "data/spider1.pcm" +#include "data/spider2.pcm" +#include "data/spider3.pcm" +#include "data/spider4.pcm" +#include "data/spiderdeath.pcm" + +#include "data/creeper1.pcm" +#include "data/creeper2.pcm" +#include "data/creeper3.pcm" +#include "data/creeper4.pcm" +#include "data/creeperdeath.pcm" +#include "data/eat1.pcm" +#include "data/eat2.pcm" +#include "data/eat3.pcm" +#include "data/fuse.pcm" + +SoundDesc SA_cloth1((char*)PCM_cloth1); +SoundDesc SA_cloth2((char*)PCM_cloth2); +SoundDesc SA_cloth3((char*)PCM_cloth3); +SoundDesc SA_cloth4((char*)PCM_cloth4); +SoundDesc SA_grass1((char*)PCM_grass1); +SoundDesc SA_grass2((char*)PCM_grass2); +SoundDesc SA_grass3((char*)PCM_grass3); +SoundDesc SA_grass4((char*)PCM_grass4); +SoundDesc SA_gravel1((char*)PCM_gravel1); +SoundDesc SA_gravel2((char*)PCM_gravel2); +SoundDesc SA_gravel3((char*)PCM_gravel3); +SoundDesc SA_gravel4((char*)PCM_gravel4); +SoundDesc SA_sand1((char*)PCM_sand1); +SoundDesc SA_sand2((char*)PCM_sand2); +SoundDesc SA_sand3((char*)PCM_sand3); +SoundDesc SA_sand4((char*)PCM_sand4); +SoundDesc SA_stone1((char*)PCM_stone1); +SoundDesc SA_stone2((char*)PCM_stone2); +SoundDesc SA_stone3((char*)PCM_stone3); +SoundDesc SA_stone4((char*)PCM_stone4); +SoundDesc SA_wood1((char*)PCM_wood1); +SoundDesc SA_wood2((char*)PCM_wood2); +SoundDesc SA_wood3((char*)PCM_wood3); +SoundDesc SA_wood4((char*)PCM_wood4); + +SoundDesc SA_click((char*)PCM_click); +SoundDesc SA_explode((char*)PCM_explode); +SoundDesc SA_splash((char*)PCM_splash); + +SoundDesc SA_door_open((char*)PCM_door_open); +SoundDesc SA_door_close((char*)PCM_door_close); +SoundDesc SA_pop((char*)PCM_pop); +SoundDesc SA_hurt((char*)PCM_hurt); +SoundDesc SA_glass1((char*)PCM_glass1); +SoundDesc SA_glass2((char*)PCM_glass2); +SoundDesc SA_glass3((char*)PCM_glass3); + +SoundDesc SA_sheep1((char*)PCM_sheep1); +SoundDesc SA_sheep2((char*)PCM_sheep2); +SoundDesc SA_sheep3((char*)PCM_sheep3); +SoundDesc SA_pig1((char*)PCM_pig1); +SoundDesc SA_pig2((char*)PCM_pig2); +SoundDesc SA_pig3((char*)PCM_pig3); +SoundDesc SA_pigdeath((char*)PCM_pigdeath); + +//SoundDesc SA_chicken1((char*)PCM_chicken1); +SoundDesc SA_chicken2((char*)PCM_chicken2); +SoundDesc SA_chicken3((char*)PCM_chicken3); +SoundDesc SA_chickenhurt1((char*)PCM_chickenhurt1); +SoundDesc SA_chickenhurt2((char*)PCM_chickenhurt2); +SoundDesc SA_cow1((char*)PCM_cow1); +SoundDesc SA_cow2((char*)PCM_cow2); +SoundDesc SA_cow3((char*)PCM_cow3); +SoundDesc SA_cow4((char*)PCM_cow4); +SoundDesc SA_cowhurt1((char*)PCM_cowhurt1); +SoundDesc SA_cowhurt2((char*)PCM_cowhurt2); +SoundDesc SA_cowhurt3((char*)PCM_cowhurt3); + +SoundDesc SA_zombie1((char*)PCM_zombie1); +SoundDesc SA_zombie2((char*)PCM_zombie2); +SoundDesc SA_zombie3((char*)PCM_zombie3); + +SoundDesc SA_zpig1((char*)PCM_zpig1); +SoundDesc SA_zpig2((char*)PCM_zpig2); +SoundDesc SA_zpig3((char*)PCM_zpig3); +SoundDesc SA_zpig4((char*)PCM_zpig4); +SoundDesc SA_zpigangry1((char*)PCM_zpigangry1); +SoundDesc SA_zpigangry2((char*)PCM_zpigangry2); +SoundDesc SA_zpigangry3((char*)PCM_zpigangry3); +SoundDesc SA_zpigangry4((char*)PCM_zpigangry4); +SoundDesc SA_zpigdeath((char*)PCM_zpigdeath); +SoundDesc SA_zpighurt1((char*)PCM_zpighurt1); +SoundDesc SA_zpighurt2((char*)PCM_zpighurt2); + +SoundDesc SA_zombiedeath((char*)PCM_zombiedeath); +SoundDesc SA_zombiehurt1((char*)PCM_zombiehurt1); +SoundDesc SA_zombiehurt2((char*)PCM_zombiehurt2); + +SoundDesc SA_bow((char*)PCM_bow); +SoundDesc SA_bowhit1((char*)PCM_bowhit1); +SoundDesc SA_bowhit2((char*)PCM_bowhit2); +SoundDesc SA_bowhit3((char*)PCM_bowhit3); +SoundDesc SA_bowhit4((char*)PCM_bowhit4); +SoundDesc SA_fallbig1((char*)PCM_fallbig1); +SoundDesc SA_fallbig2((char*)PCM_fallbig2); +SoundDesc SA_fallsmall((char*)PCM_fallsmall); +SoundDesc SA_skeleton1((char*)PCM_skeleton1); +SoundDesc SA_skeleton2((char*)PCM_skeleton2); +SoundDesc SA_skeleton3((char*)PCM_skeleton3); +SoundDesc SA_skeletondeath((char*)PCM_skeletondeath); +SoundDesc SA_skeletonhurt1((char*)PCM_skeletonhurt1); +SoundDesc SA_skeletonhurt2((char*)PCM_skeletonhurt2); +SoundDesc SA_skeletonhurt3((char*)PCM_skeletonhurt3); +SoundDesc SA_skeletonhurt4((char*)PCM_skeletonhurt4); +SoundDesc SA_spider1((char*)PCM_spider1); +SoundDesc SA_spider2((char*)PCM_spider2); +SoundDesc SA_spider3((char*)PCM_spider3); +SoundDesc SA_spider4((char*)PCM_spider4); +SoundDesc SA_spiderdeath((char*)PCM_spiderdeath); + +SoundDesc SA_creeper1((char*)PCM_creeper1); +SoundDesc SA_creeper2((char*)PCM_creeper2); +SoundDesc SA_creeper3((char*)PCM_creeper3); +SoundDesc SA_creeper4((char*)PCM_creeper4); +SoundDesc SA_creeperdeath((char*)PCM_creeperdeath); +SoundDesc SA_eat1((char*)PCM_eat1); +SoundDesc SA_eat2((char*)PCM_eat2); +SoundDesc SA_eat3((char*)PCM_eat3); +SoundDesc SA_fuse((char*)PCM_fuse); + +#endif /*!PRE_ANDROID23 && !__APPLE__*/ diff --git a/src/client/sound/Sound.h b/src/client/sound/Sound.h new file mode 100755 index 0000000..62f3db0 --- /dev/null +++ b/src/client/sound/Sound.h @@ -0,0 +1,180 @@ +#ifndef NET_MINECRAFT_CLIENT_SOUND__Sound_H__ +#define NET_MINECRAFT_CLIENT_SOUND__Sound_H__ + +//package net.minecraft.client.sound; + +#include + +class SoundDesc +{ +public: + SoundDesc() + : buffer(0) + {} + + SoundDesc(char* data, int size, int channels, int width, int rate) + : buffer(data), + frames(data), + size(size), + channels(channels), + byteWidth(width), + frameRate(rate) + { + numFrames = size / (channels * byteWidth); + } + + SoundDesc(char* data) + : buffer(data) + { + // header [INT][Channels, BytePerSample, FrameRate, NumFrames] + channels = *((int*)&data[0]); + byteWidth = *((int*)&data[4]); + frameRate = *((int*)&data[8]); + numFrames = *((int*)&data[12]); + + size = channels * byteWidth * numFrames; + frames = buffer + 16; + } + + bool isValid() const { return buffer != 0; } + float length() const { + return ((float)numFrames) / frameRate; + } + + void destroy() const { + if (isValid()) { + delete buffer; + buffer = 0; + } + } + + char* frames; + int size; + + int channels; + int byteWidth; + int frameRate; + int numFrames; + + std::string name; +private: + mutable char* buffer; +}; + +#if !defined(PRE_ANDROID23) && !defined(__APPLE__) && !defined(RPI) + +extern SoundDesc SA_cloth1; +extern SoundDesc SA_cloth2; +extern SoundDesc SA_cloth3; +extern SoundDesc SA_cloth4; +extern SoundDesc SA_grass1; +extern SoundDesc SA_grass2; +extern SoundDesc SA_grass3; +extern SoundDesc SA_grass4; +extern SoundDesc SA_gravel1; +extern SoundDesc SA_gravel2; +extern SoundDesc SA_gravel3; +extern SoundDesc SA_gravel4; +extern SoundDesc SA_sand1; +extern SoundDesc SA_sand2; +extern SoundDesc SA_sand3; +extern SoundDesc SA_sand4; +extern SoundDesc SA_stone1; +extern SoundDesc SA_stone2; +extern SoundDesc SA_stone3; +extern SoundDesc SA_stone4; +extern SoundDesc SA_wood1; +extern SoundDesc SA_wood2; +extern SoundDesc SA_wood3; +extern SoundDesc SA_wood4; + +extern SoundDesc SA_click; +extern SoundDesc SA_explode; +extern SoundDesc SA_splash; + +extern SoundDesc SA_door_open; +extern SoundDesc SA_door_close; +extern SoundDesc SA_pop; +extern SoundDesc SA_pop2; +extern SoundDesc SA_hurt; +extern SoundDesc SA_glass1; +extern SoundDesc SA_glass2; +extern SoundDesc SA_glass3; + +extern SoundDesc SA_sheep1; +extern SoundDesc SA_sheep2; +extern SoundDesc SA_sheep3; +extern SoundDesc SA_pig1; +extern SoundDesc SA_pig2; +extern SoundDesc SA_pig3; +extern SoundDesc SA_pigdeath; + +//extern SoundDesc SA_chicken1; +extern SoundDesc SA_chicken2; +extern SoundDesc SA_chicken3; +extern SoundDesc SA_chickenhurt1; +extern SoundDesc SA_chickenhurt2; + +extern SoundDesc SA_cow1; +extern SoundDesc SA_cow2; +extern SoundDesc SA_cow3; +extern SoundDesc SA_cow4; +extern SoundDesc SA_cowhurt1; +extern SoundDesc SA_cowhurt2; +extern SoundDesc SA_cowhurt3; + +extern SoundDesc SA_zombie1; +extern SoundDesc SA_zombie2; +extern SoundDesc SA_zombie3; +extern SoundDesc SA_zombiedeath; +extern SoundDesc SA_zombiehurt1; +extern SoundDesc SA_zombiehurt2; + +extern SoundDesc SA_zpig1; +extern SoundDesc SA_zpig2; +extern SoundDesc SA_zpig3; +extern SoundDesc SA_zpig4; +extern SoundDesc SA_zpigangry1; +extern SoundDesc SA_zpigangry2; +extern SoundDesc SA_zpigangry3; +extern SoundDesc SA_zpigangry4; +extern SoundDesc SA_zpigdeath; +extern SoundDesc SA_zpighurt1; +extern SoundDesc SA_zpighurt2; + +extern SoundDesc SA_bow; +extern SoundDesc SA_bowhit1; +extern SoundDesc SA_bowhit2; +extern SoundDesc SA_bowhit3; +extern SoundDesc SA_bowhit4; +extern SoundDesc SA_fallbig1; +extern SoundDesc SA_fallbig2; +extern SoundDesc SA_fallsmall; +extern SoundDesc SA_skeleton1; +extern SoundDesc SA_skeleton2; +extern SoundDesc SA_skeleton3; +extern SoundDesc SA_skeletondeath; +extern SoundDesc SA_skeletonhurt1; +extern SoundDesc SA_skeletonhurt2; +extern SoundDesc SA_skeletonhurt3; +extern SoundDesc SA_skeletonhurt4; +extern SoundDesc SA_spider1; +extern SoundDesc SA_spider2; +extern SoundDesc SA_spider3; +extern SoundDesc SA_spider4; +extern SoundDesc SA_spiderdeath; + +extern SoundDesc SA_creeper1; +extern SoundDesc SA_creeper2; +extern SoundDesc SA_creeper3; +extern SoundDesc SA_creeper4; +extern SoundDesc SA_creeperdeath; +extern SoundDesc SA_eat1; +extern SoundDesc SA_eat2; +extern SoundDesc SA_eat3; +extern SoundDesc SA_fuse; + +#endif /*!PRE_ANDROID23 && !__APPLE__*/ + + +#endif /*NET_MINECRAFT_CLIENT_SOUND__Sound_H__*/ diff --git a/src/client/sound/SoundEngine.cpp b/src/client/sound/SoundEngine.cpp new file mode 100755 index 0000000..2f5f451 --- /dev/null +++ b/src/client/sound/SoundEngine.cpp @@ -0,0 +1,254 @@ +#include "SoundEngine.h" +#include "../Options.h" +#include "../Minecraft.h" +#include "../../world/entity/Mob.h" + + +SoundEngine::SoundEngine( float maxDistance ) +: idCounter(0), + mc(0), + _x(0), + _y(0), + _z(0), + _yRot(0), + _invMaxDistance(1.0f / maxDistance) +{ + +} + +SoundEngine::~SoundEngine() +{ + +} + +void SoundEngine::init( Minecraft* mc, Options* options ) +{ + this->mc = mc; + this->options = options; + + if (/*!loaded && */(options == NULL || (options->sound != 0 || options->music != 0))) { + loadLibrary(); + } + +#if !defined(PRE_ANDROID23) && !defined(__APPLE__) && !defined(RPI) + sounds.add("step.cloth", SA_cloth1); + sounds.add("step.cloth", SA_cloth2); + sounds.add("step.cloth", SA_cloth3); + sounds.add("step.cloth", SA_cloth4); + sounds.add("step.grass", SA_grass1); + sounds.add("step.grass", SA_grass2); + sounds.add("step.grass", SA_grass3); + sounds.add("step.grass", SA_grass4); + sounds.add("step.gravel", SA_gravel1); + sounds.add("step.gravel", SA_gravel2); + sounds.add("step.gravel", SA_gravel3); + sounds.add("step.gravel", SA_gravel4); + sounds.add("step.sand", SA_sand1); + sounds.add("step.sand", SA_sand2); + sounds.add("step.sand", SA_sand3); + sounds.add("step.sand", SA_sand4); + sounds.add("step.stone", SA_stone1); + sounds.add("step.stone", SA_stone2); + sounds.add("step.stone", SA_stone3); + sounds.add("step.stone", SA_stone4); + sounds.add("step.wood", SA_wood1); + sounds.add("step.wood", SA_wood2); + sounds.add("step.wood", SA_wood3); + sounds.add("step.wood", SA_wood4); + + sounds.add("random.splash", SA_splash); + sounds.add("random.explode", SA_explode); + sounds.add("random.click", SA_click); + + sounds.add("random.door_open", SA_door_open); + sounds.add("random.door_close", SA_door_close); + sounds.add("random.pop", SA_pop); + sounds.add("random.pop2", SA_pop2); + sounds.add("random.hurt", SA_hurt); + sounds.add("random.glass", SA_glass1); + sounds.add("random.glass", SA_glass2); + sounds.add("random.glass", SA_glass3); + + sounds.add("mob.sheep", SA_sheep1); + sounds.add("mob.sheep", SA_sheep2); + sounds.add("mob.sheep", SA_sheep3); + sounds.add("mob.pig", SA_pig1); + sounds.add("mob.pig", SA_pig2); + sounds.add("mob.pig", SA_pig3); + sounds.add("mob.pigdeath", SA_pigdeath); + + sounds.add("mob.cow", SA_cow1); + sounds.add("mob.cow", SA_cow2); + sounds.add("mob.cow", SA_cow3); + sounds.add("mob.cow", SA_cow4); + sounds.add("mob.cowhurt", SA_cowhurt1); + sounds.add("mob.cowhurt", SA_cowhurt2); + sounds.add("mob.cowhurt", SA_cowhurt3); + + sounds.add("mob.chicken", SA_chicken2); + sounds.add("mob.chicken", SA_chicken3); + sounds.add("mob.chickenhurt", SA_chickenhurt1); + sounds.add("mob.chickenhurt", SA_chickenhurt2); + + sounds.add("mob.zombie", SA_zombie1); + sounds.add("mob.zombie", SA_zombie2); + sounds.add("mob.zombie", SA_zombie3); + sounds.add("mob.zombiedeath", SA_zombiedeath); + sounds.add("mob.zombiehurt", SA_zombiehurt1); + sounds.add("mob.zombiehurt", SA_zombiehurt2); + + sounds.add("mob.skeleton", SA_skeleton1); + sounds.add("mob.skeleton", SA_skeleton2); + sounds.add("mob.skeleton", SA_skeleton3); + sounds.add("mob.skeletonhurt", SA_skeletonhurt1); + sounds.add("mob.skeletonhurt", SA_skeletonhurt2); + sounds.add("mob.skeletonhurt", SA_skeletonhurt3); + sounds.add("mob.skeletonhurt", SA_skeletonhurt4); + + sounds.add("mob.spider", SA_spider1); + sounds.add("mob.spider", SA_spider2); + sounds.add("mob.spider", SA_spider3); + sounds.add("mob.spider", SA_spider4); + sounds.add("mob.spiderdeath", SA_spiderdeath); + + sounds.add("mob.zombiepig.zpig", SA_zpig1); + sounds.add("mob.zombiepig.zpig", SA_zpig2); + sounds.add("mob.zombiepig.zpig", SA_zpig3); + sounds.add("mob.zombiepig.zpig", SA_zpig4); + sounds.add("mob.zombiepig.zpigangry", SA_zpigangry1); + sounds.add("mob.zombiepig.zpigangry", SA_zpigangry2); + sounds.add("mob.zombiepig.zpigangry", SA_zpigangry3); + sounds.add("mob.zombiepig.zpigangry", SA_zpigangry4); + sounds.add("mob.zombiepig.zpigdeath", SA_zpigdeath); + sounds.add("mob.zombiepig.zpighurt", SA_zpighurt1); + sounds.add("mob.zombiepig.zpighurt", SA_zpighurt2); + + sounds.add("damage.fallbig", SA_fallbig1); + sounds.add("damage.fallbig", SA_fallbig2); + sounds.add("damage.fallsmall", SA_fallsmall); + + sounds.add("random.bow", SA_bow); + sounds.add("random.bowhit", SA_bowhit1); + sounds.add("random.bowhit", SA_bowhit2); + sounds.add("random.bowhit", SA_bowhit3); + sounds.add("random.bowhit", SA_bowhit4); + + sounds.add("mob.creeper", SA_creeper1); + sounds.add("mob.creeper", SA_creeper2); + sounds.add("mob.creeper", SA_creeper3); + sounds.add("mob.creeper", SA_creeper4); + sounds.add("mob.creeperdeath", SA_creeperdeath); + sounds.add("random.eat", SA_eat1); + sounds.add("random.eat", SA_eat2); + sounds.add("random.eat", SA_eat3); + sounds.add("random.fuse", SA_fuse); + +#endif +} + +void SoundEngine::enable( bool status ) +{ +#if defined(__APPLE__) + soundSystem.enable(status); +#endif +} + +void SoundEngine::updateOptions() +{ + +} + +void SoundEngine::destroy() +{ + //if (loaded) soundSystem.cleanup(); +} + +void SoundEngine::update( Mob* player, float a ) +{ + if (/*!loaded || */options->sound == 0) return; + if (player == NULL) return; + + _x = player->xo + (player->x - player->xo) * a; + _y = player->yo + (player->y - player->yo) * a; + _z = player->zo + (player->z - player->zo) * a; + _yRot = player->yRotO + (player->yRot - player->yRotO) * a; + + soundSystem.setListenerAngle(_yRot); + //soundSystem.setListenerPos(_x, _y, _z); //@note: not used, since we translate all sounds to Player space +} + +float SoundEngine::_getVolumeMult( float x, float y, float z ) +{ + const float dx = x - _x; + const float dy = y - _y; + const float dz = z - _z; + const float dist = Mth::sqrt(dx*dx + dy*dy + dz*dz); + const float out = Mth::clamp(1.1f - dist*_invMaxDistance, -1.0f, 1.0f); + return out; +} + +#if defined(PRE_ANDROID23) +void SoundEngine::play(const std::string& name, float x, float y, float z, float volume, float pitch) { + //volume *= (2.0f * _getVolumeMult(x, y, z)) + if ((volume *= options->sound) <= 0) return; + + volume *= _getVolumeMult(x, y, z); + mc->platform()->playSound(name, volume, pitch); +} +void SoundEngine::playUI(const std::string& name, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + //volume *= 2.0f; + mc->platform()->playSound(name, volume, pitch); +} +#elif defined(__APPLE__) +void SoundEngine::play(const std::string& name, float x, float y, float z, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + volume = Mth::clamp(volume, 0.0f, 1.0f); + + SoundDesc sound; + if (sounds.get(name, sound)) { + soundSystem.playAt(sound, x-_x, y-_y, z-_z, volume, pitch); + } +} +void SoundEngine::playUI(const std::string& name, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + volume = Mth::clamp(volume, 0.0f, 1.0f); + if (/*!loaded || */options->sound == 0 || volume <= 0) return; + + SoundDesc sound; + if (sounds.get(name, sound)) { + soundSystem.playAt(sound, 0, 0, 0, volume, pitch); + } +} +#elif defined(RPI) +void SoundEngine::play(const std::string& name, float x, float y, float z, float volume, float pitch) {} +void SoundEngine::playUI(const std::string& name, float volume, float pitch) {} +#else +void SoundEngine::play(const std::string& name, float x, float y, float z, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + volume = Mth::clamp( volume * _getVolumeMult(x, y, z), 0.0f, 1.0f); + if (/*!loaded || */options->sound == 0 || volume <= 0) return; + + SoundDesc sound; + if (sounds.get(name, sound)) { + float dist = SOUND_DISTANCE; + if (volume > 1) dist *= volume; + soundSystem.playAt(sound, x, y, z, volume, pitch); + } +} +void SoundEngine::playUI(const std::string& name, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + volume = Mth::clamp(volume, 0.0f, 1.0f); + if (/*!loaded || */options->sound == 0 || volume <= 0) return; + + SoundDesc sound; + if (sounds.get(name, sound)) { + soundSystem.playAt(sound, 0, 0, 0, volume, pitch); + } +} +#endif diff --git a/src/client/sound/SoundEngine.h b/src/client/sound/SoundEngine.h new file mode 100755 index 0000000..21dd20a --- /dev/null +++ b/src/client/sound/SoundEngine.h @@ -0,0 +1,68 @@ +#ifndef NET_MINECRAFT_CLIENT_SOUND__SoundEngine_H__ +#define NET_MINECRAFT_CLIENT_SOUND__SoundEngine_H__ + +//package net.minecraft.client.sound; + +#if defined(ANDROID) && !defined(PRE_ANDROID23) + #include "../../platform/audio/SoundSystemSL.h" +#elif defined(__APPLE__) + #include "../../platform/audio/SoundSystemAL.h" +#else + #include "../../platform/audio/SoundSystem.h" +#endif +#include "SoundRepository.h" +#include "../../util/Random.h" + +class Minecraft; +class Mob; +class Options; + +class SoundEngine +{ + static const int SOUND_DISTANCE = 16; + + #if defined(ANDROID) && !defined(PRE_ANDROID23) && !defined(RPI) + SoundSystemSL soundSystem; + #elif defined(__APPLE__) + SoundSystemAL soundSystem; + #else + SoundSystem soundSystem; + #endif + + Options* options; + int idCounter; + //static bool loaded; + Random random; + //int noMusicDelay = random.nextInt(20 * 60 * 10); + float _x; + float _y; + float _z; + float _yRot; + float _invMaxDistance; + +public: + SoundEngine(float maxDistance); + + ~SoundEngine(); + + void init(Minecraft* mc, Options* options); + void destroy(); + + void enable(bool status); + + void updateOptions(); + void update(Mob* player, float a); + + void play(const std::string& name, float x, float y, float z, float volume, float pitch); + void playUI(const std::string& name, float volume, float pitch); + + float _getVolumeMult(float x, float y, float z); +private: + void loadLibrary() {} + SoundDesc _pp(const std::string& fn); + + SoundRepository sounds; + Minecraft* mc; +}; + +#endif /*NET_MINECRAFT_CLIENT_SOUND__SoundEngine_H__*/ diff --git a/src/client/sound/SoundEngine.mm b/src/client/sound/SoundEngine.mm new file mode 100755 index 0000000..c135d15 --- /dev/null +++ b/src/client/sound/SoundEngine.mm @@ -0,0 +1,385 @@ +#include "SoundEngine.h" +#include "../Options.h" +#include "../Minecraft.h" +#include "../../world/entity/Mob.h" + +/* + + File: MyOpenALSupport.c + Abstract: OpenAL-related support functions + Version: 1.4 + + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple + Inc. ("Apple") in consideration of your agreement to the following + terms, and your use, installation, modification or redistribution of + this Apple software constitutes acceptance of these terms. If you do + not agree with these terms, please do not use, install, modify or + redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and + subject to these terms, Apple grants you a personal, non-exclusive + license, under Apple's copyrights in this original Apple software (the + "Apple Software"), to use, reproduce, modify and redistribute the Apple + Software, with or without modifications, in source and/or binary forms; + provided that if you redistribute the Apple Software in its entirety and + without modifications, you must retain this notice and the following + text and disclaimers in all such redistributions of the Apple Software. + Neither the name, trademarks, service marks or logos of Apple Inc. may + be used to endorse or promote products derived from the Apple Software + without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or + implied, are granted by Apple herein, including but not limited to any + patent rights that may be infringed by your derivative works or by other + works in which the Apple Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE + MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION + THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND + OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, + MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED + AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), + STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + Copyright (C) 2009 Apple Inc. All Rights Reserved. + + + */ + +#import +#import +#import +#import + + +//ALvoid alBufferDataStaticProc(const ALint bid, ALenum format, ALvoid* data, ALsizei size, ALsizei freq) +//{ +// static alBufferDataStaticProcPtr proc = NULL; +// +// if (proc == NULL) { +// proc = (alBufferDataStaticProcPtr) alcGetProcAddress(NULL, (const ALCchar*) "alBufferDataStatic"); +// } +// +// if (proc) +// proc(bid, format, data, size, freq); +// +// return; +//} + +void* MyGetOpenALAudioData(CFURLRef inFileURL, ALsizei *outDataSize, ALenum *outDataFormat, ALsizei* outSampleRate) +{ + OSStatus err = noErr; + SInt64 theFileLengthInFrames = 0; + AudioStreamBasicDescription theFileFormat; + UInt32 thePropertySize = sizeof(theFileFormat); + ExtAudioFileRef extRef = NULL; + void* theData = NULL; + AudioStreamBasicDescription theOutputFormat; + + do { + // Open a file with ExtAudioFileOpen() + err = ExtAudioFileOpenURL(inFileURL, &extRef); + if(err) { printf("MyGetOpenALAudioData: ExtAudioFileOpenURL FAILED, Error = %ld\n", err); break; } + + // Get the audio data format + err = ExtAudioFileGetProperty(extRef, kExtAudioFileProperty_FileDataFormat, &thePropertySize, &theFileFormat); + if(err) { printf("MyGetOpenALAudioData: ExtAudioFileGetProperty(kExtAudioFileProperty_FileDataFormat) FAILED, Error = %ld\n", err); break; } + if (theFileFormat.mChannelsPerFrame > 2) { printf("MyGetOpenALAudioData - Unsupported Format, channel count is greater than stereo\n"); break;} + + // Set the client format to 16 bit signed integer (native-endian) data + // Maintain the channel count and sample rate of the original source format + theOutputFormat.mSampleRate = theFileFormat.mSampleRate; + theOutputFormat.mChannelsPerFrame = theFileFormat.mChannelsPerFrame; + + theOutputFormat.mFormatID = kAudioFormatLinearPCM; + theOutputFormat.mBytesPerPacket = 2 * theOutputFormat.mChannelsPerFrame; + theOutputFormat.mFramesPerPacket = 1; + theOutputFormat.mBytesPerFrame = 2 * theOutputFormat.mChannelsPerFrame; + theOutputFormat.mBitsPerChannel = 16; + theOutputFormat.mFormatFlags = kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger; + + // Set the desired client (output) data format + err = ExtAudioFileSetProperty(extRef, kExtAudioFileProperty_ClientDataFormat, sizeof(theOutputFormat), &theOutputFormat); + if(err) { printf("MyGetOpenALAudioData: ExtAudioFileSetProperty(kExtAudioFileProperty_ClientDataFormat) FAILED, Error = %ld\n", err); break; } + + // Get the total frame count + thePropertySize = sizeof(theFileLengthInFrames); + err = ExtAudioFileGetProperty(extRef, kExtAudioFileProperty_FileLengthFrames, &thePropertySize, &theFileLengthInFrames); + if(err) { printf("MyGetOpenALAudioData: ExtAudioFileGetProperty(kExtAudioFileProperty_FileLengthFrames) FAILED, Error = %ld\n", err); break; } + + // Read all the data into memory + UInt32 dataSize = theFileLengthInFrames * theOutputFormat.mBytesPerFrame; + theData = (void*)new char[dataSize]; + if (theData) + { + AudioBufferList theDataBuffer; + theDataBuffer.mNumberBuffers = 1; + theDataBuffer.mBuffers[0].mDataByteSize = dataSize; + theDataBuffer.mBuffers[0].mNumberChannels = theOutputFormat.mChannelsPerFrame; + theDataBuffer.mBuffers[0].mData = theData; + + // Read the data into an AudioBufferList + err = ExtAudioFileRead(extRef, (UInt32*)&theFileLengthInFrames, &theDataBuffer); + if(err == noErr) + { + // success + *outDataSize = (ALsizei)dataSize; + *outDataFormat = (theOutputFormat.mChannelsPerFrame > 1) ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16; + *outSampleRate = (ALsizei)theOutputFormat.mSampleRate; + } + else + { + // failure + free (theData); + theData = NULL; // make sure to return NULL + printf("MyGetOpenALAudioData: ExtAudioFileRead FAILED, Error = %ld\n", err); break; + } + } + } while(0); + + // Dispose the ExtAudioFileRef, it is no longer needed + if (extRef) ExtAudioFileDispose(extRef); + return theData; +} + + + +SoundEngine::SoundEngine( float maxDistance ) +: idCounter(0), + mc(0), + _x(0), + _y(0), + _z(0), + _yRot(0), + _invMaxDistance(1.0f / maxDistance) +{ +} + +SoundEngine::~SoundEngine() +{ +} + +SoundDesc SoundEngine::_pp(const std::string& fn) { + NSString* filename = [[NSString alloc] initWithUTF8String:fn.c_str()]; + NSString* path = [[NSBundle mainBundle] pathForResource:filename ofType:@"m4a"]; + [filename release]; + if (!path) + return SoundDesc(); + + CFURLRef fileURL = (CFURLRef)[[NSURL fileURLWithPath:path] retain]; + if (fileURL) { + static Stopwatch sw; + sw.start(); + + ALsizei size, freq; + ALenum format; + void* data = MyGetOpenALAudioData(fileURL, &size, &format, &freq); + + + CFRelease(fileURL); + sw.stop(); + sw.printEvery(1, "load sound " + fn + " :: "); + int channels = (format == AL_FORMAT_STEREO16 || format == AL_FORMAT_STEREO8)? 2 : 1; + int bytewidth= (format == AL_FORMAT_STEREO16 || format == AL_FORMAT_MONO16)? 2 : 1; + + return SoundDesc((char*)data, size, channels, bytewidth, freq); + } + return SoundDesc(); +} + +void SoundEngine::init( Minecraft* mc, Options* options ) +{ + this->mc = mc; + this->options = options; + + if (/*!loaded && */(options == NULL || (options->sound != 0 || options->music != 0))) { + loadLibrary(); + } + + sounds.add( "damage.fallbig", _pp("fallbig1")); + sounds.add( "damage.fallbig", _pp("fallbig2")); + sounds.add( "damage.fallsmall", _pp("fallsmall")); + sounds.add( "random.explode", _pp("explode")); + sounds.add( "random.splash", _pp("splash")); + sounds.add( "random.hurt", _pp("hurt")); + sounds.add( "random.pop", _pp("pop")); + sounds.add( "random.click", _pp("click")); + + sounds.add( "random.door_open", _pp("door_open")); + sounds.add( "random.door_close", _pp("door_close")); + + sounds.add( "random.bow", _pp("bow")); + sounds.add( "random.bowhit", _pp("bowhit1")); + sounds.add( "random.bowhit", _pp("bowhit2")); + sounds.add( "random.bowhit", _pp("bowhit3")); + sounds.add( "random.bowhit", _pp("bowhit4")); + + sounds.add( "random.glass", _pp("glass1")); + sounds.add( "random.glass", _pp("glass2")); + sounds.add( "random.glass", _pp("glass3")); + + sounds.add( "random.eat", _pp("eat1")); + sounds.add( "random.eat", _pp("eat2")); + sounds.add( "random.eat", _pp("eat3")); + sounds.add( "random.fuse", _pp("fuse")); + + sounds.add( "step.cloth", _pp("cloth1")); + sounds.add( "step.cloth", _pp("cloth2")); + sounds.add( "step.cloth", _pp("cloth3")); + sounds.add( "step.cloth", _pp("cloth4")); + + sounds.add( "step.grass", _pp("grass1")); + sounds.add( "step.grass", _pp("grass2")); + sounds.add( "step.grass", _pp("grass3")); + sounds.add( "step.grass", _pp("grass4")); + + //new SoundId(R.raw.gravel1, _pp("step.gravel"), + sounds.add( "step.gravel", _pp("gravel2")); + sounds.add( "step.gravel", _pp("gravel3")); + sounds.add( "step.gravel", _pp("gravel4")); + + sounds.add( "step.sand", _pp("sand1")); + sounds.add( "step.sand", _pp("sand2")); + sounds.add( "step.sand", _pp("sand3")); + sounds.add( "step.sand", _pp("sand4")); + + sounds.add( "step.stone", _pp("stone1")); + sounds.add( "step.stone", _pp("stone2")); + sounds.add( "step.stone", _pp("stone3")); + sounds.add( "step.stone", _pp("stone4")); + + sounds.add( "step.wood", _pp("wood1")); + sounds.add( "step.wood", _pp("wood2")); + sounds.add( "step.wood", _pp("wood3")); + sounds.add( "step.wood", _pp("wood4")); + + sounds.add( "mob.sheep", _pp("sheep1")); + sounds.add( "mob.sheep", _pp("sheep2")); + sounds.add( "mob.sheep", _pp("sheep3")); + + sounds.add( "mob.pig", _pp("pig1")); + sounds.add( "mob.pig", _pp("pig2")); + sounds.add( "mob.pig", _pp("pig3")); + sounds.add( "mob.pigdeath", _pp("pigdeath")); + + //sounds.add( "mob.chicken", _pp("chicken1")); + sounds.add( "mob.chicken", _pp("chicken2")); + sounds.add( "mob.chicken", _pp("chicken3")); + sounds.add( "mob.chickenhurt", _pp("chickenhurt1")); + sounds.add( "mob.chickenhurt", _pp("chickenhurt2")); + + sounds.add( "mob.cow", _pp("cow1")); + sounds.add( "mob.cow", _pp("cow2")); + sounds.add( "mob.cow", _pp("cow3")); + sounds.add( "mob.cow", _pp("cow4")); + sounds.add( "mob.cowhurt", _pp("cowhurt1")); + sounds.add( "mob.cowhurt", _pp("cowhurt2")); + sounds.add( "mob.cowhurt", _pp("cowhurt3")); + + sounds.add( "mob.zombie", _pp("zombie1")); + sounds.add( "mob.zombie", _pp("zombie2")); + sounds.add( "mob.zombie", _pp("zombie3")); + sounds.add( "mob.zombiedeath", _pp("zombiedeath")); + sounds.add( "mob.zombiehurt", _pp("zombiehurt1")); + sounds.add( "mob.zombiehurt", _pp("zombiehurt2")); + + sounds.add( "mob.skeleton", _pp("skeleton1")); + sounds.add( "mob.skeleton", _pp("skeleton2")); + sounds.add( "mob.skeleton", _pp("skeleton3")); + sounds.add( "mob.skeletonhurt", _pp("skeletonhurt1")); + sounds.add( "mob.skeletonhurt", _pp("skeletonhurt2")); + sounds.add( "mob.skeletonhurt", _pp("skeletonhurt3")); + sounds.add( "mob.skeletonhurt", _pp("skeletonhurt4")); + + sounds.add( "mob.spider", _pp("spider1")); + sounds.add( "mob.spider", _pp("spider2")); + sounds.add( "mob.spider", _pp("spider3")); + sounds.add( "mob.spiderdeath", _pp("spiderdeath")); + + sounds.add( "mob.creeper", _pp("creeper1")); + sounds.add( "mob.creeper", _pp("creeper2")); + sounds.add( "mob.creeper", _pp("creeper3")); + sounds.add( "mob.creeper", _pp("creeper4")); + sounds.add( "mob.creeperdeath", _pp("creeperdeath")); + + sounds.add( "mob.zombiepig.zpig", _pp("zpig1")); + sounds.add( "mob.zombiepig.zpig", _pp("zpig2")); + sounds.add( "mob.zombiepig.zpig", _pp("zpig3")); + sounds.add( "mob.zombiepig.zpig", _pp("zpig4")); + sounds.add( "mob.zombiepig.zpigangry", _pp("zpigangry1")); + sounds.add( "mob.zombiepig.zpigangry", _pp("zpigangry2")); + sounds.add( "mob.zombiepig.zpigangry", _pp("zpigangry3")); + sounds.add( "mob.zombiepig.zpigangry", _pp("zpigangry4")); + sounds.add( "mob.zombiepig.zpigdeath", _pp("zpigdeath")); + sounds.add( "mob.zombiepig.zpighurt", _pp("zpighurt1")); + sounds.add( "mob.zombiepig.zpighurt", _pp("zpighurt2")); +} + +void SoundEngine::enable( bool status ) +{ + soundSystem.enable(status); +} + +void SoundEngine::updateOptions() +{ + +} + +void SoundEngine::destroy() +{ + //if (loaded) soundSystem.cleanup(); +} + +void SoundEngine::update( Mob* player, float a ) +{ + if (/*!loaded || */options->sound == 0) return; + if (player == NULL) return; + + _x = player->xo + (player->x - player->xo) * a; + _y = player->yo + (player->y - player->yo) * a; + _z = player->zo + (player->z - player->zo) * a; + _yRot = player->yRotO + (player->yRot - player->yRotO) * a; + + soundSystem.setListenerAngle(_yRot); + //soundSystem.setListenerPos(_x, _y, _z); //@note: not used, since we translate all sounds to Player space +} + +float SoundEngine::_getVolumeMult( float x, float y, float z ) +{ + const float dx = x - _x; + const float dy = y - _y; + const float dz = z - _z; + const float dist = Mth::sqrt(dx*dx + dy*dy + dz*dz); + const float out = Mth::clamp(1.1f - dist*_invMaxDistance, -1.0f, 1.0f); + return out; +} + +void SoundEngine::play(const std::string& name, float x, float y, float z, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + volume = Mth::clamp(volume, 0.0f, 1.0f); + + SoundDesc sound; + if (sounds.get(name, sound)) { + soundSystem.playAt(sound, x-_x, y-_y, z-_z, volume, pitch); + } +} + +void SoundEngine::playUI(const std::string& name, float volume, float pitch) { + if ((volume *= options->sound) <= 0) return; + + volume = Mth::clamp(volume, 0.0f, 1.0f); + if (/*!loaded || */options->sound == 0 || volume <= 0) return; + + SoundDesc sound; + if (sounds.get(name, sound)) { + soundSystem.playAt(sound, 0, 0, 0, volume, pitch); + } +} + diff --git a/src/client/sound/SoundRepository.h b/src/client/sound/SoundRepository.h new file mode 100755 index 0000000..6c2b382 --- /dev/null +++ b/src/client/sound/SoundRepository.h @@ -0,0 +1,59 @@ +#ifndef NET_MINECRAFT_CLIENT_SOUND__SoundRepository_H__ +#define NET_MINECRAFT_CLIENT_SOUND__SoundRepository_H__ + +#include +#include +#include "Sound.h" +#include "../../util/Mth.h" +#include "../../platform/log.h" + +class SoundRepository +{ + typedef std::vector SoundList; + typedef std::map SoundMap; + +public: + ~SoundRepository() { +#ifdef __APPLE__ + SoundMap::iterator it = map.begin(); + for (; it != map.end(); ++it) { + SoundList& list = it->second; + for (unsigned int j = 0; j < list.size(); ++j) + list[j].destroy(); + } +#endif + } + + bool get(const std::string& name, SoundDesc& sound) { + SoundMap::iterator it = map.find(name); + if (it == map.end()) { + LOGI("Couldn't find a sound with id: %s\n", name.c_str()); + return false; + } + sound = it->second[Mth::random(it->second.size())]; + return true; + } + + void add(const std::string& name, const SoundDesc& sound) { + if (!sound.isValid()) return; + SoundMap::iterator it = map.find(name); + if (it == map.end()) { + SoundList list; + list.push_back( sound ); + map.insert( make_pair(name, list) ); + } else { + it->second.push_back(sound); + } + } + + void add(const std::string& name, SoundDesc& sound) { + if (!sound.isValid()) return; + add(name, const_cast(sound)); + sound.name = name; + } + +private: + SoundMap map; +}; + +#endif /*NET_MINECRAFT_CLIENT_SOUND__SoundRepository_H__*/ diff --git a/src/client/sound/data/bow.pcm b/src/client/sound/data/bow.pcm new file mode 100755 index 0000000..e7fc5fd --- /dev/null +++ b/src/client/sound/data/bow.pcm @@ -0,0 +1,1257 @@ +unsigned char PCM_bow[40156] = { +1,0,0,0,2,0,0,0,68,172,0,0,102,78,0,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0, +2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0, +3,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0, +2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,5,0, +6,0,5,0,4,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0,2,0,1,0, +1,0,2,0,2,0,0,0,254,255,254,255,255,255,1,0,2,0,2,0,1,0,0,0,1,0,3,0,4,0,3,0, +1,0,1,0,1,0,2,0,2,0,2,0,2,0,0,0,255,255,255,255,1,0,1,0,255,255,253,255,253,255,253,255, +253,255,253,255,252,255,252,255,253,255,255,255,254,255,254,255,253,255,253,255,255,255,3,0,1,0,254,255,254,255,1,0, +0,0,254,255,254,255,254,255,254,255,255,255,0,0,0,0,2,0,2,0,254,255,253,255,0,0,3,0,4,0,4,0, +5,0,5,0,5,0,5,0,5,0,4,0,2,0,1,0,4,0,7,0,6,0,5,0,7,0,8,0,8,0,10,0, +11,0,12,0,12,0,13,0,11,0,10,0,9,0,7,0,7,0,8,0,8,0,8,0,9,0,9,0,9,0,9,0, +8,0,8,0,9,0,9,0,8,0,7,0,9,0,11,0,10,0,8,0,7,0,9,0,10,0,9,0,9,0,10,0, +11,0,12,0,13,0,13,0,13,0,12,0,12,0,13,0,13,0,14,0,14,0,13,0,12,0,12,0,13,0,12,0, +10,0,10,0,12,0,12,0,12,0,13,0,12,0,9,0,10,0,12,0,12,0,10,0,11,0,12,0,12,0,13,0, +13,0,13,0,16,0,18,0,17,0,14,0,14,0,14,0,14,0,15,0,16,0,14,0,12,0,12,0,14,0,16,0, +17,0,18,0,21,0,23,0,24,0,24,0,24,0,25,0,28,0,31,0,30,0,29,0,28,0,27,0,25,0,25,0, +26,0,24,0,22,0,22,0,22,0,23,0,23,0,21,0,19,0,19,0,20,0,18,0,16,0,17,0,17,0,16,0, +15,0,13,0,10,0,8,0,9,0,11,0,10,0,9,0,10,0,10,0,9,0,8,0,9,0,13,0,15,0,16,0, +17,0,15,0,13,0,12,0,12,0,11,0,13,0,14,0,12,0,10,0,10,0,11,0,12,0,13,0,11,0,8,0, +10,0,13,0,13,0,11,0,11,0,8,0,6,0,7,0,7,0,5,0,5,0,7,0,6,0,3,0,5,0,7,0, +7,0,5,0,4,0,2,0,1,0,1,0,1,0,2,0,4,0,3,0,2,0,1,0,0,0,0,0,255,255,1,0, +3,0,5,0,4,0,4,0,5,0,6,0,3,0,1,0,1,0,255,255,252,255,252,255,253,255,253,255,251,255,251,255, +250,255,248,255,248,255,251,255,252,255,252,255,253,255,252,255,252,255,253,255,254,255,253,255,251,255,248,255,245,255,240,255, +238,255,239,255,239,255,237,255,235,255,234,255,234,255,232,255,230,255,229,255,230,255,231,255,229,255,225,255,221,255,219,255, +219,255,219,255,218,255,218,255,217,255,216,255,216,255,217,255,215,255,212,255,209,255,205,255,203,255,204,255,205,255,203,255, +201,255,202,255,203,255,205,255,208,255,210,255,211,255,212,255,215,255,214,255,211,255,209,255,209,255,208,255,209,255,210,255, +210,255,210,255,211,255,214,255,215,255,212,255,209,255,209,255,209,255,207,255,205,255,204,255,203,255,202,255,201,255,201,255, +201,255,199,255,196,255,192,255,190,255,191,255,192,255,194,255,194,255,191,255,188,255,187,255,188,255,189,255,188,255,188,255, +188,255,190,255,191,255,190,255,190,255,192,255,193,255,190,255,187,255,187,255,189,255,190,255,189,255,188,255,190,255,194,255, +194,255,190,255,189,255,190,255,188,255,186,255,186,255,187,255,189,255,192,255,194,255,193,255,192,255,194,255,198,255,199,255, +197,255,194,255,195,255,200,255,204,255,204,255,200,255,196,255,194,255,195,255,198,255,198,255,196,255,194,255,192,255,189,255, +189,255,191,255,192,255,190,255,189,255,192,255,196,255,199,255,202,255,208,255,214,255,214,255,211,255,212,255,217,255,220,255, +221,255,223,255,225,255,227,255,229,255,230,255,228,255,230,255,236,255,241,255,245,255,247,255,243,255,238,255,237,255,241,255, +244,255,245,255,243,255,238,255,240,255,245,255,243,255,244,255,253,255,1,0,250,255,250,255,4,0,9,0,5,0,4,0, +9,0,11,0,12,0,13,0,15,0,17,0,19,0,19,0,18,0,17,0,18,0,20,0,24,0,27,0,28,0,26,0, +25,0,28,0,30,0,24,0,20,0,24,0,30,0,31,0,34,0,42,0,48,0,50,0,47,0,40,0,39,0,40,0, +32,0,24,0,31,0,42,0,39,0,28,0,24,0,28,0,35,0,40,0,38,0,33,0,31,0,36,0,42,0,43,0, +40,0,38,0,44,0,54,0,59,0,61,0,61,0,62,0,64,0,64,0,63,0,65,0,67,0,66,0,63,0,65,0, +69,0,73,0,78,0,82,0,85,0,86,0,86,0,83,0,81,0,82,0,82,0,81,0,83,0,85,0,86,0,88,0, +89,0,88,0,86,0,87,0,88,0,87,0,83,0,79,0,77,0,76,0,75,0,73,0,72,0,72,0,71,0,69,0, +68,0,68,0,67,0,68,0,71,0,72,0,70,0,70,0,74,0,77,0,76,0,74,0,75,0,75,0,75,0,76,0, +74,0,75,0,83,0,89,0,86,0,82,0,84,0,89,0,92,0,93,0,94,0,99,0,106,0,111,0,114,0,116,0, +115,0,116,0,120,0,120,0,116,0,114,0,118,0,123,0,125,0,126,0,126,0,126,0,128,0,129,0,126,0,126,0, +130,0,134,0,135,0,134,0,131,0,128,0,127,0,126,0,124,0,125,0,126,0,122,0,115,0,113,0,112,0,110,0, +107,0,105,0,102,0,100,0,100,0,101,0,100,0,97,0,93,0,91,0,89,0,84,0,77,0,71,0,64,0,57,0, +54,0,52,0,52,0,54,0,55,0,48,0,39,0,38,0,41,0,41,0,38,0,35,0,36,0,40,0,44,0,42,0, +39,0,37,0,35,0,32,0,31,0,35,0,39,0,41,0,41,0,39,0,38,0,40,0,43,0,45,0,41,0,34,0, +33,0,38,0,43,0,42,0,38,0,35,0,38,0,43,0,46,0,44,0,42,0,41,0,39,0,40,0,45,0,46,0, +41,0,38,0,39,0,43,0,46,0,44,0,41,0,45,0,54,0,56,0,51,0,47,0,45,0,41,0,39,0,37,0, +32,0,27,0,25,0,22,0,17,0,12,0,11,0,11,0,9,0,9,0,9,0,7,0,5,0,6,0,4,0,255,255, +251,255,250,255,247,255,237,255,229,255,227,255,227,255,225,255,223,255,219,255,214,255,210,255,207,255,204,255,202,255,204,255, +211,255,220,255,225,255,227,255,227,255,226,255,223,255,225,255,232,255,234,255,228,255,222,255,222,255,224,255,220,255,216,255, +218,255,221,255,218,255,217,255,222,255,222,255,213,255,206,255,205,255,199,255,187,255,181,255,181,255,180,255,175,255,166,255, +156,255,153,255,157,255,160,255,158,255,155,255,157,255,164,255,168,255,167,255,170,255,174,255,166,255,154,255,158,255,169,255, +160,255,140,255,129,255,125,255,120,255,120,255,126,255,126,255,123,255,128,255,139,255,149,255,152,255,149,255,149,255,158,255, +166,255,166,255,163,255,165,255,167,255,165,255,166,255,174,255,182,255,183,255,182,255,182,255,182,255,180,255,176,255,170,255, +166,255,169,255,171,255,160,255,149,255,153,255,161,255,157,255,148,255,146,255,147,255,147,255,153,255,162,255,164,255,163,255, +171,255,186,255,197,255,202,255,205,255,211,255,218,255,221,255,220,255,217,255,216,255,220,255,227,255,232,255,234,255,235,255, +237,255,239,255,237,255,230,255,224,255,221,255,219,255,216,255,216,255,217,255,214,255,213,255,214,255,212,255,202,255,198,255, +203,255,204,255,197,255,191,255,189,255,185,255,180,255,179,255,179,255,169,255,155,255,146,255,141,255,134,255,128,255,126,255, +123,255,117,255,116,255,119,255,115,255,103,255,94,255,91,255,90,255,91,255,96,255,100,255,99,255,95,255,91,255,92,255, +99,255,108,255,115,255,122,255,130,255,134,255,137,255,146,255,157,255,163,255,168,255,174,255,176,255,175,255,175,255,174,255, +172,255,176,255,185,255,190,255,191,255,192,255,189,255,184,255,187,255,197,255,198,255,192,255,187,255,180,255,170,255,167,255, +171,255,171,255,164,255,161,255,164,255,168,255,170,255,172,255,170,255,163,255,157,255,153,255,152,255,154,255,160,255,169,255, +183,255,196,255,195,255,183,255,176,255,183,255,196,255,212,255,227,255,230,255,221,255,217,255,224,255,232,255,237,255,243,255, +250,255,254,255,1,0,2,0,253,255,247,255,248,255,254,255,7,0,19,0,27,0,25,0,27,0,40,0,53,0,57,0, +58,0,56,0,47,0,41,0,49,0,59,0,57,0,52,0,56,0,59,0,54,0,47,0,38,0,22,0,6,0,254,255, +247,255,233,255,217,255,207,255,204,255,201,255,191,255,176,255,162,255,155,255,158,255,165,255,165,255,158,255,153,255,158,255, +166,255,173,255,177,255,179,255,182,255,192,255,208,255,210,255,196,255,183,255,181,255,181,255,180,255,188,255,195,255,195,255, +201,255,218,255,223,255,207,255,195,255,197,255,201,255,205,255,218,255,229,255,220,255,207,255,207,255,208,255,201,255,197,255, +198,255,191,255,180,255,184,255,200,255,213,255,222,255,237,255,253,255,10,0,27,0,47,0,55,0,57,0,73,0,107,0, +141,0,162,0,173,0,176,0,179,0,199,0,238,0,16,1,30,1,38,1,52,1,66,1,78,1,94,1,109,1,115,1, +122,1,141,1,159,1,163,1,162,1,163,1,157,1,144,1,137,1,136,1,128,1,113,1,99,1,85,1,73,1,72,1, +84,1,87,1,70,1,47,1,35,1,33,1,38,1,46,1,47,1,38,1,31,1,37,1,42,1,30,1,6,1,234,0, +209,0,189,0,179,0,175,0,169,0,164,0,169,0,177,0,182,0,186,0,191,0,192,0,187,0,178,0,168,0,155,0, +138,0,119,0,96,0,72,0,58,0,61,0,76,0,89,0,93,0,90,0,84,0,79,0,76,0,68,0,51,0,31,0, +17,0,12,0,15,0,23,0,36,0,52,0,70,0,85,0,95,0,100,0,105,0,114,0,127,0,140,0,151,0,160,0, +166,0,169,0,165,0,157,0,153,0,160,0,180,0,206,0,232,0,251,0,5,1,13,1,19,1,20,1,13,1,3,1, +250,0,247,0,249,0,2,1,16,1,29,1,41,1,51,1,57,1,59,1,59,1,59,1,57,1,51,1,43,1,36,1, +27,1,16,1,3,1,243,0,225,0,209,0,197,0,188,0,177,0,164,0,150,0,136,0,122,0,110,0,97,0,82,0, +69,0,59,0,51,0,44,0,38,0,35,0,35,0,40,0,50,0,66,0,87,0,111,0,136,0,159,0,175,0,183,0, +186,0,187,0,187,0,183,0,179,0,180,0,189,0,200,0,208,0,211,0,213,0,214,0,213,0,207,0,197,0,183,0, +162,0,135,0,109,0,89,0,70,0,48,0,30,0,29,0,45,0,62,0,66,0,61,0,57,0,55,0,46,0,28,0, +9,0,252,255,245,255,240,255,237,255,235,255,225,255,204,255,179,255,167,255,169,255,169,255,157,255,146,255,152,255,166,255, +166,255,141,255,107,255,84,255,73,255,66,255,62,255,69,255,88,255,109,255,131,255,154,255,174,255,175,255,155,255,139,255, +147,255,175,255,198,255,208,255,225,255,9,0,55,0,79,0,76,0,69,0,74,0,89,0,106,0,129,0,159,0,188,0, +211,0,235,0,14,1,49,1,65,1,65,1,78,1,121,1,171,1,196,1,195,1,198,1,221,1,248,1,1,2,252,1, +252,1,4,2,9,2,7,2,4,2,252,1,230,1,202,1,191,1,207,1,224,1,218,1,194,1,185,1,201,1,214,1, +199,1,171,1,162,1,178,1,199,1,208,1,210,1,214,1,212,1,200,1,198,1,211,1,224,1,220,1,213,1,233,1, +23,2,63,2,73,2,69,2,89,2,141,2,185,2,192,2,180,2,177,2,175,2,166,2,163,2,163,2,141,2,105,2, +84,2,74,2,40,2,243,1,200,1,172,1,150,1,133,1,109,1,60,1,10,1,247,0,244,0,225,0,199,0,184,0, +167,0,138,0,124,0,133,0,136,0,130,0,145,0,187,0,229,0,255,0,19,1,42,1,80,1,145,1,233,1,59,2, +105,2,118,2,141,2,210,2,44,3,99,3,129,3,187,3,6,4,37,4,25,4,26,4,39,4,13,4,207,3,168,3, +173,3,176,3,145,3,101,3,72,3,42,3,234,2,160,2,135,2,153,2,133,2,53,2,229,1,166,1,74,1,227,0, +185,0,200,0,203,0,176,0,144,0,103,0,40,0,228,255,155,255,86,255,94,255,201,255,37,0,40,0,51,0,144,0, +225,0,229,0,255,0,104,1,200,1,234,1,12,2,74,2,131,2,191,2,20,3,87,3,99,3,101,3,143,3,211,3, +18,4,59,4,62,4,60,4,112,4,205,4,6,5,10,5,13,5,35,5,39,5,242,4,150,4,81,4,103,4,195,4, +204,4,33,4,74,3,241,2,247,2,227,2,166,2,106,2,46,2,237,1,183,1,150,1,122,1,67,1,254,0,244,0, +53,1,100,1,81,1,69,1,124,1,223,1,67,2,145,2,203,2,36,3,184,3,97,4,12,5,205,5,133,6,244,6, +66,7,213,7,191,8,153,9,14,10,73,10,163,10,20,11,84,11,95,11,95,11,74,11,13,11,214,10,204,10,206,10, +172,10,102,10,11,10,148,9,12,9,147,8,45,8,207,7,121,7,37,7,206,6,144,6,120,6,83,6,3,6,172,5, +102,5,32,5,3,5,56,5,118,5,100,5,58,5,88,5,166,5,248,5,101,6,214,6,230,6,174,6,193,6,42,7, +121,7,183,7,14,8,47,8,27,8,80,8,168,8,138,8,58,8,71,8,116,8,111,8,109,8,138,8,177,8,229,8, +1,9,14,9,117,9,21,10,59,10,13,10,63,10,180,10,243,10,5,11,3,11,247,10,33,11,107,11,106,11,46,11, +0,11,204,10,166,10,192,10,207,10,130,10,34,10,234,9,183,9,126,9,56,9,197,8,78,8,254,7,181,7,112,7, +69,7,13,7,178,6,101,6,47,6,235,5,152,5,61,5,16,5,132,5,98,6,203,6,163,6,158,6,232,6,74,7, +234,7,155,8,199,8,166,8,12,9,238,9,114,10,55,10,209,9,221,9,22,10,252,9,198,9,173,9,97,9,242,8, +202,8,179,8,121,8,92,8,26,8,118,7,22,7,27,7,201,6,64,6,14,6,233,5,190,5,238,5,10,6,177,5, +145,5,240,5,90,6,212,6,92,7,122,7,99,7,155,7,215,7,254,7,158,8,151,9,99,10,59,11,41,12,150,12, +196,12,103,13,252,13,248,13,33,14,191,14,228,14,141,14,146,14,178,14,106,14,63,14,64,14,159,13,162,12,62,12, +75,12,253,11,37,11,4,10,238,8,254,7,16,7,80,6,226,5,107,5,21,5,113,5,237,5,179,5,61,5,32,5, +58,5,192,5,221,6,15,8,47,9,88,10,69,11,77,12,248,13,119,15,15,16,154,16,156,17,88,18,146,18,200,18, +228,18,105,18,105,17,91,16,71,15,231,13,143,12,167,11,107,10,160,8,82,7,70,6,201,4,167,3,83,3,186,2, +18,2,121,2,35,3,12,3,200,2,204,2,30,3,232,3,172,4,72,5,174,6,211,8,188,10,81,12,245,13,62,16, +163,19,215,22,180,24,170,26,71,29,5,31,65,32,45,34,208,35,204,36,42,38,174,39,193,40,37,41,54,40,85,39, +148,40,41,42,26,42,249,41,18,42,87,41,140,41,42,43,154,43,31,43,101,43,215,42,195,40,39,39,110,38,34,38, +190,38,153,39,211,39,4,40,176,40,3,42,157,43,56,44,233,44,247,47,231,50,18,50,83,47,138,45,57,44,166,42, +141,40,254,37,167,36,202,36,235,36,16,38,215,40,13,43,85,45,251,48,131,50,49,49,158,49,187,51,45,52,232,51, +147,51,134,49,176,46,183,43,206,39,173,37,6,39,170,40,111,41,69,41,247,36,72,30,252,27,176,29,45,31,213,33, +99,38,247,41,26,45,149,48,236,48,197,45,177,43,211,44,141,48,69,54,129,59,93,61,212,60,252,60,144,62,204,63, +52,63,11,61,253,58,192,59,195,64,36,70,173,69,34,63,78,55,39,47,85,37,49,28,208,20,64,12,139,1,108,246, +202,233,59,218,55,203,210,191,150,181,215,170,169,162,163,158,222,156,5,157,213,159,99,164,163,170,78,179,175,188,36,197, +45,205,229,212,157,221,227,233,205,246,250,254,210,4,228,12,139,19,60,20,96,18,114,19,44,24,229,29,210,34,237,39, +56,45,109,47,34,45,223,39,74,32,45,25,107,22,204,19,37,10,206,250,190,233,128,216,18,203,92,193,153,180,202,166, +220,159,234,155,20,149,156,144,123,144,122,143,97,143,188,147,178,152,114,157,3,166,181,176,116,185,79,192,246,196,224,196, +179,190,3,180,165,169,190,162,99,157,166,153,81,154,203,156,20,157,166,155,247,151,137,147,85,150,114,160,90,167,231,168, +42,170,239,169,187,168,147,171,114,174,220,171,99,170,254,173,236,174,84,170,120,166,166,165,232,164,21,162,230,156,201,151, +22,150,135,151,35,153,26,153,176,152,97,155,230,160,246,163,238,163,150,165,168,168,41,170,182,171,125,173,22,173,150,172, +238,172,162,170,193,168,35,172,240,173,17,169,2,167,124,173,55,181,100,186,228,190,173,192,107,190,227,187,205,187,143,190, +172,195,194,199,220,200,151,202,50,207,154,211,91,213,151,213,189,214,214,217,236,220,185,222,252,225,138,231,187,235,206,237, +50,240,53,243,241,247,64,0,126,8,79,13,244,18,35,28,203,36,141,43,252,50,88,58,152,63,240,66,47,68,114,67, +169,66,65,66,160,64,181,60,43,54,91,46,206,39,0,34,100,26,116,17,239,8,136,0,195,247,105,238,25,228,77,218, +82,211,67,208,164,209,43,213,81,214,70,214,176,217,84,222,5,225,20,230,229,238,45,246,128,252,41,6,112,16,95,24, +136,32,56,41,206,48,132,56,234,63,56,69,62,73,0,74,6,69,223,64,138,66,32,66,127,58,86,50,39,45,254,39, +221,34,199,29,141,23,247,19,177,20,19,20,161,17,226,18,14,22,109,23,137,27,188,35,204,40,64,42,33,48,0,59, +161,67,207,72,169,79,168,88,13,95,112,98,142,103,177,110,64,115,85,117,201,120,189,124,91,126,234,125,16,123,218,117, +213,114,226,114,78,111,132,102,51,94,196,86,88,78,247,73,211,74,45,73,167,67,254,64,255,65,190,67,183,71,180,75, +86,74,215,72,100,79,156,88,186,92,197,95,150,101,137,105,133,106,238,109,92,116,134,120,152,120,162,120,234,122,48,122, +222,113,148,104,227,101,188,99,21,91,67,82,79,77,50,68,29,54,72,45,190,41,103,34,243,23,114,17,26,16,159,18, +129,23,247,26,115,29,128,35,94,42,130,43,142,40,178,37,110,34,46,32,150,33,45,35,157,34,122,36,120,41,57,44, +97,44,216,44,222,43,165,40,129,38,161,36,157,30,38,21,46,12,151,4,110,253,25,246,2,238,104,229,213,220,47,212, +226,204,63,201,132,200,131,200,67,201,191,202,242,203,1,206,116,210,91,215,128,218,78,221,165,226,160,235,142,246,1,0, +39,6,197,9,213,11,146,13,251,15,12,16,142,10,230,3,126,1,234,255,17,251,40,246,99,242,179,235,183,226,142,219, +99,213,85,206,157,199,31,193,46,187,250,184,186,184,141,180,50,174,206,170,222,167,140,163,243,163,167,170,237,176,216,180, +3,186,34,192,196,197,200,204,49,213,190,220,17,228,55,236,134,243,185,248,94,252,166,253,87,251,26,247,134,244,159,245, +174,247,96,246,241,242,148,240,31,236,67,227,63,220,231,217,9,214,236,207,143,205,104,205,4,202,20,197,171,192,156,186, +128,180,163,177,128,176,251,176,160,181,36,187,74,189,109,191,175,195,1,198,186,198,210,202,182,209,25,216,149,222,121,229, +1,235,221,239,7,246,122,253,237,4,231,9,54,10,179,7,222,5,150,5,63,7,157,10,167,11,210,7,153,2,56,254, +39,249,220,244,126,243,105,242,5,240,84,238,60,236,37,232,164,229,26,230,130,229,163,227,170,226,163,223,99,218,104,218, +49,225,130,231,25,236,253,242,162,249,173,252,2,0,251,4,144,6,48,5,198,6,167,10,81,12,95,13,45,16,226,16, +199,13,28,12,58,13,5,11,215,4,101,2,254,4,46,5,143,2,112,4,219,8,226,6,127,1,27,2,241,4,0,2, +136,255,195,4,173,9,55,8,234,8,152,15,208,19,74,20,137,24,190,31,201,36,169,42,123,51,72,57,187,57,154,56, +191,53,208,47,96,42,206,38,251,33,209,28,75,26,140,23,12,17,43,9,224,2,232,252,206,245,227,238,148,233,134,229, +255,226,116,228,19,234,192,238,120,239,185,240,210,245,104,251,243,255,248,5,62,12,167,16,153,22,128,31,141,38,52,42, +236,44,129,45,213,43,242,44,134,48,30,48,102,44,187,42,23,41,128,35,139,28,48,22,224,13,194,3,160,250,161,242, +103,235,217,229,149,225,146,222,60,222,101,223,250,223,126,226,164,233,28,242,130,247,49,250,90,252,157,254,65,1,234,5, +198,14,171,26,32,36,216,40,67,45,57,51,19,54,30,53,145,53,179,55,1,55,153,51,208,47,15,42,131,33,228,24, +166,16,219,6,159,252,113,244,153,237,250,229,212,221,180,215,89,213,47,213,181,212,188,212,182,214,115,216,145,216,38,218, +46,222,34,225,74,227,203,233,82,245,222,0,167,9,212,16,73,23,225,28,246,33,253,38,50,43,135,44,17,42,125,38, +17,37,93,36,42,32,29,24,231,15,105,9,66,2,241,247,153,236,249,228,72,225,237,220,219,214,45,211,175,210,115,209, +1,207,243,206,220,209,252,213,61,220,184,228,61,235,245,237,70,241,7,248,230,254,154,3,176,8,25,15,5,20,181,22, +191,24,102,25,237,23,8,23,209,23,254,22,250,18,2,14,19,9,248,2,96,251,30,243,128,235,217,229,164,225,101,221, +135,217,77,214,132,209,46,203,49,200,109,203,125,208,44,210,118,210,93,214,72,220,254,222,123,224,100,230,223,238,231,245, +60,254,40,8,177,12,88,12,91,16,69,24,236,26,128,24,224,23,28,25,140,25,31,26,57,25,19,19,154,10,117,6, +188,6,14,6,116,1,65,250,70,243,211,238,49,237,106,236,26,235,126,234,171,235,84,237,30,239,230,242,196,248,56,255, +153,6,46,14,224,18,198,21,225,26,101,32,190,34,127,36,130,39,25,40,220,37,94,36,215,34,57,31,64,28,65,28, +109,29,74,29,76,26,73,21,92,17,221,13,49,7,176,254,151,246,154,236,181,227,151,227,75,231,95,226,251,214,110,208, +247,207,16,209,169,211,147,215,20,218,227,218,119,220,231,224,229,230,39,234,188,235,208,242,68,254,249,4,21,8,225,15, +177,25,85,30,13,32,120,34,241,35,193,36,246,37,47,37,225,34,60,34,16,33,131,28,7,24,241,21,201,19,63,16, +0,11,249,3,36,255,187,254,217,252,116,246,111,242,225,243,157,243,62,238,7,234,50,235,248,238,239,242,255,246,245,248, +31,247,117,245,62,248,133,253,33,2,60,6,215,8,172,8,238,8,53,11,119,11,168,9,218,10,100,14,113,16,117,18, +183,20,90,19,210,15,65,14,63,12,179,7,63,4,65,2,119,254,191,249,122,245,175,240,173,237,197,237,121,235,230,228, +174,224,46,225,226,225,111,226,43,230,53,236,226,240,135,242,57,242,162,242,199,244,146,247,173,251,95,1,175,4,128,4, +65,6,114,11,95,15,102,18,211,24,34,32,200,34,131,33,165,31,128,29,155,27,133,28,74,32,0,34,186,28,88,18, +250,9,153,6,116,4,109,0,190,251,198,248,221,248,248,250,46,251,108,247,171,242,79,240,164,240,215,242,36,245,32,245, +199,243,166,244,166,247,122,249,51,249,234,248,20,251,50,0,160,4,231,3,78,0,63,0,246,3,18,7,153,9,17,13, +76,14,63,12,44,12,204,14,48,13,12,6,117,0,79,255,114,255,67,255,98,253,181,247,171,241,139,240,76,241,243,238, +28,237,179,239,57,242,55,241,47,240,126,240,227,238,199,235,77,235,118,238,51,243,184,247,135,250,33,251,225,250,181,250, +94,250,97,250,44,251,172,251,28,252,220,254,214,3,113,7,198,7,9,7,29,8,97,11,133,14,194,14,144,12,19,12, +128,15,112,19,246,19,86,18,2,18,14,19,120,19,9,19,212,18,140,19,208,21,209,24,41,25,56,21,158,16,206,14, +207,13,248,10,77,8,177,8,41,11,15,13,103,13,57,12,141,9,46,6,246,3,100,4,187,6,36,8,106,6,244,1, +16,253,88,250,169,250,197,251,87,251,134,250,180,250,208,249,219,246,211,244,238,244,23,245,62,245,200,245,203,243,82,239, +65,238,250,241,78,244,71,242,10,239,199,236,81,236,155,238,39,241,158,240,193,238,155,237,78,235,224,232,10,234,29,236, +58,234,17,231,134,230,51,230,126,228,192,227,40,228,91,229,82,233,57,238,189,239,75,240,64,244,168,248,145,250,230,252, +197,255,69,0,55,1,188,5,120,9,105,9,75,9,214,10,83,12,70,14,12,16,221,14,2,13,159,14,215,16,11,16, +37,15,175,15,214,14,145,13,81,14,193,13,131,9,110,5,255,2,165,255,97,252,123,251,73,251,59,251,175,252,199,252, +63,249,139,247,206,251,24,1,186,2,120,2,16,2,43,1,237,0,227,1,160,2,109,3,33,5,193,5,52,4,203,2, +111,2,109,1,207,255,194,254,100,253,134,250,207,246,96,243,78,241,117,241,181,242,251,242,38,242,237,240,218,238,44,236, +157,234,98,234,225,233,29,233,20,234,75,237,120,240,157,241,245,241,162,243,118,245,205,244,33,243,183,244,235,249,188,254, +166,0,242,0,210,1,6,4,31,7,253,10,149,15,171,18,47,17,172,12,132,10,54,12,96,14,132,15,190,16,79,17, +33,16,205,14,91,14,75,13,55,11,116,9,50,8,30,7,196,6,145,6,51,5,166,3,90,3,107,2,157,254,29,250, +155,248,202,249,144,250,221,249,234,248,12,248,234,246,195,246,166,248,112,250,126,249,189,246,86,244,123,242,195,241,2,244, +62,248,219,250,209,250,222,249,177,248,66,247,192,246,227,247,3,250,107,252,119,254,47,255,183,254,176,254,190,255,171,0, +105,0,35,255,191,253,117,253,84,254,39,254,180,251,225,249,161,251,218,254,206,255,179,254,167,253,166,252,72,251,185,250, +49,251,61,251,205,250,110,251,122,253,41,0,8,3,95,5,73,6,125,6,57,7,3,8,45,8,207,8,135,10,71,12, +21,14,2,17,177,19,153,19,168,17,240,16,184,17,240,17,193,16,162,14,24,12,219,9,254,7,126,5,185,2,176,1, +18,2,56,1,34,255,54,254,51,254,71,253,144,252,133,253,255,253,92,252,59,251,99,252,131,253,58,253,97,253,189,254, +80,0,130,2,135,5,52,7,3,7,223,7,118,10,197,11,69,11,161,11,159,12,172,11,224,9,79,10,236,11,69,11, +28,8,178,4,73,2,18,1,174,0,226,255,108,254,7,254,66,255,45,0,231,255,204,255,81,0,223,0,113,2,234,5, +83,9,207,10,195,11,136,13,126,14,141,13,182,12,124,13,77,14,116,13,162,11,86,10,213,9,91,9,96,8,132,7, +205,7,176,8,52,8,204,5,233,2,41,0,178,252,242,248,241,246,38,247,188,247,89,247,72,246,19,245,12,244,231,243, +8,245,137,246,57,247,120,247,234,248,39,252,132,255,33,1,98,1,239,1,251,2,155,3,77,4,61,6,131,8,255,8, +199,7,240,6,67,7,191,7,231,7,93,8,76,9,210,9,16,9,76,7,14,6,191,6,47,9,5,12,90,14,208,15, +223,15,153,14,90,13,57,13,178,13,228,13,186,13,33,13,211,11,112,10,250,9,43,10,214,9,181,8,88,7,15,6, +3,5,111,4,214,3,79,2,34,0,164,254,39,254,133,253,249,251,215,249,65,247,177,243,129,239,113,236,133,235,83,235, +211,233,40,231,51,229,247,228,240,229,132,231,134,233,169,235,162,237,113,239,249,240,34,242,106,243,46,245,218,246,253,247, +35,249,160,250,245,251,54,253,251,254,185,0,170,1,196,2,221,4,98,6,49,6,104,6,214,8,104,11,180,11,236,10, +39,11,214,11,151,11,138,10,42,9,109,7,186,5,153,4,155,3,35,2,92,0,137,254,175,252,40,251,90,250,56,250, +206,250,223,251,16,252,226,250,155,250,253,252,196,255,44,0,147,255,123,0,14,2,129,2,188,2,29,4,225,5,7,7, +202,7,96,8,241,8,79,10,58,12,217,12,252,11,182,11,124,12,109,12,38,11,234,9,94,8,129,5,189,2,169,1, +215,0,154,254,66,252,77,251,123,250,127,248,92,246,37,245,75,244,78,243,168,242,120,242,76,242,20,242,22,242,121,242, +117,243,18,245,157,246,82,247,98,247,180,247,6,249,87,251,188,253,48,255,231,255,209,0,221,1,85,2,125,2,230,2, +248,2,97,2,89,2,101,3,8,4,155,3,149,3,74,4,226,3,255,1,186,0,245,0,54,1,195,0,147,0,48,1, +62,2,136,3,141,4,129,4,234,3,71,4,149,5,123,6,242,6,241,7,255,8,193,8,135,7,205,6,219,6,173,6, +167,5,33,4,192,2,203,1,239,0,175,255,35,254,214,252,250,251,102,251,228,250,20,250,255,248,189,248,0,250,99,251, +86,251,200,250,95,251,149,252,81,253,117,254,219,0,18,3,224,3,123,4,50,6,100,8,39,10,57,11,243,10,12,9, +228,6,142,5,55,4,128,2,157,1,81,1,86,255,91,251,197,247,121,245,21,243,173,240,235,239,118,240,83,240,112,239, +41,239,46,239,94,238,145,237,155,238,59,241,115,243,100,244,37,245,210,246,6,249,4,251,114,253,86,1,156,5,241,7, +122,8,223,9,4,13,174,15,87,16,78,16,1,17,220,17,210,17,11,17,79,16,221,15,2,15,189,12,67,9,46,6, +96,4,241,2,82,1,65,0,115,255,61,253,225,249,230,247,10,248,73,248,165,247,28,247,106,246,242,243,103,240,174,238, +156,239,251,240,46,241,7,241,175,241,249,242,86,244,247,245,112,248,172,251,202,254,249,0,69,2,103,3,240,4,208,6, +111,8,43,9,6,9,175,8,143,8,57,8,80,7,103,6,78,6,229,6,75,7,219,6,163,5,65,4,60,3,88,2, +243,0,22,255,105,253,241,251,23,250,41,248,84,247,185,247,214,247,120,246,31,244,255,241,152,240,201,239,99,239,54,239, +76,239,48,240,81,242,10,245,101,247,191,249,50,253,70,1,21,4,17,5,192,5,41,7,150,8,93,9,225,9,93,10, +112,10,14,10,127,9,184,8,198,7,44,7,16,7,4,7,8,7,120,7,241,7,168,7,178,6,180,5,216,4,239,3, +182,2,152,0,103,253,57,250,17,248,82,246,49,244,82,242,65,241,26,240,90,238,80,237,96,238,91,241,86,245,135,249, +236,252,143,254,117,254,212,253,56,254,35,0,59,2,207,2,113,2,36,3,222,4,159,5,54,5,135,5,218,6,120,7, +5,7,233,6,126,7,196,7,135,7,158,7,107,8,105,9,219,9,121,9,191,8,32,8,20,7,51,5,144,3,26,3, +206,2,167,1,118,0,179,255,34,254,171,251,85,250,159,250,84,250,128,248,252,246,58,247,130,248,147,249,190,249,233,248, +4,248,61,248,125,249,54,251,250,253,243,1,95,5,207,6,3,7,236,6,120,6,49,6,19,7,156,8,142,9,226,9, +205,9,226,8,168,7,90,7,81,7,248,5,38,4,227,3,174,4,120,4,203,2,79,0,74,253,118,250,202,248,201,247, +166,246,24,246,124,246,102,246,117,245,75,245,24,246,60,246,254,245,38,247,24,249,230,249,11,250,223,250,146,251,23,251, +82,250,191,249,108,248,233,246,99,247,222,249,241,251,164,252,86,253,204,254,31,0,102,0,159,255,91,254,96,253,1,253, +161,252,137,251,237,249,134,248,202,247,211,247,103,248,39,249,39,250,156,251,3,253,222,253,222,254,191,0,235,2,165,4, +83,6,65,8,184,9,62,10,56,10,247,9,144,9,66,9,205,8,113,7,129,5,121,4,175,4,163,4,75,3,115,1, +52,0,148,255,237,254,177,253,217,251,36,250,93,249,77,249,56,249,26,249,105,249,58,250,111,251,216,252,232,253,107,254, +8,255,52,0,166,1,60,3,220,4,203,5,240,5,108,6,107,7,181,7,152,7,182,8,82,10,251,9,18,8,6,7, +137,6,115,4,187,1,76,1,158,2,112,2,85,0,251,254,143,255,211,0,251,1,28,3,189,3,85,3,82,2,57,1, +6,0,5,255,223,254,158,255,138,0,252,0,219,0,99,0,211,255,89,255,19,255,218,254,140,254,173,254,180,255,160,0, +238,255,5,254,178,252,134,252,238,252,19,254,30,0,165,1,74,1,253,255,171,255,169,0,12,2,67,3,3,4,192,3, +157,2,168,1,103,1,150,1,51,2,44,3,128,3,163,2,157,1,113,1,231,1,177,2,196,3,110,4,234,3,141,2, +76,1,212,0,17,1,228,0,82,255,119,253,28,253,158,253,86,253,0,253,14,254,52,255,135,254,249,252,46,252,129,251, +100,250,89,250,171,251,27,252,43,251,93,251,88,253,176,254,190,254,118,255,19,1,219,1,240,1,236,2,181,4,224,5, +252,5,107,5,175,4,125,4,248,4,59,5,7,5,145,5,92,7,237,8,18,9,160,8,186,8,33,9,116,9,68,10, +158,11,74,12,165,11,159,10,6,10,120,9,165,8,38,8,85,8,66,8,234,6,18,5,74,4,52,4,12,3,222,0, +65,255,33,254,91,252,165,250,66,250,42,250,209,248,245,246,35,246,86,246,200,246,91,247,57,248,77,249,127,250,183,251, +152,252,186,252,58,252,217,251,64,252,40,253,186,253,224,253,94,254,70,255,139,255,10,255,79,255,209,0,170,1,243,0, +122,0,48,1,82,1,226,255,145,254,220,254,52,0,96,1,167,1,17,1,119,0,82,0,226,255,209,254,55,254,166,254, +246,254,106,254,32,254,1,255,28,0,155,0,117,1,53,3,67,4,216,3,223,3,53,5,182,5,140,4,244,3,244,4, +232,5,40,6,185,6,109,7,11,7,176,5,160,4,131,4,242,4,77,5,113,5,122,5,33,5,49,4,39,3,111,2, +212,1,84,1,63,1,70,1,229,0,79,0,252,255,236,255,211,255,102,255,166,254,32,254,61,254,122,254,34,254,119,253, +91,253,247,253,136,254,162,254,203,254,45,255,17,255,155,254,225,254,180,255,247,255,236,255,97,0,217,0,231,0,255,0, +246,0,117,0,84,0,226,0,21,1,221,0,57,1,201,1,151,1,44,1,81,1,126,1,26,1,110,0,7,0,50,0, +182,0,218,0,50,0,13,255,11,254,158,253,144,253,39,253,118,252,103,252,235,252,37,253,53,253,150,253,191,253,123,253, +154,253,54,254,157,254,10,255,1,0,193,0,85,0,80,255,33,255,57,0,146,1,7,2,181,1,91,1,31,1,250,0, +64,1,253,1,221,2,221,3,246,4,153,5,71,5,19,4,171,2,3,2,54,2,63,2,176,1,76,1,86,1,23,1, +89,0,174,255,130,255,155,255,36,255,224,253,63,253,87,254,195,255,23,0,47,0,172,0,159,0,27,0,47,0,96,0, +211,255,105,255,2,0,218,0,44,1,50,1,73,1,148,1,223,1,154,1,206,0,110,0,211,0,29,1,226,0,245,0, +204,1,123,2,59,2,221,1,73,2,190,2,69,2,133,1,73,1,253,0,55,0,152,255,77,255,200,254,27,254,212,253, +236,253,239,253,153,253,10,253,193,252,26,253,217,253,150,254,47,255,149,255,182,255,170,255,180,255,29,0,195,0,228,0, +63,0,165,255,108,255,214,254,205,253,19,253,156,252,249,251,169,251,30,252,172,252,198,252,200,252,15,253,124,253,206,253, +250,253,44,254,67,254,202,253,41,253,113,253,88,254,150,254,78,254,141,254,19,255,2,255,174,254,190,254,2,255,34,255, +57,255,78,255,75,255,92,255,169,255,238,255,231,255,225,255,42,0,101,0,82,0,137,0,75,1,241,1,58,2,142,2, +192,2,140,2,131,2,204,2,158,2,2,2,200,1,219,1,178,1,132,1,148,1,155,1,103,1,226,0,10,0,78,255, +8,255,221,254,135,254,52,254,194,253,241,252,15,252,140,251,97,251,67,251,255,250,231,250,107,251,0,252,228,251,200,251, +143,252,116,253,160,253,170,253,252,253,80,254,253,254,52,0,243,0,171,0,33,0,221,255,191,255,217,255,37,0,70,0, +6,0,109,255,223,254,1,255,127,255,11,255,165,253,219,252,29,253,83,253,14,253,248,252,90,253,198,253,239,253,249,253, +250,253,173,253,58,253,114,253,110,254,61,255,159,255,49,0,238,0,140,1,87,2,33,3,59,3,0,3,37,3,76,3, +17,3,227,2,220,2,159,2,30,2,80,1,65,0,129,255,43,255,161,254,3,254,245,253,16,254,159,253,223,252,67,252, +247,251,45,252,166,252,232,252,54,253,222,253,69,254,22,254,222,253,223,253,12,254,144,254,36,255,73,255,67,255,109,255, +147,255,206,255,74,0,132,0,128,0,49,1,120,2,21,3,229,2,177,2,141,2,72,2,31,2,17,2,222,1,177,1, +186,1,188,1,131,1,48,1,240,0,190,0,138,0,113,0,158,0,209,0,173,0,59,0,156,255,226,254,130,254,202,254, +32,255,27,255,47,255,123,255,129,255,84,255,86,255,100,255,103,255,127,255,123,255,85,255,112,255,170,255,156,255,126,255, +108,255,12,255,169,254,206,254,31,255,65,255,134,255,176,255,67,255,241,254,101,255,182,255,249,254,204,253,32,253,22,253, +110,253,235,253,107,254,253,254,127,255,180,255,232,255,139,0,55,1,69,1,229,0,191,0,10,1,145,1,24,2,111,2, +123,2,98,2,79,2,14,2,69,1,71,0,220,255,27,0,69,0,232,255,76,255,212,254,161,254,172,254,212,254,252,254, +23,255,41,255,75,255,116,255,105,255,66,255,118,255,240,255,34,0,35,0,110,0,248,0,145,1,64,2,155,2,85,2, +40,2,167,2,53,3,123,3,254,3,169,4,198,4,104,4,25,4,228,3,199,3,214,3,184,3,48,3,193,2,194,2, +168,2,7,2,64,1,180,0,66,0,225,255,196,255,186,255,73,255,131,254,7,254,26,254,120,254,207,254,1,255,32,255, +62,255,52,255,243,254,246,254,149,255,73,0,114,0,26,0,136,255,14,255,10,255,60,255,8,255,177,254,221,254,48,255, +31,255,252,254,251,254,211,254,193,254,41,255,168,255,224,255,24,0,91,0,91,0,37,0,246,255,228,255,3,0,45,0, +20,0,223,255,245,255,80,0,194,0,49,1,60,1,181,0,23,0,178,255,74,255,214,254,152,254,142,254,173,254,231,254, +190,254,225,253,9,253,23,253,215,253,95,254,73,254,23,254,110,254,49,255,194,255,245,255,12,0,42,0,89,0,169,0, +251,0,58,1,119,1,140,1,86,1,46,1,82,1,133,1,196,1,58,2,166,2,207,2,245,2,39,3,36,3,254,2, +215,2,134,2,253,1,68,1,75,0,104,255,22,255,19,255,235,254,183,254,127,254,19,254,205,253,235,253,231,253,154,253, +154,253,222,253,219,253,180,253,204,253,241,253,15,254,108,254,251,254,131,255,15,0,144,0,215,0,253,0,43,1,54,1, +250,0,171,0,154,0,196,0,187,0,68,0,221,255,17,0,152,0,228,0,229,0,191,0,133,0,66,0,198,255,242,254, +79,254,67,254,58,254,170,253,14,253,240,252,46,253,144,253,5,254,65,254,26,254,215,253,184,253,188,253,231,253,49,254, +108,254,145,254,202,254,20,255,37,255,230,254,183,254,252,254,134,255,247,255,104,0,253,0,85,1,48,1,239,0,239,0, +17,1,28,1,231,0,86,0,157,255,44,255,31,255,81,255,152,255,185,255,176,255,248,255,206,0,168,1,254,1,240,1, +198,1,148,1,122,1,148,1,204,1,2,2,39,2,57,2,64,2,59,2,7,2,177,1,134,1,151,1,180,1,210,1, +236,1,204,1,115,1,30,1,208,0,125,0,112,0,192,0,11,1,35,1,79,1,145,1,152,1,110,1,107,1,160,1, +206,1,199,1,176,1,205,1,14,2,23,2,239,1,236,1,255,1,228,1,210,1,246,1,222,1,73,1,187,0,145,0, +126,0,61,0,238,255,171,255,96,255,9,255,177,254,82,254,232,253,133,253,68,253,32,253,240,252,202,252,1,253,124,253, +146,253,30,253,220,252,63,253,197,253,245,253,22,254,115,254,189,254,198,254,227,254,54,255,126,255,189,255,29,0,96,0, +107,0,163,0,245,0,186,0,13,0,181,255,170,255,81,255,195,254,118,254,119,254,204,254,99,255,178,255,129,255,95,255, +141,255,163,255,127,255,99,255,71,255,249,254,136,254,32,254,243,253,25,254,88,254,128,254,176,254,204,254,144,254,114,254, +16,255,230,255,24,0,238,255,26,0,111,0,118,0,90,0,112,0,152,0,142,0,94,0,73,0,74,0,42,0,237,255, +216,255,238,255,240,255,222,255,236,255,28,0,71,0,78,0,15,0,144,255,38,255,0,255,219,254,130,254,46,254,16,254, +14,254,43,254,164,254,91,255,224,255,16,0,23,0,251,255,210,255,2,0,149,0,240,0,219,0,217,0,26,1,73,1, +85,1,90,1,27,1,137,0,7,0,181,255,96,255,36,255,41,255,35,255,231,254,165,254,104,254,20,254,200,253,121,253, +241,252,123,252,155,252,14,253,74,253,132,253,26,254,200,254,51,255,127,255,207,255,250,255,222,255,166,255,161,255,220,255, +5,0,255,255,45,0,144,0,123,0,205,255,100,255,166,255,249,255,242,255,185,255,93,255,216,254,104,254,33,254,211,253, +140,253,143,253,210,253,17,254,37,254,21,254,18,254,76,254,147,254,155,254,151,254,245,254,140,255,212,255,215,255,18,0, +125,0,142,0,92,0,157,0,82,1,191,1,189,1,195,1,214,1,196,1,222,1,79,2,147,2,112,2,81,2,90,2, +41,2,162,1,37,1,4,1,38,1,50,1,246,0,148,0,80,0,100,0,205,0,17,1,177,0,14,0,233,255,66,0, +167,0,255,0,53,1,12,1,177,0,138,0,156,0,211,0,36,1,57,1,7,1,17,1,97,1,93,1,243,0,154,0, +75,0,217,255,149,255,185,255,5,0,55,0,30,0,164,255,33,255,13,255,96,255,205,255,56,0,151,0,201,0,172,0, +54,0,176,255,131,255,177,255,240,255,56,0,141,0,193,0,231,0,68,1,187,1,243,1,231,1,216,1,238,1,7,2, +209,1,112,1,109,1,180,1,161,1,71,1,39,1,236,0,41,0,93,255,241,254,137,254,18,254,226,253,197,253,100,253, +247,252,194,252,164,252,151,252,184,252,254,252,70,253,121,253,146,253,163,253,162,253,123,253,102,253,167,253,15,254,103,254, +225,254,130,255,233,255,6,0,41,0,117,0,220,0,74,1,142,1,145,1,135,1,150,1,173,1,165,1,100,1,240,0, +138,0,81,0,20,0,177,255,67,255,228,254,185,254,222,254,11,255,226,254,128,254,46,254,15,254,68,254,176,254,209,254, +131,254,83,254,160,254,40,255,146,255,195,255,194,255,187,255,223,255,22,0,56,0,77,0,118,0,210,0,83,1,161,1, +131,1,74,1,75,1,103,1,92,1,43,1,242,0,215,0,231,0,232,0,147,0,9,0,147,255,49,255,209,254,157,254, +189,254,13,255,52,255,235,254,85,254,247,253,18,254,79,254,88,254,89,254,143,254,210,254,249,254,53,255,157,255,254,255, +86,0,211,0,76,1,111,1,95,1,107,1,128,1,131,1,152,1,194,1,208,1,188,1,143,1,38,1,154,0,72,0, +46,0,245,255,159,255,120,255,118,255,90,255,55,255,50,255,22,255,180,254,82,254,82,254,162,254,229,254,237,254,217,254, +228,254,44,255,143,255,227,255,57,0,166,0,253,0,20,1,2,1,235,0,216,0,204,0,180,0,124,0,73,0,68,0, +59,0,244,255,136,255,46,255,249,254,223,254,201,254,169,254,157,254,196,254,14,255,87,255,132,255,138,255,148,255,215,255, +24,0,250,255,159,255,102,255,106,255,155,255,232,255,28,0,32,0,43,0,96,0,156,0,191,0,192,0,159,0,131,0, +148,0,190,0,215,0,214,0,192,0,159,0,133,0,111,0,78,0,43,0,6,0,222,255,205,255,214,255,200,255,151,255, +110,255,82,255,54,255,60,255,109,255,157,255,189,255,232,255,17,0,14,0,216,255,151,255,123,255,140,255,167,255,197,255, +247,255,25,0,0,0,224,255,237,255,25,0,107,0,238,0,77,1,77,1,62,1,84,1,70,1,7,1,247,0,40,1, +66,1,30,1,237,0,232,0,25,1,80,1,103,1,112,1,125,1,118,1,70,1,248,0,150,0,60,0,18,0,6,0, +222,255,148,255,82,255,54,255,51,255,43,255,27,255,39,255,86,255,114,255,95,255,65,255,57,255,90,255,161,255,231,255, +17,0,65,0,129,0,160,0,161,0,191,0,234,0,223,0,164,0,105,0,74,0,88,0,136,0,171,0,176,0,175,0, +167,0,144,0,139,0,159,0,156,0,109,0,57,0,34,0,38,0,59,0,78,0,72,0,40,0,3,0,239,255,231,255, +212,255,178,255,147,255,115,255,66,255,30,255,42,255,75,255,103,255,153,255,224,255,16,0,36,0,78,0,143,0,182,0, +187,0,203,0,240,0,5,1,0,1,0,1,20,1,35,1,26,1,250,0,203,0,154,0,119,0,97,0,69,0,34,0, +11,0,12,0,35,0,64,0,69,0,49,0,35,0,29,0,1,0,213,255,205,255,233,255,250,255,243,255,233,255,224,255, +203,255,177,255,158,255,147,255,141,255,133,255,123,255,115,255,113,255,122,255,149,255,180,255,184,255,170,255,186,255,240,255, +25,0,34,0,45,0,87,0,146,0,195,0,216,0,218,0,233,0,16,1,50,1,62,1,69,1,78,1,72,1,42,1, +255,0,209,0,173,0,161,0,155,0,127,0,87,0,55,0,26,0,246,255,217,255,202,255,188,255,159,255,122,255,91,255, +72,255,69,255,82,255,100,255,116,255,135,255,155,255,160,255,144,255,125,255,130,255,172,255,241,255,56,0,103,0,124,0, +131,0,135,0,133,0,130,0,132,0,139,0,137,0,125,0,116,0,125,0,146,0,162,0,167,0,161,0,129,0,77,0, +29,0,2,0,244,255,242,255,249,255,243,255,207,255,157,255,129,255,131,255,140,255,125,255,79,255,26,255,239,254,205,254, +185,254,197,254,243,254,43,255,88,255,118,255,142,255,172,255,210,255,243,255,14,0,52,0,96,0,117,0,106,0,100,0, +124,0,169,0,204,0,212,0,203,0,208,0,235,0,252,0,227,0,176,0,132,0,101,0,65,0,21,0,248,255,250,255, +12,0,19,0,254,255,211,255,164,255,130,255,119,255,131,255,163,255,200,255,225,255,234,255,238,255,248,255,2,0,250,255, +222,255,199,255,204,255,227,255,240,255,237,255,244,255,17,0,54,0,72,0,58,0,31,0,24,0,47,0,79,0,97,0, +101,0,108,0,131,0,161,0,181,0,183,0,177,0,172,0,174,0,180,0,185,0,179,0,164,0,147,0,135,0,122,0, +106,0,88,0,79,0,87,0,109,0,127,0,128,0,111,0,90,0,78,0,71,0,56,0,17,0,217,255,166,255,142,255, +142,255,148,255,142,255,127,255,116,255,113,255,105,255,90,255,84,255,110,255,163,255,213,255,229,255,208,255,173,255,143,255, +126,255,120,255,131,255,160,255,200,255,237,255,13,0,45,0,75,0,89,0,76,0,45,0,18,0,7,0,6,0,12,0, +35,0,83,0,138,0,168,0,156,0,124,0,105,0,111,0,124,0,129,0,125,0,122,0,114,0,89,0,52,0,26,0, +26,0,43,0,57,0,67,0,79,0,95,0,102,0,92,0,79,0,81,0,97,0,106,0,98,0,88,0,97,0,123,0, +138,0,122,0,84,0,45,0,16,0,246,255,222,255,210,255,221,255,253,255,36,0,71,0,100,0,121,0,131,0,126,0, +111,0,89,0,59,0,20,0,241,255,226,255,238,255,2,0,5,0,241,255,214,255,201,255,205,255,216,255,225,255,237,255, +2,0,28,0,43,0,39,0,24,0,20,0,41,0,81,0,115,0,124,0,112,0,96,0,90,0,86,0,68,0,30,0, +243,255,212,255,198,255,193,255,192,255,198,255,219,255,251,255,26,0,40,0,35,0,22,0,13,0,17,0,30,0,36,0, +20,0,239,255,201,255,182,255,180,255,177,255,162,255,150,255,162,255,197,255,224,255,225,255,209,255,208,255,227,255,244,255, +237,255,216,255,211,255,235,255,17,0,45,0,56,0,58,0,56,0,47,0,29,0,10,0,250,255,238,255,229,255,228,255, +238,255,248,255,242,255,223,255,213,255,235,255,22,0,57,0,69,0,71,0,81,0,93,0,86,0,58,0,37,0,51,0, +93,0,133,0,148,0,143,0,136,0,134,0,134,0,134,0,142,0,159,0,176,0,184,0,181,0,171,0,156,0,135,0, +113,0,100,0,97,0,93,0,74,0,39,0,4,0,232,255,205,255,168,255,124,255,87,255,69,255,68,255,73,255,80,255, +91,255,111,255,139,255,169,255,201,255,231,255,3,0,24,0,36,0,39,0,32,0,20,0,10,0,12,0,28,0,54,0, +80,0,99,0,110,0,119,0,128,0,142,0,156,0,162,0,151,0,120,0,80,0,36,0,246,255,200,255,161,255,144,255, +152,255,168,255,170,255,154,255,136,255,127,255,122,255,108,255,86,255,71,255,80,255,110,255,149,255,186,255,215,255,234,255, +243,255,247,255,3,0,30,0,64,0,93,0,112,0,124,0,123,0,102,0,66,0,41,0,54,0,100,0,139,0,140,0, +108,0,75,0,56,0,39,0,5,0,215,255,176,255,151,255,127,255,96,255,66,255,54,255,64,255,78,255,78,255,57,255, +22,255,245,254,230,254,247,254,38,255,94,255,137,255,163,255,192,255,241,255,43,0,89,0,111,0,124,0,140,0,154,0, +148,0,126,0,109,0,116,0,137,0,144,0,125,0,98,0,86,0,92,0,100,0,92,0,60,0,7,0,204,255,151,255, +112,255,87,255,70,255,58,255,56,255,69,255,91,255,109,255,121,255,130,255,137,255,133,255,106,255,62,255,22,255,8,255, +24,255,55,255,83,255,100,255,112,255,131,255,166,255,210,255,248,255,11,0,11,0,1,0,246,255,234,255,219,255,203,255, +191,255,183,255,171,255,151,255,135,255,144,255,186,255,242,255,24,0,27,0,4,0,231,255,211,255,204,255,214,255,235,255, +3,0,17,0,20,0,21,0,27,0,32,0,24,0,1,0,225,255,189,255,148,255,107,255,77,255,65,255,61,255,49,255, +24,255,7,255,18,255,55,255,98,255,133,255,159,255,184,255,209,255,229,255,249,255,23,0,65,0,101,0,113,0,103,0, +94,0,103,0,125,0,144,0,149,0,145,0,131,0,103,0,66,0,42,0,47,0,75,0,102,0,106,0,90,0,65,0, +40,0,15,0,249,255,228,255,203,255,167,255,127,255,105,255,114,255,143,255,164,255,164,255,149,255,129,255,110,255,92,255, +86,255,108,255,154,255,198,255,215,255,202,255,181,255,172,255,180,255,196,255,210,255,224,255,242,255,13,0,46,0,80,0, +106,0,116,0,113,0,107,0,107,0,109,0,106,0,97,0,92,0,91,0,79,0,41,0,242,255,199,255,188,255,200,255, +212,255,210,255,203,255,200,255,201,255,199,255,190,255,175,255,164,255,162,255,175,255,200,255,227,255,245,255,251,255,249,255, +241,255,221,255,190,255,165,255,163,255,184,255,210,255,222,255,224,255,231,255,1,0,36,0,65,0,79,0,83,0,89,0, +97,0,104,0,113,0,129,0,152,0,168,0,164,0,142,0,117,0,103,0,98,0,96,0,95,0,97,0,98,0,95,0, +85,0,68,0,45,0,12,0,231,255,201,255,193,255,200,255,206,255,200,255,185,255,167,255,150,255,133,255,123,255,132,255, +163,255,207,255,250,255,24,0,41,0,47,0,44,0,38,0,35,0,37,0,43,0,46,0,44,0,44,0,51,0,60,0, +62,0,59,0,65,0,91,0,129,0,162,0,183,0,195,0,197,0,181,0,141,0,89,0,42,0,10,0,242,255,221,255, +206,255,199,255,203,255,214,255,234,255,6,0,35,0,55,0,68,0,82,0,96,0,104,0,105,0,110,0,126,0,147,0, +160,0,163,0,169,0,185,0,204,0,213,0,206,0,192,0,177,0,159,0,134,0,103,0,72,0,49,0,35,0,27,0, +20,0,13,0,2,0,240,255,211,255,175,255,137,255,105,255,83,255,74,255,76,255,81,255,77,255,63,255,51,255,56,255, +75,255,98,255,118,255,140,255,170,255,203,255,229,255,249,255,19,0,57,0,100,0,131,0,142,0,138,0,123,0,103,0, +82,0,61,0,41,0,21,0,7,0,5,0,10,0,12,0,6,0,253,255,248,255,252,255,0,0,252,255,242,255,232,255, +232,255,241,255,253,255,6,0,13,0,26,0,39,0,35,0,8,0,227,255,207,255,210,255,221,255,221,255,213,255,212,255, +223,255,235,255,241,255,247,255,1,0,14,0,24,0,32,0,42,0,53,0,64,0,75,0,86,0,89,0,81,0,68,0, +67,0,89,0,125,0,156,0,171,0,176,0,176,0,170,0,154,0,134,0,121,0,119,0,117,0,101,0,72,0,45,0, +33,0,23,0,253,255,214,255,186,255,189,255,209,255,219,255,204,255,175,255,150,255,137,255,138,255,151,255,179,255,210,255, +235,255,249,255,255,255,255,255,245,255,227,255,212,255,209,255,210,255,205,255,196,255,196,255,213,255,238,255,5,0,20,0, +27,0,24,0,14,0,5,0,2,0,10,0,22,0,33,0,38,0,40,0,40,0,43,0,47,0,50,0,50,0,50,0, +52,0,52,0,46,0,40,0,48,0,73,0,97,0,105,0,97,0,88,0,89,0,93,0,91,0,81,0,65,0,45,0, +21,0,253,255,234,255,223,255,216,255,210,255,203,255,195,255,184,255,169,255,149,255,125,255,100,255,77,255,64,255,64,255, +80,255,111,255,149,255,184,255,210,255,232,255,3,0,36,0,65,0,85,0,100,0,113,0,119,0,114,0,103,0,98,0, +108,0,125,0,141,0,148,0,146,0,135,0,117,0,99,0,86,0,71,0,46,0,14,0,240,255,214,255,187,255,161,255, +146,255,149,255,158,255,153,255,134,255,115,255,114,255,129,255,145,255,149,255,143,255,139,255,151,255,183,255,220,255,246,255, +252,255,253,255,8,0,30,0,48,0,53,0,51,0,51,0,54,0,54,0,49,0,46,0,49,0,56,0,56,0,44,0, +25,0,7,0,250,255,236,255,213,255,185,255,163,255,156,255,157,255,155,255,142,255,129,255,125,255,132,255,146,255,160,255, +174,255,188,255,201,255,213,255,222,255,231,255,248,255,21,0,58,0,88,0,101,0,101,0,100,0,103,0,99,0,81,0, +59,0,48,0,50,0,55,0,57,0,60,0,65,0,70,0,67,0,57,0,39,0,19,0,255,255,239,255,226,255,212,255, +198,255,189,255,191,255,196,255,195,255,192,255,201,255,226,255,1,0,22,0,32,0,41,0,54,0,70,0,81,0,88,0, +89,0,85,0,79,0,79,0,87,0,93,0,86,0,67,0,44,0,22,0,255,255,230,255,203,255,175,255,147,255,120,255, +98,255,84,255,75,255,65,255,54,255,50,255,62,255,91,255,126,255,155,255,174,255,193,255,219,255,248,255,12,0,19,0, +20,0,23,0,24,0,20,0,13,0,10,0,10,0,6,0,250,255,241,255,243,255,251,255,2,0,9,0,21,0,31,0, +29,0,10,0,241,255,217,255,189,255,152,255,112,255,88,255,89,255,102,255,112,255,111,255,105,255,104,255,115,255,141,255, +175,255,212,255,249,255,31,0,70,0,106,0,135,0,161,0,184,0,200,0,201,0,193,0,184,0,182,0,181,0,176,0, +167,0,158,0,148,0,138,0,127,0,113,0,91,0,62,0,35,0,18,0,8,0,248,255,222,255,198,255,190,255,191,255, +184,255,165,255,149,255,147,255,156,255,154,255,135,255,115,255,117,255,143,255,176,255,194,255,198,255,208,255,236,255,21,0, +56,0,75,0,84,0,88,0,89,0,85,0,80,0,77,0,76,0,75,0,74,0,73,0,64,0,43,0,19,0,10,0, +17,0,28,0,32,0,32,0,33,0,32,0,20,0,5,0,5,0,23,0,41,0,43,0,34,0,32,0,41,0,49,0, +43,0,27,0,10,0,255,255,249,255,243,255,231,255,214,255,200,255,197,255,206,255,220,255,232,255,237,255,235,255,225,255, +208,255,191,255,180,255,180,255,187,255,196,255,204,255,208,255,207,255,201,255,196,255,196,255,200,255,202,255,204,255,210,255, +219,255,233,255,254,255,25,0,58,0,90,0,116,0,133,0,141,0,141,0,133,0,125,0,118,0,110,0,98,0,80,0, +59,0,37,0,18,0,4,0,250,255,242,255,230,255,218,255,210,255,204,255,198,255,191,255,192,255,200,255,208,255,208,255, +206,255,211,255,222,255,232,255,237,255,241,255,246,255,250,255,253,255,5,0,20,0,35,0,40,0,35,0,30,0,31,0, +32,0,27,0,17,0,2,0,239,255,217,255,200,255,191,255,187,255,181,255,174,255,170,255,168,255,164,255,162,255,172,255, +195,255,219,255,232,255,235,255,239,255,250,255,7,0,16,0,23,0,36,0,56,0,75,0,86,0,85,0,78,0,68,0, +58,0,44,0,25,0,8,0,253,255,249,255,246,255,240,255,234,255,232,255,238,255,247,255,253,255,247,255,229,255,206,255, +192,255,188,255,186,255,177,255,166,255,165,255,171,255,172,255,163,255,162,255,181,255,211,255,230,255,233,255,239,255,7,0, +44,0,72,0,81,0,78,0,76,0,78,0,80,0,73,0,57,0,36,0,20,0,16,0,19,0,17,0,7,0,253,255, +0,0,14,0,28,0,33,0,27,0,14,0,254,255,234,255,213,255,190,255,168,255,152,255,148,255,156,255,166,255,177,255, +189,255,204,255,218,255,230,255,245,255,11,0,31,0,34,0,20,0,8,0,15,0,40,0,67,0,89,0,105,0,121,0, +132,0,137,0,139,0,144,0,153,0,163,0,164,0,153,0,131,0,101,0,68,0,36,0,12,0,0,0,248,255,233,255, +207,255,179,255,162,255,154,255,145,255,134,255,134,255,152,255,178,255,195,255,200,255,208,255,226,255,246,255,4,0,11,0, +14,0,14,0,10,0,12,0,27,0,49,0,59,0,56,0,53,0,63,0,81,0,92,0,94,0,93,0,93,0,90,0, +79,0,67,0,60,0,52,0,37,0,14,0,248,255,238,255,240,255,249,255,254,255,252,255,244,255,233,255,225,255,220,255, +220,255,225,255,234,255,243,255,247,255,251,255,5,0,18,0,19,0,1,0,228,255,201,255,186,255,181,255,179,255,176,255, +173,255,170,255,171,255,176,255,183,255,185,255,184,255,184,255,188,255,195,255,202,255,207,255,209,255,209,255,205,255,204,255, +208,255,216,255,221,255,222,255,224,255,231,255,241,255,251,255,254,255,248,255,237,255,231,255,241,255,6,0,22,0,24,0, +21,0,28,0,46,0,60,0,59,0,54,0,58,0,67,0,68,0,56,0,38,0,21,0,5,0,245,255,233,255,230,255, +239,255,255,255,20,0,40,0,53,0,60,0,69,0,85,0,100,0,99,0,81,0,60,0,48,0,44,0,39,0,29,0, +17,0,6,0,250,255,234,255,219,255,210,255,210,255,217,255,225,255,228,255,227,255,229,255,238,255,250,255,0,0,252,255, +243,255,237,255,239,255,248,255,1,0,3,0,253,255,243,255,236,255,235,255,233,255,227,255,220,255,215,255,211,255,207,255, +205,255,206,255,208,255,204,255,196,255,195,255,206,255,215,255,210,255,193,255,178,255,176,255,183,255,194,255,212,255,235,255, +249,255,250,255,246,255,254,255,20,0,40,0,48,0,53,0,69,0,97,0,128,0,151,0,162,0,160,0,146,0,125,0, +101,0,77,0,52,0,30,0,13,0,254,255,239,255,226,255,220,255,226,255,238,255,248,255,251,255,250,255,249,255,250,255, +251,255,249,255,239,255,221,255,203,255,194,255,194,255,195,255,191,255,188,255,190,255,194,255,195,255,192,255,193,255,198,255, +204,255,204,255,202,255,201,255,204,255,208,255,211,255,213,255,217,255,222,255,225,255,224,255,228,255,246,255,22,0,56,0, +77,0,82,0,84,0,92,0,99,0,103,0,107,0,118,0,130,0,126,0,100,0,63,0,30,0,0,0,226,255,201,255, +189,255,189,255,192,255,192,255,194,255,202,255,210,255,213,255,214,255,220,255,228,255,230,255,227,255,230,255,244,255,6,0, +20,0,30,0,42,0,52,0,51,0,38,0,30,0,42,0,70,0,94,0,100,0,86,0,67,0,58,0,59,0,63,0, +63,0,62,0,65,0,73,0,79,0,77,0,68,0,58,0,52,0,50,0,48,0,45,0,40,0,34,0,30,0,26,0, +21,0,13,0,3,0,248,255,233,255,214,255,195,255,186,255,191,255,201,255,205,255,201,255,193,255,188,255,184,255,180,255, +177,255,175,255,176,255,179,255,182,255,179,255,167,255,151,255,144,255,152,255,171,255,194,255,215,255,232,255,243,255,244,255, +239,255,238,255,243,255,248,255,252,255,2,0,16,0,29,0,37,0,39,0,47,0,63,0,79,0,87,0,86,0,80,0, +72,0,65,0,61,0,61,0,60,0,48,0,24,0,249,255,220,255,196,255,177,255,163,255,150,255,133,255,116,255,103,255, +103,255,113,255,126,255,137,255,146,255,155,255,166,255,177,255,185,255,193,255,205,255,222,255,241,255,0,0,9,0,20,0, +38,0,61,0,78,0,84,0,86,0,91,0,102,0,115,0,125,0,131,0,136,0,143,0,155,0,168,0,172,0,162,0, +141,0,121,0,105,0,88,0,66,0,47,0,35,0,25,0,8,0,239,255,216,255,201,255,191,255,185,255,183,255,186,255, +186,255,174,255,157,255,147,255,152,255,167,255,182,255,194,255,204,255,213,255,220,255,223,255,224,255,223,255,222,255,226,255, +235,255,248,255,4,0,11,0,14,0,15,0,19,0,30,0,44,0,57,0,64,0,70,0,80,0,95,0,106,0,112,0, +119,0,129,0,136,0,130,0,108,0,81,0,57,0,37,0,20,0,9,0,4,0,255,255,246,255,240,255,242,255,251,255, +255,255,246,255,229,255,217,255,212,255,207,255,192,255,170,255,149,255,136,255,131,255,127,255,121,255,111,255,104,255,104,255, +111,255,123,255,137,255,154,255,174,255,196,255,220,255,249,255,20,0,34,0,33,0,23,0,17,0,17,0,13,0,5,0, +254,255,255,255,3,0,3,0,251,255,241,255,234,255,231,255,231,255,233,255,240,255,249,255,7,0,26,0,46,0,61,0, +65,0,64,0,69,0,85,0,106,0,121,0,126,0,123,0,118,0,113,0,108,0,102,0,94,0,82,0,64,0,44,0, +34,0,37,0,48,0,51,0,39,0,15,0,250,255,241,255,238,255,234,255,224,255,212,255,199,255,183,255,164,255,149,255, +143,255,145,255,150,255,154,255,157,255,156,255,151,255,147,255,148,255,154,255,162,255,173,255,194,255,225,255,3,0,28,0, +43,0,58,0,78,0,99,0,109,0,105,0,91,0,74,0,57,0,41,0,27,0,16,0,10,0,6,0,3,0,1,0, +253,255,246,255,236,255,228,255,228,255,236,255,246,255,254,255,2,0,2,0,5,0,14,0,30,0,48,0,65,0,77,0, +84,0,84,0,81,0,77,0,73,0,70,0,66,0,62,0,59,0,57,0,54,0,49,0,43,0,42,0,44,0,41,0, +28,0,9,0,249,255,240,255,230,255,215,255,198,255,188,255,186,255,188,255,189,255,191,255,194,255,194,255,189,255,183,255, +182,255,189,255,199,255,208,255,215,255,224,255,232,255,235,255,234,255,231,255,231,255,231,255,231,255,229,255,227,255,229,255, +235,255,245,255,255,255,6,0,15,0,32,0,58,0,85,0,101,0,102,0,93,0,84,0,79,0,75,0,68,0,60,0, +54,0,50,0,46,0,38,0,29,0,22,0,19,0,17,0,15,0,13,0,12,0,12,0,12,0,11,0,13,0,17,0, +19,0,14,0,3,0,248,255,243,255,243,255,243,255,238,255,229,255,220,255,216,255,220,255,228,255,237,255,242,255,245,255, +253,255,11,0,25,0,30,0,27,0,21,0,15,0,11,0,3,0,250,255,241,255,236,255,235,255,234,255,232,255,229,255, +230,255,237,255,249,255,5,0,12,0,17,0,21,0,28,0,35,0,40,0,41,0,36,0,26,0,14,0,3,0,250,255, +238,255,224,255,212,255,206,255,204,255,200,255,194,255,192,255,194,255,197,255,197,255,198,255,205,255,217,255,229,255,239,255, +253,255,19,0,39,0,45,0,36,0,22,0,16,0,17,0,15,0,4,0,245,255,239,255,249,255,12,0,28,0,32,0, +31,0,32,0,37,0,36,0,26,0,9,0,252,255,242,255,231,255,216,255,202,255,191,255,186,255,185,255,187,255,193,255, +202,255,210,255,218,255,225,255,235,255,245,255,255,255,7,0,11,0,11,0,12,0,20,0,33,0,44,0,46,0,40,0, +32,0,27,0,21,0,9,0,250,255,240,255,241,255,251,255,8,0,20,0,29,0,34,0,35,0,32,0,28,0,20,0, +11,0,5,0,4,0,6,0,0,0,239,255,219,255,205,255,204,255,209,255,210,255,205,255,200,255,201,255,205,255,212,255, +220,255,232,255,249,255,10,0,23,0,29,0,33,0,37,0,41,0,43,0,42,0,38,0,35,0,34,0,34,0,33,0, +32,0,32,0,32,0,30,0,26,0,20,0,16,0,14,0,10,0,2,0,246,255,238,255,240,255,251,255,4,0,1,0, +246,255,238,255,244,255,2,0,14,0,15,0,7,0,0,0,255,255,3,0,6,0,9,0,12,0,17,0,20,0,18,0, +14,0,12,0,15,0,19,0,20,0,19,0,23,0,31,0,32,0,19,0,253,255,233,255,220,255,209,255,196,255,186,255, +184,255,189,255,192,255,194,255,198,255,207,255,215,255,218,255,220,255,227,255,242,255,6,0,25,0,41,0,51,0,52,0, +44,0,33,0,24,0,15,0,5,0,249,255,240,255,239,255,243,255,251,255,3,0,9,0,12,0,14,0,19,0,29,0, +40,0,46,0,46,0,46,0,47,0,50,0,52,0,55,0,60,0,65,0,65,0,61,0,56,0,53,0,51,0,45,0, +33,0,20,0,11,0,8,0,13,0,21,0,29,0,31,0,23,0,2,0,230,255,203,255,186,255,177,255,171,255,162,255, +149,255,137,255,132,255,131,255,131,255,133,255,141,255,157,255,176,255,191,255,201,255,208,255,215,255,223,255,231,255,240,255, +252,255,12,0,25,0,29,0,20,0,7,0,254,255,252,255,254,255,254,255,249,255,243,255,236,255,231,255,225,255,220,255, +215,255,214,255,215,255,217,255,216,255,210,255,205,255,205,255,211,255,218,255,225,255,234,255,246,255,1,0,3,0,255,255, +255,255,9,0,22,0,26,0,21,0,19,0,29,0,47,0,61,0,68,0,71,0,77,0,84,0,88,0,89,0,88,0, +88,0,86,0,83,0,79,0,71,0,60,0,46,0,31,0,21,0,13,0,7,0,1,0,252,255,248,255,245,255,242,255, +238,255,232,255,226,255,220,255,215,255,207,255,200,255,198,255,206,255,221,255,235,255,247,255,3,0,14,0,18,0,10,0, +250,255,235,255,226,255,219,255,210,255,198,255,186,255,177,255,169,255,160,255,152,255,149,255,156,255,169,255,179,255,180,255, +176,255,176,255,189,255,210,255,229,255,240,255,250,255,13,0,39,0,62,0,75,0,79,0,81,0,85,0,85,0,80,0, +71,0,64,0,61,0,60,0,56,0,50,0,44,0,38,0,34,0,29,0,24,0,21,0,21,0,22,0,19,0,12,0, +3,0,253,255,250,255,245,255,239,255,234,255,235,255,244,255,254,255,4,0,3,0,255,255,254,255,3,0,8,0,7,0, +253,255,241,255,238,255,246,255,1,0,10,0,16,0,24,0,36,0,47,0,54,0,60,0,70,0,84,0,96,0,103,0, +103,0,98,0,89,0,78,0,68,0,60,0,54,0,49,0,42,0,33,0,24,0,17,0,10,0,2,0,251,255,248,255, +246,255,240,255,232,255,225,255,220,255,214,255,206,255,200,255,202,255,209,255,216,255,217,255,217,255,221,255,229,255,234,255, +231,255,224,255,224,255,232,255,239,255,240,255,239,255,241,255,248,255,250,255,242,255,224,255,206,255,195,255,193,255,198,255, +202,255,202,255,201,255,203,255,211,255,218,255,224,255,232,255,244,255,2,0,15,0,27,0,39,0,48,0,50,0,49,0, +51,0,61,0,72,0,73,0,62,0,44,0,27,0,14,0,9,0,10,0,13,0,12,0,4,0,250,255,242,255,232,255, +219,255,204,255,194,255,190,255,190,255,191,255,194,255,198,255,201,255,202,255,207,255,220,255,237,255,1,0,21,0,40,0, +54,0,60,0,58,0,54,0,53,0,54,0,53,0,48,0,44,0,46,0,53,0,62,0,66,0,67,0,66,0,59,0, +46,0,33,0,23,0,13,0,255,255,236,255,221,255,215,255,217,255,220,255,220,255,218,255,219,255,222,255,228,255,237,255, +250,255,9,0,24,0,32,0,35,0,35,0,36,0,40,0,46,0,51,0,56,0,59,0,58,0,52,0,41,0,27,0, +9,0,245,255,228,255,217,255,211,255,205,255,196,255,185,255,175,255,171,255,173,255,178,255,185,255,193,255,197,255,196,255, +193,255,194,255,201,255,212,255,220,255,224,255,225,255,227,255,230,255,233,255,233,255,233,255,235,255,244,255,1,0,12,0, +18,0,24,0,29,0,30,0,28,0,27,0,30,0,33,0,27,0,15,0,5,0,0,0,252,255,248,255,248,255,249,255, +251,255,254,255,5,0,16,0,26,0,32,0,36,0,42,0,51,0,58,0,59,0,54,0,47,0,44,0,45,0,43,0, +40,0,37,0,36,0,32,0,26,0,19,0,15,0,12,0,9,0,5,0,2,0,252,255,243,255,231,255,220,255,212,255, +204,255,196,255,191,255,190,255,191,255,190,255,187,255,184,255,184,255,185,255,183,255,178,255,176,255,181,255,189,255,197,255, +203,255,214,255,230,255,248,255,6,0,16,0,26,0,39,0,53,0,61,0,63,0,63,0,69,0,82,0,97,0,107,0, +109,0,107,0,107,0,110,0,118,0,122,0,120,0,111,0,103,0,99,0,94,0,82,0,63,0,45,0,34,0,29,0, +23,0,11,0,250,255,233,255,217,255,203,255,190,255,181,255,177,255,174,255,168,255,158,255,148,255,141,255,143,255,150,255, +161,255,172,255,184,255,196,255,205,255,212,255,217,255,225,255,233,255,240,255,245,255,252,255,5,0,14,0,22,0,29,0, +36,0,42,0,46,0,48,0,49,0,49,0,49,0,49,0,53,0,60,0,66,0,68,0,66,0,65,0,64,0,62,0, +57,0,52,0,52,0,53,0,53,0,49,0,44,0,38,0,33,0,31,0,28,0,21,0,6,0,245,255,228,255,214,255, +200,255,185,255,172,255,164,255,163,255,163,255,163,255,161,255,161,255,165,255,169,255,171,255,173,255,178,255,186,255,194,255, +201,255,204,255,203,255,198,255,196,255,198,255,202,255,209,255,221,255,239,255,0,0,10,0,17,0,25,0,31,0,36,0, +41,0,49,0,53,0,51,0,47,0,47,0,48,0,42,0,31,0,21,0,16,0,14,0,13,0,17,0,24,0,32,0, +38,0,40,0,40,0,41,0,45,0,48,0,43,0,29,0,18,0,17,0,25,0,33,0,36,0,35,0,34,0,34,0, +33,0,31,0,27,0,20,0,16,0,17,0,18,0,11,0,253,255,240,255,230,255,221,255,211,255,205,255,206,255,208,255, +206,255,202,255,202,255,208,255,214,255,215,255,213,255,213,255,215,255,214,255,208,255,203,255,204,255,211,255,218,255,220,255, +220,255,222,255,229,255,239,255,250,255,5,0,16,0,23,0,26,0,25,0,20,0,12,0,3,0,251,255,243,255,239,255, +241,255,249,255,4,0,13,0,21,0,28,0,32,0,32,0,32,0,32,0,30,0,23,0,17,0,12,0,8,0,4,0, +6,0,8,0,5,0,250,255,245,255,252,255,7,0,13,0,12,0,10,0,6,0,3,0,2,0,7,0,11,0,12,0, +11,0,9,0,5,0,1,0,0,0,4,0,8,0,4,0,251,255,245,255,240,255,236,255,230,255,225,255,222,255,221,255, +222,255,223,255,223,255,224,255,228,255,233,255,239,255,242,255,243,255,241,255,237,255,237,255,240,255,245,255,251,255,4,0, +15,0,25,0,34,0,44,0,55,0,62,0,64,0,62,0,58,0,49,0,40,0,35,0,32,0,25,0,14,0,8,0, +7,0,6,0,2,0,255,255,252,255,242,255,227,255,214,255,209,255,208,255,206,255,206,255,205,255,204,255,202,255,204,255, +208,255,211,255,216,255,226,255,239,255,247,255,251,255,2,0,11,0,14,0,8,0,255,255,251,255,252,255,255,255,5,0, +12,0,15,0,14,0,15,0,18,0,20,0,16,0,9,0,2,0,251,255,245,255,241,255,239,255,236,255,234,255,235,255, +241,255,249,255,1,0,8,0,12,0,15,0,20,0,29,0,40,0,46,0,50,0,58,0,71,0,82,0,86,0,88,0, +95,0,105,0,110,0,110,0,106,0,98,0,85,0,68,0,52,0,39,0,27,0,14,0,2,0,246,255,232,255,214,255, +195,255,180,255,170,255,164,255,161,255,159,255,156,255,150,255,147,255,147,255,151,255,155,255,158,255,162,255,169,255,179,255, +187,255,194,255,206,255,224,255,246,255,9,0,22,0,29,0,29,0,27,0,26,0,28,0,29,0,27,0,24,0,23,0, +20,0,14,0,5,0,250,255,235,255,218,255,206,255,204,255,208,255,211,255,214,255,222,255,232,255,240,255,243,255,248,255, +255,255,7,0,18,0,31,0,43,0,50,0,55,0,61,0,69,0,76,0,80,0,84,0,86,0,86,0,84,0,83,0, +81,0,76,0,71,0,67,0,63,0,54,0,40,0,24,0,11,0,0,0,248,255,240,255,231,255,223,255,218,255,215,255, +216,255,217,255,219,255,222,255,230,255,242,255,253,255,1,0,0,0,3,0,11,0,18,0,20,0,21,0,25,0,27,0, +23,0,16,0,9,0,6,0,4,0,4,0,5,0,4,0,2,0,0,0,254,255,251,255,247,255,244,255,244,255,246,255, +250,255,1,0,9,0,15,0,15,0,12,0,9,0,10,0,14,0,22,0,28,0,26,0,17,0,9,0,5,0,1,0, +249,255,239,255,230,255,223,255,217,255,213,255,213,255,215,255,217,255,217,255,220,255,227,255,235,255,243,255,247,255,249,255, +248,255,246,255,244,255,242,255,237,255,231,255,226,255,226,255,227,255,228,255,232,255,239,255,247,255,249,255,244,255,240,255, +239,255,239,255,237,255,235,255,234,255,233,255,236,255,241,255,246,255,247,255,250,255,1,0,9,0,14,0,18,0,25,0, +32,0,36,0,39,0,42,0,44,0,41,0,34,0,28,0,24,0,21,0,17,0,12,0,4,0,252,255,247,255,251,255, +4,0,15,0,22,0,27,0,29,0,27,0,24,0,19,0,12,0,6,0,4,0,4,0,2,0,253,255,248,255,247,255, +247,255,242,255,235,255,228,255,225,255,226,255,233,255,242,255,248,255,249,255,249,255,250,255,248,255,245,255,242,255,243,255, +246,255,247,255,249,255,252,255,0,0,5,0,12,0,18,0,21,0,19,0,17,0,18,0,21,0,24,0,27,0,32,0, +39,0,43,0,42,0,37,0,31,0,26,0,19,0,13,0,12,0,13,0,11,0,4,0,251,255,247,255,247,255,245,255, +239,255,236,255,241,255,249,255,251,255,250,255,251,255,2,0,11,0,17,0,18,0,21,0,25,0,28,0,27,0,21,0, +15,0,12,0,12,0,12,0,10,0,7,0,4,0,3,0,1,0,251,255,243,255,235,255,227,255,220,255,212,255,204,255, +196,255,189,255,188,255,191,255,197,255,201,255,205,255,209,255,212,255,215,255,219,255,223,255,228,255,231,255,238,255,251,255, +14,0,29,0,34,0,29,0,22,0,19,0,20,0,19,0,18,0,17,0,16,0,13,0,7,0,5,0,9,0,15,0, +19,0,21,0,18,0,11,0,1,0,251,255,249,255,250,255,252,255,2,0,9,0,13,0,13,0,14,0,15,0,11,0, +2,0,254,255,3,0,7,0,3,0,254,255,255,255,5,0,8,0,6,0,4,0,3,0,2,0,3,0,4,0,1,0, +250,255,243,255,240,255,241,255,245,255,248,255,249,255,246,255,243,255,242,255,243,255,244,255,245,255,247,255,246,255,241,255, +235,255,230,255,228,255,228,255,234,255,243,255,249,255,249,255,249,255,254,255,4,0,7,0,8,0,12,0,16,0,17,0, +17,0,16,0,10,0,0,0,247,255,243,255,243,255,240,255,238,255,239,255,239,255,231,255,219,255,210,255,207,255,204,255, +201,255,197,255,194,255,193,255,196,255,201,255,204,255,204,255,204,255,206,255,208,255,210,255,212,255,218,255,225,255,229,255, +230,255,233,255,240,255,248,255,255,255,7,0,17,0,31,0,44,0,57,0,73,0,91,0,107,0,115,0,121,0,127,0, +131,0,129,0,121,0,115,0,114,0,114,0,112,0,108,0,101,0,92,0,81,0,71,0,65,0,59,0,50,0,36,0, +19,0,5,0,250,255,242,255,234,255,228,255,225,255,226,255,224,255,218,255,210,255,205,255,205,255,209,255,215,255,220,255, +222,255,222,255,222,255,225,255,231,255,239,255,248,255,1,0,9,0,12,0,12,0,10,0,8,0,7,0,8,0,10,0, +11,0,9,0,7,0,7,0,8,0,5,0,253,255,244,255,234,255,223,255,210,255,200,255,193,255,185,255,177,255,174,255, +178,255,182,255,179,255,171,255,170,255,176,255,183,255,184,255,182,255,182,255,186,255,193,255,198,255,201,255,202,255,209,255, +224,255,242,255,2,0,16,0,30,0,44,0,55,0,65,0,76,0,87,0,97,0,106,0,114,0,121,0,123,0,123,0, +122,0,119,0,113,0,104,0,95,0,87,0,80,0,71,0,63,0,54,0,47,0,42,0,39,0,37,0,35,0,31,0, +22,0,12,0,4,0,0,0,251,255,243,255,233,255,226,255,221,255,216,255,211,255,205,255,199,255,194,255,190,255,189,255, +190,255,193,255,202,255,214,255,223,255,225,255,223,255,224,255,229,255,235,255,237,255,236,255,236,255,240,255,246,255,251,255, +255,255,6,0,13,0,15,0,11,0,6,0,8,0,14,0,18,0,19,0,20,0,20,0,18,0,15,0,12,0,8,0, +3,0,0,0,1,0,2,0,0,0,249,255,240,255,230,255,220,255,212,255,212,255,217,255,222,255,221,255,217,255,212,255, +213,255,218,255,224,255,230,255,237,255,245,255,250,255,251,255,252,255,254,255,1,0,6,0,11,0,18,0,22,0,24,0, +24,0,27,0,31,0,36,0,46,0,56,0,57,0,51,0,44,0,41,0,40,0,36,0,29,0,25,0,20,0,12,0, +5,0,3,0,5,0,7,0,6,0,5,0,5,0,2,0,255,255,254,255,254,255,251,255,247,255,240,255,233,255,225,255, +219,255,220,255,223,255,225,255,224,255,224,255,227,255,229,255,230,255,233,255,240,255,248,255,253,255,252,255,250,255,245,255, +237,255,226,255,220,255,219,255,222,255,224,255,226,255,229,255,232,255,231,255,230,255,229,255,229,255,231,255,237,255,244,255, +247,255,243,255,236,255,235,255,239,255,242,255,242,255,244,255,250,255,1,0,6,0,8,0,12,0,17,0,21,0,25,0, +30,0,37,0,42,0,43,0,39,0,36,0,34,0,32,0,27,0,20,0,14,0,9,0,4,0,1,0,255,255,254,255, +253,255,255,255,2,0,8,0,14,0,19,0,23,0,24,0,22,0,19,0,18,0,19,0,20,0,20,0,21,0,20,0, +15,0,6,0,253,255,248,255,247,255,248,255,246,255,242,255,237,255,232,255,229,255,227,255,225,255,220,255,216,255,214,255, +217,255,220,255,220,255,218,255,218,255,216,255,213,255,212,255,215,255,222,255,228,255,233,255,237,255,241,255,245,255,252,255, +4,0,11,0,16,0,18,0,20,0,21,0,22,0,23,0,23,0,21,0,18,0,17,0,19,0,22,0,24,0,28,0, +33,0,37,0,36,0,31,0,27,0,28,0,32,0,38,0,42,0,45,0,47,0,49,0,50,0,48,0,47,0,46,0, +46,0,44,0,41,0,35,0,27,0,21,0,18,0,18,0,19,0,16,0,11,0,7,0,2,0,250,255,237,255,223,255, +211,255,202,255,196,255,192,255,189,255,187,255,185,255,183,255,182,255,182,255,181,255,182,255,185,255,189,255,195,255,202,255, +212,255,222,255,231,255,238,255,242,255,244,255,243,255,239,255,235,255,235,255,236,255,239,255,241,255,246,255,253,255,0,0, +0,0,1,0,5,0,12,0,18,0,25,0,33,0,42,0,50,0,56,0,60,0,63,0,63,0,61,0,56,0,49,0, +43,0,40,0,39,0,37,0,33,0,28,0,26,0,25,0,24,0,22,0,20,0,18,0,17,0,15,0,11,0,7,0, +4,0,2,0,0,0,1,0,7,0,15,0,21,0,23,0,24,0,24,0,24,0,21,0,17,0,13,0,11,0,9,0, +10,0,12,0,14,0,17,0,21,0,26,0,28,0,27,0,25,0,23,0,20,0,17,0,14,0,10,0,4,0,250,255, +240,255,231,255,223,255,215,255,207,255,203,255,204,255,209,255,215,255,219,255,220,255,222,255,225,255,232,255,237,255,240,255, +242,255,245,255,249,255,253,255,254,255,254,255,1,0,6,0,10,0,11,0,10,0,8,0,5,0,2,0,255,255,253,255, +251,255,247,255,243,255,240,255,240,255,242,255,244,255,247,255,251,255,253,255,254,255,253,255,252,255,251,255,251,255,252,255, +0,0,4,0,8,0,12,0,13,0,13,0,13,0,15,0,19,0,23,0,21,0,15,0,9,0,7,0,7,0,5,0, +0,0,252,255,250,255,247,255,243,255,237,255,234,255,233,255,234,255,237,255,240,255,241,255,240,255,236,255,232,255,232,255, +235,255,241,255,247,255,254,255,3,0,9,0,14,0,17,0,21,0,24,0,29,0,33,0,34,0,30,0,23,0,18,0, +15,0,13,0,11,0,12,0,13,0,12,0,9,0,4,0,1,0,255,255,250,255,243,255,234,255,226,255,221,255,217,255, +214,255,212,255,211,255,213,255,215,255,219,255,224,255,232,255,243,255,255,255,9,0,17,0,23,0,27,0,33,0,39,0, +45,0,47,0,45,0,40,0,34,0,27,0,19,0,10,0,2,0,250,255,242,255,234,255,227,255,224,255,223,255,225,255, +228,255,231,255,235,255,238,255,239,255,238,255,238,255,238,255,240,255,241,255,241,255,240,255,241,255,244,255,250,255,0,0, +2,0,2,0,3,0,6,0,9,0,10,0,9,0,8,0,8,0,8,0,9,0,8,0,5,0,2,0,0,0,1,0, +5,0,9,0,12,0,13,0,13,0,14,0,14,0,13,0,10,0,9,0,9,0,10,0,8,0,6,0,6,0,9,0, +14,0,21,0,26,0,27,0,25,0,23,0,22,0,20,0,18,0,17,0,21,0,27,0,30,0,28,0,23,0,21,0, +20,0,20,0,20,0,22,0,23,0,22,0,20,0,18,0,17,0,14,0,9,0,3,0,255,255,253,255,250,255,247,255, +245,255,243,255,242,255,243,255,245,255,247,255,248,255,250,255,255,255,3,0,5,0,5,0,5,0,6,0,5,0,1,0, +251,255,245,255,237,255,229,255,226,255,228,255,233,255,235,255,235,255,234,255,234,255,233,255,233,255,233,255,235,255,237,255, +235,255,231,255,225,255,221,255,220,255,219,255,216,255,213,255,211,255,213,255,218,255,222,255,224,255,228,255,235,255,240,255, +242,255,242,255,244,255,248,255,252,255,255,255,3,0,8,0,11,0,14,0,16,0,18,0,19,0,18,0,17,0,19,0, +21,0,22,0,22,0,21,0,21,0,21,0,22,0,24,0,24,0,21,0,20,0,22,0,25,0,24,0,18,0,11,0, +5,0,0,0,248,255,239,255,231,255,226,255,224,255,224,255,224,255,226,255,230,255,235,255,242,255,248,255,253,255,1,0, +4,0,8,0,8,0,5,0,2,0,1,0,2,0,2,0,2,0,3,0,6,0,9,0,10,0,8,0,6,0,5,0, +7,0,9,0,12,0,14,0,15,0,16,0,19,0,22,0,22,0,19,0,14,0,11,0,13,0,15,0,15,0,10,0, +4,0,2,0,4,0,9,0,13,0,17,0,18,0,19,0,18,0,18,0,17,0,15,0,12,0,11,0,9,0,6,0, +1,0,252,255,250,255,251,255,252,255,253,255,252,255,249,255,246,255,244,255,243,255,242,255,239,255,238,255,241,255,245,255, +249,255,250,255,251,255,254,255,0,0,1,0,2,0,2,0,1,0,255,255,253,255,252,255,254,255,255,255,254,255,251,255, +248,255,245,255,243,255,243,255,244,255,245,255,246,255,246,255,243,255,238,255,235,255,234,255,237,255,240,255,242,255,243,255, +244,255,243,255,242,255,242,255,245,255,247,255,248,255,250,255,253,255,255,255,0,0,1,0,2,0,5,0,7,0,8,0, +10,0,12,0,12,0,8,0,3,0,1,0,1,0,3,0,5,0,5,0,4,0,2,0,3,0,6,0,9,0,9,0, +8,0,6,0,5,0,0,0,250,255,246,255,245,255,244,255,241,255,240,255,243,255,248,255,253,255,1,0,5,0,12,0, +18,0,22,0,25,0,26,0,23,0,19,0,15,0,14,0,13,0,10,0,5,0,1,0,254,255,250,255,247,255,245,255, +245,255,245,255,243,255,241,255,239,255,236,255,232,255,231,255,233,255,237,255,239,255,239,255,240,255,244,255,249,255,252,255, +251,255,249,255,249,255,250,255,252,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,2,0,9,0,15,0,17,0, +15,0,14,0,16,0,19,0,21,0,19,0,17,0,15,0,16,0,16,0,15,0,14,0,11,0,6,0,2,0,254,255, +252,255,250,255,248,255,246,255,246,255,247,255,248,255,249,255,251,255,253,255,255,255,0,0,255,255,253,255,253,255,254,255, +254,255,252,255,248,255,246,255,244,255,240,255,236,255,233,255,232,255,231,255,230,255,231,255,233,255,236,255,240,255,243,255, +247,255,253,255,3,0,10,0,16,0,21,0,25,0,28,0,30,0,30,0,29,0,27,0,24,0,21,0,19,0,17,0, +16,0,12,0,6,0,254,255,247,255,244,255,243,255,241,255,238,255,236,255,238,255,241,255,241,255,241,255,241,255,242,255, +242,255,239,255,236,255,234,255,235,255,239,255,246,255,252,255,254,255,251,255,248,255,247,255,250,255,253,255,253,255,252,255, +252,255,253,255,0,0,5,0,10,0,14,0,15,0,13,0,13,0,16,0,19,0,21,0,22,0,25,0,30,0,33,0, +35,0,35,0,37,0,39,0,39,0,38,0,36,0,34,0,34,0,36,0,38,0,39,0,41,0,44,0,50,0,54,0, +55,0,52,0,50,0,47,0,43,0,36,0,30,0,26,0,24,0,22,0,18,0,13,0,8,0,3,0,254,255,251,255, +248,255,244,255,238,255,232,255,226,255,220,255,212,255,203,255,196,255,193,255,192,255,190,255,189,255,187,255,187,255,190,255, +195,255,199,255,202,255,203,255,205,255,208,255,211,255,213,255,213,255,214,255,218,255,223,255,227,255,231,255,232,255,234,255, +239,255,245,255,252,255,2,0,10,0,20,0,30,0,36,0,38,0,39,0,43,0,48,0,53,0,58,0,61,0,62,0, +61,0,58,0,56,0,53,0,48,0,42,0,35,0,26,0,17,0,10,0,7,0,7,0,5,0,2,0,254,255,251,255, +249,255,248,255,248,255,249,255,248,255,245,255,243,255,244,255,243,255,238,255,233,255,233,255,235,255,236,255,234,255,232,255, +232,255,233,255,234,255,235,255,236,255,237,255,236,255,236,255,239,255,247,255,255,255,4,0,8,0,12,0,14,0,15,0, +16,0,19,0,22,0,23,0,21,0,18,0,15,0,13,0,12,0,12,0,11,0,9,0,6,0,2,0,254,255,249,255, +244,255,241,255,240,255,242,255,245,255,247,255,248,255,249,255,249,255,247,255,244,255,239,255,235,255,232,255,230,255,230,255, +232,255,234,255,234,255,233,255,232,255,234,255,237,255,240,255,241,255,243,255,247,255,252,255,1,0,2,0,0,0,254,255, +255,255,2,0,5,0,4,0,0,0,251,255,251,255,252,255,254,255,254,255,255,255,2,0,6,0,10,0,12,0,15,0, +19,0,22,0,23,0,25,0,27,0,29,0,31,0,30,0,28,0,26,0,24,0,22,0,18,0,15,0,14,0,15,0, +16,0,16,0,16,0,18,0,19,0,18,0,17,0,16,0,18,0,18,0,17,0,14,0,10,0,7,0,3,0,0,0, +253,255,250,255,244,255,236,255,229,255,221,255,216,255,215,255,218,255,225,255,230,255,235,255,240,255,247,255,253,255,1,0, +1,0,255,255,253,255,251,255,249,255,250,255,251,255,252,255,252,255,252,255,253,255,253,255,255,255,1,0,3,0,2,0, +0,0,255,255,1,0,3,0,4,0,4,0,4,0,6,0,9,0,12,0,14,0,15,0,16,0,16,0,16,0,16,0, +14,0,12,0,11,0,9,0,6,0,3,0,0,0,255,255,255,255,255,255,255,255,254,255,252,255,252,255,254,255,0,0, +1,0,0,0,255,255,255,255,255,255,253,255,251,255,249,255,249,255,249,255,248,255,246,255,246,255,246,255,246,255,244,255, +242,255,241,255,241,255,243,255,244,255,244,255,245,255,246,255,246,255,245,255,245,255,246,255,246,255,245,255,242,255,241,255, +242,255,243,255,243,255,242,255,243,255,246,255,250,255,254,255,1,0,5,0,7,0,8,0,8,0,8,0,8,0,7,0, +6,0,6,0,7,0,11,0,15,0,18,0,20,0,20,0,21,0,22,0,23,0,22,0,20,0,20,0,23,0,25,0, +27,0,28,0,29,0,29,0,28,0,27,0,26,0,23,0,19,0,15,0,10,0,6,0,1,0,252,255,249,255,246,255, +244,255,241,255,238,255,236,255,234,255,233,255,232,255,230,255,228,255,227,255,227,255,230,255,234,255,237,255,239,255,241,255, +243,255,246,255,248,255,250,255,251,255,251,255,252,255,252,255,253,255,253,255,254,255,0,0,3,0,5,0,4,0,2,0, +2,0,3,0,4,0,2,0,255,255,254,255,0,0,0,0,1,0,2,0,4,0,5,0,3,0,255,255,253,255,254,255, +0,0,255,255,252,255,251,255,252,255,252,255,249,255,246,255,244,255,244,255,245,255,246,255,245,255,243,255,241,255,240,255, +240,255,240,255,242,255,246,255,252,255,0,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,255,255,254,255,252,255, +250,255,247,255,242,255,238,255,236,255,236,255,237,255,239,255,242,255,246,255,251,255,0,0,4,0,7,0,9,0,10,0, +11,0,11,0,10,0,10,0,11,0,13,0,15,0,15,0,15,0,15,0,15,0,13,0,11,0,8,0,4,0,255,255, +250,255,248,255,248,255,248,255,246,255,243,255,242,255,243,255,243,255,242,255,243,255,246,255,250,255,252,255,253,255,253,255, +254,255,0,0,0,0,1,0,3,0,6,0,9,0,12,0,16,0,20,0,22,0,23,0,24,0,27,0,30,0,28,0, +22,0,16,0,10,0,4,0,254,255,249,255,245,255,243,255,241,255,240,255,238,255,237,255,235,255,232,255,229,255,226,255, +225,255,229,255,234,255,238,255,238,255,237,255,235,255,235,255,234,255,234,255,237,255,245,255,253,255,1,0,4,0,6,0, +11,0,16,0,21,0,24,0,27,0,29,0,31,0,31,0,33,0,35,0,35,0,34,0,30,0,26,0,22,0,19,0, +15,0,11,0,7,0,5,0,2,0,0,0,254,255,252,255,252,255,253,255,255,255,1,0,4,0,6,0,8,0,8,0, +10,0,12,0,16,0,18,0,18,0,18,0,17,0,15,0,12,0,8,0,5,0,3,0,1,0,255,255,253,255,252,255, +251,255,252,255,254,255,1,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,1,0, +254,255,253,255,251,255,248,255,244,255,240,255,238,255,235,255,231,255,226,255,223,255,224,255,227,255,229,255,229,255,229,255, +229,255,230,255,229,255,227,255,227,255,229,255,232,255,234,255,234,255,235,255,238,255,242,255,246,255,251,255,0,0,4,0, +7,0,10,0,15,0,20,0,26,0,29,0,32,0,33,0,33,0,32,0,29,0,26,0,22,0,20,0,19,0,18,0, +16,0,14,0,14,0,17,0,20,0,21,0,22,0,23,0,26,0,28,0,27,0,24,0,21,0,19,0,17,0,16,0, +15,0,14,0,10,0,5,0,1,0,255,255,252,255,250,255,251,255,255,255,3,0,3,0,0,0,253,255,252,255,251,255, +249,255,247,255,248,255,249,255,250,255,249,255,248,255,248,255,249,255,248,255,247,255,246,255,245,255,244,255,242,255,241,255, +240,255,240,255,239,255,237,255,235,255,232,255,229,255,227,255,226,255,229,255,232,255,237,255,242,255,247,255,251,255,254,255, +254,255,255,255,255,255,0,0,0,0,253,255,249,255,246,255,245,255,246,255,248,255,249,255,250,255,251,255,253,255,254,255, +0,0,2,0,5,0,6,0,6,0,5,0,5,0,6,0,7,0,8,0,7,0,5,0,3,0,255,255,249,255,243,255, +241,255,243,255,249,255,253,255,254,255,254,255,255,255,0,0,2,0,6,0,12,0,18,0,21,0,21,0,20,0,18,0, +17,0,15,0,13,0,12,0,14,0,14,0,13,0,10,0,6,0,3,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,253,255,252,255,253,255,254,255,255,255,254,255,253,255,252,255,251,255,252,255,255,255,2,0,6,0, +8,0,9,0,13,0,17,0,20,0,20,0,17,0,13,0,12,0,13,0,14,0,12,0,6,0,0,0,250,255,246,255, +243,255,240,255,239,255,239,255,241,255,242,255,242,255,242,255,243,255,242,255,242,255,242,255,243,255,244,255,245,255,248,255, +251,255,252,255,251,255,250,255,248,255,248,255,249,255,249,255,249,255,250,255,253,255,0,0,2,0,4,0,6,0,7,0, +9,0,9,0,8,0,4,0,2,0,2,0,3,0,2,0,1,0,2,0,6,0,11,0,14,0,14,0,13,0,12,0, +12,0,11,0,10,0,8,0,7,0,7,0,8,0,10,0,11,0,10,0,7,0,3,0,0,0,255,255,1,0,4,0, +4,0,2,0,254,255,251,255,250,255,250,255,250,255,250,255,249,255,249,255,249,255,250,255,250,255,251,255,250,255,249,255, +247,255,245,255,244,255,243,255,244,255,246,255,247,255,248,255,250,255,251,255,251,255,253,255,1,0,5,0,6,0,6,0, +5,0,5,0,8,0,11,0,15,0,18,0,19,0,18,0,16,0,15,0,17,0,18,0,17,0,16,0,15,0,13,0, +9,0,4,0,0,0,0,0,3,0,5,0,6,0,6,0,5,0,1,0,253,255,251,255,252,255,251,255,249,255,246,255, +244,255,244,255,243,255,242,255,239,255,236,255,233,255,232,255,233,255,235,255,235,255,233,255,232,255,232,255,233,255,234,255, +234,255,236,255,239,255,243,255,246,255,249,255,252,255,255,255,1,0,1,0,1,0,0,0,255,255,253,255,251,255,248,255, +246,255,244,255,243,255,242,255,241,255,241,255,242,255,244,255,245,255,247,255,250,255,255,255,5,0,10,0,12,0,13,0, +14,0,17,0,18,0,17,0,18,0,21,0,24,0,25,0,23,0,19,0,18,0,19,0,19,0,17,0,14,0,13,0, +13,0,12,0,8,0,4,0,0,0,254,255,253,255,252,255,251,255,252,255,254,255,0,0,2,0,4,0,5,0,5,0, +5,0,7,0,11,0,14,0,14,0,13,0,12,0,11,0,10,0,10,0,10,0,9,0,6,0,4,0,3,0,3,0, +3,0,3,0,2,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,252,255,250,255,247,255, +244,255,242,255,242,255,243,255,243,255,243,255,241,255,241,255,242,255,243,255,245,255,246,255,247,255,250,255,252,255,253,255, +253,255,254,255,0,0,1,0,0,0,254,255,252,255,250,255,249,255,250,255,252,255,255,255,255,255,253,255,253,255,254,255, +0,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,5,0,6,0,8,0,9,0,11,0,14,0,18,0,21,0, +23,0,24,0,24,0,23,0,22,0,18,0,13,0,9,0,7,0,4,0,1,0,254,255,254,255,254,255,253,255,251,255, +247,255,244,255,244,255,243,255,241,255,239,255,237,255,235,255,235,255,235,255,238,255,242,255,244,255,246,255,247,255,249,255, +252,255,254,255,0,0,1,0,2,0,3,0,3,0,3,0,1,0,0,0,1,0,2,0,3,0,4,0,4,0,3,0, +0,0,254,255,253,255,253,255,253,255,252,255,252,255,252,255,251,255,249,255,246,255,245,255,247,255,249,255,250,255,249,255, +248,255,247,255,248,255,249,255,252,255,252,255,252,255,254,255,255,255,0,0,254,255,253,255,254,255,1,0,4,0,7,0, +8,0,8,0,7,0,5,0,6,0,8,0,10,0,12,0,16,0,18,0,18,0,16,0,17,0,18,0,18,0,16,0, +14,0,13,0,15,0,17,0,17,0,16,0,16,0,15,0,13,0,10,0,9,0,9,0,8,0,6,0,3,0,0,0, +0,0,255,255,253,255,253,255,254,255,255,255,255,255,253,255,252,255,251,255,250,255,248,255,245,255,240,255,237,255,238,255, +240,255,241,255,241,255,241,255,242,255,245,255,248,255,251,255,0,0,4,0,7,0,8,0,8,0,8,0,8,0,9,0, +10,0,10,0,9,0,7,0,7,0,6,0,6,0,7,0,8,0,9,0,9,0,7,0,4,0,0,0,252,255,250,255, +248,255,247,255,245,255,243,255,241,255,241,255,239,255,237,255,238,255,241,255,244,255,246,255,246,255,247,255,250,255,252,255, +253,255,253,255,254,255,1,0,4,0,5,0,4,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,255,255,253,255, +252,255,251,255,250,255,247,255,244,255,243,255,244,255,246,255,248,255,250,255,251,255,251,255,250,255,249,255,250,255,252,255, +252,255,251,255,249,255,249,255,247,255,245,255,244,255,244,255,246,255,248,255,248,255,249,255,252,255,255,255,1,0,1,0, +1,0,2,0,4,0,7,0,10,0,13,0,15,0,18,0,19,0,19,0,19,0,19,0,19,0,19,0,17,0,14,0, +12,0,13,0,14,0,13,0,12,0,13,0,13,0,12,0,12,0,11,0,9,0,8,0,6,0,4,0,3,0,1,0, +0,0,255,255,254,255,254,255,0,0,2,0,2,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0,255,255,253,255, +251,255,248,255,244,255,241,255,236,255,233,255,233,255,234,255,235,255,236,255,239,255,241,255,240,255,239,255,239,255,241,255, +244,255,247,255,247,255,245,255,247,255,251,255,255,255,1,0,2,0,4,0,7,0,10,0,12,0,13,0,15,0,16,0, +17,0,19,0,19,0,18,0,16,0,14,0,11,0,7,0,5,0,3,0,0,0,253,255,253,255,252,255,250,255,251,255, +252,255,253,255,254,255,254,255,252,255,251,255,251,255,252,255,251,255,248,255,247,255,245,255,243,255,243,255,244,255,244,255, +243,255,245,255,247,255,249,255,252,255,255,255,1,0,2,0,2,0,0,0,255,255,254,255,253,255,252,255,251,255,249,255, +247,255,248,255,248,255,247,255,247,255,246,255,246,255,245,255,245,255,247,255,249,255,251,255,254,255,0,0,4,0,8,0, +11,0,14,0,16,0,18,0,19,0,20,0,19,0,18,0,19,0,20,0,22,0,23,0,23,0,24,0,25,0,25,0, +23,0,19,0,17,0,14,0,10,0,8,0,8,0,6,0,3,0,2,0,2,0,2,0,3,0,4,0,6,0,8,0, +10,0,10,0,9,0,9,0,9,0,10,0,11,0,13,0,14,0,13,0,10,0,10,0,9,0,7,0,4,0,2,0, +255,255,253,255,251,255,249,255,246,255,242,255,237,255,232,255,228,255,226,255,223,255,221,255,220,255,220,255,221,255,220,255, +220,255,221,255,225,255,229,255,232,255,236,255,242,255,248,255,252,255,255,255,3,0,7,0,11,0,16,0,18,0,17,0, +18,0,21,0,23,0,25,0,25,0,24,0,22,0,20,0,20,0,18,0,17,0,18,0,19,0,19,0,20,0,19,0, +16,0,14,0,13,0,12,0,8,0,4,0,1,0,254,255,250,255,246,255,243,255,241,255,240,255,239,255,238,255,237,255, +237,255,237,255,237,255,238,255,239,255,241,255,245,255,248,255,250,255,252,255,254,255,0,0,1,0,2,0,4,0,6,0, +9,0,11,0,9,0,8,0,9,0,9,0,7,0,7,0,7,0,7,0,5,0,3,0,1,0,255,255,253,255,251,255, +249,255,247,255,247,255,248,255,250,255,251,255,252,255,253,255,254,255,255,255,0,0,1,0,2,0,5,0,11,0,15,0, +15,0,12,0,10,0,7,0,4,0,3,0,3,0,2,0,0,0,0,0,1,0,2,0,1,0,1,0,255,255,252,255, +249,255,246,255,245,255,244,255,244,255,242,255,240,255,238,255,236,255,234,255,233,255,235,255,237,255,239,255,242,255,245,255, +248,255,249,255,251,255,254,255,1,0,2,0,2,0,3,0,5,0,6,0,7,0,6,0,4,0,2,0,2,0,3,0, +3,0,2,0,0,0,253,255,251,255,250,255,251,255,251,255,250,255,249,255,248,255,249,255,251,255,254,255,255,255,0,0, +2,0,4,0,7,0,8,0,10,0,11,0,13,0,15,0,17,0,18,0,17,0,18,0,19,0,20,0,21,0,21,0, +22,0,20,0,16,0,13,0,11,0,9,0,6,0,0,0,251,255,248,255,247,255,245,255,242,255,240,255,240,255,239,255, +236,255,234,255,234,255,237,255,240,255,241,255,242,255,244,255,246,255,247,255,247,255,248,255,251,255,253,255,1,0,4,0, +6,0,6,0,7,0,9,0,12,0,15,0,17,0,17,0,17,0,17,0,16,0,15,0,15,0,13,0,10,0,8,0, +6,0,3,0,255,255,253,255,251,255,250,255,249,255,247,255,246,255,245,255,245,255,245,255,246,255,248,255,251,255,253,255, +255,255,0,0,255,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,1,0,255,255, +255,255,254,255,253,255,253,255,253,255,252,255,252,255,252,255,249,255,246,255,245,255,245,255,246,255,246,255,244,255,242,255, +242,255,243,255,244,255,245,255,245,255,246,255,246,255,247,255,248,255,248,255,248,255,249,255,250,255,251,255,251,255,252,255, +252,255,252,255,253,255,255,255,255,255,1,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,13,0,15,0,17,0, +19,0,20,0,19,0,18,0,18,0,18,0,17,0,18,0,19,0,18,0,17,0,17,0,15,0,14,0,13,0,11,0, +8,0,5,0,2,0,255,255,254,255,254,255,253,255,251,255,250,255,250,255,249,255,250,255,252,255,251,255,250,255,249,255, +248,255,246,255,246,255,247,255,246,255,246,255,248,255,249,255,250,255,253,255,1,0,4,0,7,0,10,0,11,0,11,0, +12,0,13,0,13,0,13,0,13,0,13,0,13,0,12,0,10,0,7,0,5,0,4,0,5,0,5,0,2,0,254,255, +252,255,253,255,253,255,251,255,251,255,253,255,255,255,254,255,253,255,253,255,252,255,252,255,251,255,249,255,249,255,250,255, +249,255,247,255,245,255,243,255,241,255,238,255,238,255,238,255,239,255,240,255,240,255,240,255,243,255,248,255,252,255,1,0, +3,0,5,0,7,0,10,0,13,0,14,0,14,0,14,0,15,0,16,0,18,0,18,0,16,0,16,0,15,0,12,0, +11,0,11,0,9,0,6,0,3,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,254,255,252,255,252,255,252,255, +253,255,253,255,254,255,254,255,255,255,0,0,254,255,253,255,0,0,3,0,3,0,0,0,254,255,0,0,2,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,2,0,2,0,1,0,255,255, +253,255,254,255,254,255,253,255,250,255,249,255,249,255,249,255,248,255,245,255,243,255,240,255,239,255,239,255,239,255,238,255, +238,255,239,255,241,255,243,255,247,255,249,255,250,255,253,255,0,0,3,0,5,0,7,0,8,0,7,0,6,0,6,0, +6,0,5,0,4,0,4,0,4,0,5,0,6,0,6,0,6,0,6,0,4,0,4,0,5,0,5,0,5,0,4,0, +4,0,3,0,3,0,4,0,3,0,3,0,3,0,1,0,255,255,254,255,254,255,252,255,251,255,251,255,251,255,249,255, +247,255,248,255,246,255,243,255,244,255,246,255,247,255,247,255,249,255,251,255,253,255,0,0,1,0,0,0,1,0,3,0, +4,0,3,0,4,0,6,0,7,0,9,0,10,0,10,0,10,0,11,0,11,0,9,0,8,0,8,0,7,0,6,0, +5,0,3,0,0,0,254,255,254,255,255,255,0,0,0,0,255,255,253,255,254,255,254,255,252,255,251,255,250,255,249,255, +248,255,247,255,246,255,245,255,245,255,245,255,244,255,244,255,244,255,245,255,246,255,247,255,248,255,246,255,247,255,250,255, +251,255,249,255,248,255,248,255,249,255,250,255,251,255,251,255,251,255,254,255,2,0,2,0,1,0,1,0,2,0,1,0, +255,255,255,255,255,255,254,255,255,255,1,0,2,0,2,0,2,0,2,0,1,0,1,0,255,255,253,255,252,255,253,255, +0,0,1,0,1,0,1,0,0,0,255,255,253,255,254,255,0,0,2,0,3,0,2,0,3,0,6,0,9,0,13,0, +14,0,15,0,17,0,20,0,24,0,25,0,25,0,26,0,25,0,23,0,21,0,21,0,21,0,20,0,17,0,11,0, +6,0,3,0,5,0,4,0,1,0,252,255,249,255,246,255,243,255,241,255,239,255,237,255,237,255,237,255,235,255,233,255, +232,255,233,255,235,255,238,255,240,255,243,255,244,255,247,255,249,255,252,255,254,255,1,0,2,0,2,0,1,0,2,0, +5,0,6,0,7,0,8,0,9,0,7,0,5,0,4,0,3,0,2,0,2,0,3,0,2,0,1,0,0,0,255,255, +0,0,0,0,0,0,254,255,252,255,252,255,254,255,0,0,1,0,2,0,3,0,5,0,6,0,6,0,6,0,6,0, +7,0,8,0,9,0,8,0,8,0,8,0,8,0,6,0,3,0,1,0,255,255,254,255,253,255,253,255,252,255,254,255, +0,0,1,0,0,0,255,255,254,255,253,255,253,255,254,255,0,0,1,0,2,0,4,0,7,0,9,0,11,0,12,0, +11,0,10,0,10,0,12,0,13,0,11,0,9,0,9,0,8,0,6,0,4,0,3,0,2,0,1,0,255,255,253,255, +251,255,248,255,245,255,244,255,244,255,243,255,243,255,245,255,246,255,243,255,241,255,242,255,245,255,246,255,247,255,248,255, +251,255,253,255,0,0,2,0,3,0,4,0,6,0,8,0,11,0,14,0,13,0,10,0,7,0,7,0,6,0,4,0, +2,0,1,0,0,0,254,255,254,255,254,255,254,255,252,255,250,255,249,255,249,255,250,255,251,255,251,255,250,255,249,255, +249,255,249,255,249,255,248,255,248,255,249,255,251,255,253,255,253,255,252,255,252,255,253,255,254,255,254,255,1,0,4,0, +7,0,7,0,7,0,8,0,8,0,9,0,10,0,10,0,9,0,8,0,8,0,7,0,5,0,3,0,1,0,255,255, +255,255,255,255,254,255,252,255,250,255,247,255,246,255,247,255,249,255,250,255,251,255,253,255,255,255,254,255,252,255,253,255, +253,255,253,255,0,0,3,0,6,0,5,0,5,0,7,0,8,0,7,0,6,0,5,0,5,0,6,0,7,0,8,0, +8,0,7,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,2,0,0,0,254,255,255,255,255,255,253,255, +250,255,248,255,248,255,248,255,246,255,245,255,246,255,248,255,248,255,248,255,248,255,250,255,252,255,253,255,252,255,253,255, +255,255,255,255,254,255,254,255,0,0,1,0,1,0,2,0,1,0,254,255,253,255,253,255,253,255,251,255,249,255,247,255, +246,255,247,255,247,255,245,255,243,255,242,255,241,255,241,255,242,255,243,255,244,255,245,255,245,255,244,255,244,255,247,255, +248,255,247,255,246,255,246,255,246,255,246,255,249,255,253,255,255,255,0,0,2,0,5,0,6,0,6,0,8,0,10,0, +11,0,13,0,14,0,13,0,12,0,13,0,14,0,12,0,10,0,11,0,13,0,14,0,14,0,17,0,19,0,19,0, +19,0,19,0,17,0,16,0,16,0,17,0,16,0,16,0,14,0,12,0,10,0,9,0,9,0,8,0,8,0,9,0, +8,0,3,0,0,0,1,0,0,0,254,255,252,255,251,255,249,255,248,255,247,255,246,255,247,255,248,255,248,255,247,255, +244,255,243,255,244,255,247,255,248,255,248,255,247,255,249,255,251,255,253,255,254,255,254,255,253,255,253,255,254,255,255,255, +255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,253,255,251,255,250,255,249,255,249,255,250,255,251,255,251,255, +251,255,251,255,250,255,249,255,247,255,246,255,244,255,243,255,244,255,246,255,248,255,248,255,247,255,246,255,247,255,248,255, +250,255,252,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,254,255,253,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,4,0,4,0,3,0,3,0,2,0,1,0,1,0,0,0,254,255,253,255,255,255,2,0, +3,0,1,0,255,255,254,255,254,255,255,255,1,0,1,0,0,0,0,0,2,0,2,0,1,0,2,0,2,0,0,0, +253,255,251,255,252,255,253,255,253,255,251,255,250,255,252,255,255,255,2,0,4,0,4,0,3,0,4,0,6,0,8,0, +8,0,8,0,10,0,10,0,10,0,10,0,9,0,9,0,9,0,9,0,6,0,2,0,2,0,3,0,1,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255, +254,255,254,255,254,255,255,255,1,0,2,0,0,0,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,254,255,253,255,253,255,254,255,252,255,251,255,253,255,254,255,255,255,0,0,1,0,254,255, +252,255,254,255,255,255,254,255,252,255,253,255,255,255,254,255,252,255,251,255,251,255,251,255,252,255,253,255,254,255,255,255, +1,0,3,0,3,0,4,0,6,0,7,0,6,0,5,0,5,0,6,0,7,0,6,0,5,0,4,0,3,0,3,0, +2,0,0,0,255,255,255,255,1,0,2,0,4,0,5,0,5,0,4,0,2,0,1,0,2,0,5,0,5,0,3,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,2,0,1,0,255,255,254,255,1,0, +4,0,5,0,5,0,5,0,5,0,6,0,9,0,11,0,10,0,8,0,8,0,10,0,11,0,13,0,14,0,12,0, +8,0,6,0,7,0,9,0,9,0,8,0,6,0,4,0,2,0,1,0,0,0,254,255,252,255,252,255,251,255,250,255, +248,255,246,255,244,255,243,255,243,255,244,255,245,255,244,255,243,255,242,255,241,255,244,255,247,255,248,255,245,255,243,255, +246,255,248,255,248,255,248,255,250,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,255,255, +0,0,2,0,1,0,0,0,1,0,4,0,5,0,5,0,4,0,5,0,8,0,10,0,10,0,9,0,9,0,10,0, +11,0,13,0,14,0,12,0,10,0,8,0,9,0,10,0,11,0,10,0,9,0,9,0,8,0,8,0,8,0,8,0, +8,0,9,0,11,0,12,0,11,0,10,0,10,0,8,0,6,0,6,0,8,0,7,0,4,0,3,0,3,0,4,0, +3,0,4,0,3,0,1,0,0,0,1,0,0,0,254,255,253,255,253,255,251,255,251,255,254,255,254,255,251,255,250,255, +250,255,248,255,244,255,245,255,247,255,247,255,247,255,250,255,252,255,251,255,249,255,249,255,251,255,253,255,0,0,1,0, +1,0,1,0,1,0,255,255,0,0,2,0,4,0,3,0,1,0,0,0,0,0,2,0,3,0,3,0,1,0,255,255, +252,255,250,255,250,255,250,255,251,255,250,255,250,255,249,255,247,255,245,255,244,255,243,255,242,255,243,255,244,255,245,255, +246,255,247,255,248,255,249,255,251,255,252,255,251,255,250,255,248,255,249,255,250,255,252,255,254,255,254,255,252,255,250,255, +248,255,247,255,247,255,247,255,248,255,249,255,250,255,251,255,250,255,250,255,250,255,252,255,255,255,1,0,1,0,2,0, +5,0,7,0,7,0,7,0,8,0,9,0,9,0,10,0,12,0,13,0,13,0,13,0,12,0,12,0,11,0,9,0, +7,0,6,0,5,0,5,0,4,0,3,0,0,0,254,255,253,255,253,255,252,255,252,255,251,255,252,255,252,255,253,255, +252,255,252,255,253,255,255,255,255,255,253,255,251,255,251,255,250,255,251,255,253,255,254,255,254,255,0,0,3,0,4,0, +4,0,3,0,4,0,4,0,4,0,5,0,7,0,9,0,9,0,7,0,4,0,3,0,2,0,1,0,1,0,0,0, +254,255,252,255,251,255,252,255,252,255,253,255,253,255,254,255,0,0,1,0,2,0,4,0,6,0,7,0,6,0,5,0, +4,0,3,0,1,0,0,0,0,0,0,0,254,255,253,255,254,255,254,255,252,255,251,255,252,255,253,255,254,255,253,255, +251,255,248,255,247,255,248,255,249,255,249,255,248,255,249,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255, +251,255,252,255,253,255,253,255,254,255,255,255,1,0,2,0,2,0,3,0,4,0,4,0,5,0,7,0,8,0,9,0, +8,0,8,0,9,0,8,0,6,0,6,0,6,0,5,0,3,0,1,0,2,0,2,0,4,0,7,0,10,0,10,0, +7,0,4,0,2,0,3,0,3,0,2,0,255,255,254,255,255,255,254,255,250,255,248,255,249,255,250,255,250,255,249,255, +249,255,249,255,250,255,253,255,252,255,251,255,252,255,255,255,255,255,254,255,255,255,255,255,254,255,0,0,2,0,2,0, +0,0,253,255,253,255,253,255,254,255,0,0,0,0,0,0,1,0,2,0,4,0,5,0,6,0,4,0,2,0,3,0, +5,0,4,0,2,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,2,0,1,0,0,0,0,0,1,0,255,255, +252,255,250,255,251,255,252,255,251,255,250,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255,249,255,248,255,248,255, +248,255,249,255,250,255,249,255,248,255,248,255,249,255,252,255,253,255,254,255,254,255,253,255,251,255,250,255,250,255,250,255, +250,255,249,255,248,255,248,255,250,255,251,255,250,255,249,255,248,255,248,255,248,255,249,255,249,255,249,255,251,255,253,255, +253,255,254,255,0,0,1,0,1,0,1,0,4,0,6,0,6,0,5,0,2,0,0,0,0,0,1,0,0,0,254,255, +253,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,3,0, +3,0,4,0,5,0,5,0,4,0,3,0,4,0,3,0,2,0,2,0,5,0,6,0,7,0,7,0,8,0,9,0, +10,0,10,0,10,0,10,0,9,0,9,0,8,0,7,0,6,0,6,0,6,0,4,0,4,0,4,0,4,0,3,0, +3,0,2,0,2,0,1,0,0,0,255,255,254,255,254,255,253,255,253,255,252,255,251,255,252,255,252,255,253,255,253,255, +254,255,254,255,255,255,0,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255,254,255,253,255,254,255,254,255,253,255, +253,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,4,0, +4,0,3,0,2,0,2,0,4,0,6,0,7,0,8,0,9,0,9,0,9,0,8,0,8,0,9,0,8,0,6,0, +5,0,5,0,6,0,4,0,3,0,3,0,4,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,4,0, +2,0,1,0,0,0,255,255,253,255,252,255,252,255,252,255,250,255,249,255,248,255,249,255,249,255,250,255,251,255,250,255, +249,255,250,255,251,255,252,255,252,255,251,255,249,255,247,255,247,255,249,255,249,255,249,255,249,255,249,255,253,255,255,255, +254,255,252,255,252,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,3,0,5,0, +7,0,6,0,6,0,5,0,4,0,3,0,3,0,2,0,1,0,2,0,5,0,6,0,6,0,7,0,7,0,6,0, +5,0,6,0,6,0,5,0,2,0,0,0,1,0,1,0,0,0,254,255,253,255,252,255,252,255,252,255,252,255,251,255, +252,255,253,255,253,255,253,255,254,255,255,255,0,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +254,255,0,0,2,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,6,0,5,0,5,0,6,0,8,0,8,0, +7,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,5,0,3,0,4,0,5,0,4,0, +3,0,3,0,4,0,3,0,3,0,1,0,255,255,255,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255, +254,255,255,255,254,255,251,255,251,255,252,255,250,255,248,255,249,255,250,255,250,255,249,255,249,255,250,255,251,255,252,255, +253,255,253,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,3,0,3,0,2,0,1,0,1,0, +2,0,4,0,6,0,4,0,2,0,2,0,3,0,3,0,3,0,3,0,1,0,1,0,4,0,7,0,6,0,5,0, +4,0,5,0,5,0,5,0,4,0,4,0,5,0,6,0,6,0,4,0,3,0,3,0,3,0,3,0,4,0,3,0, +2,0,1,0,1,0,0,0,254,255,253,255,252,255,252,255,254,255,255,255,253,255,251,255,252,255,252,255,251,255,251,255, +250,255,249,255,249,255,250,255,251,255,252,255,252,255,249,255,249,255,251,255,251,255,249,255,248,255,250,255,252,255,253,255, +253,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255,250,255,250,255,252,255,252,255,250,255,249,255, +250,255,251,255,254,255,2,0,2,0,2,0,3,0,4,0,5,0,4,0,4,0,3,0,4,0,6,0,4,0,1,0, +254,255,253,255,251,255,251,255,251,255,252,255,251,255,250,255,249,255,250,255,252,255,253,255,253,255,252,255,253,255,254,255, +253,255,253,255,253,255,253,255,252,255,250,255,251,255,251,255,252,255,254,255,255,255,254,255,254,255,0,0,0,0,255,255, +1,0,3,0,4,0,4,0,5,0,4,0,4,0,4,0,3,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0, +255,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,4,0,3,0,3,0,2,0,3,0,3,0, +4,0,3,0,2,0,1,0,3,0,3,0,1,0,0,0,0,0,254,255,253,255,252,255,252,255,253,255,253,255,251,255, +250,255,251,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255, +255,255,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,5,0,3,0, +2,0,2,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,3,0,4,0,4,0,4,0, +5,0,6,0,6,0,5,0,5,0,6,0,6,0,4,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,254,255, +254,255,254,255,255,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255, +253,255,253,255,252,255,251,255,252,255,253,255,254,255,255,255,0,0,255,255,254,255,253,255,253,255,253,255,254,255,253,255, +252,255,253,255,253,255,251,255,249,255,249,255,250,255,252,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,0,0, +1,0,3,0,5,0,6,0,6,0,6,0,5,0,6,0,8,0,8,0,6,0,7,0,10,0,13,0,13,0,10,0, +8,0,8,0,9,0,8,0,7,0,6,0,5,0,3,0,2,0,1,0,0,0,253,255,251,255,249,255,247,255,247,255, +247,255,245,255,243,255,243,255,243,255,243,255,243,255,244,255,244,255,243,255,243,255,245,255,247,255,247,255,248,255,250,255, +251,255,251,255,252,255,254,255,0,0,1,0,0,0,0,0,2,0,4,0,5,0,5,0,5,0,6,0,5,0,5,0, +4,0,4,0,6,0,7,0,5,0,4,0,5,0,5,0,4,0,4,0,5,0,6,0,8,0,10,0,10,0,9,0, +8,0,8,0,8,0,8,0,5,0,4,0,4,0,3,0,3,0,5,0,5,0,4,0,4,0,5,0,4,0,2,0, +3,0,2,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,253,255,253,255,254,255,255,255,255,255,255,255,0,0,1,0,4,0,5,0,4,0,2,0, +3,0,4,0,5,0,6,0,6,0,4,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,3,0,4,0,3,0, +2,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0,0,0,255,255,255,255,255,255,254,255,253,255,253,255,252,255, +252,255,251,255,250,255,250,255,252,255,252,255,250,255,249,255,248,255,248,255,249,255,250,255,250,255,251,255,253,255,254,255, +254,255,255,255,254,255,253,255,254,255,0,0,255,255,255,255,1,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255, +252,255,252,255,253,255,253,255,253,255,252,255,251,255,252,255,252,255,252,255,251,255,251,255,252,255,251,255,250,255,249,255, +250,255,253,255,253,255,252,255,253,255,255,255,0,0,1,0,1,0,1,0,2,0,4,0,4,0,3,0,3,0,4,0, +5,0,5,0,4,0,2,0,1,0,2,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,2,0,2,0,1,0,255,255,254,255,253,255,254,255,255,255,253,255,250,255,250,255,253,255,254,255,255,255,255,255, +255,255,254,255,255,255,0,0,254,255,254,255,254,255,255,255,0,0,2,0,3,0,3,0,5,0,5,0,4,0,3,0, +3,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0,6,0,6,0, +5,0,4,0,4,0,4,0,2,0,1,0,255,255,254,255,255,255,1,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,0,0,1,0,1,0,255,255,253,255, +254,255,0,0,2,0,1,0,0,0,253,255,253,255,253,255,252,255,251,255,253,255,254,255,254,255,253,255,253,255,251,255, +251,255,251,255,252,255,253,255,255,255,0,0,255,255,255,255,1,0,1,0,254,255,253,255,254,255,254,255,253,255,253,255, +253,255,253,255,255,255,255,255,253,255,251,255,250,255,250,255,251,255,253,255,254,255,253,255,253,255,254,255,255,255,0,0, +0,0,0,0,2,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,6,0,6,0,7,0, +7,0,7,0,7,0,6,0,5,0,3,0,1,0,0,0,0,0,1,0,1,0,0,0,254,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0,255,255,254,255,254,255, +0,0,1,0,255,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,250,255,250,255,250,255,250,255, +250,255,250,255,249,255,247,255,248,255,249,255,248,255,248,255,249,255,249,255,248,255,249,255,250,255,249,255,249,255,250,255, +250,255,251,255,253,255,252,255,251,255,252,255,254,255,0,0,1,0,1,0,0,0,1,0,1,0,3,0,4,0,3,0, +1,0,0,0,0,0,1,0,2,0,1,0,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,0,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,3,0, +5,0,6,0,7,0,7,0,7,0,6,0,5,0,5,0,7,0,6,0,5,0,7,0,8,0,5,0,4,0,5,0, +5,0,6,0,7,0,7,0,6,0,6,0,7,0,8,0,9,0,9,0,8,0,6,0,6,0,6,0,8,0,9,0, +8,0,6,0,6,0,6,0,6,0,6,0,4,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,2,0, +4,0,4,0,3,0,3,0,5,0,8,0,10,0,8,0,6,0,6,0,5,0,4,0,4,0,4,0,3,0,2,0, +2,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255, +253,255,252,255,253,255,255,255,254,255,252,255,251,255,250,255,250,255,251,255,252,255,251,255,250,255,249,255,249,255,248,255, +248,255,248,255,248,255,248,255,248,255,249,255,250,255,251,255,252,255,252,255,251,255,251,255,250,255,249,255,247,255,250,255, +253,255,253,255,253,255,253,255,252,255,251,255,253,255,0,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,253,255,252,255,252,255,251,255,250,255,250,255,249,255,250,255,252,255,253,255,253,255, +253,255,253,255,253,255,253,255,253,255,253,255,252,255,254,255,254,255,253,255,254,255,254,255,251,255,251,255,253,255,253,255, +251,255,252,255,254,255,254,255,0,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,4,0, +4,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,4,0,4,0,3,0,3,0, +5,0,5,0,5,0,6,0,5,0,4,0,3,0,5,0,4,0,3,0,2,0,3,0,2,0,1,0,2,0,3,0, +1,0,0,0,1,0,0,0,255,255,253,255,252,255,252,255,254,255,253,255,250,255,249,255,250,255,249,255,247,255,247,255, +248,255,248,255,248,255,248,255,249,255,249,255,250,255,250,255,251,255,252,255,254,255,255,255,254,255,253,255,254,255,254,255, +253,255,252,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,2,0,3,0,5,0, +5,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255, +253,255,255,255,2,0,3,0,2,0,2,0,2,0,2,0,3,0,5,0,3,0,2,0,2,0,2,0,2,0,4,0, +5,0,4,0,2,0,3,0,5,0,6,0,5,0,4,0,5,0,7,0,7,0,7,0,6,0,6,0,5,0,4,0, +2,0,1,0,2,0,2,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255, +253,255,252,255,253,255,253,255,252,255,251,255,251,255,251,255,251,255,252,255,254,255,253,255,253,255,254,255,0,0,0,0, +0,0,255,255,0,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,255,255,254,255,254,255,253,255, +253,255,253,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,253,255,253,255,254,255,0,0,0,0,0,0,0,0, +0,0,2,0,3,0,3,0,3,0,4,0,5,0,5,0,4,0,4,0,5,0,6,0,5,0,4,0,5,0,5,0, +4,0,3,0,3,0,2,0,2,0,2,0,1,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +254,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,0,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0, +5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,254,255,254,255,255,255,0,0,254,255,252,255,252,255, +253,255,253,255,253,255,252,255,252,255,253,255,254,255,255,255,255,255,254,255,253,255,254,255,255,255,254,255,253,255,254,255, +253,255,253,255,254,255,255,255,253,255,252,255,253,255,253,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,253,255,252,255,252,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255, +252,255,254,255,0,0,0,0,255,255,255,255,1,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,0,0,255,255, +254,255,253,255,253,255,253,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,252,255,252,255,253,255,253,255,251,255, +251,255,251,255,252,255,252,255,251,255,251,255,252,255,253,255,253,255,254,255,0,0,1,0,2,0,2,0,1,0,1,0, +1,0,2,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,6,0, +5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,3,0,3,0,4,0,3,0,2,0,2,0, +4,0,4,0,5,0,6,0,4,0,2,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0, +2,0,2,0,3,0,3,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,255,255,254,255,254,255, +254,255,254,255,254,255,253,255,252,255,253,255,253,255,252,255,252,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255, +254,255,254,255,255,255,254,255,254,255,0,0,2,0,2,0,3,0,3,0,1,0,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,254,255,253,255,253,255,254,255,253,255,252,255,251,255,251,255,251,255,251,255, +251,255,250,255,250,255,249,255,248,255,247,255,248,255,248,255,247,255,248,255,249,255,250,255,250,255,249,255,249,255,250,255, +251,255,251,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255,255,255,0,0,0,0,0,0,255,255, +253,255,253,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,255,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,0,0,1,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0,254,255,253,255,254,255,255,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255, +255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +255,255,1,0,2,0,2,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,5,0,5,0, +3,0,3,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,4,0,2,0,2,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255, +255,255,1,0,2,0,2,0,1,0,2,0,3,0,3,0,4,0,5,0,5,0,6,0,6,0,6,0,5,0,5,0, +4,0,5,0,6,0,5,0,4,0,3,0,5,0,5,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,253,255,253,255,253,255,254,255,255,255, +0,0,255,255,254,255,254,255,254,255,255,255,1,0,2,0,2,0,2,0,1,0,2,0,3,0,4,0,3,0,3,0, +3,0,3,0,4,0,6,0,6,0,5,0,5,0,6,0,7,0,8,0,9,0,8,0,7,0,8,0,9,0,9,0, +8,0,8,0,7,0,7,0,7,0,8,0,7,0,6,0,6,0,5,0,5,0,6,0,5,0,4,0,4,0,4,0, +3,0,2,0,0,0,255,255,254,255,254,255,253,255,252,255,254,255,254,255,252,255,251,255,251,255,251,255,251,255,251,255, +251,255,251,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,3,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +0,0,255,255,254,255,254,255,254,255,253,255,252,255,251,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,250,255, +250,255,251,255,252,255,252,255,251,255,251,255,252,255,252,255,254,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255, +255,255,254,255,253,255,252,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,251,255,252,255,253,255,252,255,252,255, +253,255,253,255,254,255,254,255,254,255,253,255,254,255,254,255,253,255,253,255,253,255,251,255,250,255,251,255,252,255,252,255, +252,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,252,255,251,255,252,255,252,255,252,255,251,255, +250,255,250,255,250,255,251,255,250,255,250,255,250,255,251,255,251,255,252,255,253,255,253,255,252,255,251,255,250,255,251,255, +251,255,251,255,251,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0, +3,0,4,0,4,0,4,0,5,0,6,0,7,0,7,0,6,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0,5,0,5,0, +6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,4,0,3,0,3,0,4,0,4,0,3,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,254,255,253,255,254,255,254,255,253,255,253,255,252,255,252,255,253,255,255,255,255,255, +255,255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,251,255,251,255,252,255, +251,255,250,255,250,255,251,255,251,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255, +252,255,252,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,252,255,252,255, +251,255,251,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,255,255,255,255,255,255,1,0,2,0, +2,0,2,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,1,0,0,0,1,0, +0,0,254,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,3,0,4,0,5,0,4,0,4,0, +6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,3,0,2,0,3,0,3,0,2,0, +1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,5,0,4,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0, +6,0,6,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0,5,0,4,0,4,0,3,0,3,0,4,0,4,0, +2,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255, +255,255,255,255,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255,253,255, +253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,253,255,253,255,255,255,0,0, +0,0,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,254,255,254,255,254,255,254,255,255,255,255,255,253,255,252,255, +253,255,252,255,253,255,253,255,253,255,252,255,253,255,254,255,254,255,254,255,255,255,253,255,254,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,254,255,255,255,254,255,252,255,252,255,253,255,253,255, +254,255,253,255,252,255,251,255,250,255,250,255,251,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0, +2,0,2,0,0,0,0,0,1,0,0,0,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0, +2,0,2,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,5,0,4,0,2,0,2,0,3,0,2,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,3,0,2,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255, +254,255,253,255,252,255,253,255,253,255,252,255,251,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255, +0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,253,255,253,255,254,255,255,255,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,252,255,252,255,252,255,253,255,253,255, +253,255,254,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255, +252,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0, +3,0,4,0,3,0,2,0,3,0,4,0,4,0,4,0,3,0,3,0,2,0,3,0,4,0,4,0,4,0,5,0, +4,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,2,0, +2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,254,255, +254,255,253,255,253,255,254,255,254,255,252,255,252,255,252,255,251,255,251,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,253,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,253,255,253,255, +253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,1,0,2,0,2,0, +1,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0, +1,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0, +1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,253,255,253,255,254,255,255,255,254,255,254,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255, +255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,254,255, +254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0, +3,0,4,0,4,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,3,0,2,0, +2,0,3,0,3,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,253,255, +253,255,253,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,2,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0, +0,0,255,255,0,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,254,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +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,255,255,255,255, +0,0,255,255,254,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,1,0,2,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,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, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,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,255,255,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,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,1,0, +1,0,1,0,1,0,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,1,0,1,0,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,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,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,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,1,0, +1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,1,0, +1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,1,0, +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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/bowhit1.pcm b/src/client/sound/data/bowhit1.pcm new file mode 100755 index 0000000..12fdf3c --- /dev/null +++ b/src/client/sound/data/bowhit1.pcm @@ -0,0 +1,2027 @@ +unsigned char PCM_bowhit1[64788] = { +1,0,0,0,2,0,0,0,68,172,0,0,130,126,0,0,3,0,11,0,226,255,193,255,241,255,32,0,255,255,201,255, +186,255,216,255,3,0,247,255,202,255,224,255,10,0,223,255,149,255,133,255,185,255,10,0,14,0,173,255,113,255,120,255, +94,255,113,255,28,0,146,0,228,255,181,254,112,254,90,255,56,0,241,255,237,254,96,254,196,254,136,255,198,255,59,255, +166,254,180,254,5,255,26,255,44,255,108,255,144,255,89,255,202,254,94,254,208,254,226,255,139,0,153,0,99,0,204,255, +80,255,199,255,139,0,194,0,204,0,82,0,2,255,226,254,146,0,92,1,12,1,250,1,213,2,162,1,191,0,203,1, +180,2,127,2,216,1,228,0,216,0,188,2,109,4,246,3,162,2,239,1,2,2,23,3,180,4,119,5,23,5,19,4, +163,2,132,1,138,1,93,2,62,3,153,3,194,2,45,1,158,0,199,1,77,3,155,3,144,2,103,1,45,1,242,1, +97,3,52,4,139,2,221,255,83,0,112,3,141,4,89,3,19,3,31,4,113,5,54,6,119,4,133,1,89,2,209,5, +238,5,104,3,73,2,200,1,109,2,127,6,204,8,100,4,18,0,232,1,254,4,202,5,188,5,132,3,22,0,61,0, +70,2,217,1,41,1,222,1,160,1,223,0,172,0,85,0,132,1,230,3,5,3,139,255,212,253,98,253,108,253,128,255, +126,1,13,1,2,0,179,254,41,252,115,250,90,251,107,254,219,1,185,1,191,253,24,252,71,254,16,255,162,253,232,252, +198,252,4,253,52,254,46,255,81,255,204,254,32,254,92,255,86,1,231,255,114,253,82,254,152,255,215,255,88,1,61,0, +77,251,251,250,21,0,186,1,2,255,217,252,58,252,144,253,5,0,62,0,145,254,109,252,213,249,196,250,210,255,195,0, +3,252,173,248,0,248,240,248,66,253,4,1,69,255,177,250,239,246,78,246,155,249,55,251,114,249,239,250,151,252,178,247, +173,244,165,247,201,246,64,245,212,251,35,255,106,246,145,239,255,244,92,253,232,250,179,240,148,244,73,8,85,9,159,239, +69,226,5,237,22,246,5,252,238,4,252,254,96,238,150,237,173,246,242,248,151,251,92,253,103,245,112,242,124,252,60,1, +120,251,47,247,84,246,92,248,229,253,34,254,25,248,143,247,251,250,239,248,48,247,214,252,44,1,79,251,27,242,14,242, +204,249,248,252,89,251,101,255,59,6,7,5,170,253,229,247,170,246,30,250,43,253,3,252,32,253,234,1,32,2,134,255, +101,255,231,252,28,250,9,254,193,0,40,254,110,0,38,4,131,0,185,255,123,4,127,1,129,252,91,1,237,3,55,254, +4,255,165,5,6,5,8,2,173,4,222,6,159,5,56,5,88,5,230,4,10,6,106,7,115,5,56,2,189,2,31,5, +90,3,60,0,103,2,155,5,62,4,217,2,126,3,146,3,15,5,234,5,134,2,69,2,167,4,223,255,86,0,190,13, +98,11,154,248,246,255,235,22,173,12,120,246,110,0,162,15,150,6,248,255,82,8,12,11,65,6,87,3,211,2,165,7, +224,11,139,4,241,254,229,6,206,10,113,4,169,3,248,5,251,1,164,1,142,7,66,8,123,5,106,5,210,3,191,1, +110,4,39,7,137,5,251,2,56,1,49,0,29,1,215,2,53,3,0,2,128,1,205,4,121,7,43,2,179,252,107,1, +168,5,70,0,53,254,103,4,37,5,155,255,90,255,176,2,25,2,6,0,46,1,53,4,7,5,182,1,32,254,221,255, +81,4,34,5,159,3,114,3,157,3,128,4,164,6,139,5,250,1,92,3,54,6,57,2,23,255,23,5,104,9,50,5, +159,3,36,8,0,9,151,5,71,4,76,4,187,3,34,4,126,5,32,7,161,7,11,5,147,3,55,7,9,9,81,4, +209,255,213,254,95,255,130,3,36,8,121,5,210,0,206,2,242,4,180,1,116,0,134,3,221,3,30,0,128,253,204,254, +111,1,206,0,211,253,189,253,228,255,134,0,138,0,10,0,85,254,127,255,150,2,112,0,69,252,180,253,239,255,211,253, +63,252,201,252,202,252,251,253,10,0,230,255,80,255,1,255,192,252,191,251,8,254,113,254,147,252,66,253,40,255,56,0, +21,3,119,5,217,1,79,251,138,249,246,252,114,255,184,253,99,251,78,252,204,254,24,0,196,255,71,254,215,253,149,255, +69,0,240,255,234,1,136,2,247,254,159,253,79,255,255,254,216,0,183,5,251,3,124,254,94,255,177,0,165,253,158,254, +230,1,200,255,164,253,57,254,244,251,36,250,44,252,26,253,33,254,222,0,154,255,90,252,185,251,174,249,6,249,10,253, +243,250,177,245,251,251,176,0,58,247,93,244,210,251,145,248,1,243,184,248,91,249,111,244,210,249,65,253,236,246,163,247, +138,250,143,244,213,245,139,253,107,248,109,243,166,251,195,253,53,248,46,252,50,1,90,254,61,254,43,255,48,252,89,254, +33,2,57,254,32,252,171,255,202,255,184,255,235,2,236,2,69,2,156,2,229,253,237,252,126,5,71,6,169,254,190,1, +207,7,17,2,91,254,180,3,2,4,2,0,71,1,40,3,72,2,148,2,31,3,210,2,20,2,136,255,58,255,231,2, +63,2,83,254,185,0,254,3,208,0,213,254,173,255,234,252,198,251,229,255,241,0,132,255,71,2,148,3,183,255,145,254, +82,1,157,1,128,255,72,254,48,255,159,1,33,1,86,253,52,254,74,3,72,3,242,0,27,3,220,2,224,253,71,255, +159,5,66,4,119,254,75,254,110,0,173,0,6,2,95,3,158,2,196,2,208,3,253,3,7,5,225,4,248,0,113,255, +230,2,62,4,111,2,8,2,34,2,207,2,19,5,190,3,203,255,194,1,230,5,127,4,54,3,15,5,56,4,33,3, +154,5,85,6,204,4,99,4,157,1,80,254,116,1,75,5,133,3,239,2,212,3,87,255,127,252,198,1,97,4,15,0, +12,255,144,1,29,0,48,254,74,0,45,1,161,254,182,253,181,255,219,0,101,255,231,252,180,251,173,252,135,254,68,255, +31,254,164,252,15,253,127,254,73,254,77,253,240,253,241,254,163,254,67,254,66,254,12,254,201,254,17,0,85,255,209,253, +151,254,41,0,154,0,145,1,66,2,0,0,245,253,19,0,204,2,72,2,164,0,115,255,112,254,136,255,37,2,198,1, +216,254,3,254,83,255,74,0,238,0,36,1,160,0,169,0,205,0,227,255,235,255,161,1,61,2,200,1,109,2,252,2, +75,2,216,1,154,1,224,0,32,1,131,2,92,3,200,3,155,4,65,5,245,4,167,3,224,2,52,4,22,5,13,3, +224,1,155,3,142,3,69,1,117,1,168,2,202,1,251,1,144,3,132,2,81,1,146,3,187,4,74,2,63,1,252,2, +24,4,8,4,231,2,9,0,146,254,11,1,152,3,230,2,82,1,46,1,6,2,60,3,18,3,116,0,119,254,69,255, +93,0,125,0,250,0,93,1,128,1,190,2,57,3,213,0,249,254,99,0,242,1,153,1,15,1,104,0,14,255,241,254, +127,0,254,0,200,255,85,255,184,0,27,2,148,1,189,255,207,254,94,255,245,255,185,255,231,254,9,254,101,254,73,0, +22,1,14,255,229,252,147,253,228,255,67,1,77,1,209,0,58,0,20,0,168,0,133,0,146,254,55,253,193,254,98,0, +77,255,89,254,174,255,114,0,119,255,152,254,80,253,136,251,246,251,147,253,249,252,42,252,164,253,141,254,197,253,156,253, +113,253,106,252,97,252,150,252,2,252,91,253,126,255,242,253,168,251,234,252,154,253,171,251,118,251,21,252,223,250,26,252, +233,255,115,255,68,252,183,252,214,253,85,252,159,252,177,254,136,253,77,251,69,252,176,253,227,252,245,251,37,252,219,252, +196,253,91,254,0,255,71,0,124,0,44,255,32,255,121,0,131,0,247,255,217,0,173,1,5,1,63,0,125,0,87,1, +185,1,0,1,140,0,178,1,201,2,85,2,103,1,118,0,165,255,108,0,189,1,231,0,143,255,147,0,237,1,39,1, +20,0,154,0,144,1,54,1,13,0,138,0,110,2,169,1,123,254,195,254,33,2,166,1,201,253,119,253,216,0,106,2, +180,0,151,254,155,254,21,0,8,0,136,254,127,254,1,255,61,254,251,254,247,0,42,255,244,251,164,253,170,0,184,255, +145,254,48,255,198,253,255,251,105,253,136,254,80,253,44,253,144,253,33,252,195,251,119,253,68,253,99,251,117,251,163,252, +0,253,203,253,221,254,3,254,236,251,116,251,250,252,218,253,92,252,159,250,52,251,117,252,189,251,98,250,88,250,129,250, +233,249,245,249,132,251,228,252,217,251,165,249,39,250,151,252,237,251,64,249,100,250,219,253,234,253,245,251,240,251,123,252, +125,251,183,249,150,248,58,250,228,253,80,253,192,247,137,246,85,252,134,255,14,252,199,248,139,249,104,251,228,251,210,250, +172,249,199,250,51,253,90,253,26,251,155,249,76,250,6,252,235,252,75,252,154,251,197,251,109,251,109,250,200,250,130,252, +115,253,177,252,66,251,31,251,199,252,107,253,171,251,21,251,41,253,67,254,75,253,198,252,186,252,179,252,27,254,180,255, +54,255,241,253,27,253,143,252,26,254,251,0,77,0,197,252,89,252,15,255,200,0,33,1,183,0,23,255,216,253,11,254, +113,254,74,255,236,0,3,1,68,255,87,254,126,254,143,254,24,255,205,255,96,255,152,254,195,254,173,255,164,0,164,0, +119,255,250,254,218,255,125,0,16,1,85,2,81,2,99,0,68,255,236,255,12,1,16,2,34,2,27,1,18,1,225,1, +38,1,155,0,179,2,28,4,64,2,150,0,84,1,130,2,47,3,95,3,140,2,213,1,20,2,208,1,85,1,135,2, +157,3,48,2,178,0,170,1,17,3,233,2,59,2,246,1,245,1,96,2,238,2,204,2,72,2,59,2,79,2,38,2, +97,2,204,2,83,2,179,1,79,2,2,3,120,2,2,2,112,2,160,2,195,2,124,3,97,3,47,2,245,1,178,2, +200,2,134,2,41,2,4,1,149,0,17,2,68,3,242,2,135,2,215,1,89,0,39,0,239,1,112,3,24,4,158,4, +73,4,125,3,202,3,90,4,7,4,32,4,18,5,155,5,245,5,134,6,26,6,221,4,121,4,148,4,61,4,104,4, +80,5,158,5,105,5,107,5,239,4,22,4,62,4,221,4,211,4,24,5,207,5,130,5,12,5,224,5,95,6,147,5, +5,5,169,4,250,3,131,4,239,5,17,6,150,5,137,5,200,4,47,4,61,5,227,5,24,5,20,5,173,5,28,5, +84,4,46,4,0,4,101,4,65,5,202,4,140,3,61,3,41,3,218,2,124,3,142,4,113,4,119,3,247,2,73,3, +224,3,23,4,222,3,150,3,140,3,197,3,211,3,139,3,142,3,166,3,33,3,35,3,31,4,205,3,40,2,241,1, +224,2,65,3,169,3,175,3,148,2,97,2,81,3,52,3,30,3,213,3,183,2,20,1,134,2,135,4,208,3,42,2, +188,0,192,255,12,1,17,3,170,2,172,1,155,1,125,0,149,255,43,1,180,2,110,2,49,2,39,2,178,1,164,1, +106,1,85,0,195,255,237,255,10,0,220,0,37,2,219,1,24,0,46,255,75,0,253,1,222,1,67,0,231,255,239,0, +66,1,163,0,211,255,101,255,57,0,65,1,229,0,166,0,11,1,249,255,158,254,201,254,105,255,188,255,165,255,183,254, +92,254,57,255,78,255,142,255,165,1,107,1,102,253,65,252,119,255,177,0,47,255,198,254,4,255,225,254,29,255,175,254, +219,253,181,254,126,255,229,253,81,252,190,252,208,253,189,254,88,255,8,255,129,254,138,254,89,254,139,253,211,252,180,252, +15,253,61,253,30,253,41,253,221,252,67,252,250,252,53,254,131,253,96,252,33,253,220,253,236,252,250,251,85,252,144,253, +4,254,105,252,33,251,82,252,48,253,183,252,147,253,232,253,143,251,54,251,221,253,0,254,131,252,142,253,32,254,79,252, +213,251,90,252,117,251,144,251,100,253,177,253,207,252,124,253,244,254,109,254,24,251,33,248,214,249,128,254,58,0,149,254, +65,253,122,252,202,250,66,249,132,249,37,251,255,251,45,251,150,250,255,250,197,250,64,250,103,250,242,249,65,249,205,249, +24,250,169,249,166,249,162,248,134,247,21,249,250,249,148,249,207,252,36,253,82,245,55,245,238,254,2,251,72,240,140,250, +40,7,22,251,166,241,199,252,36,254,33,244,208,250,240,2,228,247,128,243,234,253,254,252,187,246,145,251,164,252,72,248, +139,252,148,253,69,246,214,248,101,255,113,251,75,250,126,255,181,252,113,249,172,254,105,255,21,251,214,253,96,2,235,0, +201,253,55,251,247,250,162,255,27,3,47,1,87,254,17,253,108,255,195,4,197,3,155,254,159,2,57,8,96,2,169,253, +248,1,193,1,124,253,226,0,72,6,228,5,158,3,53,2,67,4,232,9,115,9,231,3,117,6,123,11,42,7,194,3, +50,8,176,9,96,7,78,7,114,5,62,2,190,2,181,3,168,5,168,9,250,4,193,250,241,252,133,4,152,1,67,254, +61,1,39,1,191,0,247,1,203,254,17,1,140,7,2,0,86,254,27,17,254,8,7,231,86,242,128,20,167,4,207,241, +51,11,189,10,161,234,189,253,98,36,183,14,228,233,239,241,107,11,57,25,197,17,132,246,246,243,188,18,175,21,35,253, +193,254,6,11,212,7,96,10,12,9,64,248,156,252,93,16,222,12,132,7,147,16,39,13,93,6,69,5,104,244,165,244, +143,27,129,31,189,246,184,249,142,27,95,16,2,246,124,247,93,249,203,252,206,16,250,19,193,0,213,250,215,255,159,0, +56,6,115,9,237,255,149,251,42,3,247,6,80,5,119,7,110,12,241,10,5,2,191,1,160,10,62,4,162,250,104,12, +237,22,85,253,206,247,155,19,127,13,185,242,58,2,175,19,244,249,89,237,43,4,114,10,46,0,100,4,20,5,17,249, +150,249,89,5,155,10,218,8,76,255,193,244,175,252,193,11,63,4,205,242,78,246,55,4,117,3,223,250,57,248,36,245, +0,241,58,247,148,0,58,255,234,252,54,255,201,248,248,241,64,251,198,0,107,245,65,243,6,255,117,1,107,254,102,255, +144,250,193,249,72,8,28,13,15,1,111,0,145,8,68,4,183,0,238,7,166,8,190,3,43,7,198,9,3,2,46,251, +195,253,164,2,1,0,67,249,250,252,228,8,166,7,130,248,138,241,22,248,218,254,198,254,183,250,117,248,221,248,70,248, +105,250,228,255,185,252,156,246,66,255,220,4,114,242,234,228,3,242,182,253,17,250,61,249,69,251,22,247,167,244,187,246, +208,247,179,250,74,255,85,255,83,250,28,243,228,238,118,241,229,243,30,243,137,245,133,246,211,239,2,240,15,245,208,233, +149,227,158,249,94,4,212,242,139,239,64,250,129,246,79,248,93,3,55,249,219,237,139,250,189,0,39,251,7,4,74,9, +185,252,223,250,56,4,65,3,34,1,172,3,201,2,41,8,82,18,67,14,183,5,91,8,226,5,74,249,248,251,108,14, +217,16,112,4,82,13,91,32,194,16,66,250,201,11,116,18,64,240,150,246,33,39,137,30,154,251,28,21,19,44,206,13, +217,9,120,45,213,65,76,93,28,124,73,102,134,76,56,94,14,74,52,15,202,29,145,85,178,79,129,70,83,118,255,127, +33,76,72,51,250,66,174,42,196,7,27,45,119,96,109,56,151,233,230,222,103,239,231,204,80,178,65,219,75,246,197,203, +191,177,231,213,0,224,35,170,50,145,150,199,9,6,240,25,220,45,208,92,131,113,21,58,88,214,167,144,156,141,201,188, +60,244,61,4,203,231,89,224,27,13,146,35,210,247,129,200,46,182,176,164,9,162,254,185,96,196,14,192,50,197,147,190, +196,175,158,178,232,167,140,144,160,162,59,189,71,181,249,192,152,211,160,172,13,154,160,206,78,215,174,177,62,207,153,240, +97,192,33,169,71,212,188,214,86,176,38,172,181,196,181,234,90,6,213,221,45,161,194,176,219,215,171,204,96,198,232,221, +98,224,45,219,30,236,65,239,219,214,225,194,74,192,15,209,245,237,168,248,159,236,214,226,131,220,66,210,76,206,92,212, +67,223,33,230,199,217,113,199,148,210,143,238,72,238,157,214,245,207,177,223,46,234,141,229,119,230,48,247,57,3,201,0, +118,254,108,252,149,244,0,243,247,248,243,253,134,9,168,19,133,9,171,1,106,13,8,12,26,250,193,253,160,16,176,20, +29,13,249,255,58,245,239,0,12,16,238,6,132,6,32,33,185,42,173,29,103,31,214,38,0,33,240,31,252,34,71,26, +103,20,222,25,245,28,205,31,189,36,238,30,161,19,162,17,226,22,9,32,222,39,186,34,47,26,87,29,140,31,43,28, +190,35,17,44,204,33,150,22,184,26,81,32,169,33,84,35,228,30,46,24,108,28,27,35,39,30,172,19,208,12,62,12, +181,19,166,26,248,22,128,17,176,19,170,20,137,16,154,19,41,32,118,38,239,30,16,23,139,31,66,45,15,42,240,32, +245,35,55,37,194,31,86,37,207,43,111,34,18,33,112,52,30,60,140,42,179,25,90,24,230,30,204,36,28,38,180,38, +51,43,98,44,100,38,115,35,114,38,137,38,138,35,78,37,184,45,74,55,80,57,119,49,9,43,79,45,105,44,88,32, +12,23,213,26,27,33,192,32,46,29,185,24,136,21,149,24,114,29,149,28,62,25,5,21,52,15,218,18,36,32,98,34, +37,26,21,27,192,30,235,24,39,22,2,26,161,24,215,20,76,17,132,10,21,13,144,25,121,24,19,14,45,14,97,11, +33,1,84,9,190,27,63,24,126,8,229,3,0,6,47,10,59,18,93,20,10,11,180,254,123,250,36,4,12,16,47,13, +226,3,109,2,86,2,49,2,43,8,219,8,140,254,191,247,242,248,200,254,244,7,71,6,157,248,134,247,193,253,65,242, +9,233,163,248,176,4,128,252,90,247,250,251,186,254,152,255,6,255,141,253,169,0,133,2,166,254,62,254,253,254,88,251, +30,0,31,12,55,11,93,1,123,254,121,0,79,6,70,14,156,10,221,2,58,10,55,15,214,0,121,250,45,9,24,16, +86,7,184,3,101,6,2,6,59,7,224,9,37,6,152,1,61,5,82,11,194,11,218,8,186,5,62,1,255,253,241,255, +122,3,231,4,117,7,95,9,2,4,59,253,160,254,172,1,38,255,118,255,162,6,94,9,251,1,71,250,118,251,110,255, +68,249,243,237,187,241,48,2,187,5,248,250,65,248,138,253,249,251,69,248,196,248,191,245,197,242,250,248,230,253,167,249, +198,245,239,242,13,239,200,244,30,252,205,241,36,232,63,242,33,244,180,227,207,227,215,241,80,235,52,222,55,228,201,232, +44,224,174,223,41,230,255,225,211,218,165,221,237,228,110,230,113,223,110,216,211,217,172,219,3,217,100,220,130,226,120,223, +196,220,136,224,58,223,189,220,41,224,206,220,226,213,185,219,38,225,210,218,71,219,206,226,242,223,153,220,210,227,33,233, +57,234,58,236,209,232,150,230,181,240,50,248,186,243,240,243,239,250,35,251,37,249,116,253,148,0,73,253,99,250,127,254, +78,4,15,255,180,244,64,251,8,11,205,7,19,251,229,254,60,6,102,254,56,246,116,247,143,248,87,252,189,4,65,3, +179,249,98,250,192,2,193,4,141,2,153,1,177,255,61,255,205,1,36,255,74,247,127,246,211,251,167,251,220,249,18,255, +41,4,1,3,186,254,91,246,246,240,193,251,251,5,107,249,59,238,239,249,59,254,4,239,237,238,250,254,185,254,112,245, +35,248,148,249,167,244,9,250,234,0,84,248,201,241,253,252,114,6,116,255,52,246,86,246,16,250,93,252,58,254,154,254, +247,252,238,250,158,246,142,240,105,240,13,245,12,244,195,241,136,248,123,253,130,246,144,241,110,244,125,242,83,239,204,244, +35,247,218,241,239,243,90,249,141,245,39,247,114,5,167,8,44,252,174,246,8,249,217,246,180,246,74,251,208,249,245,245, +246,248,199,252,1,254,63,1,23,3,239,0,136,254,97,249,74,243,26,248,63,4,109,8,128,6,142,7,223,8,180,6, +166,2,171,0,255,5,178,12,221,8,47,2,21,4,111,4,108,255,204,1,173,6,111,2,169,255,152,4,171,5,160,2, +254,2,96,4,126,6,12,10,207,7,65,1,37,0,118,2,11,2,62,0,190,255,93,2,138,7,79,10,174,11,170,15, +94,16,28,11,179,6,218,2,104,0,129,6,218,10,163,1,237,249,27,252,103,252,15,255,73,8,198,7,63,2,81,8, +23,9,245,251,154,249,203,0,13,255,198,0,72,9,247,4,151,253,165,1,175,255,176,247,4,252,245,254,58,245,111,244, +225,255,179,4,249,2,223,255,109,250,0,251,171,0,141,254,204,250,94,254,198,253,227,246,93,247,60,255,128,5,197,6, +11,2,223,252,230,252,215,251,159,248,148,250,206,251,219,247,69,250,255,0,136,254,242,250,68,0,231,2,3,255,55,0, +29,5,167,4,119,2,94,4,230,5,219,1,78,253,35,0,169,5,57,5,18,4,45,6,65,3,189,254,105,2,85,3, +226,251,254,253,50,8,244,5,115,255,114,4,60,7,61,1,68,3,43,12,132,12,229,8,21,11,209,13,243,11,21,8, +196,5,231,7,125,12,88,14,128,15,150,18,240,17,80,12,83,8,17,6,165,3,76,7,249,16,98,20,218,13,194,7, +29,9,132,16,252,24,252,26,117,21,240,17,130,19,58,19,64,18,203,20,2,20,96,16,146,21,247,31,157,32,55,24, +81,18,174,18,205,21,217,21,37,16,175,12,153,17,183,20,235,15,142,14,209,18,82,18,240,17,229,22,77,17,150,1, +161,1,210,14,62,16,101,13,132,22,209,26,64,14,213,3,204,6,136,11,216,9,111,6,254,6,156,7,137,2,234,0, +181,10,119,16,222,8,245,4,100,10,12,10,155,3,39,2,162,4,86,6,84,6,246,3,109,2,194,1,99,252,54,248, +141,255,37,11,181,13,172,5,179,250,73,248,217,255,103,5,116,9,23,19,229,18,233,1,141,250,113,3,152,3,64,252, +5,0,137,4,137,253,169,248,156,252,109,254,198,251,248,250,133,251,246,249,97,248,24,249,11,247,69,239,14,235,143,240, +248,247,204,251,84,253,149,250,84,244,88,239,22,236,4,237,155,243,75,246,145,242,34,242,250,243,84,244,170,247,191,247, +181,241,104,245,23,253,39,243,224,231,249,240,218,251,145,250,46,246,18,239,205,234,61,243,243,247,123,240,78,241,32,250, +109,251,209,251,80,253,79,249,48,249,28,251,156,245,192,248,173,3,54,253,187,245,168,1,97,1,16,239,60,241,75,0, +44,253,137,244,207,244,24,249,136,3,222,7,191,250,124,246,219,1,245,253,169,240,176,242,190,247,229,249,129,2,13,1, +228,243,111,246,138,0,251,251,84,248,13,254,88,253,250,248,151,249,88,251,36,255,70,0,69,249,120,249,212,0,5,251, +70,245,19,0,51,3,117,250,106,254,9,2,165,244,65,239,32,249,73,252,161,250,190,253,176,255,165,0,130,255,99,248, +131,248,221,0,34,253,89,244,137,249,194,0,228,0,182,2,23,2,252,255,244,7,191,11,206,255,107,250,42,1,11,1, +17,253,200,252,68,249,102,249,82,1,82,0,72,249,72,253,23,2,126,253,24,252,217,254,86,252,48,249,226,248,112,248, +128,250,27,253,96,251,199,249,3,249,196,245,9,246,183,249,103,248,125,246,124,248,146,248,205,250,163,1,194,255,21,248, +144,251,205,2,192,0,39,253,124,252,157,251,215,252,15,251,87,244,100,247,34,0,226,250,217,243,191,251,12,1,85,253, +86,1,254,4,13,251,219,244,173,251,59,0,204,253,152,249,130,245,158,246,170,249,148,244,117,242,61,254,121,6,78,1, +182,251,127,249,133,248,171,253,243,4,216,5,210,1,168,253,112,255,212,6,37,5,29,251,254,252,173,5,52,4,92,3, +116,6,133,253,252,246,248,5,27,17,60,7,0,1,251,7,174,11,172,9,246,7,83,6,73,6,146,5,243,0,73,1, +230,8,84,9,9,1,10,1,188,12,106,18,224,7,202,252,189,2,3,13,137,7,234,254,34,5,139,11,234,4,86,1, +109,8,3,11,102,7,72,10,225,14,190,9,226,4,155,11,123,17,112,13,52,12,187,16,140,14,203,9,160,12,243,13, +25,10,36,13,158,19,15,17,125,11,236,10,202,10,160,9,121,9,194,9,198,12,154,17,202,18,67,18,14,17,155,10, +212,5,16,10,141,12,90,9,14,12,98,17,171,13,79,7,101,6,143,5,220,2,72,3,157,6,65,7,153,1,64,251, +183,253,108,5,117,7,186,4,0,3,166,1,155,255,153,252,179,250,88,255,55,4,166,255,242,254,74,10,0,10,8,250, +132,249,2,7,161,2,39,244,187,248,28,7,81,8,138,1,192,254,201,252,39,250,60,253,54,2,191,254,2,248,253,250, +56,3,155,3,162,254,38,253,110,253,51,253,202,254,183,254,214,250,90,252,123,6,232,11,25,5,151,253,210,254,233,0, +196,252,131,250,167,255,167,3,182,2,54,3,172,3,156,254,93,250,115,253,85,2,193,3,51,3,94,2,194,1,167,255, +39,250,219,246,24,251,67,0,111,0,140,0,77,3,72,4,142,1,97,253,215,251,113,255,82,3,5,2,47,255,38,255, +250,255,250,255,247,254,101,253,232,253,247,254,150,252,211,251,224,0,72,3,166,255,242,254,165,2,174,3,180,1,107,0, +19,0,14,255,53,253,253,254,240,5,0,8,128,0,88,250,100,249,69,248,247,250,189,0,221,253,207,247,76,251,234,254, +65,251,189,250,32,252,123,248,33,249,82,254,220,250,18,245,139,248,28,252,37,250,24,250,155,251,182,252,96,255,42,253, +6,245,168,242,101,245,41,245,14,247,62,250,14,245,252,240,197,248,63,253,50,245,28,240,94,245,207,250,14,250,163,245, +34,244,127,247,118,246,83,239,149,239,202,246,173,246,142,242,191,243,142,244,78,244,244,248,244,250,178,245,72,243,105,245, +44,246,183,246,101,245,205,241,0,245,180,250,38,246,184,241,28,248,183,251,74,249,8,252,192,252,23,246,131,245,194,248, +38,245,56,246,91,255,142,255,248,249,184,251,203,252,246,249,52,252,166,253,55,251,221,255,69,4,234,252,159,249,253,1, +107,4,229,255,59,0,143,255,208,250,120,251,189,254,213,254,73,1,70,4,202,1,221,255,110,0,46,253,131,250,90,254, +39,3,193,4,48,3,148,254,28,253,198,0,94,1,197,0,39,6,92,9,144,6,17,8,14,10,184,3,213,0,199,6, +188,7,26,4,252,4,59,3,149,253,197,255,60,5,157,3,246,1,34,4,237,2,18,1,170,3,169,4,205,1,49,0, +165,0,157,2,137,5,144,5,187,3,74,4,221,4,58,5,72,9,156,10,62,3,64,254,67,3,154,7,98,4,171,1, +211,5,178,11,213,10,14,5,11,5,152,10,161,10,173,6,203,7,28,9,38,5,91,3,108,5,246,4,21,4,96,5, +121,4,154,3,210,6,166,7,137,3,18,2,151,3,41,3,82,4,48,9,194,9,100,2,162,252,181,0,41,8,183,7, +12,1,117,254,5,1,173,2,80,3,65,4,136,2,119,255,5,0,128,3,219,6,52,8,207,4,180,0,149,4,195,10, +247,6,207,255,102,1,74,5,67,3,89,1,29,3,234,3,64,3,166,2,178,0,74,254,125,253,227,254,250,3,111,9, +230,7,171,2,26,2,28,2,112,254,141,255,254,6,164,9,79,6,81,5,133,6,35,6,113,5,66,4,82,1,95,255, +0,0,192,1,5,4,128,5,6,5,216,4,125,5,163,4,211,3,240,4,253,4,55,3,47,2,39,1,211,255,125,0, +139,1,245,1,1,5,21,7,153,1,239,251,22,0,79,7,100,7,32,2,217,252,221,250,236,253,30,1,151,255,115,254, +20,1,151,1,166,254,192,252,243,250,72,248,210,248,251,251,95,253,218,252,93,250,207,245,94,244,193,247,65,250,143,251, +231,254,181,255,201,251,56,250,116,251,181,248,139,244,38,245,84,247,68,247,172,246,161,245,203,244,209,247,99,251,121,248, +145,243,120,245,127,250,45,251,16,250,91,250,179,247,191,241,45,240,152,244,98,247,55,246,42,246,64,248,13,249,107,247, +59,244,222,241,100,243,249,246,3,248,195,246,199,244,191,241,2,241,119,244,50,246,194,244,173,246,139,250,218,249,222,247, +34,249,109,250,152,250,74,250,214,246,1,244,186,247,106,250,227,245,152,244,109,250,86,252,66,250,202,252,170,254,165,249, +245,245,237,247,23,249,87,248,205,248,14,249,253,248,22,250,130,250,14,251,56,254,221,255,176,253,194,253,6,1,178,1, +52,1,18,4,249,6,105,5,176,0,1,253,135,254,244,3,74,6,128,5,136,7,1,9,106,4,202,0,35,4,253,7, +169,7,215,5,5,4,209,3,166,6,130,7,46,3,252,255,158,2,102,7,100,9,147,6,157,1,190,0,75,4,143,6, +222,6,16,7,179,4,12,1,28,2,182,6,1,9,180,8,136,7,28,5,71,3,239,4,183,8,186,9,149,5,123,1, +49,4,209,9,27,9,215,3,28,3,1,8,249,11,122,10,106,5,174,2,192,3,157,4,221,5,59,10,99,12,126,8, +221,4,157,4,126,4,151,6,183,11,109,11,181,3,106,255,79,4,36,11,29,11,190,4,200,0,190,3,127,7,123,7, +248,6,123,6,103,3,88,0,85,0,103,1,110,0,203,252,37,252,17,4,52,11,136,6,151,255,174,0,209,2,255,2, +250,3,230,255,19,250,136,253,190,0,185,251,92,253,102,4,114,0,174,252,233,3,154,4,112,254,231,1,80,4,141,253, +218,254,227,4,7,0,37,253,4,3,9,1,41,252,116,2,170,6,147,1,68,1,83,4,17,1,125,254,199,0,167,1, +114,1,119,1,7,255,149,252,128,251,123,249,58,250,251,254,249,255,208,251,13,249,25,249,149,249,29,249,88,247,90,247, +254,249,138,249,2,246,107,247,110,253,203,254,235,249,128,247,86,251,225,252,85,247,170,244,253,248,142,249,173,245,174,246, +132,248,78,246,29,247,37,249,255,246,85,249,178,254,219,248,200,240,128,245,231,249,15,245,125,245,61,252,129,252,82,249, +103,249,153,248,86,246,111,246,46,248,219,249,84,249,202,245,57,244,98,246,163,248,207,251,24,254,197,248,65,242,112,245, +50,251,121,250,29,249,57,251,49,253,145,253,113,251,58,248,185,249,142,254,163,0,136,0,213,255,208,254,143,1,209,5, +66,2,133,250,119,250,160,255,236,0,143,255,130,255,12,0,133,0,196,0,124,0,57,1,225,2,116,2,1,0,48,255, +3,1,90,2,100,1,171,0,188,1,252,1,160,1,235,3,127,5,27,2,37,0,251,3,102,5,145,1,199,0,117,2, +235,255,11,255,227,4,114,6,54,0,48,0,52,7,72,6,27,0,116,2,220,6,146,2,26,255,139,3,12,6,113,3, +212,2,185,3,86,3,157,4,127,6,242,4,117,2,115,3,96,7,99,9,185,5,196,1,113,4,112,7,240,4,190,4, +131,6,243,0,56,253,170,5,73,11,2,6,169,4,138,7,145,3,115,2,95,11,25,14,31,6,221,2,247,5,57,6, +171,5,165,7,212,8,4,9,119,7,119,0,59,251,11,3,122,15,74,15,136,5,62,0,220,255,64,0,202,4,235,9, +175,6,178,1,143,5,217,10,248,8,183,5,112,5,99,6,147,8,45,9,243,6,96,8,237,11,39,10,14,9,139,11, +37,7,114,2,213,10,36,16,13,6,2,1,193,6,239,5,110,3,208,8,79,9,117,2,136,1,6,5,49,6,252,7, +176,8,172,4,173,254,117,249,187,1,69,28,236,26,246,226,126,197,166,252,203,45,176,19,186,246,100,254,160,249,67,244, +166,15,10,28,240,3,189,242,223,236,171,238,88,9,250,19,16,245,69,236,223,1,139,0,2,4,254,26,163,5,239,224, +220,247,173,19,19,4,240,255,102,6,121,244,14,242,179,7,255,11,169,10,13,9,160,245,88,247,202,16,52,4,137,234, +105,246,109,0,170,2,14,24,40,13,32,229,182,240,118,8,219,240,254,241,179,17,174,253,44,229,58,3,146,11,228,239, +28,250,65,15,126,253,160,240,10,253,8,255,42,245,22,243,149,249,167,253,77,247,49,248,105,6,123,253,122,231,76,246, +193,8,213,247,127,248,47,15,60,2,85,245,146,17,35,25,21,254,46,251,73,6,151,0,150,255,58,4,186,1,83,7, +218,12,172,0,176,246,207,250,205,2,21,8,200,254,185,241,103,251,36,2,106,244,137,252,208,11,4,243,63,230,231,3, +90,3,143,234,84,252,150,14,9,251,160,249,94,10,242,0,39,245,105,246,166,243,178,254,51,13,124,251,148,240,163,7, +243,10,217,247,194,250,255,254,114,244,100,249,77,1,129,247,170,246,85,255,221,252,182,255,60,9,223,3,19,254,189,1, +16,250,174,238,32,242,199,247,204,250,71,2,24,4,180,254,58,252,250,249,93,251,50,6,245,11,12,9,187,9,87,8, +176,3,6,7,185,4,254,246,115,250,224,10,137,5,42,246,156,247,225,250,242,245,249,247,164,251,189,243,202,237,174,245, +171,253,137,249,211,241,6,241,165,242,136,242,173,246,55,250,83,242,22,236,173,245,12,255,146,252,179,250,31,253,195,255, +236,6,190,10,246,255,130,246,209,252,241,3,85,1,224,253,91,253,77,253,83,254,191,255,161,2,200,7,13,7,100,255, +237,255,124,11,212,17,64,14,19,9,17,3,239,254,190,6,239,18,87,16,130,4,201,2,48,9,193,12,14,14,33,12, +103,5,206,3,97,10,225,13,102,12,29,12,247,10,227,7,166,6,207,6,178,8,235,10,162,5,87,254,222,2,47,9, +172,3,156,0,195,6,160,3,11,249,112,252,19,6,187,0,79,247,226,252,67,3,167,250,161,242,155,246,144,250,122,249, +168,248,112,246,65,243,187,243,149,245,27,248,175,252,171,251,111,244,213,243,156,249,24,251,190,249,117,247,188,241,116,240, +160,245,134,245,85,243,156,247,228,245,242,235,238,237,230,248,130,249,67,247,245,251,236,249,108,240,28,240,22,246,162,246, +184,245,106,246,228,244,127,244,93,246,33,244,117,240,28,242,48,245,238,246,209,250,31,252,248,245,53,242,220,247,99,254, +133,0,254,1,44,1,234,251,71,249,32,253,144,1,154,2,174,0,202,252,107,251,143,255,228,3,87,4,125,3,228,1, +192,255,138,1,213,5,51,5,227,0,91,255,4,0,203,0,177,2,230,3,13,4,117,7,238,11,11,11,199,8,119,10, +252,8,14,2,143,2,109,12,71,15,41,8,199,5,36,9,0,7,118,2,57,4,68,7,167,6,10,7,149,7,61,3, +163,254,74,255,105,1,97,2,86,4,35,5,163,1,14,254,149,255,18,3,155,2,6,0,144,0,135,1,57,254,133,251, +43,254,250,0,178,1,188,4,152,6,23,1,172,250,24,251,76,254,136,255,228,254,136,252,206,250,194,252,173,255,74,0, +82,0,0,0,64,254,63,254,187,0,135,1,191,0,189,255,112,251,146,246,18,249,50,0,199,1,77,252,61,247,222,248, +214,254,154,0,10,252,13,248,194,248,217,251,193,253,157,252,146,250,217,250,26,253,217,0,57,4,232,1,194,252,151,253, +60,1,83,1,238,1,153,2,204,253,60,250,76,254,248,1,252,0,161,1,118,4,196,3,89,0,199,0,54,5,82,6, +142,3,161,3,6,6,7,7,178,7,165,5,14,1,141,2,94,6,204,1,166,254,195,5,124,9,14,6,211,7,115,11, +195,7,13,4,162,6,133,9,99,8,128,5,51,4,145,5,163,7,191,7,193,5,201,5,190,9,55,10,33,6,57,9, +216,14,210,7,40,1,94,9,192,13,69,6,164,4,177,7,138,6,83,10,66,16,107,11,89,4,50,5,163,8,13,11, +60,9,11,3,85,4,174,11,200,9,176,5,161,11,37,14,111,5,239,255,120,2,188,4,100,4,119,2,154,0,247,2, +58,7,3,6,18,1,140,255,150,255,187,252,206,251,39,255,148,255,217,253,102,0,159,0,122,250,155,248,253,251,147,252, +140,252,178,251,11,247,114,247,147,252,174,250,178,248,189,253,46,253,66,248,151,250,56,251,248,245,92,246,129,247,74,242, +197,242,91,250,142,251,222,245,173,240,50,239,146,242,37,246,143,246,110,248,57,250,61,247,150,245,31,248,51,248,239,246, +85,249,35,251,19,249,191,248,207,252,182,254,42,251,47,249,157,251,214,252,102,253,169,254,215,251,41,250,25,254,233,250, +112,243,32,250,31,3,136,253,56,249,226,251,245,248,162,249,51,2,123,1,188,252,211,0,225,0,157,250,235,251,151,255, +113,255,74,2,10,4,59,0,85,255,81,2,83,3,243,1,253,254,204,254,164,3,40,5,232,2,45,5,248,7,245,6, +231,5,118,2,249,255,10,7,214,11,124,4,205,0,124,6,1,8,107,4,3,3,138,3,244,3,240,2,144,3,137,8, +32,8,191,0,88,1,233,6,195,4,150,3,202,6,70,3,130,255,205,2,167,2,202,255,127,1,50,1,135,255,90,3, +9,5,92,0,63,253,101,254,105,2,21,5,210,255,82,249,68,251,85,255,141,255,110,253,83,249,172,249,137,0,220,1, +226,253,105,254,163,254,71,254,58,3,206,2,197,252,216,0,241,4,24,253,123,251,55,2,101,255,38,251,116,255,39,0, +93,254,239,2,47,4,100,255,110,0,244,4,77,2,15,251,153,248,54,253,133,2,114,3,145,2,142,1,31,255,172,253, +198,254,255,0,224,2,230,0,57,253,137,255,246,2,221,0,32,1,217,2,120,253,142,251,106,2,188,2,86,253,254,253, +33,255,153,254,237,1,131,2,118,255,128,0,139,0,49,255,29,4,214,4,205,252,74,254,255,6,123,3,32,252,37,0, +233,4,70,0,79,251,189,253,7,2,173,1,128,255,185,254,80,253,6,254,49,2,111,1,195,253,227,0,131,2,14,252, +234,249,24,253,228,252,220,254,188,2,138,254,11,249,247,250,204,253,158,254,10,255,93,253,215,252,22,255,199,0,17,3, +102,2,203,250,68,248,229,254,226,0,45,254,105,253,8,250,115,249,99,1,213,3,102,254,2,253,87,251,105,248,103,254, +137,3,101,254,19,254,168,5,252,5,174,255,168,252,30,253,240,253,193,254,31,2,170,6,223,4,212,0,204,3,177,4, +48,254,167,253,72,3,255,4,106,5,194,3,120,254,121,0,121,6,230,4,97,5,87,9,23,3,246,253,186,4,199,5, +250,0,174,5,171,8,61,2,47,1,230,3,254,255,27,253,127,255,201,0,235,0,77,1,110,1,247,1,26,0,18,253, +230,254,49,1,72,254,245,251,58,253,49,255,32,1,154,0,35,254,132,254,31,254,60,250,253,249,137,252,44,252,208,252, +85,254,126,252,173,251,199,251,202,249,175,252,101,0,130,249,211,244,57,252,25,254,198,247,226,248,216,251,9,249,104,250, +17,254,231,251,182,251,157,254,249,251,178,249,189,252,242,251,28,248,82,250,237,254,159,255,116,254,250,252,248,251,241,253, +214,0,228,255,6,252,103,251,34,0,146,2,239,253,180,251,18,1,227,2,121,253,33,251,95,253,18,255,85,1,42,2, +189,254,9,254,118,2,226,4,137,4,91,2,37,252,176,249,70,1,205,7,230,5,245,2,20,3,15,4,179,3,236,0, +17,1,142,6,110,8,125,6,9,8,221,5,149,254,46,1,75,9,234,7,91,5,235,7,244,5,197,3,31,8,50,8, +255,1,224,255,45,2,43,6,163,10,246,9,32,5,66,2,46,2,227,5,56,9,155,3,14,254,205,3,159,8,197,3, +149,255,174,1,167,6,141,7,129,0,22,255,51,8,113,6,180,251,162,254,17,3,153,252,188,254,170,5,231,0,33,1, +67,8,235,0,119,248,136,255,0,5,117,3,5,2,23,251,95,245,153,250,194,0,58,5,63,8,150,255,172,247,205,254, +191,0,166,248,193,250,101,255,134,251,16,252,43,255,65,253,121,255,170,1,52,252,36,251,216,254,252,253,123,254,237,254, +117,249,13,249,181,253,120,252,13,253,115,2,200,0,222,250,221,248,93,250,210,255,96,2,161,253,231,252,240,253,186,248, +61,251,127,2,7,252,103,249,218,4,44,2,92,245,169,249,216,2,54,3,199,2,128,253,150,247,219,253,202,1,14,253, +28,255,179,0,222,253,78,5,2,7,142,247,10,246,15,3,76,1,213,252,97,3,152,2,4,254,59,3,50,5,60,0, +109,255,51,0,159,0,83,2,12,0,139,253,188,255,251,255,182,0,80,6,253,6,142,1,107,253,61,250,73,252,56,3, +84,1,187,251,170,255,215,1,209,253,172,255,72,1,195,253,74,0,149,2,31,253,93,254,184,5,250,4,217,1,239,0, +201,252,252,252,242,3,80,4,50,254,211,251,42,253,226,254,139,255,74,0,207,3,116,3,237,251,181,249,202,253,188,253, +73,255,181,3,227,254,112,249,226,254,191,1,198,253,229,252,187,251,156,252,45,6,93,7,123,251,49,251,114,4,184,0, +239,248,240,251,185,0,235,1,9,2,24,255,149,253,251,0,184,1,69,0,117,2,251,1,144,252,110,251,148,254,97,255, +197,254,90,254,227,253,195,255,43,2,163,0,185,253,22,253,222,253,164,0,81,4,181,2,169,252,74,251,115,255,41,2, +113,2,158,1,202,253,238,250,72,254,155,0,76,252,191,251,2,3,7,5,202,254,111,252,121,255,38,0,176,255,45,1, +19,1,58,255,207,255,42,2,46,2,2,255,162,253,147,2,178,6,243,0,123,250,181,254,141,4,75,3,220,1,23,2, +166,0,180,1,29,3,141,255,207,255,78,5,140,2,119,252,201,255,37,2,39,253,47,253,250,1,135,3,228,4,121,3, +171,252,133,252,75,2,26,0,109,252,80,0,139,1,11,255,146,1,184,2,107,254,210,253,84,0,52,0,34,1,177,2, +44,0,23,254,52,0,229,1,13,1,225,255,198,255,36,1,210,1,229,255,187,254,91,0,158,0,74,254,113,254,164,1, +2,1,132,251,5,250,16,255,88,2,192,0,154,254,216,252,239,251,86,254,104,1,216,0,226,253,178,252,84,0,226,4, +248,1,206,251,104,253,109,1,170,255,13,255,34,1,224,254,131,253,94,1,123,1,174,253,192,253,186,254,86,254,70,1, +73,4,79,2,154,255,71,255,61,255,176,254,22,254,3,255,134,1,6,1,194,253,244,253,88,0,165,0,233,1,100,4, +122,3,106,1,8,2,45,3,176,3,126,3,133,1,111,1,169,4,58,4,104,0,167,1,179,4,144,2,229,1,92,5, +77,3,172,254,179,2,213,7,207,3,221,255,9,2,61,2,29,0,198,0,213,0,185,255,164,1,217,2,22,0,24,254, +72,254,230,254,128,0,216,0,1,255,113,255,178,1,97,2,187,3,158,4,30,1,236,254,35,2,24,3,6,0,149,0, +14,3,132,0,1,254,154,2,55,7,119,3,246,253,113,254,87,0,143,0,86,2,131,2,139,254,251,252,55,254,9,253, +109,253,211,0,185,255,0,252,228,252,172,255,228,0,48,1,174,255,201,254,15,0,199,254,119,253,147,1,124,3,219,254, +201,252,68,255,236,0,202,1,9,1,18,254,59,253,194,253,152,253,16,0,182,1,233,253,130,251,232,252,123,253,18,0, +223,2,153,254,27,251,187,254,66,255,216,252,18,0,0,2,219,254,227,254,183,254,46,250,147,251,128,2,131,2,247,253, +102,253,154,254,92,255,246,0,63,1,160,255,250,254,118,255,140,255,128,255,242,255,54,0,9,0,51,1,34,3,226,1, +58,255,89,0,20,2,10,1,170,1,161,2,41,255,240,253,169,2,129,3,29,255,55,255,205,2,167,2,3,1,51,2, +183,3,211,1,224,253,6,253,120,0,225,2,147,1,172,255,30,255,185,255,254,0,156,1,31,2,227,2,161,0,165,252, +132,253,77,1,212,0,211,253,233,252,50,253,10,254,121,255,92,255,218,253,194,252,57,252,90,253,173,255,128,255,1,254, +173,254,31,254,39,251,89,252,232,0,217,0,247,253,32,254,5,254,82,251,91,251,77,254,67,254,163,251,200,250,76,251, +158,251,152,252,138,253,240,252,232,251,120,251,222,250,145,250,151,251,148,252,206,251,75,250,149,250,207,252,146,253,71,251, +151,249,95,250,124,250,81,250,1,253,244,254,185,252,201,251,104,254,98,254,97,251,52,251,60,253,230,253,217,253,102,253, +10,252,192,251,8,253,46,254,44,255,191,255,214,254,236,253,95,254,229,254,239,254,204,254,51,254,60,254,167,255,78,0, +55,255,73,254,92,254,34,255,96,0,174,0,183,255,210,255,35,1,21,1,32,0,56,0,232,255,143,254,79,255,29,2, +237,2,204,1,126,1,220,0,31,255,156,255,195,2,144,4,193,3,114,2,205,1,255,1,237,2,166,3,255,2,255,0, +143,255,61,0,133,1,208,1,6,2,154,2,115,3,153,4,205,3,114,1,145,2,50,5,10,3,232,0,18,4,65,5, +58,2,63,2,86,3,3,1,208,0,54,3,201,1,25,0,150,3,131,6,114,4,254,1,120,2,123,3,49,2,32,0, +23,1,227,3,65,4,222,2,104,2,176,2,10,3,139,2,42,1,164,1,71,3,69,2,66,0,218,255,182,255,168,0, +10,2,236,255,46,254,23,1,252,1,196,255,71,1,214,1,250,252,111,252,105,1,164,1,56,255,175,0,22,2,145,1, +90,1,22,255,113,252,173,254,205,1,170,0,24,255,70,255,62,254,27,253,179,254,231,0,252,0,24,0,218,255,248,255, +129,0,142,1,35,1,249,254,191,254,56,1,143,2,217,1,68,1,3,1,105,0,97,255,55,254,145,254,129,0,42,1, +8,0,202,254,150,253,237,253,31,1,224,2,97,0,88,254,107,255,205,255,79,254,151,254,110,1,193,2,141,0,109,254, +36,255,57,0,219,255,237,255,220,0,151,0,248,254,131,254,82,0,72,1,21,255,80,253,203,254,161,0,46,1,16,1, +91,255,13,254,235,255,94,1,252,255,243,254,205,254,249,254,194,0,23,2,232,1,248,1,29,0,97,254,156,2,49,5, +252,255,232,254,144,3,27,2,229,255,37,3,224,1,201,254,69,2,41,2,217,253,65,1,133,3,212,253,26,254,1,2, +100,254,210,253,41,3,225,1,228,255,52,4,144,3,208,254,228,255,33,1,173,255,211,1,173,3,238,1,220,1,240,1, +228,255,71,0,1,2,220,1,8,2,174,1,33,0,215,0,151,1,26,0,46,1,250,3,14,3,34,0,98,254,232,254, +60,2,37,3,134,255,197,254,129,0,226,254,71,255,253,2,65,1,97,254,55,2,40,4,146,0,197,0,57,3,108,1, +157,0,90,3,81,3,147,0,81,0,45,2,34,3,165,2,223,1,204,1,66,2,254,2,210,3,171,3,9,3,199,3, +172,4,164,3,142,2,191,3,28,5,155,3,130,1,27,3,129,5,131,3,26,1,22,3,149,4,136,2,150,1,189,2, +28,3,225,2,250,2,37,4,253,5,181,4,122,0,94,254,108,254,132,255,48,3,14,5,107,2,142,1,79,2,98,0, +207,0,40,3,173,0,68,0,223,5,198,5,107,1,154,3,229,4,5,0,140,255,151,2,213,0,95,255,105,1,249,1, +62,2,20,3,242,0,19,255,218,0,88,2,70,2,157,2,152,2,112,1,213,254,249,251,133,253,60,2,227,1,194,252, +157,251,97,255,234,255,247,250,121,249,106,255,4,2,157,252,197,250,85,255,74,0,20,254,30,254,208,252,179,250,24,253, +12,255,113,251,78,249,62,253,77,0,211,253,7,252,47,255,5,0,104,251,227,250,5,0,51,1,245,254,141,254,187,252, +246,250,168,254,92,1,2,253,229,248,51,251,246,255,191,0,59,253,192,251,103,253,170,252,162,251,40,254,161,255,120,255, +44,255,113,250,211,247,72,255,79,3,79,254,75,254,171,254,135,246,179,246,231,1,84,3,162,253,101,254,237,254,182,252, +202,253,210,252,235,249,7,254,92,3,75,1,201,253,141,253,75,253,21,252,147,252,55,0,253,2,158,0,125,254,223,0, +87,1,239,253,117,251,94,250,170,252,175,3,171,6,84,2,180,254,19,254,227,254,185,0,31,254,115,249,234,253,218,5, +239,3,103,253,177,251,126,253,241,255,106,0,157,255,57,2,186,2,51,252,236,250,65,1,21,0,122,250,119,253,202,1, +158,0,94,1,27,3,144,0,245,254,141,0,121,0,123,254,212,252,181,252,27,255,199,0,33,255,89,254,207,255,153,255, +154,254,128,255,252,255,77,255,112,255,69,254,112,251,86,253,7,3,117,2,120,254,41,2,105,5,21,253,196,247,177,255, +255,2,174,251,76,251,70,1,165,254,93,249,221,251,115,253,40,249,172,248,47,252,78,250,38,247,1,251,180,253,129,249, +21,250,161,0,128,255,164,249,23,249,203,247,176,245,94,252,213,3,12,2,50,254,190,250,172,245,250,245,251,249,218,249, +178,249,202,250,96,249,44,250,28,252,83,251,118,254,212,255,159,247,133,247,175,255,238,248,70,242,48,254,185,0,205,244, +184,247,241,255,252,251,216,251,51,255,176,250,230,248,140,248,96,244,76,251,136,4,144,253,218,248,132,252,20,247,16,245, +212,252,22,251,227,251,211,6,17,254,193,237,38,248,193,2,154,249,171,251,88,7,178,1,166,247,84,249,97,252,13,252, +182,251,237,252,214,255,187,253,5,247,2,248,157,0,60,5,115,0,153,248,142,249,123,249,54,235,73,238,127,11,183,9, +149,237,236,245,111,5,215,243,155,247,98,19,11,11,148,249,12,1,250,254,102,254,82,19,138,16,148,251,194,2,175,11, +55,5,254,13,119,19,27,5,29,6,74,14,252,1,31,252,71,5,191,4,30,5,14,15,57,15,107,8,177,4,11,1, +223,7,188,21,18,15,152,252,94,254,142,13,67,19,55,15,65,8,33,4,159,8,188,14,127,11,217,4,143,6,47,11, +17,6,234,253,3,2,14,11,80,10,33,7,212,8,91,5,80,254,86,1,215,8,93,8,150,5,156,6,197,4,185,255, +144,0,60,5,158,1,206,248,198,251,172,7,200,7,200,254,238,255,221,5,43,4,81,5,82,11,202,5,208,251,245,0, +25,11,82,11,110,10,58,12,105,9,100,7,93,10,237,9,2,8,138,11,49,12,98,6,111,5,49,9,50,8,214,5, +225,5,19,2,103,253,73,1,80,6,6,255,135,242,36,242,71,251,195,251,49,244,156,247,151,2,142,254,112,242,38,246, +220,255,72,253,188,251,186,2,17,3,17,0,101,3,244,255,33,248,161,255,123,8,21,1,88,254,52,6,4,3,160,253, +231,4,145,5,255,253,143,4,179,13,131,7,16,3,145,7,200,6,84,4,236,6,106,7,198,7,57,10,47,6,26,1, +106,4,246,5,95,1,240,0,227,3,150,5,147,8,214,8,235,4,92,5,227,6,54,2,49,1,77,7,182,6,222,255, +126,0,77,5,133,2,111,252,118,253,68,2,232,1,1,255,92,255,73,254,67,250,209,251,181,0,7,255,88,252,118,255, +3,255,139,248,185,247,239,252,144,254,152,252,221,251,129,252,103,253,135,253,179,252,124,253,18,0,254,0,85,0,5,1, +171,1,234,254,135,250,1,249,10,250,25,250,184,249,153,251,174,253,225,252,200,251,143,252,228,250,51,246,165,246,122,252, +175,252,251,247,160,249,130,253,219,249,249,245,243,247,196,247,11,245,85,246,39,248,31,247,202,245,20,244,33,245,18,251, +241,251,34,245,77,242,164,244,240,246,253,250,237,251,152,246,105,246,143,250,113,247,74,245,207,250,125,251,6,248,11,250, +170,250,131,248,8,252,111,254,90,251,130,252,187,254,159,250,89,248,64,250,220,250,181,254,249,3,104,0,227,250,213,253, +185,0,15,253,44,251,238,254,136,1,105,255,192,254,67,3,121,3,3,251,78,248,115,0,163,3,73,254,43,252,169,251, +92,247,5,248,71,255,68,0,25,250,149,248,155,252,242,254,35,255,20,254,185,250,31,250,70,255,252,1,38,255,88,254, +72,255,52,253,81,253,239,0,90,0,111,254,70,2,64,5,219,1,190,254,245,254,121,255,157,0,252,1,0,1,174,255, +128,1,162,4,247,4,153,2,151,1,50,3,134,4,213,4,247,4,198,3,193,2,240,4,86,7,228,5,126,2,72,0, +215,0,54,4,201,6,82,6,163,5,128,5,88,4,29,4,245,5,198,7,119,9,206,10,79,9,136,6,79,6,12,7, +254,5,201,5,92,8,167,9,144,7,173,6,78,8,152,7,202,5,239,8,203,13,69,13,96,9,59,7,148,7,193,9, +26,12,209,12,107,12,0,11,155,9,120,11,202,13,248,10,237,6,40,7,244,8,41,10,13,11,208,9,57,8,245,8, +154,8,122,6,125,6,100,7,15,7,238,6,6,6,140,4,117,5,62,6,144,4,44,4,180,4,45,3,201,2,162,4, +18,5,6,5,55,6,12,6,184,3,53,1,138,0,36,2,133,2,11,1,87,2,163,3,225,255,146,253,152,255,161,254, +45,253,76,0,62,0,86,252,163,253,135,255,189,251,187,250,185,254,90,255,95,253,128,253,222,253,155,253,57,253,93,251, +37,250,60,252,220,254,4,255,165,253,238,252,16,253,252,251,154,250,93,252,153,254,37,253,204,251,40,253,235,252,115,250, +35,249,101,249,147,250,120,251,180,250,144,250,195,251,101,251,226,250,122,251,128,249,126,247,81,250,146,252,58,251,157,252, +206,255,196,254,88,252,247,251,84,251,11,251,236,252,77,254,2,253,254,250,119,251,237,253,28,254,179,252,50,254,84,255, +76,252,26,251,112,253,212,252,169,250,122,251,186,251,76,250,221,250,168,251,164,250,121,250,71,251,13,251,148,249,28,247, +48,246,17,249,198,251,250,250,60,249,217,247,149,246,32,247,127,248,44,248,162,247,68,248,65,248,5,247,104,246,158,247, +157,248,174,246,172,244,123,246,175,248,63,248,231,247,169,247,5,247,63,249,67,251,83,248,158,246,110,249,227,249,199,248, +35,251,31,252,22,250,77,251,142,253,127,251,134,249,67,251,28,253,0,253,24,252,178,251,97,252,225,252,231,252,211,253, +9,254,39,252,239,250,83,251,224,251,248,252,120,253,253,251,186,251,244,253,42,255,177,254,224,253,89,252,153,251,225,252, +249,253,83,254,32,255,140,255,156,255,192,255,132,254,155,253,8,0,89,2,209,0,223,254,0,0,121,2,91,3,184,1, +207,255,162,0,13,3,29,4,192,3,151,2,37,1,82,1,205,2,213,2,20,2,251,2,247,3,191,2,95,1,69,2, +192,3,174,3,140,3,235,4,38,6,201,5,151,4,154,3,246,3,198,5,89,6,174,4,53,4,69,6,125,7,255,5, +2,4,84,4,179,6,115,7,16,5,138,3,84,5,7,7,41,6,207,4,231,4,213,5,64,6,211,5,135,5,24,6, +211,6,149,6,63,5,97,4,97,5,211,6,33,7,74,7,252,6,232,4,219,3,219,5,51,7,110,6,140,6,226,6, +90,5,149,4,29,6,57,7,65,7,198,7,61,8,230,7,41,7,133,5,193,3,190,4,77,7,133,6,82,3,54,3, +102,5,122,5,173,4,237,4,223,3,42,2,35,3,149,4,22,3,66,1,254,1,22,3,2,2,103,0,28,1,168,2, +149,1,228,255,107,1,168,3,31,3,87,1,218,255,75,255,252,0,138,2,79,1,114,0,92,1,215,0,218,255,198,0, +50,1,61,0,178,255,238,254,122,254,180,255,148,255,64,253,33,253,255,254,21,255,128,254,229,254,165,254,202,253,146,253, +177,253,10,254,16,254,247,252,147,252,241,253,145,254,206,253,184,253,26,254,226,253,187,253,226,253,64,254,58,255,114,255, +143,253,247,251,241,252,86,254,231,253,58,253,224,253,88,254,109,253,155,252,62,253,106,254,211,254,75,254,231,252,39,251, +205,250,230,252,41,255,109,254,190,251,19,251,251,252,15,254,192,252,136,251,193,252,229,254,227,254,89,253,107,253,96,254, +38,253,130,251,28,253,197,255,37,255,105,252,154,251,111,253,102,255,108,255,27,254,145,253,52,254,34,254,121,252,87,251, +207,252,1,255,148,254,117,252,15,252,68,253,238,253,233,253,119,253,114,252,39,252,51,253,19,254,11,254,115,253,105,252, +236,251,189,252,186,253,48,254,68,254,84,253,47,252,185,252,178,253,45,253,161,252,87,253,105,254,114,255,157,255,217,253, +112,252,131,253,170,254,73,254,27,254,225,253,123,252,28,252,191,253,128,254,102,253,176,252,74,253,113,254,51,255,114,254, +204,252,203,252,156,254,159,255,35,255,195,254,210,254,182,254,24,255,99,0,9,1,215,255,144,254,130,255,149,1,207,1, +59,0,166,255,247,0,96,2,124,2,116,1,71,0,42,0,66,1,93,2,182,2,163,2,133,2,178,2,71,3,88,3, +130,2,107,2,18,4,182,5,183,5,188,4,252,3,4,4,219,4,150,5,10,5,173,3,5,3,137,3,146,4,155,5, +65,6,2,6,14,5,176,4,146,5,110,6,3,6,71,5,170,5,133,6,84,6,63,5,202,4,152,5,102,6,213,5, +175,4,220,4,29,6,35,6,88,4,254,2,163,3,198,4,146,4,181,3,126,3,130,3,23,3,207,2,37,3,125,3, +23,3,73,2,94,2,113,3,178,3,96,2,40,1,58,1,250,1,122,2,3,2,179,0,10,0,1,1,162,2,62,3, +222,1,170,255,121,255,145,1,182,2,161,1,170,0,47,1,25,2,109,2,102,2,137,2,104,2,30,1,218,255,208,0, +186,2,73,2,49,0,49,0,159,2,21,4,27,3,252,1,111,2,223,2,178,1,115,0,17,1,83,2,247,1,143,0, +90,0,106,1,202,1,20,1,216,0,133,1,234,1,203,1,32,2,196,2,110,2,36,1,162,0,178,1,170,2,231,1, +86,0,187,255,237,255,194,255,82,255,91,255,154,255,76,255,169,254,123,254,190,254,197,254,131,254,101,254,63,254,196,253, +149,253,81,254,25,255,150,254,24,253,73,252,216,252,191,253,241,253,80,253,22,252,179,250,104,250,19,252,51,254,7,254, +96,251,89,249,72,250,177,252,174,253,185,252,113,251,222,250,224,250,112,251,115,252,218,252,223,251,176,250,18,251,131,252, +213,252,145,251,189,250,180,251,65,253,178,253,53,253,246,252,62,253,146,253,171,253,98,253,148,252,232,251,148,252,109,254, +103,255,82,254,201,252,214,252,189,253,68,253,135,251,6,251,193,252,164,254,169,254,129,253,10,253,161,253,99,254,218,254, +251,254,111,254,85,253,9,253,140,254,143,0,194,0,15,255,196,253,63,254,39,255,207,254,220,253,27,254,143,255,100,0, +182,255,192,254,229,254,188,255,234,255,65,255,245,254,214,255,48,1,173,1,197,0,59,255,95,254,252,254,170,0,244,1, +157,1,240,255,150,254,217,254,87,0,160,1,215,1,77,1,197,0,166,0,226,0,54,1,102,1,121,1,172,1,247,1, +225,1,56,1,158,0,193,0,77,1,93,1,217,0,113,0,87,0,15,0,184,255,40,0,79,1,208,1,20,1,110,0, +2,1,194,1,49,1,20,0,85,0,184,1,20,2,214,0,240,255,165,0,175,1,167,1,48,1,97,1,191,1,126,1, +52,1,119,1,49,1,122,255,12,254,43,255,192,1,105,2,108,0,189,254,92,255,139,0,255,255,118,254,34,254,52,255, +30,0,62,0,57,0,71,0,2,0,142,255,105,255,67,255,144,254,244,253,148,254,7,0,167,0,249,255,74,255,126,255, +224,255,163,255,77,255,169,255,113,0,210,0,139,0,233,255,65,255,254,254,129,255,97,0,166,0,28,0,179,255,239,255, +21,0,161,255,111,255,66,0,46,1,207,0,139,255,19,255,244,255,28,1,168,1,196,1,183,1,101,1,249,0,230,0, +15,1,243,0,205,0,64,1,215,1,95,1,16,0,184,255,250,0,19,2,106,1,247,255,151,255,57,0,100,0,206,255, +144,255,33,0,203,0,1,1,214,0,63,0,93,255,52,255,145,0,53,2,254,1,28,0,38,255,78,0,162,1,46,1, +248,255,33,0,115,1,252,1,47,1,103,0,129,0,245,0,73,1,175,1,234,1,70,1,36,0,251,255,40,1,33,2, +159,1,98,0,209,255,250,255,25,0,56,0,223,0,165,1,135,1,156,0,33,0,174,0,106,1,105,1,233,0,193,0, +42,1,160,1,159,1,32,1,163,0,201,0,158,1,68,2,223,1,180,0,223,255,195,255,166,255,30,255,229,254,153,255, +120,0,86,0,107,255,248,254,85,255,133,255,238,254,90,254,175,254,132,255,188,255,1,255,230,253,14,253,247,252,20,254, +22,0,114,1,199,0,212,254,222,253,182,254,172,255,38,255,253,253,17,254,83,255,241,255,62,255,161,254,46,255,255,255, +209,255,11,255,233,254,120,255,169,255,22,255,103,254,31,254,26,254,55,254,121,254,141,254,42,254,7,254,33,255,201,0, +220,0,192,254,185,252,20,253,2,255,207,255,160,254,61,253,75,253,89,254,33,255,58,255,221,254,34,254,87,253,64,253, +28,254,248,254,210,254,1,254,148,253,200,253,254,253,8,254,101,254,50,255,196,255,164,255,44,255,210,254,107,254,182,253, +42,253,140,253,206,254,235,255,0,0,61,255,160,254,195,254,68,255,104,255,41,255,61,255,240,255,127,0,10,0,220,254, +51,254,178,254,175,255,41,0,246,255,156,255,141,255,203,255,39,0,113,0,149,0,176,0,228,0,253,0,168,0,26,0, +1,0,132,0,226,0,138,0,6,0,54,0,6,1,149,1,122,1,2,1,99,0,152,255,8,255,90,255,95,0,8,1, +202,0,67,0,21,0,255,255,164,255,115,255,217,255,63,0,220,255,40,255,67,255,37,0,146,0,254,255,81,255,93,255, +155,255,56,255,143,254,160,254,123,255,15,0,160,255,183,254,114,254,59,255,89,0,170,0,214,255,199,254,203,254,6,0, +55,1,53,1,58,0,89,255,22,255,48,255,112,255,237,255,116,0,151,0,86,0,36,0,27,0,219,255,106,255,94,255, +230,255,89,0,13,0,123,255,180,255,142,0,219,0,140,0,159,0,53,1,158,1,137,1,38,1,245,0,43,1,7,1, +62,0,10,0,201,0,27,1,194,0,204,0,26,1,45,1,126,1,237,1,148,1,186,0,59,0,67,0,199,0,97,1, +79,1,4,1,137,1,55,2,219,1,230,0,77,0,41,0,84,0,153,0,153,0,150,0,12,1,97,1,193,0,221,255, +211,255,47,0,222,255,88,255,176,255,96,0,38,0,60,255,230,254,134,255,123,0,250,0,170,0,251,255,158,255,137,255, +101,255,162,255,161,0,85,1,178,0,207,255,29,0,153,0,212,255,250,254,104,255,56,0,172,0,62,1,159,1,82,1, +231,0,125,0,14,0,113,0,39,1,212,0,127,0,27,1,243,0,19,0,148,0,83,1,134,0,23,0,243,0,47,1, +6,1,100,1,192,0,100,255,207,255,50,1,106,1,41,1,251,0,91,0,83,0,52,1,63,1,122,0,82,0,119,0, +117,0,191,0,208,0,54,0,224,255,82,0,25,1,135,1,194,0,111,255,137,255,130,0,82,0,162,255,192,255,229,255, +186,255,212,255,219,255,163,255,155,255,124,255,117,255,69,0,244,0,99,0,160,255,128,255,134,255,240,255,188,0,135,0, +131,255,155,255,124,0,89,0,173,255,200,255,240,255,120,255,117,255,247,255,141,255,189,254,107,255,234,0,53,1,135,0, +21,0,217,255,159,255,151,255,195,255,37,0,74,0,171,255,62,255,185,255,155,255,156,254,188,254,143,255,88,255,135,255, +254,0,4,1,48,255,141,254,116,255,235,255,215,255,206,255,161,255,95,255,22,255,19,255,180,255,139,255,226,253,148,253, +131,255,37,0,236,254,239,254,222,255,181,255,65,255,9,255,150,254,241,254,229,255,172,255,30,255,100,255,246,254,11,254, +184,254,3,0,34,0,227,255,194,255,108,255,138,255,213,255,120,255,135,255,78,0,34,0,68,255,27,255,6,255,192,254, +155,255,17,1,17,1,153,255,136,254,199,254,104,255,142,255,244,255,192,0,141,0,144,255,118,255,249,255,40,0,80,0, +49,0,203,255,87,0,0,1,43,0,177,255,219,0,26,1,158,255,15,255,214,255,79,0,186,0,212,0,3,0,245,255, +42,1,109,1,69,0,152,255,136,0,212,1,57,1,188,255,139,0,10,2,216,0,96,255,57,0,28,1,76,1,210,1, +141,1,29,1,188,1,240,0,64,255,122,0,37,2,42,1,100,1,72,3,90,2,101,0,205,0,85,1,128,1,158,2, +49,2,143,0,188,1,185,3,86,2,23,0,154,0,49,2,212,1,17,0,61,0,64,2,35,2,89,1,16,4,222,4, +71,254,47,249,160,253,109,4,5,6,197,4,28,3,132,255,214,250,208,249,73,254,49,2,217,0,0,0,5,3,97,3, +34,1,112,2,69,2,137,252,164,251,249,1,93,3,34,255,234,254,55,1,74,0,248,254,84,0,14,2,37,2,100,1, +253,0,219,255,136,253,254,253,113,1,137,1,10,255,99,255,113,255,8,255,77,4,228,6,79,254,8,251,240,4,143,6, +173,251,190,249,13,0,197,255,207,255,67,5,212,3,163,254,101,1,13,1,77,249,121,0,87,17,110,5,234,228,93,228, +173,3,211,16,250,4,92,254,114,253,84,249,23,255,44,11,58,8,52,252,198,247,112,248,177,253,138,6,201,2,3,247, +84,251,45,6,187,3,221,2,164,7,16,253,64,241,66,253,77,9,211,1,101,255,177,5,81,253,62,243,93,255,129,13, +20,6,168,249,8,251,238,255,30,253,3,251,130,255,14,2,56,1,150,2,26,254,137,243,132,248,194,7,232,2,38,247, +92,1,19,9,29,251,191,248,163,6,82,3,104,250,16,5,193,10,252,253,43,250,241,255,81,250,139,245,138,0,204,8, +218,0,0,248,174,251,89,2,5,255,210,249,197,253,130,254,122,246,159,249,106,5,139,1,63,249,210,255,195,1,109,249, +22,255,123,7,175,251,41,244,91,0,113,4,83,253,79,0,202,3,26,254,74,254,18,0,143,248,55,250,114,7,211,4, +57,247,43,249,134,1,58,255,206,251,123,251,227,248,117,251,42,2,192,255,9,251,207,253,14,252,8,246,238,251,245,3, +79,254,25,250,27,1,171,2,120,251,146,248,143,250,171,253,220,0,194,253,244,248,17,255,67,5,204,253,157,249,231,2, +227,4,251,250,180,250,186,4,130,6,18,0,41,253,205,253,46,254,211,255,188,1,234,255,216,252,71,254,216,0,15,255, +30,254,104,1,4,2,46,0,158,2,27,5,113,3,16,3,201,2,137,255,196,0,168,4,116,0,121,252,233,2,228,6, +33,2,211,0,145,2,170,255,77,254,217,0,232,0,107,1,55,4,189,2,141,0,150,3,121,4,139,1,229,2,183,4, +174,0,54,254,245,0,202,1,25,0,197,0,201,2,159,3,16,4,142,4,85,3,218,255,73,255,44,5,128,8,69,2, +51,253,200,0,21,4,0,4,87,5,121,3,208,253,18,0,246,8,2,11,193,6,118,3,250,255,91,254,255,2,11,7, +62,4,163,0,107,0,93,0,81,0,168,1,135,1,80,255,113,255,186,2,248,3,77,1,109,255,95,0,108,0,8,255, +150,255,51,1,167,0,18,255,110,255,77,2,23,5,186,3,20,255,29,253,227,254,238,0,227,2,117,3,110,0,15,255, +196,2,19,4,159,0,169,255,214,0,200,255,121,0,222,3,135,3,45,0,106,255,224,0,220,2,104,4,168,2,207,255, +191,1,242,5,163,5,154,1,102,255,130,1,169,4,149,3,40,0,95,0,152,1,65,255,70,254,104,1,227,2,179,1, +163,1,19,2,23,2,113,2,158,1,29,0,47,0,18,0,220,254,145,254,32,254,56,253,39,254,166,254,49,253,1,254, +211,255,23,254,213,252,192,254,0,255,100,254,69,0,121,0,76,254,180,254,146,255,161,253,197,252,34,254,193,254,193,254, +212,253,202,251,170,252,33,0,120,0,26,254,237,252,122,252,138,252,141,253,79,253,69,252,171,252,98,252,165,250,164,250, +108,251,136,250,109,250,8,252,111,252,210,251,218,251,162,251,114,251,173,252,191,253,220,252,162,251,30,252,76,253,2,253, +244,251,132,252,226,253,176,253,232,252,63,253,167,253,73,253,198,252,68,252,30,252,210,252,167,253,9,254,8,254,152,253, +199,253,50,255,183,255,109,254,178,253,111,254,79,255,213,255,227,255,249,255,72,1,145,2,235,1,254,0,70,1,97,1, +27,1,9,1,121,0,108,0,4,2,185,2,82,1,131,0,11,1,70,1,152,1,27,3,92,5,89,6,178,3,143,255, +254,255,54,4,195,4,62,1,233,255,31,1,185,0,15,255,183,254,100,255,211,255,34,0,185,0,105,1,93,1,55,0, +61,255,90,255,174,255,238,255,182,0,42,1,98,0,105,255,8,255,222,254,228,254,206,254,77,254,153,254,241,255,52,0, +79,255,76,255,103,255,114,254,125,254,133,255,127,254,209,252,218,253,237,254,71,253,167,252,194,254,117,255,56,254,106,254, +12,255,219,253,60,253,179,254,150,255,214,254,68,254,72,254,8,254,149,253,108,253,191,253,75,254,116,254,60,254,52,254, +153,254,113,255,4,0,82,255,245,254,190,0,164,1,59,255,240,253,132,0,122,2,234,1,244,1,38,2,238,0,249,0, +99,2,113,1,84,255,164,255,255,0,116,1,173,1,254,0,183,255,219,0,141,3,246,3,7,3,99,3,223,3,176,3, +74,4,36,5,140,4,168,2,215,0,242,0,111,3,124,5,14,5,223,3,54,3,213,2,131,3,146,4,228,3,237,2, +137,3,68,3,186,1,116,2,80,4,70,3,90,1,3,2,115,3,63,4,151,5,222,5,133,3,6,2,116,3,93,4, +67,3,37,3,61,4,191,3,145,2,102,3,135,4,146,3,177,2,119,3,131,3,135,2,164,2,26,3,134,2,99,2, +133,3,71,4,223,3,13,3,123,2,149,2,4,3,158,2,172,1,193,1,127,2,102,2,240,1,217,1,45,1,53,0, +133,0,73,1,14,1,22,1,3,2,10,2,245,0,35,0,140,255,77,255,15,0,79,0,206,254,240,253,106,255,151,0, +7,255,158,252,65,252,104,253,25,254,149,254,62,255,187,254,198,253,99,254,167,254,219,252,64,252,176,253,136,253,78,252, +166,252,142,252,154,251,242,252,190,254,141,253,39,252,186,252,63,253,18,254,96,255,185,253,127,250,33,251,207,253,129,253, +230,251,230,251,37,252,18,252,93,252,27,252,205,251,229,252,75,253,91,251,37,250,84,251,102,252,110,252,114,252,18,252, +157,251,37,252,123,252,17,252,163,252,98,253,121,252,184,251,45,252,7,252,231,251,210,252,199,252,49,252,2,253,215,252, +70,251,255,252,226,0,237,255,76,250,20,248,106,253,52,3,242,255,127,249,150,253,61,6,198,3,29,252,130,251,106,252, +63,252,228,1,208,5,95,255,68,250,108,253,172,255,227,255,79,1,239,254,175,251,205,255,140,4,37,2,130,254,139,253, +241,253,68,1,35,4,132,1,232,254,131,0,251,0,45,255,193,254,49,255,92,0,117,2,191,1,231,254,23,255,212,0, +96,0,199,255,225,0,94,2,235,2,105,1,103,255,3,0,95,1,35,1,208,1,27,3,63,2,79,1,233,0,160,254, +50,254,75,2,108,4,134,2,83,2,110,3,247,1,199,255,227,254,10,255,213,0,78,2,71,1,215,0,24,2,80,1, +77,255,213,255,92,1,77,1,228,0,16,1,241,0,52,0,178,255,191,0,114,2,174,1,244,254,99,254,87,0,76,1, +13,0,125,254,77,254,68,255,78,0,88,1,219,1,89,0,198,254,104,0,89,2,170,0,253,254,15,1,48,3,25,2, +54,0,255,255,121,0,1,0,143,255,53,1,16,3,205,1,209,255,89,0,132,0,6,255,3,0,67,3,234,3,202,1, +7,0,145,255,68,0,52,1,243,0,73,0,107,0,191,0,119,1,188,2,97,2,81,0,171,255,197,0,88,1,30,1, +164,0,189,255,89,255,102,0,202,1,5,2,234,0,129,255,65,255,125,0,167,1,72,1,29,0,130,255,255,255,116,1, +28,2,138,0,140,255,174,1,90,3,163,1,50,0,43,1,122,1,189,0,76,1,174,1,123,0,76,0,64,1,94,0, +59,255,26,1,232,2,180,0,157,253,221,253,165,255,46,0,239,0,25,3,243,3,148,1,90,254,35,253,25,254,33,0, +234,1,21,2,32,1,229,0,208,0,2,255,241,252,88,253,25,255,199,255,224,255,37,0,117,255,36,254,16,254,235,254, +68,255,100,255,109,255,175,254,71,254,50,255,88,255,198,253,84,253,196,254,251,254,93,253,191,252,17,254,171,255,237,255, +93,254,208,252,179,253,134,255,233,254,208,252,144,252,18,254,7,255,189,254,45,254,56,254,49,254,28,253,205,252,21,255, +221,0,56,255,52,253,154,253,78,254,65,254,185,254,192,254,175,253,211,253,93,255,131,255,1,254,64,253,49,254,133,255, +152,255,184,254,170,254,24,255,175,254,220,254,5,0,18,255,150,252,238,252,36,255,90,255,153,254,121,254,210,253,1,254, +68,0,227,0,116,254,18,253,226,253,108,254,198,254,118,255,73,255,231,254,91,255,95,255,190,254,206,254,48,255,124,255, +116,0,66,1,185,0,1,0,20,0,119,0,45,1,242,1,235,1,168,1,167,1,2,1,90,0,249,0,109,1,171,0, +84,0,183,0,218,0,119,1,63,2,126,1,164,0,172,1,142,2,239,1,179,1,1,2,162,1,198,1,233,2,11,3, +27,2,6,2,161,2,157,2,14,2,137,1,93,1,185,1,28,2,226,1,130,1,131,1,69,1,160,0,250,0,122,2, +248,2,38,2,80,2,22,3,24,2,222,0,188,1,61,2,250,0,111,1,208,3,216,3,241,1,21,2,133,3,72,3, +46,2,26,2,173,2,26,3,55,3,245,2,169,2,200,2,13,3,199,2,217,1,48,1,143,1,75,2,175,2,70,3, +205,3,234,2,111,1,122,1,39,2,109,1,161,0,177,1,0,3,188,2,51,2,112,2,85,2,154,1,69,1,114,1, +227,1,158,2,220,2,43,2,173,1,225,1,202,1,58,1,253,0,65,1,152,1,151,1,116,1,215,1,43,2,99,1, +188,0,143,1,33,2,20,1,24,0,85,0,248,0,61,1,241,0,129,0,123,0,66,0,21,0,130,1,184,2,8,1, +125,255,186,0,50,1,228,255,41,0,231,0,226,255,175,255,168,0,235,255,48,255,177,0,93,1,202,255,189,254,189,254, +151,254,190,254,28,255,201,254,65,254,90,254,231,254,251,254,245,253,45,253,19,254,236,254,17,254,56,253,166,253,91,254, +189,254,141,254,210,253,189,253,15,254,78,253,194,252,183,253,1,254,38,253,141,253,136,254,247,253,82,253,17,254,102,254, +75,253,126,252,80,253,147,254,172,254,57,254,92,254,240,253,141,252,133,252,32,254,222,254,109,254,252,253,96,253,1,253, +113,253,138,253,44,253,164,253,61,254,212,253,93,253,124,253,159,253,129,253,11,253,205,252,116,253,165,253,182,252,229,252, +88,254,134,254,207,253,184,253,86,253,2,253,65,254,61,255,39,254,14,253,164,253,205,254,13,255,25,254,99,253,26,254, +150,254,45,254,251,254,12,0,213,254,234,253,140,255,74,0,250,254,187,254,91,255,28,255,80,255,27,0,185,255,212,254, +143,254,88,254,126,254,102,255,199,255,42,255,135,254,178,254,254,255,240,0,182,255,100,254,76,255,236,255,244,254,73,255, +126,0,192,255,9,255,95,0,231,0,178,255,105,255,245,255,187,255,160,255,92,0,222,0,187,0,58,0,121,255,238,254, +46,255,79,0,110,1,11,1,142,255,58,255,20,0,54,0,222,255,55,0,127,0,67,0,85,0,103,0,203,255,113,255, +11,0,136,0,63,0,24,0,127,0,161,0,71,0,30,0,27,0,18,0,116,0,189,0,118,0,221,0,137,1,39,0, +86,254,135,255,203,1,218,1,254,0,170,0,102,0,210,0,164,1,93,1,46,1,237,1,122,1,99,0,18,1,204,1, +217,0,119,0,69,1,142,1,119,1,86,1,181,0,111,0,250,0,172,1,109,2,84,2,243,0,237,0,134,2,33,2, +141,0,50,1,243,1,219,0,7,1,141,2,234,1,25,0,38,0,95,1,227,1,45,1,235,255,241,255,114,1,51,2, +161,1,13,1,226,0,50,1,176,1,108,1,48,1,211,1,135,1,34,0,30,0,5,1,44,1,172,1,51,2,240,0, +250,255,78,1,25,2,252,0,117,0,249,0,251,0,154,0,65,0,219,255,229,255,75,0,134,0,178,0,137,0,215,255, +189,255,178,0,117,1,119,1,41,1,165,0,75,0,149,0,223,0,150,0,122,0,240,0,26,1,144,0,36,0,84,0, +189,0,57,1,142,1,218,0,145,255,167,255,237,0,86,1,231,0,158,0,34,0,194,255,70,0,173,0,116,0,113,0, +240,255,186,254,7,255,110,0,13,0,214,254,45,255,247,255,90,0,28,1,235,0,55,255,186,254,239,255,51,0,101,255, +53,255,163,255,37,0,110,0,22,0,220,255,140,0,241,0,63,0,178,255,14,0,153,0,93,0,80,255,245,254,16,0, +134,0,79,255,232,254,250,255,80,0,39,0,178,0,107,0,66,255,178,255,234,0,91,0,119,255,44,0,198,0,34,0, +208,255,112,0,239,0,160,0,203,255,75,255,148,255,242,255,238,255,255,255,39,0,12,0,0,0,61,0,97,0,5,0, +22,255,148,254,169,255,24,1,212,0,171,255,75,255,127,255,8,0,198,0,108,0,32,255,229,254,179,255,11,0,238,255, +189,255,168,255,54,0,105,0,49,255,162,254,11,0,254,0,141,0,69,0,242,255,32,255,8,255,148,255,167,255,169,255, +214,255,154,255,124,255,192,255,98,255,198,254,18,255,93,255,215,254,198,254,88,255,7,255,44,254,80,254,220,254,148,254, +58,254,169,254,17,255,246,254,235,254,205,254,76,254,54,254,211,254,30,255,255,254,11,255,175,254,227,253,44,254,108,255, +178,255,233,254,90,254,228,253,115,253,252,253,14,255,38,255,90,254,191,253,219,253,185,254,116,255,229,254,218,253,193,253, +23,254,110,254,137,255,116,0,137,255,6,254,169,253,198,253,1,254,231,254,71,255,105,254,77,254,109,255,92,255,0,254, +201,253,179,254,14,255,47,255,183,255,127,255,87,254,215,253,93,254,225,254,56,255,141,255,102,255,201,254,95,254,97,254, +146,254,119,254,239,253,13,254,61,255,210,255,10,255,56,254,245,253,96,254,194,255,42,0,145,254,70,254,230,255,129,255, +34,254,120,255,116,0,224,254,26,255,240,0,9,0,219,254,243,255,116,255,204,253,30,255,138,0,26,255,129,254,126,255, +55,255,237,254,128,255,18,255,27,255,130,0,226,255,214,253,102,254,11,0,188,255,18,255,34,255,241,254,246,254,45,255, +211,254,14,255,12,0,17,0,153,255,206,255,172,255,35,255,105,255,235,255,233,255,223,255,196,255,174,255,24,0,48,0, +146,255,162,255,124,0,167,0,13,0,127,255,90,255,229,255,165,0,138,0,246,255,40,0,235,0,21,1,154,0,123,0, +207,0,141,0,238,255,36,0,103,0,195,255,188,255,175,0,156,0,232,255,102,0,22,1,250,0,9,1,251,0,119,0, +212,0,139,1,11,1,156,0,14,1,196,0,35,0,164,0,14,1,157,0,172,0,14,1,179,0,100,0,196,0,22,1, +247,0,160,0,154,0,91,1,238,1,68,1,136,0,241,0,153,1,146,1,64,1,38,1,102,1,162,1,94,1,1,1, +15,1,37,1,66,1,161,1,108,1,136,0,148,0,167,1,226,1,40,1,255,0,103,1,108,1,78,1,145,1,185,1, +116,1,91,1,149,1,139,1,76,1,86,1,130,1,189,1,64,2,104,2,197,1,138,1,64,2,142,2,35,2,52,2, +173,2,154,2,88,2,142,2,176,2,82,2,33,2,119,2,137,2,6,2,215,1,64,2,121,2,53,2,251,1,0,2, +220,1,211,1,135,2,248,2,15,2,72,1,221,1,61,2,180,1,155,1,202,1,104,1,61,1,133,1,112,1,126,1, +41,2,99,2,197,1,63,1,92,1,220,1,23,2,202,1,125,1,92,1,32,1,42,1,87,1,222,0,145,0,89,1, +182,1,250,0,202,0,64,1,14,1,187,0,31,1,123,1,68,1,214,0,138,0,144,0,161,0,81,0,53,0,219,0, +75,1,175,0,250,255,56,0,174,0,92,0,15,0,171,0,18,1,169,0,211,0,136,1,46,1,91,0,107,0,111,0, +206,255,204,255,110,0,98,0,193,255,165,255,1,0,196,255,252,254,33,255,31,0,38,0,130,255,218,255,110,0,9,0, +153,255,203,255,27,0,253,255,39,255,169,254,112,255,152,255,175,254,72,255,252,255,22,254,97,253,185,255,172,255,7,253, +99,253,143,255,158,255,230,254,90,254,163,253,133,254,3,0,88,255,50,254,101,254,249,254,6,0,92,0,81,254,165,253, +54,0,174,0,49,254,208,253,76,255,217,255,46,0,42,0,103,255,145,255,51,0,252,255,213,255,141,255,23,255,197,255, +229,255,176,255,120,2,36,2,209,248,161,243,135,252,193,5,228,4,207,0,52,253,204,250,131,254,167,3,26,1,40,252, +210,252,35,0,125,2,139,2,199,254,17,252,59,255,222,2,56,2,50,0,238,254,201,254,34,0,198,0,117,0,45,1, +138,0,254,253,199,254,41,2,230,2,171,2,210,2,132,255,181,251,70,254,166,3,250,3,189,0,8,0,1,1,80,254, +40,250,74,252,216,2,14,5,195,2,69,0,31,254,226,254,58,2,19,0,110,250,113,252,34,2,106,2,146,2,8,4, +211,255,132,252,39,1,59,3,165,255,248,0,122,4,253,1,223,255,226,1,86,1,182,254,78,254,37,254,215,254,11,2, +118,2,202,254,85,253,215,254,14,0,172,1,5,3,218,1,66,0,12,0,85,0,201,1,12,3,222,0,116,254,172,255, +36,0,9,254,184,254,83,1,166,0,98,255,249,255,233,253,123,250,6,252,122,255,231,254,131,253,177,254,146,255,255,254, +67,254,25,253,107,252,25,253,34,253,108,252,245,252,136,253,254,252,9,253,86,253,49,253,43,253,147,252,121,252,2,255, +7,1,203,255,132,254,205,253,253,251,108,252,50,255,164,254,250,251,73,252,210,253,179,253,93,252,160,250,92,251,241,254, +140,255,230,252,200,252,244,253,126,253,195,253,78,253,134,250,200,250,183,253,90,253,103,252,237,253,131,253,181,251,231,251, +91,251,144,250,84,253,18,0,172,255,60,255,171,254,156,252,201,251,171,252,183,253,21,255,212,254,253,251,73,250,57,251, +87,253,191,255,157,255,210,252,134,252,47,254,161,253,93,253,149,254,57,254,169,254,39,1,242,0,202,254,72,254,69,254, +74,255,165,0,73,254,145,252,14,255,57,254,183,251,153,255,190,1,186,253,99,254,110,1,111,0,125,3,26,5,207,250, +16,248,100,5,147,7,251,251,32,251,57,1,15,2,67,5,117,7,158,0,126,253,255,1,190,1,192,255,135,2,1,3, +25,1,122,2,161,3,99,2,220,0,220,0,38,6,170,10,137,5,248,4,13,17,237,16,15,0,65,251,32,2,179,1, +153,4,160,14,140,10,60,255,131,3,5,10,204,2,82,255,194,6,136,6,156,254,130,0,211,7,127,5,27,0,51,2, +243,3,212,1,62,4,37,6,4,0,184,253,124,2,250,0,68,255,77,7,177,7,223,251,6,252,60,7,164,6,178,255, +147,1,167,3,243,254,169,253,223,2,175,3,131,252,94,250,240,2,1,5,64,251,25,251,31,5,72,4,39,0,190,4, +200,0,38,247,161,255,254,9,217,0,37,251,224,2,114,2,192,253,19,2,128,2,24,253,81,255,118,2,66,0,24,2, +32,4,164,255,108,255,244,4,127,4,184,0,146,1,213,2,210,255,24,251,47,250,159,254,149,255,45,249,174,247,168,253, +251,253,229,249,155,250,255,249,0,246,100,249,97,1,141,1,225,251,250,248,174,250,202,254,58,0,190,252,234,250,247,253, +144,255,134,253,162,252,231,253,10,255,117,0,241,2,81,4,205,2,234,0,52,1,121,1,119,0,135,0,177,0,67,255, +201,255,60,2,149,1,19,0,217,1,152,2,2,1,79,2,42,4,140,1,80,255,91,1,135,2,13,1,104,1,107,3, +47,3,184,1,38,2,214,2,135,1,220,0,87,2,203,2,225,1,143,2,205,3,2,3,80,2,45,3,187,3,241,3, +194,3,252,1,39,1,125,2,87,1,200,253,221,253,96,0,230,255,102,254,251,254,70,255,238,254,133,0,110,2,215,1, +216,0,89,2,83,4,7,3,127,255,230,253,101,254,82,254,105,254,205,255,201,255,88,253,127,251,87,251,237,251,101,253, +140,254,163,253,170,252,105,253,115,253,32,252,80,252,74,253,1,252,138,250,214,251,224,252,130,251,38,251,7,252,253,250, +245,250,156,254,121,255,53,251,241,249,191,252,112,252,183,250,102,252,37,253,8,251,61,251,204,252,239,251,196,251,252,252, +100,251,125,249,169,251,31,254,170,253,92,253,56,254,100,254,32,254,212,253,56,253,87,253,159,254,37,0,42,1,128,0, +86,254,207,253,169,255,122,0,146,255,141,255,54,0,235,255,197,255,151,0,215,0,94,0,196,0,104,1,114,0,18,255, +85,255,21,0,29,0,181,0,126,1,166,0,209,255,240,0,160,1,136,0,80,0,112,1,111,1,118,0,165,0,201,1, +9,2,36,1,214,0,122,1,254,0,196,255,175,0,92,2,251,1,64,2,72,4,130,3,161,0,88,1,158,3,145,2, +72,1,105,2,93,2,16,1,132,1,241,1,96,1,152,2,189,3,142,1,250,255,29,2,254,3,192,3,202,3,168,3, +114,2,106,2,169,3,152,3,135,2,109,2,13,3,48,3,166,2,90,2,19,3,190,3,47,3,224,2,197,3,5,4, +68,3,131,3,193,4,54,5,83,4,208,2,81,2,187,3,215,4,230,3,10,3,140,3,176,3,113,3,245,3,7,4, +77,3,156,3,189,4,238,4,117,4,105,4,200,4,230,4,48,4,151,3,123,4,55,5,17,4,82,3,59,4,90,4, +197,3,111,4,156,4,41,3,170,2,41,3,157,2,102,2,98,3,73,3,118,2,182,2,44,2,40,0,214,255,47,1, +18,1,77,0,43,1,223,1,189,0,249,255,150,0,88,0,61,255,205,255,15,1,5,0,108,254,112,255,229,0,2,0, +226,254,67,255,141,255,246,254,192,253,85,252,18,253,79,0,123,1,11,255,25,253,241,252,150,252,180,252,216,253,249,253, +234,252,69,252,80,252,250,252,128,253,101,252,47,251,57,252,162,253,105,253,235,252,134,252,12,252,62,253,240,254,53,254, +35,253,185,253,73,253,60,252,154,253,204,254,51,253,74,252,93,253,96,253,167,252,62,253,240,253,176,253,85,253,217,252, +25,252,214,251,57,252,252,252,164,253,96,253,149,252,153,252,119,253,29,254,141,253,0,252,228,251,64,254,173,255,104,254, +156,253,106,254,125,254,237,253,234,253,150,253,55,253,218,253,91,254,63,254,80,254,158,253,56,252,150,252,36,254,27,254, +59,253,84,253,168,253,132,253,42,253,200,252,45,253,42,254,11,254,106,253,230,253,27,254,90,253,140,253,217,253,132,252, +47,252,17,254,99,254,191,252,250,252,117,254,188,253,225,251,148,251,102,252,42,253,178,253,197,253,161,253,163,253,76,253, +237,252,140,253,6,254,12,253,151,252,1,254,203,254,230,253,169,253,62,254,187,253,25,253,216,253,82,254,178,253,207,253, +206,254,215,254,223,253,95,253,238,253,218,254,30,255,245,254,109,255,223,255,51,255,147,254,223,254,247,254,224,254,70,255, +25,255,132,254,37,255,204,255,33,255,49,255,100,0,89,0,193,255,139,0,66,1,255,0,70,1,127,1,148,0,89,0, +88,1,110,1,211,0,65,1,195,1,36,1,127,0,161,0,5,1,54,1,250,0,162,0,217,0,42,1,232,0,218,0, +135,1,43,2,82,2,19,2,187,1,3,2,116,2,200,1,21,1,214,1,79,2,154,1,236,1,232,2,48,2,136,1, +211,2,44,3,200,1,44,2,228,3,110,3,40,2,177,2,232,2,66,1,122,0,225,1,25,3,171,2,214,1,203,1, +237,1,92,1,237,0,182,1,181,2,186,2,116,2,56,2,106,1,185,0,7,1,139,1,205,1,71,2,144,2,91,2, +79,2,24,2,74,1,39,1,218,1,201,1,95,1,240,1,34,2,31,1,13,1,68,2,62,2,12,1,35,1,73,2, +92,2,95,1,190,0,156,0,125,0,203,0,206,1,97,2,189,1,30,1,97,1,106,1,254,0,92,1,246,1,104,1, +219,0,99,1,95,1,133,0,245,0,37,2,152,1,83,0,171,0,94,1,221,0,189,0,131,1,253,0,95,255,102,255, +139,0,3,0,179,254,52,255,35,0,65,255,100,254,89,255,8,0,77,255,43,255,209,255,29,255,159,253,242,253,134,255, +177,255,172,254,103,254,183,254,187,254,234,254,42,255,128,254,117,253,95,253,63,254,62,255,162,255,24,255,77,254,39,254, +117,254,216,254,116,255,230,255,121,255,81,254,60,253,22,253,252,253,219,254,241,254,208,254,204,254,152,254,141,254,248,254, +38,255,168,254,25,254,72,254,42,255,177,255,73,255,178,254,81,254,232,253,19,254,220,254,229,254,67,254,49,254,45,254, +174,253,165,253,13,254,55,254,100,254,97,254,21,254,139,254,26,255,97,254,250,253,207,254,195,254,50,254,30,255,126,255, +179,253,207,252,45,254,67,255,50,255,225,254,76,254,214,253,79,254,96,255,63,0,64,0,11,255,189,253,208,253,246,254, +207,255,148,255,233,254,31,255,232,255,234,255,179,255,27,0,21,0,150,255,196,255,11,0,31,0,245,0,112,1,133,0, +62,0,29,1,31,1,184,0,47,1,85,1,223,0,252,0,65,1,55,1,86,1,76,1,45,1,126,1,76,1,182,0, +136,1,163,2,207,1,156,0,190,0,7,1,45,1,192,1,148,1,66,0,118,255,235,255,227,0,140,1,110,1,18,1, +50,1,53,1,211,0,202,0,217,0,137,0,171,0,73,1,54,1,106,0,225,255,59,0,69,1,190,1,27,1,165,0, +200,0,134,0,72,0,196,0,30,1,27,1,65,1,32,1,253,0,124,1,85,1,110,0,254,0,60,2,118,1,41,0, +180,0,106,1,227,0,180,0,104,1,201,1,176,1,196,1,252,1,225,1,154,1,224,1,100,2,7,2,124,1,15,2, +173,2,83,2,76,2,210,2,165,2,73,2,128,2,99,2,22,2,138,2,176,2,184,1,52,1,233,1,142,2,85,2, +183,1,92,1,130,1,205,1,216,1,191,1,110,1,225,0,204,0,89,1,165,1,112,1,72,1,61,1,28,1,0,1, +0,1,35,1,68,1,14,1,182,0,186,0,251,0,60,1,88,1,216,0,34,0,105,0,25,1,208,0,84,0,163,0, +177,0,41,0,41,0,122,0,112,0,153,0,198,0,29,0,124,255,209,255,30,0,221,255,228,255,48,0,48,0,61,0, +116,0,41,0,121,255,108,255,60,0,211,0,124,0,243,255,238,255,248,255,241,255,37,0,253,255,136,255,230,255,107,0, +190,255,40,255,227,255,55,0,52,255,159,254,54,255,182,255,137,255,57,255,254,254,154,254,36,254,53,254,224,254,66,255, +199,254,10,254,216,253,71,254,171,254,108,254,26,254,134,254,7,255,186,254,252,253,68,253,214,252,85,253,51,254,12,254, +125,253,210,253,27,254,138,253,79,253,214,253,31,254,241,253,158,253,63,253,51,253,111,253,95,253,76,253,152,253,133,253, +248,252,234,252,38,253,224,252,210,252,145,253,227,253,40,253,188,252,102,253,23,254,251,253,164,253,178,253,214,253,167,253, +134,253,220,253,75,254,97,254,74,254,56,254,22,254,0,254,14,254,41,254,114,254,208,254,202,254,158,254,188,254,145,254, +61,254,205,254,92,255,168,254,61,254,242,254,228,254,93,254,30,255,111,255,59,254,102,254,1,0,199,255,170,254,64,255, +178,255,176,254,150,254,168,255,212,255,126,255,198,255,194,255,9,255,220,254,187,255,145,0,86,0,151,255,129,255,195,255, +135,255,129,255,22,0,32,0,176,255,6,0,157,0,96,0,24,0,107,0,109,0,215,255,190,255,104,0,241,0,247,0, +180,0,71,0,254,255,35,0,98,0,169,0,103,1,233,1,56,1,123,0,232,0,92,1,30,1,57,1,142,1,69,1, +17,1,63,1,31,1,49,1,153,1,34,1,150,0,119,1,30,2,75,1,245,0,148,1,154,1,97,1,117,1,22,1, +240,0,161,1,178,1,37,1,73,1,57,1,196,0,170,1,178,2,160,1,134,0,66,1,180,1,247,0,160,0,202,0, +223,0,10,1,200,0,21,0,19,0,123,0,130,0,233,0,156,1,74,1,92,0,2,0,15,0,73,0,194,0,255,0, +237,0,216,0,131,0,73,0,206,0,58,1,233,0,194,0,208,0,74,0,239,255,167,0,119,1,75,1,146,0,102,0, +30,1,161,1,241,0,21,0,80,0,240,0,19,1,227,0,87,0,185,255,20,0,29,1,110,1,10,1,189,0,139,0, +144,0,253,0,22,1,144,0,94,0,198,0,225,0,131,0,82,0,84,0,80,0,121,0,132,0,224,255,100,255,246,255, +91,0,173,255,112,255,4,0,176,255,239,254,106,255,227,255,50,255,241,254,100,255,61,255,96,255,83,0,37,0,253,254, +9,255,150,255,16,255,143,254,1,255,167,255,35,0,65,0,205,255,144,255,191,255,169,255,197,255,78,0,250,255,31,255, +128,255,67,0,178,255,223,254,45,255,247,255,93,0,25,0,53,255,167,254,40,255,234,255,34,0,4,0,191,255,136,255, +188,255,21,0,31,0,6,0,196,255,82,255,110,255,31,0,54,0,200,255,248,255,55,0,163,255,128,255,112,0,183,0, +249,255,239,255,75,0,160,255,17,255,197,255,30,0,118,255,129,255,24,0,142,255,191,254,47,255,166,255,20,255,215,254, +131,255,174,255,33,255,4,255,58,255,1,255,231,254,140,255,35,0,234,255,77,255,214,254,174,254,249,254,129,255,192,255, +140,255,31,255,237,254,113,255,24,0,170,255,157,254,169,254,171,255,230,255,31,255,187,254,85,255,20,0,11,0,114,255, +23,255,250,254,196,254,228,254,86,255,35,255,162,254,47,255,9,0,138,255,168,254,246,254,135,255,74,255,38,255,136,255, +164,255,123,255,109,255,32,255,213,254,59,255,158,255,57,255,236,254,43,255,21,255,207,254,35,255,154,255,193,255,232,255, +185,255,23,255,3,255,122,255,118,255,34,255,240,254,146,254,154,254,120,255,208,255,81,255,137,255,31,0,152,255,1,255, +137,255,210,255,76,255,87,255,3,0,64,0,21,0,228,255,177,255,224,255,126,0,217,0,198,0,161,0,143,0,161,0, +169,0,111,0,91,0,148,0,120,0,84,0,251,0,147,1,18,1,93,0,88,0,160,0,14,1,115,1,37,1,142,0, +149,0,195,0,174,0,253,0,115,1,76,1,0,1,224,0,102,0,5,0,102,0,197,0,182,0,210,0,189,0,244,255, +132,255,15,0,153,0,182,0,199,0,120,0,198,255,172,255,34,0,39,0,255,255,84,0,77,0,124,255,60,255,238,255, +55,0,251,255,35,0,40,0,151,255,136,255,4,0,238,255,229,255,168,0,215,0,24,0,247,255,72,0,5,0,29,0, +206,0,158,0,232,255,244,255,6,0,210,255,94,0,224,0,86,0,44,0,210,0,185,0,48,0,89,0,74,0,209,255, +54,0,231,0,184,0,140,0,204,0,124,0,8,0,64,0,103,0,64,0,124,0,177,0,102,0,87,0,184,0,236,0, +234,0,196,0,59,0,185,255,209,255,56,0,100,0,31,0,144,255,95,255,213,255,72,0,74,0,19,0,183,255,130,255, +247,255,153,0,141,0,42,0,255,255,230,255,239,255,55,0,51,0,193,255,134,255,180,255,254,255,57,0,55,0,250,255, +224,255,238,255,230,255,8,0,102,0,141,0,106,0,77,0,58,0,34,0,13,0,239,255,6,0,102,0,95,0,208,255, +179,255,41,0,90,0,93,0,166,0,193,0,157,0,222,0,36,1,181,0,41,0,70,0,166,0,215,0,0,1,0,1, +169,0,108,0,178,0,15,1,234,0,110,0,87,0,198,0,17,1,202,0,94,0,100,0,198,0,232,0,131,0,32,0, +58,0,120,0,125,0,130,0,135,0,63,0,20,0,137,0,10,1,244,0,185,0,209,0,235,0,204,0,155,0,110,0, +107,0,193,0,31,1,249,0,81,0,191,255,217,255,123,0,209,0,176,0,208,0,17,1,150,0,236,255,46,0,157,0, +70,0,10,0,105,0,113,0,36,0,71,0,107,0,69,0,108,0,130,0,47,0,77,0,216,0,219,0,139,0,153,0, +195,0,190,0,191,0,178,0,95,0,39,0,75,0,72,0,26,0,104,0,177,0,35,0,177,255,4,0,254,255,135,255, +143,255,147,255,84,255,202,255,64,0,161,255,28,255,108,255,167,255,208,255,29,0,194,255,249,254,226,254,128,255,207,255, +31,255,143,254,130,255,13,0,144,254,38,254,204,255,208,255,202,254,104,255,38,255,69,254,148,0,213,1,78,254,95,253, +209,0,106,0,138,253,216,254,121,0,248,254,96,254,239,254,10,255,251,255,165,255,17,254,96,0,193,2,27,255,87,253, +145,1,110,1,215,252,229,253,32,1,3,0,175,255,255,0,236,254,135,253,72,0,0,1,237,254,214,255,201,1,72,0, +126,254,135,255,129,0,167,255,60,255,236,255,217,255,131,255,118,0,97,0,34,254,44,254,81,1,18,2,244,255,56,255, +137,255,82,255,189,255,104,0,169,0,18,1,58,0,147,254,36,255,16,0,106,255,121,0,49,1,143,253,122,252,82,1, +84,2,108,254,164,254,182,0,3,255,79,254,14,0,98,255,64,254,250,255,62,1,33,0,38,255,209,255,67,1,71,1, +167,255,15,255,98,255,253,254,150,255,27,1,44,1,213,255,85,252,197,250,24,5,241,14,152,254,129,229,139,235,133,4, +194,12,29,9,208,4,62,248,223,241,60,1,211,12,28,5,43,255,61,253,52,246,255,251,165,11,184,4,189,244,202,252, +75,6,8,254,114,1,102,13,225,0,163,242,92,0,40,10,140,254,44,253,50,7,244,0,223,244,26,252,187,11,188,10, +247,251,84,249,74,6,23,6,157,246,13,248,77,6,218,4,161,254,196,0,225,252,64,252,78,8,237,3,25,245,83,1, +40,13,149,250,143,247,30,13,196,6,94,246,15,8,220,18,43,252,34,246,86,7,60,4,159,247,67,0,15,11,253,2, +221,248,198,253,202,6,192,1,9,248,242,253,94,5,249,253,228,254,194,10,109,1,48,242,121,254,133,9,139,254,58,255, +76,9,81,254,187,245,84,3,166,6,247,251,222,255,20,7,183,0,220,254,73,3,32,253,164,247,198,255,221,5,200,1, +255,254,213,255,210,254,139,253,236,253,143,254,35,255,164,254,36,253,83,254,55,1,15,0,148,253,182,255,118,0,103,251, +77,251,138,2,42,3,125,253,204,253,103,255,84,252,65,254,71,3,179,255,12,252,204,0,220,1,228,254,107,4,42,8, +14,253,112,244,33,253,215,6,96,3,110,253,140,254,85,255,111,252,148,254,17,4,211,0,69,249,8,250,41,254,96,254, +141,255,192,0,109,254,229,254,119,0,57,252,215,251,34,3,137,2,74,251,5,253,200,1,60,255,123,252,76,252,135,251, +119,254,18,2,100,254,153,250,47,253,200,254,165,253,60,254,42,254,50,253,29,255,115,1,134,1,123,0,247,253,23,253, +115,1,156,3,105,254,178,251,92,0,201,2,214,255,66,255,161,0,98,253,31,251,139,1,228,5,17,255,192,251,79,3, +155,4,200,253,235,255,177,5,221,1,72,255,219,3,98,3,72,0,90,3,7,4,96,255,153,255,237,2,148,2,244,1, +252,1,39,0,220,255,81,2,229,3,171,2,177,254,101,253,86,3,127,6,138,0,169,254,68,4,199,3,75,255,85,1, +115,3,4,1,117,1,246,2,78,0,5,0,135,4,183,5,162,1,112,254,238,255,130,3,117,3,233,0,58,2,75,4, +146,1,178,0,239,4,37,5,168,0,69,0,85,3,77,4,35,3,241,0,247,255,27,2,187,2,234,255,216,255,165,2, +1,3,153,2,125,2,50,255,214,252,140,0,194,3,75,1,173,254,254,254,49,255,39,255,134,0,200,1,32,1,192,255, +192,255,180,0,183,0,34,0,232,255,108,255,80,255,186,255,180,253,54,250,178,250,15,254,217,254,168,253,27,253,2,253, +11,254,136,255,216,254,15,254,200,255,169,0,66,255,164,254,202,254,193,254,202,255,94,0,49,255,222,254,239,254,25,253, +21,252,38,253,65,253,47,253,67,254,88,253,91,251,124,252,91,254,224,253,177,253,121,254,103,254,158,254,180,254,170,252, +112,251,78,253,94,254,9,253,199,252,111,254,114,255,106,254,142,252,136,252,45,254,11,254,228,252,98,254,236,255,218,253, +25,252,165,253,229,254,139,254,174,254,151,254,2,254,231,254,1,0,240,254,156,253,80,254,231,255,126,0,89,255,120,253, +99,253,142,255,254,0,212,255,48,254,221,254,159,0,0,0,99,254,214,255,201,1,59,0,26,255,39,1,233,1,173,0, +113,0,142,255,56,254,67,0,228,2,192,1,219,255,122,255,219,254,221,254,239,255,229,255,111,255,119,255,130,254,233,253, +10,255,95,255,231,254,112,255,45,255,161,254,174,0,35,2,75,0,129,255,167,0,47,0,213,255,52,1,242,0,228,255, +80,1,101,2,11,1,67,0,72,0,196,255,204,0,227,2,80,2,229,255,21,255,54,0,36,2,250,2,37,1,186,255, +170,1,195,2,118,0,225,255,0,2,91,1,203,254,3,255,253,255,109,255,254,255,186,0,210,254,10,254,189,0,206,1, +206,255,122,255,247,0,145,0,232,254,228,254,157,0,204,1,216,0,74,255,114,255,44,0,247,255,69,0,27,1,182,0, +65,0,215,0,95,0,240,254,83,255,198,0,99,0,244,254,76,255,240,0,205,0,243,254,208,254,105,0,141,0,236,255, +168,0,245,0,50,0,179,0,108,1,96,0,139,255,46,0,50,1,94,2,113,2,146,0,208,255,42,1,164,1,153,1, +106,2,251,1,208,0,64,1,89,1,128,0,30,1,110,1,69,0,54,1,244,2,110,1,204,255,221,0,234,0,234,255, +130,1,93,3,29,2,64,0,54,0,5,1,206,1,73,2,130,2,19,3,135,3,4,3,72,2,102,2,127,3,148,4, +41,4,35,3,154,3,34,4,17,3,177,2,180,3,230,3,196,3,211,3,142,2,251,1,171,3,159,3,228,1,0,3, +8,4,81,1,70,0,245,2,206,3,211,2,46,3,192,2,95,1,232,1,161,2,68,2,14,3,112,3,173,1,56,1, +145,2,109,2,234,1,209,2,64,3,2,3,251,2,20,2,49,1,2,2,153,2,133,1,114,0,165,0,43,2,65,3, +87,1,231,254,1,0,241,1,178,1,154,1,107,1,135,255,69,255,224,0,26,0,246,254,72,0,55,0,10,255,228,0, +196,1,114,254,101,253,117,0,87,1,137,255,242,254,45,255,59,255,172,255,134,255,113,254,126,253,2,253,201,253,227,255, +146,0,224,254,64,253,181,252,253,252,149,254,40,0,155,255,212,253,218,252,10,253,120,253,38,253,200,252,123,253,196,253, +10,253,202,253,26,255,124,253,79,251,77,252,192,253,81,253,74,253,153,253,108,252,198,251,250,252,159,253,233,252,172,252, +171,253,233,254,220,254,113,253,178,252,135,253,137,254,146,254,122,253,94,252,52,253,30,255,32,255,121,253,59,252,207,251, +196,252,166,254,143,254,162,252,53,252,51,253,180,253,190,253,255,252,44,252,142,253,69,255,27,254,108,252,151,252,23,253, +228,253,196,254,136,253,99,252,20,254,213,254,43,253,80,253,143,254,129,253,162,252,219,253,119,254,214,253,46,253,186,252, +192,253,203,255,193,255,43,254,154,253,121,253,207,253,107,255,222,255,122,254,55,254,191,254,95,254,189,254,137,255,203,254, +147,254,222,255,181,255,157,254,41,255,179,255,17,255,32,255,132,255,72,255,239,255,46,1,205,0,87,255,224,254,182,255, +164,0,122,0,215,255,249,255,188,255,190,254,121,255,12,1,50,0,51,255,196,0,34,1,246,254,229,254,27,1,145,1, +162,0,57,0,205,255,195,255,205,0,170,1,207,1,98,1,96,0,150,0,80,2,13,2,41,0,7,1,0,3,1,2, +253,0,135,2,162,2,102,0,21,0,170,1,252,1,130,1,141,1,77,1,227,0,108,1,42,2,184,1,247,0,145,1, +179,2,183,2,80,2,26,2,228,0,217,255,90,1,31,3,94,2,90,1,100,1,130,0,215,255,66,1,39,2,46,1, +205,0,76,1,96,1,140,1,129,1,200,0,239,0,145,1,172,0,204,255,173,0,63,1,179,0,189,0,20,1,195,0, +166,0,0,1,38,1,1,1,97,0,169,255,41,0,110,1,170,1,212,0,48,0,101,0,45,1,139,1,56,1,239,0, +126,0,248,255,235,0,87,2,93,1,158,255,77,0,169,1,101,1,222,0,187,0,82,0,84,0,203,0,239,0,98,1, +215,1,228,0,198,255,60,0,16,1,14,1,178,0,82,0,118,0,123,1,51,2,156,1,4,0,105,254,209,254,97,1, +61,2,92,0,10,0,223,1,233,1,106,0,227,255,48,255,1,254,13,255,7,2,79,3,149,1,14,255,105,254,171,255, +132,0,80,0,75,0,73,0,217,255,180,255,85,255,107,254,214,254,78,0,33,0,1,255,52,255,166,255,60,255,87,255, +13,0,248,255,39,255,182,254,13,255,103,255,247,254,156,254,22,255,39,255,238,254,185,255,174,255,144,253,239,252,24,255, +75,0,139,255,1,255,158,254,87,254,81,255,0,0,180,254,127,253,247,253,197,254,33,255,251,254,242,253,63,253,96,254, +188,255,41,255,251,253,110,254,88,255,141,254,104,253,71,254,159,255,3,255,235,253,44,254,151,254,149,254,7,255,23,255, +64,254,76,254,3,255,35,254,5,253,105,254,41,0,58,255,204,253,108,254,12,255,49,254,247,253,200,254,151,254,220,253, +72,254,218,254,158,254,191,254,28,255,105,254,178,253,146,254,228,255,230,255,231,254,85,254,3,255,86,0,197,0,227,255, +31,255,173,255,178,0,126,0,49,255,166,254,128,255,138,0,252,0,209,0,34,0,218,255,78,0,17,0,57,255,210,255, +54,1,44,1,119,0,93,0,50,0,108,0,115,1,19,1,85,255,157,255,100,1,57,1,89,0,117,1,91,2,246,0, +239,255,248,0,164,1,190,0,73,0,36,1,200,1,162,1,152,1,148,1,232,0,64,0,143,0,93,1,207,1,214,1, +191,1,167,1,88,1,178,0,112,0,22,1,202,1,226,1,178,1,41,1,178,0,213,1,75,3,235,1,183,255,3,1, +126,3,213,2,44,1,152,1,117,2,114,2,56,2,126,1,248,0,202,1,54,2,136,1,236,1,105,2,16,1,198,0, +155,2,167,2,48,1,132,1,252,1,100,1,65,2,14,3,72,1,68,0,99,1,91,1,58,1,4,3,30,3,154,0, +186,255,228,0,209,1,126,2,14,2,122,0,228,0,121,2,77,1,126,255,157,0,51,2,250,1,65,1,129,0,44,0, +0,1,58,1,71,0,135,0,103,1,185,0,10,0,178,0,33,1,18,1,252,0,47,0,154,255,130,0,92,1,255,0, +100,0,246,255,201,255,36,0,56,0,223,255,45,0,133,0,229,255,121,255,200,255,170,255,79,255,146,255,213,255,129,255, +19,255,11,255,77,255,63,255,23,255,219,255,167,0,213,255,250,254,210,255,80,0,89,255,250,254,57,255,189,254,219,254, +4,0,194,255,66,254,87,254,165,255,175,255,138,254,214,253,12,254,209,254,110,255,46,255,119,254,35,254,26,254,84,254, +63,255,208,255,222,254,22,254,219,254,11,255,217,253,221,253,233,254,129,254,10,254,107,255,12,0,142,254,212,253,167,254, +233,254,146,254,143,254,109,254,65,254,91,254,22,254,192,253,2,254,203,253,250,252,177,253,208,255,40,0,17,254,161,252, +106,253,141,254,165,254,127,254,100,254,247,253,251,253,163,254,203,254,175,254,241,254,153,254,42,254,71,255,1,0,116,254, +131,253,149,254,176,254,193,253,122,254,193,255,80,255,92,254,94,254,202,254,23,255,59,255,42,255,226,254,147,254,9,255, +41,0,247,255,144,254,185,254,243,255,149,255,209,254,107,255,189,255,123,255,20,0,76,0,87,255,74,255,49,0,63,0, +21,0,102,0,34,0,176,255,65,0,222,0,99,0,137,255,131,255,105,0,242,0,45,0,74,255,79,255,129,255,252,255, +9,1,244,0,176,255,187,255,153,0,41,0,237,255,1,1,255,0,220,255,12,0,151,0,211,255,142,255,135,0,197,0, +90,0,190,0,56,1,214,0,111,0,139,0,164,0,167,0,0,1,90,1,188,0,146,255,217,255,112,1,191,1,188,0, +184,0,61,1,185,0,83,0,179,0,135,0,54,0,195,0,40,1,28,1,103,1,241,0,232,255,201,0,117,2,180,1, +255,255,60,0,103,1,190,1,114,1,13,1,0,1,52,1,38,1,73,1,156,1,15,1,180,0,186,1,239,1,215,0, +66,1,67,2,59,1,119,0,140,1,143,1,62,0,6,0,101,0,188,0,173,1,133,1,195,255,132,255,245,0,34,1, +94,0,127,0,4,1,65,1,17,1,75,0,246,255,115,0,110,0,63,0,212,0,185,0,171,255,178,255,132,0,201,0, +33,1,27,1,222,255,126,255,197,0,33,1,119,0,151,0,111,0,104,255,177,255,3,1,239,0,42,0,106,0,140,0, +152,255,17,255,247,255,240,0,124,0,87,255,95,255,138,0,250,0,49,0,138,255,160,255,209,255,202,255,205,255,224,255, +222,255,224,255,242,255,221,255,159,255,148,255,234,255,106,0,159,0,54,0,206,255,11,0,15,0,74,255,25,255,206,255, +248,255,227,255,72,0,194,255,165,254,85,255,135,0,160,255,131,254,47,255,212,255,179,255,234,255,253,255,151,255,138,255, +110,255,22,255,113,255,208,255,110,255,131,255,254,255,146,255,8,255,54,255,97,255,124,255,102,255,188,254,251,254,36,0, +128,255,45,254,74,255,115,0,55,255,149,254,117,255,99,255,43,255,148,255,166,254,172,253,248,254,248,255,242,254,133,254, +114,255,223,255,101,255,159,254,112,254,87,255,223,255,156,255,32,0,85,0,198,254,33,254,92,255,155,255,56,255,229,255, +175,255,125,254,8,255,17,0,89,255,225,254,192,255,5,0,106,255,247,254,194,254,254,254,111,255,84,255,35,255,55,255, +0,255,6,255,170,255,178,255,30,255,20,255,79,255,120,255,227,255,206,255,248,254,180,254,48,255,136,255,227,255,82,0, +32,0,88,255,192,254,188,254,247,254,0,255,96,255,51,0,213,255,104,254,174,254,90,0,83,0,247,254,158,254,11,255, +107,255,220,255,14,0,244,255,142,255,123,254,15,254,109,255,114,0,189,255,253,254,198,254,214,254,184,255,232,255,78,254, +208,253,75,255,226,255,196,255,85,0,198,255,93,254,180,254,138,255,58,255,108,255,246,255,77,255,246,254,196,255,196,255, +203,254,75,254,163,254,198,255,162,0,211,255,219,254,142,255,59,0,137,255,2,255,162,255,106,0,22,0,241,254,218,254, +240,255,31,0,184,255,64,0,94,0,172,255,65,0,247,0,200,255,53,255,122,0,188,0,218,255,190,255,135,255,51,255, +68,0,0,1,223,255,121,255,174,0,205,0,172,255,185,255,224,0,249,0,210,255,142,255,200,0,72,1,92,0,18,0, +122,0,46,0,86,0,81,1,231,0,197,255,50,0,135,0,178,255,60,0,133,1,141,0,45,255,14,0,251,0,98,0, +16,0,112,0,152,0,176,0,111,0,179,255,209,255,175,0,193,0,116,0,151,0,87,0,23,0,214,0,36,1,39,0, +192,255,102,0,175,0,143,0,53,0,107,255,167,255,60,1,101,1,231,255,245,255,106,1,105,1,75,0,248,255,63,0, +136,0,199,0,170,0,108,0,130,0,135,0,83,0,64,0,66,0,136,0,253,0,140,0,162,255,37,0,95,1,58,1, +130,0,176,0,1,1,244,0,12,1,1,1,178,0,197,0,2,1,225,0,219,0,25,1,253,0,143,0,126,0,223,0, +254,0,143,0,109,0,251,0,36,1,191,0,23,1,172,1,22,1,104,0,243,0,59,1,93,0,78,0,31,1,196,0, +67,0,253,0,244,0,46,0,252,0,180,1,141,0,54,0,56,1,6,1,105,0,187,0,147,0,80,0,21,1,63,1, +129,0,150,0,243,0,190,0,215,0,8,1,201,0,191,0,190,0,151,0,242,0,249,0,41,0,83,0,119,1,101,1, +96,0,29,0,145,0,255,0,254,0,167,0,155,0,184,0,153,0,189,0,232,0,181,0,7,1,80,1,95,0,46,0, +165,1,226,1,194,0,175,0,200,0,19,0,50,0,242,0,248,0,189,0,154,0,159,0,224,0,29,0,6,255,48,0, +193,1,241,0,68,0,252,0,154,0,217,255,84,0,105,0,12,0,71,0,231,255,89,255,244,255,64,0,19,0,182,0, +172,0,172,255,154,255,194,255,205,255,172,0,85,0,229,254,215,255,31,1,32,0,58,0,204,0,184,254,121,254,77,1, +227,0,225,254,68,0,1,1,101,255,171,255,111,0,198,255,44,0,84,0,34,255,148,255,45,0,39,255,167,255,7,0, +77,254,156,255,240,1,174,254,108,252,55,0,64,1,108,254,7,255,52,0,195,254,182,254,116,255,28,255,177,255,192,255, +151,254,76,255,253,255,204,254,234,254,118,255,223,254,3,0,211,0,0,255,73,255,254,0,168,255,187,254,60,255,4,254, +174,254,22,1,144,255,84,254,98,0,69,255,190,253,170,0,157,0,44,254,200,0,96,0,169,250,94,255,145,9,12,2, +149,239,124,237,210,252,185,8,28,8,161,1,60,251,188,247,27,252,129,5,61,7,24,1,11,253,91,249,8,248,105,2, +168,8,131,252,92,247,22,2,223,1,92,253,66,7,12,6,57,245,71,249,237,7,73,1,16,251,85,4,47,2,13,247, +79,252,92,8,84,7,185,252,246,247,16,2,60,10,154,254,89,246,205,1,150,5,205,253,106,0,64,1,251,250,151,2, +65,7,254,249,190,252,51,10,46,253,166,244,188,9,120,11,170,246,11,254,9,14,115,0,85,246,86,3,243,6,133,253, +174,253,154,3,11,3,100,254,58,253,220,1,179,2,83,252,44,253,152,3,193,255,125,252,83,4,97,4,193,251,97,254, +212,3,13,0,33,1,96,6,109,0,27,250,246,255,43,4,76,0,201,255,91,2,79,0,101,254,170,0,177,255,77,251, +185,253,183,3,72,1,96,252,210,254,78,0,59,253,198,254,162,1,187,255,200,255,242,255,72,251,190,252,150,3,14,1, +228,252,176,0,83,255,82,250,142,255,47,4,171,255,69,254,170,255,16,255,99,3,222,4,243,251,51,250,155,1,135,0, +120,254,29,4,196,1,73,249,13,251,31,0,187,0,16,2,74,0,77,252,116,255,212,1,235,253,99,255,112,2,162,253, +7,252,152,255,216,253,183,253,242,1,245,254,152,251,204,255,181,254,164,250,171,0,180,4,205,254,147,253,199,0,8,255, +9,255,90,1,139,254,134,253,86,1,75,0,186,252,152,253,104,254,197,254,201,1,84,1,107,252,119,251,217,254,14,1, +233,0,50,255,82,254,238,255,105,0,111,254,165,253,173,254,105,0,203,1,248,255,65,253,140,254,186,255,239,253,62,255, +34,2,228,255,181,253,119,0,236,1,139,0,111,0,168,255,61,254,225,0,251,3,143,1,52,255,121,2,137,3,223,252, +167,249,57,1,180,5,77,254,173,249,21,255,138,1,51,255,176,1,210,3,225,255,93,255,36,2,232,254,187,252,126,2, +221,5,10,4,52,4,12,2,105,251,68,251,143,1,100,3,220,3,223,10,30,16,91,8,54,251,112,249,18,1,118,1, +42,254,62,7,252,15,137,5,237,250,82,1,64,4,28,252,66,253,236,5,5,6,204,2,248,0,136,251,94,250,252,0, +18,3,39,2,185,5,255,3,255,252,31,255,245,3,62,0,0,255,243,3,206,2,161,254,154,0,71,2,51,255,20,253, +120,254,231,2,118,6,167,2,31,253,5,255,139,1,68,255,241,254,201,254,177,250,63,251,173,255,47,253,234,250,190,0, +109,1,18,250,86,250,232,0,240,0,27,254,59,255,159,0,239,0,11,1,241,254,243,253,99,1,69,3,2,1,128,0, +181,1,13,0,87,254,36,0,188,1,251,0,107,1,128,2,247,254,86,249,160,250,77,1,53,2,156,252,248,249,155,251, +210,251,201,250,45,251,203,251,29,252,137,253,47,255,231,254,139,252,115,250,2,251,6,253,176,253,133,253,239,253,96,254, +92,255,193,0,186,255,188,253,120,255,45,2,174,0,173,254,138,0,148,2,128,1,127,255,203,254,215,254,174,254,196,254, +242,255,74,1,89,1,237,0,8,1,171,0,209,255,57,0,120,1,21,1,78,255,175,255,51,3,83,5,6,3,81,0, +233,0,62,2,65,2,104,2,85,2,108,1,2,2,8,4,57,4,4,2,131,255,251,254,134,1,217,3,145,2,62,1, +63,2,36,1,175,254,113,0,244,2,31,1,67,255,161,255,187,254,152,254,75,1,217,1,195,255,251,255,104,1,66,1, +33,1,200,0,236,255,143,1,186,3,229,1,117,255,19,0,5,0,52,254,59,254,146,255,242,255,251,255,208,255,97,255, +137,255,250,254,52,253,245,252,12,254,183,253,30,253,162,253,43,253,241,251,119,252,243,253,171,254,165,254,79,253,55,251, +52,251,35,253,18,254,68,254,65,255,17,255,161,252,178,251,96,254,157,0,121,255,22,254,143,254,78,254,228,252,209,252, +65,253,133,252,180,252,141,254,19,255,190,253,74,253,194,254,90,0,160,255,8,253,139,252,240,254,69,0,2,0,74,0, +79,255,48,253,144,254,187,1,236,0,200,254,203,255,244,0,136,0,6,1,26,1,154,255,128,0,86,3,242,2,204,0, +51,1,5,2,234,0,163,0,244,1,130,1,22,255,27,255,122,2,145,3,25,0,61,254,218,0,46,2,101,0,127,0, +92,2,210,1,93,0,48,1,198,2,248,2,23,2,27,1,27,1,49,2,215,2,126,2,96,2,11,3,132,3,251,2, +179,2,40,4,33,5,82,3,247,1,55,3,51,3,90,1,252,1,182,3,135,2,44,1,105,2,13,3,191,1,42,1, +244,1,185,2,160,2,158,1,249,0,88,1,153,1,14,2,75,3,20,3,160,1,118,2,19,4,192,2,121,1,14,3, +124,3,140,1,101,1,146,2,254,1,204,1,103,3,90,3,213,1,163,2,10,4,241,2,75,2,128,3,144,2,34,0, +20,1,170,3,114,3,248,1,133,1,63,1,183,1,95,3,182,3,9,2,134,0,130,0,239,1,236,2,153,1,199,0, +187,2,51,3,209,0,98,0,146,1,64,1,56,2,155,4,155,3,78,1,183,1,126,1,18,0,113,1,137,2,217,255, +131,254,2,1,194,2,18,2,142,0,51,255,101,255,72,0,189,255,209,255,70,1,124,0,178,254,239,255,52,1,178,255, +58,255,40,0,189,254,87,253,145,255,137,1,130,255,35,253,105,254,8,1,13,1,77,255,176,254,146,254,183,253,255,253, +75,255,132,254,223,252,249,253,208,255,198,254,208,252,15,253,117,254,254,254,197,254,79,254,89,253,140,252,143,253,157,255, +151,255,154,253,246,252,246,253,73,254,215,253,136,253,65,253,81,253,140,253,224,252,75,252,101,253,142,254,26,254,191,253, +113,254,40,254,169,252,204,252,227,254,129,255,242,253,139,253,206,254,202,254,158,253,70,253,253,252,129,252,104,253,150,254, +89,254,25,254,238,253,124,252,3,252,221,253,90,254,175,252,245,252,17,255,1,255,249,252,21,252,152,252,211,252,187,252, +131,253,134,254,233,253,247,252,37,254,36,255,90,253,53,252,203,253,37,254,189,252,169,253,134,255,142,254,109,253,177,254, +206,254,204,252,204,252,187,254,124,254,133,252,103,252,233,253,91,254,106,253,219,252,150,253,133,254,100,254,215,253,242,253, +9,254,170,253,242,253,191,254,156,254,223,253,253,253,253,254,242,255,213,255,128,254,208,253,214,254,187,255,132,255,157,255, +5,0,130,255,204,254,212,254,224,254,136,254,7,254,131,253,242,253,158,255,130,0,119,255,26,254,170,253,233,253,164,254, +94,255,111,255,87,255,176,255,16,0,107,0,246,0,196,0,146,255,75,255,199,0,211,1,48,1,163,0,246,0,198,0, +87,0,21,1,2,2,162,1,183,0,74,0,156,0,170,1,21,2,18,1,178,0,190,1,250,1,67,1,26,1,154,0, +152,255,27,0,124,1,153,1,64,1,173,1,37,2,251,1,49,1,203,0,231,1,207,2,13,2,246,1,160,2,79,1, +140,0,0,3,204,3,91,1,136,1,248,3,64,3,33,1,6,1,249,0,134,0,106,1,106,2,155,2,158,2,169,1, +140,0,95,1,66,2,99,1,41,1,41,2,63,2,185,1,127,1,12,1,4,1,177,1,249,1,109,2,75,3,176,2, +70,1,100,1,230,1,120,1,115,1,183,1,118,1,33,2,24,3,163,1,152,255,114,0,238,1,247,0,41,0,175,1, +70,2,65,0,86,255,37,1,62,2,22,1,28,0,86,0,142,0,108,0,131,0,71,1,48,2,126,1,134,255,43,255, +138,0,61,1,98,1,138,1,172,0,254,255,231,0,19,1,214,255,226,255,184,0,71,0,230,255,95,0,116,0,120,0, +151,0,47,0,109,0,250,0,189,255,228,254,122,0,211,0,80,255,243,255,210,0,134,254,86,253,167,255,170,0,60,255, +220,254,127,255,175,255,147,255,188,254,14,254,53,255,32,0,33,255,213,254,142,255,189,254,189,253,185,254,184,255,109,255, +25,255,7,255,116,255,137,0,64,0,112,254,46,254,110,255,194,255,243,255,129,0,122,255,24,254,205,254,156,255,0,255, +222,254,248,254,84,254,6,255,122,0,110,255,217,253,192,254,14,255,64,253,111,253,217,255,91,0,15,255,186,254,30,255, +2,255,146,254,123,254,40,255,169,255,13,255,178,254,27,255,135,254,235,253,68,255,235,255,72,254,27,254,250,255,22,0, +218,254,226,254,38,255,18,255,160,255,59,255,147,253,236,253,6,0,32,0,173,254,159,254,115,255,92,255,158,254,101,254, +57,255,22,0,125,255,97,254,197,254,219,255,12,0,9,0,75,0,252,255,159,255,7,0,41,0,135,255,76,255,198,255, +90,0,174,0,72,0,107,255,77,255,208,255,5,0,66,0,158,0,57,0,178,255,9,0,44,0,151,255,203,255,229,0, +95,1,48,1,36,1,8,1,218,0,231,0,211,0,141,0,154,0,200,0,202,0,240,0,219,0,73,0,173,0,63,2, +99,2,138,0,205,255,246,0,65,1,52,0,57,0,126,1,228,1,222,0,222,255,17,0,31,1,161,1,37,1,244,0, +160,1,228,1,26,1,93,0,114,0,224,0,24,1,3,1,203,0,211,0,133,1,97,2,239,1,28,0,85,255,169,0, +152,1,205,0,124,0,111,1,188,1,80,1,109,1,83,1,151,0,213,0,224,1,164,1,168,0,17,1,54,2,253,1, +196,0,92,0,224,0,50,1,38,1,75,1,133,1,74,1,156,0,60,0,203,0,131,1,252,0,244,255,72,0,50,1, +249,0,149,0,21,1,44,1,133,0,72,0,50,0,243,255,68,0,127,0,238,255,243,255,211,0,251,0,161,0,121,0, +192,255,8,255,188,255,247,0,123,1,114,1,195,0,0,0,71,0,125,0,205,255,241,255,221,0,188,0,150,0,44,1, +63,0,115,254,221,254,74,0,97,0,59,0,79,0,217,255,217,255,50,0,132,255,253,254,108,255,79,255,54,255,36,0, +86,0,228,255,146,0,171,0,44,255,189,254,87,255,0,255,16,255,0,0,157,255,193,254,44,255,17,255,29,254,209,254, +101,0,23,0,200,254,245,254,67,0,140,0,146,255,35,255,77,255,123,254,217,253,67,255,154,0,252,255,65,255,52,255, +249,254,43,255,120,255,209,254,216,254,19,0,7,0,44,255,175,255,4,0,255,254,133,254,206,254,206,254,219,254,166,254, +45,254,237,254,220,255,12,255,76,254,191,254,111,254,1,254,46,255,253,255,81,255,43,255,138,255,23,255,101,254,222,253, +143,253,107,254,148,255,41,255,95,254,200,254,10,255,142,254,191,254,87,255,247,254,62,254,96,254,236,254,17,255,224,254, +94,254,187,253,12,254,61,255,77,255,61,254,116,254,146,255,91,255,160,254,207,254,254,254,48,255,230,255,128,255,25,254, +64,254,128,255,192,255,145,255,144,255,88,255,145,255,208,255,225,254,107,254,183,255,197,0,218,0,192,0,216,255,8,255, +253,255,174,0,203,255,235,255,5,1,167,0,254,255,139,0,191,0,98,0,138,0,160,0,190,0,116,1,64,1,14,0, +33,0,253,0,178,0,62,0,204,0,88,1,99,1,50,1,171,0,29,0,239,255,26,0,198,0,66,1,158,0,51,0, +19,1,84,1,125,0,192,0,148,1,245,0,79,0,222,0,194,0,230,255,61,0,240,0,165,0,186,0,99,1,245,0, +68,0,242,0,123,1,131,0,190,255,92,0,65,1,140,1,106,1,19,1,141,0,17,0,89,0,117,1,204,1,207,0, +147,0,146,1,186,1,85,1,222,1,185,1,51,0,35,0,180,1,236,1,29,1,39,1,15,1,109,0,187,0,142,1, +168,1,116,1,254,0,23,0,9,0,233,0,236,0,49,0,63,0,208,0,245,0,180,0,47,0,199,255,32,0,200,0, +217,0,106,0,6,0,5,0,111,0,152,0,57,0,51,0,128,0,42,0,233,255,150,0,154,0,90,255,43,255,104,0, +145,0,138,255,84,255,185,255,179,255,213,255,34,0,201,255,108,255,167,255,156,255,57,255,104,255,7,0,101,0,94,0, +39,0,15,0,24,0,244,255,243,255,60,0,3,0,145,255,38,0,223,0,63,0,124,255,197,255,26,0,66,0,161,0, +54,0,64,255,134,255,64,0,217,255,181,255,157,0,156,0,114,255,253,254,113,255,249,255,63,0,179,255,204,254,36,255, +61,0,76,0,183,255,169,255,202,255,186,255,141,255,57,255,93,255,42,0,97,0,236,255,4,0,42,0,112,255,216,254, +245,254,27,255,135,255,42,0,239,255,93,255,129,255,97,255,165,254,186,254,83,255,29,255,169,254,162,254,185,254,59,255, +201,255,59,255,136,254,11,255,116,255,17,255,78,255,199,255,45,255,193,254,155,255,82,0,6,0,103,255,18,255,98,255, +247,255,245,255,226,255,58,0,197,255,217,254,77,255,239,255,21,255,212,254,239,255,188,255,144,254,247,254,205,255,134,255, +132,255,156,255,146,254,53,254,126,255,13,0,123,255,115,255,96,255,216,254,90,255,35,0,58,255,20,254,149,254,112,255, +118,255,95,255,93,255,49,255,65,255,120,255,109,255,108,255,123,255,247,254,30,254,34,254,49,255,214,255,26,255,52,254, +133,254,58,255,18,255,155,254,131,254,80,254,58,254,0,255,186,255,37,255,71,254,190,254,188,255,153,255,235,254,30,255, +120,255,226,254,149,254,127,255,3,0,120,255,101,255,199,255,104,255,42,255,208,255,215,255,32,255,138,255,156,0,109,0, +142,255,97,255,149,255,176,255,211,255,218,255,229,255,58,0,42,0,102,255,35,255,238,255,145,0,53,0,140,255,129,255, +19,0,132,0,73,0,207,255,220,255,109,0,182,0,86,0,251,255,70,0,142,0,56,0,53,0,2,1,45,1,39,0, +184,255,156,0,33,1,119,0,233,255,72,0,200,0,126,0,172,255,96,255,249,255,204,0,57,1,29,1,106,0,205,255, +101,0,127,1,54,1,12,0,50,0,82,1,71,1,43,0,177,255,251,255,59,0,130,0,1,1,86,1,70,1,211,0, +42,0,8,0,189,0,74,1,23,1,228,0,226,0,154,0,135,0,8,1,13,1,89,0,51,0,160,0,128,0,72,0, +250,0,178,1,66,1,97,0,69,0,187,0,238,0,242,0,56,1,49,1,76,0,162,255,70,0,56,1,87,1,23,1, +169,0,232,255,225,255,211,0,249,0,30,0,17,0,163,0,140,0,170,0,145,1,173,1,210,0,115,0,81,0,232,255, +65,0,3,1,174,0,61,0,218,0,222,0,200,255,214,255,10,1,55,1,181,0,7,1,98,1,239,0,139,0,155,0, +210,0,96,1,215,1,91,1,146,0,140,0,202,0,170,0,161,0,206,0,167,0,69,0,82,0,217,0,4,1,81,0, +196,255,127,0,124,1,46,1,97,0,103,0,160,0,128,0,173,0,205,0,40,0,203,255,100,0,161,0,36,0,36,0, +130,0,66,0,222,255,19,0,141,0,254,0,17,1,78,0,147,255,27,0,226,0,101,0,131,255,141,255,240,255,231,255, +209,255,240,255,247,255,226,255,242,255,47,0,64,0,242,255,182,255,220,255,213,255,154,255,20,0,213,0,98,0,76,255, +88,255,40,0,121,0,124,0,100,0,205,255,125,255,37,0,154,0,28,0,188,255,249,255,51,0,98,0,173,0,167,0, +61,0,213,255,174,255,6,0,155,0,111,0,160,255,123,255,10,0,71,0,94,0,70,0,179,255,142,255,16,0,50,0, +28,0,112,0,116,0,214,255,124,255,154,255,186,255,218,255,19,0,54,0,29,0,210,255,165,255,211,255,2,0,210,255, +147,255,170,255,203,255,137,255,96,255,222,255,26,0,90,255,225,254,106,255,169,255,96,255,171,255,24,0,197,255,79,255, +33,255,43,255,181,255,11,0,119,255,71,255,208,255,134,255,28,255,222,255,239,255,208,254,47,255,111,0,176,255,152,254, +148,255,98,0,90,255,180,254,135,255,84,0,76,0,207,255,120,255,115,255,85,255,122,255,73,0,16,0,118,254,167,254, +149,0,75,0,177,254,81,255,222,255,81,254,143,254,236,0,121,0,24,254,131,254,117,0,160,0,244,255,163,255,80,255, +105,255,175,255,47,255,229,254,104,255,62,255,204,254,163,255,26,0,0,255,253,254,172,255,219,253,58,254,71,5,107,6, +147,247,18,236,68,247,13,8,8,8,202,255,235,252,220,251,3,252,201,1,42,6,44,2,110,251,0,249,24,253,24,4, +219,3,29,252,83,250,188,255,186,1,21,2,86,4,23,1,107,251,19,254,109,2,152,0,27,1,37,4,37,255,47,249, +8,255,98,7,229,4,106,254,0,255,44,2,223,255,28,253,115,0,135,3,151,1,143,0,251,255,96,252,206,253,18,4, +237,1,169,252,105,0,40,2,93,253,20,1,48,7,23,1,163,253,74,5,38,5,131,253,68,255,58,3,138,255,92,254, +9,2,242,1,114,255,204,254,175,255,140,1,170,0,126,253,156,255,254,2,97,255,209,253,79,3,48,3,109,253,48,254, +192,1,37,1,175,1,72,3,187,0,62,254,34,255,220,255,156,0,65,2,229,1,86,0,23,0,205,255,237,254,108,254, +94,254,11,0,143,2,212,1,73,255,131,255,75,0,186,254,58,254,229,255,175,255,175,253,88,254,90,1,236,1,219,255, +91,255,20,0,15,255,197,254,41,1,207,1,182,255,131,255,251,0,223,0,74,0,123,0,131,0,149,0,143,0,89,0, +107,1,126,2,11,1,246,254,98,254,201,254,146,0,97,2,85,1,156,255,149,255,32,255,80,255,158,1,70,1,35,254, +90,254,61,0,127,255,116,255,243,0,38,0,97,254,212,253,191,253,191,255,198,2,78,2,55,0,219,255,255,254,104,254, +66,0,61,0,238,253,3,255,46,1,192,255,235,254,145,0,88,0,21,255,85,255,232,254,28,254,120,255,57,1,137,1, +22,1,216,255,246,254,239,255,149,0,102,255,173,254,134,255,210,0,135,1,164,0,211,254,4,254,110,254,240,255,169,1, +71,0,246,252,134,253,31,0,212,254,209,252,163,254,209,0,222,0,141,0,36,0,90,0,173,1,7,1,134,254,145,254, +179,0,155,1,79,1,80,0,208,255,137,1,18,2,248,254,126,253,40,255,77,255,155,255,31,3,96,5,73,4,104,2, +139,255,177,253,182,255,199,0,115,255,21,2,11,5,217,0,83,253,254,0,20,3,140,0,4,0,129,0,165,255,246,0, +88,2,71,0,195,255,22,2,182,1,24,0,31,1,136,1,240,255,194,255,203,0,210,0,201,255,116,254,190,254,113,0, +198,255,33,254,216,255,81,1,10,0,123,1,153,3,143,255,12,252,208,255,110,2,15,0,227,255,0,1,221,254,219,253, +128,255,90,255,247,254,96,0,56,0,118,255,201,0,177,0,150,254,18,255,216,0,37,0,231,254,238,254,254,254,57,255, +241,255,37,0,179,255,221,254,92,254,148,255,5,1,19,0,184,254,94,255,204,255,166,254,218,253,218,253,231,253,84,254, +187,254,176,254,252,254,241,254,169,253,10,253,8,254,171,254,227,254,240,255,247,255,251,253,67,253,192,254,233,254,83,253, +32,253,237,253,121,253,78,253,234,254,201,255,207,254,163,254,225,255,81,0,171,255,94,255,234,255,252,0,90,1,254,255, +222,254,232,255,124,0,168,254,223,253,228,255,250,0,183,255,81,255,148,0,32,1,123,0,240,255,16,0,215,0,146,1, +53,1,65,0,241,255,4,0,215,255,183,255,195,255,214,255,38,0,96,0,255,255,185,255,97,0,50,1,253,0,22,0, +22,0,129,1,92,2,30,1,192,255,91,0,109,1,25,1,26,0,83,255,233,254,66,255,189,255,89,255,78,255,143,0, +44,1,35,0,97,255,194,255,23,0,0,0,201,255,106,255,119,255,91,0,1,1,157,0,235,255,99,255,238,254,219,254, +236,254,121,254,102,254,132,255,47,0,109,255,9,255,147,255,116,255,203,254,201,254,38,255,96,255,121,255,60,255,57,255, +231,255,202,255,81,254,193,253,207,254,99,255,8,255,195,254,67,254,179,253,91,254,141,255,159,255,238,254,163,254,43,255, +88,0,183,0,32,255,159,253,93,254,217,255,43,0,203,255,65,255,219,254,125,255,90,0,167,255,88,254,104,254,100,255, +18,0,43,0,186,255,162,255,137,0,217,0,177,255,40,255,2,0,72,0,184,255,203,255,92,0,137,0,66,0,181,255, +165,255,114,0,152,0,178,255,211,255,219,0,157,0,229,255,81,0,99,0,128,255,159,255,157,0,236,0,13,1,56,1, +142,0,37,0,19,1,189,1,95,1,47,1,28,1,188,0,251,0,147,1,91,1,4,1,46,1,249,0,197,0,137,1, +29,2,123,1,194,0,220,0,140,1,87,2,79,2,108,1,82,1,29,2,248,1,69,1,225,1,248,2,186,2,207,1, +148,1,214,1,246,1,253,1,46,2,58,2,98,1,40,0,56,0,91,1,172,1,43,1,16,1,39,1,38,1,115,1, +131,1,43,1,149,1,74,2,204,1,40,1,162,1,218,1,90,1,121,1,222,1,157,1,143,1,218,1,114,1,20,1, +194,1,56,2,181,1,121,1,237,1,93,2,144,2,57,2,130,1,177,1,151,2,136,2,227,1,227,1,169,1,238,0, +69,1,64,2,241,1,247,0,250,0,161,1,29,2,93,2,21,2,107,1,78,1,215,1,37,2,224,1,127,1,109,1, +140,1,154,1,152,1,89,1,203,0,221,0,220,1,254,1,145,0,204,255,213,0,222,1,151,1,160,0,235,255,239,255, +65,0,20,0,221,255,83,0,174,0,63,0,149,255,39,255,85,255,79,0,197,0,196,255,225,254,95,255,21,0,40,0, +248,255,126,255,201,254,175,254,127,255,108,0,113,0,137,255,223,254,255,254,250,254,146,254,145,254,194,254,170,254,193,254, +244,254,169,254,82,254,103,254,165,254,29,255,150,255,56,255,129,254,160,254,6,255,186,254,61,254,91,254,255,254,100,255, +225,254,42,254,110,254,18,255,242,254,140,254,97,254,254,253,203,253,108,254,20,255,229,254,78,254,35,254,151,254,230,254, +83,254,168,253,223,253,102,254,223,254,144,255,94,255,213,253,48,253,45,254,129,254,201,253,227,253,148,254,140,254,70,254, +28,254,142,253,73,253,252,253,185,254,226,254,210,254,91,254,155,253,185,253,181,254,10,255,89,254,216,253,24,254,107,254, +64,254,230,253,224,253,0,254,208,253,144,253,215,253,136,254,7,255,247,254,104,254,226,253,249,253,117,254,148,254,73,254, +47,254,114,254,168,254,150,254,138,254,186,254,176,254,40,254,231,253,89,254,170,254,153,254,241,254,87,255,205,254,1,254, +37,254,244,254,175,255,181,255,125,254,69,253,5,254,161,255,155,255,171,254,212,254,166,255,233,255,161,255,39,255,226,254, +44,255,146,255,178,255,190,255,129,255,252,254,3,255,127,255,145,255,109,255,135,255,153,255,175,255,193,255,122,255,176,255, +171,0,165,0,150,255,218,255,253,0,161,0,176,255,12,0,168,0,118,0,90,0,171,0,215,0,155,0,9,0,225,255, +211,0,176,1,68,1,168,0,236,0,69,1,30,1,238,0,224,0,194,0,161,0,150,0,165,0,196,0,221,0,209,0, +167,0,221,0,181,1,28,2,127,1,104,1,61,2,251,1,175,0,169,0,135,1,143,1,111,1,200,1,183,1,119,1, +153,1,98,1,222,0,1,1,116,1,118,1,50,1,12,1,97,1,12,2,25,2,168,1,175,1,128,1,123,0,13,0, +155,0,3,1,137,1,48,2,131,1,72,0,138,0,64,1,220,0,161,0,76,1,170,1,124,1,105,1,91,1,35,1, +233,0,239,0,69,1,82,1,3,1,85,1,196,1,244,0,62,0,0,1,73,1,104,0,147,0,128,1,35,1,111,0, +156,0,133,0,22,0,90,0,174,0,136,0,164,0,177,0,32,0,246,255,174,0,16,1,122,0,204,255,210,255,51,0, +84,0,167,0,77,1,236,0,155,255,143,255,131,0,35,0,93,255,26,0,157,0,156,255,52,255,236,255,210,255,33,255, +73,255,154,255,74,255,18,255,52,255,69,255,128,255,245,255,249,255,130,255,79,255,121,255,127,255,125,255,200,255,215,255, +82,255,42,255,229,255,94,0,203,255,45,255,113,255,250,255,220,255,113,255,167,255,30,0,180,255,227,254,244,254,138,255, +205,255,8,0,37,0,148,255,10,255,39,255,66,255,89,255,208,255,221,255,98,255,113,255,170,255,43,255,233,254,116,255, +202,255,183,255,178,255,78,255,162,254,173,254,98,255,211,255,179,255,62,255,223,254,4,255,85,255,60,255,16,255,71,255, +124,255,97,255,57,255,43,255,70,255,156,255,190,255,82,255,239,254,251,254,226,254,194,254,122,255,76,0,205,255,241,254, +66,255,248,255,247,255,149,255,3,255,127,254,39,255,150,0,194,0,177,255,71,255,182,255,227,255,217,255,22,0,38,0, +182,255,167,255,117,0,237,0,71,0,200,255,58,0,137,0,99,0,122,0,124,0,29,0,15,0,48,0,253,255,254,255, +46,0,12,0,69,0,225,0,175,0,63,0,191,0,27,1,129,0,26,0,97,0,168,0,154,0,73,0,106,0,63,1, +62,1,40,0,53,0,51,1,227,0,38,0,140,0,212,0,149,0,201,0,159,0,239,255,76,0,30,1,14,1,8,1, +35,1,102,0,48,0,85,1,172,1,150,0,255,255,88,0,181,0,217,0,245,0,65,1,64,1,77,0,232,255,83,1, +18,2,161,0,192,255,122,0,180,0,124,0,218,0,183,0,38,0,126,0,215,0,104,0,133,0,251,0,154,0,90,0, +229,0,243,0,75,0,243,255,36,0,124,0,148,0,120,0,202,0,20,1,120,0,29,0,193,0,186,0,224,255,208,255, +1,0,184,255,20,0,160,0,55,0,39,0,171,0,8,0,91,255,63,0,172,0,195,255,172,255,60,0,226,255,158,255, +12,0,247,255,159,255,212,255,250,255,1,0,96,0,115,0,24,0,13,0,21,0,253,255,81,0,134,0,226,255,62,255, +73,255,157,255,4,0,45,0,176,255,92,255,234,255,107,0,47,0,181,255,77,255,48,255,167,255,3,0,197,255,190,255, +7,0,190,255,81,255,166,255,27,0,19,0,6,0,245,255,169,255,173,255,233,255,160,255,79,255,167,255,238,255,193,255, +218,255,24,0,205,255,144,255,4,0,82,0,206,255,67,255,138,255,30,0,244,255,65,255,44,255,130,255,64,255,5,255, +138,255,134,255,196,254,41,255,96,0,57,0,65,255,36,255,66,255,10,255,66,255,184,255,210,255,191,255,81,255,183,254, +2,255,162,255,53,255,163,254,239,254,36,255,21,255,121,255,181,255,139,255,151,255,74,255,137,254,204,254,170,255,118,255, +32,255,174,255,126,255,115,254,137,254,55,255,243,254,194,254,74,255,86,255,37,255,144,255,171,255,44,255,44,255,107,255, +54,255,70,255,156,255,66,255,204,254,33,255,109,255,28,255,236,254,1,255,236,254,7,255,126,255,172,255,109,255,88,255, +113,255,75,255,40,255,160,255,42,0,200,255,17,255,79,255,245,255,214,255,156,255,17,0,70,0,184,255,97,255,150,255, +207,255,8,0,54,0,15,0,252,255,85,0,139,0,102,0,68,0,15,0,219,255,63,0,216,0,192,0,82,0,70,0, +59,0,245,255,9,0,104,0,113,0,74,0,121,0,197,0,196,0,162,0,195,0,32,1,64,1,204,0,63,0,119,0, +68,1,129,1,248,0,159,0,183,0,185,0,207,0,24,1,211,0,72,0,201,0,176,1,53,1,22,0,20,0,158,0, +180,0,232,0,73,1,39,1,241,0,14,1,207,0,91,0,136,0,225,0,193,0,176,0,226,0,214,0,163,0,152,0, +152,0,185,0,1,1,22,1,6,1,2,1,210,0,167,0,217,0,234,0,174,0,209,0,38,1,14,1,253,0,45,1, +242,0,131,0,178,0,45,1,58,1,240,0,192,0,231,0,29,1,231,0,163,0,224,0,11,1,204,0,225,0,33,1, +199,0,141,0,255,0,10,1,130,0,141,0,245,0,193,0,88,0,97,0,159,0,196,0,187,0,138,0,111,0,88,0, +247,255,180,255,7,0,131,0,167,0,133,0,60,0,242,255,216,255,224,255,255,255,45,0,54,0,42,0,54,0,13,0, +174,255,183,255,10,0,238,255,153,255,152,255,178,255,163,255,138,255,111,255,87,255,70,255,59,255,114,255,209,255,188,255, +98,255,115,255,150,255,105,255,104,255,111,255,22,255,26,255,177,255,217,255,145,255,138,255,108,255,45,255,110,255,171,255, +85,255,57,255,132,255,111,255,85,255,208,255,37,0,205,255,96,255,97,255,178,255,212,255,131,255,95,255,187,255,197,255, +93,255,109,255,197,255,164,255,126,255,167,255,143,255,85,255,130,255,195,255,183,255,134,255,92,255,116,255,189,255,153,255, +45,255,71,255,152,255,121,255,79,255,92,255,57,255,19,255,68,255,124,255,142,255,132,255,62,255,5,255,63,255,151,255, +152,255,95,255,29,255,18,255,106,255,193,255,187,255,155,255,110,255,25,255,12,255,102,255,138,255,104,255,112,255,135,255, +141,255,179,255,188,255,112,255,66,255,85,255,71,255,39,255,60,255,82,255,59,255,38,255,36,255,48,255,95,255,144,255, +106,255,244,254,186,254,25,255,174,255,223,255,155,255,46,255,227,254,17,255,151,255,170,255,21,255,195,254,31,255,117,255, +108,255,92,255,63,255,239,254,219,254,63,255,141,255,106,255,32,255,228,254,174,254,188,254,52,255,147,255,93,255,238,254, +220,254,32,255,80,255,28,255,170,254,146,254,27,255,150,255,100,255,253,254,23,255,116,255,116,255,33,255,245,254,23,255, +75,255,121,255,185,255,209,255,135,255,76,255,155,255,248,255,197,255,90,255,84,255,144,255,168,255,177,255,218,255,232,255, +158,255,99,255,184,255,61,0,64,0,250,255,25,0,106,0,65,0,208,255,226,255,111,0,172,0,104,0,49,0,57,0, +55,0,71,0,156,0,192,0,98,0,16,0,61,0,140,0,165,0,141,0,77,0,41,0,133,0,242,0,159,0,239,255, +219,255,60,0,104,0,131,0,184,0,155,0,68,0,85,0,177,0,199,0,165,0,131,0,75,0,53,0,139,0,214,0, +190,0,197,0,10,1,239,0,137,0,123,0,120,0,15,0,4,0,194,0,31,1,137,0,78,0,17,1,130,1,234,0, +113,0,211,0,47,1,234,0,165,0,214,0,10,1,233,0,181,0,172,0,188,0,215,0,6,1,50,1,41,1,240,0, +218,0,14,1,47,1,243,0,178,0,214,0,33,1,40,1,255,0,212,0,162,0,141,0,203,0,36,1,58,1,11,1, +184,0,102,0,87,0,152,0,215,0,239,0,246,0,199,0,104,0,94,0,189,0,231,0,194,0,191,0,192,0,136,0, +131,0,198,0,183,0,116,0,167,0,241,0,166,0,83,0,148,0,217,0,184,0,159,0,159,0,97,0,39,0,78,0, +156,0,199,0,179,0,78,0,0,0,81,0,196,0,163,0,102,0,152,0,167,0,86,0,96,0,203,0,184,0,57,0, +34,0,115,0,147,0,113,0,80,0,51,0,26,0,35,0,81,0,127,0,162,0,132,0,19,0,173,255,157,255,202,255, +234,255,208,255,192,255,6,0,82,0,63,0,4,0,253,255,1,0,207,255,162,255,202,255,42,0,109,0,101,0,254,255, +147,255,180,255,24,0,27,0,17,0,87,0,92,0,4,0,239,255,19,0,31,0,71,0,122,0,77,0,236,255,197,255, +232,255,55,0,116,0,89,0,234,255,100,255,75,255,15,0,190,0,24,0,65,255,224,255,198,0,134,0,46,0,99,0, +39,0,154,255,167,255,252,255,42,0,101,0,108,0,249,255,172,255,0,0,107,0,33,0,109,255,116,255,62,0,143,0, +63,0,42,0,6,0,116,255,136,255,87,0,63,0,99,255,94,255,72,255,121,254,116,0,213,4,127,2,230,247,133,243, +150,252,179,5,149,4,21,0,88,254,115,253,46,254,212,1,243,3,159,1,117,253,87,251,248,253,158,2,82,2,9,254, +69,253,121,255,36,0,78,1,0,3,173,0,83,253,72,254,166,255,171,254,3,0,85,2,104,255,117,251,75,254,69,3, +122,2,162,255,67,0,8,0,141,252,182,252,95,1,90,2,153,255,50,255,42,255,172,253,138,255,106,2,16,0,133,253, +64,255,108,255,126,254,16,2,8,4,169,255,29,254,215,1,169,1,124,254,177,255,136,1,15,255,156,253,104,0,254,1, +112,255,13,253,9,254,161,255,14,255,171,254,254,255,172,255,136,253,57,254,251,0,228,0,71,255,173,255,16,0,57,255, +46,0,47,2,251,0,203,253,77,253,26,255,227,255,242,255,153,0,71,0,101,254,97,253,0,254,167,254,98,255,153,0, +149,0,35,255,236,254,88,0,160,0,235,254,140,253,223,253,161,254,237,254,189,255,6,1,10,1,195,255,232,254,174,254, +200,254,210,255,216,0,79,0,113,255,203,255,91,0,118,0,180,0,182,0,74,0,93,0,186,0,150,0,152,0,2,1, +123,0,190,254,180,253,213,254,1,1,214,1,203,0,124,255,21,255,143,255,153,0,80,1,226,0,24,0,232,255,190,255, +58,255,96,255,125,0,49,1,110,0,41,255,31,255,51,0,206,0,145,0,48,0,194,255,147,255,34,0,105,0,208,255, +245,255,13,1,226,0,182,255,228,255,203,0,139,0,14,0,37,0,167,255,250,254,196,255,186,0,6,0,128,255,104,0, +192,0,74,0,93,0,226,255,211,254,160,255,81,1,60,1,204,0,252,0,197,255,137,254,239,255,29,1,217,255,131,255, +5,1,41,1,39,0,75,0,176,0,62,0,31,0,243,0,208,1,173,1,193,0,108,0,128,0,193,255,208,255,196,1, +30,2,232,255,43,255,15,0,251,255,171,0,84,2,89,1,105,255,43,0,2,1,59,0,245,255,67,255,24,255,25,3, +38,5,178,254,223,249,84,254,41,1,161,253,23,254,121,3,58,5,31,3,177,255,77,251,7,251,205,255,71,2,247,2, +99,6,212,5,142,254,232,251,48,0,84,1,157,255,120,1,152,3,131,2,109,1,179,0,42,255,73,255,3,1,201,1, +43,2,47,2,165,0,27,0,191,1,236,1,82,0,241,255,171,255,164,254,4,0,249,2,147,2,119,255,165,254,145,0, +79,1,60,255,63,253,96,254,65,1,147,2,177,1,199,255,12,254,254,253,51,255,105,255,204,254,198,254,136,254,252,253, +81,254,95,254,184,253,137,254,180,255,7,255,55,255,217,0,184,255,159,253,51,255,109,0,18,254,7,254,246,0,38,0, +131,253,244,254,138,0,151,254,52,254,134,0,59,0,219,253,252,253,232,255,132,0,189,255,75,255,74,0,69,1,151,255, +225,252,56,253,178,255,161,0,10,0,130,255,14,255,222,254,1,255,209,254,174,254,160,254,178,253,119,253,173,255,0,1, +149,254,63,252,119,253,136,255,176,255,47,255,100,255,181,255,83,255,133,254,95,254,217,254,156,254,252,253,159,254,162,255, +47,255,77,254,109,254,204,254,6,255,122,255,86,255,159,254,75,255,80,1,35,2,60,1,107,0,53,0,238,255,240,255, +164,0,37,1,223,0,188,0,87,1,254,1,240,1,3,1,172,255,86,255,175,0,223,1,133,1,36,1,130,1,66,1, +223,0,185,1,55,2,16,1,108,0,59,1,130,1,229,0,165,0,173,0,215,0,114,1,157,1,222,0,76,0,48,0, +47,0,238,0,35,2,61,2,87,1,173,0,77,0,15,0,58,0,119,0,99,0,17,0,157,255,172,255,129,0,159,0, +114,255,210,254,98,255,210,255,229,255,204,255,18,255,73,254,250,253,166,253,23,254,136,255,75,255,181,253,124,254,46,0, +45,255,46,254,144,255,159,255,181,253,213,253,101,255,99,255,45,255,238,255,174,255,136,254,71,254,135,254,161,254,30,255, +174,255,145,255,205,254,227,253,210,253,152,254,125,254,162,253,36,254,64,255,235,254,134,254,55,255,242,254,182,253,7,254, +83,255,131,255,68,255,97,255,1,255,187,254,144,255,19,0,79,255,15,255,2,0,56,0,62,255,228,254,100,255,90,255, +48,255,224,255,15,0,240,254,141,254,176,255,106,0,110,0,198,0,117,0,60,255,118,255,255,0,247,0,221,255,40,0, +204,0,58,0,38,0,82,1,152,1,147,0,45,0,123,0,95,0,123,0,111,1,213,1,31,1,241,0,186,1,6,2, +208,1,21,2,4,2,20,1,15,1,103,2,239,2,12,2,70,1,245,0,184,0,4,1,151,1,148,1,79,1,40,1, +187,0,103,0,177,0,220,0,172,0,233,0,60,1,254,0,15,1,214,1,12,2,103,1,26,1,81,1,96,1,157,1, +65,2,55,2,59,1,231,0,197,1,39,2,99,1,226,0,5,1,228,0,230,0,146,1,145,1,102,0,11,0,21,1, +155,1,57,1,68,1,125,1,40,1,57,1,254,1,252,1,1,1,134,0,199,0,224,0,244,0,117,1,197,1,109,1, +0,1,227,0,222,0,36,1,218,1,8,2,41,1,142,0,43,1,13,2,64,2,232,1,44,1,91,0,83,0,55,1, +221,1,89,1,36,0,132,255,238,255,113,0,103,0,107,0,194,0,240,0,1,1,19,1,211,0,133,0,147,0,122,0, +36,0,62,0,145,0,149,0,139,0,92,0,223,255,199,255,39,0,96,0,178,0,248,0,66,0,131,255,42,0,230,0, +131,0,89,0,192,0,111,0,183,255,147,255,162,255,193,255,59,0,103,0,237,255,153,255,181,255,199,255,165,255,144,255, +216,255,54,0,214,255,18,255,31,255,143,255,72,255,3,255,136,255,181,255,251,254,190,254,146,255,240,255,245,254,44,254, +195,254,84,255,239,254,35,255,59,0,72,0,98,255,43,255,38,255,185,254,237,254,108,255,26,255,251,254,158,255,178,255, +61,255,37,255,237,254,148,254,218,254,254,254,127,254,130,254,27,255,61,255,237,254,121,254,23,254,115,254,30,255,3,255, +222,254,64,255,220,254,248,253,73,254,228,254,109,254,65,254,248,254,12,255,175,254,16,255,77,255,171,254,78,254,162,254, +226,254,4,255,68,255,70,255,240,254,168,254,141,254,92,254,38,254,128,254,87,255,133,255,216,254,152,254,242,254,199,254, +47,254,246,253,252,253,76,254,39,255,159,255,14,255,100,254,79,254,136,254,234,254,74,255,113,255,110,255,242,254,35,254, +93,254,125,255,150,255,203,254,186,254,248,254,186,254,167,254,179,254,112,254,127,254,228,254,19,255,81,255,48,255,71,254, +121,254,42,0,79,0,152,254,34,254,250,254,34,255,5,255,28,255,181,254,137,254,22,255,7,255,114,254,187,254,112,255, +121,255,32,255,249,254,34,255,94,255,64,255,53,255,176,255,192,255,25,255,17,255,160,255,141,255,61,255,150,255,34,0, +62,0,210,255,99,255,217,255,140,0,249,255,49,255,234,255,203,0,144,0,89,0,82,0,213,255,220,255,143,0,123,0, +7,0,111,0,233,0,181,0,121,0,73,0,4,0,50,0,174,0,238,0,27,1,21,1,166,0,103,0,129,0,127,0, +128,0,143,0,119,0,194,0,102,1,78,1,190,0,197,0,232,0,173,0,219,0,92,1,95,1,43,1,35,1,7,1, +240,0,0,1,229,0,203,0,9,1,81,1,83,1,252,0,98,0,84,0,44,1,154,1,248,0,164,0,3,1,217,0, +96,0,203,0,97,1,237,0,63,0,74,0,106,0,82,0,188,0,91,1,34,1,111,0,69,0,127,0,160,0,189,0, +211,0,191,0,151,0,91,0,66,0,189,0,42,1,151,0,233,255,53,0,139,0,63,0,88,0,250,0,3,1,98,0, +225,255,210,255,66,0,199,0,177,0,69,0,33,0,5,0,217,255,242,255,6,0,245,255,35,0,30,0,142,255,133,255, +62,0,104,0,252,255,3,0,40,0,223,255,197,255,43,0,142,0,145,0,62,0,251,255,238,255,130,255,249,254,136,255, +143,0,89,0,141,255,138,255,170,255,104,255,120,255,174,255,157,255,198,255,246,255,162,255,129,255,246,255,41,0,13,0, +27,0,239,255,148,255,200,255,27,0,189,255,82,255,168,255,51,0,43,0,223,255,222,255,233,255,153,255,89,255,158,255, +254,255,35,0,63,0,20,0,134,255,117,255,0,0,238,255,75,255,123,255,78,0,112,0,251,255,192,255,174,255,172,255, +252,255,51,0,201,255,96,255,209,255,144,0,126,0,180,255,74,255,164,255,9,0,218,255,113,255,121,255,226,255,28,0, +6,0,224,255,182,255,162,255,218,255,17,0,244,255,233,255,4,0,194,255,123,255,229,255,74,0,217,255,104,255,170,255, +228,255,206,255,17,0,114,0,36,0,141,255,156,255,3,0,236,255,164,255,220,255,51,0,32,0,247,255,236,255,214,255, +21,0,155,0,117,0,237,255,70,0,223,0,116,0,245,255,113,0,195,0,30,0,167,255,27,0,164,0,143,0,92,0, +157,0,174,0,13,0,241,255,246,0,73,1,88,0,66,0,43,1,234,0,252,255,85,0,16,1,192,0,76,0,89,0, +63,0,38,0,112,0,135,0,72,0,71,0,124,0,146,0,142,0,110,0,73,0,111,0,166,0,121,0,47,0,72,0, +158,0,194,0,150,0,85,0,98,0,187,0,192,0,62,0,247,255,83,0,192,0,222,0,215,0,131,0,238,255,239,255, +152,0,190,0,92,0,144,0,226,0,48,0,126,255,16,0,222,0,219,0,162,0,151,0,110,0,89,0,135,0,161,0, +125,0,60,0,43,0,133,0,201,0,128,0,88,0,156,0,117,0,5,0,43,0,115,0,77,0,77,0,94,0,218,255, +100,255,188,255,63,0,79,0,31,0,234,255,212,255,221,255,214,255,213,255,239,255,217,255,161,255,148,255,126,255,98,255, +158,255,208,255,148,255,130,255,186,255,159,255,138,255,9,0,93,0,237,255,116,255,126,255,160,255,160,255,213,255,76,0, +99,0,180,255,9,255,70,255,208,255,158,255,56,255,146,255,7,0,147,255,208,254,224,254,144,255,254,255,230,255,133,255, +75,255,159,255,25,0,236,255,83,255,30,255,91,255,188,255,32,0,32,0,171,255,95,255,89,255,97,255,199,255,78,0, +32,0,163,255,173,255,191,255,117,255,134,255,2,0,36,0,209,255,130,255,133,255,185,255,161,255,95,255,158,255,242,255, +158,255,79,255,125,255,109,255,73,255,186,255,236,255,93,255,58,255,216,255,18,0,188,255,139,255,135,255,118,255,134,255, +187,255,177,255,84,255,52,255,155,255,246,255,227,255,185,255,145,255,93,255,135,255,208,255,130,255,39,255,118,255,180,255, +114,255,91,255,109,255,79,255,101,255,183,255,198,255,184,255,188,255,156,255,133,255,128,255,79,255,103,255,238,255,248,255, +139,255,176,255,20,0,213,255,112,255,128,255,184,255,217,255,206,255,158,255,173,255,222,255,167,255,111,255,189,255,238,255, +191,255,217,255,0,0,169,255,134,255,234,255,248,255,159,255,149,255,161,255,123,255,159,255,222,255,178,255,174,255,27,0, +2,0,109,255,139,255,36,0,32,0,211,255,233,255,253,255,228,255,255,255,30,0,249,255,249,255,77,0,125,0,81,0, +26,0,45,0,103,0,88,0,24,0,40,0,82,0,35,0,14,0,97,0,125,0,75,0,103,0,165,0,138,0,96,0, +97,0,83,0,82,0,138,0,175,0,163,0,157,0,152,0,113,0,91,0,139,0,205,0,202,0,150,0,127,0,130,0, +124,0,149,0,185,0,148,0,106,0,163,0,215,0,170,0,141,0,168,0,142,0,93,0,114,0,153,0,164,0,185,0, +170,0,88,0,56,0,117,0,134,0,88,0,102,0,148,0,130,0,96,0,109,0,135,0,156,0,161,0,122,0,96,0, +142,0,191,0,199,0,180,0,111,0,67,0,161,0,255,0,197,0,137,0,182,0,199,0,174,0,186,0,176,0,128,0, +124,0,155,0,213,0,16,1,214,0,106,0,143,0,210,0,146,0,115,0,183,0,199,0,190,0,224,0,201,0,159,0, +190,0,191,0,127,0,81,0,63,0,123,0,4,1,12,1,150,0,128,0,124,0,42,0,85,0,194,0,117,0,26,0, +96,0,107,0,36,0,75,0,131,0,117,0,129,0,103,0,6,0,241,255,250,255,197,255,229,255,58,0,4,0,179,255, +220,255,250,255,227,255,249,255,252,255,177,255,135,255,188,255,16,0,62,0,38,0,219,255,122,255,70,255,150,255,17,0, +19,0,233,255,2,0,224,255,124,255,89,255,53,255,5,255,82,255,136,255,53,255,124,255,66,0,235,255,250,254,252,254, +101,255,110,255,141,255,175,255,124,255,93,255,97,255,85,255,130,255,192,255,167,255,138,255,122,255,50,255,66,255,209,255, +235,255,138,255,95,255,45,255,246,254,94,255,217,255,155,255,89,255,159,255,176,255,64,255,246,254,43,255,128,255,121,255, +60,255,101,255,197,255,147,255,38,255,75,255,131,255,65,255,51,255,154,255,151,255,8,255,215,254,56,255,135,255,135,255, +116,255,82,255,40,255,57,255,112,255,102,255,30,255,255,254,32,255,87,255,138,255,157,255,114,255,55,255,62,255,113,255, +102,255,8,255,199,254,215,254,4,255,53,255,83,255,59,255,76,255,187,255,188,255,3,255,155,254,231,254,39,255,74,255, +166,255,188,255,88,255,33,255,61,255,82,255,87,255,77,255,49,255,44,255,34,255,16,255,64,255,84,255,201,254,111,254, +16,255,193,255,159,255,57,255,42,255,70,255,79,255,50,255,19,255,58,255,123,255,115,255,67,255,58,255,68,255,83,255, +109,255,116,255,93,255,72,255,77,255,123,255,165,255,127,255,77,255,136,255,220,255,202,255,147,255,112,255,75,255,118,255, +4,0,57,0,231,255,197,255,211,255,158,255,131,255,209,255,2,0,232,255,233,255,21,0,74,0,85,0,11,0,224,255, +55,0,112,0,50,0,28,0,33,0,208,255,191,255,72,0,143,0,96,0,109,0,152,0,118,0,80,0,79,0,91,0, +151,0,193,0,113,0,52,0,136,0,209,0,175,0,139,0,122,0,91,0,99,0,152,0,202,0,235,0,218,0,161,0, +172,0,224,0,182,0,144,0,245,0,59,1,228,0,151,0,162,0,162,0,186,0,23,1,41,1,194,0,132,0,142,0, +146,0,193,0,40,1,68,1,250,0,205,0,238,0,40,1,92,1,99,1,31,1,201,0,137,0,106,0,186,0,105,1, +163,1,42,1,187,0,164,0,138,0,120,0,162,0,227,0,31,1,63,1,18,1,201,0,156,0,87,0,65,0,194,0, +23,1,184,0,169,0,43,1,3,1,92,0,133,0,8,1,225,0,168,0,212,0,184,0,80,0,59,0,105,0,155,0, +205,0,179,0,91,0,100,0,165,0,113,0,35,0,95,0,182,0,147,0,84,0,129,0,210,0,181,0,87,0,69,0, +95,0,72,0,83,0,164,0,139,0,254,255,237,255,97,0,117,0,34,0,21,0,106,0,181,0,170,0,106,0,80,0, +79,0,45,0,24,0,56,0,88,0,104,0,86,0,242,255,160,255,221,255,55,0,45,0,243,255,203,255,225,255,65,0, +123,0,56,0,196,255,131,255,150,255,223,255,13,0,9,0,9,0,250,255,220,255,255,255,24,0,208,255,190,255,4,0, +16,0,253,255,251,255,198,255,146,255,142,255,116,255,155,255,18,0,215,255,92,255,242,255,34,0,189,254,240,254,11,2, +157,2,0,253,161,247,136,250,214,1,248,3,71,1,165,255,232,254,255,253,49,255,168,1,11,2,245,255,141,253,141,253, +57,0,146,1,118,255,170,253,204,254,133,0,74,1,142,1,135,0,241,254,68,255,54,0,182,255,6,0,137,1,121,0, +218,253,172,254,179,1,218,1,224,255,174,255,126,0,162,255,187,254,15,0,23,1,219,255,62,255,215,255,203,254,26,254, +115,0,126,1,92,255,37,255,188,0,31,0,1,0,252,1,77,1,243,254,245,255,64,1,161,255,118,255,74,1,99,0, +51,254,254,254,235,0,178,0,44,255,118,254,237,254,105,255,125,255,21,0,93,0,239,254,29,254,164,255,142,0,190,255, +183,255,11,0,100,255,215,255,126,1,52,1,85,255,178,254,52,255,193,255,113,0,165,0,158,255,122,254,162,254,139,255, +168,255,47,255,152,255,54,0,121,255,218,254,242,255,156,0,98,255,112,254,207,254,1,255,222,254,100,255,48,0,93,0, +251,255,189,255,229,255,201,255,32,255,206,254,35,255,136,255,13,0,164,0,103,0,159,255,140,255,233,255,211,255,196,255, +42,0,108,0,98,0,124,0,95,0,123,255,201,254,139,255,175,0,90,0,74,255,25,255,68,255,75,255,8,0,236,0, +135,0,126,255,32,255,89,255,246,255,177,0,136,0,133,255,2,255,82,255,172,255,226,255,77,0,211,0,188,0,203,255, +17,255,111,255,4,0,253,255,254,255,73,0,53,0,195,255,131,255,152,255,201,255,180,255,66,255,26,255,150,255,21,0, +59,0,80,0,84,0,34,0,228,255,186,255,161,255,199,255,52,0,114,0,59,0,45,0,151,0,126,0,171,255,164,255, +151,0,210,0,99,0,132,0,121,0,189,255,176,255,91,0,94,0,34,0,117,0,183,0,179,0,194,0,111,0,175,255, +111,255,253,255,222,0,109,1,9,1,61,0,76,0,236,0,21,1,11,1,253,0,107,0,8,0,159,0,69,1,73,1, +43,1,9,1,214,0,202,0,141,0,33,0,72,0,169,0,148,0,199,0,91,1,45,1,145,0,110,0,84,0,84,0, +238,0,58,1,252,0,14,1,109,0,184,254,165,254,95,0,106,0,249,254,60,255,132,0,137,0,7,0,2,0,250,255, +240,255,11,0,57,0,246,0,177,1,31,1,52,0,104,0,175,0,60,0,64,0,225,0,5,1,181,0,124,0,91,0, +87,0,93,0,103,0,210,0,79,1,60,1,246,0,151,0,167,255,15,255,172,255,49,0,228,255,241,255,124,0,146,0, +47,0,129,255,214,254,28,255,236,255,18,0,80,0,33,1,192,0,73,255,19,255,208,255,201,255,192,255,85,0,35,0, +27,255,233,254,155,255,160,255,148,254,15,254,28,255,11,0,124,255,83,255,92,0,16,0,146,254,236,254,42,0,126,255, +119,254,226,254,24,255,164,254,195,254,220,254,170,254,39,255,86,255,120,254,159,254,2,0,34,0,86,255,165,255,61,0, +243,255,168,255,174,255,136,255,154,255,25,0,99,0,45,0,159,255,74,255,155,255,175,255,250,254,222,254,168,255,177,255, +56,255,153,255,185,255,180,254,75,254,241,254,10,255,207,254,89,255,174,255,11,255,161,254,245,254,73,255,134,255,227,255, +251,255,191,255,194,255,19,0,37,0,207,255,121,255,121,255,191,255,1,0,31,0,51,0,71,0,61,0,38,0,55,0, +103,0,139,0,180,0,197,0,113,0,11,0,41,0,124,0,120,0,101,0,116,0,95,0,99,0,181,0,181,0,70,0, +56,0,121,0,72,0,3,0,104,0,242,0,225,0,125,0,86,0,100,0,114,0,139,0,185,0,183,0,98,0,36,0, +80,0,113,0,43,0,3,0,75,0,117,0,68,0,73,0,141,0,108,0,245,255,179,255,135,255,84,255,130,255,207,255, +161,255,138,255,244,255,225,255,85,255,183,255,119,0,246,255,51,255,164,255,253,255,74,255,1,255,121,255,91,255,206,254, +199,254,234,254,250,254,107,255,184,255,70,255,248,254,92,255,113,255,226,254,199,254,63,255,54,255,178,254,184,254,59,255, +85,255,225,254,133,254,140,254,166,254,156,254,163,254,211,254,223,254,169,254,119,254,97,254,99,254,159,254,237,254,226,254, +177,254,219,254,42,255,43,255,12,255,11,255,248,254,227,254,11,255,87,255,165,255,235,255,217,255,100,255,52,255,121,255, +133,255,65,255,88,255,188,255,197,255,124,255,122,255,228,255,61,0,255,255,113,255,153,255,144,0,23,1,197,0,158,0, +216,0,170,0,76,0,125,0,205,0,170,0,127,0,148,0,181,0,249,0,41,1,172,0,31,0,126,0,253,0,155,0, +75,0,203,0,10,1,169,0,176,0,7,1,190,0,86,0,173,0,38,1,14,1,209,0,199,0,209,0,1,1,48,1, +253,0,182,0,209,0,252,0,236,0,251,0,36,1,2,1,214,0,254,0,18,1,229,0,13,1,135,1,131,1,248,0, +188,0,19,1,111,1,114,1,74,1,55,1,62,1,60,1,37,1,12,1,234,0,188,0,194,0,20,1,79,1,46,1, +5,1,9,1,241,0,184,0,208,0,46,1,80,1,51,1,52,1,45,1,215,0,144,0,198,0,53,1,98,1,43,1, +178,0,85,0,117,0,227,0,24,1,237,0,158,0,116,0,148,0,224,0,21,1,19,1,224,0,182,0,215,0,20,1, +8,1,208,0,196,0,203,0,162,0,97,0,101,0,183,0,211,0,131,0,97,0,156,0,157,0,104,0,121,0,143,0, +133,0,167,0,144,0,32,0,43,0,122,0,55,0,38,0,193,0,187,0,9,0,28,0,165,0,130,0,44,0,82,0, +151,0,141,0,54,0,18,0,112,0,136,0,8,0,231,255,20,0,176,255,123,255,240,255,234,255,143,255,231,255,54,0, +241,255,246,255,15,0,200,255,244,255,77,0,240,255,204,255,54,0,214,255,36,255,114,255,221,255,160,255,162,255,216,255, +149,255,92,255,140,255,190,255,219,255,224,255,188,255,158,255,101,255,12,255,55,255,190,255,197,255,128,255,105,255,75,255, +96,255,217,255,236,255,124,255,100,255,154,255,174,255,197,255,205,255,163,255,144,255,117,255,47,255,73,255,181,255,184,255, +120,255,122,255,157,255,167,255,128,255,74,255,131,255,245,255,214,255,133,255,165,255,171,255,128,255,201,255,248,255,137,255, +81,255,116,255,78,255,76,255,155,255,114,255,36,255,108,255,163,255,114,255,129,255,170,255,127,255,122,255,184,255,196,255, +165,255,105,255,18,255,26,255,112,255,102,255,61,255,114,255,130,255,48,255,253,254,237,254,230,254,50,255,136,255,107,255, +51,255,46,255,25,255,11,255,44,255,47,255,26,255,45,255,35,255,254,254,51,255,127,255,93,255,35,255,47,255,64,255, +61,255,62,255,52,255,60,255,95,255,79,255,38,255,76,255,129,255,100,255,45,255,19,255,22,255,74,255,123,255,92,255, +58,255,84,255,113,255,147,255,199,255,170,255,88,255,91,255,142,255,160,255,190,255,213,255,176,255,162,255,192,255,206,255, +242,255,14,0,193,255,143,255,230,255,16,0,221,255,253,255,48,0,252,255,245,255,58,0,44,0,8,0,53,0,54,0, +238,255,223,255,0,0,41,0,96,0,72,0,246,255,28,0,116,0,60,0,0,0,86,0,143,0,92,0,91,0,124,0, +89,0,68,0,101,0,94,0,78,0,124,0,140,0,102,0,142,0,230,0,209,0,100,0,30,0,42,0,127,0,215,0, +197,0,118,0,103,0,106,0,54,0,60,0,142,0,125,0,50,0,111,0,183,0,81,0,15,0,149,0,237,0,166,0, +125,0,136,0,103,0,81,0,75,0,50,0,98,0,165,0,94,0,39,0,133,0,138,0,5,0,2,0,100,0,106,0, +111,0,164,0,136,0,77,0,71,0,30,0,242,255,46,0,124,0,142,0,127,0,50,0,231,255,33,0,114,0,96,0, +98,0,104,0,236,255,149,255,3,0,94,0,53,0,48,0,64,0,221,255,149,255,243,255,74,0,16,0,223,255,37,0, +73,0,238,255,185,255,14,0,82,0,52,0,38,0,52,0,255,255,208,255,10,0,57,0,3,0,224,255,10,0,23,0, +254,255,21,0,45,0,0,0,215,255,223,255,219,255,224,255,27,0,33,0,192,255,137,255,181,255,218,255,228,255,240,255, +207,255,148,255,152,255,183,255,165,255,138,255,160,255,206,255,231,255,193,255,102,255,69,255,173,255,55,0,64,0,226,255, +186,255,217,255,224,255,237,255,38,0,27,0,203,255,212,255,24,0,12,0,232,255,232,255,226,255,247,255,18,0,213,255, +177,255,2,0,24,0,233,255,36,0,86,0,247,255,199,255,252,255,236,255,214,255,34,0,89,0,80,0,52,0,229,255, +181,255,254,255,51,0,30,0,79,0,144,0,98,0,47,0,72,0,72,0,5,0,175,255,158,255,23,0,149,0,111,0, +13,0,253,255,249,255,232,255,8,0,36,0,15,0,254,255,0,0,16,0,34,0,251,255,211,255,14,0,74,0,38,0, +7,0,13,0,242,255,233,255,10,0,6,0,254,255,17,0,250,255,1,0,120,0,181,0,88,0,30,0,86,0,131,0, +118,0,93,0,80,0,99,0,114,0,75,0,35,0,50,0,59,0,32,0,54,0,150,0,192,0,114,0,64,0,125,0, +133,0,32,0,23,0,117,0,114,0,52,0,78,0,107,0,79,0,79,0,65,0,2,0,15,0,93,0,85,0,46,0, +97,0,135,0,54,0,222,255,238,255,49,0,69,0,34,0,244,255,203,255,207,255,28,0,79,0,31,0,249,255,15,0, +251,255,235,255,57,0,85,0,245,255,204,255,10,0,56,0,77,0,84,0,40,0,23,0,87,0,128,0,101,0,62,0, +25,0,16,0,49,0,58,0,63,0,121,0,117,0,26,0,39,0,134,0,112,0,51,0,91,0,100,0,34,0,38,0, +81,0,54,0,25,0,37,0,22,0,252,255,26,0,102,0,150,0,98,0,246,255,223,255,24,0,31,0,6,0,29,0, +47,0,21,0,3,0,249,255,234,255,250,255,11,0,236,255,187,255,171,255,224,255,63,0,72,0,218,255,142,255,155,255, +170,255,186,255,197,255,138,255,100,255,190,255,5,0,208,255,149,255,121,255,96,255,146,255,230,255,211,255,159,255,169,255, +163,255,149,255,194,255,199,255,138,255,160,255,236,255,218,255,169,255,183,255,185,255,154,255,162,255,183,255,166,255,149,255, +177,255,229,255,242,255,191,255,156,255,177,255,168,255,120,255,146,255,219,255,216,255,196,255,246,255,0,0,163,255,107,255, +152,255,191,255,184,255,191,255,214,255,205,255,178,255,181,255,214,255,242,255,232,255,186,255,167,255,209,255,242,255,212,255, +172,255,166,255,158,255,156,255,184,255,194,255,179,255,210,255,9,0,254,255,199,255,187,255,210,255,216,255,208,255,212,255, +228,255,230,255,196,255,165,255,184,255,207,255,179,255,163,255,204,255,225,255,189,255,177,255,211,255,208,255,141,255,88,255, +117,255,202,255,252,255,216,255,159,255,149,255,161,255,173,255,195,255,202,255,178,255,182,255,217,255,210,255,180,255,186,255, +183,255,142,255,151,255,205,255,194,255,145,255,171,255,222,255,201,255,161,255,166,255,179,255,185,255,206,255,207,255,180,255, +189,255,238,255,247,255,213,255,208,255,237,255,228,255,180,255,177,255,226,255,232,255,189,255,205,255,24,0,37,0,246,255, +245,255,11,0,233,255,210,255,254,255,24,0,6,0,29,0,70,0,52,0,22,0,28,0,8,0,226,255,6,0,83,0, +84,0,28,0,10,0,29,0,27,0,10,0,9,0,23,0,30,0,25,0,27,0,28,0,251,255,214,255,238,255,41,0, +58,0,46,0,44,0,18,0,232,255,251,255,51,0,42,0,5,0,36,0,78,0,51,0,17,0,41,0,59,0,30,0, +16,0,38,0,45,0,27,0,33,0,78,0,121,0,116,0,75,0,63,0,96,0,104,0,64,0,74,0,158,0,185,0, +96,0,20,0,50,0,115,0,136,0,145,0,165,0,141,0,92,0,122,0,210,0,208,0,118,0,102,0,185,0,232,0, +195,0,151,0,134,0,123,0,140,0,199,0,215,0,147,0,122,0,190,0,195,0,129,0,171,0,255,0,197,0,127,0, +194,0,230,0,170,0,179,0,229,0,195,0,175,0,234,0,3,1,223,0,193,0,170,0,163,0,200,0,227,0,183,0, +111,0,121,0,235,0,39,1,213,0,157,0,195,0,152,0,73,0,155,0,8,1,222,0,175,0,195,0,170,0,129,0, +128,0,122,0,152,0,206,0,158,0,103,0,163,0,156,0,42,0,65,0,172,0,127,0,47,0,80,0,90,0,28,0, +26,0,79,0,93,0,60,0,38,0,64,0,85,0,45,0,16,0,34,0,3,0,197,255,211,255,253,255,22,0,60,0, +42,0,206,255,207,255,31,0,11,0,209,255,232,255,229,255,162,255,155,255,192,255,173,255,135,255,148,255,194,255,230,255, +226,255,184,255,139,255,111,255,114,255,148,255,172,255,164,255,137,255,87,255,48,255,100,255,188,255,180,255,108,255,88,255, +116,255,146,255,174,255,179,255,134,255,63,255,47,255,135,255,208,255,133,255,27,255,62,255,138,255,111,255,58,255,44,255, +27,255,36,255,100,255,133,255,93,255,36,255,0,255,21,255,102,255,131,255,45,255,243,254,55,255,132,255,110,255,50,255, +25,255,26,255,45,255,76,255,79,255,64,255,82,255,99,255,73,255,59,255,57,255,12,255,0,255,91,255,139,255,60,255, +3,255,28,255,41,255,33,255,41,255,44,255,68,255,119,255,113,255,64,255,49,255,31,255,16,255,93,255,165,255,103,255, +36,255,67,255,80,255,53,255,80,255,104,255,76,255,85,255,128,255,133,255,138,255,148,255,107,255,85,255,129,255,115,255, +37,255,55,255,135,255,138,255,120,255,144,255,133,255,93,255,96,255,91,255,67,255,99,255,142,255,126,255,127,255,168,255, +163,255,132,255,145,255,158,255,149,255,157,255,147,255,109,255,111,255,154,255,173,255,177,255,178,255,168,255,184,255,226,255, +216,255,159,255,146,255,188,255,220,255,213,255,192,255,190,255,200,255,193,255,176,255,183,255,204,255,219,255,227,255,219,255, +199,255,200,255,226,255,244,255,248,255,254,255,252,255,246,255,255,255,6,0,255,255,11,0,28,0,22,0,28,0,35,0, +253,255,239,255,52,0,98,0,82,0,85,0,85,0,43,0,47,0,97,0,91,0,59,0,77,0,115,0,131,0,102,0, +47,0,69,0,138,0,96,0,18,0,90,0,185,0,122,0,37,0,103,0,229,0,243,0,146,0,117,0,212,0,235,0, +137,0,133,0,229,0,219,0,147,0,176,0,246,0,241,0,172,0,120,0,154,0,206,0,164,0,149,0,250,0,255,0, +120,0,111,0,214,0,170,0,44,0,74,0,224,0,34,1,191,0,78,0,141,0,11,1,208,0,75,0,117,0,235,0, +198,0,71,0,43,0,117,0,166,0,171,0,205,0,222,0,135,0,48,0,86,0,169,0,180,0,120,0,80,0,163,0, +18,1,181,0,246,255,1,0,139,0,179,0,171,0,165,0,127,0,141,0,177,0,107,0,50,0,123,0,177,0,117,0, +240,255,88,255,111,255,124,0,45,1,162,0,202,255,178,255,89,0,230,0,132,0,252,255,93,0,161,0,32,0,58,0, +224,0,164,0,65,0,153,0,134,0,30,0,149,0,194,0,153,255,24,255,58,0,251,0,150,0,34,0,77,255,195,254, +131,1,183,4,42,0,253,246,13,247,188,0,204,5,163,2,142,255,106,254,85,253,46,255,39,3,137,3,44,0,64,253, +33,253,40,0,185,2,173,0,177,253,103,254,224,255,176,0,232,2,215,2,185,254,135,253,96,0,185,0,209,255,188,1, +254,1,71,254,192,252,158,255,7,2,151,1,103,0,7,0,183,255,36,255,185,255,244,0,128,0,123,255,173,255,64,255, +199,254,196,0,173,1,58,255,241,254,109,1,255,0,158,255,56,1,144,1,154,255,123,0,129,2,57,1,216,255,223,0, +184,0,198,254,155,254,142,0,118,1,219,255,47,254,239,254,72,0,27,0,27,0,103,0,241,254,66,254,206,0,61,2, +63,0,46,255,26,0,25,0,70,0,1,2,52,2,15,0,30,255,38,0,178,0,83,0,10,0,129,255,196,254,47,255, +67,0,214,255,173,254,101,255,199,0,249,255,128,254,16,255,19,0,80,255,79,254,226,254,179,255,75,255,20,255,51,0, +147,0,241,254,20,254,144,255,150,0,187,255,54,255,173,255,182,255,143,255,244,255,61,0,39,0,36,0,48,0,88,0, +157,0,102,0,219,255,45,0,82,1,121,1,193,255,254,253,74,254,195,255,90,0,65,0,17,0,36,255,104,254,105,255, +141,0,36,0,179,255,215,255,68,255,250,254,65,0,243,0,155,255,89,254,192,254,208,255,110,0,136,0,102,0,254,255, +19,255,107,254,1,255,196,255,108,255,33,255,185,255,190,255,207,254,133,254,36,255,132,255,93,255,254,254,148,254,153,254, +55,255,181,255,168,255,101,255,59,255,101,255,194,255,138,255,190,254,195,254,232,255,179,0,164,0,118,0,21,0,111,255, +86,255,188,255,241,255,57,0,124,0,41,0,13,0,141,0,80,0,140,255,224,255,115,0,16,0,21,0,226,0,217,0, +4,0,77,255,181,254,40,255,216,0,68,1,255,255,209,255,206,0,237,0,233,0,110,1,222,0,196,255,81,0,142,1, +128,1,163,0,225,255,163,255,133,0,153,1,92,1,201,0,220,0,89,0,148,255,46,0,225,0,51,0,225,255,194,0, +38,1,216,0,146,0,232,255,160,255,208,0,148,1,182,0,76,0,202,0,139,0,60,0,177,0,191,0,167,0,0,1, +41,0,205,254,129,255,83,0,229,254,100,254,75,0,44,1,153,0,138,0,240,255,246,254,202,255,144,0,166,255,58,0, +37,2,79,1,120,255,77,0,53,1,122,0,33,1,115,2,81,1,220,255,113,0,204,0,36,0,80,0,161,0,247,255, +207,255,188,0,58,1,141,0,58,255,126,254,125,255,243,0,195,0,0,0,165,0,120,1,189,0,114,255,48,255,202,255, +248,255,93,255,104,255,134,0,126,0,220,254,136,254,193,255,170,255,215,254,181,255,132,0,47,255,29,254,46,255,22,0, +60,255,108,254,254,254,173,255,131,255,126,255,216,255,89,255,175,254,121,255,35,0,251,254,48,254,238,254,6,255,134,254, +33,255,111,255,150,254,176,254,135,255,69,255,57,255,92,0,163,0,213,255,170,255,222,255,205,255,249,255,1,0,186,255, +56,0,7,1,188,0,10,0,52,0,180,0,179,0,72,0,0,0,38,0,28,0,109,255,46,255,172,255,120,255,188,254, +2,255,168,255,106,255,59,255,225,255,44,0,134,255,21,255,136,255,18,0,10,0,10,0,97,0,76,0,218,255,234,255, +19,0,173,255,108,255,150,255,149,255,195,255,94,0,140,0,89,0,107,0,79,0,245,255,66,0,0,1,101,1,125,1, +58,1,146,0,97,0,226,0,59,1,56,1,36,1,218,0,138,0,149,0,156,0,88,0,80,0,213,0,71,1,5,1, +156,0,244,0,107,1,246,0,103,0,163,0,174,0,41,0,59,0,195,0,181,0,107,0,124,0,141,0,129,0,99,0, +1,0,224,255,101,0,154,0,14,0,204,255,40,0,57,0,196,255,108,255,100,255,107,255,119,255,154,255,168,255,107,255, +17,255,8,255,128,255,25,0,17,0,74,255,193,254,0,255,73,255,61,255,83,255,80,255,186,254,88,254,211,254,103,255, +88,255,251,254,219,254,10,255,46,255,238,254,149,254,197,254,84,255,109,255,251,254,205,254,16,255,16,255,208,254,253,254, +54,255,209,254,137,254,227,254,233,254,104,254,88,254,158,254,128,254,76,254,94,254,121,254,126,254,91,254,49,254,132,254, +33,255,40,255,198,254,203,254,18,255,49,255,74,255,111,255,145,255,158,255,86,255,213,254,185,254,45,255,197,255,29,0, +253,255,143,255,82,255,100,255,151,255,217,255,242,255,224,255,26,0,87,0,244,255,168,255,46,0,142,0,47,0,248,255, +52,0,72,0,47,0,50,0,62,0,64,0,41,0,18,0,81,0,160,0,120,0,69,0,124,0,164,0,153,0,192,0, +230,0,185,0,148,0,192,0,22,1,81,1,49,1,212,0,170,0,187,0,209,0,239,0,246,0,220,0,8,1,88,1, +32,1,146,0,104,0,163,0,247,0,56,1,13,1,143,0,145,0,57,1,160,1,62,1,173,0,192,0,87,1,165,1, +131,1,110,1,102,1,70,1,110,1,165,1,38,1,140,0,249,0,178,1,99,1,165,0,194,0,111,1,150,1,48,1, +240,0,240,0,212,0,175,0,220,0,43,1,27,1,176,0,108,0,170,0,42,1,70,1,207,0,98,0,131,0,232,0, +24,1,3,1,203,0,157,0,163,0,199,0,195,0,180,0,240,0,80,1,71,1,225,0,164,0,161,0,149,0,162,0, +224,0,224,0,116,0,38,0,64,0,92,0,72,0,70,0,90,0,90,0,128,0,238,0,13,1,118,0,221,255,13,0, +152,0,159,0,61,0,22,0,47,0,50,0,44,0,76,0,114,0,125,0,125,0,115,0,87,0,48,0,5,0,1,0, +97,0,216,0,169,0,236,255,155,255,231,255,10,0,226,255,3,0,89,0,83,0,1,0,198,255,162,255,155,255,218,255, +29,0,11,0,218,255,204,255,185,255,174,255,245,255,91,0,95,0,0,0,160,255,116,255,136,255,207,255,17,0,27,0, +246,255,185,255,134,255,137,255,192,255,236,255,233,255,187,255,130,255,128,255,184,255,192,255,128,255,131,255,226,255,250,255, +180,255,173,255,227,255,215,255,191,255,3,0,52,0,222,255,123,255,138,255,188,255,166,255,104,255,98,255,167,255,215,255, +144,255,16,255,245,254,96,255,233,255,50,0,3,0,112,255,31,255,124,255,240,255,215,255,152,255,172,255,202,255,187,255, +184,255,180,255,121,255,72,255,86,255,117,255,137,255,140,255,78,255,3,255,38,255,112,255,60,255,232,254,31,255,100,255, +28,255,239,254,103,255,184,255,88,255,15,255,88,255,120,255,254,254,153,254,230,254,128,255,168,255,89,255,45,255,71,255, +48,255,238,254,3,255,77,255,70,255,26,255,49,255,104,255,138,255,160,255,122,255,12,255,228,254,64,255,137,255,117,255, +107,255,113,255,52,255,13,255,86,255,135,255,87,255,84,255,136,255,120,255,77,255,80,255,69,255,56,255,100,255,117,255, +98,255,167,255,250,255,188,255,85,255,84,255,142,255,206,255,250,255,221,255,179,255,187,255,167,255,139,255,209,255,14,0, +208,255,174,255,238,255,244,255,176,255,181,255,0,0,32,0,17,0,29,0,72,0,58,0,228,255,216,255,84,0,152,0, +43,0,178,255,203,255,32,0,47,0,27,0,59,0,94,0,59,0,43,0,124,0,156,0,41,0,208,255,27,0,141,0, +165,0,149,0,140,0,96,0,40,0,72,0,155,0,134,0,69,0,146,0,242,0,139,0,5,0,57,0,139,0,118,0, +133,0,181,0,130,0,80,0,152,0,208,0,149,0,95,0,117,0,130,0,114,0,158,0,223,0,176,0,69,0,64,0, +115,0,109,0,99,0,116,0,91,0,80,0,138,0,142,0,69,0,58,0,100,0,84,0,48,0,68,0,120,0,154,0, +127,0,59,0,35,0,65,0,94,0,108,0,88,0,41,0,51,0,89,0,45,0,7,0,81,0,113,0,24,0,252,255, +66,0,53,0,216,255,211,255,29,0,48,0,15,0,27,0,51,0,20,0,4,0,32,0,254,255,192,255,247,255,76,0, +57,0,24,0,19,0,219,255,197,255,10,0,255,255,152,255,150,255,228,255,235,255,215,255,240,255,236,255,183,255,181,255, +0,0,28,0,215,255,175,255,180,255,113,255,76,255,191,255,231,255,112,255,120,255,202,255,83,255,9,255,199,255,30,0, +159,255,149,255,205,255,136,255,147,255,11,0,243,255,150,255,179,255,225,255,244,255,33,0,249,255,125,255,111,255,199,255, +246,255,9,0,32,0,22,0,241,255,188,255,144,255,168,255,225,255,249,255,15,0,17,0,190,255,133,255,204,255,13,0, +244,255,228,255,247,255,240,255,248,255,34,0,49,0,44,0,64,0,59,0,7,0,242,255,15,0,34,0,28,0,42,0, +66,0,32,0,197,255,159,255,227,255,48,0,71,0,78,0,28,0,159,255,139,255,24,0,88,0,7,0,253,255,58,0, +14,0,200,255,243,255,42,0,29,0,12,0,16,0,48,0,82,0,24,0,204,255,23,0,116,0,69,0,49,0,74,0, +232,255,217,255,194,0,1,1,7,0,172,255,57,0,79,0,44,0,106,0,71,0,237,255,60,0,136,0,59,0,63,0, +166,0,125,0,22,0,51,0,98,0,63,0,62,0,121,0,116,0,46,0,45,0,106,0,83,0,33,0,119,0,188,0, +52,0,230,255,116,0,163,0,40,0,39,0,102,0,32,0,1,0,64,0,16,0,214,255,59,0,117,0,44,0,28,0, +67,0,61,0,57,0,34,0,208,255,185,255,238,255,10,0,43,0,89,0,58,0,6,0,2,0,236,255,244,255,80,0, +82,0,219,255,215,255,53,0,43,0,0,0,44,0,72,0,48,0,72,0,120,0,96,0,21,0,253,255,62,0,136,0, +120,0,44,0,242,255,224,255,20,0,123,0,140,0,58,0,37,0,68,0,37,0,38,0,130,0,126,0,0,0,243,255, +75,0,44,0,235,255,75,0,164,0,60,0,221,255,47,0,121,0,47,0,200,255,173,255,217,255,28,0,16,0,169,255, +143,255,248,255,58,0,10,0,206,255,199,255,227,255,7,0,27,0,12,0,205,255,127,255,141,255,243,255,19,0,236,255, +7,0,45,0,250,255,213,255,217,255,165,255,145,255,242,255,36,0,225,255,201,255,246,255,242,255,176,255,128,255,157,255, +227,255,230,255,176,255,165,255,167,255,146,255,182,255,220,255,165,255,145,255,195,255,142,255,69,255,165,255,247,255,162,255, +109,255,160,255,163,255,140,255,164,255,161,255,158,255,226,255,1,0,184,255,141,255,176,255,190,255,152,255,134,255,156,255, +154,255,110,255,89,255,101,255,84,255,71,255,131,255,197,255,199,255,183,255,172,255,159,255,201,255,7,0,233,255,164,255, +178,255,223,255,210,255,173,255,165,255,192,255,232,255,236,255,216,255,230,255,238,255,187,255,159,255,204,255,237,255,209,255, +169,255,160,255,192,255,227,255,204,255,170,255,203,255,241,255,218,255,205,255,222,255,212,255,213,255,247,255,253,255,0,0, +17,0,222,255,164,255,229,255,40,0,227,255,174,255,224,255,249,255,238,255,251,255,228,255,192,255,236,255,12,0,206,255, +176,255,208,255,199,255,201,255,13,0,24,0,205,255,166,255,171,255,177,255,195,255,195,255,161,255,190,255,15,0,14,0, +207,255,198,255,220,255,228,255,254,255,11,0,218,255,187,255,235,255,29,0,28,0,5,0,223,255,193,255,235,255,60,0, +56,0,218,255,164,255,201,255,0,0,24,0,16,0,232,255,192,255,199,255,236,255,6,0,27,0,30,0,241,255,191,255, +206,255,10,0,58,0,77,0,57,0,8,0,243,255,10,0,26,0,20,0,16,0,16,0,18,0,27,0,30,0,24,0, +21,0,8,0,243,255,248,255,20,0,32,0,34,0,48,0,56,0,48,0,30,0,11,0,7,0,29,0,43,0,26,0, +8,0,16,0,32,0,34,0,17,0,0,0,18,0,65,0,78,0,36,0,5,0,34,0,72,0,57,0,26,0,40,0, +70,0,70,0,63,0,60,0,34,0,32,0,88,0,100,0,31,0,20,0,94,0,110,0,56,0,49,0,65,0,33,0, +44,0,139,0,167,0,69,0,245,255,2,0,47,0,115,0,193,0,199,0,138,0,117,0,140,0,136,0,116,0,118,0, +119,0,114,0,128,0,142,0,135,0,135,0,160,0,182,0,168,0,121,0,104,0,162,0,228,0,218,0,178,0,186,0, +202,0,172,0,141,0,158,0,195,0,224,0,229,0,189,0,142,0,149,0,176,0,162,0,164,0,215,0,201,0,98,0, +77,0,173,0,201,0,121,0,94,0,145,0,153,0,122,0,136,0,175,0,168,0,115,0,79,0,100,0,120,0,70,0, +40,0,122,0,188,0,131,0,97,0,165,0,161,0,37,0,243,255,58,0,93,0,67,0,68,0,77,0,43,0,20,0, +44,0,61,0,46,0,24,0,9,0,16,0,49,0,56,0,4,0,212,255,195,255,166,255,177,255,24,0,71,0,219,255, +149,255,241,255,54,0,254,255,204,255,194,255,152,255,148,255,235,255,29,0,224,255,144,255,117,255,138,255,183,255,211,255, +196,255,158,255,136,255,157,255,196,255,173,255,104,255,94,255,147,255,166,255,128,255,82,255,75,255,142,255,191,255,93,255, +238,254,43,255,140,255,105,255,63,255,91,255,98,255,98,255,123,255,100,255,75,255,120,255,109,255,16,255,31,255,137,255, +155,255,110,255,74,255,13,255,244,254,53,255,90,255,59,255,68,255,108,255,110,255,97,255,66,255,26,255,62,255,141,255, +131,255,66,255,39,255,36,255,61,255,111,255,100,255,49,255,72,255,110,255,75,255,46,255,65,255,64,255,70,255,107,255, +95,255,45,255,52,255,86,255,88,255,105,255,140,255,124,255,69,255,46,255,61,255,73,255,69,255,81,255,118,255,143,255, +149,255,144,255,108,255,70,255,105,255,151,255,111,255,74,255,106,255,88,255,23,255,63,255,159,255,162,255,133,255,168,255, +210,255,208,255,173,255,128,255,126,255,170,255,178,255,160,255,179,255,186,255,148,255,148,255,180,255,168,255,151,255,166,255, +173,255,196,255,247,255,235,255,171,255,175,255,226,255,226,255,204,255,228,255,18,0,18,0,200,255,129,255,171,255,18,0, +29,0,214,255,177,255,175,255,186,255,237,255,32,0,14,0,234,255,253,255,44,0,59,0,41,0,31,0,29,0,14,0, +9,0,28,0,31,0,18,0,26,0,33,0,36,0,62,0,72,0,54,0,60,0,61,0,20,0,30,0,94,0,86,0, +23,0,15,0,45,0,71,0,103,0,109,0,91,0,111,0,143,0,130,0,102,0,92,0,97,0,121,0,139,0,144,0, +177,0,204,0,143,0,70,0,111,0,194,0,176,0,75,0,29,0,104,0,205,0,198,0,110,0,86,0,151,0,168,0, +80,0,22,0,73,0,102,0,55,0,85,0,192,0,203,0,171,0,217,0,197,0,58,0,45,0,184,0,204,0,94,0, +79,0,165,0,190,0,137,0,111,0,150,0,199,0,184,0,63,0,244,255,245,0,72,2,212,0,26,253,69,252,178,255, +120,2,5,2,213,0,70,0,212,255,46,0,85,1,155,1,129,0,69,255,48,255,106,0,66,1,134,0,228,255,87,0, +72,0,241,255,214,0,111,1,124,0,2,0,108,0,24,0,242,255,249,0,29,1,195,255,61,255,33,0,192,0,126,0, +44,0,97,0,128,0,232,255,138,255,30,0,102,0,247,255,249,255,28,0,213,255,71,0,1,1,95,0,171,255,86,0, +163,0,3,0,32,0,135,0,40,0,57,0,238,0,228,0,149,0,214,0,140,0,137,255,95,255,58,0,172,0,42,0, +154,255,198,255,28,0,217,255,186,255,59,0,35,0,99,255,160,255,142,0,145,0,29,0,45,0,68,0,64,0,147,0, +195,0,130,0,92,0,81,0,42,0,43,0,32,0,190,255,172,255,45,0,112,0,36,0,220,255,246,255,46,0,242,255, +101,255,159,255,123,0,63,0,30,255,50,255,51,0,51,0,177,255,253,255,38,0,121,255,73,255,241,255,37,0,210,255, +250,255,91,0,44,0,206,255,217,255,10,0,33,0,66,0,70,0,11,0,246,255,37,0,59,0,70,0,113,0,79,0, +201,255,130,255,153,255,162,255,163,255,191,255,203,255,203,255,192,255,165,255,238,255,112,0,24,0,68,255,106,255,32,0, +39,0,11,0,52,0,191,255,27,255,143,255,97,0,105,0,40,0,254,255,137,255,73,255,192,255,27,0,218,255,173,255, +209,255,195,255,106,255,45,255,71,255,134,255,138,255,86,255,85,255,132,255,102,255,44,255,103,255,170,255,111,255,87,255, +165,255,146,255,54,255,94,255,181,255,158,255,164,255,9,0,20,0,163,255,95,255,111,255,139,255,156,255,157,255,141,255, +140,255,143,255,149,255,199,255,242,255,190,255,130,255,181,255,255,255,237,255,167,255,88,255,26,255,83,255,255,255,65,0, +190,255,77,255,141,255,242,255,238,255,200,255,233,255,40,0,62,0,58,0,64,0,67,0,45,0,23,0,19,0,14,0, +7,0,22,0,29,0,241,255,210,255,15,0,97,0,83,0,27,0,44,0,105,0,107,0,35,0,207,255,197,255,22,0, +94,0,66,0,1,0,3,0,28,0,9,0,4,0,70,0,117,0,78,0,60,0,123,0,128,0,32,0,22,0,123,0, +120,0,31,0,70,0,147,0,67,0,233,255,26,0,53,0,1,0,19,0,69,0,33,0,242,255,248,255,3,0,39,0, +91,0,98,0,96,0,67,0,209,255,206,255,138,0,99,0,15,255,220,254,249,255,226,255,180,254,191,254,202,255,59,0, +33,0,237,255,165,255,199,255,54,0,54,0,75,0,248,0,31,1,110,0,19,0,35,0,18,0,72,0,162,0,90,0, +248,255,25,0,41,0,53,0,169,0,161,0,235,255,233,255,149,0,163,0,74,0,34,0,209,255,160,255,251,255,19,0, +191,255,251,255,135,0,111,0,3,0,199,255,155,255,132,255,120,255,115,255,230,255,103,0,13,0,164,255,1,0,223,255, +28,255,154,255,174,0,14,0,244,254,123,255,36,0,122,255,33,255,226,255,68,0,18,0,105,0,229,0,114,0,168,255, +171,255,8,0,230,255,198,255,25,0,8,0,127,255,145,255,232,255,151,255,145,255,77,0,63,0,139,255,1,0,234,0, +167,0,56,0,141,0,167,0,118,0,191,0,230,0,159,0,179,0,234,0,179,0,166,0,232,0,217,0,178,0,180,0, +109,0,33,0,54,0,30,0,193,255,184,255,200,255,177,255,219,255,5,0,220,255,15,0,139,0,84,0,222,255,12,0, +53,0,249,255,35,0,142,0,119,0,56,0,72,0,95,0,94,0,57,0,216,255,212,255,131,0,232,0,120,0,21,0, +75,0,155,0,171,0,156,0,153,0,176,0,192,0,186,0,183,0,146,0,58,0,44,0,143,0,197,0,152,0,112,0, +97,0,62,0,34,0,34,0,58,0,113,0,139,0,81,0,27,0,62,0,106,0,80,0,19,0,226,255,212,255,1,0, +67,0,84,0,67,0,64,0,57,0,12,0,216,255,206,255,229,255,249,255,249,255,226,255,186,255,162,255,156,255,138,255, +111,255,99,255,59,255,243,254,227,254,24,255,54,255,60,255,98,255,124,255,107,255,115,255,141,255,109,255,51,255,53,255, +94,255,70,255,213,254,151,254,11,255,170,255,159,255,59,255,63,255,116,255,85,255,18,255,236,254,222,254,248,254,22,255, +250,254,226,254,22,255,70,255,52,255,16,255,237,254,219,254,244,254,250,254,214,254,234,254,22,255,228,254,186,254,21,255, +84,255,13,255,222,254,235,254,191,254,168,254,24,255,138,255,123,255,54,255,17,255,26,255,64,255,68,255,32,255,56,255, +120,255,79,255,254,254,40,255,110,255,70,255,47,255,124,255,135,255,52,255,72,255,188,255,190,255,84,255,74,255,189,255, +10,0,230,255,177,255,179,255,179,255,155,255,197,255,39,0,48,0,234,255,229,255,253,255,218,255,207,255,16,0,47,0, +17,0,3,0,4,0,8,0,50,0,62,0,253,255,11,0,140,0,168,0,78,0,84,0,131,0,37,0,206,255,30,0, +116,0,123,0,163,0,178,0,80,0,33,0,136,0,213,0,181,0,132,0,97,0,77,0,105,0,144,0,141,0,133,0, +151,0,167,0,143,0,77,0,60,0,164,0,252,0,181,0,96,0,142,0,186,0,156,0,165,0,169,0,72,0,30,0, +147,0,215,0,146,0,122,0,175,0,168,0,135,0,160,0,173,0,148,0,162,0,175,0,119,0,78,0,109,0,125,0, +95,0,95,0,131,0,141,0,120,0,119,0,147,0,148,0,109,0,92,0,113,0,125,0,142,0,178,0,161,0,113,0, +138,0,189,0,166,0,122,0,105,0,90,0,123,0,197,0,167,0,51,0,40,0,133,0,182,0,164,0,131,0,110,0, +132,0,171,0,174,0,155,0,144,0,121,0,99,0,104,0,108,0,86,0,60,0,64,0,105,0,118,0,65,0,47,0, +131,0,193,0,167,0,135,0,110,0,76,0,103,0,153,0,115,0,61,0,88,0,103,0,75,0,98,0,119,0,42,0, +245,255,55,0,105,0,54,0,6,0,21,0,32,0,23,0,34,0,52,0,48,0,50,0,62,0,57,0,52,0,63,0, +48,0,12,0,28,0,72,0,65,0,39,0,47,0,59,0,63,0,84,0,71,0,250,255,205,255,249,255,40,0,30,0, +15,0,24,0,18,0,248,255,245,255,2,0,255,255,249,255,254,255,246,255,241,255,13,0,27,0,252,255,248,255,22,0, +253,255,204,255,231,255,27,0,3,0,205,255,179,255,161,255,160,255,210,255,0,0,250,255,230,255,209,255,173,255,168,255, +215,255,232,255,193,255,180,255,201,255,192,255,168,255,167,255,165,255,165,255,185,255,175,255,122,255,109,255,142,255,148,255, +138,255,164,255,193,255,170,255,117,255,101,255,142,255,182,255,170,255,140,255,134,255,138,255,141,255,141,255,125,255,116,255, +125,255,116,255,110,255,148,255,155,255,99,255,92,255,135,255,113,255,81,255,139,255,188,255,146,255,102,255,95,255,84,255, +91,255,136,255,175,255,178,255,157,255,133,255,140,255,166,255,170,255,157,255,152,255,140,255,117,255,107,255,134,255,178,255, +186,255,148,255,130,255,140,255,130,255,123,255,161,255,195,255,192,255,176,255,147,255,122,255,144,255,178,255,173,255,184,255, +232,255,251,255,226,255,200,255,193,255,205,255,212,255,196,255,198,255,235,255,1,0,251,255,242,255,223,255,208,255,219,255, +231,255,0,0,52,0,45,0,230,255,220,255,254,255,233,255,214,255,248,255,7,0,26,0,90,0,100,0,43,0,44,0, +90,0,90,0,69,0,48,0,14,0,24,0,83,0,97,0,66,0,62,0,77,0,84,0,98,0,117,0,117,0,91,0, +67,0,87,0,127,0,105,0,53,0,57,0,80,0,64,0,53,0,59,0,51,0,68,0,105,0,77,0,15,0,22,0, +71,0,103,0,137,0,149,0,85,0,15,0,38,0,102,0,113,0,88,0,80,0,78,0,58,0,39,0,25,0,14,0, +38,0,95,0,104,0,53,0,35,0,71,0,91,0,83,0,77,0,65,0,46,0,42,0,50,0,67,0,95,0,89,0, +39,0,24,0,61,0,69,0,33,0,25,0,55,0,67,0,51,0,45,0,52,0,49,0,29,0,16,0,26,0,39,0, +42,0,51,0,56,0,37,0,20,0,17,0,250,255,234,255,20,0,73,0,67,0,23,0,238,255,227,255,5,0,31,0, +0,0,254,255,49,0,30,0,202,255,184,255,201,255,194,255,234,255,39,0,5,0,200,255,205,255,212,255,197,255,203,255, +195,255,168,255,176,255,187,255,188,255,223,255,232,255,167,255,138,255,175,255,192,255,199,255,215,255,203,255,206,255,246,255, +235,255,208,255,242,255,242,255,189,255,207,255,242,255,201,255,210,255,30,0,10,0,184,255,186,255,234,255,1,0,255,255, +229,255,226,255,13,0,252,255,167,255,150,255,198,255,230,255,7,0,22,0,234,255,221,255,9,0,252,255,198,255,213,255, +0,0,8,0,15,0,253,255,185,255,150,255,194,255,239,255,231,255,209,255,221,255,251,255,250,255,233,255,242,255,230,255, +164,255,143,255,210,255,252,255,215,255,187,255,219,255,8,0,26,0,253,255,188,255,143,255,168,255,227,255,250,255,239,255, +239,255,236,255,208,255,204,255,234,255,222,255,183,255,213,255,28,0,35,0,239,255,203,255,212,255,3,0,40,0,28,0, +3,0,4,0,11,0,25,0,49,0,48,0,29,0,32,0,39,0,30,0,27,0,14,0,240,255,243,255,12,0,247,255, +206,255,210,255,236,255,244,255,251,255,2,0,245,255,220,255,223,255,16,0,59,0,37,0,240,255,231,255,246,255,245,255, +254,255,5,0,217,255,183,255,245,255,65,0,33,0,214,255,213,255,1,0,5,0,236,255,224,255,222,255,222,255,227,255, +243,255,18,0,53,0,56,0,27,0,12,0,36,0,68,0,63,0,26,0,10,0,41,0,71,0,57,0,34,0,40,0, +67,0,87,0,76,0,48,0,51,0,78,0,69,0,39,0,46,0,70,0,76,0,93,0,115,0,100,0,63,0,57,0, +94,0,130,0,118,0,74,0,63,0,82,0,81,0,73,0,90,0,106,0,95,0,71,0,60,0,82,0,97,0,60,0, +28,0,64,0,100,0,87,0,74,0,75,0,63,0,64,0,80,0,68,0,43,0,28,0,7,0,254,255,26,0,55,0, +57,0,38,0,9,0,255,255,17,0,19,0,18,0,49,0,55,0,22,0,21,0,22,0,235,255,234,255,38,0,48,0, +20,0,35,0,47,0,18,0,6,0,11,0,2,0,251,255,245,255,233,255,239,255,246,255,230,255,226,255,233,255,216,255, +204,255,218,255,228,255,237,255,255,255,238,255,201,255,202,255,224,255,234,255,243,255,243,255,231,255,233,255,237,255,227,255, +224,255,223,255,204,255,202,255,224,255,215,255,185,255,197,255,237,255,237,255,190,255,156,255,175,255,213,255,211,255,183,255, +178,255,203,255,231,255,232,255,200,255,176,255,184,255,191,255,185,255,190,255,179,255,140,255,140,255,196,255,230,255,206,255, +172,255,168,255,191,255,214,255,223,255,228,255,226,255,203,255,180,255,178,255,184,255,184,255,181,255,176,255,189,255,219,255, +220,255,186,255,176,255,197,255,199,255,177,255,164,255,173,255,192,255,200,255,187,255,175,255,180,255,194,255,216,255,233,255, +216,255,180,255,182,255,220,255,232,255,200,255,174,255,178,255,179,255,172,255,201,255,242,255,223,255,177,255,187,255,222,255, +216,255,188,255,183,255,201,255,215,255,197,255,163,255,158,255,170,255,168,255,183,255,215,255,218,255,201,255,204,255,211,255, +216,255,228,255,217,255,205,255,240,255,4,0,206,255,162,255,184,255,220,255,237,255,243,255,234,255,224,255,235,255,244,255, +247,255,249,255,239,255,241,255,12,0,8,0,226,255,219,255,237,255,248,255,19,0,35,0,247,255,214,255,242,255,245,255, +205,255,219,255,11,0,10,0,251,255,9,0,3,0,234,255,254,255,45,0,53,0,38,0,43,0,44,0,15,0,251,255, +29,0,78,0,71,0,15,0,241,255,4,0,28,0,35,0,39,0,44,0,52,0,56,0,28,0,240,255,247,255,37,0, +52,0,48,0,62,0,61,0,47,0,58,0,63,0,50,0,68,0,91,0,61,0,38,0,65,0,82,0,74,0,76,0, +78,0,82,0,97,0,71,0,26,0,44,0,95,0,109,0,110,0,107,0,79,0,74,0,105,0,108,0,91,0,96,0, +102,0,110,0,130,0,122,0,96,0,107,0,123,0,117,0,124,0,136,0,136,0,157,0,159,0,108,0,96,0,143,0, +141,0,113,0,146,0,175,0,150,0,141,0,161,0,155,0,150,0,173,0,184,0,161,0,142,0,158,0,182,0,174,0, +152,0,156,0,150,0,114,0,110,0,146,0,155,0,131,0,116,0,109,0,116,0,142,0,142,0,119,0,132,0,161,0, +149,0,121,0,121,0,130,0,118,0,99,0,103,0,121,0,114,0,92,0,98,0,107,0,86,0,72,0,79,0,67,0, +52,0,72,0,93,0,88,0,81,0,80,0,62,0,26,0,4,0,31,0,74,0,54,0,3,0,4,0,21,0,2,0, +7,0,39,0,24,0,252,255,14,0,24,0,3,0,255,255,254,255,232,255,219,255,223,255,218,255,222,255,244,255,0,0, +244,255,219,255,205,255,226,255,246,255,226,255,212,255,230,255,226,255,193,255,180,255,182,255,172,255,167,255,170,255,178,255, +203,255,216,255,181,255,150,255,171,255,197,255,185,255,157,255,144,255,155,255,180,255,175,255,139,255,134,255,156,255,148,255, +125,255,140,255,164,255,160,255,149,255,145,255,137,255,134,255,137,255,133,255,134,255,148,255,146,255,123,255,111,255,125,255, +145,255,151,255,138,255,123,255,119,255,118,255,121,255,141,255,153,255,148,255,156,255,170,255,156,255,136,255,132,255,120,255, +113,255,128,255,130,255,117,255,123,255,120,255,99,255,118,255,167,255,193,255,208,255,211,255,181,255,159,255,164,255,151,255, +150,255,193,255,204,255,166,255,150,255,137,255,105,255,125,255,187,255,190,255,147,255,119,255,111,255,138,255,183,255,179,255, +154,255,174,255,192,255,168,255,153,255,161,255,154,255,134,255,119,255,114,255,118,255,124,255,146,255,193,255,212,255,182,255, +173,255,185,255,152,255,121,255,148,255,179,255,185,255,196,255,197,255,180,255,176,255,171,255,163,255,186,255,208,255,180,255, +162,255,187,255,199,255,176,255,167,255,192,255,222,255,206,255,164,255,184,255,235,255,205,255,146,255,177,255,227,255,215,255, +213,255,231,255,191,255,143,255,158,255,186,255,208,255,252,255,9,0,215,255,184,255,214,255,246,255,234,255,198,255,183,255, +205,255,227,255,217,255,194,255,194,255,215,255,233,255,233,255,218,255,205,255,198,255,197,255,208,255,220,255,222,255,235,255, +255,255,250,255,253,255,36,0,52,0,18,0,251,255,250,255,231,255,228,255,14,0,34,0,9,0,253,255,7,0,8,0, +22,0,49,0,41,0,14,0,22,0,46,0,45,0,36,0,40,0,52,0,63,0,64,0,62,0,79,0,99,0,85,0, +53,0,33,0,22,0,35,0,77,0,91,0,54,0,32,0,53,0,71,0,79,0,92,0,102,0,106,0,114,0,118,0, +119,0,120,0,103,0,88,0,111,0,134,0,108,0,67,0,60,0,79,0,102,0,114,0,111,0,105,0,97,0,85,0, +96,0,125,0,116,0,74,0,70,0,98,0,94,0,72,0,80,0,97,0,91,0,92,0,124,0,151,0,134,0,101,0, +101,0,128,0,141,0,128,0,115,0,110,0,97,0,87,0,101,0,119,0,109,0,96,0,108,0,112,0,88,0,85,0, +113,0,118,0,107,0,112,0,109,0,95,0,113,0,145,0,133,0,105,0,114,0,132,0,126,0,125,0,132,0,118,0, +95,0,90,0,82,0,63,0,73,0,107,0,104,0,75,0,82,0,100,0,72,0,47,0,74,0,92,0,70,0,67,0, +97,0,105,0,79,0,55,0,51,0,56,0,58,0,54,0,53,0,59,0,64,0,62,0,51,0,40,0,46,0,55,0, +41,0,24,0,37,0,56,0,51,0,32,0,21,0,32,0,56,0,56,0,24,0,5,0,19,0,37,0,34,0,17,0, +8,0,10,0,253,255,231,255,240,255,9,0,255,255,235,255,250,255,255,255,237,255,251,255,16,0,251,255,240,255,16,0, +30,0,10,0,251,255,237,255,226,255,236,255,243,255,238,255,253,255,2,0,220,255,201,255,231,255,250,255,245,255,243,255, +229,255,210,255,222,255,231,255,211,255,210,255,227,255,216,255,202,255,213,255,216,255,216,255,242,255,252,255,215,255,182,255, +179,255,185,255,202,255,224,255,219,255,201,255,193,255,179,255,169,255,188,255,201,255,182,255,170,255,180,255,178,255,162,255, +159,255,179,255,206,255,209,255,192,255,201,255,235,255,228,255,188,255,189,255,211,255,192,255,168,255,179,255,185,255,177,255, +197,255,224,255,211,255,185,255,190,255,204,255,193,255,176,255,189,255,219,255,232,255,226,255,219,255,210,255,205,255,209,255, +200,255,175,255,185,255,234,255,248,255,220,255,214,255,217,255,183,255,160,255,193,255,214,255,191,255,194,255,220,255,192,255, +161,255,214,255,253,255,184,255,127,255,184,255,237,255,211,255,191,255,205,255,194,255,181,255,201,255,217,255,215,255,220,255, +209,255,188,255,200,255,218,255,190,255,163,255,184,255,213,255,210,255,201,255,207,255,207,255,185,255,173,255,202,255,223,255, +197,255,191,255,231,255,234,255,205,255,219,255,237,255,205,255,188,255,199,255,179,255,164,255,199,255,227,255,218,255,187,255, +144,255,155,255,216,255,195,255,141,255,199,255,229,255,142,255,183,255,57,0,185,255,234,254,82,255,221,255,85,255,242,254, +108,255,198,255,207,255,238,255,214,255,159,255,184,255,234,255,53,0,192,0,196,0,44,0,20,0,91,0,25,0,222,255, +51,0,68,0,6,0,43,0,82,0,36,0,51,0,110,0,78,0,40,0,96,0,174,0,219,0,209,0,97,0,215,255, +171,255,206,255,11,0,102,0,185,0,187,0,114,0,47,0,30,0,18,0,252,255,57,0,195,0,239,0,149,0,77,0, +58,0,251,255,195,255,19,0,160,0,174,0,70,0,31,0,98,0,105,0,3,0,211,255,25,0,94,0,144,0,209,0, +189,0,59,0,0,0,71,0,109,0,74,0,72,0,76,0,31,0,21,0,61,0,37,0,235,255,13,0,74,0,53,0, +60,0,182,0,5,1,207,0,149,0,130,0,91,0,94,0,176,0,203,0,145,0,141,0,186,0,158,0,103,0,129,0, +190,0,201,0,174,0,117,0,29,0,244,255,55,0,113,0,20,0,130,255,133,255,235,255,240,255,198,255,0,0,57,0, +252,255,209,255,2,0,14,0,248,255,40,0,86,0,45,0,10,0,29,0,8,0,189,255,147,255,188,255,18,0,59,0, +29,0,18,0,55,0,49,0,16,0,56,0,105,0,77,0,53,0,87,0,102,0,84,0,76,0,54,0,32,0,55,0, +71,0,42,0,37,0,73,0,78,0,48,0,23,0,15,0,35,0,75,0,87,0,78,0,90,0,103,0,81,0,35,0, +3,0,14,0,55,0,44,0,238,255,240,255,54,0,69,0,30,0,20,0,17,0,244,255,241,255,0,0,236,255,220,255, +245,255,246,255,205,255,181,255,182,255,168,255,148,255,145,255,146,255,148,255,162,255,175,255,177,255,191,255,213,255,203,255, +163,255,144,255,150,255,144,255,136,255,141,255,134,255,118,255,128,255,152,255,160,255,172,255,181,255,141,255,84,255,86,255, +129,255,149,255,143,255,126,255,110,255,112,255,123,255,120,255,123,255,140,255,130,255,109,255,128,255,150,255,115,255,61,255, +47,255,61,255,71,255,67,255,56,255,56,255,61,255,56,255,64,255,103,255,120,255,90,255,88,255,143,255,165,255,121,255, +106,255,155,255,180,255,148,255,123,255,126,255,136,255,164,255,192,255,160,255,112,255,134,255,174,255,147,255,117,255,147,255, +172,255,164,255,177,255,202,255,205,255,215,255,237,255,236,255,228,255,233,255,228,255,222,255,239,255,251,255,246,255,248,255, +238,255,209,255,221,255,12,0,14,0,239,255,243,255,4,0,255,255,13,0,49,0,46,0,10,0,6,0,36,0,51,0, +42,0,32,0,26,0,20,0,29,0,52,0,50,0,19,0,14,0,43,0,51,0,28,0,19,0,36,0,58,0,58,0, +26,0,1,0,37,0,83,0,55,0,255,255,15,0,69,0,74,0,44,0,41,0,55,0,56,0,54,0,64,0,60,0, +31,0,13,0,22,0,25,0,12,0,21,0,53,0,60,0,37,0,27,0,37,0,50,0,55,0,50,0,39,0,40,0, +55,0,74,0,86,0,80,0,68,0,75,0,84,0,68,0,54,0,65,0,73,0,67,0,62,0,53,0,44,0,60,0, +79,0,67,0,61,0,85,0,93,0,80,0,93,0,116,0,110,0,98,0,102,0,95,0,76,0,73,0,90,0,101,0, +93,0,81,0,88,0,103,0,105,0,113,0,132,0,120,0,79,0,79,0,113,0,104,0,73,0,85,0,109,0,86,0, +54,0,60,0,80,0,90,0,100,0,105,0,90,0,78,0,86,0,92,0,81,0,70,0,76,0,82,0,68,0,42,0, +29,0,42,0,57,0,45,0,23,0,28,0,54,0,61,0,50,0,51,0,59,0,47,0,25,0,24,0,46,0,56,0, +41,0,26,0,28,0,32,0,27,0,22,0,13,0,253,255,1,0,24,0,24,0,252,255,243,255,255,255,0,0,251,255, +11,0,28,0,21,0,245,255,212,255,207,255,231,255,247,255,234,255,224,255,232,255,234,255,221,255,217,255,227,255,235,255, +235,255,235,255,231,255,217,255,206,255,204,255,200,255,190,255,189,255,193,255,188,255,182,255,185,255,190,255,199,255,212,255, +207,255,194,255,216,255,242,255,213,255,168,255,173,255,195,255,188,255,180,255,182,255,170,255,168,255,187,255,187,255,164,255, +156,255,160,255,160,255,170,255,184,255,182,255,177,255,173,255,155,255,141,255,152,255,165,255,166,255,167,255,164,255,150,255, +147,255,153,255,146,255,145,255,168,255,184,255,174,255,162,255,163,255,171,255,179,255,180,255,171,255,162,255,156,255,157,255, +163,255,167,255,166,255,172,255,174,255,156,255,148,255,172,255,191,255,193,255,199,255,196,255,170,255,164,255,190,255,203,255, +194,255,187,255,185,255,194,255,218,255,221,255,188,255,175,255,198,255,207,255,197,255,200,255,210,255,214,255,226,255,236,255, +226,255,218,255,224,255,232,255,243,255,1,0,0,0,247,255,245,255,241,255,245,255,16,0,31,0,18,0,18,0,31,0, +17,0,255,255,7,0,8,0,252,255,13,0,37,0,31,0,24,0,29,0,14,0,248,255,2,0,29,0,45,0,56,0, +67,0,73,0,75,0,67,0,53,0,56,0,67,0,67,0,68,0,75,0,76,0,83,0,92,0,76,0,64,0,91,0, +110,0,89,0,82,0,95,0,89,0,92,0,116,0,106,0,80,0,95,0,107,0,83,0,78,0,97,0,89,0,77,0, +88,0,90,0,90,0,111,0,115,0,90,0,85,0,98,0,94,0,85,0,80,0,77,0,89,0,108,0,101,0,96,0, +112,0,101,0,70,0,77,0,99,0,94,0,95,0,109,0,96,0,80,0,92,0,100,0,86,0,75,0,73,0,72,0, +74,0,65,0,46,0,49,0,61,0,54,0,44,0,46,0,54,0,68,0,75,0,51,0,25,0,31,0,39,0,32,0, +38,0,47,0,35,0,24,0,26,0,23,0,22,0,31,0,29,0,16,0,13,0,26,0,46,0,53,0,29,0,5,0, +7,0,6,0,252,255,7,0,16,0,250,255,236,255,244,255,232,255,222,255,245,255,0,0,241,255,240,255,237,255,218,255, +220,255,228,255,200,255,189,255,224,255,228,255,191,255,192,255,220,255,216,255,195,255,190,255,201,255,219,255,223,255,200,255, +192,255,221,255,241,255,240,255,241,255,229,255,204,255,202,255,211,255,201,255,201,255,225,255,236,255,228,255,220,255,209,255, +206,255,223,255,226,255,206,255,206,255,231,255,239,255,224,255,211,255,212,255,222,255,226,255,213,255,204,255,214,255,223,255, +217,255,206,255,203,255,214,255,226,255,215,255,193,255,202,255,228,255,226,255,199,255,180,255,181,255,193,255,204,255,198,255, +191,255,198,255,205,255,202,255,203,255,201,255,184,255,169,255,173,255,186,255,194,255,189,255,171,255,160,255,164,255,176,255, +196,255,212,255,197,255,169,255,175,255,196,255,191,255,180,255,190,255,207,255,216,255,213,255,197,255,191,255,207,255,216,255, +209,255,216,255,224,255,213,255,211,255,227,255,233,255,233,255,242,255,240,255,230,255,243,255,2,0,246,255,238,255,248,255, +247,255,237,255,239,255,239,255,233,255,244,255,1,0,245,255,228,255,226,255,231,255,245,255,11,0,12,0,248,255,245,255, +0,0,249,255,235,255,239,255,252,255,255,255,251,255,250,255,7,0,27,0,27,0,5,0,254,255,16,0,24,0,10,0, +3,0,11,0,13,0,14,0,20,0,25,0,28,0,32,0,31,0,31,0,40,0,47,0,43,0,41,0,40,0,35,0, +46,0,69,0,72,0,57,0,50,0,46,0,42,0,55,0,67,0,53,0,40,0,50,0,64,0,72,0,79,0,76,0, +68,0,73,0,77,0,67,0,63,0,69,0,62,0,60,0,79,0,85,0,67,0,55,0,53,0,50,0,51,0,56,0, +59,0,64,0,65,0,55,0,52,0,57,0,49,0,39,0,46,0,45,0,25,0,25,0,50,0,55,0,32,0,15,0, +17,0,31,0,41,0,34,0,24,0,29,0,31,0,19,0,14,0,27,0,39,0,39,0,33,0,24,0,18,0,13,0, +10,0,14,0,18,0,10,0,255,255,4,0,15,0,18,0,17,0,11,0,3,0,2,0,2,0,251,255,241,255,240,255, +247,255,255,255,254,255,237,255,227,255,234,255,232,255,221,255,223,255,229,255,226,255,231,255,246,255,244,255,227,255,218,255, +225,255,245,255,0,0,235,255,205,255,207,255,217,255,208,255,206,255,217,255,210,255,191,255,187,255,196,255,213,255,229,255, +221,255,198,255,196,255,206,255,212,255,226,255,228,255,192,255,163,255,183,255,208,255,200,255,189,255,185,255,182,255,190,255, +200,255,193,255,184,255,183,255,177,255,176,255,187,255,182,255,168,255,183,255,208,255,200,255,177,255,177,255,195,255,209,255, +209,255,192,255,178,255,186,255,204,255,216,255,229,255,231,255,216,255,205,255,208,255,203,255,188,255,184,255,191,255,195,255, +195,255,189,255,175,255,164,255,170,255,191,255,214,255,223,255,219,255,216,255,212,255,201,255,194,255,210,255,234,255,234,255, +205,255,184,255,189,255,195,255,191,255,197,255,214,255,221,255,220,255,225,255,231,255,226,255,215,255,210,255,224,255,247,255, +243,255,219,255,218,255,238,255,241,255,234,255,241,255,242,255,228,255,221,255,227,255,239,255,254,255,251,255,227,255,220,255, +242,255,4,0,11,0,14,0,254,255,235,255,245,255,9,0,9,0,9,0,19,0,23,0,30,0,44,0,38,0,18,0, +11,0,15,0,25,0,42,0,38,0,4,0,244,255,6,0,20,0,20,0,16,0,6,0,3,0,19,0,32,0,27,0, +26,0,30,0,27,0,29,0,37,0,39,0,40,0,44,0,38,0,27,0,28,0,30,0,29,0,34,0,42,0,41,0, +35,0,25,0,17,0,24,0,38,0,42,0,43,0,41,0,29,0,25,0,40,0,53,0,52,0,44,0,34,0,35,0, +51,0,56,0,45,0,52,0,73,0,73,0,62,0,59,0,57,0,61,0,70,0,68,0,69,0,86,0,79,0,45,0, +42,0,74,0,87,0,87,0,94,0,89,0,79,0,76,0,62,0,60,0,90,0,103,0,80,0,77,0,94,0,79,0, +60,0,70,0,81,0,90,0,110,0,107,0,82,0,87,0,102,0,99,0,105,0,108,0,83,0,81,0,121,0,133,0, +111,0,104,0,98,0,80,0,91,0,110,0,101,0,98,0,110,0,101,0,87,0,87,0,70,0,56,0,78,0,86,0, +60,0,60,0,80,0,69,0,51,0,56,0,60,0,67,0,85,0,85,0,76,0,84,0,83,0,65,0,67,0,73,0, +52,0,46,0,70,0,77,0,66,0,59,0,44,0,27,0,33,0,45,0,41,0,33,0,23,0,16,0,31,0,40,0, +14,0,1,0,26,0,33,0,9,0,3,0,22,0,35,0,27,0,255,255,239,255,1,0,12,0,250,255,247,255,7,0, +253,255,239,255,0,0,14,0,0,0,241,255,239,255,250,255,8,0,255,255,231,255,236,255,248,255,225,255,209,255,230,255, +244,255,238,255,237,255,222,255,198,255,209,255,234,255,230,255,210,255,190,255,169,255,180,255,214,255,214,255,193,255,193,255, +189,255,180,255,204,255,226,255,201,255,181,255,199,255,210,255,202,255,192,255,185,255,199,255,230,255,219,255,174,255,171,255, +198,255,200,255,200,255,213,255,198,255,172,255,180,255,193,255,187,255,181,255,175,255,170,255,185,255,195,255,176,255,168,255, +180,255,171,255,162,255,183,255,190,255,167,255,161,255,174,255,171,255,165,255,170,255,170,255,167,255,164,255,159,255,174,255, +210,255,210,255,170,255,155,255,173,255,175,255,163,255,170,255,187,255,196,255,194,255,180,255,167,255,163,255,160,255,160,255, +180,255,200,255,188,255,166,255,165,255,174,255,177,255,174,255,169,255,171,255,189,255,205,255,200,255,189,255,187,255,187,255, +183,255,179,255,182,255,193,255,204,255,202,255,187,255,174,255,169,255,170,255,176,255,188,255,199,255,203,255,199,255,199,255, +204,255,201,255,186,255,184,255,200,255,210,255,199,255,182,255,185,255,205,255,213,255,194,255,174,255,176,255,185,255,184,255, +190,255,207,255,214,255,208,255,205,255,206,255,203,255,201,255,205,255,211,255,225,255,235,255,226,255,209,255,207,255,218,255, +232,255,241,255,234,255,217,255,217,255,235,255,242,255,234,255,223,255,213,255,213,255,226,255,232,255,235,255,253,255,8,0, +245,255,235,255,253,255,2,0,247,255,0,0,18,0,19,0,21,0,24,0,8,0,246,255,242,255,241,255,1,0,36,0, +40,0,7,0,251,255,12,0,16,0,12,0,16,0,21,0,30,0,36,0,25,0,26,0,54,0,55,0,26,0,36,0, +63,0,49,0,23,0,26,0,28,0,34,0,59,0,52,0,15,0,24,0,64,0,61,0,36,0,37,0,47,0,54,0, +67,0,63,0,48,0,55,0,68,0,66,0,71,0,85,0,80,0,63,0,58,0,62,0,76,0,85,0,74,0,72,0, +92,0,86,0,57,0,70,0,100,0,79,0,48,0,68,0,91,0,72,0,54,0,67,0,79,0,71,0,70,0,86,0, +84,0,55,0,47,0,72,0,84,0,74,0,82,0,95,0,83,0,68,0,61,0,54,0,68,0,92,0,75,0,48,0, +67,0,85,0,61,0,58,0,84,0,73,0,43,0,64,0,105,0,99,0,61,0,49,0,76,0,100,0,89,0,71,0, +65,0,56,0,57,0,81,0,83,0,55,0,65,0,98,0,76,0,37,0,66,0,107,0,80,0,41,0,60,0,74,0, +38,0,23,0,63,0,90,0,79,0,63,0,48,0,41,0,68,0,86,0,59,0,49,0,74,0,70,0,45,0,63,0, +89,0,66,0,31,0,33,0,52,0,54,0,43,0,40,0,50,0,53,0,50,0,61,0,73,0,53,0,31,0,52,0, +79,0,59,0,28,0,41,0,62,0,40,0,13,0,25,0,37,0,23,0,26,0,53,0,56,0,39,0,37,0,32,0, +13,0,17,0,38,0,42,0,39,0,38,0,21,0,5,0,11,0,17,0,11,0,12,0,8,0,253,255,4,0,12,0, +1,0,2,0,18,0,1,0,223,255,221,255,231,255,226,255,228,255,236,255,233,255,242,255,1,0,241,255,214,255,213,255, +218,255,219,255,238,255,251,255,235,255,220,255,223,255,227,255,231,255,234,255,220,255,204,255,211,255,224,255,223,255,209,255, +194,255,191,255,202,255,204,255,193,255,194,255,203,255,203,255,211,255,229,255,222,255,192,255,177,255,186,255,198,255,192,255, +177,255,181,255,203,255,192,255,146,255,135,255,178,255,212,255,210,255,201,255,201,255,205,255,198,255,174,255,163,255,192,255, +216,255,204,255,194,255,198,255,183,255,163,255,166,255,176,255,185,255,206,255,215,255,198,255,186,255,186,255,182,255,184,255, +189,255,178,255,173,255,193,255,196,255,171,255,166,255,181,255,188,255,188,255,184,255,169,255,178,255,209,255,204,255,173,255, +178,255,202,255,201,255,198,255,207,255,199,255,186,255,199,255,203,255,181,255,180,255,207,255,216,255,202,255,183,255,166,255, +174,255,207,255,210,255,176,255,175,255,211,255,214,255,192,255,201,255,225,255,225,255,214,255,209,255,213,255,237,255,5,0, +241,255,201,255,182,255,173,255,183,255,227,255,241,255,210,255,218,255,231,255,134,255,45,255,118,255,183,255,83,255,17,255, +128,255,232,255,206,255,158,255,161,255,194,255,231,255,240,255,0,0,73,0,107,0,42,0,13,0,46,0,11,0,242,255, +85,0,131,0,26,0,232,255,29,0,36,0,20,0,33,0,18,0,34,0,109,0,84,0,234,255,248,255,54,0,255,255, +209,255,34,0,98,0,60,0,41,0,99,0,107,0,3,0,191,255,7,0,64,0,11,0,6,0,93,0,102,0,24,0, +0,0,12,0,242,255,241,255,42,0,63,0,0,0,190,255,195,255,238,255,10,0,34,0,52,0,32,0,30,0,101,0, +130,0,36,0,211,255,238,255,24,0,37,0,52,0,28,0,238,255,17,0,67,0,12,0,225,255,45,0,89,0,24,0, +13,0,98,0,138,0,114,0,116,0,120,0,76,0,53,0,101,0,141,0,116,0,88,0,115,0,143,0,127,0,117,0, +137,0,132,0,98,0,81,0,66,0,32,0,26,0,43,0,0,0,171,255,163,255,230,255,5,0,241,255,243,255,5,0, +240,255,214,255,241,255,17,0,3,0,6,0,58,0,71,0,24,0,4,0,14,0,244,255,221,255,246,255,8,0,7,0, +38,0,66,0,41,0,29,0,71,0,88,0,73,0,101,0,147,0,137,0,100,0,91,0,92,0,85,0,86,0,98,0, +102,0,95,0,90,0,85,0,66,0,43,0,54,0,88,0,83,0,52,0,66,0,114,0,119,0,92,0,86,0,80,0, +60,0,69,0,99,0,93,0,70,0,79,0,90,0,66,0,38,0,27,0,19,0,25,0,43,0,31,0,250,255,248,255, +20,0,16,0,244,255,244,255,253,255,237,255,218,255,221,255,222,255,209,255,208,255,229,255,239,255,220,255,205,255,224,255, +239,255,211,255,185,255,205,255,224,255,204,255,181,255,179,255,184,255,198,255,217,255,209,255,185,255,191,255,205,255,191,255, +178,255,190,255,199,255,187,255,168,255,162,255,178,255,192,255,171,255,142,255,145,255,158,255,153,255,156,255,170,255,165,255, +154,255,158,255,154,255,135,255,132,255,139,255,122,255,96,255,108,255,150,255,166,255,142,255,134,255,159,255,169,255,160,255, +176,255,202,255,200,255,194,255,202,255,190,255,167,255,180,255,213,255,217,255,186,255,152,255,160,255,206,255,217,255,179,255, +173,255,208,255,214,255,197,255,207,255,223,255,224,255,228,255,233,255,245,255,14,0,4,0,228,255,6,0,46,0,242,255, +188,255,245,255,31,0,250,255,250,255,25,0,250,255,221,255,7,0,38,0,22,0,7,0,255,255,5,0,46,0,61,0, +22,0,7,0,29,0,26,0,15,0,31,0,32,0,14,0,21,0,29,0,21,0,29,0,40,0,26,0,21,0,33,0, +19,0,5,0,29,0,35,0,2,0,10,0,62,0,67,0,32,0,34,0,56,0,43,0,29,0,49,0,66,0,49,0, +30,0,26,0,19,0,255,255,247,255,21,0,59,0,51,0,14,0,15,0,48,0,47,0,29,0,49,0,73,0,50,0, +24,0,35,0,48,0,42,0,38,0,44,0,49,0,55,0,56,0,45,0,37,0,37,0,35,0,36,0,49,0,58,0, +49,0,42,0,55,0,74,0,73,0,60,0,64,0,79,0,69,0,40,0,30,0,34,0,31,0,31,0,42,0,49,0, +49,0,48,0,50,0,61,0,75,0,70,0,48,0,39,0,46,0,53,0,55,0,49,0,36,0,34,0,44,0,43,0, +37,0,42,0,43,0,39,0,50,0,65,0,56,0,46,0,53,0,57,0,50,0,47,0,40,0,24,0,20,0,29,0, +33,0,30,0,21,0,7,0,4,0,16,0,20,0,8,0,2,0,10,0,21,0,29,0,29,0,17,0,1,0,251,255, +2,0,9,0,6,0,3,0,6,0,5,0,247,255,239,255,245,255,248,255,240,255,232,255,234,255,244,255,251,255,250,255, +249,255,247,255,232,255,216,255,223,255,237,255,233,255,230,255,239,255,236,255,219,255,216,255,224,255,227,255,230,255,227,255, +213,255,208,255,214,255,210,255,200,255,198,255,196,255,190,255,191,255,193,255,192,255,192,255,188,255,177,255,181,255,198,255, +200,255,194,255,204,255,220,255,220,255,208,255,194,255,189,255,197,255,199,255,190,255,189,255,190,255,171,255,158,255,177,255, +190,255,170,255,162,255,183,255,194,255,187,255,191,255,197,255,181,255,159,255,161,255,176,255,175,255,165,255,172,255,187,255, +179,255,161,255,167,255,185,255,188,255,185,255,189,255,190,255,185,255,187,255,189,255,178,255,176,255,196,255,202,255,183,255, +177,255,198,255,211,255,202,255,193,255,193,255,198,255,215,255,225,255,207,255,191,255,210,255,227,255,211,255,199,255,212,255, +215,255,200,255,194,255,197,255,196,255,203,255,216,255,221,255,217,255,213,255,210,255,210,255,218,255,225,255,220,255,214,255, +218,255,224,255,219,255,213,255,224,255,244,255,247,255,234,255,230,255,235,255,240,255,253,255,12,0,8,0,250,255,251,255, +4,0,250,255,238,255,253,255,25,0,25,0,12,0,19,0,25,0,6,0,253,255,7,0,3,0,4,0,37,0,51,0, +24,0,31,0,67,0,59,0,35,0,58,0,81,0,61,0,46,0,55,0,65,0,86,0,96,0,66,0,50,0,87,0, +112,0,93,0,79,0,79,0,72,0,73,0,78,0,70,0,71,0,83,0,74,0,64,0,78,0,83,0,80,0,95,0, +95,0,67,0,72,0,105,0,101,0,83,0,93,0,94,0,73,0,76,0,95,0,88,0,73,0,73,0,76,0,84,0, +97,0,94,0,82,0,84,0,88,0,80,0,77,0,84,0,83,0,77,0,75,0,76,0,76,0,82,0,91,0,92,0, +80,0,70,0,75,0,79,0,66,0,54,0,62,0,72,0,64,0,51,0,54,0,67,0,71,0,61,0,51,0,50,0, +47,0,37,0,35,0,43,0,47,0,43,0,42,0,47,0,45,0,31,0,25,0,38,0,49,0,42,0,33,0,26,0, +17,0,18,0,30,0,28,0,14,0,18,0,30,0,21,0,4,0,5,0,14,0,14,0,6,0,253,255,250,255,244,255, +232,255,232,255,243,255,238,255,228,255,243,255,254,255,238,255,237,255,254,255,247,255,241,255,13,0,23,0,249,255,236,255, +253,255,8,0,11,0,10,0,250,255,241,255,253,255,255,255,241,255,241,255,249,255,254,255,5,0,0,0,239,255,242,255, +4,0,247,255,224,255,233,255,253,255,250,255,236,255,236,255,245,255,242,255,229,255,232,255,253,255,254,255,230,255,221,255, +229,255,227,255,229,255,243,255,243,255,230,255,223,255,218,255,207,255,199,255,196,255,200,255,210,255,207,255,191,255,192,255, +206,255,203,255,199,255,208,255,210,255,197,255,190,255,199,255,215,255,221,255,204,255,187,255,195,255,197,255,177,255,177,255, +203,255,204,255,189,255,202,255,219,255,212,255,204,255,209,255,209,255,208,255,218,255,235,255,248,255,243,255,226,255,223,255, +234,255,239,255,248,255,12,0,16,0,252,255,239,255,243,255,249,255,250,255,241,255,233,255,253,255,22,0,8,0,234,255, +241,255,16,0,21,0,0,0,241,255,246,255,4,0,15,0,21,0,19,0,2,0,239,255,241,255,2,0,1,0,246,255, +250,255,2,0,252,255,248,255,1,0,13,0,12,0,5,0,8,0,19,0,16,0,1,0,2,0,18,0,24,0,17,0, +14,0,16,0,18,0,24,0,26,0,18,0,16,0,29,0,39,0,33,0,23,0,20,0,26,0,33,0,42,0,47,0, +42,0,32,0,33,0,40,0,39,0,40,0,48,0,50,0,43,0,52,0,65,0,58,0,50,0,59,0,63,0,52,0, +49,0,56,0,55,0,49,0,47,0,44,0,42,0,46,0,49,0,47,0,46,0,48,0,44,0,36,0,34,0,38,0, +38,0,29,0,27,0,39,0,45,0,36,0,27,0,27,0,25,0,17,0,13,0,17,0,21,0,19,0,18,0,19,0, +15,0,4,0,4,0,19,0,23,0,11,0,3,0,8,0,14,0,19,0,15,0,2,0,254,255,6,0,4,0,247,255, +242,255,245,255,248,255,3,0,12,0,3,0,250,255,5,0,15,0,12,0,9,0,8,0,2,0,252,255,254,255,254,255, +246,255,236,255,234,255,240,255,243,255,235,255,232,255,236,255,235,255,232,255,236,255,238,255,232,255,236,255,245,255,242,255, +236,255,238,255,236,255,228,255,230,255,234,255,227,255,220,255,220,255,222,255,228,255,233,255,224,255,218,255,234,255,249,255, +241,255,229,255,227,255,225,255,226,255,236,255,242,255,236,255,229,255,222,255,216,255,218,255,227,255,233,255,231,255,223,255, +216,255,221,255,232,255,231,255,222,255,222,255,222,255,214,255,217,255,226,255,220,255,207,255,212,255,224,255,227,255,225,255, +226,255,228,255,233,255,233,255,227,255,230,255,240,255,236,255,224,255,224,255,228,255,219,255,216,255,225,255,227,255,219,255, +212,255,208,255,205,255,209,255,216,255,218,255,219,255,216,255,212,255,220,255,234,255,235,255,227,255,225,255,226,255,224,255, +227,255,227,255,216,255,215,255,236,255,254,255,245,255,231,255,230,255,229,255,220,255,220,255,232,255,235,255,234,255,240,255, +240,255,230,255,234,255,248,255,244,255,236,255,249,255,1,0,242,255,240,255,9,0,18,0,2,0,253,255,9,0,11,0, +1,0,252,255,1,0,9,0,11,0,4,0,4,0,14,0,18,0,13,0,12,0,15,0,12,0,12,0,17,0,9,0, +251,255,253,255,8,0,9,0,11,0,23,0,19,0,0,0,249,255,255,255,0,0,2,0,11,0,13,0,11,0,17,0, +16,0,1,0,250,255,1,0,4,0,7,0,15,0,15,0,14,0,25,0,27,0,14,0,17,0,31,0,25,0,8,0, +2,0,9,0,17,0,18,0,8,0,5,0,16,0,18,0,13,0,22,0,29,0,21,0,18,0,21,0,15,0,14,0, +28,0,32,0,27,0,34,0,39,0,32,0,29,0,27,0,23,0,30,0,43,0,46,0,47,0,46,0,35,0,32,0, +38,0,37,0,42,0,55,0,46,0,26,0,33,0,44,0,38,0,45,0,60,0,52,0,43,0,48,0,43,0,41,0, +54,0,51,0,39,0,50,0,59,0,52,0,62,0,69,0,50,0,49,0,67,0,58,0,55,0,74,0,54,0,21,0, +52,0,89,0,63,0,48,0,68,0,50,0,18,0,36,0,59,0,43,0,39,0,63,0,71,0,48,0,26,0,35,0, +58,0,47,0,18,0,28,0,52,0,33,0,6,0,21,0,38,0,32,0,24,0,22,0,28,0,42,0,42,0,32,0, +35,0,28,0,7,0,19,0,48,0,36,0,18,0,31,0,34,0,17,0,15,0,17,0,17,0,31,0,30,0,8,0, +15,0,33,0,6,0,237,255,2,0,11,0,1,0,19,0,33,0,7,0,245,255,251,255,253,255,6,0,15,0,251,255, +238,255,5,0,12,0,243,255,245,255,11,0,5,0,241,255,240,255,252,255,0,0,250,255,246,255,1,0,7,0,251,255, +251,255,7,0,249,255,229,255,240,255,249,255,229,255,224,255,242,255,239,255,221,255,221,255,229,255,233,255,237,255,236,255, +229,255,224,255,221,255,227,255,235,255,225,255,210,255,219,255,232,255,222,255,214,255,220,255,219,255,223,255,233,255,223,255, +212,255,227,255,235,255,218,255,217,255,228,255,221,255,211,255,216,255,211,255,202,255,209,255,216,255,206,255,201,255,203,255, +203,255,210,255,216,255,207,255,194,255,190,255,189,255,190,255,193,255,188,255,182,255,192,255,204,255,203,255,197,255,198,255, +207,255,209,255,197,255,192,255,209,255,218,255,201,255,196,255,213,255,218,255,207,255,201,255,200,255,202,255,207,255,207,255, +210,255,220,255,211,255,191,255,202,255,223,255,213,255,203,255,221,255,221,255,200,255,207,255,221,255,207,255,199,255,214,255, +215,255,203,255,205,255,209,255,206,255,209,255,214,255,216,255,220,255,221,255,215,255,216,255,220,255,216,255,217,255,224,255, +220,255,214,255,218,255,221,255,220,255,221,255,221,255,218,255,223,255,225,255,220,255,219,255,222,255,220,255,222,255,226,255, +223,255,226,255,236,255,229,255,212,255,215,255,224,255,224,255,231,255,238,255,227,255,222,255,234,255,238,255,231,255,231,255, +232,255,229,255,236,255,243,255,240,255,241,255,242,255,235,255,234,255,241,255,237,255,235,255,252,255,254,255,236,255,235,255, +250,255,253,255,247,255,244,255,242,255,249,255,7,0,6,0,250,255,249,255,247,255,237,255,240,255,251,255,245,255,236,255, +239,255,242,255,242,255,252,255,4,0,0,0,250,255,0,0,9,0,11,0,4,0,0,0,8,0,18,0,15,0,11,0, +12,0,8,0,4,0,7,0,9,0,6,0,8,0,15,0,19,0,22,0,16,0,4,0,8,0,26,0,32,0,23,0, +21,0,25,0,26,0,22,0,18,0,21,0,35,0,43,0,36,0,31,0,31,0,24,0,25,0,47,0,54,0,34,0, +30,0,47,0,44,0,32,0,40,0,46,0,36,0,37,0,50,0,44,0,32,0,38,0,48,0,45,0,46,0,58,0, +65,0,59,0,55,0,61,0,69,0,70,0,67,0,68,0,67,0,59,0,53,0,53,0,56,0,66,0,78,0,77,0, +67,0,67,0,74,0,73,0,71,0,72,0,68,0,61,0,65,0,76,0,80,0,72,0,62,0,63,0,78,0,90,0, +86,0,76,0,74,0,78,0,83,0,84,0,79,0,75,0,76,0,75,0,74,0,79,0,78,0,71,0,76,0,85,0, +72,0,57,0,69,0,84,0,76,0,65,0,69,0,74,0,70,0,69,0,72,0,70,0,61,0,58,0,66,0,67,0, +50,0,39,0,48,0,57,0,53,0,49,0,46,0,39,0,44,0,56,0,53,0,44,0,46,0,48,0,45,0,51,0, +60,0,54,0,43,0,40,0,32,0,18,0,16,0,26,0,27,0,22,0,28,0,39,0,36,0,17,0,9,0,18,0, +23,0,15,0,14,0,21,0,25,0,23,0,18,0,13,0,13,0,13,0,10,0,11,0,14,0,6,0,252,255,0,0, +5,0,253,255,243,255,246,255,253,255,3,0,4,0,252,255,247,255,249,255,243,255,234,255,242,255,253,255,241,255,228,255, +233,255,239,255,231,255,223,255,229,255,239,255,235,255,226,255,229,255,231,255,216,255,208,255,222,255,227,255,216,255,215,255, +219,255,212,255,208,255,216,255,217,255,215,255,221,255,219,255,208,255,207,255,212,255,209,255,207,255,203,255,196,255,205,255, +222,255,218,255,203,255,196,255,195,255,205,255,230,255,236,255,217,255,204,255,202,255,196,255,200,255,213,255,215,255,205,255, +194,255,189,255,202,255,223,255,219,255,199,255,201,255,219,255,232,255,232,255,213,255,202,255,220,255,220,255,185,255,191,255, +232,255,216,255,180,255,208,255,236,255,213,255,221,255,0,0,238,255,205,255,215,255,214,255,195,255,209,255,230,255,221,255, +222,255,236,255,231,255,222,255,219,255,207,255,198,255,202,255,205,255,223,255,243,255,223,255,185,255,186,255,205,255,215,255, +224,255,212,255,192,255,216,255,244,255,217,255,198,255,229,255,249,255,236,255,213,255,175,255,172,255,234,255,9,0,223,255, +199,255,213,255,219,255,228,255,233,255,206,255,189,255,192,255,172,255,163,255,174,255,144,255,151,255,252,255,248,255,85,255, +46,255,177,255,204,255,105,255,92,255,163,255,178,255,141,255,144,255,196,255,212,255,157,255,156,255,21,0,99,0,41,0, +246,255,9,0,11,0,4,0,27,0,33,0,20,0,36,0,39,0,14,0,31,0,57,0,6,0,218,255,24,0,96,0, +71,0,19,0,1,0,229,255,196,255,217,255,17,0,53,0,68,0,75,0,62,0,27,0,247,255,239,255,5,0,21,0, +25,0,58,0,96,0,63,0,1,0,9,0,38,0,10,0,252,255,49,0,67,0,4,0,213,255,229,255,252,255,13,0, +40,0,56,0,52,0,63,0,77,0,39,0,241,255,0,0,48,0,36,0,254,255,5,0,9,0,242,255,9,0,51,0, +19,0,234,255,20,0,52,0,16,0,16,0,76,0,103,0,97,0,100,0,86,0,57,0,61,0,76,0,73,0,84,0, +111,0,121,0,117,0,111,0,107,0,116,0,119,0,89,0,59,0,55,0,40,0,8,0,253,255,237,255,197,255,192,255, +227,255,234,255,216,255,226,255,248,255,249,255,246,255,251,255,248,255,250,255,27,0,63,0,55,0,18,0,3,0,3,0, +232,255,206,255,223,255,243,255,247,255,22,0,48,0,11,0,250,255,53,0,74,0,25,0,40,0,123,0,127,0,66,0, +58,0,86,0,74,0,49,0,54,0,66,0,63,0,57,0,62,0,53,0,15,0,252,255,31,0,62,0,43,0,39,0, +75,0,83,0,50,0,34,0,36,0,35,0,50,0,65,0,45,0,28,0,49,0,66,0,52,0,31,0,19,0,11,0, +14,0,24,0,21,0,0,0,238,255,242,255,249,255,229,255,200,255,197,255,204,255,193,255,190,255,202,255,197,255,189,255, +209,255,235,255,234,255,220,255,216,255,227,255,241,255,230,255,200,255,189,255,192,255,183,255,184,255,212,255,225,255,206,255, +193,255,197,255,205,255,212,255,210,255,204,255,217,255,230,255,213,255,200,255,214,255,213,255,191,255,198,255,220,255,203,255, +171,255,174,255,185,255,166,255,153,255,178,255,198,255,177,255,156,255,166,255,167,255,149,255,150,255,170,255,173,255,166,255, +171,255,178,255,186,255,202,255,206,255,198,255,202,255,205,255,193,255,196,255,207,255,195,255,193,255,221,255,223,255,190,255, +180,255,197,255,205,255,200,255,180,255,159,255,186,255,235,255,228,255,197,255,215,255,237,255,223,255,233,255,18,0,21,0, +249,255,246,255,5,0,7,0,254,255,247,255,252,255,7,0,9,0,8,0,14,0,7,0,245,255,251,255,15,0,24,0, +29,0,39,0,42,0,39,0,36,0,31,0,34,0,42,0,41,0,50,0,68,0,54,0,28,0,50,0,75,0,48,0, +36,0,68,0,66,0,34,0,41,0,60,0,47,0,37,0,47,0,50,0,52,0,52,0,39,0,48,0,83,0,83,0, +48,0,42,0,65,0,74,0,69,0,55,0,32,0,32,0,52,0,45,0,25,0,25,0,27,0,23,0,34,0,41,0, +29,0,33,0,55,0,50,0,28,0,34,0,49,0,39,0,24,0,32,0,48,0,47,0,38,0,37,0,41,0,42,0, +37,0,31,0,31,0,39,0,44,0,37,0,36,0,50,0,52,0,44,0,53,0,63,0,47,0,40,0,59,0,60,0, +32,0,20,0,29,0,37,0,50,0,66,0,62,0,45,0,42,0,52,0,63,0,61,0,46,0,41,0,58,0,71,0, +62,0,50,0,45,0,44,0,45,0,41,0,35,0,45,0,64,0,65,0,51,0,48,0,59,0,70,0,70,0,59,0, +50,0,44,0,37,0,35,0,38,0,32,0,32,0,45,0,43,0,29,0,40,0,48,0,27,0,27,0,55,0,50,0, +28,0,40,0,48,0,23,0,18,0,37,0,31,0,15,0,20,0,25,0,19,0,15,0,17,0,25,0,29,0,10,0, +246,255,255,255,5,0,236,255,227,255,251,255,5,0,243,255,232,255,232,255,232,255,240,255,251,255,242,255,217,255,209,255, +221,255,227,255,219,255,212,255,211,255,209,255,209,255,214,255,209,255,197,255,198,255,199,255,180,255,169,255,186,255,193,255, +176,255,172,255,192,255,203,255,197,255,191,255,191,255,200,255,214,255,212,255,196,255,201,255,219,255,217,255,199,255,190,255, +187,255,185,255,188,255,188,255,176,255,170,255,179,255,190,255,186,255,181,255,192,255,204,255,192,255,167,255,162,255,173,255, +174,255,175,255,190,255,197,255,177,255,162,255,173,255,189,255,187,255,185,255,191,255,183,255,166,255,173,255,194,255,183,255, +166,255,194,255,223,255,198,255,170,255,184,255,195,255,181,255,182,255,189,255,180,255,186,255,206,255,198,255,182,255,200,255, +212,255,191,255,181,255,200,255,205,255,187,255,184,255,205,255,222,255,211,255,190,255,194,255,210,255,204,255,192,255,202,255, +211,255,204,255,206,255,213,255,205,255,201,255,211,255,214,255,213,255,224,255,227,255,220,255,228,255,240,255,240,255,242,255, +247,255,243,255,246,255,5,0,0,0,236,255,237,255,0,0,6,0,0,0,250,255,244,255,246,255,253,255,252,255,245,255, +245,255,255,255,14,0,23,0,22,0,25,0,41,0,46,0,31,0,20,0,22,0,27,0,36,0,46,0,48,0,50,0, +60,0,55,0,36,0,31,0,49,0,62,0,60,0,52,0,53,0,68,0,75,0,60,0,51,0,63,0,71,0,63,0, +60,0,62,0,56,0,51,0,56,0,55,0,51,0,57,0,65,0,61,0,53,0,57,0,63,0,64,0,62,0,62,0, +64,0,67,0,65,0,66,0,76,0,81,0,71,0,64,0,72,0,69,0,52,0,52,0,67,0,66,0,62,0,75,0, +73,0,47,0,38,0,58,0,68,0,64,0,67,0,65,0,50,0,50,0,58,0,51,0,43,0,54,0,60,0,49,0, +43,0,52,0,54,0,43,0,33,0,37,0,46,0,43,0,38,0,49,0,64,0,60,0,44,0,42,0,50,0,54,0, +54,0,53,0,52,0,46,0,36,0,29,0,34,0,38,0,30,0,23,0,22,0,21,0,16,0,8,0,253,255,254,255, +13,0,11,0,251,255,0,0,18,0,9,0,247,255,254,255,8,0,2,0,8,0,24,0,19,0,3,0,4,0,10,0, +6,0,5,0,13,0,17,0,14,0,9,0,6,0,10,0,17,0,13,0,253,255,241,255,241,255,246,255,251,255,254,255, +253,255,248,255,245,255,252,255,7,0,0,0,238,255,240,255,2,0,252,255,231,255,233,255,252,255,247,255,229,255,231,255, +242,255,236,255,220,255,216,255,223,255,228,255,230,255,233,255,237,255,230,255,215,255,215,255,231,255,237,255,231,255,225,255, +219,255,212,255,209,255,205,255,201,255,209,255,223,255,225,255,220,255,215,255,199,255,190,255,212,255,234,255,225,255,213,255, +221,255,218,255,205,255,210,255,219,255,210,255,207,255,221,255,227,255,222,255,218,255,206,255,195,255,210,255,237,255,245,255, +237,255,232,255,227,255,222,255,222,255,219,255,212,255,216,255,235,255,240,255,217,255,200,255,221,255,245,255,229,255,204,255, +213,255,229,255,219,255,212,255,228,255,235,255,222,255,219,255,227,255,231,255,231,255,230,255,224,255,222,255,222,255,211,255, +198,255,205,255,223,255,227,255,219,255,218,255,222,255,227,255,233,255,235,255,228,255,226,255,239,255,249,255,240,255,229,255, +235,255,247,255,251,255,253,255,250,255,239,255,233,255,245,255,6,0,10,0,4,0,6,0,12,0,12,0,5,0,255,255, +249,255,252,255,19,0,43,0,40,0,23,0,23,0,30,0,22,0,21,0,44,0,57,0,41,0,25,0,33,0,46,0, +46,0,43,0,50,0,59,0,57,0,52,0,46,0,29,0,18,0,38,0,56,0,45,0,36,0,46,0,37,0,18,0, +33,0,53,0,43,0,34,0,41,0,26,0,8,0,28,0,46,0,25,0,3,0,13,0,30,0,31,0,14,0,252,255, +2,0,19,0,17,0,15,0,30,0,27,0,4,0,7,0,22,0,5,0,242,255,254,255,6,0,251,255,252,255,6,0, +3,0,254,255,1,0,255,255,249,255,253,255,4,0,251,255,231,255,226,255,241,255,253,255,251,255,251,255,1,0,0,0, +252,255,249,255,236,255,231,255,246,255,253,255,240,255,242,255,251,255,232,255,217,255,238,255,254,255,240,255,232,255,236,255, +232,255,234,255,246,255,243,255,233,255,245,255,5,0,0,0,241,255,235,255,235,255,238,255,241,255,244,255,244,255,237,255, +230,255,230,255,228,255,223,255,232,255,249,255,248,255,234,255,234,255,236,255,227,255,231,255,254,255,5,0,243,255,232,255, +237,255,238,255,232,255,237,255,242,255,226,255,216,255,234,255,252,255,242,255,229,255,232,255,232,255,228,255,234,255,238,255, +237,255,245,255,247,255,233,255,229,255,242,255,248,255,252,255,1,0,251,255,243,255,251,255,252,255,237,255,237,255,250,255, +252,255,250,255,251,255,242,255,234,255,241,255,243,255,238,255,243,255,247,255,250,255,11,0,16,0,249,255,241,255,1,0, +255,255,251,255,15,0,23,0,1,0,250,255,5,0,6,0,4,0,10,0,5,0,254,255,8,0,16,0,7,0,254,255, +251,255,251,255,0,0,11,0,25,0,25,0,7,0,0,0,18,0,23,0,1,0,254,255,16,0,16,0,14,0,31,0, +28,0,8,0,15,0,27,0,15,0,12,0,24,0,21,0,21,0,35,0,30,0,13,0,18,0,19,0,2,0,4,0, +16,0,7,0,4,0,13,0,2,0,245,255,5,0,11,0,250,255,2,0,22,0,13,0,252,255,0,0,253,255,241,255, +248,255,8,0,6,0,254,255,252,255,249,255,242,255,246,255,6,0,11,0,254,255,246,255,249,255,246,255,244,255,255,255, +3,0,247,255,250,255,10,0,3,0,239,255,238,255,248,255,250,255,247,255,249,255,249,255,245,255,240,255,250,255,20,0, +22,0,251,255,248,255,15,0,13,0,1,0,17,0,32,0,22,0,17,0,24,0,22,0,21,0,26,0,21,0,20,0, +37,0,48,0,41,0,35,0,35,0,34,0,34,0,35,0,33,0,29,0,21,0,17,0,25,0,29,0,25,0,37,0, +48,0,36,0,33,0,52,0,47,0,19,0,21,0,41,0,38,0,27,0,27,0,30,0,40,0,50,0,35,0,14,0, +19,0,31,0,33,0,34,0,37,0,42,0,52,0,46,0,21,0,9,0,17,0,26,0,39,0,36,0,2,0,248,255, +22,0,21,0,249,255,10,0,29,0,251,255,236,255,18,0,24,0,248,255,248,255,8,0,4,0,3,0,9,0,2,0, +0,0,4,0,246,255,241,255,1,0,247,255,219,255,235,255,12,0,1,0,230,255,240,255,1,0,242,255,222,255,230,255, +246,255,242,255,232,255,237,255,236,255,221,255,221,255,236,255,228,255,209,255,212,255,225,255,229,255,227,255,215,255,203,255, +219,255,238,255,220,255,204,255,229,255,244,255,231,255,233,255,249,255,235,255,212,255,220,255,244,255,0,0,247,255,223,255, +212,255,222,255,224,255,212,255,218,255,234,255,229,255,217,255,225,255,228,255,214,255,213,255,231,255,231,255,210,255,210,255, +228,255,224,255,197,255,194,255,217,255,226,255,217,255,222,255,231,255,214,255,191,255,196,255,216,255,220,255,218,255,224,255, +229,255,224,255,219,255,219,255,219,255,215,255,213,255,211,255,204,255,202,255,217,255,228,255,223,255,217,255,223,255,226,255, +221,255,216,255,213,255,217,255,228,255,225,255,208,255,206,255,216,255,214,255,207,255,210,255,208,255,201,255,208,255,225,255, +228,255,226,255,225,255,222,255,226,255,238,255,240,255,232,255,227,255,222,255,218,255,231,255,243,255,232,255,220,255,230,255, +239,255,233,255,231,255,235,255,232,255,227,255,228,255,234,255,238,255,237,255,239,255,247,255,246,255,234,255,228,255,237,255, +245,255,242,255,233,255,228,255,238,255,252,255,247,255,234,255,237,255,239,255,233,255,239,255,248,255,236,255,231,255,251,255, +2,0,238,255,228,255,235,255,238,255,237,255,235,255,231,255,235,255,238,255,227,255,222,255,234,255,238,255,231,255,238,255, +244,255,227,255,215,255,223,255,225,255,225,255,234,255,238,255,230,255,226,255,228,255,230,255,238,255,242,255,235,255,231,255, +236,255,237,255,236,255,238,255,234,255,229,255,235,255,240,255,237,255,235,255,234,255,234,255,237,255,236,255,233,255,240,255, +249,255,246,255,238,255,241,255,248,255,251,255,250,255,245,255,241,255,249,255,255,255,253,255,254,255,3,0,4,0,2,0, +0,0,252,255,250,255,249,255,244,255,246,255,1,0,2,0,249,255,1,0,15,0,9,0,1,0,11,0,17,0,13,0, +19,0,26,0,18,0,10,0,17,0,24,0,22,0,18,0,14,0,9,0,9,0,17,0,23,0,20,0,17,0,24,0, +28,0,20,0,16,0,25,0,29,0,24,0,27,0,31,0,28,0,26,0,32,0,36,0,37,0,44,0,47,0,40,0, +35,0,35,0,40,0,43,0,41,0,37,0,42,0,49,0,47,0,43,0,44,0,44,0,45,0,49,0,47,0,43,0, +46,0,51,0,51,0,52,0,56,0,57,0,59,0,62,0,59,0,57,0,62,0,63,0,62,0,65,0,63,0,54,0, +54,0,62,0,62,0,59,0,59,0,58,0,60,0,63,0,59,0,54,0,60,0,59,0,46,0,44,0,60,0,66,0, +55,0,51,0,57,0,57,0,54,0,54,0,53,0,49,0,47,0,53,0,57,0,49,0,38,0,38,0,40,0,37,0, +39,0,44,0,39,0,35,0,38,0,34,0,27,0,38,0,51,0,43,0,33,0,40,0,45,0,40,0,39,0,40,0, +35,0,34,0,41,0,40,0,31,0,26,0,24,0,21,0,20,0,22,0,24,0,26,0,26,0,23,0,19,0,21,0, +32,0,41,0,40,0,33,0,33,0,35,0,31,0,26,0,24,0,22,0,23,0,27,0,23,0,14,0,14,0,21,0, +22,0,19,0,21,0,23,0,18,0,17,0,22,0,23,0,17,0,15,0,18,0,18,0,17,0,18,0,19,0,15,0, +12,0,11,0,9,0,3,0,255,255,3,0,12,0,12,0,254,255,248,255,3,0,12,0,5,0,253,255,254,255,1,0, +5,0,7,0,0,0,246,255,249,255,254,255,246,255,240,255,246,255,244,255,229,255,227,255,240,255,242,255,231,255,230,255, +240,255,238,255,221,255,213,255,220,255,223,255,218,255,217,255,218,255,215,255,215,255,221,255,220,255,219,255,221,255,215,255, +204,255,211,255,224,255,220,255,211,255,215,255,220,255,220,255,220,255,219,255,214,255,216,255,222,255,217,255,205,255,205,255, +218,255,227,255,221,255,206,255,206,255,223,255,235,255,227,255,218,255,220,255,224,255,224,255,225,255,226,255,225,255,227,255, +231,255,226,255,217,255,219,255,231,255,235,255,228,255,226,255,230,255,231,255,230,255,228,255,221,255,219,255,233,255,241,255, +227,255,218,255,231,255,242,255,234,255,227,255,234,255,237,255,232,255,234,255,234,255,218,255,209,255,225,255,235,255,222,255, +220,255,233,255,226,255,207,255,214,255,229,255,224,255,222,255,232,255,232,255,235,255,250,255,243,255,214,255,207,255,218,255, +223,255,230,255,239,255,229,255,217,255,221,255,221,255,215,255,221,255,229,255,231,255,239,255,237,255,218,255,214,255,233,255, +241,255,229,255,224,255,237,255,249,255,235,255,214,255,232,255,241,255,168,255,109,255,166,255,217,255,144,255,82,255,140,255, +214,255,221,255,198,255,181,255,191,255,230,255,248,255,255,255,49,0,83,0,41,0,21,0,63,0,64,0,26,0,40,0, +67,0,44,0,18,0,31,0,48,0,43,0,19,0,14,0,54,0,85,0,78,0,73,0,54,0,244,255,209,255,244,255, +24,0,43,0,77,0,116,0,136,0,92,0,230,255,196,255,73,0,144,0,29,0,216,255,32,0,44,0,244,255,38,0, +109,0,30,0,190,255,244,255,51,0,243,255,188,255,232,255,14,0,12,0,40,0,51,0,0,0,244,255,50,0,77,0, +45,0,42,0,61,0,40,0,4,0,255,255,244,255,213,255,218,255,9,0,7,0,198,255,179,255,249,255,52,0,44,0, +25,0,29,0,57,0,104,0,106,0,37,0,4,0,59,0,85,0,50,0,47,0,72,0,55,0,38,0,64,0,72,0, +43,0,31,0,30,0,10,0,243,255,235,255,233,255,223,255,201,255,188,255,206,255,227,255,221,255,224,255,240,255,222,255, +192,255,210,255,237,255,222,255,209,255,239,255,10,0,3,0,248,255,249,255,236,255,200,255,182,255,210,255,250,255,11,0, +18,0,20,0,3,0,3,0,36,0,55,0,45,0,50,0,56,0,26,0,11,0,48,0,61,0,21,0,15,0,58,0, +66,0,32,0,26,0,35,0,16,0,7,0,31,0,32,0,1,0,12,0,59,0,72,0,57,0,55,0,48,0,29,0, +34,0,51,0,42,0,28,0,36,0,48,0,42,0,26,0,13,0,14,0,18,0,2,0,235,255,239,255,0,0,5,0, +255,255,242,255,226,255,223,255,223,255,213,255,211,255,219,255,216,255,217,255,233,255,229,255,210,255,212,255,218,255,210,255, +219,255,240,255,230,255,207,255,203,255,193,255,176,255,179,255,198,255,213,255,217,255,203,255,191,255,205,255,211,255,196,255, +210,255,236,255,213,255,186,255,206,255,213,255,183,255,180,255,193,255,177,255,169,255,186,255,181,255,161,255,172,255,188,255, +177,255,166,255,175,255,183,255,173,255,155,255,153,255,171,255,183,255,178,255,176,255,185,255,196,255,210,255,206,255,184,255, +196,255,238,255,233,255,193,255,194,255,216,255,207,255,200,255,223,255,231,255,213,255,208,255,213,255,210,255,216,255,233,255, +242,255,243,255,245,255,246,255,246,255,248,255,251,255,4,0,14,0,11,0,253,255,245,255,253,255,12,0,18,0,11,0, +12,0,27,0,32,0,26,0,30,0,31,0,19,0,19,0,38,0,52,0,53,0,48,0,42,0,43,0,46,0,43,0, +44,0,53,0,43,0,26,0,41,0,70,0,63,0,42,0,47,0,59,0,53,0,49,0,59,0,64,0,52,0,38,0, +44,0,56,0,50,0,42,0,57,0,64,0,42,0,30,0,42,0,47,0,46,0,53,0,53,0,44,0,48,0,49,0, +36,0,31,0,30,0,16,0,14,0,31,0,29,0,13,0,18,0,31,0,33,0,38,0,45,0,39,0,33,0,34,0, +31,0,33,0,37,0,30,0,28,0,43,0,43,0,25,0,27,0,44,0,44,0,35,0,34,0,37,0,45,0,53,0, +42,0,36,0,53,0,64,0,57,0,58,0,59,0,47,0,48,0,63,0,57,0,43,0,52,0,64,0,60,0,57,0, +58,0,54,0,54,0,63,0,71,0,73,0,65,0,50,0,54,0,70,0,63,0,45,0,51,0,62,0,49,0,38,0, +46,0,53,0,56,0,59,0,53,0,42,0,43,0,50,0,50,0,52,0,53,0,41,0,29,0,33,0,37,0,30,0, +24,0,26,0,29,0,30,0,34,0,37,0,33,0,26,0,27,0,35,0,35,0,25,0,19,0,20,0,20,0,15,0, +10,0,7,0,9,0,8,0,255,255,246,255,250,255,6,0,5,0,252,255,251,255,253,255,244,255,232,255,234,255,244,255, +248,255,245,255,240,255,233,255,230,255,230,255,228,255,225,255,229,255,229,255,219,255,216,255,224,255,222,255,212,255,214,255, +221,255,214,255,203,255,203,255,200,255,193,255,190,255,190,255,189,255,189,255,187,255,184,255,194,255,209,255,203,255,188,255, +194,255,210,255,210,255,202,255,205,255,216,255,221,255,212,255,200,255,200,255,206,255,205,255,206,255,211,255,204,255,192,255, +199,255,213,255,208,255,196,255,198,255,204,255,207,255,210,255,208,255,200,255,200,255,203,255,202,255,204,255,205,255,200,255, +195,255,193,255,188,255,189,255,201,255,205,255,200,255,201,255,200,255,192,255,195,255,203,255,194,255,185,255,197,255,204,255, +198,255,199,255,203,255,198,255,199,255,209,255,208,255,200,255,201,255,204,255,204,255,199,255,191,255,192,255,203,255,202,255, +190,255,196,255,210,255,205,255,196,255,202,255,208,255,207,255,203,255,199,255,195,255,201,255,209,255,209,255,206,255,199,255, +194,255,205,255,224,255,230,255,224,255,216,255,212,255,216,255,223,255,222,255,224,255,239,255,247,255,238,255,235,255,238,255, +233,255,232,255,243,255,251,255,251,255,251,255,248,255,246,255,249,255,248,255,241,255,244,255,253,255,255,255,4,0,14,0, +16,0,15,0,16,0,16,0,19,0,24,0,25,0,29,0,40,0,39,0,31,0,36,0,44,0,38,0,43,0,61,0, +65,0,60,0,62,0,61,0,56,0,57,0,51,0,43,0,56,0,73,0,66,0,60,0,68,0,64,0,52,0,57,0, +63,0,59,0,60,0,63,0,62,0,66,0,68,0,62,0,66,0,75,0,69,0,65,0,80,0,88,0,78,0,75,0, +80,0,81,0,81,0,75,0,64,0,70,0,84,0,79,0,73,0,85,0,85,0,69,0,69,0,81,0,79,0,74,0, +79,0,81,0,74,0,64,0,53,0,52,0,60,0,57,0,49,0,57,0,66,0,61,0,54,0,50,0,44,0,44,0, +54,0,56,0,50,0,50,0,55,0,55,0,52,0,41,0,30,0,32,0,41,0,43,0,37,0,31,0,24,0,17,0, +12,0,10,0,10,0,11,0,10,0,9,0,7,0,6,0,9,0,12,0,9,0,7,0,12,0,17,0,14,0,11,0, +10,0,9,0,9,0,8,0,4,0,6,0,13,0,9,0,0,0,0,0,4,0,4,0,6,0,10,0,8,0,4,0, +255,255,255,255,8,0,11,0,255,255,250,255,5,0,10,0,4,0,5,0,6,0,2,0,3,0,4,0,251,255,251,255, +2,0,253,255,243,255,247,255,253,255,253,255,1,0,0,0,243,255,236,255,241,255,245,255,253,255,4,0,251,255,241,255, +248,255,251,255,242,255,240,255,246,255,244,255,241,255,239,255,230,255,227,255,234,255,234,255,230,255,231,255,232,255,231,255, +236,255,238,255,230,255,225,255,224,255,220,255,223,255,235,255,237,255,230,255,224,255,217,255,216,255,229,255,238,255,234,255, +234,255,239,255,232,255,224,255,225,255,222,255,215,255,222,255,232,255,230,255,223,255,220,255,218,255,217,255,217,255,215,255, +215,255,217,255,218,255,217,255,218,255,218,255,218,255,221,255,222,255,221,255,222,255,225,255,224,255,221,255,220,255,216,255, +213,255,214,255,212,255,210,255,218,255,228,255,228,255,224,255,225,255,225,255,223,255,224,255,228,255,230,255,228,255,226,255, +228,255,233,255,234,255,233,255,237,255,244,255,245,255,244,255,246,255,251,255,252,255,253,255,255,255,254,255,252,255,251,255, +251,255,251,255,254,255,1,0,2,0,2,0,1,0,255,255,254,255,2,0,6,0,10,0,15,0,16,0,9,0,5,0, +8,0,10,0,11,0,19,0,26,0,23,0,16,0,13,0,15,0,17,0,13,0,11,0,19,0,27,0,20,0,11,0, +11,0,14,0,12,0,11,0,11,0,11,0,16,0,17,0,8,0,3,0,8,0,10,0,5,0,0,0,248,255,243,255, +250,255,2,0,254,255,247,255,247,255,246,255,244,255,246,255,245,255,236,255,233,255,238,255,249,255,2,0,253,255,240,255, +242,255,254,255,255,255,244,255,240,255,240,255,239,255,242,255,247,255,245,255,243,255,242,255,241,255,241,255,242,255,239,255, +237,255,241,255,239,255,232,255,231,255,238,255,241,255,238,255,236,255,235,255,238,255,242,255,239,255,230,255,229,255,235,255, +241,255,244,255,244,255,240,255,237,255,236,255,235,255,235,255,241,255,247,255,244,255,242,255,247,255,249,255,242,255,238,255, +248,255,4,0,2,0,245,255,233,255,232,255,241,255,246,255,244,255,245,255,244,255,235,255,228,255,237,255,249,255,252,255, +247,255,241,255,238,255,244,255,249,255,248,255,251,255,0,0,253,255,245,255,246,255,248,255,246,255,243,255,241,255,238,255, +244,255,250,255,245,255,240,255,247,255,253,255,253,255,2,0,3,0,250,255,246,255,251,255,253,255,253,255,253,255,251,255, +254,255,6,0,0,0,245,255,253,255,10,0,6,0,255,255,1,0,3,0,4,0,5,0,0,0,252,255,2,0,4,0, +254,255,254,255,3,0,4,0,8,0,13,0,6,0,0,0,7,0,10,0,7,0,13,0,20,0,16,0,11,0,12,0, +15,0,16,0,13,0,6,0,10,0,26,0,29,0,20,0,18,0,17,0,10,0,8,0,15,0,22,0,24,0,22,0, +20,0,25,0,31,0,29,0,25,0,26,0,27,0,29,0,36,0,37,0,28,0,25,0,36,0,45,0,42,0,34,0, +34,0,47,0,52,0,42,0,35,0,42,0,42,0,32,0,29,0,37,0,45,0,50,0,51,0,45,0,38,0,34,0, +35,0,46,0,52,0,41,0,35,0,47,0,51,0,35,0,24,0,28,0,34,0,39,0,41,0,39,0,41,0,41,0, +31,0,28,0,40,0,41,0,30,0,33,0,46,0,48,0,45,0,41,0,31,0,28,0,35,0,32,0,21,0,20,0, +22,0,22,0,29,0,31,0,25,0,27,0,31,0,23,0,23,0,39,0,41,0,26,0,23,0,32,0,36,0,33,0, +29,0,29,0,41,0,46,0,31,0,21,0,30,0,32,0,20,0,20,0,29,0,31,0,29,0,26,0,22,0,23,0, +28,0,29,0,26,0,22,0,15,0,13,0,27,0,35,0,21,0,4,0,6,0,16,0,19,0,15,0,11,0,15,0, +20,0,16,0,6,0,4,0,12,0,20,0,19,0,14,0,14,0,15,0,11,0,8,0,11,0,14,0,15,0,12,0, +9,0,11,0,15,0,10,0,2,0,2,0,6,0,5,0,7,0,16,0,19,0,16,0,11,0,3,0,3,0,18,0, +25,0,15,0,9,0,8,0,4,0,6,0,10,0,255,255,247,255,5,0,13,0,6,0,8,0,10,0,254,255,250,255, +5,0,10,0,13,0,15,0,2,0,243,255,245,255,247,255,239,255,241,255,241,255,231,255,236,255,247,255,235,255,224,255, +235,255,237,255,225,255,224,255,225,255,222,255,232,255,235,255,217,255,217,255,232,255,220,255,205,255,220,255,230,255,219,255, +223,255,233,255,220,255,213,255,225,255,229,255,221,255,216,255,211,255,211,255,223,255,223,255,211,255,216,255,220,255,203,255, +195,255,212,255,219,255,209,255,201,255,201,255,207,255,215,255,208,255,195,255,203,255,214,255,205,255,200,255,212,255,212,255, +200,255,199,255,204,255,203,255,206,255,211,255,208,255,207,255,214,255,216,255,209,255,205,255,211,255,219,255,221,255,217,255, +213,255,213,255,216,255,216,255,213,255,218,255,230,255,235,255,228,255,223,255,226,255,231,255,232,255,226,255,216,255,221,255, +237,255,239,255,227,255,227,255,235,255,227,255,223,255,234,255,236,255,226,255,232,255,244,255,240,255,239,255,254,255,2,0, +243,255,233,255,239,255,249,255,247,255,236,255,233,255,244,255,251,255,249,255,247,255,244,255,237,255,239,255,245,255,244,255, +243,255,245,255,238,255,233,255,244,255,249,255,241,255,240,255,241,255,235,255,237,255,246,255,243,255,234,255,242,255,252,255, +246,255,238,255,236,255,235,255,237,255,241,255,245,255,248,255,243,255,234,255,236,255,247,255,247,255,243,255,248,255,245,255, +236,255,239,255,246,255,238,255,228,255,229,255,230,255,233,255,239,255,238,255,237,255,242,255,238,255,227,255,230,255,239,255, +236,255,235,255,244,255,245,255,239,255,240,255,240,255,236,255,238,255,245,255,247,255,249,255,249,255,243,255,239,255,244,255, +247,255,249,255,252,255,253,255,254,255,255,255,250,255,240,255,238,255,243,255,248,255,255,255,4,0,0,0,251,255,254,255, +1,0,4,0,9,0,9,0,4,0,10,0,22,0,20,0,8,0,2,0,7,0,10,0,7,0,5,0,7,0,9,0, +7,0,6,0,12,0,17,0,18,0,20,0,21,0,15,0,10,0,13,0,22,0,27,0,23,0,17,0,17,0,21,0, +21,0,18,0,19,0,21,0,17,0,16,0,19,0,23,0,25,0,28,0,29,0,29,0,28,0,26,0,26,0,31,0, +34,0,35,0,36,0,34,0,30,0,31,0,35,0,34,0,28,0,30,0,37,0,37,0,30,0,30,0,38,0,41,0, +36,0,33,0,36,0,38,0,36,0,36,0,41,0,45,0,43,0,40,0,39,0,37,0,36,0,40,0,44,0,41,0, +34,0,34,0,40,0,46,0,46,0,40,0,38,0,48,0,52,0,39,0,32,0,39,0,41,0,34,0,37,0,47,0, +45,0,41,0,46,0,47,0,39,0,38,0,41,0,38,0,41,0,48,0,46,0,38,0,37,0,38,0,37,0,40,0, +45,0,43,0,37,0,38,0,40,0,39,0,36,0,35,0,36,0,34,0,31,0,37,0,44,0,38,0,26,0,26,0, +29,0,22,0,19,0,29,0,30,0,19,0,19,0,28,0,26,0,19,0,22,0,22,0,15,0,15,0,23,0,25,0, +20,0,17,0,11,0,5,0,9,0,14,0,11,0,7,0,10,0,12,0,9,0,6,0,7,0,7,0,8,0,10,0, +7,0,1,0,0,0,255,255,246,255,238,255,244,255,254,255,249,255,235,255,237,255,249,255,251,255,244,255,242,255,245,255, +245,255,243,255,247,255,251,255,248,255,244,255,244,255,246,255,244,255,239,255,240,255,245,255,242,255,233,255,233,255,241,255, +244,255,238,255,232,255,232,255,236,255,239,255,240,255,239,255,237,255,232,255,231,255,242,255,251,255,246,255,238,255,236,255, +237,255,238,255,242,255,241,255,235,255,234,255,241,255,243,255,235,255,226,255,227,255,240,255,246,255,235,255,224,255,227,255, +232,255,230,255,232,255,236,255,231,255,227,255,233,255,242,255,248,255,250,255,245,255,235,255,233,255,239,255,239,255,238,255, +243,255,245,255,238,255,234,255,241,255,248,255,249,255,247,255,245,255,240,255,235,255,242,255,252,255,251,255,244,255,246,255, +249,255,244,255,242,255,253,255,5,0,0,0,247,255,244,255,247,255,0,0,2,0,247,255,236,255,244,255,2,0,1,0, +245,255,244,255,252,255,253,255,245,255,244,255,251,255,252,255,246,255,242,255,242,255,245,255,245,255,241,255,238,255,241,255, +240,255,237,255,245,255,251,255,242,255,238,255,248,255,245,255,230,255,242,255,6,0,250,255,238,255,253,255,253,255,225,255, +218,255,236,255,242,255,244,255,0,0,251,255,234,255,243,255,9,0,2,0,241,255,243,255,247,255,241,255,236,255,241,255, +248,255,250,255,251,255,252,255,249,255,240,255,242,255,6,0,15,0,3,0,254,255,253,255,237,255,243,255,22,0,20,0, +237,255,237,255,6,0,253,255,244,255,0,0,239,255,229,255,21,0,18,0,174,255,142,255,224,255,233,255,147,255,146,255, +238,255,14,0,232,255,212,255,223,255,239,255,0,0,16,0,40,0,63,0,53,0,33,0,46,0,53,0,28,0,32,0, +68,0,54,0,12,0,25,0,62,0,57,0,41,0,49,0,54,0,49,0,61,0,79,0,72,0,42,0,10,0,249,255, +250,255,15,0,44,0,62,0,59,0,45,0,30,0,10,0,250,255,0,0,21,0,35,0,44,0,46,0,39,0,33,0, +30,0,10,0,241,255,255,255,33,0,25,0,241,255,235,255,0,0,246,255,223,255,247,255,33,0,36,0,27,0,29,0, +4,0,229,255,0,0,31,0,250,255,219,255,254,255,16,0,237,255,224,255,229,255,203,255,198,255,249,255,15,0,246,255, +249,255,20,0,19,0,20,0,39,0,30,0,11,0,33,0,58,0,41,0,22,0,35,0,46,0,40,0,46,0,68,0, +78,0,61,0,39,0,26,0,12,0,252,255,252,255,249,255,216,255,191,255,209,255,221,255,198,255,196,255,222,255,222,255, +207,255,219,255,227,255,207,255,207,255,236,255,246,255,234,255,232,255,240,255,239,255,228,255,201,255,177,255,194,255,242,255, +7,0,243,255,226,255,237,255,255,255,6,0,12,0,28,0,41,0,40,0,35,0,32,0,21,0,14,0,26,0,36,0, +34,0,39,0,47,0,28,0,1,0,2,0,15,0,11,0,8,0,19,0,24,0,27,0,41,0,50,0,30,0,10,0, +19,0,39,0,34,0,14,0,14,0,32,0,39,0,30,0,21,0,10,0,252,255,249,255,4,0,12,0,2,0,245,255, +245,255,254,255,248,255,230,255,224,255,231,255,224,255,209,255,213,255,220,255,207,255,202,255,223,255,236,255,222,255,213,255, +227,255,240,255,238,255,228,255,220,255,216,255,211,255,206,255,207,255,212,255,213,255,217,255,228,255,226,255,206,255,193,255, +196,255,208,255,224,255,233,255,222,255,212,255,223,255,226,255,210,255,205,255,216,255,213,255,206,255,208,255,201,255,189,255, +198,255,210,255,196,255,184,255,195,255,198,255,186,255,189,255,201,255,195,255,186,255,195,255,205,255,206,255,207,255,211,255, +215,255,222,255,224,255,218,255,214,255,215,255,217,255,222,255,233,255,236,255,230,255,225,255,222,255,217,255,216,255,223,255, +230,255,233,255,232,255,228,255,226,255,232,255,237,255,237,255,242,255,255,255,0,0,242,255,236,255,247,255,255,255,251,255, +247,255,251,255,6,0,13,0,11,0,8,0,10,0,11,0,12,0,21,0,29,0,23,0,17,0,27,0,36,0,31,0, +28,0,31,0,26,0,24,0,42,0,50,0,33,0,23,0,35,0,40,0,33,0,37,0,47,0,43,0,39,0,43,0, +41,0,29,0,28,0,37,0,37,0,30,0,26,0,32,0,39,0,38,0,30,0,26,0,36,0,50,0,53,0,43,0, +35,0,39,0,44,0,39,0,30,0,32,0,38,0,37,0,34,0,33,0,34,0,40,0,51,0,52,0,43,0,42,0, +49,0,53,0,52,0,50,0,43,0,37,0,41,0,47,0,46,0,42,0,43,0,51,0,57,0,52,0,41,0,38,0, +48,0,56,0,57,0,59,0,62,0,64,0,63,0,60,0,55,0,52,0,48,0,44,0,45,0,52,0,55,0,49,0, +40,0,35,0,44,0,59,0,59,0,50,0,52,0,55,0,42,0,34,0,45,0,48,0,32,0,23,0,28,0,30,0, +30,0,32,0,26,0,19,0,22,0,25,0,22,0,23,0,28,0,25,0,23,0,25,0,24,0,18,0,11,0,9,0, +10,0,13,0,15,0,16,0,16,0,8,0,0,0,4,0,10,0,8,0,8,0,9,0,3,0,1,0,6,0,1,0, +246,255,247,255,250,255,239,255,235,255,245,255,246,255,235,255,232,255,236,255,244,255,254,255,247,255,226,255,226,255,245,255, +243,255,228,255,233,255,242,255,229,255,214,255,221,255,238,255,241,255,226,255,212,255,218,255,231,255,232,255,228,255,231,255, +223,255,209,255,214,255,224,255,214,255,205,255,210,255,205,255,192,255,195,255,205,255,202,255,202,255,211,255,214,255,214,255, +213,255,203,255,198,255,212,255,226,255,222,255,218,255,221,255,217,255,214,255,215,255,209,255,203,255,214,255,223,255,209,255, +196,255,202,255,212,255,213,255,211,255,213,255,220,255,224,255,216,255,203,255,199,255,204,255,207,255,214,255,218,255,205,255, +187,255,191,255,206,255,208,255,203,255,205,255,209,255,208,255,209,255,212,255,210,255,206,255,205,255,210,255,213,255,210,255, +209,255,212,255,215,255,209,255,202,255,206,255,217,255,218,255,213,255,212,255,216,255,215,255,212,255,215,255,219,255,217,255, +214,255,220,255,224,255,220,255,214,255,213,255,212,255,213,255,219,255,222,255,214,255,205,255,208,255,215,255,218,255,220,255, +220,255,215,255,216,255,226,255,230,255,221,255,215,255,224,255,230,255,229,255,231,255,237,255,237,255,232,255,237,255,249,255, +1,0,0,0,252,255,251,255,254,255,2,0,3,0,255,255,253,255,0,0,0,0,250,255,250,255,5,0,11,0,8,0, +13,0,20,0,15,0,10,0,20,0,28,0,23,0,21,0,28,0,30,0,33,0,44,0,45,0,36,0,40,0,53,0, +56,0,51,0,52,0,54,0,54,0,59,0,62,0,57,0,56,0,63,0,65,0,60,0,59,0,59,0,57,0,59,0, +65,0,67,0,60,0,58,0,66,0,72,0,66,0,60,0,67,0,72,0,61,0,56,0,68,0,74,0,67,0,67,0, +70,0,65,0,62,0,64,0,59,0,52,0,57,0,64,0,61,0,63,0,70,0,64,0,54,0,56,0,63,0,61,0, +58,0,58,0,55,0,51,0,49,0,46,0,40,0,37,0,41,0,44,0,39,0,30,0,31,0,36,0,30,0,21,0, +21,0,20,0,13,0,18,0,26,0,15,0,2,0,12,0,21,0,7,0,254,255,11,0,20,0,16,0,16,0,17,0, +14,0,16,0,22,0,21,0,16,0,13,0,13,0,16,0,17,0,10,0,7,0,16,0,16,0,6,0,5,0,15,0, +17,0,14,0,13,0,9,0,4,0,4,0,3,0,1,0,8,0,14,0,7,0,2,0,8,0,10,0,1,0,253,255, +0,0,2,0,3,0,6,0,9,0,10,0,7,0,254,255,251,255,1,0,5,0,3,0,0,0,250,255,242,255,243,255, +246,255,240,255,236,255,241,255,243,255,238,255,237,255,237,255,237,255,243,255,248,255,236,255,223,255,228,255,239,255,233,255, +222,255,222,255,226,255,225,255,223,255,227,255,232,255,228,255,222,255,225,255,230,255,224,255,217,255,219,255,221,255,222,255, +230,255,235,255,227,255,221,255,228,255,233,255,232,255,231,255,231,255,230,255,234,255,235,255,226,255,221,255,226,255,226,255, +218,255,217,255,223,255,227,255,228,255,228,255,225,255,224,255,229,255,231,255,232,255,239,255,244,255,238,255,231,255,229,255, +229,255,232,255,235,255,235,255,233,255,235,255,233,255,227,255,230,255,240,255,243,255,240,255,241,255,244,255,244,255,247,255, +250,255,251,255,255,255,2,0,254,255,250,255,254,255,0,0,253,255,252,255,254,255,0,0,4,0,6,0,3,0,5,0, +11,0,9,0,4,0,10,0,20,0,20,0,16,0,16,0,17,0,20,0,25,0,21,0,14,0,15,0,17,0,10,0, +3,0,5,0,7,0,7,0,11,0,12,0,4,0,254,255,2,0,5,0,2,0,255,255,0,0,0,0,251,255,251,255, +3,0,7,0,255,255,249,255,1,0,7,0,2,0,253,255,253,255,253,255,254,255,2,0,0,0,252,255,253,255,252,255, +244,255,237,255,238,255,241,255,246,255,252,255,252,255,247,255,245,255,245,255,242,255,240,255,241,255,244,255,247,255,245,255, +240,255,239,255,242,255,240,255,236,255,239,255,242,255,238,255,235,255,239,255,242,255,243,255,244,255,242,255,239,255,241,255, +242,255,240,255,243,255,248,255,245,255,238,255,238,255,242,255,243,255,241,255,239,255,237,255,237,255,236,255,234,255,234,255, +235,255,233,255,232,255,235,255,234,255,233,255,241,255,248,255,240,255,230,255,232,255,236,255,233,255,234,255,239,255,240,255, +238,255,240,255,241,255,237,255,235,255,237,255,238,255,236,255,235,255,237,255,240,255,241,255,240,255,241,255,241,255,242,255, +244,255,245,255,241,255,238,255,239,255,240,255,237,255,237,255,239,255,237,255,234,255,236,255,237,255,236,255,238,255,241,255, +242,255,243,255,247,255,244,255,239,255,240,255,244,255,243,255,243,255,247,255,249,255,246,255,241,255,240,255,243,255,245,255, +247,255,250,255,252,255,252,255,251,255,251,255,250,255,249,255,250,255,252,255,251,255,251,255,251,255,252,255,252,255,254,255, +254,255,252,255,254,255,4,0,6,0,4,0,2,0,0,0,254,255,0,0,5,0,7,0,7,0,8,0,9,0,6,0, +6,0,10,0,12,0,11,0,12,0,13,0,13,0,14,0,16,0,20,0,22,0,23,0,23,0,25,0,27,0,30,0, +30,0,29,0,29,0,30,0,30,0,29,0,27,0,27,0,25,0,23,0,25,0,28,0,28,0,26,0,25,0,25,0, +25,0,25,0,27,0,30,0,33,0,37,0,40,0,38,0,35,0,33,0,33,0,34,0,36,0,39,0,40,0,39,0, +40,0,40,0,41,0,42,0,45,0,46,0,45,0,43,0,41,0,39,0,38,0,38,0,41,0,41,0,39,0,36,0, +35,0,35,0,35,0,36,0,37,0,38,0,38,0,37,0,37,0,37,0,35,0,32,0,32,0,31,0,30,0,31,0, +33,0,33,0,29,0,24,0,21,0,20,0,22,0,24,0,25,0,24,0,21,0,21,0,24,0,27,0,28,0,28,0, +27,0,25,0,21,0,20,0,22,0,25,0,25,0,24,0,22,0,19,0,18,0,18,0,17,0,17,0,18,0,21,0, +23,0,25,0,25,0,24,0,21,0,19,0,17,0,17,0,20,0,22,0,22,0,20,0,18,0,15,0,14,0,17,0, +20,0,21,0,21,0,20,0,17,0,16,0,17,0,20,0,21,0,20,0,19,0,18,0,17,0,15,0,14,0,14,0, +13,0,11,0,10,0,11,0,11,0,12,0,13,0,13,0,13,0,12,0,11,0,10,0,10,0,10,0,10,0,9,0, +9,0,9,0,8,0,7,0,7,0,6,0,5,0,4,0,4,0,5,0,6,0,6,0,4,0,0,0,252,255,249,255, +249,255,250,255,251,255,249,255,246,255,241,255,239,255,238,255,241,255,244,255,246,255,246,255,244,255,242,255,241,255,241,255, +241,255,241,255,240,255,238,255,238,255,237,255,237,255,236,255,234,255,232,255,230,255,229,255,229,255,228,255,226,255,224,255, +221,255,220,255,219,255,221,255,221,255,221,255,219,255,217,255,216,255,217,255,220,255,224,255,226,255,227,255,226,255,224,255, +224,255,224,255,226,255,228,255,229,255,228,255,228,255,227,255,227,255,226,255,225,255,224,255,223,255,223,255,224,255,224,255, +224,255,223,255,221,255,221,255,220,255,221,255,223,255,223,255,224,255,223,255,222,255,223,255,224,255,225,255,227,255,227,255, +228,255,228,255,228,255,228,255,228,255,228,255,227,255,227,255,226,255,227,255,228,255,229,255,231,255,232,255,232,255,230,255, +228,255,226,255,224,255,224,255,225,255,227,255,228,255,229,255,229,255,228,255,228,255,227,255,227,255,227,255,226,255,226,255, +225,255,224,255,223,255,222,255,222,255,223,255,223,255,225,255,226,255,226,255,226,255,225,255,224,255,225,255,228,255,231,255, +234,255,234,255,232,255,228,255,226,255,225,255,228,255,231,255,235,255,236,255,235,255,233,255,231,255,231,255,231,255,233,255, +234,255,236,255,237,255,237,255,236,255,235,255,234,255,233,255,235,255,237,255,240,255,241,255,241,255,240,255,240,255,240,255, +243,255,245,255,247,255,248,255,248,255,249,255,250,255,251,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255, +255,255,254,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,4,0,5,0,5,0,6,0,6,0,8,0,9,0, +11,0,12,0,13,0,13,0,12,0,11,0,11,0,12,0,12,0,12,0,11,0,10,0,9,0,8,0,9,0,10,0, +10,0,11,0,11,0,10,0,10,0,9,0,8,0,7,0,7,0,7,0,8,0,9,0,11,0,11,0,12,0,12,0, +12,0,13,0,14,0,15,0,15,0,15,0,15,0,15,0,15,0,16,0,16,0,16,0,14,0,13,0,12,0,11,0, +11,0,12,0,12,0,13,0,13,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0,16,0,17,0,18,0,18,0, +18,0,17,0,17,0,17,0,17,0,18,0,19,0,19,0,20,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0, +19,0,18,0,18,0,18,0,18,0,18,0,17,0,17,0,17,0,17,0,18,0,18,0,19,0,19,0,19,0,18,0, +18,0,19,0,19,0,20,0,20,0,20,0,20,0,19,0,18,0,17,0,16,0,16,0,16,0,15,0,15,0,15,0, +15,0,15,0,15,0,14,0,13,0,12,0,12,0,12,0,11,0,8,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/bowhit2.pcm b/src/client/sound/data/bowhit2.pcm new file mode 100755 index 0000000..1ac8c3a --- /dev/null +++ b/src/client/sound/data/bowhit2.pcm @@ -0,0 +1,2070 @@ +unsigned char PCM_bowhit2[66166] = { +1,0,0,0,2,0,0,0,68,172,0,0,51,129,0,0,69,0,61,0,2,0,215,255,203,255,205,255,216,255,222,255, +233,255,10,0,36,0,15,0,228,255,225,255,5,0,3,0,204,255,194,255,1,0,37,0,9,0,7,0,62,0,80,0, +24,0,19,0,114,0,122,0,229,255,188,255,72,0,100,0,244,255,252,255,53,0,232,255,177,255,229,255,236,255,241,255, +49,0,25,0,212,255,250,255,249,255,146,255,152,255,241,255,236,255,221,255,241,255,196,255,198,255,75,0,151,0,99,0, +54,0,29,0,3,0,13,0,42,0,58,0,54,0,10,0,0,0,60,0,51,0,252,255,31,0,37,0,214,255,248,255, +42,0,195,255,204,255,113,0,74,0,199,255,19,0,54,0,206,255,5,0,90,0,249,255,234,255,57,0,206,255,130,255, +29,0,95,0,0,0,249,255,10,0,231,255,13,0,31,0,205,255,200,255,1,0,247,255,3,0,18,0,175,255,139,255, +247,255,19,0,226,255,6,0,13,0,178,255,172,255,3,0,25,0,249,255,250,255,7,0,224,255,156,255,175,255,26,0, +68,0,18,0,222,255,182,255,244,255,204,0,24,1,91,0,235,255,93,0,65,0,10,0,116,0,15,0,147,255,32,0, +59,0,23,0,150,0,53,0,105,255,244,255,73,0,160,255,210,255,114,0,69,0,46,0,140,0,253,0,65,1,126,0, +66,255,230,254,149,254,152,254,132,0,214,1,202,0,15,1,192,2,186,1,158,255,236,255,116,1,104,3,139,4,134,1, +213,253,131,255,225,1,132,255,98,253,19,254,56,254,107,255,106,2,173,1,82,254,172,254,174,0,251,0,62,2,43,2, +33,252,230,246,249,249,176,254,40,253,127,249,226,249,222,253,35,3,152,7,161,7,138,3,27,3,132,9,153,12,139,5, +255,253,166,253,214,254,176,255,58,3,38,3,97,253,51,253,232,2,63,4,170,4,10,7,29,2,58,252,91,2,79,6, +209,251,113,244,130,248,60,252,5,0,106,4,243,254,48,248,83,253,108,0,96,251,219,255,18,11,163,11,41,7,40,5, +185,254,87,248,62,251,57,0,29,1,50,3,33,8,233,10,126,7,161,2,224,6,110,15,185,13,116,6,140,4,60,6, +52,14,30,26,178,24,213,15,99,16,228,12,218,5,1,16,236,18,202,5,90,34,224,90,84,91,130,70,62,101,182,110, +247,52,163,38,151,92,10,107,153,90,53,111,30,113,33,75,124,77,47,96,38,68,79,56,162,81,200,67,18,34,124,29, +160,7,5,224,89,220,16,222,3,200,129,194,185,205,82,208,235,210,235,204,68,191,39,203,41,223,116,233,88,20,223,74, +243,81,79,78,165,69,11,240,214,141,116,153,234,215,183,236,79,245,70,250,45,238,199,1,208,37,214,13,148,214,162,189, +10,177,68,170,249,184,48,197,185,203,202,218,21,209,31,171,225,156,219,161,109,154,38,161,42,188,140,198,194,200,41,206, +55,190,62,179,229,203,55,212,133,190,116,198,48,220,95,205,218,189,155,201,123,203,184,186,116,175,61,189,250,238,214,16, +252,229,87,176,177,190,76,211,13,190,250,187,152,213,250,214,210,206,8,214,92,212,156,200,162,194,255,187,95,189,114,202, +22,197,70,178,69,182,108,197,151,199,238,199,250,198,92,191,126,196,117,209,131,202,7,193,168,207,115,219,34,207,106,201, +147,219,60,236,83,239,125,244,204,253,229,252,69,243,166,240,74,246,81,248,72,247,250,249,240,252,191,253,132,254,136,252, +104,250,144,255,155,3,129,253,19,251,241,2,117,3,178,250,24,251,3,3,35,5,48,6,195,11,64,16,75,21,93,29, +147,31,103,28,132,32,67,41,205,40,184,32,21,29,85,32,211,35,89,35,203,33,96,35,220,37,78,37,187,36,217,39, +145,42,221,39,141,34,0,33,209,35,109,38,44,40,108,43,179,44,102,41,112,40,72,44,227,45,237,46,159,52,188,53, +46,46,165,44,192,50,55,48,48,40,237,42,232,49,122,46,237,38,28,38,22,40,71,38,128,34,10,34,74,38,23,42, +180,40,107,37,213,36,60,37,252,35,144,33,144,30,38,28,203,28,30,32,138,33,134,30,255,27,19,31,0,35,54,34, +47,33,159,33,40,30,174,27,64,32,143,32,107,25,211,27,133,37,66,35,127,29,23,36,180,40,137,34,237,33,185,38, +80,35,156,31,196,34,52,33,228,27,93,29,146,29,15,22,29,19,86,24,249,26,118,24,144,21,110,20,1,21,38,19, +58,13,228,10,92,13,40,12,69,10,139,15,3,20,56,16,70,12,3,13,90,14,200,15,223,16,240,14,80,12,106,10, +81,8,180,10,80,16,93,14,83,8,188,10,61,15,109,11,131,7,127,9,34,9,248,3,204,255,88,254,171,255,196,3, +158,6,105,5,59,2,214,255,41,255,22,255,186,254,39,255,25,255,33,253,99,253,34,0,210,254,88,251,11,251,173,249, +114,248,86,254,184,1,131,250,62,247,97,251,246,247,190,243,78,253,163,6,252,2,8,254,181,252,183,249,41,249,127,251, +124,250,81,250,238,253,162,253,110,249,9,248,246,249,253,254,162,3,167,255,235,248,23,252,171,2,24,2,167,255,146,255, +25,255,171,254,232,251,228,245,60,246,2,253,229,252,112,247,117,247,4,249,219,246,131,245,108,245,190,245,23,249,7,250, +131,244,118,242,163,246,54,245,104,237,150,234,161,237,68,239,148,239,155,242,201,245,21,244,215,240,221,241,90,243,4,242, +93,243,14,246,8,244,90,243,69,246,212,242,238,236,123,237,86,235,191,232,58,245,87,255,190,242,51,235,187,250,33,3, +148,250,225,247,246,248,89,243,231,242,186,248,227,248,158,246,188,244,21,240,247,239,57,243,161,239,190,239,71,249,15,247, +202,234,104,237,79,244,141,235,199,230,186,241,116,245,200,238,9,240,83,243,135,237,107,235,125,243,173,247,7,243,152,238, +191,236,189,234,227,235,86,241,240,242,25,238,227,236,76,242,169,244,221,243,153,247,97,249,82,242,225,238,23,246,250,249, +228,244,191,242,168,246,138,248,221,247,215,248,77,249,50,246,7,243,188,244,80,249,110,250,108,248,37,250,23,0,37,3, +79,1,141,255,21,0,230,0,149,1,78,3,93,5,7,6,36,5,77,4,119,5,186,7,120,6,142,1,229,0,253,5, +121,6,169,255,53,251,189,251,230,252,39,255,42,0,141,252,237,252,68,4,235,3,145,250,227,248,107,254,102,255,41,255, +136,0,121,253,12,251,160,255,33,3,165,1,197,255,177,252,133,250,203,252,58,251,118,246,180,252,50,5,48,254,117,246, +48,252,183,253,196,246,237,249,232,1,74,254,29,248,50,249,24,251,39,254,146,3,253,0,109,248,31,249,89,1,59,4, +251,0,15,252,102,247,181,247,134,253,98,1,227,0,128,255,15,252,115,246,169,245,89,250,191,251,218,248,202,248,32,250, +78,247,28,246,130,252,105,0,56,249,19,242,251,244,146,249,194,249,167,251,136,254,173,252,240,251,235,0,156,2,155,253, +221,250,40,253,72,255,140,254,250,249,217,244,172,247,172,0,209,3,230,0,104,1,18,4,105,1,80,250,124,245,121,248, +194,1,114,6,146,1,184,253,56,1,136,3,18,0,24,253,31,254,215,0,25,2,9,0,169,253,86,254,165,253,99,249, +35,249,47,254,33,255,55,250,182,246,247,246,223,248,71,251,87,253,179,255,255,1,129,0,88,252,185,250,223,249,101,248, +88,252,76,3,149,3,240,0,29,2,26,1,59,254,189,2,222,7,28,3,56,254,106,0,148,255,97,250,240,248,141,247, +180,244,80,251,121,7,117,6,138,250,169,247,125,255,154,2,222,253,180,251,42,254,220,253,86,251,153,252,16,254,110,251, +201,251,175,1,16,4,119,1,166,255,129,253,70,252,117,0,183,1,221,250,21,250,165,1,227,255,137,246,236,245,48,249, +28,247,192,246,139,248,243,246,123,250,64,5,173,8,245,2,174,253,122,248,52,245,145,249,183,252,189,249,226,252,11,5, +76,5,193,3,166,8,82,10,102,6,246,5,20,7,162,5,24,6,89,8,226,9,35,12,237,10,11,5,56,5,223,11, +158,13,63,12,186,12,184,9,196,7,162,13,210,13,193,4,107,6,19,16,230,11,47,3,52,8,236,13,15,10,67,9, +243,11,236,8,86,7,212,11,220,13,169,13,229,14,186,12,91,10,39,14,87,15,197,10,59,13,244,20,210,19,87,13, +97,10,250,6,168,4,164,11,85,21,238,21,96,16,32,14,169,18,19,26,176,27,63,22,240,19,139,23,241,23,249,19, +44,19,28,21,161,20,156,19,154,22,161,27,110,27,77,20,144,15,189,18,75,20,179,14,185,12,191,18,18,22,79,20, +9,21,123,21,31,16,74,12,189,14,117,15,175,12,208,13,84,16,106,13,36,11,23,15,106,16,24,10,48,5,255,6, +81,10,147,10,183,7,65,5,252,6,77,9,62,8,92,9,209,12,50,9,255,2,77,5,246,6,197,255,240,253,244,5, +86,8,149,3,114,1,181,254,183,248,178,247,47,254,245,6,230,11,143,8,10,4,248,6,107,7,248,255,86,254,28,4, +59,6,2,8,48,12,248,8,217,0,77,255,96,1,228,0,169,0,118,1,251,0,7,255,214,251,130,250,94,252,204,250, +68,246,207,248,252,253,37,249,223,240,17,241,206,244,72,247,227,251,226,252,219,244,38,240,192,245,118,247,165,239,32,236, +56,240,86,241,103,239,242,240,217,243,150,244,146,243,2,241,167,238,114,237,172,236,133,240,150,247,165,245,73,237,108,237, +74,241,182,239,169,240,201,242,190,238,110,241,31,252,204,249,66,240,78,242,206,244,101,241,184,244,37,247,92,242,152,246, +131,253,26,247,186,244,116,251,170,244,211,235,119,247,182,1,180,249,147,243,130,246,166,248,157,251,18,254,183,249,92,244, +194,243,146,245,15,248,8,249,54,249,172,251,10,251,212,245,159,244,59,245,236,243,145,249,136,1,48,254,16,247,49,246, +93,250,171,2,255,0,233,239,92,239,148,0,150,251,246,242,127,6,70,6,206,231,229,239,74,13,88,254,52,238,149,2, +223,1,99,237,72,251,179,10,219,247,148,235,54,242,76,248,7,7,222,12,146,242,72,228,78,247,245,253,252,248,165,7, +112,13,195,250,112,247,196,2,249,248,135,230,72,232,155,246,84,1,232,5,85,7,127,8,182,5,43,254,177,252,253,1, +29,3,169,2,252,5,149,4,246,252,90,249,78,250,50,249,130,245,62,242,195,241,94,244,87,248,99,252,16,253,125,247, +193,241,203,241,247,244,22,250,167,253,223,245,9,235,193,240,61,252,199,247,56,241,200,249,41,0,16,250,136,249,201,255, +250,250,234,241,119,246,12,255,25,253,19,250,94,255,172,5,181,6,177,1,194,248,200,246,21,255,226,2,128,255,208,2, +222,8,104,5,56,1,149,5,34,11,13,13,81,11,99,4,114,253,23,252,96,255,3,6,166,7,168,254,166,253,225,11, +172,13,85,255,102,253,116,4,38,3,205,5,43,12,84,4,64,253,59,7,62,15,240,13,244,13,2,9,168,0,75,4, +26,11,46,9,80,8,143,6,80,252,5,249,149,2,224,7,190,5,80,4,85,4,26,8,58,11,0,3,29,251,18,2, +128,7,108,0,138,254,57,6,29,7,100,0,83,254,209,2,58,8,193,11,208,13,64,14,79,11,37,7,1,9,45,15, +215,14,154,8,200,7,130,14,103,20,139,19,4,15,57,14,43,17,181,17,227,16,232,18,212,20,86,20,179,18,117,14, +196,10,222,14,182,21,232,20,99,15,218,12,26,13,124,13,236,12,250,11,201,13,51,18,140,20,122,19,113,16,168,11, +85,7,123,6,91,8,18,10,41,9,140,6,203,6,252,9,229,11,251,12,18,13,120,8,246,3,53,5,237,5,18,6, +157,13,79,18,60,10,154,8,169,21,202,22,109,6,29,2,143,13,3,16,95,10,131,14,35,22,124,19,234,12,11,12, +230,15,147,21,146,22,54,12,129,1,161,6,207,19,75,22,244,12,72,3,73,2,109,9,76,12,83,5,112,1,235,4, +195,4,192,2,194,3,55,254,118,247,79,0,196,9,27,255,58,242,170,244,5,249,144,247,70,246,120,242,31,237,212,240, +139,251,164,0,66,252,204,244,46,242,214,243,180,242,94,240,101,241,21,241,79,240,236,245,58,250,58,246,208,243,53,244, +254,238,11,236,167,242,16,247,246,243,30,242,195,243,223,244,11,244,149,242,171,240,190,236,112,233,34,235,206,238,182,239, +172,240,90,243,138,242,37,238,117,237,142,240,255,239,247,236,140,239,65,245,151,245,29,243,21,244,245,245,22,246,69,246, +165,245,108,243,241,241,144,242,230,245,4,249,85,245,176,238,76,239,146,243,196,244,221,246,244,247,83,243,59,243,171,251, +46,254,32,248,86,246,131,251,52,1,118,2,119,254,227,252,62,1,151,1,80,253,253,254,151,2,215,0,131,1,8,6, +184,4,226,255,163,0,126,5,159,7,107,5,125,4,43,8,245,8,187,3,168,1,252,3,171,4,104,5,195,4,140,0, +233,2,104,10,148,7,88,1,146,4,40,5,45,254,90,252,100,252,49,247,48,247,8,1,100,11,145,13,130,5,159,252, +122,248,4,240,165,235,207,251,214,10,62,4,37,251,23,246,74,238,155,242,178,251,61,245,106,247,59,7,94,255,70,241, +185,251,27,251,29,237,120,253,24,17,233,2,208,240,59,231,105,230,172,1,89,12,174,229,13,223,78,10,110,15,153,251, +134,252,3,226,148,205,25,13,28,56,91,248,210,205,95,249,45,22,78,4,77,239,213,230,251,253,227,30,142,13,253,234, +72,241,71,0,224,5,1,16,71,2,43,239,45,7,169,18,153,238,218,234,65,14,30,16,248,251,128,241,192,235,128,5, +56,39,3,3,141,207,175,241,12,38,32,18,223,233,1,231,4,250,187,15,67,19,29,250,120,232,66,246,24,11,38,16, +143,3,5,246,17,255,107,14,188,1,96,235,163,240,45,8,36,18,2,4,161,243,31,253,44,15,130,6,55,246,109,252, +234,5,139,4,65,6,179,6,148,255,43,255,19,7,217,11,146,10,245,5,18,8,154,16,234,9,65,251,134,4,25,23, +173,20,5,11,166,6,85,2,153,8,32,20,227,15,33,9,251,11,108,10,15,12,220,20,245,12,56,0,195,6,125,10, +97,7,50,17,128,15,235,254,198,9,181,25,86,8,62,3,110,24,179,15,92,248,216,2,201,14,61,4,224,3,230,9, +116,0,226,250,76,3,199,9,82,9,253,1,16,252,52,5,70,12,60,2,103,255,60,6,241,253,175,246,52,3,2,8, +59,254,70,0,53,6,69,252,144,243,194,250,55,3,44,2,105,253,58,250,227,250,211,254,233,2,243,6,246,7,164,2, +197,254,75,1,202,2,104,2,215,4,21,6,103,5,178,7,212,9,68,10,77,11,187,5,220,251,196,255,1,12,155,10, +125,2,15,3,213,3,170,1,42,6,172,9,237,2,123,253,211,255,220,0,54,253,213,248,53,247,241,249,69,251,157,247, +201,247,134,252,149,250,148,245,165,247,121,250,137,249,145,250,215,249,190,244,166,245,137,250,53,246,92,238,62,239,64,243, +51,242,179,238,230,236,185,238,223,242,81,244,181,241,250,237,22,237,149,243,114,251,151,247,116,238,249,238,59,242,207,241, +149,247,85,252,65,243,254,238,9,251,255,255,77,248,64,247,112,249,93,245,183,246,182,253,137,251,90,244,178,243,202,246, +40,249,144,249,12,248,153,250,6,1,104,2,169,0,207,0,157,253,185,249,247,251,198,251,154,248,194,0,192,10,62,3, +133,249,234,255,183,5,248,254,81,252,194,3,26,6,51,255,122,249,66,248,168,247,138,248,68,252,204,253,196,250,191,248, +124,250,132,252,187,252,68,251,140,250,194,253,221,255,45,252,238,251,58,1,118,253,177,243,192,246,110,255,90,253,73,251, +94,2,153,6,182,4,109,2,187,254,40,255,122,8,248,13,167,9,198,5,24,5,224,6,68,13,19,15,26,8,97,6, +182,11,219,12,56,13,138,15,153,11,209,6,0,10,222,12,72,11,118,10,207,7,73,4,254,5,160,6,187,3,112,7, +115,12,167,6,105,0,35,4,51,7,13,3,200,254,48,254,230,255,139,1,26,1,146,1,179,4,216,4,99,1,57,1, +142,3,181,1,35,254,192,0,50,7,30,7,64,1,184,0,50,3,90,253,235,246,17,253,188,3,85,252,163,244,32,253, +194,10,255,10,223,1,163,0,55,8,77,11,101,9,236,10,58,12,49,9,182,7,64,7,8,4,204,2,74,3,35,3, +185,9,247,17,158,12,9,4,4,7,25,9,115,5,232,7,136,8,231,255,117,254,147,4,61,2,31,255,227,4,60,8, +6,7,131,7,110,4,131,0,180,4,42,7,59,1,142,255,36,4,248,5,191,7,139,10,207,7,172,4,150,7,210,7, +252,1,89,1,103,7,61,8,113,3,9,5,36,12,115,11,108,3,9,0,86,1,49,1,255,0,254,0,16,0,22,2, +46,4,196,254,62,248,164,249,102,253,106,254,99,255,73,255,221,253,110,254,240,254,100,255,6,4,242,6,82,3,118,2, +118,5,100,3,14,2,19,7,222,6,168,0,30,1,102,4,75,2,199,1,164,3,159,0,64,255,177,4,104,5,80,254, +101,251,247,253,129,253,109,251,105,253,60,0,14,255,219,251,159,248,157,244,231,243,124,249,28,252,171,245,73,241,41,245, +118,247,68,246,152,248,7,250,240,245,42,244,219,246,165,247,135,247,71,249,149,250,197,251,140,251,205,245,71,241,189,246, +37,254,47,253,194,248,216,248,27,253,211,0,237,255,183,251,6,249,187,247,227,245,199,246,75,252,59,1,89,255,10,248, +13,246,195,253,57,1,232,248,35,245,181,253,246,2,50,255,163,252,3,253,134,253,72,255,179,255,40,0,173,5,114,7, +108,255,17,252,178,1,85,3,24,3,128,6,111,2,105,250,151,0,65,11,195,6,49,254,239,0,109,6,140,5,68,2, +51,1,169,2,38,3,129,0,244,255,45,3,76,3,11,0,48,255,131,0,200,2,154,4,28,0,138,250,25,0,22,8, +17,4,18,253,225,253,25,0,180,255,6,255,182,253,104,254,184,1,137,1,3,0,138,2,216,2,148,255,56,1,167,4, +50,4,27,6,142,8,65,3,199,254,240,2,147,5,157,3,191,4,233,5,192,3,196,4,99,6,19,1,21,253,94,3, +249,10,173,10,244,6,80,5,216,4,145,4,13,5,153,5,124,5,20,6,188,8,115,11,207,10,28,8,198,8,143,12, +21,12,191,6,194,5,61,10,214,10,185,7,248,8,12,11,207,6,191,1,13,2,193,4,165,7,121,9,99,6,117,1, +219,1,154,4,251,2,254,254,107,253,197,254,214,0,174,0,210,254,34,255,196,0,8,0,230,254,163,0,221,3,5,6, +45,5,177,1,167,255,35,255,54,252,203,250,41,255,235,0,2,252,53,251,145,0,187,0,116,251,136,249,162,249,21,248, +230,248,76,252,231,252,65,251,16,251,198,251,120,252,102,253,230,253,252,254,142,0,116,254,237,250,235,253,108,2,27,254, +122,249,120,255,248,4,192,0,19,254,131,1,70,1,178,253,32,253,96,252,238,250,60,254,45,2,233,255,22,252,54,251, +16,250,93,249,105,251,76,251,193,247,52,247,34,249,175,247,144,244,249,242,58,241,1,241,243,244,246,247,45,246,218,244, +204,247,34,251,240,250,163,248,242,247,28,249,74,249,108,249,158,251,83,251,97,246,1,245,195,249,25,251,147,246,247,243, +226,244,36,246,143,248,93,251,51,251,145,249,73,249,210,248,7,247,214,245,224,246,7,250,53,253,67,253,226,249,80,246, +159,245,47,248,164,251,20,253,43,252,222,250,169,250,100,251,106,251,246,249,155,249,106,252,202,255,230,0,27,0,176,253, +227,250,14,252,180,0,210,0,96,251,103,250,241,255,86,1,80,252,248,249,253,250,221,249,237,249,67,253,5,253,47,250, +148,252,141,0,192,255,14,254,97,253,152,251,0,252,215,253,93,251,94,249,204,252,27,253,199,247,233,245,108,247,25,247, +215,247,248,249,147,249,201,248,11,249,174,248,142,250,147,253,106,251,173,248,158,252,131,0,71,254,55,251,220,250,71,252, +47,254,246,252,43,250,129,252,32,0,24,254,157,252,133,255,218,254,145,250,148,250,88,253,134,254,216,255,166,0,11,255, +98,254,103,0,177,1,232,255,97,252,59,251,205,254,207,2,84,3,97,2,228,0,26,255,10,1,45,5,221,4,19,3, +108,5,184,6,195,3,130,2,190,3,143,3,177,3,73,5,170,5,172,5,151,6,0,6,39,4,204,3,243,4,42,7, +174,9,113,9,124,6,190,4,141,4,95,3,24,2,43,3,21,6,84,8,194,8,50,8,59,7,245,5,110,5,55,5, +234,3,189,4,193,9,190,11,15,7,196,4,179,8,56,10,81,6,57,3,81,3,150,4,167,5,208,5,200,6,109,9, +81,9,34,5,75,2,70,2,163,2,240,3,129,4,125,1,227,255,90,3,55,5,196,2,195,2,58,6,240,6,23,4, +5,2,18,2,28,2,227,0,26,0,143,1,131,4,113,7,161,7,205,1,92,250,174,250,10,1,45,4,106,4,134,5, +91,3,194,252,149,248,238,248,235,250,75,255,162,5,29,8,0,4,15,254,27,251,114,249,167,245,230,242,65,246,242,252, +171,1,239,3,239,2,99,254,14,252,57,254,248,254,54,253,163,252,190,250,138,246,135,246,136,251,133,255,101,1,30,3, +16,4,127,3,64,1,145,254,79,254,242,254,28,253,174,252,55,1,160,4,87,2,184,255,210,1,148,5,44,5,7,1, +227,255,60,3,180,4,104,3,49,4,9,5,23,2,120,255,75,1,1,6,122,10,173,10,155,6,69,5,247,6,126,3, +4,253,149,252,128,255,170,0,150,4,198,10,185,10,17,6,110,5,7,7,47,5,107,3,224,4,11,4,215,255,228,255, +143,4,145,6,24,7,104,10,50,11,207,6,251,3,110,3,118,1,221,1,115,4,216,1,24,254,161,1,178,5,109,3, +208,1,182,3,26,3,89,0,86,255,107,255,69,1,136,5,151,7,235,5,85,5,244,6,203,6,136,3,50,0,94,0, +2,4,114,6,117,4,184,0,76,255,176,0,139,2,169,2,209,1,216,2,226,5,32,8,4,8,164,5,188,1,17,255, +78,0,157,3,2,5,106,4,216,4,144,6,241,6,194,5,88,5,119,5,228,3,176,1,162,1,123,2,52,1,99,255, +250,0,238,4,183,6,128,5,186,3,127,2,130,2,38,4,114,4,155,1,80,255,176,255,203,255,136,255,6,1,161,1, +78,0,171,0,194,0,235,253,150,254,179,2,142,255,10,249,144,252,147,3,246,1,177,254,2,255,252,251,26,250,213,1, +152,8,162,4,45,255,214,254,40,255,96,255,47,0,114,255,10,0,71,3,126,2,165,254,130,0,238,3,109,255,11,250, +98,253,101,1,197,253,134,250,154,253,117,254,6,249,241,246,106,252,100,0,124,253,166,248,230,245,92,245,159,247,245,250, +146,251,109,250,125,250,17,250,170,247,144,246,123,248,251,250,122,252,167,252,60,251,114,250,166,251,27,251,85,248,181,249, +59,254,18,253,89,249,35,253,66,2,39,254,118,248,139,249,94,250,108,248,173,250,83,255,81,1,46,3,122,3,49,254, +35,249,197,248,72,249,108,251,196,255,120,255,34,252,79,253,239,253,249,249,6,250,187,253,110,252,214,250,175,254,155,0, +179,253,102,251,167,250,178,251,11,255,19,0,94,254,127,253,230,250,213,248,68,254,115,2,67,253,220,251,148,1,176,255, +36,251,177,0,186,3,60,252,115,249,138,253,208,253,221,253,133,255,232,251,67,250,56,0,200,0,192,249,36,248,168,250, +251,250,66,254,51,2,92,255,228,252,55,255,137,253,153,249,40,252,73,0,83,0,219,255,237,254,243,252,227,253,81,0, +211,1,223,4,11,6,96,2,236,1,121,5,131,3,232,254,247,255,117,3,154,6,241,9,82,8,203,2,236,1,92,4, +44,5,124,5,57,3,202,254,42,0,115,5,106,6,135,4,232,0,182,252,100,0,87,4,95,250,190,245,44,5,103,8, +49,243,65,236,72,252,27,2,242,249,197,247,215,251,233,253,238,250,25,246,55,251,13,4,213,250,23,239,183,252,1,10, +48,252,205,242,165,0,111,6,248,250,13,248,4,2,196,7,166,2,144,250,146,252,147,7,55,10,32,4,209,4,202,7, +140,3,142,3,211,9,213,5,27,253,208,4,196,19,113,14,157,250,223,250,9,19,206,28,173,9,97,250,239,254,236,2, +194,1,110,6,231,8,186,4,35,6,67,8,91,254,40,244,111,247,143,1,200,8,134,7,160,253,211,247,230,252,104,0, +209,252,195,251,6,254,37,251,141,244,237,244,171,253,150,255,243,245,141,246,38,4,78,254,224,232,66,238,151,2,20,247, +229,221,28,230,213,2,137,16,43,16,218,10,121,251,105,230,1,221,210,231,212,253,60,14,48,14,160,255,129,243,225,250, +81,10,208,13,112,19,102,31,35,8,239,214,145,218,233,13,28,25,210,255,11,4,12,22,144,18,28,15,172,10,67,246, +0,248,13,21,167,19,32,252,35,4,56,17,70,255,158,247,206,11,100,16,219,255,98,247,24,248,33,255,34,12,249,8, +182,249,60,1,100,12,78,243,145,224,242,0,73,23,210,245,88,225,11,255,160,11,176,244,252,247,122,17,21,9,167,239, +107,241,106,253,186,252,249,251,6,253,190,247,156,245,37,254,69,11,200,14,220,249,188,224,62,235,227,6,164,6,174,251, +187,254,141,249,106,244,241,11,188,26,170,3,248,245,198,2,189,8,221,15,246,29,241,15,153,249,219,8,30,26,108,15, +163,20,168,36,171,13,151,243,53,6,46,21,47,1,172,250,115,13,70,17,216,5,143,3,171,4,196,252,44,240,124,231, +242,233,135,246,100,255,222,249,227,234,107,225,181,229,5,236,190,231,145,225,61,225,24,226,88,232,63,241,150,231,113,213, +20,221,132,241,61,242,168,236,168,241,141,244,54,246,47,252,109,248,187,242,137,255,237,10,46,2,29,253,61,6,67,12, +208,14,113,17,240,13,210,15,16,30,240,35,105,30,64,30,80,26,214,11,54,11,202,25,237,26,91,18,235,22,20,29, +28,19,234,7,217,10,218,18,149,23,117,26,114,22,131,10,114,7,37,18,73,19,223,3,227,252,142,3,102,3,221,254, +92,3,237,5,95,0,5,255,60,253,170,241,16,235,217,239,132,241,232,240,112,245,25,245,19,239,193,240,163,245,138,242, +67,238,164,240,112,246,127,250,187,248,64,245,160,249,181,255,174,252,71,249,212,252,143,255,246,1,169,5,61,255,180,244, +231,251,168,11,30,9,96,249,5,244,140,252,12,5,202,3,59,254,9,0,114,7,113,9,208,3,114,251,72,247,83,252, +123,1,188,253,202,251,69,254,37,247,108,239,2,247,148,251,41,241,181,235,5,237,53,233,135,236,87,246,142,240,82,231, +167,239,163,244,155,233,12,229,170,233,220,232,180,232,38,236,236,232,234,227,178,228,101,230,235,234,87,243,242,242,141,234, +223,235,1,249,112,4,19,5,187,251,17,246,147,255,114,11,69,10,40,5,21,8,48,15,198,20,175,22,92,20,109,18, +10,19,27,19,78,20,122,23,87,23,80,22,83,26,24,29,85,25,20,22,128,22,17,22,83,20,16,18,15,14,35,11, +27,12,35,13,246,9,191,4,13,3,179,4,105,2,17,252,215,252,2,6,37,9,164,1,199,251,249,252,157,252,5,247, +63,244,177,248,75,253,0,252,116,247,6,243,45,241,56,246,88,254,173,254,23,249,80,248,138,250,74,250,13,253,21,3, +66,2,56,253,181,0,44,7,131,0,45,244,3,248,13,7,89,8,157,252,71,250,204,2,214,5,186,0,195,250,132,247, +40,250,63,0,92,0,150,251,9,252,186,1,105,5,204,3,219,253,248,249,14,254,51,5,79,8,94,7,210,3,4,2, +42,6,171,7,204,0,191,254,67,5,240,4,197,253,60,253,253,0,186,2,42,5,8,5,39,0,238,255,223,3,249,0, +232,250,111,251,69,255,203,1,85,4,239,4,168,1,62,254,253,253,17,1,0,5,235,5,97,6,201,12,183,19,240,15, +75,7,93,7,14,12,164,12,188,15,245,21,138,17,98,8,142,14,78,25,181,18,211,8,62,14,97,20,17,16,255,11, +178,9,192,5,107,7,94,11,70,7,242,1,94,0,186,251,253,250,167,4,233,7,91,255,134,252,140,255,209,252,225,251, +247,0,67,255,67,248,8,249,61,253,234,251,27,249,80,247,207,244,211,245,146,249,55,247,13,242,138,245,96,253,57,254, +208,250,85,249,169,248,219,250,64,0,121,255,229,249,61,252,80,0,215,249,49,246,253,255,153,5,175,254,226,249,129,251, +77,254,242,3,108,7,43,1,187,250,59,253,149,1,177,2,194,1,131,253,253,249,216,252,45,0,196,254,246,253,46,0, +89,2,62,3,161,0,209,250,0,249,94,252,48,253,57,250,228,248,36,250,64,252,130,254,153,254,107,251,195,248,48,250, +43,253,173,252,125,249,35,249,98,252,165,254,172,253,248,250,139,249,70,251,79,253,181,253,13,1,95,6,39,4,71,252, +22,251,181,0,182,4,42,6,151,6,38,6,199,7,242,9,22,7,68,3,115,5,209,8,174,8,128,10,25,14,167,10, +242,1,213,255,100,5,176,8,190,7,176,8,232,9,3,6,55,2,245,4,130,9,49,11,246,10,233,6,146,0,17,0, +99,3,173,1,66,254,172,254,108,254,158,252,164,252,142,251,226,249,82,252,134,253,117,249,47,248,201,250,249,249,199,247, +29,247,100,244,11,243,194,246,94,248,130,246,185,247,47,249,199,247,48,249,176,251,106,249,30,248,4,252,0,255,211,255, +118,1,168,1,107,0,178,0,201,0,58,0,26,1,115,1,224,1,52,6,253,8,8,4,115,255,74,3,145,9,208,10, +97,7,172,2,33,0,159,0,97,1,216,1,195,4,119,9,16,11,79,7,216,2,70,3,186,5,250,3,208,0,234,1, +16,4,151,2,184,255,105,254,101,254,105,254,43,254,80,0,118,4,86,3,150,253,25,254,80,3,174,2,113,0,116,3, +116,4,95,1,18,2,116,4,29,3,205,1,115,1,71,0,145,2,208,6,219,5,103,3,12,5,9,7,157,8,121,10, +189,6,215,0,209,3,244,9,209,7,164,2,156,0,144,254,151,254,50,2,218,1,18,254,47,255,198,1,113,254,127,250, +120,251,169,252,19,252,171,252,74,252,243,249,253,250,238,253,225,251,248,248,91,251,119,252,63,249,5,250,79,253,230,249, +194,244,189,246,130,250,198,249,89,248,23,250,118,253,117,254,27,251,57,248,9,250,218,251,26,251,148,252,60,255,79,253, +19,249,243,247,195,249,105,252,225,254,104,0,216,255,45,252,13,249,126,251,220,254,212,252,218,250,242,252,181,252,141,249, +145,249,131,251,255,251,47,252,3,252,201,251,44,253,86,253,204,249,189,245,244,244,63,249,99,254,138,251,25,245,208,247, +220,253,189,251,36,248,71,247,201,243,248,244,118,254,224,255,29,246,126,241,156,244,51,248,15,252,23,254,30,252,145,249, +42,247,244,246,234,249,22,246,6,240,211,251,17,10,99,253,151,236,97,245,41,1,177,253,131,251,183,252,178,250,185,254, +165,2,216,249,91,245,62,254,247,254,164,245,82,246,232,254,95,1,1,252,0,243,160,240,36,251,130,1,212,247,220,241, +113,251,158,1,112,250,234,244,52,250,159,0,128,253,158,245,93,246,25,254,24,254,209,247,217,247,107,249,129,245,130,247, +112,1,205,2,33,253,252,0,57,9,146,6,180,251,201,242,84,243,71,0,38,10,10,3,131,254,61,9,74,8,10,247, +65,249,155,13,211,15,196,3,200,1,142,4,58,6,231,11,164,10,7,0,111,0,11,12,130,17,112,17,119,13,202,1, +7,254,232,10,110,18,123,12,212,10,92,13,71,7,209,255,57,3,122,13,51,19,233,13,71,3,178,255,101,4,165,9, +224,11,147,8,223,1,188,2,249,8,56,5,151,252,96,255,241,5,138,3,179,1,220,7,228,10,236,5,240,2,81,5, +74,4,147,253,79,251,251,0,135,4,187,2,25,3,218,3,38,254,210,247,46,248,40,252,151,1,128,7,249,6,223,255, +164,252,167,255,220,0,226,253,222,251,61,253,137,254,33,253,219,252,247,255,200,255,253,249,192,247,201,251,134,254,220,255, +66,3,36,2,67,250,173,247,117,254,31,2,123,253,72,250,225,252,115,254,42,252,11,250,254,248,17,248,187,249,140,253, +108,254,174,252,250,252,222,253,43,252,199,250,115,251,103,251,50,251,12,253,69,254,3,253,151,252,43,254,75,255,168,255, +82,0,116,0,249,254,138,252,156,251,43,254,134,1,55,1,86,255,207,0,9,3,66,1,161,254,149,254,70,253,63,250, +34,252,28,2,14,3,138,254,211,252,83,255,63,1,1,2,223,2,165,2,201,1,217,1,72,1,241,255,61,1,50,4, +228,3,66,2,31,5,18,9,89,6,216,0,251,2,232,10,74,13,64,8,180,3,172,2,82,2,152,2,237,4,90,7, +32,7,174,4,135,3,107,6,86,10,184,9,206,5,86,4,96,5,111,5,247,4,190,5,219,6,221,6,130,5,52,4, +183,4,95,5,166,3,88,1,43,0,49,255,157,255,139,0,54,253,28,250,239,255,138,6,137,2,71,253,200,0,112,4, +138,2,248,0,138,0,176,255,130,0,15,0,199,253,194,0,61,4,241,253,91,248,148,254,33,4,80,1,95,255,7,254, +66,250,208,253,0,6,41,3,117,251,143,253,69,1,189,253,166,251,224,253,220,254,172,0,202,3,207,2,252,255,252,255, +217,0,31,2,158,3,72,1,205,254,16,3,83,7,104,4,115,1,112,2,233,1,83,1,184,3,150,3,45,0,244,255, +136,2,151,4,200,7,125,10,62,8,25,4,240,3,70,6,204,5,42,2,199,0,45,4,242,6,227,5,162,5,236,6, +72,6,63,7,183,10,198,7,216,0,175,3,223,11,177,10,71,5,36,6,224,6,126,3,73,4,155,8,19,8,189,5, +80,8,224,11,171,10,153,6,67,4,56,5,44,7,82,7,134,6,81,6,47,5,38,3,23,3,205,4,170,5,92,5, +72,4,109,2,24,1,211,0,19,1,110,2,134,3,57,1,216,253,185,253,104,254,125,253,134,254,77,0,114,253,219,250, +178,255,191,4,160,1,167,252,76,252,116,252,130,251,235,252,86,254,116,252,73,251,61,253,208,253,75,251,123,249,239,249, +203,250,182,251,201,253,200,255,240,254,214,252,28,254,151,0,238,253,161,249,86,251,156,254,183,252,228,250,123,252,89,251, +201,248,195,251,152,255,58,254,205,253,222,0,66,0,8,253,79,254,142,0,218,253,84,251,45,254,72,1,107,255,140,252, +49,254,29,1,249,254,224,250,99,251,171,252,154,249,144,248,84,253,139,255,26,252,160,250,14,252,216,250,78,249,125,251, +66,253,66,251,133,248,186,247,58,249,145,251,84,251,11,249,37,249,193,250,231,250,153,252,106,0,131,0,89,253,31,253, +70,254,254,251,69,249,147,250,203,253,166,254,131,252,75,251,177,254,211,2,14,1,158,252,91,253,182,0,50,255,216,250, +30,250,241,251,242,251,74,251,19,253,210,255,134,0,250,255,178,255,111,253,2,248,215,244,123,248,69,253,175,251,135,247, +153,248,144,252,75,253,17,252,84,251,20,250,189,250,219,254,139,255,64,250,30,248,68,252,85,254,193,251,205,249,162,249, +29,250,49,252,104,254,33,254,87,252,40,251,67,251,238,251,136,251,164,251,65,255,73,2,2,0,25,254,98,1,252,3, +232,2,164,2,241,2,227,0,48,255,0,0,150,1,110,3,39,5,176,5,18,6,24,6,136,4,143,4,77,7,221,6, +162,2,20,2,7,6,221,7,18,6,117,4,229,4,38,6,68,6,146,5,191,5,123,5,58,3,164,1,2,2,0,2, +3,2,86,3,237,3,208,3,232,4,216,4,68,2,225,0,60,1,250,0,37,2,123,5,34,6,188,2,17,0,99,0, +55,1,203,0,193,0,255,2,229,4,227,2,28,0,161,0,25,1,83,255,141,255,131,1,125,0,46,254,254,253,42,254, +98,254,196,255,74,255,131,252,8,252,153,253,68,253,184,251,202,250,33,250,140,250,246,251,75,252,33,252,191,252,115,252, +253,250,115,250,60,251,216,252,169,253,231,250,132,247,110,249,40,253,51,252,220,250,3,254,225,255,184,252,117,250,46,252, +231,252,122,249,80,246,248,248,237,254,64,0,43,252,163,249,25,251,139,252,176,251,1,250,31,250,174,252,128,254,15,254, +57,254,142,254,135,252,7,252,63,255,249,255,153,253,154,254,45,1,190,0,28,1,242,2,12,1,109,254,97,0,129,2, +115,1,232,0,127,1,42,1,111,0,235,254,234,252,101,253,111,255,13,0,15,0,122,254,215,249,88,248,50,253,115,0, +229,254,105,254,76,255,103,254,166,253,43,253,216,250,213,249,145,252,199,255,17,1,234,255,3,253,8,253,193,0,50,1, +187,253,25,253,151,254,239,253,99,253,79,254,193,254,207,255,213,0,11,255,172,253,8,255,150,254,236,252,186,254,13,0, +101,253,176,252,14,255,90,254,192,251,87,252,81,254,0,255,123,255,132,255,30,255,144,0,122,2,9,1,178,253,99,252, +203,252,93,253,135,254,128,255,70,255,222,255,130,1,167,0,70,254,14,255,250,0,7,0,230,255,85,2,32,1,48,252, +219,250,224,252,96,253,221,253,184,255,167,255,222,253,134,253,50,254,80,254,138,253,173,251,132,250,11,252,75,254,248,254, +197,254,131,254,57,255,5,2,49,4,251,2,110,1,6,2,236,1,133,0,98,1,71,4,78,5,62,4,134,3,107,2, +215,255,142,255,205,3,203,6,181,4,223,2,247,3,79,3,209,0,145,0,48,1,43,1,204,2,91,4,90,3,91,3, +31,5,6,4,57,1,116,1,127,3,123,4,116,4,132,3,120,2,134,2,237,2,252,3,9,6,103,5,218,1,132,1, +160,4,59,5,63,3,214,1,24,1,15,2,140,4,36,4,62,1,39,1,188,2,231,1,117,0,197,0,17,2,31,4, +76,5,252,2,82,0,250,1,254,4,144,4,62,3,188,4,168,5,196,2,24,1,36,4,243,5,165,3,237,2,89,4, +94,3,230,2,242,5,146,6,122,3,185,3,186,6,251,5,215,2,213,1,156,2,164,3,123,3,115,1,230,0,202,2, +106,2,165,0,151,2,129,4,169,1,107,255,171,0,161,0,183,255,177,0,109,0,165,255,164,2,114,4,0,1,24,0, +84,3,247,1,130,254,14,1,210,2,133,253,51,251,64,0,249,1,107,254,17,255,237,2,154,1,167,253,73,254,73,1, +48,2,213,2,187,3,193,1,225,254,90,255,188,0,12,0,240,255,46,1,146,1,55,2,66,3,253,1,76,0,180,0, +101,0,212,255,246,1,73,2,241,254,135,255,180,3,58,3,190,0,212,1,194,1,61,255,254,255,217,1,75,0,93,255, +245,0,193,0,235,254,145,254,23,255,149,255,30,0,194,255,61,255,24,0,179,0,71,255,189,253,18,254,153,254,146,253, +112,253,203,255,94,0,179,253,53,253,154,254,147,252,87,251,213,255,73,2,96,254,18,252,239,253,118,255,243,0,17,2, +42,0,234,254,125,0,64,0,91,255,185,1,131,2,202,255,26,0,121,2,164,0,6,254,156,255,131,1,37,1,97,1, +51,2,167,1,168,0,135,0,71,1,118,2,214,2,230,1,58,1,0,2,15,3,166,2,55,1,175,0,228,0,144,0, +214,0,30,2,207,1,80,0,33,1,62,3,61,3,236,1,71,1,235,0,133,0,99,0,114,0,229,0,142,1,187,1, +157,1,159,1,172,1,139,1,188,0,219,255,160,0,44,2,44,2,11,1,118,255,64,253,221,252,116,255,49,1,38,0, +197,254,135,254,153,255,223,0,194,255,235,253,153,254,109,254,224,251,201,252,70,0,215,255,176,254,175,0,83,0,217,253, +79,0,81,4,216,2,189,255,236,255,188,0,28,0,187,255,252,255,67,255,252,253,109,255,126,2,181,0,2,252,66,253, +242,0,248,254,96,253,23,0,132,254,168,250,159,253,254,255,135,251,239,250,10,255,37,253,19,250,56,253,55,254,0,251, +186,251,240,252,91,250,179,251,249,255,10,254,235,250,197,253,76,0,153,255,25,0,253,255,150,254,143,0,244,2,76,1, +19,0,143,0,114,255,255,255,246,2,250,2,86,2,251,3,101,2,65,255,114,0,22,0,205,252,50,0,13,6,78,3, +107,254,254,254,194,255,157,255,223,0,12,0,8,255,159,1,50,2,49,0,224,1,173,2,221,254,222,254,192,2,124,2, +111,0,72,255,47,253,177,255,202,5,115,3,238,252,96,254,98,1,251,0,156,3,226,2,242,250,211,252,93,8,106,7, +84,254,42,1,102,7,9,2,59,251,103,254,224,4,129,5,19,1,245,254,228,1,137,3,131,1,251,0,126,1,199,0, +107,2,205,3,117,255,179,252,145,0,88,1,54,252,112,250,33,254,206,2,90,5,113,2,123,253,30,255,163,3,205,0, +225,249,45,249,84,0,243,6,171,2,93,247,153,246,88,1,102,5,87,0,196,254,44,0,38,254,78,251,99,250,144,252, +47,2,164,3,184,254,27,254,109,0,60,251,238,247,207,255,116,3,89,252,80,250,43,255,137,255,129,254,252,0,230,0, +128,254,40,255,56,255,151,251,75,249,64,251,203,254,54,0,73,255,70,1,99,6,25,5,49,253,80,251,179,0,28,3, +79,2,131,3,79,4,189,2,177,1,118,1,234,0,91,1,43,3,49,4,94,2,214,254,60,254,160,1,49,4,128,3, +80,1,176,255,34,0,247,255,205,251,34,249,86,252,42,255,236,255,66,2,245,0,2,251,60,250,235,252,38,251,111,250, +61,253,180,252,49,251,187,248,20,237,67,229,159,244,208,10,76,16,202,11,43,3,209,238,55,219,130,221,184,240,4,5, +85,18,202,15,142,255,37,247,95,254,176,4,28,2,157,253,122,251,52,254,180,2,27,254,141,246,14,252,53,4,214,2, +195,6,26,13,190,0,104,244,32,254,152,2,46,248,105,254,3,13,151,3,173,242,156,242,116,248,199,253,152,3,195,0, +200,249,94,247,157,243,31,245,21,2,31,5,124,250,38,248,6,250,201,247,116,254,222,2,167,244,14,238,212,251,65,2, +206,254,82,3,89,6,37,253,40,241,125,237,123,248,132,5,46,255,201,243,49,248,140,251,54,250,171,4,205,5,93,242, +194,239,180,254,158,253,143,250,242,2,114,253,87,245,147,3,254,8,69,245,231,237,197,250,182,2,101,5,85,7,202,1, +128,251,8,253,110,3,157,11,107,15,72,11,179,7,31,6,227,0,81,252,184,249,168,247,162,254,206,8,26,4,153,249, +116,250,208,255,146,2,203,1,96,249,10,245,79,253,86,254,82,245,29,247,66,251,33,244,220,242,153,250,203,252,52,255, +111,2,200,251,71,248,71,254,156,250,130,242,186,247,134,254,145,0,71,8,121,12,207,6,187,5,2,8,132,4,214,2, +240,3,10,3,135,6,233,10,0,9,58,11,46,17,223,14,165,14,31,22,86,20,25,13,168,15,196,17,109,14,251,16, +154,18,24,12,108,10,86,14,20,13,176,10,10,11,0,11,169,14,26,21,42,21,173,15,158,9,223,4,33,6,70,9, +60,4,7,254,123,0,132,4,220,5,54,8,28,8,119,4,230,2,40,2,239,255,255,254,207,254,6,255,249,255,200,252, +59,248,75,251,146,255,4,253,234,251,160,254,92,253,124,250,147,248,88,244,205,243,163,248,103,247,235,242,189,246,159,250, +24,246,202,242,180,243,154,242,20,244,105,252,246,1,123,252,61,241,242,235,113,240,60,245,173,243,43,243,212,247,57,250, +150,247,16,244,27,241,232,240,157,245,157,249,74,248,160,246,78,248,138,250,69,252,126,253,255,250,2,247,6,248,225,250, +189,249,111,249,212,252,184,253,165,252,73,254,55,253,155,247,250,247,220,254,222,0,198,254,34,0,162,0,120,252,44,251, +253,255,174,4,27,5,198,1,205,254,87,2,208,9,193,10,206,4,231,1,11,5,47,9,118,10,223,7,157,4,252,5, +251,9,72,10,242,7,115,7,124,8,12,10,198,11,252,10,44,8,206,7,145,9,204,9,249,8,61,9,48,11,241,13, +43,13,10,7,67,3,238,6,231,10,62,10,118,9,7,10,143,9,125,9,155,9,26,7,62,5,163,7,154,9,69,7, +212,3,99,2,80,3,4,5,164,3,173,255,196,254,86,0,204,254,30,251,245,248,137,248,65,251,133,255,124,253,23,246, +3,244,98,247,174,248,129,249,9,252,76,251,112,248,181,248,172,248,22,246,146,246,68,249,197,248,152,248,64,251,130,250, +203,246,171,247,234,250,195,249,234,246,8,247,113,248,15,250,194,252,189,253,199,250,37,248,154,249,230,250,251,247,243,246, +119,253,182,3,72,2,192,0,170,4,227,5,30,2,126,1,19,3,250,1,72,4,43,11,117,11,33,5,32,4,14,8, +166,8,210,7,54,9,194,9,181,9,86,11,113,10,26,5,238,1,70,4,167,7,91,8,154,6,2,5,87,6,245,7, +20,5,194,1,193,4,85,9,10,8,161,4,91,4,8,4,165,1,239,0,241,2,92,5,112,7,59,8,137,6,192,4, +228,5,147,8,198,9,219,8,250,6,228,5,61,7,241,10,97,14,142,14,169,11,229,8,232,7,12,8,141,9,240,11, +165,12,6,12,119,12,253,11,44,9,167,8,43,11,171,10,168,7,83,8,219,10,234,9,85,7,17,6,0,5,56,4, +45,4,217,2,99,0,121,255,128,0,45,2,129,2,100,255,178,251,113,252,229,254,184,253,225,251,10,253,86,253,46,251, +75,251,202,253,51,253,116,249,107,248,197,251,179,254,64,254,245,252,56,252,64,250,102,248,52,249,182,249,176,247,64,247, +119,249,152,249,46,247,183,245,183,245,195,246,212,247,219,245,45,243,243,245,115,250,60,248,102,242,239,240,166,243,64,247, +55,250,126,250,14,249,71,249,174,249,225,247,187,246,161,247,93,248,246,249,108,253,146,254,18,252,88,250,4,251,144,252, +6,255,53,1,100,0,159,253,21,252,202,251,32,251,219,250,232,252,247,255,37,0,231,253,52,254,233,0,167,0,143,253, +134,252,239,253,234,254,119,254,169,252,6,251,205,251,82,253,132,252,242,250,44,251,121,252,104,253,118,252,42,249,175,247, +225,250,150,253,167,251,242,248,134,248,129,248,22,248,200,247,148,247,198,248,124,251,10,253,245,252,169,252,100,251,119,249, +89,249,69,250,38,250,55,250,199,250,174,249,254,247,151,248,118,250,2,251,126,250,161,250,129,251,138,251,163,250,46,251, +196,253,59,0,218,1,101,2,31,1,111,1,250,5,86,8,248,4,95,4,252,8,96,9,218,5,223,7,116,12,5,11, +24,7,161,6,193,7,203,8,199,9,194,8,209,6,203,6,249,6,86,6,3,7,9,7,37,4,171,2,210,4,93,6, +82,6,243,6,195,6,255,4,45,4,19,4,157,3,136,4,175,5,49,4,75,3,214,5,143,6,204,2,181,0,214,2, +57,4,137,3,238,3,118,4,142,2,0,1,96,3,137,6,228,4,49,0,159,255,231,3,157,5,128,2,54,1,77,4, +129,6,225,4,231,1,151,0,186,1,245,2,134,1,202,254,125,253,126,253,79,254,30,0,112,1,36,1,92,0,20,0, +104,0,45,1,114,1,131,0,225,254,162,253,46,254,18,0,41,0,9,254,23,253,196,253,226,253,224,253,148,254,113,255, +176,0,34,1,39,255,178,253,113,254,71,253,210,250,216,252,159,0,131,255,213,252,40,254,109,0,159,255,138,253,69,253, +102,255,73,1,236,255,128,253,5,254,221,255,47,0,5,0,63,255,203,252,185,251,234,253,250,255,23,0,170,255,64,255, +188,255,206,0,72,255,49,253,236,255,211,2,78,255,238,251,105,254,116,0,85,0,5,3,136,4,34,255,158,248,80,249, +179,0,30,4,150,250,68,242,151,255,216,16,130,7,217,243,85,244,175,253,0,255,254,0,28,2,33,250,199,248,0,4, +126,4,99,247,13,245,9,0,186,5,231,1,84,254,1,0,227,1,208,253,111,249,30,253,114,1,80,253,66,248,66,250, +48,255,214,1,136,0,111,252,37,250,129,250,76,251,196,253,193,254,119,249,139,246,153,251,101,252,157,246,220,247,48,254, +71,253,222,247,80,245,38,246,23,250,236,251,24,247,138,245,246,252,21,0,126,249,158,245,228,248,84,251,86,249,190,245, +191,244,14,248,175,250,237,247,56,244,112,245,176,248,173,247,249,243,87,244,252,246,182,245,44,246,179,253,194,1,111,255, +34,2,235,3,199,248,96,239,166,242,32,244,133,245,60,5,50,17,220,5,74,248,40,250,223,252,238,249,61,252,86,3, +1,7,252,5,152,1,129,252,5,250,78,249,28,251,189,1,3,7,143,4,189,255,193,253,224,251,154,250,15,254,153,3, +216,4,102,1,111,254,58,255,92,1,109,1,87,0,60,0,164,0,180,0,99,0,177,255,5,0,195,2,121,5,100,4, +64,0,121,253,61,254,68,0,169,0,218,255,215,0,240,4,137,8,211,6,13,2,33,1,222,3,146,4,24,3,105,2, +194,2,64,5,40,9,129,8,128,3,94,1,171,0,189,252,201,252,229,5,134,13,133,11,20,6,32,4,30,5,14,6, +194,4,112,1,209,254,11,255,111,2,248,6,32,8,129,4,232,0,231,0,59,2,40,2,177,1,183,2,68,4,216,3, +88,1,9,255,187,253,36,253,118,254,120,1,250,2,59,2,164,1,131,1,99,1,230,2,63,5,206,4,248,1,100,0, +219,0,54,2,239,3,120,4,173,2,253,0,22,2,26,4,98,3,199,0,11,1,0,5,82,7,255,4,177,1,19,1, +242,2,233,5,44,7,3,4,231,255,189,0,141,4,69,5,49,3,255,1,212,1,11,2,85,3,76,4,229,2,16,1, +37,2,22,5,176,5,231,2,53,0,113,0,137,2,250,3,161,3,21,2,65,1,102,2,217,3,108,3,54,2,180,2, +135,4,243,4,213,2,196,0,192,1,67,4,72,4,1,2,59,1,201,2,1,4,132,3,139,2,82,2,253,1,88,0, +95,255,126,1,236,3,66,3,109,2,197,3,46,3,227,255,246,255,44,4,77,6,122,4,152,1,233,254,201,253,154,255, +86,1,100,0,248,255,232,1,155,2,128,0,27,254,195,252,24,253,3,0,243,2,90,2,205,255,82,254,79,253,155,252, +226,253,194,255,227,255,222,255,251,0,212,0,188,254,108,253,102,254,248,0,185,2,168,0,12,252,182,250,220,253,48,0, +231,255,157,0,138,2,91,2,168,0,92,0,103,0,156,254,92,253,103,255,188,1,152,0,152,254,154,255,150,1,135,1, +35,1,202,1,114,1,194,255,248,254,123,255,71,0,44,1,226,1,52,2,148,2,131,2,187,1,12,2,170,3,160,3, +155,1,251,0,34,2,251,1,88,0,65,0,60,2,126,3,139,2,216,0,199,255,185,255,172,1,33,5,92,6,220,3, +115,1,217,1,55,3,125,3,122,2,190,1,204,3,88,6,153,3,167,254,177,255,105,3,5,3,122,3,144,6,165,2, +108,250,181,252,211,5,30,6,106,0,36,0,139,2,158,1,185,255,172,254,15,254,77,255,99,1,238,1,116,1,129,255, +60,252,62,252,46,255,8,255,4,254,233,0,54,2,93,255,109,255,5,1,103,253,111,250,104,253,107,254,226,251,205,253, +98,1,230,255,126,254,127,0,84,0,175,254,209,255,43,0,158,254,33,0,62,2,24,0,143,254,193,0,19,1,115,255, +69,1,199,3,87,2,34,1,26,3,130,3,59,1,68,1,174,3,239,3,214,2,33,4,202,5,35,4,218,1,227,2, +237,4,100,4,142,2,145,1,6,1,168,0,231,0,156,1,152,2,205,2,240,0,26,255,206,255,122,0,96,255,38,0, +104,2,96,0,18,252,26,253,90,1,82,1,59,254,0,253,177,252,218,251,83,252,145,253,67,253,215,252,100,254,191,255, +109,254,103,252,170,252,62,254,58,254,194,252,26,252,63,252,142,251,158,250,76,251,227,252,9,253,249,251,51,252,140,253, +23,253,112,251,134,252,94,255,70,255,117,253,38,254,55,255,147,253,158,252,112,254,135,255,10,255,18,255,141,254,88,253, +87,254,252,255,196,254,165,253,81,255,186,255,188,253,242,253,3,0,216,255,208,254,52,255,202,254,173,253,35,255,128,1, +219,0,251,254,244,254,77,255,144,254,52,254,126,254,43,254,136,253,70,253,236,252,149,252,158,252,57,252,138,251,50,252, +189,253,24,254,111,253,173,252,72,251,117,250,53,252,203,253,11,252,208,250,177,253,211,255,95,253,40,251,91,252,231,252, +87,251,94,251,245,252,193,252,152,251,27,252,13,253,200,252,234,252,13,254,192,253,122,251,100,250,13,252,121,253,240,251, +176,249,90,250,197,252,88,253,227,252,104,254,248,255,232,253,154,250,238,250,61,254,97,0,179,255,150,253,194,252,202,254, +59,1,196,0,174,254,252,253,43,254,237,253,85,254,223,255,233,0,92,0,223,254,174,253,78,253,55,253,83,253,51,254, +222,254,27,254,119,253,82,254,246,254,140,254,148,254,152,254,54,253,120,252,107,254,100,0,108,255,153,253,110,254,178,0, +99,0,185,253,40,253,204,255,167,1,176,0,136,255,68,0,92,1,185,0,62,255,126,255,12,1,239,0,197,255,207,0, +174,2,243,1,81,0,121,0,222,0,124,0,160,0,174,0,31,0,207,0,88,2,56,2,41,1,245,0,174,0,241,255, +70,0,180,1,150,2,27,2,5,1,188,0,19,1,140,0,247,255,2,1,247,1,98,1,115,1,139,2,104,2,239,1, +223,2,157,3,133,3,201,3,55,3,55,1,98,0,88,1,118,2,112,3,210,2,56,255,220,252,81,255,17,2,44,1, +147,255,35,255,112,254,119,254,3,0,80,0,210,254,186,254,113,0,39,1,44,0,21,255,53,254,44,253,47,253,215,254, +197,255,167,254,39,254,153,255,38,0,168,254,46,253,55,252,131,251,95,252,22,254,3,254,151,252,247,251,233,251,115,251, +190,250,154,250,18,252,13,254,157,253,171,251,164,251,104,252,199,251,3,252,197,253,0,254,60,253,242,253,220,254,47,255, +41,0,106,0,69,255,56,255,160,255,129,254,151,254,168,0,151,0,118,255,51,1,83,2,200,255,179,254,229,0,140,1, +7,1,199,2,227,3,252,1,59,1,5,3,144,3,193,2,87,3,240,3,81,2,123,0,220,0,133,2,139,3,64,3, +112,2,208,2,75,4,74,4,147,2,98,2,238,3,23,4,80,3,220,3,239,3,118,2,200,2,33,5,201,5,65,5, +225,5,255,5,89,5,45,6,29,6,45,3,172,2,97,6,78,7,216,3,120,2,7,4,51,4,192,3,8,5,20,6, +129,5,229,4,254,4,140,5,21,6,249,4,61,2,227,0,209,1,124,2,35,2,70,2,190,2,138,2,82,2,206,2, +9,3,225,1,0,0,146,255,76,1,164,2,162,1,93,0,191,0,207,0,183,255,218,255,183,0,80,255,73,253,47,254, +16,0,137,255,87,254,205,254,79,255,220,254,32,255,249,255,152,255,171,254,190,254,241,254,180,254,73,255,21,0,247,254, +6,253,31,253,144,254,176,254,225,253,42,254,235,254,149,254,104,254,205,255,188,0,134,255,15,254,134,253,240,252,12,253, +161,254,135,255,44,255,147,255,244,255,231,254,168,254,169,255,211,254,187,252,166,252,216,253,104,254,234,254,213,254,70,253, +184,252,168,254,232,255,196,254,243,253,112,254,7,254,23,253,5,254,169,255,187,255,176,255,176,0,123,0,204,254,45,254, +206,254,173,255,246,0,94,1,18,0,189,255,253,0,174,0,200,254,193,253,152,253,137,254,74,1,47,3,73,2,250,0, +72,0,31,255,218,254,62,0,3,1,154,0,96,0,242,255,36,255,63,255,239,255,7,0,13,0,92,0,254,255,21,255, +216,254,10,255,188,254,201,254,10,0,192,0,219,255,72,255,169,255,104,255,41,255,242,255,241,255,224,254,219,254,29,255, +89,254,139,254,236,255,233,255,243,254,245,254,68,255,111,255,218,255,98,255,9,254,0,254,88,255,47,0,28,0,147,255, +15,255,130,255,167,0,198,0,128,255,94,254,150,254,186,255,151,0,185,0,124,0,117,0,75,1,29,2,36,1,212,255, +174,0,190,1,7,1,223,0,159,1,40,1,29,1,213,2,133,3,237,2,131,3,109,4,240,3,225,2,226,2,119,4, +229,4,64,2,165,1,255,4,219,4,3,2,143,4,107,6,237,0,4,255,152,3,149,2,235,254,162,1,166,2,36,255, +220,0,127,3,186,255,232,254,70,3,202,2,143,0,7,3,140,3,162,0,255,0,179,2,102,2,18,3,203,3,123,2, +58,2,154,3,164,4,87,5,56,4,68,2,236,3,222,5,178,3,127,3,245,5,233,2,143,255,192,4,25,8,14,2, +148,255,144,5,94,7,125,2,110,0,229,1,41,2,205,2,201,4,184,3,188,255,197,255,240,4,39,7,156,3,117,1, +30,3,63,3,35,2,157,3,7,4,231,0,105,0,169,3,241,3,220,1,108,2,234,2,52,1,112,1,86,2,19,0, +243,255,154,4,143,5,50,1,38,0,101,2,99,1,59,255,81,0,201,1,164,0,242,254,134,255,224,1,238,1,194,254, +219,253,121,0,66,1,181,0,74,2,117,2,212,255,111,255,15,1,155,1,95,2,57,2,182,255,147,255,169,1,71,0, +190,254,254,0,45,1,92,255,254,1,65,4,76,0,5,253,172,254,157,0,108,1,115,1,198,255,137,255,168,1,123,1, +180,255,240,255,134,255,174,253,59,254,49,255,84,253,133,252,192,254,210,255,110,254,94,253,147,253,152,253,217,252,162,253, +190,0,33,1,197,252,247,250,27,255,69,2,120,0,61,253,219,251,145,253,155,0,8,0,140,252,167,252,26,0,218,0, +126,254,108,253,156,255,28,2,251,255,214,250,88,250,13,254,231,254,170,254,28,1,84,0,16,251,59,250,149,253,20,253, +93,251,180,253,24,255,9,253,152,252,187,252,200,249,203,248,201,252,136,254,19,251,30,249,93,251,81,253,53,252,59,249, +182,247,142,250,90,254,195,252,91,248,202,248,165,252,245,252,32,250,129,249,210,251,194,253,208,253,37,253,70,252,172,250, +149,249,45,250,88,250,167,249,109,251,100,254,208,253,209,251,50,252,150,251,139,248,242,247,181,250,100,252,54,251,127,249, +78,249,59,249,7,248,138,248,239,250,194,250,134,249,41,251,115,251,199,248,100,249,218,251,51,250,60,248,66,249,43,249, +9,249,139,251,77,250,95,242,202,237,210,244,206,1,75,9,40,7,250,253,42,240,37,228,160,228,63,242,86,3,117,15, +124,14,1,1,189,249,246,0,188,5,246,0,86,253,237,253,134,1,250,4,202,254,151,248,28,2,13,7,230,251,162,255, +166,14,203,3,211,243,196,254,42,5,150,249,189,254,73,13,220,7,173,254,63,254,89,249,162,248,87,2,251,2,218,251, +200,252,47,255,112,254,149,0,20,0,172,251,132,251,20,253,217,254,134,3,212,2,109,253,217,254,38,255,103,247,238,247, +54,3,105,7,82,0,172,246,90,245,57,0,235,4,162,250,107,248,84,0,50,254,241,254,115,10,56,4,142,243,143,249, +220,3,214,253,52,255,238,7,229,2,221,254,167,4,97,2,110,254,200,2,108,0,26,252,255,3,148,6,78,253,182,253, +42,6,253,7,121,9,180,12,249,9,102,6,99,5,20,2,223,0,76,4,119,4,47,1,211,0,22,3,76,4,99,2, +61,0,175,2,28,4,3,255,41,253,158,1,53,1,234,253,166,255,4,255,171,249,253,248,133,251,153,252,88,0,160,4, +135,3,71,0,101,254,5,254,66,255,180,253,43,250,51,254,195,5,89,4,132,255,130,1,223,5,88,7,10,6,211,2, +199,2,26,6,97,5,125,4,129,10,213,13,224,8,227,6,72,11,127,14,171,14,188,12,166,10,190,12,4,15,30,11, +54,7,58,9,27,12,92,12,79,11,249,9,124,10,81,12,62,12,174,11,214,11,231,10,122,11,0,14,45,13,3,11, +233,10,133,7,33,3,98,6,229,10,12,9,37,8,103,10,127,9,124,7,214,6,187,4,243,3,107,5,87,3,97,0, +73,2,208,3,85,1,205,255,230,0,227,2,65,4,249,1,30,254,31,254,16,255,67,253,249,252,149,254,16,254,227,253, +132,255,152,253,119,248,180,247,21,253,159,1,183,254,99,247,101,245,142,250,197,254,73,254,229,252,55,253,40,254,194,252, +50,248,146,245,248,247,9,250,146,248,77,247,30,247,136,246,189,247,187,250,74,251,115,249,238,247,204,245,149,243,48,244, +135,245,82,245,84,247,240,251,161,252,252,247,159,244,177,246,229,250,111,252,100,252,77,254,132,254,107,248,84,243,201,246, +108,251,206,249,74,247,29,248,217,249,58,252,215,253,64,251,195,248,56,251,255,252,164,250,32,250,251,252,162,254,80,254, +12,253,206,251,161,253,180,0,79,255,132,252,185,254,2,2,186,0,10,254,164,253,129,254,152,255,183,0,247,1,159,3, +190,3,117,1,142,0,128,2,207,3,174,3,169,3,84,3,254,3,234,6,241,7,125,5,86,5,239,8,127,10,86,8, +60,6,69,6,160,7,102,8,123,7,12,6,254,4,130,4,75,6,210,8,220,6,124,2,22,3,210,6,16,7,116,5, +137,5,68,5,18,4,46,4,214,4,138,4,197,3,197,2,47,2,167,2,157,2,165,1,102,1,182,0,30,254,161,252, +25,254,203,255,46,0,68,0,18,0,167,254,193,251,99,249,170,250,200,253,24,254,112,253,236,254,90,254,204,250,18,251, +143,254,145,254,203,253,156,0,171,1,84,254,1,252,146,251,102,250,172,250,254,252,170,253,178,252,240,252,98,254,208,255, +166,0,117,0,250,255,76,0,116,1,14,3,127,3,102,1,247,254,136,254,4,255,7,0,150,1,95,1,53,0,101,1, +12,2,58,255,56,254,99,1,255,2,120,1,159,0,233,0,56,1,158,1,13,1,48,255,95,253,139,252,239,253,122,0, +221,255,101,253,6,255,53,2,68,0,94,252,219,252,152,255,73,0,223,255,42,0,77,0,65,0,199,1,128,3,186,1, +128,254,45,255,127,2,203,4,193,6,60,7,126,4,233,3,26,8,193,9,119,6,244,4,243,6,76,8,19,8,164,7, +53,7,150,6,16,6,215,6,223,8,96,9,130,7,158,5,192,4,250,4,71,6,171,6,125,5,192,4,145,4,132,4, +255,4,178,3,230,0,232,1,0,5,163,3,12,1,92,2,109,3,14,2,168,1,66,1,94,255,26,255,161,0,38,1, +142,0,28,255,104,253,170,253,154,254,61,253,169,251,40,252,171,252,91,252,233,251,64,250,107,248,138,249,93,252,72,253, +41,252,22,250,129,247,215,246,40,249,98,250,146,248,28,248,95,250,206,250,196,248,166,247,217,246,63,245,70,245,250,246, +86,248,150,249,119,249,158,246,7,245,222,246,139,248,163,249,105,251,164,250,194,247,212,247,78,249,130,248,124,248,157,250, +169,251,56,252,43,253,98,251,111,248,145,249,252,252,224,253,208,252,191,251,38,251,55,252,16,254,145,253,83,251,235,250, +4,253,226,254,187,253,133,250,4,250,37,253,221,254,189,253,255,252,106,252,99,251,65,252,68,253,185,251,114,251,75,253, +32,252,142,249,24,250,141,250,150,249,30,251,95,253,79,253,67,253,207,252,210,250,115,251,48,254,3,254,61,253,240,254, +234,255,207,255,44,0,7,255,246,253,0,0,153,1,225,0,23,1,119,1,145,0,67,1,105,3,49,4,201,3,165,2, +105,1,203,1,32,2,82,1,205,2,230,5,93,6,127,5,92,5,109,4,230,3,120,5,18,7,237,7,99,8,117,7, +115,6,247,6,213,7,253,8,238,9,199,8,241,7,223,8,165,7,29,6,43,9,191,11,141,9,178,7,78,7,20,6, +4,7,23,9,140,7,215,5,113,7,88,8,130,7,223,6,130,5,162,4,183,5,45,6,247,5,83,6,48,5,147,4, +93,7,5,8,223,4,86,5,104,8,186,6,37,3,216,2,56,3,243,2,16,4,66,5,13,5,164,4,16,4,133,2, +17,1,85,1,227,2,58,3,216,1,126,1,165,2,175,2,101,1,22,0,231,254,42,255,40,1,104,1,0,255,178,253, +224,254,13,0,77,255,32,253,188,251,192,251,85,251,20,251,118,252,162,252,254,250,200,251,239,252,134,249,226,246,45,250, +188,252,178,250,206,249,88,251,121,251,168,250,52,250,211,249,11,251,18,253,142,252,229,250,177,250,112,250,108,250,47,252, +207,252,40,251,183,250,168,251,0,252,87,252,147,252,234,252,197,254,225,254,31,251,163,249,63,252,73,253,215,253,191,0, +147,0,53,252,8,250,139,250,204,250,147,250,134,249,68,251,195,2,22,6,191,254,221,247,120,247,0,248,67,251,230,1, +103,2,208,253,228,253,250,255,243,254,108,254,4,255,52,255,254,0,194,1,170,254,0,253,193,254,143,255,216,255,51,1, +190,0,86,254,7,253,157,253,32,255,202,255,110,255,94,0,255,0,58,254,108,252,98,255,41,2,109,1,53,0,145,0, +164,1,248,0,74,254,241,254,100,3,82,3,204,254,54,254,116,0,16,1,197,2,152,4,9,2,87,254,177,253,187,254, +43,0,144,0,38,0,142,3,69,8,32,5,191,252,201,248,41,249,22,251,141,255,148,3,171,3,148,1,91,254,202,250, +84,250,127,252,131,253,161,253,22,254,134,253,214,251,58,250,246,248,80,248,9,249,189,251,166,254,139,253,153,249,101,249, +223,251,11,251,80,250,216,253,239,254,175,250,0,249,164,251,45,252,125,250,250,250,6,253,253,253,106,253,140,251,49,250, +222,251,206,254,185,254,22,252,179,250,190,250,156,250,151,251,220,253,86,254,106,253,169,254,117,0,4,255,220,252,127,253, +169,254,91,254,60,254,136,254,146,254,122,255,215,0,221,0,235,255,73,254,24,252,154,252,98,0,89,2,202,1,213,2, +66,4,116,3,216,2,173,2,230,0,232,255,2,1,20,2,255,3,48,6,190,4,125,2,235,3,41,5,46,4,74,4, +57,4,161,3,8,6,20,7,77,2,34,255,148,1,47,4,92,6,152,8,251,6,206,4,16,7,38,8,18,5,227,3, +153,5,171,6,28,7,132,6,246,4,113,5,41,7,108,7,158,7,254,7,47,7,237,6,11,7,74,5,49,4,225,5, +97,7,63,7,0,6,118,3,21,2,157,3,235,4,174,4,216,4,207,4,243,3,240,3,59,4,56,3,180,1,225,0, +60,1,98,2,106,2,116,1,48,2,247,3,34,3,221,255,209,254,44,2,65,5,150,3,74,1,215,2,228,3,200,1, +39,1,62,2,153,1,148,1,121,3,75,3,146,1,185,1,25,2,80,1,116,1,100,2,172,2,220,2,47,3,221,2, +178,1,75,0,204,255,15,0,228,255,66,0,188,1,242,1,27,1,133,1,34,1,231,254,55,255,212,1,252,0,213,253, +60,254,208,0,128,0,105,254,129,254,205,255,75,255,87,254,47,255,154,255,214,253,158,252,71,253,196,253,202,253,160,254, +231,255,72,0,175,254,251,251,115,251,204,253,180,255,231,255,222,255,148,255,156,254,165,253,243,252,1,253,10,254,113,254, +247,253,144,254,165,255,149,255,17,0,129,1,154,0,162,253,241,252,89,254,253,253,130,252,9,253,184,254,151,255,41,0, +236,255,174,253,228,251,132,253,13,1,210,2,229,0,48,253,64,252,43,254,107,254,165,253,78,255,78,0,73,254,135,253, +108,254,147,253,118,253,225,255,172,0,86,255,206,254,22,254,232,252,125,253,172,254,2,255,213,255,61,0,233,254,81,254, +160,255,155,0,150,0,222,0,9,2,11,3,226,1,123,255,159,255,216,1,5,2,141,0,148,0,147,1,25,2,247,2, +146,3,117,1,230,253,228,253,36,2,242,4,128,3,206,1,57,2,89,2,152,1,148,1,108,1,253,255,93,255,249,0, +88,2,182,1,55,1,98,1,163,255,208,253,174,255,150,1,168,255,36,254,246,254,8,255,18,0,187,2,3,2,189,255, +210,0,153,0,36,253,121,253,151,0,252,255,177,254,128,0,199,1,184,0,254,254,60,254,94,0,211,2,65,1,80,255, +148,0,116,0,97,254,55,255,234,0,2,0,192,255,65,1,4,1,8,255,63,254,112,255,0,1,69,1,196,0,120,0, +239,255,29,0,85,1,51,0,86,253,3,254,178,0,185,0,31,0,46,0,195,254,134,254,193,0,61,0,55,253,111,253, +200,255,12,0,54,255,13,255,240,254,67,254,154,253,203,254,100,1,104,1,222,254,255,253,32,254,41,253,89,254,218,1, +12,2,37,255,182,254,77,0,140,255,29,253,152,252,39,254,100,255,32,255,132,253,246,251,50,253,250,0,118,2,82,0, +252,254,50,255,228,253,210,252,127,254,185,255,156,254,9,254,129,254,94,254,223,254,153,0,253,0,232,255,253,255,160,0, +137,255,105,254,137,255,212,0,90,0,173,255,154,255,166,255,121,0,249,0,93,255,104,254,124,0,13,2,220,0,115,255, +208,254,189,254,142,0,176,2,223,1,213,255,185,255,39,0,187,255,88,0,2,2,1,2,155,0,81,0,37,0,93,254, +159,253,124,255,150,0,231,255,249,255,67,0,129,255,58,255,29,255,30,254,129,254,107,0,60,0,192,253,52,252,72,253, +10,0,65,1,135,255,64,254,160,254,243,253,12,253,117,253,89,253,248,253,200,0,87,1,94,255,20,0,34,1,102,254, +117,252,226,253,141,254,151,253,234,252,249,252,130,254,26,0,150,255,128,255,197,0,239,255,50,254,164,254,39,255,46,255, +100,0,70,0,29,254,167,253,58,255,70,1,86,3,122,2,232,254,104,254,151,0,53,0,244,254,42,0,183,1,246,1, +255,0,247,254,184,254,225,0,31,1,169,255,201,0,237,2,0,3,179,2,103,2,144,0,37,255,214,255,120,0,6,0, +43,0,59,1,131,1,70,0,84,255,14,0,106,0,66,255,130,255,202,1,81,2,199,0,111,0,228,0,97,0,70,0, +247,0,245,0,255,0,45,1,152,255,102,254,130,0,235,1,198,255,43,255,186,1,8,2,232,255,4,0,104,1,3,1, +106,0,90,1,160,2,68,3,52,3,61,2,228,0,154,0,255,1,96,3,222,2,155,1,37,1,204,0,175,0,109,1, +116,1,41,1,194,2,184,3,194,1,226,0,69,2,190,1,27,0,249,0,214,2,189,3,240,3,116,2,37,0,33,0, +182,1,90,2,24,2,14,1,93,255,234,254,40,0,67,1,47,1,30,0,15,255,210,254,165,254,72,254,179,254,37,255, +166,254,95,254,151,254,95,254,224,253,68,253,255,252,224,253,82,254,127,253,208,253,117,254,196,252,138,251,156,252,135,252, +161,251,100,252,140,252,6,252,120,253,5,254,247,251,127,251,92,252,117,251,24,251,220,251,141,250,62,249,228,250,118,252, +88,252,191,252,93,253,166,252,67,251,117,250,248,250,32,252,34,252,71,251,33,251,128,251,12,252,245,252,113,253,64,253, +177,252,155,251,163,251,219,253,191,254,137,252,55,251,98,252,52,253,227,252,119,252,97,252,123,253,204,254,6,254,226,252, +207,253,83,254,18,253,24,253,93,254,253,253,71,253,72,254,188,254,173,253,176,253,184,254,142,254,232,253,18,254,89,254, +208,254,179,255,137,255,110,254,24,254,27,254,230,253,148,254,102,255,29,255,99,255,179,0,162,0,55,255,219,254,216,255, +194,0,194,0,71,0,106,0,176,0,29,0,55,0,154,1,186,1,126,0,79,0,142,0,19,0,80,0,104,1,21,2, +70,2,152,1,126,0,75,1,16,3,145,2,5,1,50,1,11,2,42,2,246,1,154,1,194,1,246,2,186,3,85,3, +238,2,143,2,3,2,83,2,60,3,70,3,163,2,59,2,5,2,239,1,27,2,84,2,110,2,106,2,78,2,64,2, +85,2,59,2,144,1,223,0,120,1,242,2,17,3,175,1,236,0,4,1,180,0,122,0,51,1,24,2,85,2,239,1, +230,0,170,255,134,255,8,1,160,2,130,2,117,1,66,1,147,1,131,1,142,1,168,1,70,1,38,1,136,1,55,1, +74,0,1,0,109,0,248,0,124,1,165,1,249,0,161,255,212,254,129,255,130,0,204,0,138,1,150,2,220,1,42,0, +180,255,214,255,46,0,198,1,62,3,210,2,161,1,219,0,159,0,13,1,35,1,140,0,247,0,15,2,215,1,221,0, +100,0,125,0,129,1,88,2,130,1,2,1,6,2,206,1,113,0,170,0,60,1,158,0,252,0,173,2,65,3,86,2, +78,1,39,1,224,1,65,2,8,2,53,2,45,2,115,1,140,1,77,2,85,2,99,2,115,2,82,1,123,0,25,1, +128,1,179,1,158,2,114,2,193,0,38,0,10,1,145,1,49,1,110,0,242,255,36,0,161,0,34,1,97,1,219,0, +141,0,71,1,29,1,118,255,15,255,224,0,177,2,129,2,140,0,163,255,253,0,88,1,48,0,44,1,162,2,38,1, +69,0,115,1,105,0,209,254,93,0,108,1,179,0,186,1,120,2,247,0,57,1,191,2,205,1,226,0,155,1,248,0, +222,255,90,0,160,0,254,0,155,2,186,2,57,1,75,1,22,2,227,1,24,2,92,2,154,1,178,1,229,2,2,3, +86,2,12,2,123,1,235,0,82,1,156,1,0,1,37,1,140,2,182,2,241,0,32,0,208,0,138,0,51,0,162,1, +225,1,184,255,123,255,191,1,89,2,72,1,36,1,74,1,173,0,92,0,0,1,84,1,235,255,175,254,112,0,37,2, +60,0,180,254,75,0,9,1,94,0,168,0,27,0,45,255,144,0,237,0,237,254,169,255,214,1,172,0,132,255,146,0, +28,0,75,255,204,0,161,1,239,0,196,0,61,0,237,255,81,1,152,1,81,0,0,1,92,2,208,1,107,1,223,1, +181,1,164,1,214,1,217,1,153,2,231,2,181,1,160,1,139,2,172,1,176,0,23,1,123,0,99,255,215,255,95,0, +97,0,178,0,155,0,215,0,151,1,61,0,173,254,196,0,141,2,111,0,41,255,200,0,90,1,75,0,210,255,40,0, +140,0,250,255,13,255,40,0,218,1,2,1,123,255,102,255,124,255,7,0,105,1,119,1,10,0,176,254,105,254,150,0, +131,2,195,255,11,253,207,255,69,2,174,0,188,255,152,255,189,254,36,0,98,1,223,254,231,253,57,0,167,0,134,0, +185,1,108,0,231,254,223,0,35,1,154,254,162,254,99,255,119,254,123,255,177,0,187,254,188,253,217,254,76,254,156,253, +44,254,109,253,58,253,150,255,79,0,45,254,109,253,228,254,92,255,233,252,190,249,47,250,100,253,129,254,244,253,102,254, +114,254,14,254,43,254,107,252,101,250,192,252,224,255,82,254,97,251,235,250,164,251,179,252,252,253,71,254,94,253,155,252, +102,253,18,254,93,251,208,248,159,251,134,254,177,252,169,251,222,252,196,252,239,253,23,255,249,250,96,247,218,247,241,244, +193,242,90,250,53,2,59,2,114,1,24,255,235,245,13,238,28,239,151,246,41,0,246,4,28,1,168,251,29,250,250,250, +178,253,81,255,123,252,107,250,24,253,56,255,174,252,94,248,5,248,24,252,252,253,184,253,149,0,236,0,246,251,192,251, +76,254,133,250,72,248,179,252,67,255,110,255,76,255,105,252,195,252,46,1,181,254,228,248,57,250,53,253,50,253,200,253, +119,253,169,252,175,253,229,251,125,249,39,253,81,255,22,251,187,250,79,255,147,255,233,252,207,252,68,253,64,251,70,248, +39,249,206,253,123,254,149,251,122,253,99,0,251,253,240,252,179,254,232,252,228,251,36,255,78,0,113,0,146,2,117,1, +209,255,40,3,88,3,27,254,124,253,106,255,198,252,108,251,101,254,223,255,243,255,100,1,30,3,125,4,239,3,169,1, +86,2,17,4,233,1,50,1,26,4,135,2,32,254,65,255,61,2,167,1,135,0,138,0,140,1,160,3,26,3,62,0, +81,0,74,1,222,255,31,0,16,2,230,1,172,1,245,0,240,252,193,251,130,0,210,2,27,1,230,1,167,3,37,2, +222,255,33,255,111,255,130,0,156,1,150,2,123,3,109,3,223,3,253,4,161,2,164,254,115,255,68,2,176,2,88,4, +210,6,250,5,83,5,66,6,35,4,73,2,63,5,22,7,146,5,119,6,98,8,149,6,17,4,224,3,227,3,139,3, +135,4,94,6,201,6,172,5,29,6,29,8,72,7,113,4,157,4,207,5,245,3,106,2,115,4,245,6,147,6,199,3, +247,1,156,3,89,6,74,7,205,6,182,4,38,2,151,2,16,4,61,3,107,3,155,4,181,2,24,2,65,5,208,3, +89,254,77,255,108,4,61,5,63,3,221,0,24,254,40,255,111,3,220,3,122,1,166,1,191,1,62,255,60,254,249,255, +201,1,222,3,114,5,200,2,184,253,119,252,245,254,24,1,162,2,134,3,229,1,82,255,51,254,177,253,91,254,50,1, +249,2,17,2,66,1,6,1,130,0,186,0,150,0,8,255,207,254,40,0,45,0,94,255,7,255,233,254,5,0,183,0, +173,253,183,250,67,252,100,254,181,254,10,0,255,0,111,255,15,254,62,253,118,251,247,250,49,252,251,252,91,254,210,255, +65,254,63,252,53,253,167,253,34,252,130,252,44,254,133,253,134,251,117,250,109,250,92,251,134,252,15,253,1,254,151,255, +225,255,164,254,182,253,182,253,212,253,163,253,129,253,175,253,205,253,195,253,172,253,240,252,15,252,220,252,115,254,40,254, +209,252,170,252,20,253,81,253,6,254,141,254,19,254,148,253,245,253,12,255,33,0,250,255,147,254,159,253,210,253,83,254, +117,254,250,253,168,253,153,254,115,255,149,254,213,253,192,254,137,255,69,255,252,254,144,254,241,253,90,254,171,255,82,0, +174,255,156,254,209,254,139,0,107,1,171,0,156,0,148,1,218,1,12,2,253,2,67,3,152,2,40,2,242,1,31,2, +245,2,27,3,127,2,200,2,46,3,128,2,157,2,225,3,2,4,140,3,236,3,93,3,214,1,59,2,227,3,37,4, +28,4,12,5,2,5,21,3,193,0,80,255,188,255,153,1,102,2,202,1,250,1,120,2,123,1,122,0,221,0,61,1, +63,1,216,1,63,2,198,1,94,1,67,1,211,0,14,0,90,255,120,255,142,0,44,1,6,1,142,1,238,1,141,0, +78,255,121,255,34,255,187,254,70,0,111,1,244,255,169,254,75,255,173,255,122,255,48,0,15,1,5,1,146,0,165,255, +44,254,173,253,162,254,83,255,69,255,161,255,24,0,197,255,186,255,178,0,10,1,251,255,6,255,15,255,163,255,42,0, +236,255,18,255,169,254,109,254,13,254,141,254,45,255,108,254,253,253,189,254,109,254,217,253,6,255,70,255,148,253,193,253, +190,255,169,0,134,1,129,2,141,1,154,0,148,1,12,2,176,1,76,2,178,2,169,2,224,3,158,4,41,3,9,2, +77,3,207,5,174,6,227,3,199,0,224,1,229,3,194,2,82,2,130,4,233,4,116,3,116,3,127,3,74,2,114,2, +30,4,72,4,120,2,46,1,210,1,173,2,231,1,185,0,83,0,216,255,0,0,199,1,195,2,193,1,36,1,40,1, +88,0,183,255,199,255,118,255,206,255,25,1,142,0,89,254,224,253,103,254,46,253,74,252,108,254,7,1,52,1,255,255, +129,254,176,252,72,252,80,254,219,255,153,254,229,252,125,253,15,255,222,254,39,253,103,252,94,253,53,254,218,253,84,253, +105,253,177,253,171,253,63,253,212,252,199,252,156,252,59,252,105,252,174,252,12,252,165,251,70,252,71,252,50,251,168,250, +165,250,103,250,30,251,2,253,186,253,107,252,31,251,57,251,225,251,18,252,2,252,91,252,251,252,58,253,250,252,154,252, +63,252,223,251,226,251,180,252,134,253,69,253,200,252,69,253,156,253,206,252,85,252,231,252,81,253,187,253,220,254,95,255, +84,254,38,253,45,253,60,254,68,255,99,255,71,255,223,255,16,0,36,255,163,254,15,255,98,255,210,255,141,0,149,0, +64,0,102,0,82,0,254,255,126,0,96,1,185,1,182,1,81,1,184,0,218,0,63,1,210,0,108,0,231,0,93,1, +82,1,64,1,75,1,134,1,246,1,65,2,97,2,114,2,61,2,32,2,148,2,247,2,184,2,82,2,123,2,135,3, +204,4,203,4,118,3,81,2,226,1,15,2,26,3,24,4,209,3,41,3,62,3,158,3,217,3,197,3,50,3,11,3, +197,3,240,3,62,3,40,3,157,3,160,3,109,3,3,3,20,2,169,1,104,2,53,3,68,3,218,2,82,2,5,2, +232,1,192,1,37,2,43,3,107,3,153,2,241,1,119,1,165,0,126,0,125,1,58,2,20,2,17,2,120,2,81,2, +113,1,15,1,207,1,147,2,34,2,34,1,47,1,81,2,213,2,217,1,141,0,29,0,46,0,97,0,240,0,97,1, +29,1,137,0,191,255,158,254,88,254,114,255,239,255,199,254,234,253,168,254,169,255,114,255,74,254,141,253,6,254,241,254, +22,255,120,254,229,253,229,253,184,254,226,255,226,255,234,253,157,251,124,251,92,253,59,254,231,252,53,252,21,254,189,255, +17,254,110,250,93,248,134,249,10,253,19,0,8,0,49,254,12,254,27,255,237,253,6,251,56,250,63,252,166,254,134,255, +122,254,232,252,248,252,40,254,61,254,142,253,153,253,144,253,102,252,37,251,108,251,185,253,156,0,123,1,190,255,11,254, +217,254,201,0,249,255,80,252,44,251,188,254,149,1,44,0,57,254,182,254,166,255,13,255,113,253,146,252,212,253,246,255, +55,0,92,254,67,252,72,251,31,252,60,254,238,255,153,0,75,0,138,254,74,252,130,251,88,252,68,254,188,0,99,1, +223,254,35,252,13,252,173,253,31,255,157,255,47,255,222,254,27,255,195,254,9,254,204,254,110,0,7,0,71,253,88,251, +149,252,123,255,138,0,231,254,100,253,59,254,56,0,61,1,243,0,11,0,249,254,19,254,211,253,153,254,53,0,120,1, +21,1,93,255,246,253,112,253,3,253,157,252,242,252,1,254,88,255,157,0,248,0,0,0,202,254,49,254,187,253,59,253, +33,253,62,253,95,253,227,253,126,254,105,254,232,253,204,253,8,254,254,253,150,253,120,253,51,254,18,255,211,254,129,253, +99,252,97,252,140,253,35,255,187,255,183,254,42,253,102,252,205,252,36,254,163,255,81,0,42,0,3,0,64,0,187,0, +35,1,15,1,176,0,211,0,109,1,176,1,181,1,29,2,170,2,189,2,35,2,225,0,143,255,72,255,24,0,205,0, +222,0,243,0,146,1,88,2,96,2,92,1,66,0,242,255,240,255,185,255,16,0,128,1,237,2,219,2,94,1,25,0, +78,0,63,1,106,1,226,0,20,1,108,2,141,3,255,2,47,1,30,0,206,0,252,1,66,2,10,2,113,2,127,3, +63,4,225,3,166,2,181,1,246,1,43,3,42,4,234,3,180,2,1,2,165,2,185,3,224,3,17,3,148,2,82,3, +147,4,233,4,59,4,153,3,95,3,2,3,136,2,159,2,88,3,233,3,212,3,140,3,136,3,83,3,95,2,80,1, +110,1,224,2,50,4,19,4,24,3,206,2,104,3,185,3,55,3,175,2,4,3,224,3,213,3,71,2,189,0,8,1, +224,2,126,4,163,4,126,3,106,2,150,2,133,3,212,3,40,3,79,2,10,2,93,2,167,2,162,2,4,3,21,4, +156,4,144,3,181,1,180,0,78,1,190,2,139,3,41,3,100,2,11,2,15,2,249,1,142,1,41,1,96,1,25,2, +121,2,21,2,98,1,242,0,197,0,120,0,1,0,13,0,248,0,217,1,145,1,103,0,163,255,216,255,106,0,139,0, +40,0,193,255,145,255,72,255,223,254,248,254,199,255,98,0,16,0,65,255,192,254,196,254,0,255,35,255,69,255,189,255, +91,0,137,0,58,0,214,255,136,255,117,255,216,255,107,0,128,0,228,255,29,255,197,254,222,254,233,254,185,254,197,254, +84,255,241,255,16,0,202,255,138,255,63,255,132,254,143,253,75,253,15,254,1,255,47,255,169,254,20,254,177,253,71,253, +233,252,8,253,170,253,11,254,141,253,154,252,51,252,170,252,50,253,2,253,105,252,68,252,184,252,38,253,19,253,162,252, +82,252,112,252,197,252,233,252,197,252,148,252,159,252,252,252,108,253,146,253,108,253,90,253,169,253,56,254,161,254,177,254, +142,254,120,254,135,254,171,254,197,254,197,254,214,254,55,255,225,255,114,0,139,0,46,0,200,255,166,255,158,255,108,255, +60,255,114,255,250,255,56,0,197,255,14,255,241,254,186,255,205,0,90,1,41,1,172,0,108,0,138,0,189,0,194,0, +169,0,175,0,228,0,14,1,243,0,165,0,113,0,124,0,171,0,232,0,63,1,140,1,107,1,188,0,7,0,255,255, +145,0,246,0,206,0,160,0,237,0,60,1,180,0,137,255,244,254,144,255,124,0,154,0,23,0,0,0,146,0,227,0, +95,0,186,255,228,255,147,0,161,0,179,255,194,254,212,254,186,255,109,0,74,0,142,255,213,254,132,254,172,254,41,255, +191,255,44,0,68,0,238,255,48,255,83,254,227,253,53,254,3,255,175,255,251,255,30,0,46,0,213,255,247,254,49,254, +49,254,192,254,9,255,207,254,188,254,78,255,11,0,57,0,232,255,177,255,158,255,47,255,107,254,47,254,252,254,18,0, +89,0,210,255,115,255,172,255,206,255,53,255,105,254,132,254,167,255,174,0,125,0,74,255,83,254,116,254,98,255,45,0, +89,0,40,0,2,0,230,255,163,255,98,255,134,255,11,0,88,0,5,0,119,255,108,255,5,0,158,0,158,0,25,0, +151,255,129,255,226,255,121,0,201,0,115,0,171,255,50,255,128,255,45,0,131,0,111,0,128,0,238,0,57,1,245,0, +103,0,22,0,13,0,16,0,48,0,174,0,83,1,133,1,41,1,215,0,247,0,30,1,185,0,3,0,193,255,47,0, +183,0,204,0,146,0,124,0,160,0,181,0,145,0,75,0,13,0,242,255,0,0,12,0,210,255,92,255,43,255,160,255, +77,0,98,0,201,255,92,255,188,255,96,0,83,0,142,255,12,255,113,255,61,0,138,0,41,0,152,255,63,255,42,255, +81,255,184,255,49,0,101,0,67,0,24,0,17,0,244,255,149,255,64,255,87,255,166,255,153,255,40,255,12,255,201,255, +217,0,39,1,94,0,73,255,227,254,76,255,213,255,234,255,160,255,112,255,145,255,202,255,200,255,140,255,111,255,181,255, +57,0,142,0,126,0,57,0,15,0,17,0,23,0,10,0,0,0,18,0,42,0,30,0,221,255,127,255,51,255,38,255, +101,255,197,255,246,255,209,255,131,255,86,255,88,255,93,255,92,255,133,255,246,255,108,0,127,0,25,0,145,255,73,255, +91,255,167,255,4,0,82,0,120,0,110,0,82,0,76,0,110,0,165,0,204,0,198,0,145,0,81,0,61,0,100,0, +154,0,172,0,162,0,167,0,177,0,140,0,63,0,42,0,133,0,243,0,237,0,133,0,96,0,205,0,75,1,56,1, +177,0,91,0,121,0,161,0,117,0,43,0,36,0,66,0,31,0,182,255,113,255,143,255,207,255,230,255,240,255,41,0, +108,0,83,0,202,255,60,255,22,255,88,255,185,255,251,255,12,0,223,255,118,255,248,254,170,254,174,254,218,254,226,254, +155,254,36,254,207,253,222,253,56,254,116,254,65,254,202,253,135,253,175,253,252,253,22,254,4,254,9,254,43,254,46,254, +248,253,194,253,189,253,202,253,189,253,183,253,248,253,98,254,119,254,254,253,95,253,56,253,159,253,28,254,65,254,32,254, +14,254,39,254,66,254,62,254,52,254,71,254,105,254,108,254,64,254,20,254,27,254,83,254,139,254,167,254,188,254,214,254, +205,254,120,254,253,253,196,253,1,254,114,254,180,254,170,254,120,254,52,254,233,253,204,253,35,254,212,254,79,255,47,255, +183,254,124,254,163,254,195,254,149,254,89,254,104,254,173,254,206,254,179,254,155,254,166,254,177,254,162,254,163,254,221,254, +52,255,113,255,138,255,144,255,112,255,21,255,184,254,194,254,84,255,10,0,100,0,69,0,243,255,188,255,191,255,243,255, +53,0,97,0,109,0,117,0,141,0,147,0,103,0,51,0,76,0,170,0,227,0,188,0,143,0,195,0,38,1,38,1, +178,0,101,0,181,0,78,1,143,1,108,1,97,1,176,1,11,2,24,2,242,1,231,1,6,2,33,2,40,2,47,2, +47,2,15,2,242,1,35,2,165,2,5,3,215,2,70,2,228,1,2,2,95,2,143,2,121,2,80,2,57,2,38,2, +11,2,9,2,71,2,169,2,222,2,181,2,91,2,45,2,76,2,118,2,88,2,254,1,207,1,240,1,7,2,217,1, +139,1,82,1,62,1,46,1,9,1,10,1,102,1,221,1,19,2,228,1,115,1,49,1,73,1,76,1,34,1,59,1, +124,1,113,1,53,1,251,0,191,0,194,0,20,1,77,1,85,1,64,1,218,0,105,0,145,0,35,1,124,1,122,1, +52,1,185,0,67,0,7,0,49,0,211,0,104,1,96,1,3,1,179,0,86,0,19,0,75,0,203,0,32,1,48,1, +9,1,222,0,234,0,243,0,181,0,149,0,232,0,29,1,184,0,37,0,241,255,46,0,165,0,246,0,222,0,185,0, +217,0,213,0,109,0,34,0,51,0,108,0,187,0,208,0,87,0,223,255,242,255,36,0,42,0,59,0,53,0,249,255, +210,255,230,255,86,0,251,0,250,0,86,0,74,0,199,0,199,0,149,0,160,0,117,0,105,0,214,0,235,0,165,0, +163,0,77,0,195,255,93,0,102,1,41,1,81,0,22,0,60,0,136,0,218,0,209,0,176,0,170,0,129,0,149,0, +197,0,45,0,151,255,24,0,91,0,180,255,161,255,49,0,99,0,135,0,117,0,185,255,148,255,166,0,112,1,9,1, +55,0,232,255,46,0,85,0,49,0,110,0,227,0,216,0,148,0,97,0,1,0,241,255,141,0,11,1,246,0,177,0, +155,0,221,0,229,0,48,0,7,0,18,1,96,1,104,0,23,0,106,0,24,0,213,255,78,0,219,0,41,1,211,0, +193,255,127,255,145,0,34,1,60,0,153,254,178,253,49,255,115,1,167,0,66,254,58,254,25,255,9,255,181,255,140,255, +62,253,2,254,28,2,144,1,41,253,126,253,242,0,138,0,137,254,150,255,97,1,202,0,49,255,48,255,181,0,1,1, +156,255,185,255,75,1,215,0,143,255,109,0,255,0,152,255,23,0,9,3,21,3,89,255,33,254,18,2,205,4,155,1, +252,253,133,255,90,2,36,2,208,0,255,255,226,255,135,1,58,2,36,255,115,253,72,1,236,4,139,3,3,0,73,254, +201,255,66,2,139,1,161,255,57,1,17,3,115,1,45,0,92,0,135,255,27,0,87,2,169,1,249,255,31,1,175,1, +241,255,70,254,73,252,35,252,59,1,176,5,96,4,66,2,154,0,184,251,86,247,7,248,201,252,239,4,16,11,164,6, +167,253,145,252,190,0,117,2,75,2,15,1,178,255,169,1,166,3,31,1,159,254,223,254,197,255,70,3,158,6,39,2, +17,252,61,254,215,1,45,0,154,255,243,1,54,2,80,0,163,253,205,251,112,254,22,2,197,0,246,254,87,0,151,255, +204,252,250,252,180,254,39,0,103,1,68,255,36,252,195,254,130,2,93,0,106,253,101,253,183,252,39,253,252,0,177,2, +194,255,28,252,82,250,201,251,94,255,239,255,127,253,143,252,35,252,128,251,234,253,245,255,5,253,110,251,188,255,35,3, +233,1,25,0,126,255,85,255,39,255,154,253,140,251,178,251,21,253,123,253,29,253,17,252,248,250,85,251,180,251,107,251, +205,253,133,1,156,0,146,252,128,251,155,252,44,252,217,250,93,250,251,250,89,252,2,253,126,252,126,252,34,253,12,253, +171,252,58,252,168,250,62,249,108,250,249,252,254,253,160,253,174,253,141,253,83,251,121,248,234,248,74,252,34,254,133,253, +102,253,237,253,231,252,178,250,72,249,148,249,175,251,89,254,21,255,182,253,213,252,36,253,219,252,12,252,169,252,135,254, +98,255,194,254,55,254,237,253,53,253,76,253,13,255,182,0,24,1,169,0,108,255,102,254,77,255,134,0,200,255,212,254, +97,255,246,255,43,0,241,0,135,1,99,1,50,1,175,0,217,255,235,255,214,0,146,1,10,2,66,2,54,2,80,2, +53,2,144,1,83,1,162,1,164,1,149,1,104,1,138,0,115,0,16,2,241,2,229,1,38,1,164,1,92,2,9,3, +70,3,132,2,197,1,193,1,121,1,185,0,69,0,26,0,74,0,5,1,54,1,75,0,205,255,152,0,94,1,32,1, +49,0,96,255,231,255,229,1,152,2,242,255,224,252,82,253,36,0,198,1,225,1,12,2,35,2,47,1,162,255,153,254, +63,254,18,254,96,254,235,255,0,2,208,2,216,1,76,0,190,255,139,0,224,0,47,255,123,253,230,253,201,254,9,255, +97,0,244,1,32,1,165,255,36,0,192,0,235,255,146,255,138,0,173,1,107,2,240,1,222,255,150,254,238,255,175,1, +18,1,210,254,217,253,122,255,171,1,206,1,161,0,109,0,225,0,158,0,74,0,131,0,135,0,54,0,253,255,28,0, +42,1,137,2,31,2,45,0,137,255,26,1,17,3,113,3,192,1,104,0,208,1,88,3,204,1,76,0,181,1,69,2, +70,0,26,0,96,2,190,2,36,1,246,0,32,2,204,2,225,2,203,2,242,2,163,3,213,3,211,2,233,1,5,2, +126,2,157,2,47,2,194,1,87,2,25,3,94,2,77,1,142,1,148,1,95,0,3,0,7,1,156,1,164,1,214,1, +162,1,76,1,190,1,57,2,1,2,163,1,7,1,66,0,205,0,31,2,156,1,234,255,56,0,24,2,122,2,58,1, +123,0,241,0,13,2,47,3,105,3,111,2,121,1,75,1,1,1,102,0,200,0,29,2,108,2,44,1,48,0,157,0, +118,1,93,1,180,0,27,1,116,2,100,2,157,0,197,255,65,0,180,255,132,254,10,255,88,0,9,0,159,254,13,254, +241,254,68,0,49,0,206,254,151,254,140,255,29,255,24,254,221,254,174,255,211,254,120,254,28,255,175,254,233,253,29,254, +254,253,195,253,214,254,102,255,63,254,228,253,187,254,104,254,113,253,158,253,98,254,48,255,245,255,162,255,136,254,51,254, +44,254,245,253,190,254,210,255,121,255,234,254,90,255,93,255,192,254,213,254,97,255,42,0,154,1,86,2,136,1,210,0, +105,0,58,255,202,254,6,0,135,0,199,255,222,255,88,0,216,255,154,255,9,0,141,255,120,254,85,254,225,254,98,255, +173,255,104,255,247,254,38,255,56,255,115,254,226,253,49,254,187,254,59,255,201,255,38,0,46,0,212,255,103,255,159,255, +235,255,35,255,139,254,167,255,168,0,247,255,50,255,87,255,141,255,229,255,18,0,247,254,48,254,11,0,98,2,241,1, +196,255,198,254,225,255,218,1,89,2,208,0,248,255,47,1,215,1,108,0,253,254,41,255,104,0,185,1,87,2,74,2, +13,2,46,1,230,255,228,255,195,0,134,0,65,0,132,1,20,2,163,0,183,255,28,0,50,0,59,0,160,0,49,0, +190,255,190,0,99,1,129,0,115,0,186,1,215,1,164,0,37,0,141,0,209,0,141,0,3,0,231,255,78,0,79,0, +51,0,8,1,182,1,207,0,204,255,65,0,16,1,21,1,204,0,197,0,240,0,231,0,104,0,90,0,109,1,217,1, +123,0,213,255,41,1,158,1,60,0,207,255,187,0,199,0,92,0,248,0,90,1,86,0,90,255,118,255,229,255,255,255, +223,255,221,255,24,0,232,255,227,254,59,254,231,254,216,255,0,0,177,255,13,255,59,254,81,254,99,255,198,255,236,254, +21,254,8,254,165,254,157,255,65,0,35,0,196,255,132,255,87,255,137,255,222,255,127,255,237,254,50,255,160,255,129,255, +201,255,120,0,32,0,46,255,54,255,190,255,166,255,132,255,246,255,94,0,75,0,244,255,157,255,118,255,126,255,169,255, +251,255,213,255,230,254,170,254,187,255,230,255,144,254,131,254,61,0,251,0,86,0,251,255,176,255,51,255,164,255,137,0, +160,0,177,0,24,1,169,0,247,255,23,0,187,255,201,254,149,255,104,1,36,1,166,255,203,255,165,0,35,0,84,255, +181,255,136,0,196,0,125,0,23,0,229,255,16,0,89,0,94,0,9,0,193,255,252,255,107,0,103,0,48,0,70,0, +45,0,155,255,104,255,217,255,251,255,149,255,143,255,22,0,101,0,55,0,234,255,127,255,4,255,8,255,121,255,135,255, +45,255,57,255,101,255,202,254,47,254,192,254,116,255,49,255,252,254,88,255,67,255,169,254,27,254,157,253,188,253,179,254, +53,255,212,254,156,254,179,254,209,254,22,255,230,254,77,254,154,254,70,255,220,254,71,254,109,254,108,254,149,254,125,255, +169,255,184,254,104,254,237,254,65,255,87,255,70,255,64,255,194,255,242,255,246,254,64,254,213,254,110,255,93,255,96,255, +133,255,131,255,208,255,140,0,222,0,67,0,95,255,216,254,161,254,252,254,31,0,241,0,208,0,224,0,140,1,178,1, +197,0,119,255,120,255,84,1,200,1,82,255,20,255,229,2,73,4,156,1,45,0,221,255,174,254,48,0,132,3,186,2, +18,0,202,0,253,1,223,0,235,255,147,255,98,255,237,0,181,2,79,2,82,1,108,0,191,254,195,254,124,1,20,3, +20,2,210,0,53,0,26,0,121,0,90,0,228,255,99,0,101,1,248,1,54,2,185,1,181,0,225,0,8,2,180,1, +151,255,157,254,99,0,26,2,4,1,165,255,147,0,8,1,209,255,89,0,31,2,133,1,61,0,247,0,101,1,50,0, +124,255,14,0,79,1,105,2,223,1,47,0,122,255,171,255,1,0,149,0,73,0,21,255,77,255,133,0,96,0,176,255, +212,255,21,0,103,0,181,0,25,0,123,255,147,255,30,255,181,254,179,255,112,0,37,0,135,0,22,1,85,0,39,255, +138,254,211,254,34,0,163,0,124,255,62,255,20,0,65,255,224,253,117,254,129,255,157,255,181,255,153,255,30,255,89,255, +195,255,103,255,49,255,111,255,75,255,12,255,17,255,0,255,17,255,102,255,106,255,9,255,157,254,114,254,225,254,123,255, +112,255,7,255,169,254,69,254,107,254,77,255,223,255,170,255,34,255,184,254,3,255,158,255,21,255,235,253,215,253,63,254, +38,254,75,254,124,254,198,253,37,253,137,253,37,254,107,254,80,254,212,253,195,253,41,254,232,253,132,253,63,254,12,255, +196,254,59,254,228,253,152,253,236,253,153,254,134,254,47,254,121,254,169,254,58,254,240,253,31,254,118,254,248,254,83,255, +200,254,195,253,144,253,48,254,126,254,96,254,146,254,235,254,199,254,96,254,99,254,244,254,83,255,213,254,68,254,175,254, +79,255,254,254,103,254,124,254,223,254,85,255,251,255,3,0,38,255,235,254,231,255,113,0,193,255,25,255,69,255,170,255, +164,255,51,255,240,254,112,255,25,0,218,255,40,255,73,255,1,0,24,0,117,255,22,255,144,255,78,0,55,0,74,255, +224,254,145,255,98,0,166,0,156,0,65,0,155,255,78,255,126,255,164,255,215,255,48,0,10,0,140,255,194,255,89,0, +32,0,145,255,207,255,93,0,92,0,63,0,137,0,208,0,184,0,121,0,93,0,139,0,241,0,68,1,78,1,42,1, +29,1,79,1,124,1,79,1,54,1,195,1,84,2,31,2,219,1,93,2,212,2,94,2,161,1,110,1,182,1,70,2, +220,2,240,2,134,2,71,2,93,2,122,2,163,2,232,2,254,2,210,2,162,2,118,2,59,2,26,2,39,2,61,2, +89,2,163,2,10,3,57,3,237,2,75,2,211,1,205,1,240,1,210,1,141,1,145,1,214,1,194,1,56,1,37,1, +252,1,131,2,197,1,2,1,163,1,165,2,114,2,152,1,95,1,121,1,55,1,63,1,15,2,176,2,116,2,10,2, +223,1,159,1,151,1,73,2,215,2,65,2,133,1,253,1,226,2,195,2,253,1,194,1,27,2,111,2,173,2,248,2, +12,3,152,2,232,1,218,1,171,2,66,3,178,2,221,1,247,1,106,2,36,2,159,1,181,1,221,1,121,1,65,1, +182,1,238,1,60,1,148,0,225,0,112,1,64,1,169,0,111,0,78,0,207,255,120,255,209,255,61,0,255,255,109,255, +70,255,164,255,22,0,34,0,171,255,22,255,199,254,162,254,129,254,166,254,21,255,72,255,43,255,96,255,232,255,209,255, +213,254,23,254,129,254,109,255,205,255,155,255,94,255,50,255,6,255,234,254,214,254,227,254,99,255,249,255,193,255,233,254, +158,254,44,255,198,255,249,255,217,255,147,255,157,255,26,0,73,0,229,255,203,255,43,0,62,0,30,0,95,0,124,0, +41,0,64,0,173,0,71,0,121,255,160,255,56,0,13,0,143,255,96,255,36,255,23,255,202,255,99,0,236,255,59,255, +71,255,145,255,153,255,175,255,182,255,40,255,108,254,106,254,254,254,35,255,172,254,140,254,26,255,132,255,140,255,217,255, +10,0,60,255,95,254,200,254,124,255,43,255,161,254,164,254,169,254,208,254,112,255,131,255,246,254,87,255,13,0,20,255, +202,253,167,254,238,255,28,255,241,253,136,254,120,255,120,255,92,255,94,255,37,255,80,255,183,255,43,255,69,254,148,254, +126,255,176,255,136,255,158,255,162,255,175,255,3,0,4,0,142,255,108,255,193,255,234,255,199,255,141,255,94,255,143,255, +254,255,228,255,74,255,13,255,59,255,90,255,139,255,190,255,111,255,249,254,31,255,113,255,73,255,39,255,109,255,155,255, +128,255,121,255,134,255,122,255,99,255,76,255,96,255,224,255,87,0,34,0,169,255,164,255,231,255,25,0,63,0,30,0, +146,255,61,255,110,255,158,255,165,255,201,255,199,255,152,255,227,255,127,0,92,0,141,255,40,255,86,255,137,255,168,255, +165,255,90,255,89,255,28,0,196,0,114,0,208,255,224,255,99,0,143,0,70,0,250,255,3,0,69,0,72,0,226,255, +139,255,169,255,253,255,24,0,255,255,252,255,36,0,79,0,92,0,63,0,3,0,192,255,153,255,163,255,197,255,196,255, +154,255,125,255,134,255,155,255,141,255,80,255,56,255,148,255,8,0,4,0,173,255,108,255,62,255,22,255,35,255,104,255, +184,255,255,255,12,0,168,255,9,255,180,254,5,255,217,255,121,0,87,0,230,255,218,255,252,255,193,255,89,255,89,255, +226,255,113,0,119,0,254,255,150,255,149,255,225,255,76,0,134,0,75,0,210,255,138,255,124,255,119,255,117,255,144,255, +210,255,250,255,195,255,146,255,220,255,33,0,205,255,102,255,113,255,146,255,144,255,151,255,143,255,117,255,139,255,159,255, +92,255,16,255,30,255,84,255,103,255,108,255,151,255,200,255,112,255,144,254,67,254,30,255,236,255,123,255,120,254,92,254, +78,255,244,255,98,255,140,254,180,254,79,255,68,255,254,254,53,255,122,255,93,255,49,255,77,255,153,255,153,255,18,255, +226,254,166,255,64,0,217,255,116,255,172,255,234,255,62,0,187,0,113,0,153,255,181,255,136,0,162,0,33,0,240,255, +22,0,84,0,116,0,74,0,53,0,109,0,82,0,218,255,213,255,55,0,66,0,4,0,243,255,32,0,98,0,89,0, +249,255,9,0,143,0,110,0,209,255,222,255,25,0,174,255,143,255,37,0,57,0,189,255,198,255,22,0,8,0,18,0, +72,0,24,0,209,255,241,255,253,255,187,255,176,255,213,255,179,255,131,255,163,255,197,255,146,255,87,255,114,255,166,255, +164,255,143,255,128,255,67,255,6,255,66,255,199,255,251,255,194,255,103,255,44,255,67,255,161,255,236,255,254,255,249,255, +247,255,241,255,182,255,78,255,96,255,33,0,137,0,24,0,183,255,214,255,237,255,226,255,210,255,159,255,167,255,14,0, +34,0,0,0,71,0,45,0,93,255,104,255,101,0,127,0,230,255,234,255,242,255,178,255,54,0,211,0,88,0,225,255, +18,0,212,255,143,255,41,0,96,0,184,255,179,255,48,0,18,0,44,0,196,0,112,0,142,255,155,255,244,255,192,255, +201,255,37,0,35,0,39,0,109,0,73,0,241,255,6,0,31,0,237,255,2,0,137,0,6,1,240,0,60,0,225,255, +130,0,239,0,103,0,76,0,25,1,75,1,199,0,199,0,245,0,174,0,195,0,68,1,23,1,156,0,16,1,233,1, +206,1,17,1,255,0,162,1,227,1,120,1,46,1,85,1,111,1,98,1,117,1,139,1,153,1,211,1,237,1,143,1, +41,1,14,1,235,0,236,0,127,1,15,2,226,1,96,1,18,1,208,0,162,0,192,0,203,0,126,0,91,0,185,0, +41,1,57,1,225,0,97,0,49,0,132,0,201,0,127,0,29,0,69,0,168,0,194,0,189,0,181,0,100,0,39,0, +131,0,185,0,29,0,205,255,128,0,212,0,33,0,194,255,36,0,33,0,173,255,181,255,253,255,206,255,112,255,123,255, +242,255,114,0,132,0,26,0,177,255,158,255,154,255,100,255,44,255,63,255,143,255,205,255,206,255,146,255,52,255,15,255, +77,255,94,255,7,255,8,255,147,255,193,255,113,255,105,255,142,255,80,255,235,254,198,254,222,254,37,255,77,255,1,255, +154,254,140,254,155,254,157,254,182,254,181,254,124,254,113,254,188,254,10,255,29,255,250,254,209,254,207,254,219,254,210,254, +193,254,169,254,137,254,139,254,181,254,246,254,81,255,127,255,60,255,211,254,193,254,201,254,4,255,109,255,88,255,43,255, +146,255,140,255,205,254,200,254,106,255,95,255,14,255,78,255,130,255,53,255,5,255,89,255,204,255,205,255,129,255,115,255, +151,255,167,255,187,255,195,255,166,255,206,255,74,0,161,0,153,0,57,0,203,255,186,255,188,255,164,255,39,0,241,0, +181,0,231,255,222,255,101,0,175,0,134,0,34,0,57,0,227,0,41,1,203,0,84,0,18,0,131,0,61,1,221,0, +51,0,209,0,67,1,145,0,116,0,239,0,213,0,223,0,2,1,152,0,207,0,103,1,7,1,43,1,219,1,135,0, +247,254,44,0,227,1,35,2,112,1,60,255,49,254,174,1,52,4,240,0,125,254,29,1,72,3,120,2,47,1,16,0, +15,0,182,1,12,2,211,0,53,1,98,2,13,2,77,1,12,1,31,1,221,1,56,2,128,1,145,1,183,2,186,2, +9,1,102,255,224,255,20,2,112,2,48,0,148,255,5,2,153,3,24,1,179,251,207,249,52,0,172,7,12,7,8,3, +1,2,145,255,97,250,184,248,110,252,124,3,232,9,249,7,170,255,65,254,32,4,15,5,80,0,24,254,80,0,233,3, +72,4,2,0,246,253,48,1,237,2,86,2,234,3,91,4,142,1,51,0,4,0,90,255,151,1,240,4,171,4,248,2, +68,1,178,254,69,255,184,2,190,2,49,1,110,2,184,2,224,0,154,0,65,1,215,1,81,2,40,0,250,254,236,3, +232,6,233,1,177,254,252,0,14,1,69,0,142,3,110,5,4,2,175,253,21,252,150,254,36,3,186,3,170,0,1,0, +63,1,47,1,219,0,171,255,31,253,150,253,85,1,19,3,195,2,113,3,227,3,243,2,225,1,138,0,235,254,190,254, +36,0,246,0,44,0,178,255,6,1,93,1,193,254,182,253,80,1,114,4,207,2,90,255,45,254,13,0,178,2,140,2, +226,255,218,254,19,0,164,0,120,0,11,1,99,1,91,0,29,255,251,254,18,255,65,254,30,254,206,255,137,0,249,254, +46,254,138,254,231,252,21,250,198,249,97,252,109,255,101,0,17,255,243,253,122,253,125,251,102,249,32,250,66,252,225,253, +252,254,99,254,137,252,12,252,230,251,220,250,255,251,21,255,183,255,110,254,42,254,44,254,174,253,236,253,139,254,126,254, +98,254,219,254,102,255,45,255,94,254,103,254,49,255,211,254,215,253,34,254,113,254,129,253,10,253,149,253,41,254,32,255, +221,255,22,255,141,254,154,255,7,0,19,255,118,254,18,254,94,253,103,253,203,253,69,253,234,252,238,253,207,254,239,253, +98,252,41,252,11,253,98,253,34,253,25,253,247,252,219,252,93,253,91,253,73,252,233,251,106,252,78,252,8,252,45,252, +252,251,1,252,160,252,104,252,226,251,227,252,32,254,206,253,194,252,7,252,164,252,24,255,88,0,0,254,145,251,55,252, +217,253,131,254,218,254,30,255,49,255,0,255,54,254,181,253,42,254,79,254,51,254,42,255,227,255,97,255,123,255,233,255, +233,254,65,254,7,255,179,254,125,253,215,253,34,254,201,252,201,252,8,255,237,255,127,254,95,253,92,253,124,253,210,253, +162,254,57,255,250,254,49,254,171,253,212,253,73,254,132,254,138,254,103,254,1,254,225,253,161,254,147,255,168,255,32,255, +205,254,188,254,217,254,62,255,150,255,131,255,50,255,252,254,68,255,36,0,210,0,130,0,239,255,156,0,75,2,226,2, +183,1,200,0,88,1,26,2,14,2,230,1,12,2,68,2,70,2,100,1,20,0,155,0,195,2,48,3,188,1,180,1, +8,3,29,3,117,2,162,2,195,2,67,2,60,2,14,3,33,4,105,4,246,2,80,1,208,1,232,2,32,2,64,1, +205,1,172,1,233,0,226,1,30,3,63,2,65,1,177,1,204,1,174,1,202,2,108,3,251,1,134,0,178,0,125,1, +249,1,6,2,212,1,55,2,20,3,0,3,63,2,106,2,16,3,250,2,1,3,243,3,139,4,222,3,238,2,205,2, +51,3,62,3,184,2,78,2,126,2,8,3,147,3,246,3,17,4,11,4,238,3,89,3,188,2,23,3,167,3,239,2, +233,1,49,2,163,2,237,1,126,1,80,2,208,2,102,2,94,2,150,2,246,1,125,1,94,2,29,3,106,2,185,1, +251,1,204,1,229,0,234,0,222,1,17,2,90,1,224,0,221,0,224,0,202,0,192,0,250,0,67,1,208,0,211,255, +175,255,120,0,208,0,147,0,167,0,213,0,125,0,242,255,166,255,160,255,215,255,248,255,213,255,218,255,2,0,173,255, +23,255,250,254,64,255,186,255,115,0,169,0,7,0,188,255,13,0,188,255,249,254,248,254,39,255,218,254,32,255,245,255, +193,255,203,254,129,254,138,254,117,254,23,255,216,255,45,255,12,254,51,254,176,254,52,254,170,253,222,253,244,253,148,253, +174,253,131,254,29,255,225,254,121,254,181,254,19,255,162,254,216,253,193,253,57,254,171,254,18,255,44,255,170,254,57,254, +92,254,109,254,29,254,243,253,6,254,57,254,183,254,249,254,104,254,219,253,19,254,72,254,28,254,73,254,152,254,95,254, +57,254,102,254,247,253,58,253,158,253,204,254,110,255,159,255,184,255,25,255,236,253,87,253,135,253,250,253,211,254,216,255, +242,255,243,254,12,254,252,253,90,254,181,254,33,255,141,255,125,255,201,254,36,254,71,254,6,255,177,255,249,255,254,255, +235,255,199,255,156,255,170,255,14,0,71,0,231,255,144,255,221,255,43,0,254,255,28,0,188,0,184,0,203,255,79,255, +249,255,238,0,56,1,182,0,6,0,2,0,151,0,172,0,1,0,189,255,58,0,107,0,53,0,132,0,39,1,60,1, +1,1,24,1,30,1,147,0,24,0,96,0,248,0,10,1,147,0,33,0,45,0,190,0,16,1,120,0,217,255,57,0, +174,0,73,0,18,0,163,0,209,0,79,0,59,0,184,0,242,0,201,0,141,0,80,0,53,0,111,0,225,0,70,1, +142,1,214,1,4,2,199,1,78,1,34,1,47,1,63,1,132,1,170,1,27,1,143,0,224,0,87,1,109,1,202,1, +67,2,24,2,225,1,32,2,223,1,254,0,212,0,148,1,38,2,15,2,148,1,42,1,83,1,183,1,120,1,14,1, +145,1,134,2,174,2,6,2,95,1,57,1,125,1,185,1,213,1,10,2,245,1,83,1,255,0,58,1,16,1,133,0, +124,0,214,0,44,1,147,1,170,1,78,1,38,1,14,1,164,0,170,0,45,1,24,1,183,0,230,0,18,1,228,0, +243,0,241,0,135,0,111,0,200,0,227,0,178,0,118,0,101,0,143,0,87,0,169,255,181,255,124,0,189,0,151,0, +91,0,108,255,164,254,42,255,177,255,149,255,90,0,134,1,52,1,234,255,215,254,234,253,168,253,161,254,255,255,233,0, +232,0,179,255,142,254,167,254,182,254,255,253,28,254,71,255,207,255,84,255,128,254,179,253,127,253,235,253,74,254,154,254, +208,254,74,254,147,253,168,253,246,253,234,253,251,253,20,254,234,253,196,253,145,253,110,253,230,253,69,254,214,253,183,253, +51,254,235,253,39,253,72,253,254,253,114,254,117,254,213,253,43,253,80,253,128,253,37,253,66,253,8,254,166,254,39,255, +105,255,207,254,236,253,128,253,72,253,41,253,86,253,246,253,39,255,216,255,252,254,87,254,82,255,210,255,203,254,33,254, +76,254,143,254,247,254,167,254,242,253,158,255,86,2,127,1,104,254,59,253,55,253,145,253,208,255,161,1,122,0,115,255, +32,0,126,255,171,253,112,253,120,254,175,255,220,0,109,0,87,254,90,253,236,253,80,254,187,254,181,255,77,0,82,0, +19,0,72,255,208,254,198,255,224,0,128,0,113,255,101,255,166,0,207,1,45,1,99,255,48,255,26,1,63,2,17,1, +190,255,65,0,114,1,147,1,220,0,45,0,196,255,251,255,221,0,79,1,237,0,229,0,103,1,80,1,167,0,141,0, +33,1,127,1,61,1,4,1,92,1,140,1,249,0,144,0,5,1,180,1,31,2,46,2,181,1,99,1,210,1,238,1, +42,1,226,0,141,1,35,2,79,2,18,2,89,1,38,1,9,2,130,2,192,1,71,1,222,1,61,2,174,1,23,1, +27,1,84,1,140,1,250,1,38,2,133,1,234,0,46,1,158,1,180,1,9,2,131,2,126,2,114,2,186,2,130,2, +166,1,80,1,222,1,81,2,22,2,213,1,46,2,172,2,166,2,104,2,129,2,197,2,229,2,209,2,84,2,134,1, +44,1,195,1,178,2,8,3,168,2,58,2,242,1,94,1,152,0,84,0,174,0,81,1,4,2,35,2,77,1,150,0, +212,0,253,0,94,0,41,0,232,0,65,1,149,0,36,0,121,0,126,0,229,255,198,255,75,0,121,0,86,0,118,0, +102,0,231,255,194,255,255,255,194,255,70,255,101,255,202,255,168,255,14,255,138,254,115,254,202,254,48,255,75,255,70,255, +85,255,45,255,175,254,101,254,157,254,218,254,180,254,103,254,66,254,86,254,151,254,160,254,9,254,78,253,99,253,26,254, +79,254,202,253,122,253,215,253,82,254,101,254,34,254,221,253,204,253,211,253,181,253,142,253,150,253,160,253,124,253,95,253, +106,253,135,253,188,253,185,253,22,253,141,252,37,253,19,254,234,253,41,253,13,253,89,253,105,253,125,253,190,253,229,253, +238,253,207,253,111,253,66,253,120,253,99,253,5,253,84,253,26,254,27,254,114,253,83,253,205,253,242,253,149,253,114,253, +229,253,86,254,63,254,7,254,38,254,77,254,70,254,88,254,76,254,212,253,137,253,209,253,6,254,220,253,210,253,240,253, +237,253,224,253,184,253,122,253,167,253,22,254,21,254,22,254,148,254,133,254,161,253,108,253,32,254,92,254,48,254,104,254, +124,254,60,254,131,254,247,254,182,254,131,254,20,255,144,255,158,255,213,255,249,255,172,255,120,255,135,255,124,255,160,255, +24,0,60,0,10,0,43,0,93,0,10,0,170,255,200,255,25,0,70,0,118,0,203,0,16,1,226,0,105,0,126,0, +39,1,18,1,4,0,174,255,164,0,77,1,241,0,195,0,34,1,12,1,135,0,154,0,20,1,8,1,172,0,152,0, +132,0,110,0,215,0,60,1,207,0,110,0,12,1,164,1,80,1,21,1,145,1,224,1,215,1,19,2,24,2,152,1, +165,1,75,2,47,2,145,1,165,1,216,1,158,1,14,2,44,3,133,3,32,3,240,2,189,2,123,2,197,2,65,3, +98,3,125,3,153,3,118,3,119,3,141,3,64,3,33,3,146,3,174,3,81,3,61,3,63,3,16,3,60,3,131,3, +65,3,248,2,240,2,149,2,64,2,158,2,3,3,202,2,108,2,72,2,65,2,56,2,2,2,197,1,236,1,44,2, +4,2,203,1,185,1,104,1,11,1,70,1,196,1,187,1,73,1,26,1,80,1,108,1,71,1,89,1,188,1,244,1, +215,1,158,1,113,1,133,1,184,1,136,1,67,1,140,1,197,1,113,1,119,1,238,1,212,1,100,1,91,1,77,1, +30,1,73,1,94,1,37,1,106,1,237,1,175,1,9,1,184,0,172,0,239,0,98,1,124,1,115,1,155,1,90,1, +194,0,171,0,199,0,171,0,21,1,226,1,223,1,66,1,250,0,223,0,169,0,129,0,70,0,18,0,48,0,85,0, +92,0,143,0,119,0,203,255,172,255,110,0,151,0,206,255,130,255,7,0,79,0,11,0,168,255,92,255,109,255,229,255, +20,0,159,255,55,255,102,255,200,255,225,255,185,255,149,255,154,255,180,255,199,255,184,255,122,255,80,255,144,255,207,255, +99,255,223,254,28,255,103,255,238,254,137,254,207,254,209,254,116,254,197,254,88,255,249,254,75,254,113,254,205,254,164,254, +125,254,131,254,57,254,255,253,99,254,199,254,150,254,122,254,241,254,59,255,177,254,12,254,36,254,135,254,141,254,188,254, +106,255,163,255,5,255,157,254,220,254,9,255,220,254,152,254,87,254,70,254,131,254,177,254,151,254,105,254,92,254,136,254, +189,254,197,254,255,254,112,255,46,255,113,254,156,254,36,255,161,254,23,254,181,254,29,255,137,254,82,254,200,254,250,254, +0,255,56,255,37,255,198,254,233,254,167,255,247,255,67,255,138,254,210,254,86,255,32,255,235,254,76,255,138,255,123,255, +142,255,99,255,219,254,195,254,61,255,156,255,178,255,170,255,165,255,209,255,12,0,0,0,184,255,90,255,28,255,87,255, +204,255,245,255,225,255,166,255,57,255,24,255,101,255,141,255,162,255,235,255,221,255,136,255,176,255,3,0,216,255,162,255, +201,255,232,255,176,255,85,255,91,255,215,255,15,0,215,255,210,255,204,255,108,255,102,255,177,255,134,255,120,255,240,255, +242,255,151,255,172,255,139,255,29,255,107,255,219,255,120,255,48,255,104,255,74,255,28,255,95,255,157,255,186,255,187,255, +109,255,113,255,7,0,14,0,125,255,133,255,255,255,6,0,186,255,135,255,162,255,249,255,251,255,179,255,199,255,199,255, +59,255,23,255,156,255,208,255,173,255,159,255,104,255,72,255,167,255,238,255,196,255,154,255,137,255,140,255,176,255,164,255, +113,255,122,255,115,255,58,255,118,255,251,255,237,255,129,255,112,255,174,255,221,255,231,255,240,255,240,255,159,255,93,255, +192,255,11,0,152,255,108,255,214,255,197,255,125,255,179,255,161,255,88,255,214,255,69,0,197,255,116,255,183,255,188,255, +185,255,222,255,191,255,232,255,140,0,147,0,24,0,4,0,238,255,204,255,99,0,229,0,111,0,33,0,128,0,126,0, +34,0,51,0,89,0,49,0,38,0,95,0,170,0,234,0,204,0,57,0,219,255,35,0,146,0,166,0,142,0,132,0, +127,0,159,0,243,0,252,0,119,0,13,0,38,0,49,0,243,255,9,0,166,0,21,1,204,0,55,0,25,0,101,0, +115,0,54,0,52,0,129,0,194,0,180,0,99,0,55,0,99,0,121,0,70,0,61,0,121,0,135,0,86,0,62,0, +99,0,109,0,241,255,99,255,154,255,56,0,90,0,79,0,115,0,73,0,253,255,27,0,35,0,212,255,239,255,68,0, +254,255,141,255,178,255,21,0,63,0,78,0,104,0,122,0,93,0,30,0,2,0,2,0,247,255,8,0,22,0,222,255, +220,255,65,0,62,0,210,255,236,255,75,0,24,0,202,255,4,0,76,0,63,0,25,0,234,255,162,255,157,255,29,0, +133,0,57,0,220,255,56,0,166,0,105,0,22,0,34,0,33,0,8,0,35,0,67,0,52,0,15,0,20,0,131,0, +221,0,107,0,222,255,21,0,91,0,55,0,75,0,96,0,11,0,20,0,147,0,158,0,105,0,137,0,138,0,84,0, +79,0,37,0,243,255,129,0,37,1,217,0,108,0,140,0,117,0,43,0,112,0,207,0,174,0,135,0,136,0,82,0, +27,0,48,0,65,0,56,0,101,0,170,0,175,0,146,0,139,0,105,0,34,0,65,0,200,0,209,0,52,0,218,255, +21,0,109,0,169,0,181,0,159,0,187,0,203,0,97,0,48,0,157,0,144,0,230,255,237,255,139,0,148,0,43,0, +247,255,230,255,230,255,251,255,250,255,227,255,177,255,115,255,183,255,94,0,77,0,156,255,138,255,241,255,213,255,114,255, +109,255,154,255,161,255,149,255,168,255,212,255,195,255,114,255,106,255,138,255,72,255,44,255,158,255,205,255,134,255,109,255, +80,255,245,254,240,254,66,255,109,255,131,255,124,255,47,255,21,255,63,255,18,255,196,254,209,254,238,254,250,254,36,255, +49,255,37,255,56,255,28,255,191,254,175,254,252,254,43,255,17,255,204,254,133,254,104,254,110,254,157,254,248,254,10,255, +208,254,223,254,252,254,192,254,197,254,26,255,245,254,131,254,105,254,103,254,92,254,134,254,174,254,192,254,219,254,193,254, +123,254,88,254,78,254,126,254,223,254,205,254,121,254,155,254,209,254,175,254,166,254,187,254,175,254,195,254,220,254,194,254, +217,254,4,255,224,254,2,255,132,255,152,255,79,255,41,255,52,255,85,255,68,255,35,255,91,255,192,255,245,255,113,255, +97,254,101,254,151,255,78,0,74,0,175,255,214,254,116,255,197,0,58,0,48,255,239,255,5,1,244,0,131,0,65,0, +32,0,31,0,33,0,80,0,227,0,80,1,234,0,36,0,246,255,53,0,61,0,92,0,244,255,198,253,173,252,21,0, +226,3,103,3,99,2,5,3,63,0,140,250,15,249,255,252,100,2,34,6,35,5,113,0,72,254,30,0,145,1,1,1, +125,0,213,1,27,4,186,3,155,0,145,255,107,1,77,2,54,2,21,3,37,3,222,1,169,1,186,1,160,0,254,0, +105,3,92,4,63,3,235,1,163,0,48,0,75,1,86,2,137,2,129,2,181,1,229,0,207,1,213,2,31,2,45,1, +188,0,168,0,29,2,126,3,3,2,79,0,245,0,1,1,241,255,63,1,165,3,28,3,50,0,191,253,180,253,168,0, +149,3,39,3,67,1,138,0,24,0,183,255,22,0,12,0,227,255,17,1,246,1,174,1,205,2,247,4,202,4,159,2, +211,0,178,255,152,255,199,0,127,1,5,1,172,0,227,0,126,1,44,2,158,1,149,0,4,2,132,4,118,3,2,0, +121,255,18,2,134,3,114,2,48,1,87,1,9,2,95,2,195,2,227,2,161,1,32,0,113,0,125,1,82,1,247,0, +140,1,12,2,36,2,77,2,188,1,82,0,135,255,158,255,214,255,115,0,75,1,133,1,166,1,176,1,18,0,215,253, +26,254,246,255,115,0,102,0,35,1,219,0,126,255,151,255,156,0,76,0,191,255,172,0,224,1,201,1,116,0,21,255, +103,255,28,1,133,1,122,0,127,0,90,1,50,1,240,0,143,1,162,1,220,0,136,0,126,0,49,0,44,0,77,0, +4,0,228,255,76,0,143,0,160,0,235,0,252,0,102,0,218,255,235,255,244,255,91,255,249,254,171,255,85,0,233,255, +200,255,229,0,81,1,227,255,153,254,174,254,179,254,3,254,229,253,167,254,39,255,52,255,30,255,143,254,196,253,143,253, +164,253,86,253,39,253,146,253,251,253,224,253,97,253,221,252,20,253,56,254,228,254,10,254,233,252,253,252,226,253,104,254, +223,253,69,252,232,250,126,251,110,253,110,254,25,254,220,253,217,253,13,253,213,251,141,251,108,252,98,253,166,253,98,253, +4,253,130,252,13,252,132,252,200,253,249,253,162,252,31,252,109,253,30,254,243,252,48,252,52,253,60,254,244,253,54,253, +227,252,240,252,56,253,169,253,37,254,114,254,35,254,76,253,215,252,34,253,105,253,77,253,80,253,166,253,255,253,242,253, +95,253,16,253,197,253,108,254,226,253,91,253,212,253,244,253,49,253,221,252,239,252,179,252,45,253,95,254,49,254,242,252, +47,253,155,254,10,255,166,254,138,254,162,254,239,254,85,255,254,254,100,254,175,254,7,255,160,254,236,254,25,0,36,0, +35,255,6,255,174,255,247,255,21,0,48,0,11,0,57,0,196,0,179,0,96,0,216,0,101,1,246,0,67,0,31,0, +46,0,29,0,24,0,83,0,230,0,100,1,39,1,134,0,124,0,23,1,143,1,101,1,224,0,188,0,46,1,97,1, +222,0,114,0,135,0,162,0,205,0,52,1,48,1,173,0,137,0,206,0,241,0,2,1,226,0,101,0,146,0,211,1, +129,2,231,1,132,1,231,1,34,2,2,2,165,1,223,0,130,0,48,1,184,1,104,1,100,1,252,1,64,2,54,2, +53,2,201,1,43,1,38,1,84,1,24,1,3,1,81,1,90,1,41,1,72,1,126,1,112,1,90,1,105,1,135,1, +176,1,211,1,207,1,159,1,87,1,52,1,94,1,129,1,109,1,118,1,141,1,65,1,217,0,219,0,254,0,11,1, +43,1,11,1,137,0,123,0,9,1,54,1,241,0,255,0,54,1,22,1,212,0,151,0,113,0,201,0,79,1,37,1, +160,0,144,0,163,0,136,0,182,0,247,0,183,0,126,0,198,0,236,0,189,0,198,0,237,0,229,0,2,1,49,1, +252,0,190,0,222,0,231,0,172,0,167,0,175,0,67,0,215,255,10,0,129,0,159,0,107,0,47,0,254,255,219,255, +219,255,5,0,14,0,180,255,106,255,202,255,92,0,78,0,6,0,70,0,142,0,51,0,203,255,237,255,26,0,13,0, +49,0,96,0,12,0,115,255,32,255,16,255,32,255,83,255,114,255,85,255,38,255,237,254,159,254,145,254,0,255,135,255, +177,255,109,255,246,254,173,254,179,254,142,254,20,254,15,254,213,254,130,255,131,255,81,255,30,255,157,254,26,254,41,254, +178,254,65,255,151,255,145,255,82,255,38,255,2,255,203,254,216,254,47,255,45,255,197,254,178,254,251,254,1,255,220,254, +2,255,43,255,254,254,226,254,40,255,94,255,45,255,236,254,10,255,97,255,125,255,69,255,5,255,216,254,184,254,221,254, +80,255,124,255,37,255,250,254,87,255,158,255,133,255,139,255,201,255,179,255,38,255,173,254,202,254,100,255,199,255,120,255, +5,255,60,255,210,255,245,255,172,255,127,255,146,255,193,255,250,255,32,0,29,0,249,255,174,255,93,255,91,255,162,255, +199,255,178,255,135,255,72,255,32,255,74,255,119,255,112,255,189,255,109,0,134,0,213,255,100,255,136,255,158,255,160,255, +236,255,49,0,35,0,36,0,95,0,135,0,150,0,175,0,169,0,132,0,127,0,142,0,129,0,106,0,99,0,116,0, +168,0,208,0,181,0,153,0,205,0,14,1,26,1,40,1,63,1,41,1,32,1,91,1,113,1,43,1,12,1,83,1, +142,1,134,1,145,1,231,1,89,2,155,2,139,2,97,2,96,2,121,2,151,2,215,2,19,3,235,2,149,2,144,2, +182,2,141,2,56,2,34,2,65,2,73,2,60,2,89,2,161,2,163,2,37,2,178,1,199,1,1,2,242,1,244,1, +60,2,74,2,236,1,151,1,130,1,146,1,194,1,215,1,139,1,65,1,104,1,156,1,120,1,85,1,95,1,69,1, +26,1,53,1,101,1,76,1,250,0,171,0,133,0,153,0,174,0,137,0,95,0,93,0,70,0,23,0,17,0,16,0, +238,255,25,0,142,0,137,0,248,255,183,255,226,255,209,255,132,255,127,255,190,255,229,255,205,255,131,255,67,255,83,255, +143,255,164,255,153,255,130,255,59,255,243,254,24,255,129,255,167,255,123,255,55,255,233,254,182,254,207,254,10,255,23,255, +255,254,6,255,53,255,59,255,207,254,59,254,40,254,146,254,182,254,98,254,57,254,120,254,158,254,99,254,16,254,246,253, +30,254,89,254,120,254,136,254,150,254,119,254,40,254,254,253,29,254,89,254,165,254,236,254,229,254,165,254,142,254,127,254, +54,254,46,254,191,254,55,255,244,254,99,254,38,254,74,254,166,254,13,255,59,255,32,255,229,254,184,254,205,254,17,255, +2,255,148,254,145,254,40,255,111,255,252,254,119,254,74,254,76,254,115,254,158,254,124,254,68,254,95,254,131,254,87,254, +81,254,185,254,255,254,211,254,170,254,212,254,9,255,244,254,163,254,113,254,145,254,190,254,200,254,6,255,114,255,75,255, +125,254,24,254,156,254,52,255,70,255,48,255,77,255,107,255,87,255,36,255,242,254,221,254,252,254,73,255,137,255,130,255, +96,255,150,255,9,0,21,0,185,255,177,255,26,0,71,0,13,0,251,255,67,0,137,0,155,0,151,0,159,0,166,0, +126,0,47,0,20,0,83,0,157,0,202,0,255,0,49,1,53,1,26,1,255,0,231,0,228,0,236,0,204,0,176,0, +237,0,65,1,53,1,249,0,226,0,212,0,216,0,26,1,64,1,13,1,14,1,124,1,167,1,74,1,13,1,66,1, +142,1,176,1,156,1,84,1,45,1,106,1,176,1,161,1,127,1,152,1,221,1,36,2,54,2,227,1,113,1,99,1, +185,1,17,2,53,2,40,2,22,2,55,2,85,2,4,2,139,1,145,1,241,1,6,2,221,1,232,1,22,2,39,2, +20,2,217,1,139,1,144,1,16,2,143,2,149,2,64,2,249,1,253,1,52,2,86,2,62,2,17,2,249,1,247,1, +241,1,209,1,173,1,191,1,247,1,241,1,151,1,83,1,108,1,183,1,224,1,177,1,76,1,28,1,50,1,35,1, +226,0,220,0,15,1,31,1,31,1,56,1,13,1,136,0,56,0,81,0,119,0,147,0,197,0,217,0,164,0,106,0, +85,0,65,0,30,0,3,0,5,0,54,0,121,0,134,0,91,0,43,0,249,255,185,255,138,255,116,255,128,255,221,255, +49,0,200,255,6,255,25,255,209,255,227,255,79,255,43,255,106,255,54,255,179,254,143,254,180,254,175,254,136,254,120,254, +145,254,198,254,230,254,190,254,102,254,50,254,75,254,132,254,134,254,58,254,253,253,43,254,136,254,151,254,86,254,36,254, +57,254,118,254,153,254,129,254,88,254,78,254,75,254,65,254,80,254,110,254,103,254,89,254,115,254,118,254,49,254,5,254, +49,254,85,254,41,254,9,254,78,254,170,254,152,254,28,254,194,253,214,253,253,253,226,253,178,253,168,253,191,253,232,253, +7,254,232,253,180,253,195,253,234,253,213,253,185,253,199,253,178,253,128,253,154,253,210,253,191,253,169,253,220,253,230,253, +143,253,76,253,85,253,115,253,155,253,182,253,138,253,88,253,130,253,174,253,108,253,27,253,60,253,142,253,178,253,190,253, +213,253,229,253,220,253,200,253,189,253,195,253,207,253,241,253,78,254,171,254,156,254,82,254,87,254,147,254,178,254,220,254, +27,255,10,255,215,254,16,255,82,255,236,254,81,254,86,254,211,254,57,255,110,255,123,255,107,255,131,255,214,255,241,255, +140,255,33,255,83,255,249,255,64,0,221,255,134,255,184,255,9,0,23,0,16,0,11,0,0,0,30,0,82,0,63,0, +1,0,3,0,44,0,52,0,60,0,86,0,83,0,74,0,98,0,95,0,50,0,79,0,209,0,54,1,50,1,7,1, +8,1,64,1,116,1,84,1,253,0,222,0,11,1,52,1,84,1,128,1,139,1,129,1,169,1,209,1,182,1,175,1, +248,1,57,2,77,2,85,2,30,2,184,1,192,1,56,2,113,2,87,2,83,2,82,2,50,2,54,2,78,2,32,2, +0,2,97,2,189,2,113,2,237,1,233,1,58,2,74,2,14,2,220,1,204,1,193,1,184,1,183,1,174,1,152,1, +140,1,124,1,48,1,187,0,141,0,207,0,41,1,70,1,31,1,200,0,121,0,137,0,218,0,224,0,153,0,145,0, +208,0,212,0,161,0,154,0,164,0,130,0,122,0,214,0,78,1,131,1,125,1,108,1,80,1,34,1,13,1,48,1, +96,1,105,1,93,1,80,1,49,1,34,1,73,1,83,1,24,1,36,1,163,1,215,1,130,1,72,1,77,1,46,1, +33,1,124,1,203,1,174,1,147,1,187,1,198,1,154,1,132,1,144,1,137,1,113,1,107,1,124,1,152,1,169,1, +147,1,89,1,34,1,11,1,23,1,47,1,48,1,23,1,15,1,24,1,243,0,161,0,123,0,157,0,190,0,177,0, +146,0,113,0,77,0,54,0,55,0,69,0,68,0,28,0,254,255,61,0,142,0,79,0,190,255,190,255,53,0,51,0, +174,255,120,255,188,255,246,255,4,0,14,0,248,255,183,255,160,255,201,255,206,255,149,255,121,255,119,255,57,255,240,254, +21,255,108,255,99,255,44,255,74,255,146,255,134,255,44,255,250,254,33,255,90,255,73,255,3,255,233,254,23,255,77,255, +86,255,63,255,41,255,35,255,31,255,20,255,27,255,58,255,80,255,79,255,70,255,42,255,241,254,189,254,180,254,212,254, +11,255,64,255,92,255,90,255,41,255,201,254,111,254,84,254,128,254,218,254,35,255,13,255,195,254,194,254,235,254,194,254, +126,254,156,254,215,254,190,254,155,254,197,254,248,254,245,254,236,254,8,255,41,255,45,255,23,255,7,255,24,255,64,255, +89,255,82,255,48,255,18,255,50,255,158,255,248,255,225,255,148,255,136,255,171,255,151,255,98,255,101,255,153,255,185,255, +186,255,186,255,195,255,202,255,184,255,150,255,137,255,141,255,126,255,120,255,173,255,227,255,206,255,148,255,126,255,144,255, +175,255,202,255,204,255,185,255,178,255,180,255,161,255,146,255,188,255,3,0,253,255,156,255,102,255,166,255,228,255,205,255, +197,255,15,0,57,0,248,255,153,255,103,255,109,255,162,255,201,255,175,255,154,255,200,255,240,255,216,255,187,255,188,255, +177,255,155,255,164,255,195,255,212,255,218,255,233,255,7,0,27,0,15,0,245,255,239,255,244,255,254,255,38,0,85,0, +70,0,15,0,11,0,51,0,44,0,6,0,23,0,76,0,86,0,62,0,51,0,33,0,247,255,227,255,239,255,242,255, +243,255,17,0,38,0,5,0,211,255,210,255,7,0,71,0,90,0,44,0,231,255,194,255,195,255,213,255,228,255,223,255, +199,255,182,255,190,255,208,255,196,255,154,255,132,255,150,255,154,255,119,255,104,255,130,255,151,255,163,255,179,255,168,255, +144,255,166,255,197,255,157,255,109,255,150,255,223,255,229,255,172,255,122,255,132,255,195,255,249,255,12,0,25,0,27,0, +255,255,251,255,38,0,48,0,9,0,18,0,90,0,127,0,82,0,5,0,234,255,39,0,119,0,124,0,91,0,106,0, +132,0,99,0,66,0,110,0,170,0,153,0,89,0,66,0,98,0,128,0,124,0,110,0,119,0,151,0,163,0,112,0, +20,0,229,255,2,0,31,0,7,0,242,255,28,0,93,0,117,0,132,0,170,0,158,0,53,0,223,255,255,255,70,0, +82,0,63,0,64,0,75,0,77,0,71,0,77,0,108,0,103,0,18,0,215,255,255,255,33,0,24,0,67,0,105,0, +28,0,223,255,52,0,125,0,68,0,4,0,15,0,45,0,73,0,102,0,95,0,38,0,219,255,198,255,41,0,160,0, +121,0,7,0,45,0,182,0,187,0,50,0,192,255,190,255,21,0,119,0,135,0,60,0,232,255,223,255,49,0,150,0, +157,0,71,0,21,0,42,0,28,0,211,255,206,255,62,0,153,0,111,0,20,0,254,255,24,0,34,0,23,0,235,255, +172,255,172,255,231,255,223,255,153,255,157,255,232,255,253,255,211,255,198,255,236,255,11,0,240,255,175,255,149,255,182,255, +206,255,186,255,162,255,180,255,245,255,54,0,57,0,13,0,251,255,4,0,247,255,224,255,202,255,178,255,200,255,19,0, +39,0,236,255,228,255,28,0,5,0,161,255,165,255,27,0,43,0,158,255,99,255,244,255,127,0,93,0,6,0,245,255, +10,0,37,0,57,0,19,0,230,255,7,0,49,0,25,0,8,0,19,0,250,255,239,255,29,0,18,0,172,255,127,255, +199,255,27,0,28,0,197,255,107,255,96,255,106,255,79,255,104,255,176,255,144,255,55,255,83,255,163,255,156,255,127,255, +111,255,32,255,235,254,60,255,118,255,52,255,46,255,165,255,196,255,79,255,14,255,84,255,160,255,167,255,128,255,59,255, +11,255,58,255,143,255,168,255,197,255,7,0,212,255,35,255,230,254,69,255,92,255,31,255,74,255,208,255,232,255,52,255, +84,254,121,254,191,255,135,0,222,255,234,254,195,254,23,255,70,255,214,254,2,254,72,254,222,255,136,0,192,255,176,255, +47,0,233,254,206,252,189,252,131,254,19,0,203,0,210,0,104,0,6,0,112,255,119,254,124,254,32,0,72,1,106,0, +35,255,65,255,13,0,42,0,176,255,134,255,24,0,223,0,185,0,131,255,210,254,138,255,108,0,127,0,48,0,181,255, +101,255,230,255,42,0,33,255,192,254,97,0,165,1,46,1,155,0,101,0,198,255,59,255,38,255,137,255,224,0,242,1, +230,0,146,255,34,0,125,0,123,255,211,255,170,1,234,1,134,0,155,255,78,255,109,255,70,0,196,0,59,0,207,255, +234,255,29,0,174,0,253,0,247,255,40,255,62,0,75,1,171,0,104,0,162,1,45,2,47,1,120,0,140,0,45,0, +101,255,87,255,16,0,173,0,197,0,158,0,152,0,179,0,188,0,236,0,81,1,52,1,169,0,9,1,220,1,234,0, +26,255,164,255,156,1,97,1,164,255,168,255,4,1,94,1,172,0,26,0,66,0,10,1,73,1,113,0,37,0,249,0, +20,1,76,0,85,0,161,0,253,255,171,255,59,0,65,0,28,0,55,1,14,2,166,0,205,254,105,255,158,1,26,2, +122,0,243,255,117,1,165,1,165,255,97,255,170,1,83,2,166,0,120,0,237,1,106,1,69,255,54,255,71,1,11,2, +219,0,91,0,119,1,93,2,41,2,147,1,200,0,221,255,226,255,252,0,179,1,60,1,102,0,84,0,46,1,176,1, +233,0,65,0,16,1,223,1,138,1,153,1,96,2,243,1,181,0,247,0,6,2,103,1,221,255,5,0,143,1,27,2, +120,1,67,1,122,1,249,0,104,0,238,0,94,1,115,0,209,255,230,0,172,1,96,0,39,255,32,0,100,1,186,0, +173,255,75,0,108,1,123,1,14,1,161,0,186,255,20,255,207,255,32,1,169,1,72,1,91,0,113,255,57,255,121,255, +198,255,154,0,125,1,248,0,201,255,214,255,62,0,91,255,111,254,28,255,100,0,212,0,110,0,228,255,226,255,112,0, +179,0,90,0,214,255,56,255,209,254,98,255,43,0,232,255,142,255,52,0,113,0,114,255,228,254,120,255,220,255,194,255, +240,255,51,0,19,0,241,255,8,0,254,255,172,255,65,255,13,255,79,255,188,255,188,255,90,255,21,255,11,255,34,255, +78,255,52,255,150,254,47,254,172,254,59,255,211,254,33,254,67,254,201,254,195,254,110,254,97,254,117,254,93,254,77,254, +138,254,196,254,101,254,220,253,109,254,195,255,211,255,116,254,214,253,161,254,69,255,23,255,221,254,24,255,176,255,22,0, +166,255,215,254,184,254,38,255,94,255,65,255,234,254,181,254,60,255,232,255,154,255,246,254,39,255,148,255,115,255,58,255, +45,255,8,255,9,255,103,255,189,255,158,255,253,254,130,254,241,254,140,255,36,255,131,254,178,254,201,254,97,254,163,254, +63,255,196,254,240,253,73,254,48,255,105,255,52,255,39,255,53,255,71,255,109,255,160,255,189,255,140,255,47,255,62,255, +207,255,26,0,175,255,17,255,221,254,52,255,222,255,125,0,184,0,143,0,75,0,35,0,24,0,26,0,33,0,73,0, +165,0,221,0,135,0,18,0,52,0,144,0,124,0,124,0,7,1,70,1,223,0,185,0,246,0,198,0,102,0,129,0, +165,0,94,0,41,0,70,0,111,0,170,0,225,0,154,0,242,255,161,255,234,255,91,0,100,0,245,255,162,255,200,255, +242,255,212,255,210,255,254,255,250,255,226,255,240,255,207,255,109,255,75,255,117,255,135,255,138,255,185,255,229,255,221,255, +186,255,142,255,102,255,115,255,179,255,212,255,212,255,17,0,114,0,94,0,221,255,170,255,232,255,19,0,36,0,103,0, +148,0,100,0,62,0,105,0,156,0,163,0,151,0,138,0,152,0,204,0,220,0,153,0,71,0,53,0,97,0,130,0, +78,0,4,0,58,0,188,0,199,0,116,0,102,0,131,0,106,0,84,0,98,0,80,0,52,0,70,0,65,0,248,255, +213,255,8,0,58,0,43,0,243,255,184,255,165,255,196,255,197,255,121,255,65,255,116,255,190,255,207,255,226,255,15,0, +246,255,150,255,111,255,161,255,209,255,210,255,179,255,153,255,170,255,191,255,142,255,78,255,91,255,145,255,193,255,248,255, +10,0,225,255,216,255,224,255,149,255,94,255,191,255,19,0,192,255,82,255,84,255,165,255,8,0,38,0,204,255,150,255, +252,255,86,0,26,0,193,255,166,255,163,255,196,255,9,0,21,0,226,255,197,255,205,255,232,255,18,0,9,0,182,255, +154,255,246,255,52,0,240,255,166,255,189,255,217,255,172,255,133,255,166,255,231,255,21,0,37,0,26,0,29,0,72,0, +91,0,52,0,23,0,19,0,253,255,241,255,19,0,48,0,47,0,26,0,218,255,154,255,177,255,222,255,199,255,177,255, +196,255,180,255,151,255,172,255,157,255,81,255,80,255,147,255,139,255,67,255,28,255,25,255,73,255,172,255,188,255,84,255, +40,255,116,255,150,255,92,255,68,255,91,255,65,255,12,255,12,255,30,255,2,255,233,254,20,255,89,255,112,255,89,255, +76,255,106,255,156,255,187,255,195,255,172,255,104,255,61,255,140,255,249,255,231,255,157,255,189,255,17,0,35,0,9,0, +234,255,218,255,20,0,96,0,55,0,241,255,54,0,153,0,137,0,110,0,147,0,159,0,159,0,201,0,185,0,90,0, +80,0,178,0,240,0,232,0,214,0,193,0,178,0,181,0,179,0,173,0,176,0,151,0,125,0,159,0,178,0,102,0, +48,0,119,0,206,0,220,0,206,0,169,0,97,0,72,0,119,0,154,0,181,0,3,1,55,1,6,1,211,0,223,0, +211,0,163,0,185,0,0,1,11,1,239,0,239,0,242,0,231,0,227,0,198,0,150,0,179,0,28,1,74,1,17,1, +210,0,210,0,254,0,2,1,190,0,155,0,230,0,29,1,239,0,217,0,1,1,224,0,148,0,173,0,238,0,216,0, +138,0,69,0,48,0,123,0,216,0,204,0,171,0,221,0,220,0,87,0,254,255,48,0,112,0,137,0,182,0,205,0, +122,0,253,255,225,255,51,0,127,0,136,0,150,0,196,0,189,0,104,0,39,0,19,0,229,255,207,255,60,0,198,0, +169,0,31,0,238,255,12,0,249,255,206,255,213,255,249,255,63,0,172,0,200,0,85,0,197,255,116,255,100,255,164,255, +3,0,51,0,101,0,180,0,154,0,10,0,170,255,165,255,198,255,32,0,131,0,123,0,52,0,23,0,7,0,213,255, +144,255,94,255,136,255,234,255,205,255,64,255,41,255,108,255,69,255,5,255,70,255,155,255,147,255,105,255,60,255,27,255, +51,255,80,255,32,255,242,254,22,255,73,255,52,255,229,254,190,254,254,254,83,255,73,255,34,255,63,255,100,255,84,255, +50,255,252,254,188,254,228,254,108,255,151,255,41,255,203,254,244,254,73,255,84,255,49,255,51,255,65,255,38,255,23,255, +54,255,73,255,79,255,109,255,129,255,140,255,189,255,203,255,133,255,108,255,169,255,185,255,162,255,186,255,194,255,154,255, +165,255,197,255,170,255,183,255,22,0,49,0,242,255,212,255,194,255,132,255,116,255,187,255,1,0,20,0,254,255,201,255, +158,255,154,255,147,255,138,255,179,255,240,255,241,255,177,255,119,255,109,255,117,255,109,255,121,255,188,255,241,255,216,255, +171,255,156,255,129,255,81,255,66,255,99,255,166,255,1,0,57,0,27,0,234,255,241,255,4,0,241,255,222,255,3,0, +81,0,139,0,120,0,47,0,20,0,68,0,91,0,44,0,11,0,42,0,78,0,92,0,122,0,146,0,109,0,56,0, +74,0,148,0,191,0,156,0,75,0,40,0,95,0,161,0,150,0,109,0,122,0,160,0,162,0,136,0,121,0,135,0, +188,0,247,0,245,0,182,0,142,0,173,0,219,0,231,0,223,0,192,0,125,0,76,0,103,0,153,0,179,0,225,0, +22,1,245,0,154,0,115,0,104,0,59,0,46,0,111,0,172,0,192,0,228,0,10,1,232,0,151,0,111,0,129,0, +160,0,180,0,195,0,210,0,215,0,210,0,190,0,144,0,93,0,107,0,209,0,56,1,60,1,235,0,166,0,156,0, +190,0,242,0,11,1,218,0,141,0,138,0,193,0,186,0,108,0,78,0,138,0,197,0,198,0,173,0,150,0,121,0, +86,0,61,0,48,0,48,0,54,0,47,0,45,0,73,0,92,0,46,0,245,255,10,0,58,0,53,0,48,0,104,0, +135,0,83,0,40,0,56,0,57,0,38,0,80,0,158,0,169,0,113,0,61,0,46,0,75,0,127,0,137,0,91,0, +61,0,75,0,86,0,85,0,89,0,75,0,47,0,49,0,53,0,12,0,235,255,2,0,13,0,242,255,240,255,255,255, +230,255,210,255,239,255,243,255,199,255,195,255,233,255,226,255,193,255,210,255,246,255,239,255,192,255,137,255,126,255,205,255, +40,0,14,0,173,255,132,255,133,255,108,255,95,255,110,255,100,255,88,255,119,255,134,255,94,255,77,255,96,255,77,255, +43,255,53,255,49,255,255,254,252,254,56,255,78,255,41,255,12,255,5,255,17,255,54,255,52,255,223,254,163,254,208,254, +3,255,240,254,215,254,213,254,195,254,185,254,212,254,221,254,184,254,151,254,129,254,100,254,94,254,110,254,100,254,81,254, +108,254,137,254,105,254,58,254,46,254,37,254,24,254,40,254,71,254,90,254,117,254,142,254,126,254,80,254,51,254,40,254, +35,254,47,254,77,254,107,254,133,254,149,254,141,254,116,254,115,254,168,254,249,254,39,255,34,255,25,255,31,255,24,255, +4,255,12,255,56,255,96,255,101,255,83,255,83,255,114,255,135,255,121,255,115,255,138,255,155,255,152,255,159,255,185,255, +201,255,186,255,153,255,145,255,176,255,200,255,194,255,202,255,241,255,252,255,210,255,164,255,157,255,182,255,200,255,194,255, +199,255,235,255,249,255,205,255,155,255,148,255,182,255,250,255,57,0,58,0,18,0,249,255,233,255,228,255,253,255,253,255, +211,255,239,255,97,0,149,0,103,0,61,0,31,0,244,255,249,255,40,0,41,0,29,0,80,0,122,0,89,0,50,0, +53,0,60,0,80,0,138,0,189,0,203,0,218,0,250,0,7,1,229,0,167,0,126,0,147,0,214,0,2,1,245,0, +227,0,250,0,23,1,11,1,235,0,202,0,147,0,105,0,133,0,190,0,200,0,184,0,181,0,166,0,141,0,132,0, +127,0,127,0,148,0,151,0,133,0,157,0,178,0,108,0,48,0,116,0,191,0,173,0,165,0,185,0,143,0,106,0, +170,0,227,0,191,0,146,0,146,0,164,0,205,0,248,0,243,0,208,0,184,0,169,0,176,0,210,0,231,0,243,0, +22,1,43,1,25,1,9,1,3,1,244,0,2,1,44,1,56,1,32,1,5,1,246,0,252,0,4,1,236,0,226,0, +37,1,120,1,135,1,126,1,135,1,102,1,9,1,217,0,30,1,123,1,115,1,45,1,23,1,31,1,11,1,17,1, +73,1,99,1,68,1,42,1,45,1,45,1,13,1,200,0,159,0,200,0,251,0,233,0,203,0,200,0,189,0,189,0, +218,0,203,0,138,0,129,0,178,0,182,0,134,0,116,0,129,0,118,0,91,0,97,0,127,0,135,0,125,0,128,0, +131,0,118,0,88,0,30,0,244,255,35,0,94,0,23,0,163,255,184,255,37,0,60,0,246,255,190,255,190,255,213,255, +208,255,168,255,138,255,154,255,187,255,189,255,140,255,87,255,107,255,175,255,197,255,158,255,123,255,129,255,175,255,219,255, +193,255,141,255,162,255,201,255,166,255,143,255,197,255,216,255,149,255,100,255,126,255,171,255,176,255,141,255,114,255,115,255, +115,255,116,255,121,255,82,255,28,255,62,255,141,255,136,255,64,255,25,255,39,255,71,255,86,255,71,255,62,255,71,255, +70,255,70,255,77,255,64,255,62,255,97,255,96,255,58,255,65,255,86,255,61,255,63,255,127,255,159,255,121,255,58,255, +5,255,11,255,82,255,112,255,60,255,24,255,54,255,102,255,125,255,123,255,111,255,107,255,117,255,131,255,126,255,95,255, +81,255,109,255,133,255,138,255,161,255,176,255,158,255,161,255,194,255,197,255,183,255,186,255,181,255,177,255,200,255,197,255, +153,255,150,255,210,255,10,0,25,0,2,0,217,255,195,255,204,255,222,255,230,255,218,255,210,255,238,255,0,0,215,255, +181,255,217,255,4,0,3,0,0,0,15,0,11,0,223,255,174,255,174,255,216,255,246,255,248,255,246,255,251,255,18,0, +47,0,39,0,7,0,249,255,237,255,234,255,40,0,95,0,49,0,0,0,45,0,88,0,55,0,24,0,56,0,121,0, +152,0,109,0,48,0,46,0,56,0,34,0,43,0,82,0,76,0,60,0,109,0,149,0,100,0,34,0,33,0,64,0, +74,0,66,0,55,0,52,0,77,0,119,0,129,0,106,0,108,0,116,0,63,0,0,0,7,0,34,0,41,0,70,0, +88,0,40,0,1,0,26,0,43,0,29,0,30,0,29,0,6,0,252,255,2,0,243,255,223,255,231,255,254,255,6,0, +244,255,223,255,231,255,2,0,12,0,255,255,236,255,233,255,248,255,248,255,220,255,209,255,219,255,216,255,221,255,3,0, +31,0,38,0,57,0,66,0,44,0,24,0,14,0,4,0,16,0,59,0,105,0,124,0,96,0,49,0,51,0,88,0, +97,0,89,0,85,0,72,0,83,0,129,0,130,0,82,0,66,0,69,0,54,0,60,0,71,0,66,0,100,0,152,0, +132,0,75,0,55,0,48,0,61,0,101,0,95,0,56,0,71,0,103,0,98,0,110,0,129,0,110,0,113,0,133,0, +79,0,9,0,25,0,67,0,80,0,101,0,102,0,57,0,34,0,50,0,50,0,37,0,27,0,9,0,242,255,223,255, +218,255,238,255,1,0,12,0,25,0,1,0,210,255,226,255,1,0,215,255,191,255,245,255,6,0,224,255,205,255,181,255, +147,255,167,255,218,255,0,0,44,0,54,0,248,255,194,255,187,255,174,255,165,255,203,255,3,0,14,0,222,255,169,255, +159,255,153,255,134,255,162,255,220,255,227,255,199,255,174,255,155,255,180,255,231,255,197,255,117,255,130,255,193,255,185,255, +118,255,66,255,76,255,140,255,174,255,133,255,96,255,122,255,167,255,168,255,108,255,64,255,110,255,159,255,121,255,90,255, +133,255,186,255,204,255,166,255,73,255,34,255,101,255,165,255,167,255,150,255,131,255,141,255,183,255,186,255,154,255,125,255, +55,255,21,255,124,255,191,255,107,255,56,255,92,255,100,255,87,255,227,254,236,253,20,254,254,255,118,1,60,1,122,0, +123,255,216,253,185,252,108,253,144,255,179,1,71,2,9,1,172,255,132,255,240,255,15,0,244,255,1,0,81,0,115,0, +252,255,102,255,82,255,179,255,96,0,250,0,213,0,55,0,238,255,179,255,73,255,88,255,17,0,233,0,56,1,68,0, +187,254,172,254,236,255,75,0,226,255,30,0,102,0,250,255,170,255,204,255,8,0,55,0,208,255,14,255,114,255,173,0, +185,0,193,255,85,255,92,255,125,255,31,0,154,0,21,0,77,255,244,254,222,254,61,255,16,0,97,0,218,255,76,255, +61,255,113,255,114,255,252,254,153,254,16,255,23,0,205,0,16,1,38,1,9,1,181,0,60,0,173,255,105,255,175,255, +245,255,213,255,188,255,241,255,27,0,26,0,26,0,62,0,168,0,251,0,115,0,131,255,152,255,147,0,230,0,100,0, +57,0,162,0,208,0,109,0,236,255,199,255,240,255,50,0,164,0,241,0,54,0,215,254,126,254,80,255,233,255,16,0, +102,0,126,0,234,255,61,255,190,254,113,254,11,255,128,0,55,1,123,0,129,255,73,255,150,255,235,255,1,0,253,255, +116,0,51,1,10,1,220,255,47,255,233,255,41,1,117,1,135,0,222,255,161,0,105,1,201,0,86,0,83,1,199,1, +218,0,197,0,187,1,107,1,86,0,193,0,192,1,58,1,12,0,213,255,27,0,28,0,63,0,162,0,201,0,225,0, +103,1,213,1,57,1,231,255,64,255,234,255,27,1,175,1,83,1,193,0,183,0,191,0,37,0,155,255,253,255,110,0, +49,0,65,0,239,0,240,0,43,0,229,255,18,0,233,255,196,255,230,255,213,255,235,255,142,0,169,0,197,255,102,255, +56,0,191,0,37,0,131,255,215,255,155,0,167,0,203,255,51,255,176,255,113,0,145,0,104,0,70,0,235,255,175,255, +17,0,111,0,47,0,252,255,90,0,155,0,64,0,209,255,196,255,226,255,228,255,233,255,26,0,55,0,249,255,168,255, +183,255,252,255,239,255,129,255,33,255,23,255,72,255,123,255,200,255,84,0,186,0,118,0,234,255,210,255,254,255,226,255, +190,255,249,255,67,0,64,0,21,0,245,255,239,255,21,0,68,0,66,0,42,0,49,0,76,0,94,0,100,0,92,0, +94,0,128,0,132,0,47,0,219,255,229,255,250,255,194,255,138,255,148,255,158,255,149,255,199,255,5,0,205,255,109,255, +161,255,25,0,2,0,164,255,202,255,45,0,20,0,178,255,137,255,125,255,111,255,144,255,175,255,124,255,73,255,142,255, +15,0,84,0,85,0,56,0,13,0,244,255,15,0,79,0,129,0,111,0,31,0,240,255,35,0,96,0,49,0,194,255, +134,255,151,255,213,255,34,0,71,0,50,0,62,0,141,0,163,0,91,0,88,0,192,0,208,0,83,0,19,0,85,0, +114,0,36,0,231,255,3,0,66,0,119,0,145,0,129,0,93,0,90,0,135,0,188,0,198,0,164,0,120,0,84,0, +69,0,107,0,169,0,164,0,111,0,119,0,187,0,224,0,229,0,222,0,159,0,95,0,141,0,210,0,144,0,32,0, +45,0,130,0,162,0,157,0,154,0,135,0,113,0,103,0,67,0,25,0,61,0,166,0,240,0,239,0,192,0,118,0, +34,0,250,255,24,0,71,0,80,0,77,0,79,0,40,0,226,255,216,255,252,255,214,255,119,255,111,255,192,255,230,255, +203,255,195,255,225,255,236,255,196,255,138,255,113,255,126,255,135,255,114,255,76,255,34,255,20,255,41,255,40,255,0,255, +3,255,54,255,67,255,56,255,90,255,112,255,79,255,83,255,132,255,119,255,61,255,37,255,16,255,253,254,60,255,142,255, +116,255,54,255,72,255,113,255,120,255,133,255,154,255,147,255,143,255,154,255,158,255,183,255,225,255,210,255,150,255,148,255, +206,255,250,255,8,0,0,0,242,255,11,0,71,0,73,0,249,255,192,255,217,255,11,0,34,0,30,0,14,0,239,255, +190,255,154,255,164,255,195,255,204,255,195,255,181,255,165,255,156,255,147,255,113,255,95,255,144,255,203,255,209,255,186,255, +142,255,58,255,10,255,64,255,121,255,111,255,116,255,163,255,177,255,148,255,105,255,29,255,229,254,41,255,179,255,218,255, +122,255,18,255,20,255,90,255,102,255,52,255,73,255,149,255,129,255,42,255,22,255,22,255,250,254,63,255,208,255,219,255, +125,255,136,255,199,255,161,255,123,255,193,255,240,255,186,255,159,255,212,255,241,255,203,255,170,255,188,255,220,255,211,255, +166,255,129,255,123,255,147,255,191,255,213,255,191,255,188,255,247,255,27,0,216,255,112,255,80,255,134,255,201,255,217,255, +201,255,215,255,247,255,241,255,220,255,221,255,211,255,197,255,248,255,70,0,76,0,39,0,38,0,45,0,29,0,25,0, +35,0,25,0,255,255,228,255,216,255,252,255,40,0,12,0,205,255,202,255,241,255,14,0,42,0,56,0,31,0,25,0, +67,0,93,0,80,0,58,0,0,0,165,255,154,255,252,255,68,0,37,0,220,255,178,255,192,255,248,255,36,0,21,0, +236,255,224,255,252,255,21,0,248,255,184,255,174,255,243,255,43,0,22,0,229,255,224,255,12,0,46,0,40,0,43,0, +101,0,141,0,106,0,82,0,132,0,157,0,110,0,91,0,135,0,158,0,141,0,138,0,148,0,157,0,174,0,178,0, +152,0,129,0,129,0,135,0,157,0,182,0,161,0,117,0,133,0,188,0,184,0,122,0,86,0,96,0,117,0,148,0, +190,0,202,0,160,0,114,0,112,0,128,0,126,0,106,0,79,0,62,0,100,0,166,0,160,0,94,0,99,0,164,0, +140,0,26,0,228,255,11,0,54,0,79,0,107,0,115,0,89,0,64,0,60,0,69,0,74,0,62,0,64,0,101,0, +112,0,67,0,57,0,113,0,114,0,34,0,29,0,123,0,133,0,11,0,204,255,34,0,120,0,83,0,255,255,228,255, +240,255,245,255,1,0,35,0,54,0,41,0,31,0,21,0,232,255,186,255,209,255,12,0,11,0,220,255,211,255,232,255, +215,255,185,255,213,255,13,0,24,0,252,255,225,255,197,255,169,255,164,255,170,255,165,255,169,255,198,255,214,255,200,255, +189,255,194,255,198,255,192,255,177,255,154,255,147,255,167,255,188,255,201,255,228,255,254,255,233,255,189,255,189,255,213,255, +197,255,174,255,219,255,31,0,20,0,225,255,229,255,236,255,163,255,107,255,188,255,46,0,47,0,1,0,7,0,7,0, +211,255,201,255,249,255,251,255,213,255,241,255,38,0,248,255,160,255,186,255,30,0,41,0,212,255,154,255,158,255,165,255, +160,255,165,255,178,255,182,255,174,255,170,255,188,255,205,255,180,255,149,255,189,255,0,0,241,255,173,255,150,255,171,255, +195,255,217,255,207,255,152,255,142,255,207,255,235,255,178,255,131,255,141,255,182,255,252,255,48,0,18,0,235,255,27,0, +73,0,26,0,239,255,6,0,4,0,221,255,241,255,55,0,83,0,77,0,78,0,63,0,28,0,16,0,28,0,37,0, +53,0,83,0,101,0,97,0,94,0,88,0,54,0,17,0,32,0,89,0,116,0,91,0,66,0,80,0,121,0,138,0, +95,0,31,0,16,0,38,0,31,0,21,0,52,0,68,0,29,0,2,0,16,0,16,0,255,255,13,0,31,0,10,0, +220,255,184,255,190,255,238,255,12,0,245,255,230,255,239,255,217,255,209,255,22,0,57,0,242,255,220,255,55,0,77,0, +240,255,215,255,17,0,5,0,195,255,218,255,47,0,68,0,18,0,228,255,213,255,220,255,245,255,12,0,0,0,228,255, +253,255,56,0,45,0,230,255,219,255,25,0,53,0,39,0,41,0,44,0,9,0,219,255,200,255,237,255,74,0,133,0, +81,0,11,0,32,0,78,0,55,0,11,0,12,0,51,0,90,0,86,0,30,0,252,255,26,0,48,0,18,0,2,0, +38,0,84,0,94,0,56,0,4,0,5,0,53,0,69,0,40,0,28,0,56,0,98,0,117,0,71,0,248,255,233,255, +30,0,69,0,91,0,131,0,147,0,116,0,81,0,44,0,252,255,241,255,15,0,41,0,67,0,89,0,49,0,243,255, +11,0,73,0,63,0,29,0,51,0,70,0,33,0,241,255,224,255,237,255,4,0,2,0,239,255,0,0,35,0,27,0, +249,255,225,255,191,255,170,255,218,255,35,0,43,0,2,0,224,255,208,255,213,255,227,255,222,255,219,255,248,255,7,0, +230,255,207,255,231,255,10,0,35,0,61,0,71,0,54,0,31,0,24,0,50,0,90,0,94,0,66,0,67,0,89,0, +67,0,28,0,51,0,112,0,128,0,90,0,60,0,71,0,86,0,65,0,44,0,70,0,92,0,65,0,53,0,94,0, +103,0,42,0,1,0,25,0,57,0,62,0,56,0,57,0,80,0,109,0,99,0,62,0,59,0,80,0,71,0,39,0, +25,0,30,0,42,0,59,0,63,0,31,0,232,255,198,255,221,255,18,0,47,0,73,0,127,0,134,0,45,0,217,255, +210,255,217,255,223,255,16,0,61,0,49,0,46,0,70,0,42,0,246,255,253,255,9,0,224,255,220,255,29,0,35,0, +212,255,182,255,246,255,40,0,14,0,218,255,204,255,228,255,244,255,222,255,191,255,192,255,226,255,5,0,8,0,228,255, +179,255,156,255,172,255,206,255,218,255,201,255,196,255,222,255,222,255,174,255,146,255,165,255,168,255,139,255,133,255,151,255, +156,255,163,255,193,255,206,255,175,255,129,255,112,255,136,255,162,255,142,255,107,255,119,255,170,255,203,255,189,255,130,255, +80,255,123,255,210,255,199,255,111,255,102,255,166,255,179,255,166,255,195,255,194,255,122,255,84,255,119,255,139,255,117,255, +110,255,124,255,125,255,124,255,132,255,130,255,103,255,76,255,97,255,162,255,190,255,144,255,94,255,104,255,143,255,174,255, +203,255,215,255,185,255,143,255,129,255,137,255,149,255,179,255,211,255,207,255,184,255,199,255,235,255,224,255,175,255,154,255, +157,255,151,255,175,255,245,255,14,0,208,255,157,255,176,255,191,255,164,255,156,255,192,255,223,255,210,255,166,255,128,255, +124,255,137,255,138,255,138,255,165,255,197,255,209,255,210,255,199,255,169,255,146,255,151,255,162,255,162,255,164,255,177,255, +190,255,187,255,168,255,160,255,184,255,203,255,183,255,174,255,224,255,10,0,235,255,185,255,188,255,223,255,253,255,21,0, +27,0,4,0,247,255,10,0,35,0,48,0,53,0,39,0,3,0,241,255,4,0,28,0,43,0,57,0,60,0,45,0, +34,0,30,0,13,0,2,0,31,0,76,0,96,0,94,0,88,0,74,0,58,0,50,0,39,0,30,0,49,0,78,0, +67,0,15,0,237,255,245,255,4,0,255,255,250,255,9,0,20,0,8,0,247,255,237,255,214,255,182,255,178,255,204,255, +232,255,250,255,5,0,4,0,246,255,226,255,204,255,192,255,203,255,216,255,213,255,222,255,247,255,244,255,220,255,239,255, +34,0,46,0,17,0,9,0,33,0,56,0,66,0,64,0,52,0,48,0,65,0,91,0,116,0,141,0,155,0,151,0, +142,0,136,0,129,0,134,0,162,0,190,0,193,0,180,0,170,0,160,0,150,0,159,0,190,0,209,0,191,0,174,0, +197,0,228,0,215,0,172,0,150,0,150,0,156,0,174,0,194,0,187,0,172,0,194,0,226,0,210,0,166,0,147,0, +147,0,137,0,132,0,155,0,176,0,160,0,131,0,129,0,135,0,98,0,39,0,33,0,70,0,80,0,77,0,109,0, +128,0,90,0,70,0,113,0,135,0,101,0,86,0,93,0,55,0,254,255,1,0,47,0,77,0,85,0,83,0,81,0, +80,0,55,0,7,0,249,255,28,0,41,0,12,0,5,0,30,0,26,0,246,255,218,255,200,255,193,255,201,255,205,255, +198,255,208,255,235,255,243,255,241,255,241,255,223,255,185,255,159,255,157,255,169,255,199,255,229,255,235,255,231,255,217,255, +175,255,133,255,146,255,187,255,187,255,142,255,101,255,104,255,153,255,188,255,156,255,96,255,78,255,103,255,143,255,181,255, +173,255,116,255,87,255,118,255,140,255,125,255,114,255,117,255,122,255,143,255,173,255,187,255,190,255,186,255,160,255,140,255, +158,255,178,255,185,255,215,255,243,255,222,255,193,255,196,255,189,255,184,255,238,255,31,0,250,255,200,255,221,255,249,255, +228,255,213,255,234,255,0,0,10,0,10,0,245,255,220,255,222,255,241,255,242,255,230,255,225,255,231,255,236,255,235,255, +239,255,247,255,240,255,220,255,218,255,232,255,232,255,223,255,218,255,203,255,187,255,198,255,215,255,206,255,201,255,223,255, +235,255,224,255,219,255,222,255,218,255,218,255,218,255,199,255,195,255,237,255,27,0,33,0,23,0,18,0,8,0,1,0, +5,0,7,0,1,0,5,0,17,0,20,0,15,0,19,0,31,0,46,0,58,0,64,0,60,0,47,0,31,0,31,0, +51,0,69,0,69,0,60,0,56,0,54,0,51,0,49,0,48,0,48,0,48,0,46,0,40,0,33,0,31,0,28,0, +11,0,245,255,254,255,44,0,74,0,59,0,36,0,28,0,19,0,11,0,25,0,39,0,16,0,234,255,231,255,9,0, +42,0,39,0,4,0,240,255,7,0,33,0,17,0,241,255,241,255,14,0,37,0,36,0,26,0,31,0,45,0,38,0, +10,0,252,255,4,0,27,0,64,0,91,0,82,0,58,0,57,0,67,0,66,0,65,0,70,0,74,0,80,0,94,0, +100,0,93,0,78,0,62,0,73,0,114,0,126,0,74,0,29,0,47,0,91,0,115,0,105,0,72,0,59,0,97,0, +123,0,78,0,36,0,69,0,125,0,133,0,108,0,82,0,72,0,84,0,85,0,45,0,9,0,17,0,35,0,29,0, +18,0,4,0,239,255,242,255,19,0,50,0,70,0,66,0,15,0,210,255,215,255,20,0,50,0,14,0,227,255,243,255, +36,0,25,0,210,255,195,255,5,0,40,0,7,0,237,255,232,255,220,255,231,255,13,0,22,0,2,0,240,255,208,255, +173,255,197,255,248,255,246,255,216,255,216,255,216,255,191,255,190,255,230,255,240,255,176,255,107,255,129,255,197,255,180,255, +117,255,154,255,2,0,41,0,41,0,38,0,201,255,33,255,194,254,211,254,51,255,220,255,75,0,253,255,137,255,156,255, +196,255,148,255,121,255,154,255,152,255,115,255,103,255,98,255,101,255,155,255,224,255,234,255,189,255,148,255,119,255,69,255, +32,255,83,255,208,255,55,0,76,0,3,0,128,255,71,255,148,255,198,255,130,255,110,255,206,255,249,255,195,255,176,255, +183,255,141,255,136,255,208,255,251,255,240,255,232,255,199,255,150,255,185,255,254,255,213,255,131,255,171,255,9,0,250,255, +155,255,113,255,166,255,12,0,76,0,23,0,163,255,137,255,225,255,19,0,206,255,124,255,142,255,235,255,61,0,100,0, +110,0,86,0,23,0,228,255,246,255,27,0,246,255,168,255,180,255,26,0,70,0,10,0,222,255,17,0,97,0,112,0, +53,0,230,255,210,255,21,0,93,0,73,0,2,0,252,255,49,0,56,0,9,0,252,255,24,0,20,0,251,255,9,0, +24,0,231,255,175,255,198,255,251,255,250,255,207,255,182,255,192,255,210,255,200,255,164,255,155,255,181,255,195,255,202,255, +226,255,212,255,142,255,139,255,230,255,248,255,157,255,129,255,217,255,23,0,4,0,225,255,214,255,233,255,15,0,25,0, +13,0,41,0,75,0,36,0,243,255,27,0,103,0,121,0,92,0,65,0,73,0,128,0,146,0,40,0,172,255,183,255, +15,0,42,0,39,0,80,0,109,0,68,0,22,0,26,0,37,0,22,0,36,0,126,0,233,0,249,0,155,0,51,0, +44,0,117,0,154,0,101,0,24,0,252,255,18,0,74,0,112,0,50,0,206,255,10,0,186,0,189,0,12,0,196,255, +244,255,207,255,164,255,24,0,119,0,30,0,250,255,131,0,146,0,195,255,104,255,246,255,67,0,227,255,192,255,57,0, +185,0,213,0,127,0,215,255,97,255,130,255,243,255,93,0,172,0,150,0,33,0,4,0,89,0,73,0,194,255,161,255, +254,255,75,0,121,0,130,0,37,0,194,255,221,255,0,0,178,255,111,255,144,255,185,255,214,255,30,0,78,0,19,0, +199,255,231,255,79,0,94,0,226,255,142,255,227,255,56,0,219,255,106,255,160,255,14,0,37,0,29,0,48,0,53,0, +42,0,44,0,49,0,40,0,255,255,198,255,226,255,103,0,171,0,90,0,246,255,217,255,210,255,231,255,37,0,54,0, +249,255,209,255,237,255,23,0,31,0,254,255,238,255,43,0,104,0,57,0,0,0,63,0,152,0,148,0,110,0,72,0, +2,0,227,255,24,0,45,0,251,255,253,255,70,0,98,0,69,0,42,0,27,0,28,0,53,0,59,0,43,0,54,0, +84,0,88,0,84,0,71,0,10,0,192,255,183,255,224,255,6,0,13,0,207,255,99,255,79,255,192,255,21,0,220,255, +128,255,144,255,221,255,229,255,159,255,137,255,204,255,249,255,206,255,162,255,180,255,196,255,163,255,139,255,162,255,198,255, +224,255,2,0,52,0,83,0,61,0,15,0,3,0,24,0,24,0,9,0,33,0,84,0,112,0,115,0,112,0,97,0, +71,0,58,0,66,0,86,0,99,0,88,0,70,0,90,0,145,0,165,0,114,0,58,0,66,0,110,0,120,0,99,0, +101,0,125,0,130,0,117,0,115,0,116,0,106,0,90,0,64,0,32,0,23,0,44,0,65,0,71,0,63,0,33,0, +5,0,19,0,51,0,51,0,32,0,31,0,47,0,67,0,92,0,110,0,98,0,57,0,14,0,14,0,57,0,80,0, +56,0,38,0,48,0,53,0,72,0,125,0,132,0,59,0,16,0,55,0,70,0,27,0,24,0,90,0,140,0,131,0, +92,0,67,0,79,0,103,0,98,0,84,0,98,0,104,0,65,0,36,0,57,0,65,0,21,0,241,255,4,0,27,0, +0,0,218,255,233,255,26,0,35,0,235,255,171,255,167,255,231,255,35,0,5,0,175,255,149,255,201,255,243,255,244,255, +240,255,219,255,173,255,155,255,184,255,196,255,173,255,163,255,178,255,196,255,209,255,204,255,172,255,149,255,157,255,153,255, +123,255,116,255,153,255,198,255,213,255,195,255,165,255,148,255,149,255,162,255,188,255,225,255,238,255,206,255,156,255,117,255, +102,255,121,255,175,255,229,255,243,255,213,255,161,255,121,255,122,255,154,255,176,255,171,255,157,255,149,255,144,255,141,255, +144,255,142,255,124,255,105,255,116,255,163,255,194,255,178,255,153,255,162,255,174,255,158,255,151,255,191,255,231,255,214,255, +162,255,149,255,195,255,250,255,249,255,193,255,146,255,143,255,154,255,157,255,174,255,206,255,217,255,210,255,217,255,230,255, +226,255,214,255,212,255,223,255,252,255,24,0,11,0,223,255,209,255,238,255,6,0,9,0,4,0,245,255,231,255,242,255, +1,0,243,255,224,255,227,255,221,255,192,255,183,255,204,255,215,255,212,255,220,255,233,255,228,255,215,255,210,255,217,255, +234,255,235,255,202,255,176,255,204,255,234,255,200,255,154,255,177,255,239,255,7,0,242,255,214,255,201,255,217,255,239,255, +216,255,163,255,138,255,140,255,131,255,141,255,185,255,200,255,174,255,179,255,203,255,177,255,135,255,150,255,188,255,197,255, +209,255,231,255,219,255,188,255,184,255,190,255,181,255,182,255,201,255,214,255,220,255,220,255,205,255,197,255,217,255,227,255, +205,255,200,255,245,255,33,0,22,0,229,255,189,255,181,255,192,255,206,255,219,255,226,255,222,255,211,255,208,255,216,255, +233,255,252,255,250,255,211,255,172,255,176,255,215,255,245,255,241,255,212,255,197,255,217,255,237,255,226,255,227,255,11,0, +33,0,245,255,191,255,197,255,252,255,43,0,46,0,15,0,252,255,16,0,45,0,45,0,23,0,13,0,32,0,66,0, +75,0,53,0,42,0,66,0,83,0,68,0,57,0,72,0,78,0,62,0,60,0,80,0,87,0,69,0,49,0,40,0, +35,0,43,0,65,0,74,0,58,0,38,0,39,0,54,0,65,0,64,0,59,0,61,0,62,0,43,0,23,0,36,0, +58,0,44,0,22,0,47,0,85,0,80,0,66,0,89,0,108,0,67,0,4,0,249,255,42,0,94,0,104,0,80,0, +57,0,38,0,19,0,25,0,70,0,118,0,133,0,124,0,110,0,91,0,69,0,55,0,51,0,57,0,78,0,103,0, +109,0,90,0,73,0,81,0,95,0,75,0,38,0,42,0,83,0,102,0,89,0,84,0,92,0,84,0,67,0,63,0, +63,0,63,0,73,0,90,0,94,0,84,0,72,0,62,0,51,0,38,0,29,0,33,0,46,0,46,0,39,0,45,0, +47,0,18,0,241,255,249,255,23,0,31,0,34,0,68,0,99,0,67,0,2,0,236,255,5,0,16,0,7,0,18,0, +50,0,61,0,30,0,238,255,232,255,32,0,78,0,45,0,236,255,218,255,234,255,244,255,2,0,19,0,10,0,248,255, +248,255,241,255,225,255,244,255,21,0,16,0,4,0,25,0,38,0,12,0,246,255,245,255,242,255,241,255,249,255,242,255, +222,255,210,255,197,255,195,255,235,255,24,0,8,0,223,255,225,255,249,255,247,255,233,255,230,255,229,255,232,255,239,255, +238,255,242,255,3,0,250,255,205,255,185,255,213,255,232,255,225,255,229,255,246,255,247,255,243,255,4,0,31,0,44,0, +31,0,249,255,217,255,231,255,26,0,69,0,81,0,65,0,30,0,4,0,9,0,9,0,239,255,243,255,47,0,93,0, +73,0,37,0,32,0,44,0,52,0,57,0,60,0,59,0,57,0,47,0,32,0,43,0,79,0,97,0,80,0,59,0, +58,0,74,0,87,0,68,0,19,0,248,255,12,0,43,0,46,0,34,0,29,0,38,0,59,0,73,0,61,0,40,0, +40,0,51,0,50,0,47,0,46,0,34,0,20,0,23,0,25,0,5,0,250,255,16,0,34,0,16,0,242,255,236,255, +1,0,21,0,12,0,241,255,250,255,41,0,55,0,16,0,240,255,246,255,246,255,232,255,239,255,2,0,253,255,233,255, +224,255,220,255,216,255,223,255,231,255,221,255,192,255,167,255,175,255,220,255,254,255,228,255,181,255,189,255,236,255,238,255, +194,255,172,255,184,255,193,255,197,255,219,255,247,255,250,255,220,255,183,255,174,255,198,255,218,255,206,255,186,255,188,255, +191,255,177,255,169,255,194,255,227,255,229,255,203,255,178,255,169,255,168,255,170,255,185,255,220,255,1,0,255,255,218,255, +195,255,208,255,220,255,212,255,216,255,247,255,3,0,232,255,206,255,210,255,223,255,225,255,225,255,231,255,241,255,250,255, +246,255,222,255,201,255,213,255,248,255,16,0,4,0,218,255,189,255,204,255,232,255,225,255,210,255,251,255,59,0,57,0, +248,255,200,255,197,255,203,255,196,255,183,255,182,255,215,255,17,0,45,0,15,0,225,255,217,255,251,255,32,0,28,0, +245,255,223,255,243,255,2,0,241,255,240,255,20,0,41,0,24,0,19,0,41,0,44,0,16,0,249,255,253,255,12,0, +24,0,23,0,13,0,8,0,22,0,54,0,84,0,77,0,24,0,236,255,254,255,41,0,43,0,21,0,29,0,61,0, +66,0,39,0,9,0,0,0,12,0,29,0,25,0,255,255,233,255,247,255,34,0,55,0,19,0,215,255,202,255,239,255, +10,0,8,0,12,0,27,0,28,0,16,0,9,0,2,0,252,255,11,0,41,0,45,0,8,0,211,255,187,255,207,255, +231,255,216,255,199,255,229,255,17,0,19,0,1,0,1,0,247,255,216,255,213,255,251,255,33,0,48,0,51,0,40,0, +22,0,13,0,2,0,241,255,238,255,252,255,253,255,248,255,12,0,33,0,30,0,26,0,29,0,18,0,15,0,50,0, +74,0,46,0,12,0,18,0,33,0,29,0,25,0,16,0,248,255,239,255,9,0,40,0,60,0,63,0,35,0,0,0, +12,0,46,0,29,0,241,255,247,255,30,0,36,0,3,0,225,255,212,255,232,255,4,0,253,255,225,255,229,255,245,255, +216,255,180,255,201,255,243,255,239,255,210,255,205,255,217,255,212,255,191,255,190,255,225,255,2,0,232,255,174,255,171,255, +229,255,3,0,229,255,205,255,213,255,216,255,210,255,228,255,254,255,248,255,224,255,225,255,254,255,15,0,248,255,219,255, +234,255,25,0,33,0,241,255,202,255,217,255,3,0,32,0,30,0,5,0,244,255,253,255,14,0,17,0,16,0,13,0, +253,255,234,255,235,255,2,0,28,0,39,0,27,0,7,0,252,255,249,255,251,255,14,0,34,0,24,0,251,255,239,255, +237,255,221,255,203,255,206,255,227,255,253,255,17,0,11,0,229,255,200,255,218,255,1,0,14,0,7,0,13,0,26,0, +18,0,248,255,235,255,255,255,31,0,37,0,14,0,254,255,14,0,43,0,53,0,28,0,236,255,212,255,252,255,63,0, +81,0,55,0,48,0,64,0,57,0,30,0,31,0,65,0,79,0,53,0,28,0,31,0,35,0,25,0,32,0,65,0, +82,0,62,0,32,0,8,0,238,255,226,255,249,255,25,0,28,0,10,0,5,0,9,0,246,255,216,255,221,255,1,0, +7,0,229,255,207,255,208,255,194,255,173,255,178,255,194,255,185,255,164,255,163,255,180,255,190,255,177,255,152,255,147,255, +160,255,164,255,160,255,182,255,214,255,208,255,174,255,160,255,162,255,150,255,144,255,170,255,195,255,195,255,197,255,214,255, +219,255,210,255,211,255,216,255,213,255,224,255,241,255,234,255,222,255,242,255,7,0,251,255,235,255,241,255,248,255,3,0, +31,0,36,0,248,255,211,255,234,255,27,0,43,0,14,0,232,255,233,255,16,0,35,0,13,0,255,255,22,0,45,0, +46,0,51,0,59,0,47,0,34,0,46,0,61,0,44,0,11,0,251,255,255,255,7,0,14,0,18,0,29,0,52,0, +62,0,34,0,2,0,2,0,23,0,42,0,67,0,82,0,52,0,11,0,19,0,63,0,82,0,58,0,26,0,26,0, +62,0,88,0,65,0,32,0,47,0,78,0,75,0,71,0,105,0,128,0,85,0,29,0,40,0,102,0,130,0,103,0, +96,0,138,0,158,0,106,0,40,0,28,0,53,0,79,0,104,0,127,0,132,0,110,0,71,0,32,0,20,0,33,0, +45,0,56,0,82,0,91,0,43,0,234,255,222,255,2,0,32,0,37,0,22,0,248,255,241,255,17,0,35,0,0,0, +227,255,251,255,25,0,16,0,245,255,222,255,214,255,234,255,2,0,240,255,202,255,191,255,202,255,224,255,10,0,31,0, +245,255,202,255,216,255,227,255,186,255,161,255,209,255,18,0,35,0,0,0,207,255,195,255,235,255,14,0,251,255,215,255, +220,255,252,255,6,0,237,255,207,255,220,255,25,0,73,0,51,0,241,255,206,255,233,255,29,0,56,0,39,0,0,0, +231,255,239,255,5,0,21,0,24,0,19,0,12,0,4,0,1,0,8,0,17,0,3,0,236,255,253,255,39,0,21,0, +195,255,168,255,239,255,45,0,26,0,246,255,249,255,1,0,245,255,224,255,203,255,205,255,246,255,28,0,16,0,236,255, +229,255,240,255,243,255,252,255,12,0,254,255,202,255,168,255,192,255,243,255,19,0,30,0,31,0,11,0,227,255,206,255, +214,255,230,255,248,255,21,0,38,0,24,0,1,0,248,255,253,255,10,0,13,0,240,255,215,255,248,255,40,0,25,0, +241,255,253,255,25,0,13,0,253,255,11,0,15,0,3,0,28,0,64,0,45,0,253,255,244,255,6,0,8,0,12,0, +35,0,44,0,13,0,229,255,227,255,20,0,58,0,10,0,163,255,137,255,232,255,75,0,59,0,219,255,163,255,189,255, +232,255,241,255,250,255,33,0,39,0,230,255,177,255,205,255,248,255,244,255,239,255,10,0,24,0,17,0,18,0,2,0, +214,255,215,255,33,0,84,0,48,0,243,255,225,255,245,255,1,0,221,255,141,255,108,255,195,255,87,0,179,0,177,0, +103,0,223,255,58,255,208,254,248,254,181,255,150,0,244,0,158,0,25,0,244,255,32,0,42,0,245,255,228,255,47,0, +110,0,53,0,221,255,245,255,94,0,157,0,145,0,93,0,31,0,8,0,25,0,10,0,237,255,57,0,183,0,152,0, +233,255,153,255,223,255,15,0,236,255,216,255,233,255,243,255,255,255,23,0,21,0,244,255,215,255,202,255,223,255,33,0, +58,0,236,255,158,255,180,255,232,255,237,255,250,255,35,0,33,0,237,255,195,255,172,255,159,255,182,255,223,255,227,255, +199,255,182,255,180,255,173,255,147,255,106,255,106,255,195,255,68,0,136,0,131,0,109,0,92,0,44,0,208,255,116,255, +82,255,117,255,194,255,25,0,65,0,1,0,145,255,129,255,230,255,56,0,25,0,209,255,195,255,233,255,253,255,221,255, +174,255,174,255,230,255,22,0,254,255,180,255,145,255,193,255,9,0,16,0,199,255,122,255,120,255,168,255,173,255,118,255, +89,255,114,255,130,255,122,255,117,255,91,255,38,255,46,255,130,255,174,255,131,255,77,255,51,255,49,255,95,255,168,255, +179,255,131,255,126,255,181,255,196,255,141,255,103,255,146,255,221,255,244,255,213,255,198,255,229,255,9,0,9,0,252,255, +17,0,57,0,50,0,253,255,238,255,38,0,96,0,101,0,72,0,34,0,255,255,242,255,254,255,6,0,253,255,244,255, +9,0,55,0,84,0,84,0,96,0,108,0,62,0,9,0,43,0,111,0,97,0,47,0,66,0,124,0,135,0,87,0, +22,0,2,0,37,0,55,0,25,0,21,0,46,0,26,0,248,255,17,0,38,0,252,255,247,255,69,0,108,0,33,0, +200,255,199,255,249,255,5,0,245,255,27,0,99,0,76,0,219,255,178,255,1,0,82,0,112,0,117,0,63,0,198,255, +138,255,188,255,238,255,17,0,139,0,235,0,64,0,21,255,1,255,2,0,126,0,5,0,181,255,251,255,20,0,178,255, +104,255,160,255,16,0,49,0,242,255,195,255,208,255,189,255,133,255,142,255,196,255,210,255,211,255,200,255,114,255,67,255, +231,255,172,0,76,0,47,255,254,254,17,0,230,0,106,0,146,255,159,255,6,0,228,255,231,255,139,0,150,0,175,255, +123,255,87,0,134,0,189,255,139,255,38,0,90,0,2,0,228,255,19,0,61,0,112,0,166,0,120,0,207,255,74,255, +136,255,69,0,175,0,149,0,136,0,185,0,161,0,25,0,192,255,234,255,28,0,24,0,78,0,170,0,130,0,36,0, +117,0,232,0,85,0,109,255,161,255,152,0,17,1,247,0,209,0,130,0,8,0,21,0,218,0,51,1,83,0,122,255, +15,0,241,0,95,0,92,255,213,255,15,1,36,1,70,0,226,255,76,0,204,0,206,0,111,0,56,0,70,0,77,0, +84,0,106,0,80,0,43,0,79,0,74,0,226,255,250,255,188,0,240,0,82,0,14,0,113,0,135,0,5,0,190,255, +61,0,226,0,197,0,45,0,40,0,202,0,50,1,247,0,104,0,234,255,231,255,96,0,183,0,147,0,85,0,73,0, +102,0,139,0,116,0,15,0,214,255,253,255,41,0,70,0,110,0,92,0,24,0,52,0,142,0,121,0,31,0,40,0, +112,0,112,0,50,0,241,255,161,255,77,255,94,255,242,255,97,0,20,0,120,255,96,255,188,255,225,255,181,255,171,255, +241,255,56,0,46,0,235,255,195,255,189,255,180,255,172,255,163,255,128,255,130,255,231,255,55,0,1,0,175,255,173,255, +198,255,199,255,187,255,167,255,182,255,0,0,37,0,245,255,211,255,231,255,235,255,218,255,196,255,140,255,104,255,159,255, +230,255,245,255,248,255,226,255,145,255,126,255,230,255,46,0,240,255,154,255,158,255,233,255,19,0,203,255,96,255,111,255, +196,255,191,255,155,255,200,255,224,255,156,255,140,255,215,255,218,255,142,255,151,255,252,255,45,0,12,0,221,255,180,255, +156,255,201,255,43,0,79,0,22,0,226,255,235,255,251,255,248,255,242,255,230,255,223,255,255,255,51,0,83,0,92,0, +76,0,39,0,26,0,33,0,245,255,188,255,242,255,115,0,160,0,77,0,226,255,194,255,239,255,33,0,42,0,48,0, +58,0,33,0,9,0,31,0,31,0,244,255,247,255,19,0,233,255,187,255,213,255,211,255,165,255,212,255,54,0,19,0, +159,255,146,255,223,255,2,0,230,255,187,255,167,255,178,255,195,255,207,255,229,255,244,255,218,255,191,255,202,255,215,255, +192,255,163,255,170,255,214,255,251,255,242,255,219,255,231,255,242,255,199,255,144,255,142,255,183,255,224,255,242,255,242,255, +245,255,244,255,206,255,157,255,175,255,253,255,45,0,31,0,11,0,27,0,51,0,33,0,250,255,247,255,11,0,253,255, +224,255,230,255,241,255,235,255,251,255,21,0,251,255,190,255,167,255,187,255,204,255,192,255,167,255,180,255,236,255,19,0, +13,0,2,0,244,255,225,255,238,255,2,0,217,255,170,255,199,255,241,255,219,255,192,255,215,255,244,255,241,255,214,255, +187,255,181,255,181,255,171,255,195,255,6,0,32,0,250,255,221,255,215,255,203,255,207,255,228,255,213,255,190,255,216,255, +253,255,8,0,26,0,56,0,66,0,60,0,41,0,5,0,4,0,47,0,60,0,42,0,61,0,87,0,58,0,22,0, +23,0,15,0,250,255,22,0,84,0,93,0,41,0,22,0,78,0,121,0,70,0,240,255,235,255,51,0,94,0,53,0, +245,255,243,255,38,0,64,0,56,0,62,0,67,0,29,0,241,255,236,255,254,255,25,0,51,0,41,0,13,0,30,0, +60,0,42,0,11,0,17,0,54,0,110,0,142,0,82,0,252,255,10,0,88,0,110,0,84,0,69,0,82,0,121,0, +137,0,88,0,49,0,80,0,90,0,46,0,51,0,89,0,57,0,10,0,29,0,52,0,47,0,50,0,24,0,222,255, +232,255,29,0,240,255,146,255,172,255,25,0,50,0,221,255,145,255,163,255,230,255,247,255,192,255,145,255,156,255,177,255, +166,255,142,255,134,255,128,255,110,255,116,255,166,255,189,255,123,255,48,255,62,255,125,255,146,255,120,255,90,255,84,255, +116,255,149,255,127,255,68,255,50,255,104,255,151,255,112,255,46,255,78,255,163,255,159,255,112,255,155,255,217,255,172,255, +99,255,104,255,141,255,170,255,214,255,238,255,223,255,207,255,192,255,176,255,208,255,4,0,250,255,221,255,253,255,36,0, +24,0,5,0,7,0,3,0,255,255,6,0,4,0,243,255,215,255,198,255,237,255,56,0,72,0,20,0,244,255,254,255, +20,0,48,0,64,0,46,0,42,0,81,0,100,0,70,0,40,0,37,0,42,0,53,0,75,0,104,0,126,0,115,0, +86,0,92,0,125,0,120,0,83,0,76,0,91,0,81,0,57,0,59,0,84,0,96,0,73,0,56,0,90,0,134,0, +118,0,67,0,53,0,75,0,82,0,70,0,72,0,94,0,107,0,95,0,82,0,77,0,55,0,33,0,52,0,73,0, +40,0,5,0,27,0,55,0,56,0,67,0,86,0,65,0,33,0,42,0,74,0,78,0,42,0,15,0,43,0,82,0, +56,0,11,0,30,0,73,0,68,0,56,0,67,0,55,0,16,0,5,0,34,0,74,0,83,0,36,0,252,255,40,0, +103,0,77,0,8,0,251,255,21,0,41,0,48,0,31,0,13,0,51,0,107,0,91,0,41,0,53,0,97,0,88,0, +47,0,48,0,90,0,110,0,76,0,35,0,39,0,66,0,63,0,34,0,16,0,18,0,27,0,38,0,38,0,11,0, +233,255,233,255,11,0,28,0,6,0,249,255,18,0,33,0,7,0,239,255,241,255,244,255,235,255,235,255,250,255,9,0, +1,0,232,255,235,255,12,0,12,0,225,255,209,255,248,255,37,0,51,0,21,0,220,255,201,255,238,255,4,0,242,255, +238,255,255,255,252,255,254,255,19,0,6,0,214,255,203,255,238,255,20,0,40,0,31,0,247,255,225,255,241,255,246,255, +226,255,223,255,238,255,242,255,249,255,16,0,32,0,22,0,253,255,236,255,241,255,254,255,248,255,233,255,236,255,251,255, +1,0,249,255,228,255,205,255,206,255,237,255,17,0,35,0,20,0,224,255,171,255,176,255,231,255,11,0,247,255,204,255, +187,255,194,255,198,255,196,255,196,255,196,255,200,255,216,255,219,255,190,255,161,255,165,255,187,255,214,255,244,255,250,255, +221,255,201,255,214,255,229,255,226,255,227,255,247,255,24,0,38,0,8,0,227,255,238,255,20,0,28,0,6,0,245,255, +247,255,9,0,31,0,30,0,4,0,234,255,219,255,220,255,248,255,16,0,0,0,224,255,221,255,244,255,7,0,1,0, +218,255,179,255,181,255,209,255,225,255,229,255,226,255,208,255,192,255,211,255,246,255,254,255,225,255,195,255,200,255,224,255, +218,255,188,255,202,255,6,0,30,0,250,255,213,255,196,255,182,255,175,255,186,255,196,255,195,255,204,255,232,255,250,255, +233,255,202,255,193,255,208,255,223,255,227,255,222,255,215,255,218,255,231,255,236,255,228,255,231,255,248,255,253,255,233,255, +216,255,229,255,254,255,250,255,216,255,200,255,223,255,235,255,216,255,213,255,244,255,4,0,234,255,202,255,207,255,238,255, +252,255,233,255,218,255,222,255,216,255,201,255,204,255,208,255,191,255,197,255,237,255,251,255,227,255,220,255,233,255,227,255, +219,255,236,255,253,255,249,255,236,255,231,255,232,255,231,255,222,255,224,255,253,255,25,0,19,0,13,0,37,0,64,0, +66,0,46,0,16,0,245,255,0,0,54,0,98,0,93,0,62,0,52,0,70,0,79,0,63,0,49,0,58,0,70,0, +68,0,59,0,44,0,26,0,25,0,50,0,72,0,64,0,48,0,53,0,59,0,39,0,24,0,54,0,97,0,100,0, +87,0,107,0,138,0,127,0,78,0,42,0,51,0,82,0,85,0,60,0,55,0,78,0,85,0,68,0,62,0,69,0, +66,0,48,0,20,0,3,0,24,0,58,0,52,0,27,0,44,0,81,0,72,0,28,0,7,0,22,0,36,0,31,0, +19,0,12,0,1,0,241,255,252,255,35,0,52,0,37,0,42,0,74,0,73,0,21,0,239,255,8,0,65,0,89,0, +55,0,7,0,254,255,17,0,16,0,240,255,206,255,206,255,245,255,32,0,39,0,10,0,234,255,224,255,233,255,246,255, +249,255,241,255,235,255,238,255,237,255,216,255,187,255,179,255,191,255,193,255,186,255,205,255,239,255,226,255,169,255,151,255, +193,255,211,255,160,255,118,255,163,255,241,255,241,255,170,255,133,255,174,255,223,255,222,255,190,255,165,255,162,255,190,255, +237,255,13,0,6,0,225,255,187,255,184,255,221,255,4,0,5,0,234,255,219,255,236,255,1,0,246,255,222,255,234,255, +18,0,32,0,16,0,13,0,28,0,33,0,21,0,9,0,9,0,21,0,30,0,21,0,6,0,9,0,30,0,49,0, +46,0,20,0,2,0,20,0,41,0,23,0,254,255,12,0,30,0,252,255,202,255,210,255,8,0,26,0,243,255,211,255, +231,255,8,0,6,0,235,255,223,255,234,255,250,255,2,0,255,255,248,255,235,255,216,255,204,255,224,255,13,0,38,0, +22,0,1,0,13,0,35,0,22,0,244,255,239,255,16,0,45,0,49,0,42,0,32,0,15,0,254,255,250,255,3,0, +8,0,2,0,3,0,25,0,50,0,50,0,30,0,10,0,247,255,232,255,234,255,243,255,234,255,218,255,220,255,240,255, +8,0,24,0,16,0,236,255,206,255,218,255,255,255,8,0,231,255,198,255,204,255,227,255,222,255,195,255,180,255,178,255, +173,255,174,255,191,255,209,255,207,255,190,255,174,255,163,255,154,255,144,255,129,255,119,255,130,255,157,255,171,255,156,255, +136,255,140,255,153,255,143,255,123,255,126,255,147,255,151,255,142,255,154,255,191,255,216,255,202,255,169,255,144,255,141,255, +169,255,210,255,221,255,186,255,151,255,163,255,203,255,223,255,220,255,225,255,236,255,229,255,204,255,192,255,203,255,212,255, +207,255,216,255,250,255,24,0,15,0,234,255,205,255,211,255,242,255,10,0,14,0,17,0,33,0,43,0,25,0,251,255, +243,255,8,0,32,0,45,0,53,0,51,0,29,0,9,0,18,0,38,0,33,0,16,0,32,0,77,0,86,0,41,0, +1,0,14,0,51,0,63,0,55,0,61,0,78,0,70,0,34,0,10,0,26,0,58,0,66,0,48,0,36,0,51,0, +71,0,65,0,43,0,44,0,69,0,81,0,65,0,53,0,72,0,101,0,106,0,93,0,91,0,107,0,117,0,100,0, +75,0,77,0,110,0,135,0,114,0,68,0,61,0,105,0,141,0,128,0,106,0,123,0,147,0,125,0,77,0,75,0, +120,0,138,0,104,0,75,0,95,0,126,0,115,0,81,0,80,0,114,0,137,0,120,0,92,0,90,0,105,0,109,0, +98,0,100,0,116,0,115,0,83,0,63,0,83,0,105,0,83,0,46,0,55,0,98,0,111,0,85,0,74,0,86,0, +78,0,46,0,42,0,76,0,87,0,49,0,17,0,37,0,71,0,71,0,42,0,16,0,3,0,6,0,34,0,67,0, +69,0,42,0,34,0,56,0,65,0,37,0,8,0,14,0,42,0,57,0,52,0,39,0,33,0,35,0,37,0,28,0, +20,0,31,0,45,0,31,0,254,255,255,255,38,0,50,0,10,0,230,255,241,255,249,255,214,255,187,255,220,255,11,0, +9,0,233,255,223,255,218,255,188,255,166,255,194,255,229,255,212,255,170,255,166,255,196,255,208,255,200,255,203,255,208,255, +189,255,165,255,171,255,197,255,211,255,216,255,220,255,213,255,193,255,186,255,197,255,194,255,174,255,172,255,201,255,218,255, +207,255,202,255,214,255,210,255,183,255,178,255,204,255,209,255,170,255,134,255,146,255,188,255,227,255,248,255,228,255,157,255, +89,255,91,255,144,255,177,255,178,255,197,255,229,255,218,255,175,255,168,255,194,255,181,255,128,255,117,255,170,255,207,255, +180,255,147,255,158,255,185,255,188,255,176,255,166,255,147,255,129,255,136,255,161,255,168,255,163,255,179,255,200,255,181,255, +133,255,114,255,141,255,168,255,167,255,157,255,157,255,160,255,167,255,175,255,167,255,149,255,155,255,196,255,222,255,203,255, +183,255,201,255,221,255,207,255,202,255,247,255,28,0,246,255,178,255,176,255,231,255,3,0,240,255,230,255,247,255,253,255, +235,255,229,255,247,255,6,0,4,0,2,0,12,0,33,0,63,0,90,0,87,0,52,0,23,0,23,0,27,0,18,0, +23,0,57,0,78,0,55,0,26,0,38,0,73,0,84,0,75,0,78,0,87,0,80,0,68,0,74,0,85,0,73,0, +51,0,50,0,66,0,73,0,67,0,65,0,67,0,66,0,70,0,90,0,106,0,91,0,53,0,25,0,26,0,45,0, +66,0,74,0,63,0,46,0,43,0,58,0,71,0,71,0,67,0,63,0,47,0,25,0,28,0,62,0,92,0,89,0, +73,0,67,0,59,0,32,0,16,0,40,0,72,0,67,0,42,0,46,0,78,0,92,0,79,0,75,0,87,0,81,0, +51,0,36,0,51,0,63,0,53,0,43,0,43,0,30,0,254,255,237,255,249,255,255,255,233,255,211,255,220,255,241,255, +248,255,244,255,241,255,232,255,214,255,204,255,216,255,238,255,254,255,6,0,2,0,237,255,212,255,206,255,208,255,195,255, +185,255,206,255,243,255,250,255,230,255,223,255,237,255,236,255,211,255,184,255,167,255,159,255,177,255,223,255,245,255,206,255, +163,255,187,255,242,255,241,255,193,255,179,255,205,255,207,255,181,255,188,255,232,255,246,255,217,255,196,255,194,255,176,255, +158,255,186,255,235,255,226,255,168,255,147,255,184,255,211,255,196,255,176,255,168,255,147,255,129,255,157,255,205,255,207,255, +165,255,145,255,161,255,171,255,167,255,173,255,177,255,153,255,131,255,155,255,189,255,179,255,152,255,164,255,201,255,208,255, +193,255,197,255,214,255,216,255,215,255,216,255,194,255,173,255,224,255,59,0,44,0,152,255,57,255,150,255,40,0,51,0, +221,255,204,255,5,0,10,0,200,255,166,255,200,255,244,255,18,0,60,0,95,0,69,0,255,255,212,255,229,255,23,0, +63,0,50,0,239,255,202,255,13,0,116,0,107,0,247,255,192,255,12,0,89,0,65,0,16,0,28,0,60,0,49,0, +33,0,42,0,33,0,253,255,9,0,71,0,76,0,248,255,199,255,0,0,65,0,47,0,4,0,21,0,67,0,84,0, +84,0,69,0,1,0,169,255,169,255,14,0,90,0,71,0,41,0,70,0,99,0,63,0,5,0,240,255,243,255,3,0, +52,0,107,0,95,0,28,0,5,0,53,0,79,0,25,0,215,255,215,255,23,0,97,0,132,0,97,0,21,0,255,255, +71,0,138,0,104,0,28,0,21,0,61,0,53,0,13,0,22,0,62,0,55,0,26,0,50,0,98,0,85,0,33,0, +26,0,45,0,16,0,229,255,9,0,92,0,110,0,54,0,15,0,16,0,10,0,4,0,42,0,86,0,71,0,36,0, +50,0,66,0,1,0,176,255,211,255,75,0,118,0,41,0,235,255,30,0,133,0,179,0,139,0,58,0,248,255,245,255, +44,0,91,0,85,0,58,0,57,0,67,0,61,0,50,0,53,0,51,0,44,0,67,0,115,0,121,0,70,0,43,0, +82,0,112,0,64,0,246,255,237,255,32,0,68,0,56,0,8,0,208,255,185,255,224,255,26,0,24,0,219,255,184,255, +211,255,238,255,225,255,209,255,223,255,242,255,247,255,253,255,246,255,195,255,139,255,160,255,234,255,247,255,185,255,168,255, +251,255,70,0,45,0,235,255,225,255,254,255,3,0,250,255,11,0,40,0,49,0,55,0,73,0,70,0,24,0,242,255, +2,0,42,0,48,0,23,0,12,0,28,0,41,0,33,0,15,0,8,0,24,0,58,0,79,0,65,0,30,0,12,0, +15,0,15,0,5,0,4,0,17,0,26,0,15,0,243,255,212,255,198,255,221,255,7,0,17,0,237,255,198,255,199,255, +222,255,228,255,215,255,205,255,208,255,223,255,251,255,16,0,252,255,200,255,180,255,213,255,236,255,203,255,158,255,166,255, +213,255,240,255,240,255,241,255,244,255,229,255,213,255,218,255,228,255,214,255,200,255,231,255,27,0,36,0,248,255,210,255, +220,255,254,255,17,0,15,0,10,0,11,0,13,0,8,0,245,255,226,255,227,255,246,255,249,255,215,255,180,255,192,255, +247,255,31,0,18,0,232,255,208,255,214,255,229,255,233,255,222,255,205,255,188,255,185,255,203,255,225,255,220,255,188,255, +168,255,188,255,217,255,212,255,185,255,183,255,212,255,231,255,221,255,213,255,226,255,231,255,212,255,198,255,211,255,223,255, +215,255,217,255,254,255,34,0,25,0,249,255,236,255,240,255,232,255,223,255,247,255,34,0,50,0,27,0,8,0,18,0, +36,0,37,0,26,0,18,0,18,0,23,0,32,0,36,0,25,0,5,0,253,255,4,0,8,0,254,255,245,255,249,255, +2,0,0,0,253,255,10,0,33,0,43,0,37,0,31,0,30,0,17,0,253,255,5,0,48,0,72,0,34,0,234,255, +233,255,24,0,43,0,11,0,243,255,4,0,13,0,242,255,228,255,13,0,57,0,39,0,243,255,233,255,17,0,48,0, +44,0,37,0,40,0,34,0,11,0,2,0,23,0,49,0,56,0,45,0,29,0,16,0,12,0,19,0,26,0,22,0, +18,0,28,0,42,0,36,0,11,0,253,255,10,0,37,0,51,0,40,0,15,0,250,255,244,255,250,255,252,255,247,255, +243,255,247,255,254,255,251,255,232,255,208,255,198,255,213,255,239,255,253,255,251,255,247,255,246,255,233,255,208,255,193,255, +197,255,203,255,205,255,222,255,253,255,1,0,217,255,179,255,192,255,234,255,247,255,228,255,220,255,241,255,7,0,11,0, +9,0,9,0,4,0,244,255,231,255,226,255,227,255,235,255,251,255,2,0,244,255,224,255,229,255,2,0,24,0,19,0, +253,255,234,255,223,255,218,255,217,255,217,255,217,255,222,255,237,255,253,255,252,255,229,255,198,255,181,255,189,255,210,255, +220,255,211,255,198,255,199,255,208,255,208,255,198,255,192,255,192,255,193,255,194,255,197,255,205,255,214,255,221,255,218,255, +201,255,184,255,190,255,213,255,219,255,200,255,192,255,222,255,1,0,250,255,210,255,183,255,195,255,230,255,6,0,19,0, +6,0,237,255,227,255,246,255,12,0,5,0,240,255,242,255,21,0,55,0,50,0,12,0,236,255,245,255,31,0,69,0, +74,0,50,0,28,0,24,0,29,0,29,0,21,0,9,0,6,0,19,0,39,0,40,0,21,0,12,0,33,0,54,0, +41,0,10,0,5,0,34,0,62,0,67,0,58,0,48,0,41,0,38,0,42,0,46,0,48,0,58,0,73,0,70,0, +47,0,39,0,70,0,107,0,104,0,69,0,44,0,44,0,53,0,58,0,60,0,53,0,39,0,39,0,65,0,90,0, +84,0,56,0,40,0,50,0,69,0,76,0,64,0,46,0,40,0,54,0,66,0,49,0,16,0,14,0,50,0,77,0, +57,0,12,0,245,255,2,0,31,0,44,0,30,0,4,0,254,255,21,0,36,0,12,0,236,255,240,255,15,0,27,0, +16,0,11,0,16,0,5,0,241,255,250,255,25,0,30,0,3,0,240,255,251,255,5,0,253,255,246,255,1,0,10,0, +1,0,246,255,245,255,255,255,16,0,33,0,29,0,255,255,233,255,251,255,24,0,19,0,249,255,249,255,24,0,41,0, +23,0,2,0,3,0,18,0,31,0,42,0,49,0,44,0,31,0,20,0,14,0,10,0,11,0,10,0,251,255,229,255, +227,255,249,255,11,0,5,0,247,255,241,255,236,255,231,255,244,255,15,0,25,0,10,0,252,255,253,255,248,255,231,255, +227,255,246,255,2,0,253,255,3,0,21,0,16,0,238,255,224,255,250,255,16,0,254,255,231,255,244,255,15,0,18,0, +3,0,251,255,251,255,250,255,2,0,17,0,19,0,3,0,250,255,1,0,4,0,1,0,16,0,48,0,54,0,22,0, +251,255,1,0,15,0,4,0,241,255,243,255,4,0,14,0,15,0,15,0,15,0,10,0,6,0,5,0,8,0,13,0, +15,0,8,0,255,255,7,0,33,0,43,0,24,0,5,0,16,0,36,0,28,0,3,0,250,255,3,0,6,0,254,255, +251,255,247,255,237,255,231,255,240,255,243,255,228,255,216,255,226,255,238,255,230,255,223,255,237,255,248,255,228,255,203,255, +208,255,233,255,242,255,237,255,240,255,241,255,226,255,214,255,235,255,13,0,15,0,248,255,237,255,247,255,0,0,254,255, +252,255,249,255,234,255,220,255,228,255,243,255,239,255,218,255,209,255,221,255,232,255,230,255,226,255,229,255,237,255,244,255, +246,255,241,255,238,255,246,255,3,0,0,0,237,255,223,255,228,255,241,255,250,255,253,255,249,255,233,255,220,255,231,255, +4,0,20,0,6,0,237,255,224,255,229,255,240,255,247,255,238,255,220,255,219,255,247,255,20,0,16,0,246,255,233,255, +235,255,232,255,227,255,237,255,254,255,252,255,240,255,248,255,13,0,9,0,231,255,214,255,237,255,9,0,10,0,0,0, +5,0,13,0,6,0,251,255,251,255,1,0,254,255,244,255,243,255,251,255,255,255,249,255,238,255,233,255,240,255,253,255, +254,255,235,255,212,255,210,255,226,255,235,255,234,255,239,255,250,255,250,255,239,255,237,255,248,255,246,255,219,255,192,255, +203,255,241,255,9,0,254,255,233,255,234,255,250,255,253,255,234,255,221,255,234,255,2,0,8,0,252,255,249,255,2,0, +2,0,248,255,252,255,18,0,27,0,6,0,239,255,248,255,21,0,30,0,16,0,6,0,13,0,17,0,8,0,254,255, +2,0,12,0,12,0,253,255,231,255,222,255,235,255,5,0,20,0,13,0,253,255,244,255,246,255,252,255,3,0,8,0, +2,0,240,255,231,255,248,255,14,0,18,0,10,0,11,0,18,0,16,0,5,0,5,0,14,0,19,0,13,0,11,0, +13,0,5,0,244,255,243,255,12,0,32,0,21,0,246,255,228,255,235,255,254,255,14,0,16,0,6,0,245,255,228,255, +218,255,221,255,234,255,245,255,245,255,238,255,241,255,4,0,19,0,11,0,246,255,236,255,238,255,237,255,231,255,237,255, +1,0,20,0,19,0,1,0,242,255,242,255,251,255,253,255,249,255,246,255,252,255,5,0,8,0,5,0,4,0,7,0, +6,0,0,0,2,0,13,0,15,0,3,0,247,255,246,255,253,255,4,0,10,0,10,0,5,0,2,0,9,0,20,0, +18,0,5,0,3,0,14,0,16,0,5,0,5,0,20,0,21,0,254,255,237,255,252,255,17,0,9,0,240,255,233,255, +250,255,8,0,2,0,248,255,247,255,251,255,251,255,248,255,245,255,246,255,254,255,6,0,5,0,251,255,244,255,250,255, +7,0,22,0,39,0,48,0,35,0,4,0,244,255,5,0,27,0,20,0,250,255,243,255,13,0,43,0,46,0,26,0, +11,0,12,0,20,0,25,0,30,0,40,0,45,0,38,0,28,0,31,0,39,0,33,0,17,0,15,0,29,0,33,0, +19,0,14,0,32,0,45,0,27,0,252,255,246,255,10,0,25,0,21,0,9,0,1,0,251,255,250,255,4,0,13,0, +8,0,3,0,14,0,31,0,29,0,11,0,254,255,2,0,17,0,33,0,39,0,32,0,18,0,18,0,38,0,57,0, +47,0,17,0,5,0,16,0,24,0,19,0,15,0,20,0,25,0,25,0,21,0,19,0,20,0,26,0,32,0,35,0, +28,0,14,0,6,0,17,0,32,0,30,0,12,0,254,255,1,0,14,0,23,0,19,0,11,0,10,0,13,0,9,0, +3,0,253,255,242,255,233,255,240,255,250,255,237,255,211,255,200,255,212,255,223,255,210,255,186,255,182,255,196,255,194,255, +172,255,161,255,168,255,173,255,168,255,168,255,172,255,174,255,174,255,171,255,161,255,153,255,154,255,167,255,183,255,188,255, +174,255,154,255,144,255,149,255,166,255,188,255,187,255,160,255,148,255,179,255,216,255,215,255,190,255,180,255,197,255,212,255, +202,255,181,255,183,255,212,255,236,255,236,255,228,255,216,255,204,255,205,255,227,255,246,255,244,255,224,255,215,255,238,255, +18,0,16,0,230,255,202,255,215,255,236,255,239,255,241,255,1,0,12,0,5,0,245,255,243,255,6,0,21,0,18,0, +17,0,27,0,30,0,21,0,18,0,23,0,22,0,18,0,14,0,7,0,5,0,21,0,37,0,31,0,17,0,23,0, +40,0,39,0,13,0,0,0,34,0,79,0,73,0,30,0,23,0,53,0,62,0,38,0,33,0,67,0,103,0,98,0, +56,0,25,0,35,0,62,0,74,0,78,0,85,0,83,0,70,0,64,0,75,0,86,0,82,0,57,0,36,0,49,0, +80,0,86,0,67,0,59,0,66,0,70,0,66,0,58,0,49,0,49,0,63,0,72,0,60,0,40,0,34,0,46,0, +60,0,53,0,36,0,41,0,60,0,54,0,26,0,13,0,13,0,2,0,247,255,2,0,24,0,36,0,39,0,36,0, +19,0,240,255,207,255,212,255,0,0,38,0,43,0,42,0,52,0,51,0,33,0,27,0,36,0,37,0,29,0,28,0, +36,0,39,0,35,0,33,0,45,0,61,0,58,0,35,0,22,0,33,0,50,0,57,0,53,0,48,0,54,0,67,0, +61,0,33,0,16,0,28,0,48,0,54,0,48,0,37,0,25,0,26,0,40,0,51,0,43,0,27,0,22,0,32,0, +35,0,16,0,253,255,0,0,16,0,28,0,34,0,26,0,249,255,213,255,214,255,247,255,7,0,244,255,217,255,213,255, +223,255,227,255,222,255,213,255,203,255,193,255,199,255,226,255,250,255,4,0,12,0,19,0,9,0,240,255,224,255,217,255, +204,255,189,255,196,255,224,255,237,255,219,255,202,255,214,255,242,255,254,255,246,255,233,255,226,255,226,255,234,255,243,255, +243,255,236,255,233,255,232,255,228,255,229,255,239,255,246,255,234,255,219,255,223,255,234,255,224,255,199,255,194,255,211,255, +220,255,204,255,184,255,181,255,190,255,194,255,187,255,180,255,182,255,193,255,197,255,181,255,153,255,140,255,158,255,182,255, +186,255,179,255,182,255,185,255,177,255,175,255,190,255,204,255,200,255,191,255,191,255,200,255,211,255,219,255,224,255,221,255, +212,255,210,255,224,255,232,255,225,255,229,255,1,0,15,0,247,255,224,255,234,255,252,255,248,255,234,255,231,255,240,255, +245,255,247,255,0,0,15,0,16,0,4,0,1,0,5,0,1,0,252,255,3,0,8,0,0,0,0,0,12,0,12,0, +248,255,231,255,235,255,246,255,247,255,236,255,232,255,249,255,8,0,255,255,233,255,220,255,222,255,233,255,243,255,235,255, +219,255,222,255,239,255,241,255,233,255,229,255,222,255,210,255,216,255,244,255,11,0,9,0,243,255,225,255,225,255,236,255, +245,255,254,255,4,0,251,255,238,255,252,255,15,0,2,0,235,255,248,255,21,0,23,0,5,0,0,0,8,0,13,0, +11,0,9,0,14,0,7,0,241,255,236,255,9,0,33,0,19,0,251,255,244,255,246,255,254,255,16,0,23,0,6,0, +249,255,0,0,11,0,11,0,1,0,248,255,252,255,5,0,0,0,245,255,249,255,2,0,255,255,246,255,238,255,229,255, +234,255,2,0,14,0,2,0,249,255,252,255,253,255,254,255,5,0,2,0,242,255,237,255,1,0,27,0,32,0,9,0, +246,255,4,0,26,0,15,0,248,255,251,255,8,0,11,0,16,0,22,0,7,0,245,255,1,0,29,0,35,0,15,0, +252,255,3,0,29,0,44,0,41,0,40,0,41,0,29,0,23,0,41,0,54,0,41,0,27,0,29,0,30,0,25,0, +28,0,36,0,39,0,35,0,26,0,16,0,13,0,18,0,22,0,24,0,22,0,14,0,15,0,28,0,27,0,7,0, +0,0,12,0,15,0,5,0,4,0,9,0,12,0,17,0,18,0,5,0,251,255,6,0,29,0,37,0,15,0,240,255, +237,255,6,0,23,0,15,0,10,0,13,0,5,0,250,255,1,0,13,0,17,0,30,0,53,0,63,0,43,0,13,0, +252,255,3,0,22,0,33,0,29,0,19,0,10,0,14,0,34,0,43,0,22,0,5,0,30,0,64,0,60,0,27,0, +255,255,247,255,3,0,23,0,31,0,23,0,14,0,14,0,20,0,16,0,253,255,242,255,1,0,17,0,8,0,250,255, +4,0,30,0,47,0,52,0,40,0,1,0,207,255,188,255,213,255,1,0,32,0,38,0,28,0,13,0,250,255,229,255, +214,255,208,255,217,255,246,255,22,0,25,0,254,255,234,255,238,255,246,255,242,255,233,255,226,255,229,255,244,255,10,0, +23,0,18,0,6,0,4,0,11,0,15,0,14,0,16,0,12,0,252,255,241,255,254,255,16,0,8,0,244,255,250,255, +23,0,43,0,37,0,17,0,247,255,223,255,219,255,249,255,34,0,46,0,30,0,12,0,2,0,246,255,234,255,240,255, +2,0,14,0,17,0,19,0,13,0,244,255,216,255,214,255,244,255,18,0,25,0,26,0,36,0,52,0,63,0,56,0, +28,0,250,255,238,255,252,255,20,0,34,0,36,0,32,0,29,0,29,0,25,0,16,0,6,0,4,0,19,0,38,0, +41,0,29,0,31,0,48,0,52,0,36,0,21,0,18,0,20,0,25,0,33,0,23,0,246,255,217,255,226,255,8,0, +31,0,16,0,249,255,253,255,14,0,16,0,9,0,7,0,5,0,7,0,26,0,46,0,32,0,249,255,225,255,234,255, +254,255,3,0,252,255,2,0,30,0,48,0,38,0,14,0,248,255,236,255,245,255,14,0,28,0,21,0,13,0,15,0, +20,0,23,0,19,0,4,0,247,255,251,255,6,0,13,0,24,0,34,0,31,0,18,0,4,0,255,255,12,0,30,0, +34,0,29,0,29,0,23,0,4,0,1,0,19,0,28,0,20,0,15,0,13,0,1,0,240,255,234,255,247,255,10,0, +12,0,251,255,243,255,1,0,12,0,9,0,6,0,0,0,245,255,252,255,24,0,33,0,9,0,240,255,240,255,0,0, +8,0,247,255,220,255,218,255,243,255,8,0,11,0,4,0,245,255,231,255,233,255,238,255,227,255,219,255,232,255,254,255, +13,0,13,0,246,255,216,255,214,255,241,255,7,0,12,0,4,0,246,255,234,255,235,255,237,255,234,255,233,255,232,255, +229,255,230,255,234,255,224,255,216,255,225,255,233,255,219,255,205,255,212,255,226,255,230,255,222,255,204,255,192,255,197,255, +209,255,213,255,215,255,211,255,202,255,205,255,217,255,213,255,195,255,190,255,199,255,205,255,212,255,224,255,227,255,225,255, +222,255,213,255,201,255,198,255,204,255,210,255,221,255,232,255,231,255,223,255,218,255,214,255,215,255,233,255,252,255,252,255, +244,255,242,255,241,255,246,255,2,0,7,0,251,255,239,255,237,255,245,255,4,0,16,0,11,0,253,255,248,255,248,255, +250,255,252,255,248,255,237,255,238,255,1,0,14,0,11,0,1,0,249,255,249,255,7,0,23,0,23,0,13,0,6,0, +251,255,240,255,235,255,238,255,245,255,1,0,5,0,254,255,247,255,243,255,235,255,230,255,238,255,250,255,250,255,244,255, +238,255,233,255,237,255,251,255,2,0,245,255,225,255,211,255,212,255,229,255,245,255,247,255,245,255,243,255,234,255,221,255, +222,255,237,255,247,255,247,255,242,255,233,255,227,255,227,255,228,255,231,255,243,255,1,0,3,0,255,255,251,255,245,255, +237,255,235,255,239,255,245,255,250,255,253,255,253,255,251,255,248,255,243,255,245,255,255,255,3,0,0,0,0,0,4,0, +0,0,246,255,246,255,253,255,249,255,232,255,221,255,234,255,2,0,10,0,0,0,248,255,252,255,254,255,253,255,1,0, +9,0,14,0,14,0,13,0,9,0,0,0,249,255,0,0,16,0,25,0,18,0,6,0,7,0,16,0,18,0,14,0, +12,0,11,0,4,0,0,0,9,0,24,0,29,0,17,0,0,0,252,255,5,0,10,0,10,0,14,0,20,0,14,0, +1,0,253,255,3,0,5,0,2,0,5,0,13,0,13,0,3,0,247,255,241,255,237,255,236,255,242,255,1,0,9,0, +1,0,249,255,254,255,5,0,251,255,238,255,240,255,245,255,238,255,230,255,238,255,251,255,252,255,244,255,238,255,240,255, +244,255,242,255,238,255,241,255,248,255,248,255,249,255,255,255,254,255,243,255,240,255,251,255,6,0,5,0,248,255,232,255, +233,255,255,255,20,0,25,0,19,0,9,0,253,255,251,255,6,0,15,0,15,0,10,0,8,0,14,0,22,0,15,0, +0,0,1,0,16,0,24,0,23,0,24,0,25,0,24,0,27,0,32,0,31,0,27,0,22,0,19,0,25,0,37,0, +42,0,41,0,43,0,37,0,21,0,18,0,28,0,29,0,24,0,27,0,31,0,34,0,43,0,44,0,28,0,16,0, +20,0,28,0,36,0,40,0,29,0,14,0,22,0,38,0,38,0,27,0,21,0,19,0,24,0,28,0,16,0,254,255, +255,255,9,0,5,0,1,0,10,0,18,0,15,0,13,0,11,0,4,0,253,255,250,255,3,0,23,0,29,0,10,0, +252,255,4,0,10,0,255,255,248,255,0,0,11,0,21,0,26,0,20,0,8,0,0,0,0,0,9,0,20,0,16,0, +4,0,9,0,20,0,11,0,254,255,254,255,4,0,7,0,12,0,12,0,2,0,253,255,0,0,252,255,247,255,250,255, +1,0,10,0,20,0,17,0,3,0,0,0,4,0,252,255,244,255,254,255,13,0,15,0,13,0,13,0,14,0,14,0, +6,0,246,255,240,255,251,255,3,0,252,255,247,255,251,255,252,255,244,255,235,255,231,255,237,255,248,255,254,255,0,0, +1,0,254,255,246,255,239,255,236,255,233,255,237,255,250,255,2,0,255,255,247,255,246,255,252,255,255,255,249,255,243,255, +245,255,250,255,250,255,251,255,252,255,246,255,243,255,251,255,6,0,3,0,252,255,254,255,4,0,5,0,3,0,4,0, +5,0,2,0,254,255,2,0,15,0,15,0,248,255,232,255,247,255,17,0,20,0,8,0,6,0,10,0,7,0,0,0, +253,255,254,255,2,0,7,0,12,0,16,0,19,0,15,0,5,0,2,0,6,0,10,0,14,0,17,0,13,0,3,0, +0,0,6,0,10,0,9,0,8,0,8,0,5,0,2,0,1,0,0,0,2,0,4,0,1,0,253,255,254,255,3,0, +5,0,4,0,255,255,247,255,242,255,243,255,247,255,246,255,241,255,244,255,254,255,1,0,247,255,237,255,241,255,252,255, +1,0,254,255,248,255,246,255,249,255,252,255,252,255,253,255,0,0,254,255,253,255,2,0,2,0,249,255,245,255,252,255, +2,0,2,0,0,0,251,255,247,255,252,255,0,0,250,255,246,255,0,0,8,0,5,0,255,255,253,255,1,0,8,0, +10,0,5,0,6,0,19,0,27,0,25,0,26,0,28,0,21,0,16,0,19,0,22,0,20,0,17,0,20,0,27,0, +30,0,23,0,16,0,18,0,23,0,24,0,25,0,28,0,25,0,21,0,20,0,22,0,22,0,20,0,17,0,20,0, +26,0,22,0,11,0,15,0,31,0,35,0,25,0,20,0,17,0,17,0,24,0,27,0,19,0,9,0,5,0,4,0, +8,0,13,0,7,0,252,255,254,255,255,255,242,255,237,255,250,255,1,0,246,255,237,255,238,255,240,255,235,255,227,255, +223,255,235,255,252,255,250,255,239,255,241,255,247,255,243,255,235,255,231,255,227,255,228,255,238,255,245,255,241,255,233,255, +232,255,240,255,248,255,244,255,236,255,242,255,254,255,252,255,243,255,243,255,248,255,247,255,240,255,233,255,235,255,244,255, +245,255,237,255,238,255,246,255,245,255,238,255,237,255,236,255,234,255,242,255,249,255,242,255,232,255,233,255,237,255,238,255, +240,255,239,255,238,255,244,255,246,255,236,255,234,255,246,255,252,255,246,255,243,255,247,255,249,255,250,255,253,255,252,255, +250,255,249,255,242,255,233,255,234,255,244,255,253,255,1,0,1,0,253,255,254,255,4,0,4,0,250,255,240,255,241,255, +246,255,243,255,237,255,239,255,246,255,245,255,231,255,221,255,227,255,240,255,246,255,240,255,231,255,231,255,236,255,234,255, +225,255,223,255,229,255,236,255,239,255,239,255,237,255,236,255,239,255,234,255,221,255,213,255,217,255,224,255,228,255,230,255, +230,255,228,255,230,255,234,255,232,255,226,255,226,255,232,255,237,255,234,255,225,255,216,255,214,255,221,255,227,255,225,255, +223,255,225,255,227,255,232,255,239,255,242,255,236,255,232,255,238,255,245,255,245,255,242,255,238,255,237,255,242,255,247,255, +242,255,237,255,245,255,0,0,0,0,249,255,241,255,235,255,237,255,243,255,243,255,240,255,244,255,247,255,239,255,235,255, +244,255,248,255,238,255,225,255,223,255,235,255,250,255,253,255,246,255,243,255,249,255,251,255,248,255,250,255,255,255,254,255, +249,255,248,255,252,255,0,0,254,255,250,255,253,255,3,0,3,0,1,0,3,0,4,0,4,0,8,0,8,0,4,0, +3,0,6,0,9,0,14,0,16,0,5,0,252,255,1,0,6,0,2,0,3,0,8,0,7,0,9,0,17,0,16,0, +7,0,6,0,6,0,1,0,0,0,8,0,12,0,11,0,12,0,11,0,13,0,23,0,22,0,6,0,5,0,26,0, +38,0,30,0,20,0,22,0,29,0,32,0,23,0,16,0,25,0,38,0,37,0,29,0,34,0,45,0,47,0,39,0, +32,0,33,0,42,0,46,0,40,0,35,0,34,0,35,0,38,0,42,0,40,0,38,0,45,0,52,0,50,0,44,0, +39,0,35,0,38,0,42,0,35,0,30,0,39,0,49,0,46,0,40,0,35,0,30,0,31,0,36,0,30,0,19,0, +19,0,23,0,17,0,10,0,9,0,7,0,2,0,254,255,248,255,244,255,248,255,248,255,240,255,237,255,244,255,241,255, +230,255,229,255,241,255,246,255,233,255,214,255,211,255,228,255,245,255,239,255,220,255,213,255,224,255,233,255,231,255,225,255, +225,255,228,255,231,255,233,255,235,255,232,255,227,255,228,255,232,255,232,255,227,255,229,255,237,255,246,255,248,255,239,255, +229,255,232,255,242,255,246,255,249,255,255,255,1,0,253,255,249,255,249,255,250,255,252,255,253,255,250,255,247,255,253,255, +8,0,12,0,9,0,6,0,2,0,0,0,1,0,6,0,13,0,18,0,17,0,10,0,7,0,14,0,19,0,9,0, +1,0,9,0,20,0,16,0,5,0,2,0,9,0,16,0,18,0,13,0,3,0,255,255,2,0,8,0,19,0,22,0, +6,0,247,255,3,0,28,0,36,0,25,0,14,0,13,0,19,0,24,0,19,0,14,0,20,0,33,0,37,0,35,0, +32,0,31,0,33,0,37,0,33,0,18,0,8,0,13,0,27,0,38,0,41,0,33,0,23,0,19,0,21,0,24,0, +22,0,16,0,13,0,17,0,19,0,14,0,14,0,21,0,23,0,15,0,5,0,255,255,4,0,18,0,21,0,10,0, +2,0,2,0,0,0,6,0,17,0,15,0,2,0,2,0,13,0,17,0,16,0,13,0,11,0,20,0,32,0,24,0, +5,0,4,0,17,0,22,0,21,0,20,0,21,0,30,0,44,0,48,0,38,0,33,0,33,0,28,0,26,0,31,0, +36,0,40,0,45,0,47,0,42,0,39,0,38,0,36,0,38,0,40,0,36,0,32,0,34,0,35,0,33,0,30,0, +30,0,32,0,36,0,37,0,34,0,34,0,33,0,26,0,20,0,19,0,14,0,7,0,10,0,18,0,21,0,20,0, +16,0,4,0,255,255,7,0,13,0,6,0,254,255,250,255,248,255,0,0,4,0,245,255,231,255,238,255,247,255,246,255, +245,255,244,255,237,255,236,255,243,255,243,255,236,255,230,255,227,255,231,255,241,255,244,255,237,255,231,255,236,255,239,255, +236,255,236,255,240,255,241,255,237,255,238,255,244,255,248,255,242,255,236,255,238,255,244,255,245,255,241,255,241,255,246,255, +249,255,249,255,247,255,242,255,235,255,229,255,230,255,241,255,250,255,243,255,231,255,230,255,233,255,232,255,236,255,238,255, +228,255,218,255,227,255,248,255,4,0,254,255,236,255,227,255,231,255,236,255,231,255,227,255,231,255,236,255,235,255,234,255, +237,255,239,255,241,255,247,255,249,255,240,255,234,255,238,255,245,255,242,255,236,255,236,255,243,255,248,255,244,255,239,255, +248,255,7,0,2,0,236,255,227,255,239,255,250,255,252,255,254,255,248,255,234,255,233,255,247,255,252,255,245,255,240,255, +239,255,242,255,247,255,247,255,242,255,245,255,248,255,238,255,229,255,232,255,237,255,233,255,233,255,242,255,248,255,243,255, +235,255,236,255,242,255,242,255,233,255,224,255,220,255,219,255,220,255,225,255,232,255,236,255,236,255,235,255,229,255,217,255, +216,255,225,255,230,255,225,255,221,255,225,255,239,255,248,255,235,255,219,255,223,255,232,255,227,255,222,255,226,255,231,255, +232,255,230,255,225,255,231,255,241,255,235,255,226,255,236,255,243,255,227,255,219,255,231,255,236,255,235,255,238,255,237,255, +230,255,235,255,248,255,253,255,248,255,235,255,229,255,242,255,1,0,251,255,241,255,243,255,244,255,239,255,238,255,239,255, +236,255,237,255,246,255,253,255,255,255,250,255,241,255,240,255,247,255,247,255,242,255,246,255,254,255,252,255,249,255,251,255, +249,255,247,255,1,0,13,0,12,0,8,0,2,0,249,255,0,0,13,0,3,0,247,255,10,0,27,0,13,0,255,255, +4,0,11,0,19,0,22,0,3,0,241,255,255,255,19,0,17,0,7,0,2,0,4,0,16,0,31,0,26,0,4,0, +0,0,17,0,21,0,14,0,18,0,17,0,1,0,253,255,5,0,1,0,3,0,24,0,32,0,23,0,16,0,3,0, +243,255,250,255,11,0,15,0,13,0,9,0,4,0,3,0,3,0,7,0,16,0,2,0,222,255,215,255,237,255,249,255, +2,0,13,0,0,0,234,255,229,255,228,255,227,255,246,255,12,0,23,0,28,0,25,0,19,0,17,0,5,0,246,255, +251,255,7,0,4,0,249,255,242,255,242,255,3,0,25,0,22,0,10,0,27,0,56,0,46,0,9,0,3,0,18,0, +0,0,234,255,12,0,54,0,38,0,11,0,26,0,28,0,254,255,254,255,22,0,7,0,237,255,5,0,42,0,42,0, +39,0,53,0,36,0,243,255,217,255,231,255,246,255,4,0,39,0,67,0,50,0,20,0,12,0,1,0,240,255,249,255, +14,0,20,0,27,0,30,0,9,0,247,255,250,255,3,0,5,0,253,255,244,255,10,0,42,0,31,0,0,0,250,255, +1,0,15,0,35,0,33,0,9,0,0,0,253,255,243,255,252,255,15,0,11,0,254,255,255,255,18,0,38,0,35,0, +15,0,10,0,3,0,238,255,243,255,21,0,39,0,38,0,38,0,26,0,7,0,254,255,249,255,246,255,7,0,28,0, +29,0,15,0,254,255,239,255,228,255,232,255,253,255,18,0,22,0,23,0,31,0,28,0,19,0,16,0,3,0,243,255, +245,255,251,255,253,255,10,0,18,0,2,0,250,255,5,0,4,0,245,255,239,255,243,255,252,255,15,0,27,0,13,0, +248,255,248,255,7,0,13,0,2,0,241,255,233,255,246,255,7,0,250,255,219,255,210,255,223,255,232,255,239,255,248,255, +246,255,237,255,230,255,224,255,235,255,10,0,16,0,245,255,239,255,1,0,251,255,225,255,217,255,225,255,238,255,253,255, +6,0,11,0,14,0,9,0,0,0,252,255,247,255,245,255,5,0,18,0,9,0,4,0,21,0,32,0,21,0,6,0, +3,0,12,0,16,0,2,0,248,255,2,0,14,0,16,0,20,0,15,0,2,0,6,0,24,0,28,0,22,0,18,0, +7,0,255,255,7,0,15,0,11,0,9,0,12,0,13,0,6,0,248,255,244,255,254,255,4,0,4,0,8,0,7,0, +254,255,252,255,2,0,7,0,10,0,9,0,11,0,27,0,41,0,32,0,14,0,3,0,1,0,13,0,20,0,8,0, +255,255,8,0,15,0,23,0,36,0,30,0,4,0,254,255,16,0,24,0,20,0,15,0,10,0,9,0,19,0,27,0, +19,0,10,0,18,0,33,0,37,0,34,0,32,0,25,0,18,0,14,0,10,0,13,0,20,0,21,0,14,0,6,0, +254,255,253,255,4,0,3,0,247,255,245,255,252,255,2,0,8,0,8,0,251,255,238,255,236,255,243,255,252,255,253,255, +247,255,241,255,236,255,234,255,238,255,234,255,221,255,227,255,250,255,255,255,244,255,242,255,244,255,241,255,242,255,242,255, +241,255,241,255,242,255,245,255,254,255,2,0,253,255,242,255,234,255,240,255,251,255,0,0,4,0,11,0,4,0,249,255, +253,255,1,0,254,255,1,0,3,0,252,255,253,255,8,0,13,0,9,0,252,255,241,255,247,255,251,255,241,255,239,255, +249,255,246,255,244,255,255,255,1,0,251,255,254,255,253,255,250,255,253,255,252,255,248,255,254,255,255,255,248,255,250,255, +254,255,247,255,245,255,250,255,245,255,242,255,247,255,249,255,245,255,246,255,249,255,250,255,244,255,239,255,243,255,251,255, +248,255,239,255,240,255,248,255,252,255,245,255,233,255,227,255,236,255,247,255,249,255,245,255,240,255,238,255,240,255,249,255, +250,255,243,255,243,255,246,255,241,255,241,255,250,255,247,255,244,255,252,255,246,255,231,255,236,255,248,255,243,255,237,255, +236,255,231,255,234,255,238,255,233,255,239,255,250,255,241,255,236,255,241,255,236,255,241,255,255,255,243,255,233,255,249,255, +240,255,215,255,225,255,237,255,226,255,234,255,247,255,234,255,235,255,255,255,2,0,254,255,251,255,234,255,234,255,0,0, +253,255,239,255,249,255,3,0,254,255,249,255,246,255,248,255,253,255,246,255,241,255,253,255,3,0,249,255,240,255,238,255, +250,255,10,0,255,255,236,255,245,255,253,255,238,255,236,255,243,255,235,255,237,255,254,255,254,255,240,255,237,255,241,255, +240,255,237,255,231,255,229,255,233,255,233,255,234,255,236,255,233,255,228,255,231,255,238,255,243,255,243,255,242,255,248,255, +0,0,254,255,248,255,242,255,230,255,222,255,228,255,236,255,243,255,253,255,1,0,250,255,242,255,236,255,241,255,252,255, +254,255,255,255,4,0,2,0,255,255,7,0,5,0,243,255,240,255,2,0,13,0,11,0,5,0,6,0,13,0,16,0, +7,0,4,0,12,0,14,0,11,0,15,0,18,0,16,0,12,0,12,0,11,0,8,0,6,0,3,0,0,0,6,0, +15,0,17,0,12,0,11,0,9,0,7,0,13,0,17,0,13,0,15,0,24,0,25,0,22,0,22,0,20,0,23,0, +29,0,29,0,28,0,30,0,25,0,22,0,29,0,34,0,32,0,32,0,29,0,22,0,21,0,22,0,23,0,31,0, +35,0,34,0,34,0,28,0,16,0,18,0,25,0,22,0,19,0,23,0,21,0,15,0,10,0,5,0,7,0,13,0, +7,0,252,255,254,255,3,0,1,0,1,0,7,0,11,0,9,0,1,0,247,255,245,255,247,255,248,255,249,255,1,0, +11,0,7,0,246,255,238,255,244,255,247,255,248,255,255,255,2,0,253,255,255,255,6,0,5,0,255,255,254,255,1,0, +2,0,3,0,4,0,2,0,255,255,3,0,12,0,6,0,250,255,252,255,5,0,1,0,250,255,253,255,6,0,8,0, +5,0,5,0,12,0,10,0,255,255,0,0,11,0,12,0,14,0,18,0,7,0,250,255,2,0,11,0,1,0,246,255, +241,255,239,255,244,255,251,255,249,255,244,255,242,255,241,255,246,255,250,255,240,255,234,255,242,255,247,255,244,255,245,255, +241,255,232,255,235,255,244,255,243,255,240,255,243,255,240,255,234,255,237,255,241,255,237,255,236,255,242,255,248,255,249,255, +248,255,247,255,244,255,242,255,247,255,252,255,253,255,253,255,1,0,4,0,255,255,249,255,251,255,0,0,2,0,1,0, +3,0,6,0,7,0,8,0,9,0,10,0,14,0,17,0,16,0,10,0,6,0,7,0,17,0,25,0,21,0,12,0, +9,0,10,0,9,0,7,0,7,0,12,0,18,0,17,0,15,0,21,0,25,0,19,0,10,0,10,0,13,0,12,0, +6,0,6,0,16,0,19,0,7,0,254,255,0,0,255,255,255,255,3,0,2,0,1,0,6,0,3,0,253,255,6,0, +12,0,4,0,4,0,10,0,6,0,3,0,12,0,13,0,8,0,9,0,9,0,4,0,6,0,7,0,2,0,255,255, +3,0,5,0,6,0,6,0,3,0,255,255,250,255,251,255,3,0,7,0,255,255,245,255,245,255,254,255,4,0,253,255, +240,255,241,255,0,0,8,0,8,0,3,0,251,255,247,255,254,255,5,0,0,0,249,255,252,255,1,0,1,0,1,0, +4,0,1,0,252,255,0,0,8,0,9,0,7,0,8,0,11,0,11,0,7,0,1,0,2,0,7,0,12,0,17,0, +20,0,16,0,9,0,10,0,16,0,20,0,20,0,19,0,17,0,18,0,18,0,15,0,15,0,16,0,15,0,14,0, +13,0,13,0,13,0,10,0,8,0,14,0,20,0,18,0,15,0,15,0,13,0,10,0,9,0,8,0,6,0,5,0, +7,0,11,0,11,0,4,0,250,255,245,255,249,255,4,0,7,0,253,255,243,255,243,255,249,255,253,255,250,255,242,255, +236,255,235,255,237,255,240,255,240,255,239,255,244,255,250,255,250,255,253,255,255,255,245,255,234,255,238,255,248,255,251,255, +249,255,245,255,243,255,247,255,251,255,252,255,251,255,243,255,238,255,248,255,2,0,1,0,254,255,253,255,251,255,0,0, +0,0,246,255,247,255,4,0,4,0,253,255,253,255,254,255,250,255,246,255,244,255,248,255,2,0,3,0,253,255,253,255, +255,255,253,255,249,255,247,255,251,255,4,0,4,0,253,255,252,255,255,255,0,0,0,0,0,0,1,0,0,0,249,255, +243,255,249,255,253,255,248,255,253,255,5,0,0,0,252,255,252,255,242,255,236,255,248,255,2,0,3,0,3,0,2,0, +255,255,254,255,255,255,254,255,251,255,244,255,244,255,253,255,3,0,254,255,250,255,248,255,246,255,250,255,255,255,255,255, +252,255,248,255,248,255,0,0,2,0,247,255,238,255,240,255,244,255,249,255,253,255,247,255,238,255,232,255,230,255,237,255, +249,255,246,255,234,255,231,255,240,255,246,255,245,255,236,255,227,255,233,255,248,255,250,255,242,255,237,255,236,255,240,255, +251,255,255,255,244,255,234,255,233,255,237,255,248,255,0,0,247,255,238,255,246,255,255,255,253,255,248,255,243,255,243,255, +255,255,6,0,252,255,244,255,250,255,252,255,247,255,247,255,254,255,3,0,1,0,253,255,254,255,0,0,248,255,239,255, +241,255,243,255,246,255,1,0,4,0,253,255,249,255,246,255,243,255,249,255,253,255,247,255,241,255,247,255,255,255,3,0, +255,255,248,255,249,255,253,255,254,255,1,0,2,0,2,0,7,0,9,0,253,255,247,255,253,255,253,255,255,255,10,0, +10,0,253,255,252,255,3,0,6,0,6,0,3,0,253,255,1,0,8,0,3,0,249,255,253,255,3,0,5,0,9,0, +13,0,4,0,250,255,1,0,10,0,7,0,3,0,8,0,12,0,8,0,5,0,5,0,3,0,0,0,5,0,13,0, +13,0,4,0,255,255,2,0,3,0,2,0,7,0,13,0,15,0,13,0,10,0,10,0,9,0,9,0,18,0,27,0, +20,0,9,0,14,0,21,0,16,0,12,0,17,0,21,0,22,0,17,0,8,0,12,0,27,0,29,0,19,0,15,0, +22,0,24,0,13,0,5,0,15,0,23,0,11,0,3,0,9,0,16,0,20,0,23,0,19,0,9,0,4,0,2,0, +3,0,7,0,7,0,7,0,14,0,11,0,253,255,253,255,8,0,6,0,253,255,253,255,254,255,253,255,254,255,246,255, +234,255,235,255,245,255,247,255,241,255,240,255,243,255,239,255,231,255,230,255,238,255,243,255,243,255,243,255,241,255,236,255, +233,255,236,255,234,255,229,255,235,255,246,255,248,255,244,255,243,255,240,255,238,255,238,255,238,255,239,255,245,255,248,255, +246,255,248,255,254,255,255,255,250,255,245,255,241,255,242,255,248,255,255,255,2,0,3,0,2,0,0,0,2,0,6,0, +3,0,252,255,254,255,13,0,17,0,10,0,11,0,19,0,14,0,9,0,15,0,16,0,8,0,9,0,20,0,26,0, +23,0,13,0,2,0,1,0,8,0,18,0,22,0,15,0,9,0,18,0,26,0,16,0,6,0,13,0,16,0,8,0, +10,0,20,0,21,0,16,0,14,0,15,0,15,0,15,0,14,0,14,0,14,0,16,0,17,0,15,0,12,0,11,0, +16,0,21,0,20,0,11,0,6,0,10,0,15,0,14,0,12,0,14,0,19,0,16,0,6,0,10,0,27,0,27,0, +5,0,250,255,4,0,12,0,13,0,12,0,9,0,8,0,15,0,20,0,13,0,252,255,240,255,246,255,7,0,12,0, +1,0,249,255,250,255,249,255,252,255,5,0,3,0,245,255,239,255,247,255,253,255,253,255,255,255,254,255,248,255,246,255, +250,255,252,255,253,255,3,0,10,0,13,0,11,0,3,0,247,255,244,255,2,0,16,0,13,0,1,0,1,0,10,0, +12,0,6,0,2,0,1,0,2,0,5,0,4,0,254,255,3,0,16,0,15,0,1,0,254,255,8,0,13,0,8,0, +4,0,5,0,9,0,10,0,5,0,2,0,7,0,8,0,0,0,249,255,248,255,249,255,254,255,7,0,5,0,252,255, +254,255,6,0,2,0,250,255,250,255,250,255,246,255,247,255,255,255,1,0,250,255,239,255,231,255,233,255,242,255,250,255, +248,255,243,255,242,255,243,255,241,255,241,255,248,255,251,255,242,255,234,255,238,255,245,255,244,255,244,255,250,255,249,255, +242,255,237,255,238,255,244,255,252,255,255,255,252,255,252,255,252,255,248,255,239,255,235,255,241,255,250,255,0,0,254,255, +249,255,249,255,252,255,250,255,247,255,245,255,244,255,248,255,253,255,248,255,245,255,253,255,0,0,243,255,236,255,248,255, +3,0,252,255,244,255,246,255,253,255,254,255,249,255,245,255,247,255,249,255,248,255,253,255,1,0,252,255,245,255,248,255, +0,0,2,0,3,0,3,0,253,255,249,255,255,255,5,0,5,0,4,0,5,0,2,0,250,255,246,255,252,255,6,0, +11,0,6,0,254,255,252,255,2,0,9,0,5,0,251,255,249,255,255,255,4,0,8,0,10,0,2,0,246,255,250,255, +7,0,9,0,5,0,5,0,3,0,0,0,5,0,9,0,0,0,250,255,2,0,8,0,1,0,250,255,254,255,5,0, +2,0,250,255,248,255,2,0,6,0,248,255,234,255,241,255,254,255,255,255,248,255,244,255,241,255,245,255,255,255,3,0, +251,255,242,255,242,255,247,255,250,255,252,255,250,255,244,255,239,255,242,255,252,255,254,255,246,255,239,255,242,255,254,255, +5,0,253,255,241,255,245,255,6,0,5,0,244,255,239,255,250,255,253,255,246,255,241,255,240,255,240,255,248,255,255,255, +251,255,245,255,246,255,248,255,248,255,248,255,246,255,245,255,249,255,253,255,251,255,245,255,239,255,236,255,242,255,247,255, +245,255,244,255,251,255,0,0,252,255,247,255,245,255,245,255,248,255,252,255,251,255,248,255,253,255,4,0,3,0,253,255, +252,255,1,0,2,0,251,255,247,255,252,255,2,0,254,255,250,255,254,255,3,0,255,255,245,255,240,255,246,255,5,0, +14,0,7,0,253,255,252,255,255,255,254,255,253,255,255,255,2,0,4,0,6,0,7,0,8,0,5,0,254,255,253,255, +1,0,3,0,3,0,1,0,0,0,4,0,11,0,7,0,251,255,248,255,0,0,3,0,2,0,6,0,7,0,3,0, +7,0,11,0,2,0,245,255,247,255,1,0,4,0,2,0,254,255,248,255,250,255,10,0,22,0,9,0,234,255,214,255, +226,255,254,255,8,0,255,255,250,255,1,0,254,255,240,255,233,255,243,255,3,0,12,0,17,0,19,0,15,0,5,0, +253,255,252,255,2,0,8,0,8,0,253,255,245,255,2,0,25,0,31,0,14,0,252,255,253,255,19,0,39,0,29,0, +5,0,255,255,7,0,10,0,15,0,28,0,31,0,18,0,8,0,6,0,1,0,254,255,7,0,17,0,18,0,13,0, +10,0,13,0,26,0,40,0,36,0,10,0,237,255,230,255,253,255,29,0,40,0,29,0,12,0,4,0,7,0,12,0, +7,0,250,255,248,255,9,0,28,0,27,0,5,0,243,255,247,255,7,0,9,0,249,255,239,255,248,255,10,0,19,0, +10,0,249,255,248,255,8,0,24,0,27,0,18,0,1,0,241,255,237,255,243,255,255,255,10,0,9,0,252,255,247,255, +8,0,27,0,26,0,12,0,1,0,251,255,244,255,246,255,7,0,32,0,39,0,15,0,241,255,233,255,247,255,7,0, +16,0,15,0,10,0,12,0,11,0,253,255,237,255,237,255,248,255,2,0,10,0,17,0,17,0,17,0,25,0,29,0, +21,0,7,0,250,255,244,255,254,255,18,0,26,0,9,0,245,255,248,255,16,0,30,0,18,0,255,255,251,255,7,0, +18,0,17,0,10,0,11,0,19,0,26,0,24,0,12,0,253,255,245,255,253,255,9,0,2,0,242,255,238,255,248,255, +0,0,2,0,254,255,249,255,249,255,253,255,253,255,252,255,2,0,9,0,10,0,10,0,4,0,247,255,239,255,242,255, +241,255,236,255,243,255,5,0,11,0,9,0,9,0,6,0,253,255,250,255,3,0,8,0,3,0,254,255,5,0,19,0, +27,0,20,0,2,0,247,255,249,255,1,0,0,0,247,255,247,255,6,0,19,0,14,0,255,255,249,255,0,0,10,0, +7,0,255,255,1,0,8,0,6,0,0,0,0,0,2,0,255,255,254,255,253,255,246,255,238,255,240,255,248,255,254,255, +253,255,245,255,240,255,247,255,2,0,4,0,1,0,254,255,252,255,3,0,16,0,16,0,255,255,247,255,2,0,13,0, +8,0,254,255,251,255,250,255,249,255,253,255,10,0,20,0,14,0,255,255,252,255,2,0,1,0,251,255,251,255,2,0, +11,0,17,0,13,0,3,0,1,0,8,0,12,0,9,0,4,0,0,0,2,0,6,0,2,0,248,255,245,255,252,255, +2,0,1,0,250,255,243,255,242,255,244,255,247,255,249,255,247,255,242,255,242,255,248,255,249,255,237,255,225,255,222,255, +227,255,239,255,242,255,232,255,224,255,233,255,242,255,240,255,231,255,220,255,213,255,222,255,242,255,249,255,243,255,237,255, +236,255,239,255,243,255,235,255,222,255,226,255,243,255,250,255,244,255,242,255,245,255,244,255,240,255,236,255,236,255,246,255, +5,0,7,0,250,255,245,255,254,255,7,0,2,0,247,255,242,255,246,255,252,255,253,255,251,255,250,255,252,255,1,0, +1,0,251,255,247,255,246,255,244,255,245,255,255,255,5,0,0,0,252,255,254,255,2,0,5,0,5,0,254,255,254,255, +9,0,10,0,252,255,245,255,253,255,2,0,0,0,1,0,0,0,252,255,251,255,251,255,249,255,251,255,1,0,5,0, +4,0,255,255,247,255,246,255,1,0,8,0,1,0,251,255,254,255,255,255,251,255,252,255,255,255,0,0,254,255,254,255, +3,0,4,0,252,255,250,255,5,0,13,0,5,0,253,255,254,255,2,0,1,0,0,0,254,255,252,255,253,255,253,255, +252,255,255,255,0,0,252,255,250,255,251,255,250,255,248,255,252,255,254,255,250,255,252,255,1,0,1,0,0,0,254,255, +251,255,248,255,250,255,250,255,248,255,244,255,240,255,243,255,255,255,8,0,3,0,254,255,255,255,255,255,254,255,0,0, +1,0,255,255,2,0,9,0,10,0,7,0,7,0,4,0,0,0,255,255,255,255,3,0,10,0,11,0,3,0,0,0, +4,0,5,0,2,0,2,0,2,0,253,255,252,255,2,0,10,0,10,0,2,0,250,255,247,255,248,255,250,255,251,255, +252,255,252,255,252,255,252,255,249,255,247,255,251,255,255,255,253,255,248,255,242,255,239,255,246,255,253,255,250,255,244,255, +246,255,249,255,247,255,249,255,254,255,252,255,247,255,245,255,244,255,243,255,246,255,250,255,249,255,251,255,253,255,253,255, +253,255,1,0,0,0,249,255,246,255,255,255,8,0,9,0,4,0,255,255,255,255,2,0,4,0,5,0,6,0,9,0, +9,0,7,0,5,0,4,0,6,0,8,0,11,0,10,0,5,0,4,0,7,0,7,0,3,0,3,0,8,0,6,0, +1,0,0,0,6,0,11,0,10,0,7,0,6,0,5,0,4,0,3,0,6,0,12,0,13,0,9,0,8,0,14,0, +20,0,21,0,16,0,10,0,9,0,14,0,21,0,22,0,19,0,16,0,15,0,13,0,13,0,16,0,19,0,19,0, +17,0,16,0,14,0,13,0,16,0,23,0,26,0,23,0,18,0,16,0,18,0,18,0,16,0,14,0,15,0,14,0, +12,0,13,0,13,0,11,0,11,0,13,0,12,0,9,0,8,0,10,0,14,0,13,0,8,0,5,0,9,0,13,0, +10,0,7,0,8,0,10,0,12,0,17,0,15,0,7,0,4,0,8,0,11,0,10,0,10,0,12,0,15,0,16,0, +13,0,8,0,6,0,6,0,5,0,6,0,10,0,12,0,14,0,17,0,15,0,9,0,7,0,10,0,13,0,11,0, +9,0,12,0,20,0,21,0,15,0,10,0,12,0,11,0,9,0,10,0,13,0,16,0,15,0,10,0,5,0,7,0, +9,0,5,0,1,0,3,0,2,0,254,255,254,255,255,255,254,255,254,255,253,255,249,255,248,255,252,255,253,255,250,255, +250,255,249,255,245,255,242,255,244,255,244,255,244,255,246,255,248,255,247,255,243,255,241,255,245,255,251,255,253,255,248,255, +244,255,246,255,248,255,246,255,243,255,244,255,252,255,3,0,1,0,250,255,245,255,246,255,249,255,252,255,251,255,248,255, +248,255,252,255,253,255,252,255,249,255,249,255,250,255,254,255,254,255,251,255,251,255,0,0,1,0,254,255,253,255,255,255, +0,0,254,255,252,255,253,255,1,0,4,0,1,0,253,255,252,255,252,255,250,255,247,255,250,255,0,0,5,0,3,0, +252,255,247,255,247,255,250,255,250,255,248,255,248,255,249,255,250,255,248,255,245,255,244,255,246,255,247,255,248,255,249,255, +248,255,246,255,242,255,240,255,238,255,239,255,242,255,247,255,248,255,246,255,244,255,245,255,244,255,242,255,243,255,248,255, +254,255,255,255,249,255,244,255,243,255,246,255,247,255,247,255,247,255,246,255,247,255,248,255,247,255,244,255,243,255,244,255, +243,255,241,255,240,255,242,255,247,255,250,255,247,255,242,255,241,255,242,255,241,255,239,255,239,255,241,255,247,255,251,255, +249,255,244,255,244,255,247,255,251,255,255,255,255,255,253,255,252,255,253,255,252,255,252,255,255,255,255,255,255,255,1,0, +0,0,255,255,3,0,5,0,0,0,252,255,254,255,2,0,5,0,7,0,6,0,4,0,6,0,7,0,3,0,4,0, +7,0,8,0,8,0,9,0,7,0,4,0,3,0,0,0,255,255,4,0,10,0,9,0,8,0,7,0,4,0,0,0, +254,255,253,255,255,255,5,0,6,0,1,0,255,255,0,0,255,255,253,255,252,255,251,255,252,255,253,255,253,255,251,255, +255,255,1,0,252,255,246,255,244,255,244,255,247,255,252,255,252,255,249,255,249,255,248,255,244,255,245,255,248,255,250,255, +252,255,255,255,253,255,251,255,253,255,255,255,255,255,0,0,0,0,253,255,253,255,1,0,1,0,2,0,6,0,5,0, +1,0,255,255,254,255,253,255,255,255,0,0,254,255,253,255,0,0,254,255,251,255,252,255,253,255,252,255,251,255,251,255, +250,255,253,255,255,255,251,255,250,255,255,255,2,0,0,0,254,255,250,255,248,255,250,255,254,255,255,255,0,0,1,0, +253,255,249,255,249,255,249,255,248,255,251,255,255,255,0,0,0,0,0,0,254,255,254,255,254,255,251,255,248,255,250,255, +253,255,253,255,251,255,251,255,251,255,252,255,254,255,252,255,251,255,253,255,254,255,254,255,255,255,254,255,252,255,253,255, +0,0,0,0,254,255,252,255,251,255,252,255,255,255,255,255,253,255,254,255,255,255,251,255,248,255,247,255,247,255,247,255, +249,255,251,255,252,255,252,255,250,255,247,255,247,255,249,255,248,255,246,255,246,255,246,255,246,255,246,255,247,255,250,255, +253,255,251,255,245,255,244,255,248,255,253,255,254,255,252,255,252,255,254,255,255,255,253,255,250,255,251,255,253,255,254,255, +254,255,0,0,3,0,5,0,4,0,2,0,1,0,1,0,3,0,4,0,4,0,5,0,3,0,1,0,255,255,255,255, +2,0,3,0,2,0,0,0,254,255,252,255,253,255,254,255,255,255,255,255,0,0,1,0,3,0,4,0,2,0,255,255, +254,255,254,255,255,255,0,0,255,255,255,255,255,255,1,0,1,0,2,0,6,0,8,0,6,0,4,0,2,0,3,0, +7,0,9,0,7,0,4,0,4,0,5,0,8,0,10,0,9,0,6,0,6,0,8,0,8,0,7,0,7,0,7,0, +10,0,16,0,16,0,11,0,9,0,9,0,10,0,13,0,15,0,15,0,15,0,15,0,13,0,12,0,15,0,16,0, +13,0,11,0,11,0,12,0,13,0,16,0,15,0,16,0,17,0,12,0,7,0,9,0,14,0,16,0,16,0,14,0, +12,0,13,0,15,0,9,0,4,0,7,0,12,0,15,0,16,0,14,0,11,0,12,0,16,0,15,0,13,0,12,0, +11,0,11,0,14,0,14,0,10,0,9,0,13,0,13,0,9,0,5,0,4,0,8,0,14,0,12,0,5,0,5,0, +9,0,10,0,9,0,7,0,3,0,3,0,6,0,7,0,5,0,5,0,3,0,254,255,254,255,0,0,254,255,254,255, +254,255,251,255,248,255,249,255,251,255,250,255,249,255,246,255,242,255,244,255,248,255,245,255,241,255,241,255,241,255,239,255, +241,255,246,255,250,255,250,255,243,255,233,255,234,255,244,255,249,255,246,255,243,255,242,255,241,255,242,255,242,255,241,255, +244,255,247,255,245,255,246,255,251,255,252,255,248,255,247,255,248,255,249,255,251,255,250,255,248,255,249,255,252,255,252,255, +253,255,1,0,2,0,255,255,254,255,0,0,0,0,0,0,2,0,2,0,3,0,3,0,255,255,254,255,3,0,5,0, +2,0,0,0,2,0,5,0,6,0,5,0,2,0,3,0,8,0,10,0,9,0,8,0,6,0,3,0,1,0,2,0, +5,0,9,0,11,0,10,0,7,0,6,0,5,0,4,0,5,0,7,0,8,0,9,0,10,0,10,0,9,0,9,0, +7,0,4,0,4,0,7,0,10,0,12,0,12,0,8,0,7,0,8,0,9,0,8,0,7,0,5,0,5,0,9,0, +11,0,11,0,8,0,5,0,6,0,8,0,8,0,6,0,6,0,8,0,9,0,7,0,5,0,5,0,7,0,5,0, +2,0,2,0,6,0,9,0,5,0,254,255,252,255,0,0,3,0,1,0,254,255,0,0,4,0,4,0,1,0,0,0, +2,0,4,0,0,0,249,255,249,255,2,0,8,0,6,0,2,0,1,0,2,0,5,0,8,0,7,0,4,0,2,0, +1,0,2,0,6,0,10,0,9,0,9,0,11,0,10,0,8,0,9,0,10,0,12,0,13,0,11,0,7,0,8,0, +14,0,16,0,15,0,14,0,10,0,7,0,10,0,15,0,14,0,11,0,9,0,9,0,11,0,11,0,5,0,3,0, +11,0,16,0,13,0,8,0,6,0,6,0,5,0,2,0,0,0,2,0,7,0,8,0,6,0,5,0,2,0,255,255, +254,255,254,255,254,255,1,0,2,0,255,255,252,255,253,255,253,255,252,255,250,255,247,255,245,255,248,255,251,255,248,255, +248,255,251,255,253,255,250,255,246,255,240,255,238,255,245,255,254,255,254,255,251,255,248,255,243,255,242,255,244,255,243,255, +241,255,246,255,250,255,247,255,245,255,243,255,241,255,246,255,250,255,243,255,238,255,243,255,247,255,245,255,244,255,247,255, +250,255,249,255,244,255,241,255,244,255,248,255,247,255,245,255,247,255,249,255,248,255,244,255,245,255,248,255,249,255,247,255, +247,255,248,255,252,255,253,255,250,255,249,255,250,255,251,255,252,255,0,0,0,0,254,255,253,255,252,255,253,255,2,0, +3,0,255,255,254,255,0,0,255,255,255,255,3,0,6,0,7,0,4,0,255,255,253,255,255,255,254,255,254,255,3,0, +6,0,2,0,0,0,2,0,3,0,2,0,255,255,253,255,255,255,2,0,1,0,254,255,0,0,4,0,4,0,253,255, +249,255,251,255,0,0,5,0,6,0,1,0,252,255,251,255,252,255,251,255,251,255,249,255,247,255,250,255,254,255,252,255, +249,255,246,255,244,255,245,255,248,255,248,255,249,255,251,255,249,255,248,255,250,255,251,255,248,255,246,255,249,255,252,255, +250,255,245,255,245,255,251,255,255,255,253,255,248,255,246,255,247,255,248,255,249,255,250,255,254,255,254,255,251,255,247,255, +246,255,249,255,251,255,253,255,0,0,1,0,255,255,253,255,252,255,250,255,248,255,248,255,251,255,254,255,1,0,2,0, +1,0,253,255,250,255,250,255,252,255,253,255,253,255,252,255,252,255,254,255,0,0,254,255,251,255,252,255,252,255,251,255, +252,255,255,255,0,0,254,255,251,255,252,255,255,255,254,255,250,255,248,255,250,255,254,255,0,0,254,255,251,255,250,255, +251,255,251,255,251,255,251,255,252,255,252,255,249,255,248,255,252,255,253,255,250,255,249,255,252,255,254,255,254,255,252,255, +249,255,249,255,252,255,251,255,250,255,252,255,254,255,255,255,255,255,252,255,252,255,254,255,254,255,253,255,253,255,253,255, +255,255,6,0,5,0,253,255,249,255,251,255,253,255,0,0,0,0,252,255,0,0,10,0,12,0,253,255,236,255,235,255, +250,255,4,0,0,0,250,255,251,255,254,255,251,255,243,255,241,255,253,255,5,0,4,0,4,0,6,0,4,0,255,255, +248,255,246,255,0,0,11,0,5,0,251,255,255,255,7,0,6,0,0,0,251,255,1,0,14,0,16,0,4,0,252,255, +255,255,1,0,255,255,0,0,6,0,11,0,6,0,1,0,5,0,6,0,254,255,250,255,254,255,1,0,1,0,1,0, +3,0,12,0,20,0,15,0,1,0,246,255,243,255,250,255,5,0,11,0,12,0,9,0,7,0,8,0,9,0,2,0, +252,255,253,255,6,0,17,0,18,0,5,0,252,255,2,0,8,0,4,0,251,255,248,255,0,0,15,0,20,0,10,0, +1,0,3,0,6,0,10,0,12,0,10,0,7,0,9,0,6,0,253,255,250,255,0,0,2,0,255,255,4,0,16,0, +20,0,14,0,9,0,7,0,3,0,255,255,0,0,8,0,19,0,23,0,17,0,9,0,6,0,2,0,0,0,7,0, +16,0,17,0,12,0,9,0,8,0,3,0,253,255,254,255,6,0,14,0,13,0,8,0,9,0,18,0,22,0,16,0, +8,0,4,0,3,0,3,0,5,0,8,0,10,0,11,0,9,0,6,0,8,0,10,0,5,0,255,255,1,0,10,0, +11,0,5,0,2,0,5,0,9,0,13,0,11,0,0,0,252,255,2,0,5,0,253,255,245,255,244,255,251,255,2,0, +0,0,249,255,249,255,255,255,255,255,250,255,250,255,1,0,5,0,1,0,252,255,251,255,250,255,247,255,248,255,250,255, +252,255,252,255,251,255,254,255,6,0,8,0,2,0,254,255,255,255,253,255,0,0,7,0,9,0,6,0,3,0,3,0, +5,0,4,0,253,255,248,255,254,255,9,0,10,0,0,0,249,255,254,255,6,0,3,0,255,255,2,0,2,0,1,0, +3,0,2,0,255,255,255,255,253,255,251,255,2,0,5,0,255,255,249,255,249,255,250,255,252,255,251,255,248,255,249,255, +252,255,251,255,250,255,250,255,249,255,251,255,254,255,255,255,255,255,0,0,0,0,1,0,3,0,0,0,255,255,1,0, +254,255,251,255,251,255,251,255,254,255,3,0,1,0,252,255,0,0,6,0,3,0,254,255,253,255,254,255,0,0,1,0, +2,0,4,0,4,0,2,0,2,0,0,0,0,0,4,0,5,0,1,0,0,0,1,0,255,255,252,255,252,255,253,255, +0,0,255,255,250,255,246,255,249,255,251,255,250,255,250,255,252,255,253,255,252,255,246,255,240,255,241,255,245,255,249,255, +252,255,250,255,246,255,244,255,244,255,244,255,243,255,242,255,242,255,243,255,245,255,248,255,251,255,248,255,244,255,247,255, +252,255,248,255,239,255,238,255,245,255,253,255,254,255,250,255,247,255,246,255,249,255,253,255,254,255,252,255,253,255,1,0, +3,0,1,0,253,255,253,255,0,0,1,0,254,255,253,255,255,255,2,0,1,0,253,255,251,255,253,255,253,255,252,255, +254,255,0,0,0,0,255,255,254,255,253,255,253,255,255,255,1,0,2,0,3,0,4,0,3,0,0,0,1,0,7,0, +6,0,255,255,251,255,254,255,2,0,4,0,5,0,4,0,3,0,0,0,253,255,254,255,0,0,0,0,1,0,4,0, +3,0,0,0,1,0,2,0,3,0,5,0,4,0,3,0,1,0,253,255,253,255,3,0,6,0,3,0,1,0,2,0, +5,0,6,0,1,0,0,0,5,0,4,0,255,255,1,0,4,0,2,0,2,0,3,0,0,0,253,255,251,255,251,255, +253,255,0,0,254,255,251,255,249,255,249,255,252,255,251,255,245,255,246,255,252,255,254,255,252,255,249,255,247,255,250,255, +252,255,247,255,243,255,246,255,246,255,244,255,248,255,249,255,248,255,249,255,247,255,247,255,250,255,251,255,249,255,251,255, +254,255,252,255,251,255,253,255,254,255,254,255,252,255,253,255,1,0,3,0,1,0,1,0,0,0,255,255,3,0,2,0, +250,255,249,255,1,0,2,0,0,0,2,0,2,0,255,255,252,255,249,255,248,255,251,255,251,255,249,255,251,255,254,255, +254,255,251,255,249,255,250,255,252,255,250,255,250,255,252,255,251,255,249,255,250,255,251,255,249,255,249,255,248,255,249,255, +253,255,0,0,252,255,251,255,252,255,249,255,248,255,250,255,249,255,246,255,249,255,255,255,1,0,255,255,254,255,253,255, +253,255,253,255,252,255,251,255,254,255,4,0,5,0,1,0,255,255,1,0,0,0,0,0,5,0,7,0,2,0,0,0, +4,0,6,0,5,0,4,0,3,0,4,0,4,0,2,0,0,0,2,0,6,0,6,0,4,0,4,0,3,0,255,255, +253,255,255,255,2,0,3,0,2,0,1,0,2,0,5,0,5,0,2,0,0,0,1,0,3,0,4,0,7,0,6,0, +3,0,3,0,6,0,5,0,3,0,5,0,6,0,5,0,7,0,8,0,5,0,6,0,10,0,9,0,5,0,6,0, +5,0,1,0,6,0,15,0,17,0,10,0,6,0,8,0,9,0,4,0,255,255,5,0,14,0,14,0,7,0,2,0, +4,0,9,0,5,0,255,255,0,0,4,0,3,0,4,0,7,0,6,0,5,0,5,0,2,0,0,0,255,255,253,255, +254,255,3,0,3,0,0,0,1,0,2,0,1,0,2,0,3,0,2,0,255,255,254,255,2,0,5,0,2,0,255,255, +1,0,0,0,0,0,3,0,1,0,255,255,7,0,13,0,7,0,1,0,2,0,3,0,5,0,6,0,6,0,9,0, +11,0,8,0,5,0,7,0,7,0,5,0,6,0,8,0,11,0,10,0,6,0,6,0,9,0,7,0,4,0,4,0, +2,0,255,255,2,0,5,0,7,0,7,0,4,0,1,0,3,0,1,0,252,255,0,0,4,0,1,0,0,0,1,0, +254,255,251,255,253,255,255,255,255,255,251,255,249,255,252,255,253,255,251,255,252,255,254,255,252,255,252,255,253,255,251,255, +251,255,254,255,255,255,254,255,253,255,251,255,249,255,253,255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0, +1,0,0,0,254,255,255,255,1,0,1,0,4,0,6,0,4,0,0,0,255,255,0,0,1,0,2,0,3,0,5,0, +4,0,0,0,3,0,8,0,6,0,3,0,4,0,3,0,0,0,255,255,1,0,6,0,10,0,10,0,6,0,2,0, +254,255,255,255,2,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,254,255,255,255, +3,0,7,0,8,0,6,0,2,0,255,255,0,0,2,0,2,0,2,0,4,0,3,0,0,0,254,255,1,0,5,0, +5,0,2,0,2,0,2,0,0,0,2,0,5,0,5,0,3,0,0,0,254,255,254,255,255,255,254,255,254,255,1,0, +2,0,0,0,254,255,252,255,252,255,253,255,252,255,252,255,255,255,255,255,254,255,0,0,1,0,254,255,251,255,250,255, +254,255,4,0,2,0,255,255,0,0,2,0,0,0,255,255,253,255,254,255,3,0,4,0,255,255,255,255,3,0,5,0, +5,0,4,0,0,0,255,255,3,0,4,0,3,0,3,0,5,0,7,0,5,0,1,0,1,0,4,0,3,0,4,0, +8,0,10,0,10,0,11,0,9,0,7,0,9,0,6,0,2,0,5,0,9,0,10,0,11,0,10,0,7,0,6,0, +5,0,2,0,4,0,7,0,6,0,4,0,3,0,2,0,4,0,4,0,1,0,0,0,1,0,1,0,1,0,0,0, +254,255,255,255,1,0,253,255,250,255,251,255,250,255,251,255,0,0,255,255,252,255,252,255,251,255,248,255,249,255,252,255, +252,255,249,255,249,255,252,255,254,255,253,255,252,255,253,255,252,255,248,255,247,255,250,255,255,255,2,0,255,255,250,255, +251,255,253,255,250,255,250,255,252,255,252,255,251,255,250,255,249,255,250,255,253,255,252,255,250,255,250,255,250,255,249,255, +249,255,251,255,252,255,253,255,253,255,252,255,250,255,250,255,252,255,254,255,253,255,253,255,252,255,249,255,250,255,255,255, +255,255,251,255,251,255,253,255,251,255,250,255,254,255,255,255,252,255,252,255,254,255,254,255,250,255,248,255,249,255,253,255, +254,255,251,255,249,255,252,255,254,255,253,255,250,255,250,255,251,255,252,255,255,255,1,0,254,255,252,255,253,255,254,255, +252,255,250,255,251,255,253,255,254,255,252,255,249,255,248,255,250,255,251,255,251,255,252,255,251,255,248,255,249,255,253,255, +252,255,247,255,247,255,250,255,250,255,250,255,250,255,248,255,246,255,247,255,249,255,249,255,249,255,249,255,249,255,248,255, +247,255,247,255,246,255,247,255,251,255,251,255,248,255,248,255,249,255,251,255,253,255,253,255,249,255,249,255,252,255,251,255, +248,255,252,255,2,0,2,0,254,255,251,255,252,255,255,255,254,255,253,255,255,255,2,0,0,0,253,255,253,255,254,255, +253,255,252,255,253,255,254,255,253,255,252,255,1,0,4,0,1,0,255,255,254,255,252,255,253,255,255,255,255,255,254,255, +255,255,253,255,252,255,253,255,255,255,1,0,3,0,2,0,253,255,251,255,253,255,2,0,3,0,255,255,255,255,1,0, +2,0,1,0,3,0,4,0,0,0,253,255,254,255,1,0,2,0,0,0,255,255,2,0,4,0,2,0,0,0,255,255, +0,0,3,0,4,0,0,0,254,255,2,0,6,0,7,0,5,0,4,0,5,0,5,0,4,0,4,0,5,0,6,0, +6,0,4,0,4,0,7,0,10,0,6,0,1,0,2,0,4,0,3,0,2,0,5,0,7,0,7,0,5,0,5,0, +6,0,6,0,7,0,7,0,6,0,3,0,3,0,4,0,5,0,6,0,8,0,7,0,4,0,4,0,6,0,7,0, +6,0,6,0,8,0,9,0,6,0,2,0,1,0,4,0,7,0,7,0,4,0,5,0,8,0,9,0,6,0,6,0, +9,0,8,0,3,0,2,0,5,0,7,0,5,0,3,0,4,0,5,0,4,0,4,0,4,0,2,0,1,0,1,0, +2,0,1,0,2,0,2,0,255,255,252,255,253,255,2,0,3,0,255,255,252,255,253,255,0,0,0,0,254,255,251,255, +252,255,255,255,255,255,252,255,249,255,250,255,251,255,251,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,250,255, +251,255,253,255,252,255,251,255,251,255,252,255,253,255,255,255,1,0,255,255,252,255,251,255,254,255,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,3,0,3,0,2,0,1,0,2,0,3,0,3,0,4,0,5,0,5,0, +4,0,3,0,3,0,4,0,3,0,4,0,5,0,5,0,5,0,6,0,6,0,5,0,4,0,5,0,5,0,4,0, +5,0,6,0,7,0,5,0,4,0,4,0,5,0,4,0,3,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0, +4,0,2,0,2,0,4,0,6,0,6,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,6,0,5,0, +1,0,0,0,3,0,5,0,3,0,1,0,2,0,4,0,5,0,4,0,3,0,3,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,1,0,2,0,1,0,255,255,254,255,255,255,0,0,0,0, +0,0,254,255,254,255,0,0,2,0,1,0,254,255,253,255,253,255,255,255,2,0,2,0,255,255,251,255,251,255,255,255, +2,0,2,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,253,255,254,255,1,0,2,0,1,0,0,0,0,0, +1,0,1,0,255,255,253,255,254,255,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255, +1,0,1,0,0,0,255,255,255,255,255,255,254,255,253,255,254,255,255,255,0,0,1,0,0,0,254,255,253,255,254,255, +254,255,252,255,250,255,251,255,254,255,0,0,253,255,250,255,250,255,252,255,251,255,250,255,251,255,253,255,254,255,252,255, +252,255,253,255,253,255,252,255,250,255,249,255,249,255,250,255,250,255,251,255,252,255,253,255,252,255,251,255,249,255,249,255, +250,255,251,255,251,255,251,255,253,255,253,255,251,255,248,255,248,255,251,255,251,255,250,255,249,255,252,255,253,255,252,255, +251,255,251,255,252,255,251,255,249,255,250,255,252,255,253,255,253,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255, +253,255,253,255,252,255,252,255,252,255,252,255,251,255,251,255,254,255,0,0,255,255,253,255,251,255,252,255,254,255,0,0, +0,0,0,0,255,255,253,255,252,255,254,255,1,0,2,0,255,255,254,255,0,0,0,0,254,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,255,255,1,0,2,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,0,0,0,0,254,255,253,255,254,255,254,255, +252,255,252,255,252,255,253,255,253,255,254,255,253,255,251,255,251,255,253,255,255,255,253,255,253,255,254,255,254,255,252,255, +251,255,252,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255,253,255,252,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,254,255,254,255,255,255,0,0,2,0,4,0,2,0, +255,255,254,255,0,0,1,0,1,0,2,0,2,0,0,0,254,255,0,0,2,0,1,0,1,0,1,0,2,0,1,0, +2,0,3,0,3,0,2,0,2,0,4,0,3,0,1,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0, +1,0,1,0,2,0,3,0,2,0,1,0,2,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0, +1,0,1,0,3,0,4,0,2,0,2,0,2,0,1,0,255,255,3,0,8,0,8,0,2,0,253,255,252,255,254,255, +0,0,1,0,2,0,2,0,0,0,254,255,251,255,251,255,254,255,2,0,5,0,5,0,5,0,3,0,1,0,0,0, +0,0,2,0,3,0,1,0,254,255,255,255,3,0,6,0,4,0,0,0,1,0,7,0,7,0,3,0,1,0,1,0, +1,0,2,0,6,0,9,0,7,0,3,0,2,0,3,0,3,0,2,0,1,0,2,0,3,0,5,0,6,0,6,0, +7,0,10,0,10,0,5,0,254,255,251,255,254,255,5,0,9,0,10,0,11,0,10,0,7,0,3,0,0,0,2,0, +4,0,4,0,6,0,9,0,10,0,6,0,2,0,3,0,4,0,3,0,1,0,3,0,6,0,6,0,5,0,5,0, +6,0,6,0,6,0,5,0,3,0,2,0,3,0,5,0,3,0,0,0,255,255,1,0,1,0,0,0,1,0,6,0, +9,0,8,0,3,0,254,255,253,255,254,255,1,0,7,0,10,0,7,0,0,0,251,255,252,255,255,255,2,0,5,0, +7,0,6,0,3,0,0,0,254,255,252,255,252,255,0,0,4,0,5,0,3,0,4,0,5,0,4,0,2,0,1,0, +1,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,255,255,254,255,0,0,2,0,3,0,4,0, +4,0,2,0,255,255,0,0,2,0,3,0,2,0,1,0,1,0,0,0,252,255,250,255,251,255,253,255,254,255,253,255, +253,255,254,255,254,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,252,255,250,255,248,255,248,255, +251,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,255,255,2,0,1,0,0,0, +0,0,1,0,255,255,252,255,251,255,253,255,255,255,0,0,0,0,1,0,2,0,1,0,255,255,255,255,0,0,3,0, +4,0,3,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,1,0,2,0,0,0, +255,255,0,0,0,0,255,255,254,255,0,0,3,0,4,0,4,0,3,0,1,0,0,0,1,0,2,0,3,0,2,0, +1,0,255,255,254,255,0,0,4,0,5,0,3,0,2,0,2,0,4,0,3,0,1,0,255,255,255,255,3,0,6,0, +6,0,3,0,1,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0, +0,0,255,255,254,255,253,255,254,255,255,255,255,255,253,255,252,255,253,255,254,255,253,255,252,255,251,255,250,255,250,255, +251,255,252,255,252,255,251,255,251,255,250,255,250,255,251,255,252,255,250,255,249,255,250,255,252,255,252,255,251,255,252,255, +254,255,252,255,250,255,249,255,252,255,254,255,254,255,253,255,253,255,253,255,254,255,253,255,252,255,253,255,0,0,2,0, +0,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255, +255,255,1,0,255,255,253,255,255,255,2,0,2,0,0,0,254,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,254,255,253,255,254,255,255,255,255,255,255,255,255,255, +254,255,254,255,255,255,255,255,255,255,255,255,254,255,252,255,252,255,255,255,0,0,254,255,252,255,254,255,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255, +255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,0,0, +254,255,253,255,253,255,252,255,252,255,253,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255,0,0,255,255,254,255, +253,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,0,0, +255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0, +1,0,0,0,254,255,254,255,254,255,255,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255, +0,0,1,0,0,0,254,255,252,255,253,255,255,255,255,255,255,255,254,255,253,255,252,255,253,255,254,255,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0, +3,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0, +0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0, +2,0,2,0,2,0,1,0,2,0,3,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0, +3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,4,0,3,0,3,0,2,0,3,0,3,0, +3,0,3,0,3,0,2,0,2,0,2,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +2,0,2,0,2,0,1,0,0,0,0,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0, +2,0,1,0,1,0,3,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0, +2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,254,255,255,255, +0,0,0,0,255,255,254,255,253,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255, +255,255,0,0,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255, +253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255, +255,255,255,255,254,255,253,255,252,255,253,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255, +255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0, +3,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,2,0,3,0,4,0,3,0,1,0,1,0, +2,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,2,0,3,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0, +1,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255,254,255, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,3,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,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,1,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,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,1,0,1,0,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,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,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,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,1,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/bowhit3.pcm b/src/client/sound/data/bowhit3.pcm new file mode 100755 index 0000000..9b0dea6 --- /dev/null +++ b/src/client/sound/data/bowhit3.pcm @@ -0,0 +1,2458 @@ +unsigned char PCM_bowhit3[78570] = { +1,0,0,0,2,0,0,0,68,172,0,0,109,153,0,0,68,0,6,0,228,255,224,255,207,255,207,255,224,255,218,255, +224,255,8,0,13,0,203,255,138,255,163,255,250,255,250,255,133,255,99,255,246,255,106,0,39,0,172,255,127,255,132,255, +156,255,215,255,7,0,215,255,102,255,78,255,166,255,209,255,162,255,136,255,113,255,58,255,73,255,124,255,127,255,233,255, +97,0,94,255,6,254,210,254,76,0,38,0,9,0,201,0,31,0,209,254,90,255,226,255,244,254,76,255,184,0,38,0, +3,255,70,255,196,254,233,253,73,255,32,0,92,254,63,254,38,0,71,255,78,253,91,254,127,255,250,254,23,0,239,0, +11,254,84,252,220,254,221,255,8,254,121,254,9,0,31,255,119,254,55,255,16,254,191,252,153,254,0,0,63,254,57,253, +62,254,93,254,58,254,153,255,13,0,66,254,78,253,228,254,235,0,103,1,118,0,82,255,249,254,10,255,113,254,126,253, +175,253,239,254,6,255,126,253,34,253,147,254,153,254,77,253,102,254,93,0,17,255,116,253,100,255,84,1,248,0,124,1, +244,1,178,255,251,254,21,2,54,3,66,1,146,1,79,3,94,2,147,1,13,2,255,0,1,0,45,0,157,255,29,0, +154,2,180,1,147,253,14,254,131,1,32,0,69,254,215,1,206,2,71,253,249,251,60,2,222,5,129,2,171,253,178,252, +182,0,14,5,215,3,15,0,161,0,31,4,254,4,77,3,253,2,133,5,62,7,221,4,131,2,15,4,87,4,75,1, +244,1,137,5,3,3,61,253,193,254,91,5,161,6,116,1,193,253,218,255,17,3,47,2,82,0,152,1,35,2,85,255, +217,254,202,2,15,5,152,3,101,2,193,1,17,0,114,0,63,4,162,6,243,5,64,5,124,3,112,0,228,1,214,4, +1,255,251,247,173,254,157,8,216,4,96,254,90,4,51,11,35,4,158,248,81,250,148,6,38,9,1,254,219,249,246,0, +210,253,176,242,28,248,255,4,199,254,115,241,216,245,255,1,111,2,37,252,191,253,161,9,239,18,111,11,181,249,163,243, +193,254,161,10,191,9,40,1,121,255,98,6,87,7,192,255,107,255,68,6,111,2,17,250,56,7,236,33,53,33,128,254, +17,230,196,243,44,18,129,36,3,30,242,4,121,1,238,34,211,39,35,254,155,11,70,91,25,106,67,56,1,57,218,63, +189,14,235,30,224,118,203,99,188,13,24,33,73,72,132,24,13,25,74,113,135,123,86,30,69,225,32,248,31,47,210,61, +77,1,108,177,172,158,155,211,184,27,93,35,184,212,146,154,24,182,135,218,29,227,139,239,108,236,38,233,170,13,62,18, +188,241,115,33,220,78,51,234,88,152,66,211,67,225,210,180,11,253,109,68,88,246,85,198,254,2,14,2,228,206,237,228, +138,251,207,200,229,152,248,154,51,186,84,220,234,227,19,221,11,218,191,191,120,171,86,200,111,204,191,164,177,187,138,238, +131,201,35,159,119,204,183,235,122,204,3,204,179,241,230,238,238,186,23,139,140,136,156,165,115,186,254,216,183,13,139,10, +11,197,133,179,203,230,108,242,24,202,60,180,93,188,118,204,208,211,243,197,180,189,232,206,207,209,32,190,61,196,115,224, +191,230,6,219,50,210,12,203,152,203,90,212,201,205,182,185,194,191,115,228,68,241,139,205,116,175,131,188,61,204,72,198, +178,204,67,229,122,243,129,247,157,249,215,246,86,246,255,246,162,248,56,11,249,21,13,247,150,232,22,21,111,39,203,252, +217,238,63,11,205,15,64,11,78,27,188,30,154,25,41,40,61,39,215,5,86,247,12,12,159,33,113,45,118,50,11,41, +139,28,73,36,210,59,211,71,200,59,173,40,167,34,48,39,253,43,144,48,37,50,89,41,44,28,208,28,0,46,199,53, +183,35,100,19,64,27,44,35,177,32,85,42,92,49,72,27,30,11,2,29,96,43,5,37,143,34,67,29,162,12,145,16, +55,40,2,40,146,19,134,16,212,26,199,31,83,37,201,36,188,14,165,254,160,20,222,48,165,41,35,22,70,24,223,32, +216,31,3,33,53,36,81,30,192,20,62,18,67,28,118,43,192,37,90,14,157,18,61,48,231,49,154,27,40,22,209,21, +25,12,102,17,169,35,105,47,162,55,27,36,110,227,120,198,46,12,196,89,99,78,245,25,116,7,215,12,157,17,199,28, +208,39,134,31,34,14,69,17,125,41,160,50,126,27,123,7,254,19,237,36,14,29,219,18,54,27,1,31,135,14,224,2, +232,15,33,32,107,20,157,247,215,244,239,14,12,22,177,0,53,254,14,26,152,44,23,35,20,9,82,243,196,248,94,11, +251,7,131,3,128,25,251,25,57,241,126,234,252,27,248,56,255,35,229,6,154,249,173,255,92,16,95,18,125,17,121,37, +50,39,50,6,250,0,118,23,120,9,191,246,183,18,138,32,167,5,219,10,227,39,158,21,200,244,125,249,68,254,46,244, +81,255,235,17,229,16,31,13,71,6,210,240,41,236,158,8,142,33,197,30,235,10,68,250,255,254,207,9,150,249,174,227, +252,237,6,253,242,244,109,244,199,3,112,3,43,247,100,243,103,240,226,237,194,244,24,249,229,249,139,6,61,17,240,6, +136,248,210,245,98,246,221,244,241,241,181,240,37,249,242,0,3,248,144,242,199,1,227,7,80,249,143,249,166,12,90,15, +21,255,168,242,59,237,109,234,253,232,75,228,12,227,108,237,117,242,137,230,201,224,5,239,7,249,129,237,11,223,135,225, +105,235,74,234,21,226,203,224,127,226,87,223,210,224,91,234,16,235,154,221,195,210,73,212,38,220,212,227,56,233,204,235, +161,233,179,225,167,221,82,231,88,242,29,238,163,226,55,220,203,215,89,216,1,228,166,235,160,226,188,217,216,223,104,230, +174,223,80,217,135,224,219,231,157,227,10,226,146,234,117,238,48,237,172,240,90,235,115,216,176,212,22,229,252,235,98,229, +189,222,218,211,199,205,83,221,205,236,235,231,165,227,104,231,194,227,223,226,211,234,218,228,131,215,63,224,126,242,248,244, +160,241,237,243,159,247,4,253,59,0,162,253,209,1,24,11,141,5,206,249,8,252,181,254,97,246,32,246,126,2,204,8, +155,6,157,4,190,1,76,0,228,6,48,15,129,15,44,12,27,13,68,15,187,12,213,6,51,255,86,247,121,250,9,12, +203,20,133,6,136,246,163,243,159,243,179,246,161,0,179,2,221,253,125,5,151,14,179,3,101,245,139,247,37,254,85,255, +96,0,13,255,149,248,171,245,6,252,254,3,229,1,142,250,8,2,198,19,152,18,33,3,105,2,187,7,252,1,200,3, +147,14,197,8,123,2,6,24,246,41,199,22,119,250,21,243,203,247,17,1,201,16,109,27,82,22,126,7,61,249,185,241, +12,243,200,248,56,252,33,253,128,0,29,6,235,5,30,252,166,239,183,234,73,244,122,5,80,9,251,251,49,243,21,245, +93,245,152,250,12,10,32,13,108,254,24,246,149,246,187,244,44,250,84,6,164,7,246,4,116,9,51,6,218,249,237,248, +167,2,237,9,90,13,87,8,183,252,12,254,33,11,122,12,114,3,251,0,88,4,252,9,231,16,147,13,28,1,123,1, +176,18,193,31,15,29,105,18,222,11,215,12,221,13,120,10,49,8,155,9,44,12,208,13,207,8,28,254,11,252,138,2, +132,1,52,253,166,1,60,3,177,252,28,255,52,8,13,6,155,0,5,6,90,13,57,16,220,19,248,18,27,10,89,7, +236,15,40,21,166,16,197,11,18,10,159,6,235,2,108,4,221,7,213,5,43,254,213,245,160,241,243,243,239,246,35,243, +247,239,59,248,132,4,117,8,186,3,160,249,222,241,103,248,14,5,95,3,115,249,168,248,183,249,199,244,32,245,212,249, +198,245,57,240,82,246,51,255,104,254,33,249,10,251,202,4,104,9,173,1,240,251,152,2,103,6,60,254,104,248,53,250, +21,252,214,0,158,5,244,252,226,243,156,1,147,18,174,10,238,253,108,3,182,7,36,0,206,0,210,9,66,8,43,2, +154,4,196,4,166,253,29,254,13,5,65,3,50,255,220,4,186,7,224,254,239,250,18,4,146,11,101,9,149,3,131,0, +223,6,200,20,93,24,102,13,211,9,254,19,86,22,164,10,101,2,18,3,1,3,255,0,211,2,172,6,46,6,40,3, +149,6,236,14,185,13,123,1,2,251,195,254,200,255,121,252,206,254,79,5,83,7,105,5,39,5,19,6,231,2,67,253, +229,255,56,10,46,11,115,1,176,255,231,4,0,1,132,253,149,9,118,20,155,14,36,8,224,12,203,17,90,17,55,15, +106,9,205,2,49,6,102,19,212,31,63,36,89,28,100,13,167,12,178,31,238,40,124,25,208,14,219,23,173,26,126,19, +250,27,247,40,206,30,86,18,41,28,123,38,135,38,133,44,7,42,139,17,47,8,91,29,24,40,150,29,231,26,146,29, +207,23,167,23,229,29,47,26,77,21,9,27,217,32,107,35,215,37,140,31,86,20,126,18,254,19,43,17,147,17,68,19, +214,17,117,21,175,24,250,16,182,12,245,16,187,11,96,5,142,15,222,21,63,13,99,15,160,26,117,22,178,14,142,17, +90,13,100,3,20,9,114,20,222,18,253,12,79,11,172,10,45,11,108,7,148,251,241,245,190,252,112,2,230,3,190,4, +225,253,195,243,226,243,70,245,37,238,203,237,225,248,104,253,192,249,74,250,180,250,155,243,107,237,101,239,68,245,174,248, +241,244,60,234,35,226,111,228,244,233,97,232,75,229,58,234,65,237,19,227,231,219,153,230,96,239,62,230,108,221,30,223, +73,220,66,212,255,211,171,216,118,221,2,229,155,229,182,216,195,207,145,211,214,212,246,207,238,209,61,219,51,225,251,220, +83,207,221,198,6,210,234,226,0,227,98,216,223,211,250,213,203,220,246,230,58,232,97,222,78,218,33,222,64,219,8,213, +162,215,3,221,24,223,64,228,56,234,39,235,249,236,182,236,21,224,92,215,40,229,88,243,103,236,157,227,23,230,194,229, +224,227,44,233,162,232,113,225,251,229,206,235,46,224,159,214,0,221,233,222,139,220,71,232,248,240,115,228,79,218,44,224, +234,227,25,229,56,238,127,241,108,232,46,229,180,232,61,228,239,223,124,232,76,240,182,235,64,233,102,240,54,242,223,235, +128,237,140,246,207,244,130,232,48,227,128,231,74,235,154,238,129,244,23,245,122,236,16,230,10,234,27,241,145,242,41,239, +105,235,156,234,197,237,137,242,26,247,72,251,69,250,219,240,222,232,145,234,171,237,149,236,112,238,108,242,26,242,203,242, +1,245,154,239,161,237,92,254,171,11,90,254,96,239,204,249,37,10,15,8,192,252,219,247,29,249,82,252,68,0,147,1, +38,251,18,240,228,238,196,251,252,1,252,244,159,233,16,241,52,252,235,251,152,246,26,243,43,242,32,247,52,254,173,252, +32,245,168,242,203,244,249,247,46,0,136,9,122,7,172,251,246,244,179,249,111,3,1,7,46,255,183,247,190,253,64,7, +243,7,119,9,17,15,232,11,205,6,72,14,167,18,237,5,215,251,164,2,215,15,7,26,166,25,216,11,149,3,185,11, +7,18,224,17,70,22,37,18,7,1,236,1,212,22,212,25,233,8,204,3,199,14,101,26,236,30,177,23,56,13,208,17, +59,30,222,28,198,17,128,11,130,8,21,7,45,12,51,19,187,19,108,18,152,23,64,29,140,24,220,17,180,24,227,34, +223,30,12,23,63,24,140,24,115,20,78,20,170,20,238,20,17,29,101,34,163,25,193,17,3,18,175,15,164,16,138,26, +118,28,146,23,84,33,8,47,198,38,50,21,131,21,211,32,187,31,65,21,8,22,194,28,182,19,49,8,170,18,87,29, +238,19,145,19,24,34,63,27,13,8,216,11,30,22,163,21,192,32,209,47,232,38,128,25,104,27,242,23,235,14,240,20, +97,29,77,24,64,18,51,18,173,21,205,30,136,35,10,29,106,26,229,26,131,15,47,10,45,27,18,35,209,15,191,2, +69,12,105,18,29,11,70,8,199,13,101,15,65,13,19,16,76,19,237,12,101,2,12,255,153,1,28,5,155,9,104,12, +9,13,251,16,116,20,79,15,20,8,59,6,131,4,207,2,144,6,193,9,26,7,37,6,236,10,99,16,51,18,53,14, +15,8,114,8,205,13,226,14,254,11,22,10,119,9,205,9,132,8,42,5,179,8,236,16,158,12,221,1,38,6,76,14, +5,7,6,1,107,8,33,8,109,251,102,247,86,253,168,0,237,3,98,8,47,4,148,251,136,250,64,254,42,3,39,9, +215,7,98,0,221,254,24,0,251,254,134,2,205,5,152,1,187,0,75,4,250,1,34,255,122,254,23,252,91,3,232,15, +47,9,131,249,184,247,160,248,35,248,4,0,178,2,237,255,29,9,194,10,162,247,161,237,32,239,111,236,19,249,134,12, +171,255,196,232,23,237,139,247,111,247,199,245,71,243,91,255,251,23,21,14,38,238,214,247,122,16,211,0,33,240,184,254, +9,3,51,242,244,236,94,247,56,0,87,254,239,248,142,254,249,253,120,225,12,209,207,245,205,37,241,31,198,233,228,203, +79,235,71,6,103,250,111,21,205,64,193,249,249,142,67,179,180,14,98,11,10,239,111,240,11,236,99,18,217,72,114,9, +97,158,119,167,113,228,98,7,123,49,117,32,55,186,178,157,92,223,24,233,180,209,65,0,154,52,239,27,65,210,250,161, +199,223,10,98,16,94,112,192,153,137,226,8,161,88,245,20,12,231,164,20,35,16,174,193,25,196,230,10,111,240,123,178, +213,247,126,79,201,29,142,225,40,5,212,27,13,2,168,1,20,8,133,246,24,244,71,0,60,1,79,253,0,236,187,211, +56,225,215,11,18,33,15,22,210,245,70,223,127,252,117,39,16,24,220,233,219,221,192,247,203,30,11,39,172,246,208,211, +168,239,162,253,179,226,40,238,123,18,69,254,254,215,176,237,209,30,25,40,132,11,166,250,175,17,130,43,135,25,100,251, +194,3,56,20,226,252,193,220,52,234,45,16,132,14,40,236,37,239,73,23,253,28,152,253,129,244,144,3,46,9,215,7, +46,7,207,2,211,254,122,246,97,233,19,242,54,14,225,21,180,8,1,1,55,251,104,251,57,17,28,30,100,10,74,3, +43,28,1,30,70,249,100,228,30,244,58,10,18,20,231,15,182,4,109,7,249,21,177,16,107,249,162,244,37,7,137,22, +65,22,7,14,192,12,211,16,156,2,255,234,109,244,50,19,148,24,136,15,104,12,10,249,26,229,147,245,109,6,195,249, +209,252,240,20,250,18,33,5,199,10,57,9,214,247,196,244,206,252,184,254,110,254,123,248,7,241,226,254,190,21,45,20, +74,3,91,251,144,249,188,250,249,2,177,9,36,8,61,4,242,255,4,248,180,241,219,243,178,253,27,9,27,11,180,0, +90,249,124,253,159,253,196,242,131,240,179,255,57,8,50,249,152,232,216,235,12,242,135,238,27,250,86,21,13,14,197,221, +129,201,147,236,124,11,67,5,11,2,75,18,73,12,237,228,66,205,160,222,19,246,183,247,233,244,52,255,234,11,72,12, +54,253,110,231,249,222,238,235,28,252,79,2,29,3,157,251,251,236,82,238,71,0,108,254,195,225,100,208,1,221,231,244, +40,3,227,254,255,241,193,244,152,4,137,0,199,229,143,216,244,229,255,245,121,249,131,247,47,245,25,238,213,226,68,222, +236,229,204,238,190,237,101,231,187,228,179,232,61,244,203,0,69,255,93,239,199,229,57,237,186,247,144,248,163,246,119,250, +20,252,2,243,132,234,12,240,151,250,33,251,42,245,99,243,101,247,231,253,196,1,64,255,206,252,197,255,82,254,27,244, +105,240,18,250,206,2,138,1,107,250,52,241,254,236,226,245,201,0,171,251,134,238,100,237,42,245,148,247,1,246,53,246, +177,244,211,240,205,239,150,242,1,249,102,2,49,6,214,0,8,255,249,5,153,8,144,2,39,252,144,245,217,238,251,245, +226,12,163,24,186,9,81,247,178,247,93,2,107,12,254,22,8,26,209,13,60,2,247,5,46,12,23,5,198,246,155,242, +15,0,232,14,28,9,51,250,199,253,139,9,22,6,74,3,115,16,38,21,152,7,185,1,182,8,137,10,212,8,46,11, +39,11,6,9,43,8,30,1,147,249,217,1,179,13,167,6,31,249,220,250,116,4,222,9,129,15,208,19,118,13,202,1, +34,252,97,251,70,254,159,9,77,21,79,18,122,7,196,6,4,13,231,12,160,8,252,5,193,0,96,249,176,248,68,0, +68,9,203,13,156,10,172,1,189,252,128,3,25,14,39,11,113,250,187,241,105,247,200,247,212,241,172,249,65,6,211,2, +41,0,49,11,24,9,59,246,46,245,7,6,137,10,111,4,13,5,40,8,69,5,94,253,41,249,236,4,57,21,48,17, +144,7,226,16,55,21,82,5,85,1,87,10,30,2,158,251,63,15,122,28,137,18,225,13,193,16,122,12,69,13,68,20, +169,17,182,13,101,14,1,7,103,1,135,8,252,7,202,0,17,10,131,16,88,255,217,247,13,7,201,6,6,246,84,249, +217,10,243,14,212,9,135,6,23,2,52,252,28,246,242,241,115,247,10,2,192,1,64,248,108,244,223,248,224,253,186,254, +105,0,29,13,145,30,53,30,238,7,144,240,216,233,219,246,220,11,18,21,72,15,84,6,186,252,58,247,16,0,24,5, +185,241,97,228,154,249,79,14,115,3,107,246,101,254,50,3,101,247,215,243,112,3,173,9,128,246,69,232,200,245,234,4, +150,255,215,246,215,244,52,240,167,238,46,247,96,253,186,252,67,252,61,250,247,249,141,3,24,10,119,0,220,245,11,250, +148,6,229,14,181,12,113,6,157,9,27,17,42,14,189,9,164,15,3,18,184,8,218,1,152,3,174,8,150,14,49,15, +197,8,146,7,147,12,247,8,66,255,7,0,192,9,185,14,254,11,162,6,217,2,197,3,171,7,196,7,87,4,198,6, +134,14,170,14,217,8,70,11,248,13,234,0,205,244,155,254,255,13,245,15,5,13,90,11,138,6,156,3,228,5,82,6, +126,4,32,5,113,7,150,10,70,13,244,12,139,11,166,7,4,0,102,2,170,16,90,16,166,254,10,249,76,1,164,2, +86,0,231,2,71,4,25,6,116,8,81,255,107,242,231,244,41,254,198,0,157,3,92,4,19,252,125,252,191,11,64,12, +175,247,38,241,235,2,58,16,195,11,16,1,4,248,174,245,29,253,160,3,10,3,103,5,235,7,153,255,9,252,125,9, +114,16,166,8,133,7,189,4,56,240,151,234,107,5,195,21,13,12,33,11,118,19,196,11,142,0,106,3,49,9,198,12, +155,16,164,13,212,10,140,19,235,22,204,10,214,5,65,13,184,11,186,4,16,9,124,13,153,6,220,1,215,3,235,1, +114,254,162,254,197,253,86,0,2,10,244,9,218,252,40,251,96,8,88,14,208,11,248,11,77,8,153,255,28,1,71,11, +29,12,189,4,95,5,17,10,28,0,49,240,119,246,103,9,222,6,83,248,103,251,26,2,139,248,216,239,229,240,62,241, +250,246,0,3,152,3,46,252,140,249,142,243,152,238,235,251,148,11,252,7,218,254,17,251,64,244,65,240,99,246,43,250, +120,248,91,252,186,0,141,250,251,241,212,241,26,245,138,245,189,246,159,250,125,253,199,255,207,1,157,253,212,245,136,244, +99,245,114,243,113,249,227,2,124,254,226,248,165,255,182,251,226,232,50,230,82,242,243,245,187,247,170,251,164,246,160,245, +121,252,103,240,153,220,21,229,85,245,128,239,126,238,145,0,210,4,94,244,7,234,216,235,162,241,230,250,111,1,115,253, +145,246,89,248,128,255,4,255,233,245,98,242,174,247,166,249,196,248,213,253,155,0,210,248,39,242,60,245,182,248,81,243, +156,235,142,241,198,3,182,9,172,253,218,247,87,253,155,253,145,251,62,254,45,253,89,253,169,7,73,12,174,4,15,1, +192,255,247,248,14,250,232,1,104,254,100,249,161,2,191,10,130,6,154,1,207,254,167,248,192,243,144,244,108,251,28,9, +101,21,95,20,88,9,140,1,97,1,165,1,62,254,140,0,19,13,74,20,219,14,121,11,194,12,205,7,51,4,185,11, +11,19,111,19,195,18,162,14,247,5,19,2,95,4,83,7,202,9,248,10,112,14,66,23,84,22,175,4,2,253,217,10, +213,16,234,3,125,253,147,4,232,6,80,3,34,8,247,17,142,14,3,255,228,249,219,1,81,1,49,250,209,0,49,10, +64,3,77,253,168,5,166,7,185,252,215,247,29,251,122,252,113,254,227,0,111,252,226,245,134,246,139,251,191,255,102,3, +180,4,97,0,31,249,82,246,255,251,191,4,199,4,161,248,20,238,8,242,100,251,178,252,124,252,41,255,75,247,113,234, +155,241,137,2,150,255,1,246,154,253,174,3,12,250,83,246,254,251,157,248,36,245,170,254,107,1,199,243,169,238,30,251, +211,1,9,249,154,242,121,248,11,253,24,246,226,241,123,254,44,11,32,2,95,241,188,241,250,249,200,246,225,241,84,248, +36,254,232,249,194,245,247,246,55,248,242,248,174,249,211,247,197,245,158,246,222,248,147,252,159,255,42,252,129,246,196,247, +81,252,211,252,108,248,72,239,191,234,34,247,175,3,30,247,5,228,254,234,95,254,34,0,117,246,165,244,97,247,182,243, +39,237,132,238,65,248,10,255,54,252,255,244,239,239,47,240,202,245,220,248,73,243,144,238,237,242,125,246,130,242,59,241, +208,245,238,244,87,240,80,246,85,255,2,248,26,237,100,246,40,2,227,247,12,238,200,249,35,3,174,252,72,250,36,254, +178,251,46,249,197,249,23,247,253,249,0,3,197,253,112,239,249,241,72,0,178,5,228,1,175,249,242,240,7,242,105,250, +74,254,140,1,156,6,131,2,190,250,23,255,189,6,94,2,196,250,64,253,130,5,253,8,124,5,233,1,190,4,22,10, +53,9,199,1,212,252,176,0,247,5,104,2,189,253,58,3,208,7,21,1,145,253,70,6,143,13,138,11,58,6,155,3, +183,7,160,13,151,10,237,5,34,11,123,12,130,0,22,250,254,0,39,5,124,1,59,253,121,250,255,250,63,254,249,254, +246,254,126,255,94,251,185,249,59,2,120,4,42,248,53,244,107,2,103,14,93,13,239,7,226,3,32,1,32,255,205,253, +85,255,245,3,146,8,218,10,47,7,124,255,138,0,50,9,73,6,95,250,126,250,214,3,248,7,129,8,250,4,188,250, +174,247,233,0,198,6,167,7,224,11,200,9,201,253,125,249,69,0,208,3,204,3,2,8,4,12,186,9,63,4,200,255, +43,254,172,2,50,12,88,15,242,6,5,2,204,8,202,10,15,4,228,6,194,13,212,5,37,255,168,9,0,14,226,2, +65,0,228,5,131,1,159,253,144,6,22,14,202,12,205,11,118,12,2,12,149,11,174,8,110,3,116,1,60,1,239,255, +248,3,113,13,238,14,183,5,15,4,183,18,53,28,195,15,4,2,191,6,124,12,205,5,37,3,30,8,33,7,32,7, +17,14,37,9,208,249,100,252,189,13,238,16,51,6,151,0,232,1,231,5,172,13,37,18,80,9,80,249,177,244,137,3, +158,20,71,15,192,248,226,238,40,248,148,1,40,8,141,15,222,8,56,249,87,255,105,14,172,2,121,246,215,9,172,20, +74,2,33,253,151,2,72,242,3,240,239,16,92,23,185,241,165,221,200,245,220,39,124,83,46,58,37,217,71,163,4,214, +5,23,118,22,57,241,149,218,201,231,181,16,237,38,212,11,152,229,106,223,79,241,52,8,184,19,161,255,214,230,137,248, +153,16,116,247,116,221,220,249,203,30,66,25,123,241,101,202,245,223,248,51,88,80,197,8,59,214,82,235,91,254,23,13, +163,49,141,47,252,250,200,223,133,231,48,235,52,243,248,2,123,4,26,250,216,236,212,232,128,4,191,35,87,19,80,236, +188,222,148,227,85,246,154,24,122,32,16,3,45,245,123,254,246,249,245,246,111,12,35,20,208,248,228,231,230,252,101,21, +250,16,51,250,172,233,106,236,246,252,231,254,208,228,81,215,130,243,245,12,190,4,60,1,26,12,129,1,10,242,4,2, +44,23,121,21,90,13,166,7,246,6,95,20,107,24,107,1,17,246,54,8,207,16,189,5,96,2,0,8,72,8,170,255, +240,240,177,236,73,250,141,1,148,252,153,255,126,0,134,244,71,248,254,12,14,16,179,6,95,4,245,251,236,243,161,1, +119,11,210,251,146,243,128,2,91,14,2,16,216,15,151,7,144,252,155,255,108,8,77,5,215,253,148,0,195,6,89,5, +134,4,52,11,193,10,240,254,91,253,202,9,115,15,34,12,62,10,91,7,180,5,137,10,158,11,88,6,200,4,161,3, +109,2,223,9,131,10,118,248,162,240,111,255,141,5,88,249,167,241,78,245,33,251,232,251,54,245,211,240,210,243,200,242, +248,240,34,249,163,251,165,242,27,245,21,255,152,251,56,248,105,252,36,243,192,233,234,252,99,17,170,7,79,251,61,2, +90,3,232,245,35,243,154,254,184,3,159,1,7,5,13,9,157,3,206,250,143,247,20,250,0,0,214,2,245,253,2,251, +200,255,79,2,44,3,196,10,68,14,65,7,104,3,0,0,192,245,230,251,39,22,108,29,7,14,251,9,9,9,6,246, +229,235,189,250,18,5,137,3,240,9,183,16,254,9,170,1,29,255,232,253,217,2,123,12,129,12,238,3,103,1,56,8, +152,17,55,22,71,17,197,7,135,3,94,5,163,8,242,10,243,10,196,11,34,18,198,22,54,14,135,255,241,252,196,7, +121,16,224,15,12,13,179,11,39,8,130,3,191,2,200,6,164,13,140,16,69,7,110,250,44,252,42,8,197,11,211,7, +122,7,77,7,146,1,175,253,6,2,111,8,203,9,60,8,126,7,175,6,149,6,247,7,227,5,112,1,146,2,9,4, +3,254,75,251,11,0,30,254,43,249,228,255,21,6,127,254,221,248,40,254,211,0,39,253,250,250,41,250,167,249,5,253, +170,1,191,255,131,247,86,244,47,251,7,254,168,243,99,235,71,240,208,245,217,243,223,241,94,243,162,246,145,251,167,253, +242,248,44,243,27,243,228,246,190,246,164,239,247,235,147,244,193,253,93,251,176,246,25,247,177,244,67,241,25,247,27,255, +173,252,68,245,211,242,17,243,42,241,103,239,96,242,94,248,52,249,189,243,151,241,76,244,127,243,106,241,38,244,176,244, +121,240,85,242,205,249,48,251,10,246,156,240,1,238,1,241,93,245,9,243,210,237,182,235,246,234,29,238,161,244,248,242, +171,234,79,233,137,237,213,240,194,243,194,241,181,235,49,236,108,238,243,234,89,236,117,241,61,237,114,233,189,238,123,239, +26,237,36,243,151,246,148,242,108,244,111,246,125,238,239,235,118,245,188,248,102,240,73,235,164,239,82,244,95,242,7,241, +147,246,206,247,108,238,99,233,60,239,222,243,73,243,34,243,10,245,247,247,221,245,102,236,241,234,119,246,177,248,110,237, +104,236,113,246,28,248,77,244,231,246,235,250,76,251,115,251,67,250,96,246,7,246,77,252,97,1,145,253,36,247,239,249, +93,1,129,0,128,252,86,255,10,0,12,250,137,251,229,3,229,2,221,252,130,253,228,252,153,248,241,252,174,5,2,6, +106,3,31,4,69,2,247,253,4,252,168,251,13,253,118,255,208,254,160,253,92,255,157,0,130,1,24,3,16,1,207,255, +235,5,211,8,50,1,253,250,39,252,9,254,152,255,158,1,12,1,168,255,171,1,201,6,63,10,219,4,136,247,211,239, +131,247,139,9,179,22,134,18,189,6,175,6,195,9,172,255,249,248,197,3,116,12,73,8,164,3,158,1,180,254,208,250, +82,243,8,242,34,4,130,21,119,12,63,248,142,240,75,242,229,247,0,3,229,10,237,5,93,251,89,249,202,255,223,0, +105,249,29,247,9,255,162,7,170,12,20,14,214,8,182,1,242,1,92,8,91,14,243,15,235,11,151,7,173,8,92,11, +76,12,118,14,234,15,108,13,87,11,130,10,155,6,15,4,253,7,122,11,252,10,157,12,69,13,178,6,41,4,69,14, +29,21,56,13,223,3,246,4,210,12,242,19,226,20,34,19,65,23,2,25,229,13,56,6,177,13,167,17,185,10,253,7, +134,9,114,8,237,10,30,15,0,13,68,10,77,9,114,4,152,2,47,9,23,14,104,14,21,16,154,16,146,14,53,14, +233,13,236,13,89,18,139,20,16,15,188,11,95,14,203,14,171,14,144,18,44,19,40,15,72,13,245,8,227,1,16,6, +35,15,7,10,99,3,212,9,244,9,93,1,55,7,136,14,227,2,110,254,91,13,85,17,153,8,63,9,121,11,112,8, +116,11,184,12,163,5,118,6,164,13,161,12,78,11,87,13,246,7,81,3,159,8,39,10,205,4,91,6,77,12,240,11, +212,8,55,8,136,6,241,2,60,4,54,12,74,16,69,11,42,8,50,11,114,11,228,10,107,15,3,16,56,9,232,5, +119,7,12,8,253,8,205,9,203,8,196,9,34,10,37,6,48,7,116,14,224,11,142,255,204,250,217,253,21,255,111,2, +251,8,71,8,2,2,163,1,43,5,48,6,55,7,129,6,171,0,210,255,160,8,236,11,145,3,136,252,233,250,141,248, +237,248,220,255,41,5,212,2,181,252,64,246,226,241,130,244,74,251,77,251,46,247,149,253,102,9,95,7,93,252,172,250, +146,254,249,253,148,254,106,2,26,1,70,251,214,249,48,255,15,4,235,1,214,255,6,4,68,0,144,239,189,233,28,246, +234,254,56,255,20,1,84,0,18,251,35,249,133,248,93,245,156,244,96,249,13,2,225,6,195,255,67,247,30,249,126,250, +129,248,245,253,133,255,58,246,221,248,127,5,124,1,147,247,108,250,16,248,71,236,9,238,251,249,219,254,63,1,94,3, +176,253,53,247,117,248,102,251,123,252,151,254,200,255,157,254,204,254,18,1,211,1,182,0,189,0,87,0,84,252,48,251, +127,3,116,11,171,8,91,2,156,0,98,0,142,255,163,254,93,253,247,254,149,1,64,253,255,248,164,0,126,7,55,1, +242,253,92,5,176,6,144,2,138,7,43,13,184,9,144,7,36,8,142,5,192,7,209,12,151,7,136,1,224,4,74,3, +124,252,233,0,24,8,147,4,181,0,182,1,222,1,124,5,233,11,97,11,207,6,216,4,141,3,78,3,223,3,43,3, +113,6,240,11,193,8,37,2,28,3,215,5,144,6,32,11,21,16,93,14,2,7,84,255,15,255,136,4,144,2,201,252, +37,1,117,5,52,255,177,253,106,4,74,2,176,248,217,244,229,245,12,249,107,255,250,3,194,3,45,3,38,3,208,254, +142,245,236,241,148,251,253,3,143,252,2,244,4,248,41,250,178,243,152,243,191,250,117,251,109,246,174,245,159,249,3,250, +122,242,160,236,189,243,48,254,81,252,113,245,227,246,8,250,230,246,82,245,132,248,72,247,50,242,51,244,86,251,14,252, +184,246,218,243,12,245,226,246,126,247,185,247,183,248,109,246,73,238,33,234,253,239,133,244,3,243,162,245,243,250,81,249, +197,245,14,246,229,243,189,240,245,244,105,250,35,248,12,246,152,249,197,246,246,235,203,236,158,251,53,0,64,245,23,240, +143,245,26,247,237,242,119,241,194,243,0,247,183,249,240,250,5,250,184,245,190,241,75,245,228,251,117,252,137,251,178,252, +190,248,139,242,228,243,24,249,89,251,199,251,111,250,234,246,209,243,147,243,185,248,45,254,154,248,65,238,221,238,118,244, +53,244,146,244,87,247,51,247,149,249,43,254,27,250,202,241,211,240,255,243,160,244,80,242,101,239,43,242,142,250,28,253, +17,247,141,240,80,236,158,236,19,244,139,249,10,247,167,245,227,245,170,238,120,233,202,243,158,254,244,247,35,238,221,242, +107,250,200,247,17,244,144,245,102,246,135,247,209,251,182,253,31,252,183,251,206,251,178,250,223,248,209,246,57,248,196,252, +50,254,18,255,130,0,229,247,177,237,179,246,151,3,95,253,23,247,22,0,66,4,102,254,172,252,61,251,215,247,87,253, +214,3,106,255,159,252,133,1,98,0,116,250,222,252,76,4,176,7,74,7,228,4,2,4,145,8,186,11,197,6,132,1, +216,2,50,7,200,11,0,13,123,7,114,4,72,9,103,9,95,3,27,4,146,6,6,4,244,8,30,17,20,9,184,252, +136,0,48,9,150,10,247,10,200,10,253,8,92,10,30,10,58,4,5,1,223,3,35,9,230,12,193,7,199,254,104,2, +70,11,194,7,240,1,235,4,132,5,64,2,146,4,19,7,153,4,215,4,151,9,156,12,176,10,9,4,183,253,64,254, +142,4,187,10,54,12,146,8,178,5,90,6,181,5,192,4,213,6,137,5,82,0,126,1,184,6,218,4,39,254,159,250, +104,251,48,255,79,3,154,5,152,7,205,7,249,3,4,2,149,5,116,8,252,7,200,7,14,7,247,3,229,2,16,7, +121,10,9,6,214,254,186,255,112,7,70,12,89,11,10,7,144,3,87,7,111,14,242,11,149,3,211,4,17,12,104,11, +99,6,58,6,12,7,32,5,46,5,74,7,61,7,141,6,230,6,135,6,39,7,176,9,31,11,229,13,84,18,52,14, +149,3,208,2,146,8,79,6,235,2,50,7,126,10,93,10,47,11,227,7,122,1,204,1,166,6,34,8,58,5,83,255, +78,253,148,3,165,5,19,254,67,253,82,6,129,8,47,3,0,4,124,10,36,11,3,3,81,251,235,251,69,2,209,10, +35,17,210,9,40,251,141,255,128,17,176,15,163,253,82,247,139,251,178,254,59,2,123,0,1,246,198,242,49,254,235,9, +39,11,45,5,156,0,21,2,39,5,72,5,189,2,192,251,181,245,235,253,241,11,83,8,174,249,58,249,216,2,197,1, +198,250,116,1,101,18,200,21,92,5,136,247,18,251,65,2,107,1,110,1,222,4,35,0,237,244,79,241,57,246,100,252, +89,2,9,4,182,255,9,2,129,14,3,19,46,10,63,3,122,3,104,7,78,15,159,18,229,8,63,253,19,252,241,3, +123,14,142,15,186,1,179,248,70,1,122,9,184,7,17,6,164,1,114,247,70,247,88,1,176,0,152,246,190,247,200,2, +227,5,55,1,110,1,84,4,61,1,65,255,167,5,116,10,225,7,148,5,90,4,45,1,204,0,190,2,109,1,179,255, +38,255,223,251,21,249,85,249,211,247,0,247,125,251,222,253,160,249,97,246,255,247,203,251,186,0,164,4,125,5,88,6, +20,8,143,5,177,254,58,251,190,253,129,0,223,1,150,4,204,4,52,255,63,251,38,254,29,3,7,6,167,4,192,254, +149,252,83,1,81,2,125,254,51,0,249,2,211,253,167,249,81,253,28,255,165,251,164,252,162,3,102,6,76,2,127,0, +69,3,236,2,51,1,241,4,213,6,101,1,205,255,187,3,19,0,46,247,79,246,197,250,233,250,3,248,94,247,114,249, +181,251,119,252,71,252,162,251,110,252,237,2,29,11,51,9,151,254,159,249,112,253,204,0,129,0,172,0,253,1,209,1, +50,1,167,2,141,3,13,2,56,2,19,3,153,255,95,253,1,2,219,5,150,5,125,6,85,5,204,255,170,254,83,2, +136,2,74,1,143,2,73,3,52,4,58,6,84,4,10,0,220,255,39,1,110,255,123,254,161,1,9,5,194,3,89,255, +38,254,82,0,159,255,165,252,197,252,36,254,253,253,161,254,56,254,73,251,46,254,106,7,152,7,8,253,188,249,108,0, +123,3,151,3,20,6,29,3,145,253,95,3,147,10,116,2,233,248,168,254,210,8,68,10,176,4,151,254,144,254,94,2, +4,1,70,255,239,3,223,4,94,0,124,1,165,1,247,249,221,248,175,255,112,255,75,252,1,254,12,253,237,251,99,0, +38,254,224,244,192,247,109,4,77,8,241,3,247,255,69,252,214,250,31,252,145,248,203,241,146,243,158,252,31,0,22,252, +28,249,183,250,216,253,159,255,33,255,193,253,62,253,255,251,91,249,241,248,100,250,232,248,196,246,208,249,168,254,55,254, +252,249,205,248,159,251,52,252,25,249,232,249,8,255,68,254,14,248,204,246,167,249,26,251,127,253,95,254,31,248,160,243, +63,250,186,1,167,254,39,248,205,248,70,253,151,253,193,251,67,253,141,254,122,251,118,249,230,250,57,249,145,244,24,245, +57,251,162,255,105,254,118,249,229,245,65,247,186,250,183,251,55,251,48,252,163,252,166,249,216,246,95,248,147,249,204,245, +205,242,151,245,149,249,114,250,133,248,58,245,33,244,67,246,59,247,166,247,141,250,136,249,63,242,149,240,15,248,85,252, +243,248,185,245,46,245,58,243,59,240,237,240,58,244,226,242,98,238,241,240,221,247,123,246,200,239,26,239,112,241,229,240, +120,241,242,242,166,240,141,239,104,244,213,247,219,244,244,240,86,239,67,239,85,243,10,250,180,250,23,245,242,242,33,246, +46,248,201,247,14,247,187,245,216,244,228,245,196,247,210,249,216,250,220,247,222,242,88,242,130,247,141,252,74,251,4,245, +192,242,202,246,164,248,123,247,46,250,91,252,230,247,164,244,99,247,59,250,1,253,193,0,97,254,159,247,195,248,88,1, +244,5,159,3,128,254,78,250,193,250,205,254,240,255,213,253,175,254,57,2,168,2,96,0,240,255,203,1,138,4,39,7, +82,6,112,1,160,254,19,1,175,4,184,6,130,7,157,6,89,5,63,5,212,3,90,0,220,254,79,1,184,5,62,8, +170,4,16,254,131,253,9,2,227,2,85,1,122,2,242,1,164,253,196,251,49,252,241,250,102,253,47,6,26,10,207,2, +41,249,242,245,120,251,77,8,7,18,227,13,250,2,178,253,207,251,179,250,68,0,53,7,240,3,27,254,135,2,219,8, +233,4,71,253,6,253,205,3,94,11,218,12,244,3,176,247,71,246,164,1,39,12,24,12,27,5,28,254,13,251,39,254, +49,5,72,10,173,10,42,7,253,1,6,0,124,3,237,6,147,5,74,2,194,2,64,9,97,16,43,15,142,7,219,4, +250,7,117,8,233,5,188,5,240,8,231,12,20,12,83,4,92,0,178,7,55,14,57,11,206,9,228,14,119,15,24,10, +228,8,233,11,226,12,200,13,254,16,55,17,25,12,2,8,112,9,160,12,233,12,7,11,152,9,119,9,7,11,70,13, +194,12,211,8,136,5,193,4,165,4,151,4,202,3,194,0,201,254,59,1,159,3,58,3,56,5,82,9,190,8,199,4, +187,2,140,1,17,2,223,7,241,12,171,9,70,3,114,1,17,3,240,4,92,5,118,3,80,3,178,8,117,13,1,10, +141,2,111,1,122,8,41,14,7,11,175,5,22,7,170,9,36,6,194,3,46,7,36,7,165,2,217,4,115,11,158,9, +65,1,109,253,231,255,34,5,168,9,221,8,12,5,1,6,121,9,90,8,223,5,212,5,140,3,92,255,238,255,43,4, +230,6,173,8,43,10,14,9,225,5,121,3,151,3,220,5,74,6,236,2,220,1,211,6,54,11,233,10,205,10,97,12, +45,11,124,7,160,6,133,10,232,14,146,13,216,6,131,3,8,7,101,8,89,3,9,2,46,9,93,13,212,7,215,1, +77,2,113,3,89,0,120,252,14,252,173,255,48,4,35,4,138,255,91,253,240,254,242,254,0,255,35,3,134,4,160,254, +222,251,211,1,19,6,118,3,53,1,117,1,224,255,233,252,94,251,63,252,108,0,76,5,9,6,132,3,89,0,141,251, +192,248,245,253,131,5,63,5,58,255,139,251,244,251,242,253,240,254,11,255,203,1,33,5,183,1,252,251,241,254,135,4, +169,0,209,250,222,253,193,1,202,254,59,253,110,1,45,3,99,255,96,252,253,252,45,254,63,254,123,254,146,255,12,0, +120,255,141,0,204,3,76,4,65,0,218,253,148,0,148,2,72,0,51,0,205,5,241,7,143,0,140,249,46,252,50,2, +213,3,127,3,111,3,96,2,73,2,25,3,188,0,127,254,29,2,106,5,217,1,70,254,118,0,27,3,52,2,173,255, +185,253,118,254,159,0,58,255,211,252,13,0,237,3,110,1,153,254,237,255,189,255,96,254,143,0,64,1,44,253,7,252, +128,255,249,255,217,252,153,251,201,253,195,1,155,2,161,252,148,248,113,255,68,6,152,0,94,248,104,249,50,253,117,253, +247,254,213,1,102,0,79,252,253,250,206,251,44,251,245,248,138,248,160,251,180,253,153,250,206,247,111,251,148,255,209,253, +51,252,161,255,12,1,246,252,96,251,102,255,120,1,75,254,28,251,34,251,224,252,100,254,8,254,0,253,110,255,48,3, +55,0,32,248,216,245,146,250,42,253,28,251,87,249,161,249,97,250,206,249,254,246,224,245,29,251,54,1,71,255,7,249, +128,248,147,253,220,0,168,255,185,252,3,251,235,250,250,250,2,251,194,251,154,251,133,249,251,248,14,252,128,254,124,252, +25,249,15,250,96,255,162,2,113,0,162,253,239,253,54,254,143,253,205,254,132,255,46,253,2,253,114,0,162,0,250,253, +71,255,103,1,70,254,154,251,98,255,136,3,225,1,9,254,30,253,161,254,185,255,61,255,24,253,43,249,59,246,239,248, +77,254,94,253,150,247,22,247,111,251,162,252,67,251,180,250,220,248,23,247,97,249,87,252,67,252,191,251,70,251,253,249, +0,251,119,252,45,249,240,246,114,251,96,252,50,244,245,240,23,249,73,254,185,248,190,242,54,244,194,248,132,250,91,249, +39,248,216,247,152,246,135,244,17,245,165,248,54,250,155,246,142,242,172,244,85,250,171,250,61,246,4,246,121,249,85,248, +64,244,74,244,150,246,67,247,233,247,249,247,78,246,53,247,86,250,77,248,72,242,128,240,167,242,235,244,230,248,72,252, +65,249,229,244,244,247,26,253,2,251,156,246,226,248,64,253,142,250,179,244,219,245,89,252,136,254,114,251,223,248,129,247, +40,246,53,247,171,249,31,249,78,247,140,248,142,250,104,250,112,250,35,251,237,249,129,248,50,250,147,253,51,0,167,1, +76,0,231,251,164,249,157,252,171,255,26,254,98,251,162,252,115,1,237,5,72,6,36,2,230,254,139,0,213,1,142,254, +114,253,47,2,43,4,53,0,179,254,154,0,234,254,145,252,31,0,187,4,200,4,235,3,237,3,16,2,165,0,17,3, +24,6,233,5,11,3,12,255,16,252,100,252,6,255,116,1,32,3,101,3,246,0,43,253,221,251,68,255,126,4,236,5, +185,3,245,3,229,6,185,6,233,3,82,3,16,4,37,4,44,5,219,5,75,4,89,4,100,7,32,8,128,5,221,3, +43,4,22,5,137,5,29,3,73,255,137,255,156,2,245,2,34,2,97,3,130,4,206,4,92,5,208,3,217,0,31,1, +57,3,34,4,93,7,177,12,231,12,226,7,34,4,198,2,93,2,167,3,72,5,178,5,255,5,81,5,73,3,169,3, +137,5,196,3,155,1,205,4,127,8,19,7,230,3,83,2,245,2,101,7,170,11,181,8,99,2,229,0,225,1,216,1, +228,4,152,9,219,7,7,2,57,2,229,7,147,9,146,4,63,255,95,255,195,3,198,6,104,6,46,6,195,6,237,3, +34,255,76,0,232,6,115,8,80,2,125,253,68,254,160,0,203,2,122,4,250,2,80,0,108,1,16,3,15,1,14,1, +162,5,72,7,85,5,215,6,157,8,65,3,219,251,37,250,148,252,17,1,35,7,239,8,225,3,92,0,220,3,115,7, +38,4,220,253,211,252,98,1,81,3,224,255,195,0,132,11,54,20,21,14,23,255,179,246,188,249,11,0,130,1,183,255, +226,0,151,4,18,6,244,6,181,10,103,11,195,2,202,248,90,249,132,1,113,5,230,1,19,253,58,252,103,255,214,2, +168,3,187,4,4,9,248,10,158,5,130,255,99,254,124,253,6,252,206,255,135,4,129,3,212,4,23,13,139,14,32,4, +116,253,143,2,232,9,89,10,186,1,74,246,56,246,167,2,13,10,100,7,188,6,148,6,20,254,118,247,94,253,125,5, +161,6,199,4,149,0,170,249,173,248,178,0,85,7,25,5,239,253,205,249,160,252,211,1,249,2,200,1,192,0,184,252, +110,249,108,255,92,8,236,7,21,2,72,0,105,1,124,3,189,6,35,6,104,1,32,2,38,9,95,11,63,6,51,2, +248,2,248,4,137,4,205,1,88,1,88,5,109,7,60,3,60,255,164,255,187,254,133,251,194,253,196,4,179,5,166,254, +141,249,189,250,143,252,21,252,25,252,12,253,119,253,171,254,97,0,163,254,247,249,122,248,200,251,9,255,26,255,55,253, +90,251,240,250,255,252,10,1,123,4,93,4,47,1,60,255,8,0,82,255,12,251,182,248,138,253,209,5,222,8,65,4, +186,254,17,254,125,255,83,255,237,255,113,2,46,3,217,1,209,1,104,2,218,1,151,2,31,5,92,5,110,2,234,255, +40,255,174,254,55,254,25,255,69,1,145,1,219,253,18,250,125,250,41,252,68,252,205,254,248,3,81,4,184,255,140,255, +49,5,193,7,79,4,66,1,169,2,93,6,80,9,174,9,165,6,183,2,222,2,136,7,161,10,213,8,144,6,101,7, +136,8,137,7,216,5,146,4,56,4,146,5,187,6,168,5,169,4,161,4,226,1,163,253,47,254,136,2,3,5,239,6, +68,10,119,9,232,2,130,254,20,0,58,3,92,5,107,6,54,5,186,2,14,1,39,255,224,253,201,255,239,0,1,254, +129,253,18,2,34,3,219,254,215,253,46,1,169,2,173,1,14,0,195,253,158,253,161,0,50,2,90,2,88,5,171,7, +198,4,127,1,244,0,7,255,250,252,39,255,114,0,228,251,144,248,13,252,127,255,22,253,148,249,68,249,90,248,88,244, +5,243,212,248,108,255,170,254,97,249,140,247,89,249,196,249,146,248,229,248,166,250,187,251,192,251,218,250,7,249,47,248, +255,249,74,252,86,252,197,250,184,248,226,246,237,247,28,252,71,254,68,252,72,250,110,250,81,251,235,252,53,254,111,253, +31,253,168,254,58,254,4,252,106,252,38,254,125,254,237,254,56,254,48,251,53,251,101,254,225,253,193,252,197,0,221,1, +194,251,248,248,80,251,116,250,206,249,6,254,227,254,8,251,125,251,8,254,107,252,207,251,56,253,194,249,17,246,4,250, +26,254,144,251,201,249,119,252,185,253,182,252,160,252,20,252,134,250,25,251,56,253,185,252,232,248,50,245,214,244,191,247, +102,250,227,249,108,247,238,245,100,246,210,247,119,248,64,247,174,245,152,246,133,248,209,246,62,243,157,244,160,250,0,254, +189,252,209,250,37,249,205,246,80,246,18,249,140,251,230,250,68,248,165,245,250,243,69,243,150,243,16,246,233,249,184,250, +67,247,83,244,76,244,226,244,14,246,201,248,225,249,92,247,36,245,160,246,167,249,43,250,197,247,165,246,35,249,182,250, +235,247,151,245,109,247,73,249,181,248,198,248,218,249,144,249,186,248,167,248,38,248,248,246,5,246,165,244,143,242,18,242, +36,245,89,249,223,249,39,247,119,247,5,252,64,254,131,251,69,248,179,247,26,250,13,254,153,254,158,250,161,249,22,254, +44,0,84,253,220,250,28,250,137,250,128,253,127,255,37,253,167,251,194,253,118,254,195,253,30,255,97,255,145,253,4,255, +118,2,68,2,246,255,244,253,56,251,1,251,59,255,187,1,167,0,110,1,12,3,61,1,167,255,220,1,9,4,242,2, +197,255,36,253,180,253,118,0,148,1,75,1,33,1,141,255,234,254,167,2,208,4,72,1,178,255,203,1,211,255,89,253, +26,3,215,9,116,6,174,251,139,242,78,244,178,5,65,24,160,23,234,9,238,1,89,254,178,248,4,251,100,8,199,14, +217,5,16,254,198,2,108,7,47,0,187,248,21,0,146,13,161,15,56,6,193,250,55,242,150,243,192,1,9,14,151,11, +134,3,2,1,58,1,99,1,125,2,212,1,108,0,10,3,197,5,85,4,238,4,111,8,235,5,185,255,18,1,154,7, +74,9,38,7,93,7,38,9,81,8,194,4,188,3,201,8,211,12,202,7,186,1,60,6,184,13,46,11,10,4,179,3, +255,7,249,9,111,9,89,8,213,7,232,8,159,9,9,8,158,7,73,11,67,15,253,14,117,10,6,5,234,3,232,8, +109,13,93,11,137,6,183,4,198,4,12,4,42,3,70,3,157,4,236,5,202,4,160,2,155,3,76,6,94,6,116,5, +44,6,4,6,206,4,12,6,13,8,58,7,131,6,141,8,150,9,12,8,26,8,227,10,249,11,205,8,149,4,230,3, +84,6,127,7,255,6,121,8,143,10,9,8,195,2,6,2,118,6,249,9,153,9,152,7,240,5,109,4,44,3,69,3, +118,4,92,5,8,7,56,11,239,13,131,9,184,1,163,255,90,3,150,5,78,5,251,5,207,5,57,3,175,1,237,1, +92,1,73,1,103,3,229,4,174,4,51,5,94,5,142,2,133,255,83,0,31,4,190,7,188,8,33,6,207,2,203,2, +24,5,221,6,224,8,163,10,107,8,222,3,16,3,238,4,36,4,31,3,152,6,253,9,234,6,11,1,172,255,61,2, +25,3,206,0,10,255,225,255,202,0,10,0,47,0,253,1,117,1,207,253,143,252,102,0,230,4,131,5,157,2,186,255, +249,255,140,2,84,3,245,0,165,254,179,254,40,0,161,1,34,2,147,0,104,253,101,251,245,252,152,0,247,1,142,0, +233,0,197,3,187,3,173,255,80,253,107,255,163,3,150,7,173,8,45,5,102,0,85,254,142,254,131,0,172,3,149,3, +95,255,74,254,120,2,19,4,39,0,254,252,23,254,148,0,116,1,128,0,7,0,157,1,155,2,200,0,202,254,117,254, +205,254,3,1,239,4,155,5,35,2,102,255,206,253,67,251,254,250,135,254,2,1,229,0,137,1,85,2,139,0,223,253, +133,253,164,255,214,1,153,1,187,255,55,255,123,255,169,254,233,254,1,1,109,1,10,0,207,255,71,255,112,253,57,254, +28,1,7,1,151,255,130,0,102,0,206,253,224,253,166,0,250,0,107,255,14,255,6,255,43,255,156,0,170,1,152,1, +220,1,84,1,109,255,237,254,64,255,255,253,242,253,34,0,253,255,147,254,157,0,237,1,17,254,7,251,78,252,242,252, +69,252,19,253,189,252,47,250,135,249,243,250,200,251,107,252,6,252,112,249,150,248,227,250,104,251,208,249,72,250,45,251, +94,249,153,247,77,248,250,249,42,251,45,251,162,250,104,251,241,251,17,250,146,249,136,252,64,253,194,249,158,247,201,248, +239,250,38,253,97,253,173,250,106,249,24,251,159,251,11,251,150,251,232,250,61,249,34,250,213,250,149,248,175,248,115,252, +137,253,208,251,231,251,160,252,120,252,41,253,160,252,59,249,232,247,81,250,79,251,243,249,156,249,138,249,103,248,177,248, +167,250,148,250,126,247,16,245,222,246,105,252,28,1,218,0,186,252,127,249,165,249,14,251,45,251,98,251,202,253,61,0, +14,0,68,255,231,255,120,255,175,252,18,251,2,253,207,255,213,255,133,253,99,252,213,253,210,254,101,253,140,252,190,253, +181,253,203,251,51,251,189,251,75,251,192,251,147,254,2,0,189,253,126,251,234,251,28,252,91,250,219,249,188,251,78,252, +247,250,178,251,103,254,11,255,197,253,18,253,207,251,63,249,70,248,6,250,57,252,84,253,16,253,112,251,121,249,67,248, +125,248,187,250,248,252,191,251,212,248,84,249,190,252,118,254,159,253,68,252,83,251,229,250,71,250,241,248,27,249,35,252, +27,254,218,251,242,248,119,249,234,251,27,253,106,252,252,250,247,249,71,249,68,248,101,248,153,251,243,254,113,253,218,248, +23,248,104,252,51,0,48,0,125,254,149,253,186,253,231,253,229,252,136,251,53,252,210,253,173,252,28,250,26,251,46,255, +68,1,148,255,25,252,38,249,178,248,57,251,62,255,205,2,29,3,186,254,170,250,106,252,95,255,95,253,170,251,195,255, +252,2,214,255,131,252,142,253,2,255,50,255,149,0,12,2,53,1,24,255,203,252,29,251,175,252,179,0,245,1,61,0, +73,0,188,1,4,1,55,255,208,253,149,251,100,251,132,0,208,4,91,2,149,255,84,2,28,4,115,0,188,253,87,255, +185,0,157,0,152,1,174,2,34,2,162,1,91,2,248,2,154,2,69,1,244,254,254,252,192,253,216,0,61,3,224,3, +142,3,186,1,89,255,32,0,148,3,207,4,62,3,109,2,210,2,108,2,30,1,185,0,56,2,78,3,26,2,248,1, +141,4,228,4,101,2,129,2,6,4,253,2,194,2,150,4,186,3,180,1,14,3,129,4,59,3,8,3,168,4,247,4, +155,4,113,5,214,5,123,4,81,3,212,3,102,4,110,4,235,5,89,7,120,5,4,4,117,6,252,6,154,3,42,3, +24,5,121,3,142,1,208,2,32,3,142,2,75,4,46,5,100,3,180,2,180,3,41,4,239,3,47,3,158,2,42,3, +175,3,109,4,66,6,226,5,218,2,87,2,237,3,123,3,6,3,18,4,250,3,178,3,140,4,103,4,134,4,31,6, +1,5,223,1,241,2,104,6,218,5,184,2,111,2,206,4,255,4,40,2,228,1,8,5,163,4,125,1,40,3,253,5, +221,2,231,255,254,2,120,5,207,2,15,0,3,1,149,3,0,5,143,5,47,6,115,4,132,0,115,0,208,4,62,7, +25,6,4,2,246,250,150,249,111,5,248,18,47,19,19,9,107,0,76,255,186,2,133,1,227,251,234,254,133,10,222,15, +219,16,238,21,47,15,70,246,221,235,226,252,26,8,218,0,203,253,161,5,77,15,15,18,112,2,188,238,160,245,154,9, +126,12,201,9,102,11,139,0,166,241,55,244,78,251,135,248,122,251,45,12,149,23,106,14,186,252,165,251,234,12,221,19, +15,1,231,236,67,242,4,6,144,11,175,2,66,1,236,5,118,253,13,240,91,244,122,3,179,9,20,8,38,6,3,4, +19,4,128,7,25,9,137,6,165,0,47,248,35,243,173,247,82,2,172,10,165,10,173,1,200,248,43,251,217,6,115,14, +55,10,225,255,81,250,58,254,8,7,65,11,190,5,94,253,17,253,98,3,184,4,219,254,187,252,56,2,69,4,194,254, +78,252,101,255,72,0,215,0,132,4,109,4,50,0,4,0,96,2,135,1,81,255,221,253,37,253,23,254,104,254,147,252, +123,252,129,254,182,255,54,2,25,6,195,5,225,0,101,252,191,250,249,251,229,252,144,250,244,249,94,253,4,254,152,253, +97,3,47,7,55,1,242,252,53,0,132,0,86,253,130,255,22,4,7,5,225,4,113,4,31,2,101,1,232,2,102,1, +200,252,255,249,87,250,131,253,189,3,184,8,97,7,25,3,148,2,16,5,0,6,69,5,35,4,160,1,14,254,133,251, +171,250,243,250,73,251,194,250,22,251,54,254,30,2,69,4,51,4,37,1,237,252,119,252,39,255,226,255,85,255,250,0, +38,3,63,3,135,1,159,254,12,252,125,251,252,251,22,253,197,255,254,1,148,1,100,0,158,255,182,254,112,255,255,1, +134,2,48,0,89,254,17,254,142,254,12,0,4,1,220,254,211,251,250,252,84,1,199,2,95,0,205,254,254,254,210,253, +149,251,97,251,201,253,108,0,125,0,107,254,210,253,255,253,20,251,46,249,225,253,106,1,96,251,52,244,34,246,58,252, +242,254,94,0,244,2,119,2,187,252,196,247,7,248,32,249,218,248,88,252,28,2,133,2,212,255,241,254,15,251,97,244, +75,244,180,249,53,252,60,252,103,251,203,248,174,249,41,254,224,251,204,244,139,245,161,250,124,249,54,247,65,250,176,252, +19,251,196,248,171,246,43,246,17,250,21,255,129,255,123,251,200,247,217,248,120,253,198,254,190,250,106,247,112,248,28,251, +38,251,248,246,48,244,47,249,123,255,151,253,171,248,114,248,0,250,131,251,87,254,127,254,222,251,230,252,54,0,121,0, +30,255,169,252,208,248,117,249,54,254,107,254,9,252,1,254,19,0,121,255,58,1,235,2,95,0,58,255,218,0,144,255, +22,254,7,0,16,255,246,249,179,248,52,252,232,254,133,255,245,254,222,253,155,253,56,253,231,251,182,252,149,255,111,255, +186,251,127,249,113,251,181,255,2,2,243,255,26,253,99,253,128,254,215,253,73,253,201,253,24,254,119,254,87,255,55,0, +199,0,214,255,58,253,91,252,118,254,218,255,39,255,72,254,7,253,142,251,73,252,56,254,129,254,162,254,114,0,36,2, +235,2,76,3,88,2,16,1,223,1,4,3,17,2,194,0,16,0,32,255,68,255,141,255,18,252,174,247,177,248,97,252, +83,253,100,253,153,253,48,251,206,248,79,250,132,252,196,252,44,253,183,253,146,253,68,254,92,254,55,253,137,254,233,0, +13,0,95,255,207,0,212,254,79,251,187,253,255,1,152,0,0,253,181,251,43,251,139,251,126,253,106,254,246,253,178,253, +233,252,66,252,92,253,67,254,239,253,193,254,131,0,251,0,104,0,159,255,156,255,234,1,130,4,84,4,252,2,205,1, +132,255,102,254,243,255,231,255,57,254,220,255,128,2,85,1,67,255,197,254,51,254,76,255,16,2,214,0,128,252,209,251, +11,254,95,255,173,0,49,1,245,255,243,0,115,3,221,1,154,255,56,2,103,4,118,2,26,2,21,4,168,3,7,2, +84,1,38,0,28,0,101,1,58,255,82,252,155,0,22,8,53,9,214,3,84,251,6,244,114,248,62,9,162,19,235,12, +69,1,121,251,9,250,94,253,199,5,115,10,138,5,141,254,191,254,82,4,179,5,224,255,7,253,184,4,49,13,76,10, +11,255,71,245,236,243,235,253,109,10,79,10,153,255,101,249,161,250,141,253,95,1,28,3,204,255,134,254,103,1,57,255, +31,250,165,252,1,2,126,2,116,3,2,5,248,0,213,254,14,5,69,8,37,3,13,0,143,1,121,2,158,4,38,7, +92,4,225,0,58,3,192,5,60,4,250,2,62,2,92,0,147,0,47,2,69,1,31,1,152,4,171,6,224,5,92,6, +36,7,148,5,51,4,101,4,68,5,105,8,239,11,222,9,65,5,134,6,62,10,167,7,11,2,222,0,23,2,191,1, +96,1,198,1,127,1,26,1,112,1,242,1,130,2,185,2,244,1,87,1,140,1,56,1,126,0,246,0,78,2,142,3, +168,4,235,4,184,3,35,2,164,1,224,2,28,5,77,6,221,5,36,5,209,3,234,0,250,254,198,0,249,3,79,4, +164,1,193,255,30,1,115,3,221,2,23,0,237,255,207,3,86,7,254,6,193,4,236,2,118,0,157,254,158,1,111,7, +212,8,157,5,185,3,110,4,236,4,65,4,243,2,60,2,110,3,230,4,204,3,167,0,18,254,144,253,231,254,104,0, +17,1,98,1,166,0,68,254,134,252,212,252,7,254,83,0,146,3,253,4,181,3,174,1,162,0,37,2,213,4,22,4, +228,0,242,0,91,3,139,3,245,1,148,0,171,0,190,3,213,6,218,5,48,3,2,1,135,254,96,254,110,1,39,3, +193,2,197,1,26,255,117,254,116,2,139,2,204,252,137,252,192,1,140,2,179,0,4,0,125,253,44,253,134,2,115,4, +77,0,119,254,223,254,220,253,244,254,181,1,0,2,135,1,94,0,210,252,194,251,164,254,11,0,236,0,123,3,84,2, +39,253,131,250,22,251,0,253,6,0,242,0,54,0,132,2,209,3,13,255,70,251,17,253,248,254,57,0,2,3,104,3, +135,1,206,2,249,4,9,3,172,255,51,254,248,253,37,255,96,1,20,2,167,0,178,254,152,253,165,254,161,1,178,3, +117,2,209,254,113,252,214,253,46,0,65,255,72,253,162,255,241,4,73,6,174,1,9,253,63,253,175,255,223,0,72,2, +192,3,184,1,116,254,149,255,243,2,107,3,72,2,212,1,202,0,253,254,98,253,156,252,214,254,44,3,153,3,104,255, +203,252,20,253,166,253,228,255,45,3,127,2,56,255,244,254,55,0,246,255,248,0,149,3,191,3,6,2,120,1,234,0, +74,255,81,254,65,254,100,254,4,255,211,255,167,0,102,1,67,0,207,253,20,254,224,255,253,253,221,249,184,248,43,251, +76,255,78,2,15,0,207,249,17,247,129,250,138,254,175,254,11,253,178,253,16,0,17,0,56,253,204,250,34,250,247,250, +33,253,142,254,35,254,7,254,15,254,168,252,121,252,254,253,81,252,26,248,49,247,97,249,59,252,145,0,116,3,188,0, +39,252,141,250,229,250,108,252,219,254,236,254,186,252,114,252,200,253,218,253,83,253,3,253,67,252,103,252,32,254,166,254, +74,252,140,249,196,249,191,252,214,254,136,254,127,254,101,255,227,254,12,254,79,255,19,0,140,253,114,250,188,249,56,250, +59,250,136,250,34,252,187,253,160,253,96,253,203,254,53,255,199,252,93,251,249,252,229,253,168,252,240,251,163,252,192,253, +170,254,166,254,67,254,175,254,66,254,228,251,8,251,132,253,255,255,101,0,16,0,164,255,27,255,205,254,191,253,75,251, +193,249,80,251,130,254,255,255,64,254,32,251,3,250,32,252,86,255,221,0,0,0,85,254,167,253,204,253,64,253,170,251, +106,250,178,250,242,251,161,252,125,252,190,252,144,253,151,253,162,252,48,252,194,252,37,253,165,252,234,251,70,251,51,250, +62,249,70,250,68,253,67,255,132,254,244,252,105,252,218,251,105,250,183,249,31,251,75,253,55,254,221,253,140,253,147,253, +58,253,231,252,207,253,0,255,77,254,117,252,57,252,142,253,27,254,105,253,178,252,108,252,160,252,140,253,210,254,139,255, +33,255,163,253,29,252,171,251,235,251,46,252,254,252,12,254,167,253,64,252,36,252,31,253,88,253,73,253,54,254,252,254, +0,254,232,251,14,251,44,253,175,0,84,1,6,254,18,251,201,251,104,254,31,0,37,0,220,254,132,253,29,253,196,252, +11,252,194,252,11,255,21,0,0,255,223,253,223,253,211,254,96,0,33,1,37,0,249,254,23,255,223,255,175,0,38,1, +88,0,25,255,96,255,94,0,95,0,188,0,95,2,219,2,38,1,153,255,139,255,23,0,95,0,236,255,73,255,238,255, +61,1,51,1,248,0,196,2,216,4,178,4,109,3,136,2,204,1,175,1,125,2,197,2,23,2,134,1,48,1,82,1, +227,2,96,4,81,3,28,1,153,0,138,1,162,2,118,3,30,3,177,1,223,0,99,1,53,2,169,2,222,2,4,3, +102,3,76,4,80,5,67,5,231,3,38,3,185,3,72,3,106,1,228,0,244,1,221,2,214,3,51,4,100,2,180,0, +44,1,40,1,240,255,120,0,189,2,145,4,61,5,28,4,89,2,247,2,219,4,48,5,121,5,129,6,0,6,212,4, +160,4,154,3,241,1,171,1,196,1,244,1,36,3,248,2,93,1,63,2,28,4,1,3,120,1,0,2,219,2,244,3, +137,4,95,2,212,0,238,2,114,4,44,4,32,5,190,4,7,2,180,2,53,6,194,6,169,5,34,5,7,3,50,1, +99,2,158,3,154,3,90,4,206,4,36,4,126,3,201,1,170,255,149,0,156,3,133,5,180,5,137,3,99,0,94,0, +129,2,218,2,125,1,198,254,77,253,138,4,24,17,228,19,158,10,67,0,32,251,14,253,46,2,209,255,75,250,19,2, +138,17,243,22,242,18,164,8,229,246,169,238,142,250,9,4,240,254,56,254,201,7,245,14,64,16,164,7,26,243,178,233, +53,251,67,15,134,16,198,9,183,2,186,246,230,237,85,242,218,251,145,0,213,4,61,13,4,18,216,12,202,6,206,7, +37,6,33,252,80,247,70,252,125,254,188,255,119,10,43,18,221,6,233,243,42,235,93,239,255,253,159,14,238,17,204,8, +120,4,174,7,193,6,41,1,216,253,178,251,79,249,115,250,194,253,166,254,84,255,115,2,243,3,179,1,102,255,108,255, +115,2,170,8,179,12,18,9,87,2,103,254,140,250,39,246,135,247,129,254,19,3,52,2,19,255,199,252,121,253,190,0, +158,2,22,1,242,254,156,255,2,3,71,5,210,3,178,1,96,1,24,0,79,254,175,0,99,4,111,2,67,253,89,251, +45,252,167,253,85,0,44,2,216,1,84,3,124,6,204,3,140,251,198,248,187,253,204,255,15,252,196,250,176,252,76,252, +6,253,149,2,170,5,11,3,216,1,170,2,133,0,205,254,220,0,18,2,5,2,83,4,46,5,117,1,135,254,102,254, +144,253,73,253,69,255,214,255,48,255,83,2,135,7,134,8,189,5,1,4,32,4,53,4,101,4,50,5,205,4,65,2, +163,255,158,253,121,250,7,248,204,249,13,253,88,253,122,253,189,0,3,3,204,1,21,1,99,2,163,2,191,0,26,254, +178,252,112,254,9,1,136,255,89,251,105,250,165,252,153,253,20,253,7,254,166,0,106,2,198,1,28,0,113,255,114,255, +31,255,4,255,63,255,233,254,8,254,37,253,162,252,41,253,38,254,113,254,24,255,170,0,216,0,140,255,202,255,91,1, +86,1,76,255,231,252,23,252,139,253,180,254,50,254,195,254,93,255,229,251,15,249,240,252,43,0,24,252,255,249,72,0, +35,5,26,2,47,254,172,253,12,252,184,247,130,245,243,247,5,251,185,250,206,249,193,252,53,1,202,1,216,254,134,252, +36,252,216,251,176,250,88,250,111,251,42,251,152,249,120,251,58,255,249,252,107,246,50,245,19,249,206,250,137,250,170,251, +210,252,143,252,29,251,244,247,106,245,129,247,26,252,9,254,140,253,39,253,16,252,185,249,166,248,25,250,176,251,164,251, +104,251,130,251,10,250,62,248,147,249,226,251,29,251,14,250,214,251,128,252,29,250,183,249,69,253,106,0,116,0,60,255, +113,255,220,0,39,0,7,253,109,252,46,255,216,255,222,253,38,254,111,0,253,0,17,0,201,255,165,0,74,2,248,2, +84,1,190,255,60,0,126,0,228,254,137,253,224,253,230,254,84,255,204,254,76,254,203,254,112,255,239,255,129,1,235,2, +120,1,134,254,158,253,218,254,232,255,171,255,21,255,197,255,246,0,71,0,175,254,230,254,215,255,18,0,76,1,196,2, +135,1,170,255,109,0,76,1,59,0,76,0,109,2,34,3,9,1,121,254,0,254,18,0,97,2,171,2,68,2,15,3, +133,3,250,1,50,0,163,0,200,2,172,3,6,2,92,0,118,0,245,255,233,253,165,253,160,255,208,255,126,253,3,252, +79,252,240,252,213,253,66,255,229,255,70,254,15,251,12,249,228,249,1,252,154,253,192,254,219,254,53,253,232,251,169,252, +141,253,108,253,50,254,235,255,162,255,198,252,182,250,232,251,85,254,133,254,246,252,187,252,110,253,95,252,206,250,195,251, +168,253,38,253,115,251,244,251,177,254,228,0,239,0,233,255,224,255,222,0,199,0,14,255,62,254,204,255,63,1,82,0, +192,254,107,254,218,253,92,252,171,252,135,255,157,1,121,1,23,1,45,1,230,0,9,1,61,2,119,2,242,0,33,0, +159,0,124,0,57,0,48,1,115,1,102,0,153,1,207,4,143,4,105,1,149,2,232,7,33,9,249,4,97,2,154,2, +230,0,161,254,251,0,56,5,129,4,67,255,131,250,191,248,91,252,91,6,221,14,90,12,219,2,146,253,144,253,196,253, +110,255,15,4,13,6,31,3,147,1,231,3,139,4,172,1,125,0,131,3,111,7,101,8,119,4,208,252,149,247,14,251, +158,4,75,10,232,6,187,255,60,252,199,252,186,252,28,251,248,251,176,0,138,4,3,4,255,1,60,1,99,255,17,252, +59,252,121,0,60,2,10,0,11,0,174,2,66,1,16,252,255,250,130,255,21,3,161,2,52,1,55,1,145,1,60,0, +124,253,102,252,221,254,79,2,117,3,136,2,30,1,170,255,240,254,38,0,231,2,80,5,228,5,222,4,5,4,111,4, +126,5,243,6,174,8,118,8,78,5,1,3,83,4,59,6,235,5,241,4,123,4,196,3,32,3,42,3,194,3,69,5, +148,6,231,4,106,1,91,0,198,1,5,3,255,3,39,4,233,1,169,255,166,255,254,254,103,253,163,255,119,4,118,5, +44,3,250,1,240,0,61,255,169,255,75,1,90,1,232,1,222,3,137,3,128,1,247,1,5,3,237,0,113,254,162,254, +125,255,163,255,86,0,230,1,235,3,147,5,49,5,176,3,211,3,48,4,39,2,70,0,15,1,253,1,231,1,188,2, +158,3,247,2,163,2,53,3,91,2,147,0,112,0,8,2,246,3,95,4,122,1,37,254,55,255,223,1,35,0,238,252, +11,254,183,0,52,0,90,254,29,254,7,255,186,255,180,254,85,252,184,252,151,0,83,2,192,0,26,1,253,2,129,1, +189,254,34,255,93,0,70,0,146,1,163,3,184,2,200,0,222,1,217,3,75,3,238,1,25,2,112,2,120,1,113,0, +227,0,215,1,103,1,61,0,133,0,127,1,228,0,176,255,229,255,87,0,248,255,86,0,46,1,94,0,30,255,10,0, +160,1,115,1,223,0,88,1,0,1,168,254,204,252,26,254,196,1,156,4,198,4,43,3,72,1,150,255,185,254,84,255, +231,255,147,254,8,253,132,254,10,2,18,3,101,0,37,254,131,255,229,1,93,1,60,255,60,255,202,0,144,0,165,254, +239,253,248,254,227,255,28,0,75,0,98,0,91,0,235,0,214,1,206,1,202,0,34,0,55,0,71,0,40,0,38,0, +249,255,113,255,5,255,212,254,82,254,110,253,238,252,143,253,124,255,235,1,253,2,142,1,68,255,225,254,158,0,94,2, +241,2,190,2,253,1,232,0,161,0,103,1,75,1,56,255,108,253,19,254,183,255,43,0,95,0,167,1,25,2,255,255, +234,253,181,254,131,0,138,0,55,0,140,1,85,2,75,0,25,254,12,255,159,1,176,2,51,2,110,1,113,0,166,255, +254,255,178,0,81,0,87,255,209,254,162,254,57,255,67,1,118,2,29,0,211,252,23,253,50,255,93,254,23,252,134,253, +152,1,136,2,124,255,248,252,100,253,1,255,186,255,39,255,77,254,186,254,97,0,26,1,252,255,215,254,170,254,35,254, +246,252,187,252,208,253,5,255,242,255,143,0,19,0,167,254,174,253,245,252,74,251,254,249,108,251,117,254,1,0,190,255, +94,255,40,255,176,254,123,254,188,254,225,254,35,255,196,255,137,255,217,253,126,252,237,252,19,254,170,254,238,254,240,254, +35,254,211,252,213,251,130,251,38,252,133,253,222,253,75,252,34,251,156,252,227,254,203,254,189,252,168,251,90,252,231,252, +46,252,104,251,199,251,156,252,248,252,36,253,134,253,225,253,67,254,228,254,82,255,44,255,202,254,134,254,153,254,51,255, +100,255,0,254,101,252,26,253,133,255,183,0,209,255,69,254,64,253,23,253,153,253,86,254,139,255,102,1,64,2,170,0, +69,254,80,253,178,253,188,254,38,0,119,0,253,254,31,254,99,255,98,0,100,255,105,254,255,254,203,255,178,255,86,255, +54,255,14,255,162,254,237,253,34,253,180,252,247,252,183,253,76,254,91,254,71,254,41,254,125,253,18,253,86,254,120,255, +169,253,108,251,198,252,11,255,32,254,9,253,245,254,175,255,113,252,4,250,48,251,99,252,2,252,40,252,202,252,235,252, +111,253,215,253,183,252,11,252,201,253,74,255,160,254,68,254,1,255,49,254,29,252,21,252,8,254,235,254,93,254,140,254, +180,255,166,255,216,253,197,252,173,253,45,254,248,252,223,252,64,255,157,0,216,254,27,253,246,253,171,255,20,0,67,255, +93,254,51,254,5,254,215,252,153,252,49,255,73,1,67,255,93,252,55,253,254,255,120,0,161,254,71,253,245,253,136,255, +126,255,183,253,251,252,8,254,165,254,148,254,85,255,249,255,85,255,75,255,185,0,38,1,206,255,93,255,164,0,77,1, +86,0,56,255,200,254,136,254,109,254,15,255,208,0,62,3,116,4,143,2,31,255,237,253,65,255,9,0,192,255,126,0, +22,2,152,2,233,1,35,1,226,0,78,1,131,1,137,0,211,255,28,1,215,2,248,2,83,2,238,1,38,1,36,0, +78,0,20,2,33,4,103,4,177,2,137,1,36,2,100,2,168,1,192,1,254,1,230,0,144,0,43,2,239,2,246,1, +84,1,47,1,72,1,195,2,11,4,234,2,27,2,224,3,209,4,251,2,96,1,59,1,44,1,168,1,203,2,98,2, +73,0,72,255,104,0,144,1,216,0,130,255,75,0,123,2,217,2,236,1,118,2,56,3,62,2,153,1,81,2,56,2, +60,1,204,0,165,0,153,1,81,4,26,5,64,2,209,0,248,2,36,4,114,2,34,1,139,1,32,2,83,2,115,2, +181,2,38,3,225,2,68,1,203,255,52,0,56,2,32,4,191,4,211,4,50,5,88,4,231,1,120,1,42,4,104,5, +189,2,47,255,184,253,65,255,219,2,109,4,253,1,234,255,133,0,47,0,233,254,247,255,225,0,156,255,47,0,160,1, +197,255,15,1,247,9,110,14,35,7,13,254,153,249,242,248,255,254,16,6,248,1,233,251,221,3,153,14,176,14,217,13, +61,12,154,253,210,239,231,245,213,1,243,2,220,254,78,253,54,5,10,21,37,18,121,245,31,231,234,246,148,4,87,7, +44,14,19,12,26,248,99,235,12,241,31,249,46,255,39,8,102,13,27,7,61,251,171,250,65,11,19,22,43,6,180,239, +247,240,178,1,149,8,149,5,108,6,37,8,8,255,42,241,114,239,24,248,237,252,226,255,243,7,183,11,56,6,146,3, +221,5,228,1,8,249,147,245,159,248,10,254,33,1,140,253,130,249,127,255,113,9,80,9,242,0,153,251,236,251,14,255, +170,3,81,7,114,7,225,3,109,252,114,244,105,245,101,0,26,7,18,1,108,248,249,246,15,250,126,252,78,252,30,251, +230,253,5,4,219,6,54,6,243,4,40,1,198,253,13,0,27,2,192,255,35,0,230,2,104,0,241,251,247,250,108,251, +161,253,4,1,145,0,226,254,21,255,166,251,115,248,38,254,222,2,216,254,86,254,110,2,214,254,95,250,102,255,227,2, +235,254,165,254,50,3,102,3,175,255,207,253,19,255,241,1,245,3,174,4,78,5,247,3,75,0,74,254,138,253,85,251, +90,251,113,255,122,2,93,3,106,5,94,7,157,6,211,4,239,4,62,7,165,8,222,6,217,4,141,4,178,2,191,254, +24,252,77,251,101,252,222,255,41,2,133,1,188,1,188,2,133,1,226,0,30,3,199,4,85,4,202,2,56,0,3,255, +164,0,201,0,208,253,140,252,128,254,24,0,24,0,64,0,72,1,160,1,37,0,184,255,214,2,87,5,88,3,88,0, +162,255,185,255,93,0,85,2,66,3,138,1,134,255,50,255,158,255,210,255,248,0,120,3,169,4,11,3,97,0,33,253, +87,250,156,252,107,2,167,3,107,1,35,2,156,1,233,252,245,252,167,1,214,255,241,250,220,254,14,6,190,4,105,255, +233,254,178,255,234,251,75,247,171,247,117,251,185,253,41,254,66,255,100,0,83,255,122,252,125,250,57,252,118,1,58,4, +51,0,192,250,67,250,80,252,89,253,183,254,161,255,18,253,84,249,154,248,96,250,196,252,103,255,11,1,167,0,54,255, +121,253,138,251,119,250,47,251,77,253,49,255,38,255,31,254,189,254,22,0,60,255,53,253,164,252,68,253,198,253,40,253, +124,251,2,252,151,255,97,0,141,252,113,250,118,251,99,251,135,251,19,254,173,255,155,255,139,0,80,1,137,0,53,255, +0,253,242,251,34,255,197,1,125,255,82,254,44,1,43,2,27,1,254,1,124,2,0,1,126,0,131,0,27,0,71,1, +47,2,135,0,21,0,251,1,202,1,121,255,108,254,84,254,225,253,85,253,238,252,88,253,143,254,121,255,105,0,237,0, +95,255,47,254,177,255,18,0,56,254,164,254,83,0,63,255,233,253,125,254,168,254,36,255,5,1,250,0,75,255,18,0, +253,1,180,1,164,0,97,0,161,255,8,254,248,252,190,253,189,255,132,0,130,255,86,255,25,1,197,2,100,3,142,3, +141,3,83,3,254,1,209,255,230,255,11,2,93,1,149,254,82,255,185,1,219,255,120,251,77,249,233,248,215,248,195,249, +144,251,145,253,72,255,109,255,245,253,233,252,247,252,23,253,22,253,208,252,175,251,199,250,121,251,152,252,21,253,61,254, +166,255,157,254,58,252,109,252,67,254,231,253,76,252,75,252,172,252,177,251,141,250,4,250,212,249,183,250,25,252,147,251, +206,249,42,250,76,252,162,252,117,251,71,252,173,254,125,255,86,255,27,0,24,0,138,254,22,254,178,254,236,253,253,252, +195,253,30,254,224,252,144,252,29,254,17,255,243,253,226,252,95,254,90,0,15,255,231,252,151,254,109,1,120,0,208,253, +49,253,29,254,174,255,206,1,110,3,244,3,245,2,236,0,138,1,82,5,244,5,18,2,153,255,168,254,216,252,104,255, +240,6,34,9,30,4,204,0,61,255,129,250,131,248,210,254,1,5,222,2,180,253,135,253,226,0,223,1,133,0,124,1, +112,4,137,4,230,1,101,0,206,255,57,255,13,1,141,4,186,5,191,4,109,3,249,0,34,255,165,0,173,2,147,2, +245,2,12,4,90,2,198,254,28,253,137,253,131,254,244,255,6,2,51,4,157,4,58,1,160,252,242,252,91,2,119,5, +190,2,43,0,104,2,243,3,153,255,175,251,207,254,40,3,46,2,27,0,247,0,131,1,80,0,96,255,150,254,155,254, +48,1,99,3,209,1,194,254,239,252,239,252,71,0,56,5,240,5,155,2,89,1,235,2,103,3,228,2,250,3,227,5, +114,5,106,2,58,1,74,4,180,6,244,4,232,3,46,6,120,6,104,3,0,2,168,2,94,2,58,2,36,3,31,3, +142,2,134,2,92,1,193,255,164,0,101,2,56,2,46,2,109,3,207,2,33,0,46,255,134,0,137,1,103,1,173,0, +172,255,90,255,70,0,93,1,1,2,174,2,28,3,215,2,135,2,80,2,124,1,113,0,232,255,160,255,249,255,145,1, +243,2,213,2,57,2,123,1,57,0,81,0,103,2,11,3,62,1,241,0,42,3,88,4,79,3,52,2,31,2,118,2, +73,2,101,1,22,1,4,2,205,2,250,2,86,3,26,3,142,1,248,255,251,254,124,254,9,255,166,255,135,254,47,253, +82,253,224,252,130,251,47,252,224,253,135,253,131,253,223,255,153,0,129,254,57,254,52,0,127,0,94,255,67,255,140,255, +182,255,150,0,87,1,119,1,63,2,5,3,240,1,107,0,168,0,126,1,6,1,226,255,162,255,123,0,47,1,244,0, +212,0,118,1,72,1,145,255,19,254,221,253,147,254,92,0,96,2,127,2,217,0,97,255,115,254,6,254,15,255,238,0, +206,1,142,1,194,0,140,255,224,254,34,255,35,255,79,255,30,1,21,3,19,3,18,2,7,1,97,255,48,254,145,254, +255,254,70,255,67,1,161,3,119,3,215,1,203,0,128,255,62,254,31,255,41,1,190,1,103,1,139,1,135,1,108,1, +118,2,125,3,77,2,6,0,113,255,88,0,125,0,175,255,76,255,123,255,224,255,226,0,220,1,15,1,2,255,8,254, +81,254,154,254,3,255,114,255,231,254,144,254,59,0,5,2,124,1,111,0,31,1,46,2,242,1,198,0,4,255,150,253, +227,254,216,2,112,5,44,4,14,1,237,254,200,254,138,0,235,2,178,3,136,2,124,1,17,1,141,255,20,253,48,252, +243,253,48,1,64,4,4,5,63,2,97,254,48,253,209,254,195,0,4,2,223,2,240,2,253,1,142,0,168,254,72,252, +30,251,175,252,86,255,103,0,24,0,238,255,247,255,92,0,128,1,111,1,183,254,71,252,180,252,28,254,3,255,91,0, +104,1,249,0,141,0,203,0,88,0,240,255,6,1,2,2,99,1,65,0,137,255,75,255,171,255,251,255,148,255,21,255, +236,254,119,255,108,1,13,3,184,1,228,254,71,253,146,252,229,252,44,255,19,1,255,0,83,1,7,2,130,0,164,254, +79,255,150,0,245,0,126,1,46,1,90,255,116,254,220,254,217,254,93,255,247,0,132,1,18,1,39,1,175,0,72,255, +182,254,177,254,76,254,188,254,194,255,169,255,122,255,82,0,95,0,6,255,4,254,191,253,173,253,238,253,38,254,36,254, +166,254,85,255,37,255,136,254,61,254,27,254,13,254,237,253,170,253,76,254,239,255,170,0,207,255,169,254,204,253,89,253, +191,253,89,254,150,254,46,255,217,255,154,255,72,255,116,255,27,255,232,254,86,0,185,1,65,1,67,0,185,255,86,255, +246,255,27,1,0,0,52,253,182,252,254,254,224,0,43,1,170,0,97,255,187,253,48,253,189,253,199,253,50,253,111,253, +102,254,162,254,99,254,216,254,29,255,237,253,161,252,183,252,31,253,208,252,169,252,243,252,196,252,86,252,170,252,51,253, +229,252,113,252,197,252,15,253,178,252,163,252,172,252,101,251,34,250,94,251,177,253,58,254,181,253,180,253,121,253,214,252, +191,252,208,252,236,252,245,253,172,254,117,253,73,252,37,253,94,254,131,254,74,254,196,253,226,252,210,252,114,253,121,253, +110,253,9,254,10,254,45,253,72,253,154,254,42,255,67,254,57,253,30,253,166,253,33,254,130,254,236,254,191,254,132,253, +79,252,129,252,196,253,157,254,57,254,42,253,237,252,28,254,21,255,9,254,52,252,72,252,221,253,32,254,240,252,239,252, +136,254,95,255,191,254,26,254,192,253,3,253,147,252,108,253,240,254,31,0,191,0,136,0,101,255,146,254,19,255,184,255, +255,254,194,253,177,253,157,254,117,255,241,255,179,255,66,254,151,252,87,252,39,253,175,253,128,254,209,255,152,0,248,0, +128,1,124,1,197,0,59,0,204,255,60,255,94,255,37,0,83,0,238,255,220,255,188,255,24,255,35,255,161,0,195,1, +166,0,187,254,198,254,91,0,22,1,21,1,203,1,84,2,91,1,206,255,184,254,62,254,22,255,11,1,41,2,43,2, +104,2,61,2,230,0,51,0,226,0,45,1,194,0,139,0,61,0,93,0,213,1,110,2,83,0,118,254,43,255,45,0, +215,255,65,255,208,254,166,254,146,255,177,0,193,0,220,0,243,1,66,3,68,4,22,4,22,2,201,0,167,1,58,1, +51,255,196,0,150,4,119,3,108,255,49,0,175,3,63,3,145,0,52,0,102,1,71,2,170,2,54,2,168,1,216,1, +3,1,225,254,0,255,80,2,80,5,215,5,66,4,235,1,211,1,221,4,119,6,193,3,210,0,61,1,210,2,14,3, +199,2,18,3,71,3,161,2,70,1,196,254,1,251,83,251,168,5,111,17,117,14,124,0,156,250,10,254,229,253,9,252, +127,255,33,1,49,254,196,0,245,7,191,11,14,17,240,21,225,8,59,241,135,238,210,255,219,5,149,252,94,250,59,5, +154,17,137,20,242,7,248,245,122,244,35,2,158,8,35,6,54,7,189,4,230,247,172,241,33,249,155,253,221,253,138,8, +197,19,7,11,149,250,133,252,86,11,253,13,14,1,196,247,244,252,55,6,110,7,35,5,213,7,101,9,223,1,113,249, +163,249,221,252,238,252,162,254,87,4,163,8,219,9,62,10,185,7,81,0,254,248,36,248,90,253,146,1,150,255,42,252, +151,255,167,6,209,6,6,1,108,255,72,2,189,1,22,255,112,2,80,10,153,12,81,6,90,255,45,254,83,0,46,1, +168,0,172,255,146,253,246,251,80,253,75,255,115,254,201,252,247,253,213,1,88,6,13,9,112,7,241,2,40,0,161,255, +150,254,173,253,21,255,122,1,170,2,157,2,168,1,66,0,201,255,103,0,45,0,201,253,14,251,232,251,231,0,188,4, +244,3,57,2,201,1,84,255,192,251,30,252,55,254,200,252,34,251,2,254,251,1,20,3,23,2,188,255,249,253,183,0, +172,5,146,6,161,4,63,4,237,2,29,254,48,250,75,250,107,252,90,255,108,3,172,6,51,6,193,2,222,255,24,0, +178,2,147,4,87,4,120,3,121,2,124,0,97,254,173,253,229,253,223,253,117,253,99,253,215,254,91,1,86,2,87,1, +44,1,58,2,226,1,119,0,149,0,160,1,158,1,75,1,77,1,70,0,146,254,45,254,162,254,176,254,128,255,68,1, +164,1,187,0,56,1,126,2,130,1,109,254,30,252,57,252,76,254,154,0,190,1,188,1,133,0,35,254,176,252,114,253, +153,254,218,255,63,2,241,2,49,0,118,254,43,255,217,253,92,251,95,252,171,254,244,254,180,255,215,0,62,255,172,253, +88,255,103,0,156,254,254,253,45,0,235,1,232,0,29,254,95,252,91,252,30,251,24,249,52,251,235,255,117,0,12,254, +100,254,204,255,103,254,224,251,148,250,170,250,20,252,64,253,118,252,8,251,133,250,103,251,86,254,103,0,58,253,120,248, +166,248,245,250,64,250,52,249,149,250,48,252,114,253,151,254,27,253,214,249,182,249,178,252,113,254,114,254,183,254,192,254, +231,253,198,253,231,254,99,255,213,254,53,255,93,0,226,255,85,254,12,254,185,253,93,251,126,249,152,250,153,252,44,253, +242,252,45,253,49,254,71,255,105,255,87,255,40,0,50,0,84,254,87,253,254,254,178,0,49,0,243,254,186,255,152,2, +14,4,28,2,252,255,38,0,26,0,198,254,180,254,237,255,111,0,129,0,203,0,53,1,251,1,127,1,174,254,113,253, +203,255,28,1,208,255,189,255,136,0,156,255,253,254,194,255,244,255,163,0,153,2,140,2,172,0,165,0,12,1,74,255, +62,254,217,255,89,1,31,1,249,255,186,254,132,254,115,255,54,0,240,0,190,1,185,0,84,254,151,253,158,254,202,255, +231,0,254,0,165,255,125,255,234,0,0,1,155,0,119,2,51,4,16,3,183,1,162,2,238,3,37,3,114,0,189,254, +115,0,202,2,95,1,48,254,160,253,31,254,200,252,196,251,2,253,37,254,208,253,206,253,175,254,182,254,140,253,71,253, +20,255,253,0,160,0,137,254,214,252,57,252,71,252,163,252,247,252,90,253,68,254,62,255,53,255,97,254,209,253,136,253, +240,252,104,252,140,252,197,252,45,252,77,251,50,251,169,251,12,252,192,252,213,253,50,254,179,253,179,253,155,254,63,255, +68,255,143,255,241,255,35,255,97,253,126,252,29,253,35,254,204,254,70,255,133,255,80,255,39,255,127,255,189,255,36,255, +30,254,140,253,177,253,76,254,215,254,131,254,47,253,52,252,204,252,61,254,39,255,148,255,251,255,241,255,227,255,203,1, +101,5,171,6,104,3,73,255,124,254,144,255,247,254,81,253,121,253,64,255,104,0,76,0,90,255,222,253,105,253,122,255, +149,1,214,255,0,252,163,251,213,254,43,0,90,254,177,253,76,255,53,255,162,252,240,251,188,254,50,1,226,0,13,0, +177,0,108,1,185,0,162,255,245,255,169,1,193,2,137,1,243,254,161,253,2,254,203,253,101,252,115,252,30,255,192,1, +34,2,15,1,86,255,201,252,10,251,95,252,91,255,170,0,133,0,58,1,232,1,134,0,18,255,145,0,31,3,208,2, +68,0,232,254,28,255,12,255,214,254,143,255,95,0,22,0,116,255,82,255,227,254,214,253,202,253,184,255,203,1,173,1, +223,255,238,254,189,255,111,0,180,255,80,255,63,1,205,3,199,3,208,1,180,1,95,4,147,6,81,6,99,5,146,5, +29,6,204,5,203,4,192,3,173,2,112,1,126,0,109,0,25,1,191,1,163,1,196,0,4,0,221,255,205,255,78,0, +144,2,250,4,157,4,163,2,111,2,119,3,238,2,178,0,119,254,111,253,105,254,22,1,185,3,243,4,163,4,208,3, +190,3,140,3,116,1,86,255,29,0,215,1,192,1,145,1,103,2,9,2,130,0,7,0,17,0,190,255,155,0,185,2, +167,3,213,2,57,2,249,2,20,4,79,4,107,4,90,5,82,5,30,3,144,1,134,2,140,3,250,2,208,1,97,0, +87,255,82,0,23,2,10,2,215,0,91,0,85,0,221,255,129,254,221,252,209,252,35,254,142,254,241,254,214,0,97,1, +140,255,123,255,88,1,27,1,236,255,199,0,183,1,153,1,117,2,57,3,47,2,192,1,234,2,19,3,13,2,189,1, +217,1,108,1,139,0,191,255,131,0,82,3,139,5,96,5,86,4,136,3,123,2,101,1,184,0,208,0,86,2,79,4, +147,4,82,3,41,2,156,1,251,1,212,2,102,2,27,1,96,1,196,2,110,3,177,3,139,3,91,2,220,1,222,2, +196,2,30,1,146,0,18,1,235,0,232,0,174,1,20,2,231,1,177,1,127,1,192,1,50,2,186,1,20,1,118,1, +218,1,163,1,147,1,50,1,171,0,184,1,68,3,48,3,66,3,90,4,109,3,243,0,192,0,215,1,99,1,240,0, +171,1,16,2,187,2,57,4,147,3,63,0,38,254,150,254,103,255,88,0,0,2,129,2,116,0,96,254,144,255,200,2, +193,3,199,1,31,0,1,0,33,0,140,0,143,1,99,2,79,3,247,3,28,2,6,255,35,255,175,1,37,2,193,0, +174,0,32,2,136,3,125,3,139,1,247,255,131,0,237,0,44,0,183,0,251,1,38,1,159,255,144,255,136,255,81,255, +141,0,223,1,163,1,70,1,4,1,102,255,167,253,230,253,73,255,236,255,108,255,173,254,140,254,82,254,58,253,35,253, +239,254,105,255,83,253,59,252,117,253,92,254,255,253,110,253,27,253,196,253,111,255,55,0,226,255,105,0,122,1,52,1, +25,0,169,255,198,255,141,255,180,254,251,253,61,254,196,254,13,255,107,0,89,2,11,2,204,255,216,253,191,251,229,249, +15,251,99,254,136,0,137,1,203,1,6,0,52,254,150,254,39,254,207,251,84,252,239,255,144,0,183,253,226,252,203,254, +174,255,47,255,141,255,82,0,148,255,249,253,74,253,72,253,56,253,216,253,16,255,126,255,166,255,144,0,221,0,240,255, +110,255,225,254,249,252,3,252,170,253,27,255,181,254,65,254,25,254,213,253,172,254,9,0,182,255,130,254,52,254,42,254, +89,254,139,255,14,0,195,254,22,254,250,254,46,255,101,254,86,254,141,254,190,253,180,252,200,252,230,253,234,254,30,255, +116,255,230,0,224,1,197,0,66,255,246,254,149,254,197,253,84,254,225,255,63,0,201,255,22,0,177,0,158,0,255,255, +248,254,235,253,13,254,96,255,240,255,145,254,147,252,203,251,39,252,104,252,151,252,195,253,94,255,165,255,125,254,60,253, +137,252,136,252,43,253,135,253,2,253,111,252,68,252,227,251,123,251,19,252,141,253,98,254,96,253,65,251,45,250,194,250, +92,251,71,251,155,251,136,252,43,253,75,253,4,253,125,252,94,252,215,252,96,253,190,253,149,253,209,252,0,253,156,254, +48,255,2,254,134,253,59,254,141,254,148,254,72,254,209,252,240,251,38,253,203,253,200,252,98,253,183,255,4,0,65,254, +94,253,122,253,127,253,193,253,41,254,45,254,245,253,106,253,185,252,34,253,184,254,214,255,185,255,221,254,9,254,50,254, +9,255,213,254,181,253,110,253,173,253,31,253,162,252,77,253,76,254,190,254,144,254,221,253,146,253,194,254,180,0,169,1, +236,0,29,255,167,253,172,253,138,254,205,254,127,254,199,254,228,255,226,0,5,1,209,0,243,0,181,0,118,255,106,254, +106,254,100,254,232,253,180,253,204,253,104,254,33,0,81,1,66,0,43,255,42,0,32,1,116,0,234,255,67,0,124,0, +184,0,15,1,152,0,182,255,109,255,79,255,49,255,230,255,33,1,235,1,35,2,174,1,158,0,250,255,45,0,114,0, +139,0,105,0,175,255,79,255,65,0,18,1,210,0,45,1,49,2,210,1,37,1,131,2,143,3,95,1,244,254,186,255, +51,1,158,0,22,0,47,1,202,1,47,1,72,1,186,1,98,0,50,254,247,253,147,255,184,0,161,0,125,0,245,0, +131,1,16,2,167,2,69,2,6,1,204,0,90,1,32,1,121,1,55,3,78,3,25,1,56,0,71,1,215,1,22,2, +212,2,249,2,133,2,47,2,101,1,218,0,212,1,85,2,158,0,31,255,136,255,16,0,60,0,100,1,214,2,69,3, +91,3,143,3,233,2,18,1,144,255,177,0,121,3,198,2,220,254,114,0,99,8,225,10,47,4,190,253,18,252,231,252, +139,255,192,0,136,254,80,255,175,3,126,2,117,253,104,255,118,8,130,16,6,16,59,3,98,244,236,243,22,254,56,1, +169,250,124,246,37,253,25,12,32,22,73,15,106,254,230,245,126,251,91,4,141,5,41,0,244,252,3,254,113,253,158,251, +11,254,49,2,0,4,202,5,142,5,75,0,28,255,91,6,9,8,158,253,225,244,1,248,148,3,87,16,212,20,68,12, +68,0,141,251,207,251,108,251,59,250,206,249,145,252,223,3,243,10,56,11,140,4,55,253,128,251,4,255,69,2,113,3, +112,3,49,0,61,251,194,251,132,1,152,4,29,3,76,0,36,253,229,251,114,255,118,5,99,9,74,9,17,5,136,255, +249,253,83,2,206,8,210,10,73,4,254,249,245,245,248,249,133,254,89,255,150,254,47,254,233,254,242,1,62,6,15,8, +232,5,214,2,226,1,73,2,59,2,144,1,143,0,209,255,20,0,69,0,138,255,72,255,216,254,40,252,42,250,133,252, +137,0,245,2,65,4,54,4,30,3,135,3,142,4,35,3,142,0,219,254,40,253,48,252,145,253,162,255,63,0,169,255, +170,255,134,2,39,7,135,8,156,5,226,2,83,2,85,2,228,1,116,0,187,254,237,254,138,0,118,1,27,2,79,2, +215,0,27,0,227,1,229,2,20,2,157,2,66,4,143,4,39,4,128,3,139,1,131,255,180,254,184,253,96,252,194,252, +214,254,60,0,236,255,3,255,189,254,111,255,253,0,181,2,25,3,57,2,87,2,96,3,80,2,126,255,241,254,60,1, +15,3,38,3,168,2,228,1,226,0,133,0,246,0,13,1,43,0,77,255,241,255,7,2,59,3,186,1,94,255,32,255, +2,0,124,255,32,255,20,1,70,2,205,255,53,253,74,254,189,0,144,1,254,1,180,2,79,1,74,254,186,253,139,255, +7,255,10,252,45,252,122,0,177,2,198,255,184,252,129,253,51,255,171,254,197,253,60,254,10,254,17,252,244,250,202,252, +195,255,175,0,16,255,171,253,185,254,86,0,109,255,47,253,241,252,19,254,189,253,67,252,77,251,147,250,152,250,204,252, +199,254,255,252,244,249,31,250,172,251,240,250,204,249,227,250,71,252,49,252,225,251,190,251,122,251,133,252,195,254,134,255, +19,255,212,255,222,255,133,252,188,249,236,251,128,255,185,255,189,254,128,255,20,0,28,255,153,254,179,254,119,253,200,251, +251,251,61,253,125,253,43,253,95,253,126,253,46,253,232,253,124,0,220,2,84,2,120,255,192,253,201,254,157,0,152,1, +158,2,238,3,179,3,109,1,62,255,162,254,202,254,191,254,217,254,242,255,249,1,75,3,71,2,212,255,108,254,129,254, +194,254,77,255,201,0,193,1,207,0,122,255,110,255,162,255,18,255,248,254,56,0,215,1,239,2,34,3,230,1,50,0, +132,0,194,2,141,3,211,1,103,0,124,0,212,255,246,253,97,253,177,254,21,0,9,1,4,2,253,1,27,0,19,254, +176,253,59,254,161,254,107,255,156,0,201,0,199,255,78,255,12,0,249,0,153,1,207,1,151,0,48,254,112,253,132,255, +88,1,168,0,233,255,104,1,187,2,205,0,235,252,142,250,232,250,175,252,55,254,153,254,238,253,202,252,130,251,169,250, +83,251,139,253,182,255,161,0,147,0,215,255,109,254,64,253,128,253,221,254,1,0,6,0,225,254,115,253,24,253,225,253, +91,254,42,254,154,254,147,255,23,255,206,252,2,251,24,251,233,251,38,252,15,252,78,252,195,252,244,252,0,253,108,253, +25,254,71,254,14,254,127,254,213,255,249,0,27,1,68,0,189,254,93,253,86,253,104,254,10,255,1,255,79,255,191,255, +104,255,230,254,64,255,234,255,7,0,232,255,235,255,218,255,190,255,175,255,106,255,26,255,73,255,220,255,171,0,1,2, +36,3,185,2,119,1,84,1,13,2,1,2,42,1,65,0,70,255,231,254,208,255,80,0,29,255,110,254,171,255,15,0, +57,254,74,253,181,254,193,255,73,255,20,255,90,255,42,255,13,255,13,255,41,254,183,253,106,255,146,0,184,254,59,253, +191,254,194,255,119,254,198,254,33,1,204,0,110,254,192,255,176,3,183,3,42,0,21,255,26,1,165,1,91,255,192,252, +198,251,20,253,35,0,87,2,91,1,64,254,222,251,156,251,63,253,134,255,155,0,10,0,114,255,184,255,186,255,51,255, +208,255,5,2,176,3,51,3,158,1,170,0,112,0,36,0,216,255,251,255,16,0,157,255,127,255,68,0,148,0,198,255, +184,255,62,1,209,1,2,0,99,254,252,254,13,0,224,255,104,255,99,255,28,255,216,254,207,255,222,1,15,4,240,5, +153,6,237,4,62,2,125,1,236,2,229,3,71,3,201,2,107,3,169,3,57,2,74,0,194,255,146,0,59,1,2,1, +61,0,33,255,247,253,202,253,41,255,242,0,200,1,223,1,18,2,80,2,252,1,33,1,163,0,73,1,129,2,172,2, +118,1,181,0,139,1,105,2,213,1,245,0,102,1,127,2,162,2,152,1,125,0,99,0,61,1,154,1,80,0,146,254, +135,254,199,255,228,255,112,254,202,253,127,255,19,2,54,3,182,2,70,2,228,2,168,3,131,3,232,2,170,2,125,2, +224,1,89,1,124,1,182,1,13,1,176,255,236,254,131,255,121,0,48,0,176,254,166,253,250,253,223,254,67,255,1,255, +190,254,23,255,144,255,32,255,53,254,53,254,240,254,48,255,251,254,23,255,225,255,127,1,85,3,64,4,114,4,160,4, +9,4,95,2,11,1,94,0,131,255,65,255,140,0,79,2,99,3,125,3,79,2,217,0,207,0,166,1,15,2,109,2, +207,2,149,2,141,2,55,3,96,3,10,3,32,3,238,2,85,2,193,2,204,3,30,4,37,4,250,3,249,2,87,2, +216,2,219,2,45,2,66,2,127,2,211,1,244,0,31,0,113,255,1,0,249,0,131,0,249,255,233,0,143,1,44,1, +71,1,124,1,219,0,156,0,249,0,247,0,143,1,72,3,8,4,36,3,81,2,35,2,98,2,249,2,164,2,31,1, +237,0,190,2,119,3,193,1,30,0,115,0,212,1,97,2,66,1,144,255,233,254,10,255,7,255,164,255,10,1,31,1, +215,255,109,0,4,3,151,3,119,1,8,0,219,255,119,255,75,0,204,2,155,3,39,2,150,1,204,1,9,1,7,1, +4,2,175,0,224,253,6,254,138,0,166,1,16,1,7,0,199,254,109,254,198,255,138,1,119,2,14,2,80,0,60,255, +123,0,222,1,76,1,176,0,160,1,132,2,73,2,159,1,169,0,61,255,46,254,78,254,30,255,133,255,195,255,209,0, +79,1,112,255,157,253,163,254,175,255,204,253,238,251,178,252,201,253,165,253,150,253,206,253,162,253,144,253,246,253,214,254, +76,0,65,1,143,0,84,255,250,254,27,255,69,255,178,255,48,0,132,0,183,0,170,0,136,0,101,0,169,255,117,254, +211,253,173,253,98,253,108,253,11,254,206,254,221,255,197,0,46,0,210,254,164,254,234,254,37,254,140,253,86,254,55,255, +53,255,34,255,135,255,18,0,132,0,198,0,175,0,37,0,51,255,38,254,94,253,29,253,154,253,124,254,209,254,156,254, +28,255,136,0,128,1,19,1,108,255,50,253,152,251,187,251,80,253,25,255,81,0,246,0,91,1,142,1,13,1,166,255, +71,254,239,253,170,254,239,255,247,0,222,0,198,255,14,255,150,255,166,0,6,1,98,0,88,255,139,254,48,254,45,254, +31,254,169,253,48,253,179,253,123,255,115,1,46,2,99,1,25,0,80,255,248,254,147,254,26,254,200,253,219,253,170,254, +7,0,5,1,24,1,140,0,146,255,97,254,209,253,65,254,207,254,203,254,163,254,200,254,15,255,47,255,26,255,10,255, +39,255,252,254,23,254,15,253,178,252,220,252,60,253,11,254,45,255,206,255,53,255,137,253,254,251,221,251,0,253,54,254, +184,254,57,254,219,252,222,251,70,252,26,253,60,253,73,253,132,253,253,252,2,252,249,251,181,252,251,252,175,252,112,252, +173,252,152,253,158,254,214,254,121,254,84,254,76,254,240,253,82,253,155,252,42,252,133,252,61,253,100,253,56,253,170,253, +202,254,194,255,183,255,191,254,254,253,225,253,125,253,17,253,11,254,122,255,42,255,6,254,70,254,231,254,234,253,75,252, +48,252,217,253,204,255,53,0,191,254,91,253,124,253,14,254,22,254,97,254,63,255,208,255,196,255,104,255,212,254,85,254, +91,254,223,254,168,255,109,0,221,0,18,1,251,0,20,0,255,254,97,255,168,0,3,1,208,0,48,1,135,1,73,1, +18,1,202,0,230,255,224,254,149,254,59,255,77,0,217,0,183,0,179,0,206,0,112,0,10,0,69,0,169,0,136,0, +227,255,55,255,33,255,171,255,58,0,193,0,120,1,179,1,244,0,255,255,117,255,32,255,58,255,45,0,21,1,213,0, +12,0,217,255,231,255,189,255,201,255,192,255,32,255,75,255,57,1,216,2,58,2,137,0,169,255,32,0,62,1,116,1, +34,0,250,254,125,255,188,0,12,1,250,255,165,254,198,254,73,0,34,1,124,0,100,255,134,254,37,254,152,254,28,255, +229,254,25,255,199,0,117,2,48,2,68,0,160,254,166,254,4,0,50,1,87,1,57,1,135,1,109,1,83,0,25,255, +113,254,148,254,78,0,222,2,132,3,190,1,121,255,111,253,146,252,165,254,185,1,91,2,209,1,124,2,17,3,55,2, +115,0,17,255,3,0,177,1,208,255,76,254,140,4,255,11,250,8,40,0,21,253,54,255,134,0,35,0,54,255,34,255, +65,1,62,3,66,2,14,0,192,254,216,253,175,254,238,3,160,10,160,10,44,1,233,246,4,246,66,253,151,2,43,0, +152,251,92,255,236,10,17,16,169,7,248,251,90,247,244,249,212,255,212,1,91,252,99,250,105,3,135,9,45,3,103,252, +111,252,220,252,35,254,18,3,177,4,149,1,16,2,77,5,234,2,79,251,114,245,125,246,176,0,199,14,83,20,76,12, +53,0,150,250,222,250,107,251,143,250,235,248,112,248,37,254,45,9,153,13,75,5,21,250,251,245,147,249,249,1,144,8, +49,6,81,255,160,253,236,255,193,255,6,253,23,251,183,252,116,1,155,3,8,2,54,4,248,9,82,9,80,2,184,254, +87,0,144,2,77,4,31,5,116,3,142,0,122,254,133,253,21,254,173,255,206,255,50,254,89,254,202,1,239,4,210,4, +198,3,49,4,10,4,81,2,167,1,81,2,13,2,74,1,197,0,234,254,95,252,234,251,85,253,191,254,214,255,190,0, +0,2,96,4,40,6,219,4,154,1,126,255,195,255,166,1,248,2,134,1,136,254,185,253,192,255,54,1,50,0,31,255, +132,0,56,3,35,5,95,6,243,6,182,5,134,3,176,2,172,2,88,1,222,255,163,0,202,2,142,3,223,1,29,255, +209,253,60,255,161,1,154,2,53,2,242,1,130,2,159,3,236,3,168,1,217,253,0,252,229,252,223,253,243,253,169,254, +62,0,91,1,52,1,185,255,253,253,26,254,23,0,124,1,186,1,84,2,186,2,184,1,223,0,25,1,85,0,166,254, +52,255,190,1,149,2,36,1,214,255,141,255,64,0,45,2,223,3,166,3,184,2,99,2,78,1,104,255,103,255,127,1, +100,2,250,0,131,255,79,255,227,255,253,0,31,2,67,2,220,1,139,2,186,3,177,2,56,255,219,252,202,253,149,255, +163,255,104,255,187,0,155,1,214,255,87,253,7,253,184,254,164,0,168,1,44,1,186,255,244,254,38,255,12,255,161,254, +223,254,139,255,101,0,228,1,185,2,224,0,6,254,122,253,132,254,172,254,205,254,26,0,61,0,247,253,140,252,236,253, +250,254,77,253,71,251,94,251,24,252,118,251,161,250,117,251,7,253,41,253,247,251,144,251,208,252,112,254,95,255,19,0, +217,0,130,0,79,254,54,252,207,252,56,255,242,255,67,254,47,253,49,254,75,255,2,255,103,254,100,254,128,254,190,254, +122,255,173,255,112,254,41,253,84,253,201,253,46,253,209,252,31,254,213,255,57,0,184,255,80,255,15,255,80,255,150,0, +178,1,30,1,255,255,129,0,218,1,150,1,15,0,204,255,31,1,199,1,178,0,47,255,119,254,54,254,194,253,112,253, +9,254,96,255,37,0,178,255,36,255,144,255,21,0,118,255,167,254,120,255,128,1,158,2,237,1,86,0,16,255,242,254, +2,0,225,0,98,0,185,255,173,0,26,2,115,1,76,255,135,254,121,255,218,255,63,255,141,255,250,0,83,1,145,255, +57,253,37,252,214,252,174,254,89,0,158,0,200,255,85,255,217,255,120,0,180,0,19,1,172,1,159,1,135,0,76,255, +8,255,187,255,110,0,82,0,111,255,62,254,254,252,241,251,224,251,71,253,30,255,176,255,184,254,125,253,226,252,174,252, +166,252,1,253,170,253,49,254,118,254,150,254,126,254,55,254,40,254,142,254,28,255,135,255,216,255,245,255,138,255,158,254, +187,253,101,253,181,253,100,254,237,254,213,254,18,254,26,253,120,252,129,252,21,253,173,253,205,253,98,253,203,252,130,252, +195,252,125,253,108,254,51,255,141,255,158,255,212,255,79,0,141,0,25,0,57,255,152,254,102,254,99,254,148,254,52,255, +241,255,248,255,43,255,113,254,126,254,229,254,241,254,197,254,223,254,24,255,8,255,10,255,208,255,17,1,177,1,68,1, +126,0,5,0,187,255,133,255,195,255,141,0,63,1,97,1,81,1,130,1,172,1,94,1,196,0,57,0,160,255,204,254, +17,254,189,253,130,253,45,253,82,253,86,254,67,255,232,254,204,253,180,253,34,255,177,0,32,1,186,0,62,0,183,255, +19,255,220,254,100,255,34,0,143,0,243,0,148,1,246,1,184,1,99,1,103,1,35,1,251,255,188,254,138,254,25,255, +90,255,95,255,223,255,72,0,84,255,129,253,235,252,37,254,96,255,93,255,61,255,14,0,178,0,237,255,234,254,113,255, +211,0,13,1,81,0,177,0,105,2,46,3,207,1,29,0,6,0,212,0,209,0,12,0,187,255,237,255,180,255,24,255, +22,255,204,255,30,0,86,255,31,254,145,253,26,254,113,255,225,0,186,1,199,1,154,1,222,1,67,2,7,2,139,1, +253,1,76,3,251,3,54,3,222,1,63,1,156,1,61,2,103,2,219,1,195,0,195,255,196,255,202,0,104,1,114,0, +180,254,206,253,8,254,103,254,91,254,116,254,111,255,251,0,230,1,186,1,53,1,243,0,241,0,57,1,133,1,45,1, +195,0,203,1,173,3,202,3,170,1,227,255,66,0,197,1,138,2,252,1,45,1,85,1,220,1,44,1,159,255,39,255, +0,0,135,0,32,0,153,255,110,255,133,255,214,255,85,0,201,0,252,0,15,1,165,1,227,2,106,3,252,1,197,255, +1,255,36,0,233,1,202,2,218,1,207,255,143,254,127,254,84,254,245,253,81,254,232,254,217,254,191,254,222,254,66,254, +53,253,30,253,250,253,252,254,39,0,24,1,223,0,242,255,132,255,109,255,70,255,193,255,23,1,67,2,120,2,188,1, +130,0,172,255,219,255,168,0,118,1,30,2,93,2,243,1,23,1,233,255,170,254,96,254,129,255,239,0,161,1,123,1, +85,0,220,254,238,254,129,0,53,1,174,0,32,1,188,2,135,3,24,3,112,2,238,1,222,1,148,2,49,3,240,2, +140,2,64,2,34,1,202,255,249,255,101,1,137,2,62,3,146,3,192,2,45,1,105,0,196,0,101,1,185,1,148,1, +100,1,237,1,194,2,219,2,140,2,125,2,47,2,169,1,232,1,194,2,89,3,183,3,198,3,24,3,122,2,189,2, +224,2,34,2,130,1,123,1,135,1,219,1,94,2,165,1,169,255,120,254,188,254,85,255,74,0,17,2,84,3,25,3, +152,2,128,2,235,1,3,1,247,0,159,1,51,2,172,2,224,2,166,2,193,2,71,3,16,3,71,2,97,2,19,3, +182,2,55,1,12,0,33,0,255,0,86,1,127,0,108,255,32,255,87,255,194,255,167,0,156,1,191,1,53,1,200,0, +164,0,167,0,196,0,176,0,117,0,0,1,107,2,225,2,83,1,126,255,230,254,198,254,204,254,208,255,0,1,221,0, +3,0,59,255,255,253,2,253,119,253,34,254,208,253,141,253,165,253,97,253,177,253,252,254,88,255,99,254,15,254,210,254, +154,255,243,255,170,255,8,255,21,255,131,255,92,255,134,255,160,0,20,1,139,0,144,0,219,0,53,0,59,255,196,254, +137,254,143,254,14,255,209,255,215,0,218,1,227,1,209,0,151,255,222,254,194,254,13,255,105,255,237,255,129,0,135,0, +128,0,77,1,178,1,154,0,187,255,35,0,100,0,17,0,247,255,165,255,211,254,66,254,246,253,243,253,250,254,91,0, +225,0,13,1,243,0,175,255,72,254,11,254,240,253,194,253,254,254,1,1,254,1,24,2,177,1,181,0,65,0,156,0, +88,0,216,255,119,0,230,0,205,255,227,254,141,255,177,0,44,1,8,1,212,0,14,1,27,1,21,0,228,254,204,254, +32,255,32,255,109,255,28,0,91,0,4,0,133,255,82,255,224,255,202,0,0,1,97,0,156,255,0,255,174,254,205,254, +40,255,113,255,122,255,21,255,111,254,239,253,175,253,234,253,214,254,153,255,75,255,131,254,8,254,183,253,164,253,14,254, +95,254,32,254,169,253,52,253,236,252,73,253,29,254,193,254,61,255,153,255,73,255,118,254,224,253,128,253,31,253,29,253, +102,253,102,253,53,253,38,253,1,253,219,252,41,253,161,253,167,253,96,253,51,253,24,253,86,253,43,254,213,254,161,254, +252,253,122,253,97,253,15,254,38,255,87,255,47,254,175,252,187,251,162,251,100,252,57,253,81,253,72,253,239,253,167,254, +181,254,112,254,23,254,140,253,53,253,48,253,254,252,241,252,193,253,194,254,3,255,241,254,246,254,133,254,197,253,161,253, +16,254,101,254,89,254,195,253,229,252,223,252,243,253,188,254,116,254,211,253,75,253,253,252,145,253,207,254,42,255,79,254, +168,253,228,253,114,254,242,254,31,255,188,254,145,254,131,255,189,0,213,0,251,255,57,255,245,254,38,255,122,255,65,255, +144,254,168,254,2,0,67,1,37,1,14,0,27,255,231,254,119,255,72,0,124,0,170,255,135,254,57,254,19,255,72,0, +206,0,140,0,86,0,130,0,70,0,76,255,219,254,242,255,78,1,41,1,217,255,2,255,61,255,215,255,221,255,249,254, +32,254,193,254,136,0,132,1,16,1,93,0,242,255,71,255,142,254,161,254,153,255,233,0,0,2,67,2,164,1,250,0, +173,0,24,0,255,254,69,254,179,254,8,0,64,1,92,1,79,0,72,255,234,254,144,254,250,253,97,254,113,0,87,2, +246,1,7,0,159,254,94,254,227,254,213,255,155,0,189,0,113,0,33,0,17,0,252,255,103,255,1,255,181,255,113,0, +40,0,4,0,140,0,106,0,118,255,220,254,39,255,81,0,56,1,152,0,176,255,42,255,30,253,88,252,90,2,126,9, +15,7,23,255,41,253,53,0,2,1,110,0,103,1,97,2,79,2,150,1,94,0,119,0,107,2,7,3,128,1,86,0, +69,255,41,254,155,0,22,6,217,7,245,2,104,251,240,246,200,249,79,1,195,3,28,255,16,254,43,5,221,10,2,8, +230,255,198,248,190,247,173,252,88,0,224,0,179,4,23,9,4,5,228,253,216,252,211,251,1,248,126,252,253,7,162,10, +61,4,230,1,45,4,223,2,120,253,142,249,102,251,228,0,222,2,154,2,94,9,70,18,38,13,50,252,91,242,230,245, +194,252,117,255,188,255,26,2,233,6,4,9,141,4,113,252,119,247,121,250,83,2,250,4,93,0,214,254,227,3,202,5, +170,0,151,251,141,250,57,252,126,255,134,2,134,4,114,7,238,9,129,7,220,0,206,251,113,252,207,1,138,6,71,7, +247,6,217,6,255,2,212,252,196,250,4,252,70,252,15,254,24,4,180,9,211,9,69,5,108,0,202,254,103,255,32,255, +240,254,69,1,63,3,4,1,213,252,110,251,119,253,210,255,77,0,116,0,82,2,40,4,107,3,78,1,55,0,101,0, +162,0,158,255,55,254,144,255,221,2,196,2,19,255,168,253,176,255,229,0,113,0,210,0,26,2,211,2,205,2,120,2, +131,2,161,3,182,4,162,3,9,1,59,0,1,2,114,3,29,3,191,2,196,2,223,1,10,1,2,2,89,3,196,2, +184,0,65,255,186,255,160,1,152,2,57,1,194,254,179,252,224,251,104,253,97,0,74,1,133,255,150,254,193,255,63,0, +249,254,96,254,195,255,133,1,84,2,95,2,178,1,207,0,43,1,36,2,89,1,160,255,121,255,130,255,24,254,48,254, +13,1,125,2,245,0,6,0,152,0,38,0,30,255,196,255,84,1,192,1,35,1,90,0,100,255,224,254,43,0,220,2, +143,4,255,3,97,2,67,1,191,0,241,255,160,254,32,254,173,255,5,2,9,3,149,2,187,1,157,0,244,254,80,253, +124,252,191,252,29,254,37,0,147,1,71,1,149,255,6,254,189,253,137,254,181,255,31,1,172,2,133,3,236,2,44,1, +43,255,246,253,114,254,37,0,81,1,31,1,214,255,109,253,239,250,46,251,5,254,5,255,6,253,127,252,143,254,111,254, +250,250,12,249,142,250,184,252,143,254,91,0,246,255,215,252,185,250,133,251,213,252,95,253,23,254,175,254,188,254,101,255, +56,0,74,255,185,253,46,254,208,255,75,0,199,255,252,254,190,253,60,253,135,254,168,255,2,255,75,254,132,254,42,254, +118,253,63,254,148,255,134,255,83,255,88,0,206,0,147,255,174,254,120,255,201,0,155,1,217,1,151,1,176,1,208,2, +111,3,9,2,48,0,215,255,245,255,19,255,63,254,156,254,61,255,53,255,238,254,188,254,147,254,215,254,176,255,61,0, +207,255,219,254,58,254,135,254,56,0,219,2,117,4,80,3,106,0,158,254,40,255,149,0,97,1,196,1,53,2,10,2, +215,0,152,255,62,255,87,255,78,255,177,255,8,1,95,2,85,2,21,1,242,255,133,255,121,255,139,255,177,255,158,255, +48,255,241,254,108,255,79,0,237,0,21,1,235,0,141,0,75,0,112,0,120,0,147,255,96,254,166,254,158,0,253,1, +245,0,172,254,80,253,29,253,255,252,252,252,232,253,85,255,218,255,45,255,67,254,159,253,14,253,238,252,250,253,173,255, +112,0,178,255,156,254,77,254,143,254,178,254,180,254,245,254,110,255,167,255,53,255,47,254,61,253,29,253,205,253,128,254, +141,254,254,253,24,253,16,252,129,251,34,252,127,253,16,254,97,253,239,252,220,253,0,255,208,254,3,254,107,254,216,255, +91,0,124,255,239,254,189,255,175,0,95,0,63,255,154,254,169,254,196,254,169,254,152,254,168,254,201,254,27,255,166,255, +0,0,185,255,239,254,37,254,175,253,165,253,26,254,5,255,3,0,132,0,81,0,211,255,165,255,225,255,14,0,235,255, +20,0,38,1,105,2,40,2,233,255,126,253,5,253,97,254,131,255,14,255,185,253,4,253,107,253,50,254,118,254,255,253, +81,253,40,253,187,253,121,254,179,254,121,254,137,254,92,255,142,0,79,1,61,1,181,0,59,0,244,255,173,255,75,255, +13,255,98,255,106,0,141,1,218,1,4,1,194,255,247,254,172,254,77,254,216,253,2,254,248,254,171,255,23,255,195,253, +56,253,0,254,30,255,148,255,159,255,237,255,91,0,75,0,220,255,233,255,199,0,199,1,28,2,169,1,198,0,205,255, +47,255,106,255,75,0,198,0,39,0,32,255,241,254,180,255,92,0,92,0,84,0,182,0,198,0,184,255,43,254,135,253, +40,254,57,255,78,0,224,1,220,3,212,4,173,3,106,1,63,0,251,0,102,2,39,3,61,3,57,3,240,2,236,1, +154,0,24,0,201,0,205,1,40,2,205,1,78,1,236,0,106,0,165,255,226,254,143,254,218,254,121,255,217,255,153,255, +23,255,51,255,71,0,141,1,231,1,61,1,148,0,191,0,111,1,213,1,190,1,143,1,126,1,91,1,38,1,58,1, +167,1,225,1,119,1,202,0,152,0,245,0,59,1,19,1,244,0,88,1,205,1,103,1,17,0,231,254,249,254,14,0, +234,0,194,0,12,0,194,255,63,0,7,1,149,1,225,1,9,2,227,1,61,1,87,0,210,255,255,255,144,0,248,0, +235,0,120,0,193,255,242,254,107,254,120,254,238,254,49,255,185,254,206,253,110,253,27,254,63,255,1,0,19,0,200,255, +180,255,250,255,70,0,185,0,164,1,83,2,211,1,182,0,97,0,44,1,72,2,202,2,98,2,141,1,33,1,89,1, +175,1,159,1,36,1,145,0,81,0,153,0,43,1,150,1,145,1,250,0,27,0,229,255,183,0,123,1,63,1,103,0, +187,255,211,255,225,0,229,1,234,1,1,2,24,3,212,3,92,3,199,2,95,2,145,1,10,1,86,1,165,1,193,1, +28,2,70,2,213,1,78,1,219,0,72,0,6,0,113,0,30,1,180,1,42,2,112,2,170,2,20,3,74,3,153,2, +46,1,42,0,124,0,245,1,68,3,70,3,116,2,6,2,215,1,69,1,50,1,50,2,179,2,205,1,222,0,208,0, +39,1,149,1,162,1,166,0,79,255,243,254,208,255,83,1,142,2,125,2,112,1,193,0,234,0,114,1,212,1,182,1, +58,1,238,0,35,1,219,1,130,2,64,2,156,1,139,1,106,1,5,1,100,1,157,1,145,0,75,0,157,1,26,2, +162,1,172,1,243,0,110,255,161,255,171,0,83,0,63,0,62,1,37,1,94,0,140,0,89,0,100,255,198,255,82,1, +21,2,228,1,90,1,129,0,136,255,216,254,61,255,208,0,200,1,41,1,115,0,45,0,111,255,199,254,200,254,130,254, +6,254,46,254,123,254,124,254,166,254,255,254,140,255,60,0,8,0,6,255,181,254,195,254,16,254,231,253,138,255,88,1, +82,1,186,255,89,254,128,254,123,255,227,255,5,0,180,0,67,1,226,0,230,255,242,254,120,254,145,254,11,255,23,0, +125,1,222,1,223,0,223,255,91,255,215,254,188,254,113,255,81,0,213,0,238,0,188,0,156,0,115,0,218,255,140,255, +71,0,15,1,243,0,132,0,78,0,243,255,34,255,73,254,100,254,120,255,246,255,55,255,181,254,57,255,168,255,79,255, +161,254,38,254,78,254,249,254,75,255,47,255,156,255,164,0,25,1,125,0,195,255,189,255,223,255,145,255,143,255,35,0, +242,255,202,254,177,254,34,0,247,0,106,0,41,0,254,0,192,1,129,1,166,0,229,255,137,255,139,255,201,255,73,0, +244,0,78,1,47,1,21,1,252,0,116,0,238,255,23,0,88,0,231,255,68,255,40,255,72,255,78,255,167,255,102,0, +173,0,35,0,163,255,125,255,20,255,160,254,180,254,105,254,51,253,180,252,198,253,157,254,39,254,182,253,28,254,137,254, +144,254,141,254,128,254,84,254,112,254,208,254,185,254,85,254,192,254,157,255,108,255,166,254,187,254,215,254,213,253,247,252, +69,253,244,253,195,254,225,255,107,0,17,0,150,255,242,254,46,254,75,254,248,254,177,254,164,253,35,253,76,253,129,253, +141,253,172,253,23,254,70,254,146,253,207,252,15,253,133,253,62,253,234,252,50,253,191,253,38,254,53,254,34,254,90,254, +107,254,198,253,107,253,55,254,255,254,172,254,234,253,133,253,102,253,117,253,241,253,167,254,215,254,135,254,157,254,155,254, +65,253,27,252,89,253,20,255,204,254,21,254,121,254,165,254,139,254,89,255,1,0,140,255,48,255,41,255,148,254,18,254, +126,254,58,255,144,255,98,255,8,255,68,255,185,255,42,255,41,254,41,254,2,255,194,255,63,0,166,0,253,0,31,1, +176,0,21,0,66,0,196,0,144,0,69,0,120,0,37,0,51,255,14,255,250,255,230,0,65,1,42,1,246,0,198,0, +96,0,13,0,107,0,219,0,128,0,6,0,5,0,222,255,115,255,60,255,31,255,87,255,68,0,220,0,63,0,129,255, +166,255,22,0,82,0,138,0,138,0,49,0,31,0,152,0,221,0,135,0,59,0,79,0,33,0,177,255,185,255,223,255, +98,255,244,254,73,255,156,255,136,255,181,255,247,255,151,255,227,254,165,254,17,255,190,255,28,0,62,0,143,0,138,0, +140,255,78,254,209,253,91,254,196,255,241,0,198,0,33,0,209,255,217,254,203,253,117,254,167,255,209,255,10,0,146,255, +94,253,56,254,124,4,226,7,43,3,214,253,172,253,149,254,173,253,220,252,194,252,254,253,151,1,16,4,2,2,29,255, +165,255,170,1,46,2,134,1,243,0,15,1,96,1,192,0,0,0,230,0,62,2,215,1,26,0,230,253,131,251,37,251, +134,254,143,2,177,2,212,255,141,255,238,2,81,3,248,253,158,250,129,253,7,0,68,0,35,4,103,8,132,4,165,252, +43,249,78,248,222,248,123,255,148,8,115,10,50,5,91,0,95,255,136,0,45,0,122,253,169,253,91,2,154,3,28,255, +230,254,211,5,242,8,142,3,159,253,108,251,133,249,45,249,157,255,179,8,188,9,189,2,16,254,159,254,184,254,106,254, +141,1,79,4,174,1,161,253,118,253,189,255,104,1,188,1,136,0,67,254,123,252,1,253,243,0,177,5,159,5,184,0, +200,253,174,255,123,2,148,3,116,3,245,1,211,255,174,255,48,2,190,4,86,4,111,0,79,252,31,252,196,255,116,3, +30,5,137,5,41,5,29,3,174,255,200,253,151,255,87,2,193,1,130,254,95,252,78,252,43,253,216,254,80,1,170,3, +23,5,19,5,182,3,71,2,242,1,55,2,128,1,62,255,139,253,213,254,88,1,82,1,154,255,161,255,234,0,75,1, +93,1,120,1,130,0,180,255,241,0,190,2,106,3,5,4,178,4,173,3,103,1,115,0,140,1,48,3,233,3,27,3, +76,1,67,0,59,1,7,3,180,3,95,3,125,3,52,4,119,4,242,3,139,2,242,255,228,252,86,251,131,252,76,255, +66,1,109,1,209,0,7,0,229,254,92,254,96,255,144,0,112,0,41,0,232,0,163,1,166,1,142,1,57,1,130,0, +192,0,26,2,100,2,211,0,50,255,231,254,255,255,187,1,41,2,79,0,159,254,21,255,193,255,77,255,178,255,244,0, +76,0,95,254,135,254,66,0,197,0,135,0,9,1,103,1,66,1,221,1,167,2,13,2,18,1,64,1,134,1,216,0, +70,0,51,0,141,255,156,254,151,254,231,254,100,254,34,254,126,255,239,0,39,0,43,254,167,253,107,254,93,254,195,253, +109,254,234,255,187,0,82,1,30,2,170,1,204,255,213,254,146,255,99,0,209,0,99,1,12,1,26,255,125,253,179,253, +143,254,8,255,132,255,155,255,64,254,44,252,86,251,101,252,44,254,5,255,155,254,118,254,130,255,217,255,184,253,68,251, +191,251,101,254,0,0,247,255,11,0,86,0,44,255,174,252,126,251,36,253,195,255,174,0,243,255,110,255,141,255,67,255, +150,254,165,254,119,255,229,255,155,255,88,255,94,255,71,255,81,255,26,0,16,1,220,0,130,255,151,254,231,254,115,255, +86,255,63,255,62,0,3,2,66,3,54,3,57,2,57,1,245,0,81,1,94,1,134,0,141,255,119,255,196,255,23,255, +176,253,128,253,68,255,41,1,81,1,62,0,126,255,61,255,201,254,131,254,96,255,225,0,105,1,179,0,54,0,227,0, +239,1,71,2,237,1,89,1,144,0,168,255,37,255,49,255,51,255,239,254,47,255,115,0,185,1,176,1,160,0,242,255, +44,0,150,0,192,0,19,1,134,1,34,1,159,255,106,254,248,254,178,0,169,1,28,1,29,0,202,255,6,0,51,0, +44,0,245,255,88,255,137,254,108,254,101,255,110,0,75,0,60,255,110,254,17,254,82,253,55,252,16,252,117,253,35,255, +155,255,3,255,116,254,73,254,46,254,80,254,24,255,2,0,254,255,25,255,138,254,228,254,78,255,3,255,138,254,175,254, +22,255,196,254,179,253,224,252,243,252,157,253,69,254,169,254,160,254,239,253,213,252,81,252,44,253,216,254,213,255,88,255, +54,254,193,253,47,254,166,254,179,254,234,254,206,255,198,0,209,0,229,255,7,255,39,255,45,0,46,1,97,1,141,0, +22,255,237,253,225,253,202,254,208,255,54,0,214,255,79,255,112,255,15,0,92,0,44,0,225,255,165,255,136,255,143,255, +154,255,217,255,97,0,160,0,120,0,193,0,140,1,201,1,11,1,227,255,251,254,216,254,89,255,187,255,220,255,0,0, +142,255,85,254,146,253,199,253,236,253,120,253,225,252,196,252,179,253,85,255,57,0,13,0,206,255,167,255,111,255,226,255, +226,0,42,1,141,0,217,255,110,255,142,255,255,255,207,255,88,255,234,255,225,0,207,0,59,0,10,0,213,255,89,255, +188,254,48,254,162,254,34,0,173,0,135,255,132,254,117,254,146,254,7,255,37,0,50,1,177,1,90,1,16,0,72,255, +43,0,50,1,67,1,143,1,24,2,111,1,48,0,16,0,22,1,248,1,46,1,161,254,43,253,182,254,136,0,32,0, +102,255,21,0,166,0,199,255,87,254,9,254,177,255,96,1,104,0,97,254,15,255,222,1,141,3,136,3,217,2,231,1, +52,1,213,0,111,0,208,0,45,2,155,2,131,1,137,0,31,0,222,255,82,0,8,1,214,0,139,0,244,0,196,0, +118,255,69,254,226,253,137,254,234,255,62,0,50,255,30,255,80,0,96,0,56,255,179,254,249,254,141,255,121,0,239,0, +132,0,55,0,87,0,169,0,147,1,43,2,224,0,13,255,6,255,28,0,176,0,225,0,13,1,38,1,39,1,127,0, +70,255,40,255,112,0,36,1,145,0,230,255,174,255,188,255,237,255,229,255,218,255,98,0,246,0,15,1,92,1,182,1, +14,1,32,0,83,0,25,1,92,1,6,1,50,0,93,255,65,255,114,255,113,255,230,255,159,0,112,0,198,255,138,255, +247,254,179,253,255,252,109,253,134,254,211,255,103,0,217,255,108,255,200,255,23,0,117,0,71,1,100,1,180,0,52,1, +228,2,112,3,140,2,254,1,73,2,156,2,88,2,124,1,213,0,245,0,235,0,9,0,130,255,255,255,67,0,220,255, +204,255,42,0,78,0,151,0,75,1,109,1,149,0,214,255,214,255,24,0,62,0,88,0,108,0,179,0,125,1,121,2, +253,2,212,2,36,2,69,1,216,0,38,1,172,1,214,1,166,1,122,1,125,1,44,1,24,0,43,255,108,255,50,0, +165,0,104,1,162,2,246,2,6,2,9,1,145,0,124,0,21,1,27,2,150,2,158,2,251,2,61,3,168,2,229,1, +215,1,26,2,251,1,173,1,162,1,174,1,122,1,68,1,76,1,50,1,197,0,150,0,175,0,94,0,217,255,248,255, +117,0,187,0,64,1,236,1,148,1,96,0,239,255,174,0,182,1,110,2,154,2,66,2,12,2,46,2,224,1,234,0, +26,0,226,255,46,0,230,0,158,1,217,1,138,1,177,0,179,255,179,255,167,0,230,0,41,0,221,255,34,0,48,0, +125,0,21,1,196,0,208,255,189,255,101,0,237,0,125,1,157,1,144,0,158,255,15,0,208,0,6,1,67,1,44,1, +55,0,136,255,155,255,94,255,250,254,48,255,24,255,113,254,177,254,125,255,24,255,86,254,191,254,34,255,151,254,159,254, +177,255,62,0,214,255,85,255,9,255,24,255,154,255,213,255,123,255,93,255,144,255,77,255,220,254,22,255,212,255,175,0, +158,1,23,2,140,1,147,0,8,0,219,255,162,255,85,255,35,255,104,255,79,0,27,1,188,0,136,255,30,255,0,0, +182,0,90,0,5,0,95,0,100,0,3,0,128,0,120,1,89,1,145,0,114,0,160,0,121,0,126,0,144,0,232,255, +51,255,154,255,112,0,114,0,245,255,208,255,189,255,94,255,43,255,73,255,23,255,161,254,181,254,54,255,71,255,10,255, +52,255,149,255,186,255,235,255,40,0,199,255,240,254,189,254,54,255,50,255,163,254,191,254,169,255,77,0,118,0,199,0, +17,1,187,0,243,255,94,255,119,255,64,0,247,0,251,0,199,0,198,0,168,0,168,0,51,1,123,1,190,0,146,255, +148,254,15,254,140,254,134,255,176,255,151,255,144,0,210,1,247,1,61,1,66,0,89,255,29,255,111,255,101,255,10,255, +5,255,50,255,67,255,20,255,67,254,30,253,163,252,243,252,147,253,83,254,169,254,46,254,193,253,34,254,212,254,71,255, +58,255,145,254,16,254,103,254,209,254,151,254,35,254,135,253,228,252,89,253,253,254,54,0,100,0,73,0,26,0,152,255, +219,254,29,254,211,253,86,254,248,254,234,254,95,254,214,253,182,253,66,254,197,254,122,254,252,253,210,253,68,253,107,252, +159,252,236,253,15,255,108,255,12,255,66,254,220,253,47,254,170,254,240,254,229,254,84,254,162,253,126,253,209,253,84,254, +252,254,86,255,33,255,232,254,193,254,47,254,144,253,175,253,97,254,206,254,101,254,125,253,81,253,95,254,132,255,222,255, +212,255,173,255,82,255,30,255,56,255,77,255,112,255,206,255,6,0,220,255,133,255,60,255,84,255,196,255,197,255,19,255, +139,254,207,254,154,255,72,0,80,0,0,0,104,0,106,1,146,1,158,0,195,255,152,255,205,255,32,0,76,0,51,0, +28,0,30,0,24,0,36,0,65,0,89,0,134,0,115,0,173,255,254,254,79,255,211,255,174,255,153,255,233,255,178,255, +6,255,65,255,180,0,247,1,168,1,27,0,236,254,220,254,70,255,213,255,198,0,142,1,132,1,8,1,69,0,0,255, +40,254,191,254,221,255,104,0,177,0,168,0,186,255,204,254,251,254,120,255,76,255,244,254,193,254,96,254,30,254,121,254, +76,255,79,0,250,0,165,0,159,255,193,254,79,254,188,254,85,0,174,1,98,1,127,0,61,0,18,0,48,255,93,253, +20,252,196,254,204,4,31,7,235,2,117,254,191,253,226,253,177,253,156,254,171,255,114,0,60,2,44,3,255,0,62,254, +209,253,35,255,226,0,14,2,231,1,254,0,222,255,215,254,232,254,94,255,167,254,198,254,191,1,63,4,250,2,43,0, +55,255,255,255,159,0,110,0,51,0,99,0,53,0,219,254,19,253,43,253,180,255,223,0,165,254,170,254,19,4,114,6, +72,0,115,250,145,251,131,253,159,253,172,1,171,7,255,6,70,1,211,254,195,255,33,255,98,253,7,254,207,0,69,2, +191,0,224,254,233,255,135,2,55,3,19,2,221,0,188,254,239,251,229,252,250,2,48,7,79,3,189,251,25,249,185,252, +207,1,129,4,55,3,72,255,175,253,135,0,0,3,94,1,104,254,176,253,73,255,85,1,155,1,244,255,109,255,60,1, +228,1,162,255,93,254,233,0,8,4,66,4,240,2,216,1,240,255,251,253,90,255,67,3,88,4,73,1,190,254,135,255, +90,1,239,1,8,2,109,2,240,1,5,0,147,254,73,255,1,1,150,1,170,0,70,255,83,254,58,254,238,254,40,0, +197,1,96,3,46,4,214,3,133,2,94,0,105,254,137,254,157,0,4,2,119,1,69,0,132,255,123,255,170,0,40,2, +212,1,73,0,74,0,158,1,172,1,164,0,176,0,192,1,131,2,6,3,149,3,150,3,193,2,189,1,126,1,89,2, +243,2,200,1,62,0,195,0,86,2,137,2,53,2,6,3,200,3,114,3,28,3,124,2,54,0,232,253,239,253,12,255, +82,255,158,255,138,0,198,0,27,0,180,255,193,255,242,255,67,0,2,0,11,255,248,254,36,0,142,0,196,255,149,255, +46,0,110,0,209,0,164,1,86,1,223,255,160,255,244,0,171,1,72,1,46,1,96,1,217,0,214,255,112,255,20,0, +56,1,200,1,48,1,18,0,47,255,123,254,46,254,243,254,89,0,68,1,218,1,195,2,52,3,31,2,105,0,219,255, +151,0,19,1,64,0,237,254,185,254,198,255,115,0,222,255,45,255,141,255,82,0,39,0,3,255,40,254,154,254,251,255, +226,0,134,0,194,255,198,255,76,0,45,0,102,255,42,255,234,255,163,0,154,0,55,0,200,255,246,254,8,254,46,254, +143,255,152,0,61,0,131,255,142,255,163,255,171,254,113,253,138,253,186,254,102,255,27,255,222,254,35,255,39,255,134,254, +231,253,219,253,29,254,107,254,5,255,239,255,94,0,111,255,84,253,125,251,132,251,157,253,12,0,182,0,116,255,30,254, +37,254,22,255,217,255,78,0,180,0,151,0,136,255,68,254,241,253,178,254,218,255,254,0,186,1,51,1,51,255,74,253, +92,253,46,255,196,0,16,1,220,0,0,1,27,1,136,0,130,255,195,254,192,254,148,255,245,0,237,1,124,1,199,255, +49,254,226,253,195,254,254,255,249,0,122,1,93,1,144,0,67,255,255,253,130,253,81,254,23,0,163,1,0,2,99,1, +187,0,142,0,184,0,3,1,79,1,93,1,245,0,68,0,163,255,28,255,177,254,197,254,158,255,164,0,222,0,64,0, +171,255,174,255,251,255,49,0,112,0,201,0,202,0,46,0,122,255,94,255,209,255,67,0,131,0,218,0,86,1,133,1, +31,1,128,0,54,0,66,0,54,0,240,255,204,255,240,255,249,255,144,255,4,255,204,254,203,254,151,254,76,254,104,254, +244,254,96,255,92,255,58,255,78,255,101,255,65,255,38,255,112,255,217,255,194,255,35,255,151,254,127,254,146,254,126,254, +102,254,116,254,102,254,3,254,172,253,239,253,162,254,255,254,157,254,229,253,99,253,57,253,103,253,25,254,53,255,2,0, +199,255,184,254,198,253,144,253,243,253,144,254,68,255,224,255,249,255,113,255,218,254,222,254,112,255,244,255,30,0,35,0, +45,0,18,0,192,255,134,255,158,255,197,255,166,255,100,255,92,255,134,255,120,255,21,255,185,254,180,254,240,254,62,255, +179,255,89,0,226,0,248,0,188,0,163,0,209,0,245,0,203,0,101,0,234,255,78,255,145,254,253,253,216,253,2,254, +32,254,22,254,19,254,46,254,63,254,41,254,17,254,31,254,65,254,87,254,117,254,195,254,58,255,173,255,20,0,148,0, +45,1,158,1,166,1,67,1,169,0,18,0,187,255,222,255,133,0,87,1,198,1,116,1,118,0,53,255,51,254,217,253, +72,254,63,255,47,0,144,0,52,0,88,255,115,254,253,253,48,254,240,254,218,255,134,0,186,0,133,0,52,0,19,0, +72,0,209,0,113,1,211,1,215,1,152,1,51,1,218,0,186,0,198,0,235,0,15,1,223,0,58,0,144,255,44,255, +247,254,8,255,112,255,222,255,29,0,39,0,226,255,151,255,180,255,0,0,53,0,150,0,59,1,231,1,119,2,160,2, +59,2,190,1,83,1,196,0,128,0,194,0,173,0,27,0,239,255,7,0,182,255,139,255,2,0,115,0,120,0,79,0, +236,255,89,255,1,255,246,254,36,255,187,255,119,0,145,0,4,0,156,255,160,255,168,255,184,255,23,0,121,0,148,0, +148,0,106,0,36,0,86,0,190,0,131,0,56,0,127,0,72,0,94,255,80,255,33,0,127,0,156,0,240,0,192,0, +32,0,229,255,253,255,30,0,66,0,18,0,214,255,49,0,116,0,241,255,123,255,154,255,241,255,123,0,235,0,187,0, +124,0,147,0,80,0,253,255,141,0,72,1,24,1,94,0,166,255,26,255,31,255,135,255,166,255,156,255,154,255,41,255, +116,254,67,254,140,254,230,254,86,255,204,255,10,0,53,0,84,0,32,0,192,255,187,255,25,0,115,0,166,0,206,0, +239,0,251,0,214,0,128,0,90,0,172,0,14,1,14,1,243,0,240,0,182,0,76,0,32,0,49,0,73,0,81,0, +11,0,135,255,92,255,171,255,18,0,128,0,206,0,161,0,77,0,83,0,112,0,114,0,138,0,140,0,121,0,214,0, +136,1,230,1,223,1,166,1,47,1,178,0,145,0,199,0,9,1,14,1,240,0,0,1,249,0,124,0,48,0,138,0, +200,0,174,0,226,0,51,1,51,1,50,1,71,1,95,1,204,1,35,2,213,1,203,1,108,2,156,2,104,2,180,2, +202,2,28,2,178,1,179,1,124,1,143,1,6,2,254,1,205,1,56,2,131,2,25,2,169,1,141,1,117,1,75,1, +50,1,89,1,158,1,123,1,11,1,208,0,141,0,93,0,20,1,255,1,181,1,250,0,22,1,114,1,123,1,143,1, +99,1,150,0,212,255,147,255,191,255,111,0,68,1,134,1,41,1,107,0,154,255,119,255,28,0,134,0,90,0,41,0, +2,0,201,255,212,255,26,0,53,0,51,0,66,0,94,0,134,0,139,0,72,0,34,0,101,0,192,0,231,0,213,0, +105,0,178,255,40,255,17,255,75,255,168,255,246,255,237,255,141,255,45,255,238,254,186,254,187,254,251,254,8,255,213,254, +11,255,193,255,53,0,3,0,107,255,230,254,221,254,48,255,97,255,102,255,85,255,1,255,170,254,177,254,246,254,165,255, +221,0,119,1,201,0,16,0,254,255,242,255,253,255,77,0,66,0,20,0,104,0,159,0,106,0,137,0,216,0,208,0, +244,0,71,1,247,0,74,0,31,0,120,0,243,0,60,1,65,1,112,1,170,1,66,1,166,0,141,0,102,0,27,0, +149,0,60,1,206,0,247,255,199,255,218,255,220,255,32,0,134,0,193,0,195,0,100,0,175,255,4,255,176,254,201,254, +30,255,95,255,189,255,66,0,58,0,196,255,212,255,6,0,113,255,243,254,92,255,136,255,218,254,113,254,228,254,182,255, +127,0,218,0,165,0,103,0,64,0,219,255,199,255,123,0,3,1,227,0,21,1,157,1,70,1,81,0,15,0,101,0, +109,0,69,0,62,0,243,255,62,255,179,254,186,254,48,255,238,255,206,0,68,1,174,0,114,255,195,254,237,254,39,255, +67,255,178,255,28,0,227,255,102,255,49,255,13,255,217,254,237,254,63,255,68,255,183,254,230,253,79,253,57,253,169,253, +100,254,236,254,6,255,252,254,191,254,241,253,41,253,103,253,52,254,153,254,216,254,96,255,219,255,65,0,179,0,155,0, +191,255,230,254,141,254,152,254,0,255,97,255,255,254,36,254,221,253,77,254,213,254,59,255,118,255,59,255,147,254,248,253, +169,253,147,253,180,253,9,254,81,254,100,254,90,254,58,254,254,253,245,253,114,254,3,255,225,254,59,254,206,253,143,253, +58,253,101,253,84,254,57,255,159,255,182,255,58,255,45,254,145,253,200,253,17,254,42,254,91,254,116,254,73,254,44,254, +77,254,169,254,48,255,139,255,133,255,85,255,40,255,255,254,239,254,236,254,227,254,0,255,89,255,183,255,215,255,140,255, +8,255,207,254,250,254,53,255,89,255,66,255,246,254,14,255,190,255,66,0,69,0,51,0,51,0,78,0,133,0,92,0, +205,255,170,255,7,0,83,0,170,0,10,1,186,0,216,255,85,255,97,255,175,255,27,0,140,0,194,0,139,0,245,255, +90,255,22,255,76,255,249,255,207,0,77,1,95,1,34,1,139,0,230,255,176,255,240,255,122,0,4,1,236,0,44,0, +137,255,68,255,68,255,167,255,252,255,227,255,246,255,69,0,244,255,52,255,250,254,90,255,222,255,225,255,43,255,254,254, +7,0,201,0,138,0,68,0,254,255,134,255,132,255,152,255,25,255,100,254,111,253,159,253,229,1,36,7,51,6,199,0, +135,254,90,255,253,254,64,254,139,254,242,254,69,0,72,2,191,1,42,255,144,254,236,255,144,0,117,0,152,0,175,0, +44,0,1,255,87,254,48,255,227,255,62,255,162,255,174,1,21,2,95,0,194,255,176,0,249,0,110,0,116,0,79,1, +220,1,18,1,137,255,154,254,120,254,251,254,64,0,97,1,125,1,246,0,103,255,107,252,171,250,133,252,173,255,20,1, +98,1,76,2,84,3,30,3,177,1,103,0,215,255,107,255,110,255,132,0,98,1,197,0,191,255,75,255,133,255,84,1, +172,3,205,2,219,254,251,252,42,255,52,2,78,3,193,1,38,254,167,251,94,253,88,1,215,2,209,0,152,254,228,254, +205,0,245,1,145,1,6,0,5,254,94,253,44,255,78,1,159,1,61,1,30,1,79,0,156,255,210,0,159,2,179,2, +181,1,76,1,60,1,140,0,169,255,79,0,173,2,227,3,72,2,132,0,187,0,25,1,49,0,73,255,19,255,23,255, +108,255,231,255,1,0,39,0,133,0,46,0,84,255,119,255,178,0,143,1,137,1,221,1,80,3,72,4,242,2,97,0, +209,254,105,254,144,254,143,255,192,0,178,0,171,255,4,255,95,255,196,0,60,2,44,2,4,1,170,0,222,0,95,0, +245,255,125,0,239,0,229,0,121,1,175,2,61,3,213,2,89,2,67,2,25,2,140,1,41,1,81,1,118,1,83,1, +113,1,246,1,138,2,255,2,241,2,234,1,104,0,91,255,5,255,59,255,169,255,217,255,206,255,220,255,212,255,174,255, +8,0,192,0,220,0,103,0,33,0,241,255,140,255,131,255,43,0,197,0,156,0,6,0,208,255,62,0,224,0,37,1, +229,0,62,0,94,255,187,254,16,255,106,0,116,1,241,0,167,255,93,255,20,0,138,0,143,0,202,0,235,0,78,0, +149,255,162,255,15,0,70,0,197,0,209,1,130,2,58,2,156,1,86,1,60,1,247,0,108,0,128,255,108,254,248,253, +165,254,227,255,162,0,119,0,227,255,130,255,61,255,179,254,62,254,154,254,154,255,83,0,149,0,195,0,157,0,194,255, +243,254,34,255,218,255,28,0,252,255,248,255,204,255,22,255,50,254,167,253,155,253,35,254,62,255,91,0,191,0,60,0, +52,255,57,254,236,253,148,254,181,255,96,0,253,255,205,254,210,253,5,254,69,255,89,0,117,0,16,0,226,255,246,255, +2,0,219,255,89,255,142,254,31,254,146,254,108,255,171,255,250,254,18,254,240,253,205,254,220,255,51,0,222,255,130,255, +70,255,214,254,91,254,89,254,216,254,118,255,4,0,82,0,245,255,2,255,96,254,186,254,164,255,89,0,192,0,35,1, +112,1,75,1,191,0,80,0,99,0,224,0,103,1,149,1,21,1,251,255,17,255,46,255,24,0,199,0,213,0,221,0, +70,1,155,1,99,1,214,0,108,0,82,0,129,0,221,0,27,1,238,0,122,0,94,0,233,0,141,1,154,1,37,1, +192,0,146,0,78,0,234,255,190,255,245,255,88,0,176,0,232,0,216,0,85,0,172,255,111,255,189,255,25,0,41,0, +34,0,62,0,75,0,27,0,252,255,65,0,176,0,204,0,132,0,50,0,23,0,49,0,119,0,195,0,173,0,254,255, +44,255,241,254,91,255,199,255,196,255,134,255,95,255,65,255,13,255,232,254,252,254,41,255,59,255,43,255,253,254,167,254, +91,254,148,254,115,255,89,0,127,0,224,255,40,255,214,254,216,254,226,254,193,254,82,254,158,253,2,253,250,252,149,253, +97,254,238,254,30,255,242,254,110,254,207,253,149,253,251,253,164,254,7,255,3,255,212,254,174,254,161,254,190,254,16,255, +111,255,161,255,160,255,141,255,129,255,135,255,184,255,17,0,67,0,227,255,252,254,39,254,242,253,95,254,252,254,94,255, +105,255,75,255,74,255,138,255,225,255,255,255,200,255,118,255,76,255,83,255,105,255,136,255,196,255,28,0,115,0,176,0, +212,0,233,0,222,0,140,0,222,255,3,255,105,254,112,254,8,255,163,255,185,255,75,255,181,254,90,254,97,254,141,254, +139,254,104,254,90,254,101,254,112,254,118,254,131,254,171,254,247,254,95,255,215,255,71,0,150,0,189,0,180,0,115,0, +41,0,21,0,63,0,158,0,252,0,217,0,22,0,97,255,57,255,96,255,124,255,105,255,30,255,223,254,228,254,234,254, +212,254,227,254,25,255,120,255,73,0,35,1,34,1,152,0,122,0,146,0,90,0,84,0,206,0,27,1,241,0,201,0, +178,0,101,0,37,0,84,0,158,0,101,0,169,255,4,255,233,254,63,255,166,255,220,255,193,255,82,255,251,254,97,255, +94,0,243,0,223,0,234,0,25,1,213,0,194,0,171,1,142,2,120,2,67,2,99,2,12,2,102,1,85,1,134,1, +89,1,27,1,243,0,190,0,171,0,157,0,73,0,8,0,17,0,5,0,29,0,171,0,220,0,34,0,89,255,38,255, +55,255,83,255,123,255,159,255,215,255,22,0,7,0,203,255,224,255,73,0,113,0,227,255,37,255,92,255,126,0,66,1, +57,1,178,0,130,255,127,254,64,255,189,0,186,0,30,0,146,0,243,0,112,0,91,0,185,0,118,0,56,0,141,0, +115,0,250,255,59,0,207,0,219,0,179,0,175,0,178,0,218,0,247,0,185,0,103,0,51,0,251,255,18,0,138,0, +163,0,51,0,202,255,124,255,84,255,170,255,25,0,252,255,158,255,93,255,32,255,35,255,123,255,113,255,214,254,115,254, +129,254,139,254,154,254,253,254,124,255,183,255,184,255,221,255,53,0,105,0,103,0,150,0,230,0,216,0,132,0,114,0, +160,0,192,0,198,0,185,0,154,0,150,0,197,0,247,0,255,0,234,0,231,0,252,0,248,0,213,0,206,0,237,0, +253,0,242,0,194,0,82,0,230,255,230,255,29,0,16,0,218,255,236,255,87,0,202,0,18,1,82,1,161,1,202,1, +173,1,126,1,57,1,189,0,90,0,108,0,199,0,42,1,133,1,156,1,73,1,217,0,149,0,134,0,178,0,241,0, +241,0,189,0,179,0,236,0,77,1,184,1,3,2,28,2,31,2,11,2,200,1,90,1,217,0,115,0,95,0,150,0, +210,0,254,0,47,1,89,1,109,1,107,1,76,1,18,1,215,0,176,0,182,0,245,0,89,1,167,1,171,1,101,1, +11,1,201,0,157,0,104,0,39,0,252,255,13,0,95,0,195,0,242,0,196,0,95,0,19,0,4,0,24,0,47,0, +82,0,136,0,171,0,145,0,90,0,82,0,155,0,0,1,40,1,224,0,72,0,207,255,219,255,77,0,142,0,63,0, +180,255,142,255,246,255,122,0,164,0,113,0,49,0,48,0,105,0,131,0,38,0,122,255,34,255,124,255,28,0,82,0, +7,0,184,255,174,255,184,255,160,255,123,255,98,255,74,255,47,255,42,255,67,255,120,255,226,255,117,0,188,0,62,0, +67,255,169,254,226,254,121,255,201,255,184,255,138,255,105,255,104,255,162,255,13,0,100,0,121,0,96,0,41,0,191,255, +59,255,249,254,42,255,148,255,241,255,62,0,122,0,119,0,51,0,17,0,84,0,178,0,188,0,114,0,30,0,228,255, +199,255,227,255,60,0,140,0,142,0,94,0,59,0,27,0,226,255,195,255,255,255,99,0,118,0,53,0,13,0,36,0, +24,0,162,255,20,255,242,254,80,255,212,255,40,0,56,0,26,0,236,255,201,255,194,255,201,255,197,255,180,255,183,255, +222,255,247,255,203,255,132,255,126,255,172,255,167,255,89,255,54,255,138,255,2,0,33,0,244,255,212,255,193,255,146,255, +127,255,218,255,118,0,224,0,236,0,197,0,149,0,91,0,34,0,45,0,138,0,188,0,101,0,240,255,229,255,29,0, +50,0,54,0,102,0,160,0,138,0,32,0,202,255,199,255,217,255,201,255,200,255,249,255,35,0,32,0,19,0,12,0, +232,255,165,255,137,255,199,255,8,0,185,255,245,254,122,254,132,254,165,254,182,254,228,254,14,255,247,254,206,254,204,254, +229,254,249,254,245,254,200,254,122,254,69,254,95,254,191,254,22,255,53,255,74,255,103,255,72,255,242,254,208,254,228,254, +188,254,91,254,72,254,191,254,110,255,209,255,190,255,113,255,15,255,137,254,51,254,110,254,194,254,149,254,78,254,124,254, +183,254,134,254,79,254,134,254,233,254,8,255,215,254,154,254,110,254,46,254,224,253,200,253,226,253,3,254,65,254,132,254, +113,254,48,254,39,254,48,254,30,254,60,254,141,254,195,254,218,254,184,254,59,254,2,254,178,254,186,255,79,0,106,0, +4,0,39,255,162,254,203,254,231,254,194,254,251,254,120,255,144,255,71,255,47,255,156,255,42,0,41,0,190,255,138,255, +96,255,1,255,247,254,104,255,215,255,24,0,32,0,217,255,151,255,193,255,110,0,73,1,137,1,22,1,191,0,140,0, +31,0,241,255,3,0,178,255,102,255,133,255,133,255,154,255,57,0,169,0,159,0,171,0,115,0,220,255,251,255,145,0, +87,0,220,255,51,0,185,0,158,0,17,0,145,255,220,255,249,0,116,1,166,0,218,255,193,255,173,255,110,255,101,255, +166,255,18,0,93,0,71,0,24,0,248,255,230,255,30,0,51,0,167,255,154,255,152,0,219,0,206,255,136,254,7,253, +239,252,110,1,219,6,165,5,197,255,73,253,138,254,59,255,48,255,60,255,0,255,185,255,40,1,138,0,176,254,222,254, +71,0,148,0,137,0,17,1,93,1,16,1,83,0,80,255,160,254,248,253,32,253,74,254,221,1,73,3,159,0,116,254, +44,255,135,255,73,254,244,253,48,255,135,0,78,1,87,1,142,0,108,255,103,254,76,254,238,255,238,1,11,2,172,0, +68,255,219,253,220,252,175,252,167,251,72,250,78,253,221,4,22,9,167,5,22,0,182,253,242,252,40,252,158,253,86,1, +58,3,11,2,207,0,72,0,127,254,254,252,87,255,149,3,2,4,85,0,104,254,113,1,57,5,145,3,223,252,123,248, +85,251,167,1,195,4,79,3,119,0,213,254,203,254,89,255,34,255,4,254,93,253,50,254,234,255,14,1,237,0,82,0, +77,0,173,0,201,0,186,0,147,0,11,0,234,255,49,1,111,2,59,1,183,254,188,254,225,1,84,4,174,3,17,2, +225,1,49,2,83,1,199,255,221,254,190,254,195,254,129,254,81,254,243,254,62,0,27,1,59,1,32,1,188,0,62,0, +241,0,33,3,232,4,201,4,76,3,100,1,129,255,75,254,83,254,49,255,252,255,47,0,177,255,231,254,210,254,253,255, +89,1,96,1,104,0,41,0,8,1,177,1,114,1,21,1,51,1,88,1,21,1,197,0,242,0,112,1,156,1,71,1, +249,0,45,1,226,1,190,2,74,3,56,3,170,2,44,2,52,2,109,2,228,1,146,0,221,255,122,0,36,1,204,0, +96,0,184,0,207,0,249,255,134,255,57,0,159,0,199,255,49,255,53,0,202,1,77,2,149,1,97,0,94,255,8,255, +71,255,117,255,148,255,82,0,95,1,88,1,15,0,15,255,66,255,241,255,97,0,178,0,242,0,187,0,249,255,56,255, +33,255,226,255,231,0,92,1,44,1,231,0,150,0,225,255,103,255,50,0,190,1,107,2,251,1,173,1,220,1,168,1, +210,0,19,0,201,255,194,255,231,255,16,0,205,255,27,255,158,254,189,254,76,255,3,0,135,0,105,0,194,255,71,255, +54,255,55,255,95,255,13,0,182,0,97,0,82,255,200,254,34,255,160,255,198,255,201,255,192,255,139,255,70,255,40,255, +18,255,195,254,77,254,41,254,207,254,8,0,209,0,89,0,19,255,47,254,56,254,204,254,114,255,241,255,32,0,254,255, +212,255,196,255,159,255,81,255,38,255,96,255,237,255,118,0,126,0,188,255,162,254,30,254,139,254,64,255,122,255,51,255, +225,254,209,254,5,255,91,255,167,255,208,255,213,255,177,255,99,255,12,255,0,255,117,255,40,0,119,0,245,255,236,254, +57,254,140,254,197,255,13,1,154,1,87,1,212,0,153,0,164,0,134,0,4,0,108,255,76,255,213,255,158,0,0,1, +181,0,14,0,155,255,164,255,251,255,74,0,107,0,113,0,115,0,98,0,40,0,224,255,217,255,80,0,34,1,218,1, +13,2,178,1,31,1,181,0,147,0,145,0,120,0,55,0,230,255,169,255,149,255,177,255,251,255,97,0,187,0,212,0, +140,0,253,255,106,255,29,255,54,255,159,255,40,0,152,0,198,0,161,0,58,0,204,255,156,255,208,255,74,0,185,0, +208,0,126,0,248,255,138,255,106,255,150,255,231,255,40,0,42,0,215,255,62,255,149,254,39,254,35,254,126,254,247,254, +76,255,103,255,100,255,106,255,133,255,160,255,164,255,140,255,101,255,60,255,29,255,24,255,71,255,175,255,39,0,92,0, +13,0,74,255,127,254,35,254,96,254,238,254,80,255,51,255,175,254,37,254,241,253,42,254,153,254,239,254,248,254,187,254, +109,254,76,254,124,254,237,254,102,255,173,255,171,255,125,255,85,255,79,255,97,255,100,255,67,255,37,255,69,255,170,255, +38,0,131,0,134,0,7,0,71,255,217,254,250,254,108,255,234,255,68,0,79,0,15,0,191,255,122,255,73,255,49,255, +32,255,22,255,52,255,121,255,219,255,98,0,217,0,224,0,148,0,91,0,50,0,230,255,116,255,249,254,172,254,200,254, +53,255,171,255,254,255,227,255,53,255,119,254,40,254,41,254,93,254,211,254,56,255,59,255,18,255,255,254,26,255,124,255, +234,255,24,0,34,0,5,0,153,255,89,255,178,255,31,0,61,0,98,0,118,0,60,0,44,0,114,0,104,0,215,255, +46,255,188,254,196,254,97,255,26,0,123,0,109,0,212,255,14,255,252,254,159,255,39,0,102,0,137,0,91,0,254,255, +240,255,31,0,61,0,78,0,94,0,141,0,239,0,12,1,162,0,90,0,116,0,82,0,241,255,223,255,0,0,253,255, +213,255,128,255,43,255,74,255,211,255,92,0,180,0,140,0,229,255,189,255,123,0,1,1,238,0,78,1,29,2,52,2, +196,1,211,1,13,2,136,1,169,0,118,0,239,0,52,1,252,0,228,0,40,1,11,1,48,0,140,255,217,255,79,0, +41,0,250,255,49,0,48,0,221,255,246,255,87,0,45,0,171,255,90,255,246,254,136,254,184,254,85,255,191,255,27,0, +80,0,188,255,1,255,84,255,46,0,80,0,221,255,122,255,41,255,204,254,119,254,140,254,145,255,230,0,35,1,152,0, +181,0,26,1,158,0,190,255,86,255,77,255,169,255,79,0,78,0,150,255,88,255,216,255,92,0,185,0,252,0,243,0, +199,0,136,0,253,255,148,255,208,255,42,0,66,0,110,0,96,0,173,255,51,255,149,255,230,255,134,255,46,255,84,255, +146,255,177,255,204,255,185,255,89,255,16,255,67,255,153,255,131,255,41,255,232,254,156,254,104,254,209,254,134,255,220,255, +37,0,159,0,161,0,60,0,78,0,173,0,190,0,217,0,44,1,43,1,208,0,129,0,37,0,193,255,178,255,1,0, +120,0,211,0,174,0,88,0,150,0,0,1,193,0,108,0,161,0,166,0,50,0,10,0,73,0,107,0,90,0,25,0, +222,255,101,0,136,1,2,2,122,1,207,0,129,0,146,0,234,0,15,1,208,0,196,0,7,1,232,0,103,0,63,0, +178,0,84,1,147,1,37,1,93,0,216,255,203,255,19,0,134,0,1,1,104,1,159,1,155,1,160,1,243,1,69,2, +49,2,195,1,42,1,202,0,13,1,82,1,192,0,37,0,137,0,12,1,199,0,138,0,206,0,206,0,117,0,111,0, +192,0,13,1,38,1,216,0,103,0,118,0,224,0,15,1,29,1,82,1,100,1,36,1,239,0,21,1,68,1,226,0, +251,255,130,255,240,255,137,0,163,0,123,0,102,0,122,0,189,0,218,0,119,0,242,255,215,255,255,255,18,0,38,0, +102,0,163,0,172,0,167,0,197,0,194,0,97,0,32,0,123,0,248,0,8,1,211,0,124,0,1,0,207,255,24,0, +69,0,1,0,163,255,83,255,12,255,12,255,90,255,179,255,22,0,115,0,84,0,171,255,50,255,87,255,163,255,137,255, +56,255,61,255,165,255,2,0,26,0,6,0,191,255,80,255,23,255,82,255,191,255,252,255,225,255,143,255,117,255,238,255, +158,0,200,0,94,0,10,0,18,0,6,0,169,255,91,255,123,255,233,255,69,0,73,0,4,0,225,255,41,0,135,0, +154,0,146,0,187,0,202,0,112,0,12,0,21,0,115,0,199,0,212,0,148,0,79,0,90,0,141,0,123,0,54,0, +55,0,152,0,232,0,216,0,139,0,44,0,193,255,123,255,145,255,223,255,38,0,73,0,31,0,158,255,40,255,31,255, +122,255,252,255,114,0,177,0,189,0,191,0,187,0,130,0,1,0,124,255,83,255,116,255,114,255,99,255,182,255,58,0, +95,0,43,0,5,0,20,0,59,0,51,0,206,255,100,255,115,255,233,255,91,0,166,0,227,0,245,0,161,0,15,0, +200,255,240,255,46,0,111,0,197,0,208,0,109,0,32,0,49,0,114,0,198,0,246,0,189,0,77,0,254,255,172,255, +70,255,27,255,64,255,114,255,147,255,185,255,228,255,230,255,166,255,116,255,139,255,160,255,119,255,57,255,5,255,219,254, +213,254,237,254,21,255,101,255,163,255,102,255,225,254,144,254,131,254,156,254,207,254,7,255,86,255,184,255,199,255,88,255, +212,254,134,254,115,254,166,254,241,254,10,255,18,255,61,255,99,255,91,255,68,255,37,255,2,255,241,254,233,254,216,254, +209,254,232,254,7,255,2,255,205,254,172,254,202,254,218,254,170,254,137,254,150,254,158,254,167,254,211,254,236,254,191,254, +120,254,72,254,41,254,28,254,79,254,180,254,211,254,121,254,31,254,49,254,128,254,185,254,191,254,181,254,234,254,70,255, +60,255,210,254,187,254,21,255,110,255,172,255,219,255,195,255,82,255,220,254,184,254,245,254,79,255,128,255,155,255,177,255, +144,255,54,255,253,254,43,255,184,255,57,0,38,0,134,255,248,254,227,254,55,255,199,255,65,0,72,0,195,255,11,255, +206,254,103,255,65,0,172,0,213,0,249,0,169,0,205,255,19,255,251,254,105,255,251,255,80,0,86,0,55,0,242,255, +142,255,109,255,188,255,35,0,75,0,74,0,99,0,121,0,46,0,211,255,39,0,236,0,48,1,219,0,51,0,60,255, +183,254,104,255,82,0,85,0,22,0,50,0,60,0,68,0,117,0,30,0,61,255,196,254,235,254,138,255,71,0,173,255, +6,254,233,254,236,2,221,4,101,2,181,255,87,255,32,255,76,254,101,254,125,255,205,0,232,1,144,1,151,255,132,254, +143,255,132,0,233,255,49,255,179,255,197,0,10,1,58,0,109,255,127,255,218,255,245,255,118,0,72,1,22,1,223,255, +97,255,15,0,80,0,99,255,178,254,96,255,136,0,247,0,200,0,48,0,233,254,193,253,73,254,103,0,30,2,208,1, +211,255,236,253,62,253,80,253,187,253,136,254,176,254,65,254,101,0,100,5,82,7,99,3,0,255,230,253,108,253,219,252, +8,255,185,2,157,3,87,1,211,254,154,253,78,253,148,253,91,255,28,3,95,5,169,2,67,255,90,1,184,4,43,1, +204,249,77,248,161,253,236,2,103,4,56,3,90,1,31,0,158,255,182,254,46,253,127,252,196,253,71,0,51,2,107,2, +156,1,208,0,195,255,108,254,81,254,219,255,206,0,225,255,239,254,107,255,206,255,200,254,13,254,148,255,70,2,212,3, +6,4,246,3,140,3,1,2,221,255,139,254,112,254,178,254,174,254,199,254,108,255,18,0,8,0,178,255,223,255,101,0, +149,0,201,0,55,2,205,4,98,6,36,5,24,2,192,255,250,254,215,254,166,254,187,254,76,255,206,255,184,255,69,255, +47,255,234,255,18,1,203,1,218,1,243,1,117,2,177,2,29,2,67,1,166,0,225,255,3,255,76,255,8,1,63,2, +103,1,250,255,61,0,207,1,171,2,102,2,28,2,36,2,38,2,137,2,140,3,207,3,9,2,128,255,143,254,65,255, +156,255,242,254,187,254,235,255,112,1,234,1,98,1,166,0,15,0,167,255,197,255,178,0,231,1,91,2,143,1,12,0, +188,254,38,254,85,254,13,255,232,255,101,0,70,0,214,255,163,255,237,255,117,0,186,0,143,0,86,0,128,0,196,0, +94,0,81,255,181,254,73,255,92,0,198,0,84,0,142,255,221,254,181,254,193,255,186,1,239,2,50,2,132,0,174,255, +220,255,7,0,246,255,69,0,223,0,248,0,110,0,229,255,145,255,24,255,155,254,197,254,176,255,144,0,179,0,46,0, +138,255,64,255,121,255,2,0,100,0,96,0,39,0,243,255,173,255,70,255,11,255,45,255,82,255,29,255,216,254,255,254, +88,255,63,255,188,254,128,254,197,254,25,255,88,255,218,255,100,0,32,0,26,255,143,254,37,255,230,255,212,255,113,255, +173,255,77,0,120,0,44,0,1,0,0,0,203,255,149,255,204,255,31,0,231,255,84,255,54,255,163,255,210,255,87,255, +181,254,149,254,6,255,174,255,55,0,113,0,101,0,68,0,25,0,175,255,9,255,162,254,215,254,92,255,167,255,135,255, +21,255,117,254,20,254,140,254,201,255,208,0,238,0,159,0,157,0,175,0,56,0,109,255,20,255,74,255,133,255,150,255, +203,255,27,0,39,0,6,0,54,0,179,0,226,0,125,0,239,255,143,255,63,255,243,254,8,255,184,255,175,0,105,1, +173,1,142,1,64,1,255,0,234,0,221,0,178,0,135,0,130,0,115,0,18,0,135,255,66,255,117,255,249,255,170,0, +85,1,139,1,0,1,29,0,165,255,199,255,15,0,60,0,141,0,24,1,113,1,70,1,214,0,149,0,142,0,140,0, +131,0,135,0,130,0,74,0,239,255,181,255,182,255,195,255,167,255,118,255,105,255,138,255,168,255,171,255,200,255,45,0, +164,0,195,0,124,0,35,0,224,255,141,255,34,255,240,254,37,255,115,255,127,255,101,255,125,255,193,255,220,255,184,255, +163,255,182,255,164,255,67,255,230,254,228,254,39,255,101,255,135,255,152,255,130,255,31,255,134,254,18,254,16,254,106,254, +210,254,49,255,162,255,252,255,217,255,56,255,175,254,186,254,48,255,161,255,229,255,11,0,9,0,193,255,71,255,235,254, +234,254,38,255,68,255,39,255,17,255,39,255,62,255,65,255,94,255,155,255,180,255,148,255,116,255,95,255,40,255,233,254, +1,255,140,255,56,0,141,0,68,0,140,255,19,255,94,255,10,0,79,0,11,0,172,255,89,255,255,254,210,254,250,254, +19,255,210,254,162,254,241,254,103,255,115,255,40,255,8,255,72,255,175,255,223,255,174,255,76,255,8,255,233,254,212,254, +243,254,123,255,35,0,111,0,96,0,78,0,79,0,70,0,58,0,56,0,43,0,19,0,29,0,71,0,78,0,0,0, +116,255,14,255,72,255,18,0,166,0,122,0,11,0,251,255,253,255,146,255,33,255,68,255,183,255,243,255,19,0,63,0, +44,0,217,255,222,255,100,0,202,0,182,0,115,0,38,0,175,255,91,255,162,255,65,0,150,0,141,0,113,0,79,0, +21,0,229,255,206,255,174,255,138,255,169,255,18,0,84,0,14,0,128,255,112,255,47,0,15,1,67,1,14,1,48,1, +148,1,159,1,120,1,176,1,5,2,218,1,125,1,145,1,190,1,92,1,201,0,196,0,9,1,224,0,103,0,64,0, +109,0,111,0,54,0,45,0,109,0,129,0,24,0,153,255,140,255,189,255,126,255,217,254,150,254,21,255,216,255,92,0, +118,0,16,0,106,255,66,255,225,255,115,0,62,0,179,255,127,255,134,255,114,255,66,255,245,254,163,254,234,254,21,0, +37,1,10,1,68,0,226,255,210,255,135,255,90,255,218,255,159,0,250,0,231,0,169,0,83,0,31,0,90,0,199,0, +240,0,228,0,244,0,20,1,5,1,201,0,113,0,10,0,212,255,5,0,67,0,13,0,135,255,59,255,71,255,94,255, +93,255,103,255,128,255,118,255,47,255,223,254,208,254,7,255,70,255,103,255,122,255,141,255,161,255,203,255,1,0,11,0, +245,255,33,0,118,0,78,0,173,255,138,255,65,0,3,1,60,1,56,1,12,1,113,0,208,255,253,255,181,0,226,0, +100,0,12,0,18,0,2,0,243,255,88,0,240,0,24,1,219,0,162,0,123,0,95,0,102,0,85,0,241,255,183,255, +34,0,166,0,156,0,112,0,182,0,21,1,18,1,224,0,192,0,143,0,79,0,58,0,83,0,117,0,146,0,166,0, +186,0,234,0,18,1,236,0,143,0,99,0,121,0,138,0,142,0,207,0,82,1,163,1,135,1,106,1,191,1,45,2, +30,2,194,1,162,1,169,1,137,1,103,1,92,1,45,1,7,1,89,1,225,1,8,2,219,1,161,1,64,1,194,0, +140,0,168,0,202,0,211,0,173,0,76,0,8,0,59,0,151,0,194,0,244,0,67,1,84,1,31,1,8,1,6,1, +188,0,58,0,246,255,35,0,113,0,108,0,37,0,60,0,201,0,20,1,221,0,194,0,211,0,107,0,187,255,181,255, +110,0,21,1,54,1,232,0,94,0,238,255,197,255,182,255,203,255,50,0,136,0,87,0,19,0,75,0,140,0,77,0, +246,255,1,0,35,0,243,255,124,255,1,255,180,254,155,254,174,254,253,254,129,255,207,255,148,255,38,255,255,254,15,255, +44,255,100,255,155,255,172,255,199,255,253,255,250,255,188,255,155,255,130,255,59,255,43,255,138,255,212,255,208,255,227,255, +18,0,42,0,104,0,199,0,178,0,39,0,189,255,123,255,37,255,6,255,84,255,172,255,208,255,240,255,39,0,102,0, +175,0,250,0,39,1,25,1,199,0,86,0,255,255,214,255,230,255,69,0,186,0,229,0,190,0,133,0,76,0,26,0, +28,0,94,0,164,0,206,0,238,0,219,0,97,0,216,255,204,255,26,0,91,0,185,0,49,1,10,1,42,0,128,255, +101,255,104,255,137,255,239,255,51,0,65,0,129,0,213,0,229,0,225,0,203,0,72,0,141,255,46,255,44,255,59,255, +94,255,158,255,225,255,20,0,46,0,73,0,120,0,124,0,64,0,38,0,79,0,78,0,5,0,219,255,235,255,215,255, +136,255,119,255,244,255,133,0,150,0,95,0,72,0,28,0,204,255,220,255,75,0,139,0,143,0,138,0,64,0,184,255, +111,255,113,255,115,255,147,255,248,255,46,0,195,255,14,255,202,254,21,255,98,255,108,255,127,255,148,255,84,255,3,255, +251,254,251,254,250,254,89,255,220,255,245,255,186,255,100,255,245,254,190,254,238,254,55,255,134,255,240,255,20,0,186,255, +78,255,22,255,246,254,233,254,246,254,2,255,249,254,212,254,204,254,51,255,187,255,220,255,222,255,19,0,251,255,112,255, +16,255,250,254,232,254,21,255,131,255,161,255,92,255,22,255,211,254,129,254,71,254,51,254,101,254,15,255,209,255,234,255, +62,255,87,254,206,253,230,253,86,254,164,254,189,254,179,254,105,254,7,254,249,253,62,254,128,254,173,254,198,254,157,254, +81,254,64,254,116,254,182,254,13,255,122,255,170,255,124,255,69,255,26,255,191,254,100,254,139,254,41,255,165,255,158,255, +51,255,230,254,11,255,99,255,145,255,172,255,209,255,211,255,173,255,127,255,88,255,85,255,120,255,137,255,192,255,82,0, +142,0,17,0,190,255,234,255,202,255,111,255,177,255,64,0,55,0,171,255,69,255,112,255,27,0,175,0,206,0,191,0, +134,0,247,255,150,255,168,255,162,255,121,255,160,255,230,255,39,0,182,0,60,1,22,1,151,0,61,0,13,0,43,0, +130,0,159,0,145,0,121,0,27,0,251,255,152,0,226,0,46,0,72,255,80,254,234,253,98,0,99,4,165,4,242,0, +199,254,131,255,208,255,9,255,213,254,74,255,39,0,55,1,42,1,227,255,103,255,90,0,20,1,180,0,60,0,150,0, +15,1,149,0,172,255,62,255,214,254,113,254,72,255,216,0,53,1,143,0,82,0,109,0,59,0,165,255,208,254,113,254, +41,255,60,0,209,0,253,0,123,0,253,254,199,253,91,254,70,0,157,1,42,1,143,255,50,254,147,253,145,253,33,254, +235,254,136,255,177,255,15,255,230,254,122,1,223,4,75,4,128,0,116,254,92,254,209,253,96,254,39,1,135,2,101,0, +182,253,31,253,210,253,104,254,58,255,47,1,59,3,231,2,134,0,188,255,149,1,254,1,169,254,246,251,47,254,33,2, +153,2,197,0,81,0,121,0,48,255,86,253,36,252,255,251,220,253,36,1,35,3,231,2,192,1,110,0,74,255,0,255, +138,255,95,0,234,0,76,0,214,254,87,254,31,255,166,255,158,255,224,255,119,0,99,1,231,2,242,3,37,3,73,1, +41,0,202,255,55,255,195,254,7,255,33,255,161,254,215,254,247,255,108,0,46,0,159,0,110,1,162,1,15,2,193,3, +189,5,191,5,227,2,136,255,193,254,171,255,84,255,74,254,167,254,87,255,201,254,94,254,95,255,206,0,200,1,70,2, +50,2,19,2,169,2,67,3,200,2,148,1,102,0,74,255,197,254,153,255,214,0,213,0,248,255,255,255,54,1,76,2, +103,2,32,2,98,2,211,2,71,2,22,1,247,0,213,1,172,1,38,0,13,255,62,255,237,255,113,0,184,0,219,0, +249,0,5,1,220,0,182,0,180,0,157,0,155,0,31,1,176,1,126,1,211,0,69,0,165,255,250,254,224,254,30,255, +9,255,44,255,254,255,81,0,164,255,145,255,195,0,150,1,28,1,90,0,30,0,20,0,225,255,153,255,134,255,212,255, +38,0,231,255,46,255,213,254,106,255,90,0,218,0,59,1,26,2,149,2,123,1,190,255,45,255,142,255,126,255,7,255, +16,255,139,255,233,255,9,0,193,255,245,254,118,254,44,255,124,0,39,1,252,0,138,0,254,255,115,255,72,255,142,255, +241,255,81,0,144,0,71,0,153,255,89,255,180,255,212,255,82,255,187,254,112,254,93,254,154,254,15,255,26,255,133,254, +21,254,69,254,182,254,71,255,51,0,210,0,45,0,222,254,135,254,98,255,21,0,233,255,160,255,243,255,135,0,143,0, +229,255,45,255,16,255,139,255,39,0,148,0,160,0,251,255,208,254,20,254,86,254,216,254,198,254,162,254,77,255,78,0, +112,0,153,255,242,254,61,255,248,255,57,0,202,255,50,255,0,255,81,255,215,255,27,0,209,255,50,255,225,254,52,255, +203,255,33,0,48,0,47,0,28,0,234,255,199,255,215,255,254,255,33,0,66,0,89,0,99,0,124,0,178,0,233,0, +8,1,8,1,195,0,42,0,135,255,78,255,150,255,22,0,116,0,129,0,84,0,82,0,184,0,70,1,137,1,88,1, +207,0,62,0,32,0,175,0,90,1,78,1,136,0,207,255,155,255,192,255,16,0,151,0,34,1,60,1,211,0,96,0, +83,0,132,0,136,0,87,0,82,0,148,0,184,0,118,0,29,0,26,0,115,0,218,0,33,1,52,1,230,0,40,0, +105,255,59,255,161,255,3,0,246,255,187,255,192,255,237,255,214,255,117,255,65,255,136,255,13,0,115,0,166,0,176,0, +130,0,47,0,5,0,33,0,40,0,194,255,38,255,212,254,237,254,20,255,249,254,189,254,173,254,212,254,249,254,250,254, +248,254,27,255,78,255,103,255,108,255,119,255,113,255,50,255,225,254,212,254,1,255,21,255,24,255,121,255,54,0,153,0, +57,0,165,255,138,255,193,255,189,255,111,255,60,255,77,255,108,255,97,255,40,255,220,254,182,254,228,254,87,255,209,255, +25,0,14,0,189,255,130,255,187,255,63,0,122,0,55,0,210,255,153,255,115,255,84,255,107,255,174,255,189,255,130,255, +108,255,188,255,28,0,56,0,59,0,82,0,56,0,186,255,59,255,48,255,106,255,90,255,221,254,94,254,70,254,165,254, +57,255,169,255,194,255,159,255,133,255,166,255,4,0,110,0,138,0,51,0,191,255,168,255,239,255,50,0,75,0,80,0, +56,0,254,255,219,255,246,255,28,0,30,0,37,0,61,0,30,0,187,255,123,255,156,255,210,255,196,255,133,255,97,255, +116,255,154,255,182,255,223,255,41,0,80,0,12,0,175,255,213,255,82,0,86,0,220,255,208,255,111,0,207,0,110,0, +5,0,39,0,74,0,231,255,115,255,141,255,1,0,58,0,25,0,219,255,162,255,121,255,126,255,188,255,247,255,229,255, +158,255,138,255,206,255,7,0,232,255,200,255,25,0,167,0,229,0,195,0,180,0,231,0,19,1,17,1,26,1,78,1, +94,1,253,0,130,0,145,0,34,1,118,1,63,1,5,1,20,1,229,0,55,0,186,255,234,255,68,0,84,0,116,0, +226,0,28,1,208,0,107,0,57,0,252,255,161,255,117,255,133,255,144,255,150,255,194,255,247,255,253,255,219,255,168,255, +106,255,67,255,83,255,101,255,73,255,40,255,51,255,67,255,53,255,37,255,23,255,252,254,31,255,210,255,171,0,230,0, +121,0,16,0,7,0,31,0,14,0,231,255,234,255,49,0,136,0,159,0,117,0,93,0,121,0,160,0,207,0,44,1, +140,1,141,1,53,1,213,0,131,0,45,0,253,255,25,0,65,0,38,0,218,255,155,255,123,255,118,255,139,255,167,255, +177,255,162,255,123,255,66,255,36,255,58,255,79,255,52,255,29,255,76,255,155,255,189,255,175,255,159,255,158,255,170,255, +184,255,188,255,215,255,46,0,140,0,139,0,66,0,32,0,43,0,26,0,0,0,25,0,46,0,13,0,32,0,179,0, +58,1,35,1,177,0,92,0,29,0,245,255,56,0,217,0,61,1,24,1,175,0,87,0,48,0,79,0,138,0,138,0, +93,0,112,0,193,0,214,0,152,0,116,0,140,0,165,0,177,0,204,0,204,0,134,0,54,0,47,0,92,0,120,0, +118,0,118,0,136,0,159,0,162,0,137,0,122,0,158,0,236,0,67,1,146,1,185,1,139,1,35,1,226,0,232,0, +244,0,221,0,181,0,155,0,177,0,22,1,147,1,169,1,68,1,233,0,247,0,53,1,81,1,62,1,253,0,168,0, +128,0,158,0,180,0,146,0,117,0,146,0,203,0,253,0,39,1,38,1,211,0,91,0,22,0,26,0,68,0,123,0, +161,0,175,0,194,0,218,0,173,0,52,0,244,255,52,0,136,0,147,0,148,0,201,0,250,0,255,0,249,0,226,0, +145,0,55,0,48,0,105,0,141,0,138,0,114,0,52,0,224,255,177,255,184,255,211,255,250,255,36,0,14,0,174,255, +112,255,148,255,189,255,161,255,130,255,152,255,162,255,117,255,72,255,55,255,13,255,208,254,214,254,54,255,141,255,150,255, +133,255,159,255,195,255,170,255,106,255,86,255,115,255,112,255,65,255,75,255,177,255,18,0,43,0,55,0,90,0,87,0, +33,0,12,0,57,0,88,0,53,0,251,255,225,255,241,255,27,0,61,0,60,0,54,0,91,0,134,0,114,0,48,0, +241,255,181,255,127,255,142,255,227,255,31,0,46,0,103,0,188,0,161,0,17,0,190,255,254,255,94,0,115,0,94,0, +66,0,7,0,194,255,191,255,10,0,74,0,58,0,250,255,219,255,242,255,247,255,177,255,95,255,103,255,184,255,247,255, +40,0,134,0,223,0,192,0,53,0,192,255,149,255,130,255,111,255,116,255,136,255,151,255,189,255,20,0,108,0,132,0, +86,0,10,0,188,255,131,255,115,255,150,255,221,255,42,0,89,0,77,0,9,0,184,255,142,255,168,255,243,255,46,0, +31,0,207,255,140,255,157,255,242,255,59,0,82,0,102,0,158,0,185,0,111,0,244,255,190,255,219,255,7,0,52,0, +109,0,110,0,250,255,105,255,65,255,123,255,181,255,209,255,216,255,163,255,48,255,224,254,239,254,22,255,29,255,58,255, +140,255,193,255,152,255,71,255,29,255,42,255,96,255,171,255,224,255,233,255,224,255,208,255,151,255,71,255,52,255,96,255, +96,255,29,255,11,255,92,255,144,255,78,255,11,255,66,255,164,255,160,255,81,255,58,255,115,255,183,255,238,255,33,0, +25,0,160,255,250,254,168,254,200,254,4,255,25,255,35,255,81,255,132,255,98,255,227,254,120,254,122,254,182,254,212,254, +226,254,6,255,247,254,116,254,236,253,241,253,87,254,118,254,45,254,249,253,34,254,114,254,161,254,165,254,160,254,181,254, +243,254,61,255,96,255,54,255,197,254,91,254,88,254,181,254,246,254,239,254,30,255,205,255,104,0,61,0,134,255,251,254, +238,254,81,255,11,0,174,0,142,0,182,255,29,255,96,255,246,255,28,0,228,255,194,255,189,255,173,255,213,255,110,0, +248,0,210,0,71,0,36,0,99,0,53,0,123,255,18,255,101,255,212,255,204,255,149,255,163,255,250,255,103,0,182,0, +169,0,92,0,76,0,157,0,216,0,184,0,127,0,82,0,41,0,53,0,118,0,98,0,215,255,139,255,175,255,162,255, +175,255,3,1,7,3,85,3,106,1,185,255,231,255,173,0,134,0,232,255,201,255,6,0,41,0,41,0,26,0,22,0, +88,0,189,0,209,0,155,0,151,0,196,0,180,0,109,0,62,0,26,0,227,255,213,255,22,0,111,0,150,0,89,0, +190,255,89,255,181,255,55,0,210,255,224,254,198,254,208,255,252,0,160,1,195,1,92,1,144,0,11,0,17,0,2,0, +83,255,72,254,125,253,99,253,240,253,124,254,161,254,28,255,112,0,100,1,197,0,186,255,45,0,211,1,189,2,248,1, +14,0,52,254,186,253,241,254,94,0,92,0,26,255,218,253,79,253,162,253,185,254,0,0,5,1,229,1,50,2,56,1, +1,0,73,0,7,1,207,255,161,253,191,253,232,255,204,0,162,255,150,254,154,254,214,254,242,254,247,254,206,254,84,255, +69,1,250,2,138,2,41,1,221,0,195,0,94,255,4,254,79,254,13,255,232,254,254,254,77,0,132,1,71,1,31,0, +59,255,73,255,152,0,147,2,149,3,154,2,122,0,206,254,93,254,202,254,33,255,212,254,133,254,21,255,22,0,95,0, +247,255,240,255,176,0,170,1,94,2,189,2,245,2,64,3,112,3,240,2,195,1,161,0,170,255,86,254,4,253,231,252, +4,254,39,255,202,255,65,0,150,0,224,0,189,1,21,3,178,3,60,3,203,2,192,2,34,2,174,0,101,255,208,254, +160,254,218,254,169,255,143,0,21,1,150,1,81,2,224,2,0,3,217,2,98,2,140,1,188,0,74,0,24,0,38,0, +116,0,97,0,134,255,227,254,112,255,84,0,82,0,253,255,141,0,168,1,49,2,27,2,246,1,211,1,164,1,145,1, +102,1,184,0,200,255,48,255,250,254,235,254,21,255,126,255,220,255,48,0,184,0,54,1,56,1,232,0,157,0,42,0, +128,255,65,255,179,255,4,0,137,255,232,254,27,255,251,255,143,0,115,0,51,0,96,0,191,0,189,0,107,0,101,0, +190,0,204,0,67,0,182,255,183,255,39,0,150,0,165,0,40,0,113,255,19,255,22,255,252,254,213,254,54,255,6,0, +118,0,91,0,70,0,76,0,28,0,239,255,39,0,88,0,251,255,132,255,164,255,25,0,44,0,197,255,61,255,214,254, +180,254,233,254,63,255,117,255,125,255,77,255,217,254,128,254,190,254,102,255,218,255,255,255,23,0,254,255,138,255,47,255, +93,255,172,255,141,255,67,255,86,255,149,255,137,255,67,255,52,255,123,255,224,255,58,0,124,0,136,0,50,0,131,255, +235,254,217,254,27,255,25,255,196,254,187,254,61,255,187,255,194,255,174,255,236,255,76,0,92,0,7,0,129,255,2,255, +199,254,250,254,99,255,145,255,90,255,8,255,254,254,64,255,130,255,155,255,179,255,229,255,5,0,239,255,210,255,224,255, +253,255,4,0,13,0,44,0,59,0,32,0,248,255,223,255,214,255,244,255,65,0,130,0,131,0,100,0,101,0,141,0, +207,0,29,1,74,1,36,1,202,0,115,0,23,0,171,255,121,255,181,255,24,0,77,0,101,0,125,0,116,0,89,0, +139,0,22,1,115,1,76,1,226,0,136,0,62,0,250,255,203,255,166,255,115,255,94,255,161,255,23,0,95,0,101,0, +95,0,106,0,109,0,93,0,65,0,30,0,247,255,213,255,184,255,139,255,83,255,60,255,90,255,137,255,171,255,200,255, +238,255,18,0,55,0,118,0,189,0,208,0,160,0,102,0,68,0,22,0,196,255,109,255,52,255,15,255,247,254,243,254, +252,254,254,254,3,255,32,255,77,255,113,255,130,255,123,255,83,255,44,255,53,255,87,255,60,255,217,254,146,254,170,254, +220,254,220,254,221,254,53,255,190,255,9,0,11,0,30,0,79,0,69,0,233,255,169,255,195,255,214,255,125,255,250,254, +189,254,183,254,155,254,137,254,219,254,126,255,2,0,63,0,102,0,137,0,134,0,105,0,114,0,143,0,100,0,222,255, +109,255,96,255,135,255,158,255,187,255,8,0,86,0,83,0,10,0,209,255,219,255,5,0,6,0,209,255,166,255,186,255, +210,255,148,255,32,255,243,254,28,255,49,255,24,255,48,255,146,255,222,255,237,255,2,0,34,0,1,0,163,255,116,255, +154,255,201,255,214,255,232,255,17,0,40,0,19,0,230,255,205,255,233,255,40,0,65,0,11,0,200,255,207,255,0,0, +0,0,205,255,184,255,214,255,228,255,199,255,180,255,209,255,244,255,242,255,243,255,44,0,115,0,105,0,23,0,247,255, +72,0,179,0,197,0,125,0,55,0,47,0,71,0,49,0,202,255,88,255,73,255,165,255,254,255,11,0,247,255,251,255, +13,0,13,0,5,0,254,255,251,255,7,0,28,0,12,0,212,255,193,255,7,0,99,0,121,0,95,0,115,0,200,0, +16,1,14,1,225,0,200,0,188,0,149,0,108,0,137,0,214,0,240,0,191,0,153,0,169,0,198,0,238,0,61,1, +123,1,88,1,2,1,223,0,209,0,139,0,66,0,90,0,168,0,200,0,184,0,146,0,36,0,114,255,11,255,64,255, +165,255,205,255,231,255,39,0,65,0,250,255,167,255,154,255,154,255,96,255,57,255,138,255,249,255,184,255,190,254,5,254, +67,254,249,254,72,255,35,255,25,255,74,255,91,255,63,255,90,255,208,255,62,0,74,0,8,0,201,255,181,255,192,255, +227,255,31,0,75,0,43,0,232,255,14,0,194,0,96,1,87,1,229,0,133,0,56,0,238,255,241,255,82,0,124,0, +18,0,153,255,174,255,38,0,114,0,107,0,78,0,63,0,48,0,243,255,119,255,2,255,11,255,137,255,217,255,147,255, +30,255,30,255,156,255,29,0,72,0,41,0,227,255,125,255,30,255,38,255,189,255,104,0,129,0,28,0,227,255,22,0, +86,0,98,0,93,0,79,0,36,0,26,0,120,0,245,0,2,1,167,0,96,0,94,0,118,0,153,0,189,0,176,0, +99,0,36,0,56,0,133,0,195,0,213,0,189,0,147,0,119,0,127,0,155,0,165,0,136,0,76,0,20,0,13,0, +59,0,107,0,117,0,101,0,97,0,101,0,72,0,5,0,228,255,45,0,168,0,194,0,93,0,1,0,22,0,101,0, +158,0,213,0,25,1,39,1,213,0,101,0,31,0,18,0,63,0,151,0,218,0,220,0,203,0,218,0,234,0,217,0, +210,0,244,0,13,1,242,0,207,0,230,0,36,1,49,1,230,0,127,0,90,0,124,0,164,0,197,0,0,1,46,1, +238,0,94,0,18,0,60,0,112,0,111,0,120,0,181,0,236,0,235,0,196,0,136,0,60,0,23,0,82,0,184,0, +212,0,144,0,85,0,137,0,20,1,124,1,91,1,188,0,18,0,211,255,13,0,89,0,81,0,5,0,219,255,253,255, +27,0,245,255,195,255,222,255,45,0,80,0,36,0,226,255,184,255,149,255,101,255,70,255,96,255,165,255,223,255,234,255, +209,255,169,255,120,255,78,255,71,255,103,255,142,255,165,255,172,255,156,255,100,255,34,255,9,255,21,255,26,255,45,255, +147,255,44,0,110,0,36,0,186,255,163,255,202,255,239,255,23,0,73,0,70,0,232,255,132,255,134,255,212,255,13,0, +36,0,85,0,152,0,172,0,135,0,94,0,59,0,1,0,209,255,244,255,83,0,137,0,119,0,97,0,108,0,108,0, +69,0,33,0,26,0,27,0,34,0,72,0,121,0,123,0,76,0,49,0,69,0,95,0,96,0,101,0,119,0,100,0, +20,0,179,255,109,255,64,255,45,255,104,255,3,0,180,0,12,1,241,0,157,0,83,0,36,0,6,0,243,255,236,255, +237,255,239,255,231,255,220,255,224,255,254,255,31,0,44,0,36,0,27,0,31,0,48,0,63,0,45,0,231,255,144,255, +116,255,168,255,235,255,252,255,235,255,230,255,224,255,180,255,127,255,132,255,203,255,22,0,62,0,94,0,138,0,174,0, +183,0,170,0,136,0,68,0,235,255,167,255,139,255,138,255,149,255,170,255,185,255,176,255,161,255,171,255,192,255,183,255, +149,255,140,255,164,255,159,255,93,255,20,255,4,255,43,255,92,255,131,255,157,255,153,255,112,255,72,255,81,255,132,255, +176,255,190,255,193,255,194,255,173,255,114,255,43,255,7,255,22,255,59,255,86,255,93,255,83,255,55,255,25,255,23,255, +57,255,88,255,87,255,88,255,143,255,222,255,240,255,182,255,129,255,128,255,132,255,96,255,55,255,51,255,56,255,43,255, +51,255,102,255,129,255,69,255,228,254,188,254,206,254,221,254,219,254,225,254,215,254,161,254,112,254,132,254,179,254,162,254, +90,254,70,254,150,254,18,255,113,255,144,255,88,255,223,254,129,254,130,254,175,254,186,254,188,254,243,254,47,255,17,255, +193,254,192,254,32,255,127,255,181,255,232,255,6,0,214,255,134,255,139,255,215,255,212,255,91,255,3,255,65,255,200,255, +17,0,4,0,228,255,231,255,25,0,105,0,166,0,159,0,96,0,14,0,178,255,77,255,7,255,8,255,67,255,146,255, +224,255,6,0,231,255,198,255,21,0,186,0,18,1,247,0,246,0,71,1,76,1,166,0,219,255,82,255,167,254,222,253, +37,254,51,0,156,2,62,3,245,1,125,0,245,255,228,255,184,255,201,255,95,0,229,0,172,0,247,255,160,255,251,255, +148,0,203,0,143,0,100,0,189,0,83,1,86,1,113,0,71,255,207,254,85,255,96,0,79,1,193,1,163,1,36,1, +151,0,40,0,190,255,71,255,252,254,32,255,135,255,164,255,45,255,148,254,173,254,193,255,47,1,33,2,94,2,39,2, +140,1,135,0,136,255,23,255,247,254,122,254,195,253,186,253,136,254,84,255,179,255,36,0,163,0,95,0,128,255,148,255, +38,1,133,2,25,2,127,0,29,255,61,254,228,253,166,254,40,0,169,0,174,255,13,255,175,255,215,255,161,254,75,254, +70,0,15,2,72,1,32,0,149,1,202,3,169,2,155,254,13,252,239,252,184,254,241,254,77,254,141,254,196,255,156,0, +70,0,104,255,102,255,176,0,20,2,55,2,76,1,133,0,64,0,5,0,208,255,234,255,208,255,212,254,196,253,80,254, +137,0,103,2,87,2,248,0,233,255,235,255,174,0,160,1,49,2,229,1,197,0,121,255,162,254,64,254,254,253,213,253, +27,254,3,255,57,0,34,1,125,1,154,1,224,1,53,2,78,2,66,2,100,2,121,2,206,1,73,0,198,254,9,254, +232,253,234,253,30,254,198,254,166,255,79,0,212,0,139,1,86,2,192,2,175,2,107,2,21,2,145,1,221,0,28,0, +78,255,136,254,56,254,190,254,204,255,168,0,25,1,144,1,77,2,236,2,243,2,121,2,226,1,86,1,204,0,85,0, +36,0,51,0,53,0,236,255,121,255,66,255,129,255,6,0,118,0,194,0,40,1,189,1,55,2,69,2,240,1,128,1, +28,1,195,0,114,0,45,0,224,255,125,255,32,255,251,254,32,255,132,255,18,0,179,0,69,1,163,1,184,1,128,1, +5,1,111,0,241,255,171,255,156,255,176,255,180,255,123,255,45,255,75,255,13,0,242,0,63,1,238,0,142,0,94,0, +31,0,203,255,206,255,54,0,106,0,0,0,105,255,67,255,125,255,164,255,162,255,169,255,180,255,162,255,153,255,207,255, +35,0,79,0,89,0,113,0,127,0,70,0,206,255,99,255,52,255,69,255,130,255,187,255,185,255,140,255,135,255,184,255, +198,255,142,255,112,255,171,255,220,255,156,255,37,255,238,254,247,254,249,254,247,254,30,255,105,255,185,255,25,0,107,0, +58,0,101,255,166,254,207,254,177,255,93,0,69,0,167,255,3,255,172,254,198,254,57,255,157,255,171,255,155,255,192,255, +235,255,177,255,42,255,227,254,18,255,84,255,84,255,58,255,92,255,178,255,243,255,248,255,225,255,211,255,205,255,185,255, +159,255,169,255,235,255,64,0,108,0,92,0,40,0,224,255,134,255,52,255,29,255,84,255,178,255,249,255,4,0,203,255, +99,255,12,255,26,255,173,255,130,0,14,1,242,0,77,0,163,255,81,255,63,255,51,255,71,255,174,255,63,0,136,0, +106,0,66,0,92,0,138,0,124,0,66,0,41,0,58,0,70,0,70,0,82,0,80,0,14,0,181,255,165,255,237,255, +59,0,90,0,95,0,106,0,122,0,145,0,180,0,202,0,165,0,74,0,3,0,6,0,57,0,100,0,126,0,157,0, +166,0,113,0,35,0,6,0,32,0,64,0,87,0,122,0,151,0,138,0,85,0,25,0,236,255,220,255,229,255,216,255, +153,255,93,255,95,255,139,255,188,255,5,0,110,0,188,0,199,0,174,0,148,0,112,0,75,0,60,0,42,0,231,255, +129,255,46,255,10,255,17,255,59,255,122,255,192,255,252,255,12,0,213,255,128,255,89,255,101,255,115,255,117,255,117,255, +100,255,59,255,49,255,84,255,99,255,69,255,75,255,160,255,253,255,37,0,48,0,54,0,24,0,209,255,156,255,151,255, +137,255,54,255,195,254,137,254,158,254,186,254,188,254,222,254,62,255,164,255,238,255,68,0,149,0,133,0,30,0,227,255, +253,255,16,0,244,255,217,255,184,255,114,255,83,255,167,255,24,0,45,0,2,0,228,255,204,255,168,255,170,255,214,255, +218,255,156,255,113,255,118,255,105,255,54,255,37,255,88,255,157,255,185,255,171,255,155,255,164,255,162,255,112,255,85,255, +161,255,18,0,30,0,199,255,121,255,114,255,155,255,210,255,5,0,35,0,22,0,227,255,194,255,223,255,18,0,22,0, +243,255,216,255,204,255,185,255,157,255,151,255,180,255,206,255,199,255,209,255,35,0,138,0,195,0,221,0,220,0,162,0, +86,0,67,0,90,0,112,0,124,0,91,0,3,0,210,255,2,0,52,0,15,0,197,255,152,255,137,255,141,255,165,255, +213,255,22,0,67,0,60,0,22,0,246,255,226,255,228,255,252,255,0,0,228,255,202,255,182,255,175,255,222,255,58,0, +128,0,174,0,211,0,183,0,103,0,83,0,130,0,147,0,139,0,186,0,7,1,35,1,244,0,148,0,62,0,30,0, +40,0,87,0,181,0,1,1,228,0,141,0,97,0,100,0,126,0,185,0,246,0,254,0,214,0,146,0,59,0,243,255, +201,255,174,255,192,255,7,0,50,0,31,0,17,0,3,0,177,255,62,255,27,255,87,255,185,255,4,0,253,255,166,255, +68,255,23,255,52,255,121,255,145,255,119,255,149,255,244,255,5,0,181,255,129,255,120,255,83,255,61,255,129,255,228,255, +12,0,247,255,220,255,238,255,38,0,76,0,80,0,84,0,88,0,93,0,135,0,178,0,145,0,74,0,50,0,45,0, +15,0,255,255,11,0,16,0,17,0,29,0,28,0,19,0,50,0,112,0,144,0,104,0,3,0,168,255,154,255,189,255, +210,255,217,255,209,255,172,255,149,255,180,255,209,255,219,255,23,0,107,0,92,0,248,255,195,255,225,255,13,0,39,0, +61,0,56,0,1,0,205,255,236,255,64,0,81,0,15,0,248,255,51,0,88,0,74,0,88,0,132,0,147,0,149,0, +180,0,216,0,232,0,220,0,158,0,59,0,255,255,19,0,64,0,88,0,129,0,211,0,11,1,216,0,107,0,54,0, +80,0,115,0,128,0,131,0,104,0,46,0,24,0,66,0,118,0,137,0,141,0,144,0,136,0,126,0,141,0,191,0, +245,0,250,0,195,0,136,0,134,0,169,0,174,0,129,0,87,0,83,0,101,0,125,0,160,0,172,0,128,0,75,0, +103,0,197,0,241,0,177,0,83,0,54,0,92,0,134,0,139,0,127,0,133,0,158,0,181,0,203,0,229,0,234,0, +200,0,174,0,202,0,230,0,178,0,89,0,61,0,88,0,91,0,77,0,106,0,147,0,125,0,73,0,72,0,112,0, +141,0,177,0,250,0,46,1,20,1,214,0,173,0,154,0,159,0,199,0,224,0,170,0,81,0,60,0,88,0,60,0, +234,255,208,255,19,0,93,0,103,0,65,0,26,0,8,0,10,0,3,0,212,255,144,255,102,255,99,255,110,255,129,255, +166,255,212,255,245,255,4,0,254,255,211,255,148,255,116,255,127,255,138,255,124,255,119,255,136,255,138,255,103,255,68,255, +64,255,81,255,110,255,171,255,246,255,11,0,213,255,166,255,201,255,8,0,10,0,229,255,245,255,54,0,64,0,250,255, +193,255,212,255,0,0,21,0,46,0,91,0,114,0,87,0,60,0,73,0,99,0,103,0,97,0,97,0,77,0,22,0, +224,255,217,255,249,255,24,0,39,0,55,0,73,0,71,0,50,0,56,0,113,0,175,0,178,0,111,0,19,0,191,255, +131,255,111,255,133,255,173,255,218,255,19,0,72,0,86,0,65,0,53,0,75,0,106,0,111,0,91,0,71,0,43,0, +248,255,206,255,199,255,191,255,176,255,207,255,26,0,87,0,124,0,146,0,129,0,85,0,81,0,125,0,147,0,112,0, +48,0,250,255,214,255,181,255,154,255,154,255,169,255,176,255,194,255,226,255,226,255,207,255,232,255,20,0,23,0,23,0, +63,0,90,0,72,0,62,0,76,0,60,0,252,255,197,255,204,255,234,255,211,255,152,255,131,255,143,255,149,255,160,255, +174,255,154,255,146,255,202,255,242,255,189,255,111,255,77,255,57,255,38,255,62,255,159,255,31,0,93,0,42,0,215,255, +176,255,163,255,172,255,229,255,12,0,221,255,147,255,104,255,76,255,76,255,110,255,111,255,74,255,59,255,43,255,246,254, +228,254,21,255,71,255,99,255,123,255,127,255,133,255,178,255,211,255,187,255,156,255,139,255,100,255,59,255,61,255,89,255, +107,255,109,255,97,255,95,255,126,255,160,255,142,255,87,255,71,255,116,255,124,255,30,255,198,254,221,254,255,254,200,254, +162,254,213,254,5,255,35,255,108,255,127,255,16,255,209,254,20,255,34,255,205,254,192,254,0,255,18,255,5,255,3,255, +237,254,221,254,247,254,13,255,32,255,70,255,56,255,252,254,29,255,140,255,194,255,211,255,254,255,11,0,232,255,200,255, +156,255,99,255,86,255,93,255,90,255,147,255,232,255,226,255,191,255,255,255,86,0,89,0,58,0,39,0,253,255,187,255, +133,255,134,255,189,255,214,255,168,255,147,255,189,255,212,255,182,255,125,255,119,255,107,0,46,2,213,2,128,1,254,255, +181,255,206,255,153,255,110,255,115,255,195,255,109,0,157,0,250,255,208,255,172,0,58,1,206,0,76,0,60,0,81,0, +66,0,10,0,245,255,49,0,67,0,9,0,63,0,192,0,147,0,22,0,92,0,7,1,60,1,0,1,120,0,216,255, +202,255,78,0,125,0,14,0,114,255,248,254,3,255,189,255,150,0,40,1,149,1,141,1,194,0,173,255,190,254,69,254, +204,254,211,255,7,0,172,255,240,255,90,0,20,0,172,255,142,255,165,255,47,0,121,0,138,255,21,255,216,0,87,2, +7,1,247,254,72,254,162,253,211,252,38,254,66,1,217,2,190,1,221,255,175,254,208,253,211,252,244,252,132,255,190,2, +42,3,12,1,25,0,249,0,126,0,21,254,249,252,43,254,21,255,192,254,2,255,62,0,160,0,164,255,145,254,16,254, +28,254,47,255,25,1,45,2,124,1,55,0,180,255,165,255,89,255,42,255,116,255,129,255,2,255,29,255,99,0,102,1, +9,1,38,0,206,255,39,0,64,1,173,2,18,3,5,2,180,0,198,255,209,254,3,254,242,253,83,254,181,254,77,255, +23,0,157,0,210,0,23,1,125,1,191,1,177,1,134,1,168,1,254,1,197,1,154,0,35,255,39,254,201,253,218,253, +76,254,250,254,168,255,70,0,221,0,92,1,171,1,214,1,235,1,224,1,186,1,141,1,59,1,125,0,96,255,129,254, +134,254,112,255,162,0,120,1,186,1,153,1,134,1,185,1,221,1,171,1,151,1,222,1,189,1,227,0,89,0,169,0, +199,0,7,0,55,255,12,255,72,255,169,255,43,0,159,0,247,0,120,1,251,1,227,1,57,1,190,0,170,0,124,0, +35,0,35,0,117,0,120,0,248,255,94,255,16,255,56,255,201,255,98,0,179,0,227,0,27,1,17,1,179,0,141,0, +194,0,181,0,63,0,10,0,46,0,248,255,120,255,155,255,100,0,196,0,118,0,78,0,145,0,164,0,109,0,124,0, +215,0,234,0,132,0,235,255,85,255,250,254,46,255,198,255,16,0,218,255,202,255,40,0,79,0,209,255,85,255,135,255, +246,255,235,255,165,255,221,255,109,0,130,0,247,255,133,255,163,255,2,0,45,0,19,0,225,255,199,255,204,255,185,255, +110,255,60,255,114,255,190,255,184,255,167,255,238,255,50,0,252,255,159,255,150,255,171,255,163,255,205,255,40,0,29,0, +169,255,144,255,233,255,237,255,133,255,108,255,175,255,149,255,26,255,250,254,77,255,123,255,97,255,92,255,114,255,109,255, +89,255,81,255,62,255,44,255,62,255,70,255,23,255,253,254,60,255,136,255,153,255,187,255,27,0,76,0,21,0,227,255, +253,255,21,0,245,255,219,255,239,255,1,0,241,255,210,255,185,255,174,255,185,255,196,255,180,255,181,255,237,255,28,0, +0,0,219,255,2,0,48,0,14,0,233,255,27,0,85,0,46,0,229,255,224,255,246,255,225,255,197,255,218,255,11,0, +46,0,72,0,90,0,94,0,96,0,92,0,44,0,219,255,172,255,171,255,168,255,170,255,226,255,49,0,67,0,37,0, +40,0,76,0,87,0,80,0,101,0,138,0,142,0,115,0,84,0,59,0,48,0,54,0,61,0,69,0,101,0,143,0, +130,0,64,0,22,0,33,0,47,0,54,0,88,0,113,0,65,0,247,255,250,255,55,0,59,0,243,255,179,255,169,255, +193,255,228,255,20,0,78,0,141,0,187,0,181,0,127,0,85,0,67,0,13,0,170,255,115,255,128,255,116,255,45,255, +20,255,95,255,180,255,211,255,255,255,87,0,116,0,15,0,135,255,88,255,117,255,139,255,137,255,142,255,153,255,140,255, +110,255,103,255,141,255,211,255,35,0,96,0,100,0,34,0,200,255,144,255,113,255,63,255,2,255,237,254,3,255,26,255, +45,255,96,255,168,255,199,255,180,255,162,255,166,255,166,255,169,255,214,255,40,0,83,0,37,0,206,255,169,255,206,255, +254,255,237,255,152,255,85,255,112,255,208,255,33,0,66,0,77,0,68,0,28,0,247,255,7,0,37,0,0,0,141,255, +28,255,245,254,27,255,102,255,162,255,172,255,149,255,141,255,176,255,246,255,62,0,92,0,52,0,236,255,217,255,1,0, +13,0,194,255,97,255,75,255,129,255,187,255,212,255,226,255,6,0,61,0,101,0,94,0,47,0,249,255,232,255,15,0, +72,0,75,0,245,255,131,255,81,255,104,255,140,255,175,255,247,255,89,0,137,0,127,0,133,0,171,0,168,0,118,0, +116,0,181,0,180,0,49,0,177,255,181,255,246,255,246,255,201,255,191,255,197,255,167,255,144,255,191,255,17,0,57,0, +36,0,248,255,235,255,29,0,100,0,98,0,19,0,224,255,239,255,247,255,235,255,32,0,115,0,75,0,184,255,138,255, +1,0,108,0,99,0,80,0,131,0,177,0,170,0,159,0,164,0,136,0,73,0,27,0,16,0,14,0,12,0,27,0, +68,0,113,0,109,0,49,0,22,0,90,0,155,0,110,0,42,0,83,0,151,0,96,0,240,255,220,255,251,255,245,255, +21,0,140,0,179,0,39,0,162,255,186,255,224,255,136,255,36,255,51,255,111,255,134,255,154,255,169,255,135,255,114,255, +185,255,254,255,199,255,112,255,158,255,30,0,71,0,9,0,203,255,164,255,110,255,66,255,95,255,180,255,238,255,223,255, +184,255,197,255,17,0,85,0,94,0,64,0,30,0,254,255,238,255,254,255,8,0,215,255,145,255,142,255,212,255,29,0, +68,0,69,0,21,0,206,255,189,255,237,255,14,0,255,255,248,255,13,0,10,0,232,255,233,255,26,0,58,0,32,0, +231,255,195,255,209,255,255,255,13,0,226,255,193,255,235,255,47,0,60,0,25,0,253,255,236,255,228,255,2,0,51,0, +43,0,239,255,222,255,3,0,11,0,246,255,28,0,109,0,120,0,59,0,39,0,75,0,71,0,24,0,37,0,122,0, +182,0,173,0,122,0,35,0,186,255,153,255,228,255,54,0,64,0,77,0,149,0,177,0,84,0,242,255,7,0,99,0, +156,0,166,0,143,0,70,0,252,255,16,0,104,0,136,0,107,0,125,0,192,0,199,0,134,0,103,0,137,0,166,0, +153,0,133,0,135,0,153,0,168,0,164,0,135,0,98,0,72,0,68,0,104,0,177,0,225,0,200,0,158,0,177,0, +213,0,169,0,81,0,69,0,135,0,159,0,101,0,49,0,72,0,131,0,152,0,108,0,34,0,245,255,16,0,96,0, +176,0,225,0,248,0,251,0,235,0,189,0,98,0,238,255,175,255,224,255,67,0,112,0,96,0,98,0,148,0,201,0, +227,0,242,0,240,0,203,0,153,0,144,0,189,0,230,0,196,0,83,0,229,255,210,255,19,0,74,0,61,0,17,0, +250,255,251,255,4,0,24,0,50,0,55,0,40,0,37,0,50,0,50,0,21,0,240,255,223,255,230,255,243,255,237,255, +210,255,193,255,215,255,251,255,3,0,229,255,194,255,174,255,159,255,135,255,103,255,82,255,96,255,135,255,155,255,133,255, +105,255,115,255,152,255,185,255,210,255,241,255,1,0,233,255,181,255,157,255,191,255,12,0,86,0,117,0,91,0,23,0, +207,255,176,255,203,255,13,0,79,0,125,0,148,0,135,0,71,0,234,255,173,255,186,255,249,255,44,0,48,0,24,0, +11,0,10,0,253,255,239,255,8,0,69,0,133,0,183,0,222,0,226,0,167,0,54,0,190,255,123,255,134,255,186,255, +220,255,217,255,207,255,221,255,12,0,71,0,100,0,84,0,56,0,57,0,86,0,106,0,84,0,26,0,236,255,231,255, +240,255,215,255,160,255,136,255,200,255,67,0,140,0,103,0,28,0,19,0,77,0,138,0,161,0,132,0,58,0,243,255, +225,255,248,255,2,0,238,255,212,255,200,255,204,255,216,255,225,255,235,255,7,0,54,0,80,0,63,0,38,0,42,0, +55,0,50,0,40,0,25,0,228,255,149,255,98,255,95,255,125,255,184,255,246,255,3,0,228,255,221,255,7,0,51,0, +62,0,42,0,8,0,220,255,161,255,94,255,51,255,48,255,78,255,146,255,247,255,60,0,44,0,232,255,178,255,160,255, +174,255,196,255,209,255,230,255,0,0,226,255,141,255,86,255,75,255,54,255,44,255,79,255,99,255,92,255,144,255,230,255, +218,255,117,255,59,255,79,255,122,255,157,255,170,255,148,255,116,255,96,255,77,255,64,255,59,255,40,255,33,255,64,255, +82,255,68,255,91,255,147,255,155,255,128,255,119,255,110,255,96,255,100,255,88,255,58,255,73,255,106,255,73,255,30,255, +52,255,76,255,50,255,33,255,41,255,50,255,85,255,138,255,135,255,93,255,94,255,120,255,110,255,88,255,85,255,72,255, +50,255,55,255,62,255,22,255,232,254,248,254,49,255,88,255,116,255,169,255,223,255,226,255,189,255,185,255,3,0,88,0, +76,0,222,255,122,255,109,255,154,255,192,255,201,255,207,255,204,255,160,255,126,255,179,255,216,255,123,255,119,255,164,0, +221,1,161,1,146,0,19,0,15,0,232,255,183,255,175,255,210,255,49,0,129,0,79,0,237,255,2,0,121,0,202,0, +183,0,99,0,55,0,100,0,134,0,79,0,8,0,224,255,189,255,207,255,37,0,81,0,48,0,44,0,113,0,183,0, +184,0,106,0,31,0,39,0,63,0,31,0,23,0,82,0,110,0,84,0,73,0,60,0,17,0,241,255,247,255,64,0, +203,0,21,1,212,0,130,0,60,0,153,255,31,255,150,255,84,0,100,0,16,0,215,255,146,255,75,255,103,255,223,255, +51,0,31,0,45,0,188,0,141,0,198,254,210,253,233,255,88,2,196,1,209,255,42,255,231,254,99,254,93,255,125,1, +249,1,109,0,230,254,59,254,255,253,54,254,58,255,3,1,110,2,176,1,37,255,228,253,62,255,162,0,3,0,188,254, +137,254,31,255,190,255,90,0,157,0,245,255,190,254,19,254,82,254,1,255,217,255,214,0,124,1,80,1,174,0,28,0, +143,255,26,255,35,255,120,255,96,255,224,254,219,254,168,255,114,0,84,0,146,255,83,255,36,0,87,1,0,2,247,1, +132,1,183,0,179,255,22,255,75,255,210,255,238,255,164,255,117,255,155,255,0,0,108,0,162,0,190,0,8,1,89,1, +94,1,65,1,21,1,120,0,133,255,3,255,35,255,89,255,100,255,107,255,120,255,155,255,255,255,140,0,247,0,31,1, +25,1,8,1,253,0,246,0,246,0,215,0,86,0,174,255,157,255,53,0,182,0,206,0,207,0,211,0,217,0,33,1, +126,1,95,1,249,0,13,1,124,1,129,1,19,1,196,0,176,0,135,0,51,0,207,255,114,255,84,255,170,255,74,0, +218,0,41,1,55,1,32,1,7,1,231,0,157,0,79,0,74,0,106,0,80,0,15,0,241,255,203,255,107,255,57,255, +156,255,27,0,40,0,22,0,117,0,239,0,209,0,70,0,25,0,112,0,174,0,136,0,100,0,118,0,82,0,188,255, +54,255,80,255,244,255,183,0,69,1,93,1,227,0,57,0,226,255,237,255,36,0,113,0,158,0,61,0,122,255,48,255, +174,255,44,0,13,0,192,255,210,255,250,255,202,255,129,255,156,255,253,255,48,0,38,0,53,0,106,0,100,0,241,255, +121,255,123,255,219,255,14,0,223,255,159,255,151,255,180,255,207,255,230,255,242,255,220,255,177,255,167,255,204,255,248,255, +252,255,210,255,145,255,109,255,159,255,7,0,53,0,4,0,208,255,221,255,241,255,230,255,249,255,52,0,49,0,207,255, +128,255,134,255,153,255,137,255,130,255,141,255,127,255,100,255,103,255,97,255,37,255,227,254,227,254,32,255,118,255,216,255, +25,0,8,0,196,255,160,255,173,255,188,255,185,255,169,255,130,255,83,255,95,255,187,255,24,0,48,0,13,0,213,255, +167,255,187,255,45,0,171,0,198,0,114,0,237,255,102,255,9,255,11,255,93,255,165,255,186,255,200,255,238,255,29,0, +85,0,136,0,132,0,62,0,2,0,11,0,57,0,90,0,102,0,84,0,29,0,225,255,201,255,208,255,219,255,227,255, +228,255,206,255,168,255,156,255,191,255,244,255,18,0,17,0,7,0,10,0,27,0,58,0,88,0,89,0,55,0,18,0, +251,255,225,255,203,255,228,255,48,0,126,0,183,0,216,0,191,0,104,0,25,0,13,0,38,0,70,0,117,0,144,0, +86,0,231,255,153,255,128,255,145,255,224,255,79,0,126,0,93,0,61,0,54,0,32,0,8,0,26,0,68,0,105,0, +145,0,163,0,99,0,251,255,205,255,224,255,240,255,238,255,242,255,239,255,224,255,220,255,218,255,197,255,187,255,218,255, +249,255,236,255,202,255,193,255,203,255,208,255,197,255,164,255,126,255,116,255,145,255,185,255,221,255,7,0,49,0,61,0, +29,0,233,255,193,255,184,255,188,255,180,255,157,255,147,255,161,255,176,255,153,255,85,255,19,255,19,255,101,255,215,255, +56,0,115,0,121,0,66,0,242,255,187,255,175,255,197,255,230,255,237,255,210,255,191,255,206,255,215,255,192,255,168,255, +171,255,196,255,235,255,20,0,34,0,15,0,248,255,227,255,192,255,165,255,171,255,175,255,148,255,122,255,105,255,67,255, +37,255,85,255,177,255,225,255,231,255,250,255,17,0,21,0,33,0,56,0,39,0,235,255,188,255,178,255,182,255,181,255, +163,255,127,255,118,255,176,255,255,255,32,0,25,0,17,0,14,0,14,0,22,0,13,0,230,255,208,255,232,255,255,255, +240,255,228,255,247,255,10,0,21,0,37,0,29,0,221,255,162,255,190,255,22,0,76,0,74,0,58,0,44,0,17,0, +242,255,224,255,206,255,169,255,138,255,162,255,231,255,21,0,0,0,215,255,220,255,17,0,54,0,47,0,28,0,25,0, +20,0,254,255,246,255,19,0,62,0,77,0,52,0,10,0,250,255,37,0,110,0,137,0,102,0,78,0,94,0,91,0, +60,0,89,0,184,0,222,0,142,0,53,0,50,0,87,0,88,0,70,0,68,0,52,0,246,255,177,255,156,255,182,255, +225,255,22,0,104,0,186,0,189,0,95,0,255,255,235,255,247,255,223,255,205,255,240,255,12,0,232,255,205,255,243,255, +252,255,162,255,85,255,140,255,254,255,28,0,227,255,171,255,160,255,187,255,237,255,32,0,53,0,53,0,45,0,20,0, +227,255,186,255,181,255,211,255,5,0,45,0,36,0,238,255,196,255,202,255,222,255,226,255,233,255,251,255,0,0,236,255, +209,255,189,255,182,255,190,255,208,255,215,255,210,255,202,255,196,255,192,255,185,255,157,255,112,255,108,255,177,255,3,0, +27,0,12,0,5,0,253,255,245,255,21,0,82,0,92,0,30,0,214,255,167,255,139,255,152,255,218,255,24,0,45,0, +62,0,76,0,40,0,247,255,28,0,117,0,128,0,55,0,6,0,2,0,244,255,236,255,11,0,27,0,255,255,254,255, +49,0,80,0,60,0,44,0,39,0,3,0,229,255,15,0,96,0,135,0,125,0,72,0,233,255,157,255,177,255,239,255, +228,255,176,255,195,255,3,0,8,0,222,255,230,255,31,0,67,0,69,0,69,0,85,0,118,0,159,0,169,0,127,0, +82,0,83,0,104,0,97,0,73,0,71,0,96,0,139,0,189,0,227,0,231,0,202,0,166,0,146,0,142,0,135,0, +108,0,73,0,66,0,85,0,97,0,96,0,112,0,159,0,206,0,218,0,198,0,179,0,189,0,212,0,205,0,163,0, +138,0,151,0,152,0,99,0,29,0,0,0,25,0,85,0,167,0,236,0,231,0,137,0,25,0,248,255,59,0,158,0, +207,0,192,0,159,0,143,0,129,0,106,0,96,0,119,0,156,0,178,0,177,0,155,0,119,0,94,0,118,0,191,0, +254,0,237,0,146,0,67,0,68,0,115,0,121,0,66,0,2,0,227,255,218,255,217,255,230,255,5,0,42,0,78,0, +97,0,78,0,20,0,219,255,207,255,231,255,246,255,229,255,208,255,223,255,8,0,20,0,234,255,180,255,169,255,195,255, +215,255,211,255,192,255,168,255,147,255,148,255,174,255,192,255,165,255,109,255,87,255,129,255,189,255,203,255,182,255,182,255, +221,255,1,0,13,0,24,0,48,0,59,0,23,0,217,255,178,255,181,255,207,255,237,255,18,0,67,0,112,0,122,0, +80,0,5,0,199,255,185,255,216,255,4,0,31,0,39,0,47,0,63,0,70,0,55,0,43,0,58,0,80,0,72,0, +28,0,240,255,224,255,226,255,225,255,227,255,1,0,59,0,103,0,92,0,39,0,241,255,215,255,220,255,241,255,250,255, +243,255,253,255,46,0,96,0,94,0,50,0,27,0,60,0,111,0,117,0,68,0,19,0,17,0,47,0,68,0,69,0, +62,0,43,0,31,0,58,0,102,0,98,0,58,0,55,0,82,0,60,0,248,255,228,255,22,0,61,0,49,0,31,0, +29,0,18,0,244,255,237,255,20,0,72,0,75,0,11,0,203,255,213,255,17,0,34,0,239,255,186,255,181,255,196,255, +190,255,166,255,157,255,175,255,193,255,178,255,146,255,149,255,199,255,246,255,3,0,253,255,245,255,234,255,225,255,233,255, +245,255,236,255,213,255,197,255,192,255,181,255,147,255,112,255,127,255,200,255,15,0,33,0,13,0,230,255,161,255,94,255, +92,255,140,255,153,255,124,255,125,255,162,255,175,255,151,255,132,255,125,255,113,255,114,255,132,255,135,255,117,255,116,255, +130,255,112,255,66,255,39,255,41,255,53,255,71,255,87,255,88,255,83,255,80,255,58,255,26,255,27,255,56,255,70,255, +72,255,94,255,115,255,117,255,127,255,137,255,96,255,24,255,4,255,40,255,71,255,97,255,138,255,159,255,148,255,152,255, +174,255,161,255,123,255,112,255,121,255,112,255,89,255,63,255,31,255,22,255,67,255,131,255,168,255,185,255,190,255,163,255, +124,255,121,255,144,255,148,255,132,255,111,255,78,255,69,255,153,255,40,0,92,0,252,255,140,255,147,255,224,255,244,255, +197,255,179,255,224,255,8,0,242,255,190,255,182,255,244,255,61,0,68,0,18,0,250,255,7,0,3,0,255,255,56,0, +106,0,54,0,246,255,53,0,154,0,143,0,93,0,129,0,169,0,106,0,23,0,13,0,24,0,16,0,29,0,50,0, +35,0,15,0,16,0,6,0,11,0,86,0,158,0,110,0,248,255,196,255,221,255,253,255,22,0,54,0,79,0,82,0, +62,0,37,0,49,0,111,0,159,0,166,0,179,0,191,0,119,0,221,255,92,255,54,255,98,255,182,255,234,255,236,255, +253,255,17,0,187,255,63,255,90,255,215,255,244,255,246,255,83,0,60,0,74,255,4,255,82,0,132,1,36,1,42,0, +165,255,31,255,172,254,96,255,219,0,72,1,58,0,19,255,170,254,160,254,200,254,130,255,197,0,156,1,18,1,166,255, +2,255,156,255,253,255,89,255,246,254,170,255,65,0,225,255,134,255,217,255,252,255,99,255,194,254,178,254,40,255,10,0, +253,0,63,1,154,0,185,255,39,255,223,254,223,254,66,255,205,255,2,0,156,255,244,254,214,254,141,255,68,0,48,0, +222,255,68,0,34,1,141,1,87,1,218,0,48,0,120,255,13,255,25,255,114,255,228,255,19,0,188,255,78,255,119,255, +18,0,113,0,133,0,175,0,239,0,3,1,233,0,176,0,90,0,5,0,200,255,128,255,47,255,44,255,142,255,22,0, +161,0,35,1,78,1,249,0,153,0,157,0,216,0,238,0,234,0,232,0,181,0,40,0,136,255,76,255,143,255,5,0, +98,0,160,0,201,0,203,0,171,0,167,0,210,0,242,0,240,0,251,0,17,1,237,0,142,0,90,0,112,0,94,0, +232,255,136,255,187,255,79,0,189,0,219,0,213,0,209,0,226,0,2,1,243,0,119,0,200,255,112,255,153,255,226,255, +253,255,249,255,243,255,231,255,237,255,39,0,113,0,133,0,113,0,127,0,163,0,142,0,68,0,37,0,84,0,134,0, +123,0,66,0,244,255,159,255,115,255,169,255,26,0,97,0,96,0,86,0,107,0,118,0,94,0,76,0,91,0,86,0, +255,255,128,255,71,255,137,255,254,255,56,0,29,0,244,255,253,255,38,0,56,0,33,0,253,255,232,255,222,255,208,255, +185,255,178,255,216,255,30,0,68,0,21,0,177,255,116,255,140,255,216,255,30,0,66,0,55,0,251,255,171,255,115,255, +114,255,163,255,228,255,14,0,7,0,223,255,192,255,183,255,170,255,159,255,199,255,39,0,102,0,54,0,193,255,118,255, +136,255,205,255,8,0,15,0,207,255,102,255,28,255,35,255,96,255,153,255,193,255,232,255,254,255,219,255,134,255,69,255, +80,255,146,255,196,255,193,255,164,255,147,255,142,255,129,255,112,255,119,255,160,255,219,255,17,0,46,0,38,0,5,0, +243,255,12,0,52,0,50,0,244,255,173,255,156,255,199,255,0,0,38,0,58,0,60,0,32,0,239,255,205,255,202,255, +206,255,205,255,221,255,8,0,44,0,32,0,238,255,199,255,203,255,233,255,253,255,7,0,34,0,80,0,107,0,89,0, +41,0,254,255,242,255,16,0,62,0,61,0,233,255,120,255,80,255,150,255,10,0,76,0,61,0,11,0,233,255,231,255, +255,255,52,0,126,0,179,0,163,0,80,0,237,255,174,255,161,255,190,255,244,255,44,0,84,0,99,0,96,0,88,0, +89,0,110,0,155,0,194,0,174,0,76,0,218,255,172,255,208,255,253,255,249,255,208,255,182,255,196,255,231,255,255,255, +9,0,34,0,90,0,144,0,154,0,121,0,78,0,55,0,65,0,84,0,69,0,3,0,193,255,189,255,233,255,16,0, +33,0,44,0,55,0,59,0,53,0,29,0,249,255,228,255,236,255,243,255,221,255,188,255,162,255,139,255,122,255,127,255, +150,255,177,255,226,255,45,0,105,0,113,0,89,0,54,0,7,0,216,255,198,255,207,255,217,255,232,255,255,255,252,255, +208,255,165,255,152,255,151,255,158,255,196,255,253,255,29,0,35,0,32,0,11,0,232,255,221,255,234,255,233,255,221,255, +230,255,239,255,220,255,206,255,233,255,14,0,30,0,35,0,28,0,249,255,214,255,223,255,254,255,5,0,241,255,209,255, +165,255,133,255,141,255,161,255,147,255,122,255,131,255,166,255,197,255,223,255,247,255,245,255,223,255,218,255,229,255,226,255, +210,255,211,255,231,255,246,255,246,255,228,255,190,255,157,255,162,255,195,255,222,255,250,255,37,0,57,0,25,0,231,255, +209,255,205,255,200,255,201,255,203,255,196,255,191,255,200,255,206,255,204,255,221,255,1,0,29,0,39,0,35,0,8,0, +228,255,225,255,0,0,18,0,4,0,239,255,231,255,225,255,211,255,191,255,176,255,183,255,209,255,233,255,251,255,14,0, +19,0,251,255,230,255,245,255,19,0,27,0,11,0,2,0,27,0,72,0,81,0,32,0,247,255,21,0,84,0,108,0, +89,0,58,0,28,0,17,0,43,0,83,0,98,0,78,0,29,0,225,255,201,255,230,255,0,0,248,255,254,255,39,0, +58,0,25,0,233,255,201,255,193,255,219,255,3,0,12,0,250,255,233,255,212,255,197,255,230,255,34,0,45,0,4,0, +228,255,228,255,249,255,15,0,253,255,186,255,134,255,143,255,176,255,195,255,212,255,234,255,254,255,18,0,28,0,10,0, +246,255,24,0,88,0,105,0,68,0,37,0,25,0,3,0,228,255,199,255,191,255,243,255,80,0,108,0,44,0,249,255, +6,0,26,0,29,0,35,0,24,0,255,255,250,255,238,255,192,255,153,255,142,255,130,255,135,255,184,255,229,255,219,255, +193,255,194,255,213,255,233,255,253,255,13,0,25,0,37,0,26,0,235,255,201,255,231,255,24,0,17,0,229,255,218,255, +241,255,2,0,15,0,24,0,12,0,4,0,15,0,5,0,247,255,39,0,105,0,90,0,22,0,243,255,243,255,250,255, +0,0,238,255,207,255,237,255,75,0,145,0,144,0,95,0,42,0,13,0,254,255,234,255,219,255,234,255,13,0,40,0, +42,0,14,0,237,255,230,255,233,255,218,255,209,255,229,255,246,255,223,255,171,255,144,255,167,255,204,255,215,255,219,255, +247,255,37,0,86,0,125,0,133,0,132,0,155,0,161,0,115,0,84,0,104,0,111,0,76,0,44,0,25,0,7,0, +21,0,64,0,87,0,84,0,78,0,77,0,85,0,118,0,163,0,183,0,167,0,132,0,107,0,93,0,86,0,102,0, +146,0,173,0,158,0,130,0,122,0,137,0,172,0,194,0,168,0,123,0,108,0,113,0,116,0,124,0,139,0,145,0, +139,0,116,0,82,0,58,0,49,0,46,0,60,0,96,0,119,0,107,0,83,0,74,0,96,0,140,0,169,0,163,0, +138,0,110,0,93,0,109,0,149,0,166,0,142,0,103,0,77,0,80,0,105,0,116,0,98,0,72,0,53,0,35,0, +22,0,24,0,25,0,21,0,34,0,67,0,87,0,59,0,251,255,201,255,200,255,232,255,13,0,32,0,21,0,246,255, +220,255,215,255,225,255,240,255,247,255,239,255,232,255,228,255,213,255,194,255,205,255,238,255,235,255,176,255,117,255,120,255, +174,255,215,255,207,255,185,255,191,255,213,255,217,255,211,255,229,255,23,0,65,0,59,0,13,0,225,255,217,255,243,255, +20,0,44,0,62,0,82,0,97,0,89,0,52,0,4,0,235,255,242,255,1,0,5,0,255,255,251,255,244,255,232,255, +221,255,227,255,247,255,7,0,10,0,9,0,5,0,241,255,202,255,172,255,181,255,227,255,17,0,33,0,23,0,14,0, +10,0,1,0,251,255,5,0,15,0,14,0,18,0,30,0,34,0,33,0,40,0,46,0,42,0,34,0,17,0,249,255, +248,255,39,0,95,0,113,0,91,0,55,0,35,0,53,0,95,0,117,0,99,0,61,0,31,0,25,0,33,0,26,0, +7,0,16,0,50,0,56,0,26,0,6,0,254,255,236,255,223,255,230,255,232,255,221,255,221,255,240,255,252,255,244,255, +221,255,192,255,183,255,205,255,230,255,232,255,227,255,229,255,227,255,215,255,207,255,213,255,225,255,230,255,228,255,231,255, +237,255,226,255,202,255,189,255,194,255,199,255,196,255,195,255,204,255,220,255,220,255,193,255,163,255,164,255,190,255,221,255, +3,0,33,0,22,0,236,255,207,255,206,255,215,255,213,255,191,255,157,255,148,255,170,255,193,255,203,255,195,255,164,255, +140,255,149,255,147,255,110,255,111,255,170,255,177,255,100,255,51,255,70,255,88,255,98,255,133,255,150,255,120,255,93,255, +92,255,85,255,79,255,85,255,74,255,57,255,72,255,86,255,66,255,61,255,100,255,126,255,113,255,81,255,49,255,45,255, +84,255,116,255,113,255,124,255,129,255,72,255,49,255,170,255,46,0,18,0,166,255,127,255,126,255,99,255,81,255,89,255, +110,255,169,255,241,255,241,255,195,255,198,255,237,255,238,255,211,255,196,255,195,255,203,255,220,255,222,255,194,255,151,255, +113,255,133,255,227,255,39,0,255,255,199,255,225,255,11,0,251,255,235,255,241,255,210,255,164,255,186,255,234,255,224,255, +189,255,190,255,212,255,229,255,4,0,48,0,72,0,71,0,73,0,85,0,79,0,30,0,232,255,246,255,70,0,124,0, +108,0,66,0,41,0,28,0,28,0,48,0,71,0,78,0,69,0,63,0,75,0,90,0,68,0,4,0,220,255,237,255, +244,255,199,255,197,255,86,0,50,1,174,1,142,1,11,1,85,0,153,255,83,255,203,255,123,0,154,0,42,0,209,255, +194,255,153,255,61,255,30,255,118,255,246,255,86,0,142,0,128,0,20,0,165,255,160,255,208,255,180,255,124,255,202,255, +137,0,242,0,201,0,139,0,82,0,168,255,184,254,118,254,49,255,27,0,161,0,11,1,79,1,176,0,68,255,141,254, +106,255,152,0,124,0,121,255,33,255,198,255,67,0,228,255,47,255,216,254,243,254,67,255,160,255,244,255,59,0,124,0, +144,0,58,0,159,255,78,255,130,255,226,255,25,0,51,0,63,0,23,0,191,255,114,255,67,255,32,255,50,255,184,255, +119,0,220,0,183,0,89,0,253,255,156,255,69,255,39,255,67,255,119,255,184,255,6,0,56,0,37,0,229,255,175,255, +168,255,225,255,74,0,150,0,141,0,87,0,63,0,45,0,240,255,189,255,238,255,79,0,85,0,254,255,200,255,226,255, +249,255,235,255,253,255,86,0,180,0,211,0,180,0,127,0,81,0,53,0,37,0,28,0,55,0,140,0,225,0,219,0, +142,0,107,0,157,0,206,0,192,0,161,0,166,0,176,0,152,0,114,0,102,0,104,0,85,0,31,0,220,255,173,255, +177,255,234,255,47,0,88,0,106,0,136,0,187,0,227,0,225,0,181,0,129,0,103,0,98,0,66,0,243,255,165,255, +152,255,204,255,25,0,106,0,178,0,200,0,147,0,61,0,9,0,5,0,5,0,240,255,223,255,236,255,10,0,30,0, +30,0,23,0,29,0,50,0,75,0,93,0,86,0,47,0,3,0,5,0,66,0,131,0,145,0,117,0,83,0,37,0, +233,255,212,255,4,0,53,0,16,0,190,255,167,255,211,255,240,255,231,255,239,255,20,0,33,0,9,0,254,255,11,0, +254,255,207,255,190,255,242,255,59,0,82,0,47,0,255,255,232,255,250,255,41,0,80,0,72,0,16,0,207,255,177,255, +184,255,194,255,176,255,135,255,103,255,103,255,135,255,182,255,219,255,222,255,192,255,162,255,173,255,223,255,11,0,16,0, +243,255,212,255,198,255,206,255,225,255,242,255,239,255,217,255,190,255,171,255,167,255,170,255,167,255,153,255,135,255,127,255, +132,255,144,255,157,255,165,255,168,255,170,255,174,255,182,255,194,255,209,255,224,255,237,255,250,255,15,0,48,0,88,0, +119,0,129,0,112,0,78,0,44,0,26,0,25,0,27,0,17,0,249,255,223,255,210,255,209,255,206,255,189,255,158,255, +132,255,137,255,180,255,238,255,20,0,24,0,2,0,233,255,232,255,5,0,43,0,74,0,93,0,98,0,91,0,75,0, +44,0,255,255,228,255,238,255,0,0,1,0,248,255,226,255,180,255,141,255,143,255,167,255,185,255,211,255,254,255,29,0, +26,0,251,255,205,255,174,255,194,255,3,0,77,0,136,0,164,0,149,0,114,0,87,0,67,0,50,0,49,0,63,0, +83,0,104,0,109,0,74,0,31,0,18,0,10,0,229,255,195,255,184,255,170,255,155,255,177,255,215,255,222,255,216,255, +234,255,7,0,21,0,28,0,28,0,27,0,42,0,65,0,68,0,42,0,8,0,234,255,227,255,2,0,46,0,61,0, +44,0,11,0,223,255,183,255,170,255,184,255,209,255,236,255,250,255,236,255,200,255,171,255,174,255,214,255,8,0,27,0, +12,0,251,255,250,255,3,0,21,0,46,0,52,0,36,0,28,0,43,0,57,0,46,0,22,0,4,0,254,255,254,255, +251,255,241,255,226,255,214,255,212,255,212,255,204,255,198,255,203,255,204,255,197,255,210,255,242,255,0,0,4,0,41,0, +86,0,88,0,62,0,48,0,34,0,5,0,244,255,245,255,241,255,227,255,220,255,218,255,208,255,193,255,179,255,180,255, +207,255,242,255,252,255,236,255,207,255,175,255,158,255,173,255,199,255,221,255,246,255,253,255,218,255,185,255,209,255,9,0, +50,0,82,0,107,0,96,0,50,0,7,0,238,255,234,255,0,0,22,0,8,0,239,255,235,255,230,255,199,255,165,255, +156,255,169,255,194,255,221,255,245,255,10,0,18,0,245,255,196,255,179,255,203,255,227,255,234,255,236,255,232,255,219,255, +221,255,1,0,46,0,67,0,57,0,32,0,9,0,250,255,239,255,241,255,1,0,1,0,223,255,191,255,196,255,216,255, +216,255,206,255,215,255,234,255,237,255,226,255,225,255,240,255,254,255,255,255,249,255,252,255,11,0,27,0,32,0,28,0, +29,0,49,0,78,0,93,0,89,0,81,0,77,0,60,0,24,0,243,255,225,255,219,255,210,255,201,255,205,255,229,255, +251,255,242,255,205,255,178,255,181,255,192,255,190,255,197,255,229,255,2,0,254,255,245,255,7,0,34,0,40,0,38,0, +42,0,31,0,252,255,228,255,235,255,244,255,237,255,238,255,248,255,230,255,182,255,153,255,168,255,205,255,241,255,14,0, +25,0,15,0,2,0,253,255,249,255,246,255,4,0,14,0,245,255,210,255,221,255,13,0,35,0,24,0,29,0,51,0, +54,0,43,0,53,0,74,0,75,0,65,0,54,0,23,0,233,255,225,255,3,0,12,0,221,255,172,255,160,255,164,255, +172,255,203,255,239,255,235,255,214,255,231,255,21,0,43,0,40,0,35,0,4,0,191,255,146,255,168,255,207,255,217,255, +233,255,31,0,77,0,74,0,68,0,95,0,115,0,95,0,68,0,66,0,70,0,57,0,44,0,37,0,17,0,238,255, +209,255,192,255,180,255,183,255,207,255,239,255,6,0,28,0,50,0,59,0,51,0,49,0,60,0,67,0,54,0,34,0, +22,0,21,0,18,0,0,0,225,255,202,255,202,255,211,255,210,255,209,255,224,255,237,255,222,255,191,255,184,255,209,255, +235,255,246,255,248,255,0,0,12,0,24,0,40,0,62,0,84,0,97,0,105,0,113,0,115,0,109,0,96,0,79,0, +61,0,41,0,30,0,33,0,41,0,36,0,22,0,31,0,68,0,94,0,86,0,85,0,113,0,131,0,114,0,109,0, +143,0,167,0,150,0,133,0,145,0,157,0,153,0,156,0,168,0,157,0,127,0,117,0,134,0,145,0,132,0,113,0, +109,0,124,0,135,0,121,0,87,0,58,0,43,0,24,0,3,0,6,0,39,0,84,0,127,0,157,0,159,0,144,0, +141,0,150,0,140,0,116,0,115,0,129,0,128,0,129,0,160,0,181,0,143,0,74,0,29,0,17,0,18,0,30,0, +43,0,40,0,34,0,48,0,60,0,33,0,235,255,202,255,209,255,238,255,1,0,253,255,249,255,10,0,25,0,9,0, +243,255,254,255,30,0,41,0,17,0,237,255,220,255,231,255,240,255,215,255,169,255,148,255,158,255,170,255,180,255,208,255, +238,255,242,255,219,255,195,255,195,255,224,255,4,0,26,0,45,0,69,0,72,0,43,0,16,0,8,0,246,255,225,255, +243,255,32,0,56,0,60,0,65,0,50,0,4,0,222,255,212,255,203,255,194,255,212,255,237,255,233,255,214,255,213,255, +228,255,247,255,14,0,30,0,21,0,253,255,227,255,197,255,169,255,163,255,179,255,205,255,232,255,249,255,247,255,247,255, +9,0,21,0,4,0,231,255,219,255,218,255,217,255,222,255,235,255,249,255,3,0,7,0,6,0,7,0,14,0,21,0, +30,0,45,0,57,0,54,0,50,0,62,0,85,0,104,0,109,0,95,0,64,0,36,0,24,0,11,0,246,255,237,255, +251,255,11,0,15,0,18,0,36,0,58,0,61,0,42,0,23,0,16,0,5,0,247,255,253,255,17,0,7,0,223,255, +206,255,230,255,244,255,220,255,183,255,160,255,154,255,172,255,210,255,245,255,4,0,15,0,20,0,2,0,226,255,212,255, +222,255,228,255,222,255,217,255,219,255,218,255,211,255,204,255,203,255,207,255,217,255,231,255,249,255,13,0,16,0,239,255, +183,255,158,255,190,255,237,255,250,255,233,255,214,255,197,255,183,255,191,255,217,255,232,255,228,255,224,255,220,255,214,255, +214,255,208,255,177,255,152,255,174,255,216,255,217,255,179,255,148,255,137,255,145,255,169,255,177,255,145,255,116,255,114,255, +89,255,29,255,14,255,70,255,121,255,124,255,108,255,101,255,102,255,81,255,4,255,210,254,96,255,108,0,193,0,11,0, +85,255,64,255,73,255,44,255,74,255,150,255,164,255,149,255,178,255,170,255,77,255,39,255,128,255,202,255,188,255,198,255, +253,255,230,255,137,255,111,255,143,255,126,255,109,255,203,255,63,0,53,0,229,255,223,255,10,0,1,0,204,255,178,255, +184,255,195,255,196,255,178,255,148,255,145,255,170,255,183,255,185,255,195,255,184,255,136,255,121,255,177,255,218,255,193,255, +182,255,240,255,40,0,31,0,4,0,14,0,46,0,65,0,65,0,41,0,2,0,241,255,19,0,70,0,73,0,19,0, +220,255,210,255,234,255,14,0,52,0,80,0,69,0,11,0,200,255,186,255,240,255,34,0,9,0,226,255,34,0,199,0, +89,1,137,1,75,1,153,0,179,255,70,255,172,255,77,0,101,0,246,255,135,255,98,255,128,255,201,255,21,0,75,0, +128,0,183,0,181,0,95,0,232,255,130,255,80,255,132,255,255,255,25,0,147,255,40,255,110,255,229,255,17,0,94,0, +246,0,236,0,212,255,216,254,36,255,74,0,61,1,156,1,92,1,118,0,139,255,134,255,33,0,18,0,31,255,158,254, +107,255,155,0,226,0,75,0,194,255,157,255,123,255,54,255,54,255,187,255,114,0,233,0,254,0,191,0,62,0,174,255, +82,255,64,255,125,255,32,0,246,0,92,1,234,0,9,0,113,255,105,255,205,255,86,0,139,0,24,0,93,255,10,255, +28,255,12,255,209,254,223,254,67,255,166,255,8,0,144,0,246,0,208,0,82,0,4,0,16,0,60,0,79,0,47,0, +235,255,190,255,189,255,171,255,106,255,70,255,117,255,180,255,208,255,7,0,119,0,199,0,190,0,161,0,159,0,116,0, +8,0,184,255,200,255,253,255,25,0,35,0,24,0,217,255,154,255,207,255,121,0,14,1,63,1,79,1,109,1,85,1, +220,0,83,0,11,0,252,255,11,0,48,0,69,0,27,0,224,255,228,255,8,0,242,255,180,255,169,255,227,255,41,0, +111,0,200,0,14,1,11,1,208,0,145,0,87,0,36,0,26,0,51,0,45,0,246,255,214,255,252,255,50,0,68,0, +71,0,96,0,129,0,147,0,143,0,101,0,11,0,175,255,134,255,134,255,127,255,122,255,166,255,253,255,70,0,89,0, +63,0,19,0,255,255,38,0,123,0,188,0,181,0,114,0,39,0,245,255,233,255,0,0,34,0,46,0,32,0,15,0, +8,0,255,255,232,255,203,255,187,255,207,255,5,0,68,0,102,0,94,0,64,0,35,0,19,0,12,0,255,255,233,255, +217,255,230,255,20,0,82,0,141,0,179,0,176,0,129,0,57,0,243,255,186,255,143,255,124,255,131,255,147,255,152,255, +147,255,138,255,129,255,131,255,156,255,190,255,207,255,201,255,191,255,185,255,171,255,153,255,156,255,191,255,246,255,39,0, +60,0,35,0,234,255,191,255,191,255,215,255,222,255,198,255,154,255,110,255,86,255,99,255,143,255,193,255,227,255,243,255, +248,255,244,255,237,255,226,255,210,255,194,255,191,255,214,255,1,0,48,0,83,0,98,0,98,0,98,0,104,0,109,0, +100,0,66,0,15,0,222,255,198,255,202,255,222,255,232,255,218,255,185,255,155,255,149,255,171,255,206,255,232,255,235,255, +222,255,206,255,199,255,205,255,217,255,234,255,3,0,40,0,81,0,107,0,99,0,52,0,242,255,184,255,155,255,159,255, +178,255,196,255,203,255,206,255,210,255,219,255,226,255,222,255,205,255,179,255,158,255,151,255,163,255,189,255,220,255,245,255, +8,0,25,0,49,0,80,0,109,0,122,0,114,0,91,0,71,0,69,0,83,0,98,0,99,0,82,0,56,0,34,0, +18,0,2,0,233,255,203,255,181,255,181,255,200,255,224,255,239,255,241,255,243,255,1,0,27,0,52,0,62,0,51,0, +30,0,11,0,3,0,5,0,9,0,13,0,17,0,21,0,21,0,13,0,253,255,233,255,215,255,202,255,194,255,190,255, +194,255,203,255,211,255,205,255,179,255,144,255,123,255,138,255,189,255,251,255,38,0,45,0,27,0,14,0,27,0,63,0, +99,0,110,0,86,0,39,0,249,255,226,255,235,255,9,0,41,0,53,0,34,0,246,255,202,255,187,255,211,255,3,0, +44,0,53,0,26,0,240,255,202,255,182,255,179,255,187,255,199,255,221,255,1,0,33,0,49,0,49,0,38,0,22,0, +19,0,26,0,23,0,8,0,249,255,233,255,212,255,191,255,166,255,132,255,110,255,118,255,145,255,170,255,193,255,224,255, +2,0,33,0,54,0,69,0,71,0,51,0,20,0,255,255,240,255,225,255,219,255,227,255,243,255,11,0,26,0,20,0, +23,0,62,0,105,0,109,0,81,0,45,0,10,0,245,255,243,255,239,255,220,255,183,255,137,255,121,255,159,255,202,255, +196,255,164,255,150,255,160,255,191,255,232,255,2,0,1,0,245,255,229,255,217,255,233,255,18,0,50,0,58,0,54,0, +41,0,13,0,234,255,226,255,6,0,43,0,34,0,251,255,223,255,207,255,207,255,232,255,242,255,204,255,164,255,166,255, +190,255,226,255,13,0,26,0,254,255,240,255,2,0,21,0,29,0,32,0,20,0,4,0,15,0,45,0,59,0,56,0, +48,0,40,0,29,0,252,255,200,255,168,255,168,255,180,255,198,255,226,255,240,255,222,255,193,255,177,255,185,255,206,255, +212,255,204,255,212,255,232,255,235,255,222,255,222,255,243,255,27,0,71,0,93,0,101,0,116,0,113,0,83,0,72,0, +76,0,31,0,206,255,172,255,199,255,244,255,27,0,40,0,15,0,238,255,224,255,219,255,220,255,240,255,8,0,11,0, +1,0,253,255,250,255,227,255,197,255,197,255,234,255,13,0,27,0,41,0,55,0,51,0,45,0,58,0,75,0,88,0, +105,0,101,0,60,0,14,0,241,255,218,255,203,255,204,255,201,255,187,255,177,255,173,255,171,255,181,255,207,255,233,255, +251,255,249,255,228,255,209,255,208,255,220,255,245,255,31,0,65,0,71,0,64,0,62,0,56,0,48,0,54,0,70,0, +73,0,52,0,17,0,250,255,1,0,26,0,42,0,29,0,252,255,230,255,231,255,233,255,221,255,208,255,198,255,192,255, +206,255,242,255,9,0,0,0,251,255,16,0,44,0,61,0,68,0,65,0,55,0,52,0,50,0,33,0,2,0,237,255, +233,255,230,255,221,255,213,255,212,255,212,255,215,255,220,255,213,255,195,255,191,255,214,255,243,255,1,0,255,255,246,255, +230,255,219,255,224,255,239,255,2,0,32,0,75,0,106,0,107,0,89,0,73,0,66,0,67,0,73,0,71,0,48,0, +19,0,13,0,33,0,62,0,90,0,109,0,105,0,78,0,54,0,48,0,54,0,60,0,66,0,70,0,72,0,85,0, +116,0,145,0,147,0,127,0,111,0,108,0,114,0,118,0,105,0,68,0,31,0,24,0,52,0,87,0,112,0,126,0, +131,0,124,0,112,0,96,0,75,0,59,0,62,0,83,0,101,0,111,0,125,0,148,0,167,0,170,0,154,0,124,0, +98,0,96,0,118,0,134,0,128,0,111,0,102,0,105,0,114,0,120,0,112,0,88,0,58,0,29,0,255,255,229,255, +224,255,249,255,29,0,47,0,34,0,255,255,225,255,226,255,2,0,35,0,40,0,18,0,247,255,233,255,236,255,251,255, +10,0,17,0,15,0,7,0,247,255,227,255,212,255,216,255,233,255,254,255,14,0,25,0,33,0,36,0,28,0,4,0, +230,255,216,255,231,255,12,0,45,0,53,0,34,0,5,0,244,255,249,255,14,0,39,0,58,0,64,0,48,0,10,0, +222,255,197,255,208,255,239,255,7,0,6,0,241,255,220,255,211,255,216,255,223,255,224,255,225,255,231,255,238,255,240,255, +236,255,230,255,221,255,210,255,199,255,183,255,164,255,160,255,177,255,202,255,213,255,207,255,198,255,198,255,211,255,234,255, +7,0,28,0,36,0,34,0,29,0,18,0,2,0,244,255,241,255,250,255,5,0,9,0,13,0,24,0,35,0,36,0, +38,0,59,0,90,0,102,0,93,0,80,0,61,0,22,0,237,255,229,255,249,255,0,0,240,255,238,255,6,0,27,0, +25,0,21,0,34,0,56,0,65,0,55,0,34,0,11,0,255,255,3,0,12,0,10,0,241,255,206,255,187,255,192,255, +207,255,215,255,224,255,244,255,9,0,12,0,3,0,252,255,244,255,229,255,218,255,217,255,213,255,202,255,201,255,214,255, +221,255,221,255,235,255,8,0,30,0,31,0,19,0,4,0,248,255,239,255,224,255,199,255,187,255,215,255,4,0,16,0, +246,255,221,255,216,255,216,255,216,255,219,255,214,255,207,255,223,255,4,0,19,0,255,255,244,255,4,0,14,0,3,0, +242,255,215,255,170,255,138,255,142,255,167,255,196,255,223,255,233,255,209,255,164,255,125,255,100,255,85,255,68,255,21,255, +246,254,107,255,92,0,191,0,38,0,145,255,171,255,203,255,119,255,37,255,27,255,55,255,131,255,216,255,204,255,139,255, +150,255,210,255,215,255,200,255,237,255,10,0,206,255,120,255,117,255,147,255,94,255,41,255,133,255,4,0,243,255,183,255, +238,255,57,0,13,0,178,255,139,255,142,255,161,255,204,255,242,255,233,255,197,255,195,255,213,255,190,255,162,255,208,255, +6,0,232,255,180,255,179,255,190,255,195,255,220,255,229,255,210,255,216,255,228,255,200,255,189,255,232,255,26,0,52,0, +32,0,225,255,200,255,222,255,183,255,120,255,180,255,22,0,4,0,229,255,36,0,90,0,80,0,68,0,39,0,234,255, +209,255,199,255,135,255,101,255,217,255,162,0,45,1,80,1,47,1,187,0,247,255,106,255,142,255,229,255,179,255,53,255, +16,255,75,255,180,255,28,0,53,0,9,0,17,0,84,0,114,0,101,0,71,0,11,0,208,255,190,255,199,255,229,255, +249,255,187,255,96,255,126,255,254,255,92,0,108,0,31,0,120,255,220,254,167,254,20,255,118,0,52,2,149,2,57,1, +210,255,117,255,142,255,174,255,3,0,70,0,29,0,234,255,26,0,79,0,235,255,56,255,56,255,20,0,173,0,94,0, +10,0,138,0,52,1,226,0,177,255,218,254,228,254,55,255,166,255,177,0,228,1,6,2,17,1,12,0,102,255,46,255, +168,255,129,0,221,0,156,0,67,0,244,255,131,255,14,255,212,254,214,254,202,254,170,254,0,255,244,255,166,0,110,0, +203,255,114,255,136,255,0,0,143,0,188,0,138,0,94,0,41,0,184,255,83,255,59,255,60,255,49,255,91,255,229,255, +139,0,226,0,204,0,125,0,45,0,252,255,0,0,39,0,56,0,32,0,254,255,226,255,189,255,136,255,97,255,129,255, +235,255,84,0,162,0,8,1,101,1,68,1,177,0,58,0,38,0,77,0,125,0,141,0,92,0,250,255,162,255,123,255, +117,255,113,255,117,255,158,255,228,255,43,0,118,0,205,0,6,1,239,0,158,0,80,0,25,0,237,255,215,255,230,255, +242,255,209,255,173,255,211,255,55,0,126,0,140,0,169,0,244,0,42,1,9,1,175,0,84,0,251,255,160,255,113,255, +142,255,194,255,200,255,177,255,188,255,227,255,236,255,216,255,234,255,58,0,139,0,161,0,136,0,103,0,68,0,20,0, +236,255,232,255,254,255,12,0,9,0,10,0,26,0,35,0,19,0,245,255,233,255,251,255,28,0,57,0,79,0,93,0, +83,0,40,0,253,255,251,255,31,0,55,0,36,0,2,0,248,255,6,0,28,0,60,0,107,0,139,0,119,0,54,0, +253,255,228,255,213,255,190,255,172,255,177,255,188,255,187,255,183,255,195,255,212,255,205,255,171,255,134,255,107,255,81,255, +52,255,44,255,84,255,164,255,235,255,6,0,252,255,233,255,217,255,207,255,214,255,249,255,26,0,9,0,191,255,115,255, +94,255,129,255,188,255,253,255,53,0,70,0,27,0,218,255,191,255,205,255,209,255,177,255,147,255,158,255,198,255,236,255, +19,0,74,0,126,0,142,0,124,0,104,0,93,0,71,0,35,0,16,0,43,0,87,0,99,0,65,0,14,0,228,255, +195,255,171,255,175,255,208,255,231,255,218,255,194,255,201,255,243,255,25,0,27,0,7,0,246,255,233,255,219,255,230,255, +19,0,63,0,62,0,14,0,215,255,186,255,175,255,159,255,152,255,181,255,229,255,8,0,26,0,42,0,51,0,39,0, +4,0,227,255,220,255,226,255,210,255,187,255,196,255,234,255,13,0,33,0,46,0,61,0,75,0,72,0,62,0,76,0, +109,0,121,0,105,0,87,0,74,0,53,0,23,0,248,255,225,255,215,255,202,255,194,255,223,255,24,0,54,0,39,0, +10,0,250,255,3,0,24,0,33,0,26,0,15,0,247,255,218,255,216,255,236,255,241,255,225,255,216,255,233,255,22,0, +69,0,81,0,62,0,37,0,254,255,205,255,180,255,183,255,189,255,185,255,171,255,154,255,154,255,168,255,175,255,181,255, +200,255,211,255,213,255,236,255,23,0,63,0,87,0,90,0,78,0,77,0,78,0,52,0,16,0,252,255,239,255,234,255, +244,255,255,255,0,0,4,0,18,0,46,0,90,0,116,0,92,0,44,0,7,0,232,255,204,255,189,255,183,255,188,255, +209,255,226,255,232,255,243,255,0,0,8,0,35,0,79,0,101,0,88,0,50,0,253,255,207,255,182,255,153,255,118,255, +108,255,123,255,143,255,169,255,196,255,211,255,221,255,232,255,240,255,252,255,16,0,29,0,32,0,35,0,29,0,20,0, +28,0,41,0,38,0,29,0,20,0,12,0,35,0,92,0,135,0,131,0,96,0,49,0,15,0,13,0,29,0,35,0, +22,0,246,255,203,255,183,255,199,255,229,255,243,255,226,255,190,255,180,255,211,255,242,255,250,255,249,255,241,255,216,255, +199,255,211,255,241,255,20,0,52,0,65,0,59,0,53,0,52,0,56,0,63,0,59,0,29,0,240,255,211,255,213,255, +233,255,239,255,233,255,245,255,12,0,9,0,241,255,231,255,237,255,239,255,241,255,248,255,3,0,17,0,27,0,22,0, +9,0,6,0,14,0,23,0,29,0,32,0,22,0,252,255,226,255,217,255,216,255,205,255,195,255,203,255,205,255,183,255, +161,255,161,255,167,255,157,255,140,255,139,255,166,255,211,255,249,255,0,0,236,255,217,255,217,255,232,255,254,255,20,0, +21,0,255,255,238,255,253,255,30,0,58,0,75,0,75,0,48,0,9,0,3,0,39,0,74,0,74,0,46,0,17,0, +2,0,3,0,8,0,6,0,1,0,3,0,3,0,249,255,241,255,242,255,238,255,218,255,203,255,209,255,228,255,249,255, +17,0,33,0,26,0,12,0,23,0,53,0,67,0,52,0,27,0,11,0,6,0,6,0,2,0,248,255,240,255,231,255, +209,255,175,255,159,255,178,255,216,255,251,255,19,0,24,0,3,0,229,255,216,255,220,255,227,255,237,255,5,0,34,0, +50,0,53,0,52,0,49,0,44,0,41,0,45,0,59,0,83,0,107,0,114,0,104,0,89,0,71,0,47,0,21,0, +7,0,254,255,237,255,214,255,198,255,191,255,190,255,194,255,205,255,216,255,223,255,227,255,226,255,218,255,215,255,231,255, +12,0,52,0,67,0,46,0,3,0,226,255,221,255,232,255,237,255,229,255,223,255,230,255,244,255,251,255,243,255,223,255, +210,255,217,255,236,255,251,255,250,255,242,255,241,255,253,255,13,0,17,0,9,0,1,0,6,0,22,0,38,0,44,0, +39,0,33,0,37,0,51,0,63,0,63,0,53,0,48,0,58,0,74,0,81,0,73,0,61,0,52,0,46,0,42,0, +41,0,46,0,52,0,60,0,74,0,94,0,110,0,111,0,94,0,70,0,50,0,42,0,47,0,58,0,63,0,55,0, +44,0,47,0,67,0,90,0,103,0,106,0,101,0,83,0,52,0,27,0,26,0,47,0,75,0,100,0,118,0,121,0, +100,0,73,0,71,0,100,0,123,0,108,0,75,0,68,0,94,0,116,0,109,0,87,0,79,0,85,0,93,0,98,0, +97,0,77,0,33,0,247,255,241,255,13,0,35,0,29,0,13,0,16,0,29,0,26,0,2,0,235,255,229,255,241,255, +6,0,29,0,39,0,27,0,4,0,246,255,249,255,0,0,253,255,244,255,234,255,219,255,204,255,205,255,229,255,2,0, +14,0,11,0,12,0,19,0,15,0,0,0,255,255,19,0,39,0,41,0,42,0,62,0,84,0,72,0,28,0,249,255, +251,255,17,0,31,0,41,0,57,0,64,0,46,0,13,0,252,255,252,255,241,255,206,255,175,255,176,255,197,255,206,255, +195,255,185,255,194,255,218,255,249,255,23,0,42,0,37,0,8,0,225,255,195,255,175,255,157,255,142,255,139,255,152,255, +177,255,207,255,227,255,226,255,207,255,189,255,190,255,212,255,237,255,246,255,251,255,9,0,17,0,6,0,247,255,240,255, +236,255,236,255,248,255,8,0,21,0,31,0,38,0,47,0,71,0,96,0,94,0,70,0,51,0,36,0,4,0,212,255, +172,255,158,255,167,255,185,255,207,255,242,255,26,0,37,0,19,0,11,0,28,0,40,0,33,0,15,0,1,0,251,255, +244,255,224,255,199,255,192,255,199,255,206,255,216,255,228,255,232,255,235,255,243,255,237,255,223,255,234,255,8,0,18,0, +8,0,255,255,245,255,232,255,221,255,205,255,190,255,207,255,248,255,11,0,255,255,248,255,6,0,25,0,35,0,33,0, +24,0,19,0,16,0,6,0,3,0,13,0,18,0,9,0,255,255,251,255,243,255,229,255,209,255,196,255,213,255,249,255, +7,0,249,255,238,255,244,255,0,0,9,0,11,0,5,0,233,255,190,255,179,255,219,255,4,0,8,0,248,255,215,255, +168,255,128,255,68,255,16,255,160,255,224,0,68,1,69,0,97,255,88,255,97,255,60,255,80,255,129,255,192,255,40,0, +55,0,183,255,105,255,160,255,216,255,236,255,6,0,16,0,14,0,15,0,211,255,114,255,96,255,128,255,143,255,216,255, +64,0,40,0,196,255,202,255,13,0,249,255,180,255,151,255,162,255,202,255,233,255,195,255,136,255,134,255,145,255,122,255, +136,255,229,255,61,0,68,0,28,0,2,0,240,255,215,255,216,255,243,255,231,255,192,255,205,255,251,255,245,255,213,255, +213,255,210,255,183,255,178,255,209,255,231,255,209,255,170,255,183,255,244,255,2,0,225,255,251,255,62,0,61,0,16,0, +249,255,224,255,213,255,253,255,5,0,205,255,229,255,108,0,195,0,197,0,200,0,183,0,71,0,178,255,111,255,157,255, +228,255,193,255,44,255,205,254,30,255,171,255,217,255,216,255,37,0,144,0,144,0,44,0,213,255,183,255,198,255,250,255, +44,0,41,0,246,255,159,255,66,255,82,255,241,255,126,0,141,0,88,0,234,255,68,255,254,254,110,255,26,0,153,0, +184,0,51,0,147,255,225,255,200,0,248,0,84,0,169,255,75,255,90,255,254,255,177,0,175,0,19,0,149,255,152,255, +225,255,3,0,254,255,52,0,160,0,185,0,103,0,51,0,85,0,61,0,143,255,244,254,45,255,227,255,109,0,7,1, +206,1,213,1,188,0,167,255,122,255,208,255,15,0,4,0,188,255,167,255,21,0,113,0,247,255,245,254,116,254,228,254, +168,255,234,255,179,255,176,255,1,0,39,0,248,255,186,255,169,255,214,255,22,0,18,0,215,255,216,255,26,0,52,0, +9,0,209,255,163,255,122,255,129,255,10,0,247,0,122,1,8,1,46,0,183,255,153,255,151,255,215,255,64,0,86,0, +16,0,212,255,204,255,226,255,8,0,43,0,58,0,68,0,91,0,125,0,174,0,231,0,254,0,209,0,131,0,98,0, +110,0,82,0,241,255,153,255,117,255,76,255,9,255,7,255,138,255,68,0,144,0,69,0,246,255,23,0,90,0,83,0, +42,0,37,0,28,0,219,255,155,255,174,255,249,255,32,0,27,0,67,0,175,0,2,1,242,0,175,0,134,0,108,0, +45,0,218,255,177,255,189,255,214,255,229,255,253,255,29,0,38,0,9,0,226,255,202,255,201,255,228,255,35,0,109,0, +144,0,136,0,128,0,137,0,115,0,31,0,198,255,182,255,221,255,232,255,190,255,158,255,190,255,255,255,44,0,72,0, +114,0,152,0,144,0,99,0,77,0,106,0,134,0,102,0,20,0,206,255,190,255,214,255,253,255,40,0,77,0,89,0, +65,0,26,0,6,0,8,0,6,0,245,255,234,255,248,255,20,0,32,0,27,0,20,0,14,0,248,255,208,255,176,255, +169,255,172,255,160,255,137,255,127,255,133,255,142,255,156,255,190,255,235,255,4,0,247,255,222,255,211,255,208,255,194,255, +175,255,167,255,162,255,144,255,123,255,137,255,193,255,247,255,8,0,2,0,13,0,44,0,60,0,40,0,5,0,238,255, +232,255,235,255,253,255,41,0,92,0,109,0,78,0,38,0,35,0,64,0,75,0,42,0,245,255,215,255,219,255,247,255, +34,0,86,0,113,0,85,0,16,0,218,255,208,255,215,255,211,255,211,255,235,255,14,0,28,0,21,0,23,0,43,0, +62,0,70,0,79,0,93,0,83,0,27,0,211,255,170,255,164,255,158,255,134,255,118,255,133,255,168,255,202,255,238,255, +27,0,60,0,49,0,5,0,224,255,218,255,224,255,228,255,244,255,30,0,72,0,75,0,42,0,12,0,8,0,17,0, +24,0,35,0,53,0,58,0,38,0,17,0,28,0,60,0,74,0,55,0,33,0,34,0,46,0,40,0,17,0,246,255, +219,255,185,255,164,255,180,255,229,255,14,0,24,0,22,0,38,0,61,0,61,0,33,0,0,0,235,255,220,255,213,255, +226,255,254,255,14,0,255,255,229,255,226,255,245,255,1,0,243,255,220,255,203,255,186,255,159,255,131,255,114,255,99,255, +81,255,77,255,115,255,189,255,0,0,30,0,27,0,18,0,14,0,17,0,31,0,59,0,81,0,75,0,47,0,28,0, +33,0,43,0,28,0,246,255,206,255,178,255,166,255,179,255,219,255,12,0,37,0,31,0,18,0,21,0,32,0,30,0, +13,0,252,255,241,255,230,255,219,255,216,255,220,255,220,255,216,255,230,255,14,0,58,0,69,0,42,0,254,255,215,255, +186,255,169,255,164,255,166,255,158,255,136,255,110,255,104,255,125,255,158,255,188,255,221,255,255,255,18,0,7,0,241,255, +233,255,247,255,16,0,49,0,84,0,109,0,111,0,91,0,67,0,55,0,55,0,58,0,55,0,49,0,42,0,33,0, +28,0,35,0,45,0,47,0,37,0,16,0,243,255,223,255,225,255,230,255,212,255,186,255,184,255,201,255,213,255,227,255, +252,255,0,0,221,255,192,255,208,255,244,255,8,0,18,0,29,0,34,0,37,0,55,0,76,0,71,0,50,0,31,0, +6,0,235,255,237,255,9,0,17,0,252,255,243,255,254,255,251,255,239,255,6,0,59,0,82,0,57,0,19,0,252,255, +241,255,240,255,1,0,27,0,33,0,10,0,241,255,251,255,39,0,72,0,62,0,25,0,245,255,217,255,199,255,201,255, +214,255,210,255,186,255,165,255,161,255,166,255,174,255,180,255,179,255,183,255,200,255,209,255,190,255,170,255,180,255,212,255, +240,255,15,0,50,0,52,0,8,0,223,255,230,255,4,0,23,0,41,0,69,0,80,0,49,0,9,0,254,255,13,0, +29,0,48,0,77,0,95,0,72,0,25,0,248,255,237,255,234,255,240,255,14,0,52,0,68,0,59,0,36,0,0,0, +216,255,198,255,202,255,204,255,207,255,232,255,9,0,24,0,29,0,37,0,20,0,227,255,202,255,236,255,20,0,14,0, +244,255,229,255,212,255,195,255,212,255,2,0,21,0,1,0,244,255,4,0,23,0,25,0,12,0,246,255,225,255,223,255, +244,255,16,0,40,0,55,0,60,0,59,0,61,0,61,0,45,0,26,0,31,0,63,0,99,0,118,0,114,0,93,0, +70,0,60,0,62,0,61,0,51,0,29,0,252,255,223,255,218,255,226,255,219,255,201,255,196,255,200,255,192,255,183,255, +192,255,206,255,204,255,201,255,219,255,242,255,252,255,254,255,255,255,245,255,223,255,214,255,228,255,253,255,15,0,16,0, +0,0,232,255,219,255,225,255,239,255,247,255,248,255,249,255,0,0,11,0,21,0,21,0,9,0,0,0,11,0,40,0, +61,0,52,0,13,0,224,255,199,255,208,255,242,255,20,0,40,0,49,0,61,0,86,0,114,0,126,0,113,0,86,0, +59,0,43,0,31,0,15,0,252,255,241,255,251,255,33,0,83,0,116,0,115,0,85,0,52,0,37,0,43,0,56,0, +66,0,64,0,48,0,23,0,1,0,248,255,252,255,7,0,21,0,32,0,33,0,19,0,5,0,10,0,41,0,80,0, +105,0,111,0,104,0,96,0,95,0,104,0,117,0,113,0,80,0,33,0,5,0,15,0,49,0,89,0,117,0,125,0, +108,0,74,0,50,0,53,0,70,0,77,0,62,0,38,0,15,0,253,255,247,255,0,0,12,0,8,0,241,255,220,255, +222,255,238,255,247,255,244,255,244,255,253,255,9,0,19,0,27,0,22,0,251,255,217,255,205,255,229,255,5,0,12,0, +247,255,220,255,203,255,199,255,209,255,230,255,248,255,246,255,234,255,238,255,13,0,48,0,60,0,52,0,42,0,38,0, +38,0,44,0,60,0,69,0,53,0,17,0,249,255,254,255,17,0,31,0,39,0,45,0,41,0,21,0,250,255,232,255, +219,255,199,255,178,255,180,255,207,255,233,255,237,255,229,255,222,255,215,255,212,255,220,255,235,255,239,255,225,255,203,255, +194,255,200,255,208,255,211,255,209,255,215,255,234,255,243,255,226,255,209,255,205,255,196,255,189,255,209,255,238,255,249,255, +247,255,244,255,238,255,237,255,242,255,251,255,15,0,42,0,52,0,49,0,58,0,75,0,85,0,81,0,66,0,52,0, +49,0,44,0,25,0,7,0,252,255,235,255,212,255,199,255,193,255,195,255,209,255,232,255,0,0,26,0,44,0,35,0, +12,0,255,255,247,255,232,255,218,255,205,255,191,255,195,255,227,255,3,0,11,0,0,0,241,255,238,255,240,255,227,255, +210,255,225,255,9,0,21,0,0,0,242,255,239,255,228,255,222,255,240,255,19,0,44,0,32,0,240,255,205,255,212,255, +227,255,233,255,6,0,49,0,67,0,58,0,42,0,34,0,50,0,70,0,66,0,56,0,48,0,16,0,244,255,5,0, +18,0,246,255,230,255,235,255,229,255,237,255,240,255,185,255,149,255,209,255,4,0,227,255,210,255,238,255,231,255,196,255, +197,255,210,255,170,255,101,255,159,255,134,0,27,1,147,0,200,255,164,255,175,255,126,255,120,255,154,255,150,255,173,255, +234,255,224,255,173,255,197,255,2,0,12,0,231,255,208,255,241,255,21,0,237,255,177,255,172,255,154,255,129,255,211,255, +61,0,24,0,190,255,192,255,229,255,236,255,234,255,217,255,192,255,196,255,219,255,244,255,20,0,1,0,165,255,102,255, +140,255,222,255,7,0,232,255,175,255,162,255,186,255,202,255,215,255,233,255,252,255,44,0,97,0,75,0,19,0,15,0, +5,0,199,255,179,255,226,255,241,255,204,255,170,255,150,255,156,255,209,255,255,255,253,255,13,0,77,0,95,0,29,0, +235,255,243,255,231,255,200,255,235,255,51,0,70,0,78,0,144,0,207,0,188,0,96,0,247,255,199,255,231,255,7,0, +211,255,95,255,246,254,241,254,99,255,196,255,179,255,165,255,2,0,80,0,54,0,20,0,40,0,53,0,32,0,5,0, +236,255,199,255,149,255,96,255,83,255,139,255,233,255,39,0,21,0,210,255,157,255,137,255,156,255,2,0,153,0,205,0, +113,0,15,0,241,255,207,255,156,255,162,255,213,255,251,255,34,0,90,0,116,0,100,0,51,0,211,255,153,255,216,255, +228,255,69,255,43,255,104,0,125,1,32,1,90,0,14,0,146,255,15,255,167,255,206,0,253,0,94,0,228,255,124,255, +42,255,199,255,75,1,97,2,5,2,113,0,1,255,45,255,122,0,166,0,37,255,46,254,21,255,107,0,167,0,7,0, +113,255,87,255,153,255,182,255,133,255,132,255,210,255,234,255,189,255,195,255,236,255,232,255,218,255,235,255,0,0,47,0, +117,0,110,0,32,0,17,0,45,0,240,255,153,255,218,255,165,0,46,1,225,0,5,0,137,255,223,255,69,0,0,0, +139,255,148,255,211,255,223,255,242,255,43,0,68,0,46,0,31,0,37,0,52,0,70,0,110,0,231,0,158,1,211,1, +13,1,3,0,133,255,101,255,53,255,27,255,65,255,111,255,124,255,140,255,213,255,104,0,229,0,190,0,24,0,189,255, +229,255,8,0,231,255,189,255,146,255,82,255,68,255,164,255,71,0,208,0,253,0,195,0,102,0,44,0,6,0,216,255, +211,255,18,0,66,0,36,0,251,255,14,0,46,0,9,0,180,255,137,255,169,255,229,255,20,0,54,0,68,0,50,0, +27,0,27,0,30,0,254,255,226,255,24,0,138,0,184,0,99,0,227,255,163,255,151,255,128,255,126,255,216,255,105,0, +171,0,110,0,16,0,246,255,19,0,43,0,59,0,93,0,125,0,106,0,39,0,242,255,246,255,35,0,83,0,101,0, +73,0,14,0,224,255,229,255,10,0,35,0,36,0,37,0,44,0,29,0,243,255,209,255,206,255,217,255,217,255,208,255, +195,255,171,255,137,255,130,255,174,255,240,255,13,0,245,255,205,255,186,255,191,255,212,255,241,255,3,0,244,255,200,255, +159,255,137,255,125,255,118,255,136,255,184,255,225,255,223,255,195,255,191,255,232,255,29,0,53,0,36,0,249,255,210,255, +203,255,234,255,24,0,53,0,64,0,73,0,86,0,88,0,78,0,70,0,71,0,68,0,47,0,17,0,240,255,205,255, +184,255,209,255,26,0,94,0,92,0,22,0,201,255,167,255,170,255,186,255,212,255,4,0,67,0,115,0,122,0,86,0, +28,0,238,255,226,255,244,255,11,0,20,0,18,0,15,0,11,0,244,255,193,255,127,255,85,255,98,255,161,255,235,255, +26,0,35,0,20,0,4,0,249,255,233,255,215,255,214,255,249,255,53,0,105,0,117,0,91,0,62,0,60,0,77,0, +75,0,35,0,235,255,204,255,222,255,4,0,20,0,7,0,255,255,12,0,36,0,56,0,65,0,56,0,36,0,20,0, +14,0,19,0,16,0,247,255,218,255,216,255,227,255,215,255,197,255,217,255,22,0,85,0,101,0,61,0,5,0,241,255, +255,255,13,0,16,0,13,0,4,0,255,255,3,0,253,255,232,255,222,255,232,255,247,255,254,255,232,255,175,255,128,255, +130,255,155,255,162,255,154,255,160,255,194,255,244,255,17,0,8,0,253,255,5,0,5,0,252,255,12,0,46,0,54,0, +27,0,5,0,12,0,38,0,49,0,26,0,255,255,245,255,228,255,191,255,178,255,210,255,243,255,240,255,219,255,220,255, +7,0,71,0,99,0,63,0,1,0,218,255,214,255,232,255,244,255,233,255,219,255,229,255,253,255,11,0,9,0,246,255, +211,255,180,255,170,255,172,255,166,255,151,255,143,255,152,255,167,255,175,255,182,255,205,255,231,255,237,255,226,255,219,255, +225,255,240,255,2,0,23,0,41,0,45,0,43,0,63,0,98,0,113,0,94,0,65,0,37,0,6,0,238,255,240,255, +10,0,35,0,35,0,25,0,43,0,75,0,67,0,20,0,252,255,6,0,5,0,231,255,200,255,203,255,238,255,3,0, +224,255,169,255,153,255,174,255,208,255,254,255,37,0,42,0,27,0,23,0,27,0,35,0,43,0,37,0,26,0,35,0, +41,0,14,0,241,255,236,255,233,255,226,255,235,255,3,0,34,0,65,0,70,0,39,0,16,0,19,0,27,0,40,0, +62,0,60,0,26,0,252,255,239,255,236,255,2,0,41,0,57,0,49,0,32,0,254,255,214,255,199,255,202,255,212,255, +238,255,4,0,247,255,223,255,217,255,212,255,195,255,180,255,164,255,147,255,154,255,180,255,193,255,182,255,167,255,169,255, +208,255,9,0,33,0,13,0,253,255,1,0,1,0,1,0,20,0,45,0,58,0,64,0,72,0,76,0,59,0,20,0, +250,255,19,0,62,0,66,0,35,0,17,0,17,0,7,0,244,255,242,255,9,0,36,0,45,0,37,0,25,0,12,0, +1,0,9,0,32,0,38,0,10,0,231,255,224,255,241,255,2,0,10,0,15,0,13,0,245,255,216,255,210,255,224,255, +229,255,220,255,218,255,236,255,0,0,255,255,233,255,228,255,4,0,42,0,51,0,28,0,255,255,244,255,1,0,18,0, +13,0,6,0,25,0,54,0,62,0,52,0,43,0,44,0,52,0,55,0,47,0,44,0,59,0,76,0,88,0,101,0, +101,0,80,0,64,0,67,0,58,0,24,0,245,255,223,255,212,255,205,255,191,255,182,255,198,255,221,255,217,255,198,255, +198,255,212,255,221,255,234,255,246,255,246,255,234,255,219,255,204,255,206,255,226,255,234,255,229,255,236,255,0,0,7,0, +254,255,242,255,239,255,254,255,19,0,18,0,254,255,246,255,247,255,239,255,233,255,252,255,26,0,47,0,51,0,41,0, +32,0,27,0,7,0,228,255,217,255,240,255,6,0,7,0,5,0,10,0,20,0,32,0,43,0,58,0,80,0,92,0, +70,0,30,0,9,0,16,0,38,0,57,0,59,0,50,0,48,0,53,0,45,0,28,0,21,0,26,0,28,0,17,0, +4,0,5,0,23,0,39,0,41,0,39,0,45,0,53,0,52,0,39,0,19,0,0,0,249,255,8,0,38,0,59,0, +53,0,36,0,35,0,60,0,95,0,115,0,109,0,87,0,71,0,69,0,77,0,81,0,74,0,55,0,42,0,50,0, +65,0,70,0,65,0,60,0,62,0,74,0,80,0,63,0,34,0,15,0,5,0,250,255,244,255,243,255,242,255,249,255, +3,0,2,0,252,255,1,0,10,0,12,0,5,0,243,255,226,255,237,255,10,0,15,0,248,255,229,255,225,255,224,255, +221,255,211,255,197,255,195,255,201,255,200,255,202,255,220,255,232,255,234,255,249,255,18,0,31,0,30,0,17,0,244,255, +226,255,246,255,29,0,57,0,68,0,58,0,32,0,17,0,14,0,9,0,9,0,15,0,3,0,234,255,238,255,8,0, +17,0,8,0,250,255,229,255,202,255,186,255,190,255,218,255,247,255,238,255,204,255,206,255,242,255,253,255,235,255,238,255, +6,0,15,0,246,255,203,255,165,255,149,255,156,255,187,255,247,255,38,0,19,0,218,255,196,255,217,255,230,255,219,255, +204,255,201,255,207,255,213,255,214,255,223,255,249,255,25,0,52,0,70,0,71,0,64,0,70,0,87,0,86,0,63,0, +40,0,27,0,12,0,251,255,253,255,19,0,31,0,8,0,228,255,216,255,217,255,203,255,177,255,174,255,210,255,4,0, +30,0,26,0,13,0,252,255,225,255,196,255,175,255,162,255,172,255,215,255,4,0,12,0,249,255,234,255,233,255,248,255, +14,0,23,0,14,0,0,0,239,255,233,255,250,255,3,0,233,255,217,255,244,255,16,0,8,0,240,255,222,255,223,255, +247,255,10,0,3,0,0,0,15,0,30,0,59,0,114,0,148,0,125,0,74,0,12,0,207,255,194,255,235,255,22,0, +43,0,50,0,39,0,19,0,18,0,12,0,241,255,234,255,244,255,210,255,135,255,90,255,101,255,151,255,202,255,219,255, +234,255,59,0,155,0,145,0,48,0,241,255,239,255,236,255,189,255,124,255,118,255,210,255,53,0,54,0,245,255,201,255, +190,255,205,255,249,255,22,0,248,255,198,255,182,255,202,255,234,255,247,255,231,255,230,255,13,0,34,0,255,255,217,255, +218,255,232,255,232,255,212,255,182,255,176,255,212,255,247,255,240,255,204,255,165,255,143,255,165,255,220,255,253,255,233,255, +187,255,168,255,210,255,33,0,67,0,14,0,193,255,172,255,211,255,0,0,8,0,241,255,217,255,214,255,224,255,230,255, +226,255,213,255,209,255,210,255,194,255,161,255,150,255,193,255,17,0,80,0,80,0,39,0,13,0,13,0,14,0,8,0, +252,255,227,255,215,255,4,0,80,0,124,0,127,0,108,0,85,0,72,0,56,0,20,0,251,255,250,255,216,255,135,255, +85,255,98,255,138,255,193,255,243,255,246,255,227,255,236,255,251,255,249,255,9,0,31,0,14,0,236,255,208,255,182,255, +187,255,219,255,220,255,215,255,16,0,49,0,224,255,140,255,161,255,212,255,220,255,218,255,243,255,51,0,114,0,81,0, +235,255,190,255,186,255,150,255,182,255,75,0,148,0,51,0,207,255,219,255,34,0,91,0,71,0,218,255,112,255,77,255, +142,255,115,0,144,1,170,1,155,0,154,255,67,255,75,255,194,255,166,0,54,1,222,0,237,255,47,255,82,255,47,0, +238,0,61,1,80,1,217,0,187,255,0,255,80,255,212,255,180,255,86,255,129,255,57,0,181,0,71,0,104,255,45,255, +164,255,246,255,210,255,150,255,130,255,140,255,151,255,154,255,192,255,19,0,44,0,219,255,161,255,234,255,83,0,67,0, +212,255,169,255,6,0,116,0,118,0,68,0,80,0,122,0,88,0,251,255,208,255,232,255,231,255,175,255,151,255,214,255, +31,0,33,0,18,0,60,0,116,0,99,0,13,0,196,255,196,255,1,0,87,0,204,0,80,1,123,1,6,1,74,0, +194,255,124,255,88,255,90,255,126,255,171,255,195,255,188,255,194,255,5,0,70,0,38,0,222,255,233,255,53,0,82,0, +33,0,208,255,147,255,129,255,134,255,152,255,230,255,95,0,148,0,100,0,45,0,32,0,33,0,35,0,30,0,4,0, +235,255,238,255,1,0,28,0,51,0,19,0,195,255,157,255,181,255,212,255,245,255,46,0,97,0,116,0,111,0,77,0, +26,0,10,0,34,0,62,0,92,0,111,0,67,0,220,255,138,255,119,255,152,255,210,255,255,255,10,0,24,0,55,0, +66,0,51,0,51,0,73,0,99,0,117,0,109,0,64,0,6,0,219,255,206,255,235,255,31,0,50,0,23,0,7,0, +25,0,33,0,13,0,11,0,48,0,81,0,63,0,10,0,233,255,243,255,8,0,3,0,228,255,192,255,170,255,165,255, +172,255,181,255,186,255,192,255,212,255,247,255,18,0,19,0,10,0,13,0,15,0,234,255,164,255,119,255,132,255,175,255, +194,255,188,255,196,255,230,255,251,255,233,255,201,255,202,255,245,255,35,0,38,0,253,255,200,255,165,255,158,255,186,255, +241,255,31,0,47,0,45,0,55,0,82,0,106,0,98,0,72,0,72,0,98,0,90,0,27,0,226,255,209,255,209,255, +224,255,12,0,52,0,30,0,211,255,158,255,184,255,252,255,19,0,247,255,243,255,24,0,40,0,24,0,22,0,37,0, +36,0,17,0,255,255,250,255,9,0,20,0,3,0,229,255,200,255,160,255,134,255,157,255,205,255,227,255,234,255,248,255, +255,255,243,255,222,255,205,255,204,255,231,255,16,0,50,0,71,0,70,0,50,0,36,0,45,0,65,0,81,0,80,0, +54,0,18,0,3,0,16,0,28,0,18,0,247,255,234,255,3,0,48,0,77,0,91,0,86,0,30,0,205,255,187,255, +245,255,28,0,254,255,209,255,201,255,218,255,231,255,235,255,252,255,34,0,65,0,57,0,36,0,37,0,45,0,31,0, +8,0,252,255,247,255,239,255,223,255,210,255,234,255,37,0,72,0,51,0,1,0,209,255,170,255,155,255,169,255,190,255, +194,255,188,255,188,255,205,255,240,255,18,0,29,0,23,0,12,0,2,0,250,255,248,255,253,255,12,0,27,0,24,0, +7,0,253,255,5,0,26,0,46,0,41,0,11,0,236,255,223,255,217,255,209,255,205,255,210,255,221,255,240,255,16,0, +50,0,58,0,30,0,4,0,7,0,10,0,242,255,215,255,207,255,208,255,214,255,232,255,254,255,8,0,252,255,229,255, +223,255,240,255,239,255,198,255,151,255,127,255,132,255,162,255,184,255,177,255,185,255,241,255,33,0,30,0,11,0,253,255, +235,255,234,255,6,0,29,0,40,0,59,0,66,0,44,0,26,0,20,0,249,255,208,255,196,255,216,255,250,255,23,0, +21,0,251,255,254,255,38,0,65,0,51,0,19,0,248,255,232,255,230,255,235,255,245,255,8,0,26,0,18,0,247,255, +232,255,231,255,226,255,220,255,223,255,239,255,4,0,21,0,36,0,56,0,72,0,55,0,16,0,0,0,8,0,5,0, +249,255,243,255,229,255,205,255,201,255,223,255,249,255,12,0,27,0,38,0,45,0,48,0,49,0,49,0,42,0,32,0, +36,0,50,0,43,0,16,0,253,255,255,255,14,0,32,0,33,0,7,0,231,255,220,255,231,255,244,255,241,255,221,255, +204,255,207,255,226,255,247,255,0,0,242,255,218,255,209,255,214,255,215,255,196,255,163,255,143,255,161,255,204,255,245,255, +20,0,22,0,240,255,217,255,254,255,34,0,21,0,12,0,41,0,61,0,53,0,51,0,55,0,46,0,39,0,45,0, +52,0,52,0,41,0,16,0,247,255,231,255,223,255,231,255,0,0,26,0,37,0,33,0,12,0,249,255,0,0,21,0, +34,0,39,0,36,0,11,0,239,255,236,255,252,255,6,0,13,0,21,0,20,0,253,255,220,255,205,255,211,255,216,255, +213,255,223,255,234,255,223,255,207,255,213,255,232,255,250,255,15,0,26,0,17,0,6,0,9,0,21,0,40,0,60,0, +66,0,56,0,51,0,59,0,65,0,54,0,29,0,7,0,9,0,35,0,73,0,100,0,93,0,63,0,45,0,42,0, +35,0,29,0,33,0,34,0,27,0,21,0,5,0,232,255,209,255,204,255,210,255,223,255,229,255,210,255,180,255,173,255, +201,255,250,255,37,0,48,0,31,0,6,0,231,255,204,255,199,255,205,255,207,255,211,255,216,255,220,255,237,255,11,0, +27,0,38,0,57,0,45,0,253,255,227,255,245,255,2,0,0,0,12,0,41,0,68,0,70,0,44,0,22,0,24,0, +21,0,253,255,244,255,4,0,13,0,6,0,246,255,224,255,221,255,252,255,27,0,35,0,46,0,67,0,69,0,46,0, +22,0,12,0,18,0,33,0,52,0,66,0,59,0,27,0,251,255,242,255,255,255,20,0,20,0,244,255,223,255,239,255, +8,0,24,0,48,0,59,0,43,0,42,0,65,0,63,0,37,0,29,0,30,0,17,0,11,0,24,0,37,0,39,0, +35,0,34,0,50,0,71,0,72,0,59,0,57,0,66,0,86,0,106,0,95,0,64,0,55,0,62,0,50,0,34,0, +30,0,19,0,5,0,14,0,27,0,15,0,254,255,254,255,3,0,2,0,255,255,255,255,6,0,10,0,4,0,6,0, +26,0,43,0,50,0,59,0,59,0,34,0,4,0,246,255,238,255,234,255,249,255,13,0,10,0,249,255,253,255,16,0, +6,0,212,255,170,255,174,255,208,255,240,255,4,0,11,0,6,0,253,255,248,255,249,255,252,255,251,255,238,255,229,255, +247,255,27,0,48,0,44,0,29,0,21,0,27,0,35,0,29,0,22,0,23,0,10,0,234,255,224,255,245,255,254,255, +239,255,235,255,248,255,252,255,242,255,227,255,209,255,194,255,193,255,206,255,229,255,255,255,5,0,252,255,4,0,30,0, +33,0,253,255,215,255,203,255,208,255,208,255,200,255,202,255,218,255,234,255,233,255,218,255,205,255,206,255,223,255,236,255, +231,255,226,255,237,255,250,255,244,255,226,255,217,255,231,255,6,0,33,0,50,0,66,0,71,0,48,0,15,0,252,255, +243,255,239,255,242,255,253,255,9,0,18,0,11,0,240,255,206,255,179,255,171,255,199,255,248,255,25,0,31,0,19,0, +248,255,219,255,212,255,218,255,219,255,218,255,215,255,213,255,230,255,3,0,254,255,218,255,199,255,214,255,244,255,15,0, +19,0,253,255,234,255,229,255,223,255,223,255,241,255,4,0,11,0,14,0,5,0,242,255,233,255,233,255,228,255,236,255, +11,0,41,0,57,0,69,0,77,0,74,0,65,0,48,0,19,0,243,255,231,255,254,255,28,0,27,0,14,0,25,0, +39,0,26,0,9,0,1,0,240,255,218,255,189,255,146,255,153,255,4,0,107,0,95,0,31,0,254,255,228,255,191,255, +184,255,207,255,237,255,5,0,253,255,210,255,178,255,195,255,245,255,26,0,19,0,1,0,24,0,46,0,254,255,185,255, +162,255,156,255,164,255,234,255,63,0,66,0,16,0,255,255,13,0,10,0,240,255,217,255,201,255,176,255,156,255,185,255, +232,255,229,255,203,255,215,255,229,255,203,255,173,255,175,255,202,255,241,255,3,0,233,255,202,255,202,255,220,255,253,255, +43,0,76,0,89,0,78,0,4,0,143,255,84,255,129,255,209,255,235,255,190,255,152,255,196,255,11,0,11,0,236,255, +253,255,34,0,38,0,14,0,229,255,199,255,221,255,247,255,218,255,202,255,250,255,30,0,15,0,22,0,66,0,101,0, +128,0,153,0,124,0,38,0,231,255,215,255,184,255,129,255,129,255,200,255,255,255,4,0,27,0,73,0,64,0,230,255, +124,255,80,255,139,255,250,255,43,0,1,0,206,255,189,255,181,255,192,255,238,255,33,0,58,0,41,0,239,255,181,255, +158,255,163,255,197,255,6,0,50,0,46,0,49,0,68,0,41,0,234,255,204,255,222,255,4,0,39,0,36,0,0,0, +249,255,13,0,250,255,210,255,233,255,36,0,14,0,181,255,157,255,211,255,217,255,189,255,22,0,198,0,254,0,139,0, +243,255,162,255,195,255,76,0,179,0,132,0,22,0,237,255,240,255,211,255,209,255,75,0,253,0,23,1,94,0,157,255, +142,255,245,255,39,0,203,255,61,255,78,255,11,0,128,0,99,0,84,0,69,0,203,255,87,255,60,255,21,255,11,255, +156,255,65,0,77,0,23,0,19,0,22,0,236,255,189,255,204,255,19,0,51,0,13,0,253,255,40,0,64,0,50,0, +55,0,78,0,69,0,13,0,199,255,164,255,176,255,198,255,200,255,196,255,225,255,51,0,121,0,98,0,40,0,54,0, +98,0,80,0,46,0,52,0,76,0,115,0,171,0,177,0,114,0,52,0,12,0,230,255,201,255,183,255,174,255,205,255, +255,255,248,255,216,255,247,255,45,0,41,0,254,255,223,255,218,255,241,255,9,0,244,255,203,255,200,255,220,255,216,255, +216,255,17,0,85,0,73,0,246,255,207,255,254,255,38,0,10,0,235,255,4,0,50,0,75,0,66,0,29,0,250,255, +242,255,233,255,196,255,162,255,170,255,207,255,238,255,0,0,29,0,80,0,123,0,135,0,128,0,110,0,67,0,21,0, +6,0,246,255,195,255,152,255,170,255,234,255,29,0,36,0,30,0,53,0,80,0,61,0,19,0,15,0,40,0,58,0, +68,0,66,0,40,0,12,0,10,0,16,0,17,0,16,0,2,0,230,255,225,255,2,0,35,0,37,0,22,0,20,0, +50,0,86,0,77,0,29,0,8,0,20,0,244,255,152,255,99,255,147,255,231,255,15,0,13,0,3,0,251,255,246,255, +253,255,17,0,34,0,29,0,2,0,226,255,206,255,194,255,189,255,198,255,215,255,214,255,205,255,228,255,26,0,51,0, +17,0,216,255,190,255,203,255,224,255,225,255,230,255,8,0,23,0,235,255,194,255,228,255,27,0,25,0,3,0,16,0, +31,0,15,0,253,255,10,0,50,0,97,0,104,0,47,0,237,255,229,255,0,0,10,0,255,255,241,255,223,255,198,255, +183,255,202,255,241,255,8,0,17,0,41,0,60,0,41,0,13,0,14,0,23,0,16,0,1,0,235,255,218,255,234,255, +12,0,18,0,252,255,228,255,203,255,179,255,174,255,189,255,209,255,218,255,211,255,204,255,212,255,222,255,226,255,246,255, +31,0,64,0,60,0,24,0,250,255,2,0,25,0,22,0,13,0,36,0,71,0,69,0,37,0,21,0,38,0,55,0, +31,0,243,255,237,255,6,0,6,0,244,255,242,255,251,255,1,0,15,0,27,0,15,0,246,255,226,255,218,255,230,255, +248,255,252,255,10,0,50,0,72,0,47,0,17,0,10,0,14,0,25,0,34,0,14,0,232,255,220,255,236,255,247,255, +246,255,253,255,14,0,23,0,14,0,251,255,228,255,197,255,174,255,183,255,202,255,197,255,189,255,207,255,240,255,12,0, +33,0,40,0,33,0,28,0,18,0,248,255,236,255,6,0,43,0,51,0,21,0,236,255,223,255,239,255,252,255,252,255, +255,255,252,255,230,255,212,255,218,255,234,255,243,255,238,255,222,255,230,255,20,0,58,0,49,0,19,0,251,255,227,255, +211,255,217,255,235,255,255,255,11,0,7,0,253,255,252,255,254,255,253,255,252,255,243,255,222,255,210,255,210,255,202,255, +180,255,154,255,134,255,145,255,191,255,232,255,245,255,253,255,4,0,241,255,214,255,225,255,18,0,55,0,43,0,7,0, +250,255,10,0,30,0,41,0,39,0,18,0,247,255,237,255,240,255,244,255,255,255,2,0,244,255,242,255,10,0,16,0, +241,255,216,255,223,255,238,255,236,255,219,255,212,255,235,255,11,0,15,0,9,0,19,0,27,0,17,0,19,0,41,0, +44,0,13,0,238,255,251,255,45,0,72,0,43,0,253,255,243,255,3,0,10,0,5,0,4,0,14,0,17,0,254,255, +224,255,216,255,239,255,10,0,20,0,18,0,12,0,6,0,1,0,1,0,16,0,41,0,50,0,42,0,42,0,53,0, +56,0,39,0,11,0,253,255,13,0,31,0,9,0,226,255,217,255,233,255,233,255,217,255,213,255,222,255,227,255,222,255, +217,255,226,255,244,255,254,255,247,255,232,255,216,255,208,255,214,255,228,255,247,255,2,0,242,255,214,255,223,255,16,0, +49,0,39,0,22,0,25,0,41,0,58,0,71,0,67,0,47,0,23,0,252,255,225,255,221,255,251,255,30,0,36,0, +10,0,232,255,221,255,244,255,28,0,58,0,68,0,62,0,48,0,33,0,21,0,15,0,13,0,13,0,6,0,239,255, +210,255,200,255,225,255,13,0,40,0,26,0,237,255,204,255,204,255,221,255,230,255,241,255,9,0,23,0,3,0,220,255, +196,255,194,255,205,255,226,255,255,255,29,0,47,0,37,0,5,0,241,255,1,0,39,0,70,0,76,0,55,0,32,0, +33,0,49,0,52,0,42,0,41,0,59,0,86,0,109,0,111,0,90,0,59,0,31,0,7,0,239,255,221,255,224,255, +253,255,29,0,31,0,7,0,243,255,240,255,243,255,247,255,252,255,251,255,233,255,208,255,195,255,202,255,214,255,225,255, +246,255,26,0,49,0,36,0,252,255,215,255,207,255,228,255,249,255,247,255,232,255,228,255,236,255,251,255,16,0,39,0, +51,0,45,0,28,0,17,0,16,0,18,0,19,0,17,0,6,0,249,255,2,0,29,0,45,0,40,0,31,0,30,0, +32,0,31,0,21,0,8,0,1,0,247,255,229,255,225,255,246,255,7,0,253,255,234,255,239,255,24,0,76,0,95,0, +72,0,46,0,38,0,30,0,6,0,239,255,236,255,249,255,9,0,17,0,11,0,255,255,247,255,250,255,4,0,10,0, +8,0,8,0,12,0,17,0,20,0,19,0,15,0,22,0,47,0,77,0,98,0,100,0,86,0,62,0,32,0,2,0, +245,255,253,255,12,0,37,0,79,0,112,0,109,0,84,0,61,0,41,0,27,0,26,0,29,0,24,0,11,0,253,255, +240,255,231,255,225,255,225,255,237,255,255,255,7,0,253,255,240,255,242,255,6,0,26,0,39,0,47,0,51,0,49,0, +44,0,46,0,48,0,46,0,41,0,32,0,12,0,241,255,223,255,224,255,234,255,237,255,227,255,214,255,210,255,221,255, +238,255,251,255,255,255,3,0,8,0,13,0,16,0,16,0,7,0,246,255,237,255,252,255,31,0,59,0,54,0,22,0, +251,255,253,255,18,0,31,0,27,0,15,0,8,0,255,255,235,255,213,255,212,255,236,255,0,0,247,255,221,255,209,255, +226,255,246,255,240,255,217,255,214,255,244,255,23,0,32,0,17,0,255,255,248,255,247,255,247,255,245,255,238,255,227,255, +217,255,218,255,230,255,242,255,243,255,240,255,241,255,236,255,210,255,176,255,168,255,197,255,234,255,246,255,236,255,234,255, +1,0,35,0,59,0,66,0,60,0,45,0,24,0,8,0,0,0,248,255,235,255,225,255,232,255,249,255,2,0,250,255, +241,255,244,255,250,255,242,255,219,255,199,255,197,255,214,255,242,255,16,0,35,0,32,0,10,0,246,255,247,255,4,0, +4,0,234,255,205,255,201,255,226,255,248,255,244,255,229,255,238,255,18,0,44,0,28,0,240,255,206,255,200,255,205,255, +206,255,209,255,224,255,239,255,242,255,243,255,4,0,30,0,34,0,4,0,227,255,226,255,2,0,40,0,62,0,70,0, +69,0,60,0,44,0,28,0,11,0,251,255,240,255,242,255,246,255,235,255,219,255,235,255,43,0,109,0,114,0,51,0, +239,255,220,255,243,255,1,0,239,255,211,255,206,255,222,255,239,255,242,255,240,255,248,255,11,0,21,0,5,0,229,255, +211,255,221,255,242,255,247,255,237,255,234,255,246,255,255,255,249,255,242,255,249,255,0,0,240,255,208,255,193,255,206,255, +223,255,227,255,229,255,247,255,8,0,251,255,211,255,187,255,198,255,222,255,231,255,227,255,230,255,240,255,237,255,220,255, +216,255,240,255,15,0,21,0,255,255,233,255,234,255,254,255,13,0,7,0,235,255,200,255,179,255,183,255,206,255,227,255, +230,255,217,255,208,255,217,255,235,255,250,255,0,0,255,255,251,255,239,255,221,255,207,255,211,255,236,255,10,0,29,0, +30,0,20,0,8,0,4,0,15,0,41,0,67,0,74,0,62,0,47,0,37,0,19,0,238,255,197,255,176,255,181,255, +191,255,197,255,210,255,236,255,3,0,0,0,237,255,233,255,254,255,22,0,27,0,18,0,9,0,249,255,216,255,171,255, +142,255,142,255,169,255,215,255,14,0,56,0,59,0,20,0,226,255,197,255,203,255,236,255,31,0,78,0,83,0,28,0, +206,255,166,255,190,255,244,255,17,0,3,0,226,255,215,255,249,255,51,0,78,0,32,0,207,255,177,255,232,255,43,0, +37,0,235,255,223,255,33,0,103,0,104,0,54,0,14,0,255,255,249,255,4,0,39,0,64,0,42,0,248,255,209,255, +175,255,153,255,224,255,180,0,124,1,71,1,23,0,34,255,88,255,43,0,99,0,205,255,89,255,159,255,36,0,54,0, +233,255,195,255,227,255,0,0,247,255,234,255,229,255,198,255,158,255,178,255,15,0,80,0,23,0,148,255,81,255,136,255, +240,255,39,0,35,0,26,0,42,0,55,0,35,0,253,255,242,255,30,0,105,0,150,0,116,0,10,0,160,255,121,255, +154,255,199,255,210,255,207,255,244,255,62,0,109,0,80,0,7,0,224,255,249,255,43,0,77,0,99,0,129,0,156,0, +144,0,86,0,18,0,232,255,214,255,208,255,213,255,229,255,242,255,236,255,222,255,224,255,248,255,16,0,26,0,31,0, +40,0,41,0,22,0,248,255,222,255,200,255,169,255,143,255,154,255,203,255,251,255,6,0,250,255,253,255,24,0,47,0, +46,0,31,0,22,0,19,0,15,0,15,0,20,0,17,0,246,255,205,255,181,255,192,255,226,255,1,0,16,0,23,0, +29,0,36,0,42,0,44,0,39,0,29,0,23,0,26,0,31,0,18,0,242,255,211,255,209,255,240,255,25,0,49,0, +49,0,37,0,31,0,38,0,46,0,46,0,44,0,53,0,64,0,52,0,8,0,219,255,210,255,237,255,10,0,12,0, +1,0,3,0,22,0,39,0,42,0,35,0,25,0,10,0,250,255,244,255,249,255,254,255,247,255,235,255,229,255,231,255, +235,255,244,255,1,0,14,0,18,0,15,0,9,0,255,255,232,255,211,255,218,255,3,0,39,0,33,0,252,255,226,255, +229,255,241,255,240,255,235,255,239,255,243,255,229,255,210,255,216,255,250,255,23,0,17,0,245,255,227,255,225,255,224,255, +226,255,247,255,27,0,48,0,26,0,237,255,214,255,234,255,18,0,44,0,46,0,33,0,13,0,248,255,232,255,228,255, +235,255,245,255,1,0,20,0,37,0,33,0,1,0,222,255,214,255,235,255,254,255,252,255,239,255,240,255,254,255,9,0, +9,0,8,0,11,0,12,0,3,0,247,255,245,255,251,255,255,255,253,255,244,255,227,255,199,255,174,255,173,255,197,255, +221,255,221,255,206,255,209,255,242,255,22,0,34,0,22,0,11,0,20,0,40,0,54,0,49,0,30,0,10,0,4,0, +11,0,17,0,12,0,2,0,2,0,15,0,27,0,25,0,16,0,12,0,13,0,9,0,0,0,254,255,8,0,21,0, +28,0,26,0,23,0,19,0,11,0,253,255,241,255,237,255,239,255,245,255,2,0,21,0,38,0,41,0,32,0,21,0, +15,0,10,0,5,0,3,0,6,0,8,0,3,0,249,255,244,255,246,255,247,255,243,255,237,255,237,255,244,255,249,255, +246,255,236,255,224,255,217,255,217,255,229,255,251,255,19,0,39,0,53,0,57,0,48,0,23,0,250,255,234,255,239,255, +253,255,1,0,250,255,242,255,244,255,251,255,255,255,0,0,1,0,2,0,1,0,5,0,16,0,23,0,11,0,235,255, +210,255,214,255,241,255,6,0,6,0,252,255,247,255,245,255,236,255,224,255,222,255,233,255,248,255,3,0,14,0,25,0, +29,0,16,0,251,255,233,255,224,255,217,255,211,255,207,255,204,255,197,255,191,255,195,255,214,255,236,255,248,255,251,255, +2,0,13,0,20,0,18,0,13,0,12,0,9,0,252,255,237,255,235,255,249,255,8,0,9,0,253,255,240,255,237,255, +243,255,253,255,3,0,2,0,254,255,255,255,4,0,3,0,247,255,231,255,226,255,234,255,242,255,245,255,249,255,3,0, +13,0,12,0,2,0,251,255,250,255,251,255,251,255,254,255,4,0,8,0,9,0,13,0,27,0,39,0,37,0,24,0, +14,0,13,0,13,0,6,0,251,255,244,255,243,255,245,255,251,255,5,0,14,0,15,0,6,0,0,0,2,0,10,0, +17,0,22,0,23,0,19,0,11,0,8,0,12,0,18,0,13,0,254,255,241,255,239,255,245,255,248,255,245,255,240,255, +239,255,245,255,1,0,14,0,15,0,255,255,228,255,210,255,211,255,226,255,243,255,251,255,251,255,243,255,232,255,226,255, +229,255,239,255,249,255,253,255,248,255,244,255,247,255,6,0,27,0,41,0,39,0,27,0,20,0,21,0,23,0,17,0, +9,0,8,0,15,0,20,0,18,0,14,0,14,0,16,0,13,0,6,0,1,0,2,0,6,0,11,0,17,0,20,0, +18,0,13,0,12,0,18,0,25,0,22,0,8,0,246,255,234,255,230,255,234,255,242,255,251,255,254,255,250,255,239,255, +231,255,230,255,234,255,238,255,237,255,231,255,223,255,217,255,219,255,229,255,245,255,5,0,12,0,9,0,0,0,248,255, +244,255,244,255,249,255,3,0,16,0,25,0,26,0,24,0,27,0,36,0,45,0,50,0,54,0,59,0,57,0,45,0, +29,0,23,0,28,0,32,0,23,0,6,0,252,255,253,255,1,0,1,0,255,255,255,255,0,0,254,255,248,255,242,255, +239,255,240,255,248,255,1,0,6,0,3,0,248,255,239,255,236,255,236,255,234,255,230,255,227,255,229,255,233,255,240,255, +246,255,249,255,249,255,248,255,254,255,8,0,15,0,16,0,12,0,10,0,10,0,9,0,8,0,13,0,26,0,38,0, +37,0,24,0,12,0,9,0,16,0,23,0,22,0,13,0,1,0,250,255,248,255,251,255,254,255,2,0,8,0,14,0, +16,0,12,0,4,0,1,0,7,0,20,0,29,0,29,0,23,0,17,0,15,0,14,0,12,0,10,0,8,0,7,0, +5,0,4,0,4,0,7,0,10,0,10,0,4,0,250,255,243,255,243,255,249,255,1,0,5,0,8,0,13,0,20,0, +26,0,27,0,25,0,25,0,27,0,29,0,30,0,32,0,36,0,42,0,49,0,53,0,55,0,53,0,48,0,44,0, +42,0,37,0,28,0,17,0,8,0,2,0,254,255,249,255,247,255,250,255,254,255,254,255,252,255,254,255,3,0,5,0, +5,0,6,0,11,0,16,0,18,0,20,0,28,0,34,0,31,0,21,0,16,0,23,0,34,0,35,0,25,0,9,0, +252,255,247,255,250,255,1,0,3,0,252,255,240,255,234,255,236,255,242,255,249,255,2,0,13,0,18,0,10,0,254,255, +250,255,251,255,252,255,252,255,4,0,17,0,21,0,12,0,0,0,1,0,10,0,12,0,5,0,254,255,255,255,4,0, +5,0,3,0,0,0,252,255,244,255,237,255,235,255,238,255,238,255,228,255,214,255,207,255,215,255,233,255,252,255,9,0, +16,0,18,0,12,0,253,255,237,255,229,255,234,255,244,255,253,255,255,255,251,255,246,255,243,255,242,255,240,255,234,255, +225,255,219,255,223,255,231,255,236,255,239,255,246,255,7,0,25,0,28,0,16,0,1,0,251,255,253,255,254,255,253,255, +252,255,250,255,241,255,228,255,223,255,236,255,6,0,28,0,36,0,25,0,2,0,236,255,230,255,242,255,0,0,0,0, +242,255,233,255,241,255,253,255,248,255,228,255,213,255,215,255,225,255,231,255,234,255,242,255,254,255,7,0,11,0,10,0, +5,0,252,255,245,255,246,255,251,255,250,255,242,255,240,255,250,255,2,0,247,255,225,255,217,255,233,255,255,255,7,0, +1,0,251,255,251,255,1,0,8,0,16,0,22,0,23,0,21,0,27,0,38,0,41,0,28,0,12,0,7,0,11,0, +9,0,254,255,247,255,254,255,10,0,16,0,17,0,17,0,15,0,4,0,245,255,241,255,250,255,6,0,8,0,3,0, +255,255,251,255,244,255,237,255,234,255,234,255,229,255,223,255,227,255,239,255,248,255,244,255,238,255,246,255,9,0,19,0, +8,0,242,255,225,255,217,255,215,255,216,255,218,255,219,255,218,255,221,255,233,255,248,255,0,0,254,255,252,255,254,255, +254,255,244,255,230,255,228,255,240,255,250,255,247,255,234,255,227,255,229,255,238,255,245,255,245,255,238,255,227,255,222,255, +230,255,246,255,255,255,253,255,245,255,241,255,239,255,234,255,225,255,221,255,225,255,230,255,232,255,234,255,243,255,3,0, +20,0,30,0,30,0,19,0,3,0,246,255,242,255,244,255,243,255,237,255,232,255,235,255,244,255,255,255,10,0,19,0, +22,0,14,0,0,0,245,255,245,255,253,255,5,0,4,0,253,255,244,255,240,255,242,255,245,255,243,255,235,255,231,255, +239,255,252,255,0,0,247,255,235,255,231,255,236,255,242,255,241,255,236,255,233,255,236,255,245,255,254,255,0,0,250,255, +244,255,252,255,15,0,29,0,24,0,4,0,241,255,233,255,232,255,238,255,248,255,1,0,255,255,244,255,241,255,2,0, +28,0,39,0,23,0,246,255,218,255,216,255,247,255,41,0,82,0,86,0,56,0,24,0,15,0,20,0,17,0,9,0, +16,0,37,0,42,0,9,0,213,255,183,255,203,255,10,0,86,0,139,0,139,0,87,0,14,0,208,255,165,255,138,255, +139,255,185,255,1,0,53,0,57,0,32,0,9,0,249,255,232,255,222,255,237,255,16,0,43,0,29,0,231,255,165,255, +129,255,146,255,205,255,9,0,33,0,21,0,3,0,3,0,11,0,3,0,233,255,213,255,228,255,24,0,86,0,118,0, +96,0,32,0,218,255,177,255,175,255,199,255,224,255,240,255,252,255,12,0,35,0,57,0,61,0,42,0,15,0,3,0, +18,0,49,0,72,0,73,0,54,0,23,0,248,255,224,255,214,255,221,255,238,255,5,0,26,0,34,0,22,0,251,255, +233,255,242,255,15,0,40,0,43,0,29,0,12,0,254,255,241,255,226,255,214,255,207,255,208,255,221,255,245,255,13,0, +20,0,8,0,249,255,246,255,254,255,5,0,10,0,16,0,21,0,15,0,252,255,234,255,231,255,239,255,247,255,249,255, +248,255,248,255,248,255,255,255,16,0,37,0,44,0,31,0,14,0,12,0,23,0,31,0,26,0,14,0,1,0,243,255, +233,255,236,255,255,255,21,0,31,0,30,0,29,0,34,0,36,0,33,0,30,0,32,0,32,0,20,0,3,0,249,255, +252,255,4,0,7,0,7,0,5,0,255,255,249,255,252,255,13,0,30,0,29,0,11,0,249,255,244,255,247,255,250,255, +250,255,251,255,251,255,247,255,245,255,254,255,12,0,18,0,9,0,252,255,247,255,251,255,254,255,255,255,0,0,3,0, +3,0,254,255,250,255,247,255,241,255,230,255,223,255,229,255,243,255,252,255,0,0,7,0,19,0,27,0,21,0,5,0, +248,255,241,255,239,255,241,255,250,255,5,0,8,0,255,255,245,255,248,255,5,0,16,0,20,0,18,0,16,0,9,0, +255,255,244,255,238,255,236,255,233,255,234,255,245,255,5,0,17,0,17,0,8,0,254,255,245,255,237,255,233,255,236,255, +245,255,254,255,2,0,3,0,6,0,11,0,13,0,11,0,5,0,255,255,251,255,251,255,254,255,0,0,252,255,241,255, +228,255,220,255,218,255,219,255,219,255,218,255,222,255,232,255,247,255,4,0,8,0,5,0,2,0,6,0,15,0,23,0, +23,0,16,0,13,0,19,0,27,0,28,0,16,0,255,255,245,255,250,255,7,0,16,0,14,0,5,0,251,255,246,255, +245,255,247,255,248,255,249,255,255,255,8,0,19,0,25,0,22,0,16,0,10,0,7,0,4,0,2,0,5,0,11,0, +15,0,10,0,0,0,252,255,2,0,9,0,9,0,3,0,251,255,241,255,231,255,227,255,232,255,245,255,0,0,0,0, +249,255,241,255,237,255,239,255,246,255,253,255,253,255,246,255,238,255,240,255,252,255,8,0,15,0,19,0,26,0,33,0, +31,0,20,0,5,0,251,255,249,255,252,255,253,255,245,255,234,255,227,255,234,255,250,255,6,0,7,0,5,0,7,0, +11,0,7,0,251,255,240,255,241,255,251,255,7,0,13,0,13,0,5,0,247,255,232,255,225,255,227,255,234,255,240,255, +248,255,3,0,9,0,6,0,252,255,245,255,245,255,244,255,237,255,226,255,219,255,219,255,222,255,223,255,222,255,222,255, +227,255,237,255,250,255,5,0,11,0,13,0,13,0,12,0,9,0,5,0,2,0,0,0,255,255,253,255,253,255,252,255, +248,255,242,255,241,255,244,255,245,255,242,255,238,255,243,255,252,255,254,255,248,255,243,255,248,255,0,0,254,255,242,255, +234,255,239,255,250,255,1,0,1,0,0,0,0,0,2,0,4,0,7,0,7,0,1,0,246,255,239,255,242,255,250,255, +255,255,255,255,255,255,3,0,8,0,10,0,8,0,9,0,13,0,18,0,18,0,14,0,8,0,5,0,6,0,9,0, +10,0,7,0,3,0,1,0,2,0,6,0,10,0,13,0,13,0,10,0,5,0,4,0,7,0,11,0,12,0,9,0, +4,0,254,255,247,255,242,255,241,255,246,255,249,255,247,255,241,255,242,255,253,255,9,0,12,0,4,0,250,255,246,255, +244,255,238,255,230,255,229,255,234,255,240,255,241,255,239,255,243,255,253,255,7,0,12,0,12,0,7,0,0,0,253,255, +5,0,18,0,25,0,20,0,10,0,7,0,12,0,14,0,11,0,10,0,15,0,21,0,20,0,10,0,1,0,2,0, +10,0,16,0,15,0,8,0,2,0,4,0,15,0,25,0,24,0,10,0,250,255,244,255,248,255,254,255,0,0,1,0, +255,255,248,255,235,255,222,255,217,255,220,255,225,255,233,255,244,255,254,255,255,255,246,255,235,255,232,255,238,255,249,255, +3,0,10,0,9,0,254,255,244,255,246,255,3,0,17,0,17,0,6,0,254,255,254,255,4,0,8,0,13,0,21,0, +31,0,33,0,27,0,19,0,20,0,27,0,30,0,25,0,14,0,7,0,6,0,5,0,1,0,253,255,253,255,0,0, +4,0,5,0,7,0,6,0,3,0,253,255,248,255,246,255,244,255,239,255,237,255,242,255,250,255,254,255,250,255,243,255, +240,255,241,255,245,255,252,255,3,0,5,0,255,255,245,255,241,255,246,255,1,0,9,0,12,0,14,0,14,0,15,0, +18,0,22,0,27,0,30,0,30,0,26,0,16,0,5,0,253,255,254,255,1,0,1,0,255,255,255,255,2,0,1,0, +250,255,250,255,8,0,27,0,33,0,21,0,6,0,3,0,10,0,16,0,14,0,11,0,11,0,13,0,15,0,18,0, +19,0,13,0,2,0,249,255,248,255,252,255,254,255,255,255,1,0,2,0,250,255,240,255,242,255,4,0,23,0,24,0, +9,0,252,255,252,255,6,0,13,0,12,0,11,0,16,0,24,0,30,0,32,0,30,0,25,0,18,0,11,0,5,0, +5,0,10,0,16,0,18,0,13,0,8,0,10,0,19,0,30,0,32,0,25,0,16,0,10,0,10,0,9,0,1,0, +247,255,242,255,246,255,255,255,5,0,5,0,3,0,4,0,7,0,12,0,16,0,20,0,23,0,20,0,15,0,12,0, +15,0,20,0,20,0,12,0,0,0,245,255,243,255,249,255,1,0,5,0,1,0,250,255,247,255,250,255,254,255,3,0, +8,0,13,0,16,0,13,0,9,0,7,0,8,0,9,0,9,0,9,0,6,0,255,255,247,255,244,255,248,255,254,255, +255,255,253,255,252,255,255,255,1,0,1,0,255,255,254,255,251,255,244,255,238,255,236,255,241,255,249,255,254,255,253,255, +245,255,236,255,234,255,244,255,2,0,7,0,255,255,244,255,241,255,249,255,1,0,0,0,250,255,244,255,244,255,247,255, +250,255,248,255,242,255,233,255,227,255,227,255,235,255,247,255,1,0,7,0,8,0,5,0,3,0,3,0,5,0,2,0, +251,255,246,255,251,255,8,0,18,0,15,0,2,0,245,255,239,255,242,255,246,255,249,255,250,255,247,255,240,255,234,255, +234,255,241,255,249,255,250,255,245,255,244,255,253,255,9,0,11,0,255,255,239,255,233,255,238,255,247,255,254,255,255,255, +253,255,249,255,245,255,247,255,251,255,251,255,246,255,242,255,243,255,247,255,250,255,254,255,7,0,15,0,14,0,3,0, +251,255,254,255,5,0,3,0,248,255,240,255,244,255,255,255,5,0,7,0,8,0,14,0,21,0,25,0,24,0,20,0, +17,0,16,0,16,0,14,0,11,0,7,0,5,0,3,0,2,0,4,0,9,0,13,0,10,0,2,0,251,255,249,255, +246,255,241,255,236,255,239,255,248,255,255,255,255,255,251,255,246,255,241,255,238,255,238,255,244,255,250,255,249,255,243,255, +239,255,242,255,248,255,251,255,251,255,248,255,243,255,235,255,231,255,237,255,248,255,252,255,243,255,228,255,222,255,233,255, +250,255,3,0,254,255,243,255,236,255,237,255,242,255,246,255,248,255,247,255,242,255,236,255,235,255,244,255,0,0,6,0, +3,0,251,255,246,255,244,255,241,255,237,255,239,255,244,255,247,255,246,255,243,255,242,255,242,255,238,255,235,255,239,255, +252,255,7,0,7,0,253,255,241,255,236,255,243,255,0,0,10,0,9,0,255,255,247,255,248,255,254,255,2,0,255,255, +250,255,249,255,249,255,250,255,253,255,2,0,6,0,6,0,1,0,254,255,255,255,2,0,3,0,3,0,1,0,252,255, +248,255,249,255,255,255,3,0,254,255,247,255,245,255,249,255,253,255,254,255,255,255,2,0,2,0,251,255,240,255,237,255, +243,255,251,255,0,0,3,0,7,0,10,0,5,0,247,255,234,255,233,255,247,255,7,0,14,0,10,0,5,0,5,0, +4,0,250,255,236,255,235,255,255,255,28,0,40,0,28,0,6,0,248,255,249,255,1,0,8,0,11,0,14,0,17,0, +17,0,9,0,255,255,251,255,4,0,18,0,24,0,19,0,12,0,18,0,34,0,43,0,29,0,253,255,228,255,224,255, +235,255,242,255,236,255,226,255,229,255,245,255,4,0,4,0,250,255,248,255,2,0,11,0,8,0,254,255,252,255,5,0, +8,0,251,255,232,255,224,255,231,255,244,255,253,255,5,0,14,0,22,0,22,0,16,0,7,0,0,0,255,255,8,0, +26,0,42,0,40,0,17,0,246,255,232,255,234,255,244,255,253,255,5,0,9,0,8,0,5,0,6,0,13,0,22,0, +26,0,26,0,25,0,24,0,23,0,20,0,17,0,13,0,10,0,6,0,4,0,6,0,12,0,18,0,17,0,8,0, +253,255,250,255,2,0,13,0,14,0,4,0,249,255,246,255,249,255,252,255,253,255,1,0,9,0,13,0,9,0,255,255, +249,255,254,255,11,0,21,0,21,0,13,0,3,0,253,255,251,255,250,255,249,255,248,255,251,255,255,255,2,0,1,0, +255,255,0,0,4,0,9,0,12,0,12,0,10,0,8,0,7,0,5,0,1,0,254,255,1,0,9,0,16,0,16,0, +11,0,10,0,15,0,21,0,21,0,18,0,17,0,19,0,21,0,21,0,17,0,10,0,2,0,254,255,0,0,5,0, +8,0,6,0,1,0,254,255,253,255,254,255,3,0,12,0,20,0,19,0,7,0,250,255,246,255,251,255,3,0,7,0, +5,0,254,255,245,255,241,255,246,255,254,255,3,0,1,0,0,0,1,0,0,0,249,255,243,255,245,255,254,255,2,0, +255,255,252,255,254,255,4,0,6,0,4,0,2,0,5,0,9,0,8,0,6,0,5,0,6,0,9,0,8,0,3,0, +252,255,244,255,241,255,244,255,252,255,5,0,10,0,9,0,6,0,4,0,7,0,14,0,18,0,15,0,4,0,246,255, +234,255,232,255,238,255,248,255,251,255,248,255,242,255,241,255,245,255,251,255,1,0,9,0,14,0,11,0,253,255,240,255, +237,255,247,255,0,0,255,255,247,255,245,255,251,255,5,0,9,0,7,0,1,0,254,255,251,255,249,255,246,255,247,255, +254,255,7,0,9,0,254,255,237,255,228,255,232,255,243,255,251,255,255,255,0,0,1,0,1,0,254,255,252,255,252,255, +0,0,7,0,14,0,17,0,15,0,8,0,5,0,7,0,7,0,0,0,248,255,248,255,1,0,8,0,6,0,254,255, +249,255,249,255,250,255,250,255,252,255,0,0,4,0,7,0,8,0,9,0,8,0,4,0,1,0,3,0,7,0,7,0, +3,0,255,255,255,255,0,0,254,255,250,255,249,255,251,255,254,255,0,0,1,0,3,0,1,0,254,255,249,255,245,255, +241,255,239,255,241,255,248,255,253,255,252,255,245,255,241,255,247,255,3,0,9,0,7,0,1,0,1,0,8,0,14,0, +11,0,2,0,249,255,247,255,249,255,254,255,4,0,7,0,3,0,248,255,236,255,231,255,236,255,247,255,1,0,6,0, +7,0,3,0,255,255,253,255,1,0,6,0,6,0,3,0,0,0,255,255,253,255,248,255,242,255,238,255,237,255,238,255, +242,255,251,255,4,0,8,0,3,0,251,255,245,255,241,255,239,255,237,255,236,255,238,255,243,255,248,255,249,255,244,255, +240,255,241,255,250,255,0,0,1,0,0,0,3,0,9,0,9,0,0,0,247,255,246,255,251,255,253,255,249,255,245,255, +244,255,246,255,245,255,245,255,246,255,249,255,251,255,254,255,3,0,6,0,3,0,253,255,249,255,250,255,253,255,252,255, +248,255,246,255,249,255,253,255,254,255,253,255,250,255,248,255,248,255,251,255,255,255,0,0,252,255,247,255,244,255,243,255, +243,255,244,255,246,255,249,255,252,255,254,255,255,255,2,0,6,0,11,0,12,0,9,0,5,0,4,0,7,0,12,0, +15,0,12,0,7,0,3,0,1,0,1,0,0,0,253,255,253,255,0,0,5,0,8,0,3,0,249,255,244,255,248,255, +2,0,9,0,11,0,9,0,10,0,10,0,6,0,253,255,246,255,244,255,246,255,250,255,254,255,0,0,0,0,254,255, +251,255,247,255,244,255,246,255,253,255,5,0,6,0,0,0,250,255,253,255,5,0,10,0,5,0,253,255,251,255,0,0, +5,0,7,0,4,0,2,0,2,0,3,0,4,0,5,0,6,0,7,0,9,0,11,0,10,0,7,0,6,0,7,0, +8,0,5,0,2,0,3,0,7,0,11,0,10,0,8,0,6,0,3,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,252,255,246,255,244,255,249,255,255,255,1,0,255,255,254,255,255,255,253,255,248,255,244,255,247,255,253,255, +1,0,1,0,0,0,0,0,0,0,1,0,4,0,7,0,8,0,6,0,2,0,0,0,0,0,3,0,6,0,8,0, +6,0,3,0,2,0,5,0,9,0,11,0,11,0,11,0,10,0,10,0,11,0,13,0,14,0,12,0,8,0,6,0, +5,0,3,0,254,255,250,255,252,255,0,0,1,0,254,255,250,255,249,255,249,255,248,255,248,255,250,255,254,255,0,0, +255,255,255,255,1,0,3,0,1,0,253,255,252,255,254,255,2,0,5,0,6,0,8,0,9,0,9,0,7,0,4,0, +4,0,7,0,12,0,13,0,12,0,10,0,11,0,12,0,12,0,9,0,6,0,7,0,7,0,6,0,2,0,0,0, +1,0,2,0,3,0,4,0,6,0,9,0,10,0,7,0,6,0,8,0,11,0,12,0,10,0,7,0,6,0,5,0, +3,0,1,0,4,0,9,0,12,0,7,0,252,255,245,255,249,255,3,0,10,0,8,0,0,0,252,255,253,255,0,0, +1,0,1,0,2,0,4,0,4,0,4,0,6,0,10,0,11,0,10,0,7,0,6,0,8,0,10,0,12,0,11,0, +8,0,4,0,0,0,0,0,4,0,9,0,12,0,12,0,11,0,12,0,13,0,11,0,7,0,2,0,2,0,6,0, +11,0,12,0,9,0,5,0,2,0,1,0,1,0,1,0,3,0,5,0,3,0,0,0,255,255,3,0,8,0,10,0, +6,0,1,0,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,253,255,254,255, +2,0,6,0,6,0,5,0,6,0,6,0,4,0,255,255,252,255,252,255,255,255,1,0,1,0,0,0,1,0,1,0, +255,255,250,255,245,255,244,255,248,255,254,255,1,0,255,255,251,255,249,255,250,255,252,255,252,255,252,255,253,255,255,255, +0,0,254,255,248,255,242,255,241,255,245,255,253,255,1,0,254,255,248,255,247,255,252,255,255,255,252,255,245,255,243,255, +247,255,253,255,255,255,0,0,2,0,4,0,1,0,248,255,239,255,238,255,246,255,255,255,2,0,254,255,252,255,255,255, +3,0,4,0,255,255,249,255,249,255,251,255,252,255,249,255,246,255,245,255,247,255,247,255,245,255,244,255,247,255,251,255, +254,255,0,0,1,0,1,0,1,0,255,255,253,255,251,255,251,255,252,255,252,255,251,255,248,255,244,255,241,255,243,255, +248,255,252,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,3,0,4,0,4,0,2,0,254,255,251,255,249,255, +252,255,1,0,4,0,3,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0, +4,0,5,0,7,0,7,0,5,0,3,0,5,0,9,0,12,0,11,0,7,0,2,0,0,0,0,0,2,0,4,0, +1,0,251,255,247,255,247,255,250,255,251,255,248,255,245,255,246,255,248,255,249,255,248,255,248,255,249,255,250,255,250,255, +248,255,248,255,250,255,251,255,249,255,247,255,247,255,248,255,250,255,250,255,249,255,248,255,248,255,250,255,252,255,251,255, +247,255,244,255,245,255,248,255,253,255,254,255,251,255,245,255,238,255,237,255,242,255,249,255,252,255,251,255,249,255,253,255, +3,0,5,0,2,0,250,255,246,255,247,255,252,255,255,255,253,255,247,255,241,255,238,255,242,255,251,255,2,0,3,0, +254,255,247,255,243,255,246,255,253,255,3,0,7,0,8,0,6,0,5,0,4,0,2,0,255,255,250,255,246,255,244,255, +247,255,252,255,255,255,0,0,255,255,254,255,252,255,251,255,252,255,255,255,3,0,5,0,5,0,6,0,6,0,3,0, +254,255,251,255,253,255,2,0,4,0,1,0,254,255,255,255,3,0,4,0,1,0,252,255,251,255,0,0,7,0,10,0, +8,0,5,0,4,0,2,0,255,255,251,255,249,255,252,255,0,0,255,255,251,255,249,255,251,255,253,255,248,255,241,255, +241,255,252,255,12,0,20,0,18,0,8,0,255,255,251,255,254,255,5,0,11,0,13,0,10,0,6,0,4,0,1,0, +253,255,250,255,251,255,254,255,254,255,252,255,254,255,10,0,25,0,30,0,19,0,1,0,247,255,250,255,1,0,3,0, +253,255,246,255,246,255,253,255,2,0,0,0,250,255,248,255,252,255,1,0,1,0,0,0,1,0,2,0,253,255,242,255, +234,255,238,255,250,255,3,0,3,0,1,0,2,0,6,0,9,0,8,0,5,0,2,0,3,0,10,0,21,0,28,0, +23,0,6,0,245,255,236,255,238,255,244,255,249,255,253,255,0,0,4,0,9,0,15,0,20,0,20,0,15,0,9,0, +4,0,4,0,5,0,5,0,1,0,253,255,251,255,253,255,2,0,7,0,8,0,5,0,5,0,8,0,13,0,15,0, +14,0,10,0,7,0,5,0,5,0,7,0,7,0,2,0,250,255,243,255,241,255,245,255,251,255,2,0,8,0,15,0, +20,0,19,0,15,0,11,0,9,0,4,0,254,255,249,255,249,255,253,255,0,0,254,255,251,255,249,255,250,255,252,255, +252,255,254,255,2,0,6,0,8,0,6,0,4,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +3,0,6,0,7,0,8,0,10,0,13,0,15,0,13,0,9,0,3,0,0,0,0,0,0,0,1,0,1,0,3,0, +4,0,5,0,5,0,5,0,7,0,8,0,5,0,255,255,250,255,250,255,253,255,254,255,253,255,253,255,254,255,255,255, +254,255,254,255,2,0,8,0,8,0,2,0,251,255,251,255,1,0,5,0,4,0,254,255,250,255,247,255,248,255,250,255, +254,255,3,0,5,0,6,0,6,0,7,0,8,0,8,0,7,0,7,0,5,0,2,0,0,0,255,255,253,255,251,255, +250,255,253,255,0,0,1,0,2,0,5,0,7,0,7,0,4,0,3,0,3,0,5,0,2,0,252,255,249,255,250,255, +254,255,0,0,253,255,249,255,246,255,246,255,249,255,254,255,2,0,4,0,3,0,1,0,0,0,255,255,254,255,254,255, +0,0,2,0,2,0,1,0,5,0,11,0,14,0,11,0,3,0,251,255,249,255,250,255,254,255,3,0,6,0,5,0, +255,255,250,255,247,255,248,255,248,255,248,255,250,255,253,255,1,0,4,0,5,0,4,0,3,0,3,0,4,0,6,0, +6,0,5,0,3,0,1,0,0,0,254,255,253,255,253,255,255,255,1,0,3,0,3,0,3,0,2,0,0,0,253,255, +251,255,251,255,251,255,253,255,1,0,5,0,8,0,6,0,3,0,4,0,7,0,9,0,7,0,4,0,1,0,255,255, +253,255,253,255,255,255,3,0,5,0,3,0,255,255,253,255,253,255,255,255,0,0,253,255,250,255,250,255,253,255,255,255, +255,255,253,255,250,255,246,255,245,255,246,255,248,255,251,255,253,255,253,255,253,255,253,255,0,0,5,0,11,0,12,0, +7,0,1,0,252,255,249,255,247,255,246,255,247,255,249,255,252,255,253,255,252,255,251,255,253,255,0,0,3,0,2,0, +255,255,255,255,1,0,3,0,1,0,253,255,250,255,249,255,251,255,253,255,255,255,1,0,1,0,253,255,247,255,245,255, +249,255,0,0,5,0,2,0,251,255,248,255,252,255,255,255,252,255,245,255,242,255,246,255,250,255,250,255,247,255,245,255, +249,255,254,255,1,0,2,0,2,0,1,0,255,255,253,255,252,255,254,255,1,0,3,0,1,0,255,255,252,255,251,255, +251,255,253,255,0,0,0,0,252,255,248,255,248,255,251,255,253,255,251,255,249,255,251,255,1,0,4,0,2,0,250,255, +243,255,243,255,249,255,0,0,1,0,255,255,1,0,5,0,5,0,255,255,249,255,247,255,249,255,251,255,252,255,254,255, +1,0,0,0,254,255,251,255,252,255,255,255,1,0,2,0,2,0,2,0,0,0,255,255,255,255,1,0,3,0,5,0, +5,0,3,0,255,255,253,255,252,255,254,255,0,0,1,0,3,0,2,0,255,255,253,255,254,255,1,0,1,0,254,255, +250,255,249,255,252,255,255,255,0,0,255,255,253,255,253,255,255,255,3,0,7,0,8,0,4,0,253,255,247,255,248,255, +251,255,254,255,254,255,253,255,253,255,252,255,254,255,0,0,4,0,5,0,2,0,255,255,254,255,255,255,2,0,3,0, +2,0,255,255,253,255,253,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,0,0,3,0,6,0,6,0,5,0, +5,0,6,0,5,0,2,0,255,255,254,255,0,0,1,0,2,0,2,0,1,0,2,0,1,0,253,255,248,255,249,255, +1,0,7,0,5,0,253,255,249,255,252,255,255,255,0,0,253,255,252,255,254,255,1,0,4,0,4,0,1,0,254,255, +254,255,0,0,3,0,3,0,3,0,4,0,6,0,3,0,254,255,250,255,251,255,254,255,0,0,1,0,1,0,2,0, +5,0,7,0,7,0,5,0,4,0,7,0,11,0,13,0,9,0,2,0,255,255,1,0,5,0,6,0,4,0,1,0, +0,0,0,0,255,255,254,255,254,255,0,0,255,255,252,255,251,255,252,255,255,255,3,0,4,0,3,0,0,0,254,255, +255,255,0,0,0,0,254,255,255,255,2,0,4,0,3,0,2,0,3,0,6,0,7,0,6,0,6,0,7,0,6,0, +4,0,4,0,7,0,10,0,10,0,10,0,10,0,8,0,4,0,1,0,0,0,0,0,0,0,2,0,5,0,6,0, +6,0,6,0,7,0,7,0,4,0,2,0,2,0,6,0,9,0,10,0,9,0,6,0,3,0,1,0,1,0,2,0, +4,0,6,0,6,0,3,0,253,255,248,255,247,255,250,255,254,255,1,0,3,0,2,0,1,0,1,0,3,0,5,0, +4,0,3,0,2,0,4,0,4,0,4,0,2,0,2,0,1,0,2,0,3,0,3,0,5,0,6,0,8,0,6,0, +2,0,0,0,3,0,7,0,9,0,7,0,5,0,5,0,5,0,2,0,1,0,2,0,5,0,8,0,8,0,6,0, +3,0,0,0,0,0,3,0,4,0,4,0,2,0,3,0,4,0,6,0,6,0,4,0,1,0,254,255,252,255,253,255, +0,0,5,0,7,0,6,0,1,0,253,255,253,255,0,0,3,0,3,0,1,0,254,255,252,255,253,255,1,0,4,0, +2,0,255,255,255,255,2,0,4,0,2,0,1,0,2,0,3,0,0,0,253,255,253,255,0,0,1,0,0,0,0,0, +0,0,0,0,254,255,253,255,252,255,253,255,254,255,1,0,2,0,1,0,255,255,255,255,1,0,2,0,1,0,255,255, +254,255,252,255,251,255,252,255,255,255,1,0,2,0,2,0,1,0,0,0,254,255,254,255,253,255,253,255,253,255,252,255, +252,255,252,255,252,255,253,255,252,255,251,255,249,255,249,255,251,255,255,255,2,0,2,0,2,0,2,0,1,0,255,255, +254,255,253,255,254,255,255,255,255,255,253,255,252,255,251,255,250,255,249,255,247,255,248,255,253,255,2,0,2,0,254,255, +250,255,249,255,251,255,253,255,254,255,255,255,255,255,0,0,1,0,0,0,253,255,250,255,250,255,250,255,251,255,253,255, +0,0,2,0,1,0,253,255,251,255,252,255,255,255,0,0,255,255,253,255,252,255,253,255,255,255,0,0,0,0,2,0, +5,0,5,0,3,0,1,0,0,0,255,255,252,255,249,255,249,255,252,255,0,0,1,0,0,0,1,0,1,0,1,0, +0,0,255,255,0,0,2,0,4,0,4,0,1,0,254,255,253,255,0,0,2,0,2,0,0,0,254,255,252,255,252,255, +254,255,0,0,1,0,255,255,253,255,252,255,254,255,255,255,255,255,254,255,253,255,251,255,250,255,251,255,252,255,252,255, +251,255,251,255,253,255,255,255,1,0,255,255,251,255,247,255,245,255,248,255,253,255,254,255,253,255,250,255,249,255,250,255, +251,255,252,255,252,255,251,255,250,255,250,255,251,255,253,255,255,255,0,0,253,255,250,255,249,255,252,255,255,255,0,0, +255,255,255,255,255,255,255,255,253,255,254,255,0,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +254,255,252,255,254,255,0,0,3,0,3,0,2,0,0,0,254,255,252,255,253,255,255,255,1,0,1,0,1,0,0,0, +0,0,0,0,254,255,253,255,254,255,0,0,3,0,4,0,3,0,2,0,255,255,252,255,251,255,253,255,255,255,1,0, +0,0,254,255,254,255,0,0,2,0,2,0,255,255,251,255,248,255,251,255,0,0,3,0,4,0,3,0,2,0,0,0, +255,255,254,255,0,0,2,0,2,0,255,255,254,255,254,255,254,255,254,255,254,255,253,255,250,255,248,255,250,255,2,0, +9,0,10,0,5,0,254,255,248,255,248,255,255,255,8,0,13,0,11,0,5,0,0,0,252,255,249,255,249,255,253,255, +1,0,1,0,254,255,0,0,10,0,19,0,18,0,8,0,253,255,249,255,253,255,1,0,3,0,0,0,252,255,250,255, +249,255,249,255,249,255,251,255,253,255,0,0,0,0,254,255,253,255,253,255,254,255,252,255,249,255,249,255,252,255,255,255, +1,0,1,0,1,0,2,0,2,0,1,0,254,255,252,255,252,255,0,0,8,0,14,0,14,0,8,0,0,0,250,255, +248,255,249,255,251,255,255,255,3,0,4,0,3,0,4,0,5,0,7,0,9,0,11,0,10,0,7,0,3,0,2,0, +3,0,3,0,1,0,255,255,254,255,253,255,253,255,0,0,5,0,7,0,4,0,0,0,0,0,5,0,9,0,9,0, +7,0,5,0,1,0,255,255,255,255,0,0,1,0,2,0,1,0,0,0,255,255,2,0,6,0,10,0,10,0,8,0, +5,0,4,0,4,0,2,0,255,255,254,255,254,255,1,0,3,0,4,0,2,0,255,255,254,255,255,255,0,0,0,0, +0,0,2,0,4,0,4,0,3,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0,2,0, +3,0,4,0,6,0,8,0,8,0,6,0,2,0,254,255,253,255,254,255,255,255,0,0,3,0,5,0,5,0,5,0, +3,0,1,0,0,0,255,255,254,255,253,255,253,255,255,255,3,0,5,0,2,0,253,255,251,255,253,255,0,0,0,0, +255,255,255,255,254,255,253,255,252,255,253,255,255,255,1,0,1,0,1,0,0,0,255,255,254,255,252,255,251,255,250,255, +253,255,2,0,4,0,2,0,1,0,3,0,7,0,6,0,2,0,255,255,255,255,0,0,0,0,255,255,1,0,2,0, +3,0,2,0,2,0,5,0,6,0,6,0,4,0,1,0,255,255,0,0,2,0,4,0,2,0,255,255,254,255,254,255, +255,255,0,0,255,255,253,255,253,255,255,255,2,0,5,0,5,0,2,0,255,255,254,255,0,0,3,0,4,0,3,0, +2,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,255,255,255,255,1,0,2,0,2,0,255,255,253,255, +252,255,253,255,0,0,1,0,2,0,2,0,2,0,1,0,0,0,254,255,255,255,2,0,5,0,7,0,5,0,1,0, +254,255,255,255,1,0,1,0,255,255,253,255,253,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,253,255, +255,255,2,0,4,0,4,0,2,0,0,0,1,0,3,0,3,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,254,255,254,255,253,255,251,255,251,255, +251,255,252,255,253,255,255,255,255,255,254,255,252,255,253,255,1,0,4,0,4,0,1,0,255,255,254,255,253,255,252,255, +252,255,251,255,250,255,252,255,254,255,0,0,255,255,254,255,254,255,0,0,0,0,255,255,254,255,0,0,1,0,0,0, +253,255,252,255,252,255,253,255,252,255,251,255,252,255,0,0,2,0,2,0,0,0,253,255,253,255,255,255,2,0,2,0, +1,0,254,255,252,255,250,255,248,255,247,255,249,255,251,255,253,255,253,255,254,255,0,0,2,0,0,0,255,255,1,0, +3,0,1,0,254,255,252,255,253,255,253,255,252,255,252,255,253,255,255,255,0,0,255,255,255,255,255,255,254,255,254,255, +0,0,1,0,1,0,255,255,254,255,253,255,252,255,252,255,254,255,0,0,2,0,1,0,255,255,254,255,253,255,252,255, +253,255,254,255,0,0,0,0,0,0,0,0,0,0,255,255,254,255,252,255,251,255,252,255,254,255,255,255,255,255,254,255, +254,255,255,255,0,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,2,0, +2,0,1,0,0,0,1,0,2,0,1,0,1,0,255,255,253,255,251,255,250,255,253,255,0,0,1,0,1,0,0,0, +0,0,0,0,254,255,252,255,253,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,253,255,254,255, +253,255,253,255,252,255,252,255,254,255,0,0,1,0,0,0,254,255,253,255,255,255,1,0,3,0,3,0,4,0,4,0, +1,0,254,255,252,255,254,255,1,0,2,0,0,0,255,255,0,0,2,0,3,0,2,0,255,255,254,255,254,255,0,0, +3,0,4,0,3,0,2,0,0,0,254,255,253,255,252,255,253,255,255,255,0,0,0,0,254,255,254,255,0,0,1,0, +0,0,254,255,254,255,0,0,3,0,4,0,2,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,2,0, +3,0,3,0,3,0,2,0,0,0,255,255,254,255,255,255,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,253,255,252,255,253,255,254,255,253,255,252,255,254,255,1,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,2,0,3,0,3,0,1,0,0,0,0,0,1,0,2,0,4,0,5,0,5,0,3,0,1,0, +1,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0, +3,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,255,255,255,255,0,0,2,0,4,0,4,0,2,0,1,0,255,255,255,255,0,0,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,3,0,1,0,0,0,0,0,1,0, +4,0,6,0,5,0,3,0,1,0,2,0,2,0,1,0,1,0,2,0,4,0,4,0,3,0,2,0,1,0,1,0, +1,0,2,0,3,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,255,255,254,255,255,255,255,255,1,0,2,0,3,0,2,0,2,0,1,0,1,0,0,0,255,255, +255,255,0,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,255,255, +254,255,254,255,254,255,254,255,254,255,254,255,0,0,0,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,0,0,254,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,254,255,253,255,254,255,0,0, +1,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0,254,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,2,0,2,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,253,255,252,255,253,255,254,255,254,255, +254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255, +255,255,255,255,255,255,253,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255, +254,255,253,255,253,255,252,255,252,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +254,255,254,255,254,255,255,255,254,255,255,255,0,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,2,0,2,0, +2,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,253,255,253,255,254,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,0,0,2,0,2,0,255,255,252,255,252,255,253,255, +252,255,253,255,253,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0,1,0,0,0,255,255,254,255, +254,255,254,255,253,255,253,255,254,255,255,255,1,0,0,0,254,255,254,255,254,255,254,255,253,255,254,255,2,0,5,0, +5,0,2,0,255,255,254,255,253,255,254,255,0,0,1,0,1,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0, +1,0,2,0,6,0,8,0,5,0,255,255,251,255,251,255,253,255,254,255,253,255,254,255,1,0,2,0,0,0,252,255, +249,255,249,255,252,255,255,255,2,0,3,0,1,0,255,255,252,255,251,255,253,255,255,255,0,0,254,255,253,255,255,255, +1,0,2,0,0,0,254,255,253,255,254,255,1,0,3,0,5,0,4,0,2,0,255,255,252,255,251,255,252,255,254,255, +0,0,1,0,2,0,2,0,3,0,4,0,3,0,3,0,3,0,4,0,5,0,4,0,3,0,2,0,1,0,0,0, +255,255,254,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,254,255,0,0,4,0,5,0,4,0,1,0,255,255, +253,255,252,255,252,255,254,255,0,0,0,0,255,255,0,0,2,0,4,0,4,0,2,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,2,0,2,0,2,0,1,0,255,255,255,255,255,255,255,255,254,255,254,255,0,0,2,0,3,0,3,0,4,0, +4,0,3,0,2,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,255,255,1,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,3,0,3,0,1,0,0,0,0,0,2,0,1,0,0,0,255,255,1,0,1,0,0,0,254,255,254,255, +255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,1,0,4,0, +4,0,2,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,255,255, +0,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,1,0, +255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,3,0,3,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,3,0,3,0,1,0,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,1,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,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, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/bowhit4.pcm b/src/client/sound/data/bowhit4.pcm new file mode 100755 index 0000000..1d98144 --- /dev/null +++ b/src/client/sound/data/bowhit4.pcm @@ -0,0 +1,2759 @@ +unsigned char PCM_bowhit4[88216] = { +1,0,0,0,2,0,0,0,68,172,0,0,68,172,0,0,19,0,254,255,250,255,222,255,162,255,156,255,205,255,211,255, +196,255,235,255,5,0,223,255,194,255,199,255,205,255,222,255,237,255,224,255,232,255,13,0,15,0,5,0,36,0,47,0, +7,0,20,0,103,0,106,0,251,255,213,255,48,0,78,0,254,255,235,255,25,0,245,255,177,255,206,255,34,0,69,0, +30,0,216,255,225,255,52,0,38,0,205,255,210,255,224,255,153,255,194,255,80,0,17,0,128,255,15,0,245,0,162,0, +203,255,190,255,255,255,226,255,241,255,80,0,62,0,231,255,19,0,79,0,251,255,218,255,64,0,71,0,253,255,23,0, +11,0,178,255,16,0,164,0,36,0,136,255,242,255,67,0,202,255,122,255,131,255,165,255,49,0,141,0,230,255,59,255, +160,255,79,0,123,0,98,0,38,0,214,255,217,255,40,0,43,0,191,255,146,255,255,255,74,0,246,255,210,255,40,0, +17,0,179,255,14,0,153,0,98,0,1,0,26,0,82,0,96,0,51,0,242,255,25,0,106,0,61,0,251,255,13,0, +245,255,198,255,230,255,255,255,29,0,107,0,61,0,231,255,59,0,118,0,162,255,139,255,136,0,122,0,111,0,49,1, +204,0,85,0,58,1,56,1,100,0,157,0,83,0,70,255,124,255,230,255,170,255,54,0,110,0,111,255,80,255,196,255, +25,255,82,254,242,253,255,253,196,255,150,1,48,1,36,1,76,2,158,1,63,0,195,0,206,1,80,3,221,4,95,2, +29,254,228,254,72,1,42,255,149,252,135,252,4,252,255,252,220,0,118,1,121,254,152,254,45,1,151,2,76,4,21,4, +76,254,216,249,115,253,48,2,93,0,162,251,75,250,141,253,97,3,141,7,241,5,149,0,136,255,136,5,66,9,91,3, +162,251,197,250,244,252,20,255,17,3,196,3,236,254,10,255,221,5,35,9,120,9,229,9,42,4,135,254,2,4,213,6, +151,251,158,243,133,247,27,251,174,253,89,1,52,253,34,247,34,251,71,255,208,253,60,3,54,13,137,15,201,13,22,11, +127,4,88,1,99,4,130,4,65,3,225,6,201,9,204,7,46,3,157,254,28,0,142,5,203,2,134,250,79,248,198,251, +158,4,13,16,14,17,249,12,127,16,252,14,190,10,250,22,195,27,148,16,151,43,155,96,68,97,234,77,223,108,216,121, +239,65,234,43,240,91,201,109,211,92,38,109,75,115,110,78,24,69,55,83,129,63,245,52,105,73,255,62,53,33,158,24, +96,1,179,221,243,217,172,216,103,195,17,194,69,210,16,215,187,213,168,202,228,188,231,202,127,224,0,236,195,20,96,72, +246,82,218,82,123,69,50,238,84,147,11,159,45,212,210,232,78,248,164,251,29,238,68,10,215,47,130,11,70,206,252,186, +48,175,171,163,1,180,175,196,250,201,137,215,96,210,128,176,115,157,224,152,164,144,100,162,121,196,244,199,40,196,240,208, +132,200,227,185,27,206,180,215,15,194,87,201,90,225,182,208,224,186,209,199,83,209,185,193,211,177,245,188,134,235,17,9, +87,224,86,178,37,197,140,218,242,197,80,194,167,215,224,214,80,208,42,217,149,214,157,201,212,197,181,194,144,194,223,202, +47,198,128,184,77,189,65,201,127,202,213,203,173,203,191,197,55,203,196,211,246,198,179,187,68,205,30,221,5,209,246,198, +230,214,2,236,197,244,86,250,170,0,42,254,115,244,93,241,246,246,97,250,66,250,253,251,57,254,243,255,109,0,244,250, +184,245,1,252,241,2,162,252,97,247,16,254,63,0,50,250,40,254,234,10,10,16,108,14,134,13,189,13,202,18,177,27, +3,29,170,24,151,28,231,36,97,35,205,27,252,26,129,32,148,35,82,34,204,34,2,40,186,43,243,40,136,37,197,39, +184,43,182,43,238,41,18,43,0,46,246,46,162,47,102,50,224,49,31,44,72,43,192,49,216,51,225,48,233,49,198,49, +15,43,88,41,149,46,241,43,130,35,233,36,68,44,64,44,132,39,247,37,180,38,171,38,46,37,207,35,24,38,161,42, +143,42,75,37,200,33,84,35,79,38,109,38,203,35,216,33,164,33,217,32,217,30,194,29,210,30,37,32,85,30,23,27, +10,28,244,29,213,26,82,27,25,36,14,36,113,24,5,25,29,37,159,35,112,26,19,30,46,35,198,29,7,28,195,32, +77,32,128,31,197,34,22,32,90,26,35,27,134,25,161,16,29,14,192,20,164,24,5,23,89,20,139,18,152,18,103,17, +125,12,54,10,92,12,116,11,137,9,32,13,72,15,184,10,250,7,116,10,80,12,34,12,211,10,41,8,51,7,212,7, +117,6,22,7,20,12,149,12,152,7,145,7,252,10,242,8,56,6,15,9,32,10,133,4,28,255,195,254,131,1,113,5, +8,8,89,5,13,255,87,252,248,254,82,1,178,0,193,254,27,252,47,252,112,2,242,5,122,254,122,248,84,254,6,3, +168,254,151,252,68,255,28,255,171,254,249,254,208,250,198,249,89,2,186,6,73,0,183,251,28,251,122,246,172,242,41,245, +246,247,13,249,92,251,203,252,87,252,209,251,250,250,201,251,62,255,84,0,165,255,129,2,30,4,38,1,2,3,166,10, +141,12,249,7,232,3,131,0,237,254,68,1,205,1,121,254,87,253,199,253,207,251,224,249,92,248,72,246,109,248,254,252, +160,251,231,247,194,247,113,244,157,237,234,237,92,242,220,240,139,238,80,241,224,242,179,241,9,242,238,240,234,237,158,239, +137,243,147,242,60,241,35,243,100,241,25,237,24,238,185,237,103,230,12,232,222,247,139,253,237,240,83,235,39,246,202,253, +130,250,239,245,54,243,238,241,114,243,30,244,222,242,205,242,138,240,102,236,14,238,102,240,91,237,253,239,210,249,198,247, +212,236,33,240,45,247,181,236,205,229,7,243,221,248,219,237,59,235,217,239,106,234,252,230,22,239,46,242,247,236,246,235, +188,236,38,234,246,234,25,239,133,238,53,235,134,236,42,241,86,243,49,243,68,244,135,243,121,237,117,236,115,247,220,252, +68,242,202,236,169,246,118,251,25,245,84,245,53,254,45,1,133,251,221,245,40,246,152,250,118,251,149,249,242,254,171,6, +178,3,13,254,82,2,7,8,224,7,9,10,209,14,211,12,255,5,228,3,13,8,120,11,144,7,26,1,203,1,129,4, +150,0,85,253,183,253,151,250,29,253,206,10,208,10,61,248,111,247,144,11,207,12,220,250,171,247,36,1,105,2,214,253, +229,249,12,249,93,2,71,12,78,6,49,255,246,6,38,10,110,0,164,254,238,2,10,255,28,255,240,4,231,253,62,246, +91,0,106,5,18,253,102,2,19,9,56,246,18,236,73,1,135,11,116,0,223,255,120,0,194,248,29,3,98,15,208,255, +53,248,54,7,75,6,158,255,72,4,52,252,230,245,110,244,117,229,231,16,111,97,61,28,209,137,143,188,151,76,235,32, +146,175,169,226,21,69,206,20,243,172,181,198,145,58,181,71,59,212,137,154,120,236,76,55,121,21,5,218,1,208,212,221, +44,239,6,11,11,31,123,18,48,240,76,225,188,248,112,14,172,254,210,233,120,238,21,247,87,1,136,24,247,18,144,228, +78,214,115,249,87,6,190,241,90,233,196,230,254,221,0,237,215,14,187,26,31,12,34,248,140,243,212,8,249,20,16,249, +219,225,62,237,192,241,96,240,20,9,231,13,0,237,98,250,239,46,97,24,73,210,26,219,138,15,182,255,66,215,5,245, +74,45,34,37,91,236,214,212,255,250,107,41,93,38,229,2,133,244,17,252,217,249,178,241,167,244,33,250,90,249,213,246, +118,243,57,242,135,247,124,248,236,236,157,227,193,234,5,254,123,13,180,7,193,245,85,250,215,16,99,12,10,240,136,232, +201,245,112,252,92,255,98,4,239,3,219,1,190,253,40,242,14,240,167,251,169,250,126,237,46,231,230,223,231,220,31,243, +241,7,8,255,33,246,209,253,77,2,151,4,133,0,154,234,0,232,16,8,131,19,194,1,253,252,176,251,170,242,57,0, +56,19,4,3,130,236,254,244,195,8,64,12,217,252,15,243,105,9,83,34,178,25,0,17,3,24,172,10,116,252,225,12, +174,22,204,21,215,37,245,27,137,242,112,245,119,19,46,6,17,240,225,245,76,249,205,255,62,14,0,6,110,3,91,30, +127,33,157,14,71,22,146,24,143,0,209,253,134,13,188,15,233,11,254,0,177,248,208,3,159,255,118,5,184,80,171,92, +246,206,199,155,46,43,225,79,123,191,86,169,73,52,26,101,128,20,225,218,96,255,156,67,168,38,247,196,240,233,190,97, +6,42,142,184,125,21,3,115,50,242,81,173,195,56,198,82,174,198,149,221,177,111,62,63,67,176,47,224,220,82,216,33, +81,208,123,12,38,89,52,48,212,243,173,7,7,35,189,247,47,201,131,242,146,58,29,50,205,251,183,250,250,23,227,26, +244,29,218,34,199,1,96,228,169,253,52,24,139,12,167,8,30,17,226,249,48,228,141,6,200,35,178,248,187,221,249,33, +242,75,222,249,192,179,24,230,173,32,51,13,108,241,80,253,24,21,61,26,209,248,160,212,240,233,10,16,172,7,7,250, +2,8,52,12,52,4,72,5,95,8,182,10,5,254,11,224,94,237,226,30,246,17,63,229,212,253,240,28,37,250,188,228, +193,251,41,1,197,246,100,239,183,231,30,0,115,27,137,240,20,196,218,233,183,10,75,236,33,221,189,242,109,251,97,241, +244,224,201,224,154,1,181,11,245,234,67,238,221,11,130,241,92,211,225,242,18,5,27,236,253,237,216,2,119,250,48,237, +196,239,19,241,218,239,29,236,185,229,106,236,76,249,244,249,159,249,156,1,39,8,78,4,253,239,28,225,118,244,8,5, +103,242,200,239,133,7,206,255,196,239,66,5,85,11,253,237,181,237,211,5,222,2,251,244,74,245,114,250,110,255,153,249, +251,238,154,255,134,16,108,249,25,240,71,15,231,12,123,231,105,234,241,3,21,0,29,247,28,250,171,247,76,249,48,0, +63,251,183,249,78,3,186,255,0,245,137,248,49,252,100,245,228,242,201,247,42,251,149,249,191,245,6,247,160,249,174,245, +241,248,61,3,111,248,196,229,115,239,204,254,165,248,37,246,118,253,70,254,74,6,138,9,14,234,249,216,78,254,36,17, +181,242,71,241,227,15,107,3,88,225,48,237,187,12,99,7,148,234,18,230,61,255,46,11,212,251,227,249,190,7,31,252, +65,236,167,254,154,10,245,246,127,243,154,4,236,255,7,242,238,248,203,3,129,0,239,249,154,254,104,8,63,254,180,233, +231,246,129,16,18,0,75,239,122,13,191,25,91,247,37,242,165,16,98,15,161,248,120,249,252,2,184,255,40,248,73,248, +236,5,181,13,60,252,79,243,45,7,244,10,45,250,95,3,244,18,23,3,226,248,9,9,201,11,32,254,234,250,219,250, +16,249,73,254,243,254,110,251,247,2,247,4,31,248,149,249,72,8,55,6,210,253,135,1,84,2,240,254,75,4,207,6, +4,2,119,2,30,255,122,246,158,0,245,14,156,255,17,239,133,0,222,18,136,11,209,3,215,2,171,250,233,249,47,10, +81,21,194,17,113,10,10,3,207,253,226,253,82,254,221,254,249,1,85,1,146,0,18,10,139,16,184,5,23,252,143,5, +17,20,59,19,53,3,127,246,71,252,40,10,135,12,150,5,38,2,47,5,104,10,115,8,129,255,191,1,52,16,248,17, +128,6,51,4,149,5,114,254,197,255,222,11,83,10,158,1,6,9,133,18,233,13,160,10,229,12,189,10,202,12,162,18, +100,10,77,255,129,5,193,12,104,9,225,11,190,17,15,13,77,8,55,8,72,2,219,0,86,12,152,15,138,5,115,3, +129,8,110,6,95,3,62,4,159,1,28,0,77,6,121,10,224,8,27,10,219,10,101,4,96,0,168,3,42,4,173,3, +69,8,75,4,65,248,171,255,222,18,23,13,133,252,229,3,105,13,107,1,149,252,16,12,56,21,128,14,238,1,57,249, +149,0,225,12,130,5,198,250,51,3,2,9,88,3,238,7,148,13,248,4,73,2,251,8,131,5,252,255,134,2,90,1, +181,255,28,6,196,8,1,4,62,1,128,1,213,3,86,4,121,255,177,1,210,8,214,255,253,245,168,254,162,254,54,246, +175,6,227,17,34,250,236,242,156,8,128,6,236,249,170,4,188,3,22,241,249,244,16,1,245,254,161,3,84,7,17,251, +228,250,57,4,242,250,135,246,245,3,32,2,191,247,190,252,138,252,214,245,235,253,42,1,194,247,194,252,74,5,239,254, +9,255,114,2,75,246,88,245,28,8,84,8,135,248,45,247,82,250,117,249,60,1,86,2,174,241,230,238,107,2,106,6, +177,242,211,235,98,253,74,7,136,249,237,239,206,252,240,6,221,250,120,236,85,239,195,251,182,1,171,249,29,237,173,239, +58,255,69,3,146,247,200,241,14,250,197,1,56,255,175,248,102,245,190,245,9,250,131,255,42,252,89,242,187,244,154,1, +40,0,208,241,236,241,239,254,252,253,143,241,69,243,220,255,75,0,159,248,177,248,22,248,173,241,178,245,126,255,119,249, +200,238,57,244,192,254,147,1,114,255,134,247,186,241,239,248,107,253,53,246,53,246,87,249,150,238,28,234,7,248,167,253, +195,246,40,246,25,246,123,243,75,250,73,254,39,243,231,236,105,244,182,249,202,249,77,249,117,244,198,239,193,244,169,254, +208,1,43,252,124,247,22,250,113,252,247,251,23,0,81,2,164,251,100,249,149,252,103,247,2,244,127,251,101,253,10,252, +233,4,83,6,95,250,203,249,187,255,197,249,23,250,11,8,185,9,170,255,81,0,168,5,169,2,111,0,59,4,157,5, +148,2,185,1,75,6,112,10,169,7,80,3,232,3,30,4,236,1,20,3,253,3,244,254,47,251,178,255,109,7,87,8, +75,0,112,252,140,5,101,11,86,2,191,250,8,254,1,1,55,1,53,3,7,5,37,8,11,11,247,5,27,0,254,2, +165,5,121,6,4,13,5,13,211,0,93,254,94,9,8,12,34,4,228,255,9,4,247,13,139,19,5,13,240,6,143,9, +151,8,94,4,25,8,239,10,221,5,230,4,226,7,172,5,166,6,164,14,21,14,111,3,105,1,175,11,96,17,80,12, +19,9,252,11,162,10,27,5,126,4,64,6,51,8,34,14,36,14,195,3,112,2,180,11,148,10,128,4,133,7,214,7, +201,4,27,12,48,16,131,5,212,255,202,4,196,6,217,8,3,13,6,11,152,9,182,11,95,6,35,2,86,9,181,10, +191,2,19,5,3,12,22,6,91,253,113,0,239,10,23,16,140,7,47,254,34,7,61,16,234,1,25,247,237,5,145,13, +230,254,229,251,214,11,226,15,198,3,8,254,169,2,159,4,108,1,47,1,26,4,222,3,164,4,30,11,119,10,241,252, +36,246,124,254,35,4,143,0,241,254,21,0,176,255,232,1,17,5,20,3,195,0,87,0,156,251,19,250,88,4,201,9, +68,0,234,250,27,255,88,253,246,251,134,5,204,7,175,251,79,247,156,253,204,251,83,243,45,243,72,251,134,0,114,254, +244,252,111,255,9,250,79,238,23,240,29,251,24,253,42,255,31,8,56,6,231,250,40,248,5,250,11,249,27,249,155,248, +118,248,182,249,71,244,97,242,238,254,202,254,50,236,136,238,138,0,176,253,35,247,27,255,222,253,163,245,8,245,223,236, +112,230,224,244,108,251,84,241,172,246,16,255,42,244,99,239,109,244,1,241,198,246,203,3,152,251,61,242,207,248,73,242, +204,231,188,243,250,248,61,239,22,248,195,1,125,242,156,237,51,255,135,2,65,245,91,239,66,242,173,246,31,247,71,244, +76,248,142,251,246,241,113,238,139,250,139,0,57,252,127,247,233,241,4,244,137,251,54,243,238,234,128,249,136,255,112,240, +57,241,92,253,233,248,177,247,164,3,133,3,191,252,239,0,100,3,108,252,178,243,188,239,197,249,185,6,107,0,52,250, +233,7,143,12,82,255,9,252,89,255,58,254,251,4,32,9,212,253,177,249,142,1,182,3,171,5,103,6,53,252,230,253, +152,15,13,13,86,251,13,250,61,254,219,254,195,8,193,11,197,253,66,251,74,7,81,10,220,7,7,8,33,6,4,8, +12,11,88,3,172,255,190,10,109,13,187,1,166,254,121,6,246,9,81,8,26,8,228,9,89,10,120,8,145,8,118,9, +74,5,36,3,41,9,136,11,86,7,241,7,64,10,5,8,78,8,226,9,198,6,14,6,20,8,241,3,19,0,77,5, +198,11,57,11,126,5,218,1,156,6,129,13,8,13,140,9,100,5,44,253,28,251,38,2,125,1,10,252,88,1,212,5, +19,1,54,2,107,5,12,254,248,250,183,2,13,4,149,0,163,2,192,0,33,250,102,251,163,255,12,255,180,0,153,3, +62,0,124,253,3,1,68,2,207,253,180,251,51,255,246,1,190,255,56,254,177,3,41,10,102,7,104,254,57,251,64,0, +30,4,7,2,242,255,246,0,101,0,7,254,70,254,45,0,33,1,152,255,81,253,160,253,240,254,214,253,123,252,57,252, +199,250,7,251,18,253,41,249,77,243,158,245,159,248,165,246,134,250,109,0,253,249,42,242,111,247,238,253,193,252,203,251, +87,250,224,244,136,244,127,250,64,250,239,243,190,243,199,248,10,249,166,246,196,248,204,250,78,248,71,247,196,246,30,241, +64,240,162,249,178,252,138,246,199,247,42,252,144,247,230,244,43,249,193,248,127,246,89,248,88,247,229,245,144,246,66,240, +134,238,252,254,236,6,34,248,252,241,223,250,252,249,234,244,211,247,146,247,227,247,213,255,200,252,71,239,130,240,15,253, +182,3,51,5,252,0,44,250,72,253,142,2,32,1,36,5,5,5,66,243,223,241,251,11,178,14,21,245,135,243,252,7, +234,10,206,0,112,252,59,252,250,255,168,4,124,3,243,2,37,5,76,2,19,254,208,252,108,254,212,8,220,16,44,6, +133,254,194,8,22,8,103,250,54,253,116,6,17,3,182,0,223,1,83,2,213,11,41,14,65,254,8,254,116,8,187,248, +171,248,188,38,224,44,226,237,98,218,99,21,145,42,88,232,226,189,20,254,16,65,164,20,7,222,47,17,136,61,30,2, +141,217,177,4,132,23,100,0,83,8,154,18,76,254,128,249,24,254,108,246,101,19,119,62,238,29,190,226,6,243,202,27, +209,13,220,243,167,249,180,4,26,13,193,30,248,35,130,12,76,240,186,233,231,252,123,26,96,33,127,5,10,243,143,8, +181,22,215,254,151,244,71,10,132,14,111,2,106,5,156,2,126,253,164,21,212,29,51,251,225,248,80,29,244,26,176,4, +24,10,239,8,134,0,68,8,135,253,248,251,209,49,218,55,51,236,237,239,178,60,129,31,84,207,249,228,85,21,139,20, +90,39,162,57,172,16,184,237,38,239,136,234,246,249,192,29,81,19,29,253,89,24,161,37,230,0,251,239,114,4,200,18, +12,19,195,13,47,12,52,19,149,5,173,228,140,231,123,5,2,5,45,247,111,1,211,8,13,247,133,236,136,17,228,78, +36,71,10,243,163,217,230,11,173,247,211,181,22,224,131,51,128,28,168,210,220,192,123,1,250,114,254,113,235,195,209,136, +197,46,115,82,79,172,167,176,4,76,178,58,159,230,95,12,88,4,246,203,137,25,21,62,72,184,179,185,109,94,35,66, +240,186,220,3,221,92,137,227,187,146,171,247,222,49,128,1,229,242,172,0,235,231,27,209,154,226,140,0,173,8,173,2, +233,22,205,45,161,4,129,212,88,244,181,17,237,237,59,242,63,36,19,8,116,201,217,224,186,17,81,6,1,239,135,238, +233,234,33,234,105,249,180,9,149,11,246,252,127,249,145,16,230,14,150,233,72,231,177,252,127,240,231,249,98,39,124,21, +154,232,102,9,224,35,146,250,236,248,121,11,77,209,15,180,232,241,105,251,16,207,113,232,60,18,6,19,124,30,54,250, +100,171,96,250,255,127,231,74,207,133,173,173,249,74,250,51,106,205,180,224,173,41,70,34,101,210,137,175,214,5,166,79, +53,240,230,128,98,212,191,90,227,54,108,195,58,180,163,246,57,31,186,15,103,247,88,252,41,3,165,250,188,3,174,9, +158,230,152,218,18,3,178,5,87,226,56,244,205,19,254,246,22,218,67,234,54,252,0,5,20,1,95,225,180,222,180,15, +23,30,238,3,146,11,15,19,220,247,83,2,172,36,85,10,133,232,81,254,46,11,184,248,50,246,179,246,26,237,162,251, +27,13,96,250,12,234,160,245,10,247,120,240,59,4,222,25,116,17,230,5,93,10,176,5,140,244,89,244,22,4,226,7, +199,1,57,4,212,4,213,248,210,246,191,8,222,15,215,251,251,232,118,241,5,8,45,14,148,254,119,242,198,247,219,253, +192,252,38,3,48,14,97,8,121,244,35,236,70,250,107,12,69,7,40,243,159,250,112,24,238,16,62,234,174,235,244,12, +242,9,132,236,115,227,241,233,29,252,81,24,122,17,203,238,180,248,141,22,132,0,175,236,81,12,164,13,187,227,82,239, +71,25,75,4,187,221,154,240,189,16,178,14,168,2,134,254,62,253,100,252,139,248,108,249,160,6,194,15,186,11,245,3, +168,250,117,249,163,7,224,9,125,248,253,245,137,254,73,248,12,253,99,23,0,26,70,3,122,254,216,5,89,255,55,247, +124,248,242,248,64,247,34,249,139,253,122,0,65,2,85,8,237,12,141,4,190,254,94,8,136,6,131,246,179,253,241,14, +85,4,181,250,115,12,16,18,150,254,229,245,101,250,208,248,41,248,145,0,238,7,59,8,53,1,150,249,38,253,119,2, +9,250,131,240,149,244,19,0,15,10,19,9,72,253,23,251,62,2,135,253,125,247,214,250,147,242,117,235,44,0,152,10, +173,245,46,248,113,20,30,11,216,233,47,237,63,7,26,13,148,2,68,252,73,255,148,2,39,255,51,3,209,16,164,10, +159,242,189,236,117,247,135,254,12,3,216,251,22,234,116,241,0,10,215,4,134,243,219,253,121,10,25,2,200,253,67,5, +97,4,9,244,219,227,70,241,60,20,117,16,132,229,174,226,222,12,92,23,214,251,200,241,210,2,136,19,24,17,84,255, +199,249,106,3,100,253,104,240,41,250,245,4,101,254,40,0,66,10,150,7,128,0,52,251,99,248,25,6,40,16,106,253, +124,246,141,13,218,11,68,241,0,245,132,8,95,5,145,252,127,250,248,248,121,1,37,10,204,3,66,2,10,6,177,251, +17,250,199,9,227,5,146,248,44,3,143,9,142,252,180,255,196,12,242,6,103,255,0,1,240,255,75,5,162,13,144,7, +137,5,84,13,143,2,193,246,62,7,33,16,175,254,146,250,248,5,153,5,110,4,238,6,128,254,228,252,143,9,177,4, +50,243,198,247,171,6,54,8,105,7,255,7,59,2,72,1,127,7,231,6,5,4,67,6,224,5,174,6,34,12,34,6, +239,251,108,7,246,20,152,6,189,248,155,5,32,15,98,8,75,13,66,24,135,12,12,249,207,249,102,5,143,10,17,9, +151,2,14,252,48,255,202,10,52,19,196,13,67,251,76,239,22,247,139,1,166,0,75,254,211,252,20,249,149,253,160,5, +193,255,220,247,71,253,43,2,30,1,209,1,155,253,229,248,51,255,60,254,217,242,26,252,151,14,29,7,226,249,99,252, +155,250,43,250,64,7,164,4,80,247,201,4,203,15,249,247,234,235,185,251,180,248,64,236,241,251,109,11,104,0,2,245, +216,243,221,244,159,255,207,9,250,254,170,242,150,252,78,8,227,0,195,248,51,3,39,15,165,6,20,249,150,254,194,9, +109,5,25,253,176,0,190,9,205,10,105,255,250,246,236,0,116,6,188,246,1,247,125,15,32,13,179,245,192,251,35,7, +251,245,207,241,108,5,195,1,233,241,67,254,26,16,0,10,214,250,74,243,3,247,55,0,230,251,134,240,78,247,67,2, +207,252,172,248,108,251,195,246,120,247,8,6,72,11,11,1,219,249,86,252,224,0,213,252,222,242,144,246,199,3,181,2, +43,253,148,1,37,254,35,245,168,248,8,249,119,245,39,5,130,13,71,247,23,240,62,4,25,6,234,251,105,0,100,251, +6,239,81,255,127,18,158,1,90,239,35,255,89,17,3,2,81,230,197,235,130,11,117,14,228,241,232,237,116,6,188,13, +80,1,114,249,236,247,86,252,177,3,141,1,125,253,31,2,202,3,13,3,203,8,88,7,8,254,156,255,96,4,236,0, +3,255,128,250,27,242,60,249,187,2,3,249,5,249,208,10,116,6,117,247,216,2,59,13,33,3,235,4,253,13,110,5, +216,0,16,6,221,251,14,245,100,7,60,19,192,12,125,14,124,19,81,9,11,253,141,252,220,3,171,9,190,5,57,2, +100,10,71,11,173,0,61,0,224,250,12,241,93,28,122,83,5,28,253,184,129,211,105,41,162,28,60,238,77,8,49,33, +72,253,127,225,242,246,125,28,227,38,47,254,187,209,159,233,252,27,160,18,180,230,174,214,140,226,254,0,60,35,247,33, +146,4,247,248,9,2,116,11,173,13,179,2,13,248,24,251,198,246,183,241,107,10,2,25,15,250,133,235,216,4,164,7, +111,247,117,253,45,248,155,224,56,239,249,16,108,12,184,252,4,3,218,6,234,3,167,6,92,1,93,246,235,243,198,240, +192,243,70,10,254,19,218,0,35,250,23,7,10,2,254,241,182,245,127,2,230,7,139,12,95,13,112,3,183,251,111,254, +214,255,10,252,208,254,36,8,56,9,239,2,196,4,117,9,2,1,204,246,237,249,48,251,54,242,14,242,139,251,45,250, +218,241,31,245,131,0,199,6,251,5,64,2,38,1,163,4,94,4,26,251,254,242,0,246,67,255,102,4,165,2,79,255, +139,255,132,2,188,5,144,9,130,11,180,4,120,246,1,238,217,241,78,248,132,250,242,254,114,6,9,7,147,1,233,1, +177,8,242,12,3,12,196,7,64,1,230,251,59,252,68,2,65,8,21,8,189,2,229,252,247,247,192,246,89,250,14,250, +190,244,77,246,22,251,161,250,175,4,213,24,59,21,56,254,168,251,162,5,153,4,7,9,143,22,113,16,112,253,254,250, +25,254,104,247,102,247,130,253,248,247,126,244,90,2,54,12,57,3,198,248,120,251,212,5,133,11,196,6,243,254,213,252, +56,254,45,255,169,254,79,251,6,249,227,251,26,1,85,7,208,10,216,4,189,253,55,251,49,240,132,230,39,246,112,9, +138,7,22,6,215,6,140,245,43,238,38,1,119,5,218,252,181,12,155,24,134,5,168,252,141,5,150,250,16,234,244,240, +78,253,155,3,154,10,29,5,146,241,4,236,0,253,78,9,9,250,92,227,193,238,249,16,162,21,155,0,57,253,158,4, +117,254,11,248,162,250,101,253,113,2,106,7,246,2,50,251,124,246,133,243,19,244,88,244,206,247,89,10,72,20,212,253, +88,238,24,252,25,253,137,245,105,14,18,29,104,244,203,217,61,1,49,32,206,252,107,215,161,238,237,19,184,11,136,243, +231,242,14,244,218,242,83,6,121,15,23,250,62,247,224,2,59,235,192,223,191,9,198,17,150,222,31,222,143,24,81,28, +224,229,76,215,240,250,43,10,67,249,67,253,119,23,50,15,206,241,44,2,5,29,68,246,237,199,96,229,177,25,36,28, +119,2,13,244,100,245,167,249,75,241,74,233,166,249,151,14,226,13,228,4,204,253,30,243,30,237,101,244,55,5,203,14, +163,251,31,229,245,247,253,13,26,247,164,235,207,10,207,13,54,240,219,248,25,20,211,8,240,241,226,241,49,250,138,1, +76,3,66,248,174,243,126,2,185,12,207,2,79,246,211,251,254,13,228,17,153,2,243,249,186,253,50,2,89,9,110,4, +200,231,160,225,221,5,190,20,94,251,130,243,246,2,109,5,15,2,83,0,206,243,236,240,178,7,105,24,143,14,61,252, +101,243,16,249,232,4,38,5,97,251,134,250,25,4,177,7,233,253,209,244,162,253,63,14,71,17,9,12,24,9,251,1, +18,253,181,3,124,4,148,251,48,255,59,8,179,1,16,252,12,8,17,18,109,10,252,252,249,248,65,254,179,1,116,1, +172,5,132,9,30,6,38,5,68,6,234,254,208,251,156,7,18,14,44,5,44,254,124,1,89,6,30,4,154,254,100,3, +243,12,43,9,75,4,131,10,101,5,72,250,236,7,228,20,197,4,235,253,247,11,211,8,13,254,133,6,70,9,210,252, +43,254,197,8,168,6,145,254,47,249,149,251,129,11,141,19,188,5,63,255,9,7,121,0,110,245,185,254,83,8,58,2, +215,253,2,254,220,250,243,251,110,0,186,0,36,4,29,10,51,6,215,254,238,255,234,2,82,3,21,6,28,8,46,7, +200,9,16,12,48,4,27,252,241,2,206,12,50,7,65,253,37,0,49,5,146,0,60,253,29,1,36,4,107,5,63,5, +134,0,217,255,104,6,70,4,104,250,250,252,122,7,205,7,98,2,29,255,245,250,123,251,161,3,219,4,227,251,34,250, +68,5,29,15,148,12,39,1,86,249,147,252,191,3,207,4,7,2,96,3,164,7,207,5,67,253,140,250,120,2,168,6, +221,254,119,249,64,1,156,9,196,4,13,250,236,247,235,253,176,2,213,4,92,6,226,4,214,2,47,5,191,5,164,255, +9,253,24,3,121,7,116,4,245,254,167,251,116,252,212,254,173,254,132,255,248,2,40,1,160,252,246,0,28,7,155,2, +106,253,250,0,61,2,15,253,159,252,3,1,192,0,1,254,236,254,45,255,133,251,177,250,101,253,31,253,9,252,141,254, +90,255,234,252,160,254,81,1,76,251,108,244,244,248,101,255,212,251,90,247,99,250,189,252,62,250,116,249,175,250,70,249, +79,248,59,252,16,0,121,253,101,249,75,252,217,1,18,1,246,253,96,254,246,252,19,250,44,254,55,3,212,254,206,249, +86,253,162,1,59,1,158,255,10,254,239,253,64,255,193,252,35,249,133,251,195,254,232,254,11,1,212,0,123,251,225,253, +247,5,120,2,104,250,105,250,216,245,189,235,193,240,134,255,102,2,161,254,93,0,119,1,169,254,172,254,163,2,238,4, +165,0,77,250,164,252,95,3,80,2,245,255,237,2,119,0,139,250,22,252,52,250,2,242,13,248,152,5,23,1,39,246, +7,249,205,253,236,251,54,251,240,249,72,249,156,255,94,0,197,245,55,244,153,253,30,254,60,250,87,254,67,255,138,248, +231,247,41,253,95,254,152,253,51,253,243,249,72,248,184,253,165,3,71,2,146,254,147,0,248,3,62,1,27,254,34,0, +207,254,5,249,92,251,106,2,69,255,200,248,74,253,78,4,8,1,162,249,25,248,31,251,64,254,246,1,221,5,176,3, +63,251,212,248,44,0,26,4,89,255,246,250,142,250,211,251,105,255,130,3,109,3,149,254,94,250,133,254,185,6,254,2, +110,247,4,249,83,3,228,5,186,6,12,7,107,253,218,250,235,9,89,12,106,250,70,243,68,248,114,249,103,2,115,15, +101,7,85,247,109,249,180,0,167,254,196,253,44,2,255,5,176,5,147,255,122,252,41,2,48,2,101,250,37,251,38,255, +232,252,240,0,241,6,204,255,224,252,126,7,62,7,42,253,14,255,153,4,249,3,211,4,54,1,86,249,41,253,232,1, +234,250,253,252,132,7,243,0,210,246,45,253,38,1,130,252,68,254,152,255,66,253,190,2,173,4,73,252,75,254,146,6, +214,0,231,251,108,3,64,4,230,253,156,255,94,2,86,255,43,254,170,0,60,6,123,10,185,1,211,245,146,250,179,3, +190,2,2,3,7,3,26,252,71,0,79,13,216,7,33,251,202,254,164,1,31,251,166,254,211,4,53,254,119,251,171,2, +189,2,150,255,211,3,210,4,234,254,135,252,212,253,34,255,13,1,30,0,63,253,204,255,205,4,248,5,23,5,90,2, +230,255,158,4,186,9,50,5,7,1,242,3,196,2,23,254,203,0,195,5,205,5,111,4,75,1,40,254,161,2,157,6, +97,255,237,250,113,4,137,12,51,9,29,4,48,2,70,0,227,255,170,3,245,8,253,8,72,1,216,251,93,0,77,4, +207,255,52,253,157,1,1,5,217,4,127,2,253,252,9,251,6,3,193,11,51,11,137,5,116,2,66,3,233,3,158,0, +195,253,32,1,224,5,15,7,200,7,253,6,253,2,55,3,160,7,6,6,68,1,35,2,133,3,172,1,196,2,13,5, +38,3,139,1,64,3,63,5,200,6,253,4,187,254,93,254,119,7,91,12,35,8,163,4,139,3,143,0,79,254,42,254, +109,254,254,0,67,4,98,3,247,1,148,4,3,6,12,3,59,1,195,2,67,3,36,1,44,255,157,254,218,254,205,0, +180,3,100,2,230,253,34,0,223,7,12,7,153,253,63,249,76,252,1,0,196,1,165,255,91,252,243,255,52,5,89,1, +165,252,43,0,94,2,185,255,61,0,206,0,191,253,231,254,29,3,254,1,87,255,186,255,186,255,206,0,124,3,75,1, +28,252,169,251,196,254,20,1,67,0,85,251,32,249,192,254,124,3,12,3,23,4,132,3,169,252,149,250,119,1,220,3, +154,254,62,252,230,253,153,253,227,252,140,255,232,1,52,255,148,252,102,0,225,2,214,252,163,248,191,251,68,252,15,251, +221,254,178,254,130,248,163,249,104,254,85,252,73,253,168,3,110,1,115,252,201,0,197,1,225,248,140,245,155,249,43,250, +245,249,91,253,32,255,174,253,164,251,206,250,73,253,125,255,243,252,15,252,13,0,204,255,123,250,230,249,144,253,126,253, +152,249,176,247,250,250,208,255,95,0,8,255,240,255,225,253,16,247,119,244,219,248,207,253,2,0,58,255,36,253,3,253, +123,252,45,250,139,252,236,1,227,1,120,0,55,1,94,253,100,250,105,0,131,2,195,251,204,251,15,0,77,251,39,248, +45,254,35,255,40,250,162,250,100,252,221,251,31,255,43,1,126,253,60,254,129,3,41,2,32,254,1,255,118,253,92,247, +118,248,166,1,100,5,247,0,244,254,34,0,196,252,187,250,251,1,172,5,36,253,61,248,243,253,144,1,128,1,170,2, +13,255,143,249,238,252,2,1,23,252,243,248,48,253,207,0,147,4,37,9,188,4,165,251,196,253,245,5,245,3,186,251, +195,250,235,255,244,1,171,255,147,254,80,255,238,252,135,249,212,252,222,2,185,1,52,253,109,252,102,251,161,250,100,1, +191,8,27,5,32,253,162,251,108,254,93,0,83,255,169,251,60,252,232,2,164,4,106,254,147,250,191,251,106,254,112,3, +148,6,218,2,12,255,60,255,159,254,17,255,101,2,219,1,152,254,29,255,230,255,161,255,66,2,65,2,107,254,51,1, +175,5,98,254,162,245,111,250,197,2,192,1,200,253,222,255,82,3,191,255,190,250,174,255,190,6,25,2,11,252,211,0, +91,4,5,255,122,251,174,252,236,254,18,3,13,4,132,255,70,255,163,2,68,0,214,253,176,0,122,1,206,0,207,2, +79,1,220,252,73,253,197,255,54,0,231,0,82,1,197,1,1,2,83,253,90,251,130,5,5,11,120,0,160,250,63,1, +54,3,22,1,162,3,163,2,231,252,54,252,21,255,123,1,8,2,218,252,121,249,181,1,111,6,60,255,188,0,200,10, +181,5,147,248,217,249,16,3,139,4,176,0,252,255,182,2,104,3,120,1,216,0,0,0,50,255,119,3,135,5,230,254, +126,253,183,5,100,8,166,4,18,2,102,254,200,253,11,2,55,0,90,253,93,3,107,4,243,252,227,252,179,1,193,3, +166,5,7,2,203,255,85,9,21,4,242,241,124,9,42,47,190,13,21,214,2,242,116,42,241,14,21,205,56,215,121,25, +66,39,216,252,36,246,5,19,237,9,61,246,124,8,143,3,75,227,41,5,231,54,52,6,35,205,191,245,80,25,235,252, +16,6,38,44,241,7,222,214,252,254,73,38,132,241,44,203,170,2,49,44,100,11,190,250,68,13,212,252,189,230,184,254, +236,13,116,252,68,252,57,5,183,1,61,8,187,2,78,231,161,244,105,22,19,4,252,243,36,12,151,252,80,224,10,13, +131,39,82,238,48,226,141,28,130,26,52,235,217,245,154,17,233,0,221,242,207,254,241,254,172,248,36,5,167,11,55,250, +42,243,24,2,153,1,199,242,169,248,13,1,59,249,99,8,227,35,230,16,0,238,143,241,193,249,32,239,25,249,135,15, +156,6,31,240,46,236,16,240,158,247,204,10,202,22,35,10,239,245,50,243,200,0,155,7,0,0,254,250,94,251,179,248, +243,254,146,10,115,0,47,242,221,254,64,5,1,240,53,238,237,5,71,6,191,249,184,4,161,11,177,248,189,240,148,255, +198,2,211,245,80,245,29,2,134,3,136,248,38,246,88,253,184,0,24,6,75,20,101,26,204,11,24,246,115,239,187,249, +148,246,169,220,70,225,227,19,85,37,107,254,166,240,214,13,145,21,236,253,201,236,251,246,5,22,6,24,195,238,245,233, +189,14,19,3,12,237,176,17,22,21,203,234,97,12,187,47,150,226,124,192,119,19,18,34,186,227,232,243,187,33,2,22, +19,7,39,245,119,213,239,237,152,21,214,255,57,248,197,19,74,2,65,240,254,8,94,8,108,8,32,42,98,21,83,248, +51,49,21,39,61,164,191,154,183,26,228,52,133,249,200,252,10,12,64,243,132,235,28,253,204,16,101,18,74,238,67,227, +15,19,104,30,254,2,37,18,84,7,218,202,227,232,98,50,237,4,241,204,66,11,89,48,152,242,243,215,90,4,209,33, +31,17,197,242,57,247,184,17,46,253,55,222,139,1,164,27,212,238,101,211,228,229,89,246,54,20,244,41,168,9,237,248, +86,17,205,255,130,229,4,5,132,13,184,234,209,247,166,14,162,231,43,207,25,242,201,11,75,8,142,9,70,24,208,38, +181,18,123,226,195,223,207,6,250,7,178,244,99,1,163,9,64,254,237,0,24,253,225,232,188,238,155,255,165,248,118,253, +57,24,3,26,35,7,229,255,110,247,39,234,170,241,99,6,42,13,241,9,121,9,87,3,216,244,132,241,171,252,13,0, +93,255,122,15,120,26,77,8,75,248,183,253,50,252,79,241,61,246,175,4,145,10,63,8,236,1,140,254,217,1,58,3, +103,3,9,8,5,9,112,7,84,8,149,254,102,241,217,247,149,255,157,247,188,250,84,8,132,4,137,254,31,5,14,2, +48,249,126,253,98,1,49,0,81,4,104,0,253,244,218,250,113,8,32,6,175,253,80,250,249,247,234,248,154,253,75,3, +221,10,190,11,126,3,74,1,156,2,241,250,182,246,75,252,253,253,7,254,31,3,158,3,204,253,95,0,75,7,159,3, +217,253,139,0,21,1,195,252,50,1,178,12,117,15,184,7,21,0,26,253,220,251,99,250,156,250,52,253,53,254,61,252, +116,251,137,253,178,1,70,8,116,12,222,8,204,2,247,253,35,246,89,242,53,251,20,2,14,254,157,1,240,12,252,7, +32,251,194,254,123,3,29,248,202,242,82,252,20,255,69,253,139,6,73,12,180,2,84,251,146,250,41,243,197,238,57,252, +50,10,225,5,111,253,193,0,212,4,117,255,79,251,141,253,144,251,193,246,47,252,21,7,81,9,166,4,196,255,162,251, +207,251,124,253,240,247,218,244,79,0,242,9,133,4,177,255,246,1,231,255,133,253,163,1,20,2,169,254,143,2,41,7, +170,3,159,1,220,3,111,255,138,246,21,246,44,254,208,3,155,1,83,253,243,253,77,0,104,254,253,250,201,250,20,254, +10,3,98,3,42,251,4,244,155,246,67,253,176,2,111,6,212,5,67,4,79,5,68,0,211,247,66,253,220,6,216,253, +46,241,173,247,70,2,247,0,34,254,109,254,198,252,121,253,240,0,73,255,249,250,214,250,217,252,137,254,155,254,113,251, +22,250,58,253,56,254,157,251,62,249,56,247,190,249,96,2,99,4,28,252,29,249,122,0,182,6,16,5,173,254,72,253, +198,5,129,10,128,2,157,253,134,3,18,6,29,2,20,0,114,255,103,255,217,0,30,0,195,0,144,6,20,8,149,3, +54,2,94,1,37,255,117,2,163,4,119,255,146,254,65,1,58,253,47,253,4,6,252,6,143,0,62,255,213,253,90,251, +250,1,250,11,78,13,171,5,181,251,167,252,243,8,44,8,132,249,43,252,50,13,42,15,30,6,195,1,172,255,140,2, +93,10,219,10,119,8,104,10,245,5,243,0,242,7,119,8,161,252,81,254,34,9,210,4,209,252,179,255,130,2,181,2, +117,3,251,254,99,252,203,2,101,4,152,254,245,254,95,1,153,252,60,248,72,251,163,3,177,10,247,7,228,1,19,6, +3,11,181,4,31,0,59,3,249,1,28,255,131,3,53,7,185,4,182,1,196,255,209,255,92,4,20,8,31,5,187,254, +229,251,124,255,131,3,21,2,38,1,91,3,190,0,27,253,251,255,108,255,121,250,56,255,247,5,67,255,125,247,47,250, +110,252,237,251,175,0,221,4,137,0,57,249,56,248,19,255,66,3,168,253,209,251,156,4,70,6,150,254,49,255,226,2, +51,255,139,0,42,5,162,253,230,248,131,5,84,13,183,4,208,252,132,251,75,253,245,2,67,3,171,251,13,253,181,5, +62,2,33,249,24,251,187,0,112,255,42,251,188,248,127,250,66,255,227,255,237,252,178,253,210,255,129,255,10,0,77,255, +216,250,189,249,5,253,159,254,95,1,252,5,28,4,129,255,35,3,105,8,26,4,96,251,97,247,143,249,210,255,227,3, +129,0,24,252,141,253,133,254,120,250,240,249,184,255,138,1,243,252,234,249,73,248,104,245,16,248,175,254,114,252,205,246, +102,253,198,5,173,254,205,244,155,248,130,255,175,252,95,245,191,241,227,244,163,253,9,2,44,250,226,240,109,246,116,5, +115,8,66,251,227,242,47,251,176,4,198,1,200,250,61,250,106,253,72,253,248,248,43,247,238,251,203,255,82,253,191,250, +110,250,63,249,173,250,83,253,130,249,232,246,235,253,183,0,165,248,161,245,203,250,132,252,167,252,216,253,143,249,146,246, +36,255,223,6,235,255,230,244,211,245,233,255,226,4,149,0,16,252,206,251,80,252,119,254,11,2,109,1,176,255,200,1, +28,1,30,253,144,253,155,253,128,249,255,250,22,0,9,255,122,254,147,2,151,2,166,255,68,254,236,250,44,250,41,0, +208,2,13,0,207,255,178,0,189,0,171,0,173,254,12,0,188,0,160,247,195,5,218,53,134,47,143,218,254,192,131,15, +27,51,18,254,255,235,9,24,15,33,55,244,43,227,67,21,66,60,154,6,103,195,37,234,136,50,36,31,191,227,90,218, +82,236,105,254,32,21,160,25,157,7,85,250,118,246,46,252,218,10,232,6,246,240,148,239,194,255,193,6,123,9,198,7, +219,251,216,250,136,4,59,0,176,250,204,255,27,247,72,234,11,250,94,18,126,22,179,14,151,254,57,241,239,2,132,27, +9,13,0,244,205,249,17,5,29,1,28,1,71,5,61,3,88,2,175,255,109,247,162,248,251,255,102,253,199,253,78,8, +12,7,138,252,38,255,236,3,98,251,139,246,240,0,252,13,39,18,134,9,131,252,64,254,164,8,199,5,108,0,138,8, +136,10,13,253,161,247,88,255,218,1,152,253,76,253,233,2,62,9,91,9,110,4,4,2,56,253,210,243,94,248,164,9, +176,9,67,252,21,1,99,15,253,10,136,254,194,255,158,8,148,10,1,2,125,247,163,247,235,251,182,245,172,241,142,252, +59,1,164,247,233,249,185,9,155,13,130,7,236,6,60,5,8,254,167,252,213,3,180,12,132,16,176,8,119,253,194,0, +102,10,244,4,232,249,187,252,93,2,165,251,58,244,205,248,214,1,229,5,41,7,217,9,8,11,204,6,102,3,186,8, +132,14,154,9,17,3,190,5,154,7,149,1,54,255,36,2,112,253,105,245,192,249,105,4,212,4,93,254,104,254,34,5, +141,9,210,7,131,4,247,4,77,6,96,3,40,0,255,0,195,1,5,2,123,4,204,1,31,249,108,251,200,8,112,8, +224,248,138,244,114,255,75,5,222,1,63,255,60,254,115,253,95,1,119,6,164,1,226,246,75,248,239,4,188,5,42,249, +26,248,234,2,167,2,135,252,27,2,51,6,245,253,29,250,220,251,218,246,47,250,220,12,97,13,244,244,71,238,91,3, +179,14,168,5,78,0,99,4,144,3,17,253,158,251,55,254,81,252,113,247,170,245,71,248,126,255,188,4,158,254,210,247, +56,255,156,7,101,1,81,248,52,250,73,2,93,5,90,1,24,1,103,6,174,1,43,247,141,251,202,4,58,0,241,248, +80,249,60,254,36,6,198,4,224,247,210,248,226,4,68,0,53,248,179,253,129,250,176,239,1,246,232,255,143,253,156,255, +116,5,230,254,138,245,105,244,108,245,98,251,139,7,253,6,192,247,56,246,249,4,179,3,81,242,250,241,77,2,33,10, +131,7,127,2,88,254,71,255,151,254,176,249,188,253,182,2,155,251,144,251,215,2,119,249,102,239,152,244,29,245,194,249, +37,14,84,15,19,253,30,251,51,250,155,238,214,247,126,10,141,5,208,251,74,0,175,7,104,9,223,250,254,226,231,227, +77,250,179,3,252,254,101,249,208,248,71,2,51,1,191,235,227,234,87,4,67,7,90,246,174,247,30,2,20,2,164,252, +138,246,198,247,230,3,34,10,192,3,102,251,172,248,144,1,171,10,79,254,81,239,251,248,76,4,71,252,228,245,101,253, +144,5,52,2,229,245,2,245,246,3,116,8,185,0,177,0,197,253,112,245,223,253,212,5,17,249,97,249,226,13,101,13, +52,251,62,247,194,252,44,2,50,8,29,4,208,250,118,253,123,2,136,255,147,255,88,2,254,0,93,1,190,0,128,250, +240,251,107,4,79,1,95,250,173,255,128,2,3,253,137,3,36,13,3,2,127,247,51,2,243,5,139,249,193,250,203,5, +11,2,224,250,14,254,115,1,29,2,238,0,243,251,88,253,91,3,84,255,130,254,189,11,19,14,81,2,100,2,163,8, +213,3,142,253,167,252,21,254,147,2,39,3,232,255,132,4,110,7,76,1,178,5,160,15,83,8,224,0,57,7,174,4, +28,252,156,1,37,5,58,254,43,1,70,8,142,3,71,1,171,7,179,6,171,255,197,255,37,6,3,11,120,9,174,4, +223,5,2,10,207,7,42,5,204,6,87,4,173,0,245,4,164,7,223,0,59,253,201,1,12,4,198,4,42,10,239,9, +61,254,58,248,40,0,106,6,102,4,63,2,215,255,112,254,88,5,193,9,169,0,33,252,46,5,179,6,89,254,150,255, +44,5,234,0,151,252,151,0,15,5,197,6,88,6,151,1,87,254,147,3,143,10,62,9,114,1,161,253,23,2,135,5, +151,1,53,255,73,2,10,2,37,255,194,255,72,254,149,250,46,255,253,6,132,5,109,1,33,3,192,2,132,253,70,253, +91,3,238,5,20,2,39,0,146,4,78,7,213,2,127,254,197,254,251,254,48,0,249,4,132,5,116,255,185,253,165,2, +238,3,194,254,113,250,45,252,157,1,65,3,15,255,172,253,248,2,156,5,251,0,151,253,182,255,201,0,111,254,128,254, +208,1,183,2,207,0,111,255,98,253,107,251,207,254,21,4,51,2,74,252,118,251,177,254,142,0,167,255,114,252,197,250, +130,254,24,2,15,255,147,250,245,250,202,253,182,255,176,255,240,253,42,255,74,4,101,4,239,254,130,255,130,4,26,2, +157,252,190,252,156,252,73,250,136,252,237,254,95,252,33,252,22,254,201,251,91,251,179,255,185,255,171,253,101,1,85,4, +79,1,16,254,204,252,92,253,48,255,48,253,159,250,11,255,21,2,231,253,110,253,235,255,19,252,232,250,163,1,49,3, +118,254,105,253,248,254,226,0,104,2,195,253,85,248,187,252,197,2,64,1,66,255,56,255,174,252,193,250,108,251,147,252, +95,255,134,1,119,0,32,1,147,2,94,255,114,253,67,0,85,0,30,255,169,0,231,252,67,246,170,250,78,2,216,253, +122,248,69,254,222,1,36,252,98,250,252,254,68,255,223,252,21,254,236,254,144,254,24,1,173,1,28,253,98,251,31,254, +38,254,46,252,76,253,94,0,80,1,125,253,114,248,129,249,52,253,5,252,138,251,167,254,18,253,174,250,139,255,141,1, +68,252,58,252,156,0,2,255,210,251,188,252,98,254,3,0,74,0,205,252,21,251,210,253,17,255,240,253,47,253,223,252, +125,254,133,255,195,251,88,250,214,254,202,254,232,250,238,253,40,2,36,255,185,251,135,252,13,255,118,2,175,1,214,250, +107,248,47,253,36,0,245,0,58,1,87,252,179,248,193,254,128,3,67,254,133,250,170,254,76,2,174,1,13,0,25,255, +242,255,196,1,188,1,188,0,58,0,47,255,177,255,188,2,128,2,181,253,50,251,140,252,245,253,247,254,162,255,152,255, +56,0,105,255,202,251,224,251,22,1,113,2,72,254,210,251,1,253,143,255,188,0,28,254,132,252,92,0,201,2,237,0, +185,0,223,255,128,252,227,254,232,3,90,1,143,254,171,1,218,0,4,253,72,0,49,5,246,3,33,1,168,0,130,2, +225,3,159,254,36,248,100,252,83,4,87,4,37,3,187,4,104,2,207,255,82,2,148,3,26,2,159,2,155,2,7,1, +19,2,78,3,78,1,199,255,125,0,232,0,82,0,84,255,209,254,216,254,29,254,211,254,130,2,244,2,3,255,133,255, +252,3,254,3,15,2,225,2,164,2,160,1,180,2,102,1,53,254,121,0,203,4,53,3,252,254,180,253,201,254,79,0, +193,255,129,253,181,254,12,2,184,1,88,1,201,4,66,6,104,4,166,3,93,2,80,0,157,1,121,2,88,254,212,251, +255,255,79,5,177,5,3,2,168,255,220,255,254,253,119,252,252,1,135,7,137,4,243,0,76,2,146,2,5,2,25,3, +191,1,60,0,79,3,230,5,199,4,251,2,47,1,163,1,0,5,173,4,253,0,33,0,175,255,224,255,235,4,233,5, +239,254,238,253,43,3,93,1,92,253,88,0,109,3,54,2,45,1,85,1,14,2,225,2,204,2,181,3,186,4,200,2, +210,1,154,3,74,3,129,2,252,2,134,0,245,255,144,5,143,6,172,0,32,255,175,1,86,3,32,5,95,2,187,251, +75,253,95,3,212,1,97,0,33,5,204,4,178,255,170,1,8,7,24,6,218,1,172,0,227,1,177,1,217,255,192,255, +137,0,20,254,208,251,241,254,88,2,36,1,109,0,28,2,227,0,155,254,24,1,92,3,97,0,195,255,175,3,254,2, +48,0,239,3,200,6,66,2,51,255,28,0,171,255,236,255,149,0,36,254,26,254,113,2,172,3,6,1,214,254,249,254, +117,2,89,4,51,2,23,4,57,6,94,255,60,253,50,5,76,3,222,251,151,1,218,5,6,254,204,251,238,254,184,252, +254,253,248,1,198,254,159,253,98,1,21,255,190,252,216,1,32,5,176,3,222,1,149,255,51,255,169,255,112,253,167,254, +171,2,117,0,228,254,190,3,213,3,5,255,92,254,160,254,203,253,160,253,170,251,47,253,24,3,195,0,206,250,12,254, +4,0,75,251,242,251,174,255,71,0,125,1,40,255,30,251,20,0,102,3,188,252,151,251,213,254,48,251,23,252,208,1, +121,253,213,249,254,255,9,0,184,250,246,253,48,3,64,2,254,254,85,252,42,253,16,255,164,251,37,250,98,255,105,0, +103,253,7,254,226,252,230,250,179,254,120,255,144,250,55,251,151,254,238,252,64,251,210,251,159,252,60,255,7,1,128,255, +221,253,172,252,183,251,221,251,4,252,136,254,48,2,212,255,119,253,171,0,175,253,65,248,116,254,217,0,133,246,69,247, +106,3,203,2,43,249,118,246,27,250,172,254,186,254,135,252,224,255,129,255,40,248,251,252,114,7,7,2,102,251,241,253, +160,249,244,246,137,0,249,1,215,250,192,252,255,254,211,252,197,255,29,255,111,248,197,250,34,2,28,3,156,0,41,253, +89,252,148,255,160,253,116,250,223,254,144,255,136,253,167,4,194,3,220,244,65,243,214,253,152,255,6,255,45,0,21,252, +56,251,189,253,79,250,246,248,27,252,150,253,110,3,42,6,216,251,216,249,234,3,53,1,156,251,179,1,34,254,227,245, +186,0,177,7,88,250,160,246,161,0,101,255,9,249,79,252,6,1,195,1,50,2,250,1,132,0,34,254,5,253,241,0, +113,4,55,1,167,253,166,252,138,249,52,249,134,254,246,255,61,254,138,2,38,5,225,252,184,246,51,253,50,3,175,254, +18,250,153,252,28,0,75,1,35,0,9,252,162,252,116,4,114,4,236,250,85,251,128,4,4,4,254,254,170,2,204,5, +75,255,225,250,189,1,96,7,92,255,115,247,47,255,34,6,15,254,253,250,191,3,115,0,136,244,40,251,64,10,4,7, +222,252,182,255,195,1,87,249,176,250,40,5,178,255,174,249,83,11,33,17,134,249,151,246,247,9,1,1,253,240,205,255, +37,7,232,246,122,248,73,9,82,11,72,5,115,0,101,252,143,254,235,0,130,0,72,4,151,4,88,3,147,9,152,3, +77,245,53,255,109,9,178,250,165,250,1,11,55,5,68,252,37,1,24,0,36,3,171,5,84,245,85,0,57,38,209,18, +116,228,202,248,111,30,125,12,34,233,213,221,141,242,73,24,25,21,183,242,237,253,179,25,67,11,154,254,214,254,129,239, +197,2,37,44,218,9,19,211,171,245,106,33,209,0,25,235,50,16,50,28,33,250,210,244,229,15,166,5,201,226,149,241, +107,26,50,22,137,2,227,10,88,5,183,235,67,247,131,22,26,11,67,237,29,248,65,23,215,14,138,231,87,229,103,18, +35,36,25,252,130,225,183,254,100,23,205,3,166,244,94,2,99,9,171,7,51,12,133,2,117,245,200,3,156,12,169,249, +98,243,102,253,147,253,154,2,183,16,208,16,106,2,148,246,74,0,16,19,239,2,193,233,181,252,22,14,64,5,131,21, +143,27,12,242,70,229,118,250,14,251,151,11,2,30,84,245,117,218,15,250,228,6,106,4,85,17,75,5,58,252,227,18, +18,9,124,237,68,251,59,9,140,4,218,3,45,243,129,242,198,24,230,16,46,231,158,253,7,25,13,250,65,243,154,10, +52,252,16,240,131,8,124,19,59,8,8,3,254,2,151,255,88,247,226,250,135,17,248,15,13,242,251,244,16,11,95,252, +218,236,163,1,198,16,240,5,134,250,209,250,100,1,113,254,253,241,156,247,181,14,155,26,114,18,14,251,133,241,123,15, +30,26,52,235,77,222,72,18,31,29,57,239,231,222,197,244,254,13,148,28,121,11,207,245,44,10,56,22,127,239,178,219, +190,246,56,5,55,4,100,15,232,11,199,250,68,4,220,13,205,242,47,232,12,13,183,26,250,244,136,223,250,242,230,4, +16,5,163,254,157,253,46,10,12,15,24,1,206,255,137,5,169,246,48,244,113,5,41,0,239,1,148,30,216,16,207,234, +89,251,213,12,150,237,34,227,14,248,100,255,86,6,232,4,63,242,141,255,183,20,23,252,84,240,0,7,144,1,40,246, +84,255,120,243,29,243,165,21,111,15,123,242,133,4,53,13,13,247,13,2,217,11,102,241,104,240,240,1,91,251,78,255, +109,9,109,247,95,241,51,1,146,252,94,243,155,249,69,251,110,247,40,238,22,235,196,13,254,40,88,11,164,248,249,9, +137,252,84,236,195,6,114,8,220,231,99,236,85,0,53,246,166,236,134,240,178,243,63,254,220,6,36,5,62,11,222,10, +39,242,223,231,83,254,224,12,140,5,147,0,82,255,82,249,212,251,223,7,122,4,182,241,216,236,182,245,217,247,42,252, +255,9,241,8,247,243,62,236,63,3,2,28,231,14,165,232,177,225,4,0,63,12,201,248,149,241,64,3,183,11,199,254, +193,249,23,7,130,7,130,246,252,243,222,247,235,237,192,242,221,8,160,8,124,0,224,7,98,254,107,236,157,252,231,13, +237,255,218,252,158,12,171,9,117,253,221,251,149,249,13,250,34,2,97,255,144,243,233,242,103,249,90,249,219,246,253,251, +52,5,182,5,109,255,57,255,59,1,56,253,72,249,235,246,131,244,76,248,48,254,46,0,236,3,83,3,149,251,162,255, +135,8,52,255,206,246,241,254,27,255,53,247,240,251,244,2,175,3,223,5,171,3,75,0,152,7,226,10,203,1,112,252, +110,251,44,250,139,254,175,1,203,3,104,15,39,17,192,254,52,248,211,1,68,0,196,249,190,252,204,1,30,7,135,5, +86,246,29,244,81,6,141,9,131,255,98,6,93,15,44,6,240,251,122,250,160,251,166,0,222,6,159,9,197,10,102,7, +96,0,242,253,233,253,129,253,215,255,120,254,79,251,93,4,71,13,201,3,173,250,65,1,49,5,33,254,47,248,157,248, +112,0,133,11,115,11,60,2,80,2,82,8,111,5,150,1,126,3,6,253,118,242,239,249,153,7,38,3,169,252,65,4, +93,6,191,255,204,2,109,7,86,3,185,2,123,3,211,254,224,0,158,4,137,253,150,253,136,9,203,10,214,6,158,9, +149,3,242,250,224,2,178,6,231,250,18,252,253,10,140,12,102,4,199,0,38,253,66,250,70,253,121,255,94,254,176,0, +38,5,238,3,143,252,156,247,38,252,185,5,182,9,136,5,17,1,126,2,23,4,9,255,168,251,94,2,144,7,26,1, +161,250,236,253,217,1,245,254,229,252,20,1,166,2,135,253,132,253,131,4,197,4,167,255,118,255,148,254,146,251,228,254, +115,0,227,250,10,253,42,4,218,255,68,250,143,255,135,3,228,0,247,254,145,253,31,254,175,3,131,7,82,6,176,3, +146,255,62,253,111,0,175,3,8,5,34,6,193,1,146,251,162,254,234,3,80,1,166,255,195,3,94,4,171,0,90,1, +136,6,215,6,145,255,60,252,185,1,128,2,193,252,45,0,131,8,132,6,88,3,28,8,153,7,99,255,227,252,89,255, +190,255,232,1,80,6,222,5,15,1,51,255,142,1,115,2,128,0,151,1,94,6,95,8,109,7,105,6,11,2,77,252, +240,253,137,4,66,7,253,6,7,6,255,1,171,254,227,0,211,2,169,255,42,253,173,254,81,0,119,1,19,3,60,2, +109,0,28,2,31,3,225,255,141,254,184,255,211,253,167,252,111,254,212,252,202,251,59,1,123,3,248,255,240,0,199,2, +89,0,245,1,213,2,146,250,14,249,122,2,203,0,138,247,78,252,43,5,201,2,77,255,222,255,139,255,65,2,62,5, +16,0,17,251,247,253,171,0,132,0,216,0,70,255,90,254,108,0,75,253,191,247,113,252,252,2,248,253,205,248,34,253, +21,255,153,250,107,250,154,254,27,254,104,249,45,248,221,252,111,1,95,0,102,254,58,1,103,3,124,0,82,254,19,255, +249,254,70,255,100,0,255,254,201,254,85,2,177,1,139,252,237,252,161,0,48,255,91,253,155,255,64,255,122,251,138,251, +197,254,69,255,179,253,206,253,128,254,156,252,244,249,94,250,199,251,182,251,225,253,132,1,222,255,178,251,91,252,43,254, +75,252,38,251,45,253,160,254,183,253,185,252,8,255,29,3,144,2,34,255,7,0,229,0,206,252,41,252,162,0,173,0, +204,253,143,253,254,251,163,250,89,254,247,255,181,252,241,252,58,254,226,249,87,247,85,251,1,254,144,252,104,251,15,252, +112,254,38,1,19,1,242,253,201,249,97,248,248,252,215,0,190,252,73,250,10,1,9,5,48,0,237,251,191,250,7,251, +157,255,188,1,50,251,84,248,218,254,216,1,83,255,13,255,192,252,80,248,166,252,119,5,71,5,227,254,155,250,26,249, +202,250,232,252,52,251,206,251,108,0,209,253,77,248,23,255,176,6,109,254,176,246,225,253,240,2,247,252,197,249,90,252, +198,253,246,255,160,2,234,1,132,2,190,4,176,0,70,250,167,249,163,250,78,252,93,2,214,3,110,254,218,0,212,6, +218,255,122,249,185,1,223,3,4,250,158,252,149,6,42,0,230,249,197,8,109,17,173,251,27,233,50,2,66,44,102,38, +184,241,243,217,77,250,77,20,248,3,39,243,195,0,232,17,43,8,189,243,89,253,54,29,41,24,0,235,124,223,186,9, +162,35,44,7,175,224,150,223,204,254,63,25,249,22,227,6,25,5,184,13,39,10,57,255,244,254,41,1,178,250,39,249, +49,3,169,9,71,4,208,248,49,243,162,253,0,10,92,2,63,245,18,248,102,252,146,250,119,4,206,17,254,10,102,253, +112,255,105,7,159,6,92,0,187,251,154,252,14,2,138,5,4,6,17,7,115,5,102,0,122,255,126,1,242,254,48,253, +38,2,98,4,26,0,52,0,149,4,197,2,168,254,221,255,126,0,41,255,204,2,190,5,195,0,57,253,112,255,192,253, +27,250,239,253,191,2,77,1,238,0,86,2,90,253,225,248,118,255,131,6,8,3,150,255,153,3,80,4,213,253,162,250, +166,254,56,4,182,6,77,4,11,1,49,3,223,5,34,2,88,255,172,3,10,7,112,4,186,255,159,250,164,247,114,250, +156,254,61,254,21,251,25,249,115,251,120,1,242,2,91,254,129,254,153,3,106,2,7,254,43,0,44,3,71,1,83,2, +21,7,146,4,148,252,219,252,16,4,17,4,121,253,227,252,246,0,96,254,44,247,170,246,19,254,244,4,168,5,57,2, +82,0,96,2,185,5,139,6,13,4,17,2,98,3,203,3,211,0,203,255,243,0,138,254,150,251,155,253,8,1,82,2, +189,0,128,251,63,250,154,2,68,8,234,3,115,1,125,4,211,3,182,255,28,253,255,251,222,253,167,1,111,2,19,1, +165,254,25,250,171,249,132,255,65,2,2,0,161,254,70,254,132,0,19,5,39,3,38,255,96,5,69,9,172,253,182,245, +131,253,246,2,196,254,204,252,237,253,254,252,42,253,120,255,17,1,30,2,96,1,220,253,216,251,193,252,44,253,108,252, +192,249,191,245,28,250,14,8,93,12,250,1,49,254,169,4,89,4,108,0,230,0,230,250,212,243,203,253,50,9,118,2, +180,249,105,249,172,249,14,1,75,13,177,8,199,250,194,250,245,255,14,255,15,1,161,4,44,3,72,1,214,253,58,250, +73,1,89,8,213,254,96,246,135,255,73,8,107,4,60,254,166,249,162,246,153,252,32,8,65,10,142,1,247,249,225,247, +219,248,55,254,18,4,219,0,228,250,168,255,105,6,19,1,167,247,164,245,116,250,240,1,149,5,75,2,142,0,180,0, +244,251,199,253,200,7,234,1,223,243,155,251,158,8,133,3,235,255,50,3,60,253,87,249,99,251,201,246,249,0,62,26, +122,13,106,232,72,243,9,20,167,2,249,224,69,237,43,14,38,21,73,5,96,251,155,5,190,10,7,245,254,232,73,0, +45,18,128,6,177,244,96,240,168,3,87,20,103,244,161,218,177,14,74,49,210,245,180,213,36,6,163,16,67,232,159,233, +205,7,135,12,87,1,233,252,37,10,171,16,159,233,233,201,138,241,173,29,96,15,44,244,205,238,91,253,198,18,85,1, +242,223,84,254,69,37,205,255,59,221,123,248,159,11,66,6,47,4,148,245,250,242,75,14,241,10,24,240,252,255,50,22, +49,5,106,249,16,255,205,249,235,247,48,0,56,3,168,6,56,4,44,246,8,249,91,9,221,4,189,246,226,245,143,253, +157,9,33,10,51,248,246,249,170,13,223,0,50,237,95,2,226,17,182,252,94,245,101,5,189,7,88,255,173,251,244,252, +76,6,188,12,116,5,185,252,198,245,102,242,119,255,86,8,155,250,176,248,52,8,91,5,76,253,231,1,203,252,69,253, +41,19,222,15,115,243,133,243,226,255,158,251,252,0,95,7,8,250,118,252,147,12,44,1,130,245,249,3,45,8,136,1, +251,7,12,6,106,250,112,253,143,253,254,244,157,254,180,11,116,7,73,5,54,5,116,253,39,255,210,2,241,249,22,254, +38,10,245,252,52,244,74,9,216,14,8,254,128,3,26,18,19,9,236,253,219,0,155,1,38,254,114,253,153,253,221,254, +198,255,235,255,14,5,67,9,44,4,16,255,35,255,159,254,206,255,218,1,152,255,198,1,188,9,59,8,6,0,192,254, +250,255,99,255,73,1,180,1,212,254,139,253,93,252,215,253,77,6,135,9,248,1,123,254,144,1,85,2,34,3,220,1, +199,250,85,252,116,8,192,9,202,1,228,2,198,5,27,0,215,252,118,255,129,0,150,1,183,1,191,252,56,252,54,3, +226,2,199,252,239,0,72,7,225,1,99,254,224,5,90,7,212,254,9,252,151,255,78,1,146,3,168,4,142,255,88,251, +83,252,3,254,152,2,21,8,42,4,140,253,0,0,248,1,56,254,230,255,178,3,188,0,141,255,209,3,27,2,32,252, +180,253,38,1,157,253,11,253,252,3,84,4,193,253,160,0,123,8,245,3,156,250,29,252,93,0,61,253,124,251,102,0, +243,3,78,2,116,254,51,251,242,252,134,3,255,3,131,250,96,246,86,0,63,8,160,2,248,253,234,3,26,7,60,1, +52,253,75,254,103,255,36,0,22,255,53,252,236,253,93,1,116,254,179,252,176,1,157,2,189,255,9,3,73,4,226,252, +34,250,115,254,255,254,55,255,94,2,175,255,4,252,18,2,247,6,217,0,200,251,144,254,87,0,203,254,219,254,166,255, +35,255,41,255,92,255,96,253,132,251,234,253,203,1,156,1,211,255,16,1,77,2,33,1,125,0,42,255,112,251,6,251, +213,254,27,255,15,252,105,252,185,253,13,251,79,249,160,253,140,2,104,1,231,253,221,254,217,1,147,1,64,0,168,255, +30,253,65,251,92,253,196,254,200,253,224,253,11,253,59,252,228,1,53,7,24,2,165,252,117,0,128,3,243,0,248,0, +2,3,57,1,96,254,181,253,229,253,52,254,68,254,152,254,173,255,102,254,11,251,246,250,172,251,212,250,214,254,104,3, +11,255,99,252,1,3,59,3,244,250,226,250,197,254,119,250,127,248,228,254,77,1,102,255,32,1,197,0,155,252,116,254, +177,3,1,2,80,253,190,252,149,252,14,250,86,249,44,252,246,254,88,254,13,252,192,252,203,255,71,0,0,255,244,255, +149,1,19,1,109,255,192,253,221,252,137,253,172,253,143,252,50,253,24,255,196,255,37,0,88,255,30,253,75,255,155,3, +98,0,64,252,8,1,112,2,11,250,71,248,247,254,191,255,130,254,239,1,11,1,158,253,180,0,149,1,204,251,89,251, +144,255,128,255,207,255,117,2,157,0,168,252,244,251,136,253,105,0,102,0,135,251,233,251,32,2,211,0,16,252,222,254, +132,0,200,253,185,0,103,2,36,251,162,248,50,254,110,255,21,254,127,255,185,255,244,0,187,3,12,1,30,254,11,1, +191,0,32,253,141,254,140,254,188,250,101,253,98,2,147,1,217,1,124,3,249,0,205,0,91,2,208,253,231,252,1,5, +180,6,196,255,224,252,18,254,170,255,77,1,170,254,24,253,29,3,13,3,191,249,85,251,47,5,163,3,219,254,73,2, +154,2,217,254,13,0,38,255,166,250,201,253,75,3,81,1,11,255,78,0,35,0,131,0,47,2,106,1,237,0,120,2, +50,3,105,3,46,0,55,248,232,247,45,2,168,6,166,2,191,0,236,254,242,252,184,1,227,3,98,252,255,250,40,3, +116,4,82,0,119,1,234,1,237,254,35,1,131,6,76,7,111,4,234,255,159,251,57,252,34,0,63,2,32,3,229,2, +102,0,128,255,171,1,249,2,252,2,148,2,225,0,175,0,124,2,244,0,118,254,227,1,246,5,95,3,151,255,78,0, +35,2,21,2,4,1,194,0,41,3,206,5,4,4,127,0,250,0,204,2,174,0,39,253,201,253,73,2,62,5,133,3, +226,0,92,2,145,5,71,4,108,255,102,254,20,3,128,6,93,4,160,1,157,2,73,4,106,4,51,5,38,6,170,4, +82,2,212,1,252,1,216,0,228,255,250,1,128,5,24,5,105,1,66,1,97,4,155,4,13,3,96,3,231,2,93,1, +152,2,27,4,109,2,75,1,155,2,180,3,226,4,21,6,111,4,48,1,140,255,243,254,222,255,91,2,247,2,191,1, +84,1,246,0,41,1,136,3,167,5,236,5,205,4,198,1,17,0,255,1,220,1,186,255,6,3,160,6,118,2,245,254, +138,1,33,1,110,253,108,255,165,4,50,5,196,1,157,255,144,1,193,4,20,4,108,1,1,1,171,0,247,255,174,1, +99,2,78,0,31,1,200,3,164,1,164,253,82,254,165,2,134,5,206,2,247,252,225,252,20,2,146,2,7,255,254,254, +111,0,108,0,165,1,184,1,0,254,140,252,231,255,210,1,187,0,103,1,170,3,101,2,185,253,107,252,254,255,39,1, +123,254,124,255,176,3,7,3,159,254,230,252,51,253,26,253,197,253,234,254,11,255,215,254,39,255,198,255,69,0,175,255, +137,253,141,251,153,252,75,0,26,1,160,252,232,249,237,253,73,2,202,0,198,252,154,251,18,254,51,1,129,1,46,255, +114,252,37,250,84,250,88,253,27,254,212,252,202,255,228,2,93,254,250,248,181,250,132,254,88,0,7,2,114,1,17,253, +132,249,95,250,24,254,16,0,36,254,224,252,1,254,114,252,44,250,150,252,94,254,41,252,26,252,141,253,102,252,79,252, +115,252,74,249,37,250,91,0,103,0,87,251,121,251,137,253,20,252,129,251,22,253,81,253,233,251,196,250,59,253,137,2, +110,2,195,252,13,251,161,252,1,252,174,252,136,254,146,252,183,250,51,252,107,253,94,255,113,1,18,254,231,249,133,251, +143,253,202,253,232,254,5,253,132,250,86,254,134,0,63,252,87,252,38,255,55,251,166,249,41,0,38,3,65,1,25,0, +102,251,150,246,238,249,186,252,97,249,77,250,99,254,143,252,237,251,157,1,200,2,202,253,97,253,141,0,179,254,13,251, +141,252,148,254,119,252,21,253,31,1,206,253,23,247,82,250,253,254,167,250,16,251,162,3,169,2,19,251,109,252,250,255, +85,254,111,254,128,254,179,252,242,0,199,3,104,251,245,247,238,0,128,2,138,250,117,251,196,1,181,254,246,248,182,252, +74,3,247,0,79,251,145,254,181,3,205,253,198,247,140,253,71,1,156,252,227,253,159,2,254,254,218,252,151,1,19,0, +160,251,212,0,251,4,3,254,130,249,161,254,72,1,241,252,116,251,176,0,69,4,232,1,149,255,245,0,41,2,15,1, +138,254,13,251,247,250,56,0,116,2,180,255,33,0,48,1,58,255,25,3,69,8,194,1,38,252,26,2,119,3,220,254, +10,1,248,255,50,249,226,253,66,4,245,253,138,253,62,6,153,4,237,255,74,1,216,253,206,253,172,6,242,2,123,249, +139,1,29,8,136,255,226,253,126,2,153,0,43,2,185,3,136,254,93,2,41,6,39,250,89,249,19,4,218,249,160,249, +156,28,104,32,131,244,240,236,130,19,224,23,112,238,176,216,192,245,244,27,58,21,185,245,119,250,70,19,69,14,71,3, +102,7,252,252,8,248,13,17,220,12,178,231,199,243,109,20,36,251,166,236,125,31,216,40,226,235,36,228,101,23,127,18, +33,229,89,238,137,18,126,14,43,2,168,15,209,15,34,249,41,247,122,6,195,1,101,245,231,252,237,10,179,13,15,6, +186,247,128,242,74,1,49,12,8,4,153,254,32,1,167,251,216,249,155,8,36,16,203,3,22,254,127,9,249,9,129,247, +10,245,100,12,70,19,173,252,157,242,60,255,134,2,55,254,29,5,222,8,146,1,232,254,104,4,184,7,160,1,121,247, +73,254,60,21,161,23,39,2,97,249,70,249,175,238,97,244,185,12,210,13,119,1,103,7,247,5,236,243,46,247,229,7, +29,6,61,3,93,9,148,0,206,243,238,253,67,10,108,255,3,245,157,4,245,20,109,7,231,246,197,3,243,13,12,252, +208,244,176,1,66,252,210,243,152,6,89,13,225,247,181,249,101,18,223,15,14,254,209,0,239,5,244,250,147,246,133,2, +219,7,105,255,115,253,18,5,129,4,124,255,132,2,222,2,244,253,227,255,95,0,148,253,195,6,173,9,189,248,251,251, +137,23,99,20,216,244,20,237,15,252,86,2,131,252,246,247,177,5,222,29,255,22,67,247,127,245,214,4,187,246,96,235, +173,255,160,6,146,252,67,9,107,14,144,243,97,244,166,22,43,16,135,236,16,245,90,19,184,8,198,235,159,237,138,4, +244,14,218,3,137,245,57,249,75,4,254,1,70,1,173,13,64,14,18,255,140,245,7,237,206,227,236,238,115,7,122,18, +171,15,132,18,247,31,126,21,16,227,152,207,209,248,68,3,235,231,187,4,213,40,164,250,165,211,143,253,108,36,48,20, +238,243,144,232,54,250,164,7,125,0,114,9,156,11,21,229,224,230,108,31,192,26,184,236,55,253,9,15,85,229,46,224, +81,22,231,25,126,231,47,232,60,20,230,10,65,227,223,246,130,25,115,253,90,220,134,235,58,252,174,2,179,19,143,19, +181,1,115,2,10,9,184,255,11,246,245,243,142,245,225,248,128,246,192,241,253,241,39,245,50,255,205,5,9,250,87,252, +49,23,16,14,249,228,155,233,145,12,143,10,10,246,250,241,198,245,133,5,76,22,30,5,150,235,100,243,107,254,98,245, +175,247,255,7,140,10,212,2,10,0,173,255,252,249,40,238,36,236,95,254,12,11,81,1,98,251,115,3,219,2,224,249, +172,250,3,1,142,0,114,252,65,253,56,0,80,251,249,243,69,248,104,255,213,253,20,2,61,13,161,6,215,243,190,242, +215,255,26,6,194,6,192,7,128,5,31,1,208,252,45,247,121,245,29,251,13,254,180,248,80,245,92,250,140,0,213,1, +168,0,212,255,51,0,144,2,3,3,88,252,97,245,108,249,51,2,184,0,19,248,228,246,154,253,101,0,216,252,175,252, +191,2,183,4,66,254,191,248,208,249,242,252,10,254,38,253,104,253,12,1,34,3,171,0,175,0,125,4,201,3,218,255, +16,1,247,4,169,3,79,254,77,253,225,2,69,5,79,255,126,252,116,2,173,4,152,255,191,254,192,1,78,255,223,251, +149,254,164,0,90,253,177,253,236,4,154,7,85,2,5,1,89,5,191,4,255,1,135,3,247,255,153,248,124,254,144,8, +116,3,132,255,174,9,168,8,213,247,189,244,247,253,42,253,11,253,92,10,86,17,237,7,100,255,226,253,94,250,203,246, +8,250,222,255,136,1,61,255,93,253,143,0,136,6,80,5,2,253,122,250,224,254,11,0,84,0,39,5,34,6,199,0, +145,255,149,2,153,2,252,1,119,1,76,253,123,252,183,3,22,6,95,253,195,248,198,1,3,11,39,6,50,252,101,255, +95,9,165,5,84,251,128,254,143,5,160,0,127,251,90,0,213,5,204,7,215,7,38,3,151,253,31,253,129,255,55,3, +194,4,17,255,156,252,178,3,252,1,103,245,202,245,5,0,95,255,185,252,219,2,65,4,57,0,70,4,179,9,5,5, +203,253,161,252,239,254,136,0,154,0,23,0,202,254,198,253,29,1,174,3,199,252,165,248,99,3,125,9,74,253,180,243, +225,248,187,254,133,254,148,253,220,254,88,2,127,2,28,253,106,253,15,5,29,5,225,253,93,253,38,2,88,3,177,1, +193,255,178,254,218,0,53,4,88,4,170,1,130,255,214,255,155,1,204,1,46,255,219,251,76,252,4,2,201,5,137,3, +201,3,60,7,70,3,6,253,249,254,131,0,136,253,126,255,68,2,182,0,255,3,229,7,135,2,44,255,63,2,135,0, +90,255,235,3,240,1,230,252,73,1,181,5,32,3,106,1,50,0,166,254,22,1,57,2,230,1,39,7,227,8,162,2, +88,2,244,4,222,255,219,255,126,8,201,8,195,2,123,1,148,0,33,1,47,6,73,4,94,252,108,253,12,3,85,2, +193,0,13,2,76,2,27,2,251,0,17,253,119,251,139,255,198,3,28,2,216,252,31,253,80,3,219,3,249,254,80,0, +61,4,179,1,236,254,115,0,21,1,189,0,157,0,214,254,51,254,139,255,129,255,133,0,108,3,22,3,148,1,153,3, +5,5,120,2,161,255,182,255,135,0,65,253,37,249,153,252,48,1,121,253,218,251,103,1,88,1,59,254,143,1,94,1, +223,252,189,0,223,3,60,254,121,255,255,5,102,1,225,250,61,253,21,254,219,251,38,254,225,1,62,4,124,4,124,255, +42,252,35,0,251,1,62,255,47,255,107,255,65,254,109,0,147,2,36,2,97,3,226,1,26,250,20,247,26,254,227,4, +233,3,197,254,218,253,179,3,91,6,99,254,134,246,127,250,58,1,74,252,93,244,80,251,53,7,172,3,235,251,149,255, +24,0,11,249,51,253,161,5,167,255,209,249,226,1,151,6,40,254,245,247,6,2,233,19,241,18,196,250,133,237,142,248, +249,0,156,0,100,6,197,8,231,254,246,246,14,245,172,245,152,254,42,7,150,255,226,243,17,247,66,1,215,1,231,249, +151,245,83,248,194,251,111,255,209,5,209,7,164,2,103,254,150,251,249,247,162,249,71,253,107,251,39,254,210,8,133,8, +229,251,155,248,222,254,190,252,174,245,160,249,85,4,187,5,99,253,86,249,203,255,197,5,25,1,28,252,179,2,130,6, +72,251,65,245,17,254,167,254,45,246,41,251,165,3,12,254,89,250,246,255,216,254,136,249,243,251,173,0,33,1,28,254, +12,253,3,5,116,10,192,255,9,248,213,255,37,1,2,250,92,255,146,9,16,7,114,252,192,244,64,248,218,1,143,255, +231,248,223,254,154,0,27,249,190,255,91,7,226,251,100,249,10,7,70,4,210,248,213,253,79,2,119,251,109,253,52,5, +122,252,87,243,35,14,219,46,242,13,154,207,234,225,224,34,114,22,105,224,160,240,87,32,217,22,32,239,180,235,113,15, +89,35,223,254,96,217,186,247,205,30,5,7,170,235,80,253,89,6,101,247,230,253,35,19,56,17,156,254,117,249,116,7, +60,13,239,249,81,237,72,254,4,12,219,4,71,2,186,3,215,247,146,242,231,1,139,10,209,255,94,246,121,246,246,246, +205,248,127,2,194,13,152,13,18,3,170,253,100,2,145,6,18,6,84,4,25,0,240,253,15,5,222,9,29,1,132,249, +168,254,28,4,23,2,197,255,105,255,245,253,227,252,224,254,145,2,225,3,49,3,174,4,158,3,63,250,6,244,98,250, +11,2,39,3,192,2,25,1,212,254,118,0,145,1,195,0,82,5,71,8,2,0,124,248,81,250,132,252,187,253,236,1, +144,3,31,1,83,255,130,254,149,255,133,2,249,2,167,1,17,255,109,249,200,250,13,6,19,7,196,251,225,251,246,6, +115,9,82,4,101,0,40,254,214,254,54,255,61,251,185,249,181,251,236,249,39,248,178,250,205,254,2,7,194,12,53,3, +121,249,206,0,198,7,37,4,217,3,55,4,25,0,164,3,142,6,112,250,206,244,116,1,190,6,54,255,92,253,96,254, +204,251,196,254,80,5,12,6,214,4,237,5,98,6,21,4,249,253,85,249,92,253,58,2,22,0,182,0,4,6,90,3, +56,252,75,253,153,1,114,1,57,1,203,1,142,255,150,254,29,3,129,8,59,8,26,2,231,252,69,254,49,2,112,2, +163,0,244,254,87,251,20,249,6,254,217,4,225,3,230,253,74,252,119,255,4,2,226,2,183,2,124,0,130,254,211,0, +58,5,71,6,86,3,69,255,139,253,155,0,152,3,56,254,115,245,41,247,125,1,81,5,242,0,152,255,86,2,164,0, +226,250,90,250,76,1,10,6,76,0,145,246,146,246,176,0,195,6,108,2,188,254,102,4,28,10,130,5,155,253,199,251, +244,251,14,251,65,253,147,255,68,254,75,255,98,1,253,252,11,251,101,3,137,6,128,253,176,249,20,255,1,255,57,251, +103,0,175,7,26,2,241,246,168,249,205,5,58,4,92,247,187,248,71,6,160,6,219,251,188,250,188,0,254,1,209,2, +60,5,246,1,173,252,87,252,58,252,114,252,43,2,175,3,31,252,87,251,134,1,97,253,105,246,141,251,242,1,181,1, +142,0,167,252,183,250,201,0,220,255,103,249,233,1,141,8,40,251,219,244,139,254,98,6,27,16,37,14,237,241,111,237, +34,14,204,11,141,230,42,229,184,254,4,11,179,14,59,6,46,249,0,1,83,3,30,243,98,251,13,13,176,255,8,245, +21,254,17,0,57,3,11,2,118,239,14,250,133,28,199,14,23,235,154,240,35,1,162,0,156,252,172,245,84,251,41,10, +52,255,52,250,250,16,14,254,241,207,210,227,38,21,220,21,36,1,84,248,117,252,197,8,32,249,197,222,121,250,77,25, +29,251,143,237,95,14,147,9,59,235,138,245,129,5,108,250,107,249,126,8,240,11,199,4,170,2,175,4,182,251,149,236, +157,243,54,7,87,4,78,251,118,4,170,6,247,250,176,252,31,8,70,10,53,4,70,251,234,250,46,7,154,7,107,248, +98,247,223,1,77,0,180,251,79,0,45,6,238,8,53,3,127,244,117,242,68,0,140,2,86,251,0,4,128,17,15,12, +229,254,190,252,139,1,189,3,87,0,160,249,241,249,121,4,137,8,73,255,223,251,36,4,163,5,45,254,4,252,122,255, +235,2,58,4,207,255,208,253,46,6,188,7,77,253,243,255,195,12,8,7,104,248,7,250,31,1,138,255,137,255,76,5, +196,5,189,253,160,248,204,255,221,9,171,8,24,2,192,1,69,4,98,3,158,254,45,251,155,1,194,6,23,249,198,239, +51,1,71,12,250,0,208,1,194,12,96,6,182,2,167,13,109,10,23,254,140,0,255,2,151,253,18,0,144,2,126,252, +201,254,142,9,53,8,192,250,21,246,210,2,182,12,242,2,36,250,1,1,175,1,108,252,18,8,67,16,179,254,59,244, +65,2,7,9,215,0,166,255,215,3,76,2,233,255,59,255,133,253,158,253,33,0,12,2,102,3,199,4,236,6,192,7, +21,1,100,250,175,2,78,13,240,5,179,251,18,0,19,6,114,5,251,1,26,249,59,246,154,3,223,7,48,250,121,251, +43,11,225,7,22,250,110,251,2,3,116,4,238,2,43,255,216,253,121,3,100,5,201,254,131,251,110,255,21,2,184,255, +148,253,170,1,247,6,103,3,165,252,205,253,216,0,12,255,43,255,53,2,32,2,107,1,148,2,207,0,243,251,100,250, +232,255,212,7,92,7,150,254,174,252,119,3,100,2,22,249,117,247,16,253,27,0,150,2,59,4,97,255,41,252,153,1, +44,3,11,253,102,253,203,1,134,253,133,250,216,1,246,3,220,251,225,249,148,255,139,0,115,253,1,254,193,2,51,7, +163,5,132,255,89,253,92,253,216,248,43,248,50,1,195,5,173,255,44,252,86,254,93,253,132,251,31,254,75,0,52,255, +139,254,106,255,250,0,174,1,184,255,11,255,175,1,3,0,131,250,120,252,199,2,60,2,164,255,217,0,240,254,34,250, +23,251,9,0,235,1,23,0,185,253,76,254,168,255,25,252,62,249,192,254,171,3,140,1,47,1,212,2,199,255,222,253, +48,0,196,255,55,254,199,254,11,253,16,252,127,255,147,255,79,252,143,253,106,255,168,254,26,0,154,255,175,250,135,251, +92,1,99,1,153,254,111,254,255,252,30,252,209,254,230,254,45,253,60,1,104,5,60,2,134,255,91,2,216,2,2,255, +29,254,221,0,171,1,138,255,242,253,168,254,114,255,109,254,83,254,172,255,84,253,184,249,110,253,241,2,245,255,248,251, +236,254,56,1,183,0,252,1,164,255,95,250,36,253,34,2,165,254,72,252,31,0,134,255,113,252,33,255,153,1,3,0, +181,254,7,253,199,251,120,253,75,253,150,251,59,254,111,0,150,254,82,255,228,1,29,1,68,255,28,253,223,251,241,255, +33,2,140,252,137,251,109,1,122,0,118,252,74,255,116,255,208,249,164,250,176,255,126,254,148,251,76,253,51,0,26,1, +36,0,31,255,35,0,185,0,134,255,47,0,11,0,232,250,249,248,187,254,131,1,146,254,18,255,224,1,236,0,14,0, +21,1,146,255,173,253,180,254,98,255,3,0,132,2,171,1,120,253,170,253,79,255,67,252,12,252,178,1,79,2,58,253, +124,252,97,255,81,0,247,255,242,254,4,254,253,254,5,255,161,253,185,255,106,2,77,255,104,251,37,254,239,3,77,4, +215,253,195,249,144,254,178,2,61,254,118,251,166,0,6,4,191,1,69,255,138,253,191,253,135,1,131,2,125,254,199,253, +170,1,119,3,195,2,126,1,106,255,47,255,235,0,249,255,216,253,224,254,58,0,183,255,176,0,126,2,160,1,226,255, +51,0,194,1,161,2,251,0,98,253,206,252,53,0,222,0,176,253,234,253,182,1,224,2,57,2,120,2,47,1,28,255, +215,254,214,253,56,253,160,1,152,5,107,2,59,254,158,254,67,255,121,254,151,255,30,2,41,3,24,2,214,255,28,254, +137,254,144,0,98,1,216,255,158,255,134,2,183,2,102,254,13,254,50,3,118,4,26,1,192,0,116,2,37,1,201,254, +212,254,145,1,148,5,111,6,75,2,52,255,45,0,166,0,145,0,179,2,121,2,138,254,7,255,223,3,188,3,240,255, +27,0,15,2,231,1,92,1,9,0,27,255,194,2,149,5,170,1,222,255,38,4,12,4,194,255,76,0,238,1,140,0, +132,1,47,3,223,0,60,255,39,0,171,255,100,255,126,1,156,3,169,4,25,4,85,2,233,2,248,4,67,4,73,2, +127,1,27,1,159,1,235,1,179,0,27,2,110,5,184,3,18,0,75,1,42,3,140,2,7,3,247,2,180,0,154,0, +32,2,207,1,164,1,33,2,16,2,206,3,83,5,64,2,130,255,88,1,149,2,192,1,68,2,231,1,161,255,40,0, +188,2,142,2,139,1,147,2,86,2,241,255,197,255,198,1,228,2,140,4,187,5,205,1,213,253,243,0,150,3,197,255, +99,254,204,1,62,2,153,1,141,3,78,2,124,254,215,255,165,3,12,3,76,0,167,255,199,0,60,2,212,2,241,1, +168,0,110,0,237,0,37,0,190,254,59,0,144,2,228,0,210,255,222,3,191,4,83,255,51,254,145,2,201,2,173,255, +45,255,175,255,26,0,75,1,252,0,132,0,182,2,54,3,206,255,3,254,57,255,0,0,109,0,77,1,148,1,231,0, +137,254,144,251,143,252,218,0,206,1,119,255,44,255,212,255,215,254,92,255,95,1,163,0,42,255,97,255,1,253,24,250, +40,254,124,3,198,0,135,252,248,253,87,255,19,254,36,255,123,1,46,1,95,0,223,0,235,255,177,252,147,250,129,251, +147,253,51,255,126,0,19,0,125,253,9,252,156,252,227,252,213,253,138,255,162,254,252,253,151,1,100,2,158,252,155,249, +226,251,75,252,112,252,240,255,24,1,145,254,224,253,30,254,232,252,40,253,34,254,192,252,50,252,234,254,15,0,174,252, +138,249,250,250,56,254,244,254,73,254,39,255,159,0,31,0,8,254,77,253,98,254,149,253,162,250,54,251,234,255,190,1, +63,254,200,250,221,251,158,255,6,0,22,252,174,250,71,254,31,1,25,1,78,0,15,254,101,251,183,251,239,253,203,255, +137,1,91,1,227,253,8,251,77,252,94,255,139,255,204,252,193,252,118,0,176,1,20,0,224,255,20,254,199,250,88,253, +68,1,17,254,163,251,159,254,122,253,216,249,21,252,194,253,71,251,128,253,88,2,22,0,129,251,18,254,53,3,185,0, +88,249,79,249,15,0,228,0,32,252,230,251,144,254,27,255,6,0,56,0,123,253,11,253,209,255,38,255,143,250,251,248, +124,254,155,5,168,4,75,254,38,254,85,1,223,253,33,250,174,253,18,0,149,253,233,254,117,3,97,2,251,253,101,254, +1,2,254,1,236,253,4,251,163,252,32,0,66,0,58,254,217,255,225,1,165,253,208,250,173,0,227,3,32,255,99,254, +148,1,137,254,209,250,248,253,186,1,9,1,225,254,63,0,99,4,193,2,226,254,127,3,189,2,191,246,7,252,110,12, +248,2,79,244,179,254,126,3,123,249,15,0,177,9,41,255,235,247,90,0,227,7,198,5,92,251,4,250,8,10,91,10, +105,246,117,248,16,8,232,1,248,245,17,244,117,252,106,23,231,28,210,241,29,229,249,17,59,23,103,233,239,225,243,1, +226,15,105,7,240,253,226,2,215,14,159,4,178,244,66,1,68,11,191,252,253,248,96,2,143,4,138,6,198,253,44,237, +18,1,62,34,58,16,171,237,40,245,28,10,189,9,82,250,78,233,199,242,149,21,239,26,124,3,127,5,115,12,121,241, +243,227,42,0,48,17,244,4,73,1,176,11,85,12,174,254,138,242,101,247,16,4,21,4,170,255,78,3,219,2,167,0, +206,7,77,6,170,249,187,253,67,12,4,11,32,255,95,245,251,245,189,6,116,15,121,0,46,250,86,5,148,5,177,2, +21,8,112,0,67,250,129,13,8,17,236,242,39,238,105,14,236,22,195,253,103,242,64,254,25,3,151,250,206,249,129,4, +46,9,113,6,28,6,203,0,177,246,227,251,91,10,92,7,163,250,196,253,108,9,184,6,199,250,56,251,166,2,95,252, +146,245,31,2,225,12,11,9,216,8,193,3,91,243,45,249,194,11,52,1,85,247,122,11,210,12,243,244,128,251,125,17, +25,7,204,246,109,255,1,4,201,245,240,242,175,5,12,17,243,7,213,254,141,252,172,247,149,250,71,5,227,0,104,252, +166,12,41,11,0,239,212,240,58,10,26,4,184,243,35,254,65,11,166,14,249,14,61,254,115,239,168,4,98,27,52,9, +193,235,33,236,246,0,244,3,173,234,152,228,252,13,132,43,158,19,251,252,118,9,203,8,240,233,210,226,119,2,191,15, +63,251,243,250,52,14,204,2,177,246,139,16,44,17,170,232,210,237,91,20,37,3,225,223,139,245,97,23,64,16,207,249, +120,240,18,250,222,12,179,12,237,0,191,7,210,8,159,238,189,229,95,253,201,8,217,254,146,249,12,253,48,6,144,14, +45,2,156,234,251,238,69,5,232,253,158,247,179,48,236,85,21,254,135,165,206,208,235,1,243,229,143,246,14,50,19,44, +233,10,192,246,71,219,109,240,171,27,144,247,166,223,154,31,171,45,233,251,68,254,234,2,154,228,45,247,139,19,76,247, +23,237,98,9,80,8,171,239,125,230,127,246,129,18,26,18,65,255,247,4,99,2,144,240,110,6,135,19,207,232,129,231, +235,32,181,38,205,251,88,228,242,218,142,228,233,2,233,4,125,248,201,10,197,20,58,254,196,240,161,243,86,250,246,4, +132,255,12,246,10,10,183,20,113,251,30,245,90,4,146,249,211,240,115,7,133,18,94,5,1,2,104,7,215,250,32,221, +232,215,54,3,75,36,159,15,45,5,30,29,73,14,197,224,115,221,170,236,75,232,147,247,145,29,1,40,29,20,117,0, +151,248,148,247,154,241,14,238,58,254,225,11,36,3,15,1,176,9,2,253,31,236,186,249,174,17,173,22,237,11,198,254, +151,250,243,249,209,240,81,243,58,10,22,13,220,247,235,246,54,2,31,251,233,248,184,6,234,6,142,252,88,252,33,255, +101,2,115,6,57,252,149,240,148,252,14,9,177,254,217,247,118,1,7,3,215,248,184,245,245,250,102,253,41,250,114,250, +199,6,167,15,116,1,245,242,215,1,249,18,9,4,128,240,155,250,157,12,9,9,129,251,6,249,230,254,12,0,178,250, +5,249,156,255,32,5,144,3,145,1,124,2,93,2,41,1,170,254,213,248,93,247,127,0,3,8,73,4,164,255,53,1, +61,1,12,252,241,248,200,254,229,7,66,4,80,245,22,244,211,3,22,9,212,255,136,254,245,3,66,255,48,247,190,250, +112,5,208,9,126,3,159,250,212,249,139,254,142,254,13,252,152,0,210,8,96,7,128,250,59,241,125,244,65,250,123,252, +6,2,70,7,98,4,201,1,229,1,236,250,199,245,19,253,249,1,74,254,217,253,137,254,145,254,61,5,34,7,46,254, +111,253,165,2,171,254,115,0,196,9,172,0,106,241,117,249,137,7,92,6,140,3,78,5,237,1,77,251,127,249,153,255, +127,7,211,4,123,253,171,1,155,6,225,253,119,248,162,0,243,3,204,252,126,249,6,252,113,252,255,250,155,252,106,2, +127,6,230,1,11,251,88,254,117,5,33,1,14,248,2,250,110,0,157,255,236,255,131,5,157,2,253,248,23,252,33,8, +188,6,196,250,161,250,249,4,207,4,161,251,107,252,0,3,173,255,99,250,205,252,9,253,99,250,203,252,48,252,143,247, +102,252,187,2,247,252,244,248,225,254,15,1,85,255,54,3,76,7,70,5,21,0,127,252,94,255,95,4,155,1,76,253, +158,0,27,3,174,0,110,0,100,255,158,251,188,254,47,6,229,4,163,253,79,253,34,5,219,9,227,4,190,255,36,2, +13,3,110,0,190,4,65,9,49,2,226,251,67,0,103,3,102,0,242,254,41,0,186,1,178,2,197,1,119,1,62,1, +99,252,222,248,168,252,57,255,166,255,173,6,79,11,18,3,27,252,112,1,72,7,229,4,31,0,187,255,3,5,84,10, +3,9,125,5,211,6,199,7,42,3,79,0,240,3,251,6,128,4,96,0,5,255,11,1,21,4,32,5,78,5,13,6, +134,2,73,251,184,251,36,3,252,2,106,253,81,0,151,6,248,4,0,1,3,1,76,2,95,4,11,5,106,0,65,253, +83,0,220,0,236,253,27,0,7,2,11,253,55,253,57,7,21,11,189,4,167,1,147,3,67,4,152,6,89,8,43,1, +240,249,65,255,167,6,1,4,47,255,112,255,249,0,115,1,178,255,64,251,211,248,167,249,6,251,176,254,102,2,230,0, +59,0,66,3,100,255,0,247,100,248,35,255,58,255,249,252,131,254,197,0,166,1,163,0,169,253,94,252,20,254,169,255, +80,0,251,0,51,1,199,0,115,0,123,1,98,3,98,3,246,1,35,1,134,255,218,254,160,1,175,1,21,253,218,251, +239,252,218,250,242,250,53,254,178,254,127,255,113,0,240,250,159,247,156,254,123,3,212,0,212,255,204,255,84,254,158,0, +174,2,72,255,101,253,238,254,171,254,213,255,18,5,67,8,6,6,166,0,219,251,61,251,214,253,225,255,23,0,98,254, +111,253,172,0,23,3,48,255,125,250,133,250,129,253,191,0,134,0,37,252,10,250,210,250,183,249,32,251,84,1,150,3, +44,1,87,0,93,254,191,251,20,0,239,4,50,255,243,247,248,250,127,255,183,252,95,251,211,255,24,0,63,252,192,254, +253,2,134,0,125,0,20,6,242,3,153,252,196,254,179,3,111,254,222,247,123,251,80,2,242,0,144,249,67,248,54,255, +104,2,221,253,250,249,109,248,142,247,176,251,87,1,89,255,19,250,186,250,253,254,85,0,58,253,243,249,154,252,133,2, +20,3,113,255,68,254,149,254,249,253,30,254,77,254,194,252,26,252,30,254,63,255,66,253,205,251,148,253,151,1,105,8, +33,14,38,8,191,250,6,248,129,254,198,255,172,255,37,3,82,0,223,249,69,252,196,1,187,1,223,255,181,251,251,245, +184,248,226,0,161,1,96,253,143,250,160,247,242,248,248,0,208,4,227,2,255,5,119,9,59,2,119,250,29,254,25,3, +163,1,213,2,37,7,48,5,247,1,146,4,159,4,1,0,52,0,153,2,153,0,17,0,14,3,71,4,135,4,225,2, +174,253,11,254,202,3,252,255,151,247,114,252,193,5,136,2,139,252,9,1,249,6,82,4,94,255,6,255,200,255,43,255, +239,0,248,3,231,2,152,255,107,254,158,254,74,0,56,3,47,3,188,1,23,4,179,5,144,1,125,254,25,2,99,6, +42,4,233,254,230,255,69,5,232,4,56,2,55,5,84,5,253,253,174,251,145,255,129,255,49,254,8,255,235,252,128,250, +219,251,23,253,103,254,119,0,127,255,160,255,65,3,50,2,77,255,33,3,37,5,92,0,198,255,229,2,74,0,189,252, +255,254,156,2,249,2,163,0,253,254,76,0,218,0,40,255,234,255,165,1,0,0,201,254,96,0,225,1,208,2,163,1, +239,254,137,1,128,5,212,0,91,252,130,1,113,4,170,255,198,253,47,255,4,254,223,252,104,252,192,251,29,255,152,3, +7,2,88,254,105,253,40,252,210,251,151,255,239,1,19,0,231,0,248,4,66,4,77,0,182,1,206,4,232,0,12,252, +218,254,211,2,181,1,82,1,73,3,162,1,227,253,211,253,9,0,158,1,92,3,2,4,218,1,181,255,207,254,236,252, +9,253,44,2,6,5,2,2,110,2,242,6,189,4,109,254,202,253,58,254,20,250,189,247,241,251,30,3,79,5,149,254, +90,251,69,5,232,10,71,2,138,255,166,6,96,4,233,252,13,255,164,3,56,4,151,3,249,253,190,247,73,252,76,4, +219,4,149,2,128,0,133,254,85,1,206,4,217,0,250,250,63,250,235,251,87,253,150,254,46,255,223,254,229,253,243,254, +159,2,186,2,90,255,119,0,135,3,251,1,157,0,64,2,182,1,226,254,32,254,55,2,7,8,118,4,56,249,86,249, +206,3,202,4,23,254,99,252,42,254,177,1,120,4,250,254,114,249,198,253,224,0,35,255,76,1,156,0,26,250,179,250, +198,255,124,255,34,255,101,255,140,252,118,253,240,0,65,255,155,253,151,253,230,249,56,250,48,2,65,4,20,253,19,250, +199,0,239,5,72,0,154,251,13,2,30,3,215,250,215,255,30,9,15,253,184,241,136,253,69,6,80,255,228,252,208,1, +223,3,73,255,180,244,143,244,190,3,83,5,216,249,48,2,169,13,122,254,177,241,78,250,137,252,89,246,178,249,246,255, +41,9,198,22,124,13,62,241,205,243,126,15,210,7,43,226,215,223,239,3,252,18,73,0,56,248,50,8,218,14,245,255, +111,246,114,255,229,6,238,255,161,246,117,248,202,6,31,15,255,250,81,232,61,4,217,32,202,4,197,233,245,253,129,5, +198,238,34,236,221,251,134,4,184,4,164,253,51,7,127,25,252,243,193,191,242,229,55,39,204,23,196,242,160,253,150,18, +99,12,181,233,86,209,248,247,126,42,129,22,229,234,153,235,116,0,34,9,155,253,52,236,143,252,71,24,13,10,170,246, +251,2,144,8,64,2,232,1,227,246,109,241,98,2,111,3,133,247,209,1,192,8,79,254,53,1,89,6,251,250,107,247, +84,0,228,2,192,253,214,244,19,246,158,11,180,21,200,2,251,247,27,3,62,8,65,2,7,255,230,1,4,7,82,1, +67,240,197,239,19,4,226,12,13,5,128,1,157,255,90,248,150,249,191,5,0,11,43,4,100,252,201,250,125,255,126,4, +105,1,19,255,18,11,47,17,55,253,46,238,216,250,17,4,107,253,47,252,97,252,181,251,54,7,80,7,106,243,245,248, +230,15,59,4,51,242,150,2,179,13,172,255,186,250,146,0,130,2,170,5,68,4,89,254,162,1,100,3,182,253,17,2, +71,7,99,255,117,253,253,3,134,3,160,4,176,7,182,2,23,6,97,15,224,2,171,244,190,0,48,8,30,250,91,245, +158,254,2,3,147,3,192,1,207,254,65,6,17,14,140,5,160,253,19,3,148,3,203,251,21,252,159,1,61,2,92,2, +146,3,169,1,70,1,98,3,208,255,37,252,87,2,218,4,252,250,112,249,102,4,62,4,65,251,106,254,44,7,254,6, +88,1,252,252,64,0,249,8,99,5,147,248,81,250,38,3,96,0,54,254,230,1,145,254,187,252,167,2,157,0,251,251, +93,2,248,2,34,248,217,248,39,5,233,9,220,7,94,6,102,4,103,1,162,252,226,249,176,255,106,4,85,254,250,250, +24,2,189,5,95,1,188,253,52,253,161,255,218,3,217,3,95,1,151,3,94,6,96,3,107,254,173,251,233,252,229,3, +177,9,230,5,33,255,110,253,75,253,244,254,36,4,36,3,140,251,247,250,30,255,89,255,82,1,53,2,72,253,3,2, +249,10,220,254,100,242,83,0,59,8,20,250,80,249,79,5,249,2,224,254,23,2,25,255,108,0,131,9,227,2,156,246, +234,253,68,7,250,1,165,253,13,255,249,253,248,252,65,255,147,3,199,5,179,0,72,251,204,251,69,251,136,253,68,6, +235,3,88,249,54,253,62,4,68,0,61,2,199,6,159,252,213,245,210,254,30,3,60,254,108,253,144,0,122,3,55,3, +89,253,169,251,50,3,119,5,196,253,158,251,198,2,163,4,222,254,73,255,122,4,142,0,50,249,84,249,19,250,240,250, +181,1,220,3,112,0,211,3,232,2,37,246,208,244,246,0,43,2,112,252,251,255,15,3,78,253,184,249,44,253,93,0, +21,1,192,2,118,2,153,252,5,249,116,253,196,1,10,1,183,254,124,252,239,253,91,2,216,0,153,254,202,4,231,4, +63,249,14,248,219,2,44,4,140,254,175,254,114,254,163,251,144,254,233,2,218,0,190,253,99,253,158,251,36,251,37,0, +135,2,101,254,106,254,35,3,18,1,54,252,129,254,66,1,49,255,206,254,255,255,199,254,80,253,37,252,80,252,219,0, +209,3,114,0,228,253,75,254,151,253,8,254,107,254,71,251,243,251,69,2,48,4,6,2,138,1,138,255,113,253,51,0, +30,2,44,255,157,252,251,252,16,255,22,0,52,253,105,251,80,254,55,255,59,254,247,0,218,1,27,255,18,0,11,1, +127,254,244,255,147,1,42,253,138,253,121,2,102,254,192,249,63,255,239,0,71,251,253,252,131,1,164,252,244,247,59,253, +178,3,245,2,208,254,91,254,121,1,86,1,90,253,191,252,12,0,212,1,103,1,153,255,222,252,163,252,233,254,162,255, +110,255,20,0,142,255,88,254,215,254,106,255,54,254,188,252,6,253,90,255,230,0,247,254,225,252,175,254,68,1,33,1, +94,0,212,255,13,254,45,253,130,254,177,254,87,254,49,1,236,2,29,255,30,253,252,0,88,2,55,255,87,254,96,254, +218,252,155,254,155,0,199,251,139,248,247,255,110,7,226,3,211,252,149,253,97,3,20,3,75,252,241,250,244,0,63,3, +119,0,168,255,26,0,82,0,217,0,155,253,156,250,103,0,223,4,183,254,232,251,235,1,105,3,239,0,28,2,26,1, +252,253,176,0,194,3,197,0,139,253,77,253,220,254,95,2,174,3,248,0,10,0,120,1,86,1,30,0,147,253,128,251, +200,255,149,4,246,255,254,250,248,255,39,5,209,2,19,0,8,1,153,2,187,2,204,0,166,254,193,254,140,255,246,255, +195,0,99,0,229,255,44,2,123,3,126,1,192,1,197,4,229,4,116,2,49,0,201,253,78,253,105,0,198,2,143,1, +130,0,41,2,60,3,150,1,193,0,127,2,118,3,176,3,8,5,136,3,94,255,11,0,142,2,29,255,114,253,93,3, +161,4,118,254,234,254,120,5,59,5,111,0,217,255,16,1,243,0,196,1,138,2,141,1,203,1,239,4,217,7,19,7, +131,2,123,254,94,255,161,2,110,2,117,255,219,254,146,1,110,4,161,4,26,2,177,0,48,3,147,5,250,3,86,1, +99,0,185,0,124,2,20,3,111,0,151,0,75,5,81,5,79,0,240,255,166,2,6,1,148,253,32,253,194,255,138,3, +65,4,148,1,20,1,36,2,221,0,150,0,205,1,21,0,80,255,155,2,10,3,113,0,176,1,206,3,54,2,1,1, +231,1,149,2,50,3,170,2,141,0,92,0,103,1,173,0,175,0,166,1,72,0,243,255,101,3,193,4,207,1,118,255, +103,255,99,0,102,1,169,0,110,255,140,0,113,1,119,255,158,254,100,1,74,3,62,1,234,254,149,255,222,0,188,0, +7,1,100,1,13,0,161,255,43,1,185,0,177,254,200,254,128,255,110,255,131,0,117,1,3,1,62,1,138,0,24,254, +124,255,80,3,66,1,227,252,84,254,151,0,168,254,44,254,146,0,20,1,9,0,209,254,150,252,155,252,73,0,109,1, +77,254,106,253,131,255,200,254,109,252,59,254,171,1,245,0,169,254,250,254,114,255,138,254,250,254,251,255,169,254,248,252, +24,254,63,0,207,255,77,253,214,251,245,251,52,253,64,0,239,1,162,254,122,251,30,253,97,254,124,253,15,255,125,0, +123,254,214,253,195,254,142,253,144,253,182,254,129,252,35,252,157,255,234,253,21,250,212,252,254,253,2,250,168,251,214,255, +118,254,169,254,216,255,236,250,59,250,75,0,48,254,24,250,26,1,117,4,195,252,37,251,110,255,245,252,156,250,170,254, +156,0,170,254,28,253,49,252,123,253,11,255,124,252,204,251,252,255,134,255,155,251,179,253,83,0,31,254,234,253,71,254, +245,250,102,251,0,255,23,253,11,252,63,1,121,2,188,254,108,254,135,254,232,252,169,254,3,0,181,253,103,254,83,0, +43,253,244,250,10,253,225,253,55,255,197,1,117,255,208,253,176,1,9,255,238,247,169,252,211,2,158,252,239,250,178,1, +87,253,107,246,136,254,108,5,158,255,228,251,76,253,34,253,130,254,250,255,20,255,7,1,161,1,33,253,250,253,90,1, +3,252,41,250,238,2,56,4,197,253,16,255,12,0,122,250,29,253,208,3,87,254,21,249,215,0,67,4,188,251,142,250, +79,3,65,2,51,250,184,254,32,6,101,255,209,251,181,3,72,0,212,248,167,3,11,8,67,248,162,247,179,5,129,0, +205,245,96,253,186,4,97,0,242,253,122,253,91,247,106,249,144,16,184,27,20,251,143,228,133,8,221,29,225,242,120,218, +72,252,83,19,17,7,164,251,254,255,150,12,69,10,152,244,216,242,137,6,212,9,220,5,205,4,210,248,51,250,79,5, +20,244,32,245,142,30,230,19,251,226,161,247,184,26,247,247,20,226,195,2,228,12,231,0,183,10,213,13,73,255,173,250, +39,246,191,239,161,2,148,27,2,16,194,240,170,239,73,10,60,11,239,236,220,237,147,19,133,24,248,250,92,244,112,252, +195,250,32,7,216,20,114,2,219,246,202,13,11,19,88,247,16,238,140,0,158,11,3,5,200,251,182,254,19,9,58,6, +177,252,14,2,186,6,225,253,217,255,150,8,152,254,123,248,169,7,161,11,199,2,69,7,121,5,16,245,47,251,213,12, +251,2,199,248,21,7,119,8,54,247,113,249,73,8,33,7,158,255,193,1,141,7,182,6,51,255,146,253,224,3,139,2, +120,255,107,7,46,5,150,247,155,0,231,14,140,255,145,245,94,6,78,7,250,249,55,3,61,12,172,254,170,248,95,1, +130,3,162,0,93,255,197,1,203,9,48,7,124,249,227,252,234,8,45,4,72,0,196,3,171,253,167,0,52,14,23,1, +97,239,213,255,17,11,248,252,82,255,250,8,240,251,151,248,231,9,242,7,227,247,86,252,37,11,207,9,89,251,55,247, +167,5,177,12,230,255,248,252,35,10,40,10,144,253,163,246,68,248,64,5,78,12,148,247,154,235,81,4,55,18,145,2, +86,251,235,252,204,253,229,10,50,13,189,251,71,255,32,10,55,249,212,243,79,4,131,254,160,250,159,13,132,1,177,230, +129,253,106,24,132,4,144,244,227,254,194,0,38,251,54,248,58,245,123,255,10,14,95,10,246,5,214,10,54,5,88,250, +245,244,114,241,212,251,204,8,218,249,86,235,181,249,84,5,55,12,44,27,191,12,200,237,191,243,181,1,9,6,246,30, +203,21,35,223,196,236,206,23,197,225,62,185,220,4,253,49,50,14,41,8,211,10,243,239,232,244,75,0,229,243,23,14, +147,32,131,238,2,230,181,24,55,7,174,220,152,1,97,41,22,21,10,253,230,239,75,225,167,231,71,254,176,11,4,2, +201,233,15,246,184,35,69,26,73,231,211,236,139,10,126,252,129,247,3,19,6,19,77,250,5,241,255,241,5,248,74,0, +190,250,234,243,66,249,13,250,254,247,156,253,12,254,58,252,128,3,44,6,233,4,13,13,127,12,180,249,95,240,169,251, +205,7,247,5,83,250,47,245,216,250,54,253,112,250,110,251,43,0,69,8,158,6,0,237,100,226,35,5,245,24,219,250, +231,235,186,4,89,18,207,11,85,6,25,253,201,247,124,255,161,253,18,240,239,241,145,3,185,14,29,8,134,250,215,252, +51,6,150,249,216,235,88,251,79,11,35,9,216,10,29,8,168,248,71,251,186,7,225,251,59,241,211,255,11,7,141,252, +120,248,62,251,204,253,1,1,162,254,195,253,155,7,207,8,114,251,145,248,239,0,86,0,83,249,192,246,3,250,66,2, +83,6,249,255,125,251,158,253,163,251,155,249,244,1,166,9,201,3,181,251,138,0,9,8,248,0,253,247,106,0,229,8, +29,0,231,251,162,4,214,1,110,247,112,252,231,3,169,253,18,249,149,253,197,0,98,1,52,1,191,255,187,0,99,2, +70,3,164,7,206,5,111,249,73,250,197,8,94,4,121,244,208,248,102,3,238,255,76,254,166,2,23,1,207,255,130,255, +156,250,161,255,124,11,13,4,108,245,167,249,64,1,76,255,78,1,167,4,1,3,79,5,161,5,224,252,105,249,246,253, +183,1,55,6,61,4,188,249,7,251,90,2,108,251,242,249,233,2,234,247,100,238,201,5,144,15,237,246,192,244,146,9, +239,4,231,251,192,8,197,7,117,245,169,246,20,3,59,3,208,255,52,0,152,3,65,8,242,1,231,246,190,250,80,255, +10,250,24,0,232,6,158,251,169,0,217,25,222,17,242,245,139,252,85,11,52,254,198,248,100,8,158,7,205,245,15,239, +188,243,254,249,229,255,205,2,26,5,149,7,59,4,245,0,195,4,211,3,246,250,133,249,34,0,138,3,178,2,140,253, +201,246,145,249,34,2,69,4,11,5,35,5,65,253,252,251,65,6,226,2,155,246,88,252,155,5,239,2,38,6,253,6, +127,246,79,244,59,7,244,5,159,246,118,252,117,5,219,253,106,250,104,253,217,249,116,250,117,0,136,254,45,253,231,2, +178,2,84,254,128,255,194,255,187,253,240,255,30,1,79,254,32,254,5,0,34,0,97,254,24,252,20,0,67,8,81,4, +42,250,27,255,253,6,178,255,165,250,36,1,234,2,199,0,24,2,120,255,111,254,93,6,242,6,38,254,39,255,146,4, +228,0,182,254,125,1,51,254,239,249,239,252,22,1,184,2,86,2,45,0,107,1,56,3,209,253,183,251,215,3,77,5, +82,253,33,253,59,2,181,1,166,1,247,3,160,2,58,2,239,4,157,4,234,3,1,6,228,4,92,1,123,2,178,6, +168,7,8,3,84,253,74,254,37,3,146,2,87,0,199,2,213,2,179,254,251,254,163,1,109,0,54,0,90,3,182,3, +94,0,255,253,198,254,26,1,109,1,68,0,199,1,204,3,18,2,197,255,20,0,173,1,15,3,35,1,144,253,241,0, +227,6,174,2,224,252,204,2,212,8,33,5,126,3,37,7,81,5,14,0,98,0,178,2,251,0,29,255,120,0,186,0, +94,254,88,254,201,255,195,253,157,252,127,255,8,255,123,252,205,255,174,1,5,253,127,253,93,2,2,0,5,253,98,255, +26,254,146,252,129,1,29,1,168,250,144,253,188,4,21,3,40,255,92,255,139,0,77,2,168,1,188,253,119,254,73,1, +130,254,16,255,81,6,109,6,167,255,232,253,146,254,238,251,209,249,4,251,224,253,146,254,38,252,142,252,151,254,42,251, +176,250,137,3,18,6,36,254,55,252,211,0,99,1,244,255,236,254,77,253,147,254,95,0,82,255,30,1,18,4,23,1, +152,254,143,1,248,2,63,2,211,2,183,1,44,0,246,0,34,0,200,255,210,4,63,7,71,1,110,252,54,254,252,255, +67,254,50,253,220,254,46,255,21,252,226,250,178,253,24,255,132,254,184,254,33,253,213,251,140,0,30,5,26,3,228,0, +253,0,149,255,34,0,72,3,88,2,191,255,49,1,244,1,34,255,202,253,254,254,176,255,166,255,207,0,195,3,82,4, +30,255,176,250,214,252,239,255,29,0,163,0,17,1,28,0,195,255,102,254,45,251,228,250,156,253,110,254,192,253,88,254, +63,255,30,254,79,251,41,251,171,254,1,255,184,251,55,253,254,0,218,254,137,252,210,255,70,1,158,254,217,254,126,1, +170,0,24,253,137,252,38,1,109,5,200,3,76,255,81,253,164,254,26,1,188,255,18,252,23,1,46,9,112,1,56,244, +39,248,85,0,122,252,254,252,140,7,10,8,205,253,117,250,8,255,251,0,90,253,241,249,74,252,14,0,59,0,150,1, +161,2,66,252,77,247,22,252,55,0,212,255,32,2,35,4,99,2,1,0,178,251,180,249,199,0,68,6,114,3,218,3, +76,7,201,5,177,4,120,2,123,250,193,250,140,3,144,1,149,252,84,3,149,5,109,253,235,251,87,254,119,252,211,254, +10,2,104,254,71,255,68,5,74,2,33,252,211,253,77,1,108,2,91,2,202,255,246,255,188,4,179,4,86,0,144,255, +29,0,192,0,131,2,167,255,61,252,5,1,159,3,235,253,144,253,15,2,55,0,136,255,80,4,98,3,90,255,26,1, +229,1,198,254,129,254,251,254,1,253,28,253,26,0,190,2,110,1,85,250,5,247,167,253,45,255,144,247,45,250,221,3, +119,0,48,251,76,3,191,6,89,253,213,250,103,1,157,2,181,0,94,1,6,0,9,254,178,255,251,1,210,3,75,5, +46,2,246,252,200,251,234,250,248,247,134,249,42,255,65,2,47,3,157,2,208,254,36,253,175,0,20,2,61,255,31,254, +108,254,79,254,219,0,115,2,180,252,92,247,68,252,44,3,151,0,235,250,146,252,155,0,55,255,0,253,57,254,170,254, +251,254,88,2,193,2,129,255,237,1,207,5,152,1,197,255,152,6,111,6,183,254,119,0,212,5,193,0,147,251,61,254, +35,254,60,251,205,253,111,0,51,255,182,0,93,3,72,1,200,254,56,255,86,255,158,255,231,0,136,0,141,0,62,2, +218,255,35,252,42,1,63,8,194,4,72,255,171,1,166,1,15,252,71,253,94,3,41,4,255,3,62,4,117,254,102,251, +127,2,204,5,36,1,142,2,157,8,46,8,9,4,218,255,113,251,117,253,206,4,32,5,10,255,6,254,157,2,213,3, +102,253,102,247,84,252,184,4,179,3,172,0,141,2,21,255,0,248,94,249,63,254,91,3,44,13,161,11,221,248,215,247, +2,16,205,17,129,244,67,237,154,8,171,20,72,1,14,246,25,2,24,9,47,0,237,247,188,247,56,0,49,14,84,13, +81,253,49,255,70,11,197,249,212,231,201,4,115,30,118,0,211,230,205,2,69,25,204,254,55,226,186,236,6,10,120,19, +156,253,176,233,151,248,87,11,133,253,176,244,73,11,82,16,153,247,108,245,104,7,188,4,206,250,115,252,168,252,0,3, +51,16,240,6,55,245,152,252,240,4,207,251,186,251,121,2,17,255,126,255,52,1,2,249,159,252,195,10,99,7,138,253, +249,248,73,237,70,240,213,10,31,12,4,247,56,5,136,31,118,10,56,232,210,242,33,11,47,251,146,224,61,245,132,23, +29,8,199,243,142,16,68,28,249,244,165,234,146,6,45,6,203,249,103,0,239,253,18,253,242,11,199,255,72,235,170,3, +235,23,113,2,152,250,178,255,141,236,180,235,217,7,55,6,82,246,85,3,228,11,14,3,155,6,156,0,199,226,222,224, +79,7,80,28,209,4,16,234,37,247,59,15,19,251,247,223,150,254,128,32,212,6,138,236,151,246,192,246,99,243,220,4, +106,4,163,246,106,6,76,16,172,251,249,251,121,12,3,255,253,238,195,246,208,252,180,1,83,9,21,0,34,248,98,0, +184,253,43,251,92,12,244,10,184,244,95,245,95,254,67,251,233,1,73,6,159,254,189,7,20,10,24,239,202,241,203,17, +169,7,111,239,117,254,20,7,96,247,8,251,192,5,241,255,160,1,8,11,49,9,197,1,8,247,169,240,136,254,138,10, +76,1,242,251,166,0,209,254,81,254,113,0,15,254,129,4,203,9,61,250,191,244,151,6,166,7,213,251,226,1,33,2, +13,244,7,251,106,9,151,255,232,247,40,1,93,0,166,250,200,2,209,6,252,253,245,248,198,248,158,251,252,7,22,14, +174,255,205,244,173,255,125,11,239,6,167,252,164,250,58,1,169,4,42,254,235,251,26,7,26,13,9,5,167,0,221,2, +141,0,219,0,5,6,21,1,41,248,241,251,114,2,91,1,109,2,133,6,91,6,206,4,148,2,163,253,223,250,247,250, +132,252,36,3,240,8,1,6,95,1,37,0,157,1,146,8,55,10,147,253,3,249,0,4,102,2,88,247,178,253,77,6, +248,254,181,252,90,5,248,6,147,4,141,4,200,255,72,251,203,253,85,0,225,1,136,4,115,3,252,0,240,255,242,251, +193,251,33,5,21,9,1,0,247,247,190,250,101,3,105,4,178,248,204,245,201,7,127,16,162,1,28,250,28,2,143,1, +137,251,186,255,136,4,32,2,144,0,128,1,108,1,142,255,103,252,63,254,213,5,18,6,52,254,83,253,25,2,85,0, +183,252,71,0,172,5,98,5,245,1,149,1,83,3,189,0,83,251,237,250,217,254,110,2,162,5,113,5,232,0,0,0, +86,1,183,251,47,247,169,253,43,3,251,255,85,255,120,3,110,3,55,0,171,254,179,254,135,1,112,5,154,4,25,1, +154,0,224,0,57,255,245,254,160,1,239,3,68,3,124,1,99,1,158,0,106,253,199,253,135,3,164,5,119,0,82,251, +8,252,106,1,74,4,48,0,209,253,81,2,39,2,16,252,39,253,50,1,34,255,43,0,130,3,127,253,193,249,196,1, +102,3,18,252,5,254,177,3,40,0,181,253,20,1,30,0,168,253,30,1,234,3,45,1,8,255,29,1,80,3,203,1, +246,254,78,254,171,254,140,255,237,0,5,255,155,252,243,255,77,1,229,251,115,252,14,2,89,254,198,249,120,255,5,1, +138,249,253,248,112,255,177,1,124,1,122,1,171,255,228,254,78,255,89,253,29,252,171,254,247,0,194,255,43,253,121,253, +219,0,134,1,157,254,183,254,226,1,35,2,150,255,62,254,90,255,76,0,49,254,245,253,139,3,113,4,18,253,119,252, +71,3,3,2,117,251,148,250,83,252,211,253,10,254,52,249,14,248,107,0,225,2,96,253,64,0,3,5,10,255,249,250, +247,253,117,252,77,251,213,0,197,1,50,254,87,0,82,1,34,252,212,251,21,0,181,254,139,252,235,255,201,0,174,252, +191,252,172,0,245,255,203,252,57,254,91,1,106,1,16,1,185,1,57,0,47,253,176,252,211,254,59,0,42,0,251,0, +174,1,123,254,135,250,243,251,113,255,97,0,183,1,81,2,213,253,143,249,237,250,126,254,170,1,193,2,233,255,105,254, +118,0,250,255,152,254,76,255,108,252,190,250,92,1,44,3,52,252,78,253,241,3,231,2,222,1,43,3,69,254,171,252, +68,2,89,0,89,251,28,253,97,250,248,246,190,0,155,6,162,254,213,253,183,2,90,253,168,250,43,0,252,253,194,250, +168,0,61,1,130,252,174,255,174,0,32,250,96,251,184,1,120,0,187,254,2,1,238,255,151,253,182,253,134,253,107,255, +86,3,35,3,160,1,171,2,104,1,78,254,234,253,183,254,57,0,43,1,10,254,230,253,188,3,211,0,230,246,10,251, +220,5,238,0,178,247,57,253,172,5,198,3,111,255,55,255,247,255,236,255,132,255,195,255,219,1,84,3,104,1,219,254, +99,255,140,1,155,1,67,0,236,1,135,4,155,0,168,250,178,254,3,6,209,1,5,251,135,255,31,4,86,255,174,253, +21,2,59,1,82,254,225,255,215,254,123,252,120,1,172,5,58,1,65,254,149,0,61,0,156,254,146,0,92,2,114,1, +229,255,219,254,132,255,80,1,246,1,87,2,190,2,251,1,71,2,32,2,46,253,121,250,196,0,91,6,201,4,36,3, +219,2,94,0,175,254,3,255,118,255,79,1,162,2,23,1,133,0,157,0,229,254,203,0,109,5,234,3,179,0,60,3, +64,4,116,0,16,255,219,255,232,255,163,1,44,3,202,1,175,0,4,1,21,2,97,3,195,0,176,252,250,255,45,5, +151,2,203,255,218,2,104,4,194,3,1,5,155,4,77,2,7,2,251,1,130,1,71,2,223,1,6,1,131,2,255,2, +6,2,157,2,147,1,92,255,52,1,96,2,243,255,206,1,120,5,137,2,230,255,249,2,164,3,191,0,81,0,84,1, +173,1,108,1,142,255,213,254,50,1,123,2,159,1,226,0,166,0,243,2,96,5,146,1,34,254,76,2,178,3,190,255, +85,2,69,6,113,1,201,254,99,3,203,3,212,0,111,1,233,0,151,254,171,255,67,1,185,0,79,0,228,255,163,0, +213,2,3,2,25,0,16,1,193,255,12,253,105,0,129,3,114,0,157,0,109,4,130,2,103,255,181,0,128,0,98,255, +116,1,89,1,227,254,208,0,205,3,135,2,177,0,104,0,76,0,164,0,179,255,228,253,17,0,58,3,240,0,21,254, +154,255,132,0,249,255,91,1,204,0,116,253,18,254,8,1,115,0,6,0,68,1,74,255,36,254,126,1,84,0,237,250, +171,253,21,4,230,1,158,253,214,254,94,255,37,254,8,255,34,255,236,254,241,0,40,0,83,253,170,254,219,254,30,251, +67,253,197,3,33,4,199,1,187,1,131,255,133,252,220,252,6,253,21,252,195,252,136,254,150,1,103,3,240,254,53,250, +225,251,10,253,135,252,233,0,236,2,113,253,23,252,171,255,32,254,166,252,7,0,114,255,163,252,241,255,48,2,111,253, +253,249,181,250,130,250,100,250,245,252,142,255,104,255,53,253,67,252,220,253,149,254,28,254,6,0,207,0,121,252,24,251, +208,0,63,2,156,251,24,249,199,253,83,0,244,255,155,0,239,254,230,251,203,253,186,255,146,251,160,249,209,253,11,255, +60,253,80,255,27,1,7,255,101,254,96,254,130,251,33,251,59,255,92,1,144,255,132,253,57,253,69,253,106,251,124,251, +105,1,213,3,63,253,75,251,127,1,139,1,107,253,193,255,58,0,211,250,173,251,130,0,117,254,116,251,46,253,249,253, +77,254,79,0,4,255,146,252,118,255,187,2,82,0,223,252,161,252,182,252,88,251,245,251,237,255,235,1,215,255,85,255, +43,0,92,253,191,251,26,255,25,0,29,254,89,254,36,253,210,251,215,0,49,3,131,254,162,0,124,5,198,254,0,250, +221,254,121,252,183,251,253,9,181,8,73,243,233,248,26,16,116,2,176,230,49,241,133,9,162,8,190,253,11,253,159,3, +23,9,67,4,209,249,44,249,55,0,120,5,178,7,122,4,153,0,94,255,200,242,186,230,53,252,34,25,35,12,169,238, +251,242,101,11,160,13,37,248,185,240,156,5,147,17,75,4,8,0,160,8,128,0,139,239,39,237,186,251,215,17,225,17, +134,247,200,248,109,21,138,8,111,227,92,236,18,12,6,18,56,8,34,247,190,235,54,3,74,26,5,1,203,234,167,6, +2,24,24,249,102,232,112,3,206,16,57,250,173,241,43,7,92,17,110,3,141,248,245,252,71,8,107,11,0,253,112,242, +201,254,244,6,223,252,47,255,35,13,172,8,81,253,93,254,154,255,123,0,125,6,154,3,135,252,105,0,197,0,37,249, +107,253,152,6,252,3,86,0,91,2,126,4,112,8,232,7,228,253,172,250,6,2,207,3,31,0,14,255,197,0,251,6, +87,8,161,251,176,247,236,7,68,13,136,0,252,252,238,0,232,255,172,4,162,9,221,255,153,249,115,3,204,9,83,7, +234,5,15,1,224,250,61,254,95,3,244,1,221,0,190,1,215,3,248,7,138,3,195,248,218,253,19,11,238,4,77,248, +252,253,252,7,20,6,73,2,90,2,233,1,199,1,232,1,224,0,92,0,31,0,145,1,178,5,68,4,6,253,18,254, +222,5,218,4,24,253,138,251,3,2,201,7,199,2,129,249,209,254,102,10,58,5,15,251,7,254,187,0,194,254,149,4, +3,8,36,1,3,2,203,8,30,0,93,245,189,3,180,21,135,3,84,228,165,237,141,10,164,2,146,238,225,253,253,17, +12,12,106,5,162,5,66,2,96,1,252,248,222,236,39,252,217,11,53,251,118,252,110,19,245,0,200,236,48,11,59,17, +123,236,214,241,199,14,165,2,113,242,248,251,22,6,189,12,42,5,117,239,71,250,215,23,148,12,167,243,172,247,1,255, +11,255,123,2,231,255,175,253,41,1,29,255,67,2,202,5,186,244,137,236,116,252,206,1,117,7,128,25,120,10,31,236, +240,250,125,19,16,6,112,239,154,229,121,235,118,3,162,11,108,253,117,7,85,29,69,16,183,249,252,248,209,250,237,251, +162,0,46,246,19,235,108,253,136,15,112,0,179,242,134,0,173,9,49,0,77,251,44,251,71,248,104,253,186,255,106,243, +191,244,235,9,28,19,19,18,32,16,10,251,50,232,198,247,207,1,109,236,39,233,16,1,143,1,122,238,154,244,214,12, +132,16,34,0,133,251,38,7,244,8,94,254,223,250,237,252,238,254,42,5,135,2,74,245,108,249,255,7,145,0,173,242, +154,247,164,255,62,0,178,255,241,252,238,255,236,8,181,1,196,242,131,248,117,4,9,2,196,254,111,255,239,252,27,253, +57,255,84,255,76,2,215,1,25,253,174,2,90,7,243,252,113,250,0,2,58,248,207,237,99,252,142,8,6,2,124,1, +191,8,122,6,236,254,245,249,149,248,111,253,153,2,0,4,225,8,122,10,3,253,198,239,127,243,117,253,131,1,223,1, +183,0,42,255,103,255,70,255,100,254,108,1,158,6,156,5,105,254,168,250,5,254,111,1,36,255,71,250,47,250,115,0, +20,4,150,255,229,252,228,0,156,1,56,0,10,5,93,5,158,251,150,249,232,1,214,3,70,0,80,0,49,0,11,254, +19,252,76,249,153,249,231,254,62,3,241,5,203,6,109,2,33,0,219,2,52,0,9,253,212,1,66,1,56,251,68,255, +63,2,234,252,172,2,128,9,143,252,9,247,161,5,165,3,229,243,174,251,112,10,156,2,73,250,114,2,167,7,39,3, +86,255,9,254,243,255,203,4,166,4,201,255,194,254,180,255,102,253,179,252,132,0,244,1,37,254,158,251,78,253,55,254, +56,253,134,255,181,3,93,1,64,250,233,249,169,255,35,0,64,254,174,3,213,7,24,3,55,3,144,9,108,2,157,243, +183,245,149,0,53,255,253,250,232,255,33,3,104,0,184,1,136,6,145,6,136,2,178,255,218,254,85,254,174,254,1,1, +125,2,7,1,101,0,235,1,55,2,30,2,235,1,228,253,30,251,71,0,41,4,135,255,244,251,117,253,202,253,111,254, +29,1,32,1,186,0,242,1,93,255,45,254,24,5,94,7,141,255,218,252,151,255,96,252,204,250,20,0,100,0,214,253, +1,3,126,7,29,4,197,0,62,255,1,254,108,0,214,0,192,251,9,253,17,4,126,1,59,250,143,252,253,1,114,1, +212,255,12,255,209,252,127,252,96,254,165,253,133,251,90,252,233,254,69,255,66,253,72,253,192,0,1,1,8,252,209,251, +234,2,149,5,44,1,68,255,87,0,5,255,34,254,193,255,78,0,123,0,233,0,97,0,143,1,8,4,122,1,57,251, +124,250,117,0,218,4,155,2,229,253,48,254,49,3,137,4,39,0,203,253,172,255,93,255,133,252,72,253,165,0,34,1, +219,0,113,3,17,4,118,255,228,251,176,252,101,253,211,253,117,1,106,5,117,5,164,2,250,254,206,252,157,254,105,1, +229,1,83,3,240,5,214,4,255,1,224,1,191,1,186,0,55,2,215,3,60,3,212,3,24,4,74,0,0,254,1,1, +221,2,122,1,98,1,48,1,71,254,229,252,212,254,120,255,65,254,134,255,254,1,246,255,183,251,34,253,236,1,220,1, +115,0,100,4,92,7,39,4,191,1,50,2,150,0,223,255,160,2,154,2,232,255,76,1,88,4,179,3,211,1,35,1, +119,1,80,4,125,7,129,6,211,3,126,3,27,3,160,0,217,254,169,255,20,1,127,0,252,254,162,255,152,0,90,254, +215,252,251,255,93,2,249,255,65,253,4,253,179,253,200,254,90,255,148,254,152,254,41,0,24,1,10,1,79,1,127,2, +163,3,7,2,56,255,32,1,145,4,91,1,80,253,148,0,198,2,212,254,180,254,11,3,72,1,188,252,222,254,106,2, +76,1,104,0,201,0,1,255,156,253,194,253,80,252,68,251,55,253,32,255,131,255,218,254,16,252,35,250,240,252,90,0, +209,255,64,254,177,254,184,255,125,255,238,254,135,0,69,2,147,255,27,253,158,1,155,5,253,1,190,255,101,3,5,4, +134,0,148,255,254,255,152,255,210,0,240,1,150,0,176,255,217,255,202,254,152,253,192,253,7,255,207,0,132,0,15,254, +134,254,99,1,8,0,248,251,184,251,238,253,57,255,82,1,109,3,229,1,254,254,52,255,108,0,205,254,51,253,189,255, +126,2,255,255,187,252,246,254,129,1,152,254,51,253,89,2,17,5,198,0,214,254,223,2,204,4,1,2,227,254,8,253, +215,253,201,1,233,2,53,255,143,253,15,255,117,254,151,252,18,252,128,252,187,254,84,0,60,254,7,254,9,0,204,251, +79,248,30,0,124,5,90,255,176,253,74,3,249,1,41,253,226,253,229,255,196,1,220,2,26,254,92,251,110,1,10,3, +147,252,169,251,134,255,38,0,148,255,28,253,20,251,158,1,23,6,144,253,102,249,183,0,181,0,216,250,25,254,37,2, +133,254,142,251,232,251,51,253,177,254,120,252,107,250,56,254,39,0,232,254,78,254,9,247,131,248,15,21,73,28,228,239, +4,224,32,15,61,27,215,237,44,237,112,27,42,25,72,239,92,234,21,9,222,25,133,6,157,232,213,242,61,24,53,20, +117,241,64,237,129,248,14,247,251,0,26,15,225,6,187,255,44,5,59,255,109,245,251,247,201,251,38,254,118,255,187,252, +250,8,7,27,6,6,145,227,43,240,10,10,201,255,70,248,173,9,196,9,156,247,180,247,146,4,132,9,119,7,209,0, +194,251,48,1,94,7,249,3,149,252,87,244,44,241,125,254,98,14,88,10,148,255,6,1,36,1,184,246,28,242,222,248, +3,255,52,0,68,255,203,255,118,5,60,8,117,254,163,244,141,248,138,0,145,2,220,0,183,252,241,250,4,0,217,3, +145,4,181,8,239,6,6,251,133,248,199,1,139,2,17,252,31,252,12,0,231,3,215,6,61,2,61,251,87,253,31,1, +147,254,33,253,155,253,47,253,0,2,46,7,149,2,142,254,253,2,204,4,15,1,130,252,162,248,109,249,77,255,3,1, +3,253,157,250,127,250,223,252,8,3,19,4,35,253,61,252,65,3,27,3,10,252,21,252,7,4,83,9,135,6,27,0, +137,254,28,1,123,255,138,251,182,252,117,255,187,255,126,1,63,3,178,0,131,254,46,0,215,1,128,1,200,254,201,250, +231,251,21,2,235,3,200,1,92,3,42,5,226,1,88,254,68,253,68,252,64,253,85,1,180,3,182,1,135,254,128,254, +242,1,45,4,42,3,139,2,97,3,80,4,145,5,76,3,2,252,131,250,228,2,167,7,103,3,6,0,177,1,192,5, +235,8,6,5,167,252,172,251,255,0,180,3,252,4,190,4,173,255,151,252,197,255,236,2,33,0,22,244,105,240,86,17, +113,46,95,3,168,206,217,246,87,41,28,245,81,196,147,1,225,54,24,13,179,234,31,4,170,23,31,19,16,0,232,216, +175,219,245,34,217,51,87,233,35,225,244,49,1,38,85,190,112,195,155,41,87,45,116,225,125,238,193,51,139,36,134,224, +26,207,123,233,188,9,220,30,191,6,196,225,155,1,7,47,59,2,58,205,119,249,247,37,74,254,159,225,32,2,87,17, +75,252,106,245,93,254,84,5,245,10,147,3,155,242,238,245,48,8,99,6,136,243,10,245,215,16,66,23,117,240,248,217, +210,253,170,25,150,3,148,245,108,254,249,245,15,250,106,29,84,25,157,238,189,241,139,12,165,250,127,234,181,5,151,16, +194,249,143,246,6,7,235,9,190,6,138,4,184,247,130,238,160,252,207,12,131,1,74,239,246,254,16,27,10,13,98,235, +169,241,122,7,121,254,89,246,21,6,10,8,131,251,219,0,104,8,192,254,107,245,128,241,238,244,199,12,127,27,68,1, +19,233,75,246,224,2,7,254,185,3,76,11,90,255,182,243,4,245,189,244,245,244,250,252,255,0,118,254,33,1,7,6, +198,1,159,248,149,247,13,253,59,251,219,245,145,253,161,7,11,1,24,252,241,5,1,4,57,246,205,252,65,8,118,249, +83,236,170,248,18,2,227,1,214,11,127,14,177,252,102,246,52,3,218,4,36,253,138,0,180,4,6,0,203,254,7,0, +252,250,202,250,188,5,134,11,110,5,73,0,21,255,244,248,212,242,119,247,193,255,123,2,134,4,171,8,218,3,159,248, +165,251,180,7,232,3,179,249,87,255,179,5,208,253,187,249,221,254,36,254,128,252,110,2,49,4,15,0,35,0,17,254, +219,246,25,250,153,6,130,8,167,0,123,254,233,0,178,255,148,253,44,254,31,255,208,0,159,3,57,1,118,250,104,252, +66,5,128,2,151,249,254,0,74,12,213,1,220,243,115,251,100,4,169,252,218,248,150,2,161,8,6,8,21,9,124,7, +235,1,222,254,30,251,57,246,186,251,125,7,89,7,183,0,144,5,218,11,232,1,7,247,180,254,171,8,30,2,228,249, +16,255,118,5,147,3,5,2,223,4,170,7,73,8,91,3,93,249,73,247,217,1,169,8,119,2,244,251,205,253,54,0, +148,254,116,255,221,4,221,6,98,2,150,254,58,254,85,252,186,250,196,255,211,6,76,7,192,3,227,2,36,4,160,2, +171,252,238,248,4,255,203,6,194,2,45,251,222,254,49,4,209,254,30,251,98,1,58,3,48,253,235,253,192,3,57,1, +115,252,38,0,223,2,230,253,175,252,141,1,140,1,70,255,218,2,180,4,88,0,161,0,114,5,217,2,20,253,11,255, +121,2,117,0,89,0,207,3,102,2,80,253,80,252,37,255,235,2,228,5,178,3,116,254,141,254,185,0,101,253,148,252, +152,4,110,8,255,0,238,250,142,252,70,253,94,250,220,250,158,0,29,5,205,3,37,0,65,254,213,252,112,252,233,255, +34,3,251,2,70,4,245,3,130,251,226,246,60,255,87,3,51,251,209,249,111,3,36,6,176,255,178,252,228,255,67,4, +30,5,216,0,78,253,201,254,232,0,180,1,83,2,247,0,54,0,17,2,7,0,190,252,55,1,158,3,50,252,138,251, +25,5,190,5,97,254,246,252,135,253,67,253,122,1,153,2,133,253,65,254,2,2,209,254,203,253,149,2,38,1,37,252, +5,253,233,254,119,0,136,4,22,3,95,253,148,255,176,2,175,252,207,249,180,254,237,254,124,253,27,3,163,5,198,255, +237,252,19,255,41,255,23,255,164,0,65,255,141,252,123,253,27,255,201,253,209,252,97,254,112,255,45,255,140,255,10,255, +205,252,10,253,154,255,68,255,87,254,216,0,84,1,55,254,146,254,29,1,93,0,234,255,38,1,0,0,89,255,151,0, +243,254,67,254,188,1,206,0,141,253,14,2,80,5,236,255,233,254,81,2,40,254,134,252,98,4,108,3,144,249,4,252, +223,4,249,1,235,251,217,253,115,0,47,0,8,0,96,253,139,249,147,250,238,253,25,254,73,253,21,255,39,1,249,255, +124,254,181,0,255,255,228,247,158,246,10,2,127,5,136,251,139,250,112,3,89,2,106,252,164,254,32,255,223,250,244,254, +34,6,168,2,197,251,46,252,177,0,26,4,178,2,163,252,168,251,6,2,140,3,85,254,28,253,85,0,179,0,161,253, +162,251,154,254,253,2,241,255,78,250,243,254,134,6,178,2,158,251,91,253,42,2,9,3,5,1,40,254,62,254,214,1, +194,2,5,1,35,1,240,255,244,252,132,254,200,1,189,0,216,255,86,1,133,0,215,254,21,255,0,254,2,252,220,252, +17,255,76,0,143,0,217,255,22,0,143,1,85,0,146,253,218,253,122,254,141,253,158,255,51,2,17,255,157,251,197,253, +138,255,157,253,95,253,76,255,9,255,26,253,179,252,45,255,12,3,134,3,171,255,174,254,147,2,191,2,202,253,250,252, +30,1,221,1,101,254,239,252,82,255,47,2,108,2,69,0,69,254,6,254,71,255,219,255,219,253,123,253,225,2,91,6, +7,2,147,255,24,3,9,3,119,0,106,2,156,2,28,255,49,0,82,1,221,252,50,253,251,2,134,2,222,255,200,1, +229,0,1,254,126,0,133,1,123,253,251,253,154,2,109,3,173,2,47,3,84,2,155,0,82,255,218,254,241,0,57,3, +188,2,122,2,212,1,128,253,166,251,25,0,26,2,195,254,14,254,228,0,43,1,28,255,97,255,48,2,208,3,11,3, +167,1,254,255,242,254,33,0,157,255,244,251,216,253,204,4,27,4,224,254,97,1,59,5,90,2,198,0,236,2,113,2, +82,1,83,1,255,254,4,254,122,1,9,3,177,0,168,255,73,1,35,3,223,2,176,0,147,0,187,2,228,2,253,1, +10,2,7,1,157,0,41,2,67,1,143,255,2,2,121,3,98,0,227,254,67,0,6,1,252,1,196,2,64,2,137,2, +144,2,115,1,221,2,196,4,24,3,18,2,140,2,111,0,59,0,251,3,82,3,85,255,211,0,229,3,123,1,74,254, +33,0,245,3,240,2,3,253,182,251,161,1,212,3,131,0,184,1,71,5,70,3,35,1,26,3,137,2,107,255,137,0, +107,3,130,1,237,253,83,255,119,2,146,0,37,254,157,1,214,3,111,255,180,253,253,1,29,3,127,0,5,1,170,2, +240,0,244,254,12,0,175,1,54,1,33,1,245,2,53,2,95,255,86,1,46,4,161,0,115,254,73,1,46,255,210,251, +217,0,253,3,140,255,152,255,103,2,147,254,193,252,134,1,26,2,224,254,38,0,132,2,7,1,95,254,252,253,105,0, +134,1,190,254,217,253,220,255,93,254,249,252,134,0,38,1,12,254,15,0,215,2,200,255,119,254,139,1,128,1,46,255, +252,255,1,2,241,1,248,255,247,253,26,254,103,255,47,255,217,253,217,252,44,253,149,255,75,1,201,255,113,254,56,255, +189,254,123,252,131,251,36,252,197,252,226,253,249,0,167,3,98,1,240,252,174,252,148,254,132,255,3,2,87,3,74,0, +253,254,151,255,7,252,15,250,143,253,97,254,33,254,254,1,130,1,139,252,145,253,118,255,137,252,159,253,2,1,130,254, +245,252,86,255,131,254,13,254,144,0,101,253,186,247,145,250,92,0,16,255,236,250,111,251,36,254,2,253,26,251,199,254, +4,2,229,254,114,254,14,2,157,254,136,249,45,253,162,255,45,252,187,253,28,1,245,252,63,250,191,0,244,6,220,3, +184,250,95,246,59,252,119,2,33,0,81,252,13,253,232,253,241,253,127,254,119,252,152,250,130,255,87,5,74,2,248,251, +100,251,226,251,247,250,53,255,162,2,175,253,48,253,75,2,54,251,120,243,16,253,174,1,224,249,36,0,34,9,142,254, +86,251,205,7,72,3,251,245,202,251,97,4,236,253,140,244,74,247,199,9,136,18,53,250,81,235,138,7,249,21,240,246, +62,228,26,246,252,5,224,5,84,2,85,1,234,2,194,0,170,253,110,0,68,253,132,249,228,6,170,8,173,241,242,242, +22,9,153,255,229,240,220,5,231,19,34,0,42,243,103,255,60,8,104,250,121,237,19,254,63,16,249,4,63,0,247,13, +80,1,129,234,69,247,70,11,140,9,224,2,1,250,83,246,41,3,6,3,107,242,170,248,170,9,42,8,49,6,107,5, +255,246,49,241,25,255,73,10,220,7,190,252,41,251,123,10,92,6,80,237,63,249,156,25,161,11,191,239,63,250,94,5, +177,251,231,254,111,9,103,4,26,1,167,9,28,10,80,253,150,246,115,253,45,0,82,249,2,253,63,9,86,8,0,3, +162,5,48,2,122,251,24,0,230,3,226,255,168,254,37,252,32,248,252,254,123,7,165,5,160,4,201,6,27,2,179,251, +228,252,46,3,66,5,238,253,52,249,228,1,90,8,10,2,227,253,91,0,25,1,227,2,222,5,173,3,212,254,114,252, +188,0,105,9,172,5,20,248,169,250,124,5,23,1,240,254,17,10,95,9,173,253,172,253,83,4,255,5,203,1,108,248, +187,248,148,7,95,10,201,253,109,253,24,7,230,7,201,2,20,253,26,251,228,2,126,6,226,253,232,252,220,4,6,3, +182,254,19,5,56,12,226,10,59,3,174,252,59,254,151,255,100,250,1,252,53,2,71,254,21,254,175,8,236,7,36,1, +112,6,49,5,13,250,124,255,25,8,113,252,88,246,34,3,114,6,181,254,168,1,47,7,151,1,50,252,252,254,138,0, +243,251,49,249,188,254,228,6,162,8,120,4,163,0,100,255,114,254,246,252,85,255,189,5,201,5,48,254,216,252,74,2, +10,1,243,250,9,251,130,1,199,9,70,12,3,3,126,251,59,1,71,1,189,242,56,241,187,3,36,10,238,252,184,248, +23,6,243,15,209,8,226,250,133,250,39,7,156,5,124,243,115,241,29,255,35,0,101,0,192,12,24,8,95,248,180,1, +145,9,34,247,227,248,138,16,165,4,92,234,152,247,209,12,109,5,111,252,76,2,224,8,232,6,16,249,6,237,190,244, +199,3,42,12,84,14,175,0,180,239,228,247,225,2,198,249,174,252,217,12,183,7,239,253,174,3,59,2,25,251,223,251, +121,246,103,245,94,9,239,16,250,252,192,242,37,254,98,8,243,6,114,254,174,251,49,2,169,2,189,254,180,1,152,253, +142,243,31,251,80,5,21,253,126,250,98,5,187,3,41,252,63,5,105,15,104,4,245,241,124,242,220,0,193,254,149,237, +120,240,172,6,58,11,155,249,218,238,184,249,48,13,237,15,157,254,102,247,250,3,168,4,163,242,82,241,105,7,77,16, +60,0,107,245,246,252,146,2,47,255,244,253,158,253,82,253,227,3,140,5,50,249,39,243,18,251,153,255,68,0,44,4, +203,3,59,254,132,248,211,245,53,1,56,17,201,9,134,250,197,255,180,255,179,237,243,239,157,3,229,3,238,254,191,7, +156,6,167,249,182,248,81,254,23,255,166,1,214,3,22,2,168,2,171,1,5,252,143,252,51,3,216,4,203,1,116,255, +92,255,143,255,112,250,112,245,152,252,204,4,28,255,251,250,254,3,195,8,124,3,165,1,97,0,74,248,205,246,39,1, +118,3,241,249,109,251,117,7,195,3,128,245,6,250,209,9,224,8,56,255,106,1,36,5,77,254,204,250,74,2,236,5, +98,255,191,250,229,252,89,254,49,253,229,252,38,253,103,255,61,5,241,6,212,0,125,253,234,0,118,2,221,0,80,0, +178,255,151,0,102,3,29,1,99,253,183,1,57,4,212,252,44,251,52,3,248,2,204,250,157,249,93,253,252,255,138,3, +232,3,161,255,214,255,229,2,131,255,102,250,128,250,45,253,25,2,206,7,173,6,166,0,66,254,177,253,209,251,98,252, +151,254,41,255,60,0,164,1,60,0,199,253,242,252,109,253,191,254,109,255,171,254,176,254,211,255,150,0,49,1,1,1, +135,0,36,2,55,2,53,253,96,249,249,249,254,250,164,253,196,0,125,253,13,250,68,255,94,3,183,0,159,1,141,5, +61,4,215,1,211,0,72,253,238,252,112,3,12,7,158,3,26,0,240,255,70,0,135,253,242,249,245,252,139,3,190,2, +15,254,87,255,210,2,45,3,253,1,167,254,113,252,103,1,195,5,180,0,116,251,133,254,186,2,98,1,166,253,74,252, +136,253,23,255,163,0,220,0,27,253,150,251,46,2,63,5,11,254,103,251,151,0,219,254,207,248,53,251,104,1,220,2, +91,0,123,253,234,255,132,5,142,2,60,251,56,253,240,1,78,0,113,254,93,252,168,248,48,252,173,1,219,253,120,252, +51,3,113,1,114,249,226,251,201,1,68,0,146,254,65,0,104,1,191,1,43,255,52,251,42,253,217,0,35,255,49,255, +181,3,25,4,96,1,228,0,25,0,38,0,229,2,96,1,127,252,181,254,36,5,206,5,159,3,62,4,53,4,77,1, +94,255,26,0,219,0,104,0,166,0,63,1,14,0,110,255,172,0,255,254,74,252,152,255,183,2,148,254,155,252,187,255, +115,253,110,250,99,0,253,3,240,254,31,255,75,5,185,4,26,0,94,255,245,0,88,4,201,6,5,2,193,252,135,255, +117,2,182,0,210,1,156,5,101,6,101,5,133,3,72,1,245,1,89,2,86,255,171,255,202,3,41,3,150,255,235,254, +252,253,197,252,35,0,110,4,193,3,134,0,103,255,234,0,234,1,19,0,98,254,165,255,221,1,195,3,77,4,47,2, +10,2,185,4,38,1,138,250,251,254,30,8,45,7,219,3,177,7,178,8,199,1,110,253,209,255,145,1,103,255,48,255, +53,3,123,3,170,254,179,255,240,4,238,1,40,253,146,1,44,4,192,254,132,254,182,3,0,2,124,253,89,255,95,2, +190,0,141,253,117,252,130,254,110,2,233,4,219,3,209,255,5,253,141,255,64,2,205,254,76,252,16,1,46,4,151,0, +74,255,50,3,24,4,83,0,78,255,190,2,41,3,12,254,120,251,81,254,132,254,11,251,82,252,59,1,25,1,128,252, +22,250,159,251,97,254,238,254,104,253,255,253,236,0,89,1,131,254,97,252,247,252,101,254,139,253,182,251,123,253,172,0, +99,0,162,0,200,3,109,2,57,253,218,253,186,1,224,0,16,0,112,3,14,4,19,0,100,254,83,0,55,1,116,255, +121,253,173,253,244,254,185,254,88,254,171,255,131,255,90,252,41,251,55,254,11,0,72,253,83,251,188,254,232,1,156,255, +26,254,35,1,79,0,143,250,141,250,113,255,125,0,245,0,54,3,175,0,210,253,128,1,161,1,137,251,92,253,232,3, +231,0,180,252,40,1,22,3,161,255,173,1,119,5,127,2,71,255,80,0,22,0,21,254,248,253,92,255,246,255,175,253, +79,250,175,251,159,0,190,1,51,255,127,253,170,252,225,252,184,254,51,255,220,253,207,253,187,254,244,254,116,255,33,1, +84,3,106,3,129,255,90,252,203,254,229,1,15,0,234,252,204,253,85,1,112,1,167,253,196,254,85,4,236,0,161,248, +220,252,47,5,193,0,21,251,243,254,250,0,103,255,111,1,25,1,105,253,210,253,60,253,66,250,130,254,86,2,21,251, +4,247,192,254,221,3,129,1,26,0,74,0,229,255,112,255,214,254,223,1,228,7,204,5,176,252,209,251,87,1,166,255, +52,253,37,5,45,10,205,1,31,254,140,5,157,1,230,245,65,253,91,8,137,1,138,6,42,25,20,8,80,232,216,246, +178,13,34,250,112,240,193,12,62,19,172,247,31,235,10,248,69,12,213,22,230,4,199,236,169,247,52,13,173,2,5,239, +50,244,192,4,67,10,9,4,252,251,108,250,14,1,109,9,239,4,140,243,45,243,84,9,39,13,179,248,86,243,147,254, +156,0,168,252,166,252,249,254,53,5,85,10,2,5,118,251,231,248,99,250,139,246,149,243,99,255,182,12,23,7,192,253, +168,254,164,253,136,255,165,6,242,253,143,250,100,22,79,25,31,236,206,225,238,7,187,8,84,234,17,246,141,22,51,21, +134,3,191,252,92,252,162,1,69,7,7,1,65,250,105,255,251,1,227,251,107,253,72,5,95,2,61,252,136,3,208,11, +87,6,167,254,161,249,220,239,137,238,40,253,172,4,184,1,97,7,115,9,27,252,53,249,112,3,96,255,249,246,240,253, +173,1,93,252,9,1,56,6,199,253,57,250,195,3,134,9,164,6,46,0,192,248,6,248,233,252,23,252,182,250,70,2, +77,7,48,1,177,252,162,2,99,9,175,5,124,251,165,248,248,254,97,2,36,255,36,252,186,252,211,255,99,1,165,254, +100,253,201,254,80,252,189,253,98,8,248,7,161,249,161,249,76,7,141,8,68,2,40,3,141,1,204,250,98,252,29,5, +162,7,125,1,159,254,70,6,125,9,52,255,42,252,250,3,187,254,117,247,77,5,144,13,134,254,178,248,174,3,29,6, +199,1,175,255,71,253,174,5,69,17,200,0,164,232,208,245,32,13,34,0,163,236,103,252,116,18,138,10,107,253,160,5, +216,10,30,252,150,240,203,243,46,0,58,20,177,21,25,248,155,243,6,21,231,12,119,223,235,234,161,25,34,18,61,240, +130,245,79,15,39,22,250,253,176,217,108,226,206,25,58,38,63,244,164,225,37,11,123,32,69,253,114,223,47,246,67,22, +14,11,195,240,49,245,176,5,178,1,94,242,28,241,103,8,137,30,51,12,128,232,174,237,84,11,181,8,161,240,210,242, +218,14,172,25,192,255,34,234,214,253,157,17,26,252,113,233,69,255,198,21,142,13,216,252,152,250,172,4,237,7,170,249, +24,242,22,2,15,12,237,254,216,245,55,253,70,3,198,1,39,2,246,7,62,9,101,252,39,240,196,246,16,0,22,252, +221,252,255,6,194,4,166,249,37,250,178,2,76,7,164,5,201,253,123,248,188,254,159,4,223,254,230,249,75,255,147,4, +244,2,3,2,253,3,11,0,240,247,127,249,177,0,36,253,62,247,77,254,178,4,2,0,125,255,10,4,54,0,253,251, +173,254,220,251,172,245,233,249,141,1,21,3,158,3,152,1,93,250,1,249,212,254,212,255,237,254,206,3,59,4,149,251, +60,249,104,0,252,0,62,250,224,250,186,255,116,252,25,249,6,0,239,5,249,1,156,253,117,254,178,0,188,2,1,2, +211,254,145,1,32,7,73,2,157,249,80,251,69,255,65,253,122,255,144,5,187,2,226,252,250,255,152,2,86,251,158,245, +178,249,218,254,57,0,154,2,200,4,117,2,137,0,182,3,68,6,16,3,197,253,231,251,123,254,9,1,245,254,78,252, +38,255,233,2,18,2,77,1,244,2,127,1,7,253,232,251,106,254,255,254,115,252,10,252,227,254,89,254,130,251,123,255, +97,4,170,254,116,249,103,0,112,5,7,1,236,1,57,8,207,3,137,248,14,247,68,254,166,1,237,254,186,253,175,1, +81,5,166,3,46,0,90,0,187,2,52,1,118,251,38,250,99,0,12,5,239,3,31,2,32,0,132,255,190,5,102,10, +84,3,69,252,179,255,154,4,80,5,191,3,129,255,89,254,241,2,99,3,28,1,198,4,207,4,43,254,68,0,141,5, +108,254,182,248,132,255,24,2,89,253,176,255,90,4,114,1,71,255,81,2,21,2,187,254,236,0,128,6,111,5,33,255, +14,254,168,1,121,1,67,255,158,0,201,2,64,2,255,254,104,251,38,254,36,5,94,3,66,252,168,254,211,3,55,0, +36,253,173,255,178,255,145,255,103,3,83,4,211,1,138,0,131,254,248,253,218,1,108,2,120,254,183,254,29,1,89,0, +137,0,6,2,239,1,10,3,73,3,98,255,217,254,94,3,253,2,138,254,132,254,188,0,223,0,224,0,94,1,197,1, +206,1,130,255,34,253,136,255,123,3,3,3,233,255,216,254,224,255,38,255,133,251,7,251,137,0,9,4,176,1,193,255, +207,255,82,255,126,255,181,254,42,252,245,253,139,2,238,1,159,255,30,0,230,254,118,254,172,2,132,3,116,0,249,1, +145,2,94,253,161,253,153,3,150,2,236,253,57,255,172,1,40,0,194,254,20,0,9,2,89,1,9,254,21,253,74,255, +211,255,237,254,120,255,92,0,44,1,103,1,115,255,148,254,3,0,99,254,253,251,141,255,25,3,179,255,21,252,166,253, +182,255,220,254,79,253,136,254,35,2,133,2,45,255,241,254,153,0,238,253,61,252,117,0,99,2,199,254,22,253,54,254, +140,254,192,255,39,1,101,255,118,253,239,254,89,1,252,1,169,0,124,254,233,253,199,254,107,254,37,254,16,0,25,1, +98,255,94,254,136,255,246,255,64,254,143,252,157,252,66,253,14,254,121,0,43,2,146,255,4,253,56,255,26,1,122,255, +158,255,241,1,216,1,2,1,255,1,52,2,254,0,72,0,33,0,106,0,67,0,224,254,53,255,45,1,145,255,170,252, +109,254,117,0,158,254,19,254,28,255,151,253,233,252,88,254,221,252,88,251,120,254,20,0,62,253,14,253,239,255,111,255, +58,252,174,250,100,251,87,254,107,2,93,3,179,255,246,251,85,252,93,255,233,0,8,0,32,255,113,255,52,0,197,0, +188,0,212,255,176,254,191,254,198,0,95,2,60,0,31,253,101,254,152,1,101,1,146,255,49,255,150,255,164,0,208,0, +12,254,248,252,26,0,49,0,173,252,97,254,214,2,253,0,67,253,132,255,88,3,14,2,157,253,111,252,48,0,182,1, +234,252,137,251,49,3,124,7,42,1,238,251,26,255,108,2,149,0,6,255,233,0,88,1,5,254,30,253,5,1,246,1, +152,253,246,251,223,254,175,0,38,1,154,1,239,255,247,253,162,254,75,255,245,254,24,0,74,1,177,0,222,255,51,255, +7,255,88,0,13,0,75,253,59,254,205,2,182,2,47,254,26,253,135,255,224,255,54,254,126,254,235,0,222,1,121,0, +69,0,157,1,121,0,189,253,34,254,89,0,142,0,10,0,68,0,205,255,67,255,10,0,196,0,202,0,210,0,182,255, +182,253,16,254,38,0,7,0,49,255,6,1,98,2,1,1,250,0,199,1,253,254,142,253,41,2,189,3,35,254,26,253, +49,3,174,3,235,253,198,253,112,2,89,2,114,255,189,0,127,3,108,2,66,0,190,0,120,1,4,1,53,2,4,4, +88,2,73,255,84,255,213,0,244,0,4,1,183,1,25,1,13,255,64,254,201,255,238,0,234,255,40,255,79,255,49,254, +82,254,51,2,23,4,247,0,85,255,212,1,250,3,149,3,168,0,166,253,2,0,193,4,44,3,51,255,231,0,188,2, +202,255,248,254,33,2,185,2,71,0,242,254,65,255,60,0,48,1,56,1,168,0,35,0,85,0,32,2,148,3,93,2, +33,1,45,2,206,2,251,1,211,1,252,1,145,1,152,1,103,1,64,0,105,0,210,1,8,1,106,255,118,1,99,4, +176,2,253,255,235,1,67,4,54,2,231,255,98,0,4,1,21,2,237,3,58,2,200,254,217,0,217,4,169,2,239,254, +60,0,93,1,95,255,139,0,105,4,70,3,209,254,172,254,117,1,146,1,92,0,111,1,92,3,238,2,102,0,64,255, +46,1,244,2,71,2,239,1,152,2,90,1,214,255,210,0,141,1,36,1,9,2,213,1,145,255,108,0,36,3,211,1, +212,255,61,1,221,1,198,0,35,1,90,1,253,0,212,1,192,0,3,254,83,255,211,1,21,0,5,255,72,1,193,1, +63,1,40,2,135,0,247,253,192,255,28,1,150,254,67,255,82,3,75,2,221,253,234,253,2,1,204,1,100,0,203,254, +24,254,33,255,195,0,229,0,168,255,189,254,78,255,240,0,131,1,105,0,203,255,203,255,191,254,159,254,162,0,168,0, +203,254,88,0,30,2,103,254,59,252,36,1,151,3,29,255,211,252,221,254,0,255,176,253,188,253,34,254,143,255,86,1, +119,255,84,252,238,253,150,1,194,0,190,252,36,252,50,0,206,1,15,253,210,249,221,253,213,1,27,0,118,253,93,253, +196,254,69,0,57,255,157,252,111,253,87,255,62,253,45,251,163,252,66,254,166,255,128,0,73,253,132,250,232,253,184,255, +192,250,152,248,143,253,15,1,64,255,248,252,20,253,238,253,141,253,144,252,231,252,95,254,24,255,196,253,47,251,114,251, +86,255,206,255,103,251,85,251,137,0,33,1,93,252,133,250,78,253,204,255,243,254,222,252,134,253,89,255,178,253,165,250, +76,251,84,255,19,2,245,254,244,249,17,253,169,1,33,250,77,245,2,3,27,11,212,253,78,247,112,2,1,4,97,246, +109,240,71,249,159,4,61,6,92,253,142,248,255,255,221,5,173,0,48,250,238,250,235,0,62,4,199,253,247,245,230,250, +141,2,56,252,129,246,199,4,9,18,121,3,4,240,97,248,73,7,68,254,81,242,48,251,227,6,230,5,28,1,2,255, +41,255,49,254,20,250,152,253,136,9,157,6,8,245,152,244,240,5,38,8,72,248,118,244,234,3,22,13,229,3,74,248, +97,245,12,250,141,5,159,10,57,252,13,241,224,253,69,7,59,251,0,250,18,14,243,15,13,247,251,237,87,0,12,9, +91,254,101,253,79,7,99,4,99,252,143,0,86,3,140,252,222,250,159,254,78,0,85,5,229,8,227,2,91,0,134,3, +205,252,108,247,180,3,59,11,201,254,105,247,219,0,196,6,49,1,56,253,220,1,14,9,144,9,181,1,217,249,86,249, +5,255,28,4,121,2,170,254,80,3,42,11,103,7,208,252,61,251,2,1,84,3,239,1,132,0,147,255,11,1,27,4, +127,2,130,253,239,254,90,5,130,5,19,1,5,1,154,1,211,254,122,255,93,2,251,0,47,2,29,8,17,6,80,254, +217,254,90,2,109,0,67,1,53,5,159,2,87,254,150,255,98,0,238,254,121,0,254,2,33,3,19,2,204,255,201,254, +239,2,212,6,185,4,153,2,238,4,239,5,204,2,249,255,189,255,178,0,38,1,181,255,23,254,16,0,210,3,86,4, +252,2,52,3,28,3,149,2,245,3,109,3,74,255,99,254,4,1,147,1,253,2,222,5,148,3,144,0,174,2,16,2, +150,255,152,3,168,3,243,250,40,251,181,2,137,0,133,254,176,5,60,5,64,254,194,1,192,5,60,255,59,253,57,3, +57,2,214,250,94,249,65,0,71,7,234,4,212,253,126,255,128,4,182,0,76,253,216,1,234,3,82,1,222,255,230,253, +167,254,213,3,53,1,201,249,11,0,238,10,114,6,26,254,16,0,121,0,251,250,169,252,144,3,205,2,77,254,48,0, +173,2,192,253,227,249,72,255,70,4,42,2,4,4,150,11,148,8,62,252,4,251,140,2,218,255,223,248,176,251,22,253, +90,246,63,249,188,7,41,13,145,6,190,1,22,3,153,5,47,0,34,243,121,243,122,5,213,9,218,247,119,239,62,253, +183,11,254,9,158,253,35,252,137,10,46,12,196,248,82,240,37,250,127,0,174,2,70,3,121,252,163,252,178,7,24,6, +26,251,155,251,160,254,143,252,225,255,227,2,159,255,227,255,22,0,163,250,196,250,107,255,210,254,231,255,142,4,77,3, +197,255,204,254,100,251,32,249,116,253,15,2,148,2,14,1,158,255,221,0,167,1,169,253,185,251,96,254,146,253,79,253, +195,2,7,0,84,243,160,242,143,255,29,4,227,253,245,252,144,3,138,7,203,4,136,254,43,250,222,252,86,4,114,5, +234,252,70,247,42,251,255,253,6,251,39,252,89,3,123,6,2,3,38,255,106,253,126,253,227,254,212,252,88,246,157,246, +220,0,78,3,128,248,211,246,229,3,60,8,161,0,163,0,221,5,124,2,16,253,199,252,195,250,78,247,194,249,195,255, +131,2,182,0,58,254,40,255,221,255,250,250,110,247,22,253,142,4,135,4,177,255,2,253,41,255,96,2,66,1,243,254, +66,1,161,3,168,0,38,253,70,253,4,254,71,253,193,252,206,253,16,255,35,255,101,0,244,2,50,1,127,252,43,253, +3,1,229,0,235,255,186,0,59,255,235,252,186,253,107,255,99,0,0,1,101,0,158,0,72,2,128,1,45,0,183,1, +60,1,96,254,88,255,211,0,30,255,84,0,97,2,61,254,63,252,177,2,114,6,147,3,129,2,96,2,169,255,185,255, +8,2,40,0,215,253,32,0,212,1,28,0,77,255,68,0,105,1,35,3,151,3,93,1,250,255,41,0,162,254,72,253, +49,255,4,1,193,0,58,1,85,2,143,2,153,2,26,1,35,254,46,254,103,0,62,0,18,0,55,1,89,255,90,253, +239,255,252,0,42,254,1,255,11,2,98,0,13,254,42,255,171,255,13,255,79,255,176,254,152,254,246,0,97,1,254,254, +199,254,177,255,168,254,161,254,74,0,38,0,106,255,163,0,98,1,212,255,236,253,61,253,244,253,224,255,254,1,31,3, +2,3,29,2,2,1,57,0,125,0,226,1,4,3,227,2,179,1,85,255,18,253,211,253,173,0,154,1,241,0,152,1, +116,2,77,1,83,255,160,254,106,255,88,0,39,0,171,255,153,0,95,2,121,2,165,255,140,252,150,253,43,1,231,0, +202,253,68,254,54,0,79,254,239,252,22,0,164,1,246,254,133,254,0,1,195,255,232,251,190,252,204,0,167,0,110,253, +156,253,123,0,93,1,1,0,12,254,11,253,177,254,243,255,35,253,149,251,87,255,184,0,180,252,73,252,70,0,125,255, +60,251,8,252,12,0,155,0,216,254,199,254,220,255,69,0,83,0,48,0,64,255,182,254,206,255,5,0,162,253,131,252, +223,254,152,0,15,0,198,0,113,2,148,1,181,255,64,0,157,1,69,1,128,0,68,0,121,255,0,255,7,0,99,0, +88,255,152,255,133,0,163,255,252,254,165,255,8,255,1,255,198,1,64,2,23,255,139,254,39,0,48,255,59,254,253,254, +116,254,221,254,191,1,50,1,130,253,41,254,153,1,131,1,139,0,82,3,107,6,128,4,209,255,125,255,49,3,211,2, +58,254,110,253,78,0,73,1,33,1,243,0,132,255,197,255,244,1,9,1,76,255,118,1,59,2,229,254,242,254,200,2, +130,2,89,255,230,255,102,2,122,2,117,1,229,0,73,0,103,1,92,4,119,3,213,253,138,252,32,2,88,4,117,0, +154,0,231,5,142,5,108,255,235,254,134,4,182,5,69,2,90,3,144,7,57,6,55,1,149,255,99,0,151,0,225,0, +127,1,102,2,225,2,229,0,63,255,15,1,233,0,185,253,227,255,151,5,82,5,88,1,57,255,231,253,156,254,6,1, +8,0,248,254,12,3,162,4,252,254,141,251,173,255,121,4,2,4,206,0,52,0,84,1,140,255,196,253,45,1,127,4, +208,1,230,254,51,1,4,3,246,254,28,251,170,254,238,3,85,2,183,254,210,255,16,0,204,251,112,250,243,254,68,2, +237,255,221,252,241,255,217,4,6,1,130,249,92,251,140,0,5,254,181,251,234,255,160,1,170,254,127,253,211,253,118,254, +134,0,232,0,253,255,23,2,161,3,214,0,135,254,129,254,103,254,185,255,71,1,203,255,122,255,70,2,210,1,220,254, +236,255,172,1,50,255,252,252,226,253,247,254,3,0,235,0,79,255,181,253,166,255,120,1,11,0,104,254,186,253,229,252, +134,253,174,254,31,253,81,252,32,0,235,2,157,0,199,254,92,0,20,1,54,255,82,253,45,253,127,254,115,255,156,255, +208,0,229,1,207,0,112,0,75,1,23,255,223,252,55,0,251,2,116,255,236,252,189,255,134,1,231,255,48,255,132,0, +98,1,211,255,221,252,114,252,218,254,30,255,171,252,171,252,6,0,254,1,58,0,83,254,71,0,39,3,197,1,206,254, +227,254,82,255,109,254,183,255,189,1,177,0,145,255,143,0,98,0,62,255,250,255,14,1,117,0,241,254,181,253,125,254, +213,0,122,0,129,253,137,253,250,0,202,2,123,1,75,255,28,254,10,254,66,253,96,252,44,255,61,3,119,1,91,252, +6,252,231,254,167,255,227,255,71,0,6,254,104,252,6,255,126,0,139,254,40,0,65,5,37,5,132,0,221,255,4,3, +22,3,89,255,207,253,87,1,72,4,139,1,229,254,201,1,39,3,110,254,42,252,42,0,147,2,7,0,155,253,230,254, +81,1,23,255,71,251,229,1,60,13,141,7,137,247,14,250,86,8,224,3,16,245,88,250,223,10,212,7,70,246,98,244, +142,4,220,12,67,3,93,248,14,249,4,0,103,2,10,252,13,245,12,250,61,6,226,7,183,0,53,2,33,9,79,3, +118,245,38,245,179,1,47,5,156,250,15,245,32,254,34,7,27,2,22,247,207,247,170,4,233,9,242,254,220,245,203,250, +110,255,86,250,48,248,215,255,5,7,109,7,203,5,45,6,173,6,183,3,42,254,188,250,224,250,135,252,146,254,115,255, +114,254,144,255,73,4,146,6,242,3,38,2,54,3,70,2,110,254,168,252,92,254,205,255,213,255,235,0,178,2,58,2, +177,255,206,253,232,253,210,255,162,1,50,0,197,252,110,253,83,2,41,3,213,253,112,251,106,255,17,1,121,253,75,253, +247,1,5,2,132,252,123,251,65,1,18,5,23,2,44,253,211,251,91,253,131,254,43,255,218,0,251,2,226,3,232,2, +251,0,113,0,249,0,75,254,64,249,83,249,71,254,252,254,17,251,141,251,2,1,19,3,80,0,153,255,73,3,112,5, +141,1,174,251,173,250,166,254,134,1,15,0,173,254,174,2,236,7,74,5,38,253,123,251,23,1,34,3,209,255,151,254, +149,255,44,255,58,1,87,7,65,9,82,4,208,1,220,4,194,4,25,255,167,252,63,0,44,2,156,255,169,255,138,5, +9,9,213,2,34,250,30,252,131,6,232,8,132,255,45,250,100,0,255,3,233,251,241,245,75,254,69,9,21,7,136,253, +244,251,161,1,226,1,0,251,29,249,254,1,37,10,150,5,149,251,195,251,47,4,174,5,109,255,58,255,11,7,131,9, +26,2,239,251,94,253,100,254,137,249,176,247,59,0,9,9,216,5,217,253,249,254,208,4,115,2,10,252,208,253,15,3, +233,255,0,250,146,253,246,4,107,3,179,252,105,252,63,1,100,2,210,255,206,255,235,2,232,3,171,0,145,253,224,254, +101,2,13,3,197,0,220,255,198,1,214,3,24,4,215,2,170,0,185,254,179,254,33,0,181,0,10,0,122,255,81,255, +149,255,182,0,50,1,87,255,157,253,68,255,10,2,214,1,246,255,18,0,130,1,138,1,117,0,156,255,198,254,110,254, +115,255,240,255,14,254,75,252,75,253,35,255,53,255,82,254,114,254,180,255,34,0,30,254,30,252,44,254,245,1,79,1, +223,253,227,254,42,3,208,2,86,254,175,253,64,1,231,1,179,254,111,253,213,254,86,254,201,251,56,251,97,253,192,255, +174,0,154,255,154,253,170,253,186,255,107,255,19,252,199,250,39,253,28,255,62,255,198,255,38,0,217,254,109,254,216,0, +153,2,174,0,199,253,106,253,218,254,110,255,121,254,134,253,18,254,102,255,155,255,240,254,128,255,232,0,108,0,195,254, +209,255,178,2,3,2,98,254,157,254,215,2,64,3,15,254,220,250,172,253,118,1,84,1,151,254,189,252,27,253,236,254, +107,0,55,0,43,255,113,255,215,0,230,0,98,255,210,254,136,255,250,254,60,253,170,253,160,0,35,2,107,0,104,254, +97,254,69,255,26,0,1,1,11,1,164,255,166,254,29,255,80,255,235,254,249,255,224,1,128,1,46,255,71,254,4,255, +177,254,48,253,255,252,138,254,136,255,125,254,194,252,234,252,5,255,206,255,222,253,234,252,50,255,145,0,103,254,108,253, +99,0,35,2,36,0,219,255,54,3,46,4,187,0,124,254,223,255,138,1,83,2,72,3,192,2,20,0,197,254,239,255, +52,0,87,255,165,0,246,2,67,2,12,0,161,0,208,2,146,2,126,0,195,255,151,0,55,1,38,1,232,0,243,0, +84,1,108,1,36,1,167,1,203,2,93,2,83,0,128,255,67,0,243,255,161,254,243,254,92,0,49,0,70,255,252,255, +57,1,44,1,54,1,63,2,3,2,244,255,56,255,237,0,42,2,112,1,170,0,235,0,27,1,23,1,161,1,168,1, +170,255,56,253,63,253,80,255,116,0,79,0,50,1,238,2,115,2,185,255,199,254,1,1,178,2,123,1,249,255,152,0, +183,1,70,1,25,0,182,255,47,0,18,1,26,2,199,2,219,2,152,2,227,1,141,0,179,255,203,0,24,3,211,3, +162,1,191,254,128,254,214,0,62,2,44,1,112,0,238,1,217,2,240,0,0,255,222,255,125,1,73,1,151,0,4,1, +75,1,123,0,199,255,213,255,16,0,133,0,52,1,24,1,68,0,44,0,152,0,237,255,214,254,119,255,35,1,42,1, +113,255,126,254,119,255,244,0,144,1,174,1,36,2,55,2,144,0,61,254,246,253,166,255,83,0,96,255,73,255,94,0, +33,0,127,254,27,254,71,255,222,255,133,255,144,255,216,255,93,255,116,254,7,254,64,254,240,254,190,255,28,0,7,0, +216,255,79,255,98,254,21,254,177,254,21,255,42,255,3,0,8,1,162,0,151,255,172,255,52,0,213,255,105,255,203,255, +230,255,93,255,115,255,7,0,174,255,197,254,179,254,61,255,166,255,50,0,130,0,137,255,47,254,81,254,52,255,215,254, +204,253,8,254,95,255,44,0,228,255,41,255,235,254,195,255,229,0,188,0,139,255,33,255,140,255,55,255,71,254,34,254, +107,254,44,254,71,254,121,255,58,0,162,255,82,255,44,0,156,0,230,255,125,255,206,255,109,255,87,254,97,254,213,255, +204,0,91,0,191,255,222,255,243,255,83,255,157,254,134,254,196,254,214,254,187,254,124,254,254,253,157,253,199,253,9,254, +203,253,182,253,194,254,26,0,4,0,168,254,3,254,225,254,189,255,51,255,40,254,83,254,129,255,254,255,149,255,209,255, +229,0,34,1,67,0,6,0,161,0,82,0,7,255,155,254,73,255,208,255,70,0,30,1,72,1,132,0,132,0,67,1, +158,0,24,255,111,255,211,0,23,0,70,254,216,254,180,0,77,0,153,254,248,254,184,0,208,0,85,255,109,254,128,254, +179,254,229,254,85,255,247,255,135,0,171,0,136,0,198,0,247,0,233,255,159,254,113,255,79,1,241,0,233,254,171,254, +43,0,193,0,154,0,19,1,219,0,53,255,146,254,145,255,83,255,185,253,49,254,185,0,182,1,217,0,184,0,218,0, +103,255,23,254,2,255,40,0,99,255,156,254,178,255,192,0,253,255,23,255,209,255,244,0,5,1,217,0,88,1,58,1, +163,255,161,254,244,255,98,1,66,0,195,254,105,0,53,3,137,2,85,255,143,254,177,0,136,1,208,255,161,254,145,255, +191,0,186,0,61,0,248,255,204,255,17,0,25,1,191,1,189,0,17,255,178,254,108,255,198,255,242,255,203,0,97,1, +204,0,89,0,197,0,137,0,137,255,244,255,99,1,209,0,205,254,240,254,188,0,125,0,210,254,113,255,182,1,18,2, +215,0,200,0,87,1,124,0,133,255,219,0,62,3,103,3,252,0,228,254,49,255,152,0,192,0,226,255,4,0,25,1, +6,1,153,255,240,254,180,255,119,0,174,0,0,1,69,1,2,1,177,0,164,0,112,0,89,0,253,0,161,1,91,1, +237,0,16,1,224,0,30,0,90,0,248,1,14,3,129,2,110,1,195,0,64,0,5,0,163,0,165,1,239,1,88,1, +183,0,160,0,179,0,113,0,95,0,94,1,188,2,181,2,110,1,249,0,163,1,113,1,8,0,133,255,164,0,184,1, +203,1,140,1,90,1,20,1,30,1,144,1,176,1,94,1,60,1,48,1,189,0,99,0,160,0,208,0,164,0,213,0, +92,1,74,1,225,0,64,1,1,2,209,1,216,0,77,0,135,0,18,1,126,1,98,1,199,0,136,0,245,0,39,1, +197,0,183,0,38,1,0,1,52,0,247,255,137,0,228,0,174,0,137,0,206,0,65,1,100,1,207,0,244,255,13,0, +32,1,127,1,154,0,60,0,73,1,231,1,197,0,151,255,41,0,108,1,76,1,88,0,179,0,171,1,40,1,27,0, +120,0,133,1,159,1,137,0,34,255,202,254,141,255,171,255,13,255,168,255,9,1,165,0,249,254,213,254,39,0,124,0, +194,255,217,255,129,0,60,0,154,255,167,255,202,255,121,255,250,254,202,254,185,255,220,0,160,255,66,253,192,253,242,255, +4,0,250,254,77,255,8,0,220,255,19,255,208,254,61,0,167,1,167,0,164,255,156,0,10,0,141,253,191,253,180,255, +28,255,88,253,51,253,203,253,65,254,156,254,169,254,167,254,60,254,201,253,243,254,147,255,11,253,157,251,110,253,143,253, +92,253,154,1,115,3,204,253,7,251,229,255,60,1,39,251,15,248,167,252,62,1,164,255,114,252,134,254,88,2,149,0, +146,252,0,253,41,255,192,254,106,253,216,252,56,253,217,253,210,251,132,249,101,254,205,5,253,2,37,250,201,249,13,255, +126,253,169,248,11,251,21,0,251,254,54,253,24,1,251,2,145,253,173,248,93,249,159,252,112,0,119,1,149,253,68,252, +200,255,50,254,210,249,96,254,216,3,149,254,166,249,76,253,52,255,71,253,250,254,200,0,189,254,230,253,55,254,124,252, +19,252,5,254,199,254,187,254,248,254,147,254,151,254,187,254,144,253,95,253,148,254,131,254,209,254,22,0,104,254,197,251, +68,252,26,253,114,254,0,3,90,4,233,255,186,254,160,0,195,253,36,251,116,254,138,0,253,254,123,255,231,0,74,0, +150,255,180,254,252,253,139,0,176,3,174,2,179,255,203,253,49,253,111,254,143,255,204,254,93,255,73,1,167,0,168,255, +189,0,71,0,176,254,1,255,134,254,214,253,40,1,167,3,13,1,238,255,230,1,224,0,252,254,176,0,244,1,139,0, +211,255,68,0,215,0,147,1,69,1,158,0,161,1,104,2,143,1,16,1,219,0,167,0,244,1,192,2,111,1,136,1, +225,2,184,1,98,0,25,1,153,0,203,255,126,1,223,1,6,0,70,1,63,4,193,3,18,2,43,2,209,1,138,0, +28,0,73,0,201,0,197,1,145,2,54,3,165,3,48,3,158,2,74,2,88,1,39,1,88,2,53,2,57,1,43,2, +185,2,56,1,127,1,178,3,214,3,219,2,226,2,25,2,179,0,185,0,20,1,151,0,229,0,167,1,123,1,24,2, +180,3,111,3,231,1,13,2,210,2,21,2,196,0,46,0,148,0,175,1,207,1,165,0,244,0,174,2,236,1,40,255, +17,255,175,1,29,3,161,2,232,1,108,1,71,1,148,1,227,1,34,2,43,2,162,1,181,1,66,3,7,4,162,2, +93,1,46,1,120,0,206,255,234,0,163,2,240,2,179,1,33,0,202,255,168,0,185,0,26,0,22,1,246,2,64,3, +75,2,74,1,89,0,22,0,48,0,70,255,161,254,48,0,64,2,244,2,11,3,153,2,19,1,162,255,69,255,114,255, +171,255,251,255,134,0,208,0,25,0,251,255,124,2,158,4,206,2,51,0,70,0,66,0,120,254,22,254,245,255,215,0, +72,255,213,253,105,255,212,2,36,4,157,2,168,0,95,255,216,254,249,254,3,255,137,255,237,0,109,1,44,1,104,0, +65,253,209,253,49,8,28,13,148,0,247,247,162,0,115,3,37,249,253,248,76,2,33,0,52,247,103,247,62,0,91,10, +231,11,45,2,62,255,173,8,78,7,59,250,164,248,222,251,137,245,69,246,18,1,42,1,222,254,81,10,114,14,163,255, +78,248,64,0,206,0,59,247,226,245,8,0,234,7,167,3,96,249,100,247,94,254,201,1,102,255,67,254,145,253,129,252, +217,1,60,10,113,7,36,251,98,246,192,250,74,250,163,245,161,249,78,3,239,5,238,2,228,1,254,0,108,253,21,250, +78,249,185,250,216,251,244,250,1,252,77,0,44,1,91,255,75,2,5,5,102,1,233,255,46,2,227,253,189,247,254,250, +237,255,33,254,212,253,95,2,176,3,58,1,177,0,169,0,18,253,225,248,195,249,147,253,126,253,184,251,217,254,42,2, +125,255,183,253,111,1,253,2,159,255,2,253,133,252,10,253,22,255,141,0,230,255,252,254,222,253,85,252,65,252,226,252, +77,253,137,255,228,1,3,1,166,255,254,255,109,255,76,254,121,254,152,254,249,254,247,255,120,254,118,252,234,254,97,1, +242,254,150,253,244,255,125,255,68,252,98,252,37,254,137,253,79,253,55,255,249,255,56,255,186,255,123,0,54,255,152,254, +57,1,220,2,173,255,99,252,120,253,212,254,187,253,20,255,156,3,133,4,43,1,117,0,26,2,233,0,215,254,75,255, +41,0,85,0,236,0,6,1,216,0,159,1,39,1,7,255,199,255,112,3,124,4,42,2,5,0,169,254,250,253,126,255, +252,1,49,2,207,0,56,1,242,2,34,2,162,254,37,253,206,255,27,3,167,3,1,2,160,0,242,0,89,1,127,255, +216,253,235,255,109,2,94,1,61,0,204,1,75,2,107,0,24,255,164,254,209,254,188,0,89,2,193,1,64,1,192,0, +241,253,35,252,172,254,171,1,65,2,134,2,131,2,60,1,54,0,32,255,255,252,169,252,7,255,195,0,160,1,12,3, +184,2,75,0,98,255,206,255,235,254,20,254,195,254,103,255,233,255,72,1,36,2,174,1,82,1,171,1,81,2,153,2, +50,1,252,254,140,255,169,2,106,3,139,0,70,254,191,254,166,255,167,255,99,0,126,2,224,3,224,2,136,0,218,254, +198,254,229,255,198,0,116,0,244,255,121,0,252,0,32,0,219,254,226,254,241,255,68,0,105,255,30,255,67,0,193,0, +50,255,228,253,154,254,63,255,99,254,87,254,137,0,122,2,237,1,41,0,38,255,99,254,50,253,46,253,24,255,105,0, +159,255,230,254,95,255,5,255,124,253,32,253,36,254,90,254,194,253,103,254,11,0,244,255,156,253,97,252,106,254,206,0, +96,0,227,254,248,254,72,255,58,254,105,253,33,254,72,255,11,0,153,0,197,0,54,0,36,255,129,254,101,255,3,1, +240,0,67,255,158,254,95,255,14,0,31,1,170,2,51,2,90,255,110,253,13,254,148,255,160,0,191,0,17,0,252,255, +253,0,227,0,223,254,213,253,48,255,14,0,153,254,116,253,239,254,249,0,195,0,22,255,75,254,233,254,68,0,135,1, +147,1,179,0,183,0,125,1,62,1,96,0,17,0,112,255,143,254,43,255,109,0,157,0,32,1,89,2,150,1,78,255, +241,254,43,0,206,0,112,1,14,2,18,1,147,255,113,255,208,255,63,0,84,1,128,1,218,255,174,254,5,255,100,255, +102,255,58,255,201,254,40,255,67,0,41,0,189,255,222,0,76,1,17,0,199,0,0,3,148,2,42,1,244,1,70,2, +38,1,1,2,178,3,31,3,157,2,59,3,34,2,55,1,101,3,151,4,196,2,114,2,95,3,136,1,189,255,72,1, +93,2,83,1,117,1,53,2,109,1,7,1,82,1,30,0,19,255,232,255,29,0,118,255,131,0,1,2,204,1,96,1, +138,1,72,1,250,0,215,0,117,0,233,0,21,2,253,1,53,1,49,1,210,0,58,0,61,1,108,2,224,1,110,1, +2,2,249,1,161,1,238,1,132,1,89,0,74,0,179,0,15,0,210,255,242,0,23,1,49,255,199,253,101,254,79,255, +254,254,63,254,67,254,231,254,75,255,11,255,206,254,144,255,234,0,12,1,111,255,73,254,56,255,64,0,114,255,202,254, +246,255,200,0,51,0,25,0,55,0,100,255,148,255,43,1,90,1,131,0,171,0,59,0,222,254,37,255,45,0,42,0, +194,0,27,1,145,254,124,252,37,254,184,255,203,254,71,254,227,254,5,255,160,254,137,253,89,252,72,253,126,255,69,0, +104,0,251,0,133,0,59,255,164,254,116,254,208,254,14,0,45,0,199,254,179,254,227,255,109,255,38,254,228,254,109,0, +77,0,37,0,152,1,156,1,137,254,173,252,19,254,125,254,247,252,172,253,252,255,30,0,36,255,122,255,254,255,22,255, +89,253,148,252,111,253,78,254,131,254,109,255,23,0,188,254,211,253,127,255,235,0,74,0,238,255,0,1,156,1,39,0, +19,254,58,254,171,255,141,255,246,255,86,2,168,1,15,254,170,254,240,1,190,1,182,0,204,0,29,255,169,254,130,0, +60,255,91,254,107,1,209,255,93,252,183,0,178,0,190,250,15,6,64,18,120,252,230,232,231,255,4,15,6,245,65,237, +223,10,31,17,44,248,128,243,228,5,252,11,15,1,48,248,72,252,254,4,33,2,216,249,49,253,170,1,230,251,67,254, +171,10,159,8,210,254,93,3,237,5,232,247,185,242,223,255,174,4,132,251,4,250,71,3,11,8,128,3,208,252,138,250, +112,252,74,254,216,255,225,1,97,0,106,252,197,253,192,2,99,3,176,1,103,1,225,254,171,251,234,253,30,2,180,1, +217,252,238,246,170,249,252,10,144,20,211,1,1,240,157,253,39,12,103,254,163,244,165,5,161,15,74,255,105,241,132,249, +125,7,78,7,33,251,112,246,75,255,124,3,212,252,62,251,4,255,95,252,25,251,37,3,115,7,228,1,168,253,156,254, +254,253,248,250,120,252,206,1,128,255,85,251,63,9,123,21,66,254,133,231,29,253,48,15,101,247,161,239,50,14,51,20, +63,250,59,247,139,8,227,8,101,253,174,249,196,254,173,4,232,1,212,252,165,1,84,1,103,245,201,249,138,10,30,6, +106,252,232,6,158,8,229,245,144,242,220,255,183,1,101,255,78,5,27,6,204,0,229,0,69,1,152,252,199,250,84,255, +54,5,36,6,221,255,212,250,194,254,136,3,247,0,217,253,92,0,180,3,222,3,127,3,234,2,75,253,188,245,202,248, +63,4,23,6,163,254,106,254,155,2,30,255,254,250,216,253,111,255,127,253,58,0,55,6,105,6,211,0,63,254,94,1, +62,1,167,250,157,249,164,1,122,4,207,254,41,253,17,1,115,2,156,1,202,1,113,2,210,3,240,4,98,3,172,0, +133,255,152,0,131,2,17,1,214,253,190,1,177,8,90,4,83,250,220,250,209,0,75,0,208,254,21,2,30,4,149,2, +126,0,60,254,3,254,235,1,75,4,202,0,157,253,91,0,227,3,203,1,51,253,65,252,158,254,253,0,68,3,79,5, +230,3,204,254,253,251,33,255,95,3,23,3,67,0,187,255,146,1,66,3,211,3,113,2,117,255,8,255,88,2,87,3, +69,0,227,255,103,2,51,0,95,251,154,252,199,0,182,255,193,252,99,254,213,1,128,2,105,1,2,1,186,1,249,1, +77,0,226,254,103,255,117,254,36,252,162,254,241,3,9,3,102,254,20,255,250,1,90,0,151,254,253,0,163,2,29,1, +224,255,34,255,250,253,101,255,47,3,4,4,115,1,69,0,202,0,44,0,252,255,153,1,247,0,85,253,245,252,179,0, +166,1,46,255,63,255,64,1,177,0,60,255,78,255,193,254,160,253,70,254,42,255,175,254,14,255,182,0,5,1,126,255, +84,254,177,255,136,2,191,1,246,252,87,252,62,1,186,1,43,253,224,253,44,2,126,0,26,253,111,255,187,0,46,252, +154,250,108,255,210,1,246,254,106,253,178,254,124,254,248,252,134,253,167,254,242,252,218,250,99,252,235,254,146,254,2,254, +173,255,38,0,66,254,220,253,49,255,143,254,80,252,73,252,18,255,1,1,200,255,228,253,126,254,207,255,88,255,111,255, +240,0,28,0,193,253,185,254,71,1,196,0,222,254,99,254,74,254,171,254,51,0,165,0,108,255,42,255,101,0,113,1, +158,1,198,0,144,255,72,255,84,255,186,254,155,254,38,255,20,255,15,255,219,255,33,0,143,255,230,254,254,253,238,253, +156,255,63,0,182,254,159,254,115,0,148,0,145,255,64,0,56,1,166,0,190,255,25,255,128,254,190,254,74,255,185,254, +254,253,127,254,60,255,217,254,198,253,158,253,29,255,112,0,131,255,212,253,15,254,84,255,44,255,195,253,47,253,50,254, +28,255,133,254,75,254,32,0,71,1,199,255,254,254,205,0,152,1,166,255,21,254,171,254,166,255,103,255,116,254,132,254, +194,255,101,0,112,0,80,1,101,1,107,255,255,254,93,1,218,1,232,255,69,0,32,2,37,1,87,255,79,0,222,1, +208,1,153,1,67,1,30,0,50,0,196,1,156,1,211,255,12,0,255,1,56,2,175,0,197,255,15,0,29,1,73,2, +64,2,33,1,136,0,59,0,163,255,96,0,243,1,68,1,205,255,109,1,150,3,60,2,106,0,79,1,53,2,180,1, +102,1,114,0,10,255,112,0,187,2,46,1,51,255,138,1,42,3,37,0,116,254,137,0,168,0,151,254,48,255,158,0, +157,255,137,255,167,1,172,1,246,255,161,0,9,2,51,1,154,0,173,1,133,1,5,0,13,0,28,1,17,1,150,0, +245,0,224,1,201,2,17,3,88,2,169,1,233,1,124,2,7,3,56,3,188,1,113,255,190,255,55,2,127,2,97,0, +226,255,102,1,225,1,9,1,151,0,128,0,58,0,111,0,42,1,95,1,206,0,98,0,196,0,153,1,61,2,132,2, +39,2,166,0,11,255,97,255,12,1,68,1,29,0,20,0,13,1,60,1,252,0,15,1,143,0,182,255,12,0,254,0, +238,0,85,0,53,0,54,0,37,0,63,0,52,0,22,0,44,0,180,255,214,254,140,255,86,1,214,0,44,254,85,253, +254,254,214,255,227,254,51,254,140,254,249,254,35,255,73,255,66,255,199,254,24,254,7,254,225,254,161,255,125,255,63,255, +121,255,113,255,71,255,230,255,108,0,138,255,183,254,192,255,38,1,217,0,171,255,73,255,128,255,161,255,208,255,227,255, +105,255,32,255,220,255,114,0,140,255,121,254,12,255,10,0,100,255,56,254,184,254,2,0,194,255,75,254,170,253,23,254, +67,254,253,253,22,254,132,254,180,254,203,254,38,255,134,255,126,255,236,254,57,254,99,254,127,255,237,255,0,255,98,254, +247,254,119,255,89,255,129,255,169,255,206,254,233,253,198,254,124,0,88,0,124,254,233,253,43,255,118,255,56,254,236,253, +246,254,137,255,147,255,186,255,109,255,235,254,18,255,236,254,201,253,92,253,93,254,247,254,73,254,170,253,74,254,176,255, +91,0,190,255,72,255,216,255,43,0,182,255,161,255,236,255,150,255,25,255,75,255,138,255,48,255,207,254,71,255,144,0, +107,1,234,0,2,0,230,255,13,0,238,255,28,0,96,0,214,255,246,254,240,254,205,255,139,0,82,0,152,255,233,255, +83,1,196,1,123,0,80,255,95,255,165,255,139,255,173,255,15,0,40,0,140,0,200,1,80,2,253,0,218,255,104,0, +135,0,88,255,107,255,242,0,30,1,6,0,221,255,85,0,128,0,214,0,33,1,131,0,79,255,139,254,184,254,134,255, +253,255,219,255,29,0,226,0,239,0,57,0,241,255,252,255,101,255,163,254,207,254,183,255,86,0,37,0,133,255,105,255, +20,0,133,0,70,0,68,0,194,0,238,0,181,0,82,0,153,255,115,255,190,0,205,1,26,1,8,0,168,255,76,255, +87,255,87,0,240,0,113,0,58,0,17,1,10,2,225,1,159,0,26,0,218,0,152,0,100,255,53,0,236,1,10,1, +77,255,191,255,161,0,85,0,13,0,14,0,81,0,33,1,227,0,113,255,108,255,88,0,31,0,125,0,35,2,76,2, +254,0,178,255,115,254,200,255,183,3,28,3,178,253,18,253,12,1,136,0,41,253,28,254,80,1,26,2,189,0,21,255, +121,255,156,1,255,0,80,254,165,254,244,255,82,255,85,0,167,1,26,255,16,254,233,0,39,0,217,253,7,1,39,2, +205,252,198,252,37,3,86,3,63,255,115,0,2,3,4,2,127,1,37,2,90,1,85,0,222,255,226,255,5,1,194,0, +170,254,182,255,99,2,167,0,105,254,201,0,137,2,223,0,35,0,27,0,230,254,10,255,154,0,163,1,181,2,144,2, +65,0,104,255,203,255,239,253,144,253,172,1,79,4,64,3,71,2,116,0,202,253,42,255,111,2,249,1,128,0,9,1, +205,1,117,3,34,4,43,255,151,251,129,1,238,5,183,255,96,251,155,0,5,4,220,0,55,255,164,0,242,0,171,0, +191,0,36,0,16,0,136,1,174,2,179,1,37,255,11,254,246,255,63,1,41,0,13,1,12,3,34,0,146,252,244,255, +230,3,232,0,189,253,228,255,206,1,37,1,153,1,69,2,108,0,111,254,89,255,215,1,148,2,23,1,98,0,16,1, +232,255,172,253,138,254,33,1,200,1,207,1,42,2,18,1,39,0,140,1,196,2,240,1,139,0,138,255,20,255,179,254, +208,253,224,254,170,2,136,3,38,0,64,255,253,0,119,255,31,253,197,254,56,1,230,1,167,2,161,2,60,1,139,0, +159,255,219,253,129,254,172,0,134,0,44,0,212,1,220,1,40,255,119,253,81,254,68,0,24,1,150,255,111,254,152,255, +170,255,201,253,23,254,43,0,175,0,234,0,105,1,207,255,238,253,137,254,71,255,138,254,239,253,80,253,255,252,243,254, +253,0,2,0,134,254,137,254,193,253,168,252,33,254,156,0,175,0,1,255,149,254,229,255,246,255,145,253,148,252,189,254, +169,255,35,254,44,254,86,255,157,254,6,254,10,255,35,255,152,254,24,255,209,254,145,253,22,254,199,255,71,0,100,255, +74,253,137,251,210,252,36,255,222,254,56,254,129,255,199,255,96,254,96,254,84,255,212,254,235,253,123,254,188,255,149,255, +212,253,51,253,166,254,214,254,103,253,34,254,161,255,240,253,49,252,162,253,88,254,240,252,134,253,218,255,44,0,179,254, +171,253,1,254,54,255,229,254,195,252,155,252,189,254,45,255,124,254,141,255,40,0,54,254,119,252,178,252,154,253,75,254, +189,254,104,255,105,0,53,0,215,254,186,254,25,255,248,253,224,253,243,255,29,0,6,254,220,253,120,255,252,255,119,255, +178,254,63,254,9,255,131,255,71,254,211,253,18,255,134,255,120,255,64,0,21,0,197,254,173,254,122,255,9,0,224,0, +223,0,29,255,13,254,218,254,243,255,3,1,165,1,184,0,165,255,175,255,57,255,121,254,7,255,131,255,77,255,10,0, +220,0,135,0,106,0,63,0,41,255,145,255,246,1,1,3,37,2,46,1,42,0,204,255,232,0,141,1,209,0,97,0, +102,0,101,0,223,0,251,0,67,0,87,0,236,0,148,0,145,0,113,1,116,1,239,0,29,1,67,1,88,1,195,1, +148,1,126,1,152,2,148,2,182,0,83,0,211,1,113,2,27,2,150,1,104,0,226,255,44,1,74,2,227,1,61,1, +85,1,216,1,162,1,78,0,233,255,132,1,179,2,117,2,103,2,64,2,125,1,142,1,171,1,123,0,149,0,205,2, +83,3,169,1,22,1,121,1,28,1,246,0,186,1,105,2,76,2,60,1,46,0,175,0,214,1,182,1,8,1,3,1, +75,1,252,1,32,3,93,3,74,2,17,1,162,0,60,1,143,1,1,0,161,254,4,0,139,1,22,1,246,1,74,4, +233,2,243,254,51,255,6,3,201,3,228,0,254,254,85,255,203,255,246,255,42,1,39,3,184,3,6,2,80,0,177,0, +31,2,141,2,191,1,163,0,241,255,208,255,213,255,63,0,218,1,18,3,161,1,36,0,202,1,2,3,137,0,212,254, +236,0,48,2,253,255,123,254,119,0,46,3,99,3,165,1,77,0,137,255,25,255,179,0,204,2,41,1,6,255,30,1, +162,1,87,254,66,0,235,4,29,1,211,251,41,255,119,2,168,0,244,255,239,254,57,253,214,0,91,4,187,1,255,255, +192,255,73,252,1,251,10,253,244,255,103,10,41,19,200,6,79,247,158,253,178,2,230,244,44,241,237,255,115,3,71,249, +56,248,190,2,242,13,130,15,236,2,190,250,58,4,76,6,213,246,84,244,142,255,252,251,8,246,201,0,198,4,123,254, +164,9,170,20,255,0,38,238,27,249,243,1,67,247,65,245,84,2,68,9,32,7,71,3,207,253,234,250,231,253,231,0, +109,1,74,1,72,255,51,252,79,249,67,246,133,248,11,1,43,4,116,0,46,1,34,4,222,1,26,0,41,0,166,251, +243,247,187,250,12,253,218,253,38,2,53,4,191,255,29,252,69,252,0,253,138,254,25,255,249,252,81,254,133,3,3,3, +69,254,69,255,112,2,228,255,238,252,245,254,19,1,154,0,23,0,195,254,12,252,15,252,100,255,244,255,196,251,96,249, +194,252,190,0,161,0,76,255,26,0,235,1,134,3,18,4,131,1,50,253,83,251,111,251,201,250,89,251,244,254,21,2, +213,1,239,255,245,254,162,255,141,0,114,255,7,253,118,252,87,254,174,0,8,2,114,1,153,255,36,255,234,255,26,255, +236,253,88,255,7,1,184,255,146,253,82,253,72,254,107,255,194,255,1,254,53,252,25,254,73,2,5,4,80,2,105,255, +202,252,182,251,63,253,160,255,0,0,18,255,187,255,161,1,188,1,243,255,32,255,143,255,75,255,73,255,119,1,114,3, +146,2,50,1,45,1,56,0,199,254,115,0,69,3,43,2,177,254,135,253,150,254,70,0,107,2,31,3,142,1,225,0, +139,1,89,0,233,254,217,0,141,2,252,255,21,254,145,1,209,5,101,5,10,2,117,255,99,254,98,254,20,255,234,255, +155,0,172,0,127,255,118,254,240,255,166,2,193,2,144,0,27,0,170,1,163,1,88,255,116,253,55,253,107,254,210,0, +239,2,24,3,157,1,13,255,228,251,221,250,137,253,44,0,206,255,196,255,41,2,191,2,165,255,110,253,129,254,59,0, +126,1,235,2,240,2,212,0,16,255,114,254,98,253,208,252,121,254,30,0,125,255,252,254,172,0,67,2,6,2,152,1, +230,1,248,1,12,2,214,2,202,2,156,0,115,254,190,254,42,0,108,0,106,0,156,1,28,2,45,0,124,254,160,255, +53,1,187,0,44,0,253,0,32,1,80,0,125,0,52,0,122,253,224,251,106,254,236,0,214,255,126,254,25,255,11,255, +165,254,184,0,191,2,8,1,179,254,42,255,98,255,143,253,115,253,223,255,6,1,181,0,117,1,167,1,13,255,129,252, +229,252,127,254,128,255,104,0,153,0,20,255,145,253,186,253,65,254,228,253,139,253,230,253,159,254,151,255,68,0,169,255, +125,254,135,254,129,255,170,255,221,254,56,254,238,253,199,253,33,254,253,254,171,255,31,0,228,0,172,1,153,1,215,0, +70,0,235,255,88,255,18,255,179,255,102,0,70,0,48,0,254,0,163,1,38,1,108,0,51,0,219,255,110,255,208,255, +111,0,9,0,96,255,238,255,239,0,226,0,61,0,17,0,7,0,161,255,135,255,12,0,225,255,180,254,112,254,199,255, +222,0,200,0,176,0,12,1,247,0,91,0,22,0,31,0,177,255,30,255,125,255,190,0,209,1,31,2,176,1,231,0, +116,0,93,0,242,255,93,255,106,255,251,255,151,0,48,1,96,1,191,0,177,255,183,254,97,254,70,255,116,0,85,0, +181,255,51,0,19,1,11,1,74,0,56,255,162,254,181,255,112,1,189,1,44,1,76,1,182,1,198,1,164,1,69,1, +36,1,166,1,128,1,136,0,255,0,234,2,136,3,83,2,51,1,28,1,232,1,199,2,111,2,40,1,132,0,230,0, +170,1,238,1,239,0,52,0,166,1,189,2,195,0,41,255,218,0,67,2,18,1,40,0,154,0,177,0,159,0,11,1, +18,1,207,0,70,1,59,2,147,2,137,1,23,0,118,0,180,1,156,0,242,254,154,0,174,2,8,1,68,255,11,1, +119,2,173,0,83,255,146,0,69,1,137,255,253,253,220,254,137,0,213,0,94,0,166,0,157,1,15,2,97,0,28,253, +132,252,182,255,243,0,113,254,222,253,172,255,9,255,219,253,85,255,209,255,183,254,225,255,96,0,2,253,132,252,129,1, +8,3,51,255,203,254,22,2,113,1,63,254,201,254,20,1,209,0,202,255,81,255,184,253,9,253,67,255,53,0,196,254, +101,255,1,0,229,253,49,255,151,2,98,255,211,251,115,255,193,0,251,252,82,253,195,255,86,255,51,255,72,254,41,252, +49,254,149,1,29,1,90,255,84,253,240,252,216,1,208,3,218,253,231,252,146,2,110,0,229,249,122,251,19,0,158,0, +66,0,126,0,227,0,126,0,176,253,53,254,45,3,146,0,65,249,136,252,66,2,143,254,178,252,14,255,188,252,248,252, +109,254,202,248,101,2,37,26,244,11,105,228,132,238,221,18,108,3,173,230,21,1,242,30,180,5,207,230,173,244,63,17, +164,17,231,249,150,238,65,255,138,11,246,253,35,243,19,249,67,250,238,250,87,10,134,18,236,5,209,253,78,2,214,254, +187,243,186,244,129,1,122,6,68,253,80,247,191,0,245,9,69,4,109,252,90,254,172,0,46,254,6,254,74,255,250,251, +4,248,231,250,203,3,115,9,83,5,238,254,110,0,76,4,26,2,172,254,74,254,214,253,36,255,119,3,230,3,162,254, +118,250,252,252,156,6,171,12,70,3,28,248,157,254,181,6,153,253,188,248,129,7,108,15,5,1,73,243,101,247,151,3, +246,8,172,3,33,253,87,254,209,0,132,253,222,250,228,251,84,252,99,254,129,2,18,3,195,2,114,4,100,1,210,251, +217,252,12,255,55,252,94,251,35,254,59,0,198,3,75,5,20,255,118,251,92,1,33,5,223,2,144,1,225,254,157,250, +39,252,73,255,41,254,157,255,185,3,233,2,213,255,95,253,214,250,59,253,119,255,230,249,180,254,139,17,62,13,122,243, +82,246,27,12,98,2,143,239,254,254,84,16,150,2,10,245,99,251,31,2,187,3,49,4,91,255,178,253,73,3,179,255, +1,247,25,254,85,9,41,6,226,3,132,11,193,10,246,254,17,248,54,249,14,254,128,2,198,254,170,248,144,254,157,6, +24,1,126,251,52,1,209,2,12,253,222,255,6,7,58,4,45,255,86,0,44,255,141,251,247,254,159,3,182,255,131,250, +174,252,52,1,46,2,238,0,199,255,237,255,85,1,39,1,56,254,135,252,154,255,253,4,192,6,160,3,61,0,62,255, +181,254,214,252,131,249,29,247,122,250,147,2,179,6,190,3,118,255,202,253,195,255,194,4,246,5,108,0,222,253,213,0, +221,253,78,247,102,252,22,7,55,5,42,253,54,255,127,4,175,0,187,251,222,254,104,2,136,0,182,0,82,5,152,5, +92,0,156,254,18,1,202,0,79,255,98,1,145,2,86,0,172,1,102,6,207,4,105,254,5,254,221,1,150,0,71,253, +126,255,68,2,4,255,123,252,226,1,92,8,98,7,230,2,172,1,213,1,135,255,154,252,84,252,73,254,105,255,95,254, +106,254,219,1,145,3,170,255,237,252,161,0,160,3,113,0,76,253,93,254,241,254,110,253,124,254,197,2,62,5,120,3, +232,0,21,1,250,1,12,0,154,253,161,254,123,0,69,255,221,253,61,255,67,0,18,255,160,254,137,255,140,255,110,255, +138,0,235,0,19,0,107,0,39,1,184,255,83,254,173,255,6,1,38,0,62,255,22,255,206,254,6,0,197,2,173,3, +154,2,191,1,92,0,52,255,4,1,109,2,150,255,14,254,65,1,13,2,157,254,144,254,192,0,14,254,15,251,137,254, +68,2,52,0,143,253,16,254,233,254,0,0,18,2,206,1,90,255,216,254,237,254,75,253,238,253,198,0,38,255,59,251, +67,253,202,1,229,0,43,254,216,254,68,255,160,253,28,254,183,0,61,1,139,255,200,254,204,255,199,0,175,0,109,0, +44,0,25,255,117,254,58,255,244,254,41,253,84,253,111,255,1,0,113,255,24,0,192,0,135,255,240,253,149,254,68,0, +8,255,12,252,186,252,68,255,185,253,63,251,1,253,191,254,113,253,98,253,254,254,31,255,247,254,144,255,247,255,25,1, +172,1,116,255,117,254,6,1,191,1,106,255,181,254,33,255,106,254,181,254,56,0,106,0,92,255,249,253,51,253,196,254, +17,1,40,1,74,0,177,255,131,254,162,254,214,0,63,1,37,255,16,254,43,254,248,253,140,254,55,0,87,1,255,0, +183,255,89,255,82,0,232,255,231,253,232,253,166,255,171,255,130,254,136,254,119,255,48,0,42,0,200,255,198,255,244,254, +84,253,75,254,238,0,67,0,218,253,185,253,225,253,220,253,27,0,115,1,32,0,126,0,67,1,60,254,116,252,110,255, +134,0,19,254,240,253,166,255,141,255,58,255,133,255,178,254,32,254,118,255,243,0,206,0,61,255,227,253,103,254,185,255, +8,0,100,0,83,1,55,1,239,0,221,1,184,1,204,255,128,255,75,1,249,1,36,1,251,0,23,2,76,3,200,2, +216,255,128,253,63,255,155,2,94,2,200,255,57,0,224,2,76,2,223,254,228,253,76,0,95,2,56,2,79,1,150,1, +193,2,146,2,0,1,211,0,16,2,172,1,203,255,106,255,228,0,53,2,48,2,56,1,4,1,106,2,49,3,176,1, +68,0,32,1,151,2,151,2,158,1,231,0,202,0,250,0,223,0,96,0,79,0,225,0,248,0,117,0,208,0,209,1, +113,1,50,0,90,0,15,1,86,0,180,255,211,0,210,1,64,1,144,0,135,0,120,0,137,0,222,0,166,0,20,0, +84,0,3,1,4,1,244,0,116,1,83,1,160,0,74,1,84,2,51,1,247,255,163,1,130,3,165,2,132,1,218,1, +195,1,42,1,91,1,105,1,27,1,180,1,31,2,38,1,214,0,187,1,2,1,3,255,117,255,190,1,7,2,180,0, +167,0,107,1,111,1,70,1,24,1,105,0,149,0,253,1,22,2,162,0,130,0,129,1,46,1,86,0,147,0,200,0, +104,0,120,0,130,0,209,255,148,255,75,0,161,0,48,0,243,255,11,0,219,255,148,255,149,255,124,255,115,255,50,0, +193,0,210,255,195,254,232,254,233,254,75,254,74,254,120,254,14,254,243,253,26,254,211,253,235,253,81,254,252,253,226,253, +151,254,184,254,121,254,177,254,105,254,31,254,44,255,232,255,103,255,120,255,165,255,174,254,120,254,110,255,95,255,246,254, +171,255,20,0,172,255,135,255,56,255,162,254,228,254,166,255,18,0,66,0,233,255,44,255,14,255,59,255,221,254,91,254, +14,254,61,254,56,255,178,255,255,254,210,254,50,255,121,254,219,253,212,254,122,255,134,254,125,253,153,253,227,254,115,0, +145,0,72,255,172,254,84,255,138,255,40,254,11,253,254,254,232,1,191,0,114,253,32,254,137,0,51,254,117,249,126,249, +146,254,69,2,151,0,146,253,220,254,170,1,118,0,149,253,216,252,46,253,196,254,41,1,192,255,69,252,17,253,199,254, +48,253,157,254,79,3,190,1,160,252,39,254,205,1,219,255,66,254,218,0,209,0,71,254,114,0,15,4,153,1,99,253, +44,254,178,0,91,1,215,1,219,0,94,253,228,252,53,0,90,0,30,254,196,255,230,1,12,0,140,255,7,2,61,1, +166,254,229,0,62,4,165,1,40,253,101,253,206,254,211,252,31,253,193,3,177,7,126,2,201,252,93,253,51,255,237,255, +58,2,98,3,103,1,151,0,57,1,188,255,247,253,82,254,7,255,208,255,68,1,237,1,6,2,72,2,9,1,31,255, +119,255,227,0,122,0,143,254,232,253,203,0,86,4,190,2,170,254,103,255,214,1,238,255,40,254,236,255,28,0,112,254, +133,255,103,1,247,0,172,0,79,1,79,0,107,254,200,254,61,1,59,2,86,0,18,255,148,0,234,1,239,1,10,2, +148,0,99,254,86,0,146,3,4,2,253,255,95,1,52,0,118,252,103,253,208,0,238,0,183,0,10,2,178,1,20,1, +35,2,67,1,50,254,231,253,203,0,83,2,75,0,131,253,131,254,100,2,23,3,145,0,131,0,243,1,134,0,248,254, +95,0,211,1,223,1,177,1,178,0,11,0,149,1,239,1,74,255,151,254,205,0,28,1,56,0,130,1,8,2,184,255, +144,254,154,255,133,255,179,254,145,255,200,0,113,0,253,255,253,0,200,1,93,0,201,254,231,255,79,1,240,255,194,254, +39,0,125,0,155,254,128,254,93,0,193,0,221,255,153,255,144,255,110,255,238,255,177,0,125,0,112,255,53,255,244,255, +174,255,48,255,109,1,233,3,91,2,240,255,181,0,81,1,240,254,206,252,230,253,93,1,162,3,81,2,54,1,65,3, +195,2,60,254,198,253,20,1,82,0,157,254,254,0,138,1,152,254,79,254,47,255,168,254,211,1,82,6,63,3,73,253, +135,254,149,2,13,1,82,253,211,253,242,0,235,1,230,0,136,1,175,3,237,2,160,254,25,252,78,254,98,1,64,1, +15,0,120,1,44,3,183,1,12,0,6,1,64,1,91,255,58,255,28,1,87,1,233,255,102,255,41,0,176,0,246,255, +19,255,182,255,39,1,21,2,139,2,213,1,49,0,219,255,15,0,65,255,10,0,23,2,41,1,185,255,131,1,163,1, +117,254,60,254,119,0,138,0,52,1,190,3,195,3,124,1,84,255,209,252,127,252,221,255,157,1,87,0,125,0,93,1, +180,0,153,0,186,0,87,255,207,254,187,255,130,255,172,254,145,254,192,254,179,255,108,0,76,255,71,255,148,1,181,1, +206,255,72,0,43,1,111,255,35,254,193,254,32,255,181,255,37,1,123,1,100,0,79,255,220,254,87,255,236,255,44,255, +84,254,11,255,194,255,76,255,32,255,174,255,176,255,15,255,212,254,15,255,237,254,169,254,89,255,43,0,92,255,217,253, +122,253,202,253,56,254,52,255,18,0,248,255,47,255,15,254,116,253,15,254,115,254,11,254,154,254,163,255,77,255,241,254, +111,255,183,254,41,253,49,253,33,254,139,254,252,254,109,255,79,255,244,254,86,254,161,253,180,253,36,254,78,254,0,255, +0,0,241,255,48,255,143,254,236,253,214,253,157,254,2,255,196,254,241,254,94,255,63,255,143,254,143,253,36,253,67,254, +212,255,245,255,217,254,251,253,251,253,135,254,255,254,4,255,218,254,186,254,116,254,14,254,245,253,152,254,154,255,229,255, +46,255,126,254,137,254,239,254,17,255,179,254,64,254,105,254,235,254,210,254,65,254,74,254,72,255,88,0,12,0,52,254, +1,253,38,254,217,255,208,255,183,254,249,253,194,253,56,254,63,255,221,255,227,255,220,255,122,255,195,254,199,254,130,255, +233,255,241,255,252,255,217,255,154,255,136,255,147,255,216,255,77,0,97,0,39,0,35,0,239,255,58,255,251,254,178,255, +61,0,176,255,246,254,131,255,206,0,155,0,204,254,40,254,187,255,57,1,41,1,155,0,128,0,174,0,243,0,38,1, +243,0,62,0,165,255,34,0,79,1,102,1,106,0,112,0,149,1,206,1,191,0,255,255,147,0,214,1,206,1,221,255, +218,254,149,0,79,2,221,1,242,0,249,0,169,1,126,2,221,1,148,255,56,255,170,1,175,2,137,1,148,1,32,2, +211,0,160,255,59,0,7,1,75,1,109,1,48,1,24,1,111,1,80,1,73,1,1,2,248,1,89,1,216,1,239,1, +122,0,46,0,113,1,175,1,100,1,122,1,166,0,77,0,253,1,196,2,113,1,123,0,246,0,162,1,143,1,27,1, +43,1,86,1,2,1,149,1,224,2,72,2,207,0,241,0,220,0,190,255,12,0,224,0,168,0,114,1,181,2,229,1, +208,0,6,1,55,1,253,1,226,2,112,1,2,0,26,1,56,1,189,255,140,0,141,2,146,2,173,1,80,1,161,1, +78,2,150,1,46,0,198,0,137,1,182,0,235,0,70,1,182,255,22,0,147,2,208,1,229,255,60,1,82,2,90,1, +63,1,222,0,92,255,135,255,140,0,122,0,203,0,48,1,219,0,100,1,146,1,65,0,182,0,76,2,18,1,161,255, +212,0,4,1,23,255,224,254,77,1,151,3,29,3,133,0,96,255,4,0,252,255,3,0,86,0,63,255,55,255,107,1, +108,1,90,255,108,255,66,1,7,2,103,254,67,250,142,4,201,21,97,13,25,245,80,247,157,4,226,247,185,238,175,2, +95,10,45,248,222,243,224,1,158,11,205,15,104,9,142,250,137,253,106,8,180,251,40,240,134,253,247,0,199,245,109,254, +40,8,99,251,110,253,81,19,144,12,200,242,116,244,71,1,11,250,123,243,69,254,211,6,128,4,36,2,43,2,232,0, +219,253,61,249,232,247,202,255,33,9,232,5,142,250,208,248,114,0,26,0,4,247,94,246,132,0,5,7,53,5,158,1, +150,254,221,251,183,251,50,253,71,252,102,250,116,253,42,4,40,5,215,254,190,251,31,255,184,254,114,248,66,248,25,1, +27,7,155,4,179,255,26,252,68,250,191,253,11,4,224,2,102,252,54,254,24,5,148,1,249,247,76,248,211,255,148,1, +114,253,164,251,88,255,81,3,9,0,146,249,178,251,38,3,170,3,94,0,80,1,219,1,64,255,197,254,215,254,202,251, +88,250,236,252,36,255,76,255,102,254,222,253,180,0,46,5,181,4,60,255,8,251,96,251,63,255,58,2,56,0,79,253, +37,255,36,1,169,254,65,253,132,255,167,255,84,253,200,253,8,0,15,0,242,254,236,254,73,255,150,255,246,0,76,3, +174,3,198,255,1,251,42,251,194,254,113,255,90,253,55,253,87,255,209,1,12,4,206,3,161,0,226,254,112,255,204,254, +181,254,244,1,254,3,228,1,7,0,143,0,160,1,2,3,162,3,240,0,21,253,34,253,145,255,235,255,65,255,99,0, +139,2,159,3,179,2,97,0,204,254,234,255,152,3,177,6,221,4,35,255,144,252,186,254,113,255,57,254,245,0,196,5, +76,5,109,0,65,253,244,252,153,253,127,254,126,255,235,0,239,2,37,4,201,3,164,2,193,0,128,254,209,253,238,254, +220,255,229,255,147,255,101,255,35,0,53,1,141,0,250,254,160,255,186,1,72,1,99,254,145,253,229,255,235,0,236,254, +117,254,99,1,252,2,111,1,115,0,125,0,75,255,134,254,120,255,116,255,110,254,8,255,92,0,13,1,100,2,56,3, +84,1,71,255,204,255,198,0,155,0,200,0,118,1,83,1,187,0,182,0,154,0,5,255,7,253,154,253,55,0,12,1, +36,0,92,0,195,0,27,0,210,0,138,2,45,2,80,1,227,1,203,0,193,253,179,252,254,252,90,252,27,253,177,255, +161,0,63,0,167,0,7,0,243,253,231,253,30,0,181,0,135,254,11,253,111,255,142,3,10,4,130,0,25,254,113,254, +49,254,55,252,10,251,184,252,61,0,194,1,192,255,63,254,130,255,243,255,84,254,141,253,209,253,64,254,31,0,203,1, +77,0,47,254,83,254,88,254,107,253,210,253,137,254,39,254,204,254,70,0,233,255,21,255,251,255,133,0,130,255,84,255, +171,0,157,1,105,1,210,0,119,0,1,0,18,255,234,254,116,0,202,1,212,1,28,2,239,1,114,255,86,253,121,254, +80,0,155,0,168,0,101,0,75,255,159,255,204,1,191,2,166,1,99,0,173,255,139,255,234,255,183,255,191,254,83,254, +242,254,11,0,202,0,133,0,147,0,134,2,237,3,34,2,201,255,142,255,171,255,74,255,242,255,253,0,41,1,134,1, +129,2,5,3,157,2,22,1,243,254,25,254,187,254,97,255,90,0,172,1,79,1,193,255,111,255,151,255,7,255,3,255, +97,255,62,255,225,255,217,0,66,0,14,0,125,1,20,1,228,254,66,255,42,1,33,1,157,0,168,0,188,255,179,255, +216,1,131,2,64,1,184,1,164,2,50,1,34,0,80,1,27,2,24,2,173,2,181,2,1,2,77,2,171,2,136,1, +103,0,95,0,104,0,120,0,242,0,74,1,212,1,224,2,193,2,8,1,94,255,113,255,93,0,184,0,51,0,30,255, +55,255,221,0,190,0,178,254,71,255,11,2,155,2,183,1,123,1,0,1,12,1,51,2,192,1,212,255,71,255,222,255, +220,0,223,1,138,0,95,254,193,255,186,1,231,255,104,254,239,255,117,0,34,0,4,2,217,2,184,255,54,253,48,255, +37,2,23,1,125,253,217,252,239,254,199,254,69,253,191,254,38,1,215,0,162,255,118,255,127,255,89,255,154,254,199,253, +60,255,99,1,67,0,137,254,239,255,87,0,218,253,160,254,234,2,253,2,229,254,229,253,248,255,233,255,90,254,244,254, +186,0,108,0,66,254,114,253,70,255,253,0,109,0,59,255,159,254,127,253,177,252,132,254,231,1,171,2,167,254,117,250, +165,252,31,1,17,255,247,251,23,0,131,2,219,253,222,253,238,2,38,1,241,252,141,254,171,255,6,254,68,253,234,251, +89,254,195,4,49,1,163,249,34,254,58,254,61,248,212,12,183,32,231,253,85,219,89,252,166,25,223,245,107,225,73,10, +7,31,30,251,123,227,163,252,184,23,119,9,152,234,24,238,247,9,64,10,109,245,159,245,27,254,143,248,207,253,140,15, +192,10,209,249,187,254,34,9,160,254,204,240,137,245,248,2,151,6,110,254,96,248,45,0,69,14,79,15,230,253,110,238, +88,246,18,8,162,5,139,246,252,248,17,7,201,5,233,249,55,251,209,9,59,15,181,0,215,242,73,251,153,9,133,5, +127,251,207,251,89,251,124,247,96,253,221,6,75,7,27,5,208,4,167,0,144,252,198,254,9,1,84,254,39,252,93,254, +186,0,80,0,254,1,242,6,230,5,153,254,54,254,91,3,139,0,99,251,25,0,78,5,217,255,126,248,204,249,121,1, +124,7,239,5,29,255,36,252,159,0,36,5,73,0,32,245,93,243,113,253,72,1,4,253,67,3,61,14,209,7,143,249, +145,249,25,1,8,2,230,255,77,0,21,2,191,1,180,252,134,249,84,254,141,0,57,251,9,253,107,6,34,6,18,255, +69,255,198,1,127,255,136,253,214,252,28,253,119,3,240,9,117,5,249,252,107,251,89,252,138,251,122,252,145,253,128,253, +179,1,73,7,152,4,71,253,47,251,252,251,6,251,97,252,79,2,77,8,97,10,98,5,82,253,138,252,197,1,73,2, +209,254,107,254,109,255,174,255,192,0,186,255,142,253,232,2,239,11,62,10,56,1,88,255,234,0,234,250,86,244,36,248, +195,0,236,4,133,5,32,5,202,2,2,0,122,255,4,0,171,255,69,255,0,0,223,0,54,255,132,250,2,248,42,252, +182,1,22,2,223,1,130,6,39,9,225,2,199,249,90,246,175,248,113,253,66,2,245,4,88,5,26,5,110,4,47,2, +84,254,110,251,29,253,29,1,161,255,29,250,40,252,30,5,1,6,247,252,117,249,81,0,8,5,119,1,110,254,228,1, +22,5,202,1,125,253,120,254,15,0,90,253,116,251,3,254,233,0,90,3,148,6,5,5,51,254,72,253,6,3,73,2, +113,252,182,255,120,7,45,4,220,251,180,253,75,4,84,4,40,3,34,6,134,5,234,255,39,255,245,2,96,1,225,251, +253,251,164,0,115,2,131,1,76,1,179,0,253,254,24,255,51,1,80,1,173,254,107,253,109,255,123,1,192,0,106,254, +0,253,121,253,43,255,248,0,126,2,214,3,244,3,147,1,37,254,13,253,79,255,124,1,152,0,14,255,4,0,222,0, +154,254,88,253,241,0,44,4,10,2,203,255,98,2,75,4,224,0,110,253,212,253,13,254,249,252,74,254,90,0,109,255, +15,255,18,2,226,2,92,255,26,254,112,0,45,0,167,253,132,254,91,1,197,1,87,1,191,1,130,0,66,254,164,254, +131,0,120,0,115,255,137,255,253,255,42,0,136,0,124,0,168,255,80,255,8,0,254,0,223,1,149,2,26,2,232,255, +130,253,246,252,107,254,29,0,132,0,118,255,244,253,238,253,32,0,111,1,55,255,93,253,245,255,62,2,214,254,180,250, +229,251,180,254,212,254,112,255,3,2,61,2,117,255,65,254,229,255,114,1,105,1,152,0,223,255,123,255,35,255,220,254, +46,255,204,255,77,0,73,1,200,1,93,255,158,251,244,250,5,253,34,254,110,254,208,255,240,0,66,0,254,254,10,254, +194,252,124,251,253,251,222,254,132,1,248,0,82,255,102,0,46,1,93,253,111,250,207,253,71,0,164,252,247,251,103,2, +191,4,154,254,234,250,134,254,196,1,224,0,72,255,181,254,64,255,8,1,171,1,0,0,252,254,181,255,227,255,154,255, +20,0,223,255,184,254,199,254,83,255,29,254,218,252,225,253,122,255,123,255,175,254,138,254,101,255,122,0,72,0,242,254, +216,254,76,0,109,0,128,254,124,253,137,254,24,255,253,253,130,253,177,254,125,255,96,255,38,0,229,0,146,255,227,254, +84,1,76,2,250,254,188,253,192,1,197,3,89,0,187,253,118,254,164,254,118,254,105,0,200,1,29,0,63,254,44,254, +94,254,248,253,122,253,185,253,118,255,185,0,16,255,183,253,56,0,8,2,98,255,230,253,179,0,101,1,210,253,141,252, +66,255,205,0,73,0,101,0,119,0,127,255,89,255,106,0,241,0,231,0,113,1,80,2,127,2,111,1,245,255,81,0, +140,2,25,3,215,0,212,255,239,1,34,3,6,1,29,255,40,0,150,1,149,0,190,254,234,254,183,0,160,1,205,0, +218,255,132,0,143,2,197,3,141,2,143,0,215,0,8,3,119,3,220,0,133,254,133,255,47,2,109,2,200,255,120,254, +248,0,149,3,51,2,110,255,62,0,57,3,5,3,212,255,18,255,221,1,43,3,174,0,187,254,152,0,27,3,108,2, +20,0,169,255,61,1,68,2,113,1,193,255,35,255,96,0,187,1,15,1,92,255,145,255,175,1,136,2,249,0,176,255, +122,0,101,1,174,0,231,255,131,0,6,1,120,0,115,0,107,1,172,1,57,1,115,1,152,1,175,0,111,0,184,1, +70,2,18,1,77,0,43,1,75,2,150,2,84,2,8,2,24,2,139,2,186,2,33,2,35,1,203,0,160,1,70,2, +203,0,119,254,189,254,60,1,253,1,130,0,39,0,89,1,39,1,69,255,150,254,254,255,47,1,186,0,9,0,104,0, +188,0,17,0,195,255,149,0,19,1,208,0,222,0,147,0,26,255,102,254,120,255,246,255,12,255,174,254,221,254,128,254, +227,254,81,0,47,0,144,254,137,254,188,255,67,255,184,253,171,253,232,254,161,255,53,255,67,254,31,254,83,255,59,0, +98,255,239,253,137,253,29,254,222,254,81,255,123,255,226,255,35,0,37,255,46,254,153,255,183,1,218,0,51,254,252,253, +49,0,40,1,144,255,162,253,151,253,255,254,177,255,5,255,125,254,253,254,206,255,83,0,2,0,145,254,205,253,44,255, +33,0,142,254,90,253,164,254,154,255,183,254,110,254,107,255,240,255,244,255,242,255,29,255,20,254,82,254,212,254,82,254, +45,254,69,255,1,0,150,255,24,255,17,255,43,255,61,255,38,255,207,254,121,254,98,254,148,254,0,255,113,255,204,255, +191,255,159,254,98,253,70,254,63,0,185,255,188,253,96,254,90,0,207,255,175,254,233,255,115,0,56,254,42,253,245,254, +4,0,136,255,36,0,50,1,105,0,15,255,32,255,182,255,192,255,213,255,71,0,168,0,169,0,253,255,215,254,83,254, +227,254,114,255,56,255,238,254,102,255,40,0,39,0,118,255,101,255,168,0,247,1,128,1,128,255,71,254,234,254,129,255, +149,254,52,254,53,0,32,2,103,1,243,255,239,255,254,255,98,255,194,255,192,0,81,0,16,255,133,254,55,254,145,254, +246,0,50,3,2,2,153,255,239,255,154,1,96,1,64,0,63,0,138,0,131,0,66,1,56,2,98,1,69,255,145,254, +225,255,17,1,170,0,140,255,6,255,17,255,53,255,211,255,253,0,65,1,211,255,196,254,193,255,243,0,112,0,162,255, +33,0,175,0,251,255,64,255,222,255,231,0,13,1,199,0,190,0,115,0,18,0,180,0,212,1,238,1,102,1,46,1, +167,0,177,255,147,255,66,0,138,0,112,0,111,0,162,0,98,1,234,1,145,0,194,254,175,255,3,2,188,1,191,255, +22,0,63,2,86,2,74,0,137,255,135,0,134,0,94,255,116,255,151,0,249,0,27,1,64,1,234,255,102,254,118,255, +40,1,139,0,167,255,86,0,179,0,163,0,140,1,136,1,110,255,59,254,35,255,4,0,121,0,21,1,225,0,8,0, +236,255,66,0,97,0,105,0,1,0,180,255,199,0,156,1,61,0,5,255,214,255,9,0,154,254,171,254,205,0,153,1, +206,255,28,254,4,255,119,1,74,2,201,0,133,255,184,255,192,255,212,254,103,254,190,255,160,1,89,1,127,255,74,0, +55,3,107,2,128,254,7,254,28,0,100,255,58,254,85,0,41,2,182,1,7,2,78,2,20,0,60,254,237,254,225,255, +180,0,246,1,115,1,162,255,212,255,129,0,190,254,134,253,112,255,19,1,61,0,158,255,165,0,171,1,253,1,217,1, +177,0,34,255,77,255,227,0,210,0,248,254,65,255,76,2,85,3,225,0,99,255,110,0,231,0,137,0,36,1,115,1, +180,0,109,0,222,255,189,254,24,0,215,2,84,2,168,0,5,2,61,3,179,1,157,0,49,0,98,254,135,253,196,254, +124,255,84,0,193,2,213,3,45,2,103,0,142,255,75,255,186,255,219,255,158,255,97,0,30,1,148,0,61,0,88,0, +8,0,172,0,217,1,201,0,215,254,0,255,180,255,55,255,41,255,21,0,208,0,22,1,186,0,201,255,99,255,226,255, +127,0,241,0,6,1,88,0,43,255,147,254,156,255,58,1,208,0,47,255,156,255,211,0,230,255,7,255,64,0,221,0, +237,255,170,255,12,0,243,255,182,255,107,255,70,255,200,255,243,255,113,255,178,255,77,0,204,255,214,254,132,254,48,255, +160,0,208,0,0,255,255,253,139,254,154,254,215,254,235,255,27,0,123,0,236,1,227,0,38,254,221,254,169,0,248,254, +133,253,218,254,13,255,64,254,113,255,91,0,61,255,184,254,80,255,128,255,125,255,75,255,8,255,119,255,55,255,152,253, +139,253,137,255,20,0,183,254,215,253,208,253,60,254,60,255,192,255,21,255,59,254,219,253,7,254,246,254,245,255,249,255, +63,255,185,254,209,254,36,255,247,254,110,254,103,254,182,254,180,254,197,254,24,255,222,254,86,254,219,254,52,0,101,0, +219,254,183,253,170,254,38,0,186,255,215,253,237,252,220,253,40,255,77,255,158,254,97,254,236,254,163,255,178,255,174,254, +210,253,176,254,210,255,38,255,135,254,152,255,184,255,21,254,16,254,231,255,103,0,186,255,178,255,99,255,119,254,193,254, +215,255,147,255,126,254,170,254,210,255,20,0,14,255,48,254,107,254,11,255,77,255,140,255,11,0,59,0,238,255,212,255, +66,0,135,0,23,0,121,255,76,255,66,255,20,255,74,255,29,0,160,0,227,255,126,254,38,254,90,255,112,0,19,0, +95,255,210,255,210,0,242,0,90,0,88,0,16,1,35,1,38,0,133,255,247,255,107,0,67,0,63,0,188,0,21,1, +203,0,59,0,242,255,221,255,174,255,213,255,186,0,110,1,215,0,169,255,126,255,166,0,190,1,130,1,97,0,181,255, +10,0,245,0,220,1,54,2,207,1,76,1,120,1,215,1,100,1,146,0,109,0,171,0,209,0,3,1,224,0,115,0, +141,0,183,0,136,0,22,1,159,1,167,0,63,0,97,1,37,1,30,0,63,1,17,2,124,0,59,0,244,1,226,1, +134,0,94,0,229,0,206,1,97,2,97,0,8,254,126,255,2,2,117,1,127,0,174,1,105,2,142,1,109,1,90,2, +73,2,238,0,240,255,12,0,170,0,144,1,141,2,157,2,157,1,245,0,58,1,143,1,87,1,142,0,161,255,159,255, +250,0,236,1,152,0,56,255,60,1,184,3,252,1,15,0,122,2,13,3,32,254,242,251,43,0,212,3,71,3,116,0, +105,254,50,1,113,5,93,2,39,253,165,0,65,5,6,1,146,252,191,254,209,0,144,0,78,1,134,1,253,0,162,1, +59,1,229,255,58,1,245,2,240,1,59,1,168,1,33,0,145,254,169,0,182,3,2,3,109,255,192,253,28,0,81,3, +178,2,29,254,101,251,240,254,218,3,252,2,0,255,198,254,166,1,187,1,136,252,40,250,32,6,130,20,130,11,217,247, +27,251,75,5,13,248,175,238,244,1,225,12,254,250,4,239,33,250,223,10,80,19,124,10,86,250,204,255,160,13,101,255, +164,237,213,248,154,0,222,247,159,0,63,12,201,253,110,249,143,12,24,7,167,238,102,244,223,6,84,0,155,246,198,255, +53,8,149,4,95,255,183,253,166,254,91,255,70,251,106,246,10,251,184,7,54,12,33,0,181,245,118,254,131,7,238,251, +204,240,189,250,0,6,208,3,114,2,65,5,144,1,25,251,187,248,113,247,187,248,168,255,137,5,98,5,136,2,251,255, +241,254,84,254,254,249,126,245,2,251,10,7,113,10,218,2,15,251,55,248,243,248,242,252,255,1,128,4,72,5,81,5, +193,1,108,251,238,247,245,248,246,251,192,254,131,255,26,255,90,0,227,0,127,253,143,251,137,255,111,3,191,2,228,1, +128,3,116,3,249,254,50,250,127,250,72,253,138,252,245,250,127,253,253,255,103,255,154,0,54,3,150,1,229,253,68,253, +147,254,200,255,127,0,144,255,97,254,77,255,120,0,57,0,226,255,65,255,9,254,141,253,117,253,116,253,169,254,171,255, +64,255,147,255,153,0,192,0,227,1,82,3,221,0,42,253,254,253,131,0,112,255,209,252,210,252,90,255,169,1,182,1, +195,0,91,1,110,2,128,1,138,255,140,254,144,254,54,255,251,255,60,0,183,0,254,1,190,2,22,2,167,0,60,255, +208,254,234,255,45,1,66,1,230,0,183,0,26,0,254,255,139,2,46,6,245,5,63,1,99,253,83,253,76,254,139,254, +61,0,27,4,167,6,245,4,84,1,228,255,28,0,217,254,208,252,193,252,182,254,224,0,110,1,100,0,37,1,126,4, +94,5,165,2,255,0,2,0,43,253,249,251,60,253,25,253,134,254,112,4,253,6,104,2,6,255,18,0,233,255,224,253, +231,253,222,255,244,0,26,0,225,254,67,255,71,0,119,0,68,1,235,2,42,3,240,1,68,0,57,254,52,253,122,253, +29,253,130,253,161,0,73,3,68,3,62,2,61,0,102,254,243,255,11,2,116,0,71,255,210,1,160,3,141,2,246,0, +29,255,120,253,35,254,237,255,73,0,228,255,80,0,15,1,146,0,53,255,125,255,78,1,82,1,254,255,37,0,98,0, +197,255,65,0,193,255,182,252,167,252,178,0,175,1,192,254,209,253,82,255,46,0,2,0,185,254,173,252,97,252,4,255, +183,2,76,4,85,2,242,255,229,255,227,254,101,251,145,250,215,253,53,0,204,255,196,254,157,254,15,0,137,1,106,0, +89,254,253,253,55,254,167,254,161,255,101,254,114,251,9,252,180,255,17,1,168,255,14,254,56,253,16,254,230,255,246,255, +193,254,7,255,40,0,251,255,175,254,237,253,219,254,133,0,232,0,79,0,232,255,28,255,151,254,39,0,13,2,10,2, +165,1,116,1,208,255,251,253,37,254,28,255,173,255,121,0,23,1,41,1,173,1,254,1,147,0,204,254,206,254,182,255, +219,255,152,255,175,255,218,255,224,255,13,0,97,0,96,0,225,255,169,255,127,0,157,1,185,1,70,1,61,1,249,0, +21,0,174,255,217,255,210,255,69,0,116,1,244,1,109,1,169,0,148,255,145,254,213,254,63,0,148,1,208,1,237,0, +123,0,200,0,217,255,207,254,101,0,97,1,182,254,55,253,48,255,251,255,160,255,18,1,252,0,163,254,77,255,115,1, +141,0,237,255,72,1,204,0,99,0,243,2,127,3,104,0,55,255,21,0,203,255,64,0,37,2,119,2,184,1,125,1, +215,0,251,0,181,2,76,2,204,255,24,0,245,1,33,1,49,0,167,1,71,2,147,1,217,1,88,1,160,255,74,0, +41,2,98,1,36,0,181,0,128,0,220,255,23,1,83,1,32,255,247,254,84,1,167,1,90,0,243,0,34,2,40,1, +213,255,57,1,65,3,20,1,243,252,213,254,168,4,108,3,129,252,111,252,2,3,91,4,51,255,214,252,16,0,251,2, +155,1,215,254,14,255,3,1,188,0,36,255,99,255,138,0,103,0,54,255,216,253,78,253,112,254,217,255,216,255,115,255, +47,0,163,1,63,2,207,0,43,254,215,252,225,253,254,255,53,1,176,0,245,255,58,0,207,255,194,254,130,255,237,255, +196,253,213,253,46,1,15,1,22,254,126,254,199,255,221,254,186,255,117,1,3,0,1,255,75,0,104,255,196,253,140,255, +104,1,247,255,223,253,219,253,67,255,241,254,250,252,228,253,131,254,27,251,153,1,72,18,194,12,155,241,13,241,241,9, +92,7,17,241,112,249,23,16,179,7,191,242,30,247,218,8,74,10,66,251,79,243,112,255,216,10,237,255,151,242,5,249, +191,0,210,252,171,254,182,5,105,1,28,252,12,2,129,3,238,249,115,247,3,1,178,6,140,1,241,251,145,254,72,3, +41,1,156,252,112,252,41,253,195,253,182,1,16,3,15,254,205,252,14,2,87,3,13,255,46,252,234,251,74,253,25,0, +200,1,143,1,42,0,204,254,242,2,56,10,47,5,160,245,82,243,178,0,22,7,201,1,90,255,133,2,63,3,24,255, +194,250,87,253,244,5,137,8,68,1,190,251,152,253,254,255,171,255,150,255,233,0,64,2,137,1,78,255,219,255,178,2, +118,1,254,252,250,252,162,1,15,4,179,1,116,254,100,254,39,0,77,255,253,252,254,253,204,0,157,1,27,2,201,2, +190,0,64,254,38,255,121,0,29,0,247,1,122,5,186,3,87,252,97,248,191,252,29,2,189,0,184,253,147,0,61,3, +83,254,35,250,188,254,53,3,79,0,85,254,170,1,7,2,120,253,248,251,0,255,23,1,41,1,224,0,69,0,7,0, +16,0,222,254,219,253,216,254,206,255,134,255,42,255,126,254,65,254,73,0,30,2,88,1,9,1,201,1,205,255,180,252, +28,253,152,255,232,0,0,1,7,0,9,255,206,255,77,0,193,254,185,254,51,1,110,1,248,254,205,254,78,1,235,1, +200,255,110,254,217,253,52,251,95,252,81,9,248,20,4,11,76,247,114,244,68,251,61,247,110,244,176,3,124,19,48,15, +59,0,8,249,55,253,246,2,13,255,21,247,25,253,46,14,121,18,59,4,229,244,178,240,77,246,135,253,146,255,103,2, +109,11,15,11,39,249,106,238,102,249,168,4,71,4,48,5,138,7,7,3,147,0,91,3,46,253,2,242,89,246,196,5, +174,10,44,4,183,254,237,251,238,249,195,252,113,3,79,5,174,255,155,250,215,252,53,2,99,3,254,1,46,3,61,4, +236,1,94,1,3,3,161,253,2,244,20,246,54,2,204,6,121,4,23,7,234,6,105,252,215,249,203,6,20,10,50,251, +94,245,46,1,112,6,157,254,55,252,220,2,88,6,82,4,118,1,172,255,12,1,45,3,3,255,91,249,162,253,219,5, +189,4,28,255,74,255,178,1,235,1,191,2,52,2,109,254,148,254,23,3,69,2,181,254,142,2,104,6,136,255,96,249, +175,255,37,6,86,1,211,251,234,254,246,2,222,1,39,0,196,255,170,253,115,251,180,253,103,3,196,6,81,4,82,254, +176,250,158,252,34,0,210,255,7,254,175,0,209,4,93,2,66,252,168,252,187,1,142,1,58,254,106,0,182,4,200,3, +170,1,195,2,199,1,243,252,172,250,80,252,34,254,64,0,40,2,133,0,24,254,234,255,140,2,144,1,11,0,189,255, +99,254,18,254,200,0,242,1,17,0,200,255,207,0,229,255,131,255,199,0,23,0,91,255,219,1,211,1,214,252,34,252, +213,1,59,4,1,2,152,1,9,1,205,253,21,254,4,2,100,1,159,253,248,253,187,255,20,255,79,0,17,3,86,1, +37,254,155,255,57,1,79,254,221,251,187,252,63,253,191,253,237,0,135,3,254,1,203,254,194,252,176,251,132,251,112,252, +17,254,30,0,254,0,7,255,200,252,220,253,149,0,158,1,121,1,84,1,154,0,126,255,251,254,148,254,149,253,211,252, +73,253,245,254,15,1,215,1,148,255,73,251,254,248,96,251,119,255,227,255,68,253,178,253,175,1,195,2,207,255,165,254, +166,255,58,254,113,252,237,254,205,1,222,255,203,252,72,253,75,255,106,0,49,1,244,0,165,255,45,0,148,2,173,2, +125,255,126,252,231,251,134,253,4,0,153,0,29,254,207,251,192,252,159,255,133,1,5,1,168,254,76,253,169,254,172,255, +21,254,189,253,223,0,205,2,34,1,246,255,128,0,135,255,241,253,164,254,45,255,134,253,191,253,213,0,3,1,148,253, +248,252,170,255,202,255,1,254,126,255,215,1,217,255,4,253,169,254,73,1,52,0,99,254,35,255,19,0,152,255,137,255, +12,0,5,0,49,0,70,0,204,254,221,253,21,0,60,2,182,0,162,254,161,255,25,1,252,255,39,254,77,254,239,255, +215,0,248,255,33,255,124,0,214,1,225,255,174,253,232,255,28,3,208,1,22,255,226,255,144,1,180,0,162,255,243,255, +10,0,171,0,234,2,162,3,187,1,141,1,164,3,239,2,183,255,175,255,54,2,212,1,55,255,198,254,13,0,216,0, +194,1,93,2,47,1,161,0,250,2,69,4,57,1,79,254,216,255,120,2,46,2,246,0,116,1,64,2,194,1,18,1, +72,1,173,1,94,1,239,0,186,1,106,3,134,3,76,1,214,255,63,1,199,2,156,1,212,255,81,0,161,1,35,1, +198,255,243,255,84,1,201,1,26,1,15,1,5,2,235,1,251,255,192,254,14,0,166,1,46,1,80,0,39,1,18,2, +8,1,142,255,176,255,130,0,144,0,144,0,87,1,218,1,53,1,107,0,156,0,37,1,251,0,193,0,147,1,149,2, +21,2,186,0,159,0,157,1,194,1,5,1,11,1,191,1,157,1,162,0,6,0,1,0,19,0,81,0,235,0,120,1, +145,1,60,1,168,0,56,0,85,0,214,0,38,1,37,1,75,1,187,1,204,1,225,0,146,255,46,255,196,255,255,255, +136,255,150,255,101,0,163,0,35,0,52,0,194,0,94,0,70,255,30,255,207,255,205,255,15,255,3,255,214,255,39,0, +90,255,117,254,92,254,141,254,99,254,132,254,160,255,185,0,160,0,10,0,224,255,146,255,151,254,239,253,116,254,48,255, +9,255,153,254,181,254,170,254,189,253,239,252,103,253,104,254,182,254,189,254,98,255,3,0,155,255,207,254,219,254,111,255, +126,255,50,255,69,255,83,255,167,254,223,253,1,254,185,254,47,255,157,255,115,0,217,0,245,255,179,254,119,254,236,254, +255,254,1,255,207,255,175,0,54,0,199,254,8,254,68,254,106,254,68,254,160,254,110,255,173,255,49,255,215,254,240,254, +1,255,242,254,23,255,48,255,210,254,119,254,212,254,126,255,153,255,109,255,188,255,17,0,115,255,101,254,90,254,80,255, +223,255,144,255,94,255,174,255,166,255,229,254,82,254,156,254,54,255,98,255,56,255,29,255,28,255,44,255,84,255,105,255, +53,255,247,254,247,254,230,254,109,254,23,254,158,254,147,255,223,255,134,255,151,255,95,0,241,0,197,0,130,0,176,0, +188,0,2,0,250,254,170,254,74,255,43,0,170,0,186,0,159,0,110,0,254,255,75,255,193,254,221,254,113,255,177,255, +69,255,207,254,11,255,197,255,67,0,99,0,151,0,239,0,223,0,44,0,115,255,133,255,83,0,246,0,217,0,103,0, +57,0,65,0,27,0,217,255,240,255,117,0,207,0,123,0,215,255,158,255,243,255,113,0,191,0,159,0,12,0,125,255, +59,255,4,255,253,254,210,255,26,1,100,1,143,0,7,0,80,0,114,0,12,0,247,255,183,0,136,1,97,1,81,0, +127,255,167,255,69,0,151,0,144,0,111,0,79,0,69,0,37,0,198,255,187,255,96,0,183,0,16,0,131,255,207,255, +0,0,216,255,106,0,136,1,209,1,76,1,243,0,248,0,94,1,17,2,238,1,110,0,79,255,171,255,4,0,123,255, +109,255,96,0,50,1,125,1,131,1,226,0,204,255,98,255,156,255,113,255,13,255,76,255,241,255,81,0,130,0,171,0, +149,0,69,0,35,0,114,0,215,0,158,0,252,255,12,0,172,0,112,0,147,255,184,255,119,0,91,0,91,0,168,1, +48,2,56,0,49,254,164,254,39,0,155,0,114,0,197,0,70,1,36,1,34,0,217,254,100,254,25,255,44,0,224,0, +18,1,209,0,135,0,152,0,125,0,205,255,71,255,90,255,151,255,44,0,1,1,132,0,214,254,225,254,209,0,34,1, +198,255,68,0,237,1,52,1,97,255,177,255,103,0,57,255,147,254,239,255,106,0,45,255,37,255,168,0,245,0,203,255, +89,255,41,0,253,0,226,0,229,255,56,255,231,255,222,0,147,0,253,255,135,0,6,1,44,0,80,255,184,255,55,0, +219,255,202,255,162,0,13,1,95,0,24,0,51,1,20,2,10,1,62,255,213,254,198,255,184,0,55,1,67,1,203,0, +127,0,184,0,94,0,103,255,209,255,182,1,112,2,110,1,204,0,198,0,25,0,173,255,131,0,0,1,90,0,71,0, +199,0,2,0,177,254,225,254,220,255,85,0,26,1,14,2,145,1,128,0,227,0,91,1,1,0,219,254,191,255,125,0, +191,255,201,255,67,1,188,1,205,0,119,0,168,0,4,0,85,255,206,255,147,0,196,0,221,0,5,1,1,1,61,1, +122,1,175,0,110,255,81,255,242,255,7,0,13,0,154,0,182,0,77,0,159,0,37,1,80,0,1,255,13,255,221,255, +13,0,216,255,165,255,83,255,155,255,237,0,226,1,152,1,24,1,165,0,80,255,4,254,190,254,146,0,202,0,146,255, +131,255,236,0,91,1,236,255,168,254,230,254,129,255,165,255,40,0,212,0,48,0,247,254,122,255,242,0,112,0,112,254, +3,254,60,255,171,255,14,255,255,254,165,255,19,0,13,0,197,255,128,255,174,255,14,0,228,255,104,255,52,255,228,254, +87,254,140,254,126,255,191,255,57,255,80,255,22,0,97,0,252,255,91,255,147,254,239,253,221,253,15,254,49,254,147,254, +1,255,238,254,227,254,109,255,146,255,191,254,67,254,219,254,72,255,214,254,109,254,138,254,178,254,176,254,148,254,110,254, +170,254,112,255,244,255,209,255,198,255,2,0,173,255,218,254,155,254,16,255,100,255,87,255,61,255,65,255,121,255,180,255, +93,255,119,254,237,253,56,254,198,254,19,255,27,255,242,254,219,254,40,255,125,255,57,255,173,254,175,254,61,255,170,255, +162,255,62,255,206,254,195,254,25,255,44,255,185,254,110,254,197,254,66,255,93,255,55,255,254,254,152,254,66,254,149,254, +126,255,17,0,216,255,136,255,229,255,136,0,144,0,229,255,41,255,212,254,203,254,191,254,193,254,236,254,64,255,209,255, +35,0,211,255,207,255,148,0,248,0,150,0,47,0,157,255,187,254,157,254,162,255,118,0,211,255,103,254,136,254,184,0, +19,2,227,0,58,255,245,254,180,255,199,0,90,1,192,0,198,255,111,255,219,255,191,0,9,1,67,0,48,0,53,1, +44,1,50,0,0,0,217,255,67,255,152,255,110,0,208,0,114,1,206,1,52,1,71,1,182,1,62,0,155,254,38,255, +163,255,80,255,205,0,168,2,163,1,30,0,220,0,120,1,254,0,170,1,224,1,97,255,90,254,108,1,26,3,252,0, +100,0,121,2,199,2,21,1,207,255,35,255,240,255,245,1,184,1,211,255,107,0,61,2,47,2,149,1,30,1,29,0, +77,0,92,1,237,0,217,0,150,2,143,2,226,255,116,254,214,255,249,1,40,2,49,0,19,0,237,2,70,3,10,0, +12,255,195,0,188,0,128,255,248,255,127,1,189,1,49,0,243,255,154,2,236,2,84,255,139,255,188,3,180,2,52,254, +175,254,101,1,39,1,84,0,40,0,57,0,227,1,113,2,210,255,61,255,229,1,86,2,14,1,129,1,135,1,201,255, +153,254,36,255,107,1,252,2,183,0,121,254,195,0,183,2,5,1,118,0,100,1,53,0,203,255,31,2,66,2,144,255, +6,255,11,0,60,255,57,255,253,1,244,2,206,0,95,255,248,253,76,254,238,7,225,16,117,6,90,248,216,254,223,4, +249,246,33,243,82,4,164,6,87,246,99,244,66,2,11,12,133,11,209,0,0,250,175,5,220,11,181,250,171,242,56,254, +241,253,115,248,105,3,105,6,181,251,10,5,221,19,165,3,121,239,71,246,232,253,62,248,176,251,253,7,129,10,87,5, +217,1,121,0,53,0,234,253,198,247,213,244,3,250,208,1,187,5,235,4,203,2,50,2,167,0,88,252,171,249,176,250, +164,252,177,255,100,3,96,3,238,0,194,0,123,255,44,250,193,248,249,254,159,2,212,254,227,253,254,3,213,5,193,254, +184,249,10,253,84,2,167,4,190,4,194,1,5,251,117,245,246,246,159,253,229,1,90,2,195,3,56,5,58,3,118,1, +48,1,238,252,5,248,180,250,217,255,94,255,18,253,98,253,19,255,60,1,80,1,242,254,29,0,220,3,149,2,162,255, +234,0,211,0,130,253,222,252,82,252,205,248,190,249,38,0,20,3,21,2,173,2,111,3,55,1,128,253,90,251,132,252, +213,254,52,255,222,255,106,2,121,2,235,255,182,255,174,255,250,251,114,250,78,255,250,2,236,255,42,252,240,252,139,254, +87,254,37,0,80,4,215,4,154,0,98,253,127,253,40,254,188,253,224,252,36,253,121,255,13,2,9,3,254,2,185,1, +113,255,90,255,130,1,164,1,217,255,151,255,99,0,126,0,69,0,253,255,91,0,200,1,159,1,202,254,243,252,101,254, +11,1,8,2,153,0,200,255,183,2,231,5,24,4,72,255,92,252,64,252,237,253,43,0,238,1,141,3,99,4,203,2, +135,0,94,0,117,1,204,1,76,0,151,253,88,253,20,0,79,0,154,253,222,253,19,1,51,3,137,4,228,4,129,2, +111,255,9,253,40,250,150,249,168,253,99,2,193,4,119,5,74,4,226,1,115,0,221,255,100,255,249,254,227,253,136,253, +98,255,237,255,189,253,169,253,134,0,17,2,30,2,128,2,113,2,177,1,86,0,11,254,200,252,212,253,237,254,83,255, +180,0,137,2,203,2,225,0,51,254,199,253,251,255,24,1,93,0,177,0,176,1,182,1,184,1,250,0,129,254,133,253, +32,255,155,255,177,254,165,255,11,2,244,2,121,1,81,255,216,254,151,255,118,255,110,255,60,0,139,255,158,254,144,0, +200,1,64,255,244,253,201,255,241,255,60,254,53,254,4,255,73,255,43,0,210,0,156,255,53,254,227,254,235,0,222,1, +35,1,127,0,18,0,26,254,7,252,177,252,170,254,170,255,77,0,122,0,217,255,38,0,214,0,82,255,8,253,167,252, +71,253,39,254,165,255,255,255,141,254,25,254,130,255,75,0,106,255,89,254,89,254,43,255,209,255,51,0,255,0,128,1, +81,0,61,254,78,253,151,253,189,253,21,254,252,255,7,2,135,1,227,255,29,0,220,0,73,0,130,0,239,1,138,1, +129,255,128,254,116,254,172,254,143,255,45,0,31,0,219,0,205,1,60,1,52,0,224,255,74,255,140,254,203,254,114,255, +128,255,66,255,149,255,13,1,139,2,216,1,191,255,81,255,96,0,191,0,226,0,115,1,3,1,230,255,32,0,23,1, +51,1,241,0,182,0,35,0,32,0,205,0,114,0,189,255,149,0,243,0,81,255,37,255,42,1,103,1,88,0,23,1, +152,1,73,0,165,255,42,255,186,253,128,254,19,1,57,1,144,0,93,1,70,0,43,254,194,255,36,2,116,1,31,1, +248,1,227,0,28,0,83,1,157,0,194,254,30,0,19,2,107,1,79,1,101,2,172,1,163,0,35,1,178,0,216,255, +228,1,92,4,11,3,17,0,4,255,117,255,44,0,226,0,43,1,112,1,10,2,193,1,88,0,128,255,227,255,164,0, +190,0,183,255,223,254,218,255,125,1,43,2,65,2,139,1,138,0,170,1,237,2,31,0,70,253,205,255,221,2,150,1, +39,0,32,1,165,1,50,1,126,0,23,255,194,254,73,0,195,0,197,255,217,255,214,0,49,1,27,1,91,1,198,1, +225,0,200,254,202,254,142,0,160,255,184,253,237,254,205,255,126,254,103,255,25,1,1,0,203,255,160,0,124,254,31,254, +63,2,12,2,190,252,100,252,145,0,86,1,127,255,199,255,148,1,239,0,36,253,195,251,56,255,226,0,172,254,232,254, +95,1,80,1,84,0,224,255,245,254,40,255,12,255,137,253,38,255,37,255,116,248,217,252,133,15,250,12,36,243,68,242, +228,9,18,7,98,241,55,249,39,16,244,8,55,241,225,241,86,6,87,12,171,253,112,245,131,0,140,8,133,255,4,248, +217,251,44,253,86,251,191,0,224,5,36,2,124,254,156,255,210,254,32,252,88,253,37,2,147,4,190,0,66,252,60,255, +212,3,66,0,69,251,101,253,230,255,181,254,200,255,39,1,16,253,45,250,8,255,28,3,158,254,187,249,59,253,185,1, +28,255,74,254,143,5,174,7,254,254,111,251,83,1,44,1,80,250,111,251,206,2,189,3,53,0,40,1,9,4,19,2, +207,253,209,253,113,1,227,2,44,0,51,252,182,250,66,253,250,0,73,2,182,2,234,3,9,3,195,255,159,253,78,253, +57,254,237,255,22,0,43,0,65,3,11,4,46,255,33,252,51,253,160,254,226,2,163,6,239,1,104,254,34,3,60,0, +197,245,103,249,167,4,3,3,139,255,91,6,14,9,15,3,144,255,75,254,4,253,77,255,49,0,151,253,88,255,194,1, +182,253,139,252,96,2,80,4,2,2,158,2,242,1,194,252,180,248,245,247,75,250,94,0,60,5,241,4,85,3,66,2, +237,255,225,253,161,253,91,254,112,255,14,255,238,253,114,0,102,3,59,0,15,253,215,0,219,3,238,0,112,255,18,1, +167,255,159,252,50,253,48,255,98,255,37,0,62,2,167,1,130,254,50,254,224,255,106,254,118,253,172,1,238,3,198,255, +19,253,136,254,88,254,26,253,84,254,76,0,218,1,116,2,26,0,105,253,3,254,231,255,118,1,183,2,65,2,98,1, +141,0,90,253,205,252,194,1,61,2,143,254,42,0,118,254,37,250,125,10,62,30,214,10,224,234,10,241,75,1,131,244, +38,236,71,3,131,23,32,15,197,252,23,249,228,4,46,9,224,250,163,242,191,253,150,5,221,1,152,253,171,246,163,246, +206,12,198,26,200,5,133,244,86,255,82,255,226,233,237,232,194,3,236,20,2,12,101,252,228,251,82,7,224,8,137,253, +214,248,105,253,238,253,172,252,0,0,89,1,40,0,32,3,230,4,145,255,222,251,136,254,136,253,164,246,102,247,39,2, +188,7,164,6,79,10,236,10,63,255,89,249,108,0,132,255,38,248,56,254,251,5,113,255,54,251,213,1,185,3,65,255, +237,253,115,254,27,0,199,3,254,2,70,254,15,255,35,5,205,7,173,3,10,255,180,1,206,5,253,0,77,252,242,1, +157,5,205,255,194,250,228,249,178,253,24,8,147,9,39,252,232,249,32,6,45,3,10,246,254,249,71,4,24,3,99,1, +241,2,142,255,145,253,1,0,232,254,25,255,93,5,199,5,40,254,41,252,209,0,56,1,213,252,102,252,237,1,64,5, +247,1,48,255,110,0,146,255,116,253,149,255,250,0,171,254,237,255,174,2,124,254,124,250,213,255,21,5,248,0,226,251, +169,254,48,4,159,4,46,1,115,255,98,0,245,0,219,255,6,254,135,252,86,252,228,253,158,0,185,2,18,2,63,0, +91,1,2,3,166,255,160,251,205,253,169,0,0,254,134,252,64,1,84,5,184,4,193,3,247,2,35,255,126,251,49,253, +17,1,247,0,75,254,143,254,170,1,87,2,210,254,27,252,57,254,91,1,200,0,151,254,35,254,126,254,75,254,24,254, +125,254,86,255,183,255,143,255,245,255,49,255,222,251,57,251,185,255,10,2,41,0,83,1,102,4,59,2,24,254,15,254, +136,255,106,255,101,254,78,253,139,254,157,1,57,0,93,251,117,251,162,254,2,254,125,253,88,0,71,0,216,252,181,252, +58,255,79,0,126,0,97,255,184,252,57,253,182,1,129,3,246,255,55,252,47,253,6,2,39,4,50,255,167,249,80,251, +132,255,23,255,197,253,71,0,4,2,42,255,213,252,103,255,3,2,144,255,247,252,212,255,191,2,33,0,96,253,196,254, +198,255,221,254,142,255,242,0,95,0,246,254,49,254,138,254,158,255,2,255,76,253,157,254,190,1,135,2,195,1,10,0, +202,252,181,252,199,0,245,0,139,252,38,252,210,255,254,0,44,0,185,0,68,1,99,255,109,252,24,253,244,1,160,3, +173,255,221,253,148,255,162,254,62,253,6,0,157,2,35,2,0,1,228,254,123,253,112,0,232,2,24,0,30,254,101,0, +23,1,181,254,188,253,220,254,74,255,29,254,112,253,186,254,139,255,58,255,83,1,157,3,58,1,176,254,199,255,82,255, +191,253,212,255,40,1,141,255,244,0,241,2,142,0,58,0,179,3,203,2,118,255,232,0,44,3,100,1,40,254,40,252, +168,253,64,2,50,3,123,255,153,254,237,0,142,1,102,1,103,1,148,0,227,0,27,1,163,254,131,254,95,2,188,2, +221,255,195,0,89,3,31,3,23,2,135,1,92,1,77,2,36,2,2,1,145,2,173,3,252,0,131,0,30,3,171,1, +183,254,91,0,62,2,103,1,88,1,32,1,209,255,230,0,81,2,127,0,166,255,42,2,155,3,11,2,130,255,192,254, +100,1,34,3,11,0,111,254,114,2,116,4,97,1,198,255,236,0,210,0,239,254,6,253,6,254,157,2,107,4,28,1, +8,0,138,1,79,255,104,253,127,0,217,1,53,0,237,1,22,3,42,255,81,254,224,2,182,3,233,0,88,1,121,2, +185,0,223,255,191,0,135,0,142,0,145,1,68,1,53,1,82,3,200,3,55,1,35,0,245,0,46,0,252,254,102,255, +196,255,93,0,1,2,84,1,147,254,248,254,218,0,98,255,87,254,244,0,12,2,241,255,159,254,59,254,154,254,5,1, +108,1,113,254,248,254,133,2,107,1,124,254,208,255,104,1,28,0,133,254,40,253,235,253,71,2,48,3,115,254,212,253, +237,1,19,1,59,253,26,254,148,0,8,0,181,254,120,254,228,254,51,255,160,254,19,255,37,1,185,0,70,254,140,254, +27,255,207,252,139,252,105,255,25,0,57,255,163,255,255,254,143,253,140,254,29,0,223,255,176,255,98,0,191,0,5,0, +22,254,148,253,165,0,141,2,117,255,216,252,146,254,152,255,143,253,48,253,184,255,187,0,52,255,213,254,234,255,191,254, +42,252,153,252,178,254,231,254,162,255,209,1,188,0,173,253,243,254,245,1,167,0,80,254,53,255,182,255,234,253,201,253, +195,255,34,0,19,255,7,255,222,254,117,253,99,253,56,255,104,255,224,253,162,254,70,1,66,1,50,254,164,252,91,255, +218,2,146,1,67,253,245,252,197,255,19,255,157,252,0,254,178,0,217,0,66,0,171,255,109,254,136,254,178,255,100,255, +240,254,95,255,143,254,230,253,9,0,24,2,105,1,160,255,62,254,228,254,179,1,50,1,128,252,99,252,47,1,117,0, +176,251,141,253,229,2,215,1,72,253,21,253,99,0,13,2,74,0,245,253,60,255,225,2,148,3,106,1,148,0,230,0, +218,255,215,253,182,252,64,254,7,2,251,2,220,254,93,252,160,255,30,2,171,255,198,253,76,255,228,255,116,254,143,254, +90,0,23,1,167,0,143,0,64,1,46,2,26,2,146,0,118,255,16,0,220,0,172,0,72,0,107,0,104,1,148,2, +118,1,5,254,118,252,100,254,115,0,207,0,165,0,101,0,69,0,155,0,90,0,134,255,205,255,134,0,4,0,109,255, +233,255,78,0,22,0,236,255,48,0,87,1,172,2,240,1,134,255,239,254,230,0,193,1,185,255,194,254,240,1,88,4, +254,0,30,253,155,254,24,1,168,0,238,0,46,2,236,0,129,255,83,0,53,0,37,255,54,0,97,1,64,0,51,255, +219,255,66,1,252,1,194,0,136,255,208,0,127,1,242,255,51,0,241,0,145,254,129,254,124,2,5,2,154,254,249,0, +149,3,91,255,63,252,214,254,179,0,140,0,161,0,163,255,179,255,66,2,208,1,149,254,37,255,124,1,145,0,20,255, +50,255,203,255,153,1,137,2,234,255,154,254,52,1,195,1,105,255,15,255,154,255,44,255,47,0,35,1,227,255,24,0, +213,1,136,0,126,254,209,255,244,0,152,255,96,255,129,0,33,0,201,255,68,1,198,1,253,255,80,255,246,0,37,1, +248,254,14,255,230,1,9,2,98,255,71,255,209,0,212,255,186,254,97,0,90,1,220,255,85,255,204,0,116,1,100,0, +97,255,115,255,191,255,161,255,245,255,160,0,23,0,69,255,42,0,249,0,244,255,163,255,187,0,45,0,139,254,23,255, +143,0,91,0,67,0,220,1,123,2,144,0,35,255,104,0,185,1,119,0,161,254,245,254,136,0,67,1,243,0,104,0, +97,0,143,0,214,255,21,255,22,0,42,1,20,0,15,255,83,0,23,2,241,2,228,2,53,1,148,255,231,0,61,2, +130,255,211,252,6,255,188,1,63,0,164,254,174,0,92,2,202,0,184,255,197,0,49,0,229,253,94,254,62,1,232,1, +93,0,33,0,169,1,254,2,211,2,33,1,138,255,88,255,94,255,251,254,79,255,233,255,111,255,12,255,253,255,226,0, +58,1,146,1,89,0,235,253,203,254,158,2,146,2,76,254,93,253,23,1,233,2,223,0,76,255,20,0,31,1,202,0, +145,255,44,255,49,0,162,0,102,255,193,254,228,255,119,0,129,255,41,255,41,0,233,0,246,0,210,0,65,0,169,255, +41,0,166,0,39,255,113,253,203,254,115,1,45,1,23,255,82,255,39,1,86,1,103,0,26,0,182,255,192,254,250,253, +131,253,39,254,125,0,118,1,30,255,212,253,61,0,137,1,97,255,93,254,191,255,144,255,253,253,167,254,210,0,95,1, +98,0,154,255,112,255,127,255,107,255,254,254,83,254,32,254,57,255,97,0,7,255,210,252,70,254,86,1,21,0,11,253, +93,254,203,0,52,255,149,253,84,255,114,0,140,255,108,255,40,255,209,253,38,254,86,255,107,254,38,254,94,0,135,0, +62,254,164,254,84,0,168,254,194,252,113,254,1,0,7,255,197,254,198,255,79,255,61,254,5,255,120,0,74,0,5,255, +144,254,4,255,27,255,17,255,223,255,222,255,227,253,191,253,61,1,29,2,118,253,12,251,12,255,49,2,44,0,107,254, +170,255,223,255,53,254,3,254,241,254,217,254,110,255,110,1,17,1,3,254,120,253,204,255,199,255,7,254,107,255,155,1, +163,255,223,252,66,254,243,0,49,1,137,0,53,0,38,255,74,254,197,254,21,255,166,254,200,254,57,255,12,255,248,254, +123,255,8,0,118,0,107,0,120,255,206,254,99,255,1,0,41,0,162,0,124,0,103,255,178,255,9,1,81,0,174,254, +88,255,154,0,43,0,229,255,30,0,60,255,90,255,77,1,7,1,220,254,161,255,124,1,241,255,66,254,203,255,243,0, +100,0,231,0,67,1,6,0,60,0,158,1,153,0,63,255,237,0,126,2,37,1,152,255,136,255,209,255,83,0,216,0, +180,0,171,0,151,0,99,255,152,254,160,255,125,0,47,0,63,0,155,0,212,0,58,2,115,3,196,1,184,255,177,0, +228,1,138,0,139,255,245,0,6,2,67,1,200,0,9,1,84,0,108,255,75,0,171,1,91,1,174,0,9,1,154,0, +149,255,194,0,113,2,113,1,56,0,32,1,107,1,103,0,186,0,161,1,135,1,121,1,44,1,37,0,201,0,61,2, +165,0,243,253,92,254,115,0,136,1,184,1,230,0,142,255,245,255,166,1,201,1,170,0,117,0,23,1,25,1,9,0, +110,255,183,0,83,2,35,2,211,0,47,0,194,0,39,1,215,255,146,254,206,255,194,1,68,2,137,2,228,1,55,255, +242,254,170,1,208,0,57,254,110,0,202,2,228,0,61,0,232,1,169,1,189,0,111,0,173,255,72,0,46,0,184,252, +198,253,27,4,137,5,19,7,241,10,52,1,183,245,220,0,130,9,61,248,106,239,214,0,5,10,63,254,222,246,156,254, +90,10,151,12,94,0,12,249,50,7,2,15,27,252,204,240,149,252,236,255,125,250,249,1,179,5,236,253,116,4,57,15, +247,1,87,243,189,250,207,255,166,248,109,250,51,3,221,3,134,1,53,2,164,2,201,2,134,1,214,253,159,252,249,253, +237,254,94,1,183,0,11,249,156,247,130,1,64,6,214,2,122,3,213,4,173,0,90,254,197,254,47,253,97,253,82,253, +240,247,11,249,224,5,134,10,199,255,14,249,158,253,49,0,185,251,248,248,255,254,22,10,2,14,64,5,57,250,164,247, +23,251,242,253,181,254,159,255,46,2,73,3,49,0,194,253,186,255,225,0,142,254,83,253,145,254,160,0,197,2,223,0, +79,250,210,248,15,255,10,2,233,255,21,2,162,6,213,4,161,255,207,252,165,250,197,249,213,252,48,255,52,254,240,255, +91,4,134,3,243,254,104,254,119,255,49,253,172,252,192,0,11,2,93,254,124,253,98,1,152,3,109,2,201,1,169,1, +46,255,250,251,227,251,181,253,95,253,198,251,229,252,191,255,183,0,10,1,47,3,136,4,72,2,245,254,218,253,59,254, +198,253,130,252,247,252,19,0,109,2,106,1,28,0,107,1,158,2,33,1,213,254,124,253,43,253,219,254,203,1,78,2, +22,0,49,255,121,0,223,0,185,255,210,254,183,254,105,255,210,0,152,1,78,1,107,1,245,1,165,1,202,0,254,255, +30,255,31,255,24,0,17,0,178,255,166,1,22,4,88,3,232,0,225,255,182,255,112,255,163,255,215,255,126,255,180,255, +152,0,173,0,29,0,90,0,211,0,83,0,255,255,174,0,73,0,110,254,124,254,65,1,192,2,131,1,255,0,84,2, +40,2,53,255,131,252,118,252,92,254,65,0,157,0,215,255,36,0,139,1,202,0,114,253,54,252,59,255,57,2,6,2, +18,1,119,1,143,1,99,0,49,255,63,254,74,253,135,253,56,255,69,0,248,255,18,0,10,1,176,1,25,2,170,2, +39,2,90,0,108,255,7,0,39,0,61,255,219,254,62,255,114,255,171,255,221,255,227,254,126,253,30,254,66,0,255,0, +76,0,135,0,139,1,111,1,112,0,206,255,50,255,73,254,23,254,198,254,83,255,181,255,102,0,187,0,55,0,164,255, +61,255,82,254,114,253,210,253,247,254,238,255,36,1,113,2,44,2,112,0,170,255,57,0,206,255,18,254,130,253,238,254, +47,0,190,255,115,254,184,253,238,253,109,254,95,254,0,254,122,254,218,255,195,0,195,0,198,0,219,0,40,0,9,255, +148,254,96,254,137,253,222,252,136,253,180,254,250,254,192,254,56,255,35,0,87,0,184,255,85,255,179,255,247,255,70,255, +86,254,139,254,174,255,62,0,253,255,61,0,75,1,163,1,111,0,241,254,170,254,64,255,89,255,251,254,144,255,61,1, +1,2,29,1,106,0,148,0,60,0,77,255,194,254,171,254,17,255,181,255,143,255,246,254,41,255,211,255,112,0,13,1, +229,0,58,0,143,0,44,1,174,0,251,255,139,255,35,255,246,255,189,1,80,2,15,2,54,2,210,1,131,0,254,254, +166,253,225,253,181,255,35,0,51,255,12,0,165,1,80,1,185,0,106,1,144,1,79,0,216,254,111,254,185,255,87,1, +228,0,187,254,166,253,49,255,147,1,120,1,127,255,25,0,253,2,7,3,50,0,51,255,170,0,122,1,93,0,186,254, +148,254,52,0,3,2,219,2,9,2,234,255,114,255,99,1,47,2,104,1,122,1,240,0,90,255,2,0,145,1,207,0, +72,0,73,1,240,0,227,255,7,0,107,0,125,1,195,2,147,1,239,255,42,0,19,255,141,253,237,255,122,2,5,1, +140,255,96,0,180,1,49,3,225,2,246,255,246,254,64,0,74,0,41,1,213,2,165,0,198,254,97,2,241,3,129,255, +124,253,21,0,24,1,51,0,155,0,188,1,216,1,104,0,196,254,20,255,240,255,216,255,46,0,19,0,212,254,73,255, +64,0,32,255,227,255,154,2,244,0,175,253,239,254,232,0,179,0,127,0,7,255,64,254,142,1,156,1,174,252,6,253, +175,254,161,252,145,6,90,19,216,1,15,235,251,252,170,17,59,252,218,236,197,5,37,19,115,252,214,237,164,252,222,12, +57,6,10,245,202,246,78,7,87,6,144,247,239,247,126,0,244,253,169,251,176,2,46,6,143,3,5,3,140,0,133,248, +172,245,5,253,77,3,185,1,239,254,73,255,27,2,171,7,103,8,59,253,38,245,248,252,135,3,245,253,203,252,42,3, +63,2,102,253,243,254,158,1,15,2,89,3,140,1,109,252,1,252,246,255,106,1,124,255,15,253,93,252,195,253,224,254, +39,255,157,0,137,2,6,2,91,254,2,251,126,251,22,253,34,255,205,6,226,11,175,1,110,247,122,254,238,4,76,253, +160,251,72,6,249,6,84,250,66,246,201,0,255,7,70,1,223,248,210,251,49,3,74,4,166,1,219,254,240,252,165,0, +165,4,13,254,20,248,123,0,171,6,244,252,213,246,126,2,45,15,72,11,202,252,193,246,133,254,98,2,248,249,134,248, +107,4,143,8,234,0,222,253,250,254,207,252,4,253,14,0,32,0,94,1,14,5,71,4,107,1,146,1,125,0,52,254, +117,0,11,5,189,6,255,3,11,252,49,244,40,245,145,252,208,1,95,3,110,3,99,3,183,3,114,1,121,252,241,250, +178,253,122,0,127,3,167,4,215,255,25,252,161,255,233,1,249,254,196,254,80,1,197,0,145,255,38,0,156,255,185,253, +53,252,16,253,182,2,149,7,185,3,24,254,215,0,240,4,250,0,254,250,26,251,117,254,121,255,130,254,142,254,70,255, +26,255,231,255,57,2,76,2,240,255,146,254,183,253,180,252,111,253,178,254,115,255,31,1,68,1,248,254,231,253,61,252, +242,251,206,7,169,20,2,10,74,246,240,246,76,253,180,244,134,241,123,1,56,15,79,12,52,0,211,248,137,0,152,9, +159,254,137,242,80,254,102,9,208,255,187,249,94,252,65,247,80,252,84,20,136,24,71,1,11,247,255,251,141,243,21,234, +172,247,4,12,220,15,117,7,134,0,15,0,206,0,152,252,1,250,226,255,10,5,143,3,131,3,156,2,176,248,108,242, +194,251,27,5,106,3,77,4,64,9,133,1,209,243,15,247,176,5,21,10,137,4,177,255,171,252,40,252,4,254,48,253, +194,252,63,1,48,2,97,254,181,1,168,7,54,3,77,251,159,248,158,247,138,251,44,4,36,3,73,252,93,1,194,8, +8,3,150,253,119,1,48,2,148,254,6,254,160,252,93,252,248,3,161,7,250,253,248,247,251,1,251,12,251,9,5,0, +197,252,78,255,52,253,203,247,12,250,181,2,100,7,117,6,22,3,88,255,106,255,79,1,232,253,207,250,18,0,238,3, +182,254,141,251,185,0,173,5,21,5,119,0,161,251,234,252,211,2,25,3,81,254,85,254,114,1,231,255,15,253,241,255, +189,5,111,6,219,0,172,252,210,254,205,1,33,0,29,253,68,253,141,0,7,4,9,3,191,253,17,252,79,0,229,2, +51,1,180,255,8,255,253,253,67,254,164,255,79,0,215,0,181,1,222,1,193,0,144,254,225,252,106,253,104,255,242,1, +249,3,116,2,47,255,252,255,1,2,1,0,250,254,164,0,95,254,224,251,44,0,190,3,201,1,38,2,200,3,191,255, +148,252,83,255,150,255,53,252,194,253,126,2,140,2,77,255,59,254,142,255,90,0,150,255,1,255,102,255,136,255,242,255, +220,0,188,255,60,254,210,0,39,4,29,3,129,0,192,254,206,252,32,253,141,255,53,255,202,254,147,2,213,3,68,255, +17,253,98,254,28,253,66,252,220,255,126,2,153,1,195,0,162,255,122,253,162,253,205,255,192,0,47,1,168,1,207,255, +83,252,236,250,205,252,251,255,150,1,173,0,59,255,114,254,158,253,98,253,40,254,187,254,248,255,47,2,179,1,218,254, +130,254,181,254,7,252,140,252,73,2,108,3,125,254,77,253,73,255,62,253,187,251,47,0,125,3,177,0,130,253,84,253, +26,254,239,255,58,2,96,1,179,254,152,255,147,2,54,1,151,252,244,251,190,255,58,1,181,254,140,253,173,255,2,1, +226,255,254,254,180,254,101,253,1,253,88,255,197,0,16,255,58,254,180,255,189,255,213,254,191,0,53,3,214,1,87,254, +173,252,147,253,112,255,114,0,240,0,38,2,148,1,216,253,82,252,246,254,93,0,116,0,124,2,253,1,0,253,250,251, +11,0,206,255,222,252,69,0,200,4,125,1,218,252,44,254,43,0,68,255,66,255,48,0,106,255,54,254,212,253,188,253, +198,254,53,1,97,3,181,3,49,1,187,253,131,253,121,255,24,255,19,254,192,255,48,1,116,0,53,0,126,0,71,0, +60,1,5,2,245,255,135,254,187,0,44,2,44,0,202,254,0,0,245,0,18,1,100,2,123,3,105,1,227,254,31,0, +96,2,211,1,215,0,210,0,201,255,243,255,192,2,237,2,33,0,216,0,158,3,43,2,206,254,44,254,238,254,171,255, +182,0,97,1,28,2,238,2,18,2,254,0,57,2,27,3,99,1,247,255,116,0,212,0,38,0,181,255,234,0,127,2, +72,1,216,254,3,0,241,2,83,2,109,255,130,254,108,0,120,3,222,3,69,0,67,254,106,0,37,1,112,255,230,255, +16,1,91,0,14,1,28,3,57,2,173,255,56,255,4,0,17,0,72,255,183,254,164,255,78,1,54,2,199,2,110,2, +175,0,157,0,247,1,86,0,159,254,148,1,117,3,73,0,253,254,141,1,244,1,140,0,12,1,219,1,121,1,15,0, +109,253,239,252,78,0,215,1,246,255,78,0,3,2,158,0,159,255,41,2,243,3,135,2,219,255,183,253,72,254,28,1, +98,1,206,254,111,254,90,0,48,1,80,1,74,1,25,0,125,255,211,0,120,1,89,0,174,255,179,255,9,255,158,254, +183,255,12,1,248,0,23,0,16,0,236,0,12,1,187,255,121,254,94,254,0,254,232,252,252,253,94,1,201,1,117,254, +229,253,5,1,137,1,85,255,97,255,94,0,39,255,50,254,27,255,150,255,115,255,254,255,66,0,140,255,11,255,123,255, +229,255,208,254,95,253,126,254,135,0,123,255,176,253,224,254,239,255,238,254,141,255,106,1,156,0,154,254,46,254,89,254, +190,254,166,255,178,255,76,255,164,255,122,255,222,254,32,255,212,254,250,253,68,255,17,1,64,0,95,255,116,0,76,0, +226,253,31,252,60,252,176,253,202,255,20,1,13,1,118,0,123,255,208,254,118,255,0,0,223,254,116,253,69,253,15,254, +59,255,203,255,0,255,77,254,85,255,218,0,197,0,161,255,120,255,252,255,251,254,136,253,30,254,28,255,11,255,0,0, +250,0,18,255,60,253,165,254,98,0,191,0,203,0,2,255,108,252,171,253,152,0,180,255,190,253,14,255,156,0,173,255, +208,254,195,255,66,1,158,1,139,0,18,0,65,1,83,1,226,254,241,252,59,253,97,254,209,255,91,1,208,1,238,0, +139,255,83,254,24,254,2,255,184,255,133,255,117,255,47,0,132,0,120,255,85,254,156,254,118,255,1,0,202,0,211,0, +34,255,93,254,198,255,97,0,191,255,14,0,29,0,50,255,193,255,251,0,154,0,208,0,45,2,102,1,166,255,9,0, +93,0,66,255,106,255,105,0,25,0,197,255,11,0,188,255,37,0,156,1,36,1,14,255,19,255,167,0,44,0,22,254, +203,253,168,255,254,0,238,0,26,1,196,1,104,1,2,0,42,255,237,255,119,1,26,1,90,254,54,253,57,255,137,0, +110,0,201,1,211,2,227,0,228,254,252,254,160,255,145,0,85,1,112,0,185,255,101,0,189,255,125,254,216,255,172,1, +129,1,80,1,106,1,213,0,178,0,0,0,157,253,43,253,191,255,126,1,29,2,178,2,36,1,222,254,13,255,124,255, +127,255,162,1,105,2,61,255,89,254,80,1,141,1,27,255,12,255,186,0,231,1,74,2,159,0,69,254,229,254,238,0, +201,0,224,255,56,0,119,0,221,255,146,255,255,255,97,0,146,0,82,1,21,2,165,1,52,1,66,1,70,255,250,252, +45,255,112,2,231,0,182,254,131,0,39,2,247,0,166,255,62,255,189,255,198,0,231,255,32,254,58,255,43,1,162,0, +200,255,203,255,176,255,245,0,125,2,219,0,240,254,86,0,216,1,28,1,191,255,59,254,216,253,226,255,74,1,253,0, +225,1,188,1,215,253,203,251,174,254,217,0,86,0,125,0,164,0,129,255,146,255,214,0,198,0,142,0,20,2,228,2, +168,0,14,254,98,254,7,0,3,0,135,255,132,0,60,1,94,0,157,255,169,255,192,255,25,0,127,0,99,0,120,0, +144,0,205,255,185,255,233,0,173,0,104,255,133,0,67,2,209,0,4,255,122,0,164,1,136,255,32,254,219,255,63,1, +206,0,180,0,167,0,175,255,255,255,212,1,19,2,236,0,99,0,54,255,193,253,94,255,128,2,69,2,7,0,17,0, +80,1,115,1,63,1,108,0,162,254,254,254,183,1,205,1,57,255,100,255,128,1,170,0,17,255,255,0,16,3,66,1, +12,255,228,255,13,1,16,0,32,255,78,0,53,2,159,2,103,1,35,0,215,255,218,255,102,255,249,254,60,255,243,255, +181,0,68,1,25,1,28,0,131,255,71,0,43,1,191,0,79,0,56,1,48,1,155,254,49,253,193,255,117,2,253,1, +233,0,233,0,14,0,170,254,111,254,45,254,2,254,106,0,66,3,105,2,47,0,2,0,158,255,69,254,5,255,53,0, +200,254,129,254,139,1,137,2,114,0,152,0,229,1,4,0,108,254,28,0,6,0,21,253,86,253,134,0,21,1,43,0, +43,1,107,1,82,255,103,254,44,255,165,254,156,253,176,254,180,0,42,1,23,0,91,255,140,0,110,2,132,1,86,254, +195,253,229,255,155,255,75,253,64,254,42,1,93,0,145,253,123,254,114,1,30,1,99,254,38,253,76,253,154,253,203,254, +48,0,246,255,51,255,118,255,94,255,171,254,158,255,51,1,36,0,212,253,114,253,196,253,119,253,145,254,202,0,71,1, +129,0,21,0,207,254,14,253,141,253,41,255,234,254,124,254,242,255,187,0,116,255,208,254,121,255,95,255,203,254,30,255, +151,255,146,255,164,255,154,255,92,255,174,255,219,255,144,254,235,252,189,252,216,253,126,255,241,0,206,0,123,255,79,255, +246,255,2,255,57,253,29,253,53,254,4,255,200,255,114,0,115,0,140,0,204,0,223,255,112,254,62,254,101,254,239,253, +124,254,8,0,21,0,36,255,232,255,69,1,109,0,148,254,152,254,254,255,141,0,247,255,140,255,221,255,3,0,102,255, +9,255,151,255,232,255,131,255,182,255,125,0,64,0,74,255,51,255,166,255,101,255,192,254,171,254,52,255,199,255,228,255, +234,255,156,0,90,1,248,0,77,0,162,0,255,0,101,0,210,255,222,255,246,255,33,0,99,0,72,0,108,0,3,1, +119,0,17,255,119,255,52,1,105,1,174,0,251,0,5,1,231,255,161,255,104,0,76,0,205,255,112,0,91,1,118,1, +249,0,226,255,207,254,101,255,49,1,211,1,229,0,1,0,236,255,123,0,49,1,141,1,85,1,214,0,205,0,33,1, +171,0,120,255,9,255,202,255,201,0,49,1,3,1,69,1,41,2,8,2,239,0,195,0,165,0,103,255,136,255,97,1, +113,1,25,0,70,0,181,0,92,0,132,1,197,2,132,0,200,253,64,255,23,2,241,1,64,0,143,255,166,255,5,0, +162,0,27,1,32,1,222,0,54,1,59,2,0,2,230,255,65,254,173,254,146,0,52,2,134,1,158,255,51,0,110,2, +122,2,128,1,166,1,134,0,80,254,107,255,188,2,190,2,30,0,230,255,206,1,183,1,192,255,61,255,37,0,187,255, +74,254,241,254,51,1,25,0,28,253,129,2,203,13,140,11,79,252,47,249,214,1,114,254,254,246,173,0,41,9,109,252, +80,241,174,251,165,11,168,14,253,3,114,250,131,2,184,13,232,1,115,241,239,247,244,0,110,252,52,255,180,6,209,0, +41,0,227,12,167,8,252,245,19,246,141,0,145,253,109,249,17,0,177,5,155,5,215,3,138,0,184,255,5,2,1,255, +232,247,22,247,224,253,64,6,47,9,35,3,43,253,118,255,182,0,141,251,62,250,217,253,165,254,227,0,93,7,179,8, +200,3,101,255,49,250,248,245,190,250,255,1,110,0,51,254,15,4,79,6,194,253,184,247,10,252,183,1,78,3,220,3, +4,3,157,255,36,253,47,253,69,254,0,0,115,0,174,254,195,255,109,4,71,4,172,254,0,253,72,255,7,254,221,251, +223,254,38,2,159,255,32,252,171,253,191,0,63,0,197,254,15,0,189,1,240,1,215,2,84,3,176,0,32,254,204,253, +162,251,154,248,66,251,128,1,116,3,183,1,198,1,31,3,252,1,162,254,70,252,221,251,17,252,136,253,112,1,99,4, +48,3,70,1,117,1,126,0,163,253,63,253,166,255,145,0,224,254,36,253,63,253,248,254,175,0,26,1,159,0,54,0, +253,255,136,255,235,254,254,254,154,255,246,254,46,253,0,253,230,254,181,0,221,1,63,2,167,0,209,254,236,255,9,2, +94,1,131,255,137,255,73,0,43,0,245,255,195,255,64,255,64,255,44,255,228,253,198,253,101,0,242,1,147,0,144,0, +237,2,245,2,78,0,85,255,228,255,255,254,114,254,91,1,243,4,56,4,58,0,199,253,200,253,62,254,207,254,212,255, +127,0,67,0,90,255,26,254,231,253,75,0,148,3,70,4,158,2,178,1,168,1,81,0,75,254,242,253,214,254,255,254, +176,254,110,255,52,1,146,2,64,2,106,0,35,255,204,255,93,0,183,254,47,253,182,254,232,0,36,0,102,254,119,255, +223,1,38,2,43,1,96,1,175,1,21,0,190,253,240,252,198,253,251,254,223,255,176,0,239,1,18,3,92,2,145,255, +93,253,199,253,94,255,38,0,148,0,139,1,99,2,81,2,69,1,78,255,83,253,15,253,97,254,52,255,52,255,242,255, +17,1,202,0,204,255,233,255,76,0,104,255,104,254,196,254,122,255,190,255,131,0,127,1,254,0,134,255,50,255,175,255, +101,255,18,255,235,255,137,0,153,255,167,254,251,254,39,255,128,254,7,255,119,1,56,3,93,2,86,0,247,254,10,254, +54,253,114,253,0,255,88,0,116,0,84,0,205,0,220,0,157,255,51,254,5,254,173,254,37,255,97,255,148,255,128,255, +78,255,110,255,107,255,169,254,209,253,179,253,226,253,27,254,39,255,160,0,222,0,245,255,142,255,31,0,64,0,45,255, +167,254,191,255,101,0,198,255,126,255,65,255,120,254,207,254,250,255,21,0,225,255,212,255,215,254,45,254,7,255,10,0, +223,0,61,1,3,0,121,255,80,1,163,1,88,255,194,254,223,255,138,255,198,254,14,255,82,255,49,255,0,255,102,255, +213,0,25,1,164,255,10,0,106,1,228,255,29,255,15,2,93,2,164,254,121,254,157,1,86,1,78,255,71,0,180,1, +136,0,76,255,232,255,28,0,170,254,32,254,23,0,251,1,166,1,208,0,234,0,127,0,11,255,177,254,205,255,196,255, +217,254,33,0,118,1,92,255,189,254,113,2,78,2,69,253,185,253,80,2,4,1,140,253,64,255,192,1,112,1,214,0, +21,0,156,255,135,0,121,0,8,0,158,1,249,1,143,0,28,1,178,0,63,254,41,0,225,3,111,2,85,0,224,0, +76,0,154,0,30,2,45,0,171,255,46,3,59,1,177,252,47,0,81,3,169,254,232,252,76,0,215,0,122,0,127,1, +113,1,117,2,231,2,137,255,58,255,205,2,220,1,182,255,234,0,27,0,13,0,59,3,106,0,20,252,41,1,47,4, +210,254,53,255,33,3,224,255,134,254,185,1,204,255,219,254,36,3,101,2,141,255,134,1,45,1,106,255,79,1,100,0, +0,255,96,1,201,253,141,250,150,1,8,255,239,246,113,10,136,27,118,253,113,230,64,4,107,17,185,238,41,235,170,18, +137,21,134,244,222,241,78,8,1,12,238,254,145,247,226,252,194,4,225,254,75,245,151,253,23,6,35,252,206,249,38,7, +136,7,69,0,196,5,46,4,222,243,190,242,38,0,239,0,198,251,206,1,192,8,134,6,237,0,221,252,39,252,57,253, +65,251,60,251,118,3,119,8,198,0,151,249,216,253,164,3,166,2,89,1,230,3,176,4,73,1,254,253,79,253,114,255, +58,3,137,2,190,251,102,249,167,255,95,3,170,255,17,252,234,252,38,1,28,5,168,2,216,251,185,250,148,255,236,0, +127,252,16,251,168,2,135,9,99,3,222,250,221,255,136,5,55,252,138,244,197,253,88,7,182,2,225,250,176,252,22,5, +61,8,155,1,38,252,131,255,53,1,190,251,90,249,224,251,115,253,64,1,240,5,20,3,13,255,195,2,160,4,153,254, +80,251,193,255,185,4,170,3,235,253,180,252,217,1,202,0,148,249,93,252,81,5,103,3,68,252,66,252,66,254,191,254, +184,1,84,3,223,0,211,255,157,0,112,0,46,1,68,2,81,1,121,0,70,0,212,254,49,254,143,255,255,255,157,254, +21,253,23,253,208,255,223,2,47,3,160,2,65,2,114,255,43,252,206,252,204,255,251,1,223,2,226,1,85,0,200,0, +247,0,157,254,224,253,144,0,33,1,248,253,48,253,36,0,91,0,20,253,143,253,234,1,208,2,241,0,104,1,0,1, +144,253,83,253,196,0,27,1,153,254,14,254,174,255,15,2,38,3,56,0,137,252,97,253,173,255,205,254,249,253,61,0, +210,1,32,0,230,254,131,0,255,0,215,254,144,254,244,254,109,251,225,251,224,6,228,12,74,2,109,247,130,249,210,252, +25,249,229,248,86,3,208,13,226,9,225,251,208,247,43,0,224,1,13,251,175,252,180,4,80,4,111,254,15,252,155,252, +184,0,66,7,41,7,235,0,231,254,40,255,122,249,10,244,157,249,152,5,109,9,1,2,103,253,194,4,43,11,99,4, +112,251,76,251,140,251,2,248,50,250,212,1,194,4,237,2,4,2,231,1,47,1,207,255,175,253,83,253,254,255,203,1, +98,1,158,1,144,1,108,255,49,254,69,255,36,0,161,0,152,1,51,1,149,254,125,251,148,250,31,255,66,7,10,9, +215,0,241,249,244,251,251,254,184,253,127,254,79,2,119,2,191,0,16,2,178,0,12,250,177,248,88,255,154,2,136,0, +44,2,25,6,211,3,79,253,216,250,225,254,160,4,231,4,153,255,170,253,170,0,75,254,238,246,38,249,117,5,136,10, +174,3,247,254,235,1,100,2,211,252,40,250,161,253,9,1,26,2,162,2,250,1,243,1,215,4,24,4,112,252,75,249, +124,255,170,2,224,254,85,254,178,1,13,2,208,1,169,3,33,3,4,1,77,1,187,0,4,254,70,254,58,0,236,254, +1,254,236,0,23,2,125,255,138,255,73,3,62,4,123,1,105,0,144,1,122,0,86,253,70,252,67,253,101,254,97,1, +58,5,191,3,2,254,81,253,24,2,97,3,85,0,157,255,55,1,86,1,189,0,49,0,20,255,19,255,23,0,30,255, +97,253,32,254,136,255,159,255,159,0,215,2,148,3,72,2,14,0,242,253,95,253,5,254,148,254,228,255,158,1,43,1, +227,255,167,0,11,1,143,255,218,255,112,1,246,255,137,253,104,254,116,0,251,0,207,0,27,0,177,255,43,1,172,1, +12,255,12,254,45,0,152,255,193,252,238,254,122,4,165,4,147,255,119,253,205,0,178,3,245,1,14,255,252,254,21,255, +8,253,65,253,28,1,210,1,191,253,149,252,137,0,86,2,238,254,17,252,244,253,75,1,40,1,103,254,186,253,201,255, +4,1,132,0,100,0,236,0,243,0,85,0,141,255,153,255,170,0,72,0,136,253,67,252,77,254,214,255,8,255,138,254, +26,255,36,255,234,254,51,255,108,255,31,255,28,254,190,252,244,252,111,255,148,1,179,1,38,1,212,0,39,0,10,255, +249,253,184,253,223,254,252,255,21,255,178,253,154,254,201,0,151,1,29,1,118,0,93,255,220,253,32,253,168,253,222,254, +68,0,89,1,42,1,180,255,222,254,232,255,27,1,153,0,106,255,44,255,118,255,142,255,189,255,205,255,67,255,255,254, +231,255,212,0,144,0,68,0,197,0,62,0,26,254,63,253,146,254,47,255,235,254,4,1,127,4,33,4,74,255,158,251, +215,252,43,0,121,1,12,1,6,1,241,0,2,0,73,255,205,254,12,254,195,254,26,1,183,1,49,0,102,255,245,254, +143,253,148,253,180,255,85,0,174,254,62,254,51,0,141,1,48,0,124,254,145,255,83,1,13,0,59,254,181,255,166,1, +151,0,9,255,156,255,251,0,87,1,67,0,44,255,58,0,14,2,196,1,222,0,68,1,186,0,58,255,17,0,36,2, +182,1,204,255,223,255,13,2,40,3,253,0,124,254,161,255,119,1,150,255,203,253,74,0,25,3,147,2,18,1,161,0, +253,0,108,1,140,0,45,255,215,255,6,1,102,0,69,0,101,1,35,1,186,0,33,2,83,2,113,0,243,255,153,0, +62,0,141,0,6,2,230,1,46,0,142,255,136,0,75,1,120,0,137,255,213,0,47,2,52,0,8,254,146,255,72,1, +223,255,222,254,196,0,141,2,159,1,130,255,125,255,186,1,47,2,202,255,246,254,181,0,29,1,187,255,34,255,127,255, +63,0,228,0,220,255,130,254,30,0,127,2,173,1,235,255,49,0,143,0,47,0,171,0,226,0,237,255,9,0,226,0, +14,0,168,255,234,1,13,3,204,0,52,255,246,255,217,255,201,254,189,255,212,1,1,2,194,0,195,0,21,2,239,1, +101,255,226,253,192,255,167,1,151,0,81,255,127,0,232,1,20,1,218,254,195,253,104,255,255,1,56,2,207,0,89,0, +173,255,22,254,96,254,7,0,253,255,255,255,85,1,134,0,165,254,69,0,39,2,246,255,40,254,139,255,47,0,241,255, +240,0,163,0,231,254,31,255,217,255,154,255,21,1,55,2,105,255,85,253,238,254,16,255,88,253,36,254,181,255,221,255, +158,0,166,0,181,254,176,254,110,0,13,0,171,255,1,1,28,0,226,253,204,254,85,0,98,255,18,255,42,0,145,255, +46,254,201,254,46,0,8,0,44,255,224,255,71,1,71,0,47,254,229,254,116,0,63,255,250,253,40,255,101,0,174,0, +108,0,227,254,35,254,176,255,178,255,185,253,141,254,152,0,21,255,246,252,44,254,234,255,191,255,36,255,25,255,116,255, +148,255,11,255,79,255,160,0,145,0,131,255,169,255,200,255,31,255,84,255,153,255,100,255,141,0,232,0,219,253,75,252, +104,255,183,1,64,0,188,254,244,254,172,255,29,0,131,255,115,254,190,254,177,255,168,255,75,255,45,255,183,254,61,254, +138,254,173,255,152,0,208,255,118,254,32,255,138,0,99,0,65,0,162,0,89,255,19,254,113,255,191,0,232,255,81,255, +184,255,190,255,189,255,188,255,253,254,113,254,184,254,0,255,95,255,12,0,57,0,202,255,57,255,190,254,249,254,240,255, +191,0,40,1,12,1,83,0,47,0,147,0,207,255,29,255,68,0,214,0,197,255,214,255,90,0,37,255,209,254,54,0, +217,255,234,254,173,0,247,1,63,0,60,255,52,0,124,0,48,0,11,0,35,255,191,254,226,255,92,0,28,0,254,0, +102,1,74,0,68,0,249,0,203,255,188,254,8,0,209,0,149,255,7,255,45,0,89,1,62,1,208,255,199,254,131,255, +36,0,121,255,169,255,200,0,135,0,174,255,183,255,184,255,21,0,73,1,227,0,4,255,86,255,121,1,224,1,157,0, +228,255,19,0,128,0,112,0,215,255,184,255,72,0,193,0,213,0,38,0,100,255,147,0,18,2,124,0,202,254,210,0, +71,2,198,255,23,254,162,255,207,0,138,0,51,0,207,255,87,0,13,2,41,2,67,0,47,255,105,255,204,255,44,0, +56,0,145,0,228,1,208,1,250,255,71,0,177,1,236,255,88,254,191,0,209,1,54,255,217,254,30,1,13,1,31,0, +82,1,251,1,191,0,141,255,139,254,94,254,154,0,144,2,173,1,221,0,104,1,98,0,199,254,221,255,105,1,103,0, +250,254,200,254,112,254,131,254,50,0,109,1,244,0,231,0,136,1,140,0,132,254,50,254,104,255,240,255,132,255,63,255, +134,255,88,0,127,1,212,1,112,0,182,254,214,254,118,0,62,1,155,0,29,0,95,0,72,0,82,255,109,254,158,254, +208,255,13,1,158,1,128,1,201,0,98,255,222,253,154,253,61,255,159,1,216,2,29,2,19,0,19,254,173,253,74,255, +57,1,228,1,127,1,64,0,133,254,93,254,49,0,1,1,40,0,80,0,43,1,174,0,228,255,167,255,22,255,117,255, +66,1,159,1,166,0,30,1,55,1,1,255,65,254,107,0,121,1,188,0,219,0,24,1,15,0,36,255,14,255,126,255, +189,0,172,1,242,0,6,0,33,0,41,0,250,255,150,0,153,1,29,2,168,1,24,0,237,254,162,255,171,0,115,0, +92,0,40,1,71,1,102,0,230,255,54,0,163,0,117,0,219,255,251,255,212,0,225,0,66,0,119,0,22,1,28,1, +40,1,20,1,203,255,160,254,120,255,211,0,120,0,108,255,101,255,142,255,251,254,34,255,244,0,113,2,242,1,152,0, +144,255,249,254,97,255,31,0,109,255,228,254,218,0,247,1,99,255,253,253,209,0,113,2,25,0,138,254,199,255,187,0, +120,0,36,0,213,255,15,0,5,1,13,1,189,255,197,254,185,254,60,255,7,0,247,255,50,255,247,255,137,1,154,0, +143,254,82,255,58,1,179,0,87,255,99,255,78,255,182,254,98,255,18,0,208,254,26,254,30,0,246,1,55,1,232,255, +149,255,29,255,55,254,246,253,150,254,139,255,25,0,218,255,180,255,52,0,236,255,154,254,108,254,162,255,19,0,101,255, +170,254,253,253,9,254,96,255,242,255,158,254,58,254,7,0,242,0,126,255,195,253,66,253,72,254,168,0,241,1,55,0, +124,254,146,255,107,0,166,254,230,253,245,255,209,0,27,255,93,254,19,255,102,254,236,252,114,253,93,255,9,0,51,255, +163,254,29,255,150,255,103,255,94,255,166,255,59,255,100,254,111,254,8,255,45,255,66,255,224,255,138,0,108,0,76,255, +30,254,48,254,37,255,137,255,56,255,214,254,108,254,49,254,175,254,166,255,80,0,95,0,0,0,85,255,80,254,138,253, +64,254,251,255,151,0,241,255,217,255,39,0,118,255,122,254,201,254,15,0,169,0,242,255,76,255,240,255,115,0,87,255, +72,254,209,254,132,255,121,255,161,255,203,255,49,255,215,254,192,255,214,0,157,0,136,255,87,255,78,0,201,0,42,0, +147,255,108,255,91,255,157,255,255,255,230,255,15,0,15,1,127,1,113,0,66,255,53,255,178,255,238,255,72,0,226,0, +193,0,227,255,187,255,78,0,87,0,63,0,167,0,117,0,187,255,25,0,132,0,143,255,144,255,138,1,67,2,203,0, +221,255,39,0,56,0,219,255,173,255,38,0,20,1,30,1,3,0,99,255,201,255,122,0,52,1,68,1,72,0,212,255, +153,0,22,1,220,0,197,0,244,0,78,1,69,1,52,0,95,255,227,255,121,0,154,0,244,0,218,0,126,0,38,1, +98,1,51,0,1,0,231,0,131,0,219,255,103,0,158,0,83,0,118,0,121,0,45,1,197,2,15,2,187,255,31,0, +250,0,148,254,124,253,190,0,233,2,76,1,214,255,142,0,183,1,53,1,244,254,114,254,89,1,237,2,176,0,102,255, +6,1,145,1,48,0,245,255,7,1,229,0,86,255,228,254,207,0,198,2,135,2,230,0,180,255,229,255,182,0,229,255, +171,254,27,0,135,0,38,254,51,2,63,11,35,8,106,252,245,252,254,2,115,252,6,247,157,0,12,6,150,252,55,247, +171,255,231,9,169,10,231,1,56,252,13,3,99,7,62,253,152,247,136,255,42,1,203,251,64,0,215,4,41,255,72,0, +236,8,54,4,170,249,245,252,185,2,171,253,129,250,115,0,224,4,193,3,226,1,8,1,156,1,116,2,222,254,29,248, +205,248,217,3,121,10,161,2,84,250,58,254,226,1,236,251,194,249,27,1,156,5,34,4,189,2,241,0,235,255,191,1, +67,255,38,248,101,248,12,0,161,4,144,5,208,4,106,0,242,252,44,253,218,250,134,248,59,255,55,8,53,7,211,255, +108,251,106,251,199,253,31,0,84,0,73,0,143,2,252,4,173,3,174,254,53,251,157,253,147,1,69,0,176,252,68,253, +102,255,31,254,89,252,76,254,76,1,72,1,160,0,116,3,147,6,154,4,48,0,232,253,30,252,135,250,60,252,217,254, +232,254,148,255,103,2,215,3,84,3,225,1,186,254,113,252,226,253,188,255,46,255,115,254,247,254,41,0,81,1,11,1, +70,0,46,1,107,1,52,255,37,254,204,254,203,253,164,252,220,253,79,255,73,0,238,1,133,2,128,1,144,0,23,255, +72,253,103,253,32,254,185,253,133,254,168,0,44,1,115,0,46,0,49,0,217,0,180,1,6,1,224,255,135,255,109,254, +112,253,55,255,175,1,172,1,58,0,28,255,171,254,240,254,12,255,227,254,65,0,68,2,200,1,215,255,153,255,87,0, +19,0,89,255,53,255,177,255,130,0,18,1,225,0,1,0,26,255,44,255,2,0,60,0,43,0,12,1,173,1,154,0, +255,254,18,254,195,253,57,254,87,255,241,0,39,3,28,4,47,2,66,0,123,0,227,255,203,253,236,253,11,0,200,0, +139,0,193,0,66,0,45,255,49,255,227,255,7,0,14,0,176,0,61,1,136,0,255,254,114,254,24,255,176,255,89,0, +119,1,5,2,187,1,13,1,186,255,168,254,196,254,84,254,52,253,50,254,138,0,72,1,85,1,120,1,99,0,227,255, +14,1,97,0,98,254,142,255,205,1,21,1,245,255,53,0,120,255,157,254,101,255,183,255,49,255,171,255,25,0,161,255, +174,255,206,255,79,255,167,255,128,0,97,0,34,0,29,0,179,255,222,255,2,0,66,254,76,253,201,255,1,2,72,1, +82,0,6,0,44,255,28,255,242,255,81,255,82,254,193,255,26,2,138,2,141,1,169,0,224,255,168,254,128,253,182,253, +41,255,37,0,118,0,8,1,247,0,151,255,158,254,207,254,24,255,153,255,145,0,92,0,27,255,173,254,206,254,198,254, +255,254,28,255,224,254,171,254,73,254,163,254,74,0,157,0,21,255,27,255,72,0,104,255,217,253,243,253,177,254,160,255, +236,0,24,1,219,255,208,254,227,254,20,0,10,1,48,0,228,254,182,254,80,254,242,253,154,255,16,1,120,255,213,253, +104,255,87,1,104,0,207,254,69,255,242,255,33,255,28,255,128,0,131,0,132,255,233,255,82,0,104,255,230,254,16,255, +15,255,135,255,65,0,16,1,118,2,7,2,15,255,168,254,76,1,60,1,48,255,177,255,219,0,147,0,234,0,125,1, +241,0,113,0,150,255,1,254,98,254,165,0,158,1,174,1,37,2,250,0,79,254,92,254,214,0,5,0,233,252,254,254, +121,3,37,1,35,253,43,0,36,2,191,253,133,253,212,1,170,0,160,254,125,1,70,1,33,254,93,0,91,3,106,1, +190,255,35,0,121,0,50,1,209,255,61,253,224,255,182,3,230,1,128,0,77,2,33,1,11,255,178,255,149,255,255,255, +39,2,152,0,22,254,22,0,14,1,3,0,10,2,134,2,87,0,249,1,67,2,120,253,254,253,36,2,8,0,206,254, +116,2,98,1,128,254,245,0,17,2,86,0,78,1,117,1,90,255,100,255,54,0,189,1,47,4,61,1,28,253,114,1, +249,5,151,3,203,0,173,252,224,249,199,255,245,254,149,248,83,12,101,30,231,253,254,228,76,7,47,19,112,233,112,234, +214,23,1,18,115,236,230,242,181,12,81,12,202,255,169,249,19,254,140,7,196,1,121,244,180,250,46,3,125,250,10,252, +204,10,73,7,28,254,106,6,216,5,53,243,123,242,101,3,7,3,148,248,197,255,230,11,40,7,133,253,96,253,226,254, +227,253,173,255,88,0,241,252,135,252,32,254,130,253,63,2,92,10,156,6,154,252,93,253,1,2,14,255,9,253,51,1, +44,3,164,0,169,254,206,254,176,255,94,0,155,1,22,3,200,1,153,255,42,1,243,1,20,253,6,249,254,250,143,255, +92,3,126,4,107,2,190,255,126,253,230,252,49,0,108,1,221,253,55,1,155,8,13,1,87,245,171,252,140,5,96,252, +44,249,121,8,197,13,6,255,155,244,247,249,73,2,175,0,162,248,79,250,165,5,251,5,151,251,95,252,198,4,55,2, +220,252,114,1,202,5,117,3,206,0,227,252,92,248,88,252,3,5,244,5,113,1,100,255,111,254,75,252,133,250,62,251, +179,0,51,7,252,6,78,2,196,255,248,252,74,250,172,254,57,4,118,0,131,252,164,2,115,6,52,254,147,247,217,252, +142,3,59,3,17,2,102,3,201,0,225,249,179,247,184,251,57,254,38,255,64,4,206,8,33,5,235,254,52,254,97,255, +213,254,90,0,101,3,186,2,171,255,73,254,170,253,121,253,153,255,155,1,179,0,242,255,251,0,48,0,85,253,36,252, +107,252,158,252,201,254,229,2,172,4,31,3,171,1,107,1,80,0,46,254,171,253,41,255,240,254,155,252,251,252,228,254, +220,252,254,252,150,6,185,12,164,3,54,250,171,252,150,253,36,247,188,248,71,4,115,9,23,4,163,253,222,251,40,255, +207,2,232,0,83,254,91,2,234,5,248,0,9,250,158,248,18,252,61,2,113,6,139,4,222,1,187,1,232,252,181,244, +96,245,33,254,254,3,0,6,52,6,122,1,163,251,226,251,102,254,137,254,44,0,76,3,188,2,21,1,195,1,177,255, +160,250,159,250,114,255,66,1,198,255,172,255,112,0,217,255,211,255,137,2,19,5,202,2,182,253,175,252,158,255,93,0, +25,255,10,0,36,1,124,255,143,254,150,0,13,2,217,0,0,255,172,254,232,255,172,0,106,255,133,253,200,252,238,253, +228,1,100,6,44,6,203,1,146,254,33,253,149,252,229,254,178,1,213,0,203,255,70,1,243,0,191,255,22,2,145,2, +49,253,191,250,232,254,75,1,238,255,240,255,83,0,178,255,109,1,225,3,17,2,27,254,14,253,39,255,135,1,56,1, +153,254,244,253,123,255,254,254,87,254,33,1,52,2,216,253,200,250,56,253,162,0,16,2,225,1,24,0,57,255,81,1, +167,2,225,0,153,255,86,0,140,0,235,255,209,255,220,255,113,255,85,255,0,1,228,3,215,3,211,255,18,254,186,0, +65,1,224,254,58,0,197,3,161,2,15,255,161,254,221,255,219,255,132,254,150,252,116,253,181,2,94,5,212,0,208,252, +239,254,253,0,181,255,234,0,37,5,47,5,101,0,105,254,171,1,197,3,207,0,24,253,218,253,229,1,229,3,225,1, +136,255,160,255,126,255,91,253,239,252,167,255,58,1,205,0,193,1,99,2,154,255,58,253,77,254,81,255,70,255,68,0, +251,255,215,253,7,255,224,2,39,3,57,1,114,1,25,1,118,254,34,253,81,253,110,253,96,255,204,1,213,0,102,255, +192,0,209,0,133,254,187,254,213,0,29,1,107,1,147,2,106,1,199,255,101,1,170,2,38,0,81,254,157,0,81,3, +153,2,119,255,29,253,75,253,231,254,224,255,212,255,162,255,17,0,36,1,44,1,40,255,161,253,84,254,14,255,54,255, +193,0,48,2,62,1,54,0,132,0,244,255,42,255,70,0,23,1,24,0,190,255,200,255,229,253,131,252,128,254,50,1, +208,1,86,1,231,0,237,0,153,1,22,1,95,254,161,252,13,254,183,255,49,255,91,254,251,254,207,255,96,255,120,254, +170,254,169,255,241,255,173,255,251,255,16,0,238,254,14,254,192,254,209,255,10,0,167,255,34,255,46,255,24,0,116,0, +108,255,240,254,253,255,107,0,62,255,76,254,90,254,190,254,188,255,216,0,88,0,249,254,83,255,187,0,196,0,157,0, +43,2,177,2,192,255,50,253,226,254,140,1,222,0,188,254,139,254,115,255,204,255,66,0,255,0,209,0,181,255,245,254, +89,255,86,0,78,0,201,254,237,253,223,254,124,255,251,254,142,255,252,0,226,0,58,0,206,0,133,0,118,254,36,254, +106,0,150,1,199,0,121,0,147,0,205,255,140,255,117,0,34,0,53,254,217,253,205,255,166,0,204,254,60,253,123,254, +213,0,150,1,228,0,114,0,158,0,138,0,209,255,38,255,69,255,195,255,200,255,143,255,203,255,74,0,128,0,30,0, +26,255,188,254,91,0,249,1,219,0,14,255,182,255,209,0,5,0,185,255,15,1,254,0,120,255,241,255,193,1,66,1, +30,255,195,254,55,0,244,0,152,0,176,0,21,1,67,0,66,255,120,0,79,2,189,1,142,0,33,1,199,0,144,254, +173,254,40,1,86,1,239,255,129,0,9,1,184,255,212,255,168,1,103,1,184,255,226,255,8,1,57,1,219,0,62,0, +247,255,36,1,49,2,64,1,84,0,230,0,247,0,50,0,28,0,215,255,207,254,13,255,175,0,95,1,212,0,246,255, +233,254,224,254,112,0,78,1,179,0,184,0,68,1,184,0,245,255,157,255,229,254,50,255,57,1,182,1,30,0,64,0, +138,1,67,0,94,254,82,255,249,0,37,1,51,1,236,0,138,255,90,255,220,0,57,1,153,0,23,1,103,1,93,0, +231,255,39,0,142,255,146,255,135,1,205,2,182,1,86,0,15,0,8,0,203,255,143,255,115,255,177,255,30,0,40,0, +187,255,68,255,120,255,181,0,119,1,80,0,85,255,123,0,58,1,16,0,18,0,165,1,8,1,216,254,29,255,218,0, +250,0,165,0,232,0,255,255,193,254,218,255,171,1,48,1,203,255,229,255,119,0,228,255,20,255,99,255,109,0,16,1, +16,1,189,0,32,0,167,255,239,255,23,0,42,255,183,254,217,255,120,0,205,255,27,0,6,1,245,255,55,254,74,254, +162,254,62,254,53,255,217,0,128,0,190,255,192,0,24,1,84,255,117,254,204,255,250,0,188,0,255,255,165,255,187,255, +66,255,235,253,218,253,238,255,20,1,248,255,178,255,250,0,131,0,32,254,131,253,152,255,75,1,101,0,130,254,100,254, +69,255,176,254,58,254,90,0,38,2,220,0,141,255,238,255,45,255,193,253,157,254,249,255,121,255,36,255,135,255,181,254, +87,254,125,0,47,2,56,1,9,0,210,255,27,255,101,254,73,255,251,0,156,1,210,0,175,255,32,255,154,254,164,253, +179,253,119,255,198,0,54,0,46,255,211,254,213,254,220,254,207,254,53,255,115,0,194,0,22,255,78,254,179,255,240,255, +161,254,70,255,213,0,229,255,141,254,94,255,232,255,19,255,22,255,121,255,214,254,241,254,76,0,101,0,30,255,183,254, +134,255,61,0,246,255,23,255,106,255,216,0,117,0,167,254,61,255,11,1,250,255,88,254,48,0,149,2,193,1,213,255, +93,255,152,255,209,255,210,255,48,255,198,254,54,255,89,255,50,255,15,0,31,1,219,0,15,0,207,255,159,255,18,255, +124,254,122,254,131,255,194,0,250,0,161,0,97,0,196,255,141,255,200,0,147,1,133,0,204,255,88,0,52,0,119,255, +140,255,139,255,59,255,39,0,82,1,201,0,205,255,179,255,172,255,16,0,13,1,69,0,244,253,236,253,250,255,90,0, +148,255,127,0,200,1,59,1,255,255,65,255,173,254,204,254,214,255,116,0,169,0,164,1,27,2,68,0,20,254,85,254, +25,0,32,1,101,1,115,1,203,0,166,255,91,255,249,255,255,255,58,255,146,255,131,1,143,2,123,1,123,0,150,0, +234,255,155,254,7,255,117,0,106,0,188,255,64,0,19,1,28,1,219,0,105,0,164,255,73,255,210,255,4,1,14,2, +108,1,79,255,166,254,117,0,253,1,169,1,190,0,69,0,119,0,29,1,234,0,168,255,55,255,14,0,184,0,235,0, +220,0,17,0,67,255,159,255,150,0,121,1,39,2,172,1,38,0,137,255,231,255,194,255,151,255,252,255,228,255,147,255, +32,0,151,0,72,0,59,0,88,0,236,255,220,255,100,0,73,0,170,255,111,255,119,255,205,255,118,0,86,0,95,255, +34,255,197,255,68,0,179,0,7,1,112,0,147,255,226,255,209,0,198,0,224,255,124,255,215,255,249,255,188,255,237,255, +83,0,71,0,119,0,217,0,209,255,57,254,235,254,189,0,60,0,196,254,220,255,240,1,85,1,40,255,217,254,54,0, +225,0,170,0,164,0,143,0,0,0,133,255,50,255,253,254,2,0,202,1,155,1,194,255,180,255,45,1,219,0,43,255, +215,254,197,255,165,0,5,1,94,0,94,255,185,255,150,0,52,0,234,255,200,0,141,0,185,254,120,254,186,0,87,2, +68,1,108,255,67,255,52,0,96,0,7,0,21,0,235,255,194,255,8,1,131,2,209,1,249,255,13,255,254,254,161,255, +175,0,152,0,201,255,101,0,89,1,170,0,1,0,157,0,203,0,114,0,194,0,148,0,91,255,17,255,23,0,191,0, +183,0,165,0,167,0,162,0,38,0,134,255,70,0,181,1,38,1,105,255,107,255,64,0,198,255,92,255,58,0,180,0, +10,0,154,255,32,0,252,0,250,0,160,255,165,254,139,255,182,0,147,0,112,0,222,0,81,0,33,255,65,255,53,0, +70,0,6,0,170,0,54,1,97,0,38,255,31,255,230,255,41,0,253,255,20,0,13,0,128,255,20,255,113,255,85,0, +228,0,97,0,72,255,17,255,223,255,82,0,250,255,131,255,51,255,91,255,36,0,104,0,163,255,97,255,224,255,149,255, +5,255,115,255,145,255,213,254,0,255,131,255,164,254,99,254,99,0,167,1,159,0,216,255,200,255,246,254,185,254,232,255, +29,0,47,255,124,255,12,0,10,255,112,254,86,255,84,255,102,254,237,254,249,255,145,255,33,255,179,255,179,255,35,255, +75,255,65,255,122,254,175,254,188,255,132,255,162,254,17,255,250,255,188,255,252,254,216,254,50,255,114,255,55,255,206,254, +246,254,117,255,163,255,192,255,189,255,24,255,213,254,212,255,109,0,173,255,53,255,102,255,11,255,178,254,36,255,89,255, +10,255,11,255,36,255,73,255,218,255,170,255,126,254,130,254,150,255,135,255,66,255,0,0,183,255,163,254,176,255,65,1, +52,0,207,254,69,255,96,255,209,254,140,255,42,0,37,255,130,254,14,255,101,255,203,255,105,0,5,0,86,255,190,255, +40,0,231,255,230,255,231,255,190,255,48,0,42,0,35,255,174,255,158,1,15,1,197,254,201,254,217,255,56,255,5,255, +122,0,185,0,84,255,217,254,140,255,78,0,234,0,193,0,202,255,151,255,111,0,117,0,77,255,36,255,56,0,121,0, +24,0,158,0,24,1,111,0,239,255,71,0,130,0,81,0,252,255,180,255,230,255,56,0,240,255,234,255,202,0,246,0, +194,255,19,255,224,255,228,0,255,0,110,0,60,0,224,0,55,1,111,0,208,255,86,0,215,0,76,0,124,255,153,255, +144,0,235,0,7,0,143,255,131,0,39,1,147,0,62,0,126,0,114,0,141,0,49,1,105,1,3,1,111,0,132,255, +16,255,38,0,80,1,237,0,95,0,253,0,122,1,202,0,202,255,134,255,33,0,204,0,156,0,31,0,136,0,81,1, +79,1,206,0,124,0,69,0,40,0,78,0,118,0,78,0,232,255,203,255,126,0,122,1,148,1,176,0,162,255,80,255, +33,0,208,0,16,0,189,255,64,1,145,1,107,255,197,254,243,0,137,2,205,1,144,255,253,253,148,255,66,1,9,255, +191,255,98,7,176,8,227,254,175,250,165,255,217,254,42,251,9,1,48,6,37,255,142,248,103,253,175,5,193,7,164,2, +225,253,255,1,8,7,84,0,186,248,8,253,183,0,223,252,123,254,127,3,185,0,216,255,81,6,33,5,255,252,49,253, +119,0,45,253,163,252,171,2,217,4,120,1,191,254,39,255,20,4,21,9,208,4,143,251,255,249,4,254,37,254,182,251, +147,252,131,1,246,6,71,7,83,2,88,255,244,255,6,255,88,253,69,254,159,255,90,0,134,1,116,0,135,253,155,254, +138,2,88,2,255,254,135,254,94,0,253,255,209,253,29,254,56,1,197,2,152,1,193,0,22,0,254,253,137,253,72,0, +46,2,115,1,159,255,3,253,23,252,64,255,137,1,127,255,232,254,209,1,102,2,125,0,100,0,88,0,109,254,255,253, +171,255,103,0,73,0,145,0,78,0,81,255,203,254,52,255,76,0,253,0,96,0,191,255,36,0,216,255,35,254,62,253, +94,254,62,0,184,1,131,2,141,2,196,1,236,255,146,253,157,252,202,253,102,255,81,0,104,1,112,2,122,1,224,254, +153,253,32,254,242,253,48,253,160,254,146,1,150,2,169,1,16,1,48,0,186,253,236,251,61,253,229,255,252,0,233,0, +46,1,61,1,133,0,236,255,98,255,35,254,49,253,202,253,83,255,33,1,115,2,52,2,172,1,246,1,210,0,142,253, +182,251,13,253,0,255,102,255,20,255,215,255,175,1,139,2,164,1,173,0,67,0,144,255,36,255,58,255,134,254,211,253, +223,254,27,0,252,255,62,0,108,1,149,1,131,0,107,255,210,254,86,255,179,0,10,1,83,0,96,0,250,0,197,0, +249,255,22,255,102,254,207,254,61,0,85,1,117,1,183,0,146,255,85,255,37,0,104,0,8,0,66,0,136,0,7,0, +166,255,200,255,234,255,63,0,135,0,254,255,99,255,143,255,188,255,154,255,192,255,254,255,45,0,159,0,179,0,6,0, +178,255,10,0,31,0,210,255,80,255,94,254,227,253,250,254,195,0,216,1,32,2,236,1,121,1,0,1,66,0,48,255, +106,254,33,254,53,254,17,255,122,0,33,1,157,0,177,255,3,255,0,255,162,255,6,0,235,255,47,0,245,0,105,1, +45,1,61,0,202,254,250,253,173,254,245,255,114,0,21,0,161,255,156,255,250,255,46,0,207,255,50,255,12,255,164,255, +112,0,157,0,26,0,178,255,234,255,128,0,250,0,28,1,215,0,73,0,182,255,127,255,185,255,252,255,207,255,51,255, +235,254,162,255,139,0,116,0,178,255,73,255,103,255,173,255,202,255,138,255,249,254,104,254,150,254,199,255,107,0,82,255, +60,254,207,254,209,255,16,0,235,255,170,255,141,255,206,255,187,255,24,255,156,254,109,254,198,254,225,255,77,0,110,255, +31,255,163,255,90,255,204,254,21,255,117,255,205,255,89,0,232,255,195,254,19,255,149,0,231,0,127,255,37,254,167,254, +97,0,142,0,211,254,46,254,98,255,191,255,166,254,127,254,183,255,15,0,60,255,116,255,178,0,169,0,219,255,177,0, +59,2,194,1,133,255,22,254,24,255,56,1,108,1,244,255,242,255,250,0,134,0,126,255,1,255,113,254,22,255,244,0, +162,0,178,254,7,255,166,0,239,0,201,0,173,0,20,0,225,255,231,255,127,255,121,255,65,255,124,254,102,255,252,0, +4,0,28,255,41,1,41,2,246,255,225,254,196,0,43,2,150,0,51,254,204,254,45,1,185,0,223,254,42,0,89,2, +152,1,238,255,158,255,32,0,249,0,7,1,2,0,255,255,220,0,12,1,39,1,241,0,104,255,105,254,44,255,84,0, +75,1,28,1,134,255,202,255,148,1,131,0,240,254,68,0,247,255,22,254,32,0,2,2,83,0,138,0,161,255,192,252, +81,6,139,18,70,4,137,239,0,251,100,12,199,255,2,244,94,3,1,14,139,1,230,246,145,252,76,6,36,6,193,252, +53,250,126,3,117,5,171,251,56,250,81,1,192,0,115,254,175,3,25,5,200,255,85,0,166,3,28,254,193,247,129,252, +224,3,166,2,1,255,249,0,107,3,220,0,43,253,66,253,182,1,55,6,112,3,246,251,253,251,191,1,85,0,232,251, +45,0,98,6,180,4,107,0,31,255,202,255,41,2,50,3,193,255,96,253,163,255,81,0,34,253,28,252,172,255,75,3, +137,2,104,255,79,0,185,4,73,4,98,253,121,248,47,251,210,0,212,0,64,253,176,1,36,10,26,5,173,249,19,254, +237,7,201,0,248,246,135,254,93,7,18,1,206,249,32,254,154,4,107,3,141,254,189,254,59,3,168,1,77,250,148,251, +149,4,75,3,148,249,105,250,3,3,233,2,34,254,188,0,247,4,192,1,159,252,124,253,43,2,218,3,127,0,129,253, +96,255,102,1,105,254,53,251,251,252,212,255,2,0,124,0,16,3,112,4,42,2,146,254,144,253,252,254,34,255,252,253, +148,255,96,3,62,4,110,1,218,254,90,254,226,254,96,255,145,255,226,255,214,255,203,253,63,251,138,252,32,1,134,3, +134,2,248,1,184,2,32,2,252,255,109,254,243,253,3,254,12,255,188,0,28,1,209,255,203,254,143,254,71,254,253,254, +110,1,24,3,43,2,100,0,27,255,236,253,125,253,123,254,250,255,176,1,171,3,226,3,23,1,209,253,158,252,28,253, +76,254,184,255,120,0,66,0,26,0,78,0,238,255,6,255,239,254,189,255,235,255,91,255,198,255,10,1,212,0,20,255, +89,254,41,255,151,255,94,255,208,255,94,0,127,255,79,254,43,255,46,1,144,1,212,0,13,1,153,0,222,253,203,252, +27,0,182,2,140,0,43,254,120,255,156,0,218,254,49,254,197,0,117,2,6,1,243,255,254,0,239,0,90,254,106,252, +31,253,1,255,192,0,190,1,246,0,113,255,195,255,255,0,210,255,246,252,142,252,232,254,178,0,37,1,84,1,94,0, +60,254,36,254,242,0,77,2,254,255,243,253,8,255,141,0,53,0,135,255,110,255,233,254,112,254,27,255,197,255,129,255, +218,255,84,1,155,1,237,255,217,254,100,255,110,255,117,254,136,254,172,255,249,255,212,255,135,0,6,1,121,0,6,0, +205,255,37,255,82,255,210,0,15,1,48,255,113,254,97,0,185,1,249,255,37,254,4,0,49,3,217,2,73,0,214,255, +108,0,95,255,235,254,92,0,81,0,152,254,68,255,234,1,39,2,156,255,178,253,88,254,101,0,10,1,64,255,176,253, +134,254,45,0,175,0,21,0,36,255,30,255,117,0,49,1,70,0,125,255,65,255,129,254,151,254,76,0,194,0,253,254, +61,254,216,255,109,1,93,1,95,0,242,255,228,0,246,1,77,1,161,255,254,254,87,255,83,255,4,255,145,255,226,0, +78,1,99,0,43,0,135,1,15,2,95,0,143,254,94,254,249,254,90,255,159,255,54,0,64,1,96,2,25,3,19,3, +230,1,35,0,106,255,172,255,95,255,225,254,59,255,150,255,238,255,66,1,17,2,31,1,188,0,173,1,81,1,159,255, +255,254,51,255,18,255,55,255,208,255,158,0,204,1,22,2,180,0,202,255,30,0,199,255,30,255,175,255,41,0,194,255, +31,0,231,0,80,0,13,255,160,254,106,255,73,1,96,2,215,0,36,255,29,0,66,1,210,255,61,254,47,255,26,1, +137,1,176,0,136,0,141,1,187,1,106,0,239,255,176,0,85,0,83,255,220,255,175,0,254,255,103,255,17,0,143,0, +91,0,17,0,177,255,156,255,24,0,219,255,164,254,169,254,124,0,150,1,183,0,185,255,242,255,94,0,26,0,246,255, +128,0,160,0,129,255,124,254,84,255,33,1,23,1,55,255,6,255,80,1,250,1,175,255,181,254,143,0,141,1,162,0, +45,0,248,255,245,254,196,254,181,255,175,255,7,255,148,255,157,0,248,0,44,1,28,1,41,0,17,255,120,254,60,254, +229,254,121,0,97,1,246,0,106,0,65,0,246,255,135,255,31,255,159,254,85,254,191,254,110,255,155,255,126,255,0,0, +35,1,154,1,145,0,48,255,24,255,235,255,245,255,57,255,117,255,171,0,190,0,156,255,155,255,11,1,117,1,216,255, +67,254,181,254,83,0,185,0,124,255,175,254,98,255,20,0,184,255,79,255,168,255,29,0,248,255,70,255,173,254,1,255, +28,0,189,0,149,0,189,0,20,1,63,0,204,254,192,254,232,255,98,0,254,255,171,255,85,255,12,255,95,255,152,255, +21,255,33,255,242,255,209,255,99,255,138,0,92,1,200,255,182,254,18,0,166,0,101,255,152,255,63,1,21,1,107,255, +207,254,63,255,188,255,65,0,128,0,101,0,117,0,89,0,181,255,103,255,156,255,143,255,115,255,142,255,84,255,64,255, +2,0,84,0,162,255,177,255,176,0,114,0,18,255,239,254,27,0,119,0,171,255,98,255,45,0,161,0,237,255,86,255, +224,255,125,0,59,0,244,255,105,0,226,0,137,0,178,255,114,255,11,0,70,0,119,255,250,254,174,255,88,0,34,0, +163,255,61,255,56,255,237,255,127,0,27,0,176,255,206,255,190,255,199,255,108,0,176,0,94,0,134,0,200,0,106,0, +64,0,62,0,168,255,218,255,79,1,81,1,99,255,192,254,253,255,140,0,5,0,241,255,135,0,33,1,63,1,145,0, +212,255,212,255,234,255,212,255,95,0,254,0,187,0,116,0,170,0,131,0,106,0,6,1,5,1,248,255,158,255,46,0, +89,0,90,0,150,0,70,0,246,255,198,0,101,1,125,0,155,255,255,255,75,0,216,255,0,0,226,0,231,0,18,0, +244,255,82,0,204,255,68,255,38,0,252,0,72,0,161,255,228,255,97,255,116,254,97,255,14,1,212,0,233,255,172,0, +216,1,51,1,144,255,39,255,46,0,218,0,77,0,0,0,221,0,93,1,182,0,100,0,197,0,178,0,111,0,137,0, +59,0,196,255,74,0,253,0,178,0,54,0,20,0,241,255,98,0,12,1,39,0,178,254,80,255,168,0,20,0,45,255, +238,255,144,0,9,0,9,0,152,0,59,0,150,255,186,255,211,255,121,255,151,255,35,0,74,0,61,0,104,0,113,0, +3,0,106,255,59,255,181,255,48,0,250,255,188,255,68,0,156,0,195,255,206,254,6,255,191,255,198,255,87,255,160,255, +212,0,113,1,120,0,125,255,214,255,242,255,248,254,15,255,108,0,78,0,30,255,178,255,254,0,92,0,61,255,162,255, +237,255,13,255,241,254,38,0,186,0,28,0,168,255,182,255,119,255,35,255,185,255,225,0,49,1,152,0,60,0,41,0, +202,255,134,255,133,255,29,255,210,254,125,255,17,0,213,255,1,0,137,0,1,0,28,255,43,255,56,255,232,254,142,255, +127,0,13,0,69,255,100,255,68,255,175,254,31,255,51,0,99,0,234,255,150,255,80,255,21,255,245,254,212,254,241,254, +56,255,53,255,123,255,88,0,89,0,65,255,252,254,164,255,182,255,188,255,67,0,181,255,83,254,164,254,70,0,185,0, +38,0,225,255,169,255,115,255,165,255,178,255,153,255,9,0,34,0,64,255,249,254,177,255,177,255,68,255,231,255,101,0, +112,255,171,254,30,255,140,255,174,255,29,0,42,0,164,255,178,255,31,0,186,255,60,255,214,255,157,0,108,0,230,255, +218,255,249,255,220,255,186,255,218,255,248,255,156,255,4,255,16,255,200,255,39,0,225,255,197,255,250,255,227,255,161,255, +200,255,32,0,45,0,22,0,16,0,23,0,99,0,223,0,199,0,8,0,148,255,176,255,220,255,25,0,102,0,63,0, +202,255,197,255,15,0,44,0,105,0,188,0,118,0,247,255,38,0,105,0,235,255,131,255,203,255,217,255,122,255,163,255, +48,0,77,0,74,0,113,0,33,0,167,255,1,0,137,0,40,0,182,255,55,0,192,0,107,0,212,255,146,255,170,255, +36,0,140,0,71,0,241,255,45,0,46,0,202,255,82,0,96,1,238,0,148,255,197,255,220,0,97,0,26,255,130,255, +7,1,81,1,99,0,235,255,108,0,25,1,68,1,222,0,68,0,211,255,203,255,104,0,77,1,91,1,93,0,196,255, +71,0,181,0,93,0,30,0,72,0,43,0,250,255,81,0,149,0,44,0,218,255,47,0,98,0,10,0,239,255,96,0, +164,0,99,0,41,0,73,0,101,0,68,0,38,0,29,0,228,255,167,255,225,255,79,0,78,0,49,0,121,0,128,0, +210,255,117,255,227,255,29,0,246,255,65,0,105,0,135,255,10,255,56,0,82,1,197,0,5,0,46,0,12,0,85,255, +115,255,99,0,197,0,122,0,34,0,197,255,174,255,62,0,166,0,57,0,242,255,102,0,139,0,247,255,135,255,150,255, +225,255,96,0,177,0,72,0,212,255,71,0,239,0,160,0,181,255,70,255,165,255,85,0,112,0,156,255,3,255,185,255, +149,0,46,0,132,255,225,255,119,0,128,0,156,0,185,0,2,0,19,255,19,255,160,255,233,255,27,0,114,0,180,0, +184,0,128,0,80,0,127,0,131,0,187,255,32,255,178,255,110,0,111,0,140,0,3,1,219,0,79,0,44,0,223,255, +29,255,8,255,223,255,129,0,148,0,113,0,8,0,165,255,233,255,109,0,117,0,69,0,56,0,15,0,211,255,208,255, +209,255,175,255,231,255,151,0,242,0,135,0,7,0,4,0,252,255,171,255,217,255,153,0,175,0,246,255,188,255,18,0, +252,255,215,255,61,0,74,0,207,255,25,0,248,0,241,0,125,0,224,0,77,1,179,0,248,255,252,255,25,0,219,255, +208,255,46,0,103,0,44,0,241,255,45,0,122,0,47,0,156,255,139,255,242,255,40,0,241,255,163,255,174,255,29,0, +128,0,169,0,184,0,103,0,173,255,136,255,54,0,96,0,177,255,106,255,175,255,191,255,249,255,115,0,21,0,70,255, +137,255,57,0,238,255,112,255,150,255,148,255,119,255,21,0,138,0,215,255,50,255,141,255,227,255,182,255,196,255,8,0, +236,255,192,255,236,255,238,255,115,255,29,255,89,255,143,255,66,255,18,255,129,255,236,255,234,255,254,255,43,0,236,255, +148,255,127,255,40,255,208,254,109,255,63,0,227,255,54,255,149,255,49,0,7,0,180,255,162,255,99,255,27,255,42,255, +76,255,69,255,54,255,51,255,104,255,201,255,172,255,249,254,198,254,113,255,231,255,158,255,75,255,88,255,115,255,121,255, +151,255,185,255,148,255,53,255,17,255,93,255,190,255,228,255,189,255,55,255,179,254,255,254,206,255,205,255,255,254,193,254, +79,255,195,255,247,255,32,0,246,255,165,255,201,255,15,0,206,255,91,255,54,255,56,255,85,255,148,255,122,255,11,255, +69,255,54,0,122,0,182,255,68,255,163,255,191,255,78,255,75,255,200,255,225,255,171,255,215,255,9,0,186,255,122,255, +169,255,173,255,113,255,145,255,226,255,212,255,176,255,208,255,232,255,219,255,219,255,233,255,202,255,169,255,247,255,100,0, +31,0,111,255,86,255,164,255,168,255,189,255,45,0,93,0,68,0,95,0,104,0,17,0,219,255,9,0,71,0,95,0, +83,0,65,0,86,0,94,0,21,0,198,255,211,255,4,0,12,0,7,0,3,0,227,255,225,255,54,0,103,0,18,0, +207,255,6,0,38,0,14,0,66,0,146,0,159,0,150,0,65,0,154,255,158,255,60,0,27,0,153,255,235,255,99,0, +72,0,79,0,128,0,111,0,141,0,181,0,97,0,64,0,155,0,171,0,167,0,210,0,90,0,178,255,216,255,238,255, +201,255,187,0,161,1,143,0,54,255,147,255,85,0,76,0,38,0,68,0,176,0,82,1,61,1,121,0,116,0,244,0, +112,0,135,255,219,255,195,0,180,0,23,0,49,0,209,0,251,0,132,0,239,255,202,255,69,0,138,0,206,255,79,255, +68,0,49,1,219,0,144,0,203,0,115,0,193,255,192,255,106,0,233,0,40,0,90,255,182,1,19,5,83,3,216,254, +144,254,149,255,35,253,185,252,66,1,244,2,251,254,139,252,126,255,242,3,181,4,58,1,91,255,55,2,113,3,220,255, +207,253,234,254,246,254,104,255,51,1,72,0,141,255,115,3,173,4,53,255,225,252,160,0,67,1,229,253,182,253,152,0, +59,2,89,2,10,2,240,1,78,2,162,1,74,255,102,253,114,253,23,255,250,0,10,1,251,255,202,0,48,2,255,0, +128,255,83,0,174,0,63,255,7,255,113,0,231,0,229,255,215,254,4,255,111,0,56,1,92,0,186,255,69,0,36,0, +157,254,140,253,172,254,184,1,87,4,20,4,70,1,153,254,215,253,140,254,41,255,60,255,242,255,43,1,229,0,58,255, +135,254,55,255,31,0,37,1,252,1,151,1,82,0,141,255,135,255,98,255,158,254,48,254,71,255,177,0,141,0,220,255, +72,0,228,0,178,0,56,0,147,255,4,255,101,255,234,255,84,255,185,254,57,255,228,255,5,0,30,0,158,0,113,1, +167,1,95,0,207,254,137,254,210,254,219,254,112,255,141,0,36,1,32,1,181,0,204,255,10,255,213,254,141,254,56,254, +147,254,144,255,167,0,108,1,96,1,156,0,209,255,34,255,145,254,188,254,170,255,57,0,23,0,32,0,79,0,192,255, +197,254,150,254,72,255,230,255,255,255,211,255,225,255,136,0,76,1,23,1,252,255,75,255,72,255,235,254,46,254,55,254, +32,255,252,255,167,0,114,1,228,1,115,1,135,0,185,255,54,255,8,255,7,255,229,254,244,254,190,255,157,0,124,0, +210,255,213,255,73,0,39,0,148,255,94,255,153,255,248,255,102,0,158,0,111,0,61,0,83,0,80,0,14,0,234,255, +224,255,161,255,116,255,164,255,197,255,171,255,233,255,132,0,139,0,194,255,35,255,93,255,26,0,187,0,223,0,136,0, +56,0,55,0,255,255,60,255,189,254,61,255,39,0,150,0,138,0,87,0,6,0,178,255,144,255,123,255,63,255,23,255, +74,255,208,255,122,0,242,0,205,0,59,0,14,0,122,0,168,0,22,0,108,255,103,255,223,255,61,0,53,0,232,255, +179,255,195,255,214,255,151,255,35,255,212,254,226,254,110,255,104,0,62,1,82,1,215,0,130,0,113,0,3,0,1,255, +38,254,70,254,64,255,38,0,99,0,74,0,90,0,117,0,59,0,196,255,112,255,89,255,114,255,185,255,32,0,137,0, +167,0,89,0,45,0,120,0,133,0,250,255,142,255,156,255,181,255,170,255,145,255,129,255,183,255,8,0,242,255,170,255, +188,255,245,255,233,255,176,255,158,255,225,255,49,0,251,255,96,255,3,255,213,254,167,254,239,254,135,255,153,255,107,255, +246,255,227,0,237,0,222,255,249,254,35,255,142,255,80,255,32,255,119,255,121,255,79,255,227,255,48,0,52,255,112,254, +246,254,167,255,216,255,180,255,80,255,114,255,76,0,76,0,72,255,16,255,145,255,128,255,89,255,151,255,136,255,97,255, +131,255,99,255,115,255,29,0,244,255,2,255,120,255,186,0,65,0,5,255,143,255,246,0,205,0,120,255,66,255,114,0, +199,0,124,255,229,254,19,0,244,0,150,0,80,0,120,0,100,0,32,0,188,255,95,255,152,255,7,0,253,255,14,0, +126,0,179,0,181,0,129,0,246,255,9,0,130,0,176,255,189,254,181,255,133,0,137,255,55,255,19,0,37,0,52,0, +233,0,140,0,225,255,144,0,201,0,209,255,164,255,55,0,208,0,12,1,214,254,215,252,182,1,186,7,226,2,42,250, +64,252,179,2,177,0,192,252,72,0,143,4,236,1,37,253,133,253,51,2,5,4,72,0,235,253,192,0,172,1,29,254, +108,253,35,0,10,0,230,254,155,0,218,1,84,1,214,1,164,1,7,255,78,253,173,253,159,255,27,4,104,6,74,1, +184,252,110,0,67,3,101,254,87,252,89,2,80,5,38,0,241,251,58,254,252,1,147,1,70,254,79,254,2,3,109,4, +33,255,143,252,119,1,253,3,117,255,86,253,73,1,205,2,122,255,80,254,144,0,235,0,212,254,103,254,227,0,173,3, +219,3,27,1,75,254,36,254,1,0,85,1,172,0,251,254,226,254,234,0,6,2,193,0,183,255,3,0,194,255,37,255, +207,255,163,0,93,0,141,0,209,1,42,2,207,0,103,255,36,255,120,255,164,255,210,255,0,0,86,255,88,254,15,255, +241,0,30,1,210,255,210,255,1,1,110,1,39,1,234,0,105,0,185,255,100,255,170,255,136,0,46,1,183,0,15,0, +56,0,59,0,204,255,62,0,88,1,160,1,34,1,91,0,82,255,213,254,80,255,208,255,20,0,140,0,156,0,62,0, +157,0,219,0,78,255,250,253,91,255,29,1,142,0,163,255,68,0,197,0,41,0,173,255,166,255,182,255,44,0,76,0, +251,254,162,253,86,254,105,0,235,1,29,2,54,1,43,0,233,255,151,255,110,254,114,254,219,0,154,2,66,1,55,255, +39,255,31,0,136,0,87,0,191,255,33,255,25,255,42,255,225,254,146,255,175,1,194,2,111,1,185,255,233,254,209,253, +148,252,43,253,97,255,220,0,255,0,6,1,64,1,36,1,205,0,100,0,151,255,195,254,181,254,42,255,113,255,195,255, +72,0,54,0,123,255,90,255,58,0,228,0,134,0,164,255,14,255,19,255,127,255,222,255,42,0,152,0,186,0,30,0, +111,255,96,255,127,255,132,255,183,255,155,255,198,254,129,254,165,255,147,0,7,0,84,255,183,255,130,0,250,0,14,1, +78,0,221,254,73,254,88,255,159,0,176,0,8,0,230,255,129,0,231,0,71,0,21,255,186,254,213,255,57,1,20,1, +61,255,182,253,84,254,83,0,113,1,233,0,193,255,2,255,33,255,22,0,202,0,250,255,106,254,63,254,153,255,74,0, +136,255,23,255,247,255,177,0,20,0,24,255,2,255,147,255,241,255,235,255,196,255,176,255,194,255,229,255,20,0,104,0, +152,0,5,0,11,255,5,255,20,0,113,0,53,255,38,254,6,255,173,0,221,0,186,255,42,255,156,255,212,255,138,255, +176,255,45,0,253,255,95,255,112,255,245,255,204,255,3,255,166,254,55,255,85,0,244,0,76,0,75,255,163,255,189,0, +120,0,38,255,254,254,227,255,4,0,159,255,243,255,97,0,13,0,222,255,78,0,98,0,253,255,17,0,108,0,47,0, +190,255,231,255,87,0,95,0,244,255,117,255,79,255,172,255,19,0,24,0,0,0,250,255,193,255,121,255,136,255,176,255, +161,255,157,255,166,255,109,255,106,255,17,0,137,0,47,0,241,255,100,0,142,0,1,0,190,255,34,0,92,0,62,0, +82,0,108,0,17,0,167,255,209,255,72,0,95,0,15,0,216,255,241,255,42,0,73,0,57,0,232,255,103,255,24,255, +84,255,232,255,78,0,75,0,28,0,17,0,38,0,26,0,228,255,223,255,39,0,108,0,124,0,119,0,117,0,123,0, +171,0,225,0,177,0,62,0,22,0,43,0,34,0,26,0,2,0,168,255,196,255,192,0,37,1,33,0,137,255,116,0, +21,1,105,0,11,0,167,0,196,0,0,0,181,255,47,0,105,0,57,0,87,0,184,0,189,0,113,0,61,0,20,0, +211,255,194,255,12,0,74,0,28,0,200,255,203,255,254,255,226,255,175,255,242,255,72,0,33,0,17,0,138,0,164,0, +244,255,152,255,12,0,114,0,145,0,244,0,81,1,21,1,155,0,100,0,65,0,24,0,42,0,85,0,65,0,19,0, +25,0,25,0,211,255,154,255,199,255,26,0,55,0,37,0,1,0,194,255,119,255,120,255,0,0,146,0,115,0,251,255, +34,0,159,0,121,0,14,0,33,0,49,0,215,255,201,255,44,0,91,0,93,0,131,0,127,0,37,0,184,255,105,255, +123,255,234,255,9,0,201,255,3,0,174,0,207,0,58,0,161,255,136,255,241,255,69,0,12,0,207,255,11,0,75,0, +99,0,151,0,112,0,186,255,74,255,97,255,136,255,241,255,152,0,151,0,225,255,104,255,125,255,210,255,2,0,166,255, +59,255,168,255,87,0,75,0,13,0,53,0,64,0,246,255,157,255,95,255,180,255,111,0,59,0,64,255,62,255,7,0, +253,255,104,255,117,255,231,255,33,0,16,0,198,255,168,255,217,255,191,255,109,255,146,255,197,255,144,255,161,255,247,255, +201,255,127,255,178,255,214,255,204,255,9,0,36,0,208,255,151,255,153,255,180,255,37,0,143,0,88,0,242,255,195,255, +143,255,175,255,90,0,150,0,18,0,171,255,151,255,159,255,1,0,82,0,243,255,156,255,241,255,38,0,211,255,171,255, +249,255,83,0,78,0,200,255,72,255,102,255,186,255,188,255,183,255,214,255,231,255,21,0,83,0,50,0,0,0,26,0, +238,255,109,255,122,255,234,255,230,255,206,255,49,0,92,0,224,255,136,255,200,255,3,0,211,255,155,255,161,255,144,255, +98,255,178,255,107,0,130,0,227,255,170,255,235,255,181,255,45,255,70,255,226,255,53,0,27,0,229,255,183,255,173,255, +225,255,47,0,98,0,107,0,78,0,30,0,11,0,53,0,116,0,113,0,42,0,240,255,6,0,88,0,134,0,96,0, +48,0,66,0,93,0,67,0,57,0,82,0,21,0,142,255,146,255,63,0,159,0,96,0,67,0,123,0,98,0,253,255, +239,255,33,0,22,0,6,0,56,0,50,0,197,255,164,255,27,0,117,0,94,0,94,0,175,0,216,0,165,0,95,0, +54,0,31,0,28,0,37,0,40,0,35,0,21,0,2,0,29,0,123,0,195,0,184,0,162,0,157,0,75,0,189,255, +162,255,21,0,117,0,116,0,68,0,249,255,183,255,241,255,136,0,188,0,108,0,47,0,23,0,210,255,173,255,250,255, +39,0,215,255,199,255,76,0,140,0,39,0,237,255,62,0,119,0,87,0,70,0,74,0,26,0,223,255,232,255,34,0, +93,0,105,0,20,0,180,255,239,255,127,0,101,0,192,255,166,255,20,0,19,0,174,255,179,255,2,0,12,0,18,0, +83,0,70,0,211,255,186,255,16,0,24,0,219,255,245,255,42,0,239,255,184,255,15,0,102,0,39,0,201,255,214,255, +14,0,33,0,45,0,62,0,60,0,41,0,248,255,157,255,112,255,194,255,44,0,41,0,236,255,232,255,17,0,49,0, +83,0,90,0,2,0,133,255,103,255,149,255,158,255,152,255,197,255,228,255,185,255,154,255,188,255,206,255,171,255,152,255, +201,255,24,0,43,0,205,255,75,255,65,255,197,255,47,0,3,0,185,255,236,255,52,0,230,255,127,255,203,255,80,0, +54,0,213,255,218,255,254,255,208,255,152,255,190,255,12,0,250,255,135,255,69,255,111,255,153,255,141,255,149,255,191,255, +197,255,162,255,140,255,160,255,179,255,140,255,89,255,126,255,200,255,208,255,210,255,0,0,240,255,154,255,152,255,240,255, +17,0,209,255,120,255,69,255,75,255,124,255,197,255,9,0,0,0,177,255,167,255,254,255,22,0,177,255,77,255,77,255, +152,255,215,255,214,255,218,255,21,0,33,0,214,255,179,255,206,255,199,255,180,255,189,255,156,255,86,255,77,255,130,255, +189,255,241,255,11,0,243,255,192,255,155,255,171,255,231,255,250,255,211,255,210,255,246,255,229,255,183,255,176,255,214,255, +41,0,106,0,52,0,221,255,6,0,91,0,56,0,193,255,110,255,131,255,4,0,118,0,88,0,0,0,253,255,54,0, +72,0,24,0,219,255,215,255,233,255,204,255,200,255,8,0,23,0,244,255,35,0,114,0,110,0,79,0,63,0,19,0, +237,255,235,255,226,255,243,255,36,0,24,0,243,255,42,0,116,0,83,0,253,255,209,255,220,255,0,0,14,0,16,0, +50,0,70,0,34,0,23,0,50,0,22,0,229,255,0,0,59,0,88,0,98,0,65,0,236,255,188,255,221,255,20,0, +32,0,14,0,38,0,119,0,159,0,127,0,98,0,82,0,53,0,41,0,26,0,226,255,222,255,57,0,114,0,106,0, +114,0,102,0,36,0,5,0,15,0,241,255,225,255,38,0,101,0,77,0,14,0,237,255,252,255,49,0,107,0,120,0, +68,0,3,0,248,255,32,0,79,0,114,0,102,0,29,0,227,255,239,255,25,0,63,0,80,0,56,0,54,0,104,0, +86,0,243,255,223,255,14,0,4,0,250,255,49,0,74,0,53,0,44,0,33,0,31,0,58,0,48,0,12,0,18,0, +12,0,233,255,3,0,19,0,196,255,156,255,210,255,253,255,27,0,43,0,228,255,187,255,11,0,38,0,253,255,79,0, +157,0,41,0,192,255,235,255,240,255,202,255,26,0,127,0,116,0,67,0,32,0,1,0,4,0,7,0,235,255,251,255, +58,0,63,0,20,0,254,255,240,255,247,255,49,0,98,0,74,0,15,0,232,255,235,255,6,0,252,255,204,255,204,255, +23,0,86,0,74,0,31,0,31,0,59,0,34,0,230,255,229,255,8,0,12,0,25,0,66,0,53,0,14,0,45,0, +84,0,27,0,206,255,211,255,5,0,26,0,17,0,16,0,40,0,60,0,46,0,11,0,250,255,10,0,44,0,56,0, +45,0,50,0,73,0,65,0,31,0,9,0,250,255,230,255,223,255,224,255,230,255,10,0,63,0,80,0,63,0,46,0, +32,0,16,0,12,0,12,0,3,0,33,0,128,0,182,0,102,0,0,0,19,0,75,0,46,0,7,0,23,0,15,0, +240,255,22,0,92,0,102,0,70,0,34,0,18,0,66,0,115,0,49,0,198,255,212,255,54,0,106,0,72,0,222,255, +122,255,156,255,35,0,85,0,26,0,246,255,4,0,11,0,30,0,61,0,28,0,205,255,198,255,12,0,48,0,6,0, +219,255,5,0,107,0,134,0,37,0,192,255,180,255,208,255,224,255,233,255,225,255,231,255,32,0,45,0,203,255,147,255, +227,255,27,0,228,255,203,255,241,255,233,255,201,255,233,255,32,0,56,0,53,0,249,255,162,255,181,255,36,0,66,0, +242,255,176,255,160,255,168,255,181,255,152,255,88,255,113,255,239,255,49,0,252,255,178,255,141,255,152,255,208,255,228,255, +161,255,122,255,185,255,217,255,148,255,115,255,195,255,20,0,9,0,202,255,160,255,160,255,170,255,166,255,167,255,183,255, +195,255,206,255,217,255,186,255,133,255,153,255,223,255,207,255,131,255,139,255,214,255,227,255,188,255,187,255,213,255,209,255, +170,255,120,255,94,255,135,255,217,255,242,255,171,255,88,255,87,255,157,255,205,255,172,255,116,255,122,255,184,255,215,255, +169,255,103,255,105,255,178,255,227,255,198,255,149,255,136,255,140,255,141,255,135,255,111,255,95,255,144,255,235,255,19,0, +247,255,198,255,155,255,151,255,209,255,250,255,198,255,134,255,167,255,242,255,13,0,1,0,222,255,155,255,124,255,195,255, +18,0,235,255,146,255,144,255,208,255,241,255,222,255,185,255,166,255,201,255,12,0,44,0,25,0,240,255,205,255,212,255, +234,255,193,255,124,255,129,255,193,255,254,255,57,0,72,0,252,255,171,255,180,255,226,255,248,255,8,0,13,0,239,255, +217,255,243,255,22,0,13,0,255,255,31,0,47,0,231,255,157,255,180,255,225,255,220,255,227,255,252,255,237,255,232,255, +34,0,83,0,69,0,29,0,248,255,250,255,44,0,66,0,38,0,25,0,30,0,17,0,22,0,42,0,29,0,12,0, +25,0,43,0,86,0,137,0,93,0,4,0,28,0,84,0,251,255,121,255,152,255,22,0,77,0,89,0,139,0,135,0, +8,0,202,255,48,0,77,0,232,255,58,0,20,1,200,0,159,255,105,255,9,0,81,0,105,0,166,0,140,0,41,0, +21,0,78,0,103,0,34,0,192,255,239,255,147,0,157,0,14,0,246,255,73,0,74,0,56,0,120,0,149,0,64,0, +8,0,98,0,192,0,92,0,191,255,223,255,60,0,43,0,44,0,249,255,91,255,125,0,69,3,49,3,215,255,106,254, +80,255,217,254,169,254,239,0,148,1,5,255,89,254,236,0,111,2,140,1,135,0,132,0,55,1,109,1,74,0,39,255, +231,254,142,254,243,254,11,1,28,2,50,1,141,1,132,2,111,0,191,253,103,254,190,255,49,255,112,255,76,1,227,1, +176,0,142,255,93,255,60,0,84,1,0,1,170,255,113,255,132,0,54,1,182,0,216,255,247,255,231,0,229,0,181,255, +53,255,222,255,103,0,127,0,135,0,89,0,248,255,146,255,45,255,97,255,107,0,21,1,175,0,38,0,21,0,55,0, +118,0,167,0,146,0,124,0,124,0,71,0,246,255,173,255,87,255,80,255,191,255,14,0,30,0,55,0,20,0,201,255, +229,255,3,0,186,255,200,255,90,0,193,0,7,1,236,0,172,255,123,254,21,255,60,0,49,0,242,255,93,0,86,0, +173,255,114,255,168,255,201,255,250,255,51,0,26,0,215,255,207,255,2,0,31,0,242,255,199,255,245,255,20,0,224,255, +2,0,159,0,189,0,48,0,220,255,216,255,163,255,153,255,13,0,58,0,169,255,61,255,140,255,193,255,84,255,27,255, +163,255,44,0,37,0,10,0,41,0,38,0,249,255,255,255,9,0,187,255,125,255,190,255,241,255,163,255,134,255,30,0, +156,0,64,0,178,255,187,255,248,255,220,255,190,255,248,255,28,0,226,255,171,255,166,255,133,255,72,255,84,255,171,255, +239,255,30,0,112,0,182,0,156,0,67,0,253,255,215,255,201,255,230,255,11,0,230,255,140,255,109,255,165,255,218,255, +232,255,11,0,92,0,152,0,142,0,89,0,40,0,0,0,196,255,118,255,85,255,157,255,45,0,140,0,120,0,32,0, +206,255,159,255,156,255,193,255,236,255,254,255,13,0,35,0,27,0,236,255,217,255,251,255,4,0,203,255,162,255,206,255, +19,0,26,0,227,255,166,255,152,255,220,255,84,0,162,0,148,0,101,0,66,0,241,255,103,255,27,255,92,255,196,255, +214,255,186,255,218,255,51,0,118,0,122,0,76,0,14,0,231,255,226,255,218,255,185,255,163,255,183,255,200,255,171,255, +137,255,166,255,238,255,16,0,226,255,144,255,107,255,151,255,240,255,28,0,72,0,91,0,204,255,57,255,105,255,164,255, +130,255,177,255,8,0,5,0,36,0,116,0,85,0,255,255,213,255,160,255,120,255,140,255,176,255,238,255,41,0,26,0, +28,0,67,0,3,0,192,255,10,0,59,0,8,0,216,255,122,255,53,255,186,255,52,0,237,255,238,255,93,0,39,0, +154,255,125,255,136,255,175,255,15,0,23,0,196,255,168,255,156,255,99,255,68,255,112,255,192,255,200,255,111,255,149,255, +114,0,144,0,149,255,23,255,109,255,94,255,240,254,43,255,221,255,236,255,116,255,195,255,170,0,94,0,21,255,236,254, +195,255,199,255,23,255,3,255,179,255,124,0,167,0,31,0,153,255,65,255,1,255,91,255,251,255,28,0,84,0,149,0, +229,255,100,255,234,255,175,255,235,254,152,255,89,0,202,255,188,255,88,0,67,0,84,0,139,0,212,255,158,255,106,0, +41,0,109,255,231,255,119,0,86,0,18,0,209,255,112,0,52,1,166,255,244,253,37,255,43,0,239,255,208,0,166,255, +4,253,230,1,118,9,171,4,128,250,184,251,104,0,182,251,167,248,249,0,48,8,178,4,151,254,30,254,70,1,192,1, +175,253,143,251,166,255,35,3,117,1,26,0,196,0,129,255,42,254,167,255,249,0,182,0,224,0,199,0,246,254,215,252, +222,252,22,0,204,3,218,3,172,1,106,1,187,1,9,0,117,254,115,254,97,254,80,254,99,255,222,0,168,1,80,1, +58,0,161,255,108,255,7,255,6,0,44,2,202,1,107,255,178,255,145,1,142,0,96,254,10,255,199,0,110,0,100,255, +238,255,28,1,76,1,20,1,89,1,2,1,89,255,85,254,105,255,254,0,132,1,66,1,116,0,143,255,184,255,126,0, +113,0,18,0,32,0,153,255,225,254,236,255,175,1,142,1,125,0,176,0,13,1,27,0,65,255,146,255,230,255,199,255, +243,255,26,0,225,255,79,0,57,1,206,0,154,255,7,0,90,1,9,1,198,255,161,255,253,255,177,255,110,255,172,255, +211,255,217,255,37,0,138,0,210,0,48,1,96,1,127,0,11,255,43,255,208,0,38,1,250,255,199,255,13,0,40,255, +205,254,245,255,146,0,103,0,172,0,162,0,10,0,201,255,122,255,155,255,18,1,5,2,58,1,118,0,57,0,134,255, +59,255,237,255,93,0,75,0,66,0,33,0,18,0,11,0,216,255,132,0,174,1,16,1,187,255,46,0,83,0,144,254, +36,254,230,255,208,0,199,0,6,1,143,0,167,255,133,255,74,255,250,254,235,255,250,0,211,0,127,0,66,0,173,255, +149,255,208,255,159,255,236,255,128,0,211,255,244,254,58,255,116,255,173,255,247,0,236,1,127,1,191,0,157,255,56,254, +116,254,234,255,97,0,87,0,200,0,183,0,255,255,98,255,247,254,90,255,110,0,138,0,72,0,64,1,90,1,14,255, +163,253,240,254,70,0,41,0,217,255,7,0,89,0,60,0,154,255,140,255,73,0,94,0,216,255,0,0,48,0,174,255, +141,255,221,255,184,255,207,255,134,0,114,0,87,255,214,254,169,255,191,0,187,0,184,255,118,255,116,0,222,0,19,0, +137,255,174,255,231,255,96,0,178,0,211,255,145,254,158,254,139,255,215,255,139,255,169,255,81,0,169,0,69,0,192,255, +176,255,209,255,196,255,168,255,179,255,230,255,254,255,169,255,42,255,58,255,241,255,126,0,94,0,6,0,15,0,107,0, +170,0,130,0,13,0,200,255,0,0,56,0,207,255,43,255,53,255,226,255,81,0,59,0,24,0,13,0,201,255,97,255, +61,255,92,255,124,255,192,255,54,0,74,0,181,255,72,255,163,255,11,0,209,255,148,255,224,255,12,0,175,255,114,255, +149,255,131,255,102,255,243,255,149,0,38,0,44,255,11,255,139,255,135,255,37,255,70,255,194,255,247,255,19,0,82,0, +55,0,169,255,127,255,255,255,71,0,238,255,183,255,239,255,230,255,131,255,133,255,217,255,172,255,59,255,140,255,105,0, +179,0,87,0,36,0,51,0,12,0,200,255,183,255,173,255,148,255,206,255,101,0,173,0,72,0,202,255,219,255,66,0, +99,0,66,0,51,0,20,0,174,255,119,255,201,255,22,0,234,255,200,255,15,0,53,0,240,255,173,255,138,255,89,255, +94,255,190,255,234,255,181,255,190,255,31,0,47,0,219,255,187,255,229,255,241,255,193,255,148,255,184,255,45,0,99,0, +245,255,145,255,235,255,89,0,36,0,241,255,86,0,171,0,130,0,76,0,27,0,174,255,110,255,163,255,191,255,181,255, +21,0,122,0,39,0,205,255,69,0,191,0,90,0,198,255,178,255,181,255,161,255,225,255,96,0,166,0,159,0,95,0, +3,0,224,255,253,255,241,255,215,255,28,0,83,0,248,255,170,255,4,0,113,0,109,0,85,0,78,0,19,0,209,255, +194,255,195,255,250,255,144,0,211,0,88,0,9,0,120,0,194,0,109,0,49,0,64,0,13,0,188,255,213,255,35,0, +68,0,67,0,23,0,201,255,207,255,38,0,32,0,195,255,198,255,19,0,15,0,225,255,242,255,23,0,37,0,39,0, +241,255,173,255,237,255,109,0,89,0,19,0,110,0,192,0,52,0,170,255,250,255,99,0,87,0,109,0,149,0,30,0, +142,255,206,255,75,0,25,0,187,255,231,255,64,0,86,0,81,0,72,0,39,0,15,0,5,0,222,255,209,255,21,0, +72,0,41,0,41,0,121,0,139,0,53,0,1,0,24,0,18,0,239,255,6,0,61,0,72,0,78,0,117,0,128,0, +86,0,51,0,19,0,207,255,188,255,46,0,146,0,59,0,179,255,212,255,69,0,47,0,188,255,165,255,245,255,43,0, +20,0,222,255,206,255,239,255,254,255,220,255,234,255,60,0,65,0,230,255,223,255,62,0,73,0,236,255,212,255,10,0, +250,255,171,255,176,255,1,0,17,0,229,255,243,255,32,0,8,0,215,255,208,255,186,255,161,255,237,255,91,0,77,0, +242,255,235,255,45,0,54,0,234,255,171,255,191,255,253,255,29,0,15,0,235,255,197,255,183,255,204,255,237,255,225,255, +146,255,89,255,163,255,20,0,3,0,196,255,250,255,61,0,3,0,201,255,240,255,245,255,176,255,191,255,62,0,117,0, +32,0,228,255,26,0,61,0,255,255,222,255,6,0,12,0,235,255,240,255,1,0,245,255,244,255,255,255,248,255,254,255, +39,0,61,0,14,0,193,255,178,255,235,255,255,255,204,255,185,255,222,255,235,255,213,255,204,255,235,255,43,0,48,0, +211,255,178,255,0,0,239,255,123,255,149,255,21,0,32,0,250,255,34,0,54,0,8,0,241,255,232,255,205,255,216,255, +253,255,235,255,190,255,197,255,250,255,30,0,29,0,3,0,225,255,201,255,197,255,194,255,187,255,223,255,33,0,44,0, +21,0,40,0,32,0,204,255,188,255,33,0,67,0,225,255,180,255,22,0,95,0,7,0,165,255,236,255,91,0,64,0, +19,0,65,0,70,0,21,0,43,0,54,0,227,255,213,255,69,0,132,0,89,0,34,0,12,0,28,0,55,0,54,0, +68,0,97,0,40,0,210,255,237,255,44,0,19,0,218,255,193,255,222,255,70,0,122,0,15,0,203,255,50,0,99,0, +253,255,206,255,3,0,35,0,62,0,80,0,0,0,186,255,16,0,103,0,35,0,225,255,34,0,78,0,18,0,248,255, +38,0,40,0,1,0,7,0,23,0,1,0,254,255,40,0,56,0,29,0,0,0,230,255,217,255,0,0,70,0,100,0, +83,0,49,0,232,255,148,255,168,255,34,0,90,0,40,0,27,0,72,0,51,0,234,255,240,255,54,0,76,0,49,0, +49,0,68,0,34,0,226,255,232,255,53,0,94,0,61,0,16,0,6,0,57,0,135,0,121,0,6,0,212,255,9,0, +30,0,8,0,24,0,38,0,10,0,4,0,19,0,12,0,14,0,8,0,192,255,143,255,220,255,49,0,11,0,196,255, +202,255,227,255,234,255,8,0,21,0,215,255,174,255,235,255,34,0,0,0,214,255,231,255,8,0,14,0,255,255,253,255, +29,0,52,0,31,0,29,0,67,0,50,0,235,255,226,255,4,0,239,255,206,255,229,255,237,255,194,255,187,255,206,255, +172,255,164,255,10,0,77,0,253,255,178,255,217,255,1,0,237,255,218,255,209,255,217,255,16,0,41,0,247,255,219,255, +234,255,216,255,208,255,239,255,243,255,233,255,251,255,239,255,210,255,224,255,229,255,212,255,235,255,231,255,156,255,139,255, +193,255,211,255,222,255,243,255,209,255,198,255,255,255,1,0,225,255,1,0,235,255,132,255,132,255,211,255,242,255,24,0, +40,0,197,255,148,255,241,255,254,255,164,255,182,255,5,0,246,255,218,255,241,255,234,255,192,255,189,255,225,255,250,255, +237,255,219,255,239,255,9,0,14,0,29,0,31,0,238,255,213,255,237,255,217,255,163,255,180,255,1,0,49,0,25,0, +199,255,144,255,176,255,214,255,204,255,210,255,237,255,226,255,200,255,209,255,238,255,250,255,209,255,145,255,176,255,34,0, +54,0,228,255,216,255,20,0,22,0,228,255,206,255,224,255,31,0,93,0,48,0,175,255,130,255,207,255,12,0,253,255, +254,255,56,0,96,0,71,0,24,0,239,255,205,255,216,255,26,0,69,0,24,0,202,255,195,255,9,0,74,0,69,0, +5,0,202,255,187,255,188,255,184,255,221,255,38,0,59,0,36,0,46,0,31,0,204,255,207,255,85,0,145,0,64,0, +242,255,211,255,198,255,234,255,26,0,23,0,17,0,29,0,5,0,241,255,15,0,32,0,32,0,56,0,52,0,245,255, +197,255,185,255,195,255,3,0,79,0,88,0,65,0,48,0,251,255,197,255,233,255,68,0,98,0,35,0,214,255,230,255, +79,0,132,0,72,0,4,0,5,0,21,0,254,255,214,255,207,255,0,0,66,0,92,0,70,0,25,0,241,255,244,255, +44,0,102,0,95,0,19,0,221,255,4,0,62,0,36,0,248,255,13,0,23,0,1,0,43,0,93,0,30,0,228,255, +44,0,93,0,10,0,204,255,235,255,250,255,234,255,13,0,72,0,79,0,35,0,5,0,38,0,90,0,72,0,11,0, +246,255,241,255,218,255,245,255,53,0,54,0,10,0,252,255,245,255,233,255,255,255,22,0,6,0,4,0,37,0,41,0, +7,0,252,255,8,0,12,0,10,0,21,0,26,0,8,0,247,255,11,0,39,0,19,0,242,255,254,255,21,0,16,0, +10,0,8,0,250,255,4,0,37,0,39,0,24,0,36,0,44,0,27,0,13,0,13,0,18,0,25,0,0,0,211,255, +222,255,18,0,35,0,47,0,73,0,46,0,2,0,34,0,44,0,212,255,171,255,254,255,76,0,91,0,78,0,8,0, +183,255,202,255,4,0,245,255,236,255,34,0,48,0,2,0,254,255,26,0,13,0,237,255,232,255,250,255,22,0,38,0, +10,0,240,255,25,0,88,0,76,0,13,0,8,0,62,0,68,0,26,0,20,0,25,0,249,255,0,0,69,0,76,0, +21,0,30,0,64,0,26,0,255,255,33,0,22,0,233,255,2,0,40,0,14,0,6,0,60,0,87,0,56,0,13,0, +244,255,15,0,76,0,73,0,14,0,16,0,63,0,45,0,4,0,21,0,41,0,12,0,242,255,247,255,250,255,247,255, +253,255,11,0,23,0,18,0,249,255,242,255,22,0,54,0,47,0,40,0,57,0,57,0,22,0,252,255,243,255,231,255, +231,255,254,255,16,0,26,0,41,0,41,0,29,0,44,0,57,0,15,0,210,255,189,255,210,255,0,0,29,0,1,0, +223,255,225,255,205,255,184,255,249,255,50,0,249,255,222,255,52,0,70,0,233,255,201,255,238,255,238,255,241,255,32,0, +45,0,11,0,230,255,207,255,234,255,41,0,38,0,228,255,195,255,176,255,145,255,169,255,224,255,235,255,255,255,39,0, +12,0,220,255,241,255,245,255,197,255,213,255,255,255,207,255,164,255,218,255,3,0,234,255,216,255,208,255,198,255,234,255, +16,0,231,255,167,255,169,255,216,255,253,255,250,255,219,255,210,255,230,255,232,255,226,255,241,255,228,255,182,255,178,255, +206,255,202,255,203,255,233,255,221,255,180,255,195,255,220,255,188,255,166,255,186,255,187,255,184,255,229,255,255,255,215,255, +180,255,186,255,180,255,165,255,185,255,220,255,223,255,197,255,177,255,198,255,243,255,2,0,238,255,221,255,208,255,200,255, +230,255,14,0,4,0,234,255,240,255,227,255,171,255,143,255,169,255,191,255,192,255,203,255,222,255,233,255,236,255,244,255, +2,0,253,255,206,255,166,255,187,255,223,255,217,255,203,255,206,255,196,255,189,255,229,255,20,0,3,0,198,255,163,255, +178,255,212,255,229,255,233,255,250,255,18,0,14,0,237,255,212,255,215,255,231,255,246,255,5,0,19,0,3,0,211,255, +194,255,230,255,254,255,251,255,9,0,18,0,242,255,226,255,245,255,221,255,170,255,191,255,243,255,228,255,198,255,239,255, +47,0,52,0,6,0,219,255,202,255,215,255,253,255,24,0,252,255,192,255,200,255,30,0,67,0,1,0,196,255,205,255, +243,255,28,0,55,0,40,0,15,0,23,0,11,0,223,255,236,255,45,0,53,0,16,0,19,0,28,0,242,255,210,255, +246,255,45,0,54,0,15,0,230,255,232,255,21,0,62,0,62,0,31,0,19,0,52,0,79,0,49,0,250,255,231,255, +250,255,30,0,60,0,47,0,255,255,240,255,22,0,44,0,28,0,25,0,45,0,48,0,38,0,48,0,53,0,14,0, +222,255,227,255,18,0,54,0,67,0,74,0,68,0,41,0,15,0,11,0,22,0,33,0,27,0,8,0,27,0,51,0, +246,255,219,255,126,0,242,0,78,0,196,255,52,0,65,0,106,255,92,255,117,0,222,0,4,0,194,255,43,1,81,2, +62,1,146,255,121,255,146,255,202,254,67,255,9,1,243,0,23,255,184,254,74,0,139,1,72,1,113,0,162,0,33,1, +22,0,4,255,145,255,177,255,4,255,154,255,162,0,155,0,117,0,217,0,33,1,116,0,77,255,140,255,195,0,163,0, +150,255,64,255,136,255,252,255,71,0,77,0,198,0,110,1,231,0,148,255,27,255,206,255,167,0,145,0,184,255,126,255, +11,0,44,0,35,0,164,0,164,0,7,0,37,0,123,0,240,255,91,255,88,255,116,255,232,255,161,0,178,0,85,0, +79,0,62,0,235,255,206,255,208,255,246,255,135,0,219,0,103,0,205,255,128,255,96,255,141,255,245,255,45,0,59,0, +78,0,73,0,69,0,99,0,86,0,10,0,201,255,176,255,190,255,230,255,244,255,232,255,248,255,46,0,116,0,166,0, +137,0,31,0,209,255,218,255,12,0,20,0,215,255,160,255,193,255,254,255,254,255,245,255,35,0,76,0,56,0,11,0, +249,255,245,255,228,255,222,255,251,255,11,0,252,255,6,0,28,0,15,0,21,0,40,0,200,255,57,255,79,255,208,255, +248,255,233,255,0,0,26,0,45,0,69,0,36,0,209,255,182,255,208,255,221,255,245,255,25,0,14,0,252,255,36,0, +58,0,245,255,190,255,240,255,28,0,227,255,157,255,161,255,201,255,249,255,72,0,141,0,126,0,64,0,26,0,235,255, +147,255,91,255,125,255,216,255,71,0,163,0,161,0,67,0,0,0,253,255,227,255,172,255,154,255,162,255,173,255,208,255, +251,255,28,0,87,0,147,0,128,0,48,0,234,255,168,255,116,255,133,255,205,255,3,0,33,0,67,0,90,0,66,0, +18,0,1,0,19,0,17,0,235,255,196,255,180,255,176,255,189,255,237,255,49,0,85,0,57,0,1,0,233,255,242,255, +238,255,209,255,191,255,199,255,212,255,218,255,237,255,20,0,47,0,38,0,33,0,36,0,28,0,255,255,201,255,167,255, +165,255,151,255,158,255,213,255,242,255,9,0,72,0,71,0,4,0,248,255,247,255,220,255,243,255,240,255,174,255,215,255, +67,0,51,0,3,0,20,0,235,255,168,255,188,255,201,255,172,255,215,255,40,0,49,0,22,0,50,0,104,0,49,0, +156,255,120,255,212,255,251,255,243,255,248,255,193,255,166,255,4,0,40,0,234,255,220,255,192,255,158,255,7,0,60,0, +197,255,218,255,108,0,48,0,170,255,200,255,250,255,231,255,198,255,180,255,8,0,82,0,182,255,51,255,178,255,222,255, +108,255,164,255,22,0,248,255,245,255,236,255,147,255,220,255,116,0,25,0,102,255,59,255,52,255,120,255,14,0,250,255, +104,255,137,255,52,0,105,0,2,0,167,255,179,255,152,255,100,255,243,255,115,0,218,255,168,255,67,0,213,255,70,255, +52,0,123,0,70,255,0,255,180,255,78,0,54,1,5,1,33,255,179,254,232,255,203,255,106,255,77,0,124,0,224,255, +232,255,230,255,6,0,102,0,124,255,14,255,152,0,87,0,181,254,95,255,218,254,71,254,5,5,146,9,69,0,115,248, +16,254,182,0,20,250,146,250,239,3,143,7,139,2,151,253,176,254,7,3,232,1,214,251,151,251,247,0,91,2,202,0, +1,1,246,255,224,253,215,254,99,0,60,0,240,0,7,1,62,254,3,253,187,255,90,1,142,255,49,255,132,2,239,3, +109,0,134,254,70,1,69,1,221,252,1,252,50,255,177,0,54,1,192,1,13,0,31,255,250,0,97,0,223,253,186,255, +200,2,53,1,65,255,131,0,89,0,143,253,83,253,145,0,74,2,117,0,16,255,177,0,231,1,123,0,179,255,112,0, +135,255,2,254,65,255,97,1,86,1,108,0,72,0,12,0,54,255,237,254,198,255,78,0,210,255,82,0,149,1,118,0, +180,254,124,0,133,2,121,0,113,254,226,255,244,0,162,255,195,254,162,255,28,1,146,1,14,0,177,254,193,255,238,0, +29,0,173,255,247,0,196,1,255,0,201,255,250,254,169,254,213,254,164,255,215,0,65,1,126,0,240,255,85,0,216,0, +175,0,183,255,2,255,20,0,148,1,200,0,226,254,5,255,133,0,189,0,181,255,113,255,78,0,219,0,114,0,214,255, +140,255,118,255,148,255,2,0,157,0,19,1,8,1,147,0,103,0,89,0,91,255,36,254,197,254,132,0,217,0,85,0, +240,0,121,1,123,0,188,255,35,0,206,255,227,254,133,255,195,0,74,0,52,255,117,255,65,0,168,0,47,1,101,1, +126,0,180,255,45,0,152,0,192,255,222,254,70,255,39,0,58,0,234,255,88,0,33,1,224,0,175,255,11,255,71,255, +105,255,84,255,199,255,168,0,59,1,99,1,81,1,216,0,223,255,214,254,110,254,224,254,155,255,245,255,25,0,130,0, +204,0,58,0,89,255,139,255,171,0,0,1,45,0,245,255,210,0,186,0,29,255,119,254,182,255,122,0,191,255,134,255, +101,0,138,0,175,255,115,255,6,0,77,0,77,0,156,0,225,0,146,0,232,255,89,255,27,255,82,255,237,255,97,0, +42,0,167,255,190,255,91,0,114,0,244,255,251,255,130,0,106,0,249,255,67,0,129,0,132,255,183,254,192,255,242,0, +29,0,191,254,78,255,189,0,170,0,175,255,210,255,186,0,182,0,226,255,151,255,229,255,241,255,176,255,165,255,219,255, +9,0,255,255,188,255,125,255,145,255,234,255,57,0,98,0,113,0,99,0,72,0,68,0,66,0,2,0,160,255,135,255, +194,255,225,255,192,255,187,255,238,255,13,0,18,0,55,0,76,0,18,0,225,255,246,255,252,255,227,255,12,0,64,0, +236,255,111,255,147,255,12,0,5,0,166,255,168,255,0,0,30,0,247,255,239,255,4,0,229,255,179,255,215,255,40,0, +23,0,177,255,128,255,168,255,241,255,52,0,26,0,126,255,43,255,197,255,104,0,19,0,135,255,215,255,125,0,118,0, +230,255,115,255,85,255,132,255,226,255,22,0,251,255,219,255,248,255,38,0,6,0,153,255,107,255,199,255,38,0,18,0, +238,255,17,0,23,0,225,255,232,255,43,0,49,0,9,0,8,0,28,0,25,0,22,0,6,0,198,255,138,255,163,255, +14,0,101,0,77,0,5,0,36,0,114,0,47,0,152,255,128,255,179,255,170,255,208,255,86,0,110,0,243,255,178,255, +186,255,169,255,188,255,249,255,229,255,204,255,30,0,52,0,211,255,219,255,49,0,224,255,132,255,32,0,175,0,24,0, +111,255,173,255,16,0,10,0,243,255,218,255,182,255,212,255,7,0,3,0,24,0,54,0,233,255,194,255,76,0,104,0, +144,255,76,255,28,0,98,0,206,255,191,255,57,0,67,0,25,0,47,0,13,0,189,255,208,255,242,255,193,255,194,255, +17,0,37,0,51,0,144,0,128,0,199,255,117,255,222,255,12,0,204,255,208,255,35,0,91,0,113,0,92,0,18,0, +246,255,47,0,54,0,229,255,196,255,238,255,3,0,15,0,58,0,62,0,22,0,49,0,130,0,94,0,193,255,124,255, +247,255,134,0,89,0,171,255,121,255,252,255,74,0,225,255,137,255,234,255,104,0,77,0,248,255,247,255,16,0,244,255, +227,255,10,0,48,0,64,0,79,0,62,0,0,0,235,255,36,0,59,0,239,255,178,255,222,255,14,0,234,255,219,255, +57,0,132,0,67,0,246,255,37,0,80,0,238,255,128,255,169,255,27,0,74,0,51,0,3,0,235,255,35,0,113,0, +82,0,243,255,245,255,65,0,64,0,247,255,212,255,242,255,42,0,80,0,67,0,51,0,69,0,55,0,242,255,223,255, +8,0,19,0,15,0,46,0,46,0,254,255,10,0,68,0,52,0,251,255,255,255,17,0,253,255,247,255,244,255,184,255, +162,255,19,0,132,0,88,0,238,255,236,255,54,0,65,0,245,255,194,255,236,255,32,0,4,0,220,255,253,255,20,0, +225,255,217,255,53,0,86,0,252,255,197,255,238,255,250,255,211,255,224,255,21,0,25,0,255,255,1,0,14,0,10,0, +244,255,212,255,211,255,6,0,28,0,222,255,176,255,219,255,4,0,239,255,229,255,10,0,33,0,8,0,219,255,204,255, +245,255,30,0,246,255,196,255,253,255,76,0,34,0,214,255,230,255,8,0,255,255,12,0,25,0,222,255,181,255,240,255, +35,0,1,0,232,255,8,0,46,0,65,0,51,0,255,255,235,255,11,0,2,0,212,255,231,255,5,0,200,255,159,255, +233,255,34,0,245,255,199,255,210,255,242,255,24,0,6,0,160,255,133,255,251,255,54,0,223,255,188,255,5,0,31,0, +4,0,19,0,24,0,240,255,233,255,250,255,243,255,1,0,19,0,225,255,208,255,47,0,87,0,254,255,214,255,13,0, +16,0,239,255,1,0,252,255,212,255,251,255,59,0,31,0,1,0,30,0,18,0,234,255,255,255,8,0,214,255,219,255, +254,255,201,255,172,255,9,0,46,0,218,255,213,255,51,0,72,0,32,0,22,0,250,255,214,255,237,255,250,255,223,255, +12,0,78,0,24,0,231,255,71,0,127,0,15,0,183,255,221,255,17,0,49,0,67,0,7,0,191,255,238,255,52,0, +15,0,225,255,238,255,238,255,253,255,75,0,86,0,244,255,203,255,247,255,1,0,7,0,66,0,77,0,17,0,18,0, +69,0,55,0,248,255,197,255,164,255,199,255,48,0,79,0,8,0,249,255,49,0,38,0,233,255,232,255,1,0,255,255, +7,0,29,0,24,0,18,0,15,0,232,255,193,255,218,255,4,0,20,0,47,0,67,0,20,0,222,255,243,255,22,0, +250,255,205,255,215,255,22,0,84,0,89,0,32,0,237,255,236,255,245,255,242,255,12,0,49,0,33,0,247,255,7,0, +67,0,65,0,224,255,146,255,196,255,64,0,105,0,33,0,233,255,13,0,61,0,39,0,243,255,236,255,5,0,18,0, +23,0,39,0,42,0,254,255,195,255,189,255,233,255,254,255,237,255,240,255,19,0,31,0,6,0,252,255,17,0,20,0, +243,255,231,255,15,0,53,0,31,0,247,255,255,255,26,0,0,0,211,255,241,255,60,0,54,0,239,255,246,255,79,0, +90,0,242,255,168,255,214,255,45,0,60,0,0,0,213,255,243,255,21,0,241,255,183,255,182,255,228,255,6,0,23,0, +36,0,25,0,232,255,193,255,218,255,18,0,25,0,238,255,216,255,240,255,10,0,10,0,5,0,9,0,245,255,198,255, +180,255,222,255,17,0,21,0,254,255,252,255,7,0,233,255,181,255,193,255,7,0,20,0,230,255,240,255,37,0,20,0, +216,255,218,255,0,0,0,0,242,255,248,255,252,255,243,255,238,255,238,255,247,255,14,0,29,0,14,0,247,255,246,255, +254,255,247,255,245,255,4,0,13,0,8,0,249,255,215,255,193,255,227,255,17,0,19,0,253,255,233,255,219,255,243,255, +28,0,10,0,227,255,0,0,32,0,249,255,215,255,237,255,250,255,226,255,212,255,236,255,19,0,15,0,212,255,194,255, +252,255,25,0,245,255,233,255,7,0,5,0,224,255,207,255,231,255,11,0,22,0,10,0,5,0,255,255,230,255,214,255, +220,255,237,255,17,0,51,0,37,0,2,0,233,255,198,255,181,255,230,255,25,0,21,0,8,0,18,0,19,0,1,0, +228,255,220,255,16,0,68,0,38,0,249,255,238,255,198,255,167,255,241,255,60,0,29,0,249,255,255,255,224,255,204,255, +16,0,61,0,9,0,230,255,3,0,15,0,2,0,14,0,23,0,2,0,245,255,254,255,247,255,225,255,220,255,240,255, +22,0,52,0,33,0,234,255,219,255,244,255,241,255,224,255,245,255,17,0,14,0,250,255,217,255,195,255,235,255,33,0, +24,0,9,0,39,0,39,0,245,255,215,255,214,255,224,255,253,255,11,0,2,0,40,0,80,0,20,0,202,255,238,255, +27,0,245,255,220,255,247,255,2,0,14,0,58,0,58,0,254,255,222,255,233,255,246,255,22,0,50,0,25,0,246,255, +2,0,16,0,16,0,37,0,30,0,226,255,209,255,250,255,5,0,0,0,21,0,18,0,247,255,3,0,1,0,211,255, +213,255,14,0,40,0,52,0,66,0,23,0,208,255,194,255,223,255,11,0,61,0,55,0,246,255,222,255,0,0,27,0, +30,0,14,0,254,255,26,0,50,0,3,0,225,255,12,0,29,0,241,255,228,255,254,255,15,0,29,0,26,0,255,255, +6,0,45,0,41,0,254,255,221,255,215,255,238,255,19,0,44,0,56,0,44,0,251,255,227,255,251,255,251,255,233,255, +255,255,10,0,232,255,228,255,12,0,23,0,16,0,28,0,28,0,252,255,221,255,217,255,240,255,11,0,24,0,31,0, +23,0,254,255,247,255,247,255,228,255,247,255,59,0,73,0,31,0,14,0,2,0,226,255,226,255,246,255,248,255,0,0, +251,255,234,255,30,0,88,0,28,0,221,255,6,0,18,0,224,255,232,255,2,0,245,255,5,0,38,0,35,0,24,0, +241,255,185,255,236,255,83,0,71,0,27,0,40,0,252,255,200,255,15,0,50,0,213,255,188,255,8,0,47,0,57,0, +51,0,248,255,237,255,41,0,36,0,254,255,25,0,34,0,8,0,19,0,250,255,185,255,230,255,69,0,51,0,255,255, +10,0,13,0,251,255,10,0,27,0,22,0,8,0,238,255,243,255,27,0,21,0,243,255,6,0,24,0,246,255,250,255, +42,0,32,0,236,255,235,255,20,0,29,0,254,255,246,255,27,0,37,0,253,255,245,255,21,0,25,0,20,0,30,0, +8,0,231,255,233,255,240,255,0,0,41,0,35,0,238,255,243,255,28,0,34,0,38,0,26,0,217,255,198,255,255,255, +1,0,221,255,5,0,54,0,27,0,250,255,243,255,233,255,240,255,7,0,15,0,21,0,13,0,233,255,243,255,46,0, +57,0,22,0,5,0,247,255,234,255,243,255,241,255,230,255,7,0,44,0,36,0,27,0,23,0,236,255,189,255,198,255, +251,255,44,0,43,0,0,0,244,255,20,0,21,0,233,255,210,255,227,255,2,0,6,0,231,255,232,255,26,0,21,0, +223,255,245,255,38,0,243,255,186,255,233,255,28,0,3,0,230,255,236,255,246,255,250,255,248,255,239,255,235,255,232,255, +238,255,15,0,37,0,9,0,226,255,209,255,209,255,238,255,16,0,249,255,214,255,249,255,29,0,238,255,182,255,203,255, +250,255,245,255,207,255,214,255,16,0,32,0,231,255,199,255,235,255,250,255,235,255,11,0,58,0,27,0,222,255,217,255, +240,255,239,255,227,255,208,255,182,255,181,255,215,255,248,255,250,255,235,255,238,255,20,0,43,0,2,0,207,255,214,255, +237,255,231,255,234,255,247,255,213,255,177,255,227,255,51,0,40,0,209,255,166,255,207,255,250,255,244,255,240,255,16,0, +18,0,230,255,222,255,255,255,249,255,224,255,243,255,253,255,221,255,227,255,17,0,2,0,212,255,239,255,32,0,3,0, +206,255,214,255,232,255,208,255,208,255,0,0,8,0,214,255,204,255,253,255,9,0,239,255,253,255,30,0,5,0,209,255, +200,255,229,255,0,0,0,0,226,255,218,255,2,0,13,0,206,255,166,255,207,255,3,0,28,0,47,0,39,0,251,255, +222,255,226,255,245,255,14,0,16,0,245,255,236,255,249,255,238,255,230,255,250,255,2,0,11,0,48,0,25,0,199,255, +206,255,28,0,21,0,218,255,226,255,2,0,13,0,43,0,60,0,29,0,0,0,244,255,221,255,220,255,251,255,15,0, +20,0,16,0,244,255,234,255,5,0,0,0,219,255,235,255,30,0,37,0,13,0,252,255,239,255,236,255,6,0,30,0, +19,0,252,255,254,255,8,0,243,255,226,255,0,0,13,0,235,255,237,255,25,0,27,0,9,0,28,0,37,0,20,0, +17,0,245,255,195,255,224,255,42,0,40,0,12,0,34,0,40,0,5,0,250,255,0,0,240,255,241,255,19,0,35,0, +12,0,247,255,13,0,59,0,67,0,29,0,254,255,250,255,246,255,245,255,4,0,21,0,20,0,5,0,0,0,0,0, +247,255,251,255,16,0,20,0,54,0,144,0,138,0,246,255,178,255,232,255,221,255,204,255,43,0,59,0,188,255,167,255, +20,0,77,0,91,0,90,0,37,0,36,0,94,0,40,0,201,255,224,255,233,255,176,255,216,255,33,0,19,0,35,0, +76,0,22,0,2,0,77,0,58,0,223,255,222,255,232,255,201,255,238,255,32,0,14,0,34,0,89,0,74,0,32,0, +4,0,212,255,206,255,2,0,8,0,242,255,5,0,9,0,252,255,34,0,63,0,42,0,25,0,251,255,201,255,226,255, +37,0,27,0,246,255,10,0,37,0,37,0,27,0,5,0,249,255,254,255,243,255,251,255,50,0,70,0,37,0,13,0, +237,255,196,255,221,255,24,0,23,0,5,0,22,0,31,0,18,0,15,0,13,0,254,255,237,255,231,255,248,255,15,0, +13,0,249,255,241,255,0,0,40,0,55,0,14,0,243,255,2,0,237,255,202,255,233,255,254,255,228,255,2,0,51,0, +12,0,230,255,10,0,22,0,1,0,19,0,35,0,30,0,34,0,8,0,225,255,246,255,8,0,234,255,2,0,55,0, +19,0,226,255,242,255,237,255,217,255,0,0,28,0,8,0,8,0,13,0,246,255,248,255,13,0,8,0,17,0,30,0, +252,255,218,255,232,255,251,255,17,0,44,0,14,0,211,255,217,255,0,0,251,255,233,255,243,255,9,0,31,0,44,0, +46,0,39,0,3,0,210,255,218,255,9,0,20,0,15,0,25,0,18,0,1,0,6,0,252,255,228,255,252,255,32,0, +25,0,16,0,22,0,250,255,219,255,246,255,26,0,15,0,7,0,40,0,58,0,19,0,227,255,221,255,234,255,224,255, +212,255,242,255,35,0,54,0,40,0,16,0,250,255,246,255,12,0,26,0,5,0,223,255,208,255,226,255,253,255,6,0, +254,255,0,0,18,0,29,0,24,0,15,0,7,0,255,255,249,255,237,255,231,255,1,0,23,0,255,255,236,255,11,0, +34,0,18,0,2,0,242,255,220,255,236,255,12,0,252,255,221,255,228,255,252,255,29,0,56,0,20,0,221,255,241,255, +23,0,16,0,22,0,34,0,246,255,207,255,216,255,212,255,225,255,33,0,39,0,225,255,215,255,250,255,238,255,236,255, +16,0,9,0,252,255,27,0,14,0,213,255,218,255,251,255,236,255,239,255,23,0,14,0,228,255,225,255,239,255,238,255, +248,255,0,0,238,255,231,255,250,255,253,255,231,255,225,255,5,0,46,0,42,0,2,0,240,255,248,255,230,255,203,255, +241,255,41,0,9,0,199,255,209,255,248,255,245,255,253,255,25,0,0,0,210,255,220,255,239,255,224,255,232,255,2,0, +255,255,247,255,249,255,222,255,185,255,188,255,225,255,8,0,26,0,14,0,249,255,234,255,214,255,212,255,242,255,247,255, +222,255,234,255,16,0,12,0,234,255,211,255,210,255,246,255,24,0,244,255,199,255,243,255,63,0,63,0,3,0,206,255, +193,255,200,255,190,255,196,255,15,0,74,0,28,0,226,255,239,255,240,255,189,255,164,255,196,255,16,0,106,0,116,0, +22,0,206,255,202,255,173,255,131,255,177,255,22,0,66,0,37,0,0,0,3,0,18,0,255,255,235,255,20,0,62,0, +31,0,241,255,247,255,254,255,227,255,199,255,191,255,221,255,31,0,50,0,0,0,243,255,18,0,242,255,182,255,220,255, +38,0,38,0,21,0,36,0,21,0,229,255,212,255,217,255,211,255,225,255,7,0,30,0,17,0,252,255,2,0,24,0, +8,0,228,255,240,255,22,0,27,0,23,0,15,0,224,255,195,255,247,255,35,0,24,0,39,0,70,0,23,0,207,255, +211,255,249,255,0,0,252,255,4,0,15,0,31,0,41,0,27,0,240,255,189,255,177,255,217,255,6,0,30,0,57,0, +66,0,39,0,26,0,33,0,255,255,204,255,211,255,248,255,5,0,14,0,29,0,18,0,249,255,247,255,10,0,21,0, +14,0,20,0,49,0,52,0,17,0,11,0,41,0,29,0,236,255,227,255,248,255,249,255,253,255,8,0,244,255,228,255, +15,0,57,0,28,0,247,255,8,0,30,0,14,0,255,255,5,0,10,0,3,0,252,255,248,255,249,255,255,255,0,0, +3,0,19,0,37,0,43,0,32,0,1,0,233,255,244,255,9,0,15,0,34,0,49,0,17,0,240,255,249,255,243,255, +221,255,254,255,48,0,42,0,25,0,37,0,24,0,255,255,7,0,3,0,222,255,219,255,255,255,13,0,6,0,4,0, +4,0,13,0,30,0,29,0,11,0,5,0,13,0,21,0,18,0,255,255,245,255,11,0,25,0,6,0,1,0,26,0, +26,0,255,255,246,255,5,0,20,0,38,0,53,0,39,0,4,0,235,255,229,255,236,255,250,255,7,0,9,0,10,0, +21,0,26,0,4,0,231,255,236,255,15,0,31,0,12,0,248,255,254,255,17,0,25,0,16,0,250,255,234,255,242,255, +5,0,8,0,253,255,4,0,24,0,27,0,8,0,252,255,8,0,23,0,20,0,8,0,4,0,4,0,3,0,3,0, +252,255,243,255,250,255,8,0,4,0,254,255,7,0,18,0,18,0,16,0,11,0,255,255,254,255,0,0,244,255,231,255, +238,255,253,255,4,0,0,0,250,255,250,255,0,0,9,0,20,0,18,0,253,255,240,255,0,0,17,0,16,0,11,0, +5,0,252,255,248,255,245,255,239,255,247,255,9,0,6,0,245,255,243,255,252,255,9,0,24,0,26,0,10,0,249,255, +238,255,234,255,249,255,5,0,251,255,240,255,247,255,1,0,6,0,2,0,241,255,232,255,248,255,4,0,4,0,14,0, +20,0,252,255,226,255,229,255,247,255,6,0,15,0,11,0,255,255,0,0,13,0,13,0,246,255,225,255,232,255,2,0, +11,0,253,255,241,255,242,255,252,255,6,0,6,0,246,255,232,255,237,255,253,255,2,0,246,255,234,255,241,255,254,255, +2,0,252,255,243,255,239,255,246,255,255,255,250,255,243,255,252,255,3,0,248,255,244,255,5,0,17,0,7,0,241,255, +231,255,242,255,4,0,11,0,7,0,1,0,250,255,245,255,243,255,246,255,6,0,21,0,10,0,244,255,243,255,246,255, +230,255,220,255,237,255,3,0,11,0,9,0,5,0,1,0,252,255,247,255,248,255,253,255,250,255,242,255,242,255,249,255, +255,255,1,0,251,255,245,255,4,0,20,0,6,0,245,255,6,0,24,0,11,0,245,255,240,255,244,255,249,255,0,0, +6,0,5,0,252,255,239,255,233,255,241,255,255,255,5,0,4,0,1,0,254,255,250,255,244,255,243,255,253,255,1,0, +243,255,234,255,244,255,253,255,245,255,237,255,244,255,255,255,3,0,10,0,16,0,13,0,0,0,247,255,248,255,254,255, +2,0,255,255,245,255,244,255,3,0,15,0,11,0,5,0,7,0,5,0,252,255,252,255,7,0,12,0,2,0,248,255, +250,255,251,255,243,255,240,255,250,255,10,0,18,0,13,0,252,255,239,255,242,255,250,255,248,255,246,255,0,0,10,0, +5,0,253,255,4,0,14,0,9,0,252,255,246,255,250,255,1,0,7,0,7,0,2,0,1,0,5,0,5,0,255,255, +255,255,3,0,1,0,251,255,253,255,6,0,6,0,255,255,252,255,255,255,2,0,4,0,5,0,2,0,249,255,243,255, +247,255,255,255,6,0,9,0,5,0,255,255,254,255,1,0,255,255,251,255,255,255,9,0,8,0,254,255,253,255,6,0, +12,0,8,0,0,0,250,255,245,255,242,255,247,255,4,0,17,0,21,0,14,0,3,0,255,255,4,0,5,0,251,255, +245,255,251,255,4,0,7,0,5,0,2,0,253,255,251,255,255,255,5,0,1,0,248,255,247,255,1,0,8,0,5,0, +254,255,250,255,252,255,255,255,0,0,255,255,2,0,10,0,15,0,11,0,4,0,1,0,252,255,248,255,253,255,9,0, +16,0,11,0,4,0,3,0,1,0,250,255,244,255,247,255,254,255,3,0,2,0,253,255,251,255,251,255,251,255,248,255, +249,255,2,0,10,0,7,0,252,255,246,255,248,255,251,255,252,255,252,255,250,255,248,255,251,255,4,0,8,0,5,0, +254,255,248,255,245,255,247,255,254,255,4,0,4,0,4,0,4,0,4,0,2,0,2,0,4,0,2,0,251,255,248,255, +250,255,252,255,251,255,248,255,245,255,246,255,253,255,4,0,1,0,253,255,254,255,2,0,2,0,255,255,255,255,254,255, +248,255,242,255,243,255,249,255,253,255,1,0,4,0,4,0,2,0,0,0,255,255,0,0,1,0,255,255,248,255,245,255, +255,255,11,0,12,0,4,0,0,0,254,255,247,255,242,255,248,255,4,0,8,0,2,0,253,255,254,255,2,0,3,0, +254,255,248,255,247,255,251,255,253,255,251,255,254,255,6,0,8,0,3,0,0,0,1,0,254,255,250,255,251,255,255,255, +255,255,254,255,0,0,5,0,7,0,5,0,1,0,252,255,250,255,255,255,4,0,5,0,5,0,6,0,6,0,3,0, +2,0,4,0,1,0,253,255,254,255,6,0,10,0,8,0,3,0,1,0,1,0,6,0,11,0,10,0,6,0,4,0, +5,0,4,0,2,0,4,0,8,0,8,0,7,0,9,0,11,0,10,0,8,0,8,0,8,0,8,0,7,0,5,0, +3,0,7,0,14,0,12,0,2,0,252,255,1,0,9,0,11,0,8,0,5,0,6,0,8,0,9,0,5,0,255,255, +254,255,2,0,6,0,5,0,3,0,3,0,2,0,1,0,3,0,4,0,4,0,3,0,5,0,5,0,4,0,5,0, +6,0,5,0,1,0,0,0,2,0,6,0,10,0,12,0,9,0,4,0,3,0,8,0,9,0,6,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,5,0,6,0,3,0,255,255,255,255,0,0,0,0,0,0,3,0,6,0,5,0, +2,0,1,0,0,0,253,255,252,255,252,255,253,255,254,255,1,0,5,0,6,0,4,0,2,0,1,0,1,0,3,0, +3,0,1,0,0,0,3,0,6,0,4,0,1,0,254,255,251,255,248,255,249,255,253,255,1,0,4,0,5,0,6,0, +4,0,1,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,253,255,252,255,254,255,2,0,1,0,254,255, +254,255,1,0,1,0,253,255,252,255,0,0,4,0,2,0,255,255,254,255,0,0,1,0,255,255,254,255,0,0,2,0, +255,255,251,255,251,255,255,255,1,0,253,255,250,255,251,255,253,255,252,255,252,255,255,255,0,0,254,255,249,255,248,255, +251,255,254,255,253,255,250,255,250,255,252,255,252,255,248,255,245,255,248,255,252,255,253,255,253,255,253,255,255,255,0,0, +1,0,255,255,253,255,251,255,251,255,251,255,252,255,254,255,255,255,255,255,254,255,255,255,255,255,253,255,252,255,252,255, +252,255,251,255,253,255,0,0,3,0,2,0,0,0,253,255,252,255,253,255,254,255,251,255,247,255,247,255,251,255,254,255, +254,255,254,255,254,255,254,255,252,255,252,255,252,255,253,255,253,255,252,255,250,255,251,255,254,255,254,255,251,255,249,255, +253,255,0,0,255,255,250,255,247,255,247,255,249,255,252,255,253,255,252,255,252,255,254,255,254,255,252,255,251,255,253,255, +255,255,255,255,254,255,253,255,251,255,251,255,251,255,251,255,249,255,249,255,253,255,0,0,2,0,2,0,2,0,255,255, +253,255,252,255,251,255,249,255,251,255,255,255,3,0,2,0,3,0,4,0,4,0,2,0,255,255,251,255,249,255,251,255, +254,255,255,255,255,255,1,0,3,0,2,0,254,255,253,255,255,255,0,0,0,0,1,0,1,0,255,255,254,255,254,255, +254,255,254,255,1,0,4,0,2,0,254,255,252,255,253,255,254,255,1,0,2,0,0,0,254,255,254,255,1,0,1,0, +2,0,4,0,4,0,2,0,255,255,253,255,252,255,251,255,255,255,3,0,2,0,255,255,254,255,1,0,4,0,5,0, +5,0,3,0,255,255,253,255,254,255,0,0,1,0,3,0,4,0,2,0,2,0,3,0,1,0,253,255,254,255,2,0, +5,0,3,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,4,0,3,0, +1,0,2,0,2,0,0,0,255,255,0,0,2,0,2,0,2,0,4,0,3,0,2,0,2,0,3,0,1,0,255,255, +0,0,1,0,1,0,0,0,2,0,3,0,2,0,2,0,2,0,0,0,0,0,1,0,2,0,2,0,3,0,5,0, +2,0,254,255,254,255,1,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255,2,0,3,0, +3,0,3,0,2,0,255,255,255,255,2,0,3,0,1,0,0,0,1,0,2,0,1,0,2,0,2,0,1,0,0,0, +0,0,1,0,0,0,1,0,3,0,4,0,4,0,2,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255,0,0, +1,0,1,0,2,0,3,0,4,0,4,0,4,0,3,0,1,0,255,255,0,0,1,0,1,0,2,0,4,0,5,0, +3,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,2,0,3,0,3,0,4,0,5,0,4,0,2,0, +1,0,1,0,2,0,3,0,4,0,4,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0, +1,0,0,0,2,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0,2,0,1,0,1,0,1,0,2,0,1,0, +0,0,2,0,5,0,5,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0,3,0,4,0,4,0, +4,0,3,0,1,0,1,0,3,0,4,0,3,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0, +3,0,3,0,3,0,3,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,3,0,2,0,1,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0,254,255,254,255,253,255,253,255,254,255,0,0, +1,0,0,0,255,255,255,255,255,255,0,0,255,255,254,255,254,255,254,255,253,255,254,255,0,0,3,0,3,0,1,0, +255,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,253,255, +254,255,255,255,0,0,1,0,0,0,255,255,253,255,252,255,252,255,253,255,254,255,255,255,255,255,254,255,253,255,253,255, +252,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255, +255,255,255,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,255,255,254,255,254,255,253,255,252,255,252,255,252,255, +253,255,253,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,252,255,251,255,251,255,252,255,253,255,254,255,255,255, +0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255, +253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0, +2,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0, +1,0,1,0,1,0,2,0,3,0,3,0,1,0,0,0,255,255,255,255,0,0,3,0,5,0,5,0,4,0,2,0, +1,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,1,0,4,0,6,0,6,0,3,0,0,0,254,255,253,255, +255,255,2,0,3,0,2,0,0,0,253,255,252,255,255,255,3,0,6,0,8,0,6,0,3,0,1,0,0,0,1,0, +1,0,1,0,255,255,254,255,254,255,1,0,6,0,8,0,6,0,1,0,251,255,249,255,251,255,255,255,3,0,4,0, +2,0,255,255,253,255,255,255,2,0,4,0,5,0,2,0,255,255,254,255,254,255,0,0,2,0,3,0,1,0,255,255, +254,255,254,255,255,255,1,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,253,255,253,255,255,255, +1,0,4,0,6,0,6,0,3,0,0,0,254,255,252,255,253,255,254,255,0,0,0,0,0,0,0,0,255,255,255,255, +254,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,0,0,254,255,254,255,254,255,255,255,1,0, +2,0,2,0,0,0,255,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0, +255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,253,255, +254,255,255,255,0,0,2,0,2,0,1,0,0,0,254,255,253,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,254,255,254,255,254,255,0,0,1,0,2,0,1,0,0,0,255,255,254,255,254,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,255,255,0,0,1,0,1,0, +1,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,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,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/chicken1.pcm b/src/client/sound/data/chicken1.pcm new file mode 100755 index 0000000..003ef91 --- /dev/null +++ b/src/client/sound/data/chicken1.pcm @@ -0,0 +1,1553 @@ +unsigned char PCM_chicken1[49630] = { +1,0,0,0,2,0,0,0,68,172,0,0,231,96,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,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,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +255,255,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255, +0,0,1,0,255,255,1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,1,0,1,0,255,255,1,0,0,0, +0,0,2,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,1,0,1,0,0,0,1,0,2,0,1,0,255,255,1,0,2,0,1,0,3,0,0,0,254,255,3,0,1,0, +255,255,3,0,0,0,254,255,3,0,3,0,255,255,255,255,0,0,2,0,5,0,3,0,2,0,2,0,1,0,3,0, +4,0,4,0,4,0,0,0,0,0,7,0,4,0,0,0,4,0,2,0,255,255,3,0,4,0,1,0,0,0,3,0, +4,0,4,0,7,0,7,0,2,0,0,0,3,0,10,0,10,0,5,0,7,0,7,0,9,0,11,0,3,0,8,0, +9,0,254,255,12,0,13,0,254,255,11,0,12,0,4,0,17,0,12,0,1,0,11,0,16,0,7,0,3,0,19,0, +27,0,14,0,15,0,20,0,17,0,18,0,11,0,19,0,27,0,14,0,23,0,25,0,13,0,31,0,30,0,20,0, +35,0,12,0,254,255,17,0,4,0,2,0,33,0,33,0,14,0,14,0,23,0,3,0,251,255,28,0,23,0,3,0, +23,0,13,0,0,0,16,0,6,0,16,0,35,0,15,0,10,0,16,0,18,0,17,0,3,0,19,0,27,0,5,0, +19,0,21,0,4,0,18,0,7,0,248,255,5,0,3,0,18,0,31,0,13,0,7,0,10,0,27,0,30,0,1,0, +5,0,17,0,17,0,29,0,10,0,11,0,31,0,1,0,11,0,39,0,10,0,14,0,14,0,246,255,7,0,252,255, +242,255,19,0,4,0,239,255,244,255,239,255,251,255,249,255,242,255,4,0,249,255,242,255,254,255,231,255,228,255,237,255, +211,255,219,255,251,255,248,255,220,255,202,255,229,255,241,255,202,255,204,255,228,255,215,255,214,255,224,255,223,255,228,255, +213,255,186,255,177,255,173,255,170,255,178,255,206,255,225,255,219,255,213,255,187,255,169,255,204,255,207,255,192,255,203,255, +181,255,183,255,207,255,184,255,200,255,195,255,125,255,154,255,183,255,119,255,107,255,117,255,133,255,172,255,155,255,157,255, +173,255,145,255,192,255,213,255,164,255,199,255,196,255,170,255,241,255,214,255,158,255,212,255,175,255,121,255,183,255,200,255, +186,255,179,255,125,255,126,255,191,255,230,255,12,0,24,0,235,255,203,255,198,255,188,255,183,255,196,255,203,255,167,255, +130,255,160,255,199,255,198,255,226,255,244,255,177,255,152,255,196,255,182,255,166,255,168,255,117,255,133,255,209,255,213,255, +251,255,56,0,239,255,155,255,178,255,207,255,167,255,97,255,88,255,102,255,88,255,128,255,161,255,136,255,164,255,182,255, +170,255,220,255,199,255,120,255,117,255,109,255,117,255,174,255,179,255,193,255,186,255,78,255,71,255,194,255,222,255,187,255, +190,255,140,255,86,255,136,255,159,255,139,255,196,255,195,255,127,255,131,255,107,255,108,255,193,255,140,255,76,255,157,255, +163,255,153,255,200,255,165,255,162,255,192,255,149,255,155,255,154,255,116,255,201,255,239,255,154,255,160,255,163,255,87,255, +94,255,107,255,63,255,84,255,132,255,131,255,126,255,117,255,75,255,57,255,125,255,152,255,38,255,3,255,113,255,144,255, +119,255,149,255,196,255,223,255,172,255,115,255,110,255,59,255,54,255,88,255,16,255,3,255,39,255,8,255,47,255,61,255, +65,255,195,255,209,255,157,255,161,255,61,255,66,255,156,255,74,255,44,255,45,255,228,254,250,254,248,254,34,255,207,255, +197,255,69,255,27,255,52,255,128,255,117,255,83,255,125,255,116,255,130,255,139,255,77,255,103,255,139,255,189,255,17,0, +192,255,152,255,1,0,252,255,214,255,200,255,161,255,149,255,106,255,108,255,181,255,186,255,165,255,158,255,186,255,232,255, +219,255,232,255,2,0,9,0,52,0,2,0,194,255,242,255,215,255,123,255,62,255,52,255,144,255,178,255,120,255,156,255, +225,255,176,255,117,255,207,255,227,255,88,255,124,255,165,255,14,255,17,255,95,255,86,255,71,255,210,254,205,254,107,255, +101,255,57,255,141,255,11,0,21,0,133,255,182,255,49,0,223,255,21,0,82,0,201,255,211,255,255,255,191,255,124,255, +58,255,152,255,239,255,153,255,179,255,228,255,199,255,238,255,33,0,83,0,79,0,46,0,22,0,117,255,110,255,1,0, +77,255,226,254,156,255,134,255,51,255,104,255,87,255,58,255,115,255,207,255,217,255,157,255,151,255,109,255,43,255,31,255, +14,255,23,255,239,254,207,254,63,255,87,255,97,255,243,255,13,0,7,0,47,0,7,0,10,0,242,255,172,255,139,255, +50,255,67,255,133,255,70,255,107,255,140,255,123,255,219,255,160,255,107,255,245,255,228,255,216,255,26,0,205,255,201,255, +184,255,70,255,103,255,119,255,100,255,139,255,35,255,226,254,63,255,58,255,13,255,57,255,164,255,41,0,46,0,224,255, +50,0,167,0,87,0,16,0,72,0,6,0,173,255,191,255,106,255,85,255,193,255,133,255,91,255,163,255,108,255,72,255, +122,255,150,255,213,255,191,255,96,255,123,255,146,255,103,255,129,255,132,255,42,255,2,255,2,255,205,254,205,254,222,254, +135,254,110,254,159,254,131,254,132,254,156,254,143,254,194,254,216,254,188,254,229,254,226,254,186,254,227,254,23,255,60,255, +78,255,41,255,11,255,241,254,190,254,246,254,153,255,131,255,180,254,173,254,115,255,226,255,0,0,39,0,65,0,56,0, +1,0,211,255,174,255,124,255,141,255,174,255,145,255,136,255,139,255,104,255,74,255,31,255,174,254,78,254,89,254,81,254, +34,254,98,254,182,254,222,254,52,255,123,255,158,255,144,255,92,255,125,255,91,255,207,254,162,254,100,254,34,254,52,254, +19,254,50,254,107,254,35,254,52,254,154,254,247,254,69,255,11,255,15,255,57,255,201,254,221,254,246,254,115,254,120,254, +64,254,223,253,74,254,58,254,22,254,119,254,51,254,239,253,29,254,46,254,57,254,2,254,26,254,132,254,57,254,246,253, +244,253,216,253,28,254,87,254,196,254,74,255,45,255,200,255,177,0,175,0,74,1,200,1,116,1,197,1,161,1,67,1, +235,1,217,1,166,1,81,2,35,2,207,1,255,1,215,1,214,1,124,1,152,0,112,0,70,0,107,255,177,254,70,254, +21,254,229,253,166,253,165,253,186,253,227,253,183,253,60,253,136,253,201,253,110,253,193,253,218,253,90,253,173,253,234,253, +184,253,196,253,97,253,133,253,75,254,45,254,101,254,70,255,144,255,6,0,124,0,203,0,152,1,148,1,56,1,212,1, +193,1,29,1,81,1,60,1,130,0,76,0,132,0,68,0,224,255,37,0,42,0,135,255,62,255,224,254,36,254,77,253, +18,252,97,251,28,251,62,250,250,249,77,250,51,250,145,250,105,251,44,252,217,252,53,253,175,253,35,254,51,254,95,254, +91,254,101,254,238,254,72,255,215,255,132,0,184,0,74,1,213,1,13,2,138,2,113,2,50,2,141,2,145,2,161,2, +179,2,55,2,25,2,200,1,244,0,211,0,162,0,228,255,102,255,245,254,159,254,116,254,2,254,148,253,84,253,207,252, +31,252,243,251,27,252,217,251,173,251,192,251,139,251,180,251,79,252,206,252,60,253,95,253,210,253,195,254,13,255,70,255, +175,255,168,255,47,0,196,0,115,0,111,0,182,0,190,0,207,0,214,0,53,1,145,1,85,1,107,1,166,1,105,1, +53,1,189,0,249,255,130,255,31,255,192,254,130,254,86,254,32,254,164,253,28,253,175,252,113,252,142,252,75,252,181,251, +150,251,88,251,0,251,22,251,1,251,222,250,219,250,149,250,137,250,178,250,151,250,188,250,23,251,35,251,52,251,132,251, +157,251,166,251,136,252,225,253,143,254,56,255,105,0,51,1,190,1,113,2,120,2,56,2,110,2,255,1,13,1,27,1, +94,1,18,1,109,1,251,1,212,1,2,2,89,2,27,2,3,2,216,1,67,1,242,0,129,0,235,255,212,255,132,255, +227,254,160,254,49,254,117,253,255,252,205,252,220,252,237,252,252,252,160,253,31,254,209,253,218,253,74,254,40,254,229,253, +190,253,43,253,143,252,126,252,153,252,140,252,160,252,240,252,68,253,140,253,182,253,220,253,60,254,163,254,251,254,90,255, +157,255,239,255,63,0,70,0,116,0,238,0,152,1,92,2,172,2,239,2,130,3,133,3,85,3,38,3,28,2,8,1, +64,0,19,255,39,254,60,253,33,252,42,252,180,252,19,253,89,254,193,255,126,0,58,1,50,1,24,0,79,255,165,254, +5,253,36,251,56,250,217,249,61,249,240,248,113,249,25,250,166,250,86,251,238,251,80,252,123,252,70,252,18,252,69,252, +169,252,229,252,225,252,220,252,240,252,11,253,116,253,212,253,185,253,215,253,62,254,159,254,152,255,183,0,124,1,166,2, +244,3,247,4,235,5,87,6,37,6,169,5,8,5,198,4,165,4,28,4,135,3,17,3,199,2,191,2,166,2,127,2, +87,2,240,1,97,1,242,0,125,0,178,255,57,255,100,255,71,255,77,255,169,255,35,255,166,254,225,254,149,254,35,254, +166,253,176,252,12,252,86,251,181,250,38,251,160,251,233,251,175,252,162,253,216,254,187,255,52,0,43,1,124,1,198,0, +68,0,191,255,88,255,16,255,113,254,114,254,193,254,133,254,151,254,215,254,65,255,79,0,13,1,86,1,111,1,255,0, +172,0,86,0,131,255,21,255,136,254,67,253,114,252,217,251,251,250,198,250,179,250,5,250,176,249,190,249,150,249,171,249, +32,250,139,250,211,250,9,251,3,251,210,250,52,251,217,251,238,251,113,252,53,253,23,253,81,253,225,253,248,253,208,254, +137,255,105,255,219,255,242,255,227,255,19,1,190,1,208,1,147,2,42,3,81,3,239,2,131,2,214,2,70,2,1,1, +104,0,143,255,244,254,205,254,90,254,181,254,247,254,97,254,84,254,175,253,120,252,44,252,173,251,254,250,73,250,190,248, +225,247,233,247,162,247,151,247,196,247,253,247,119,248,209,248,93,249,0,250,136,250,134,251,66,252,136,252,15,253,64,253, +53,253,120,253,184,253,46,254,134,254,122,254,22,255,18,0,203,0,214,1,152,2,174,2,81,3,48,4,105,4,167,4, +201,4,57,4,157,3,34,3,146,2,92,2,180,2,101,3,225,3,38,4,177,4,193,4,57,4,255,3,91,3,40,2, +49,1,246,255,158,254,123,253,68,252,141,251,17,251,121,250,75,250,219,249,95,249,172,249,222,249,221,249,220,249,124,249, +115,249,186,249,227,249,76,250,184,250,27,251,140,251,234,251,156,252,102,253,75,254,117,255,35,0,239,0,49,2,183,2, +13,3,157,3,171,3,169,3,180,3,172,3,24,4,199,4,95,5,194,5,26,6,126,6,99,6,42,6,57,6,243,5, +151,5,70,5,13,5,56,5,228,4,126,4,196,4,144,4,139,4,41,5,241,4,175,4,196,4,23,4,55,3,53,2, +191,0,41,255,20,253,246,250,90,249,33,248,208,247,243,247,69,248,166,249,176,251,245,253,96,0,26,2,65,3,51,4, +129,4,253,3,237,2,210,1,150,0,100,255,11,255,229,254,172,254,254,254,14,255,29,255,204,255,9,0,223,255,169,255, +64,255,11,255,108,254,218,253,62,254,242,253,64,253,84,253,183,252,243,251,254,251,152,251,71,251,102,251,250,250,166,250, +0,251,203,251,194,252,149,253,205,254,21,0,6,0,72,255,13,255,210,254,110,254,154,254,248,254,174,254,79,254,154,254, +64,255,48,0,60,1,245,1,142,2,238,2,224,2,163,2,115,2,188,2,61,3,133,3,254,3,230,3,164,2,182,1, +95,1,93,0,179,254,57,253,43,252,35,251,32,250,123,249,91,249,205,249,239,249,162,249,39,250,183,250,142,250,161,250, +79,250,113,249,187,248,186,247,118,247,52,248,140,248,39,249,210,249,199,249,32,250,68,250,11,250,210,250,174,251,105,252, +118,253,185,253,237,253,186,254,61,255,25,0,79,1,174,1,141,1,187,1,44,2,86,2,106,2,26,3,128,3,33,3, +1,3,199,2,87,2,186,2,18,3,99,2,178,1,101,1,239,0,123,0,69,0,28,0,208,255,57,255,140,254,201,253, +165,252,16,252,133,252,145,252,12,252,209,251,50,251,136,250,23,251,195,251,163,251,222,251,240,251,187,250,238,249,9,250, +19,249,167,247,34,247,144,246,7,246,121,246,177,247,71,249,232,250,175,252,102,254,62,255,175,255,220,255,52,255,117,254, +248,253,205,253,232,253,128,253,184,253,60,255,106,0,171,1,47,3,145,3,191,3,140,4,58,5,175,5,239,5,23,6, +51,6,76,6,115,6,227,5,33,5,251,4,75,4,83,3,218,2,72,2,56,2,221,2,140,3,145,4,121,5,173,5, +180,5,198,5,157,5,253,4,73,4,160,3,161,2,222,1,47,1,51,0,196,255,131,255,79,255,178,255,168,255,108,255, +122,255,43,255,54,255,42,255,104,254,235,253,6,253,44,252,51,252,98,251,163,250,235,250,96,250,209,249,3,250,2,250, +45,250,22,250,182,249,211,249,121,249,205,248,186,248,234,248,96,249,76,250,242,251,14,254,127,255,242,0,244,2,95,4, +84,5,227,5,100,5,181,4,60,4,160,3,149,3,241,3,10,4,191,4,11,6,223,6,183,7,144,8,169,8,129,8, +182,7,12,6,186,4,98,3,255,1,46,1,2,0,94,255,241,255,19,0,68,0,208,0,194,0,252,0,37,1,158,0, +43,0,88,255,140,254,114,254,78,254,66,254,221,253,237,252,243,252,184,253,184,254,46,0,53,1,177,1,9,2,58,2, +144,2,199,2,221,2,236,2,159,2,141,2,132,2,5,2,6,2,109,2,141,2,188,2,1,3,13,3,142,2,9,2, +30,2,249,1,150,1,65,1,83,0,129,255,60,255,237,254,221,254,185,254,41,254,193,253,162,253,217,253,44,254,118,254, +181,254,35,254,104,253,115,253,80,253,223,252,72,252,158,251,206,251,197,251,207,250,129,250,202,250,47,251,9,252,244,252, +225,253,53,254,163,253,179,253,73,254,72,254,117,254,255,254,2,255,206,254,17,255,132,255,11,0,210,0,50,1,18,1, +221,0,34,0,102,255,35,255,109,254,231,253,36,254,207,253,72,253,196,253,129,254,184,254,225,254,36,255,194,254,218,253, +84,253,241,252,72,252,198,251,176,251,179,251,119,251,168,251,125,252,11,253,129,253,203,253,92,253,235,252,16,252,207,250, +157,250,103,250,110,249,206,248,50,248,196,247,38,248,237,248,253,249,197,250,17,251,73,251,81,251,191,251,36,252,225,251, +85,252,236,252,231,252,149,253,73,254,214,254,26,0,20,1,248,1,245,2,98,3,104,4,201,5,144,6,155,7,106,8, +130,8,130,8,249,7,83,7,72,7,13,7,142,6,109,6,84,6,15,6,137,6,200,7,117,8,140,8,155,8,76,8, +164,7,163,6,161,5,211,4,239,2,157,0,133,255,91,254,255,252,160,252,48,252,168,251,243,251,36,252,200,251,126,251, +95,251,66,251,230,250,54,250,147,249,250,248,13,248,125,247,174,247,183,247,30,248,41,249,92,249,196,249,147,251,17,253, +24,254,32,255,156,255,75,0,69,1,91,2,229,3,194,4,64,5,132,6,151,7,151,8,201,9,56,10,143,10,9,11, +225,10,213,10,32,11,216,10,236,9,29,9,171,8,10,8,77,7,171,6,208,5,77,5,250,4,241,3,11,3,87,2, +14,1,22,0,95,255,49,254,76,253,133,252,111,251,194,250,89,250,1,250,69,250,148,250,173,250,89,251,248,251,64,252, +26,253,152,253,50,253,32,253,228,252,72,252,77,252,72,252,110,252,152,253,212,254,116,0,189,2,88,4,186,5,70,7, +103,8,95,9,151,9,6,9,154,8,215,7,1,7,135,6,158,5,191,4,239,3,193,2,78,2,241,1,184,0,182,255, +170,254,97,253,104,252,24,251,255,249,86,249,253,247,110,247,252,247,138,247,84,247,76,248,98,248,35,248,228,248,124,249, +123,249,145,249,241,249,90,250,149,250,72,251,74,252,182,252,170,253,144,255,216,0,207,1,0,3,175,3,89,4,10,5, +8,5,243,4,241,4,160,4,119,4,110,4,120,4,188,4,213,4,251,4,35,5,181,4,56,4,185,3,184,2,163,1, +36,0,36,254,137,252,156,250,67,248,8,247,50,246,244,244,115,244,83,244,189,243,104,243,172,243,63,244,146,244,113,244, +215,244,143,245,167,245,247,245,194,246,130,247,170,248,236,249,28,251,216,252,136,254,242,255,78,1,66,2,165,3,136,5, +180,6,177,7,172,8,24,9,199,9,196,10,141,11,45,12,91,12,111,12,126,12,34,12,14,12,236,11,3,11,93,10, +13,10,58,9,13,8,196,6,111,5,4,4,152,2,54,1,161,255,134,254,36,254,142,253,222,252,39,252,65,251,135,250, +108,249,80,248,219,247,3,247,73,246,59,246,197,245,139,245,218,245,74,246,111,247,55,248,61,248,241,248,212,249,141,250, +155,251,140,252,111,253,74,254,22,255,19,0,232,0,214,1,177,2,48,3,95,4,101,5,128,5,63,6,5,7,81,7, +20,8,7,8,31,7,198,6,93,6,181,5,248,4,0,4,137,3,7,3,250,1,122,1,58,1,172,0,155,0,154,0, +216,255,21,255,148,254,189,253,43,253,6,253,103,252,236,251,164,251,177,250,127,250,62,251,81,251,133,251,48,252,173,252, +197,253,217,254,33,255,161,255,54,0,132,0,241,0,101,1,242,1,105,2,212,2,216,3,203,4,54,5,192,5,42,6, +107,6,224,6,26,7,92,7,191,7,94,7,216,6,191,6,243,5,202,4,57,4,69,3,217,1,1,1,55,0,72,255, +236,254,139,254,146,253,169,252,56,252,222,251,11,251,245,249,63,249,184,248,241,247,37,247,198,246,202,246,141,246,73,246, +189,246,58,247,60,247,128,247,9,248,169,248,153,249,103,250,18,251,24,252,37,253,68,254,167,255,213,0,248,1,49,3, +50,4,94,5,154,6,159,7,220,8,201,9,37,10,100,10,37,10,37,10,150,10,252,9,94,9,108,9,155,8,180,7, +55,7,35,6,22,5,10,4,247,2,120,2,132,1,96,0,251,255,106,255,164,254,201,253,202,252,24,252,8,251,20,250, +191,249,180,248,218,247,223,247,118,247,112,247,210,247,198,247,77,248,171,248,73,248,125,248,227,248,49,249,233,249,123,250, +6,251,235,251,219,252,194,253,141,254,107,255,138,0,165,1,139,2,73,3,57,4,48,5,211,5,150,6,78,7,230,7, +206,8,109,9,188,9,253,9,224,9,55,10,121,10,168,9,113,9,188,9,22,9,149,8,129,8,4,8,56,7,78,6, +160,5,232,4,205,3,248,2,90,2,144,1,115,0,243,254,247,253,85,253,89,252,191,251,53,251,139,250,147,250,68,250, +125,249,80,249,239,248,87,248,37,248,168,247,14,247,155,246,66,246,144,246,254,246,72,247,236,247,81,248,196,248,205,249, +73,250,117,250,33,251,130,251,199,251,81,252,184,252,176,253,254,254,169,255,141,0,179,1,57,2,159,2,3,3,120,3, +105,4,228,4,245,4,115,5,135,5,107,5,241,5,31,6,237,5,184,5,227,4,16,4,199,3,124,3,90,3,71,3, +226,2,153,2,155,2,161,2,51,2,107,1,35,1,158,0,61,255,100,254,189,253,168,252,98,252,58,252,150,251,153,251, +121,251,16,251,77,251,46,251,236,250,23,251,201,250,184,250,253,250,226,250,75,251,182,251,216,251,220,252,183,253,33,254, +67,255,80,0,230,0,155,1,125,2,109,3,224,3,86,4,30,5,64,5,91,5,182,5,129,5,134,5,196,5,182,5, +215,5,218,5,239,5,3,6,98,5,16,5,224,4,27,4,193,3,53,3,64,2,204,1,5,1,92,0,64,0,111,255, +197,254,198,254,90,254,156,253,255,252,224,252,185,252,232,251,132,251,29,251,42,250,234,249,95,249,108,248,138,248,132,248, +101,248,234,248,206,248,247,248,211,249,9,250,98,250,206,250,169,250,13,251,179,251,57,252,13,253,133,253,251,253,253,254, +191,255,52,0,159,0,9,1,147,1,223,1,56,2,203,2,195,2,117,2,108,2,67,2,88,2,154,2,68,2,199,1, +159,1,136,1,115,1,67,1,19,1,36,1,70,1,114,1,137,1,66,1,249,0,184,0,53,0,224,255,188,255,90,255, +24,255,43,255,42,255,46,255,109,255,99,255,240,254,187,254,167,254,113,254,115,254,67,254,200,253,174,253,128,253,87,253, +218,253,51,254,104,254,29,255,125,255,133,255,190,255,221,255,250,255,5,0,217,255,239,255,61,0,95,0,74,0,84,0, +189,0,231,0,220,0,67,1,154,1,183,1,220,1,198,1,208,1,209,1,88,1,73,1,135,1,72,1,27,1,253,0, +140,0,59,0,213,255,52,255,251,254,20,255,1,255,179,254,65,254,27,254,77,254,39,254,236,253,33,254,18,254,192,253, +212,253,236,253,214,253,204,253,239,253,113,254,176,254,147,254,232,254,249,254,132,254,173,254,20,255,232,254,104,254,40,254, +115,254,171,254,179,254,24,255,98,255,120,255,138,255,72,255,95,255,237,255,78,0,165,0,189,0,196,0,254,0,205,0, +46,1,78,2,93,2,56,2,198,2,166,2,79,2,134,2,181,2,239,2,15,3,250,2,12,3,3,3,19,3,110,3, +134,3,178,3,32,4,59,4,58,4,66,4,21,4,6,4,27,4,20,4,242,3,130,3,3,3,196,2,108,2,65,2, +100,2,7,2,136,1,164,1,179,1,130,1,114,1,81,1,25,1,214,0,136,0,118,0,111,0,2,0,141,255,140,255, +122,255,247,254,190,254,221,254,156,254,70,254,46,254,32,254,52,254,29,254,212,253,235,253,52,254,108,254,122,254,55,254, +65,254,170,254,173,254,166,254,218,254,169,254,111,254,178,254,251,254,36,255,76,255,56,255,53,255,110,255,110,255,164,255, +63,0,124,0,156,0,188,0,117,0,177,0,99,1,109,1,80,1,119,1,156,1,237,1,36,2,32,2,8,2,193,1, +221,1,69,2,8,2,200,1,249,1,131,1,241,0,102,1,151,1,53,1,127,1,149,1,67,1,86,1,164,0,251,255, +83,0,165,255,237,254,46,255,116,254,17,254,157,254,69,254,63,254,165,254,161,254,11,255,224,254,81,254,168,254,190,254, +150,254,96,254,214,253,232,253,250,253,32,254,235,254,216,254,193,254,72,255,67,255,219,255,96,0,229,255,51,0,58,0, +162,255,253,255,14,0,8,0,113,0,80,0,239,0,182,1,64,1,98,1,199,1,130,1,189,1,186,1,27,1,250,0, +255,0,193,0,113,0,93,0,212,0,55,1,254,0,137,0,85,0,42,0,124,255,233,254,236,254,197,254,118,254,114,254, +102,254,52,254,61,254,123,254,82,254,6,254,83,254,160,254,149,254,153,254,179,254,39,255,153,255,143,255,192,255,246,255, +220,255,52,0,177,0,208,0,235,0,40,1,96,1,104,1,165,1,32,2,34,2,59,2,201,2,244,2,222,2,220,2, +195,2,170,2,204,2,88,3,107,3,223,2,9,3,33,3,148,2,123,2,26,2,83,1,13,1,208,0,216,0,185,0, +234,255,6,0,126,0,32,0,39,0,36,0,101,255,0,255,24,255,91,255,91,255,234,254,231,254,9,255,204,254,253,254, +121,255,124,255,48,255,50,255,166,255,226,255,233,255,70,0,179,0,22,1,146,1,231,1,31,2,59,2,60,2,98,2, +156,2,226,2,70,3,132,3,120,3,140,3,236,3,222,3,101,3,96,3,59,3,142,2,81,2,16,2,86,1,21,1, +227,0,36,0,162,255,90,255,0,255,234,254,172,254,31,254,195,253,118,253,88,253,99,253,206,252,68,252,150,252,173,252, +73,252,54,252,99,252,174,252,235,252,21,253,141,253,254,253,109,254,229,254,214,254,11,255,198,255,2,0,80,0,194,0, +211,0,139,1,117,2,169,2,39,3,198,3,250,3,136,4,64,5,125,5,144,5,192,5,212,5,213,5,253,5,203,5, +65,5,80,5,103,5,213,4,119,4,100,4,27,4,165,3,42,3,241,2,166,2,27,2,214,1,88,1,97,0,208,255, +149,255,67,255,200,254,38,254,240,253,252,253,157,253,61,253,5,253,176,252,164,252,202,252,176,252,191,252,42,253,98,253, +140,253,49,254,215,254,32,255,132,255,22,0,123,0,136,0,129,0,215,0,70,1,155,1,31,2,104,2,109,2,197,2, +254,2,239,2,13,3,14,3,48,3,175,3,169,3,95,3,113,3,48,3,241,2,67,3,38,3,207,2,222,2,77,2, +109,1,42,1,176,0,57,0,124,0,111,0,214,255,101,255,50,255,53,255,211,254,19,254,64,254,220,254,141,254,248,253, +10,254,115,254,120,254,9,254,234,253,33,254,41,254,101,254,209,254,255,254,85,255,154,255,132,255,215,255,91,0,158,0, +254,0,207,0,28,0,25,0,60,0,11,0,4,0,206,255,155,255,142,255,57,255,40,255,20,255,197,254,66,255,150,255, +29,255,26,255,249,254,133,254,167,254,178,254,192,254,30,255,250,254,241,254,92,255,150,255,35,0,212,0,248,0,36,1, +105,1,134,1,215,1,65,2,135,2,228,2,76,3,130,3,176,3,252,3,69,4,113,4,96,4,60,4,94,4,99,4, +62,4,83,4,5,4,85,3,29,3,4,3,171,2,65,2,196,1,150,1,134,1,208,0,241,255,134,255,19,255,98,254, +221,253,100,253,179,252,91,252,38,252,77,251,167,250,182,250,149,250,85,250,141,250,4,251,33,251,212,250,10,251,183,251, +217,251,12,252,193,252,59,253,160,253,54,254,157,254,223,254,115,255,110,0,232,0,234,0,170,1,109,2,118,2,236,2, +125,3,153,3,12,4,61,4,241,3,48,4,91,4,26,4,52,4,247,3,52,3,251,2,233,2,124,2,88,2,79,2, +227,1,162,1,179,1,91,1,227,0,241,0,183,0,50,0,72,0,54,0,236,255,46,0,1,0,167,255,250,255,241,255, +18,0,187,0,179,0,11,1,184,1,55,1,63,1,53,2,93,2,109,2,238,2,128,3,18,4,246,3,215,3,111,4, +142,4,56,4,51,4,93,4,203,4,18,5,192,4,143,4,202,4,217,4,127,4,10,4,195,3,143,3,29,3,131,2, +11,2,117,1,200,0,106,0,213,255,240,254,116,254,20,254,182,253,126,253,253,252,165,252,134,252,96,252,177,252,145,252, +17,252,133,252,192,252,134,252,249,252,53,253,80,253,206,253,16,254,90,254,136,254,180,254,114,255,218,255,32,0,206,0, +40,1,177,1,72,2,102,2,237,2,110,3,193,3,120,4,148,4,120,4,28,5,132,5,105,5,77,5,105,5,167,5, +139,5,103,5,99,5,37,5,23,5,33,5,254,4,172,4,248,3,138,3,89,3,169,2,8,2,129,1,238,0,191,0, +86,0,200,255,178,255,135,255,43,255,229,254,210,254,209,254,101,254,248,253,201,253,138,253,174,253,205,253,169,253,250,253, +34,254,10,254,78,254,89,254,109,254,222,254,251,254,30,255,170,255,24,0,49,0,88,0,176,0,212,0,49,1,238,1, +2,2,243,1,21,2,183,1,211,1,60,2,13,2,70,2,107,2,27,2,94,2,101,2,53,2,123,2,66,2,254,1, +35,2,249,1,212,1,178,1,160,1,217,1,133,1,51,1,126,1,116,1,60,1,45,1,41,1,45,1,211,0,189,0, +227,0,96,0,136,0,25,1,142,0,148,0,20,1,134,0,116,0,171,0,13,0,240,255,237,255,154,255,28,0,74,0, +210,255,8,0,20,0,224,255,71,0,120,0,106,0,80,0,221,255,253,255,56,0,208,255,13,0,50,0,125,255,168,255, +241,255,89,255,125,255,217,255,169,255,249,255,33,0,237,255,52,0,32,0,239,255,117,0,164,0,183,0,73,1,39,1, +205,0,140,1,55,2,242,1,228,1,73,2,49,2,222,1,18,2,68,2,55,2,120,2,153,2,87,2,79,2,77,2, +36,2,31,2,232,1,160,1,179,1,167,1,97,1,82,1,61,1,215,0,142,0,167,0,163,0,69,0,25,0,57,0, +25,0,196,255,163,255,154,255,127,255,116,255,44,255,177,254,180,254,194,254,115,254,134,254,114,254,247,253,35,254,80,254, +53,254,177,254,197,254,115,254,240,254,88,255,73,255,125,255,189,255,244,255,23,0,23,0,50,0,88,0,194,0,21,1, +241,0,112,1,5,2,116,1,74,1,233,1,253,1,32,2,153,2,160,2,145,2,189,2,212,2,227,2,7,3,61,3, +97,3,102,3,126,3,127,3,22,3,212,2,21,3,15,3,188,2,207,2,216,2,118,2,38,2,222,1,138,1,126,1, +135,1,80,1,14,1,250,0,226,0,136,0,254,255,170,255,192,255,141,255,1,255,56,255,169,255,94,255,40,255,26,255, +250,254,25,255,223,254,150,254,228,254,15,255,5,255,217,254,164,254,18,255,102,255,110,255,204,255,227,255,4,0,59,0, +214,255,26,0,203,0,146,0,170,0,66,1,98,1,134,1,208,1,253,1,255,1,10,2,113,2,193,2,20,3,124,3, +97,3,106,3,152,3,85,3,69,3,35,3,249,2,33,3,162,2,107,2,240,2,154,2,80,2,86,2,151,1,79,1, +91,1,222,0,188,0,145,0,24,0,240,255,189,255,197,255,254,255,168,255,105,255,125,255,79,255,33,255,15,255,246,254, +247,254,246,254,188,254,119,254,143,254,209,254,194,254,175,254,216,254,208,254,195,254,64,255,212,255,255,255,43,0,100,0, +149,0,234,0,239,0,245,0,121,1,141,1,130,1,251,1,218,1,122,1,206,1,42,2,73,2,42,2,251,1,1,2, +204,1,177,1,220,1,191,1,198,1,171,1,55,1,64,1,46,1,228,0,248,0,218,0,245,0,61,1,206,0,161,0, +215,0,194,0,3,1,63,1,28,1,52,1,81,1,97,1,108,1,102,1,155,1,166,1,139,1,205,1,14,2,32,2, +15,2,14,2,101,2,53,2,143,1,194,1,28,2,232,1,249,1,243,1,121,1,158,1,21,2,213,1,149,1,155,1, +48,1,236,0,227,0,78,0,222,255,236,255,216,255,140,255,253,254,170,254,216,254,193,254,183,254,234,254,153,254,95,254, +145,254,152,254,152,254,131,254,97,254,132,254,142,254,132,254,219,254,81,255,110,255,103,255,187,255,50,0,165,0,56,1, +132,1,218,1,99,2,142,2,14,3,157,3,69,3,74,3,191,3,185,3,217,3,193,3,121,3,202,3,189,3,147,3, +8,4,250,3,137,3,97,3,43,3,6,3,206,2,94,2,2,2,164,1,126,1,130,1,63,1,243,0,149,0,17,0, +220,255,217,255,163,255,69,255,46,255,93,255,13,255,148,254,163,254,137,254,70,254,100,254,108,254,127,254,183,254,171,254, +200,254,213,254,143,254,203,254,210,254,73,254,194,254,93,255,253,254,31,255,82,255,4,255,130,255,246,255,235,255,76,0, +71,0,76,0,214,0,146,0,127,0,9,1,200,0,176,0,232,0,128,0,72,0,66,0,85,0,170,0,153,0,173,0, +217,0,112,0,143,0,23,1,26,1,12,1,252,0,1,1,30,1,8,1,26,1,63,1,111,1,129,1,12,1,41,1, +136,1,31,1,19,1,223,0,113,0,73,1,142,1,26,1,166,1,129,1,46,1,187,1,57,1,193,0,69,1,34,1, +9,1,41,1,217,0,229,0,227,0,146,0,152,0,146,0,139,0,164,0,128,0,76,0,31,0,19,0,40,0,26,0, +65,0,145,0,102,0,223,255,184,255,24,0,118,0,162,0,89,0,153,255,150,255,210,255,96,255,166,255,1,0,104,255, +118,255,143,255,60,255,183,255,217,255,226,255,169,0,106,0,226,255,26,0,198,255,137,255,175,255,135,255,127,255,76,255, +59,255,151,255,133,255,167,255,224,255,125,255,140,255,127,255,31,255,176,255,230,255,101,255,149,255,191,255,199,255,50,0, +66,0,47,0,98,0,146,0,203,0,4,1,64,1,29,1,136,0,167,0,20,1,2,1,140,1,70,2,158,1,114,0, +49,0,249,0,243,1,181,1,129,0,75,0,14,1,120,1,185,1,165,1,218,0,171,0,245,0,119,0,54,0,107,0, +10,0,219,255,31,0,30,0,7,0,246,255,3,0,249,255,125,255,121,255,204,255,144,255,84,255,21,255,223,254,101,255, +152,255,14,255,211,254,214,254,16,255,124,255,175,255,234,255,225,255,159,255,233,255,37,0,244,255,213,255,228,255,97,0, +154,0,60,0,165,0,28,1,175,0,216,0,57,1,209,0,142,0,136,0,155,0,207,0,125,0,109,0,231,0,186,0, +135,0,184,0,133,0,141,0,180,0,48,0,230,255,252,255,196,255,148,255,96,255,44,255,89,255,57,255,195,254,202,254, +243,254,224,254,230,254,206,254,90,254,1,254,26,254,83,254,73,254,42,254,83,254,186,254,238,254,190,254,135,254,116,254, +150,254,1,255,10,255,179,254,235,254,68,255,36,255,50,255,138,255,198,255,216,255,184,255,172,255,5,0,125,0,111,0, +16,0,100,0,239,0,221,0,250,0,37,1,247,0,41,1,37,1,210,0,48,1,44,1,106,0,99,0,200,0,193,0, +147,0,81,0,16,0,50,0,136,0,77,0,211,255,247,255,18,0,238,255,58,0,100,0,57,0,238,255,126,255,185,255, +247,255,112,255,93,255,91,255,3,255,55,255,29,255,254,254,114,255,251,254,146,254,73,255,123,255,109,255,177,255,110,255, +46,255,80,255,102,255,101,255,56,255,38,255,89,255,112,255,84,255,55,255,72,255,60,255,13,255,77,255,97,255,254,254, +1,255,48,255,27,255,219,254,151,254,193,254,211,254,158,254,199,254,164,254,108,254,194,254,171,254,184,254,67,255,213,254, +87,254,150,254,95,254,34,254,94,254,107,254,128,254,173,254,146,254,110,254,122,254,193,254,59,255,114,255,50,255,73,255, +176,255,75,255,217,254,83,255,132,255,90,255,170,255,187,255,173,255,28,0,42,0,202,255,204,255,241,255,6,0,47,0, +253,255,196,255,25,0,5,0,155,255,245,255,233,255,111,255,217,255,161,255,231,254,114,255,130,255,197,254,249,254,9,255, +169,254,160,254,64,254,5,254,72,254,73,254,113,254,128,254,188,253,104,253,32,254,145,254,98,254,80,254,55,254,23,254, +82,254,91,254,96,254,250,254,9,255,149,254,234,254,76,255,63,255,57,255,1,255,55,255,238,255,215,255,122,255,170,255, +143,255,98,255,189,255,183,255,75,255,134,255,216,255,116,255,25,255,55,255,84,255,44,255,204,254,148,254,210,254,28,255, +228,254,91,254,52,254,86,254,62,254,84,254,139,254,57,254,244,253,91,254,164,254,21,254,146,253,9,254,82,254,228,253, +253,253,83,254,94,254,124,254,42,254,26,254,247,254,73,255,25,255,51,255,39,255,92,255,211,255,209,255,176,255,197,255, +15,0,80,0,54,0,41,0,38,0,31,0,102,0,82,0,10,0,64,0,53,0,220,255,225,255,227,255,225,255,53,0, +98,0,250,255,151,255,181,255,173,255,117,255,155,255,150,255,104,255,134,255,99,255,12,255,15,255,97,255,195,255,170,255, +68,255,67,255,78,255,56,255,85,255,129,255,162,255,155,255,124,255,154,255,186,255,145,255,95,255,119,255,166,255,126,255, +111,255,170,255,150,255,173,255,252,255,129,255,226,254,3,255,41,255,254,254,198,254,143,254,126,254,136,254,118,254,100,254, +107,254,106,254,123,254,167,254,128,254,47,254,56,254,50,254,240,253,243,253,62,254,103,254,44,254,255,253,105,254,175,254, +118,254,123,254,182,254,239,254,56,255,60,255,37,255,47,255,37,255,117,255,245,255,197,255,140,255,220,255,223,255,220,255, +75,0,82,0,59,0,110,0,22,0,181,255,242,255,33,0,91,0,111,0,240,255,222,255,15,0,160,255,91,255,135,255, +125,255,97,255,98,255,78,255,26,255,0,255,12,255,211,254,95,254,43,254,94,254,165,254,124,254,21,254,252,253,18,254, +10,254,226,253,239,253,65,254,105,254,160,254,174,254,65,254,83,254,146,254,122,254,236,254,233,254,107,254,0,255,41,255, +171,254,10,255,35,255,34,255,163,255,87,255,28,255,93,255,28,255,71,255,143,255,31,255,63,255,171,255,104,255,18,255, +234,254,201,254,191,254,196,254,220,254,236,254,225,254,208,254,187,254,148,254,120,254,150,254,141,254,107,254,134,254,33,254, +196,253,104,254,140,254,252,253,0,254,14,254,26,254,36,254,161,253,192,253,118,254,98,254,22,254,242,253,231,253,49,254, +236,253,109,253,213,253,41,254,11,254,73,254,95,254,49,254,70,254,37,254,247,253,50,254,17,254,236,253,127,254,164,254, +76,254,93,254,49,254,251,253,78,254,100,254,103,254,120,254,42,254,49,254,138,254,180,254,222,254,182,254,178,254,40,255, +253,254,191,254,46,255,73,255,75,255,112,255,60,255,121,255,220,255,143,255,165,255,17,0,209,255,196,255,41,0,6,0, +182,255,211,255,7,0,4,0,206,255,179,255,190,255,159,255,102,255,42,255,31,255,103,255,87,255,6,255,253,254,201,254, +190,254,26,255,244,254,187,254,205,254,138,254,128,254,181,254,151,254,142,254,127,254,99,254,135,254,111,254,87,254,167,254, +226,254,249,254,26,255,78,255,112,255,119,255,180,255,158,255,101,255,16,0,102,0,235,255,17,0,105,0,119,0,108,0, +20,0,79,0,219,0,179,0,163,0,159,0,98,0,145,0,133,0,33,0,7,0,36,0,94,0,14,0,160,255,23,0, +55,0,240,255,4,0,108,255,240,254,64,255,22,255,245,254,16,255,193,254,201,254,214,254,161,254,203,254,179,254,124,254, +134,254,75,254,79,254,150,254,155,254,202,254,186,254,133,254,242,254,30,255,235,254,47,255,90,255,85,255,193,255,39,0, +3,0,3,0,153,0,189,0,89,0,150,0,195,0,136,0,248,0,59,1,224,0,231,0,236,0,7,1,89,1,227,0, +163,0,53,1,36,1,254,0,114,1,99,1,19,1,8,1,234,0,8,1,42,1,219,0,160,0,132,0,97,0,120,0, +84,0,249,255,14,0,11,0,159,255,150,255,188,255,159,255,145,255,101,255,29,255,12,255,1,255,44,255,87,255,226,254, +149,254,215,254,3,255,245,254,170,254,143,254,213,254,179,254,178,254,42,255,237,254,133,254,211,254,10,255,253,254,16,255, +50,255,55,255,34,255,126,255,212,255,99,255,75,255,189,255,158,255,134,255,216,255,245,255,31,0,76,0,243,255,168,255, +238,255,2,0,173,255,200,255,22,0,238,255,195,255,197,255,227,255,60,0,65,0,208,255,162,255,194,255,200,255,175,255, +202,255,247,255,200,255,161,255,201,255,243,255,48,0,34,0,204,255,219,255,203,255,129,255,178,255,244,255,9,0,21,0, +0,0,26,0,255,255,171,255,4,0,65,0,2,0,91,0,125,0,239,255,0,0,56,0,232,255,5,0,70,0,229,255, +172,255,3,0,62,0,27,0,211,255,220,255,78,0,98,0,244,255,235,255,71,0,58,0,1,0,38,0,48,0,15,0, +62,0,65,0,247,255,207,255,140,255,186,255,105,0,54,0,178,255,156,255,55,255,63,255,181,255,158,255,158,255,145,255, +74,255,121,255,121,255,124,255,169,255,54,255,133,255,76,0,188,255,143,255,23,0,179,255,139,255,233,255,183,255,119,255, +151,255,10,0,103,0,33,0,228,255,69,0,198,0,217,0,136,0,109,0,145,0,128,0,101,0,152,0,253,0,19,1, +215,0,193,0,179,0,187,0,185,0,82,0,118,0,205,0,65,0,80,0,224,0,75,0,246,255,97,0,22,0,175,255, +249,255,59,0,254,255,183,255,192,255,198,255,194,255,163,255,83,255,131,255,173,255,56,255,82,255,161,255,53,255,22,255, +59,255,31,255,80,255,114,255,64,255,123,255,233,255,201,255,117,255,108,255,135,255,237,255,76,0,187,255,81,255,228,255, +232,255,141,255,255,255,56,0,235,255,229,255,239,255,247,255,46,0,74,0,53,0,46,0,57,0,68,0,108,0,117,0, +52,0,15,0,37,0,90,0,95,0,1,0,39,0,178,0,156,0,100,0,50,0,223,255,239,255,234,255,251,255,84,0, +245,255,198,255,28,0,186,255,140,255,207,255,195,255,225,255,198,255,149,255,183,255,109,255,117,255,213,255,199,255,35,0, +30,0,115,255,205,255,16,0,143,255,173,255,25,0,45,0,207,255,139,255,249,255,4,0,221,255,45,0,195,255,82,255, +188,255,225,255,219,255,192,255,122,255,157,255,149,255,125,255,182,255,145,255,147,255,200,255,149,255,153,255,104,255,251,254, +107,255,162,255,22,255,32,255,117,255,83,255,51,255,105,255,136,255,64,255,51,255,133,255,117,255,76,255,122,255,124,255, +66,255,64,255,111,255,128,255,114,255,98,255,74,255,80,255,133,255,176,255,189,255,206,255,6,0,13,0,206,255,20,0, +102,0,23,0,35,0,82,0,58,0,135,0,78,0,198,255,65,0,73,0,213,255,66,0,76,0,245,255,28,0,7,0, +24,0,54,0,246,255,80,0,108,0,227,255,45,0,95,0,244,255,17,0,30,0,24,0,104,0,30,0,203,255,12,0, +2,0,232,255,20,0,50,0,80,0,26,0,191,255,250,255,66,0,54,0,70,0,53,0,20,0,94,0,112,0,248,255, +197,255,238,255,12,0,41,0,27,0,229,255,227,255,237,255,212,255,186,255,206,255,53,0,74,0,233,255,9,0,66,0, +246,255,234,255,1,0,232,255,26,0,54,0,15,0,252,255,216,255,225,255,17,0,3,0,11,0,23,0,25,0,88,0, +73,0,30,0,97,0,104,0,72,0,97,0,51,0,22,0,98,0,132,0,120,0,146,0,180,0,157,0,98,0,78,0, +42,0,15,0,102,0,128,0,41,0,47,0,83,0,73,0,103,0,100,0,67,0,109,0,156,0,131,0,107,0,140,0, +127,0,47,0,48,0,44,0,236,255,53,0,73,0,208,255,51,0,145,0,29,0,71,0,85,0,188,255,7,0,78,0, +228,255,38,0,99,0,11,0,27,0,73,0,58,0,33,0,17,0,109,0,184,0,126,0,106,0,127,0,131,0,144,0, +122,0,113,0,120,0,86,0,92,0,138,0,149,0,142,0,124,0,86,0,37,0,59,0,107,0,30,0,244,255,63,0, +79,0,102,0,113,0,20,0,250,255,224,255,164,255,223,255,208,255,159,255,12,0,230,255,66,255,106,255,161,255,81,255, +78,255,160,255,173,255,145,255,125,255,47,255,12,255,131,255,204,255,120,255,70,255,147,255,223,255,218,255,234,255,231,255, +161,255,246,255,100,0,6,0,254,255,119,0,169,0,188,0,106,0,65,0,216,0,229,0,120,0,141,0,178,0,194,0, +179,0,127,0,156,0,175,0,147,0,169,0,162,0,123,0,101,0,93,0,123,0,116,0,65,0,65,0,79,0,47,0, +28,0,88,0,95,0,236,255,190,255,154,255,81,255,163,255,247,255,249,255,233,255,94,255,78,255,177,255,95,255,111,255, +194,255,166,255,1,0,242,255,163,255,58,0,40,0,178,255,236,255,225,255,16,0,80,0,24,0,127,0,148,0,30,0, +141,0,211,0,163,0,203,0,199,0,209,0,8,1,31,1,41,1,253,0,29,1,65,1,231,0,41,1,96,1,253,0, +98,1,153,1,27,1,56,1,86,1,35,1,255,0,185,0,207,0,247,0,227,0,10,1,3,1,16,1,63,1,182,0, +84,0,123,0,99,0,95,0,71,0,10,0,44,0,23,0,212,255,1,0,28,0,231,255,198,255,212,255,225,255,218,255, +13,0,69,0,33,0,235,255,223,255,0,0,51,0,89,0,90,0,251,255,236,255,135,0,178,0,159,0,199,0,133,0, +152,0,30,1,235,0,173,0,222,0,255,0,37,1,244,0,193,0,29,1,57,1,7,1,224,0,174,0,1,1,119,1, +87,1,31,1,7,1,56,1,165,1,129,1,41,1,36,1,20,1,25,1,6,1,189,0,217,0,22,1,25,1,241,0, +144,0,181,0,58,1,239,0,171,0,35,1,50,1,233,0,253,0,247,0,168,0,132,0,164,0,172,0,161,0,211,0, +214,0,159,0,188,0,205,0,197,0,227,0,157,0,119,0,218,0,208,0,147,0,177,0,193,0,200,0,184,0,157,0, +176,0,135,0,110,0,148,0,117,0,150,0,209,0,171,0,237,0,16,1,153,0,151,0,187,0,160,0,214,0,206,0, +102,0,130,0,235,0,228,0,184,0,4,1,46,1,189,0,157,0,222,0,215,0,211,0,235,0,254,0,36,1,33,1, +241,0,194,0,169,0,149,0,124,0,150,0,121,0,50,0,152,0,200,0,116,0,201,0,222,0,116,0,169,0,168,0, +92,0,92,0,56,0,106,0,131,0,21,0,112,0,179,0,8,0,251,255,86,0,85,0,73,0,10,0,225,255,224,255, +208,255,252,255,217,255,142,255,218,255,216,255,120,255,121,255,116,255,127,255,168,255,144,255,193,255,23,0,210,255,142,255, +251,255,98,0,22,0,206,255,23,0,53,0,12,0,41,0,75,0,83,0,112,0,137,0,171,0,191,0,185,0,216,0, +220,0,182,0,219,0,252,0,221,0,244,0,9,1,190,0,159,0,225,0,230,0,164,0,174,0,215,0,161,0,124,0, +129,0,38,0,12,0,97,0,45,0,233,255,38,0,29,0,226,255,202,255,157,255,138,255,131,255,138,255,178,255,104,255, +23,255,77,255,99,255,67,255,34,255,236,254,244,254,22,255,47,255,88,255,58,255,39,255,86,255,81,255,101,255,154,255, +125,255,117,255,159,255,161,255,157,255,203,255,19,0,12,0,226,255,49,0,128,0,72,0,36,0,85,0,118,0,113,0, +108,0,116,0,131,0,143,0,130,0,96,0,75,0,114,0,204,0,199,0,116,0,114,0,70,0,17,0,108,0,95,0, +22,0,101,0,83,0,248,255,12,0,0,0,22,0,76,0,23,0,13,0,12,0,210,255,10,0,65,0,227,255,166,255, +237,255,29,0,247,255,20,0,56,0,230,255,222,255,243,255,162,255,195,255,54,0,93,0,112,0,110,0,118,0,127,0, +121,0,150,0,117,0,131,0,220,0,97,0,42,0,218,0,226,0,187,0,224,0,160,0,157,0,204,0,183,0,148,0, +41,0,59,0,205,0,112,0,239,255,57,0,103,0,81,0,29,0,218,255,222,255,214,255,153,255,168,255,237,255,220,255, +151,255,157,255,185,255,198,255,204,255,160,255,200,255,15,0,192,255,208,255,45,0,242,255,4,0,71,0,13,0,2,0, +1,0,225,255,3,0,8,0,253,255,254,255,253,255,33,0,250,255,185,255,254,255,98,0,137,0,57,0,231,255,65,0, +105,0,84,0,158,0,106,0,246,255,23,0,51,0,24,0,5,0,22,0,40,0,247,255,251,255,10,0,200,255,216,255, +231,255,205,255,248,255,175,255,94,255,172,255,161,255,92,255,80,255,87,255,147,255,134,255,112,255,205,255,204,255,153,255, +143,255,110,255,208,255,42,0,227,255,227,255,252,255,213,255,240,255,23,0,16,0,12,0,37,0,48,0,255,255,6,0, +39,0,1,0,30,0,35,0,221,255,20,0,27,0,194,255,251,255,44,0,7,0,34,0,70,0,101,0,119,0,63,0, +8,0,231,255,231,255,11,0,213,255,137,255,174,255,158,255,74,255,145,255,234,255,145,255,125,255,238,255,237,255,200,255, +3,0,6,0,186,255,173,255,227,255,213,255,172,255,228,255,229,255,177,255,250,255,249,255,178,255,13,0,53,0,231,255, +245,255,32,0,23,0,3,0,27,0,45,0,224,255,230,255,47,0,252,255,18,0,81,0,14,0,7,0,11,0,233,255, +37,0,42,0,31,0,73,0,250,255,199,255,225,255,151,255,121,255,174,255,166,255,142,255,177,255,232,255,183,255,107,255, +149,255,177,255,170,255,206,255,207,255,190,255,160,255,144,255,206,255,212,255,209,255,20,0,252,255,222,255,233,255,192,255, +229,255,33,0,17,0,16,0,248,255,244,255,32,0,36,0,99,0,162,0,98,0,42,0,47,0,83,0,113,0,102,0, +119,0,113,0,96,0,148,0,134,0,121,0,162,0,100,0,55,0,40,0,249,255,97,0,151,0,38,0,36,0,68,0, +77,0,141,0,84,0,8,0,65,0,90,0,72,0,39,0,1,0,44,0,43,0,213,255,234,255,52,0,16,0,239,255, +51,0,60,0,239,255,1,0,58,0,49,0,80,0,124,0,103,0,71,0,30,0,35,0,103,0,47,0,222,255,94,0, +161,0,24,0,24,0,112,0,62,0,27,0,49,0,59,0,61,0,26,0,70,0,99,0,247,255,53,0,133,0,9,0, +79,0,170,0,53,0,97,0,92,0,218,255,60,0,82,0,5,0,114,0,139,0,102,0,150,0,143,0,170,0,162,0, +61,0,107,0,187,0,164,0,166,0,151,0,99,0,93,0,120,0,99,0,44,0,102,0,148,0,54,0,78,0,168,0, +138,0,194,0,24,1,246,0,1,1,2,1,165,0,156,0,212,0,223,0,227,0,219,0,211,0,252,0,242,0,161,0, +124,0,116,0,196,0,93,1,40,1,142,0,169,0,229,0,9,1,18,1,176,0,170,0,231,0,223,0,6,1,232,0, +182,0,10,1,187,0,59,0,125,0,118,0,105,0,171,0,115,0,69,0,84,0,92,0,169,0,170,0,90,0,93,0, +123,0,166,0,185,0,130,0,114,0,137,0,135,0,96,0,68,0,126,0,122,0,52,0,97,0,122,0,105,0,133,0, +90,0,80,0,105,0,40,0,96,0,156,0,28,0,9,0,54,0,26,0,105,0,113,0,254,255,34,0,48,0,215,255, +18,0,111,0,97,0,87,0,81,0,73,0,89,0,112,0,149,0,123,0,29,0,54,0,173,0,194,0,128,0,88,0, +120,0,159,0,137,0,114,0,121,0,129,0,144,0,146,0,165,0,197,0,146,0,91,0,128,0,168,0,154,0,115,0, +110,0,135,0,112,0,92,0,97,0,65,0,70,0,87,0,25,0,252,255,18,0,250,255,251,255,64,0,48,0,178,255, +192,255,40,0,222,255,162,255,254,255,3,0,197,255,192,255,203,255,209,255,202,255,229,255,252,255,202,255,197,255,181,255, +113,255,198,255,38,0,211,255,137,255,210,255,80,0,33,0,202,255,76,0,91,0,204,255,27,0,109,0,55,0,80,0, +78,0,31,0,36,0,55,0,96,0,100,0,71,0,56,0,25,0,28,0,30,0,52,0,126,0,57,0,237,255,53,0, +36,0,11,0,55,0,13,0,246,255,25,0,98,0,152,0,99,0,152,0,173,0,21,0,90,0,137,0,230,255,32,0, +54,0,207,255,34,0,6,0,193,255,32,0,36,0,51,0,52,0,216,255,71,0,140,0,4,0,37,0,115,0,66,0, +44,0,27,0,1,0,15,0,57,0,68,0,36,0,52,0,72,0,67,0,97,0,61,0,26,0,87,0,89,0,82,0, +97,0,60,0,100,0,136,0,77,0,107,0,156,0,107,0,48,0,14,0,38,0,96,0,95,0,51,0,11,0,242,255, +226,255,246,255,26,0,23,0,64,0,79,0,240,255,252,255,45,0,251,255,28,0,247,255,127,255,237,255,61,0,210,255, +210,255,247,255,237,255,236,255,176,255,172,255,248,255,227,255,161,255,159,255,198,255,9,0,33,0,183,255,117,255,248,255, +27,0,161,255,216,255,245,255,119,255,202,255,22,0,150,255,176,255,235,255,167,255,212,255,20,0,230,255,192,255,180,255, +202,255,213,255,151,255,126,255,174,255,197,255,163,255,138,255,183,255,229,255,210,255,157,255,146,255,214,255,232,255,161,255, +146,255,173,255,212,255,8,0,235,255,216,255,17,0,21,0,34,0,65,0,8,0,235,255,22,0,29,0,3,0,239,255, +228,255,214,255,227,255,18,0,247,255,213,255,255,255,232,255,199,255,215,255,176,255,213,255,42,0,243,255,202,255,253,255, +26,0,29,0,6,0,9,0,230,255,94,255,117,255,217,255,118,255,74,255,182,255,190,255,134,255,136,255,204,255,221,255, +133,255,159,255,207,255,80,255,85,255,214,255,145,255,63,255,118,255,149,255,148,255,189,255,246,255,218,255,142,255,176,255, +234,255,207,255,181,255,142,255,116,255,158,255,145,255,120,255,197,255,232,255,191,255,230,255,32,0,252,255,241,255,27,0, +238,255,204,255,21,0,17,0,222,255,20,0,39,0,249,255,6,0,242,255,179,255,206,255,240,255,199,255,185,255,201,255, +168,255,158,255,198,255,178,255,116,255,139,255,231,255,9,0,227,255,227,255,37,0,40,0,215,255,190,255,210,255,196,255, +221,255,228,255,140,255,162,255,11,0,216,255,156,255,211,255,203,255,151,255,156,255,155,255,121,255,132,255,201,255,190,255, +172,255,254,255,187,255,77,255,187,255,249,255,248,255,44,0,217,255,205,255,57,0,26,0,21,0,15,0,214,255,56,0, +73,0,6,0,66,0,22,0,214,255,255,255,11,0,78,0,73,0,8,0,100,0,77,0,234,255,22,0,16,0,35,0, +58,0,237,255,3,0,247,255,209,255,39,0,246,255,215,255,49,0,222,255,185,255,9,0,255,255,250,255,197,255,194,255, +83,0,57,0,246,255,71,0,25,0,162,255,184,255,0,0,226,255,145,255,171,255,191,255,139,255,152,255,175,255,194,255, +173,255,115,255,217,255,224,255,75,255,174,255,230,255,107,255,147,255,142,255,91,255,175,255,194,255,195,255,176,255,88,255, +83,255,51,255,63,255,189,255,165,255,139,255,170,255,96,255,113,255,120,255,51,255,130,255,135,255,28,255,51,255,67,255, +41,255,35,255,255,254,8,255,80,255,143,255,99,255,0,255,43,255,105,255,77,255,78,255,58,255,36,255,41,255,7,255, +42,255,60,255,234,254,11,255,87,255,56,255,22,255,45,255,122,255,143,255,99,255,110,255,78,255,247,254,243,254,37,255, +71,255,2,255,196,254,50,255,100,255,74,255,126,255,75,255,31,255,111,255,66,255,15,255,83,255,69,255,26,255,48,255, +83,255,108,255,70,255,27,255,59,255,100,255,128,255,146,255,94,255,14,255,30,255,80,255,60,255,66,255,82,255,44,255, +68,255,82,255,16,255,16,255,11,255,6,255,107,255,106,255,31,255,58,255,64,255,52,255,73,255,57,255,59,255,78,255, +114,255,195,255,166,255,41,255,10,255,50,255,71,255,61,255,49,255,59,255,45,255,6,255,255,254,30,255,58,255,19,255, +249,254,75,255,110,255,48,255,52,255,92,255,69,255,43,255,58,255,81,255,76,255,43,255,15,255,9,255,29,255,80,255, +118,255,106,255,88,255,78,255,52,255,66,255,122,255,114,255,45,255,252,254,246,254,37,255,83,255,33,255,244,254,57,255, +80,255,18,255,31,255,54,255,57,255,133,255,116,255,2,255,19,255,68,255,55,255,49,255,0,255,251,254,62,255,22,255, +237,254,72,255,118,255,56,255,29,255,52,255,34,255,32,255,83,255,54,255,23,255,65,255,12,255,218,254,41,255,70,255, +61,255,76,255,32,255,255,254,9,255,11,255,42,255,66,255,54,255,52,255,88,255,148,255,161,255,97,255,38,255,67,255, +95,255,45,255,60,255,104,255,10,255,226,254,52,255,67,255,67,255,63,255,24,255,39,255,54,255,43,255,21,255,235,254, +25,255,56,255,247,254,243,254,2,255,28,255,65,255,232,254,200,254,8,255,238,254,19,255,83,255,21,255,3,255,61,255, +98,255,86,255,56,255,64,255,27,255,10,255,100,255,116,255,86,255,57,255,34,255,167,255,188,255,29,255,73,255,146,255, +122,255,165,255,103,255,26,255,68,255,22,255,228,254,31,255,98,255,96,255,46,255,105,255,143,255,47,255,66,255,71,255, +219,254,238,254,2,255,223,254,14,255,52,255,64,255,34,255,10,255,71,255,35,255,236,254,22,255,20,255,49,255,20,255, +159,254,205,254,218,254,179,254,48,255,67,255,50,255,130,255,42,255,251,254,70,255,9,255,18,255,78,255,248,254,234,254, +48,255,59,255,91,255,103,255,34,255,248,254,17,255,52,255,94,255,112,255,99,255,158,255,191,255,90,255,59,255,88,255, +71,255,108,255,99,255,71,255,167,255,158,255,65,255,108,255,131,255,89,255,103,255,135,255,128,255,113,255,174,255,188,255, +87,255,96,255,138,255,121,255,182,255,151,255,79,255,168,255,189,255,189,255,12,0,198,255,143,255,200,255,168,255,170,255, +198,255,143,255,180,255,222,255,130,255,99,255,149,255,135,255,106,255,111,255,116,255,105,255,97,255,147,255,209,255,162,255, +119,255,203,255,222,255,132,255,87,255,71,255,86,255,119,255,120,255,173,255,223,255,195,255,180,255,169,255,185,255,198,255, +129,255,152,255,187,255,127,255,226,255,13,0,121,255,190,255,37,0,214,255,229,255,2,0,241,255,26,0,8,0,255,255, +15,0,3,0,66,0,63,0,8,0,54,0,13,0,0,0,115,0,68,0,38,0,128,0,83,0,57,0,71,0,8,0, +58,0,96,0,4,0,2,0,30,0,14,0,28,0,252,255,230,255,16,0,5,0,213,255,204,255,229,255,226,255,201,255, +230,255,234,255,217,255,23,0,249,255,197,255,21,0,216,255,135,255,7,0,215,255,85,255,216,255,10,0,173,255,227,255, +8,0,201,255,214,255,4,0,251,255,231,255,230,255,234,255,255,255,26,0,33,0,97,0,159,0,96,0,58,0,60,0, +254,255,59,0,145,0,52,0,31,0,59,0,243,255,42,0,99,0,26,0,81,0,85,0,181,255,217,255,59,0,234,255, +205,255,228,255,195,255,227,255,7,0,230,255,205,255,221,255,38,0,74,0,231,255,188,255,15,0,14,0,236,255,61,0, +77,0,226,255,239,255,69,0,51,0,37,0,20,0,211,255,218,255,228,255,219,255,3,0,232,255,5,0,108,0,36,0, +23,0,121,0,250,255,176,255,38,0,28,0,2,0,45,0,34,0,29,0,253,255,213,255,241,255,234,255,221,255,242,255, +243,255,255,255,251,255,255,255,48,0,251,255,166,255,255,255,86,0,247,255,202,255,41,0,38,0,242,255,254,255,210,255, +209,255,244,255,212,255,35,0,39,0,182,255,48,0,52,0,154,255,46,0,71,0,199,255,60,0,18,0,154,255,8,0, +15,0,253,255,45,0,247,255,247,255,246,255,243,255,73,0,17,0,216,255,26,0,225,255,178,255,255,255,47,0,40,0, +2,0,13,0,13,0,240,255,69,0,74,0,227,255,3,0,19,0,238,255,232,255,195,255,245,255,252,255,158,255,246,255, +45,0,219,255,251,255,229,255,206,255,56,0,1,0,161,255,215,255,203,255,188,255,15,0,231,255,107,255,141,255,198,255, +124,255,150,255,216,255,98,255,93,255,230,255,214,255,195,255,232,255,225,255,2,0,248,255,209,255,248,255,228,255,188,255, +208,255,208,255,231,255,244,255,232,255,29,0,29,0,229,255,238,255,241,255,211,255,168,255,149,255,226,255,15,0,215,255, +198,255,214,255,208,255,217,255,224,255,215,255,206,255,196,255,188,255,210,255,9,0,13,0,249,255,14,0,238,255,189,255, +216,255,217,255,237,255,13,0,174,255,161,255,10,0,239,255,228,255,22,0,227,255,233,255,17,0,5,0,71,0,57,0, +250,255,88,0,69,0,217,255,36,0,76,0,12,0,237,255,229,255,252,255,214,255,199,255,44,0,253,255,178,255,233,255, +183,255,203,255,47,0,203,255,179,255,231,255,171,255,250,255,19,0,136,255,210,255,17,0,162,255,184,255,217,255,164,255, +177,255,179,255,199,255,16,0,227,255,134,255,124,255,116,255,136,255,202,255,202,255,147,255,113,255,145,255,230,255,210,255, +132,255,177,255,192,255,160,255,221,255,203,255,182,255,12,0,177,255,104,255,6,0,32,0,229,255,1,0,210,255,214,255, +25,0,223,255,221,255,51,0,34,0,247,255,248,255,3,0,21,0,7,0,231,255,244,255,35,0,56,0,22,0,239,255, +251,255,2,0,203,255,197,255,22,0,39,0,253,255,235,255,219,255,244,255,5,0,224,255,231,255,216,255,190,255,245,255, +220,255,165,255,210,255,210,255,224,255,29,0,255,255,242,255,10,0,8,0,23,0,225,255,141,255,160,255,231,255,6,0, +188,255,158,255,2,0,12,0,38,0,118,0,231,255,144,255,8,0,250,255,216,255,241,255,164,255,185,255,31,0,13,0, +1,0,19,0,1,0,14,0,248,255,196,255,254,255,67,0,5,0,215,255,255,255,239,255,197,255,223,255,11,0,2,0, +199,255,197,255,206,255,126,255,132,255,198,255,166,255,190,255,203,255,173,255,38,0,15,0,106,255,209,255,24,0,178,255, +204,255,210,255,199,255,30,0,14,0,241,255,21,0,5,0,42,0,62,0,253,255,29,0,35,0,208,255,250,255,53,0, +16,0,26,0,39,0,15,0,31,0,21,0,0,0,37,0,59,0,70,0,43,0,192,255,199,255,37,0,17,0,253,255, +6,0,236,255,247,255,208,255,155,255,224,255,1,0,241,255,229,255,165,255,188,255,4,0,0,0,243,255,132,255,78,255, +5,0,29,0,152,255,184,255,200,255,198,255,4,0,227,255,228,255,12,0,216,255,239,255,32,0,252,255,241,255,217,255, +222,255,12,0,218,255,216,255,255,255,201,255,0,0,52,0,201,255,229,255,38,0,222,255,3,0,72,0,29,0,246,255, +199,255,196,255,247,255,248,255,255,255,221,255,171,255,248,255,227,255,114,255,165,255,182,255,161,255,241,255,189,255,111,255, +179,255,147,255,95,255,185,255,220,255,194,255,196,255,172,255,176,255,212,255,216,255,241,255,232,255,157,255,188,255,240,255, +181,255,224,255,56,0,235,255,213,255,16,0,213,255,150,255,153,255,186,255,212,255,195,255,2,0,15,0,125,255,145,255, +232,255,193,255,241,255,221,255,132,255,242,255,240,255,101,255,138,255,163,255,144,255,187,255,167,255,179,255,236,255,197,255, +168,255,181,255,143,255,117,255,147,255,158,255,159,255,187,255,134,255,50,255,88,255,94,255,42,255,89,255,112,255,89,255, +117,255,118,255,104,255,127,255,183,255,193,255,90,255,105,255,219,255,164,255,137,255,193,255,165,255,179,255,182,255,156,255, +184,255,85,255,28,255,164,255,201,255,174,255,187,255,174,255,198,255,170,255,108,255,133,255,149,255,182,255,213,255,192,255, +246,255,250,255,179,255,201,255,176,255,140,255,190,255,161,255,149,255,213,255,190,255,162,255,197,255,233,255,250,255,211,255, +185,255,239,255,238,255,146,255,149,255,252,255,251,255,208,255,237,255,231,255,245,255,2,0,164,255,189,255,23,0,207,255, +172,255,185,255,200,255,76,0,98,0,251,255,254,255,254,255,1,0,48,0,252,255,182,255,173,255,171,255,211,255,10,0, +21,0,0,0,250,255,248,255,209,255,216,255,254,255,234,255,10,0,75,0,40,0,228,255,199,255,238,255,10,0,195,255, +184,255,235,255,234,255,2,0,7,0,233,255,231,255,213,255,243,255,22,0,225,255,214,255,194,255,144,255,204,255,219,255, +153,255,187,255,7,0,246,255,144,255,130,255,211,255,182,255,173,255,231,255,157,255,127,255,210,255,207,255,181,255,227,255, +29,0,219,255,105,255,199,255,9,0,159,255,177,255,196,255,173,255,30,0,57,0,36,0,43,0,178,255,171,255,13,0, +7,0,36,0,15,0,206,255,235,255,178,255,167,255,10,0,228,255,222,255,33,0,252,255,230,255,247,255,15,0,247,255, +196,255,62,0,95,0,231,255,98,0,131,0,237,255,77,0,67,0,176,255,37,0,66,0,231,255,38,0,24,0,206,255, +199,255,194,255,236,255,253,255,240,255,4,0,215,255,215,255,27,0,246,255,225,255,11,0,243,255,194,255,166,255,194,255, +245,255,188,255,115,255,164,255,253,255,242,255,181,255,240,255,44,0,224,255,211,255,4,0,242,255,245,255,235,255,225,255, +38,0,47,0,15,0,20,0,241,255,232,255,254,255,235,255,4,0,48,0,11,0,181,255,149,255,221,255,252,255,189,255, +158,255,151,255,197,255,13,0,200,255,191,255,75,0,37,0,194,255,29,0,56,0,229,255,8,0,36,0,220,255,227,255, +13,0,242,255,225,255,175,255,143,255,11,0,50,0,174,255,173,255,26,0,57,0,247,255,163,255,209,255,16,0,201,255, +181,255,222,255,178,255,140,255,163,255,188,255,156,255,86,255,112,255,219,255,12,0,222,255,160,255,188,255,227,255,205,255, +216,255,213,255,189,255,235,255,245,255,219,255,237,255,202,255,158,255,188,255,219,255,207,255,215,255,0,0,212,255,151,255, +208,255,211,255,181,255,252,255,245,255,232,255,24,0,240,255,20,0,68,0,217,255,228,255,55,0,9,0,239,255,10,0, +52,0,44,0,212,255,208,255,236,255,213,255,238,255,233,255,172,255,132,255,158,255,231,255,187,255,157,255,236,255,163,255, +136,255,0,0,197,255,139,255,172,255,147,255,173,255,118,255,24,255,108,255,130,255,121,255,198,255,164,255,140,255,183,255, +162,255,150,255,135,255,118,255,133,255,148,255,178,255,120,255,54,255,112,255,100,255,93,255,143,255,56,255,29,255,113,255, +138,255,160,255,102,255,41,255,92,255,70,255,44,255,61,255,40,255,98,255,109,255,52,255,78,255,43,255,69,255,221,255, +205,255,138,255,155,255,114,255,66,255,75,255,123,255,119,255,48,255,93,255,157,255,103,255,83,255,129,255,159,255,102,255, +50,255,119,255,84,255,16,255,115,255,109,255,66,255,94,255,12,255,75,255,178,255,32,255,29,255,127,255,79,255,101,255, +106,255,86,255,136,255,55,255,28,255,146,255,113,255,26,255,241,254,195,254,241,254,41,255,44,255,52,255,21,255,247,254, +10,255,254,254,210,254,203,254,225,254,222,254,218,254,239,254,2,255,19,255,231,254,163,254,224,254,26,255,249,254,3,255, +14,255,35,255,89,255,26,255,245,254,115,255,151,255,84,255,100,255,86,255,5,255,87,255,241,255,201,255,120,255,117,255, +68,255,60,255,108,255,121,255,133,255,91,255,78,255,155,255,110,255,52,255,94,255,95,255,152,255,198,255,135,255,134,255, +87,255,32,255,127,255,99,255,36,255,145,255,150,255,97,255,138,255,130,255,101,255,97,255,83,255,71,255,62,255,94,255, +107,255,112,255,198,255,203,255,117,255,95,255,85,255,94,255,99,255,59,255,89,255,74,255,253,254,52,255,90,255,63,255, +119,255,155,255,127,255,90,255,82,255,158,255,171,255,89,255,86,255,107,255,103,255,120,255,127,255,169,255,205,255,123,255, +49,255,88,255,139,255,144,255,130,255,107,255,93,255,84,255,57,255,71,255,111,255,55,255,5,255,51,255,31,255,35,255, +129,255,71,255,9,255,116,255,141,255,95,255,101,255,114,255,178,255,158,255,33,255,59,255,101,255,59,255,100,255,86,255, +28,255,67,255,56,255,73,255,147,255,76,255,49,255,138,255,107,255,31,255,15,255,66,255,144,255,87,255,44,255,152,255, +153,255,84,255,97,255,80,255,107,255,170,255,88,255,36,255,102,255,75,255,29,255,84,255,125,255,135,255,130,255,65,255, +39,255,102,255,131,255,117,255,143,255,149,255,99,255,135,255,246,255,191,255,81,255,172,255,229,255,121,255,83,255,95,255, +110,255,176,255,189,255,174,255,146,255,91,255,151,255,178,255,137,255,237,255,227,255,106,255,129,255,68,255,13,255,103,255, +72,255,108,255,197,255,96,255,138,255,215,255,106,255,135,255,152,255,87,255,157,255,135,255,120,255,211,255,143,255,146,255, +220,255,101,255,44,255,102,255,133,255,168,255,163,255,185,255,150,255,35,255,111,255,167,255,62,255,100,255,143,255,79,255, +57,255,49,255,109,255,133,255,72,255,135,255,132,255,41,255,128,255,182,255,128,255,137,255,113,255,72,255,80,255,119,255, +193,255,195,255,141,255,129,255,104,255,68,255,77,255,150,255,176,255,88,255,84,255,109,255,57,255,126,255,151,255,72,255, +144,255,153,255,65,255,121,255,138,255,87,255,69,255,50,255,112,255,130,255,73,255,126,255,173,255,194,255,204,255,106,255, +102,255,142,255,48,255,65,255,184,255,183,255,94,255,64,255,185,255,241,255,175,255,223,255,195,255,101,255,191,255,146,255, +22,255,113,255,93,255,34,255,159,255,151,255,95,255,173,255,165,255,125,255,117,255,51,255,89,255,196,255,145,255,86,255, +183,255,220,255,105,255,65,255,113,255,69,255,46,255,123,255,123,255,74,255,112,255,167,255,156,255,114,255,123,255,163,255, +134,255,124,255,196,255,203,255,160,255,177,255,214,255,253,255,234,255,136,255,154,255,6,0,227,255,157,255,200,255,193,255, +89,255,80,255,168,255,201,255,181,255,165,255,163,255,197,255,202,255,174,255,200,255,197,255,146,255,187,255,236,255,215,255, +203,255,197,255,202,255,216,255,230,255,27,0,10,0,221,255,34,0,245,255,144,255,249,255,15,0,180,255,10,0,46,0, +219,255,226,255,233,255,241,255,26,0,241,255,209,255,251,255,37,0,36,0,240,255,241,255,29,0,31,0,64,0,50,0, +237,255,32,0,42,0,220,255,234,255,197,255,146,255,245,255,35,0,250,255,238,255,213,255,227,255,2,0,254,255,15,0, +251,255,231,255,7,0,225,255,195,255,240,255,255,255,22,0,24,0,213,255,208,255,253,255,8,0,227,255,169,255,213,255, +37,0,9,0,243,255,1,0,19,0,70,0,9,0,134,255,163,255,251,255,240,255,175,255,177,255,36,0,91,0,28,0, +15,0,40,0,39,0,25,0,231,255,219,255,233,255,182,255,185,255,248,255,2,0,17,0,28,0,234,255,204,255,233,255, +21,0,8,0,218,255,231,255,241,255,199,255,178,255,189,255,231,255,236,255,176,255,206,255,0,0,217,255,238,255,9,0, +244,255,57,0,92,0,67,0,80,0,6,0,227,255,47,0,233,255,157,255,227,255,3,0,49,0,56,0,211,255,240,255, +36,0,238,255,3,0,210,255,119,255,218,255,234,255,140,255,201,255,215,255,166,255,234,255,248,255,240,255,32,0,231,255, +207,255,57,0,74,0,24,0,20,0,36,0,89,0,93,0,36,0,29,0,251,255,226,255,75,0,95,0,4,0,24,0, +47,0,18,0,32,0,225,255,157,255,215,255,210,255,176,255,249,255,4,0,226,255,15,0,49,0,53,0,31,0,250,255, +29,0,50,0,253,255,233,255,238,255,7,0,50,0,5,0,220,255,28,0,82,0,93,0,70,0,37,0,73,0,86,0, +26,0,1,0,243,255,250,255,46,0,32,0,26,0,97,0,101,0,73,0,81,0,40,0,31,0,97,0,106,0,95,0, +118,0,81,0,21,0,28,0,56,0,69,0,81,0,60,0,10,0,8,0,37,0,20,0,2,0,31,0,52,0,47,0, +67,0,99,0,53,0,220,255,251,255,99,0,104,0,70,0,84,0,50,0,247,255,4,0,50,0,62,0,57,0,83,0, +107,0,72,0,53,0,45,0,247,255,21,0,74,0,245,255,236,255,89,0,62,0,249,255,245,255,214,255,221,255,237,255, +187,255,212,255,48,0,81,0,50,0,237,255,232,255,37,0,36,0,20,0,35,0,17,0,241,255,216,255,254,255,72,0, +6,0,178,255,242,255,38,0,50,0,97,0,106,0,83,0,9,0,167,255,199,255,13,0,9,0,24,0,18,0,247,255, +13,0,2,0,239,255,23,0,19,0,232,255,239,255,17,0,6,0,222,255,6,0,31,0,203,255,220,255,44,0,239,255, +224,255,61,0,43,0,231,255,6,0,84,0,89,0,28,0,53,0,109,0,83,0,109,0,129,0,47,0,56,0,102,0, +55,0,51,0,47,0,255,255,20,0,38,0,15,0,3,0,229,255,252,255,58,0,49,0,38,0,32,0,237,255,231,255, +12,0,19,0,11,0,19,0,29,0,248,255,224,255,29,0,57,0,62,0,103,0,61,0,16,0,27,0,221,255,247,255, +102,0,27,0,241,255,86,0,31,0,219,255,43,0,38,0,234,255,33,0,102,0,71,0,252,255,1,0,48,0,8,0, +208,255,208,255,211,255,213,255,208,255,207,255,196,255,153,255,183,255,226,255,167,255,175,255,217,255,183,255,226,255,236,255, +143,255,189,255,236,255,128,255,120,255,209,255,219,255,212,255,241,255,244,255,218,255,226,255,255,255,251,255,238,255,216,255, +215,255,21,0,36,0,251,255,16,0,23,0,233,255,236,255,8,0,9,0,32,0,70,0,64,0,40,0,31,0,18,0, +14,0,241,255,184,255,229,255,30,0,248,255,247,255,5,0,253,255,22,0,254,255,254,255,39,0,235,255,226,255,26,0, +6,0,8,0,251,255,221,255,13,0,27,0,15,0,253,255,233,255,46,0,9,0,153,255,211,255,243,255,246,255,28,0, +213,255,5,0,85,0,233,255,3,0,42,0,204,255,241,255,250,255,2,0,115,0,41,0,224,255,51,0,36,0,3,0, +20,0,59,0,64,0,194,255,204,255,28,0,217,255,47,0,94,0,189,255,232,255,34,0,248,255,89,0,69,0,11,0, +80,0,30,0,18,0,66,0,3,0,37,0,68,0,17,0,90,0,111,0,18,0,226,255,209,255,242,255,251,255,225,255, +15,0,27,0,40,0,66,0,248,255,12,0,50,0,196,255,246,255,73,0,201,255,210,255,63,0,233,255,168,255,223,255, +247,255,23,0,39,0,203,255,167,255,2,0,15,0,224,255,244,255,247,255,252,255,12,0,167,255,102,255,197,255,0,0, +219,255,222,255,7,0,219,255,165,255,243,255,248,255,139,255,177,255,198,255,139,255,253,255,55,0,211,255,219,255,235,255, +195,255,190,255,151,255,164,255,241,255,229,255,181,255,172,255,216,255,238,255,155,255,172,255,252,255,163,255,159,255,12,0, +231,255,230,255,5,0,187,255,203,255,215,255,174,255,6,0,11,0,195,255,241,255,216,255,203,255,46,0,4,0,213,255, +12,0,0,0,10,0,254,255,189,255,254,255,39,0,22,0,65,0,18,0,15,0,90,0,219,255,134,255,239,255,6,0, +10,0,34,0,23,0,81,0,57,0,179,255,205,255,32,0,246,255,212,255,1,0,36,0,20,0,25,0,56,0,33,0, +11,0,14,0,255,255,26,0,58,0,15,0,222,255,236,255,35,0,0,0,188,255,47,0,113,0,239,255,6,0,83,0, +31,0,105,0,156,0,50,0,67,0,98,0,55,0,117,0,132,0,32,0,240,255,37,0,147,0,122,0,35,0,121,0, +133,0,53,0,139,0,130,0,21,0,106,0,142,0,86,0,147,0,149,0,110,0,149,0,112,0,75,0,142,0,147,0, +103,0,91,0,100,0,147,0,164,0,136,0,161,0,198,0,193,0,139,0,55,0,44,0,61,0,42,0,96,0,125,0, +54,0,79,0,120,0,38,0,30,0,112,0,114,0,108,0,153,0,122,0,32,0,33,0,87,0,96,0,83,0,66,0, +95,0,176,0,195,0,203,0,232,0,163,0,113,0,168,0,157,0,138,0,202,0,190,0,111,0,125,0,136,0,55,0, +75,0,213,0,251,0,217,0,184,0,125,0,129,0,138,0,79,0,93,0,119,0,105,0,175,0,185,0,87,0,88,0, +123,0,102,0,150,0,207,0,165,0,122,0,127,0,166,0,236,0,227,0,172,0,212,0,195,0,131,0,241,0,25,1, +156,0,221,0,88,1,1,1,201,0,10,1,0,1,210,0,2,1,51,1,34,1,52,1,48,1,238,0,239,0,5,1, +9,1,12,1,187,0,193,0,55,1,22,1,1,1,76,1,15,1,232,0,48,1,41,1,239,0,189,0,127,0,99,0, +117,0,137,0,122,0,127,0,155,0,140,0,113,0,72,0,89,0,210,0,3,1,14,1,255,0,128,0,155,0,248,0, +171,0,251,0,165,1,122,1,23,1,179,0,119,0,141,0,162,0,246,0,15,1,196,0,245,0,43,1,32,1,28,1, +234,0,242,0,246,0,161,0,141,0,130,0,116,0,122,0,78,0,86,0,63,0,0,0,59,0,37,0,247,255,62,0, +61,0,53,0,195,255,223,254,211,254,174,254,61,254,77,254,242,253,62,254,105,255,129,255,217,255,217,0,43,1,215,1, +79,2,192,1,118,1,57,1,47,1,235,1,57,2,84,2,220,2,10,3,28,3,77,3,97,3,176,3,228,3,198,3, +184,3,90,3,180,2,139,2,140,2,41,2,227,1,204,1,43,1,67,0,223,255,227,255,18,0,93,0,115,0,154,0, +4,1,13,1,247,0,41,1,232,0,149,0,189,0,77,0,132,255,90,255,92,255,136,255,213,255,213,255,224,255,2,0, +95,0,248,0,7,1,47,1,195,1,217,1,22,2,108,2,55,2,103,2,136,2,61,2,123,2,115,2,45,2,123,2, +134,2,151,2,161,2,233,1,176,1,124,1,97,0,219,255,99,255,109,254,57,254,252,253,185,253,149,254,77,255,163,255, +174,0,213,1,136,2,194,2,136,2,24,2,133,1,48,1,19,1,166,0,92,0,109,0,141,0,15,1,167,1,211,1, +0,2,46,2,1,2,180,1,118,1,37,1,199,0,96,0,13,0,54,0,144,0,144,0,167,0,164,0,81,0,168,0, +236,0,51,0,17,0,137,0,94,0,60,0,105,0,85,0,51,0,91,0,200,0,196,0,20,0,135,255,52,255,8,255, +51,255,91,255,93,255,109,255,213,255,108,0,141,0,190,0,100,1,206,1,32,2,110,2,148,2,209,2,151,2,19,2, +231,1,153,1,149,1,10,2,33,2,12,2,217,1,163,1,203,1,180,1,154,1,170,1,72,1,44,1,91,1,120,1, +251,1,245,1,124,1,136,1,225,0,182,255,91,255,51,255,3,255,23,255,35,255,252,254,159,254,112,254,75,254,221,253, +176,253,139,253,39,253,229,252,143,252,138,252,46,253,223,253,136,254,237,254,240,254,65,255,227,255,137,0,194,0,112,0, +40,0,122,255,174,254,187,254,121,254,243,253,101,254,232,254,78,255,229,255,16,0,78,0,124,0,39,0,4,0,134,255, +149,254,79,254,74,254,72,254,117,254,48,254,234,253,248,253,212,253,245,253,116,254,186,254,215,254,136,254,190,253,119,253, +231,253,75,254,119,254,203,254,84,255,145,255,121,255,190,255,9,0,216,255,238,255,73,0,85,0,98,0,111,0,178,0, +113,1,226,1,55,2,157,2,37,2,156,1,134,1,1,1,181,0,239,0,16,1,85,1,132,1,195,1,42,2,213,1, +181,1,87,2,52,2,163,1,120,1,131,1,12,2,115,2,140,2,25,3,82,3,57,3,137,3,63,3,93,2,16,2, +15,2,234,1,217,1,20,2,120,2,171,2,5,3,145,3,180,3,183,3,200,3,154,3,151,3,139,3,234,2,95,2, +82,2,86,2,122,2,245,2,61,3,236,2,130,2,0,2,8,1,47,0,46,255,35,253,6,251,65,249,62,247,247,245, +134,245,230,244,169,244,67,245,165,246,227,248,7,251,178,252,132,254,73,0,135,1,255,1,5,2,33,2,56,2,163,2, +61,3,76,3,178,3,156,4,145,5,113,7,140,9,192,10,75,11,230,10,139,10,228,10,112,10,142,9,241,8,225,7, +196,6,176,5,183,4,63,4,104,3,155,2,86,2,132,1,112,0,75,255,39,254,45,254,128,254,134,254,72,255,224,255, +147,255,26,255,187,254,116,254,205,253,205,252,250,251,21,251,147,250,193,250,23,251,230,251,54,253,255,254,59,1,17,3, +159,4,178,5,248,5,240,6,4,8,19,8,168,8,36,9,174,8,249,8,128,9,36,9,183,8,56,8,78,7,61,6, +44,5,1,4,121,2,59,1,199,0,48,0,77,255,194,254,131,254,79,254,189,253,169,252,161,251,197,250,169,249,107,248, +99,247,98,246,154,245,98,245,55,245,85,245,68,246,81,247,128,248,48,250,216,251,103,253,174,254,113,255,48,0,181,0, +222,0,12,1,58,1,233,1,9,3,39,4,187,5,254,6,87,7,244,7,155,8,171,8,197,8,151,8,145,7,12,6, +153,4,182,3,13,3,6,2,247,0,63,0,158,255,193,254,193,253,194,252,173,251,133,250,129,249,13,249,217,248,19,248, +152,247,26,248,159,248,24,249,138,249,80,249,3,249,28,249,45,249,5,249,254,248,159,249,21,250,246,249,148,250,86,251, +12,251,117,250,246,249,4,250,212,250,136,251,134,252,30,254,224,255,65,2,220,4,206,6,198,7,165,7,116,7,142,7, +118,7,143,7,93,7,226,6,56,7,208,7,124,8,136,9,36,10,211,10,172,11,101,11,103,10,109,9,96,8,108,7, +66,6,141,4,172,2,34,1,39,0,131,255,73,255,162,255,72,0,254,0,192,1,183,2,173,3,86,4,212,4,122,4, +88,3,127,2,81,1,20,0,128,255,14,254,140,252,95,252,36,252,72,252,31,253,77,253,181,253,107,254,161,254,76,255, +16,0,129,0,49,1,116,1,40,1,178,0,90,0,228,0,190,1,29,2,24,2,170,1,150,1,220,1,235,1,111,2, +200,2,108,2,49,2,52,1,128,255,87,254,221,252,194,251,205,252,193,254,66,0,184,1,155,3,181,5,48,7,253,7, +81,8,221,7,118,7,172,7,160,7,108,7,137,7,116,7,69,7,125,7,188,7,93,7,67,6,253,4,34,4,141,3, +24,3,96,3,55,4,169,4,253,4,137,5,157,5,67,5,156,4,86,3,82,2,180,1,1,0,147,253,175,251,65,250, +10,250,196,251,170,253,81,254,158,254,52,255,173,255,18,0,193,0,59,1,213,0,44,0,244,255,187,255,64,255,251,254, +25,255,157,255,209,0,109,2,81,3,93,3,255,3,124,5,185,6,81,7,19,7,192,5,9,4,180,2,201,1,228,0, +187,255,126,254,130,253,12,253,47,253,85,253,23,253,237,252,15,253,54,253,47,253,225,252,156,252,208,252,225,252,70,252, +247,251,10,252,141,251,98,251,1,252,144,252,125,253,16,254,55,253,254,252,200,253,216,253,17,254,177,254,107,254,3,254, +157,254,60,0,19,2,20,3,153,3,47,4,148,4,222,4,10,5,13,5,192,4,158,3,9,2,35,0,196,253,253,251, +147,250,195,248,209,247,160,247,230,246,75,246,70,246,121,246,238,246,59,247,98,247,149,247,65,247,240,246,39,247,7,247, +14,247,189,247,226,247,242,247,186,248,132,249,46,251,13,254,84,0,39,2,60,4,201,5,194,6,72,7,41,7,211,6, +128,6,33,6,103,5,125,4,153,4,150,5,110,6,63,7,177,7,20,7,207,5,217,4,179,4,93,4,17,3,134,1, +134,255,2,253,156,251,140,251,130,251,25,251,175,250,81,250,243,249,33,250,189,250,30,251,250,251,149,253,1,255,68,0, +58,1,146,1,252,1,190,2,111,3,94,3,133,2,15,2,60,2,6,3,173,4,204,5,8,6,129,6,190,6,250,6, +222,7,79,8,40,8,225,7,80,7,23,7,51,7,207,6,237,5,181,4,144,3,234,2,29,2,119,0,65,254,153,252, +41,252,45,252,198,251,91,250,198,247,135,245,108,244,241,242,69,240,31,237,119,234,156,233,61,235,183,238,12,243,61,247, +244,250,194,254,172,2,27,6,184,8,85,10,33,11,131,11,228,11,112,12,78,12,161,11,28,12,124,13,187,14,245,15, +119,16,116,16,226,16,6,17,75,17,219,17,216,16,32,15,27,14,254,12,246,11,91,10,57,7,15,4,49,1,94,254, +120,252,160,250,44,248,46,246,77,245,230,245,15,247,251,246,208,245,164,244,3,244,17,244,132,244,18,245,130,245,65,246, +173,247,144,248,226,248,236,249,37,251,124,252,236,254,234,1,209,4,99,7,153,9,152,12,234,15,140,17,203,17,75,17, +81,15,220,12,119,11,152,10,166,9,216,8,224,7,248,6,195,6,120,6,94,5,18,4,168,2,109,0,94,253,240,249, +166,246,31,244,148,242,206,241,162,241,163,241,138,241,197,241,1,242,173,241,93,241,138,240,132,238,43,237,42,237,166,237, +17,240,109,244,11,248,189,250,218,253,52,1,6,4,141,5,16,6,135,6,188,6,152,6,208,6,83,7,205,7,57,8, +145,8,236,8,187,8,143,7,156,6,140,6,112,6,80,6,145,6,95,6,129,5,99,4,223,2,56,1,215,255,67,254, +206,251,137,248,215,245,248,244,58,245,172,245,101,246,85,247,75,248,70,249,59,250,209,250,79,250,213,248,96,247,57,246, +22,245,214,243,24,243,6,244,138,246,165,249,218,252,165,255,188,1,143,3,156,5,168,7,101,8,93,7,196,5,76,4, +104,3,154,3,231,3,57,3,152,1,206,255,64,255,228,255,76,0,35,0,141,255,146,254,218,253,188,253,130,253,109,252, +77,251,171,251,109,253,158,255,142,1,158,2,69,3,137,4,115,6,239,7,116,7,113,5,208,3,190,2,62,2,130,2, +51,2,113,1,114,1,236,1,88,3,191,5,237,6,124,6,222,5,48,5,8,4,145,2,20,1,104,255,145,253,147,252, +61,252,188,250,3,248,193,245,245,244,136,245,63,246,191,245,251,243,34,242,219,241,169,243,53,246,20,248,224,248,29,249, +166,249,210,250,189,252,32,255,38,1,13,3,77,5,12,7,113,8,139,10,241,12,26,15,25,17,146,18,100,19,127,19, +234,18,248,18,182,20,4,23,47,24,227,23,240,22,233,21,254,20,111,20,195,19,238,17,233,14,188,11,97,9,146,7, +54,5,129,2,114,0,221,254,54,253,8,251,0,248,19,245,33,243,119,241,163,239,254,237,161,236,211,235,30,236,168,237, +244,239,21,242,127,243,60,244,202,244,243,245,159,247,53,249,13,251,254,252,164,254,51,1,248,4,158,8,232,11,249,14, +131,17,87,19,244,19,188,19,115,19,128,18,9,17,213,15,56,14,239,11,88,9,221,6,156,5,16,5,167,3,187,1, +139,255,196,252,242,249,88,247,82,245,205,243,157,241,248,238,161,236,212,234,71,234,22,234,115,233,206,233,224,234,29,236, +179,238,186,241,80,244,44,247,174,249,154,251,33,253,105,253,31,253,161,253,27,255,26,1,197,2,108,4,166,6,164,8, +158,10,234,12,136,14,33,15,174,14,144,13,181,12,237,11,57,11,165,10,110,9,198,7,207,5,206,3,205,2,148,1, +51,255,252,252,14,251,174,249,42,249,253,247,164,246,114,246,96,246,28,246,156,245,208,243,41,241,2,239,186,237,219,236, +33,236,3,236,144,236,205,237,66,240,156,243,132,247,203,251,106,255,89,2,95,5,71,8,203,10,203,12,225,13,0,14, +184,13,187,13,188,13,42,13,125,12,29,12,67,12,166,12,241,11,141,10,205,9,246,8,184,7,124,6,134,4,10,2, +229,255,72,254,135,253,17,253,79,252,57,252,237,252,132,253,253,253,59,254,227,253,55,253,104,252,146,251,49,251,63,251, +79,251,135,251,216,251,205,251,207,251,65,252,220,252,168,253,43,254,25,254,129,254,78,255,162,255,225,255,0,0,195,255, +144,255,242,254,184,253,184,252,52,252,208,251,79,251,5,251,122,251,203,252,208,254,153,0,127,1,71,2,83,3,191,4, +101,6,63,7,68,8,167,10,228,12,215,14,45,17,241,18,121,20,232,21,32,22,181,21,252,20,22,19,169,16,240,14, +8,14,155,13,236,13,208,14,47,15,50,15,75,15,183,14,160,13,11,12,34,9,158,5,140,2,227,255,83,253,206,250, +225,248,146,247,186,246,81,246,250,244,195,242,79,241,22,240,250,238,115,238,101,237,105,236,120,236,213,236,227,237,163,239, +53,241,31,243,82,245,5,247,164,248,241,250,188,253,71,0,197,2,97,5,64,7,229,8,161,10,62,11,58,11,96,11, +63,11,124,11,103,12,241,12,0,13,112,13,67,14,145,14,84,14,177,13,246,11,42,10,61,9,150,7,121,5,66,4, +217,2,67,1,161,0,219,255,11,254,251,251,253,249,166,247,40,245,46,243,129,241,144,239,134,237,0,236,150,235,36,236, +219,236,107,237,193,237,206,237,229,237,34,238,87,238,77,238,248,237,253,237,192,238,179,239,131,240,161,241,133,243,33,246, +2,249,165,251,194,253,160,255,68,1,99,2,106,3,84,4,178,4,53,5,193,5,190,5,80,6,161,7,181,8,238,9, +54,11,30,12,230,12,21,13,199,12,158,12,49,12,237,11,22,12,157,11,160,10,149,9,125,8,173,7,182,6,94,5, +116,3,164,0,133,254,85,253,164,251,116,250,174,249,38,248,0,247,34,246,50,245,199,244,226,243,44,243,122,243,90,243, +86,243,192,243,229,243,195,244,160,245,242,245,144,246,92,246,16,246,189,246,212,246,235,246,117,247,185,247,1,249,170,250, +1,252,164,254,190,1,67,4,216,6,71,9,157,11,132,13,121,14,24,15,101,15,221,15,250,16,134,17,90,17,2,17, +104,16,246,15,147,15,209,14,114,13,68,11,226,8,125,6,45,4,236,2,109,2,25,2,58,2,135,2,4,3,151,3, +71,3,45,2,36,1,23,0,86,254,241,251,151,249,82,247,183,245,114,245,155,245,226,245,78,246,59,246,69,246,196,246, +89,247,83,248,74,249,43,250,106,251,186,252,100,254,240,255,158,0,165,1,0,3,12,4,77,5,33,6,195,6,80,8, +30,10,29,12,57,14,104,15,241,15,46,16,25,16,197,15,186,14,190,13,53,13,202,11,61,10,213,9,177,9,136,9, +122,9,247,8,227,7,40,6,218,3,144,1,52,255,114,252,151,249,230,246,74,244,147,241,235,238,14,237,79,236,23,236, +215,235,147,235,178,235,126,236,210,237,172,239,16,242,153,244,226,246,70,248,194,248,134,249,166,250,155,251,237,252,116,254, +236,255,0,2,151,4,141,7,193,10,39,13,228,14,164,16,157,17,162,17,113,17,188,16,80,15,40,14,84,13,31,12, +47,11,160,10,121,9,137,8,96,8,139,7,164,5,50,3,94,0,112,253,90,250,42,247,64,244,151,241,111,239,226,237, +138,236,146,235,55,235,199,234,187,233,36,233,166,233,7,234,27,234,178,234,109,235,126,236,68,238,58,240,112,242,255,244, +26,248,241,251,129,255,123,2,255,4,219,6,12,9,127,11,97,13,101,15,69,17,135,18,212,19,19,21,79,22,83,23, +71,23,190,22,2,22,181,20,125,19,103,18,231,16,16,15,8,13,210,10,115,8,16,6,69,3,251,255,36,253,79,250, +47,247,190,244,79,242,67,240,178,239,244,238,34,238,50,238,200,237,116,237,138,237,244,236,0,237,171,237,212,237,187,238, +172,240,74,243,147,246,100,249,253,251,247,254,66,1,16,3,251,4,82,6,12,7,148,7,14,8,254,8,108,10,185,11, +249,12,99,14,143,15,136,16,79,17,111,17,126,17,210,17,205,17,123,17,209,16,182,15,163,14,115,13,42,12,231,10, +53,9,115,7,150,5,24,3,181,0,135,254,27,252,253,249,60,248,182,246,144,245,227,244,242,244,16,245,224,244,127,245, +141,246,253,246,120,247,10,248,89,248,29,249,51,250,249,250,204,251,166,252,65,253,13,254,254,254,202,255,135,0,220,0, +248,0,118,1,9,2,145,2,85,3,66,4,87,5,106,6,154,7,14,9,9,10,187,10,168,11,67,12,168,12,238,12, +222,12,243,12,174,12,225,11,79,11,88,10,184,8,215,6,209,4,129,3,179,2,162,1,208,0,22,0,95,255,1,255, +137,254,44,254,154,253,102,252,2,252,43,252,131,251,242,250,202,250,79,250,224,249,226,249,222,249,104,249,241,248,134,248, +153,247,21,247,99,247,64,247,171,246,91,246,117,246,250,246,120,247,219,247,70,248,182,248,136,249,89,250,195,250,81,251, +6,252,255,252,61,254,30,255,250,255,193,0,255,0,165,1,132,2,4,3,243,3,174,4,120,4,156,4,56,5,114,5, +185,5,67,6,134,6,120,6,78,6,49,6,69,6,59,6,224,5,144,5,41,5,85,4,129,3,244,2,66,2,51,1, +105,0,43,0,143,255,127,254,222,253,116,253,226,252,106,252,16,252,213,251,173,251,152,251,142,251,51,251,6,251,113,251, +124,251,3,251,195,250,188,250,188,250,229,250,149,251,98,252,168,252,53,253,48,254,178,254,19,255,120,255,185,255,116,0, +52,1,46,1,222,0,155,0,90,0,90,0,237,0,214,1,120,2,223,2,76,3,230,3,249,4,233,5,30,6,15,6, +255,5,198,5,51,5,76,4,98,3,106,2,164,1,45,1,124,0,220,255,82,255,121,254,31,254,48,254,5,254,252,253, +158,253,225,252,215,252,69,253,200,253,69,254,52,254,236,253,207,253,157,253,122,253,121,253,162,253,16,254,111,254,171,254, +29,255,185,255,29,0,98,0,198,0,224,0,159,0,55,0,160,255,152,255,24,0,3,0,4,0,132,0,60,0,116,255, +48,255,21,255,234,254,213,254,135,254,200,253,60,253,84,253,144,253,240,253,149,254,218,254,195,254,128,254,0,254,229,253, +34,254,53,254,122,254,228,254,71,255,180,255,188,255,195,255,135,0,147,1,98,2,178,2,137,2,150,2,240,2,70,3, +233,3,132,4,172,4,28,5,180,5,26,6,31,7,44,8,72,8,88,8,80,8,230,7,13,8,16,8,106,7,59,7, +14,7,145,6,92,6,235,5,99,5,194,4,113,3,179,2,104,2,233,0,97,255,129,254,90,253,138,252,213,251,108,250, +78,249,98,248,24,247,127,246,101,246,24,246,40,246,80,246,140,246,125,247,78,248,196,248,97,249,157,249,223,249,104,250, +51,250,208,249,240,249,119,250,205,251,34,253,34,254,201,255,40,1,8,2,148,3,204,4,39,5,64,5,11,5,36,5, +99,5,36,5,65,5,138,5,138,5,181,5,102,5,247,4,56,5,214,4,209,3,43,3,80,2,97,1,128,0,63,255, +76,254,87,253,230,251,36,251,156,250,127,249,227,248,146,248,30,248,91,248,165,248,112,248,96,248,63,248,61,248,128,248, +81,248,26,248,32,248,103,248,160,249,186,250,58,251,153,252,245,253,174,254,50,0,143,1,38,2,65,3,17,4,24,4, +136,4,13,5,49,5,162,5,59,6,70,6,245,5,233,5,214,5,107,5,104,5,202,5,193,5,80,5,165,4,223,3, +12,3,31,2,147,1,72,1,137,0,168,255,3,255,146,254,101,254,18,254,185,253,215,253,242,253,204,253,161,253,176,253, +58,254,122,254,78,254,194,254,45,255,219,254,191,254,218,254,178,254,144,254,165,254,0,255,43,255,211,254,118,254,59,254, +83,254,223,254,16,255,230,254,238,254,165,254,234,253,92,253,23,253,184,252,16,252,120,251,21,251,243,250,103,251,226,251, +225,251,254,251,57,252,103,252,208,252,30,253,91,253,250,253,189,254,132,255,90,0,82,1,131,2,154,3,182,4,4,6, +6,7,239,7,237,8,136,9,4,10,97,10,52,10,249,9,202,9,127,9,111,9,73,9,241,8,161,8,218,7,39,7, +75,7,92,7,1,7,108,6,79,5,85,4,148,3,37,2,171,0,199,255,230,254,208,253,166,252,215,251,69,251,56,250, +88,249,214,248,241,247,127,247,145,247,53,247,49,247,198,247,53,248,137,248,183,248,218,248,73,249,234,249,200,250,141,251, +20,252,227,252,228,253,232,254,228,255,214,0,70,2,215,3,228,4,186,5,69,6,226,6,207,7,37,8,111,8,20,9, +41,9,99,9,176,9,249,8,140,8,165,8,217,7,17,7,222,6,8,6,218,4,47,4,128,3,114,2,39,1,184,255, +163,254,207,253,139,252,37,251,215,249,121,248,149,247,241,246,25,246,164,245,73,245,181,244,144,244,186,244,232,244,16,245, +25,245,121,245,245,245,71,246,236,246,97,247,161,247,128,248,115,249,107,250,170,251,75,252,248,252,97,254,59,255,242,255, +101,1,62,2,137,2,74,3,139,3,111,3,31,4,176,4,141,4,104,4,44,4,6,4,8,4,179,3,147,3,147,3, +252,2,169,2,181,2,107,2,91,2,106,2,12,2,200,1,147,1,12,1,126,0,33,0,28,0,78,0,58,0,237,255, +149,255,31,255,228,254,251,254,201,254,114,254,98,254,71,254,45,254,20,254,143,253,53,253,86,253,46,253,219,252,174,252, +161,252,228,252,0,253,235,252,83,253,183,253,183,253,16,254,165,254,194,254,193,254,28,255,48,255,246,254,64,255,134,255, +133,255,255,255,116,0,175,0,42,1,94,1,105,1,151,1,118,1,86,1,82,1,229,0,67,0,243,255,9,0,205,255, +110,255,210,255,248,255,197,255,104,0,190,0,162,0,31,1,62,1,37,1,101,1,39,1,231,0,228,0,187,0,234,0, +241,0,213,0,98,1,169,1,127,1,201,1,24,2,59,2,142,2,202,2,228,2,74,3,200,3,172,3,145,3,46,4, +100,4,16,4,104,4,210,4,167,4,185,4,234,4,147,4,52,4,26,4,164,3,1,3,177,2,0,2,235,0,52,0, +110,255,161,254,73,254,208,253,55,253,210,252,87,252,36,252,33,252,201,251,197,251,5,252,190,251,159,251,32,252,88,252, +67,252,193,252,145,253,8,254,140,254,77,255,207,255,52,0,185,0,29,1,109,1,181,1,212,1,32,2,140,2,148,2, +183,2,104,3,220,3,237,3,40,4,90,4,131,4,181,4,124,4,65,4,47,4,116,3,123,2,237,1,63,1,130,0, +15,0,153,255,35,255,107,254,116,253,27,253,231,252,35,252,174,251,110,251,213,250,125,250,59,250,238,249,30,250,4,250, +177,249,13,250,21,250,173,249,243,249,65,250,99,250,251,250,86,251,97,251,249,251,180,252,255,252,107,253,68,254,252,254, +99,255,209,255,13,0,199,255,183,255,76,0,123,0,31,0,79,0,88,0,205,255,252,255,50,0,202,255,5,0,14,0, +127,255,147,255,104,255,12,255,95,255,40,255,235,254,85,255,24,255,236,254,66,255,17,255,34,255,210,255,60,0,120,0, +189,0,20,1,131,1,248,1,117,2,211,2,50,3,140,3,186,3,28,4,92,4,46,4,32,4,39,4,82,4,120,4, +19,4,227,3,230,3,112,3,48,3,237,2,49,2,212,1,174,1,17,1,93,0,43,0,250,255,250,254,18,254,136,253, +141,252,26,252,223,251,194,250,49,250,22,250,162,249,179,249,162,249,79,249,110,249,64,249,88,249,3,250,98,250,254,250, +148,251,2,252,15,253,220,253,172,254,11,0,188,0,114,1,207,2,209,3,209,4,233,5,212,6,191,7,10,8,80,8, +50,9,149,9,195,9,54,10,35,10,228,9,221,9,161,9,33,9,148,8,89,8,12,8,38,7,92,6,167,5,96,4, +38,3,80,2,94,1,70,0,36,255,18,254,61,253,154,252,17,252,109,251,170,250,32,250,190,249,71,249,250,248,237,248, +227,248,218,248,250,248,68,249,143,249,243,249,153,250,88,251,80,252,85,253,244,253,212,254,232,255,52,0,178,0,185,1, +233,1,37,2,46,3,164,3,174,3,234,3,234,3,11,4,116,4,137,4,63,4,213,3,153,3,130,3,46,3,189,2, +119,2,36,2,138,1,240,0,163,0,72,0,179,255,67,255,240,254,115,254,217,253,145,253,131,253,224,252,31,252,249,251, +154,251,29,251,44,251,33,251,34,251,99,251,97,251,174,251,100,252,237,252,173,253,126,254,218,254,53,255,185,255,253,255, +223,255,206,255,11,0,248,255,138,255,141,255,222,255,254,255,16,0,35,0,35,0,11,0,193,255,115,255,80,255,217,254, +241,253,88,253,23,253,170,252,49,252,5,252,21,252,244,251,215,251,75,252,146,252,89,252,129,252,161,252,166,252,50,253, +84,253,60,253,224,253,82,254,132,254,2,255,99,255,238,255,121,0,151,0,46,1,61,2,225,2,38,3,108,3,222,3, +71,4,111,4,144,4,131,4,32,4,229,3,227,3,151,3,11,3,200,2,152,2,51,2,254,1,181,1,15,1,131,0, +7,0,146,255,15,255,97,254,236,253,24,253,13,252,15,252,217,251,26,251,98,251,136,251,42,251,141,251,204,251,202,251, +62,252,143,252,211,252,86,253,1,254,168,254,234,254,108,255,25,0,79,0,2,1,221,1,3,2,110,2,245,2,44,3, +155,3,8,4,132,4,244,4,240,4,26,5,34,5,160,4,107,4,60,4,186,3,58,3,128,2,32,2,64,2,199,1, +77,1,139,1,91,1,223,0,23,1,15,1,78,0,0,0,236,255,68,255,138,254,27,254,232,253,201,253,99,253,19,253, +45,253,74,253,70,253,76,253,148,253,225,253,213,253,25,254,137,254,104,254,145,254,17,255,23,255,57,255,158,255,224,255, +28,0,49,0,95,0,202,0,249,0,22,1,57,1,86,1,141,1,122,1,75,1,147,1,225,1,220,1,207,1,230,1, +248,1,199,1,117,1,67,1,88,1,117,1,68,1,80,1,168,1,163,1,208,1,43,2,221,1,148,1,167,1,156,1, +130,1,56,1,253,0,33,1,36,1,39,1,84,1,48,1,210,0,130,0,57,0,192,255,52,255,7,255,204,254,83,254, +26,254,179,253,73,253,60,253,236,252,192,252,179,252,27,252,215,251,205,251,78,251,8,251,209,250,187,250,44,251,39,251, +247,250,89,251,188,251,33,252,87,252,114,252,69,253,6,254,71,254,219,254,119,255,231,255,126,0,52,1,211,1,4,2, +133,2,133,3,184,3,226,3,185,4,242,4,245,4,101,5,108,5,33,5,210,4,169,4,149,4,1,4,114,3,47,3, +179,2,63,2,137,1,181,0,128,0,254,255,45,255,228,254,105,254,185,253,41,253,134,252,56,252,236,251,145,251,156,251, +130,251,166,251,13,252,174,251,177,251,108,252,144,252,208,252,93,253,117,253,182,253,23,254,78,254,226,254,163,255,41,0, +135,0,2,1,175,1,66,2,185,2,36,3,126,3,201,3,197,3,192,3,229,3,163,3,120,3,193,3,160,3,48,3, +233,2,133,2,0,2,148,1,28,1,80,0,128,255,9,255,157,254,68,254,205,253,10,253,205,252,207,252,142,252,184,252, +243,252,37,253,178,253,216,253,231,253,79,254,153,254,52,255,204,255,250,255,75,0,148,0,255,0,81,1,90,1,36,2, +171,2,163,2,85,3,84,3,48,3,47,4,250,3,67,3,104,3,251,2,215,2,214,2,20,2,230,1,159,1,62,1, +139,1,252,0,115,0,144,0,211,255,69,255,24,255,166,254,150,254,14,254,115,253,117,253,241,252,221,252,88,253,49,253, +130,253,235,253,197,253,62,254,172,254,168,254,9,255,128,255,1,0,119,0,149,0,180,0,218,0,51,1,191,1,14,2, +103,2,173,2,189,2,2,3,46,3,64,3,71,3,199,2,148,2,250,2,176,2,35,2,35,2,142,1,144,0,121,0, +54,0,49,255,220,254,217,254,120,254,52,254,153,253,44,253,88,253,246,252,221,252,73,253,226,252,166,252,217,252,233,252, +99,253,80,253,28,253,13,254,127,254,164,254,124,255,184,255,204,255,77,0,114,0,199,0,72,1,103,1,108,1,110,1, +144,1,163,1,172,1,4,2,18,2,15,2,82,2,47,2,73,2,154,2,43,2,190,1,132,1,4,1,165,0,58,0, +223,255,225,255,194,255,95,255,252,254,16,255,112,255,61,255,12,255,85,255,94,255,107,255,146,255,133,255,170,255,213,255, +216,255,227,255,251,255,74,0,110,0,122,0,16,1,72,1,13,1,131,1,3,2,255,1,7,2,40,2,75,2,8,2, +90,1,13,1,222,0,110,0,46,0,192,255,67,255,103,255,127,255,74,255,81,255,19,255,204,254,12,255,219,254,110,254, +160,254,121,254,41,254,124,254,154,254,199,254,113,255,199,255,61,0,26,1,175,1,51,2,153,2,186,2,16,3,120,3, +181,3,187,3,189,3,20,4,62,4,67,4,150,4,176,4,173,4,174,4,81,4,54,4,38,4,156,3,37,3,126,2, +174,1,32,1,70,0,162,255,101,255,183,254,69,254,10,254,87,253,6,253,195,252,3,252,234,251,55,252,251,251,183,251, +180,251,176,251,182,251,245,251,100,252,155,252,184,252,92,253,66,254,202,254,66,255,242,255,156,0,107,1,81,2,229,2, +130,3,36,4,90,4,156,4,251,4,70,5,171,5,209,5,14,6,118,6,39,6,235,5,251,5,105,5,4,5,124,4, +94,3,29,3,184,2,172,1,140,1,24,1,62,0,88,0,187,255,208,254,221,254,36,254,74,253,65,253,124,252,206,251, +7,252,254,251,250,251,50,252,63,252,145,252,1,253,70,253,131,253,150,253,197,253,53,254,114,254,155,254,2,255,60,255, +63,255,174,255,60,0,105,0,196,0,244,0,156,0,213,0,22,1,120,0,70,0,149,0,87,0,228,255,154,255,150,255, +155,255,10,255,135,254,99,254,245,253,172,253,175,253,110,253,41,253,16,253,254,252,246,252,221,252,234,252,63,253,151,253, +227,253,31,254,114,254,249,254,98,255,203,255,88,0,170,0,240,0,118,1,198,1,208,1,22,2,108,2,135,2,230,2, +112,3,133,3,167,3,30,4,62,4,39,4,12,4,133,3,234,2,129,2,221,1,82,1,69,1,17,1,134,0,51,0, +217,255,106,255,120,255,89,255,188,254,152,254,79,254,101,253,30,253,14,253,95,252,32,252,84,252,59,252,83,252,148,252, +162,252,218,252,33,253,111,253,23,254,133,254,157,254,25,255,154,255,240,255,121,0,190,0,69,1,80,2,70,2,248,1, +230,2,125,3,117,3,192,3,231,3,42,4,84,4,183,3,115,3,165,3,93,3,209,2,87,2,20,2,170,1,7,1, +228,0,126,0,210,255,243,255,186,255,67,255,139,255,69,255,213,254,241,254,152,254,117,254,127,254,17,254,39,254,65,254, +40,254,138,254,133,254,179,254,83,255,37,255,117,255,76,0,52,0,96,0,210,0,218,0,62,1,69,1,36,1,196,1, +205,1,119,1,198,1,203,1,173,1,214,1,181,1,155,1,175,1,145,1,85,1,18,1,196,0,116,0,80,0,69,0, +9,0,241,255,224,255,124,255,102,255,103,255,5,255,236,254,236,254,250,254,125,255,140,255,97,255,215,255,29,0,86,0, +219,0,240,0,31,1,204,1,98,2,217,2,228,2,15,3,230,3,19,4,39,4,59,5,133,5,34,5,120,5,130,5, +106,5,175,5,54,5,128,4,20,4,112,3,20,3,148,2,150,1,72,1,48,1,136,0,4,0,122,255,186,254,13,254, +71,253,192,252,68,252,93,251,204,250,121,250,240,249,171,249,84,249,0,249,101,249,174,249,161,249,26,250,162,250,206,250, +33,251,162,251,33,252,135,252,216,252,92,253,11,254,171,254,79,255,10,0,219,0,207,1,174,2,52,3,174,3,81,4, +183,4,217,4,240,4,208,4,186,4,235,4,222,4,133,4,82,4,14,4,155,3,100,3,49,3,142,2,9,2,226,1, +123,1,231,0,87,0,156,255,2,255,101,254,187,253,134,253,54,253,181,252,168,252,134,252,127,252,222,252,169,252,136,252, +11,253,11,253,17,253,156,253,185,253,200,253,35,254,70,254,117,254,226,254,79,255,169,255,14,0,177,0,33,1,38,1, +110,1,247,1,45,2,38,2,46,2,81,2,107,2,97,2,79,2,68,2,36,2,231,1,191,1,160,1,89,1,34,1, +251,0,218,0,244,0,199,0,65,0,29,0,8,0,180,255,134,255,81,255,11,255,233,254,227,254,211,254,137,254,184,254, +119,255,137,255,141,255,76,0,97,0,244,255,69,0,137,0,64,0,72,0,110,0,29,0,253,255,26,0,204,255,219,255, +71,0,244,255,197,255,40,0,16,0,219,255,217,255,189,255,170,255,117,255,93,255,85,255,35,255,51,255,235,254,158,254, +56,255,62,255,8,255,189,255,176,255,94,255,208,255,213,255,240,255,87,0,137,0,2,1,236,0,170,0,69,1,94,1, +36,1,110,1,142,1,185,1,233,1,38,2,152,2,112,2,138,2,22,3,186,2,123,2,167,2,103,2,104,2,59,2, +203,1,211,1,148,1,69,1,27,1,155,0,127,0,84,0,181,255,142,255,100,255,45,255,57,255,216,254,145,254,131,254, +29,254,29,254,87,254,85,254,164,254,217,254,194,254,22,255,127,255,87,255,52,255,139,255,185,255,250,255,142,0,138,0, +148,0,10,1,210,0,241,0,87,1,194,0,209,0,67,1,222,0,251,0,213,0,35,0,148,0,191,0,39,0,46,0, +12,0,175,255,153,255,99,255,69,255,35,255,8,255,250,254,124,254,94,254,123,254,22,254,59,254,85,254,211,253,17,254, +95,254,89,254,214,254,206,254,138,254,48,255,149,255,135,255,215,255,3,0,247,255,44,0,112,0,133,0,147,0,160,0, +145,0,190,0,54,1,136,1,215,1,235,1,132,1,134,1,169,1,26,1,229,0,34,1,202,0,125,0,128,0,51,0, +223,255,135,255,59,255,102,255,65,255,190,254,213,254,245,254,188,254,161,254,105,254,120,254,201,254,150,254,165,254,3,255, +221,254,7,255,117,255,111,255,159,255,190,255,117,255,163,255,27,0,99,0,157,0,218,0,33,1,43,1,38,1,116,1, +143,1,124,1,138,1,121,1,126,1,144,1,135,1,149,1,89,1,36,1,88,1,23,1,158,0,151,0,132,0,133,0, +125,0,8,0,221,255,17,0,25,0,1,0,197,255,178,255,210,255,133,255,69,255,144,255,156,255,89,255,91,255,96,255, +66,255,127,255,217,255,167,255,143,255,24,0,27,0,172,255,19,0,100,0,210,255,169,255,234,255,207,255,199,255,206,255, +211,255,15,0,15,0,226,255,227,255,247,255,49,0,67,0,71,0,119,0,245,255,166,255,102,0,76,0,228,255,160,0, +205,0,124,0,203,0,232,0,33,1,178,1,230,1,0,2,22,2,96,2,197,2,148,2,170,2,2,3,196,2,225,2, +219,2,75,2,166,2,248,2,154,2,214,2,220,2,97,2,104,2,75,2,7,2,11,2,139,1,210,0,165,0,123,0, +255,255,142,255,62,255,0,255,244,254,206,254,81,254,15,254,25,254,244,253,212,253,166,253,57,253,59,253,165,253,144,253, +83,253,137,253,108,253,41,253,195,253,62,254,20,254,119,254,248,254,6,255,81,255,177,255,25,0,162,0,251,0,96,1, +108,1,54,1,183,1,23,2,10,2,99,2,93,2,49,2,159,2,166,2,95,2,126,2,138,2,86,2,40,2,58,2, +37,2,150,1,110,1,134,1,1,1,149,0,140,0,51,0,169,255,122,255,112,255,1,255,186,254,219,254,151,254,98,254, +106,254,253,253,206,253,216,253,182,253,247,253,215,253,129,253,226,253,192,253,69,253,140,253,238,253,67,254,105,254,96,254, +191,254,227,254,10,255,152,255,118,255,119,255,50,0,86,0,105,0,221,0,215,0,200,0,18,1,75,1,99,1,113,1, +89,1,57,1,106,1,101,1,33,1,152,1,191,1,5,1,238,0,223,0,104,0,119,0,55,0,195,255,209,255,150,255, +95,255,77,255,32,255,66,255,208,254,47,254,156,254,192,254,116,254,184,254,191,254,131,254,157,254,178,254,164,254,199,254, +61,255,59,255,207,254,251,254,1,255,188,254,30,255,75,255,57,255,140,255,163,255,204,255,2,0,191,255,189,255,220,255, +191,255,166,255,124,255,160,255,207,255,170,255,235,255,16,0,207,255,240,255,253,255,240,255,53,0,64,0,46,0,95,0, +173,0,172,0,61,0,89,0,191,0,132,0,120,0,150,0,138,0,198,0,177,0,153,0,239,0,216,0,195,0,192,0, +130,0,226,0,1,1,134,0,141,0,122,0,108,0,185,0,141,0,119,0,124,0,60,0,97,0,82,0,29,0,83,0, +42,0,27,0,41,0,170,255,181,255,216,255,106,255,103,255,98,255,78,255,109,255,7,255,243,254,59,255,246,254,3,255, +34,255,232,254,28,255,31,255,213,254,232,254,24,255,118,255,171,255,152,255,220,255,254,255,6,0,59,0,33,0,60,0, +101,0,70,0,179,0,242,0,183,0,2,1,50,1,54,1,99,1,15,1,10,1,120,1,57,1,246,0,36,1,30,1, +245,0,251,0,36,1,208,0,50,0,68,0,106,0,48,0,14,0,208,255,195,255,200,255,91,255,91,255,139,255,51,255, +31,255,22,255,207,254,235,254,235,254,190,254,209,254,222,254,237,254,214,254,203,254,41,255,40,255,19,255,128,255,110,255, +56,255,149,255,162,255,136,255,163,255,114,255,112,255,229,255,17,0,233,255,220,255,218,255,211,255,197,255,119,255,80,255, +153,255,128,255,69,255,165,255,163,255,81,255,154,255,176,255,119,255,116,255,97,255,142,255,161,255,50,255,56,255,94,255, +47,255,92,255,90,255,66,255,156,255,110,255,81,255,229,255,190,255,90,255,148,255,132,255,148,255,5,0,3,0,4,0, +42,0,26,0,74,0,88,0,20,0,63,0,113,0,71,0,33,0,248,255,20,0,79,0,12,0,210,255,201,255,174,255, +214,255,150,255,247,254,46,255,89,255,220,254,246,254,75,255,21,255,220,254,212,254,231,254,228,254,184,254,214,254,9,255, +243,254,236,254,247,254,13,255,70,255,65,255,251,254,244,254,57,255,73,255,12,255,68,255,211,255,199,255,135,255,201,255, +15,0,34,0,62,0,65,0,60,0,79,0,80,0,104,0,141,0,100,0,114,0,218,0,207,0,183,0,232,0,202,0, +225,0,63,1,40,1,8,1,233,0,190,0,255,0,3,1,189,0,155,0,63,0,84,0,190,0,132,0,73,0,20,0, +14,0,163,0,95,0,205,255,30,0,226,255,148,255,207,255,146,255,189,255,219,255,50,255,102,255,174,255,64,255,81,255, +81,255,110,255,244,255,172,255,113,255,162,255,112,255,188,255,253,255,163,255,233,255,16,0,177,255,221,255,232,255,188,255, +32,0,77,0,18,0,52,0,111,0,94,0,96,0,135,0,153,0,186,0,210,0,162,0,161,0,241,0,17,1,17,1, +249,0,167,0,163,0,252,0,240,0,200,0,19,1,251,0,138,0,209,0,227,0,59,0,58,0,144,0,103,0,72,0, +54,0,37,0,25,0,228,255,243,255,234,255,143,255,141,255,109,255,48,255,103,255,98,255,108,255,213,255,186,255,132,255, +137,255,121,255,167,255,168,255,97,255,101,255,103,255,91,255,70,255,250,254,14,255,89,255,69,255,30,255,38,255,78,255, +93,255,102,255,160,255,140,255,104,255,144,255,133,255,153,255,192,255,153,255,199,255,198,255,143,255,2,0,7,0,180,255, +37,0,48,0,214,255,253,255,18,0,50,0,108,0,83,0,59,0,56,0,90,0,110,0,56,0,106,0,149,0,75,0, +129,0,156,0,41,0,13,0,246,255,241,255,39,0,234,255,201,255,178,255,34,255,62,255,146,255,28,255,229,254,232,254, +178,254,193,254,185,254,155,254,186,254,149,254,132,254,160,254,87,254,92,254,177,254,170,254,222,254,11,255,216,254,68,255, +186,255,134,255,163,255,211,255,195,255,56,0,134,0,53,0,77,0,205,0,247,0,251,0,84,1,150,1,79,1,63,1, +141,1,151,1,184,1,186,1,94,1,138,1,190,1,112,1,108,1,115,1,70,1,22,1,172,0,172,0,207,0,74,0, +8,0,27,0,247,255,223,255,125,255,83,255,166,255,65,255,220,254,55,255,54,255,235,254,199,254,205,254,7,255,224,254, +213,254,58,255,4,255,236,254,85,255,33,255,14,255,121,255,130,255,150,255,198,255,232,255,72,0,100,0,115,0,197,0, +169,0,165,0,239,0,234,0,62,1,158,1,96,1,141,1,199,1,97,1,105,1,108,1,250,0,49,1,128,1,72,1, +49,1,22,1,2,1,243,0,147,0,164,0,199,0,89,0,74,0,4,0,98,255,232,255,87,0,214,255,212,255,161,255, +31,255,136,255,212,255,141,255,122,255,105,255,120,255,150,255,88,255,70,255,113,255,131,255,144,255,131,255,138,255,202,255, +2,0,9,0,220,255,240,255,73,0,66,0,26,0,16,0,246,255,74,0,150,0,48,0,20,0,82,0,12,0,221,255, +24,0,244,255,186,255,253,255,245,255,155,255,213,255,236,255,124,255,134,255,156,255,68,255,50,255,28,255,8,255,96,255, +88,255,8,255,52,255,102,255,77,255,38,255,31,255,58,255,29,255,13,255,109,255,172,255,145,255,123,255,135,255,177,255, +212,255,230,255,240,255,8,0,57,0,50,0,21,0,45,0,17,0,252,255,34,0,239,255,211,255,243,255,198,255,195,255, +204,255,165,255,1,0,39,0,156,255,114,255,143,255,122,255,116,255,117,255,125,255,116,255,74,255,69,255,45,255,247,254, +241,254,247,254,1,255,251,254,227,254,7,255,42,255,37,255,37,255,3,255,1,255,53,255,45,255,16,255,9,255,13,255, +25,255,0,255,28,255,132,255,176,255,204,255,215,255,183,255,255,255,98,0,63,0,5,0,28,0,91,0,110,0,125,0, +190,0,160,0,124,0,215,0,206,0,164,0,228,0,202,0,185,0,247,0,224,0,238,0,15,1,208,0,174,0,126,0, +100,0,171,0,117,0,17,0,50,0,55,0,24,0,20,0,22,0,29,0,182,255,74,255,121,255,103,255,13,255,50,255, +72,255,253,254,206,254,202,254,215,254,229,254,215,254,214,254,24,255,53,255,224,254,204,254,28,255,31,255,40,255,116,255, +105,255,105,255,181,255,178,255,153,255,207,255,24,0,87,0,76,0,2,0,47,0,176,0,185,0,182,0,17,1,14,1, +217,0,31,1,92,1,86,1,63,1,6,1,248,0,237,0,216,0,41,1,15,1,123,0,141,0,189,0,191,0,213,0, +94,0,4,0,27,0,197,255,153,255,169,255,93,255,74,255,51,255,239,254,246,254,182,254,121,254,169,254,166,254,188,254, +198,254,104,254,118,254,177,254,154,254,137,254,115,254,171,254,234,254,174,254,240,254,86,255,2,255,21,255,115,255,94,255, +144,255,228,255,209,255,194,255,218,255,3,0,43,0,86,0,142,0,154,0,182,0,211,0,134,0,144,0,248,0,191,0, +160,0,20,1,5,1,170,0,181,0,168,0,113,0,91,0,48,0,12,0,2,0,244,255,0,0,203,255,98,255,138,255, +175,255,109,255,142,255,94,255,162,254,196,254,35,255,216,254,195,254,221,254,215,254,231,254,183,254,113,254,94,254,84,254, +135,254,168,254,92,254,73,254,142,254,151,254,102,254,93,254,167,254,236,254,212,254,156,254,183,254,17,255,16,255,228,254, +60,255,157,255,142,255,161,255,207,255,183,255,175,255,231,255,255,255,248,255,42,0,97,0,128,0,184,0,145,0,60,0, +129,0,210,0,234,0,4,1,182,0,155,0,1,1,238,0,176,0,181,0,172,0,173,0,101,0,242,255,229,255,215,255, +212,255,199,255,75,255,72,255,153,255,63,255,240,254,247,254,222,254,213,254,194,254,167,254,194,254,204,254,176,254,170,254, +198,254,185,254,140,254,179,254,213,254,224,254,41,255,12,255,248,254,115,255,110,255,113,255,223,255,174,255,189,255,25,0, +217,255,37,0,156,0,108,0,189,0,242,0,182,0,40,1,88,1,13,1,52,1,68,1,41,1,8,1,208,0,6,1, +11,1,182,0,243,0,4,1,145,0,107,0,104,0,144,0,188,0,107,0,109,0,165,0,57,0,253,255,54,0,69,0, +57,0,233,255,149,255,166,255,160,255,155,255,148,255,56,255,84,255,170,255,76,255,18,255,79,255,108,255,116,255,71,255, +55,255,111,255,57,255,59,255,164,255,81,255,11,255,91,255,103,255,147,255,204,255,157,255,214,255,40,0,254,255,3,0, +21,0,3,0,45,0,58,0,26,0,0,0,207,255,210,255,252,255,255,255,2,0,247,255,243,255,6,0,215,255,207,255, +33,0,24,0,208,255,161,255,145,255,237,255,4,0,136,255,142,255,178,255,98,255,139,255,177,255,83,255,122,255,197,255, +142,255,116,255,129,255,172,255,238,255,181,255,134,255,221,255,253,255,222,255,248,255,19,0,2,0,251,255,234,255,160,255, +170,255,29,0,1,0,176,255,240,255,254,255,184,255,186,255,223,255,252,255,222,255,155,255,141,255,97,255,49,255,71,255, +90,255,116,255,82,255,3,255,44,255,48,255,11,255,96,255,104,255,71,255,106,255,58,255,74,255,155,255,129,255,130,255, +95,255,44,255,137,255,141,255,125,255,227,255,228,255,15,0,88,0,236,255,245,255,93,0,82,0,119,0,118,0,62,0, +94,0,96,0,115,0,129,0,35,0,59,0,106,0,14,0,11,0,37,0,14,0,33,0,230,255,181,255,210,255,122,255, +61,255,110,255,76,255,88,255,192,255,157,255,65,255,55,255,46,255,51,255,83,255,72,255,66,255,49,255,231,254,235,254, +57,255,64,255,35,255,30,255,72,255,120,255,95,255,121,255,179,255,136,255,168,255,251,255,209,255,223,255,38,0,49,0, +71,0,69,0,103,0,179,0,127,0,104,0,181,0,172,0,141,0,154,0,184,0,186,0,101,0,107,0,184,0,141,0, +135,0,169,0,112,0,105,0,109,0,74,0,86,0,84,0,71,0,47,0,248,255,19,0,49,0,252,255,246,255,0,0, +223,255,220,255,229,255,187,255,158,255,229,255,6,0,179,255,150,255,133,255,129,255,218,255,170,255,76,255,137,255,105,255, +71,255,154,255,117,255,112,255,187,255,119,255,78,255,130,255,146,255,163,255,176,255,201,255,192,255,120,255,123,255,134,255, +104,255,161,255,217,255,219,255,210,255,179,255,208,255,242,255,202,255,197,255,221,255,247,255,19,0,14,0,37,0,85,0, +121,0,130,0,53,0,64,0,215,0,228,0,173,0,228,0,248,0,208,0,210,0,213,0,151,0,121,0,174,0,147,0, +104,0,163,0,141,0,116,0,139,0,36,0,38,0,113,0,18,0,63,0,142,0,247,255,227,255,20,0,212,255,233,255, +172,255,75,255,135,255,72,255,30,255,164,255,109,255,11,255,57,255,12,255,241,254,41,255,35,255,45,255,50,255,33,255, +95,255,98,255,63,255,138,255,166,255,87,255,63,255,117,255,167,255,169,255,189,255,228,255,201,255,178,255,218,255,32,0, +117,0,111,0,35,0,45,0,113,0,183,0,197,0,147,0,196,0,7,1,237,0,254,0,0,1,213,0,235,0,224,0, +180,0,137,0,85,0,141,0,172,0,104,0,114,0,72,0,216,255,200,255,203,255,251,255,32,0,201,255,166,255,150,255, +98,255,123,255,101,255,68,255,90,255,24,255,9,255,60,255,10,255,238,254,255,254,246,254,7,255,16,255,242,254,201,254, +5,255,127,255,83,255,7,255,17,255,7,255,104,255,153,255,17,255,16,255,69,255,84,255,189,255,199,255,211,255,21,0, +199,255,229,255,47,0,213,255,11,0,100,0,70,0,104,0,71,0,66,0,163,0,91,0,65,0,199,0,199,0,129,0, +116,0,133,0,145,0,106,0,111,0,145,0,125,0,89,0,31,0,26,0,31,0,167,255,139,255,253,255,46,0,32,0, +208,255,152,255,190,255,149,255,141,255,212,255,151,255,102,255,129,255,77,255,16,255,9,255,70,255,125,255,96,255,133,255, +133,255,3,255,40,255,126,255,78,255,128,255,165,255,87,255,125,255,183,255,199,255,18,0,249,255,175,255,230,255,11,0, +14,0,67,0,44,0,8,0,63,0,69,0,50,0,73,0,37,0,20,0,90,0,97,0,61,0,76,0,90,0,62,0, +252,255,229,255,14,0,13,0,12,0,18,0,197,255,181,255,205,255,136,255,191,255,38,0,167,255,104,255,231,255,225,255, +148,255,164,255,167,255,161,255,168,255,167,255,190,255,184,255,171,255,194,255,151,255,128,255,205,255,198,255,123,255,125,255, +158,255,193,255,196,255,170,255,216,255,5,0,0,0,4,0,235,255,247,255,27,0,206,255,176,255,211,255,159,255,188,255, +229,255,94,255,59,255,171,255,218,255,212,255,145,255,115,255,188,255,179,255,208,255,67,0,3,0,188,255,18,0,64,0, +63,0,27,0,229,255,32,0,91,0,72,0,47,0,27,0,57,0,65,0,55,0,160,0,155,0,27,0,72,0,120,0, +77,0,106,0,91,0,61,0,102,0,102,0,112,0,138,0,106,0,74,0,34,0,35,0,66,0,234,255,158,255,188,255, +168,255,120,255,135,255,145,255,88,255,60,255,129,255,138,255,77,255,79,255,67,255,70,255,125,255,98,255,85,255,137,255, +113,255,76,255,114,255,194,255,215,255,126,255,112,255,186,255,178,255,160,255,174,255,164,255,151,255,148,255,196,255,222,255, +212,255,41,0,51,0,189,255,185,255,235,255,254,255,12,0,236,255,236,255,251,255,0,0,31,0,229,255,218,255,41,0, +237,255,225,255,25,0,195,255,215,255,33,0,220,255,228,255,244,255,184,255,190,255,182,255,184,255,215,255,152,255,101,255, +108,255,115,255,139,255,120,255,128,255,181,255,131,255,69,255,83,255,104,255,127,255,129,255,132,255,125,255,68,255,110,255, +179,255,99,255,88,255,188,255,156,255,105,255,181,255,188,255,101,255,103,255,146,255,137,255,140,255,150,255,155,255,185,255, +182,255,173,255,201,255,197,255,209,255,32,0,77,0,54,0,24,0,21,0,27,0,49,0,101,0,87,0,19,0,48,0, +110,0,96,0,69,0,74,0,102,0,109,0,90,0,86,0,46,0,11,0,55,0,47,0,254,255,35,0,27,0,175,255, +149,255,218,255,215,255,154,255,150,255,126,255,98,255,174,255,160,255,32,255,69,255,166,255,134,255,97,255,91,255,105,255, +146,255,113,255,51,255,66,255,89,255,77,255,49,255,39,255,83,255,131,255,156,255,199,255,232,255,231,255,209,255,204,255, +25,0,97,0,92,0,129,0,150,0,73,0,89,0,185,0,193,0,176,0,168,0,154,0,170,0,138,0,92,0,134,0, +139,0,86,0,123,0,153,0,77,0,84,0,168,0,102,0,13,0,54,0,35,0,247,255,44,0,14,0,177,255,176,255, +194,255,186,255,174,255,172,255,168,255,119,255,126,255,167,255,96,255,52,255,102,255,101,255,80,255,67,255,60,255,97,255, +132,255,161,255,196,255,188,255,149,255,145,255,225,255,13,0,216,255,217,255,241,255,254,255,60,0,48,0,41,0,60,0, +211,255,9,0,172,0,74,0,18,0,103,0,78,0,68,0,80,0,76,0,77,0,16,0,87,0,180,0,62,0,36,0, +63,0,243,255,57,0,107,0,26,0,53,0,44,0,232,255,16,0,28,0,251,255,250,255,214,255,193,255,227,255,214,255, +168,255,189,255,199,255,169,255,201,255,203,255,181,255,246,255,203,255,122,255,206,255,223,255,209,255,20,0,204,255,149,255, +245,255,252,255,184,255,158,255,202,255,249,255,192,255,210,255,50,0,242,255,215,255,58,0,45,0,242,255,9,0,37,0, +33,0,26,0,38,0,37,0,52,0,89,0,42,0,252,255,44,0,61,0,52,0,54,0,26,0,21,0,37,0,50,0, +84,0,59,0,8,0,54,0,71,0,232,255,218,255,20,0,250,255,242,255,5,0,219,255,208,255,167,255,127,255,246,255, +230,255,85,255,177,255,226,255,133,255,190,255,182,255,109,255,195,255,196,255,110,255,149,255,194,255,188,255,177,255,185,255, +205,255,164,255,158,255,237,255,221,255,167,255,226,255,3,0,216,255,221,255,233,255,230,255,36,0,21,0,171,255,199,255, +231,255,182,255,247,255,27,0,231,255,32,0,51,0,234,255,223,255,225,255,223,255,207,255,183,255,230,255,250,255,250,255, +26,0,218,255,200,255,21,0,241,255,199,255,214,255,198,255,208,255,176,255,139,255,203,255,181,255,115,255,173,255,210,255, +216,255,248,255,220,255,210,255,8,0,254,255,247,255,64,0,57,0,251,255,53,0,72,0,225,255,208,255,228,255,198,255, +231,255,242,255,185,255,188,255,179,255,140,255,171,255,198,255,172,255,141,255,119,255,139,255,143,255,92,255,105,255,143,255, +94,255,75,255,108,255,91,255,98,255,133,255,108,255,103,255,119,255,81,255,94,255,145,255,150,255,171,255,188,255,181,255, +209,255,208,255,175,255,185,255,189,255,188,255,222,255,235,255,229,255,223,255,213,255,250,255,41,0,255,255,211,255,9,0, +26,0,211,255,218,255,19,0,237,255,210,255,248,255,222,255,183,255,202,255,169,255,118,255,141,255,140,255,85,255,64,255, +77,255,99,255,86,255,42,255,56,255,53,255,255,254,29,255,31,255,238,254,57,255,58,255,227,254,74,255,115,255,6,255, +60,255,88,255,18,255,115,255,155,255,62,255,99,255,112,255,73,255,156,255,154,255,82,255,143,255,173,255,148,255,179,255, +186,255,184,255,185,255,173,255,201,255,175,255,131,255,202,255,207,255,137,255,175,255,198,255,163,255,176,255,190,255,193,255, +186,255,154,255,172,255,221,255,211,255,161,255,145,255,174,255,206,255,203,255,151,255,124,255,177,255,192,255,142,255,111,255, +103,255,159,255,187,255,132,255,159,255,125,255,9,255,115,255,195,255,85,255,78,255,86,255,55,255,72,255,41,255,85,255, +146,255,69,255,82,255,111,255,66,255,155,255,177,255,81,255,134,255,200,255,176,255,167,255,165,255,180,255,174,255,146,255, +186,255,207,255,165,255,197,255,254,255,198,255,152,255,202,255,199,255,200,255,19,0,241,255,198,255,228,255,152,255,133,255, +222,255,201,255,195,255,223,255,187,255,208,255,211,255,177,255,205,255,171,255,128,255,167,255,162,255,148,255,184,255,184,255, +147,255,160,255,206,255,163,255,102,255,120,255,92,255,57,255,94,255,75,255,51,255,81,255,95,255,115,255,121,255,116,255, +142,255,160,255,175,255,169,255,164,255,212,255,219,255,184,255,197,255,241,255,40,0,32,0,234,255,231,255,242,255,47,0, +120,0,62,0,30,0,90,0,91,0,71,0,57,0,11,0,241,255,22,0,71,0,47,0,41,0,47,0,199,255,161,255, +158,255,66,255,130,255,213,255,133,255,116,255,102,255,117,255,220,255,147,255,54,255,105,255,137,255,166,255,89,255,8,255, +149,255,187,255,89,255,103,255,124,255,152,255,154,255,114,255,174,255,179,255,149,255,232,255,249,255,246,255,50,0,61,0, +46,0,253,255,226,255,242,255,233,255,62,0,128,0,51,0,51,0,61,0,12,0,15,0,246,255,17,0,80,0,22,0, +248,255,253,255,249,255,41,0,255,255,203,255,251,255,233,255,182,255,197,255,13,0,18,0,169,255,216,255,36,0,182,255, +219,255,54,0,221,255,207,255,227,255,226,255,17,0,233,255,225,255,6,0,219,255,7,0,5,0,171,255,237,255,35,0, +22,0,51,0,37,0,42,0,17,0,222,255,63,0,82,0,18,0,97,0,106,0,57,0,76,0,17,0,2,0,36,0, +223,255,230,255,57,0,66,0,51,0,37,0,62,0,78,0,18,0,67,0,168,0,89,0,13,0,45,0,24,0,9,0, +28,0,3,0,3,0,8,0,230,255,29,0,90,0,23,0,252,255,45,0,42,0,65,0,90,0,43,0,59,0,114,0, +88,0,54,0,50,0,74,0,130,0,105,0,25,0,46,0,131,0,143,0,100,0,115,0,130,0,79,0,98,0,139,0, +83,0,105,0,167,0,117,0,97,0,100,0,96,0,134,0,51,0,228,255,76,0,86,0,36,0,88,0,70,0,68,0, +126,0,73,0,26,0,45,0,54,0,80,0,50,0,238,255,216,255,210,255,22,0,76,0,238,255,211,255,46,0,40,0, +3,0,13,0,237,255,254,255,76,0,28,0,244,255,83,0,37,0,196,255,54,0,110,0,37,0,43,0,35,0,28,0, +72,0,45,0,23,0,45,0,43,0,41,0,34,0,74,0,152,0,130,0,100,0,132,0,131,0,104,0,67,0,59,0, +95,0,74,0,39,0,77,0,110,0,107,0,120,0,127,0,121,0,164,0,179,0,100,0,91,0,106,0,37,0,67,0, +98,0,7,0,10,0,49,0,39,0,50,0,7,0,1,0,8,0,202,255,19,0,84,0,38,0,97,0,60,0,213,255, +53,0,120,0,92,0,92,0,67,0,68,0,81,0,103,0,118,0,40,0,60,0,162,0,126,0,97,0,101,0,50,0, +53,0,126,0,216,0,167,0,32,0,80,0,118,0,59,0,114,0,150,0,140,0,169,0,188,0,204,0,100,0,47,0, +200,0,176,0,83,0,145,0,78,0,26,0,91,0,70,0,56,0,15,0,255,255,91,0,26,0,229,255,91,0,61,0, +216,255,216,255,226,255,228,255,238,255,24,0,9,0,223,255,41,0,18,0,203,255,29,0,1,0,213,255,51,0,34,0, +6,0,23,0,234,255,2,0,254,255,213,255,16,0,17,0,0,0,38,0,15,0,27,0,56,0,39,0,57,0,51,0, +35,0,31,0,9,0,80,0,135,0,65,0,42,0,40,0,8,0,30,0,36,0,1,0,244,255,245,255,203,255,147,255, +184,255,230,255,220,255,4,0,243,255,176,255,226,255,251,255,202,255,189,255,173,255,214,255,246,255,171,255,172,255,218,255, +198,255,205,255,188,255,172,255,183,255,120,255,157,255,255,255,169,255,146,255,237,255,197,255,202,255,26,0,245,255,224,255, +17,0,37,0,15,0,204,255,197,255,241,255,226,255,241,255,250,255,202,255,251,255,41,0,214,255,179,255,2,0,66,0, +26,0,236,255,64,0,129,0,50,0,215,255,207,255,12,0,32,0,3,0,30,0,31,0,5,0,6,0,209,255,248,255, +75,0,225,255,178,255,225,255,171,255,189,255,214,255,177,255,249,255,241,255,163,255,231,255,251,255,200,255,211,255,192,255, +187,255,213,255,179,255,175,255,238,255,8,0,217,255,176,255,208,255,251,255,241,255,197,255,164,255,156,255,164,255,202,255, +209,255,152,255,132,255,133,255,153,255,221,255,197,255,164,255,233,255,221,255,173,255,187,255,165,255,176,255,204,255,162,255, +151,255,210,255,12,0,241,255,174,255,183,255,177,255,179,255,229,255,163,255,147,255,249,255,186,255,127,255,214,255,206,255, +160,255,186,255,202,255,198,255,177,255,152,255,151,255,192,255,216,255,159,255,175,255,2,0,222,255,206,255,0,0,236,255, +214,255,226,255,234,255,220,255,206,255,10,0,19,0,218,255,0,0,6,0,221,255,252,255,239,255,215,255,222,255,206,255, +250,255,23,0,255,255,29,0,29,0,255,255,22,0,24,0,241,255,233,255,42,0,47,0,224,255,4,0,24,0,207,255, +248,255,19,0,9,0,74,0,41,0,21,0,91,0,48,0,37,0,104,0,69,0,41,0,104,0,137,0,68,0,32,0, +99,0,86,0,57,0,90,0,38,0,58,0,141,0,107,0,107,0,82,0,31,0,75,0,10,0,251,255,124,0,63,0, +249,255,28,0,3,0,59,0,79,0,27,0,75,0,54,0,34,0,77,0,22,0,43,0,55,0,204,255,237,255,39,0, +41,0,100,0,71,0,38,0,54,0,0,0,23,0,71,0,29,0,56,0,85,0,59,0,87,0,113,0,102,0,81,0, +57,0,71,0,89,0,85,0,85,0,84,0,75,0,47,0,24,0,40,0,64,0,79,0,78,0,69,0,74,0,47,0, +9,0,22,0,46,0,50,0,42,0,31,0,38,0,74,0,108,0,77,0,36,0,74,0,91,0,37,0,5,0,29,0, +75,0,67,0,23,0,21,0,21,0,41,0,65,0,23,0,33,0,53,0,240,255,249,255,44,0,35,0,54,0,49,0, +26,0,33,0,0,0,247,255,28,0,62,0,81,0,15,0,7,0,94,0,41,0,244,255,26,0,245,255,4,0,67,0, +60,0,70,0,29,0,249,255,57,0,47,0,42,0,96,0,57,0,61,0,94,0,30,0,36,0,103,0,135,0,148,0, +100,0,99,0,143,0,110,0,121,0,144,0,109,0,136,0,118,0,52,0,84,0,93,0,73,0,85,0,77,0,117,0, +127,0,93,0,167,0,205,0,164,0,183,0,165,0,140,0,158,0,126,0,100,0,72,0,55,0,120,0,108,0,57,0, +89,0,89,0,116,0,162,0,120,0,137,0,153,0,90,0,82,0,62,0,79,0,202,0,200,0,139,0,155,0,117,0, +105,0,186,0,212,0,182,0,167,0,160,0,135,0,135,0,166,0,176,0,221,0,237,0,140,0,134,0,188,0,135,0, +144,0,201,0,193,0,211,0,189,0,133,0,162,0,166,0,143,0,183,0,217,0,228,0,221,0,185,0,157,0,143,0, +160,0,194,0,178,0,150,0,182,0,232,0,222,0,195,0,212,0,211,0,219,0,247,0,171,0,132,0,251,0,17,1, +187,0,201,0,252,0,239,0,195,0,185,0,205,0,174,0,157,0,214,0,219,0,171,0,145,0,125,0,138,0,154,0, +108,0,120,0,185,0,162,0,126,0,136,0,121,0,96,0,48,0,4,0,62,0,113,0,96,0,104,0,94,0,76,0, +104,0,121,0,137,0,130,0,66,0,78,0,151,0,126,0,57,0,86,0,131,0,58,0,51,0,180,0,176,0,93,0, +86,0,50,0,56,0,95,0,57,0,61,0,79,0,81,0,146,0,151,0,135,0,135,0,69,0,84,0,153,0,129,0, +81,0,63,0,138,0,162,0,43,0,68,0,117,0,46,0,92,0,95,0,49,0,102,0,21,0,248,255,83,0,1,0, +241,255,46,0,29,0,102,0,70,0,242,255,59,0,14,0,16,0,157,0,84,0,40,0,118,0,34,0,251,255,90,0, +119,0,109,0,120,0,111,0,73,0,100,0,128,0,57,0,87,0,147,0,61,0,47,0,61,0,12,0,73,0,94,0, +16,0,24,0,44,0,56,0,93,0,110,0,105,0,47,0,47,0,154,0,164,0,104,0,106,0,116,0,94,0,65,0, +100,0,128,0,58,0,35,0,86,0,130,0,140,0,77,0,66,0,107,0,89,0,119,0,103,0,31,0,113,0,149,0, +75,0,83,0,64,0,48,0,91,0,81,0,91,0,97,0,93,0,181,0,179,0,59,0,42,0,115,0,142,0,87,0, +83,0,167,0,180,0,146,0,112,0,98,0,170,0,160,0,99,0,157,0,136,0,78,0,104,0,54,0,48,0,93,0, +33,0,42,0,97,0,69,0,43,0,31,0,79,0,73,0,202,255,244,255,82,0,30,0,77,0,102,0,251,255,28,0, +84,0,40,0,66,0,87,0,38,0,4,0,238,255,2,0,43,0,34,0,38,0,56,0,24,0,255,255,254,255,22,0, +90,0,48,0,156,255,175,255,6,0,202,255,214,255,56,0,18,0,212,255,229,255,208,255,151,255,159,255,190,255,136,255, +121,255,209,255,192,255,149,255,237,255,11,0,234,255,234,255,213,255,249,255,42,0,0,0,240,255,245,255,223,255,230,255, +229,255,242,255,18,0,254,255,237,255,10,0,56,0,56,0,249,255,250,255,1,0,177,255,178,255,243,255,247,255,233,255, +235,255,31,0,49,0,243,255,6,0,24,0,231,255,249,255,227,255,229,255,67,0,252,255,193,255,23,0,224,255,177,255, +242,255,232,255,225,255,197,255,145,255,221,255,26,0,252,255,212,255,173,255,191,255,168,255,92,255,107,255,120,255,128,255, +167,255,141,255,124,255,127,255,152,255,232,255,178,255,133,255,228,255,186,255,158,255,246,255,186,255,134,255,164,255,198,255, +18,0,215,255,183,255,55,0,15,0,242,255,68,0,245,255,248,255,56,0,205,255,209,255,33,0,28,0,46,0,13,0, +237,255,47,0,76,0,40,0,245,255,12,0,56,0,236,255,4,0,115,0,48,0,230,255,219,255,215,255,0,0,205,255, +189,255,25,0,223,255,188,255,250,255,224,255,254,255,233,255,113,255,188,255,247,255,177,255,221,255,0,0,242,255,239,255, +160,255,140,255,174,255,153,255,184,255,190,255,153,255,208,255,232,255,194,255,192,255,169,255,153,255,174,255,173,255,195,255, +255,255,4,0,207,255,226,255,59,0,19,0,185,255,248,255,27,0,217,255,241,255,34,0,20,0,23,0,14,0,1,0, +31,0,24,0,230,255,250,255,43,0,12,0,223,255,231,255,238,255,235,255,236,255,226,255,237,255,236,255,197,255,189,255, +194,255,206,255,213,255,152,255,172,255,27,0,241,255,171,255,224,255,225,255,184,255,206,255,237,255,232,255,220,255,6,0, +10,0,197,255,219,255,231,255,186,255,222,255,171,255,103,255,198,255,201,255,170,255,226,255,178,255,169,255,227,255,206,255, +211,255,167,255,146,255,244,255,177,255,143,255,23,0,217,255,150,255,226,255,199,255,193,255,210,255,184,255,244,255,20,0, +15,0,1,0,188,255,246,255,56,0,240,255,0,0,49,0,46,0,37,0,235,255,16,0,79,0,37,0,77,0,57,0, +164,255,184,255,37,0,96,0,90,0,245,255,246,255,33,0,217,255,233,255,21,0,237,255,9,0,36,0,16,0,252,255, +200,255,243,255,61,0,214,255,150,255,239,255,245,255,222,255,23,0,255,255,214,255,7,0,5,0,14,0,42,0,216,255, +226,255,16,0,176,255,214,255,13,0,180,255,231,255,2,0,217,255,35,0,208,255,150,255,32,0,241,255,213,255,58,0, +11,0,25,0,59,0,238,255,246,255,222,255,213,255,40,0,6,0,18,0,42,0,178,255,214,255,54,0,26,0,39,0, +32,0,11,0,252,255,214,255,35,0,35,0,208,255,44,0,23,0,205,255,102,0,105,0,255,255,80,0,99,0,54,0, +91,0,89,0,57,0,66,0,89,0,78,0,38,0,3,0,200,255,216,255,59,0,34,0,240,255,51,0,85,0,63,0, +63,0,61,0,30,0,251,255,13,0,17,0,13,0,48,0,241,255,209,255,74,0,64,0,246,255,17,0,234,255,211,255, +8,0,24,0,67,0,47,0,227,255,22,0,78,0,56,0,31,0,9,0,44,0,52,0,228,255,215,255,1,0,5,0, +238,255,233,255,27,0,38,0,21,0,57,0,35,0,27,0,111,0,86,0,40,0,87,0,42,0,238,255,50,0,112,0, +95,0,43,0,29,0,87,0,119,0,99,0,102,0,130,0,137,0,94,0,32,0,20,0,58,0,79,0,56,0,57,0, +91,0,59,0,10,0,52,0,79,0,57,0,92,0,108,0,47,0,32,0,72,0,107,0,118,0,71,0,25,0,8,0, +230,255,6,0,70,0,19,0,232,255,6,0,20,0,57,0,82,0,67,0,73,0,59,0,66,0,99,0,43,0,8,0, +48,0,58,0,67,0,63,0,81,0,165,0,153,0,104,0,141,0,129,0,102,0,116,0,99,0,102,0,99,0,55,0, +52,0,62,0,86,0,111,0,63,0,33,0,47,0,60,0,106,0,74,0,1,0,48,0,82,0,78,0,104,0,53,0, +46,0,112,0,43,0,3,0,70,0,49,0,61,0,102,0,64,0,113,0,133,0,31,0,57,0,105,0,82,0,114,0, +78,0,69,0,162,0,118,0,91,0,139,0,56,0,49,0,93,0,35,0,91,0,117,0,51,0,131,0,140,0,76,0, +116,0,51,0,24,0,140,0,115,0,79,0,100,0,23,0,254,255,30,0,32,0,71,0,95,0,93,0,53,0,240,255, +55,0,121,0,36,0,20,0,50,0,50,0,99,0,69,0,3,0,49,0,51,0,7,0,29,0,68,0,105,0,81,0, +25,0,82,0,125,0,79,0,74,0,59,0,32,0,82,0,110,0,83,0,73,0,85,0,75,0,22,0,46,0,148,0, +124,0,54,0,65,0,78,0,116,0,107,0,35,0,103,0,177,0,138,0,135,0,116,0,98,0,129,0,76,0,63,0, +116,0,94,0,98,0,94,0,69,0,140,0,125,0,58,0,114,0,133,0,135,0,145,0,70,0,93,0,172,0,120,0, +70,0,68,0,74,0,99,0,101,0,106,0,90,0,61,0,95,0,82,0,33,0,49,0,46,0,42,0,39,0,240,255, +235,255,1,0,237,255,226,255,229,255,14,0,24,0,240,255,44,0,56,0,207,255,0,0,81,0,42,0,76,0,98,0, +11,0,6,0,45,0,5,0,4,0,55,0,29,0,230,255,241,255,7,0,9,0,23,0,41,0,44,0,19,0,11,0, +30,0,0,0,239,255,23,0,20,0,13,0,14,0,244,255,25,0,47,0,250,255,238,255,234,255,221,255,239,255,249,255, +33,0,54,0,251,255,238,255,27,0,58,0,64,0,45,0,40,0,233,255,177,255,16,0,246,255,140,255,32,0,122,0, +44,0,85,0,81,0,29,0,76,0,49,0,13,0,26,0,246,255,35,0,87,0,36,0,39,0,65,0,70,0,83,0, +21,0,233,255,11,0,24,0,30,0,36,0,75,0,129,0,85,0,56,0,53,0,246,255,39,0,95,0,5,0,13,0, +75,0,44,0,35,0,29,0,43,0,67,0,1,0,14,0,68,0,243,255,234,255,39,0,37,0,83,0,66,0,219,255, +0,0,78,0,70,0,66,0,71,0,59,0,23,0,251,255,38,0,83,0,52,0,18,0,42,0,48,0,15,0,28,0, +37,0,24,0,85,0,85,0,26,0,101,0,153,0,106,0,93,0,56,0,35,0,39,0,6,0,75,0,125,0,43,0, +65,0,87,0,9,0,32,0,36,0,247,255,55,0,48,0,221,255,6,0,38,0,225,255,193,255,190,255,164,255,184,255, +211,255,183,255,193,255,226,255,214,255,217,255,188,255,156,255,214,255,220,255,189,255,198,255,153,255,182,255,5,0,190,255, +154,255,192,255,146,255,141,255,198,255,192,255,148,255,147,255,217,255,240,255,211,255,253,255,4,0,208,255,238,255,27,0, +244,255,178,255,209,255,20,0,213,255,186,255,247,255,190,255,147,255,199,255,188,255,161,255,181,255,227,255,200,255,122,255, +200,255,7,0,176,255,199,255,252,255,239,255,234,255,160,255,159,255,222,255,198,255,3,0,19,0,180,255,214,255,209,255, +158,255,207,255,192,255,150,255,116,255,125,255,232,255,166,255,94,255,197,255,169,255,176,255,236,255,172,255,4,0,15,0, +148,255,14,0,14,0,157,255,228,255,159,255,115,255,204,255,174,255,234,255,230,255,91,255,176,255,196,255,109,255,175,255, +159,255,163,255,245,255,163,255,132,255,176,255,152,255,211,255,247,255,185,255,190,255,212,255,191,255,225,255,27,0,243,255, +210,255,29,0,30,0,234,255,213,255,161,255,212,255,253,255,206,255,88,0,125,0,237,255,57,0,65,0,213,255,26,0, +17,0,13,0,63,0,182,255,186,255,33,0,185,255,135,255,158,255,192,255,2,0,208,255,230,255,34,0,202,255,244,255, +50,0,219,255,248,255,39,0,18,0,42,0,15,0,243,255,4,0,5,0,6,0,250,255,27,0,21,0,188,255,244,255, +34,0,213,255,231,255,203,255,165,255,233,255,183,255,197,255,61,0,26,0,36,0,57,0,247,255,41,0,42,0,20,0, +89,0,11,0,246,255,71,0,250,255,14,0,70,0,229,255,244,255,246,255,195,255,6,0,237,255,224,255,29,0,210,255, +221,255,8,0,171,255,214,255,222,255,128,255,229,255,8,0,191,255,6,0,15,0,218,255,239,255,232,255,237,255,246,255, +245,255,31,0,29,0,26,0,24,0,224,255,253,255,18,0,228,255,15,0,2,0,234,255,64,0,16,0,211,255,41,0, +38,0,8,0,48,0,64,0,74,0,41,0,4,0,25,0,15,0,11,0,255,255,217,255,247,255,22,0,30,0,2,0, +186,255,32,0,119,0,2,0,43,0,120,0,17,0,18,0,9,0,185,255,16,0,69,0,247,255,206,255,197,255,217,255, +192,255,152,255,230,255,13,0,234,255,253,255,9,0,3,0,252,255,246,255,22,0,16,0,26,0,98,0,70,0,5,0, +54,0,110,0,90,0,65,0,90,0,101,0,90,0,118,0,103,0,59,0,55,0,252,255,219,255,25,0,28,0,201,255, +99,255,88,255,146,255,74,255,255,254,37,255,44,255,113,255,207,255,207,255,252,255,15,0,6,0,79,0,58,0,16,0, +60,0,78,0,140,0,88,0,175,255,231,255,42,0,232,255,16,0,29,0,1,0,2,0,199,255,254,255,85,0,13,0, +16,0,78,0,93,0,165,0,164,0,74,0,81,0,124,0,87,0,44,0,106,0,131,0,19,0,254,255,15,0,197,255, +252,255,78,0,26,0,253,255,198,255,167,255,231,255,154,255,59,255,85,255,17,255,216,254,240,254,172,254,147,254,184,254, +175,254,251,254,61,255,242,254,253,254,113,255,156,255,174,255,216,255,254,255,18,0,1,0,24,0,97,0,91,0,29,0, +242,255,175,255,112,255,113,255,148,255,150,255,134,255,167,255,177,255,142,255,187,255,245,255,16,0,89,0,93,0,60,0, +113,0,127,0,107,0,103,0,53,0,25,0,242,255,134,255,78,255,50,255,31,255,52,255,45,255,42,255,31,255,35,255, +141,255,149,255,111,255,37,0,137,0,241,255,191,255,249,255,188,255,95,255,130,255,136,255,10,255,1,255,84,255,51,255, +70,255,165,255,200,255,255,255,37,0,43,0,43,0,230,255,214,255,225,255,138,255,108,255,81,255,246,254,41,255,98,255, +35,255,66,255,153,255,159,255,191,255,252,255,229,255,204,255,9,0,30,0,253,255,253,255,235,255,231,255,234,255,210,255, +255,255,230,255,139,255,197,255,232,255,231,255,19,0,168,255,166,255,31,0,165,255,153,255,59,0,42,0,79,0,131,0, +72,0,114,0,98,0,67,0,163,0,118,0,17,0,207,255,59,255,9,255,27,255,12,255,55,255,59,255,60,255,69,255, +217,254,172,254,202,254,187,254,213,254,189,254,146,254,196,254,160,254,115,254,169,254,183,254,244,254,67,255,21,255,4,255, +20,255,217,254,194,254,169,254,97,254,106,254,125,254,82,254,98,254,104,254,40,254,58,254,79,254,9,254,13,254,43,254, +32,254,114,254,201,254,206,254,255,254,117,255,12,0,127,0,155,0,179,0,2,1,122,1,207,1,231,1,37,2,16,2, +146,1,154,1,143,1,54,1,122,1,86,1,137,0,85,0,18,0,146,255,163,255,128,255,18,255,9,255,247,254,182,254, +120,254,58,254,64,254,98,254,77,254,43,254,17,254,249,253,218,253,193,253,217,253,244,253,2,254,76,254,101,254,25,254, +44,254,107,254,59,254,69,254,152,254,161,254,182,254,181,254,109,254,139,254,198,254,215,254,79,255,181,255,213,255,59,0, +128,0,154,0,223,0,228,0,234,0,85,1,132,1,102,1,142,1,230,1,32,2,72,2,106,2,136,2,194,2,199,2, +93,2,36,2,245,1,84,1,16,1,253,0,72,0,228,255,240,255,118,255,17,255,241,254,134,254,100,254,138,254,93,254, +60,254,64,254,45,254,23,254,4,254,51,254,113,254,52,254,2,254,0,254,153,253,109,253,167,253,110,253,61,253,154,253, +182,253,162,253,2,254,88,254,112,254,209,254,59,255,113,255,216,255,37,0,64,0,190,0,252,0,162,0,185,0,2,1, +229,0,0,1,30,1,252,0,84,1,195,1,159,1,186,1,104,2,199,2,200,2,12,3,71,3,48,3,48,3,28,3, +196,2,156,2,143,2,56,2,154,1,250,0,168,0,69,0,134,255,244,254,109,254,171,253,52,253,252,252,238,252,35,253, +245,252,160,252,190,252,161,252,58,252,3,252,144,251,20,251,226,250,136,250,62,250,10,250,165,249,153,249,206,249,10,250, +195,250,80,251,126,251,15,252,104,252,149,252,75,253,211,253,62,254,3,255,149,255,253,255,71,0,196,0,214,1,97,2, +180,2,200,3,92,4,113,4,188,4,182,4,255,4,101,5,45,5,108,5,150,5,239,4,164,4,63,4,79,3,167,2, +248,1,84,1,243,0,54,0,128,255,39,255,189,254,57,254,180,253,56,253,165,252,8,252,174,251,57,251,192,250,229,250, +33,251,49,251,129,251,210,251,240,251,48,252,189,252,77,253,131,253,125,253,85,253,30,253,23,253,3,253,247,252,98,253, +7,254,145,254,214,254,11,255,146,255,251,255,128,0,140,1,26,2,106,2,118,3,86,4,229,4,209,5,170,6,44,7, +124,7,228,7,112,8,96,8,224,7,128,7,182,6,169,5,180,4,175,3,85,3,105,3,191,2,209,1,21,1,79,0, +230,255,157,255,37,255,235,254,157,254,31,254,200,253,71,253,248,252,10,253,186,252,141,252,180,252,25,252,61,251,239,250, +188,250,147,250,105,250,55,250,102,250,202,250,58,251,202,251,94,252,7,253,126,253,138,253,148,253,240,253,216,254,191,255, +214,255,252,255,204,0,162,1,137,2,119,3,48,4,32,5,252,5,37,6,225,5,189,5,202,5,135,5,6,5,211,4, +134,4,253,3,183,3,136,3,109,3,130,3,106,3,85,3,110,3,79,3,241,2,148,2,83,2,249,1,64,1,159,0, +121,0,108,0,73,0,233,255,37,255,132,254,40,254,191,253,131,253,58,253,195,252,158,252,86,252,238,251,78,252,210,252, +30,253,205,253,78,254,167,254,38,255,40,255,113,255,82,0,146,0,151,0,206,0,193,0,7,1,151,1,176,1,119,1, +99,1,142,1,122,1,31,1,17,1,252,0,202,0,177,0,66,0,225,255,152,255,12,255,28,255,67,255,152,254,72,254, +87,254,245,253,202,253,244,253,4,254,248,253,200,253,182,253,206,253,169,253,134,253,210,253,3,254,170,253,96,253,94,253, +121,253,227,253,42,254,57,254,178,254,59,255,210,255,151,0,237,0,123,1,89,2,167,2,2,3,56,3,239,2,244,2, +181,2,110,2,173,2,22,2,67,1,37,1,177,0,99,0,125,0,80,0,73,0,7,0,104,255,251,254,103,254,7,254, +176,253,193,252,88,252,67,252,137,251,233,250,103,250,7,250,23,250,203,249,139,249,200,249,143,249,75,249,86,249,244,248, +223,248,86,249,53,249,3,249,178,249,162,250,125,251,124,252,124,253,157,254,222,255,217,0,149,1,250,1,44,2,215,2, +172,3,42,4,148,4,249,4,85,5,142,5,144,5,173,5,192,5,187,5,174,5,50,5,206,4,151,4,196,3,10,3, +169,2,221,1,8,1,82,0,208,255,169,255,54,255,65,255,52,0,111,0,58,0,100,0,82,0,91,0,108,0,234,255, +145,255,74,255,71,254,17,253,79,252,215,251,94,251,11,251,77,251,186,251,127,251,219,250,178,250,27,251,93,251,48,251, +82,251,131,252,3,254,188,254,168,255,153,1,58,3,70,4,171,5,27,7,24,8,150,8,119,8,22,8,188,7,86,7, +247,6,237,6,86,7,178,7,176,7,118,7,250,6,182,6,3,7,39,7,6,7,75,7,20,8,132,8,224,7,120,7, +17,8,255,7,52,7,245,6,97,6,183,4,249,2,14,2,76,1,150,255,0,254,183,253,136,253,16,253,224,252,165,252, +111,252,66,252,190,251,12,251,80,250,215,249,92,249,28,248,241,246,138,246,92,246,163,246,54,247,151,247,75,248,60,249, +253,249,168,250,91,251,147,252,252,253,151,254,234,254,170,255,136,0,30,1,104,1,22,2,21,3,115,3,174,3,84,4, +37,5,82,6,110,7,66,8,110,9,110,10,213,10,52,11,190,11,54,12,220,11,211,10,40,10,103,9,48,8,248,6, +142,5,96,4,13,3,179,0,242,254,36,254,164,252,46,251,49,250,195,248,81,247,3,246,199,244,49,244,235,243,148,243, +64,243,198,242,88,242,62,242,116,242,236,242,139,243,65,244,209,244,83,245,7,246,170,246,125,247,179,248,209,249,8,251, +248,251,64,252,68,253,254,254,49,0,95,1,181,2,0,4,202,5,71,7,228,7,222,8,53,10,195,10,205,10,250,10, +232,10,89,10,149,9,162,8,124,7,58,6,174,4,6,3,166,1,85,0,246,254,224,253,3,253,48,252,198,251,218,251, +201,251,130,251,183,251,70,252,109,252,53,252,239,251,112,251,181,250,248,249,29,249,100,248,50,248,9,248,179,247,185,247, +16,248,141,248,71,249,80,250,178,251,228,252,212,253,31,255,69,0,4,1,230,1,179,2,107,3,45,4,167,4,57,5, +28,6,22,7,226,7,53,8,225,8,184,9,139,9,166,9,61,10,117,9,72,8,113,7,188,5,7,4,238,2,113,1, +218,255,211,254,57,254,178,253,209,252,201,251,61,251,53,251,53,251,50,251,104,251,6,252,75,253,74,254,34,254,89,254, +103,255,191,255,179,255,241,255,244,255,174,255,241,254,253,253,104,253,253,252,25,253,243,253,221,254,202,255,187,0,200,1, +26,3,50,4,64,5,29,6,56,6,183,6,114,7,202,6,195,5,156,5,97,5,147,4,18,4,81,4,54,4,95,3, +26,3,52,3,151,2,184,1,36,1,201,0,25,0,215,254,255,253,105,253,115,252,61,252,180,252,240,252,212,253,7,255, +126,255,73,0,135,1,32,2,145,2,53,3,136,3,82,3,146,2,228,1,142,1,214,0,241,255,75,255,199,254,241,254, +162,255,103,0,202,1,136,3,83,5,139,7,80,9,97,10,166,11,210,12,110,13,152,13,54,13,115,12,119,11,43,10, +177,8,92,7,73,6,29,5,9,4,123,3,199,2,177,1,196,0,241,255,246,254,178,253,116,252,121,251,250,249,20,248, +127,246,22,245,224,243,170,242,156,241,75,241,196,240,31,240,91,240,113,240,137,240,68,241,140,241,186,241,11,242,10,242, +153,242,57,243,143,243,177,244,241,245,29,247,222,248,161,250,198,252,126,255,13,2,201,4,100,7,66,9,224,10,102,12, +156,13,53,14,140,14,86,15,208,15,206,15,204,15,12,15,71,14,73,14,155,13,143,12,85,12,244,11,194,10,87,9, +65,8,38,7,90,5,160,3,91,2,143,0,84,254,25,252,225,249,80,248,62,247,34,246,114,245,255,244,66,244,200,243, +203,243,150,243,200,242,164,241,125,240,67,239,248,237,224,236,1,236,127,235,214,235,174,236,68,237,239,237,142,239,227,241, +210,243,23,245,177,246,98,249,199,252,208,255,110,2,211,5,125,9,213,11,120,13,52,15,150,16,165,17,49,18,29,18, +194,17,193,16,169,15,109,15,126,15,201,15,21,16,93,15,49,14,54,13,32,12,244,10,119,9,253,7,10,7,197,5, +8,4,186,2,8,2,116,1,132,0,146,255,195,254,20,253,168,250,170,248,41,247,66,245,202,242,101,241,108,241,215,240, +227,239,241,239,24,240,238,239,228,239,222,239,37,240,232,240,18,242,102,243,150,244,46,246,11,248,192,249,50,252,224,254, +187,0,154,2,86,4,29,5,190,5,196,6,205,7,109,8,210,8,223,9,54,11,3,12,17,13,177,14,51,16,133,17, +106,18,248,18,231,19,202,20,6,21,237,20,106,20,158,19,178,18,248,16,2,15,169,13,234,11,196,9,251,7,255,5, +213,3,151,1,61,255,184,253,48,252,197,249,11,248,210,246,75,245,132,244,8,244,119,243,217,243,153,244,17,245,147,245, +54,246,63,247,37,248,106,248,196,248,62,249,218,249,188,250,31,251,75,251,10,252,26,253,41,254,248,254,239,255,124,1, +178,2,178,3,36,5,50,6,7,7,53,8,9,9,137,9,245,9,77,10,221,10,4,11,170,10,116,10,209,9,198,8, +12,8,49,7,0,6,198,4,117,3,5,2,28,0,230,253,42,252,122,250,118,248,10,247,91,246,158,245,209,244,91,244, +32,244,45,244,165,244,255,244,47,245,215,245,139,246,149,246,73,246,43,246,72,246,93,246,129,246,17,247,211,247,194,248, +8,250,33,251,72,252,247,253,130,255,191,0,231,1,168,2,95,3,44,4,91,4,63,4,148,4,249,4,26,5,53,5, +26,5,181,4,140,4,85,4,146,3,213,2,60,2,121,1,177,0,112,255,205,253,142,252,46,251,159,249,193,248,11,248, +230,246,231,245,36,245,80,244,203,243,205,243,232,243,47,244,218,244,111,245,24,246,3,247,185,247,8,249,211,250,141,251, +71,252,0,254,25,255,180,255,237,0,0,2,116,2,216,2,126,3,61,4,247,4,201,5,134,6,95,7,124,8,92,9, +100,10,194,11,212,12,246,13,204,14,143,14,229,13,225,12,182,11,159,10,153,8,133,6,92,5,195,3,53,2,137,1, +241,0,181,0,161,0,14,0,129,255,164,254,113,253,177,252,214,251,102,250,165,248,27,247,36,246,254,244,1,244,105,244, +94,245,27,246,33,247,109,248,5,250,213,251,176,253,204,255,158,1,214,2,3,4,0,5,189,5,159,6,45,7,35,7, +41,7,130,7,18,8,0,9,35,10,84,11,246,12,216,14,122,16,223,17,184,18,44,19,160,19,94,19,164,18,51,18, +69,17,195,15,69,14,152,12,197,10,209,8,54,7,81,6,246,4,89,3,124,2,102,1,240,255,168,254,34,253,203,251, +185,250,61,249,164,247,42,246,221,244,136,243,191,241,130,240,58,240,180,239,24,239,75,239,1,240,123,240,191,240,135,241, +117,242,243,242,201,243,217,244,139,245,98,246,68,247,27,248,121,249,31,251,3,253,107,255,222,1,22,4,83,6,223,8, +118,11,152,13,167,15,131,17,123,18,67,19,52,20,106,20,28,20,163,19,123,18,232,16,60,15,53,13,73,11,198,9, +10,8,49,6,202,4,131,3,0,2,96,0,249,254,242,253,130,252,99,250,126,248,211,246,243,244,39,243,83,241,156,239, +90,238,14,237,220,235,97,235,52,235,9,235,41,235,171,235,135,236,50,237,57,237,134,237,173,238,183,239,124,240,192,241, +103,243,62,245,222,246,215,247,86,249,147,251,25,253,127,254,192,0,41,3,107,5,114,7,129,9,228,11,149,13,167,14, +245,15,190,16,206,16,112,16,112,15,122,14,170,13,160,12,216,11,49,11,141,10,57,10,171,9,206,8,57,8,212,7, +14,7,203,5,175,4,156,3,222,1,33,0,218,254,156,253,104,252,68,251,138,250,41,250,9,249,139,247,186,246,112,246, +119,246,81,246,71,246,56,247,232,247,202,247,98,248,79,249,120,249,110,249,145,249,140,249,20,249,139,248,201,248,149,249, +64,250,13,251,99,252,40,254,1,0,168,1,64,3,190,4,141,5,212,5,111,6,0,7,243,6,45,7,246,7,126,8, +221,8,127,9,111,10,108,11,39,12,25,13,52,14,161,14,211,14,22,15,211,14,94,14,192,13,99,12,175,10,74,9, +37,8,148,6,138,4,15,3,241,1,102,0,41,255,144,254,13,254,151,253,3,253,2,252,199,250,177,249,230,248,243,247, +199,246,250,245,85,245,138,244,64,244,151,244,14,245,202,245,16,247,153,248,44,250,6,252,76,254,166,0,168,2,126,4, +124,6,70,8,146,9,161,10,110,11,242,11,69,12,56,12,19,12,5,12,220,11,10,12,102,12,59,12,30,12,95,12, +117,12,96,12,233,11,229,10,133,9,143,7,90,5,74,3,248,0,163,254,86,252,172,249,128,247,9,246,166,244,195,243, +67,243,157,242,67,242,31,242,247,241,46,242,160,242,18,243,106,243,160,243,41,244,170,244,182,244,71,245,141,246,197,247, +48,249,251,250,214,252,217,254,13,1,105,3,198,5,195,7,78,9,139,10,148,11,147,12,122,13,249,13,43,14,121,14, +154,14,61,14,229,13,94,13,43,12,251,10,236,9,120,8,238,6,101,5,165,3,154,1,58,255,255,252,224,250,170,248, +248,246,75,245,39,243,131,241,64,240,231,238,228,237,243,236,99,236,155,236,164,236,158,236,57,237,236,237,206,238,73,240, +231,241,160,243,164,245,149,247,136,249,208,251,26,254,51,0,17,2,102,3,198,4,172,6,48,8,73,9,155,10,238,11, +85,13,121,14,16,15,49,16,86,17,89,17,75,17,67,17,123,16,157,15,183,14,65,13,86,11,58,9,71,7,56,5, +211,2,156,0,112,254,82,252,178,250,253,248,46,247,215,245,179,244,182,243,10,243,140,242,82,242,58,242,8,242,222,241, +235,241,31,242,113,242,90,243,248,244,135,246,246,247,175,249,155,251,200,253,1,0,8,2,55,4,89,6,36,8,189,9, +0,11,41,12,99,13,56,14,168,14,209,14,237,14,102,15,193,15,216,15,60,16,156,16,182,16,177,16,127,16,104,16, +24,16,30,15,49,14,60,13,142,11,139,9,108,7,38,5,245,2,184,0,124,254,110,252,111,250,172,248,80,247,41,246, +221,244,112,243,124,242,233,241,94,241,17,241,163,240,68,240,170,240,250,240,39,241,252,241,170,242,130,243,63,245,185,246, +33,248,30,250,182,251,17,253,199,254,124,0,15,2,68,3,68,4,133,5,166,6,149,7,122,8,81,9,141,10,13,12, +96,13,155,14,142,15,107,16,121,17,18,18,26,18,15,18,213,17,77,17,153,16,184,15,181,14,175,13,137,12,47,11, +223,9,88,8,141,6,76,5,3,4,245,1,43,0,147,254,135,252,172,250,183,248,113,246,152,244,177,242,195,240,149,239, +117,238,77,237,185,236,19,236,91,235,101,235,205,235,69,236,69,237,76,238,12,239,84,240,6,242,156,243,46,245,121,246, +221,247,201,249,81,251,157,252,83,254,202,255,114,1,219,3,221,5,62,7,205,8,138,10,24,12,123,13,238,14,26,16, +187,16,62,17,141,17,161,17,132,17,227,16,64,16,130,15,25,14,245,12,208,11,231,9,126,8,103,7,127,5,111,3, +184,1,80,0,229,254,28,253,162,251,69,250,90,248,160,246,28,245,125,243,103,242,142,241,113,240,117,239,204,238,108,238, +96,238,160,238,43,239,249,239,238,240,4,242,138,243,79,245,195,246,110,248,116,250,46,252,11,254,69,0,70,2,15,4, +168,5,56,7,224,8,49,10,89,11,147,12,167,13,165,14,61,15,103,15,138,15,82,15,221,14,144,14,21,14,69,13, +53,12,45,11,33,10,132,8,246,6,230,5,88,4,117,2,197,0,240,254,51,253,168,251,225,249,19,248,178,246,173,245, +141,244,118,243,193,242,41,242,221,241,250,241,8,242,79,242,205,242,65,243,2,244,178,244,103,245,163,246,195,247,247,248, +151,250,249,251,123,253,55,255,200,0,156,2,43,4,85,5,33,7,215,8,212,9,205,10,161,11,47,12,176,12,227,12, +247,12,44,13,52,13,233,12,154,12,111,12,17,12,136,11,26,11,117,10,131,9,124,8,31,7,93,5,138,3,202,1, +251,255,14,254,58,252,81,250,80,248,235,246,233,245,214,244,37,244,120,243,141,242,72,242,138,242,182,242,12,243,124,243, +246,243,212,244,230,245,219,246,242,247,99,249,9,251,152,252,243,253,66,255,151,0,240,1,137,3,89,5,237,6,55,8, +140,9,227,10,227,11,181,12,227,13,239,14,69,15,147,15,194,15,96,15,67,15,36,15,68,14,128,13,200,12,160,11, +141,10,60,9,198,7,210,6,138,5,179,3,245,1,20,0,68,254,146,252,102,250,77,248,183,246,31,245,157,243,108,242, +75,241,57,240,145,239,113,239,80,239,8,239,73,239,249,239,107,240,9,241,46,242,59,243,77,244,253,245,203,247,98,249, +40,251,223,252,94,254,41,0,19,2,165,3,45,5,218,6,80,8,134,9,169,10,130,11,32,12,230,12,140,13,214,13, +23,14,49,14,2,14,177,13,19,13,36,12,20,11,10,10,16,9,185,7,13,6,92,4,110,2,133,0,225,254,10,253, +23,251,95,249,237,247,158,246,246,244,90,243,103,242,145,241,186,240,4,240,82,239,34,239,38,239,18,239,168,239,118,240, +48,241,156,242,34,244,86,245,217,246,129,248,67,250,39,252,203,253,119,255,65,1,210,2,90,4,239,5,131,7,5,9, +66,10,100,11,87,12,225,12,105,13,248,13,81,14,133,14,106,14,53,14,4,14,73,13,64,12,81,11,44,10,247,8, +168,7,251,5,157,4,70,3,33,1,83,255,112,254,35,253,83,251,233,249,203,248,181,247,161,246,128,245,177,244,68,244, +141,243,197,242,158,242,143,242,77,242,74,242,64,242,35,242,97,242,172,242,253,242,141,243,37,244,255,244,34,246,71,247, +153,248,5,250,163,251,140,253,51,255,208,0,137,2,225,3,120,5,66,7,88,8,91,9,138,10,110,11,102,12,79,13, +226,13,107,14,188,14,218,14,1,15,18,15,252,14,168,14,44,14,148,13,171,12,187,11,228,10,3,10,57,9,52,8, +250,6,239,5,161,4,28,3,220,1,170,0,139,255,82,254,190,252,86,251,51,250,25,249,31,248,25,247,15,246,44,245, +108,244,208,243,60,243,19,243,116,243,179,243,4,244,152,244,249,244,127,245,67,246,20,247,51,248,17,249,196,249,19,251, +80,252,77,253,154,254,190,255,198,0,233,1,185,2,127,3,108,4,71,5,26,6,163,6,44,7,34,8,204,8,12,9, +135,9,9,10,60,10,24,10,205,9,181,9,117,9,189,8,244,7,36,7,46,6,55,5,65,4,73,3,68,2,74,1, +122,0,143,255,157,254,0,254,92,253,157,252,41,252,188,251,37,251,176,250,83,250,235,249,142,249,54,249,193,248,98,248, +62,248,15,248,23,248,152,248,226,248,28,249,214,249,123,250,32,251,55,252,28,253,183,253,78,254,179,254,56,255,226,255, +92,0,238,0,150,1,2,2,63,2,162,2,95,3,240,3,26,4,116,4,186,4,169,4,186,4,152,4,12,4,146,3, +18,3,129,2,25,2,149,1,239,0,99,0,237,255,134,255,2,255,85,254,219,253,161,253,75,253,212,252,88,252,226,251, +151,251,97,251,27,251,244,250,237,250,223,250,217,250,205,250,219,250,28,251,75,251,147,251,0,252,50,252,139,252,52,253, +161,253,30,254,232,254,129,255,21,0,216,0,100,1,192,1,60,2,215,2,101,3,186,3,224,3,9,4,28,4,12,4, +35,4,63,4,21,4,254,3,15,4,245,3,180,3,78,3,244,2,214,2,139,2,0,2,82,1,147,0,24,0,107,255, +107,254,225,253,75,253,90,252,231,251,163,251,62,251,253,250,166,250,144,250,207,250,248,250,77,251,144,251,203,251,104,252, +183,252,27,253,30,254,122,254,156,254,144,255,42,0,100,0,15,1,141,1,240,1,157,2,63,3,228,3,92,4,180,4, +133,5,6,6,212,5,26,6,121,6,49,6,34,6,77,6,62,6,69,6,254,5,108,5,60,5,13,5,175,4,76,4, +152,3,248,2,131,2,171,1,204,0,41,0,105,255,149,254,172,253,192,252,252,251,66,251,162,250,53,250,216,249,101,249, +252,248,240,248,254,248,219,248,255,248,132,249,27,250,201,250,95,251,207,251,121,252,121,253,133,254,98,255,88,0,132,1, +140,2,150,3,176,4,129,5,27,6,143,6,245,6,104,7,156,7,210,7,35,8,253,7,161,7,92,7,251,6,151,6, +250,5,27,5,94,4,153,3,160,2,140,1,75,0,233,254,158,253,160,252,143,251,62,250,67,249,81,248,47,247,140,246, +1,246,78,245,221,244,60,244,184,243,162,243,89,243,76,243,159,243,175,243,240,243,148,244,85,245,58,246,14,247,23,248, +130,249,254,250,169,252,59,254,156,255,84,1,228,2,17,4,84,5,94,6,35,7,230,7,121,8,28,9,195,9,248,9, +42,10,143,10,141,10,82,10,95,10,43,10,140,9,15,9,92,8,71,7,95,6,85,5,244,3,195,2,164,1,102,0, +56,255,43,254,82,253,127,252,145,251,178,250,195,249,226,248,82,248,219,247,102,247,226,246,62,246,235,245,255,245,255,245, +248,245,85,246,250,246,113,247,216,247,139,248,102,249,78,250,104,251,140,252,95,253,1,254,211,254,159,255,27,0,159,0, +87,1,25,2,210,2,102,3,240,3,122,4,240,4,119,5,216,5,242,5,11,6,242,5,183,5,139,5,36,5,172,4, +69,4,226,3,167,3,27,3,102,2,46,2,213,1,66,1,216,0,74,0,18,0,75,0,25,0,197,255,198,255,209,255, +209,255,210,255,220,255,222,255,185,255,126,255,64,255,31,255,0,255,242,254,43,255,58,255,74,255,172,255,183,255,254,255, +207,0,255,0,67,1,252,1,11,2,22,2,56,2,199,1,139,1,71,1,191,0,142,0,9,0,128,255,143,255,63,255, +244,254,38,255,232,254,182,254,246,254,230,254,213,254,6,255,248,254,205,254,184,254,120,254,29,254,242,253,237,253,230,253, +0,254,80,254,158,254,220,254,55,255,166,255,22,0,137,0,209,0,13,1,116,1,136,1,92,1,142,1,187,1,183,1, +210,1,203,1,186,1,203,1,221,1,29,2,67,2,69,2,140,2,128,2,49,2,70,2,37,2,196,1,144,1,59,1, +242,0,167,0,29,0,204,255,149,255,67,255,63,255,66,255,5,255,250,254,59,255,81,255,34,255,46,255,91,255,63,255, +45,255,43,255,248,254,231,254,8,255,39,255,59,255,46,255,38,255,82,255,144,255,131,255,47,255,51,255,89,255,16,255, +206,254,164,254,81,254,2,254,137,253,72,253,122,253,92,253,87,253,201,253,242,253,22,254,112,254,148,254,182,254,235,254, +21,255,57,255,66,255,113,255,168,255,160,255,174,255,234,255,61,0,127,0,144,0,239,0,65,1,31,1,122,1,244,1, +188,1,192,1,24,2,36,2,42,2,12,2,195,1,198,1,187,1,98,1,47,1,24,1,202,0,151,0,188,0,175,0, +90,0,81,0,112,0,102,0,85,0,40,0,28,0,61,0,247,255,195,255,35,0,64,0,56,0,126,0,93,0,59,0, +142,0,118,0,62,0,66,0,219,255,163,255,177,255,78,255,73,255,134,255,57,255,58,255,150,255,194,255,245,255,242,255, +255,255,105,0,135,0,144,0,183,0,155,0,170,0,174,0,76,0,38,0,44,0,39,0,76,0,72,0,43,0,72,0, +91,0,96,0,147,0,195,0,175,0,183,0,24,1,54,1,30,1,52,1,35,1,38,1,82,1,39,1,9,1,0,1, +186,0,192,0,243,0,16,1,72,1,63,1,42,1,73,1,57,1,52,1,1,1,144,0,165,0,178,0,104,0,101,0, +36,0,202,255,238,255,237,255,217,255,241,255,227,255,2,0,21,0,238,255,58,0,160,0,194,0,5,1,53,1,65,1, +112,1,167,1,216,1,7,2,65,2,125,2,139,2,160,2,198,2,239,2,59,3,43,3,236,2,59,3,83,3,14,3, +54,3,41,3,229,2,12,3,209,2,102,2,105,2,14,2,143,1,101,1,223,0,71,0,1,0,125,255,214,254,68,254, +169,253,31,253,146,252,20,252,189,251,49,251,179,250,164,250,128,250,31,250,9,250,55,250,62,250,73,250,157,250,199,250, +216,250,86,251,189,251,9,252,224,252,119,253,152,253,56,254,219,254,54,255,255,255,176,0,21,1,206,1,108,2,207,2, +97,3,190,3,252,3,135,4,1,5,67,5,142,5,235,5,35,6,4,6,234,5,7,6,211,5,96,5,42,5,226,4, +61,4,160,3,87,3,6,3,95,2,196,1,49,1,60,0,112,255,245,254,7,254,20,253,181,252,62,252,143,251,35,251, +226,250,188,250,163,250,125,250,142,250,190,250,202,250,237,250,40,251,73,251,92,251,104,251,167,251,14,252,58,252,114,252, +218,252,43,253,190,253,119,254,204,254,48,255,216,255,103,0,243,0,116,1,228,1,117,2,226,2,248,2,20,3,150,3, +70,4,159,4,237,4,92,5,100,5,84,5,99,5,16,5,198,4,151,4,241,3,94,3,26,3,194,2,99,2,237,1, +159,1,141,1,13,1,124,0,101,0,48,0,200,255,115,255,30,255,218,254,132,254,56,254,69,254,53,254,217,253,186,253, +200,253,188,253,188,253,188,253,157,253,118,253,83,253,69,253,88,253,104,253,91,253,89,253,141,253,211,253,238,253,30,254, +125,254,190,254,14,255,112,255,149,255,214,255,46,0,96,0,210,0,15,1,223,0,46,1,165,1,179,1,195,1,175,1, +165,1,235,1,224,1,183,1,212,1,208,1,178,1,187,1,231,1,238,1,190,1,227,1,18,2,201,1,145,1,101,1, +31,1,250,0,180,0,110,0,38,0,142,255,46,255,244,254,150,254,121,254,72,254,7,254,232,253,126,253,82,253,137,253, +129,253,146,253,184,253,218,253,25,254,220,253,181,253,0,254,213,253,237,253,93,254,11,254,4,254,147,254,170,254,237,254, +128,255,170,255,207,255,54,0,134,0,152,0,178,0,4,1,14,1,229,0,3,1,246,0,185,0,191,0,203,0,218,0, +218,0,153,0,163,0,206,0,151,0,133,0,134,0,83,0,130,0,129,0,221,255,158,255,161,255,95,255,51,255,223,254, +155,254,183,254,128,254,67,254,72,254,30,254,87,254,176,254,148,254,192,254,236,254,229,254,28,255,4,255,250,254,52,255, +214,254,165,254,196,254,128,254,158,254,192,254,116,254,166,254,210,254,168,254,189,254,191,254,200,254,235,254,221,254,239,254, +235,254,221,254,57,255,109,255,100,255,148,255,214,255,255,255,15,0,67,0,104,0,18,0,4,0,89,0,42,0,199,255, +180,255,225,255,234,255,140,255,159,255,252,255,178,255,192,255,91,0,123,0,186,0,67,1,112,1,169,1,24,2,81,2, +95,2,150,2,196,2,132,2,97,2,129,2,68,2,41,2,85,2,28,2,244,1,53,2,125,2,142,2,74,2,19,2, +254,1,196,1,189,1,151,1,244,0,108,0,227,255,92,255,30,255,124,254,197,253,192,253,168,253,54,253,254,252,204,252, +119,252,72,252,64,252,45,252,15,252,2,252,252,251,242,251,245,251,27,252,80,252,107,252,161,252,29,253,129,253,203,253, +64,254,189,254,70,255,236,255,140,0,43,1,168,1,22,2,182,2,56,3,111,3,186,3,30,4,115,4,195,4,251,4, +16,5,53,5,117,5,127,5,73,5,33,5,245,4,158,4,72,4,231,3,118,3,40,3,206,2,69,2,187,1,45,1, +174,0,75,0,204,255,91,255,1,255,92,254,209,253,155,253,36,253,199,252,156,252,254,251,167,251,207,251,134,251,90,251, +163,251,160,251,179,251,37,252,100,252,138,252,203,252,0,253,53,253,132,253,238,253,93,254,189,254,12,255,80,255,157,255, +223,255,5,0,53,0,122,0,190,0,196,0,161,0,205,0,223,0,165,0,188,0,214,0,192,0,199,0,161,0,149,0, +196,0,178,0,185,0,191,0,129,0,113,0,71,0,10,0,252,255,182,255,169,255,168,255,26,255,254,254,25,255,230,254, +72,255,131,255,86,255,212,255,38,0,3,0,67,0,120,0,144,0,155,0,86,0,77,0,120,0,107,0,103,0,111,0, +95,0,47,0,25,0,106,0,148,0,109,0,136,0,169,0,170,0,188,0,161,0,109,0,72,0,248,255,154,255,127,255, +128,255,58,255,222,254,216,254,200,254,156,254,222,254,45,255,24,255,30,255,106,255,137,255,107,255,104,255,134,255,143,255, +158,255,183,255,163,255,121,255,97,255,94,255,122,255,177,255,241,255,47,0,119,0,177,0,188,0,201,0,239,0,36,1, +89,1,89,1,92,1,138,1,141,1,126,1,97,1,42,1,67,1,83,1,15,1,248,0,208,0,160,0,178,0,107,0, +20,0,55,0,55,0,34,0,43,0,6,0,229,255,183,255,116,255,124,255,110,255,32,255,7,255,255,254,204,254,158,254, +96,254,12,254,19,254,52,254,242,253,4,254,94,254,43,254,66,254,201,254,175,254,160,254,213,254,191,254,4,255,76,255, +20,255,39,255,85,255,113,255,192,255,193,255,200,255,38,0,64,0,101,0,187,0,209,0,17,1,117,1,125,1,111,1, +132,1,170,1,203,1,222,1,6,2,45,2,65,2,93,2,74,2,44,2,86,2,75,2,240,1,217,1,194,1,109,1, +40,1,197,0,99,0,47,0,210,255,163,255,122,255,202,254,144,254,178,254,38,254,237,253,15,254,156,253,76,253,32,253, +234,252,20,253,206,252,59,252,44,252,7,252,218,251,217,251,193,251,230,251,240,251,235,251,87,252,122,252,140,252,242,252, +241,252,35,253,172,253,201,253,55,254,195,254,184,254,5,255,156,255,208,255,4,0,69,0,127,0,214,0,35,1,112,1, +217,1,70,2,133,2,164,2,229,2,6,3,247,2,39,3,55,3,228,2,184,2,157,2,80,2,26,2,10,2,203,1, +92,1,38,1,30,1,237,0,180,0,122,0,52,0,33,0,225,255,59,255,215,254,150,254,22,254,215,253,192,253,95,253, +28,253,253,252,183,252,162,252,188,252,193,252,223,252,242,252,4,253,113,253,194,253,208,253,34,254,135,254,192,254,253,254, +34,255,26,255,28,255,101,255,163,255,141,255,177,255,247,255,212,255,228,255,58,0,85,0,134,0,173,0,175,0,227,0, +236,0,227,0,19,1,17,1,19,1,56,1,35,1,24,1,35,1,27,1,32,1,254,0,245,0,57,1,29,1,200,0, +221,0,238,0,181,0,157,0,143,0,75,0,32,0,40,0,24,0,233,255,178,255,133,255,108,255,94,255,91,255,30,255, +203,254,251,254,26,255,193,254,179,254,179,254,129,254,142,254,129,254,121,254,158,254,119,254,155,254,253,254,235,254,6,255, +62,255,72,255,137,255,119,255,87,255,196,255,237,255,253,255,62,0,52,0,126,0,250,0,222,0,203,0,3,1,64,1, +133,1,150,1,172,1,239,1,250,1,251,1,36,2,39,2,7,2,241,1,1,2,23,2,236,1,156,1,133,1,122,1, +35,1,240,0,255,0,159,0,50,0,63,0,9,0,164,255,162,255,148,255,90,255,68,255,74,255,18,255,152,254,133,254, +158,254,86,254,92,254,134,254,74,254,85,254,118,254,87,254,113,254,136,254,156,254,208,254,191,254,193,254,237,254,9,255, +106,255,179,255,181,255,209,255,238,255,67,0,171,0,167,0,161,0,152,0,134,0,189,0,163,0,78,0,91,0,94,0, +95,0,103,0,49,0,53,0,78,0,57,0,78,0,44,0,223,255,195,255,156,255,171,255,193,255,104,255,59,255,43,255, +233,254,252,254,37,255,30,255,51,255,78,255,134,255,218,255,245,255,235,255,231,255,50,0,133,0,80,0,77,0,179,0, +172,0,164,0,220,0,228,0,29,1,82,1,47,1,73,1,79,1,255,0,18,1,62,1,246,0,183,0,179,0,163,0, +139,0,114,0,63,0,252,255,192,255,153,255,137,255,120,255,77,255,19,255,237,254,214,254,165,254,155,254,233,254,253,254, +209,254,244,254,16,255,249,254,245,254,213,254,245,254,81,255,46,255,39,255,144,255,149,255,128,255,190,255,246,255,26,0, +79,0,180,0,222,0,149,0,177,0,10,1,25,1,91,1,97,1,23,1,71,1,90,1,52,1,85,1,46,1,243,0, +9,1,245,0,209,0,181,0,139,0,137,0,124,0,103,0,84,0,33,0,15,0,241,255,194,255,208,255,152,255,59,255, +85,255,120,255,126,255,134,255,121,255,149,255,153,255,115,255,167,255,205,255,172,255,186,255,208,255,217,255,5,0,42,0, +47,0,68,0,160,0,246,0,215,0,201,0,60,1,128,1,93,1,112,1,164,1,158,1,164,1,192,1,194,1,217,1, +225,1,208,1,5,2,14,2,216,1,14,2,36,2,194,1,211,1,48,2,17,2,216,1,252,1,247,1,165,1,178,1, +204,1,133,1,138,1,168,1,128,1,147,1,103,1,22,1,81,1,31,1,161,0,210,0,204,0,108,0,87,0,47,0, +255,255,249,255,20,0,78,0,36,0,233,255,19,0,239,255,168,255,162,255,84,255,27,255,63,255,51,255,19,255,247,254, +194,254,198,254,205,254,169,254,213,254,13,255,250,254,56,255,152,255,139,255,154,255,207,255,206,255,246,255,43,0,70,0, +125,0,145,0,202,0,52,1,31,1,68,1,240,1,245,1,189,1,16,2,94,2,115,2,126,2,128,2,118,2,111,2, +146,2,138,2,100,2,155,2,149,2,52,2,70,2,79,2,234,1,177,1,179,1,174,1,138,1,67,1,245,0,193,0, +179,0,116,0,16,0,2,0,224,255,150,255,141,255,48,255,173,254,185,254,178,254,97,254,90,254,151,254,180,254,113,254, +44,254,84,254,144,254,161,254,146,254,133,254,161,254,158,254,195,254,71,255,83,255,19,255,75,255,137,255,159,255,214,255, +15,0,71,0,121,0,137,0,127,0,131,0,193,0,15,1,57,1,68,1,40,1,12,1,29,1,65,1,94,1,100,1, +110,1,107,1,70,1,81,1,116,1,119,1,146,1,132,1,87,1,112,1,121,1,71,1,251,0,187,0,191,0,120,0, +250,255,5,0,245,255,148,255,130,255,118,255,112,255,138,255,106,255,75,255,55,255,27,255,46,255,35,255,3,255,6,255, +234,254,228,254,252,254,214,254,202,254,27,255,82,255,44,255,47,255,165,255,206,255,152,255,197,255,37,0,74,0,86,0, +127,0,215,0,22,1,42,1,71,1,81,1,107,1,156,1,152,1,150,1,172,1,166,1,149,1,144,1,183,1,227,1, +226,1,220,1,177,1,145,1,187,1,163,1,100,1,78,1,20,1,237,0,221,0,165,0,127,0,74,0,27,0,45,0, +49,0,41,0,15,0,228,255,222,255,163,255,125,255,188,255,153,255,97,255,166,255,182,255,119,255,106,255,161,255,199,255, +170,255,203,255,17,0,27,0,75,0,75,0,29,0,141,0,235,0,195,0,186,0,185,0,194,0,252,0,27,1,31,1, +43,1,79,1,114,1,131,1,150,1,123,1,129,1,193,1,142,1,86,1,88,1,34,1,69,1,88,1,250,0,23,1, +246,0,106,0,139,0,109,0,242,255,31,0,45,0,226,255,227,255,1,0,254,255,186,255,150,255,204,255,216,255,206,255, +218,255,198,255,184,255,196,255,229,255,217,255,174,255,246,255,21,0,204,255,1,0,44,0,246,255,10,0,10,0,221,255, +229,255,1,0,0,0,190,255,188,255,22,0,251,255,204,255,208,255,152,255,142,255,136,255,87,255,92,255,47,255,45,255, +121,255,37,255,232,254,43,255,17,255,19,255,92,255,86,255,59,255,62,255,97,255,105,255,49,255,40,255,42,255,53,255, +120,255,76,255,21,255,115,255,126,255,54,255,109,255,176,255,160,255,192,255,22,0,19,0,5,0,59,0,43,0,61,0, +179,0,132,0,17,0,51,0,92,0,104,0,127,0,141,0,147,0,119,0,144,0,185,0,123,0,122,0,130,0,35,0, +17,0,251,255,186,255,213,255,154,255,83,255,171,255,166,255,75,255,65,255,41,255,5,255,234,254,208,254,230,254,234,254, +212,254,211,254,197,254,204,254,224,254,212,254,228,254,19,255,34,255,38,255,70,255,100,255,141,255,247,255,38,0,0,0, +92,0,214,0,195,0,211,0,255,0,7,1,90,1,124,1,89,1,146,1,155,1,85,1,113,1,152,1,148,1,170,1, +145,1,115,1,181,1,216,1,153,1,123,1,133,1,90,1,8,1,231,0,252,0,219,0,118,0,72,0,49,0,233,255, +193,255,180,255,129,255,76,255,38,255,254,254,231,254,229,254,204,254,152,254,152,254,178,254,159,254,157,254,140,254,79,254, +108,254,159,254,131,254,132,254,141,254,139,254,198,254,239,254,2,255,58,255,112,255,185,255,246,255,252,255,33,0,90,0, +110,0,120,0,124,0,157,0,225,0,0,1,248,0,28,1,114,1,132,1,77,1,96,1,148,1,138,1,158,1,196,1, +172,1,150,1,130,1,75,1,57,1,89,1,74,1,6,1,233,0,220,0,131,0,51,0,46,0,14,0,222,255,212,255, +184,255,154,255,124,255,41,255,20,255,92,255,60,255,230,254,248,254,253,254,223,254,245,254,215,254,170,254,240,254,23,255, +230,254,242,254,31,255,35,255,27,255,26,255,64,255,130,255,139,255,141,255,203,255,241,255,251,255,0,0,189,255,188,255, +52,0,46,0,247,255,71,0,80,0,24,0,81,0,112,0,93,0,122,0,132,0,141,0,134,0,74,0,97,0,135,0, +34,0,218,255,9,0,18,0,227,255,205,255,196,255,153,255,104,255,109,255,113,255,58,255,30,255,19,255,230,254,239,254, +246,254,191,254,183,254,166,254,136,254,180,254,131,254,65,254,146,254,132,254,82,254,191,254,226,254,207,254,26,255,80,255, +104,255,101,255,86,255,129,255,128,255,125,255,192,255,196,255,162,255,144,255,138,255,200,255,231,255,210,255,233,255,239,255, +239,255,250,255,252,255,31,0,40,0,53,0,107,0,91,0,114,0,172,0,91,0,31,0,55,0,65,0,70,0,18,0, +247,255,35,0,8,0,230,255,212,255,191,255,238,255,224,255,168,255,176,255,147,255,162,255,197,255,117,255,110,255,159,255, +139,255,171,255,203,255,189,255,178,255,133,255,168,255,236,255,174,255,122,255,132,255,138,255,191,255,239,255,225,255,191,255, +172,255,207,255,240,255,232,255,245,255,4,0,250,255,17,0,74,0,88,0,78,0,116,0,128,0,83,0,95,0,127,0, +114,0,106,0,84,0,69,0,72,0,55,0,68,0,80,0,48,0,63,0,105,0,117,0,129,0,131,0,120,0,97,0, +67,0,68,0,88,0,94,0,59,0,19,0,65,0,131,0,134,0,137,0,139,0,114,0,116,0,141,0,139,0,132,0, +163,0,158,0,98,0,101,0,106,0,64,0,82,0,66,0,248,255,14,0,12,0,206,255,244,255,18,0,222,255,203,255, +193,255,153,255,116,255,88,255,72,255,52,255,18,255,19,255,25,255,244,254,0,255,62,255,33,255,245,254,23,255,36,255, +44,255,62,255,54,255,63,255,58,255,50,255,79,255,70,255,101,255,155,255,98,255,86,255,128,255,109,255,133,255,154,255, +150,255,173,255,129,255,138,255,223,255,218,255,243,255,22,0,251,255,22,0,15,0,21,0,104,0,67,0,36,0,86,0, +55,0,57,0,66,0,17,0,54,0,60,0,11,0,60,0,82,0,49,0,55,0,60,0,54,0,36,0,14,0,13,0, +22,0,44,0,57,0,41,0,240,255,177,255,226,255,39,0,9,0,0,0,3,0,225,255,194,255,141,255,150,255,192,255, +145,255,163,255,227,255,196,255,185,255,188,255,178,255,188,255,143,255,134,255,181,255,174,255,180,255,170,255,148,255,198,255, +180,255,145,255,211,255,248,255,28,0,61,0,28,0,84,0,140,0,87,0,101,0,124,0,98,0,123,0,111,0,97,0, +150,0,131,0,107,0,162,0,154,0,147,0,221,0,225,0,173,0,169,0,130,0,71,0,108,0,154,0,119,0,101,0, +91,0,39,0,63,0,100,0,28,0,32,0,99,0,33,0,245,255,45,0,73,0,95,0,50,0,203,255,216,255,228,255, +160,255,161,255,183,255,181,255,204,255,207,255,215,255,243,255,234,255,236,255,21,0,34,0,254,255,233,255,20,0,68,0, +93,0,136,0,164,0,153,0,150,0,177,0,190,0,138,0,115,0,171,0,169,0,117,0,137,0,198,0,218,0,202,0, +206,0,204,0,150,0,130,0,155,0,153,0,145,0,146,0,156,0,150,0,128,0,172,0,216,0,216,0,240,0,210,0, +161,0,159,0,121,0,138,0,135,0,29,0,79,0,138,0,251,255,188,255,225,255,23,0,76,0,217,255,118,255,125,255, +61,255,69,255,105,255,55,255,67,255,254,254,178,254,39,255,25,255,178,254,246,254,237,254,196,254,32,255,34,255,235,254, +245,254,228,254,232,254,2,255,245,254,32,255,58,255,20,255,115,255,209,255,146,255,199,255,56,0,41,0,97,0,160,0, +130,0,177,0,183,0,150,0,241,0,8,1,238,0,28,1,11,1,14,1,48,1,248,0,254,0,55,1,41,1,26,1, +243,0,180,0,166,0,154,0,125,0,80,0,34,0,7,0,207,255,145,255,104,255,49,255,5,255,232,254,235,254,254,254, +217,254,206,254,201,254,101,254,103,254,201,254,140,254,70,254,110,254,60,254,5,254,58,254,66,254,67,254,153,254,201,254, +210,254,0,255,38,255,63,255,102,255,152,255,191,255,215,255,44,0,127,0,128,0,183,0,225,0,181,0,230,0,7,1, +246,0,93,1,100,1,18,1,63,1,45,1,9,1,73,1,37,1,25,1,100,1,32,1,218,0,16,1,237,0,120,0, +105,0,134,0,61,0,247,255,244,255,168,255,62,255,37,255,44,255,44,255,7,255,235,254,241,254,192,254,195,254,3,255, +198,254,148,254,167,254,115,254,99,254,126,254,107,254,133,254,155,254,130,254,179,254,243,254,15,255,102,255,134,255,73,255, +134,255,223,255,182,255,224,255,49,0,6,0,24,0,80,0,63,0,85,0,108,0,129,0,151,0,104,0,150,0,237,0, +201,0,167,0,126,0,108,0,133,0,42,0,24,0,94,0,32,0,47,0,63,0,209,255,244,255,22,0,195,255,158,255, +90,255,93,255,161,255,100,255,68,255,63,255,41,255,101,255,73,255,19,255,54,255,11,255,1,255,47,255,11,255,2,255, +21,255,27,255,30,255,19,255,75,255,89,255,36,255,91,255,119,255,102,255,155,255,146,255,140,255,195,255,198,255,196,255, +179,255,173,255,221,255,198,255,176,255,192,255,157,255,175,255,209,255,184,255,201,255,243,255,25,0,18,0,218,255,245,255, +29,0,6,0,18,0,21,0,242,255,230,255,230,255,210,255,164,255,181,255,216,255,156,255,150,255,191,255,157,255,158,255, +158,255,150,255,210,255,206,255,207,255,17,0,237,255,203,255,226,255,190,255,167,255,186,255,207,255,214,255,220,255,18,0, +28,0,9,0,40,0,12,0,27,0,131,0,98,0,40,0,50,0,32,0,62,0,74,0,58,0,105,0,66,0,26,0, +89,0,64,0,29,0,59,0,25,0,249,255,231,255,200,255,185,255,117,255,71,255,96,255,73,255,57,255,54,255,12,255, +30,255,62,255,58,255,95,255,110,255,95,255,132,255,152,255,159,255,197,255,192,255,183,255,226,255,245,255,247,255,253,255, +237,255,14,0,74,0,60,0,57,0,110,0,116,0,107,0,151,0,161,0,120,0,142,0,197,0,172,0,137,0,167,0, +156,0,94,0,76,0,90,0,98,0,100,0,92,0,70,0,33,0,16,0,30,0,24,0,251,255,239,255,246,255,234,255, +206,255,199,255,166,255,123,255,139,255,128,255,83,255,95,255,90,255,55,255,67,255,86,255,83,255,61,255,53,255,100,255, +134,255,131,255,144,255,195,255,247,255,201,255,181,255,53,0,67,0,236,255,28,0,40,0,12,0,86,0,96,0,86,0, +165,0,156,0,101,0,131,0,155,0,142,0,129,0,129,0,161,0,197,0,189,0,133,0,103,0,118,0,98,0,77,0, +96,0,75,0,36,0,34,0,9,0,218,255,216,255,231,255,206,255,176,255,178,255,173,255,162,255,139,255,75,255,59,255, +93,255,61,255,41,255,93,255,85,255,51,255,79,255,98,255,110,255,122,255,88,255,90,255,132,255,109,255,96,255,147,255, +186,255,207,255,220,255,241,255,6,0,244,255,254,255,47,0,57,0,74,0,81,0,62,0,121,0,160,0,140,0,188,0, +203,0,153,0,179,0,209,0,180,0,160,0,160,0,164,0,136,0,112,0,129,0,110,0,90,0,127,0,130,0,95,0, +80,0,77,0,78,0,66,0,59,0,63,0,38,0,4,0,250,255,10,0,25,0,252,255,215,255,200,255,185,255,176,255, +161,255,151,255,158,255,149,255,165,255,188,255,160,255,155,255,172,255,173,255,203,255,202,255,166,255,177,255,186,255,183,255, +206,255,228,255,236,255,247,255,19,0,34,0,24,0,45,0,71,0,81,0,113,0,110,0,95,0,125,0,127,0,122,0, +135,0,128,0,131,0,122,0,115,0,152,0,153,0,143,0,156,0,130,0,133,0,153,0,126,0,136,0,140,0,92,0, +89,0,106,0,100,0,91,0,75,0,61,0,41,0,17,0,242,255,204,255,225,255,244,255,211,255,218,255,215,255,182,255, +195,255,181,255,155,255,176,255,172,255,162,255,152,255,140,255,178,255,172,255,156,255,205,255,188,255,183,255,244,255,218,255, +225,255,28,0,248,255,253,255,26,0,221,255,218,255,18,0,35,0,53,0,81,0,99,0,83,0,70,0,119,0,131,0, +108,0,144,0,155,0,135,0,151,0,148,0,140,0,146,0,137,0,128,0,130,0,144,0,149,0,138,0,143,0,123,0, +96,0,100,0,65,0,37,0,54,0,39,0,21,0,14,0,5,0,19,0,255,255,243,255,10,0,237,255,233,255,247,255, +194,255,205,255,253,255,238,255,239,255,230,255,226,255,2,0,228,255,215,255,233,255,190,255,197,255,229,255,202,255,203,255, +208,255,213,255,249,255,248,255,13,0,51,0,22,0,22,0,48,0,33,0,37,0,45,0,33,0,40,0,58,0,75,0, +60,0,45,0,73,0,67,0,44,0,62,0,59,0,57,0,75,0,55,0,54,0,72,0,50,0,47,0,60,0,51,0, +76,0,104,0,76,0,53,0,46,0,33,0,48,0,46,0,6,0,9,0,30,0,21,0,13,0,249,255,234,255,245,255, +234,255,226,255,241,255,243,255,253,255,2,0,241,255,241,255,244,255,238,255,237,255,245,255,5,0,2,0,5,0,28,0, +9,0,3,0,45,0,38,0,19,0,34,0,24,0,10,0,16,0,31,0,58,0,67,0,51,0,26,0,20,0,43,0, +33,0,7,0,13,0,7,0,19,0,42,0,28,0,39,0,45,0,15,0,23,0,35,0,22,0,34,0,50,0,50,0, +25,0,3,0,26,0,42,0,35,0,39,0,41,0,52,0,38,0,14,0,50,0,60,0,27,0,56,0,64,0,32,0, +61,0,88,0,59,0,38,0,43,0,55,0,60,0,59,0,61,0,70,0,85,0,87,0,64,0,39,0,45,0,65,0, +50,0,33,0,49,0,47,0,28,0,10,0,248,255,254,255,252,255,245,255,11,0,4,0,246,255,247,255,229,255,243,255, +253,255,229,255,5,0,13,0,230,255,248,255,251,255,236,255,0,0,250,255,253,255,14,0,16,0,42,0,28,0,253,255, +24,0,26,0,22,0,41,0,18,0,21,0,45,0,42,0,65,0,68,0,36,0,42,0,52,0,53,0,58,0,59,0, +71,0,69,0,64,0,75,0,75,0,92,0,97,0,58,0,55,0,63,0,42,0,53,0,54,0,32,0,41,0,40,0, +21,0,28,0,28,0,7,0,6,0,11,0,250,255,245,255,3,0,245,255,231,255,241,255,249,255,5,0,12,0,4,0, +15,0,16,0,255,255,11,0,25,0,15,0,13,0,23,0,32,0,31,0,37,0,51,0,51,0,57,0,70,0,54,0, +47,0,59,0,60,0,74,0,84,0,70,0,71,0,81,0,78,0,79,0,88,0,92,0,92,0,93,0,97,0,99,0, +96,0,95,0,101,0,106,0,105,0,99,0,90,0,92,0,92,0,66,0,52,0,61,0,54,0,46,0,40,0,26,0, +24,0,14,0,7,0,21,0,7,0,241,255,249,255,239,255,233,255,255,255,244,255,219,255,235,255,251,255,238,255,224,255, +229,255,244,255,238,255,227,255,237,255,240,255,233,255,249,255,254,255,238,255,247,255,249,255,232,255,253,255,17,0,6,0, +13,0,26,0,26,0,31,0,35,0,50,0,65,0,67,0,90,0,107,0,87,0,99,0,132,0,131,0,129,0,133,0, +114,0,96,0,91,0,77,0,58,0,56,0,56,0,46,0,38,0,22,0,7,0,11,0,4,0,244,255,244,255,239,255, +232,255,240,255,237,255,238,255,244,255,222,255,212,255,230,255,230,255,226,255,231,255,230,255,240,255,239,255,225,255,242,255, +249,255,230,255,243,255,245,255,226,255,236,255,231,255,208,255,223,255,243,255,253,255,8,0,8,0,17,0,38,0,49,0, +62,0,72,0,80,0,91,0,96,0,106,0,104,0,79,0,78,0,98,0,102,0,103,0,99,0,84,0,76,0,81,0, +83,0,75,0,67,0,68,0,66,0,60,0,54,0,50,0,49,0,39,0,29,0,35,0,31,0,15,0,16,0,22,0, +16,0,14,0,15,0,11,0,7,0,10,0,13,0,8,0,255,255,254,255,3,0,7,0,7,0,4,0,255,255,5,0, +13,0,7,0,8,0,22,0,25,0,27,0,33,0,25,0,23,0,41,0,48,0,38,0,43,0,53,0,58,0,63,0, +61,0,56,0,60,0,60,0,58,0,57,0,47,0,43,0,49,0,53,0,49,0,34,0,32,0,40,0,31,0,36,0, +51,0,40,0,27,0,22,0,19,0,23,0,24,0,27,0,30,0,30,0,38,0,29,0,19,0,36,0,37,0,28,0, +28,0,22,0,34,0,43,0,26,0,20,0,22,0,30,0,40,0,25,0,30,0,42,0,28,0,31,0,30,0,24,0, +40,0,26,0,14,0,35,0,29,0,15,0,15,0,23,0,46,0,33,0,10,0,25,0,30,0,33,0,39,0,27,0, +25,0,27,0,25,0,25,0,14,0,16,0,23,0,13,0,13,0,9,0,6,0,11,0,250,255,253,255,16,0,3,0, +8,0,18,0,255,255,0,0,18,0,26,0,29,0,21,0,30,0,43,0,33,0,17,0,7,0,14,0,19,0,10,0, +18,0,22,0,19,0,28,0,12,0,5,0,30,0,23,0,14,0,27,0,24,0,20,0,19,0,22,0,42,0,46,0, +33,0,29,0,27,0,28,0,33,0,30,0,15,0,2,0,11,0,17,0,19,0,29,0,19,0,11,0,17,0,13,0, +21,0,20,0,251,255,249,255,0,0,6,0,21,0,11,0,5,0,14,0,6,0,18,0,33,0,22,0,31,0,39,0, +23,0,19,0,14,0,9,0,24,0,30,0,14,0,2,0,11,0,15,0,252,255,247,255,2,0,6,0,10,0,10,0, +8,0,5,0,3,0,8,0,2,0,254,255,18,0,18,0,3,0,20,0,32,0,18,0,13,0,16,0,18,0,21,0, +19,0,14,0,13,0,11,0,6,0,12,0,20,0,16,0,19,0,17,0,255,255,255,255,5,0,4,0,7,0,254,255, +253,255,16,0,12,0,8,0,20,0,16,0,18,0,14,0,250,255,7,0,21,0,9,0,15,0,16,0,254,255,254,255, +3,0,253,255,249,255,244,255,248,255,1,0,2,0,8,0,13,0,8,0,5,0,3,0,7,0,15,0,10,0,11,0, +11,0,252,255,2,0,17,0,16,0,23,0,29,0,17,0,17,0,17,0,13,0,19,0,10,0,253,255,1,0,253,255, +249,255,253,255,249,255,253,255,7,0,254,255,253,255,10,0,9,0,5,0,10,0,11,0,11,0,17,0,19,0,17,0, +14,0,7,0,1,0,4,0,13,0,14,0,11,0,12,0,1,0,243,255,255,255,11,0,10,0,13,0,13,0,12,0, +16,0,12,0,12,0,19,0,13,0,0,0,2,0,12,0,15,0,16,0,19,0,10,0,8,0,24,0,23,0,19,0, +24,0,20,0,24,0,21,0,9,0,18,0,22,0,16,0,11,0,251,255,6,0,25,0,11,0,14,0,18,0,4,0, +13,0,13,0,3,0,15,0,11,0,5,0,10,0,5,0,8,0,4,0,253,255,10,0,4,0,1,0,17,0,5,0, +247,255,4,0,13,0,11,0,2,0,8,0,14,0,0,0,12,0,30,0,13,0,10,0,17,0,13,0,13,0,7,0, +12,0,24,0,13,0,16,0,27,0,21,0,24,0,21,0,9,0,21,0,27,0,18,0,22,0,17,0,8,0,20,0, +21,0,0,0,254,255,10,0,10,0,4,0,255,255,8,0,18,0,0,0,5,0,24,0,7,0,7,0,22,0,11,0, +18,0,21,0,2,0,12,0,14,0,252,255,3,0,4,0,2,0,9,0,1,0,254,255,0,0,251,255,0,0,4,0, +3,0,1,0,255,255,4,0,5,0,7,0,10,0,247,255,242,255,255,255,245,255,241,255,1,0,7,0,5,0,2,0, +2,0,3,0,3,0,12,0,12,0,5,0,13,0,6,0,255,255,15,0,13,0,8,0,9,0,3,0,16,0,21,0, +5,0,17,0,21,0,255,255,2,0,7,0,0,0,6,0,5,0,3,0,8,0,1,0,254,255,254,255,246,255,252,255, +4,0,252,255,254,255,11,0,12,0,4,0,2,0,8,0,7,0,253,255,252,255,0,0,251,255,251,255,254,255,247,255, +246,255,2,0,2,0,250,255,4,0,9,0,252,255,254,255,4,0,254,255,7,0,13,0,1,0,3,0,9,0,5,0, +10,0,9,0,1,0,6,0,5,0,255,255,3,0,6,0,8,0,9,0,9,0,9,0,4,0,0,0,5,0,4,0, +252,255,249,255,0,0,7,0,4,0,1,0,7,0,9,0,0,0,252,255,3,0,253,255,248,255,11,0,9,0,251,255, +9,0,10,0,252,255,1,0,1,0,1,0,2,0,248,255,253,255,4,0,253,255,3,0,6,0,252,255,252,255,252,255, +251,255,251,255,252,255,254,255,246,255,247,255,0,0,248,255,249,255,4,0,255,255,249,255,254,255,254,255,253,255,0,0, +6,0,0,0,247,255,251,255,253,255,255,255,1,0,250,255,254,255,1,0,252,255,6,0,5,0,255,255,10,0,6,0, +0,0,5,0,251,255,1,0,10,0,249,255,252,255,7,0,254,255,253,255,250,255,248,255,0,0,254,255,253,255,4,0, +254,255,250,255,254,255,253,255,253,255,254,255,254,255,254,255,0,0,3,0,6,0,6,0,4,0,1,0,2,0,0,0, +252,255,253,255,253,255,253,255,255,255,255,255,253,255,249,255,249,255,255,255,1,0,253,255,252,255,255,255,254,255,253,255, +255,255,1,0,3,0,8,0,8,0,4,0,3,0,5,0,6,0,5,0,4,0,6,0,8,0,7,0,5,0,0,0, +1,0,3,0,255,255,0,0,1,0,249,255,246,255,251,255,254,255,255,255,253,255,250,255,252,255,0,0,0,0,253,255, +253,255,252,255,249,255,251,255,254,255,251,255,251,255,252,255,252,255,251,255,249,255,254,255,255,255,252,255,254,255,253,255, +250,255,254,255,254,255,253,255,0,0,252,255,251,255,254,255,253,255,255,255,1,0,255,255,255,255,255,255,253,255,254,255, +254,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255,254,255,255,255,1,0,0,0,1,0,2,0,254,255, +252,255,254,255,254,255,0,0,255,255,255,255,1,0,253,255,252,255,0,0,255,255,253,255,255,255,253,255,251,255,253,255, +254,255,251,255,251,255,253,255,253,255,251,255,255,255,255,255,250,255,251,255,255,255,254,255,253,255,252,255,252,255,253,255, +252,255,253,255,255,255,254,255,252,255,254,255,252,255,251,255,254,255,254,255,252,255,253,255,251,255,252,255,255,255,251,255, +249,255,255,255,255,255,253,255,254,255,253,255,255,255,0,0,1,0,2,0,254,255,252,255,0,0,254,255,252,255,254,255, +0,0,254,255,252,255,251,255,254,255,254,255,252,255,254,255,253,255,251,255,252,255,253,255,252,255,253,255,252,255,253,255, +254,255,252,255,253,255,255,255,253,255,253,255,0,0,0,0,254,255,253,255,0,0,254,255,252,255,253,255,252,255,253,255, +0,0,253,255,250,255,252,255,252,255,252,255,253,255,252,255,253,255,255,255,253,255,252,255,254,255,253,255,252,255,254,255, +254,255,253,255,254,255,255,255,255,255,255,255,253,255,252,255,254,255,254,255,253,255,253,255,252,255,253,255,253,255,253,255, +255,255,255,255,253,255,252,255,251,255,252,255,253,255,252,255,254,255,255,255,254,255,254,255,254,255,254,255,0,0,254,255, +253,255,254,255,255,255,254,255,253,255,255,255,1,0,255,255,253,255,253,255,255,255,0,0,254,255,254,255,0,0,254,255, +255,255,0,0,255,255,0,0,255,255,255,255,0,0,253,255,254,255,1,0,255,255,255,255,255,255,253,255,254,255,254,255, +255,255,1,0,254,255,253,255,0,0,252,255,251,255,255,255,253,255,252,255,255,255,254,255,253,255,254,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,253,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,0,0,1,0,254,255,254,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,255,255,0,0,1,0,254,255,255,255,0,0,255,255,0,0,255,255,254,255,255,255,254,255,255,255,0,0, +255,255,255,255,254,255,253,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,254,255,253,255,0,0, +255,255,254,255,255,255,253,255,254,255,255,255,253,255,254,255,0,0,254,255,255,255,0,0,255,255,255,255,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0, +0,0,255,255,0,0,0,0,1,0,0,0,0,0,2,0,1,0,0,0,1,0,255,255,0,0,1,0,254,255,0,0, +2,0,255,255,0,0,1,0,0,0,1,0,255,255,2,0,3,0,255,255,1,0,2,0,255,255,2,0,1,0,254,255, +1,0,0,0,255,255,1,0,255,255,1,0,1,0,255,255,2,0,1,0,0,0,2,0,1,0,0,0,2,0,0,0, +1,0,3,0,0,0,1,0,2,0,2,0,2,0,255,255,255,255,2,0,2,0,0,0,0,0,1,0,1,0,1,0, +2,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,0,0,0,0,1,0,255,255,1,0,0,0, +255,255,2,0,2,0,0,0,1,0,1,0,0,0,2,0,2,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0, +0,0,2,0,1,0,0,0,3,0,2,0,1,0,3,0,2,0,1,0,2,0,1,0,0,0,1,0,2,0,0,0, +1,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,0,0,2,0,2,0,1,0,1,0, +0,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +2,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0, +2,0,0,0,0,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,2,0,1,0,0,0, +1,0,0,0,255,255,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,0,0, +0,0,3,0,2,0,1,0,2,0,255,255,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0, +0,0,254,255,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,3,0,1,0,0,0,1,0,1,0,3,0,3,0,0,0,2,0,1,0,255,255, +2,0,2,0,1,0,3,0,1,0,1,0,2,0,0,0,0,0,2,0,0,0,1,0,3,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,0,0,2,0,2,0,0,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,0,0,1,0,1,0,1,0,3,0, +3,0,2,0,2,0,1,0,2,0,2,0,0,0,2,0,2,0,1,0,2,0,1,0,2,0,3,0,2,0,2,0, +2,0,0,0,3,0,2,0,0,0,2,0,3,0,2,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,1,0, +2,0,1,0,1,0,2,0,1,0,2,0,3,0,3,0,2,0,1,0,3,0,2,0,1,0,3,0,3,0,2,0, +3,0,1,0,1,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,1,0,3,0,3,0,1,0,2,0,4,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,3,0, +3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0, +2,0,2,0,2,0,3,0,2,0,2,0,4,0,1,0,1,0,4,0,2,0,1,0,2,0,1,0,3,0,3,0, +1,0,2,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0, +1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0, +3,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,3,0,2,0,2,0,2,0,0,0,1,0,2,0, +2,0,1,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,0,0,2,0,2,0,0,0,1,0, +2,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/chicken2.pcm b/src/client/sound/data/chicken2.pcm new file mode 100755 index 0000000..5c12602 --- /dev/null +++ b/src/client/sound/data/chicken2.pcm @@ -0,0 +1,2070 @@ +unsigned char PCM_chicken2[66166] = { +1,0,0,0,2,0,0,0,68,172,0,0,51,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +1,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,255,255,255,255,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,1,0,2,0,0,0,1,0,1,0,1,0,2,0,255,255,1,0,3,0,0,0,255,255,2,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,255,255,254,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +2,0,255,255,254,255,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,255,255,254,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,1,0, +1,0,1,0,1,0,0,0,1,0,2,0,255,255,0,0,2,0,0,0,0,0,0,0,254,255,0,0,1,0,0,0, +1,0,0,0,1,0,1,0,254,255,0,0,2,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,0,0,254,255,1,0,2,0,254,255,255,255,1,0,255,255, +1,0,3,0,255,255,0,0,1,0,0,0,1,0,0,0,0,0,2,0,255,255,255,255,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,0,0,255,255,0,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0, +0,0,1,0,2,0,255,255,254,255,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,2,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,2,0,0,0,255,255,2,0,3,0,1,0,1,0, +1,0,2,0,1,0,255,255,1,0,1,0,255,255,1,0,3,0,1,0,1,0,1,0,1,0,3,0,1,0,0,0, +2,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,1,0,2,0,1,0,2,0,1,0,0,0,255,255,1,0, +3,0,0,0,255,255,2,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,2,0,1,0, +1,0,2,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,255,255,2,0,1,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,1,0,1,0,1,0,2,0,2,0,0,0,1,0,1,0,255,255, +0,0,2,0,0,0,0,0,2,0,1,0,1,0,1,0,0,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,2,0,0,0,253,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,1,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0, +255,255,1,0,0,0,255,255,0,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0,2,0,1,0,255,255,1,0, +0,0,255,255,2,0,1,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,2,0, +1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,255,255,0,0,2,0,1,0,0,0,1,0,0,0,2,0, +2,0,1,0,1,0,1,0,0,0,0,0,0,0,2,0,1,0,0,0,3,0,1,0,0,0,3,0,1,0,1,0, +4,0,2,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,255,255,0,0,0,0,0,0,1,0,255,255,2,0,4,0,0,0,1,0,3,0,255,255, +1,0,2,0,255,255,3,0,3,0,1,0,2,0,1,0,2,0,3,0,0,0,3,0,3,0,0,0,3,0,4,0, +1,0,3,0,4,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0, +1,0,2,0,1,0,2,0,2,0,2,0,1,0,0,0,3,0,3,0,2,0,2,0,0,0,254,255,1,0,2,0, +2,0,2,0,2,0,3,0,2,0,3,0,5,0,2,0,1,0,4,0,2,0,2,0,4,0,3,0,3,0,4,0, +3,0,3,0,3,0,2,0,4,0,1,0,255,255,2,0,0,0,255,255,1,0,0,0,0,0,1,0,254,255,0,0, +2,0,254,255,255,255,0,0,0,0,2,0,1,0,0,0,2,0,1,0,255,255,2,0,2,0,1,0,2,0,2,0, +1,0,1,0,3,0,3,0,1,0,2,0,2,0,3,0,5,0,5,0,5,0,7,0,4,0,4,0,3,0,2,0, +5,0,4,0,2,0,5,0,3,0,1,0,6,0,4,0,3,0,6,0,4,0,5,0,5,0,1,0,2,0,5,0, +4,0,3,0,2,0,1,0,4,0,2,0,1,0,2,0,2,0,2,0,4,0,2,0,3,0,7,0,5,0,3,0, +7,0,7,0,4,0,5,0,6,0,6,0,6,0,5,0,5,0,3,0,4,0,7,0,7,0,7,0,6,0,3,0, +7,0,9,0,3,0,4,0,6,0,4,0,6,0,4,0,4,0,8,0,6,0,7,0,8,0,3,0,5,0,6,0, +4,0,6,0,5,0,2,0,3,0,5,0,4,0,3,0,4,0,5,0,4,0,3,0,3,0,1,0,3,0,3,0, +1,0,4,0,6,0,4,0,4,0,6,0,7,0,7,0,6,0,7,0,7,0,8,0,8,0,6,0,6,0,6,0, +5,0,6,0,7,0,9,0,12,0,9,0,7,0,8,0,8,0,8,0,7,0,7,0,9,0,8,0,6,0,6,0, +5,0,7,0,7,0,8,0,8,0,6,0,8,0,11,0,8,0,6,0,7,0,6,0,4,0,4,0,6,0,5,0, +5,0,5,0,3,0,3,0,1,0,255,255,3,0,2,0,2,0,5,0,0,0,2,0,7,0,252,255,0,0,11,0, +2,0,3,0,7,0,0,0,3,0,3,0,1,0,8,0,2,0,255,255,7,0,3,0,4,0,6,0,255,255,3,0, +10,0,8,0,7,0,7,0,8,0,7,0,2,0,5,0,9,0,10,0,10,0,6,0,8,0,9,0,5,0,10,0, +10,0,2,0,7,0,13,0,10,0,3,0,1,0,5,0,6,0,5,0,7,0,5,0,3,0,4,0,4,0,7,0, +7,0,6,0,9,0,5,0,0,0,254,255,254,255,1,0,1,0,1,0,8,0,6,0,2,0,6,0,12,0,14,0, +10,0,11,0,16,0,10,0,8,0,9,0,1,0,7,0,12,0,4,0,8,0,10,0,6,0,13,0,13,0,11,0, +11,0,6,0,8,0,7,0,1,0,8,0,9,0,3,0,1,0,252,255,254,255,1,0,2,0,9,0,255,255,246,255, +3,0,3,0,1,0,10,0,8,0,8,0,11,0,7,0,10,0,9,0,4,0,8,0,6,0,0,0,4,0,10,0, +11,0,11,0,16,0,18,0,11,0,9,0,12,0,13,0,13,0,9,0,8,0,10,0,2,0,255,255,7,0,8,0, +3,0,2,0,4,0,6,0,9,0,11,0,6,0,7,0,10,0,4,0,11,0,16,0,7,0,12,0,17,0,14,0, +19,0,11,0,2,0,9,0,9,0,12,0,18,0,15,0,16,0,14,0,16,0,26,0,26,0,24,0,26,0,26,0, +29,0,25,0,22,0,25,0,20,0,22,0,29,0,22,0,20,0,22,0,23,0,22,0,20,0,24,0,17,0,12,0, +24,0,19,0,12,0,28,0,26,0,23,0,29,0,22,0,20,0,21,0,17,0,25,0,27,0,27,0,32,0,22,0, +18,0,25,0,27,0,29,0,18,0,16,0,25,0,14,0,14,0,23,0,17,0,20,0,25,0,20,0,22,0,28,0, +33,0,28,0,25,0,38,0,29,0,13,0,27,0,21,0,11,0,23,0,15,0,14,0,29,0,14,0,6,0,11,0, +0,0,6,0,19,0,13,0,8,0,12,0,20,0,24,0,16,0,14,0,14,0,11,0,24,0,28,0,14,0,21,0, +32,0,14,0,12,0,33,0,29,0,19,0,28,0,28,0,23,0,20,0,12,0,19,0,27,0,20,0,11,0,0,0, +3,0,18,0,11,0,6,0,26,0,34,0,26,0,19,0,26,0,35,0,31,0,27,0,28,0,27,0,33,0,34,0, +34,0,37,0,25,0,16,0,25,0,30,0,34,0,31,0,28,0,41,0,36,0,26,0,33,0,21,0,15,0,23,0, +13,0,18,0,27,0,17,0,18,0,9,0,2,0,23,0,18,0,14,0,33,0,20,0,17,0,28,0,5,0,5,0, +30,0,33,0,35,0,27,0,24,0,35,0,22,0,17,0,27,0,16,0,22,0,41,0,36,0,29,0,25,0,34,0, +43,0,36,0,40,0,44,0,45,0,48,0,29,0,36,0,61,0,38,0,21,0,36,0,36,0,35,0,25,0,18,0, +38,0,47,0,44,0,42,0,33,0,39,0,44,0,26,0,19,0,27,0,35,0,35,0,22,0,13,0,24,0,48,0, +50,0,32,0,40,0,44,0,31,0,46,0,52,0,38,0,43,0,47,0,43,0,44,0,39,0,37,0,38,0,58,0, +64,0,20,0,9,0,37,0,31,0,18,0,14,0,24,0,44,0,35,0,32,0,29,0,8,0,21,0,13,0,240,255, +8,0,9,0,253,255,17,0,9,0,9,0,22,0,250,255,243,255,2,0,12,0,18,0,2,0,10,0,34,0,21,0, +21,0,30,0,28,0,38,0,26,0,7,0,15,0,32,0,51,0,50,0,48,0,58,0,36,0,29,0,55,0,43,0, +21,0,23,0,26,0,17,0,3,0,18,0,34,0,21,0,0,0,234,255,0,0,41,0,15,0,9,0,54,0,44,0, +10,0,4,0,30,0,45,0,10,0,5,0,23,0,2,0,22,0,49,0,12,0,251,255,8,0,17,0,23,0,13,0, +5,0,8,0,19,0,33,0,16,0,253,255,9,0,22,0,27,0,19,0,29,0,58,0,40,0,28,0,46,0,28,0, +15,0,0,0,236,255,24,0,57,0,47,0,69,0,62,0,33,0,55,0,70,0,53,0,36,0,38,0,56,0,48,0, +33,0,31,0,20,0,42,0,65,0,37,0,45,0,74,0,44,0,26,0,51,0,49,0,34,0,43,0,42,0,27,0, +46,0,55,0,40,0,53,0,21,0,234,255,36,0,61,0,19,0,28,0,20,0,247,255,10,0,6,0,248,255,9,0, +25,0,38,0,20,0,3,0,34,0,34,0,18,0,46,0,51,0,25,0,18,0,8,0,248,255,30,0,78,0,52,0, +61,0,125,0,91,0,52,0,93,0,101,0,91,0,75,0,50,0,88,0,98,0,65,0,104,0,131,0,97,0,70,0, +51,0,33,0,16,0,34,0,57,0,21,0,28,0,76,0,73,0,86,0,95,0,101,0,151,0,102,0,28,0,63,0, +66,0,57,0,78,0,51,0,33,0,21,0,7,0,43,0,50,0,32,0,12,0,239,255,5,0,10,0,243,255,19,0, +38,0,51,0,65,0,34,0,50,0,51,0,2,0,41,0,62,0,39,0,70,0,45,0,254,255,6,0,249,255,249,255, +237,255,207,255,231,255,223,255,203,255,235,255,234,255,238,255,253,255,215,255,191,255,181,255,166,255,153,255,123,255,136,255, +135,255,72,255,73,255,79,255,78,255,159,255,180,255,165,255,241,255,30,0,72,0,177,0,230,0,9,1,70,1,101,1, +125,1,158,1,173,1,152,1,144,1,173,1,157,1,167,1,4,2,9,2,209,1,209,1,168,1,102,1,53,1,214,0, +126,0,56,0,214,255,110,255,4,255,182,254,121,254,64,254,98,254,137,254,91,254,121,254,202,254,165,254,105,254,118,254, +119,254,67,254,44,254,85,254,94,254,85,254,170,254,68,255,201,255,6,0,88,0,10,1,85,1,45,1,130,1,238,1, +11,2,84,2,130,2,122,2,161,2,197,2,199,2,196,2,209,2,250,2,245,2,218,2,219,2,173,2,151,2,188,2, +154,2,91,2,57,2,1,2,180,1,84,1,1,1,186,0,61,0,209,255,143,255,23,255,174,254,148,254,137,254,110,254, +78,254,43,254,245,253,192,253,168,253,124,253,74,253,45,253,2,253,18,253,89,253,90,253,90,253,163,253,248,253,88,254, +161,254,221,254,90,255,205,255,30,0,127,0,151,0,143,0,229,0,55,1,94,1,182,1,18,2,35,2,33,2,73,2, +109,2,81,2,42,2,54,2,84,2,121,2,133,2,62,2,242,1,222,1,175,1,106,1,79,1,65,1,21,1,211,0, +173,0,184,0,190,0,160,0,109,0,65,0,41,0,242,255,172,255,133,255,67,255,1,255,233,254,192,254,157,254,130,254, +74,254,68,254,90,254,68,254,39,254,228,253,117,253,39,253,21,253,73,253,109,253,85,253,117,253,159,253,114,253,78,253, +89,253,88,253,97,253,158,253,199,253,159,253,176,253,4,254,7,254,21,254,87,254,135,254,236,254,56,255,101,255,48,0, +254,0,105,1,42,2,221,2,59,3,195,3,65,4,141,4,155,4,50,4,240,3,30,4,51,4,73,4,132,4,147,4, +132,4,117,4,93,4,69,4,16,4,170,3,44,3,123,2,148,1,196,0,3,0,37,255,87,254,149,253,197,252,67,252, +25,252,12,252,69,252,143,252,161,252,202,252,216,252,160,252,166,252,162,252,86,252,62,252,4,252,203,251,46,252,103,252, +115,252,24,253,163,253,223,253,100,254,238,254,108,255,216,255,35,0,214,0,155,1,16,2,193,2,86,3,135,3,205,3, +218,3,128,3,29,3,203,2,7,3,247,3,15,5,65,6,92,7,236,7,29,8,34,8,205,7,6,7,24,6,113,5, +221,4,3,4,57,3,194,2,101,2,251,1,129,1,19,1,167,0,11,0,70,255,104,254,97,253,94,252,158,251,68,251, +91,251,189,251,20,252,46,252,88,252,198,252,32,253,88,253,107,253,239,252,54,252,210,251,121,251,85,251,248,251,240,252, +241,253,86,255,169,0,104,1,27,2,247,2,191,3,109,4,132,4,222,3,88,3,29,3,226,2,232,2,2,3,235,2, +247,2,79,3,209,3,85,4,185,4,239,4,236,4,254,4,46,5,247,4,138,4,45,4,140,3,227,2,88,2,104,1, +47,0,28,255,94,254,42,254,73,254,65,254,44,254,122,254,253,254,65,255,104,255,129,255,45,255,175,254,107,254,55,254, +10,254,222,253,167,253,140,253,86,253,240,252,1,253,143,253,215,253,226,253,62,254,237,254,144,255,248,255,152,0,177,1, +149,2,249,2,60,3,78,3,51,3,242,2,77,2,147,1,224,0,47,0,228,255,150,255,5,255,182,254,119,254,94,254, +148,254,126,254,83,254,27,254,92,253,230,252,8,253,63,253,125,253,98,253,47,253,69,253,24,253,28,253,108,253,50,253, +24,253,83,253,54,253,123,253,53,254,132,254,175,254,254,254,56,255,90,255,87,255,98,255,217,255,154,0,58,1,164,1, +211,1,210,1,6,2,18,2,86,1,131,0,220,255,21,255,180,254,85,254,154,253,97,253,164,253,84,254,69,255,94,255, +67,255,146,255,122,255,101,255,73,255,158,254,44,254,177,253,28,253,78,253,127,253,146,253,47,254,165,254,21,255,172,255, +195,255,183,255,148,255,51,255,11,255,180,254,11,254,117,253,187,252,54,252,25,252,227,251,193,251,203,251,244,251,145,252, +111,253,49,254,216,254,137,255,73,0,206,0,29,1,66,1,228,0,115,0,153,0,12,1,111,1,168,1,212,1,72,2, +253,2,177,3,56,4,185,4,84,5,149,5,157,5,198,5,122,5,236,4,190,4,106,4,196,3,45,3,158,2,230,1, +219,0,223,255,35,255,109,254,132,254,136,255,91,0,227,0,6,1,160,0,117,0,74,0,185,255,69,255,201,254,68,254, +246,253,203,253,27,254,95,254,38,254,150,254,90,255,108,255,147,255,181,255,55,255,191,254,94,254,46,254,154,254,0,255, +94,255,54,0,243,0,146,1,135,2,52,3,71,3,12,3,150,2,15,2,113,1,230,0,26,1,183,1,5,2,90,2, +219,2,80,3,186,3,8,4,123,4,226,4,116,4,209,3,187,3,180,3,177,3,212,3,225,3,217,3,112,3,226,2, +192,2,92,2,155,1,57,1,17,1,58,1,177,1,222,1,2,2,61,2,57,2,73,2,69,2,193,1,61,1,216,0, +44,0,100,255,167,254,210,253,12,253,94,252,161,251,87,251,207,251,73,252,160,252,46,253,177,253,61,254,158,254,85,254, +38,254,246,253,205,252,173,251,72,251,212,250,111,250,64,250,20,250,109,250,6,251,57,251,111,251,222,251,71,252,193,252, +86,253,240,253,154,254,36,255,119,255,240,255,124,0,133,0,44,0,202,255,59,255,165,254,70,254,235,253,137,253,66,253, +61,253,136,253,200,253,237,253,134,254,146,255,125,0,31,1,189,1,94,2,194,2,19,3,142,3,211,3,145,3,231,2, +40,2,221,1,249,1,225,1,168,1,128,1,23,1,148,0,92,0,60,0,224,255,49,255,100,254,190,253,1,253,0,252, +242,250,251,249,88,249,248,248,145,248,157,248,6,249,248,248,244,248,82,249,39,249,170,248,92,248,140,247,69,246,45,245, +37,244,82,243,31,243,120,243,101,244,224,245,129,247,70,249,88,251,45,253,117,254,160,255,170,0,105,1,109,2,189,3, +180,4,173,5,78,7,7,9,72,10,81,11,20,12,99,12,142,12,210,12,65,13,144,13,80,13,27,13,126,13,181,13, +98,13,187,12,187,11,189,10,199,9,132,8,58,7,254,5,215,4,2,4,0,3,151,1,31,0,113,254,176,252,18,251, +35,249,237,246,199,244,173,242,0,241,255,239,97,239,28,239,33,239,115,239,111,240,253,241,165,243,46,245,125,246,178,247, +210,248,81,249,38,249,47,249,159,249,1,250,194,250,90,252,9,254,137,255,172,1,80,4,216,6,111,9,178,11,41,13, +71,14,243,14,236,14,199,14,143,14,15,14,152,13,60,13,220,12,91,12,185,11,57,11,211,10,54,10,85,9,115,8, +163,7,111,6,1,5,3,4,226,2,70,1,240,255,171,254,55,253,12,252,15,251,249,249,195,248,166,247,216,246,227,245, +9,245,254,244,46,245,101,245,206,245,254,245,129,246,213,247,48,249,41,250,213,250,69,251,173,251,45,252,252,252,37,254, +82,255,68,0,104,1,68,3,4,5,30,6,113,7,136,8,213,8,90,9,198,9,85,9,155,8,243,7,119,7,203,6, +179,5,243,4,47,4,3,3,110,2,64,2,229,1,99,1,120,0,140,255,198,254,220,253,245,252,132,251,140,249,248,247, +217,246,130,246,199,246,184,246,217,246,141,247,116,248,154,249,82,250,61,250,239,249,215,249,56,250,64,250,169,249,222,249, +169,250,63,251,49,252,90,253,104,254,81,255,41,0,138,1,136,2,90,2,122,2,24,3,103,3,207,3,71,4,138,4, +75,4,43,3,10,2,79,1,134,0,119,0,125,1,132,2,7,3,80,3,153,3,199,3,147,3,239,2,11,2,228,0, +57,255,129,253,132,252,221,251,36,251,193,250,138,250,83,250,92,250,110,250,141,250,161,250,52,250,212,249,210,249,94,249, +187,248,204,248,95,249,14,250,195,250,127,251,101,252,91,253,131,254,212,255,142,0,214,0,94,1,0,2,215,2,177,3, +208,3,135,3,222,2,177,1,15,1,231,0,138,0,151,0,23,1,169,1,70,2,188,2,132,3,125,4,244,4,132,5, +246,5,107,5,155,4,227,3,87,3,190,3,163,4,67,5,229,5,85,6,54,6,10,6,50,6,22,6,63,5,254,3, +156,2,101,1,180,0,76,0,253,255,229,255,28,0,141,0,165,0,77,0,243,255,78,255,151,254,23,254,5,253,113,251, +197,249,206,247,16,246,9,245,131,244,25,244,97,243,4,243,168,243,183,244,28,246,248,247,163,249,153,250,213,250,246,250, +127,251,28,252,177,252,101,253,61,254,141,255,83,1,10,3,152,4,91,6,37,8,84,9,40,10,238,10,102,11,30,12, +12,13,120,13,11,14,198,14,230,14,4,15,11,15,36,14,158,12,222,10,43,9,144,7,107,5,228,2,251,0,229,255, +18,255,135,254,103,254,247,253,84,253,109,253,198,253,202,253,120,253,153,252,194,251,118,251,60,251,155,250,119,249,157,248, +26,248,5,247,80,246,56,246,134,245,239,244,145,244,163,243,248,242,160,242,59,242,65,242,117,242,189,242,36,243,165,243, +234,244,244,246,163,249,164,252,230,254,236,0,33,3,167,4,236,5,201,6,130,6,234,5,83,5,209,4,205,4,226,4, +41,5,218,5,234,6,164,8,82,10,102,11,54,12,202,12,155,13,96,14,21,14,39,13,191,11,178,9,114,7,149,4, +69,1,79,254,122,251,248,248,21,247,216,245,250,245,53,247,146,248,170,249,248,249,141,249,234,248,35,248,21,247,92,245, +71,243,162,241,85,240,146,239,220,239,191,240,221,241,31,243,65,244,85,245,105,246,48,247,159,247,37,248,191,248,237,248, +248,248,85,249,213,249,163,250,3,252,152,253,33,255,196,0,148,2,35,4,13,5,141,5,212,5,214,5,105,5,129,4, +184,3,52,3,221,2,118,3,203,4,10,6,116,7,35,9,42,11,124,13,214,14,177,14,200,13,142,12,75,11,247,9, +92,8,152,6,13,5,102,4,125,4,104,4,43,4,37,4,104,4,192,4,49,4,107,2,24,0,156,253,122,251,239,249, +131,248,47,247,80,246,75,246,119,247,90,249,44,251,186,252,47,254,144,255,181,0,59,1,151,0,16,255,144,253,14,252, +97,250,10,249,51,248,21,248,17,249,1,251,86,253,73,255,13,1,90,3,105,5,173,6,83,7,140,6,127,4,78,2, +209,255,78,253,176,251,158,250,200,249,197,249,165,250,254,251,250,253,251,0,149,4,188,7,195,9,149,10,94,10,93,9, +0,8,131,6,125,4,245,1,237,255,44,255,124,255,75,0,159,1,141,3,136,5,81,7,204,8,31,9,14,8,101,6, +140,4,124,2,90,0,81,254,99,252,204,250,17,250,9,250,4,250,207,249,120,249,21,249,207,248,114,248,189,247,207,246, +157,245,49,244,60,243,35,243,101,243,211,243,245,244,242,246,87,249,171,251,239,253,11,0,79,1,184,1,212,1,92,1, +89,0,74,255,25,254,42,253,236,252,29,253,228,253,5,255,26,0,172,1,164,3,150,5,174,7,79,9,249,9,44,10, +254,9,100,9,167,8,209,7,255,6,111,6,238,5,69,5,143,4,158,3,43,2,220,0,5,0,180,254,155,252,89,250, +39,248,56,246,185,244,93,243,22,242,69,241,237,240,252,240,216,241,41,243,219,243,0,244,75,244,204,244,64,245,22,245, +90,244,210,243,153,243,210,243,131,244,13,245,11,246,105,248,187,251,111,255,164,2,244,4,87,7,223,9,1,12,129,13, +121,13,60,12,102,11,232,10,55,10,183,9,108,9,71,9,152,9,124,10,198,11,241,12,54,13,122,12,122,11,110,10, +141,8,168,5,131,2,140,255,200,252,141,250,255,248,161,247,73,246,110,245,71,245,124,245,93,245,151,244,198,243,113,243, +158,243,1,244,184,243,172,242,27,242,182,242,18,244,53,245,148,245,224,245,139,246,141,247,73,249,109,251,166,253,196,0, +198,4,159,8,153,11,115,13,193,14,91,16,216,17,139,18,225,18,58,19,112,19,251,19,11,21,180,21,166,21,84,21, +215,20,37,20,208,18,181,16,101,14,201,11,211,8,38,6,191,3,96,1,30,255,17,253,66,251,72,249,62,247,114,245, +238,242,212,239,102,237,37,235,194,232,252,230,203,229,101,229,21,230,72,231,188,232,112,234,67,236,66,238,72,240,19,242, +75,243,222,243,143,244,171,245,235,246,207,248,184,251,47,255,185,2,65,6,235,9,109,13,81,16,191,18,177,20,202,21, +113,22,27,23,145,23,180,23,154,23,116,23,169,23,34,24,36,24,102,23,77,22,91,21,142,20,25,19,99,16,192,12, +175,8,190,4,67,1,161,253,184,249,121,246,4,244,238,241,60,240,210,238,146,237,141,236,156,235,98,234,92,232,142,229, +147,226,224,223,245,221,238,220,95,220,150,220,193,221,144,223,137,226,123,230,87,234,41,238,252,241,104,245,146,248,101,251, +241,253,143,0,213,2,232,4,150,7,169,10,205,13,65,17,25,21,78,25,143,29,117,33,17,37,255,39,171,41,158,42, +25,43,89,42,163,40,167,38,251,35,174,32,96,29,26,26,240,22,132,19,72,15,28,11,98,7,42,3,111,254,126,249, +25,244,161,238,194,233,146,229,201,225,137,222,97,220,67,219,201,218,177,218,131,218,71,218,88,218,118,218,100,218,51,218, +80,218,143,219,8,222,244,224,220,227,31,231,65,235,2,240,60,245,38,251,0,1,37,6,3,11,194,15,72,20,111,24, +174,27,252,29,234,31,181,33,40,35,37,36,223,36,92,37,158,37,214,37,200,37,13,37,92,35,176,32,152,29,16,26, +198,21,59,17,129,12,205,7,250,3,150,0,33,253,1,250,221,246,227,243,164,241,89,239,217,236,160,234,40,232,119,229, +38,227,242,224,205,222,36,221,242,219,71,219,29,219,49,219,65,220,201,222,181,225,179,228,36,232,139,235,250,238,176,242, +43,246,166,249,251,252,75,255,60,1,107,3,133,5,52,8,17,12,168,16,109,21,160,25,213,28,121,31,214,33,178,35, +134,36,235,35,54,34,232,31,36,29,75,26,199,23,111,21,53,19,86,17,145,15,132,13,54,11,167,8,222,5,223,2, +114,255,183,251,2,248,46,244,72,240,175,236,132,233,18,231,171,229,202,228,35,228,50,228,160,228,220,228,97,229,15,230, +136,230,127,231,242,232,55,234,128,235,27,237,75,239,111,242,78,246,143,250,252,254,84,3,206,7,114,12,166,16,13,20, +171,22,120,24,152,25,120,26,23,27,9,27,87,26,127,25,219,24,102,24,205,23,242,22,168,21,199,19,254,17,113,16, +41,14,40,11,232,7,104,4,57,1,182,254,62,252,127,249,222,246,176,244,236,242,176,241,183,240,33,239,25,237,136,235, +109,234,122,233,130,232,72,231,64,230,66,230,129,231,43,233,113,234,174,235,147,237,73,240,172,243,61,247,160,250,193,253, +165,0,164,3,91,6,18,8,81,9,158,10,133,11,212,11,246,11,109,12,165,13,225,15,150,18,207,20,192,22,151,24, +130,25,110,25,184,24,127,23,222,21,57,19,153,15,198,11,171,7,190,3,170,0,17,254,224,251,190,249,117,247,235,245, +244,244,238,243,237,242,187,241,151,240,123,239,166,237,158,235,35,234,76,233,24,233,187,232,58,232,159,232,185,233,11,235, +162,236,127,238,211,240,92,243,178,245,2,248,52,250,36,252,26,254,44,0,76,2,66,4,205,5,61,7,29,9,62,11, +28,13,144,14,118,15,232,15,143,16,66,17,146,17,25,18,208,18,9,19,19,19,74,19,134,19,234,19,103,20,83,20, +78,19,182,17,184,15,34,13,49,10,62,7,145,4,71,2,223,255,93,253,25,251,186,248,158,246,65,245,198,243,142,241, +212,238,76,236,170,234,81,233,177,231,136,230,82,230,206,230,175,231,255,232,227,234,14,237,97,239,175,241,127,243,57,245, +15,247,126,248,213,249,78,251,210,252,186,254,234,0,42,3,155,5,47,8,55,11,132,14,48,17,34,19,162,20,3,22, +171,23,35,25,211,25,223,25,162,25,151,25,172,25,59,25,47,24,209,22,114,21,39,20,53,18,24,15,87,11,134,7, +239,3,142,0,228,252,228,248,39,245,22,242,3,240,230,238,44,238,152,237,44,237,182,236,55,236,145,235,116,234,54,233, +101,232,225,231,124,231,191,231,224,232,76,234,60,236,45,239,104,242,102,245,38,248,134,250,222,252,46,255,2,1,177,2, +93,4,246,5,231,7,48,10,188,12,82,15,152,17,245,19,94,22,109,24,87,26,113,27,62,27,182,26,16,26,186,24, +151,22,14,20,219,17,219,15,142,13,41,11,213,8,234,6,125,5,234,3,105,2,62,1,185,255,188,253,142,251,77,249, +224,246,192,243,111,240,164,237,220,234,65,232,116,230,57,229,179,228,227,228,52,229,239,229,115,231,99,233,92,235,251,236, +75,238,212,239,123,241,245,242,92,244,208,245,188,247,77,250,216,252,104,255,131,2,220,5,58,9,139,12,157,15,131,18, +161,20,150,21,108,22,95,23,18,24,170,24,178,24,88,24,112,24,100,24,219,23,91,23,197,22,236,21,155,20,150,18, +20,16,7,13,138,9,247,5,27,2,8,254,245,249,200,245,215,241,79,238,46,235,213,232,9,231,123,229,94,228,62,227, +209,225,216,224,163,224,228,224,124,225,77,226,61,227,128,228,132,230,135,233,252,236,64,240,157,243,57,247,118,250,47,253, +151,255,192,1,2,4,68,6,71,8,171,10,162,13,197,16,97,20,102,24,31,28,109,31,97,34,239,36,235,38,212,39, +138,39,74,38,27,36,32,33,155,29,173,25,143,21,144,17,248,13,201,10,212,7,39,5,211,2,192,0,37,255,244,253, +88,252,213,249,223,246,197,243,99,240,245,236,204,233,208,230,64,228,132,226,129,225,98,225,87,226,170,227,25,229,46,231, +156,233,152,235,28,237,146,238,30,240,150,241,4,243,180,244,184,246,34,249,70,252,64,0,211,4,131,9,5,14,136,18, +192,22,250,25,41,28,156,29,106,30,151,30,54,30,183,29,39,29,3,28,161,26,159,25,163,24,172,23,25,23,84,22, +194,20,117,18,181,15,222,12,185,9,194,5,83,1,206,252,53,248,21,244,162,240,138,237,233,234,212,232,134,231,31,231, +216,230,141,230,130,230,70,230,49,230,100,230,14,230,181,229,236,229,101,230,157,231,139,233,181,235,162,238,68,242,57,246, +130,250,168,254,132,2,16,6,254,8,94,11,253,12,30,14,147,15,247,16,56,18,232,19,122,21,248,22,219,24,137,26, +223,27,200,28,241,28,188,28,252,27,100,26,98,24,233,21,0,19,220,15,104,12,44,9,21,6,138,2,59,255,102,252, +157,249,28,247,144,244,233,241,231,239,48,238,118,236,9,235,153,233,68,232,122,231,39,231,103,231,14,232,177,232,99,233, +83,234,198,235,134,237,240,238,68,240,197,241,88,243,82,245,123,247,129,249,199,251,128,254,229,1,158,5,220,8,0,12, +34,15,209,17,113,20,138,22,155,23,91,24,151,24,88,24,31,24,41,23,172,21,112,20,221,18,27,17,108,15,71,13, +52,11,137,9,201,7,7,6,64,4,81,2,110,0,170,254,221,252,177,250,80,248,60,246,30,244,235,241,28,240,102,238, +244,236,71,236,208,235,149,235,31,236,227,236,109,237,17,238,4,239,73,240,149,241,182,242,55,244,84,246,116,248,119,250, +249,252,240,255,174,2,34,5,157,7,248,9,3,12,153,13,149,14,91,15,41,16,155,16,205,16,40,17,169,17,57,18, +168,18,237,18,119,19,21,20,9,20,61,19,252,17,91,16,108,14,45,12,160,9,1,7,138,4,22,2,159,255,112,253, +150,251,252,249,125,248,233,246,167,245,199,244,132,243,22,242,36,241,112,240,224,239,133,239,68,239,58,239,99,239,235,239, +10,241,64,242,90,243,201,244,166,246,186,248,253,250,166,253,111,0,168,2,118,4,49,6,214,7,149,9,72,11,190,12, +0,14,205,14,137,15,160,16,114,17,215,17,54,18,139,18,125,18,196,17,232,16,80,16,95,15,234,13,39,12,24,10, +227,7,104,5,249,2,225,0,146,254,113,252,193,250,213,248,90,247,142,246,141,245,182,244,36,244,83,243,112,242,131,241, +199,240,108,240,26,240,55,240,198,240,93,241,120,242,214,243,32,245,238,246,229,248,166,250,66,252,58,253,9,254,71,255, +104,0,151,1,217,2,170,3,176,4,53,6,207,7,151,9,52,11,87,12,92,13,50,14,240,14,145,15,88,15,156,14, +62,14,245,13,139,13,4,13,19,12,44,11,209,10,117,10,191,9,1,9,44,8,15,7,53,6,212,5,4,5,143,3, +34,2,190,0,72,255,31,254,48,253,34,252,243,250,218,249,16,249,152,248,45,248,169,247,74,247,24,247,195,246,165,246, +234,246,231,246,205,246,25,247,115,247,192,247,22,248,137,248,57,249,223,249,174,250,214,251,178,252,133,253,171,254,147,255, +117,0,134,1,63,2,188,2,25,3,66,3,122,3,193,3,26,4,139,4,200,4,246,4,84,5,154,5,172,5,208,5, +27,6,91,6,66,6,187,5,88,5,115,5,57,5,118,4,227,3,85,3,177,2,66,2,192,1,71,1,201,0,44,0, +96,0,232,0,182,0,162,0,189,0,118,0,66,0,239,255,101,255,12,255,151,254,23,254,236,253,16,254,94,254,100,254, +62,254,81,254,121,254,225,254,94,255,130,255,203,255,66,0,133,0,247,0,118,1,146,1,168,1,5,2,77,2,64,2, +22,2,213,1,109,1,68,1,85,1,40,1,230,0,226,0,27,1,80,1,126,1,236,1,77,2,77,2,113,2,245,2, +111,3,142,3,155,3,239,3,251,3,142,3,74,3,5,3,167,2,135,2,81,2,250,1,209,1,206,1,234,1,237,1, +231,1,9,2,253,1,199,1,176,1,177,1,209,1,193,1,121,1,123,1,192,1,241,1,237,1,254,1,63,2,25,2, +229,1,33,2,10,2,231,1,19,2,207,1,121,1,57,1,161,0,69,0,229,255,28,255,160,254,86,254,13,254,235,253, +145,253,74,253,81,253,43,253,3,253,24,253,61,253,93,253,54,253,211,252,144,252,119,252,113,252,94,252,71,252,104,252, +166,252,213,252,66,253,245,253,119,254,12,255,16,0,195,0,46,1,244,1,111,2,126,2,192,2,254,2,42,3,111,3, +167,3,250,3,104,4,242,4,163,5,30,6,115,6,173,6,156,6,156,6,149,6,56,6,200,5,83,5,222,4,91,4, +201,3,155,3,93,3,208,2,194,2,181,2,28,2,133,1,183,0,196,255,23,255,46,254,43,253,114,252,162,251,230,250, +117,250,15,250,245,249,50,250,108,250,199,250,78,251,163,251,249,251,155,252,50,253,145,253,220,253,26,254,128,254,7,255, +105,255,199,255,42,0,142,0,14,1,112,1,164,1,212,1,6,2,98,2,181,2,206,2,247,2,66,3,177,3,21,4, +41,4,143,4,52,5,67,5,85,5,139,5,40,5,252,4,56,5,199,4,50,4,25,4,216,3,135,3,120,3,82,3, +29,3,1,3,225,2,190,2,126,2,28,2,166,1,21,1,161,0,61,0,157,255,231,254,53,254,181,253,138,253,66,253, +10,253,13,253,179,252,48,252,204,251,98,251,53,251,217,250,77,250,50,250,33,250,73,250,218,250,23,251,143,251,93,252, +235,252,200,253,138,254,236,254,193,255,137,0,73,1,66,2,220,2,199,3,231,4,135,5,89,6,204,6,191,6,51,7, +135,7,186,7,7,8,203,7,193,7,204,7,135,7,205,7,185,7,16,7,221,6,92,6,194,5,135,5,188,4,219,3, +46,3,51,2,103,1,159,0,165,255,189,254,198,253,27,253,159,252,247,251,148,251,86,251,68,251,95,251,10,251,216,250, +9,251,232,250,206,250,207,250,225,250,92,251,164,251,191,251,46,252,140,252,14,253,195,253,49,254,165,254,77,255,13,0, +203,0,75,1,240,1,170,2,239,2,62,3,223,3,90,4,160,4,224,4,58,5,113,5,121,5,179,5,215,5,194,5, +230,5,227,5,145,5,64,5,168,4,249,3,124,3,192,2,199,1,201,0,195,255,233,254,41,254,124,253,24,253,167,252, +32,252,247,251,252,251,227,251,182,251,124,251,61,251,244,250,166,250,105,250,51,250,50,250,138,250,243,250,119,251,85,252, +76,253,52,254,71,255,137,0,148,1,74,2,2,3,173,3,32,4,154,4,18,5,136,5,24,6,132,6,11,7,192,7, +10,8,62,8,169,8,172,8,106,8,80,8,29,8,159,7,244,6,95,6,164,5,134,4,159,3,204,2,150,1,136,0, +126,255,46,254,76,253,159,252,164,251,251,250,168,250,3,250,74,249,213,248,77,248,196,247,175,247,172,247,106,247,87,247, +115,247,166,247,20,248,120,248,183,248,241,248,66,249,207,249,96,250,13,251,16,252,255,252,13,254,123,255,179,0,234,1, +48,3,234,3,189,4,251,5,192,6,97,7,98,8,47,9,229,9,201,10,101,11,224,11,113,12,161,12,143,12,112,12, +11,12,151,11,17,11,71,10,135,9,161,8,114,7,110,6,113,5,49,4,213,2,185,1,238,0,191,255,97,254,166,253, +211,252,187,251,1,251,37,250,75,249,220,248,63,248,151,247,31,247,198,246,227,246,242,246,167,246,204,246,115,247,31,248, +154,248,31,249,8,250,239,250,170,251,159,252,178,253,200,254,221,255,226,0,251,1,6,3,19,4,26,5,213,5,177,6, +183,7,123,8,46,9,186,9,59,10,230,10,44,11,81,11,150,11,106,11,31,11,200,10,251,9,32,9,38,8,1,7, +1,6,199,4,167,3,26,3,114,2,142,1,211,0,49,0,152,255,217,254,221,253,223,252,232,251,251,250,51,250,109,249, +161,248,19,248,185,247,125,247,183,247,22,248,250,247,241,247,81,248,185,248,52,249,133,249,196,249,85,250,145,250,181,250, +158,251,145,252,56,253,8,254,213,254,170,255,164,0,182,1,217,2,150,3,41,4,15,5,190,5,33,6,158,6,240,6, +40,7,153,7,6,8,41,8,17,8,27,8,97,8,97,8,242,7,116,7,219,6,255,5,63,5,146,4,158,3,205,2, +59,2,117,1,222,0,186,0,92,0,194,255,88,255,202,254,249,253,107,253,11,253,110,252,212,251,84,251,194,250,123,250, +129,250,119,250,132,250,186,250,3,251,90,251,150,251,241,251,137,252,250,252,77,253,210,253,149,254,107,255,25,0,187,0, +124,1,68,2,222,2,56,3,196,3,127,4,223,4,38,5,120,5,174,5,241,5,187,5,23,5,177,4,31,4,133,3, +81,3,234,2,122,2,77,2,9,2,186,1,92,1,61,1,91,1,255,0,134,0,27,0,105,255,7,255,162,254,199,253, +48,253,183,252,45,252,236,251,174,251,109,251,60,251,54,251,137,251,206,251,0,252,17,252,235,251,87,252,240,252,10,253, +75,253,156,253,234,253,112,254,217,254,158,255,98,0,159,0,99,1,35,2,112,2,97,3,3,4,247,3,79,4,138,4, +170,4,230,4,211,4,237,4,228,4,159,4,247,4,4,5,142,4,123,4,48,4,197,3,163,3,14,3,92,2,23,2, +239,1,188,1,63,1,184,0,143,0,74,0,244,255,214,255,142,255,57,255,30,255,249,254,186,254,117,254,78,254,128,254, +154,254,78,254,83,254,226,254,56,255,60,255,68,255,60,255,50,255,54,255,31,255,15,255,28,255,22,255,255,254,2,255, +19,255,35,255,80,255,116,255,108,255,172,255,36,0,49,0,25,0,90,0,194,0,8,1,6,1,226,0,220,0,227,0, +217,0,198,0,176,0,137,0,101,0,159,0,248,0,231,0,227,0,85,1,191,1,198,1,128,1,66,1,40,1,206,0, +59,0,200,255,115,255,54,255,4,255,169,254,83,254,92,254,134,254,86,254,35,254,76,254,115,254,121,254,93,254,246,253, +164,253,144,253,123,253,97,253,70,253,76,253,108,253,148,253,26,254,168,254,6,255,213,255,167,0,248,0,63,1,78,1, +49,1,72,1,80,1,132,1,225,1,228,1,238,1,38,2,101,2,235,2,112,3,185,3,247,3,37,4,63,4,6,4, +113,3,25,3,228,2,122,2,40,2,247,1,173,1,52,1,189,0,154,0,151,0,147,0,191,0,187,0,122,0,175,0, +35,1,27,1,235,0,229,0,171,0,103,0,93,0,12,0,115,255,1,255,156,254,76,254,24,254,214,253,198,253,197,253, +148,253,165,253,211,253,175,253,148,253,154,253,119,253,74,253,85,253,157,253,212,253,189,253,189,253,45,254,160,254,195,254, +232,254,34,255,62,255,134,255,29,0,153,0,214,0,7,1,86,1,186,1,241,1,64,2,227,2,40,3,25,3,87,3, +100,3,39,3,69,3,47,3,153,2,88,2,48,2,185,1,159,1,180,1,97,1,24,1,4,1,238,0,233,0,187,0, +100,0,66,0,58,0,9,0,163,255,91,255,134,255,183,255,190,255,217,255,187,255,168,255,233,255,216,255,133,255,69,255, +241,254,234,254,245,254,176,254,183,254,169,254,112,254,33,255,226,255,214,255,37,0,172,0,176,0,205,0,5,1,255,0, +0,1,227,0,158,0,141,0,137,0,95,0,37,0,229,255,192,255,197,255,195,255,152,255,101,255,85,255,100,255,114,255, +150,255,224,255,15,0,57,0,191,0,43,1,7,1,239,0,14,1,225,0,165,0,156,0,129,0,81,0,58,0,84,0, +134,0,163,0,241,0,89,1,91,1,83,1,149,1,151,1,69,1,5,1,233,0,219,0,191,0,163,0,187,0,228,0, +204,0,164,0,243,0,93,1,43,1,206,0,218,0,227,0,149,0,50,0,243,255,160,255,44,255,17,255,33,255,244,254, +246,254,249,254,195,254,242,254,47,255,8,255,248,254,228,254,170,254,91,254,199,253,94,253,56,253,244,252,202,252,155,252, +102,252,146,252,197,252,238,252,62,253,136,253,252,253,84,254,117,254,253,254,98,255,95,255,187,255,39,0,90,0,170,0, +244,0,76,1,174,1,254,1,125,2,220,2,8,3,92,3,159,3,186,3,182,3,151,3,127,3,35,3,184,2,160,2, +91,2,25,2,19,2,185,1,102,1,82,1,42,1,43,1,240,0,51,0,158,255,42,255,161,254,27,254,150,253,86,253, +53,253,243,252,224,252,211,252,186,252,219,252,240,252,254,252,43,253,61,253,71,253,83,253,98,253,143,253,171,253,227,253, +94,254,178,254,246,254,76,255,130,255,228,255,93,0,142,0,211,0,65,1,110,1,144,1,4,2,103,2,115,2,165,2, +250,2,255,2,12,3,70,3,66,3,54,3,33,3,189,2,111,2,68,2,250,1,189,1,84,1,196,0,127,0,53,0, +189,255,113,255,34,255,218,254,222,254,218,254,192,254,186,254,156,254,129,254,98,254,38,254,40,254,48,254,225,253,182,253, +189,253,158,253,168,253,224,253,244,253,9,254,65,254,144,254,254,254,88,255,145,255,225,255,41,0,73,0,105,0,104,0, +70,0,106,0,135,0,95,0,141,0,236,0,249,0,46,1,151,1,170,1,153,1,156,1,141,1,113,1,81,1,27,1, +192,0,91,0,44,0,18,0,243,255,242,255,235,255,2,0,99,0,149,0,169,0,223,0,213,0,197,0,229,0,181,0, +83,0,251,255,145,255,86,255,34,255,204,254,188,254,205,254,244,254,98,255,153,255,202,255,77,0,140,0,178,0,237,0, +200,0,178,0,186,0,109,0,61,0,70,0,86,0,116,0,111,0,177,0,61,1,102,1,131,1,157,1,106,1,117,1, +108,1,238,0,147,0,90,0,36,0,9,0,242,255,7,0,27,0,36,0,73,0,35,0,244,255,8,0,222,255,131,255, +0,255,126,254,80,254,214,253,70,253,24,253,181,252,159,252,222,252,177,252,225,252,71,253,81,253,188,253,5,254,10,254, +128,254,171,254,168,254,13,255,114,255,14,0,133,0,146,0,21,1,173,1,2,2,116,2,150,2,168,2,236,2,250,2, +32,3,44,3,228,2,203,2,186,2,191,2,218,2,135,2,81,2,100,2,15,2,168,1,134,1,79,1,221,0,95,0, +11,0,157,255,240,254,93,254,218,253,87,253,215,252,82,252,27,252,20,252,241,251,253,251,49,252,119,252,202,252,231,252, +2,253,53,253,79,253,100,253,90,253,91,253,163,253,187,253,189,253,10,254,100,254,180,254,0,255,84,255,195,255,40,0, +144,0,210,0,210,0,47,1,205,1,16,2,62,2,145,2,246,2,104,3,210,3,65,4,142,4,154,4,177,4,200,4, +180,4,147,4,108,4,46,4,196,3,118,3,70,3,195,2,73,2,14,2,164,1,69,1,246,0,142,0,92,0,10,0, +144,255,85,255,238,254,141,254,132,254,63,254,205,253,114,253,11,253,190,252,125,252,61,252,16,252,234,251,242,251,249,251, +242,251,50,252,136,252,243,252,111,253,162,253,0,254,142,254,175,254,184,254,237,254,35,255,62,255,50,255,106,255,175,255, +182,255,25,0,131,0,149,0,229,0,45,1,73,1,124,1,143,1,189,1,217,1,193,1,36,2,88,2,11,2,73,2, +151,2,133,2,174,2,184,2,152,2,176,2,163,2,110,2,58,2,234,1,156,1,99,1,49,1,244,0,195,0,179,0, +145,0,95,0,51,0,246,255,190,255,110,255,28,255,255,254,194,254,150,254,147,254,43,254,234,253,4,254,188,253,142,253, +188,253,183,253,165,253,164,253,189,253,252,253,37,254,112,254,188,254,216,254,63,255,135,255,122,255,175,255,208,255,220,255, +37,0,38,0,39,0,121,0,146,0,146,0,170,0,178,0,189,0,162,0,135,0,136,0,95,0,97,0,107,0,29,0, +33,0,91,0,57,0,53,0,54,0,6,0,47,0,69,0,237,255,233,255,251,255,170,255,137,255,141,255,102,255,110,255, +130,255,131,255,182,255,206,255,204,255,12,0,55,0,75,0,135,0,142,0,104,0,96,0,49,0,232,255,198,255,158,255, +103,255,70,255,59,255,68,255,73,255,38,255,248,254,243,254,15,255,59,255,78,255,45,255,33,255,68,255,76,255,51,255, +38,255,76,255,122,255,92,255,118,255,227,255,209,255,209,255,104,0,169,0,216,0,72,1,53,1,35,1,123,1,150,1, +142,1,107,1,29,1,7,1,235,0,183,0,175,0,143,0,125,0,135,0,128,0,173,0,177,0,116,0,144,0,128,0, +29,0,12,0,218,255,130,255,134,255,106,255,56,255,52,255,16,255,38,255,117,255,113,255,111,255,103,255,55,255,106,255, +157,255,106,255,88,255,71,255,30,255,34,255,12,255,1,255,34,255,0,255,233,254,19,255,55,255,108,255,137,255,133,255, +142,255,104,255,105,255,154,255,120,255,131,255,170,255,133,255,207,255,14,0,196,255,15,0,129,0,93,0,127,0,190,0, +172,0,183,0,174,0,138,0,128,0,90,0,55,0,62,0,62,0,41,0,12,0,22,0,50,0,27,0,29,0,82,0, +88,0,60,0,55,0,48,0,0,0,216,255,203,255,147,255,117,255,155,255,130,255,107,255,161,255,141,255,71,255,52,255, +50,255,81,255,103,255,78,255,79,255,82,255,100,255,164,255,190,255,248,255,93,0,90,0,93,0,201,0,24,1,46,1, +49,1,44,1,58,1,61,1,57,1,26,1,194,0,187,0,247,0,206,0,156,0,167,0,150,0,155,0,184,0,168,0, +148,0,124,0,104,0,98,0,20,0,167,255,118,255,82,255,30,255,220,254,170,254,157,254,94,254,6,254,255,253,24,254, +45,254,42,254,250,253,11,254,53,254,16,254,19,254,71,254,92,254,119,254,114,254,112,254,199,254,7,255,30,255,73,255, +52,255,51,255,159,255,178,255,107,255,129,255,144,255,119,255,191,255,234,255,187,255,230,255,63,0,109,0,177,0,230,0, +22,1,89,1,100,1,110,1,104,1,44,1,57,1,48,1,209,0,208,0,190,0,81,0,78,0,100,0,40,0,255,255, +228,255,194,255,160,255,147,255,152,255,68,255,244,254,16,255,211,254,102,254,113,254,112,254,98,254,142,254,133,254,102,254, +160,254,245,254,16,255,34,255,104,255,165,255,193,255,233,255,227,255,202,255,2,0,34,0,12,0,34,0,51,0,38,0, +69,0,122,0,149,0,199,0,12,1,14,1,237,0,252,0,0,1,219,0,199,0,189,0,179,0,136,0,70,0,85,0, +124,0,99,0,86,0,73,0,62,0,115,0,130,0,79,0,57,0,39,0,7,0,239,255,209,255,189,255,174,255,181,255, +214,255,173,255,101,255,110,255,111,255,70,255,73,255,96,255,89,255,26,255,196,254,194,254,235,254,210,254,188,254,191,254, +157,254,143,254,189,254,230,254,218,254,198,254,240,254,37,255,48,255,95,255,143,255,142,255,205,255,20,0,252,255,44,0, +166,0,183,0,187,0,22,1,60,1,25,1,40,1,93,1,111,1,109,1,122,1,149,1,180,1,180,1,163,1,174,1, +177,1,153,1,131,1,102,1,86,1,97,1,78,1,31,1,5,1,234,0,170,0,80,0,2,0,208,255,166,255,146,255, +120,255,43,255,9,255,41,255,12,255,234,254,10,255,255,254,224,254,216,254,168,254,163,254,192,254,146,254,129,254,138,254, +99,254,122,254,147,254,111,254,147,254,207,254,243,254,32,255,27,255,53,255,134,255,157,255,176,255,205,255,226,255,8,0, +248,255,10,0,68,0,53,0,139,0,234,0,161,0,206,0,58,1,26,1,40,1,56,1,50,1,102,1,55,1,22,1, +91,1,73,1,49,1,35,1,226,0,206,0,156,0,104,0,110,0,52,0,23,0,8,0,188,255,200,255,187,255,96,255, +72,255,23,255,237,254,234,254,184,254,206,254,200,254,121,254,157,254,152,254,114,254,168,254,139,254,113,254,140,254,119,254, +175,254,196,254,183,254,30,255,20,255,248,254,112,255,133,255,159,255,217,255,183,255,27,0,120,0,70,0,123,0,158,0, +156,0,240,0,230,0,232,0,72,1,72,1,63,1,92,1,108,1,153,1,142,1,110,1,133,1,124,1,102,1,83,1, +67,1,67,1,21,1,255,0,23,1,229,0,176,0,162,0,127,0,75,0,24,0,34,0,18,0,141,255,74,255,56,255, +230,254,193,254,157,254,117,254,124,254,62,254,28,254,79,254,65,254,69,254,98,254,66,254,82,254,146,254,198,254,216,254, +187,254,237,254,61,255,79,255,152,255,187,255,163,255,8,0,73,0,36,0,99,0,190,0,223,0,15,1,78,1,136,1, +149,1,142,1,184,1,197,1,188,1,217,1,216,1,211,1,224,1,179,1,137,1,144,1,130,1,75,1,16,1,249,0, +231,0,181,0,139,0,62,0,218,255,210,255,173,255,57,255,31,255,251,254,121,254,84,254,104,254,61,254,23,254,250,253, +239,253,6,254,0,254,252,253,14,254,15,254,34,254,50,254,50,254,69,254,66,254,83,254,147,254,162,254,182,254,10,255, +84,255,157,255,247,255,57,0,113,0,184,0,8,1,40,1,66,1,162,1,191,1,150,1,195,1,219,1,210,1,34,2, +74,2,53,2,66,2,38,2,242,1,233,1,215,1,173,1,121,1,60,1,253,0,183,0,112,0,32,0,223,255,174,255, +99,255,85,255,120,255,56,255,231,254,209,254,176,254,180,254,178,254,104,254,75,254,92,254,67,254,26,254,4,254,12,254, +21,254,19,254,67,254,124,254,138,254,172,254,215,254,233,254,19,255,89,255,136,255,156,255,192,255,235,255,253,255,20,0, +52,0,69,0,112,0,190,0,225,0,200,0,206,0,239,0,212,0,194,0,219,0,180,0,164,0,219,0,182,0,120,0, +147,0,126,0,72,0,104,0,128,0,63,0,9,0,17,0,242,255,162,255,115,255,69,255,23,255,25,255,1,255,186,254, +144,254,152,254,158,254,114,254,109,254,158,254,114,254,41,254,44,254,37,254,36,254,54,254,42,254,72,254,126,254,154,254, +210,254,4,255,49,255,145,255,216,255,234,255,253,255,30,0,57,0,50,0,52,0,82,0,94,0,128,0,150,0,123,0, +185,0,12,1,240,0,5,1,82,1,66,1,59,1,109,1,84,1,16,1,3,1,0,1,211,0,155,0,116,0,94,0, +73,0,35,0,14,0,12,0,253,255,255,255,245,255,182,255,158,255,163,255,109,255,76,255,66,255,254,254,205,254,216,254, +211,254,176,254,144,254,136,254,137,254,133,254,178,254,213,254,171,254,181,254,229,254,206,254,227,254,37,255,22,255,8,255, +42,255,61,255,80,255,97,255,126,255,186,255,223,255,10,0,77,0,103,0,137,0,180,0,159,0,129,0,120,0,124,0, +154,0,156,0,158,0,213,0,225,0,194,0,207,0,204,0,189,0,222,0,213,0,148,0,130,0,108,0,50,0,24,0, +249,255,204,255,189,255,127,255,66,255,89,255,81,255,68,255,103,255,54,255,249,254,25,255,3,255,188,254,200,254,217,254, +150,254,116,254,171,254,163,254,107,254,127,254,131,254,124,254,166,254,154,254,158,254,223,254,244,254,41,255,77,255,49,255, +116,255,159,255,133,255,210,255,250,255,222,255,10,0,56,0,99,0,124,0,112,0,159,0,166,0,122,0,150,0,145,0, +152,0,207,0,148,0,112,0,159,0,114,0,82,0,124,0,106,0,64,0,56,0,54,0,39,0,14,0,241,255,195,255, +165,255,161,255,117,255,60,255,42,255,41,255,35,255,252,254,204,254,181,254,162,254,135,254,110,254,124,254,144,254,103,254, +97,254,126,254,102,254,131,254,178,254,163,254,220,254,21,255,1,255,56,255,130,255,128,255,141,255,200,255,246,255,222,255, +210,255,32,0,85,0,102,0,133,0,134,0,160,0,216,0,224,0,222,0,207,0,177,0,171,0,163,0,137,0,88,0, +52,0,48,0,14,0,250,255,229,255,140,255,135,255,167,255,84,255,61,255,90,255,32,255,10,255,14,255,245,254,5,255, +8,255,240,254,225,254,207,254,235,254,255,254,212,254,231,254,24,255,5,255,30,255,117,255,126,255,112,255,169,255,196,255, +179,255,204,255,240,255,0,0,2,0,18,0,88,0,125,0,103,0,124,0,155,0,183,0,208,0,167,0,167,0,222,0, +213,0,195,0,170,0,133,0,162,0,165,0,113,0,87,0,84,0,108,0,85,0,23,0,34,0,26,0,8,0,40,0, +235,255,176,255,228,255,224,255,182,255,163,255,120,255,98,255,90,255,70,255,60,255,72,255,77,255,14,255,218,254,238,254, +242,254,28,255,72,255,7,255,248,254,56,255,81,255,96,255,99,255,150,255,227,255,207,255,233,255,48,0,30,0,56,0, +95,0,96,0,152,0,152,0,152,0,234,0,213,0,173,0,230,0,248,0,230,0,212,0,205,0,237,0,228,0,184,0, +158,0,120,0,81,0,55,0,43,0,13,0,225,255,243,255,230,255,138,255,123,255,135,255,106,255,110,255,97,255,52,255, +34,255,52,255,90,255,74,255,45,255,53,255,21,255,19,255,48,255,18,255,30,255,49,255,62,255,164,255,175,255,117,255, +186,255,214,255,185,255,233,255,251,255,6,0,52,0,48,0,74,0,140,0,131,0,108,0,163,0,203,0,180,0,213,0, +19,1,236,0,198,0,241,0,15,1,25,1,28,1,14,1,11,1,250,0,225,0,208,0,168,0,136,0,118,0,74,0, +19,0,227,255,192,255,158,255,139,255,151,255,128,255,76,255,53,255,20,255,250,254,244,254,207,254,192,254,194,254,188,254, +236,254,2,255,216,254,233,254,12,255,13,255,47,255,75,255,70,255,119,255,172,255,145,255,146,255,211,255,221,255,225,255, +28,0,48,0,95,0,201,0,203,0,164,0,239,0,67,1,61,1,34,1,43,1,64,1,56,1,31,1,27,1,45,1, +35,1,253,0,251,0,250,0,224,0,235,0,212,0,151,0,161,0,153,0,96,0,101,0,95,0,45,0,36,0,5,0, +175,255,151,255,217,255,246,255,184,255,130,255,130,255,130,255,113,255,89,255,94,255,127,255,128,255,104,255,107,255,126,255, +118,255,106,255,125,255,116,255,117,255,169,255,144,255,135,255,240,255,227,255,188,255,26,0,30,0,9,0,60,0,32,0, +40,0,83,0,51,0,93,0,131,0,98,0,162,0,202,0,161,0,185,0,208,0,223,0,239,0,200,0,202,0,234,0, +187,0,146,0,156,0,156,0,127,0,88,0,85,0,98,0,85,0,70,0,67,0,68,0,70,0,41,0,12,0,35,0, +26,0,188,255,149,255,186,255,151,255,107,255,138,255,144,255,114,255,82,255,67,255,121,255,148,255,93,255,62,255,49,255, +63,255,128,255,123,255,89,255,121,255,148,255,168,255,200,255,205,255,213,255,247,255,37,0,68,0,64,0,58,0,65,0, +80,0,95,0,88,0,108,0,154,0,139,0,120,0,169,0,197,0,153,0,116,0,157,0,197,0,141,0,100,0,124,0, +92,0,53,0,87,0,70,0,2,0,1,0,20,0,3,0,242,255,211,255,172,255,169,255,188,255,180,255,128,255,82,255, +80,255,80,255,86,255,97,255,74,255,74,255,70,255,41,255,107,255,156,255,107,255,128,255,149,255,140,255,225,255,236,255, +182,255,233,255,241,255,205,255,239,255,249,255,3,0,40,0,44,0,67,0,111,0,122,0,113,0,115,0,145,0,130,0, +77,0,84,0,96,0,81,0,75,0,46,0,30,0,33,0,27,0,35,0,9,0,246,255,53,0,54,0,224,255,223,255, +33,0,27,0,246,255,12,0,8,0,221,255,234,255,207,255,175,255,241,255,239,255,223,255,36,0,255,255,218,255,20,0, +250,255,237,255,16,0,252,255,10,0,16,0,255,255,35,0,24,0,9,0,56,0,88,0,134,0,144,0,117,0,154,0, +132,0,84,0,133,0,127,0,104,0,139,0,88,0,36,0,64,0,55,0,64,0,99,0,65,0,54,0,83,0,32,0, +232,255,246,255,233,255,197,255,202,255,209,255,189,255,145,255,127,255,168,255,152,255,108,255,138,255,129,255,101,255,132,255, +123,255,135,255,186,255,152,255,117,255,124,255,129,255,148,255,126,255,127,255,193,255,199,255,195,255,225,255,237,255,36,0, +69,0,37,0,58,0,107,0,137,0,136,0,104,0,144,0,211,0,206,0,187,0,181,0,210,0,246,0,214,0,211,0, +247,0,219,0,187,0,172,0,148,0,160,0,167,0,116,0,79,0,88,0,63,0,9,0,27,0,22,0,195,255,206,255, +241,255,191,255,179,255,155,255,90,255,111,255,126,255,58,255,9,255,15,255,38,255,33,255,21,255,34,255,22,255,16,255, +58,255,101,255,134,255,146,255,157,255,165,255,126,255,141,255,207,255,217,255,12,0,72,0,44,0,66,0,113,0,95,0, +127,0,175,0,164,0,170,0,202,0,208,0,194,0,197,0,213,0,212,0,202,0,201,0,207,0,202,0,178,0,165,0, +133,0,85,0,103,0,102,0,41,0,44,0,28,0,206,255,205,255,205,255,138,255,119,255,139,255,127,255,95,255,81,255, +79,255,66,255,92,255,138,255,118,255,73,255,52,255,65,255,103,255,102,255,81,255,82,255,86,255,112,255,117,255,96,255, +127,255,148,255,150,255,178,255,153,255,152,255,241,255,250,255,225,255,51,0,118,0,86,0,62,0,87,0,105,0,105,0, +111,0,99,0,96,0,144,0,172,0,148,0,127,0,118,0,124,0,142,0,129,0,88,0,86,0,103,0,66,0,38,0, +58,0,39,0,29,0,53,0,255,255,198,255,214,255,228,255,220,255,179,255,157,255,191,255,150,255,89,255,123,255,133,255, +141,255,163,255,101,255,87,255,126,255,78,255,69,255,128,255,116,255,70,255,67,255,104,255,125,255,125,255,171,255,202,255, +186,255,217,255,13,0,75,0,130,0,84,0,61,0,114,0,105,0,118,0,181,0,166,0,175,0,233,0,223,0,199,0, +196,0,181,0,181,0,181,0,162,0,148,0,147,0,126,0,62,0,45,0,87,0,47,0,5,0,67,0,64,0,250,255, +12,0,34,0,250,255,251,255,1,0,197,255,169,255,209,255,213,255,181,255,172,255,151,255,130,255,170,255,216,255,204,255, +175,255,192,255,254,255,18,0,235,255,225,255,4,0,19,0,253,255,253,255,28,0,12,0,0,0,57,0,67,0,31,0, +43,0,64,0,75,0,80,0,65,0,60,0,51,0,46,0,79,0,109,0,137,0,147,0,133,0,156,0,148,0,109,0, +142,0,138,0,91,0,119,0,125,0,66,0,14,0,24,0,62,0,247,255,196,255,25,0,0,0,201,255,22,0,13,0, +220,255,9,0,24,0,22,0,255,255,228,255,11,0,254,255,221,255,228,255,173,255,191,255,12,0,224,255,200,255,217,255, +219,255,19,0,9,0,240,255,46,0,25,0,19,0,95,0,75,0,71,0,125,0,92,0,55,0,72,0,103,0,117,0, +69,0,62,0,105,0,87,0,65,0,45,0,11,0,31,0,35,0,248,255,238,255,245,255,235,255,217,255,245,255,45,0, +9,0,234,255,28,0,21,0,0,0,250,255,197,255,230,255,28,0,214,255,189,255,206,255,167,255,187,255,207,255,169,255, +186,255,215,255,206,255,194,255,180,255,193,255,201,255,187,255,208,255,206,255,184,255,209,255,229,255,2,0,33,0,252,255, +0,0,65,0,84,0,100,0,97,0,53,0,81,0,127,0,108,0,104,0,124,0,121,0,111,0,107,0,120,0,144,0, +175,0,192,0,149,0,108,0,120,0,114,0,96,0,102,0,73,0,32,0,40,0,22,0,224,255,224,255,235,255,214,255, +239,255,10,0,216,255,191,255,208,255,186,255,163,255,144,255,112,255,139,255,164,255,122,255,119,255,143,255,129,255,134,255, +128,255,90,255,120,255,148,255,109,255,135,255,195,255,188,255,192,255,188,255,162,255,216,255,249,255,219,255,10,0,53,0, +30,0,58,0,89,0,89,0,121,0,137,0,136,0,145,0,123,0,114,0,131,0,112,0,90,0,94,0,92,0,89,0, +94,0,94,0,81,0,79,0,80,0,55,0,28,0,10,0,247,255,249,255,243,255,203,255,187,255,196,255,193,255,174,255, +160,255,178,255,172,255,123,255,100,255,89,255,72,255,80,255,86,255,79,255,70,255,64,255,72,255,69,255,76,255,100,255, +76,255,83,255,139,255,122,255,136,255,240,255,251,255,223,255,7,0,27,0,29,0,40,0,37,0,72,0,108,0,98,0, +107,0,125,0,126,0,135,0,135,0,145,0,160,0,137,0,152,0,209,0,198,0,158,0,136,0,94,0,74,0,81,0, +76,0,79,0,64,0,253,255,188,255,169,255,194,255,198,255,159,255,140,255,113,255,92,255,113,255,74,255,20,255,52,255, +31,255,236,254,7,255,0,255,238,254,14,255,10,255,19,255,46,255,1,255,223,254,245,254,11,255,26,255,16,255,14,255, +39,255,52,255,85,255,113,255,118,255,195,255,10,0,246,255,1,0,49,0,45,0,27,0,33,0,66,0,96,0,96,0, +120,0,140,0,120,0,138,0,172,0,173,0,177,0,158,0,117,0,86,0,55,0,70,0,103,0,71,0,52,0,54,0, +4,0,251,255,16,0,217,255,169,255,173,255,159,255,125,255,94,255,78,255,75,255,39,255,248,254,230,254,235,254,239,254, +205,254,169,254,190,254,210,254,196,254,203,254,219,254,197,254,193,254,246,254,5,255,230,254,12,255,59,255,61,255,121,255, +163,255,133,255,167,255,210,255,196,255,241,255,34,0,8,0,22,0,71,0,75,0,74,0,102,0,138,0,159,0,154,0, +142,0,133,0,123,0,124,0,124,0,103,0,101,0,104,0,47,0,0,0,15,0,2,0,230,255,215,255,163,255,146,255, +164,255,108,255,83,255,114,255,67,255,27,255,47,255,15,255,239,254,241,254,205,254,196,254,209,254,174,254,197,254,254,254, +223,254,216,254,251,254,215,254,216,254,255,254,235,254,4,255,33,255,10,255,66,255,117,255,110,255,170,255,194,255,160,255, +198,255,237,255,2,0,15,0,0,0,40,0,60,0,27,0,84,0,106,0,37,0,57,0,92,0,67,0,56,0,41,0, +46,0,64,0,26,0,0,0,10,0,1,0,244,255,236,255,214,255,176,255,153,255,173,255,189,255,151,255,85,255,60,255, +75,255,43,255,13,255,33,255,251,254,218,254,228,254,197,254,225,254,250,254,180,254,217,254,11,255,220,254,23,255,55,255, +241,254,6,255,14,255,14,255,112,255,126,255,93,255,134,255,153,255,183,255,216,255,199,255,220,255,10,0,46,0,66,0, +34,0,54,0,118,0,93,0,78,0,105,0,99,0,111,0,109,0,52,0,41,0,69,0,71,0,54,0,12,0,239,255, +249,255,226,255,175,255,171,255,155,255,102,255,112,255,145,255,93,255,42,255,50,255,32,255,0,255,15,255,255,254,187,254, +188,254,225,254,199,254,226,254,46,255,1,255,210,254,31,255,83,255,67,255,78,255,108,255,125,255,121,255,129,255,180,255, +231,255,252,255,253,255,9,0,40,0,46,0,44,0,66,0,80,0,92,0,80,0,54,0,89,0,73,0,239,255,21,0, +100,0,63,0,42,0,59,0,48,0,52,0,54,0,39,0,29,0,244,255,207,255,216,255,210,255,185,255,170,255,144,255, +149,255,167,255,111,255,93,255,161,255,141,255,77,255,81,255,69,255,76,255,113,255,80,255,77,255,111,255,96,255,121,255, +146,255,134,255,186,255,210,255,195,255,243,255,17,0,17,0,17,0,252,255,27,0,53,0,17,0,33,0,47,0,15,0, +30,0,53,0,68,0,98,0,83,0,77,0,113,0,115,0,105,0,111,0,92,0,70,0,84,0,96,0,49,0,1,0, +30,0,48,0,247,255,233,255,33,0,17,0,199,255,196,255,209,255,167,255,162,255,191,255,173,255,137,255,117,255,109,255, +120,255,146,255,146,255,115,255,151,255,196,255,131,255,146,255,255,255,219,255,193,255,22,0,10,0,225,255,245,255,1,0, +48,0,73,0,49,0,66,0,56,0,39,0,83,0,94,0,83,0,94,0,91,0,101,0,100,0,70,0,73,0,72,0, +45,0,68,0,92,0,39,0,22,0,85,0,64,0,246,255,3,0,255,255,225,255,239,255,212,255,193,255,200,255,156,255, +162,255,160,255,99,255,142,255,177,255,133,255,146,255,135,255,124,255,166,255,145,255,142,255,152,255,110,255,148,255,193,255, +192,255,227,255,199,255,188,255,252,255,242,255,2,0,54,0,43,0,93,0,124,0,77,0,92,0,85,0,65,0,138,0, +171,0,149,0,140,0,126,0,126,0,99,0,62,0,109,0,174,0,159,0,85,0,61,0,111,0,82,0,39,0,100,0, +112,0,88,0,112,0,59,0,251,255,35,0,64,0,29,0,241,255,237,255,4,0,237,255,208,255,228,255,226,255,192,255, +182,255,198,255,203,255,195,255,189,255,180,255,190,255,229,255,230,255,222,255,0,0,23,0,20,0,23,0,53,0,99,0, +88,0,70,0,121,0,147,0,127,0,138,0,159,0,155,0,144,0,163,0,201,0,195,0,189,0,205,0,177,0,154,0, +178,0,201,0,208,0,165,0,127,0,165,0,163,0,108,0,113,0,123,0,101,0,95,0,78,0,59,0,42,0,248,255, +235,255,1,0,238,255,228,255,222,255,184,255,229,255,43,0,238,255,194,255,242,255,232,255,197,255,195,255,185,255,228,255, +20,0,225,255,178,255,196,255,220,255,254,255,26,0,21,0,1,0,11,0,70,0,89,0,47,0,69,0,109,0,80,0, +96,0,148,0,122,0,117,0,153,0,115,0,101,0,170,0,175,0,134,0,143,0,158,0,156,0,142,0,130,0,155,0, +156,0,107,0,81,0,73,0,57,0,53,0,50,0,29,0,247,255,9,0,51,0,242,255,191,255,2,0,1,0,203,255, +219,255,225,255,209,255,204,255,204,255,228,255,225,255,206,255,202,255,152,255,168,255,20,0,24,0,1,0,43,0,16,0, +5,0,74,0,57,0,4,0,41,0,74,0,60,0,42,0,24,0,43,0,88,0,72,0,38,0,60,0,86,0,87,0, +76,0,66,0,84,0,104,0,102,0,107,0,108,0,94,0,69,0,38,0,51,0,80,0,71,0,43,0,251,255,243,255, +39,0,22,0,240,255,9,0,250,255,222,255,255,255,14,0,249,255,240,255,248,255,246,255,224,255,219,255,208,255,181,255, +185,255,184,255,200,255,248,255,4,0,22,0,23,0,242,255,39,0,67,0,253,255,14,0,46,0,21,0,58,0,85,0, +62,0,58,0,71,0,99,0,71,0,33,0,92,0,100,0,51,0,81,0,81,0,49,0,73,0,70,0,37,0,34,0, +44,0,38,0,18,0,16,0,253,255,212,255,222,255,236,255,219,255,199,255,189,255,248,255,4,0,183,255,231,255,42,0, +224,255,201,255,225,255,202,255,213,255,218,255,202,255,200,255,193,255,228,255,9,0,4,0,24,0,33,0,38,0,66,0, +42,0,34,0,86,0,85,0,70,0,119,0,122,0,43,0,25,0,84,0,68,0,25,0,62,0,70,0,44,0,47,0, +4,0,233,255,7,0,4,0,11,0,39,0,16,0,9,0,50,0,55,0,4,0,228,255,248,255,6,0,14,0,28,0, +6,0,255,255,17,0,230,255,204,255,1,0,12,0,225,255,210,255,207,255,197,255,224,255,247,255,208,255,204,255,249,255, +239,255,242,255,29,0,250,255,210,255,2,0,47,0,32,0,4,0,10,0,21,0,32,0,54,0,32,0,24,0,64,0, +36,0,29,0,76,0,40,0,44,0,93,0,50,0,57,0,86,0,32,0,48,0,87,0,60,0,62,0,72,0,73,0, +54,0,255,255,9,0,43,0,28,0,34,0,35,0,21,0,50,0,80,0,66,0,9,0,12,0,104,0,82,0,15,0, +73,0,69,0,253,255,24,0,37,0,241,255,230,255,252,255,13,0,19,0,22,0,23,0,21,0,62,0,117,0,106,0, +81,0,104,0,111,0,75,0,80,0,121,0,102,0,84,0,103,0,64,0,36,0,74,0,85,0,82,0,80,0,65,0, +68,0,63,0,77,0,82,0,30,0,59,0,102,0,25,0,14,0,44,0,243,255,244,255,27,0,30,0,39,0,14,0, +11,0,26,0,243,255,22,0,63,0,8,0,25,0,58,0,46,0,99,0,106,0,69,0,98,0,86,0,75,0,107,0, +86,0,89,0,108,0,81,0,98,0,109,0,92,0,134,0,150,0,117,0,124,0,149,0,156,0,134,0,121,0,141,0, +131,0,125,0,137,0,100,0,97,0,120,0,88,0,92,0,91,0,50,0,91,0,99,0,31,0,47,0,58,0,27,0, +47,0,39,0,22,0,35,0,6,0,255,255,2,0,204,255,207,255,245,255,245,255,6,0,239,255,199,255,243,255,11,0, +241,255,250,255,8,0,16,0,6,0,236,255,23,0,86,0,67,0,43,0,82,0,119,0,108,0,116,0,171,0,153,0, +92,0,135,0,178,0,150,0,166,0,178,0,143,0,132,0,129,0,157,0,201,0,176,0,156,0,149,0,97,0,98,0, +118,0,94,0,104,0,92,0,69,0,109,0,88,0,45,0,61,0,39,0,53,0,79,0,4,0,14,0,67,0,1,0, +14,0,68,0,37,0,63,0,64,0,1,0,31,0,78,0,90,0,89,0,42,0,62,0,119,0,83,0,90,0,132,0, +106,0,121,0,149,0,116,0,131,0,167,0,156,0,161,0,171,0,170,0,199,0,201,0,156,0,149,0,170,0,176,0, +189,0,194,0,186,0,186,0,165,0,149,0,165,0,152,0,136,0,163,0,183,0,177,0,156,0,152,0,177,0,144,0, +96,0,119,0,109,0,67,0,88,0,84,0,48,0,60,0,57,0,38,0,81,0,122,0,97,0,73,0,82,0,81,0, +85,0,99,0,90,0,86,0,86,0,80,0,109,0,119,0,111,0,147,0,147,0,134,0,195,0,204,0,160,0,166,0, +173,0,176,0,188,0,167,0,155,0,163,0,178,0,215,0,226,0,216,0,225,0,210,0,175,0,154,0,150,0,162,0, +153,0,132,0,147,0,163,0,135,0,107,0,130,0,141,0,92,0,87,0,113,0,86,0,105,0,142,0,89,0,108,0, +172,0,120,0,115,0,163,0,101,0,84,0,121,0,61,0,71,0,152,0,99,0,57,0,102,0,101,0,114,0,128,0, +93,0,137,0,165,0,96,0,121,0,182,0,169,0,182,0,164,0,117,0,160,0,180,0,155,0,174,0,170,0,146,0, +130,0,108,0,136,0,146,0,109,0,144,0,157,0,87,0,96,0,125,0,80,0,93,0,130,0,100,0,106,0,116,0, +49,0,41,0,92,0,69,0,38,0,29,0,241,255,0,0,70,0,60,0,35,0,53,0,35,0,28,0,66,0,61,0, +35,0,36,0,42,0,75,0,70,0,11,0,40,0,81,0,11,0,245,255,32,0,43,0,62,0,39,0,23,0,101,0, +95,0,49,0,113,0,112,0,70,0,115,0,117,0,84,0,79,0,59,0,62,0,66,0,52,0,54,0,28,0,29,0, +68,0,51,0,50,0,64,0,39,0,45,0,30,0,255,255,39,0,46,0,9,0,254,255,225,255,224,255,8,0,16,0, +13,0,255,255,249,255,31,0,29,0,251,255,16,0,36,0,7,0,249,255,29,0,50,0,26,0,20,0,37,0,30,0, +11,0,31,0,101,0,130,0,87,0,82,0,123,0,132,0,122,0,133,0,154,0,137,0,107,0,119,0,106,0,90,0, +119,0,106,0,91,0,100,0,52,0,40,0,81,0,87,0,84,0,50,0,49,0,118,0,79,0,24,0,74,0,74,0, +72,0,100,0,47,0,32,0,69,0,50,0,35,0,38,0,51,0,76,0,51,0,28,0,52,0,54,0,38,0,39,0, +50,0,52,0,51,0,52,0,37,0,37,0,47,0,27,0,42,0,44,0,227,255,219,255,7,0,254,255,249,255,8,0, +18,0,31,0,43,0,51,0,23,0,21,0,70,0,58,0,78,0,146,0,73,0,250,255,30,0,48,0,57,0,36,0, +250,255,38,0,55,0,17,0,29,0,14,0,230,255,244,255,8,0,244,255,222,255,246,255,247,255,203,255,223,255,240,255, +214,255,222,255,202,255,205,255,254,255,215,255,193,255,231,255,218,255,233,255,244,255,220,255,247,255,254,255,247,255,1,0, +248,255,41,0,62,0,13,0,23,0,25,0,28,0,60,0,32,0,43,0,53,0,30,0,100,0,66,0,249,255,89,0, +56,0,248,255,95,0,59,0,16,0,64,0,242,255,254,255,67,0,242,255,246,255,30,0,232,255,236,255,236,255,211,255, +230,255,209,255,187,255,198,255,191,255,201,255,200,255,174,255,177,255,217,255,254,255,224,255,177,255,195,255,202,255,175,255, +184,255,218,255,244,255,247,255,242,255,230,255,206,255,225,255,248,255,234,255,251,255,20,0,5,0,252,255,12,0,30,0, +250,255,239,255,63,0,65,0,41,0,117,0,89,0,17,0,85,0,96,0,21,0,16,0,24,0,31,0,58,0,45,0, +28,0,37,0,31,0,12,0,11,0,15,0,8,0,254,255,230,255,227,255,250,255,193,255,138,255,192,255,207,255,172,255, +185,255,200,255,216,255,227,255,224,255,237,255,226,255,242,255,18,0,231,255,241,255,28,0,242,255,243,255,12,0,2,0, +17,0,0,0,255,255,251,255,181,255,236,255,62,0,24,0,41,0,26,0,251,255,97,0,83,0,255,255,60,0,90,0, +72,0,49,0,15,0,84,0,109,0,69,0,144,0,160,0,90,0,93,0,84,0,68,0,61,0,20,0,11,0,245,255, +221,255,241,255,201,255,186,255,222,255,169,255,156,255,200,255,165,255,176,255,217,255,200,255,250,255,37,0,226,255,221,255, +25,0,19,0,246,255,220,255,179,255,177,255,169,255,109,255,119,255,204,255,234,255,239,255,31,0,65,0,38,0,3,0, +27,0,49,0,2,0,221,255,233,255,249,255,0,0,8,0,57,0,118,0,104,0,89,0,120,0,116,0,109,0,104,0, +57,0,45,0,63,0,32,0,255,255,254,255,247,255,237,255,233,255,225,255,235,255,247,255,197,255,162,255,220,255,241,255, +189,255,183,255,188,255,170,255,172,255,163,255,163,255,197,255,203,255,194,255,178,255,144,255,142,255,172,255,207,255,234,255, +221,255,211,255,243,255,251,255,220,255,205,255,216,255,236,255,237,255,229,255,242,255,241,255,209,255,204,255,227,255,228,255, +212,255,186,255,172,255,220,255,25,0,22,0,238,255,215,255,1,0,56,0,19,0,225,255,209,255,171,255,173,255,192,255, +169,255,156,255,121,255,113,255,153,255,130,255,176,255,238,255,136,255,184,255,69,0,231,255,221,255,55,0,224,255,203,255, +232,255,174,255,203,255,184,255,101,255,154,255,187,255,190,255,13,0,59,0,88,0,75,0,1,0,254,255,236,255,174,255, +186,255,164,255,113,255,180,255,15,0,27,0,248,255,0,0,38,0,217,255,106,255,124,255,130,255,80,255,78,255,67,255, +51,255,82,255,114,255,168,255,223,255,235,255,22,0,37,0,242,255,22,0,86,0,46,0,238,255,183,255,140,255,94,255, +25,255,54,255,109,255,60,255,65,255,119,255,147,255,220,255,229,255,208,255,22,0,40,0,61,0,111,0,41,0,7,0, +5,0,181,255,168,255,131,255,74,255,166,255,205,255,196,255,4,0,243,255,236,255,36,0,40,0,70,0,54,0,247,255, +8,0,198,255,125,255,185,255,155,255,128,255,238,255,18,0,17,0,68,0,85,0,99,0,77,0,8,0,20,0,64,0, +43,0,4,0,210,255,139,255,96,255,82,255,56,255,30,255,10,255,246,254,14,255,69,255,90,255,89,255,95,255,137,255, +186,255,186,255,221,255,45,0,22,0,204,255,217,255,6,0,3,0,247,255,26,0,54,0,13,0,245,255,11,0,12,0, +6,0,11,0,39,0,71,0,42,0,15,0,16,0,220,255,181,255,171,255,124,255,111,255,142,255,179,255,4,0,39,0, +0,0,252,255,2,0,235,255,202,255,160,255,144,255,117,255,76,255,110,255,108,255,27,255,26,255,39,255,4,255,22,255, +16,255,209,254,207,254,2,255,71,255,132,255,139,255,141,255,162,255,173,255,156,255,124,255,152,255,208,255,207,255,228,255, +29,0,35,0,24,0,56,0,117,0,145,0,120,0,96,0,72,0,33,0,13,0,254,255,240,255,205,255,158,255,190,255, +212,255,185,255,217,255,196,255,122,255,184,255,28,0,51,0,43,0,14,0,253,255,222,255,184,255,237,255,26,0,242,255, +207,255,196,255,183,255,158,255,129,255,142,255,176,255,186,255,161,255,140,255,156,255,148,255,141,255,182,255,202,255,219,255, +212,255,197,255,42,0,94,0,28,0,55,0,85,0,78,0,153,0,165,0,112,0,97,0,85,0,82,0,14,0,176,255, +173,255,117,255,20,255,234,254,151,254,111,254,128,254,104,254,153,254,241,254,28,255,91,255,140,255,168,255,198,255,209,255, +225,255,172,255,85,255,112,255,158,255,177,255,6,0,131,0,254,0,96,1,175,1,219,1,207,1,227,1,235,1,191,1, +207,1,175,1,81,1,84,1,57,1,12,1,35,1,207,0,105,0,91,0,33,0,247,255,216,255,119,255,41,255,209,254, +111,254,78,254,30,254,191,253,111,253,101,253,138,253,131,253,150,253,227,253,36,254,188,254,98,255,149,255,215,255,15,0, +24,0,81,0,105,0,135,0,216,0,230,0,31,1,131,1,154,1,236,1,50,2,30,2,114,2,197,2,185,2,221,2, +213,2,126,2,73,2,16,2,243,1,25,2,24,2,229,1,175,1,124,1,83,1,74,1,121,1,135,1,66,1,41,1, +53,1,232,0,83,0,177,255,9,255,114,254,28,254,247,253,175,253,120,253,152,253,184,253,189,253,217,253,217,253,173,253, +152,253,161,253,158,253,162,253,199,253,218,253,243,253,37,254,46,254,84,254,172,254,203,254,18,255,140,255,173,255,198,255, +241,255,11,0,113,0,241,0,88,1,187,1,242,1,83,2,202,2,217,2,241,2,13,3,220,2,205,2,219,2,210,2, +175,2,86,2,46,2,33,2,204,1,177,1,192,1,173,1,204,1,205,1,117,1,31,1,190,0,106,0,51,0,179,255, +1,255,103,254,10,254,1,254,224,253,135,253,128,253,183,253,176,253,153,253,151,253,112,253,51,253,254,252,197,252,137,252, +11,252,117,251,91,251,125,251,181,251,69,252,168,252,213,252,70,253,164,253,255,253,100,254,71,254,21,254,37,254,23,254, +31,254,74,254,132,254,244,254,75,255,173,255,81,0,177,0,28,1,225,1,93,2,161,2,216,2,205,2,214,2,244,2, +248,2,30,3,54,3,34,3,59,3,136,3,203,3,223,3,6,4,120,4,141,4,59,4,62,4,37,4,126,3,188,2, +250,1,57,1,126,0,158,255,210,254,12,254,6,253,250,251,24,251,151,250,150,250,190,250,1,251,88,251,186,251,104,252, +244,252,254,252,243,252,221,252,146,252,23,252,129,251,74,251,136,251,239,251,97,252,222,252,167,253,78,254,124,254,43,255, +40,0,165,0,83,1,19,2,122,2,1,3,90,3,155,3,0,4,201,3,121,3,153,3,88,3,11,3,82,3,220,3, +154,4,152,5,206,6,241,7,118,8,136,8,105,8,230,7,12,7,249,5,181,4,112,3,127,2,231,1,64,1,187,0, +144,0,35,0,146,255,82,255,216,254,245,253,29,253,84,252,140,251,28,251,13,251,243,250,232,250,15,251,13,251,25,251, +69,251,65,251,138,251,249,251,235,251,223,251,230,251,192,251,229,251,79,252,240,252,211,253,129,254,7,255,156,255,49,0, +231,0,132,1,223,1,12,2,7,2,65,2,212,2,84,3,209,3,82,4,224,4,151,5,34,6,114,6,137,6,82,6, +42,6,252,5,118,5,206,4,24,4,107,3,225,2,68,2,189,1,139,1,120,1,79,1,249,0,145,0,51,0,186,255, +28,255,107,254,188,253,33,253,174,252,110,252,23,252,168,251,158,251,231,251,53,252,131,252,165,252,193,252,22,253,104,253, +156,253,204,253,243,253,19,254,55,254,118,254,233,254,94,255,174,255,24,0,189,0,63,1,152,1,24,2,95,2,69,2, +88,2,147,2,169,2,122,2,210,1,42,1,5,1,9,1,5,1,249,0,174,0,57,0,161,255,2,255,188,254,120,254, +219,253,145,253,164,253,69,253,185,252,118,252,56,252,73,252,178,252,155,252,2,252,138,251,98,251,120,251,143,251,140,251, +105,251,65,251,87,251,68,251,235,250,5,251,105,251,213,251,164,252,173,253,1,255,164,0,13,2,69,3,48,4,177,4, +30,5,34,5,228,4,209,4,85,4,226,3,13,4,37,4,87,4,189,4,214,4,6,5,20,5,94,4,108,3,118,2, +43,1,158,255,57,254,88,253,146,252,124,251,92,250,65,249,94,248,59,248,151,248,228,248,2,249,32,249,113,249,215,249, +4,250,245,249,195,249,104,249,26,249,47,249,92,249,93,249,162,249,37,250,174,250,152,251,207,252,50,254,20,0,55,2, +44,4,183,5,138,6,3,7,194,7,134,8,235,8,223,8,69,8,72,7,65,6,83,5,176,4,129,4,194,4,167,5, +20,7,71,8,12,9,135,9,125,9,18,9,102,8,40,7,125,5,194,3,31,2,198,0,193,255,16,255,116,254,178,253, +51,253,218,252,5,252,230,250,179,249,124,248,157,247,247,246,176,246,60,247,39,248,67,249,169,250,183,251,93,252,208,252, +181,252,76,252,215,251,29,251,110,250,11,250,249,249,159,250,217,251,228,252,156,253,135,254,228,255,88,1,198,2,46,4, +11,5,155,5,147,6,127,7,14,8,136,8,197,8,246,8,70,9,87,9,77,9,28,9,135,8,40,8,7,8,158,7, +26,7,142,6,3,6,182,5,115,5,47,5,18,5,241,4,211,4,173,4,109,4,63,4,230,3,15,3,213,1,59,0, +87,254,133,252,1,251,244,249,65,249,135,248,232,247,135,247,253,246,93,246,17,246,216,245,128,245,72,245,5,245,173,244, +156,244,211,244,93,245,85,246,120,247,201,248,71,250,88,251,29,252,18,253,181,253,251,253,139,254,10,255,69,255,233,255, +237,0,2,2,42,3,54,4,55,5,238,5,223,5,156,5,95,5,181,4,16,4,180,3,100,3,81,3,138,3,250,3, +122,4,186,4,195,4,114,4,193,3,27,3,96,2,218,1,200,1,67,1,166,0,169,0,121,0,36,0,0,0,46,255, +179,253,86,252,113,251,224,250,229,249,189,248,60,248,13,248,245,247,17,248,24,248,53,248,120,248,180,248,19,249,56,249, +250,248,4,249,112,249,239,249,91,250,123,250,84,250,192,249,236,248,1,249,242,249,218,250,97,252,152,254,83,0,165,1, +221,2,222,3,205,4,34,5,183,4,20,4,214,2,97,1,208,0,185,0,180,0,14,1,174,1,139,2,129,3,107,4, +58,5,68,5,140,4,244,3,163,3,81,3,204,2,40,2,166,1,24,1,217,0,96,1,11,2,162,2,73,3,151,3, +121,3,244,2,85,2,52,2,40,2,207,1,67,1,68,0,1,255,186,253,138,252,17,252,216,251,251,250,50,250,15,250, +82,250,212,250,15,251,7,251,110,251,0,252,105,252,254,252,120,253,225,253,210,254,239,255,208,0,167,1,70,2,182,2, +32,3,101,3,206,3,1,4,158,3,168,3,59,4,183,4,154,5,161,6,76,7,33,8,200,8,211,8,199,8,170,8, +63,8,107,7,59,6,40,5,71,4,114,3,161,2,98,1,186,255,73,254,80,253,206,252,98,252,186,251,74,251,22,251, +133,250,153,249,154,248,131,247,133,246,246,245,160,245,48,245,255,244,133,245,195,246,103,248,22,250,165,251,248,252,246,253, +250,254,67,0,65,1,183,1,118,2,164,3,146,4,100,5,72,6,214,6,43,7,60,7,35,7,150,7,250,7,235,7, +138,8,175,9,209,10,7,12,140,12,133,12,135,12,230,11,176,10,7,9,198,6,21,5,10,4,212,2,5,2,142,1, +137,0,33,255,250,253,18,253,189,251,241,249,40,248,230,245,28,243,203,240,48,239,251,237,7,237,80,236,6,236,255,235, +65,236,58,237,192,238,120,240,56,242,225,243,134,245,15,247,89,248,129,249,136,250,135,251,205,252,135,254,120,0,24,2, +175,3,221,5,76,8,180,10,218,12,34,14,15,15,71,16,42,17,126,17,103,17,143,16,83,15,104,14,89,13,93,11, +174,8,44,6,73,4,187,2,41,1,111,255,148,253,79,252,69,252,170,252,83,252,80,251,56,250,74,249,75,248,224,246, +224,244,102,242,55,240,41,239,222,238,191,238,228,238,83,239,22,240,92,241,6,243,212,244,124,246,219,247,46,249,133,250, +127,251,175,251,91,251,90,251,214,251,181,252,60,254,35,0,195,1,25,3,135,4,5,6,241,6,252,6,190,6,157,6, +129,6,116,6,130,6,189,6,123,7,217,8,122,10,237,11,3,13,196,13,76,14,92,14,146,13,34,12,97,10,132,8, +242,6,173,5,112,4,71,3,65,2,109,1,135,0,77,255,128,254,116,254,95,254,250,253,139,253,56,253,192,252,182,251, +102,250,16,249,169,247,230,246,31,247,222,247,202,248,201,249,38,251,199,252,41,254,131,255,196,0,188,1,155,2,231,2, +231,2,113,3,66,4,84,5,134,6,79,7,31,8,161,8,77,8,237,7,129,7,239,6,129,6,146,5,59,4,242,2, +153,1,164,0,194,255,49,254,43,252,245,249,59,248,102,247,5,247,154,247,42,249,59,251,34,254,160,0,195,1,191,2, +125,3,171,3,162,3,113,2,151,0,106,255,102,254,188,253,236,253,37,254,103,254,18,255,225,255,171,0,82,1,239,1, +81,2,16,2,189,1,166,1,113,1,154,1,62,2,138,2,103,2,155,2,67,3,104,3,196,2,249,1,208,0,84,255, +27,254,179,252,63,251,155,250,122,250,174,250,50,251,119,251,203,251,180,252,30,254,184,255,153,0,157,0,158,0,149,0, +64,0,158,255,138,254,75,253,244,251,152,250,241,249,203,249,169,249,20,250,248,250,21,252,239,253,5,0,55,1,132,1, +95,1,7,1,199,0,189,0,226,0,16,1,8,1,249,0,30,1,85,1,208,1,109,2,105,2,197,1,159,0,121,254, +207,251,132,249,182,247,149,246,229,245,253,244,18,244,102,243,21,243,242,243,55,246,237,248,45,251,184,252,71,254,120,0, +141,2,252,3,190,4,38,4,179,2,176,1,193,0,157,255,194,254,31,254,39,254,245,254,143,255,220,255,41,0,181,0, +219,1,145,2,52,2,170,1,9,1,142,0,224,0,124,1,20,2,179,2,44,3,247,3,98,5,44,7,121,8,87,8, +129,7,220,6,242,5,162,4,2,3,253,0,249,254,162,253,106,253,109,253,249,252,11,253,132,253,191,253,48,254,226,253, +68,252,186,250,125,249,31,248,89,246,158,243,236,240,171,239,228,239,71,241,96,243,184,245,35,248,154,250,91,253,56,0, +40,3,129,6,164,9,246,11,70,13,77,13,73,13,38,14,245,14,250,15,176,17,224,18,108,19,86,20,171,21,246,22, +137,23,41,23,77,22,152,20,246,17,132,15,48,13,70,10,11,7,101,3,164,255,252,252,28,251,16,249,251,246,63,245, +9,244,208,242,8,241,60,239,98,237,4,235,202,232,4,231,150,229,22,229,223,229,134,231,84,233,246,234,154,236,166,238, +140,241,165,244,5,247,86,249,180,251,43,253,47,254,205,255,108,2,173,5,241,8,145,12,109,16,166,19,149,22,84,25, +81,27,228,28,58,30,5,31,228,30,145,29,184,27,223,25,6,24,111,22,102,20,91,17,91,14,253,11,166,9,15,7, +150,4,102,2,18,0,123,253,189,250,194,247,52,245,224,243,93,243,141,242,204,240,84,238,170,235,17,233,84,230,42,227, +12,224,59,221,124,218,113,216,36,215,96,214,167,215,109,219,81,224,115,229,210,233,33,237,150,240,170,244,217,248,110,252, +6,255,55,1,205,3,58,7,72,11,95,15,149,19,186,23,71,27,117,30,80,33,176,35,155,37,55,39,230,40,3,42, +227,41,59,41,193,39,233,36,141,33,252,29,172,25,34,20,18,14,121,9,113,6,194,3,5,1,122,253,170,249,45,247, +13,245,190,241,79,237,45,232,58,227,11,223,47,219,186,215,146,213,61,213,161,214,89,217,108,220,21,223,239,225,115,229, +53,233,195,236,59,239,102,240,117,241,223,242,73,244,135,245,234,246,39,249,227,251,140,254,216,1,95,6,72,12,241,18, +204,24,106,29,180,32,71,34,230,34,7,35,44,34,81,32,236,29,164,27,196,25,108,24,2,24,51,24,141,24,216,24, +110,24,9,23,84,20,11,16,253,10,84,5,236,254,169,248,55,243,206,238,22,235,251,231,184,230,37,231,240,231,1,233, +20,234,250,234,233,235,65,236,232,235,211,234,221,232,125,231,44,231,210,230,167,230,46,231,150,232,103,235,64,239,137,243, +144,248,47,254,80,3,30,7,194,9,154,11,139,12,112,12,166,11,10,11,223,10,171,10,156,10,19,11,39,12,62,14, +26,17,158,19,227,20,181,20,243,19,114,19,237,18,223,17,197,15,173,12,237,9,148,8,33,8,111,7,20,6,149,4, +129,3,9,3,125,2,241,0,36,255,231,253,191,252,154,251,234,249,230,246,160,243,21,241,80,239,177,238,208,238,194,238, +172,238,80,239,41,241,193,243,20,246,139,247,15,248,69,248,185,248,11,249,67,249,188,249,68,250,9,251,113,252,71,254, +81,0,129,2,189,4,78,7,146,10,202,13,213,15,49,17,212,18,129,20,126,21,255,20,7,19,211,16,176,14,60,12, +33,10,167,8,94,7,138,6,85,6,142,6,87,7,49,8,0,8,115,6,190,3,73,0,239,252,201,249,88,246,20,243, +86,240,252,237,126,236,170,235,235,234,172,234,42,235,117,236,129,238,87,240,131,241,97,242,185,243,99,246,56,249,176,250, +65,251,116,251,223,251,31,253,163,254,112,0,148,2,153,4,67,7,101,10,238,12,40,15,179,16,22,17,65,17,98,17, +31,17,129,16,148,15,121,14,252,12,56,11,95,9,246,6,105,4,72,2,103,0,60,255,150,254,161,253,169,252,66,252, +148,252,229,252,92,252,166,251,40,251,171,250,69,250,80,249,223,247,176,246,8,246,226,246,195,248,213,249,122,250,54,251, +187,251,75,252,150,252,132,252,232,251,64,250,200,248,248,247,214,246,242,245,133,245,7,245,16,245,246,245,155,247,15,250, +216,252,72,255,58,1,197,2,30,3,195,1,206,255,223,253,36,252,39,251,159,250,191,250,217,251,144,253,185,0,247,4, +76,8,145,10,209,11,239,11,149,11,62,10,160,7,109,4,88,1,199,255,136,255,34,255,248,254,85,255,241,255,233,0, +118,1,10,1,203,255,2,254,88,252,155,250,95,248,29,246,27,244,224,242,221,242,156,243,202,244,25,246,155,247,216,249, +153,252,164,255,117,2,242,3,111,4,223,4,110,5,23,6,66,6,149,5,147,4,152,3,54,3,186,3,174,4,233,5, +113,7,56,9,32,11,179,12,3,14,46,15,186,15,0,16,59,16,131,15,252,13,130,12,180,10,184,8,135,7,152,6, +45,5,217,3,195,2,233,1,192,1,226,1,143,1,183,0,175,255,158,254,28,253,68,251,129,249,63,247,212,244,99,243, +122,242,153,241,41,241,79,241,34,242,117,243,25,245,208,246,121,247,30,247,66,247,12,248,122,248,37,248,181,247,67,248, +223,249,43,252,254,254,162,1,231,3,121,6,143,9,228,12,190,15,96,17,238,17,20,18,98,18,157,18,45,18,134,17, +252,16,240,15,162,14,157,13,166,12,195,11,23,11,100,10,178,9,165,8,143,6,7,4,19,2,88,0,14,254,92,251, +216,248,232,246,174,245,190,244,131,243,59,242,107,241,190,240,176,239,58,238,113,236,196,234,208,233,121,233,73,233,74,233, +225,233,89,235,136,237,239,239,51,242,86,244,171,246,114,249,74,252,126,254,9,0,91,1,135,2,178,3,245,4,223,5, +87,6,183,6,96,7,94,8,231,8,4,9,162,9,61,10,157,10,91,11,143,11,28,11,65,11,239,11,231,12,243,13, +86,14,61,14,210,13,9,13,39,12,192,10,201,8,172,6,63,4,240,1,44,0,177,254,133,253,133,252,132,251,106,250, +14,249,164,247,251,245,50,244,207,242,22,241,65,239,83,238,141,237,59,237,250,237,164,238,181,239,171,241,73,243,190,244, +20,246,182,246,105,247,64,248,227,248,140,249,148,249,56,249,248,249,20,252,229,254,195,1,126,4,209,7,212,11,149,15, +101,18,63,20,111,21,207,21,27,21,252,19,233,18,148,17,52,16,34,15,44,14,58,13,231,11,19,10,176,8,214,7, +167,6,1,5,206,2,58,0,15,254,61,252,154,250,113,249,110,248,96,247,116,246,131,245,186,244,121,244,178,244,240,244, +16,245,124,245,195,245,79,245,198,244,92,244,223,243,129,243,14,243,1,243,219,243,0,245,176,246,40,249,206,251,195,254, +158,1,196,3,13,6,222,8,229,11,178,14,140,16,175,17,119,18,193,18,24,19,83,19,201,18,3,18,117,17,52,17, +69,17,232,16,202,15,117,14,77,13,114,12,104,11,164,9,117,7,217,4,149,1,68,254,18,251,181,247,236,244,71,243, +14,242,223,240,14,240,164,239,148,239,210,239,253,239,200,239,69,239,135,238,173,237,45,237,83,237,185,237,73,238,156,239, +192,241,51,244,231,246,32,250,175,253,23,1,92,4,104,7,183,9,137,11,62,13,158,14,246,15,117,17,184,18,243,19, +36,21,241,21,134,22,204,22,141,22,8,22,76,21,67,20,201,18,172,16,248,13,238,10,217,7,201,4,161,1,129,254, +89,251,106,248,77,246,129,244,132,242,214,240,102,239,214,237,46,236,151,234,141,233,21,233,236,232,92,233,38,234,246,234, +45,236,168,237,46,239,243,240,216,242,166,244,21,246,61,247,226,248,39,251,234,253,90,1,220,4,209,7,112,10,5,13, +156,15,156,17,139,18,253,18,67,19,64,19,62,19,24,19,152,18,25,18,158,17,245,16,40,16,218,14,159,12,237,9, +107,7,212,4,244,1,35,255,58,252,118,249,162,247,108,246,83,245,82,244,13,243,203,241,28,241,189,240,153,240,193,240, +249,240,114,241,79,242,92,243,133,244,213,245,129,247,90,249,184,250,168,251,187,252,243,253,49,255,194,0,160,2,74,4, +193,5,25,7,22,8,40,9,121,10,124,11,81,12,235,12,24,13,125,13,31,14,151,14,240,14,200,14,23,14,39,13, +234,11,184,10,85,9,80,7,66,5,42,3,205,0,189,254,186,252,113,250,108,248,202,246,75,245,222,243,161,242,181,241, +41,241,96,241,11,242,90,242,174,242,59,243,127,243,150,243,125,243,58,243,45,243,19,243,4,243,155,243,149,244,177,245, +57,247,42,249,37,251,201,252,49,254,150,255,195,0,172,1,114,2,56,3,90,4,179,5,240,6,105,8,45,10,243,11, +236,13,198,15,212,16,127,17,14,18,220,17,20,17,65,16,3,15,7,13,164,10,89,8,92,6,178,4,149,3,207,2, +232,1,80,1,36,1,187,0,54,0,175,255,206,254,196,253,152,252,32,251,144,249,41,248,74,247,224,246,163,246,225,246, +115,247,253,247,213,248,230,249,210,250,165,251,42,252,57,252,23,252,9,252,254,251,173,251,92,251,112,251,187,251,41,252, +196,252,121,253,158,254,38,0,119,1,178,2,22,4,61,5,33,6,0,7,120,7,73,7,254,6,3,7,19,7,228,6, +201,6,38,7,190,7,89,8,248,8,81,9,127,9,234,9,97,10,151,10,87,10,104,9,14,8,160,6,56,5,205,3, +61,2,188,0,130,255,125,254,167,253,201,252,2,252,116,251,138,250,161,249,60,249,104,248,39,247,78,246,118,245,157,244, +36,244,206,243,195,243,62,244,41,245,112,246,211,247,84,249,234,250,68,252,195,253,157,255,56,1,141,2,255,3,88,5, +88,6,54,7,236,7,78,8,182,8,64,9,160,9,15,10,144,10,203,10,184,10,48,10,89,9,98,8,244,6,94,5, +227,3,29,2,144,0,147,255,170,254,231,253,35,253,40,252,116,251,252,250,149,250,34,250,44,249,44,248,179,247,125,247, +175,247,18,248,57,248,160,248,39,249,107,249,209,249,28,250,27,250,101,250,238,250,107,251,243,251,139,252,90,253,124,254, +208,255,247,0,178,1,96,2,14,3,111,3,210,3,87,4,223,4,134,5,238,5,7,6,9,6,191,5,102,5,19,5, +102,4,140,3,139,2,91,1,56,0,251,254,236,253,57,253,107,252,177,251,244,250,252,249,80,249,207,248,143,248,232,248, +34,249,86,249,249,249,165,250,157,251,171,252,100,253,88,254,14,255,69,255,199,255,69,0,208,0,173,1,78,2,62,3, +178,4,215,5,1,7,73,8,53,9,255,9,150,10,203,10,173,10,88,10,45,10,249,9,128,9,23,9,134,8,174,7, +220,6,40,6,191,5,52,5,3,4,183,2,92,1,135,255,178,253,25,252,109,250,166,248,245,246,174,245,166,244,137,243, +255,242,70,243,170,243,24,244,189,244,168,245,37,247,130,248,30,249,208,249,194,250,104,251,16,252,217,252,194,253,221,254, +200,255,197,0,250,1,7,3,73,4,124,5,66,6,122,7,205,8,157,9,138,10,72,11,131,11,152,11,66,11,184,10, +73,10,132,9,160,8,246,7,87,7,163,6,192,5,243,4,111,4,224,3,6,3,179,1,31,0,155,254,4,253,162,251, +155,250,131,249,163,248,74,248,58,248,86,248,136,248,210,248,50,249,117,249,167,249,182,249,143,249,115,249,102,249,89,249, +89,249,136,249,2,250,130,250,6,251,206,251,183,252,208,253,255,254,240,255,248,0,14,2,225,2,177,3,107,4,253,4, +99,5,107,5,162,5,248,5,167,5,100,5,155,5,149,5,87,5,245,4,97,4,236,3,101,3,202,2,124,2,53,2, +194,1,80,1,209,0,112,0,104,0,140,0,203,0,17,1,5,1,174,0,145,0,178,0,121,0,226,255,133,255,64,255, +206,254,176,254,219,254,198,254,180,254,211,254,231,254,242,254,176,254,29,254,198,253,180,253,168,253,122,253,252,252,131,252, +64,252,250,251,159,251,33,251,150,250,13,250,58,249,126,248,83,248,54,248,254,247,56,248,196,248,79,249,58,250,134,251, +166,252,205,253,36,255,81,0,129,1,160,2,137,3,194,4,252,5,247,6,26,8,231,8,99,9,242,9,46,10,134,10, +245,10,206,10,206,10,244,10,153,10,80,10,238,9,50,9,152,8,173,7,81,6,13,5,224,3,171,2,65,1,217,255, +216,254,216,253,177,252,129,251,18,250,186,248,201,247,201,246,122,245,71,244,131,243,217,242,119,242,210,242,94,243,14,244, +61,245,107,246,203,247,137,249,36,251,219,252,114,254,150,255,232,0,27,2,11,3,95,4,143,5,99,6,101,7,56,8, +186,8,44,9,115,9,186,9,29,10,78,10,59,10,35,10,4,10,142,9,242,8,104,8,118,7,250,5,76,4,154,2, +18,1,156,255,17,254,177,252,139,251,107,250,78,249,110,248,196,247,230,246,13,246,150,245,12,245,144,244,162,244,231,244, +65,245,207,245,90,246,46,247,88,248,75,249,51,250,79,251,79,252,73,253,109,254,130,255,120,0,92,1,45,2,8,3, +200,3,78,4,239,4,194,5,160,6,111,7,220,7,24,8,173,8,51,9,102,9,165,9,139,9,246,8,107,8,180,7, +213,6,27,6,43,5,89,4,225,3,8,3,43,2,162,1,181,0,206,255,60,255,94,254,119,253,190,252,7,252,128,251, +14,251,219,250,208,250,106,250,76,250,137,250,106,250,133,250,8,251,136,251,11,252,45,252,17,252,7,252,206,251,217,251, +233,251,106,251,27,251,251,250,248,250,145,251,249,251,52,252,15,253,241,253,155,254,44,255,129,255,250,255,96,0,130,0, +229,0,86,1,160,1,251,1,125,2,73,3,25,4,206,4,175,5,140,6,112,7,129,8,62,9,101,9,61,9,20,9, +3,9,220,8,109,8,182,7,25,7,153,6,202,5,5,5,102,4,134,3,199,2,26,2,36,1,71,0,74,255,23,254, +45,253,59,252,50,251,111,250,175,249,201,248,239,247,74,247,174,246,246,245,151,245,122,245,71,245,117,245,238,245,88,246, +224,246,107,247,9,248,221,248,175,249,112,250,252,250,159,251,165,252,149,253,118,254,134,255,159,0,214,1,233,2,191,3, +186,4,181,5,118,6,252,6,160,7,161,8,64,9,158,9,51,10,100,10,173,10,23,11,152,10,30,10,249,9,36,9, +40,8,41,7,230,5,223,4,173,3,57,2,233,0,101,255,206,253,61,252,152,250,81,249,53,248,20,247,85,246,220,245, +121,245,127,245,9,246,146,246,226,246,121,247,25,248,122,248,40,249,230,249,110,250,46,251,228,251,142,252,140,253,174,254, +228,255,2,1,0,2,22,3,203,3,64,4,7,5,158,5,227,5,30,6,229,5,100,5,34,5,237,4,147,4,50,4, +188,3,15,3,115,2,19,2,189,1,86,1,147,0,126,255,164,254,203,253,159,252,126,251,157,250,24,250,189,249,67,249, +29,249,105,249,5,250,13,251,253,251,207,252,1,254,17,255,183,255,60,0,127,0,175,0,22,1,111,1,133,1,149,1, +212,1,249,1,250,1,102,2,19,3,102,3,134,3,171,3,167,3,113,3,25,3,175,2,87,2,6,2,106,1,151,0, +241,255,127,255,63,255,22,255,194,254,142,254,101,254,238,253,209,253,6,254,211,253,177,253,193,253,132,253,84,253,89,253, +118,253,172,253,153,253,171,253,111,254,34,255,173,255,142,0,110,1,95,2,112,3,7,4,86,4,151,4,157,4,197,4, +216,4,109,4,20,4,221,3,123,3,52,3,20,3,236,2,163,2,66,2,5,2,160,1,218,0,71,0,209,255,250,254, +39,254,128,253,139,252,148,251,38,251,174,250,235,249,163,249,181,249,210,249,65,250,122,250,132,250,22,251,131,251,111,251, +61,251,245,250,20,251,82,251,75,251,223,251,182,252,42,253,6,254,80,255,178,0,38,2,61,3,1,4,180,4,62,5, +107,5,37,5,11,5,8,5,153,4,114,4,109,4,37,4,99,4,152,4,94,4,162,4,235,4,194,4,127,4,21,4, +219,3,140,3,169,2,223,1,35,1,12,0,38,255,111,254,168,253,23,253,193,252,112,252,49,252,36,252,0,252,160,251, +100,251,49,251,227,250,203,250,221,250,235,250,234,250,251,250,102,251,201,251,6,252,134,252,228,252,239,252,21,253,101,253, +195,253,220,253,230,253,108,254,238,254,85,255,8,0,127,0,209,0,94,1,184,1,249,1,71,2,97,2,116,2,152,2, +219,2,44,3,53,3,54,3,78,3,94,3,171,3,215,3,152,3,135,3,157,3,116,3,31,3,158,2,45,2,226,1, +86,1,214,0,164,0,43,0,134,255,64,255,30,255,239,254,203,254,172,254,139,254,80,254,8,254,195,253,90,253,243,252, +131,252,234,251,156,251,104,251,255,250,13,251,115,251,145,251,186,251,46,252,213,252,109,253,196,253,61,254,183,254,236,254, +70,255,157,255,217,255,50,0,81,0,133,0,0,1,87,1,228,1,117,2,159,2,255,2,61,3,35,3,146,3,242,3, +188,3,222,3,46,4,16,4,233,3,198,3,77,3,158,2,251,1,95,1,185,0,41,0,178,255,34,255,163,254,98,254, +27,254,205,253,166,253,86,253,229,252,139,252,12,252,156,251,113,251,72,251,96,251,152,251,158,251,226,251,61,252,116,252, +225,252,40,253,101,253,0,254,82,254,165,254,118,255,229,255,27,0,219,0,162,1,15,2,127,2,49,3,210,3,59,4, +190,4,45,5,80,5,112,5,142,5,175,5,203,5,163,5,105,5,47,5,226,4,149,4,51,4,229,3,131,3,214,2, +113,2,6,2,59,1,214,0,126,0,187,255,54,255,190,254,42,254,190,253,57,253,255,252,52,253,11,253,169,252,143,252, +107,252,26,252,239,251,212,251,137,251,104,251,139,251,148,251,184,251,247,251,19,252,162,252,142,253,28,254,127,254,246,254, +91,255,177,255,254,255,88,0,174,0,231,0,3,1,12,1,109,1,3,2,36,2,52,2,136,2,162,2,136,2,108,2, +94,2,81,2,243,1,139,1,106,1,69,1,19,1,205,0,91,0,245,255,150,255,32,255,180,254,113,254,65,254,252,253, +244,253,61,254,54,254,34,254,112,254,178,254,237,254,67,255,131,255,197,255,225,255,255,255,105,0,165,0,227,0,138,1, +253,1,72,2,174,2,176,2,135,2,136,2,84,2,238,1,146,1,63,1,235,0,166,0,158,0,176,0,170,0,166,0, +152,0,163,0,203,0,157,0,60,0,212,255,55,255,211,254,149,254,249,253,123,253,54,253,201,252,130,252,88,252,17,252, +247,251,251,251,250,251,22,252,53,252,45,252,53,252,142,252,233,252,5,253,85,253,228,253,80,254,187,254,50,255,189,255, +83,0,146,0,209,0,76,1,121,1,168,1,40,2,99,2,114,2,233,2,150,3,250,3,65,4,196,4,10,5,0,5, +38,5,10,5,195,4,218,4,173,4,65,4,247,3,64,3,104,2,211,1,25,1,82,0,129,255,145,254,158,253,155,252, +228,251,126,251,2,251,191,250,142,250,80,250,133,250,195,250,227,250,97,251,210,251,10,252,86,252,191,252,65,253,154,253, +2,254,167,254,222,254,18,255,200,255,65,0,166,0,49,1,115,1,221,1,98,2,132,2,209,2,90,3,167,3,224,3, +14,4,33,4,59,4,64,4,17,4,201,3,148,3,84,3,226,2,105,2,247,1,119,1,3,1,147,0,14,0,121,255, +236,254,128,254,73,254,72,254,62,254,53,254,148,254,254,254,54,255,174,255,5,0,35,0,129,0,135,0,99,0,162,0, +90,0,205,255,214,255,196,255,128,255,100,255,52,255,23,255,17,255,25,255,57,255,34,255,40,255,82,255,26,255,246,254, +245,254,202,254,220,254,234,254,254,254,134,255,207,255,252,255,147,0,238,0,46,1,152,1,168,1,151,1,166,1,137,1, +54,1,234,0,217,0,197,0,151,0,165,0,169,0,143,0,146,0,125,0,145,0,172,0,89,0,47,0,38,0,215,255, +161,255,71,255,226,254,233,254,160,254,41,254,54,254,55,254,22,254,31,254,26,254,50,254,114,254,157,254,214,254,50,255, +168,255,40,0,153,0,5,1,108,1,198,1,0,2,47,2,149,2,217,2,171,2,150,2,218,2,40,3,84,3,111,3, +147,3,161,3,168,3,211,3,226,3,196,3,126,3,5,3,200,2,152,2,3,2,162,1,128,1,37,1,243,0,252,0, +204,0,97,0,250,255,210,255,158,255,248,254,63,254,179,253,19,253,96,252,179,251,40,251,217,250,152,250,97,250,118,250, +180,250,244,250,152,251,101,252,181,252,16,253,187,253,13,254,80,254,197,254,15,255,137,255,43,0,120,0,207,0,106,1, +26,2,190,2,48,3,168,3,29,4,87,4,138,4,158,4,133,4,92,4,0,4,201,3,179,3,83,3,16,3,213,2, +106,2,85,2,73,2,2,2,208,1,91,1,199,0,99,0,200,255,12,255,77,254,158,253,76,253,240,252,106,252,36,252, +254,251,6,252,65,252,98,252,149,252,228,252,51,253,172,253,62,254,209,254,80,255,180,255,38,0,124,0,220,0,110,1, +185,1,242,1,112,2,185,2,224,2,47,3,137,3,248,3,113,4,215,4,252,4,241,4,27,5,3,5,123,4,101,4, +87,4,181,3,50,3,214,2,80,2,223,1,114,1,249,0,117,0,246,255,150,255,11,255,141,254,108,254,19,254,173,253, +162,253,124,253,68,253,38,253,9,253,57,253,101,253,51,253,89,253,246,253,105,254,153,254,189,254,15,255,137,255,201,255, +197,255,204,255,244,255,36,0,81,0,125,0,175,0,249,0,77,1,158,1,41,2,197,2,0,3,44,3,90,3,22,3, +215,2,207,2,127,2,81,2,78,2,217,1,146,1,153,1,41,1,213,0,236,0,211,0,208,0,234,0,199,0,160,0, +117,0,111,0,163,0,115,0,43,0,46,0,225,255,149,255,176,255,179,255,206,255,46,0,91,0,89,0,103,0,130,0, +108,0,31,0,5,0,249,255,168,255,101,255,49,255,250,254,7,255,27,255,32,255,93,255,157,255,196,255,6,0,54,0, +57,0,59,0,55,0,42,0,61,0,52,0,232,255,200,255,223,255,248,255,66,0,128,0,124,0,144,0,181,0,232,0, +47,1,36,1,254,0,4,1,211,0,142,0,93,0,10,0,189,255,132,255,92,255,95,255,93,255,85,255,117,255,184,255, +7,0,58,0,97,0,138,0,164,0,202,0,194,0,128,0,127,0,97,0,246,255,219,255,234,255,246,255,72,0,162,0, +231,0,44,1,86,1,121,1,143,1,165,1,184,1,136,1,98,1,77,1,0,1,221,0,200,0,128,0,136,0,153,0, +98,0,120,0,160,0,92,0,15,0,241,255,198,255,105,255,1,255,182,254,115,254,80,254,92,254,99,254,118,254,161,254, +226,254,69,255,136,255,145,255,149,255,159,255,160,255,113,255,68,255,89,255,52,255,227,254,242,254,248,254,236,254,73,255, +150,255,172,255,222,255,0,0,78,0,195,0,193,0,187,0,25,1,74,1,121,1,228,1,14,2,44,2,112,2,100,2, +66,2,104,2,105,2,44,2,17,2,22,2,18,2,228,1,119,1,41,1,42,1,229,0,77,0,248,255,180,255,55,255, +208,254,121,254,20,254,200,253,140,253,106,253,87,253,37,253,40,253,72,253,254,252,168,252,203,252,17,253,29,253,40,253, +120,253,197,253,231,253,80,254,255,254,160,255,58,0,192,0,74,1,223,1,62,2,161,2,14,3,51,3,102,3,166,3, +186,3,231,3,249,3,215,3,239,3,239,3,192,3,188,3,146,3,57,3,17,3,211,2,96,2,249,1,132,1,241,0, +131,0,46,0,188,255,106,255,65,255,232,254,122,254,24,254,187,253,148,253,95,253,243,252,197,252,154,252,67,252,45,252, +28,252,237,251,252,251,23,252,58,252,136,252,174,252,181,252,217,252,30,253,89,253,84,253,109,253,214,253,16,254,76,254, +228,254,106,255,205,255,68,0,180,0,51,1,189,1,15,2,56,2,110,2,161,2,170,2,175,2,222,2,14,3,50,3, +83,3,93,3,109,3,114,3,43,3,227,2,206,2,124,2,231,1,134,1,79,1,234,0,99,0,249,255,159,255,41,255, +208,254,210,254,196,254,111,254,93,254,108,254,42,254,254,253,241,253,198,253,218,253,4,254,235,253,237,253,14,254,22,254, +55,254,138,254,3,255,128,255,200,255,225,255,7,0,89,0,141,0,129,0,164,0,228,0,231,0,220,0,220,0,243,0, +36,1,46,1,56,1,73,1,15,1,217,0,231,0,233,0,219,0,225,0,242,0,230,0,208,0,216,0,195,0,149,0, +104,0,7,0,193,255,157,255,60,255,20,255,30,255,245,254,234,254,195,254,123,254,138,254,131,254,66,254,24,254,240,253, +227,253,200,253,169,253,223,253,243,253,249,253,70,254,57,254,27,254,99,254,128,254,132,254,171,254,184,254,205,254,250,254, +41,255,99,255,160,255,210,255,233,255,8,0,26,0,10,0,59,0,90,0,66,0,146,0,184,0,169,0,39,1,74,1, +247,0,50,1,121,1,126,1,120,1,75,1,53,1,19,1,246,0,39,1,21,1,11,1,111,1,107,1,49,1,58,1, +253,0,158,0,116,0,89,0,45,0,208,255,119,255,98,255,80,255,2,255,196,254,244,254,15,255,201,254,213,254,7,255, +252,254,7,255,240,254,236,254,47,255,7,255,234,254,33,255,232,254,230,254,108,255,144,255,129,255,180,255,22,0,102,0, +92,0,98,0,154,0,164,0,199,0,210,0,154,0,205,0,1,1,182,0,163,0,192,0,177,0,222,0,31,1,6,1, +207,0,177,0,178,0,185,0,126,0,51,0,28,0,243,255,227,255,22,0,252,255,225,255,42,0,29,0,228,255,255,255, +236,255,197,255,188,255,127,255,85,255,47,255,213,254,184,254,177,254,122,254,60,254,251,253,255,253,27,254,199,253,154,253, +212,253,221,253,250,253,66,254,57,254,56,254,150,254,0,255,63,255,62,255,60,255,147,255,221,255,227,255,8,0,43,0, +37,0,88,0,142,0,123,0,151,0,233,0,7,1,44,1,121,1,145,1,128,1,136,1,147,1,141,1,115,1,43,1, +231,0,236,0,228,0,147,0,99,0,118,0,108,0,69,0,69,0,76,0,51,0,37,0,22,0,243,255,247,255,232,255, +154,255,141,255,137,255,41,255,3,255,27,255,248,254,223,254,206,254,163,254,182,254,218,254,187,254,125,254,85,254,121,254, +154,254,95,254,72,254,89,254,83,254,135,254,158,254,117,254,166,254,211,254,201,254,3,255,17,255,255,254,78,255,118,255, +107,255,152,255,174,255,185,255,219,255,219,255,243,255,15,0,246,255,33,0,140,0,186,0,208,0,249,0,8,1,26,1, +101,1,148,1,127,1,137,1,167,1,164,1,173,1,144,1,90,1,118,1,121,1,38,1,6,1,17,1,222,0,103,0, +5,0,237,255,204,255,134,255,78,255,18,255,244,254,255,254,244,254,234,254,239,254,249,254,4,255,206,254,163,254,211,254, +215,254,198,254,254,254,21,255,19,255,52,255,69,255,101,255,141,255,164,255,239,255,44,0,49,0,109,0,190,0,222,0, +5,1,77,1,175,1,235,1,251,1,84,2,144,2,109,2,154,2,186,2,129,2,176,2,197,2,111,2,117,2,137,2, +95,2,38,2,197,1,164,1,133,1,243,0,158,0,108,0,5,0,209,255,119,255,5,255,223,254,160,254,101,254,54,254, +251,253,17,254,242,253,166,253,216,253,212,253,166,253,201,253,173,253,175,253,248,253,1,254,30,254,62,254,74,254,164,254, +217,254,253,254,100,255,147,255,183,255,247,255,40,0,146,0,223,0,235,0,58,1,109,1,91,1,167,1,23,2,43,2, +45,2,54,2,12,2,254,1,46,2,39,2,241,1,199,1,162,1,151,1,84,1,213,0,173,0,148,0,67,0,24,0, +250,255,215,255,176,255,133,255,139,255,111,255,45,255,59,255,76,255,57,255,27,255,237,254,1,255,28,255,4,255,1,255, +207,254,163,254,217,254,237,254,228,254,216,254,168,254,173,254,176,254,163,254,214,254,230,254,254,254,78,255,92,255,129,255, +204,255,223,255,36,0,128,0,173,0,232,0,6,1,27,1,84,1,91,1,60,1,47,1,28,1,252,0,206,0,161,0, +144,0,137,0,124,0,141,0,154,0,119,0,133,0,166,0,88,0,50,0,77,0,30,0,44,0,67,0,236,255,234,255, +1,0,219,255,254,255,245,255,200,255,227,255,211,255,215,255,233,255,173,255,204,255,8,0,217,255,206,255,219,255,212,255, +216,255,204,255,226,255,239,255,226,255,3,0,8,0,27,0,70,0,4,0,242,255,35,0,239,255,241,255,17,0,205,255, +205,255,248,255,242,255,42,0,94,0,91,0,122,0,160,0,194,0,246,0,10,1,4,1,28,1,62,1,72,1,77,1, +78,1,85,1,109,1,94,1,61,1,73,1,66,1,51,1,73,1,58,1,2,1,196,0,123,0,60,0,225,255,139,255, +120,255,44,255,180,254,158,254,130,254,60,254,53,254,56,254,53,254,81,254,92,254,120,254,177,254,175,254,180,254,229,254, +242,254,28,255,112,255,155,255,207,255,11,0,62,0,163,0,236,0,22,1,93,1,111,1,149,1,237,1,234,1,248,1, +56,2,37,2,39,2,59,2,18,2,11,2,253,1,232,1,253,1,208,1,151,1,138,1,74,1,28,1,19,1,236,0, +189,0,97,0,7,0,252,255,212,255,158,255,141,255,81,255,34,255,24,255,210,254,175,254,219,254,213,254,202,254,246,254, +231,254,198,254,222,254,222,254,213,254,235,254,236,254,255,254,41,255,50,255,51,255,74,255,146,255,204,255,188,255,240,255, +58,0,41,0,87,0,123,0,64,0,99,0,111,0,29,0,61,0,110,0,102,0,132,0,137,0,129,0,141,0,140,0, +162,0,132,0,71,0,103,0,106,0,53,0,66,0,62,0,4,0,253,255,5,0,215,255,187,255,207,255,172,255,102,255, +100,255,107,255,73,255,46,255,27,255,3,255,222,254,194,254,191,254,161,254,134,254,149,254,135,254,104,254,129,254,194,254, +237,254,244,254,11,255,18,255,254,254,63,255,133,255,101,255,108,255,166,255,178,255,171,255,154,255,141,255,171,255,208,255, +216,255,185,255,173,255,214,255,231,255,238,255,8,0,0,0,1,0,12,0,217,255,180,255,207,255,202,255,158,255,155,255, +184,255,210,255,214,255,181,255,165,255,199,255,213,255,199,255,160,255,82,255,33,255,1,255,198,254,184,254,185,254,150,254, +131,254,134,254,171,254,206,254,180,254,178,254,212,254,214,254,196,254,172,254,195,254,237,254,215,254,229,254,16,255,26,255, +66,255,61,255,35,255,90,255,83,255,70,255,166,255,194,255,194,255,8,0,33,0,57,0,90,0,55,0,67,0,124,0, +123,0,139,0,172,0,143,0,123,0,129,0,101,0,79,0,76,0,59,0,62,0,37,0,244,255,246,255,201,255,133,255, +142,255,104,255,45,255,23,255,212,254,211,254,246,254,186,254,162,254,157,254,145,254,211,254,210,254,163,254,187,254,197,254, +224,254,225,254,163,254,199,254,223,254,202,254,17,255,15,255,0,255,115,255,134,255,116,255,245,255,64,0,32,0,42,0, +55,0,19,0,13,0,56,0,102,0,148,0,159,0,174,0,17,1,55,1,23,1,68,1,64,1,10,1,15,1,232,0, +226,0,0,1,173,0,122,0,117,0,79,0,105,0,79,0,237,255,225,255,219,255,212,255,224,255,171,255,138,255,157,255, +148,255,102,255,29,255,243,254,228,254,203,254,195,254,174,254,177,254,198,254,157,254,171,254,199,254,136,254,152,254,178,254, +116,254,131,254,151,254,132,254,164,254,158,254,143,254,153,254,126,254,161,254,236,254,237,254,242,254,45,255,92,255,74,255, +67,255,142,255,160,255,128,255,188,255,243,255,239,255,0,0,27,0,56,0,64,0,36,0,51,0,124,0,168,0,144,0, +130,0,150,0,112,0,68,0,65,0,255,255,190,255,213,255,224,255,194,255,155,255,123,255,117,255,120,255,106,255,59,255, +50,255,103,255,88,255,48,255,67,255,39,255,253,254,3,255,9,255,52,255,86,255,74,255,93,255,85,255,76,255,153,255, +202,255,200,255,214,255,212,255,217,255,246,255,18,0,45,0,39,0,15,0,11,0,22,0,23,0,210,255,145,255,183,255, +215,255,190,255,190,255,202,255,191,255,165,255,144,255,162,255,170,255,146,255,175,255,221,255,187,255,157,255,176,255,151,255, +132,255,151,255,124,255,108,255,121,255,105,255,131,255,152,255,115,255,115,255,115,255,129,255,181,255,155,255,141,255,172,255, +114,255,109,255,176,255,155,255,123,255,133,255,157,255,161,255,110,255,130,255,175,255,134,255,151,255,176,255,149,255,191,255, +201,255,177,255,194,255,140,255,116,255,163,255,128,255,104,255,131,255,155,255,203,255,195,255,173,255,241,255,34,0,12,0, +248,255,28,0,86,0,69,0,41,0,68,0,84,0,102,0,121,0,147,0,211,0,221,0,223,0,20,1,3,1,232,0, +3,1,252,0,6,1,23,1,239,0,222,0,199,0,145,0,138,0,121,0,65,0,46,0,27,0,236,255,201,255,140,255, +73,255,66,255,51,255,242,254,186,254,130,254,102,254,123,254,116,254,127,254,174,254,148,254,121,254,134,254,106,254,103,254, +177,254,254,254,23,255,11,255,44,255,106,255,148,255,191,255,208,255,2,0,87,0,75,0,90,0,165,0,150,0,161,0, +184,0,149,0,210,0,1,1,245,0,28,1,231,0,185,0,250,0,213,0,188,0,183,0,45,0,30,0,92,0,255,255, +209,255,220,255,177,255,180,255,188,255,183,255,195,255,165,255,149,255,156,255,120,255,100,255,127,255,156,255,149,255,136,255, +166,255,159,255,123,255,164,255,194,255,185,255,206,255,212,255,220,255,242,255,234,255,12,0,63,0,41,0,17,0,13,0, +12,0,34,0,34,0,16,0,11,0,246,255,234,255,232,255,224,255,248,255,253,255,212,255,214,255,246,255,248,255,214,255, +178,255,178,255,164,255,148,255,178,255,147,255,98,255,99,255,41,255,34,255,106,255,77,255,93,255,143,255,77,255,114,255, +165,255,74,255,133,255,235,255,172,255,159,255,181,255,188,255,235,255,209,255,193,255,2,0,12,0,17,0,22,0,241,255, +241,255,219,255,205,255,251,255,189,255,109,255,147,255,137,255,116,255,166,255,163,255,156,255,200,255,192,255,183,255,238,255, +6,0,228,255,224,255,255,255,253,255,237,255,237,255,239,255,1,0,8,0,246,255,11,0,25,0,237,255,236,255,240,255, +183,255,187,255,239,255,250,255,243,255,202,255,179,255,190,255,129,255,114,255,194,255,198,255,188,255,192,255,138,255,136,255, +146,255,107,255,135,255,165,255,143,255,105,255,59,255,84,255,126,255,154,255,231,255,213,255,190,255,47,0,47,0,28,0, +131,0,94,0,43,0,141,0,169,0,133,0,114,0,122,0,150,0,94,0,69,0,134,0,108,0,83,0,105,0,78,0, +106,0,121,0,49,0,59,0,104,0,76,0,40,0,251,255,206,255,211,255,203,255,137,255,94,255,108,255,61,255,5,255, +71,255,100,255,33,255,24,255,36,255,41,255,71,255,55,255,40,255,102,255,167,255,179,255,173,255,192,255,218,255,248,255, +56,0,77,0,77,0,169,0,234,0,203,0,206,0,244,0,12,1,31,1,34,1,51,1,54,1,12,1,249,0,246,0, +252,0,21,1,236,0,203,0,253,0,211,0,136,0,182,0,177,0,97,0,84,0,58,0,0,0,232,255,193,255,128,255, +58,255,29,255,62,255,40,255,224,254,217,254,241,254,233,254,150,254,81,254,157,254,194,254,150,254,208,254,215,254,138,254, +166,254,179,254,181,254,18,255,33,255,15,255,93,255,140,255,172,255,0,0,48,0,58,0,81,0,105,0,128,0,167,0, +196,0,190,0,212,0,2,1,3,1,9,1,20,1,242,0,216,0,192,0,185,0,232,0,208,0,132,0,141,0,125,0, +28,0,2,0,21,0,226,255,161,255,123,255,83,255,90,255,120,255,79,255,26,255,232,254,161,254,201,254,42,255,24,255, +244,254,9,255,42,255,77,255,60,255,35,255,70,255,78,255,84,255,107,255,86,255,100,255,130,255,116,255,149,255,177,255, +181,255,235,255,243,255,240,255,42,0,26,0,12,0,59,0,36,0,27,0,36,0,254,255,72,0,154,0,109,0,132,0, +185,0,154,0,147,0,139,0,105,0,89,0,40,0,28,0,65,0,25,0,212,255,185,255,192,255,247,255,17,0,228,255, +193,255,183,255,180,255,193,255,190,255,174,255,200,255,221,255,164,255,101,255,105,255,119,255,124,255,132,255,128,255,136,255, +147,255,147,255,154,255,135,255,130,255,143,255,94,255,85,255,144,255,140,255,128,255,132,255,108,255,149,255,185,255,129,255, +146,255,243,255,17,0,20,0,45,0,48,0,44,0,61,0,72,0,85,0,104,0,83,0,59,0,61,0,39,0,40,0, +79,0,59,0,49,0,101,0,88,0,24,0,24,0,46,0,56,0,70,0,31,0,212,255,187,255,156,255,115,255,170,255, +197,255,118,255,121,255,225,255,18,0,239,255,183,255,188,255,231,255,234,255,232,255,246,255,21,0,57,0,3,0,191,255, +254,255,72,0,39,0,4,0,51,0,107,0,95,0,80,0,109,0,113,0,96,0,113,0,103,0,28,0,12,0,66,0, +73,0,104,0,170,0,121,0,88,0,142,0,109,0,93,0,159,0,146,0,111,0,97,0,52,0,15,0,3,0,54,0, +92,0,253,255,204,255,12,0,34,0,13,0,240,255,236,255,8,0,254,255,2,0,25,0,11,0,30,0,24,0,210,255, +191,255,212,255,237,255,241,255,213,255,230,255,239,255,213,255,239,255,2,0,3,0,6,0,236,255,9,0,55,0,32,0, +17,0,16,0,46,0,91,0,52,0,65,0,144,0,105,0,96,0,183,0,162,0,101,0,106,0,90,0,82,0,125,0, +117,0,48,0,19,0,29,0,43,0,54,0,24,0,250,255,16,0,11,0,223,255,210,255,211,255,204,255,219,255,4,0, +7,0,241,255,5,0,246,255,199,255,225,255,251,255,9,0,27,0,211,255,158,255,167,255,133,255,153,255,175,255,115,255, +137,255,187,255,168,255,173,255,186,255,195,255,191,255,144,255,156,255,200,255,190,255,190,255,210,255,229,255,227,255,204,255, +229,255,230,255,210,255,35,0,81,0,25,0,23,0,45,0,25,0,35,0,82,0,113,0,119,0,102,0,44,0,35,0, +107,0,107,0,117,0,209,0,141,0,28,0,82,0,78,0,29,0,88,0,97,0,61,0,45,0,230,255,183,255,169,255, +131,255,152,255,188,255,155,255,129,255,129,255,123,255,108,255,85,255,107,255,169,255,168,255,129,255,147,255,172,255,149,255, +124,255,128,255,155,255,198,255,223,255,211,255,200,255,210,255,218,255,230,255,14,0,30,0,10,0,26,0,34,0,240,255, +211,255,226,255,250,255,250,255,223,255,0,0,57,0,28,0,254,255,22,0,58,0,84,0,24,0,237,255,75,0,103,0, +49,0,79,0,107,0,100,0,84,0,38,0,61,0,89,0,35,0,40,0,43,0,2,0,39,0,41,0,2,0,15,0, +228,255,214,255,253,255,176,255,138,255,187,255,161,255,146,255,118,255,61,255,109,255,124,255,75,255,93,255,61,255,18,255, +87,255,129,255,94,255,84,255,128,255,133,255,67,255,91,255,175,255,145,255,123,255,177,255,186,255,187,255,223,255,240,255, +230,255,250,255,48,0,49,0,28,0,67,0,93,0,111,0,148,0,139,0,135,0,178,0,205,0,194,0,197,0,253,0, +254,0,186,0,190,0,202,0,175,0,157,0,102,0,86,0,89,0,11,0,236,255,193,255,120,255,174,255,141,255,28,255, +58,255,7,255,164,254,187,254,145,254,99,254,114,254,86,254,118,254,141,254,105,254,156,254,183,254,167,254,253,254,57,255, +35,255,51,255,95,255,115,255,153,255,233,255,15,0,15,0,74,0,113,0,94,0,126,0,173,0,184,0,222,0,37,1, +63,1,43,1,77,1,122,1,98,1,90,1,111,1,111,1,70,1,235,0,208,0,233,0,183,0,159,0,161,0,108,0, +88,0,58,0,241,255,209,255,162,255,130,255,148,255,106,255,35,255,16,255,8,255,227,254,214,254,255,254,234,254,187,254, +208,254,184,254,165,254,210,254,198,254,212,254,230,254,212,254,54,255,85,255,25,255,100,255,121,255,121,255,249,255,17,0, +5,0,55,0,44,0,92,0,148,0,134,0,157,0,103,0,72,0,195,0,211,0,152,0,161,0,146,0,153,0,146,0, +82,0,94,0,108,0,74,0,94,0,107,0,79,0,48,0,25,0,35,0,65,0,76,0,27,0,186,255,169,255,219,255, +227,255,214,255,184,255,128,255,92,255,61,255,26,255,34,255,75,255,87,255,63,255,30,255,10,255,15,255,11,255,247,254, +15,255,48,255,54,255,81,255,84,255,62,255,92,255,118,255,148,255,219,255,223,255,200,255,237,255,7,0,13,0,2,0, +248,255,50,0,60,0,11,0,61,0,105,0,52,0,67,0,161,0,200,0,178,0,156,0,159,0,177,0,184,0,153,0, +130,0,159,0,130,0,57,0,61,0,64,0,41,0,54,0,20,0,243,255,27,0,34,0,248,255,185,255,142,255,183,255, +187,255,126,255,113,255,85,255,49,255,75,255,79,255,41,255,13,255,14,255,18,255,241,254,27,255,124,255,111,255,93,255, +123,255,108,255,132,255,181,255,188,255,222,255,240,255,207,255,194,255,229,255,26,0,22,0,8,0,52,0,57,0,60,0, +110,0,108,0,100,0,120,0,138,0,186,0,186,0,127,0,96,0,78,0,72,0,40,0,4,0,58,0,85,0,39,0, +5,0,214,255,207,255,208,255,147,255,135,255,124,255,93,255,136,255,109,255,44,255,89,255,87,255,24,255,37,255,74,255, +85,255,92,255,110,255,96,255,61,255,94,255,127,255,114,255,118,255,122,255,149,255,171,255,161,255,223,255,246,255,224,255, +51,0,43,0,212,255,252,255,16,0,24,0,64,0,36,0,64,0,96,0,40,0,48,0,48,0,25,0,75,0,61,0, +44,0,73,0,254,255,240,255,83,0,57,0,242,255,231,255,186,255,178,255,245,255,251,255,231,255,247,255,229,255,236,255, +23,0,242,255,228,255,16,0,253,255,242,255,241,255,206,255,235,255,253,255,246,255,55,0,73,0,26,0,229,255,179,255, +213,255,226,255,189,255,17,0,71,0,6,0,228,255,209,255,213,255,248,255,8,0,36,0,18,0,253,255,33,0,12,0, +250,255,250,255,178,255,195,255,15,0,245,255,216,255,212,255,216,255,233,255,201,255,205,255,254,255,249,255,248,255,248,255, +221,255,199,255,164,255,163,255,168,255,112,255,119,255,169,255,169,255,180,255,173,255,115,255,66,255,77,255,147,255,147,255, +117,255,190,255,204,255,147,255,189,255,230,255,247,255,22,0,248,255,9,0,63,0,16,0,4,0,36,0,247,255,12,0, +91,0,37,0,222,255,7,0,19,0,227,255,249,255,24,0,213,255,171,255,217,255,1,0,5,0,234,255,220,255,250,255, +251,255,244,255,4,0,220,255,197,255,223,255,165,255,120,255,188,255,206,255,163,255,165,255,163,255,144,255,157,255,148,255, +108,255,109,255,114,255,84,255,94,255,114,255,104,255,127,255,120,255,65,255,87,255,122,255,120,255,162,255,192,255,197,255, +240,255,248,255,217,255,226,255,243,255,221,255,207,255,231,255,219,255,200,255,8,0,31,0,229,255,244,255,24,0,249,255, +212,255,213,255,248,255,248,255,227,255,253,255,217,255,169,255,219,255,216,255,205,255,246,255,171,255,118,255,194,255,182,255, +127,255,127,255,116,255,136,255,140,255,82,255,84,255,102,255,91,255,137,255,165,255,145,255,169,255,168,255,145,255,172,255, +177,255,192,255,224,255,189,255,204,255,3,0,239,255,28,0,53,0,232,255,31,0,79,0,253,255,25,0,53,0,249,255, +8,0,7,0,0,0,58,0,63,0,35,0,10,0,248,255,26,0,34,0,38,0,47,0,249,255,248,255,12,0,245,255, +20,0,250,255,201,255,9,0,8,0,205,255,196,255,194,255,6,0,42,0,250,255,27,0,17,0,188,255,222,255,14,0, +234,255,215,255,233,255,0,0,2,0,5,0,249,255,213,255,243,255,4,0,218,255,245,255,8,0,223,255,210,255,198,255, +225,255,8,0,228,255,228,255,250,255,233,255,251,255,236,255,208,255,244,255,244,255,240,255,22,0,6,0,231,255,214,255, +196,255,235,255,26,0,23,0,18,0,255,255,223,255,236,255,4,0,236,255,228,255,249,255,205,255,176,255,217,255,189,255, +159,255,204,255,186,255,163,255,192,255,159,255,144,255,149,255,57,255,12,255,80,255,157,255,232,255,244,255,211,255,248,255, +5,0,221,255,235,255,253,255,1,0,21,0,12,0,7,0,3,0,229,255,5,0,30,0,254,255,57,0,110,0,51,0, +45,0,76,0,49,0,31,0,19,0,1,0,13,0,20,0,6,0,248,255,238,255,243,255,15,0,51,0,34,0,245,255, +245,255,224,255,205,255,232,255,179,255,130,255,200,255,213,255,168,255,182,255,176,255,156,255,163,255,179,255,211,255,194,255, +177,255,226,255,201,255,161,255,233,255,248,255,193,255,195,255,207,255,226,255,241,255,219,255,248,255,20,0,210,255,187,255, +246,255,9,0,247,255,1,0,34,0,49,0,44,0,54,0,50,0,10,0,248,255,241,255,200,255,191,255,235,255,252,255, +252,255,8,0,241,255,226,255,251,255,223,255,190,255,227,255,238,255,225,255,243,255,239,255,215,255,215,255,247,255,13,0, +221,255,205,255,249,255,232,255,239,255,49,0,50,0,23,0,3,0,3,0,44,0,14,0,12,0,122,0,134,0,80,0, +55,0,4,0,28,0,69,0,24,0,39,0,82,0,98,0,142,0,134,0,107,0,89,0,21,0,7,0,37,0,46,0, +96,0,119,0,71,0,28,0,13,0,24,0,253,255,238,255,62,0,75,0,18,0,32,0,16,0,204,255,182,255,210,255, +12,0,9,0,213,255,223,255,248,255,252,255,10,0,21,0,7,0,209,255,200,255,240,255,213,255,238,255,48,0,232,255, +197,255,28,0,57,0,39,0,238,255,180,255,222,255,228,255,191,255,225,255,196,255,143,255,230,255,58,0,44,0,27,0, +28,0,44,0,45,0,13,0,23,0,64,0,54,0,52,0,84,0,56,0,11,0,75,0,145,0,76,0,12,0,77,0, +112,0,65,0,57,0,59,0,33,0,16,0,6,0,15,0,11,0,21,0,104,0,99,0,13,0,52,0,62,0,213,255, +184,255,210,255,234,255,238,255,175,255,164,255,208,255,205,255,211,255,198,255,174,255,221,255,236,255,199,255,200,255,198,255, +198,255,219,255,214,255,199,255,182,255,168,255,203,255,14,0,12,0,195,255,194,255,255,255,237,255,201,255,242,255,41,0, +37,0,242,255,248,255,37,0,8,0,233,255,228,255,188,255,171,255,188,255,218,255,245,255,190,255,127,255,123,255,124,255, +166,255,184,255,126,255,103,255,89,255,71,255,112,255,126,255,111,255,123,255,122,255,156,255,209,255,187,255,149,255,151,255, +173,255,172,255,147,255,187,255,238,255,201,255,183,255,194,255,156,255,177,255,243,255,216,255,204,255,31,0,80,0,81,0, +77,0,39,0,24,0,20,0,214,255,221,255,38,0,11,0,243,255,35,0,254,255,221,255,40,0,38,0,239,255,23,0, +16,0,196,255,202,255,227,255,234,255,250,255,199,255,159,255,183,255,168,255,160,255,173,255,158,255,154,255,140,255,136,255, +168,255,150,255,139,255,169,255,174,255,190,255,179,255,147,255,170,255,181,255,175,255,178,255,190,255,2,0,252,255,194,255, +236,255,240,255,238,255,40,0,6,0,10,0,46,0,245,255,50,0,94,0,244,255,7,0,44,0,6,0,34,0,37,0, +48,0,62,0,225,255,205,255,250,255,221,255,232,255,3,0,233,255,216,255,221,255,250,255,252,255,228,255,231,255,216,255, +218,255,8,0,9,0,233,255,209,255,222,255,244,255,198,255,179,255,225,255,2,0,29,0,245,255,178,255,204,255,221,255, +208,255,240,255,10,0,0,0,205,255,201,255,12,0,253,255,218,255,238,255,229,255,2,0,49,0,37,0,41,0,21,0, +11,0,82,0,93,0,81,0,121,0,102,0,41,0,32,0,61,0,60,0,24,0,42,0,59,0,23,0,25,0,32,0, +30,0,77,0,83,0,27,0,11,0,33,0,15,0,212,255,214,255,8,0,19,0,11,0,232,255,215,255,255,255,231,255, +198,255,246,255,247,255,208,255,213,255,230,255,227,255,203,255,227,255,18,0,12,0,8,0,234,255,209,255,246,255,244,255, +13,0,46,0,230,255,9,0,63,0,247,255,32,0,39,0,188,255,239,255,23,0,236,255,29,0,51,0,59,0,89,0, +43,0,17,0,14,0,250,255,16,0,35,0,41,0,41,0,36,0,71,0,91,0,91,0,72,0,23,0,66,0,125,0, +97,0,95,0,90,0,71,0,70,0,6,0,251,255,41,0,9,0,15,0,48,0,33,0,46,0,30,0,3,0,32,0, +27,0,6,0,1,0,246,255,241,255,241,255,32,0,61,0,6,0,249,255,5,0,255,255,30,0,41,0,49,0,50,0, +5,0,10,0,249,255,200,255,248,255,6,0,252,255,33,0,247,255,5,0,83,0,20,0,229,255,8,0,26,0,65,0, +48,0,15,0,67,0,72,0,43,0,53,0,37,0,35,0,42,0,11,0,7,0,13,0,244,255,235,255,253,255,3,0, +235,255,214,255,206,255,182,255,176,255,209,255,229,255,232,255,245,255,254,255,254,255,13,0,254,255,210,255,239,255,48,0, +78,0,109,0,111,0,94,0,132,0,141,0,99,0,100,0,131,0,123,0,80,0,97,0,141,0,95,0,74,0,106,0, +80,0,88,0,77,0,16,0,84,0,123,0,36,0,40,0,48,0,238,255,241,255,18,0,34,0,3,0,192,255,228,255, +9,0,195,255,193,255,1,0,7,0,238,255,205,255,205,255,245,255,252,255,255,255,43,0,66,0,57,0,56,0,41,0, +28,0,58,0,69,0,58,0,109,0,143,0,88,0,37,0,49,0,83,0,63,0,22,0,63,0,95,0,45,0,34,0, +56,0,40,0,27,0,36,0,54,0,50,0,11,0,255,255,10,0,12,0,25,0,11,0,230,255,235,255,10,0,22,0, +18,0,5,0,253,255,4,0,251,255,226,255,253,255,35,0,5,0,241,255,5,0,6,0,32,0,72,0,71,0,68,0, +75,0,69,0,36,0,243,255,1,0,45,0,35,0,35,0,54,0,62,0,93,0,95,0,68,0,90,0,96,0,76,0, +95,0,85,0,53,0,82,0,95,0,75,0,92,0,84,0,52,0,79,0,84,0,55,0,94,0,129,0,103,0,96,0, +86,0,46,0,31,0,32,0,30,0,36,0,48,0,70,0,77,0,67,0,80,0,87,0,45,0,30,0,54,0,38,0, +30,0,48,0,13,0,17,0,71,0,35,0,10,0,58,0,53,0,46,0,61,0,43,0,36,0,20,0,27,0,82,0, +33,0,238,255,53,0,73,0,63,0,99,0,68,0,36,0,52,0,46,0,71,0,109,0,115,0,141,0,138,0,80,0, +58,0,73,0,86,0,102,0,110,0,122,0,160,0,145,0,75,0,104,0,190,0,171,0,152,0,190,0,140,0,63,0, +88,0,122,0,119,0,127,0,127,0,112,0,110,0,99,0,77,0,104,0,131,0,70,0,19,0,38,0,26,0,4,0, +24,0,15,0,254,255,22,0,31,0,28,0,46,0,60,0,84,0,103,0,67,0,47,0,64,0,15,0,244,255,67,0, +91,0,70,0,116,0,124,0,86,0,96,0,85,0,69,0,113,0,126,0,101,0,112,0,114,0,82,0,87,0,120,0, +109,0,94,0,127,0,139,0,110,0,106,0,123,0,117,0,76,0,49,0,92,0,105,0,32,0,20,0,55,0,33,0, +44,0,87,0,73,0,73,0,69,0,18,0,13,0,31,0,27,0,14,0,226,255,239,255,39,0,22,0,27,0,38,0, +233,255,243,255,14,0,230,255,255,255,17,0,10,0,65,0,53,0,34,0,98,0,77,0,28,0,48,0,48,0,67,0, +108,0,113,0,104,0,94,0,137,0,174,0,131,0,152,0,207,0,177,0,181,0,199,0,165,0,172,0,179,0,159,0, +168,0,155,0,134,0,144,0,158,0,187,0,207,0,189,0,171,0,144,0,100,0,94,0,128,0,140,0,121,0,105,0, +88,0,57,0,46,0,79,0,131,0,145,0,100,0,57,0,48,0,27,0,222,255,184,255,239,255,35,0,27,0,77,0, +97,0,24,0,49,0,80,0,255,255,6,0,60,0,59,0,119,0,127,0,54,0,72,0,94,0,77,0,107,0,104,0, +91,0,94,0,59,0,70,0,93,0,77,0,121,0,131,0,88,0,132,0,140,0,84,0,82,0,57,0,50,0,104,0, +111,0,135,0,141,0,75,0,84,0,99,0,74,0,113,0,124,0,125,0,155,0,99,0,100,0,160,0,118,0,120,0, +151,0,117,0,149,0,137,0,52,0,75,0,85,0,43,0,61,0,61,0,60,0,97,0,99,0,93,0,92,0,65,0, +50,0,53,0,67,0,86,0,78,0,62,0,77,0,82,0,29,0,18,0,75,0,60,0,51,0,109,0,74,0,45,0, +112,0,109,0,100,0,135,0,118,0,125,0,128,0,77,0,68,0,59,0,59,0,132,0,147,0,112,0,120,0,122,0, +116,0,107,0,90,0,88,0,69,0,52,0,82,0,114,0,132,0,136,0,115,0,104,0,136,0,188,0,191,0,142,0, +142,0,169,0,134,0,101,0,128,0,145,0,121,0,115,0,134,0,117,0,86,0,75,0,55,0,55,0,69,0,56,0, +63,0,58,0,21,0,48,0,88,0,83,0,96,0,92,0,79,0,80,0,36,0,30,0,77,0,75,0,89,0,99,0, +52,0,67,0,100,0,99,0,142,0,121,0,43,0,50,0,50,0,53,0,129,0,138,0,98,0,106,0,105,0,94,0, +87,0,76,0,94,0,102,0,116,0,152,0,139,0,129,0,150,0,131,0,103,0,97,0,87,0,65,0,46,0,85,0, +125,0,116,0,148,0,165,0,128,0,141,0,129,0,82,0,117,0,137,0,103,0,99,0,104,0,103,0,91,0,56,0, +52,0,73,0,78,0,83,0,109,0,109,0,40,0,17,0,57,0,9,0,223,255,25,0,45,0,10,0,234,255,241,255, +39,0,13,0,232,255,24,0,229,255,158,255,217,255,237,255,220,255,237,255,236,255,12,0,34,0,24,0,70,0,57,0, +248,255,30,0,68,0,46,0,53,0,63,0,74,0,95,0,79,0,65,0,81,0,81,0,85,0,128,0,152,0,123,0, +113,0,112,0,83,0,116,0,155,0,87,0,64,0,139,0,138,0,79,0,63,0,68,0,61,0,36,0,29,0,42,0, +25,0,39,0,80,0,37,0,16,0,74,0,45,0,235,255,255,255,24,0,12,0,217,255,176,255,239,255,39,0,16,0, +13,0,11,0,19,0,71,0,44,0,223,255,230,255,17,0,25,0,249,255,215,255,237,255,12,0,254,255,254,255,54,0, +87,0,66,0,84,0,108,0,74,0,90,0,121,0,70,0,69,0,127,0,121,0,69,0,26,0,21,0,25,0,10,0, +28,0,26,0,250,255,14,0,19,0,25,0,66,0,22,0,233,255,15,0,12,0,236,255,233,255,231,255,233,255,241,255, +16,0,27,0,251,255,12,0,43,0,28,0,17,0,248,255,247,255,23,0,8,0,7,0,23,0,2,0,2,0,244,255, +241,255,38,0,19,0,240,255,14,0,2,0,241,255,15,0,34,0,45,0,43,0,34,0,24,0,9,0,32,0,49,0, +40,0,79,0,104,0,101,0,105,0,72,0,67,0,86,0,52,0,43,0,54,0,45,0,78,0,82,0,50,0,68,0, +51,0,2,0,31,0,63,0,57,0,70,0,63,0,27,0,24,0,37,0,42,0,58,0,56,0,8,0,251,255,50,0, +51,0,248,255,9,0,23,0,218,255,252,255,57,0,1,0,253,255,20,0,215,255,210,255,220,255,210,255,8,0,4,0, +0,0,53,0,250,255,236,255,61,0,36,0,61,0,141,0,105,0,64,0,6,0,210,255,31,0,60,0,28,0,66,0, +73,0,70,0,124,0,146,0,136,0,126,0,108,0,88,0,77,0,80,0,46,0,8,0,29,0,34,0,26,0,51,0, +67,0,83,0,79,0,61,0,73,0,53,0,51,0,92,0,61,0,33,0,69,0,73,0,42,0,12,0,35,0,62,0, +14,0,39,0,81,0,253,255,252,255,50,0,246,255,250,255,55,0,31,0,4,0,0,0,20,0,52,0,35,0,20,0, +13,0,23,0,84,0,55,0,232,255,7,0,21,0,249,255,7,0,2,0,31,0,70,0,25,0,22,0,41,0,253,255, +28,0,61,0,28,0,72,0,87,0,50,0,84,0,39,0,241,255,75,0,81,0,42,0,104,0,90,0,44,0,53,0, +1,0,246,255,28,0,8,0,33,0,80,0,58,0,28,0,11,0,25,0,47,0,12,0,239,255,245,255,250,255,250,255, +245,255,6,0,249,255,213,255,2,0,24,0,224,255,223,255,237,255,243,255,14,0,232,255,199,255,229,255,234,255,236,255, +254,255,23,0,60,0,59,0,42,0,19,0,239,255,12,0,31,0,251,255,8,0,18,0,11,0,44,0,33,0,28,0, +66,0,28,0,248,255,44,0,89,0,84,0,49,0,35,0,43,0,29,0,59,0,99,0,51,0,19,0,52,0,59,0, +32,0,16,0,28,0,20,0,243,255,13,0,37,0,250,255,232,255,250,255,27,0,73,0,45,0,240,255,8,0,58,0, +57,0,21,0,231,255,205,255,205,255,209,255,211,255,216,255,215,255,191,255,183,255,206,255,207,255,210,255,219,255,196,255, +216,255,251,255,219,255,217,255,255,255,8,0,19,0,253,255,208,255,234,255,24,0,46,0,46,0,3,0,253,255,49,0, +72,0,50,0,23,0,36,0,69,0,33,0,5,0,61,0,81,0,44,0,49,0,63,0,15,0,229,255,25,0,70,0, +19,0,245,255,23,0,30,0,20,0,24,0,23,0,19,0,8,0,239,255,217,255,210,255,218,255,233,255,246,255,1,0, +6,0,242,255,210,255,210,255,207,255,155,255,137,255,184,255,209,255,192,255,185,255,209,255,227,255,211,255,230,255,24,0, +254,255,215,255,250,255,28,0,46,0,72,0,44,0,3,0,27,0,24,0,0,0,49,0,61,0,9,0,18,0,8,0, +229,255,23,0,43,0,13,0,36,0,32,0,23,0,66,0,59,0,35,0,54,0,50,0,40,0,50,0,64,0,61,0, +30,0,22,0,35,0,23,0,253,255,216,255,225,255,19,0,9,0,246,255,4,0,228,255,182,255,175,255,200,255,223,255, +188,255,184,255,241,255,220,255,176,255,216,255,241,255,220,255,227,255,241,255,235,255,245,255,250,255,219,255,231,255,7,0, +221,255,211,255,14,0,33,0,17,0,239,255,230,255,28,0,20,0,234,255,23,0,51,0,21,0,9,0,26,0,64,0, +66,0,18,0,7,0,53,0,78,0,33,0,245,255,7,0,23,0,30,0,47,0,44,0,63,0,68,0,5,0,229,255, +242,255,245,255,254,255,3,0,244,255,228,255,229,255,227,255,223,255,9,0,29,0,255,255,38,0,66,0,41,0,67,0, +61,0,23,0,26,0,2,0,7,0,21,0,245,255,22,0,25,0,231,255,20,0,29,0,0,0,38,0,41,0,31,0, +28,0,4,0,33,0,44,0,43,0,77,0,54,0,45,0,42,0,255,255,37,0,32,0,238,255,52,0,20,0,166,255, +218,255,12,0,18,0,52,0,24,0,240,255,237,255,248,255,6,0,229,255,231,255,23,0,14,0,249,255,248,255,15,0, +58,0,32,0,27,0,91,0,86,0,77,0,96,0,49,0,36,0,84,0,86,0,71,0,92,0,88,0,18,0,252,255, +74,0,78,0,4,0,43,0,115,0,62,0,14,0,66,0,93,0,77,0,62,0,17,0,46,0,136,0,97,0,60,0, +112,0,63,0,3,0,15,0,227,255,216,255,16,0,16,0,244,255,241,255,247,255,234,255,215,255,253,255,31,0,249,255, +234,255,35,0,97,0,88,0,48,0,42,0,6,0,219,255,253,255,29,0,44,0,51,0,10,0,244,255,237,255,224,255, +13,0,19,0,219,255,254,255,51,0,249,255,190,255,227,255,10,0,10,0,47,0,46,0,238,255,3,0,38,0,255,255, +243,255,245,255,248,255,254,255,193,255,160,255,207,255,229,255,231,255,244,255,35,0,63,0,252,255,207,255,218,255,211,255, +237,255,244,255,218,255,231,255,208,255,197,255,237,255,215,255,209,255,235,255,203,255,218,255,8,0,249,255,11,0,50,0, +37,0,25,0,50,0,55,0,20,0,38,0,67,0,6,0,224,255,19,0,68,0,57,0,250,255,245,255,25,0,237,255, +233,255,31,0,13,0,2,0,23,0,40,0,64,0,20,0,216,255,240,255,28,0,55,0,18,0,219,255,255,255,16,0, +217,255,195,255,217,255,19,0,46,0,9,0,10,0,39,0,79,0,95,0,5,0,222,255,28,0,35,0,54,0,72,0, +21,0,46,0,71,0,9,0,15,0,48,0,27,0,17,0,28,0,43,0,26,0,10,0,66,0,96,0,71,0,66,0, +35,0,21,0,46,0,16,0,20,0,82,0,42,0,232,255,7,0,42,0,42,0,44,0,27,0,29,0,69,0,57,0, +11,0,13,0,17,0,11,0,28,0,13,0,244,255,254,255,12,0,35,0,38,0,16,0,61,0,104,0,58,0,39,0, +74,0,90,0,93,0,66,0,12,0,9,0,36,0,7,0,222,255,3,0,41,0,236,255,170,255,190,255,229,255,232,255, +222,255,244,255,49,0,53,0,222,255,197,255,7,0,10,0,218,255,227,255,236,255,221,255,239,255,232,255,197,255,219,255, +248,255,239,255,248,255,248,255,226,255,245,255,229,255,185,255,30,0,135,0,43,0,210,255,237,255,239,255,210,255,207,255, +237,255,10,0,249,255,247,255,7,0,238,255,231,255,231,255,222,255,5,0,22,0,252,255,249,255,250,255,9,0,17,0, +252,255,6,0,21,0,28,0,17,0,196,255,197,255,26,0,9,0,231,255,7,0,28,0,29,0,232,255,196,255,24,0, +84,0,59,0,27,0,250,255,247,255,235,255,177,255,171,255,200,255,198,255,210,255,219,255,196,255,193,255,209,255,188,255, +171,255,217,255,11,0,8,0,241,255,202,255,173,255,189,255,198,255,186,255,188,255,192,255,190,255,195,255,230,255,6,0, +0,0,18,0,48,0,24,0,8,0,0,0,228,255,238,255,253,255,252,255,3,0,255,255,34,0,93,0,78,0,63,0, +110,0,113,0,28,0,213,255,221,255,218,255,165,255,131,255,95,255,75,255,98,255,74,255,46,255,77,255,103,255,135,255, +131,255,81,255,112,255,130,255,70,255,61,255,33,255,198,254,129,254,58,254,5,254,209,253,124,253,113,253,159,253,238,253, +160,254,48,255,141,255,48,0,171,0,203,0,229,0,2,1,91,1,217,1,216,1,141,1,157,1,196,1,166,1,156,1, +197,1,200,1,205,1,16,2,78,2,104,2,125,2,149,2,164,2,130,2,57,2,240,1,144,1,2,1,75,0,124,255, +219,254,150,254,126,254,122,254,145,254,124,254,73,254,133,254,213,254,160,254,141,254,203,254,212,254,223,254,190,254,65,254, +61,254,122,254,71,254,55,254,95,254,62,254,71,254,194,254,43,255,112,255,234,255,145,0,49,1,183,1,1,2,22,2, +80,2,165,2,133,2,222,1,87,1,28,1,184,0,73,0,64,0,132,0,231,0,93,1,217,1,78,2,161,2,12,3, +166,3,200,3,117,3,100,3,136,3,115,3,241,2,34,2,119,1,12,1,122,0,161,255,252,254,205,254,167,254,127,254, +135,254,117,254,98,254,130,254,158,254,177,254,119,254,250,253,220,253,193,253,76,253,22,253,5,253,208,252,208,252,235,252, +218,252,1,253,173,253,91,254,181,254,45,255,156,255,153,255,147,255,165,255,159,255,167,255,156,255,147,255,181,255,198,255, +9,0,133,0,192,0,63,1,68,2,225,2,243,2,77,3,7,4,120,4,90,4,44,4,68,4,70,4,205,3,238,2, +32,2,170,1,56,1,144,0,37,0,40,0,63,0,35,0,213,255,165,255,219,255,28,0,30,0,13,0,223,255,154,255, +98,255,249,254,101,254,22,254,240,253,173,253,132,253,76,253,175,252,53,252,79,252,108,252,37,252,230,251,43,252,194,252, +35,253,104,253,213,253,35,254,89,254,144,254,119,254,78,254,122,254,131,254,45,254,20,254,102,254,143,254,119,254,162,254, +35,255,143,255,200,255,38,0,167,0,228,0,37,1,159,1,195,1,207,1,3,2,251,1,37,2,87,2,6,2,0,2, +32,2,14,2,104,2,70,2,186,1,36,2,62,2,139,1,96,1,44,1,209,0,175,0,223,255,231,254,141,254,29,254, +104,253,112,252,120,251,62,251,113,251,209,251,122,252,231,252,87,253,82,254,47,255,51,255,156,254,101,254,227,254,29,255, +134,254,237,253,22,254,139,254,138,254,135,254,247,254,66,255,94,255,213,255,99,0,168,0,197,0,255,0,123,1,228,1, +216,1,153,1,105,1,1,1,74,0,144,255,36,255,113,255,63,0,121,0,15,0,47,0,31,1,211,1,167,1,124,1, +48,2,210,2,120,2,233,1,200,1,179,1,108,1,56,1,70,1,70,1,243,0,156,0,198,0,113,1,225,1,207,1, +225,1,35,2,36,2,6,2,237,1,232,1,206,1,53,1,135,0,60,0,182,255,161,254,167,253,132,253,18,254,129,254, +231,254,208,255,190,0,131,1,154,2,168,3,86,4,229,4,73,5,107,5,30,5,44,4,64,3,170,2,147,1,64,0, +153,255,49,255,224,254,237,254,250,254,120,255,153,0,72,1,112,1,137,1,109,1,25,1,67,0,21,255,51,254,47,253, +36,252,191,251,101,251,235,250,162,250,111,250,189,250,155,251,204,252,58,254,48,255,254,255,57,1,183,1,116,1,156,1, +211,1,101,1,104,0,102,255,200,254,44,254,170,253,202,253,129,254,212,255,147,1,72,3,245,4,202,6,248,8,192,10, +30,11,1,11,65,11,16,11,28,10,201,8,161,7,171,6,68,5,210,3,248,2,148,2,167,2,202,2,199,2,245,2, +228,2,177,2,216,2,184,2,37,2,33,1,170,255,126,254,0,253,117,250,91,248,117,247,178,246,108,245,71,244,116,244, +173,245,118,246,189,246,115,247,90,248,141,248,130,248,5,249,72,249,233,248,156,248,54,248,179,247,155,247,200,247,103,248, +193,249,86,251,199,252,254,253,55,255,227,0,185,2,44,4,33,5,198,5,77,6,174,6,208,6,174,6,125,6,131,6, +110,6,238,5,134,5,179,5,51,6,92,6,106,6,242,6,64,7,30,7,65,7,25,7,76,6,108,5,99,4,20,3, +77,1,38,255,119,253,251,251,90,250,44,249,41,248,43,247,126,246,209,245,103,245,73,245,26,245,150,245,174,246,80,247, +95,247,34,247,249,246,2,247,210,246,154,246,170,246,228,246,55,247,104,247,228,247,98,249,94,251,38,253,167,254,14,0, +166,1,24,3,12,4,243,4,232,5,171,6,29,7,55,7,100,7,188,7,212,7,184,7,40,7,21,6,127,5,85,5, +239,4,220,4,247,4,120,4,190,3,12,3,95,2,18,2,251,1,5,2,66,2,19,2,119,1,255,0,148,0,73,0, +91,0,146,0,192,0,172,0,69,0,7,0,217,255,63,255,208,254,35,255,140,255,167,255,235,255,105,0,173,0,118,0, +69,0,168,0,206,0,9,0,113,255,145,255,117,255,251,254,64,255,128,0,92,1,126,1,52,2,103,3,5,4,47,4, +100,4,205,4,214,4,243,3,30,3,150,2,134,1,127,0,228,255,53,255,142,254,224,253,57,253,227,252,158,252,156,252, +245,252,31,253,67,253,155,253,218,253,240,253,52,254,184,254,194,254,67,254,36,254,46,254,189,253,43,253,21,253,197,253, +118,254,140,254,206,254,94,255,231,255,205,0,246,1,254,2,206,3,63,4,118,4,131,4,137,4,224,4,63,5,100,5, +165,5,63,6,247,6,94,7,200,7,159,8,85,9,153,9,149,9,128,9,139,9,46,9,125,8,24,8,105,7,54,6, +246,4,222,3,93,3,253,2,57,2,158,1,248,0,62,0,237,255,102,255,112,254,99,253,75,252,71,251,245,249,109,248, +91,247,47,246,123,244,148,242,249,240,106,240,49,240,127,239,169,239,16,241,99,242,238,242,243,242,126,243,45,245,90,247, +85,249,171,250,120,251,121,252,229,253,20,255,124,255,12,0,233,1,211,3,111,4,171,4,126,5,187,6,212,7,185,8, +242,9,29,11,156,11,243,11,49,12,219,11,77,11,191,10,32,10,153,9,234,8,243,7,10,7,10,6,204,4,108,3, +185,1,78,0,59,0,151,0,145,255,128,253,98,252,121,252,172,251,141,249,80,248,151,248,165,248,168,247,229,246,118,247, +25,248,204,247,224,247,107,248,20,248,58,247,252,246,104,247,148,247,20,247,176,246,135,246,84,246,103,246,108,246,162,246, +188,247,16,249,78,250,129,251,64,252,247,252,229,253,238,254,63,0,125,1,69,3,16,6,56,8,72,9,97,10,194,11, +55,13,89,14,58,15,76,16,196,16,60,16,39,15,112,13,170,11,118,10,58,9,167,7,71,6,155,5,69,5,186,4, +200,4,159,5,232,5,197,5,27,6,20,6,4,5,196,3,174,2,52,1,112,255,228,253,93,252,128,250,148,248,30,247, +2,246,237,244,152,244,138,245,185,246,110,247,35,248,11,249,219,249,75,250,131,250,251,250,184,251,46,252,208,251,242,250, +210,250,167,251,139,252,179,253,193,255,37,2,32,4,239,5,3,8,33,10,155,11,87,12,36,13,68,14,205,14,71,14, +112,13,7,13,189,12,114,11,71,9,18,8,243,7,25,7,111,5,117,4,76,4,197,3,130,2,103,1,234,0,93,0, +72,255,13,254,239,252,132,251,243,249,6,249,85,248,2,247,111,245,88,244,245,243,25,244,82,244,165,244,110,245,132,246, +98,247,184,247,250,247,10,249,179,250,193,251,7,252,191,252,69,254,82,255,197,255,44,1,127,3,6,5,117,5,40,6, +204,7,53,9,82,9,61,9,250,9,88,10,174,9,235,8,153,8,193,8,233,8,121,8,7,8,255,7,214,7,155,7, +142,7,188,7,245,7,66,7,212,5,247,4,136,4,190,3,61,2,93,0,76,255,146,254,240,252,75,251,123,250,3,250, +133,249,3,249,207,248,152,248,148,247,83,246,127,245,159,244,119,243,149,242,106,242,41,242,72,241,14,241,213,241,85,242, +98,242,197,242,225,243,24,245,208,245,208,246,108,248,251,249,164,251,152,253,158,255,104,1,174,2,29,4,6,6,182,7, +12,9,198,9,188,9,238,9,205,10,175,11,235,11,196,11,90,12,30,13,116,12,248,10,235,9,241,8,83,7,65,5, +129,3,37,2,167,0,78,255,179,254,163,254,102,254,255,253,83,254,55,255,106,255,152,254,91,253,92,252,156,251,26,250, +198,247,15,246,113,245,241,244,240,243,64,243,26,244,32,246,22,248,242,249,50,252,96,254,210,255,149,0,7,1,83,1, +51,1,92,0,105,255,1,255,156,254,236,253,133,253,177,253,133,254,175,255,152,0,234,1,229,3,210,4,83,4,201,3, +86,3,162,2,225,1,36,1,188,0,101,0,72,255,7,254,114,253,37,253,255,252,40,253,232,253,129,255,21,1,25,2, +64,3,182,4,45,6,98,7,206,7,163,7,217,7,151,8,228,8,41,8,53,7,221,6,246,6,11,7,52,7,23,8, +137,9,114,10,136,10,5,10,238,8,158,7,64,6,198,4,10,3,230,0,15,255,183,253,25,252,104,250,17,249,31,248, +165,247,53,247,224,246,13,247,104,247,2,248,178,248,182,248,69,248,221,247,195,247,230,247,191,247,204,247,53,248,33,248, +58,248,10,249,242,249,72,251,9,253,167,254,116,0,65,2,152,3,199,4,3,6,97,7,191,8,152,9,219,9,219,9, +209,9,192,9,121,9,237,8,122,8,130,8,170,8,88,8,5,8,114,8,255,8,146,8,127,7,174,6,156,5,136,3, +33,1,28,255,58,253,66,251,133,249,99,248,191,247,162,247,45,248,225,248,196,249,55,251,93,252,108,252,7,252,246,251, +217,251,247,250,40,250,68,250,238,249,125,248,74,247,14,247,84,247,164,247,53,248,31,249,158,249,195,249,121,250,201,251, +18,253,137,253,33,253,233,252,2,253,170,252,246,251,166,251,33,252,211,252,115,253,169,254,53,0,112,1,181,2,74,4, +245,5,50,7,166,7,198,7,243,7,52,8,123,8,92,8,226,7,96,7,161,6,235,5,217,5,78,6,186,6,235,6, +130,7,173,8,101,9,51,9,124,8,56,7,55,5,168,2,178,255,50,252,39,248,38,244,189,240,54,238,173,236,202,235, +155,235,201,236,251,238,43,241,53,243,7,245,77,246,76,247,48,248,83,249,71,251,142,252,2,252,219,251,20,253,205,253, +181,253,68,254,42,0,248,1,41,2,136,2,146,4,63,6,136,6,176,6,196,7,98,9,196,9,23,9,47,9,146,9, +96,9,233,8,55,8,223,7,186,7,121,6,164,4,115,3,46,2,222,255,122,253,200,252,173,253,73,254,196,253,131,253, +222,254,108,0,157,0,168,0,76,1,28,1,97,255,115,253,238,252,229,252,185,251,207,250,73,251,194,251,30,252,153,253, +0,0,230,1,205,2,238,3,167,5,160,6,97,6,218,5,220,5,19,6,123,5,62,4,80,3,254,2,254,2,109,2, +16,1,15,0,199,255,188,255,192,0,100,3,166,5,245,5,0,6,240,6,40,7,193,5,226,3,107,2,134,0,57,253, +163,249,135,247,145,246,254,244,220,242,138,242,38,244,19,245,71,245,78,246,7,248,151,249,252,249,38,250,176,251,176,252, +148,252,200,253,155,255,177,0,204,1,218,2,185,3,157,4,124,5,141,6,102,7,98,8,73,10,240,11,214,12,177,13, +23,14,197,13,26,13,111,12,28,12,177,11,248,10,43,10,160,8,59,6,19,4,185,2,179,1,85,0,0,255,141,254, +96,254,34,253,38,251,221,249,9,249,75,247,82,245,115,244,237,243,214,242,193,241,56,241,143,240,73,239,169,238,144,239, +155,240,211,240,242,240,92,241,164,241,127,241,55,241,78,241,225,241,130,242,160,242,157,242,168,243,145,245,47,247,210,248, +2,251,235,252,113,254,142,0,170,3,139,7,230,10,160,12,248,13,149,15,10,16,195,15,115,16,186,17,0,18,173,16, +245,14,69,14,41,14,173,13,70,13,219,13,196,14,146,14,193,13,46,13,71,12,11,11,146,9,171,7,251,5,224,3, +144,0,102,253,206,250,179,247,146,243,11,239,28,236,27,235,37,234,62,233,136,233,252,234,245,236,131,238,20,240,74,242, +149,243,178,243,104,244,113,245,137,245,25,245,51,245,250,245,240,246,142,248,191,251,153,255,145,2,37,5,89,8,89,11, +34,13,91,14,237,15,174,17,212,18,217,18,24,18,20,17,224,15,118,14,156,12,61,10,183,7,24,5,178,2,219,1, +148,2,140,2,40,1,129,0,248,0,19,1,221,0,250,0,54,1,246,0,144,255,156,253,82,252,125,251,73,250,182,248, +191,247,227,247,180,247,56,246,193,244,151,244,52,245,100,245,147,245,207,246,231,247,53,248,157,249,87,252,184,254,105,0, +228,1,41,3,222,3,234,3,133,3,204,2,245,1,252,0,219,255,243,254,245,253,209,252,173,252,169,253,227,254,40,0, +132,1,228,2,255,3,206,4,177,5,119,6,247,6,81,7,27,7,97,6,244,5,33,6,118,6,219,6,22,8,202,9, +115,10,186,10,42,12,244,13,139,14,39,14,15,14,200,13,200,11,26,9,109,7,12,6,26,4,211,1,213,255,113,254, +236,252,247,250,55,249,14,248,128,247,237,246,245,245,56,245,86,244,169,242,245,240,187,239,115,238,153,236,178,234,95,234, +180,235,153,236,111,236,235,236,183,238,120,240,230,241,14,244,158,246,215,248,247,250,176,252,160,253,138,254,232,255,100,1, +43,3,254,5,184,9,235,12,213,14,184,16,241,19,128,23,192,25,236,26,20,27,183,25,6,24,221,22,103,21,96,19, +40,17,236,14,166,12,21,10,142,7,139,5,237,3,191,2,241,1,219,0,213,254,1,252,197,249,255,248,177,248,51,248, +230,247,73,247,107,245,44,243,64,242,48,242,136,241,209,240,244,240,50,241,204,240,130,240,56,241,48,242,182,242,165,243, +251,244,142,245,135,245,239,245,21,247,120,248,210,249,11,251,56,251,120,250,112,250,48,251,143,251,139,251,204,251,154,252, +200,253,188,255,174,2,87,5,153,7,168,10,193,13,184,15,187,16,107,17,98,18,6,19,232,18,35,19,105,19,124,18, +20,17,114,16,103,16,215,15,118,14,20,13,31,12,128,11,159,10,19,9,240,7,82,7,15,6,95,4,79,2,184,255, +119,253,7,251,219,247,13,245,127,242,97,239,23,236,114,233,4,232,67,231,137,230,47,230,229,229,61,229,42,229,70,230, +188,231,159,232,65,233,130,234,49,236,159,237,237,238,230,240,233,243,61,247,104,250,160,253,201,0,7,4,132,7,235,10, +53,14,191,16,184,17,249,17,106,18,237,18,42,19,214,18,95,18,71,18,254,17,46,17,109,16,64,16,100,16,72,16, +231,15,90,15,122,14,6,13,202,10,46,8,142,5,225,2,97,0,196,253,1,251,195,248,130,246,83,244,92,243,229,242, +102,242,93,242,20,242,145,241,64,242,78,244,198,245,52,245,230,244,197,246,93,248,183,248,239,249,42,252,240,253,6,255, +214,0,198,3,207,5,187,6,32,8,53,9,55,9,47,9,72,9,240,8,93,8,42,8,5,8,142,7,169,7,52,8, +54,8,97,8,20,9,86,9,107,8,32,6,184,3,105,2,75,1,194,255,71,254,233,252,212,251,80,251,101,251,196,251, +189,251,204,251,16,253,137,254,178,254,147,254,100,255,22,0,28,0,125,0,23,1,141,0,170,254,9,253,223,252,34,253, +76,253,28,254,167,254,83,254,83,254,136,254,113,254,180,254,60,255,7,255,127,253,212,251,91,251,201,250,165,249,12,250, +217,251,0,253,117,253,52,254,59,255,223,255,81,0,57,1,185,1,221,0,166,255,20,255,163,254,2,254,214,253,46,254, +46,254,220,253,38,254,234,254,63,255,116,255,94,0,93,1,157,1,96,1,22,1,43,1,99,1,4,1,191,0,233,0, +137,0,9,0,223,255,127,255,65,255,19,255,68,254,65,253,181,252,204,252,229,252,85,252,251,251,66,252,105,252,113,252, +141,252,14,253,17,254,192,254,3,255,251,254,157,254,16,255,47,0,250,0,82,2,25,4,48,5,193,5,206,5,3,6, +240,6,48,7,226,6,218,6,24,6,246,4,58,4,95,3,178,2,214,1,100,0,167,255,34,255,230,253,74,253,22,253, +33,252,41,251,150,250,201,249,38,248,238,245,139,244,216,243,169,242,180,241,110,241,50,241,70,241,210,241,116,242,114,243, +231,244,16,246,65,246,34,246,215,246,60,248,243,249,25,252,80,254,107,0,160,2,214,4,44,7,183,9,35,12,63,14, +198,15,14,17,211,18,74,20,228,20,165,21,30,22,35,21,186,19,183,18,39,17,231,14,10,13,32,12,139,11,70,10, +105,8,194,6,104,5,34,4,170,2,150,0,15,254,72,251,92,248,26,246,169,244,58,243,227,241,59,241,61,241,116,241, +111,241,81,241,72,241,41,241,109,241,47,242,126,242,126,242,30,243,64,244,190,245,180,247,177,249,39,251,27,252,124,253, +217,255,70,2,79,4,72,6,168,7,118,8,128,9,112,10,168,10,82,10,11,10,29,10,4,10,180,9,168,9,168,9, +12,10,113,11,1,13,179,13,129,13,253,12,84,12,220,10,189,8,181,6,109,4,236,1,186,255,137,253,68,251,126,249, +180,248,137,248,4,248,76,247,195,246,227,245,45,245,55,245,21,245,120,244,244,243,176,243,114,243,178,242,151,241,27,241, +76,241,139,241,221,241,137,242,145,243,244,244,185,246,214,248,65,251,200,253,2,0,171,1,212,2,200,3,225,4,6,6, +195,6,239,6,43,7,26,8,94,9,105,10,5,11,72,11,8,12,95,13,252,13,166,13,29,13,156,12,8,12,227,10, +83,9,199,7,131,5,195,2,139,0,73,254,169,251,32,249,212,246,50,245,5,244,197,242,237,241,157,241,134,241,206,241, +93,242,225,242,22,243,22,243,68,243,87,243,43,243,32,243,16,243,36,243,2,244,134,245,100,247,130,249,155,251,209,253, +93,0,8,3,107,5,24,7,58,8,133,9,184,10,75,11,220,11,134,12,153,12,136,12,250,12,166,13,84,14,21,15, +29,16,93,17,115,18,147,19,153,20,124,20,109,19,118,18,85,17,93,15,165,12,127,9,70,6,153,3,133,1,116,255, +160,253,138,252,236,251,185,251,162,251,44,251,191,250,9,250,173,248,140,247,116,246,223,244,115,243,43,242,244,240,34,240, +41,239,50,238,7,238,100,238,7,239,12,240,53,241,139,242,34,244,155,245,28,247,32,249,50,251,225,252,107,254,204,255, +44,1,170,2,179,3,137,4,186,5,208,6,1,8,179,9,81,11,217,12,59,14,233,14,109,15,42,16,140,16,137,16, +53,16,52,15,209,13,133,12,64,11,252,9,172,8,63,7,228,5,95,4,159,2,59,1,213,255,27,254,241,252,49,252, +27,251,10,250,85,249,200,248,3,248,245,246,20,246,15,245,123,243,216,241,76,240,0,239,68,238,241,237,82,238,105,239, +159,240,64,242,83,244,31,246,175,247,138,249,174,251,135,253,198,254,196,255,221,0,11,2,253,2,255,3,151,5,225,6, +173,7,247,8,18,10,140,10,4,11,49,11,50,11,49,11,192,10,94,10,227,9,192,8,112,7,198,5,164,3,177,1, +238,255,94,254,27,253,1,252,9,251,221,249,131,248,104,247,139,246,245,245,139,245,61,245,47,245,28,245,84,245,55,246, +84,247,198,248,106,250,171,251,217,252,245,253,218,254,201,255,121,0,207,0,54,1,5,2,79,3,114,4,119,5,249,6, +120,8,132,9,78,10,1,11,153,11,138,11,21,11,39,11,19,11,31,10,210,8,92,7,181,5,23,4,156,2,36,1, +154,255,77,254,27,253,206,251,196,250,195,249,118,248,46,247,9,246,56,245,181,244,22,244,167,243,158,243,197,243,98,244, +141,245,24,247,208,248,98,250,210,251,19,253,33,254,73,255,118,0,125,1,110,2,101,3,149,4,180,5,119,6,84,7, +160,8,22,10,71,11,57,12,41,13,191,13,18,14,191,14,91,15,94,15,237,14,55,14,126,13,155,12,106,11,67,10, +204,8,213,6,60,5,238,3,46,2,34,0,21,254,34,252,111,250,211,248,80,247,37,246,234,244,135,243,217,242,227,242, +235,242,201,242,145,242,166,242,47,243,214,243,196,244,144,245,207,245,93,246,52,247,196,247,92,248,237,248,194,249,9,251, +44,252,172,253,157,255,56,1,231,2,164,4,81,6,76,8,178,9,126,10,77,11,139,11,182,11,39,12,15,12,240,11, +11,12,242,11,247,11,230,11,188,11,201,11,110,11,176,10,23,10,85,9,67,8,245,6,147,5,121,4,90,3,196,1, +20,0,164,254,54,253,170,251,69,250,25,249,235,247,162,246,142,245,234,244,41,244,26,243,95,242,203,241,9,241,102,240, +205,239,98,239,107,239,116,239,146,239,48,240,36,241,71,242,158,243,65,245,253,246,101,248,179,249,43,251,172,252,47,254, +157,255,40,1,219,2,63,4,169,5,124,7,95,9,54,11,205,12,228,13,167,14,98,15,74,16,212,16,185,16,199,16, +197,16,45,16,160,15,48,15,125,14,121,13,37,12,241,10,177,9,226,7,22,6,141,4,217,2,25,1,112,255,197,253, +20,252,124,250,54,249,64,248,107,247,137,246,184,245,86,245,36,245,238,244,250,244,11,245,34,245,114,245,145,245,192,245, +115,246,64,247,239,247,124,248,28,249,74,250,180,251,249,252,90,254,208,255,54,1,173,2,66,4,149,5,94,6,30,7, +42,8,47,9,15,10,144,10,189,10,23,11,73,11,5,11,172,10,22,10,68,9,120,8,131,7,171,6,2,6,248,4, +208,3,3,3,77,2,133,1,178,0,182,255,134,254,55,253,246,251,252,250,83,250,183,249,20,249,227,248,24,249,44,249, +99,249,217,249,47,250,161,250,35,251,92,251,117,251,78,251,14,251,78,251,165,251,252,251,180,252,39,253,112,253,58,254, +9,255,231,255,44,1,100,2,170,3,2,5,222,5,108,6,200,6,200,6,188,6,144,6,25,6,157,5,58,5,210,4, +46,4,134,3,72,3,246,2,55,2,195,1,172,1,85,1,199,0,77,0,199,255,12,255,66,254,141,253,208,252,29,252, +201,251,185,251,129,251,49,251,9,251,228,250,246,250,142,251,27,252,94,252,186,252,234,252,224,252,11,253,31,253,28,253, +94,253,133,253,137,253,196,253,12,254,129,254,76,255,6,0,160,0,72,1,5,2,225,2,173,3,88,4,38,5,5,6, +196,6,54,7,42,7,41,7,129,7,132,7,86,7,110,7,61,7,202,6,119,6,250,5,154,5,135,5,59,5,222,4, +124,4,186,3,0,3,98,2,122,1,118,0,111,255,99,254,81,253,234,251,130,250,141,249,187,248,42,248,16,248,235,247, +137,247,21,247,191,246,187,246,204,246,220,246,23,247,51,247,88,247,245,247,179,248,108,249,74,250,68,251,121,252,207,253, +29,255,163,0,21,2,26,3,24,4,58,5,74,6,68,7,22,8,171,8,21,9,119,9,195,9,189,9,124,9,63,9, +13,9,223,8,154,8,44,8,168,7,37,7,193,6,75,6,138,5,172,4,165,3,114,2,94,1,131,0,246,255,126,255, +178,254,191,253,202,252,248,251,102,251,162,250,229,249,114,249,181,248,4,248,180,247,84,247,99,247,9,248,218,248,242,249, +192,250,40,251,214,251,97,252,189,252,99,253,25,254,231,254,138,255,207,255,114,0,88,1,36,2,23,3,217,3,109,4, +35,5,200,5,141,6,59,7,126,7,10,8,199,8,29,9,55,9,253,8,122,8,0,8,91,7,145,6,157,5,108,4, +126,3,176,2,185,1,57,1,242,0,49,0,77,255,110,254,102,253,82,252,63,251,104,250,136,249,3,248,123,246,131,245, +178,244,22,244,231,243,19,244,141,244,231,244,72,245,70,246,102,247,107,248,195,249,37,251,47,252,254,252,206,253,203,254, +234,255,59,1,111,2,23,3,231,3,10,5,195,5,129,6,139,7,106,8,77,9,248,9,63,10,180,10,245,10,184,10, +174,10,186,10,97,10,168,9,192,8,255,7,89,7,105,6,97,5,132,4,119,3,54,2,31,1,233,255,118,254,77,253, +38,252,169,250,123,249,156,248,172,247,220,246,42,246,218,245,255,245,220,245,193,245,38,246,109,246,205,246,179,247,162,248, +125,249,33,250,148,250,124,251,155,252,156,253,231,254,40,0,14,1,36,2,122,3,209,4,16,6,21,7,26,8,39,9, +243,9,156,10,250,10,213,10,213,10,62,11,80,11,227,10,119,10,233,9,238,8,247,7,29,7,242,5,175,4,115,3, +239,1,121,0,61,255,240,253,207,252,226,251,242,250,58,250,181,249,79,249,14,249,150,248,214,247,63,247,4,247,199,246, +60,246,232,245,223,245,130,245,61,245,110,245,162,245,14,246,218,246,240,247,89,249,141,250,217,251,188,253,68,255,136,0, +80,2,228,3,1,5,251,5,174,6,71,7,198,7,40,8,178,8,249,8,253,8,34,9,26,9,8,9,25,9,249,8, +239,8,245,8,130,8,246,7,171,7,81,7,199,6,16,6,54,5,106,4,195,3,8,3,34,2,90,1,193,0,60,0, +202,255,26,255,55,254,160,253,26,253,112,252,193,251,179,250,117,249,154,248,226,247,49,247,204,246,155,246,118,246,39,246, +200,245,218,245,45,246,111,246,243,246,172,247,87,248,1,249,152,249,50,250,254,250,208,251,174,252,198,253,207,254,134,255, +25,0,186,0,142,1,146,2,126,3,82,4,52,5,4,6,224,6,229,7,188,8,107,9,43,10,231,10,139,11,209,11, +164,11,132,11,124,11,77,11,249,10,95,10,143,9,176,8,186,7,208,6,217,5,219,4,242,3,167,2,63,1,84,0, +60,255,214,253,177,252,142,251,93,250,74,249,53,248,50,247,64,246,131,245,18,245,156,244,67,244,17,244,234,243,60,244, +188,244,1,245,146,245,60,246,159,246,60,247,255,247,201,248,10,250,120,251,157,252,194,253,49,255,190,0,49,2,142,3, +236,4,86,6,152,7,115,8,32,9,241,9,172,10,255,10,40,11,95,11,72,11,214,10,117,10,251,9,79,9,192,8, +39,8,130,7,248,6,79,6,161,5,10,5,74,4,96,3,112,2,160,1,177,0,155,255,15,255,149,254,140,253,224,252, +134,252,231,251,153,251,130,251,85,251,61,251,231,250,177,250,216,250,149,250,73,250,148,250,217,250,235,250,14,251,37,251, +52,251,85,251,106,251,143,251,17,252,133,252,159,252,37,253,222,253,5,254,96,254,18,255,64,255,113,255,245,255,26,0, +65,0,216,0,56,1,113,1,244,1,83,2,152,2,43,3,152,3,220,3,65,4,138,4,248,4,138,5,186,5,218,5, +39,6,105,6,137,6,80,6,16,6,231,5,93,5,205,4,99,4,200,3,21,3,54,2,121,1,236,0,254,255,100,255, +46,255,102,254,173,253,52,253,122,252,3,252,160,251,15,251,165,250,50,250,216,249,110,249,199,248,137,248,94,248,8,248, +37,248,62,248,57,248,142,248,1,249,201,249,203,250,118,251,42,252,21,253,250,253,236,254,247,255,25,1,30,2,9,3, +13,4,219,4,145,5,112,6,12,7,147,7,62,8,160,8,201,8,210,8,144,8,56,8,240,7,128,7,209,6,60,6, +175,5,197,4,216,3,22,3,82,2,235,1,146,1,193,0,254,255,111,255,211,254,40,254,89,253,178,252,51,252,114,251, +171,250,253,249,97,249,55,249,39,249,205,248,201,248,36,249,76,249,155,249,88,250,3,251,185,251,146,252,252,252,95,253, +73,254,26,255,183,255,117,0,0,1,90,1,200,1,79,2,207,2,41,3,164,3,74,4,176,4,211,4,211,4,234,4, +18,5,216,4,157,4,184,4,162,4,87,4,2,4,195,3,218,3,191,3,116,3,145,3,160,3,121,3,138,3,158,3, +129,3,50,3,217,2,153,2,254,1,51,1,206,0,94,0,172,255,46,255,0,255,253,254,221,254,114,254,25,254,15,254, +43,254,84,254,97,254,26,254,199,253,151,253,69,253,234,252,145,252,27,252,20,252,74,252,5,252,198,251,204,251,208,251, +253,251,8,252,12,252,116,252,166,252,157,252,210,252,10,253,100,253,216,253,9,254,69,254,144,254,226,254,145,255,55,0, +143,0,253,0,143,1,37,2,150,2,250,2,177,3,83,4,113,4,178,4,23,5,245,4,190,4,208,4,176,4,136,4, +129,4,44,4,208,3,205,3,221,3,205,3,164,3,143,3,114,3,1,3,158,2,94,2,232,1,128,1,40,1,190,0, +113,0,241,255,96,255,46,255,249,254,175,254,131,254,84,254,45,254,15,254,11,254,30,254,23,254,42,254,25,254,189,253, +172,253,142,253,60,253,58,253,9,253,198,252,251,252,11,253,29,253,145,253,239,253,81,254,218,254,85,255,184,255,248,255, +44,0,34,0,223,255,237,255,248,255,235,255,30,0,239,255,152,255,180,255,158,255,125,255,180,255,181,255,163,255,205,255, +0,0,35,0,35,0,24,0,22,0,31,0,56,0,42,0,14,0,8,0,245,255,23,0,64,0,53,0,129,0,221,0, +252,0,102,1,210,1,23,2,113,2,140,2,152,2,187,2,159,2,120,2,50,2,175,1,52,1,157,0,6,0,171,255, +79,255,252,254,175,254,121,254,165,254,216,254,241,254,68,255,138,255,173,255,222,255,254,255,0,0,233,255,221,255,222,255, +204,255,210,255,213,255,202,255,19,0,110,0,193,0,76,1,185,1,35,2,170,2,236,2,48,3,109,3,95,3,121,3, +141,3,69,3,252,2,161,2,60,2,242,1,155,1,87,1,19,1,201,0,168,0,86,0,231,255,179,255,103,255,9,255, +194,254,103,254,234,253,86,253,236,252,166,252,87,252,103,252,154,252,150,252,200,252,2,253,71,253,225,253,87,254,211,254, +92,255,108,255,151,255,230,255,243,255,73,0,176,0,203,0,226,0,232,0,7,1,22,1,227,0,7,1,63,1,34,1, +31,1,35,1,47,1,99,1,163,1,17,2,75,2,36,2,31,2,30,2,251,1,173,1,82,1,77,1,2,1,104,0, +82,0,66,0,41,0,109,0,142,0,203,0,230,0,104,0,90,0,156,0,103,0,47,0,216,255,80,255,215,254,82,254, +47,254,24,254,145,253,60,253,243,252,163,252,183,252,163,252,135,252,215,252,32,253,109,253,193,253,211,253,241,253,19,254, +61,254,176,254,21,255,64,255,100,255,134,255,199,255,47,0,167,0,45,1,177,1,31,2,116,2,221,2,78,3,95,3, +83,3,149,3,175,3,128,3,105,3,37,3,164,2,100,2,59,2,223,1,142,1,41,1,182,0,138,0,69,0,237,255, +206,255,104,255,12,255,12,255,206,254,190,254,213,254,80,254,9,254,32,254,206,253,159,253,139,253,90,253,157,253,193,253, +148,253,220,253,39,254,44,254,131,254,3,255,80,255,164,255,15,0,60,0,66,0,110,0,142,0,153,0,166,0,130,0, +98,0,73,0,254,255,237,255,39,0,75,0,75,0,49,0,71,0,148,0,184,0,225,0,24,1,29,1,52,1,99,1, +97,1,50,1,2,1,227,0,150,0,40,0,235,255,176,255,109,255,69,255,18,255,242,254,213,254,167,254,187,254,233,254, +253,254,3,255,211,254,167,254,131,254,42,254,21,254,49,254,245,253,208,253,16,254,83,254,122,254,189,254,46,255,158,255, +52,0,19,1,194,1,33,2,124,2,220,2,50,3,76,3,67,3,113,3,118,3,26,3,223,2,213,2,191,2,163,2, +129,2,101,2,106,2,145,2,192,2,218,2,233,2,239,2,231,2,207,2,149,2,88,2,9,2,108,1,222,0,159,0, +50,0,136,255,24,255,215,254,132,254,78,254,88,254,121,254,146,254,134,254,98,254,115,254,125,254,72,254,44,254,254,253, +159,253,111,253,54,253,206,252,161,252,176,252,221,252,20,253,57,253,131,253,230,253,61,254,174,254,4,255,43,255,86,255, +92,255,61,255,53,255,64,255,99,255,156,255,200,255,220,255,10,0,116,0,238,0,123,1,9,2,49,2,77,2,172,2, +168,2,90,2,60,2,11,2,202,1,104,1,213,0,126,0,34,0,167,255,131,255,75,255,229,254,200,254,169,254,160,254, +192,254,135,254,117,254,202,254,202,254,161,254,166,254,160,254,149,254,122,254,74,254,47,254,29,254,13,254,16,254,48,254, +106,254,139,254,202,254,96,255,212,255,8,0,114,0,3,1,88,1,126,1,188,1,5,2,35,2,12,2,195,1,142,1, +147,1,123,1,90,1,103,1,102,1,97,1,97,1,64,1,35,1,32,1,72,1,117,1,57,1,0,1,10,1,192,0, +81,0,250,255,124,255,38,255,238,254,151,254,114,254,67,254,253,253,21,254,23,254,202,253,215,253,19,254,253,253,198,253, +158,253,114,253,62,253,5,253,219,252,216,252,218,252,182,252,189,252,32,253,117,253,159,253,249,253,110,254,222,254,106,255, +221,255,57,0,247,0,194,1,25,2,97,2,184,2,221,2,244,2,38,3,96,3,74,3,238,2,225,2,245,2,246,2, +65,3,96,3,83,3,142,3,106,3,27,3,60,3,0,3,142,2,127,2,72,2,234,1,139,1,4,1,183,0,151,0, +112,0,72,0,25,0,43,0,34,0,164,255,106,255,94,255,29,255,6,255,224,254,151,254,83,254,221,253,156,253,113,253, +254,252,236,252,235,252,151,252,174,252,204,252,211,252,112,253,217,253,251,253,106,254,97,254,66,254,187,254,189,254,117,254, +180,254,192,254,152,254,206,254,11,255,75,255,176,255,15,0,134,0,8,1,115,1,238,1,97,2,178,2,8,3,94,3, +147,3,176,3,203,3,217,3,214,3,239,3,235,3,144,3,76,3,87,3,66,3,235,2,182,2,207,2,195,2,121,2, +86,2,43,2,209,1,143,1,59,1,215,0,158,0,78,0,223,255,95,255,188,254,69,254,238,253,96,253,204,252,122,252, +80,252,8,252,196,251,230,251,40,252,50,252,52,252,72,252,118,252,178,252,199,252,186,252,187,252,241,252,52,253,66,253, +95,253,138,253,135,253,179,253,5,254,48,254,140,254,26,255,149,255,16,0,154,0,46,1,187,1,34,2,98,2,132,2, +155,2,150,2,113,2,87,2,29,2,230,1,7,2,36,2,48,2,115,2,161,2,173,2,195,2,210,2,210,2,180,2, +113,2,11,2,135,1,20,1,163,0,48,0,211,255,112,255,44,255,235,254,153,254,163,254,158,254,108,254,176,254,213,254, +210,254,71,255,117,255,112,255,193,255,200,255,168,255,154,255,79,255,19,255,212,254,155,254,192,254,232,254,2,255,52,255, +85,255,138,255,210,255,50,0,149,0,159,0,176,0,217,0,174,0,132,0,103,0,71,0,109,0,124,0,122,0,159,0, +121,0,89,0,130,0,116,0,89,0,122,0,149,0,162,0,192,0,214,0,202,0,174,0,117,0,58,0,65,0,42,0, +210,255,157,255,91,255,66,255,105,255,36,255,237,254,8,255,244,254,50,255,107,255,29,255,50,255,102,255,70,255,108,255, +133,255,135,255,177,255,160,255,185,255,12,0,25,0,52,0,111,0,145,0,127,0,88,0,179,0,10,1,210,0,242,0, +60,1,38,1,40,1,17,1,13,1,97,1,71,1,4,1,41,1,55,1,55,1,76,1,87,1,106,1,95,1,81,1, +77,1,24,1,9,1,254,0,174,0,130,0,64,0,226,255,215,255,131,255,2,255,10,255,1,255,197,254,185,254,135,254, +104,254,138,254,129,254,138,254,183,254,157,254,102,254,77,254,80,254,85,254,67,254,80,254,99,254,82,254,108,254,118,254, +89,254,155,254,233,254,250,254,61,255,121,255,162,255,23,0,136,0,201,0,21,1,105,1,173,1,166,1,125,1,174,1, +197,1,111,1,110,1,171,1,126,1,95,1,158,1,189,1,191,1,223,1,238,1,225,1,208,1,184,1,145,1,77,1, +1,1,196,0,92,0,208,255,105,255,28,255,190,254,119,254,101,254,65,254,255,253,235,253,238,253,224,253,234,253,231,253, +211,253,214,253,194,253,182,253,183,253,113,253,80,253,151,253,178,253,167,253,212,253,29,254,88,254,136,254,248,254,146,255, +229,255,56,0,159,0,173,0,186,0,248,0,4,1,248,0,10,1,49,1,59,1,242,0,216,0,32,1,31,1,17,1, +89,1,108,1,120,1,226,1,38,2,74,2,163,2,208,2,179,2,115,2,41,2,241,1,142,1,20,1,191,0,59,0, +183,255,152,255,141,255,125,255,88,255,27,255,62,255,78,255,233,254,205,254,206,254,138,254,96,254,14,254,161,253,120,253, +70,253,53,253,62,253,243,252,223,252,30,253,66,253,129,253,187,253,245,253,128,254,219,254,20,255,140,255,170,255,136,255, +171,255,186,255,198,255,5,0,13,0,24,0,106,0,162,0,232,0,110,1,196,1,6,2,115,2,188,2,241,2,37,3, +15,3,245,2,252,2,209,2,184,2,190,2,103,2,6,2,242,1,200,1,143,1,121,1,73,1,18,1,243,0,198,0, +164,0,157,0,136,0,82,0,5,0,205,255,177,255,126,255,60,255,229,254,132,254,116,254,115,254,35,254,242,253,230,253, +179,253,157,253,172,253,183,253,180,253,138,253,143,253,220,253,240,253,238,253,28,254,26,254,20,254,87,254,110,254,115,254, +191,254,209,254,193,254,24,255,83,255,111,255,237,255,54,0,71,0,192,0,35,1,67,1,115,1,143,1,184,1,247,1, +29,2,69,2,79,2,106,2,182,2,182,2,175,2,207,2,138,2,92,2,155,2,130,2,37,2,39,2,74,2,12,2, +187,1,176,1,138,1,80,1,35,1,164,0,72,0,52,0,191,255,124,255,171,255,147,255,111,255,86,255,34,255,43,255, +39,255,235,254,191,254,124,254,59,254,26,254,228,253,171,253,130,253,134,253,157,253,113,253,110,253,193,253,228,253,243,253, +38,254,70,254,65,254,90,254,210,254,35,255,255,254,23,255,104,255,134,255,151,255,164,255,226,255,53,0,43,0,70,0, +164,0,187,0,223,0,13,1,22,1,101,1,145,1,104,1,115,1,104,1,39,1,42,1,46,1,2,1,234,0,214,0, +159,0,112,0,128,0,142,0,91,0,77,0,83,0,32,0,53,0,101,0,24,0,235,255,255,255,194,255,158,255,180,255, +140,255,98,255,68,255,22,255,29,255,40,255,20,255,44,255,57,255,66,255,120,255,110,255,79,255,141,255,157,255,110,255, +133,255,143,255,109,255,127,255,134,255,104,255,123,255,170,255,165,255,124,255,135,255,204,255,239,255,4,0,54,0,63,0, +56,0,85,0,114,0,145,0,162,0,156,0,168,0,140,0,102,0,134,0,130,0,87,0,108,0,139,0,153,0,165,0, +154,0,140,0,125,0,120,0,115,0,65,0,38,0,22,0,234,255,238,255,214,255,133,255,107,255,89,255,72,255,56,255, +236,254,237,254,25,255,206,254,155,254,170,254,159,254,195,254,4,255,26,255,27,255,44,255,65,255,31,255,32,255,95,255, +87,255,118,255,191,255,168,255,223,255,68,0,59,0,107,0,169,0,165,0,210,0,231,0,246,0,32,1,13,1,30,1, +37,1,227,0,228,0,195,0,106,0,107,0,83,0,24,0,3,0,230,255,246,255,252,255,221,255,227,255,194,255,184,255, +188,255,71,255,39,255,90,255,241,254,158,254,157,254,99,254,57,254,23,254,222,253,210,253,223,253,252,253,7,254,21,254, +96,254,119,254,105,254,184,254,20,255,66,255,102,255,177,255,43,0,97,0,134,0,231,0,13,1,53,1,117,1,101,1, +158,1,7,2,254,1,31,2,89,2,34,2,246,1,2,2,8,2,235,1,189,1,185,1,152,1,79,1,60,1,13,1, +217,0,229,0,168,0,96,0,93,0,9,0,161,255,144,255,111,255,54,255,254,254,201,254,154,254,70,254,18,254,13,254, +189,253,117,253,128,253,105,253,81,253,102,253,73,253,45,253,123,253,214,253,219,253,202,253,249,253,47,254,37,254,41,254, +127,254,197,254,196,254,232,254,66,255,116,255,151,255,231,255,26,0,50,0,148,0,249,0,6,1,50,1,113,1,80,1, +100,1,184,1,127,1,58,1,109,1,122,1,123,1,144,1,69,1,33,1,109,1,107,1,44,1,22,1,220,0,163,0, +154,0,93,0,46,0,59,0,218,255,76,255,64,255,58,255,3,255,218,254,148,254,95,254,89,254,68,254,34,254,226,253, +167,253,173,253,177,253,175,253,165,253,149,253,207,253,203,253,125,253,187,253,232,253,191,253,13,254,95,254,131,254,222,254, +28,255,78,255,143,255,203,255,54,0,110,0,124,0,208,0,254,0,11,1,81,1,132,1,154,1,183,1,224,1,229,1, +160,1,157,1,201,1,154,1,128,1,145,1,136,1,146,1,112,1,64,1,74,1,31,1,237,0,238,0,174,0,61,0, +2,0,255,255,190,255,71,255,51,255,27,255,197,254,178,254,115,254,36,254,62,254,19,254,220,253,230,253,155,253,131,253, +169,253,118,253,121,253,134,253,71,253,91,253,114,253,100,253,170,253,201,253,193,253,33,254,106,254,120,254,223,254,68,255, +83,255,129,255,177,255,201,255,34,0,53,0,236,255,38,0,157,0,208,0,239,0,245,0,24,1,90,1,98,1,100,1, +84,1,69,1,125,1,104,1,54,1,106,1,87,1,35,1,53,1,6,1,209,0,204,0,146,0,93,0,90,0,84,0, +78,0,58,0,10,0,233,255,230,255,187,255,102,255,70,255,59,255,31,255,250,254,156,254,111,254,122,254,60,254,61,254, +101,254,44,254,86,254,133,254,57,254,124,254,202,254,126,254,147,254,199,254,175,254,209,254,244,254,245,254,19,255,48,255, +80,255,82,255,69,255,120,255,156,255,165,255,236,255,13,0,230,255,251,255,51,0,40,0,23,0,59,0,79,0,54,0, +34,0,31,0,23,0,24,0,40,0,23,0,1,0,16,0,239,255,171,255,180,255,182,255,101,255,30,255,2,255,239,254, +214,254,185,254,172,254,180,254,203,254,177,254,117,254,140,254,173,254,187,254,48,255,103,255,251,254,221,254,84,255,224,255, +3,0,177,255,148,255,157,255,140,255,190,255,223,255,229,255,21,0,228,255,161,255,217,255,241,255,226,255,231,255,228,255, +22,0,42,0,233,255,209,255,192,255,163,255,193,255,212,255,228,255,255,255,190,255,137,255,206,255,240,255,166,255,98,255, +97,255,147,255,160,255,104,255,74,255,72,255,72,255,118,255,120,255,67,255,117,255,162,255,84,255,87,255,214,255,6,0, +225,255,220,255,231,255,240,255,30,0,30,0,230,255,235,255,228,255,199,255,249,255,248,255,196,255,235,255,34,0,70,0, +56,0,8,0,95,0,162,0,98,0,92,0,90,0,65,0,66,0,12,0,37,0,93,0,27,0,18,0,14,0,219,255, +6,0,239,255,197,255,244,255,170,255,112,255,159,255,105,255,73,255,101,255,67,255,65,255,85,255,82,255,88,255,78,255, +52,255,247,254,234,254,79,255,91,255,251,254,218,254,215,254,218,254,235,254,216,254,179,254,183,254,216,254,203,254,190,254, +239,254,11,255,28,255,34,255,3,255,87,255,161,255,106,255,171,255,246,255,175,255,209,255,63,0,107,0,123,0,120,0, +174,0,225,0,173,0,149,0,174,0,187,0,190,0,192,0,247,0,243,0,173,0,207,0,206,0,152,0,199,0,172,0, +73,0,46,0,225,255,153,255,176,255,171,255,136,255,107,255,45,255,226,254,182,254,161,254,113,254,68,254,51,254,5,254, +226,253,253,253,1,254,198,253,186,253,15,254,34,254,238,253,33,254,84,254,78,254,143,254,203,254,252,254,45,255,36,255, +109,255,208,255,221,255,36,0,98,0,116,0,154,0,122,0,158,0,252,0,229,0,32,1,93,1,21,1,61,1,68,1, +235,0,70,1,156,1,95,1,51,1,35,1,28,1,4,1,217,0,202,0,160,0,110,0,72,0,22,0,18,0,227,255, +134,255,128,255,103,255,19,255,246,254,245,254,216,254,170,254,170,254,190,254,140,254,105,254,110,254,99,254,102,254,76,254, +69,254,120,254,98,254,88,254,124,254,101,254,118,254,128,254,97,254,149,254,186,254,220,254,32,255,253,254,4,255,83,255, +66,255,79,255,135,255,137,255,150,255,152,255,163,255,190,255,183,255,235,255,32,0,8,0,26,0,72,0,101,0,130,0, +105,0,64,0,92,0,151,0,160,0,134,0,161,0,163,0,114,0,149,0,168,0,119,0,173,0,240,0,209,0,176,0, +164,0,166,0,172,0,191,0,241,0,223,0,139,0,128,0,148,0,105,0,58,0,57,0,7,0,187,255,216,255,240,255, +207,255,194,255,93,255,28,255,117,255,70,255,219,254,9,255,2,255,213,254,202,254,144,254,170,254,201,254,146,254,190,254, +211,254,154,254,189,254,191,254,177,254,0,255,9,255,12,255,65,255,24,255,27,255,107,255,99,255,109,255,173,255,177,255, +174,255,200,255,237,255,250,255,196,255,186,255,5,0,35,0,17,0,20,0,51,0,74,0,34,0,6,0,50,0,65,0, +44,0,26,0,246,255,245,255,42,0,42,0,229,255,202,255,233,255,225,255,194,255,203,255,212,255,214,255,192,255,142,255, +144,255,117,255,47,255,63,255,33,255,219,254,254,254,231,254,186,254,247,254,237,254,181,254,186,254,218,254,28,255,31,255, +0,255,26,255,20,255,35,255,50,255,11,255,95,255,138,255,41,255,90,255,146,255,106,255,150,255,152,255,136,255,207,255, +245,255,30,0,53,0,48,0,123,0,134,0,115,0,192,0,179,0,153,0,218,0,207,0,188,0,179,0,125,0,163,0, +199,0,141,0,130,0,141,0,145,0,153,0,67,0,247,255,28,0,14,0,184,255,155,255,150,255,111,255,78,255,68,255, +44,255,240,254,185,254,168,254,174,254,200,254,206,254,182,254,195,254,186,254,148,254,210,254,7,255,192,254,155,254,168,254, +174,254,207,254,219,254,228,254,241,254,217,254,244,254,41,255,72,255,147,255,171,255,146,255,200,255,10,0,60,0,87,0, +60,0,92,0,142,0,150,0,229,0,24,1,236,0,246,0,31,1,56,1,103,1,111,1,89,1,104,1,109,1,84,1, +84,1,70,1,26,1,36,1,45,1,250,0,255,0,9,1,195,0,142,0,110,0,97,0,102,0,23,0,219,255,239,255, +169,255,77,255,68,255,56,255,37,255,13,255,224,254,222,254,230,254,193,254,180,254,201,254,184,254,174,254,213,254,223,254, +220,254,11,255,56,255,73,255,68,255,74,255,132,255,141,255,126,255,178,255,188,255,217,255,69,0,77,0,57,0,112,0, +122,0,129,0,166,0,168,0,168,0,174,0,172,0,158,0,159,0,201,0,199,0,182,0,202,0,182,0,205,0,255,0, +209,0,187,0,205,0,195,0,192,0,141,0,105,0,126,0,118,0,146,0,118,0,242,255,255,255,50,0,215,255,177,255, +212,255,201,255,187,255,196,255,185,255,169,255,205,255,214,255,167,255,174,255,151,255,132,255,218,255,202,255,144,255,193,255, +182,255,190,255,244,255,214,255,9,0,74,0,23,0,43,0,85,0,76,0,71,0,52,0,96,0,119,0,54,0,63,0, +55,0,19,0,79,0,73,0,35,0,75,0,60,0,39,0,49,0,20,0,3,0,249,255,250,255,2,0,219,255,212,255, +218,255,182,255,207,255,249,255,241,255,232,255,222,255,241,255,32,0,51,0,53,0,21,0,245,255,29,0,67,0,42,0, +28,0,65,0,72,0,53,0,109,0,142,0,89,0,90,0,119,0,132,0,148,0,103,0,114,0,193,0,145,0,120,0, +181,0,149,0,137,0,185,0,176,0,180,0,174,0,129,0,118,0,100,0,86,0,93,0,84,0,108,0,117,0,71,0, +76,0,76,0,24,0,15,0,28,0,7,0,227,255,210,255,233,255,229,255,203,255,216,255,179,255,125,255,156,255,150,255, +94,255,106,255,131,255,127,255,116,255,98,255,120,255,148,255,137,255,157,255,189,255,185,255,202,255,252,255,30,0,31,0, +44,0,88,0,79,0,35,0,62,0,100,0,103,0,129,0,153,0,164,0,211,0,0,1,9,1,37,1,70,1,29,1, +226,0,241,0,9,1,4,1,248,0,218,0,207,0,183,0,106,0,81,0,86,0,44,0,14,0,252,255,15,0,50,0, +231,255,163,255,200,255,205,255,203,255,209,255,161,255,157,255,164,255,113,255,113,255,127,255,93,255,83,255,78,255,87,255, +123,255,116,255,130,255,197,255,213,255,222,255,9,0,13,0,31,0,65,0,52,0,87,0,141,0,92,0,68,0,94,0, +76,0,97,0,127,0,103,0,128,0,151,0,112,0,97,0,86,0,96,0,135,0,112,0,90,0,112,0,90,0,64,0, +77,0,80,0,55,0,41,0,62,0,58,0,26,0,26,0,242,255,187,255,216,255,215,255,170,255,161,255,100,255,60,255, +124,255,124,255,62,255,75,255,104,255,74,255,52,255,66,255,59,255,47,255,77,255,75,255,50,255,93,255,144,255,144,255, +125,255,117,255,140,255,139,255,108,255,140,255,172,255,144,255,154,255,204,255,221,255,214,255,223,255,9,0,39,0,42,0, +32,0,4,0,19,0,51,0,17,0,21,0,72,0,66,0,69,0,65,0,37,0,77,0,70,0,12,0,55,0,63,0, +240,255,219,255,217,255,221,255,241,255,219,255,221,255,235,255,171,255,132,255,147,255,128,255,74,255,41,255,76,255,98,255, +30,255,247,254,9,255,252,254,250,254,13,255,4,255,6,255,25,255,37,255,41,255,29,255,39,255,75,255,85,255,91,255, +104,255,100,255,115,255,135,255,144,255,177,255,185,255,158,255,155,255,136,255,150,255,218,255,200,255,168,255,210,255,197,255, +199,255,9,0,0,0,219,255,210,255,207,255,233,255,207,255,183,255,226,255,205,255,219,255,18,0,165,255,92,255,161,255, +157,255,154,255,192,255,184,255,181,255,152,255,141,255,176,255,118,255,102,255,201,255,185,255,123,255,136,255,125,255,139,255, +182,255,173,255,179,255,209,255,183,255,147,255,174,255,192,255,135,255,113,255,142,255,122,255,120,255,144,255,104,255,66,255, +45,255,34,255,109,255,151,255,122,255,141,255,117,255,81,255,157,255,179,255,145,255,183,255,187,255,181,255,214,255,191,255, +198,255,232,255,184,255,185,255,225,255,181,255,175,255,232,255,243,255,236,255,252,255,5,0,233,255,221,255,16,0,29,0, +254,255,15,0,21,0,242,255,234,255,253,255,250,255,201,255,194,255,254,255,247,255,188,255,164,255,146,255,148,255,171,255, +170,255,150,255,112,255,102,255,119,255,113,255,110,255,77,255,48,255,113,255,120,255,60,255,63,255,29,255,8,255,51,255, +254,254,228,254,49,255,47,255,15,255,16,255,13,255,57,255,84,255,65,255,64,255,50,255,66,255,115,255,86,255,48,255, +65,255,55,255,51,255,81,255,87,255,63,255,45,255,53,255,76,255,88,255,82,255,92,255,162,255,237,255,237,255,235,255, +2,0,251,255,252,255,14,0,16,0,33,0,31,0,16,0,33,0,2,0,234,255,44,0,40,0,241,255,1,0,235,255, +195,255,212,255,190,255,166,255,187,255,165,255,147,255,168,255,172,255,170,255,166,255,164,255,168,255,133,255,91,255,110,255, +129,255,85,255,52,255,49,255,13,255,20,255,75,255,56,255,41,255,73,255,56,255,64,255,91,255,59,255,66,255,92,255, +98,255,135,255,147,255,175,255,252,255,15,0,22,0,20,0,240,255,33,0,70,0,26,0,52,0,77,0,41,0,59,0, +85,0,84,0,108,0,120,0,126,0,159,0,149,0,94,0,89,0,112,0,82,0,47,0,38,0,254,255,221,255,218,255, +196,255,186,255,202,255,174,255,125,255,126,255,112,255,61,255,71,255,101,255,96,255,104,255,68,255,37,255,111,255,134,255, +101,255,117,255,106,255,129,255,171,255,144,255,165,255,174,255,143,255,219,255,16,0,10,0,44,0,23,0,28,0,107,0, +139,0,166,0,163,0,127,0,161,0,188,0,180,0,170,0,135,0,119,0,114,0,128,0,148,0,95,0,87,0,113,0, +66,0,67,0,82,0,49,0,51,0,27,0,252,255,246,255,225,255,252,255,236,255,184,255,224,255,215,255,188,255,187,255, +98,255,90,255,136,255,111,255,147,255,139,255,108,255,182,255,163,255,140,255,203,255,167,255,165,255,209,255,168,255,171,255, +199,255,189,255,188,255,205,255,246,255,215,255,204,255,65,0,77,0,45,0,85,0,42,0,73,0,153,0,80,0,78,0, +148,0,121,0,108,0,117,0,154,0,202,0,162,0,147,0,171,0,148,0,141,0,140,0,141,0,168,0,148,0,110,0, +109,0,106,0,89,0,74,0,80,0,67,0,49,0,63,0,22,0,240,255,26,0,14,0,233,255,245,255,227,255,220,255, +242,255,231,255,187,255,154,255,177,255,166,255,122,255,173,255,182,255,115,255,167,255,214,255,160,255,170,255,228,255,242,255, +253,255,25,0,9,0,219,255,249,255,41,0,35,0,57,0,68,0,64,0,114,0,119,0,94,0,138,0,166,0,168,0, +184,0,179,0,159,0,125,0,99,0,127,0,159,0,154,0,136,0,146,0,154,0,108,0,61,0,37,0,20,0,32,0, +34,0,9,0,235,255,214,255,226,255,219,255,203,255,231,255,219,255,219,255,7,0,223,255,211,255,250,255,224,255,253,255, +29,0,245,255,17,0,35,0,26,0,65,0,56,0,71,0,106,0,65,0,99,0,155,0,145,0,197,0,206,0,144,0, +158,0,188,0,226,0,4,1,233,0,241,0,241,0,185,0,191,0,212,0,200,0,193,0,155,0,144,0,171,0,127,0, +75,0,94,0,97,0,53,0,27,0,10,0,221,255,215,255,253,255,232,255,192,255,209,255,213,255,199,255,205,255,185,255, +183,255,216,255,191,255,172,255,233,255,2,0,217,255,195,255,210,255,223,255,193,255,186,255,246,255,245,255,225,255,40,0, +23,0,188,255,241,255,67,0,69,0,77,0,50,0,20,0,82,0,116,0,78,0,94,0,145,0,118,0,64,0,72,0, +77,0,59,0,85,0,96,0,60,0,69,0,104,0,100,0,108,0,141,0,125,0,93,0,131,0,161,0,138,0,167,0, +176,0,98,0,117,0,197,0,166,0,147,0,155,0,85,0,85,0,134,0,73,0,48,0,78,0,31,0,14,0,7,0, +214,255,15,0,60,0,236,255,229,255,4,0,230,255,236,255,245,255,219,255,211,255,205,255,196,255,193,255,218,255,243,255, +205,255,192,255,220,255,219,255,7,0,36,0,240,255,3,0,52,0,21,0,7,0,55,0,101,0,86,0,69,0,119,0, +131,0,105,0,114,0,95,0,104,0,141,0,106,0,127,0,171,0,98,0,81,0,140,0,122,0,114,0,127,0,66,0, +35,0,75,0,62,0,53,0,106,0,95,0,94,0,160,0,113,0,56,0,66,0,5,0,20,0,83,0,11,0,245,255, +4,0,215,255,3,0,7,0,191,255,219,255,212,255,167,255,213,255,248,255,242,255,235,255,251,255,16,0,238,255,251,255, +29,0,229,255,224,255,242,255,225,255,24,0,7,0,193,255,229,255,226,255,225,255,46,0,33,0,11,0,35,0,10,0, +23,0,64,0,53,0,35,0,12,0,7,0,33,0,32,0,16,0,248,255,255,255,65,0,88,0,56,0,48,0,48,0, +48,0,52,0,47,0,53,0,74,0,79,0,59,0,43,0,47,0,33,0,4,0,250,255,255,255,12,0,11,0,229,255, +214,255,235,255,228,255,215,255,241,255,3,0,3,0,6,0,246,255,230,255,242,255,246,255,226,255,199,255,197,255,233,255, +236,255,201,255,215,255,15,0,26,0,1,0,25,0,56,0,6,0,254,255,65,0,54,0,54,0,102,0,59,0,43,0, +100,0,98,0,106,0,118,0,102,0,134,0,133,0,102,0,120,0,83,0,28,0,50,0,86,0,105,0,81,0,56,0, +93,0,66,0,15,0,85,0,111,0,33,0,37,0,81,0,28,0,255,255,54,0,32,0,242,255,27,0,19,0,244,255, +20,0,242,255,190,255,206,255,197,255,198,255,201,255,144,255,143,255,180,255,169,255,181,255,207,255,201,255,216,255,250,255, +4,0,248,255,233,255,231,255,15,0,49,0,5,0,223,255,239,255,241,255,9,0,29,0,244,255,22,0,87,0,66,0, +68,0,92,0,93,0,115,0,115,0,125,0,161,0,151,0,157,0,172,0,142,0,141,0,142,0,147,0,160,0,81,0, +37,0,110,0,132,0,113,0,113,0,91,0,62,0,28,0,46,0,92,0,34,0,1,0,49,0,14,0,236,255,247,255, +202,255,183,255,199,255,200,255,218,255,190,255,169,255,218,255,193,255,160,255,203,255,174,255,157,255,235,255,243,255,214,255, +243,255,17,0,46,0,49,0,20,0,45,0,84,0,63,0,35,0,50,0,102,0,139,0,120,0,112,0,155,0,167,0, +131,0,146,0,193,0,182,0,173,0,170,0,110,0,112,0,175,0,147,0,110,0,131,0,100,0,55,0,77,0,107,0, +90,0,48,0,30,0,33,0,31,0,41,0,67,0,69,0,13,0,213,255,248,255,38,0,6,0,230,255,217,255,207,255, +226,255,228,255,227,255,1,0,7,0,0,0,247,255,241,255,29,0,62,0,52,0,68,0,82,0,82,0,109,0,99,0, +57,0,65,0,91,0,108,0,121,0,81,0,50,0,101,0,122,0,91,0,121,0,128,0,69,0,87,0,135,0,102,0, +83,0,126,0,131,0,94,0,103,0,114,0,67,0,59,0,98,0,88,0,77,0,97,0,95,0,69,0,42,0,64,0, +111,0,84,0,28,0,24,0,53,0,62,0,35,0,30,0,54,0,50,0,42,0,39,0,43,0,48,0,26,0,45,0, +66,0,22,0,25,0,22,0,240,255,34,0,55,0,37,0,72,0,41,0,22,0,66,0,48,0,39,0,31,0,23,0, +88,0,74,0,52,0,90,0,38,0,65,0,130,0,67,0,102,0,127,0,50,0,109,0,128,0,67,0,103,0,70,0, +32,0,97,0,90,0,74,0,98,0,79,0,55,0,36,0,53,0,94,0,80,0,66,0,70,0,68,0,81,0,75,0, +60,0,38,0,20,0,46,0,47,0,37,0,41,0,24,0,71,0,90,0,6,0,19,0,47,0,250,255,26,0,49,0, +9,0,34,0,40,0,4,0,30,0,72,0,46,0,254,255,10,0,30,0,37,0,77,0,63,0,38,0,71,0,47,0, +37,0,73,0,49,0,56,0,50,0,249,255,37,0,66,0,35,0,77,0,69,0,20,0,42,0,47,0,52,0,79,0, +74,0,61,0,40,0,36,0,47,0,27,0,49,0,115,0,124,0,102,0,99,0,101,0,67,0,21,0,32,0,57,0, +60,0,72,0,71,0,63,0,60,0,59,0,80,0,89,0,79,0,83,0,90,0,129,0,166,0,128,0,102,0,121,0, +114,0,105,0,106,0,93,0,96,0,110,0,92,0,42,0,9,0,42,0,106,0,95,0,34,0,35,0,52,0,40,0, +58,0,63,0,47,0,50,0,26,0,35,0,66,0,21,0,13,0,31,0,251,255,9,0,22,0,249,255,1,0,0,0, +7,0,3,0,201,255,231,255,37,0,20,0,23,0,33,0,55,0,66,0,16,0,70,0,139,0,75,0,74,0,105,0, +94,0,126,0,122,0,143,0,204,0,153,0,119,0,143,0,142,0,174,0,175,0,164,0,188,0,144,0,132,0,174,0, +173,0,207,0,201,0,129,0,146,0,168,0,142,0,126,0,74,0,35,0,39,0,17,0,14,0,47,0,13,0,196,255, +215,255,251,255,200,255,206,255,237,255,178,255,196,255,231,255,154,255,148,255,190,255,184,255,209,255,208,255,183,255,199,255, +202,255,209,255,219,255,220,255,3,0,15,0,241,255,252,255,38,0,62,0,58,0,66,0,78,0,87,0,136,0,142,0, +101,0,125,0,116,0,75,0,112,0,131,0,148,0,160,0,89,0,77,0,104,0,78,0,116,0,126,0,65,0,73,0, +62,0,32,0,70,0,63,0,40,0,48,0,242,255,200,255,8,0,30,0,241,255,228,255,212,255,193,255,243,255,8,0, +209,255,185,255,185,255,191,255,214,255,218,255,242,255,254,255,208,255,206,255,223,255,198,255,205,255,223,255,246,255,23,0, +2,0,244,255,6,0,249,255,0,0,20,0,27,0,40,0,30,0,32,0,71,0,89,0,84,0,85,0,98,0,108,0, +104,0,110,0,124,0,148,0,155,0,108,0,94,0,102,0,78,0,127,0,161,0,101,0,100,0,74,0,254,255,40,0, +62,0,249,255,235,255,240,255,253,255,27,0,251,255,212,255,225,255,240,255,229,255,204,255,188,255,176,255,169,255,180,255, +171,255,159,255,171,255,174,255,178,255,191,255,201,255,219,255,213,255,194,255,225,255,253,255,212,255,212,255,44,0,52,0, +255,255,46,0,50,0,0,0,83,0,108,0,28,0,73,0,113,0,85,0,114,0,116,0,115,0,129,0,69,0,76,0, +144,0,125,0,116,0,127,0,116,0,126,0,102,0,90,0,125,0,75,0,17,0,45,0,34,0,0,0,30,0,51,0, +23,0,243,255,252,255,31,0,255,255,203,255,238,255,8,0,215,255,202,255,231,255,224,255,199,255,202,255,232,255,227,255, +195,255,210,255,212,255,191,255,225,255,232,255,226,255,23,0,12,0,230,255,12,0,16,0,13,0,55,0,48,0,54,0, +84,0,37,0,15,0,82,0,102,0,69,0,80,0,99,0,102,0,133,0,125,0,66,0,80,0,123,0,114,0,95,0, +79,0,103,0,120,0,67,0,67,0,69,0,5,0,37,0,57,0,249,255,12,0,10,0,244,255,51,0,32,0,12,0, +68,0,2,0,200,255,253,255,237,255,203,255,209,255,214,255,229,255,203,255,201,255,10,0,1,0,219,255,232,255,227,255, +236,255,13,0,233,255,195,255,251,255,20,0,215,255,231,255,28,0,232,255,220,255,12,0,240,255,251,255,54,0,25,0, +4,0,37,0,48,0,51,0,50,0,47,0,63,0,72,0,58,0,54,0,76,0,87,0,88,0,104,0,66,0,18,0, +54,0,81,0,77,0,75,0,50,0,91,0,109,0,19,0,51,0,121,0,45,0,49,0,111,0,51,0,18,0,48,0, +42,0,38,0,24,0,243,255,242,255,6,0,254,255,254,255,19,0,236,255,210,255,11,0,251,255,198,255,243,255,248,255, +207,255,228,255,255,255,16,0,10,0,241,255,12,0,10,0,225,255,235,255,240,255,231,255,238,255,254,255,14,0,240,255, +248,255,50,0,3,0,235,255,48,0,22,0,1,0,64,0,68,0,49,0,67,0,76,0,56,0,49,0,104,0,114,0, +62,0,75,0,90,0,85,0,112,0,90,0,67,0,79,0,63,0,79,0,85,0,71,0,104,0,71,0,29,0,77,0, +65,0,62,0,119,0,80,0,33,0,35,0,3,0,249,255,8,0,8,0,9,0,254,255,251,255,241,255,222,255,245,255, +233,255,199,255,250,255,7,0,200,255,211,255,230,255,180,255,179,255,205,255,182,255,186,255,205,255,197,255,214,255,206,255, +188,255,229,255,218,255,199,255,13,0,18,0,251,255,38,0,21,0,4,0,40,0,47,0,82,0,89,0,46,0,72,0, +71,0,51,0,115,0,125,0,114,0,152,0,117,0,100,0,148,0,124,0,91,0,115,0,125,0,120,0,114,0,89,0, +71,0,86,0,95,0,78,0,72,0,67,0,55,0,62,0,37,0,6,0,28,0,17,0,245,255,7,0,252,255,229,255, +230,255,209,255,215,255,253,255,228,255,178,255,181,255,184,255,164,255,176,255,174,255,138,255,179,255,222,255,164,255,134,255, +161,255,167,255,203,255,250,255,252,255,230,255,223,255,8,0,26,0,2,0,35,0,57,0,23,0,27,0,31,0,36,0, +79,0,77,0,78,0,110,0,75,0,53,0,83,0,80,0,71,0,66,0,65,0,93,0,80,0,60,0,88,0,64,0, +40,0,75,0,57,0,46,0,61,0,234,255,199,255,7,0,226,255,185,255,230,255,214,255,207,255,241,255,185,255,153,255, +208,255,215,255,179,255,155,255,158,255,181,255,174,255,175,255,209,255,214,255,213,255,203,255,168,255,173,255,207,255,217,255, +200,255,178,255,209,255,249,255,237,255,242,255,4,0,254,255,8,0,24,0,20,0,19,0,44,0,87,0,96,0,76,0, +75,0,78,0,82,0,101,0,110,0,105,0,106,0,109,0,92,0,83,0,111,0,102,0,74,0,80,0,42,0,20,0, +62,0,38,0,20,0,72,0,50,0,255,255,7,0,29,0,52,0,30,0,2,0,22,0,255,255,219,255,246,255,4,0, +248,255,240,255,231,255,219,255,208,255,228,255,234,255,209,255,250,255,31,0,1,0,12,0,41,0,22,0,244,255,232,255, +18,0,39,0,14,0,41,0,66,0,56,0,77,0,64,0,29,0,50,0,71,0,71,0,89,0,106,0,81,0,46,0, +82,0,106,0,52,0,43,0,63,0,55,0,62,0,37,0,14,0,45,0,33,0,20,0,51,0,49,0,51,0,55,0, +17,0,9,0,34,0,38,0,20,0,10,0,27,0,22,0,11,0,34,0,17,0,252,255,11,0,251,255,254,255,33,0, +37,0,44,0,39,0,17,0,33,0,35,0,18,0,24,0,20,0,14,0,13,0,254,255,8,0,40,0,46,0,18,0, +248,255,0,0,28,0,53,0,53,0,29,0,10,0,218,255,200,255,16,0,27,0,245,255,25,0,23,0,252,255,21,0, +3,0,238,255,25,0,55,0,54,0,27,0,10,0,35,0,46,0,45,0,66,0,93,0,89,0,37,0,21,0,31,0, +3,0,49,0,102,0,47,0,44,0,62,0,20,0,36,0,48,0,38,0,56,0,6,0,0,0,76,0,63,0,43,0, +55,0,34,0,64,0,61,0,12,0,53,0,65,0,36,0,75,0,67,0,22,0,18,0,253,255,243,255,252,255,6,0, +26,0,245,255,219,255,13,0,247,255,195,255,232,255,0,0,3,0,31,0,38,0,32,0,26,0,23,0,49,0,68,0, +64,0,47,0,38,0,82,0,86,0,25,0,37,0,83,0,83,0,85,0,69,0,70,0,120,0,113,0,94,0,121,0, +101,0,70,0,74,0,72,0,96,0,124,0,107,0,98,0,104,0,81,0,59,0,110,0,175,0,119,0,60,0,125,0, +125,0,61,0,112,0,123,0,40,0,53,0,71,0,30,0,59,0,70,0,21,0,33,0,51,0,35,0,29,0,10,0, +18,0,30,0,245,255,254,255,25,0,227,255,241,255,64,0,46,0,26,0,61,0,60,0,52,0,53,0,41,0,54,0, +58,0,42,0,59,0,57,0,35,0,78,0,104,0,65,0,70,0,80,0,42,0,59,0,108,0,110,0,80,0,45,0, +60,0,93,0,56,0,33,0,39,0,22,0,62,0,92,0,56,0,65,0,33,0,244,255,70,0,84,0,18,0,58,0, +64,0,28,0,65,0,55,0,23,0,56,0,43,0,251,255,6,0,48,0,50,0,31,0,47,0,41,0,29,0,69,0, +43,0,11,0,78,0,62,0,14,0,60,0,44,0,3,0,28,0,15,0,1,0,22,0,45,0,60,0,35,0,57,0, +96,0,33,0,24,0,66,0,25,0,38,0,79,0,64,0,88,0,77,0,57,0,93,0,50,0,35,0,106,0,83,0, +54,0,56,0,28,0,50,0,58,0,40,0,67,0,51,0,54,0,90,0,47,0,44,0,57,0,20,0,57,0,50,0, +229,255,6,0,42,0,49,0,69,0,253,255,1,0,89,0,24,0,244,255,69,0,54,0,33,0,76,0,54,0,27,0, +41,0,35,0,21,0,13,0,18,0,40,0,62,0,74,0,68,0,62,0,63,0,36,0,8,0,23,0,45,0,37,0, +41,0,86,0,88,0,50,0,85,0,114,0,57,0,53,0,87,0,78,0,75,0,64,0,50,0,85,0,96,0,82,0, +66,0,16,0,14,0,54,0,35,0,35,0,73,0,51,0,17,0,22,0,25,0,37,0,44,0,0,0,213,255,228,255, +242,255,221,255,214,255,205,255,189,255,218,255,250,255,246,255,246,255,239,255,234,255,6,0,0,0,214,255,219,255,242,255, +239,255,2,0,33,0,13,0,249,255,4,0,242,255,238,255,21,0,19,0,17,0,51,0,48,0,52,0,75,0,31,0, +248,255,30,0,79,0,85,0,45,0,10,0,18,0,38,0,57,0,68,0,69,0,68,0,74,0,99,0,96,0,67,0, +66,0,37,0,36,0,127,0,124,0,53,0,88,0,119,0,111,0,116,0,68,0,19,0,11,0,10,0,26,0,22,0, +30,0,65,0,38,0,27,0,62,0,61,0,55,0,19,0,242,255,23,0,12,0,229,255,248,255,11,0,62,0,101,0, +76,0,58,0,10,0,10,0,98,0,69,0,31,0,85,0,66,0,61,0,98,0,89,0,125,0,126,0,85,0,111,0, +72,0,35,0,92,0,76,0,62,0,85,0,35,0,65,0,143,0,85,0,35,0,60,0,59,0,58,0,67,0,39,0, +7,0,21,0,57,0,59,0,45,0,47,0,59,0,74,0,77,0,59,0,26,0,14,0,51,0,55,0,12,0,24,0, +51,0,41,0,46,0,54,0,50,0,36,0,10,0,21,0,37,0,18,0,23,0,63,0,107,0,102,0,9,0,213,255, +16,0,54,0,40,0,28,0,43,0,66,0,42,0,39,0,88,0,85,0,99,0,167,0,134,0,98,0,145,0,97,0, +36,0,90,0,95,0,55,0,60,0,44,0,49,0,82,0,48,0,42,0,97,0,84,0,30,0,14,0,43,0,77,0, +36,0,1,0,66,0,89,0,37,0,47,0,59,0,13,0,6,0,32,0,42,0,45,0,11,0,253,255,60,0,76,0, +40,0,65,0,72,0,22,0,255,255,254,255,19,0,54,0,36,0,31,0,89,0,101,0,70,0,75,0,67,0,54,0, +105,0,119,0,50,0,52,0,95,0,84,0,110,0,132,0,92,0,88,0,98,0,105,0,145,0,110,0,42,0,56,0, +85,0,109,0,126,0,118,0,131,0,117,0,58,0,52,0,73,0,79,0,106,0,110,0,86,0,105,0,95,0,25,0, +32,0,62,0,23,0,43,0,64,0,20,0,65,0,96,0,52,0,99,0,122,0,90,0,128,0,102,0,30,0,56,0, +92,0,69,0,13,0,2,0,57,0,50,0,15,0,32,0,52,0,97,0,119,0,54,0,236,255,198,255,235,255,42,0, +36,0,47,0,77,0,65,0,79,0,77,0,35,0,24,0,34,0,46,0,31,0,39,0,106,0,80,0,21,0,67,0, +74,0,52,0,72,0,33,0,13,0,43,0,20,0,29,0,91,0,76,0,29,0,34,0,41,0,35,0,32,0,11,0, +23,0,61,0,38,0,35,0,63,0,38,0,84,0,129,0,59,0,77,0,119,0,49,0,34,0,35,0,5,0,38,0, +39,0,23,0,59,0,69,0,56,0,41,0,39,0,58,0,50,0,64,0,65,0,9,0,27,0,42,0,242,255,20,0, +65,0,28,0,31,0,35,0,230,255,200,255,249,255,47,0,31,0,239,255,240,255,45,0,74,0,22,0,12,0,59,0, +42,0,15,0,42,0,64,0,34,0,232,255,0,0,73,0,78,0,78,0,73,0,37,0,37,0,58,0,101,0,112,0, +37,0,31,0,48,0,13,0,74,0,88,0,232,255,253,255,106,0,107,0,11,0,220,255,57,0,88,0,250,255,254,255, +37,0,12,0,22,0,34,0,21,0,38,0,61,0,52,0,27,0,47,0,65,0,19,0,14,0,55,0,42,0,4,0, +252,255,47,0,63,0,226,255,201,255,32,0,43,0,238,255,236,255,49,0,64,0,9,0,31,0,60,0,14,0,40,0, +91,0,69,0,50,0,39,0,59,0,73,0,26,0,45,0,68,0,45,0,132,0,161,0,55,0,73,0,124,0,80,0, +47,0,52,0,131,0,174,0,83,0,58,0,110,0,108,0,86,0,53,0,66,0,98,0,34,0,13,0,49,0,28,0, +32,0,27,0,2,0,37,0,9,0,212,255,1,0,33,0,37,0,9,0,227,255,44,0,93,0,39,0,44,0,57,0, +23,0,33,0,46,0,24,0,0,0,243,255,241,255,245,255,36,0,61,0,0,0,239,255,6,0,236,255,228,255,213,255, +173,255,184,255,182,255,161,255,163,255,162,255,213,255,251,255,197,255,203,255,246,255,226,255,248,255,14,0,244,255,23,0, +73,0,83,0,69,0,41,0,94,0,150,0,105,0,115,0,167,0,144,0,126,0,139,0,171,0,183,0,133,0,134,0, +153,0,90,0,62,0,78,0,78,0,82,0,66,0,76,0,81,0,19,0,32,0,77,0,36,0,27,0,48,0,16,0, +222,255,205,255,239,255,233,255,180,255,191,255,195,255,171,255,152,255,95,255,113,255,166,255,103,255,79,255,101,255,60,255, +79,255,111,255,72,255,76,255,105,255,112,255,143,255,190,255,203,255,202,255,235,255,254,255,2,0,55,0,82,0,55,0, +51,0,33,0,52,0,139,0,153,0,94,0,61,0,106,0,191,0,167,0,81,0,90,0,123,0,110,0,98,0,113,0, +114,0,69,0,69,0,102,0,95,0,120,0,78,0,222,255,251,255,14,0,202,255,232,255,215,255,148,255,192,255,170,255, +73,255,36,255,232,254,153,254,92,254,20,254,214,253,130,253,247,252,115,252,78,252,144,252,4,253,209,253,168,254,4,255, +149,255,105,0,137,0,101,0,177,0,8,1,16,1,2,1,124,1,71,2,120,2,122,2,245,2,89,3,75,3,235,2, +153,2,144,2,85,2,244,1,244,1,37,2,86,2,113,2,75,2,27,2,199,1,244,0,216,255,236,254,134,254,61,254, +127,253,16,253,129,253,231,253,219,253,5,254,173,254,36,255,230,254,215,254,95,255,92,255,183,254,114,254,153,254,163,254, +96,254,47,254,83,254,101,254,103,254,155,254,181,254,237,254,170,255,106,0,226,0,112,1,30,2,161,2,221,2,216,2, +149,2,25,2,96,1,176,0,119,0,81,0,16,0,138,0,116,1,190,1,239,1,238,2,12,4,75,4,89,4,16,5, +114,5,4,5,195,4,131,4,199,3,251,2,49,2,131,1,3,1,89,0,178,255,35,255,161,254,99,254,0,254,161,253, +231,253,20,254,225,253,28,254,144,254,154,254,60,254,244,253,7,254,195,253,243,252,80,252,230,251,127,251,67,251,97,251, +35,252,47,253,231,253,170,254,167,255,71,0,174,0,89,1,177,1,73,1,235,0,202,0,86,0,36,0,164,0,247,0, +20,1,172,1,91,2,191,2,92,3,29,4,87,4,77,4,204,4,145,5,183,5,105,5,138,5,235,5,206,5,83,5, +149,4,143,3,217,2,66,2,96,1,231,0,174,0,48,0,77,0,254,0,62,1,62,1,61,1,235,0,82,0,134,255, +184,254,254,253,33,253,99,252,206,251,240,250,54,250,239,249,121,249,19,249,72,249,130,249,132,249,169,249,218,249,41,250, +155,250,220,250,21,251,123,251,217,251,20,252,97,252,13,253,187,253,220,253,237,253,63,254,96,254,116,254,173,254,252,254, +151,255,84,0,230,0,95,1,218,1,136,2,95,3,40,4,209,4,225,4,185,4,80,5,170,5,67,5,135,5,44,6, +22,6,245,5,72,6,176,6,160,6,211,5,72,5,50,5,75,4,234,2,248,1,31,1,115,0,5,0,98,255,189,254, +72,254,221,253,64,253,76,252,139,251,239,250,194,249,148,248,65,248,112,248,48,248,66,247,15,247,16,248,128,248,85,248, +10,249,1,250,33,250,251,249,120,250,105,251,214,251,213,251,113,252,178,253,194,254,69,255,149,255,21,0,188,0,151,1, +147,2,95,3,46,4,43,5,22,6,228,6,154,7,43,8,39,8,124,7,60,7,59,7,92,6,89,5,203,4,55,4, +13,4,157,4,140,5,101,6,173,6,5,7,159,7,66,7,97,6,253,5,68,5,33,4,117,3,244,2,35,2,59,1, +125,0,198,255,211,254,239,253,56,253,63,252,54,251,147,250,52,250,246,249,207,249,190,249,208,249,212,249,244,249,84,250, +51,250,149,249,96,249,108,249,110,249,190,249,92,250,75,251,122,252,199,253,118,255,233,0,140,1,53,2,183,2,130,2, +171,2,55,3,253,2,108,2,128,2,10,3,31,3,162,2,208,2,163,3,204,3,172,3,14,4,106,4,148,4,227,4, +31,5,252,4,192,4,217,4,21,5,248,4,113,4,165,3,255,2,212,2,176,2,63,2,196,1,151,1,210,1,238,1, +188,1,235,1,101,2,143,2,124,2,88,2,54,2,227,1,42,1,139,0,221,255,167,254,247,253,246,253,87,253,101,252, +23,252,46,252,50,252,243,251,144,251,15,251,74,250,198,249,201,249,174,249,52,249,154,248,41,248,29,248,133,248,95,249, +18,250,47,250,238,250,191,252,192,253,78,253,52,253,65,254,39,255,76,255,238,255,119,1,162,2,11,3,169,3,144,4, +226,4,181,4,165,4,131,4,101,4,201,4,58,5,83,5,127,5,138,5,16,5,144,4,87,4,163,3,250,1,106,0, +28,0,118,0,21,0,236,254,121,254,61,255,146,255,248,254,242,254,129,255,93,255,197,254,138,254,87,254,181,253,30,253, +251,252,208,252,81,252,163,251,130,250,15,249,235,247,9,247,46,246,180,245,219,245,120,246,37,247,218,247,23,249,164,250, +211,251,206,252,160,253,218,253,170,253,94,253,54,253,114,253,164,253,32,254,221,255,195,1,127,2,243,2,13,4,44,5, +104,5,75,5,199,5,32,6,255,5,60,6,96,6,250,5,192,5,187,5,185,5,150,5,255,4,86,4,209,3,101,3, +71,3,28,3,252,2,101,3,134,3,220,2,43,2,204,1,100,1,170,0,191,255,212,254,198,253,141,252,80,251,78,250, +197,249,153,249,224,249,224,250,6,252,120,252,108,252,187,252,100,253,184,253,205,253,233,253,189,253,106,253,90,253,131,253, +165,253,173,253,23,254,15,255,2,0,175,0,62,1,250,1,221,2,109,3,86,4,29,6,75,7,126,7,228,7,52,8, +170,7,204,6,40,6,54,5,185,3,235,2,31,3,4,3,160,2,237,2,126,3,134,3,125,3,220,3,176,3,144,2, +181,1,133,1,33,1,11,0,190,254,42,254,202,253,180,252,247,251,5,252,225,251,161,251,186,251,36,252,110,252,54,252, +78,252,252,252,67,253,20,253,182,252,40,252,138,251,147,250,67,249,50,248,32,248,70,249,124,250,131,251,80,253,118,255, +146,1,98,3,46,4,95,5,132,7,126,8,123,8,205,8,229,8,153,8,59,8,235,7,168,7,223,6,33,6,75,6, +67,6,153,5,73,5,71,5,60,5,69,5,60,5,231,4,199,3,139,1,47,255,79,253,78,251,167,249,29,249,181,248, +248,247,157,247,141,247,75,247,228,246,244,246,216,247,127,248,97,248,180,248,79,249,248,248,121,248,238,248,145,249,118,249, +242,248,160,248,201,248,146,249,154,250,114,251,110,252,231,253,197,255,184,1,69,3,97,4,42,5,112,5,111,5,25,5, +184,3,192,1,148,0,78,0,242,255,135,255,17,0,74,1,5,2,101,2,71,3,141,4,87,5,103,5,130,5,18,6, +165,6,202,6,26,6,175,4,54,3,194,1,254,255,246,253,55,252,34,251,235,249,99,248,214,247,15,248,219,247,252,247, +34,249,13,250,236,249,143,249,142,249,118,249,103,249,21,250,23,251,153,251,192,251,13,252,121,252,194,252,14,253,125,253, +229,253,159,254,99,255,46,255,158,254,210,254,130,255,87,0,39,1,213,1,175,2,132,3,76,4,160,5,237,6,100,7, +136,7,189,7,225,7,248,7,208,7,89,7,182,6,205,5,236,4,76,4,86,3,23,2,65,1,141,0,161,255,173,254, +221,253,168,253,206,253,135,253,119,253,7,254,83,254,61,254,47,254,46,254,13,254,177,253,181,253,241,253,86,253,221,252, +199,253,38,255,251,255,90,0,1,1,65,2,36,3,150,3,121,4,114,5,212,5,213,5,26,6,151,6,142,6,129,6, +250,6,2,7,177,6,166,6,69,6,166,5,30,5,61,4,23,3,63,2,221,1,128,1,217,0,37,0,74,255,82,254, +144,253,160,252,144,251,232,250,143,250,79,250,224,249,40,249,96,248,168,247,234,247,91,249,61,250,29,250,26,250,95,250, +119,250,69,250,112,250,117,251,155,252,50,253,77,253,181,253,235,254,178,255,173,255,59,0,36,1,141,1,206,1,54,2, +190,2,53,3,210,3,2,5,37,6,181,6,196,6,88,6,242,5,130,5,137,4,208,3,192,3,143,3,58,3,102,3, +239,3,245,3,72,3,156,2,53,2,158,1,85,0,232,254,7,254,195,252,31,251,124,250,61,250,179,249,157,249,228,249, +58,250,97,250,43,250,82,250,142,250,31,250,231,249,18,250,174,249,213,248,22,248,126,247,225,246,110,246,108,246,69,246, +103,245,185,244,93,245,175,246,181,247,42,249,82,251,210,252,54,253,70,253,176,253,52,254,77,254,188,254,198,255,93,0, +224,0,225,1,17,3,152,4,11,6,37,7,96,8,80,9,28,10,55,11,202,11,220,11,41,12,198,12,79,13,220,12, +233,11,171,11,89,11,126,10,246,9,152,9,238,8,70,8,207,7,31,7,201,5,11,4,81,2,218,0,115,255,162,253, +174,251,244,249,77,248,228,246,157,245,81,244,58,243,18,242,194,240,58,239,83,237,217,235,214,234,205,233,76,233,46,233, +65,233,255,233,207,234,127,235,234,236,252,238,55,241,162,243,140,246,159,249,100,252,175,255,120,3,46,6,249,7,6,10, +10,12,44,13,175,13,147,14,233,15,129,17,206,19,69,22,23,24,100,25,118,26,105,27,185,27,105,27,53,27,87,26, +202,24,4,24,84,23,113,21,105,18,218,14,223,11,194,8,169,4,98,1,2,255,195,251,92,248,222,245,115,243,76,240, +123,237,74,236,91,235,90,233,150,231,189,230,29,230,161,229,171,229,82,230,247,230,28,231,39,231,99,231,245,231,245,232, +57,234,179,235,101,237,187,239,243,242,13,246,173,248,145,251,54,254,12,0,251,1,41,4,174,5,210,6,130,8,213,10, +43,13,157,14,192,15,18,18,98,20,148,21,142,23,89,26,251,27,146,28,26,29,231,29,3,30,1,28,54,25,47,23, +147,20,173,16,95,12,97,8,75,5,182,2,208,255,26,253,36,251,73,249,55,247,126,245,250,243,48,242,142,240,63,239, +213,237,117,236,150,235,91,235,5,235,219,233,92,232,16,231,77,230,113,230,172,230,152,230,81,231,223,232,46,234,55,235, +171,236,159,238,220,240,152,243,130,246,26,249,151,251,251,253,205,0,159,4,24,8,125,10,225,12,138,15,196,17,1,19, +189,19,138,20,132,20,128,19,142,18,218,17,36,17,241,15,92,14,78,13,20,12,25,10,134,8,196,7,87,7,105,6, +10,5,167,4,204,4,60,4,56,3,221,1,226,0,180,0,24,0,33,255,104,254,155,253,226,252,225,251,122,250,88,249, +26,248,208,246,53,246,215,245,34,245,129,244,188,244,107,245,157,245,24,246,141,247,51,249,116,250,52,251,2,252,242,252, +30,253,18,253,85,253,41,253,211,252,164,252,139,252,239,252,119,253,224,253,113,254,139,255,169,1,200,3,22,5,151,6, +10,8,182,8,91,9,9,10,101,10,173,10,227,10,241,10,239,10,239,10,172,10,51,10,41,10,70,10,69,10,131,10, +107,10,224,9,67,9,253,7,82,6,194,4,188,2,78,0,215,253,163,251,184,249,79,247,221,244,90,243,39,242,81,241, +149,241,126,242,104,243,1,244,67,244,153,244,189,244,29,244,27,243,71,242,136,241,243,240,208,240,186,240,147,240,249,240, +236,241,11,243,89,244,14,246,89,248,173,250,206,252,109,255,241,1,138,3,57,5,105,7,240,8,129,9,40,10,16,11, +13,11,66,10,9,10,110,10,240,10,162,11,155,12,130,13,100,13,186,12,2,13,43,13,220,11,91,10,88,9,244,7, +1,6,247,3,247,1,140,255,197,252,117,250,136,248,136,246,18,245,161,244,154,244,102,244,135,244,127,245,151,246,87,247, +254,247,76,248,54,248,23,248,234,247,175,247,69,247,199,246,31,247,70,248,76,249,74,250,206,251,200,253,196,255,140,1, +120,3,79,5,96,6,33,7,202,7,117,7,89,6,130,5,15,5,177,4,46,4,143,3,61,3,39,3,251,2,238,2, +218,2,11,2,242,0,114,0,229,255,192,254,186,253,182,252,134,251,194,250,237,249,231,248,178,248,0,249,98,249,70,250, +83,251,91,252,153,253,212,254,70,0,253,1,98,3,140,4,147,5,17,6,28,6,30,6,89,6,183,6,185,6,125,6, +192,6,86,7,113,7,33,7,215,6,91,6,108,5,47,4,244,2,236,1,208,0,150,255,179,254,38,254,164,253,65,253, +69,253,189,253,30,254,53,254,104,254,90,254,184,253,91,253,129,253,98,253,189,252,81,252,152,252,240,252,27,253,145,253, +8,254,54,254,100,254,175,254,46,255,124,255,70,255,37,255,36,255,6,255,79,255,238,255,118,0,213,0,10,1,137,1, +86,2,210,2,93,3,82,4,253,4,30,5,33,5,42,5,195,4,177,3,177,2,48,2,131,1,118,0,189,255,209,255, +34,0,11,0,39,0,184,0,211,0,129,0,67,0,202,255,93,255,50,255,172,254,53,254,74,254,42,254,153,253,249,252, +97,252,174,251,71,250,77,248,202,246,142,245,40,244,112,243,135,243,232,243,237,244,174,246,188,248,244,250,35,253,86,255, +161,1,68,3,24,4,224,4,92,5,203,4,94,3,167,1,210,255,223,253,60,252,95,251,250,250,248,250,170,251,202,252, +69,254,32,0,140,1,85,2,36,3,217,3,188,3,213,2,12,2,150,1,168,0,91,255,66,254,34,253,219,251,157,250, +153,249,28,249,238,248,142,248,32,248,8,248,225,247,71,247,119,247,17,249,124,250,111,251,6,253,235,254,145,0,25,2, +2,4,108,6,212,7,4,8,222,8,3,10,67,10,104,10,223,10,68,11,94,11,25,11,204,10,193,10,206,10,152,10, +46,10,28,10,251,9,68,9,125,8,161,7,126,6,19,5,10,3,65,1,92,0,119,255,116,254,151,253,232,252,135,252, +160,251,132,250,95,250,51,250,88,249,177,248,47,248,137,247,182,246,246,245,229,245,14,246,32,246,188,246,143,247,92,248, +148,249,35,251,0,253,192,254,235,255,65,1,197,2,164,3,74,4,19,5,187,5,44,6,233,5,74,5,99,5,172,5, +191,5,93,6,19,7,199,7,84,9,180,10,244,10,37,11,136,11,49,11,236,9,128,8,126,7,42,6,36,4,74,2, +120,0,82,254,114,252,195,250,82,249,178,248,93,248,1,248,10,248,4,248,142,247,6,247,114,246,144,245,109,244,143,243, +100,243,55,243,151,242,178,242,249,243,86,245,179,246,136,248,88,250,219,251,128,253,109,255,66,1,165,2,178,3,107,4, +125,4,65,4,104,4,22,5,17,6,196,6,8,7,151,7,48,8,27,8,83,8,138,9,134,10,192,10,8,11,117,11, +156,11,138,11,62,11,165,10,246,9,64,9,69,8,195,6,191,4,140,2,126,0,154,254,128,252,68,250,178,248,180,247, +134,246,96,245,176,244,53,244,201,243,179,243,63,244,217,244,234,244,32,245,170,245,213,245,21,246,9,247,62,248,46,249, +205,249,109,250,96,251,117,252,58,253,191,253,128,254,91,255,235,255,141,0,84,1,250,1,204,2,183,3,109,4,51,5, +252,5,175,6,183,7,1,9,250,9,154,10,5,11,210,10,15,10,96,9,86,8,120,6,136,4,9,3,37,2,169,1, +244,0,136,0,211,0,2,1,6,1,42,1,71,1,73,1,134,0,215,254,14,253,47,251,241,248,181,246,15,245,7,244, +35,243,242,242,243,243,221,244,110,245,215,246,215,248,126,250,189,251,22,253,153,254,126,255,174,255,247,255,64,0,231,255, +71,255,72,255,180,255,177,255,10,0,229,1,75,4,54,6,46,8,115,10,101,12,186,13,167,14,12,15,162,14,148,13, +80,12,38,11,172,9,119,7,163,5,198,4,208,3,231,2,205,2,166,2,25,2,27,2,162,2,173,2,12,2,124,1, +25,1,214,255,176,253,24,252,245,250,49,249,142,247,249,246,14,247,107,247,207,247,127,248,218,249,222,250,83,251,83,252, +106,253,217,253,29,254,83,254,36,254,132,253,237,252,148,252,221,251,88,251,3,252,194,252,239,252,197,253,127,255,2,1, +25,2,111,3,146,4,206,4,217,4,167,4,130,3,63,2,114,1,199,0,101,0,46,0,1,0,74,0,235,0,95,1, +228,1,1,3,230,3,198,3,112,3,2,3,0,2,2,1,73,0,200,255,37,255,203,253,199,252,87,252,91,251,221,250, +59,251,36,251,227,250,168,250,56,250,228,249,42,249,31,248,104,247,203,246,115,246,72,246,229,245,203,245,17,246,152,246, +168,247,19,249,172,250,78,252,136,253,76,254,8,255,0,0,224,0,145,1,72,2,175,2,26,3,18,4,1,5,247,5, +91,7,229,8,136,10,186,11,44,12,132,12,166,12,31,12,235,10,128,9,169,8,223,7,176,6,230,5,105,5,242,4, +119,4,168,3,78,3,114,3,240,2,25,2,164,1,121,1,229,0,137,255,127,254,190,253,96,252,103,251,13,251,134,250, +15,250,166,249,148,249,68,250,6,251,191,251,158,252,133,253,97,254,204,254,55,255,237,255,47,0,93,0,178,0,213,0, +89,1,221,1,23,2,182,2,28,3,61,3,169,3,141,3,69,3,154,3,200,3,205,3,31,4,93,4,35,4,119,3, +218,2,69,2,49,1,38,0,159,255,12,255,45,254,61,253,131,252,19,252,178,251,132,251,220,251,115,252,191,252,204,252, +49,253,231,253,122,254,1,255,124,255,208,255,29,0,28,0,236,255,16,0,2,0,141,255,98,255,75,255,20,255,49,255, +41,255,196,254,170,254,193,254,218,254,48,255,128,255,166,255,172,255,148,255,198,255,47,0,94,0,120,0,114,0,245,255, +63,255,179,254,78,254,237,253,188,253,181,253,129,253,89,253,123,253,201,253,120,254,54,255,163,255,83,0,27,1,106,1, +200,1,104,2,190,2,192,2,242,2,104,3,137,3,94,3,101,3,146,3,202,3,193,3,103,3,74,3,18,3,141,2, +79,2,240,1,126,1,97,1,170,0,123,255,251,254,208,254,112,254,56,254,70,254,64,254,22,254,18,254,56,254,186,254, +130,255,141,255,62,255,128,255,107,255,206,254,141,254,173,254,245,254,21,255,60,255,211,255,23,0,28,0,193,0,91,1, +133,1,179,1,14,2,191,2,107,3,216,3,65,4,127,4,191,4,201,4,61,4,253,3,209,3,246,2,104,2,28,2, +117,1,248,0,68,0,110,255,85,255,253,254,250,253,102,253,17,253,154,252,72,252,238,251,210,251,0,252,149,251,20,251, +98,251,168,251,168,251,17,252,134,252,216,252,63,253,113,253,197,253,130,254,12,255,112,255,30,0,240,0,193,1,124,2, +25,3,190,3,102,4,205,4,213,4,221,4,19,5,24,5,248,4,202,4,61,4,134,3,223,2,26,2,99,1,184,0, +207,255,234,254,80,254,186,253,244,252,56,252,147,251,247,250,152,250,73,250,231,249,204,249,173,249,96,249,127,249,245,249, +126,250,44,251,154,251,212,251,64,252,165,252,248,252,111,253,223,253,4,254,16,254,143,254,95,255,35,0,49,1,78,2, +49,3,103,4,160,5,130,6,142,7,136,8,66,9,43,10,205,10,250,10,87,11,138,11,2,11,83,10,187,9,194,8, +176,7,218,6,217,5,236,4,84,4,113,3,94,2,118,1,81,0,33,255,65,254,96,253,73,252,240,250,144,249,169,248, +16,248,96,247,224,246,164,246,41,246,139,245,41,245,155,244,246,243,174,243,93,243,84,243,15,244,183,244,109,245,216,246, +79,248,175,249,92,251,61,253,52,255,222,0,120,2,79,4,164,5,187,6,16,8,226,8,96,9,250,9,91,10,173,10, +194,10,83,10,219,9,121,9,16,9,147,8,250,7,131,7,38,7,222,6,168,6,15,6,32,5,240,3,120,2,22,1, +122,255,181,253,101,252,232,250,66,249,31,248,246,246,195,245,194,244,201,243,75,243,13,243,174,242,191,242,40,243,145,243, +16,244,210,244,21,246,121,247,221,248,114,250,196,251,21,253,147,254,220,255,101,1,225,2,208,3,245,4,13,6,216,6, +207,7,107,8,185,8,243,8,220,8,5,9,240,8,44,8,253,7,17,8,156,7,47,7,197,6,85,6,218,5,15,5, +131,4,17,4,51,3,82,2,99,1,107,0,96,255,243,253,4,253,125,252,83,251,156,250,210,250,202,250,218,250,90,251, +157,251,228,251,91,252,130,252,132,252,167,252,190,252,220,252,10,253,52,253,142,253,249,253,46,254,139,254,40,255,162,255, +24,0,189,0,100,1,207,1,18,2,136,2,20,3,144,3,36,4,92,4,24,4,253,3,184,3,255,2,144,2,100,2, +252,1,182,1,185,1,152,1,111,1,113,1,61,1,209,0,139,0,72,0,217,255,73,255,182,254,83,254,247,253,144,253, +113,253,102,253,107,253,210,253,82,254,206,254,103,255,188,255,198,255,200,255,176,255,142,255,104,255,55,255,23,255,234,254, +151,254,97,254,90,254,42,254,1,254,111,254,8,255,76,255,184,255,99,0,250,0,135,1,233,1,237,1,155,1,2,1, +66,0,134,255,239,254,90,254,180,253,100,253,72,253,39,253,118,253,248,253,99,254,251,254,108,255,217,255,137,0,223,0, +231,0,249,0,243,0,3,1,22,1,43,1,120,1,175,1,225,1,37,2,83,2,219,2,106,3,126,3,172,3,225,3, +204,3,192,3,193,3,196,3,152,3,33,3,233,2,218,2,145,2,44,2,187,1,98,1,248,0,76,0,202,255,97,255, +214,254,59,254,105,253,212,252,128,252,169,251,201,250,48,250,103,249,211,248,139,248,42,248,235,247,225,247,11,248,100,248, +171,248,236,248,70,249,216,249,159,250,53,251,176,251,73,252,204,252,56,253,154,253,4,254,136,254,223,254,72,255,4,0, +169,0,68,1,255,1,204,2,224,3,245,4,198,5,165,6,139,7,77,8,239,8,88,9,166,9,238,9,38,10,82,10, +102,10,109,10,93,10,25,10,189,9,44,9,73,8,115,7,204,6,10,6,11,5,245,3,225,2,183,1,137,0,110,255, +113,254,157,253,145,252,67,251,52,250,64,249,64,248,109,247,163,246,226,245,30,245,90,244,30,244,254,243,129,243,96,243, +133,243,162,243,40,244,161,244,252,244,216,245,203,246,234,247,118,249,167,250,179,251,11,253,66,254,160,255,60,1,177,2, +95,4,16,6,91,7,186,8,253,9,238,10,6,12,217,12,25,13,98,13,169,13,154,13,85,13,8,13,218,12,175,12, +110,12,19,12,68,11,52,10,66,9,235,7,75,6,214,4,58,3,137,1,247,255,113,254,40,253,210,251,70,250,252,248, +200,247,163,246,198,245,169,244,132,243,12,243,202,242,113,242,134,242,8,243,95,243,114,243,227,243,161,244,27,245,186,245, +150,246,9,247,136,247,169,248,214,249,196,250,244,251,70,253,48,254,53,255,189,0,5,2,22,3,139,4,1,6,52,7, +73,8,48,9,7,10,153,10,185,10,219,10,246,10,220,10,205,10,177,10,144,10,154,10,153,10,127,10,98,10,20,10, +140,9,244,8,100,8,195,7,242,6,249,5,223,4,220,3,10,3,37,2,79,1,166,0,211,255,248,254,85,254,185,253, +33,253,129,252,167,251,172,250,153,249,109,248,73,247,15,246,198,244,223,243,108,243,32,243,198,242,107,242,123,242,19,243, +176,243,57,244,245,244,190,245,97,246,241,246,166,247,122,248,23,249,173,249,133,250,86,251,61,252,72,253,52,254,103,255, +228,0,84,2,254,3,185,5,123,7,113,9,246,10,86,12,235,13,204,14,99,15,9,16,15,16,33,16,43,16,94,15, +182,14,75,14,99,13,147,12,213,11,229,10,13,10,250,8,162,7,61,6,171,4,0,3,50,1,96,255,179,253,191,251, +209,249,79,248,183,246,50,245,3,244,228,242,238,241,18,241,77,240,207,239,94,239,46,239,69,239,31,239,53,239,176,239, +252,239,122,240,68,241,41,242,156,243,31,245,120,246,135,248,212,250,18,253,219,255,93,2,90,4,186,6,238,8,151,10, +27,12,36,13,3,14,251,14,78,15,115,15,14,16,103,16,75,16,51,16,31,16,202,15,54,15,196,14,93,14,155,13, +177,12,188,11,161,10,116,9,24,8,183,6,98,5,183,3,214,1,232,255,233,253,38,252,132,250,236,248,143,247,77,246, +83,245,156,244,212,243,113,243,97,243,16,243,215,242,199,242,211,242,65,243,145,243,251,243,29,245,24,246,231,246,95,248, +207,249,0,251,149,252,23,254,63,255,117,0,154,1,147,2,109,3,35,4,229,4,145,5,224,5,32,6,96,6,114,6, +177,6,255,6,206,6,162,6,244,6,29,7,242,6,219,6,153,6,34,6,200,5,91,5,175,4,232,3,4,3,27,2, +91,1,162,0,178,255,150,254,171,253,22,253,123,252,213,251,112,251,47,251,222,250,138,250,88,250,82,250,66,250,58,250, +113,250,170,250,207,250,10,251,71,251,131,251,198,251,254,251,48,252,108,252,206,252,36,253,78,253,189,253,87,254,207,254, +101,255,233,255,123,0,71,1,154,1,7,2,25,3,175,3,25,4,230,4,48,5,98,5,232,5,49,6,133,6,175,6, +114,6,98,6,53,6,236,5,229,5,158,5,66,5,9,5,135,4,241,3,96,3,236,2,200,2,100,2,227,1,205,1, +178,1,124,1,81,1,245,0,155,0,82,0,228,255,129,255,61,255,242,254,132,254,11,254,178,253,99,253,249,252,110,252, +224,251,112,251,4,251,210,250,248,250,248,250,245,250,66,251,117,251,145,251,224,251,66,252,173,252,9,253,46,253,63,253, +129,253,1,254,94,254,183,254,113,255,20,0,136,0,85,1,59,2,240,2,143,3,16,4,122,4,169,4,169,4,181,4, +169,4,158,4,146,4,65,4,254,3,237,3,6,4,71,4,51,4,18,4,79,4,54,4,226,3,194,3,66,3,132,2, +241,1,45,1,70,0,116,255,153,254,208,253,59,253,176,252,38,252,234,251,214,251,155,251,142,251,156,251,120,251,135,251, +161,251,102,251,65,251,58,251,40,251,46,251,62,251,110,251,187,251,0,252,104,252,234,252,133,253,67,254,203,254,61,255, +196,255,39,0,186,0,131,1,12,2,146,2,56,3,156,3,194,3,242,3,87,4,205,4,1,5,10,5,38,5,54,5, +40,5,42,5,11,5,164,4,110,4,101,4,10,4,168,3,105,3,253,2,179,2,133,2,53,2,24,2,227,1,73,1, +222,0,142,0,13,0,174,255,113,255,66,255,39,255,249,254,216,254,169,254,68,254,26,254,10,254,177,253,125,253,105,253, +32,253,248,252,245,252,11,253,92,253,153,253,201,253,6,254,240,253,243,253,80,254,123,254,156,254,197,254,173,254,193,254, +12,255,58,255,118,255,202,255,35,0,83,0,67,0,91,0,116,0,93,0,113,0,126,0,124,0,166,0,184,0,201,0, +201,0,142,0,170,0,196,0,104,0,58,0,26,0,208,255,190,255,165,255,127,255,113,255,58,255,0,255,197,254,138,254, +138,254,115,254,94,254,137,254,120,254,101,254,196,254,45,255,94,255,133,255,207,255,36,0,87,0,158,0,236,0,40,1, +109,1,127,1,164,1,17,2,41,2,47,2,114,2,125,2,139,2,166,2,130,2,119,2,111,2,84,2,94,2,58,2, +32,2,72,2,40,2,241,1,220,1,136,1,42,1,237,0,158,0,79,0,1,0,174,255,101,255,29,255,216,254,138,254, +56,254,21,254,9,254,211,253,134,253,83,253,28,253,248,252,36,253,47,253,253,252,28,253,76,253,108,253,239,253,124,254, +228,254,102,255,212,255,76,0,200,0,252,0,69,1,160,1,189,1,239,1,32,2,35,2,64,2,88,2,68,2,54,2, +79,2,121,2,132,2,138,2,132,2,70,2,56,2,98,2,111,2,129,2,102,2,38,2,30,2,203,1,45,1,214,0, +117,0,240,255,111,255,195,254,53,254,217,253,107,253,2,253,163,252,86,252,46,252,255,251,243,251,5,252,245,251,253,251, +57,252,127,252,194,252,1,253,99,253,199,253,253,253,88,254,195,254,230,254,0,255,76,255,159,255,215,255,48,0,181,0, +236,0,14,1,130,1,199,1,234,1,44,2,59,2,92,2,149,2,165,2,4,3,88,3,41,3,37,3,57,3,239,2, +155,2,96,2,30,2,157,1,233,0,134,0,70,0,233,255,190,255,144,255,119,255,188,255,189,255,133,255,139,255,116,255, +77,255,105,255,130,255,112,255,88,255,98,255,92,255,13,255,9,255,85,255,30,255,200,254,240,254,11,255,251,254,7,255, +5,255,247,254,254,254,26,255,47,255,255,254,208,254,242,254,0,255,222,254,220,254,248,254,41,255,65,255,26,255,22,255, +91,255,164,255,230,255,44,0,121,0,189,0,215,0,213,0,202,0,194,0,182,0,139,0,136,0,203,0,221,0,227,0, +41,1,96,1,121,1,141,1,183,1,36,2,115,2,129,2,189,2,15,3,69,3,94,3,61,3,25,3,252,2,188,2, +123,2,19,2,152,1,85,1,224,0,71,0,14,0,202,255,74,255,250,254,184,254,86,254,236,253,129,253,58,253,4,253, +152,252,51,252,21,252,252,251,239,251,32,252,50,252,13,252,251,251,217,251,204,251,12,252,23,252,18,252,121,252,233,252, +88,253,246,253,125,254,31,255,241,255,185,0,153,1,72,2,173,2,80,3,227,3,24,4,111,4,204,4,13,5,118,5, +175,5,154,5,166,5,196,5,199,5,216,5,228,5,187,5,121,5,46,5,183,4,46,4,178,3,8,3,67,2,165,1, +252,0,80,0,246,255,172,255,67,255,10,255,220,254,141,254,93,254,7,254,97,253,236,252,136,252,229,251,86,251,192,250, +40,250,250,249,219,249,150,249,152,249,214,249,70,250,225,250,91,251,231,251,144,252,18,253,168,253,57,254,148,254,7,255, +73,255,86,255,180,255,252,255,9,0,87,0,132,0,148,0,28,1,148,1,197,1,61,2,179,2,8,3,163,3,18,4, +35,4,82,4,121,4,119,4,141,4,142,4,88,4,25,4,223,3,161,3,77,3,16,3,16,3,243,2,174,2,138,2, +100,2,35,2,233,1,190,1,130,1,16,1,168,0,81,0,172,255,11,255,183,254,83,254,199,253,57,253,222,252,204,252, +175,252,160,252,201,252,248,252,64,253,104,253,75,253,80,253,88,253,77,253,111,253,130,253,126,253,106,253,94,253,194,253, +41,254,111,254,48,255,229,255,94,0,54,1,243,1,87,2,242,2,182,3,59,4,92,4,114,4,157,4,104,4,18,4, +234,3,164,3,117,3,111,3,74,3,41,3,10,3,222,2,185,2,132,2,56,2,202,1,110,1,69,1,221,0,101,0, +53,0,195,255,17,255,159,254,84,254,7,254,218,253,204,253,151,253,108,253,151,253,128,253,83,253,140,253,101,253,41,253, +107,253,58,253,219,252,236,252,216,252,232,252,50,253,84,253,177,253,29,254,125,254,22,255,128,255,232,255,120,0,190,0, +35,1,189,1,17,2,87,2,161,2,233,2,74,3,100,3,67,3,72,3,98,3,112,3,112,3,97,3,58,3,28,3, +28,3,218,2,117,2,101,2,46,2,184,1,146,1,114,1,40,1,250,0,188,0,112,0,45,0,220,255,148,255,39,255, +143,254,51,254,215,253,78,253,21,253,246,252,157,252,134,252,182,252,195,252,213,252,23,253,131,253,217,253,235,253,47,254, +169,254,208,254,231,254,34,255,83,255,142,255,147,255,132,255,184,255,213,255,4,0,109,0,143,0,224,0,115,1,142,1, +195,1,76,2,110,2,109,2,144,2,147,2,144,2,142,2,132,2,131,2,109,2,88,2,87,2,61,2,28,2,28,2, +19,2,233,1,172,1,76,1,252,0,217,0,115,0,1,0,247,255,190,255,78,255,52,255,23,255,238,254,244,254,208,254, +196,254,2,255,238,254,185,254,227,254,228,254,140,254,109,254,126,254,85,254,15,254,197,253,151,253,188,253,215,253,198,253, +220,253,20,254,93,254,162,254,236,254,114,255,202,255,252,255,154,0,30,1,123,1,19,2,77,2,111,2,225,2,247,2, +248,2,40,3,24,3,253,2,227,2,199,2,196,2,138,2,85,2,90,2,60,2,47,2,60,2,30,2,240,1,177,1, +141,1,131,1,42,1,201,0,152,0,80,0,4,0,166,255,43,255,255,254,8,255,211,254,156,254,152,254,136,254,117,254, +96,254,31,254,44,254,90,254,243,253,183,253,245,253,224,253,231,253,39,254,33,254,83,254,171,254,215,254,40,255,97,255, +137,255,208,255,228,255,250,255,29,0,49,0,98,0,116,0,154,0,248,0,7,1,52,1,155,1,186,1,19,2,140,2, +173,2,4,3,105,3,125,3,153,3,157,3,118,3,100,3,45,3,173,2,61,2,11,2,235,1,184,1,116,1,50,1, +251,0,180,0,124,0,91,0,11,0,220,255,216,255,102,255,33,255,83,255,10,255,150,254,135,254,86,254,1,254,211,253, +178,253,113,253,35,253,1,253,210,252,137,252,118,252,106,252,104,252,148,252,168,252,219,252,44,253,104,253,204,253,35,254, +119,254,9,255,135,255,11,0,162,0,16,1,156,1,12,2,77,2,170,2,207,2,249,2,81,3,84,3,113,3,203,3, +235,3,7,4,37,4,99,4,205,4,207,4,184,4,231,4,245,4,226,4,193,4,131,4,57,4,230,3,149,3,9,3, +112,2,36,2,159,1,235,0,124,0,3,0,142,255,34,255,157,254,56,254,168,253,4,253,171,252,45,252,177,251,122,251, +85,251,104,251,109,251,76,251,78,251,53,251,93,251,211,251,240,251,41,252,152,252,172,252,196,252,23,253,90,253,136,253, +215,253,58,254,86,254,169,254,93,255,166,255,38,0,21,1,121,1,249,1,202,2,51,3,186,3,83,4,167,4,24,5, +80,5,77,5,125,5,148,5,119,5,59,5,3,5,243,4,214,4,153,4,71,4,10,4,224,3,85,3,209,2,162,2, +30,2,124,1,26,1,186,0,93,0,222,255,118,255,73,255,231,254,154,254,104,254,30,254,5,254,178,253,77,253,49,253, +180,252,98,252,128,252,55,252,29,252,57,252,14,252,50,252,98,252,154,252,58,253,176,253,59,254,244,254,122,255,78,0, +11,1,108,1,18,2,139,2,209,2,51,3,67,3,51,3,21,3,234,2,31,3,79,3,85,3,101,3,90,3,128,3, +182,3,190,3,217,3,197,3,151,3,136,3,81,3,45,3,4,3,159,2,86,2,214,1,51,1,232,0,152,0,67,0, +0,0,175,255,142,255,95,255,18,255,228,254,166,254,139,254,105,254,18,254,7,254,219,253,140,253,167,253,115,253,30,253, +78,253,88,253,87,253,149,253,186,253,245,253,55,254,136,254,252,254,24,255,76,255,194,255,196,255,200,255,1,0,246,255, +34,0,111,0,124,0,203,0,57,1,118,1,221,1,87,2,184,2,57,3,173,3,245,3,84,4,152,4,133,4,120,4, +145,4,153,4,110,4,20,4,204,3,138,3,8,3,153,2,92,2,5,2,194,1,134,1,11,1,154,0,91,0,250,255, +109,255,25,255,231,254,81,254,191,253,171,253,122,253,27,253,254,252,224,252,187,252,216,252,231,252,204,252,231,252,37,253, +48,253,77,253,163,253,205,253,235,253,38,254,81,254,162,254,243,254,32,255,144,255,240,255,38,0,150,0,225,0,47,1, +167,1,208,1,39,2,167,2,214,2,83,3,179,3,138,3,194,3,13,4,22,4,78,4,61,4,25,4,50,4,225,3, +158,3,187,3,115,3,6,3,212,2,140,2,67,2,251,1,145,1,62,1,18,1,222,0,151,0,70,0,236,255,156,255, +73,255,212,254,118,254,60,254,208,253,97,253,40,253,221,252,115,252,72,252,111,252,112,252,69,252,119,252,171,252,147,252, +216,252,63,253,118,253,221,253,19,254,36,254,135,254,184,254,236,254,102,255,162,255,9,0,142,0,168,0,27,1,195,1, +251,1,93,2,200,2,221,2,249,2,9,3,34,3,78,3,55,3,41,3,41,3,2,3,239,2,189,2,145,2,163,2, +109,2,60,2,99,2,51,2,225,1,201,1,127,1,37,1,236,0,182,0,115,0,26,0,209,255,118,255,248,254,224,254, +234,254,181,254,217,254,22,255,225,254,216,254,19,255,29,255,14,255,235,254,218,254,7,255,8,255,232,254,255,254,14,255, +50,255,146,255,162,255,136,255,213,255,49,0,91,0,141,0,206,0,29,1,89,1,105,1,101,1,92,1,114,1,132,1, +108,1,127,1,127,1,60,1,81,1,106,1,68,1,120,1,172,1,179,1,246,1,239,1,183,1,209,1,172,1,78,1, +50,1,4,1,159,0,50,0,241,255,230,255,173,255,69,255,34,255,22,255,224,254,194,254,206,254,192,254,152,254,133,254, +132,254,129,254,108,254,97,254,120,254,111,254,105,254,136,254,109,254,137,254,247,254,0,255,42,255,139,255,108,255,146,255, +237,255,176,255,176,255,255,255,10,0,45,0,62,0,76,0,182,0,233,0,220,0,7,1,85,1,157,1,184,1,218,1, +35,2,62,2,71,2,76,2,59,2,91,2,99,2,55,2,57,2,37,2,230,1,200,1,163,1,118,1,84,1,35,1, +232,0,176,0,143,0,85,0,11,0,255,255,210,255,138,255,126,255,66,255,19,255,35,255,225,254,196,254,247,254,198,254, +169,254,194,254,150,254,162,254,205,254,177,254,203,254,255,254,4,255,66,255,146,255,169,255,216,255,27,0,71,0,141,0, +230,0,52,1,127,1,154,1,190,1,35,2,74,2,65,2,106,2,97,2,58,2,79,2,43,2,208,1,176,1,155,1, +110,1,67,1,25,1,243,0,190,0,148,0,153,0,146,0,112,0,89,0,48,0,252,255,237,255,202,255,120,255,68,255, +46,255,5,255,249,254,9,255,241,254,193,254,170,254,171,254,180,254,211,254,2,255,5,255,246,254,17,255,40,255,66,255, +115,255,103,255,107,255,214,255,32,0,47,0,93,0,132,0,147,0,176,0,207,0,210,0,193,0,204,0,226,0,213,0, +224,0,25,1,34,1,0,1,29,1,67,1,27,1,240,0,223,0,209,0,243,0,242,0,169,0,185,0,0,1,9,1, +18,1,2,1,191,0,161,0,153,0,117,0,93,0,98,0,79,0,9,0,214,255,200,255,178,255,157,255,121,255,92,255, +106,255,75,255,44,255,86,255,85,255,65,255,97,255,109,255,111,255,99,255,83,255,144,255,176,255,144,255,186,255,226,255, +182,255,184,255,255,255,35,0,39,0,48,0,46,0,80,0,146,0,118,0,86,0,146,0,143,0,113,0,158,0,154,0, +147,0,185,0,155,0,168,0,0,1,8,1,240,0,228,0,186,0,182,0,214,0,221,0,210,0,175,0,136,0,126,0, +119,0,104,0,72,0,24,0,20,0,31,0,202,255,119,255,156,255,166,255,106,255,123,255,149,255,104,255,69,255,52,255, +37,255,19,255,232,254,217,254,228,254,195,254,142,254,132,254,168,254,163,254,100,254,136,254,220,254,204,254,228,254,51,255, +44,255,30,255,47,255,65,255,135,255,204,255,240,255,12,0,29,0,99,0,166,0,146,0,165,0,200,0,192,0,246,0, +10,1,198,0,212,0,249,0,248,0,6,1,231,0,215,0,21,1,54,1,48,1,16,1,238,0,15,1,252,0,179,0, +189,0,157,0,58,0,33,0,2,0,186,255,143,255,101,255,54,255,13,255,0,255,12,255,220,254,182,254,222,254,225,254, +198,254,188,254,173,254,199,254,219,254,202,254,229,254,244,254,245,254,39,255,52,255,64,255,110,255,80,255,98,255,185,255, +153,255,149,255,241,255,235,255,234,255,58,0,74,0,105,0,168,0,161,0,188,0,8,1,32,1,63,1,108,1,100,1, +66,1,55,1,60,1,34,1,242,0,223,0,191,0,134,0,100,0,30,0,197,255,172,255,171,255,135,255,77,255,51,255, +70,255,53,255,16,255,24,255,30,255,24,255,239,254,158,254,156,254,177,254,123,254,98,254,70,254,10,254,47,254,76,254, +28,254,57,254,111,254,102,254,117,254,166,254,236,254,37,255,35,255,65,255,137,255,178,255,242,255,40,0,31,0,75,0, +159,0,182,0,188,0,223,0,22,1,58,1,46,1,54,1,97,1,101,1,82,1,95,1,117,1,78,1,6,1,5,1, +16,1,223,0,204,0,186,0,123,0,93,0,70,0,40,0,51,0,57,0,33,0,233,255,184,255,189,255,146,255,62,255, +33,255,212,254,123,254,141,254,135,254,85,254,95,254,115,254,114,254,131,254,181,254,250,254,35,255,50,255,80,255,130,255, +160,255,141,255,144,255,191,255,187,255,149,255,151,255,182,255,209,255,224,255,3,0,45,0,75,0,145,0,227,0,11,1, +28,1,39,1,70,1,91,1,72,1,74,1,46,1,9,1,53,1,48,1,6,1,36,1,18,1,233,0,211,0,151,0, +150,0,150,0,89,0,103,0,72,0,213,255,173,255,145,255,105,255,87,255,28,255,233,254,195,254,150,254,152,254,140,254, +97,254,103,254,119,254,96,254,79,254,114,254,139,254,122,254,148,254,150,254,102,254,140,254,191,254,176,254,179,254,207,254, +16,255,81,255,108,255,173,255,219,255,7,0,131,0,194,0,216,0,27,1,67,1,119,1,151,1,147,1,218,1,1,2, +255,1,21,2,217,1,204,1,22,2,235,1,188,1,209,1,170,1,136,1,143,1,129,1,79,1,8,1,217,0,166,0, +104,0,75,0,26,0,240,255,225,255,163,255,94,255,54,255,35,255,7,255,178,254,136,254,145,254,123,254,128,254,79,254, +233,253,17,254,79,254,48,254,29,254,16,254,35,254,84,254,91,254,122,254,171,254,198,254,246,254,40,255,99,255,151,255, +173,255,235,255,19,0,11,0,59,0,120,0,166,0,212,0,222,0,247,0,32,1,70,1,131,1,144,1,143,1,191,1, +218,1,245,1,254,1,213,1,219,1,230,1,210,1,242,1,237,1,150,1,115,1,131,1,74,1,224,0,186,0,165,0, +86,0,34,0,241,255,138,255,82,255,50,255,6,255,10,255,11,255,216,254,173,254,163,254,162,254,146,254,146,254,154,254, +128,254,119,254,112,254,64,254,61,254,89,254,78,254,80,254,107,254,111,254,101,254,144,254,244,254,40,255,48,255,86,255, +139,255,208,255,16,0,59,0,134,0,187,0,219,0,49,1,63,1,7,1,89,1,217,1,209,1,199,1,22,2,19,2, +209,1,229,1,222,1,157,1,177,1,200,1,172,1,156,1,112,1,79,1,87,1,89,1,91,1,35,1,238,0,11,1, +226,0,153,0,139,0,93,0,71,0,18,0,150,255,148,255,119,255,14,255,62,255,31,255,138,254,159,254,164,254,109,254, +160,254,147,254,115,254,193,254,226,254,252,254,60,255,41,255,15,255,58,255,101,255,134,255,156,255,185,255,238,255,246,255, +224,255,10,0,68,0,94,0,144,0,182,0,181,0,235,0,55,1,52,1,41,1,74,1,80,1,63,1,80,1,114,1, +134,1,137,1,108,1,67,1,63,1,70,1,59,1,41,1,1,1,209,0,156,0,88,0,71,0,70,0,253,255,200,255, +169,255,106,255,87,255,86,255,68,255,66,255,11,255,215,254,0,255,31,255,35,255,40,255,29,255,32,255,5,255,240,254, +50,255,57,255,18,255,62,255,73,255,84,255,166,255,159,255,118,255,184,255,225,255,191,255,190,255,241,255,34,0,76,0, +126,0,124,0,84,0,101,0,118,0,126,0,169,0,148,0,121,0,179,0,183,0,162,0,190,0,174,0,179,0,198,0, +126,0,109,0,149,0,101,0,77,0,101,0,58,0,16,0,12,0,2,0,20,0,33,0,254,255,233,255,242,255,242,255, +242,255,232,255,194,255,166,255,170,255,179,255,172,255,145,255,126,255,118,255,105,255,121,255,139,255,96,255,71,255,99,255, +105,255,109,255,140,255,157,255,149,255,144,255,192,255,232,255,194,255,177,255,195,255,188,255,216,255,223,255,168,255,171,255, +208,255,233,255,21,0,19,0,234,255,231,255,3,0,55,0,65,0,13,0,33,0,87,0,45,0,15,0,61,0,74,0, +39,0,24,0,25,0,42,0,76,0,61,0,37,0,79,0,79,0,25,0,37,0,48,0,26,0,43,0,35,0,8,0, +15,0,237,255,196,255,213,255,227,255,229,255,219,255,188,255,186,255,192,255,182,255,191,255,185,255,159,255,151,255,153,255, +172,255,189,255,169,255,157,255,160,255,158,255,179,255,198,255,190,255,192,255,207,255,215,255,215,255,224,255,1,0,28,0, +41,0,57,0,57,0,61,0,84,0,89,0,81,0,72,0,74,0,97,0,86,0,54,0,61,0,57,0,41,0,45,0, +27,0,23,0,24,0,223,255,200,255,229,255,199,255,168,255,183,255,166,255,138,255,121,255,82,255,78,255,86,255,27,255, +19,255,74,255,30,255,231,254,22,255,53,255,45,255,43,255,56,255,98,255,108,255,121,255,182,255,167,255,148,255,209,255, +207,255,213,255,31,0,37,0,48,0,67,0,6,0,16,0,85,0,74,0,70,0,103,0,87,0,59,0,89,0,120,0, +96,0,87,0,100,0,75,0,78,0,107,0,75,0,47,0,73,0,78,0,50,0,52,0,69,0,23,0,238,255,1,0, +227,255,179,255,165,255,117,255,93,255,89,255,60,255,88,255,81,255,5,255,4,255,15,255,12,255,49,255,50,255,41,255, +49,255,53,255,88,255,104,255,116,255,171,255,171,255,161,255,180,255,160,255,180,255,210,255,165,255,165,255,232,255,255,255, +234,255,246,255,50,0,50,0,36,0,113,0,151,0,142,0,192,0,208,0,192,0,207,0,191,0,191,0,225,0,207,0, +183,0,200,0,208,0,198,0,179,0,134,0,98,0,108,0,107,0,61,0,35,0,47,0,54,0,28,0,250,255,247,255, +243,255,208,255,180,255,174,255,174,255,149,255,131,255,167,255,142,255,60,255,62,255,63,255,44,255,67,255,21,255,232,254, +1,255,239,254,246,254,18,255,224,254,232,254,39,255,49,255,64,255,88,255,102,255,125,255,154,255,215,255,252,255,244,255, +21,0,54,0,53,0,76,0,116,0,151,0,189,0,239,0,33,1,40,1,27,1,36,1,85,1,140,1,120,1,71,1, +63,1,69,1,99,1,96,1,67,1,103,1,62,1,225,0,3,1,3,1,216,0,2,1,215,0,119,0,103,0,67,0, +8,0,203,255,144,255,122,255,53,255,237,254,234,254,196,254,147,254,122,254,80,254,72,254,59,254,46,254,100,254,112,254, +99,254,157,254,185,254,173,254,188,254,211,254,249,254,39,255,79,255,119,255,114,255,109,255,175,255,228,255,240,255,27,0, +76,0,114,0,171,0,200,0,205,0,245,0,14,1,35,1,105,1,125,1,120,1,170,1,154,1,110,1,161,1,188,1, +170,1,183,1,173,1,147,1,123,1,84,1,55,1,8,1,216,0,181,0,100,0,74,0,116,0,43,0,179,255,138,255, +101,255,61,255,45,255,27,255,7,255,242,254,225,254,233,254,250,254,222,254,156,254,160,254,208,254,199,254,187,254,183,254, +181,254,228,254,229,254,216,254,24,255,31,255,32,255,105,255,111,255,163,255,40,0,60,0,68,0,119,0,153,0,235,0, +18,1,1,1,31,1,39,1,56,1,100,1,91,1,117,1,145,1,113,1,129,1,121,1,66,1,64,1,68,1,78,1, +65,1,2,1,1,1,14,1,242,0,212,0,151,0,131,0,133,0,65,0,39,0,47,0,28,0,30,0,222,255,160,255, +181,255,138,255,72,255,55,255,41,255,60,255,54,255,47,255,91,255,58,255,24,255,51,255,49,255,97,255,134,255,92,255, +133,255,186,255,174,255,206,255,250,255,28,0,49,0,46,0,78,0,80,0,69,0,137,0,147,0,106,0,145,0,185,0, +193,0,216,0,236,0,233,0,218,0,252,0,46,1,43,1,77,1,128,1,89,1,34,1,32,1,46,1,41,1,11,1, +243,0,243,0,246,0,205,0,156,0,186,0,195,0,134,0,127,0,109,0,38,0,44,0,65,0,6,0,198,255,198,255, +233,255,222,255,195,255,194,255,153,255,119,255,123,255,108,255,147,255,180,255,117,255,85,255,81,255,69,255,110,255,122,255, +101,255,119,255,122,255,122,255,138,255,149,255,182,255,205,255,199,255,221,255,8,0,37,0,57,0,85,0,114,0,131,0, +132,0,101,0,112,0,192,0,204,0,189,0,218,0,190,0,197,0,248,0,194,0,193,0,6,1,224,0,210,0,248,0, +216,0,200,0,203,0,174,0,154,0,121,0,99,0,92,0,39,0,9,0,19,0,250,255,219,255,194,255,164,255,177,255, +185,255,145,255,151,255,195,255,170,255,129,255,143,255,152,255,125,255,111,255,128,255,157,255,160,255,146,255,151,255,151,255, +141,255,155,255,190,255,213,255,213,255,212,255,210,255,195,255,203,255,225,255,216,255,216,255,244,255,238,255,208,255,225,255, +4,0,9,0,40,0,69,0,21,0,32,0,121,0,93,0,51,0,106,0,115,0,108,0,135,0,104,0,68,0,58,0, +41,0,37,0,21,0,23,0,39,0,10,0,20,0,46,0,3,0,5,0,33,0,5,0,24,0,72,0,66,0,46,0, +38,0,37,0,33,0,35,0,41,0,8,0,253,255,15,0,231,255,198,255,204,255,202,255,220,255,206,255,173,255,205,255, +224,255,226,255,248,255,227,255,221,255,241,255,224,255,235,255,248,255,237,255,254,255,251,255,254,255,31,0,1,0,238,255, +19,0,16,0,2,0,2,0,252,255,5,0,17,0,18,0,15,0,35,0,66,0,49,0,51,0,86,0,54,0,33,0, +58,0,48,0,50,0,42,0,13,0,35,0,19,0,245,255,22,0,8,0,238,255,0,0,247,255,247,255,229,255,177,255, +185,255,190,255,171,255,193,255,189,255,167,255,181,255,196,255,199,255,177,255,166,255,187,255,193,255,209,255,216,255,202,255, +235,255,236,255,193,255,209,255,216,255,216,255,246,255,225,255,224,255,13,0,13,0,15,0,27,0,33,0,59,0,48,0, +40,0,69,0,57,0,58,0,86,0,62,0,40,0,40,0,38,0,48,0,19,0,231,255,238,255,242,255,228,255,234,255, +247,255,245,255,220,255,210,255,230,255,223,255,209,255,222,255,216,255,207,255,208,255,196,255,212,255,222,255,184,255,194,255, +223,255,197,255,215,255,244,255,203,255,201,255,226,255,211,255,216,255,222,255,214,255,230,255,226,255,230,255,2,0,233,255, +216,255,2,0,19,0,10,0,16,0,32,0,45,0,31,0,22,0,30,0,12,0,4,0,28,0,34,0,31,0,36,0, +19,0,5,0,34,0,59,0,34,0,14,0,34,0,28,0,0,0,15,0,37,0,31,0,37,0,38,0,11,0,10,0, +31,0,19,0,15,0,24,0,3,0,245,255,254,255,251,255,237,255,223,255,231,255,254,255,241,255,219,255,211,255,196,255, +206,255,237,255,236,255,230,255,240,255,236,255,223,255,238,255,3,0,252,255,2,0,13,0,251,255,6,0,16,0,1,0, +26,0,26,0,248,255,18,0,33,0,30,0,54,0,44,0,49,0,65,0,34,0,50,0,68,0,23,0,35,0,59,0, +25,0,18,0,26,0,16,0,6,0,243,255,239,255,236,255,222,255,232,255,230,255,208,255,217,255,232,255,225,255,217,255, +216,255,223,255,222,255,215,255,219,255,225,255,220,255,222,255,227,255,213,255,206,255,210,255,197,255,212,255,240,255,225,255, +226,255,248,255,252,255,14,0,11,0,248,255,16,0,12,0,246,255,29,0,54,0,36,0,41,0,65,0,70,0,58,0, +70,0,83,0,72,0,76,0,68,0,56,0,78,0,62,0,41,0,67,0,63,0,54,0,51,0,22,0,42,0,58,0, +19,0,16,0,19,0,4,0,4,0,253,255,8,0,8,0,238,255,4,0,250,255,209,255,232,255,225,255,194,255,214,255, +208,255,202,255,215,255,190,255,190,255,206,255,197,255,207,255,216,255,212,255,222,255,213,255,209,255,229,255,229,255,235,255, +252,255,0,0,12,0,23,0,17,0,23,0,43,0,54,0,65,0,71,0,55,0,46,0,58,0,61,0,46,0,35,0, +40,0,52,0,44,0,38,0,48,0,49,0,60,0,68,0,45,0,46,0,62,0,48,0,43,0,37,0,18,0,29,0, +32,0,255,255,240,255,240,255,231,255,234,255,238,255,217,255,204,255,227,255,238,255,221,255,217,255,216,255,211,255,222,255, +217,255,206,255,220,255,221,255,217,255,226,255,224,255,232,255,236,255,224,255,243,255,2,0,239,255,246,255,3,0,255,255, +22,0,39,0,17,0,14,0,41,0,47,0,39,0,57,0,74,0,66,0,69,0,72,0,62,0,67,0,64,0,56,0, +65,0,58,0,40,0,41,0,43,0,46,0,44,0,35,0,37,0,40,0,34,0,20,0,2,0,21,0,30,0,251,255, +249,255,4,0,243,255,254,255,12,0,10,0,19,0,3,0,244,255,1,0,252,255,245,255,251,255,242,255,239,255,250,255, +244,255,229,255,235,255,246,255,243,255,254,255,9,0,241,255,244,255,17,0,14,0,14,0,28,0,29,0,31,0,16,0, +2,0,24,0,29,0,16,0,28,0,36,0,28,0,23,0,21,0,28,0,37,0,34,0,26,0,27,0,32,0,31,0, +27,0,18,0,23,0,39,0,28,0,15,0,26,0,21,0,13,0,18,0,10,0,1,0,253,255,4,0,14,0,249,255, +251,255,16,0,254,255,249,255,5,0,251,255,250,255,243,255,246,255,17,0,0,0,244,255,9,0,252,255,246,255,3,0, +249,255,252,255,6,0,254,255,246,255,245,255,248,255,246,255,249,255,4,0,240,255,230,255,254,255,254,255,3,0,14,0, +247,255,249,255,23,0,18,0,1,0,7,0,22,0,21,0,13,0,22,0,25,0,15,0,14,0,24,0,29,0,16,0, +7,0,12,0,4,0,13,0,26,0,3,0,0,0,13,0,7,0,14,0,11,0,3,0,30,0,32,0,13,0,22,0, +31,0,28,0,18,0,16,0,30,0,20,0,9,0,20,0,15,0,7,0,4,0,252,255,255,255,2,0,5,0,1,0, +242,255,251,255,1,0,239,255,242,255,252,255,255,255,2,0,251,255,4,0,13,0,251,255,251,255,5,0,249,255,251,255, +7,0,249,255,235,255,252,255,7,0,245,255,244,255,254,255,250,255,11,0,9,0,237,255,249,255,12,0,9,0,7,0, +252,255,1,0,12,0,249,255,249,255,8,0,5,0,12,0,14,0,6,0,3,0,6,0,14,0,5,0,251,255,8,0, +10,0,5,0,12,0,14,0,20,0,14,0,4,0,19,0,16,0,7,0,19,0,5,0,246,255,1,0,6,0,17,0, +19,0,5,0,12,0,16,0,6,0,7,0,11,0,13,0,5,0,251,255,255,255,1,0,2,0,3,0,245,255,245,255, +255,255,243,255,238,255,243,255,239,255,242,255,242,255,233,255,235,255,239,255,236,255,236,255,230,255,229,255,239,255,240,255, +232,255,233,255,240,255,238,255,240,255,247,255,247,255,247,255,254,255,3,0,254,255,250,255,2,0,9,0,1,0,3,0, +19,0,15,0,7,0,21,0,20,0,5,0,8,0,13,0,15,0,16,0,11,0,17,0,21,0,9,0,13,0,19,0, +13,0,20,0,17,0,2,0,8,0,11,0,3,0,4,0,2,0,255,255,0,0,254,255,253,255,246,255,245,255,251,255, +246,255,240,255,242,255,240,255,239,255,236,255,231,255,236,255,242,255,242,255,231,255,226,255,238,255,242,255,244,255,251,255, +244,255,235,255,236,255,250,255,2,0,242,255,243,255,253,255,237,255,247,255,7,0,244,255,248,255,2,0,251,255,1,0, +253,255,252,255,14,0,8,0,6,0,19,0,14,0,21,0,21,0,8,0,26,0,32,0,17,0,23,0,21,0,17,0, +25,0,17,0,15,0,16,0,5,0,7,0,9,0,2,0,11,0,9,0,251,255,255,255,254,255,247,255,0,0,255,255, +242,255,243,255,249,255,250,255,255,255,0,0,0,0,0,0,254,255,1,0,4,0,3,0,7,0,6,0,254,255,251,255, +5,0,5,0,246,255,248,255,6,0,5,0,6,0,8,0,3,0,6,0,0,0,250,255,14,0,12,0,2,0,13,0, +8,0,4,0,11,0,0,0,8,0,15,0,252,255,4,0,16,0,6,0,10,0,10,0,2,0,7,0,3,0,3,0, +10,0,3,0,3,0,9,0,5,0,9,0,15,0,10,0,9,0,14,0,9,0,5,0,7,0,3,0,2,0,6,0, +1,0,254,255,1,0,253,255,254,255,255,255,252,255,253,255,244,255,241,255,253,255,249,255,246,255,248,255,241,255,249,255, +253,255,241,255,250,255,251,255,236,255,246,255,0,0,254,255,1,0,0,0,4,0,5,0,249,255,250,255,6,0,5,0, +0,0,2,0,10,0,14,0,10,0,13,0,14,0,6,0,8,0,14,0,8,0,8,0,11,0,8,0,9,0,10,0, +11,0,13,0,9,0,7,0,6,0,2,0,9,0,11,0,3,0,7,0,5,0,253,255,6,0,7,0,2,0,5,0, +4,0,4,0,2,0,0,0,9,0,2,0,246,255,255,255,255,255,254,255,1,0,248,255,255,255,4,0,245,255,250,255, +254,255,244,255,252,255,250,255,247,255,2,0,254,255,252,255,3,0,253,255,2,0,9,0,2,0,1,0,5,0,8,0, +9,0,8,0,11,0,6,0,0,0,7,0,10,0,8,0,6,0,4,0,7,0,10,0,8,0,9,0,3,0,6,0, +14,0,6,0,1,0,9,0,9,0,7,0,4,0,3,0,5,0,2,0,2,0,6,0,1,0,2,0,5,0,1,0, +2,0,3,0,255,255,0,0,4,0,1,0,254,255,0,0,1,0,253,255,254,255,3,0,0,0,254,255,1,0,2,0, +1,0,255,255,254,255,1,0,1,0,1,0,2,0,0,0,0,0,1,0,1,0,2,0,1,0,1,0,2,0,255,255, +255,255,2,0,254,255,255,255,2,0,253,255,1,0,4,0,0,0,4,0,6,0,3,0,7,0,3,0,1,0,7,0, +3,0,3,0,9,0,4,0,3,0,3,0,2,0,6,0,6,0,5,0,7,0,2,0,1,0,3,0,1,0,4,0, +3,0,1,0,3,0,253,255,252,255,4,0,1,0,1,0,2,0,255,255,0,0,1,0,1,0,1,0,255,255,255,255, +254,255,254,255,255,255,253,255,0,0,0,0,253,255,1,0,1,0,253,255,0,0,254,255,254,255,4,0,255,255,1,0, +6,0,2,0,5,0,5,0,255,255,6,0,7,0,3,0,6,0,4,0,2,0,5,0,2,0,2,0,5,0,5,0, +3,0,3,0,5,0,5,0,2,0,3,0,3,0,2,0,2,0,0,0,0,0,255,255,255,255,255,255,252,255,251,255, +255,255,254,255,251,255,251,255,249,255,249,255,250,255,251,255,252,255,250,255,250,255,253,255,253,255,253,255,0,0,1,0, +254,255,252,255,255,255,0,0,252,255,253,255,254,255,252,255,255,255,255,255,254,255,3,0,2,0,255,255,0,0,1,0, +2,0,6,0,4,0,1,0,4,0,6,0,4,0,5,0,5,0,2,0,2,0,4,0,5,0,4,0,2,0,3,0, +3,0,1,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0,253,255,252,255,253,255,253,255,253,255,252,255,253,255, +253,255,253,255,254,255,253,255,252,255,254,255,253,255,252,255,252,255,251,255,252,255,253,255,253,255,254,255,253,255,252,255, +253,255,253,255,255,255,254,255,252,255,0,0,2,0,0,0,0,0,0,0,0,0,3,0,2,0,1,0,1,0,0,0, +2,0,2,0,2,0,2,0,1,0,2,0,1,0,0,0,1,0,3,0,3,0,2,0,0,0,1,0,2,0,255,255, +0,0,1,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,254,255,252,255,254,255,254,255,253,255,254,255,253,255, +253,255,254,255,254,255,254,255,253,255,254,255,0,0,253,255,253,255,255,255,254,255,254,255,254,255,253,255,254,255,254,255, +255,255,0,0,253,255,255,255,1,0,255,255,0,0,1,0,254,255,0,0,2,0,0,0,0,0,0,0,255,255,1,0, +2,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,2,0, +1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,0,0, +255,255,254,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,254,255, +254,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,1,0,0,0,1,0,1,0,255,255,0,0,3,0,1,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,1,0,1,0,255,255,1,0,0,0,254,255,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,0,0,2,0, +0,0,0,0,0,0,0,0,2,0,0,0,0,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,2,0, +0,0,0,0,1,0,255,255,0,0,2,0,0,0,0,0,1,0,0,0,1,0,2,0,0,0,2,0,2,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,1,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,2,0,1,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,1,0,255,255, +2,0,2,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0, +0,0,1,0,1,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,0,0,1,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,0,0,0,0,1,0, +0,0,1,0,2,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,0,0,1,0, +2,0,0,0,1,0,1,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,2,0,1,0, +255,255,255,255,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,2,0,1,0,0,0,1,0,2,0, +1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,3,0,2,0,1,0,3,0, +2,0,0,0,0,0,2,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,0,0,2,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,1,0,0,0, +255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,254,255,254,255,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,254,255,255,255,0,0,255,255,254,255,254,255,255,255,0,0, +255,255,254,255,0,0,255,255,255,255,0,0,254,255,254,255,0,0,255,255,255,255,1,0,255,255,254,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,1,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,254,255,0,0, +0,0,255,255,1,0,0,0,255,255,0,0,0,0,254,255,255,255,1,0,0,0,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,254,255,255,255,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,0,0,1,0,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,0,0,255,255,255,255,1,0,0,0,255,255,0,0,254,255,255,255,1,0,255,255,255,255,255,255,254,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/chicken3.pcm b/src/client/sound/data/chicken3.pcm new file mode 100755 index 0000000..6e69579 --- /dev/null +++ b/src/client/sound/data/chicken3.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_chicken3[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +0,0,255,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,3,0,5,0,5,0,4,0,3,0,3,0,1,0, +2,0,3,0,1,0,1,0,2,0,2,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,253,255,253,255, +254,255,252,255,250,255,249,255,248,255,249,255,250,255,250,255,252,255,254,255,1,0,2,0,2,0,3,0,2,0,1,0, +2,0,2,0,0,0,0,0,2,0,2,0,3,0,4,0,4,0,4,0,2,0,1,0,0,0,253,255,253,255,253,255, +253,255,255,255,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,2,0,2,0,0,0,1,0,2,0, +2,0,1,0,0,0,255,255,253,255,251,255,252,255,253,255,252,255,252,255,254,255,1,0,1,0,1,0,3,0,3,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,255,255,254,255,0,0,0,0,255,255,255,255,255,255,255,255,1,0,1,0,1,0,1,0,1,0, +0,0,1,0,2,0,1,0,2,0,3,0,3,0,4,0,2,0,0,0,1,0,255,255,253,255,253,255,250,255,248,255, +250,255,252,255,253,255,255,255,0,0,1,0,2,0,2,0,2,0,3,0,1,0,0,0,255,255,255,255,255,255,2,0, +6,0,7,0,8,0,8,0,5,0,4,0,3,0,255,255,253,255,253,255,252,255,253,255,254,255,0,0,1,0,1,0, +0,0,255,255,254,255,252,255,250,255,249,255,249,255,250,255,252,255,254,255,255,255,1,0,1,0,1,0,0,0,0,0, +255,255,253,255,251,255,254,255,254,255,254,255,0,0,2,0,4,0,7,0,5,0,4,0,5,0,3,0,2,0,2,0, +0,0,254,255,254,255,255,255,255,255,255,255,255,255,1,0,1,0,255,255,255,255,1,0,2,0,3,0,4,0,6,0, +6,0,8,0,8,0,7,0,6,0,4,0,2,0,0,0,254,255,254,255,255,255,0,0,3,0,3,0,3,0,4,0, +4,0,0,0,255,255,255,255,253,255,251,255,251,255,252,255,252,255,253,255,0,0,0,0,0,0,0,0,254,255,252,255, +252,255,252,255,253,255,253,255,253,255,255,255,0,0,2,0,3,0,3,0,4,0,5,0,4,0,3,0,1,0,1,0, +1,0,0,0,0,0,2,0,2,0,3,0,5,0,5,0,4,0,2,0,3,0,2,0,1,0,0,0,255,255,0,0, +0,0,254,255,253,255,254,255,253,255,253,255,253,255,251,255,252,255,255,255,2,0,4,0,6,0,9,0,9,0,8,0, +7,0,5,0,1,0,1,0,0,0,253,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,1,0,3,0,4,0, +4,0,4,0,5,0,6,0,6,0,6,0,7,0,6,0,5,0,5,0,4,0,5,0,4,0,3,0,2,0,1,0, +1,0,2,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,1,0,3,0,3,0,2,0, +2,0,3,0,2,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,3,0,4,0,5,0,3,0,3,0,5,0, +4,0,5,0,6,0,5,0,6,0,6,0,5,0,4,0,4,0,3,0,2,0,0,0,255,255,254,255,253,255,252,255, +253,255,254,255,255,255,2,0,4,0,3,0,2,0,4,0,2,0,254,255,254,255,255,255,254,255,253,255,252,255,253,255, +253,255,252,255,254,255,255,255,254,255,255,255,1,0,1,0,1,0,1,0,3,0,5,0,5,0,5,0,5,0,5,0, +5,0,4,0,4,0,4,0,3,0,2,0,0,0,0,0,2,0,0,0,255,255,1,0,1,0,2,0,2,0,1,0, +1,0,2,0,1,0,2,0,1,0,255,255,254,255,253,255,251,255,250,255,250,255,250,255,250,255,251,255,253,255,0,0, +2,0,2,0,2,0,3,0,2,0,0,0,255,255,253,255,254,255,2,0,5,0,7,0,8,0,9,0,12,0,11,0, +9,0,7,0,5,0,3,0,1,0,0,0,0,0,2,0,3,0,6,0,7,0,7,0,6,0,4,0,2,0,255,255, +253,255,252,255,251,255,250,255,249,255,249,255,251,255,254,255,0,0,2,0,2,0,1,0,2,0,1,0,255,255,0,0, +0,0,253,255,253,255,254,255,254,255,254,255,0,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,6,0, +7,0,7,0,8,0,7,0,6,0,4,0,3,0,2,0,255,255,253,255,254,255,254,255,255,255,1,0,6,0,10,0, +11,0,11,0,12,0,9,0,4,0,2,0,255,255,250,255,247,255,246,255,246,255,246,255,249,255,253,255,0,0,3,0, +4,0,3,0,0,0,254,255,252,255,250,255,250,255,253,255,254,255,0,0,4,0,7,0,7,0,7,0,7,0,4,0, +1,0,254,255,255,255,0,0,255,255,2,0,5,0,7,0,10,0,10,0,8,0,8,0,7,0,5,0,3,0,0,0, +253,255,253,255,0,0,4,0,5,0,5,0,7,0,7,0,5,0,3,0,0,0,253,255,251,255,251,255,251,255,251,255, +253,255,255,255,1,0,5,0,9,0,10,0,10,0,9,0,8,0,7,0,3,0,2,0,1,0,255,255,254,255,0,0, +255,255,253,255,253,255,253,255,251,255,251,255,252,255,251,255,251,255,253,255,253,255,254,255,255,255,252,255,254,255,0,0, +252,255,250,255,250,255,249,255,248,255,246,255,244,255,246,255,248,255,247,255,248,255,250,255,250,255,248,255,246,255,245,255, +242,255,240,255,242,255,244,255,245,255,246,255,250,255,252,255,254,255,255,255,255,255,0,0,0,0,0,0,3,0,5,0, +3,0,7,0,12,0,11,0,9,0,9,0,6,0,4,0,2,0,0,0,255,255,0,0,1,0,3,0,5,0,6,0, +7,0,6,0,5,0,1,0,253,255,248,255,242,255,241,255,242,255,242,255,244,255,250,255,255,255,3,0,7,0,11,0, +15,0,14,0,11,0,10,0,6,0,0,0,255,255,255,255,253,255,255,255,3,0,4,0,5,0,5,0,5,0,5,0, +4,0,2,0,1,0,0,0,255,255,0,0,0,0,0,0,4,0,6,0,4,0,3,0,3,0,2,0,254,255,252,255, +0,0,4,0,6,0,11,0,14,0,14,0,14,0,11,0,8,0,8,0,4,0,255,255,254,255,251,255,249,255,253,255, +0,0,1,0,4,0,6,0,4,0,2,0,0,0,249,255,244,255,245,255,246,255,247,255,250,255,1,0,9,0,16,0, +21,0,25,0,27,0,27,0,25,0,23,0,24,0,24,0,26,0,32,0,35,0,37,0,37,0,31,0,25,0,22,0, +16,0,11,0,8,0,4,0,4,0,6,0,9,0,12,0,13,0,14,0,14,0,8,0,5,0,6,0,5,0,5,0, +9,0,12,0,14,0,14,0,10,0,6,0,1,0,251,255,246,255,242,255,238,255,234,255,233,255,236,255,243,255,249,255, +252,255,253,255,251,255,249,255,246,255,242,255,241,255,242,255,243,255,245,255,253,255,1,0,3,0,2,0,253,255,249,255, +244,255,235,255,232,255,237,255,238,255,241,255,250,255,5,0,15,0,20,0,22,0,21,0,15,0,7,0,253,255,240,255, +231,255,227,255,225,255,226,255,226,255,226,255,231,255,235,255,238,255,241,255,241,255,238,255,241,255,244,255,244,255,244,255, +244,255,245,255,247,255,247,255,244,255,245,255,246,255,242,255,239,255,241,255,245,255,248,255,247,255,249,255,2,0,8,0, +12,0,16,0,19,0,19,0,16,0,12,0,6,0,1,0,255,255,254,255,253,255,0,0,2,0,6,0,21,0,39,0, +51,0,66,0,80,0,80,0,75,0,67,0,55,0,40,0,24,0,9,0,255,255,246,255,241,255,243,255,248,255,250,255, +254,255,5,0,10,0,11,0,15,0,19,0,22,0,27,0,36,0,39,0,42,0,51,0,54,0,48,0,45,0,43,0, +35,0,32,0,26,0,17,0,16,0,14,0,6,0,7,0,9,0,3,0,3,0,6,0,2,0,252,255,246,255,238,255, +231,255,225,255,222,255,218,255,215,255,215,255,217,255,223,255,230,255,233,255,237,255,245,255,248,255,249,255,251,255,251,255, +253,255,1,0,0,0,255,255,2,0,0,0,249,255,245,255,242,255,231,255,221,255,215,255,208,255,201,255,204,255,213,255, +225,255,243,255,6,0,18,0,25,0,33,0,36,0,34,0,31,0,18,0,4,0,252,255,244,255,238,255,242,255,249,255, +4,0,16,0,21,0,22,0,21,0,15,0,7,0,1,0,255,255,254,255,250,255,252,255,6,0,15,0,21,0,19,0, +8,0,255,255,240,255,214,255,190,255,173,255,156,255,150,255,157,255,164,255,174,255,189,255,202,255,219,255,241,255,252,255, +250,255,249,255,249,255,241,255,228,255,218,255,211,255,205,255,205,255,211,255,223,255,244,255,12,0,31,0,45,0,53,0, +56,0,55,0,44,0,27,0,13,0,0,0,241,255,232,255,224,255,206,255,184,255,164,255,138,255,109,255,87,255,66,255, +54,255,59,255,69,255,81,255,94,255,96,255,94,255,87,255,66,255,42,255,16,255,248,254,240,254,246,254,9,255,41,255, +72,255,109,255,147,255,166,255,181,255,190,255,185,255,181,255,177,255,176,255,186,255,194,255,207,255,236,255,8,0,34,0, +65,0,90,0,100,0,101,0,100,0,100,0,101,0,119,0,147,0,168,0,204,0,251,0,36,1,80,1,112,1,117,1, +122,1,127,1,125,1,124,1,114,1,103,1,106,1,104,1,91,1,71,1,41,1,5,1,217,0,158,0,103,0,57,0, +5,0,209,255,177,255,166,255,157,255,144,255,128,255,109,255,91,255,70,255,42,255,24,255,17,255,13,255,35,255,84,255, +143,255,212,255,26,0,88,0,148,0,199,0,232,0,8,1,36,1,59,1,96,1,147,1,207,1,18,2,84,2,134,2, +166,2,188,2,199,2,191,2,167,2,136,2,111,2,95,2,71,2,36,2,249,1,193,1,128,1,61,1,240,0,164,0, +93,0,17,0,203,255,145,255,90,255,31,255,220,254,161,254,117,254,75,254,36,254,2,254,233,253,223,253,215,253,205,253, +203,253,198,253,192,253,197,253,212,253,242,253,33,254,87,254,141,254,188,254,231,254,11,255,29,255,37,255,42,255,51,255, +78,255,124,255,193,255,29,0,126,0,215,0,38,1,99,1,140,1,151,1,133,1,98,1,55,1,6,1,216,0,175,0, +139,0,116,0,105,0,104,0,110,0,113,0,103,0,85,0,57,0,19,0,236,255,189,255,131,255,79,255,34,255,253,254, +224,254,189,254,155,254,139,254,133,254,137,254,158,254,186,254,214,254,242,254,10,255,17,255,4,255,232,254,188,254,147,254, +122,254,105,254,104,254,126,254,157,254,193,254,235,254,16,255,49,255,74,255,88,255,94,255,93,255,80,255,40,255,231,254, +165,254,100,254,45,254,15,254,9,254,35,254,85,254,129,254,158,254,153,254,76,254,197,253,35,253,121,252,240,251,183,251, +231,251,124,252,106,253,162,254,243,255,26,1,235,1,93,2,103,2,13,2,125,1,235,0,112,0,49,0,87,0,232,0, +204,1,214,2,211,3,160,4,41,5,78,5,4,5,98,4,126,3,107,2,88,1,99,0,145,255,234,254,105,254,253,253, +163,253,96,253,52,253,24,253,13,253,43,253,119,253,223,253,84,254,203,254,56,255,137,255,172,255,160,255,108,255,22,255, +182,254,102,254,66,254,95,254,189,254,90,255,36,0,244,0,197,1,130,2,1,3,64,3,70,3,26,3,213,2,149,2, +118,2,135,2,190,2,49,3,218,3,141,4,44,5,158,5,209,5,203,5,133,5,9,5,114,4,213,3,81,3,242,2, +190,2,196,2,240,2,26,3,50,3,38,3,241,2,131,2,218,1,24,1,72,0,121,255,203,254,81,254,24,254,23,254, +50,254,102,254,162,254,206,254,236,254,238,254,214,254,187,254,166,254,154,254,136,254,110,254,90,254,58,254,19,254,254,253, +242,253,251,253,51,254,151,254,61,255,27,0,251,0,189,1,76,2,140,2,114,2,3,2,81,1,114,0,146,255,216,254, +97,254,78,254,141,254,0,255,171,255,100,0,251,0,91,1,99,1,36,1,187,0,33,0,117,255,232,254,127,254,70,254, +62,254,107,254,222,254,134,255,71,0,12,1,189,1,80,2,194,2,2,3,7,3,215,2,122,2,246,1,108,1,254,0, +187,0,176,0,240,0,129,1,78,2,52,3,21,4,210,4,73,5,104,5,36,5,127,4,132,3,66,2,227,0,151,255, +133,254,188,253,57,253,254,252,249,252,12,253,32,253,15,253,206,252,93,252,174,251,219,250,254,249,36,249,104,248,184,247, +40,247,243,246,5,247,80,247,221,247,144,248,113,249,105,250,71,251,29,252,226,252,116,253,223,253,37,254,95,254,149,254, +169,254,180,254,208,254,0,255,88,255,218,255,131,0,76,1,33,2,0,3,221,3,158,4,43,5,109,5,118,5,104,5, +61,5,0,5,197,4,148,4,114,4,101,4,111,4,137,4,161,4,176,4,179,4,156,4,98,4,249,3,72,3,56,2, +240,0,148,255,35,254,187,252,120,251,106,250,178,249,75,249,35,249,57,249,104,249,139,249,137,249,77,249,218,248,28,248, +30,247,20,246,19,245,80,244,4,244,35,244,166,244,115,245,75,246,1,247,76,247,3,247,50,246,242,244,172,243,225,242, +224,242,227,243,231,245,196,248,79,252,0,0,76,3,233,5,147,7,62,8,29,8,125,7,194,6,71,6,80,6,6,7, +109,8,105,10,184,12,3,15,0,17,120,18,70,19,82,19,161,18,77,17,101,15,18,13,136,10,247,7,139,5,88,3, +106,1,218,255,186,254,9,254,170,253,128,253,141,253,200,253,24,254,91,254,112,254,85,254,245,253,49,253,49,252,23,251, +10,250,72,249,226,248,254,248,191,249,247,250,141,252,90,254,5,0,111,1,114,2,235,2,237,2,113,2,159,1,211,0, +63,0,9,0,83,0,26,1,88,2,243,3,194,5,140,7,19,9,54,10,220,10,250,10,155,10,204,9,193,8,180,7, +181,6,247,5,173,5,186,5,250,5,95,6,199,6,242,6,191,6,58,6,121,5,138,4,121,3,107,2,150,1,250,0, +137,0,57,0,244,255,189,255,149,255,90,255,13,255,184,254,95,254,18,254,195,253,103,253,246,252,104,252,216,251,67,251, +165,250,43,250,214,249,156,249,123,249,86,249,52,249,7,249,157,248,17,248,116,247,200,246,55,246,209,245,159,245,171,245, +237,245,132,246,112,247,132,248,187,249,16,251,111,252,187,253,210,254,172,255,67,0,136,0,153,0,164,0,220,0,103,1, +78,2,157,3,86,5,86,7,94,9,46,11,135,12,62,13,69,13,165,12,111,11,223,9,43,8,104,6,203,4,146,3, +216,2,150,2,173,2,11,3,149,3,14,4,71,4,18,4,69,3,223,1,242,255,184,253,106,251,47,249,83,247,247,245, +48,245,35,245,163,245,113,246,114,247,83,248,237,248,66,249,37,249,151,248,179,247,143,246,102,245,106,244,195,243,131,243, +161,243,56,244,89,245,220,246,168,248,155,250,138,252,75,254,164,255,130,0,228,0,189,0,21,0,30,255,47,254,155,253, +135,253,252,253,224,254,1,0,35,1,237,1,21,2,126,1,54,0,123,254,180,252,101,251,241,250,104,251,196,252,237,254, +161,1,110,4,210,6,136,8,97,9,69,9,115,8,55,7,205,5,140,4,168,3,71,3,133,3,62,4,68,5,76,6, +254,6,65,7,252,6,33,6,205,4,22,3,51,1,84,255,127,253,223,251,116,250,2,249,138,247,22,246,180,244,148,243, +204,242,124,242,201,242,179,243,18,245,158,246,14,248,6,249,45,249,139,248,96,247,243,245,162,244,208,243,210,243,226,244, +4,247,255,249,105,253,194,0,164,3,201,5,13,7,126,7,83,7,226,6,132,6,162,6,132,7,61,9,200,11,231,14, +72,18,161,21,143,24,197,26,33,28,131,28,9,28,241,26,108,25,189,23,10,22,83,20,149,18,207,16,26,15,108,13, +180,11,20,10,136,8,9,7,182,5,98,4,226,2,37,1,10,255,164,252,7,250,66,247,170,244,122,242,216,240,254,239, +232,239,114,240,126,241,204,242,14,244,17,245,196,245,29,246,8,246,156,245,12,245,146,244,116,244,215,244,205,245,84,247, +72,249,137,251,243,253,82,0,109,2,23,4,83,5,58,6,200,6,252,6,241,6,200,6,150,6,105,6,91,6,108,6, +152,6,230,6,61,7,152,7,252,7,75,8,132,8,170,8,166,8,135,8,85,8,14,8,184,7,63,7,170,6,22,6, +146,5,53,5,238,4,160,4,85,4,232,3,61,3,72,2,226,0,31,255,43,253,27,251,45,249,143,247,74,246,123,245, +37,245,47,245,109,245,160,245,141,245,1,245,238,243,100,242,122,240,106,238,127,236,253,234,35,234,3,234,137,234,130,235, +129,236,28,237,35,237,151,236,157,235,135,234,225,233,50,234,191,235,153,238,163,242,136,247,167,252,78,1,47,5,33,8, +231,9,146,10,123,10,10,10,172,9,181,9,104,10,208,11,208,13,61,16,184,18,246,20,211,22,2,24,89,24,232,23, +196,22,40,21,45,19,214,16,101,14,248,11,132,9,30,7,210,4,184,2,214,0,41,255,228,253,50,253,11,253,69,253, +158,253,244,253,26,254,172,253,109,252,116,250,252,247,61,245,124,242,54,240,202,238,77,238,189,238,5,240,241,241,39,244, +49,246,183,247,142,248,185,248,105,248,205,247,47,247,236,246,55,247,18,248,115,249,93,251,164,253,228,255,234,1,169,3, +6,5,252,5,131,6,172,6,168,6,147,6,147,6,189,6,10,7,126,7,253,7,99,8,191,8,251,8,241,8,167,8, +65,8,254,7,239,7,14,8,120,8,34,9,232,9,169,10,55,11,153,11,198,11,134,11,242,10,59,10,116,9,199,8, +71,8,235,7,173,7,128,7,67,7,201,6,241,5,175,4,21,3,85,1,149,255,233,253,111,252,40,251,27,250,70,249, +116,248,113,247,41,246,149,244,196,242,211,240,5,239,164,237,211,236,159,236,254,236,227,237,58,239,196,240,61,242,125,243, +117,244,63,245,244,245,205,246,12,248,190,249,3,252,0,255,144,2,109,6,44,10,130,13,101,16,162,18,12,20,188,20, +197,20,86,20,167,19,235,18,96,18,19,18,243,17,0,18,23,18,27,18,10,18,208,17,95,17,180,16,214,15,203,14, +121,13,215,11,227,9,135,7,202,4,208,1,213,254,20,252,165,249,160,247,43,246,96,245,44,245,61,245,75,245,53,245, +205,244,241,243,153,242,197,240,153,238,73,236,37,234,138,232,179,231,209,231,239,232,243,234,165,237,170,240,165,243,60,246, +27,248,50,249,135,249,70,249,216,248,130,248,105,248,179,248,105,249,137,250,220,251,14,253,15,254,211,254,86,255,200,255, +82,0,12,1,250,1,15,3,74,4,129,5,123,6,29,7,70,7,228,6,17,6,248,4,224,3,13,3,178,2,248,2, +226,3,93,5,53,7,11,9,132,10,85,11,84,11,129,10,244,8,229,6,160,4,121,2,211,0,227,255,196,255,118,0, +185,1,64,3,198,4,240,5,108,6,1,6,170,4,132,2,169,255,97,252,250,248,160,245,124,242,148,239,231,236,139,234, +152,232,24,231,3,230,108,229,134,229,52,230,53,231,101,232,158,233,181,234,116,235,203,235,7,236,107,236,40,237,144,238, +247,240,162,244,141,249,106,255,240,5,189,12,69,19,8,25,143,29,156,32,50,34,113,34,164,33,83,32,18,31,79,30, +63,30,243,30,73,32,234,33,119,35,140,36,212,36,32,36,92,34,172,31,72,28,78,24,233,19,76,15,168,10,48,6, +232,1,218,253,48,250,23,247,163,244,187,242,62,241,35,240,86,239,153,238,160,237,88,236,210,234,6,233,2,231,247,228, +36,227,218,225,83,225,198,225,105,227,48,230,238,233,103,238,36,243,177,247,158,251,147,254,141,0,171,1,20,2,22,2, +15,2,90,2,28,3,84,4,247,5,221,7,225,9,226,11,181,13,78,15,142,16,79,17,182,17,224,17,194,17,98,17, +208,16,33,16,102,15,154,14,204,13,254,12,60,12,165,11,50,11,226,10,187,10,165,10,125,10,6,10,14,9,130,7, +86,5,145,2,86,255,240,251,200,248,30,246,19,244,180,242,202,241,254,240,5,240,175,238,245,236,205,234,80,232,235,229, +30,228,43,227,21,227,228,227,146,229,201,231,51,234,147,236,165,238,81,240,131,241,70,242,243,242,199,243,253,244,235,246, +157,249,7,253,31,1,149,5,5,10,19,14,97,17,172,19,240,20,106,21,70,21,156,20,188,19,231,18,65,18,227,17, +186,17,169,17,156,17,119,17,60,17,224,16,92,16,197,15,19,15,45,14,253,12,112,11,133,9,34,7,68,4,45,1, +20,254,50,251,217,248,64,247,142,246,201,246,213,247,119,249,71,251,209,252,172,253,156,253,175,252,5,251,227,248,180,246, +202,244,126,243,19,243,149,243,33,245,146,247,135,250,179,253,185,0,74,3,42,5,12,6,248,5,33,5,151,3,160,1, +147,255,161,253,252,251,188,250,240,249,150,249,143,249,181,249,228,249,12,250,37,250,23,250,225,249,115,249,176,248,155,247, +78,246,247,244,211,243,10,243,212,242,91,243,159,244,167,246,97,249,147,252,3,0,96,3,87,6,169,8,54,10,4,11, +31,11,167,10,232,9,54,9,232,8,43,9,244,9,58,11,249,12,248,14,208,16,37,18,212,18,198,18,249,17,160,16, +225,14,219,12,173,10,89,8,242,5,147,3,74,1,47,255,78,253,156,251,22,250,179,248,116,247,90,246,72,245,40,244, +232,242,131,241,247,239,59,238,103,236,169,234,44,233,43,232,193,231,231,231,158,232,200,233,54,235,198,236,72,238,144,239, +152,240,110,241,67,242,93,243,252,244,50,247,217,249,216,252,2,0,1,3,172,5,2,8,239,9,144,11,42,13,226,14, +213,16,30,19,168,21,54,24,151,26,153,28,239,29,108,30,18,30,243,28,41,27,249,24,160,22,55,20,215,17,161,15, +176,13,2,12,125,10,6,9,140,7,232,5,250,3,189,1,57,255,132,252,185,249,240,246,85,244,17,242,58,240,239,238, +74,238,55,238,151,238,86,239,70,240,60,241,31,242,202,242,60,243,136,243,159,243,130,243,90,243,73,243,118,243,253,243, +227,244,46,246,211,247,169,249,151,251,124,253,55,255,176,0,236,1,246,2,188,3,64,4,170,4,4,5,80,5,149,5, +213,5,37,6,133,6,242,6,141,7,92,8,72,9,73,10,75,11,47,12,214,12,38,13,42,13,221,12,54,12,102,11, +171,10,27,10,198,9,178,9,206,9,250,9,8,10,194,9,2,9,187,7,234,5,172,3,36,1,101,254,147,251,220,248, +89,246,28,244,51,242,155,240,75,239,59,238,99,237,182,236,56,236,0,236,0,236,55,236,188,236,135,237,162,238,16,240, +179,241,147,243,161,245,186,247,249,249,101,252,226,254,108,1,250,3,122,6,204,8,207,10,126,12,189,13,140,14,36,15, +150,15,230,15,32,16,61,16,63,16,18,16,141,15,158,14,68,13,150,11,187,9,201,7,226,5,37,4,159,2,82,1, +36,0,255,254,222,253,174,252,108,251,11,250,105,248,151,246,183,244,237,242,105,241,78,240,204,239,20,240,32,241,204,242, +244,244,108,247,4,250,146,252,244,254,7,1,198,2,65,4,118,5,122,6,104,7,66,8,35,9,32,10,46,11,78,12, +115,13,138,14,126,15,17,16,28,16,150,15,119,14,213,12,206,10,131,8,31,6,188,3,132,1,149,255,239,253,165,252, +196,251,52,251,238,250,234,250,5,251,26,251,252,250,138,250,185,249,125,248,227,246,25,245,95,243,239,241,248,240,184,240, +71,241,142,242,101,244,151,246,224,248,21,251,18,253,163,254,170,255,49,0,88,0,75,0,61,0,75,0,127,0,228,0, +132,1,83,2,46,3,242,3,155,4,26,5,99,5,128,5,109,5,60,5,9,5,185,4,70,4,177,3,216,2,196,1, +132,0,7,255,117,253,6,252,214,250,6,250,150,249,128,249,201,249,80,250,232,250,85,251,87,251,240,250,55,250,67,249, +82,248,145,247,34,247,53,247,218,247,15,249,191,250,189,252,234,254,36,1,52,3,250,4,103,6,106,7,5,8,76,8, +81,8,41,8,231,7,139,7,255,6,81,6,153,5,216,4,34,4,144,3,24,3,187,2,135,2,120,2,107,2,51,2, +167,1,194,0,140,255,2,254,72,252,164,250,57,249,20,248,83,247,2,247,22,247,121,247,8,248,176,248,104,249,16,250, +146,250,228,250,0,251,245,250,209,250,163,250,138,250,169,250,35,251,24,252,144,253,138,255,235,1,108,4,203,6,213,8, +106,10,147,11,91,12,188,12,197,12,154,12,76,12,215,11,64,11,170,10,45,10,200,9,125,9,60,9,228,8,106,8, +204,7,0,7,1,6,202,4,97,3,231,1,109,0,241,254,148,253,116,252,143,251,229,250,110,250,44,250,48,250,121,250, +240,250,112,251,212,251,16,252,18,252,195,251,55,251,160,250,53,250,29,250,112,250,46,251,78,252,186,253,74,255,202,0, +34,2,77,3,46,4,184,4,1,5,23,5,254,4,177,4,53,4,155,3,236,2,53,2,136,1,240,0,122,0,44,0, +240,255,176,255,104,255,9,255,127,254,216,253,40,253,110,252,174,251,4,251,132,250,59,250,59,250,132,250,7,251,170,251, +76,252,223,252,87,253,166,253,215,253,251,253,25,254,74,254,166,254,61,255,17,0,13,1,30,2,50,3,40,4,231,4, +104,5,170,5,169,5,112,5,17,5,151,4,12,4,138,3,27,3,200,2,164,2,170,2,207,2,23,3,117,3,217,3, +68,4,168,4,242,4,13,5,239,4,176,4,86,4,213,3,58,3,143,2,199,1,221,0,210,255,160,254,83,253,0,252, +187,250,149,249,160,248,229,247,101,247,33,247,15,247,20,247,43,247,92,247,143,247,172,247,189,247,208,247,236,247,34,248, +125,248,252,248,167,249,128,250,106,251,80,252,42,253,228,253,120,254,242,254,78,255,163,255,37,0,227,0,215,1,2,3, +106,4,4,6,160,7,7,9,38,10,247,10,114,11,159,11,148,11,115,11,84,11,47,11,6,11,216,10,142,10,37,10, +153,9,213,8,224,7,189,6,95,5,215,3,67,2,162,0,4,255,148,253,95,252,96,251,158,250,21,250,193,249,167,249, +188,249,231,249,21,250,47,250,31,250,227,249,128,249,255,248,124,248,23,248,219,247,230,247,75,248,240,248,191,249,196,250, +236,251,23,253,53,254,55,255,17,0,201,0,108,1,2,2,138,2,9,3,134,3,242,3,49,4,66,4,55,4,2,4, +163,3,67,3,245,2,183,2,145,2,114,2,44,2,171,1,229,0,214,255,147,254,44,253,174,251,76,250,60,249,137,248, +65,248,83,248,143,248,239,248,109,249,202,249,248,249,20,250,16,250,241,249,197,249,151,249,130,249,137,249,162,249,223,249, +69,250,215,250,155,251,129,252,136,253,184,254,7,0,120,1,0,3,125,4,219,5,1,7,236,7,161,8,21,9,88,9, +144,9,219,9,87,10,7,11,214,11,187,12,158,13,81,14,173,14,155,14,28,14,45,13,210,11,46,10,97,8,123,6, +143,4,169,2,218,0,50,255,176,253,85,252,27,251,244,249,230,248,248,247,37,247,116,246,239,245,131,245,26,245,195,244, +151,244,137,244,127,244,121,244,136,244,181,244,0,245,111,245,253,245,152,246,67,247,253,247,185,248,107,249,23,250,203,250, +143,251,97,252,80,253,89,254,109,255,159,0,254,1,126,3,26,5,204,6,125,8,7,10,71,11,55,12,229,12,90,13, +171,13,224,13,253,13,20,14,34,14,12,14,196,13,72,13,137,12,134,11,72,10,197,8,245,6,244,4,229,2,223,0, +230,254,1,253,63,251,177,249,90,248,66,247,102,246,198,245,91,245,10,245,198,244,149,244,109,244,79,244,72,244,89,244, +148,244,5,245,162,245,104,246,87,247,107,248,158,249,247,250,120,252,4,254,135,255,0,1,93,2,148,3,166,4,130,5, +37,6,161,6,2,7,77,7,123,7,150,7,174,7,192,7,204,7,214,7,212,7,182,7,103,7,227,6,59,6,119,5, +150,4,152,3,145,2,158,1,177,0,204,255,25,255,160,254,86,254,61,254,82,254,162,254,21,255,122,255,195,255,230,255, +222,255,189,255,123,255,33,255,217,254,200,254,255,254,134,255,97,0,135,1,210,2,34,4,82,5,49,6,177,6,210,6, +146,6,24,6,144,5,9,5,149,4,65,4,21,4,10,4,7,4,250,3,208,3,118,3,216,2,228,1,186,0,133,255, +71,254,19,253,14,252,63,251,171,250,77,250,10,250,214,249,183,249,147,249,91,249,43,249,4,249,212,248,178,248,169,248, +186,248,221,248,246,248,2,249,16,249,18,249,21,249,46,249,86,249,149,249,232,249,68,250,174,250,36,251,170,251,71,252, +248,252,199,253,182,254,183,255,192,0,194,1,186,2,166,3,102,4,238,4,68,5,96,5,76,5,29,5,227,4,178,4, +145,4,129,4,130,4,154,4,202,4,252,4,39,5,63,5,42,5,243,4,155,4,21,4,123,3,207,2,5,2,47,1, +79,0,112,255,162,254,221,253,32,253,109,252,206,251,75,251,214,250,104,250,11,250,187,249,117,249,56,249,5,249,228,248, +214,248,223,248,2,249,57,249,140,249,0,250,155,250,100,251,71,252,61,253,62,254,39,255,236,255,143,0,14,1,134,1, +237,1,58,2,141,2,208,2,243,2,31,3,83,3,135,3,207,3,36,4,127,4,224,4,45,5,75,5,66,5,33,5, +219,4,104,4,222,3,69,3,163,2,16,2,143,1,36,1,200,0,94,0,222,255,85,255,200,254,53,254,168,253,59,253, +252,252,227,252,246,252,56,253,149,253,3,254,114,254,204,254,18,255,80,255,127,255,149,255,162,255,188,255,237,255,54,0, +144,0,250,0,120,1,240,1,86,2,180,2,254,2,46,3,77,3,98,3,125,3,161,3,198,3,231,3,1,4,31,4, +68,4,93,4,113,4,127,4,117,4,89,4,51,4,8,4,220,3,162,3,93,3,32,3,220,2,145,2,77,2,13,2, +208,1,158,1,108,1,39,1,204,0,91,0,208,255,56,255,162,254,5,254,101,253,204,252,53,252,178,251,74,251,237,250, +164,250,119,250,85,250,70,250,78,250,102,250,142,250,192,250,244,250,37,251,88,251,142,251,191,251,237,251,44,252,148,252, +31,253,187,253,115,254,67,255,8,0,188,0,80,1,183,1,248,1,11,2,4,2,20,2,59,2,135,2,6,3,156,3, +73,4,2,5,149,5,245,5,15,6,210,5,79,5,139,4,164,3,186,2,202,1,234,0,48,0,150,255,37,255,202,254, +109,254,30,254,205,253,99,253,243,252,135,252,41,252,230,251,184,251,161,251,169,251,190,251,209,251,233,251,16,252,55,252, +80,252,103,252,131,252,153,252,182,252,234,252,47,253,134,253,239,253,88,254,199,254,65,255,181,255,38,0,150,0,255,0, +107,1,211,1,27,2,78,2,109,2,119,2,125,2,116,2,93,2,78,2,66,2,66,2,92,2,125,2,160,2,202,2, +243,2,18,3,30,3,20,3,241,2,172,2,77,2,218,1,90,1,226,0,125,0,44,0,248,255,224,255,220,255,227,255, +222,255,183,255,104,255,249,254,105,254,195,253,36,253,155,252,55,252,11,252,20,252,70,252,153,252,244,252,84,253,196,253, +51,254,139,254,208,254,16,255,74,255,139,255,238,255,113,0,255,0,149,1,42,2,169,2,8,3,77,3,127,3,162,3, +197,3,235,3,18,4,75,4,145,4,200,4,249,4,35,5,50,5,35,5,230,4,115,4,227,3,53,3,105,2,139,1, +149,0,155,255,182,254,222,253,14,253,82,252,166,251,254,250,99,250,223,249,109,249,17,249,210,248,177,248,183,248,232,248, +43,249,120,249,222,249,90,250,224,250,107,251,253,251,171,252,119,253,72,254,38,255,45,0,79,1,104,2,116,3,125,4, +121,5,95,6,46,7,229,7,120,8,227,8,50,9,113,9,167,9,204,9,215,9,201,9,156,9,74,9,215,8,49,8, +87,7,100,6,94,5,64,4,31,3,29,2,63,1,119,0,193,255,33,255,131,254,216,253,25,253,54,252,60,251,63,250, +65,249,73,248,103,247,166,246,20,246,183,245,146,245,167,245,227,245,57,246,166,246,35,247,179,247,85,248,246,248,150,249, +65,250,247,250,182,251,124,252,74,253,36,254,250,254,192,255,119,0,36,1,202,1,103,2,252,2,146,3,36,4,155,4, +237,4,10,5,245,4,194,4,112,4,247,3,111,3,235,2,110,2,250,1,152,1,69,1,255,0,188,0,107,0,20,0, +182,255,67,255,196,254,74,254,208,253,109,253,50,253,24,253,24,253,41,253,66,253,100,253,131,253,159,253,186,253,207,253, +243,253,61,254,161,254,25,255,163,255,63,0,246,0,173,1,67,2,187,2,23,3,74,3,95,3,104,3,109,3,116,3, +139,3,178,3,229,3,30,4,74,4,100,4,116,4,106,4,59,4,243,3,153,3,47,3,181,2,45,2,167,1,28,1, +136,0,1,0,124,255,235,254,99,254,247,253,149,253,49,253,215,252,153,252,106,252,54,252,2,252,216,251,183,251,168,251, +173,251,207,251,24,252,132,252,25,253,217,253,164,254,99,255,20,0,161,0,6,1,83,1,121,1,142,1,188,1,0,2, +84,2,192,2,52,3,172,3,31,4,107,4,139,4,142,4,100,4,20,4,174,3,47,3,163,2,29,2,160,1,50,1, +210,0,123,0,58,0,4,0,199,255,146,255,90,255,19,255,208,254,141,254,64,254,248,253,163,253,73,253,1,253,189,252, +127,252,103,252,123,252,195,252,51,253,195,253,115,254,32,255,180,255,45,0,117,0,138,0,129,0,94,0,37,0,232,255, +196,255,207,255,3,0,93,0,217,0,105,1,237,1,85,2,159,2,178,2,135,2,54,2,189,1,39,1,154,0,22,0, +157,255,76,255,34,255,30,255,58,255,108,255,182,255,244,255,13,0,15,0,234,255,148,255,26,255,129,254,229,253,98,253, +250,252,187,252,175,252,205,252,18,253,123,253,248,253,120,254,230,254,48,255,87,255,107,255,102,255,72,255,40,255,20,255, +25,255,68,255,145,255,255,255,133,0,24,1,176,1,54,2,163,2,251,2,44,3,61,3,55,3,29,3,0,3,208,2, +135,2,67,2,9,2,224,1,201,1,187,1,191,1,196,1,187,1,185,1,170,1,126,1,64,1,233,0,135,0,50,0, +222,255,155,255,130,255,135,255,167,255,220,255,30,0,97,0,149,0,184,0,195,0,177,0,144,0,103,0,54,0,9,0, +234,255,228,255,242,255,12,0,49,0,82,0,108,0,124,0,109,0,66,0,4,0,174,255,76,255,240,254,163,254,108,254, +79,254,71,254,89,254,143,254,211,254,12,255,71,255,126,255,143,255,124,255,77,255,2,255,170,254,75,254,247,253,198,253, +190,253,212,253,3,254,76,254,170,254,9,255,103,255,181,255,219,255,241,255,17,0,30,0,20,0,13,0,17,0,21,0, +28,0,46,0,81,0,126,0,163,0,191,0,226,0,4,1,19,1,24,1,27,1,26,1,11,1,240,0,208,0,169,0, +119,0,60,0,249,255,202,255,184,255,161,255,137,255,138,255,146,255,145,255,142,255,137,255,124,255,111,255,105,255,83,255, +48,255,17,255,224,254,153,254,72,254,236,253,152,253,85,253,31,253,17,253,36,253,68,253,123,253,192,253,9,254,72,254, +97,254,94,254,70,254,14,254,188,253,89,253,6,253,224,252,218,252,253,252,91,253,234,253,158,254,96,255,38,0,238,0, +169,1,81,2,223,2,65,3,129,3,165,3,165,3,147,3,131,3,124,3,138,3,186,3,23,4,137,4,248,4,101,5, +194,5,242,5,241,5,179,5,49,5,128,4,167,3,173,2,186,1,229,0,57,0,208,255,173,255,184,255,241,255,59,0, +101,0,104,0,67,0,219,255,49,255,95,254,131,253,173,252,241,251,111,251,48,251,41,251,96,251,210,251,108,252,29,253, +204,253,107,254,253,254,115,255,199,255,7,0,51,0,77,0,112,0,168,0,236,0,65,1,163,1,9,2,119,2,219,2, +26,3,59,3,62,3,20,3,190,2,73,2,188,1,30,1,122,0,225,255,104,255,27,255,251,254,1,255,30,255,72,255, +119,255,142,255,124,255,63,255,211,254,71,254,182,253,36,253,168,252,101,252,97,252,165,252,46,253,225,253,174,254,117,255, +32,0,188,0,46,1,92,1,100,1,99,1,97,1,102,1,125,1,174,1,247,1,81,2,176,2,9,3,86,3,129,3, +124,3,82,3,7,3,164,2,52,2,185,1,74,1,236,0,154,0,85,0,22,0,218,255,149,255,63,255,238,254,167,254, +89,254,5,254,164,253,61,253,232,252,155,252,88,252,36,252,254,251,2,252,53,252,128,252,228,252,92,253,223,253,106,254, +241,254,113,255,225,255,46,0,91,0,120,0,152,0,188,0,232,0,56,1,171,1,53,2,212,2,113,3,0,4,112,4, +163,4,161,4,119,4,37,4,190,3,69,3,215,2,153,2,130,2,140,2,179,2,224,2,6,3,10,3,222,2,139,2, +1,2,65,1,109,0,155,255,220,254,51,254,157,253,43,253,221,252,163,252,121,252,79,252,27,252,238,251,196,251,147,251, +112,251,102,251,104,251,126,251,165,251,206,251,10,252,84,252,142,252,202,252,11,253,66,253,120,253,175,253,227,253,26,254, +76,254,126,254,183,254,241,254,42,255,101,255,169,255,249,255,78,0,172,0,16,1,98,1,147,1,169,1,164,1,120,1, +52,1,243,0,180,0,123,0,89,0,80,0,96,0,120,0,133,0,142,0,137,0,107,0,55,0,226,255,119,255,9,255, +159,254,71,254,14,254,7,254,64,254,166,254,54,255,242,255,175,0,92,1,243,1,95,2,154,2,157,2,115,2,49,2, +218,1,134,1,75,1,45,1,67,1,143,1,1,2,145,2,41,3,184,3,38,4,82,4,59,4,232,3,107,3,211,2, +28,2,104,1,218,0,104,0,29,0,1,0,14,0,71,0,153,0,237,0,59,1,123,1,159,1,148,1,86,1,246,0, +121,0,237,255,102,255,245,254,172,254,140,254,155,254,229,254,88,255,238,255,151,0,44,1,171,1,12,2,56,2,50,2, +245,1,154,1,67,1,226,0,140,0,100,0,98,0,123,0,165,0,206,0,245,0,1,1,221,0,147,0,46,0,182,255, +48,255,171,254,64,254,238,253,178,253,154,253,166,253,210,253,13,254,64,254,103,254,123,254,115,254,85,254,35,254,234,253, +185,253,141,253,110,253,113,253,147,253,190,253,238,253,50,254,128,254,203,254,20,255,73,255,100,255,127,255,145,255,144,255, +144,255,146,255,141,255,136,255,127,255,116,255,121,255,125,255,120,255,125,255,137,255,144,255,149,255,145,255,130,255,103,255, +52,255,244,254,184,254,119,254,51,254,1,254,230,253,232,253,10,254,63,254,124,254,191,254,255,254,50,255,83,255,95,255, +97,255,100,255,99,255,105,255,140,255,203,255,30,0,131,0,250,0,127,1,253,1,100,2,187,2,246,2,9,3,249,2, +215,2,175,2,123,2,61,2,7,2,228,1,208,1,186,1,156,1,128,1,93,1,46,1,247,0,158,0,52,0,212,255, +101,255,237,254,140,254,47,254,215,253,154,253,116,253,96,253,93,253,115,253,157,253,204,253,3,254,69,254,139,254,217,254, +45,255,143,255,255,255,108,0,224,0,93,1,208,1,59,2,169,2,23,3,132,3,236,3,89,4,209,4,68,5,176,5, +15,6,77,6,112,6,116,6,80,6,12,6,170,5,40,5,155,4,11,4,116,3,230,2,110,2,8,2,180,1,98,1, +8,1,169,0,59,0,175,255,13,255,90,254,154,253,213,252,24,252,115,251,234,250,118,250,30,250,242,249,237,249,251,249, +26,250,88,250,161,250,224,250,42,251,132,251,216,251,34,252,90,252,139,252,191,252,239,252,34,253,105,253,187,253,22,254, +139,254,24,255,163,255,42,0,174,0,17,1,92,1,153,1,176,1,164,1,137,1,90,1,46,1,16,1,243,0,229,0, +233,0,246,0,20,1,54,1,77,1,89,1,90,1,68,1,21,1,223,0,164,0,89,0,17,0,221,255,194,255,193,255, +205,255,230,255,7,0,27,0,45,0,65,0,61,0,40,0,18,0,243,255,209,255,184,255,166,255,155,255,160,255,185,255, +224,255,12,0,49,0,72,0,94,0,113,0,123,0,138,0,160,0,185,0,220,0,6,1,53,1,108,1,162,1,206,1, +236,1,6,2,37,2,55,2,52,2,41,2,12,2,210,1,123,1,13,1,146,0,16,0,138,255,13,255,168,254,90,254, +29,254,2,254,16,254,47,254,82,254,130,254,175,254,197,254,201,254,195,254,172,254,142,254,134,254,145,254,175,254,238,254, +72,255,191,255,78,0,219,0,105,1,241,1,88,2,160,2,202,2,214,2,215,2,192,2,149,2,117,2,102,2,104,2, +120,2,152,2,207,2,7,3,51,3,95,3,117,3,106,3,65,3,255,2,178,2,79,2,211,1,89,1,212,0,63,0, +188,255,63,255,189,254,76,254,231,253,136,253,53,253,226,252,145,252,66,252,231,251,130,251,32,251,208,250,152,250,117,250, +110,250,140,250,206,250,44,251,159,251,34,252,168,252,22,253,107,253,175,253,219,253,233,253,223,253,216,253,227,253,241,253, +2,254,33,254,82,254,149,254,220,254,37,255,125,255,205,255,8,0,73,0,133,0,177,0,218,0,246,0,4,1,18,1, +23,1,34,1,62,1,86,1,116,1,178,1,247,1,50,2,111,2,160,2,179,2,171,2,149,2,114,2,63,2,245,1, +166,1,105,1,63,1,28,1,250,0,230,0,233,0,237,0,230,0,230,0,232,0,222,0,201,0,170,0,142,0,113,0, +63,0,13,0,230,255,185,255,148,255,128,255,106,255,89,255,78,255,76,255,88,255,87,255,72,255,70,255,54,255,22,255, +19,255,33,255,34,255,39,255,61,255,98,255,142,255,182,255,223,255,16,0,66,0,109,0,150,0,203,0,13,1,74,1, +126,1,185,1,251,1,47,2,72,2,87,2,106,2,115,2,104,2,95,2,102,2,114,2,119,2,125,2,131,2,120,2, +96,2,66,2,16,2,212,1,163,1,99,1,32,1,246,0,208,0,175,0,155,0,122,0,91,0,76,0,46,0,0,0, +208,255,155,255,110,255,65,255,12,255,228,254,195,254,150,254,106,254,80,254,57,254,28,254,255,253,225,253,197,253,168,253, +129,253,94,253,78,253,61,253,46,253,50,253,71,253,107,253,158,253,218,253,34,254,110,254,178,254,241,254,36,255,71,255, +102,255,139,255,177,255,208,255,236,255,20,0,66,0,105,0,138,0,164,0,179,0,180,0,165,0,147,0,144,0,138,0, +120,0,120,0,132,0,127,0,106,0,82,0,55,0,14,0,220,255,189,255,181,255,181,255,190,255,206,255,226,255,251,255, +2,0,239,255,216,255,188,255,164,255,151,255,137,255,136,255,162,255,202,255,2,0,73,0,141,0,203,0,255,0,39,1, +69,1,88,1,101,1,111,1,113,1,113,1,121,1,119,1,103,1,89,1,76,1,52,1,19,1,254,0,248,0,234,0, +201,0,169,0,138,0,82,0,8,0,184,255,89,255,241,254,140,254,57,254,10,254,232,253,207,253,223,253,1,254,33,254, +80,254,115,254,136,254,168,254,177,254,164,254,165,254,166,254,159,254,169,254,200,254,253,254,60,255,134,255,225,255,53,0, +119,0,188,0,247,0,23,1,38,1,48,1,61,1,67,1,62,1,60,1,73,1,91,1,110,1,137,1,165,1,173,1, +170,1,169,1,152,1,110,1,52,1,237,0,168,0,100,0,23,0,207,255,154,255,110,255,68,255,27,255,248,254,223,254, +203,254,190,254,189,254,183,254,170,254,169,254,168,254,156,254,150,254,145,254,141,254,148,254,160,254,173,254,204,254,245,254, +32,255,87,255,142,255,185,255,228,255,13,0,50,0,83,0,110,0,139,0,167,0,184,0,202,0,230,0,10,1,52,1, +80,1,102,1,136,1,153,1,143,1,132,1,107,1,62,1,14,1,207,0,132,0,67,0,255,255,190,255,145,255,100,255, +57,255,32,255,15,255,10,255,12,255,5,255,255,254,245,254,217,254,184,254,155,254,124,254,96,254,89,254,105,254,127,254, +158,254,207,254,16,255,91,255,148,255,177,255,203,255,221,255,225,255,241,255,8,0,32,0,65,0,96,0,137,0,198,0, +252,0,50,1,108,1,150,1,190,1,223,1,233,1,233,1,228,1,213,1,195,1,173,1,151,1,126,1,99,1,79,1, +65,1,56,1,51,1,41,1,38,1,44,1,42,1,31,1,5,1,223,0,188,0,142,0,80,0,23,0,231,255,183,255, +133,255,81,255,34,255,252,254,212,254,169,254,128,254,89,254,47,254,6,254,228,253,200,253,179,253,164,253,163,253,176,253, +189,253,196,253,211,253,240,253,24,254,70,254,119,254,169,254,228,254,43,255,118,255,190,255,8,0,77,0,137,0,195,0, +242,0,21,1,67,1,110,1,135,1,157,1,189,1,225,1,244,1,246,1,249,1,251,1,240,1,216,1,181,1,149,1, +120,1,85,1,57,1,25,1,231,0,184,0,141,0,103,0,85,0,66,0,41,0,42,0,56,0,58,0,62,0,70,0, +72,0,71,0,62,0,41,0,14,0,253,255,254,255,2,0,2,0,14,0,29,0,39,0,49,0,59,0,65,0,60,0, +39,0,20,0,2,0,225,255,194,255,174,255,160,255,157,255,152,255,143,255,146,255,146,255,137,255,128,255,117,255,120,255, +135,255,138,255,141,255,150,255,148,255,138,255,127,255,113,255,102,255,92,255,89,255,87,255,83,255,84,255,83,255,78,255, +82,255,81,255,83,255,106,255,123,255,129,255,142,255,151,255,161,255,187,255,211,255,225,255,242,255,5,0,23,0,39,0, +51,0,55,0,54,0,56,0,59,0,56,0,48,0,51,0,60,0,61,0,59,0,45,0,15,0,245,255,220,255,193,255, +175,255,159,255,147,255,154,255,166,255,177,255,195,255,212,255,225,255,239,255,243,255,240,255,235,255,220,255,194,255,167,255, +151,255,140,255,129,255,124,255,116,255,105,255,103,255,96,255,80,255,65,255,54,255,47,255,37,255,23,255,12,255,250,254, +228,254,218,254,215,254,217,254,229,254,242,254,6,255,37,255,69,255,102,255,124,255,132,255,140,255,142,255,137,255,138,255, +142,255,146,255,149,255,153,255,173,255,198,255,215,255,241,255,21,0,56,0,93,0,136,0,185,0,232,0,14,1,51,1, +88,1,119,1,138,1,146,1,151,1,153,1,149,1,151,1,154,1,143,1,136,1,132,1,114,1,92,1,72,1,50,1, +25,1,254,0,219,0,184,0,158,0,135,0,107,0,89,0,86,0,75,0,60,0,55,0,46,0,31,0,13,0,246,255, +234,255,230,255,208,255,180,255,165,255,147,255,126,255,110,255,95,255,81,255,64,255,54,255,55,255,54,255,55,255,63,255, +66,255,79,255,112,255,152,255,198,255,246,255,42,0,104,0,162,0,213,0,4,1,37,1,64,1,91,1,109,1,134,1, +161,1,169,1,176,1,194,1,210,1,219,1,218,1,206,1,192,1,170,1,132,1,87,1,46,1,248,0,189,0,148,0, +106,0,53,0,4,0,200,255,135,255,81,255,18,255,202,254,140,254,87,254,36,254,245,253,210,253,185,253,154,253,125,253, +109,253,100,253,100,253,112,253,131,253,157,253,190,253,234,253,30,254,85,254,138,254,192,254,3,255,76,255,144,255,220,255, +54,0,140,0,222,0,43,1,107,1,157,1,192,1,216,1,231,1,235,1,234,1,226,1,217,1,212,1,202,1,188,1, +174,1,148,1,112,1,59,1,242,0,165,0,81,0,242,255,150,255,60,255,230,254,159,254,105,254,66,254,32,254,4,254, +243,253,224,253,203,253,197,253,207,253,222,253,231,253,250,253,27,254,50,254,64,254,88,254,112,254,144,254,193,254,240,254, +36,255,95,255,146,255,195,255,245,255,26,0,58,0,89,0,113,0,153,0,197,0,223,0,253,0,38,1,72,1,103,1, +128,1,147,1,163,1,160,1,153,1,149,1,130,1,111,1,98,1,72,1,53,1,42,1,27,1,18,1,254,0,220,0, +191,0,148,0,90,0,35,0,230,255,174,255,125,255,71,255,33,255,3,255,213,254,169,254,139,254,114,254,97,254,80,254, +62,254,58,254,64,254,69,254,88,254,131,254,177,254,216,254,15,255,73,255,111,255,151,255,202,255,243,255,20,0,61,0, +99,0,132,0,174,0,222,0,8,1,52,1,99,1,134,1,164,1,194,1,210,1,214,1,216,1,208,1,189,1,168,1, +152,1,134,1,103,1,67,1,38,1,14,1,239,0,199,0,155,0,110,0,61,0,7,0,214,255,168,255,112,255,63,255, +30,255,2,255,232,254,204,254,176,254,160,254,152,254,149,254,152,254,155,254,164,254,177,254,198,254,240,254,23,255,61,255, +121,255,171,255,206,255,9,0,69,0,115,0,167,0,226,0,30,1,90,1,135,1,172,1,207,1,242,1,16,2,28,2, +40,2,56,2,55,2,50,2,53,2,48,2,44,2,36,2,4,2,228,1,195,1,132,1,65,1,2,1,172,0,78,0, +248,255,166,255,95,255,34,255,231,254,177,254,122,254,70,254,25,254,238,253,191,253,146,253,108,253,80,253,53,253,30,253, +25,253,27,253,31,253,49,253,83,253,123,253,160,253,204,253,11,254,79,254,138,254,200,254,14,255,78,255,134,255,189,255, +244,255,39,0,90,0,133,0,171,0,218,0,12,1,63,1,116,1,168,1,217,1,1,2,32,2,59,2,63,2,45,2, +23,2,237,1,180,1,129,1,82,1,40,1,251,0,198,0,158,0,126,0,83,0,40,0,3,0,217,255,169,255,108,255, +41,255,234,254,171,254,110,254,68,254,41,254,20,254,9,254,12,254,24,254,49,254,76,254,98,254,124,254,145,254,157,254, +179,254,204,254,226,254,4,255,43,255,82,255,127,255,169,255,208,255,250,255,37,0,76,0,116,0,156,0,195,0,232,0, +21,1,70,1,110,1,149,1,191,1,219,1,228,1,228,1,216,1,196,1,171,1,130,1,89,1,64,1,32,1,250,0, +229,0,213,0,187,0,154,0,122,0,102,0,80,0,42,0,255,255,208,255,159,255,109,255,58,255,20,255,246,254,207,254, +178,254,169,254,166,254,174,254,192,254,219,254,255,254,42,255,82,255,113,255,143,255,173,255,196,255,228,255,14,0,49,0, +91,0,137,0,168,0,194,0,223,0,250,0,14,1,26,1,41,1,57,1,64,1,67,1,67,1,67,1,65,1,51,1, +39,1,40,1,30,1,6,1,250,0,240,0,206,0,163,0,125,0,85,0,44,0,250,255,189,255,138,255,95,255,45,255, +253,254,215,254,182,254,156,254,137,254,125,254,116,254,112,254,116,254,112,254,103,254,98,254,93,254,99,254,117,254,132,254, +148,254,175,254,208,254,241,254,11,255,47,255,95,255,135,255,178,255,231,255,15,0,47,0,79,0,105,0,123,0,127,0, +126,0,130,0,138,0,149,0,168,0,192,0,216,0,234,0,252,0,13,1,16,1,11,1,5,1,0,1,250,0,229,0, +195,0,163,0,131,0,93,0,54,0,11,0,219,255,169,255,122,255,86,255,54,255,15,255,242,254,229,254,214,254,209,254, +229,254,250,254,5,255,16,255,28,255,38,255,42,255,43,255,46,255,52,255,69,255,89,255,101,255,122,255,144,255,154,255, +172,255,198,255,222,255,248,255,12,0,38,0,74,0,86,0,90,0,103,0,101,0,93,0,94,0,95,0,102,0,108,0, +112,0,125,0,137,0,145,0,164,0,182,0,189,0,194,0,203,0,208,0,204,0,192,0,180,0,174,0,173,0,168,0, +160,0,153,0,145,0,136,0,130,0,124,0,111,0,91,0,77,0,71,0,69,0,72,0,81,0,94,0,105,0,113,0, +117,0,110,0,102,0,93,0,73,0,53,0,39,0,22,0,13,0,11,0,9,0,22,0,47,0,74,0,99,0,116,0, +131,0,151,0,152,0,137,0,123,0,109,0,96,0,90,0,90,0,96,0,108,0,114,0,112,0,118,0,122,0,104,0, +84,0,78,0,70,0,48,0,22,0,1,0,233,255,199,255,164,255,131,255,99,255,77,255,61,255,50,255,46,255,35,255, +25,255,24,255,18,255,14,255,16,255,9,255,7,255,11,255,5,255,2,255,9,255,7,255,6,255,20,255,30,255,37,255, +49,255,62,255,71,255,78,255,87,255,106,255,122,255,131,255,148,255,171,255,197,255,229,255,2,0,35,0,76,0,101,0, +123,0,163,0,198,0,222,0,246,0,5,1,13,1,19,1,16,1,2,1,235,0,209,0,173,0,135,0,108,0,81,0, +47,0,20,0,249,255,218,255,192,255,168,255,143,255,117,255,91,255,69,255,40,255,2,255,225,254,197,254,170,254,147,254, +124,254,107,254,99,254,81,254,62,254,58,254,52,254,38,254,35,254,44,254,63,254,86,254,109,254,152,254,212,254,3,255, +51,255,106,255,160,255,221,255,23,0,76,0,145,0,212,0,15,1,87,1,158,1,218,1,17,2,58,2,95,2,125,2, +138,2,150,2,156,2,140,2,119,2,99,2,69,2,33,2,244,1,192,1,144,1,98,1,45,1,254,0,217,0,174,0, +121,0,68,0,12,0,204,255,135,255,71,255,9,255,196,254,136,254,94,254,52,254,19,254,5,254,1,254,16,254,50,254, +83,254,117,254,157,254,192,254,226,254,14,255,54,255,88,255,133,255,193,255,252,255,49,0,104,0,166,0,221,0,8,1, +56,1,107,1,142,1,172,1,197,1,211,1,226,1,229,1,213,1,194,1,177,1,154,1,125,1,87,1,46,1,251,0, +186,0,125,0,72,0,15,0,217,255,171,255,127,255,84,255,45,255,7,255,224,254,195,254,170,254,143,254,127,254,117,254, +101,254,95,254,98,254,98,254,109,254,132,254,155,254,183,254,218,254,254,254,42,255,88,255,128,255,172,255,219,255,6,0, +46,0,89,0,132,0,172,0,210,0,244,0,14,1,28,1,34,1,37,1,39,1,43,1,45,1,43,1,44,1,39,1, +24,1,12,1,254,0,231,0,199,0,159,0,117,0,77,0,35,0,247,255,194,255,138,255,96,255,65,255,32,255,5,255, +242,254,217,254,186,254,163,254,148,254,134,254,117,254,91,254,77,254,75,254,62,254,54,254,58,254,58,254,74,254,101,254, +108,254,128,254,168,254,199,254,239,254,41,255,96,255,142,255,183,255,220,255,252,255,23,0,55,0,95,0,139,0,186,0, +227,0,9,1,52,1,88,1,107,1,119,1,130,1,138,1,141,1,139,1,130,1,123,1,118,1,113,1,109,1,98,1, +82,1,66,1,40,1,15,1,249,0,208,0,159,0,116,0,73,0,43,0,25,0,2,0,245,255,244,255,232,255,223,255, +223,255,210,255,193,255,186,255,178,255,169,255,173,255,179,255,174,255,170,255,168,255,165,255,165,255,169,255,182,255,210,255, +238,255,11,0,41,0,56,0,57,0,64,0,74,0,69,0,59,0,60,0,56,0,42,0,34,0,27,0,21,0,19,0, +8,0,255,255,249,255,233,255,218,255,211,255,195,255,174,255,156,255,144,255,136,255,122,255,114,255,113,255,107,255,101,255, +93,255,79,255,72,255,66,255,49,255,32,255,30,255,30,255,26,255,35,255,59,255,89,255,122,255,152,255,178,255,204,255, +223,255,232,255,239,255,244,255,246,255,248,255,4,0,31,0,69,0,113,0,160,0,199,0,228,0,249,0,250,0,231,0, +214,0,199,0,177,0,157,0,149,0,150,0,154,0,152,0,154,0,160,0,153,0,139,0,122,0,96,0,74,0,53,0, +25,0,8,0,249,255,227,255,220,255,215,255,203,255,201,255,181,255,144,255,114,255,82,255,46,255,22,255,253,254,232,254, +222,254,216,254,219,254,230,254,240,254,252,254,15,255,35,255,55,255,78,255,101,255,114,255,130,255,152,255,169,255,183,255, +206,255,235,255,4,0,23,0,44,0,63,0,84,0,108,0,127,0,150,0,185,0,214,0,239,0,12,1,28,1,35,1, +33,1,14,1,246,0,226,0,210,0,196,0,179,0,168,0,164,0,153,0,139,0,129,0,113,0,92,0,69,0,43,0, +14,0,232,255,198,255,174,255,156,255,143,255,134,255,119,255,105,255,100,255,90,255,74,255,64,255,60,255,57,255,48,255, +41,255,51,255,60,255,56,255,63,255,78,255,84,255,99,255,125,255,145,255,172,255,207,255,238,255,11,0,35,0,56,0, +80,0,98,0,104,0,113,0,129,0,134,0,125,0,123,0,131,0,129,0,128,0,133,0,134,0,136,0,134,0,125,0, +124,0,119,0,95,0,81,0,79,0,69,0,60,0,52,0,42,0,36,0,24,0,6,0,241,255,216,255,202,255,196,255, +180,255,178,255,189,255,185,255,182,255,195,255,209,255,214,255,219,255,227,255,234,255,242,255,253,255,1,0,2,0,13,0, +22,0,24,0,33,0,49,0,68,0,86,0,98,0,111,0,124,0,126,0,124,0,122,0,114,0,105,0,95,0,86,0, +82,0,77,0,66,0,66,0,75,0,76,0,74,0,72,0,63,0,55,0,44,0,26,0,5,0,230,255,192,255,163,255, +140,255,115,255,98,255,82,255,57,255,40,255,33,255,24,255,23,255,28,255,24,255,24,255,35,255,42,255,48,255,52,255, +49,255,46,255,41,255,28,255,23,255,28,255,36,255,50,255,76,255,109,255,122,255,121,255,135,255,145,255,142,255,151,255, +163,255,170,255,185,255,200,255,217,255,242,255,6,0,14,0,18,0,25,0,37,0,45,0,48,0,52,0,58,0,65,0, +75,0,89,0,106,0,117,0,127,0,142,0,160,0,174,0,176,0,171,0,165,0,155,0,147,0,141,0,130,0,125,0, +127,0,119,0,114,0,118,0,121,0,116,0,105,0,96,0,89,0,78,0,57,0,26,0,255,255,241,255,231,255,222,255, +221,255,229,255,239,255,249,255,8,0,15,0,15,0,12,0,1,0,248,255,248,255,241,255,227,255,218,255,219,255,232,255, +243,255,249,255,1,0,9,0,21,0,27,0,23,0,28,0,35,0,32,0,28,0,25,0,27,0,34,0,39,0,48,0, +63,0,79,0,97,0,107,0,115,0,118,0,110,0,108,0,104,0,92,0,90,0,87,0,88,0,104,0,110,0,116,0, +128,0,124,0,123,0,116,0,89,0,73,0,58,0,35,0,27,0,24,0,22,0,26,0,27,0,34,0,46,0,55,0, +63,0,58,0,48,0,45,0,34,0,26,0,25,0,23,0,25,0,21,0,9,0,253,255,236,255,219,255,199,255,184,255, +187,255,188,255,174,255,165,255,164,255,169,255,178,255,180,255,185,255,191,255,185,255,183,255,181,255,154,255,122,255,98,255, +68,255,35,255,16,255,2,255,248,254,252,254,8,255,19,255,24,255,28,255,32,255,29,255,27,255,30,255,29,255,34,255, +53,255,67,255,77,255,99,255,125,255,143,255,158,255,175,255,190,255,204,255,217,255,224,255,223,255,222,255,221,255,223,255, +234,255,245,255,252,255,5,0,14,0,25,0,33,0,35,0,35,0,38,0,43,0,44,0,42,0,43,0,47,0,53,0, +49,0,31,0,15,0,1,0,243,255,238,255,236,255,240,255,253,255,254,255,246,255,239,255,227,255,213,255,194,255,173,255, +163,255,152,255,140,255,131,255,119,255,119,255,130,255,138,255,159,255,196,255,230,255,1,0,27,0,58,0,84,0,98,0, +109,0,119,0,137,0,155,0,165,0,182,0,199,0,206,0,217,0,222,0,220,0,227,0,226,0,219,0,213,0,200,0, +186,0,168,0,141,0,121,0,112,0,103,0,91,0,77,0,67,0,58,0,49,0,35,0,10,0,249,255,246,255,239,255, +237,255,241,255,247,255,252,255,249,255,252,255,6,0,252,255,238,255,238,255,237,255,232,255,222,255,216,255,223,255,235,255, +244,255,251,255,4,0,15,0,17,0,22,0,45,0,71,0,86,0,96,0,105,0,116,0,122,0,122,0,119,0,108,0, +102,0,99,0,89,0,85,0,90,0,89,0,91,0,94,0,96,0,100,0,103,0,100,0,91,0,79,0,73,0,63,0, +51,0,42,0,19,0,244,255,220,255,195,255,173,255,160,255,149,255,151,255,167,255,177,255,184,255,191,255,195,255,194,255, +191,255,181,255,169,255,162,255,164,255,176,255,193,255,217,255,243,255,254,255,249,255,242,255,239,255,237,255,226,255,214,255, +214,255,214,255,216,255,227,255,240,255,1,0,24,0,29,0,22,0,16,0,255,255,223,255,191,255,168,255,153,255,141,255, +132,255,133,255,140,255,145,255,146,255,150,255,159,255,160,255,146,255,135,255,134,255,125,255,108,255,97,255,91,255,90,255, +93,255,91,255,96,255,110,255,117,255,129,255,150,255,170,255,193,255,214,255,235,255,0,0,8,0,15,0,28,0,29,0, +31,0,40,0,49,0,62,0,72,0,78,0,89,0,94,0,97,0,97,0,91,0,90,0,88,0,78,0,75,0,68,0, +56,0,52,0,37,0,10,0,250,255,245,255,240,255,233,255,230,255,224,255,216,255,211,255,205,255,197,255,195,255,189,255, +175,255,164,255,157,255,155,255,154,255,160,255,175,255,191,255,207,255,220,255,222,255,218,255,214,255,214,255,215,255,208,255, +204,255,208,255,209,255,224,255,242,255,249,255,7,0,25,0,29,0,31,0,36,0,31,0,16,0,6,0,6,0,3,0, +8,0,29,0,42,0,47,0,58,0,66,0,60,0,54,0,55,0,49,0,39,0,42,0,37,0,23,0,17,0,7,0, +255,255,255,255,246,255,238,255,236,255,231,255,234,255,235,255,229,255,225,255,213,255,206,255,209,255,213,255,233,255,248,255, +250,255,13,0,28,0,33,0,46,0,57,0,75,0,100,0,107,0,111,0,110,0,93,0,85,0,85,0,80,0,74,0, +65,0,58,0,53,0,46,0,41,0,31,0,23,0,20,0,9,0,0,0,252,255,240,255,238,255,241,255,235,255,230,255, +227,255,219,255,211,255,203,255,199,255,207,255,212,255,218,255,233,255,250,255,7,0,20,0,27,0,32,0,35,0,34,0, +34,0,36,0,37,0,43,0,52,0,60,0,76,0,91,0,93,0,98,0,108,0,115,0,122,0,120,0,112,0,109,0, +104,0,97,0,92,0,84,0,72,0,63,0,56,0,48,0,43,0,42,0,35,0,25,0,29,0,39,0,39,0,34,0, +36,0,38,0,30,0,30,0,41,0,44,0,51,0,63,0,64,0,64,0,57,0,36,0,25,0,16,0,2,0,3,0, +8,0,253,255,234,255,226,255,227,255,220,255,212,255,207,255,192,255,179,255,169,255,150,255,138,255,134,255,129,255,133,255, +142,255,154,255,173,255,191,255,207,255,217,255,220,255,222,255,212,255,196,255,191,255,179,255,168,255,169,255,166,255,169,255, +182,255,189,255,199,255,210,255,212,255,213,255,214,255,203,255,193,255,185,255,178,255,179,255,182,255,185,255,194,255,201,255, +205,255,216,255,231,255,250,255,14,0,23,0,29,0,35,0,33,0,19,0,1,0,242,255,228,255,214,255,207,255,207,255, +205,255,203,255,204,255,206,255,209,255,213,255,216,255,221,255,228,255,238,255,245,255,250,255,1,0,6,0,17,0,38,0, +50,0,50,0,44,0,24,0,0,0,240,255,231,255,232,255,234,255,234,255,239,255,251,255,10,0,16,0,8,0,5,0, +5,0,250,255,242,255,235,255,225,255,228,255,232,255,229,255,223,255,207,255,191,255,185,255,180,255,179,255,181,255,182,255, +183,255,178,255,186,255,204,255,208,255,210,255,213,255,206,255,204,255,199,255,186,255,187,255,188,255,180,255,182,255,190,255, +194,255,189,255,182,255,195,255,220,255,233,255,240,255,248,255,250,255,255,255,12,0,27,0,33,0,34,0,40,0,50,0, +64,0,71,0,68,0,66,0,73,0,90,0,103,0,110,0,122,0,134,0,143,0,151,0,148,0,139,0,133,0,121,0, +110,0,107,0,104,0,101,0,90,0,84,0,90,0,93,0,103,0,109,0,95,0,96,0,100,0,85,0,80,0,77,0, +67,0,69,0,65,0,58,0,65,0,61,0,52,0,50,0,37,0,26,0,17,0,7,0,3,0,0,0,252,255,253,255, +253,255,255,255,5,0,14,0,31,0,48,0,57,0,59,0,61,0,57,0,50,0,45,0,38,0,27,0,27,0,34,0, +34,0,37,0,52,0,65,0,69,0,74,0,78,0,77,0,73,0,65,0,54,0,53,0,53,0,49,0,50,0,48,0, +46,0,46,0,40,0,36,0,28,0,18,0,23,0,22,0,7,0,252,255,244,255,245,255,244,255,237,255,239,255,242,255, +241,255,240,255,221,255,202,255,194,255,170,255,150,255,143,255,139,255,144,255,148,255,156,255,174,255,185,255,191,255,195,255, +193,255,195,255,190,255,191,255,210,255,220,255,225,255,231,255,235,255,2,0,17,0,15,0,23,0,25,0,19,0,12,0, +247,255,226,255,212,255,202,255,198,255,185,255,179,255,184,255,171,255,162,255,162,255,153,255,153,255,149,255,142,255,146,255, +139,255,130,255,122,255,100,255,84,255,74,255,62,255,67,255,75,255,81,255,97,255,110,255,126,255,143,255,147,255,153,255, +154,255,149,255,153,255,161,255,177,255,200,255,225,255,6,0,36,0,49,0,64,0,74,0,77,0,89,0,93,0,85,0, +80,0,77,0,74,0,77,0,79,0,81,0,85,0,81,0,79,0,82,0,75,0,72,0,78,0,77,0,69,0,62,0, +55,0,52,0,52,0,52,0,54,0,54,0,52,0,41,0,21,0,13,0,13,0,10,0,8,0,255,255,238,255,222,255, +200,255,184,255,179,255,165,255,154,255,154,255,154,255,152,255,157,255,170,255,182,255,190,255,207,255,228,255,239,255,254,255, +18,0,28,0,32,0,42,0,47,0,39,0,38,0,46,0,50,0,60,0,75,0,78,0,85,0,98,0,102,0,104,0, +113,0,125,0,130,0,127,0,134,0,141,0,134,0,127,0,121,0,105,0,91,0,80,0,67,0,60,0,56,0,46,0, +40,0,38,0,33,0,32,0,38,0,38,0,32,0,20,0,6,0,4,0,253,255,245,255,2,0,10,0,5,0,9,0, +9,0,254,255,246,255,236,255,228,255,226,255,230,255,242,255,246,255,250,255,11,0,22,0,24,0,23,0,7,0,244,255, +233,255,226,255,224,255,230,255,247,255,3,0,2,0,4,0,5,0,247,255,236,255,229,255,220,255,215,255,211,255,205,255, +201,255,194,255,184,255,181,255,191,255,193,255,178,255,174,255,182,255,179,255,182,255,194,255,195,255,204,255,222,255,227,255, +235,255,242,255,231,255,221,255,222,255,214,255,207,255,204,255,191,255,182,255,187,255,191,255,192,255,187,255,174,255,169,255, +175,255,184,255,202,255,224,255,250,255,24,0,39,0,44,0,48,0,36,0,16,0,0,0,238,255,226,255,222,255,215,255, +221,255,239,255,3,0,31,0,58,0,71,0,75,0,68,0,61,0,52,0,21,0,246,255,235,255,227,255,222,255,229,255, +236,255,239,255,241,255,247,255,3,0,15,0,15,0,13,0,22,0,31,0,37,0,52,0,60,0,61,0,65,0,61,0, +55,0,61,0,56,0,45,0,45,0,46,0,48,0,56,0,59,0,67,0,82,0,93,0,94,0,93,0,88,0,72,0, +53,0,41,0,40,0,53,0,66,0,76,0,96,0,113,0,126,0,142,0,138,0,128,0,124,0,103,0,80,0,67,0, +45,0,28,0,23,0,22,0,26,0,26,0,23,0,22,0,19,0,20,0,19,0,15,0,12,0,3,0,247,255,238,255, +234,255,242,255,250,255,250,255,1,0,8,0,13,0,29,0,47,0,60,0,73,0,87,0,98,0,103,0,100,0,89,0, +74,0,64,0,52,0,37,0,35,0,34,0,35,0,50,0,66,0,74,0,77,0,72,0,60,0,49,0,47,0,42,0, +26,0,20,0,21,0,13,0,14,0,19,0,13,0,9,0,0,0,248,255,253,255,248,255,238,255,239,255,232,255,215,255, +212,255,213,255,208,255,211,255,218,255,218,255,224,255,227,255,211,255,196,255,187,255,177,255,176,255,178,255,180,255,183,255, +184,255,189,255,193,255,194,255,204,255,218,255,233,255,245,255,245,255,250,255,252,255,235,255,232,255,230,255,202,255,184,255, +178,255,169,255,174,255,181,255,185,255,192,255,196,255,203,255,215,255,227,255,239,255,247,255,251,255,249,255,236,255,220,255, +201,255,176,255,159,255,145,255,128,255,124,255,130,255,137,255,152,255,173,255,184,255,180,255,165,255,142,255,124,255,99,255, +60,255,34,255,18,255,4,255,16,255,50,255,91,255,143,255,184,255,218,255,255,255,15,0,14,0,8,0,250,255,239,255, +240,255,240,255,237,255,236,255,243,255,253,255,7,0,24,0,39,0,49,0,56,0,57,0,55,0,54,0,47,0,33,0, +20,0,15,0,15,0,8,0,5,0,10,0,10,0,11,0,8,0,254,255,253,255,253,255,252,255,11,0,31,0,44,0, +50,0,48,0,45,0,43,0,36,0,23,0,14,0,17,0,20,0,25,0,38,0,48,0,52,0,61,0,70,0,82,0, +97,0,112,0,119,0,115,0,113,0,108,0,91,0,77,0,67,0,61,0,69,0,70,0,64,0,67,0,64,0,50,0, +43,0,39,0,28,0,14,0,9,0,19,0,39,0,61,0,77,0,96,0,118,0,125,0,122,0,117,0,107,0,99,0, +84,0,62,0,51,0,43,0,34,0,33,0,28,0,29,0,37,0,39,0,45,0,46,0,41,0,52,0,60,0,57,0, +56,0,52,0,48,0,46,0,38,0,36,0,48,0,62,0,69,0,80,0,97,0,101,0,97,0,105,0,112,0,116,0, +110,0,90,0,78,0,65,0,37,0,16,0,248,255,230,255,224,255,204,255,190,255,203,255,210,255,219,255,230,255,223,255, +218,255,209,255,187,255,178,255,170,255,154,255,145,255,132,255,120,255,116,255,111,255,114,255,122,255,130,255,152,255,166,255, +171,255,195,255,218,255,223,255,232,255,254,255,23,0,40,0,48,0,62,0,79,0,89,0,98,0,110,0,121,0,129,0, +131,0,134,0,133,0,118,0,101,0,89,0,71,0,53,0,40,0,23,0,10,0,5,0,250,255,235,255,225,255,212,255, +199,255,200,255,197,255,179,255,168,255,167,255,157,255,139,255,130,255,129,255,125,255,117,255,112,255,112,255,130,255,152,255, +156,255,158,255,172,255,184,255,195,255,210,255,222,255,239,255,254,255,3,0,10,0,21,0,25,0,29,0,46,0,67,0, +77,0,77,0,75,0,71,0,65,0,58,0,48,0,41,0,40,0,34,0,27,0,25,0,25,0,28,0,29,0,19,0, +12,0,17,0,17,0,11,0,8,0,10,0,17,0,26,0,35,0,37,0,20,0,4,0,251,255,229,255,208,255,192,255, +166,255,150,255,152,255,157,255,169,255,177,255,182,255,202,255,206,255,194,255,197,255,198,255,188,255,176,255,168,255,171,255, +178,255,179,255,191,255,215,255,246,255,29,0,66,0,93,0,113,0,134,0,152,0,161,0,165,0,157,0,135,0,106,0, +71,0,43,0,24,0,2,0,254,255,21,0,52,0,95,0,128,0,142,0,167,0,178,0,147,0,111,0,75,0,25,0, +236,255,208,255,198,255,206,255,220,255,233,255,246,255,3,0,8,0,251,255,228,255,201,255,163,255,122,255,95,255,73,255, +53,255,41,255,47,255,72,255,106,255,127,255,138,255,151,255,161,255,165,255,169,255,170,255,168,255,176,255,201,255,227,255, +241,255,4,0,23,0,25,0,32,0,49,0,54,0,55,0,49,0,35,0,33,0,34,0,26,0,20,0,12,0,252,255, +236,255,232,255,239,255,240,255,237,255,240,255,243,255,249,255,250,255,238,255,232,255,241,255,2,0,18,0,12,0,246,255, +227,255,208,255,187,255,175,255,175,255,177,255,190,255,221,255,246,255,16,0,51,0,64,0,63,0,64,0,58,0,52,0, +39,0,14,0,6,0,11,0,20,0,42,0,67,0,98,0,129,0,146,0,167,0,184,0,174,0,146,0,119,0,101,0, +93,0,93,0,114,0,139,0,165,0,205,0,234,0,247,0,5,1,5,1,246,0,230,0,212,0,193,0,165,0,138,0, +124,0,97,0,70,0,52,0,31,0,15,0,253,255,219,255,187,255,161,255,140,255,136,255,145,255,168,255,201,255,241,255, +26,0,48,0,55,0,61,0,47,0,14,0,241,255,217,255,201,255,190,255,193,255,220,255,0,0,28,0,50,0,68,0, +80,0,85,0,87,0,91,0,88,0,78,0,63,0,51,0,58,0,70,0,75,0,92,0,117,0,140,0,178,0,208,0, +195,0,168,0,144,0,100,0,44,0,247,255,196,255,160,255,129,255,106,255,121,255,146,255,148,255,142,255,132,255,120,255, +103,255,57,255,6,255,226,254,193,254,170,254,164,254,171,254,195,254,224,254,9,255,72,255,130,255,162,255,175,255,187,255, +204,255,219,255,250,255,42,0,77,0,98,0,110,0,110,0,99,0,73,0,45,0,37,0,39,0,64,0,113,0,149,0, +170,0,187,0,191,0,185,0,151,0,76,0,4,0,198,255,138,255,112,255,123,255,149,255,197,255,5,0,79,0,165,0, +232,0,250,0,238,0,202,0,136,0,55,0,231,255,161,255,112,255,97,255,123,255,171,255,220,255,14,0,55,0,84,0, +103,0,104,0,91,0,51,0,239,255,179,255,128,255,56,255,245,254,205,254,185,254,195,254,237,254,49,255,142,255,228,255, +28,0,64,0,88,0,94,0,78,0,52,0,31,0,17,0,15,0,31,0,64,0,107,0,150,0,190,0,221,0,229,0, +212,0,189,0,176,0,172,0,181,0,191,0,196,0,204,0,198,0,165,0,126,0,73,0,252,255,189,255,142,255,113,255, +119,255,135,255,165,255,221,255,8,0,32,0,44,0,21,0,232,255,173,255,97,255,29,255,234,254,191,254,174,254,194,254, +241,254,42,255,107,255,177,255,233,255,13,0,42,0,60,0,71,0,81,0,77,0,74,0,75,0,64,0,44,0,17,0, +244,255,236,255,248,255,6,0,27,0,66,0,120,0,175,0,220,0,250,0,249,0,213,0,167,0,118,0,66,0,25,0, +0,0,4,0,57,0,135,0,215,0,50,1,141,1,205,1,231,1,216,1,175,1,108,1,254,0,121,0,249,255,137,255, +54,255,7,255,243,254,254,254,44,255,112,255,180,255,236,255,13,0,18,0,11,0,0,0,228,255,190,255,156,255,123,255, +98,255,91,255,100,255,118,255,140,255,170,255,209,255,5,0,66,0,121,0,172,0,219,0,252,0,14,1,17,1,248,0, +207,0,166,0,126,0,94,0,77,0,73,0,86,0,107,0,124,0,140,0,157,0,153,0,115,0,58,0,244,255,171,255, +117,255,87,255,75,255,75,255,86,255,105,255,113,255,97,255,70,255,37,255,3,255,225,254,185,254,159,254,159,254,163,254, +175,254,212,254,4,255,46,255,72,255,73,255,45,255,253,254,191,254,114,254,33,254,225,253,192,253,208,253,19,254,107,254, +201,254,37,255,113,255,176,255,224,255,252,255,7,0,15,0,34,0,52,0,56,0,53,0,57,0,70,0,90,0,119,0, +172,0,252,0,83,1,166,1,246,1,65,2,123,2,145,2,126,2,87,2,42,2,244,1,189,1,152,1,114,1,59,1, +0,1,202,0,143,0,70,0,225,255,97,255,213,254,81,254,224,253,126,253,47,253,5,253,14,253,79,253,182,253,31,254, +131,254,219,254,33,255,91,255,129,255,137,255,125,255,109,255,113,255,144,255,189,255,249,255,71,0,156,0,229,0,30,1, +99,1,174,1,212,1,218,1,206,1,181,1,156,1,100,1,8,1,173,0,78,0,223,255,123,255,30,255,194,254,104,254, +14,254,191,253,123,253,54,253,251,252,206,252,192,252,233,252,71,253,211,253,128,254,42,255,205,255,96,0,202,0,14,1, +48,1,45,1,32,1,47,1,104,1,189,1,27,2,142,2,14,3,123,3,195,3,222,3,205,3,153,3,51,3,170,2, +30,2,125,1,186,0,232,255,18,255,64,254,117,253,194,252,73,252,11,252,3,252,72,252,213,252,145,253,93,254,16,255, +146,255,212,255,191,255,92,255,199,254,31,254,138,253,55,253,92,253,18,254,72,255,219,0,174,2,154,4,97,6,190,7, +141,8,208,8,159,8,29,8,110,7,189,6,49,6,215,5,182,5,210,5,28,6,108,6,171,6,208,6,191,6,98,6, +207,5,15,5,29,4,4,3,206,1,136,0,80,255,70,254,107,253,172,252,28,252,229,251,252,251,62,252,160,252,26,253, +154,253,249,253,23,254,251,253,166,253,19,253,98,252,192,251,98,251,88,251,142,251,13,252,217,252,195,253,161,254,90,255, +231,255,60,0,53,0,224,255,120,255,20,255,182,254,117,254,92,254,105,254,159,254,243,254,84,255,195,255,57,0,163,0, +2,1,83,1,131,1,132,1,90,1,33,1,235,0,171,0,92,0,14,0,199,255,137,255,77,255,8,255,198,254,138,254, +81,254,35,254,252,253,210,253,167,253,119,253,62,253,252,252,170,252,69,252,222,251,137,251,77,251,38,251,21,251,38,251, +98,251,187,251,29,252,138,252,1,253,106,253,197,253,18,254,77,254,154,254,15,255,164,255,91,0,48,1,25,2,24,3, +0,4,175,4,39,5,87,5,66,5,255,4,144,4,18,4,172,3,100,3,57,3,29,3,2,3,221,2,149,2,36,2, +151,1,227,0,6,0,19,255,29,254,53,253,102,252,197,251,87,251,21,251,15,251,64,251,145,251,248,251,85,252,149,252, +208,252,252,252,13,253,5,253,235,252,237,252,27,253,100,253,226,253,128,254,9,255,132,255,239,255,48,0,67,0,23,0, +172,255,29,255,124,254,233,253,144,253,137,253,221,253,134,254,122,255,175,0,227,1,200,2,78,3,125,3,80,3,216,2, +65,2,179,1,84,1,62,1,113,1,1,2,216,2,152,3,21,4,79,4,52,4,198,3,9,3,5,2,233,0,201,255, +169,254,169,253,208,252,14,252,75,251,124,250,195,249,45,249,165,248,35,248,186,247,164,247,242,247,111,248,22,249,244,249, +225,250,183,251,87,252,194,252,24,253,63,253,57,253,99,253,245,253,243,254,88,0,11,2,251,3,243,5,172,7,28,9, +65,10,4,11,105,11,158,11,235,11,115,12,27,13,219,13,200,14,205,15,173,16,38,17,24,17,156,16,194,15,131,14, +247,12,101,11,237,9,120,8,6,7,187,5,156,4,142,3,111,2,47,1,215,255,90,254,171,252,217,250,4,249,51,247, +121,245,9,244,15,243,140,242,118,242,190,242,85,243,38,244,9,245,227,245,178,246,109,247,21,248,195,248,139,249,132,250, +152,251,170,252,215,253,45,255,159,0,51,2,208,3,89,5,208,6,30,8,35,9,222,9,72,10,97,10,43,10,179,9, +21,9,98,8,165,7,235,6,38,6,91,5,177,4,64,4,23,4,56,4,137,4,241,4,91,5,162,5,143,5,5,5, +6,4,165,2,17,1,119,255,237,253,133,252,78,251,68,250,124,249,7,249,210,248,202,248,219,248,232,248,204,248,100,248, +172,247,177,246,111,245,251,243,156,242,158,241,46,241,99,241,73,242,214,243,243,245,120,248,25,251,139,253,143,255,244,0, +205,1,49,2,25,2,173,1,25,1,146,0,90,0,127,0,10,1,10,2,65,3,120,4,154,5,137,6,40,7,75,7, +218,6,12,6,9,5,222,3,168,2,116,1,97,0,143,255,248,254,185,254,226,254,74,255,223,255,159,0,108,1,41,2, +181,2,0,3,1,3,173,2,26,2,114,1,225,0,128,0,43,0,212,255,182,255,230,255,56,0,120,0,162,0,208,0, +254,0,23,1,8,1,216,0,149,0,48,0,158,255,0,255,87,254,149,253,213,252,54,252,215,251,175,251,141,251,124,251, +138,251,155,251,158,251,126,251,60,251,235,250,113,250,218,249,102,249,14,249,185,248,122,248,111,248,161,248,231,248,34,249, +98,249,181,249,20,250,91,250,128,250,187,250,16,251,73,251,115,251,159,251,158,251,45,251,42,250,183,248,16,247,109,245, +61,244,243,243,185,244,113,246,233,248,5,252,120,255,158,2,254,4,142,6,115,7,201,7,179,7,110,7,88,7,210,7, +16,9,251,10,97,13,12,16,142,18,131,20,216,21,128,22,61,22,240,20,223,18,114,16,204,13,7,11,80,8,186,5, +74,3,217,0,67,254,194,251,98,249,238,246,161,244,242,242,42,242,60,242,206,242,192,243,9,245,47,246,188,246,179,246, +71,246,183,245,51,245,14,245,222,245,216,247,184,250,61,254,32,2,6,6,155,9,139,12,153,14,192,15,19,16,197,15, +49,15,179,14,110,14,99,14,167,14,102,15,133,16,151,17,72,18,137,18,92,18,172,17,103,16,171,14,191,12,196,10, +206,8,26,7,203,5,206,4,222,3,168,2,57,1,213,255,102,254,192,252,10,251,141,249,113,248,182,247,84,247,64,247, +76,247,71,247,31,247,209,246,89,246,172,245,231,244,69,244,231,243,240,243,121,244,90,245,84,246,48,247,200,247,39,248, +86,248,91,248,74,248,50,248,72,248,217,248,243,249,120,251,48,253,212,254,77,0,131,1,69,2,136,2,107,2,25,2, +193,1,143,1,198,1,137,2,158,3,202,4,10,6,71,7,55,8,153,8,94,8,160,7,136,6,58,5,228,3,207,2, +25,2,152,1,63,1,33,1,56,1,98,1,100,1,29,1,166,0,252,255,6,255,215,253,163,252,121,251,80,250,79,249, +210,248,248,248,157,249,168,250,26,252,245,253,5,0,241,1,151,3,227,4,170,5,209,5,112,5,201,4,244,3,208,2, +120,1,83,0,153,255,54,255,254,254,243,254,9,255,231,254,104,254,175,253,173,252,58,251,58,249,219,246,173,244,246,242, +144,241,147,240,75,240,226,240,54,242,248,243,14,246,80,248,27,250,1,251,42,251,225,250,69,250,91,249,132,248,121,248, +116,249,44,251,115,253,29,0,173,2,139,4,126,5,203,5,151,5,172,4,26,3,136,1,145,0,82,0,179,0,181,1, +80,3,62,5,28,7,187,8,30,10,27,11,110,11,55,11,233,10,178,10,76,10,125,9,117,8,109,7,65,6,200,4, +27,3,116,1,235,255,100,254,254,252,30,252,199,251,161,251,97,251,254,250,146,250,232,249,167,248,242,246,17,245,38,243, +123,241,116,240,76,240,238,240,23,242,191,243,237,245,68,248,53,250,118,251,37,252,125,252,145,252,142,252,211,252,144,253, +179,254,40,0,12,2,90,4,174,6,171,8,96,10,3,12,158,13,4,15,44,16,83,17,145,18,191,19,203,20,197,21, +142,22,229,22,189,22,52,22,91,21,77,20,37,19,1,18,18,17,92,16,201,15,83,15,178,14,109,13,81,11,129,8, +80,5,250,1,139,254,77,251,184,248,6,247,17,246,128,245,27,245,187,244,17,244,246,242,157,241,49,240,198,238,129,237, +148,236,56,236,134,236,83,237,94,238,118,239,124,240,102,241,57,242,255,242,184,243,106,244,49,245,88,246,16,248,65,250, +211,252,171,255,151,2,111,5,8,8,67,10,37,12,182,13,12,15,73,16,130,17,227,18,98,20,177,21,170,22,35,23, +241,22,42,22,218,20,12,19,241,16,186,14,159,12,173,10,180,8,162,6,94,4,189,1,210,254,213,251,249,248,86,246, +238,243,243,241,161,240,234,239,124,239,4,239,111,238,188,237,188,236,112,235,41,234,20,233,43,232,125,231,64,231,157,231, +147,232,32,234,100,236,129,239,58,243,248,246,133,250,227,253,169,0,94,2,11,3,15,3,212,2,103,2,181,1,19,1, +238,0,89,1,35,2,25,3,48,4,75,5,31,6,162,6,248,6,9,7,146,6,146,5,100,4,69,3,25,2,223,0, +232,255,129,255,138,255,182,255,29,0,249,0,255,1,200,2,102,3,32,4,242,4,136,5,213,5,33,6,123,6,144,6, +49,6,162,5,28,5,112,4,141,3,220,2,202,2,84,3,45,4,73,5,204,6,122,8,229,9,216,10,58,11,238,10, +195,9,178,7,34,5,122,2,203,255,64,253,84,251,89,250,24,250,50,250,163,250,120,251,87,252,185,252,136,252,19,252, +110,251,87,250,208,248,78,247,26,246,241,244,164,243,154,242,47,242,52,242,90,242,164,242,82,243,72,244,16,245,162,245, +56,246,194,246,27,247,87,247,197,247,162,248,190,249,13,251,245,252,168,255,234,2,117,6,80,10,153,14,231,18,158,22, +143,25,203,27,66,29,183,29,48,29,51,28,36,27,3,26,229,24,238,23,37,23,96,22,81,21,251,19,131,18,189,16, +108,14,168,11,188,8,205,5,168,2,38,255,127,251,251,247,174,244,148,241,228,238,217,236,101,235,93,234,167,233,37,233, +188,232,67,232,190,231,74,231,232,230,162,230,159,230,9,231,251,231,97,233,56,235,177,237,198,240,77,244,5,248,142,251, +205,254,220,1,166,4,15,7,16,9,193,10,106,12,56,14,22,16,215,17,90,19,136,20,85,21,213,21,46,22,132,22, +242,22,112,23,233,23,100,24,185,24,158,24,238,23,149,22,141,20,247,17,20,15,65,12,174,9,76,7,25,5,63,3, +207,1,156,0,65,255,132,253,108,251,7,249,67,246,44,243,252,239,205,236,172,233,249,230,35,229,67,228,36,228,112,228, +13,229,255,229,3,231,210,231,111,232,254,232,132,233,238,233,107,234,64,235,72,236,50,237,239,237,156,238,110,239,137,240, +23,242,95,244,129,247,91,251,198,255,167,4,166,9,6,14,56,17,65,19,77,20,90,20,95,19,191,17,69,16,110,15, +71,15,235,15,128,17,214,19,60,22,0,24,5,25,56,25,30,24,136,21,189,17,40,13,45,8,23,3,76,254,54,250, +192,246,153,243,201,240,164,238,34,237,215,235,170,234,254,233,243,233,46,234,72,234,57,234,27,234,174,233,196,232,179,231, +245,230,187,230,247,230,238,231,60,234,247,237,166,242,233,247,145,253,76,3,130,8,171,12,207,15,50,18,194,19,97,20, +120,20,199,20,151,21,176,22,5,24,183,25,150,27,38,29,23,30,113,30,20,30,178,28,106,26,180,23,225,20,227,17, +142,14,37,11,25,8,85,5,158,2,12,0,230,253,66,252,225,250,175,249,238,248,143,248,68,248,228,247,115,247,240,246, +50,246,13,245,168,243,70,242,13,241,51,240,26,240,9,241,222,242,87,245,82,248,164,251,230,254,118,1,3,3,195,3, +219,3,79,3,104,2,129,1,226,0,143,0,75,0,20,0,241,255,161,255,14,255,108,254,2,254,233,253,5,254,79,254, +201,254,61,255,112,255,86,255,24,255,205,254,71,254,148,253,39,253,70,253,218,253,197,254,39,0,24,2,101,4,230,6, +110,9,172,11,104,13,107,14,164,14,88,14,163,13,115,12,255,10,164,9,142,8,137,7,69,6,188,4,248,2,241,0, +182,254,121,252,157,250,124,249,42,249,147,249,131,250,164,251,137,252,211,252,67,252,161,250,7,248,11,245,48,242,203,239, +43,238,112,237,210,237,133,239,48,242,63,245,64,248,210,250,201,252,14,254,155,254,140,254,13,254,142,253,131,253,245,253, +216,254,73,0,81,2,198,4,86,7,184,9,222,11,200,13,82,15,84,16,226,16,19,17,213,16,45,16,40,15,198,13, +24,12,63,10,168,8,205,7,141,7,147,7,205,7,68,8,243,8,140,9,155,9,18,9,254,7,81,6,19,4,112,1, +184,254,44,252,235,249,74,248,151,247,179,247,89,248,95,249,170,250,232,251,158,252,168,252,48,252,65,251,161,249,59,247, +151,244,64,242,62,240,122,238,0,237,237,235,82,235,254,234,199,234,194,234,227,234,16,235,121,235,96,236,188,237,44,239, +134,240,245,241,111,243,181,244,176,245,150,246,161,247,195,248,254,249,153,251,201,253,128,0,104,3,71,6,35,9,180,11, +135,13,122,14,159,14,32,14,13,13,128,11,252,9,207,8,191,7,203,6,71,6,115,6,56,7,56,8,90,9,183,10, +255,11,193,12,235,12,171,12,3,12,215,10,70,9,174,7,67,6,229,4,128,3,95,2,175,1,40,1,152,0,41,0, +255,255,221,255,95,255,157,254,236,253,37,253,241,251,69,250,104,248,194,246,96,245,50,244,149,243,177,243,55,244,243,244, +226,245,7,247,63,248,70,249,27,250,226,250,136,251,215,251,231,251,25,252,143,252,39,253,10,254,148,255,223,1,172,4, +149,7,126,10,98,13,235,15,181,17,165,18,244,18,210,18,75,18,176,17,88,17,33,17,204,16,81,16,184,15,5,15, +41,14,52,13,87,12,169,11,30,11,155,10,19,10,122,9,136,8,12,7,18,5,173,2,241,255,0,253,23,250,148,247, +167,245,116,244,50,244,226,244,86,246,48,248,16,250,214,251,37,253,109,253,153,252,226,250,143,248,8,246,181,243,253,241, +62,241,131,241,159,242,95,244,119,246,105,248,198,249,106,250,81,250,104,249,185,247,134,245,55,243,244,240,174,238,169,236, +74,235,181,234,220,234,175,235,88,237,239,239,36,243,175,246,110,250,59,254,236,1,65,5,19,8,116,10,78,12,160,13, +181,14,197,15,232,16,55,18,210,19,234,21,113,24,10,27,97,29,74,31,150,32,251,32,67,32,140,30,24,28,45,25, +13,22,240,18,15,16,91,13,167,10,254,7,100,5,190,2,253,255,42,253,102,250,170,247,178,244,109,241,5,238,148,234, +30,231,178,227,140,224,227,221,201,219,89,218,172,217,194,217,151,218,29,220,98,222,94,225,176,228,15,232,116,235,219,238, +19,242,197,244,245,246,8,249,30,251,61,253,159,255,133,2,18,6,26,10,67,14,70,18,210,21,165,24,184,26,42,28, +44,29,196,29,236,29,232,29,239,29,227,29,152,29,22,29,134,28,241,27,41,27,23,26,214,24,131,23,233,21,218,19, +137,17,8,15,41,12,233,8,94,5,168,1,215,253,214,249,221,245,56,242,215,238,178,235,251,232,238,230,141,229,123,228, +115,227,125,226,139,225,122,224,68,223,21,222,46,221,156,220,127,220,36,221,147,222,134,224,189,226,37,229,184,231,58,234, +108,236,112,238,155,240,9,243,156,245,101,248,169,251,99,255,80,3,74,7,71,11,67,15,254,18,38,22,195,24,247,26, +193,28,57,30,151,31,22,33,160,34,228,35,229,36,191,37,54,38,233,37,191,36,10,35,12,33,171,30,249,27,76,25, +201,22,66,20,105,17,73,14,11,11,128,7,134,3,98,255,98,251,158,247,246,243,110,240,76,237,148,234,14,232,177,229, +174,227,29,226,196,224,116,223,103,222,216,221,184,221,226,221,109,222,150,223,76,225,95,227,216,229,189,232,231,235,10,239, +253,241,242,244,251,247,241,250,213,253,218,0,42,4,160,7,232,10,4,14,13,17,218,19,79,22,122,24,134,26,137,28, +64,30,143,31,159,32,99,33,184,33,148,33,6,33,35,32,210,30,15,29,16,27,239,24,153,22,27,20,174,17,128,15, +121,13,105,11,47,9,172,6,190,3,70,0,88,252,65,248,62,244,126,240,64,237,197,234,55,233,120,232,71,232,131,232, +228,232,25,233,255,232,141,232,213,231,239,230,250,229,81,229,58,229,192,229,225,230,144,232,204,234,123,237,78,240,42,243, +1,246,157,248,233,250,240,252,209,254,176,0,121,2,23,4,157,5,5,7,33,8,210,8,62,9,157,9,234,9,55,10, +191,10,138,11,126,12,103,13,21,14,124,14,122,14,228,13,202,12,93,11,189,9,250,7,83,6,36,5,126,4,76,4, +137,4,46,5,32,6,24,7,195,7,11,8,232,7,71,7,31,6,139,4,212,2,41,1,154,255,95,254,157,253,70,253, +38,253,0,253,207,252,144,252,15,252,80,251,132,250,178,249,200,248,195,247,204,246,13,246,111,245,218,244,92,244,3,244, +198,243,132,243,57,243,12,243,252,242,240,242,240,242,41,243,163,243,42,244,170,244,75,245,42,246,56,247,85,248,142,249, +1,251,140,252,21,254,198,255,164,1,125,3,37,5,141,6,214,7,5,9,253,9,188,10,103,11,26,12,206,12,113,13, +28,14,207,14,85,15,135,15,113,15,63,15,240,14,92,14,150,13,219,12,36,12,71,11,69,10,56,9,21,8,187,6, +43,5,140,3,242,1,66,0,109,254,167,252,45,251,255,249,31,249,153,248,111,248,128,248,149,248,172,248,215,248,224,248, +147,248,5,248,102,247,207,246,59,246,184,245,105,245,80,245,104,245,163,245,237,245,84,246,196,246,29,247,123,247,234,247, +69,248,127,248,167,248,225,248,63,249,187,249,106,250,111,251,203,252,105,254,56,0,65,2,115,4,140,6,98,8,234,9, +29,11,224,11,33,12,253,11,152,11,252,10,69,10,158,9,60,9,49,9,93,9,192,9,109,10,49,11,196,11,255,11, +232,11,139,11,215,10,230,9,221,8,200,7,189,6,192,5,214,4,37,4,148,3,234,2,56,2,149,1,231,0,9,0, +231,254,151,253,37,252,131,250,204,248,61,247,252,245,5,245,91,244,24,244,66,244,186,244,102,245,66,246,76,247,103,248, +127,249,153,250,167,251,159,252,118,253,21,254,163,254,70,255,220,255,96,0,240,0,138,1,31,2,165,2,35,3,170,3, +35,4,134,4,241,4,121,5,31,6,213,6,150,7,98,8,11,9,106,9,118,9,39,9,132,8,147,7,108,6,73,5, +70,4,91,3,148,2,250,1,133,1,26,1,164,0,38,0,150,255,210,254,210,253,173,252,121,251,61,250,13,249,5,248, +50,247,161,246,74,246,26,246,29,246,69,246,115,246,170,246,241,246,72,247,169,247,2,248,95,248,203,248,41,249,109,249, +161,249,208,249,251,249,26,250,80,250,194,250,94,251,16,252,218,252,198,253,205,254,194,255,146,0,76,1,222,1,49,2, +81,2,89,2,92,2,83,2,81,2,138,2,8,3,176,3,126,4,114,5,108,6,66,7,226,7,69,8,99,8,74,8, +248,7,127,7,26,7,216,6,166,6,134,6,121,6,134,6,152,6,147,6,124,6,67,6,189,5,229,4,209,3,162,2, +105,1,23,0,203,254,181,253,204,252,255,251,70,251,147,250,207,249,223,248,205,247,176,246,147,245,131,244,133,243,185,242, +68,242,19,242,18,242,66,242,171,242,77,243,13,244,232,244,253,245,57,247,123,248,185,249,242,250,51,252,104,253,113,254, +100,255,86,0,67,1,45,2,29,3,21,4,1,5,203,5,127,6,43,7,203,7,76,8,160,8,231,8,48,9,96,9, +132,9,176,9,227,9,24,10,62,10,93,10,114,10,91,10,22,10,168,9,12,9,75,8,80,7,27,6,226,4,164,3, +87,2,37,1,24,0,42,255,93,254,177,253,34,253,158,252,20,252,138,251,4,251,139,250,23,250,165,249,88,249,60,249, +56,249,71,249,118,249,196,249,14,250,72,250,147,250,234,250,61,251,148,251,234,251,66,252,174,252,55,253,218,253,155,254, +115,255,80,0,47,1,45,2,75,3,113,4,160,5,214,6,9,8,42,9,22,10,196,10,69,11,131,11,125,11,78,11, +254,10,152,10,29,10,153,9,45,9,222,8,157,8,95,8,17,8,164,7,255,6,12,6,226,4,158,3,66,2,222,0, +140,255,105,254,127,253,202,252,81,252,4,252,183,251,84,251,217,250,74,250,170,249,242,248,52,248,150,247,41,247,238,246, +231,246,25,247,125,247,240,247,93,248,211,248,88,249,216,249,67,250,164,250,15,251,143,251,39,252,222,252,176,253,139,254, +83,255,8,0,184,0,83,1,181,1,220,1,239,1,1,2,22,2,49,2,83,2,134,2,204,2,8,3,57,3,118,3, +153,3,121,3,43,3,201,2,95,2,230,1,84,1,195,0,72,0,203,255,65,255,179,254,28,254,101,253,145,252,198,251, +30,251,149,250,38,250,209,249,148,249,124,249,126,249,134,249,144,249,146,249,118,249,65,249,10,249,219,248,174,248,142,248, +155,248,227,248,104,249,43,250,15,251,7,252,36,253,80,254,105,255,115,0,111,1,83,2,39,3,246,3,197,4,137,5, +33,6,148,6,243,6,41,7,73,7,119,7,167,7,200,7,225,7,247,7,17,8,30,8,15,8,246,7,204,7,127,7, +17,7,131,6,220,5,35,5,80,4,120,3,182,2,2,2,90,1,195,0,62,0,206,255,95,255,226,254,103,254,235,253, +92,253,200,252,64,252,198,251,83,251,225,250,114,250,21,250,207,249,153,249,133,249,163,249,232,249,55,250,131,250,216,250, +73,251,193,251,37,252,134,252,234,252,71,253,166,253,11,254,126,254,251,254,109,255,222,255,99,0,228,0,95,1,231,1, +123,2,27,3,190,3,84,4,231,4,108,5,205,5,23,6,90,6,146,6,185,6,195,6,182,6,162,6,131,6,74,6, +0,6,169,5,53,5,167,4,28,4,173,3,91,3,24,3,227,2,198,2,174,2,122,2,42,2,186,1,21,1,50,0, +33,255,0,254,222,252,189,251,193,250,10,250,149,249,78,249,39,249,22,249,20,249,23,249,16,249,242,248,217,248,227,248, +3,249,63,249,179,249,101,250,88,251,116,252,159,253,229,254,46,0,83,1,95,2,77,3,18,4,165,4,252,4,52,5, +92,5,84,5,54,5,41,5,34,5,34,5,33,5,29,5,48,5,72,5,72,5,64,5,47,5,7,5,196,4,98,4, +232,3,96,3,213,2,85,2,233,1,157,1,92,1,6,1,161,0,50,0,169,255,14,255,107,254,193,253,19,253,106,252, +201,251,45,251,154,250,25,250,169,249,76,249,5,249,205,248,177,248,199,248,251,248,54,249,123,249,205,249,28,250,84,250, +110,250,112,250,106,250,95,250,77,250,78,250,109,250,154,250,224,250,84,251,236,251,144,252,54,253,237,253,175,254,94,255, +249,255,145,0,54,1,227,1,123,2,10,3,178,3,93,4,247,4,138,5,7,6,120,6,222,6,39,7,104,7,167,7, +200,7,206,7,188,7,149,7,94,7,0,7,129,6,253,5,110,5,220,4,94,4,241,3,150,3,62,3,204,2,61,2, +144,1,181,0,178,255,157,254,125,253,90,252,63,251,64,250,106,249,190,248,51,248,209,247,169,247,181,247,220,247,18,248, +85,248,167,248,4,249,105,249,224,249,111,250,12,251,198,251,171,252,175,253,200,254,236,255,5,1,12,2,248,2,181,3, +93,4,5,5,139,5,225,5,37,6,90,6,126,6,143,6,140,6,135,6,134,6,122,6,99,6,68,6,29,6,232,5, +150,5,54,5,209,4,80,4,182,3,27,3,130,2,249,1,128,1,3,1,143,0,43,0,199,255,102,255,16,255,183,254, +73,254,191,253,45,253,167,252,44,252,182,251,71,251,245,250,199,250,168,250,149,250,168,250,220,250,25,251,99,251,188,251, +29,252,123,252,193,252,241,252,39,253,93,253,134,253,175,253,232,253,53,254,165,254,66,255,10,0,227,0,173,1,93,2, +245,2,110,3,190,3,228,3,246,3,249,3,231,3,215,3,218,3,223,3,218,3,200,3,179,3,152,3,89,3,254,2, +147,2,19,2,155,1,60,1,238,0,197,0,197,0,212,0,243,0,29,1,45,1,10,1,180,0,56,0,152,255,205,254, +252,253,71,253,170,252,34,252,183,251,107,251,61,251,31,251,248,250,212,250,207,250,216,250,220,250,232,250,245,250,252,250, +23,251,63,251,117,251,211,251,73,252,214,252,144,253,95,254,47,255,4,0,202,0,132,1,57,2,210,2,77,3,179,3, +1,4,54,4,83,4,109,4,142,4,175,4,219,4,29,5,103,5,185,5,14,6,80,6,122,6,148,6,134,6,82,6, +23,6,207,5,108,5,4,5,153,4,38,4,185,3,66,3,179,2,30,2,134,1,239,0,89,0,192,255,41,255,153,254, +23,254,175,253,83,253,6,253,228,252,228,252,242,252,4,253,11,253,20,253,26,253,18,253,14,253,23,253,39,253,63,253, +87,253,120,253,164,253,202,253,249,253,48,254,93,254,121,254,129,254,141,254,172,254,177,254,159,254,146,254,124,254,90,254, +47,254,254,253,222,253,202,253,175,253,158,253,152,253,136,253,108,253,73,253,40,253,11,253,221,252,147,252,61,252,235,251, +157,251,96,251,81,251,116,251,195,251,61,252,212,252,126,253,50,254,211,254,68,255,120,255,119,255,78,255,8,255,200,254, +159,254,134,254,137,254,191,254,39,255,180,255,76,0,228,0,120,1,247,1,71,2,89,2,59,2,5,2,184,1,101,1, +49,1,43,1,85,1,175,1,47,2,205,2,109,3,242,3,91,4,146,4,128,4,45,4,167,3,6,3,77,2,121,1, +177,0,14,0,142,255,64,255,34,255,48,255,113,255,203,255,45,0,153,0,250,0,63,1,89,1,77,1,42,1,234,0, +142,0,58,0,254,255,218,255,213,255,241,255,49,0,146,0,2,1,115,1,219,1,41,2,73,2,44,2,223,1,113,1, +239,0,120,0,42,0,14,0,40,0,115,0,221,0,88,1,212,1,45,2,91,2,106,2,78,2,10,2,173,1,59,1, +209,0,136,0,94,0,89,0,127,0,195,0,23,1,108,1,188,1,254,1,39,2,56,2,49,2,14,2,223,1,180,1, +141,1,114,1,108,1,119,1,131,1,131,1,116,1,71,1,1,1,184,0,109,0,32,0,214,255,139,255,64,255,246,254, +174,254,111,254,56,254,24,254,18,254,21,254,36,254,68,254,101,254,133,254,165,254,176,254,152,254,101,254,28,254,186,253, +84,253,13,253,232,252,230,252,22,253,109,253,213,253,66,254,162,254,234,254,19,255,21,255,244,254,204,254,184,254,186,254, +211,254,23,255,130,255,10,0,162,0,48,1,175,1,17,2,64,2,77,2,77,2,61,2,49,2,46,2,48,2,67,2, +84,2,83,2,73,2,55,2,27,2,233,1,164,1,106,1,59,1,4,1,204,0,150,0,93,0,31,0,202,255,81,255, +196,254,56,254,165,253,12,253,144,252,51,252,223,251,168,251,153,251,163,251,191,251,227,251,21,252,86,252,145,252,207,252, +33,253,114,253,185,253,250,253,51,254,96,254,125,254,142,254,149,254,146,254,150,254,159,254,167,254,203,254,6,255,73,255, +162,255,9,0,96,0,155,0,180,0,174,0,143,0,84,0,7,0,187,255,125,255,87,255,77,255,111,255,181,255,2,0, +86,0,174,0,250,0,46,1,70,1,66,1,46,1,12,1,217,0,171,0,152,0,149,0,154,0,187,0,244,0,56,1, +134,1,204,1,242,1,248,1,224,1,174,1,102,1,7,1,150,0,27,0,165,255,69,255,235,254,152,254,98,254,66,254, +57,254,82,254,113,254,137,254,161,254,166,254,142,254,101,254,48,254,242,253,186,253,140,253,103,253,84,253,98,253,144,253, +215,253,54,254,171,254,40,255,175,255,71,0,232,0,127,1,3,2,121,2,231,2,70,3,152,3,240,3,88,4,211,4, +97,5,250,5,155,6,55,7,174,7,250,7,30,8,5,8,182,7,72,7,183,6,18,6,111,5,221,4,102,4,9,4, +196,3,152,3,110,3,67,3,25,3,218,2,125,2,6,2,108,1,192,0,28,0,126,255,229,254,99,254,252,253,162,253, +79,253,255,252,170,252,77,252,223,251,94,251,238,250,151,250,74,250,9,250,220,249,186,249,168,249,161,249,158,249,179,249, +238,249,57,250,138,250,240,250,99,251,210,251,63,252,166,252,2,253,87,253,158,253,219,253,23,254,80,254,145,254,226,254, +64,255,170,255,23,0,126,0,227,0,63,1,143,1,206,1,243,1,7,2,21,2,46,2,95,2,155,2,223,2,53,3, +134,3,195,3,236,3,252,3,243,3,203,3,147,3,94,3,37,3,232,2,175,2,119,2,61,2,248,1,164,1,72,1, +236,0,146,0,58,0,235,255,176,255,133,255,100,255,68,255,31,255,0,255,231,254,190,254,139,254,86,254,25,254,218,253, +162,253,109,253,68,253,41,253,16,253,254,252,251,252,2,253,12,253,26,253,39,253,50,253,57,253,56,253,68,253,95,253, +111,253,123,253,150,253,182,253,218,253,3,254,56,254,132,254,228,254,91,255,232,255,126,0,29,1,185,1,62,2,174,2, +2,3,52,3,72,3,66,3,55,3,51,3,45,3,52,3,75,3,99,3,125,3,146,3,159,3,163,3,139,3,74,3, +235,2,123,2,250,1,107,1,230,0,124,0,41,0,239,255,215,255,218,255,230,255,235,255,229,255,209,255,163,255,89,255, +236,254,93,254,191,253,28,253,132,252,17,252,194,251,152,251,163,251,214,251,33,252,118,252,196,252,6,253,46,253,48,253, +27,253,251,252,204,252,156,252,139,252,164,252,234,252,107,253,30,254,228,254,179,255,127,0,54,1,216,1,88,2,165,2, +198,2,201,2,186,2,167,2,162,2,181,2,226,2,37,3,129,3,233,3,73,4,158,4,235,4,30,5,51,5,47,5, +8,5,194,4,107,4,3,4,150,3,52,3,225,2,156,2,111,2,96,2,103,2,108,2,111,2,122,2,114,2,64,2, +240,1,130,1,236,0,65,0,143,255,226,254,77,254,215,253,129,253,85,253,84,253,111,253,142,253,162,253,178,253,176,253, +138,253,82,253,5,253,161,252,66,252,236,251,157,251,119,251,114,251,122,251,159,251,216,251,30,252,115,252,201,252,24,253, +98,253,155,253,195,253,228,253,7,254,56,254,116,254,188,254,21,255,134,255,9,0,131,0,237,0,78,1,141,1,173,1, +191,1,182,1,166,1,162,1,152,1,149,1,172,1,198,1,220,1,249,1,21,2,30,2,22,2,252,1,207,1,156,1, +99,1,46,1,13,1,248,0,238,0,250,0,255,0,251,0,5,1,6,1,249,0,237,0,207,0,162,0,125,0,89,0, +52,0,33,0,16,0,245,255,227,255,215,255,198,255,186,255,188,255,192,255,195,255,186,255,178,255,181,255,181,255,189,255, +211,255,238,255,23,0,60,0,82,0,109,0,127,0,131,0,132,0,107,0,65,0,27,0,232,255,175,255,129,255,93,255, +69,255,48,255,29,255,19,255,23,255,44,255,57,255,62,255,76,255,76,255,68,255,75,255,78,255,84,255,110,255,144,255, +194,255,6,0,74,0,141,0,206,0,14,1,71,1,96,1,95,1,89,1,72,1,44,1,14,1,247,0,229,0,218,0, +226,0,251,0,34,1,82,1,125,1,161,1,175,1,159,1,127,1,68,1,244,0,161,0,64,0,218,255,119,255,19,255, +196,254,136,254,79,254,43,254,27,254,26,254,36,254,28,254,10,254,238,253,178,253,93,253,239,252,122,252,27,252,193,251, +131,251,128,251,164,251,237,251,83,252,194,252,67,253,185,253,10,254,73,254,106,254,96,254,66,254,28,254,242,253,214,253, +218,253,247,253,49,254,149,254,18,255,142,255,1,0,89,0,146,0,182,0,186,0,165,0,143,0,127,0,126,0,148,0, +200,0,26,1,119,1,224,1,89,2,204,2,53,3,153,3,229,3,22,4,55,4,72,4,82,4,97,4,107,4,107,4, +117,4,135,4,138,4,132,4,118,4,90,4,51,4,1,4,204,3,146,3,69,3,234,2,133,2,25,2,172,1,48,1, +162,0,25,0,142,255,7,255,153,254,60,254,243,253,197,253,167,253,152,253,151,253,158,253,170,253,187,253,204,253,208,253, +212,253,232,253,249,253,13,254,51,254,98,254,163,254,249,254,74,255,148,255,230,255,56,0,138,0,222,0,46,1,128,1, +218,1,53,2,139,2,218,2,15,3,39,3,54,3,56,3,44,3,27,3,1,3,233,2,211,2,178,2,152,2,129,2, +89,2,47,2,250,1,174,1,90,1,245,0,133,0,33,0,198,255,109,255,21,255,192,254,116,254,48,254,241,253,181,253, +128,253,83,253,31,253,218,252,146,252,71,252,5,252,211,251,166,251,132,251,113,251,99,251,100,251,119,251,144,251,187,251, +250,251,55,252,112,252,177,252,241,252,44,253,111,253,173,253,229,253,49,254,138,254,234,254,92,255,216,255,88,0,225,0, +94,1,204,1,47,2,119,2,160,2,184,2,196,2,191,2,182,2,190,2,202,2,214,2,249,2,40,3,80,3,110,3, +113,3,97,3,69,3,8,3,163,2,41,2,169,1,46,1,189,0,90,0,9,0,199,255,145,255,100,255,61,255,14,255, +215,254,162,254,93,254,7,254,181,253,91,253,9,253,221,252,194,252,183,252,207,252,253,252,62,253,135,253,198,253,14,254, +93,254,161,254,220,254,13,255,56,255,98,255,140,255,178,255,206,255,232,255,1,0,22,0,63,0,118,0,167,0,218,0, +13,1,59,1,103,1,129,1,137,1,142,1,135,1,121,1,100,1,75,1,60,1,55,1,55,1,62,1,70,1,80,1, +82,1,66,1,50,1,18,1,217,0,158,0,96,0,23,0,201,255,124,255,65,255,26,255,247,254,215,254,189,254,172,254, +163,254,158,254,158,254,155,254,153,254,169,254,189,254,200,254,216,254,238,254,13,255,58,255,96,255,126,255,163,255,200,255, +233,255,6,0,24,0,33,0,48,0,62,0,73,0,91,0,113,0,133,0,158,0,185,0,206,0,219,0,232,0,253,0, +13,1,14,1,19,1,27,1,23,1,16,1,10,1,253,0,244,0,239,0,237,0,251,0,18,1,31,1,31,1,25,1, +22,1,15,1,253,0,232,0,215,0,204,0,208,0,225,0,250,0,34,1,84,1,133,1,181,1,222,1,250,1,12,2, +11,2,238,1,196,1,152,1,105,1,55,1,4,1,215,0,180,0,153,0,135,0,118,0,94,0,64,0,31,0,251,255, +216,255,182,255,149,255,111,255,74,255,50,255,38,255,26,255,12,255,0,255,253,254,5,255,22,255,43,255,69,255,102,255, +128,255,145,255,160,255,166,255,160,255,151,255,141,255,127,255,105,255,91,255,99,255,117,255,136,255,161,255,193,255,232,255, +16,0,45,0,65,0,82,0,92,0,82,0,53,0,18,0,231,255,183,255,155,255,143,255,127,255,115,255,105,255,92,255, +91,255,98,255,104,255,113,255,119,255,115,255,104,255,84,255,48,255,13,255,242,254,212,254,183,254,158,254,137,254,134,254, +156,254,187,254,220,254,251,254,27,255,58,255,78,255,93,255,110,255,123,255,139,255,147,255,140,255,138,255,148,255,169,255, +203,255,235,255,15,0,52,0,74,0,96,0,119,0,126,0,125,0,129,0,130,0,120,0,106,0,102,0,98,0,102,0, +123,0,133,0,130,0,129,0,116,0,88,0,50,0,12,0,246,255,234,255,224,255,220,255,211,255,202,255,190,255,161,255, +122,255,71,255,19,255,242,254,209,254,174,254,160,254,155,254,171,254,222,254,17,255,68,255,131,255,181,255,217,255,0,0, +43,0,75,0,96,0,119,0,143,0,167,0,197,0,228,0,10,1,53,1,79,1,105,1,141,1,161,1,171,1,177,1, +180,1,193,1,207,1,207,1,201,1,190,1,165,1,142,1,136,1,128,1,102,1,71,1,46,1,28,1,16,1,255,0, +232,0,210,0,187,0,157,0,111,0,54,0,248,255,175,255,101,255,36,255,234,254,197,254,177,254,150,254,129,254,117,254, +104,254,101,254,100,254,92,254,83,254,67,254,55,254,64,254,81,254,109,254,157,254,220,254,35,255,94,255,145,255,189,255, +221,255,4,0,51,0,83,0,115,0,148,0,172,0,205,0,243,0,30,1,82,1,118,1,137,1,159,1,169,1,171,1, +170,1,161,1,158,1,156,1,140,1,129,1,133,1,146,1,160,1,171,1,175,1,166,1,139,1,110,1,84,1,56,1, +26,1,250,0,207,0,158,0,105,0,40,0,221,255,154,255,96,255,34,255,220,254,153,254,98,254,51,254,4,254,220,253, +184,253,146,253,126,253,125,253,125,253,132,253,153,253,178,253,216,253,18,254,71,254,112,254,161,254,204,254,230,254,4,255, +34,255,60,255,99,255,134,255,164,255,212,255,11,0,76,0,148,0,212,0,21,1,82,1,125,1,169,1,205,1,226,1, +251,1,16,2,34,2,46,2,30,2,3,2,230,1,193,1,164,1,121,1,46,1,237,0,177,0,104,0,49,0,11,0, +226,255,184,255,143,255,105,255,65,255,21,255,236,254,210,254,192,254,163,254,127,254,103,254,91,254,86,254,89,254,96,254, +118,254,149,254,175,254,204,254,235,254,13,255,54,255,89,255,120,255,156,255,184,255,206,255,238,255,9,0,32,0,66,0, +108,0,150,0,194,0,236,0,17,1,54,1,84,1,96,1,96,1,84,1,63,1,40,1,4,1,211,0,165,0,118,0, +73,0,34,0,251,255,222,255,194,255,159,255,141,255,141,255,136,255,136,255,146,255,159,255,166,255,164,255,167,255,175,255, +177,255,173,255,159,255,139,255,124,255,111,255,108,255,113,255,116,255,121,255,135,255,151,255,166,255,178,255,192,255,209,255, +224,255,240,255,2,0,13,0,31,0,62,0,93,0,118,0,147,0,174,0,196,0,220,0,238,0,242,0,245,0,242,0, +221,0,198,0,177,0,153,0,140,0,124,0,101,0,91,0,84,0,84,0,108,0,130,0,133,0,133,0,123,0,101,0, +77,0,44,0,0,0,211,255,166,255,123,255,90,255,69,255,63,255,63,255,79,255,106,255,127,255,142,255,161,255,168,255, +174,255,190,255,196,255,197,255,205,255,208,255,212,255,230,255,253,255,23,0,55,0,84,0,112,0,137,0,159,0,185,0, +202,0,205,0,197,0,182,0,173,0,161,0,126,0,92,0,66,0,36,0,22,0,21,0,13,0,9,0,10,0,5,0, +3,0,2,0,246,255,230,255,216,255,192,255,161,255,133,255,105,255,76,255,51,255,25,255,2,255,241,254,214,254,187,254, +175,254,164,254,162,254,174,254,185,254,193,254,203,254,209,254,216,254,228,254,240,254,252,254,0,255,251,254,253,254,15,255, +40,255,65,255,104,255,162,255,227,255,37,0,98,0,151,0,208,0,6,1,48,1,92,1,128,1,150,1,184,1,232,1, +22,2,66,2,109,2,141,2,161,2,173,2,172,2,160,2,142,2,111,2,70,2,28,2,241,1,200,1,161,1,104,1, +38,1,236,0,169,0,99,0,38,0,228,255,156,255,94,255,34,255,231,254,184,254,136,254,83,254,44,254,11,254,228,253, +202,253,185,253,169,253,178,253,208,253,237,253,20,254,64,254,100,254,137,254,179,254,219,254,0,255,29,255,62,255,101,255, +152,255,216,255,24,0,94,0,164,0,215,0,254,0,33,1,60,1,88,1,107,1,115,1,129,1,143,1,154,1,171,1, +180,1,185,1,194,1,188,1,165,1,134,1,94,1,51,1,6,1,209,0,157,0,114,0,74,0,36,0,8,0,245,255, +226,255,207,255,187,255,162,255,132,255,101,255,69,255,36,255,2,255,231,254,207,254,190,254,182,254,168,254,157,254,162,254, +175,254,195,254,215,254,224,254,233,254,239,254,244,254,9,255,23,255,28,255,39,255,41,255,47,255,64,255,70,255,74,255, +87,255,105,255,141,255,193,255,242,255,38,0,94,0,150,0,205,0,1,1,43,1,66,1,72,1,75,1,75,1,73,1, +77,1,86,1,90,1,92,1,100,1,113,1,132,1,155,1,161,1,145,1,124,1,98,1,65,1,24,1,227,0,181,0, +146,0,111,0,85,0,50,0,253,255,199,255,142,255,91,255,43,255,231,254,161,254,105,254,44,254,250,253,224,253,201,253, +174,253,150,253,137,253,133,253,138,253,159,253,183,253,200,253,220,253,241,253,14,254,52,254,90,254,130,254,178,254,226,254, +20,255,80,255,149,255,215,255,14,0,72,0,140,0,199,0,241,0,18,1,54,1,95,1,143,1,196,1,233,1,254,1, +28,2,52,2,62,2,79,2,84,2,65,2,36,2,4,2,238,1,217,1,177,1,142,1,116,1,83,1,54,1,21,1, +233,0,187,0,130,0,68,0,17,0,225,255,177,255,132,255,94,255,73,255,67,255,68,255,75,255,77,255,71,255,66,255, +54,255,32,255,22,255,18,255,8,255,10,255,32,255,56,255,79,255,108,255,135,255,168,255,204,255,233,255,253,255,4,0, +9,0,25,0,44,0,78,0,120,0,153,0,188,0,228,0,12,1,47,1,71,1,95,1,118,1,112,1,98,1,87,1, +65,1,39,1,5,1,223,0,199,0,165,0,118,0,80,0,35,0,242,255,210,255,177,255,142,255,114,255,83,255,53,255, +32,255,18,255,252,254,219,254,190,254,162,254,127,254,101,254,93,254,92,254,93,254,91,254,88,254,96,254,109,254,116,254, +121,254,125,254,125,254,130,254,154,254,192,254,229,254,11,255,52,255,98,255,146,255,192,255,234,255,16,0,62,0,118,0, +165,0,196,0,216,0,227,0,241,0,5,1,14,1,18,1,23,1,23,1,22,1,20,1,22,1,29,1,28,1,18,1, +253,0,222,0,195,0,166,0,134,0,108,0,74,0,31,0,249,255,214,255,182,255,158,255,137,255,115,255,103,255,91,255, +60,255,16,255,242,254,223,254,195,254,164,254,139,254,126,254,137,254,162,254,192,254,235,254,38,255,107,255,175,255,239,255, +44,0,92,0,129,0,178,0,239,0,47,1,104,1,151,1,199,1,248,1,26,2,52,2,78,2,88,2,73,2,45,2, +18,2,250,1,224,1,193,1,158,1,119,1,74,1,25,1,226,0,166,0,101,0,32,0,225,255,174,255,118,255,58,255, +13,255,234,254,211,254,206,254,197,254,178,254,163,254,144,254,127,254,122,254,121,254,136,254,156,254,164,254,175,254,197,254, +222,254,251,254,24,255,54,255,85,255,111,255,150,255,206,255,252,255,44,0,93,0,123,0,147,0,168,0,166,0,160,0, +168,0,175,0,182,0,202,0,227,0,243,0,245,0,246,0,250,0,244,0,227,0,206,0,182,0,157,0,125,0,95,0, +80,0,63,0,34,0,12,0,244,255,212,255,187,255,157,255,120,255,92,255,62,255,27,255,250,254,213,254,187,254,177,254, +164,254,162,254,177,254,189,254,200,254,215,254,222,254,233,254,247,254,3,255,24,255,47,255,72,255,116,255,156,255,184,255, +233,255,30,0,66,0,105,0,145,0,171,0,197,0,228,0,8,1,56,1,97,1,119,1,136,1,154,1,167,1,172,1, +166,1,153,1,143,1,129,1,108,1,94,1,87,1,82,1,80,1,75,1,65,1,52,1,24,1,235,0,185,0,131,0, +73,0,17,0,225,255,181,255,130,255,84,255,64,255,53,255,40,255,23,255,252,254,229,254,212,254,186,254,161,254,142,254, +120,254,100,254,94,254,102,254,118,254,140,254,173,254,212,254,249,254,29,255,54,255,76,255,101,255,117,255,127,255,141,255, +154,255,168,255,185,255,197,255,213,255,240,255,19,0,53,0,81,0,103,0,116,0,125,0,137,0,139,0,131,0,125,0, +119,0,109,0,92,0,71,0,53,0,38,0,29,0,16,0,253,255,241,255,239,255,238,255,238,255,233,255,218,255,201,255, +187,255,174,255,160,255,147,255,142,255,147,255,161,255,177,255,191,255,207,255,225,255,250,255,22,0,42,0,58,0,80,0, +105,0,125,0,140,0,163,0,187,0,203,0,214,0,223,0,225,0,236,0,243,0,229,0,217,0,204,0,180,0,169,0, +161,0,140,0,119,0,90,0,53,0,22,0,246,255,216,255,189,255,155,255,129,255,119,255,110,255,101,255,99,255,104,255, +112,255,111,255,104,255,98,255,94,255,90,255,82,255,75,255,81,255,86,255,85,255,92,255,101,255,107,255,119,255,139,255, +161,255,176,255,178,255,180,255,188,255,203,255,223,255,244,255,15,0,49,0,75,0,99,0,129,0,155,0,169,0,177,0, +188,0,194,0,196,0,199,0,203,0,205,0,205,0,206,0,212,0,212,0,205,0,202,0,197,0,183,0,172,0,154,0, +129,0,99,0,66,0,40,0,17,0,250,255,237,255,220,255,188,255,164,255,142,255,118,255,99,255,78,255,65,255,63,255, +55,255,43,255,39,255,38,255,39,255,37,255,34,255,40,255,49,255,56,255,77,255,106,255,125,255,146,255,179,255,214,255, +1,0,39,0,63,0,103,0,145,0,160,0,176,0,197,0,209,0,213,0,208,0,215,0,231,0,237,0,246,0,252,0, +249,0,2,1,254,0,233,0,219,0,197,0,170,0,148,0,122,0,104,0,82,0,47,0,24,0,1,0,229,255,216,255, +200,255,184,255,169,255,137,255,116,255,111,255,89,255,64,255,49,255,32,255,14,255,0,255,255,254,19,255,47,255,72,255, +92,255,106,255,121,255,141,255,167,255,188,255,195,255,205,255,225,255,232,255,232,255,244,255,0,0,7,0,20,0,35,0, +46,0,58,0,74,0,99,0,124,0,134,0,140,0,143,0,125,0,99,0,78,0,58,0,45,0,32,0,17,0,10,0, +3,0,251,255,250,255,0,0,7,0,7,0,254,255,251,255,251,255,247,255,243,255,229,255,205,255,180,255,152,255,128,255, +111,255,92,255,74,255,66,255,76,255,96,255,99,255,100,255,118,255,125,255,121,255,128,255,131,255,132,255,139,255,133,255, +125,255,130,255,139,255,153,255,174,255,198,255,225,255,253,255,30,0,59,0,73,0,80,0,89,0,97,0,101,0,97,0, +100,0,117,0,129,0,137,0,149,0,156,0,155,0,142,0,123,0,110,0,103,0,105,0,105,0,96,0,92,0,85,0, +63,0,40,0,22,0,4,0,239,255,226,255,225,255,215,255,204,255,206,255,200,255,196,255,206,255,207,255,198,255,191,255, +181,255,169,255,159,255,151,255,143,255,139,255,149,255,162,255,177,255,197,255,211,255,229,255,250,255,3,0,6,0,7,0, +3,0,4,0,2,0,255,255,5,0,2,0,252,255,3,0,12,0,25,0,41,0,60,0,89,0,116,0,128,0,135,0, +146,0,159,0,160,0,159,0,159,0,151,0,143,0,132,0,113,0,104,0,100,0,92,0,94,0,97,0,92,0,82,0, +71,0,69,0,72,0,66,0,63,0,59,0,47,0,37,0,25,0,19,0,24,0,21,0,13,0,18,0,20,0,7,0, +253,255,0,0,1,0,248,255,239,255,237,255,243,255,251,255,3,0,15,0,33,0,48,0,48,0,34,0,18,0,254,255, +234,255,227,255,226,255,227,255,229,255,226,255,235,255,1,0,14,0,26,0,33,0,27,0,27,0,25,0,8,0,246,255, +222,255,186,255,158,255,138,255,131,255,132,255,126,255,134,255,159,255,177,255,191,255,205,255,207,255,196,255,176,255,158,255, +153,255,147,255,138,255,139,255,147,255,158,255,166,255,170,255,185,255,202,255,206,255,217,255,239,255,8,0,33,0,43,0, +52,0,80,0,98,0,101,0,111,0,112,0,104,0,97,0,86,0,84,0,86,0,74,0,68,0,78,0,84,0,81,0, +69,0,46,0,18,0,249,255,223,255,195,255,180,255,169,255,152,255,143,255,143,255,143,255,142,255,133,255,121,255,121,255, +119,255,111,255,105,255,100,255,93,255,87,255,88,255,92,255,94,255,97,255,100,255,103,255,105,255,102,255,105,255,115,255, +126,255,137,255,149,255,161,255,175,255,190,255,210,255,230,255,239,255,247,255,252,255,254,255,6,0,22,0,43,0,71,0, +94,0,103,0,105,0,115,0,132,0,140,0,147,0,156,0,158,0,166,0,172,0,166,0,164,0,160,0,151,0,149,0, +143,0,130,0,128,0,126,0,109,0,88,0,71,0,51,0,20,0,245,255,221,255,201,255,190,255,184,255,169,255,150,255, +132,255,120,255,117,255,120,255,121,255,129,255,146,255,155,255,158,255,173,255,182,255,173,255,169,255,171,255,180,255,197,255, +208,255,225,255,3,0,23,0,36,0,63,0,86,0,97,0,110,0,127,0,148,0,160,0,150,0,134,0,129,0,133,0, +139,0,153,0,177,0,198,0,209,0,215,0,215,0,207,0,192,0,167,0,143,0,123,0,90,0,50,0,25,0,7,0, +238,255,213,255,188,255,168,255,153,255,137,255,124,255,126,255,135,255,137,255,135,255,140,255,149,255,149,255,152,255,169,255, +185,255,189,255,189,255,194,255,208,255,218,255,215,255,213,255,223,255,239,255,254,255,11,0,17,0,26,0,46,0,56,0, +62,0,81,0,91,0,90,0,99,0,118,0,144,0,165,0,169,0,166,0,155,0,131,0,112,0,103,0,88,0,73,0, +65,0,59,0,59,0,61,0,49,0,31,0,21,0,5,0,237,255,210,255,185,255,166,255,144,255,122,255,115,255,113,255, +105,255,94,255,76,255,63,255,60,255,58,255,69,255,77,255,78,255,92,255,112,255,140,255,168,255,174,255,180,255,190,255, +189,255,199,255,213,255,217,255,229,255,234,255,239,255,0,0,5,0,6,0,13,0,11,0,15,0,27,0,33,0,39,0, +43,0,43,0,40,0,34,0,41,0,55,0,52,0,41,0,42,0,47,0,45,0,49,0,61,0,68,0,74,0,86,0, +100,0,112,0,108,0,94,0,82,0,63,0,37,0,12,0,251,255,242,255,228,255,216,255,215,255,210,255,210,255,212,255, +197,255,191,255,192,255,177,255,169,255,168,255,160,255,159,255,158,255,156,255,162,255,166,255,163,255,151,255,138,255,136,255, +127,255,123,255,137,255,145,255,150,255,161,255,172,255,191,255,203,255,203,255,212,255,225,255,237,255,252,255,5,0,11,0, +17,0,18,0,19,0,19,0,20,0,23,0,22,0,20,0,24,0,36,0,43,0,38,0,34,0,31,0,27,0,25,0, +16,0,5,0,254,255,236,255,220,255,207,255,189,255,183,255,182,255,184,255,196,255,201,255,207,255,226,255,239,255,249,255, +5,0,6,0,2,0,252,255,246,255,244,255,241,255,244,255,1,0,9,0,24,0,44,0,62,0,86,0,102,0,99,0, +97,0,86,0,62,0,44,0,30,0,22,0,27,0,37,0,56,0,81,0,93,0,89,0,83,0,73,0,57,0,36,0, +17,0,11,0,13,0,18,0,29,0,42,0,53,0,68,0,77,0,79,0,84,0,81,0,72,0,67,0,64,0,62,0, +60,0,58,0,69,0,79,0,76,0,82,0,87,0,80,0,76,0,65,0,43,0,33,0,34,0,35,0,42,0,53,0, +66,0,65,0,51,0,51,0,62,0,69,0,73,0,73,0,81,0,80,0,62,0,61,0,67,0,51,0,25,0,250,255, +226,255,222,255,206,255,183,255,176,255,167,255,158,255,156,255,157,255,168,255,177,255,172,255,175,255,179,255,170,255,158,255, +146,255,136,255,140,255,154,255,167,255,186,255,212,255,223,255,228,255,247,255,5,0,6,0,2,0,250,255,248,255,251,255, +250,255,254,255,2,0,0,0,251,255,239,255,233,255,234,255,234,255,242,255,2,0,24,0,51,0,68,0,82,0,99,0, +101,0,95,0,86,0,78,0,78,0,64,0,43,0,37,0,31,0,26,0,18,0,2,0,252,255,246,255,229,255,223,255, +227,255,225,255,210,255,178,255,152,255,145,255,146,255,145,255,142,255,140,255,125,255,103,255,97,255,94,255,82,255,69,255, +66,255,86,255,100,255,100,255,115,255,121,255,107,255,107,255,103,255,88,255,83,255,78,255,86,255,108,255,125,255,148,255, +180,255,208,255,225,255,231,255,239,255,243,255,247,255,3,0,1,0,251,255,7,0,8,0,10,0,17,0,15,0,27,0, +44,0,54,0,70,0,85,0,92,0,103,0,119,0,139,0,145,0,135,0,124,0,105,0,79,0,54,0,27,0,13,0, +10,0,8,0,12,0,19,0,27,0,34,0,39,0,52,0,57,0,37,0,19,0,8,0,250,255,238,255,224,255,213,255, +211,255,212,255,213,255,212,255,210,255,203,255,192,255,191,255,193,255,188,255,183,255,177,255,180,255,193,255,199,255,208,255, +222,255,227,255,236,255,248,255,6,0,25,0,40,0,56,0,74,0,86,0,110,0,130,0,132,0,135,0,139,0,134,0, +123,0,105,0,92,0,80,0,66,0,65,0,68,0,68,0,71,0,72,0,72,0,80,0,90,0,83,0,60,0,43,0, +34,0,18,0,6,0,0,0,246,255,243,255,242,255,229,255,218,255,213,255,207,255,203,255,200,255,200,255,202,255,199,255, +194,255,193,255,195,255,199,255,206,255,212,255,211,255,207,255,212,255,226,255,241,255,2,0,11,0,10,0,14,0,22,0, +22,0,21,0,25,0,31,0,37,0,37,0,31,0,32,0,41,0,52,0,62,0,69,0,80,0,95,0,103,0,107,0, +109,0,102,0,87,0,73,0,64,0,47,0,15,0,251,255,252,255,0,0,255,255,248,255,245,255,245,255,229,255,214,255, +219,255,218,255,199,255,178,255,169,255,170,255,168,255,162,255,166,255,174,255,177,255,182,255,186,255,187,255,184,255,173,255, +169,255,184,255,200,255,208,255,216,255,225,255,236,255,248,255,0,0,251,255,239,255,228,255,214,255,205,255,218,255,244,255, +8,0,17,0,22,0,30,0,34,0,21,0,5,0,251,255,239,255,236,255,241,255,251,255,19,0,38,0,49,0,70,0, +78,0,69,0,63,0,56,0,48,0,47,0,45,0,50,0,59,0,63,0,68,0,75,0,82,0,83,0,75,0,59,0, +35,0,15,0,5,0,239,255,213,255,208,255,205,255,189,255,181,255,181,255,174,255,162,255,157,255,159,255,159,255,150,255, +141,255,138,255,138,255,137,255,134,255,130,255,128,255,126,255,120,255,127,255,140,255,137,255,134,255,141,255,146,255,157,255, +167,255,173,255,189,255,209,255,226,255,241,255,247,255,2,0,24,0,38,0,39,0,36,0,34,0,32,0,27,0,27,0, +33,0,38,0,42,0,52,0,66,0,67,0,62,0,69,0,71,0,65,0,63,0,52,0,39,0,39,0,37,0,34,0, +39,0,45,0,47,0,49,0,51,0,53,0,50,0,47,0,38,0,29,0,27,0,21,0,11,0,5,0,0,0,255,255, +251,255,238,255,232,255,229,255,222,255,222,255,228,255,239,255,245,255,241,255,240,255,235,255,221,255,217,255,217,255,210,255, +208,255,213,255,218,255,219,255,226,255,229,255,219,255,219,255,235,255,245,255,248,255,241,255,231,255,227,255,218,255,209,255, +211,255,214,255,215,255,218,255,228,255,248,255,9,0,15,0,17,0,24,0,37,0,50,0,59,0,65,0,69,0,76,0, +78,0,72,0,68,0,59,0,45,0,38,0,36,0,43,0,54,0,54,0,57,0,63,0,64,0,65,0,61,0,59,0, +57,0,48,0,53,0,65,0,60,0,47,0,34,0,17,0,3,0,245,255,230,255,225,255,224,255,214,255,209,255,222,255, +219,255,194,255,178,255,164,255,156,255,165,255,167,255,166,255,169,255,163,255,159,255,160,255,159,255,164,255,163,255,163,255, +180,255,186,255,180,255,168,255,151,255,153,255,166,255,177,255,198,255,222,255,242,255,4,0,18,0,35,0,43,0,38,0, +43,0,54,0,64,0,81,0,98,0,124,0,148,0,150,0,146,0,149,0,154,0,157,0,159,0,162,0,159,0,146,0, +134,0,109,0,81,0,70,0,62,0,51,0,55,0,61,0,61,0,53,0,40,0,36,0,38,0,23,0,252,255,237,255, +230,255,219,255,204,255,199,255,201,255,197,255,189,255,187,255,188,255,191,255,195,255,193,255,196,255,197,255,185,255,187,255, +198,255,191,255,184,255,192,255,206,255,217,255,218,255,220,255,229,255,232,255,237,255,249,255,249,255,244,255,244,255,249,255, +10,0,32,0,39,0,36,0,42,0,53,0,59,0,63,0,57,0,36,0,22,0,15,0,2,0,251,255,249,255,248,255, +252,255,0,0,10,0,14,0,5,0,252,255,238,255,219,255,210,255,199,255,188,255,182,255,169,255,152,255,142,255,139,255, +136,255,135,255,147,255,162,255,175,255,198,255,210,255,203,255,197,255,190,255,196,255,205,255,197,255,198,255,215,255,228,255, +243,255,253,255,254,255,3,0,9,0,18,0,29,0,47,0,67,0,70,0,72,0,83,0,82,0,84,0,97,0,107,0, +117,0,122,0,128,0,139,0,138,0,127,0,113,0,98,0,93,0,84,0,67,0,56,0,40,0,24,0,16,0,10,0, +10,0,9,0,6,0,10,0,9,0,3,0,247,255,227,255,212,255,200,255,191,255,190,255,188,255,190,255,193,255,191,255, +195,255,194,255,188,255,195,255,196,255,193,255,202,255,208,255,214,255,224,255,229,255,229,255,225,255,233,255,243,255,236,255, +231,255,235,255,234,255,247,255,9,0,14,0,15,0,16,0,15,0,14,0,15,0,13,0,5,0,8,0,20,0,21,0, +26,0,29,0,23,0,32,0,41,0,44,0,59,0,63,0,55,0,44,0,22,0,11,0,16,0,13,0,8,0,8,0, +8,0,10,0,9,0,9,0,7,0,247,255,223,255,204,255,197,255,186,255,161,255,149,255,155,255,164,255,176,255,191,255, +202,255,203,255,198,255,199,255,205,255,200,255,190,255,191,255,201,255,211,255,229,255,5,0,30,0,37,0,40,0,39,0, +37,0,36,0,32,0,27,0,23,0,16,0,7,0,253,255,244,255,241,255,240,255,242,255,244,255,249,255,5,0,11,0, +8,0,9,0,18,0,26,0,25,0,20,0,21,0,23,0,18,0,18,0,18,0,5,0,243,255,234,255,239,255,247,255, +240,255,236,255,249,255,252,255,245,255,0,0,13,0,7,0,1,0,3,0,2,0,250,255,235,255,215,255,200,255,202,255, +209,255,208,255,215,255,229,255,230,255,234,255,246,255,250,255,3,0,10,0,4,0,6,0,17,0,19,0,20,0,16,0, +7,0,10,0,13,0,3,0,255,255,4,0,1,0,248,255,239,255,234,255,232,255,224,255,218,255,220,255,225,255,233,255, +236,255,231,255,233,255,238,255,234,255,232,255,240,255,253,255,7,0,13,0,23,0,34,0,35,0,38,0,43,0,44,0, +43,0,47,0,60,0,61,0,51,0,58,0,68,0,61,0,61,0,63,0,56,0,58,0,66,0,72,0,83,0,90,0, +90,0,89,0,88,0,78,0,70,0,74,0,75,0,62,0,52,0,47,0,41,0,31,0,22,0,24,0,31,0,34,0, +44,0,59,0,72,0,73,0,73,0,80,0,74,0,63,0,63,0,54,0,47,0,59,0,59,0,54,0,48,0,31,0, +26,0,29,0,24,0,33,0,49,0,50,0,39,0,22,0,13,0,6,0,253,255,4,0,11,0,5,0,11,0,22,0, +22,0,13,0,5,0,6,0,2,0,244,255,232,255,227,255,231,255,230,255,220,255,222,255,233,255,238,255,245,255,251,255, +252,255,3,0,12,0,21,0,27,0,26,0,24,0,17,0,2,0,241,255,232,255,230,255,227,255,234,255,245,255,244,255, +242,255,244,255,249,255,1,0,243,255,217,255,207,255,192,255,173,255,171,255,169,255,166,255,170,255,177,255,195,255,214,255, +223,255,237,255,248,255,247,255,249,255,244,255,226,255,212,255,207,255,204,255,205,255,208,255,210,255,212,255,219,255,238,255, +2,0,15,0,31,0,37,0,32,0,27,0,29,0,39,0,49,0,43,0,34,0,30,0,33,0,47,0,49,0,44,0, +56,0,58,0,46,0,39,0,27,0,11,0,0,0,242,255,233,255,222,255,213,255,219,255,214,255,198,255,196,255,193,255, +186,255,175,255,156,255,146,255,146,255,142,255,138,255,129,255,118,255,115,255,118,255,122,255,121,255,125,255,132,255,134,255, +146,255,161,255,166,255,186,255,218,255,240,255,2,0,15,0,25,0,38,0,43,0,41,0,46,0,55,0,62,0,67,0, +82,0,103,0,117,0,129,0,136,0,136,0,134,0,120,0,105,0,98,0,83,0,71,0,68,0,67,0,64,0,56,0, +58,0,75,0,76,0,76,0,87,0,79,0,60,0,46,0,31,0,19,0,6,0,249,255,243,255,238,255,234,255,235,255, +235,255,232,255,225,255,224,255,225,255,207,255,185,255,182,255,185,255,190,255,194,255,193,255,201,255,214,255,216,255,222,255, +234,255,242,255,1,0,18,0,25,0,27,0,31,0,47,0,65,0,68,0,73,0,86,0,83,0,73,0,60,0,46,0, +54,0,67,0,68,0,79,0,92,0,98,0,113,0,127,0,132,0,136,0,136,0,127,0,107,0,91,0,86,0,72,0, +59,0,58,0,53,0,50,0,47,0,37,0,33,0,24,0,12,0,5,0,239,255,214,255,193,255,165,255,155,255,150,255, +142,255,158,255,176,255,179,255,188,255,181,255,175,255,182,255,167,255,148,255,147,255,140,255,139,255,151,255,157,255,170,255, +192,255,201,255,208,255,220,255,230,255,233,255,229,255,232,255,241,255,242,255,244,255,251,255,2,0,12,0,23,0,33,0, +46,0,44,0,32,0,34,0,50,0,60,0,67,0,80,0,91,0,94,0,97,0,96,0,87,0,92,0,110,0,121,0, +127,0,118,0,102,0,106,0,104,0,85,0,79,0,82,0,81,0,75,0,53,0,31,0,22,0,10,0,253,255,252,255, +7,0,17,0,18,0,17,0,10,0,5,0,11,0,0,0,229,255,210,255,189,255,173,255,170,255,162,255,168,255,184,255, +196,255,216,255,233,255,236,255,245,255,252,255,250,255,244,255,229,255,219,255,215,255,209,255,213,255,230,255,250,255,14,0, +25,0,33,0,40,0,47,0,59,0,59,0,44,0,38,0,26,0,12,0,16,0,24,0,37,0,48,0,38,0,29,0, +31,0,26,0,23,0,18,0,3,0,1,0,1,0,248,255,246,255,240,255,233,255,247,255,0,0,250,255,249,255,250,255, +253,255,1,0,255,255,3,0,13,0,16,0,24,0,33,0,32,0,30,0,26,0,17,0,8,0,249,255,243,255,248,255, +243,255,248,255,12,0,15,0,11,0,13,0,10,0,2,0,247,255,243,255,243,255,231,255,221,255,222,255,225,255,234,255, +239,255,249,255,27,0,51,0,52,0,55,0,53,0,46,0,42,0,35,0,35,0,41,0,39,0,42,0,47,0,33,0, +16,0,11,0,255,255,235,255,219,255,214,255,215,255,224,255,245,255,11,0,20,0,23,0,30,0,33,0,29,0,30,0, +27,0,15,0,10,0,6,0,250,255,242,255,242,255,244,255,254,255,3,0,243,255,232,255,238,255,234,255,227,255,234,255, +234,255,230,255,240,255,243,255,233,255,222,255,204,255,195,255,194,255,178,255,165,255,169,255,177,255,186,255,197,255,216,255, +238,255,248,255,6,0,26,0,31,0,32,0,32,0,28,0,23,0,15,0,12,0,15,0,17,0,23,0,30,0,31,0, +30,0,29,0,34,0,36,0,24,0,16,0,9,0,255,255,255,255,252,255,0,0,15,0,19,0,33,0,52,0,46,0, +30,0,10,0,247,255,243,255,234,255,231,255,245,255,241,255,233,255,237,255,238,255,249,255,8,0,13,0,16,0,21,0, +21,0,11,0,251,255,244,255,244,255,245,255,251,255,255,255,2,0,9,0,14,0,14,0,10,0,9,0,8,0,4,0, +5,0,250,255,223,255,214,255,217,255,204,255,185,255,174,255,166,255,160,255,158,255,162,255,168,255,175,255,182,255,180,255, +179,255,190,255,205,255,221,255,237,255,246,255,1,0,20,0,38,0,41,0,42,0,51,0,52,0,47,0,48,0,47,0, +45,0,58,0,75,0,83,0,76,0,60,0,49,0,31,0,9,0,9,0,18,0,21,0,18,0,4,0,1,0,12,0, +10,0,6,0,2,0,236,255,223,255,219,255,209,255,206,255,206,255,202,255,199,255,193,255,193,255,208,255,218,255,218,255, +220,255,229,255,238,255,241,255,244,255,247,255,249,255,4,0,22,0,39,0,50,0,56,0,70,0,78,0,63,0,53,0, +58,0,59,0,68,0,80,0,85,0,102,0,117,0,112,0,107,0,102,0,99,0,109,0,114,0,103,0,95,0,99,0, +114,0,115,0,94,0,85,0,87,0,81,0,78,0,68,0,43,0,25,0,16,0,6,0,247,255,234,255,239,255,5,0, +26,0,37,0,39,0,51,0,60,0,43,0,26,0,18,0,6,0,0,0,251,255,236,255,234,255,241,255,244,255,242,255, +232,255,228,255,236,255,236,255,232,255,245,255,13,0,25,0,31,0,48,0,63,0,65,0,68,0,68,0,63,0,62,0, +67,0,75,0,73,0,56,0,50,0,52,0,49,0,42,0,40,0,45,0,56,0,58,0,48,0,40,0,43,0,46,0, +41,0,37,0,35,0,40,0,46,0,32,0,7,0,252,255,251,255,250,255,250,255,3,0,15,0,11,0,253,255,243,255, +235,255,234,255,234,255,230,255,220,255,201,255,186,255,177,255,159,255,144,255,135,255,125,255,121,255,112,255,99,255,96,255, +91,255,88,255,90,255,92,255,109,255,127,255,133,255,147,255,159,255,166,255,189,255,211,255,217,255,226,255,237,255,242,255, +247,255,2,0,6,0,251,255,242,255,239,255,239,255,246,255,250,255,246,255,246,255,249,255,250,255,249,255,244,255,232,255, +213,255,199,255,195,255,191,255,183,255,177,255,167,255,165,255,188,255,227,255,3,0,20,0,28,0,26,0,21,0,28,0, +41,0,50,0,44,0,18,0,253,255,247,255,233,255,206,255,181,255,158,255,143,255,141,255,134,255,118,255,109,255,109,255, +111,255,111,255,111,255,111,255,109,255,94,255,84,255,99,255,121,255,117,255,87,255,47,255,7,255,231,254,205,254,175,254, +147,254,134,254,128,254,119,254,88,254,22,254,197,253,121,253,46,253,242,252,239,252,49,253,160,253,46,254,233,254,196,255, +158,0,86,1,211,1,14,2,26,2,9,2,233,1,201,1,195,1,238,1,80,2,218,2,124,3,40,4,206,4,85,5, +167,5,191,5,159,5,68,5,173,4,226,3,1,3,37,2,77,1,123,0,182,255,12,255,144,254,62,254,11,254,246,253, +252,253,26,254,70,254,94,254,72,254,254,253,141,253,11,253,122,252,222,251,89,251,19,251,54,251,196,251,164,252,207,253, +49,255,168,0,17,2,62,3,37,4,205,4,38,5,67,5,69,5,44,5,29,5,45,5,84,5,165,5,30,6,174,6, +82,7,228,7,66,8,106,8,96,8,45,8,194,7,17,7,40,6,12,5,208,3,149,2,95,1,50,0,32,255,59,254, +145,253,34,253,233,252,205,252,159,252,82,252,243,251,129,251,245,250,63,250,108,249,166,248,3,248,150,247,128,247,187,247, +48,248,222,248,187,249,179,250,183,251,173,252,124,253,36,254,175,254,33,255,127,255,199,255,1,0,70,0,170,0,51,1, +213,1,120,2,20,3,150,3,254,3,96,4,156,4,156,4,117,4,38,4,171,3,33,3,160,2,53,2,209,1,105,1, +22,1,237,0,236,0,243,0,225,0,184,0,135,0,77,0,8,0,163,255,31,255,152,254,12,254,135,253,47,253,3,253, +233,252,216,252,212,252,231,252,7,253,20,253,255,252,220,252,184,252,143,252,119,252,136,252,191,252,25,253,151,253,50,254, +212,254,92,255,196,255,251,255,231,255,164,255,90,255,26,255,241,254,208,254,182,254,183,254,216,254,44,255,173,255,49,0, +175,0,30,1,105,1,136,1,111,1,34,1,178,0,19,0,94,255,202,254,121,254,99,254,121,254,189,254,45,255,171,255, +35,0,131,0,148,0,67,0,206,255,110,255,16,255,128,254,217,253,108,253,78,253,67,253,16,253,204,252,177,252,193,252, +195,252,126,252,247,251,144,251,152,251,249,251,121,252,10,253,198,253,197,254,216,255,188,0,112,1,0,2,98,2,188,2, +46,3,161,3,10,4,133,4,26,5,156,5,235,5,36,6,82,6,63,6,227,5,107,5,233,4,79,4,130,3,121,2, +88,1,55,0,14,255,229,253,203,252,196,251,203,250,223,249,8,249,100,248,12,248,251,247,25,248,101,248,231,248,162,249, +131,250,83,251,240,251,110,252,233,252,113,253,255,253,115,254,220,254,126,255,113,0,152,1,206,2,9,4,77,5,131,6, +133,7,91,8,6,9,116,9,207,9,63,10,171,10,38,11,249,11,5,13,232,13,121,14,182,14,163,14,54,14,78,13, +10,12,182,10,106,9,48,8,38,7,84,6,191,5,105,5,18,5,130,4,195,3,241,2,236,1,113,0,132,254,134,252, +189,250,42,249,165,247,34,246,221,244,20,244,205,243,235,243,57,244,146,244,29,245,240,245,215,246,153,247,57,248,217,248, +108,249,196,249,254,249,83,250,201,250,81,251,243,251,187,252,196,253,40,255,223,0,179,2,120,4,38,6,173,7,208,8, +97,9,118,9,58,9,169,8,190,7,194,6,4,6,130,5,29,5,216,4,188,4,214,4,41,5,132,5,179,5,167,5, +111,5,35,5,196,4,63,4,169,3,49,3,223,2,153,2,77,2,253,1,179,1,114,1,27,1,158,0,13,0,110,255, +198,254,14,254,69,253,135,252,232,251,78,251,178,250,34,250,169,249,85,249,35,249,6,249,7,249,29,249,59,249,93,249, +99,249,26,249,136,248,222,247,37,247,53,246,34,245,78,244,236,243,242,243,72,244,218,244,171,245,192,246,254,247,75,249, +142,250,171,251,166,252,146,253,111,254,49,255,213,255,110,0,20,1,215,1,196,2,226,3,77,5,26,7,10,9,209,10, +118,12,247,13,42,15,218,15,216,15,57,15,72,14,42,13,208,11,50,10,111,8,191,6,64,5,5,4,21,3,89,2, +180,1,8,1,51,0,52,255,4,254,149,252,238,250,20,249,54,247,172,245,125,244,132,243,173,242,217,241,29,241,173,240, +116,240,77,240,54,240,61,240,122,240,222,240,44,241,71,241,46,241,210,240,25,240,27,239,90,238,113,238,156,239,161,241, +22,244,236,246,101,250,53,254,141,1,216,3,3,5,123,5,204,5,10,6,20,6,253,5,7,6,153,6,223,7,147,9, +94,11,2,13,83,14,70,15,210,15,236,15,150,15,192,14,101,13,197,11,58,10,235,8,187,7,116,6,26,5,231,3, +22,3,162,2,56,2,157,1,6,1,192,0,209,0,16,1,89,1,172,1,251,1,233,1,81,1,148,0,225,255,244,254, +167,253,84,252,163,251,234,251,228,252,24,254,59,255,78,0,131,1,183,2,102,3,65,3,122,2,150,1,243,0,133,0, +69,0,119,0,91,1,233,2,211,4,193,6,137,8,7,10,0,11,69,11,230,10,68,10,180,9,30,9,99,8,183,7, +105,7,132,7,160,7,110,7,39,7,234,6,131,6,215,5,236,4,228,3,243,2,40,2,116,1,192,0,19,0,183,255, +188,255,178,255,82,255,208,254,100,254,237,253,43,253,81,252,206,251,205,251,50,252,187,252,62,253,221,253,153,254,32,255, +22,255,97,254,91,253,130,252,223,251,45,251,92,250,195,249,204,249,105,250,72,251,44,252,201,252,6,253,45,253,97,253, +128,253,113,253,51,253,1,253,43,253,225,253,49,255,194,0,12,2,238,2,150,3,27,4,82,4,230,3,227,2,193,1, +237,0,155,0,175,0,225,0,27,1,78,1,71,1,230,0,48,0,42,255,192,253,228,251,253,249,182,248,88,248,187,248, +119,249,60,250,41,251,112,252,224,253,5,255,84,255,156,254,90,253,52,252,71,251,79,250,59,249,101,248,80,248,62,249, +245,250,215,252,109,254,175,255,174,0,110,1,11,2,163,2,22,3,44,3,250,2,230,2,32,3,92,3,56,3,160,2, +210,1,68,1,71,1,187,1,50,2,76,2,15,2,207,1,153,1,252,0,150,255,110,253,205,250,31,248,167,245,76,243, +243,240,186,238,236,236,218,235,216,235,39,237,172,239,193,242,209,245,231,248,36,252,241,254,101,0,104,0,179,255,223,254, +45,254,217,253,255,253,141,254,151,255,103,1,10,4,11,7,229,9,116,12,169,14,83,16,93,17,193,17,99,17,38,16, +20,14,108,11,121,8,101,5,74,2,80,255,192,252,237,250,10,250,247,249,89,250,23,251,87,252,209,253,200,254,207,254, +255,253,125,252,49,250,49,247,35,244,172,241,253,239,78,239,228,239,164,241,77,244,171,247,108,251,13,255,42,2,200,4, +232,6,41,8,97,8,243,7,84,7,195,6,69,6,224,5,206,5,95,6,209,7,39,10,225,12,127,15,252,17,74,20, +248,21,152,22,42,22,225,20,217,18,70,16,148,13,13,11,206,8,211,6,30,5,250,3,170,3,27,4,23,5,37,6, +174,6,174,6,100,6,149,5,196,3,192,0,238,252,18,249,198,245,90,243,215,241,31,241,66,241,82,242,23,244,73,246, +167,248,209,250,71,252,201,252,192,252,178,252,119,252,143,251,242,249,46,248,244,246,147,246,226,246,120,247,15,248,220,248, +68,250,31,252,214,253,15,255,222,255,138,0,86,1,104,2,150,3,113,4,190,4,145,4,48,4,10,4,91,4,231,4, +118,5,45,6,131,7,203,9,119,12,140,14,182,15,62,16,102,16,48,16,92,15,186,13,106,11,181,8,247,5,110,3, +14,1,194,254,150,252,167,250,42,249,66,248,172,247,208,246,52,245,243,242,141,240,107,238,204,236,243,235,232,235,126,236, +185,237,176,239,234,241,133,243,51,244,99,244,121,244,124,244,111,244,109,244,163,244,75,245,175,246,243,248,184,251,94,254, +164,0,132,2,214,3,154,4,236,4,211,4,95,4,198,3,73,3,17,3,1,3,234,2,167,2,25,2,110,1,243,0, +142,0,18,0,182,255,7,0,111,1,137,3,116,5,236,6,244,7,69,8,196,7,154,6,254,4,96,3,79,2,72,2, +116,3,146,5,101,8,184,11,5,15,190,17,173,19,180,20,118,20,167,18,210,15,20,13,18,11,206,9,31,9,255,8, +174,9,74,11,83,13,232,14,69,15,55,14,4,12,230,8,255,4,133,0,190,251,7,247,206,242,120,239,55,237,193,235, +176,234,247,233,150,233,140,233,238,233,125,234,195,234,119,234,179,233,242,232,112,232,211,231,227,230,236,229,124,229,29,230, +8,232,26,235,10,239,123,243,42,248,250,252,180,1,223,5,218,8,93,10,235,10,95,11,33,12,29,13,87,14,56,16, +22,19,219,22,60,27,202,31,222,35,214,38,83,40,92,40,21,39,107,36,135,32,255,27,93,23,21,19,159,15,43,13, +128,11,5,10,67,8,97,6,161,4,206,2,140,0,173,253,93,250,48,247,109,244,170,241,116,238,209,234,13,231,124,227, +104,224,9,222,80,220,0,219,16,218,162,217,153,217,146,217,91,217,58,217,134,217,83,218,181,219,230,221,194,224,198,227, +231,230,211,234,33,240,152,246,130,253,115,4,67,11,124,17,130,22,20,26,108,28,251,29,41,31,80,32,180,33,93,35, +59,37,60,39,15,41,81,42,228,42,175,42,135,41,91,39,60,36,107,32,45,28,161,23,199,18,136,13,12,8,222,2, +82,254,62,250,128,246,73,243,227,240,44,239,135,237,184,235,30,234,240,232,19,232,113,231,32,231,23,231,225,230,56,230, +132,229,56,229,90,229,224,229,240,230,217,232,224,235,213,239,43,244,96,248,48,252,137,255,99,2,143,4,219,5,78,6, +64,6,44,6,109,6,35,7,66,8,217,9,18,12,209,14,174,17,85,20,166,22,104,24,40,25,161,24,20,23,225,20, +21,18,159,14,183,10,241,6,209,3,137,1,36,0,149,255,142,255,169,255,201,255,32,0,125,0,40,0,184,254,137,252, +59,250,39,248,32,246,226,243,208,241,165,240,153,240,112,241,223,242,168,244,159,246,169,248,121,250,147,251,179,251,232,250, +73,249,12,247,173,244,170,242,91,241,227,240,36,241,18,242,218,243,147,246,14,250,187,253,251,0,154,3,157,5,226,6, +51,7,137,6,49,5,187,3,151,2,15,2,97,2,133,3,46,5,20,7,38,9,102,11,157,13,122,15,224,16,214,17, +119,18,208,18,186,18,243,17,95,16,38,14,190,11,160,9,250,7,228,6,128,6,186,6,74,7,235,7,61,8,220,7, +195,6,31,5,243,2,84,0,138,253,220,250,129,248,182,246,210,245,22,246,80,247,13,249,0,251,203,252,245,253,45,254, +116,253,13,252,51,250,23,248,44,246,2,245,199,244,40,245,184,245,90,246,20,247,182,247,31,248,96,248,141,248,222,248, +149,249,173,250,4,252,101,253,134,254,99,255,51,0,255,0,165,1,253,1,30,2,114,2,61,3,71,4,78,5,103,6, +182,7,2,9,214,9,199,9,132,8,236,5,76,2,70,254,147,250,255,247,57,247,125,248,145,251,12,0,75,5,75,10, +2,14,222,15,231,15,132,14,30,12,245,8,115,5,68,2,241,255,171,254,107,254,244,254,252,255,66,1,87,2,183,2, +60,2,253,0,239,254,7,252,105,248,112,244,126,240,169,236,192,232,174,228,188,224,118,221,74,219,70,218,71,218,103,219, +25,222,116,226,156,231,111,236,94,240,85,243,78,245,39,246,239,245,101,245,128,245,190,246,82,249,94,253,218,2,155,9, +16,17,80,24,204,30,72,36,76,40,97,42,162,42,175,41,60,40,203,38,182,37,33,37,8,37,76,37,153,37,146,37, +237,36,89,35,219,32,186,29,235,25,81,21,38,16,167,10,217,4,191,254,142,248,187,242,134,237,169,232,240,227,191,223, +137,220,81,218,185,216,85,215,7,214,8,213,129,212,106,212,190,212,159,213,58,215,168,217,240,220,23,225,239,229,37,235, +170,240,162,246,217,252,185,2,207,7,254,11,90,15,15,18,142,20,121,23,2,27,183,30,48,34,110,37,87,40,98,42, +9,43,55,42,4,40,133,36,229,31,116,26,132,20,80,14,32,8,145,2,46,254,249,250,157,248,200,246,80,245,55,244, +107,243,157,242,107,241,183,239,177,237,140,235,104,233,152,231,125,230,52,230,177,230,36,232,238,234,34,239,86,244,31,250, +41,0,228,5,191,10,100,14,142,16,20,17,45,16,144,14,45,13,128,12,125,12,46,13,202,14,82,17,140,20,12,24, +62,27,146,29,134,30,191,29,23,27,141,22,108,16,96,9,56,2,157,251,249,245,154,241,194,238,119,237,72,237,137,237, +191,237,224,237,245,237,164,237,126,236,140,234,35,232,141,229,226,226,54,224,234,221,163,220,194,220,93,222,101,225,128,229, +35,234,210,238,46,243,239,246,237,249,52,252,53,254,101,0,205,2,91,5,41,8,89,11,250,14,253,18,57,23,157,27, +25,32,98,36,35,40,10,43,174,44,209,44,156,43,133,41,5,39,100,36,200,33,100,31,98,29,166,27,221,25,198,23, +59,21,13,18,1,14,248,8,5,3,93,252,38,245,131,237,207,229,171,222,178,216,45,212,15,209,54,207,137,206,214,206, +179,207,156,208,50,209,93,209,64,209,22,209,66,209,55,210,78,212,179,215,84,220,4,226,179,232,72,240,75,248,6,0, +237,6,204,12,150,17,29,21,49,23,21,24,125,24,30,25,110,26,154,28,157,31,91,35,142,39,199,43,140,47,133,50, +122,52,43,53,94,52,30,50,176,46,108,42,154,37,97,32,26,27,81,22,56,18,181,14,180,11,15,9,151,6,24,4, +35,1,113,253,28,249,66,244,255,238,90,233,75,227,61,221,229,215,136,211,18,208,145,205,83,204,182,204,164,206,153,209, +19,213,161,216,210,219,101,222,68,224,126,225,90,226,63,227,162,228,238,230,96,234,11,239,218,244,157,251,10,3,171,10, +7,18,204,24,167,30,63,35,112,38,76,40,23,41,61,41,2,41,104,40,70,39,131,37,59,35,155,32,193,29,213,26, +241,23,25,21,113,18,17,16,182,13,231,10,95,7,56,3,211,254,119,250,43,246,21,242,135,238,166,235,90,233,147,231, +80,230,137,229,58,229,89,229,196,229,110,230,102,231,152,232,210,233,234,234,219,235,222,236,73,238,71,240,213,242,194,245, +205,248,226,251,18,255,71,2,96,5,91,8,85,11,97,14,86,17,227,19,204,21,215,22,222,22,31,22,32,21,69,20, +173,19,84,19,44,19,36,19,10,19,128,18,38,17,228,14,239,11,143,8,20,5,183,1,134,254,173,251,103,249,156,247, +34,246,14,245,145,244,196,244,102,245,254,245,113,246,245,246,110,247,150,247,77,247,192,246,125,246,254,246,56,248,250,249, +37,252,141,254,14,1,145,3,2,6,83,8,99,10,21,12,128,13,164,14,71,15,63,15,125,14,28,13,95,11,158,9, +54,8,98,7,252,6,177,6,76,6,178,5,193,4,70,3,38,1,122,254,96,251,1,248,184,244,219,241,132,239,172,237, +100,236,223,235,59,236,67,237,135,238,162,239,112,240,17,241,162,241,20,242,104,242,204,242,135,243,206,244,156,246,221,248, +119,251,28,254,129,0,156,2,106,4,226,5,255,6,171,7,228,7,224,7,211,7,208,7,213,7,202,7,187,7,232,7, +80,8,152,8,149,8,136,8,169,8,223,8,243,8,230,8,252,8,57,9,51,9,170,8,214,7,246,6,21,6,50,5, +61,4,53,3,37,2,1,1,175,255,18,254,20,252,217,249,166,247,158,245,204,243,56,242,246,240,53,240,7,240,68,240, +208,240,152,241,134,242,125,243,50,244,118,244,117,244,88,244,32,244,251,243,64,244,47,245,212,246,28,249,5,252,114,255, +9,3,134,6,224,9,20,13,5,16,131,18,121,20,253,21,50,23,54,24,10,25,146,25,225,25,62,26,180,26,24,27, +48,27,171,26,95,25,87,23,140,20,38,17,137,13,239,9,109,6,19,3,202,255,111,252,246,248,113,245,7,242,217,238, +250,235,148,233,213,231,193,230,35,230,179,229,91,229,57,229,84,229,131,229,143,229,91,229,14,229,209,228,159,228,115,228, +107,228,195,228,185,229,119,231,25,234,159,237,210,241,109,246,61,251,4,0,148,4,209,8,158,12,2,16,33,19,248,21, +92,24,50,26,125,27,95,28,7,29,149,29,35,30,198,30,123,31,19,32,90,32,50,32,141,31,85,30,104,28,191,25, +124,22,191,18,155,14,56,10,193,5,84,1,47,253,139,249,95,246,167,243,119,241,201,239,133,238,102,237,20,236,129,234, +207,232,13,231,99,229,27,228,114,227,143,227,96,228,188,229,163,231,26,234,250,236,24,240,62,243,85,246,98,249,71,252, +213,254,249,0,202,2,145,4,132,6,140,8,153,10,189,12,244,14,38,17,20,19,121,20,71,21,136,21,64,21,126,20, +84,19,204,17,249,15,251,13,242,11,227,9,204,7,196,5,212,3,215,1,172,255,72,253,154,250,170,247,172,244,227,241, +153,239,242,237,253,236,206,236,69,237,18,238,27,239,121,240,67,242,120,244,216,246,39,249,104,251,165,253,210,255,208,1, +144,3,70,5,26,7,239,8,204,10,221,12,24,15,78,17,81,19,243,20,36,22,223,22,251,22,96,22,38,21,115,19, +106,17,50,15,218,12,107,10,16,8,255,5,85,4,248,2,163,1,19,0,52,254,253,251,93,249,99,246,76,243,76,240, +115,237,220,234,175,232,13,231,18,230,199,229,40,230,55,231,239,232,36,235,156,237,37,240,142,242,171,244,126,246,21,248, +91,249,85,250,61,251,93,252,251,253,63,0,26,3,100,6,213,9,14,13,199,15,197,17,230,18,58,19,225,18,6,18, +231,16,192,15,205,14,63,14,26,14,59,14,113,14,111,14,231,13,154,12,106,10,119,7,2,4,81,0,188,252,130,249, +191,246,142,244,237,242,202,241,38,241,243,240,255,240,35,241,75,241,130,241,212,241,34,242,67,242,45,242,227,241,130,241, +30,241,200,240,166,240,230,240,177,241,48,243,94,245,16,248,28,251,60,254,41,1,200,3,249,5,145,7,155,8,59,9, +160,9,19,10,217,10,38,12,6,14,68,16,162,18,240,20,216,22,17,24,118,24,240,23,126,22,46,20,19,17,134,13, +238,9,113,6,54,3,146,0,179,254,118,253,174,252,62,252,237,251,122,251,199,250,209,249,164,248,77,247,234,245,153,244, +113,243,136,242,253,241,224,241,42,242,198,242,170,243,209,244,34,246,122,247,173,248,149,249,57,250,197,250,83,251,233,251, +164,252,179,253,32,255,211,0,182,2,187,4,193,6,149,8,13,10,51,11,44,12,241,12,111,13,160,13,132,13,42,13, +170,12,18,12,100,11,131,10,88,9,6,8,151,6,213,4,158,2,21,0,123,253,10,251,209,248,206,246,21,245,172,243, +116,242,79,241,49,240,40,239,77,238,171,237,90,237,119,237,6,238,0,239,75,240,215,241,176,243,200,245,13,248,139,250, +57,253,3,0,213,2,127,5,245,7,62,10,54,12,202,13,250,14,207,15,107,16,230,16,69,17,148,17,218,17,41,18, +164,18,62,19,205,19,37,20,8,20,69,19,218,17,194,15,254,12,198,9,100,6,28,3,42,0,179,253,202,251,110,250, +105,249,139,248,198,247,240,246,223,245,156,244,73,243,2,242,221,240,227,239,43,239,215,238,250,238,133,239,106,240,175,241, +62,243,237,244,153,246,40,248,152,249,243,250,58,252,118,253,174,254,252,255,160,1,154,3,187,5,235,7,18,10,31,12, +13,14,174,15,200,16,82,17,88,17,238,16,37,16,12,15,189,13,90,12,31,11,66,10,193,9,106,9,252,8,63,8, +9,7,41,5,136,2,72,255,179,251,6,248,109,244,40,241,103,238,54,236,175,234,222,233,174,233,9,234,200,234,183,235, +167,236,104,237,245,237,100,238,201,238,74,239,254,239,228,240,41,242,239,243,45,246,212,248,195,251,193,254,155,1,30,4, +60,6,11,8,137,9,164,10,94,11,206,11,31,12,91,12,113,12,118,12,140,12,178,12,222,12,251,12,226,12,137,12, +1,12,83,11,138,10,173,9,187,8,155,7,47,6,130,4,187,2,244,0,54,255,135,253,235,251,109,250,30,249,8,248, +47,247,157,246,78,246,45,246,50,246,77,246,100,246,112,246,129,246,191,246,89,247,82,248,139,249,225,250,45,252,100,253, +148,254,206,255,9,1,26,2,242,2,178,3,125,4,98,5,90,6,95,7,122,8,152,9,159,10,121,11,18,12,108,12, +125,12,59,12,218,11,112,11,225,10,73,10,194,9,76,9,237,8,142,8,31,8,148,7,197,6,172,5,95,4,240,2, +131,1,44,0,226,254,162,253,109,252,65,251,43,250,39,249,24,248,253,246,242,245,253,244,22,244,75,243,159,242,25,242, +208,241,204,241,15,242,144,242,57,243,5,244,6,245,69,246,167,247,14,249,127,250,244,251,93,253,215,254,105,0,245,1, +126,3,249,4,81,6,131,7,127,8,66,9,235,9,140,10,26,11,123,11,182,11,227,11,247,11,219,11,151,11,67,11, +253,10,193,10,111,10,235,9,50,9,79,8,54,7,225,5,98,4,200,2,59,1,230,255,180,254,169,253,231,252,94,252, +7,252,211,251,144,251,69,251,8,251,193,250,103,250,7,250,159,249,53,249,197,248,61,248,159,247,11,247,158,246,100,246, +108,246,194,246,84,247,15,248,247,248,246,249,248,250,2,252,252,252,188,253,61,254,144,254,215,254,54,255,179,255,98,0, +110,1,209,2,96,4,230,5,42,7,12,8,100,8,18,8,37,7,188,5,14,4,100,2,232,0,205,255,52,255,4,255, +32,255,95,255,132,255,117,255,56,255,212,254,74,254,156,253,231,252,76,252,204,251,99,251,21,251,231,250,218,250,224,250, +241,250,7,251,24,251,39,251,72,251,134,251,221,251,83,252,226,252,115,253,1,254,155,254,69,255,6,0,220,0,163,1, +85,2,7,3,183,3,96,4,1,5,136,5,227,5,20,6,28,6,246,5,171,5,73,5,230,4,154,4,97,4,24,4, +195,3,112,3,10,3,136,2,244,1,99,1,237,0,148,0,81,0,51,0,66,0,108,0,147,0,173,0,184,0,177,0, +156,0,127,0,89,0,45,0,248,255,187,255,121,255,50,255,232,254,159,254,111,254,107,254,138,254,202,254,49,255,167,255, +28,0,145,0,9,1,128,1,214,1,243,1,240,1,232,1,214,1,169,1,110,1,74,1,62,1,55,1,50,1,32,1, +238,0,163,0,55,0,172,255,26,255,133,254,250,253,172,253,150,253,154,253,199,253,2,254,19,254,18,254,28,254,51,254, +109,254,194,254,34,255,159,255,44,0,182,0,60,1,149,1,157,1,94,1,234,0,66,0,109,255,149,254,222,253,56,253, +165,252,55,252,231,251,175,251,131,251,80,251,31,251,253,250,226,250,195,250,159,250,137,250,137,250,183,250,25,251,148,251, +19,252,128,252,214,252,59,253,179,253,70,254,29,255,57,0,152,1,38,3,159,4,234,5,254,6,192,7,62,8,125,8, +135,8,143,8,163,8,204,8,38,9,180,9,124,10,97,11,30,12,138,12,145,12,49,12,104,11,41,10,120,8,115,6, +76,4,40,2,9,0,37,254,173,252,140,251,185,250,14,250,92,249,184,248,19,248,62,247,70,246,64,245,64,244,91,243, +139,242,222,241,91,241,17,241,47,241,168,241,101,242,127,243,227,244,133,246,89,248,27,250,190,251,82,253,181,254,229,255, +253,0,6,2,26,3,65,4,109,5,161,6,204,7,216,8,196,9,137,10,40,11,166,11,244,11,2,12,208,11,90,11, +164,10,195,9,207,8,209,7,211,6,229,5,5,5,36,4,59,3,88,2,135,1,189,0,242,255,36,255,68,254,78,253, +76,252,63,251,48,250,50,249,77,248,157,247,61,247,61,247,157,247,63,248,1,249,204,249,135,250,40,251,162,251,223,251, +5,252,65,252,156,252,38,253,225,253,208,254,255,255,91,1,197,2,48,4,143,5,183,6,123,7,243,7,54,8,37,8, +220,7,146,7,80,7,48,7,56,7,90,7,159,7,239,7,37,8,49,8,243,7,106,7,166,6,164,5,112,4,12,3, +134,1,12,0,153,254,46,253,230,251,188,250,192,249,249,248,86,248,225,247,131,247,39,247,213,246,125,246,28,246,193,245, +108,245,56,245,33,245,28,245,73,245,174,245,68,246,19,247,5,248,31,249,100,250,195,251,67,253,205,254,58,0,124,1, +139,2,115,3,47,4,187,4,59,5,170,5,250,5,77,6,152,6,215,6,38,7,120,7,204,7,40,8,106,8,138,8, +125,8,33,8,122,7,158,6,132,5,25,4,108,2,177,0,251,254,73,253,189,251,115,250,111,249,179,248,67,248,22,248, +7,248,247,247,229,247,199,247,122,247,242,246,60,246,126,245,226,244,141,244,154,244,25,245,27,246,179,247,201,249,34,252, +143,254,237,0,17,3,214,4,49,6,36,7,194,7,35,8,105,8,203,8,106,9,55,10,26,11,7,12,243,12,194,13, +81,14,139,14,103,14,232,13,17,13,230,11,115,10,217,8,57,7,176,5,61,4,210,2,130,1,101,0,111,255,139,254, +182,253,238,252,32,252,52,251,42,250,9,249,203,247,120,246,45,245,17,244,60,243,199,242,199,242,64,243,62,244,183,245, +128,247,116,249,110,251,75,253,255,254,118,0,168,1,169,2,133,3,79,4,21,5,221,5,196,6,205,7,211,8,200,9, +168,10,93,11,214,11,8,12,221,11,65,11,56,10,228,8,98,7,199,5,47,4,183,2,112,1,89,0,103,255,160,254, +253,253,89,253,160,252,212,251,234,250,225,249,200,248,154,247,90,246,59,245,102,244,234,243,209,243,29,244,209,244,216,245, +10,247,95,248,200,249,39,251,129,252,193,253,194,254,137,255,40,0,205,0,152,1,103,2,68,3,91,4,163,5,5,7, +107,8,184,9,236,10,233,11,115,12,126,12,30,12,93,11,68,10,236,8,121,7,29,6,246,4,247,3,23,3,103,2, +222,1,87,1,176,0,195,255,136,254,4,253,59,251,69,249,78,247,134,245,10,244,239,242,85,242,55,242,119,242,3,243, +200,243,165,244,129,245,70,246,241,246,143,247,25,248,144,248,19,249,188,249,135,250,102,251,79,252,60,253,52,254,67,255, +86,0,87,1,73,2,58,3,48,4,31,5,3,6,223,6,162,7,68,8,188,8,232,8,203,8,126,8,3,8,113,7, +215,6,55,6,187,5,92,5,239,4,131,4,29,4,136,3,191,2,204,1,163,0,83,255,240,253,137,252,61,251,24,250, +21,249,67,248,168,247,66,247,31,247,57,247,110,247,169,247,228,247,34,248,97,248,164,248,1,249,136,249,58,250,28,251, +34,252,60,253,95,254,133,255,178,0,226,1,8,3,37,4,61,5,80,6,87,7,63,8,10,9,197,9,121,10,40,11, +185,11,37,12,125,12,180,12,187,12,148,12,69,12,206,11,29,11,49,10,40,9,6,8,214,6,164,5,90,4,12,3, +226,1,218,0,236,255,12,255,71,254,179,253,45,253,150,252,247,251,92,251,214,250,79,250,175,249,56,249,9,249,12,249, +78,249,206,249,127,250,102,251,105,252,116,253,117,254,78,255,249,255,125,0,219,0,28,1,65,1,93,1,124,1,151,1, +199,1,24,2,94,2,144,2,178,2,187,2,168,2,118,2,35,2,176,1,22,1,103,0,180,255,245,254,37,254,68,253, +100,252,159,251,227,250,43,250,153,249,41,249,205,248,135,248,78,248,38,248,18,248,3,248,246,247,231,247,211,247,210,247, +250,247,69,248,165,248,52,249,9,250,7,251,15,252,42,253,80,254,109,255,115,0,90,1,47,2,240,2,152,3,50,4, +194,4,67,5,181,5,13,6,58,6,40,6,234,5,161,5,63,5,218,4,151,4,108,4,102,4,141,4,194,4,6,5, +71,5,93,5,78,5,12,5,151,4,12,4,103,3,190,2,46,2,173,1,87,1,51,1,45,1,66,1,74,1,48,1, +23,1,241,0,168,0,55,0,159,255,4,255,119,254,234,253,98,253,254,252,211,252,203,252,207,252,253,252,82,253,196,253, +84,254,222,254,82,255,186,255,4,0,40,0,37,0,0,0,211,255,152,255,79,255,31,255,22,255,62,255,131,255,202,255, +40,0,143,0,202,0,221,0,204,0,141,0,44,0,187,255,84,255,16,255,237,254,229,254,254,254,65,255,147,255,222,255, +41,0,98,0,120,0,124,0,110,0,71,0,5,0,173,255,91,255,30,255,250,254,1,255,30,255,79,255,179,255,54,0, +204,0,111,1,250,1,125,2,249,2,69,3,109,3,123,3,100,3,62,3,12,3,204,2,164,2,151,2,151,2,159,2, +156,2,140,2,110,2,33,2,147,1,205,0,213,255,195,254,178,253,172,252,193,251,254,250,82,250,183,249,58,249,219,248, +153,248,107,248,55,248,5,248,226,247,192,247,154,247,129,247,126,247,147,247,195,247,11,248,102,248,223,248,123,249,51,250, +12,251,12,252,44,253,92,254,137,255,186,0,1,2,91,3,184,4,253,5,37,7,64,8,61,9,11,10,186,10,89,11, +235,11,107,12,205,12,21,13,65,13,59,13,249,12,117,12,172,11,174,10,131,9,54,8,218,6,116,5,1,4,144,2, +49,1,229,255,170,254,129,253,103,252,95,251,112,250,139,249,162,248,204,247,20,247,112,246,224,245,120,245,69,245,62,245, +88,245,148,245,7,246,191,246,182,247,207,248,255,249,57,251,90,252,90,253,77,254,47,255,227,255,108,0,220,0,79,1, +218,1,124,2,46,3,241,3,205,4,202,5,204,6,164,7,66,8,167,8,208,8,183,8,81,8,174,7,222,6,226,5, +216,4,232,3,29,3,132,2,30,2,212,1,135,1,28,1,139,0,221,255,9,255,254,253,207,252,168,251,169,250,226,249, +111,249,78,249,104,249,196,249,93,250,12,251,172,251,31,252,101,252,142,252,149,252,128,252,115,252,128,252,164,252,227,252, +85,253,16,254,250,254,238,255,215,0,159,1,64,2,198,2,37,3,81,3,94,3,105,3,129,3,159,3,169,3,167,3, +176,3,180,3,161,3,137,3,114,3,90,3,49,3,228,2,124,2,9,2,133,1,243,0,83,0,172,255,10,255,109,254, +229,253,119,253,18,253,184,252,118,252,68,252,37,252,31,252,37,252,54,252,94,252,155,252,224,252,44,253,127,253,215,253, +62,254,175,254,34,255,171,255,71,0,220,0,115,1,8,2,123,2,207,2,30,3,103,3,166,3,220,3,245,3,249,3, +17,4,42,4,36,4,30,4,39,4,53,4,65,4,44,4,249,3,183,3,85,3,221,2,101,2,236,1,115,1,4,1, +162,0,63,0,221,255,137,255,21,255,119,254,219,253,53,253,125,252,208,251,34,251,136,250,45,250,3,250,249,249,15,250, +74,250,163,250,255,250,80,251,146,251,196,251,5,252,66,252,79,252,73,252,84,252,116,252,175,252,1,253,114,253,22,254, +233,254,206,255,170,0,114,1,13,2,105,2,151,2,156,2,114,2,51,2,250,1,213,1,212,1,1,2,90,2,204,2, +68,3,170,3,236,3,17,4,18,4,214,3,105,3,214,2,56,2,188,1,88,1,2,1,224,0,249,0,55,1,141,1, +233,1,77,2,174,2,240,2,8,3,254,2,232,2,196,2,139,2,72,2,1,2,200,1,176,1,153,1,117,1,79,1, +34,1,238,0,176,0,74,0,194,255,39,255,110,254,151,253,181,252,204,251,235,250,55,250,189,249,104,249,47,249,26,249, +43,249,80,249,117,249,163,249,215,249,8,250,69,250,138,250,208,250,49,251,186,251,101,252,49,253,31,254,41,255,55,0, +53,1,27,2,222,2,136,3,13,4,84,4,120,4,141,4,143,4,139,4,142,4,176,4,0,5,97,5,197,5,26,6, +69,6,83,6,57,6,232,5,104,5,188,4,247,3,30,3,39,2,67,1,146,0,250,255,137,255,67,255,16,255,231,254, +181,254,120,254,56,254,235,253,149,253,51,253,189,252,82,252,8,252,222,251,214,251,243,251,56,252,169,252,54,253,201,253, +97,254,1,255,169,255,84,0,223,0,60,1,122,1,152,1,173,1,205,1,215,1,223,1,17,2,79,2,138,2,187,2, +209,2,219,2,193,2,100,2,235,1,98,1,195,0,31,0,121,255,228,254,119,254,49,254,18,254,252,253,217,253,184,253, +147,253,100,253,44,253,218,252,120,252,23,252,216,251,212,251,253,251,80,252,215,252,126,253,54,254,238,254,141,255,22,0, +132,0,203,0,4,1,60,1,112,1,153,1,194,1,255,1,88,2,203,2,80,3,206,3,49,4,107,4,109,4,64,4, +239,3,109,3,201,2,43,2,164,1,56,1,222,0,139,0,77,0,33,0,239,255,179,255,108,255,22,255,181,254,57,254, +161,253,24,253,165,252,48,252,192,251,106,251,59,251,63,251,126,251,228,251,84,252,208,252,86,253,208,253,65,254,164,254, +229,254,21,255,68,255,112,255,159,255,201,255,245,255,54,0,138,0,3,1,160,1,68,2,243,2,154,3,33,4,157,4, +4,5,48,5,37,5,250,4,190,4,119,4,51,4,253,3,214,3,198,3,201,3,208,3,206,3,176,3,115,3,37,3, +175,2,12,2,87,1,148,0,206,255,15,255,89,254,195,253,86,253,12,253,225,252,192,252,173,252,173,252,166,252,153,252, +135,252,116,252,124,252,147,252,163,252,185,252,222,252,27,253,118,253,211,253,53,254,165,254,16,255,122,255,223,255,42,0, +92,0,117,0,120,0,121,0,108,0,88,0,100,0,124,0,151,0,205,0,16,1,82,1,139,1,146,1,100,1,21,1, +163,0,32,0,141,255,230,254,88,254,231,253,127,253,48,253,255,252,233,252,244,252,18,253,47,253,68,253,69,253,47,253, +11,253,246,252,9,253,58,253,123,253,213,253,83,254,239,254,158,255,89,0,29,1,209,1,106,2,241,2,105,3,206,3, +31,4,76,4,91,4,101,4,102,4,85,4,62,4,18,4,214,3,181,3,170,3,152,3,115,3,49,3,214,2,119,2, +26,2,180,1,57,1,180,0,41,0,156,255,30,255,171,254,54,254,207,253,117,253,31,253,228,252,191,252,151,252,91,252, +17,252,207,251,157,251,115,251,90,251,86,251,102,251,144,251,217,251,73,252,203,252,73,253,212,253,110,254,12,255,170,255, +64,0,198,0,49,1,134,1,231,1,96,2,227,2,99,3,218,3,74,4,166,4,229,4,16,5,25,5,245,4,188,4, +120,4,50,4,246,3,189,3,125,3,47,3,220,2,151,2,83,2,3,2,166,1,60,1,220,0,130,0,26,0,188,255, +112,255,42,255,242,254,203,254,185,254,182,254,181,254,192,254,205,254,200,254,185,254,156,254,108,254,40,254,214,253,150,253, +114,253,92,253,89,253,107,253,145,253,209,253,31,254,118,254,207,254,17,255,60,255,87,255,87,255,72,255,60,255,61,255, +68,255,75,255,99,255,138,255,176,255,217,255,0,0,30,0,61,0,80,0,72,0,38,0,239,255,187,255,149,255,116,255, +107,255,130,255,167,255,212,255,10,0,68,0,133,0,202,0,250,0,1,1,240,0,215,0,175,0,127,0,86,0,45,0, +15,0,18,0,43,0,73,0,108,0,142,0,180,0,226,0,250,0,238,0,199,0,131,0,43,0,212,255,139,255,95,255, +87,255,88,255,89,255,109,255,146,255,181,255,203,255,207,255,187,255,147,255,89,255,17,255,204,254,151,254,108,254,80,254, +69,254,78,254,115,254,162,254,201,254,240,254,30,255,82,255,135,255,164,255,183,255,208,255,225,255,247,255,36,0,81,0, +121,0,163,0,205,0,1,1,55,1,106,1,163,1,203,1,222,1,231,1,211,1,166,1,113,1,54,1,4,1,223,0, +203,0,204,0,208,0,214,0,232,0,240,0,230,0,203,0,151,0,82,0,250,255,141,255,29,255,189,254,119,254,60,254, +10,254,247,253,7,254,38,254,77,254,124,254,174,254,217,254,246,254,8,255,19,255,23,255,29,255,41,255,58,255,89,255, +148,255,222,255,41,0,137,0,254,0,116,1,233,1,89,2,183,2,2,3,48,3,66,3,67,3,48,3,9,3,208,2, +137,2,65,2,3,2,219,1,189,1,147,1,94,1,32,1,215,0,141,0,53,0,205,255,98,255,240,254,131,254,35,254, +195,253,112,253,54,253,8,253,234,252,218,252,209,252,214,252,234,252,6,253,42,253,93,253,153,253,212,253,10,254,57,254, +103,254,164,254,230,254,41,255,115,255,184,255,8,0,106,0,205,0,59,1,164,1,233,1,27,2,74,2,117,2,166,2, +204,2,226,2,246,2,255,2,248,2,237,2,220,2,193,2,159,2,123,2,83,2,23,2,206,1,124,1,25,1,184,0, +100,0,10,0,171,255,83,255,253,254,176,254,125,254,87,254,50,254,14,254,220,253,162,253,127,253,107,253,93,253,101,253, +128,253,168,253,218,253,16,254,85,254,166,254,243,254,61,255,123,255,171,255,220,255,8,0,43,0,81,0,135,0,204,0, +15,1,72,1,118,1,154,1,194,1,233,1,248,1,239,1,215,1,184,1,145,1,99,1,62,1,32,1,251,0,219,0, +186,0,134,0,70,0,15,0,223,255,171,255,124,255,81,255,31,255,235,254,185,254,130,254,82,254,52,254,25,254,251,253, +227,253,212,253,218,253,244,253,15,254,42,254,75,254,109,254,142,254,186,254,233,254,23,255,69,255,106,255,135,255,173,255, +214,255,244,255,13,0,56,0,106,0,136,0,151,0,165,0,166,0,163,0,169,0,184,0,214,0,243,0,4,1,19,1, +34,1,40,1,38,1,21,1,239,0,191,0,146,0,96,0,38,0,252,255,229,255,204,255,188,255,182,255,173,255,169,255, +173,255,170,255,163,255,153,255,131,255,96,255,61,255,34,255,12,255,9,255,21,255,31,255,43,255,65,255,99,255,145,255, +190,255,233,255,24,0,64,0,96,0,129,0,155,0,175,0,195,0,213,0,226,0,239,0,254,0,17,1,40,1,66,1, +90,1,117,1,147,1,157,1,147,1,143,1,144,1,131,1,109,1,79,1,34,1,242,0,197,0,149,0,106,0,74,0, +49,0,33,0,18,0,248,255,228,255,220,255,210,255,203,255,196,255,188,255,179,255,160,255,132,255,100,255,68,255,45,255, +33,255,29,255,36,255,56,255,85,255,120,255,161,255,203,255,232,255,250,255,7,0,10,0,5,0,250,255,233,255,220,255, +210,255,199,255,190,255,185,255,193,255,210,255,225,255,248,255,25,0,44,0,48,0,43,0,31,0,15,0,253,255,231,255, +210,255,194,255,184,255,179,255,184,255,197,255,218,255,240,255,251,255,250,255,241,255,223,255,199,255,174,255,154,255,141,255, +131,255,122,255,126,255,138,255,152,255,172,255,194,255,217,255,240,255,4,0,18,0,30,0,46,0,57,0,61,0,63,0, +62,0,59,0,61,0,67,0,76,0,84,0,91,0,96,0,91,0,76,0,57,0,36,0,11,0,240,255,208,255,172,255, +138,255,116,255,111,255,114,255,124,255,140,255,154,255,160,255,158,255,158,255,157,255,151,255,149,255,157,255,164,255,176,255, +200,255,226,255,251,255,30,0,67,0,95,0,114,0,122,0,126,0,134,0,140,0,137,0,137,0,139,0,136,0,130,0, +126,0,135,0,156,0,174,0,190,0,201,0,199,0,192,0,183,0,162,0,137,0,117,0,97,0,75,0,54,0,33,0, +11,0,248,255,231,255,217,255,209,255,199,255,179,255,162,255,147,255,126,255,108,255,92,255,77,255,63,255,54,255,53,255, +56,255,59,255,63,255,68,255,73,255,76,255,82,255,98,255,115,255,125,255,140,255,159,255,177,255,200,255,225,255,252,255, +23,0,44,0,66,0,90,0,104,0,115,0,128,0,134,0,137,0,139,0,137,0,137,0,140,0,141,0,141,0,143,0, +143,0,138,0,129,0,118,0,109,0,103,0,94,0,79,0,57,0,29,0,0,0,225,255,197,255,180,255,166,255,150,255, +132,255,114,255,99,255,86,255,75,255,67,255,62,255,58,255,58,255,64,255,73,255,86,255,103,255,129,255,162,255,194,255, +225,255,252,255,23,0,53,0,86,0,115,0,134,0,148,0,161,0,177,0,196,0,217,0,236,0,248,0,251,0,252,0, +250,0,240,0,222,0,201,0,173,0,143,0,115,0,85,0,53,0,15,0,234,255,204,255,178,255,152,255,129,255,108,255, +87,255,66,255,48,255,31,255,10,255,245,254,226,254,213,254,211,254,216,254,224,254,240,254,6,255,30,255,60,255,97,255, +135,255,166,255,194,255,228,255,3,0,27,0,49,0,72,0,97,0,123,0,149,0,172,0,189,0,204,0,218,0,229,0, +238,0,246,0,250,0,249,0,246,0,242,0,230,0,214,0,198,0,176,0,151,0,124,0,97,0,75,0,52,0,24,0, +254,255,231,255,209,255,188,255,167,255,146,255,128,255,111,255,98,255,91,255,85,255,81,255,81,255,82,255,80,255,78,255, +77,255,77,255,82,255,91,255,103,255,120,255,142,255,162,255,184,255,212,255,241,255,11,0,34,0,54,0,75,0,95,0, +109,0,124,0,139,0,150,0,160,0,172,0,182,0,187,0,189,0,196,0,205,0,210,0,211,0,206,0,198,0,188,0, +177,0,162,0,143,0,120,0,96,0,73,0,51,0,35,0,22,0,9,0,252,255,243,255,232,255,221,255,208,255,191,255, +174,255,161,255,149,255,139,255,129,255,119,255,109,255,102,255,100,255,106,255,115,255,122,255,128,255,136,255,146,255,157,255, +169,255,178,255,184,255,193,255,205,255,217,255,229,255,236,255,242,255,251,255,7,0,19,0,34,0,47,0,60,0,75,0, +88,0,93,0,92,0,89,0,86,0,83,0,79,0,74,0,68,0,63,0,57,0,50,0,47,0,42,0,30,0,16,0, +255,255,234,255,214,255,192,255,169,255,151,255,139,255,130,255,121,255,111,255,105,255,106,255,111,255,116,255,117,255,118,255, +119,255,122,255,126,255,135,255,148,255,163,255,180,255,199,255,219,255,233,255,246,255,7,0,22,0,39,0,57,0,73,0, +86,0,97,0,104,0,110,0,117,0,120,0,121,0,119,0,114,0,108,0,105,0,102,0,99,0,94,0,87,0,76,0, +66,0,57,0,47,0,35,0,21,0,8,0,252,255,239,255,223,255,207,255,195,255,185,255,178,255,173,255,165,255,157,255, +150,255,145,255,144,255,146,255,150,255,155,255,158,255,160,255,165,255,174,255,184,255,193,255,203,255,217,255,231,255,248,255, +7,0,16,0,28,0,43,0,53,0,64,0,74,0,75,0,75,0,77,0,75,0,74,0,77,0,76,0,73,0,72,0, +71,0,69,0,68,0,67,0,63,0,55,0,48,0,42,0,35,0,26,0,15,0,7,0,255,255,249,255,243,255,241,255, +240,255,243,255,248,255,251,255,251,255,249,255,247,255,243,255,238,255,233,255,230,255,227,255,226,255,225,255,225,255,230,255, +238,255,249,255,7,0,19,0,29,0,36,0,40,0,41,0,41,0,40,0,40,0,38,0,37,0,39,0,39,0,42,0, +48,0,51,0,58,0,64,0,64,0,63,0,61,0,53,0,49,0,45,0,38,0,32,0,28,0,21,0,14,0,9,0, +5,0,3,0,0,0,252,255,248,255,242,255,239,255,237,255,235,255,232,255,228,255,225,255,221,255,217,255,210,255,206,255, +206,255,205,255,205,255,207,255,210,255,210,255,211,255,212,255,214,255,216,255,217,255,219,255,223,255,225,255,228,255,232,255, +235,255,236,255,238,255,240,255,242,255,242,255,242,255,248,255,253,255,2,0,8,0,14,0,17,0,20,0,23,0,28,0, +32,0,31,0,31,0,32,0,30,0,28,0,27,0,26,0,27,0,30,0,34,0,35,0,33,0,29,0,23,0,18,0, +13,0,7,0,2,0,0,0,250,255,245,255,242,255,238,255,233,255,232,255,227,255,224,255,225,255,226,255,224,255,224,255, +224,255,225,255,227,255,229,255,230,255,229,255,227,255,230,255,235,255,237,255,238,255,240,255,241,255,239,255,239,255,241,255, +241,255,242,255,244,255,246,255,248,255,250,255,253,255,2,0,6,0,9,0,11,0,12,0,11,0,10,0,8,0,6,0, +3,0,1,0,1,0,2,0,4,0,9,0,13,0,18,0,24,0,27,0,27,0,25,0,22,0,21,0,20,0,19,0, +19,0,17,0,15,0,15,0,11,0,8,0,9,0,9,0,10,0,13,0,15,0,17,0,18,0,15,0,13,0,12,0, +8,0,5,0,1,0,251,255,246,255,243,255,241,255,240,255,240,255,243,255,247,255,249,255,249,255,250,255,251,255,248,255, +246,255,244,255,239,255,238,255,240,255,240,255,241,255,243,255,244,255,249,255,253,255,255,255,2,0,6,0,6,0,8,0, +9,0,7,0,7,0,6,0,6,0,6,0,4,0,6,0,8,0,8,0,7,0,7,0,4,0,2,0,254,255,251,255, +250,255,246,255,240,255,236,255,234,255,233,255,233,255,233,255,238,255,244,255,249,255,254,255,2,0,2,0,4,0,4,0, +1,0,253,255,250,255,248,255,245,255,244,255,244,255,245,255,245,255,247,255,250,255,252,255,253,255,254,255,254,255,252,255, +249,255,247,255,244,255,241,255,239,255,240,255,246,255,253,255,3,0,11,0,18,0,24,0,30,0,32,0,31,0,32,0, +32,0,32,0,32,0,28,0,24,0,24,0,25,0,25,0,24,0,23,0,23,0,22,0,19,0,16,0,9,0,0,0, +251,255,244,255,237,255,234,255,232,255,231,255,232,255,232,255,232,255,231,255,229,255,227,255,226,255,225,255,224,255,223,255, +223,255,223,255,225,255,231,255,236,255,241,255,245,255,250,255,1,0,7,0,9,0,10,0,14,0,16,0,19,0,22,0, +22,0,23,0,25,0,24,0,24,0,25,0,27,0,30,0,33,0,34,0,34,0,34,0,33,0,30,0,27,0,24,0, +16,0,8,0,1,0,250,255,245,255,242,255,238,255,235,255,234,255,234,255,234,255,231,255,228,255,226,255,223,255,222,255, +221,255,218,255,216,255,217,255,218,255,222,255,226,255,231,255,238,255,242,255,247,255,254,255,4,0,8,0,14,0,20,0, +23,0,26,0,29,0,31,0,33,0,35,0,38,0,40,0,42,0,43,0,44,0,45,0,46,0,45,0,43,0,40,0, +37,0,31,0,24,0,19,0,15,0,9,0,3,0,254,255,248,255,242,255,238,255,234,255,229,255,225,255,222,255,218,255, +215,255,212,255,208,255,204,255,202,255,199,255,198,255,201,255,204,255,208,255,214,255,217,255,222,255,228,255,231,255,235,255, +243,255,249,255,0,0,8,0,13,0,18,0,25,0,31,0,35,0,38,0,40,0,42,0,40,0,39,0,38,0,37,0, +36,0,34,0,32,0,30,0,27,0,24,0,22,0,19,0,14,0,10,0,5,0,255,255,247,255,242,255,239,255,236,255, +234,255,234,255,233,255,234,255,234,255,233,255,233,255,235,255,234,255,234,255,234,255,233,255,232,255,230,255,230,255,232,255, +235,255,239,255,244,255,250,255,1,0,8,0,14,0,22,0,24,0,22,0,21,0,21,0,20,0,18,0,17,0,16,0, +16,0,17,0,19,0,23,0,26,0,27,0,27,0,26,0,25,0,22,0,19,0,14,0,10,0,6,0,2,0,255,255, +253,255,249,255,248,255,249,255,250,255,249,255,249,255,249,255,248,255,247,255,246,255,245,255,245,255,245,255,246,255,246,255, +248,255,251,255,251,255,253,255,255,255,0,0,1,0,3,0,3,0,3,0,2,0,1,0,2,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,252,255,251,255,252,255,252,255,252,255,254,255,255,255,255,255, +255,255,255,255,253,255,252,255,253,255,254,255,254,255,254,255,253,255,251,255,251,255,250,255,251,255,252,255,253,255,254,255, +255,255,254,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,3,0,5,0,5,0,6,0, +7,0,7,0,7,0,8,0,8,0,7,0,8,0,8,0,5,0,3,0,3,0,3,0,5,0,6,0,6,0,6,0, +7,0,6,0,6,0,7,0,7,0,6,0,3,0,0,0,255,255,253,255,251,255,249,255,249,255,251,255,253,255,255,255, +0,0,255,255,254,255,254,255,254,255,252,255,251,255,250,255,247,255,246,255,246,255,246,255,246,255,248,255,248,255,249,255, +252,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,2,0,3,0,2,0,3,0,4,0,5,0,4,0,3,0,1,0,0,0,255,255,254,255,253,255,254,255,254,255, +255,255,1,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,0,0,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,254,255,253,255,252,255,250,255,250,255,250,255,249,255,249,255,251,255,255,255,1,0,1,0, +2,0,3,0,3,0,4,0,5,0,4,0,4,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0, +6,0,6,0,5,0,4,0,3,0,2,0,0,0,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255, +255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,254,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0, +3,0,4,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +254,255,254,255,253,255,254,255,255,255,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0, +3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255, +254,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,0,0, +0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255, +254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,253,255,255,255,255,255,254,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0, +3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,0,0,0,0,254,255,254,255,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,2,0, +2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/chickenhurt1.pcm b/src/client/sound/data/chickenhurt1.pcm new file mode 100755 index 0000000..3c72542 --- /dev/null +++ b/src/client/sound/data/chickenhurt1.pcm @@ -0,0 +1,1553 @@ +unsigned char PCM_chickenhurt1[49630] = { +1,0,0,0,2,0,0,0,68,172,0,0,231,96,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,1,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0, +1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +2,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +255,255,1,0,0,0,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255, +254,255,254,255,254,255,255,255,0,0,254,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,1,0, +2,0,2,0,2,0,4,0,4,0,3,0,3,0,2,0,0,0,0,0,254,255,252,255,252,255,252,255,254,255,255,255, +255,255,1,0,2,0,1,0,3,0,3,0,1,0,254,255,250,255,250,255,252,255,251,255,252,255,253,255,254,255,255,255, +254,255,254,255,255,255,255,255,254,255,253,255,251,255,251,255,250,255,249,255,249,255,248,255,248,255,247,255,247,255,250,255, +251,255,251,255,253,255,253,255,254,255,253,255,253,255,1,0,1,0,253,255,250,255,248,255,248,255,246,255,240,255,235,255, +230,255,225,255,222,255,221,255,226,255,235,255,242,255,247,255,253,255,3,0,10,0,11,0,12,0,16,0,18,0,18,0, +18,0,18,0,20,0,21,0,23,0,27,0,29,0,31,0,31,0,32,0,35,0,36,0,38,0,39,0,36,0,32,0, +26,0,18,0,11,0,3,0,249,255,238,255,231,255,232,255,235,255,235,255,235,255,238,255,239,255,237,255,235,255,238,255, +243,255,242,255,239,255,237,255,237,255,236,255,231,255,228,255,233,255,239,255,243,255,247,255,255,255,7,0,15,0,22,0, +32,0,44,0,51,0,53,0,57,0,64,0,65,0,59,0,51,0,44,0,43,0,42,0,38,0,38,0,40,0,41,0, +40,0,40,0,42,0,42,0,34,0,24,0,18,0,9,0,247,255,226,255,212,255,202,255,194,255,192,255,198,255,207,255, +211,255,213,255,216,255,221,255,226,255,231,255,233,255,232,255,230,255,227,255,222,255,219,255,219,255,218,255,221,255,229,255, +242,255,0,0,11,0,22,0,33,0,42,0,46,0,45,0,44,0,43,0,34,0,20,0,8,0,254,255,244,255,236,255, +236,255,241,255,239,255,238,255,245,255,0,0,9,0,14,0,20,0,27,0,27,0,21,0,17,0,15,0,12,0,5,0, +252,255,247,255,244,255,246,255,255,255,14,0,32,0,48,0,57,0,63,0,70,0,77,0,82,0,84,0,87,0,84,0, +73,0,58,0,42,0,30,0,22,0,14,0,7,0,4,0,3,0,3,0,1,0,254,255,251,255,242,255,231,255,222,255, +207,255,184,255,163,255,147,255,132,255,115,255,103,255,100,255,101,255,107,255,116,255,125,255,133,255,146,255,166,255,185,255, +197,255,209,255,221,255,225,255,223,255,223,255,228,255,231,255,229,255,232,255,246,255,4,0,16,0,33,0,55,0,69,0, +70,0,78,0,96,0,105,0,101,0,93,0,84,0,73,0,59,0,53,0,52,0,44,0,35,0,35,0,38,0,32,0, +22,0,24,0,29,0,20,0,0,0,238,255,226,255,214,255,192,255,164,255,139,255,118,255,93,255,68,255,52,255,50,255, +55,255,60,255,60,255,64,255,74,255,82,255,86,255,100,255,132,255,164,255,182,255,196,255,226,255,0,0,5,0,255,255, +14,0,43,0,49,0,36,0,42,0,65,0,81,0,90,0,111,0,145,0,170,0,174,0,167,0,155,0,134,0,104,0, +76,0,60,0,51,0,40,0,28,0,19,0,13,0,8,0,248,255,226,255,222,255,237,255,247,255,243,255,245,255,8,0, +15,0,248,255,230,255,244,255,8,0,2,0,251,255,17,0,40,0,38,0,43,0,88,0,146,0,173,0,177,0,191,0, +217,0,230,0,226,0,229,0,247,0,2,1,241,0,211,0,192,0,188,0,174,0,139,0,109,0,100,0,93,0,70,0, +45,0,42,0,43,0,19,0,238,255,216,255,201,255,170,255,131,255,113,255,115,255,96,255,42,255,252,254,235,254,224,254, +213,254,228,254,11,255,32,255,20,255,5,255,11,255,24,255,25,255,26,255,40,255,50,255,47,255,59,255,108,255,173,255, +222,255,251,255,31,0,83,0,133,0,167,0,191,0,219,0,253,0,22,1,37,1,54,1,73,1,83,1,73,1,54,1, +47,1,52,1,49,1,42,1,55,1,78,1,70,1,37,1,28,1,43,1,45,1,28,1,20,1,17,1,240,0,179,0, +136,0,119,0,90,0,37,0,241,255,198,255,152,255,105,255,72,255,52,255,37,255,23,255,3,255,236,254,223,254,222,254, +225,254,234,254,1,255,33,255,55,255,63,255,85,255,128,255,158,255,162,255,164,255,186,255,213,255,232,255,5,0,53,0, +96,0,114,0,113,0,112,0,119,0,132,0,148,0,150,0,118,0,68,0,21,0,245,255,235,255,245,255,4,0,253,255, +218,255,190,255,189,255,193,255,189,255,189,255,194,255,180,255,135,255,85,255,57,255,30,255,234,254,173,254,141,254,144,254, +156,254,168,254,191,254,232,254,25,255,70,255,116,255,164,255,204,255,234,255,1,0,9,0,10,0,15,0,30,0,52,0, +81,0,110,0,120,0,104,0,97,0,120,0,141,0,128,0,107,0,109,0,105,0,64,0,12,0,227,255,176,255,103,255, +38,255,0,255,230,254,206,254,203,254,215,254,208,254,187,254,191,254,229,254,248,254,228,254,217,254,239,254,7,255,19,255, +27,255,22,255,251,254,208,254,160,254,97,254,22,254,217,253,183,253,173,253,230,253,135,254,87,255,3,0,136,0,18,1, +128,1,167,1,187,1,245,1,19,2,198,1,81,1,38,1,53,1,42,1,19,1,55,1,136,1,187,1,199,1,227,1, +25,2,69,2,90,2,93,2,70,2,12,2,177,1,76,1,239,0,142,0,17,0,128,255,9,255,222,254,12,255,104,255, +187,255,235,255,248,255,215,255,137,255,55,255,7,255,227,254,160,254,86,254,56,254,58,254,62,254,99,254,216,254,130,255, +11,0,91,0,174,0,28,1,121,1,191,1,16,2,105,2,156,2,159,2,177,2,238,2,27,3,13,3,232,2,193,2, +131,2,51,2,0,2,223,1,165,1,86,1,0,1,146,0,6,0,130,255,23,255,163,254,24,254,153,253,42,253,175,252, +65,252,16,252,32,252,89,252,179,252,48,253,187,253,55,254,170,254,34,255,162,255,34,0,145,0,202,0,186,0,146,0, +153,0,212,0,17,1,46,1,46,1,60,1,134,1,15,2,171,2,42,3,126,3,180,3,211,3,228,3,227,3,188,3, +112,3,13,3,137,2,224,1,54,1,179,0,85,0,22,0,251,255,224,255,169,255,112,255,73,255,26,255,204,254,123,254, +69,254,255,253,135,253,28,253,0,253,24,253,50,253,95,253,191,253,47,254,132,254,223,254,106,255,9,0,121,0,172,0, +188,0,183,0,161,0,124,0,72,0,20,0,229,255,170,255,106,255,66,255,50,255,39,255,36,255,63,255,124,255,181,255, +199,255,190,255,175,255,149,255,120,255,134,255,211,255,33,0,60,0,72,0,109,0,135,0,116,0,116,0,173,0,208,0, +173,0,134,0,140,0,153,0,139,0,143,0,198,0,232,0,177,0,77,0,246,255,141,255,242,254,82,254,205,253,62,253, +161,252,63,252,68,252,125,252,168,252,171,252,159,252,177,252,252,252,87,253,137,253,181,253,15,254,102,254,125,254,119,254, +160,254,255,254,89,255,163,255,7,0,127,0,209,0,247,0,48,1,156,1,22,2,124,2,211,2,34,3,98,3,152,3, +228,3,79,4,157,4,156,4,111,4,99,4,129,4,127,4,35,4,135,3,201,2,243,1,37,1,116,0,221,255,100,255, +253,254,132,254,250,253,120,253,232,252,38,252,109,251,19,251,238,250,161,250,56,250,249,249,236,249,18,250,170,250,173,251, +153,252,39,253,159,253,52,254,186,254,27,255,147,255,48,0,146,0,156,0,187,0,45,1,168,1,241,1,54,2,159,2, +5,3,69,3,123,3,215,3,90,4,216,4,41,5,62,5,253,4,98,4,176,3,49,3,230,2,134,2,231,1,47,1, +147,0,63,0,61,0,92,0,108,0,119,0,128,0,96,0,24,0,230,255,217,255,173,255,72,255,228,254,163,254,99,254, +6,254,204,253,251,253,101,254,191,254,30,255,180,255,95,0,225,0,97,1,32,2,205,2,239,2,164,2,93,2,60,2, +43,2,42,2,50,2,20,2,199,1,137,1,119,1,98,1,37,1,211,0,104,0,180,255,198,254,221,253,253,252,42,252, +152,251,62,251,209,250,79,250,26,250,47,250,15,250,183,249,169,249,228,249,243,249,14,250,237,250,123,252,214,253,175,254, +146,255,177,0,162,1,76,2,31,3,242,3,254,3,80,3,250,2,90,3,182,3,179,3,236,3,190,4,147,5,229,5, +252,5,68,6,187,6,38,7,89,7,48,7,149,6,162,5,156,4,179,3,211,2,165,1,245,255,30,254,221,252,138,252, +159,252,107,252,8,252,237,251,231,251,103,251,136,250,233,249,184,249,148,249,92,249,82,249,115,249,130,249,183,249,150,250, +6,252,62,253,200,253,19,254,170,254,123,255,38,0,151,0,245,0,75,1,163,1,19,2,151,2,10,3,64,3,46,3, +16,3,51,3,148,3,247,3,50,4,91,4,149,4,209,4,223,4,174,4,75,4,191,3,7,3,64,2,147,1,232,0, +237,255,151,254,81,253,139,252,90,252,156,252,254,252,16,253,211,252,193,252,31,253,177,253,35,254,91,254,76,254,227,253, +86,253,6,253,244,252,211,252,152,252,128,252,165,252,223,252,26,253,116,253,6,254,185,254,86,255,196,255,29,0,106,0, +133,0,77,0,215,255,83,255,197,254,38,254,181,253,187,253,58,254,253,254,208,255,161,0,126,1,93,2,19,3,147,3, +252,3,64,4,33,4,195,3,146,3,147,3,103,3,34,3,62,3,190,3,23,4,47,4,101,4,197,4,12,5,30,5, +244,4,114,4,160,3,169,2,143,1,47,0,164,254,42,253,200,251,120,250,116,249,248,248,248,248,73,249,197,249,61,250, +155,250,6,251,139,251,239,251,9,252,1,252,39,252,143,252,13,253,134,253,255,253,138,254,66,255,29,0,244,0,195,1, +168,2,192,3,248,4,29,6,14,7,207,7,115,8,2,9,121,9,214,9,254,9,194,9,16,9,0,8,199,6,156,5, +165,4,231,3,49,3,87,2,131,1,226,0,67,0,114,255,149,254,219,253,19,253,247,251,144,250,20,249,156,247,75,246, +110,245,41,245,53,245,57,245,78,245,235,245,83,247,65,249,42,251,206,252,60,254,125,255,145,0,126,1,73,2,250,2, +145,3,13,4,108,4,170,4,223,4,93,5,93,6,166,7,168,8,18,9,4,9,194,8,97,8,191,7,164,6,15,5, +91,3,218,1,101,0,184,254,7,253,177,251,165,250,188,249,32,249,214,248,140,248,35,248,236,247,13,248,48,248,48,248, +96,248,215,248,56,249,102,249,174,249,48,250,196,250,113,251,92,252,102,253,122,254,201,255,92,1,217,2,13,4,69,5, +166,6,217,7,162,8,16,9,31,9,208,8,87,8,200,7,209,6,56,5,119,3,76,2,198,1,86,1,186,0,43,0, +158,255,217,254,54,254,63,254,144,254,66,254,75,253,97,252,182,251,246,250,74,250,11,250,241,249,162,249,125,249,10,250, +22,251,5,252,199,252,204,253,45,255,113,0,50,1,134,1,187,1,230,1,201,1,46,1,71,0,145,255,85,255,144,255, +42,0,247,0,172,1,52,2,209,2,171,3,115,4,196,4,151,4,5,4,5,3,160,1,6,0,130,254,89,253,128,252, +164,251,181,250,19,250,4,250,84,250,200,250,119,251,124,252,167,253,151,254,60,255,215,255,137,0,59,1,225,1,109,2, +170,2,133,2,102,2,182,2,62,3,177,3,65,4,11,5,152,5,150,5,85,5,46,5,40,5,54,5,55,5,197,4, +179,3,131,2,214,1,179,1,175,1,161,1,145,1,72,1,153,0,210,255,112,255,145,255,230,255,11,0,185,255,236,254, +254,253,88,253,245,252,149,252,33,252,162,251,29,251,182,250,159,250,232,250,150,251,169,252,235,253,15,255,251,255,170,0, +9,1,28,1,9,1,244,0,216,0,133,0,219,255,11,255,132,254,145,254,24,255,237,255,223,0,159,1,35,2,210,2, +220,3,234,4,180,5,69,6,133,6,58,6,141,5,242,4,148,4,75,4,235,3,119,3,2,3,159,2,118,2,136,2, +157,2,160,2,173,2,162,2,38,2,62,1,87,0,152,255,209,254,25,254,172,253,80,253,167,252,222,251,75,251,224,250, +129,250,84,250,75,250,17,250,143,249,255,248,137,248,28,248,168,247,64,247,233,246,136,246,23,246,166,245,71,245,67,245, +43,246,48,248,141,250,79,252,149,253,49,255,69,1,45,3,133,4,113,5,25,6,135,6,220,6,51,7,133,7,198,7, +20,8,176,8,132,9,18,10,38,10,11,10,0,10,252,9,239,9,211,9,113,9,136,8,44,7,167,5,59,4,11,3, +210,1,5,0,192,253,250,251,69,251,250,250,74,250,94,249,189,248,77,248,146,247,114,246,96,245,195,244,157,244,188,244, +216,244,201,244,218,244,135,245,209,246,67,248,127,249,136,250,110,251,36,252,171,252,38,253,220,253,6,255,147,0,36,2, +107,3,110,4,117,5,178,6,7,8,17,9,167,9,27,10,144,10,172,10,146,10,226,10,121,11,106,11,125,10,112,9, +147,8,134,7,51,6,212,4,61,3,57,1,42,255,148,253,123,252,186,251,94,251,59,251,220,250,39,250,139,249,80,249, +61,249,21,249,234,248,175,248,56,248,205,247,213,247,60,248,184,248,76,249,6,250,185,250,98,251,78,252,161,253,12,255, +46,0,12,1,26,2,120,3,147,4,240,4,217,4,217,4,29,5,150,5,45,6,153,6,155,6,142,6,230,6,110,7, +170,7,124,7,1,7,55,6,18,5,180,3,83,2,20,1,2,0,26,255,101,254,249,253,231,253,32,254,109,254,176,254, +13,255,152,255,20,0,49,0,230,255,112,255,3,255,165,254,72,254,189,253,217,252,194,251,226,250,129,250,135,250,166,250, +198,250,17,251,147,251,25,252,162,252,126,253,169,254,172,255,119,0,99,1,69,2,134,2,52,2,17,2,98,2,176,2, +192,2,186,2,151,2,65,2,12,2,85,2,206,2,205,2,77,2,215,1,138,1,10,1,82,0,177,255,33,255,110,254, +207,253,145,253,124,253,46,253,179,252,133,252,248,252,224,253,230,254,231,255,193,0,74,1,157,1,19,2,158,2,154,2, +187,1,119,0,70,255,63,254,154,253,160,253,17,254,99,254,157,254,59,255,118,0,24,2,180,3,220,4,79,5,33,5, +167,4,14,4,68,3,85,2,112,1,145,0,157,255,149,254,165,253,27,253,55,253,243,253,237,254,161,255,220,255,203,255, +163,255,95,255,232,254,55,254,81,253,78,252,88,251,132,250,233,249,174,249,202,249,25,250,162,250,132,251,177,252,3,254, +114,255,220,0,224,1,88,2,140,2,168,2,133,2,255,1,49,1,92,0,187,255,123,255,178,255,67,0,248,0,206,1, +11,3,175,4,28,6,204,6,242,6,229,6,163,6,9,6,2,5,151,3,2,2,161,0,160,255,204,254,247,253,86,253, +57,253,139,253,230,253,28,254,92,254,185,254,38,255,175,255,52,0,63,0,142,255,127,254,134,253,167,252,227,251,107,251, +56,251,36,251,80,251,11,252,78,253,163,254,186,255,177,0,165,1,79,2,91,2,207,1,253,0,43,0,116,255,250,254, +231,254,68,255,224,255,119,0,249,0,119,1,247,1,107,2,180,2,175,2,90,2,224,1,109,1,229,0,5,0,206,254, +157,253,207,252,89,252,238,251,127,251,78,251,156,251,126,252,195,253,18,255,39,0,232,0,90,1,126,1,93,1,18,1, +171,0,34,0,159,255,113,255,191,255,73,0,195,0,68,1,252,1,212,2,170,3,121,4,24,5,83,5,85,5,118,5, +169,5,158,5,84,5,241,4,106,4,171,3,238,2,122,2,53,2,211,1,92,1,11,1,245,0,6,1,40,1,55,1, +231,0,20,0,9,255,252,253,189,252,55,251,207,249,232,248,105,248,14,248,229,247,27,248,153,248,48,249,226,249,175,250, +103,251,233,251,55,252,44,252,181,251,66,251,111,251,90,252,157,253,230,254,51,0,141,1,230,2,55,4,85,5,243,5, +23,6,45,6,92,6,84,6,255,5,195,5,221,5,36,6,111,6,185,6,252,6,24,7,245,6,156,6,29,6,134,5, +215,4,241,3,205,2,159,1,129,0,86,255,21,254,240,252,253,251,26,251,86,250,252,249,254,249,253,249,229,249,217,249, +164,249,20,249,136,248,91,248,69,248,12,248,248,247,106,248,103,249,168,250,236,251,15,253,254,253,194,254,107,255,235,255, +42,0,54,0,79,0,168,0,65,1,6,2,229,2,182,3,91,4,214,4,46,5,99,5,134,5,179,5,247,5,72,6, +158,6,255,6,101,7,169,7,162,7,104,7,21,7,121,6,133,5,119,4,94,3,22,2,219,0,42,0,253,255,202,255, +72,255,151,254,215,253,20,253,107,252,227,251,66,251,97,250,135,249,247,248,137,248,6,248,125,247,17,247,195,246,136,246, +96,246,78,246,98,246,227,246,3,248,151,249,70,251,214,252,60,254,135,255,154,0,53,1,69,1,19,1,251,0,16,1, +38,1,37,1,49,1,152,1,137,2,222,3,43,5,34,6,213,6,108,7,192,7,178,7,110,7,36,7,209,6,93,6, +182,5,208,4,180,3,149,2,137,1,110,0,97,255,203,254,184,254,195,254,167,254,114,254,70,254,49,254,46,254,27,254, +218,253,123,253,31,253,209,252,171,252,242,252,189,253,185,254,146,255,100,0,73,1,11,2,142,2,241,2,40,3,8,3, +201,2,204,2,253,2,6,3,241,2,21,3,139,3,237,3,193,3,246,2,233,1,24,1,194,0,186,0,193,0,200,0, +203,0,208,0,2,1,94,1,123,1,247,0,250,255,206,254,81,253,93,251,90,249,242,247,76,247,36,247,106,247,67,248, +130,249,200,250,255,251,96,253,242,254,130,0,228,1,231,2,83,3,63,3,38,3,81,3,130,3,73,3,145,2,195,1, +73,1,49,1,85,1,142,1,216,1,67,2,223,2,149,3,22,4,43,4,213,3,28,3,39,2,73,1,149,0,189,255, +173,254,227,253,196,253,26,254,128,254,220,254,29,255,12,255,161,254,43,254,201,253,25,253,217,251,88,250,16,249,50,248, +195,247,193,247,24,248,167,248,114,249,133,250,213,251,70,253,160,254,189,255,209,0,5,2,23,3,177,3,210,3,165,3, +65,3,190,2,84,2,37,2,24,2,13,2,25,2,127,2,99,3,154,4,201,5,162,6,24,7,77,7,69,7,231,6, +43,6,47,5,42,4,69,3,129,2,183,1,215,0,17,0,153,255,97,255,58,255,251,254,150,254,31,254,186,253,121,253, +80,253,42,253,9,253,224,252,128,252,218,251,33,251,148,250,64,250,13,250,246,249,19,250,98,250,212,250,98,251,254,251, +146,252,22,253,147,253,245,253,16,254,238,253,206,253,218,253,29,254,155,254,71,255,9,0,226,0,239,1,39,3,75,4, +33,5,171,5,16,6,74,6,47,6,187,5,4,5,46,4,95,3,155,2,227,1,69,1,172,0,10,0,163,255,197,255, +76,0,184,0,201,0,189,0,213,0,4,1,35,1,30,1,220,0,74,0,129,255,178,254,250,253,98,253,223,252,87,252, +223,251,161,251,161,251,191,251,251,251,122,252,57,253,6,254,210,254,167,255,87,0,162,0,162,0,176,0,241,0,62,1, +131,1,215,1,62,2,189,2,115,3,95,4,50,5,151,5,138,5,64,5,226,4,104,4,167,3,145,2,109,1,142,0, +3,0,163,255,65,255,222,254,160,254,164,254,212,254,239,254,198,254,121,254,91,254,138,254,217,254,18,255,50,255,65,255, +51,255,236,254,99,254,188,253,52,253,245,252,3,253,65,253,143,253,228,253,64,254,180,254,82,255,24,0,251,0,221,1, +148,2,34,3,161,3,10,4,81,4,132,4,150,4,64,4,90,3,50,2,50,1,117,0,215,255,74,255,232,254,208,254, +6,255,115,255,216,255,237,255,148,255,232,254,22,254,39,253,1,252,166,250,97,249,169,248,183,248,54,249,204,249,122,250, +82,251,70,252,69,253,54,254,233,254,75,255,135,255,196,255,232,255,214,255,194,255,244,255,107,0,249,0,138,1,38,2, +208,2,149,3,112,4,42,5,171,5,32,6,176,6,40,7,64,7,13,7,217,6,184,6,143,6,55,6,135,5,136,4, +148,3,244,2,131,2,253,1,72,1,88,0,62,255,59,254,99,253,122,252,105,251,110,250,189,249,46,249,161,248,51,248, +232,247,151,247,77,247,52,247,68,247,93,247,157,247,50,248,19,249,29,250,70,251,131,252,201,253,29,255,114,0,146,1, +88,2,235,2,125,3,9,4,118,4,210,4,72,5,239,5,163,6,49,7,142,7,210,7,5,8,18,8,244,7,182,7, +63,7,137,6,224,5,117,5,19,5,127,4,207,3,45,3,154,2,13,2,142,1,13,1,104,0,164,255,216,254,2,254, +23,253,40,252,83,251,157,250,237,249,58,249,133,248,215,247,52,247,166,246,58,246,243,245,198,245,171,245,183,245,3,246, +132,246,37,247,9,248,73,249,182,250,22,252,89,253,151,254,222,255,25,1,37,2,229,2,81,3,143,3,198,3,237,3, +255,3,42,4,163,4,89,5,36,6,12,7,12,8,241,8,158,9,47,10,173,10,238,10,199,10,56,10,82,9,60,8, +43,7,47,6,38,5,246,3,178,2,121,1,85,0,71,255,78,254,96,253,130,252,206,251,63,251,186,250,59,250,227,249, +185,249,137,249,53,249,224,248,179,248,186,248,248,248,97,249,223,249,115,250,41,251,244,251,185,252,120,253,55,254,237,254, +136,255,236,255,255,255,243,255,27,0,152,0,74,1,17,2,225,2,170,3,102,4,42,5,242,5,140,6,200,6,197,6, +185,6,155,6,54,6,118,5,98,4,28,3,229,1,210,0,202,255,179,254,159,253,190,252,40,252,222,251,232,251,50,252, +135,252,220,252,58,253,134,253,151,253,114,253,55,253,235,252,145,252,85,252,86,252,135,252,213,252,81,253,15,254,246,254, +234,255,240,0,246,1,200,2,65,3,139,3,242,3,101,4,145,4,96,4,12,4,195,3,131,3,59,3,239,2,164,2, +111,2,116,2,171,2,211,2,197,2,177,2,192,2,187,2,83,2,144,1,158,0,136,255,97,254,72,253,72,252,94,251, +154,250,26,250,211,249,174,249,179,249,230,249,69,250,202,250,96,251,236,251,98,252,196,252,3,253,19,253,23,253,54,253, +109,253,159,253,199,253,254,253,103,254,9,255,224,255,234,0,17,2,43,3,12,4,174,4,65,5,199,5,1,6,217,5, +124,5,29,5,190,4,96,4,15,4,189,3,106,3,64,3,97,3,179,3,16,4,96,4,137,4,108,4,13,4,135,3, +210,2,205,1,132,0,54,255,15,254,5,253,22,252,91,251,208,250,98,250,17,250,223,249,203,249,203,249,200,249,179,249, +146,249,126,249,144,249,180,249,190,249,167,249,160,249,216,249,67,250,188,250,52,251,170,251,50,252,241,252,234,253,243,254, +236,255,220,0,228,1,254,2,10,4,229,4,131,5,248,5,88,6,157,6,185,6,179,6,149,6,107,6,73,6,58,6, +34,6,233,5,152,5,64,5,231,4,145,4,54,4,194,3,29,3,84,2,164,1,41,1,187,0,63,0,186,255,54,255, +168,254,15,254,147,253,88,253,73,253,80,253,106,253,149,253,183,253,187,253,185,253,206,253,231,253,230,253,204,253,159,253, +95,253,32,253,8,253,28,253,69,253,131,253,217,253,45,254,107,254,165,254,251,254,104,255,216,255,76,0,190,0,17,1, +70,1,125,1,191,1,243,1,0,2,227,1,170,1,109,1,73,1,59,1,55,1,71,1,115,1,181,1,251,1,51,2, +72,2,54,2,17,2,235,1,177,1,79,1,214,0,107,0,32,0,219,255,137,255,56,255,243,254,182,254,139,254,122,254, +134,254,159,254,169,254,159,254,160,254,202,254,19,255,73,255,67,255,246,254,105,254,186,253,16,253,130,252,22,252,203,251, +180,251,241,251,116,252,13,253,153,253,37,254,208,254,140,255,26,0,81,0,56,0,250,255,188,255,152,255,156,255,193,255, +233,255,7,0,48,0,132,0,13,1,185,1,106,2,12,3,166,3,47,4,138,4,183,4,207,4,218,4,196,4,125,4, +16,4,139,3,255,2,146,2,106,2,133,2,192,2,251,2,38,3,53,3,20,3,182,2,27,2,77,1,100,0,119,255, +143,254,187,253,23,253,170,252,100,252,49,252,254,251,207,251,177,251,173,251,187,251,196,251,194,251,189,251,184,251,185,251, +201,251,240,251,43,252,105,252,153,252,197,252,3,253,88,253,200,253,107,254,75,255,57,0,7,1,167,1,44,2,170,2, +34,3,123,3,161,3,140,3,84,3,34,3,2,3,227,2,198,2,182,2,170,2,135,2,69,2,235,1,142,1,65,1, +3,1,200,0,132,0,36,0,178,255,83,255,16,255,203,254,108,254,246,253,129,253,23,253,178,252,96,252,70,252,120,252, +222,252,81,253,192,253,51,254,164,254,13,255,109,255,199,255,14,0,55,0,87,0,142,0,219,0,40,1,103,1,169,1, +9,2,120,2,194,2,204,2,183,2,184,2,209,2,221,2,209,2,172,2,93,2,236,1,140,1,68,1,237,0,116,0, +253,255,171,255,118,255,85,255,87,255,122,255,168,255,215,255,6,0,41,0,45,0,2,0,176,255,72,255,212,254,81,254, +195,253,55,253,210,252,177,252,203,252,4,253,79,253,157,253,236,253,73,254,182,254,43,255,144,255,208,255,237,255,252,255, +15,0,54,0,118,0,205,0,44,1,130,1,209,1,32,2,107,2,171,2,228,2,23,3,53,3,44,3,0,3,198,2, +141,2,93,2,47,2,245,1,169,1,85,1,17,1,233,0,212,0,195,0,167,0,119,0,53,0,235,255,156,255,73,255, +240,254,132,254,2,254,123,253,4,253,156,252,58,252,236,251,197,251,193,251,204,251,223,251,4,252,73,252,176,252,32,253, +125,253,208,253,41,254,144,254,8,255,144,255,29,0,155,0,253,0,86,1,177,1,0,2,65,2,136,2,218,2,26,3, +52,3,49,3,37,3,32,3,47,3,81,3,107,3,94,3,44,3,233,2,156,2,58,2,199,1,92,1,5,1,181,0, +80,0,206,255,80,255,244,254,191,254,158,254,119,254,60,254,245,253,180,253,147,253,144,253,158,253,187,253,229,253,9,254, +28,254,35,254,41,254,61,254,98,254,134,254,135,254,100,254,63,254,59,254,83,254,120,254,181,254,7,255,73,255,111,255, +162,255,246,255,88,0,181,0,19,1,116,1,202,1,18,2,88,2,153,2,208,2,248,2,6,3,248,2,213,2,166,2, +119,2,76,2,44,2,27,2,2,2,207,1,132,1,54,1,239,0,162,0,74,0,232,255,125,255,20,255,199,254,153,254, +134,254,130,254,121,254,100,254,71,254,44,254,22,254,7,254,251,253,233,253,204,253,167,253,125,253,82,253,52,253,36,253, +24,253,10,253,5,253,32,253,100,253,205,253,84,254,253,254,198,255,157,0,94,1,235,1,63,2,112,2,150,2,183,2, +214,2,228,2,199,2,140,2,96,2,102,2,143,2,185,2,216,2,239,2,241,2,228,2,212,2,192,2,161,2,116,2, +57,2,239,1,136,1,249,0,79,0,172,255,40,255,189,254,90,254,251,253,173,253,132,253,133,253,158,253,180,253,176,253, +141,253,97,253,54,253,9,253,234,252,223,252,219,252,223,252,250,252,49,253,115,253,179,253,250,253,81,254,175,254,2,255, +84,255,187,255,49,0,163,0,12,1,102,1,165,1,209,1,248,1,28,2,49,2,53,2,38,2,9,2,243,1,249,1, +30,2,92,2,161,2,212,2,231,2,222,2,202,2,184,2,149,2,84,2,249,1,133,1,250,0,88,0,172,255,28,255, +191,254,145,254,118,254,92,254,81,254,92,254,101,254,101,254,92,254,63,254,15,254,212,253,148,253,76,253,253,252,181,252, +133,252,110,252,107,252,123,252,175,252,15,253,141,253,25,254,173,254,66,255,214,255,108,0,248,0,108,1,193,1,1,2, +48,2,81,2,104,2,130,2,174,2,240,2,64,3,152,3,238,3,53,4,103,4,126,4,117,4,75,4,3,4,155,3, +19,3,122,2,233,1,98,1,220,0,98,0,0,0,181,255,113,255,38,255,222,254,160,254,102,254,49,254,248,253,178,253, +93,253,6,253,186,252,124,252,67,252,20,252,244,251,222,251,221,251,249,251,37,252,88,252,156,252,247,252,88,253,174,253, +13,254,137,254,11,255,127,255,248,255,135,0,27,1,154,1,8,2,114,2,208,2,22,3,70,3,113,3,153,3,182,3, +199,3,205,3,200,3,194,3,195,3,202,3,201,3,180,3,145,3,97,3,28,3,199,2,110,2,13,2,151,1,3,1, +94,0,179,255,1,255,81,254,183,253,58,253,201,252,85,252,237,251,161,251,103,251,54,251,14,251,233,250,204,250,187,250, +187,250,211,250,1,251,76,251,180,251,44,252,171,252,49,253,188,253,79,254,240,254,157,255,71,0,223,0,110,1,6,2, +161,2,46,3,177,3,53,4,168,4,252,4,59,5,116,5,160,5,186,5,196,5,188,5,157,5,104,5,46,5,235,4, +141,4,26,4,151,3,255,2,85,2,165,1,249,0,78,0,161,255,252,254,101,254,209,253,63,253,189,252,88,252,11,252, +211,251,174,251,158,251,161,251,181,251,205,251,227,251,247,251,0,252,15,252,55,252,109,252,158,252,195,252,229,252,26,253, +111,253,217,253,73,254,176,254,14,255,113,255,222,255,81,0,192,0,35,1,118,1,183,1,232,1,3,2,2,2,234,1, +207,1,189,1,175,1,153,1,126,1,112,1,120,1,141,1,162,1,177,1,189,1,185,1,163,1,130,1,86,1,32,1, +232,0,183,0,147,0,122,0,103,0,84,0,58,0,22,0,230,255,172,255,118,255,77,255,52,255,47,255,55,255,67,255, +81,255,103,255,133,255,166,255,198,255,225,255,235,255,234,255,230,255,226,255,232,255,8,0,57,0,112,0,159,0,196,0, +232,0,0,1,6,1,9,1,10,1,0,1,238,0,217,0,198,0,186,0,179,0,165,0,145,0,127,0,112,0,94,0, +85,0,97,0,126,0,150,0,160,0,165,0,167,0,161,0,143,0,108,0,46,0,222,255,142,255,74,255,18,255,225,254, +188,254,171,254,167,254,168,254,159,254,131,254,100,254,80,254,65,254,45,254,25,254,14,254,10,254,15,254,31,254,54,254, +89,254,134,254,175,254,220,254,15,255,69,255,128,255,187,255,245,255,54,0,125,0,192,0,242,0,10,1,13,1,6,1, +252,0,239,0,223,0,216,0,231,0,5,1,42,1,91,1,149,1,202,1,249,1,36,2,68,2,69,2,41,2,250,1, +193,1,131,1,75,1,32,1,244,0,180,0,113,0,62,0,24,0,242,255,199,255,150,255,101,255,54,255,10,255,224,254, +179,254,133,254,85,254,38,254,3,254,235,253,219,253,218,253,243,253,31,254,70,254,95,254,129,254,181,254,239,254,38,255, +85,255,130,255,177,255,227,255,35,0,112,0,197,0,31,1,113,1,185,1,3,2,73,2,127,2,167,2,199,2,222,2, +222,2,190,2,141,2,88,2,34,2,230,1,158,1,74,1,238,0,144,0,53,0,224,255,140,255,55,255,231,254,169,254, +119,254,68,254,18,254,232,253,206,253,194,253,187,253,179,253,166,253,147,253,135,253,133,253,136,253,139,253,137,253,135,253, +151,253,198,253,8,254,68,254,118,254,170,254,231,254,48,255,131,255,212,255,31,0,101,0,174,0,254,0,68,1,117,1, +159,1,199,1,232,1,0,2,20,2,43,2,59,2,62,2,61,2,63,2,70,2,79,2,82,2,77,2,63,2,29,2, +236,1,178,1,107,1,30,1,206,0,115,0,18,0,183,255,110,255,58,255,24,255,251,254,214,254,169,254,125,254,85,254, +48,254,16,254,247,253,227,253,196,253,150,253,113,253,106,253,127,253,166,253,222,253,46,254,143,254,235,254,62,255,147,255, +229,255,43,0,113,0,188,0,249,0,30,1,67,1,121,1,191,1,12,2,85,2,154,2,219,2,19,3,63,3,89,3, +97,3,89,3,64,3,17,3,203,2,116,2,21,2,177,1,80,1,249,0,165,0,81,0,5,0,196,255,134,255,70,255, +4,255,196,254,130,254,57,254,234,253,154,253,84,253,22,253,223,252,184,252,161,252,139,252,121,252,117,252,131,252,150,252, +163,252,185,252,230,252,31,253,84,253,133,253,195,253,19,254,113,254,216,254,62,255,157,255,4,0,121,0,249,0,122,1, +243,1,95,2,194,2,32,3,120,3,183,3,212,3,223,3,236,3,249,3,243,3,220,3,195,3,162,3,117,3,75,3, +42,3,5,3,205,2,133,2,58,2,236,1,138,1,17,1,136,0,250,255,113,255,242,254,119,254,249,253,127,253,28,253, +215,252,169,252,134,252,103,252,72,252,44,252,33,252,50,252,85,252,122,252,164,252,219,252,31,253,111,253,207,253,66,254, +192,254,62,255,188,255,55,0,169,0,13,1,108,1,203,1,34,2,104,2,158,2,199,2,237,2,11,3,25,3,32,3, +41,3,49,3,49,3,39,3,17,3,235,2,172,2,97,2,29,2,210,1,115,1,11,1,164,0,64,0,220,255,118,255, +12,255,153,254,45,254,220,253,157,253,96,253,42,253,2,253,230,252,214,252,215,252,233,252,3,253,33,253,64,253,96,253, +132,253,167,253,201,253,245,253,41,254,94,254,158,254,234,254,58,255,140,255,223,255,50,0,128,0,191,0,245,0,49,1, +107,1,150,1,182,1,209,1,229,1,238,1,237,1,227,1,209,1,186,1,168,1,159,1,148,1,129,1,103,1,75,1, +46,1,2,1,199,0,142,0,84,0,9,0,173,255,74,255,245,254,189,254,165,254,166,254,181,254,203,254,239,254,36,255, +99,255,163,255,212,255,244,255,10,0,18,0,11,0,242,255,211,255,185,255,165,255,155,255,154,255,149,255,150,255,178,255, +235,255,45,0,107,0,165,0,219,0,3,1,36,1,64,1,77,1,79,1,74,1,53,1,15,1,228,0,186,0,149,0, +119,0,99,0,84,0,65,0,48,0,43,0,49,0,51,0,38,0,17,0,247,255,208,255,158,255,104,255,59,255,30,255, +7,255,238,254,213,254,193,254,188,254,202,254,226,254,251,254,18,255,42,255,72,255,95,255,104,255,102,255,92,255,79,255, +71,255,63,255,56,255,61,255,89,255,137,255,197,255,4,0,67,0,134,0,197,0,243,0,25,1,59,1,78,1,80,1, +75,1,77,1,88,1,91,1,84,1,85,1,98,1,111,1,118,1,114,1,98,1,78,1,63,1,58,1,50,1,23,1, +229,0,170,0,113,0,57,0,252,255,186,255,120,255,56,255,248,254,183,254,127,254,79,254,37,254,9,254,245,253,229,253, +219,253,210,253,207,253,219,253,245,253,27,254,70,254,106,254,136,254,170,254,210,254,2,255,49,255,90,255,119,255,138,255, +161,255,201,255,255,255,55,0,110,0,171,0,238,0,53,1,134,1,223,1,52,2,125,2,183,2,222,2,239,2,237,2, +225,2,207,2,177,2,134,2,80,2,19,2,213,1,160,1,122,1,99,1,82,1,59,1,23,1,233,0,175,0,100,0, +13,0,181,255,95,255,9,255,171,254,74,254,241,253,172,253,130,253,104,253,80,253,60,253,42,253,27,253,17,253,9,253, +12,253,35,253,70,253,106,253,137,253,162,253,197,253,247,253,45,254,100,254,153,254,200,254,250,254,61,255,143,255,219,255, +29,0,101,0,179,0,255,0,70,1,138,1,205,1,12,2,68,2,128,2,185,2,224,2,247,2,2,3,2,3,250,2, +230,2,202,2,171,2,133,2,87,2,36,2,236,1,175,1,99,1,9,1,173,0,79,0,241,255,156,255,81,255,13,255, +212,254,182,254,172,254,165,254,149,254,120,254,79,254,31,254,234,253,187,253,143,253,99,253,66,253,57,253,69,253,100,253, +147,253,203,253,13,254,88,254,169,254,248,254,60,255,116,255,170,255,229,255,29,0,77,0,123,0,167,0,209,0,6,1, +66,1,125,1,183,1,236,1,34,2,87,2,131,2,167,2,192,2,199,2,191,2,161,2,105,2,33,2,220,1,163,1, +114,1,70,1,30,1,246,0,207,0,176,0,150,0,119,0,82,0,42,0,254,255,199,255,123,255,32,255,195,254,123,254, +70,254,14,254,214,253,171,253,144,253,136,253,148,253,173,253,200,253,220,253,244,253,23,254,56,254,80,254,103,254,119,254, +129,254,141,254,167,254,202,254,243,254,43,255,125,255,219,255,56,0,141,0,224,0,49,1,127,1,205,1,21,2,72,2, +98,2,113,2,123,2,122,2,99,2,65,2,26,2,237,1,187,1,139,1,94,1,53,1,16,1,239,0,214,0,195,0, +177,0,155,0,128,0,97,0,61,0,15,0,207,255,125,255,37,255,211,254,141,254,82,254,31,254,247,253,216,253,190,253, +184,253,204,253,240,253,32,254,90,254,146,254,193,254,231,254,20,255,76,255,118,255,139,255,151,255,162,255,175,255,192,255, +213,255,246,255,33,0,83,0,138,0,205,0,24,1,95,1,165,1,235,1,30,2,57,2,67,2,62,2,41,2,2,2, +204,1,146,1,85,1,23,1,226,0,175,0,123,0,83,0,55,0,30,0,3,0,226,255,183,255,129,255,71,255,13,255, +208,254,144,254,84,254,37,254,8,254,1,254,11,254,28,254,46,254,72,254,105,254,138,254,171,254,197,254,221,254,249,254, +18,255,36,255,55,255,79,255,105,255,133,255,168,255,211,255,252,255,41,0,93,0,150,0,201,0,247,0,38,1,86,1, +123,1,149,1,164,1,168,1,166,1,158,1,140,1,115,1,75,1,28,1,240,0,200,0,167,0,144,0,122,0,99,0, +81,0,72,0,71,0,65,0,49,0,31,0,7,0,225,255,175,255,126,255,87,255,51,255,18,255,252,254,235,254,223,254, +225,254,238,254,251,254,7,255,28,255,60,255,93,255,120,255,145,255,167,255,187,255,203,255,220,255,240,255,249,255,243,255, +246,255,7,0,27,0,50,0,82,0,123,0,166,0,209,0,253,0,40,1,68,1,82,1,97,1,110,1,110,1,95,1, +70,1,41,1,14,1,241,0,206,0,168,0,131,0,100,0,75,0,48,0,16,0,240,255,209,255,178,255,149,255,122,255, +98,255,71,255,36,255,1,255,229,254,205,254,179,254,154,254,137,254,131,254,132,254,136,254,143,254,153,254,158,254,159,254, +171,254,194,254,221,254,249,254,16,255,41,255,75,255,114,255,160,255,213,255,5,0,46,0,83,0,117,0,154,0,188,0, +212,0,233,0,1,1,16,1,14,1,7,1,5,1,253,0,236,0,223,0,216,0,207,0,193,0,187,0,189,0,189,0, +187,0,188,0,176,0,147,0,116,0,91,0,68,0,43,0,15,0,247,255,225,255,202,255,182,255,168,255,155,255,144,255, +137,255,132,255,128,255,137,255,161,255,192,255,221,255,247,255,16,0,40,0,57,0,67,0,73,0,81,0,89,0,90,0, +90,0,100,0,116,0,136,0,163,0,188,0,206,0,217,0,224,0,233,0,244,0,246,0,239,0,225,0,202,0,170,0, +130,0,89,0,48,0,5,0,212,255,156,255,107,255,71,255,36,255,3,255,234,254,207,254,174,254,141,254,110,254,77,254, +44,254,21,254,7,254,245,253,234,253,243,253,7,254,34,254,69,254,109,254,147,254,176,254,205,254,245,254,33,255,70,255, +107,255,151,255,196,255,235,255,18,0,71,0,130,0,186,0,238,0,36,1,95,1,150,1,195,1,235,1,9,2,31,2, +49,2,57,2,50,2,33,2,10,2,239,1,208,1,179,1,161,1,143,1,120,1,102,1,88,1,70,1,43,1,8,1, +221,0,171,0,112,0,46,0,236,255,174,255,108,255,40,255,235,254,184,254,146,254,116,254,93,254,82,254,81,254,84,254, +95,254,111,254,129,254,147,254,160,254,177,254,206,254,236,254,252,254,3,255,12,255,25,255,45,255,79,255,115,255,143,255, +177,255,221,255,12,0,59,0,105,0,153,0,192,0,214,0,236,0,5,1,21,1,33,1,48,1,65,1,78,1,79,1, +81,1,91,1,94,1,88,1,75,1,49,1,15,1,234,0,192,0,151,0,114,0,77,0,36,0,250,255,215,255,188,255, +162,255,132,255,103,255,90,255,86,255,73,255,61,255,57,255,55,255,55,255,59,255,60,255,55,255,47,255,44,255,42,255, +38,255,34,255,29,255,27,255,36,255,51,255,64,255,76,255,92,255,113,255,133,255,150,255,165,255,183,255,203,255,220,255, +233,255,251,255,13,0,24,0,27,0,30,0,39,0,44,0,43,0,46,0,49,0,54,0,70,0,90,0,111,0,134,0, +156,0,182,0,204,0,222,0,242,0,253,0,245,0,234,0,225,0,212,0,195,0,183,0,175,0,155,0,129,0,111,0, +99,0,90,0,85,0,83,0,88,0,84,0,66,0,52,0,43,0,25,0,250,255,217,255,192,255,166,255,133,255,112,255, +107,255,106,255,110,255,120,255,131,255,137,255,146,255,161,255,171,255,170,255,163,255,154,255,148,255,144,255,145,255,152,255, +157,255,159,255,164,255,166,255,166,255,171,255,180,255,185,255,185,255,188,255,203,255,218,255,222,255,220,255,222,255,228,255, +228,255,223,255,214,255,203,255,195,255,187,255,178,255,174,255,171,255,165,255,166,255,165,255,159,255,166,255,188,255,217,255, +243,255,4,0,19,0,44,0,75,0,103,0,128,0,151,0,161,0,155,0,150,0,150,0,153,0,161,0,167,0,171,0, +174,0,177,0,179,0,181,0,179,0,175,0,171,0,177,0,187,0,182,0,163,0,141,0,119,0,100,0,78,0,46,0, +13,0,243,255,218,255,194,255,177,255,168,255,160,255,146,255,136,255,131,255,122,255,104,255,83,255,63,255,46,255,32,255, +23,255,26,255,38,255,48,255,60,255,81,255,106,255,138,255,176,255,206,255,228,255,251,255,13,0,24,0,35,0,44,0, +46,0,40,0,36,0,44,0,58,0,69,0,85,0,117,0,157,0,185,0,202,0,222,0,242,0,251,0,1,1,7,1, +9,1,251,0,229,0,211,0,188,0,166,0,150,0,135,0,116,0,93,0,69,0,53,0,41,0,24,0,4,0,247,255, +238,255,224,255,201,255,176,255,152,255,132,255,119,255,102,255,78,255,58,255,44,255,27,255,5,255,243,254,232,254,226,254, +220,254,217,254,216,254,219,254,229,254,251,254,21,255,37,255,47,255,70,255,102,255,125,255,140,255,160,255,184,255,204,255, +226,255,253,255,17,0,30,0,47,0,73,0,104,0,136,0,165,0,184,0,196,0,211,0,234,0,254,0,6,1,5,1, +6,1,4,1,253,0,255,0,4,1,1,1,251,0,251,0,246,0,235,0,225,0,217,0,205,0,190,0,175,0,151,0, +120,0,92,0,64,0,36,0,11,0,244,255,213,255,177,255,150,255,132,255,107,255,79,255,60,255,47,255,27,255,0,255, +236,254,229,254,230,254,230,254,229,254,231,254,229,254,227,254,240,254,6,255,21,255,30,255,41,255,54,255,67,255,80,255, +103,255,136,255,165,255,185,255,206,255,235,255,12,0,43,0,68,0,84,0,94,0,111,0,131,0,143,0,150,0,164,0, +178,0,181,0,177,0,183,0,198,0,209,0,212,0,206,0,198,0,188,0,171,0,153,0,134,0,107,0,78,0,61,0, +48,0,25,0,255,255,238,255,226,255,211,255,205,255,209,255,215,255,223,255,231,255,227,255,218,255,206,255,192,255,179,255, +164,255,146,255,137,255,141,255,145,255,144,255,154,255,179,255,206,255,227,255,243,255,4,0,20,0,24,0,17,0,11,0, +9,0,3,0,252,255,249,255,255,255,6,0,14,0,27,0,41,0,48,0,51,0,55,0,65,0,76,0,73,0,62,0, +59,0,59,0,45,0,32,0,36,0,45,0,52,0,60,0,70,0,82,0,91,0,90,0,86,0,83,0,69,0,42,0, +13,0,245,255,223,255,202,255,192,255,189,255,188,255,195,255,209,255,228,255,245,255,251,255,253,255,6,0,14,0,16,0, +5,0,239,255,220,255,208,255,203,255,201,255,197,255,194,255,196,255,201,255,207,255,213,255,220,255,224,255,227,255,233,255, +238,255,231,255,218,255,206,255,198,255,194,255,191,255,193,255,197,255,200,255,205,255,214,255,222,255,228,255,240,255,0,0, +12,0,22,0,36,0,50,0,58,0,64,0,72,0,80,0,82,0,82,0,88,0,94,0,96,0,100,0,104,0,114,0, +121,0,113,0,105,0,105,0,102,0,94,0,87,0,78,0,65,0,47,0,27,0,6,0,250,255,245,255,229,255,209,255, +199,255,191,255,180,255,175,255,173,255,172,255,170,255,164,255,161,255,162,255,162,255,160,255,162,255,167,255,166,255,159,255, +153,255,152,255,161,255,176,255,190,255,201,255,218,255,236,255,245,255,244,255,253,255,14,0,21,0,18,0,10,0,2,0, +3,0,4,0,2,0,4,0,9,0,12,0,17,0,23,0,24,0,19,0,18,0,24,0,28,0,26,0,16,0,2,0, +252,255,246,255,231,255,218,255,213,255,207,255,203,255,206,255,218,255,232,255,253,255,21,0,37,0,49,0,66,0,80,0, +83,0,83,0,92,0,107,0,113,0,109,0,101,0,91,0,82,0,78,0,76,0,71,0,63,0,60,0,59,0,53,0, +47,0,46,0,51,0,48,0,33,0,21,0,13,0,254,255,239,255,224,255,206,255,193,255,182,255,168,255,158,255,149,255, +142,255,148,255,158,255,159,255,151,255,142,255,139,255,138,255,134,255,131,255,128,255,120,255,115,255,114,255,118,255,127,255, +140,255,156,255,177,255,203,255,230,255,2,0,30,0,50,0,70,0,98,0,117,0,120,0,118,0,118,0,115,0,110,0, +111,0,117,0,122,0,128,0,131,0,134,0,149,0,166,0,179,0,189,0,195,0,191,0,179,0,165,0,153,0,139,0, +120,0,96,0,65,0,31,0,255,255,231,255,219,255,205,255,185,255,174,255,171,255,165,255,160,255,154,255,146,255,137,255, +126,255,112,255,94,255,75,255,66,255,65,255,65,255,65,255,67,255,72,255,84,255,101,255,122,255,146,255,170,255,191,255, +210,255,229,255,245,255,9,0,34,0,50,0,57,0,70,0,86,0,98,0,104,0,113,0,128,0,141,0,153,0,167,0, +177,0,186,0,193,0,196,0,196,0,191,0,178,0,162,0,141,0,118,0,97,0,80,0,66,0,48,0,20,0,248,255, +219,255,195,255,181,255,167,255,148,255,130,255,112,255,97,255,89,255,86,255,78,255,72,255,69,255,62,255,57,255,57,255, +59,255,62,255,68,255,73,255,81,255,100,255,124,255,147,255,171,255,198,255,226,255,251,255,19,0,41,0,64,0,91,0, +110,0,124,0,144,0,163,0,173,0,184,0,198,0,207,0,206,0,207,0,209,0,204,0,193,0,182,0,170,0,162,0, +152,0,134,0,119,0,110,0,94,0,66,0,31,0,2,0,240,255,227,255,211,255,189,255,167,255,149,255,133,255,125,255, +125,255,122,255,114,255,107,255,102,255,101,255,106,255,116,255,129,255,144,255,154,255,158,255,168,255,180,255,187,255,199,255, +213,255,226,255,242,255,2,0,19,0,37,0,53,0,68,0,84,0,91,0,93,0,93,0,87,0,81,0,79,0,75,0, +72,0,63,0,51,0,43,0,38,0,37,0,38,0,35,0,26,0,12,0,253,255,239,255,225,255,214,255,208,255,201,255, +194,255,192,255,191,255,183,255,173,255,175,255,181,255,183,255,186,255,191,255,195,255,196,255,198,255,205,255,215,255,225,255, +233,255,243,255,1,0,15,0,27,0,46,0,66,0,80,0,94,0,110,0,126,0,137,0,138,0,135,0,131,0,126,0, +117,0,107,0,105,0,107,0,101,0,94,0,88,0,78,0,70,0,56,0,32,0,14,0,4,0,240,255,214,255,193,255, +178,255,161,255,146,255,134,255,121,255,107,255,100,255,102,255,104,255,100,255,95,255,99,255,111,255,121,255,127,255,140,255, +162,255,176,255,183,255,193,255,202,255,213,255,226,255,236,255,245,255,253,255,3,0,9,0,18,0,30,0,44,0,58,0, +75,0,86,0,90,0,104,0,124,0,137,0,143,0,146,0,150,0,155,0,152,0,147,0,143,0,136,0,127,0,116,0, +101,0,82,0,64,0,48,0,32,0,16,0,5,0,247,255,222,255,197,255,184,255,178,255,168,255,156,255,145,255,135,255, +127,255,130,255,140,255,147,255,147,255,144,255,147,255,151,255,154,255,155,255,159,255,167,255,168,255,168,255,178,255,194,255, +206,255,216,255,226,255,242,255,10,0,30,0,48,0,66,0,88,0,105,0,112,0,117,0,125,0,125,0,119,0,113,0, +110,0,115,0,116,0,106,0,95,0,86,0,78,0,76,0,74,0,69,0,55,0,32,0,13,0,8,0,4,0,248,255, +237,255,235,255,233,255,216,255,192,255,181,255,179,255,165,255,148,255,145,255,148,255,148,255,143,255,136,255,139,255,145,255, +146,255,156,255,172,255,186,255,197,255,207,255,217,255,231,255,249,255,10,0,22,0,29,0,41,0,54,0,63,0,74,0, +86,0,95,0,103,0,108,0,112,0,108,0,96,0,83,0,78,0,79,0,77,0,67,0,57,0,52,0,46,0,40,0, +39,0,39,0,36,0,23,0,7,0,248,255,233,255,219,255,210,255,202,255,196,255,192,255,183,255,167,255,157,255,164,255, +174,255,172,255,162,255,163,255,176,255,181,255,180,255,188,255,198,255,205,255,214,255,223,255,236,255,249,255,254,255,3,0, +11,0,20,0,29,0,35,0,42,0,51,0,47,0,40,0,49,0,67,0,83,0,90,0,90,0,92,0,94,0,91,0, +89,0,92,0,91,0,82,0,70,0,57,0,45,0,38,0,34,0,29,0,25,0,24,0,21,0,10,0,255,255,248,255, +241,255,233,255,225,255,215,255,206,255,201,255,195,255,192,255,188,255,183,255,183,255,183,255,185,255,196,255,208,255,214,255, +218,255,222,255,226,255,225,255,223,255,225,255,221,255,214,255,214,255,217,255,219,255,226,255,236,255,250,255,9,0,24,0, +40,0,54,0,64,0,71,0,78,0,86,0,91,0,92,0,97,0,103,0,102,0,95,0,92,0,90,0,82,0,67,0, +53,0,46,0,44,0,39,0,31,0,23,0,15,0,6,0,253,255,241,255,226,255,209,255,194,255,183,255,172,255,159,255, +150,255,141,255,136,255,131,255,126,255,132,255,143,255,151,255,158,255,162,255,162,255,168,255,177,255,184,255,186,255,182,255, +185,255,197,255,205,255,211,255,222,255,244,255,17,0,45,0,71,0,96,0,115,0,122,0,125,0,126,0,121,0,116,0, +111,0,100,0,83,0,68,0,59,0,50,0,38,0,32,0,38,0,45,0,50,0,53,0,49,0,40,0,30,0,21,0, +19,0,17,0,5,0,243,255,225,255,208,255,191,255,172,255,157,255,152,255,148,255,141,255,141,255,150,255,162,255,171,255, +180,255,194,255,210,255,221,255,224,255,225,255,228,255,230,255,234,255,238,255,242,255,252,255,4,0,7,0,20,0,42,0, +57,0,62,0,69,0,79,0,86,0,82,0,76,0,80,0,88,0,92,0,93,0,94,0,93,0,88,0,83,0,76,0, +62,0,42,0,35,0,38,0,34,0,20,0,2,0,246,255,245,255,241,255,227,255,218,255,213,255,207,255,200,255,192,255, +181,255,171,255,164,255,158,255,150,255,137,255,126,255,121,255,120,255,124,255,135,255,150,255,166,255,176,255,182,255,192,255, +202,255,209,255,214,255,218,255,229,255,246,255,11,0,33,0,55,0,75,0,97,0,118,0,131,0,144,0,157,0,165,0, +166,0,156,0,143,0,142,0,143,0,141,0,142,0,138,0,123,0,113,0,108,0,99,0,90,0,83,0,76,0,68,0, +53,0,34,0,16,0,3,0,250,255,242,255,228,255,206,255,183,255,168,255,161,255,162,255,166,255,162,255,151,255,145,255, +144,255,134,255,120,255,115,255,121,255,130,255,138,255,145,255,150,255,158,255,175,255,199,255,223,255,237,255,243,255,252,255, +19,0,46,0,63,0,70,0,75,0,77,0,80,0,82,0,85,0,93,0,96,0,91,0,85,0,81,0,79,0,78,0, +74,0,73,0,66,0,50,0,38,0,29,0,15,0,251,255,233,255,229,255,229,255,224,255,220,255,217,255,208,255,204,255, +203,255,201,255,197,255,191,255,183,255,166,255,154,255,160,255,171,255,174,255,179,255,187,255,199,255,212,255,224,255,240,255, +252,255,252,255,251,255,246,255,234,255,225,255,233,255,2,0,22,0,27,0,33,0,40,0,46,0,52,0,55,0,51,0, +39,0,28,0,30,0,34,0,31,0,35,0,48,0,56,0,53,0,48,0,47,0,36,0,17,0,12,0,17,0,14,0, +7,0,0,0,252,255,253,255,252,255,245,255,231,255,220,255,219,255,220,255,216,255,212,255,212,255,217,255,222,255,223,255, +224,255,224,255,224,255,233,255,241,255,238,255,229,255,230,255,242,255,247,255,238,255,227,255,225,255,236,255,249,255,3,0, +9,0,14,0,18,0,19,0,22,0,30,0,39,0,37,0,29,0,32,0,48,0,58,0,62,0,69,0,72,0,65,0, +64,0,69,0,63,0,40,0,18,0,10,0,7,0,0,0,251,255,242,255,231,255,232,255,239,255,243,255,247,255,254,255, +10,0,12,0,3,0,254,255,245,255,219,255,196,255,190,255,192,255,191,255,190,255,205,255,226,255,233,255,225,255,216,255, +215,255,221,255,225,255,222,255,219,255,226,255,241,255,252,255,254,255,6,0,22,0,32,0,31,0,32,0,41,0,48,0, +44,0,44,0,48,0,44,0,36,0,33,0,33,0,23,0,2,0,251,255,6,0,17,0,23,0,29,0,37,0,48,0, +57,0,55,0,41,0,22,0,11,0,5,0,250,255,243,255,248,255,252,255,247,255,241,255,238,255,230,255,216,255,212,255, +221,255,230,255,238,255,247,255,1,0,5,0,2,0,1,0,2,0,252,255,243,255,237,255,236,255,240,255,241,255,242,255, +253,255,14,0,24,0,24,0,18,0,16,0,14,0,8,0,7,0,13,0,19,0,24,0,28,0,36,0,41,0,37,0, +31,0,30,0,34,0,38,0,30,0,13,0,7,0,13,0,17,0,15,0,13,0,12,0,9,0,1,0,246,255,232,255, +215,255,202,255,208,255,228,255,236,255,224,255,210,255,204,255,207,255,209,255,203,255,195,255,191,255,188,255,185,255,180,255, +174,255,177,255,189,255,202,255,208,255,203,255,195,255,186,255,177,255,172,255,179,255,193,255,207,255,222,255,241,255,8,0, +28,0,35,0,34,0,37,0,45,0,54,0,61,0,60,0,54,0,56,0,67,0,83,0,96,0,96,0,86,0,77,0, +66,0,54,0,45,0,43,0,47,0,53,0,57,0,52,0,47,0,45,0,37,0,21,0,4,0,249,255,240,255,229,255, +223,255,232,255,251,255,3,0,250,255,235,255,230,255,232,255,231,255,224,255,222,255,225,255,223,255,216,255,215,255,224,255, +227,255,222,255,228,255,253,255,19,0,28,0,35,0,45,0,49,0,51,0,57,0,66,0,65,0,49,0,37,0,38,0, +42,0,42,0,44,0,52,0,62,0,67,0,59,0,34,0,12,0,8,0,11,0,7,0,251,255,242,255,239,255,236,255, +233,255,230,255,221,255,208,255,199,255,196,255,199,255,198,255,190,255,187,255,189,255,193,255,199,255,195,255,187,255,191,255, +199,255,196,255,192,255,196,255,198,255,190,255,188,255,199,255,212,255,220,255,230,255,251,255,19,0,34,0,50,0,71,0, +76,0,68,0,73,0,82,0,78,0,69,0,68,0,76,0,80,0,87,0,99,0,97,0,88,0,97,0,113,0,105,0, +74,0,60,0,69,0,69,0,60,0,63,0,70,0,56,0,25,0,2,0,241,255,214,255,197,255,198,255,195,255,185,255, +182,255,185,255,189,255,188,255,178,255,161,255,143,255,136,255,136,255,127,255,121,255,136,255,163,255,178,255,185,255,203,255, +213,255,198,255,191,255,209,255,226,255,227,255,224,255,229,255,236,255,237,255,239,255,248,255,1,0,17,0,38,0,50,0, +53,0,63,0,85,0,99,0,103,0,114,0,126,0,120,0,109,0,112,0,116,0,107,0,96,0,98,0,97,0,81,0, +68,0,57,0,34,0,5,0,243,255,240,255,241,255,234,255,219,255,201,255,187,255,187,255,187,255,174,255,167,255,173,255, +169,255,146,255,136,255,154,255,163,255,148,255,140,255,153,255,169,255,182,255,189,255,197,255,205,255,218,255,243,255,2,0, +247,255,239,255,250,255,8,0,17,0,32,0,51,0,61,0,67,0,83,0,96,0,93,0,87,0,92,0,102,0,104,0, +98,0,101,0,108,0,107,0,110,0,120,0,122,0,103,0,80,0,73,0,60,0,36,0,19,0,251,255,227,255,233,255, +253,255,243,255,214,255,208,255,229,255,229,255,204,255,189,255,182,255,166,255,143,255,138,255,150,255,152,255,148,255,159,255, +172,255,171,255,170,255,183,255,200,255,216,255,232,255,237,255,229,255,237,255,254,255,253,255,246,255,248,255,249,255,238,255, +222,255,229,255,253,255,10,0,18,0,38,0,65,0,80,0,72,0,64,0,71,0,75,0,72,0,72,0,75,0,73,0, +58,0,43,0,42,0,46,0,40,0,20,0,1,0,1,0,7,0,3,0,254,255,6,0,20,0,19,0,11,0,17,0, +15,0,253,255,238,255,230,255,223,255,213,255,204,255,209,255,219,255,222,255,223,255,219,255,214,255,213,255,207,255,195,255, +186,255,186,255,194,255,187,255,178,255,197,255,228,255,247,255,9,0,27,0,36,0,40,0,51,0,66,0,70,0,77,0, +95,0,111,0,114,0,104,0,89,0,86,0,85,0,74,0,59,0,48,0,52,0,69,0,85,0,96,0,100,0,109,0, +123,0,118,0,89,0,59,0,47,0,53,0,43,0,12,0,5,0,28,0,37,0,22,0,5,0,5,0,6,0,238,255, +193,255,154,255,129,255,108,255,89,255,80,255,77,255,65,255,52,255,49,255,51,255,44,255,35,255,46,255,75,255,96,255, +99,255,105,255,138,255,188,255,211,255,204,255,208,255,235,255,6,0,20,0,42,0,91,0,147,0,191,0,234,0,32,1, +86,1,121,1,143,1,171,1,198,1,211,1,212,1,213,1,207,1,169,1,103,1,39,1,231,0,145,0,43,0,211,255, +145,255,74,255,248,254,179,254,125,254,85,254,59,254,21,254,219,253,165,253,118,253,72,253,32,253,6,253,8,253,47,253, +128,253,231,253,68,254,135,254,177,254,197,254,226,254,36,255,123,255,208,255,48,0,173,0,43,1,144,1,234,1,64,2, +145,2,239,2,87,3,173,3,3,4,124,4,252,4,71,5,78,5,50,5,6,5,189,4,66,4,152,3,222,2,48,2, +153,1,27,1,156,0,253,255,75,255,159,254,224,253,14,253,96,252,223,251,92,251,222,250,156,250,154,250,172,250,207,250, +16,251,57,251,35,251,3,251,17,251,71,251,160,251,40,252,210,252,132,253,37,254,163,254,11,255,108,255,177,255,205,255, +191,255,145,255,80,255,33,255,95,255,134,0,143,2,162,4,255,5,232,6,223,7,148,8,132,8,255,7,138,7,9,7, +65,6,100,5,165,4,16,4,185,3,143,3,59,3,142,2,186,1,231,0,24,0,139,255,110,255,118,255,83,255,30,255, +228,254,96,254,97,253,24,252,196,250,70,249,137,247,27,246,189,245,91,246,57,247,249,247,211,248,237,249,0,251,168,251, +211,251,203,251,221,251,27,252,143,252,101,253,173,254,46,0,164,1,13,3,106,4,144,5,90,6,217,6,48,7,106,7, +150,7,234,7,128,8,31,9,107,9,79,9,6,9,165,8,241,7,200,6,106,5,58,4,93,3,200,2,97,2,197,1, +158,0,33,255,168,253,6,252,215,249,167,247,198,246,101,247,90,248,248,248,135,249,64,250,1,251,180,251,55,252,38,252, +110,251,173,250,79,250,23,250,219,249,219,249,86,250,26,251,186,251,4,252,44,252,201,252,62,254,62,0,72,2,90,4, +192,6,20,9,34,10,137,9,64,8,250,6,75,5,238,2,204,0,235,255,17,0,164,0,127,1,85,2,201,2,2,3, +42,3,238,2,238,1,136,0,136,255,70,255,168,255,107,0,40,1,166,1,8,2,107,2,128,2,229,1,227,0,14,0, +132,255,60,255,145,255,191,0,18,2,139,2,92,2,87,2,107,2,243,1,202,0,111,255,116,254,241,253,218,253,51,254, +195,254,41,255,55,255,13,255,149,254,65,253,28,251,46,249,248,247,221,246,121,245,127,244,255,244,108,247,56,251,206,254, +240,0,58,2,141,3,247,3,105,2,6,0,158,254,232,253,185,252,219,251,186,252,222,254,38,1,170,3,147,6,172,8, +10,9,1,9,249,9,228,10,114,10,195,9,145,10,67,12,202,12,116,11,26,9,170,6,89,4,33,1,55,252,121,247, +152,245,50,246,216,246,25,247,21,248,35,249,6,249,196,248,41,249,69,248,21,245,67,242,49,242,95,243,175,243,25,244, +83,246,209,249,26,253,98,255,152,0,68,1,209,1,83,2,103,3,195,5,150,8,20,10,30,10,167,10,141,12,40,14, +234,13,88,12,226,10,63,10,18,10,116,9,239,7,87,6,224,5,60,6,194,5,156,3,205,0,7,255,221,254,83,255, +19,255,248,253,71,253,137,253,82,253,163,251,179,249,178,248,215,247,18,246,10,244,216,242,52,242,175,241,217,241,215,242, +203,243,99,244,80,245,206,246,86,248,42,250,6,253,174,0,161,4,95,8,152,10,114,10,234,8,88,7,218,5,24,4, +163,2,40,2,229,1,18,1,113,0,182,0,25,1,147,0,97,255,80,254,128,253,231,252,234,252,221,253,241,255,69,3, +102,7,34,11,15,13,138,12,124,10,200,8,123,8,119,8,254,6,11,5,215,5,222,9,72,13,10,13,232,10,215,9, +39,9,115,6,249,1,210,253,232,250,27,249,142,248,199,248,148,248,225,247,199,247,107,248,32,248,75,245,200,240,70,237, +65,236,197,236,64,237,229,237,167,240,242,245,30,251,196,253,140,254,38,255,98,255,11,254,69,251,65,248,19,246,184,245, +172,247,26,251,137,254,151,1,105,5,109,10,173,14,12,16,225,14,62,13,133,12,114,12,121,12,9,13,152,14,142,16, +218,17,155,17,82,15,117,11,140,7,155,4,253,1,36,255,90,253,180,253,183,254,163,254,100,254,128,255,223,0,121,0, +201,254,150,253,159,252,179,250,245,248,75,249,181,250,241,250,90,250,138,250,235,250,181,249,170,246,255,242,47,240,76,239, +226,239,131,240,57,241,254,242,31,245,122,246,126,248,234,252,184,1,1,4,67,5,30,8,118,10,41,9,59,6,166,5, +120,7,69,9,141,10,122,12,228,14,56,16,231,15,26,15,155,14,127,13,251,10,84,8,10,7,103,6,249,4,80,3, +72,3,42,5,213,6,1,6,203,2,2,255,9,251,160,245,125,239,252,235,169,236,82,239,11,242,9,245,232,247,81,249, +111,249,49,249,255,247,250,244,114,241,130,239,115,239,132,240,146,242,190,245,12,250,185,254,153,1,161,1,246,0,143,1, +30,2,60,1,194,0,244,2,207,6,246,9,63,12,19,15,129,18,161,20,234,19,52,17,143,14,230,12,204,11,22,11, +47,11,161,11,27,11,154,9,69,8,200,6,121,3,165,254,241,250,211,249,248,249,236,249,40,250,100,251,205,252,107,253, +134,253,96,253,174,252,198,251,46,251,88,250,181,248,254,246,226,245,255,244,108,244,13,245,133,246,43,248,11,251,224,254, +129,0,81,255,19,255,245,0,213,0,244,252,129,249,5,249,181,248,5,247,99,246,244,247,21,250,116,252,209,255,74,2, +174,1,219,255,97,255,73,255,51,254,31,253,33,253,29,254,88,0,252,3,80,7,188,8,150,9,48,11,221,11,207,10, +201,10,71,13,168,15,99,16,115,17,218,18,133,17,120,13,68,10,188,8,151,6,217,3,143,2,12,2,42,0,161,253, +107,252,76,252,243,251,5,251,150,249,181,247,6,246,223,244,131,243,94,242,163,243,196,247,58,252,240,254,54,0,145,0, +60,255,16,252,142,248,12,246,226,244,28,245,176,246,127,249,252,252,84,0,249,2,19,4,6,3,192,0,29,254,90,250, +117,245,204,241,70,241,52,243,249,246,62,253,177,4,61,10,38,13,111,14,110,13,80,9,16,4,32,0,98,253,136,251, +190,251,139,253,15,255,221,0,135,4,188,8,204,10,48,10,48,8,14,6,160,4,186,3,142,2,250,1,203,3,254,6, +129,8,195,7,203,6,79,6,83,5,9,4,147,3,207,3,213,3,191,3,90,4,23,5,251,3,12,1,10,255,237,254, +85,254,186,251,184,248,196,246,254,244,216,242,84,241,108,240,16,239,158,237,119,237,34,239,8,242,18,245,118,247,234,249, +225,253,45,2,167,3,161,2,46,2,45,2,131,0,7,254,220,252,243,252,223,253,183,0,2,5,147,7,88,7,14,7, +86,8,143,9,156,9,20,10,108,12,156,15,33,18,20,20,196,21,107,22,99,21,61,19,161,16,75,13,72,9,175,5, +70,3,181,1,21,0,214,253,75,251,15,249,135,246,35,242,42,236,102,231,89,229,112,228,197,227,22,229,116,233,50,239, +49,244,175,247,151,249,195,250,235,252,224,255,77,1,108,0,6,255,207,254,252,255,129,2,184,6,140,11,78,14,76,14, +100,13,200,11,77,7,77,0,62,251,211,250,122,252,55,253,238,253,107,0,187,3,133,5,122,5,136,5,192,6,150,7, +16,6,241,2,248,0,170,0,15,0,239,254,214,254,93,255,196,254,40,253,96,251,158,248,155,244,36,242,64,244,60,250, +135,0,173,4,136,7,13,11,44,14,150,13,104,9,184,5,46,4,173,2,240,0,210,0,154,1,132,1,230,1,35,4, +221,5,40,5,134,4,2,6,89,7,27,7,101,7,116,8,52,7,96,3,77,0,81,254,122,250,148,245,10,244,64,246, +244,247,97,247,90,247,200,249,196,252,69,254,148,254,149,254,254,254,0,0,198,255,65,252,37,247,34,244,135,243,225,242, +142,241,55,240,8,238,70,235,30,235,138,238,82,242,129,245,88,251,172,3,220,8,118,8,156,6,23,6,199,4,28,2, +105,1,221,3,32,7,213,10,10,17,1,25,19,31,144,33,88,33,141,30,84,24,26,15,237,4,48,252,135,246,52,244, +75,244,37,246,149,250,111,2,186,11,124,18,121,20,58,18,7,13,139,5,60,252,116,242,247,234,166,232,33,236,183,242, +120,248,165,251,86,253,168,254,224,254,181,252,19,248,105,242,13,238,133,236,226,236,123,237,22,239,187,243,242,250,203,1, +210,5,51,6,124,3,164,255,186,252,235,250,112,249,1,249,249,250,160,254,231,1,244,3,206,4,150,4,86,4,112,5, +169,7,132,9,177,10,51,12,19,14,106,15,105,16,67,17,203,16,194,14,127,12,13,10,51,6,247,1,37,0,177,0, +228,0,70,0,127,0,212,0,215,254,220,250,131,247,241,245,185,245,173,246,18,248,187,248,64,249,213,250,141,252,225,252, +31,252,135,251,153,251,1,252,94,252,210,252,251,253,100,0,38,4,236,8,152,13,59,16,234,15,1,14,230,11,180,8, +63,3,3,253,126,248,26,246,116,244,152,242,27,241,73,241,22,243,7,245,92,246,182,247,78,249,85,250,222,250,34,252, +182,253,174,253,45,252,105,251,21,252,108,252,14,251,49,249,210,248,172,249,9,250,95,250,80,253,240,2,196,7,120,10, +113,13,25,17,157,18,242,16,33,14,190,11,101,9,185,6,59,4,57,2,248,0,206,0,71,1,66,2,2,5,154,9, +64,13,10,14,28,14,178,15,101,16,186,12,70,6,222,1,160,0,15,255,100,251,134,248,21,249,145,251,104,253,185,254, +163,0,65,2,215,1,34,255,37,251,118,247,165,245,242,245,69,247,191,248,56,250,7,251,125,249,164,244,149,237,221,230, +237,226,24,226,99,226,211,226,106,229,252,235,244,243,170,248,49,250,176,252,82,0,127,0,49,252,207,248,149,250,95,255, +134,4,121,12,6,25,255,36,206,41,54,40,131,37,94,34,118,27,177,17,104,10,61,8,202,8,39,9,28,9,208,9, +85,12,34,17,10,22,177,22,190,17,169,10,170,4,238,254,151,247,224,239,109,235,121,236,17,241,95,244,26,244,198,242, +217,242,16,243,132,241,240,238,207,236,248,234,43,233,158,232,105,234,231,237,46,241,92,243,5,246,50,250,206,252,43,250, +95,244,158,241,53,244,113,248,147,250,34,251,63,253,118,2,73,8,175,10,165,9,163,9,36,13,9,17,248,17,115,17, +189,18,61,22,223,25,159,27,50,27,118,25,204,22,159,19,28,17,156,15,9,14,183,11,126,9,81,8,177,7,231,5, +145,1,213,251,89,248,77,248,212,247,232,243,157,239,158,239,0,243,137,244,225,241,254,237,141,236,55,237,108,236,8,233, +205,230,207,232,7,237,129,240,119,243,215,246,16,250,39,253,13,1,241,4,238,6,155,7,69,9,241,11,155,13,210,13, +211,13,236,13,100,13,66,12,15,11,24,9,9,5,119,0,129,255,161,2,19,5,174,3,16,1,215,0,188,1,101,255, +5,249,245,242,38,241,139,242,132,243,95,243,71,244,175,246,237,248,175,250,25,253,40,0,160,2,64,4,152,5,15,6, +12,5,247,3,118,4,159,6,246,9,251,13,104,17,203,18,59,18,81,17,126,16,44,14,223,9,217,5,212,3,243,1, +25,253,217,245,192,240,37,241,233,245,210,251,156,0,160,3,103,5,81,6,161,5,249,2,20,0,37,255,230,255,17,0, +171,254,195,252,96,251,116,250,165,249,45,249,220,249,118,251,199,251,120,249,0,247,243,247,183,251,49,254,208,253,111,252, +113,250,46,246,23,240,252,234,104,232,142,231,35,232,93,235,198,240,54,245,30,247,242,248,72,253,13,3,147,7,129,10, +49,13,203,15,186,17,67,19,130,20,223,20,232,20,63,22,63,24,78,23,195,17,99,11,213,8,174,9,98,10,246,9, +101,10,152,12,201,14,213,14,55,12,141,7,28,2,148,253,168,250,142,248,16,247,134,247,42,250,145,252,240,252,88,252, +8,252,182,251,9,251,170,249,203,246,85,243,241,241,206,242,161,242,38,240,225,238,96,241,145,244,82,244,6,241,155,237, +70,235,173,233,232,232,194,233,176,236,82,241,215,246,248,251,37,255,241,255,57,255,124,253,86,251,191,250,101,252,162,253, +89,253,109,255,6,6,176,12,60,16,48,20,183,26,144,31,148,31,39,29,103,26,146,22,201,18,78,18,207,20,106,22, +234,21,207,21,240,22,214,22,52,20,29,17,51,15,242,12,243,8,27,5,180,3,175,3,115,2,173,255,20,253,103,251, +244,248,102,243,106,235,83,229,182,227,149,227,207,225,229,224,171,227,37,231,14,232,175,232,165,235,169,238,13,239,122,238, +60,239,22,240,96,239,144,238,39,240,148,244,225,249,161,253,167,255,223,1,213,4,107,6,85,5,162,3,162,3,192,4, +219,5,16,7,82,7,3,5,14,2,155,2,63,7,96,12,177,15,2,19,142,24,43,31,249,35,208,37,96,37,162,35, +47,33,247,29,98,25,192,19,188,14,70,11,173,8,5,7,81,7,47,8,231,6,249,3,7,1,43,252,107,243,219,233, +190,227,248,224,133,223,88,223,66,225,122,230,16,240,37,250,153,253,229,250,149,249,85,250,119,245,184,233,190,223,187,220, +53,221,108,222,48,226,49,233,220,240,164,246,24,250,87,252,29,254,134,254,213,252,203,250,92,251,166,254,195,1,154,3, +78,6,176,10,89,14,154,15,228,15,4,17,149,18,73,20,67,24,118,31,82,38,238,41,128,44,193,47,238,47,175,41, +169,32,132,26,200,22,211,17,116,12,161,9,67,8,184,5,216,2,33,1,86,254,216,247,246,239,21,235,120,233,25,232, +212,229,35,228,223,227,14,228,162,227,71,226,22,224,134,222,220,223,205,227,10,231,81,231,179,229,53,228,137,227,126,227, +53,227,211,225,73,225,121,228,22,233,190,234,112,236,13,245,61,3,228,14,100,21,251,26,86,33,152,37,93,39,187,41, +139,45,198,48,170,50,34,52,211,52,108,50,233,43,83,36,25,31,45,27,132,21,253,13,193,6,223,1,147,0,119,2, +126,5,180,7,41,8,52,6,139,1,227,250,220,242,155,233,1,225,10,220,185,218,147,218,66,219,104,222,176,227,210,232, +70,236,78,237,72,235,165,230,162,224,28,218,222,211,222,206,239,203,108,204,182,209,85,219,47,231,107,243,4,255,134,9, +147,18,246,24,34,27,213,25,172,24,61,26,130,29,3,33,74,37,140,42,209,47,221,52,45,57,115,58,44,55,240,48, +5,42,111,34,167,25,199,17,239,13,146,14,124,17,2,20,92,20,232,17,246,11,155,1,43,244,137,231,40,222,40,215, +22,210,146,209,184,214,75,221,77,225,75,228,95,232,52,235,223,233,233,228,139,222,122,216,31,212,174,210,154,212,127,217, +105,224,48,232,68,240,133,248,134,255,32,3,51,4,172,6,40,12,55,18,27,23,131,27,255,30,217,31,186,30,225,29, +0,29,67,26,57,23,60,24,148,29,40,34,107,35,138,36,17,39,94,39,217,34,251,27,34,22,54,17,251,11,225,7, +84,6,83,5,25,3,52,1,194,0,44,0,32,254,47,251,31,248,36,245,125,242,169,239,179,234,111,227,110,221,218,218, +201,216,78,212,7,207,13,204,28,204,86,206,9,210,132,214,8,219,1,224,163,230,109,238,149,244,51,247,213,247,24,249, +218,250,148,251,28,252,159,254,117,3,89,9,14,15,210,19,2,24,253,28,207,34,41,39,123,40,250,39,247,38,64,37, +140,35,85,35,128,35,128,33,113,30,162,30,6,35,249,38,103,38,55,35,9,34,16,35,79,33,232,25,161,16,65,10, +136,6,146,2,57,253,22,247,229,240,246,234,105,229,25,224,139,218,77,213,185,209,61,207,89,204,60,202,244,202,218,205, +36,209,169,212,207,216,106,220,175,221,34,221,196,220,202,220,3,221,135,223,196,229,198,237,109,245,230,252,127,4,59,11, +102,16,69,20,47,23,126,25,225,27,63,30,115,31,145,31,165,32,225,35,116,40,222,45,27,52,89,57,133,59,55,59, +222,57,198,54,104,48,143,39,161,31,16,27,57,24,203,19,134,13,223,7,108,3,119,253,83,244,165,234,224,227,250,223, +43,221,72,219,252,218,120,219,226,218,0,217,53,215,72,213,149,209,213,204,142,201,113,200,227,200,184,203,18,210,174,218, +13,227,105,234,215,240,108,245,192,247,236,248,242,249,187,251,136,255,35,5,205,10,232,15,84,21,191,26,8,30,103,30, +230,29,121,30,245,31,207,33,75,36,182,39,4,44,224,48,73,53,201,55,110,55,117,52,198,47,15,42,158,35,180,28, +183,21,69,15,9,10,41,6,84,3,78,1,104,255,19,252,220,246,110,241,240,236,213,232,246,228,184,225,13,223,66,221, +175,220,25,220,177,217,186,213,136,210,71,209,134,208,125,207,183,207,168,209,193,211,116,213,120,215,14,218,18,221,172,224, +65,229,188,234,64,240,173,245,53,252,96,4,239,12,59,20,187,25,1,30,100,33,83,35,218,35,99,36,79,38,221,41, +164,46,242,51,130,56,212,58,97,58,156,55,196,50,23,44,199,36,150,30,145,26,108,24,40,23,165,22,182,23,249,25, +67,27,211,25,46,21,252,12,165,1,91,245,240,233,49,223,56,213,17,206,156,203,42,205,225,207,127,209,44,210,158,210, +217,209,120,206,107,201,228,197,191,197,179,199,172,202,218,207,124,215,53,223,167,228,113,231,31,233,116,235,122,238,185,241, +12,246,85,252,102,4,57,14,171,25,244,36,155,45,243,50,247,53,67,55,28,55,147,54,234,54,206,56,54,60,231,63, +102,66,85,67,73,66,253,61,74,54,203,44,164,34,249,23,208,13,251,5,216,0,234,253,196,253,147,255,93,255,230,250, +129,244,144,237,242,227,235,215,245,205,252,199,83,195,115,191,221,191,0,197,186,201,155,202,23,202,211,202,119,203,219,202, +139,202,169,203,115,206,205,211,38,219,2,226,244,231,7,239,118,247,198,254,254,3,49,9,191,15,96,23,15,33,82,45, +136,56,196,62,246,64,212,65,16,65,29,61,19,55,158,49,205,45,246,43,66,45,28,49,167,52,223,54,18,57,218,58, +128,57,40,51,94,40,3,27,9,13,7,0,200,244,74,235,199,227,228,222,72,220,98,218,34,216,161,213,248,210,148,207, +9,203,222,197,49,193,173,189,103,187,246,186,60,189,140,193,65,198,38,203,194,208,132,214,126,219,100,223,74,226,206,228, +22,232,233,236,201,242,90,248,155,253,215,4,112,15,38,27,166,36,58,43,98,48,18,53,162,56,28,58,196,57,43,57, +205,57,191,59,10,62,208,63,206,64,119,65,243,65,213,64,34,60,164,51,133,41,214,32,131,26,104,20,34,13,57,6, +40,1,94,253,63,249,142,243,145,236,68,229,185,221,252,213,115,206,147,198,175,190,200,185,197,185,98,188,132,190,39,192, +0,195,241,198,8,202,160,203,218,204,24,206,43,207,74,209,94,213,30,218,249,222,175,229,162,238,149,247,88,255,251,6, +182,14,233,20,38,25,80,29,45,34,97,38,232,41,6,46,21,50,24,53,104,56,86,61,28,67,156,72,168,77,40,82, +78,85,252,85,76,83,129,76,167,65,118,52,12,39,102,26,28,15,255,5,20,255,38,249,80,243,78,238,220,234,123,231, +28,226,111,219,20,214,141,210,140,206,160,200,113,194,132,190,205,189,143,191,226,193,68,195,102,196,199,198,136,201,253,201, +187,199,188,197,146,198,3,202,17,207,90,213,81,220,214,227,184,236,38,247,146,1,235,9,33,16,153,22,147,30,5,38, +152,43,121,49,77,57,226,64,199,69,254,72,47,76,193,77,68,75,204,69,126,64,115,60,26,57,173,54,41,53,44,51, +1,48,68,44,236,39,83,34,121,27,128,19,149,10,155,1,155,249,199,242,75,236,134,229,44,223,177,217,22,212,130,206, +155,202,237,199,52,196,114,191,213,187,45,186,20,185,109,183,32,182,155,182,226,184,74,188,195,192,6,198,59,203,149,208, +79,215,74,223,25,231,145,238,194,246,4,0,199,9,33,19,59,27,8,34,48,40,253,45,238,50,89,54,189,56,149,59, +71,63,201,66,65,69,104,70,153,70,11,71,38,72,96,72,95,70,212,66,58,63,144,59,13,54,193,45,7,37,46,31, +205,27,118,23,31,17,14,11,51,6,120,0,92,248,234,238,71,229,28,219,146,208,7,199,75,190,23,181,3,173,56,169, +1,169,251,168,48,169,177,172,44,179,68,184,4,186,238,186,199,188,133,190,26,192,166,195,3,202,39,209,64,215,125,221, +225,229,238,239,173,249,154,2,211,11,65,22,73,33,166,43,35,53,62,62,180,70,249,77,73,84,109,90,125,96,1,101, +131,102,228,101,192,100,83,98,65,93,197,86,173,80,45,74,222,65,96,56,128,46,171,35,193,23,232,11,229,0,198,246, +33,238,209,231,4,227,60,221,126,213,139,205,3,199,161,193,74,188,30,182,79,175,184,169,0,167,160,166,66,167,238,168, +73,172,250,176,37,182,97,187,124,192,125,197,250,202,14,209,168,214,74,219,109,224,118,231,155,239,157,247,235,255,113,9, +242,19,142,30,241,40,132,51,50,62,34,71,143,76,74,79,248,80,110,81,245,79,118,77,225,75,39,76,110,77,27,78, +96,77,213,75,82,74,231,71,128,66,20,58,93,48,198,37,223,25,187,13,229,2,63,249,168,239,80,230,5,223,149,218, +56,215,214,210,143,205,235,200,113,197,229,193,238,188,183,182,91,176,245,170,152,167,147,166,28,167,215,168,122,172,94,178, +237,185,79,194,214,202,28,211,162,218,167,224,189,229,58,236,62,245,72,255,204,8,229,17,76,27,44,37,184,46,157,54, +106,60,11,65,155,69,203,73,0,76,188,75,153,74,240,73,67,73,137,71,208,68,127,66,208,65,250,65,42,65,161,62, +156,58,129,53,196,47,110,41,10,34,33,25,150,14,99,3,147,249,6,242,217,234,220,225,20,216,163,208,18,204,100,199, +87,192,243,183,135,176,94,171,149,168,174,167,18,168,193,169,34,173,163,177,143,181,88,184,180,187,45,193,251,199,138,206, +249,212,174,220,244,229,78,239,146,247,110,255,224,7,88,16,241,23,127,31,63,40,64,49,136,56,123,62,132,69,116,78, +99,87,38,94,54,98,159,100,89,102,11,102,32,97,38,88,208,78,214,70,213,62,25,54,130,45,64,37,117,28,192,18, +175,8,231,254,145,245,150,236,15,228,77,220,104,213,45,207,205,201,146,197,193,193,182,189,109,186,205,184,175,183,106,181, +72,178,124,176,166,177,227,180,96,184,63,188,207,193,183,200,57,207,164,212,127,217,233,221,177,225,133,229,141,234,32,241, +184,248,232,0,42,10,80,21,142,33,97,44,163,52,150,59,232,65,99,70,92,72,235,72,66,73,227,73,89,75,163,77, +121,79,247,79,200,79,14,79,5,76,118,69,190,60,30,52,65,44,218,35,206,25,77,15,55,6,39,254,129,245,54,236, +115,227,236,219,133,213,177,207,65,202,118,197,247,192,30,188,136,183,154,180,81,179,3,178,226,175,167,174,25,176,146,179, +207,183,229,188,235,194,68,201,110,207,65,213,37,219,177,225,126,232,14,239,94,246,162,255,132,10,178,21,56,32,238,41, +171,50,179,57,255,62,224,67,180,72,8,76,70,77,11,78,97,79,194,79,101,77,251,72,74,68,132,63,231,57,189,51, +90,46,208,42,126,40,75,37,138,32,229,27,183,23,222,17,215,9,156,1,169,249,66,240,17,229,43,218,13,209,230,200, +162,192,2,185,131,179,99,176,197,174,13,174,16,174,131,174,113,175,203,177,204,181,154,185,248,187,182,190,185,195,253,201, +229,207,163,213,172,219,212,225,213,232,241,241,222,252,27,8,233,18,185,29,10,41,70,52,3,62,161,69,173,75,183,80, +39,85,18,89,141,91,35,92,84,92,241,92,54,92,213,88,219,83,67,78,184,71,19,64,197,55,235,46,70,37,225,26, +48,16,187,5,230,251,201,242,26,234,82,225,66,216,140,207,48,200,91,194,115,189,78,185,126,182,130,181,24,182,210,182, +41,182,208,180,188,180,156,181,152,181,22,181,237,181,81,184,194,187,69,193,220,201,55,212,30,222,103,231,117,241,74,252, +72,6,117,14,58,21,130,27,78,34,94,42,89,51,194,59,111,66,132,71,101,75,186,77,73,78,102,77,80,75,202,72, +65,71,242,70,212,70,173,70,201,70,30,70,21,67,130,61,52,54,55,45,77,34,140,22,193,11,110,2,201,249,96,241, +181,233,96,227,224,221,161,215,194,207,78,199,249,191,240,185,195,179,9,173,202,167,218,165,114,166,223,167,155,169,245,171, +52,175,60,179,147,183,46,188,183,193,224,200,213,209,167,219,199,228,79,237,210,246,128,1,239,11,29,21,219,28,185,35, +170,42,144,49,184,55,154,61,236,67,49,74,186,79,48,84,225,86,95,87,60,86,233,83,78,80,45,76,229,72,21,70, +24,66,69,61,135,57,229,54,157,51,187,46,62,40,252,31,217,21,88,10,178,254,216,243,38,233,173,221,125,210,110,201, +39,194,251,186,254,179,164,174,242,170,170,167,116,164,169,161,95,159,89,158,187,159,7,163,247,166,192,171,42,178,247,185, +110,194,235,202,15,211,100,219,159,228,25,238,191,246,189,254,185,6,201,14,4,23,196,31,60,41,107,51,239,61,226,71, +0,81,2,90,226,98,249,105,213,109,20,111,62,111,87,110,218,106,102,100,184,92,68,85,115,77,85,68,103,58,146,48, +167,38,22,28,5,17,179,5,10,250,103,238,106,227,95,217,178,208,115,201,155,194,139,187,6,181,132,175,133,170,211,165, +248,161,214,159,203,159,19,161,45,163,251,166,199,172,27,179,196,184,10,190,118,195,248,200,59,206,93,211,11,217,170,223, +35,231,164,239,164,249,245,4,183,16,148,28,26,41,240,53,79,65,117,74,95,82,51,89,184,93,141,95,182,95,8,95, +63,93,215,89,160,85,31,82,167,79,185,77,5,76,126,73,198,68,27,62,165,54,101,46,107,36,31,24,21,10,35,252, +9,240,4,230,98,221,219,213,152,207,107,202,231,197,235,193,21,190,73,185,17,179,167,172,122,167,187,163,2,161,111,159, +141,159,128,161,36,165,187,170,11,178,139,185,17,192,84,198,145,205,52,214,239,223,245,233,254,243,49,255,76,12,190,25, +174,37,116,48,2,59,67,68,155,74,209,78,205,82,131,86,207,88,8,90,253,90,189,90,34,88,48,84,71,80,143,75, +65,69,123,63,50,60,223,57,142,54,207,50,66,47,169,42,182,35,136,26,42,16,104,5,2,250,134,237,239,224,237,213, +180,204,34,196,62,188,120,182,224,178,161,175,237,171,194,168,108,166,230,163,213,160,124,158,104,158,156,160,251,163,195,168, +112,176,160,186,247,196,124,206,60,216,120,226,200,235,90,243,87,250,71,2,82,11,209,20,142,30,161,40,228,50,31,61, +69,71,1,81,115,89,174,95,110,99,66,101,212,101,25,101,199,98,115,95,35,92,219,88,185,84,20,79,250,71,243,63, +101,55,28,46,28,36,90,26,99,17,15,8,12,253,20,241,239,229,178,219,209,208,224,196,158,185,44,177,41,172,76,169, +221,166,202,164,73,164,133,165,91,167,4,169,118,170,152,171,137,172,78,174,252,177,92,183,147,189,226,196,101,206,108,218, +224,231,232,244,99,0,12,11,231,21,48,32,156,40,54,47,239,52,207,58,67,65,73,71,121,75,203,77,103,79,99,81, +185,83,86,85,1,86,184,86,127,87,4,87,124,84,24,80,96,74,101,67,88,58,68,47,227,35,251,24,185,13,73,2, +221,247,140,238,106,229,249,219,200,210,207,202,132,196,220,191,109,188,47,185,155,181,128,178,55,176,188,173,117,170,56,167, +126,165,43,166,4,169,140,173,201,179,148,187,81,196,102,205,19,214,163,221,61,228,157,234,94,241,224,248,60,1,98,10, +89,20,240,30,88,41,148,50,85,58,254,64,180,70,84,75,54,79,156,82,250,84,87,86,205,87,54,89,219,88,41,86, +54,82,158,77,229,71,184,64,158,56,86,48,44,40,127,32,31,26,198,20,179,14,21,7,199,254,98,246,26,238,118,230, +238,222,22,214,66,204,102,195,63,188,12,182,127,176,35,172,135,169,149,168,145,168,233,168,233,169,250,171,203,174,237,177, +147,181,243,185,156,190,35,195,64,200,72,207,57,216,137,225,79,234,39,243,203,252,61,7,0,18,79,28,184,37,217,46, +211,56,138,67,64,77,180,84,179,90,100,96,139,101,51,105,169,106,169,105,154,102,4,98,235,91,50,84,32,75,122,65, +67,56,226,47,252,39,3,32,119,23,133,14,70,6,0,255,47,247,126,237,93,226,59,215,43,205,80,196,87,188,37,181, +21,175,219,170,177,168,175,167,233,166,116,166,129,166,198,166,227,166,138,166,37,166,69,167,71,171,246,177,79,186,35,196, +196,207,58,220,194,231,109,242,193,253,172,9,218,20,100,31,80,42,159,53,237,64,2,76,195,85,9,93,105,98,91,102, +59,103,45,100,67,95,160,90,103,86,72,82,56,78,16,74,67,70,196,67,103,66,52,64,20,59,237,50,97,41,121,31, +214,20,36,9,177,252,0,240,38,228,126,218,53,211,43,205,27,199,94,192,110,185,96,179,56,174,198,168,131,162,150,156, +244,152,93,152,160,153,217,155,246,159,105,166,156,173,254,179,212,185,71,192,176,199,160,207,125,216,118,227,163,240,18,255, +202,13,167,27,230,39,131,50,87,59,67,66,156,71,64,75,74,77,39,79,241,81,32,85,219,87,237,89,81,91,83,91, +198,88,237,83,211,78,206,74,82,71,51,67,210,61,201,55,54,50,193,44,221,37,37,29,141,19,109,9,99,254,232,242, +7,232,155,221,222,210,144,200,63,192,194,185,123,179,235,172,69,167,81,163,100,160,238,157,140,156,220,156,147,158,123,161, +230,165,148,171,142,177,194,183,52,191,56,200,252,209,209,219,238,229,20,241,49,253,178,8,80,18,68,26,253,32,184,38, +42,44,181,49,92,55,229,61,198,69,188,77,156,84,245,90,83,97,87,102,85,104,202,103,74,102,33,100,90,96,253,89, +252,80,219,70,116,61,203,52,122,43,186,32,5,21,96,9,94,254,170,243,9,233,241,222,149,213,195,204,214,196,22,190, +209,183,201,177,246,172,137,169,119,166,180,163,74,162,95,162,119,163,228,165,243,169,199,174,171,179,42,185,67,191,209,196, +48,202,28,209,84,217,99,225,101,233,198,241,52,250,53,3,175,13,60,25,202,36,206,47,84,58,115,68,124,77,141,84, +183,89,141,93,44,96,105,97,91,97,91,96,124,94,128,91,86,87,220,81,46,75,154,68,241,62,228,56,157,49,73,42, +10,35,90,26,253,15,228,4,30,249,146,236,67,224,68,213,251,203,180,196,98,191,95,187,163,184,176,183,117,183,178,181, +40,178,244,174,236,172,76,170,103,166,135,163,113,163,122,165,27,169,217,174,123,182,72,191,59,201,53,212,42,223,48,233, +241,242,216,253,221,9,148,21,51,32,233,41,21,51,253,59,26,68,47,74,4,78,199,80,70,83,88,85,33,87,61,89, +29,91,9,91,177,88,217,85,164,83,219,80,148,75,179,67,206,58,238,49,218,40,102,31,191,21,6,12,8,3,65,252, +226,247,190,243,137,237,125,229,131,221,134,214,183,207,72,199,118,188,236,177,131,171,56,169,44,168,59,167,251,166,135,167, +219,168,26,171,156,173,133,175,127,177,82,181,141,187,35,195,67,203,227,211,45,221,104,231,55,242,246,251,116,3,178,9, +188,16,135,25,124,35,213,45,145,56,115,67,124,77,91,86,167,94,139,101,162,104,98,103,60,100,47,97,201,93,0,89, +196,82,195,75,16,69,52,63,63,57,210,49,215,40,107,31,104,22,235,13,206,5,143,253,182,244,58,236,131,229,216,223, +51,217,196,208,55,199,218,189,147,181,52,174,202,167,145,163,108,162,200,163,90,166,90,169,41,173,32,178,55,183,41,187, +13,190,19,193,98,197,43,203,251,209,226,217,21,227,64,237,17,248,228,2,166,12,109,21,120,30,26,40,120,49,22,58, +148,66,152,75,54,84,115,90,117,93,214,93,81,92,40,89,47,84,137,77,119,70,161,64,155,60,7,58,107,56,53,55, +146,53,186,50,212,45,21,38,168,27,132,15,113,2,65,245,48,233,45,223,158,215,84,210,115,206,107,203,79,201,137,199, +209,196,105,192,104,186,191,179,206,173,26,169,109,165,64,163,157,163,190,166,162,171,116,177,165,184,129,193,165,202,166,210, +202,217,31,225,42,233,228,241,46,251,56,5,63,16,174,27,42,38,251,46,171,54,203,61,42,68,175,73,148,78,173,82, +159,85,88,87,214,87,94,87,99,86,151,84,51,81,61,76,100,70,223,63,193,56,226,49,19,44,32,39,146,34,16,30, +252,24,28,19,115,12,218,3,66,248,208,234,142,221,175,209,224,199,105,192,17,187,185,183,143,182,23,183,115,183,239,181, +42,179,201,176,50,175,59,174,246,173,150,174,14,177,29,182,145,188,205,194,195,200,86,207,42,215,205,223,31,232,60,240, +66,249,16,3,95,12,151,20,60,28,231,35,39,43,29,49,29,54,101,59,135,65,1,72,255,77,93,83,162,88,185,93, +142,97,231,98,215,96,65,91,125,83,96,75,147,67,118,59,154,50,190,41,241,33,59,27,137,20,114,12,87,2,60,247, +159,236,154,226,187,216,189,207,182,200,163,195,232,191,215,188,205,185,73,183,140,182,222,182,13,182,30,180,82,179,187,180, +110,183,78,186,54,189,20,193,205,198,220,205,153,212,4,218,229,222,140,228,161,234,222,239,137,244,245,249,111,0,170,7, +242,15,106,25,88,35,64,45,112,55,174,65,175,74,87,81,45,85,59,86,96,85,246,83,174,82,214,80,82,77,205,72, +41,69,122,66,94,63,35,59,250,52,116,44,80,35,205,26,163,17,46,7,204,252,199,243,141,236,148,230,98,224,18,217, +32,209,149,201,249,194,2,189,183,183,209,179,55,177,107,175,74,175,155,177,83,181,75,185,199,189,85,195,43,201,81,205, +38,207,171,208,224,211,116,216,85,221,129,226,140,232,248,239,20,249,50,3,12,13,98,22,122,31,187,39,218,46,97,53, +213,58,60,62,66,64,62,66,50,68,81,69,105,69,16,69,191,68,97,68,226,67,16,67,87,65,233,62,238,60,115,59, +1,57,120,52,0,46,98,38,27,30,228,20,250,9,2,253,18,239,33,226,190,214,232,203,160,193,101,185,92,180,254,178, +24,181,231,184,155,188,223,192,14,199,35,205,201,206,226,202,47,197,88,193,17,191,246,188,68,188,75,191,180,198,123,209, +120,221,86,232,105,241,21,249,75,255,48,4,5,8,130,10,80,12,60,15,124,20,91,28,43,38,137,48,32,59,171,69, +78,78,88,84,245,88,180,91,68,91,238,88,23,87,184,85,138,82,76,76,140,68,248,60,168,52,17,42,104,29,68,16, +152,4,109,251,8,244,67,237,26,231,28,226,66,222,210,218,10,215,241,209,114,202,151,193,197,186,133,183,20,182,45,181, +189,181,227,184,145,190,236,197,139,205,91,211,5,214,21,215,248,216,206,218,251,217,86,215,221,214,225,218,28,226,72,234, +211,242,156,252,24,8,53,20,162,30,232,37,33,43,0,48,40,52,211,54,250,56,115,59,160,61,156,63,110,66,112,69, +239,70,210,70,166,69,4,67,3,63,136,58,45,53,171,45,94,36,59,27,61,19,140,11,98,3,109,251,211,244,51,240, +173,237,99,236,116,234,210,230,58,226,113,221,13,216,143,209,24,202,86,194,56,188,248,185,54,187,211,189,71,193,23,198, +155,203,88,208,61,211,25,212,85,211,101,209,157,207,90,208,133,212,36,219,225,227,112,239,228,253,140,13,89,27,132,37, +38,45,96,51,52,55,211,55,172,54,59,54,125,55,81,57,93,58,80,58,66,57,90,55,35,53,4,51,126,48,239,44, +71,41,49,39,105,38,121,37,15,36,227,33,1,30,108,24,125,17,238,8,101,255,80,246,97,238,59,232,184,228,137,227, +100,227,84,227,22,227,105,226,81,224,198,219,228,212,116,204,59,195,60,186,173,178,168,173,145,172,222,176,123,186,200,198, +129,210,211,220,200,230,20,240,202,246,213,249,217,249,149,248,17,248,138,249,74,253,224,3,233,13,88,26,199,38,131,49, +159,57,164,61,161,60,48,56,56,51,0,47,110,43,83,41,26,42,142,45,185,49,187,52,222,53,235,52,153,49,88,44, +94,38,231,31,128,24,52,17,187,11,39,8,25,5,176,0,199,249,190,241,172,234,227,227,166,219,222,210,57,204,26,201, +10,201,17,203,101,206,14,210,140,213,172,217,161,222,118,226,58,227,240,224,234,220,224,216,253,213,87,212,91,212,175,215, +34,223,43,233,252,243,108,255,32,11,17,21,204,27,161,31,188,32,219,30,190,26,44,22,20,19,50,18,191,18,227,20, +12,26,107,33,202,39,128,43,166,45,159,47,190,48,4,47,82,42,0,37,147,32,85,28,71,23,190,17,14,13,168,9, +43,6,199,1,203,253,22,251,227,248,55,247,223,246,159,246,68,244,236,239,241,234,103,229,79,223,126,217,103,212,195,208, +210,207,42,209,46,211,210,213,119,217,185,220,154,222,224,224,116,229,204,234,160,237,116,237,37,237,27,239,175,242,255,245, +75,249,163,254,80,6,137,14,187,22,143,31,46,40,146,46,152,49,47,49,243,45,225,40,102,34,199,26,131,19,60,14, +252,10,121,9,147,10,113,14,6,19,129,22,112,25,150,28,47,30,242,27,89,22,176,15,120,9,2,4,252,254,62,250, +82,246,168,243,53,242,243,241,15,242,9,241,213,238,130,236,98,234,4,232,142,228,119,223,13,218,98,214,182,212,191,211, +255,210,188,211,97,215,117,221,165,228,51,236,237,242,98,248,189,254,19,7,191,14,131,19,237,21,222,22,247,22,74,23, +216,23,35,23,140,20,137,17,134,15,38,14,211,12,235,11,50,11,224,9,214,8,168,9,141,11,100,12,54,12,19,13, +190,15,105,18,251,18,142,17,90,16,36,17,1,19,140,19,7,18,175,15,96,13,127,10,30,6,100,0,137,250,98,245, +33,241,109,238,125,237,241,236,49,236,148,236,76,238,75,239,100,238,110,236,36,234,70,231,34,228,22,226,1,226,123,227, +1,230,184,233,5,239,252,245,185,253,215,4,205,10,141,15,74,18,6,18,164,14,10,9,212,2,121,253,140,249,40,247, +158,246,141,248,56,253,178,3,42,10,236,14,181,16,147,15,198,13,4,13,163,11,25,8,20,5,12,6,173,10,97,16, +236,20,173,22,228,21,175,20,114,19,253,15,227,9,9,4,125,0,20,254,118,251,61,249,221,247,187,246,4,246,110,246, +84,247,70,247,41,246,130,245,151,246,21,249,204,251,165,253,11,254,133,253,43,253,201,252,252,250,108,247,202,243,20,242, +137,242,94,244,43,247,14,250,201,251,201,252,28,254,18,255,119,254,98,252,218,249,11,248,207,247,22,249,167,250,49,251, +153,251,134,254,202,4,67,12,1,18,102,20,117,20,104,20,8,20,241,16,108,10,210,2,34,253,184,249,214,246,173,244, +140,245,220,249,96,255,176,3,250,5,73,7,159,8,41,9,197,7,184,4,65,1,235,254,93,254,126,254,53,254,86,254, +126,0,160,4,78,8,30,9,143,7,39,6,237,5,192,5,27,5,59,5,232,6,204,8,25,9,138,7,195,4,225,0, +16,252,57,247,210,242,179,238,51,235,102,232,253,229,4,229,53,230,186,231,67,232,13,233,2,235,223,237,137,241,124,245, +244,248,120,252,11,1,54,6,208,10,141,14,243,16,238,16,101,15,121,14,165,13,87,11,96,8,166,5,196,2,163,0, +175,0,43,2,109,3,185,3,12,3,30,2,78,2,32,4,161,6,131,9,193,13,98,18,106,20,177,19,39,19,212,19, +172,19,200,16,222,11,214,7,114,6,39,6,231,4,73,3,4,3,42,4,193,5,109,7,118,8,56,7,136,3,15,255, +94,250,251,244,146,239,60,235,98,232,65,231,145,231,130,232,210,233,124,235,185,236,174,236,7,235,231,231,141,228,27,227, +107,228,41,231,198,233,2,236,112,238,110,241,108,244,86,246,188,246,240,245,199,244,22,245,155,248,219,254,245,5,237,12, +253,19,185,27,226,35,71,42,69,44,168,41,111,36,136,30,5,25,143,20,185,17,15,17,235,18,247,22,119,27,233,29, +145,29,171,27,227,23,87,16,245,5,58,252,8,245,194,240,25,240,241,242,32,248,169,254,123,5,38,11,36,14,244,12, +78,7,178,254,198,244,252,234,8,227,173,221,243,218,87,219,159,222,92,227,28,232,48,235,90,235,114,233,35,231,14,229, +240,226,105,224,177,222,108,224,229,229,193,236,186,243,237,250,46,2,224,8,214,13,154,16,178,18,65,21,90,23,250,23, +70,23,34,22,44,21,162,19,214,16,231,13,224,11,38,10,54,8,14,7,56,8,216,11,62,16,72,20,148,24,31,29, +23,32,220,31,189,28,119,24,51,20,60,15,211,8,102,2,19,254,56,252,120,252,212,254,208,1,216,2,218,1,212,0, +154,255,170,251,247,243,190,234,144,227,200,223,213,221,131,220,23,221,194,224,32,230,247,234,120,238,70,240,111,239,240,235, +64,231,8,227,80,224,109,223,170,224,249,228,134,236,86,245,232,252,230,2,44,9,67,16,151,21,107,23,187,22,32,20, +146,16,27,15,116,16,36,18,63,19,89,20,237,21,50,25,237,29,32,33,245,32,96,30,208,26,239,22,217,18,198,14, +8,11,172,7,136,5,43,6,109,9,116,13,67,16,241,15,66,12,204,7,108,4,206,0,98,251,204,244,181,238,159,234, +56,233,113,233,210,233,67,234,163,234,223,233,0,232,81,230,168,229,111,230,236,232,229,236,195,241,153,246,75,250,39,252, +111,252,38,252,84,251,158,248,222,244,63,243,102,244,245,246,26,251,169,0,221,5,207,9,58,12,57,12,84,9,7,4, +105,253,213,246,155,241,20,239,153,239,244,241,171,245,207,251,123,4,65,14,75,23,171,29,182,32,231,33,133,34,236,33, +125,31,41,28,50,25,19,23,149,21,192,19,234,16,224,13,13,11,88,7,115,2,163,253,226,249,40,247,52,245,73,244, +152,244,80,245,79,246,199,248,199,251,71,252,185,249,48,246,64,243,73,241,192,239,252,237,187,236,82,237,186,239,162,242, +29,245,186,247,6,251,154,253,208,253,66,252,161,250,138,249,63,248,210,245,54,242,58,238,17,235,251,233,55,235,177,237, +201,240,108,245,190,252,141,6,33,17,19,26,153,31,101,33,75,32,214,28,225,22,172,14,111,5,43,253,229,247,2,246, +94,246,193,248,218,253,138,4,220,9,50,12,188,12,64,13,228,13,23,14,198,13,54,13,128,13,229,15,156,19,170,22, +67,24,240,23,230,20,172,15,229,9,153,4,21,0,72,252,7,249,181,246,11,246,207,246,181,247,52,247,39,244,251,238, +76,234,206,231,167,229,10,226,191,222,14,222,5,224,26,228,75,233,87,237,124,239,230,241,198,245,186,248,147,248,239,246, +128,246,175,247,202,249,15,252,107,253,93,254,209,0,186,4,190,8,104,12,120,14,123,13,62,11,171,10,168,11,205,12, +238,13,37,15,148,16,199,18,50,21,248,21,125,20,239,17,27,15,102,12,206,10,51,10,232,8,40,7,168,7,26,11, +195,14,115,16,121,16,79,15,239,12,93,10,104,8,245,5,247,1,96,253,48,250,231,249,203,251,255,252,75,252,238,251, +243,253,241,0,54,1,157,252,130,245,61,240,143,237,100,234,0,229,146,223,80,221,223,222,80,226,193,229,224,232,87,236, +187,240,137,245,224,248,20,249,164,246,158,243,143,241,203,240,178,240,106,240,181,240,115,243,96,248,94,253,151,1,55,5, +241,7,226,9,100,12,231,16,121,22,72,26,4,28,62,30,151,33,238,35,10,35,55,30,234,23,136,19,128,16,196,12, +160,9,37,9,246,10,211,13,32,17,7,21,63,25,226,27,92,27,64,24,203,19,105,14,126,7,195,254,200,246,37,243, +195,243,131,245,82,246,94,246,217,246,161,247,220,245,114,239,191,230,114,223,30,218,251,213,173,211,230,211,33,214,109,217, +219,220,232,223,197,226,148,229,16,232,191,233,49,234,47,234,106,235,96,238,76,242,91,246,52,250,166,254,120,4,122,10, +19,15,43,18,110,20,68,22,44,23,127,22,90,21,23,21,56,21,124,21,156,22,59,24,161,25,133,27,44,31,134,36, +181,41,27,45,36,47,163,48,37,49,74,47,205,41,73,33,53,24,13,16,34,9,249,3,217,255,53,251,145,246,148,243, +21,242,110,240,112,237,85,233,64,229,28,226,28,224,208,222,119,221,108,219,142,216,134,213,169,211,165,211,135,212,245,212, +53,213,253,214,21,219,118,224,219,229,195,234,116,239,161,244,5,250,12,254,131,255,177,254,118,253,36,254,171,0,45,3, +233,5,209,10,251,17,163,25,51,32,174,36,155,38,111,38,163,37,90,37,242,36,100,35,85,33,121,32,158,33,191,35, +128,36,72,34,1,30,169,25,70,21,35,15,77,7,5,0,157,250,49,247,47,246,49,247,161,248,230,249,121,251,240,252, +235,252,123,250,208,245,229,239,61,234,194,230,116,230,168,232,138,236,247,241,79,248,4,254,200,0,121,254,187,247,17,240, +161,233,131,227,24,221,45,216,71,215,79,219,16,227,25,236,50,244,101,250,160,254,140,0,211,255,56,253,170,249,136,245, +61,242,246,241,4,245,69,250,34,1,231,8,34,16,4,22,139,26,81,29,192,29,75,28,148,26,216,25,178,25,114,25, +154,25,201,26,133,28,253,29,154,30,237,29,79,28,175,26,33,25,198,22,20,19,86,14,44,9,218,3,173,254,185,250, +99,248,57,246,133,243,176,241,86,241,54,241,107,240,210,238,62,236,228,232,118,229,201,226,198,225,202,226,50,229,63,232, +85,236,145,242,75,250,143,0,172,3,254,4,213,5,102,5,162,2,3,254,30,249,52,245,141,242,62,241,44,241,33,241, +46,240,192,239,140,241,76,244,74,245,200,244,35,246,29,251,92,1,213,5,72,8,58,10,147,12,185,14,36,15,105,13, +59,11,99,10,99,11,139,14,142,19,163,24,132,28,131,31,169,33,21,34,166,31,157,25,125,17,87,10,212,4,164,255, +43,251,238,248,204,249,26,254,145,4,96,10,141,13,207,13,219,11,100,8,94,3,46,253,183,246,233,239,176,233,223,230, +249,231,118,234,197,236,216,238,95,240,229,240,251,239,111,237,76,234,35,232,55,231,203,230,200,230,244,231,0,235,195,239, +189,244,14,248,166,249,10,251,242,252,231,254,87,0,253,0,105,1,193,2,68,5,213,7,97,9,226,9,230,9,255,9, +171,10,162,11,239,11,229,11,29,13,229,15,228,18,235,20,174,21,54,21,83,19,187,15,198,10,115,5,107,1,208,0, +100,4,192,10,253,17,205,24,194,30,202,35,121,38,180,36,137,30,253,21,186,12,97,3,42,250,223,241,16,236,131,233, +142,233,67,235,131,237,55,238,23,236,243,232,177,231,83,232,194,232,147,232,225,232,37,234,96,236,28,239,212,240,222,240, +54,240,134,239,234,238,184,238,165,238,152,238,4,240,211,243,161,248,53,252,46,253,8,252,133,250,42,249,47,247,230,244, +216,243,119,245,44,250,126,0,71,6,254,10,91,15,40,20,177,25,174,30,133,33,159,34,232,34,123,34,171,34,215,36, +54,39,99,39,102,37,227,33,157,29,27,26,53,23,220,18,200,12,225,6,127,2,131,255,7,253,40,250,183,246,25,243, +205,239,177,236,29,233,124,229,80,227,34,227,101,228,193,230,215,233,31,237,139,240,16,244,201,246,138,247,26,246,182,243, +30,242,26,242,40,243,127,244,227,245,129,247,198,249,72,253,55,1,148,2,116,255,33,250,241,245,17,243,45,240,104,237, +198,235,35,236,45,239,139,244,233,250,44,1,118,6,53,10,252,12,245,15,29,19,6,21,34,21,118,21,234,23,20,27, +119,28,21,28,94,27,232,26,222,26,64,27,202,26,20,24,77,20,64,18,132,18,225,18,61,17,145,13,64,9,20,5, +97,0,88,250,110,243,95,237,234,233,23,233,194,233,96,235,213,237,103,240,237,241,161,241,250,239,244,237,44,235,165,230, +23,225,0,221,204,220,209,224,14,231,53,237,102,242,18,247,112,251,59,254,240,254,156,255,132,1,106,3,200,4,75,6, +194,7,87,9,92,12,113,16,191,18,181,17,42,15,65,13,182,11,158,9,51,7,102,5,76,5,23,7,32,9,114,9, +21,8,122,6,87,5,143,4,92,4,130,4,236,3,12,3,169,3,145,5,200,6,131,6,152,5,236,4,167,4,101,4, +212,3,35,3,248,2,187,3,11,5,72,6,149,6,136,4,189,255,237,249,48,245,114,242,91,241,197,240,104,240,72,241, +210,243,70,247,116,250,2,252,191,251,241,250,62,250,124,249,196,248,16,248,80,248,118,251,222,0,161,5,202,8,129,10, +66,10,167,8,155,6,195,3,171,0,228,254,124,254,146,254,230,254,203,255,175,1,245,3,16,5,33,4,155,0,118,250, +12,244,183,239,161,236,43,234,52,234,16,237,220,240,222,244,2,249,182,252,69,0,188,3,192,5,233,5,126,5,19,6, +114,8,67,11,145,12,86,13,211,15,191,19,110,22,253,20,96,15,149,9,216,6,73,6,55,6,221,6,78,9,80,13, +225,16,42,19,161,21,207,23,95,22,52,16,19,8,40,1,100,252,211,248,35,246,2,246,199,249,29,0,8,6,186,8, +204,6,5,1,124,249,185,241,56,234,235,226,69,220,74,216,237,216,102,221,92,227,27,233,113,237,236,239,146,240,210,238, +7,235,223,230,47,227,33,225,50,227,83,233,172,240,134,247,82,253,246,1,141,6,20,11,46,13,230,11,113,9,247,8, +64,12,80,18,209,24,13,31,90,37,109,43,253,48,3,53,77,53,90,49,175,42,215,34,223,27,88,23,27,20,212,16, +96,14,135,13,216,13,33,14,167,12,16,9,189,4,207,255,10,249,190,240,201,232,202,226,128,223,113,222,50,222,255,221, +114,222,75,224,21,227,79,229,25,230,71,230,254,230,163,232,129,235,207,238,121,240,120,240,211,240,134,241,212,240,121,238, +119,235,139,232,245,229,132,228,53,230,199,235,44,243,110,250,144,1,33,9,214,16,253,22,19,26,99,27,67,29,109,31, +32,32,130,31,229,31,193,34,130,38,149,40,231,40,66,41,15,42,48,42,25,41,170,38,109,34,255,28,42,24,122,20, +178,16,114,11,73,4,36,252,158,244,192,238,188,234,162,231,19,228,155,224,40,223,35,224,130,226,21,229,147,230,157,230, +19,230,110,229,39,228,150,225,224,221,209,218,159,218,26,221,34,224,170,226,111,229,199,233,75,240,97,247,138,252,241,255, +182,3,58,8,111,12,53,16,124,19,38,21,197,20,148,19,128,18,199,16,149,13,136,9,238,5,234,3,123,4,213,7, +208,12,252,17,231,22,171,27,27,32,95,35,159,35,129,31,193,24,119,18,16,13,118,7,85,2,40,255,104,254,208,255, +125,2,8,5,123,6,204,6,113,6,204,5,183,4,42,2,73,253,84,247,191,242,97,240,15,239,58,237,107,234,11,232, +146,231,27,232,102,231,247,228,4,227,126,227,243,228,40,229,14,229,160,230,227,233,206,237,67,241,241,243,12,247,239,250, +27,254,99,0,208,3,138,9,40,16,173,21,2,26,36,30,234,33,177,36,125,38,202,38,201,36,97,33,53,30,244,26, +62,22,124,16,109,11,183,7,90,4,119,0,159,252,153,249,213,246,135,243,198,239,45,236,54,234,8,235,231,236,118,237, +236,237,51,241,182,247,190,254,220,2,45,3,169,1,56,0,45,255,130,253,180,249,58,244,161,239,27,237,133,236,93,238, +240,241,232,244,4,247,53,250,159,254,181,1,57,1,24,254,77,251,193,249,69,248,124,247,98,249,24,254,155,4,29,12, +164,19,104,26,242,31,192,35,119,37,194,36,207,33,245,29,85,26,38,23,168,20,94,18,253,14,226,10,169,7,242,4, +200,0,217,250,218,244,70,240,134,237,156,236,241,236,131,237,84,238,57,240,169,242,191,243,139,242,106,239,10,235,238,230, +232,228,173,228,151,228,205,228,252,230,154,235,143,240,241,242,210,242,37,243,250,244,108,246,43,246,83,245,97,246,137,250, +56,0,137,5,42,10,109,14,40,19,242,24,123,30,34,34,161,35,69,35,15,34,52,33,247,31,140,28,4,23,81,17, +94,13,238,11,75,12,194,12,33,12,46,11,208,11,59,14,73,16,18,16,206,13,163,10,78,7,67,4,104,1,195,253, +13,249,217,244,192,242,65,242,143,241,173,239,8,237,173,234,82,233,61,232,217,229,97,226,147,223,202,221,122,220,12,220, +133,220,246,220,95,221,228,222,210,225,161,228,214,229,123,230,195,232,13,237,137,242,181,248,254,254,113,5,221,12,192,20, +224,27,55,34,73,39,137,41,5,41,53,39,102,37,215,36,36,37,28,36,143,33,112,31,239,29,119,27,26,23,151,17, +218,12,204,9,159,7,30,6,52,6,205,8,245,13,77,19,165,21,207,20,251,17,162,12,119,4,175,250,32,240,152,229, +74,221,97,217,206,217,176,220,149,224,33,229,191,233,47,237,155,238,235,237,222,234,22,229,131,221,161,214,203,210,159,210, +62,213,180,217,142,223,111,230,210,237,177,244,253,249,138,254,223,3,196,8,39,11,3,12,214,13,157,17,97,22,39,26, +68,28,86,30,219,33,60,38,17,41,192,40,140,39,178,40,59,43,80,44,166,43,148,42,253,41,119,41,64,39,243,34, +68,30,106,25,199,18,45,10,180,0,51,247,218,238,195,232,214,228,104,226,212,224,129,223,139,222,145,222,112,223,179,223, +206,221,176,218,33,217,249,216,92,215,152,212,240,211,180,214,32,220,24,227,157,233,11,238,60,241,13,245,167,249,190,253, +114,0,3,2,125,3,66,6,241,10,90,16,192,20,17,24,226,26,18,28,16,26,139,21,75,16,66,11,41,7,238,4, +250,4,247,6,245,9,139,13,165,18,124,25,197,31,180,34,219,33,50,31,144,28,244,25,140,22,59,18,0,14,205,11, +123,12,235,13,249,12,183,8,205,2,80,253,135,248,41,243,73,236,184,228,5,223,254,220,20,221,218,220,121,220,51,221, +9,223,241,224,102,225,176,223,98,221,141,221,200,225,17,232,36,237,224,240,154,245,23,252,38,3,115,9,255,13,108,16, +25,17,112,16,60,15,53,15,42,17,167,19,169,21,177,24,191,29,2,35,52,38,226,38,229,37,4,36,55,33,34,29, +218,23,241,17,65,12,119,7,223,3,148,1,255,255,12,254,178,251,89,249,57,246,188,241,232,236,191,232,24,229,122,225, +187,221,102,218,251,216,128,218,41,222,181,226,235,231,64,237,45,241,94,243,22,245,184,246,121,247,84,247,27,247,107,247, +186,248,248,250,255,252,133,254,44,1,182,5,91,10,11,13,93,13,91,12,147,11,250,11,85,13,211,14,94,16,218,18, +132,22,157,26,191,30,135,34,22,37,117,38,50,39,208,38,152,36,188,32,185,27,54,22,78,17,146,13,214,9,132,4, +207,253,243,246,108,240,100,234,50,229,118,225,70,224,150,225,128,227,218,228,183,230,88,234,181,238,242,240,217,239,234,236, +84,233,230,228,32,224,133,220,110,219,103,221,163,225,75,230,46,234,155,237,24,241,85,244,255,246,65,249,27,251,192,252, +215,254,158,1,32,5,219,9,31,16,54,23,108,29,203,33,104,37,71,41,158,44,187,46,168,47,11,47,179,44,7,41, +16,36,126,29,127,21,82,13,243,6,68,3,16,1,251,254,195,253,59,255,78,3,212,7,18,11,213,12,123,13,225,12, +219,9,124,3,24,251,128,243,56,238,145,234,60,231,229,227,40,225,140,223,250,222,206,222,252,221,235,219,158,217,133,216, +92,216,37,216,20,216,238,216,129,219,131,224,178,230,81,235,181,237,133,239,50,242,38,246,247,250,44,0,182,5,37,11, +46,16,191,21,93,28,236,34,56,40,205,43,121,45,122,45,102,44,149,42,101,40,26,38,87,35,8,32,205,28,146,25, +225,21,92,18,94,15,130,12,108,10,218,9,96,10,209,11,175,13,47,14,113,12,75,9,115,5,207,0,245,250,211,243, +202,235,109,227,168,220,233,217,175,218,123,220,191,222,60,226,137,230,117,234,249,236,71,237,108,235,121,232,43,229,86,225, +108,221,234,218,231,218,131,221,2,226,45,231,173,236,217,242,233,248,192,253,140,1,189,4,56,7,99,9,16,12,24,15, +189,17,85,20,123,23,201,26,141,30,194,35,11,41,5,44,34,45,83,46,195,47,150,48,85,48,249,45,130,40,154,33, +39,28,38,24,173,19,110,14,231,8,7,3,87,253,122,248,34,244,251,239,221,235,120,231,118,227,95,225,100,225,251,225, +240,225,161,225,252,225,5,227,111,227,189,225,30,222,237,218,39,218,53,219,251,220,51,224,127,229,72,236,137,244,102,253, +228,3,54,7,181,9,250,11,141,12,68,11,49,9,122,7,40,7,160,8,104,11,45,14,214,15,199,16,107,17,61,17, +131,16,148,15,136,13,218,10,202,9,156,10,191,11,10,13,80,15,46,18,61,20,31,20,145,17,21,14,69,11,42,9, +27,7,194,4,193,2,208,2,72,5,236,7,184,8,29,7,100,3,33,255,106,251,97,247,192,242,104,238,126,234,101,231, +95,230,164,231,230,233,73,235,159,234,160,232,120,231,230,232,23,236,11,238,224,237,96,238,94,241,98,245,212,248,179,251, +51,254,68,0,3,2,141,3,240,4,236,6,64,10,65,14,82,18,132,23,17,30,234,35,183,39,218,41,33,42,233,39, +136,35,252,28,198,19,181,9,229,1,130,252,144,247,236,242,68,240,107,240,103,242,150,244,222,245,197,245,165,244,148,243, +176,242,218,240,241,237,225,234,113,232,219,231,248,233,63,237,193,239,17,242,136,245,150,249,209,252,199,254,155,255,101,255, +173,254,117,254,254,254,9,255,186,253,140,252,36,253,158,254,11,255,8,254,239,252,94,253,36,255,161,0,208,1,141,4, +160,9,27,16,205,22,187,28,107,33,60,37,70,40,110,41,226,39,119,36,9,32,92,26,170,19,184,13,81,10,14,9, +96,7,160,3,212,254,162,250,76,247,193,243,17,239,80,234,65,231,108,229,152,227,98,226,218,226,206,228,0,231,46,232, +59,232,164,231,132,230,80,229,207,228,241,228,101,229,144,230,78,233,227,237,250,242,153,246,126,248,53,250,142,252,77,254, +58,254,102,253,189,253,161,255,142,2,103,6,20,11,110,16,121,22,156,28,133,33,235,36,198,39,0,42,130,42,167,41, +80,40,198,37,98,33,29,28,251,22,88,18,174,14,7,12,154,9,118,7,13,7,129,8,148,9,233,8,127,7,17,6, +49,4,102,1,78,253,26,248,194,242,156,237,140,232,211,228,170,227,187,227,27,227,160,226,37,228,202,230,71,232,70,232, +142,231,250,229,92,227,57,224,16,221,189,218,115,218,1,220,91,222,185,225,101,230,73,235,190,239,90,244,86,249,10,254, +209,1,27,5,108,9,94,15,186,21,70,27,22,32,1,37,68,42,135,46,29,48,41,47,75,45,149,43,228,41,150,39, +140,36,100,33,137,30,43,27,80,22,116,16,159,10,198,4,163,254,242,248,29,245,4,244,131,244,1,245,182,246,46,251, +30,0,39,2,186,0,79,253,213,249,7,247,126,243,219,238,156,235,141,235,136,237,127,239,111,240,115,240,187,239,15,238, +204,235,185,233,38,231,23,227,91,223,180,222,192,224,18,227,156,228,26,230,157,232,4,236,91,239,7,243,224,247,10,253, +224,1,16,7,119,12,61,17,185,20,11,22,27,22,132,23,57,26,221,27,54,28,231,28,182,30,64,33,34,35,249,34, +78,33,199,31,130,30,91,28,236,24,187,20,95,16,113,12,114,9,15,7,91,4,72,1,136,254,165,251,189,247,253,243, +9,242,48,241,106,240,61,240,123,240,232,239,87,238,19,236,12,233,3,230,96,227,223,223,207,219,118,218,118,221,207,226, +178,232,66,239,111,246,240,252,126,1,168,3,120,3,137,1,88,255,72,254,165,254,9,0,159,1,241,2,63,5,180,9, +159,14,74,17,31,17,110,15,217,13,2,13,42,12,165,10,252,8,109,8,5,10,112,13,73,16,72,16,86,14,124,13, +160,14,107,15,195,13,115,10,152,7,64,6,122,6,217,7,15,9,15,9,156,8,195,8,235,8,200,7,79,4,88,254, +191,247,201,242,127,239,118,236,171,232,139,228,79,226,96,227,125,230,76,234,53,238,171,240,29,241,133,241,211,242,55,243, +176,241,43,240,2,241,40,244,208,247,243,250,13,254,50,2,37,8,33,15,226,20,46,24,209,25,42,26,0,25,194,23, +167,23,227,22,202,19,188,15,47,12,149,8,45,4,49,255,174,250,201,247,102,246,187,245,175,245,74,246,184,247,121,250, +151,253,82,255,244,255,56,0,245,254,151,251,171,247,198,244,118,243,120,243,242,243,111,244,102,245,146,247,0,251,112,254, +191,0,133,2,47,4,161,4,156,3,1,2,200,255,70,253,239,251,180,251,171,251,155,252,254,254,82,1,181,2,17,4, +120,6,254,9,30,13,39,14,251,13,224,14,27,17,61,19,108,20,230,20,221,20,210,19,178,17,34,15,203,11,129,7, +69,4,51,3,136,2,68,1,56,0,165,255,168,255,76,0,5,0,158,253,54,250,192,246,89,242,198,236,224,231,53,229, +13,228,23,227,139,226,5,227,235,227,137,228,208,228,133,228,39,228,111,229,131,232,40,235,192,236,127,239,164,244,189,250, +228,255,74,3,32,5,57,6,181,7,107,10,213,13,154,16,236,18,50,22,97,26,77,30,249,32,77,33,165,31,128,30, +136,30,88,29,34,26,238,22,222,20,194,18,77,15,201,10,152,6,161,3,184,1,18,0,7,254,70,252,177,252,254,255, +183,4,13,9,60,12,38,14,226,14,60,14,82,11,179,5,99,254,231,246,95,240,111,235,196,231,198,228,72,227,88,228, +250,230,30,233,159,233,175,232,96,231,94,230,31,229,79,227,51,226,29,227,41,229,162,230,222,231,35,234,18,237,150,239, +195,241,109,244,18,248,84,252,124,0,146,4,41,9,91,14,121,19,49,23,233,24,136,25,191,25,199,25,170,26,106,28, +58,29,34,29,104,30,131,33,80,36,0,37,220,35,52,34,1,32,232,27,237,21,162,15,238,9,29,5,51,1,4,253, +227,247,124,243,16,241,143,239,251,237,112,236,55,235,52,235,133,237,199,241,25,246,235,248,129,250,29,252,92,253,111,252, +0,249,46,244,189,238,163,233,12,230,224,227,170,226,217,226,129,228,34,231,196,234,17,239,224,242,233,245,214,248,214,251, +102,254,226,255,135,0,155,1,80,3,64,4,10,4,213,3,54,4,254,4,68,6,88,8,104,11,104,15,234,19,47,24, +134,27,120,29,228,29,16,29,116,27,98,25,248,22,51,20,110,17,71,15,99,13,44,11,180,9,189,9,173,9,61,8, +253,5,96,3,134,0,247,253,196,251,26,249,34,245,51,240,155,235,157,231,112,227,109,223,254,220,241,220,249,222,92,226, +243,230,218,236,149,243,7,251,55,3,65,10,225,13,117,14,145,13,85,11,83,7,90,2,204,253,86,250,97,248,60,248, +32,249,67,250,101,252,243,255,143,3,83,6,207,8,224,10,158,11,128,11,82,11,24,10,82,7,236,4,223,3,40,2, +66,254,192,249,36,247,10,247,140,248,9,251,80,254,12,2,250,5,138,9,201,11,156,12,157,12,129,11,129,8,41,4, +24,0,75,253,168,251,251,250,121,251,112,253,176,0,26,4,243,5,134,5,58,4,109,3,56,2,104,255,220,251,215,248, +118,246,232,244,158,244,50,245,241,245,8,247,11,249,227,251,225,254,180,1,203,4,174,8,83,13,158,17,231,19,174,19, +217,17,49,15,170,11,188,6,97,0,255,249,71,245,109,242,192,240,102,240,246,241,181,244,55,247,101,249,68,251,184,251, +250,250,169,250,236,250,230,250,34,250,97,248,181,246,31,247,39,249,142,249,232,246,80,244,60,245,81,248,226,249,224,249, +20,251,58,254,110,1,75,3,72,4,58,5,218,5,65,5,177,3,242,2,231,3,68,5,80,6,113,8,130,12,52,17, +182,20,122,22,102,23,44,24,29,24,148,22,200,19,34,16,176,12,196,10,36,10,109,9,184,7,8,5,44,2,176,255, +250,252,98,249,188,245,198,243,7,244,151,245,35,248,168,251,217,254,160,0,36,1,64,0,92,253,112,248,57,242,28,236, +66,231,49,228,126,227,46,229,27,232,255,234,107,237,230,239,167,242,46,244,92,243,45,242,214,242,38,244,116,244,32,245, +17,248,185,252,54,1,11,4,65,5,203,6,167,9,213,11,33,12,242,12,89,16,184,20,190,23,176,25,155,27,186,28, +179,27,168,24,145,20,33,16,26,12,255,8,156,6,17,5,250,4,226,5,147,6,214,6,3,7,147,6,241,4,132,2, +4,0,18,254,62,253,117,253,3,254,9,254,222,252,213,250,155,248,12,246,86,243,80,241,224,239,151,238,135,238,16,241, +99,245,28,249,51,251,150,252,213,253,234,253,101,251,138,246,177,241,177,238,117,237,179,237,98,239,19,242,117,245,101,249, +168,253,237,1,40,5,131,6,39,7,154,8,10,10,91,9,181,6,46,5,158,6,177,8,151,8,247,6,240,5,237,5, +226,5,71,5,249,4,238,5,201,7,45,9,96,9,134,9,222,10,42,12,162,11,231,9,27,8,50,6,30,4,196,1, +241,254,83,252,185,250,67,250,5,251,161,252,207,253,193,253,9,253,203,252,174,253,67,255,93,0,81,0,36,255,236,252, +85,250,139,248,246,247,69,248,162,248,192,247,235,245,169,245,94,248,153,252,252,255,90,1,207,1,137,3,48,6,133,6, +17,3,119,254,239,251,194,251,23,252,93,251,178,249,170,248,190,249,9,253,9,1,71,3,64,3,161,3,231,5,149,7, +94,6,93,3,77,1,146,1,201,2,120,2,67,0,2,254,28,253,52,253,138,253,186,254,71,1,137,3,187,3,204,2, +234,2,115,4,202,5,158,5,179,3,164,0,86,254,89,254,94,255,63,255,17,254,98,253,97,254,173,0,78,2,203,1, +115,255,163,252,28,251,209,251,195,253,151,255,50,1,231,2,161,4,70,6,200,7,250,8,168,9,104,9,143,7,78,4, +108,1,147,0,178,1,117,3,65,4,149,3,218,2,30,3,40,3,91,1,210,253,12,250,105,247,232,245,151,244,241,242, +92,241,45,241,108,243,234,246,15,249,240,248,63,248,145,248,20,249,55,248,25,246,131,244,36,245,144,247,218,249,67,251, +57,252,43,253,229,254,198,1,239,4,122,7,254,8,165,9,105,10,208,11,63,13,17,14,225,13,97,12,197,9,26,7, +181,5,150,5,16,5,46,3,74,1,27,1,110,2,177,3,234,3,102,3,204,2,148,2,110,3,116,5,68,7,107,7, +66,6,94,5,64,5,161,4,255,2,190,1,66,1,60,0,165,254,14,254,4,255,151,0,216,1,116,2,79,2,103,1, +170,255,247,252,175,249,85,246,223,242,159,239,170,237,112,237,45,238,225,238,179,239,197,241,0,245,161,247,184,248,82,249, +118,250,125,251,93,251,80,250,45,249,92,248,15,248,126,248,60,249,39,249,85,248,3,249,227,252,221,2,102,8,233,11, +77,14,192,17,47,22,17,25,246,24,238,22,133,20,52,18,230,15,208,13,1,12,69,10,197,8,240,7,200,7,198,7, +81,7,8,6,180,3,162,0,223,253,106,252,76,252,161,252,127,252,229,251,162,251,44,252,251,252,107,253,221,253,143,254, +97,254,186,252,35,251,24,251,239,251,68,252,220,251,103,251,55,251,154,250,223,248,143,246,90,244,233,241,57,239,45,237, +78,236,118,236,93,237,46,239,87,242,98,246,50,250,156,253,36,1,80,4,174,5,243,4,180,3,44,3,254,2,71,2, +18,1,209,0,27,2,25,3,79,3,112,5,174,10,47,16,122,18,146,17,211,16,241,17,140,18,144,16,11,13,202,9, +104,7,128,5,174,3,97,2,174,1,158,0,73,255,12,255,220,255,14,0,203,254,233,252,162,251,104,251,254,251,247,252, +6,254,38,255,28,0,111,0,115,0,192,0,197,0,32,0,165,255,88,255,26,254,80,252,55,252,169,254,162,1,8,3, +214,2,191,1,0,0,166,253,111,250,57,246,34,242,153,239,102,238,132,237,125,237,103,239,182,242,115,246,68,250,39,253, +133,254,15,0,116,2,17,3,160,0,245,253,100,253,3,254,69,254,26,254,179,254,188,0,210,2,161,3,161,4,234,7, +105,12,169,14,127,13,242,11,232,12,254,14,86,15,193,13,174,11,178,9,215,7,84,6,44,5,200,3,144,1,73,255, +191,254,199,255,161,255,31,253,169,250,77,250,242,250,219,250,52,250,53,250,55,251,102,252,65,253,82,254,166,255,158,0, +174,1,178,3,130,5,235,4,48,2,46,0,171,0,42,2,221,1,39,255,89,252,58,251,193,250,153,249,37,248,15,247, +107,246,32,246,244,245,229,245,74,246,112,247,116,249,206,251,106,253,12,254,221,254,176,0,97,2,55,2,152,0,166,255, +72,0,16,1,123,0,92,255,144,255,178,0,53,1,201,1,9,4,128,7,67,10,200,10,118,9,212,8,219,9,101,10, +238,8,52,6,83,3,87,1,195,0,197,0,122,0,53,0,197,0,29,2,74,3,110,3,62,2,125,0,135,255,62,255, +70,254,190,252,39,252,14,253,120,254,101,255,28,0,5,1,191,1,155,2,196,3,138,3,48,1,207,254,19,254,122,254, +1,255,186,254,77,253,210,251,19,251,23,250,45,248,8,246,19,244,69,242,18,241,203,240,82,241,186,242,66,245,3,249, +125,253,22,1,205,2,254,3,173,5,82,6,208,4,99,2,184,0,117,0,2,1,96,1,163,1,97,2,219,3,36,6, +127,8,41,10,221,11,197,13,19,14,32,12,229,9,212,8,7,8,110,6,49,4,208,1,20,0,208,255,167,0,144,1, +38,2,109,2,120,2,144,2,208,2,112,2,66,0,213,252,117,250,216,249,124,249,208,248,184,248,74,249,25,250,152,251, +92,254,246,1,193,4,21,5,172,3,204,2,178,2,169,1,9,255,97,252,131,251,143,251,62,250,232,247,89,246,142,245, +202,244,29,244,164,243,69,243,29,243,214,243,44,246,184,249,59,253,29,0,141,2,157,4,29,6,137,6,30,5,78,2, +214,255,136,254,30,254,208,254,167,0,167,2,91,4,135,6,213,9,205,13,11,17,48,18,51,17,99,15,148,13,174,11, +184,9,173,7,120,5,108,3,154,1,236,255,167,254,248,253,255,253,135,254,103,254,89,253,175,252,163,252,230,251,248,249, +197,247,92,246,4,246,64,246,174,246,88,247,57,248,95,249,112,251,31,255,173,3,170,6,196,6,13,6,223,6,235,7, +179,6,163,3,14,1,54,0,16,0,115,254,28,251,78,248,112,247,68,247,60,246,174,244,146,243,253,242,57,243,87,245, +35,249,183,252,98,255,107,2,191,5,78,7,151,6,40,5,224,3,123,2,157,0,165,254,213,253,190,254,139,0,119,2, +83,4,92,6,76,9,198,12,127,14,35,13,95,10,132,8,221,7,51,7,165,5,155,3,93,2,115,2,28,3,119,3, +17,3,33,2,149,1,142,1,254,0,149,255,180,253,78,251,234,248,143,247,49,247,250,246,96,246,190,245,43,246,209,247, +250,249,240,252,160,0,96,3,124,4,240,4,106,5,236,5,204,5,30,4,78,1,13,255,119,254,238,254,141,254,118,252, +55,250,110,249,143,249,40,249,159,247,144,245,119,244,71,245,38,247,236,248,215,250,92,253,38,0,219,2,187,4,187,4, +94,3,54,2,176,1,96,1,13,1,188,0,202,0,159,1,78,3,209,5,138,8,112,10,94,11,190,11,120,11,183,10, +16,10,101,9,26,8,29,6,35,4,39,3,253,2,15,2,208,255,124,253,173,251,57,250,137,249,72,249,112,248,124,247, +104,247,12,248,41,249,124,250,82,251,159,251,16,252,12,253,90,254,140,255,37,1,28,4,151,7,183,9,85,10,123,10, +90,10,143,9,229,7,103,5,188,2,219,0,180,255,105,254,193,252,69,251,64,250,127,249,181,248,172,247,69,246,251,244, +202,244,237,245,121,247,239,248,246,250,203,253,106,0,236,1,34,2,70,1,20,0,8,255,158,253,162,251,236,249,66,249, +213,249,118,251,179,253,85,0,87,3,41,6,253,7,191,8,216,8,124,8,224,7,65,7,180,6,67,6,211,5,51,5, +101,4,138,3,241,2,148,2,200,1,170,0,238,255,12,255,77,253,129,251,208,250,38,251,104,251,9,251,233,250,46,252, +254,254,71,2,187,4,215,6,28,10,169,13,19,15,66,14,3,13,211,11,203,9,175,6,83,3,103,0,14,254,32,252, +55,250,2,248,209,245,48,244,73,243,31,243,77,243,180,242,52,241,205,240,23,243,180,246,6,249,201,249,251,250,44,253, +131,254,248,253,201,252,129,252,228,252,98,252,186,250,189,249,205,250,49,253,106,255,60,1,149,3,113,6,135,8,174,9, +248,10,28,12,235,11,255,10,222,10,132,11,2,12,202,11,170,10,23,9,226,7,236,6,100,5,112,3,41,2,122,1, +13,0,0,254,233,252,29,253,92,253,122,252,140,250,230,248,158,248,170,249,136,251,189,253,81,0,192,3,157,7,111,10, +46,11,42,10,150,8,249,6,143,4,253,0,15,253,178,249,144,247,230,246,211,246,224,245,2,244,0,243,220,243,17,245, +176,244,19,243,67,242,178,243,249,246,72,250,40,252,218,252,135,253,124,254,208,254,194,253,1,252,201,250,34,250,211,249, +231,250,5,254,234,1,107,5,4,9,0,13,61,16,197,17,201,17,164,16,174,14,212,12,201,11,10,11,218,9,130,8, +148,7,8,7,204,6,123,6,245,4,96,2,91,0,237,254,163,252,211,249,18,248,140,247,156,247,62,248,76,249,142,250, +124,252,201,254,111,0,201,1,174,3,171,5,8,7,165,7,149,7,5,7,6,6,155,4,185,2,4,0,163,252,117,249, +217,246,130,244,30,242,179,239,64,238,245,238,25,241,195,242,130,243,125,244,167,246,248,249,105,253,130,255,24,0,109,0, +225,0,165,0,180,255,167,254,114,253,252,251,156,250,227,249,128,250,103,252,189,254,73,1,85,4,164,7,226,10,199,13, +226,15,245,16,26,17,219,16,241,16,52,17,23,17,189,16,2,16,94,14,76,12,110,10,28,8,238,4,207,1,45,255, +105,252,151,249,165,247,213,246,121,246,216,245,175,244,89,243,185,242,119,243,30,245,194,246,155,248,171,251,26,0,232,4, +171,8,177,10,207,11,253,12,81,13,0,11,58,6,68,1,134,253,102,250,16,247,126,243,114,240,41,239,229,239,117,241, +208,242,147,243,176,243,13,244,222,245,173,248,109,250,58,250,1,250,160,251,162,253,209,253,209,252,151,252,162,253,209,254, +58,255,190,255,174,1,223,4,78,8,46,11,100,13,125,15,39,17,149,17,102,17,253,16,84,15,130,12,237,9,227,7, +212,5,8,4,76,3,81,3,18,3,175,2,197,2,162,2,161,1,104,0,50,255,119,253,155,251,140,250,73,250,136,250, +196,251,0,254,1,0,95,1,24,3,45,5,173,6,108,7,97,7,89,6,240,4,210,3,173,2,150,0,18,253,45,249, +107,246,132,244,11,242,191,238,246,235,18,235,226,235,18,237,73,238,107,240,178,243,27,247,217,249,20,252,14,254,122,255, +214,255,122,255,143,255,2,0,69,255,87,253,43,252,107,252,251,252,152,253,40,255,180,1,129,4,117,7,166,10,222,13, +253,16,87,19,252,19,128,19,47,19,185,18,255,16,175,14,108,13,225,12,150,11,255,9,57,9,93,8,71,6,212,3, +248,1,28,0,171,253,174,250,29,247,140,243,4,241,124,239,105,238,101,238,163,240,36,245,103,250,255,254,2,3,101,7, +10,12,45,15,127,15,229,13,167,11,147,8,37,4,19,255,169,250,76,247,135,244,246,241,121,239,142,237,46,237,65,238, +127,239,61,240,236,240,64,242,98,244,158,246,253,247,119,248,56,249,232,250,118,252,226,252,181,252,237,252,1,254,219,255, +15,2,110,4,15,7,27,10,192,13,77,17,53,19,23,19,107,18,84,18,31,18,111,16,41,13,176,9,115,7,128,6, +240,5,106,5,116,5,59,6,165,6,171,5,174,3,42,1,9,254,219,250,119,248,207,246,92,245,67,244,201,244,179,247, +206,251,56,255,94,1,61,3,171,5,156,7,210,7,28,7,142,6,32,6,187,5,18,5,112,3,212,0,191,253,80,250, +156,246,20,243,223,239,201,236,78,234,134,233,138,234,48,236,8,238,31,241,170,245,234,249,104,252,139,253,122,254,143,255, +72,0,136,0,36,1,131,2,190,3,197,3,247,2,178,2,77,3,186,3,44,3,53,2,39,2,110,3,83,5,151,7, +168,10,27,14,177,16,4,18,248,18,242,19,193,19,107,17,35,14,235,11,186,10,223,8,3,6,155,3,140,2,25,2, +231,0,250,254,165,253,185,252,126,250,148,246,99,242,143,239,245,238,55,240,116,242,62,245,183,248,37,253,255,1,243,5, +93,8,128,9,178,9,56,9,245,7,137,5,80,2,58,255,166,252,132,250,185,248,193,246,23,244,116,241,89,240,201,240, +234,240,28,240,51,240,77,242,32,245,251,246,121,247,190,247,18,249,226,250,200,251,164,251,93,251,170,251,139,252,255,253, +158,0,105,4,119,8,70,12,219,15,218,18,178,20,102,21,94,21,165,20,65,19,150,17,167,15,59,13,180,10,168,8, +43,7,253,5,221,4,142,3,4,2,104,0,124,254,223,251,36,249,66,247,72,246,160,245,28,245,83,245,182,246,36,249, +151,252,144,0,255,3,233,6,160,9,56,11,65,11,100,10,164,8,1,6,77,3,158,0,81,253,161,249,40,246,240,242, +19,240,247,237,193,236,13,236,113,235,79,235,22,236,157,237,49,240,254,243,246,247,49,251,188,253,243,255,7,2,147,3, +13,4,236,3,106,4,246,5,42,7,171,6,106,5,236,4,83,5,202,5,44,5,193,3,130,3,187,4,229,5,211,6, +114,8,200,10,18,13,211,14,58,16,100,17,215,17,90,17,42,16,67,14,198,11,30,9,44,6,251,2,69,0,3,254, +171,251,126,249,204,247,98,246,232,244,248,242,192,240,95,239,224,239,60,242,88,245,76,248,83,251,210,254,97,2,16,5, +100,6,215,6,208,6,86,6,208,5,98,5,93,4,111,2,111,0,65,255,74,254,72,252,167,249,163,247,15,246,48,244, +99,242,136,241,210,241,179,242,119,243,32,244,159,245,35,248,28,250,169,250,201,250,56,251,190,251,53,252,251,252,155,254, +13,1,19,4,225,7,34,12,164,15,160,17,21,18,169,17,71,17,222,16,124,15,72,13,177,11,70,11,25,11,47,10, +114,8,97,6,69,4,199,1,196,254,150,251,96,248,64,245,252,242,119,242,145,243,126,245,239,247,11,251,241,254,94,3, +17,7,1,9,232,9,227,10,223,11,237,11,147,10,245,8,13,8,182,6,24,4,87,1,34,255,73,252,187,247,173,242, +62,239,151,237,120,236,129,235,65,235,40,236,60,238,36,241,247,243,228,245,153,247,41,250,183,252,225,253,21,254,144,254, +197,255,71,1,79,2,138,2,123,2,201,2,125,3,198,3,142,2,67,0,227,254,30,255,227,255,224,0,156,2,1,5, +207,7,116,11,17,16,52,20,109,22,120,23,103,24,163,24,55,23,214,19,245,14,240,9,244,5,233,2,236,255,141,252, +36,249,30,246,59,244,255,243,209,243,250,241,224,239,214,239,207,241,77,244,153,246,19,249,57,252,15,0,27,4,96,7, +60,9,41,10,203,10,9,11,161,10,139,9,153,7,161,4,33,1,240,253,116,251,20,249,204,245,10,242,127,239,141,238, +247,237,205,236,90,235,47,235,174,237,229,241,101,245,34,247,45,248,198,249,209,251,52,253,48,253,131,252,203,252,195,254, +228,1,99,5,201,8,8,12,15,15,179,17,157,19,5,20,218,18,109,17,136,16,198,15,224,14,209,13,137,12,63,11, +61,10,231,8,48,6,106,2,227,254,243,251,115,249,150,247,148,246,141,246,103,247,103,249,110,253,190,2,134,6,77,7, +167,6,218,6,196,7,6,7,25,4,192,1,214,1,215,2,252,2,146,2,58,2,48,1,90,254,5,250,120,245,49,241, +33,237,201,233,174,231,70,231,22,233,70,236,69,239,37,242,186,245,113,249,227,251,142,252,33,252,220,251,178,252,18,254, +136,254,114,254,156,255,14,2,27,4,199,4,100,4,93,3,194,1,70,0,191,255,212,255,101,0,81,2,204,5,134,10, +49,16,108,21,184,24,147,26,48,28,17,29,247,27,251,24,48,21,50,17,3,13,213,8,82,5,93,2,221,254,245,250, +238,247,178,245,82,243,229,240,224,238,91,237,165,236,89,237,178,239,249,242,46,246,200,249,226,254,79,4,219,7,189,9, +84,11,150,12,168,12,29,11,130,8,2,6,227,3,135,1,127,254,206,250,216,246,220,242,182,238,204,234,236,231,246,229, +37,228,51,227,44,229,250,233,13,239,5,243,140,246,104,250,99,254,20,1,162,1,124,1,48,2,142,3,67,5,189,7, +42,11,220,14,188,17,104,19,167,20,208,21,205,21,238,19,37,17,226,14,184,13,233,12,27,11,109,8,166,6,80,6, +113,5,134,2,20,255,93,253,248,252,25,252,189,250,62,250,20,251,14,253,83,0,244,3,183,5,140,5,213,5,50,7, +198,7,78,6,96,3,142,0,41,255,63,255,178,255,167,255,55,255,138,254,85,253,146,251,142,249,11,247,89,243,203,238, +38,235,100,233,144,232,222,231,189,231,185,232,237,234,16,238,133,241,148,244,214,246,204,248,95,251,64,254,31,0,176,0, +100,1,136,3,93,6,33,8,43,8,78,7,192,6,217,6,204,6,20,6,102,5,182,5,105,7,174,10,85,15,61,20, +27,24,164,26,78,28,116,29,215,29,150,28,30,25,97,20,35,16,208,12,120,9,179,5,188,1,207,253,130,250,231,247, +239,244,85,241,83,238,209,236,124,236,177,236,80,237,117,238,159,240,171,244,200,249,110,253,44,255,5,1,183,3,255,5, +249,6,232,6,105,6,243,5,115,5,52,4,221,1,191,254,211,250,251,245,241,240,105,236,125,232,124,229,225,227,180,227, +231,228,100,231,183,234,110,238,87,242,17,246,54,249,164,251,112,253,43,255,159,1,244,4,168,8,68,12,177,15,235,18, +196,21,21,24,141,25,180,25,205,24,92,23,46,21,122,18,104,16,14,15,14,13,18,10,136,7,254,5,75,4,203,1, +43,255,79,253,157,252,119,252,24,252,85,252,79,254,213,0,249,1,58,2,41,3,80,4,56,4,228,2,65,1,215,255, +185,254,236,253,234,253,43,255,239,0,234,1,249,1,217,1,88,1,23,255,191,250,3,246,75,242,197,238,147,234,22,231, +229,229,58,230,114,230,170,230,64,232,59,235,255,237,228,239,227,241,164,244,223,247,42,251,63,254,66,1,155,4,241,7, +61,10,58,11,154,11,175,11,112,11,23,11,114,10,54,9,94,8,43,9,151,11,222,14,27,18,180,20,213,22,157,24, +148,25,137,25,172,24,207,22,208,19,149,16,114,14,85,13,143,11,86,8,241,4,71,2,142,255,82,252,221,248,228,244, +143,240,72,237,240,235,0,236,186,236,20,238,91,240,146,243,55,247,80,250,49,252,86,253,120,254,78,255,19,255,203,253, +110,252,221,251,0,252,49,252,14,252,107,251,51,250,185,248,79,247,197,245,241,243,29,242,182,240,243,239,162,239,151,239, +36,240,17,241,206,241,8,243,116,245,37,248,128,250,122,253,192,1,149,6,1,11,15,15,36,19,232,22,199,25,119,27, +204,27,234,26,54,25,240,22,93,20,177,17,204,14,131,11,35,8,197,5,91,5,247,5,213,5,1,5,187,4,16,5, +183,4,143,2,250,254,97,251,11,248,31,244,193,239,162,236,136,236,251,238,61,241,184,242,57,246,151,252,201,2,62,6, +137,7,124,8,82,9,204,8,155,6,190,3,233,0,18,254,13,251,16,248,143,245,85,243,240,240,33,239,230,238,105,239, +72,239,63,239,95,241,139,245,36,249,219,250,16,252,141,253,57,254,191,253,100,253,233,253,167,254,36,255,18,0,94,2, +63,6,185,10,151,13,247,13,220,13,162,14,250,14,229,13,222,11,127,9,175,7,106,7,93,8,87,9,248,9,234,10, +126,12,250,13,198,14,20,15,209,14,95,13,161,10,50,7,229,3,223,0,6,253,169,247,122,242,204,239,185,239,90,240, +81,240,138,240,219,242,16,247,228,250,185,252,42,253,225,253,60,255,17,0,189,255,62,255,192,255,10,1,54,2,59,3, +88,4,233,4,84,4,244,2,71,1,116,255,147,253,117,251,208,248,32,246,53,244,232,242,143,241,13,240,115,238,215,236, +253,235,133,236,134,237,40,238,139,239,203,242,30,247,114,251,176,255,33,4,196,8,232,12,172,15,241,16,75,17,90,17, +105,17,89,17,6,17,139,16,63,16,172,16,249,17,59,19,55,19,50,18,142,17,50,17,120,15,10,12,133,8,1,6, +183,3,137,0,209,252,206,249,235,247,128,246,64,245,48,245,46,247,230,249,135,251,13,253,131,0,240,4,153,7,46,8, +97,8,195,8,45,8,119,5,19,1,171,252,7,249,59,245,107,240,159,235,191,232,174,231,181,230,225,229,200,230,116,233, +50,236,29,238,4,240,98,242,48,244,250,244,212,245,231,246,6,247,123,246,51,247,191,249,206,252,115,255,188,1,76,4, +28,8,178,12,243,15,92,17,100,18,60,19,248,18,23,18,181,17,157,17,49,17,208,16,74,17,147,18,210,19,214,20, +24,22,54,23,100,23,223,22,61,22,33,21,161,18,212,14,243,10,49,7,102,2,185,252,176,247,133,243,84,239,129,235, +169,233,106,234,71,236,42,237,33,237,156,238,67,242,220,244,24,244,31,242,236,241,60,243,204,243,17,243,255,242,200,244, +61,247,101,249,191,251,4,254,177,254,187,253,248,252,253,252,35,252,156,249,61,247,206,246,170,247,70,248,70,248,89,248, +37,249,67,250,174,250,205,250,251,251,229,253,34,255,67,0,164,3,200,9,81,16,16,21,42,24,212,26,85,29,162,30, +220,29,115,27,157,24,118,22,236,20,208,18,245,15,123,13,195,11,43,10,255,7,180,4,146,0,134,252,169,248,182,244, +115,241,233,239,241,239,109,240,113,240,56,240,127,240,10,241,58,241,106,241,92,242,0,244,117,245,144,246,209,248,39,253, +242,1,243,4,182,5,146,5,165,5,236,4,4,2,245,253,199,250,169,248,171,246,15,245,200,244,46,245,215,244,83,244, +64,245,157,247,10,250,246,251,113,254,63,2,219,5,144,7,133,8,174,10,42,13,121,13,58,11,236,8,164,8,17,9, +16,8,192,6,138,7,220,9,222,10,78,9,207,6,238,4,41,3,42,1,84,255,21,253,113,250,48,249,63,250,210,252, +171,255,187,1,9,3,200,4,43,7,44,8,50,6,140,2,113,255,90,253,210,251,154,250,50,249,96,247,237,245,122,245, +113,245,70,245,207,245,218,247,27,250,248,250,196,251,211,254,124,3,73,7,53,9,0,10,202,10,123,11,234,10,25,9, +61,7,216,5,179,4,220,3,129,3,77,3,151,2,187,1,200,1,97,2,205,1,93,255,114,252,128,250,219,248,0,246, +98,242,182,239,118,238,240,237,250,237,9,239,195,240,1,242,236,242,76,245,194,249,159,254,66,2,104,4,86,5,195,5, +166,6,5,8,239,8,211,8,39,8,200,7,41,8,49,9,61,10,186,10,201,10,99,10,0,9,251,6,82,5,202,3, +105,1,170,254,118,253,77,254,145,255,25,0,45,0,79,0,248,0,82,2,250,3,253,5,132,8,177,10,16,12,150,13, +106,15,118,16,185,16,132,16,153,14,68,10,224,4,150,255,56,250,177,244,167,239,20,236,119,234,174,233,14,232,100,230, +252,230,148,233,205,235,176,236,17,237,13,238,21,240,134,242,98,244,140,245,183,246,90,248,91,250,140,252,102,254,251,254, +174,254,90,255,154,1,48,4,79,6,35,8,146,9,104,10,50,11,143,12,121,14,89,16,85,17,40,17,145,16,92,16, +172,16,69,17,176,17,145,17,55,17,56,17,89,17,170,16,187,14,18,12,164,9,247,7,61,6,71,3,75,255,151,251, +237,248,11,247,147,245,6,245,188,245,117,246,5,246,154,245,198,246,153,248,78,249,26,249,24,249,76,249,40,249,82,248, +224,246,169,245,79,245,36,245,121,244,250,243,14,244,161,243,164,242,221,242,179,244,132,246,115,247,22,248,244,248,231,249, +176,250,123,251,121,252,59,253,73,253,67,253,109,254,153,0,25,2,113,2,98,3,116,6,241,10,240,14,100,17,120,18, +225,18,103,19,126,20,147,21,33,21,172,18,7,16,244,14,199,14,225,13,222,11,153,9,234,7,148,6,185,4,27,2, +26,255,176,251,231,247,41,245,150,244,94,244,105,242,253,239,121,239,250,240,42,243,69,245,166,247,183,250,159,253,124,255, +39,1,106,3,20,5,26,5,136,4,124,4,58,4,100,2,39,255,62,252,152,250,49,249,28,247,26,245,243,243,233,242, +134,241,78,241,103,243,126,246,221,248,196,250,153,253,118,1,150,4,182,5,163,5,147,5,129,5,158,4,13,3,24,2, +199,1,202,0,158,255,52,0,162,2,68,5,229,6,114,7,133,7,162,7,234,7,131,8,40,9,241,8,228,7,71,7, +118,7,145,7,72,7,253,6,96,6,203,4,158,2,174,0,27,255,148,253,158,251,106,249,195,248,58,250,74,251,103,250, +77,249,142,249,107,250,145,250,136,250,45,252,28,255,197,0,3,1,111,2,177,5,106,8,35,9,252,8,25,9,234,8, +113,7,193,4,27,2,127,0,58,255,88,253,146,251,106,250,220,248,249,246,90,246,22,247,108,247,90,246,26,245,115,245, +199,246,27,247,103,246,236,245,15,246,104,246,110,246,106,246,8,247,164,247,209,247,242,248,174,251,4,255,119,2,8,6, +233,8,55,10,120,10,69,11,29,13,95,14,94,13,253,10,192,9,29,10,32,10,3,9,243,7,47,7,3,6,164,4, +171,3,251,2,192,1,101,255,88,253,130,253,183,254,171,254,224,253,10,254,106,255,77,1,141,3,229,6,200,10,40,13, +254,13,45,15,164,16,72,16,47,13,40,9,106,6,38,4,21,0,179,250,93,246,147,243,37,241,199,238,92,237,183,236, +43,235,187,232,228,231,114,233,97,235,184,236,100,238,231,240,228,243,142,246,53,248,39,249,248,249,73,250,199,249,121,249, +10,250,69,250,201,249,154,250,182,253,199,1,207,5,171,9,9,13,169,15,160,17,59,19,146,20,53,21,225,20,38,20, +204,19,183,19,218,18,35,17,19,16,248,15,48,15,102,13,186,11,206,9,181,6,69,3,170,0,11,255,2,254,168,252, +193,250,142,249,146,249,153,249,1,249,210,248,4,250,207,251,110,252,151,251,4,251,245,251,136,253,133,254,217,254,180,254, +83,254,24,254,134,253,235,251,199,249,191,247,155,245,42,243,187,240,147,238,166,236,67,235,59,235,163,236,155,238,214,240, +156,243,101,246,105,248,227,249,56,251,89,252,75,253,183,253,112,253,170,253,59,255,111,1,0,4,123,7,247,11,5,17, +158,21,120,24,167,25,99,26,11,27,4,27,6,26,21,24,57,21,223,17,207,14,141,12,126,10,104,7,110,3,209,255, +17,253,74,251,61,250,140,248,197,245,208,243,14,244,71,245,204,245,159,245,124,245,127,245,157,245,57,246,45,248,214,251, +130,255,252,0,64,1,52,3,170,6,76,8,168,6,241,3,30,2,42,0,144,252,68,248,49,245,101,243,231,241,219,240, +151,240,79,240,116,239,80,239,108,241,188,244,33,247,217,248,128,251,130,255,240,3,238,6,136,7,98,7,2,8,42,8, +206,6,119,5,28,5,87,4,213,2,179,2,242,4,36,8,191,10,26,12,53,12,13,12,159,12,58,13,151,12,217,10, +234,8,118,7,193,6,61,6,99,5,183,4,65,4,48,3,205,1,240,0,231,255,167,253,225,250,201,248,113,247,161,246, +31,246,46,245,247,243,166,243,40,244,136,244,103,245,15,248,218,251,76,255,80,2,9,5,231,6,100,8,176,10,27,13, +109,13,245,10,136,7,8,5,47,3,171,0,55,253,224,249,149,247,15,246,115,244,180,242,184,241,54,242,193,243,61,245, +97,246,10,248,135,250,112,252,190,252,151,252,233,252,186,252,124,251,220,249,100,248,220,247,24,249,109,251,184,253,123,0, +204,4,10,10,56,14,80,16,35,17,189,17,238,17,84,17,63,16,116,14,91,11,195,7,95,5,203,4,197,4,119,3, +28,1,246,255,186,0,122,1,134,0,95,254,162,252,28,252,29,252,180,251,16,251,219,250,5,251,146,251,87,253,179,0, +194,4,31,8,223,9,134,10,157,11,62,13,90,13,130,10,237,5,176,1,61,254,127,250,245,245,199,241,255,238,247,236, +52,235,165,234,71,235,112,235,189,234,50,235,73,238,108,242,28,245,126,246,157,248,77,252,87,0,146,2,48,2,75,1, +233,1,215,2,166,2,116,2,242,2,32,3,68,3,222,4,14,8,114,11,145,13,54,14,180,14,250,15,68,17,73,17, +202,15,211,13,110,12,141,11,218,10,52,10,53,9,215,7,169,6,187,5,201,4,191,3,20,2,132,255,36,253,138,251, +242,249,91,248,87,247,104,246,70,245,200,244,58,245,43,246,176,247,33,250,83,253,163,0,34,3,78,4,243,4,31,6, +70,7,227,6,184,4,222,1,10,255,19,252,5,249,60,246,104,243,56,240,146,237,115,236,134,236,211,236,37,237,103,238, +111,241,115,245,22,249,138,252,104,0,193,3,158,5,126,6,232,6,165,6,136,5,214,3,134,2,171,2,193,3,159,4, +9,6,77,9,140,13,226,16,121,18,132,18,182,17,163,16,49,15,41,13,183,10,225,7,188,4,2,2,152,0,125,0, +100,0,44,255,188,253,123,253,212,253,142,253,97,252,108,250,104,248,108,247,109,247,194,247,12,248,224,247,247,247,250,249, +82,253,0,0,68,2,254,4,1,7,183,7,137,8,171,9,91,9,232,6,134,3,79,0,84,253,80,250,13,247,182,243, +35,241,210,239,138,239,122,240,82,242,87,243,91,243,231,244,250,248,3,253,239,254,212,255,122,1,242,3,11,6,139,6, +145,5,237,4,85,5,51,5,41,4,190,3,146,3,23,2,130,0,247,0,13,3,61,5,164,6,17,7,129,7,248,8, +161,10,21,11,45,10,138,8,215,6,180,5,34,5,10,4,201,1,192,255,40,255,14,255,102,254,81,253,193,251,237,249, +221,248,115,248,195,247,94,247,243,247,152,248,11,249,122,250,38,253,4,0,115,2,225,4,232,7,247,10,134,12,13,12, +193,10,20,10,242,9,199,8,229,5,193,2,100,0,204,253,105,250,102,247,74,245,65,243,29,241,140,239,191,238,74,238, +10,238,145,238,121,240,158,243,121,247,76,251,46,254,15,0,209,1,176,3,200,4,84,4,141,2,109,0,36,255,97,255, +96,0,255,0,217,1,72,4,5,8,129,11,55,13,147,12,214,10,220,9,164,9,212,8,204,6,254,3,166,1,242,0, +124,1,232,1,184,1,65,1,19,1,148,1,73,2,88,2,87,1,127,255,24,254,107,254,10,0,144,1,33,2,234,1, +76,2,72,4,152,6,141,7,221,7,187,8,32,9,252,7,171,6,50,6,246,4,207,1,54,254,121,251,242,248,250,245, +193,242,171,239,132,237,204,236,243,236,145,237,118,238,217,238,14,239,228,240,154,244,25,248,251,249,72,251,197,253,74,1, +189,3,30,4,225,3,73,4,209,4,214,4,118,4,229,3,7,3,205,1,38,1,87,2,201,4,218,6,51,8,100,9, +211,10,94,12,79,13,117,13,78,13,129,12,141,10,126,8,97,7,83,6,133,4,0,3,79,2,62,1,131,255,70,254, +102,253,213,251,238,249,169,248,65,248,196,248,211,249,124,250,218,250,12,252,110,254,16,1,209,2,3,4,186,5,38,7, +204,6,100,5,82,4,174,3,15,3,19,2,171,0,67,255,171,253,75,251,149,248,147,246,79,245,217,243,161,241,70,239, +20,238,150,238,34,240,14,242,130,244,231,247,243,251,136,255,199,1,11,3,21,4,225,4,193,4,79,3,59,1,194,255, +120,255,3,0,6,1,174,2,237,4,61,7,195,9,182,12,112,14,77,13,5,11,89,10,153,10,109,9,240,6,122,4, +105,2,54,1,238,0,74,0,5,255,67,254,30,254,0,254,39,254,140,254,44,254,251,252,173,252,225,253,223,254,249,254, +139,255,192,0,126,1,18,2,141,3,24,6,238,8,74,10,78,9,20,8,114,8,158,8,90,6,123,2,23,255,162,252, +31,250,49,247,122,244,94,242,225,240,38,240,134,240,233,241,144,242,76,241,178,240,132,243,231,247,143,250,116,251,210,252, +221,255,68,3,214,4,127,4,205,3,32,3,254,1,0,1,209,0,137,0,46,255,196,253,27,254,78,0,8,3,77,5, +218,6,222,7,179,8,41,9,41,9,75,9,69,9,11,8,86,6,213,5,22,6,111,5,48,4,201,3,195,3,219,2, +78,1,204,255,60,254,104,252,185,250,64,250,124,251,15,253,116,253,115,253,210,254,104,1,131,3,115,4,234,4,208,5, +77,7,23,8,208,6,126,4,48,3,217,2,14,2,174,0,150,255,182,254,7,253,90,250,20,248,244,246,188,245,139,243, +68,241,253,239,243,239,156,240,125,241,135,243,95,247,52,251,50,253,8,254,55,255,160,0,167,0,206,254,216,252,18,252, +214,251,121,251,154,251,134,253,101,1,37,5,43,7,234,8,2,12,234,14,21,15,199,12,187,10,74,10,10,10,227,8, +137,7,102,6,51,5,32,4,79,3,148,2,199,1,164,0,176,255,223,255,82,0,108,255,190,253,35,253,13,254,38,255, +26,255,95,254,153,254,46,0,255,1,213,3,142,6,103,9,164,10,164,10,216,10,5,11,222,9,240,6,60,3,3,0, +247,252,43,249,84,245,178,242,8,241,123,239,245,237,54,237,229,237,1,239,238,238,210,238,3,241,166,244,110,247,146,249, +73,252,54,255,53,1,230,1,244,1,37,2,5,2,199,0,86,255,43,255,204,255,11,0,24,0,192,0,149,2,48,5, +32,7,73,8,193,9,243,10,18,11,20,11,121,11,144,11,37,11,149,10,89,10,84,10,119,9,226,7,25,7,208,6, +68,5,115,2,175,255,182,253,135,252,137,251,139,250,97,250,53,251,245,251,26,252,39,252,175,252,3,254,79,0,5,3, +196,4,16,5,48,5,34,6,51,7,209,6,67,4,239,0,213,254,221,253,154,252,128,250,0,248,252,245,23,245,249,244, +174,244,135,243,212,241,229,240,133,241,30,243,246,244,227,246,199,248,214,250,109,253,205,255,169,0,227,255,136,254,143,253, +235,252,233,251,155,250,54,250,205,251,82,255,202,3,20,8,89,11,118,13,15,15,93,16,141,16,38,15,194,12,65,10, +75,8,63,7,235,6,106,6,48,5,12,4,171,3,92,3,227,2,160,2,198,1,162,255,78,253,24,252,248,251,36,252, +215,251,17,251,234,250,119,252,120,255,169,2,247,4,111,6,39,8,150,10,95,12,250,11,253,9,7,8,87,6,36,4, +0,1,211,252,74,248,224,244,9,243,180,241,209,239,100,237,141,235,92,235,219,236,50,239,236,240,184,241,174,243,237,247, +111,252,120,255,62,1,43,2,150,2,159,2,215,1,130,0,112,255,107,254,79,253,18,253,38,254,4,0,31,2,239,3, +118,5,126,7,244,9,177,11,100,12,226,12,166,13,59,14,42,14,182,13,109,13,115,13,75,13,58,12,46,10,226,7, +219,5,176,3,239,0,52,254,24,252,62,250,172,248,16,248,78,248,159,248,107,248,176,247,98,247,79,248,5,250,38,252, +234,254,196,1,246,3,228,5,239,7,95,9,92,9,197,7,37,5,74,2,119,255,136,252,201,249,136,247,182,245,90,244, +126,243,230,242,78,242,170,241,138,241,214,242,51,245,187,246,254,246,80,248,231,251,132,255,192,0,236,255,231,254,182,254, +152,254,168,253,68,252,34,251,8,251,202,252,27,0,41,4,178,8,187,12,19,15,134,16,24,18,200,18,173,17,134,15, +49,13,228,10,179,8,199,6,104,5,106,4,71,3,33,2,135,1,100,1,240,0,122,255,83,253,147,251,175,250,73,250, +207,249,2,249,124,248,22,249,1,251,243,253,33,1,133,3,83,5,145,7,64,10,54,12,81,12,110,10,250,7,121,6, +48,5,88,2,248,253,92,249,89,245,124,242,3,241,57,240,9,239,65,237,83,236,249,237,100,241,220,243,239,244,235,246, +216,250,248,254,92,1,24,2,158,2,41,3,62,2,245,255,137,254,63,254,24,253,182,250,21,249,234,249,165,252,239,254, +248,255,219,1,184,5,80,9,248,10,98,12,242,14,249,16,235,16,40,16,109,16,207,16,104,15,217,12,62,11,174,10, +165,9,95,7,53,4,106,1,5,0,228,254,146,252,33,250,250,248,78,248,60,247,50,246,103,245,3,245,247,245,196,248, +100,252,122,255,12,2,34,5,121,8,116,10,99,10,27,9,161,7,27,6,159,3,152,255,55,251,64,248,215,246,165,245, +158,243,4,241,233,238,10,238,41,238,216,238,42,240,247,241,233,243,76,246,70,249,6,252,199,253,134,254,129,254,205,253, +150,252,116,251,218,250,168,250,241,250,90,252,57,255,82,3,50,8,224,12,94,16,211,18,170,20,119,21,26,21,58,20, +244,18,237,16,111,14,55,12,134,10,249,8,67,7,161,5,104,4,111,3,39,2,13,0,81,253,20,251,85,250,103,250, +195,249,84,248,123,247,22,248,218,249,16,252,54,254,36,0,246,1,9,4,69,6,229,7,154,8,172,8,238,7,41,6, +212,3,31,1,174,253,156,249,101,245,52,241,168,237,244,235,226,235,177,235,4,235,142,235,60,238,221,241,13,245,218,247, +16,251,155,254,66,1,77,2,165,2,57,3,89,3,57,2,211,0,99,0,70,0,58,255,199,253,133,253,203,254,131,0, +211,1,61,3,147,5,84,8,174,10,44,13,68,16,168,18,46,19,222,18,57,19,151,19,91,18,154,15,184,12,141,10, +225,8,200,6,215,3,9,1,25,255,68,253,48,251,224,249,98,249,16,248,93,245,205,242,140,241,68,241,181,241,84,243, +25,246,115,249,96,253,241,1,65,6,12,9,247,9,154,9,162,8,27,7,124,4,176,0,224,252,70,250,154,248,22,247, +181,245,84,244,183,242,146,241,100,241,169,241,36,242,238,242,249,243,209,245,207,248,176,251,75,253,57,254,47,255,204,255, +131,255,113,254,69,253,141,252,93,252,24,253,65,255,133,2,97,6,114,10,252,13,165,16,197,18,64,20,156,20,222,19, +105,18,147,16,114,14,39,12,78,10,46,9,219,7,150,5,57,3,245,1,98,1,224,255,223,252,201,249,57,248,34,248, +3,248,240,246,28,246,4,247,17,249,109,251,146,254,175,1,30,3,243,3,93,6,157,9,38,11,15,10,207,7,71,6, +59,5,175,2,40,254,118,249,219,245,222,242,245,239,142,237,47,236,149,235,80,235,239,235,35,238,50,241,6,244,176,246, +216,249,131,253,154,0,9,2,135,2,51,3,54,3,231,1,252,0,73,1,218,0,242,254,217,253,225,254,113,0,38,1, +159,1,193,2,197,4,117,7,238,9,171,11,129,13,178,15,15,17,107,17,226,17,97,18,200,17,251,15,250,13,71,12, +71,10,88,7,229,3,4,1,0,255,6,253,205,250,65,249,143,248,156,247,248,245,80,244,36,243,143,242,225,242,126,244, +29,247,0,250,58,253,60,1,91,5,129,8,44,10,51,10,78,9,154,8,102,7,105,4,177,0,196,253,40,251,115,248, +88,246,206,244,40,243,137,241,175,240,40,241,141,242,144,243,246,243,27,245,64,247,23,249,31,250,213,250,145,251,85,252, +150,252,38,252,21,252,184,252,21,253,108,253,44,255,140,2,71,6,0,9,208,10,51,13,71,16,50,18,84,18,2,18, +8,18,212,17,171,16,184,14,246,12,181,11,0,10,91,7,225,4,90,3,201,1,50,255,91,252,78,250,209,248,140,247, +195,246,142,246,224,246,216,247,135,249,18,252,78,255,255,1,109,3,194,4,17,7,138,9,145,10,155,9,232,7,229,6, +228,5,99,3,183,255,206,251,145,247,106,243,101,240,92,238,97,236,155,234,81,234,27,236,192,238,249,240,107,243,18,247, +44,251,72,254,201,255,52,0,186,0,158,1,174,1,153,0,239,255,101,0,173,0,21,0,171,255,44,0,219,0,219,0, +142,0,73,1,105,3,155,5,29,7,22,9,87,12,188,15,201,17,121,18,232,18,154,19,175,19,56,18,158,15,222,12, +57,10,104,7,139,4,245,1,118,255,1,253,66,251,86,250,49,249,84,247,96,245,210,243,151,242,189,241,208,241,124,243, +181,246,133,250,19,254,118,1,20,5,98,8,31,10,13,10,92,9,169,8,27,7,79,4,51,1,97,254,140,251,211,248, +194,246,44,245,109,243,195,241,75,241,29,242,183,242,101,242,160,242,100,244,106,246,109,247,6,248,73,249,11,251,44,252, +27,252,168,251,253,251,241,252,108,253,106,253,109,254,118,1,121,5,203,8,73,11,218,13,98,16,9,18,247,18,178,19, +197,19,236,18,196,17,141,16,248,14,17,13,61,11,123,9,38,7,19,4,96,1,161,255,155,253,84,250,199,246,208,244, +31,245,48,246,71,246,96,246,181,248,238,252,119,0,20,2,52,3,109,5,212,7,154,8,21,8,166,7,59,7,16,6, +67,4,89,2,28,0,187,252,57,248,242,243,205,240,54,238,170,235,233,233,218,233,48,235,3,237,93,239,229,242,53,247, +217,250,14,253,123,254,3,0,71,1,49,1,249,255,63,255,143,255,216,255,165,255,167,255,62,0,22,1,167,1,173,1, +173,1,137,2,109,4,187,6,217,8,252,10,204,13,11,17,169,19,87,21,124,22,24,23,163,22,193,20,201,17,115,14, +225,10,1,7,80,3,34,0,102,253,93,251,12,250,185,248,3,247,76,245,181,243,13,242,201,240,200,240,4,242,200,243, +56,246,239,249,150,254,73,3,50,7,104,9,232,9,228,9,193,9,156,8,53,6,92,3,144,0,179,253,173,250,208,247, +169,245,39,244,200,242,187,241,90,241,41,241,230,240,5,241,189,241,23,243,254,244,183,246,208,247,229,248,116,250,4,252, +196,252,93,252,118,251,53,251,68,252,127,254,244,0,218,2,239,4,142,8,75,13,37,17,250,18,134,19,241,19,141,20, +41,21,78,21,98,20,144,18,166,16,240,14,67,13,40,11,232,7,237,3,172,0,91,254,227,251,195,248,197,245,89,244, +188,244,110,245,32,246,110,248,27,252,205,254,20,0,166,1,50,4,94,6,122,6,4,5,158,4,2,6,131,6,131,4, +218,1,74,0,186,254,110,251,247,246,33,243,232,239,45,236,226,232,47,232,220,233,147,235,131,236,126,238,230,242,21,248, +115,251,224,252,70,254,82,0,134,1,253,0,26,0,20,0,35,0,157,255,106,255,106,0,250,1,81,2,1,1,94,0, +252,1,12,4,19,5,95,6,41,9,241,12,197,16,44,20,15,23,58,25,102,26,155,26,167,25,13,23,14,19,92,14, +146,9,94,5,210,1,87,254,69,251,103,249,55,248,155,246,119,244,138,242,113,241,10,241,227,240,12,241,6,242,81,244, +30,248,202,252,43,1,157,4,15,7,192,8,1,10,40,10,88,8,166,5,149,3,131,1,132,254,70,251,95,248,164,245, +60,243,105,241,68,240,214,239,128,239,185,238,68,238,17,239,206,240,188,242,187,244,202,246,131,248,243,249,191,251,190,253, +198,254,132,254,47,254,1,255,239,0,14,3,203,4,146,6,92,9,79,13,247,16,235,18,190,19,131,20,17,21,115,21, +38,22,67,22,172,20,70,18,157,16,179,15,22,14,114,10,93,5,223,0,232,253,128,251,146,248,44,245,109,242,156,241, +175,242,149,244,6,247,29,250,219,252,167,254,150,0,36,3,3,5,31,5,49,4,234,3,228,4,154,5,147,4,203,2, +221,1,255,0,23,254,15,249,32,244,145,240,48,237,50,233,95,230,135,230,195,232,6,235,29,237,97,240,248,244,54,249, +228,251,148,253,40,255,69,0,100,0,102,0,48,1,248,1,235,1,223,1,239,2,163,4,22,5,97,3,132,1,186,1, +23,3,191,3,108,4,212,6,212,10,27,15,10,19,216,22,98,26,216,28,160,29,149,28,1,26,165,22,193,18,4,14, +20,9,237,4,71,1,202,253,248,250,135,248,146,245,150,242,185,240,163,239,48,238,194,236,16,237,134,239,174,242,201,245, +152,249,52,254,152,2,7,6,46,8,27,9,71,9,187,8,39,7,226,4,117,2,217,255,237,252,230,249,19,247,134,244, +54,242,99,240,57,239,60,238,14,237,86,236,245,236,175,238,114,240,246,241,23,244,245,246,131,249,123,251,111,253,73,255, +123,0,255,0,157,1,6,3,208,4,118,6,154,8,131,11,81,14,151,16,158,18,60,20,8,21,16,21,226,20,219,20, +114,20,34,19,165,17,210,16,34,16,110,14,77,11,144,7,93,4,142,1,251,253,99,249,233,244,252,241,14,241,60,241, +230,241,198,243,59,247,240,250,156,253,204,255,92,2,116,4,223,4,85,4,50,4,94,4,62,4,5,4,195,3,5,3, +132,1,39,255,250,251,52,248,183,243,136,238,202,233,235,230,16,230,18,230,80,230,230,231,228,235,26,241,65,245,213,247, +113,250,214,253,85,0,203,0,218,0,248,1,79,3,36,4,12,5,85,6,156,7,65,8,200,7,191,6,77,6,140,6, +222,6,74,7,146,8,35,11,76,14,92,17,182,20,78,24,209,26,121,27,184,26,22,25,182,22,98,19,239,14,17,10, +231,5,118,2,4,255,79,251,141,247,30,244,91,241,25,239,62,237,59,236,46,236,170,236,194,237,21,240,216,243,93,248, +139,252,155,255,185,1,217,3,40,6,79,7,147,6,107,5,24,5,161,4,252,2,171,0,53,254,117,251,159,248,106,246, +253,244,46,243,43,240,121,237,249,236,32,238,63,239,206,239,116,240,22,242,189,244,103,247,108,249,43,251,242,252,115,254, +191,255,161,1,122,4,94,7,49,9,133,10,228,12,63,16,240,18,18,20,28,20,209,19,180,19,255,19,69,20,174,19, +31,18,142,16,252,15,26,16,47,15,12,12,179,7,253,3,77,1,76,254,212,249,206,244,122,241,131,240,124,240,217,240, +223,242,155,246,26,250,153,252,49,255,56,2,110,4,192,4,236,3,237,3,41,5,182,5,100,4,178,2,97,2,110,2, +106,0,101,252,151,248,93,245,34,241,52,236,6,233,123,232,215,232,163,232,246,232,155,235,224,239,110,243,148,245,115,247, +185,249,180,251,196,252,223,253,0,0,38,2,53,3,23,4,62,6,102,9,102,11,202,10,45,9,249,8,202,9,228,9, +126,9,246,9,186,11,86,14,18,17,127,19,187,21,180,23,213,24,173,24,62,23,217,20,131,17,45,13,179,8,13,5, +202,1,85,254,18,251,26,248,242,244,226,241,189,239,140,238,169,237,242,236,14,237,143,238,103,241,76,245,204,249,35,254, +220,1,6,5,168,7,160,9,61,10,167,8,213,5,212,3,195,2,31,1,100,254,155,251,170,249,21,248,23,246,12,244, +130,242,26,241,90,239,143,237,131,236,196,236,48,238,246,239,114,241,239,242,46,245,49,248,241,250,136,252,74,253,57,254, +17,0,219,2,223,5,132,8,17,11,254,13,28,17,166,19,11,21,105,21,252,20,250,19,7,19,124,18,181,17,89,16, +78,15,121,15,71,16,88,16,231,14,36,12,208,8,98,5,185,1,149,253,235,248,71,244,200,240,239,238,91,238,206,238, +104,240,28,243,88,246,113,249,139,252,22,0,124,3,200,5,23,7,28,8,35,9,242,9,214,9,73,8,152,5,57,2, +142,254,41,251,207,247,127,243,78,238,6,234,118,232,9,233,104,233,33,233,35,234,114,237,213,241,54,245,220,246,95,248, +3,251,99,253,246,253,3,254,133,255,189,1,151,2,112,2,126,3,254,5,229,7,68,8,96,8,95,9,151,10,232,10, +251,10,114,12,227,14,119,16,66,17,178,18,154,20,134,21,49,21,118,20,153,19,70,18,77,16,108,13,227,9,129,6, +79,3,204,255,31,252,182,248,115,245,234,241,126,238,109,236,214,235,149,235,177,235,180,237,38,242,132,247,39,252,31,0, +88,4,156,8,150,11,152,12,55,12,60,11,179,9,7,7,38,3,86,255,204,252,199,250,188,247,0,244,41,241,58,239, +62,237,155,235,19,235,130,235,193,236,124,238,82,240,198,242,226,245,137,248,94,250,249,251,86,253,232,253,231,253,115,254, +5,0,229,1,214,3,194,6,226,10,227,14,125,17,193,18,145,19,83,20,92,20,27,19,83,17,228,15,140,14,67,13, +38,13,95,14,2,15,187,13,243,11,85,11,201,10,227,7,153,2,168,253,193,250,199,248,109,246,0,244,130,242,144,242, +221,243,124,245,158,246,78,247,165,248,48,251,240,253,51,0,74,2,92,4,149,6,245,8,59,10,55,9,149,6,87,3, +61,255,39,250,29,245,16,241,230,237,61,235,97,233,220,232,203,233,22,236,65,239,54,242,186,244,187,247,52,251,140,253, +43,254,192,254,130,0,81,2,224,2,121,2,81,2,50,3,30,4,127,3,47,2,116,2,121,4,147,6,223,7,200,8, +28,10,77,12,40,15,253,17,229,19,41,20,74,19,151,18,39,18,49,17,176,15,202,13,25,11,190,7,185,4,209,2, +112,1,4,255,53,251,236,247,201,246,199,246,225,245,160,243,51,241,113,240,46,242,205,244,79,246,67,247,141,249,83,253, +11,1,154,3,7,5,241,5,34,7,128,8,188,8,255,6,236,3,215,0,141,254,130,252,214,249,189,246,196,243,251,240, +137,238,230,236,137,236,93,237,114,238,65,239,29,241,51,245,7,250,128,253,173,255,139,1,94,3,179,4,193,4,116,3, +240,1,111,1,40,2,131,3,219,4,63,6,62,8,202,10,12,13,136,14,74,15,49,15,145,14,63,14,30,14,85,13, +205,11,78,10,142,9,95,9,206,8,37,7,135,4,204,1,179,255,14,254,26,252,161,249,180,247,172,247,87,249,40,251, +53,252,237,252,2,254,139,255,60,1,129,2,145,2,90,1,86,0,83,1,224,3,72,5,65,4,151,2,253,1,180,1, +29,0,190,252,73,248,186,243,241,239,142,237,151,236,76,236,223,235,201,235,120,237,252,240,139,244,147,246,85,247,218,248, +113,252,45,0,146,1,177,1,39,3,226,5,195,7,220,7,4,7,34,6,79,5,123,4,5,4,238,3,152,3,43,3, +229,3,79,6,129,9,31,12,148,13,148,14,243,15,67,17,162,17,2,17,86,15,32,12,41,8,68,5,158,3,175,1, +140,254,52,251,144,249,134,249,190,248,176,246,133,245,74,246,170,247,70,248,90,248,11,249,200,250,26,253,179,255,78,2, +4,4,171,4,189,5,9,8,19,10,3,10,40,8,98,6,85,5,225,3,85,1,5,254,63,250,121,246,67,243,200,240, +1,239,196,237,146,236,78,235,245,234,143,236,100,239,222,241,43,244,150,247,161,251,191,254,241,0,19,3,235,4,33,6, +242,6,47,7,189,6,95,6,165,6,43,7,69,7,213,6,116,6,207,6,223,7,9,9,245,9,227,10,254,11,48,13, +84,14,221,14,19,14,202,11,172,8,180,5,37,3,112,0,77,253,90,250,142,248,75,248,203,248,2,249,38,249,65,250, +84,252,83,254,182,255,103,0,98,0,70,0,210,0,58,2,120,4,174,6,126,7,68,7,197,7,60,9,237,9,47,8, +205,3,156,254,55,251,161,249,30,247,152,242,132,238,98,237,149,238,190,239,202,239,22,239,62,238,136,238,213,240,194,243, +117,245,44,246,136,247,207,250,142,255,108,3,223,4,166,5,252,7,131,10,116,10,54,8,40,6,170,4,231,2,186,1, +145,2,243,4,16,7,4,8,30,9,84,12,208,16,82,19,150,18,148,16,135,15,76,15,209,13,60,10,35,6,39,3, +45,1,46,255,146,252,149,249,176,246,87,244,31,243,7,243,57,243,129,243,15,245,116,248,48,252,204,254,215,0,89,3, +230,5,61,7,247,6,10,6,107,5,166,4,74,3,195,2,245,3,232,4,0,4,138,2,233,1,74,1,1,255,174,250, +220,245,13,242,32,239,137,236,133,234,140,233,219,233,218,235,215,239,140,244,153,247,176,248,42,250,104,253,200,0,110,2, +48,3,225,4,134,7,226,9,26,11,66,11,54,11,63,11,95,10,113,8,37,7,71,7,205,7,59,8,10,9,82,10, +215,11,70,13,215,13,218,12,173,10,106,8,82,6,165,3,93,0,68,253,191,250,231,248,181,247,217,246,68,246,76,246, +44,247,140,248,243,249,163,251,23,254,249,0,171,3,59,6,199,8,139,10,141,10,21,9,73,7,95,5,163,2,109,255, +48,253,37,252,46,251,79,250,154,250,201,251,53,252,0,251,162,248,45,246,136,244,76,243,44,241,160,238,194,237,40,239, +175,241,160,244,235,247,54,251,208,253,183,255,156,1,134,3,180,4,234,4,244,4,248,5,23,8,238,9,131,10,210,10, +230,11,206,12,70,12,3,11,68,10,166,9,123,8,102,7,63,7,157,7,94,7,235,5,231,3,135,2,175,1,219,255, +107,252,139,248,179,245,62,244,75,243,74,242,7,242,27,243,222,244,215,246,118,249,164,252,70,255,20,1,33,3,216,5, +133,8,219,10,9,13,214,14,239,15,135,16,184,16,243,15,3,14,156,11,63,9,155,6,128,3,103,0,229,253,19,252, +118,250,18,248,160,244,129,241,192,239,101,238,101,236,70,234,17,233,80,233,254,234,137,237,45,240,152,242,30,245,72,248, +195,251,12,254,129,254,149,254,158,255,104,1,94,3,50,5,16,7,141,9,149,12,97,15,121,17,203,18,111,19,135,19, +16,19,246,17,73,16,59,14,186,11,171,8,128,5,176,2,255,255,1,253,222,249,100,247,48,246,235,245,209,245,135,245, +106,245,111,246,5,249,253,251,251,253,128,255,175,1,68,4,153,6,178,8,78,10,15,11,84,11,211,11,170,12,218,12, +73,11,94,8,103,5,200,2,232,255,88,252,71,248,62,244,250,240,224,238,91,237,189,235,157,234,74,235,200,237,62,240, +134,241,255,242,13,246,199,249,92,252,36,253,43,253,178,253,92,254,112,254,186,254,213,255,252,0,24,2,78,4,164,7, +141,10,22,12,14,13,147,14,61,16,239,16,191,16,167,16,19,17,80,17,80,16,109,14,241,12,164,11,57,9,167,5, +34,2,58,255,10,252,11,248,189,244,141,243,113,243,110,242,112,240,66,239,208,239,232,240,176,241,228,242,220,244,5,247, +127,249,213,252,199,0,160,4,254,7,231,10,77,13,197,14,255,14,20,14,23,12,38,9,194,5,167,2,82,0,130,254, +204,252,166,251,132,251,189,251,126,251,189,250,10,250,227,249,240,249,71,249,193,247,128,246,221,246,169,248,36,250,62,250, +14,250,7,251,199,252,230,253,32,254,98,254,74,255,143,0,209,1,70,3,59,5,120,7,161,9,189,11,162,13,148,14, +80,14,143,13,201,12,101,11,221,8,6,6,20,4,157,2,81,0,77,253,208,250,91,249,68,248,181,246,11,245,156,244, +224,245,187,247,217,248,89,249,190,250,198,253,31,1,14,3,132,3,11,4,170,5,101,7,14,8,102,8,73,9,189,9, +36,9,98,8,105,7,243,4,233,0,140,252,199,248,130,245,122,242,29,240,55,239,64,240,4,243,126,246,162,249,98,252, +12,255,57,1,11,2,83,1,204,255,84,254,94,253,222,252,105,252,186,251,244,250,219,250,105,252,8,255,198,0,54,1, +208,1,59,3,199,4,68,6,12,8,16,10,65,12,165,14,187,16,214,17,187,17,161,16,204,14,60,12,221,8,244,4, +78,1,194,254,44,253,218,251,234,250,134,250,254,249,244,248,205,247,184,246,142,245,112,244,171,243,134,243,206,244,38,248, +56,252,243,254,196,0,225,3,80,8,89,11,23,11,95,8,247,4,213,1,19,255,57,252,233,248,159,245,110,243,224,242, +97,243,170,243,209,242,96,241,228,240,215,241,82,243,181,244,106,246,103,249,15,254,100,3,69,8,116,12,234,15,135,18, +0,20,174,19,134,17,149,14,177,11,250,8,181,6,43,5,17,4,103,3,240,3,222,5,23,8,95,9,169,9,187,9, +183,9,44,9,55,8,40,7,251,5,210,4,192,3,100,2,129,0,26,254,36,251,5,248,111,245,62,243,244,240,28,239, +147,238,6,239,124,239,7,240,125,241,127,243,172,244,220,244,26,245,246,245,66,247,164,248,64,250,222,252,194,0,38,5, +27,9,22,12,42,14,146,15,193,15,11,14,188,10,153,6,101,2,180,254,137,251,213,248,227,246,231,245,6,246,78,247, +35,249,218,250,159,252,21,255,122,2,34,6,15,9,73,11,97,13,9,15,186,15,140,15,163,14,241,12,166,10,78,8, +100,6,184,4,246,2,109,1,127,0,49,0,89,0,89,0,111,255,175,253,201,251,51,250,227,248,148,247,20,246,86,244, +181,242,62,242,133,243,129,245,187,246,247,246,38,247,244,247,198,248,197,248,107,248,185,248,182,249,252,250,186,252,88,255, +152,2,152,5,214,7,202,9,147,11,80,12,253,11,254,11,212,12,92,13,207,12,235,11,201,11,59,12,235,11,243,9, +132,6,133,2,238,254,222,251,171,248,126,245,113,243,195,242,233,242,23,244,130,246,70,249,117,251,241,252,220,253,65,254, +44,254,177,253,241,252,41,252,194,251,234,251,99,252,53,253,161,254,98,0,202,1,100,2,71,2,26,2,102,2,185,2, +75,2,121,1,77,1,220,1,171,2,229,3,139,5,172,6,130,6,143,5,209,4,51,4,211,2,153,0,93,254,224,252, +116,252,34,253,185,254,218,0,235,2,117,4,188,5,26,7,232,7,125,7,103,6,137,5,49,5,3,5,89,4,91,3, +234,2,17,3,212,2,82,1,128,254,38,251,8,248,66,245,169,242,29,240,204,237,103,236,119,236,147,237,167,238,43,239, +195,239,35,241,223,242,61,244,147,245,195,247,239,250,99,254,134,1,125,4,177,7,206,10,223,12,83,13,170,12,252,11, +150,11,223,10,27,10,85,10,113,11,164,12,239,13,141,15,27,17,243,17,195,17,204,16,111,15,172,13,81,11,178,8, +199,6,16,6,178,5,152,4,219,2,55,1,193,255,241,253,89,251,18,248,215,244,103,242,209,240,222,239,153,239,245,239, +193,240,254,241,210,243,240,245,103,247,185,247,142,247,125,247,103,247,37,247,186,246,73,246,65,246,187,246,67,247,173,247, +45,248,186,248,22,249,0,249,114,248,8,248,134,248,224,249,169,251,224,253,170,0,215,3,8,7,35,10,72,13,45,16, +74,18,159,19,141,20,119,21,124,22,24,23,229,22,111,22,74,22,244,21,148,20,78,18,25,16,52,14,212,11,183,8, +181,5,112,3,146,1,138,255,46,253,186,250,99,248,250,245,106,243,17,241,254,238,10,237,159,235,14,235,14,235,129,235, +87,236,42,237,178,237,5,238,121,238,92,239,140,240,183,241,8,243,239,244,121,247,101,250,97,253,22,0,110,2,140,4, +75,6,108,7,8,8,98,8,122,8,47,8,186,7,165,7,3,8,92,8,73,8,183,7,245,6,144,6,184,6,237,6, +157,6,49,6,193,6,122,8,122,10,43,12,123,13,149,14,195,15,180,16,100,16,96,14,108,11,171,8,108,6,250,3, +183,0,75,253,227,250,158,249,175,248,150,247,87,246,34,245,65,244,225,243,196,243,113,243,252,242,221,242,20,243,82,243, +120,243,88,243,183,242,208,241,55,241,71,241,245,241,40,243,208,244,213,246,96,249,123,252,116,255,192,1,203,3,28,6, +104,8,9,10,2,11,3,12,104,13,211,14,194,15,42,16,121,16,219,16,223,16,66,16,96,15,119,14,83,13,178,11, +154,9,107,7,110,5,69,3,154,0,228,253,157,251,178,249,16,248,191,246,184,245,12,245,188,244,207,244,93,245,53,246, +227,246,30,247,49,247,195,247,193,248,129,249,21,250,238,250,200,251,81,252,167,252,209,252,199,252,205,252,30,253,108,253, +93,253,77,253,172,253,27,254,81,254,188,254,73,255,85,255,34,255,123,255,140,0,248,1,48,3,8,4,38,5,216,6, +92,8,35,9,81,9,66,9,77,9,106,9,67,9,219,8,157,8,232,8,182,9,148,10,74,11,250,11,101,12,18,12, +25,11,165,9,92,7,67,4,20,1,100,254,84,252,162,250,221,248,29,247,5,246,211,245,233,245,86,245,206,243,242,241, +115,240,112,239,169,238,2,238,209,237,138,238,63,240,154,242,5,245,29,247,20,249,53,251,55,253,103,254,165,254,199,254, +151,255,246,0,117,2,24,4,252,5,14,8,69,10,112,12,252,13,96,14,170,13,121,12,70,11,205,9,222,7,39,6, +56,5,221,4,223,4,94,5,128,6,227,7,151,8,78,8,203,7,116,7,198,6,126,5,53,4,134,3,54,3,203,2, +121,2,164,2,236,2,151,2,152,1,96,0,15,255,131,253,204,251,51,250,245,248,246,247,243,246,18,246,164,245,116,245, +230,244,176,243,23,242,130,240,47,239,66,238,222,237,24,238,227,238,61,240,104,242,106,245,190,248,233,251,222,254,192,1, +131,4,173,6,225,7,106,8,201,8,30,9,20,9,89,8,74,7,131,6,27,6,247,5,59,6,228,6,199,7,243,8, +126,10,42,12,138,13,100,14,206,14,246,14,199,14,3,14,177,12,252,10,247,8,181,6,120,4,145,2,242,0,27,255, +230,252,195,250,17,249,254,247,128,247,82,247,76,247,160,247,107,248,102,249,29,250,113,250,146,250,161,250,172,250,182,250, +151,250,65,250,9,250,56,250,164,250,230,250,169,250,214,249,199,248,211,247,217,246,199,245,221,244,80,244,95,244,34,245, +80,246,193,247,174,249,46,252,252,254,169,1,238,3,237,5,254,7,53,10,55,12,182,13,188,14,136,15,55,16,141,16, +54,16,61,15,208,13,36,12,177,10,160,9,115,8,234,6,122,5,145,4,17,4,133,3,144,2,136,1,9,1,206,0, +16,0,230,254,231,253,39,253,57,252,195,250,249,248,94,247,0,246,186,244,199,243,57,243,205,242,136,242,181,242,89,243, +62,244,93,245,187,246,51,248,173,249,44,251,158,252,250,253,62,255,102,0,108,1,58,2,242,2,240,3,18,5,199,5, +197,5,53,5,164,4,117,4,60,4,104,3,89,2,204,1,219,1,44,2,143,2,44,3,32,4,33,5,253,5,242,6, +6,8,222,8,86,9,145,9,204,9,248,9,184,9,23,9,89,8,80,7,227,5,62,4,66,2,222,255,84,253,191,250, +25,248,201,245,96,244,197,243,96,243,0,243,243,242,94,243,8,244,151,244,242,244,92,245,16,246,39,247,163,248,76,250, +24,252,38,254,33,0,173,1,6,3,60,4,222,4,186,4,5,4,20,3,80,2,229,1,189,1,206,1,249,1,91,2, +97,3,219,4,35,6,35,7,248,7,113,8,155,8,179,8,179,8,132,8,86,8,86,8,42,8,92,7,22,6,202,4, +165,3,114,2,211,0,215,254,17,253,228,251,62,251,233,250,164,250,78,250,15,250,66,250,13,251,243,251,70,252,32,252, +57,252,177,252,24,253,56,253,18,253,183,252,96,252,53,252,34,252,248,251,132,251,217,250,73,250,211,249,38,249,51,248, +97,247,44,247,140,247,19,248,130,248,42,249,172,250,46,253,2,0,102,2,90,4,108,6,212,8,16,11,144,12,64,13, +95,13,50,13,193,12,242,11,225,10,178,9,98,8,249,6,147,5,86,4,86,3,118,2,149,1,192,0,22,0,168,255, +117,255,104,255,81,255,0,255,137,254,58,254,38,254,255,253,133,253,218,252,87,252,46,252,27,252,180,251,11,251,148,250, +133,250,177,250,188,250,141,250,115,250,154,250,217,250,28,251,81,251,111,251,188,251,89,252,35,253,29,254,75,255,148,0, +5,2,151,3,247,4,215,5,53,6,65,6,251,5,39,5,185,3,35,2,210,0,171,255,116,254,111,253,1,253,44,253, +180,253,110,254,91,255,132,0,188,1,215,2,247,3,47,5,25,6,110,6,129,6,138,6,80,6,151,5,103,4,26,3, +244,1,221,0,192,255,170,254,145,253,126,252,102,251,23,250,201,248,205,247,220,246,185,245,227,244,15,245,44,246,108,247, +140,248,70,250,209,252,87,255,81,1,17,3,199,4,40,6,28,7,0,8,5,9,206,9,254,9,157,9,240,8,46,8, +54,7,174,5,188,3,236,1,116,0,63,255,86,254,207,253,143,253,87,253,95,253,234,253,77,254,7,254,190,253,219,253, +253,253,226,253,136,253,31,253,243,252,217,252,123,252,235,251,106,251,60,251,133,251,22,252,166,252,255,252,31,253,84,253, +206,253,60,254,63,254,13,254,41,254,183,254,135,255,128,0,179,1,44,3,196,4,25,6,242,6,129,7,213,7,148,7, +155,6,49,5,187,3,132,2,116,1,65,0,29,255,112,254,72,254,119,254,208,254,61,255,188,255,61,0,186,0,42,1, +123,1,228,1,144,2,65,3,172,3,156,3,19,3,130,2,50,2,203,1,207,0,54,255,149,253,132,252,229,251,71,251, +145,250,239,249,140,249,143,249,229,249,53,250,68,250,46,250,62,250,151,250,33,251,182,251,86,252,16,253,218,253,171,254, +139,255,100,0,3,1,120,1,250,1,96,2,142,2,212,2,69,3,183,3,62,4,210,4,37,5,33,5,245,4,236,4, +29,5,58,5,16,5,207,4,184,4,226,4,26,5,238,4,55,4,68,3,83,2,82,1,42,0,221,254,120,253,45,252, +64,251,186,250,139,250,176,250,11,251,116,251,237,251,132,252,52,253,223,253,85,254,116,254,85,254,55,254,44,254,28,254, +245,253,193,253,190,253,52,254,251,254,148,255,205,255,6,0,145,0,33,1,71,1,254,0,140,0,47,0,4,0,5,0, +18,0,28,0,80,0,224,0,160,1,74,2,198,2,27,3,107,3,216,3,69,4,116,4,101,4,84,4,94,4,74,4, +236,3,98,3,210,2,46,2,87,1,98,0,132,255,182,254,223,253,36,253,169,252,104,252,74,252,37,252,229,251,173,251, +160,251,168,251,130,251,17,251,145,250,62,250,1,250,182,249,136,249,176,249,57,250,28,251,86,252,226,253,170,255,121,1, +44,3,206,4,74,6,75,7,153,7,124,7,97,7,58,7,185,6,0,6,130,5,81,5,5,5,107,4,200,3,48,3, +114,2,161,1,232,0,71,0,193,255,82,255,247,254,197,254,191,254,204,254,195,254,142,254,76,254,249,253,97,253,159,252, +8,252,178,251,117,251,53,251,25,251,101,251,9,252,188,252,90,253,246,253,162,254,64,255,157,255,192,255,203,255,186,255, +148,255,138,255,173,255,214,255,216,255,189,255,190,255,3,0,119,0,222,0,30,1,99,1,215,1,72,2,131,2,174,2, +242,2,84,3,174,3,207,3,215,3,237,3,234,3,193,3,120,3,0,3,125,2,4,2,119,1,228,0,98,0,234,255, +146,255,104,255,57,255,211,254,54,254,132,253,222,252,82,252,219,251,114,251,37,251,39,251,133,251,7,252,121,252,241,252, +154,253,91,254,232,254,21,255,254,254,226,254,245,254,69,255,180,255,42,0,184,0,92,1,1,2,172,2,67,3,144,3, +152,3,125,3,95,3,87,3,86,3,68,3,54,3,83,3,159,3,226,3,218,3,122,3,223,2,17,2,4,1,201,255, +129,254,80,253,85,252,136,251,217,250,80,250,252,249,242,249,63,250,163,250,231,250,41,251,129,251,245,251,168,252,140,253, +98,254,19,255,191,255,135,0,87,1,250,1,99,2,175,2,250,2,64,3,107,3,99,3,31,3,181,2,76,2,235,1, +141,1,61,1,254,0,216,0,217,0,251,0,43,1,101,1,153,1,179,1,196,1,208,1,191,1,160,1,142,1,139,1, +170,1,253,1,71,2,90,2,82,2,62,2,14,2,201,1,110,1,232,0,54,0,118,255,199,254,63,254,223,253,137,253, +43,253,228,252,197,252,177,252,132,252,51,252,229,251,183,251,150,251,124,251,111,251,93,251,83,251,126,251,209,251,48,252, +173,252,81,253,0,254,185,254,136,255,83,0,13,1,203,1,142,2,70,3,226,3,94,4,203,4,40,5,100,5,127,5, +130,5,96,5,0,5,106,4,190,3,13,3,101,2,209,1,75,1,223,0,161,0,118,0,71,0,29,0,253,255,233,255, +206,255,135,255,26,255,159,254,35,254,180,253,100,253,54,253,36,253,44,253,93,253,197,253,66,254,163,254,235,254,58,255, +141,255,192,255,195,255,180,255,172,255,165,255,155,255,147,255,157,255,200,255,244,255,246,255,237,255,7,0,53,0,87,0, +87,0,65,0,54,0,41,0,254,255,195,255,142,255,121,255,137,255,150,255,145,255,153,255,192,255,10,0,88,0,141,0, +184,0,221,0,229,0,211,0,179,0,133,0,90,0,72,0,78,0,84,0,81,0,90,0,116,0,125,0,97,0,41,0, +224,255,146,255,88,255,45,255,251,254,214,254,232,254,54,255,155,255,234,255,17,0,30,0,38,0,54,0,72,0,77,0, +71,0,81,0,127,0,204,0,32,1,110,1,183,1,254,1,51,2,64,2,37,2,230,1,123,1,9,1,180,0,114,0, +44,0,223,255,158,255,116,255,72,255,14,255,204,254,117,254,8,254,158,253,66,253,240,252,171,252,123,252,121,252,170,252, +250,252,94,253,201,253,44,254,151,254,30,255,180,255,49,0,135,0,214,0,61,1,170,1,241,1,9,2,15,2,33,2, +64,2,79,2,44,2,231,1,177,1,153,1,140,1,116,1,79,1,35,1,240,0,188,0,139,0,84,0,15,0,203,255, +151,255,119,255,96,255,75,255,64,255,65,255,62,255,53,255,52,255,54,255,31,255,252,254,250,254,28,255,65,255,88,255, +120,255,183,255,2,0,54,0,79,0,93,0,107,0,115,0,100,0,79,0,69,0,51,0,11,0,215,255,177,255,162,255, +145,255,105,255,47,255,248,254,225,254,246,254,30,255,77,255,136,255,222,255,85,0,217,0,70,1,138,1,182,1,222,1, +248,1,241,1,208,1,161,1,116,1,89,1,70,1,33,1,229,0,161,0,97,0,39,0,229,255,149,255,76,255,33,255, +21,255,31,255,51,255,72,255,88,255,87,255,68,255,57,255,41,255,237,254,145,254,70,254,37,254,36,254,41,254,42,254, +68,254,137,254,223,254,29,255,77,255,143,255,228,255,53,0,122,0,177,0,228,0,33,1,114,1,202,1,7,2,49,2, +105,2,162,2,188,2,179,2,139,2,73,2,242,1,130,1,246,0,90,0,209,255,112,255,40,255,233,254,203,254,220,254, +6,255,41,255,64,255,91,255,125,255,153,255,169,255,193,255,227,255,244,255,233,255,223,255,228,255,239,255,236,255,198,255, +139,255,97,255,76,255,44,255,247,254,209,254,201,254,192,254,165,254,142,254,140,254,145,254,145,254,156,254,197,254,251,254, +43,255,90,255,154,255,234,255,59,0,136,0,209,0,8,1,32,1,31,1,29,1,22,1,243,0,196,0,171,0,169,0, +194,0,225,0,222,0,224,0,29,1,110,1,152,1,146,1,123,1,127,1,162,1,197,1,217,1,216,1,208,1,220,1, +224,1,156,1,14,1,101,0,192,255,40,255,152,254,9,254,137,253,48,253,14,253,32,253,75,253,114,253,152,253,203,253, +6,254,63,254,110,254,152,254,200,254,255,254,56,255,102,255,132,255,148,255,147,255,138,255,148,255,172,255,187,255,194,255, +209,255,233,255,4,0,35,0,73,0,111,0,132,0,133,0,132,0,147,0,157,0,134,0,90,0,70,0,98,0,158,0, +219,0,22,1,106,1,228,1,110,2,213,2,253,2,242,2,195,2,117,2,6,2,119,1,220,0,81,0,241,255,192,255, +143,255,77,255,29,255,4,255,242,254,225,254,201,254,167,254,132,254,100,254,85,254,99,254,123,254,133,254,133,254,146,254, +186,254,239,254,25,255,46,255,55,255,80,255,131,255,178,255,198,255,201,255,214,255,253,255,44,0,74,0,89,0,103,0, +121,0,144,0,159,0,150,0,135,0,137,0,160,0,200,0,227,0,225,0,226,0,245,0,15,1,48,1,62,1,41,1, +7,1,226,0,185,0,139,0,83,0,9,0,170,255,81,255,36,255,33,255,29,255,13,255,14,255,57,255,128,255,200,255, +255,255,33,0,63,0,103,0,135,0,147,0,149,0,143,0,136,0,131,0,111,0,74,0,44,0,31,0,23,0,4,0, +224,255,184,255,165,255,159,255,145,255,129,255,117,255,106,255,102,255,106,255,121,255,141,255,151,255,162,255,199,255,243,255, +5,0,15,0,44,0,82,0,100,0,98,0,92,0,91,0,86,0,62,0,18,0,229,255,200,255,192,255,187,255,176,255, +173,255,189,255,210,255,235,255,8,0,24,0,22,0,16,0,25,0,39,0,32,0,19,0,30,0,63,0,96,0,107,0, +102,0,101,0,110,0,111,0,90,0,44,0,0,0,230,255,210,255,192,255,175,255,163,255,170,255,201,255,237,255,13,0, +36,0,45,0,57,0,73,0,71,0,51,0,20,0,234,255,200,255,177,255,144,255,107,255,91,255,89,255,87,255,82,255, +76,255,80,255,93,255,105,255,114,255,118,255,126,255,155,255,196,255,228,255,255,255,40,0,92,0,138,0,174,0,194,0, +190,0,173,0,161,0,147,0,121,0,90,0,67,0,60,0,62,0,69,0,81,0,91,0,95,0,90,0,78,0,61,0, +45,0,34,0,29,0,28,0,30,0,40,0,57,0,65,0,59,0,42,0,13,0,231,255,200,255,169,255,125,255,84,255, +62,255,51,255,45,255,47,255,59,255,79,255,96,255,110,255,126,255,145,255,169,255,191,255,200,255,202,255,207,255,218,255, +228,255,226,255,216,255,210,255,215,255,226,255,238,255,248,255,3,0,24,0,57,0,94,0,118,0,120,0,117,0,129,0, +144,0,143,0,135,0,127,0,135,0,168,0,194,0,194,0,186,0,190,0,192,0,175,0,149,0,125,0,91,0,47,0, +18,0,254,255,229,255,201,255,180,255,171,255,165,255,150,255,136,255,133,255,135,255,141,255,150,255,155,255,164,255,178,255, +183,255,175,255,171,255,177,255,173,255,155,255,138,255,133,255,134,255,133,255,130,255,135,255,146,255,152,255,159,255,173,255, +185,255,194,255,208,255,236,255,23,0,74,0,116,0,152,0,195,0,239,0,19,1,41,1,40,1,21,1,4,1,239,0, +200,0,149,0,98,0,59,0,40,0,34,0,22,0,5,0,0,0,14,0,37,0,53,0,52,0,40,0,33,0,31,0, +26,0,12,0,240,255,209,255,185,255,167,255,156,255,140,255,113,255,87,255,73,255,71,255,77,255,82,255,72,255,55,255, +47,255,55,255,71,255,79,255,77,255,81,255,110,255,153,255,191,255,221,255,0,0,48,0,100,0,142,0,168,0,182,0, +193,0,203,0,209,0,207,0,196,0,182,0,175,0,178,0,179,0,168,0,147,0,128,0,108,0,80,0,51,0,19,0, +233,255,201,255,197,255,206,255,217,255,235,255,251,255,2,0,10,0,21,0,21,0,4,0,232,255,208,255,199,255,199,255, +196,255,188,255,186,255,193,255,204,255,206,255,190,255,171,255,158,255,143,255,127,255,109,255,88,255,69,255,58,255,55,255, +55,255,55,255,55,255,63,255,86,255,115,255,145,255,179,255,213,255,244,255,23,0,59,0,92,0,119,0,140,0,150,0, +156,0,164,0,164,0,155,0,149,0,146,0,140,0,139,0,146,0,153,0,159,0,168,0,178,0,188,0,194,0,189,0, +175,0,162,0,156,0,147,0,124,0,94,0,66,0,39,0,9,0,234,255,195,255,142,255,96,255,65,255,37,255,6,255, +239,254,227,254,226,254,235,254,248,254,9,255,31,255,62,255,94,255,118,255,135,255,156,255,183,255,206,255,223,255,235,255, +244,255,253,255,11,0,29,0,45,0,56,0,64,0,73,0,85,0,99,0,110,0,112,0,109,0,108,0,112,0,120,0, +127,0,131,0,134,0,139,0,145,0,149,0,146,0,136,0,128,0,122,0,107,0,88,0,70,0,52,0,39,0,32,0, +20,0,5,0,250,255,242,255,233,255,228,255,222,255,211,255,198,255,190,255,184,255,180,255,174,255,168,255,157,255,144,255, +137,255,133,255,124,255,116,255,114,255,113,255,114,255,125,255,147,255,169,255,189,255,216,255,250,255,23,0,44,0,65,0, +87,0,113,0,136,0,150,0,157,0,166,0,176,0,181,0,178,0,166,0,151,0,133,0,109,0,81,0,51,0,19,0, +243,255,218,255,202,255,189,255,175,255,165,255,165,255,167,255,165,255,165,255,165,255,159,255,152,255,147,255,142,255,137,255, +135,255,137,255,141,255,150,255,160,255,169,255,180,255,194,255,210,255,223,255,235,255,252,255,17,0,37,0,61,0,88,0, +113,0,135,0,155,0,167,0,174,0,174,0,164,0,148,0,134,0,120,0,109,0,100,0,89,0,77,0,70,0,68,0, +62,0,50,0,35,0,19,0,3,0,245,255,230,255,215,255,205,255,200,255,195,255,190,255,186,255,179,255,168,255,157,255, +146,255,133,255,117,255,101,255,89,255,82,255,81,255,86,255,92,255,100,255,119,255,143,255,162,255,180,255,201,255,221,255, +242,255,9,0,31,0,50,0,68,0,81,0,91,0,100,0,104,0,101,0,94,0,86,0,78,0,73,0,73,0,75,0, +80,0,92,0,109,0,121,0,129,0,136,0,142,0,144,0,140,0,130,0,117,0,102,0,85,0,67,0,48,0,28,0, +9,0,243,255,220,255,197,255,173,255,149,255,133,255,121,255,108,255,97,255,94,255,99,255,109,255,117,255,124,255,131,255, +139,255,150,255,163,255,169,255,173,255,176,255,182,255,192,255,203,255,214,255,230,255,247,255,5,0,18,0,28,0,37,0, +46,0,53,0,51,0,47,0,47,0,53,0,63,0,71,0,79,0,91,0,103,0,112,0,120,0,125,0,123,0,115,0, +108,0,103,0,94,0,80,0,67,0,55,0,42,0,30,0,16,0,253,255,239,255,229,255,217,255,207,255,201,255,197,255, +197,255,201,255,207,255,211,255,214,255,214,255,210,255,206,255,201,255,189,255,173,255,161,255,158,255,160,255,162,255,168,255, +180,255,196,255,212,255,229,255,246,255,7,0,25,0,42,0,52,0,61,0,73,0,83,0,92,0,97,0,96,0,94,0, +92,0,87,0,75,0,58,0,41,0,26,0,13,0,6,0,1,0,252,255,250,255,254,255,3,0,6,0,2,0,247,255, +238,255,230,255,219,255,209,255,203,255,197,255,198,255,205,255,211,255,217,255,222,255,221,255,222,255,224,255,220,255,214,255, +209,255,209,255,215,255,223,255,234,255,251,255,14,0,34,0,56,0,73,0,82,0,86,0,87,0,86,0,83,0,76,0, +69,0,63,0,55,0,51,0,47,0,39,0,31,0,24,0,13,0,1,0,243,255,230,255,226,255,226,255,226,255,228,255, +233,255,240,255,249,255,0,0,0,0,253,255,245,255,236,255,225,255,212,255,199,255,187,255,177,255,171,255,168,255,165,255, +162,255,161,255,162,255,166,255,169,255,174,255,185,255,200,255,217,255,234,255,250,255,14,0,37,0,59,0,76,0,88,0, +95,0,101,0,105,0,104,0,100,0,94,0,88,0,84,0,82,0,76,0,71,0,68,0,62,0,54,0,44,0,33,0, +25,0,18,0,14,0,10,0,2,0,254,255,255,255,255,255,251,255,243,255,231,255,220,255,210,255,198,255,188,255,179,255, +167,255,159,255,156,255,158,255,162,255,166,255,172,255,179,255,186,255,192,255,201,255,209,255,216,255,225,255,238,255,250,255, +3,0,12,0,22,0,31,0,35,0,38,0,41,0,40,0,40,0,40,0,38,0,39,0,41,0,42,0,46,0,51,0, +54,0,56,0,55,0,51,0,48,0,44,0,37,0,31,0,26,0,21,0,20,0,20,0,19,0,19,0,18,0,15,0, +9,0,3,0,252,255,244,255,234,255,225,255,218,255,211,255,207,255,205,255,203,255,202,255,201,255,201,255,204,255,206,255, +208,255,209,255,209,255,213,255,219,255,225,255,233,255,243,255,254,255,11,0,25,0,37,0,44,0,49,0,53,0,59,0, +61,0,57,0,55,0,53,0,50,0,48,0,45,0,40,0,36,0,32,0,24,0,17,0,14,0,10,0,2,0,250,255, +247,255,249,255,247,255,245,255,247,255,248,255,245,255,242,255,236,255,230,255,223,255,215,255,207,255,202,255,198,255,197,255, +198,255,200,255,204,255,207,255,209,255,215,255,221,255,224,255,225,255,229,255,235,255,245,255,253,255,5,0,12,0,19,0, +27,0,34,0,36,0,35,0,35,0,35,0,34,0,32,0,32,0,37,0,44,0,48,0,55,0,63,0,67,0,69,0, +70,0,68,0,63,0,56,0,48,0,40,0,33,0,23,0,15,0,10,0,4,0,251,255,241,255,230,255,218,255,209,255, +199,255,186,255,176,255,171,255,170,255,175,255,181,255,185,255,191,255,201,255,209,255,218,255,227,255,234,255,241,255,248,255, +0,0,8,0,15,0,21,0,27,0,31,0,28,0,26,0,21,0,13,0,8,0,8,0,7,0,7,0,9,0,16,0, +26,0,34,0,39,0,42,0,45,0,47,0,47,0,41,0,35,0,33,0,30,0,23,0,17,0,13,0,12,0,8,0, +255,255,247,255,242,255,235,255,227,255,221,255,218,255,219,255,217,255,218,255,224,255,231,255,236,255,240,255,239,255,237,255, +236,255,236,255,235,255,234,255,233,255,234,255,237,255,240,255,245,255,250,255,252,255,254,255,0,0,1,0,2,0,4,0, +6,0,6,0,9,0,15,0,21,0,25,0,28,0,33,0,35,0,32,0,29,0,26,0,19,0,11,0,6,0,255,255, +251,255,248,255,246,255,246,255,249,255,252,255,253,255,254,255,253,255,252,255,251,255,249,255,247,255,246,255,246,255,248,255, +251,255,252,255,254,255,3,0,7,0,7,0,4,0,0,0,251,255,248,255,244,255,241,255,241,255,243,255,245,255,249,255, +254,255,5,0,10,0,11,0,11,0,11,0,9,0,7,0,7,0,7,0,7,0,10,0,16,0,20,0,25,0,28,0, +26,0,23,0,19,0,12,0,4,0,253,255,247,255,244,255,244,255,245,255,247,255,249,255,251,255,254,255,255,255,252,255, +246,255,241,255,236,255,232,255,230,255,229,255,229,255,232,255,238,255,242,255,247,255,251,255,255,255,0,0,0,0,254,255, +253,255,250,255,248,255,248,255,250,255,252,255,0,0,5,0,8,0,11,0,15,0,18,0,20,0,22,0,22,0,21,0, +21,0,22,0,21,0,19,0,18,0,18,0,18,0,17,0,16,0,14,0,11,0,8,0,6,0,4,0,1,0,253,255, +250,255,248,255,247,255,244,255,242,255,242,255,240,255,238,255,238,255,238,255,239,255,239,255,238,255,237,255,239,255,242,255, +242,255,242,255,243,255,243,255,243,255,243,255,241,255,240,255,242,255,244,255,244,255,244,255,245,255,248,255,252,255,254,255, +1,0,5,0,11,0,17,0,22,0,26,0,31,0,38,0,41,0,40,0,39,0,38,0,34,0,28,0,23,0,18,0, +12,0,8,0,6,0,4,0,1,0,1,0,0,0,254,255,251,255,248,255,244,255,242,255,241,255,238,255,235,255,233,255, +233,255,235,255,237,255,240,255,242,255,243,255,243,255,244,255,245,255,244,255,244,255,245,255,245,255,247,255,248,255,251,255, +255,255,1,0,4,0,7,0,8,0,11,0,14,0,15,0,15,0,15,0,16,0,15,0,13,0,10,0,9,0,6,0, +2,0,255,255,254,255,252,255,249,255,248,255,247,255,248,255,249,255,251,255,253,255,255,255,0,0,3,0,3,0,3,0, +3,0,2,0,1,0,0,0,0,0,253,255,251,255,251,255,249,255,247,255,245,255,244,255,243,255,241,255,238,255,238,255, +239,255,240,255,242,255,246,255,251,255,0,0,4,0,9,0,13,0,17,0,19,0,20,0,22,0,23,0,23,0,22,0, +21,0,21,0,20,0,18,0,16,0,15,0,12,0,8,0,6,0,2,0,255,255,253,255,251,255,250,255,249,255,248,255, +249,255,251,255,253,255,252,255,250,255,248,255,245,255,243,255,242,255,240,255,239,255,239,255,239,255,242,255,244,255,245,255, +245,255,248,255,250,255,250,255,250,255,250,255,250,255,252,255,253,255,253,255,255,255,1,0,3,0,6,0,7,0,8,0, +10,0,11,0,11,0,11,0,12,0,12,0,13,0,14,0,14,0,16,0,17,0,16,0,16,0,14,0,13,0,11,0, +8,0,3,0,255,255,253,255,253,255,251,255,247,255,245,255,246,255,245,255,245,255,246,255,245,255,244,255,245,255,246,255, +244,255,244,255,245,255,245,255,246,255,248,255,248,255,249,255,249,255,249,255,250,255,252,255,252,255,252,255,254,255,1,0, +2,0,3,0,6,0,7,0,8,0,8,0,9,0,10,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0, +10,0,10,0,10,0,10,0,9,0,8,0,6,0,4,0,3,0,2,0,0,0,254,255,255,255,255,255,255,255,255,255, +254,255,254,255,253,255,252,255,250,255,250,255,249,255,248,255,248,255,249,255,250,255,251,255,251,255,251,255,252,255,251,255, +250,255,250,255,248,255,248,255,248,255,248,255,250,255,251,255,251,255,253,255,255,255,0,0,0,0,1,0,2,0,2,0, +2,0,2,0,2,0,3,0,4,0,6,0,7,0,8,0,6,0,6,0,7,0,6,0,5,0,4,0,4,0,3,0, +2,0,0,0,255,255,254,255,255,255,255,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255, +253,255,253,255,254,255,254,255,255,255,255,255,255,255,1,0,3,0,3,0,4,0,5,0,5,0,6,0,7,0,7,0, +6,0,5,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,253,255, +253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255,254,255,253,255,252,255,253,255,252,255, +252,255,252,255,253,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,3,0,3,0,2,0, +1,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,3,0,2,0,2,0,2,0,2,0, +3,0,4,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,2,0,1,0,255,255,255,255,254,255,253,255,251,255, +252,255,252,255,251,255,251,255,252,255,252,255,251,255,251,255,251,255,250,255,250,255,250,255,251,255,252,255,252,255,253,255, +254,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0, +1,0,3,0,3,0,3,0,4,0,5,0,4,0,4,0,4,0,3,0,3,0,1,0,0,0,0,0,255,255,253,255, +252,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0, +0,0,255,255,255,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,252,255,252,255,252,255,253,255, +254,255,255,255,1,0,1,0,1,0,2,0,4,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,2,0, +3,0,2,0,1,0,1,0,0,0,254,255,255,255,254,255,253,255,253,255,253,255,252,255,253,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,0,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,254,255,253,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,254,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/chickenhurt2.pcm b/src/client/sound/data/chickenhurt2.pcm new file mode 100755 index 0000000..b076617 --- /dev/null +++ b/src/client/sound/data/chickenhurt2.pcm @@ -0,0 +1,1037 @@ +unsigned char PCM_chickenhurt2[33092] = { +1,0,0,0,2,0,0,0,68,172,0,0,154,64,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,3,0,2,0,1,0, +2,0,1,0,255,255,255,255,0,0,0,0,1,0,2,0,3,0,4,0,5,0,5,0,4,0,3,0,2,0,1,0, +255,255,252,255,251,255,250,255,250,255,248,255,247,255,246,255,245,255,243,255,242,255,240,255,240,255,241,255,241,255,242,255, +244,255,246,255,247,255,250,255,253,255,254,255,254,255,255,255,1,0,0,0,0,0,3,0,5,0,8,0,11,0,13,0, +16,0,20,0,21,0,22,0,23,0,22,0,22,0,20,0,18,0,17,0,17,0,15,0,13,0,11,0,7,0,3,0, +255,255,250,255,244,255,241,255,241,255,242,255,242,255,244,255,248,255,252,255,255,255,2,0,3,0,1,0,254,255,249,255, +245,255,242,255,238,255,237,255,238,255,240,255,242,255,245,255,247,255,249,255,251,255,251,255,251,255,252,255,252,255,253,255, +0,0,3,0,6,0,10,0,12,0,13,0,14,0,13,0,12,0,12,0,11,0,9,0,8,0,5,0,1,0,255,255, +253,255,250,255,250,255,251,255,251,255,251,255,252,255,252,255,250,255,249,255,249,255,249,255,249,255,251,255,254,255,1,0, +4,0,6,0,6,0,6,0,4,0,0,0,252,255,248,255,246,255,245,255,244,255,247,255,251,255,254,255,2,0,7,0, +9,0,14,0,19,0,21,0,22,0,21,0,20,0,19,0,17,0,13,0,10,0,7,0,1,0,253,255,249,255,245,255, +241,255,237,255,235,255,234,255,235,255,238,255,241,255,244,255,247,255,250,255,253,255,253,255,253,255,252,255,250,255,247,255, +244,255,239,255,235,255,233,255,231,255,229,255,230,255,231,255,234,255,239,255,244,255,251,255,2,0,7,0,13,0,20,0, +25,0,29,0,29,0,29,0,29,0,26,0,23,0,20,0,17,0,15,0,14,0,14,0,16,0,19,0,23,0,27,0, +31,0,32,0,34,0,35,0,33,0,32,0,29,0,26,0,23,0,18,0,13,0,8,0,1,0,252,255,250,255,246,255, +242,255,241,255,239,255,238,255,238,255,238,255,238,255,240,255,240,255,239,255,239,255,236,255,233,255,231,255,228,255,225,255, +223,255,221,255,222,255,223,255,223,255,224,255,226,255,230,255,236,255,241,255,247,255,251,255,255,255,5,0,11,0,15,0, +18,0,21,0,23,0,24,0,25,0,24,0,23,0,22,0,20,0,18,0,18,0,19,0,21,0,23,0,25,0,27,0, +27,0,26,0,25,0,22,0,16,0,9,0,4,0,1,0,253,255,250,255,248,255,244,255,238,255,231,255,223,255,214,255, +204,255,195,255,188,255,181,255,176,255,175,255,175,255,176,255,179,255,183,255,187,255,191,255,194,255,194,255,195,255,198,255, +204,255,210,255,216,255,225,255,233,255,239,255,249,255,1,0,7,0,15,0,22,0,29,0,38,0,48,0,58,0,71,0, +82,0,93,0,103,0,111,0,116,0,120,0,122,0,124,0,126,0,129,0,133,0,136,0,139,0,141,0,140,0,138,0, +135,0,128,0,119,0,109,0,96,0,84,0,74,0,63,0,53,0,42,0,29,0,14,0,254,255,235,255,217,255,199,255, +181,255,164,255,151,255,140,255,132,255,125,255,117,255,109,255,102,255,96,255,89,255,83,255,81,255,80,255,79,255,82,255, +87,255,92,255,99,255,104,255,112,255,122,255,132,255,142,255,153,255,164,255,175,255,189,255,205,255,224,255,245,255,11,0, +34,0,57,0,80,0,101,0,118,0,132,0,140,0,144,0,146,0,145,0,142,0,137,0,133,0,128,0,125,0,122,0, +117,0,114,0,111,0,105,0,99,0,89,0,77,0,64,0,49,0,32,0,17,0,3,0,247,255,237,255,227,255,219,255, +212,255,206,255,199,255,193,255,189,255,184,255,179,255,176,255,176,255,176,255,179,255,185,255,192,255,199,255,207,255,216,255, +227,255,238,255,248,255,3,0,14,0,26,0,39,0,53,0,67,0,83,0,98,0,111,0,123,0,132,0,137,0,140,0, +142,0,143,0,145,0,144,0,142,0,138,0,131,0,123,0,113,0,100,0,86,0,70,0,50,0,27,0,5,0,239,255, +220,255,204,255,189,255,176,255,164,255,153,255,144,255,137,255,129,255,120,255,109,255,99,255,87,255,73,255,62,255,53,255, +45,255,40,255,35,255,31,255,31,255,32,255,32,255,35,255,44,255,54,255,67,255,82,255,100,255,121,255,146,255,176,255, +208,255,239,255,15,0,46,0,72,0,94,0,115,0,131,0,144,0,157,0,169,0,180,0,191,0,200,0,205,0,205,0, +204,0,199,0,194,0,192,0,188,0,186,0,188,0,190,0,189,0,187,0,182,0,171,0,158,0,142,0,123,0,105,0, +86,0,66,0,44,0,23,0,5,0,244,255,230,255,216,255,201,255,187,255,176,255,165,255,152,255,139,255,126,255,113,255, +101,255,90,255,84,255,79,255,75,255,75,255,77,255,79,255,83,255,90,255,99,255,111,255,125,255,140,255,158,255,173,255, +185,255,193,255,199,255,203,255,205,255,209,255,216,255,225,255,236,255,251,255,10,0,24,0,41,0,58,0,73,0,88,0, +102,0,114,0,126,0,138,0,148,0,158,0,167,0,173,0,177,0,180,0,177,0,167,0,153,0,136,0,115,0,94,0, +71,0,50,0,34,0,20,0,7,0,253,255,243,255,231,255,222,255,215,255,207,255,200,255,192,255,183,255,175,255,169,255, +166,255,165,255,166,255,166,255,162,255,155,255,149,255,144,255,137,255,132,255,129,255,125,255,123,255,126,255,131,255,140,255, +152,255,168,255,185,255,201,255,217,255,234,255,251,255,14,0,36,0,60,0,86,0,111,0,135,0,157,0,175,0,186,0, +196,0,207,0,214,0,218,0,219,0,215,0,207,0,194,0,178,0,162,0,146,0,129,0,113,0,97,0,81,0,69,0, +59,0,53,0,53,0,54,0,52,0,46,0,32,0,10,0,241,255,214,255,184,255,151,255,118,255,84,255,50,255,18,255, +246,254,221,254,199,254,182,254,170,254,164,254,164,254,173,254,190,254,212,254,240,254,15,255,45,255,72,255,95,255,116,255, +140,255,163,255,187,255,214,255,245,255,20,0,48,0,74,0,99,0,125,0,152,0,179,0,205,0,228,0,250,0,12,1, +26,1,38,1,47,1,54,1,60,1,67,1,77,1,91,1,105,1,115,1,124,1,129,1,127,1,118,1,102,1,77,1, +43,1,254,0,201,0,146,0,88,0,25,0,220,255,166,255,118,255,75,255,36,255,3,255,230,254,202,254,174,254,149,254, +128,254,111,254,98,254,90,254,91,254,101,254,118,254,144,254,175,254,206,254,240,254,20,255,54,255,88,255,126,255,165,255, +209,255,254,255,42,0,82,0,118,0,149,0,174,0,197,0,222,0,250,0,24,1,57,1,93,1,133,1,179,1,226,1, +10,2,33,2,38,2,22,2,244,1,196,1,139,1,74,1,4,1,190,0,121,0,55,0,247,255,184,255,120,255,49,255, +230,254,154,254,79,254,7,254,197,253,135,253,81,253,38,253,5,253,236,252,219,252,212,252,218,252,231,252,252,252,26,253, +65,253,110,253,164,253,224,253,29,254,91,254,153,254,212,254,15,255,77,255,142,255,212,255,31,0,109,0,195,0,31,1, +125,1,223,1,68,2,165,2,254,2,77,3,143,3,194,3,227,3,245,3,246,3,230,3,203,3,169,3,127,3,79,3, +27,3,224,2,159,2,92,2,21,2,200,1,118,1,29,1,190,0,95,0,1,0,164,255,75,255,245,254,162,254,84,254, +11,254,205,253,155,253,120,253,98,253,86,253,87,253,96,253,107,253,119,253,128,253,137,253,152,253,174,253,202,253,242,253, +38,254,103,254,181,254,12,255,104,255,199,255,37,0,124,0,202,0,19,1,84,1,136,1,180,1,216,1,242,1,5,2, +19,2,23,2,21,2,12,2,252,1,232,1,205,1,170,1,131,1,86,1,31,1,225,0,157,0,84,0,6,0,184,255, +108,255,33,255,213,254,140,254,71,254,7,254,208,253,163,253,128,253,106,253,91,253,82,253,80,253,82,253,87,253,100,253, +117,253,139,253,168,253,199,253,237,253,32,254,92,254,164,254,246,254,74,255,161,255,250,255,84,0,174,0,4,1,86,1, +167,1,247,1,69,2,143,2,214,2,23,3,78,3,120,3,151,3,171,3,181,3,181,3,174,3,161,3,139,3,109,3, +75,3,33,3,235,2,173,2,103,2,27,2,199,1,114,1,32,1,207,0,132,0,60,0,243,255,168,255,92,255,15,255, +192,254,115,254,41,254,228,253,169,253,118,253,76,253,45,253,22,253,5,253,253,252,254,252,3,253,14,253,28,253,46,253, +70,253,99,253,134,253,175,253,225,253,28,254,93,254,159,254,229,254,43,255,108,255,172,255,235,255,35,0,85,0,129,0, +163,0,188,0,209,0,227,0,242,0,253,0,3,1,7,1,10,1,10,1,10,1,16,1,22,1,26,1,26,1,22,1, +9,1,240,0,208,0,171,0,132,0,92,0,56,0,27,0,6,0,248,255,240,255,240,255,245,255,252,255,3,0,6,0, +3,0,252,255,243,255,236,255,234,255,237,255,244,255,1,0,17,0,34,0,49,0,63,0,76,0,90,0,103,0,113,0, +126,0,139,0,148,0,156,0,162,0,165,0,170,0,175,0,179,0,182,0,185,0,190,0,198,0,205,0,210,0,212,0, +204,0,182,0,149,0,107,0,60,0,6,0,208,255,156,255,111,255,78,255,55,255,45,255,47,255,49,255,50,255,47,255, +29,255,255,254,217,254,173,254,128,254,89,254,59,254,41,254,38,254,50,254,73,254,105,254,147,254,190,254,229,254,8,255, +36,255,59,255,83,255,109,255,137,255,165,255,194,255,226,255,4,0,37,0,74,0,111,0,142,0,170,0,199,0,229,0, +3,1,32,1,62,1,91,1,115,1,131,1,144,1,154,1,154,1,149,1,143,1,136,1,128,1,115,1,97,1,76,1, +46,1,7,1,217,0,165,0,113,0,61,0,8,0,218,255,177,255,142,255,112,255,86,255,64,255,45,255,24,255,4,255, +241,254,222,254,210,254,204,254,204,254,213,254,227,254,245,254,13,255,37,255,58,255,80,255,101,255,121,255,135,255,146,255, +157,255,173,255,199,255,235,255,20,0,68,0,121,0,174,0,229,0,27,1,81,1,130,1,169,1,201,1,226,1,243,1, +246,1,238,1,220,1,192,1,155,1,114,1,70,1,29,1,247,0,209,0,170,0,127,0,81,0,32,0,231,255,170,255, +107,255,38,255,223,254,155,254,90,254,32,254,240,253,203,253,178,253,159,253,145,253,137,253,132,253,130,253,133,253,138,253, +151,253,171,253,195,253,226,253,9,254,55,254,109,254,168,254,230,254,39,255,110,255,188,255,16,0,102,0,185,0,6,1, +74,1,132,1,183,1,229,1,11,2,42,2,69,2,90,2,109,2,127,2,137,2,140,2,136,2,123,2,104,2,77,2, +47,2,15,2,237,1,202,1,167,1,127,1,80,1,25,1,215,0,143,0,68,0,247,255,171,255,98,255,29,255,224,254, +178,254,142,254,115,254,96,254,78,254,61,254,46,254,33,254,22,254,18,254,19,254,32,254,61,254,101,254,152,254,211,254, +19,255,84,255,146,255,206,255,5,0,53,0,97,0,136,0,171,0,207,0,244,0,21,1,52,1,79,1,99,1,114,1, +121,1,120,1,114,1,105,1,93,1,71,1,46,1,22,1,250,0,221,0,185,0,144,0,102,0,55,0,0,0,198,255, +140,255,84,255,30,255,237,254,197,254,160,254,123,254,89,254,57,254,26,254,255,253,234,253,221,253,215,253,216,253,226,253, +248,253,21,254,52,254,87,254,127,254,172,254,222,254,20,255,70,255,118,255,165,255,207,255,250,255,36,0,74,0,113,0, +152,0,189,0,225,0,4,1,39,1,72,1,100,1,127,1,150,1,168,1,184,1,194,1,199,1,205,1,205,1,200,1, +192,1,180,1,166,1,152,1,133,1,108,1,78,1,44,1,5,1,216,0,169,0,119,0,71,0,25,0,236,255,198,255, +169,255,143,255,124,255,113,255,106,255,101,255,98,255,98,255,99,255,99,255,100,255,104,255,110,255,118,255,128,255,142,255, +160,255,177,255,191,255,202,255,211,255,216,255,215,255,214,255,212,255,209,255,211,255,215,255,218,255,224,255,231,255,237,255, +241,255,243,255,244,255,242,255,239,255,239,255,238,255,235,255,232,255,222,255,210,255,196,255,177,255,155,255,131,255,103,255, +80,255,60,255,41,255,29,255,21,255,14,255,12,255,15,255,23,255,37,255,58,255,82,255,105,255,126,255,143,255,155,255, +167,255,179,255,187,255,195,255,204,255,220,255,242,255,12,0,43,0,77,0,109,0,137,0,156,0,167,0,172,0,173,0, +170,0,169,0,174,0,183,0,193,0,204,0,219,0,234,0,248,0,8,1,23,1,32,1,36,1,38,1,40,1,40,1, +38,1,32,1,17,1,255,0,233,0,211,0,192,0,172,0,149,0,123,0,93,0,67,0,45,0,24,0,6,0,244,255, +224,255,205,255,186,255,166,255,145,255,126,255,114,255,106,255,97,255,96,255,102,255,107,255,109,255,108,255,108,255,110,255, +111,255,112,255,112,255,111,255,110,255,109,255,108,255,107,255,104,255,102,255,100,255,102,255,109,255,117,255,127,255,139,255, +152,255,168,255,184,255,196,255,202,255,203,255,203,255,205,255,211,255,221,255,230,255,236,255,242,255,245,255,247,255,249,255, +247,255,241,255,229,255,214,255,199,255,192,255,193,255,200,255,213,255,235,255,2,0,24,0,46,0,63,0,70,0,72,0, +71,0,67,0,62,0,54,0,49,0,42,0,33,0,31,0,30,0,29,0,30,0,25,0,18,0,14,0,10,0,10,0, +14,0,20,0,27,0,31,0,31,0,27,0,21,0,16,0,14,0,12,0,11,0,15,0,20,0,24,0,27,0,31,0, +33,0,30,0,21,0,7,0,246,255,231,255,218,255,212,255,215,255,225,255,239,255,1,0,23,0,45,0,63,0,78,0, +90,0,97,0,99,0,94,0,85,0,78,0,71,0,63,0,56,0,50,0,50,0,52,0,52,0,50,0,45,0,38,0, +29,0,19,0,15,0,15,0,19,0,28,0,38,0,50,0,62,0,66,0,66,0,66,0,63,0,60,0,56,0,50,0, +45,0,35,0,19,0,4,0,241,255,219,255,202,255,188,255,175,255,162,255,146,255,128,255,110,255,93,255,75,255,59,255, +49,255,41,255,34,255,33,255,40,255,52,255,68,255,85,255,103,255,120,255,137,255,159,255,183,255,204,255,224,255,244,255, +5,0,17,0,26,0,36,0,44,0,56,0,72,0,83,0,92,0,101,0,107,0,112,0,120,0,128,0,133,0,138,0, +144,0,147,0,147,0,144,0,136,0,128,0,123,0,115,0,103,0,91,0,79,0,73,0,70,0,63,0,55,0,44,0, +32,0,20,0,7,0,250,255,236,255,218,255,199,255,182,255,166,255,158,255,154,255,155,255,163,255,174,255,187,255,202,255, +219,255,238,255,0,0,17,0,30,0,40,0,48,0,56,0,64,0,74,0,86,0,96,0,105,0,112,0,119,0,131,0, +146,0,163,0,177,0,186,0,185,0,176,0,165,0,154,0,139,0,124,0,108,0,89,0,67,0,40,0,13,0,246,255, +223,255,200,255,175,255,150,255,126,255,102,255,81,255,63,255,45,255,27,255,9,255,249,254,235,254,223,254,216,254,214,254, +214,254,219,254,231,254,246,254,11,255,35,255,60,255,84,255,103,255,115,255,127,255,136,255,145,255,160,255,178,255,200,255, +226,255,254,255,30,0,64,0,97,0,131,0,165,0,199,0,231,0,255,0,17,1,32,1,41,1,45,1,45,1,40,1, +30,1,16,1,251,0,230,0,216,0,204,0,190,0,173,0,152,0,128,0,104,0,77,0,48,0,15,0,234,255,192,255, +145,255,95,255,48,255,7,255,229,254,204,254,189,254,184,254,189,254,202,254,224,254,249,254,19,255,47,255,71,255,88,255, +100,255,109,255,120,255,131,255,146,255,166,255,188,255,217,255,251,255,29,0,64,0,101,0,134,0,165,0,187,0,204,0, +222,0,238,0,248,0,255,0,2,1,3,1,4,1,1,1,253,0,246,0,236,0,226,0,216,0,205,0,195,0,186,0, +171,0,148,0,118,0,84,0,44,0,252,255,201,255,153,255,111,255,74,255,46,255,27,255,12,255,1,255,250,254,248,254, +249,254,248,254,250,254,2,255,11,255,26,255,49,255,78,255,113,255,150,255,183,255,214,255,239,255,4,0,20,0,36,0, +54,0,77,0,102,0,127,0,153,0,180,0,204,0,223,0,239,0,248,0,252,0,1,1,3,1,1,1,254,0,250,0, +247,0,244,0,235,0,220,0,200,0,174,0,143,0,109,0,74,0,41,0,9,0,233,255,205,255,182,255,161,255,134,255, +101,255,68,255,34,255,252,254,215,254,181,254,152,254,129,254,113,254,105,254,104,254,106,254,112,254,123,254,140,254,161,254, +190,254,224,254,4,255,42,255,82,255,122,255,162,255,202,255,239,255,17,0,50,0,83,0,117,0,147,0,175,0,204,0, +233,0,5,1,32,1,57,1,84,1,110,1,132,1,145,1,149,1,148,1,141,1,127,1,111,1,92,1,67,1,38,1, +9,1,238,0,211,0,181,0,154,0,129,0,103,0,75,0,42,0,2,0,219,255,183,255,147,255,112,255,75,255,36,255, +3,255,234,254,215,254,199,254,191,254,189,254,184,254,183,254,188,254,195,254,205,254,218,254,232,254,251,254,18,255,39,255, +64,255,93,255,119,255,147,255,179,255,212,255,243,255,18,0,46,0,69,0,89,0,107,0,122,0,141,0,160,0,178,0, +196,0,212,0,224,0,231,0,232,0,226,0,217,0,206,0,192,0,176,0,160,0,144,0,127,0,111,0,93,0,76,0, +58,0,38,0,21,0,5,0,243,255,227,255,212,255,194,255,175,255,155,255,134,255,115,255,98,255,83,255,69,255,56,255, +49,255,44,255,42,255,51,255,65,255,83,255,106,255,129,255,151,255,176,255,200,255,220,255,234,255,245,255,2,0,15,0, +27,0,43,0,57,0,69,0,80,0,91,0,97,0,101,0,105,0,111,0,119,0,129,0,137,0,146,0,154,0,159,0, +162,0,161,0,156,0,149,0,138,0,124,0,110,0,96,0,80,0,66,0,53,0,40,0,28,0,17,0,6,0,252,255, +240,255,226,255,209,255,191,255,175,255,160,255,149,255,141,255,137,255,134,255,132,255,133,255,136,255,137,255,139,255,144,255, +150,255,158,255,172,255,191,255,212,255,230,255,250,255,10,0,19,0,29,0,34,0,32,0,31,0,29,0,29,0,31,0, +37,0,48,0,61,0,76,0,95,0,115,0,133,0,145,0,145,0,139,0,132,0,123,0,110,0,98,0,89,0,79,0, +68,0,60,0,52,0,44,0,36,0,24,0,11,0,253,255,237,255,223,255,210,255,197,255,188,255,177,255,165,255,157,255, +150,255,143,255,139,255,135,255,127,255,115,255,107,255,107,255,111,255,118,255,127,255,134,255,142,255,152,255,161,255,171,255, +181,255,193,255,208,255,224,255,239,255,250,255,5,0,21,0,36,0,52,0,64,0,66,0,67,0,71,0,71,0,70,0, +71,0,72,0,72,0,68,0,64,0,61,0,55,0,53,0,54,0,53,0,49,0,41,0,31,0,22,0,17,0,15,0, +14,0,10,0,4,0,254,255,247,255,242,255,239,255,238,255,235,255,230,255,228,255,226,255,225,255,227,255,229,255,236,255, +243,255,246,255,246,255,247,255,253,255,7,0,11,0,18,0,31,0,43,0,53,0,59,0,63,0,65,0,65,0,62,0, +57,0,45,0,34,0,26,0,19,0,15,0,12,0,5,0,251,255,242,255,234,255,223,255,212,255,204,255,199,255,199,255, +203,255,205,255,210,255,219,255,227,255,236,255,242,255,243,255,245,255,246,255,248,255,251,255,251,255,251,255,254,255,1,0, +4,0,5,0,0,0,249,255,243,255,241,255,242,255,244,255,248,255,253,255,3,0,11,0,17,0,22,0,26,0,28,0, +29,0,27,0,23,0,17,0,9,0,6,0,9,0,15,0,21,0,21,0,16,0,13,0,7,0,252,255,238,255,226,255, +221,255,216,255,210,255,208,255,210,255,212,255,214,255,215,255,218,255,220,255,218,255,219,255,220,255,218,255,219,255,225,255, +237,255,251,255,6,0,16,0,25,0,28,0,28,0,28,0,28,0,27,0,22,0,19,0,17,0,16,0,19,0,21,0, +20,0,22,0,22,0,18,0,14,0,15,0,23,0,32,0,40,0,48,0,56,0,63,0,70,0,72,0,69,0,58,0, +43,0,30,0,18,0,10,0,6,0,2,0,255,255,252,255,247,255,242,255,239,255,240,255,241,255,241,255,243,255,242,255, +236,255,229,255,222,255,216,255,211,255,201,255,195,255,194,255,195,255,200,255,208,255,215,255,222,255,229,255,238,255,248,255, +1,0,6,0,7,0,6,0,4,0,255,255,253,255,255,255,253,255,251,255,250,255,252,255,6,0,19,0,28,0,32,0, +32,0,32,0,33,0,35,0,39,0,41,0,37,0,34,0,33,0,36,0,38,0,35,0,29,0,21,0,16,0,12,0, +8,0,9,0,12,0,10,0,6,0,255,255,251,255,251,255,248,255,245,255,241,255,232,255,223,255,222,255,223,255,225,255, +225,255,220,255,214,255,205,255,198,255,195,255,197,255,201,255,207,255,213,255,220,255,226,255,233,255,240,255,247,255,2,0, +13,0,21,0,26,0,26,0,27,0,32,0,36,0,36,0,31,0,22,0,16,0,8,0,0,0,250,255,247,255,249,255, +253,255,0,0,4,0,7,0,7,0,6,0,4,0,2,0,253,255,243,255,233,255,224,255,215,255,210,255,209,255,211,255, +217,255,232,255,254,255,17,0,32,0,45,0,58,0,73,0,86,0,92,0,94,0,90,0,82,0,75,0,68,0,60,0, +51,0,40,0,29,0,20,0,15,0,15,0,14,0,10,0,7,0,2,0,0,0,1,0,3,0,6,0,4,0,250,255, +243,255,239,255,234,255,228,255,225,255,224,255,219,255,215,255,214,255,215,255,216,255,213,255,212,255,215,255,214,255,209,255, +204,255,196,255,188,255,185,255,186,255,189,255,192,255,191,255,189,255,188,255,189,255,199,255,211,255,218,255,223,255,228,255, +235,255,245,255,0,0,11,0,23,0,32,0,34,0,33,0,33,0,33,0,34,0,39,0,46,0,54,0,57,0,56,0, +57,0,60,0,61,0,59,0,56,0,53,0,53,0,54,0,56,0,53,0,47,0,44,0,38,0,29,0,21,0,13,0, +7,0,3,0,253,255,243,255,228,255,212,255,203,255,197,255,191,255,187,255,184,255,179,255,179,255,188,255,203,255,219,255, +238,255,254,255,4,0,3,0,1,0,255,255,255,255,254,255,253,255,253,255,251,255,253,255,254,255,0,0,5,0,7,0, +5,0,4,0,4,0,6,0,11,0,17,0,23,0,24,0,22,0,25,0,32,0,39,0,42,0,42,0,42,0,45,0, +51,0,58,0,56,0,44,0,24,0,1,0,241,255,234,255,234,255,236,255,240,255,248,255,2,0,14,0,32,0,47,0, +52,0,57,0,60,0,53,0,40,0,28,0,19,0,11,0,0,0,244,255,233,255,223,255,217,255,211,255,203,255,191,255, +177,255,169,255,165,255,165,255,168,255,177,255,191,255,207,255,215,255,219,255,226,255,234,255,241,255,243,255,244,255,247,255, +247,255,249,255,251,255,251,255,255,255,7,0,18,0,33,0,44,0,52,0,61,0,71,0,80,0,86,0,89,0,90,0, +89,0,95,0,99,0,94,0,85,0,74,0,58,0,41,0,19,0,251,255,234,255,223,255,213,255,204,255,195,255,188,255, +183,255,186,255,193,255,200,255,209,255,215,255,218,255,221,255,217,255,204,255,189,255,177,255,171,255,172,255,173,255,172,255, +171,255,175,255,188,255,204,255,223,255,238,255,241,255,240,255,242,255,251,255,8,0,16,0,20,0,23,0,22,0,21,0, +31,0,51,0,67,0,71,0,75,0,86,0,99,0,116,0,133,0,142,0,144,0,143,0,140,0,135,0,120,0,101,0, +85,0,72,0,58,0,39,0,19,0,255,255,239,255,231,255,228,255,223,255,218,255,210,255,202,255,200,255,201,255,202,255, +201,255,197,255,185,255,162,255,135,255,119,255,115,255,119,255,129,255,140,255,144,255,146,255,160,255,187,255,218,255,247,255, +18,0,37,0,52,0,65,0,74,0,81,0,83,0,88,0,98,0,109,0,116,0,116,0,112,0,111,0,112,0,109,0, +97,0,75,0,52,0,30,0,7,0,250,255,249,255,243,255,231,255,218,255,204,255,189,255,173,255,164,255,156,255,145,255, +135,255,127,255,120,255,116,255,120,255,131,255,138,255,133,255,125,255,116,255,113,255,116,255,122,255,128,255,134,255,146,255, +170,255,200,255,226,255,247,255,7,0,19,0,31,0,42,0,52,0,63,0,73,0,85,0,100,0,120,0,142,0,157,0, +162,0,162,0,161,0,161,0,160,0,163,0,173,0,173,0,160,0,149,0,147,0,143,0,137,0,130,0,116,0,92,0, +66,0,45,0,31,0,25,0,20,0,17,0,14,0,254,255,233,255,222,255,215,255,205,255,197,255,189,255,180,255,170,255, +161,255,156,255,157,255,161,255,161,255,154,255,146,255,142,255,145,255,155,255,169,255,184,255,202,255,217,255,230,255,240,255, +252,255,5,0,6,0,4,0,255,255,254,255,6,0,13,0,13,0,10,0,7,0,7,0,9,0,10,0,6,0,0,0, +255,255,3,0,3,0,254,255,252,255,251,255,249,255,243,255,233,255,223,255,210,255,197,255,191,255,194,255,198,255,199,255, +204,255,216,255,228,255,239,255,245,255,240,255,237,255,237,255,233,255,234,255,240,255,244,255,243,255,242,255,243,255,247,255, +250,255,0,0,8,0,12,0,10,0,11,0,24,0,40,0,52,0,68,0,87,0,94,0,91,0,88,0,85,0,78,0, +69,0,60,0,50,0,44,0,51,0,65,0,75,0,82,0,90,0,101,0,104,0,97,0,91,0,85,0,76,0,70,0, +62,0,55,0,50,0,45,0,38,0,23,0,4,0,251,255,247,255,241,255,238,255,234,255,229,255,227,255,230,255,240,255, +243,255,229,255,208,255,194,255,184,255,172,255,161,255,151,255,136,255,127,255,131,255,139,255,148,255,159,255,168,255,176,255, +181,255,185,255,190,255,195,255,198,255,204,255,210,255,216,255,217,255,212,255,211,255,213,255,214,255,215,255,219,255,226,255, +235,255,246,255,8,0,26,0,40,0,51,0,62,0,67,0,60,0,50,0,52,0,58,0,53,0,39,0,24,0,16,0, +18,0,27,0,34,0,30,0,22,0,23,0,31,0,45,0,64,0,79,0,87,0,87,0,80,0,73,0,68,0,60,0, +51,0,40,0,25,0,12,0,10,0,13,0,7,0,251,255,244,255,241,255,238,255,235,255,222,255,202,255,184,255,179,255, +185,255,185,255,178,255,175,255,183,255,197,255,212,255,223,255,230,255,237,255,250,255,4,0,1,0,248,255,239,255,233,255, +234,255,238,255,239,255,233,255,222,255,216,255,225,255,245,255,7,0,14,0,14,0,16,0,23,0,35,0,47,0,43,0, +30,0,22,0,22,0,22,0,20,0,23,0,29,0,29,0,29,0,28,0,19,0,4,0,250,255,249,255,251,255,252,255, +5,0,15,0,16,0,13,0,9,0,8,0,11,0,15,0,17,0,15,0,8,0,250,255,238,255,233,255,233,255,235,255, +243,255,251,255,248,255,233,255,219,255,224,255,246,255,6,0,11,0,13,0,14,0,14,0,15,0,17,0,15,0,3,0, +247,255,249,255,251,255,244,255,240,255,249,255,10,0,26,0,39,0,51,0,60,0,61,0,54,0,45,0,37,0,27,0, +11,0,253,255,248,255,246,255,246,255,2,0,19,0,28,0,31,0,43,0,62,0,67,0,50,0,25,0,6,0,250,255, +246,255,243,255,227,255,207,255,205,255,214,255,219,255,210,255,195,255,190,255,196,255,201,255,204,255,199,255,191,255,196,255, +213,255,221,255,220,255,222,255,225,255,221,255,209,255,198,255,191,255,181,255,173,255,175,255,185,255,199,255,212,255,213,255, +204,255,207,255,231,255,2,0,14,0,19,0,30,0,51,0,84,0,117,0,133,0,131,0,131,0,138,0,145,0,150,0, +156,0,164,0,170,0,165,0,153,0,145,0,144,0,143,0,135,0,122,0,108,0,96,0,85,0,72,0,56,0,35,0, +17,0,10,0,9,0,1,0,230,255,195,255,165,255,141,255,127,255,133,255,149,255,144,255,117,255,99,255,103,255,112,255, +106,255,87,255,69,255,69,255,86,255,109,255,129,255,147,255,165,255,192,255,229,255,10,0,35,0,47,0,55,0,68,0, +76,0,72,0,75,0,91,0,106,0,114,0,116,0,113,0,109,0,118,0,146,0,172,0,173,0,162,0,154,0,148,0, +146,0,151,0,155,0,142,0,116,0,99,0,92,0,76,0,45,0,10,0,232,255,200,255,175,255,150,255,114,255,70,255, +34,255,9,255,239,254,211,254,184,254,169,254,174,254,182,254,180,254,176,254,183,254,205,254,223,254,225,254,226,254,243,254, +23,255,70,255,123,255,176,255,220,255,8,0,68,0,133,0,190,0,247,0,40,1,74,1,99,1,118,1,134,1,155,1, +179,1,188,1,177,1,165,1,157,1,143,1,125,1,103,1,73,1,28,1,210,0,137,0,99,0,79,0,50,0,18,0, +241,255,209,255,193,255,193,255,190,255,169,255,139,255,107,255,69,255,44,255,42,255,42,255,21,255,238,254,206,254,194,254, +182,254,147,254,108,254,113,254,159,254,187,254,176,254,153,254,129,254,106,254,85,254,52,254,253,253,185,253,137,253,155,253, +248,253,153,254,114,255,67,0,212,0,72,1,221,1,129,2,241,2,4,3,197,2,108,2,57,2,50,2,32,2,234,1, +185,1,178,1,186,1,161,1,123,1,127,1,173,1,207,1,201,1,161,1,93,1,16,1,214,0,167,0,85,0,201,255, +46,255,204,254,170,254,166,254,180,254,199,254,187,254,145,254,115,254,116,254,119,254,105,254,90,254,76,254,58,254,72,254, +145,254,247,254,72,255,124,255,169,255,228,255,33,0,83,0,121,0,145,0,160,0,193,0,255,0,59,1,79,1,64,1, +42,1,14,1,221,0,160,0,112,0,90,0,89,0,99,0,111,0,118,0,140,0,204,0,31,1,77,1,77,1,46,1, +235,0,134,0,236,255,4,255,31,254,226,253,113,254,63,255,210,255,56,0,180,0,94,1,41,2,211,2,225,2,18,2, +227,0,18,0,181,255,98,255,248,254,156,254,101,254,99,254,94,254,236,253,47,253,218,252,42,253,154,253,199,253,11,254, +186,254,90,255,95,255,22,255,0,255,226,254,110,254,238,253,140,253,36,253,4,253,143,253,70,254,133,254,139,254,209,254, +23,255,222,254,51,254,134,253,29,253,246,252,31,253,202,253,249,254,137,0,118,2,136,4,47,6,86,7,92,8,52,9, +117,9,36,9,216,8,19,9,130,9,89,9,110,8,73,7,76,6,121,5,162,4,119,3,213,1,24,0,193,254,12,254, +218,253,219,253,213,253,198,253,139,253,240,252,51,252,143,251,163,250,40,249,131,247,29,246,17,245,162,244,241,244,121,245, +233,245,182,246,4,248,34,249,148,249,160,249,231,249,176,250,146,251,39,252,195,252,241,253,169,255,109,1,219,2,240,3, +243,4,28,6,100,7,196,8,109,10,101,12,2,14,144,14,96,14,59,14,8,14,3,13,234,10,25,8,56,5,3,3, +153,1,55,0,100,254,168,252,170,251,48,251,137,250,125,249,49,248,209,246,237,245,54,246,84,247,47,248,167,248,202,249, +20,252,140,254,41,0,243,0,49,1,217,0,22,0,62,255,84,254,128,253,69,253,178,253,77,254,29,255,138,0,57,2, +76,3,156,3,179,3,216,3,242,3,252,3,216,3,71,3,83,2,104,1,233,0,243,0,24,1,154,0,98,255,23,254, +41,253,144,252,65,252,77,252,169,252,41,253,204,253,182,254,220,255,246,0,172,1,189,1,77,1,183,0,216,255,93,254, +214,252,60,252,128,252,245,252,163,253,197,254,205,255,70,0,176,0,150,1,208,2,62,4,254,5,134,7,217,7,255,6, +13,6,155,5,3,5,80,3,156,0,4,254,71,252,37,251,59,250,163,249,174,249,74,250,248,250,94,251,137,251,197,251, +134,252,23,254,225,255,176,0,77,0,17,0,19,1,190,2,255,3,191,4,145,5,182,6,219,7,154,8,244,8,23,9, +223,8,11,8,193,6,105,5,67,4,138,3,78,3,38,3,209,2,142,2,110,2,6,2,29,1,223,255,60,254,206,251, +190,248,247,245,213,243,174,241,99,239,21,238,136,238,16,240,184,241,104,243,106,245,189,247,89,250,39,253,131,255,145,0, +110,0,109,0,129,1,56,3,190,4,204,5,87,6,176,6,166,7,57,9,12,10,64,9,209,7,11,7,207,6,57,6, +45,5,80,4,226,3,128,3,39,3,23,3,254,2,85,2,8,1,107,255,34,254,154,253,62,253,105,252,152,251,90,251, +64,251,240,250,222,250,23,251,248,250,162,250,243,250,251,251,209,252,240,252,231,252,170,253,116,255,139,1,26,3,241,3, +90,4,138,4,61,4,254,2,35,1,209,255,126,255,118,255,52,255,34,255,239,255,236,1,161,4,235,6,214,7,56,7, +173,5,84,4,14,4,151,4,205,4,33,4,69,3,213,2,83,2,56,1,160,255,111,253,169,250,77,248,46,247,175,246, +13,246,193,245,143,246,89,248,109,250,51,252,109,253,43,254,166,254,15,255,109,255,132,255,34,255,159,254,175,254,69,255, +139,255,111,255,206,255,187,0,111,1,184,1,242,1,75,2,170,2,24,3,38,4,78,6,176,8,191,9,60,9,48,8, +52,7,25,6,164,4,126,2,124,255,156,252,98,251,232,251,240,252,174,253,81,254,26,255,231,255,109,0,121,0,15,0, +41,255,214,253,251,252,135,253,227,254,253,255,24,1,187,2,82,4,56,5,186,5,8,6,153,5,105,4,89,3,169,2, +10,2,253,1,201,2,45,3,44,2,107,0,151,254,116,252,253,249,134,247,5,245,172,242,106,241,193,241,223,242,161,243, +12,244,8,245,1,247,88,249,224,250,252,250,192,250,221,251,39,254,254,255,30,1,156,2,117,4,157,5,62,6,63,7, +23,8,177,7,150,6,213,5,61,5,103,4,236,3,71,4,190,4,109,4,179,3,142,3,24,4,109,4,221,3,128,2, +207,0,92,255,228,254,161,255,130,0,77,0,159,255,64,0,89,2,73,4,33,5,47,5,173,4,186,3,228,2,136,2, +36,2,243,0,114,255,49,255,99,0,42,1,111,0,101,255,59,255,62,255,67,254,106,252,181,250,195,249,151,249,224,249, +20,250,183,249,8,249,229,248,172,249,194,250,61,251,178,250,196,249,168,249,121,250,51,251,167,251,181,252,127,254,13,0, +171,0,126,0,13,0,217,255,15,0,138,0,252,0,28,1,118,1,131,3,122,7,85,11,147,13,5,15,173,16,253,17, +38,18,37,17,12,15,227,11,145,8,56,6,98,4,118,1,47,253,35,249,232,246,31,247,83,249,131,251,184,251,225,250, +149,251,47,254,212,0,36,2,44,2,223,1,78,2,134,3,134,4,91,4,207,2,135,0,124,254,177,252,56,250,8,247, +69,244,198,242,122,242,204,242,13,243,5,243,230,242,191,242,178,242,28,243,215,243,41,244,0,244,153,244,15,247,167,250, +189,253,233,255,178,1,25,3,4,4,247,4,28,6,215,6,13,7,75,7,173,7,16,8,156,8,251,8,87,8,160,6, +154,4,213,2,159,1,45,1,18,1,176,0,109,0,52,1,244,2,194,4,231,5,54,6,212,5,138,5,117,6,137,8, +189,10,244,12,51,15,35,16,93,15,173,14,143,14,223,12,147,8,82,3,225,254,174,251,172,249,154,248,168,247,82,246, +104,245,7,246,166,247,83,248,24,247,27,245,255,243,240,243,6,244,28,244,206,244,28,246,189,247,214,249,14,252,102,253, +147,253,72,253,84,253,222,253,12,254,12,253,193,251,47,252,237,254,91,2,211,4,87,6,182,7,45,9,83,10,184,10, +39,10,170,8,145,6,108,4,150,2,52,1,202,0,186,1,39,3,237,3,55,4,115,4,19,4,164,2,77,0,237,252, +213,248,162,245,227,244,168,246,175,249,160,252,131,255,84,3,250,7,4,12,75,14,143,14,50,13,73,11,19,10,111,9, +220,7,8,5,119,2,208,0,234,254,250,251,58,248,61,244,27,241,139,239,141,238,67,237,200,236,253,237,55,240,9,243, +106,246,91,249,243,250,171,251,49,252,99,252,231,251,3,251,176,250,201,251,219,253,222,255,35,2,106,5,103,8,73,9, +102,8,251,6,125,5,130,4,101,4,27,4,197,2,124,1,245,1,128,4,233,7,63,10,212,9,183,6,25,3,99,1, +170,1,170,1,244,255,47,254,8,255,201,2,128,7,155,11,174,14,182,16,54,18,79,19,59,18,147,13,55,7,192,1, +101,253,133,249,27,246,4,243,135,240,128,239,198,239,107,240,58,241,21,242,72,242,236,241,3,242,216,242,19,244,209,245, +67,248,193,250,75,252,172,252,89,252,208,251,194,251,198,252,62,254,14,255,158,255,117,1,205,4,67,8,28,11,44,14, +25,18,245,21,28,24,187,23,129,21,26,19,142,17,44,16,206,13,156,10,93,7,72,4,254,1,92,1,21,1,13,255, +30,252,113,250,71,249,204,246,0,244,23,243,64,244,47,246,150,247,174,247,245,246,232,246,32,248,96,249,3,249,59,247, +35,246,242,246,186,248,167,250,239,252,105,255,202,1,97,4,178,6,74,7,24,6,130,4,2,3,239,0,50,254,120,251, +60,249,134,247,128,246,73,246,25,246,118,245,230,245,203,248,154,252,48,255,239,0,30,3,168,5,251,7,186,9,220,9, +168,7,158,4,40,3,157,3,122,4,197,4,123,4,207,3,103,3,228,3,111,4,175,3,230,1,254,255,241,253,212,251, +95,250,161,249,81,249,183,249,90,250,214,249,199,248,246,249,247,253,156,1,79,2,117,1,10,2,121,4,187,6,119,7, +248,6,57,6,116,6,230,7,237,8,108,8,144,7,149,7,235,7,140,7,91,6,1,5,58,4,17,4,194,3,222,2, +36,2,91,2,202,2,26,2,85,0,114,254,102,252,107,249,146,245,216,241,36,239,140,237,147,236,109,236,43,238,10,242, +251,246,219,251,48,0,229,3,232,6,49,9,254,10,143,12,240,13,18,15,142,15,13,15,242,13,163,12,215,10,36,8, +55,4,18,255,26,250,28,247,224,245,210,244,126,243,167,242,212,242,224,243,42,245,221,245,12,246,150,247,228,251,229,0, +185,3,170,5,161,9,233,14,213,18,104,20,200,19,148,17,22,15,174,12,77,9,170,4,44,0,4,253,213,250,210,248, +54,247,128,246,215,245,209,243,245,240,150,239,107,240,50,241,0,240,17,238,132,237,73,238,9,239,156,239,1,241,176,243, +203,246,58,249,26,251,62,253,210,255,105,2,138,4,191,5,232,5,227,5,12,7,133,9,187,11,183,12,200,13,47,16, +185,18,187,19,122,19,160,18,156,16,185,13,2,12,14,12,217,11,58,10,119,8,160,7,39,7,143,6,30,6,182,5, +183,4,221,2,66,0,46,253,115,250,0,249,54,249,205,250,140,252,204,252,218,251,5,252,22,254,11,0,234,255,138,253, +37,250,67,247,29,245,145,242,52,239,4,236,147,234,232,235,215,238,148,240,162,240,209,241,3,246,148,251,185,255,105,1, +180,1,78,2,218,3,196,5,84,7,10,8,146,7,165,6,198,6,222,7,227,7,253,5,5,4,218,3,246,4,140,5, +209,4,211,3,134,4,142,7,13,11,154,12,78,12,148,12,179,14,190,16,242,15,56,12,249,7,203,4,251,1,91,254, +209,249,33,245,100,241,75,239,97,238,218,237,208,237,1,239,191,241,127,245,66,249,177,252,55,0,110,3,29,5,135,5, +71,6,246,6,132,5,90,2,190,255,175,253,109,251,163,250,70,252,19,254,88,254,44,254,247,254,234,0,16,3,246,3, +171,3,143,3,106,3,227,1,138,255,54,254,1,254,145,253,155,252,250,251,159,251,238,250,207,250,95,252,93,254,140,254, +171,252,120,250,144,249,64,250,47,252,177,254,229,255,180,254,146,253,16,255,101,1,219,1,48,1,226,0,102,0,115,255, +37,255,20,0,217,1,77,4,127,7,186,10,12,13,134,14,134,15,80,15,48,13,2,10,27,7,214,4,254,2,136,1, +173,0,246,0,206,2,184,5,138,8,112,10,2,11,57,10,10,9,131,8,231,7,188,5,160,2,85,0,204,254,195,252, +226,249,77,246,133,242,98,240,170,240,189,240,199,238,90,237,254,238,39,242,193,244,48,247,178,249,226,250,88,250,148,249, +86,249,139,248,122,246,45,244,44,243,18,244,112,246,115,249,105,252,171,254,131,255,247,254,18,254,182,253,212,253,232,253, +151,253,74,253,34,254,183,0,95,4,249,7,194,10,139,12,150,13,85,14,14,15,149,15,185,15,221,15,83,16,176,16, +230,16,198,17,120,19,210,20,247,20,74,20,99,19,205,17,117,14,69,9,103,3,227,253,217,248,35,244,39,240,217,237, +131,237,247,237,55,238,235,238,165,240,75,242,217,242,231,242,10,243,149,242,130,241,195,241,133,244,177,247,190,248,102,248, +200,248,1,250,42,251,39,252,189,252,143,252,97,252,140,253,97,0,170,3,224,5,118,7,77,10,245,13,183,15,171,14, +56,12,168,9,205,7,178,6,26,5,123,2,144,0,143,1,153,5,12,10,207,11,229,10,23,10,41,11,138,13,156,15, +179,15,119,13,243,10,110,10,16,11,197,9,203,5,176,1,253,254,143,252,172,249,155,246,37,243,12,240,55,239,33,240, +20,240,204,238,107,238,47,239,33,239,80,237,133,234,153,231,238,228,0,227,100,226,255,226,247,227,140,229,171,233,111,240, +168,246,149,250,91,254,178,3,95,9,205,13,161,16,94,18,49,20,219,22,224,25,85,28,195,29,161,30,240,31,25,33, +0,32,179,28,228,25,109,24,52,22,88,18,122,14,98,11,61,8,166,5,119,5,245,6,207,6,134,3,137,254,82,249, +80,244,199,239,225,235,232,232,112,231,51,231,112,231,187,232,5,236,113,240,29,244,160,245,133,244,249,241,238,239,227,238, +75,238,54,238,22,239,65,241,182,244,196,248,215,252,216,0,89,4,25,7,93,9,129,10,215,9,11,9,123,10,68,14, +235,18,238,22,83,25,7,26,113,25,133,23,213,19,92,14,71,8,103,3,23,0,239,252,136,249,153,247,146,248,230,251, +196,255,73,2,146,2,104,1,222,255,205,253,247,250,66,248,136,246,239,245,231,246,161,249,237,252,123,255,151,1,89,4, +209,7,133,10,131,10,241,6,63,1,98,252,204,249,21,248,23,246,225,244,4,245,99,245,169,245,35,246,149,245,193,242, +212,238,180,235,104,233,0,231,42,229,12,230,118,234,207,240,121,247,88,254,144,5,172,12,8,19,75,23,181,23,112,20, +2,16,238,12,238,11,227,11,55,11,116,10,229,11,150,15,211,18,17,20,166,19,191,17,128,14,163,10,194,6,111,3, +75,1,53,0,153,255,177,255,84,1,57,4,66,6,196,5,163,3,146,1,89,255,183,251,2,247,106,243,64,242,39,242, +115,241,239,240,9,242,76,244,92,246,39,247,3,246,219,243,1,243,76,244,79,246,185,247,239,248,87,251,188,255,219,4, +32,8,168,8,44,8,69,8,169,8,126,8,138,7,66,6,208,5,0,7,228,8,4,10,92,10,228,10,168,11,125,11, +188,9,117,7,217,5,120,4,168,2,39,1,192,0,255,0,39,1,237,0,11,0,156,254,82,253,15,252,150,249,253,245, +77,243,75,242,71,241,106,239,38,238,136,238,158,239,110,240,186,241,117,244,193,247,38,250,177,251,26,253,60,254,6,255, +232,255,108,0,184,255,158,254,121,254,122,254,44,253,119,251,236,250,9,251,228,250,62,251,76,253,98,1,177,6,138,11, +63,15,219,18,129,22,167,24,41,25,157,25,245,25,159,24,13,22,30,20,140,18,207,15,90,12,58,9,107,5,17,0, +217,250,149,247,212,245,100,244,95,243,184,243,172,245,82,248,100,250,75,251,116,251,112,251,214,250,246,248,66,246,203,243, +38,242,119,241,92,241,240,240,60,240,203,240,74,243,199,245,60,246,205,245,224,246,8,249,25,250,20,250,183,250,143,252, +30,255,50,2,37,5,184,6,50,7,69,8,198,9,186,9,62,8,115,7,162,7,161,7,211,7,243,8,55,10,77,11, +146,13,105,17,222,20,35,22,119,21,241,19,58,18,173,16,31,15,171,12,252,8,24,5,73,2,202,0,215,255,137,254, +128,252,138,249,137,245,52,241,8,238,183,236,131,236,171,236,142,237,118,239,112,241,23,243,2,246,206,250,172,254,24,255, +186,253,145,253,153,254,6,255,50,254,238,251,206,247,208,242,204,238,147,235,146,231,190,226,134,222,44,220,123,220,172,223, +74,229,2,237,0,247,207,2,186,14,178,24,179,31,98,36,59,40,78,43,121,43,158,39,86,34,2,31,232,29,28,29, +42,27,205,23,224,19,172,16,92,14,186,11,229,7,177,3,178,0,55,255,73,254,140,253,127,253,81,254,172,255,36,1, +42,2,35,2,168,0,232,253,82,250,167,245,153,239,164,233,222,229,52,228,213,226,201,224,229,222,172,222,110,224,177,226, +46,228,113,229,164,231,32,235,14,240,158,246,171,253,89,3,191,7,129,12,179,17,203,21,246,23,36,24,110,22,5,20, +107,18,17,17,124,14,107,11,250,9,92,10,17,11,29,11,74,10,228,8,215,7,146,7,75,7,111,6,79,5,58,4, +89,3,10,3,102,3,243,3,203,3,79,2,45,0,10,255,136,255,144,0,197,0,238,255,230,254,99,254,201,253,243,251, +89,249,186,247,28,247,201,245,181,243,165,242,64,243,251,244,100,247,122,249,12,250,101,249,118,248,35,247,213,244,193,241, +245,238,43,237,162,235,92,233,105,231,55,232,74,236,103,241,206,245,79,250,210,255,74,5,165,9,242,12,93,15,130,17, +106,20,154,23,160,25,109,26,15,27,62,28,226,29,185,30,88,29,16,26,75,22,150,18,167,14,124,10,238,6,93,5, +24,6,54,7,176,6,86,5,113,5,158,6,233,5,6,2,186,252,209,247,61,243,159,238,230,234,69,233,78,233,161,233, +15,234,103,235,129,237,64,239,19,240,14,240,36,239,142,237,4,236,234,234,157,234,11,236,10,239,240,241,172,244,231,248, +65,254,140,2,49,5,182,6,202,6,145,5,162,4,207,4,57,5,168,5,145,7,180,11,249,16,60,22,216,26,180,29, +35,30,65,29,165,28,200,27,124,24,138,18,233,12,10,10,67,9,187,8,148,7,100,6,69,6,157,6,45,5,109,1, +217,252,59,248,238,243,17,241,144,239,153,237,36,235,226,234,237,237,186,241,2,244,24,245,135,245,94,245,107,245,100,245, +60,243,254,238,154,235,134,234,51,234,55,233,73,232,200,232,196,234,255,236,116,238,161,239,89,242,157,247,212,253,168,2, +50,6,2,10,129,14,163,19,236,25,238,31,81,34,107,33,10,34,56,37,180,37,193,32,241,25,48,20,229,14,94,10, +219,7,78,6,148,4,77,4,174,6,217,9,156,11,132,11,150,9,57,6,177,2,181,255,211,252,198,249,221,246,130,244, +67,243,155,243,34,245,77,246,223,245,164,244,207,243,80,242,248,238,135,235,14,234,165,233,135,232,38,231,96,231,55,234, +0,239,197,243,40,246,231,245,91,246,47,250,46,255,43,2,117,3,147,4,76,6,83,9,140,12,23,13,146,10,135,7, +96,5,221,3,31,3,66,3,112,3,113,3,175,4,9,8,42,12,130,15,25,18,73,20,181,21,61,22,220,21,170,19, +130,15,199,11,124,10,252,9,8,8,201,5,30,5,7,5,14,4,145,2,168,0,148,253,109,250,90,249,153,249,72,248, +68,245,21,243,104,242,253,241,176,241,146,241,53,240,191,236,170,232,214,229,56,228,63,226,98,223,47,221,7,221,174,222, +43,226,89,232,177,240,72,249,17,1,211,7,227,12,228,15,180,17,115,19,69,21,53,22,135,21,157,20,201,21,250,24, +49,28,138,30,44,32,248,32,209,32,114,31,60,28,70,23,181,17,251,12,201,9,110,7,97,5,128,4,240,4,124,5, +227,5,238,5,34,4,179,0,147,253,112,250,135,245,121,239,140,234,193,231,0,230,80,227,27,223,214,218,142,216,197,217, +1,222,9,226,148,227,197,228,200,232,84,239,90,246,204,252,221,1,152,4,150,5,244,6,148,9,231,11,140,12,133,12, +11,13,70,13,67,12,236,10,118,10,23,11,110,12,77,13,166,12,156,11,4,12,155,13,22,15,245,15,209,15,118,14, +243,12,111,12,139,12,17,12,94,10,251,7,12,6,254,4,16,4,125,2,176,0,228,255,124,0,93,1,169,1,235,1, +123,2,163,2,43,2,111,1,16,0,176,253,204,250,89,247,152,242,245,236,231,231,34,228,115,225,105,223,97,221,240,218, +206,216,215,216,68,220,141,225,214,229,194,232,131,236,127,242,85,250,111,2,103,8,69,11,254,12,197,15,125,19,174,22, +154,24,24,26,33,28,249,29,194,30,51,31,151,31,237,30,248,28,89,26,104,23,192,20,242,18,196,17,163,16,194,14, +184,11,137,8,19,6,158,3,253,0,207,254,27,252,132,247,61,242,212,238,8,238,233,237,47,236,154,233,50,233,154,235, +111,238,249,239,17,240,10,239,49,238,210,238,246,239,242,239,18,239,183,238,9,240,6,244,21,250,123,255,92,2,38,3, +123,2,223,0,196,255,175,255,213,254,46,252,29,250,122,251,220,255,89,5,166,11,189,18,249,24,246,28,217,30,228,30, +53,29,125,26,30,23,5,19,177,14,25,11,237,8,98,8,214,8,37,9,218,8,40,8,1,7,45,5,176,2,199,255, +241,252,132,250,141,248,226,247,66,249,240,250,210,250,66,250,97,251,182,252,168,251,64,248,53,244,237,240,219,238,93,237, +241,235,251,234,240,234,241,235,155,237,188,238,220,238,216,238,213,238,8,238,152,236,146,235,245,235,78,238,56,242,191,246, +96,251,213,255,202,3,51,7,56,10,230,12,201,14,97,15,179,15,140,17,198,20,14,24,89,27,218,30,19,34,58,37, +142,40,124,42,21,41,94,36,245,29,111,23,50,17,164,10,0,4,229,254,225,251,140,249,37,247,26,245,220,242,72,239, +127,234,95,229,25,225,249,222,95,222,115,221,240,220,12,223,19,227,118,230,145,232,47,234,115,235,116,236,4,238,92,240, +87,242,91,243,190,244,179,247,50,251,177,253,195,255,17,3,62,7,29,10,199,10,110,10,79,10,140,10,184,10,227,10, +105,12,110,16,149,21,146,25,159,28,78,32,12,36,36,38,135,38,156,37,206,34,200,30,146,27,107,25,84,23,79,21, +228,18,221,14,215,9,96,5,172,1,89,254,159,250,83,245,51,239,192,234,197,232,165,231,12,230,153,228,150,228,37,229, +215,227,251,224,171,223,178,224,100,225,50,224,200,222,244,222,115,224,147,226,72,229,60,232,60,235,17,239,247,243,194,248, +71,252,188,254,242,1,132,7,57,14,128,19,48,23,148,26,28,29,170,29,139,29,215,30,238,32,92,33,184,31,38,30, +54,30,49,31,113,31,19,30,63,27,73,23,43,18,245,11,108,5,37,0,84,253,41,252,251,250,24,250,252,250,82,253, +33,255,68,255,57,254,178,252,124,250,160,247,25,245,246,242,50,240,111,237,63,236,215,235,65,234,131,231,105,228,152,224, +71,220,7,217,58,215,182,213,142,212,99,213,19,217,178,222,152,228,130,234,74,242,131,252,233,5,57,11,128,13,255,15, +216,19,116,23,56,25,116,25,92,25,222,25,210,27,229,30,73,33,87,34,235,34,201,34,57,33,237,30,111,28,1,25, +195,20,183,17,60,17,20,18,88,18,4,18,218,17,192,17,189,17,220,17,157,16,128,12,93,6,2,0,211,249,152,243, +73,238,63,235,244,233,59,232,181,228,252,223,211,219,177,217,23,217,239,215,219,213,129,213,172,216,88,221,31,225,25,229, +9,235,228,241,219,247,74,252,144,254,201,254,47,255,194,1,7,6,78,10,110,13,77,15,156,16,243,17,143,19,154,21, +187,23,182,24,130,23,130,20,84,17,101,15,200,14,214,14,92,15,27,16,219,15,242,13,253,11,231,11,37,13,194,13, +253,12,163,11,250,10,167,11,251,12,155,13,193,12,200,10,208,8,95,7,114,5,237,1,3,253,170,247,8,243,190,239, +203,236,238,232,195,228,160,225,173,223,109,222,242,221,132,222,43,223,45,222,12,220,91,219,179,220,201,222,23,226,146,231, +132,237,61,242,50,247,2,254,177,5,188,12,47,18,146,20,153,19,190,17,51,17,183,17,193,18,72,20,148,21,95,22, +168,23,171,25,12,27,233,26,14,26,98,25,108,24,144,22,156,20,120,19,135,18,204,16,99,14,10,12,242,9,85,7, +79,3,65,254,146,249,214,245,141,242,225,239,226,238,119,239,204,239,209,238,194,237,16,238,55,239,198,239,80,239,0,238, +217,235,206,233,158,233,144,235,49,238,104,240,4,242,200,242,129,242,229,241,140,242,52,245,149,248,130,251,4,255,82,4, +111,10,81,15,251,17,45,19,143,20,154,22,3,24,195,23,81,22,148,20,39,19,138,18,226,18,114,19,251,18,245,16, +51,14,245,11,160,10,200,9,89,9,154,9,251,9,125,9,87,8,126,7,77,7,173,7,217,7,7,6,90,1,102,251, +165,246,68,244,50,243,96,241,172,238,198,236,182,235,201,233,4,231,42,229,161,228,55,228,115,227,247,226,4,227,19,227, +218,226,241,226,30,228,35,230,252,231,147,233,6,236,33,240,225,245,215,252,15,4,140,10,246,15,253,19,87,22,149,23, +138,24,110,25,129,26,249,27,3,29,204,28,35,28,161,28,235,30,87,34,21,37,109,37,187,35,138,33,21,31,36,28, +80,25,69,22,224,17,146,12,150,7,8,3,81,254,204,248,179,242,230,237,51,235,116,232,246,227,239,222,135,219,237,218, +60,220,183,220,114,219,22,219,94,221,14,224,1,225,117,225,31,227,133,229,178,231,98,233,68,234,251,234,137,237,116,242, +147,247,72,251,128,254,67,2,214,5,204,8,76,12,62,16,116,18,177,18,202,19,177,23,117,29,242,34,218,38,163,41, +134,44,168,47,248,49,248,49,179,46,253,40,220,34,131,29,5,25,169,20,80,15,132,9,96,5,239,2,6,0,246,251, +186,247,145,243,113,239,20,236,217,233,68,232,13,231,104,230,126,230,24,231,146,231,145,231,146,231,178,231,253,230,2,229, +117,226,68,224,109,223,94,224,47,226,51,228,1,231,160,234,16,238,6,241,24,244,118,247,151,250,81,253,137,0,214,4, +155,9,122,14,125,19,15,24,10,28,178,31,171,33,155,32,202,29,166,26,161,22,3,18,239,14,19,14,26,14,156,14, +23,16,224,17,114,19,165,21,77,24,211,25,2,26,217,25,127,25,158,24,37,23,247,20,228,17,185,13,89,8,188,1, +170,249,150,240,71,232,216,225,124,220,130,215,140,211,28,209,100,207,103,205,173,203,124,203,138,204,193,205,95,207,30,210, +220,213,158,218,237,224,162,232,200,240,112,248,217,254,85,3,244,5,250,7,149,10,165,13,150,16,96,19,62,22,152,25, +218,29,189,34,95,39,250,42,35,45,230,45,157,45,98,44,78,42,242,39,170,37,234,34,2,31,79,26,222,21,53,18, +197,15,113,15,185,16,87,17,127,16,7,16,62,16,213,13,230,6,173,254,41,248,101,241,224,232,146,225,109,221,189,218, +184,216,69,216,177,216,110,216,169,215,101,215,45,215,151,213,72,211,20,211,5,214,161,217,125,219,205,220,171,224,126,231, +162,238,13,245,83,252,93,4,149,10,39,14,143,17,253,22,68,29,130,33,136,34,31,33,170,30,246,28,6,29,71,29, +180,27,114,25,82,25,93,27,221,28,117,28,41,27,231,25,137,24,138,22,64,19,188,14,141,10,29,8,77,7,46,7, +236,6,67,6,166,5,39,5,224,3,249,0,110,252,14,247,195,241,132,236,0,231,243,225,238,221,117,218,80,216,155,217, +242,221,53,226,3,229,158,231,116,234,197,236,195,238,111,240,100,240,155,238,84,237,169,237,165,238,252,239,72,242,45,245, +175,247,9,250,20,253,7,0,112,1,81,2,13,5,147,9,183,13,177,16,28,20,83,25,254,30,200,34,142,36,222,37, +162,39,151,41,144,42,79,41,29,38,93,34,209,30,118,27,20,24,34,20,10,15,52,9,253,3,252,255,140,252,69,249, +249,245,250,241,128,237,193,233,207,230,247,227,119,225,203,223,46,223,31,224,170,226,81,230,35,235,35,241,30,247,109,251, +75,253,74,253,138,252,22,251,57,248,189,244,166,242,196,242,4,245,179,249,190,255,145,4,186,7,251,10,30,14,34,15, +225,13,158,11,210,8,12,6,143,4,218,4,82,6,27,8,144,9,195,10,62,12,157,13,145,13,141,11,105,8,17,5, +184,1,159,254,128,252,217,251,229,252,222,255,220,3,187,6,77,7,113,6,135,5,101,4,149,1,183,252,104,247,107,243, +133,241,158,241,124,242,217,242,49,243,183,244,240,246,14,248,66,247,157,245,164,244,239,244,237,245,146,246,218,246,28,248, +250,250,134,254,149,1,28,3,208,2,70,2,232,2,187,3,193,3,210,3,221,4,225,6,126,9,244,11,70,13,242,12, +57,11,196,8,251,5,186,2,236,254,84,251,81,249,82,249,92,250,232,251,153,254,46,2,50,5,37,7,169,8,4,10, +43,11,84,12,179,13,28,15,224,15,141,15,209,14,80,14,111,13,135,11,142,8,73,4,65,255,143,251,49,250,89,249, +252,246,137,243,22,241,193,240,73,241,181,240,239,238,185,237,54,238,161,239,44,240,194,238,145,236,122,236,148,239,81,243, +231,244,31,245,18,247,234,251,48,1,48,4,240,5,43,9,205,13,168,17,65,20,200,22,16,25,85,25,117,23,57,21, +160,18,24,14,79,8,20,3,36,254,29,249,79,245,74,243,97,242,251,242,2,246,146,250,189,254,133,1,44,3,178,4, +121,6,182,6,217,3,245,255,26,254,37,254,72,254,238,253,154,253,62,254,20,0,125,1,205,0,98,254,142,251,43,249, +100,247,151,245,13,243,113,240,150,239,85,241,139,244,198,247,196,250,122,253,104,255,169,0,31,1,71,255,21,251,110,247, +42,246,81,246,26,247,146,248,78,250,52,252,226,254,28,2,119,4,27,5,107,5,131,7,238,10,108,13,175,14,138,16, +73,20,92,25,155,29,121,31,52,32,187,33,86,35,70,35,209,33,236,31,65,29,169,25,254,21,58,18,116,13,214,7, +50,2,98,252,196,245,193,238,192,232,70,228,84,224,137,220,2,218,66,217,134,217,28,218,135,218,111,218,119,218,167,219, +75,222,40,226,242,230,73,236,251,241,20,248,73,254,227,3,110,8,227,11,64,14,105,15,129,15,45,15,247,14,168,14, +44,14,84,14,114,15,215,16,15,18,136,18,98,17,29,15,234,12,119,10,68,7,109,4,213,2,4,2,165,1,238,1, +208,2,254,3,53,5,15,6,40,6,112,5,84,4,59,3,196,1,181,255,1,254,7,253,109,251,183,248,81,246,255,244, +227,243,41,242,62,240,50,239,18,239,240,238,18,239,186,240,239,243,194,247,130,251,125,254,29,0,123,0,253,255,175,254, +32,252,29,248,212,243,119,241,71,242,56,245,117,248,119,252,67,3,224,11,145,18,12,22,3,24,253,24,24,24,158,21, +125,18,19,15,135,12,148,12,174,14,97,16,224,16,31,17,176,16,254,13,33,9,164,3,146,254,179,250,144,248,140,247, +88,247,245,248,19,252,183,254,116,0,63,2,112,3,87,2,86,255,212,252,8,252,187,251,210,250,135,249,128,247,35,244, +219,240,81,239,43,238,60,235,124,231,82,229,237,228,118,229,55,231,254,233,113,236,99,238,45,241,95,245,237,249,157,253, +86,0,168,2,209,4,104,7,115,11,123,16,167,20,122,23,26,26,213,28,170,30,214,30,32,29,153,25,229,20,163,15, +26,10,175,5,58,4,29,5,145,6,222,8,58,12,113,14,62,14,47,13,205,11,34,8,157,1,168,250,113,245,13,242, +202,239,255,237,104,236,237,235,67,237,200,238,75,238,5,236,153,233,181,231,117,230,11,230,94,230,174,231,224,234,241,239, +153,245,232,250,7,0,129,5,212,10,42,14,145,14,93,13,48,12,96,11,176,10,193,9,38,8,121,6,120,6,159,8, +176,10,190,10,219,9,105,9,113,8,6,6,48,3,230,0,192,254,207,252,126,252,108,254,110,1,233,4,141,9,7,15, +158,19,5,22,55,22,43,21,154,19,20,17,75,13,32,9,139,5,6,3,17,2,19,3,128,5,133,7,126,7,145,5, +146,2,165,254,15,250,27,245,49,239,128,232,32,227,158,224,97,224,19,225,211,225,64,226,169,226,164,227,22,229,85,230, +90,231,206,232,222,234,79,237,148,240,113,245,228,251,31,3,153,9,240,13,201,16,250,19,97,23,70,25,5,25,75,23, +110,21,230,20,156,21,15,22,179,21,247,20,133,19,213,16,112,13,52,10,87,7,224,4,18,3,34,2,119,2,101,4, +234,6,81,8,201,7,25,5,109,0,70,251,122,247,32,245,185,242,177,239,242,237,125,239,100,243,126,247,219,250,179,252, +237,251,176,248,119,244,172,240,166,237,242,234,199,232,25,232,47,233,255,235,43,241,154,248,50,0,155,5,153,8,144,10, +121,12,43,14,26,15,15,15,182,14,22,15,58,16,92,17,13,18,66,18,199,17,53,16,91,13,194,9,131,6,54,4, +67,2,192,255,36,253,72,252,231,253,155,0,228,2,130,4,220,5,87,7,133,8,44,8,68,6,63,4,92,2,70,255, +218,250,182,246,16,244,141,242,11,241,249,238,112,236,182,233,131,231,108,230,149,229,70,228,230,227,3,230,103,234,251,239, +204,245,167,251,230,1,1,8,26,13,80,17,109,20,130,21,122,20,219,17,56,14,37,11,20,10,18,10,218,8,78,6, +185,4,23,5,225,5,29,6,24,6,93,5,203,3,177,2,112,2,4,2,163,1,138,2,143,4,14,6,249,5,20,5, +9,5,114,6,79,8,48,9,77,8,250,5,214,3,86,3,141,3,16,2,60,254,234,249,172,246,211,243,241,239,97,235, +111,231,5,228,234,224,118,223,139,224,10,227,211,229,84,233,3,238,189,242,84,246,98,249,82,252,44,254,187,255,92,3, +32,8,13,11,243,12,243,16,212,22,92,27,188,28,62,28,39,28,25,29,71,30,235,30,18,30,180,27,164,26,195,28, +169,30,179,28,189,24,24,22,138,20,29,18,69,14,208,9,119,5,96,1,162,253,1,250,165,245,123,240,122,235,232,230, +47,226,63,221,207,216,180,213,74,212,156,212,242,214,55,219,12,224,27,228,204,231,25,236,64,240,111,242,171,242,211,242, +185,243,132,244,180,244,216,244,189,245,224,247,66,251,16,255,221,1,118,3,57,6,244,11,50,18,132,21,8,23,225,25, +204,29,205,32,143,34,33,35,152,34,112,34,37,35,228,34,33,33,92,31,245,29,5,28,48,25,172,21,226,17,50,14, +109,10,222,5,246,255,24,249,193,242,28,238,222,234,242,231,211,228,32,226,235,224,147,225,164,227,134,230,186,233,148,236, +15,238,160,237,138,236,148,236,225,236,216,234,172,230,179,227,194,227,138,229,192,231,144,234,81,238,119,243,176,250,4,3, +206,9,254,13,74,17,62,21,56,25,144,27,164,27,228,26,57,27,89,28,106,28,193,26,54,24,1,22,204,20,132,19, +129,16,90,12,80,9,195,8,184,10,241,13,125,16,181,17,82,18,145,18,53,18,35,17,191,14,85,10,145,4,24,255, +128,250,149,245,3,239,121,231,31,225,230,220,187,217,116,214,96,211,30,210,5,212,6,216,110,219,193,221,13,225,0,230, +243,234,124,238,125,240,163,241,46,243,39,246,55,250,172,253,150,255,129,1,123,5,78,11,54,17,191,21,109,24,0,26, +161,27,171,29,224,31,175,33,127,34,198,34,172,35,94,37,130,38,18,37,166,32,208,27,133,24,13,21,179,15,176,9, +124,4,149,0,70,254,85,252,8,249,108,245,211,243,226,243,48,243,125,240,241,236,166,234,72,234,220,234,154,235,100,236, +23,237,0,238,44,240,6,244,14,248,201,249,144,248,105,246,51,245,131,244,75,243,103,241,24,239,13,237,152,236,223,237, +13,239,33,239,177,239,76,242,3,246,159,248,90,249,52,250,141,253,138,2,134,6,89,9,225,12,215,17,113,23,83,28, +93,31,138,32,140,32,169,31,124,29,208,25,192,21,203,18,225,16,24,15,108,13,230,11,207,9,50,7,90,5,150,4, +158,3,41,2,96,1,85,1,54,1,23,1,155,0,120,254,7,251,36,248,57,246,14,244,49,241,165,238,135,237,207,237, +75,238,205,237,85,236,255,234,164,234,176,234,60,234,179,233,205,233,101,234,122,235,230,236,48,238,143,240,106,245,3,251, +129,255,107,4,238,10,65,17,204,21,221,24,42,27,62,29,3,31,15,31,134,28,197,24,251,20,177,16,214,11,30,7, +233,2,231,255,205,254,0,255,61,255,235,254,90,254,6,254,170,253,5,253,212,252,146,253,26,255,83,2,9,8,144,14, +142,19,135,22,26,24,118,24,242,22,129,18,49,11,178,2,30,251,160,245,57,241,193,235,124,229,13,225,162,223,218,223, +145,223,23,222,245,220,65,221,53,222,211,223,254,226,73,231,244,235,225,240,126,245,19,249,242,251,213,254,74,1,82,2, +193,2,158,4,18,8,183,11,22,15,202,18,21,23,63,27,246,29,115,30,94,29,34,28,25,27,60,25,85,22,247,19, +68,19,55,19,13,18,125,15,194,12,198,10,190,8,240,4,2,255,101,248,67,242,211,236,158,232,144,230,254,230,64,233, +85,236,103,240,38,246,131,252,159,1,196,4,193,5,139,4,229,1,162,254,201,250,65,246,232,241,254,238,127,237,159,236, +145,236,64,238,8,242,254,246,35,251,143,253,180,255,23,3,254,6,133,9,104,10,124,11,244,13,214,16,36,19,74,21, +148,23,42,25,28,25,85,23,81,20,133,16,130,12,206,8,5,5,154,0,168,252,128,250,0,249,140,246,54,244,243,243, +84,245,93,246,179,246,253,247,214,250,163,253,128,255,75,1,68,3,167,4,206,4,236,2,134,254,159,248,167,242,217,236, +234,230,167,225,218,222,146,223,92,227,226,232,8,239,245,245,8,254,85,5,51,9,79,10,70,11,105,12,15,13,67,14, +176,16,22,19,154,20,139,21,243,21,77,21,47,19,24,16,13,13,145,9,167,4,157,255,240,251,130,248,189,244,147,242, +32,243,224,244,52,246,152,247,150,250,19,255,231,2,130,4,224,4,240,5,237,7,115,9,158,9,122,8,99,6,86,4, +68,3,73,2,179,255,124,251,211,246,85,242,100,238,208,235,227,234,9,235,99,235,138,235,125,236,95,239,251,242,189,245, +100,248,90,251,37,253,100,253,177,253,67,255,40,2,153,6,253,12,185,19,97,24,18,28,15,33,232,36,224,35,251,30, +63,25,98,19,38,13,80,7,36,3,86,1,72,1,233,1,111,3,90,6,220,9,0,13,212,14,191,13,239,9,227,5, +206,2,186,255,111,251,152,245,162,239,45,235,244,231,107,229,217,227,16,227,185,226,111,226,135,225,233,224,238,226,230,231, +142,237,103,242,98,247,183,253,247,4,229,11,98,17,42,20,101,19,227,15,173,11,236,7,39,4,243,255,191,251,0,248, +114,245,57,245,65,247,182,249,250,250,40,251,76,251,250,251,9,253,90,254,139,0,77,4,29,9,35,14,176,19,30,26, +149,32,172,37,243,39,153,38,152,34,65,30,147,26,237,21,26,15,163,7,38,1,156,251,228,246,238,242,63,239,88,235, +221,230,141,226,61,224,116,224,3,226,194,227,71,229,242,230,117,233,14,237,104,241,156,245,241,248,74,251,120,252,136,252, +102,252,210,252,219,253,34,255,190,255,220,254,48,253,187,252,236,253,105,254,237,252,158,251,139,252,33,255,5,2,28,5, +59,9,95,14,19,19,241,21,216,22,187,22,124,22,63,22,152,21,11,19,249,13,215,9,184,9,240,10,154,10,146,10, +192,12,26,16,63,19,175,21,251,22,85,22,237,18,11,13,122,6,163,0,202,250,97,244,51,239,69,236,62,234,240,232, +109,233,115,234,144,233,69,231,142,230,235,231,46,232,13,230,194,228,252,230,16,235,128,237,124,237,158,237,207,239,240,242, +189,245,211,247,115,248,144,248,50,251,198,0,86,6,70,10,231,13,164,18,183,23,232,26,146,27,82,27,214,26,239,24, +112,21,238,17,147,15,88,14,146,14,200,16,138,19,238,20,183,21,111,22,232,20,53,16,230,9,38,3,141,252,28,246, +128,239,213,234,175,234,114,237,14,240,94,242,0,245,172,247,210,250,156,254,40,1,186,0,55,254,0,252,14,251,250,249, +169,247,135,245,247,244,196,244,79,243,20,241,17,240,99,241,128,243,14,244,50,243,206,242,198,243,235,245,119,248,167,249, +54,248,210,245,158,245,218,247,242,249,229,250,95,252,206,255,133,4,222,8,36,12,107,14,162,15,50,16,203,16,81,17, +180,17,255,17,147,17,211,16,166,16,233,15,163,13,71,11,252,9,149,9,157,9,209,8,107,6,233,3,251,2,96,3, +213,3,127,3,87,2,242,0,27,0,46,0,76,0,34,255,141,252,135,249,34,247,247,245,149,245,36,245,249,244,51,246, +83,248,43,249,27,248,242,246,190,246,231,246,48,247,134,247,57,247,145,246,64,247,228,249,100,252,147,252,133,251,242,251, +135,254,150,1,32,3,221,2,177,2,65,4,222,6,2,9,128,10,213,11,103,12,153,11,53,10,128,8,197,5,174,2, +115,0,18,255,162,254,185,255,48,2,36,5,178,7,251,9,180,12,227,14,174,14,102,12,84,10,29,10,34,11,70,11, +179,9,63,7,82,4,30,1,16,254,82,250,105,245,114,241,200,239,156,238,181,236,135,235,93,236,120,238,56,240,194,240, +124,240,103,240,55,241,141,242,15,243,74,242,126,241,167,241,91,242,236,242,171,243,125,245,47,248,123,250,31,252,250,253, +24,0,149,1,43,2,178,2,246,3,151,5,180,6,55,7,223,7,47,9,9,11,33,13,173,14,189,14,132,14,100,16, +128,19,190,20,34,20,106,20,10,22,138,22,87,20,102,16,60,12,130,8,62,5,243,1,196,253,117,248,137,243,15,241, +250,240,165,241,95,242,72,243,112,244,187,245,255,246,198,248,220,250,79,251,133,250,77,251,79,253,84,254,66,254,185,253, +112,253,2,254,235,253,171,251,119,248,147,246,37,247,249,248,207,249,244,249,165,251,228,255,81,6,234,12,250,16,10,19, +204,21,13,25,131,26,134,25,227,22,68,19,192,14,45,9,20,3,143,253,242,248,65,245,86,243,130,243,68,244,199,244, +252,246,239,251,207,0,27,3,143,3,232,2,9,1,50,255,107,254,15,254,200,253,69,254,73,0,227,3,133,7,24,9, +84,8,51,6,27,3,56,255,242,250,92,246,137,241,64,237,33,234,176,231,78,229,141,227,10,227,9,227,115,227,134,229, +149,232,148,234,74,236,219,239,23,245,86,250,65,254,249,0,90,4,231,8,186,12,17,15,229,16,47,18,46,18,139,17, +152,17,19,18,77,18,32,19,250,20,149,22,124,23,178,24,211,26,193,28,117,28,34,26,25,24,33,22,231,17,168,11, +109,5,147,255,10,249,244,241,104,236,176,233,185,232,178,232,172,233,166,234,35,235,210,236,185,240,103,245,2,249,19,251, +160,252,187,254,148,0,204,0,61,0,45,0,137,255,49,253,99,250,247,248,116,249,210,250,121,251,33,251,215,250,54,251, +54,252,219,253,214,255,101,1,28,2,203,2,240,4,189,8,219,12,108,16,77,19,67,21,182,22,90,24,205,25,105,26, +177,25,220,22,97,18,215,13,91,9,90,4,117,255,35,251,184,246,182,241,225,236,131,233,135,231,253,229,45,229,216,229, +1,232,154,235,180,240,56,247,165,254,163,5,18,11,41,15,89,18,69,20,18,20,252,16,240,10,124,3,30,253,123,248, +30,244,145,239,174,235,230,232,216,231,220,232,227,234,158,237,230,241,4,247,5,251,79,253,70,255,153,2,192,6,70,9, +237,8,217,6,31,5,228,4,101,5,14,5,134,3,205,1,210,0,165,0,202,0,165,0,46,0,38,0,248,0,180,2, +229,5,57,10,74,14,178,17,83,20,67,21,175,20,180,19,137,18,247,16,157,14,197,10,253,5,53,2,80,0,255,254, +39,252,90,247,52,242,16,238,249,234,176,232,71,231,63,231,60,233,28,237,2,242,238,246,253,250,7,254,62,0,188,0, +187,254,230,251,82,250,41,249,212,246,241,244,8,246,107,249,14,253,74,0,181,2,225,3,251,3,231,2,43,1,101,0, +248,0,105,2,217,4,116,7,124,9,156,12,173,17,34,22,254,23,151,24,151,25,10,26,97,24,195,21,84,20,144,19, +166,17,74,14,4,10,85,5,17,1,57,253,213,248,32,244,125,240,121,238,240,237,225,238,224,240,6,243,151,244,94,245, +169,245,138,245,129,244,114,242,188,239,228,236,49,235,198,235,207,237,224,239,23,242,13,245,113,248,155,251,19,254,186,255, +2,1,68,2,45,3,141,3,173,3,148,3,106,3,225,3,231,4,170,5,136,6,216,7,178,7,39,5,249,2,83,3, +164,4,17,5,91,5,33,7,88,10,153,13,11,16,180,17,123,18,2,18,4,16,174,12,168,8,205,4,244,1,102,0, +207,255,42,0,98,1,242,2,26,5,28,8,150,10,213,10,87,8,234,3,0,255,48,250,29,245,227,239,35,235,153,231, +1,230,107,230,4,232,92,233,190,233,89,234,28,236,233,237,183,238,251,238,137,239,147,240,237,241,156,243,66,245,107,246, +9,248,202,250,179,253,136,0,110,3,96,5,28,7,225,10,219,15,84,19,51,21,107,23,185,26,72,30,125,33,3,36, +67,37,102,37,75,37,14,37,72,36,213,34,124,32,2,29,109,24,154,18,130,11,211,3,84,252,77,245,88,239,92,235, +13,233,70,231,187,229,64,229,137,230,202,232,53,234,11,234,5,233,58,232,82,232,245,232,124,233,11,234,216,234,167,235, +117,236,97,237,110,238,83,239,98,239,197,238,228,238,135,240,198,242,23,244,250,243,47,244,54,247,169,252,183,1,52,6, +87,12,96,19,154,24,32,28,129,31,222,34,145,37,113,38,31,36,251,30,136,25,60,22,24,21,32,20,56,18,71,16, +217,15,55,17,192,18,68,19,96,19,211,18,54,16,238,11,94,7,96,2,177,252,253,247,243,245,199,245,164,245,3,245, +125,244,168,244,150,244,64,242,154,237,25,232,87,226,192,221,183,219,70,218,106,215,229,212,43,213,17,216,129,219,67,222, +67,225,244,228,74,232,129,235,69,240,110,247,239,255,232,6,187,10,18,14,194,19,231,25,15,29,192,28,109,26,150,23, +139,21,133,20,229,19,231,19,181,20,110,21,10,22,59,23,126,24,60,25,128,25,144,24,52,22,160,20,11,22,108,25, +155,27,53,27,148,25,208,23,41,21,179,16,128,10,136,3,27,253,96,247,118,241,186,235,128,231,6,229,171,227,132,226, +71,224,238,220,16,218,148,216,82,216,247,216,140,217,147,217,154,218,75,222,91,228,22,235,157,240,173,244,57,249,149,255, +81,6,67,11,117,14,110,17,247,19,122,20,158,19,73,19,10,19,130,17,221,14,36,12,145,10,162,10,49,11,166,11, +176,12,165,13,197,13,112,14,156,15,45,15,95,14,69,16,7,19,190,18,137,16,17,16,52,17,19,17,167,14,237,10, +198,6,252,2,221,255,16,252,198,246,195,241,95,238,194,235,118,233,90,232,182,232,146,233,10,234,124,234,207,235,0,238, +254,239,155,240,186,239,139,238,68,238,235,238,107,239,187,238,148,237,249,237,72,240,193,242,151,244,38,247,72,251,217,255, +148,3,22,6,105,7,187,8,74,11,16,14,125,15,83,16,86,18,123,21,39,24,22,26,74,28,249,29,254,29,189,29, +232,29,160,28,124,25,120,22,77,20,169,17,175,13,17,9,130,4,68,0,16,253,51,251,248,249,75,249,207,249,238,250, +200,250,107,248,22,245,56,242,126,239,28,236,104,232,195,229,110,229,10,231,92,233,253,235,169,238,229,240,182,242,33,244, +177,244,186,243,58,241,167,238,43,237,219,236,241,238,140,244,239,251,221,2,248,8,160,14,118,20,153,26,41,31,244,31, +118,29,233,25,139,22,136,19,13,17,214,14,70,12,177,9,218,7,20,6,8,3,40,255,199,251,211,248,99,246,178,245, +12,246,124,245,198,244,226,245,176,248,225,251,140,254,151,0,196,2,127,5,86,8,194,10,12,12,118,11,22,10,10,10, +136,10,106,8,62,3,122,253,107,248,71,244,14,242,160,241,163,240,238,237,110,235,235,234,121,235,103,235,138,234,9,234, +144,234,92,235,58,236,114,238,235,241,92,245,160,249,208,255,10,6,23,10,198,12,237,15,18,19,251,20,107,22,182,23, +158,23,194,22,168,22,123,22,233,20,12,18,230,14,254,12,80,12,212,10,193,7,135,4,151,2,240,1,131,1,213,0, +36,0,105,255,219,254,198,254,140,254,240,253,194,253,112,254,146,255,30,0,2,255,86,252,27,249,67,246,117,244,173,243, +107,243,172,243,179,244,237,245,94,246,35,246,52,246,139,246,46,246,199,244,209,242,30,241,193,240,48,242,118,244,166,246, +95,249,84,253,182,1,225,5,50,10,30,14,161,16,67,18,29,20,54,22,227,23,118,24,152,23,129,21,34,19,177,17, +236,16,234,14,206,10,251,5,28,2,82,255,81,252,22,248,53,243,199,238,129,235,226,233,40,233,221,231,8,231,24,233, +76,237,237,240,164,243,81,246,95,248,195,249,242,251,128,254,193,254,216,252,165,252,188,255,114,3,180,5,124,6,190,5, +82,4,36,4,127,5,178,6,23,6,151,3,76,1,170,1,50,4,200,5,235,4,127,3,84,3,156,3,54,3,2,2, +206,255,53,253,71,252,241,253,83,0,115,1,124,2,206,5,235,10,255,14,250,15,24,14,240,11,118,11,10,11,193,8, +253,5,224,4,168,5,174,7,110,10,75,13,254,14,35,14,205,10,26,6,155,0,151,250,104,244,206,237,61,231,36,227, +205,226,43,228,39,229,252,229,181,231,176,234,202,237,58,239,94,239,252,239,142,241,14,244,220,247,6,253,59,3,252,9, +61,17,245,24,195,30,49,32,16,31,4,30,170,27,176,21,218,12,4,4,161,253,47,250,81,248,205,246,44,246,116,247, +34,250,62,253,156,0,128,3,2,5,67,6,119,8,11,10,196,9,211,9,184,11,202,12,16,11,198,8,175,7,246,5, +5,2,51,253,49,249,158,245,106,241,47,237,176,234,193,234,136,236,71,238,233,238,126,238,151,237,35,237,116,237,85,237, +78,236,216,235,237,236,95,239,72,243,176,248,46,255,73,6,28,13,157,18,154,22,143,25,141,27,3,28,203,26,197,24, +253,22,209,21,217,20,116,19,238,17,29,17,81,16,191,13,96,9,241,4,116,1,48,254,240,249,28,245,195,241,160,240, +113,240,229,240,132,242,73,244,203,244,71,244,177,243,60,243,226,242,107,243,12,245,111,246,99,247,164,249,180,253,189,2, +16,8,101,12,212,14,49,16,220,16,215,15,201,12,147,8,17,4,157,255,211,251,123,249,9,248,24,246,156,243,237,241, +16,242,141,243,3,245,27,246,126,247,212,248,44,249,224,248,90,249,116,251,197,254,57,2,214,4,43,6,11,7,28,9, +119,12,223,14,142,14,218,12,186,11,51,10,53,7,40,5,100,6,219,9,48,13,28,15,44,16,133,17,111,18,251,16, +106,12,186,5,63,255,116,250,35,246,70,241,92,237,47,236,188,237,78,240,33,242,114,243,56,245,142,246,248,245,183,243, +89,241,104,240,135,241,214,243,191,245,224,246,114,248,112,251,63,255,167,2,89,5,130,7,61,8,164,6,211,4,26,6, +218,9,212,12,5,14,219,13,84,12,143,10,163,9,26,8,103,4,171,255,31,252,244,250,170,251,193,252,179,253,34,255, +77,1,234,3,97,6,169,7,18,7,74,5,3,4,166,3,63,2,73,255,142,253,0,254,6,254,213,252,96,252,240,252, +240,252,255,251,237,250,219,249,129,248,96,247,34,247,157,247,210,248,155,251,129,255,222,1,175,1,150,1,49,3,104,4, +88,3,159,0,137,253,138,251,230,251,139,253,191,253,116,252,113,252,24,254,230,254,32,254,244,252,54,252,175,252,175,253, +199,252,121,250,89,250,126,253,134,1,6,4,220,4,25,6,103,9,189,13,141,16,191,16,241,15,44,16,7,17,208,16, +219,14,199,11,230,8,124,6,229,2,23,254,253,250,60,250,129,248,119,244,9,241,100,240,64,241,196,241,30,242,139,243, +34,246,104,248,91,249,145,249,33,250,161,251,228,253,211,255,99,0,233,255,21,0,52,2,141,5,213,7,81,7,145,4, +226,1,133,0,127,255,248,253,65,252,170,250,108,250,39,253,133,1,107,4,152,5,19,7,148,9,227,11,248,11,195,8, +67,4,194,1,83,1,105,0,173,254,89,254,102,0,135,3,87,6,121,8,15,10,53,11,140,11,224,9,175,5,153,0, +53,252,254,247,97,243,145,239,82,238,12,240,197,242,47,244,132,245,176,249,23,255,234,0,152,254,20,252,142,251,156,251, +125,250,59,248,125,246,15,247,10,250,119,253,90,255,83,0,144,2,142,5,165,6,230,5,99,5,47,5,186,4,223,4, +155,5,168,5,24,5,186,4,11,4,200,2,15,2,149,1,169,255,229,252,99,251,2,251,196,250,129,251,138,253,244,254, +54,255,118,0,82,3,139,5,23,6,86,6,74,7,133,8,173,9,48,11,252,12,214,13,30,13,209,11,159,10,190,8, +108,5,53,1,247,252,205,248,85,245,35,244,38,245,59,246,20,246,41,245,157,244,220,244,163,244,194,242,215,239,224,236, +24,235,115,236,220,240,172,245,146,249,196,253,125,3,82,10,37,16,210,18,182,18,92,18,203,18,35,18,34,15,193,11, +72,10,55,10,14,10,164,9,51,9,95,8,245,6,75,5,211,3,165,2,40,1,10,255,80,253,235,252,126,253,145,254, +168,255,183,255,199,254,68,254,203,254,200,255,116,0,215,255,163,253,245,250,184,248,120,246,201,243,114,241,48,240,108,239, +160,238,160,238,20,240,178,242,42,246,105,249,212,250,249,250,143,251,119,252,186,252,32,252,122,250,231,247,93,245,243,243, +55,244,121,245,100,246,21,247,160,248,235,250,88,253,16,0,36,3,31,6,222,8,200,11,84,15,172,19,134,24,12,29, +51,32,194,33,114,34,99,34,188,32,121,29,176,25,173,21,215,16,127,11,251,6,33,4,125,2,224,0,249,254,142,253, +139,252,220,250,126,248,66,246,23,244,167,241,119,239,48,238,230,237,211,238,123,241,253,244,216,246,85,246,223,245,8,247, +241,247,59,246,83,242,139,238,28,236,169,234,247,233,11,234,108,234,158,234,209,234,251,235,33,239,142,243,113,247,224,250, +81,255,169,4,64,10,167,16,155,23,40,29,45,32,63,33,180,32,42,30,16,26,190,21,210,17,59,14,116,11,237,9, +102,9,72,10,14,13,239,15,127,16,214,14,121,12,244,9,54,7,92,4,124,1,168,254,150,252,121,252,61,254,214,255, +231,255,87,255,163,254,77,252,180,247,141,242,101,238,249,234,79,231,35,227,152,223,186,222,83,225,169,229,18,233,171,234, +207,235,163,237,109,239,110,240,63,241,22,242,0,242,200,240,80,240,102,242,227,245,74,248,113,249,217,250,70,253,204,0, +247,4,247,8,11,13,102,18,31,25,153,31,34,36,211,38,8,41,5,43,156,43,50,42,204,39,160,37,66,35,164,31, +124,27,22,24,170,20,17,16,138,11,157,8,53,6,117,2,162,253,177,249,30,248,68,248,154,247,207,244,119,241,69,239, +221,237,52,236,161,233,244,229,112,226,57,225,72,226,20,227,164,226,37,227,163,229,239,231,101,232,234,231,103,231,10,231, +85,231,95,232,129,233,208,234,41,237,132,240,250,243,203,247,43,253,103,3,73,8,255,11,25,17,102,24,162,31,80,36, +117,38,213,39,221,40,104,40,211,37,10,33,134,26,114,20,186,16,91,14,5,11,197,6,113,4,179,5,150,8,242,10, +230,12,33,14,184,13,241,12,46,13,209,12,140,10,121,8,44,8,155,7,237,4,125,1,181,254,141,251,232,246,108,241, +3,236,213,230,247,225,73,221,205,216,245,213,179,213,68,214,114,214,172,215,89,218,211,220,197,222,48,225,217,227,237,229, +112,232,250,236,21,242,179,244,50,245,132,246,162,249,134,253,118,1,241,4,140,7,248,9,221,13,60,20,25,28,109,35, +135,41,9,47,143,51,216,53,48,54,223,53,157,52,93,49,194,44,156,40,93,37,241,33,215,29,170,25,232,21,156,18, +30,15,207,9,94,2,33,251,154,245,131,240,70,235,111,231,115,229,216,227,250,225,154,224,185,223,128,222,5,221,70,220, +149,220,88,221,226,221,42,222,82,223,205,226,237,231,196,235,202,236,168,236,58,237,225,237,22,237,244,234,213,232,246,231, +124,233,254,237,197,244,247,252,131,6,239,16,76,27,33,37,151,45,67,51,212,53,11,54,51,52,158,48,53,44,66,39, +147,33,185,27,107,22,109,17,202,11,204,4,14,253,117,246,143,242,211,240,89,239,73,238,71,240,217,245,20,253,122,5, +45,14,255,19,33,22,224,22,108,22,237,18,129,12,224,4,239,252,253,244,25,238,75,233,61,230,237,227,195,225,132,223, +103,221,196,219,100,218,220,216,50,215,195,213,45,213,73,214,73,217,87,221,9,226,227,231,143,238,176,244,218,249,195,254, +180,3,221,7,128,10,128,12,21,15,222,17,61,20,111,22,104,24,92,26,237,28,80,31,175,32,133,34,4,38,184,41, +54,44,43,46,54,48,122,49,116,49,110,48,171,45,16,41,171,36,43,32,2,24,150,12,92,2,58,250,228,241,83,233, +239,225,89,220,27,217,3,216,158,215,81,215,13,216,0,218,183,219,105,220,65,221,85,223,21,226,69,228,166,229,186,231, +14,236,31,241,115,243,121,242,65,241,183,241,87,242,133,241,42,240,16,240,144,241,142,243,153,245,68,249,202,255,240,7, +203,15,97,22,184,27,216,32,17,38,249,41,176,43,223,43,66,43,246,41,164,39,46,36,77,32,165,28,168,24,87,19, +75,13,199,8,90,6,192,3,214,255,72,252,228,250,174,251,240,252,6,253,96,252,250,251,79,251,241,249,149,248,114,247, +34,246,222,244,202,243,249,241,29,239,255,236,235,236,78,237,114,236,97,235,25,235,36,234,194,231,147,229,127,228,188,227, +206,226,244,225,246,225,254,227,38,232,60,237,64,242,218,246,52,251,167,255,213,3,234,6,228,8,54,10,46,11,100,12, +59,14,118,16,67,19,218,22,92,26,22,29,113,31,201,33,211,35,199,36,254,35,61,34,199,32,144,31,77,30,40,29, +101,27,2,24,129,19,251,14,93,10,15,5,113,255,200,249,129,243,103,237,158,233,117,232,109,232,146,232,127,232,241,231, +103,231,214,231,106,233,39,235,17,236,23,236,119,235,100,234,181,233,132,234,159,236,68,238,57,238,174,237,239,238,153,242, +7,247,58,250,207,251,40,253,87,255,113,1,106,2,177,3,203,6,220,9,227,10,243,11,186,15,126,21,174,27,199,33, +112,38,89,40,126,40,80,40,189,39,14,38,81,34,233,27,58,20,135,13,65,8,110,3,95,254,248,248,145,243,176,238, +98,234,142,230,190,227,159,226,13,227,176,228,162,231,247,235,195,241,77,248,9,253,206,254,47,0,150,2,70,3,75,0, +185,251,129,248,50,247,94,246,213,244,10,243,181,242,170,244,237,246,249,246,74,245,13,244,109,244,96,246,130,248,148,249, +49,251,84,255,53,4,255,6,28,8,225,8,140,8,187,6,174,4,146,2,21,0,111,254,18,254,32,254,125,255,59,3, +133,7,40,10,159,11,88,13,80,15,160,16,119,17,238,18,209,20,210,21,14,22,148,22,146,22,198,20,200,18,50,18, +136,16,70,11,168,4,165,255,151,251,26,247,87,242,158,237,85,233,132,230,150,229,202,229,139,230,252,231,2,234,217,235, +32,237,172,238,145,241,79,245,166,247,187,247,51,248,111,251,222,255,154,2,237,2,64,2,91,2,71,3,60,3,83,1, +175,254,153,252,17,251,219,249,189,249,24,251,37,253,45,0,218,4,242,9,191,14,61,20,196,25,111,29,83,31,154,32, +40,33,229,31,145,28,135,24,229,20,5,17,106,12,57,8,158,4,218,255,242,249,251,244,233,240,93,236,245,231,89,228, +59,225,245,223,7,226,251,229,129,233,184,236,84,241,229,246,107,250,239,250,242,250,49,252,219,253,156,254,248,253,21,253, +73,254,75,2,231,6,168,9,138,10,17,11,215,11,39,12,21,11,124,8,126,5,65,3,90,1,47,255,225,253,182,254, +156,0,25,1,188,255,189,254,30,255,12,255,174,253,98,252,172,251,56,251,170,251,120,253,69,0,224,3,188,7,235,10, +82,13,50,15,62,16,12,16,155,14,151,12,245,10,175,9,63,8,78,7,129,7,190,7,18,7,203,5,116,3,97,255, +105,250,246,244,103,238,156,231,142,226,223,223,17,223,237,223,223,226,192,231,242,236,26,241,148,244,20,248,92,251,145,253, +54,254,188,253,237,252,184,252,52,254,69,1,148,4,129,7,88,10,76,13,5,16,122,17,57,17,69,16,75,15,165,13, +254,10,104,8,116,7,160,8,0,11,129,13,203,15,198,17,53,19,214,19,76,19,58,17,197,13,192,9,177,6,201,5, +186,5,251,3,245,0,245,254,237,253,151,252,159,250,98,247,167,242,192,237,137,233,119,230,234,229,188,231,136,233,167,234, +244,236,61,241,82,246,226,250,21,254,170,255,130,0,169,1,112,2,60,1,86,254,27,252,247,251,200,252,208,252,43,252, +78,252,93,253,172,253,62,252,248,249,76,248,61,248,6,250,181,252,255,254,214,0,152,3,91,8,72,14,112,19,185,22, +249,23,3,23,209,19,117,15,189,11,24,9,95,6,168,3,123,2,191,2,38,3,216,3,15,5,111,5,133,4,3,3, +248,255,165,250,106,245,245,242,63,243,213,244,135,246,75,248,92,251,26,0,173,4,14,7,101,7,70,7,62,7,125,6, +77,4,165,0,96,252,197,248,168,245,215,241,157,237,114,234,18,233,3,233,60,233,204,233,88,236,78,241,180,246,83,251, +37,0,85,5,63,9,34,11,216,11,2,12,156,11,206,10,210,9,106,8,25,6,63,3,22,1,33,0,211,255,173,255, +210,255,49,1,12,4,199,6,128,8,156,10,194,13,233,16,110,19,13,21,53,21,247,19,15,18,230,15,36,13,95,9, +87,5,94,2,222,255,222,251,205,246,126,243,204,242,210,242,129,242,126,242,12,243,223,243,31,245,249,246,197,248,101,249, +169,248,226,247,36,248,150,248,253,247,247,246,244,246,25,248,81,249,192,249,168,249,247,249,1,251,42,252,116,252,75,251, +170,249,182,249,191,251,100,253,33,253,180,252,111,254,242,1,80,5,96,8,132,12,65,17,52,20,11,21,137,21,109,21, +86,19,102,16,207,13,26,10,200,4,92,0,83,254,64,253,210,251,109,250,20,249,51,247,150,245,7,245,57,244,157,242, +97,242,2,245,114,249,182,254,43,5,128,12,196,18,95,22,103,23,163,22,150,20,45,17,31,12,45,6,158,0,225,251, +97,248,155,246,160,245,113,244,119,243,152,242,167,240,155,237,242,234,30,234,57,235,189,236,100,237,33,238,138,240,61,244, +202,247,108,250,193,251,202,251,189,251,4,253,96,255,65,1,217,1,56,2,35,4,5,8,70,12,16,15,253,15,139,15, +112,14,254,13,175,14,179,14,243,12,181,11,205,12,42,14,225,13,196,13,118,15,254,16,26,16,86,13,97,10,193,7, +154,4,93,0,44,252,87,249,86,247,63,245,167,243,79,243,187,243,103,244,99,245,36,246,114,246,139,247,197,249,130,251, +193,251,62,251,101,251,238,252,114,254,18,254,111,252,41,251,21,250,38,248,105,245,23,243,26,242,245,241,245,241,142,242, +156,244,84,248,52,253,93,2,49,7,63,11,222,13,236,14,65,15,83,15,216,14,14,14,73,13,226,11,222,9,127,8, +32,8,23,8,233,7,183,6,170,3,143,255,49,252,77,250,207,248,59,246,51,243,35,242,10,244,224,247,96,252,190,0, +49,5,137,10,216,15,235,18,86,19,34,18,216,15,163,12,95,8,232,2,70,253,215,248,163,245,19,243,159,241,26,242, +42,243,47,242,106,239,88,237,91,236,224,234,163,232,31,231,123,231,151,233,87,237,125,242,75,247,223,250,188,254,22,3, +197,5,223,5,149,4,49,3,53,2,38,2,216,3,9,7,104,10,197,13,230,17,125,22,222,25,114,26,109,24,151,21, +90,19,212,17,17,16,139,13,183,11,46,12,59,14,4,16,122,16,212,15,188,14,225,12,194,9,7,6,69,2,150,254, +185,251,20,250,170,248,167,246,107,244,138,242,216,240,231,238,226,236,82,235,40,234,241,232,40,232,236,232,33,235,153,237, +246,239,119,242,188,244,28,246,85,246,121,245,75,244,108,244,107,246,91,248,232,248,13,250,175,253,127,2,206,6,185,10, +255,13,134,15,164,15,188,15,238,15,139,15,180,14,228,13,77,13,3,13,188,12,6,12,243,10,219,9,165,8,34,7, +185,5,150,4,108,3,252,2,36,4,234,5,187,7,106,10,34,13,57,14,28,14,130,13,232,11,48,9,160,5,209,0, +196,250,245,244,238,240,89,238,40,236,110,234,157,233,124,233,166,233,9,234,124,234,73,234,61,233,161,232,252,232,11,233, +204,232,183,233,131,235,244,236,43,239,35,244,152,250,73,255,2,2,95,5,170,10,244,16,200,21,14,23,92,22,29,23, +36,25,122,25,38,23,38,20,158,18,86,18,243,17,159,17,241,17,90,18,172,18,219,19,54,22,94,24,165,24,233,22, +11,20,135,16,183,12,180,8,137,3,252,252,91,247,160,244,237,242,52,239,236,233,29,230,72,229,5,230,236,229,188,228, +118,228,163,229,252,230,178,232,153,235,150,238,108,240,216,241,176,243,58,245,122,245,184,244,252,243,235,243,56,244,4,244, +46,243,144,242,19,243,92,245,114,249,70,254,218,2,90,7,144,12,138,18,215,23,122,27,159,30,151,33,98,34,223,32, +26,31,7,29,171,25,69,22,49,20,9,19,58,18,123,17,42,16,25,14,7,12,69,10,168,7,193,2,6,252,243,245, +158,242,88,241,198,239,169,237,76,237,233,239,91,244,156,248,198,250,127,250,213,249,192,250,122,252,169,252,180,250,81,248, +203,246,205,245,188,244,82,243,107,241,196,238,246,234,233,230,170,228,86,228,29,228,194,227,210,228,247,231,179,236,182,242, +141,249,104,0,18,7,103,13,148,18,141,22,226,25,34,28,1,29,16,29,110,28,133,27,70,27,18,27,186,25,89,24, +205,24,40,26,155,25,220,22,163,20,213,19,7,18,200,13,156,8,62,4,189,0,218,252,161,247,116,242,243,239,69,240, +95,241,8,242,23,242,40,242,191,243,168,246,16,248,226,246,40,245,239,243,81,242,92,240,239,238,145,237,157,235,74,234, +7,235,46,237,53,239,154,240,168,241,45,243,24,246,206,249,223,252,54,255,18,1,55,2,98,3,24,5,97,6,173,6, +138,6,157,6,36,7,211,7,171,8,200,9,44,10,172,9,50,10,114,12,153,14,247,14,29,14,81,14,11,16,57,17, +96,17,121,17,220,16,130,15,239,14,223,14,68,14,58,13,21,11,125,7,107,4,161,2,65,0,213,252,153,249,13,247, +245,245,198,246,94,247,0,246,87,244,44,244,37,244,214,241,112,237,216,233,141,232,190,231,16,230,53,229,61,231,208,235, +185,240,146,244,50,248,36,252,192,254,9,255,32,254,179,252,247,250,194,249,214,248,80,247,95,246,37,248,222,252,125,2, +136,6,9,9,101,12,53,17,171,21,10,25,23,28,237,30,29,33,205,34,29,36,117,36,54,35,131,32,163,28,123,23, +27,17,64,10,179,3,176,253,79,248,255,243,53,241,223,239,63,239,188,238,132,238,191,238,69,239,11,240,156,240,144,240, +216,240,95,242,86,244,73,245,233,244,165,244,47,246,11,249,8,251,16,251,83,250,243,250,76,253,201,254,29,253,136,249, +179,246,29,245,125,243,39,241,227,238,249,237,150,238,194,239,93,241,76,244,52,248,87,251,43,253,51,255,241,2,198,7, +107,11,234,12,89,14,247,17,154,22,178,25,66,27,166,28,205,29,17,30,54,29,132,26,121,21,189,15,243,11,19,10, +199,7,124,4,170,1,44,0,230,255,53,0,40,0,13,255,107,252,5,249,10,247,169,246,204,245,136,244,52,245,31,248, +29,251,206,252,136,253,73,253,160,251,61,249,198,246,127,243,238,238,41,234,238,230,16,230,212,230,186,231,42,232,161,233, +115,237,161,241,205,243,24,245,97,247,54,251,114,0,45,5,225,7,110,10,223,14,138,20,143,25,139,28,31,30,25,32, +149,34,34,36,250,35,6,35,115,34,54,33,162,29,172,24,42,20,10,16,2,11,94,4,37,253,96,247,242,243,122,241, +146,237,136,232,165,229,173,229,84,230,192,230,35,231,160,231,159,233,197,237,143,242,205,246,167,250,122,254,248,1,59,4, +205,4,17,4,226,2,193,1,214,255,87,252,58,248,213,244,203,242,241,241,14,241,194,239,100,239,183,240,33,243,152,245, +130,247,184,249,23,253,133,0,186,2,58,4,69,6,225,8,50,10,205,8,26,6,120,4,112,4,250,4,221,4,80,4, +46,5,70,8,99,12,17,17,229,22,3,29,196,33,236,36,154,38,56,38,237,35,8,32,133,25,242,16,127,9,200,3, +140,253,80,247,250,242,6,240,1,238,81,237,205,236,102,235,237,233,27,233,185,232,195,232,195,233,166,235,179,237,78,240, +48,244,16,248,75,250,28,251,192,251,37,253,2,255,205,255,201,254,95,253,98,253,93,254,135,254,0,254,203,253,17,253, +126,250,38,246,184,241,164,239,30,240,10,241,35,242,92,245,16,252,170,5,138,15,153,23,145,30,33,37,192,41,94,43, +236,42,15,41,12,37,252,30,75,24,128,17,157,10,55,4,13,254,94,247,99,240,176,233,18,228,153,224,154,223,20,225, +217,228,133,233,60,238,156,244,161,253,30,6,41,10,123,10,49,10,161,9,150,7,58,4,89,0,213,252,210,250,128,250, +202,250,166,250,242,249,255,248,169,247,150,245,47,243,44,241,241,239,160,239,158,239,105,239,54,240,241,242,35,246,137,248, +158,250,244,252,157,255,9,2,127,3,42,5,232,8,238,13,212,17,174,19,123,20,122,21,109,22,233,21,88,19,214,15, +253,12,75,11,216,9,23,8,6,7,164,7,127,9,220,11,182,14,168,17,16,20,15,22,108,23,21,23,123,20,180,15, +17,9,49,1,234,248,31,241,205,233,163,226,35,221,241,218,165,219,90,222,5,226,110,229,160,232,137,235,100,237,214,238, +85,240,173,240,238,239,41,240,113,242,146,245,57,248,242,250,165,254,181,2,109,5,93,5,74,3,181,1,64,1,193,0, +13,0,210,255,21,1,5,5,71,11,252,17,121,23,20,27,83,29,22,31,52,32,224,31,215,29,67,26,129,21,158,16, +27,13,140,11,250,10,136,9,253,5,64,1,10,253,172,249,201,246,4,244,124,240,94,236,235,233,151,234,207,236,71,238, +247,238,119,240,114,243,164,246,34,248,203,247,197,247,169,249,117,252,16,254,32,254,166,254,26,1,64,4,35,6,37,6, +221,4,138,3,155,2,232,0,246,253,48,251,135,249,108,248,185,247,24,248,190,249,102,252,16,255,73,0,130,0,66,1, +25,2,218,1,5,1,166,0,236,0,153,1,23,3,202,5,0,9,152,12,42,17,99,21,156,23,134,24,39,25,86,25, +188,24,26,23,238,19,192,14,215,8,204,4,31,2,114,253,71,246,55,239,203,233,227,229,189,226,88,223,36,220,30,219, +220,220,48,224,162,228,88,234,98,241,15,250,19,3,222,9,63,14,192,17,136,20,115,21,104,19,201,14,149,9,100,5, +77,2,52,255,117,251,141,248,179,247,247,247,72,248,198,247,2,246,166,244,27,245,78,246,59,247,145,248,128,251,103,0, +133,6,167,12,220,17,51,22,78,26,139,29,147,30,20,29,35,25,68,19,238,12,255,6,75,1,236,251,254,246,17,242, +45,237,111,233,104,231,61,230,97,229,59,229,64,230,14,233,219,237,96,243,82,248,107,253,86,4,7,13,156,21,189,27, +122,29,248,27,89,27,65,28,57,27,17,23,250,16,47,10,188,4,71,1,189,253,12,249,160,244,63,242,221,241,143,241, +120,240,20,240,147,241,42,244,140,246,191,248,99,251,225,253,29,255,7,255,139,254,26,254,121,252,3,249,196,245,107,244, +47,244,184,243,125,242,142,241,199,242,92,246,10,251,144,255,74,3,54,7,175,12,30,19,166,24,45,28,22,30,224,30, +222,29,183,26,17,22,29,16,12,9,215,1,208,251,213,247,31,245,112,242,150,240,198,240,37,242,143,243,88,245,232,247, +48,250,4,251,20,251,164,251,146,252,58,253,122,253,130,253,44,254,89,0,42,3,164,4,173,4,84,5,203,7,205,10, +70,12,98,11,248,8,182,6,33,5,69,2,164,252,55,246,61,241,32,237,11,233,179,229,249,227,102,228,234,230,180,234, +42,239,49,244,195,249,118,255,99,4,84,8,255,11,60,15,225,16,168,16,141,15,68,14,50,12,134,8,52,4,183,1, +168,1,156,1,137,0,168,0,30,3,187,6,235,10,129,15,133,19,78,22,5,24,132,24,199,22,175,18,228,13,15,9, +143,3,32,254,203,249,33,246,212,242,171,240,159,240,149,242,205,244,172,245,147,245,37,246,40,248,5,250,10,250,95,249, +185,249,164,250,81,251,161,251,39,251,150,249,162,247,127,246,100,246,12,246,96,244,99,242,76,242,157,244,152,247,247,249, +34,252,223,254,65,2,86,5,243,6,245,6,33,6,149,5,241,5,98,6,77,6,217,6,193,8,31,11,15,13,173,14, +111,16,163,17,162,16,167,13,225,10,6,9,204,6,165,3,154,0,27,255,170,255,218,0,144,0,22,255,124,254,21,255, +155,255,71,255,57,254,196,253,119,255,149,2,144,4,125,4,15,4,61,4,246,2,190,254,89,249,72,244,44,239,48,234, +16,230,65,227,125,226,51,228,163,231,238,235,59,241,178,247,35,254,253,2,136,5,21,6,244,5,178,5,14,4,185,0, +75,253,199,250,114,249,205,249,216,251,209,254,237,1,21,5,235,8,65,13,149,16,86,18,225,19,31,22,27,24,181,24, +42,24,134,23,86,23,187,22,68,20,255,15,109,11,53,7,169,2,143,253,155,248,162,244,198,242,60,243,249,243,15,244, +172,245,102,249,157,252,3,254,220,254,237,255,37,0,127,254,206,251,157,249,184,248,239,248,146,248,175,246,191,245,205,247, +145,250,24,251,202,249,166,248,82,248,245,247,105,246,89,243,68,240,17,239,73,239,128,239,251,239,141,241,131,244,199,248, +64,253,206,0,2,4,30,8,50,13,196,17,102,20,147,21,154,22,168,23,39,24,121,23,56,21,209,17,47,14,141,10, +69,6,31,1,125,252,252,249,131,249,205,249,241,249,155,250,86,253,41,1,118,3,240,4,97,7,105,9,251,9,5,10, +93,9,25,8,128,7,13,7,7,5,63,1,208,252,153,248,72,244,229,238,154,232,35,227,120,224,218,224,189,226,243,228, +126,231,219,234,0,240,189,246,119,252,250,254,82,255,237,255,29,1,83,1,101,0,194,255,55,0,242,1,188,4,62,7, +178,8,62,10,184,12,60,15,127,16,58,16,65,15,87,14,88,13,234,11,86,10,119,9,15,10,183,11,53,13,78,14, +243,15,79,18,64,20,26,21,62,21,185,20,231,18,82,15,251,9,219,3,252,254,75,252,131,250,60,248,100,245,149,242, +51,240,250,237,43,235,151,231,114,228,201,226,198,225,226,224,130,225,32,228,191,231,84,236,209,241,225,246,78,250,200,251, +27,252,76,252,230,251,24,250,139,247,136,245,156,244,42,244,116,243,119,243,235,245,163,250,250,255,249,4,161,9,21,14, +141,18,16,23,187,26,23,29,122,31,125,34,21,36,201,34,59,32,171,30,169,29,6,27,179,22,236,18,78,16,196,12, +248,6,189,0,167,252,107,250,89,248,88,246,111,244,27,242,131,240,169,240,236,240,232,239,201,238,222,238,155,239,95,240, +211,241,3,244,201,245,5,247,146,248,207,250,36,253,209,253,87,252,29,251,196,251,42,253,254,253,236,253,81,253,145,252, +33,251,194,248,88,246,93,244,164,242,142,241,24,242,88,244,197,246,243,248,152,252,25,2,230,7,5,13,205,16,158,18, +91,19,125,20,125,21,184,20,236,18,155,18,227,19,190,20,129,20,16,20,253,19,243,19,99,19,67,18,106,16,84,13, +92,9,127,5,186,1,135,253,61,249,32,245,180,240,164,236,143,234,216,233,115,232,184,230,190,230,9,233,58,236,198,238, +238,239,234,239,194,239,115,240,231,241,59,243,4,244,156,244,124,245,218,246,121,248,136,249,139,249,130,249,149,250,28,252, +216,252,15,253,227,253,159,255,190,1,101,4,67,8,170,12,225,15,174,17,143,19,117,22,75,25,82,26,198,25,20,25, +48,24,196,22,127,21,214,19,178,16,124,13,240,11,23,11,119,9,42,7,160,4,186,1,131,254,157,251,143,249,173,247, +195,244,241,240,190,237,44,236,160,235,88,235,15,236,161,238,13,242,154,244,76,246,135,248,146,251,48,254,128,255,183,255, +112,255,30,255,171,254,202,253,91,252,63,250,246,247,130,246,250,245,253,245,130,246,26,247,164,247,48,249,228,251,4,254, +172,254,229,254,112,255,9,0,151,0,70,1,147,2,120,5,202,9,137,13,143,15,82,17,81,20,100,23,132,24,207,23, +215,22,154,22,186,22,200,21,124,19,121,17,102,16,248,14,247,11,19,7,114,1,227,252,238,248,215,243,146,238,94,235, +84,234,130,234,215,235,60,238,39,241,103,244,162,247,222,249,91,250,130,249,101,248,226,246,208,243,208,239,235,236,238,235, +213,236,84,239,6,242,53,244,232,246,182,250,218,254,246,1,252,2,141,2,50,2,93,2,220,2,112,3,102,3,185,2, +100,2,156,2,134,2,227,1,122,1,195,1,98,2,43,3,135,4,219,6,81,10,115,14,61,18,39,21,47,23,81,24, +156,24,154,23,163,20,105,16,35,12,188,7,208,2,79,254,129,251,98,250,9,250,157,249,173,248,237,247,218,248,120,251, +193,253,240,253,185,252,151,252,59,254,148,255,25,255,57,253,15,251,163,249,57,249,3,249,88,248,129,247,84,247,25,248, +197,248,88,248,89,247,215,246,228,246,180,246,200,245,147,244,13,244,153,244,95,245,174,245,65,246,123,247,148,248,180,249, +176,251,51,254,209,0,4,4,225,7,163,11,217,14,47,18,51,22,175,25,5,27,162,26,214,25,115,24,155,21,154,17, +172,13,116,10,126,7,148,4,77,2,7,1,165,0,216,0,203,0,232,255,173,254,205,253,66,253,71,252,60,250,188,247, +220,245,192,244,37,244,37,244,161,244,246,244,224,244,236,244,152,245,218,246,59,248,224,248,160,248,134,248,63,249,73,250, +180,250,76,250,15,250,173,250,200,251,215,252,228,252,90,251,169,249,68,249,233,249,163,250,23,250,39,248,51,247,205,248, +156,251,221,253,102,255,56,1,33,4,206,7,29,11,62,13,161,14,54,16,243,17,109,19,203,20,21,22,213,22,175,22, +236,21,53,21,117,20,220,18,203,15,13,11,85,5,219,255,167,250,2,245,135,239,204,235,108,234,97,234,145,234,71,235, +17,237,156,239,129,242,144,245,21,248,96,249,240,249,235,250,137,252,50,254,181,255,90,1,100,3,174,5,43,7,242,6, +113,5,103,3,16,1,162,254,68,252,47,250,200,248,43,248,101,248,162,249,170,251,13,254,83,0,226,1,194,2,179,3, +223,4,129,5,79,5,93,5,223,6,176,9,159,12,134,14,51,15,128,15,246,15,214,15,31,14,236,10,16,7,176,2, +233,253,226,249,31,247,235,244,153,243,67,244,140,246,11,249,41,251,105,253,30,0,217,2,28,5,86,6,11,6,134,4, +42,2,31,255,201,251,101,248,70,245,224,242,24,241,253,239,185,239,166,239,159,239,90,240,203,241,107,243,119,245,97,248, +112,251,150,253,165,255,213,2,86,6,254,8,175,10,77,11,203,10,99,9,136,7,229,5,157,4,162,3,154,3,197,4, +104,6,232,7,108,9,79,11,29,13,2,14,7,14,138,13,91,12,71,10,155,7,53,5,195,3,245,2,32,2,243,0, +166,255,241,254,216,254,134,254,238,253,98,253,136,252,147,251,135,251,128,252,77,253,222,252,202,251,159,251,104,252,192,252, +37,252,212,250,225,248,41,247,211,246,69,247,3,247,30,246,196,245,7,246,250,245,127,245,34,245,21,245,111,245,1,246, +101,246,11,247,131,248,93,250,32,252,214,253,186,255,47,2,249,4,72,7,64,9,121,11,166,13,67,15,32,16,19,16, +161,15,214,15,113,16,199,15,34,13,212,9,68,7,68,5,31,3,226,0,203,254,181,252,220,250,22,250,128,250,49,251, +176,251,50,252,233,252,43,254,223,255,238,0,233,0,188,0,52,1,29,2,114,2,119,1,25,0,171,255,198,255,31,255, +107,253,197,251,97,251,0,252,150,252,234,252,145,253,241,254,182,0,126,2,106,4,193,5,246,4,90,2,199,255,180,253, +127,251,112,249,55,248,171,247,127,247,23,248,145,249,66,251,216,252,102,254,78,255,31,255,207,254,61,255,185,255,115,255, +61,255,116,0,242,2,98,5,10,7,27,8,19,9,62,10,254,10,82,10,105,8,18,6,162,3,67,1,248,254,202,252, +252,250,121,249,114,248,174,248,232,249,244,250,83,251,91,251,217,251,7,253,237,253,228,253,78,253,195,252,171,252,226,252, +235,252,244,252,176,253,17,255,235,255,184,255,194,255,161,0,9,1,143,0,51,0,23,0,193,255,138,255,224,255,37,0, +9,0,117,0,157,1,123,2,207,2,60,3,28,4,121,5,200,6,65,7,18,7,16,7,106,7,181,7,198,7,129,7, +151,6,104,5,174,4,252,3,123,2,104,0,64,254,252,251,169,249,176,247,119,246,33,246,139,246,99,247,121,248,244,249, +150,251,155,252,220,252,188,252,23,252,224,250,246,249,188,249,37,249,238,247,225,247,217,249,89,252,84,254,57,0,110,2, +250,4,159,7,164,9,118,10,76,10,18,10,95,10,171,10,164,10,191,10,192,10,37,10,98,9,199,8,10,8,0,7, +107,5,60,3,244,0,24,255,235,253,38,253,57,252,116,251,33,251,108,250,97,249,59,249,235,249,44,250,182,249,161,249, +213,250,228,252,231,254,165,0,30,2,52,3,238,3,246,3,148,2,238,255,43,253,173,250,212,247,4,245,69,243,129,242, +101,242,37,243,92,244,97,245,76,246,92,247,92,248,1,249,129,249,130,250,60,252,76,254,120,0,183,2,245,4,110,7, +64,10,131,12,15,13,6,12,147,10,114,9,73,8,99,6,16,4,182,2,28,3,123,4,244,5,159,7,122,9,230,10, +173,11,241,11,78,11,155,9,96,7,200,4,161,1,133,254,90,252,3,251,235,249,64,249,63,249,94,249,79,249,100,249, +179,249,14,250,92,250,144,250,173,250,192,250,20,251,250,251,238,252,76,253,107,253,175,253,236,253,187,253,167,252,33,251, +121,250,196,250,28,251,186,251,19,253,186,254,120,0,152,2,251,4,13,7,40,8,83,8,55,8,191,7,87,6,122,4, +20,3,103,2,120,2,95,3,210,4,229,5,12,6,242,5,62,6,59,6,11,5,245,2,158,0,26,254,111,251,71,249, +34,248,157,247,83,247,96,247,245,247,42,249,218,250,82,252,15,253,180,253,33,255,245,0,91,2,100,3,32,4,44,4, +216,3,189,3,116,3,45,2,68,0,211,254,191,253,10,252,254,249,212,248,242,248,3,250,167,251,106,253,211,254,12,0, +1,2,153,4,67,6,109,6,6,6,124,5,168,4,169,3,203,2,60,2,227,1,169,1,230,1,203,2,218,3,118,4, +107,4,205,3,223,2,11,2,82,1,83,0,31,255,22,254,81,253,194,252,40,252,150,251,172,251,35,252,235,251,7,251, +73,250,248,249,221,249,206,249,24,250,11,251,38,252,247,252,235,253,43,255,34,0,126,0,114,0,60,0,223,255,71,255, +126,254,159,253,217,252,134,252,202,252,132,253,189,254,115,0,72,2,247,3,150,5,53,7,179,8,214,9,171,10,116,11, +244,11,129,11,19,10,126,8,92,7,124,6,129,5,80,4,177,2,180,0,86,255,29,255,9,255,59,254,47,253,172,252, +165,252,125,252,15,252,244,251,119,252,55,253,235,253,107,254,158,254,173,254,90,254,254,252,215,250,218,248,84,247,19,246, +247,244,234,243,10,243,150,242,213,242,20,244,231,245,94,247,119,248,191,249,231,250,125,251,61,252,249,253,40,0,218,1, +72,3,17,5,229,6,54,8,66,9,97,10,13,11,213,10,83,10,20,10,214,9,65,9,61,8,4,7,88,6,187,6, +128,7,168,7,94,7,139,7,52,8,145,8,117,8,42,8,166,7,201,6,127,5,181,3,170,1,150,255,105,253,114,251, +29,250,19,249,0,248,82,247,102,247,255,247,216,248,21,250,183,251,249,252,62,253,10,253,237,252,171,252,41,252,126,251, +89,250,171,248,65,247,203,246,176,246,227,245,145,244,217,243,90,244,222,245,195,247,147,249,87,251,66,253,148,255,93,2, +251,4,198,6,203,7,67,8,100,8,155,8,29,9,152,9,187,9,207,9,59,10,182,10,209,10,187,10,180,10,138,10, +19,10,98,9,116,8,65,7,11,6,17,5,52,4,68,3,57,2,0,1,131,255,7,254,241,252,240,251,97,250,158,248, +120,247,244,246,121,246,137,245,72,244,101,243,23,243,3,243,17,243,83,243,196,243,113,244,48,245,212,245,182,246,56,248, +246,249,80,251,110,252,224,253,143,255,254,0,38,2,130,3,102,5,88,7,155,8,18,9,232,8,104,8,62,8,154,8, +195,8,85,8,206,7,200,7,82,8,11,9,185,9,80,10,161,10,174,10,185,10,138,10,129,9,157,7,143,5,230,3, +158,2,147,1,225,0,124,0,38,0,0,0,26,0,246,255,91,255,112,254,23,253,59,251,39,249,58,247,173,245,129,244, +221,243,14,244,244,244,41,246,107,247,127,248,116,249,148,250,183,251,123,252,211,252,3,253,72,253,169,253,38,254,179,254, +44,255,142,255,212,255,215,255,168,255,84,255,187,254,34,254,244,253,44,254,172,254,102,255,56,0,20,1,55,2,208,3, +108,5,92,6,145,6,160,6,237,6,47,7,239,6,117,6,99,6,172,6,240,6,245,6,117,6,146,5,209,4,48,4, +61,3,202,1,11,0,120,254,64,253,21,252,244,250,80,250,62,250,119,250,219,250,98,251,246,251,125,252,240,252,92,253, +186,253,242,253,26,254,38,254,171,253,158,252,140,251,196,250,51,250,188,249,31,249,82,248,216,247,218,247,2,248,100,248, +85,249,222,250,206,252,219,254,196,0,110,2,217,3,77,5,246,6,92,8,52,9,189,9,229,9,130,9,213,8,23,8, +82,7,168,6,65,6,37,6,20,6,162,5,227,4,124,4,153,4,166,4,80,4,220,3,137,3,118,3,152,3,169,3, +164,3,182,3,205,3,213,3,189,3,36,3,219,1,63,0,187,254,114,253,76,252,47,251,51,250,119,249,216,248,100,248, +118,248,230,248,51,249,124,249,1,250,111,250,112,250,34,250,216,249,168,249,98,249,26,249,44,249,129,249,183,249,210,249, +48,250,4,251,11,252,215,252,80,253,162,253,10,254,172,254,119,255,71,0,21,1,20,2,136,3,61,5,161,6,164,7, +172,8,182,9,61,10,8,10,114,9,189,8,224,7,251,6,51,6,103,5,152,4,24,4,15,4,33,4,230,3,131,3, +51,3,199,2,245,1,194,0,140,255,186,254,19,254,18,253,228,251,49,251,253,250,203,250,137,250,111,250,116,250,122,250, +115,250,87,250,44,250,24,250,74,250,148,250,160,250,153,250,196,250,5,251,75,251,139,251,182,251,11,252,162,252,62,253, +226,253,174,254,176,255,217,0,226,1,194,2,197,3,221,4,207,5,133,6,229,6,232,6,195,6,172,6,137,6,17,6, +81,5,107,4,86,3,91,2,199,1,105,1,20,1,226,0,206,0,167,0,65,0,200,255,143,255,121,255,63,255,217,254, +76,254,179,253,50,253,200,252,128,252,116,252,129,252,83,252,210,251,118,251,185,251,87,252,228,252,115,253,67,254,138,255, +43,1,158,2,176,3,129,4,242,4,4,5,245,4,188,4,61,4,126,3,151,2,200,1,49,1,193,0,140,0,129,0, +88,0,22,0,233,255,197,255,173,255,205,255,31,0,98,0,120,0,88,0,1,0,180,255,157,255,103,255,214,254,14,254, +39,253,52,252,103,251,243,250,230,250,240,250,196,250,186,250,52,251,237,251,116,252,166,252,162,252,153,252,158,252,186,252, +9,253,141,253,83,254,136,255,7,1,134,2,22,4,163,5,174,6,34,7,28,7,123,6,117,5,120,4,149,3,230,2, +144,2,97,2,40,2,244,1,249,1,91,2,196,2,204,2,151,2,105,2,69,2,59,2,117,2,6,3,178,3,37,4, +92,4,123,4,97,4,213,3,221,2,127,1,172,255,174,253,253,251,163,250,123,249,144,248,216,247,59,247,244,246,41,247, +169,247,80,248,6,249,131,249,190,249,12,250,169,250,158,251,227,252,53,254,83,255,59,0,14,1,229,1,193,2,148,3, +37,4,57,4,15,4,16,4,30,4,29,4,54,4,101,4,160,4,247,4,94,5,185,5,210,5,154,5,72,5,218,4, +72,4,185,3,9,3,22,2,17,1,37,0,104,255,199,254,32,254,150,253,37,253,153,252,34,252,232,251,184,251,143,251, +165,251,44,252,14,253,222,253,107,254,204,254,14,255,70,255,100,255,36,255,142,254,213,253,1,253,52,252,175,251,113,251, +73,251,39,251,21,251,33,251,120,251,51,252,22,253,227,253,198,254,252,255,74,1,99,2,91,3,100,4,124,5,137,6, +107,7,13,8,122,8,189,8,228,8,255,8,1,9,222,8,153,8,23,8,76,7,69,6,22,5,234,3,189,2,129,1, +114,0,154,255,161,254,112,253,82,252,135,251,13,251,154,250,230,249,27,249,123,248,244,247,109,247,53,247,134,247,32,248, +205,248,187,249,1,251,89,252,109,253,51,254,215,254,102,255,218,255,56,0,120,0,175,0,5,1,132,1,54,2,4,3, +150,3,219,3,255,3,229,3,118,3,209,2,255,1,11,1,55,0,182,255,141,255,143,255,166,255,11,0,219,0,211,1, +172,2,75,3,193,3,30,4,42,4,205,3,84,3,214,2,44,2,79,1,84,0,106,255,167,254,204,253,216,252,29,252, +164,251,64,251,220,250,114,250,47,250,88,250,229,250,154,251,59,252,210,252,186,253,246,254,16,0,224,0,143,1,2,2, +7,2,161,1,9,1,144,0,61,0,197,255,64,255,30,255,96,255,201,255,126,0,143,1,163,2,124,3,17,4,99,4, +134,4,119,4,25,4,115,3,126,2,76,1,56,0,110,255,226,254,133,254,50,254,3,254,30,254,68,254,108,254,194,254, +31,255,95,255,138,255,160,255,194,255,247,255,64,0,190,0,78,1,190,1,26,2,103,2,167,2,177,2,96,2,4,2, +184,1,58,1,187,0,117,0,108,0,172,0,209,0,148,0,82,0,35,0,236,255,192,255,118,255,241,254,80,254,151,253, +221,252,76,252,232,251,189,251,179,251,129,251,16,251,160,250,123,250,154,250,225,250,88,251,243,251,164,252,140,253,184,254, +242,255,221,0,92,1,191,1,41,2,95,2,52,2,193,1,80,1,37,1,45,1,57,1,97,1,189,1,23,2,48,2, +44,2,41,2,13,2,0,2,43,2,68,2,38,2,36,2,108,2,185,2,192,2,182,2,195,2,146,2,24,2,150,1, +254,0,89,0,216,255,124,255,81,255,102,255,174,255,35,0,157,0,254,0,95,1,164,1,167,1,123,1,2,1,38,0, +43,255,77,254,141,253,218,252,65,252,244,251,2,252,94,252,240,252,110,253,179,253,4,254,129,254,11,255,141,255,215,255, +227,255,11,0,101,0,195,0,24,1,82,1,146,1,35,2,219,2,117,3,246,3,91,4,193,4,94,5,14,6,144,6, +200,6,188,6,140,6,40,6,121,5,151,4,99,3,192,1,250,255,78,254,196,252,99,251,55,250,99,249,13,249,28,249, +87,249,144,249,203,249,59,250,231,250,146,251,7,252,86,252,153,252,172,252,147,252,144,252,168,252,213,252,64,253,219,253, +121,254,23,255,158,255,254,255,109,0,17,1,204,1,114,2,233,2,58,3,151,3,8,4,96,4,143,4,135,4,53,4, +179,3,249,2,239,1,243,0,86,0,1,0,250,255,64,0,143,0,221,0,65,1,129,1,99,1,4,1,98,0,70,255, +216,253,162,252,217,251,99,251,37,251,37,251,134,251,85,252,108,253,134,254,71,255,148,255,191,255,239,255,7,0,16,0, +9,0,243,255,22,0,141,0,253,0,35,1,27,1,21,1,27,1,14,1,224,0,143,0,34,0,214,255,238,255,57,0, +120,0,210,0,130,1,113,2,84,3,233,3,32,4,16,4,200,3,52,3,66,2,13,1,204,255,162,254,171,253,5,253, +220,252,70,253,239,253,118,254,245,254,129,255,249,255,73,0,84,0,45,0,50,0,114,0,203,0,60,1,169,1,22,2, +163,2,249,2,205,2,101,2,228,1,46,1,107,0,194,255,27,255,114,254,219,253,131,253,139,253,201,253,247,253,244,253, +201,253,179,253,205,253,218,253,167,253,81,253,31,253,46,253,74,253,91,253,129,253,185,253,7,254,120,254,236,254,90,255, +189,255,234,255,238,255,235,255,236,255,251,255,7,0,36,0,132,0,38,1,229,1,129,2,231,2,90,3,214,3,26,4, +48,4,18,4,186,3,80,3,249,2,209,2,166,2,53,2,189,1,99,1,17,1,248,0,253,0,208,0,144,0,88,0, +54,0,38,0,220,255,89,255,226,254,117,254,254,253,81,253,107,252,189,251,109,251,65,251,34,251,247,250,219,250,21,251, +144,251,41,252,228,252,153,253,65,254,255,254,197,255,107,0,230,0,76,1,164,1,223,1,36,2,153,2,9,3,81,3, +142,3,207,3,19,4,89,4,137,4,146,4,110,4,12,4,108,3,165,2,211,1,21,1,110,0,209,255,83,255,234,254, +118,254,31,254,41,254,126,254,214,254,12,255,30,255,26,255,26,255,45,255,49,255,239,254,125,254,25,254,193,253,89,253, +251,252,210,252,232,252,56,253,191,253,100,254,12,255,178,255,86,0,250,0,142,1,251,1,42,2,14,2,218,1,206,1, +193,1,124,1,26,1,196,0,166,0,210,0,14,1,34,1,25,1,33,1,90,1,167,1,221,1,229,1,186,1,126,1, +76,1,32,1,5,1,211,0,86,0,187,255,45,255,162,254,41,254,198,253,129,253,110,253,102,253,102,253,141,253,175,253, +190,253,240,253,54,254,100,254,127,254,150,254,177,254,223,254,19,255,55,255,104,255,195,255,26,0,91,0,166,0,226,0, +3,1,41,1,73,1,91,1,83,1,16,1,202,0,170,0,103,0,11,0,221,255,203,255,175,255,128,255,83,255,74,255, +76,255,93,255,166,255,232,255,9,0,117,0,54,1,249,1,172,2,87,3,3,4,160,4,238,4,233,4,172,4,42,4, +98,3,85,2,5,1,156,255,54,254,252,252,24,252,105,251,223,250,144,250,123,250,175,250,48,251,217,251,152,252,70,253, +199,253,84,254,254,254,154,255,38,0,160,0,255,0,74,1,129,1,179,1,237,1,6,2,225,1,138,1,40,1,228,0, +186,0,130,0,53,0,244,255,219,255,230,255,245,255,243,255,214,255,174,255,155,255,144,255,138,255,159,255,194,255,254,255, +116,0,247,0,84,1,154,1,232,1,50,2,73,2,25,2,194,1,83,1,219,0,141,0,92,0,16,0,189,255,146,255, +139,255,151,255,178,255,211,255,226,255,208,255,163,255,105,255,46,255,249,254,184,254,110,254,74,254,72,254,71,254,83,254, +129,254,185,254,235,254,37,255,109,255,171,255,224,255,36,0,116,0,202,0,44,1,148,1,5,2,110,2,205,2,59,3, +127,3,88,3,250,2,144,2,12,2,123,1,216,0,43,0,152,255,27,255,194,254,162,254,141,254,117,254,106,254,81,254, +52,254,41,254,36,254,37,254,46,254,46,254,46,254,82,254,165,254,242,254,29,255,98,255,178,255,211,255,242,255,29,0, +32,0,245,255,163,255,68,255,250,254,170,254,79,254,18,254,234,253,220,253,255,253,52,254,118,254,230,254,111,255,219,255, +27,0,75,0,129,0,178,0,227,0,28,1,68,1,107,1,172,1,240,1,30,2,64,2,103,2,139,2,141,2,108,2, +47,2,202,1,94,1,27,1,248,0,233,0,215,0,162,0,121,0,135,0,161,0,155,0,107,0,34,0,243,255,214,255, +150,255,82,255,59,255,55,255,52,255,60,255,81,255,118,255,170,255,221,255,18,0,66,0,104,0,168,0,252,0,43,1, +62,1,91,1,117,1,143,1,177,1,181,1,164,1,160,1,159,1,124,1,34,1,178,0,94,0,36,0,249,255,202,255, +106,255,5,255,236,254,254,254,236,254,166,254,96,254,63,254,23,254,212,253,166,253,143,253,142,253,192,253,1,254,54,254, +132,254,222,254,54,255,155,255,236,255,16,0,35,0,47,0,42,0,7,0,194,255,122,255,69,255,25,255,252,254,254,254, +3,255,244,254,240,254,17,255,55,255,84,255,133,255,208,255,34,0,108,0,169,0,245,0,84,1,149,1,170,1,164,1, +110,1,2,1,133,0,15,0,151,255,30,255,195,254,146,254,121,254,110,254,108,254,129,254,198,254,4,255,255,254,234,254, +254,254,40,255,74,255,100,255,144,255,216,255,52,0,182,0,82,1,200,1,13,2,64,2,90,2,80,2,54,2,26,2, +248,1,215,1,187,1,150,1,129,1,146,1,151,1,122,1,87,1,34,1,210,0,127,0,47,0,221,255,144,255,84,255, +55,255,54,255,64,255,86,255,122,255,177,255,238,255,8,0,3,0,3,0,4,0,236,255,176,255,111,255,73,255,36,255, +228,254,167,254,135,254,120,254,106,254,111,254,128,254,141,254,200,254,69,255,200,255,66,0,193,0,46,1,172,1,69,2, +189,2,15,3,87,3,121,3,98,3,43,3,229,2,121,2,213,1,25,1,95,0,160,255,229,254,48,254,125,253,229,252, +123,252,65,252,37,252,2,252,225,251,224,251,249,251,44,252,111,252,163,252,220,252,61,253,160,253,236,253,79,254,206,254, +68,255,194,255,87,0,231,0,115,1,4,2,133,2,255,2,98,3,153,3,193,3,212,3,169,3,98,3,46,3,253,2, +197,2,144,2,104,2,94,2,99,2,96,2,78,2,28,2,200,1,116,1,24,1,156,0,24,0,154,255,32,255,194,254, +116,254,32,254,230,253,185,253,107,253,16,253,203,252,139,252,79,252,42,252,40,252,83,252,150,252,206,252,19,253,130,253, +1,254,109,254,207,254,49,255,146,255,235,255,75,0,199,0,60,1,147,1,240,1,73,2,126,2,168,2,213,2,235,2, +233,2,236,2,8,3,34,3,43,3,59,3,62,3,40,3,31,3,14,3,232,2,203,2,142,2,46,2,237,1,171,1, +64,1,196,0,46,0,145,255,17,255,134,254,240,253,117,253,5,253,165,252,112,252,85,252,68,252,60,252,71,252,129,252, +201,252,13,253,111,253,210,253,13,254,72,254,125,254,148,254,161,254,153,254,126,254,137,254,178,254,218,254,17,255,94,255, +169,255,230,255,41,0,123,0,170,0,185,0,227,0,26,1,56,1,70,1,98,1,156,1,209,1,239,1,29,2,59,2, +55,2,84,2,131,2,139,2,137,2,152,2,166,2,168,2,144,2,110,2,64,2,237,1,150,1,85,1,18,1,194,0, +112,0,41,0,233,255,161,255,110,255,90,255,48,255,236,254,187,254,149,254,110,254,78,254,19,254,197,253,156,253,128,253, +75,253,31,253,246,252,191,252,175,252,198,252,228,252,25,253,101,253,200,253,55,254,137,254,225,254,101,255,214,255,29,0, +87,0,143,0,214,0,29,1,87,1,157,1,238,1,72,2,156,2,209,2,12,3,79,3,93,3,63,3,20,3,235,2, +204,2,144,2,68,2,26,2,232,1,153,1,87,1,18,1,193,0,115,0,30,0,196,255,114,255,32,255,202,254,125,254, +89,254,93,254,98,254,94,254,86,254,70,254,66,254,79,254,81,254,67,254,59,254,61,254,37,254,236,253,180,253,141,253, +116,253,112,253,107,253,102,253,129,253,170,253,212,253,34,254,146,254,249,254,98,255,221,255,81,0,184,0,31,1,132,1, +236,1,92,2,196,2,24,3,86,3,128,3,159,3,166,3,149,3,133,3,111,3,67,3,18,3,229,2,186,2,136,2, +65,2,234,1,158,1,79,1,222,0,96,0,245,255,140,255,30,255,198,254,130,254,80,254,63,254,37,254,243,253,209,253, +190,253,161,253,120,253,61,253,5,253,234,252,225,252,247,252,64,253,162,253,39,254,222,254,151,255,53,0,203,0,72,1, +147,1,186,1,209,1,209,1,182,1,163,1,179,1,208,1,229,1,247,1,13,2,39,2,49,2,19,2,220,1,139,1, +21,1,158,0,71,0,22,0,251,255,212,255,159,255,114,255,68,255,23,255,236,254,169,254,78,254,248,253,179,253,116,253, +51,253,21,253,42,253,71,253,100,253,143,253,173,253,190,253,215,253,243,253,17,254,57,254,107,254,160,254,221,254,54,255, +149,255,213,255,22,0,116,0,206,0,18,1,71,1,126,1,174,1,198,1,223,1,17,2,68,2,94,2,87,2,58,2, +28,2,250,1,197,1,136,1,86,1,41,1,237,0,173,0,109,0,17,0,202,255,188,255,152,255,77,255,32,255,18,255, +15,255,21,255,19,255,31,255,67,255,96,255,106,255,114,255,129,255,144,255,151,255,160,255,175,255,203,255,250,255,52,0, +131,0,212,0,252,0,30,1,79,1,91,1,70,1,22,1,193,0,112,0,46,0,224,255,160,255,124,255,107,255,105,255, +102,255,86,255,56,255,22,255,9,255,255,254,226,254,202,254,189,254,173,254,149,254,125,254,132,254,167,254,197,254,225,254, +7,255,60,255,133,255,193,255,248,255,95,0,215,0,42,1,99,1,154,1,214,1,32,2,105,2,162,2,211,2,250,2, +19,3,25,3,250,2,191,2,136,2,76,2,247,1,151,1,40,1,176,0,75,0,231,255,125,255,39,255,227,254,178,254, +171,254,182,254,190,254,211,254,254,254,47,255,86,255,116,255,140,255,149,255,144,255,125,255,98,255,71,255,31,255,242,254, +206,254,153,254,98,254,69,254,30,254,242,253,219,253,194,253,181,253,210,253,15,254,106,254,201,254,21,255,127,255,6,0, +122,0,232,0,91,1,193,1,23,2,89,2,144,2,200,2,242,2,253,2,229,2,193,2,154,2,79,2,235,1,159,1, +86,1,244,0,156,0,92,0,31,0,226,255,192,255,185,255,167,255,149,255,160,255,154,255,125,255,121,255,127,255,112,255, +82,255,41,255,11,255,1,255,255,254,245,254,214,254,172,254,133,254,89,254,57,254,45,254,15,254,251,253,20,254,43,254, +60,254,120,254,211,254,33,255,94,255,152,255,208,255,1,0,70,0,155,0,210,0,5,1,88,1,154,1,190,1,226,1, +248,1,240,1,216,1,179,1,133,1,87,1,29,1,211,0,149,0,113,0,82,0,37,0,240,255,191,255,148,255,98,255, +42,255,253,254,216,254,179,254,156,254,155,254,177,254,233,254,52,255,138,255,244,255,94,0,163,0,201,0,237,0,24,1, +52,1,53,1,39,1,12,1,234,0,201,0,161,0,122,0,103,0,94,0,68,0,16,0,214,255,171,255,142,255,112,255, +76,255,40,255,15,255,6,255,5,255,13,255,36,255,73,255,103,255,125,255,148,255,154,255,135,255,115,255,100,255,75,255, +39,255,15,255,26,255,46,255,57,255,79,255,107,255,130,255,162,255,198,255,231,255,4,0,14,0,15,0,34,0,66,0, +84,0,76,0,80,0,112,0,137,0,151,0,163,0,169,0,195,0,221,0,215,0,214,0,211,0,182,0,163,0,156,0, +148,0,145,0,124,0,104,0,108,0,83,0,46,0,32,0,247,255,176,255,128,255,98,255,66,255,39,255,26,255,19,255, +11,255,27,255,68,255,80,255,66,255,74,255,89,255,96,255,110,255,131,255,152,255,181,255,216,255,255,255,38,0,70,0, +98,0,130,0,154,0,169,0,178,0,166,0,132,0,100,0,72,0,39,0,8,0,237,255,213,255,190,255,180,255,188,255, +199,255,207,255,223,255,244,255,20,0,70,0,120,0,167,0,208,0,243,0,39,1,91,1,110,1,113,1,110,1,84,1, +30,1,210,0,134,0,73,0,10,0,202,255,150,255,107,255,79,255,77,255,97,255,133,255,176,255,223,255,17,0,55,0, +76,0,101,0,132,0,144,0,135,0,114,0,76,0,24,0,230,255,181,255,130,255,77,255,22,255,231,254,198,254,168,254, +150,254,155,254,165,254,172,254,193,254,223,254,238,254,245,254,9,255,30,255,37,255,42,255,57,255,88,255,136,255,180,255, +220,255,21,0,84,0,145,0,215,0,24,1,65,1,94,1,118,1,132,1,133,1,123,1,113,1,100,1,65,1,28,1, +23,1,29,1,32,1,48,1,69,1,79,1,87,1,89,1,74,1,48,1,16,1,236,0,189,0,124,0,55,0,252,255, +190,255,122,255,61,255,8,255,204,254,131,254,67,254,25,254,250,253,225,253,225,253,248,253,13,254,36,254,75,254,126,254, +179,254,221,254,253,254,36,255,75,255,95,255,108,255,129,255,158,255,192,255,240,255,42,0,90,0,139,0,208,0,9,1, +49,1,100,1,138,1,154,1,175,1,187,1,178,1,167,1,158,1,149,1,125,1,87,1,61,1,28,1,238,0,211,0, +182,0,141,0,114,0,84,0,40,0,4,0,228,255,200,255,181,255,156,255,129,255,100,255,61,255,31,255,12,255,243,254, +226,254,223,254,225,254,224,254,216,254,215,254,231,254,254,254,20,255,40,255,51,255,55,255,65,255,87,255,110,255,126,255, +138,255,149,255,157,255,172,255,207,255,243,255,8,0,29,0,65,0,98,0,116,0,129,0,152,0,177,0,200,0,226,0, +248,0,6,1,26,1,49,1,60,1,61,1,46,1,19,1,255,0,240,0,216,0,176,0,129,0,94,0,55,0,2,0, +214,255,170,255,115,255,72,255,40,255,8,255,237,254,212,254,206,254,221,254,237,254,3,255,35,255,67,255,100,255,126,255, +139,255,154,255,164,255,161,255,155,255,149,255,143,255,134,255,123,255,126,255,140,255,155,255,178,255,201,255,215,255,226,255, +232,255,251,255,31,0,64,0,86,0,107,0,127,0,152,0,177,0,194,0,204,0,211,0,213,0,213,0,209,0,199,0, +191,0,191,0,184,0,164,0,148,0,149,0,145,0,126,0,116,0,114,0,105,0,103,0,103,0,85,0,71,0,69,0, +63,0,55,0,41,0,23,0,11,0,246,255,221,255,210,255,196,255,177,255,166,255,147,255,128,255,123,255,109,255,89,255, +83,255,80,255,67,255,55,255,52,255,59,255,67,255,84,255,115,255,143,255,161,255,187,255,218,255,246,255,21,0,53,0, +69,0,75,0,87,0,102,0,113,0,117,0,114,0,118,0,125,0,113,0,91,0,78,0,71,0,61,0,46,0,28,0, +18,0,18,0,20,0,19,0,19,0,23,0,17,0,2,0,248,255,237,255,216,255,197,255,182,255,166,255,154,255,144,255, +137,255,138,255,149,255,154,255,153,255,161,255,179,255,192,255,207,255,225,255,234,255,246,255,5,0,12,0,16,0,20,0, +16,0,13,0,16,0,17,0,14,0,14,0,14,0,14,0,12,0,15,0,28,0,36,0,34,0,39,0,47,0,42,0, +36,0,39,0,41,0,41,0,40,0,40,0,44,0,49,0,47,0,36,0,22,0,14,0,2,0,238,255,222,255,211,255, +208,255,217,255,221,255,224,255,242,255,3,0,13,0,23,0,21,0,15,0,16,0,8,0,249,255,241,255,238,255,236,255, +237,255,238,255,242,255,248,255,253,255,3,0,7,0,1,0,251,255,249,255,250,255,251,255,249,255,244,255,241,255,236,255, +226,255,215,255,204,255,192,255,181,255,171,255,159,255,155,255,160,255,169,255,178,255,186,255,190,255,194,255,201,255,205,255, +209,255,223,255,239,255,251,255,14,0,33,0,46,0,68,0,90,0,99,0,106,0,113,0,115,0,113,0,101,0,91,0, +95,0,106,0,109,0,110,0,119,0,127,0,123,0,119,0,124,0,113,0,84,0,63,0,51,0,32,0,14,0,3,0, +242,255,225,255,220,255,219,255,209,255,196,255,184,255,169,255,150,255,136,255,127,255,116,255,111,255,119,255,131,255,149,255, +172,255,179,255,180,255,198,255,219,255,229,255,235,255,247,255,8,0,20,0,30,0,49,0,63,0,77,0,97,0,107,0, +108,0,109,0,105,0,102,0,99,0,92,0,90,0,88,0,82,0,81,0,82,0,76,0,70,0,64,0,54,0,39,0, +23,0,7,0,247,255,230,255,210,255,188,255,180,255,175,255,165,255,161,255,168,255,174,255,172,255,167,255,174,255,187,255, +192,255,190,255,187,255,184,255,180,255,176,255,177,255,182,255,192,255,207,255,221,255,235,255,255,255,12,0,17,0,31,0, +44,0,46,0,44,0,43,0,42,0,41,0,45,0,53,0,56,0,55,0,58,0,60,0,62,0,63,0,59,0,50,0, +41,0,39,0,39,0,31,0,24,0,19,0,7,0,247,255,240,255,235,255,227,255,213,255,201,255,202,255,207,255,210,255, +218,255,227,255,237,255,255,255,17,0,22,0,25,0,34,0,37,0,28,0,20,0,15,0,5,0,247,255,233,255,223,255, +215,255,209,255,208,255,206,255,203,255,205,255,211,255,215,255,224,255,233,255,238,255,247,255,0,0,3,0,7,0,12,0, +17,0,16,0,10,0,8,0,6,0,3,0,1,0,255,255,255,255,0,0,0,0,3,0,8,0,9,0,10,0,17,0, +23,0,26,0,30,0,28,0,20,0,21,0,28,0,29,0,29,0,32,0,30,0,29,0,37,0,38,0,31,0,25,0, +18,0,6,0,255,255,249,255,242,255,235,255,233,255,234,255,233,255,232,255,237,255,246,255,250,255,254,255,5,0,11,0, +14,0,11,0,9,0,7,0,2,0,251,255,247,255,238,255,226,255,217,255,210,255,209,255,210,255,209,255,208,255,208,255, +212,255,223,255,229,255,235,255,243,255,245,255,247,255,0,0,6,0,7,0,12,0,19,0,19,0,18,0,18,0,16,0, +12,0,11,0,10,0,10,0,13,0,19,0,24,0,24,0,24,0,26,0,25,0,23,0,21,0,14,0,7,0,4,0, +3,0,2,0,2,0,1,0,1,0,4,0,9,0,13,0,12,0,12,0,14,0,14,0,13,0,14,0,13,0,9,0, +3,0,255,255,1,0,254,255,249,255,248,255,248,255,247,255,249,255,250,255,253,255,0,0,1,0,5,0,9,0,11,0, +9,0,3,0,253,255,250,255,250,255,246,255,237,255,232,255,231,255,228,255,225,255,230,255,237,255,240,255,243,255,248,255, +252,255,254,255,255,255,0,0,0,0,3,0,4,0,4,0,6,0,6,0,5,0,8,0,11,0,13,0,13,0,12,0, +12,0,8,0,1,0,254,255,251,255,247,255,246,255,246,255,245,255,247,255,253,255,255,255,250,255,250,255,0,0,255,255, +248,255,245,255,244,255,244,255,247,255,249,255,254,255,3,0,3,0,2,0,2,0,0,0,253,255,250,255,247,255,248,255, +248,255,247,255,249,255,254,255,1,0,2,0,3,0,5,0,4,0,2,0,3,0,5,0,5,0,7,0,11,0,15,0, +18,0,22,0,26,0,28,0,28,0,27,0,25,0,23,0,20,0,18,0,16,0,15,0,16,0,16,0,13,0,10,0, +9,0,7,0,5,0,4,0,3,0,255,255,252,255,251,255,249,255,249,255,252,255,252,255,249,255,248,255,245,255,241,255, +238,255,234,255,230,255,226,255,224,255,223,255,224,255,225,255,230,255,239,255,244,255,245,255,250,255,255,255,4,0,9,0, +12,0,15,0,19,0,22,0,26,0,29,0,30,0,30,0,30,0,28,0,23,0,15,0,9,0,6,0,2,0,252,255, +251,255,252,255,253,255,254,255,254,255,252,255,252,255,253,255,250,255,247,255,247,255,246,255,243,255,242,255,241,255,238,255, +238,255,239,255,237,255,237,255,238,255,240,255,241,255,243,255,246,255,248,255,250,255,254,255,1,0,0,0,255,255,1,0, +4,0,5,0,4,0,4,0,4,0,4,0,6,0,6,0,5,0,4,0,3,0,2,0,3,0,3,0,2,0,2,0, +2,0,2,0,5,0,7,0,9,0,11,0,12,0,11,0,13,0,13,0,11,0,8,0,7,0,6,0,7,0,5,0, +3,0,3,0,2,0,0,0,0,0,253,255,251,255,252,255,250,255,249,255,249,255,248,255,248,255,250,255,251,255,252,255, +252,255,253,255,254,255,253,255,252,255,253,255,254,255,253,255,252,255,252,255,252,255,251,255,252,255,255,255,0,0,0,0, +255,255,254,255,255,255,255,255,253,255,252,255,252,255,253,255,253,255,252,255,254,255,0,0,1,0,1,0,2,0,2,0, +3,0,3,0,3,0,4,0,4,0,5,0,6,0,7,0,7,0,7,0,8,0,7,0,7,0,6,0,5,0,4,0, +3,0,3,0,3,0,3,0,2,0,1,0,0,0,255,255,253,255,252,255,251,255,250,255,250,255,251,255,251,255,251,255, +253,255,254,255,255,255,1,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,0,0, +255,255,254,255,254,255,252,255,251,255,250,255,249,255,250,255,250,255,250,255,250,255,251,255,251,255,253,255,254,255,254,255, +0,0,2,0,3,0,3,0,4,0,5,0,6,0,6,0,6,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0, +1,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,0,0,2,0,3,0,3,0,3,0,3,0, +3,0,4,0,4,0,2,0,0,0,0,0,0,0,254,255,253,255,254,255,254,255,255,255,254,255,253,255,254,255,253,255, +252,255,253,255,253,255,252,255,253,255,253,255,253,255,255,255,0,0,1,0,2,0,1,0,2,0,3,0,2,0,1,0, +2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,255,255, +253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0, +3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,0,0,255,255,254,255, +254,255,254,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,1,0,0,0, +1,0,0,0,254,255,254,255,254,255,253,255,252,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,0,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,255,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0,255,255,254,255, +255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0, +3,0,4,0,4,0,3,0,2,0,2,0,0,0,255,255,255,255,254,255,252,255,251,255,252,255,251,255,251,255,252,255, +251,255,251,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,3,0,3,0, +3,0,3,0,3,0,4,0,5,0,3,0,2,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,252,255, +252,255,253,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/chickenplop.pcm b/src/client/sound/data/chickenplop.pcm new file mode 100755 index 0000000..7d6d159 --- /dev/null +++ b/src/client/sound/data/chickenplop.pcm @@ -0,0 +1,497 @@ +unsigned char PCM_chickenplop[15812] = { +1,0,0,0,2,0,0,0,68,172,0,0,218,30,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +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,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255, +254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,251,255,252,255,254,255,253,255,253,255,252,255,252,255, +253,255,255,255,1,0,0,0,255,255,1,0,255,255,255,255,1,0,254,255,254,255,0,0,255,255,255,255,2,0,3,0, +7,0,8,0,8,0,10,0,12,0,12,0,10,0,9,0,11,0,4,0,254,255,255,255,0,0,252,255,249,255,250,255, +251,255,249,255,250,255,255,255,1,0,2,0,3,0,10,0,16,0,14,0,18,0,24,0,26,0,32,0,37,0,40,0, +45,0,38,0,36,0,46,0,41,0,37,0,45,0,41,0,33,0,37,0,42,0,36,0,20,0,16,0,23,0,31,0, +40,0,47,0,84,0,115,0,85,0,60,0,36,0,254,255,0,0,226,255,187,255,237,255,9,0,13,0,53,0,51,0, +61,0,69,0,255,255,232,255,230,255,188,255,234,255,24,0,199,255,145,255,197,255,22,0,70,0,65,0,40,0,22,0, +13,0,5,0,222,255,156,255,115,255,118,255,144,255,199,255,28,0,93,0,120,0,135,0,105,0,28,0,237,255,224,255, +200,255,167,255,128,255,127,255,198,255,65,0,170,0,98,0,203,255,29,0,142,0,79,0,79,0,27,0,115,255,98,255, +97,255,107,255,237,255,6,0,114,0,55,1,201,0,80,0,95,0,218,255,75,255,164,254,5,254,158,254,116,255,132,255, +144,255,243,255,59,0,216,255,76,255,97,255,174,255,175,255,63,255,25,255,178,255,190,255,164,255,82,0,65,0,116,255, +23,255,238,254,26,255,138,255,12,0,116,0,17,0,188,255,51,0,91,0,252,255,226,255,46,0,237,255,11,255,229,254, +44,255,142,255,59,0,1,0,193,255,240,255,108,255,141,255,232,255,231,255,117,0,240,255,248,255,217,0,162,0,249,4, +109,10,177,7,170,3,237,2,60,2,1,1,92,253,45,254,121,4,85,4,234,4,9,10,251,5,242,254,74,253,44,253, +31,1,180,3,219,255,21,253,77,253,126,1,70,6,162,3,237,1,72,4,99,255,48,248,51,248,115,249,230,246,81,245, +41,248,28,250,146,247,32,245,180,244,139,245,211,248,101,252,222,253,78,255,75,0,60,253,136,248,49,247,104,247,161,246, +105,246,211,247,38,250,199,250,134,249,8,249,231,248,126,249,16,251,20,252,31,255,202,2,223,2,227,2,207,3,54,3, +106,2,79,2,97,4,210,6,2,6,2,5,129,4,0,4,183,5,244,5,81,5,193,7,20,8,184,5,39,6,19,9, +174,11,57,11,91,9,39,10,201,11,88,12,195,11,98,10,183,10,213,10,49,9,11,10,254,11,174,10,116,8,249,7, +211,7,53,8,109,10,92,11,203,10,189,12,15,13,60,9,70,7,71,7,56,7,162,5,126,255,130,251,23,253,70,252, +211,249,35,249,245,247,246,247,240,248,179,248,154,248,210,248,181,248,143,247,189,247,243,251,154,253,92,251,60,252,78,252, +163,247,11,242,138,235,214,230,24,230,19,228,220,225,89,227,204,229,94,232,13,235,161,234,88,231,101,228,48,227,187,227, +144,228,242,227,117,226,157,224,6,223,89,224,30,227,155,227,208,227,137,228,60,228,108,229,113,232,74,236,207,241,255,245, +4,249,114,254,161,2,152,4,153,9,196,16,210,23,117,32,74,41,170,46,167,48,85,50,211,52,83,56,212,62,82,70, +172,74,250,77,239,82,94,87,43,89,50,90,96,93,55,95,172,91,233,87,65,86,95,82,147,77,68,74,0,71,101,67, +230,62,144,57,6,51,13,41,195,29,79,20,125,12,12,7,157,2,241,251,29,243,123,233,26,225,92,218,23,211,212,204, +113,200,248,194,138,189,221,186,222,185,101,184,130,181,92,179,222,179,54,181,231,182,223,185,13,189,82,192,201,196,146,202, +130,209,92,216,18,221,241,224,22,231,56,238,117,244,130,251,111,2,136,7,3,13,55,18,0,21,153,23,136,26,160,27, +18,27,150,26,28,27,185,26,13,24,134,21,159,18,76,13,209,7,177,2,165,252,176,246,107,240,192,233,15,228,58,223, +126,219,176,215,43,210,152,205,174,202,87,199,153,197,201,198,49,201,252,203,63,206,137,208,75,212,39,217,146,223,153,230, +138,236,114,244,139,254,99,6,42,13,135,21,135,29,18,36,247,41,48,48,52,54,163,57,239,59,21,63,179,63,227,61, +196,61,114,61,207,58,212,56,65,55,190,50,129,43,226,35,92,29,173,23,29,17,145,9,192,2,141,252,155,245,87,238, +130,232,224,228,15,226,237,222,184,220,215,219,212,218,204,217,187,217,45,219,36,223,110,228,60,232,173,235,91,241,116,247, +236,251,226,0,84,7,210,12,186,16,80,20,118,23,100,25,188,25,231,24,168,23,229,21,229,19,158,17,91,13,252,7, +233,3,82,255,37,248,126,240,34,234,61,228,84,222,50,217,232,212,240,208,0,206,90,204,53,203,57,203,24,205,224,207, +169,210,164,213,65,218,218,224,89,231,103,237,217,244,131,253,37,6,80,14,196,21,180,28,69,35,255,40,27,46,12,51, +5,55,127,57,239,58,248,58,113,57,210,54,57,50,33,44,184,38,255,32,53,25,48,16,196,6,132,253,134,244,67,235, +183,226,163,219,223,213,91,209,254,204,11,201,166,198,26,197,100,197,131,200,76,204,142,208,188,214,164,222,143,231,80,240, +125,249,67,4,32,15,92,26,123,38,209,48,156,57,32,66,34,73,133,79,97,85,211,88,212,90,225,91,190,90,134,87, +123,82,45,76,244,68,46,60,164,50,254,40,93,30,201,18,194,6,160,250,207,238,51,227,66,216,172,206,111,198,185,191, +72,186,195,181,189,178,105,177,184,177,133,179,86,182,220,186,130,193,62,201,13,210,217,219,67,229,189,238,150,249,203,4, +11,15,112,24,205,32,189,39,19,46,13,52,2,56,159,57,148,58,187,58,10,57,131,54,114,51,38,46,154,38,111,30, +29,22,180,13,184,5,156,253,171,244,162,235,22,227,233,218,161,211,170,205,251,200,218,197,31,196,60,195,27,195,238,195, +214,197,155,200,171,204,240,210,166,218,251,226,32,236,162,244,197,251,227,2,7,10,17,17,23,24,254,29,126,34,91,37, +141,38,194,39,173,40,119,40,39,40,127,38,159,34,11,30,89,24,220,17,28,12,65,6,4,0,213,249,111,243,181,237, +22,233,52,229,8,226,97,223,74,222,2,223,184,223,168,224,192,226,65,229,12,232,185,235,150,240,224,245,175,250,239,255, +243,5,0,12,243,17,212,22,207,26,221,30,153,33,208,34,86,35,101,34,188,32,198,30,110,27,109,23,53,19,135,14, +176,9,7,4,189,253,133,247,67,241,214,235,78,231,51,227,176,223,117,219,91,215,2,214,46,214,236,214,236,216,48,219, +91,222,89,227,224,232,21,239,22,246,170,252,56,3,68,10,104,17,129,24,70,31,193,37,195,43,75,48,166,51,6,55, +240,57,69,59,69,59,85,58,221,55,144,51,236,45,204,39,215,33,146,27,185,20,13,14,67,7,5,0,64,249,31,243, +57,237,123,231,215,225,218,220,11,217,66,214,152,212,39,212,172,212,11,214,144,216,129,220,102,225,247,230,56,237,24,243, +49,248,135,253,61,3,49,9,105,15,19,21,178,25,57,29,137,31,104,33,82,35,198,36,132,37,59,37,130,35,191,32, +93,29,31,25,54,20,149,15,60,11,13,6,38,0,192,250,195,245,141,240,247,235,185,232,250,229,79,227,62,225,212,223, +18,223,255,222,127,223,79,225,106,228,69,231,159,233,95,236,160,239,111,243,244,247,207,252,126,1,149,5,226,8,111,11, +133,13,117,15,224,16,145,17,26,18,45,18,2,17,16,15,11,13,250,10,249,8,249,6,77,4,211,0,85,253,252,249, +106,246,15,243,94,240,63,238,146,236,63,235,89,234,181,233,47,233,155,233,54,235,54,237,171,239,119,242,188,244,195,246, +20,249,140,251,96,254,182,1,23,5,226,7,246,9,184,11,15,13,192,13,58,14,107,14,242,13,13,13,175,11,136,9, +178,6,146,3,252,0,2,255,175,252,252,249,60,247,91,244,235,241,1,240,0,238,88,236,156,235,126,235,139,235,170,235, +69,236,61,237,74,238,100,240,89,243,213,245,163,248,40,252,86,255,151,2,237,5,101,8,174,10,91,13,232,15,244,17, +80,19,65,20,174,20,33,20,103,19,230,18,244,17,186,16,70,15,95,13,116,11,60,9,96,6,190,3,141,1,37,255, +183,252,190,250,13,249,120,247,50,246,169,245,21,246,197,246,119,247,229,248,131,250,208,251,228,253,63,0,236,1,19,4, +206,6,73,9,181,11,205,13,171,15,201,17,97,19,31,20,80,20,15,20,228,19,160,19,163,18,50,17,130,15,115,13, +184,10,62,7,203,3,152,0,82,253,45,250,253,246,166,243,182,240,48,238,198,235,188,233,173,232,112,232,56,232,38,232, +106,232,159,232,143,233,213,235,111,238,223,240,132,243,94,246,59,249,62,252,145,255,230,2,30,6,57,9,218,11,70,14, +177,16,136,18,179,19,28,20,4,20,7,20,110,19,114,18,11,18,8,17,234,14,114,12,130,9,193,6,103,4,8,2, +15,0,183,253,220,250,186,248,168,246,209,244,24,244,71,243,212,242,155,243,9,244,89,244,172,245,54,247,176,248,124,250, +165,252,25,255,110,1,93,3,234,4,105,6,68,8,57,10,254,11,92,13,32,14,160,14,140,14,155,13,132,12,66,11, +182,9,62,8,126,6,95,4,17,2,128,255,222,252,229,249,215,246,179,244,255,242,21,241,61,239,132,237,108,236,47,236, +22,236,51,236,236,236,230,237,250,238,143,240,236,242,179,245,157,248,137,251,48,254,7,1,37,4,7,7,9,10,182,12, +117,14,87,16,51,18,80,19,93,20,20,21,240,20,12,20,105,18,11,17,18,16,74,14,205,11,172,8,81,5,15,3, +246,0,244,253,223,250,180,247,124,244,238,241,175,239,153,237,52,236,142,235,76,235,43,235,105,235,27,236,44,237,10,239, +94,241,192,243,239,246,134,250,99,253,13,0,60,3,154,6,205,9,197,12,165,15,136,18,251,20,143,22,199,23,28,25, +252,25,31,26,244,25,91,25,222,23,139,21,243,18,149,16,251,13,188,10,103,7,74,4,11,1,176,253,155,250,141,247, +50,244,87,241,42,239,180,236,129,234,106,233,188,232,87,232,78,232,57,232,120,232,106,233,67,235,249,237,94,240,90,242, +205,244,15,247,66,249,181,252,86,0,161,2,162,4,23,7,2,9,107,10,63,12,35,14,86,15,213,15,6,16,30,16, +122,15,45,14,9,13,65,11,1,9,21,8,30,7,132,4,39,2,127,0,94,254,93,252,190,250,17,249,191,247,130,246, +30,245,130,244,113,244,12,244,240,243,61,244,109,244,70,245,198,246,204,247,176,248,27,250,206,251,180,253,131,255,245,0, +119,2,237,3,158,4,202,4,133,5,226,6,233,7,67,8,102,8,135,8,55,8,177,7,22,8,109,8,65,7,64,6, +211,5,94,4,14,3,109,2,63,1,60,0,127,255,116,254,188,253,245,252,68,252,115,252,136,252,125,252,224,252,18,253, +110,253,219,253,164,253,222,253,231,254,214,255,182,0,105,1,141,1,169,1,58,2,3,3,96,3,57,3,88,3,235,3, +3,4,110,3,228,2,99,2,235,1,216,1,115,1,117,0,166,255,254,254,163,254,160,254,12,254,70,253,242,252,145,252, +48,252,239,251,229,251,39,252,14,252,4,252,102,252,144,252,68,253,20,254,188,253,24,254,92,255,143,255,178,255,126,0, +39,1,14,2,142,2,250,1,157,1,201,1,228,1,14,2,21,2,150,1,218,0,108,0,79,0,204,255,183,254,52,254, +117,254,231,253,132,252,141,251,188,250,67,250,173,250,121,250,140,249,85,249,66,249,62,249,203,249,221,249,220,249,204,250, +188,251,93,252,37,253,204,253,94,254,202,254,251,254,147,255,116,0,41,1,1,2,200,2,0,3,252,2,39,3,164,3, +27,4,5,4,246,3,74,4,240,3,44,3,17,3,246,2,110,2,198,1,210,0,13,0,152,255,223,254,87,254,5,254, +116,253,22,253,228,252,214,252,93,253,231,253,229,253,180,253,4,254,202,254,229,254,247,254,83,0,68,1,8,1,77,1, +195,1,240,1,150,2,31,3,80,3,227,3,108,4,123,4,95,4,82,4,135,4,206,4,131,4,211,3,125,3,72,3, +241,2,220,2,122,2,190,1,144,1,45,1,49,0,127,255,231,254,7,255,223,255,100,255,158,254,35,255,95,255,122,255, +253,255,209,255,57,0,148,1,211,1,167,1,50,2,147,2,252,2,173,3,223,3,249,3,198,4,133,5,71,5,107,4, +152,3,67,3,204,3,73,4,148,3,89,2,164,1,118,1,6,1,180,255,177,254,227,254,224,254,43,254,140,253,157,252, +170,251,174,251,184,251,254,250,184,250,106,251,22,252,66,252,30,252,11,252,168,252,121,253,194,253,129,254,200,255,94,0, +244,0,3,2,177,2,137,3,138,4,0,5,189,5,97,6,56,6,117,6,226,6,239,6,117,7,174,7,31,7,225,6, +139,6,192,5,49,5,172,4,37,4,172,3,192,2,185,1,5,1,80,0,164,255,250,254,29,254,136,253,113,253,30,253, +105,252,242,251,200,251,213,251,4,252,177,251,13,251,14,251,169,251,61,252,53,252,213,251,64,252,39,253,159,253,242,253, +34,254,48,254,97,254,92,254,167,254,92,255,87,255,91,255,9,0,213,255,13,255,39,255,159,255,255,255,98,0,132,0, +174,0,245,0,244,0,55,1,184,1,151,1,140,1,26,2,8,2,162,1,10,2,122,2,103,2,145,2,38,3,92,3, +185,2,15,2,22,2,9,2,118,1,249,0,196,0,53,0,28,255,55,254,103,253,59,252,81,251,116,250,67,249,114,248, +143,247,99,246,146,245,168,244,12,244,50,244,213,243,77,243,90,243,48,243,65,243,242,243,90,244,161,244,153,245,43,247, +153,248,187,249,28,251,201,252,176,254,142,0,237,1,138,3,106,5,138,6,133,7,169,8,96,9,62,10,115,11,86,12, +178,12,202,12,25,13,37,13,137,12,13,12,129,11,91,10,26,9,197,7,80,6,14,5,207,3,69,2,156,0,73,255, +38,254,217,252,206,251,219,250,187,249,55,249,37,249,9,249,45,249,81,249,129,249,245,249,81,250,223,250,194,251,184,252, +219,253,200,254,175,255,4,1,7,2,192,2,210,3,214,4,182,5,127,6,242,6,88,7,160,7,114,7,28,7,185,6, +54,6,227,5,126,5,73,4,206,2,29,2,137,1,44,0,206,254,239,253,8,253,234,251,185,250,149,249,183,248,52,248, +234,247,149,247,54,247,9,247,17,247,83,247,221,247,94,248,214,248,159,249,119,250,28,251,223,251,155,252,58,253,35,254, +197,254,248,254,180,255,121,0,147,0,218,0,93,1,151,1,157,1,109,1,86,1,91,1,20,1,207,0,110,0,193,255, +110,255,54,255,168,254,55,254,242,253,185,253,168,253,170,253,157,253,113,253,158,253,70,254,187,254,42,255,227,255,123,0, +59,1,45,2,235,2,226,3,240,4,152,5,72,6,247,6,119,7,50,8,207,8,240,8,16,9,41,9,5,9,205,8, +99,8,226,7,136,7,240,6,16,6,64,5,54,4,229,2,181,1,131,0,60,255,52,254,99,253,120,252,145,251,228,250, +52,250,124,249,250,248,144,248,89,248,106,248,82,248,78,248,193,248,79,249,210,249,87,250,11,251,255,251,184,252,114,253, +142,254,102,255,26,0,246,0,159,1,128,2,128,3,217,3,12,4,100,4,138,4,192,4,1,5,15,5,245,4,182,4, +138,4,108,4,7,4,131,3,39,3,201,2,67,2,209,1,146,1,73,1,5,1,195,0,84,0,44,0,63,0,239,255, +197,255,19,0,45,0,46,0,90,0,86,0,89,0,162,0,211,0,230,0,22,1,64,1,90,1,101,1,88,1,109,1, +121,1,36,1,244,0,17,1,234,0,174,0,176,0,161,0,112,0,77,0,38,0,211,255,117,255,81,255,69,255,41,255, +12,255,228,254,204,254,211,254,220,254,27,255,130,255,190,255,231,255,19,0,70,0,162,0,11,1,82,1,124,1,170,1, +217,1,6,2,78,2,106,2,75,2,95,2,98,2,44,2,26,2,210,1,90,1,54,1,242,0,97,0,232,255,130,255, +63,255,248,254,102,254,211,253,102,253,3,253,175,252,116,252,59,252,224,251,166,251,189,251,208,251,220,251,241,251,235,251, +2,252,46,252,64,252,112,252,172,252,234,252,93,253,198,253,5,254,97,254,227,254,75,255,151,255,254,255,68,0,83,0, +155,0,214,0,181,0,196,0,245,0,235,0,193,0,141,0,134,0,152,0,98,0,75,0,135,0,158,0,173,0,236,0, +24,1,39,1,74,1,84,1,29,1,13,1,83,1,131,1,130,1,150,1,179,1,172,1,176,1,240,1,20,2,13,2, +60,2,102,2,89,2,93,2,72,2,34,2,25,2,207,1,94,1,23,1,216,0,164,0,83,0,230,255,172,255,86,255, +225,254,187,254,155,254,77,254,5,254,171,253,96,253,105,253,126,253,82,253,40,253,70,253,105,253,93,253,69,253,49,253, +52,253,87,253,128,253,196,253,254,253,8,254,40,254,81,254,83,254,116,254,196,254,5,255,15,255,19,255,80,255,126,255, +129,255,146,255,142,255,137,255,185,255,187,255,146,255,134,255,114,255,107,255,147,255,171,255,179,255,210,255,233,255,236,255, +0,0,41,0,71,0,103,0,145,0,170,0,182,0,176,0,150,0,157,0,164,0,138,0,158,0,229,0,6,1,246,0, +221,0,219,0,234,0,247,0,243,0,205,0,182,0,203,0,195,0,163,0,158,0,145,0,138,0,157,0,182,0,210,0, +216,0,225,0,253,0,239,0,10,1,101,1,89,1,56,1,131,1,157,1,137,1,203,1,247,1,225,1,242,1,2,2, +213,1,202,1,242,1,224,1,183,1,183,1,143,1,89,1,80,1,23,1,206,0,195,0,156,0,82,0,37,0,252,255, +204,255,141,255,60,255,21,255,253,254,202,254,177,254,167,254,122,254,96,254,97,254,82,254,95,254,124,254,106,254,105,254, +133,254,128,254,140,254,182,254,188,254,208,254,14,255,29,255,244,254,249,254,45,255,42,255,11,255,42,255,71,255,57,255, +70,255,124,255,163,255,146,255,114,255,148,255,200,255,197,255,190,255,215,255,244,255,13,0,46,0,98,0,146,0,179,0, +207,0,234,0,23,1,67,1,93,1,142,1,192,1,238,1,67,2,113,2,97,2,112,2,133,2,143,2,181,2,175,2, +122,2,101,2,82,2,46,2,47,2,69,2,47,2,248,1,220,1,191,1,108,1,46,1,34,1,245,0,196,0,170,0, +132,0,130,0,135,0,80,0,65,0,92,0,99,0,128,0,110,0,54,0,91,0,134,0,151,0,226,0,241,0,186,0, +200,0,232,0,213,0,184,0,172,0,168,0,127,0,68,0,46,0,8,0,173,255,88,255,30,255,223,254,152,254,101,254, +30,254,176,253,103,253,51,253,226,252,157,252,81,252,245,251,210,251,198,251,122,251,53,251,82,251,110,251,66,251,99,251, +205,251,230,251,233,251,30,252,85,252,158,252,241,252,56,253,147,253,227,253,15,254,79,254,182,254,11,255,68,255,140,255, +205,255,255,255,62,0,99,0,127,0,167,0,177,0,208,0,218,0,173,0,200,0,207,0,146,0,177,0,200,0,166,0, +173,0,138,0,119,0,162,0,133,0,107,0,131,0,144,0,165,0,133,0,79,0,69,0,41,0,55,0,97,0,71,0, +70,0,106,0,130,0,164,0,170,0,185,0,236,0,7,1,23,1,18,1,16,1,63,1,78,1,71,1,90,1,104,1, +156,1,190,1,136,1,93,1,104,1,119,1,85,1,29,1,33,1,36,1,11,1,24,1,10,1,220,0,223,0,235,0, +209,0,143,0,79,0,35,0,213,255,171,255,195,255,151,255,70,255,35,255,5,255,224,254,190,254,149,254,88,254,35,254, +39,254,34,254,1,254,249,253,233,253,222,253,205,253,167,253,221,253,26,254,236,253,213,253,233,253,19,254,102,254,122,254, +118,254,168,254,209,254,2,255,70,255,116,255,151,255,172,255,221,255,13,0,251,255,19,0,92,0,96,0,80,0,103,0, +122,0,106,0,86,0,104,0,81,0,16,0,34,0,53,0,238,255,189,255,191,255,178,255,167,255,188,255,200,255,188,255, +200,255,212,255,204,255,249,255,48,0,42,0,74,0,170,0,249,0,34,1,77,1,157,1,247,1,53,2,114,2,192,2, +11,3,50,3,65,3,119,3,174,3,181,3,202,3,230,3,221,3,195,3,155,3,122,3,111,3,67,3,242,2,167,2, +99,2,15,2,161,1,42,1,208,0,152,0,72,0,205,255,100,255,31,255,212,254,132,254,76,254,40,254,243,253,188,253, +185,253,189,253,169,253,184,253,207,253,224,253,34,254,91,254,114,254,164,254,228,254,28,255,82,255,121,255,161,255,219,255, +32,0,87,0,106,0,121,0,137,0,127,0,127,0,155,0,142,0,78,0,42,0,39,0,255,255,196,255,159,255,128,255, +76,255,244,254,155,254,114,254,78,254,42,254,41,254,9,254,197,253,180,253,196,253,211,253,231,253,3,254,49,254,91,254, +107,254,123,254,153,254,227,254,80,255,153,255,194,255,13,0,99,0,159,0,213,0,20,1,92,1,160,1,202,1,232,1, +28,2,77,2,90,2,90,2,116,2,160,2,155,2,105,2,96,2,100,2,63,2,33,2,14,2,220,1,162,1,131,1, +129,1,100,1,31,1,15,1,18,1,205,0,166,0,199,0,198,0,169,0,172,0,196,0,207,0,202,0,209,0,231,0, +227,0,206,0,231,0,36,1,58,1,56,1,82,1,94,1,74,1,75,1,94,1,106,1,107,1,77,1,33,1,4,1, +0,1,7,1,224,0,145,0,90,0,40,0,236,255,171,255,82,255,13,255,227,254,168,254,134,254,115,254,68,254,38,254, +12,254,209,253,188,253,196,253,184,253,184,253,192,253,195,253,221,253,3,254,45,254,105,254,158,254,202,254,11,255,70,255, +118,255,196,255,16,0,44,0,64,0,97,0,159,0,255,0,32,1,4,1,10,1,1,1,241,0,6,1,229,0,161,0, +124,0,63,0,249,255,186,255,115,255,61,255,234,254,131,254,68,254,252,253,200,253,180,253,108,253,32,253,253,252,238,252, +249,252,226,252,202,252,231,252,236,252,6,253,80,253,127,253,209,253,55,254,107,254,191,254,46,255,122,255,202,255,38,0, +144,0,254,0,83,1,156,1,214,1,25,2,93,2,81,2,65,2,113,2,120,2,87,2,58,2,12,2,235,1,188,1, +98,1,46,1,5,1,152,0,34,0,215,255,145,255,60,255,230,254,161,254,128,254,115,254,65,254,243,253,214,253,222,253, +225,253,222,253,221,253,252,253,60,254,109,254,157,254,228,254,34,255,115,255,214,255,9,0,70,0,181,0,244,0,40,1, +142,1,191,1,207,1,9,2,20,2,255,1,33,2,58,2,38,2,251,1,203,1,176,1,131,1,64,1,5,1,184,0, +129,0,105,0,33,0,209,255,162,255,107,255,82,255,68,255,0,255,187,254,173,254,178,254,159,254,147,254,181,254,209,254, +229,254,25,255,74,255,116,255,160,255,180,255,225,255,39,0,88,0,149,0,186,0,188,0,227,0,3,1,2,1,1,1, +231,0,223,0,255,0,222,0,150,0,116,0,70,0,2,0,203,255,146,255,86,255,49,255,12,255,216,254,171,254,115,254, +54,254,61,254,96,254,69,254,45,254,70,254,97,254,140,254,193,254,231,254,23,255,86,255,160,255,234,255,30,0,89,0, +153,0,196,0,8,1,89,1,124,1,151,1,198,1,233,1,12,2,46,2,53,2,51,2,53,2,36,2,15,2,3,2, +228,1,186,1,159,1,127,1,68,1,255,0,217,0,204,0,155,0,91,0,53,0,16,0,250,255,249,255,222,255,179,255, +144,255,134,255,177,255,215,255,229,255,238,255,206,255,199,255,9,0,50,0,51,0,47,0,26,0,30,0,85,0,149,0, +144,0,87,0,86,0,96,0,69,0,68,0,19,0,217,255,35,0,86,0,31,0,232,255,173,255,190,255,24,0,238,255, +121,255,62,255,49,255,108,255,132,255,29,255,213,254,252,254,89,255,162,255,130,255,73,255,113,255,218,255,63,0,68,0, +3,0,35,0,134,0,182,0,205,0,195,0,171,0,232,0,45,1,22,1,224,0,210,0,15,1,88,1,55,1,231,0, +199,0,181,0,178,0,175,0,115,0,45,0,0,0,215,255,203,255,178,255,105,255,61,255,61,255,50,255,28,255,12,255, +14,255,31,255,52,255,65,255,71,255,97,255,147,255,194,255,235,255,4,0,21,0,79,0,165,0,198,0,193,0,229,0, +59,1,151,1,201,1,181,1,160,1,220,1,31,2,39,2,24,2,235,1,189,1,210,1,217,1,149,1,67,1,237,0, +163,0,151,0,151,0,89,0,4,0,193,255,126,255,78,255,57,255,242,254,148,254,137,254,118,254,19,254,208,253,204,253, +208,253,220,253,214,253,171,253,136,253,141,253,190,253,250,253,0,254,209,253,204,253,33,254,133,254,170,254,171,254,188,254, +254,254,84,255,110,255,101,255,131,255,177,255,228,255,31,0,36,0,15,0,47,0,83,0,94,0,95,0,63,0,50,0, +84,0,64,0,2,0,240,255,229,255,214,255,209,255,166,255,129,255,140,255,124,255,79,255,59,255,46,255,38,255,44,255, +35,255,5,255,232,254,238,254,24,255,24,255,251,254,35,255,94,255,99,255,110,255,138,255,154,255,191,255,240,255,15,0, +40,0,50,0,62,0,116,0,180,0,210,0,208,0,227,0,21,1,53,1,75,1,101,1,103,1,97,1,90,1,72,1, +61,1,48,1,38,1,36,1,11,1,245,0,228,0,178,0,139,0,121,0,110,0,112,0,74,0,15,0,246,255,189,255, +136,255,153,255,164,255,145,255,124,255,106,255,111,255,109,255,101,255,129,255,136,255,124,255,146,255,167,255,186,255,223,255, +241,255,1,0,39,0,57,0,43,0,48,0,86,0,105,0,83,0,72,0,91,0,101,0,89,0,82,0,79,0,68,0, +66,0,56,0,38,0,42,0,26,0,245,255,246,255,230,255,182,255,171,255,153,255,118,255,123,255,119,255,87,255,79,255, +95,255,126,255,147,255,137,255,141,255,171,255,202,255,241,255,15,0,18,0,38,0,76,0,91,0,116,0,162,0,185,0, +192,0,185,0,176,0,204,0,216,0,183,0,177,0,174,0,156,0,159,0,136,0,93,0,80,0,60,0,29,0,4,0, +212,255,170,255,149,255,125,255,103,255,75,255,52,255,52,255,42,255,35,255,45,255,51,255,62,255,90,255,113,255,136,255, +168,255,205,255,229,255,242,255,23,0,79,0,124,0,165,0,206,0,228,0,240,0,11,1,38,1,58,1,95,1,122,1, +103,1,83,1,76,1,55,1,33,1,16,1,233,0,181,0,156,0,143,0,105,0,71,0,40,0,226,255,159,255,119,255, +74,255,49,255,31,255,243,254,205,254,179,254,161,254,148,254,121,254,114,254,123,254,111,254,123,254,158,254,168,254,185,254, +220,254,0,255,37,255,63,255,102,255,145,255,165,255,191,255,227,255,9,0,55,0,84,0,98,0,110,0,126,0,169,0, +196,0,185,0,205,0,225,0,201,0,186,0,182,0,166,0,157,0,134,0,107,0,102,0,98,0,71,0,22,0,253,255, +8,0,241,255,189,255,173,255,166,255,142,255,140,255,145,255,125,255,109,255,117,255,127,255,116,255,98,255,91,255,93,255, +93,255,103,255,128,255,129,255,111,255,116,255,117,255,96,255,105,255,125,255,120,255,136,255,162,255,160,255,178,255,205,255, +213,255,229,255,236,255,231,255,4,0,33,0,37,0,56,0,66,0,56,0,65,0,91,0,111,0,113,0,108,0,114,0, +125,0,120,0,107,0,95,0,89,0,92,0,100,0,92,0,56,0,28,0,30,0,26,0,8,0,1,0,245,255,210,255, +179,255,167,255,151,255,137,255,141,255,141,255,148,255,165,255,149,255,136,255,164,255,174,255,166,255,185,255,217,255,1,0, +29,0,29,0,47,0,93,0,121,0,131,0,144,0,175,0,216,0,222,0,216,0,241,0,6,1,18,1,53,1,71,1, +60,1,55,1,46,1,43,1,52,1,32,1,6,1,10,1,2,1,228,0,201,0,179,0,169,0,150,0,112,0,91,0, +77,0,59,0,52,0,47,0,36,0,23,0,13,0,17,0,30,0,46,0,44,0,24,0,38,0,61,0,46,0,48,0, +65,0,48,0,29,0,27,0,33,0,48,0,61,0,64,0,56,0,44,0,48,0,49,0,48,0,58,0,49,0,27,0, +22,0,19,0,12,0,4,0,250,255,242,255,221,255,194,255,182,255,184,255,183,255,170,255,173,255,198,255,201,255,193,255, +194,255,185,255,175,255,182,255,206,255,220,255,207,255,203,255,215,255,209,255,199,255,200,255,205,255,215,255,217,255,212,255, +213,255,218,255,217,255,207,255,196,255,180,255,158,255,160,255,169,255,152,255,133,255,114,255,95,255,93,255,92,255,86,255, +78,255,78,255,101,255,104,255,97,255,115,255,123,255,138,255,172,255,173,255,191,255,236,255,249,255,14,0,54,0,78,0, +114,0,144,0,157,0,174,0,177,0,180,0,207,0,231,0,235,0,225,0,225,0,237,0,244,0,242,0,217,0,190,0, +193,0,186,0,153,0,117,0,78,0,42,0,10,0,231,255,201,255,176,255,164,255,142,255,90,255,57,255,56,255,55,255, +52,255,33,255,15,255,22,255,14,255,8,255,28,255,35,255,44,255,65,255,77,255,98,255,118,255,128,255,156,255,183,255, +203,255,231,255,243,255,243,255,2,0,26,0,31,0,30,0,56,0,74,0,61,0,61,0,74,0,78,0,86,0,77,0, +53,0,51,0,55,0,50,0,49,0,30,0,13,0,25,0,31,0,16,0,5,0,252,255,254,255,3,0,241,255,237,255, +254,255,244,255,243,255,12,0,10,0,7,0,27,0,39,0,53,0,67,0,71,0,84,0,84,0,72,0,91,0,116,0, +117,0,104,0,87,0,93,0,123,0,128,0,110,0,105,0,106,0,99,0,96,0,103,0,111,0,108,0,98,0,82,0, +73,0,81,0,72,0,38,0,24,0,25,0,6,0,244,255,237,255,225,255,209,255,183,255,155,255,153,255,165,255,168,255, +158,255,141,255,134,255,128,255,115,255,111,255,109,255,101,255,95,255,94,255,101,255,95,255,77,255,76,255,84,255,90,255, +92,255,77,255,75,255,85,255,84,255,109,255,132,255,115,255,112,255,116,255,115,255,139,255,138,255,119,255,130,255,132,255, +132,255,153,255,149,255,146,255,164,255,170,255,180,255,181,255,146,255,135,255,166,255,178,255,156,255,142,255,147,255,157,255, +168,255,172,255,165,255,175,255,189,255,185,255,188,255,208,255,227,255,254,255,13,0,17,0,46,0,66,0,75,0,110,0, +119,0,103,0,129,0,163,0,178,0,196,0,195,0,186,0,207,0,230,0,230,0,227,0,242,0,254,0,243,0,237,0, +242,0,230,0,217,0,214,0,206,0,198,0,185,0,172,0,156,0,123,0,106,0,101,0,84,0,74,0,59,0,40,0, +38,0,16,0,241,255,237,255,219,255,191,255,203,255,221,255,214,255,196,255,195,255,209,255,205,255,195,255,204,255,225,255, +240,255,239,255,242,255,14,0,36,0,38,0,44,0,52,0,68,0,83,0,86,0,87,0,90,0,90,0,86,0,74,0, +69,0,66,0,55,0,54,0,46,0,15,0,247,255,242,255,242,255,235,255,226,255,228,255,217,255,194,255,192,255,189,255, +170,255,172,255,179,255,172,255,173,255,176,255,178,255,192,255,207,255,220,255,241,255,251,255,246,255,248,255,5,0,26,0, +50,0,63,0,57,0,47,0,54,0,72,0,79,0,85,0,93,0,92,0,92,0,91,0,81,0,88,0,99,0,83,0, +70,0,65,0,47,0,35,0,23,0,5,0,250,255,229,255,205,255,203,255,193,255,171,255,162,255,150,255,134,255,125,255, +113,255,103,255,95,255,82,255,79,255,76,255,64,255,58,255,55,255,58,255,70,255,75,255,83,255,99,255,91,255,77,255, +95,255,120,255,122,255,124,255,137,255,139,255,139,255,155,255,171,255,171,255,170,255,186,255,212,255,216,255,208,255,218,255, +229,255,226,255,227,255,230,255,238,255,244,255,233,255,231,255,240,255,232,255,222,255,220,255,219,255,226,255,225,255,208,255, +196,255,191,255,187,255,191,255,197,255,198,255,204,255,220,255,232,255,232,255,238,255,247,255,242,255,240,255,251,255,14,0, +29,0,25,0,28,0,45,0,47,0,45,0,59,0,69,0,81,0,92,0,86,0,86,0,101,0,102,0,99,0,104,0, +103,0,105,0,103,0,91,0,93,0,93,0,76,0,65,0,50,0,36,0,40,0,30,0,13,0,8,0,248,255,232,255, +225,255,212,255,215,255,220,255,202,255,188,255,184,255,180,255,183,255,179,255,163,255,164,255,180,255,178,255,162,255,163,255, +164,255,158,255,176,255,188,255,184,255,207,255,226,255,222,255,232,255,251,255,10,0,23,0,26,0,37,0,56,0,58,0, +63,0,78,0,88,0,97,0,104,0,103,0,99,0,101,0,103,0,100,0,100,0,100,0,97,0,91,0,73,0,62,0, +66,0,63,0,50,0,39,0,33,0,35,0,25,0,2,0,254,255,247,255,218,255,203,255,211,255,217,255,211,255,205,255, +198,255,188,255,193,255,202,255,196,255,194,255,202,255,213,255,228,255,238,255,251,255,7,0,3,0,10,0,24,0,29,0, +46,0,65,0,66,0,69,0,74,0,81,0,86,0,84,0,90,0,98,0,91,0,89,0,97,0,98,0,90,0,75,0, +68,0,66,0,61,0,67,0,71,0,55,0,38,0,36,0,41,0,40,0,35,0,30,0,23,0,20,0,20,0,11,0, +7,0,10,0,2,0,249,255,5,0,18,0,13,0,8,0,18,0,22,0,17,0,28,0,32,0,18,0,18,0,28,0, +27,0,17,0,6,0,0,0,6,0,15,0,20,0,21,0,20,0,14,0,6,0,6,0,7,0,16,0,37,0,38,0, +32,0,43,0,44,0,37,0,46,0,59,0,82,0,107,0,114,0,127,0,136,0,129,0,141,0,151,0,147,0,160,0, +173,0,177,0,186,0,181,0,172,0,169,0,163,0,163,0,156,0,139,0,137,0,122,0,92,0,85,0,72,0,44,0, +23,0,4,0,247,255,238,255,213,255,184,255,166,255,154,255,140,255,119,255,102,255,92,255,81,255,66,255,54,255,56,255, +60,255,55,255,59,255,71,255,74,255,78,255,84,255,91,255,98,255,94,255,101,255,127,255,145,255,160,255,179,255,192,255, +204,255,218,255,231,255,245,255,4,0,9,0,10,0,18,0,18,0,13,0,26,0,29,0,18,0,24,0,20,0,9,0, +15,0,11,0,253,255,236,255,214,255,219,255,228,255,208,255,202,255,205,255,198,255,202,255,192,255,171,255,178,255,192,255, +192,255,187,255,182,255,182,255,184,255,185,255,188,255,189,255,186,255,190,255,204,255,208,255,198,255,195,255,197,255,195,255, +203,255,207,255,203,255,207,255,205,255,202,255,216,255,222,255,213,255,206,255,206,255,204,255,200,255,203,255,205,255,204,255, +207,255,200,255,186,255,192,255,204,255,205,255,203,255,200,255,208,255,221,255,225,255,230,255,241,255,248,255,248,255,247,255, +254,255,9,0,17,0,23,0,33,0,41,0,46,0,56,0,73,0,83,0,90,0,99,0,99,0,98,0,101,0,97,0, +97,0,97,0,88,0,85,0,85,0,84,0,72,0,59,0,74,0,88,0,65,0,52,0,62,0,59,0,48,0,47,0, +54,0,54,0,41,0,34,0,33,0,31,0,35,0,42,0,43,0,48,0,52,0,54,0,64,0,75,0,82,0,88,0, +86,0,82,0,91,0,100,0,92,0,90,0,101,0,99,0,101,0,114,0,107,0,97,0,98,0,86,0,76,0,76,0, +63,0,50,0,37,0,16,0,6,0,0,0,245,255,240,255,234,255,224,255,211,255,190,255,171,255,161,255,146,255,135,255, +133,255,134,255,132,255,126,255,125,255,120,255,106,255,113,255,131,255,132,255,135,255,146,255,152,255,162,255,164,255,163,255, +180,255,192,255,195,255,202,255,202,255,208,255,228,255,239,255,241,255,244,255,241,255,245,255,2,0,5,0,255,255,9,0, +21,0,14,0,5,0,7,0,8,0,10,0,11,0,16,0,29,0,32,0,29,0,36,0,35,0,29,0,45,0,57,0, +49,0,57,0,82,0,85,0,75,0,74,0,75,0,77,0,80,0,76,0,77,0,82,0,75,0,66,0,66,0,69,0, +68,0,67,0,70,0,63,0,56,0,56,0,49,0,44,0,46,0,34,0,35,0,45,0,39,0,38,0,37,0,26,0, +30,0,35,0,38,0,53,0,56,0,58,0,72,0,74,0,72,0,76,0,83,0,89,0,91,0,95,0,88,0,77,0, +83,0,74,0,57,0,62,0,53,0,38,0,38,0,22,0,7,0,252,255,232,255,225,255,214,255,193,255,193,255,185,255, +161,255,134,255,110,255,111,255,115,255,96,255,87,255,85,255,78,255,84,255,89,255,86,255,82,255,86,255,105,255,110,255, +114,255,145,255,159,255,156,255,182,255,203,255,208,255,225,255,241,255,250,255,7,0,15,0,20,0,30,0,43,0,52,0, +54,0,50,0,44,0,36,0,29,0,23,0,16,0,14,0,12,0,4,0,250,255,244,255,231,255,211,255,196,255,193,255, +198,255,194,255,179,255,171,255,177,255,183,255,186,255,191,255,190,255,193,255,206,255,213,255,221,255,242,255,3,0,12,0, +27,0,45,0,59,0,80,0,102,0,113,0,124,0,139,0,150,0,160,0,166,0,159,0,161,0,169,0,164,0,161,0, +157,0,138,0,133,0,128,0,109,0,102,0,91,0,71,0,67,0,57,0,36,0,26,0,11,0,0,0,249,255,230,255, +214,255,207,255,200,255,190,255,178,255,174,255,171,255,159,255,167,255,174,255,156,255,157,255,168,255,164,255,169,255,181,255, +181,255,181,255,188,255,192,255,195,255,202,255,206,255,201,255,200,255,208,255,207,255,200,255,204,255,211,255,212,255,210,255, +214,255,215,255,208,255,203,255,195,255,190,255,189,255,184,255,188,255,204,255,202,255,198,255,209,255,214,255,215,255,230,255, +241,255,243,255,244,255,244,255,0,0,18,0,23,0,25,0,30,0,27,0,34,0,46,0,41,0,37,0,38,0,28,0, +25,0,32,0,26,0,12,0,6,0,4,0,2,0,1,0,250,255,241,255,242,255,237,255,223,255,227,255,228,255,214,255, +214,255,214,255,203,255,208,255,217,255,225,255,238,255,246,255,0,0,5,0,254,255,5,0,22,0,23,0,24,0,29,0, +37,0,43,0,43,0,48,0,52,0,49,0,51,0,53,0,49,0,46,0,43,0,39,0,36,0,29,0,23,0,17,0, +10,0,3,0,249,255,241,255,232,255,216,255,212,255,215,255,207,255,199,255,193,255,179,255,170,255,172,255,171,255,166,255, +163,255,160,255,166,255,172,255,163,255,155,255,162,255,169,255,172,255,181,255,192,255,195,255,198,255,207,255,211,255,214,255, +226,255,231,255,229,255,237,255,240,255,238,255,248,255,1,0,1,0,11,0,24,0,27,0,32,0,39,0,47,0,49,0, +49,0,63,0,73,0,65,0,67,0,80,0,79,0,74,0,77,0,82,0,84,0,84,0,89,0,93,0,86,0,87,0, +94,0,87,0,84,0,87,0,77,0,70,0,69,0,68,0,71,0,66,0,67,0,79,0,76,0,72,0,79,0,79,0, +75,0,70,0,65,0,66,0,63,0,62,0,65,0,60,0,57,0,55,0,47,0,48,0,46,0,38,0,45,0,54,0, +47,0,41,0,43,0,44,0,42,0,45,0,49,0,41,0,31,0,26,0,26,0,24,0,11,0,0,0,1,0,249,255, +240,255,242,255,238,255,226,255,219,255,216,255,212,255,205,255,197,255,187,255,179,255,181,255,181,255,175,255,170,255,165,255, +160,255,154,255,152,255,161,255,164,255,154,255,157,255,166,255,166,255,164,255,164,255,168,255,178,255,186,255,194,255,194,255, +184,255,184,255,197,255,206,255,205,255,208,255,215,255,215,255,213,255,215,255,216,255,225,255,231,255,226,255,233,255,243,255, +241,255,243,255,242,255,235,255,239,255,246,255,247,255,0,0,6,0,7,0,12,0,17,0,18,0,23,0,28,0,33,0, +37,0,35,0,36,0,44,0,51,0,54,0,53,0,55,0,58,0,61,0,66,0,68,0,68,0,69,0,67,0,64,0, +61,0,55,0,55,0,58,0,55,0,57,0,54,0,46,0,47,0,43,0,33,0,33,0,37,0,36,0,26,0,20,0, +26,0,24,0,20,0,26,0,22,0,13,0,13,0,10,0,9,0,10,0,5,0,6,0,5,0,2,0,7,0,10,0, +9,0,17,0,16,0,10,0,11,0,10,0,10,0,13,0,12,0,8,0,6,0,6,0,8,0,4,0,1,0,3,0, +253,255,245,255,245,255,243,255,238,255,239,255,245,255,249,255,250,255,246,255,241,255,241,255,244,255,246,255,243,255,240,255, +246,255,251,255,250,255,250,255,254,255,7,0,13,0,12,0,10,0,13,0,20,0,22,0,23,0,28,0,30,0,27,0, +30,0,35,0,35,0,40,0,50,0,50,0,48,0,52,0,58,0,57,0,56,0,57,0,55,0,54,0,55,0,51,0, +48,0,48,0,42,0,36,0,30,0,25,0,29,0,32,0,20,0,10,0,15,0,16,0,7,0,3,0,2,0,253,255, +249,255,246,255,241,255,240,255,239,255,229,255,223,255,226,255,229,255,226,255,223,255,224,255,223,255,224,255,227,255,226,255, +228,255,234,255,235,255,236,255,236,255,236,255,241,255,240,255,235,255,241,255,245,255,242,255,250,255,251,255,247,255,2,0, +9,0,3,0,4,0,4,0,2,0,5,0,6,0,4,0,3,0,1,0,255,255,255,255,251,255,251,255,251,255,246,255, +243,255,241,255,234,255,229,255,231,255,236,255,239,255,240,255,239,255,235,255,230,255,232,255,232,255,221,255,220,255,231,255, +236,255,236,255,237,255,235,255,241,255,249,255,251,255,251,255,252,255,254,255,3,0,5,0,4,0,7,0,9,0,11,0, +13,0,10,0,8,0,9,0,9,0,10,0,13,0,12,0,8,0,5,0,7,0,9,0,7,0,4,0,4,0,3,0, +2,0,254,255,253,255,255,255,251,255,250,255,255,255,254,255,253,255,0,0,0,0,253,255,0,0,5,0,4,0,255,255, +0,0,255,255,247,255,250,255,255,255,252,255,252,255,1,0,1,0,0,0,253,255,248,255,239,255,233,255,235,255,234,255, +227,255,227,255,229,255,223,255,216,255,218,255,226,255,227,255,220,255,215,255,210,255,206,255,209,255,210,255,208,255,209,255, +213,255,215,255,212,255,210,255,216,255,222,255,219,255,216,255,220,255,224,255,225,255,230,255,236,255,235,255,233,255,239,255, +240,255,237,255,240,255,241,255,240,255,240,255,236,255,231,255,232,255,235,255,233,255,231,255,234,255,234,255,232,255,234,255, +235,255,233,255,239,255,237,255,229,255,230,255,230,255,225,255,231,255,234,255,232,255,236,255,240,255,238,255,242,255,246,255, +248,255,254,255,255,255,251,255,252,255,255,255,2,0,3,0,4,0,8,0,8,0,7,0,10,0,15,0,22,0,25,0, +23,0,26,0,31,0,29,0,26,0,23,0,24,0,31,0,32,0,27,0,27,0,26,0,25,0,24,0,18,0,18,0, +22,0,17,0,15,0,18,0,16,0,12,0,13,0,17,0,13,0,5,0,8,0,11,0,6,0,6,0,5,0,2,0, +4,0,4,0,255,255,250,255,251,255,253,255,248,255,247,255,253,255,253,255,250,255,251,255,248,255,249,255,254,255,249,255, +248,255,252,255,249,255,251,255,4,0,3,0,250,255,252,255,3,0,5,0,5,0,3,0,2,0,7,0,6,0,255,255, +5,0,10,0,6,0,7,0,5,0,1,0,2,0,0,0,254,255,2,0,3,0,0,0,253,255,250,255,248,255,245,255, +243,255,242,255,236,255,236,255,240,255,240,255,239,255,234,255,229,255,231,255,229,255,229,255,233,255,229,255,228,255,229,255, +227,255,232,255,237,255,237,255,241,255,244,255,247,255,250,255,248,255,0,0,9,0,12,0,17,0,21,0,23,0,28,0, +27,0,29,0,36,0,35,0,37,0,39,0,39,0,42,0,39,0,37,0,42,0,39,0,37,0,38,0,34,0,36,0, +36,0,23,0,24,0,28,0,22,0,18,0,16,0,10,0,8,0,6,0,4,0,8,0,10,0,8,0,4,0,2,0, +7,0,10,0,10,0,6,0,1,0,5,0,9,0,9,0,14,0,13,0,10,0,15,0,14,0,10,0,14,0,16,0, +19,0,23,0,22,0,21,0,22,0,20,0,20,0,23,0,24,0,21,0,17,0,19,0,22,0,19,0,14,0,13,0, +13,0,13,0,11,0,10,0,7,0,1,0,254,255,0,0,253,255,251,255,250,255,245,255,244,255,241,255,236,255,237,255, +238,255,237,255,237,255,233,255,228,255,232,255,234,255,235,255,239,255,241,255,245,255,248,255,249,255,252,255,252,255,251,255, +255,255,1,0,254,255,253,255,253,255,253,255,254,255,254,255,255,255,1,0,1,0,0,0,1,0,0,0,1,0,3,0, +5,0,8,0,7,0,6,0,10,0,13,0,13,0,13,0,13,0,12,0,15,0,20,0,22,0,19,0,15,0,20,0, +24,0,21,0,20,0,18,0,14,0,17,0,19,0,17,0,22,0,24,0,14,0,14,0,20,0,15,0,11,0,14,0, +11,0,7,0,10,0,10,0,6,0,2,0,1,0,1,0,252,255,244,255,245,255,247,255,239,255,235,255,233,255,222,255, +219,255,222,255,217,255,213,255,213,255,211,255,212,255,211,255,207,255,211,255,216,255,215,255,211,255,209,255,213,255,214,255, +212,255,215,255,214,255,214,255,220,255,223,255,228,255,235,255,236,255,240,255,242,255,239,255,246,255,253,255,248,255,248,255, +251,255,251,255,253,255,255,255,2,0,4,0,3,0,5,0,4,0,1,0,3,0,4,0,4,0,4,0,2,0,5,0, +4,0,1,0,3,0,4,0,3,0,6,0,4,0,1,0,2,0,2,0,4,0,3,0,0,0,4,0,8,0,8,0, +9,0,8,0,9,0,10,0,9,0,11,0,13,0,16,0,20,0,18,0,16,0,22,0,23,0,22,0,25,0,26,0, +24,0,25,0,26,0,25,0,24,0,23,0,19,0,17,0,18,0,18,0,18,0,18,0,15,0,12,0,14,0,14,0, +12,0,12,0,9,0,5,0,7,0,8,0,3,0,0,0,2,0,1,0,0,0,2,0,0,0,255,255,1,0,255,255, +252,255,248,255,247,255,253,255,253,255,249,255,253,255,251,255,244,255,247,255,250,255,249,255,251,255,249,255,246,255,246,255, +247,255,247,255,243,255,241,255,242,255,243,255,243,255,245,255,242,255,239,255,243,255,246,255,243,255,242,255,244,255,246,255, +246,255,250,255,254,255,252,255,251,255,2,0,7,0,4,0,4,0,8,0,7,0,6,0,8,0,10,0,13,0,15,0, +14,0,13,0,12,0,11,0,15,0,16,0,14,0,11,0,9,0,11,0,10,0,6,0,6,0,3,0,253,255,253,255, +0,0,255,255,254,255,255,255,255,255,253,255,252,255,254,255,255,255,255,255,254,255,254,255,2,0,255,255,250,255,255,255, +1,0,254,255,1,0,1,0,2,0,8,0,7,0,4,0,4,0,6,0,10,0,10,0,6,0,9,0,10,0,6,0, +7,0,9,0,6,0,2,0,0,0,255,255,1,0,3,0,0,0,252,255,253,255,255,255,253,255,255,255,0,0,251,255, +248,255,252,255,254,255,253,255,255,255,2,0,2,0,1,0,2,0,5,0,5,0,2,0,3,0,5,0,5,0,8,0, +12,0,10,0,8,0,11,0,11,0,11,0,13,0,13,0,15,0,16,0,13,0,15,0,20,0,20,0,17,0,16,0, +15,0,15,0,17,0,16,0,12,0,12,0,14,0,12,0,11,0,12,0,10,0,12,0,11,0,8,0,10,0,11,0, +9,0,10,0,8,0,3,0,6,0,9,0,9,0,8,0,4,0,3,0,4,0,3,0,0,0,1,0,255,255,254,255, +254,255,254,255,253,255,253,255,254,255,253,255,251,255,249,255,248,255,247,255,246,255,244,255,241,255,242,255,243,255,240,255, +240,255,239,255,237,255,237,255,233,255,232,255,236,255,236,255,234,255,235,255,235,255,237,255,237,255,234,255,235,255,236,255, +237,255,239,255,238,255,238,255,242,255,243,255,241,255,240,255,244,255,247,255,247,255,249,255,252,255,248,255,248,255,250,255, +249,255,251,255,249,255,244,255,248,255,249,255,246,255,251,255,252,255,247,255,247,255,250,255,251,255,250,255,250,255,250,255, +250,255,249,255,250,255,249,255,250,255,250,255,247,255,248,255,249,255,249,255,252,255,253,255,252,255,252,255,252,255,252,255, +255,255,0,0,0,0,1,0,1,0,4,0,6,0,5,0,4,0,5,0,7,0,9,0,8,0,6,0,6,0,6,0, +5,0,5,0,6,0,6,0,5,0,5,0,7,0,4,0,3,0,5,0,4,0,1,0,3,0,3,0,255,255,255,255, +255,255,252,255,251,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,254,255,254,255,0,0, +2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,5,0,5,0,3,0,4,0,5,0,5,0,3,0,2,0, +0,0,255,255,1,0,0,0,254,255,254,255,251,255,248,255,251,255,251,255,249,255,249,255,246,255,244,255,245,255,244,255, +244,255,245,255,244,255,243,255,242,255,244,255,247,255,247,255,246,255,249,255,250,255,248,255,249,255,251,255,250,255,249,255, +253,255,254,255,253,255,255,255,2,0,0,0,255,255,252,255,251,255,255,255,0,0,0,0,1,0,0,0,255,255,254,255, +252,255,252,255,252,255,251,255,250,255,245,255,245,255,246,255,245,255,246,255,246,255,245,255,247,255,246,255,245,255,247,255, +248,255,250,255,252,255,250,255,252,255,253,255,251,255,253,255,0,0,0,0,3,0,3,0,2,0,7,0,10,0,10,0, +10,0,10,0,13,0,14,0,14,0,15,0,16,0,15,0,15,0,14,0,14,0,16,0,15,0,14,0,13,0,12,0, +12,0,13,0,13,0,14,0,14,0,12,0,10,0,10,0,10,0,9,0,7,0,7,0,7,0,6,0,6,0,6,0, +6,0,8,0,7,0,6,0,8,0,8,0,5,0,5,0,7,0,7,0,8,0,8,0,7,0,8,0,9,0,8,0, +6,0,7,0,6,0,4,0,5,0,5,0,1,0,0,0,2,0,0,0,0,0,255,255,254,255,254,255,254,255,252,255, +251,255,250,255,249,255,250,255,251,255,250,255,249,255,247,255,248,255,249,255,247,255,247,255,248,255,248,255,247,255,248,255, +248,255,249,255,251,255,251,255,252,255,252,255,252,255,254,255,255,255,254,255,254,255,252,255,251,255,252,255,251,255,251,255, +251,255,252,255,254,255,255,255,255,255,1,0,1,0,255,255,1,0,2,0,2,0,2,0,0,0,0,0,2,0,3,0, +4,0,4,0,4,0,6,0,5,0,4,0,7,0,7,0,8,0,8,0,8,0,9,0,11,0,10,0,10,0,11,0, +13,0,15,0,14,0,14,0,14,0,11,0,11,0,10,0,9,0,10,0,10,0,8,0,9,0,8,0,7,0,6,0, +5,0,5,0,6,0,3,0,3,0,3,0,1,0,2,0,1,0,254,255,0,0,255,255,253,255,255,255,254,255,251,255, +252,255,252,255,252,255,253,255,254,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,254,255,254,255,253,255, +255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,254,255,254,255,254,255,255,255,254,255,253,255,254,255,253,255, +252,255,252,255,251,255,252,255,253,255,251,255,252,255,252,255,251,255,253,255,254,255,253,255,254,255,254,255,254,255,255,255, +255,255,255,255,2,0,2,0,0,0,1,0,2,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0, +5,0,5,0,5,0,6,0,5,0,3,0,3,0,5,0,4,0,3,0,3,0,1,0,1,0,1,0,0,0,1,0, +1,0,254,255,254,255,0,0,254,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255, +252,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,251,255,252,255,252,255,252,255,252,255,254,255,255,255,254,255, +254,255,254,255,254,255,254,255,253,255,254,255,0,0,255,255,253,255,255,255,255,255,255,255,1,0,255,255,255,255,255,255, +255,255,255,255,254,255,252,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,253,255,254,255,254,255,251,255,253,255, +254,255,252,255,254,255,254,255,253,255,254,255,255,255,254,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +2,0,2,0,1,0,1,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255, +254,255,254,255,253,255,254,255,253,255,253,255,255,255,254,255,253,255,254,255,253,255,252,255,254,255,254,255,253,255,255,255, +0,0,0,0,0,0,255,255,1,0,2,0,2,0,2,0,2,0,2,0,3,0,1,0,0,0,3,0,3,0,1,0, +1,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0, +2,0,3,0,3,0,2,0,2,0,3,0,4,0,3,0,3,0,4,0,3,0,1,0,3,0,3,0,2,0,3,0, +3,0,3,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +2,0,1,0,2,0,1,0,255,255,1,0,1,0,0,0,1,0,0,0,0,0,2,0,0,0,254,255,255,255,0,0, +0,0,255,255,254,255,0,0,0,0,255,255,1,0,255,255,254,255,0,0,0,0,0,0,0,0,254,255,0,0,0,0, +254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255, +252,255,253,255,255,255,254,255,254,255,0,0,254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,254,255,254,255, +254,255,255,255,0,0,255,255,254,255,0,0,255,255,254,255,0,0,255,255,255,255,255,255,254,255,255,255,0,0,254,255, +255,255,0,0,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,253,255,254,255,254,255,255,255,254,255, +254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,1,0,0,0,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +255,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,0,0,255,255,254,255,254,255,254,255,0,0,1,0,255,255,254,255,254,255,254,255,254,255,255,255, +0,0,255,255,254,255,255,255,255,255,253,255,254,255,255,255,254,255,254,255,255,255,255,255,0,0,254,255,253,255,255,255, +255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,254,255,255,255,0,0,255,255,255,255, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,2,0, +2,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0, +2,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,4,0,3,0,2,0,3,0,2,0, +2,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0, +1,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,1,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,254,255,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0, +1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0, +2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,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,255,255, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0, +255,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,255,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,254,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/click.pcm b/src/client/sound/data/click.pcm new file mode 100755 index 0000000..cc12dfb --- /dev/null +++ b/src/client/sound/data/click.pcm @@ -0,0 +1,1545 @@ +unsigned char PCM_click[49344] = { +2,0,0,0,2,0,0,0,68,172,0,0,44,48,0,0,230,255,75,0,198,255,34,0,158,255,217,255,131,255,153,255, +158,255,167,255,208,255,210,255,249,255,30,0,7,0,175,0,228,255,32,1,196,255,36,1,247,255,213,0,116,0,152,0, +187,0,127,0,144,0,139,0,123,0,25,1,212,0,167,1,97,1,58,1,206,1,205,255,250,1,154,254,135,1,189,254, +205,255,222,255,59,253,47,1,181,251,111,2,232,252,178,3,33,0,229,3,211,2,127,1,110,3,94,253,30,2,206,249, +206,255,151,248,70,253,59,250,36,251,184,253,98,250,166,1,200,251,147,4,14,255,78,5,192,2,146,3,46,5,101,0, +104,5,142,253,108,3,45,252,42,0,141,252,15,253,25,254,109,251,238,255,240,251,138,1,29,254,123,2,182,0,142,2, +80,2,120,1,70,2,99,255,219,0,10,253,173,254,247,250,175,252,249,249,142,251,164,250,117,251,240,252,47,252,64,0, +70,253,53,3,123,254,150,4,169,255,153,3,235,0,232,0,92,2,139,254,87,3,217,253,1,3,241,254,100,1,57,1, +161,255,207,3,202,254,98,5,72,255,6,5,226,0,39,3,188,2,245,0,214,3,143,255,78,3,248,254,42,1,169,254, +118,254,107,254,83,252,9,254,171,251,222,253,142,252,57,254,46,254,219,254,161,255,122,255,87,0,200,255,86,0,174,255, +254,255,11,255,195,255,221,253,230,255,207,252,97,0,235,252,191,0,137,254,138,0,239,0,238,255,49,3,86,255,59,4, +91,255,156,3,69,0,212,1,110,1,190,255,247,1,163,254,44,1,15,255,63,255,131,0,98,253,33,2,163,252,231,2, +103,253,120,2,36,255,29,1,236,0,165,255,242,1,3,255,195,1,131,255,202,0,229,0,248,255,110,2,19,0,98,3, +83,1,129,3,66,3,11,3,245,4,86,2,162,5,180,1,68,5,159,1,72,4,63,2,43,3,43,3,38,2,159,3, +49,1,6,3,83,0,149,1,143,255,252,255,255,254,10,255,184,254,8,255,174,254,137,255,221,254,7,0,30,255,40,0, +79,255,3,0,65,255,165,255,12,255,61,255,21,255,53,255,74,255,81,255,145,255,91,255,239,255,113,255,78,0,212,255, +168,0,208,0,245,0,45,2,105,1,121,3,27,2,73,4,187,2,83,4,218,2,134,3,95,2,39,2,179,1,237,0, +19,1,70,0,166,0,85,0,153,0,238,0,171,0,74,1,123,0,212,0,235,255,172,255,52,255,100,254,136,254,96,253, +17,254,224,252,241,253,14,253,14,254,166,253,97,254,100,254,213,254,17,255,73,255,168,255,179,255,84,0,2,0,5,1, +86,0,185,1,171,0,60,2,246,0,96,2,55,1,49,2,73,1,168,1,54,1,2,1,19,1,131,0,227,0,102,0, +134,0,172,0,216,255,21,1,28,255,117,1,134,254,92,1,70,254,163,0,105,254,111,255,211,254,14,254,124,255,51,253, +252,255,44,253,17,0,10,254,211,255,131,255,108,255,188,0,50,255,53,1,63,255,211,0,122,255,205,255,243,255,222,254, +150,0,167,254,0,1,72,255,235,0,110,0,98,0,111,1,153,255,150,1,223,254,194,0,86,254,77,255,5,254,197,253, +3,254,210,252,58,254,195,252,73,254,72,253,220,253,183,253,63,253,214,253,174,252,124,253,50,252,176,252,19,252,25,252, +77,252,17,252,192,252,170,252,42,253,135,253,92,253,37,254,151,253,129,254,226,253,143,254,97,254,164,254,21,255,25,255, +170,255,215,255,236,255,176,0,187,255,43,1,143,255,78,1,183,255,40,1,252,255,162,0,77,0,40,0,90,0,213,255, +15,0,188,255,161,255,230,255,41,255,10,0,216,254,254,255,190,254,169,255,238,254,72,255,62,255,5,255,124,255,228,254, +181,255,2,255,198,255,36,255,184,255,66,255,160,255,90,255,123,255,68,255,110,255,36,255,109,255,11,255,106,255,14,255, +125,255,83,255,164,255,190,255,197,255,33,0,196,255,85,0,146,255,64,0,68,255,255,255,253,254,193,255,203,254,162,255, +185,254,159,255,197,254,146,255,249,254,110,255,75,255,64,255,145,255,23,255,175,255,21,255,124,255,28,255,34,255,38,255, +224,254,44,255,190,254,0,255,232,254,209,254,103,255,214,254,254,255,22,255,108,0,135,255,144,0,28,0,111,0,179,0, +9,0,243,0,171,255,224,0,132,255,137,0,144,255,20,0,227,255,232,255,58,0,250,255,121,0,64,0,151,0,146,0, +117,0,167,0,42,0,125,0,171,255,5,0,75,255,158,255,68,255,145,255,98,255,159,255,177,255,205,255,30,0,251,255, +121,0,7,0,145,0,231,255,100,0,193,255,48,0,232,255,241,255,47,0,197,255,119,0,212,255,175,0,18,0,183,0, +129,0,175,0,225,0,138,0,25,1,105,0,47,1,134,0,10,1,209,0,185,0,51,1,96,0,126,1,51,0,147,1, +61,0,89,1,105,0,218,0,166,0,92,0,183,0,240,255,150,0,184,255,93,0,196,255,252,255,205,255,155,255,193,255, +105,255,169,255,111,255,133,255,178,255,123,255,6,0,137,255,61,0,150,255,90,0,167,255,106,0,178,255,126,0,196,255, +140,0,223,255,129,0,246,255,126,0,49,0,132,0,126,0,156,0,204,0,218,0,35,1,13,1,73,1,34,1,53,1, +27,1,6,1,248,0,214,0,188,0,190,0,97,0,180,0,27,0,193,0,2,0,204,0,5,0,169,0,20,0,80,0, +36,0,222,255,57,0,143,255,43,0,98,255,1,0,101,255,211,255,152,255,152,255,186,255,120,255,193,255,138,255,172,255, +183,255,122,255,233,255,78,255,39,0,94,255,103,0,181,255,112,0,20,0,75,0,97,0,248,255,128,0,141,255,101,0, +89,255,67,0,92,255,22,0,146,255,246,255,220,255,244,255,1,0,0,0,248,255,27,0,184,255,29,0,126,255,18,0, +115,255,1,0,137,255,212,255,186,255,159,255,230,255,115,255,0,0,106,255,255,255,130,255,243,255,170,255,235,255,196,255, +221,255,182,255,236,255,171,255,242,255,164,255,217,255,158,255,177,255,160,255,104,255,126,255,66,255,100,255,85,255,98,255, +120,255,97,255,164,255,112,255,149,255,107,255,72,255,88,255,242,254,93,255,180,254,111,255,165,254,116,255,202,254,93,255, +35,255,63,255,132,255,35,255,184,255,7,255,179,255,255,254,138,255,22,255,105,255,79,255,100,255,134,255,121,255,155,255, +169,255,154,255,220,255,149,255,225,255,140,255,188,255,140,255,154,255,158,255,131,255,162,255,152,255,153,255,200,255,138,255, +188,255,94,255,129,255,75,255,46,255,92,255,221,254,103,255,194,254,82,255,215,254,8,255,47,255,207,254,133,255,186,254, +135,255,188,254,115,255,7,255,73,255,97,255,25,255,146,255,26,255,157,255,51,255,117,255,87,255,54,255,112,255,253,254, +136,255,246,254,171,255,43,255,181,255,106,255,186,255,164,255,192,255,199,255,189,255,197,255,207,255,185,255,219,255,158,255, +208,255,129,255,214,255,143,255,217,255,182,255,207,255,213,255,218,255,246,255,238,255,8,0,3,0,9,0,25,0,7,0, +28,0,254,255,14,0,248,255,5,0,9,0,8,0,37,0,241,255,30,0,219,255,9,0,1,0,29,0,47,0,45,0, +83,0,38,0,108,0,23,0,113,0,6,0,114,0,12,0,89,0,19,0,84,0,51,0,98,0,87,0,106,0,93,0, +168,0,118,0,215,0,114,0,227,0,88,0,237,0,93,0,204,0,108,0,195,0,172,0,205,0,243,0,211,0,14,1, +245,0,11,1,9,1,220,0,34,1,182,0,65,1,173,0,72,1,173,0,66,1,188,0,47,1,212,0,19,1,239,0, +218,0,238,0,175,0,225,0,162,0,206,0,164,0,168,0,231,0,171,0,43,1,183,0,59,1,183,0,60,1,215,0, +32,1,9,1,250,0,66,1,231,0,115,1,246,0,137,1,43,1,131,1,117,1,97,1,202,1,71,1,3,2,61,1, +20,2,74,1,3,2,107,1,209,1,128,1,169,1,146,1,166,1,159,1,175,1,141,1,172,1,85,1,174,1,36,1, +189,1,27,1,187,1,36,1,175,1,58,1,154,1,78,1,120,1,81,1,87,1,71,1,64,1,57,1,76,1,57,1, +103,1,49,1,127,1,20,1,159,1,2,1,165,1,248,0,139,1,254,0,77,1,6,1,244,0,6,1,201,0,24,1, +204,0,37,1,229,0,20,1,17,1,246,0,32,1,204,0,9,1,172,0,221,0,173,0,156,0,190,0,108,0,221,0, +104,0,250,0,130,0,246,0,176,0,204,0,211,0,135,0,232,0,85,0,239,0,79,0,198,0,85,0,155,0,102,0, +141,0,114,0,142,0,91,0,179,0,63,0,207,0,31,0,179,0,249,255,127,0,243,255,85,0,20,0,59,0,50,0, +49,0,47,0,55,0,26,0,60,0,9,0,53,0,12,0,28,0,26,0,245,255,29,0,232,255,34,0,0,0,44,0, +43,0,53,0,79,0,57,0,85,0,57,0,69,0,69,0,43,0,88,0,28,0,109,0,47,0,128,0,92,0,123,0, +134,0,86,0,149,0,37,0,152,0,25,0,126,0,40,0,71,0,53,0,45,0,69,0,28,0,44,0,24,0,247,255, +57,0,217,255,61,0,188,255,24,0,168,255,245,255,180,255,207,255,192,255,165,255,168,255,144,255,127,255,157,255,105,255, +172,255,101,255,165,255,111,255,147,255,140,255,133,255,176,255,132,255,201,255,148,255,204,255,177,255,188,255,197,255,162,255, +204,255,145,255,213,255,158,255,212,255,178,255,195,255,189,255,194,255,211,255,195,255,235,255,187,255,247,255,189,255,3,0, +190,255,1,0,186,255,240,255,194,255,231,255,189,255,225,255,178,255,227,255,169,255,234,255,138,255,215,255,127,255,199,255, +166,255,210,255,199,255,202,255,215,255,172,255,237,255,157,255,243,255,151,255,222,255,143,255,188,255,139,255,155,255,139,255, +147,255,147,255,162,255,149,255,195,255,146,255,232,255,146,255,228,255,137,255,214,255,157,255,198,255,204,255,175,255,249,255, +194,255,47,0,214,255,67,0,227,255,53,0,5,0,44,0,23,0,28,0,51,0,33,0,87,0,56,0,92,0,70,0, +94,0,88,0,83,0,97,0,72,0,95,0,85,0,96,0,106,0,94,0,135,0,101,0,155,0,105,0,145,0,90,0, +135,0,80,0,144,0,92,0,148,0,99,0,129,0,84,0,88,0,60,0,56,0,53,0,44,0,63,0,27,0,62,0, +50,0,76,0,93,0,90,0,92,0,60,0,93,0,43,0,82,0,46,0,35,0,48,0,16,0,81,0,27,0,118,0, +70,0,138,0,144,0,140,0,197,0,117,0,225,0,107,0,225,0,128,0,182,0,154,0,136,0,182,0,129,0,217,0, +139,0,230,0,148,0,216,0,171,0,212,0,177,0,212,0,176,0,224,0,199,0,6,1,200,0,15,1,183,0,252,0, +186,0,245,0,189,0,233,0,178,0,205,0,177,0,180,0,196,0,170,0,217,0,167,0,229,0,161,0,234,0,158,0, +223,0,152,0,194,0,148,0,169,0,159,0,151,0,174,0,137,0,173,0,146,0,164,0,191,0,166,0,238,0,169,0, +254,0,170,0,0,1,196,0,241,0,234,0,207,0,249,0,186,0,243,0,187,0,223,0,211,0,210,0,243,0,216,0, +5,1,230,0,13,1,248,0,9,1,255,0,18,1,5,1,40,1,15,1,50,1,18,1,61,1,28,1,44,1,20,1, +9,1,253,0,11,1,255,0,25,1,6,1,45,1,16,1,63,1,35,1,68,1,58,1,66,1,79,1,44,1,65,1, +27,1,30,1,26,1,253,0,28,1,228,0,21,1,220,0,254,0,222,0,235,0,235,0,213,0,234,0,208,0,224,0, +221,0,209,0,205,0,170,0,201,0,154,0,185,0,147,0,130,0,122,0,104,0,126,0,87,0,131,0,67,0,121,0, +78,0,121,0,88,0,112,0,71,0,82,0,47,0,62,0,44,0,77,0,47,0,105,0,50,0,124,0,75,0,145,0, +93,0,144,0,89,0,115,0,93,0,94,0,100,0,80,0,99,0,64,0,102,0,59,0,94,0,64,0,69,0,76,0, +49,0,108,0,30,0,135,0,11,0,128,0,12,0,98,0,32,0,58,0,40,0,11,0,35,0,238,255,29,0,244,255, +252,255,248,255,231,255,255,255,238,255,3,0,244,255,234,255,22,0,218,255,51,0,210,255,62,0,210,255,56,0,222,255, +6,0,213,255,225,255,221,255,207,255,236,255,210,255,245,255,244,255,0,0,252,255,233,255,16,0,229,255,11,0,222,255, +208,255,188,255,187,255,192,255,160,255,187,255,134,255,170,255,145,255,172,255,130,255,146,255,120,255,123,255,132,255,115,255, +132,255,95,255,138,255,83,255,156,255,90,255,154,255,89,255,137,255,80,255,131,255,83,255,126,255,91,255,138,255,113,255, +157,255,138,255,160,255,148,255,191,255,173,255,211,255,173,255,201,255,138,255,210,255,126,255,217,255,141,255,215,255,178,255, +206,255,214,255,179,255,225,255,185,255,238,255,231,255,252,255,1,0,232,255,15,0,209,255,45,0,231,255,44,0,2,0, +23,0,21,0,23,0,55,0,28,0,74,0,38,0,71,0,47,0,46,0,61,0,17,0,78,0,7,0,94,0,24,0, +119,0,72,0,108,0,100,0,100,0,119,0,110,0,129,0,93,0,95,0,101,0,75,0,92,0,59,0,72,0,58,0, +93,0,97,0,80,0,94,0,74,0,72,0,98,0,63,0,101,0,46,0,112,0,53,0,102,0,58,0,85,0,66,0, +87,0,85,0,77,0,83,0,78,0,80,0,94,0,85,0,114,0,94,0,149,0,115,0,167,0,122,0,160,0,114,0, +158,0,117,0,152,0,125,0,146,0,134,0,167,0,166,0,192,0,202,0,202,0,221,0,198,0,229,0,186,0,227,0, +180,0,220,0,164,0,194,0,157,0,178,0,168,0,187,0,155,0,187,0,143,0,185,0,145,0,183,0,158,0,170,0, +177,0,145,0,177,0,102,0,177,0,79,0,175,0,80,0,163,0,91,0,156,0,114,0,152,0,144,0,174,0,186,0, +176,0,188,0,156,0,150,0,182,0,138,0,189,0,113,0,165,0,83,0,157,0,97,0,125,0,117,0,82,0,131,0, +59,0,141,0,59,0,141,0,92,0,132,0,128,0,106,0,168,0,85,0,188,0,67,0,153,0,42,0,122,0,53,0, +99,0,74,0,68,0,66,0,85,0,64,0,132,0,69,0,168,0,72,0,182,0,83,0,154,0,90,0,125,0,109,0, +112,0,128,0,99,0,117,0,125,0,109,0,146,0,87,0,133,0,53,0,139,0,63,0,131,0,83,0,89,0,74,0, +57,0,59,0,40,0,42,0,48,0,34,0,74,0,32,0,98,0,26,0,114,0,16,0,95,0,246,255,62,0,229,255, +38,0,233,255,11,0,236,255,252,255,242,255,5,0,3,0,21,0,19,0,18,0,11,0,17,0,0,0,35,0,255,255, +35,0,236,255,38,0,222,255,42,0,225,255,15,0,220,255,2,0,236,255,251,255,247,255,226,255,224,255,230,255,204,255, +240,255,182,255,232,255,156,255,243,255,164,255,246,255,180,255,215,255,173,255,206,255,180,255,212,255,193,255,205,255,181,255, +210,255,171,255,219,255,169,255,233,255,180,255,254,255,203,255,248,255,202,255,239,255,193,255,238,255,197,255,242,255,212,255, +243,255,226,255,221,255,219,255,218,255,226,255,237,255,246,255,238,255,241,255,229,255,219,255,208,255,186,255,181,255,158,255, +164,255,145,255,152,255,136,255,144,255,129,255,154,255,132,255,164,255,131,255,143,255,105,255,131,255,100,255,135,255,121,255, +121,255,123,255,108,255,111,255,116,255,101,255,144,255,101,255,159,255,97,255,162,255,97,255,165,255,116,255,136,255,112,255, +122,255,109,255,141,255,118,255,159,255,110,255,181,255,106,255,180,255,103,255,155,255,108,255,120,255,124,255,91,255,140,255, +97,255,155,255,113,255,142,255,142,255,122,255,167,255,113,255,174,255,125,255,172,255,162,255,134,255,178,255,117,255,195,255, +129,255,202,255,134,255,176,255,181,255,178,255,228,255,189,255,231,255,185,255,233,255,206,255,240,255,245,255,229,255,10,0, +208,255,3,0,200,255,248,255,205,255,244,255,220,255,247,255,245,255,6,0,16,0,25,0,43,0,41,0,42,0,30,0, +25,0,7,0,19,0,3,0,17,0,8,0,17,0,18,0,30,0,38,0,58,0,69,0,78,0,94,0,96,0,111,0, +110,0,120,0,111,0,112,0,126,0,114,0,128,0,107,0,119,0,100,0,132,0,125,0,125,0,133,0,104,0,119,0, +94,0,108,0,109,0,114,0,132,0,126,0,126,0,117,0,130,0,124,0,120,0,123,0,90,0,104,0,99,0,117,0, +111,0,132,0,113,0,135,0,99,0,121,0,77,0,105,0,90,0,120,0,105,0,130,0,103,0,120,0,103,0,115,0, +109,0,117,0,101,0,99,0,77,0,55,0,96,0,49,0,111,0,56,0,72,0,45,0,19,0,53,0,189,255,56,0, +108,255,64,0,63,255,76,0,17,255,59,0,10,255,58,0,31,255,75,0,40,255,83,0,55,255,92,0,51,255,86,0, +45,255,85,0,60,255,105,0,62,255,116,0,71,255,122,0,71,255,107,0,52,255,77,0,67,255,88,0,78,255,106,0, +64,255,100,0,52,255,85,0,42,255,63,0,51,255,53,0,51,255,40,0,36,255,25,0,32,255,30,0,6,255,18,0, +244,254,4,0,246,254,0,0,252,254,250,255,15,255,253,255,25,255,251,255,44,255,6,0,68,255,22,0,71,255,15,0, +69,255,4,0,62,255,0,0,73,255,25,0,70,255,47,0,40,255,47,0,35,255,59,0,15,255,44,0,2,255,20,0, +27,255,23,0,31,255,12,0,22,255,254,255,251,254,236,255,226,254,228,255,235,254,242,255,237,254,233,255,249,254,219,255, +19,255,215,255,23,255,200,255,23,255,189,255,23,255,184,255,17,255,177,255,3,255,166,255,247,254,164,255,247,254,179,255, +244,254,185,255,249,254,187,255,10,255,189,255,23,255,186,255,38,255,190,255,41,255,196,255,32,255,203,255,21,255,215,255, +8,255,223,255,255,254,224,255,245,254,216,255,1,255,221,255,27,255,231,255,24,255,217,255,31,255,213,255,55,255,225,255, +54,255,214,255,54,255,201,255,64,255,201,255,69,255,207,255,70,255,218,255,70,255,231,255,85,255,248,255,88,255,239,255, +84,255,214,255,107,255,212,255,110,255,209,255,96,255,214,255,98,255,250,255,81,255,17,0,60,255,17,0,59,255,1,0, +52,255,215,255,62,255,184,255,91,255,187,255,92,255,195,255,82,255,215,255,72,255,240,255,50,255,240,255,60,255,245,255, +96,255,1,0,109,255,243,255,126,255,238,255,150,255,250,255,151,255,249,255,162,255,2,0,188,255,24,0,191,255,29,0, +190,255,38,0,190,255,52,0,163,255,42,0,149,255,33,0,151,255,28,0,149,255,12,0,167,255,15,0,188,255,33,0, +199,255,56,0,196,255,71,0,166,255,59,0,155,255,52,0,174,255,52,0,201,255,34,0,232,255,7,0,9,0,251,255, +34,0,8,0,27,0,29,0,20,0,70,0,21,0,115,0,2,0,121,0,2,0,116,0,6,0,100,0,11,0,85,0, +40,0,94,0,46,0,89,0,44,0,86,0,49,0,104,0,34,0,120,0,11,0,128,0,239,255,121,0,223,255,102,0, +224,255,77,0,241,255,53,0,13,0,39,0,16,0,20,0,17,0,24,0,29,0,58,0,23,0,84,0,23,0,101,0, +26,0,98,0,14,0,71,0,12,0,50,0,9,0,41,0,13,0,48,0,30,0,68,0,31,0,75,0,48,0,94,0, +68,0,121,0,38,0,114,0,1,0,107,0,239,255,113,0,230,255,108,0,242,255,93,0,1,0,64,0,20,0,42,0, +36,0,40,0,39,0,60,0,41,0,101,0,25,0,127,0,6,0,131,0,11,0,124,0,26,0,100,0,47,0,73,0, +67,0,62,0,73,0,67,0,56,0,78,0,38,0,98,0,39,0,123,0,52,0,123,0,64,0,93,0,79,0,56,0, +98,0,44,0,101,0,49,0,85,0,59,0,66,0,76,0,46,0,83,0,33,0,84,0,30,0,80,0,27,0,75,0, +20,0,72,0,0,0,61,0,242,255,53,0,239,255,47,0,236,255,38,0,235,255,33,0,243,255,43,0,254,255,66,0, +253,255,77,0,248,255,73,0,6,0,68,0,42,0,64,0,78,0,54,0,91,0,36,0,85,0,30,0,58,0,38,0, +34,0,62,0,32,0,93,0,27,0,90,0,35,0,69,0,45,0,39,0,42,0,11,0,44,0,12,0,21,0,11,0, +248,255,9,0,231,255,4,0,214,255,242,255,226,255,238,255,246,255,236,255,253,255,230,255,8,0,238,255,32,0,9,0, +52,0,23,0,39,0,249,255,27,0,220,255,37,0,224,255,37,0,238,255,39,0,8,0,37,0,26,0,22,0,21,0, +23,0,14,0,24,0,255,255,26,0,242,255,45,0,249,255,35,0,242,255,8,0,234,255,248,255,247,255,228,255,2,0, +221,255,10,0,211,255,252,255,226,255,243,255,8,0,246,255,9,0,223,255,13,0,218,255,1,0,217,255,227,255,214,255, +229,255,238,255,214,255,234,255,221,255,225,255,3,0,220,255,19,0,193,255,45,0,194,255,46,0,197,255,11,0,191,255, +242,255,203,255,243,255,231,255,249,255,241,255,246,255,217,255,12,0,211,255,34,0,217,255,51,0,229,255,52,0,239,255, +28,0,233,255,33,0,1,0,27,0,9,0,19,0,2,0,43,0,17,0,48,0,12,0,57,0,15,0,59,0,22,0, +60,0,38,0,80,0,70,0,90,0,82,0,113,0,90,0,116,0,74,0,119,0,62,0,138,0,73,0,122,0,62,0, +127,0,72,0,150,0,97,0,155,0,108,0,158,0,122,0,149,0,128,0,152,0,137,0,163,0,135,0,169,0,120,0, +173,0,106,0,171,0,101,0,177,0,116,0,168,0,123,0,157,0,132,0,163,0,156,0,166,0,172,0,160,0,167,0, +165,0,155,0,203,0,156,0,225,0,143,0,228,0,125,0,245,0,144,0,240,0,163,0,223,0,168,0,223,0,167,0, +237,0,161,0,3,1,158,0,9,1,156,0,0,1,161,0,235,0,162,0,197,0,148,0,180,0,142,0,181,0,144,0, +168,0,132,0,169,0,136,0,170,0,144,0,150,0,132,0,143,0,123,0,138,0,116,0,152,0,125,0,171,0,140,0, +170,0,136,0,193,0,154,0,202,0,158,0,198,0,148,0,215,0,154,0,211,0,141,0,234,0,149,0,239,0,144,0, +204,0,111,0,216,0,126,0,219,0,136,0,200,0,121,0,188,0,110,0,171,0,102,0,172,0,114,0,168,0,121,0, +164,0,122,0,163,0,116,0,162,0,101,0,186,0,103,0,199,0,95,0,199,0,83,0,208,0,94,0,208,0,113,0, +195,0,133,0,180,0,147,0,177,0,151,0,186,0,136,0,212,0,116,0,0,1,111,0,14,1,93,0,232,0,59,0, +193,0,59,0,169,0,93,0,137,0,110,0,124,0,109,0,142,0,101,0,168,0,82,0,186,0,61,0,174,0,37,0, +152,0,29,0,131,0,42,0,122,0,65,0,138,0,91,0,143,0,86,0,159,0,77,0,194,0,81,0,187,0,60,0, +176,0,47,0,188,0,64,0,185,0,73,0,179,0,74,0,162,0,60,0,144,0,44,0,145,0,43,0,127,0,26,0, +116,0,16,0,128,0,25,0,104,0,5,0,88,0,252,255,92,0,6,0,65,0,243,255,59,0,240,255,83,0,9,0, +98,0,21,0,113,0,26,0,138,0,35,0,153,0,39,0,153,0,43,0,162,0,61,0,156,0,58,0,144,0,36,0, +158,0,26,0,159,0,255,255,146,0,225,255,137,0,214,255,119,0,215,255,95,0,224,255,90,0,242,255,100,0,2,0, +81,0,231,255,81,0,214,255,111,0,227,255,110,0,221,255,106,0,225,255,105,0,239,255,101,0,250,255,106,0,5,0, +112,0,8,0,134,0,21,0,136,0,15,0,132,0,4,0,146,0,14,0,153,0,23,0,150,0,28,0,129,0,20,0, +125,0,20,0,127,0,17,0,114,0,247,255,128,0,243,255,140,0,242,255,141,0,240,255,142,0,250,255,143,0,14,0, +162,0,44,0,164,0,43,0,159,0,26,0,160,0,14,0,145,0,0,0,145,0,5,0,148,0,13,0,134,0,6,0, +131,0,4,0,153,0,25,0,170,0,41,0,163,0,32,0,161,0,30,0,158,0,23,0,156,0,12,0,161,0,4,0, +158,0,246,255,174,0,1,0,194,0,20,0,188,0,22,0,180,0,33,0,183,0,54,0,173,0,54,0,162,0,36,0, +190,0,44,0,213,0,55,0,222,0,64,0,227,0,76,0,209,0,73,0,217,0,92,0,225,0,104,0,214,0,93,0, +233,0,103,0,233,0,90,0,226,0,67,0,250,0,73,0,5,1,80,0,255,0,88,0,236,0,98,0,223,0,115,0, +231,0,135,0,222,0,116,0,214,0,86,0,238,0,87,0,245,0,89,0,228,0,83,0,225,0,97,0,220,0,111,0, +209,0,112,0,208,0,111,0,205,0,97,0,194,0,74,0,198,0,65,0,212,0,64,0,228,0,67,0,255,0,87,0, +6,1,96,0,240,0,81,0,228,0,79,0,238,0,103,0,246,0,127,0,237,0,126,0,241,0,121,0,4,1,117,0, +12,1,101,0,32,1,101,0,41,1,109,0,26,1,112,0,23,1,138,0,18,1,159,0,7,1,157,0,242,0,130,0, +231,0,106,0,1,1,115,0,4,1,107,0,240,0,83,0,243,0,91,0,2,1,117,0,14,1,140,0,10,1,135,0, +4,1,115,0,10,1,101,0,4,1,80,0,241,0,57,0,237,0,58,0,244,0,81,0,235,0,97,0,217,0,103,0, +203,0,101,0,198,0,94,0,194,0,83,0,186,0,64,0,192,0,59,0,203,0,67,0,202,0,72,0,197,0,73,0, +212,0,88,0,234,0,104,0,221,0,88,0,212,0,79,0,217,0,83,0,205,0,68,0,205,0,58,0,211,0,55,0, +219,0,63,0,229,0,82,0,221,0,89,0,210,0,89,0,210,0,91,0,217,0,95,0,199,0,75,0,175,0,53,0, +189,0,70,0,185,0,70,0,164,0,45,0,163,0,35,0,164,0,36,0,163,0,43,0,157,0,42,0,157,0,36,0, +169,0,33,0,170,0,20,0,166,0,11,0,165,0,12,0,149,0,4,0,132,0,247,255,130,0,237,255,128,0,224,255, +142,0,229,255,151,0,236,255,135,0,222,255,129,0,218,255,122,0,217,255,103,0,211,255,78,0,203,255,62,0,199,255, +83,0,215,255,96,0,213,255,98,0,202,255,106,0,214,255,95,0,220,255,77,0,220,255,60,0,210,255,59,0,204,255, +78,0,208,255,93,0,206,255,109,0,211,255,113,0,212,255,103,0,199,255,107,0,194,255,129,0,207,255,131,0,212,255, +109,0,204,255,109,0,216,255,114,0,226,255,107,0,218,255,109,0,212,255,117,0,209,255,130,0,213,255,127,0,212,255, +122,0,215,255,118,0,222,255,104,0,221,255,112,0,233,255,124,0,238,255,126,0,224,255,130,0,215,255,146,0,225,255, +154,0,240,255,140,0,239,255,145,0,253,255,163,0,10,0,168,0,4,0,168,0,2,0,162,0,6,0,164,0,21,0, +147,0,17,0,122,0,1,0,116,0,251,255,115,0,235,255,134,0,231,255,155,0,235,255,151,0,230,255,139,0,227,255, +129,0,230,255,131,0,243,255,126,0,243,255,122,0,238,255,127,0,243,255,116,0,241,255,97,0,233,255,96,0,236,255, +113,0,248,255,111,0,239,255,117,0,239,255,150,0,9,0,151,0,7,0,147,0,252,255,158,0,251,255,157,0,244,255, +149,0,244,255,144,0,253,255,151,0,14,0,168,0,29,0,190,0,40,0,211,0,44,0,210,0,26,0,205,0,15,0, +217,0,27,0,224,0,34,0,210,0,19,0,200,0,16,0,195,0,35,0,184,0,52,0,177,0,55,0,169,0,34,0, +179,0,14,0,201,0,7,0,202,0,0,0,180,0,252,255,152,0,1,0,153,0,28,0,163,0,41,0,160,0,23,0, +170,0,4,0,173,0,237,255,171,0,222,255,164,0,224,255,155,0,239,255,148,0,5,0,116,0,1,0,107,0,7,0, +135,0,31,0,160,0,40,0,174,0,40,0,169,0,26,0,159,0,12,0,149,0,5,0,138,0,11,0,130,0,26,0, +117,0,26,0,125,0,31,0,149,0,42,0,157,0,36,0,153,0,21,0,147,0,9,0,141,0,3,0,146,0,8,0, +157,0,17,0,140,0,4,0,124,0,0,0,121,0,13,0,118,0,15,0,136,0,22,0,135,0,3,0,126,0,238,255, +132,0,249,255,99,0,243,255,68,0,241,255,64,0,250,255,66,0,244,255,77,0,230,255,83,0,205,255,95,0,191,255, +104,0,189,255,90,0,185,255,83,0,201,255,80,0,224,255,50,0,224,255,28,0,220,255,44,0,230,255,55,0,214,255, +52,0,183,255,61,0,181,255,76,0,202,255,77,0,215,255,48,0,197,255,37,0,190,255,50,0,204,255,36,0,193,255, +9,0,173,255,251,255,164,255,7,0,171,255,22,0,176,255,16,0,167,255,9,0,167,255,247,255,163,255,226,255,156,255, +224,255,156,255,238,255,154,255,244,255,139,255,247,255,123,255,13,0,137,255,14,0,143,255,11,0,153,255,23,0,179,255, +13,0,178,255,9,0,167,255,6,0,146,255,21,0,148,255,54,0,180,255,24,0,163,255,244,255,148,255,246,255,171,255, +252,255,191,255,252,255,189,255,239,255,160,255,251,255,151,255,16,0,156,255,11,0,144,255,11,0,142,255,14,0,147,255, +14,0,151,255,32,0,169,255,50,0,187,255,55,0,194,255,64,0,205,255,70,0,212,255,59,0,201,255,52,0,190,255, +55,0,184,255,53,0,176,255,55,0,179,255,64,0,191,255,51,0,188,255,47,0,197,255,63,0,225,255,41,0,209,255, +15,0,173,255,19,0,159,255,27,0,150,255,41,0,149,255,43,0,145,255,36,0,148,255,18,0,157,255,244,255,158,255, +232,255,166,255,217,255,160,255,210,255,154,255,243,255,175,255,21,0,189,255,34,0,181,255,49,0,178,255,66,0,189,255, +45,0,179,255,25,0,184,255,27,0,210,255,21,0,218,255,42,0,234,255,57,0,234,255,73,0,232,255,107,0,253,255, +94,0,240,255,87,0,239,255,87,0,244,255,60,0,223,255,58,0,224,255,69,0,234,255,80,0,235,255,82,0,225,255, +76,0,217,255,70,0,218,255,56,0,213,255,62,0,220,255,76,0,229,255,87,0,231,255,88,0,223,255,64,0,197,255, +50,0,190,255,54,0,203,255,71,0,224,255,81,0,233,255,73,0,228,255,80,0,243,255,74,0,250,255,47,0,233,255, +46,0,231,255,50,0,225,255,48,0,210,255,67,0,211,255,81,0,210,255,75,0,192,255,71,0,184,255,62,0,184,255, +49,0,189,255,48,0,209,255,46,0,225,255,40,0,227,255,39,0,222,255,55,0,225,255,58,0,219,255,40,0,201,255, +52,0,207,255,49,0,197,255,35,0,181,255,49,0,203,255,29,0,205,255,251,255,193,255,243,255,193,255,249,255,193,255, +10,0,190,255,7,0,166,255,9,0,156,255,16,0,168,255,242,255,157,255,234,255,167,255,6,0,201,255,16,0,206,255, +30,0,203,255,33,0,192,255,28,0,181,255,35,0,193,255,2,0,176,255,238,255,171,255,7,0,198,255,6,0,189,255, +28,0,196,255,61,0,216,255,55,0,208,255,43,0,199,255,22,0,186,255,21,0,196,255,35,0,213,255,43,0,214,255, +55,0,212,255,41,0,190,255,33,0,186,255,27,0,188,255,249,255,160,255,241,255,150,255,3,0,159,255,13,0,163,255, +0,0,152,255,229,255,141,255,217,255,152,255,219,255,169,255,230,255,177,255,231,255,156,255,229,255,127,255,239,255,122,255, +238,255,126,255,222,255,135,255,200,255,146,255,181,255,152,255,166,255,145,255,173,255,138,255,190,255,130,255,183,255,106,255, +194,255,111,255,215,255,137,255,218,255,150,255,223,255,161,255,217,255,156,255,214,255,151,255,217,255,153,255,206,255,150,255, +186,255,148,255,179,255,151,255,196,255,161,255,196,255,141,255,192,255,113,255,216,255,120,255,217,255,116,255,192,255,95,255, +176,255,86,255,177,255,96,255,176,255,104,255,172,255,106,255,182,255,119,255,173,255,112,255,161,255,100,255,195,255,125,255, +216,255,132,255,200,255,103,255,197,255,86,255,203,255,83,255,199,255,81,255,190,255,89,255,173,255,95,255,174,255,108,255, +198,255,125,255,193,255,105,255,181,255,81,255,185,255,83,255,179,255,89,255,185,255,110,255,188,255,124,255,181,255,121,255, +199,255,134,255,203,255,132,255,187,255,115,255,200,255,129,255,205,255,134,255,198,255,123,255,215,255,129,255,217,255,122,255, +211,255,111,255,216,255,111,255,218,255,110,255,217,255,115,255,206,255,117,255,204,255,131,255,207,255,149,255,203,255,155,255, +210,255,162,255,210,255,154,255,219,255,148,255,224,255,145,255,218,255,140,255,239,255,167,255,240,255,175,255,231,255,169,255, +239,255,175,255,241,255,170,255,5,0,177,255,13,0,174,255,7,0,167,255,0,0,172,255,247,255,178,255,9,0,207,255, +6,0,208,255,1,0,204,255,22,0,228,255,18,0,232,255,21,0,245,255,32,0,7,0,23,0,1,0,23,0,250,255, +38,0,248,255,46,0,240,255,37,0,228,255,41,0,242,255,45,0,12,0,34,0,26,0,31,0,39,0,28,0,34,0, +35,0,18,0,41,0,248,255,41,0,222,255,53,0,217,255,37,0,196,255,17,0,180,255,13,0,186,255,243,255,173,255, +222,255,159,255,210,255,145,255,201,255,129,255,209,255,132,255,206,255,135,255,196,255,142,255,200,255,167,255,195,255,179,255, +188,255,182,255,189,255,180,255,188,255,164,255,190,255,149,255,195,255,141,255,205,255,142,255,198,255,128,255,189,255,112,255, +212,255,131,255,208,255,130,255,187,255,113,255,182,255,110,255,157,255,88,255,163,255,92,255,187,255,107,255,175,255,90,255, +181,255,97,255,180,255,110,255,147,255,97,255,136,255,97,255,144,255,106,255,152,255,110,255,158,255,112,255,158,255,117,255, +158,255,127,255,160,255,129,255,174,255,120,255,209,255,108,255,215,255,76,255,192,255,55,255,173,255,96,255,145,255,159,255, +127,255,206,255,136,255,206,255,177,255,166,255,240,255,122,255,251,255,59,255,215,255,11,255,174,255,17,255,138,255,54,255, +128,255,105,255,124,255,131,255,130,255,142,255,141,255,141,255,143,255,118,255,178,255,114,255,213,255,110,255,217,255,93,255, +207,255,79,255,181,255,63,255,177,255,70,255,178,255,77,255,162,255,67,255,168,255,81,255,170,255,100,255,143,255,95,255, +133,255,99,255,126,255,92,255,94,255,56,255,104,255,60,255,138,255,96,255,134,255,102,255,141,255,110,255,149,255,101,255, +149,255,77,255,173,255,86,255,180,255,101,255,169,255,112,255,164,255,132,255,168,255,153,255,183,255,170,255,188,255,159,255, +184,255,132,255,197,255,125,255,208,255,129,255,199,255,124,255,197,255,132,255,195,255,143,255,186,255,142,255,199,255,149,255, +205,255,142,255,194,255,121,255,194,255,120,255,188,255,118,255,171,255,105,255,170,255,102,255,186,255,108,255,185,255,97,255, +164,255,72,255,160,255,71,255,160,255,80,255,149,255,84,255,146,255,94,255,145,255,98,255,147,255,92,255,166,255,101,255, +192,255,121,255,202,255,130,255,200,255,127,255,198,255,128,255,207,255,143,255,221,255,158,255,222,255,153,255,226,255,150,255, +242,255,161,255,253,255,171,255,251,255,174,255,235,255,173,255,223,255,181,255,231,255,200,255,254,255,216,255,16,0,214,255, +25,0,204,255,36,0,207,255,28,0,209,255,9,0,211,255,251,255,217,255,241,255,214,255,249,255,215,255,14,0,218,255, +36,0,221,255,49,0,222,255,43,0,220,255,31,0,223,255,23,0,232,255,20,0,244,255,7,0,244,255,5,0,247,255, +28,0,3,0,45,0,1,0,57,0,0,0,58,0,0,0,45,0,252,255,38,0,255,255,37,0,5,0,47,0,15,0, +44,0,2,0,25,0,232,255,30,0,236,255,37,0,250,255,29,0,247,255,24,0,243,255,37,0,254,255,43,0,1,0, +27,0,242,255,27,0,248,255,29,0,6,0,6,0,1,0,241,255,251,255,235,255,250,255,234,255,242,255,239,255,230,255, +1,0,233,255,252,255,226,255,234,255,215,255,249,255,233,255,243,255,232,255,224,255,216,255,241,255,227,255,245,255,219,255, +241,255,201,255,245,255,198,255,236,255,191,255,241,255,200,255,249,255,224,255,239,255,239,255,246,255,5,0,5,0,20,0, +7,0,9,0,4,0,246,255,5,0,233,255,25,0,246,255,31,0,4,0,8,0,255,255,255,255,6,0,249,255,5,0, +238,255,242,255,239,255,226,255,0,0,223,255,19,0,232,255,2,0,218,255,239,255,207,255,243,255,217,255,242,255,219,255, +249,255,223,255,0,0,219,255,254,255,210,255,3,0,218,255,254,255,221,255,251,255,224,255,16,0,243,255,23,0,248,255, +6,0,233,255,14,0,236,255,34,0,251,255,24,0,245,255,6,0,241,255,253,255,250,255,251,255,9,0,1,0,23,0, +5,0,22,0,8,0,5,0,8,0,242,255,10,0,238,255,11,0,246,255,6,0,249,255,10,0,252,255,7,0,242,255, +249,255,225,255,245,255,226,255,238,255,232,255,232,255,233,255,238,255,232,255,252,255,229,255,12,0,231,255,20,0,233,255, +18,0,233,255,10,0,235,255,248,255,228,255,243,255,222,255,5,0,228,255,14,0,226,255,14,0,227,255,18,0,237,255, +18,0,246,255,21,0,4,0,19,0,12,0,11,0,9,0,17,0,9,0,21,0,4,0,23,0,255,255,35,0,4,0, +38,0,3,0,22,0,247,255,15,0,247,255,13,0,0,0,12,0,7,0,29,0,28,0,35,0,30,0,34,0,19,0, +47,0,18,0,36,0,0,0,26,0,245,255,29,0,254,255,20,0,2,0,12,0,3,0,15,0,2,0,31,0,6,0, +18,0,246,255,250,255,227,255,7,0,246,255,13,0,4,0,9,0,6,0,9,0,5,0,8,0,247,255,21,0,241,255, +25,0,233,255,23,0,229,255,22,0,237,255,14,0,247,255,20,0,15,0,15,0,18,0,10,0,2,0,27,0,253,255, +31,0,241,255,29,0,236,255,26,0,242,255,19,0,247,255,30,0,9,0,32,0,9,0,20,0,248,255,29,0,252,255, +48,0,12,0,55,0,22,0,47,0,21,0,41,0,24,0,49,0,36,0,52,0,37,0,49,0,29,0,46,0,23,0, +50,0,24,0,67,0,37,0,71,0,45,0,56,0,43,0,50,0,48,0,49,0,51,0,44,0,46,0,46,0,46,0, +58,0,54,0,67,0,60,0,73,0,66,0,74,0,68,0,74,0,66,0,80,0,66,0,77,0,56,0,77,0,53,0, +83,0,57,0,72,0,48,0,74,0,53,0,89,0,70,0,81,0,65,0,78,0,62,0,83,0,66,0,76,0,62,0, +67,0,60,0,51,0,60,0,43,0,66,0,56,0,83,0,51,0,74,0,40,0,60,0,54,0,72,0,56,0,75,0, +56,0,77,0,60,0,84,0,50,0,76,0,53,0,75,0,55,0,74,0,46,0,69,0,52,0,80,0,52,0,78,0, +53,0,71,0,52,0,58,0,55,0,54,0,80,0,80,0,75,0,84,0,48,0,73,0,42,0,78,0,43,0,83,0, +47,0,85,0,42,0,76,0,41,0,73,0,49,0,77,0,39,0,63,0,45,0,61,0,60,0,70,0,56,0,70,0, +51,0,71,0,45,0,69,0,32,0,53,0,25,0,40,0,32,0,41,0,42,0,43,0,57,0,44,0,66,0,44,0, +56,0,34,0,41,0,25,0,34,0,25,0,40,0,32,0,45,0,25,0,23,0,240,255,5,0,203,255,6,0,201,255, +244,255,204,255,216,255,208,255,208,255,223,255,212,255,232,255,227,255,239,255,0,0,253,255,7,0,250,255,253,255,241,255, +5,0,0,0,1,0,9,0,245,255,9,0,252,255,20,0,249,255,12,0,236,255,244,255,236,255,229,255,240,255,217,255, +246,255,217,255,2,0,236,255,255,255,249,255,224,255,230,255,212,255,213,255,226,255,213,255,223,255,203,255,217,255,202,255, +217,255,212,255,211,255,213,255,221,255,219,255,223,255,213,255,221,255,200,255,220,255,194,255,199,255,176,255,199,255,179,255, +208,255,184,255,198,255,171,255,215,255,187,255,221,255,201,255,194,255,188,255,191,255,193,255,189,255,194,255,179,255,181,255, +185,255,178,255,185,255,167,255,192,255,162,255,218,255,177,255,217,255,173,255,203,255,164,255,207,255,174,255,211,255,185,255, +212,255,193,255,202,255,188,255,195,255,179,255,208,255,186,255,214,255,187,255,216,255,185,255,214,255,178,255,210,255,168,255, +211,255,169,255,212,255,176,255,221,255,191,255,212,255,185,255,206,255,180,255,225,255,202,255,212,255,200,255,208,255,204,255, +222,255,217,255,202,255,189,255,205,255,176,255,218,255,178,255,218,255,180,255,220,255,201,255,208,255,213,255,218,255,233,255, +229,255,238,255,214,255,209,255,223,255,207,255,227,255,211,255,215,255,205,255,205,255,199,255,194,255,188,255,211,255,200,255, +222,255,208,255,217,255,204,255,225,255,215,255,225,255,222,255,221,255,224,255,218,255,228,255,208,255,224,255,197,255,218,255, +193,255,215,255,195,255,212,255,202,255,210,255,218,255,222,255,222,255,230,255,209,255,231,255,202,255,237,255,186,255,229,255, +173,255,214,255,176,255,207,255,176,255,195,255,178,255,187,255,176,255,182,255,179,255,184,255,190,255,194,255,181,255,183,255, +177,255,179,255,191,255,192,255,198,255,196,255,200,255,195,255,182,255,179,255,162,255,166,255,168,255,182,255,168,255,192,255, +166,255,194,255,177,255,198,255,173,255,182,255,166,255,164,255,165,255,154,255,158,255,145,255,164,255,153,255,163,255,156,255, +150,255,147,255,164,255,163,255,180,255,179,255,162,255,164,255,147,255,151,255,161,255,163,255,178,255,180,255,176,255,181,255, +170,255,181,255,175,255,193,255,178,255,201,255,177,255,200,255,175,255,191,255,174,255,181,255,188,255,190,255,199,255,206,255, +194,255,213,255,188,255,217,255,188,255,217,255,190,255,208,255,194,255,198,255,195,255,192,255,193,255,198,255,190,255,213,255, +182,255,223,255,177,255,225,255,183,255,224,255,195,255,218,255,200,255,204,255,195,255,188,255,185,255,177,255,178,255,179,255, +190,255,206,255,196,255,228,255,176,255,222,255,171,255,219,255,179,255,216,255,172,255,190,255,169,255,168,255,176,255,165,255, +183,255,171,255,191,255,186,255,190,255,198,255,180,255,202,255,168,255,202,255,164,255,202,255,173,255,206,255,175,255,194,255, +173,255,177,255,175,255,174,255,165,255,170,255,156,255,176,255,157,255,191,255,149,255,189,255,146,255,182,255,145,255,172,255, +143,255,162,255,154,255,170,255,145,255,161,255,125,255,145,255,130,255,155,255,132,255,163,255,134,255,165,255,145,255,169,255, +144,255,155,255,155,255,149,255,172,255,155,255,161,255,145,255,145,255,136,255,141,255,138,255,140,255,143,255,135,255,145,255, +125,255,140,255,135,255,152,255,142,255,157,255,126,255,131,255,124,255,121,255,133,255,129,255,129,255,130,255,124,255,132,255, +121,255,134,255,126,255,137,255,137,255,143,255,134,255,139,255,133,255,140,255,128,255,132,255,120,255,112,255,140,255,120,255, +161,255,137,255,152,255,134,255,144,255,141,255,143,255,152,255,144,255,150,255,158,255,151,255,169,255,156,255,171,255,163,255, +172,255,179,255,171,255,195,255,157,255,193,255,136,255,173,255,133,255,165,255,142,255,169,255,138,255,157,255,137,255,146,255, +146,255,145,255,143,255,136,255,134,255,123,255,131,255,122,255,131,255,128,255,139,255,142,255,158,255,172,255,175,255,200,255, +172,255,202,255,157,255,181,255,148,255,159,255,152,255,151,255,157,255,156,255,147,255,154,255,136,255,154,255,146,255,171,255, +151,255,171,255,144,255,155,255,149,255,159,255,147,255,159,255,135,255,147,255,140,255,151,255,135,255,143,255,121,255,130,255, +123,255,144,255,116,255,147,255,105,255,132,255,124,255,137,255,140,255,140,255,138,255,133,255,136,255,141,255,131,255,148,255, +134,255,153,255,150,255,160,255,153,255,154,255,144,255,150,255,137,255,165,255,131,255,180,255,132,255,184,255,140,255,173,255, +149,255,155,255,160,255,154,255,158,255,162,255,138,255,160,255,120,255,154,255,119,255,150,255,138,255,159,255,158,255,169,255, +153,255,157,255,156,255,159,255,180,255,189,255,186,255,194,255,178,255,184,255,180,255,184,255,181,255,179,255,191,255,176,255, +208,255,180,255,204,255,169,255,193,255,168,255,187,255,188,255,171,255,195,255,161,255,191,255,165,255,181,255,172,255,166,255, +179,255,158,255,173,255,151,255,158,255,149,255,151,255,157,255,142,255,151,255,141,255,142,255,162,255,155,255,171,255,158,255, +162,255,143,255,158,255,140,255,152,255,133,255,143,255,123,255,153,255,140,255,157,255,160,255,143,255,166,255,134,255,170,255, +129,255,166,255,131,255,154,255,146,255,145,255,151,255,130,255,146,255,120,255,139,255,128,255,122,255,137,255,102,255,140,255, +88,255,136,255,84,255,128,255,100,255,133,255,117,255,145,255,114,255,141,255,102,255,131,255,105,255,132,255,123,255,142,255, +128,255,135,255,125,255,124,255,132,255,128,255,137,255,129,255,142,255,129,255,146,255,131,255,125,255,117,255,112,255,124,255, +116,255,149,255,105,255,146,255,113,255,143,255,130,255,146,255,115,255,137,255,103,255,155,255,91,255,181,255,73,255,172,255, +100,255,156,255,141,255,124,255,147,255,64,255,126,255,26,255,96,255,49,255,77,255,120,255,56,255,168,255,26,255,157,255, +46,255,147,255,108,255,157,255,148,255,152,255,148,255,130,255,117,255,104,255,90,255,100,255,96,255,135,255,109,255,173,255, +112,255,183,255,108,255,166,255,95,255,131,255,83,255,101,255,85,255,107,255,93,255,138,255,91,255,159,255,86,255,157,255, +96,255,146,255,113,255,133,255,118,255,122,255,108,255,125,255,89,255,137,255,75,255,152,255,79,255,160,255,104,255,167,255, +133,255,170,255,141,255,160,255,136,255,154,255,130,255,156,255,121,255,153,255,131,255,161,255,146,255,166,255,146,255,155,255, +161,255,167,255,173,255,189,255,158,255,189,255,147,255,190,255,143,255,190,255,150,255,188,255,168,255,186,255,166,255,167,255, +163,255,162,255,166,255,179,255,150,255,184,255,145,255,192,255,155,255,202,255,158,255,193,255,170,255,192,255,178,255,193,255, +170,255,188,255,172,255,196,255,180,255,210,255,179,255,213,255,167,255,201,255,156,255,193,255,165,255,202,255,175,255,212,255, +178,255,217,255,170,255,211,255,149,255,195,255,140,255,191,255,138,255,185,255,128,255,164,255,146,255,166,255,166,255,176,255, +163,255,173,255,167,255,180,255,169,255,185,255,166,255,184,255,170,255,183,255,162,255,173,255,156,255,172,255,155,255,184,255, +141,255,188,255,139,255,201,255,139,255,208,255,134,255,196,255,155,255,203,255,180,255,212,255,179,255,195,255,178,255,187,255, +187,255,200,255,187,255,208,255,173,255,200,255,164,255,197,255,165,255,204,255,158,255,202,255,150,255,197,255,154,255,200,255, +158,255,199,255,163,255,198,255,162,255,196,255,159,255,200,255,168,255,215,255,167,255,217,255,155,255,201,255,165,255,202,255, +191,255,219,255,201,255,221,255,186,255,199,255,166,255,176,255,160,255,172,255,153,255,172,255,142,255,169,255,129,255,163,255, +121,255,158,255,128,255,164,255,128,255,164,255,118,255,159,255,116,255,164,255,100,255,154,255,91,255,148,255,110,255,165,255, +110,255,163,255,103,255,157,255,117,255,169,255,119,255,168,255,124,255,168,255,134,255,171,255,119,255,153,255,119,255,153,255, +133,255,169,255,125,255,160,255,113,255,146,255,115,255,148,255,125,255,163,255,135,255,175,255,131,255,170,255,130,255,164,255, +125,255,153,255,101,255,130,255,97,255,127,255,113,255,138,255,111,255,124,255,113,255,109,255,124,255,112,255,115,255,109,255, +95,255,104,255,80,255,102,255,79,255,114,255,108,255,147,255,126,255,164,255,110,255,149,255,111,255,149,255,132,255,161,255, +137,255,155,255,148,255,154,255,162,255,168,255,155,255,175,255,145,255,176,255,137,255,173,255,137,255,168,255,148,255,171,255, +146,255,171,255,129,255,168,255,120,255,179,255,121,255,192,255,125,255,185,255,126,255,161,255,136,255,148,255,156,255,157,255, +151,255,161,255,135,255,171,255,144,255,204,255,146,255,219,255,142,255,211,255,161,255,210,255,170,255,202,255,168,255,191,255, +178,255,202,255,173,255,210,255,147,255,201,255,137,255,199,255,135,255,197,255,131,255,184,255,133,255,170,255,133,255,158,255, +126,255,150,255,126,255,164,255,129,255,188,255,114,255,186,255,95,255,167,255,109,255,167,255,138,255,179,255,143,255,178,255, +126,255,170,255,101,255,167,255,91,255,177,255,107,255,195,255,124,255,201,255,125,255,184,255,110,255,159,255,84,255,136,255, +65,255,128,255,63,255,132,255,76,255,146,255,93,255,158,255,87,255,148,255,68,255,128,255,71,255,131,255,85,255,143,255, +91,255,144,255,92,255,138,255,87,255,135,255,88,255,143,255,93,255,154,255,90,255,150,255,97,255,149,255,117,255,156,255, +121,255,152,255,122,255,150,255,131,255,160,255,129,255,165,255,123,255,164,255,113,255,158,255,105,255,155,255,119,255,172,255, +123,255,181,255,110,255,174,255,105,255,169,255,101,255,163,255,108,255,167,255,118,255,171,255,115,255,167,255,118,255,176,255, +119,255,183,255,109,255,177,255,114,255,179,255,130,255,185,255,140,255,186,255,153,255,199,255,166,255,225,255,156,255,230,255, +144,255,223,255,154,255,225,255,166,255,220,255,175,255,211,255,181,255,210,255,178,255,209,255,172,255,208,255,169,255,209,255, +175,255,218,255,178,255,223,255,175,255,225,255,177,255,231,255,173,255,229,255,165,255,218,255,169,255,216,255,177,255,218,255, +172,255,208,255,170,255,201,255,176,255,204,255,174,255,200,255,171,255,198,255,167,255,198,255,163,255,201,255,162,255,215,255, +155,255,221,255,142,255,214,255,131,255,204,255,137,255,204,255,152,255,205,255,152,255,193,255,160,255,192,255,159,255,189,255, +146,255,180,255,150,255,187,255,146,255,186,255,150,255,191,255,163,255,202,255,153,255,194,255,151,255,196,255,150,255,200,255, +144,255,193,255,148,255,188,255,146,255,178,255,147,255,175,255,144,255,173,255,143,255,171,255,147,255,178,255,144,255,182,255, +140,255,186,255,129,255,180,255,125,255,179,255,135,255,191,255,132,255,185,255,134,255,181,255,141,255,181,255,140,255,177,255, +138,255,180,255,130,255,180,255,122,255,174,255,121,255,168,255,128,255,170,255,132,255,172,255,131,255,168,255,133,255,167,255, +127,255,158,255,123,255,157,255,126,255,163,255,124,255,159,255,126,255,153,255,125,255,147,255,123,255,151,255,126,255,165,255, +121,255,167,255,116,255,161,255,112,255,156,255,115,255,162,255,120,255,174,255,116,255,174,255,114,255,170,255,114,255,169,255, +111,255,169,255,112,255,171,255,118,255,181,255,116,255,191,255,99,255,185,255,103,255,171,255,133,255,164,255,147,255,183,255, +116,255,181,255,65,255,123,255,86,255,122,255,153,255,191,255,142,255,196,255,96,255,154,255,129,255,194,255,175,255,20,0, +85,255,236,255,237,254,149,255,64,255,217,255,187,255,36,0,125,255,170,255,8,255,58,255,42,255,166,255,78,255,247,255, +206,254,69,255,147,254,127,254,79,255,128,254,52,0,202,254,48,0,18,255,27,255,190,255,44,254,122,0,119,254,14,0, +79,255,179,254,205,255,106,254,103,0,39,0,215,0,206,1,98,255,192,0,31,253,192,254,185,253,28,255,216,0,253,255, +27,2,188,254,248,255,174,253,190,253,187,254,213,253,92,255,68,254,73,254,85,253,80,254,168,252,89,0,211,253,9,1, +189,255,89,255,51,0,194,254,87,255,98,0,113,255,8,1,143,0,244,255,53,0,191,255,194,254,56,0,164,255,63,255, +131,2,34,254,238,2,106,255,91,0,141,1,251,254,251,0,109,255,77,254,14,254,171,253,92,251,242,255,215,251,79,1, +35,255,236,255,32,0,207,254,27,254,129,255,108,253,50,255,232,254,139,253,51,255,77,254,48,254,186,0,25,255,211,255, +62,2,231,252,26,4,196,253,170,2,74,1,228,0,179,1,209,1,209,255,59,2,218,0,241,253,3,3,84,249,238,0, +249,251,53,254,52,3,60,0,194,4,54,1,2,255,64,252,211,250,70,249,231,251,221,253,147,253,6,3,238,254,12,2, +228,1,156,253,39,3,235,251,239,255,72,254,205,251,181,0,127,251,208,1,106,255,154,3,192,2,239,3,88,1,212,255, +165,254,251,251,130,255,251,253,125,0,255,0,91,253,6,254,121,251,68,250,191,255,251,252,82,3,254,255,30,0,37,253, +205,252,107,251,4,255,75,255,123,0,218,1,30,253,0,0,253,251,175,0,44,1,235,5,241,4,201,6,127,1,42,1, +92,253,33,255,78,255,225,1,84,3,8,1,0,3,173,253,243,254,7,253,177,252,238,253,214,254,82,254,211,0,103,253, +70,255,33,253,164,254,81,255,123,0,226,254,246,255,160,252,237,253,125,0,253,254,1,4,41,1,146,254,77,0,48,250, +132,253,62,255,26,253,249,5,62,0,126,4,77,2,129,252,68,0,85,250,101,254,61,255,124,255,181,254,158,255,151,251, +220,252,106,255,206,251,245,0,157,255,127,251,49,3,246,250,219,255,229,1,100,249,56,6,102,250,170,2,240,2,237,254, +31,6,87,3,151,255,182,5,148,252,111,254,213,2,75,252,100,5,163,1,148,0,187,255,65,0,28,251,251,3,171,254, +102,1,53,4,100,252,252,2,112,255,189,251,215,5,135,249,30,2,145,1,168,247,150,4,23,248,42,253,149,1,49,251, +178,2,45,1,254,254,43,6,211,2,136,8,100,7,224,6,177,6,91,0,109,7,159,241,77,10,16,220,138,6,105,218, +167,243,169,246,99,220,174,12,66,225,190,10,139,2,150,252,253,18,17,223,9,6,130,196,185,250,113,219,161,245,162,28, +248,235,255,69,66,239,123,44,132,10,238,238,143,36,75,215,207,30,229,246,158,249,221,13,57,217,235,249,222,218,165,226, +49,241,120,231,107,4,162,252,248,10,173,17,173,254,241,38,78,239,39,59,195,250,68,52,170,22,40,5,59,30,210,218, +135,12,148,222,95,250,172,247,93,249,131,2,240,0,207,2,112,0,157,2,46,250,0,243,178,236,106,200,174,205,122,175, +221,187,171,226,201,220,104,54,67,14,111,70,237,24,5,25,226,2,64,8,168,250,231,46,54,25,67,89,255,62,249,84, +249,62,99,34,243,43,156,235,135,43,0,206,90,41,219,201,54,19,45,220,254,0,238,238,160,243,103,224,97,215,20,194, +117,186,191,196,13,187,140,226,238,215,221,230,136,236,35,201,92,228,160,197,135,219,176,251,130,226,209,46,255,224,149,45, +217,217,199,27,78,236,97,20,72,20,124,1,227,53,21,237,11,65,167,252,108,50,60,34,220,19,72,36,113,243,26,247, +150,223,214,220,140,231,175,253,132,255,1,34,179,9,186,30,43,8,76,26,125,17,233,50,156,38,133,82,188,50,65,88, +189,37,145,56,106,16,117,12,26,15,125,235,222,22,39,210,28,16,213,207,222,5,137,235,18,10,249,246,97,21,125,221, +144,13,229,190,188,228,246,180,35,186,133,208,203,177,221,0,213,195,3,19,41,228,249,8,107,13,119,255,203,33,234,238, +65,18,199,229,161,242,175,242,195,211,234,239,14,197,37,216,233,206,4,204,81,222,185,200,62,228,173,200,64,223,103,206, +168,200,175,208,220,169,76,220,40,157,57,250,244,174,53,26,227,216,25,60,241,8,123,85,44,53,44,81,49,99,67,71, +255,127,133,76,255,127,24,79,141,93,3,72,247,53,13,57,8,45,42,45,182,66,175,55,20,78,194,65,252,59,172,55, +201,36,128,51,115,19,158,41,9,5,225,253,99,255,66,210,182,249,223,193,177,233,226,190,107,220,15,196,133,220,176,198, +150,226,130,186,88,225,105,171,13,215,204,164,69,210,24,177,124,211,154,211,144,205,162,242,206,201,31,4,143,211,69,22, +56,230,246,34,229,5,232,38,215,42,239,42,11,58,212,44,159,51,232,58,251,41,81,95,68,37,231,119,59,44,151,108, +233,54,77,66,163,55,15,1,89,58,82,210,16,59,110,218,18,22,232,239,188,210,37,230,208,170,161,212,133,184,138,211, +246,216,190,211,178,227,185,204,10,223,130,209,20,224,110,235,166,221,101,255,116,213,81,248,181,218,100,232,184,232,195,221, +130,246,70,213,193,16,24,218,100,41,146,234,211,28,178,234,42,242,146,223,85,211,36,238,138,214,23,22,211,237,10,51, +114,1,29,53,20,12,253,45,175,18,34,52,66,22,181,70,12,28,135,77,211,40,130,59,60,53,253,30,164,55,33,8, +214,48,150,1,250,40,207,18,58,31,139,37,222,12,164,26,28,0,41,3,130,10,54,1,18,28,229,13,202,29,173,17, +231,17,157,8,139,5,104,255,3,1,14,255,15,255,210,249,207,246,203,232,226,242,220,228,106,251,56,242,113,1,80,243, +233,251,227,227,60,238,217,212,235,220,38,200,95,211,196,189,3,210,17,185,36,201,193,185,118,185,80,195,131,177,227,214, +54,183,23,239,158,200,100,4,61,220,8,11,114,236,49,5,228,254,194,7,29,14,26,19,211,16,138,19,103,16,112,10, +178,18,130,5,145,18,179,5,133,18,12,10,19,18,60,19,96,13,243,27,155,11,25,32,79,15,89,32,169,17,129,31, +47,17,208,31,87,15,106,28,148,16,169,18,175,22,87,11,64,21,38,7,227,9,2,253,134,4,201,241,32,6,232,237, +80,6,125,235,208,8,158,229,224,12,129,224,12,11,248,224,196,1,153,231,247,241,170,237,177,227,209,239,208,224,186,245, +160,229,55,0,134,237,142,7,97,247,67,11,104,251,122,11,231,249,155,6,163,250,180,3,4,251,72,8,122,251,240,15, +242,3,177,21,105,16,246,22,164,22,144,20,102,20,27,18,217,12,124,14,71,5,254,10,10,0,158,15,237,251,239,23, +8,252,100,22,47,1,46,11,65,4,202,254,81,5,120,246,144,9,172,241,89,10,231,231,244,1,121,217,65,248,180,210, +244,241,225,211,203,235,206,214,64,230,143,220,178,226,69,225,209,222,30,225,130,219,11,227,7,221,78,234,44,227,102,243, +69,233,248,253,29,235,44,7,167,233,230,8,37,235,16,3,149,241,191,252,148,250,1,1,205,5,111,15,60,13,11,23, +214,9,5,21,213,1,92,21,243,254,29,22,64,5,183,21,72,20,69,28,210,34,242,38,170,38,204,43,243,32,108,37, +246,25,76,24,25,25,21,17,199,31,239,15,22,39,200,11,103,39,225,5,84,33,213,0,88,25,155,252,255,16,170,253, +176,9,174,2,194,4,174,2,145,1,206,252,248,255,123,248,6,254,50,247,144,250,33,246,217,247,73,246,248,242,48,248, +163,234,195,249,101,230,195,246,53,232,225,237,74,236,250,232,248,240,202,236,253,241,252,239,140,236,77,239,95,229,234,238, +169,227,9,240,149,233,202,241,137,242,207,243,215,249,34,250,19,254,87,6,183,254,185,17,109,253,182,23,206,255,149,25, +182,9,171,25,209,21,66,25,92,29,128,26,155,32,17,31,170,32,143,34,246,30,143,33,255,28,83,28,177,25,117,17, +98,22,158,4,75,18,21,251,155,10,232,245,137,1,92,244,70,247,82,239,95,237,112,229,222,233,150,224,221,234,152,225, +2,235,83,227,38,233,197,228,64,231,205,230,218,234,97,237,134,243,93,246,211,250,81,251,227,254,162,253,245,0,255,255, +72,4,226,4,143,9,12,14,91,11,159,22,83,8,229,26,102,4,181,26,28,4,216,23,144,10,47,23,67,19,204,24, +222,22,68,25,152,19,96,24,129,12,60,22,216,7,176,18,125,9,182,13,21,14,59,7,195,15,126,0,165,12,118,251, +165,6,22,249,228,255,1,248,182,250,2,246,237,247,236,240,230,245,160,232,143,244,239,225,147,243,210,223,68,241,252,223, +85,238,102,225,251,235,76,229,234,233,48,235,46,231,136,239,10,228,250,239,242,227,166,239,16,234,139,242,89,244,165,247, +167,252,84,251,178,254,50,253,58,252,130,255,130,249,163,2,84,248,152,5,228,248,145,8,158,251,15,12,206,255,90,14, +253,4,246,13,184,11,34,13,191,18,181,13,34,24,24,15,115,25,253,15,6,22,203,15,145,19,51,16,23,22,168,16, +60,26,142,14,66,28,92,11,92,26,6,10,141,19,75,10,165,8,219,8,48,254,156,4,116,249,198,255,173,249,165,250, +202,249,16,245,46,245,142,238,84,236,55,231,189,229,113,227,206,227,68,228,36,227,187,229,3,225,98,229,174,221,218,227, +2,222,196,229,166,227,137,235,117,233,133,238,255,237,35,238,169,243,176,240,213,249,60,248,206,253,191,255,243,254,199,2, +212,255,16,3,40,2,31,3,140,5,149,2,208,9,151,1,20,14,95,2,241,16,158,6,101,17,236,11,33,14,59,14, +126,8,95,14,234,4,169,15,155,4,96,16,218,5,16,13,13,8,96,7,177,10,184,3,10,13,178,4,217,11,61,7, +95,3,147,5,188,248,132,0,214,244,29,252,159,248,216,248,111,254,174,245,174,0,225,241,146,254,71,239,168,250,130,240, +115,246,2,244,187,243,199,246,1,245,34,248,125,250,123,249,12,1,65,252,129,5,226,255,186,7,201,3,64,8,98,8, +227,7,164,13,54,8,56,18,18,8,2,19,219,5,250,14,186,2,112,9,17,0,67,5,188,255,145,3,5,2,180,4, +146,2,32,6,231,255,69,6,184,253,215,6,7,253,42,7,185,252,232,4,59,254,153,0,168,3,32,253,0,11,98,252, +106,14,243,252,129,12,239,253,130,9,194,0,55,7,82,4,81,4,111,4,237,0,191,254,91,255,217,246,251,255,14,242, +228,255,198,240,37,254,118,241,103,251,2,243,90,247,70,244,7,243,101,245,235,239,230,245,80,239,116,246,89,242,211,249, +160,247,2,255,101,253,40,3,84,3,181,6,238,7,113,10,86,9,95,13,95,8,199,14,227,7,58,15,35,9,250,15, +29,11,209,16,123,13,106,16,252,15,58,15,68,17,148,14,216,17,41,15,80,18,112,16,184,16,30,16,223,12,94,13, +26,9,160,9,208,7,107,6,123,9,193,4,23,10,77,3,206,6,160,0,214,1,248,253,74,253,122,252,224,249,99,251, +157,247,67,248,187,246,81,243,30,248,144,240,48,250,8,241,218,250,181,242,120,250,43,244,79,250,75,245,241,250,159,246, +119,251,226,246,193,251,98,246,69,252,170,248,91,252,91,254,147,252,154,4,226,253,252,8,102,0,102,11,217,3,197,12, +144,6,145,12,120,7,116,10,15,7,23,8,109,6,168,7,138,6,69,8,62,6,211,6,167,4,6,4,141,3,1,3, +245,3,169,4,80,4,95,7,101,2,238,7,169,254,186,5,212,252,108,3,37,255,94,2,35,3,225,1,122,5,159,0, +176,6,214,254,18,8,82,254,4,8,117,254,155,5,64,253,102,2,148,250,165,255,204,247,178,253,91,246,161,252,103,246, +230,251,219,246,37,250,213,246,6,246,28,246,220,240,39,245,99,238,36,245,81,239,229,246,66,241,253,249,37,244,148,253, +76,248,101,0,149,251,3,1,157,253,32,0,43,0,200,255,145,3,172,0,251,5,55,2,47,6,7,4,4,6,66,6, +28,6,133,7,55,4,78,6,36,1,104,4,104,255,149,3,0,255,143,3,184,254,200,3,101,253,227,2,210,251,170,0, +56,251,8,254,1,251,148,251,22,252,73,251,196,254,222,252,165,0,83,253,206,0,67,252,14,0,31,250,206,255,245,246, +160,0,151,243,232,0,190,240,42,0,252,239,35,255,4,242,97,253,231,244,112,250,194,246,41,247,44,247,134,245,22,247, +172,245,211,247,132,245,211,249,150,245,171,253,246,247,130,3,164,251,24,9,234,254,52,12,112,1,148,12,30,3,218,10, +212,4,116,9,123,6,185,9,159,6,127,9,22,6,92,8,193,5,106,7,10,5,99,6,50,4,171,4,5,3,9,1, +113,1,188,252,255,255,158,250,119,254,35,250,229,252,242,249,220,251,88,250,184,252,34,252,47,255,246,253,80,0,197,252, +163,255,210,249,180,254,154,248,104,254,81,249,146,254,154,249,145,253,191,247,254,251,37,246,21,251,197,246,90,249,210,247, +68,246,85,248,121,243,163,248,98,243,150,249,51,246,29,251,42,249,36,252,65,251,78,254,50,253,21,3,109,255,28,9, +98,1,148,13,51,2,182,13,140,4,253,10,22,10,207,8,165,14,106,7,85,15,125,6,136,13,223,6,157,10,118,8, +88,7,136,9,37,5,116,8,49,5,252,4,238,6,128,0,62,8,112,253,23,7,15,252,189,3,53,251,140,0,193,251, +66,255,32,254,46,0,146,0,37,2,15,1,134,2,163,254,99,0,134,251,243,253,11,251,134,252,162,252,218,250,124,253, +192,248,190,252,182,247,252,250,152,247,184,248,130,246,197,246,245,243,163,246,254,241,55,249,138,242,68,253,148,245,174,0, +34,250,140,2,33,255,101,3,19,3,68,4,166,4,215,5,87,5,4,9,19,8,48,13,132,12,114,15,35,16,154,14, +209,17,227,11,174,17,253,8,84,16,77,7,2,15,126,7,65,14,43,9,71,13,4,10,232,11,81,8,187,9,156,4, +164,6,56,0,37,5,210,253,29,5,13,254,163,3,209,254,124,1,244,255,163,0,30,1,94,1,40,1,102,2,232,255, +136,1,114,253,219,254,105,251,189,251,85,251,196,248,114,252,155,246,214,252,46,246,114,251,105,247,99,249,184,247,150,247, +159,245,128,246,97,243,85,247,68,243,85,250,250,245,144,254,174,250,219,1,245,255,229,2,201,4,64,3,141,7,85,4, +242,7,65,6,141,7,148,8,147,7,219,10,154,8,192,12,83,10,238,12,218,11,221,10,82,12,31,8,62,11,195,6, +148,9,156,7,238,7,208,8,173,5,36,8,59,3,132,5,48,1,157,1,2,255,127,253,248,252,52,251,157,251,97,251, +142,250,21,252,15,250,171,251,200,249,2,250,229,248,43,248,27,248,81,247,214,247,20,247,131,248,102,247,231,250,74,248, +96,254,204,248,69,1,217,248,113,1,69,248,37,255,181,247,252,252,96,248,212,251,186,249,184,251,39,252,36,252,144,255, +142,252,101,2,233,253,222,4,249,255,5,7,48,2,87,8,46,4,93,8,185,4,216,6,207,4,208,5,43,6,231,6, +67,8,237,8,104,9,166,9,45,8,66,8,243,4,181,5,119,1,95,2,201,254,232,254,99,252,236,251,36,250,174,249, +11,249,132,249,9,248,40,250,61,246,126,249,76,245,73,248,10,246,24,247,251,247,169,246,165,249,38,247,186,249,9,247, +99,249,139,246,40,250,212,246,0,252,250,247,148,253,230,248,17,254,41,249,31,254,73,250,133,253,26,252,3,252,92,253, +177,250,103,254,125,250,236,255,246,251,151,2,210,254,56,5,69,2,243,5,166,5,178,5,184,7,80,5,25,8,184,4, +146,7,154,4,163,6,18,5,127,5,149,5,47,4,142,5,229,2,169,4,121,1,73,3,0,0,6,2,107,255,198,0, +192,254,117,254,219,252,125,251,40,251,177,249,41,250,208,248,150,249,246,247,4,250,58,247,242,250,119,246,113,251,20,246, +38,251,171,246,35,250,113,248,236,248,188,250,244,247,171,251,242,247,17,251,231,248,112,250,47,250,175,250,160,251,28,252, +205,252,14,254,233,253,189,255,64,255,165,0,108,0,182,0,24,2,94,1,233,3,14,3,227,4,251,4,113,6,106,7, +241,8,77,10,123,10,99,12,19,10,28,12,111,8,172,9,74,7,123,7,65,7,158,6,242,6,60,6,110,5,176,5, +75,3,50,5,62,1,188,4,137,255,8,3,141,254,211,255,107,254,204,252,202,254,86,251,181,254,17,251,83,253,163,250, +251,251,105,250,207,251,172,250,173,251,241,249,28,252,58,249,64,254,126,250,235,255,76,252,29,255,145,252,14,253,91,251, +166,251,128,250,180,251,170,251,211,252,0,254,6,254,25,0,245,254,194,1,136,255,95,2,242,255,237,1,48,1,250,1, +209,2,42,3,109,3,32,5,139,3,119,7,18,4,114,9,22,5,167,10,41,7,239,10,38,10,228,9,155,12,241,7, +216,13,146,6,15,14,178,6,235,12,93,7,125,10,154,7,53,8,217,7,254,6,17,8,52,6,245,6,20,5,240,3, +132,3,153,0,169,1,234,254,203,255,23,255,126,253,238,255,27,250,16,0,172,247,197,255,172,248,254,255,63,251,34,255, +109,252,13,252,151,252,65,249,7,253,235,248,188,252,197,249,227,250,234,249,236,249,236,249,207,251,34,251,173,254,220,252, +50,0,159,253,137,0,239,253,223,0,122,255,104,1,83,2,201,1,5,5,18,2,83,6,236,2,192,6,44,5,203,7, +34,8,235,8,28,10,144,8,183,10,240,6,157,10,105,5,222,9,134,4,221,7,73,3,29,5,224,1,29,3,217,1, +225,1,136,2,90,0,26,2,81,254,16,0,40,252,69,253,213,249,3,251,148,247,203,249,55,246,241,249,212,245,75,251, +153,246,200,252,206,248,115,253,108,251,177,252,224,253,19,251,63,0,228,249,186,1,137,249,101,2,167,250,98,3,33,254, +8,4,35,2,5,3,116,3,210,1,124,2,22,2,199,1,32,3,93,2,217,3,233,3,177,2,165,4,8,0,64,4, +12,255,118,4,75,0,234,4,226,1,162,4,104,2,168,3,209,1,193,2,201,1,215,2,94,2,129,2,41,2,154,0, +72,1,66,254,55,0,214,252,104,254,180,252,188,251,147,252,99,250,27,252,162,251,169,251,66,253,74,250,81,253,105,248, +187,251,72,247,1,249,37,247,90,246,221,247,21,246,121,249,58,249,178,251,25,253,209,252,37,255,117,252,124,255,48,252, +33,255,247,252,54,255,56,255,173,255,189,1,81,0,71,3,85,1,222,3,12,2,254,2,195,2,112,1,232,3,133,0, +221,4,88,0,53,5,28,1,91,4,64,2,86,2,225,2,91,0,10,3,44,0,150,3,55,2,231,4,2,4,188,5, +237,3,92,5,139,2,58,4,78,0,225,2,8,254,190,1,204,252,191,0,130,252,135,255,12,252,28,253,168,251,1,250, +199,252,81,248,126,254,212,247,155,254,106,247,124,252,180,246,178,249,83,246,175,248,42,248,231,249,188,251,157,252,34,255, +166,255,90,1,36,1,145,1,250,0,210,0,193,255,50,0,149,253,127,255,14,252,199,255,156,252,125,1,150,254,229,2, +163,0,130,2,12,2,196,0,253,2,154,255,199,3,81,0,163,3,37,2,121,2,18,4,21,2,60,6,6,3,244,7, +192,4,7,8,77,7,2,7,94,9,246,5,90,9,45,5,27,7,118,4,18,3,71,3,84,255,196,1,122,254,209,0, +13,0,251,255,144,1,206,253,166,1,241,250,114,0,88,249,201,254,196,249,212,252,140,251,127,250,14,253,86,249,173,253, +69,250,240,253,41,252,251,253,90,254,147,254,215,255,225,255,132,255,233,0,170,254,218,1,237,254,251,2,163,0,210,3, +219,2,166,3,255,3,117,2,95,4,61,2,1,5,234,3,49,5,152,5,62,4,155,5,198,2,6,4,228,1,150,2, +22,2,180,2,83,2,101,3,179,1,220,3,228,1,5,5,224,3,78,6,107,5,185,5,229,5,128,3,138,6,97,1, +241,6,112,0,87,6,95,0,243,4,67,0,199,3,170,0,80,3,88,1,158,2,191,0,69,1,66,255,152,255,252,253, +167,253,196,253,152,251,227,254,16,250,12,0,231,249,107,0,94,251,71,0,234,253,230,255,173,255,19,255,151,255,8,254, +91,255,14,254,170,255,187,254,252,255,227,254,252,0,13,255,66,2,213,255,183,2,146,1,60,2,59,3,6,1,226,2, +112,0,103,1,132,1,127,0,242,2,65,0,126,3,167,0,129,3,97,1,142,3,56,2,2,4,18,3,103,4,175,2, +174,3,189,0,205,2,91,255,84,3,208,255,26,4,18,1,158,3,245,1,83,1,184,1,250,252,88,0,117,248,218,254, +127,246,10,254,70,247,238,253,181,248,159,253,9,249,184,252,85,248,96,252,179,247,238,252,20,248,94,253,147,249,236,252, +220,251,215,251,182,254,97,251,70,1,57,252,230,2,0,254,27,4,55,0,201,4,207,1,85,4,176,1,127,3,163,0, +100,3,155,0,37,4,3,2,16,5,75,3,43,5,21,3,162,4,3,2,57,4,118,1,140,3,98,1,40,2,220,0, +178,0,7,0,100,0,33,0,102,1,59,1,223,1,216,1,154,0,92,1,220,254,165,0,28,254,141,0,18,254,190,0, +39,254,1,1,112,254,194,1,80,254,211,1,87,253,237,255,204,252,15,253,241,253,53,251,220,255,79,251,96,0,76,252, +29,255,75,253,81,253,97,254,175,251,209,254,171,250,104,254,90,250,245,253,83,250,240,253,220,250,193,254,74,252,22,0, +218,253,191,0,132,254,46,0,111,254,225,254,220,254,21,254,32,0,134,254,98,1,162,255,120,2,185,0,10,3,33,1, +49,2,90,0,66,1,162,255,32,2,45,0,101,3,216,0,82,3,171,0,187,2,143,0,240,2,167,1,217,3,121,3, +74,4,118,4,13,4,96,4,224,3,200,3,74,3,164,2,248,1,66,1,31,1,22,0,8,1,92,255,181,0,237,254, +52,0,169,254,212,255,224,254,229,254,236,254,163,253,152,254,150,252,168,254,138,251,206,254,73,251,63,255,50,252,104,0, +45,254,14,2,57,1,219,3,108,3,85,4,164,3,48,3,27,3,243,1,26,3,140,1,132,4,36,2,156,6,194,2, +187,7,190,2,160,7,160,2,44,6,71,2,217,2,105,1,17,255,136,0,38,253,68,0,165,252,49,0,55,252,222,255, +23,252,10,0,30,252,212,0,221,251,25,1,103,251,243,255,193,251,89,254,89,254,32,254,113,1,229,254,44,2,94,255, +44,1,82,255,129,0,5,255,34,1,10,255,178,2,15,255,216,3,158,254,192,3,35,254,179,2,251,253,218,1,16,255, +20,2,86,1,239,2,6,3,49,3,68,3,152,2,185,2,186,2,245,2,229,3,71,4,31,4,231,4,33,3,129,4, +117,2,112,4,192,2,16,5,49,3,79,5,175,2,43,4,200,1,48,2,185,1,119,0,46,2,132,255,76,2,159,255, +168,1,123,0,215,255,11,1,176,253,165,0,237,252,160,255,216,253,218,254,121,255,211,254,0,0,223,254,93,254,125,254, +137,252,108,254,166,252,53,255,33,254,82,0,48,255,57,0,22,255,147,254,197,254,20,253,69,255,216,252,73,0,216,253, +143,0,226,254,192,255,2,255,226,254,64,255,236,254,2,0,92,0,211,0,221,1,37,1,231,1,179,0,94,1,182,0, +198,0,61,1,253,255,64,1,222,255,253,0,164,0,217,0,226,1,11,1,110,2,47,1,72,1,145,0,176,255,143,255, +17,255,124,254,95,255,213,253,76,0,50,254,231,0,6,255,9,0,171,255,18,254,7,0,81,252,42,0,147,251,20,0, +55,252,184,255,249,253,195,255,246,255,206,0,173,1,40,2,145,2,145,2,137,2,236,1,174,2,78,1,66,3,26,1, +15,4,26,1,237,4,219,0,250,4,11,0,95,4,138,255,144,3,158,255,198,1,160,255,246,254,96,255,194,252,10,255, +223,252,70,255,140,254,149,255,12,255,136,254,73,253,207,252,42,251,165,252,62,250,118,254,17,250,91,0,254,250,9,1, +46,253,62,0,192,254,65,254,230,254,138,252,150,254,80,252,200,254,9,254,128,255,157,0,238,255,159,1,41,0,211,0, +217,0,159,255,117,1,228,254,31,1,0,255,117,0,143,255,114,0,38,0,40,1,254,0,170,2,226,1,27,4,230,1, +242,3,188,0,189,2,78,255,235,1,195,254,93,1,41,255,100,0,132,255,36,255,180,255,113,254,34,0,156,254,55,0, +194,254,175,255,75,254,56,255,241,253,117,255,229,253,86,0,141,253,219,0,138,253,177,0,90,254,55,0,33,255,112,255, +139,255,5,255,132,255,130,255,46,255,123,0,36,255,41,1,3,255,189,0,243,254,189,255,193,255,35,255,214,0,15,255, +173,1,172,255,135,2,178,0,86,3,130,1,224,3,193,1,207,3,95,1,221,2,222,0,161,1,155,0,203,0,140,0, +2,0,129,0,149,255,159,0,46,0,26,1,244,0,105,1,61,1,68,1,44,1,219,0,229,0,48,0,62,1,185,255, +145,2,255,255,185,3,102,0,43,4,100,0,237,3,36,0,167,2,7,0,250,0,232,0,66,255,65,2,144,253,195,2, +92,253,217,2,66,255,250,2,30,2,12,3,250,3,240,2,112,3,161,2,114,1,219,2,249,255,147,3,32,0,243,3, +132,1,128,3,247,2,84,2,144,3,255,0,215,2,248,255,69,1,128,255,191,255,62,255,252,254,181,254,24,255,226,253, +76,255,242,252,77,255,133,252,69,255,234,252,83,255,242,253,106,255,16,255,29,255,138,255,13,255,206,255,5,0,119,0, +30,1,235,0,92,1,131,0,28,1,187,255,6,1,155,255,31,1,242,255,34,1,221,255,31,1,123,255,57,1,66,255, +237,0,66,255,236,255,174,255,35,255,18,1,114,255,108,3,135,0,73,5,207,1,85,5,248,2,47,4,102,3,19,3, +111,2,41,2,52,0,16,1,117,254,89,0,185,254,117,0,209,255,22,0,78,0,181,254,79,0,150,253,15,0,201,253, +149,255,38,255,239,254,69,0,147,254,187,0,24,255,40,1,39,0,8,1,71,1,59,0,113,2,186,255,45,3,211,255, +177,2,28,0,130,1,87,0,191,0,130,0,48,0,131,0,150,255,228,255,156,255,124,254,56,0,76,253,185,0,82,253, +253,0,176,254,236,0,151,0,77,0,126,1,119,255,245,0,178,254,180,255,52,254,116,254,190,253,7,254,149,252,220,254, +13,251,77,0,225,249,244,0,71,249,9,0,20,250,124,254,135,252,177,253,213,254,160,253,121,255,94,253,225,254,198,252, +84,254,88,252,51,255,137,252,106,1,90,253,47,3,35,254,195,3,147,254,111,3,5,255,102,2,136,255,135,1,236,255, +5,1,39,0,136,0,132,0,236,0,181,1,165,1,224,2,58,1,154,2,111,0,169,1,48,0,84,1,172,0,226,1, +94,1,100,2,76,1,6,2,43,1,166,1,81,1,111,1,200,0,240,0,83,255,85,0,119,253,163,255,45,252,11,255, +253,251,85,254,200,252,141,253,175,253,236,252,163,253,1,252,241,252,47,251,117,252,41,251,18,253,66,252,155,254,173,253, +233,255,42,254,195,0,48,254,6,1,89,254,225,0,240,254,204,0,9,0,130,0,13,1,76,0,4,2,127,0,71,2, +244,0,28,1,138,1,161,255,248,1,46,255,31,2,53,0,212,1,198,1,82,1,173,2,153,1,63,3,221,2,197,3, +247,3,142,3,126,3,105,2,154,1,44,1,13,0,204,0,166,255,27,1,206,255,30,1,246,255,137,0,169,255,138,255, +207,254,82,254,2,254,135,253,202,253,189,253,70,254,158,254,101,255,147,255,137,0,65,0,172,0,78,0,202,255,241,255, +246,254,221,255,72,255,140,0,179,0,171,1,3,2,72,2,137,2,52,2,62,2,170,1,165,1,245,0,211,1,147,0, +211,2,131,0,220,3,178,0,43,4,166,0,195,3,69,0,161,3,121,0,178,3,21,1,46,3,129,1,65,2,218,1, +134,1,75,2,253,0,193,2,110,0,208,2,55,0,179,2,54,0,195,2,249,255,185,2,125,255,75,2,52,255,210,1, +19,0,40,2,133,1,164,2,74,2,40,2,181,2,32,1,246,2,45,0,235,2,192,255,191,2,220,255,162,2,100,0, +106,2,69,1,133,1,146,1,98,0,13,1,186,255,88,0,92,255,234,255,238,254,255,255,70,254,56,0,220,253,118,0, +38,254,201,0,228,254,223,0,218,255,149,0,167,0,237,255,11,1,127,255,15,1,181,255,208,0,3,0,255,0,111,0, +150,1,228,0,208,1,9,1,135,1,255,0,222,0,175,0,49,0,130,0,140,255,177,0,59,255,232,0,246,255,60,1, +32,1,51,1,232,1,138,0,69,2,194,255,39,2,48,255,141,1,28,255,156,0,112,255,66,0,29,0,27,1,238,0, +27,2,42,1,27,2,178,0,65,1,76,0,94,0,189,0,165,255,180,1,83,255,112,2,191,255,122,2,120,0,139,1, +52,1,61,0,178,1,98,255,194,1,109,255,136,1,55,0,227,0,215,0,212,255,193,0,193,254,14,0,96,254,116,255, +243,254,120,255,127,255,148,255,108,255,134,255,79,255,166,255,96,255,218,255,68,255,203,255,240,254,137,255,194,254,122,255, +18,255,204,255,166,255,15,0,50,0,18,0,235,0,66,0,114,1,141,0,4,1,123,0,208,255,6,0,192,254,180,255, +84,254,179,255,117,254,159,255,228,254,140,255,15,255,132,255,215,254,97,255,90,254,218,254,210,253,226,253,37,254,135,253, +251,254,237,253,136,255,73,254,238,255,90,254,242,255,215,253,183,255,10,253,125,255,119,252,26,255,129,252,201,254,125,253, +138,254,204,254,81,254,143,255,130,254,167,255,240,254,91,255,201,254,212,254,107,254,162,254,129,254,255,254,195,254,66,255, +62,255,56,255,233,255,14,255,183,0,77,255,102,1,15,0,230,0,92,0,167,255,57,0,30,255,42,0,130,255,54,0, +238,255,65,0,182,255,33,0,45,255,20,0,194,254,7,0,187,254,192,255,90,255,128,255,111,0,83,255,57,1,7,255, +202,0,134,254,103,255,23,254,25,254,238,253,98,253,16,254,130,253,197,254,235,253,170,255,209,253,216,255,170,253,94,255, +243,253,225,254,129,254,173,254,35,255,160,254,165,255,142,254,48,0,243,254,194,0,209,255,229,0,57,0,191,0,7,0, +220,0,244,255,49,1,91,0,55,1,211,0,9,1,36,1,16,1,124,1,49,1,183,1,85,1,147,1,69,1,255,0, +31,1,187,0,10,1,21,1,149,0,41,1,34,0,206,0,95,0,98,0,18,1,15,0,44,1,138,255,90,0,171,254, +164,255,69,254,96,255,127,254,65,255,214,254,25,255,8,255,235,254,43,255,26,255,167,255,107,255,52,0,111,255,89,0, +89,255,35,0,186,255,17,0,153,0,107,0,30,1,184,0,16,1,191,0,246,0,183,0,251,0,170,0,58,1,163,0, +167,1,181,0,215,1,159,0,227,1,129,0,184,1,144,0,250,0,145,0,72,0,186,0,223,255,226,0,173,255,219,0, +224,255,216,0,44,0,157,0,179,0,115,0,69,1,103,0,162,1,85,0,204,1,59,0,131,1,237,255,35,1,253,255, +134,0,74,0,188,255,121,0,145,255,189,0,207,255,216,0,252,255,197,0,180,255,105,0,36,255,237,255,216,254,176,255, +217,254,124,255,34,255,40,255,105,255,143,254,134,255,30,254,128,255,90,254,99,255,30,255,96,255,4,0,64,255,123,0, +31,255,145,0,105,255,157,0,255,255,152,0,143,0,150,0,249,0,192,0,48,1,245,0,67,1,251,0,67,1,216,0, +246,0,131,0,166,0,16,0,234,0,183,255,128,1,138,255,214,1,179,255,138,1,41,0,193,0,203,0,51,0,152,1, +46,0,63,2,84,0,62,2,176,0,189,1,47,1,66,1,63,1,248,0,15,1,18,1,11,1,86,1,56,1,93,1, +55,1,235,0,170,0,6,0,245,255,97,255,62,255,68,255,141,254,145,255,27,254,244,255,239,253,223,255,60,254,119,255, +136,254,228,254,30,254,48,254,67,253,180,253,180,252,184,253,180,252,18,254,247,252,26,254,108,253,165,253,52,254,52,253, +42,255,87,253,152,255,239,253,1,255,117,254,40,254,229,254,29,254,80,255,246,254,133,255,225,255,67,255,101,0,230,254, +101,0,239,254,254,255,102,255,203,255,71,0,178,255,246,0,123,255,4,1,82,255,151,0,112,255,32,0,40,0,77,0, +16,1,221,0,127,1,51,1,41,1,17,1,136,0,197,0,112,0,207,0,170,0,217,0,248,0,202,0,74,1,220,0, +22,1,183,0,124,0,77,0,23,0,22,0,208,255,35,0,101,255,254,255,202,254,86,255,14,254,114,254,251,253,89,254, +135,254,10,255,226,254,136,255,63,255,201,255,153,255,209,255,234,255,188,255,94,0,186,255,165,0,172,255,191,0,206,255, +229,0,19,0,61,1,80,0,137,1,105,0,82,1,97,0,207,0,154,0,118,0,42,1,103,0,206,1,71,0,27,2, +14,0,8,2,27,0,195,1,102,0,63,1,129,0,117,0,49,0,166,255,231,255,76,255,223,255,99,255,217,255,167,255, +190,255,252,255,200,255,73,0,220,255,66,0,149,255,176,255,107,255,76,255,189,255,115,255,50,0,176,255,93,0,187,255, +5,0,156,255,203,255,208,255,13,0,48,0,130,0,81,0,7,1,97,0,142,1,135,0,12,2,202,0,244,1,215,0, +58,1,192,0,156,0,234,0,89,0,19,1,95,0,9,1,128,0,229,0,161,0,199,0,237,0,175,0,96,1,165,0, +147,1,182,0,103,1,247,0,21,1,99,1,211,0,176,1,250,0,213,1,15,1,109,1,168,0,96,0,111,0,170,255, +109,0,200,255,89,0,118,0,22,0,6,1,121,255,193,0,24,255,255,255,87,255,102,255,175,255,32,255,226,255,81,255, +15,0,233,255,23,0,100,0,3,0,109,0,218,255,242,255,200,255,67,255,246,255,218,254,20,0,192,254,12,0,0,255, +193,255,75,255,74,255,98,255,53,255,162,255,133,255,5,0,7,0,86,0,90,0,91,0,68,0,52,0,42,0,85,0, +84,0,162,0,224,0,233,0,156,1,22,1,8,2,15,1,191,1,189,0,221,0,59,0,252,255,254,255,156,255,46,0, +229,255,138,0,127,0,168,0,179,0,76,0,47,0,180,255,109,255,97,255,26,255,143,255,82,255,24,0,175,255,157,0, +1,0,206,0,84,0,163,0,85,0,25,0,49,0,166,255,45,0,181,255,212,255,196,255,119,255,212,255,54,255,243,255, +236,254,211,255,76,255,175,255,8,0,115,255,110,0,66,255,166,0,137,255,132,0,241,255,7,0,15,0,19,0,31,0, +218,0,39,0,179,1,207,255,84,2,117,255,34,2,123,255,23,1,15,0,39,0,18,1,137,255,150,1,122,255,115,1, +26,0,13,1,172,0,128,0,90,0,231,255,56,255,134,255,77,254,201,255,51,254,66,0,246,254,99,0,210,255,253,255, +221,255,29,255,104,255,116,254,176,254,35,254,15,254,66,254,241,253,217,254,231,253,31,255,221,253,223,254,245,253,100,254, +57,254,31,254,188,254,109,254,47,255,17,255,89,255,190,255,47,255,29,0,23,255,17,0,172,255,245,255,164,0,238,255, +96,1,21,0,148,1,116,0,83,1,221,0,6,1,34,1,221,0,4,1,193,0,121,0,166,0,211,255,129,0,114,255, +31,0,122,255,132,255,206,255,50,255,77,0,92,255,150,0,214,255,100,0,85,0,230,255,89,0,79,255,3,0,23,255, +166,255,127,255,78,255,62,0,62,255,6,1,123,255,78,1,4,0,9,1,169,0,159,0,212,0,64,0,97,0,1,0, +173,255,207,255,108,255,227,255,232,255,83,0,138,0,154,0,202,0,116,0,164,0,49,0,119,0,76,0,88,0,140,0, +58,0,112,0,129,0,67,0,46,1,90,0,179,1,131,0,194,1,149,0,97,1,175,0,219,0,15,1,79,0,111,1, +234,255,69,1,42,0,208,0,220,0,104,0,117,1,62,0,135,1,87,0,210,0,109,0,65,0,233,0,47,0,149,1, +46,0,143,1,87,0,244,0,109,0,65,0,115,0,54,0,98,0,207,0,230,255,47,1,122,255,77,1,106,255,41,1, +150,255,168,0,183,255,204,255,172,255,248,254,219,255,237,254,70,0,119,255,198,0,0,0,18,1,47,0,243,0,253,255, +167,0,186,255,63,0,106,255,2,0,97,255,1,0,213,255,1,0,113,0,53,0,11,1,117,0,81,1,103,0,18,1, +48,0,139,0,66,0,28,0,227,0,28,0,130,1,72,0,124,1,60,0,254,0,251,255,153,0,197,255,140,0,222,255, +120,0,33,0,42,0,78,0,199,255,78,0,144,255,57,0,174,255,78,0,166,255,67,0,77,255,246,255,21,255,204,255, +12,255,226,255,55,255,33,0,137,255,60,0,228,255,19,0,79,0,222,255,159,0,166,255,173,0,118,255,138,0,115,255, +104,0,218,255,55,0,110,0,226,255,147,0,180,255,64,0,200,255,212,255,14,0,199,255,37,0,18,0,198,255,101,0, +140,255,218,0,206,255,61,1,61,0,31,1,196,0,177,0,81,1,118,0,142,1,144,0,131,1,217,0,123,1,38,1, +127,1,63,1,134,1,23,1,111,1,188,0,85,1,132,0,81,1,163,0,35,1,212,0,173,0,243,0,12,0,0,1, +123,255,244,0,255,254,161,0,167,254,4,0,200,254,125,255,66,255,34,255,117,255,198,254,28,255,108,254,137,254,57,254, +22,254,25,254,9,254,0,254,134,254,39,254,24,255,114,254,122,255,197,254,194,255,46,255,238,255,176,255,246,255,37,0, +215,255,71,0,190,255,34,0,232,255,1,0,93,0,30,0,170,0,66,0,149,0,56,0,114,0,59,0,93,0,61,0, +98,0,25,0,58,0,155,255,190,255,238,254,112,255,205,254,87,255,60,255,49,255,203,255,253,254,59,0,187,254,120,0, +133,254,147,0,115,254,144,0,139,254,127,0,210,254,100,0,61,255,22,0,164,255,118,255,234,255,212,254,20,0,185,254, +18,0,62,255,213,255,238,255,133,255,77,0,122,255,71,0,218,255,0,0,137,0,194,255,37,1,215,255,93,1,93,0, +72,1,41,1,16,1,169,1,242,0,160,1,249,0,41,1,2,1,127,0,248,0,239,255,180,0,157,255,89,0,194,255, +233,255,32,0,124,255,78,0,99,255,75,0,138,255,27,0,214,255,241,255,14,0,213,255,10,0,189,255,233,255,183,255, +189,255,173,255,208,255,187,255,28,0,221,255,58,0,238,255,27,0,4,0,19,0,65,0,66,0,128,0,142,0,141,0, +238,0,146,0,61,1,186,0,70,1,247,0,211,0,2,1,39,0,215,0,245,255,195,0,79,0,181,0,199,0,138,0, +249,0,96,0,213,0,93,0,155,0,127,0,119,0,161,0,124,0,178,0,200,0,193,0,47,1,191,0,89,1,120,0, +118,1,54,0,136,1,38,0,86,1,43,0,7,1,109,0,120,0,198,0,237,255,37,1,202,255,102,1,231,255,46,1, +71,0,176,0,199,0,59,0,1,1,13,0,217,0,58,0,172,0,178,0,142,0,12,1,132,0,245,0,208,0,181,0, +14,1,114,0,8,1,132,0,194,0,11,1,28,0,131,1,168,255,185,1,224,255,160,1,152,0,88,1,49,1,246,0, +85,1,140,0,78,1,103,0,75,1,127,0,76,1,159,0,50,1,136,0,9,1,77,0,254,0,51,0,18,1,83,0, +9,1,126,0,196,0,114,0,138,0,112,0,109,0,179,0,135,0,61,1,166,0,152,1,118,0,66,1,162,0,219,0, +104,1,212,0,37,2,247,0,76,2,19,1,213,1,33,1,83,1,63,1,46,1,48,1,104,1,247,0,163,1,213,0, +153,1,240,0,92,1,60,1,11,1,141,1,217,0,227,1,149,0,220,1,49,0,78,1,30,0,193,0,140,0,156,0, +23,1,177,0,51,1,136,0,6,1,80,0,207,0,90,0,118,0,122,0,50,0,144,0,76,0,155,0,160,0,149,0, +202,0,90,0,163,0,247,255,92,0,194,255,56,0,250,255,79,0,108,0,85,0,148,0,55,0,91,0,108,0,67,0, +233,0,116,0,24,1,133,0,243,0,115,0,160,0,84,0,48,0,23,0,225,255,218,255,182,255,175,255,199,255,200,255, +234,255,240,255,230,255,226,255,211,255,215,255,160,255,219,255,91,255,241,255,10,255,235,255,239,254,217,255,97,255,253,255, +24,0,33,0,171,0,33,0,205,0,228,255,192,0,185,255,216,0,225,255,221,0,16,0,151,0,27,0,15,0,4,0, +196,255,23,0,200,255,50,0,197,255,11,0,236,255,253,255,83,0,66,0,172,0,159,0,108,0,145,0,187,255,35,0, +121,255,219,255,236,255,209,255,134,0,202,255,167,0,151,255,92,0,100,255,241,255,75,255,162,255,101,255,90,255,172,255, +6,255,231,255,248,254,30,0,30,255,45,0,89,255,32,0,147,255,13,0,157,255,239,255,144,255,252,255,106,255,20,0, +56,255,251,255,34,255,134,255,78,255,236,254,148,255,117,254,166,255,35,254,170,255,27,254,147,255,64,254,147,255,169,254, +181,255,66,255,154,255,148,255,140,255,211,255,186,255,27,0,43,0,96,0,180,0,133,0,190,0,76,0,101,0,13,0, +29,0,6,0,12,0,27,0,48,0,44,0,103,0,25,0,137,0,225,255,138,0,170,255,114,0,184,255,50,0,10,0, +226,255,111,0,210,255,213,0,243,255,38,1,233,255,43,1,207,255,248,0,231,255,191,0,49,0,144,0,153,0,108,0, +222,0,51,0,223,0,247,255,166,0,214,255,60,0,199,255,191,255,172,255,112,255,127,255,140,255,125,255,210,255,167,255, +14,0,234,255,1,0,14,0,104,255,197,255,234,254,119,255,249,254,91,255,86,255,91,255,163,255,112,255,151,255,122,255, +81,255,126,255,26,255,120,255,10,255,120,255,252,254,109,255,239,254,77,255,8,255,61,255,63,255,78,255,147,255,137,255, +221,255,182,255,16,0,207,255,34,0,235,255,2,0,241,255,231,255,243,255,250,255,17,0,67,0,104,0,123,0,176,0, +131,0,175,0,146,0,162,0,173,0,176,0,191,0,208,0,191,0,213,0,200,0,210,0,222,0,221,0,229,0,219,0, +206,0,193,0,157,0,158,0,139,0,172,0,134,0,187,0,140,0,165,0,165,0,132,0,148,0,71,0,122,0,16,0, +121,0,226,255,146,0,207,255,143,0,220,255,46,0,233,255,218,255,34,0,219,255,127,0,239,255,181,0,235,255,152,0, +236,255,69,0,244,255,5,0,248,255,18,0,8,0,109,0,19,0,164,0,69,0,144,0,169,0,90,0,220,0,10,0, +179,0,189,255,106,0,171,255,79,0,8,0,83,0,149,0,78,0,232,0,57,0,236,0,19,0,203,0,7,0,190,0, +38,0,180,0,71,0,136,0,66,0,65,0,37,0,11,0,4,0,243,255,246,255,234,255,1,0,242,255,228,255,218,255, +148,255,144,255,60,255,41,255,12,255,218,254,66,255,234,254,169,255,51,255,218,255,108,255,170,255,110,255,83,255,77,255, +46,255,43,255,75,255,6,255,132,255,234,254,164,255,227,254,176,255,19,255,160,255,94,255,124,255,146,255,144,255,185,255, +234,255,219,255,85,0,6,0,95,0,24,0,234,255,252,255,120,255,239,255,116,255,23,0,193,255,86,0,13,0,110,0, +42,0,88,0,3,0,38,0,209,255,4,0,193,255,245,255,204,255,214,255,255,255,199,255,36,0,192,255,22,0,175,255, +227,255,152,255,148,255,127,255,83,255,126,255,58,255,121,255,87,255,83,255,147,255,31,255,184,255,12,255,183,255,55,255, +134,255,122,255,14,255,150,255,160,254,139,255,183,254,131,255,34,255,101,255,131,255,59,255,166,255,46,255,139,255,58,255, +133,255,102,255,143,255,140,255,127,255,156,255,119,255,172,255,157,255,186,255,218,255,188,255,251,255,158,255,11,0,130,255, +30,0,129,255,50,0,160,255,36,0,198,255,239,255,203,255,207,255,185,255,169,255,127,255,114,255,76,255,71,255,82,255, +22,255,101,255,235,254,102,255,222,254,93,255,19,255,115,255,131,255,158,255,216,255,167,255,227,255,132,255,212,255,82,255, +215,255,40,255,218,255,5,255,2,0,41,255,63,0,137,255,73,0,200,255,53,0,226,255,27,0,242,255,16,0,19,0, +249,255,32,0,199,255,15,0,187,255,38,0,208,255,86,0,188,255,85,0,120,255,20,0,87,255,208,255,132,255,164,255, +193,255,109,255,197,255,41,255,139,255,252,254,92,255,27,255,82,255,110,255,97,255,193,255,103,255,223,255,113,255,192,255, +170,255,157,255,205,255,118,255,190,255,101,255,138,255,114,255,74,255,134,255,85,255,187,255,141,255,209,255,192,255,157,255, +232,255,62,255,228,255,218,254,220,255,193,254,235,255,3,255,224,255,80,255,165,255,111,255,106,255,114,255,97,255,119,255, +133,255,130,255,173,255,149,255,189,255,183,255,190,255,229,255,184,255,13,0,174,255,35,0,209,255,55,0,73,0,95,0, +212,0,115,0,62,1,119,0,93,1,116,0,9,1,72,0,171,0,56,0,128,0,105,0,112,0,178,0,110,0,226,0, +64,0,180,0,4,0,83,0,235,255,5,0,251,255,229,255,37,0,253,255,36,0,22,0,245,255,24,0,214,255,7,0, +214,255,233,255,217,255,196,255,208,255,159,255,188,255,125,255,183,255,101,255,207,255,112,255,204,255,128,255,203,255,160,255, +218,255,207,255,196,255,215,255,195,255,208,255,233,255,186,255,42,0,177,255,103,0,214,255,82,0,247,255,35,0,23,0, +42,0,67,0,77,0,94,0,73,0,64,0,26,0,248,255,21,0,227,255,59,0,11,0,34,0,19,0,198,255,214,255, +149,255,169,255,178,255,183,255,219,255,216,255,205,255,217,255,181,255,204,255,215,255,234,255,238,255,3,0,237,255,12,0, +225,255,15,0,175,255,242,255,174,255,234,255,241,255,242,255,49,0,224,255,68,0,185,255,29,0,145,255,239,255,150,255, +208,255,188,255,179,255,225,255,161,255,242,255,168,255,223,255,178,255,171,255,173,255,112,255,180,255,101,255,181,255,121,255, +159,255,138,255,144,255,150,255,124,255,127,255,121,255,82,255,166,255,62,255,224,255,84,255,12,0,155,255,29,0,250,255, +8,0,65,0,237,255,104,0,232,255,111,0,245,255,84,0,11,0,52,0,15,0,28,0,15,0,27,0,27,0,35,0, +27,0,17,0,8,0,235,255,243,255,198,255,246,255,180,255,255,255,172,255,5,0,177,255,253,255,184,255,217,255,160,255, +198,255,138,255,202,255,139,255,197,255,139,255,200,255,133,255,201,255,123,255,175,255,115,255,140,255,110,255,126,255,104,255, +137,255,96,255,166,255,107,255,186,255,138,255,182,255,172,255,156,255,197,255,126,255,202,255,148,255,208,255,202,255,205,255, +243,255,194,255,15,0,213,255,10,0,248,255,5,0,38,0,253,255,63,0,226,255,37,0,228,255,7,0,2,0,244,255, +24,0,235,255,25,0,237,255,252,255,241,255,235,255,252,255,2,0,7,0,32,0,253,255,50,0,227,255,73,0,223,255, +85,0,240,255,58,0,4,0,0,0,20,0,199,255,27,0,184,255,27,0,200,255,3,0,217,255,206,255,227,255,155,255, +249,255,140,255,14,0,156,255,18,0,171,255,39,0,195,255,63,0,216,255,79,0,230,255,97,0,250,255,91,0,5,0, +86,0,32,0,90,0,76,0,86,0,118,0,89,0,164,0,75,0,180,0,51,0,158,0,69,0,135,0,117,0,128,0, +138,0,130,0,104,0,128,0,42,0,120,0,5,0,115,0,6,0,107,0,39,0,93,0,75,0,70,0,63,0,29,0, +34,0,252,255,26,0,243,255,36,0,241,255,52,0,242,255,46,0,241,255,26,0,239,255,15,0,239,255,15,0,230,255, +26,0,220,255,30,0,217,255,32,0,237,255,41,0,18,0,38,0,35,0,36,0,24,0,64,0,9,0,104,0,1,0, +121,0,4,0,110,0,32,0,97,0,90,0,108,0,158,0,114,0,195,0,99,0,185,0,121,0,173,0,182,0,172,0, +223,0,162,0,222,0,148,0,179,0,136,0,127,0,129,0,91,0,118,0,76,0,92,0,88,0,61,0,102,0,26,0, +71,0,243,255,249,255,212,255,180,255,220,255,160,255,8,0,162,255,39,0,153,255,22,0,142,255,223,255,149,255,163,255, +182,255,130,255,230,255,141,255,254,255,167,255,249,255,186,255,238,255,194,255,241,255,199,255,10,0,215,255,24,0,226,255, +18,0,238,255,21,0,20,0,32,0,69,0,50,0,111,0,71,0,129,0,74,0,116,0,87,0,105,0,129,0,115,0, +167,0,119,0,195,0,114,0,218,0,110,0,221,0,109,0,211,0,115,0,191,0,126,0,164,0,134,0,140,0,133,0, +111,0,118,0,67,0,97,0,18,0,87,0,238,255,94,0,211,255,95,0,187,255,69,0,187,255,27,0,206,255,233,255, +238,255,187,255,13,0,152,255,10,0,114,255,246,255,86,255,238,255,91,255,241,255,129,255,245,255,190,255,228,255,241,255, +199,255,12,0,193,255,29,0,213,255,42,0,1,0,64,0,41,0,89,0,58,0,100,0,86,0,110,0,120,0,105,0, +128,0,67,0,114,0,18,0,82,0,230,255,71,0,232,255,99,0,23,0,105,0,54,0,80,0,50,0,61,0,45,0, +53,0,54,0,32,0,59,0,239,255,36,0,196,255,5,0,184,255,248,255,185,255,244,255,181,255,232,255,180,255,211,255, +208,255,202,255,254,255,202,255,12,0,188,255,250,255,170,255,239,255,173,255,243,255,188,255,253,255,194,255,3,0,185,255, +247,255,168,255,219,255,160,255,193,255,172,255,171,255,192,255,135,255,190,255,109,255,173,255,113,255,154,255,124,255,134,255, +154,255,137,255,204,255,172,255,238,255,207,255,253,255,232,255,255,255,246,255,7,0,8,0,43,0,47,0,81,0,82,0, +114,0,108,0,139,0,129,0,132,0,136,0,118,0,145,0,102,0,148,0,80,0,130,0,69,0,101,0,70,0,65,0, +87,0,48,0,108,0,57,0,102,0,72,0,78,0,79,0,47,0,62,0,25,0,30,0,23,0,7,0,20,0,254,255, +252,255,0,0,222,255,9,0,220,255,20,0,243,255,9,0,14,0,222,255,53,0,178,255,90,0,160,255,113,0,173,255, +117,0,211,255,90,0,247,255,63,0,26,0,65,0,65,0,76,0,83,0,89,0,85,0,105,0,89,0,110,0,96,0, +97,0,102,0,52,0,88,0,254,255,65,0,233,255,57,0,230,255,55,0,243,255,55,0,12,0,57,0,27,0,49,0, +38,0,41,0,41,0,36,0,31,0,35,0,32,0,52,0,39,0,70,0,45,0,73,0,59,0,64,0,78,0,49,0, +101,0,37,0,116,0,25,0,117,0,8,0,113,0,251,255,100,0,243,255,81,0,244,255,63,0,253,255,57,0,5,0, +73,0,8,0,83,0,251,255,70,0,228,255,43,0,219,255,6,0,219,255,228,255,218,255,203,255,203,255,192,255,180,255, +207,255,173,255,217,255,172,255,215,255,170,255,228,255,181,255,4,0,197,255,49,0,220,255,80,0,245,255,82,0,12,0, +76,0,48,0,53,0,70,0,18,0,65,0,13,0,59,0,19,0,48,0,10,0,31,0,5,0,25,0,18,0,35,0, +39,0,48,0,48,0,48,0,53,0,41,0,67,0,46,0,76,0,57,0,79,0,75,0,67,0,89,0,47,0,92,0, +54,0,98,0,65,0,93,0,68,0,74,0,75,0,62,0,62,0,47,0,38,0,34,0,18,0,27,0,248,255,7,0, +243,255,241,255,254,255,210,255,1,0,167,255,10,0,144,255,10,0,152,255,244,255,184,255,214,255,228,255,184,255,253,255, +180,255,1,0,203,255,244,255,223,255,220,255,236,255,210,255,235,255,213,255,220,255,219,255,214,255,222,255,224,255,216,255, +244,255,207,255,251,255,197,255,229,255,188,255,208,255,201,255,209,255,234,255,221,255,10,0,228,255,24,0,231,255,26,0, +249,255,32,0,16,0,36,0,22,0,24,0,18,0,8,0,14,0,252,255,12,0,248,255,10,0,249,255,1,0,244,255, +252,255,241,255,254,255,240,255,244,255,225,255,233,255,202,255,235,255,192,255,235,255,194,255,222,255,208,255,209,255,236,255, +211,255,16,0,225,255,45,0,238,255,49,0,244,255,31,0,246,255,10,0,248,255,3,0,252,255,15,0,247,255,26,0, +234,255,19,0,237,255,1,0,255,255,231,255,7,0,191,255,7,0,158,255,4,0,149,255,243,255,154,255,212,255,164,255, +180,255,173,255,163,255,181,255,160,255,184,255,154,255,174,255,146,255,158,255,140,255,142,255,136,255,127,255,134,255,119,255, +139,255,125,255,161,255,150,255,189,255,176,255,204,255,177,255,220,255,164,255,240,255,159,255,250,255,173,255,252,255,212,255, +238,255,251,255,221,255,20,0,226,255,36,0,238,255,39,0,246,255,36,0,254,255,42,0,255,255,49,0,251,255,46,0, +251,255,30,0,251,255,0,0,0,0,231,255,8,0,219,255,5,0,218,255,0,0,224,255,1,0,235,255,1,0,241,255, +243,255,238,255,220,255,230,255,209,255,230,255,221,255,238,255,241,255,243,255,6,0,241,255,15,0,235,255,4,0,224,255, +252,255,227,255,251,255,236,255,244,255,237,255,245,255,237,255,246,255,239,255,245,255,249,255,0,0,23,0,7,0,48,0, +2,0,47,0,1,0,27,0,9,0,4,0,26,0,254,255,41,0,10,0,36,0,25,0,25,0,34,0,15,0,34,0, +14,0,29,0,20,0,24,0,22,0,19,0,19,0,19,0,12,0,23,0,5,0,31,0,6,0,40,0,8,0,37,0, +11,0,23,0,13,0,3,0,12,0,243,255,22,0,247,255,32,0,4,0,31,0,14,0,30,0,21,0,25,0,22,0, +23,0,24,0,27,0,30,0,24,0,32,0,15,0,26,0,9,0,16,0,16,0,9,0,26,0,5,0,26,0,251,255, +26,0,245,255,28,0,241,255,24,0,235,255,20,0,231,255,15,0,230,255,16,0,235,255,26,0,244,255,29,0,248,255, +29,0,254,255,20,0,7,0,252,255,10,0,229,255,7,0,218,255,2,0,219,255,254,255,222,255,248,255,220,255,240,255, +221,255,232,255,220,255,219,255,219,255,203,255,217,255,190,255,214,255,188,255,223,255,205,255,225,255,220,255,205,255,218,255, +191,255,215,255,190,255,219,255,200,255,227,255,219,255,233,255,233,255,228,255,240,255,220,255,241,255,218,255,239,255,229,255, +244,255,246,255,252,255,251,255,10,0,242,255,23,0,230,255,27,0,228,255,22,0,246,255,6,0,8,0,246,255,14,0, +242,255,7,0,243,255,250,255,245,255,241,255,241,255,236,255,232,255,229,255,233,255,223,255,240,255,216,255,246,255,210,255, +242,255,207,255,230,255,205,255,223,255,209,255,215,255,207,255,218,255,209,255,240,255,225,255,248,255,232,255,237,255,229,255, +226,255,227,255,222,255,232,255,226,255,243,255,224,255,247,255,214,255,239,255,215,255,230,255,227,255,225,255,239,255,228,255, +245,255,243,255,247,255,10,0,241,255,24,0,229,255,19,0,242,255,13,0,22,0,16,0,42,0,13,0,39,0,7,0, +24,0,6,0,9,0,13,0,3,0,23,0,253,255,21,0,255,255,12,0,10,0,3,0,11,0,248,255,2,0,244,255, +243,255,247,255,234,255,0,0,239,255,11,0,244,255,11,0,250,255,7,0,0,0,3,0,4,0,3,0,8,0,7,0, +255,255,4,0,250,255,3,0,7,0,13,0,10,0,13,0,255,255,255,255,249,255,242,255,252,255,235,255,7,0,235,255, +11,0,235,255,3,0,233,255,252,255,235,255,246,255,238,255,242,255,240,255,249,255,247,255,6,0,0,0,10,0,5,0, +2,0,3,0,248,255,4,0,241,255,7,0,238,255,7,0,250,255,11,0,13,0,14,0,19,0,8,0,14,0,4,0, +2,0,4,0,249,255,7,0,0,0,15,0,11,0,17,0,15,0,12,0,15,0,11,0,8,0,14,0,3,0,22,0, +3,0,28,0,247,255,20,0,236,255,9,0,239,255,7,0,239,255,1,0,236,255,245,255,237,255,234,255,237,255,225,255, +247,255,228,255,6,0,243,255,5,0,254,255,251,255,3,0,246,255,7,0,249,255,9,0,254,255,9,0,2,0,8,0, +7,0,12,0,10,0,18,0,11,0,23,0,15,0,25,0,18,0,18,0,19,0,4,0,24,0,250,255,30,0,247,255, +28,0,248,255,16,0,247,255,7,0,247,255,5,0,249,255,251,255,245,255,245,255,244,255,249,255,249,255,2,0,252,255, +11,0,253,255,7,0,247,255,3,0,249,255,15,0,12,0,21,0,21,0,18,0,14,0,14,0,4,0,8,0,2,0, +3,0,12,0,245,255,18,0,230,255,18,0,237,255,20,0,253,255,20,0,6,0,16,0,7,0,10,0,0,0,1,0, +254,255,250,255,253,255,241,255,4,0,239,255,16,0,250,255,15,0,6,0,2,0,13,0,238,255,9,0,227,255,1,0, +242,255,4,0,5,0,9,0,17,0,10,0,24,0,10,0,24,0,7,0,22,0,2,0,12,0,247,255,5,0,235,255, +12,0,233,255,14,0,232,255,11,0,235,255,9,0,245,255,7,0,252,255,17,0,3,0,24,0,1,0,17,0,248,255, +14,0,252,255,7,0,2,0,251,255,4,0,248,255,7,0,249,255,8,0,254,255,12,0,3,0,17,0,1,0,15,0, +2,0,10,0,5,0,6,0,10,0,4,0,17,0,9,0,21,0,16,0,21,0,18,0,20,0,12,0,17,0,1,0, +16,0,249,255,13,0,247,255,5,0,247,255,0,0,250,255,1,0,251,255,1,0,249,255,1,0,247,255,4,0,252,255, +7,0,4,0,7,0,11,0,5,0,16,0,252,255,16,0,241,255,13,0,235,255,9,0,234,255,2,0,237,255,251,255, +243,255,247,255,250,255,245,255,0,0,243,255,252,255,238,255,248,255,238,255,254,255,247,255,5,0,0,0,14,0,0,0, +24,0,251,255,29,0,245,255,28,0,248,255,22,0,2,0,14,0,14,0,10,0,20,0,5,0,14,0,1,0,3,0, +2,0,255,255,0,0,0,0,251,255,3,0,250,255,8,0,250,255,9,0,247,255,4,0,242,255,253,255,240,255,250,255, +243,255,252,255,247,255,253,255,246,255,251,255,242,255,247,255,240,255,246,255,247,255,247,255,3,0,246,255,13,0,247,255, +16,0,252,255,7,0,2,0,253,255,9,0,253,255,14,0,3,0,13,0,6,0,11,0,0,0,13,0,245,255,21,0, +236,255,31,0,234,255,36,0,244,255,35,0,2,0,27,0,10,0,13,0,12,0,0,0,12,0,248,255,12,0,247,255, +11,0,250,255,1,0,248,255,247,255,245,255,249,255,245,255,255,255,242,255,5,0,238,255,9,0,239,255,6,0,242,255, +0,0,247,255,252,255,247,255,251,255,240,255,255,255,231,255,5,0,228,255,12,0,234,255,14,0,241,255,12,0,243,255, +10,0,242,255,5,0,240,255,255,255,242,255,251,255,249,255,249,255,0,0,244,255,2,0,236,255,0,0,231,255,255,255, +232,255,2,0,235,255,4,0,242,255,5,0,248,255,5,0,247,255,0,0,242,255,252,255,237,255,251,255,243,255,1,0, +255,255,7,0,3,0,1,0,6,0,248,255,13,0,245,255,16,0,247,255,17,0,254,255,16,0,7,0,14,0,11,0, +11,0,10,0,4,0,2,0,0,0,251,255,2,0,248,255,7,0,248,255,11,0,249,255,11,0,251,255,7,0,252,255, +252,255,244,255,243,255,236,255,251,255,236,255,4,0,239,255,7,0,238,255,0,0,235,255,248,255,236,255,253,255,248,255, +3,0,3,0,254,255,2,0,251,255,2,0,252,255,7,0,255,255,13,0,254,255,14,0,248,255,5,0,0,0,3,0, +14,0,6,0,18,0,4,0,19,0,0,0,14,0,250,255,3,0,245,255,252,255,249,255,244,255,0,0,246,255,8,0, +253,255,10,0,251,255,1,0,245,255,252,255,242,255,4,0,240,255,18,0,238,255,23,0,237,255,11,0,251,255,1,0, +18,0,0,0,25,0,3,0,19,0,9,0,13,0,16,0,8,0,17,0,9,0,13,0,10,0,8,0,4,0,6,0, +254,255,9,0,250,255,15,0,249,255,16,0,248,255,11,0,244,255,1,0,239,255,247,255,239,255,241,255,244,255,239,255, +252,255,239,255,0,0,241,255,248,255,240,255,237,255,237,255,239,255,240,255,250,255,247,255,4,0,254,255,4,0,1,0, +251,255,255,255,248,255,1,0,252,255,6,0,252,255,7,0,255,255,8,0,6,0,12,0,12,0,15,0,12,0,14,0, +2,0,5,0,249,255,254,255,251,255,254,255,253,255,255,255,252,255,251,255,252,255,248,255,253,255,248,255,0,0,254,255, +3,0,7,0,251,255,11,0,241,255,9,0,241,255,12,0,246,255,15,0,249,255,12,0,253,255,5,0,3,0,254,255, +6,0,251,255,4,0,252,255,252,255,0,0,247,255,3,0,247,255,3,0,252,255,0,0,4,0,252,255,6,0,251,255, +2,0,254,255,253,255,5,0,249,255,11,0,247,255,15,0,242,255,12,0,241,255,9,0,252,255,10,0,3,0,7,0, +0,0,254,255,253,255,249,255,252,255,249,255,252,255,252,255,253,255,255,255,251,255,255,255,250,255,254,255,2,0,5,0, +11,0,13,0,11,0,14,0,5,0,10,0,255,255,7,0,253,255,7,0,252,255,6,0,249,255,1,0,252,255,255,255, +4,0,1,0,4,0,255,255,251,255,249,255,241,255,242,255,240,255,240,255,249,255,242,255,0,0,244,255,252,255,242,255, +246,255,241,255,242,255,244,255,242,255,249,255,246,255,1,0,249,255,9,0,250,255,13,0,251,255,12,0,254,255,8,0, +3,0,5,0,8,0,7,0,7,0,11,0,6,0,14,0,10,0,13,0,15,0,7,0,19,0,2,0,14,0,0,0, +252,255,1,0,241,255,9,0,243,255,18,0,244,255,14,0,245,255,3,0,248,255,253,255,252,255,0,0,254,255,8,0, +249,255,6,0,247,255,0,0,253,255,251,255,2,0,248,255,10,0,251,255,14,0,0,0,13,0,3,0,10,0,5,0, +0,0,2,0,250,255,4,0,254,255,10,0,255,255,10,0,253,255,5,0,253,255,1,0,254,255,2,0,2,0,2,0, +254,255,251,255,250,255,242,255,0,0,242,255,5,0,244,255,3,0,245,255,252,255,243,255,248,255,243,255,253,255,248,255, +5,0,253,255,7,0,253,255,7,0,252,255,5,0,250,255,1,0,251,255,0,0,253,255,2,0,1,0,7,0,6,0, +9,0,7,0,10,0,4,0,11,0,255,255,10,0,250,255,8,0,249,255,4,0,251,255,2,0,1,0,255,255,4,0, +248,255,1,0,244,255,253,255,248,255,254,255,251,255,0,0,252,255,3,0,248,255,3,0,243,255,2,0,242,255,1,0, +241,255,0,0,244,255,0,0,249,255,1,0,252,255,0,0,253,255,252,255,255,255,248,255,3,0,247,255,5,0,248,255, +6,0,249,255,8,0,247,255,6,0,243,255,3,0,240,255,255,255,242,255,253,255,247,255,254,255,251,255,0,0,251,255, +3,0,248,255,5,0,246,255,2,0,246,255,255,255,248,255,252,255,250,255,251,255,250,255,0,0,252,255,6,0,253,255, +6,0,251,255,6,0,252,255,6,0,0,0,5,0,6,0,1,0,13,0,250,255,17,0,245,255,18,0,246,255,15,0, +251,255,10,0,0,0,6,0,3,0,5,0,1,0,6,0,255,255,7,0,254,255,4,0,3,0,1,0,8,0,254,255, +6,0,251,255,1,0,251,255,252,255,251,255,249,255,251,255,249,255,252,255,251,255,253,255,251,255,254,255,250,255,254,255, +248,255,253,255,249,255,254,255,252,255,1,0,253,255,3,0,253,255,3,0,254,255,1,0,0,0,0,0,1,0,255,255, +0,0,1,0,2,0,6,0,4,0,8,0,6,0,6,0,9,0,0,0,12,0,252,255,12,0,251,255,10,0,254,255, +6,0,0,0,2,0,0,0,255,255,252,255,253,255,248,255,254,255,248,255,0,0,251,255,253,255,251,255,251,255,252,255, +248,255,254,255,247,255,0,0,247,255,3,0,250,255,5,0,254,255,6,0,1,0,6,0,2,0,4,0,2,0,1,0, +1,0,254,255,0,0,252,255,0,0,253,255,0,0,254,255,0,0,253,255,1,0,252,255,4,0,252,255,5,0,253,255, +6,0,0,0,7,0,4,0,7,0,6,0,7,0,5,0,5,0,3,0,3,0,1,0,1,0,2,0,0,0,3,0, +0,0,5,0,1,0,5,0,255,255,4,0,253,255,2,0,253,255,2,0,254,255,1,0,2,0,0,0,4,0,254,255, +5,0,253,255,7,0,0,0,5,0,0,0,2,0,254,255,3,0,252,255,3,0,249,255,4,0,248,255,4,0,249,255, +2,0,249,255,4,0,253,255,7,0,0,0,7,0,2,0,7,0,3,0,5,0,3,0,1,0,2,0,252,255,1,0, +247,255,0,0,250,255,2,0,0,0,3,0,4,0,1,0,4,0,254,255,1,0,251,255,255,255,252,255,255,255,254,255, +0,0,0,0,1,0,2,0,1,0,4,0,255,255,5,0,251,255,5,0,249,255,4,0,253,255,4,0,0,0,3,0, +2,0,0,0,3,0,1,0,4,0,3,0,5,0,5,0,4,0,3,0,1,0,254,255,2,0,253,255,3,0,255,255, +0,0,255,255,254,255,254,255,253,255,253,255,255,255,253,255,1,0,254,255,1,0,254,255,3,0,253,255,6,0,254,255, +6,0,254,255,5,0,254,255,4,0,1,0,4,0,4,0,3,0,5,0,2,0,5,0,2,0,4,0,1,0,3,0, +0,0,2,0,255,255,2,0,254,255,2,0,254,255,1,0,254,255,0,0,0,0,255,255,0,0,253,255,254,255,250,255, +252,255,250,255,252,255,251,255,252,255,253,255,253,255,0,0,253,255,1,0,252,255,1,0,254,255,4,0,1,0,5,0, +1,0,4,0,1,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,0,0,3,0,254,255,1,0,0,0,0,0, +2,0,0,0,3,0,1,0,2,0,2,0,255,255,2,0,253,255,1,0,253,255,1,0,254,255,0,0,0,0,0,0, +2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,1,0,254,255,2,0,254,255,3,0,254,255, +3,0,254,255,1,0,254,255,1,0,255,255,1,0,1,0,2,0,2,0,2,0,2,0,0,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,255,255,1,0,254,255,1,0,253,255,1,0,252,255,255,255,253,255,254,255, +254,255,253,255,0,0,254,255,0,0,255,255,255,255,0,0,255,255,2,0,255,255,2,0,0,0,1,0,1,0,0,0, +4,0,1,0,5,0,1,0,3,0,2,0,0,0,2,0,255,255,3,0,0,0,3,0,1,0,2,0,1,0,0,0, +1,0,254,255,0,0,254,255,255,255,254,255,254,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,1,0,255,255,255,255,254,255,255,255,254,255,255,255,254,255,0,0,254,255,1,0,254,255, +1,0,253,255,0,0,254,255,255,255,254,255,255,255,255,255,255,255,0,0,255,255,1,0,254,255,1,0,254,255,2,0, +254,255,2,0,0,0,2,0,1,0,0,0,2,0,255,255,1,0,255,255,1,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,1,0,254,255,1,0,254,255,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255, +0,0,0,0,1,0,0,0,1,0,255,255,0,0,254,255,255,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,1,0,255,255,1,0,255,255,1,0,0,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,0,0,254,255,0,0,254,255, +0,0,254,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255, +0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + +}; \ No newline at end of file diff --git a/src/client/sound/data/cloth1.pcm b/src/client/sound/data/cloth1.pcm new file mode 100755 index 0000000..630d0cf --- /dev/null +++ b/src/client/sound/data/cloth1.pcm @@ -0,0 +1,564 @@ +unsigned char PCM_cloth1[17962] = { +1,0,0,0,2,0,0,0,68,172,0,0,13,35,0,0,245,255,237,255,243,255,233,255,244,255,26,0,32,0,29,0, +50,0,46,0,21,0,22,0,9,0,226,255,206,255,196,255,200,255,227,255,235,255,234,255,8,0,33,0,46,0,62,0, +63,0,82,0,116,0,90,0,4,0,161,255,67,255,39,255,129,255,9,0,76,0,65,0,28,0,242,255,1,0,73,0, +44,0,218,255,236,255,202,255,115,255,199,255,54,0,92,0,0,1,154,1,85,1,227,0,217,0,50,1,152,1,172,1, +220,1,42,2,238,1,219,1,97,2,81,2,133,1,8,1,12,1,3,1,167,0,143,0,229,0,181,0,3,0,175,255, +221,255,90,0,128,0,239,255,114,255,245,254,64,254,78,254,165,254,132,254,173,254,89,254,57,253,107,253,152,254,247,254, +13,255,237,254,27,254,87,253,192,252,12,252,102,251,163,250,255,249,174,249,80,249,79,249,248,249,140,250,155,250,103,250, +104,250,5,250,98,248,56,247,128,247,255,246,16,246,0,247,150,248,38,249,41,249,33,249,193,249,239,250,146,251,12,252, +236,252,201,253,134,254,164,254,13,254,121,253,202,252,242,252,236,254,82,0,222,255,148,255,245,255,145,0,135,1,237,1, +228,1,66,2,189,1,249,255,51,255,83,0,194,1,60,2,158,1,142,255,240,252,100,252,5,253,41,252,65,252,167,254, +143,255,66,255,71,0,112,0,59,255,219,254,113,254,118,253,8,253,96,252,252,250,236,249,35,250,183,251,30,253,129,253, +25,254,162,254,6,254,235,252,203,251,219,250,241,250,235,251,205,252,206,252,37,252,42,252,203,252,211,252,166,252,170,252, +174,252,128,253,194,254,208,254,235,253,137,253,222,253,130,253,237,251,50,251,220,251,110,251,21,250,24,250,161,250,252,249, +180,248,125,248,185,250,208,253,151,254,136,253,169,252,252,251,74,252,127,254,74,0,138,255,176,253,94,253,75,255,255,0, +242,255,186,253,199,252,108,252,74,252,81,253,217,254,224,255,79,0,42,0,102,0,93,1,135,1,56,1,241,1,113,2, +238,1,133,2,128,4,18,5,65,3,190,1,12,2,24,2,68,1,57,1,251,0,227,255,184,0,21,3,16,3,223,0, +204,255,142,0,51,1,74,0,74,255,80,0,99,2,90,3,173,2,89,1,123,1,178,3,189,5,11,6,86,5,69,5, +136,6,131,6,180,3,15,2,210,2,83,2,203,1,194,3,122,4,163,2,13,2,173,2,142,2,121,2,110,2,52,2, +217,2,115,3,16,3,103,3,170,4,184,4,85,3,13,2,190,1,72,2,167,2,224,1,247,0,197,1,50,3,123,2, +237,0,17,2,122,4,192,4,113,4,133,5,241,5,34,5,90,4,134,2,247,255,72,255,169,255,115,255,231,255,106,0, +139,255,90,255,82,0,30,0,91,255,86,255,68,255,213,255,132,1,127,2,170,2,53,3,192,3,29,4,141,4,246,4, +227,5,176,6,177,5,67,4,164,4,112,5,244,4,211,4,68,6,119,7,81,7,31,7,76,7,106,7,18,8,178,8, +74,8,32,8,5,8,77,6,65,5,204,6,210,7,251,6,141,6,254,6,116,7,180,7,225,7,246,8,194,10,158,11, +179,11,140,11,191,10,142,10,7,12,147,13,23,14,104,14,110,15,105,16,32,15,217,11,219,9,251,9,159,10,87,11, +138,11,57,10,46,8,145,7,25,10,218,13,15,14,196,10,245,8,237,9,241,10,178,10,142,9,78,8,199,7,225,7, +144,7,79,6,164,5,50,6,6,5,229,1,176,0,102,0,73,254,96,253,55,254,59,253,95,252,161,253,109,253,201,251, +124,251,48,250,188,246,146,245,25,248,172,249,7,248,105,246,3,246,136,244,170,243,212,245,28,247,59,245,66,244,18,246, +115,248,204,248,230,245,241,242,13,243,98,243,175,242,129,243,77,244,172,243,9,244,35,244,88,242,31,242,184,243,73,244, +134,245,237,247,253,247,226,246,246,247,23,249,99,248,85,248,103,249,199,249,221,249,245,249,18,249,1,248,91,247,14,246, +146,244,157,243,136,242,58,242,237,242,69,242,228,240,119,241,164,242,130,242,63,242,145,242,251,242,26,243,111,242,185,241, +57,242,81,243,238,243,8,244,44,244,49,245,115,246,250,245,133,244,8,245,133,247,83,249,41,250,251,251,183,253,197,252, +155,251,59,253,35,254,32,252,114,251,62,253,53,254,213,254,2,1,192,2,22,2,232,0,130,2,193,6,109,9,144,8, +120,6,132,4,145,3,114,5,159,7,244,5,15,3,161,2,171,2,94,2,191,3,21,5,87,4,5,4,98,5,34,6, +199,5,246,5,241,6,212,7,3,8,89,7,112,6,45,6,14,6,147,4,120,2,238,1,107,2,146,2,247,2,186,2, +213,0,28,0,240,1,227,3,15,5,248,4,43,3,225,2,210,4,14,5,88,4,146,5,160,6,166,6,112,7,183,7, +48,6,159,4,17,5,178,6,18,5,223,255,176,253,105,255,54,0,195,0,36,1,70,254,142,251,191,251,72,251,170,250, +14,251,216,248,145,245,46,245,183,245,28,246,229,246,77,246,169,245,205,246,47,247,238,246,48,248,128,248,67,246,90,244, +169,244,81,246,209,247,165,248,10,249,139,248,147,247,136,247,198,247,178,247,38,248,65,248,167,247,19,248,61,249,100,250, +22,252,222,252,96,252,86,253,48,255,125,255,102,255,107,255,58,254,189,253,209,255,180,1,126,1,157,1,26,3,87,3, +226,1,207,1,1,4,35,6,140,6,96,5,63,4,28,5,55,7,246,7,250,6,233,5,135,5,183,5,182,6,230,7, +45,7,189,4,212,3,124,4,224,3,80,3,25,5,160,6,239,5,86,5,185,5,67,5,140,3,84,2,248,2,127,4, +7,5,204,4,72,5,226,5,168,4,26,2,248,0,4,2,151,3,164,4,120,4,246,2,19,2,215,1,54,0,5,0, +72,4,150,7,116,5,173,2,60,3,83,4,147,3,162,2,33,3,241,3,227,3,120,4,103,6,162,7,66,8,143,10, +78,13,166,13,160,12,82,13,208,15,244,16,159,14,237,10,106,9,13,10,96,10,180,9,120,8,20,7,59,7,176,8, +220,7,207,5,36,7,243,8,64,6,45,2,187,255,230,253,190,254,234,1,108,1,205,252,141,248,70,245,148,242,90,241, +195,240,241,239,247,238,62,238,223,238,186,239,198,238,246,237,163,238,213,237,194,234,106,232,137,232,30,234,21,235,67,235, +10,236,52,236,178,234,198,233,117,233,201,231,88,230,175,230,236,231,37,234,70,236,239,235,166,234,104,235,253,237,141,240, +167,241,4,242,75,243,101,243,82,241,6,242,183,245,12,246,251,243,171,244,187,245,77,244,90,243,245,244,165,248,192,252, +69,254,188,253,55,254,202,254,120,254,178,255,181,2,165,5,225,7,219,8,229,8,159,8,21,7,87,5,140,5,61,6, +44,6,83,6,5,6,165,4,224,2,218,0,27,0,109,1,254,1,179,0,114,255,209,255,119,2,103,4,214,2,151,2, +76,6,236,7,203,5,32,4,130,3,241,2,155,1,59,255,19,255,56,1,143,1,126,1,251,2,79,3,8,3,82,3, +174,2,107,3,255,5,2,6,110,4,41,4,136,4,206,6,120,9,240,7,135,5,251,5,14,6,243,5,27,7,238,5, +215,2,37,1,130,255,169,253,103,253,190,253,32,254,107,255,243,0,151,1,246,0,250,255,118,255,157,254,36,255,28,3, +8,6,197,4,54,3,62,2,49,0,65,255,127,255,48,255,63,0,127,1,239,254,34,251,20,250,47,250,82,250,103,251, +254,251,48,251,28,251,34,252,242,251,227,250,10,251,212,250,145,248,23,247,225,247,84,248,143,247,195,246,103,246,32,247, +202,248,197,249,129,249,85,248,255,246,209,246,221,246,213,245,24,246,93,248,69,249,208,248,54,249,225,248,105,247,19,248, +174,250,250,251,151,251,147,250,176,249,35,251,250,254,55,0,179,252,152,249,55,249,228,246,206,242,245,242,37,246,13,247, +100,247,72,249,239,249,104,249,124,249,117,249,19,251,85,255,86,1,120,255,197,253,8,253,57,252,169,251,143,249,85,244, +22,237,190,230,206,231,125,242,150,251,69,250,76,247,160,252,236,5,8,12,63,15,188,16,79,16,134,17,19,22,188,24, +68,24,173,25,2,28,210,27,6,27,62,25,104,21,210,20,203,24,67,28,149,30,240,31,140,30,195,29,199,31,49,32, +168,29,109,27,19,27,70,28,202,29,33,31,72,32,237,30,191,27,67,27,143,27,159,24,4,22,45,22,134,22,38,23, +241,23,120,22,47,20,221,19,82,20,96,19,125,17,46,17,252,17,27,16,174,13,50,16,209,19,152,18,83,16,245,16, +146,17,104,16,205,14,128,13,17,13,69,13,119,12,97,10,239,8,94,9,158,10,52,12,129,15,188,18,187,17,140,14, +41,14,209,14,224,13,153,13,105,13,107,11,6,12,235,16,172,19,8,18,68,15,153,11,140,8,96,9,163,10,174,8, +74,7,123,8,165,9,39,10,201,9,36,8,62,7,90,7,3,7,209,7,92,10,199,11,104,11,14,11,212,10,120,9, +185,6,103,4,143,4,249,5,217,5,215,4,251,5,156,8,216,8,22,7,162,6,245,5,212,3,161,4,56,8,241,8, +121,7,194,7,146,8,210,7,26,6,206,4,15,4,126,1,191,253,77,253,51,254,60,252,122,251,115,253,84,252,30,249, +205,248,183,248,232,245,28,243,79,242,219,242,118,243,31,243,104,242,243,241,52,241,68,240,151,239,25,239,103,239,84,241, +180,243,189,243,32,241,71,239,252,239,226,241,69,244,154,245,8,244,156,242,239,243,15,245,216,244,155,244,139,243,66,243, +129,245,193,245,122,242,48,241,239,242,220,244,82,247,236,248,137,247,50,247,171,249,73,249,150,245,73,244,6,245,111,245, +132,248,122,253,39,255,70,255,170,1,130,4,243,7,26,14,84,20,94,25,43,30,176,30,251,25,189,22,227,21,89,19, +166,17,33,19,120,19,128,16,79,12,46,9,223,9,144,13,197,14,215,12,60,12,197,13,247,15,136,18,238,19,29,19, +140,17,246,15,4,14,193,11,253,8,158,6,238,5,254,5,255,5,246,5,61,4,246,0,116,255,8,0,216,255,251,253, +57,251,147,248,79,247,7,247,171,245,25,243,146,241,31,241,36,239,19,236,233,233,150,230,61,226,134,225,63,226,220,222, +251,218,126,218,241,217,155,216,107,216,160,215,238,213,83,213,234,213,108,215,75,216,249,213,18,210,82,207,119,205,105,205, +204,207,242,208,155,206,242,203,134,203,152,203,111,202,156,201,57,202,222,202,125,203,115,205,157,207,5,207,255,202,22,200, +239,202,28,207,234,205,120,202,23,201,138,199,117,198,0,201,38,205,36,208,80,209,225,207,67,205,3,204,117,205,65,210, +195,214,92,214,243,212,138,215,235,218,46,220,216,220,101,221,90,222,85,224,79,225,83,224,136,222,128,220,55,220,182,222, +209,223,139,221,126,220,120,222,142,224,190,226,99,229,50,229,102,226,246,225,213,228,227,231,209,233,173,234,235,234,145,235, +250,235,197,235,124,237,135,241,30,244,159,243,235,241,107,240,244,239,56,241,198,242,104,242,28,241,25,242,130,245,52,248, +47,249,161,249,27,249,251,247,195,248,7,251,148,252,91,254,120,0,157,0,120,0,22,3,81,6,226,7,183,8,129,8, +182,7,152,9,20,14,235,17,205,20,87,23,21,24,131,22,155,19,21,17,160,17,157,20,129,22,82,23,56,24,197,24, +254,25,11,27,79,25,167,23,143,25,151,27,56,27,32,28,181,30,222,30,232,29,218,29,15,28,124,26,109,27,23,26, +66,22,110,20,105,19,255,15,67,8,208,251,2,239,116,232,154,235,61,246,207,4,22,21,65,33,182,37,82,38,53,37, +59,35,123,34,19,34,83,34,150,35,83,36,168,37,154,38,205,37,244,37,58,38,252,36,217,34,189,31,156,31,211,35, +123,39,3,42,108,43,80,42,160,41,123,43,155,46,86,47,202,44,185,43,41,42,20,37,24,34,18,32,83,28,244,27, +244,28,173,27,32,27,101,27,91,27,117,26,152,24,17,24,123,24,243,24,154,24,61,22,142,22,11,25,198,23,139,22, +76,22,6,19,124,16,234,14,6,12,78,11,200,12,158,14,78,16,53,17,225,18,67,20,235,20,113,23,50,26,119,28, +161,28,216,22,203,16,32,13,167,6,133,1,86,0,13,254,96,251,74,250,107,250,99,251,155,252,107,255,253,1,234,2, +42,5,78,6,252,5,134,7,1,6,184,1,39,1,216,1,67,1,27,0,130,254,98,254,226,253,224,251,18,251,150,250, +210,250,56,252,20,253,247,255,32,3,140,2,209,1,183,1,19,1,111,1,211,0,252,254,37,253,86,251,27,252,68,253, +34,252,186,252,85,255,254,1,215,3,18,3,175,2,142,3,251,2,119,3,234,3,7,2,2,2,93,3,139,3,23,4, +236,4,18,6,0,7,37,7,250,8,202,11,66,14,179,16,121,16,231,14,130,15,149,16,54,17,99,17,133,17,132,19, +152,20,47,19,197,18,149,18,55,17,204,16,83,17,84,17,110,16,235,15,226,16,179,17,216,17,206,17,131,16,110,14, +245,12,187,12,164,12,31,10,41,8,161,10,220,12,158,11,55,9,26,6,37,4,17,5,92,5,76,4,154,4,175,4, +16,3,24,2,39,2,196,1,108,1,244,0,192,255,167,255,124,0,182,255,230,254,234,255,114,255,174,252,150,252,113,255, +142,255,156,253,8,255,34,1,71,255,140,253,239,254,219,255,106,255,161,254,153,252,122,251,108,253,39,255,229,254,161,254, +6,254,190,252,58,253,39,255,27,255,107,253,178,253,111,255,36,255,223,253,52,254,67,254,20,253,56,252,102,250,9,248, +145,248,130,249,150,247,217,246,174,248,23,249,78,248,229,247,19,247,122,247,77,249,24,249,163,247,207,247,2,248,215,246, +127,245,38,244,91,243,78,244,116,245,184,244,27,243,204,242,1,244,19,245,228,244,5,244,99,243,243,242,213,241,15,240, +59,239,158,239,193,239,135,240,243,242,248,243,153,242,168,242,75,244,96,244,17,244,180,244,1,244,244,242,157,244,183,246, +105,246,110,245,122,244,151,242,123,241,11,242,178,242,177,243,47,245,105,245,23,245,118,245,5,245,167,244,114,246,185,247, +215,246,228,246,75,248,234,248,123,249,194,250,224,251,188,252,49,253,161,253,168,255,92,2,82,3,78,3,231,3,97,4, +37,4,226,3,70,4,47,5,96,5,189,4,57,5,157,6,33,6,3,4,212,2,9,2,20,0,128,254,91,254,14,254, +127,253,151,253,39,253,19,252,189,251,203,250,252,248,210,249,99,252,242,251,5,250,191,250,132,252,23,253,157,253,240,253, +10,253,74,252,162,252,240,252,49,253,115,254,184,255,167,255,248,255,171,1,190,1,122,255,2,255,38,1,219,1,79,0, +212,255,202,1,10,4,41,4,138,2,90,1,44,1,127,1,96,2,244,2,165,2,235,2,164,3,141,2,101,0,184,255, +106,0,152,1,239,2,246,2,164,1,133,1,200,2,66,3,60,3,160,3,202,2,138,0,168,255,181,0,40,1,190,255, +160,253,169,252,167,253,235,254,105,254,15,253,228,252,208,253,234,254,2,0,108,0,20,255,108,252,126,250,67,250,82,250, +221,249,79,250,178,251,11,252,232,251,210,252,182,252,55,250,130,248,215,248,162,248,40,248,102,249,136,250,148,249,68,248, +85,248,176,249,157,251,89,252,244,250,105,249,137,249,210,250,63,252,148,252,211,250,170,248,201,248,243,250,63,253,20,255, +33,0,115,255,81,253,157,251,143,251,125,252,168,252,135,251,229,250,255,251,56,253,22,253,252,251,67,250,204,248,252,248, +208,249,225,249,129,250,212,251,203,251,209,250,78,250,125,249,153,248,79,249,0,251,67,252,118,253,101,254,180,253,37,252, +215,251,82,252,157,251,4,250,251,248,9,249,33,250,227,250,33,250,180,249,17,250,202,248,20,248,107,251,129,254,157,253, +171,252,89,253,141,253,163,254,216,0,206,0,48,255,120,255,245,0,20,1,237,255,78,255,13,0,45,1,141,1,57,1, +187,0,162,0,236,0,7,1,75,1,235,1,205,1,83,1,2,2,76,3,48,4,172,4,167,4,203,4,72,5,169,4, +169,3,20,4,77,4,162,3,13,4,65,4,123,2,148,1,224,2,201,3,247,3,89,4,111,3,255,0,199,255,207,0, +243,1,229,0,175,253,9,251,103,251,142,253,99,255,201,1,188,4,239,4,91,2,68,1,108,2,235,2,92,2,62,2, +160,2,5,3,82,3,81,3,180,2,172,1,49,1,155,1,222,1,109,1,199,0,48,0,195,255,92,255,195,254,125,254, +66,254,100,253,168,253,211,255,144,0,240,254,118,254,200,255,44,0,18,255,196,253,6,253,100,253,139,254,15,255,201,254, +67,255,94,0,43,0,26,255,76,255,93,0,5,1,79,1,157,0,173,254,83,253,224,253,170,255,105,0,87,254,97,252, +17,254,124,0,211,0,50,1,12,1,66,254,171,251,154,251,94,252,187,252,99,252,243,251,239,252,62,254,76,254,41,254, +248,253,127,253,36,254,24,255,167,254,160,253,121,252,178,251,137,252,4,253,19,251,176,248,125,247,238,247,64,250,255,251, +84,252,182,253,149,254,200,252,223,251,34,253,88,253,9,253,50,254,64,255,93,255,161,255,122,255,218,253,62,252,174,252, +141,253,104,252,133,251,65,253,17,255,133,255,3,0,189,255,156,254,30,255,150,0,169,0,127,0,106,1,169,1,177,255, +82,253,131,253,82,255,129,255,241,254,255,255,10,1,168,0,37,0,161,255,87,255,185,0,81,2,203,1,145,0,50,0, +6,0,157,0,96,2,17,3,99,2,188,2,23,3,62,1,131,255,114,255,198,254,50,254,183,255,189,0,250,255,42,0, +25,1,228,0,152,0,155,0,248,255,149,255,9,0,109,0,151,0,131,0,16,0,7,0,150,0,244,0,35,1,43,1, +133,0,5,0,228,0,186,1,214,0,44,0,139,1,155,2,215,1,44,1,81,1,137,1,19,2,97,2,174,1,190,0, +53,0,239,0,52,3,30,4,221,2,5,3,13,4,91,2,3,0,103,0,209,1,245,1,98,1,0,2,69,4,56,5, +15,3,240,0,22,1,219,1,61,2,182,2,115,3,129,4,137,5,231,5,82,5,182,4,45,6,161,8,246,7,48,5, +52,4,181,3,117,2,76,2,130,1,56,255,221,255,121,3,50,5,166,4,176,3,116,2,255,1,192,2,69,3,52,3, +253,2,159,2,25,2,42,1,170,0,226,1,59,3,3,3,171,2,241,2,10,3,82,3,117,3,77,2,40,1,153,1, +60,2,139,1,165,0,58,1,199,2,59,3,147,1,194,254,205,252,41,253,209,254,110,255,157,254,47,253,133,251,253,250, +78,252,246,252,199,251,149,251,238,252,200,252,122,251,37,252,203,253,154,253,169,252,145,252,103,252,73,252,130,252,3,251, +120,248,206,248,65,251,160,251,85,250,25,250,103,250,45,250,62,250,187,250,201,250,4,251,131,252,36,254,118,254,132,254, +68,255,170,255,197,255,202,0,228,1,166,1,192,0,136,0,54,1,231,1,159,1,237,0,243,0,90,1,150,1,119,1, +204,255,231,252,255,251,153,253,92,254,210,253,62,254,139,254,66,253,216,252,30,254,44,254,201,252,128,252,206,253,164,255, +159,0,158,255,254,253,145,253,137,253,71,253,134,253,42,254,8,255,246,255,17,0,208,255,243,255,156,255,73,255,245,255, +3,0,50,255,144,255,160,0,33,1,149,1,137,1,18,1,198,1,114,2,115,1,180,0,17,1,84,1,62,2,168,3, +81,3,23,2,34,2,163,2,24,3,202,3,89,3,170,2,93,4,62,6,192,5,206,5,104,7,119,7,142,6,173,6, +27,6,169,4,14,5,48,7,104,8,67,7,31,5,61,5,132,7,14,8,133,6,197,5,191,5,7,6,204,7,160,9, +182,9,218,9,0,11,24,11,236,9,190,9,24,11,131,12,66,13,155,13,166,13,115,13,29,13,158,12,166,12,152,13, +23,14,165,13,207,13,182,14,255,14,98,14,95,13,34,13,172,14,190,15,11,14,82,12,197,12,147,12,192,10,249,9, +194,9,194,7,28,5,122,3,98,2,97,1,204,255,115,253,167,252,233,253,102,254,7,254,239,253,73,252,180,249,60,249, +98,249,94,248,71,248,208,248,39,248,192,247,69,248,121,248,147,248,125,248,235,247,184,247,58,247,95,246,75,247,141,248, +165,247,121,247,74,249,21,249,33,247,161,247,163,249,238,249,146,249,24,250,214,249,90,248,43,248,82,249,236,248,92,247, +52,247,150,247,217,246,247,245,119,245,216,244,225,244,205,245,85,246,53,246,18,246,141,245,146,244,153,244,240,245,214,246, +24,247,239,247,159,248,155,248,54,249,239,249,80,249,109,248,75,248,150,248,129,249,90,250,64,250,66,250,132,250,99,250, +37,251,151,252,249,252,78,253,31,254,200,253,67,253,246,253,14,254,12,253,230,252,199,253,50,254,214,253,147,254,96,1, +193,2,171,0,121,255,248,0,16,1,108,255,27,255,161,255,7,0,213,0,63,1,48,1,142,1,72,1,42,0,24,0, +194,0,147,0,36,0,94,0,185,0,160,0,48,0,11,0,98,0,57,0,94,255,74,255,59,0,183,0,128,0,124,0, +165,0,175,0,197,0,222,0,20,1,72,1,193,0,45,0,218,0,154,1,32,1,200,0,58,1,91,1,251,0,69,0, +60,255,180,254,245,254,129,255,68,0,152,0,21,0,223,255,58,0,141,0,149,1,19,3,25,3,7,2,235,1,96,2, +240,1,122,1,12,2,240,1,102,0,44,0,214,1,149,2,116,2,0,3,232,2,82,1,69,255,113,253,35,253,172,254, +33,0,90,1,136,2,202,1,55,0,69,0,162,0,227,0,34,2,35,2,91,0,203,255,10,0,172,255,65,0,76,1, +37,1,107,1,182,2,182,2,123,1,93,1,115,2,237,2,169,2,176,2,135,2,2,2,164,2,22,4,168,4,147,4, +179,3,164,1,195,0,250,1,234,2,82,3,41,4,161,4,234,4,124,5,52,5,149,4,236,4,61,5,210,4,37,4, +62,3,203,2,25,3,245,2,182,2,152,3,197,4,145,5,93,6,96,6,138,5,100,5,137,5,176,4,238,3,254,3, +164,3,135,3,70,5,212,6,229,5,138,4,150,4,146,4,29,4,9,4,119,3,11,2,184,0,150,255,247,254,145,255, +156,0,89,1,225,1,185,1,83,1,186,1,177,1,65,0,114,255,73,0,221,0,245,255,218,254,248,254,79,255,92,254, +146,253,139,254,91,255,199,254,194,254,177,255,255,255,253,255,136,0,219,0,117,0,141,255,59,254,107,253,232,253,102,254, +168,253,142,252,192,251,29,251,47,251,175,251,161,251,4,252,93,253,189,253,12,253,3,253,31,253,214,252,46,253,147,253, +60,253,93,253,243,253,144,253,157,252,102,252,222,252,33,253,216,252,124,252,81,252,50,252,64,252,106,252,149,252,235,252, +225,252,189,252,16,254,169,255,139,255,85,255,103,255,162,253,229,251,132,252,38,253,241,252,126,253,188,253,6,253,222,252, +33,253,87,253,249,253,69,254,32,254,189,254,114,255,235,254,210,253,81,253,175,253,43,254,242,253,199,253,78,254,93,254, +17,254,190,254,95,255,252,254,51,255,6,0,161,255,199,254,110,254,147,253,129,253,179,255,210,0,223,254,88,253,159,253, +129,253,25,253,81,253,65,253,231,252,231,252,233,252,216,252,173,252,85,252,199,252,239,253,19,254,87,253,229,252,30,252, +61,251,30,252,229,253,49,254,21,254,39,255,171,255,18,255,119,255,121,0,65,0,142,255,59,255,201,254,116,254,113,254, +182,254,164,255,80,0,247,255,252,255,88,0,164,255,20,255,235,255,192,0,168,0,6,0,23,255,166,254,18,255,62,255, +245,254,123,255,181,0,16,1,102,0,238,255,208,255,204,255,85,0,211,0,127,0,107,0,50,1,234,1,47,2,230,1, +36,1,203,0,229,0,58,1,80,2,107,3,218,3,76,4,212,3,8,2,135,1,189,2,113,3,63,3,20,2,90,0, +86,0,70,1,128,0,187,255,33,1,225,2,148,3,189,3,63,3,224,1,134,0,159,0,44,2,84,3,112,3,95,3, +64,3,106,3,27,4,247,3,38,3,115,3,40,4,53,4,177,4,38,5,5,4,133,2,110,2,21,3,148,3,249,3, +162,3,95,2,186,1,229,1,91,1,244,0,234,1,70,2,159,1,96,2,191,3,52,3,161,1,254,0,164,1,176,2, +155,2,150,1,228,0,5,0,58,255,20,0,103,1,150,1,163,1,229,1,186,1,137,1,90,1,57,1,147,1,92,1, +61,0,203,255,178,255,178,254,196,253,117,253,232,252,81,252,30,252,46,252,184,252,34,253,124,252,66,251,243,249,215,248, +41,249,97,250,37,250,226,248,109,248,57,248,24,248,7,249,231,249,196,249,36,250,27,251,213,250,89,249,21,248,204,247, +129,248,69,249,86,249,162,249,164,250,2,251,104,250,67,250,141,250,3,250,97,249,0,250,191,250,96,250,7,250,141,250, +35,251,124,251,25,252,209,252,8,253,8,253,144,253,213,253,1,253,160,252,45,253,210,252,91,252,117,253,38,254,128,253, +177,253,147,254,107,254,175,253,104,253,197,253,80,254,83,254,232,253,90,253,180,252,161,252,170,252,187,251,250,250,38,251, +62,251,194,251,210,252,171,252,157,251,91,251,6,252,249,252,88,253,70,253,232,253,127,254,101,254,229,254,73,255,171,254, +194,254,8,255,51,254,143,254,111,0,28,1,212,0,78,1,162,2,249,3,224,3,236,2,77,3,52,4,112,4,53,5, +243,5,35,5,187,3,232,2,236,2,179,3,89,4,183,4,16,5,211,4,176,4,111,5,185,5,13,5,108,4,236,3, +153,3,212,3,106,4,176,4,236,3,69,3,105,4,94,5,144,4,19,4,187,3,45,2,197,1,67,3,67,4,96,4, +222,3,235,2,233,2,54,3,167,2,162,2,190,2,114,1,145,0,251,0,205,0,52,0,91,0,102,0,164,255,25,255, +131,255,180,255,215,254,137,254,104,255,227,255,27,0,170,0,130,0,39,0,207,0,112,1,93,1,8,1,172,0,58,1, +125,2,113,2,104,1,111,1,67,2,139,2,23,2,168,1,245,1,95,2,243,1,40,1,128,0,28,0,116,0,247,0, +236,0,39,1,186,1,151,1,56,1,76,1,50,1,63,1,61,2,6,3,213,2,8,3,156,3,204,2,84,1,68,1, +216,1,182,1,171,1,30,2,47,2,178,1,29,1,183,0,139,0,108,0,115,0,193,0,242,0,228,0,193,0,94,0, +206,255,78,255,248,254,75,255,47,0,159,0,170,0,225,0,187,0,77,0,158,0,45,1,243,0,195,0,60,1,41,1, +105,0,146,0,144,1,229,1,142,1,81,1,98,1,142,1,74,1,247,0,159,1,116,2,157,2,5,3,28,3,24,2, +187,1,19,2,108,1,211,0,28,1,63,1,165,1,42,2,163,1,103,1,99,2,253,2,164,2,228,1,119,1,54,2, +193,2,237,1,189,1,74,2,150,1,18,1,20,2,129,2,249,1,13,2,58,2,181,1,36,1,197,0,180,0,136,1, +118,2,5,2,56,1,138,1,187,1,63,1,106,1,48,1,203,255,144,255,28,0,26,255,57,254,205,254,248,254,222,254, +60,255,214,254,6,254,0,254,96,254,9,255,174,255,33,255,231,253,191,253,247,254,26,0,114,255,182,253,49,253,183,253, +207,253,162,253,111,253,5,253,222,252,10,253,9,253,230,252,236,252,35,253,59,253,60,253,188,253,65,254,29,254,71,254, +218,254,168,254,108,254,1,255,115,255,192,255,99,0,182,0,248,0,141,1,71,1,238,255,220,254,162,254,48,255,78,0, +246,0,122,0,154,255,51,255,95,255,32,0,20,1,52,1,161,0,144,0,195,0,113,0,96,0,245,0,91,1,126,1, +236,1,168,2,39,3,209,2,56,2,69,2,70,2,228,1,5,2,30,2,95,1,190,0,187,0,203,0,243,0,77,1, +166,1,178,1,101,1,181,1,182,2,212,2,61,2,50,2,249,1,86,1,146,1,58,2,37,2,217,1,20,2,169,2, +249,2,115,2,87,1,127,0,145,0,129,1,75,2,21,2,99,1,49,1,156,1,152,1,193,0,203,0,58,2,187,2, +197,1,82,1,90,1,124,0,137,255,151,0,252,2,18,3,200,0,109,0,132,1,123,0,153,255,216,0,26,1,153,0, +138,1,19,2,169,1,127,1,131,0,157,255,153,0,107,1,30,1,243,0,39,0,35,255,122,255,99,255,251,253,197,253, +242,254,202,255,132,0,37,1,208,0,69,0,79,0,226,255,238,254,46,255,121,0,20,1,4,1,165,0,169,255,48,255, +176,255,181,255,117,255,192,255,188,255,152,255,186,255,250,254,11,254,69,254,128,254,102,254,208,254,5,255,206,254,187,254, +129,254,173,254,75,255,195,254,229,253,165,254,206,255,6,0,194,255,13,255,98,254,118,254,110,254,229,253,130,253,26,253, +11,253,35,254,228,254,179,253,49,252,94,252,87,253,157,253,137,253,133,253,211,252,204,251,213,251,192,252,112,253,179,253, +147,253,54,253,28,253,41,253,23,253,59,253,96,253,56,253,151,253,182,254,83,255,77,255,4,0,97,1,161,1,164,0, +78,0,206,0,80,0,246,254,136,254,168,254,59,254,77,254,91,255,181,255,1,255,226,254,159,255,215,255,1,255,7,254, +110,253,135,252,74,251,9,251,201,251,189,251,156,250,19,250,136,250,156,250,232,249,162,249,69,250,227,250,51,251,231,251, +253,252,204,253,254,253,213,253,74,254,154,255,129,0,187,0,89,1,30,2,90,2,127,2,131,2,10,2,250,1,239,2, +23,4,164,4,149,4,100,4,107,4,127,4,67,4,161,3,60,3,226,3,239,4,57,5,31,5,22,5,176,4,96,4, +126,4,46,4,159,3,180,3,3,4,17,4,62,4,152,4,214,4,153,4,204,3,28,3,235,2,209,2,177,2,165,2, +189,2,22,3,23,3,37,2,20,1,217,0,247,0,169,0,67,0,95,0,137,0,88,0,156,0,247,0,252,255,251,254, +173,255,57,0,126,255,88,255,248,255,25,0,49,0,150,0,133,0,14,0,188,255,163,255,176,255,156,255,77,255,31,255, +66,255,140,255,188,255,175,255,134,255,103,255,157,255,60,0,81,0,101,255,148,254,68,254,234,253,240,253,98,254,105,254, +61,254,39,254,184,253,116,253,147,253,30,253,159,252,130,253,202,254,157,254,139,253,68,253,204,253,1,254,182,253,89,253, +11,253,105,253,173,254,76,255,124,254,160,253,160,253,56,254,230,254,228,254,109,254,162,254,252,254,124,254,237,253,254,253, +55,254,86,254,46,254,157,253,248,252,178,252,53,253,19,254,14,254,153,253,247,253,88,254,2,254,230,253,254,253,243,253, +88,254,137,254,207,253,119,253,218,253,200,253,154,253,255,253,27,254,213,253,43,254,174,254,93,254,6,254,125,254,183,254, +76,254,126,254,16,255,148,254,146,253,65,253,106,253,170,253,253,253,67,254,124,254,135,254,122,254,226,254,105,255,101,255, +92,255,165,255,207,255,212,255,162,255,80,255,162,255,97,0,169,0,209,0,78,1,164,1,138,1,250,0,81,0,88,0, +238,0,61,1,10,1,118,0,243,255,6,0,17,0,151,255,120,255,204,255,148,255,81,255,29,0,234,0,94,0,167,255, +1,0,44,0,141,255,187,255,25,1,45,2,45,2,104,1,247,0,154,1,215,1,176,0,36,0,245,0,76,1,11,1, +57,1,65,1,3,1,99,1,220,1,131,1,3,1,47,1,189,1,43,2,56,2,216,1,126,1,107,1,253,0,35,0, +187,255,153,255,58,255,52,255,130,255,153,255,2,0,209,0,43,1,13,1,196,0,137,0,201,0,223,0,89,0,105,0, +240,0,198,0,243,0,255,1,35,2,52,1,189,0,221,0,197,0,67,0,250,255,116,0,228,0,187,0,13,1,215,1, +207,1,138,1,19,2,101,2,162,1,159,0,10,0,196,255,192,255,237,255,238,255,172,255,100,255,1,255,140,254,93,254, +92,254,163,254,175,255,163,0,124,0,52,0,76,0,193,255,3,255,90,255,54,0,169,0,233,0,62,1,122,1,137,1, +198,1,66,2,62,2,203,1,219,1,240,1,65,1,198,0,216,0,159,0,162,0,100,1,191,1,88,1,12,1,0,1, +4,1,254,0,153,0,34,0,64,0,149,0,155,0,117,0,29,0,160,255,149,255,42,0,199,0,229,0,161,0,132,0, +158,0,97,0,242,255,21,0,167,0,248,0,228,0,124,0,33,0,81,0,127,0,38,0,5,0,87,0,60,0,162,255, +92,255,198,255,116,0,149,0,12,0,157,255,136,255,160,255,238,255,237,255,65,255,215,254,65,255,234,255,115,0,166,0, +52,0,175,255,232,255,141,0,224,0,239,0,248,0,136,0,118,255,206,254,74,255,53,0,158,0,41,0,61,255,180,254, +134,254,37,254,21,254,160,254,231,254,214,254,221,254,191,254,177,254,15,255,41,255,185,254,110,254,103,254,95,254,101,254, +146,254,205,254,216,254,201,254,20,255,111,255,61,255,239,254,23,255,85,255,58,255,253,254,20,255,87,255,49,255,254,254, +96,255,193,255,195,255,208,255,149,255,60,255,215,255,187,0,187,0,119,0,70,0,219,255,209,255,23,0,219,255,156,255, +200,255,181,255,96,255,56,255,45,255,48,255,53,255,61,255,110,255,106,255,0,255,248,254,121,255,221,255,51,0,157,0, +165,0,104,0,114,0,166,0,171,0,139,0,138,0,205,0,17,1,254,0,188,0,128,0,40,0,242,255,87,0,199,0, +147,0,102,0,215,0,58,1,51,1,10,1,191,0,190,0,110,1,238,1,177,1,133,1,204,1,58,2,142,2,83,2, +154,1,41,1,36,1,93,1,222,1,43,2,236,1,204,1,41,2,106,2,17,2,117,1,75,1,84,1,191,0,43,0, +129,0,214,0,139,0,127,0,157,0,56,0,18,0,120,0,18,0,222,254,174,254,178,255,73,0,68,0,160,0,16,1, +214,0,95,0,43,0,18,0,17,0,86,0,174,0,150,0,252,255,174,255,22,0,115,0,88,0,44,0,49,0,132,0, +229,0,222,0,205,0,0,1,230,0,199,0,30,1,15,1,131,0,147,0,214,0,111,0,27,0,89,0,88,0,216,255, +158,255,249,255,57,0,0,0,217,255,241,255,16,0,67,0,26,0,119,255,126,255,50,0,77,0,247,255,205,255,133,255, +111,255,172,255,99,255,6,255,137,255,42,0,55,0,27,0,212,255,79,255,9,255,77,255,2,0,129,0,28,0,154,255, +237,255,83,0,32,0,238,255,198,255,87,255,105,255,115,0,50,1,162,0,221,255,72,0,38,1,34,1,219,0,59,1, +87,1,161,0,67,0,156,0,185,0,149,0,210,0,55,1,62,1,227,0,128,0,126,0,177,0,127,0,237,255,100,255, +17,255,39,255,122,255,71,255,204,254,252,254,58,255,127,254,184,253,200,253,202,253,99,253,112,253,234,253,8,254,175,253, +119,253,0,254,176,254,45,254,86,253,10,254,38,255,33,255,65,255,212,255,106,255,171,254,171,254,154,254,86,254,137,254, +237,254,93,255,220,255,228,255,166,255,198,255,24,0,57,0,40,0,107,0,71,1,160,1,249,0,216,0,146,1,208,1, +139,1,43,1,142,0,90,0,151,0,57,0,193,255,3,0,238,255,27,255,221,254,103,255,107,255,171,254,97,254,8,255, +195,255,51,0,144,0,145,0,68,0,65,0,115,0,151,0,179,0,140,0,105,0,225,0,97,1,50,1,210,0,151,0, +6,0,17,255,157,254,51,255,214,255,160,255,59,255,30,255,236,254,30,255,240,255,82,0,7,0,202,255,174,255,182,255, +0,0,242,255,73,255,3,255,158,255,11,0,146,255,39,255,94,255,89,255,233,254,194,254,194,254,221,254,127,255,26,0, +79,0,177,0,201,0,250,255,78,255,76,255,14,255,145,254,158,254,11,255,58,255,48,255,20,255,221,254,220,254,79,255, +143,255,61,255,243,254,189,254,96,254,136,254,60,255,121,255,66,255,55,255,53,255,26,255,33,255,93,255,212,255,88,0, +121,0,26,0,158,255,100,255,49,255,163,254,64,254,161,254,46,255,75,255,59,255,76,255,139,255,228,255,61,0,164,0, +191,0,50,0,150,255,101,255,138,255,27,0,115,0,251,255,255,255,230,0,3,1,54,0,193,255,150,255,91,255,3,255, +155,254,226,254,138,255,51,255,145,254,205,254,234,254,154,254,214,254,64,255,81,255,137,255,241,255,79,0,161,0,136,0, +24,0,24,0,118,0,115,0,58,0,97,0,154,0,169,0,5,1,48,1,95,0,210,255,96,0,148,0,52,0,88,0, +63,0,147,255,203,255,177,0,224,0,92,0,89,255,51,254,21,254,222,254,99,255,138,255,124,255,65,255,130,255,49,0, +60,0,143,255,29,255,115,255,60,0,166,0,67,0,164,255,147,255,3,0,100,0,141,0,163,0,156,0,172,0,20,1, +68,1,204,0,105,0,126,0,148,0,201,0,64,1,131,1,169,1,245,1,211,1,22,1,88,0,194,255,81,255,76,255, +117,255,133,255,0,0,252,0,106,1,184,0,208,255,199,255,104,0,175,0,89,0,3,0,225,255,175,255,134,255,160,255, +194,255,157,255,66,255,246,254,230,254,25,255,106,255,148,255,147,255,156,255,93,255,181,254,165,254,86,255,99,255,201,254, +196,254,249,254,208,254,229,254,24,255,231,254,203,254,203,254,146,254,161,254,248,254,232,254,153,254,131,254,146,254,148,254, +117,254,87,254,93,254,114,254,207,254,108,255,169,255,206,255,22,0,111,255,124,254,56,255,114,0,38,0,181,255,20,0, +207,255,38,255,144,255,89,0,122,0,111,0,104,0,29,0,250,255,69,0,179,0,24,1,9,1,64,0,203,255,42,0, +19,0,133,255,4,0,230,0,187,0,133,0,28,1,113,1,64,1,35,1,242,0,157,0,67,0,141,255,248,254,145,255, +204,0,126,1,170,1,134,1,7,1,205,0,4,1,230,0,151,0,174,0,160,0,92,0,140,0,156,0,33,0,16,0, +68,0,248,255,210,255,10,0,227,255,208,255,71,0,155,0,199,0,16,1,208,0,24,0,17,0,245,0,177,1,107,1, +92,0,133,255,148,255,24,0,43,0,221,255,242,255,97,0,146,0,121,0,42,0,223,255,79,0,57,1,104,1,242,0, +180,0,162,0,127,0,98,0,60,0,8,0,255,255,120,0,37,1,236,0,213,255,54,255,76,255,178,255,132,0,13,1, +177,0,41,0,164,255,21,255,66,255,230,255,28,0,28,0,23,0,5,0,16,0,204,255,107,255,143,255,85,255,185,254, +85,255,108,0,109,0,42,0,21,0,179,255,159,255,214,255,174,255,161,255,188,255,119,255,41,255,218,254,90,254,94,254, +218,254,228,254,160,254,212,254,110,255,134,255,191,254,67,254,173,254,223,254,148,254,140,254,108,254,29,254,113,254,2,255, +222,254,111,254,124,254,252,254,86,255,84,255,127,255,218,255,184,255,61,255,5,255,36,255,99,255,90,255,20,255,93,255, +244,255,215,255,112,255,129,255,166,255,154,255,113,255,38,255,21,255,82,255,119,255,159,255,194,255,137,255,127,255,14,0, +121,0,116,0,114,0,133,0,125,0,56,0,178,255,94,255,135,255,207,255,249,255,22,0,33,0,45,0,36,0,226,255, +228,255,72,0,62,0,217,255,12,0,115,0,62,0,240,255,247,255,241,255,233,255,243,255,201,255,193,255,11,0,23,0, +20,0,126,0,163,0,10,0,114,255,80,255,130,255,213,255,204,255,89,255,83,255,213,255,11,0,9,0,133,0,255,0, +144,0,205,255,229,255,169,0,23,1,16,1,28,1,45,1,232,0,158,0,204,0,18,1,227,0,129,0,70,0,22,0, +255,255,32,0,42,0,4,0,5,0,3,0,119,255,210,254,16,255,235,255,76,0,65,0,140,0,253,0,8,1,210,0, +194,0,3,1,94,1,85,1,216,0,36,0,122,255,125,255,47,0,91,0,237,255,242,255,250,255,133,255,155,255,87,0, +136,0,9,0,133,255,124,255,23,0,154,0,126,0,111,0,127,0,42,0,7,0,98,0,120,0,89,0,77,0,216,255, +107,255,231,255,125,0,27,0,70,255,1,255,146,255,77,0,80,0,25,0,146,0,13,1,247,0,31,1,94,1,226,0, +158,0,118,1,116,2,155,2,174,1,90,0,92,0,175,1,246,1,222,0,72,0,133,0,23,1,62,2,51,3,150,2, +206,0,156,255,249,255,255,0,225,0,132,255,238,254,48,0,124,1,19,1,95,0,43,1,16,2,152,1,241,0,180,0, +58,0,8,0,77,0,47,0,224,255,139,255,236,254,31,255,82,0,172,0,69,0,122,0,171,0,128,0,188,0,191,0, +77,0,200,0,225,1,240,1,45,1,177,0,130,0,55,0,196,255,151,255,2,0,76,0,159,255,157,254,71,254,125,254, +168,254,177,254,189,254,203,254,213,254,243,254,48,255,95,255,69,255,217,254,114,254,180,254,154,255,14,0,110,255,133,254, +46,254,85,254,110,254,78,254,159,254,176,255,104,0,71,0,53,0,27,0,107,255,60,255,15,0,174,0,251,0,167,1, +12,2,116,1,98,0,224,255,132,0,84,1,12,1,119,0,151,0,207,0,27,1,214,1,224,1,215,0,0,0,183,255, +172,255,39,0,4,1,213,1,123,2,94,2,124,1,8,1,254,0,123,0,66,0,210,0,212,0,85,0,164,0,223,0, +3,0,101,255,142,255,159,255,243,255,147,0,79,0,189,255,15,0,64,0,137,255,11,255,83,255,181,255,191,255,132,255, +95,255,123,255,163,255,191,255,188,255,139,255,111,255,116,255,144,255,253,255,65,0,3,0,39,0,183,0,177,0,147,0, +252,0,26,1,200,0,122,0,243,255,165,255,2,0,36,0,20,0,234,0,220,1,104,1,33,0,104,255,64,255,35,255, +97,255,33,0,107,0,221,255,104,255,112,255,146,255,167,255,105,255,33,255,147,255,208,255,184,254,181,253,194,253,184,253, +115,253,188,253,52,254,139,254,242,254,48,255,99,255,163,255,78,255,151,254,145,254,48,255,135,255,67,255,198,254,113,254, +63,254,88,254,254,254,97,255,228,254,192,254,121,255,155,255,244,254,194,254,250,254,38,255,137,255,230,255,242,255,38,0, +119,0,100,0,39,0,239,255,88,255,148,254,86,254,150,254,211,254,27,255,134,255,116,255,213,254,164,254,224,254,168,254, +128,254,20,255,138,255,152,255,234,255,249,255,80,255,231,254,252,254,6,255,49,255,70,255,212,254,200,254,102,255,105,255, +214,254,163,254,143,254,181,254,149,255,0,0,87,255,8,255,89,255,82,255,72,255,130,255,111,255,110,255,169,255,55,255, +154,254,243,254,79,255,185,254,62,254,143,254,248,254,50,255,107,255,89,255,249,254,231,254,34,255,38,255,52,255,135,255, +96,255,221,254,45,255,234,255,234,255,204,255,73,0,155,0,82,0,214,255,108,255,95,255,179,255,240,255,10,0,36,0, +214,255,39,255,214,254,20,255,44,255,186,254,119,254,245,254,76,255,213,254,111,254,89,254,0,254,11,254,196,254,214,254, +76,254,132,254,240,254,187,254,222,254,116,255,86,255,1,255,83,255,99,255,233,254,44,255,39,0,175,0,199,0,225,0, +195,0,182,0,65,1,199,1,156,1,79,1,135,1,2,2,82,2,121,2,135,2,126,2,138,2,175,2,183,2,200,2, +247,2,192,2,10,2,134,1,121,1,195,1,49,2,43,2,201,1,227,1,17,2,156,1,101,1,196,1,214,1,226,1, +90,2,80,2,165,1,76,1,62,1,37,1,46,1,49,1,14,1,0,1,214,0,105,0,61,0,152,0,232,0,156,0, +27,0,52,0,215,0,66,1,14,1,82,0,145,255,88,255,160,255,43,0,208,0,252,0,158,0,115,0,137,0,151,0, +239,0,59,1,249,0,185,0,172,0,103,0,52,0,63,0,93,0,135,0,83,0,70,0,116,1,245,1,248,255,140,254, +170,255,129,0,21,0,235,255,129,255,176,254,212,254,47,255,172,254,103,254,228,254,107,255,238,255,81,0,15,0,111,255, +59,255,176,255,44,0,3,0,159,255,183,255,10,0,23,0,209,255,94,255,33,255,88,255,182,255,206,255,58,255,58,254, +1,254,212,254,136,255,180,255,177,255,104,255,23,255,63,255,139,255,149,255,80,255,205,254,192,254,112,255,164,255,230,254, +129,254,227,254,73,255,151,255,211,255,145,255,53,255,89,255,144,255,182,255,76,0,171,0,27,0,211,255,126,0,215,0, +151,0,163,0,203,0,214,0,25,1,49,1,11,1,62,1,91,1,24,1,56,1,129,1,25,1,65,0,115,255,16,255, +94,255,135,255,42,255,106,255,66,0,153,0,188,0,246,0,206,0,199,0,10,1,157,0,252,255,96,0,23,1,35,1, +231,0,124,0,169,255,54,255,175,255,59,0,90,0,136,0,155,0,53,0,21,0,137,0,172,0,108,0,106,0,118,0, +89,0,60,0,8,0,20,0,155,0,226,0,209,0,214,0,104,0,180,255,226,255,129,0,176,0,247,0,125,1,161,1, +120,1,72,1,45,1,72,1,83,1,93,1,177,1,141,1,173,0,96,0,229,0,77,1,184,1,47,2,248,1,117,1, +131,1,201,1,192,1,179,1,242,1,37,2,213,1,107,1,145,1,205,1,136,1,94,1,154,1,147,1,51,1,249,0, +246,0,228,0,167,0,162,0,14,1,20,1,80,0,246,255,124,0,198,0,164,0,235,0,108,1,127,1,62,1,7,1, +10,1,63,1,79,1,29,1,236,0,219,0,225,0,236,0,195,0,122,0,130,0,233,0,89,1,179,1,239,1,217,1, +86,1,188,0,132,0,149,0,112,0,80,0,173,0,214,0,54,0,200,255,69,0,212,0,197,0,66,0,139,255,21,255, +41,255,70,255,53,255,70,255,66,255,10,255,57,255,201,255,223,255,100,255,41,255,142,255,249,255,186,255,14,255,190,254, +248,254,65,255,85,255,76,255,55,255,249,254,175,254,177,254,244,254,39,255,85,255,133,255,140,255,156,255,172,255,26,255, +63,254,98,254,106,255,254,255,193,255,119,255,127,255,134,255,116,255,153,255,212,255,176,255,90,255,68,255,87,255,99,255, +108,255,96,255,88,255,166,255,7,0,242,255,155,255,142,255,157,255,124,255,147,255,13,0,45,0,189,255,132,255,172,255, +146,255,53,255,14,255,26,255,35,255,60,255,120,255,129,255,10,255,147,254,188,254,58,255,146,255,181,255,141,255,111,255, +221,255,54,0,225,255,163,255,213,255,221,255,218,255,248,255,211,255,196,255,10,0,231,255,114,255,132,255,198,255,175,255, +190,255,249,255,194,255,90,255,69,255,37,255,235,254,63,255,227,255,44,0,139,0,31,1,238,0,42,0,251,255,40,0, +21,0,19,0,43,0,33,0,73,0,169,0,167,0,50,0,2,0,87,0,96,0,234,255,11,0,125,0,247,255,88,255, +166,255,158,255,34,255,100,255,151,255,47,255,116,255,8,0,190,255,106,255,167,255,211,255,245,255,50,0,57,0,2,0, +140,255,46,255,135,255,19,0,0,0,174,255,127,255,101,255,135,255,170,255,130,255,119,255,156,255,187,255,25,0,108,0, +33,0,185,255,169,255,148,255,146,255,230,255,44,0,73,0,106,0,36,0,75,255,163,254,167,254,235,254,42,255,138,255, +204,255,146,255,98,255,192,255,18,0,230,255,187,255,208,255,231,255,36,0,145,0,169,0,53,0,207,255,244,255,45,0, +8,0,243,255,30,0,249,255,163,255,178,255,8,0,66,0,46,0,198,255,150,255,182,255,124,255,63,255,131,255,134,255, +69,255,121,255,115,255,29,255,158,255,76,0,6,0,220,255,70,0,33,0,142,255,120,255,156,255,135,255,111,255,103,255, +51,255,1,255,87,255,244,255,12,0,205,255,186,255,124,255,31,255,81,255,218,255,23,0,8,0,221,255,187,255,195,255, +188,255,123,255,90,255,155,255,238,255,14,0,29,0,2,0,164,255,174,255,1,0,126,255,39,255,94,0,230,0,115,255, +30,255,121,0,63,0,173,254,140,254,110,255,190,255,201,255,243,255,247,255,199,255,128,255,83,255,53,255,234,254,217,254, +92,255,215,255,218,255,190,255,155,255,98,255,123,255,20,0,144,0,119,0,74,0,113,0,97,0,221,255,148,255,157,255, +160,255,7,0,182,0,128,0,170,255,144,255,225,255,199,255,195,255,27,0,103,0,164,0,160,0,71,0,46,0,33,0, +165,255,136,255,250,255,254,255,226,255,46,0,252,255,96,255,136,255,21,0,29,0,238,255,186,255,56,255,206,254,0,255, +96,255,95,255,41,255,0,255,222,254,252,254,111,255,165,255,115,255,98,255,146,255,195,255,210,255,139,255,16,255,5,255, +114,255,190,255,170,255,102,255,39,255,26,255,87,255,198,255,13,0,235,255,169,255,188,255,29,0,86,0,33,0,198,255, +140,255,74,255,255,254,10,255,112,255,194,255,228,255,21,0,79,0,52,0,235,255,254,255,33,0,228,255,208,255,9,0, +251,255,205,255,184,255,110,255,75,255,145,255,154,255,106,255,121,255,128,255,111,255,136,255,139,255,132,255,217,255,54,0, +38,0,236,255,5,0,97,0,120,0,73,0,99,0,173,0,169,0,125,0,103,0,77,0,57,0,65,0,97,0,117,0, +80,0,53,0,103,0,114,0,37,0,237,255,217,255,227,255,20,0,14,0,236,255,76,0,219,0,1,1,8,1,9,1, +154,0,15,0,27,0,150,0,212,0,156,0,55,0,23,0,120,0,213,0,175,0,132,0,144,0,58,0,220,255,15,0, +18,0,180,255,224,255,70,0,87,0,155,0,201,0,66,0,235,255,73,0,133,0,90,0,49,0,29,0,34,0,46,0, +252,255,163,255,117,255,135,255,188,255,229,255,254,255,53,0,95,0,42,0,228,255,28,0,134,0,124,0,58,0,57,0, +39,0,190,255,149,255,14,0,186,0,36,1,17,1,91,0,109,255,34,255,131,255,167,255,39,255,123,254,30,254,105,254, +58,255,177,255,164,255,247,255,180,0,35,1,76,1,122,1,107,1,211,0,198,255,231,254,182,254,186,254,157,254,204,254, +42,255,50,255,65,255,211,255,136,0,209,0,166,0,105,0,94,0,119,0,139,0,92,0,230,255,193,255,21,0,79,0, +103,0,148,0,138,0,85,0,85,0,122,0,165,0,210,0,225,0,193,0,104,0,11,0,63,0,220,0,14,1,206,0, +182,0,245,0,65,1,47,1,189,0,83,0,2,0,209,255,254,255,48,0,254,255,221,255,5,0,15,0,17,0,96,0, +207,0,29,1,57,1,13,1,180,0,154,0,206,0,202,0,159,0,225,0,21,1,183,0,182,0,41,1,211,0,73,0, +212,0,137,1,140,1,165,1,204,1,117,1,56,1,109,1,139,1,122,1,101,1,58,1,10,1,209,0,122,0,62,0, +53,0,48,0,78,0,151,0,180,0,160,0,154,0,181,0,241,0,0,1,149,0,60,0,99,0,112,0,51,0,45,0, +37,0,207,255,187,255,19,0,60,0,22,0,5,0,19,0,247,255,197,255,218,255,251,255,209,255,228,255,102,0,149,0, +109,0,98,0,49,0,228,255,225,255,196,255,133,255,187,255,244,255,176,255,161,255,230,255,199,255,103,255,63,255,53,255, +61,255,103,255,126,255,119,255,131,255,164,255,163,255,131,255,145,255,188,255,145,255,67,255,122,255,247,255,8,0,216,255, +200,255,194,255,203,255,224,255,184,255,135,255,167,255,181,255,107,255,64,255,96,255,122,255,128,255,136,255,143,255,145,255, +135,255,128,255,143,255,134,255,104,255,147,255,239,255,249,255,176,255,127,255,109,255,47,255,251,254,51,255,103,255,21,255, +241,254,118,255,204,255,161,255,159,255,195,255,184,255,197,255,254,255,25,0,22,0,243,255,192,255,194,255,215,255,197,255, +203,255,233,255,244,255,34,0,67,0,243,255,202,255,57,0,101,0,222,255,114,255,139,255,173,255,155,255,150,255,181,255, +205,255,216,255,215,255,152,255,99,255,185,255,29,0,229,255,167,255,203,255,186,255,111,255,113,255,143,255,137,255,158,255, +224,255,26,0,8,0,203,255,240,255,40,0,127,255,164,254,247,254,243,255,114,0,147,0,157,0,103,0,40,0,21,0, +15,0,7,0,3,0,45,0,138,0,126,0,209,255,106,255,154,255,178,255,179,255,233,255,213,255,120,255,161,255,46,0, +87,0,40,0,252,255,208,255,161,255,137,255,163,255,213,255,201,255,146,255,147,255,172,255,162,255,150,255,139,255,131,255, +171,255,211,255,218,255,230,255,216,255,178,255,216,255,22,0,254,255,230,255,20,0,48,0,28,0,253,255,203,255,138,255, +105,255,120,255,148,255,140,255,109,255,120,255,192,255,230,255,179,255,133,255,159,255,200,255,230,255,253,255,214,255,139,255, +105,255,66,255,19,255,45,255,97,255,115,255,142,255,158,255,149,255,160,255,128,255,68,255,164,255,77,0,54,0,194,255, +230,255,66,0,56,0,38,0,68,0,45,0,4,0,60,0,116,0,70,0,42,0,86,0,76,0,8,0,0,0,61,0, +85,0,28,0,1,0,78,0,148,0,126,0,73,0,37,0,22,0,12,0,224,255,206,255,18,0,57,0,14,0,3,0, +34,0,30,0,2,0,242,255,248,255,4,0,223,255,173,255,193,255,249,255,8,0,2,0,26,0,78,0,106,0,71,0, +3,0,229,255,2,0,29,0,22,0,36,0,51,0,26,0,73,0,189,0,163,0,58,0,99,0,186,0,183,0,169,0, +153,0,101,0,67,0,44,0,35,0,61,0,65,0,71,0,147,0,198,0,154,0,100,0,78,0,68,0,26,0,204,255, +210,255,54,0,84,0,46,0,65,0,105,0,122,0,131,0,79,0,2,0,33,0,119,0,111,0,35,0,237,255,202,255, +188,255,216,255,239,255,229,255,233,255,250,255,8,0,36,0,47,0,58,0,128,0,145,0,43,0,8,0,78,0,107,0, +126,0,177,0,169,0,101,0,22,0,217,255,235,255,17,0,242,255,224,255,2,0,12,0,0,0,3,0,40,0,97,0, +80,0,8,0,253,255,245,255,182,255,183,255,252,255,21,0,230,255,138,255,85,255,119,255,135,255,104,255,118,255,159,255, +172,255,179,255,187,255,200,255,209,255,192,255,205,255,247,255,222,255,189,255,240,255,8,0,201,255,138,255,102,255,116,255, +198,255,201,255,65,255,30,255,157,255,182,255,138,255,14,0,85,0,88,255,161,254,47,255,165,255,161,255,240,255,49,0, +2,0,239,255,219,255,115,255,60,255,110,255,138,255,116,255,120,255,133,255,122,255,161,255,248,255,253,255,225,255,11,0, +7,0,223,255,30,0,79,0,49,0,86,0,115,0,51,0,50,0,76,0,0,0,220,255,31,0,55,0,16,0,224,255, +181,255,184,255,240,255,54,0,96,0,76,0,50,0,75,0,105,0,148,0,213,0,216,0,172,0,182,0,198,0,147,0, +82,0,71,0,120,0,179,0,200,0,197,0,183,0,157,0,160,0,217,0,253,0,200,0,113,0,77,0,57,0,34,0, +72,0,100,0,33,0,20,0,104,0,116,0,76,0,94,0,113,0,128,0,169,0,150,0,75,0,50,0,70,0,87,0, +108,0,146,0,150,0,62,0,3,0,71,0,61,0,187,255,235,255,153,0,144,0,56,0,76,0,87,0,66,0,108,0, +140,0,96,0,68,0,96,0,102,0,58,0,16,0,246,255,0,0,98,0,196,0,195,0,195,0,225,0,156,0,51,0, +50,0,84,0,65,0,18,0,2,0,46,0,72,0,12,0,235,255,36,0,83,0,59,0,222,255,127,255,162,255,20,0, +40,0,251,255,242,255,247,255,255,255,18,0,0,0,244,255,93,0,252,0,35,1,202,0,100,0,11,0,208,255,224,255, +244,255,188,255,68,255,169,254,91,254,187,254,17,255,235,254,12,255,105,255,75,255,61,255,188,255,20,0,245,255,188,255, +142,255,123,255,121,255,93,255,68,255,67,255,41,255,14,255,54,255,112,255,93,255,62,255,135,255,229,255,227,255,223,255, +11,0,9,0,245,255,18,0,20,0,213,255,156,255,143,255,169,255,169,255,115,255,110,255,192,255,3,0,5,0,223,255, +172,255,153,255,151,255,127,255,130,255,183,255,216,255,194,255,157,255,148,255,177,255,227,255,38,0,71,0,20,0,253,255, +78,0,119,0,57,0,13,0,5,0,244,255,23,0,93,0,70,0,239,255,235,255,40,0,47,0,15,0,243,255,198,255, +176,255,219,255,250,255,7,0,56,0,75,0,38,0,31,0,38,0,5,0,232,255,244,255,33,0,80,0,70,0,4,0, +184,255,141,255,208,255,102,0,172,0,127,0,62,0,10,0,14,0,94,0,139,0,104,0,67,0,71,0,110,0,134,0, +78,0,27,0,90,0,154,0,91,0,251,255,225,255,220,255,211,255,242,255,7,0,200,255,148,255,204,255,7,0,233,255, +189,255,185,255,203,255,244,255,32,0,32,0,14,0,28,0,49,0,10,0,175,255,115,255,112,255,92,255,38,255,60,255, +194,255,40,0,44,0,36,0,20,0,229,255,254,255,44,0,202,255,111,255,198,255,252,255,166,255,155,255,231,255,235,255, +206,255,214,255,204,255,168,255,184,255,8,0,56,0,255,255,175,255,166,255,180,255,181,255,208,255,238,255,233,255,230,255, +250,255,240,255,199,255,209,255,25,0,48,0,244,255,190,255,173,255,169,255,186,255,202,255,200,255,228,255,40,0,81,0, +42,0,218,255,208,255,16,0,12,0,197,255,185,255,187,255,143,255,149,255,211,255,252,255,31,0,32,0,224,255,207,255, +7,0,20,0,254,255,250,255,211,255,167,255,202,255,6,0,25,0,16,0,243,255,231,255,15,0,23,0,228,255,221,255, +249,255,210,255,170,255,220,255,39,0,57,0,41,0,22,0,18,0,42,0,51,0,254,255,191,255,200,255,253,255,29,0, +51,0,69,0,41,0,246,255,230,255,13,0,102,0,147,0,18,0,81,255,45,255,137,255,228,255,61,0,120,0,94,0, +56,0,60,0,49,0,17,0,24,0,73,0,90,0,18,0,178,255,167,255,231,255,29,0,40,0,7,0,228,255,248,255, +33,0,51,0,68,0,72,0,51,0,58,0,64,0,3,0,220,255,22,0,92,0,99,0,58,0,1,0,239,255,12,0, +36,0,43,0,31,0,237,255,220,255,21,0,46,0,20,0,34,0,42,0,237,255,214,255,9,0,8,0,191,255,160,255, +198,255,223,255,187,255,137,255,142,255,183,255,217,255,20,0,87,0,42,0,168,255,134,255,210,255,247,255,206,255,161,255, +169,255,223,255,247,255,199,255,141,255,130,255,164,255,204,255,201,255,162,255,140,255,133,255,147,255,206,255,233,255,198,255, +213,255,16,0,6,0,211,255,190,255,199,255,234,255,6,0,245,255,224,255,231,255,246,255,6,0,3,0,239,255,255,255, +32,0,13,0,230,255,231,255,255,255,14,0,16,0,252,255,201,255,164,255,202,255,9,0,249,255,187,255,171,255,195,255, +235,255,19,0,17,0,250,255,254,255,3,0,249,255,242,255,240,255,13,0,55,0,27,0,217,255,213,255,224,255,199,255, +236,255,71,0,78,0,32,0,51,0,77,0,42,0,6,0,230,255,173,255,163,255,216,255,246,255,253,255,6,0,229,255, +191,255,225,255,20,0,12,0,245,255,0,0,8,0,239,255,236,255,22,0,30,0,241,255,229,255,3,0,8,0,236,255, +213,255,234,255,27,0,39,0,26,0,33,0,23,0,4,0,35,0,63,0,36,0,14,0,32,0,57,0,54,0,24,0, +19,0,58,0,79,0,71,0,57,0,20,0,245,255,254,255,6,0,1,0,246,255,204,255,178,255,207,255,222,255,212,255, +228,255,234,255,216,255,226,255,244,255,231,255,225,255,245,255,247,255,226,255,210,255,202,255,204,255,224,255,226,255,199,255, +198,255,235,255,12,0,48,0,74,0,16,0,172,255,147,255,216,255,51,0,79,0,31,0,1,0,20,0,21,0,3,0, +1,0,21,0,81,0,135,0,127,0,125,0,146,0,107,0,65,0,82,0,48,0,230,255,250,255,67,0,91,0,112,0, +153,0,135,0,59,0,16,0,27,0,38,0,29,0,17,0,252,255,235,255,255,255,46,0,70,0,40,0,242,255,236,255, +11,0,4,0,236,255,245,255,1,0,2,0,26,0,54,0,58,0,47,0,24,0,9,0,25,0,35,0,18,0,24,0, +60,0,60,0,31,0,54,0,114,0,113,0,61,0,34,0,24,0,2,0,238,255,225,255,226,255,227,255,205,255,209,255, +10,0,30,0,254,255,242,255,224,255,203,255,6,0,76,0,41,0,248,255,0,0,242,255,207,255,231,255,37,0,67,0, +64,0,57,0,53,0,43,0,39,0,47,0,55,0,75,0,109,0,97,0,24,0,225,255,214,255,222,255,18,0,82,0, +62,0,247,255,230,255,254,255,9,0,20,0,28,0,38,0,69,0,81,0,56,0,47,0,37,0,12,0,40,0,81,0, +51,0,34,0,69,0,49,0,3,0,24,0,38,0,251,255,230,255,245,255,238,255,203,255,180,255,199,255,245,255,24,0, +30,0,251,255,204,255,208,255,232,255,224,255,237,255,24,0,18,0,239,255,227,255,198,255,169,255,187,255,192,255,169,255, +184,255,224,255,233,255,230,255,230,255,210,255,190,255,194,255,206,255,203,255,190,255,168,255,151,255,174,255,227,255,1,0, +0,0,252,255,246,255,250,255,15,0,29,0,46,0,62,0,30,0,246,255,15,0,35,0,254,255,247,255,23,0,4,0, +202,255,207,255,31,0,82,0,39,0,227,255,207,255,201,255,194,255,210,255,226,255,238,255,13,0,29,0,2,0,230,255, +222,255,226,255,239,255,234,255,199,255,175,255,191,255,231,255,255,255,237,255,207,255,194,255,202,255,245,255,45,0,42,0, +12,0,38,0,70,0,33,0,244,255,251,255,13,0,255,255,245,255,22,0,62,0,51,0,10,0,244,255,218,255,190,255, +211,255,2,0,1,0,218,255,186,255,175,255,199,255,242,255,4,0,21,0,57,0,51,0,12,0,25,0,65,0,58,0, +30,0,13,0,244,255,224,255,222,255,219,255,221,255,243,255,12,0,15,0,249,255,226,255,240,255,26,0,39,0,31,0, +48,0,55,0,7,0,224,255,240,255,248,255,228,255,232,255,226,255,191,255,204,255,5,0,24,0,19,0,38,0,54,0, +34,0,249,255,235,255,15,0,43,0,39,0,55,0,64,0,24,0,252,255,5,0,0,0,5,0,40,0,39,0,249,255, +212,255,205,255,225,255,251,255,0,0,252,255,249,255,244,255,237,255,222,255,210,255,223,255,237,255,231,255,222,255,215,255, +222,255,247,255,253,255,250,255,12,0,0,0,214,255,221,255,247,255,241,255,6,0,63,0,85,0,68,0,42,0,20,0, +14,0,14,0,10,0,4,0,231,255,194,255,198,255,225,255,236,255,250,255,21,0,29,0,250,255,199,255,190,255,210,255, +185,255,154,255,206,255,20,0,18,0,244,255,237,255,234,255,233,255,240,255,232,255,217,255,218,255,228,255,234,255,250,255, +13,0,17,0,4,0,245,255,235,255,218,255,193,255,188,255,224,255,6,0,251,255,219,255,222,255,254,255,12,0,245,255, +202,255,181,255,208,255,245,255,243,255,210,255,185,255,182,255,189,255,201,255,214,255,224,255,228,255,222,255,212,255,215,255, +221,255,213,255,216,255,239,255,242,255,231,255,248,255,21,0,21,0,3,0,238,255,217,255,215,255,232,255,236,255,228,255, +243,255,12,0,250,255,213,255,210,255,216,255,210,255,222,255,232,255,222,255,242,255,17,0,8,0,1,0,6,0,242,255, +247,255,22,0,0,0,222,255,243,255,253,255,231,255,238,255,2,0,0,0,8,0,27,0,24,0,1,0,234,255,224,255, +238,255,4,0,10,0,11,0,23,0,28,0,16,0,15,0,23,0,6,0,250,255,11,0,4,0,220,255,206,255,226,255, +251,255,9,0,251,255,224,255,218,255,225,255,237,255,251,255,251,255,244,255,5,0,41,0,57,0,28,0,236,255,223,255, +237,255,233,255,235,255,244,255,221,255,211,255,240,255,245,255,233,255,6,0,32,0,15,0,1,0,7,0,14,0,13,0, +3,0,2,0,25,0,36,0,15,0,245,255,224,255,216,255,238,255,6,0,5,0,254,255,11,0,30,0,32,0,17,0, +14,0,35,0,44,0,28,0,19,0,22,0,15,0,8,0,14,0,10,0,8,0,13,0,243,255,215,255,242,255,19,0, +9,0,7,0,16,0,2,0,0,0,17,0,9,0,249,255,7,0,21,0,6,0,242,255,251,255,28,0,41,0,34,0, +42,0,41,0,10,0,0,0,20,0,31,0,43,0,58,0,44,0,23,0,35,0,57,0,65,0,66,0,70,0,75,0, +70,0,59,0,46,0,27,0,12,0,28,0,63,0,84,0,89,0,81,0,56,0,38,0,48,0,64,0,46,0,3,0, +240,255,247,255,234,255,201,255,202,255,240,255,21,0,42,0,36,0,253,255,225,255,238,255,248,255,227,255,210,255,202,255, +193,255,211,255,246,255,255,255,249,255,240,255,221,255,217,255,244,255,18,0,34,0,25,0,250,255,240,255,253,255,248,255, +241,255,250,255,1,0,29,0,69,0,59,0,12,0,242,255,243,255,6,0,28,0,40,0,51,0,41,0,248,255,233,255, +21,0,38,0,16,0,26,0,50,0,37,0,16,0,22,0,32,0,20,0,3,0,0,0,255,255,3,0,27,0,38,0, +15,0,248,255,0,0,30,0,54,0,37,0,254,255,247,255,6,0,254,255,245,255,2,0,8,0,246,255,237,255,249,255, +251,255,236,255,237,255,5,0,30,0,44,0,24,0,235,255,228,255,3,0,16,0,13,0,7,0,231,255,205,255,226,255, +5,0,17,0,21,0,51,0,86,0,73,0,40,0,50,0,43,0,244,255,238,255,253,255,184,255,134,255,196,255,3,0, +6,0,3,0,6,0,15,0,41,0,45,0,26,0,24,0,21,0,253,255,239,255,242,255,237,255,217,255,207,255,227,255, +6,0,33,0,45,0,26,0,250,255,1,0,29,0,21,0,10,0,28,0,23,0,249,255,250,255,9,0,1,0,243,255, +239,255,244,255,252,255,249,255,238,255,238,255,242,255,239,255,236,255,230,255,223,255,232,255,253,255,11,0,12,0,10,0, +22,0,37,0,18,0,244,255,255,255,29,0,41,0,43,0,39,0,25,0,22,0,23,0,15,0,14,0,23,0,32,0, +30,0,9,0,251,255,12,0,27,0,25,0,26,0,20,0,13,0,34,0,48,0,27,0,10,0,0,0,243,255,3,0, +31,0,26,0,4,0,251,255,253,255,11,0,15,0,248,255,227,255,234,255,255,255,9,0,248,255,227,255,240,255,16,0, +29,0,27,0,14,0,248,255,236,255,245,255,247,255,233,255,226,255,239,255,250,255,253,255,14,0,36,0,33,0,13,0, +245,255,227,255,231,255,244,255,250,255,248,255,234,255,221,255,247,255,36,0,54,0,36,0,8,0,10,0,45,0,47,0, +19,0,38,0,68,0,31,0,226,255,186,255,160,255,171,255,199,255,189,255,164,255,156,255,158,255,183,255,221,255,236,255, +252,255,21,0,9,0,227,255,214,255,226,255,244,255,254,255,232,255,199,255,194,255,208,255,208,255,210,255,223,255,224,255, +214,255,223,255,232,255,213,255,199,255,215,255,226,255,225,255,238,255,242,255,226,255,221,255,232,255,233,255,234,255,240,255, +238,255,238,255,241,255,232,255,230,255,242,255,236,255,218,255,229,255,252,255,249,255,237,255,244,255,5,0,17,0,13,0, +245,255,234,255,247,255,254,255,248,255,244,255,245,255,253,255,4,0,254,255,247,255,250,255,254,255,8,0,18,0,9,0, +252,255,0,0,7,0,9,0,12,0,15,0,16,0,7,0,243,255,244,255,10,0,9,0,244,255,239,255,250,255,252,255, +242,255,239,255,253,255,13,0,20,0,26,0,19,0,250,255,249,255,24,0,38,0,25,0,18,0,14,0,2,0,249,255, +252,255,7,0,17,0,20,0,10,0,254,255,250,255,1,0,7,0,16,0,28,0,28,0,14,0,1,0,247,255,239,255, +242,255,249,255,243,255,235,255,240,255,250,255,1,0,4,0,254,255,246,255,251,255,3,0,4,0,11,0,18,0,255,255, +233,255,245,255,7,0,2,0,0,0,11,0,12,0,3,0,2,0,11,0,22,0,20,0,3,0,0,0,19,0,26,0, +15,0,12,0,13,0,4,0,255,255,5,0,4,0,253,255,255,255,6,0,11,0,12,0,8,0,4,0,254,255,241,255, +236,255,248,255,0,0,249,255,244,255,249,255,0,0,255,255,248,255,244,255,246,255,245,255,243,255,247,255,1,0,7,0, +5,0,255,255,254,255,253,255,252,255,0,0,255,255,248,255,251,255,254,255,247,255,249,255,0,0,246,255,236,255,247,255, +6,0,9,0,4,0,3,0,7,0,4,0,252,255,1,0,12,0,15,0,17,0,11,0,250,255,251,255,11,0,14,0, +10,0,11,0,9,0,7,0,13,0,13,0,0,0,248,255,3,0,19,0,21,0,18,0,17,0,8,0,3,0,17,0, +22,0,11,0,18,0,34,0,25,0,7,0,3,0,9,0,15,0,16,0,12,0,14,0,23,0,26,0,21,0,17,0, +11,0,3,0,4,0,14,0,10,0,246,255,238,255,246,255,245,255,240,255,249,255,5,0,12,0,23,0,30,0,21,0, +0,0,233,255,218,255,216,255,232,255,254,255,6,0,2,0,4,0,2,0,248,255,250,255,252,255,241,255,240,255,0,0, +9,0,11,0,10,0,2,0,2,0,12,0,11,0,4,0,6,0,3,0,247,255,240,255,238,255,239,255,247,255,254,255, +0,0,251,255,243,255,246,255,8,0,19,0,15,0,6,0,4,0,8,0,9,0,0,0,253,255,7,0,14,0,10,0, +1,0,251,255,248,255,247,255,250,255,0,0,5,0,1,0,247,255,244,255,248,255,252,255,0,0,7,0,10,0,13,0, +20,0,24,0,15,0,6,0,2,0,252,255,252,255,7,0,8,0,0,0,254,255,254,255,255,255,9,0,18,0,15,0, +11,0,11,0,9,0,4,0,2,0,6,0,10,0,8,0,8,0,14,0,12,0,5,0,10,0,21,0,21,0,13,0, +10,0,16,0,20,0,9,0,255,255,9,0,16,0,12,0,9,0,4,0,250,255,250,255,2,0,2,0,255,255,252,255, +255,255,11,0,16,0,9,0,8,0,13,0,11,0,8,0,7,0,4,0,1,0,1,0,4,0,12,0,14,0,7,0, +254,255,252,255,1,0,3,0,0,0,2,0,10,0,7,0,255,255,0,0,4,0,2,0,3,0,5,0,254,255,249,255, +255,255,9,0,13,0,13,0,13,0,10,0,7,0,9,0,10,0,4,0,255,255,251,255,244,255,243,255,250,255,2,0, +7,0,9,0,6,0,6,0,5,0,255,255,251,255,253,255,253,255,252,255,250,255,250,255,1,0,4,0,252,255,250,255, +0,0,254,255,245,255,240,255,239,255,247,255,2,0,2,0,252,255,253,255,1,0,6,0,14,0,20,0,20,0,14,0, +9,0,6,0,4,0,2,0,1,0,254,255,254,255,2,0,254,255,246,255,249,255,255,255,254,255,253,255,255,255,253,255, +255,255,4,0,6,0,8,0,11,0,9,0,7,0,5,0,254,255,252,255,0,0,1,0,2,0,5,0,5,0,2,0, +2,0,3,0,1,0,253,255,255,255,3,0,1,0,0,0,4,0,3,0,0,0,2,0,0,0,251,255,254,255,1,0, +252,255,249,255,250,255,247,255,246,255,249,255,250,255,252,255,1,0,2,0,255,255,252,255,251,255,253,255,0,0,4,0, +7,0,5,0,2,0,254,255,251,255,253,255,2,0,255,255,251,255,0,0,4,0,0,0,252,255,249,255,246,255,250,255, +2,0,4,0,0,0,254,255,255,255,1,0,1,0,255,255,251,255,253,255,3,0,255,255,248,255,251,255,255,255,248,255, +243,255,246,255,252,255,0,0,249,255,239,255,241,255,249,255,250,255,253,255,254,255,250,255,254,255,8,0,9,0,8,0, +11,0,6,0,253,255,250,255,249,255,249,255,251,255,253,255,255,255,0,0,250,255,248,255,250,255,250,255,250,255,254,255, +253,255,249,255,249,255,253,255,0,0,255,255,0,0,3,0,1,0,254,255,5,0,10,0,3,0,0,0,3,0,255,255, +248,255,248,255,248,255,249,255,252,255,252,255,250,255,251,255,251,255,253,255,4,0,6,0,2,0,2,0,3,0,0,0, +255,255,255,255,250,255,248,255,253,255,254,255,245,255,244,255,250,255,250,255,247,255,246,255,246,255,248,255,253,255,254,255, +254,255,255,255,255,255,2,0,6,0,2,0,253,255,254,255,1,0,2,0,4,0,2,0,255,255,253,255,252,255,253,255, +0,0,255,255,253,255,253,255,251,255,249,255,249,255,251,255,0,0,4,0,253,255,251,255,3,0,4,0,2,0,8,0, +9,0,3,0,2,0,6,0,5,0,1,0,253,255,249,255,249,255,248,255,245,255,246,255,251,255,255,255,1,0,2,0, +2,0,0,0,255,255,1,0,2,0,3,0,6,0,6,0,255,255,255,255,5,0,3,0,252,255,251,255,248,255,243,255, +246,255,254,255,0,0,255,255,0,0,0,0,0,0,255,255,253,255,248,255,245,255,247,255,255,255,6,0,4,0,250,255, +245,255,247,255,247,255,244,255,246,255,247,255,247,255,249,255,253,255,254,255,251,255,248,255,249,255,255,255,1,0,255,255, +1,0,5,0,5,0,0,0,250,255,250,255,255,255,0,0,254,255,2,0,6,0,0,0,249,255,251,255,254,255,255,255, +3,0,8,0,7,0,0,0,251,255,250,255,250,255,252,255,1,0,1,0,252,255,248,255,249,255,255,255,2,0,252,255, +248,255,252,255,253,255,250,255,255,255,6,0,5,0,3,0,2,0,255,255,252,255,253,255,253,255,252,255,252,255,1,0, +6,0,4,0,1,0,1,0,0,0,255,255,255,255,250,255,246,255,249,255,251,255,250,255,251,255,255,255,3,0,5,0, +2,0,0,0,4,0,5,0,2,0,0,0,253,255,249,255,250,255,0,0,0,0,252,255,250,255,251,255,254,255,0,0, +255,255,254,255,255,255,254,255,254,255,255,255,253,255,252,255,0,0,5,0,5,0,3,0,2,0,2,0,0,0,254,255, +252,255,251,255,252,255,254,255,254,255,255,255,2,0,4,0,1,0,254,255,255,255,1,0,255,255,254,255,1,0,3,0, +6,0,5,0,254,255,250,255,0,0,3,0,1,0,0,0,255,255,253,255,0,0,6,0,9,0,4,0,252,255,253,255, +5,0,7,0,1,0,0,0,0,0,254,255,0,0,3,0,1,0,254,255,0,0,3,0,2,0,252,255,249,255,253,255, +0,0,0,0,3,0,4,0,254,255,252,255,0,0,1,0,2,0,6,0,7,0,4,0,1,0,255,255,0,0,2,0, +2,0,4,0,6,0,3,0,254,255,254,255,254,255,253,255,0,0,3,0,3,0,3,0,3,0,1,0,1,0,3,0, +2,0,0,0,254,255,255,255,0,0,255,255,255,255,3,0,6,0,3,0,3,0,7,0,7,0,5,0,7,0,7,0, +3,0,2,0,4,0,2,0,254,255,253,255,254,255,254,255,255,255,0,0,2,0,1,0,1,0,1,0,1,0,2,0, +3,0,2,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,1,0,4,0,2,0,2,0,4,0,3,0,0,0, +0,0,2,0,2,0,1,0,0,0,4,0,8,0,8,0,5,0,2,0,255,255,252,255,254,255,2,0,4,0,3,0, +2,0,4,0,7,0,5,0,2,0,4,0,5,0,3,0,3,0,5,0,4,0,3,0,3,0,4,0,3,0,3,0, +4,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,1,0,3,0, +3,0,4,0,4,0,3,0,2,0,4,0,5,0,3,0,3,0,5,0,3,0,2,0,5,0,8,0,4,0,1,0, +2,0,3,0,1,0,254,255,254,255,0,0,2,0,4,0,7,0,7,0,2,0,255,255,0,0,2,0,1,0,1,0, +1,0,3,0,3,0,1,0,1,0,2,0,0,0,253,255,254,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0, +1,0,0,0,0,0,1,0,1,0,2,0,0,0,255,255,254,255,255,255,254,255,254,255,1,0,3,0,2,0,2,0, +5,0,6,0,4,0,5,0,5,0,2,0,2,0,3,0,2,0,255,255,0,0,0,0,0,0,255,255,0,0,2,0, +2,0,1,0,1,0,1,0,1,0,2,0,1,0,255,255,254,255,255,255,255,255,255,255,3,0,5,0,3,0,1,0, +1,0,0,0,255,255,0,0,2,0,4,0,3,0,1,0,1,0,0,0,254,255,254,255,2,0,2,0,1,0,1,0, +255,255,252,255,254,255,1,0,1,0,0,0,255,255,1,0,2,0,0,0,255,255,0,0,0,0,1,0,4,0,2,0, +254,255,254,255,2,0,4,0,3,0,0,0,254,255,255,255,0,0,1,0,2,0,0,0,253,255,255,255,2,0,2,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,2,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255, +255,255,255,255,0,0,1,0,1,0,3,0,3,0,0,0,254,255,254,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,254,255,253,255,253,255,255,255,0,0,254,255,254,255,255,255,0,0,1,0,2,0,2,0,0,0,0,0, +1,0,1,0,0,0,254,255,254,255,254,255,254,255,253,255,254,255,0,0,0,0,0,0,1,0,0,0,1,0,2,0, +0,0,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,0,0,254,255,255,255,255,255,254,255, +255,255,0,0,0,0,254,255,254,255,254,255,0,0,0,0,255,255,254,255,255,255,255,255,0,0,2,0,3,0,1,0, +255,255,255,255,255,255,255,255,0,0,2,0,1,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,1,0,1,0,0,0,254,255,253,255,254,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,1,0, +1,0,0,0,1,0,1,0,255,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/cloth2.pcm b/src/client/sound/data/cloth2.pcm new file mode 100755 index 0000000..2a65cb0 --- /dev/null +++ b/src/client/sound/data/cloth2.pcm @@ -0,0 +1,564 @@ +unsigned char PCM_cloth2[17962] = { +1,0,0,0,2,0,0,0,68,172,0,0,13,35,0,0,255,255,1,0,0,0,252,255,253,255,0,0,255,255,254,255, +255,255,254,255,252,255,255,255,0,0,252,255,252,255,0,0,1,0,255,255,1,0,2,0,0,0,254,255,255,255,2,0, +2,0,255,255,254,255,254,255,251,255,250,255,252,255,249,255,246,255,252,255,1,0,253,255,251,255,252,255,255,255,255,255, +251,255,246,255,245,255,242,255,241,255,250,255,251,255,238,255,232,255,236,255,241,255,245,255,241,255,230,255,231,255,241,255, +243,255,243,255,238,255,230,255,241,255,251,255,233,255,225,255,241,255,237,255,227,255,236,255,235,255,219,255,219,255,214,255, +198,255,209,255,227,255,214,255,202,255,214,255,230,255,232,255,212,255,187,255,196,255,217,255,215,255,209,255,217,255,218,255, +208,255,197,255,191,255,201,255,208,255,198,255,198,255,206,255,201,255,204,255,216,255,207,255,204,255,219,255,207,255,193,255, +219,255,229,255,208,255,218,255,238,255,223,255,206,255,199,255,192,255,216,255,251,255,245,255,223,255,224,255,233,255,246,255, +251,255,231,255,224,255,248,255,2,0,244,255,232,255,215,255,192,255,185,255,185,255,180,255,173,255,174,255,197,255,220,255, +205,255,186,255,206,255,219,255,205,255,203,255,208,255,211,255,233,255,239,255,219,255,232,255,6,0,242,255,203,255,200,255, +208,255,214,255,233,255,225,255,199,255,187,255,163,255,161,255,201,255,213,255,210,255,224,255,220,255,209,255,208,255,213,255, +233,255,0,0,20,0,25,0,11,0,253,255,239,255,245,255,10,0,8,0,2,0,242,255,228,255,4,0,24,0,24,0, +53,0,61,0,21,0,227,255,233,255,27,0,12,0,4,0,60,0,59,0,38,0,38,0,11,0,29,0,53,0,28,0, +29,0,30,0,33,0,56,0,59,0,78,0,120,0,142,0,128,0,80,0,67,0,80,0,62,0,60,0,65,0,61,0, +53,0,34,0,77,0,87,0,6,0,16,0,53,0,17,0,8,0,245,255,232,255,8,0,240,255,210,255,214,255,224,255, +8,0,1,0,214,255,204,255,182,255,182,255,196,255,176,255,183,255,204,255,207,255,194,255,170,255,165,255,153,255,172,255, +233,255,197,255,149,255,185,255,190,255,196,255,210,255,203,255,238,255,236,255,203,255,221,255,208,255,210,255,244,255,210,255, +191,255,200,255,182,255,187,255,194,255,205,255,228,255,231,255,246,255,244,255,218,255,230,255,251,255,254,255,234,255,230,255, +19,0,4,0,218,255,243,255,228,255,210,255,234,255,200,255,199,255,237,255,216,255,214,255,211,255,207,255,12,0,24,0, +244,255,238,255,234,255,9,0,30,0,10,0,27,0,28,0,24,0,69,0,75,0,60,0,71,0,103,0,156,0,144,0, +115,0,152,0,188,0,235,0,0,1,227,0,13,1,74,1,94,1,123,1,148,1,204,1,228,1,211,1,36,2,54,2, +247,1,69,2,133,2,130,2,200,2,223,2,206,2,230,2,250,2,13,3,232,2,174,2,175,2,194,2,234,2,219,2, +141,2,147,2,151,2,144,2,184,2,126,2,47,2,51,2,83,2,177,2,216,2,186,2,17,3,137,3,199,3,219,3, +188,3,162,3,82,3,15,3,111,3,233,3,82,4,136,4,23,4,171,3,117,3,60,3,106,3,179,3,225,3,215,3, +71,3,251,2,15,3,176,2,27,2,150,1,33,1,216,0,202,0,4,1,225,0,134,0,164,0,69,0,131,255,119,255, +98,255,11,255,7,255,16,255,9,255,229,254,138,254,13,254,165,253,207,253,243,253,154,253,137,253,119,253,76,253,179,253, +21,254,25,254,227,253,129,253,170,253,66,254,145,254,92,254,194,253,203,253,105,254,53,254,116,253,73,253,218,253,45,254, +115,253,241,252,87,253,103,253,7,253,184,252,124,252,72,252,241,251,237,251,80,252,117,252,135,252,125,252,80,252,116,252, +70,252,176,251,177,251,234,251,131,251,28,251,178,251,58,252,150,251,139,251,146,252,151,252,43,252,130,252,68,252,90,251, +101,251,77,252,188,252,155,252,124,252,44,252,247,251,85,252,194,252,128,253,130,254,59,254,66,253,128,253,5,254,79,253, +176,252,158,253,164,254,82,254,208,253,26,254,165,254,27,255,69,255,206,254,58,254,152,254,226,255,207,0,3,1,111,1, +38,2,109,2,163,2,186,3,60,5,189,5,86,5,90,5,179,5,162,5,190,5,126,6,245,6,165,6,82,6,120,6, +181,6,204,6,52,7,15,8,72,8,133,7,66,7,243,7,76,8,89,8,27,9,219,9,156,9,198,8,218,7,15,7, +209,6,41,7,168,7,246,7,11,8,83,8,7,9,168,9,1,10,99,10,178,10,185,10,253,10,208,11,134,12,152,12, +140,12,204,12,193,12,49,12,200,11,153,11,9,11,11,10,17,9,181,8,22,9,30,9,33,8,30,7,115,6,67,5, +200,3,234,2,115,2,21,2,26,2,2,2,210,0,3,255,245,253,138,253,187,252,201,251,35,251,44,250,22,249,86,248, +24,247,200,245,36,246,248,246,14,246,233,244,108,245,238,245,36,245,20,245,245,246,48,248,185,246,242,244,107,245,183,246, +53,247,162,247,24,248,12,248,84,248,32,249,17,249,87,248,146,248,139,249,236,249,39,250,227,250,26,251,218,250,143,251, +94,252,23,252,247,251,7,252,106,251,24,252,85,254,188,254,85,253,26,253,218,253,87,254,205,254,56,255,189,255,73,0, +6,0,198,255,78,0,9,0,241,254,167,254,136,254,4,254,30,254,95,254,23,254,34,254,121,254,90,254,17,254,238,253, +215,253,216,253,29,254,147,254,114,254,139,253,66,253,154,253,0,253,22,252,57,252,190,252,63,253,233,253,185,253,150,252, +20,252,155,252,191,252,209,251,135,251,239,252,150,253,123,252,119,252,115,253,168,252,134,251,88,252,156,253,33,254,66,254, +3,254,8,254,107,254,78,254,141,254,221,255,230,0,56,1,73,1,250,0,209,0,13,1,68,1,229,1,121,2,238,1, +155,1,125,2,62,3,219,3,215,4,16,5,181,4,255,4,87,5,95,5,248,5,230,6,116,7,205,7,237,7,137,7, +20,7,77,7,81,8,200,9,226,10,43,10,175,7,238,5,210,5,175,5,143,5,9,6,155,5,72,4,186,3,162,3, +144,3,161,3,220,2,243,1,25,2,110,1,175,255,108,255,28,0,97,0,37,1,92,1,183,255,132,254,64,255,118,0, +196,0,154,255,60,254,199,254,11,0,197,255,224,254,175,254,184,254,164,254,141,254,87,254,181,253,202,252,172,252,116,253, +165,253,38,253,207,252,80,252,218,251,218,251,132,251,188,250,39,250,218,249,37,250,158,250,83,250,45,250,108,250,197,249, +48,249,144,249,116,249,74,249,9,250,102,250,87,250,15,250,131,248,186,247,89,249,247,249,57,248,204,246,99,246,236,246, +52,248,123,247,140,244,31,243,241,243,227,244,73,245,85,245,56,245,191,244,170,243,89,243,149,244,5,246,108,247,170,248, +45,248,19,247,83,247,75,247,203,246,90,248,217,250,220,251,92,252,151,252,81,251,83,250,110,251,87,252,162,251,38,252, +205,254,37,0,72,255,12,255,193,255,253,255,80,0,220,0,60,1,121,2,29,4,133,4,158,4,77,5,205,5,157,6, +205,7,0,8,80,8,25,10,238,10,40,9,101,7,243,7,139,9,12,10,138,9,12,9,74,8,149,7,217,8,75,11, +99,11,72,9,94,8,189,8,31,8,69,7,225,7,128,8,178,7,155,6,145,5,254,3,227,2,36,2,10,0,190,253, +89,253,180,253,97,253,171,252,142,251,129,250,145,250,88,251,220,251,230,251,218,251,84,252,202,252,113,252,149,252,233,253, +200,254,21,255,5,0,36,1,2,2,205,2,11,3,251,2,3,3,138,2,65,2,232,2,206,2,79,1,145,0,120,1, +158,2,187,2,230,1,224,0,150,255,40,254,255,253,129,254,29,253,124,250,64,249,64,249,255,248,45,248,60,247,254,246, +138,247,40,248,210,248,63,249,222,248,228,248,6,250,149,250,43,250,49,250,213,250,255,251,176,253,27,254,125,252,168,251, +78,253,189,254,205,253,137,252,223,252,29,253,23,252,166,251,118,252,204,252,74,252,12,252,62,252,220,252,32,254,0,255, +80,254,10,253,204,252,94,253,162,253,117,253,204,253,124,255,167,1,181,2,25,3,146,3,19,3,135,2,70,4,70,6, +253,5,31,6,89,8,72,10,145,11,80,13,199,14,77,16,152,18,37,20,164,20,65,21,36,21,21,20,115,20,60,22, +75,22,180,20,232,20,92,22,70,21,185,18,82,18,199,18,215,17,216,16,103,16,188,15,20,15,106,14,53,14,202,14, +199,13,252,10,143,9,99,8,89,5,100,3,24,3,52,1,116,254,235,252,185,251,100,250,203,248,159,246,251,244,0,244, +75,243,206,243,92,244,24,243,96,241,236,239,92,238,41,238,156,238,160,237,187,236,176,236,10,236,193,235,231,235,242,234, +51,235,195,237,105,238,79,236,30,235,27,235,235,234,24,236,0,239,114,240,43,239,82,238,64,239,85,239,126,238,20,239, +17,240,48,240,254,240,96,242,73,243,237,244,6,247,98,247,91,246,44,246,169,247,94,249,145,249,63,249,163,249,74,249, +155,248,249,249,12,252,139,252,66,252,194,251,26,251,26,251,91,251,150,251,55,252,254,251,22,251,1,252,214,253,160,253, +172,251,186,249,187,248,22,249,43,250,107,251,125,252,108,252,28,252,87,253,173,254,146,254,203,254,8,0,116,0,106,0, +255,1,195,3,135,2,25,0,99,0,112,2,32,4,141,5,98,5,63,4,211,5,55,8,47,8,239,8,139,10,86,9, +99,8,55,10,128,11,129,12,215,13,56,12,133,9,200,9,83,11,146,12,126,13,8,13,153,12,253,12,58,12,127,11, +78,11,22,8,15,3,46,1,255,1,194,1,249,254,227,251,168,251,106,252,54,251,75,250,255,249,106,247,169,244,87,244, +112,244,168,244,181,245,188,245,170,244,234,243,9,243,28,242,19,242,119,242,20,242,28,241,187,241,184,243,25,243,129,240, +109,240,35,241,244,239,234,239,93,241,180,241,24,242,211,242,164,242,37,243,224,243,136,242,55,241,224,241,13,243,216,243, +210,242,35,240,161,240,128,244,116,245,255,242,170,241,36,242,119,243,144,244,95,243,207,241,117,243,12,246,89,246,166,245, +251,244,235,243,110,243,234,243,112,244,194,244,244,244,230,244,100,244,89,243,238,242,164,243,159,243,209,242,55,243,163,243, +193,242,20,243,227,244,46,245,175,244,98,245,4,245,240,242,244,242,73,245,79,246,168,246,194,248,192,250,38,251,129,251, +121,251,61,250,138,249,221,249,71,250,212,250,219,250,121,250,132,251,228,252,118,252,189,251,199,251,147,251,180,251,160,252, +127,253,65,254,158,254,27,254,71,253,105,252,103,251,122,250,44,250,66,251,20,252,71,250,201,248,68,250,75,251,18,251, +27,252,136,252,206,251,243,252,56,254,25,253,190,251,238,250,198,250,68,253,207,255,201,253,13,250,57,250,222,252,136,253, +71,253,63,254,203,253,176,252,212,255,160,3,149,2,220,1,8,4,27,3,25,0,111,0,19,2,49,2,36,2,28,3, +216,4,135,4,56,1,156,0,99,4,131,6,9,6,40,6,111,6,48,7,197,8,214,8,253,8,30,11,7,11,163,8, +65,9,112,11,192,11,216,12,253,14,179,14,122,13,21,14,128,14,61,13,0,12,236,11,167,12,20,13,155,12,185,12, +253,13,7,14,68,12,96,11,102,12,142,13,110,13,89,12,229,10,28,9,56,8,200,9,144,11,153,10,211,8,147,8, +134,8,94,8,102,9,3,11,97,12,155,13,43,14,142,13,92,12,191,11,241,11,239,11,250,11,186,12,41,12,187,9, +206,8,108,10,134,12,129,13,166,11,86,8,78,8,97,10,247,9,95,9,55,11,193,11,199,9,94,8,215,7,181,7, +237,8,2,10,244,8,190,7,236,8,77,11,142,12,208,12,46,13,115,13,31,13,114,12,134,11,6,11,158,12,128,15, +234,15,177,13,81,13,208,15,67,17,33,16,212,14,88,15,31,17,74,17,203,14,224,13,49,17,91,20,87,20,47,20, +78,21,165,21,234,20,233,19,185,18,158,18,190,19,66,19,76,17,43,17,64,17,196,14,196,13,20,16,100,16,12,15, +214,16,57,18,129,15,197,13,202,14,38,14,104,12,25,12,255,10,202,8,161,8,138,9,234,8,164,8,157,9,134,8, +242,5,152,6,168,9,35,10,235,7,216,6,88,8,64,10,72,10,95,9,191,9,68,11,128,12,255,11,6,9,233,5, +59,5,45,6,110,7,215,7,88,6,234,5,228,8,181,10,34,8,210,4,203,3,21,4,128,4,116,5,161,6,182,5, +53,4,8,7,219,10,115,9,117,7,241,8,219,8,150,7,205,9,247,11,94,10,55,8,110,8,230,10,48,13,87,12, +100,9,49,7,235,6,56,9,184,11,199,10,231,8,50,10,219,12,106,13,143,11,59,10,149,12,217,15,225,14,211,11, +80,11,46,12,170,12,195,13,103,14,51,13,125,12,72,13,212,12,169,11,118,13,242,16,38,18,116,17,206,16,201,16, +180,17,223,17,36,16,203,15,190,17,148,17,17,15,247,14,152,17,240,18,216,17,113,16,8,16,117,16,101,17,231,17, +57,17,85,16,92,15,191,12,93,9,223,7,33,8,17,8,171,6,139,4,73,3,80,3,116,3,95,3,61,3,216,1, +146,254,252,251,110,252,74,253,1,252,148,251,96,252,112,249,173,244,39,244,109,245,167,244,45,244,217,244,162,245,162,246, +88,246,189,245,214,247,87,249,167,247,52,247,216,247,151,245,195,243,86,245,167,246,231,246,180,247,33,247,21,246,88,248, +27,251,98,250,214,249,198,251,254,251,236,249,79,249,68,250,213,250,170,249,197,246,109,246,90,250,241,251,189,248,195,246, +177,247,153,248,199,248,22,247,230,243,114,243,13,246,28,248,45,249,171,249,37,249,5,249,23,249,51,247,77,245,63,246, +34,247,5,245,21,243,127,244,53,247,0,248,83,246,34,244,201,243,127,244,181,243,125,242,69,243,162,244,105,244,168,243, +197,244,6,248,196,249,166,246,21,242,0,242,126,245,193,246,169,244,102,244,78,248,32,251,108,248,223,242,130,239,171,240, +32,244,35,245,149,243,178,242,2,242,19,241,16,242,137,243,149,242,119,240,221,239,169,241,232,243,14,244,204,243,162,244, +57,244,241,243,109,246,244,247,131,247,173,249,225,252,78,252,96,249,51,247,209,246,247,248,86,251,3,250,187,246,76,246, +226,247,186,247,39,246,158,244,98,243,194,243,40,244,23,242,152,241,40,244,144,244,80,244,233,245,184,243,51,240,26,243, +205,245,244,241,35,239,7,241,29,243,42,243,63,241,201,240,185,244,47,247,52,244,133,241,96,241,56,241,55,243,139,247, +56,248,70,245,63,245,101,247,133,246,247,244,152,245,182,245,152,246,138,249,46,249,88,246,45,246,171,245,218,244,232,247, +92,249,238,246,136,247,16,249,31,247,135,246,108,247,51,246,218,245,252,246,238,246,80,247,92,248,237,247,93,247,63,248, +114,249,177,249,115,249,59,250,236,250,214,249,189,249,54,252,57,253,140,250,194,247,160,248,213,250,254,249,207,248,180,249, +165,247,209,244,2,249,252,253,57,251,177,247,227,250,3,1,106,3,236,0,169,254,113,254,192,251,251,247,230,247,140,249, +242,250,218,251,7,251,193,251,88,255,243,0,252,0,100,1,230,255,118,255,119,2,225,3,227,2,100,2,253,1,218,1, +186,1,227,1,117,4,181,5,153,3,106,4,73,6,171,3,167,2,215,4,191,3,64,2,163,3,170,3,81,3,102,5, +169,6,175,5,131,5,141,7,100,8,242,4,30,2,101,4,212,6,43,6,221,4,88,3,84,2,199,2,95,3,187,4, +169,5,104,3,64,2,243,3,219,2,13,1,242,2,27,3,187,255,76,255,78,2,34,3,205,0,245,255,220,1,23,2, +196,0,3,1,27,0,99,254,143,0,186,2,121,0,1,254,135,253,222,253,221,253,59,251,79,249,42,252,36,254,100,252, +160,251,169,251,229,251,18,255,20,2,163,0,36,253,43,252,34,255,81,2,230,2,51,3,88,2,112,255,62,0,137,3, +146,2,59,1,195,2,54,2,187,0,31,2,61,4,220,4,173,2,110,255,148,0,0,4,20,4,31,3,14,3,130,2, +150,2,51,2,108,0,90,0,76,1,135,1,159,2,0,3,162,2,197,4,166,5,246,2,221,2,97,4,241,1,125,0, +23,4,110,6,89,5,67,6,72,9,35,10,101,9,210,8,233,6,86,4,149,3,249,4,127,8,250,9,141,3,119,252, +124,254,113,2,1,1,30,255,121,254,247,253,203,255,142,1,232,0,232,255,239,253,56,253,101,1,67,4,193,2,227,2, +14,3,202,0,140,2,210,6,132,5,68,1,11,0,82,1,251,3,127,7,177,9,55,9,45,7,57,6,151,7,93,9, +208,8,46,6,174,5,69,8,217,7,137,3,134,1,114,1,196,1,168,5,213,7,150,3,120,2,61,6,85,5,175,3, +37,7,105,7,223,3,31,5,237,6,227,2,205,255,234,1,151,2,118,255,136,255,6,5,0,8,174,4,114,1,148,1, +176,1,25,1,144,0,11,255,225,254,59,2,166,4,63,3,85,2,40,4,109,5,155,4,22,3,128,1,146,0,173,0, +19,0,134,254,55,254,20,255,160,255,26,0,124,0,59,0,245,255,93,0,242,1,238,3,104,3,90,0,43,254,66,253, +25,253,99,255,124,2,202,2,14,1,193,255,6,0,67,1,57,0,191,252,159,251,44,253,18,253,218,250,34,249,68,249, +95,250,138,250,92,250,20,251,212,251,151,253,56,0,193,255,24,254,73,255,31,255,249,252,147,254,139,1,11,2,44,2, +115,0,77,253,82,254,194,0,99,0,238,0,214,1,139,0,156,0,52,1,193,255,115,0,168,2,70,1,175,254,142,253, +155,252,121,253,136,255,51,254,185,250,208,249,10,251,225,251,105,252,122,252,62,250,210,246,37,246,55,248,21,250,73,251, +26,252,90,252,47,252,195,250,24,249,102,249,87,249,11,247,113,245,105,245,3,246,229,246,155,245,157,243,234,245,100,249, +20,249,12,248,134,248,3,249,220,249,73,250,191,248,169,246,92,245,149,245,97,248,62,252,67,254,194,253,9,252,25,250, +16,249,119,251,83,255,23,254,0,251,89,253,17,255,20,252,130,251,117,251,112,248,31,250,187,254,157,254,168,254,112,255, +92,251,196,248,131,251,188,252,163,251,56,251,123,251,94,252,136,251,253,249,109,252,95,254,8,252,168,251,77,253,43,253, +145,254,3,0,232,252,67,250,4,253,249,1,207,3,167,0,165,254,222,2,240,5,195,2,83,0,250,0,143,255,150,253, +17,0,179,3,252,2,61,1,40,2,123,1,83,255,52,1,254,3,237,3,5,5,194,6,119,6,160,6,36,5,107,255, +65,251,4,251,58,251,10,252,50,253,237,251,72,249,81,249,61,253,10,1,212,1,200,1,255,255,208,251,223,251,165,254, +65,251,2,247,178,249,138,253,103,254,233,253,50,252,49,251,95,251,245,251,179,254,198,254,71,249,23,249,200,255,72,1, +114,254,5,255,155,1,90,4,166,6,2,7,218,6,153,5,145,2,167,1,111,2,66,2,15,3,46,3,250,255,224,253, +135,255,64,2,59,3,122,0,214,252,57,253,223,255,160,1,20,3,7,4,169,3,150,1,191,255,76,3,162,9,254,9, +240,6,64,7,225,7,198,6,194,6,61,6,170,3,40,2,152,3,139,6,251,7,171,5,108,1,138,255,6,1,32,2, +63,1,179,1,107,2,129,255,156,253,104,0,92,1,171,254,29,254,96,255,150,254,67,253,31,255,82,2,30,1,67,254, +124,0,32,2,86,255,234,0,145,4,69,1,99,254,23,1,61,2,156,1,21,0,94,251,105,250,75,255,121,1,114,2, +18,6,115,6,251,3,223,3,75,3,179,1,121,3,60,6,128,5,124,3,54,3,199,2,240,0,212,0,76,2,196,0, +231,253,0,255,0,2,6,2,118,255,151,253,115,253,38,252,168,248,121,247,120,249,204,249,140,248,193,249,129,252,207,252, +117,250,253,249,202,252,207,252,139,248,240,247,232,252,194,255,77,254,127,253,248,253,105,253,180,254,189,2,66,3,174,1, +200,5,101,9,217,4,28,1,6,2,7,0,96,254,9,2,200,3,223,0,148,254,161,254,229,255,75,255,111,251,141,249, +81,251,119,252,243,252,148,253,51,253,74,253,86,253,52,251,195,248,118,247,155,247,181,249,73,250,184,247,14,246,196,246, +237,249,107,255,177,1,31,255,84,254,152,0,46,2,81,2,83,0,121,253,200,253,90,0,167,1,120,1,220,0,223,0, +203,0,171,254,101,253,64,255,115,255,146,254,28,3,141,7,91,3,40,255,100,3,56,7,223,5,4,6,14,6,91,2, +38,0,234,253,138,248,88,249,16,0,208,0,125,255,35,2,203,1,104,1,39,7,11,9,66,4,3,4,233,7,83,7, +80,2,209,254,141,0,230,2,142,255,121,251,31,252,251,252,230,252,129,255,33,2,13,1,131,254,77,254,15,0,223,255, +71,254,92,255,16,1,40,1,152,2,213,2,224,253,95,249,184,250,80,255,240,1,162,254,199,248,152,248,147,253,15,2, +243,4,73,4,130,255,215,253,113,2,204,6,241,6,29,5,215,3,15,4,213,4,33,5,177,5,185,5,171,3,39,2, +190,2,252,1,196,0,91,2,57,1,174,251,50,252,68,2,101,2,221,255,101,1,241,0,207,255,60,5,241,8,217,3, +203,255,65,2,95,4,92,2,71,255,87,254,42,255,190,255,86,0,111,1,204,2,63,5,225,6,90,5,88,4,254,5, +77,6,112,4,44,3,226,2,3,3,226,2,140,1,227,255,11,0,210,2,210,4,156,2,33,1,202,3,202,2,42,253, +157,252,31,0,176,1,45,4,86,6,1,4,152,2,125,3,161,0,148,253,112,255,148,1,107,2,199,2,150,254,213,250, +168,0,162,6,82,2,43,254,6,0,212,254,239,252,59,1,116,3,28,0,221,255,98,1,167,254,38,252,39,254,126,2, +255,5,102,5,178,1,63,0,19,2,242,3,66,3,234,0,34,2,54,6,148,5,186,2,104,4,224,4,43,0,255,253, +104,0,178,1,76,1,175,1,114,2,127,2,251,1,194,0,172,254,213,254,246,2,176,4,62,1,51,0,14,3,54,4, +140,4,222,4,3,3,86,3,132,7,172,8,74,6,40,5,135,3,102,0,254,0,192,5,137,7,37,4,120,1,155,1, +8,2,18,4,3,6,248,2,69,1,31,6,238,6,181,0,56,254,90,255,28,255,91,1,29,4,247,0,213,252,37,253, +13,254,165,254,13,2,170,4,35,2,17,0,207,2,230,2,165,253,110,252,156,0,186,2,47,3,63,4,209,3,115,3, +205,3,159,1,71,255,139,0,158,2,115,2,148,0,128,254,69,253,230,252,21,254,37,0,57,255,245,251,195,250,66,251, +235,252,79,0,197,1,8,1,191,0,200,253,41,250,27,254,241,4,11,4,250,253,251,250,84,252,217,253,155,252,161,250, +62,250,108,251,5,254,183,254,132,251,252,249,36,251,79,250,137,250,12,253,88,251,98,247,146,247,222,249,164,250,212,248, +95,246,73,248,190,251,96,250,114,248,140,249,158,249,209,248,62,248,212,245,107,243,3,243,201,244,62,249,207,250,171,245, +191,241,2,244,159,248,216,252,140,253,244,249,71,248,138,250,101,253,0,1,250,3,237,2,156,0,24,1,71,2,162,0, +127,254,72,0,243,2,16,2,200,0,26,255,123,249,12,246,129,248,153,248,21,244,9,240,206,236,227,234,120,235,140,236, +25,238,40,239,62,237,108,236,168,239,42,242,243,241,199,240,225,238,112,238,113,241,171,244,5,244,174,240,63,240,112,243, +91,244,14,243,250,244,128,248,75,248,237,243,105,240,130,242,234,244,175,241,145,240,3,244,28,243,133,241,250,243,78,242, +83,240,120,245,165,246,43,242,52,243,151,243,178,238,50,240,185,245,30,244,64,241,105,243,131,244,113,242,36,241,246,240, +23,241,180,242,118,244,254,243,58,244,129,246,210,244,65,240,78,241,248,244,36,245,179,246,84,249,100,246,141,243,28,247, +113,249,2,247,197,247,149,252,186,253,208,251,57,252,203,250,247,244,87,244,138,250,91,252,122,249,50,250,227,252,220,252, +164,250,161,247,226,246,208,249,127,251,207,249,69,249,85,251,162,252,149,252,244,253,9,0,13,0,133,0,163,2,50,1, +111,254,18,2,149,7,178,7,226,5,235,4,177,3,182,3,61,4,50,3,42,2,236,1,209,2,247,5,131,8,244,7, +99,6,49,5,59,5,68,7,212,8,102,9,66,11,232,12,24,13,86,13,242,11,7,9,222,9,63,13,56,13,92,13, +171,18,66,22,119,18,72,13,33,11,12,11,155,14,227,19,176,20,196,18,255,18,240,19,172,20,143,21,134,20,38,19, +235,19,121,20,121,20,232,20,16,19,210,15,122,15,132,17,110,19,221,19,213,17,135,15,140,15,85,16,104,16,241,16, +129,18,166,19,188,19,89,21,15,25,60,26,250,23,94,22,239,21,150,21,233,20,108,18,107,17,159,21,47,25,224,23, +250,21,136,20,172,18,24,19,173,20,34,20,214,18,169,18,13,19,76,18,35,15,254,11,96,11,139,11,191,11,213,12, +201,12,226,10,85,10,242,11,96,12,179,10,14,10,20,10,209,7,98,6,199,7,208,6,99,4,156,5,7,7,24,7, +107,9,77,10,221,7,116,7,209,7,74,6,104,6,168,7,169,7,213,7,224,7,108,8,18,10,9,8,69,3,111,3, +202,7,148,10,212,9,1,6,113,3,223,4,202,5,115,4,158,3,166,2,227,0,94,255,3,254,74,253,177,252,84,252, +109,254,211,254,157,249,139,247,145,252,84,254,105,250,231,248,164,249,166,247,188,245,91,248,177,251,22,251,20,250,42,250, +93,247,69,245,52,247,31,246,204,242,102,244,27,245,199,241,207,243,206,249,236,249,145,245,66,242,186,241,73,245,162,249, +126,248,71,243,3,241,199,241,250,239,130,238,184,242,51,244,1,238,220,236,230,243,233,246,197,244,27,243,65,241,218,240, +184,242,231,241,42,238,199,235,255,236,224,240,74,242,156,240,57,241,247,241,91,240,214,241,140,243,218,239,18,238,196,240, +225,240,144,240,48,243,34,244,85,244,35,247,200,247,42,244,89,242,199,244,212,246,78,246,26,246,128,246,169,245,176,245, +234,246,182,245,106,243,153,243,101,245,220,247,252,249,157,249,101,248,32,249,164,251,243,253,50,252,205,247,180,248,32,253, +218,252,147,251,154,254,118,0,22,254,244,250,168,248,250,247,66,249,62,250,27,250,210,250,169,252,168,252,38,250,86,249, +219,250,21,251,124,251,8,253,79,252,156,252,18,0,226,254,209,250,175,252,14,254,79,250,184,252,72,5,106,6,245,0, +206,255,166,2,100,2,227,254,82,253,205,254,34,0,252,255,238,254,50,254,104,255,180,0,211,255,170,255,8,1,45,1, +117,2,113,6,232,7,197,5,13,4,118,2,48,0,117,255,43,0,149,1,123,4,104,6,36,5,64,4,38,5,219,3, +17,1,6,1,112,2,56,3,216,3,28,2,240,254,244,255,155,2,80,1,109,0,230,2,59,4,145,4,221,5,249,5, +191,5,207,5,80,3,246,1,148,5,197,6,137,2,217,1,224,5,185,6,167,5,231,7,26,9,200,5,200,3,13,5, +130,4,190,2,196,3,205,4,170,2,46,1,168,3,111,6,129,4,134,255,213,253,195,0,135,3,177,3,116,2,38,0, +172,253,147,253,167,255,108,0,30,254,24,251,111,251,10,0,163,3,137,1,241,253,250,253,199,254,42,255,79,2,112,4, +88,2,159,2,250,5,90,5,214,2,22,3,115,3,204,3,104,5,51,5,84,4,7,6,18,7,170,5,176,4,44,4, +61,3,185,3,216,5,247,6,11,6,84,5,107,5,2,4,239,2,223,4,64,5,184,2,254,3,28,8,3,8,60,5, +151,3,164,1,225,255,156,0,193,2,49,4,219,3,69,2,2,2,205,3,231,4,95,4,130,4,46,5,120,4,254,4, +6,8,88,7,129,2,204,1,133,4,83,4,146,3,126,3,151,0,146,254,175,0,18,2,32,2,147,4,220,6,250,4, +75,1,10,1,121,4,35,6,255,3,143,1,100,0,204,0,53,3,193,4,153,4,231,4,157,3,109,0,98,0,179,2, +10,2,181,254,159,252,110,254,244,2,170,5,176,5,186,5,107,6,185,7,12,8,245,4,13,2,99,2,172,2,227,3, +118,7,70,6,182,255,6,253,129,255,108,2,84,4,48,3,122,255,160,254,42,1,6,3,102,3,173,2,240,0,10,0, +142,0,232,0,78,1,62,2,150,1,150,255,186,0,109,4,135,4,74,1,221,255,135,0,255,1,114,3,177,1,116,254, +134,255,146,2,173,2,224,1,77,1,101,255,252,254,211,1,96,3,208,0,25,254,221,254,76,0,140,255,43,255,251,255, +57,0,180,1,113,3,132,1,29,0,42,2,241,0,56,253,154,254,67,1,114,255,191,253,65,255,88,1,67,2,207,0, +207,253,240,252,195,254,209,0,247,1,254,1,147,0,11,254,189,252,154,254,38,0,152,254,213,254,223,2,202,4,160,2, +177,255,164,253,122,253,180,254,83,255,88,0,222,1,75,1,45,0,143,0,174,255,144,253,173,253,27,255,206,254,247,252, +203,251,201,252,127,254,50,254,182,252,53,253,174,255,90,1,80,1,224,0,132,0,93,0,222,0,151,0,96,255,78,0, +35,2,7,1,155,255,230,255,241,253,104,250,44,250,20,253,253,255,21,0,89,253,237,252,8,0,249,0,149,254,255,251, +251,249,185,249,192,251,28,254,17,0,145,0,60,255,120,255,1,1,110,0,176,255,153,255,181,253,38,253,218,255,251,0, +232,255,201,255,219,255,223,255,103,1,140,3,244,4,90,5,124,4,131,3,96,4,253,5,64,4,77,255,142,253,31,0, +75,1,128,1,35,3,137,1,44,253,249,252,160,254,144,252,93,250,97,251,100,252,127,251,206,250,196,251,199,252,166,252, +30,253,59,254,173,253,166,252,239,253,58,0,97,0,53,254,48,253,80,255,135,1,59,2,140,3,191,4,97,4,215,3, +192,2,205,0,228,255,98,255,123,255,117,2,112,4,64,1,82,253,252,252,249,254,208,0,149,0,136,255,73,0,247,0, +29,0,153,255,72,254,116,251,143,250,12,252,144,253,110,254,118,253,236,250,23,250,152,251,34,253,104,253,129,252,191,251, +71,251,106,249,110,247,215,247,150,249,251,250,83,251,79,250,13,250,129,251,143,252,179,253,137,255,150,255,104,255,183,1, +109,2,151,255,45,254,13,255,95,254,104,252,231,251,232,252,19,254,248,254,156,255,195,255,244,255,37,1,156,2,71,3, +125,3,71,3,219,2,60,3,218,3,31,4,1,5,24,6,209,6,228,7,68,8,90,7,185,6,139,5,86,3,15,3, +144,4,27,5,25,5,196,4,114,3,41,3,143,4,181,4,81,2,23,0,216,0,96,2,21,1,19,0,162,2,144,4, +54,3,214,0,155,254,30,254,57,255,24,254,225,251,102,251,93,250,120,250,195,253,181,253,21,250,171,250,6,253,161,251, +166,249,192,248,195,247,123,248,88,250,183,250,42,250,59,250,249,250,25,251,53,250,166,250,142,252,89,253,151,253,247,253, +72,253,16,253,240,253,34,254,159,254,207,255,12,0,131,0,170,1,126,1,108,0,219,255,111,0,136,2,248,3,162,3, +176,3,180,3,143,2,105,2,50,3,133,2,166,0,129,255,34,0,3,1,33,0,117,255,46,0,139,255,149,253,36,252, +116,251,27,253,19,0,106,0,26,255,191,253,255,251,112,253,109,1,99,1,76,255,63,0,35,1,33,0,36,255,138,253, +61,252,45,253,204,254,239,255,138,0,179,0,73,2,178,4,179,4,59,3,220,2,28,3,172,3,229,4,198,5,99,5, +243,3,134,2,7,2,81,2,195,2,107,2,214,0,26,255,41,254,132,254,83,0,2,1,244,254,62,253,87,253,171,253, +190,254,84,0,51,0,207,254,113,253,243,251,191,250,205,249,197,248,80,248,83,248,102,248,56,248,122,246,89,244,191,244, +221,245,111,244,147,242,137,243,154,245,168,245,46,245,139,246,35,247,142,245,77,245,87,246,122,246,41,248,89,251,190,251, +14,250,18,250,100,252,37,255,153,255,13,254,209,253,95,254,7,254,216,254,207,0,87,1,218,0,108,0,137,255,87,254, +22,254,145,255,25,1,143,0,0,255,118,253,52,252,54,253,24,255,89,254,26,253,61,253,150,252,5,252,114,252,53,252, +13,253,183,255,92,0,136,254,174,253,83,255,75,1,8,0,144,253,111,254,57,255,129,252,175,250,190,250,211,249,137,249, +199,250,21,252,18,253,178,251,92,248,59,248,18,251,211,251,108,250,184,249,208,249,145,249,179,249,12,251,93,251,21,250, +101,250,219,250,162,248,180,247,169,249,0,251,206,251,131,251,21,249,34,249,146,251,181,251,209,252,231,255,63,255,138,254, +170,2,76,4,252,0,88,0,103,2,28,2,146,1,89,3,90,4,58,3,0,2,137,0,216,254,80,255,21,1,213,1, +207,2,99,3,224,1,215,1,209,3,253,2,25,1,220,1,218,1,14,0,45,0,21,1,26,0,16,255,113,255,150,255, +144,254,0,254,233,254,133,255,175,254,104,253,133,252,253,252,167,254,250,254,77,254,86,255,180,0,18,1,107,2,61,3, +41,1,81,0,179,3,190,6,44,6,171,4,50,4,22,4,45,4,224,3,108,2,34,1,234,0,85,1,183,2,135,3, +240,1,147,0,24,0,189,253,154,252,64,255,9,0,243,253,97,254,230,255,20,255,70,254,66,254,86,253,8,253,150,254, +253,255,120,0,133,1,154,2,246,1,8,1,20,1,228,0,89,2,108,6,62,7,163,3,61,2,23,4,37,6,12,8, +136,7,227,3,89,2,219,4,134,7,211,7,162,6,70,6,125,6,212,4,95,3,250,4,97,6,46,5,36,4,13,5, +215,6,146,7,152,6,108,5,174,4,127,4,153,5,130,5,248,1,172,254,99,255,151,2,240,3,156,1,202,255,150,0, +244,255,46,255,99,1,72,1,206,254,198,0,107,3,153,1,249,255,158,255,51,254,34,254,13,255,1,255,70,0,31,2, +134,1,203,0,160,2,187,4,59,4,92,2,237,1,114,2,175,2,98,3,171,3,236,2,236,2,74,3,74,3,70,3, +192,1,159,0,205,2,120,3,20,1,53,1,197,1,102,255,53,255,211,1,224,2,101,3,142,4,187,4,206,3,179,2, +243,2,237,3,50,3,5,3,190,4,138,4,150,3,172,4,133,4,82,3,104,4,135,5,224,4,212,3,238,2,112,3, +3,5,90,5,38,5,242,4,24,4,114,4,77,6,131,7,60,7,91,5,67,4,205,5,43,6,192,4,38,5,109,5, +131,4,27,5,35,5,45,4,166,5,74,7,73,7,199,7,92,7,112,6,180,7,1,8,203,5,199,4,95,5,234,5, +104,5,133,3,19,3,158,4,69,5,181,5,162,5,212,2,165,0,34,1,123,1,151,1,235,0,144,254,36,254,154,255, +194,255,78,0,215,0,47,255,148,254,121,255,31,255,191,255,150,1,31,1,95,255,214,254,35,255,12,255,2,254,212,253, +247,254,167,254,248,253,177,254,227,253,189,252,117,254,104,255,58,254,175,254,220,255,122,255,238,254,30,255,120,255,189,254, +64,253,222,253,137,255,58,255,250,254,126,255,238,254,149,255,87,1,142,0,49,255,129,255,95,255,23,255,107,255,39,255, +13,255,139,254,69,252,102,251,3,253,35,253,194,251,145,252,88,255,135,0,193,254,48,253,86,254,170,255,109,255,136,255, +245,255,86,255,156,254,113,254,41,254,174,253,118,253,26,254,28,255,153,254,199,252,21,252,227,252,208,253,176,254,161,255, +174,255,197,254,101,254,152,254,126,253,197,251,92,252,152,254,135,254,91,251,218,248,42,250,37,253,105,253,144,251,148,251, +1,253,219,252,113,252,28,254,78,0,27,1,208,0,42,0,8,0,57,0,107,255,221,254,128,255,2,254,167,250,120,250, +254,251,240,250,18,250,67,251,72,251,133,250,100,251,135,252,204,252,35,253,239,253,131,254,134,253,159,251,169,251,65,253, +125,253,140,252,153,252,243,253,170,254,227,253,115,254,74,1,182,2,152,2,244,3,6,5,182,3,201,1,17,0,11,255, +155,255,9,0,187,255,77,0,197,0,87,0,177,0,98,1,199,0,180,255,135,255,254,255,49,0,62,0,92,0,31,255, +239,252,234,252,149,254,29,255,64,255,14,0,118,0,247,255,155,254,84,253,213,252,106,251,216,249,231,250,47,252,240,251, +36,253,34,254,24,252,45,251,82,253,242,254,56,255,172,254,100,253,149,253,7,255,248,254,109,254,16,255,70,255,189,254, +236,254,27,255,249,253,255,252,59,254,61,0,159,0,150,0,173,1,71,2,140,1,22,1,182,1,133,2,39,2,232,0, +213,0,196,1,238,1,54,2,241,2,188,1,77,255,239,254,16,0,243,255,131,254,130,253,199,253,23,254,59,253,222,252, +123,254,208,255,9,255,224,253,179,253,214,253,46,254,247,254,110,255,63,255,9,255,250,254,72,255,128,0,153,1,235,0, +145,255,138,255,35,0,175,0,1,2,189,2,117,1,184,0,234,1,72,2,5,1,48,0,50,0,146,0,10,1,250,0, +209,0,6,1,15,1,131,1,84,2,208,1,28,1,32,2,216,2,171,1,188,255,20,254,95,254,199,0,177,1,60,0, +88,255,73,255,27,255,141,255,126,0,72,1,164,1,30,1,18,1,54,2,254,1,138,0,6,1,82,2,243,1,160,1, +55,2,140,1,213,255,66,255,122,255,15,255,121,254,29,254,108,253,19,253,143,253,170,253,128,253,165,253,26,253,208,252, +221,253,144,253,233,251,128,252,242,253,176,253,188,253,230,253,68,252,91,251,119,252,212,252,65,252,174,252,229,253,203,254, +8,255,194,254,200,253,60,252,49,252,19,254,158,254,200,253,225,254,182,0,101,0,72,255,225,254,152,254,86,254,72,254, +147,254,42,255,32,255,140,254,87,254,239,253,68,253,105,253,195,253,50,253,33,252,90,251,100,251,16,252,86,252,17,252, +237,251,249,251,205,251,54,251,205,250,65,251,200,251,219,251,225,251,68,251,214,250,133,252,2,254,14,253,172,252,188,253, +161,253,43,253,56,253,41,252,119,251,38,253,242,254,237,254,74,254,103,254,12,255,13,255,97,254,10,254,209,253,146,253, +230,253,89,254,226,254,131,255,1,255,189,254,126,0,30,1,174,255,24,0,186,1,188,1,239,1,150,2,245,0,95,254, +185,253,48,254,128,254,198,255,73,2,119,3,115,2,28,2,220,2,117,2,54,2,53,3,238,2,213,1,65,2,163,2, +41,2,201,2,66,4,104,5,203,6,86,8,6,9,211,8,188,8,64,9,79,9,2,8,72,6,214,5,138,7,74,9, +247,7,141,5,135,5,217,5,127,4,7,3,168,1,25,1,179,2,178,3,3,3,169,3,203,4,208,4,102,5,21,5, +248,2,42,3,26,5,245,4,233,4,86,6,72,6,118,5,88,5,222,3,231,1,71,2,94,3,21,3,97,2,229,1, +111,2,71,5,200,7,125,6,65,4,246,4,54,6,254,4,150,2,95,0,51,255,130,0,197,2,27,3,137,2,241,2, +52,3,119,2,177,1,38,1,24,0,124,254,77,253,134,253,190,254,93,255,183,254,204,253,97,253,59,253,157,253,194,254, +125,255,84,255,78,255,106,255,39,255,82,255,230,255,244,255,83,0,192,1,107,2,93,1,69,0,224,255,81,255,253,254, +126,255,218,255,251,255,206,0,112,1,249,0,82,0,194,255,50,255,95,255,158,255,248,254,132,254,234,254,118,255,219,255, +217,255,181,255,53,0,135,0,250,255,181,255,222,255,180,255,192,255,42,0,67,0,3,0,170,255,151,255,20,0,113,0, +14,0,75,255,237,254,92,255,153,255,245,254,39,255,169,0,20,1,245,255,33,255,91,255,114,0,55,1,145,0,29,0, +8,1,93,1,70,0,99,255,165,255,12,1,36,3,108,4,225,3,149,2,18,2,190,1,69,0,183,254,84,254,61,254, +63,254,179,254,126,254,249,253,118,254,178,254,221,253,103,253,132,253,184,253,93,254,43,255,141,255,41,255,101,254,11,255, +222,0,34,1,47,0,29,0,220,255,109,254,136,253,94,254,8,0,144,0,122,255,245,254,184,255,218,255,116,255,179,255, +146,255,183,254,178,254,127,255,82,255,199,253,172,252,101,253,10,255,24,0,0,0,5,255,116,254,27,255,175,255,45,255, +113,254,142,254,230,255,133,1,169,1,189,0,61,0,190,255,64,255,186,255,209,255,98,254,90,253,83,253,198,252,207,252, +11,255,253,0,176,0,133,0,168,1,82,2,207,2,17,4,39,4,59,2,148,0,78,0,116,0,91,0,0,0,136,255, +230,254,82,254,118,254,1,255,60,255,71,255,176,254,187,253,137,254,159,0,78,1,11,1,47,1,18,1,116,0,95,255, +24,254,244,253,31,254,67,253,91,253,107,254,189,253,207,252,207,253,150,254,36,254,216,253,181,253,202,253,82,254,83,254, +209,253,172,253,217,253,133,254,187,255,7,0,150,254,40,253,151,253,160,254,91,254,14,254,152,254,125,254,184,254,183,0, +212,1,21,1,247,0,63,1,185,0,68,0,180,255,215,254,204,254,28,255,254,254,186,254,64,254,108,254,190,255,50,0, +92,255,226,254,143,254,92,254,9,255,124,255,113,255,27,0,197,0,103,0,78,255,40,254,77,254,172,255,70,0,38,0, +50,0,184,255,65,255,192,255,113,0,26,1,70,1,16,0,64,255,44,0,13,1,82,1,157,1,112,1,13,1,233,0, +10,1,9,2,188,2,7,2,51,2,120,3,54,3,179,2,189,3,59,4,95,3,151,2,59,2,232,1,180,0,248,254, +12,255,35,0,195,255,168,255,235,0,13,1,3,0,122,255,66,255,85,255,97,255,159,254,105,254,58,255,55,255,141,254, +39,254,17,253,226,251,54,252,61,253,225,253,60,254,237,253,40,253,45,253,224,253,54,254,99,254,215,254,218,254,83,254, +66,254,112,254,24,254,228,253,28,254,33,254,126,254,39,255,126,254,252,252,188,252,166,253,134,254,0,255,217,254,52,254, +9,254,238,254,42,0,10,0,102,254,137,253,65,254,217,254,45,255,239,255,209,255,162,254,116,254,68,255,137,255,193,255, +147,0,253,0,223,0,11,1,255,0,33,0,255,254,248,253,167,253,229,254,49,0,162,255,189,254,46,255,175,255,148,255, +151,255,117,255,77,255,169,255,151,255,248,254,52,255,233,255,36,0,122,0,127,0,107,255,183,254,54,255,133,255,106,255, +128,255,9,255,4,254,240,253,52,255,222,0,246,1,215,1,9,1,233,0,155,1,36,2,8,2,102,1,209,0,31,1, +14,2,91,2,175,1,205,0,57,0,25,0,93,0,87,0,164,255,90,255,87,0,101,1,64,1,170,0,246,0,21,2, +199,2,76,2,195,1,83,2,236,2,180,2,137,2,94,2,237,1,117,2,94,3,150,2,46,1,254,0,51,1,58,1, +139,1,200,1,233,1,37,2,14,2,196,1,88,1,144,0,97,0,202,0,122,0,93,0,54,1,18,1,9,0,31,0, +193,0,12,1,117,1,177,1,228,1,93,2,15,2,84,1,105,1,120,1,103,1,35,2,74,2,86,1,65,1,220,1, +197,1,172,1,210,1,104,1,194,0,73,0,13,0,113,0,28,1,117,1,219,1,14,2,52,1,49,0,95,0,248,0, +240,0,223,0,255,0,214,0,33,1,207,1,53,1,33,0,138,0,25,1,146,0,97,0,119,0,251,255,251,255,211,0, +165,1,245,1,25,1,209,255,8,0,211,0,214,0,107,1,89,2,176,1,111,0,98,0,222,0,169,0,196,255,86,255, +35,0,227,0,121,0,217,255,169,255,125,255,89,255,149,255,217,255,66,255,115,254,85,255,172,0,221,255,211,254,163,255, +236,255,253,254,165,254,100,254,38,254,205,254,191,254,250,253,206,254,255,255,130,255,204,254,200,254,194,254,174,254,81,254, +126,253,145,252,171,251,196,251,67,253,30,254,153,253,23,253,151,252,120,252,207,253,222,254,21,254,5,253,128,252,50,252, +186,252,189,253,50,254,55,254,222,253,87,253,67,253,31,253,180,252,185,252,74,252,21,251,19,251,236,251,154,251,56,251, +21,252,215,252,248,252,40,253,59,253,8,253,172,252,86,252,135,252,151,252,10,252,169,252,71,254,9,254,204,252,75,253, +4,254,76,253,239,252,170,253,32,254,219,253,111,253,202,253,241,254,86,255,173,254,131,254,68,255,84,0,75,1,113,1, +190,0,27,0,13,0,236,0,37,2,251,1,225,0,208,0,32,1,182,0,181,0,70,1,66,1,12,1,105,1,230,1, +225,1,71,1,222,0,59,1,145,1,84,1,12,1,152,0,21,0,198,0,53,2,137,2,41,2,37,2,205,1,128,1, +151,2,104,3,224,1,249,255,194,255,18,0,83,0,24,1,104,1,183,0,63,0,136,0,51,1,224,1,220,1,68,1, +9,1,252,0,148,0,68,0,99,0,169,0,177,0,108,0,117,0,211,0,185,0,127,0,245,0,177,1,30,2,2,2, +98,1,29,1,123,1,225,1,124,2,193,2,128,1,50,0,32,0,114,255,71,254,24,255,243,0,59,1,44,0,79,255, +78,255,228,255,14,0,149,255,148,255,170,0,10,2,101,2,192,1,113,1,172,1,167,1,135,1,22,1,178,255,151,254, +17,255,34,0,173,0,186,0,107,0,36,0,69,0,125,0,126,0,141,0,239,0,70,1,46,1,67,1,223,1,33,2, +251,1,21,2,181,1,188,0,163,0,42,1,236,0,72,0,222,255,130,255,183,255,160,0,26,1,193,0,102,0,54,0, +221,255,226,255,187,0,108,1,47,1,182,0,136,0,134,0,155,0,49,0,80,255,72,255,231,255,225,255,211,255,120,0, +205,0,88,0,144,255,204,254,122,254,148,254,178,254,233,254,22,255,243,254,187,254,160,254,25,255,30,0,33,0,98,255, +211,255,42,0,15,255,4,255,48,0,212,255,25,255,239,255,79,0,60,255,182,254,111,255,43,0,3,0,163,255,60,0, +2,1,173,0,59,0,132,0,166,0,105,0,33,0,208,255,26,0,248,0,12,1,125,0,166,0,249,0,57,0,110,255, +19,0,19,1,244,0,197,0,80,1,27,1,254,255,153,255,176,255,74,255,23,255,81,255,101,255,201,255,170,0,21,1, +219,0,154,0,141,0,198,0,23,1,235,0,76,0,232,255,221,255,156,255,27,255,31,255,184,255,152,255,130,254,77,254, +125,255,56,0,230,255,177,255,194,255,177,255,199,255,201,255,80,255,242,254,50,255,172,255,254,255,60,0,159,0,250,0, +233,0,165,0,79,0,174,255,98,255,177,255,153,255,104,255,226,255,239,255,150,255,12,0,5,0,232,254,204,254,136,255, +151,255,193,255,242,255,38,255,175,254,76,255,164,255,122,255,79,255,75,255,208,255,38,0,138,255,56,255,130,255,75,255, +50,255,230,255,88,0,103,0,200,0,28,1,247,0,157,0,119,0,209,0,57,1,17,1,167,0,81,0,14,0,78,0, +210,0,107,0,80,255,45,255,38,0,170,0,139,0,12,1,176,1,244,0,210,255,7,0,161,0,76,0,214,255,199,255, +110,255,69,255,73,0,61,1,142,0,159,255,8,0,97,0,159,255,73,255,206,255,214,255,85,255,49,255,105,255,140,255, +150,255,208,255,6,0,170,255,74,255,132,255,88,255,185,254,47,255,248,255,72,255,80,254,177,254,102,255,100,255,28,255, +193,254,38,254,196,253,69,254,64,255,123,255,161,254,169,253,156,253,162,254,206,255,20,0,169,255,69,255,43,255,157,255, +66,0,23,0,126,255,102,255,57,255,203,254,52,255,34,0,93,0,11,0,158,255,31,255,40,255,201,255,3,0,187,255, +169,255,193,255,225,255,49,0,97,0,105,0,162,0,141,0,251,255,217,255,21,0,241,255,206,255,243,255,74,0,17,1, +66,1,20,0,160,255,169,0,186,0,188,255,214,255,152,0,206,0,187,0,101,0,254,255,51,0,92,0,172,255,248,254, +80,255,162,0,193,1,143,1,148,0,22,0,50,0,75,0,0,0,151,255,229,255,219,0,95,1,34,1,224,0,0,1, +250,0,87,0,255,255,144,0,196,0,141,0,98,1,22,2,41,1,97,0,135,0,110,0,209,0,207,1,164,1,239,0, +219,0,91,0,221,255,151,0,234,0,250,255,147,255,3,0,24,0,230,255,209,255,148,255,34,255,207,254,254,254,166,255, +35,0,60,0,47,0,215,255,99,255,126,255,9,0,112,0,137,0,40,0,145,255,141,255,213,255,208,255,51,0,223,0, +78,0,15,255,245,254,148,255,210,255,209,255,159,255,149,255,43,0,98,0,0,0,127,0,62,1,200,0,150,0,138,1, +204,1,47,1,31,1,74,1,58,1,135,1,198,1,55,1,95,0,212,255,163,255,234,255,55,0,228,255,135,255,252,255, +161,0,142,0,40,0,48,0,165,0,22,1,40,1,230,0,132,0,24,0,3,0,117,0,152,0,14,0,182,255,180,255, +155,255,228,255,144,0,210,0,198,0,195,0,126,0,52,0,84,0,127,0,121,0,119,0,151,0,231,0,34,1,200,0, +20,0,218,255,110,0,19,1,193,0,197,255,80,255,112,255,159,255,245,255,92,0,149,0,205,0,203,0,99,0,70,0, +153,0,179,0,133,0,59,0,194,255,107,255,123,255,181,255,248,255,82,0,152,0,129,0,15,0,166,255,150,255,216,255, +80,0,115,0,157,255,146,254,185,254,196,255,96,0,66,0,253,255,224,255,192,255,163,255,245,255,87,0,221,255,68,255, +232,255,212,0,159,0,52,0,119,0,145,0,117,0,238,0,68,1,120,0,89,255,15,255,181,255,197,0,109,1,115,1, +116,1,82,1,152,0,40,0,152,0,246,0,236,0,233,0,201,0,165,0,158,0,38,0,174,255,62,0,238,0,164,0, +116,0,8,1,243,0,193,255,55,255,238,255,72,0,186,255,118,255,182,255,234,255,18,0,248,255,133,255,123,255,233,255, +22,0,243,255,209,255,7,0,139,0,125,0,13,0,102,0,153,0,173,255,128,255,162,0,236,0,9,0,119,255,135,255, +193,255,177,255,36,255,141,254,73,254,114,254,2,255,87,255,100,255,208,255,11,0,127,255,27,255,43,255,73,255,210,255, +105,0,75,0,10,0,249,255,182,255,168,255,222,255,152,255,249,254,220,254,130,255,71,0,120,0,75,0,2,0,108,255, +61,255,173,255,93,255,131,254,161,254,33,255,68,255,148,255,152,255,2,255,195,254,196,254,191,254,31,255,30,255,129,254, +179,254,76,255,196,254,249,253,59,254,213,254,241,254,0,255,118,255,162,255,19,255,185,254,222,254,215,254,41,255,252,255, +6,0,158,255,12,0,142,0,81,0,243,255,224,255,59,0,172,0,106,0,5,0,84,0,145,0,149,0,23,1,104,1, +248,0,168,0,205,0,228,0,210,0,253,0,162,1,25,2,184,1,45,1,231,0,85,0,215,255,231,255,204,255,169,255, +65,0,117,0,49,255,32,254,212,254,242,255,2,0,246,255,103,0,82,0,254,255,63,0,12,0,61,255,103,255,8,0, +193,255,111,255,173,255,201,255,223,255,16,0,20,0,60,0,71,0,183,255,127,255,10,0,73,0,8,0,204,255,170,255, +250,255,168,0,181,0,52,0,46,0,139,0,153,0,104,0,21,0,165,255,179,255,89,0,122,0,210,255,115,255,168,255, +33,0,246,0,118,1,203,0,218,255,141,255,137,255,210,255,107,0,153,0,122,0,133,0,57,0,210,255,63,0,218,0, +175,0,83,0,54,0,226,255,161,255,8,0,112,0,20,0,127,255,92,255,128,255,205,255,78,0,219,0,86,1,83,1, +121,0,191,255,245,255,57,0,2,0,234,255,2,0,23,0,82,0,116,0,73,0,20,0,254,255,40,0,108,0,68,0, +242,255,18,0,73,0,32,0,202,255,157,255,194,255,212,255,157,255,185,255,7,0,220,255,239,255,112,0,48,0,170,255, +4,0,111,0,88,0,43,0,201,255,136,255,195,255,175,255,156,255,85,0,126,0,182,255,245,255,237,0,153,0,137,255, +70,255,190,255,90,0,160,0,98,0,109,0,26,1,137,1,143,1,174,1,135,1,38,1,166,1,164,2,119,2,81,1, +153,0,110,0,49,0,213,255,207,255,117,0,241,0,123,0,53,0,190,0,150,0,176,255,149,255,220,255,192,255,250,255, +81,0,9,0,224,255,251,255,160,255,132,255,40,0,105,0,10,0,19,0,153,0,243,0,219,0,149,0,250,0,5,2, +87,2,215,1,141,1,219,0,166,255,213,255,216,0,110,0,9,0,42,1,105,1,77,0,60,0,123,0,111,255,172,254, +29,255,143,255,169,255,151,255,99,255,129,255,181,255,128,255,97,255,107,255,49,255,67,255,254,255,158,0,174,0,122,0, +87,0,82,0,74,0,84,0,84,0,218,255,38,255,209,254,223,254,78,255,233,255,221,255,100,255,135,255,204,255,99,255, +43,255,187,255,31,0,9,0,54,0,113,0,29,0,224,255,45,0,54,0,245,255,18,0,20,0,175,255,127,255,84,255, +251,254,24,255,134,255,211,255,10,0,205,255,94,255,124,255,82,255,169,254,235,254,115,255,244,254,160,254,196,254,46,254, +151,253,208,253,19,254,87,254,172,254,111,254,67,254,3,255,216,255,237,255,169,255,190,255,35,0,53,0,11,0,26,0, +208,255,65,255,167,255,115,0,56,0,187,255,26,0,148,0,83,0,225,255,250,255,37,0,176,255,110,255,247,255,6,0, +56,255,222,254,46,255,115,255,125,255,73,255,62,255,153,255,130,255,254,254,243,254,4,255,217,254,255,254,2,255,140,254, +151,254,40,255,75,255,8,255,194,254,144,254,176,254,228,254,146,254,225,253,138,253,234,253,129,254,175,254,189,254,252,254, +16,255,41,255,156,255,195,255,96,255,33,255,38,255,50,255,60,255,41,255,51,255,143,255,171,255,104,255,129,255,229,255, +254,255,250,255,14,0,19,0,34,0,69,0,67,0,20,0,191,255,99,255,120,255,217,255,169,255,27,255,72,255,252,255, +21,0,156,255,67,255,17,255,249,254,66,255,218,255,76,0,82,0,30,0,12,0,242,255,127,255,29,255,57,255,114,255, +127,255,163,255,245,255,45,0,246,255,115,255,79,255,103,255,252,254,177,254,74,255,131,255,167,254,24,254,95,254,206,254, +94,255,173,255,38,255,208,254,89,255,112,255,200,254,192,254,74,255,80,255,28,255,106,255,225,255,23,0,54,0,39,0, +211,255,204,255,31,0,216,255,42,255,99,255,30,0,32,0,250,255,35,0,187,255,59,255,207,255,98,0,219,255,109,255, +205,255,13,0,210,255,117,255,19,255,22,255,179,255,41,0,6,0,183,255,135,255,150,255,24,0,132,0,73,0,22,0, +101,0,112,0,45,0,129,0,19,1,30,1,29,1,70,1,0,1,133,0,113,0,130,0,105,0,75,0,55,0,76,0, +139,0,117,0,229,255,147,255,221,255,58,0,73,0,29,0,159,255,232,254,150,254,203,254,253,254,11,255,53,255,80,255, +39,255,7,255,77,255,207,255,8,0,203,255,120,255,84,255,56,255,244,254,167,254,226,254,200,255,79,0,231,255,149,255, +208,255,205,255,117,255,86,255,111,255,142,255,163,255,165,255,212,255,49,0,81,0,17,0,164,255,99,255,161,255,224,255, +121,255,4,255,71,255,212,255,238,255,171,255,149,255,216,255,81,0,235,0,29,1,73,0,114,255,188,255,19,0,147,255, +51,255,67,255,85,255,190,255,78,0,100,0,63,0,15,0,178,255,128,255,140,255,184,255,19,0,32,0,210,255,246,255, +73,0,44,0,43,0,76,0,0,0,212,255,29,0,64,0,81,0,186,0,79,1,159,1,22,1,226,255,65,255,127,255, +199,255,224,255,195,255,71,255,55,255,21,0,188,0,124,0,35,0,3,0,178,255,146,255,25,0,159,0,150,0,96,0, +102,0,185,0,35,1,21,1,166,0,162,0,230,0,190,0,92,0,17,0,232,255,37,0,135,0,144,0,156,0,211,0, +225,0,6,1,44,1,178,0,48,0,138,0,72,1,189,1,187,1,245,0,151,255,154,254,219,254,22,0,224,0,220,0, +112,1,91,2,200,1,124,0,27,0,161,255,219,254,161,255,15,1,222,0,255,255,203,255,144,255,142,255,89,0,138,0, +147,255,249,254,68,255,214,255,102,0,151,0,83,0,22,0,252,255,48,0,4,1,171,1,111,1,22,1,44,1,95,1, +171,1,205,1,90,1,236,0,4,1,2,1,159,0,120,0,181,0,229,0,216,0,164,0,110,0,109,0,128,0,52,0, +193,255,183,255,198,255,163,255,216,255,62,0,86,0,155,0,11,1,245,0,203,0,233,0,164,0,75,0,163,0,28,1, +25,1,233,0,9,1,169,1,59,2,34,2,198,1,170,1,220,1,116,2,197,2,22,2,85,1,110,1,241,1,100,2, +124,2,81,2,137,2,91,2,173,0,251,254,192,254,62,255,222,255,70,0,172,255,235,254,110,255,157,0,54,1,229,0, +56,0,36,0,121,0,94,0,64,0,49,0,47,255,12,254,79,254,59,255,187,255,227,255,147,255,40,255,161,255,99,0, +39,0,105,255,12,255,227,254,26,255,246,255,106,0,222,255,118,255,158,255,150,255,154,255,242,255,227,255,176,255,12,0, +19,0,70,255,243,254,150,255,42,0,76,0,89,0,70,0,245,255,204,255,5,0,48,0,17,0,234,255,190,255,177,255, +13,0,72,0,243,255,190,255,12,0,148,0,56,1,129,1,47,1,236,0,179,0,20,0,197,255,12,0,42,0,76,0, +183,0,181,0,97,0,79,0,19,0,200,255,114,0,125,1,99,1,180,0,232,0,96,1,17,1,232,0,90,1,84,1, +237,0,211,0,108,0,224,255,44,0,168,0,132,0,76,0,39,0,225,255,209,255,213,255,172,255,195,255,52,0,151,0, +183,0,172,0,202,0,253,0,213,0,141,0,120,0,72,0,4,0,221,255,203,255,44,0,186,0,144,0,39,0,66,0, +141,0,67,1,39,2,98,1,41,255,49,254,42,255,109,0,176,0,174,255,93,254,46,254,3,255,137,255,66,255,217,254, +243,254,73,255,85,255,67,255,84,255,116,255,153,255,147,255,93,255,134,255,3,0,22,0,184,255,124,255,179,255,39,0, +73,0,19,0,1,0,250,255,16,0,173,0,16,1,165,0,128,0,224,0,217,0,198,0,54,1,135,1,116,1,72,1, +224,0,115,0,152,0,21,1,251,0,59,0,29,0,248,0,48,1,70,0,187,255,215,255,196,255,227,255,109,0,176,0, +176,0,162,0,85,0,49,0,96,0,44,0,189,255,212,255,36,0,44,0,13,0,206,255,119,255,73,255,75,255,112,255, +192,255,21,0,77,0,87,0,8,0,161,255,181,255,36,0,62,0,239,255,200,255,29,0,116,0,28,0,123,255,135,255, +233,255,185,255,113,255,187,255,9,0,244,255,210,255,176,255,138,255,163,255,207,255,187,255,171,255,214,255,228,255,154,255, +58,255,17,255,9,255,8,255,76,255,232,255,102,0,86,0,206,255,72,255,32,255,37,255,14,255,19,255,83,255,117,255, +104,255,113,255,143,255,182,255,225,255,225,255,181,255,161,255,140,255,68,255,25,255,110,255,0,0,30,0,159,255,82,255, +201,255,69,0,11,0,189,255,243,255,30,0,250,255,31,0,126,0,109,0,19,0,238,255,192,255,94,255,86,255,207,255, +24,0,0,0,21,0,102,0,122,0,86,0,44,0,231,255,183,255,230,255,32,0,7,0,199,255,145,255,91,255,68,255, +126,255,219,255,2,0,99,0,175,1,213,2,85,2,7,1,64,0,114,255,82,254,166,253,62,253,193,252,165,252,218,252, +32,253,145,253,156,253,21,253,29,253,244,253,195,254,112,255,17,0,116,0,209,0,41,1,37,1,213,0,76,0,188,255, +223,255,175,0,36,1,225,0,158,0,248,0,175,1,17,2,246,1,175,1,107,1,101,1,130,1,69,1,24,1,105,1, +75,1,141,0,55,0,246,255,52,255,212,254,20,255,92,255,225,255,103,0,45,0,182,255,177,255,206,255,216,255,188,255, +118,255,125,255,231,255,71,0,124,0,63,0,136,255,56,255,172,255,89,0,235,0,2,1,158,0,172,0,16,1,202,0, +34,0,158,255,41,255,94,255,68,0,158,0,118,0,145,0,109,0,243,255,234,255,28,0,43,0,111,0,182,0,160,0, +115,0,64,0,232,255,205,255,23,0,70,0,232,255,65,255,24,255,155,255,28,0,26,0,198,255,166,255,234,255,12,0, +203,255,204,255,4,0,194,255,139,255,239,255,56,0,75,0,189,0,23,1,236,0,171,0,72,0,169,255,107,255,162,255, +176,255,101,255,35,255,58,255,123,255,143,255,149,255,157,255,127,255,153,255,239,255,172,255,254,254,237,254,102,255,211,255, +7,0,220,255,151,255,139,255,53,255,175,254,232,254,144,255,207,255,223,255,236,255,211,255,225,255,241,255,183,255,201,255, +56,0,40,0,184,255,187,255,14,0,29,0,238,255,226,255,36,0,114,0,96,0,244,255,197,255,45,0,141,0,86,0, +47,0,120,0,75,0,172,255,223,255,178,0,9,1,236,0,91,0,6,255,242,253,51,254,10,255,101,255,73,255,36,255, +60,255,145,255,209,255,167,255,9,255,122,254,156,254,35,255,110,255,168,255,233,255,210,255,186,255,248,255,230,255,109,255, +94,255,187,255,24,0,117,0,116,0,226,255,106,255,74,255,83,255,228,255,120,0,191,255,161,254,30,255,112,0,167,0, +11,0,159,255,85,255,70,255,166,255,223,255,166,255,113,255,86,255,56,255,102,255,222,255,10,0,210,255,188,255,230,255, +237,255,202,255,229,255,50,0,47,0,229,255,213,255,249,255,7,0,14,0,9,0,231,255,243,255,20,0,198,255,97,255, +131,255,164,255,68,255,2,255,38,255,69,255,112,255,166,255,132,255,114,255,244,255,71,0,225,255,125,255,142,255,176,255, +186,255,215,255,251,255,222,255,131,255,136,255,48,0,170,0,127,0,61,0,29,0,12,0,101,0,7,1,53,1,7,1, +29,1,105,1,117,1,22,1,131,0,69,0,155,0,255,0,225,0,109,0,53,0,83,0,89,0,28,0,235,255,234,255, +6,0,61,0,111,0,88,0,236,255,135,255,181,255,71,0,92,0,3,0,14,0,53,0,232,255,172,255,176,255,120,255, +76,255,128,255,184,255,222,255,244,255,187,255,158,255,251,255,37,0,227,255,252,255,126,0,145,0,254,255,132,255,178,255, +9,0,239,255,232,255,125,0,240,0,159,0,9,0,190,255,212,255,36,0,68,0,11,0,218,255,227,255,244,255,232,255, +174,255,70,255,12,255,97,255,250,255,58,0,46,0,84,0,135,0,67,0,189,255,145,255,169,255,135,255,49,255,17,255, +55,255,94,255,105,255,71,255,238,254,206,254,44,255,129,255,148,255,188,255,210,255,192,255,253,255,49,0,204,255,157,255, +53,0,181,0,180,0,175,0,191,0,202,0,215,0,192,0,142,0,129,0,141,0,136,0,91,0,5,0,207,255,220,255, +231,255,221,255,229,255,7,0,71,0,93,0,250,255,176,255,249,255,47,0,19,0,72,0,148,0,65,0,193,255,190,255, +227,255,215,255,203,255,187,255,172,255,246,255,89,0,27,0,140,255,127,255,173,255,165,255,194,255,240,255,201,255,185,255, +231,255,194,255,125,255,156,255,197,255,193,255,212,255,230,255,231,255,251,255,231,255,164,255,170,255,225,255,199,255,138,255, +163,255,214,255,145,255,25,255,43,255,157,255,203,255,211,255,2,0,33,0,4,0,194,255,137,255,178,255,20,0,11,0, +168,255,102,255,47,255,242,254,5,255,94,255,149,255,158,255,203,255,33,0,60,0,19,0,13,0,25,0,2,0,241,255, +181,255,58,255,66,255,201,255,253,255,26,0,113,0,100,0,23,0,22,0,0,0,224,255,40,0,58,0,199,255,120,255, +82,255,78,255,188,255,223,255,82,255,79,255,240,255,237,255,129,255,146,255,185,255,149,255,97,255,21,255,243,254,130,255, +58,0,68,0,253,255,22,0,83,0,103,0,143,0,202,0,215,0,211,0,166,0,27,0,223,255,131,0,46,1,23,1, +180,0,119,0,68,0,1,0,146,255,34,255,47,255,171,255,253,255,223,255,122,255,56,255,85,255,129,255,138,255,188,255, +11,0,27,0,19,0,70,0,146,0,169,0,131,0,96,0,74,0,18,0,230,255,239,255,197,255,123,255,166,255,232,255, +169,255,119,255,191,255,250,255,4,0,35,0,54,0,68,0,158,0,250,0,240,0,191,0,176,0,151,0,95,0,42,0, +238,255,184,255,216,255,66,0,134,0,143,0,120,0,41,0,243,255,58,0,123,0,47,0,222,255,243,255,11,0,3,0, +0,0,225,255,198,255,234,255,246,255,208,255,234,255,51,0,71,0,67,0,69,0,81,0,133,0,138,0,30,0,233,255, +49,0,70,0,18,0,20,0,33,0,243,255,189,255,160,255,156,255,179,255,181,255,139,255,105,255,125,255,191,255,231,255, +197,255,183,255,3,0,61,0,51,0,52,0,64,0,63,0,81,0,92,0,64,0,36,0,27,0,47,0,106,0,115,0, +52,0,26,0,35,0,6,0,250,255,10,0,1,0,38,0,128,0,133,0,52,0,255,255,248,255,24,0,57,0,35,0, +15,0,41,0,45,0,47,0,91,0,93,0,27,0,226,255,195,255,204,255,250,255,236,255,153,255,120,255,161,255,210,255, +0,0,43,0,31,0,207,255,166,255,229,255,19,0,233,255,199,255,188,255,155,255,148,255,142,255,93,255,112,255,187,255, +179,255,153,255,181,255,169,255,144,255,170,255,163,255,130,255,138,255,139,255,138,255,180,255,198,255,178,255,191,255,225,255, +240,255,224,255,178,255,178,255,250,255,28,0,244,255,198,255,148,255,115,255,138,255,151,255,124,255,145,255,234,255,53,0, +54,0,1,0,251,255,52,0,49,0,222,255,178,255,173,255,152,255,161,255,210,255,227,255,203,255,180,255,194,255,240,255, +19,0,31,0,25,0,246,255,254,255,101,0,191,0,225,0,2,1,223,0,132,0,152,0,183,0,25,0,94,255,74,255, +171,255,62,0,145,0,36,0,146,255,153,255,218,255,249,255,12,0,226,255,149,255,172,255,10,0,12,0,149,255,41,255, +58,255,160,255,216,255,191,255,161,255,187,255,16,0,88,0,47,0,209,255,221,255,44,0,31,0,0,0,107,0,227,0, +193,0,115,0,109,0,123,0,125,0,120,0,91,0,71,0,81,0,73,0,43,0,26,0,36,0,76,0,100,0,64,0, +30,0,56,0,91,0,93,0,88,0,99,0,114,0,101,0,62,0,23,0,248,255,245,255,18,0,16,0,225,255,199,255, +200,255,205,255,218,255,222,255,241,255,50,0,65,0,247,255,213,255,248,255,252,255,238,255,242,255,219,255,214,255,41,0, +96,0,6,0,151,255,166,255,224,255,232,255,17,0,115,0,141,0,76,0,23,0,233,255,179,255,198,255,255,255,229,255, +196,255,24,0,110,0,68,0,249,255,253,255,46,0,84,0,100,0,93,0,73,0,75,0,120,0,144,0,90,0,26,0, +26,0,54,0,77,0,87,0,54,0,18,0,36,0,54,0,51,0,61,0,39,0,251,255,17,0,57,0,30,0,232,255, +182,255,143,255,161,255,224,255,13,0,8,0,222,255,208,255,223,255,196,255,172,255,221,255,7,0,8,0,37,0,56,0, +30,0,7,0,247,255,240,255,4,0,241,255,188,255,208,255,47,0,133,0,162,0,110,0,44,0,61,0,83,0,26,0, +239,255,9,0,31,0,42,0,79,0,84,0,31,0,255,255,2,0,233,255,208,255,242,255,26,0,20,0,15,0,37,0, +22,0,214,255,193,255,255,255,51,0,17,0,218,255,220,255,251,255,2,0,224,255,193,255,218,255,10,0,16,0,245,255, +204,255,168,255,194,255,253,255,248,255,205,255,198,255,206,255,223,255,17,0,31,0,228,255,195,255,242,255,20,0,247,255, +223,255,243,255,16,0,36,0,42,0,36,0,39,0,46,0,38,0,42,0,57,0,39,0,4,0,0,0,30,0,71,0, +90,0,63,0,16,0,240,255,219,255,198,255,187,255,213,255,255,255,252,255,228,255,224,255,196,255,151,255,170,255,215,255, +216,255,212,255,229,255,237,255,238,255,238,255,234,255,232,255,227,255,215,255,190,255,150,255,141,255,191,255,246,255,6,0, +254,255,249,255,14,0,41,0,42,0,56,0,79,0,42,0,254,255,37,0,86,0,79,0,61,0,48,0,21,0,5,0, +11,0,11,0,248,255,237,255,5,0,37,0,29,0,248,255,236,255,7,0,39,0,38,0,16,0,252,255,241,255,242,255, +247,255,245,255,0,0,30,0,40,0,21,0,255,255,241,255,242,255,254,255,242,255,210,255,202,255,233,255,23,0,57,0, +57,0,33,0,21,0,36,0,46,0,22,0,246,255,239,255,247,255,2,0,252,255,217,255,203,255,236,255,3,0,13,0, +40,0,49,0,32,0,24,0,16,0,28,0,67,0,59,0,14,0,20,0,52,0,56,0,64,0,58,0,26,0,39,0, +94,0,96,0,47,0,18,0,22,0,44,0,73,0,62,0,243,255,179,255,195,255,239,255,243,255,221,255,214,255,231,255, +243,255,227,255,216,255,229,255,226,255,198,255,187,255,202,255,223,255,230,255,219,255,216,255,232,255,238,255,235,255,231,255, +227,255,233,255,237,255,220,255,216,255,229,255,226,255,225,255,237,255,233,255,223,255,231,255,242,255,246,255,239,255,238,255, +3,0,255,255,204,255,175,255,186,255,198,255,208,255,208,255,190,255,184,255,193,255,199,255,209,255,206,255,189,255,202,255, +218,255,203,255,202,255,220,255,208,255,192,255,215,255,239,255,230,255,220,255,225,255,219,255,197,255,200,255,237,255,9,0, +7,0,245,255,230,255,227,255,226,255,217,255,216,255,230,255,240,255,227,255,208,255,214,255,231,255,220,255,203,255,208,255, +213,255,207,255,207,255,217,255,242,255,11,0,8,0,251,255,1,0,12,0,17,0,7,0,239,255,238,255,8,0,16,0, +8,0,13,0,13,0,5,0,11,0,24,0,25,0,8,0,246,255,246,255,247,255,242,255,250,255,6,0,14,0,25,0, +15,0,254,255,9,0,17,0,254,255,247,255,244,255,226,255,235,255,11,0,6,0,237,255,237,255,3,0,15,0,4,0, +240,255,238,255,6,0,32,0,31,0,12,0,10,0,17,0,7,0,2,0,22,0,36,0,28,0,21,0,27,0,30,0, +18,0,9,0,13,0,20,0,41,0,64,0,47,0,14,0,22,0,37,0,29,0,29,0,34,0,22,0,13,0,11,0, +12,0,27,0,38,0,32,0,31,0,34,0,23,0,7,0,5,0,9,0,6,0,12,0,26,0,10,0,238,255,252,255, +20,0,250,255,218,255,223,255,241,255,254,255,6,0,4,0,1,0,248,255,236,255,250,255,22,0,21,0,3,0,255,255, +4,0,8,0,9,0,7,0,9,0,22,0,32,0,21,0,4,0,11,0,21,0,5,0,253,255,3,0,240,255,232,255, +17,0,46,0,29,0,15,0,16,0,6,0,3,0,27,0,40,0,22,0,22,0,52,0,48,0,18,0,16,0,22,0, +12,0,15,0,24,0,16,0,18,0,28,0,20,0,9,0,7,0,4,0,2,0,253,255,238,255,231,255,243,255,0,0, +0,0,6,0,20,0,11,0,247,255,5,0,25,0,11,0,3,0,24,0,26,0,8,0,7,0,14,0,12,0,12,0, +21,0,21,0,9,0,15,0,41,0,37,0,9,0,4,0,12,0,13,0,14,0,6,0,252,255,11,0,22,0,6,0, +248,255,246,255,249,255,12,0,27,0,11,0,248,255,254,255,11,0,17,0,23,0,24,0,11,0,12,0,37,0,40,0, +9,0,253,255,7,0,4,0,255,255,0,0,254,255,9,0,29,0,32,0,22,0,13,0,8,0,15,0,23,0,12,0, +0,0,3,0,2,0,254,255,14,0,34,0,21,0,245,255,236,255,248,255,6,0,14,0,246,255,203,255,198,255,229,255, +247,255,252,255,0,0,1,0,12,0,24,0,18,0,10,0,7,0,252,255,248,255,244,255,221,255,208,255,217,255,219,255, +218,255,230,255,241,255,237,255,225,255,216,255,220,255,237,255,253,255,252,255,229,255,214,255,227,255,242,255,239,255,229,255, +226,255,234,255,240,255,233,255,229,255,240,255,244,255,244,255,246,255,241,255,234,255,240,255,244,255,241,255,248,255,253,255, +239,255,237,255,2,0,10,0,251,255,250,255,4,0,249,255,240,255,253,255,7,0,6,0,13,0,15,0,5,0,252,255, +1,0,14,0,18,0,3,0,2,0,19,0,24,0,23,0,20,0,1,0,239,255,239,255,240,255,244,255,3,0,4,0, +252,255,3,0,1,0,238,255,229,255,239,255,246,255,250,255,5,0,9,0,249,255,241,255,253,255,253,255,248,255,7,0, +10,0,249,255,250,255,8,0,8,0,11,0,10,0,241,255,225,255,246,255,16,0,18,0,2,0,241,255,244,255,8,0, +12,0,253,255,253,255,5,0,250,255,246,255,12,0,21,0,5,0,254,255,6,0,9,0,4,0,251,255,252,255,9,0, +5,0,247,255,255,255,9,0,254,255,241,255,241,255,254,255,14,0,15,0,4,0,1,0,255,255,250,255,249,255,254,255, +5,0,10,0,8,0,7,0,6,0,255,255,253,255,4,0,2,0,243,255,232,255,235,255,253,255,7,0,250,255,236,255, +239,255,247,255,249,255,244,255,237,255,246,255,2,0,250,255,235,255,229,255,222,255,229,255,0,0,12,0,254,255,247,255, +250,255,242,255,232,255,239,255,246,255,244,255,242,255,244,255,0,0,22,0,32,0,18,0,2,0,255,255,3,0,0,0, +241,255,230,255,237,255,242,255,240,255,243,255,245,255,245,255,252,255,251,255,239,255,242,255,252,255,247,255,244,255,250,255, +247,255,233,255,229,255,240,255,251,255,0,0,13,0,23,0,8,0,247,255,252,255,2,0,250,255,246,255,248,255,246,255, +243,255,244,255,252,255,5,0,2,0,246,255,243,255,250,255,1,0,1,0,254,255,0,0,8,0,6,0,253,255,0,0, +9,0,4,0,253,255,5,0,13,0,5,0,253,255,0,0,4,0,2,0,2,0,4,0,5,0,7,0,8,0,5,0, +4,0,6,0,8,0,6,0,2,0,0,0,0,0,1,0,2,0,255,255,3,0,15,0,12,0,4,0,13,0,15,0, +255,255,6,0,27,0,24,0,10,0,12,0,14,0,6,0,5,0,12,0,12,0,0,0,245,255,244,255,250,255,4,0, +9,0,4,0,2,0,9,0,10,0,3,0,8,0,14,0,8,0,4,0,3,0,254,255,1,0,9,0,4,0,1,0, +18,0,26,0,3,0,245,255,6,0,12,0,248,255,241,255,0,0,8,0,3,0,3,0,10,0,9,0,1,0,254,255, +1,0,252,255,243,255,248,255,2,0,1,0,249,255,251,255,5,0,15,0,14,0,4,0,255,255,8,0,12,0,253,255, +240,255,243,255,245,255,246,255,0,0,4,0,254,255,0,0,2,0,251,255,250,255,3,0,4,0,1,0,5,0,8,0, +7,0,6,0,0,0,249,255,252,255,4,0,2,0,249,255,244,255,247,255,250,255,247,255,244,255,246,255,246,255,247,255, +253,255,0,0,255,255,1,0,7,0,9,0,7,0,4,0,0,0,2,0,5,0,0,0,252,255,2,0,7,0,9,0, +16,0,16,0,4,0,0,0,6,0,6,0,2,0,253,255,243,255,242,255,3,0,9,0,251,255,245,255,255,255,4,0, +3,0,6,0,7,0,5,0,1,0,252,255,250,255,255,255,255,255,250,255,253,255,3,0,7,0,9,0,8,0,6,0, +7,0,1,0,247,255,253,255,10,0,5,0,246,255,247,255,255,255,3,0,7,0,6,0,1,0,5,0,15,0,14,0, +8,0,7,0,3,0,254,255,3,0,8,0,5,0,3,0,7,0,10,0,12,0,11,0,5,0,2,0,3,0,1,0, +251,255,250,255,250,255,248,255,250,255,255,255,254,255,249,255,252,255,5,0,8,0,2,0,255,255,4,0,6,0,6,0, +7,0,6,0,4,0,7,0,5,0,252,255,252,255,2,0,0,0,255,255,4,0,1,0,249,255,248,255,247,255,244,255, +252,255,7,0,6,0,0,0,3,0,10,0,9,0,2,0,251,255,250,255,255,255,0,0,249,255,247,255,254,255,2,0, +255,255,0,0,5,0,5,0,1,0,2,0,5,0,255,255,245,255,251,255,7,0,2,0,246,255,255,255,14,0,9,0, +255,255,1,0,3,0,255,255,254,255,2,0,4,0,7,0,8,0,3,0,0,0,3,0,3,0,0,0,3,0,5,0, +1,0,253,255,251,255,250,255,254,255,4,0,3,0,254,255,255,255,4,0,3,0,2,0,9,0,10,0,0,0,253,255, +5,0,4,0,0,0,6,0,7,0,255,255,252,255,254,255,254,255,253,255,255,255,255,255,0,0,1,0,0,0,255,255, +1,0,5,0,6,0,4,0,2,0,1,0,1,0,1,0,0,0,255,255,2,0,4,0,255,255,251,255,254,255,1,0, +253,255,252,255,0,0,0,0,252,255,252,255,0,0,1,0,255,255,253,255,254,255,3,0,5,0,2,0,0,0,1,0, +1,0,2,0,1,0,4,0,7,0,4,0,1,0,6,0,10,0,4,0,255,255,254,255,251,255,248,255,250,255,255,255, +0,0,254,255,255,255,0,0,253,255,254,255,2,0,1,0,254,255,253,255,252,255,251,255,253,255,251,255,248,255,252,255, +1,0,3,0,2,0,3,0,7,0,10,0,7,0,0,0,253,255,254,255,255,255,254,255,251,255,250,255,254,255,255,255, +254,255,1,0,4,0,1,0,250,255,249,255,250,255,252,255,255,255,1,0,253,255,251,255,253,255,254,255,253,255,252,255, +252,255,255,255,1,0,255,255,251,255,252,255,254,255,0,0,255,255,253,255,254,255,255,255,255,255,0,0,0,0,254,255, +254,255,253,255,253,255,253,255,254,255,255,255,2,0,2,0,255,255,252,255,252,255,254,255,0,0,255,255,253,255,255,255, +0,0,255,255,0,0,1,0,1,0,1,0,255,255,0,0,3,0,2,0,254,255,254,255,0,0,254,255,254,255,1,0, +0,0,251,255,250,255,253,255,0,0,1,0,254,255,250,255,252,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0, +0,0,254,255,254,255,254,255,253,255,255,255,0,0,0,0,255,255,0,0,255,255,254,255,255,255,1,0,1,0,255,255, +0,0,1,0,0,0,255,255,254,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/cloth3.pcm b/src/client/sound/data/cloth3.pcm new file mode 100755 index 0000000..a651b1e --- /dev/null +++ b/src/client/sound/data/cloth3.pcm @@ -0,0 +1,564 @@ +unsigned char PCM_cloth3[17962] = { +1,0,0,0,2,0,0,0,68,172,0,0,13,35,0,0,0,0,251,255,249,255,252,255,250,255,244,255,242,255,239,255, +231,255,228,255,228,255,224,255,222,255,220,255,211,255,205,255,205,255,204,255,209,255,216,255,212,255,204,255,206,255,206,255, +201,255,197,255,191,255,188,255,194,255,197,255,189,255,171,255,155,255,156,255,154,255,136,255,124,255,121,255,111,255,112,255, +115,255,103,255,106,255,126,255,136,255,150,255,160,255,144,255,143,255,148,255,107,255,72,255,88,255,99,255,96,255,115,255, +133,255,134,255,132,255,128,255,148,255,190,255,220,255,11,0,65,0,65,0,59,0,94,0,109,0,107,0,121,0,119,0, +125,0,155,0,160,0,162,0,160,0,90,0,47,0,115,0,143,0,89,0,94,0,150,0,191,0,239,0,14,1,3,1, +251,0,247,0,242,0,240,0,229,0,244,0,43,1,55,1,21,1,20,1,54,1,125,1,203,1,208,1,208,1,17,2, +50,2,76,2,166,2,167,2,70,2,69,2,110,2,96,2,126,2,135,2,46,2,61,2,199,2,209,2,119,2,140,2, +215,2,196,2,123,2,93,2,103,2,123,2,150,2,93,2,157,1,51,1,140,1,182,1,146,1,225,1,10,2,146,1, +120,1,195,1,131,1,50,1,112,1,142,1,46,1,195,0,156,0,206,0,254,0,216,0,206,0,14,1,1,1,178,0, +163,0,188,0,169,0,95,0,13,0,6,0,36,0,22,0,27,0,74,0,76,0,60,0,70,0,82,0,155,0,1,1, +0,1,241,0,24,1,215,0,93,0,113,0,181,0,154,0,78,0,249,255,248,255,118,0,132,0,195,255,70,255,89,255, +51,255,217,254,209,254,241,254,234,254,219,254,206,254,124,254,248,253,243,253,143,254,246,254,186,254,43,254,135,253,63,253, +160,253,246,253,225,253,1,254,92,254,135,254,221,254,80,255,32,255,141,254,59,254,0,254,204,253,169,253,78,253,42,253, +172,253,252,253,197,253,223,253,60,254,85,254,156,254,13,255,28,255,81,255,14,0,123,0,80,0,35,0,22,0,16,0, +40,0,70,0,87,0,51,0,129,255,178,254,204,254,178,255,64,0,47,0,51,0,77,0,221,255,88,255,167,255,8,0, +131,255,5,255,72,255,135,255,178,255,79,0,184,0,93,0,212,255,150,255,171,255,199,255,130,255,87,255,212,255,48,0, +248,255,241,255,19,0,214,255,173,255,209,255,216,255,217,255,213,255,142,255,93,255,98,255,36,255,237,254,87,255,223,255, +223,255,171,255,214,255,52,0,35,0,174,255,168,255,66,0,167,0,123,0,68,0,132,0,40,1,127,1,59,1,41,1, +147,1,148,1,59,1,119,1,221,1,202,1,226,1,46,2,245,1,171,1,198,1,174,1,92,1,54,1,247,0,200,0, +57,1,188,1,157,1,75,1,118,1,24,2,99,2,206,1,35,1,28,1,84,1,161,1,17,2,39,2,22,2,61,2, +245,1,108,1,122,1,91,1,208,0,43,1,207,1,87,1,249,0,159,1,241,1,141,1,90,1,120,1,163,1,184,1, +157,1,173,1,233,1,204,1,191,1,107,2,252,2,122,2,198,1,25,2,163,2,12,2,49,1,42,1,232,0,22,0, +90,0,149,1,6,2,172,1,75,1,169,0,198,255,22,255,204,254,185,254,34,254,249,252,141,252,217,252,91,252,109,251, +109,251,179,251,68,251,245,250,88,251,126,251,241,250,83,250,213,249,68,249,11,249,127,249,9,250,26,250,17,250,133,250, +21,251,2,251,209,250,248,250,71,250,223,248,200,248,130,249,38,249,136,248,196,248,83,249,9,250,23,250,231,248,214,248, +101,250,25,250,8,248,242,247,166,249,114,250,115,250,245,250,177,251,145,251,166,250,82,250,214,250,238,250,156,250,168,250, +200,250,40,251,60,252,251,252,212,252,230,252,83,253,7,253,32,252,181,251,70,252,95,253,199,253,209,252,214,251,105,252, +198,253,104,254,168,254,57,255,100,255,16,255,194,255,100,1,193,1,244,0,79,1,53,2,170,1,244,0,57,1,233,0, +92,0,132,1,134,3,210,4,28,5,246,3,56,2,173,1,237,1,9,2,74,2,89,2,35,2,165,2,100,3,34,3, +47,2,83,1,200,0,158,0,177,0,195,0,160,0,103,0,179,0,118,1,218,1,130,1,133,0,96,255,28,255,178,255, +28,0,253,255,99,255,125,254,5,254,81,254,15,255,160,255,130,255,123,255,52,0,123,0,233,255,133,255,59,255,13,255, +147,255,196,255,8,255,129,254,64,254,3,254,72,254,151,254,198,254,156,255,141,0,246,0,85,1,108,1,26,1,24,1, +36,1,211,0,162,0,211,0,123,1,34,2,182,1,191,0,142,0,174,0,181,0,48,1,140,1,255,0,47,0,191,255, +149,255,188,255,66,0,171,0,135,0,80,0,124,0,145,0,115,0,106,0,29,0,18,0,41,1,226,1,33,1,252,0, +40,2,97,2,106,1,81,1,64,2,188,2,110,2,233,1,100,1,38,1,198,1,200,2,225,2,90,2,125,2,30,3, +116,3,129,3,8,3,249,1,108,1,171,1,134,1,223,0,208,0,137,1,122,2,26,3,241,2,134,2,162,2,185,2, +146,2,205,2,182,2,197,1,82,1,143,1,126,1,177,1,114,2,150,2,32,2,217,1,192,1,213,1,193,1,49,1, +13,1,100,1,34,1,17,1,77,2,106,3,77,3,254,2,252,2,133,2,118,1,173,0,164,0,191,0,196,0,113,1, +83,2,24,2,91,1,126,1,7,2,247,1,100,1,251,0,114,1,96,2,119,2,6,2,237,1,77,1,103,0,17,1, +6,2,238,0,181,255,84,0,196,0,9,0,233,255,148,0,209,0,162,0,161,0,45,1,7,2,44,2,171,1,191,1, +16,2,97,1,80,0,252,255,78,0,29,1,212,1,99,1,131,0,149,0,22,1,144,1,53,2,234,1,135,0,246,255, +163,0,131,1,8,2,139,1,137,0,55,0,162,255,142,254,227,254,215,255,177,255,149,255,165,255,7,255,35,255,228,255, +114,255,147,254,49,254,182,253,218,253,173,254,162,254,237,253,158,253,217,253,187,254,94,255,135,254,117,253,253,253,85,255, +185,255,77,255,123,255,45,0,40,0,156,255,43,255,202,254,34,255,13,0,4,0,107,255,122,255,149,255,163,255,66,0, +206,0,13,1,72,1,243,0,128,0,0,1,219,1,60,2,94,2,107,2,55,2,162,1,2,1,12,1,170,1,96,2, +60,3,181,3,13,3,80,2,220,2,196,3,145,3,32,3,203,3,77,4,114,3,207,2,57,3,127,3,164,3,33,4, +104,4,150,4,190,4,138,4,215,4,219,5,64,6,6,6,206,5,40,5,51,4,153,3,115,3,144,3,78,3,175,2, +193,2,28,3,183,2,97,2,91,2,144,1,150,0,126,0,143,0,105,0,141,0,63,0,222,254,4,254,168,254,44,255, +236,254,21,255,173,255,75,0,32,1,108,1,254,0,186,0,103,0,132,0,27,2,87,3,146,3,23,5,212,6,211,6, +49,7,64,8,2,8,229,7,20,9,174,9,27,9,46,8,191,7,152,8,65,9,39,8,210,6,33,6,245,4,188,3, +89,3,73,3,84,3,167,3,6,4,29,4,146,3,103,2,1,1,165,255,185,254,140,254,220,254,110,255,12,0,85,0, +31,0,50,255,179,253,195,252,227,252,39,253,220,252,68,252,222,251,132,251,169,250,237,249,94,250,63,251,86,251,11,251, +70,251,241,251,101,252,128,252,162,252,158,252,52,252,235,251,211,251,142,251,148,251,6,252,75,252,119,252,191,252,250,252, +15,253,200,252,130,252,209,252,200,252,205,251,16,251,216,250,102,250,220,249,69,249,178,248,72,249,21,251,33,252,133,251, +185,250,203,250,255,250,17,251,90,251,228,250,154,249,83,249,246,249,44,250,45,250,217,249,29,249,90,249,45,250,244,249, +20,249,49,248,187,247,129,248,71,249,226,248,79,248,125,247,158,246,125,247,211,248,125,248,22,248,73,248,126,247,87,246, +244,245,164,245,66,245,88,245,204,245,45,246,69,246,29,246,149,245,18,245,176,245,204,246,21,247,118,247,20,248,214,247, +249,247,252,248,28,249,22,249,3,250,38,250,152,249,21,250,175,250,132,250,171,250,75,251,224,251,208,252,55,254,10,255, +170,254,20,254,34,254,87,254,172,254,77,255,108,255,84,255,119,0,181,2,108,4,28,4,99,2,23,2,187,3,235,4, +120,5,35,6,223,5,80,5,212,5,192,5,137,4,187,4,35,6,198,5,68,4,205,4,101,6,153,5,171,3,208,3, +176,4,15,4,244,2,115,2,125,2,243,2,51,3,26,3,250,2,121,2,21,2,126,2,43,3,80,4,233,5,44,6, +56,5,3,5,200,5,215,6,146,7,180,7,120,8,168,9,63,9,48,8,255,7,255,6,6,5,31,4,255,3,161,3, +151,3,251,3,16,4,147,3,51,3,201,3,138,4,238,3,79,2,19,1,150,0,5,0,208,254,229,253,181,253,239,252, +178,251,98,251,87,251,214,250,169,250,147,250,43,250,11,250,159,249,84,248,167,247,136,248,171,249,125,249,100,248,80,248, +62,249,73,249,242,248,214,249,255,250,167,251,159,252,146,253,21,254,189,254,12,255,141,254,68,254,172,254,81,255,231,255, +32,0,60,0,140,0,122,0,83,0,181,0,75,0,215,254,59,254,59,254,181,253,145,253,200,253,127,253,138,253,174,253, +235,252,246,252,142,254,70,255,104,254,152,253,136,253,236,253,21,254,167,253,68,253,37,253,58,253,241,253,147,254,91,254, +94,254,189,254,123,254,196,254,115,0,146,1,127,1,245,1,158,2,12,2,118,1,226,1,182,1,221,0,249,0,143,1, +70,2,191,3,219,3,185,1,174,0,54,1,18,1,238,0,241,0,35,0,223,255,186,255,50,254,191,253,220,254,76,254, +19,253,148,253,247,253,112,253,93,253,25,253,73,252,89,252,28,253,239,252,14,252,36,252,15,253,99,253,96,253,188,253, +14,254,119,254,39,255,218,255,212,0,32,1,165,255,59,254,234,253,124,253,184,253,34,255,20,0,99,0,101,0,35,0, +18,1,108,2,209,1,255,0,18,2,79,3,137,3,207,3,238,4,46,6,13,6,152,5,240,6,76,8,182,7,196,6, +104,6,113,6,56,7,20,8,179,8,148,9,75,10,234,10,95,11,105,10,182,8,234,7,12,8,143,8,111,8,55,8, +125,9,130,9,167,7,241,8,132,10,80,7,247,6,221,12,25,16,21,16,224,16,79,14,237,8,252,6,222,7,20,10, +63,14,205,16,10,16,224,14,204,13,140,12,145,12,64,13,35,13,250,12,175,13,105,14,109,14,141,14,129,14,207,12, +98,10,73,8,171,5,165,3,248,2,182,1,124,0,43,0,199,254,231,253,86,255,226,254,103,251,2,249,106,248,4,249, +76,251,12,253,223,252,144,252,168,252,163,252,183,252,173,252,42,252,60,251,197,250,170,251,132,252,135,252,74,253,160,253, +155,251,13,250,167,250,211,250,44,250,66,250,115,250,193,249,236,248,188,249,180,252,76,255,0,255,62,252,232,248,39,247, +202,247,137,248,219,247,136,247,125,248,15,249,254,247,233,245,150,244,254,244,236,245,238,245,86,245,187,244,216,243,86,243, +149,244,170,246,111,247,0,247,145,246,116,246,236,246,168,247,73,248,152,249,16,251,119,251,44,252,179,253,85,254,185,254, +239,255,177,0,27,1,159,1,232,0,119,255,174,254,21,254,205,253,8,254,173,253,5,253,40,253,13,254,76,255,183,255, +158,254,138,253,107,253,227,253,212,254,6,255,217,253,24,253,128,253,106,254,143,255,202,255,11,255,10,255,77,255,4,255, +84,255,137,255,126,254,169,253,196,253,90,254,6,255,24,254,130,251,234,249,190,249,215,249,107,250,224,250,79,250,242,248, +196,246,44,245,87,246,86,248,12,248,204,246,228,246,61,247,37,246,6,245,9,246,161,247,128,247,5,247,1,247,14,246, +142,245,243,246,223,247,109,247,81,247,182,247,50,248,160,248,172,248,217,248,121,248,194,246,233,246,36,250,189,251,170,250, +217,250,27,252,210,251,141,250,176,249,117,249,166,249,26,250,44,251,126,252,154,252,72,251,199,249,57,249,172,249,14,250, +109,250,136,251,35,252,19,252,241,252,144,253,62,253,6,254,195,254,212,253,58,253,150,252,235,250,233,250,224,251,39,251, +189,250,247,250,220,249,89,249,223,249,119,249,253,249,245,251,125,252,11,252,194,251,127,250,76,249,128,249,142,249,87,248, +32,247,115,247,223,247,40,246,11,245,165,246,209,246,42,245,187,245,58,246,125,244,156,244,36,246,62,245,69,244,133,245, +69,246,175,245,244,245,19,247,27,247,89,246,145,246,149,246,22,245,152,244,228,245,148,246,237,246,177,247,193,247,27,248, +178,249,192,250,206,250,55,251,46,253,121,0,88,2,142,2,100,4,115,6,6,6,42,6,98,7,27,6,243,3,93,3, +84,2,214,0,168,0,237,0,84,1,13,3,12,5,136,4,148,1,2,0,168,0,104,255,43,252,130,251,111,253,204,254, +0,255,50,254,182,252,209,251,201,251,57,252,112,252,92,251,235,249,136,249,152,249,38,250,196,251,34,253,151,253,186,253, +230,253,12,255,213,0,95,1,118,1,67,2,0,2,217,0,97,1,110,3,9,5,34,5,26,4,101,4,155,6,63,7, +134,5,245,4,69,6,191,7,15,10,224,12,252,12,156,10,214,9,247,10,199,10,177,9,125,10,94,12,100,13,88,14, +22,15,117,13,164,10,52,10,171,11,110,12,219,12,165,13,186,13,155,13,82,14,134,14,130,13,120,12,127,11,147,10, +254,10,89,12,187,12,80,12,140,12,111,13,14,14,32,14,226,13,158,13,236,13,233,14,57,15,245,13,163,12,106,12, +25,12,37,11,167,10,144,10,54,10,144,10,66,12,170,13,105,13,252,11,137,10,125,10,59,12,108,13,170,12,66,12, +62,13,142,13,234,12,189,12,231,12,228,12,156,12,224,11,111,11,124,11,229,10,127,10,150,11,231,11,13,10,253,8, +20,10,8,11,231,10,67,10,255,8,9,8,85,8,102,8,209,7,96,8,13,9,229,7,235,6,98,7,35,7,132,6, +184,7,203,9,217,10,133,10,134,9,181,9,209,10,48,10,171,8,109,8,176,7,95,6,13,7,144,7,109,5,233,3, +82,4,212,3,210,2,225,2,134,2,168,1,21,2,220,2,106,2,241,1,32,2,116,1,248,255,126,255,123,255,46,254, +232,252,54,253,48,253,66,252,242,252,144,254,127,254,130,254,232,255,121,255,78,253,35,253,197,253,165,252,230,251,114,252, +95,252,75,252,200,252,21,252,154,250,228,249,145,249,223,249,54,251,59,252,178,252,158,253,93,254,51,254,202,253,232,253, +214,254,238,255,63,0,218,255,140,254,93,252,59,251,203,251,68,252,84,252,69,252,38,251,68,249,136,247,90,246,75,247, +128,249,209,248,217,245,208,244,205,244,44,243,99,241,203,240,145,240,127,240,166,240,225,240,50,241,46,241,23,241,204,241, +139,242,60,242,146,241,96,241,207,241,38,243,224,244,28,246,130,247,205,249,224,251,194,252,249,252,146,252,140,251,214,251, +74,254,168,0,9,2,196,3,128,5,106,6,209,6,38,6,7,5,34,6,23,9,76,11,137,12,200,12,142,11,222,10, +9,12,87,13,22,14,248,14,133,15,70,15,215,14,189,14,212,14,194,14,237,14,145,15,95,15,247,13,227,12,14,12, +128,10,75,9,4,9,195,8,240,8,189,9,185,9,25,9,72,9,152,9,137,9,129,10,219,11,200,11,25,12,15,14, +49,14,247,11,123,11,22,12,173,10,67,9,245,8,148,7,196,6,57,8,83,9,42,10,76,12,143,12,151,9,48,7, +175,6,79,6,233,5,110,6,218,7,204,8,152,8,201,8,203,8,253,5,146,2,27,2,157,2,191,2,212,4,147,7, +111,7,26,5,14,3,28,2,166,2,75,4,12,5,208,3,23,3,160,5,195,8,38,8,42,5,128,3,99,3,252,3, +194,4,215,4,180,4,143,4,131,3,49,3,203,4,224,4,24,2,19,0,245,255,18,0,158,0,1,1,39,255,117,252, +221,251,62,252,183,251,40,252,41,254,137,254,165,253,16,255,19,1,79,0,248,254,121,254,254,252,162,252,127,255,208,1, +163,1,237,0,59,255,76,253,151,254,79,1,126,1,161,0,15,0,15,255,65,0,116,3,181,2,183,254,244,253,73,255, +198,254,126,254,31,255,88,254,215,253,175,254,130,254,47,254,236,254,40,254,213,252,25,254,54,255,30,253,41,250,148,248, +125,248,96,249,219,249,67,250,119,251,159,251,98,251,187,253,184,255,58,254,100,253,122,254,128,253,47,252,207,253,222,254, +91,253,204,252,108,253,58,252,28,250,228,249,33,251,242,251,94,252,210,252,141,252,214,251,241,251,191,251,214,249,111,248, +146,249,50,251,74,251,13,251,252,251,49,253,213,252,94,251,92,251,25,253,215,253,170,252,254,251,102,253,67,255,120,255, +104,254,249,253,214,254,20,0,154,0,89,0,94,0,160,0,222,255,212,254,20,255,133,255,71,255,192,255,95,0,1,255, +119,252,241,250,151,250,71,250,60,249,39,248,84,248,96,249,84,250,2,251,208,250,223,249,180,249,85,250,211,250,34,251, +249,250,8,251,186,252,216,253,20,252,142,250,205,251,147,253,9,254,75,253,30,252,42,252,20,253,29,253,153,253,108,255, +253,255,10,255,60,255,188,0,246,1,95,2,97,2,88,3,100,5,25,6,143,4,55,3,18,4,220,5,77,5,213,1, +162,255,44,1,112,3,82,4,215,4,116,4,190,2,67,2,55,3,130,2,126,0,25,0,207,0,213,0,135,0,220,255, +176,254,192,254,49,0,191,0,34,0,190,255,232,255,76,0,250,255,168,254,3,254,210,253,41,252,199,250,101,251,78,251, +199,249,106,249,236,249,182,249,143,249,129,250,112,252,193,253,223,252,112,251,46,251,202,250,46,250,169,250,185,251,245,252, +142,253,228,251,10,250,100,250,197,250,112,250,195,250,138,250,24,250,186,250,200,249,84,247,83,247,95,248,143,247,10,247, +201,247,15,248,16,248,139,248,106,249,5,250,36,249,23,248,61,249,210,250,111,250,215,248,29,247,131,246,25,248,195,249, +140,249,119,248,6,247,121,245,136,245,223,246,200,246,246,244,7,244,68,245,252,246,124,247,196,246,85,245,173,244,242,245, +18,247,151,246,152,246,203,247,79,249,86,251,18,252,17,250,84,248,143,248,11,249,18,249,87,248,226,247,220,249,65,251, +25,249,21,248,72,250,115,251,122,251,224,251,238,250,191,249,115,249,200,247,205,246,122,249,146,251,60,250,186,248,217,247, +133,246,199,246,200,248,54,249,249,247,241,247,74,249,186,250,70,252,182,252,215,250,117,249,138,250,102,251,213,250,221,250, +252,251,71,253,203,253,236,252,66,252,212,252,1,253,24,253,113,254,40,255,230,253,36,252,12,251,48,251,237,251,220,251, +65,252,254,253,239,254,232,254,195,254,139,253,232,252,121,254,15,255,251,253,87,254,75,255,235,254,174,254,92,255,34,0, +75,0,112,255,27,255,145,0,34,2,4,3,168,3,5,3,218,1,110,2,251,3,245,4,115,5,54,5,121,4,133,4, +216,5,235,7,3,9,19,8,100,7,111,8,77,9,153,9,104,10,101,11,3,13,104,15,86,16,101,15,170,14,209,14, +159,15,120,16,113,16,130,16,89,17,74,17,73,16,219,15,218,15,39,16,118,16,18,15,229,12,163,12,85,13,230,12, +51,12,13,12,117,11,202,9,162,7,39,6,108,5,211,3,37,1,224,255,31,1,117,2,70,2,47,2,209,2,98,2, +21,1,178,0,207,0,117,0,180,255,54,254,108,252,149,251,179,251,139,252,137,253,119,253,34,253,209,252,143,250,86,248, +48,249,31,250,137,249,235,249,205,249,69,248,134,248,5,249,65,247,100,246,70,246,228,243,249,241,55,242,73,242,62,243, +164,245,53,246,40,245,204,244,106,244,39,244,131,245,171,247,136,249,64,251,92,252,229,252,37,254,215,255,255,255,61,255, +145,0,65,3,238,3,97,3,26,4,59,5,165,5,155,5,239,4,44,4,237,3,171,3,10,4,107,5,27,6,205,5, +26,5,54,3,87,1,182,1,123,2,101,1,59,0,74,0,166,255,50,254,31,255,215,1,163,1,227,255,230,1,122,4, +116,2,95,0,33,2,56,3,226,1,202,1,63,3,142,3,105,2,184,1,125,2,54,3,199,2,179,2,31,3,252,1, +226,255,115,255,212,0,83,2,176,2,118,1,182,255,238,254,24,254,160,251,80,249,250,248,82,248,229,245,36,244,174,243, +130,242,5,241,197,240,11,241,109,240,27,239,65,238,223,237,73,237,18,237,63,236,31,233,248,231,183,236,226,241,249,242, +171,242,89,241,128,238,228,236,7,236,200,234,93,235,166,236,32,238,170,243,187,249,87,249,42,246,89,245,36,245,43,245, +140,245,130,243,213,239,52,238,217,239,75,243,177,244,32,243,185,243,13,247,17,247,212,243,169,242,117,244,171,247,3,251, +103,252,125,252,189,253,208,254,36,254,33,254,81,255,251,254,246,253,37,255,254,0,214,0,233,255,119,0,221,2,156,5, +69,6,13,5,0,5,192,6,84,8,146,8,252,6,197,4,223,4,126,7,92,10,61,12,145,12,41,12,200,12,4,13, +53,11,242,9,181,10,166,11,62,12,165,12,124,12,133,12,115,12,92,11,207,10,71,11,1,11,161,10,227,10,24,10, +248,8,138,9,122,10,220,10,237,11,201,12,243,11,102,10,73,9,89,9,212,10,148,11,127,10,25,10,13,11,167,11, +215,12,226,14,205,14,222,12,84,12,237,12,246,12,147,12,185,11,84,11,50,13,166,15,24,16,166,15,120,15,192,14, +4,14,16,14,99,14,24,15,238,15,211,15,131,15,187,15,120,15,88,15,4,16,65,15,160,13,153,14,24,16,162,14, +136,13,26,15,149,15,15,14,129,13,225,13,2,14,98,14,141,14,183,13,203,12,230,12,184,13,177,13,11,12,75,10, +128,9,219,8,152,8,165,9,68,11,96,12,123,12,105,11,144,10,59,11,202,11,180,10,79,9,215,8,237,8,142,9, +139,10,149,10,136,9,135,8,239,7,93,8,244,9,206,9,188,6,185,4,92,5,147,5,197,4,36,4,241,2,152,1, +69,1,249,0,44,0,127,255,171,254,237,253,40,254,64,255,63,0,161,255,112,253,254,251,172,251,94,251,48,252,34,254, +5,255,27,255,121,255,35,255,193,253,112,252,68,252,226,252,104,252,91,251,38,252,99,253,39,253,80,253,61,254,62,254, +104,253,31,252,107,251,88,252,223,252,154,252,104,253,233,252,188,250,232,251,199,254,249,253,87,252,251,252,111,253,249,253, +3,0,8,1,145,255,103,253,197,252,163,254,185,0,2,0,128,253,217,251,104,251,54,251,24,251,208,251,192,252,28,252, +236,250,127,251,171,252,204,252,161,252,39,252,1,251,246,250,48,253,175,255,57,0,228,255,152,0,100,0,27,253,23,250, +176,250,50,252,247,251,16,252,121,253,176,253,186,252,138,253,85,255,47,255,178,254,208,255,227,255,31,254,37,253,177,252, +109,251,93,250,108,249,217,247,239,246,119,247,161,248,223,249,172,250,134,250,181,249,54,249,240,249,103,251,89,252,147,252, +29,252,253,250,228,249,183,248,217,247,77,249,201,251,111,251,87,249,32,249,99,250,78,251,169,251,63,251,88,250,114,250, +226,251,136,252,27,251,23,250,91,251,127,252,66,252,209,252,120,254,245,255,83,1,27,2,217,1,82,1,105,0,58,255, +207,254,116,254,89,253,169,252,161,252,42,252,64,251,25,251,162,252,117,254,166,254,142,254,8,255,193,253,23,251,190,249, +96,249,120,249,125,250,153,250,167,249,190,250,99,253,14,254,172,252,219,251,128,252,26,253,173,252,110,252,251,252,78,253, +136,253,99,254,127,255,159,0,224,0,7,255,235,252,153,252,21,252,29,250,82,249,35,251,157,253,95,254,49,253,109,252, +88,253,26,254,147,254,82,0,162,0,124,253,231,251,164,253,80,252,188,247,210,247,125,252,226,253,235,250,120,249,145,252, +103,1,212,2,83,255,33,251,251,249,240,250,91,252,247,253,63,255,94,0,56,2,36,3,138,0,173,252,64,252,118,254, +18,255,85,254,220,254,117,255,80,254,55,253,177,253,155,254,177,255,101,1,176,1,196,255,8,255,99,0,134,0,194,255, +67,0,241,255,88,254,148,254,72,255,166,253,244,251,201,251,146,251,145,251,42,252,65,252,128,252,196,253,248,254,115,255, +73,255,152,254,205,254,223,0,182,2,253,1,96,0,228,0,154,1,122,254,177,249,135,248,243,250,135,253,88,254,205,252, +44,250,227,248,55,249,72,250,247,251,35,253,142,252,105,251,62,251,134,251,81,251,114,250,28,249,138,248,213,249,56,251, +6,251,182,251,170,254,65,0,227,254,213,253,150,254,54,255,136,254,199,253,216,254,63,1,227,2,3,4,70,5,6,5, +85,3,58,2,115,1,12,0,157,254,250,253,193,254,15,0,185,255,163,254,126,255,72,1,134,1,50,1,55,2,229,2, +207,0,121,254,107,255,102,1,11,1,78,255,232,253,200,253,241,254,200,254,222,252,71,252,183,252,170,252,170,253,3,255, +29,255,3,0,193,1,240,1,38,1,132,0,69,0,236,0,87,1,117,1,15,3,109,4,210,3,57,3,86,2,74,0, +201,255,220,0,25,1,86,1,30,2,111,2,180,2,148,2,167,1,137,1,15,2,171,1,214,0,110,0,17,1,129,2, +235,1,46,255,4,255,253,1,44,3,118,1,91,0,7,1,184,1,47,2,118,3,142,4,59,4,184,3,163,3,21,3, +179,2,18,3,34,3,218,2,200,2,187,2,234,2,211,2,143,1,142,0,250,0,55,1,195,0,232,0,156,1,122,2, +98,3,176,2,31,0,41,255,241,0,89,1,28,255,198,253,212,253,162,253,174,254,147,0,56,0,80,255,185,0,1,2, +150,1,130,1,132,1,40,0,184,254,210,254,246,255,127,0,221,255,117,255,25,0,239,0,69,1,164,0,35,255,102,254, +65,255,145,0,29,1,9,0,66,254,115,254,235,255,78,255,74,253,176,252,112,253,238,254,2,1,169,1,231,255,86,254, +198,254,70,255,232,253,19,252,234,251,32,253,130,254,9,0,166,1,86,2,122,1,231,255,243,254,211,254,144,254,211,253, +176,253,213,254,85,0,165,1,51,3,246,3,41,3,160,3,207,6,25,9,150,8,33,7,185,4,37,1,228,253,62,249, +12,241,197,232,21,228,173,226,222,228,88,235,213,243,101,251,48,0,77,1,31,0,0,255,178,254,71,255,117,0,16,1, +198,0,21,0,186,254,37,253,199,252,60,253,62,253,29,253,40,253,244,252,43,253,107,254,126,255,84,255,4,255,249,255, +133,1,109,2,137,3,251,4,120,4,205,2,97,3,183,4,136,3,188,1,201,1,155,2,18,3,14,3,179,2,228,2, +48,4,12,6,128,6,252,3,132,1,84,2,215,3,106,4,166,5,134,5,158,3,245,3,39,5,100,4,237,4,183,6, +145,6,145,6,72,7,80,6,225,5,143,6,20,5,14,3,221,2,187,2,29,3,49,5,132,6,178,5,72,4,88,4, +121,6,254,7,139,7,151,7,192,7,129,6,139,6,166,7,134,6,9,6,197,8,217,9,67,7,219,4,130,3,145,2, +53,3,202,3,21,2,178,0,165,1,184,2,32,3,161,3,75,3,228,2,130,4,137,6,165,6,99,5,189,3,243,2, +146,3,84,3,15,2,88,2,218,2,10,2,234,2,174,5,184,6,84,6,227,6,169,7,201,6,180,4,2,4,137,5, +239,6,91,7,172,7,21,7,228,5,154,5,248,4,133,3,62,3,129,3,196,2,228,1,233,0,215,254,30,252,221,249, +206,249,241,252,22,1,152,3,129,4,137,4,133,3,216,1,30,1,173,1,139,1,155,0,190,0,173,0,10,255,111,254, +101,255,110,255,239,254,39,255,174,255,110,0,185,0,135,0,163,1,216,2,213,1,90,0,85,255,152,253,164,252,235,252, +183,252,72,253,254,254,73,255,31,255,77,0,161,0,141,255,178,254,221,252,251,249,45,249,169,250,81,252,230,253,127,254, +194,252,38,251,241,251,64,253,71,254,195,255,22,0,180,255,69,1,65,2,238,255,27,254,195,254,65,255,118,255,229,255, +98,255,63,255,10,1,97,3,211,4,252,4,194,4,46,5,65,4,20,2,255,2,18,5,26,3,42,1,121,3,92,5, +213,4,185,4,119,4,121,3,225,2,161,1,209,255,184,254,81,253,210,252,135,255,77,2,89,2,109,1,183,255,14,253, +22,252,36,253,92,254,244,254,159,253,65,251,188,251,168,254,114,0,71,0,44,254,6,252,160,253,124,0,217,255,132,254, +21,255,236,254,135,254,67,255,229,254,11,254,21,255,172,0,58,1,38,0,114,253,23,252,45,253,2,254,246,254,141,0, +118,255,111,252,244,251,17,254,135,0,157,1,208,255,85,253,20,253,116,253,146,253,147,254,23,255,217,254,164,255,167,255, +145,253,31,253,13,255,188,254,121,251,221,249,165,251,146,253,98,253,132,252,43,252,157,251,44,251,137,251,67,251,237,249, +157,249,109,250,218,250,147,251,212,252,252,252,96,252,11,252,124,251,149,251,209,252,176,252,147,251,138,252,2,254,105,253, +9,253,219,254,22,1,230,1,217,1,180,2,239,3,13,3,179,0,44,255,79,254,57,254,168,255,44,1,119,1,170,0, +108,255,68,255,227,255,175,255,50,0,182,1,24,1,223,255,129,1,235,2,42,1,175,254,163,252,206,250,186,250,112,251, +148,250,203,249,162,250,241,250,3,250,43,250,246,251,26,253,135,252,69,252,10,253,203,252,78,252,130,253,34,254,138,253, +84,254,164,254,176,252,38,252,8,254,136,255,221,255,56,255,132,254,160,254,105,254,231,254,68,1,30,2,244,0,1,1, +137,1,186,1,96,2,131,1,137,255,134,255,38,0,200,255,78,0,187,1,210,1,147,0,54,0,65,1,227,1,166,1, +211,0,63,255,72,255,136,1,90,2,23,2,182,2,19,2,33,1,247,1,227,1,45,1,5,2,38,2,81,1,86,1, +104,1,189,1,61,2,241,1,156,2,197,3,159,3,22,4,24,4,192,1,69,1,8,3,218,2,63,2,220,2,220,2, +201,2,236,2,130,2,195,2,87,3,247,2,120,2,33,2,6,2,245,2,222,3,91,3,63,2,175,1,219,0,80,255, +214,255,65,2,177,1,206,255,3,1,69,1,91,255,248,255,127,0,253,254,211,255,180,0,222,254,20,255,168,0,5,255, +76,252,153,251,2,253,109,255,79,0,150,255,138,255,63,0,192,0,55,0,58,255,222,255,41,0,217,253,198,252,75,254, +60,255,241,255,89,0,180,254,1,254,162,255,59,255,18,253,1,254,147,0,52,0,18,255,77,0,89,0,252,253,131,253, +60,254,234,252,61,251,0,251,212,252,93,0,28,1,32,254,174,251,170,249,235,248,44,253,144,1,234,0,217,255,82,0, +139,255,234,254,204,255,212,0,234,0,7,255,245,252,132,253,70,254,8,253,135,252,147,253,226,253,37,253,243,252,145,254, +49,1,68,2,106,1,166,0,162,0,204,0,16,1,115,1,249,1,247,1,176,255,9,252,82,251,60,254,120,0,32,1, +93,3,88,6,152,5,170,0,82,252,134,252,41,0,167,3,30,5,189,4,197,3,104,2,16,255,137,251,7,252,140,254, +104,255,131,0,73,1,61,255,53,255,153,2,246,1,240,253,238,252,38,252,88,249,13,247,232,240,15,232,78,236,157,255, +88,13,136,10,19,1,248,251,160,253,104,2,112,4,34,2,105,255,171,255,167,1,112,0,169,249,237,241,39,239,82,241, +141,243,112,242,6,240,20,240,100,242,93,244,12,245,7,245,71,245,18,247,97,251,177,1,225,7,73,11,206,10,67,8, +131,5,234,2,49,2,179,3,61,4,236,2,125,0,40,252,9,248,127,246,217,245,163,245,196,246,85,248,167,250,127,254, +112,1,235,0,213,254,249,254,178,1,68,5,167,7,210,6,14,5,79,5,68,5,154,4,49,5,84,5,76,5,0,6, +235,4,104,3,141,4,222,6,140,8,54,9,174,9,13,11,143,11,168,10,204,10,164,11,63,11,87,10,136,10,33,11, +153,10,220,9,31,9,64,7,35,6,59,6,222,5,132,6,166,7,121,7,196,7,100,7,249,4,187,3,234,3,8,4, +108,4,79,4,83,4,208,4,44,4,69,4,57,6,76,7,249,6,61,6,234,5,152,6,25,7,134,7,122,8,18,8, +75,6,197,5,37,7,197,7,169,5,214,3,85,4,229,3,77,1,211,253,96,250,236,248,138,248,73,247,109,246,147,245, +209,244,192,245,231,245,147,244,38,244,162,243,116,243,47,245,202,246,65,247,20,247,197,246,78,247,111,247,219,246,99,247, +13,248,50,248,37,249,73,250,176,250,165,250,52,251,234,252,27,254,22,254,181,253,239,252,103,252,253,251,4,251,212,250, +14,251,228,250,91,251,4,251,180,249,233,249,221,250,198,251,228,252,235,252,180,252,239,252,113,252,232,251,237,250,59,249, +58,249,247,249,155,249,241,249,255,250,43,251,26,251,239,251,154,253,212,254,225,254,207,254,169,255,73,1,42,2,145,1, +115,1,127,2,158,3,38,5,152,6,159,6,4,6,55,6,253,6,31,6,163,3,128,3,20,6,148,8,103,11,67,13, +252,11,231,10,113,11,163,10,71,9,222,8,215,7,140,6,41,6,122,5,4,4,147,2,110,1,92,1,62,2,156,1, +15,255,125,253,228,253,124,254,9,254,157,252,17,251,37,250,226,249,255,249,186,249,215,248,147,248,143,249,39,251,193,252, +70,253,57,252,138,251,172,252,20,254,46,254,9,254,201,254,20,255,0,254,94,253,247,253,144,254,72,255,215,255,157,254, +69,253,80,254,209,255,25,0,137,0,227,0,251,255,243,254,224,254,81,255,152,255,150,255,4,0,44,1,10,2,43,2, +234,1,123,1,72,1,81,1,77,1,201,1,99,2,229,1,52,1,100,1,121,1,55,1,147,1,113,2,16,3,241,2, +97,2,87,2,118,2,248,1,216,1,69,2,21,2,180,1,178,1,76,1,188,0,137,0,76,0,118,0,110,1,45,2, +55,2,144,1,224,255,121,254,11,255,63,0,46,0,138,255,75,255,115,255,76,0,84,1,71,1,213,0,111,1,82,2, +63,2,81,1,38,0,239,255,81,1,154,2,89,2,87,1,86,0,249,255,252,0,36,2,19,2,205,1,250,1,195,1, +222,0,156,255,183,254,234,254,32,255,21,254,9,253,60,253,179,253,146,253,73,253,239,252,67,252,49,252,162,253,36,255, +35,255,192,254,68,255,249,255,210,255,173,254,181,253,220,253,194,253,186,252,97,252,162,252,170,253,115,1,196,4,245,2, +4,0,25,0,238,255,129,254,224,253,59,252,167,249,21,250,177,252,178,253,80,253,33,253,5,253,231,252,14,253,226,252, +239,251,237,251,56,254,20,0,79,255,189,254,215,255,179,255,254,253,180,253,6,255,157,255,235,254,128,254,40,255,33,0, +10,1,78,1,129,255,81,253,72,254,196,0,21,1,104,0,166,0,149,0,228,255,160,255,131,255,38,255,12,255,124,255, +221,255,192,255,99,0,139,2,185,3,91,2,29,1,147,1,241,1,121,1,216,0,67,0,107,0,75,1,61,1,97,0, +172,0,184,1,202,1,144,1,84,2,20,3,161,2,214,1,209,1,139,2,194,3,244,4,9,5,226,3,191,2,110,2, +165,2,165,2,25,2,181,1,254,1,246,1,16,1,99,0,176,0,181,1,139,2,241,1,151,0,155,0,131,1,139,1, +30,1,14,1,103,1,248,1,127,1,44,0,110,0,177,1,138,1,250,0,250,0,119,0,21,0,40,0,159,255,181,255, +8,1,90,1,198,0,39,1,214,1,198,1,73,1,58,1,90,2,89,3,155,2,150,1,137,1,129,1,192,1,9,3, +96,4,133,4,111,3,210,2,177,3,57,4,36,4,22,5,102,5,127,4,129,5,24,7,82,6,210,5,112,6,102,5, +84,4,51,5,149,5,109,4,58,3,191,2,143,2,107,1,87,0,186,1,95,3,187,2,74,2,123,2,58,1,124,0, +48,1,101,0,94,254,88,253,229,252,180,252,218,252,45,252,255,250,227,250,137,251,224,251,249,251,195,251,127,250,190,248, +56,248,187,248,1,249,131,249,73,250,25,250,152,249,225,249,116,250,9,251,32,251,72,250,39,250,28,251,83,251,80,251, +31,252,158,252,248,252,189,253,204,253,96,253,73,253,17,253,34,253,71,253,87,252,203,251,130,252,70,252,48,251,41,251, +162,251,8,252,191,252,117,253,30,254,101,254,240,253,68,254,70,255,235,254,150,254,175,255,165,255,120,254,13,255,72,0, +27,0,6,0,189,0,217,0,82,0,2,0,241,255,236,255,222,255,165,255,47,255,217,254,68,255,19,0,40,0,142,255, +66,255,181,255,144,0,229,0,66,0,147,255,80,255,237,254,204,254,66,255,47,255,86,254,177,253,82,253,87,253,10,254, +68,254,177,253,207,253,91,254,246,253,104,253,100,253,231,252,25,252,62,252,66,253,55,254,115,254,233,253,132,253,249,253, +117,254,28,254,115,253,64,253,110,253,168,253,165,253,12,253,112,252,230,252,15,254,204,254,16,255,244,254,142,254,119,254, +33,254,18,253,53,253,34,255,89,0,11,0,177,255,210,255,90,0,193,0,40,0,137,255,249,255,70,0,167,255,254,254, +251,254,188,255,140,0,112,0,200,255,55,255,6,255,6,0,89,1,252,0,251,255,42,0,84,0,190,255,191,255,97,0, +145,0,91,0,48,0,11,0,78,0,56,1,96,1,178,255,65,254,34,255,13,1,73,2,149,2,80,2,172,2,102,3, +133,2,88,1,83,2,125,3,17,3,102,2,198,1,124,1,119,2,229,2,177,1,37,1,213,1,127,2,40,3,140,3, +46,3,124,2,9,2,204,2,22,4,43,3,55,1,246,1,236,3,254,3,112,3,162,3,215,3,9,4,59,4,218,3, +33,3,176,2,227,2,82,3,217,2,187,1,167,1,167,2,29,3,143,2,237,1,148,1,91,1,216,1,172,2,2,2, +188,0,106,1,208,2,197,2,71,2,193,1,214,0,224,0,146,1,133,1,64,2,53,4,194,4,226,3,100,3,205,2, +71,2,99,3,240,4,107,4,128,2,176,1,106,2,60,3,153,3,242,3,240,3,38,3,150,2,32,3,188,3,76,3, +194,2,230,2,128,2,148,1,17,2,99,3,105,3,216,2,183,2,250,1,244,0,247,0,90,1,114,1,198,1,246,1, +125,1,27,1,98,1,27,2,16,3,253,3,125,4,125,4,34,4,101,3,79,2,162,1,253,1,119,2,239,1,247,0, +162,0,227,0,82,1,162,1,64,1,89,0,31,0,174,0,9,1,122,1,159,2,96,3,238,2,88,2,73,2,69,2, +42,2,67,2,111,2,105,2,112,2,196,2,156,2,139,1,220,0,64,1,185,1,203,1,130,1,254,0,237,0,228,0, +48,0,39,0,219,0,124,0,241,255,95,0,35,0,101,255,101,255,18,255,173,254,45,255,201,254,127,253,107,253,163,253, +96,253,22,254,235,254,84,254,155,253,26,254,57,255,83,255,251,253,138,253,161,254,159,254,246,253,149,254,151,254,240,253, +59,255,17,0,236,253,122,252,53,253,55,253,254,252,217,253,193,253,45,253,135,254,173,255,97,254,97,253,37,254,152,254, +186,254,164,255,34,0,212,255,205,255,127,255,105,254,125,253,247,252,242,252,248,253,3,255,235,254,83,254,207,253,91,253, +87,253,185,253,243,253,205,253,160,253,247,253,83,254,236,253,12,254,86,255,116,255,49,254,87,254,112,255,81,255,2,255, +77,255,222,254,35,254,31,254,237,253,156,253,69,254,1,255,207,254,170,254,46,255,170,255,213,255,14,0,83,0,30,0, +158,255,249,255,226,0,182,0,224,255,233,255,89,0,91,0,66,0,51,0,112,0,31,1,105,1,8,1,114,0,214,255, +251,255,106,0,72,255,87,254,13,0,118,1,135,0,73,0,83,1,65,1,127,0,78,0,68,0,2,0,132,255,131,255, +175,0,173,1,125,1,32,1,219,0,80,0,6,0,24,0,35,0,255,255,197,255,5,0,127,0,117,0,166,0,4,1, +56,0,100,255,142,255,22,255,26,254,203,253,113,253,158,253,38,255,0,0,45,255,228,253,245,252,99,253,210,254,50,255, +250,254,92,255,117,255,177,255,130,0,21,0,172,254,34,254,55,254,139,254,225,254,87,254,244,253,124,254,118,254,12,254, +70,254,102,254,93,254,96,254,195,253,117,253,23,254,71,254,66,254,152,254,242,253,5,253,150,253,46,254,168,253,190,253, +162,254,162,254,37,254,188,254,144,255,24,255,87,254,115,254,111,254,43,254,111,254,142,254,160,254,112,255,166,255,221,254, +215,254,8,255,122,254,227,254,93,0,203,0,37,0,157,255,123,255,105,255,202,254,48,254,215,254,189,255,140,255,18,255, +182,254,39,254,16,254,73,254,202,253,255,252,217,252,99,253,39,254,59,254,128,253,39,253,173,253,196,254,38,0,199,0, +33,0,119,255,92,255,115,255,25,0,189,0,38,0,88,255,144,255,236,255,194,255,138,255,165,255,88,0,13,1,192,0, +13,0,180,255,1,255,40,254,47,254,180,254,30,255,103,255,54,255,232,254,69,255,174,255,99,255,230,254,174,254,183,254, +251,254,101,255,245,255,132,0,211,0,10,1,10,1,74,0,29,255,139,254,19,255,42,0,184,0,140,0,54,0,171,255, +59,255,150,255,18,0,35,0,60,0,14,0,87,0,94,2,149,3,8,2,1,1,24,2,237,2,184,2,27,1,234,253, +173,252,232,254,139,0,203,255,191,254,80,254,251,254,235,0,25,2,119,1,97,0,189,255,186,255,55,0,115,0,92,0, +58,0,152,255,252,254,129,255,130,0,52,1,20,2,160,2,193,1,97,0,239,255,35,0,54,0,23,0,22,0,118,0, +201,0,156,0,198,0,161,1,227,1,103,1,53,1,204,0,196,255,70,255,137,255,171,255,114,255,16,255,3,255,95,255, +61,255,240,254,117,255,212,255,191,255,99,0,166,0,84,255,101,254,252,254,159,255,157,255,121,255,167,255,19,0,233,255, +50,255,33,255,238,255,213,0,255,0,28,0,183,255,194,0,223,0,62,255,186,254,245,255,220,0,61,1,157,1,80,1, +138,0,60,0,38,0,188,255,119,255,171,255,184,255,157,255,16,0,151,0,115,0,64,0,62,0,248,255,228,255,68,0, +101,0,68,0,101,0,204,0,44,1,47,1,230,0,144,0,30,0,29,0,220,0,252,0,61,0,30,0,159,0,36,1, +161,1,8,1,221,255,86,0,17,1,252,255,28,255,91,255,29,255,37,255,43,0,114,0,2,0,34,0,65,0,25,0, +92,0,153,0,51,0,142,255,23,255,207,254,164,254,182,254,74,255,52,0,200,0,139,0,232,255,220,255,90,0,114,0, +60,0,29,0,169,255,55,255,110,255,163,255,131,255,95,255,227,254,238,254,175,0,200,1,39,0,243,254,180,0,67,2, +251,0,76,255,139,255,91,0,129,0,182,0,166,0,179,255,133,255,204,0,130,1,153,1,152,2,20,3,222,1,48,1, +185,1,160,1,230,0,67,0,75,255,1,255,123,0,218,1,132,1,152,0,25,0,40,0,43,1,125,2,155,2,122,1, +3,0,170,254,30,254,201,254,173,255,21,0,149,0,59,1,69,1,163,0,184,255,253,254,247,254,57,255,29,255,63,255, +194,255,171,255,87,255,149,255,195,255,172,255,185,255,101,255,11,255,166,255,47,0,217,255,229,255,102,0,41,0,148,255, +180,255,104,0,225,0,175,0,104,0,130,0,102,0,31,0,65,0,53,0,199,255,193,255,244,255,52,0,242,0,42,1, +75,0,49,0,52,1,44,1,2,0,129,255,154,255,132,255,1,0,65,1,213,1,158,1,197,1,180,1,197,0,97,0, +147,0,221,255,67,255,18,0,198,0,166,0,173,0,151,0,53,0,138,0,52,1,13,1,119,0,56,0,63,0,102,0, +159,0,225,0,72,1,173,1,127,1,171,0,10,0,17,0,17,0,226,255,103,0,137,1,228,1,219,0,155,255,148,255, +74,0,62,0,225,255,75,0,118,0,181,255,71,255,87,255,7,255,191,254,237,254,37,255,103,255,180,255,210,255,61,0, +45,1,132,1,127,0,52,255,7,255,129,255,85,255,155,254,250,253,124,253,171,253,210,254,129,255,244,254,120,254,181,254, +226,254,212,254,9,255,109,255,152,255,115,255,37,255,192,254,139,254,0,255,247,255,163,0,166,0,73,0,238,255,177,255, +102,255,20,255,10,255,88,255,214,255,63,0,70,0,70,0,123,0,49,0,149,255,183,255,43,0,83,0,212,0,91,1, +64,1,93,1,188,1,154,1,187,1,52,2,183,1,204,0,124,0,37,0,197,255,21,0,188,0,76,1,148,1,98,1, +130,1,33,2,251,1,69,1,197,0,143,255,33,254,143,254,8,0,135,0,141,0,207,0,215,0,254,0,139,1,142,1, +202,0,105,0,29,1,212,1,37,1,227,255,239,255,211,0,246,0,145,0,105,0,77,0,57,0,96,0,168,0,60,1, +6,2,78,2,27,2,13,2,204,1,217,0,21,0,114,0,89,1,174,1,85,1,229,0,191,0,245,0,69,1,27,1, +105,0,241,255,24,0,94,0,63,0,211,255,127,255,117,255,154,255,205,255,5,0,38,0,19,0,211,255,126,255,55,255, +62,255,178,255,63,0,93,0,25,0,244,255,232,255,153,255,110,255,209,255,31,0,1,0,46,0,177,0,212,0,159,0, +110,0,79,0,115,0,190,0,155,0,27,0,160,255,59,255,90,255,1,0,2,0,60,255,24,255,171,255,188,255,93,255, +137,255,20,0,201,255,118,254,174,253,55,254,214,254,45,255,236,255,22,0,253,254,102,254,236,254,16,255,186,254,169,254, +123,254,84,254,241,254,193,255,224,255,151,255,140,255,231,255,83,0,84,0,237,255,192,255,29,0,130,0,96,0,232,255, +161,255,198,255,58,0,144,0,120,0,57,0,244,255,163,255,201,255,81,0,60,0,189,255,173,255,163,255,136,255,7,0, +130,0,76,0,11,0,1,0,252,255,21,0,223,255,97,255,181,255,172,0,14,1,206,0,83,0,186,255,128,255,193,255, +40,0,159,0,190,0,115,0,155,0,11,1,205,0,99,0,129,0,180,0,223,0,31,1,42,1,75,1,187,1,160,1, +224,0,124,0,126,0,88,0,73,0,92,0,5,0,156,255,237,255,126,0,106,0,10,0,16,0,74,0,87,0,45,0, +214,255,127,255,71,255,35,255,52,255,105,255,89,255,34,255,60,255,110,255,85,255,42,255,38,255,21,255,238,254,253,254, +25,255,176,254,67,254,181,254,46,255,174,254,52,254,90,254,83,254,59,254,121,254,155,254,232,254,147,255,110,255,121,254, +27,254,63,254,32,254,17,254,71,254,128,254,185,254,226,254,242,254,18,255,99,255,22,0,224,0,218,0,79,0,102,0, +208,0,140,0,224,255,139,255,193,255,95,0,234,0,195,0,229,255,10,255,203,254,248,254,71,255,213,255,55,0,202,255, +38,255,24,255,79,255,154,255,52,0,144,0,35,0,125,255,90,255,183,255,20,0,4,0,148,255,39,255,241,254,226,254, +247,254,48,255,48,255,158,254,23,254,98,254,249,254,31,255,237,254,143,254,110,254,29,255,189,255,73,255,188,254,243,254, +77,255,136,255,175,255,134,255,131,255,210,255,172,255,74,255,147,255,47,0,127,0,117,0,34,0,28,0,190,0,20,1, +187,0,178,0,38,1,43,1,160,0,81,0,165,0,215,0,36,0,91,255,122,255,193,255,121,255,101,255,206,255,236,255, +164,255,105,255,78,255,111,255,237,255,66,0,208,255,249,254,155,254,198,254,13,255,113,255,193,255,150,255,130,255,17,0, +80,0,205,255,146,255,190,255,156,255,154,255,0,0,16,0,225,255,21,0,77,0,43,0,32,0,109,0,210,0,251,0, +224,0,207,0,195,0,139,0,130,0,123,0,219,255,129,255,71,0,242,0,198,0,172,0,171,0,115,0,175,0,59,1, +68,1,250,0,123,0,235,255,102,0,158,1,137,1,65,0,220,255,185,0,147,1,148,1,193,0,220,255,186,255,43,0, +136,0,176,0,169,0,62,0,159,255,142,255,51,0,170,0,116,0,28,0,248,255,247,255,73,0,241,0,101,1,49,1, +89,0,103,255,66,255,246,255,85,0,184,255,49,255,198,255,133,0,73,0,236,255,80,0,154,0,45,0,121,255,204,254, +159,254,73,255,19,0,56,0,199,255,98,255,211,255,104,0,243,255,234,255,37,1,255,0,106,255,151,255,134,0,201,255, +53,255,194,255,204,255,251,255,188,0,54,0,56,255,232,255,241,0,202,0,139,0,202,0,226,0,211,0,235,0,242,0, +158,0,53,0,49,0,103,0,106,0,69,0,15,0,220,255,251,255,101,0,201,0,252,0,209,0,129,0,119,0,92,0, +238,255,197,255,215,255,150,255,102,255,215,255,120,0,155,0,82,0,69,0,141,0,122,0,6,0,210,255,234,255,63,0, +225,0,29,1,171,0,142,0,1,1,18,1,136,0,247,255,182,255,198,255,252,255,51,0,92,0,97,0,84,0,94,0, +85,0,37,0,54,0,140,0,122,0,223,255,205,255,194,0,104,1,209,0,41,0,76,0,132,0,164,0,6,1,5,1, +103,0,35,0,74,0,26,0,227,255,32,0,53,0,249,255,30,0,105,0,22,0,169,255,222,255,66,0,109,0,155,0, +203,0,211,0,142,0,218,255,95,255,190,255,30,0,238,255,15,0,159,0,202,0,143,0,39,0,216,255,66,0,155,0, +181,255,224,254,97,255,222,255,172,255,189,255,230,255,223,255,64,0,143,0,11,0,102,255,40,255,29,255,116,255,227,255, +199,255,156,255,242,255,54,0,232,255,76,255,235,254,25,255,139,255,195,255,232,255,58,0,109,0,87,0,9,0,141,255, +44,255,66,255,167,255,254,255,43,0,17,0,175,255,142,255,254,255,68,0,247,255,231,255,87,0,131,0,102,0,130,0, +148,0,92,0,49,0,75,0,144,0,178,0,112,0,48,0,69,0,58,0,3,0,38,0,104,0,82,0,39,0,32,0, +12,0,201,255,117,255,95,255,169,255,236,255,180,255,65,255,58,255,161,255,158,255,4,255,196,254,243,254,172,254,75,254, +227,254,218,255,44,0,83,0,170,0,109,0,164,255,102,255,196,255,250,255,11,0,79,0,97,0,203,255,254,254,213,254, +80,255,169,255,194,255,224,255,200,255,189,255,77,0,157,0,0,0,162,255,24,0,120,0,113,0,27,0,122,255,75,255, +243,255,116,0,34,0,148,255,144,255,7,0,92,0,124,0,145,0,63,0,209,255,12,0,93,0,35,0,16,0,95,0, +153,0,167,0,125,0,107,0,190,0,166,0,8,0,222,255,189,255,82,255,163,255,40,0,185,255,69,255,107,255,140,255, +182,255,224,255,246,255,142,0,248,0,62,0,190,255,58,0,67,0,208,255,33,0,201,0,223,0,185,0,176,0,132,0, +35,0,178,255,57,255,249,254,77,255,189,255,180,255,159,255,200,255,174,255,62,255,207,254,176,254,38,255,168,255,162,255, +206,255,62,0,245,255,159,255,39,0,110,0,5,0,222,255,193,255,115,255,194,255,84,0,25,0,106,255,23,255,43,255, +116,255,169,255,147,255,132,255,216,255,50,0,245,255,86,255,17,255,51,255,54,255,11,255,247,254,251,254,26,255,84,255, +86,255,1,255,202,254,210,254,196,254,207,254,55,255,96,255,7,255,244,254,83,255,136,255,148,255,147,255,80,255,40,255, +103,255,123,255,59,255,72,255,154,255,143,255,96,255,195,255,65,0,251,255,143,255,219,255,63,0,38,0,19,0,39,0, +52,0,122,0,183,0,122,0,41,0,11,0,246,255,9,0,76,0,146,0,8,1,115,1,42,1,119,0,51,0,82,0, +80,0,53,0,61,0,82,0,71,0,49,0,59,0,53,0,241,255,230,255,96,0,160,0,59,0,245,255,252,255,192,255, +149,255,162,255,38,255,180,254,85,255,253,255,178,255,93,255,105,255,86,255,58,255,55,255,54,255,109,255,194,255,217,255, +197,255,178,255,161,255,160,255,189,255,250,255,56,0,101,0,163,0,185,0,95,0,10,0,15,0,61,0,177,0,13,1, +159,0,7,0,192,255,20,255,145,254,66,255,27,0,34,0,230,255,126,255,239,254,14,255,194,255,35,0,54,0,82,0, +64,0,209,255,85,255,107,255,45,0,164,0,41,0,159,255,221,255,43,0,211,255,117,255,132,255,137,255,155,255,33,0, +115,0,250,255,105,255,114,255,225,255,50,0,19,0,187,255,174,255,222,255,217,255,179,255,195,255,222,255,166,255,82,255, +99,255,194,255,236,255,184,255,117,255,132,255,199,255,192,255,160,255,236,255,37,0,209,255,135,255,155,255,192,255,236,255, +250,255,199,255,200,255,40,0,103,0,75,0,248,255,168,255,153,255,205,255,17,0,49,0,17,0,234,255,231,255,216,255, +196,255,185,255,141,255,141,255,231,255,7,0,221,255,218,255,218,255,219,255,13,0,4,0,179,255,177,255,234,255,34,0, +122,0,143,0,32,0,227,255,30,0,48,0,234,255,197,255,224,255,5,0,44,0,61,0,13,0,246,255,46,0,42,0, +236,255,9,0,37,0,218,255,178,255,183,255,133,255,123,255,191,255,201,255,146,255,140,255,210,255,4,0,203,255,150,255, +221,255,29,0,12,0,0,0,194,255,59,255,254,254,14,255,78,255,1,0,126,0,8,0,132,255,155,255,145,255,58,255, +71,255,137,255,128,255,121,255,172,255,187,255,190,255,11,0,54,0,226,255,138,255,144,255,182,255,203,255,227,255,6,0, +21,0,5,0,10,0,28,0,7,0,20,0,100,0,108,0,52,0,78,0,123,0,85,0,46,0,62,0,95,0,101,0, +40,0,213,255,213,255,37,0,111,0,151,0,159,0,91,0,214,255,173,255,18,0,56,0,248,255,12,0,43,0,214,255, +163,255,196,255,215,255,8,0,63,0,89,0,170,0,168,0,246,255,225,255,165,0,213,0,84,0,250,255,222,255,232,255, +2,0,37,0,141,0,200,0,104,0,25,0,30,0,1,0,249,255,40,0,44,0,52,0,106,0,108,0,64,0,27,0, +242,255,251,255,80,0,137,0,124,0,154,0,244,0,228,0,112,0,142,0,12,1,234,0,183,0,62,1,164,1,87,1, +11,1,8,1,18,1,35,1,75,1,117,1,64,1,148,0,44,0,70,0,62,0,254,255,211,255,174,255,153,255,151,255, +118,255,81,255,65,255,73,255,146,255,211,255,165,255,88,255,53,255,22,255,242,254,237,254,56,255,172,255,178,255,119,255, +166,255,255,255,45,0,84,0,48,0,222,255,228,255,205,255,114,255,154,255,10,0,56,0,103,0,91,0,231,255,182,255, +171,255,124,255,198,255,61,0,21,0,245,255,98,0,153,0,94,0,66,0,104,0,125,0,70,0,13,0,65,0,142,0, +120,0,54,0,21,0,4,0,246,255,0,0,48,0,81,0,24,0,202,255,194,255,187,255,137,255,141,255,203,255,238,255, +241,255,218,255,172,255,169,255,216,255,208,255,120,255,50,255,36,255,34,255,62,255,159,255,247,255,236,255,189,255,195,255, +225,255,246,255,17,0,252,255,159,255,129,255,204,255,234,255,196,255,207,255,250,255,10,0,22,0,27,0,35,0,103,0, +183,0,214,0,214,0,158,0,74,0,115,0,251,0,28,1,224,0,216,0,245,0,220,0,158,0,121,0,94,0,34,0, +250,255,28,0,85,0,127,0,144,0,69,0,196,255,152,255,158,255,108,255,78,255,136,255,172,255,134,255,113,255,117,255, +72,255,29,255,100,255,199,255,148,255,3,255,244,254,129,255,233,255,206,255,138,255,120,255,157,255,206,255,210,255,137,255, +15,255,190,254,241,254,108,255,145,255,123,255,153,255,153,255,84,255,94,255,180,255,194,255,164,255,179,255,203,255,199,255, +178,255,155,255,128,255,113,255,181,255,59,0,118,0,91,0,82,0,82,0,67,0,61,0,59,0,105,0,145,0,44,0, +220,255,53,0,73,0,244,255,45,0,157,0,164,0,132,0,38,0,178,255,202,255,16,0,43,0,112,0,107,0,237,255, +218,255,45,0,76,0,98,0,99,0,12,0,182,255,197,255,65,0,180,0,124,0,255,255,236,255,4,0,24,0,69,0, +86,0,126,0,201,0,171,0,105,0,112,0,48,0,191,255,198,255,250,255,37,0,124,0,157,0,110,0,90,0,116,0, +179,0,225,0,161,0,77,0,38,0,235,255,223,255,15,0,1,0,1,0,53,0,248,255,138,255,134,255,140,255,155,255, +6,0,26,0,127,255,58,255,184,255,250,255,140,255,110,255,248,255,25,0,172,255,155,255,216,255,253,255,77,0,148,0, +92,0,249,255,217,255,244,255,2,0,212,255,200,255,17,0,83,0,154,0,212,0,110,0,0,0,84,0,154,0,99,0, +67,0,1,0,144,255,183,255,104,0,62,1,235,1,110,1,218,255,1,255,145,255,114,0,196,0,83,0,138,255,72,255, +196,255,70,0,87,0,99,0,194,0,220,0,117,0,97,0,160,0,118,0,61,0,97,0,91,0,58,0,72,0,33,0, +232,255,10,0,29,0,253,255,14,0,66,0,114,0,144,0,105,0,45,0,35,0,4,0,220,255,228,255,204,255,160,255, +230,255,95,0,136,0,128,0,113,0,94,0,83,0,29,0,192,255,198,255,38,0,55,0,251,255,230,255,232,255,226,255, +17,0,92,0,92,0,39,0,32,0,83,0,138,0,144,0,85,0,19,0,24,0,90,0,148,0,176,0,183,0,144,0, +60,0,15,0,38,0,25,0,239,255,42,0,100,0,245,255,159,255,21,0,128,0,107,0,93,0,51,0,192,255,193,255, +65,0,126,0,152,0,252,0,52,1,212,0,75,0,68,0,215,0,109,1,117,1,231,0,45,0,195,255,182,255,168,255, +139,255,161,255,225,255,25,0,24,0,217,255,180,255,182,255,143,255,132,255,231,255,39,0,235,255,153,255,136,255,211,255, +52,0,40,0,244,255,255,255,243,255,228,255,39,0,53,0,250,255,35,0,96,0,31,0,207,255,180,255,145,255,150,255, +231,255,20,0,222,255,170,255,217,255,6,0,207,255,197,255,50,0,73,0,218,255,194,255,25,0,32,0,198,255,157,255, +177,255,159,255,134,255,175,255,208,255,182,255,177,255,177,255,148,255,180,255,244,255,223,255,207,255,41,0,126,0,104,0, +10,0,178,255,174,255,8,0,105,0,105,0,0,0,201,255,30,0,88,0,26,0,224,255,175,255,75,255,60,255,183,255, +18,0,223,255,78,255,251,254,127,255,110,0,196,0,87,0,197,255,150,255,221,255,39,0,246,255,105,255,27,255,116,255, +14,0,66,0,60,0,67,0,18,0,246,255,88,0,129,0,29,0,223,255,215,255,210,255,245,255,221,255,148,255,186,255, +184,255,84,255,192,255,106,0,194,255,225,254,32,255,148,255,168,255,195,255,174,255,81,255,32,255,73,255,163,255,211,255, +207,255,253,255,34,0,233,255,209,255,180,255,42,255,65,255,40,0,50,0,143,255,238,255,160,0,69,0,213,255,45,0, +99,0,44,0,64,0,110,0,46,0,238,255,242,255,233,255,3,0,112,0,117,0,228,255,172,255,251,255,4,0,180,255, +158,255,173,255,151,255,168,255,241,255,244,255,190,255,238,255,96,0,91,0,233,255,173,255,205,255,252,255,23,0,20,0, +232,255,214,255,35,0,116,0,101,0,37,0,245,255,235,255,32,0,79,0,54,0,27,0,19,0,1,0,22,0,44,0, +243,255,199,255,223,255,234,255,225,255,195,255,114,255,79,255,131,255,169,255,187,255,215,255,204,255,170,255,156,255,145,255, +146,255,157,255,156,255,195,255,11,0,18,0,238,255,245,255,20,0,48,0,94,0,113,0,25,0,142,255,109,255,199,255, +29,0,89,0,172,0,198,0,115,0,49,0,100,0,186,0,189,0,106,0,3,0,180,255,121,255,83,255,90,255,146,255, +219,255,12,0,27,0,13,0,254,255,8,0,247,255,207,255,253,255,66,0,241,255,113,255,103,255,117,255,111,255,155,255, +186,255,165,255,197,255,4,0,248,255,207,255,233,255,31,0,40,0,47,0,98,0,94,0,246,255,201,255,20,0,56,0, +249,255,198,255,212,255,238,255,2,0,18,0,232,255,170,255,242,255,102,0,68,0,42,0,130,0,86,0,206,255,250,255, +65,0,224,255,141,255,177,255,244,255,59,0,76,0,44,0,66,0,90,0,35,0,241,255,233,255,228,255,236,255,227,255, +193,255,213,255,33,0,68,0,13,0,178,255,152,255,188,255,195,255,194,255,233,255,242,255,207,255,226,255,38,0,62,0, +43,0,21,0,227,255,169,255,214,255,83,0,109,0,38,0,25,0,58,0,67,0,94,0,126,0,99,0,40,0,15,0, +42,0,67,0,18,0,209,255,228,255,252,255,224,255,250,255,64,0,65,0,39,0,40,0,12,0,243,255,31,0,82,0, +65,0,253,255,179,255,151,255,160,255,140,255,138,255,201,255,230,255,205,255,232,255,1,0,189,255,109,255,109,255,186,255, +19,0,19,0,209,255,205,255,233,255,213,255,209,255,254,255,13,0,211,255,144,255,173,255,12,0,28,0,242,255,235,255, +198,255,134,255,185,255,45,0,62,0,16,0,21,0,29,0,247,255,5,0,69,0,22,0,184,255,243,255,73,0,25,0, +237,255,248,255,238,255,245,255,251,255,237,255,21,0,25,0,219,255,244,255,11,0,225,255,68,0,197,0,149,0,130,0, +172,0,79,0,3,0,19,0,206,255,133,255,126,255,71,255,47,255,85,255,44,255,12,255,67,255,58,255,27,255,116,255, +217,255,202,255,130,255,110,255,153,255,149,255,68,255,45,255,108,255,129,255,95,255,95,255,122,255,113,255,99,255,150,255, +222,255,230,255,240,255,61,0,105,0,43,0,223,255,213,255,219,255,203,255,205,255,222,255,209,255,209,255,245,255,255,255, +254,255,38,0,79,0,97,0,101,0,88,0,102,0,154,0,186,0,215,0,231,0,160,0,76,0,84,0,115,0,102,0, +61,0,11,0,3,0,28,0,21,0,17,0,45,0,55,0,69,0,121,0,181,0,227,0,199,0,67,0,225,255,241,255, +10,0,246,255,242,255,14,0,18,0,219,255,159,255,153,255,168,255,178,255,179,255,144,255,118,255,130,255,105,255,86,255, +179,255,6,0,226,255,212,255,19,0,24,0,218,255,206,255,251,255,3,0,213,255,191,255,220,255,236,255,229,255,238,255, +240,255,196,255,157,255,185,255,220,255,212,255,252,255,102,0,121,0,26,0,220,255,240,255,39,0,93,0,92,0,37,0, +29,0,93,0,141,0,122,0,79,0,49,0,13,0,240,255,31,0,117,0,110,0,42,0,44,0,72,0,41,0,24,0, +55,0,56,0,81,0,173,0,148,0,246,255,231,255,96,0,101,0,33,0,26,0,5,0,221,255,248,255,43,0,66,0, +55,0,17,0,28,0,100,0,133,0,115,0,107,0,107,0,89,0,41,0,254,255,9,0,24,0,22,0,57,0,64,0, +8,0,254,255,17,0,231,255,190,255,180,255,166,255,190,255,225,255,220,255,240,255,34,0,60,0,103,0,144,0,118,0, +87,0,98,0,96,0,80,0,86,0,83,0,75,0,112,0,153,0,115,0,51,0,39,0,36,0,23,0,49,0,70,0, +63,0,84,0,92,0,57,0,67,0,92,0,67,0,66,0,101,0,101,0,79,0,48,0,19,0,36,0,37,0,228,255, +196,255,227,255,247,255,252,255,253,255,230,255,203,255,218,255,36,0,91,0,43,0,251,255,28,0,17,0,192,255,183,255, +245,255,28,0,53,0,88,0,104,0,94,0,82,0,81,0,72,0,47,0,41,0,21,0,207,255,179,255,236,255,27,0, +49,0,91,0,111,0,98,0,98,0,86,0,51,0,51,0,52,0,243,255,193,255,205,255,201,255,229,255,75,0,88,0, +4,0,253,255,11,0,222,255,236,255,254,255,189,255,204,255,35,0,23,0,7,0,30,0,210,255,120,255,112,255,60,255, +247,254,30,255,133,255,1,0,82,0,22,0,200,255,246,255,38,0,9,0,240,255,221,255,198,255,218,255,227,255,196,255, +201,255,223,255,180,255,139,255,177,255,221,255,224,255,235,255,239,255,200,255,169,255,175,255,175,255,174,255,206,255,236,255, +232,255,231,255,237,255,199,255,147,255,167,255,223,255,226,255,202,255,190,255,170,255,169,255,212,255,247,255,2,0,6,0, +233,255,196,255,209,255,7,0,46,0,32,0,239,255,208,255,205,255,211,255,229,255,242,255,251,255,45,0,90,0,58,0, +0,0,232,255,224,255,238,255,16,0,25,0,6,0,9,0,34,0,19,0,206,255,163,255,187,255,219,255,216,255,202,255, +190,255,166,255,129,255,137,255,217,255,1,0,216,255,216,255,254,255,223,255,192,255,229,255,242,255,211,255,186,255,153,255, +153,255,220,255,237,255,160,255,131,255,195,255,233,255,222,255,243,255,5,0,226,255,210,255,224,255,186,255,130,255,134,255, +177,255,243,255,37,0,19,0,252,255,19,0,27,0,3,0,219,255,167,255,173,255,238,255,6,0,239,255,224,255,218,255, +223,255,227,255,244,255,58,0,84,0,5,0,232,255,32,0,27,0,241,255,254,255,14,0,254,255,238,255,249,255,23,0, +4,0,205,255,215,255,7,0,10,0,12,0,12,0,227,255,225,255,28,0,58,0,53,0,33,0,239,255,202,255,220,255, +255,255,15,0,36,0,89,0,135,0,109,0,45,0,29,0,35,0,9,0,248,255,41,0,101,0,99,0,61,0,30,0, +0,0,10,0,66,0,50,0,228,255,233,255,18,0,254,255,2,0,41,0,23,0,3,0,19,0,4,0,252,255,40,0, +52,0,29,0,38,0,41,0,15,0,22,0,46,0,29,0,11,0,27,0,44,0,57,0,65,0,26,0,215,255,208,255, +2,0,26,0,9,0,9,0,35,0,41,0,30,0,29,0,19,0,245,255,0,0,42,0,33,0,250,255,253,255,22,0, +27,0,25,0,20,0,12,0,4,0,238,255,211,255,204,255,224,255,251,255,3,0,2,0,20,0,38,0,17,0,237,255, +217,255,214,255,222,255,208,255,165,255,162,255,213,255,243,255,226,255,192,255,141,255,89,255,108,255,190,255,220,255,164,255, +130,255,168,255,205,255,181,255,140,255,151,255,204,255,226,255,214,255,208,255,185,255,150,255,149,255,164,255,191,255,244,255, +250,255,199,255,189,255,205,255,192,255,221,255,32,0,44,0,20,0,3,0,244,255,6,0,33,0,8,0,253,255,32,0, +33,0,18,0,52,0,54,0,253,255,238,255,3,0,243,255,245,255,45,0,85,0,95,0,80,0,1,0,187,255,213,255, +241,255,221,255,249,255,57,0,61,0,28,0,17,0,18,0,7,0,240,255,228,255,248,255,29,0,57,0,46,0,3,0, +1,0,30,0,5,0,233,255,7,0,19,0,241,255,219,255,216,255,239,255,36,0,69,0,66,0,44,0,12,0,22,0, +68,0,68,0,23,0,241,255,227,255,239,255,234,255,201,255,214,255,251,255,244,255,235,255,237,255,221,255,229,255,244,255, +240,255,30,0,66,0,8,0,242,255,35,0,35,0,19,0,36,0,18,0,3,0,30,0,41,0,71,0,129,0,111,0, +47,0,32,0,33,0,31,0,48,0,62,0,83,0,106,0,91,0,70,0,64,0,28,0,252,255,27,0,64,0,60,0, +45,0,32,0,28,0,34,0,39,0,74,0,132,0,130,0,84,0,84,0,92,0,47,0,6,0,0,0,0,0,19,0, +39,0,20,0,4,0,29,0,49,0,40,0,15,0,229,255,215,255,17,0,80,0,86,0,85,0,87,0,37,0,232,255, +233,255,253,255,230,255,200,255,215,255,245,255,235,255,202,255,213,255,251,255,241,255,219,255,5,0,46,0,28,0,11,0, +15,0,4,0,3,0,23,0,22,0,252,255,226,255,217,255,230,255,229,255,218,255,231,255,236,255,207,255,204,255,229,255, +237,255,243,255,250,255,251,255,30,0,77,0,64,0,29,0,24,0,26,0,20,0,11,0,241,255,211,255,209,255,244,255, +23,0,6,0,222,255,244,255,38,0,22,0,243,255,1,0,12,0,251,255,251,255,12,0,14,0,7,0,2,0,7,0, +23,0,6,0,204,255,177,255,204,255,231,255,1,0,45,0,66,0,44,0,17,0,7,0,2,0,244,255,216,255,201,255, +218,255,246,255,3,0,2,0,1,0,9,0,10,0,3,0,11,0,15,0,242,255,216,255,220,255,219,255,198,255,176,255, +175,255,197,255,199,255,158,255,140,255,183,255,214,255,172,255,123,255,148,255,188,255,160,255,121,255,133,255,152,255,159,255, +175,255,150,255,89,255,74,255,100,255,121,255,131,255,134,255,150,255,192,255,218,255,205,255,185,255,185,255,213,255,250,255, +8,0,18,0,23,0,255,255,247,255,5,0,243,255,237,255,22,0,32,0,17,0,29,0,34,0,40,0,66,0,57,0, +21,0,17,0,31,0,56,0,89,0,91,0,90,0,113,0,107,0,84,0,93,0,94,0,69,0,47,0,20,0,19,0, +61,0,74,0,54,0,61,0,66,0,39,0,21,0,29,0,44,0,44,0,26,0,40,0,69,0,36,0,252,255,37,0, +70,0,25,0,243,255,12,0,64,0,100,0,85,0,39,0,14,0,14,0,31,0,47,0,27,0,9,0,46,0,75,0, +57,0,42,0,34,0,26,0,52,0,67,0,27,0,10,0,48,0,52,0,5,0,236,255,249,255,1,0,251,255,253,255, +4,0,2,0,0,0,2,0,1,0,6,0,15,0,7,0,2,0,17,0,23,0,14,0,23,0,27,0,255,255,225,255, +215,255,219,255,240,255,1,0,248,255,245,255,17,0,36,0,24,0,13,0,14,0,0,0,233,255,232,255,244,255,0,0, +18,0,33,0,28,0,13,0,255,255,239,255,229,255,233,255,243,255,253,255,0,0,255,255,7,0,15,0,11,0,5,0, +254,255,238,255,233,255,253,255,14,0,12,0,10,0,16,0,27,0,35,0,27,0,11,0,13,0,21,0,8,0,253,255, +9,0,15,0,0,0,247,255,245,255,244,255,245,255,239,255,220,255,210,255,223,255,246,255,12,0,14,0,251,255,242,255, +0,0,9,0,251,255,237,255,243,255,2,0,2,0,240,255,222,255,222,255,237,255,242,255,230,255,225,255,238,255,249,255, +254,255,1,0,254,255,1,0,13,0,17,0,14,0,11,0,6,0,255,255,2,0,4,0,250,255,240,255,246,255,3,0, +9,0,4,0,242,255,226,255,236,255,253,255,241,255,238,255,7,0,3,0,234,255,245,255,8,0,5,0,15,0,25,0, +6,0,238,255,220,255,212,255,222,255,221,255,213,255,233,255,251,255,244,255,244,255,240,255,219,255,221,255,236,255,243,255, +10,0,28,0,7,0,240,255,238,255,234,255,232,255,242,255,252,255,3,0,253,255,243,255,2,0,20,0,11,0,1,0, +10,0,17,0,24,0,25,0,11,0,0,0,5,0,8,0,5,0,252,255,240,255,242,255,7,0,22,0,15,0,254,255, +238,255,229,255,227,255,230,255,244,255,4,0,4,0,246,255,238,255,239,255,238,255,237,255,237,255,236,255,242,255,251,255, +3,0,13,0,13,0,252,255,247,255,10,0,13,0,253,255,255,255,8,0,1,0,252,255,254,255,246,255,240,255,246,255, +246,255,248,255,9,0,16,0,6,0,6,0,11,0,8,0,5,0,6,0,8,0,15,0,14,0,5,0,14,0,29,0, +21,0,8,0,9,0,3,0,250,255,254,255,1,0,250,255,254,255,8,0,255,255,242,255,251,255,2,0,244,255,240,255, +255,255,2,0,253,255,1,0,2,0,4,0,20,0,26,0,15,0,12,0,9,0,250,255,240,255,243,255,251,255,2,0, +3,0,8,0,18,0,16,0,4,0,3,0,7,0,9,0,16,0,22,0,12,0,4,0,13,0,16,0,4,0,5,0, +21,0,25,0,15,0,8,0,8,0,13,0,22,0,23,0,15,0,12,0,15,0,14,0,5,0,2,0,9,0,12,0, +5,0,4,0,9,0,8,0,2,0,251,255,254,255,9,0,4,0,248,255,0,0,11,0,3,0,255,255,5,0,8,0, +8,0,5,0,0,0,7,0,11,0,255,255,250,255,2,0,5,0,4,0,1,0,247,255,246,255,254,255,0,0,255,255, +1,0,0,0,252,255,250,255,248,255,248,255,250,255,252,255,255,255,255,255,252,255,252,255,1,0,9,0,14,0,14,0, +14,0,14,0,10,0,3,0,254,255,1,0,5,0,1,0,3,0,13,0,12,0,255,255,252,255,7,0,20,0,18,0, +4,0,4,0,13,0,7,0,254,255,252,255,246,255,248,255,6,0,10,0,5,0,5,0,254,255,248,255,0,0,7,0, +8,0,6,0,250,255,241,255,251,255,2,0,251,255,248,255,250,255,250,255,251,255,250,255,250,255,253,255,1,0,254,255, +250,255,250,255,250,255,246,255,245,255,250,255,251,255,247,255,246,255,247,255,248,255,249,255,251,255,253,255,253,255,1,0, +7,0,3,0,250,255,253,255,4,0,4,0,255,255,249,255,248,255,255,255,2,0,254,255,252,255,247,255,245,255,252,255, +252,255,250,255,3,0,4,0,248,255,250,255,255,255,252,255,255,255,5,0,3,0,5,0,8,0,1,0,250,255,252,255, +255,255,3,0,3,0,0,0,252,255,247,255,244,255,250,255,252,255,249,255,251,255,255,255,0,0,255,255,255,255,255,255, +252,255,252,255,0,0,4,0,5,0,3,0,252,255,248,255,255,255,7,0,5,0,2,0,3,0,4,0,0,0,255,255, +7,0,8,0,0,0,0,0,2,0,249,255,249,255,1,0,2,0,4,0,4,0,249,255,245,255,255,255,3,0,2,0, +2,0,253,255,251,255,251,255,250,255,253,255,255,255,252,255,1,0,8,0,1,0,251,255,255,255,1,0,3,0,8,0, +8,0,5,0,4,0,3,0,253,255,250,255,255,255,2,0,251,255,243,255,247,255,254,255,0,0,2,0,1,0,253,255, +251,255,253,255,253,255,251,255,251,255,1,0,3,0,4,0,5,0,2,0,0,0,3,0,1,0,253,255,255,255,0,0, +2,0,7,0,5,0,0,0,255,255,253,255,251,255,252,255,251,255,254,255,7,0,3,0,253,255,2,0,3,0,251,255, +250,255,251,255,249,255,251,255,253,255,255,255,3,0,255,255,248,255,249,255,254,255,0,0,254,255,253,255,1,0,5,0, +2,0,2,0,6,0,4,0,255,255,255,255,2,0,3,0,2,0,2,0,1,0,1,0,2,0,1,0,253,255,254,255, +255,255,251,255,251,255,2,0,4,0,0,0,252,255,252,255,255,255,254,255,253,255,1,0,0,0,249,255,255,255,6,0, +1,0,251,255,246,255,241,255,247,255,254,255,253,255,253,255,255,255,254,255,254,255,253,255,251,255,255,255,4,0,3,0, +3,0,2,0,2,0,4,0,255,255,246,255,250,255,3,0,1,0,252,255,0,0,5,0,4,0,252,255,249,255,254,255, +2,0,0,0,253,255,252,255,252,255,254,255,3,0,6,0,3,0,1,0,6,0,9,0,5,0,2,0,255,255,252,255, +249,255,250,255,1,0,6,0,0,0,253,255,3,0,2,0,252,255,253,255,254,255,0,0,1,0,252,255,253,255,7,0, +10,0,6,0,4,0,4,0,8,0,9,0,3,0,3,0,4,0,254,255,1,0,10,0,12,0,12,0,14,0,10,0, +4,0,2,0,1,0,255,255,255,255,1,0,5,0,6,0,4,0,4,0,1,0,252,255,253,255,0,0,1,0,2,0, +4,0,3,0,254,255,252,255,255,255,0,0,255,255,3,0,6,0,2,0,1,0,6,0,6,0,5,0,3,0,0,0, +254,255,255,255,2,0,6,0,4,0,0,0,3,0,4,0,2,0,5,0,6,0,7,0,12,0,11,0,4,0,3,0, +1,0,254,255,255,255,255,255,255,255,1,0,253,255,250,255,255,255,255,255,251,255,253,255,0,0,254,255,252,255,253,255, +255,255,255,255,250,255,251,255,2,0,5,0,0,0,251,255,254,255,5,0,5,0,254,255,253,255,2,0,5,0,2,0, +251,255,251,255,0,0,0,0,253,255,254,255,253,255,252,255,1,0,3,0,1,0,253,255,251,255,255,255,1,0,255,255, +255,255,254,255,250,255,255,255,6,0,3,0,0,0,255,255,255,255,0,0,253,255,249,255,252,255,254,255,251,255,255,255, +5,0,2,0,253,255,250,255,249,255,253,255,0,0,255,255,2,0,7,0,5,0,1,0,254,255,254,255,1,0,2,0, +3,0,3,0,3,0,5,0,6,0,3,0,1,0,0,0,253,255,254,255,255,255,253,255,254,255,254,255,251,255,253,255, +255,255,253,255,251,255,252,255,251,255,250,255,250,255,254,255,2,0,255,255,254,255,1,0,3,0,3,0,1,0,251,255, +250,255,0,0,2,0,0,0,0,0,255,255,1,0,2,0,253,255,253,255,255,255,250,255,249,255,255,255,254,255,252,255, +0,0,3,0,3,0,2,0,1,0,0,0,254,255,0,0,3,0,2,0,1,0,3,0,2,0,2,0,2,0,254,255, +249,255,252,255,1,0,5,0,7,0,5,0,0,0,255,255,0,0,1,0,253,255,247,255,249,255,2,0,4,0,1,0, +2,0,2,0,254,255,250,255,252,255,1,0,0,0,254,255,2,0,3,0,1,0,2,0,2,0,2,0,5,0,2,0, +252,255,255,255,3,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,253,255,253,255,255,255,255,255,254,255, +254,255,252,255,253,255,254,255,255,255,255,255,254,255,254,255,1,0,2,0,2,0,4,0,3,0,0,0,2,0,3,0, +253,255,252,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,2,0, +2,0,255,255,255,255,1,0,254,255,252,255,254,255,255,255,0,0,1,0,0,0,3,0,5,0,2,0,2,0,2,0, +253,255,254,255,4,0,5,0,3,0,0,0,0,0,2,0,1,0,255,255,0,0,2,0,5,0,4,0,254,255,254,255, +2,0,2,0,2,0,4,0,3,0,0,0,1,0,0,0,255,255,254,255,252,255,254,255,0,0,255,255,255,255,2,0, +2,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,253,255,254,255, +2,0,2,0,0,0,3,0,4,0,2,0,2,0,1,0,255,255,255,255,255,255,255,255,255,255,253,255,253,255,254,255, +255,255,255,255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,255,255,253,255, +2,0,4,0,2,0,2,0,1,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/cloth4.pcm b/src/client/sound/data/cloth4.pcm new file mode 100755 index 0000000..a4208dd --- /dev/null +++ b/src/client/sound/data/cloth4.pcm @@ -0,0 +1,564 @@ +unsigned char PCM_cloth4[17962] = { +1,0,0,0,2,0,0,0,68,172,0,0,13,35,0,0,0,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255, +255,255,253,255,253,255,255,255,255,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,254,255, +255,255,254,255,253,255,253,255,251,255,251,255,255,255,2,0,254,255,251,255,251,255,253,255,254,255,255,255,253,255,249,255, +252,255,255,255,251,255,247,255,250,255,254,255,253,255,251,255,249,255,251,255,254,255,254,255,252,255,255,255,2,0,2,0, +6,0,7,0,251,255,241,255,248,255,249,255,232,255,227,255,242,255,249,255,243,255,248,255,2,0,249,255,234,255,232,255, +242,255,254,255,253,255,237,255,229,255,238,255,241,255,231,255,235,255,252,255,1,0,2,0,11,0,9,0,251,255,249,255, +249,255,238,255,235,255,250,255,0,0,254,255,0,0,244,255,218,255,226,255,11,0,26,0,255,255,225,255,211,255,224,255, +7,0,30,0,5,0,230,255,235,255,246,255,237,255,234,255,241,255,236,255,231,255,241,255,251,255,255,255,6,0,10,0, +0,0,243,255,238,255,245,255,4,0,18,0,20,0,14,0,6,0,254,255,255,255,6,0,252,255,238,255,253,255,12,0, +245,255,230,255,5,0,29,0,5,0,251,255,34,0,53,0,28,0,12,0,13,0,19,0,39,0,51,0,31,0,0,0, +251,255,20,0,48,0,76,0,90,0,61,0,39,0,74,0,102,0,92,0,95,0,115,0,119,0,111,0,117,0,130,0, +122,0,115,0,127,0,142,0,151,0,149,0,177,0,235,0,235,0,216,0,23,1,93,1,115,1,145,1,211,1,24,2, +20,2,2,2,68,2,109,2,109,2,160,2,180,2,181,2,219,2,192,2,154,2,161,2,121,2,87,2,80,2,42,2, +31,2,24,2,243,1,213,1,150,1,101,1,106,1,71,1,23,1,254,0,198,0,164,0,157,0,120,0,85,0,33,0, +217,255,177,255,160,255,139,255,99,255,66,255,66,255,46,255,18,255,252,254,209,254,229,254,27,255,26,255,75,255,148,255, +151,255,173,255,199,255,217,255,32,0,99,0,168,0,211,0,155,0,155,0,216,0,208,0,246,0,45,1,23,1,33,1, +11,1,205,0,9,1,65,1,16,1,225,0,203,0,235,0,35,1,51,1,97,1,127,1,82,1,64,1,43,1,231,0, +200,0,206,0,216,0,188,0,98,0,12,0,190,255,128,255,116,255,93,255,84,255,131,255,142,255,116,255,97,255,96,255, +127,255,110,255,82,255,105,255,86,255,115,255,207,255,166,255,123,255,187,255,233,255,37,0,67,0,23,0,12,0,246,255, +226,255,243,255,199,255,173,255,192,255,198,255,252,255,213,255,66,255,54,255,92,255,79,255,96,255,120,255,146,255,154,255, +170,255,233,255,197,255,118,255,94,255,1,255,206,254,1,255,0,255,234,254,160,254,83,254,129,254,111,254,62,254,123,254, +149,254,174,254,218,254,11,255,195,255,25,0,206,255,30,0,159,0,33,1,0,2,80,2,55,2,68,2,18,2,231,1, +194,1,61,1,168,0,49,0,43,0,149,0,183,0,135,0,55,0,200,255,105,255,21,255,245,254,14,255,50,255,118,255, +162,255,184,255,178,255,83,255,83,255,101,255,253,254,90,255,128,255,111,254,108,254,242,254,169,254,10,255,38,255,78,254, +57,254,71,254,45,254,163,254,191,254,199,254,206,254,33,254,87,254,92,255,72,255,25,255,142,255,137,255,102,255,238,255, +88,0,16,0,177,255,53,255,72,254,180,253,57,253,63,252,249,251,55,252,144,251,144,250,7,250,26,250,141,250,189,250, +186,250,133,250,110,250,85,251,21,252,251,251,49,252,127,252,241,252,142,253,27,253,251,252,218,253,97,253,129,252,48,253, +1,254,41,254,128,254,56,255,143,255,64,255,132,255,68,0,95,0,170,0,142,1,95,2,6,3,0,3,118,2,34,2, +179,1,80,1,27,1,35,1,5,2,75,2,56,1,84,1,106,2,254,1,222,0,208,0,200,1,136,2,174,1,114,0, +212,0,217,0,195,254,153,253,216,254,16,0,126,0,88,0,225,255,253,0,12,2,87,0,118,255,142,0,234,255,232,255, +107,2,94,2,29,0,209,0,169,2,197,1,223,255,105,255,135,255,40,255,197,254,163,254,183,254,47,255,104,255,46,255, +151,255,76,0,68,0,65,0,87,0,157,255,255,254,243,254,60,254,149,253,62,254,44,255,22,0,89,1,226,1,64,2, +158,3,24,4,84,3,235,3,43,5,15,5,72,5,155,6,73,7,234,7,180,8,170,7,129,6,110,7,38,7,75,5, +61,6,242,7,148,6,187,5,141,6,245,4,160,2,146,2,20,2,172,0,155,0,119,0,143,255,213,255,113,0,102,255, +136,253,167,252,192,252,75,252,178,251,170,252,22,253,218,250,114,249,217,250,15,252,41,252,54,252,199,251,155,251,190,252, +160,253,248,252,182,251,67,251,23,252,214,252,208,251,206,249,97,249,102,251,115,253,63,253,67,252,61,252,30,252,123,251, +31,251,9,251,173,251,197,252,194,252,126,252,106,253,97,254,29,255,18,0,40,0,51,0,225,1,126,3,108,3,231,2, +50,3,59,4,26,5,109,5,226,5,44,6,28,6,233,6,253,7,91,8,103,9,153,10,196,9,228,7,231,6,90,7, +157,8,55,8,137,6,222,6,250,6,202,3,68,1,25,1,198,255,10,254,245,253,175,253,77,252,50,250,5,248,100,248, +18,251,42,252,123,251,36,251,227,250,202,250,94,251,178,251,178,251,244,251,22,252,49,252,94,252,255,251,151,251,243,251, +202,252,20,254,129,255,34,0,63,0,222,255,39,254,211,252,197,253,219,254,42,255,152,0,114,1,206,255,234,254,221,255, +40,0,225,0,207,2,99,3,197,3,55,6,76,8,206,8,85,9,122,9,43,9,144,9,78,10,103,11,9,13,252,13, +161,14,89,16,217,18,125,21,255,22,149,22,138,22,205,23,98,24,168,24,42,25,139,24,15,24,173,24,54,24,87,23, +31,24,212,24,190,24,152,25,181,26,164,26,250,25,116,25,14,25,109,24,193,23,33,24,70,25,251,24,101,22,189,19, +175,19,110,21,12,22,57,21,194,19,67,17,39,15,126,14,22,13,47,11,226,10,221,9,61,6,214,2,116,1,12,1, +253,255,100,253,212,250,65,249,145,247,56,247,130,248,38,247,220,243,127,243,67,244,95,243,23,243,28,243,226,241,226,241, +9,243,28,242,230,239,110,238,102,237,10,237,239,236,145,235,136,234,108,235,198,235,74,235,154,236,150,237,140,235,21,234, +213,234,120,234,163,233,181,234,178,235,152,235,83,235,152,233,181,230,24,229,185,228,253,228,143,229,190,228,34,227,55,227, +154,228,112,229,226,228,187,227,98,228,76,230,123,230,57,230,60,231,81,231,211,230,132,231,137,231,88,231,127,233,209,235, +78,236,177,236,17,237,252,236,183,237,212,238,149,239,185,240,96,241,155,240,252,239,58,240,160,240,216,241,92,244,165,246, +141,247,204,247,218,247,135,246,239,243,58,243,103,245,146,246,58,245,222,244,27,246,16,246,71,245,151,245,17,246,146,246, +141,247,103,247,251,245,21,245,104,245,121,247,189,249,81,248,203,244,124,244,0,247,192,248,241,247,58,245,21,245,181,248, +59,250,34,249,167,249,87,249,82,247,30,248,55,250,54,251,70,253,232,253,91,251,109,250,248,250,67,250,169,250,187,250, +6,248,156,247,173,250,202,251,197,250,187,249,164,248,9,250,123,254,32,1,88,0,160,255,156,0,8,2,139,3,177,5, +168,6,224,4,140,3,199,4,173,5,221,5,122,7,93,9,190,10,232,11,211,10,207,8,56,10,247,12,98,12,17,10, +131,9,171,10,187,11,131,11,200,10,60,11,143,12,255,12,94,12,157,12,198,14,207,16,87,17,56,18,171,19,139,19, +220,18,87,20,76,23,60,25,74,25,218,24,133,25,50,26,188,25,91,26,190,28,86,30,65,31,228,31,105,29,170,25, +5,26,215,27,48,26,191,23,231,22,112,22,139,23,184,24,69,21,74,16,109,15,67,16,210,15,100,15,226,14,221,13, +32,13,193,12,41,13,27,13,87,10,152,7,103,7,155,6,135,4,125,3,164,2,65,1,176,254,12,250,80,248,18,252, +250,253,0,252,149,251,239,250,219,247,162,247,94,250,113,250,71,248,107,247,177,247,207,247,46,248,10,249,206,248,187,247, +27,249,63,252,111,253,115,253,47,253,84,251,41,251,89,254,92,255,113,253,137,253,82,254,27,252,26,249,117,248,94,249, +13,249,138,246,169,244,160,245,39,247,16,247,130,246,160,246,28,247,215,247,161,248,111,248,111,247,153,247,191,248,186,248, +1,248,214,247,124,247,86,247,115,247,247,245,230,244,19,247,218,248,203,247,110,247,60,248,29,248,175,248,45,250,184,249, +63,248,202,248,97,250,160,250,11,250,88,250,113,251,66,252,160,252,202,252,147,252,247,251,47,251,113,250,90,250,97,251, +34,253,245,254,100,0,201,0,128,255,72,253,9,252,115,252,181,253,180,254,253,253,65,252,25,253,10,0,16,0,172,253, +137,253,132,254,120,253,202,252,192,254,235,0,179,1,253,1,128,1,209,0,39,2,107,3,83,1,114,255,248,0,105,2, +195,2,69,3,73,1,39,254,35,254,23,254,152,252,36,254,180,255,35,253,144,251,44,252,78,251,61,252,60,0,215,1, +233,0,153,0,217,0,130,2,255,4,131,4,206,1,78,0,12,255,214,252,38,251,241,249,35,248,121,246,110,245,215,243, +145,241,34,240,252,239,85,240,234,240,213,241,134,243,152,245,221,245,250,244,132,246,227,248,80,248,247,246,246,246,14,247, +31,249,10,254,128,1,196,2,232,4,101,6,127,4,10,1,46,255,12,0,14,2,182,1,27,254,136,250,81,249,28,249, +208,248,3,249,65,248,144,244,172,240,39,240,219,240,56,239,89,236,45,235,34,236,139,238,156,242,2,247,194,248,220,248, +38,251,88,255,210,3,195,8,147,11,92,11,126,13,32,19,124,23,96,26,139,29,130,31,40,32,64,32,203,31,238,31, +145,31,225,28,170,26,133,25,42,22,143,19,91,21,18,22,206,17,27,13,62,10,127,6,20,2,203,255,119,255,231,254, +153,253,199,251,39,249,226,246,150,246,107,247,218,247,67,247,27,245,105,242,249,240,138,240,94,241,120,244,195,246,252,244, +79,242,206,242,107,245,125,247,134,247,111,245,215,243,84,245,200,248,226,251,175,253,215,253,240,252,9,252,145,251,160,252, +65,255,83,0,20,255,184,254,24,255,9,254,89,253,89,254,94,255,5,0,212,255,235,253,155,252,144,253,104,255,203,1, +162,3,84,2,130,255,167,254,179,255,46,2,24,6,112,9,159,10,92,10,140,10,34,12,3,13,182,11,153,10,74,10, +199,8,7,7,154,6,26,6,1,4,19,1,15,1,130,5,100,8,168,6,106,6,8,9,58,10,72,11,221,12,120,12, +171,12,244,13,82,12,20,11,204,13,153,15,56,15,225,15,13,16,182,14,133,13,94,12,248,11,190,12,132,13,159,15, +19,18,7,17,151,15,68,17,0,18,222,16,102,16,96,15,89,15,59,18,237,18,107,16,204,15,235,15,174,14,92,15, +130,17,48,18,104,19,133,22,11,25,158,25,171,24,67,23,229,22,102,23,56,23,56,22,229,21,116,22,184,21,154,19, +223,19,234,22,248,23,184,21,243,19,226,20,215,22,113,22,84,19,180,18,135,23,163,28,109,29,105,27,110,24,199,21, +214,21,107,23,10,23,86,21,116,20,42,20,119,19,138,16,43,11,99,7,209,6,25,7,135,8,110,10,11,9,116,6, +173,6,232,6,43,5,107,3,161,1,110,0,194,255,3,252,33,248,67,250,223,252,227,249,78,247,50,248,221,247,5,247, +158,248,219,249,24,249,187,248,40,249,105,249,234,249,10,250,191,248,94,247,166,246,146,245,100,245,64,247,74,248,17,247, +117,245,240,243,20,243,228,243,243,243,131,241,253,238,152,238,196,240,44,243,220,241,85,239,134,240,42,242,115,241,240,241, +240,242,78,242,40,243,32,244,225,240,97,237,127,237,182,237,12,237,86,238,232,240,87,242,231,241,43,240,20,239,21,240, +148,242,48,245,202,245,246,243,177,243,93,246,9,247,65,245,153,245,242,245,16,244,192,245,226,249,238,247,164,243,170,244, +67,246,202,245,182,247,92,248,110,244,116,243,233,246,23,248,148,248,247,250,57,249,80,244,179,245,254,250,148,250,59,247, +169,246,65,245,173,243,57,247,91,250,70,248,93,248,50,251,110,249,67,247,2,250,74,251,157,249,140,250,203,251,44,250, +125,249,53,250,157,249,32,249,45,249,225,247,68,246,189,244,104,242,120,242,97,246,252,248,67,248,131,247,155,246,101,244, +20,244,251,246,16,249,47,247,114,243,98,242,187,244,164,246,47,246,104,245,215,245,76,246,177,244,116,242,116,243,174,245, +174,244,186,243,160,245,19,246,218,244,20,245,84,244,209,241,251,240,196,241,19,243,178,244,160,244,161,243,26,244,206,244, +137,245,237,246,111,246,66,245,82,247,202,249,191,248,69,246,218,244,127,244,62,244,51,243,118,242,71,242,217,240,167,239, +163,240,218,240,26,239,141,238,201,239,52,241,205,242,68,244,117,244,142,243,185,242,77,242,123,241,31,240,175,238,234,236, +245,235,33,237,58,237,74,234,233,232,170,234,0,235,195,233,154,234,72,236,246,235,146,235,19,238,184,241,208,242,202,241, +69,241,128,241,120,242,146,243,246,241,97,239,166,240,245,242,219,242,209,244,48,249,252,250,114,252,49,0,164,2,101,5, +70,13,252,22,183,29,236,33,239,35,96,34,106,28,105,19,153,12,100,11,169,11,70,8,74,1,234,248,232,240,24,235, +27,233,175,234,238,236,138,238,163,242,143,250,67,2,131,6,215,7,143,7,72,7,26,8,6,8,24,5,95,2,223,3, +56,7,0,7,251,3,233,2,97,3,108,2,109,2,107,5,171,6,92,4,223,3,200,5,224,5,39,6,169,8,114,8, +33,5,151,5,252,10,139,15,155,15,203,12,86,11,231,12,20,15,208,15,150,15,142,15,9,15,81,12,74,10,40,12, +191,12,161,9,105,9,161,11,40,11,73,11,119,12,194,10,60,10,103,12,70,12,91,12,251,14,121,15,107,14,39,14, +98,12,51,10,129,9,37,9,139,9,141,9,194,7,168,6,198,5,94,4,165,5,238,6,230,5,171,8,69,13,194,11, +146,8,185,9,244,11,62,13,46,14,73,14,205,13,208,12,84,12,124,12,2,10,56,7,150,9,196,12,22,12,238,10, +3,10,247,8,5,10,197,9,62,6,137,5,198,7,14,7,48,5,40,6,178,6,209,3,150,1,184,3,97,6,120,5, +160,3,16,3,85,2,85,2,210,3,239,3,241,1,18,0,171,254,21,253,77,252,80,253,217,254,183,255,61,1,66,3, +6,3,4,1,253,255,120,0,250,1,62,3,244,2,134,2,138,2,195,1,158,1,244,2,167,3,136,3,159,3,6,4, +4,5,254,5,50,7,245,9,2,12,187,11,189,11,242,11,73,11,115,11,181,10,154,7,74,6,185,7,38,9,211,10, +102,11,240,7,59,3,190,2,122,7,193,12,132,13,74,11,170,10,40,12,242,13,50,14,198,12,249,11,134,10,217,6, +113,6,79,10,153,11,88,11,129,13,11,14,214,12,173,14,240,16,76,16,197,15,180,16,23,17,247,15,184,13,199,11, +131,11,138,12,124,12,120,9,160,6,252,7,82,10,181,9,112,8,192,7,60,7,231,8,114,10,172,7,33,5,81,7, +212,9,197,10,107,12,134,11,149,7,234,7,110,11,7,10,220,6,254,7,37,9,124,8,64,10,28,12,94,10,57,8, +135,7,101,6,16,5,19,5,70,6,189,6,168,5,105,5,238,6,57,8,250,8,66,9,206,8,106,9,54,10,115,8, +150,6,247,6,176,7,50,8,225,7,119,5,239,2,6,1,9,255,182,255,118,2,93,2,21,0,10,255,203,254,106,254, +249,253,214,253,199,254,219,255,253,255,77,0,174,1,120,3,251,3,250,2,50,3,35,4,6,3,82,3,57,6,103,5, +95,2,147,3,39,5,100,3,238,2,141,4,199,4,163,3,151,2,27,3,164,5,239,6,135,4,97,1,50,1,188,2, +142,2,187,1,102,2,232,1,251,255,163,0,81,2,83,1,138,255,141,254,251,253,142,254,36,255,147,254,31,254,16,254, +180,254,189,255,41,254,113,251,22,252,132,253,16,252,177,249,182,247,248,246,9,249,237,250,48,250,132,250,144,253,122,255, +61,254,141,252,61,253,232,254,178,254,72,253,250,251,244,249,65,248,38,249,110,251,34,253,139,255,179,2,244,2,221,0, +121,1,255,2,4,1,240,255,37,2,7,2,161,0,65,2,101,3,108,3,243,4,196,3,46,0,39,1,179,4,54,6, +68,7,77,6,117,2,129,1,100,3,45,3,237,2,127,4,229,3,25,1,68,0,4,1,85,0,86,255,204,0,219,2, +251,1,72,255,102,253,58,252,178,251,14,252,132,251,254,248,212,246,184,247,60,250,45,250,83,247,77,245,157,244,0,244, +146,244,191,245,66,245,48,244,250,243,168,243,250,242,254,241,48,241,171,242,31,245,198,244,126,243,185,244,4,247,194,249, +223,253,3,1,158,2,112,5,23,8,110,7,13,5,26,3,95,1,204,0,135,2,7,5,170,5,39,3,61,255,208,253, +139,255,210,0,8,0,209,254,179,253,164,252,25,252,255,250,79,249,46,249,176,249,77,249,206,249,187,249,229,246,66,246, +152,248,243,246,249,243,8,246,22,247,208,243,189,243,213,246,75,247,96,247,138,249,244,250,247,250,169,250,110,250,162,251, +7,254,24,255,202,253,136,251,142,250,173,250,70,249,85,247,210,248,64,252,13,252,38,248,255,245,246,246,118,246,88,243, +194,241,172,242,95,244,255,246,99,248,220,245,214,242,151,242,229,242,242,242,105,244,28,246,31,246,143,245,54,246,183,247, +42,249,182,250,14,251,173,248,130,247,136,251,177,255,100,254,186,251,189,252,162,254,174,253,217,251,188,251,182,251,65,250, +209,248,9,248,121,247,72,247,137,246,137,245,154,246,172,247,129,245,134,243,121,244,51,245,112,245,136,247,47,249,86,248, +190,247,171,248,160,248,5,247,94,246,80,247,176,247,34,247,79,247,252,247,123,248,164,249,117,250,242,248,69,247,60,248, +252,249,230,250,253,251,220,251,19,250,192,250,7,253,131,251,237,248,201,249,26,250,162,248,173,249,138,250,128,247,164,245, +161,247,92,248,252,245,36,244,174,244,98,246,22,248,125,249,124,250,40,251,70,251,60,250,183,249,29,252,104,255,203,0, +106,1,146,1,57,0,38,255,51,255,178,254,23,254,127,254,189,254,121,253,38,251,178,250,9,254,73,1,148,0,240,254, +119,0,248,4,213,9,12,11,243,6,173,2,13,3,176,4,60,3,30,1,53,1,68,2,135,3,72,4,35,3,223,2, +97,5,25,6,20,4,159,3,251,3,105,3,6,4,29,5,241,4,245,4,161,5,204,6,107,8,4,9,52,9,182,9, +241,8,9,9,134,11,59,12,192,11,115,13,8,14,228,12,217,13,156,14,161,12,149,10,229,9,201,10,142,12,93,12, +73,10,0,8,134,5,55,5,78,8,134,10,53,9,171,6,239,5,108,7,125,8,157,8,240,9,83,11,185,11,91,12, +241,11,100,11,72,13,114,13,114,10,71,10,83,12,92,12,1,12,172,11,141,10,108,10,148,10,136,10,170,11,53,12, +18,12,228,12,229,11,186,9,201,10,185,12,3,13,186,13,137,13,9,12,39,13,119,15,177,14,227,12,81,13,229,13, +23,12,152,10,245,11,181,12,105,11,252,11,145,13,16,13,13,13,55,14,21,14,95,14,122,15,196,14,244,13,173,14, +127,14,129,13,52,13,15,12,228,9,204,8,205,7,15,5,183,3,148,6,8,9,55,7,19,5,35,5,183,4,104,3, +169,2,196,2,84,4,241,5,249,4,241,2,104,2,76,2,175,1,0,2,218,2,180,1,102,0,117,2,9,3,232,254, +179,254,41,2,193,253,59,247,216,249,118,252,52,249,207,248,62,249,47,244,169,239,108,238,237,236,175,237,162,241,171,243, +61,242,212,239,186,238,21,240,182,242,111,244,63,243,197,238,150,235,168,237,55,241,64,242,195,242,1,244,254,243,63,243, +197,243,161,243,210,240,147,238,148,238,178,237,123,236,43,237,140,236,255,233,237,233,105,235,132,235,32,236,180,236,84,234, +136,231,169,231,51,233,16,234,13,234,165,233,250,233,130,235,133,236,60,235,1,233,16,233,173,235,242,237,167,238,143,238, +81,237,124,235,19,236,205,238,246,238,135,236,107,236,255,237,73,237,54,236,105,237,86,238,182,237,179,237,191,238,2,239, +25,237,39,234,248,232,242,233,63,235,68,236,62,237,65,238,87,239,219,239,152,239,32,239,214,238,250,239,228,242,234,244, +84,244,92,242,85,241,250,242,24,245,213,244,240,244,175,246,244,246,37,247,129,248,182,247,54,247,2,250,36,251,164,250, +183,252,45,253,173,250,154,251,189,254,217,254,250,253,169,254,210,255,38,0,80,254,207,251,70,252,9,255,250,0,98,1, +116,0,243,254,114,254,63,255,179,0,69,2,121,3,66,4,133,4,91,4,135,4,132,4,149,3,128,3,235,4,133,5, +96,5,33,6,253,5,125,4,152,5,180,8,44,8,86,5,151,6,155,10,97,11,18,9,23,8,184,9,139,11,246,11, +196,11,166,10,98,8,86,8,154,10,77,10,242,8,38,11,105,13,147,12,215,11,252,11,53,12,41,13,141,12,13,10, +124,9,225,9,54,9,184,10,155,13,53,13,212,11,81,13,107,14,77,12,61,10,161,10,53,11,216,10,15,11,29,11, +45,10,66,10,65,10,192,7,175,6,201,9,92,12,37,12,140,11,244,10,100,10,96,10,156,9,93,8,122,8,164,9, +212,10,50,11,9,10,27,9,72,10,105,12,68,13,71,11,239,7,72,7,21,8,230,5,186,3,19,6,108,9,241,9, +12,9,10,8,252,6,118,6,3,7,90,8,129,8,54,7,207,7,168,9,19,8,171,4,68,4,204,5,129,6,109,6, +173,5,97,4,131,3,188,3,140,4,103,4,127,3,168,3,217,3,61,3,109,4,85,6,219,4,150,1,16,0,70,0, +162,1,187,2,1,2,50,1,79,1,217,0,102,0,190,0,33,1,221,1,26,2,141,0,185,255,251,0,142,1,242,0, +161,0,175,255,125,253,164,251,100,251,51,252,184,252,37,253,182,254,125,0,232,0,14,0,224,253,164,251,220,252,16,1, +208,3,171,4,145,5,37,5,145,3,144,4,53,7,22,7,193,5,180,6,172,7,221,6,164,6,171,6,209,4,253,2, +164,3,90,5,127,5,211,3,211,2,245,3,179,4,211,2,153,0,241,0,212,2,166,3,163,3,60,4,146,4,55,4, +145,4,151,4,192,2,23,1,195,0,115,0,138,0,177,1,247,2,207,3,8,4,207,3,35,3,93,1,204,0,141,3, +109,5,4,4,18,3,232,2,225,1,201,1,239,1,0,1,123,1,208,2,213,2,13,3,194,2,151,0,123,255,199,255, +172,255,224,0,41,3,246,3,173,3,104,2,26,0,39,255,94,255,3,255,73,255,120,0,72,1,150,1,239,0,35,0, +208,0,73,1,163,0,207,0,120,1,243,1,182,2,21,2,142,0,162,0,181,0,164,0,185,2,18,3,196,255,70,255, +107,2,225,3,239,3,222,3,181,2,47,2,64,2,201,0,5,0,19,1,41,1,180,0,62,1,241,1,3,3,151,3, +190,1,250,255,203,0,239,1,204,1,243,0,41,0,181,0,196,1,107,1,212,0,149,0,44,255,23,254,187,255,103,2, +126,2,14,255,97,252,171,254,71,2,51,2,95,0,139,255,10,255,47,254,248,252,61,253,138,0,54,3,231,2,127,2, +224,1,251,255,202,255,160,0,157,255,150,255,230,1,160,2,242,0,128,255,47,255,242,254,28,254,148,254,61,1,171,2, +67,2,255,2,231,2,179,255,188,253,136,255,32,1,195,255,166,253,57,253,14,253,41,252,100,253,185,255,88,254,211,251, +166,252,118,253,216,252,43,254,93,255,188,253,192,252,9,254,10,255,240,254,165,254,219,254,83,255,152,254,213,252,246,251, +3,252,214,251,45,252,130,254,142,1,179,1,199,254,241,252,123,253,28,254,106,254,215,254,42,255,0,0,118,0,78,255, +23,255,93,0,253,254,221,251,49,252,204,254,141,255,35,255,229,254,122,254,200,254,98,255,45,254,123,252,167,252,64,253, +196,252,55,252,18,252,61,252,227,252,92,253,112,253,167,253,113,253,238,252,153,253,253,254,157,255,184,255,154,255,8,255, +43,254,178,252,24,251,4,251,66,251,176,249,7,249,198,251,42,254,188,253,216,253,70,255,247,254,250,253,255,254,18,0, +116,255,23,255,215,255,206,0,25,1,74,255,154,252,92,252,11,253,230,251,191,251,153,253,173,253,78,252,222,251,174,250, +0,249,116,249,62,250,204,249,1,251,255,253,5,255,75,253,114,251,128,251,184,252,19,253,223,252,99,253,167,253,123,253, +40,254,221,254,67,255,172,0,67,1,85,255,39,254,138,255,242,0,82,1,130,1,127,1,91,1,69,1,39,1,17,1, +174,0,143,0,63,2,168,4,26,5,157,3,63,2,89,2,49,3,188,2,115,1,108,1,249,1,9,2,26,2,46,1, +124,255,216,255,173,1,56,2,157,1,114,0,101,255,5,0,197,0,19,0,107,0,233,1,53,2,198,2,44,4,175,3, +81,2,173,2,149,3,182,3,79,3,179,2,238,2,135,3,113,2,189,0,178,0,174,1,189,2,64,3,207,1,128,255, +77,255,47,1,233,2,40,3,227,1,100,0,241,255,14,0,239,255,208,255,16,0,129,0,189,0,41,1,84,2,152,2, +160,0,221,254,228,254,17,255,33,0,21,3,245,3,97,1,117,0,79,2,163,2,19,1,42,0,3,0,26,0,99,0, +191,0,176,1,113,2,121,1,47,0,222,255,16,255,128,254,173,255,243,255,102,254,128,254,54,0,197,0,3,1,147,1, +9,1,10,1,94,3,23,5,32,4,110,2,82,1,222,0,101,1,194,1,63,1,210,1,110,3,153,3,100,3,93,4, +211,3,230,1,219,2,249,4,89,3,160,0,35,1,120,2,249,1,101,1,208,1,73,2,119,2,134,2,111,2,45,2, +251,1,90,2,83,3,108,4,100,5,161,5,35,4,193,1,54,1,213,2,47,3,1,1,235,255,41,1,254,0,73,254, +178,251,90,250,158,250,59,252,242,251,201,248,214,246,156,247,14,248,213,246,222,245,196,246,5,248,56,247,157,245,226,244, +140,243,98,242,169,243,8,245,19,245,11,246,178,246,178,245,66,246,17,248,162,247,159,246,196,247,129,249,207,249,187,248, +244,247,111,248,128,248,220,247,153,248,73,250,139,251,89,252,177,251,69,250,135,250,16,251,141,250,36,251,128,252,99,253, +12,255,29,0,12,255,117,254,184,254,38,254,47,254,206,254,79,254,121,254,6,0,148,0,119,0,58,1,197,1,15,1, +16,0,77,0,201,1,14,3,1,4,24,5,106,5,210,5,151,7,115,8,49,7,104,5,1,3,128,0,208,255,221,255, +189,255,161,0,156,1,63,2,0,4,109,5,53,5,228,4,141,4,82,4,104,5,230,5,233,4,21,5,244,5,163,5, +78,5,63,5,1,5,48,5,147,4,31,3,71,3,118,3,76,1,2,0,173,1,105,3,119,3,219,2,251,2,2,4, +74,4,138,3,126,3,235,3,204,3,146,3,210,2,90,1,181,0,211,0,97,0,200,255,20,0,87,1,77,2,92,1, +91,255,33,254,96,253,17,253,194,253,243,253,19,253,192,252,220,252,152,252,129,252,94,252,254,251,253,251,190,251,150,251, +226,252,156,253,27,252,199,251,241,253,167,254,239,252,174,251,95,251,23,251,57,251,51,251,126,250,230,250,135,252,176,252, +102,251,189,250,78,250,40,250,54,252,178,254,202,253,9,251,228,250,49,253,44,254,242,252,37,252,135,252,94,252,248,251, +63,252,190,251,155,250,227,250,148,251,62,251,121,251,193,252,122,253,46,253,135,252,103,252,196,252,93,252,248,251,233,252, +15,253,197,251,236,251,198,252,237,251,162,251,76,253,255,253,225,252,111,252,206,253,78,255,206,254,46,253,44,253,132,254, +61,255,113,255,51,255,246,253,250,252,119,253,141,254,243,254,106,254,13,254,247,254,6,0,138,255,34,254,48,253,242,252, +232,252,115,252,235,251,116,252,176,253,28,254,205,253,228,253,71,254,25,254,135,253,223,253,173,255,122,1,106,1,221,255, +224,254,37,255,191,255,88,0,191,0,58,0,128,255,203,255,38,0,220,255,88,0,168,1,48,2,236,1,200,1,196,1, +229,1,162,2,144,3,31,3,85,1,209,0,227,1,198,1,26,1,73,2,73,3,141,2,160,2,93,3,124,2,170,1, +180,2,215,3,210,3,42,3,112,2,40,2,71,2,105,2,114,2,239,1,61,1,159,1,128,2,152,2,68,2,133,1, +82,0,204,0,132,3,90,5,151,4,91,3,155,3,21,4,251,2,204,1,146,2,116,3,179,2,78,2,237,2,131,2, +59,1,181,0,186,0,149,0,35,0,128,255,87,255,11,0,155,1,209,3,120,4,34,2,99,0,232,1,110,3,166,2, +88,1,42,0,54,255,199,255,25,1,214,1,14,3,150,4,159,4,225,3,205,3,14,4,118,4,197,4,70,4,181,3, +161,3,12,3,100,2,179,2,171,2,200,1,227,1,10,3,101,3,184,2,231,1,128,1,233,1,125,2,101,2,179,2, +244,3,64,4,54,3,44,3,91,4,154,4,162,3,173,2,42,2,63,2,105,2,140,1,101,0,89,0,148,0,167,0, +239,1,158,3,109,3,28,2,136,1,86,1,192,0,59,0,96,0,29,1,165,1,148,1,194,1,62,2,197,1,105,0, +154,255,209,255,95,0,165,0,210,0,64,1,11,1,173,255,220,254,148,255,75,0,35,0,247,255,63,0,144,0,79,0, +248,255,194,0,235,1,227,1,137,1,189,1,151,1,43,1,248,0,187,0,60,1,76,2,162,1,226,255,224,255,251,0, +51,1,198,0,94,0,115,0,92,1,191,1,219,0,168,0,207,1,54,2,205,1,89,2,89,2,9,0,173,254,67,0, +42,1,187,0,3,2,242,2,21,1,64,0,147,1,76,1,38,0,165,0,16,1,182,0,210,0,65,0,98,255,217,0, +201,2,134,1,228,254,17,254,101,254,1,255,255,255,240,255,245,254,176,255,126,1,123,1,124,0,111,0,152,0,96,0, +53,0,21,0,6,0,196,255,107,255,245,255,110,0,75,255,5,254,244,253,205,254,181,0,226,1,135,0,134,255,95,0, +119,0,11,0,23,0,208,254,131,253,108,254,75,255,98,255,171,0,193,1,23,1,157,0,97,1,27,2,161,1,61,0, +95,255,32,255,110,254,74,254,208,255,20,1,198,255,158,252,19,251,171,252,248,253,249,252,112,252,135,252,243,250,150,249, +99,250,169,251,161,252,70,253,159,252,0,251,63,249,109,248,37,250,153,252,220,252,200,252,235,253,76,254,57,254,236,254, +14,255,195,254,85,255,48,0,81,1,78,2,8,1,211,254,63,255,69,1,248,1,127,1,180,0,127,255,38,254,74,253, +177,253,66,255,248,255,250,254,110,254,2,255,160,254,164,253,75,254,105,255,74,255,133,255,28,0,10,255,71,254,13,0, +135,1,77,1,190,1,144,2,14,2,53,1,248,0,62,1,192,1,43,1,235,255,69,0,20,1,97,0,26,0,54,1, +206,1,203,1,255,1,238,1,141,1,72,1,129,1,104,2,204,2,29,2,131,1,209,0,183,255,150,255,75,0,239,0, +214,1,216,1,195,0,82,1,139,2,104,1,81,0,102,1,9,2,186,1,203,1,44,1,0,0,240,255,125,0,239,0, +121,1,39,1,157,255,187,254,134,255,29,0,29,255,160,254,86,0,15,2,250,1,244,0,174,255,241,254,147,255,108,0, +134,0,5,0,171,254,223,253,226,254,67,255,78,254,121,254,27,255,41,255,16,0,114,0,34,255,236,254,189,255,116,255, +182,255,154,0,127,255,208,253,174,253,193,253,182,253,32,254,17,254,233,253,85,254,40,254,7,254,125,255,84,0,163,254, +47,253,241,253,239,254,24,255,50,255,227,254,43,254,86,254,21,255,104,255,206,255,239,255,249,254,109,254,35,255,103,255, +252,254,26,255,40,255,154,254,94,254,93,254,5,254,9,254,102,254,22,254,201,253,160,254,73,255,139,254,230,253,141,254, +91,255,47,255,62,254,119,253,178,253,95,254,72,254,235,253,78,254,202,254,155,254,117,254,251,254,178,255,16,0,95,0, +155,0,215,255,71,254,150,253,24,254,186,254,52,255,161,255,206,255,250,255,101,0,216,0,29,1,11,1,185,0,155,0, +198,0,209,0,146,0,57,0,244,255,175,255,141,255,5,0,163,0,152,0,118,0,126,0,175,255,205,254,134,255,155,0, +37,0,1,255,145,254,177,254,216,254,195,254,166,254,216,254,202,254,233,253,45,253,116,253,206,253,102,253,238,252,246,252, +74,253,226,253,162,254,33,255,92,255,122,255,188,255,59,0,35,0,112,255,164,255,105,0,17,0,128,255,249,255,134,0, +199,0,40,1,102,1,161,1,169,1,26,1,71,1,115,2,240,2,66,3,77,4,124,4,182,3,86,3,182,2,178,1, +127,1,221,1,48,2,50,2,114,1,6,1,249,1,206,2,195,2,247,2,62,3,159,2,105,1,189,0,37,1,121,1, +162,0,255,255,129,0,194,0,130,0,208,0,102,1,166,1,125,1,238,0,151,0,170,0,151,0,189,0,69,1,16,1, +87,0,122,0,36,1,100,1,102,1,102,1,30,1,95,0,168,255,212,255,135,0,209,0,91,1,116,2,126,2,90,1, +217,0,23,1,58,1,140,1,50,2,219,2,98,3,87,3,21,3,131,3,141,3,76,2,209,1,15,3,196,3,235,2, +193,1,8,1,204,0,225,0,14,1,144,1,62,2,67,2,133,1,165,0,54,0,88,0,79,0,194,255,139,255,148,255, +18,255,202,254,118,255,239,255,123,255,15,255,151,255,199,0,166,1,165,1,199,0,195,255,245,255,69,1,209,1,155,1, +245,1,231,1,185,0,89,0,131,1,149,2,176,2,98,2,81,2,93,2,250,1,78,1,152,0,224,255,19,0,70,1, +254,1,62,2,143,2,225,1,154,0,103,0,174,0,159,0,197,0,194,0,100,0,123,0,191,0,161,0,113,0,27,0, +146,255,11,255,46,254,104,253,193,253,164,254,8,255,37,255,56,255,255,254,184,254,200,254,215,254,110,254,47,254,214,254, +164,255,223,255,243,255,226,255,133,255,89,255,59,255,223,254,211,254,0,255,240,254,55,255,240,255,83,0,92,0,59,0, +142,255,62,254,188,252,201,251,30,252,179,253,119,255,238,255,5,255,138,254,237,254,160,254,235,253,14,254,246,253,36,253, +101,253,200,254,103,255,7,255,244,254,140,255,134,255,255,253,188,252,94,253,98,254,169,254,72,255,23,0,44,0,254,255, +119,255,51,254,43,253,144,252,28,252,37,253,71,255,186,255,131,254,157,253,53,253,132,253,136,254,66,254,250,252,175,253, +195,255,71,0,175,255,198,255,54,0,35,0,207,255,195,255,180,255,59,255,230,254,231,254,224,254,90,255,196,255,124,254, +90,253,188,254,62,0,251,255,226,255,105,0,147,0,30,1,36,2,78,2,80,1,60,0,28,0,59,0,124,255,52,255, +16,0,15,0,190,255,41,1,87,2,157,1,17,1,125,1,224,1,249,1,245,0,143,254,195,252,198,252,202,253,225,254, +138,255,129,255,187,254,220,253,30,254,15,255,250,254,39,254,250,253,189,254,25,0,217,0,66,0,4,0,173,0,139,0, +4,0,21,0,133,255,165,254,48,255,84,0,210,0,11,1,24,1,0,1,17,1,21,1,53,1,147,1,121,1,34,1, +58,1,11,1,102,0,74,0,194,0,80,1,194,1,187,1,172,1,47,2,66,2,23,1,128,255,4,254,9,253,93,253, +94,254,206,254,0,255,100,255,147,255,152,255,152,255,144,255,211,255,63,0,122,0,152,0,76,0,10,0,7,1,248,1, +64,1,205,0,140,1,80,1,25,0,79,255,85,254,41,253,213,252,37,253,203,253,126,254,182,254,44,255,232,255,153,255, +28,255,125,255,64,255,132,254,215,254,18,255,57,254,180,253,233,253,44,254,164,254,81,255,203,255,181,255,250,254,123,254, +21,255,64,0,223,0,99,0,142,255,196,255,147,0,184,0,205,0,52,1,4,1,190,0,55,1,131,1,80,1,111,1, +175,1,198,1,10,2,36,2,204,1,178,1,225,1,135,1,189,0,76,0,59,0,41,0,52,0,164,0,89,1,138,1, +124,0,5,255,180,254,54,255,130,255,39,0,107,1,26,2,254,1,57,2,17,3,102,3,231,1,193,254,51,252,47,252, +15,254,185,255,50,0,23,0,15,0,27,0,22,0,212,255,154,255,31,0,181,0,41,0,143,255,33,0,240,0,114,1, +147,1,107,0,249,254,54,255,58,0,152,0,159,0,44,0,83,255,57,255,148,255,111,255,142,255,124,0,36,1,231,0, +148,0,223,0,46,1,197,0,82,0,150,0,206,0,79,0,12,0,211,0,92,1,135,0,221,255,80,0,32,0,45,255, +17,255,35,255,70,255,6,1,119,2,158,1,43,1,177,1,178,0,175,255,43,0,165,255,102,254,222,254,149,255,77,255, +121,255,160,255,243,254,232,254,85,255,241,254,216,254,238,255,18,1,188,1,208,1,247,0,25,0,15,0,9,0,108,255, +187,254,162,254,161,255,0,1,55,1,126,0,26,0,34,0,58,0,76,0,70,0,123,0,204,0,194,0,0,1,166,1, +150,1,32,1,39,1,3,1,118,0,227,255,247,254,17,254,160,253,14,253,246,252,12,254,240,254,246,254,233,254,201,254, +207,254,116,255,35,0,194,0,96,1,248,0,236,255,200,255,31,0,210,255,253,254,80,254,128,254,247,254,75,254,87,253, +143,253,190,253,62,253,183,253,16,255,111,255,66,255,18,0,252,0,125,0,155,255,166,255,186,255,98,255,128,255,139,255, +212,254,151,254,80,255,216,255,243,255,59,0,158,0,83,0,241,254,238,253,236,254,93,0,2,0,226,254,239,254,232,255, +155,0,176,0,133,0,254,255,255,254,214,254,2,0,114,0,185,255,231,255,152,0,253,255,2,255,197,254,192,254,58,255, +50,0,89,0,247,255,30,0,253,255,131,255,67,0,141,1,66,1,220,255,10,255,250,254,40,255,28,255,181,254,173,254, +21,255,207,254,16,254,17,254,89,254,8,254,235,253,66,254,238,253,105,253,74,254,148,255,94,255,169,254,228,254,252,254, +135,254,205,254,78,255,233,254,186,254,53,255,234,254,28,254,74,254,229,254,205,254,160,254,6,255,120,255,177,255,236,255, +7,0,62,0,45,1,39,2,248,1,34,1,246,0,155,1,76,2,63,2,156,1,89,1,110,1,71,1,138,1,68,2, +17,2,250,0,72,0,237,255,145,255,187,255,88,0,149,0,106,0,127,0,194,0,127,0,250,255,21,0,143,0,161,0, +84,0,227,255,61,255,141,254,93,254,9,255,160,255,1,255,81,254,182,254,175,254,192,253,196,253,195,254,108,255,212,255, +34,0,36,0,32,0,231,255,130,255,115,255,84,255,88,255,69,0,121,0,222,254,240,253,174,254,58,255,183,255,220,0, +68,1,225,0,48,1,152,1,27,1,173,0,172,0,21,0,221,254,37,254,153,254,151,255,241,255,179,255,162,255,76,255, +156,254,210,254,143,255,158,255,218,255,118,0,7,0,80,255,103,255,31,255,195,254,129,255,248,255,166,255,215,255,159,255, +101,254,65,254,76,255,199,255,5,0,150,0,195,0,176,0,229,0,253,0,161,0,30,0,55,0,44,1,201,1,33,1, +47,0,13,0,109,0,165,0,152,0,184,0,104,1,28,2,235,1,72,1,144,1,128,2,102,2,43,1,67,0,251,255, +220,255,224,255,216,255,239,255,170,0,53,1,168,0,232,255,144,255,37,255,219,254,0,255,64,255,177,255,65,0,114,0, +184,0,90,1,51,1,43,0,207,255,61,0,81,0,99,0,246,0,231,0,29,0,17,0,83,0,223,255,218,255,60,0, +111,255,10,255,199,0,188,1,59,0,28,255,37,255,177,254,208,254,121,0,146,1,67,1,31,1,196,1,190,2,74,3, +71,2,4,0,96,254,47,254,237,254,139,255,241,254,225,253,36,254,48,255,126,255,44,255,82,254,86,253,10,254,4,0, +139,0,214,255,179,255,120,255,185,254,152,254,158,254,252,253,223,253,143,254,162,254,117,254,60,255,216,255,48,255,155,254, +215,254,240,254,226,254,3,255,212,254,212,254,171,255,27,0,178,255,235,255,201,0,219,0,37,0,200,255,9,0,79,0, +46,0,213,255,89,255,214,254,222,254,117,255,213,255,194,255,65,255,137,254,167,254,175,255,25,0,125,255,241,254,242,254, +70,255,103,255,14,255,192,254,160,254,63,254,45,254,246,254,172,255,131,255,243,254,197,254,78,255,60,0,232,0,198,0, +210,255,4,255,73,255,60,0,63,1,3,2,241,1,56,1,161,0,52,0,54,0,224,0,44,1,27,1,163,1,217,1, +57,1,45,1,126,1,32,1,245,0,70,1,50,1,34,1,107,1,66,1,157,0,20,0,184,255,163,255,18,0,211,0, +19,1,70,0,108,255,183,255,145,0,226,0,194,0,179,0,20,1,235,1,103,2,252,1,97,1,47,1,248,0,126,0, +42,0,22,0,20,0,43,0,21,0,183,255,181,255,250,255,228,255,41,0,222,0,132,0,160,255,244,255,223,0,47,1, +237,0,45,0,179,255,4,0,7,0,200,255,51,0,79,0,210,255,206,255,182,255,73,255,107,255,142,255,192,255,233,0, +76,1,15,0,160,255,87,0,145,0,170,0,196,0,44,0,205,255,74,0,207,0,230,0,94,0,151,255,146,255,201,255, +85,255,74,255,244,255,219,255,65,255,92,255,168,255,175,255,0,0,61,0,10,0,42,0,140,0,113,0,70,0,85,0, +40,0,30,0,82,0,247,255,116,255,113,255,115,255,197,255,120,0,29,0,12,255,225,254,21,255,50,255,219,255,83,0, +67,0,120,0,87,0,146,255,59,255,18,255,229,254,195,255,5,1,85,1,25,1,161,0,238,255,203,255,87,0,234,0, +232,0,6,0,110,255,42,0,205,0,122,0,67,0,0,0,130,255,249,255,175,0,17,0,42,255,34,255,98,255,190,255, +23,0,198,255,46,255,8,255,40,255,111,255,175,255,148,255,139,255,172,255,102,255,64,255,128,255,22,255,155,254,129,255, +118,0,48,0,211,255,167,255,68,255,117,255,190,255,81,255,122,255,245,255,16,255,97,254,62,255,76,255,19,254,234,253, +201,254,99,255,231,255,109,0,172,0,210,0,176,0,11,0,111,255,125,255,27,0,141,0,138,0,112,0,29,0,116,255, +63,255,134,255,82,255,207,254,189,254,196,254,167,254,200,254,232,254,153,254,54,254,12,254,249,253,85,254,62,255,190,255, +133,255,89,255,64,255,40,255,151,255,189,255,219,254,129,254,115,255,75,0,105,0,5,0,140,255,30,0,66,1,65,1, +194,0,230,0,216,0,183,0,110,1,6,2,148,1,199,0,52,0,22,0,151,0,50,1,79,1,22,1,231,0,187,0, +114,0,91,0,122,0,124,0,242,0,250,1,24,2,34,1,206,0,99,1,253,1,230,1,26,0,103,253,6,253,190,255, +89,2,123,2,52,1,51,0,175,255,233,255,250,0,57,1,83,0,136,0,121,1,249,0,53,0,53,0,158,255,86,255, +114,0,250,0,152,0,178,0,148,0,24,0,121,0,33,1,27,1,185,0,104,0,150,0,44,1,92,1,93,1,187,1, +247,1,201,1,89,1,224,0,211,0,247,0,221,0,11,1,98,1,27,1,192,0,7,1,117,1,152,1,154,1,237,1, +82,2,152,1,6,0,136,255,80,0,243,0,255,0,195,0,151,0,129,0,14,0,136,255,173,255,5,0,209,255,130,255, +194,255,54,0,24,0,216,255,36,0,1,0,79,255,173,255,81,0,173,255,103,255,87,0,65,1,75,2,86,2,116,255, +231,252,59,254,214,0,23,2,133,2,135,1,207,254,196,252,24,253,151,254,34,255,95,254,216,253,101,254,186,255,87,1, +136,1,78,255,36,253,79,253,178,254,208,255,102,0,50,0,114,255,7,255,19,255,226,254,72,254,253,253,76,254,179,254, +27,255,131,255,88,255,209,254,201,254,22,255,33,255,14,255,98,255,43,0,169,0,146,0,151,0,118,0,179,255,139,255, +108,0,245,0,8,1,28,1,147,0,198,255,191,255,15,0,250,255,198,255,226,255,83,0,129,0,246,255,70,255,18,255, +100,255,243,255,235,255,67,255,97,255,37,0,11,0,188,255,119,0,254,0,101,0,254,255,1,0,46,255,19,254,2,254, +148,254,130,255,226,0,6,1,93,255,70,254,86,254,32,254,102,254,134,255,115,255,110,254,177,254,206,255,60,0,252,255, +75,255,103,254,33,254,183,254,121,255,194,255,136,255,69,255,113,255,14,0,128,0,52,0,147,255,71,255,51,255,79,255, +190,255,5,0,33,0,114,0,94,0,163,255,76,255,195,255,117,0,10,1,91,1,89,1,3,1,55,0,81,255,245,254, +26,255,118,255,243,255,65,0,28,0,248,255,119,0,62,1,94,1,240,0,157,0,90,0,62,0,104,0,0,0,11,255, +219,254,152,255,123,0,24,1,18,1,196,0,179,0,113,0,101,0,15,1,12,1,98,0,201,0,58,1,124,0,59,0, +207,0,200,0,161,0,45,1,165,1,96,1,197,0,165,0,218,0,89,0,147,255,172,255,24,0,110,0,26,1,100,1, +238,0,170,0,174,0,179,0,18,1,91,1,231,0,10,0,79,255,45,255,241,255,31,1,230,1,216,1,16,1,56,0, +7,0,146,0,233,0,43,0,116,255,24,0,226,0,171,0,70,0,192,255,223,254,229,254,217,255,51,0,200,255,92,255, +29,255,8,255,23,255,92,255,196,255,233,255,250,255,11,0,158,255,80,255,181,255,177,255,25,255,231,254,233,254,55,255, +42,0,68,0,220,254,200,253,52,254,118,255,86,0,36,0,147,255,115,255,192,255,130,0,1,1,105,0,225,255,0,0, +185,255,191,255,171,0,190,0,243,255,208,255,209,255,139,255,175,255,194,255,143,255,206,255,245,255,159,255,182,255,45,0, +39,0,212,255,177,255,156,255,106,255,86,255,165,255,63,0,193,0,178,0,237,255,43,255,9,255,240,254,84,254,192,253, +240,253,232,254,235,255,53,0,218,255,29,255,75,254,74,254,34,255,163,255,122,255,29,255,203,254,253,254,130,255,109,255, +214,254,43,254,140,253,216,253,33,255,233,255,185,255,46,255,165,254,168,254,22,255,52,255,131,255,50,0,34,0,122,255, +53,255,61,255,122,255,211,255,192,255,164,255,223,255,215,255,192,255,2,0,254,255,198,255,244,255,33,0,68,0,173,0, +164,0,67,0,167,0,18,1,64,0,98,255,139,255,178,255,144,255,255,255,90,0,235,255,219,255,150,0,200,0,19,0, +98,255,30,255,47,255,97,255,105,255,97,255,149,255,248,255,63,0,51,0,5,0,1,0,212,255,77,255,63,255,250,255, +90,0,235,255,242,255,205,0,213,0,220,255,224,255,145,0,245,255,56,255,243,255,121,0,47,0,118,0,140,0,214,255, +226,255,116,0,99,0,173,0,102,1,59,1,182,0,177,0,160,0,102,0,42,0,197,255,169,255,241,255,24,0,69,0, +96,0,241,255,219,255,182,0,40,1,191,0,186,0,6,1,180,0,97,0,189,0,4,1,200,0,175,0,245,0,53,1, +55,1,230,0,88,0,254,255,13,0,69,0,127,0,158,0,114,0,50,0,60,0,114,0,170,0,3,1,73,1,24,1, +173,0,87,0,6,0,2,0,131,0,221,0,203,0,248,0,78,1,13,1,114,0,61,0,155,0,56,1,119,1,6,1, +101,0,32,0,87,0,227,0,18,1,114,0,181,255,161,255,15,0,107,0,60,0,187,255,184,255,30,0,66,0,73,0, +91,0,27,0,202,255,181,255,118,255,61,255,146,255,248,255,218,255,141,255,96,255,69,255,50,255,38,255,56,255,107,255, +122,255,87,255,59,255,46,255,90,255,7,0,127,0,195,255,153,254,152,254,97,255,150,255,104,255,118,255,56,255,196,254, +30,255,231,255,16,0,220,255,155,255,240,254,158,254,129,255,98,0,21,0,145,255,185,255,5,0,38,0,60,0,5,0, +156,255,166,255,16,0,47,0,252,255,242,255,48,0,77,0,231,255,85,255,85,255,187,255,194,255,126,255,117,255,144,255, +151,255,180,255,220,255,171,255,17,255,192,254,63,255,217,255,216,255,213,255,22,0,219,255,88,255,123,255,226,255,223,255, +194,255,182,255,139,255,144,255,233,255,18,0,252,255,46,0,112,0,31,0,164,255,156,255,166,255,167,255,16,0,52,0, +143,255,110,255,68,0,149,0,242,255,112,255,149,255,5,0,37,0,200,255,158,255,3,0,113,0,160,0,160,0,90,0, +251,255,226,255,82,0,42,1,144,1,35,1,216,0,59,1,151,1,122,1,49,1,14,1,4,1,227,0,238,0,77,1, +71,1,188,0,129,0,146,0,116,0,110,0,163,0,201,0,176,0,91,0,87,0,232,0,44,1,222,0,186,0,182,0, +144,0,98,0,240,255,177,255,98,0,15,1,239,0,192,0,154,0,46,0,6,0,29,0,239,255,214,255,1,0,32,0, +73,0,112,0,72,0,27,0,53,0,17,0,113,255,42,255,142,255,181,255,113,255,111,255,92,255,18,255,99,255,197,255, +117,255,144,255,89,0,120,0,239,255,112,255,27,255,73,255,156,255,63,255,211,254,245,254,249,254,184,254,145,254,169,254, +45,255,190,255,226,255,252,255,33,0,8,0,32,0,108,0,99,0,64,0,72,0,62,0,42,0,64,0,197,0,242,1, +75,3,54,4,62,4,192,2,46,0,65,254,21,254,102,255,178,0,122,0,93,255,180,254,152,254,26,255,1,0,64,0, +66,0,206,0,194,0,200,255,5,255,134,254,41,254,63,254,109,254,191,254,75,255,43,255,198,254,40,255,125,255,104,255, +184,255,6,0,241,255,32,0,130,0,229,0,44,1,145,0,122,255,69,255,173,255,222,255,254,255,28,0,7,0,176,255, +53,255,58,255,208,255,43,0,71,0,122,0,156,0,205,0,210,0,32,0,121,255,132,255,167,255,219,255,25,0,173,255, +71,255,205,255,52,0,199,255,100,255,164,255,77,0,182,0,97,0,232,255,217,255,207,255,180,255,210,255,254,255,30,0, +64,0,82,0,83,0,43,0,13,0,128,0,8,1,230,0,132,0,14,0,137,255,23,0,126,1,169,1,180,0,102,0, +104,0,171,255,207,254,164,254,3,255,116,255,148,255,123,255,136,255,154,255,142,255,171,255,214,255,184,255,131,255,103,255, +70,255,106,255,209,255,180,255,70,255,159,255,108,0,135,0,30,0,251,255,81,0,211,0,210,0,68,0,46,0,164,0, +188,0,138,0,107,0,17,0,191,255,208,255,202,255,163,255,215,255,41,0,47,0,18,0,38,0,124,0,211,0,245,0, +238,0,185,0,138,0,163,0,118,0,225,255,228,255,91,0,42,0,184,255,194,255,217,255,232,255,54,0,89,0,14,0, +169,255,159,255,22,0,98,0,2,0,170,255,204,255,27,0,155,0,224,0,70,0,171,255,226,255,16,0,195,255,140,255, +101,255,41,255,56,255,137,255,188,255,179,255,117,255,45,255,50,255,130,255,175,255,118,255,68,255,122,255,175,255,188,255, +12,0,90,0,57,0,61,0,135,0,100,0,250,255,216,255,213,255,248,255,102,0,161,0,155,0,241,0,165,1,117,2, +54,3,237,2,231,0,110,254,70,253,142,253,65,254,173,254,201,254,123,254,147,253,7,253,14,254,200,255,133,0,26,0, +226,254,163,253,27,254,234,255,112,0,172,255,123,255,98,255,167,254,60,254,4,254,139,253,255,253,124,255,78,0,26,0, +178,255,86,255,124,255,103,0,233,0,72,0,167,255,216,255,74,0,153,0,233,0,31,1,39,1,39,1,33,1,29,1, +28,1,8,1,39,1,147,1,183,1,154,1,196,1,196,1,68,1,3,1,27,1,201,0,61,0,46,0,125,0,142,0, +67,0,39,0,107,0,134,0,105,0,118,0,96,0,251,255,211,255,214,255,139,255,64,255,102,255,214,255,41,0,17,0, +204,255,216,255,9,0,215,255,106,255,92,255,185,255,242,255,230,255,241,255,241,255,179,255,143,255,146,255,138,255,188,255, +254,255,219,255,188,255,202,255,162,255,139,255,179,255,177,255,198,255,3,0,210,255,122,255,143,255,225,255,54,0,52,0, +171,255,116,255,218,255,254,255,225,255,235,255,194,255,145,255,187,255,204,255,122,255,3,255,204,254,93,255,72,0,126,0, +39,0,209,255,116,255,113,255,221,255,216,255,100,255,98,255,194,255,246,255,211,255,105,255,7,255,15,255,122,255,235,255, +18,0,231,255,167,255,154,255,187,255,98,255,91,254,36,254,137,255,196,0,169,0,23,0,107,255,186,254,192,254,9,255, +192,254,164,254,36,255,165,255,57,0,214,0,137,0,72,255,85,254,161,254,175,255,35,0,187,255,125,255,192,255,35,0, +119,0,70,0,112,255,224,254,12,255,125,255,248,255,52,0,236,255,166,255,163,255,99,255,18,255,68,255,165,255,195,255, +238,255,51,0,39,0,230,255,219,255,231,255,226,255,6,0,48,0,7,0,233,255,55,0,131,0,123,0,79,0,14,0, +210,255,223,255,249,255,186,255,114,255,166,255,31,0,73,0,22,0,208,255,155,255,155,255,234,255,50,0,25,0,192,255, +102,255,68,255,160,255,57,0,86,0,236,255,166,255,183,255,194,255,172,255,147,255,118,255,123,255,204,255,31,0,54,0, +50,0,254,255,141,255,81,255,119,255,194,255,45,0,152,0,208,0,252,0,238,0,97,0,13,0,84,0,93,0,5,0, +231,255,227,255,241,255,101,0,203,0,206,0,244,0,48,1,255,0,146,0,90,0,103,0,135,0,118,0,68,0,51,0, +64,0,114,0,204,0,228,0,157,0,95,0,96,0,147,0,177,0,86,0,207,255,157,255,127,255,107,255,176,255,222,255, +202,255,253,255,51,0,12,0,20,0,77,0,72,0,96,0,160,0,130,0,87,0,125,0,132,0,83,0,64,0,75,0, +102,0,138,0,154,0,148,0,103,0,38,0,55,0,144,0,181,0,134,0,50,0,34,0,171,0,23,1,171,0,22,0, +7,0,37,0,94,0,206,0,7,1,232,0,210,0,212,0,221,0,19,1,83,1,57,1,207,0,144,0,103,0,224,255, +145,255,12,0,65,0,144,255,7,255,246,254,230,254,53,255,169,255,113,255,57,255,172,255,6,0,5,0,248,255,145,255, +19,255,25,255,59,255,41,255,44,255,24,255,235,254,33,255,142,255,219,255,47,0,60,0,199,255,180,255,81,0,152,0, +97,0,120,0,145,0,21,0,178,255,214,255,192,255,70,255,52,255,196,255,108,0,177,0,136,0,82,0,94,0,122,0, +128,0,137,0,124,0,81,0,52,0,10,0,166,255,84,255,123,255,11,0,125,0,108,0,19,0,219,255,182,255,136,255, +156,255,20,0,135,0,154,0,127,0,107,0,50,0,225,255,235,255,72,0,139,0,153,0,125,0,59,0,3,0,222,255, +192,255,219,255,31,0,50,0,38,0,33,0,240,255,176,255,175,255,197,255,205,255,234,255,38,0,110,0,158,0,129,0, +60,0,47,0,78,0,88,0,88,0,91,0,65,0,21,0,13,0,70,0,155,0,186,0,130,0,26,0,180,255,124,255, +154,255,241,255,68,0,121,0,138,0,130,0,119,0,101,0,96,0,125,0,132,0,80,0,2,0,164,255,102,255,169,255, +255,255,200,255,131,255,189,255,5,0,27,0,63,0,104,0,114,0,93,0,49,0,58,0,114,0,105,0,67,0,95,0, +102,0,64,0,77,0,97,0,68,0,88,0,163,0,168,0,97,0,47,0,52,0,75,0,77,0,43,0,250,255,0,0, +96,0,186,0,166,0,76,0,255,255,227,255,247,255,247,255,213,255,215,255,224,255,201,255,2,0,121,0,125,0,49,0, +17,0,244,255,208,255,220,255,215,255,186,255,203,255,210,255,194,255,242,255,31,0,255,255,232,255,220,255,177,255,231,255, +117,0,131,0,62,0,95,0,125,0,47,0,2,0,36,0,44,0,31,0,15,0,244,255,32,0,136,0,139,0,45,0, +11,0,65,0,114,0,100,0,47,0,16,0,255,255,207,255,158,255,150,255,155,255,183,255,5,0,77,0,66,0,249,255, +192,255,192,255,227,255,12,0,30,0,249,255,182,255,142,255,128,255,138,255,198,255,251,255,228,255,174,255,166,255,196,255, +206,255,170,255,150,255,193,255,219,255,169,255,110,255,85,255,89,255,120,255,146,255,178,255,10,0,98,0,82,0,5,0, +244,255,52,0,105,0,77,0,22,0,9,0,255,255,224,255,217,255,243,255,37,0,70,0,14,0,217,255,60,0,168,0, +93,0,224,255,206,255,214,255,208,255,12,0,104,0,102,0,22,0,247,255,13,0,241,255,187,255,202,255,4,0,29,0, +26,0,22,0,4,0,219,255,192,255,199,255,175,255,111,255,120,255,203,255,236,255,220,255,211,255,186,255,165,255,163,255, +144,255,168,255,1,0,23,0,231,255,225,255,223,255,200,255,231,255,45,0,84,0,58,0,241,255,235,255,48,0,24,0, +201,255,245,255,62,0,16,0,197,255,165,255,149,255,174,255,212,255,204,255,198,255,232,255,236,255,185,255,158,255,197,255, +0,0,63,0,118,0,88,0,16,0,45,0,94,0,14,0,194,255,248,255,50,0,69,0,101,0,86,0,29,0,33,0, +62,0,49,0,28,0,10,0,244,255,229,255,198,255,168,255,185,255,196,255,148,255,97,255,98,255,141,255,199,255,219,255, +181,255,182,255,32,0,119,0,84,0,8,0,225,255,207,255,227,255,28,0,34,0,233,255,191,255,168,255,148,255,170,255, +226,255,2,0,24,0,52,0,40,0,9,0,42,0,80,0,29,0,247,255,50,0,73,0,5,0,213,255,196,255,194,255, +9,0,82,0,53,0,252,255,244,255,12,0,44,0,34,0,230,255,220,255,5,0,12,0,12,0,50,0,86,0,98,0, +100,0,105,0,94,0,23,0,217,255,255,255,29,0,233,255,208,255,218,255,174,255,144,255,197,255,246,255,245,255,245,255, +254,255,214,255,132,255,116,255,184,255,232,255,236,255,249,255,251,255,223,255,200,255,177,255,160,255,193,255,3,0,50,0, +57,0,27,0,1,0,248,255,229,255,212,255,212,255,211,255,226,255,247,255,224,255,207,255,7,0,51,0,253,255,181,255, +199,255,18,0,24,0,218,255,197,255,209,255,200,255,223,255,29,0,45,0,17,0,6,0,17,0,34,0,23,0,218,255, +175,255,207,255,10,0,19,0,230,255,201,255,238,255,0,0,189,255,142,255,176,255,189,255,167,255,199,255,239,255,201,255, +161,255,193,255,210,255,159,255,118,255,125,255,145,255,171,255,184,255,148,255,108,255,120,255,159,255,205,255,9,0,75,0, +139,0,167,0,93,0,212,255,167,255,0,0,82,0,63,0,10,0,4,0,35,0,50,0,36,0,38,0,69,0,68,0, +32,0,40,0,70,0,39,0,8,0,56,0,109,0,101,0,75,0,69,0,58,0,32,0,16,0,18,0,22,0,37,0, +69,0,72,0,52,0,71,0,111,0,111,0,77,0,26,0,252,255,28,0,61,0,32,0,18,0,77,0,125,0,73,0, +215,255,167,255,231,255,33,0,11,0,255,255,40,0,60,0,49,0,59,0,65,0,28,0,250,255,5,0,18,0,1,0, +250,255,253,255,245,255,5,0,35,0,26,0,37,0,119,0,161,0,98,0,29,0,7,0,228,255,178,255,180,255,225,255, +251,255,11,0,45,0,60,0,49,0,45,0,43,0,30,0,28,0,51,0,87,0,87,0,38,0,29,0,81,0,83,0, +26,0,251,255,238,255,231,255,238,255,231,255,235,255,14,0,6,0,220,255,200,255,169,255,162,255,244,255,59,0,58,0, +68,0,66,0,8,0,227,255,231,255,203,255,147,255,121,255,147,255,195,255,230,255,12,0,59,0,71,0,23,0,219,255, +204,255,230,255,240,255,235,255,4,0,21,0,240,255,195,255,177,255,182,255,208,255,235,255,248,255,240,255,205,255,192,255, +207,255,152,255,80,255,130,255,214,255,223,255,223,255,210,255,164,255,177,255,217,255,186,255,176,255,242,255,17,0,229,255, +187,255,183,255,198,255,197,255,174,255,149,255,145,255,182,255,235,255,251,255,240,255,230,255,194,255,127,255,77,255,77,255, +125,255,189,255,234,255,252,255,244,255,236,255,252,255,236,255,169,255,132,255,138,255,139,255,147,255,162,255,170,255,197,255, +235,255,254,255,247,255,195,255,170,255,18,0,166,0,29,1,192,1,28,2,85,1,228,255,245,254,218,254,43,255,93,255, +45,255,233,254,224,254,249,254,33,255,105,255,205,255,50,0,122,0,118,0,251,255,49,255,159,254,137,254,176,254,193,254, +186,254,201,254,255,254,56,255,113,255,208,255,45,0,83,0,107,0,116,0,63,0,247,255,216,255,208,255,194,255,167,255, +148,255,180,255,254,255,76,0,131,0,128,0,86,0,71,0,75,0,51,0,20,0,9,0,25,0,67,0,100,0,90,0, +41,0,239,255,235,255,40,0,65,0,43,0,66,0,113,0,114,0,108,0,127,0,119,0,97,0,102,0,97,0,51,0, +29,0,56,0,68,0,61,0,91,0,142,0,173,0,185,0,158,0,103,0,75,0,54,0,21,0,35,0,76,0,61,0, +18,0,0,0,244,255,232,255,231,255,237,255,250,255,4,0,11,0,35,0,58,0,53,0,35,0,25,0,19,0,13,0, +11,0,23,0,53,0,80,0,81,0,60,0,39,0,36,0,46,0,51,0,46,0,28,0,12,0,21,0,24,0,255,255, +243,255,1,0,9,0,12,0,11,0,246,255,222,255,219,255,230,255,253,255,20,0,39,0,45,0,16,0,223,255,195,255, +189,255,206,255,255,255,30,0,6,0,226,255,205,255,192,255,195,255,212,255,222,255,214,255,209,255,241,255,20,0,17,0, +13,0,12,0,232,255,227,255,35,0,52,0,241,255,207,255,237,255,255,255,240,255,228,255,215,255,181,255,173,255,233,255, +47,0,59,0,34,0,9,0,16,0,60,0,87,0,77,0,62,0,31,0,4,0,13,0,251,255,197,255,200,255,229,255, +213,255,203,255,222,255,233,255,254,255,31,0,45,0,45,0,36,0,9,0,235,255,209,255,180,255,164,255,173,255,187,255, +184,255,186,255,225,255,24,0,64,0,75,0,22,0,196,255,191,255,218,255,185,255,173,255,219,255,236,255,232,255,237,255, +213,255,193,255,214,255,246,255,24,0,42,0,11,0,237,255,235,255,223,255,214,255,222,255,211,255,201,255,223,255,251,255, +4,0,244,255,227,255,247,255,8,0,243,255,243,255,41,0,101,0,117,0,93,0,68,0,50,0,20,0,0,0,254,255, +251,255,1,0,248,255,198,255,194,255,2,0,29,0,14,0,4,0,225,255,192,255,220,255,11,0,37,0,28,0,244,255, +233,255,255,255,252,255,245,255,238,255,197,255,196,255,251,255,252,255,222,255,238,255,232,255,204,255,249,255,69,0,78,0, +47,0,31,0,15,0,244,255,230,255,225,255,200,255,180,255,184,255,179,255,179,255,209,255,234,255,250,255,17,0,9,0, +251,255,24,0,38,0,6,0,238,255,233,255,242,255,248,255,221,255,212,255,5,0,47,0,62,0,76,0,64,0,48,0, +63,0,43,0,251,255,246,255,251,255,227,255,212,255,208,255,206,255,210,255,202,255,189,255,190,255,189,255,201,255,247,255, +32,0,25,0,232,255,178,255,154,255,160,255,187,255,229,255,249,255,241,255,251,255,4,0,236,255,221,255,226,255,222,255, +226,255,6,0,48,0,30,0,189,255,127,255,209,255,81,0,118,0,76,0,16,0,219,255,179,255,168,255,184,255,155,255, +56,255,16,255,94,255,161,255,154,255,129,255,114,255,150,255,0,0,119,0,239,0,74,1,11,1,64,0,150,255,65,255, +38,255,79,255,143,255,174,255,212,255,29,0,71,0,54,0,24,0,20,0,37,0,49,0,21,0,210,255,166,255,176,255, +200,255,215,255,234,255,255,255,21,0,42,0,51,0,54,0,48,0,24,0,17,0,12,0,216,255,183,255,235,255,34,0, +50,0,79,0,95,0,85,0,105,0,127,0,98,0,64,0,43,0,14,0,12,0,56,0,86,0,73,0,68,0,104,0, +129,0,89,0,24,0,4,0,36,0,78,0,85,0,46,0,3,0,12,0,49,0,50,0,17,0,0,0,10,0,31,0, +39,0,4,0,199,255,187,255,232,255,13,0,30,0,41,0,49,0,74,0,98,0,71,0,34,0,36,0,38,0,43,0, +89,0,115,0,82,0,51,0,40,0,19,0,9,0,22,0,23,0,4,0,6,0,38,0,59,0,50,0,28,0,246,255, +189,255,158,255,189,255,242,255,23,0,49,0,58,0,37,0,13,0,16,0,27,0,13,0,236,255,202,255,192,255,221,255, +248,255,243,255,237,255,242,255,240,255,6,0,38,0,32,0,32,0,71,0,60,0,245,255,218,255,240,255,244,255,238,255, +249,255,10,0,13,0,7,0,8,0,9,0,243,255,212,255,208,255,235,255,4,0,247,255,231,255,18,0,76,0,65,0, +19,0,14,0,24,0,1,0,226,255,226,255,247,255,8,0,26,0,40,0,32,0,22,0,35,0,48,0,43,0,19,0, +238,255,232,255,18,0,43,0,28,0,19,0,20,0,18,0,25,0,26,0,12,0,11,0,32,0,53,0,54,0,38,0, +18,0,244,255,209,255,208,255,228,255,217,255,215,255,255,255,20,0,248,255,227,255,232,255,242,255,242,255,232,255,225,255, +228,255,239,255,254,255,3,0,2,0,12,0,16,0,8,0,24,0,38,0,14,0,252,255,2,0,4,0,18,0,39,0, +17,0,235,255,244,255,20,0,29,0,22,0,19,0,15,0,10,0,20,0,32,0,21,0,13,0,28,0,32,0,18,0, +12,0,9,0,15,0,42,0,58,0,40,0,14,0,254,255,243,255,217,255,191,255,221,255,28,0,39,0,23,0,38,0, +44,0,25,0,18,0,8,0,245,255,248,255,255,255,241,255,224,255,220,255,242,255,28,0,40,0,11,0,251,255,13,0, +25,0,21,0,24,0,31,0,15,0,251,255,251,255,253,255,250,255,2,0,253,255,240,255,8,0,42,0,46,0,50,0, +59,0,49,0,36,0,27,0,9,0,0,0,253,255,243,255,247,255,10,0,7,0,248,255,250,255,20,0,56,0,67,0, +33,0,247,255,233,255,241,255,1,0,10,0,255,255,233,255,241,255,27,0,39,0,252,255,227,255,247,255,16,0,49,0, +73,0,41,0,2,0,11,0,10,0,243,255,252,255,11,0,6,0,7,0,2,0,238,255,246,255,22,0,33,0,25,0, +18,0,17,0,16,0,2,0,231,255,218,255,231,255,253,255,1,0,250,255,0,0,9,0,1,0,248,255,253,255,5,0, +251,255,223,255,211,255,235,255,253,255,241,255,229,255,233,255,239,255,245,255,251,255,2,0,12,0,14,0,20,0,33,0, +17,0,237,255,233,255,234,255,214,255,209,255,216,255,209,255,221,255,254,255,6,0,0,0,5,0,15,0,24,0,31,0, +25,0,19,0,22,0,27,0,27,0,26,0,19,0,4,0,252,255,4,0,22,0,34,0,29,0,10,0,3,0,29,0, +50,0,33,0,12,0,21,0,36,0,38,0,28,0,14,0,8,0,3,0,248,255,254,255,13,0,9,0,254,255,249,255, +240,255,239,255,255,255,13,0,22,0,19,0,1,0,254,255,13,0,12,0,251,255,237,255,228,255,235,255,0,0,13,0, +15,0,25,0,32,0,23,0,18,0,21,0,17,0,12,0,24,0,39,0,39,0,37,0,33,0,13,0,0,0,13,0, +19,0,2,0,247,255,2,0,18,0,23,0,13,0,6,0,12,0,17,0,16,0,20,0,23,0,16,0,7,0,1,0, +254,255,0,0,8,0,18,0,20,0,14,0,8,0,7,0,2,0,250,255,245,255,244,255,249,255,8,0,13,0,252,255, +231,255,224,255,228,255,231,255,234,255,245,255,8,0,20,0,16,0,11,0,14,0,15,0,10,0,14,0,26,0,27,0, +9,0,247,255,245,255,248,255,254,255,16,0,34,0,25,0,252,255,244,255,0,0,4,0,0,0,4,0,3,0,253,255, +1,0,10,0,9,0,9,0,13,0,5,0,245,255,237,255,232,255,230,255,240,255,244,255,235,255,239,255,255,255,255,255, +245,255,250,255,3,0,0,0,254,255,10,0,18,0,7,0,252,255,251,255,243,255,228,255,224,255,233,255,249,255,9,0, +8,0,254,255,3,0,17,0,15,0,5,0,8,0,21,0,30,0,24,0,8,0,253,255,2,0,15,0,20,0,12,0, +6,0,11,0,16,0,14,0,7,0,251,255,242,255,250,255,16,0,30,0,14,0,241,255,235,255,249,255,254,255,245,255, +230,255,225,255,235,255,243,255,245,255,0,0,15,0,19,0,21,0,18,0,254,255,241,255,255,255,15,0,14,0,3,0, +249,255,243,255,239,255,252,255,29,0,37,0,4,0,234,255,241,255,0,0,3,0,254,255,251,255,0,0,2,0,251,255, +251,255,0,0,255,255,255,255,4,0,6,0,6,0,5,0,255,255,249,255,2,0,21,0,27,0,16,0,9,0,10,0, +6,0,1,0,2,0,12,0,29,0,31,0,13,0,6,0,20,0,30,0,29,0,22,0,11,0,10,0,15,0,10,0, +9,0,16,0,17,0,19,0,27,0,23,0,14,0,14,0,15,0,9,0,1,0,255,255,6,0,6,0,255,255,7,0, +20,0,14,0,252,255,239,255,237,255,249,255,5,0,1,0,251,255,1,0,1,0,251,255,2,0,9,0,1,0,253,255, +10,0,11,0,254,255,253,255,1,0,246,255,236,255,234,255,239,255,247,255,249,255,246,255,10,0,42,0,43,0,3,0, +177,255,108,255,162,255,44,0,88,0,20,0,226,255,225,255,237,255,1,0,6,0,244,255,238,255,235,255,217,255,225,255, +4,0,8,0,251,255,6,0,12,0,248,255,237,255,236,255,227,255,236,255,11,0,19,0,7,0,7,0,7,0,254,255, +253,255,1,0,1,0,3,0,1,0,0,0,11,0,16,0,2,0,249,255,255,255,2,0,255,255,252,255,249,255,249,255, +248,255,244,255,245,255,249,255,248,255,251,255,2,0,6,0,7,0,0,0,241,255,236,255,248,255,5,0,5,0,252,255, +247,255,250,255,252,255,247,255,244,255,241,255,239,255,240,255,242,255,245,255,249,255,251,255,248,255,241,255,239,255,244,255, +247,255,242,255,241,255,244,255,244,255,253,255,9,0,9,0,2,0,3,0,3,0,254,255,252,255,252,255,254,255,6,0, +14,0,15,0,10,0,2,0,252,255,254,255,5,0,6,0,1,0,4,0,14,0,12,0,4,0,5,0,7,0,4,0, +7,0,9,0,1,0,253,255,3,0,5,0,1,0,251,255,250,255,3,0,5,0,250,255,249,255,7,0,11,0,7,0, +9,0,11,0,6,0,1,0,1,0,8,0,13,0,7,0,252,255,252,255,10,0,16,0,1,0,239,255,242,255,255,255, +4,0,4,0,5,0,5,0,2,0,253,255,253,255,4,0,9,0,11,0,12,0,13,0,12,0,4,0,253,255,3,0, +9,0,4,0,2,0,4,0,252,255,249,255,3,0,5,0,252,255,253,255,5,0,7,0,6,0,6,0,11,0,12,0, +6,0,2,0,4,0,5,0,3,0,1,0,253,255,250,255,249,255,250,255,253,255,253,255,251,255,0,0,4,0,255,255, +255,255,5,0,4,0,253,255,255,255,5,0,2,0,252,255,255,255,5,0,6,0,3,0,4,0,8,0,11,0,9,0, +4,0,254,255,247,255,241,255,250,255,9,0,7,0,255,255,1,0,1,0,253,255,1,0,3,0,250,255,245,255,248,255, +249,255,249,255,250,255,0,0,7,0,5,0,254,255,253,255,255,255,253,255,254,255,4,0,6,0,1,0,251,255,251,255, +254,255,254,255,255,255,0,0,254,255,252,255,253,255,3,0,12,0,11,0,250,255,238,255,250,255,10,0,12,0,4,0, +252,255,249,255,253,255,4,0,1,0,244,255,237,255,244,255,0,0,10,0,12,0,1,0,252,255,10,0,15,0,252,255, +241,255,254,255,10,0,6,0,249,255,242,255,248,255,253,255,251,255,250,255,254,255,2,0,6,0,6,0,254,255,247,255, +247,255,249,255,250,255,252,255,0,0,255,255,250,255,252,255,4,0,5,0,2,0,254,255,245,255,238,255,248,255,6,0, +9,0,4,0,0,0,253,255,255,255,255,255,252,255,251,255,254,255,0,0,254,255,251,255,0,0,6,0,1,0,248,255, +248,255,1,0,9,0,5,0,252,255,253,255,4,0,3,0,255,255,253,255,252,255,4,0,13,0,5,0,251,255,255,255, +1,0,251,255,249,255,252,255,252,255,251,255,253,255,254,255,250,255,251,255,4,0,11,0,7,0,1,0,255,255,1,0, +7,0,4,0,250,255,250,255,6,0,10,0,2,0,252,255,1,0,10,0,7,0,251,255,246,255,252,255,4,0,9,0, +4,0,249,255,248,255,1,0,3,0,255,255,3,0,9,0,5,0,251,255,253,255,9,0,13,0,5,0,0,0,2,0, +8,0,9,0,4,0,1,0,1,0,254,255,255,255,9,0,10,0,2,0,251,255,248,255,251,255,5,0,9,0,5,0, +0,0,251,255,251,255,252,255,251,255,250,255,255,255,3,0,9,0,14,0,9,0,250,255,243,255,245,255,251,255,1,0, +4,0,0,0,251,255,251,255,254,255,254,255,254,255,1,0,0,0,255,255,2,0,2,0,253,255,255,255,5,0,4,0, +0,0,0,0,0,0,252,255,250,255,0,0,4,0,253,255,251,255,8,0,12,0,2,0,254,255,1,0,253,255,254,255, +4,0,5,0,3,0,3,0,253,255,252,255,4,0,10,0,2,0,246,255,245,255,1,0,10,0,5,0,248,255,245,255, +255,255,5,0,254,255,249,255,254,255,9,0,16,0,13,0,0,0,248,255,249,255,251,255,1,0,8,0,3,0,253,255, +253,255,254,255,252,255,251,255,250,255,249,255,249,255,248,255,251,255,3,0,5,0,2,0,3,0,5,0,6,0,7,0, +3,0,251,255,250,255,254,255,253,255,249,255,255,255,7,0,0,0,245,255,249,255,255,255,252,255,251,255,1,0,6,0, +8,0,7,0,5,0,3,0,2,0,2,0,4,0,7,0,9,0,5,0,250,255,242,255,251,255,2,0,253,255,248,255, +250,255,254,255,0,0,255,255,250,255,248,255,251,255,254,255,254,255,255,255,2,0,4,0,255,255,250,255,255,255,6,0, +6,0,2,0,0,0,2,0,6,0,8,0,5,0,254,255,250,255,252,255,254,255,253,255,254,255,255,255,251,255,253,255, +3,0,1,0,254,255,0,0,255,255,252,255,1,0,10,0,10,0,4,0,1,0,5,0,7,0,6,0,4,0,253,255, +247,255,250,255,253,255,250,255,251,255,1,0,3,0,4,0,3,0,0,0,0,0,3,0,3,0,4,0,7,0,4,0, +253,255,250,255,253,255,0,0,1,0,1,0,2,0,3,0,3,0,2,0,253,255,248,255,252,255,5,0,7,0,0,0, +249,255,255,255,8,0,7,0,0,0,252,255,250,255,252,255,0,0,253,255,249,255,253,255,0,0,254,255,0,0,1,0, +1,0,3,0,2,0,0,0,4,0,8,0,4,0,254,255,251,255,251,255,253,255,1,0,3,0,1,0,252,255,251,255, +254,255,2,0,7,0,5,0,253,255,250,255,254,255,0,0,0,0,254,255,250,255,251,255,1,0,4,0,1,0,253,255, +251,255,253,255,2,0,4,0,2,0,255,255,252,255,252,255,255,255,5,0,8,0,4,0,0,0,2,0,3,0,0,0, +0,0,255,255,254,255,255,255,253,255,249,255,253,255,0,0,253,255,251,255,253,255,0,0,6,0,7,0,255,255,250,255, +0,0,6,0,3,0,253,255,251,255,254,255,1,0,1,0,2,0,2,0,2,0,1,0,0,0,254,255,251,255,253,255, +3,0,4,0,2,0,3,0,3,0,255,255,255,255,2,0,2,0,1,0,1,0,254,255,253,255,254,255,253,255,251,255, +254,255,3,0,5,0,4,0,3,0,1,0,2,0,6,0,6,0,1,0,253,255,254,255,255,255,255,255,2,0,3,0, +255,255,253,255,255,255,255,255,255,255,0,0,254,255,252,255,255,255,2,0,4,0,2,0,0,0,255,255,1,0,4,0, +5,0,0,0,253,255,255,255,3,0,2,0,0,0,255,255,254,255,252,255,250,255,251,255,255,255,0,0,255,255,253,255, +252,255,254,255,1,0,253,255,249,255,253,255,3,0,5,0,4,0,2,0,1,0,1,0,1,0,2,0,4,0,5,0, +4,0,1,0,254,255,253,255,254,255,251,255,251,255,0,0,3,0,0,0,253,255,255,255,255,255,253,255,254,255,1,0, +4,0,4,0,3,0,1,0,1,0,3,0,2,0,254,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255, +255,255,2,0,4,0,1,0,254,255,253,255,253,255,0,0,5,0,6,0,4,0,0,0,254,255,0,0,2,0,0,0, +253,255,253,255,1,0,2,0,0,0,252,255,252,255,0,0,3,0,1,0,254,255,255,255,1,0,1,0,2,0,2,0, +0,0,0,0,2,0,1,0,1,0,3,0,2,0,255,255,255,255,1,0,0,0,254,255,254,255,255,255,255,255,0,0, +1,0,2,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,255,255,253,255,252,255,254,255,1,0,3,0,2,0,1,0,255,255,254,255,254,255,255,255,255,255,255,255,0,0, +1,0,3,0,2,0,255,255,254,255,255,255,1,0,3,0,2,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0, +0,0,255,255,1,0,3,0,3,0,0,0,255,255,1,0,2,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0, +1,0,0,0,0,0,254,255,254,255,1,0,2,0,1,0,255,255,0,0,1,0,1,0,255,255,255,255,1,0,1,0, +1,0,0,0,0,0,1,0,2,0,0,0,254,255,254,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,1,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/cow1.pcm b/src/client/sound/data/cow1.pcm new file mode 100755 index 0000000..e30b173 --- /dev/null +++ b/src/client/sound/data/cow1.pcm @@ -0,0 +1,3779 @@ +unsigned char PCM_cow1[120832] = { +1,0,0,0,2,0,0,0,68,172,0,0,248,235,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0, +0,0,0,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0, +1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255, +254,255,254,255,0,0,255,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255, +254,255,254,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,253,255,253,255, +253,255,254,255,254,255,253,255,253,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,254,255,254,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,2,0,2,0,3,0, +3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,2,0,3,0,2,0,2,0, +3,0,2,0,3,0,5,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,253,255,254,255,255,255,255,255,254,255,253,255,254,255,254,255,253,255,252,255,253,255, +253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255,251,255,252,255, +251,255,251,255,252,255,252,255,252,255,252,255,251,255,252,255,253,255,252,255,251,255,252,255,252,255,253,255,253,255,253,255, +253,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,254,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255, +254,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255, +253,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,253,255, +252,255,252,255,252,255,252,255,251,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,250,255,251,255,251,255, +250,255,251,255,252,255,252,255,251,255,251,255,252,255,251,255,252,255,253,255,253,255,252,255,253,255,254,255,253,255,253,255, +254,255,254,255,254,255,255,255,254,255,254,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0, +4,0,4,0,4,0,4,0,5,0,5,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0, +5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,3,0, +3,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255, +255,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255,250,255,250,255, +249,255,249,255,250,255,249,255,249,255,248,255,249,255,250,255,250,255,250,255,251,255,250,255,250,255,251,255,251,255,252,255, +253,255,253,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0, +5,0,6,0,7,0,7,0,7,0,8,0,8,0,8,0,9,0,9,0,10,0,10,0,10,0,11,0,12,0,13,0, +13,0,12,0,12,0,13,0,14,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,16,0,16,0, +16,0,16,0,17,0,17,0,17,0,18,0,20,0,20,0,20,0,21,0,22,0,21,0,21,0,21,0,22,0,22,0, +22,0,23,0,23,0,22,0,22,0,23,0,23,0,23,0,24,0,24,0,25,0,25,0,24,0,24,0,24,0,24,0, +23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,22,0,21,0,21,0,20,0,20,0,21,0,20,0, +19,0,20,0,19,0,18,0,18,0,17,0,16,0,15,0,14,0,14,0,15,0,13,0,11,0,12,0,11,0,10,0, +10,0,8,0,7,0,7,0,6,0,5,0,5,0,5,0,3,0,4,0,3,0,2,0,3,0,2,0,0,0,255,255, +255,255,255,255,255,255,254,255,252,255,252,255,252,255,251,255,250,255,250,255,250,255,249,255,247,255,248,255,248,255,248,255, +248,255,247,255,247,255,248,255,247,255,246,255,247,255,248,255,247,255,246,255,246,255,246,255,245,255,245,255,244,255,244,255, +245,255,245,255,244,255,244,255,244,255,244,255,244,255,244,255,245,255,244,255,244,255,245,255,245,255,246,255,246,255,247,255, +247,255,247,255,248,255,248,255,249,255,248,255,247,255,248,255,248,255,248,255,248,255,248,255,247,255,247,255,247,255,247,255, +248,255,248,255,249,255,249,255,249,255,249,255,250,255,251,255,250,255,251,255,251,255,250,255,251,255,251,255,251,255,251,255, +251,255,251,255,251,255,251,255,251,255,250,255,249,255,250,255,250,255,249,255,248,255,249,255,249,255,249,255,248,255,247,255, +247,255,248,255,247,255,247,255,247,255,246,255,246,255,246,255,246,255,246,255,245,255,244,255,244,255,242,255,242,255,241,255, +241,255,241,255,241,255,241,255,241,255,240,255,239,255,240,255,240,255,240,255,240,255,240,255,240,255,239,255,239,255,239,255, +239,255,240,255,240,255,240,255,241,255,242,255,242,255,242,255,242,255,242,255,242,255,242,255,242,255,242,255,242,255,243,255, +243,255,244,255,244,255,244,255,243,255,242,255,242,255,242,255,241,255,240,255,240,255,240,255,240,255,239,255,239,255,238,255, +238,255,239,255,239,255,237,255,238,255,239,255,238,255,238,255,239,255,239,255,239,255,239,255,238,255,238,255,239,255,238,255, +238,255,239,255,238,255,238,255,238,255,238,255,239,255,241,255,240,255,241,255,243,255,242,255,242,255,243,255,244,255,244,255, +245,255,246,255,247,255,249,255,249,255,251,255,251,255,250,255,251,255,252,255,252,255,252,255,253,255,252,255,252,255,252,255, +253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255, +254,255,255,255,0,0,254,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255, +253,255,253,255,253,255,253,255,252,255,252,255,252,255,251,255,250,255,249,255,248,255,247,255,248,255,248,255,248,255,248,255, +246,255,246,255,246,255,245,255,245,255,245,255,246,255,245,255,244,255,245,255,246,255,246,255,247,255,248,255,248,255,248,255, +249,255,251,255,251,255,251,255,250,255,250,255,249,255,248,255,247,255,248,255,247,255,248,255,248,255,247,255,247,255,247,255, +247,255,248,255,247,255,245,255,245,255,244,255,243,255,242,255,240,255,239,255,239,255,239,255,238,255,238,255,237,255,237,255, +238,255,237,255,236,255,237,255,236,255,235,255,235,255,235,255,236,255,236,255,236,255,237,255,238,255,238,255,239,255,240,255, +241,255,242,255,244,255,246,255,248,255,250,255,253,255,255,255,1,0,3,0,5,0,6,0,8,0,10,0,11,0,14,0, +15,0,15,0,17,0,19,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,27,0,29,0,29,0,29,0, +31,0,33,0,32,0,33,0,34,0,35,0,37,0,40,0,41,0,44,0,45,0,46,0,45,0,45,0,45,0,46,0, +47,0,47,0,49,0,50,0,51,0,51,0,52,0,52,0,52,0,52,0,53,0,54,0,54,0,55,0,56,0,57,0, +57,0,56,0,56,0,56,0,55,0,55,0,55,0,54,0,54,0,54,0,53,0,53,0,53,0,52,0,52,0,51,0, +50,0,50,0,50,0,50,0,50,0,51,0,51,0,52,0,52,0,50,0,49,0,48,0,46,0,46,0,45,0,43,0, +43,0,42,0,40,0,41,0,40,0,38,0,38,0,37,0,36,0,35,0,33,0,31,0,30,0,29,0,26,0,24,0, +22,0,19,0,17,0,14,0,12,0,10,0,9,0,7,0,3,0,2,0,1,0,254,255,252,255,250,255,248,255,246,255, +244,255,243,255,240,255,237,255,234,255,233,255,231,255,229,255,229,255,229,255,228,255,228,255,228,255,227,255,229,255,228,255, +228,255,228,255,228,255,227,255,228,255,227,255,226,255,226,255,225,255,225,255,226,255,227,255,227,255,226,255,226,255,227,255, +227,255,227,255,227,255,226,255,225,255,224,255,224,255,224,255,223,255,223,255,224,255,224,255,224,255,224,255,224,255,223,255, +223,255,223,255,223,255,224,255,224,255,224,255,225,255,225,255,225,255,226,255,227,255,227,255,226,255,226,255,227,255,228,255, +228,255,227,255,228,255,229,255,230,255,230,255,229,255,230,255,231,255,232,255,233,255,235,255,236,255,238,255,240,255,240,255, +241,255,241,255,240,255,240,255,240,255,241,255,242,255,242,255,241,255,241,255,242,255,242,255,242,255,241,255,241,255,242,255, +241,255,241,255,240,255,239,255,240,255,240,255,240,255,242,255,243,255,241,255,239,255,238,255,236,255,235,255,235,255,234,255, +233,255,232,255,231,255,230,255,230,255,230,255,229,255,227,255,227,255,227,255,226,255,226,255,226,255,225,255,224,255,225,255, +224,255,224,255,224,255,224,255,225,255,225,255,225,255,225,255,226,255,227,255,228,255,228,255,228,255,229,255,231,255,232,255, +232,255,231,255,232,255,232,255,231,255,232,255,232,255,232,255,233,255,233,255,232,255,233,255,233,255,232,255,232,255,230,255, +229,255,229,255,229,255,230,255,230,255,229,255,227,255,228,255,228,255,229,255,229,255,229,255,229,255,230,255,230,255,229,255, +229,255,228,255,229,255,229,255,228,255,227,255,228,255,229,255,229,255,229,255,231,255,232,255,232,255,231,255,232,255,234,255, +234,255,235,255,236,255,238,255,237,255,238,255,240,255,240,255,240,255,242,255,243,255,244,255,246,255,246,255,245,255,247,255, +250,255,251,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,255,255,255,255,0,0,255,255, +254,255,0,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,250,255,249,255,250,255,251,255, +251,255,251,255,252,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,0,0,2,0,2,0,3,0, +4,0,4,0,5,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,4,0,4,0,4,0,3,0,1,0,1,0, +255,255,255,255,254,255,252,255,251,255,250,255,249,255,248,255,245,255,242,255,241,255,240,255,236,255,233,255,230,255,228,255, +227,255,226,255,224,255,224,255,224,255,224,255,225,255,225,255,224,255,224,255,226,255,227,255,227,255,226,255,227,255,228,255, +228,255,230,255,231,255,232,255,234,255,235,255,236,255,237,255,238,255,238,255,237,255,236,255,236,255,236,255,236,255,237,255, +237,255,236,255,236,255,237,255,236,255,237,255,238,255,237,255,237,255,238,255,239,255,238,255,236,255,236,255,237,255,236,255, +235,255,235,255,233,255,232,255,232,255,231,255,229,255,228,255,227,255,227,255,229,255,229,255,230,255,230,255,231,255,234,255, +238,255,240,255,244,255,249,255,253,255,1,0,5,0,9,0,13,0,16,0,19,0,23,0,27,0,32,0,35,0,36,0, +39,0,44,0,49,0,53,0,58,0,62,0,66,0,72,0,77,0,81,0,85,0,89,0,94,0,96,0,99,0,102,0, +107,0,110,0,114,0,120,0,124,0,128,0,131,0,133,0,133,0,133,0,135,0,136,0,134,0,135,0,136,0,136,0, +136,0,136,0,137,0,138,0,138,0,138,0,139,0,140,0,141,0,141,0,142,0,143,0,144,0,143,0,143,0,143,0, +141,0,140,0,141,0,139,0,138,0,139,0,139,0,138,0,137,0,137,0,138,0,137,0,136,0,136,0,135,0,134,0, +134,0,133,0,133,0,132,0,131,0,129,0,127,0,125,0,123,0,122,0,120,0,118,0,114,0,111,0,111,0,107,0, +104,0,102,0,99,0,95,0,90,0,86,0,83,0,78,0,73,0,69,0,65,0,59,0,54,0,50,0,46,0,40,0, +34,0,29,0,24,0,19,0,16,0,14,0,10,0,7,0,7,0,5,0,0,0,252,255,248,255,243,255,239,255,233,255, +228,255,224,255,221,255,217,255,213,255,210,255,208,255,206,255,202,255,199,255,197,255,197,255,194,255,191,255,189,255,189,255, +189,255,189,255,189,255,189,255,187,255,184,255,182,255,180,255,178,255,175,255,174,255,173,255,171,255,170,255,170,255,171,255, +171,255,169,255,169,255,170,255,170,255,170,255,171,255,170,255,169,255,171,255,173,255,173,255,172,255,171,255,171,255,171,255, +168,255,167,255,169,255,170,255,169,255,169,255,169,255,169,255,171,255,171,255,171,255,171,255,172,255,172,255,174,255,175,255, +175,255,176,255,177,255,178,255,178,255,179,255,181,255,185,255,188,255,190,255,191,255,192,255,193,255,193,255,191,255,190,255, +189,255,188,255,187,255,185,255,183,255,183,255,183,255,183,255,183,255,183,255,186,255,188,255,189,255,192,255,193,255,192,255, +192,255,194,255,194,255,193,255,193,255,191,255,190,255,190,255,190,255,191,255,192,255,191,255,191,255,190,255,191,255,194,255, +193,255,190,255,190,255,191,255,191,255,192,255,192,255,191,255,192,255,193,255,192,255,189,255,188,255,190,255,190,255,187,255, +187,255,187,255,186,255,186,255,187,255,189,255,193,255,196,255,198,255,202,255,204,255,204,255,205,255,207,255,207,255,207,255, +205,255,203,255,202,255,202,255,201,255,200,255,200,255,201,255,203,255,206,255,207,255,211,255,215,255,218,255,219,255,219,255, +218,255,218,255,219,255,218,255,215,255,215,255,218,255,221,255,225,255,227,255,228,255,230,255,231,255,230,255,230,255,230,255, +230,255,233,255,236,255,241,255,246,255,250,255,254,255,1,0,0,0,1,0,5,0,7,0,7,0,6,0,7,0,10,0, +13,0,14,0,15,0,17,0,20,0,23,0,24,0,24,0,25,0,28,0,30,0,30,0,28,0,29,0,31,0,31,0, +31,0,33,0,33,0,34,0,36,0,38,0,41,0,44,0,46,0,49,0,51,0,51,0,49,0,50,0,54,0,57,0, +55,0,53,0,53,0,53,0,54,0,55,0,54,0,52,0,51,0,51,0,50,0,48,0,48,0,50,0,48,0,45,0, +42,0,38,0,35,0,32,0,26,0,21,0,18,0,15,0,14,0,15,0,13,0,11,0,10,0,10,0,10,0,5,0, +254,255,248,255,244,255,239,255,232,255,225,255,221,255,218,255,214,255,210,255,209,255,210,255,210,255,208,255,208,255,209,255, +209,255,209,255,209,255,209,255,209,255,209,255,207,255,207,255,207,255,202,255,199,255,198,255,192,255,187,255,185,255,180,255, +177,255,175,255,174,255,174,255,175,255,175,255,176,255,175,255,175,255,177,255,176,255,173,255,174,255,172,255,170,255,170,255, +170,255,168,255,165,255,162,255,159,255,156,255,154,255,152,255,153,255,154,255,155,255,157,255,159,255,165,255,170,255,172,255, +173,255,176,255,178,255,181,255,183,255,183,255,184,255,186,255,187,255,189,255,194,255,199,255,204,255,209,255,214,255,221,255, +227,255,232,255,237,255,243,255,247,255,247,255,249,255,254,255,4,0,9,0,11,0,13,0,15,0,19,0,24,0,29,0, +35,0,41,0,47,0,49,0,52,0,57,0,63,0,71,0,79,0,88,0,97,0,106,0,115,0,125,0,132,0,140,0, +148,0,153,0,158,0,166,0,174,0,182,0,193,0,205,0,217,0,229,0,240,0,252,0,5,1,11,1,17,1,24,1, +29,1,34,1,40,1,43,1,46,1,51,1,55,1,59,1,62,1,63,1,62,1,62,1,66,1,68,1,68,1,68,1, +67,1,65,1,63,1,58,1,54,1,55,1,54,1,49,1,45,1,43,1,41,1,39,1,37,1,33,1,30,1,25,1, +22,1,19,1,15,1,11,1,11,1,11,1,10,1,6,1,2,1,1,1,255,0,250,0,247,0,247,0,244,0,241,0, +237,0,233,0,231,0,230,0,229,0,228,0,229,0,226,0,222,0,218,0,216,0,211,0,206,0,200,0,193,0,184,0, +176,0,168,0,159,0,148,0,135,0,124,0,116,0,107,0,99,0,94,0,88,0,81,0,72,0,63,0,54,0,45,0, +34,0,24,0,11,0,253,255,240,255,228,255,217,255,207,255,196,255,185,255,178,255,175,255,170,255,166,255,160,255,152,255, +145,255,139,255,133,255,126,255,123,255,121,255,118,255,111,255,103,255,99,255,97,255,96,255,91,255,89,255,89,255,89,255, +88,255,88,255,87,255,86,255,85,255,81,255,76,255,74,255,75,255,75,255,75,255,73,255,69,255,65,255,64,255,63,255, +59,255,57,255,57,255,58,255,60,255,60,255,61,255,63,255,62,255,59,255,54,255,47,255,43,255,43,255,39,255,34,255, +31,255,29,255,30,255,32,255,31,255,28,255,28,255,30,255,33,255,35,255,35,255,37,255,43,255,47,255,49,255,51,255, +53,255,55,255,54,255,55,255,59,255,62,255,65,255,72,255,78,255,82,255,88,255,94,255,99,255,103,255,105,255,104,255, +105,255,106,255,110,255,112,255,111,255,110,255,112,255,113,255,112,255,111,255,109,255,111,255,110,255,107,255,108,255,111,255, +113,255,113,255,109,255,107,255,107,255,107,255,109,255,113,255,114,255,115,255,117,255,119,255,121,255,123,255,126,255,132,255, +138,255,141,255,144,255,149,255,154,255,157,255,159,255,162,255,166,255,172,255,179,255,185,255,189,255,195,255,204,255,209,255, +211,255,214,255,219,255,223,255,226,255,229,255,234,255,239,255,245,255,251,255,255,255,1,0,4,0,11,0,15,0,16,0, +17,0,22,0,28,0,34,0,37,0,40,0,42,0,43,0,43,0,44,0,43,0,42,0,44,0,43,0,39,0,38,0, +37,0,33,0,30,0,25,0,16,0,10,0,6,0,255,255,252,255,251,255,250,255,252,255,1,0,3,0,3,0,4,0, +5,0,6,0,9,0,10,0,7,0,7,0,8,0,6,0,3,0,1,0,0,0,2,0,5,0,6,0,8,0,11,0, +15,0,21,0,26,0,27,0,30,0,35,0,37,0,39,0,41,0,40,0,38,0,39,0,41,0,40,0,37,0,35,0, +33,0,31,0,29,0,30,0,30,0,28,0,23,0,18,0,16,0,12,0,8,0,7,0,2,0,253,255,251,255,248,255, +244,255,242,255,240,255,234,255,228,255,222,255,218,255,216,255,210,255,206,255,204,255,202,255,201,255,202,255,200,255,197,255, +194,255,188,255,184,255,185,255,185,255,183,255,180,255,180,255,179,255,173,255,167,255,163,255,159,255,153,255,147,255,139,255, +132,255,130,255,127,255,121,255,117,255,112,255,107,255,100,255,93,255,85,255,79,255,75,255,75,255,73,255,68,255,64,255, +62,255,62,255,59,255,56,255,57,255,62,255,64,255,66,255,68,255,71,255,72,255,71,255,69,255,67,255,67,255,66,255, +66,255,68,255,72,255,75,255,79,255,82,255,85,255,84,255,83,255,87,255,90,255,88,255,82,255,80,255,81,255,83,255, +84,255,83,255,85,255,92,255,96,255,96,255,100,255,110,255,118,255,126,255,135,255,141,255,145,255,150,255,156,255,160,255, +164,255,171,255,182,255,191,255,202,255,215,255,228,255,242,255,0,0,11,0,19,0,24,0,28,0,36,0,43,0,51,0, +62,0,73,0,81,0,92,0,104,0,114,0,123,0,134,0,145,0,158,0,172,0,187,0,203,0,218,0,232,0,244,0, +255,0,9,1,20,1,31,1,44,1,60,1,79,1,100,1,119,1,136,1,153,1,162,1,165,1,168,1,173,1,178,1, +185,1,194,1,204,1,214,1,223,1,230,1,237,1,244,1,251,1,1,2,3,2,5,2,5,2,2,2,254,1,252,1, +248,1,242,1,238,1,237,1,236,1,232,1,231,1,229,1,228,1,228,1,226,1,222,1,217,1,210,1,201,1,193,1, +185,1,181,1,183,1,179,1,169,1,163,1,159,1,154,1,152,1,150,1,147,1,145,1,143,1,143,1,146,1,145,1, +143,1,140,1,134,1,125,1,116,1,109,1,101,1,89,1,76,1,63,1,51,1,39,1,28,1,15,1,1,1,243,0, +232,0,223,0,215,0,204,0,189,0,175,0,162,0,149,0,136,0,122,0,107,0,91,0,73,0,56,0,41,0,27,0, +14,0,0,0,241,255,224,255,212,255,205,255,200,255,193,255,181,255,167,255,156,255,148,255,140,255,133,255,125,255,115,255, +105,255,98,255,91,255,81,255,70,255,62,255,59,255,51,255,41,255,33,255,28,255,21,255,14,255,10,255,6,255,255,254, +247,254,240,254,234,254,229,254,226,254,225,254,224,254,224,254,223,254,219,254,214,254,209,254,203,254,199,254,196,254,195,254, +191,254,187,254,187,254,188,254,187,254,186,254,184,254,181,254,181,254,183,254,180,254,175,254,175,254,177,254,179,254,180,254, +176,254,172,254,172,254,174,254,176,254,179,254,184,254,189,254,193,254,198,254,202,254,202,254,203,254,204,254,203,254,203,254, +202,254,200,254,198,254,200,254,202,254,204,254,205,254,211,254,221,254,225,254,228,254,236,254,245,254,247,254,246,254,247,254, +250,254,253,254,255,254,255,254,254,254,254,254,0,255,4,255,10,255,12,255,7,255,4,255,5,255,4,255,2,255,3,255, +6,255,9,255,17,255,24,255,28,255,30,255,29,255,26,255,26,255,27,255,28,255,32,255,38,255,45,255,55,255,63,255, +71,255,80,255,88,255,97,255,106,255,109,255,108,255,112,255,123,255,134,255,143,255,153,255,158,255,159,255,160,255,161,255, +162,255,166,255,169,255,174,255,183,255,193,255,203,255,211,255,223,255,238,255,248,255,255,255,4,0,8,0,11,0,13,0, +14,0,16,0,18,0,18,0,23,0,28,0,31,0,37,0,43,0,47,0,56,0,66,0,75,0,86,0,94,0,97,0, +103,0,110,0,116,0,120,0,120,0,120,0,127,0,133,0,130,0,123,0,118,0,113,0,108,0,104,0,101,0,100,0, +98,0,98,0,100,0,99,0,96,0,97,0,99,0,99,0,97,0,95,0,95,0,92,0,86,0,86,0,87,0,92,0, +99,0,101,0,98,0,96,0,96,0,98,0,101,0,104,0,108,0,111,0,113,0,112,0,107,0,104,0,107,0,110,0, +111,0,110,0,108,0,107,0,111,0,117,0,119,0,117,0,115,0,116,0,116,0,113,0,107,0,99,0,89,0,78,0, +68,0,55,0,42,0,32,0,19,0,1,0,239,255,224,255,211,255,203,255,198,255,191,255,186,255,185,255,184,255,182,255, +182,255,182,255,176,255,166,255,157,255,150,255,139,255,126,255,115,255,110,255,105,255,99,255,94,255,88,255,84,255,81,255, +78,255,79,255,77,255,74,255,71,255,64,255,61,255,62,255,61,255,56,255,49,255,40,255,35,255,31,255,27,255,29,255, +34,255,36,255,36,255,35,255,34,255,36,255,35,255,33,255,31,255,25,255,16,255,16,255,17,255,13,255,11,255,14,255, +19,255,25,255,29,255,34,255,47,255,57,255,59,255,65,255,75,255,83,255,95,255,111,255,127,255,138,255,146,255,156,255, +165,255,170,255,171,255,176,255,182,255,185,255,185,255,190,255,200,255,209,255,219,255,230,255,242,255,1,0,17,0,32,0, +43,0,46,0,46,0,48,0,49,0,54,0,63,0,74,0,86,0,92,0,97,0,106,0,115,0,125,0,138,0,144,0, +153,0,170,0,188,0,203,0,219,0,234,0,250,0,12,1,28,1,43,1,60,1,82,1,110,1,141,1,170,1,196,1, +218,1,238,1,2,2,15,2,22,2,32,2,50,2,70,2,88,2,103,2,115,2,126,2,134,2,138,2,142,2,143,2, +142,2,148,2,153,2,155,2,158,2,158,2,156,2,154,2,150,2,148,2,147,2,142,2,136,2,132,2,127,2,117,2, +101,2,86,2,75,2,61,2,44,2,32,2,26,2,20,2,12,2,10,2,16,2,22,2,24,2,28,2,33,2,35,2, +33,2,32,2,33,2,30,2,25,2,23,2,24,2,21,2,16,2,13,2,10,2,3,2,251,1,242,1,234,1,232,1, +227,1,220,1,215,1,208,1,196,1,180,1,162,1,148,1,137,1,119,1,97,1,77,1,59,1,41,1,24,1,6,1, +245,0,226,0,208,0,189,0,168,0,150,0,133,0,116,0,97,0,72,0,49,0,29,0,6,0,240,255,226,255,210,255, +192,255,183,255,178,255,169,255,160,255,157,255,161,255,166,255,171,255,173,255,175,255,179,255,181,255,176,255,169,255,160,255, +153,255,148,255,142,255,134,255,126,255,116,255,103,255,93,255,87,255,78,255,71,255,66,255,56,255,45,255,37,255,26,255, +14,255,1,255,240,254,224,254,206,254,186,254,168,254,151,254,135,254,120,254,108,254,99,254,93,254,85,254,80,254,72,254, +59,254,47,254,39,254,31,254,18,254,3,254,251,253,249,253,246,253,246,253,247,253,242,253,234,253,227,253,224,253,225,253, +229,253,232,253,235,253,242,253,252,253,5,254,6,254,6,254,4,254,2,254,0,254,252,253,249,253,251,253,253,253,253,253, +253,253,1,254,7,254,11,254,13,254,13,254,14,254,19,254,23,254,24,254,27,254,32,254,39,254,46,254,51,254,57,254, +65,254,70,254,75,254,76,254,75,254,82,254,95,254,102,254,108,254,115,254,120,254,125,254,130,254,138,254,145,254,149,254, +159,254,169,254,171,254,175,254,186,254,195,254,201,254,212,254,226,254,238,254,247,254,3,255,19,255,34,255,44,255,58,255, +78,255,96,255,111,255,126,255,137,255,144,255,160,255,180,255,194,255,207,255,224,255,238,255,246,255,0,0,12,0,22,0, +33,0,47,0,59,0,71,0,82,0,89,0,98,0,107,0,116,0,121,0,124,0,128,0,129,0,129,0,129,0,129,0, +132,0,137,0,143,0,159,0,177,0,184,0,193,0,205,0,209,0,215,0,223,0,223,0,226,0,232,0,235,0,241,0, +246,0,246,0,249,0,2,1,8,1,8,1,5,1,4,1,3,1,3,1,4,1,7,1,12,1,16,1,15,1,10,1, +6,1,6,1,6,1,6,1,7,1,10,1,11,1,8,1,4,1,253,0,243,0,233,0,228,0,224,0,214,0,206,0, +200,0,193,0,188,0,181,0,171,0,167,0,163,0,149,0,134,0,123,0,115,0,113,0,108,0,96,0,85,0,81,0, +75,0,67,0,60,0,52,0,45,0,36,0,23,0,6,0,244,255,226,255,207,255,186,255,165,255,147,255,128,255,105,255, +82,255,63,255,50,255,42,255,37,255,32,255,27,255,23,255,17,255,9,255,6,255,7,255,1,255,248,254,243,254,237,254, +232,254,229,254,226,254,228,254,234,254,238,254,237,254,233,254,228,254,221,254,211,254,205,254,198,254,189,254,181,254,173,254, +163,254,152,254,141,254,134,254,124,254,109,254,104,254,102,254,92,254,81,254,72,254,65,254,64,254,69,254,72,254,72,254, +68,254,71,254,80,254,84,254,86,254,88,254,88,254,95,254,104,254,108,254,117,254,129,254,138,254,147,254,156,254,169,254, +191,254,221,254,248,254,16,255,47,255,87,255,125,255,154,255,183,255,218,255,254,255,33,0,69,0,103,0,134,0,160,0, +181,0,200,0,222,0,243,0,6,1,22,1,36,1,52,1,67,1,76,1,83,1,86,1,86,1,93,1,103,1,110,1, +118,1,133,1,146,1,155,1,163,1,166,1,168,1,177,1,187,1,193,1,204,1,222,1,244,1,16,2,45,2,70,2, +93,2,119,2,154,2,184,2,199,2,213,2,237,2,9,3,35,3,54,3,68,3,87,3,111,3,134,3,160,3,187,3, +211,3,236,3,7,4,27,4,35,4,39,4,48,4,55,4,55,4,48,4,36,4,24,4,13,4,5,4,2,4,249,3, +233,3,216,3,197,3,177,3,158,3,141,3,127,3,111,3,90,3,67,3,43,3,19,3,249,2,216,2,184,2,159,2, +133,2,105,2,79,2,54,2,35,2,22,2,10,2,255,1,238,1,219,1,210,1,200,1,186,1,177,1,167,1,154,1, +147,1,142,1,133,1,125,1,117,1,108,1,103,1,98,1,91,1,90,1,91,1,82,1,72,1,68,1,63,1,52,1, +39,1,23,1,2,1,236,0,208,0,175,0,147,0,120,0,85,0,58,0,38,0,9,0,240,255,224,255,203,255,177,255, +150,255,126,255,110,255,99,255,83,255,62,255,37,255,16,255,0,255,237,254,212,254,184,254,165,254,156,254,141,254,119,254, +100,254,82,254,71,254,69,254,70,254,73,254,75,254,71,254,69,254,70,254,65,254,62,254,61,254,54,254,44,254,34,254, +22,254,6,254,252,253,247,253,235,253,218,253,206,253,194,253,180,253,168,253,153,253,139,253,126,253,103,253,65,253,28,253, +0,253,235,252,215,252,192,252,172,252,160,252,153,252,148,252,145,252,147,252,152,252,159,252,164,252,165,252,166,252,168,252, +172,252,182,252,185,252,176,252,172,252,174,252,171,252,164,252,159,252,158,252,164,252,171,252,177,252,184,252,196,252,210,252, +218,252,219,252,225,252,233,252,241,252,253,252,11,253,22,253,32,253,44,253,55,253,60,253,59,253,52,253,43,253,32,253, +17,253,1,253,244,252,234,252,225,252,212,252,202,252,203,252,206,252,208,252,213,252,219,252,229,252,239,252,246,252,6,253, +24,253,34,253,48,253,65,253,83,253,110,253,140,253,169,253,201,253,233,253,17,254,62,254,109,254,159,254,202,254,237,254, +20,255,55,255,88,255,126,255,160,255,190,255,222,255,251,255,23,0,53,0,79,0,98,0,119,0,143,0,161,0,171,0, +179,0,183,0,182,0,183,0,187,0,183,0,176,0,178,0,184,0,189,0,195,0,198,0,200,0,206,0,218,0,231,0, +243,0,254,0,14,1,36,1,55,1,63,1,69,1,81,1,92,1,100,1,110,1,117,1,118,1,125,1,142,1,158,1, +169,1,181,1,201,1,219,1,234,1,253,1,18,2,38,2,61,2,85,2,111,2,138,2,163,2,179,2,185,2,183,2, +179,2,176,2,172,2,169,2,164,2,154,2,144,2,136,2,125,2,111,2,90,2,58,2,22,2,240,1,194,1,143,1, +90,1,40,1,248,0,199,0,154,0,116,0,81,0,47,0,22,0,6,0,242,255,219,255,200,255,177,255,145,255,115,255, +92,255,76,255,69,255,57,255,42,255,38,255,37,255,34,255,36,255,36,255,37,255,42,255,48,255,50,255,52,255,59,255, +68,255,71,255,72,255,65,255,52,255,45,255,39,255,21,255,1,255,242,254,229,254,220,254,209,254,193,254,172,254,142,254, +109,254,77,254,41,254,249,253,196,253,150,253,110,253,75,253,44,253,12,253,238,252,217,252,203,252,192,252,181,252,171,252, +160,252,148,252,134,252,118,252,105,252,103,252,104,252,101,252,102,252,118,252,143,252,169,252,194,252,226,252,4,253,35,253, +67,253,107,253,162,253,226,253,26,254,80,254,145,254,216,254,35,255,119,255,206,255,37,0,125,0,219,0,65,1,171,1, +26,2,138,2,242,2,77,3,159,3,229,3,34,4,93,4,143,4,190,4,236,4,18,5,63,5,119,5,163,5,195,5, +224,5,244,5,2,6,13,6,13,6,10,6,10,6,12,6,12,6,15,6,28,6,46,6,72,6,106,6,142,6,182,6, +224,6,4,7,49,7,97,7,135,7,170,7,207,7,241,7,12,8,26,8,30,8,40,8,54,8,73,8,98,8,124,8, +144,8,159,8,173,8,178,8,164,8,134,8,93,8,43,8,243,7,178,7,101,7,16,7,186,6,106,6,31,6,213,5, +139,5,62,5,239,4,164,4,91,4,16,4,202,3,139,3,75,3,15,3,218,2,161,2,107,2,70,2,38,2,9,2, +246,1,233,1,224,1,216,1,202,1,189,1,180,1,165,1,143,1,115,1,83,1,48,1,9,1,226,0,182,0,129,0, +64,0,248,255,183,255,124,255,58,255,243,254,166,254,84,254,13,254,201,253,118,253,28,253,194,252,104,252,17,252,190,251, +122,251,66,251,9,251,215,250,177,250,147,250,128,250,120,250,113,250,110,250,114,250,120,250,127,250,142,250,161,250,188,250, +219,250,247,250,20,251,55,251,101,251,153,251,196,251,231,251,10,252,42,252,70,252,96,252,109,252,117,252,125,252,131,252, +133,252,125,252,112,252,109,252,106,252,100,252,102,252,109,252,108,252,110,252,121,252,119,252,104,252,103,252,107,252,100,252, +81,252,56,252,31,252,11,252,248,251,232,251,222,251,220,251,219,251,206,251,190,251,176,251,160,251,142,251,121,251,92,251, +56,251,19,251,249,250,230,250,211,250,208,250,229,250,5,251,43,251,90,251,147,251,213,251,22,252,84,252,140,252,189,252, +233,252,23,253,78,253,135,253,194,253,16,254,105,254,187,254,14,255,98,255,181,255,13,0,90,0,151,0,205,0,249,0, +22,1,33,1,31,1,25,1,14,1,0,1,242,0,216,0,187,0,164,0,128,0,87,0,61,0,37,0,8,0,235,255, +200,255,154,255,101,255,47,255,252,254,206,254,158,254,115,254,79,254,44,254,18,254,255,253,240,253,237,253,243,253,254,253, +20,254,46,254,80,254,126,254,177,254,233,254,40,255,104,255,171,255,247,255,76,0,155,0,220,0,26,1,89,1,148,1, +211,1,20,2,80,2,134,2,178,2,209,2,231,2,246,2,253,2,240,2,201,2,143,2,63,2,217,1,103,1,233,0, +104,0,227,255,82,255,194,254,57,254,183,253,61,253,208,252,113,252,28,252,205,251,131,251,59,251,246,250,192,250,144,250, +97,250,70,250,66,250,75,250,98,250,128,250,165,250,216,250,16,251,67,251,129,251,206,251,34,252,128,252,218,252,42,253, +117,253,186,253,250,253,58,254,104,254,138,254,174,254,211,254,2,255,57,255,104,255,147,255,192,255,232,255,19,0,72,0, +124,0,161,0,191,0,215,0,228,0,240,0,252,0,0,1,2,1,3,1,254,0,245,0,234,0,217,0,202,0,198,0, +198,0,189,0,167,0,147,0,127,0,92,0,41,0,245,255,194,255,133,255,70,255,17,255,220,254,170,254,136,254,97,254, +52,254,20,254,253,253,232,253,214,253,204,253,201,253,205,253,220,253,248,253,21,254,56,254,101,254,153,254,206,254,2,255, +57,255,116,255,187,255,8,0,72,0,132,0,201,0,11,1,78,1,153,1,218,1,18,2,71,2,107,2,127,2,140,2, +139,2,129,2,117,2,94,2,53,2,10,2,224,1,168,1,101,1,34,1,223,0,145,0,58,0,229,255,150,255,77,255, +7,255,183,254,98,254,15,254,182,253,92,253,8,253,195,252,142,252,96,252,58,252,44,252,56,252,95,252,155,252,219,252, +38,253,139,253,10,254,159,254,59,255,223,255,150,0,86,1,34,2,251,2,202,3,136,4,65,5,247,5,164,6,62,7, +192,7,51,8,157,8,2,9,84,9,146,9,199,9,232,9,241,9,244,9,238,9,226,9,215,9,190,9,147,9,106,9, +70,9,32,9,1,9,234,8,214,8,202,8,198,8,193,8,200,8,228,8,1,9,22,9,45,9,64,9,60,9,33,9, +255,8,206,8,133,8,49,8,228,7,154,7,76,7,9,7,234,6,229,6,238,6,13,7,59,7,113,7,176,7,229,7, +8,8,30,8,35,8,11,8,220,7,160,7,95,7,27,7,218,6,153,6,84,6,32,6,4,6,244,5,229,5,208,5, +177,5,140,5,94,5,27,5,180,4,53,4,185,3,49,3,152,2,13,2,151,1,45,1,208,0,122,0,38,0,227,255, +172,255,106,255,23,255,189,254,89,254,226,253,90,253,197,252,43,252,149,251,13,251,144,250,22,250,174,249,102,249,51,249, +17,249,254,248,242,248,245,248,14,249,39,249,64,249,102,249,145,249,185,249,221,249,3,250,54,250,121,250,198,250,11,251, +72,251,132,251,193,251,3,252,69,252,121,252,171,252,221,252,255,252,23,253,55,253,84,253,98,253,110,253,121,253,117,253, +104,253,91,253,71,253,36,253,237,252,171,252,112,252,55,252,4,252,217,251,171,251,130,251,104,251,76,251,40,251,8,251, +237,250,205,250,167,250,138,250,113,250,86,250,65,250,47,250,31,250,28,250,44,250,72,250,113,250,168,250,226,250,17,251, +66,251,124,251,173,251,206,251,224,251,229,251,225,251,210,251,190,251,183,251,176,251,156,251,128,251,95,251,85,251,111,251, +148,251,199,251,20,252,103,252,180,252,8,253,97,253,176,253,239,253,35,254,86,254,140,254,194,254,2,255,85,255,185,255, +32,0,138,0,251,0,102,1,184,1,247,1,41,2,65,2,81,2,102,2,109,2,96,2,70,2,41,2,21,2,4,2, +234,1,204,1,178,1,152,1,120,1,86,1,58,1,25,1,242,0,209,0,169,0,114,0,55,0,246,255,172,255,94,255, +7,255,173,254,89,254,8,254,183,253,101,253,16,253,189,252,124,252,78,252,33,252,250,251,237,251,241,251,2,252,33,252, +78,252,141,252,208,252,25,253,125,253,233,253,74,254,168,254,251,254,62,255,130,255,200,255,0,0,50,0,100,0,141,0, +171,0,185,0,182,0,167,0,134,0,75,0,249,255,140,255,10,255,131,254,255,253,131,253,7,253,131,252,7,252,150,251, +45,251,209,250,125,250,52,250,250,249,200,249,152,249,105,249,61,249,28,249,249,248,205,248,161,248,120,248,83,248,44,248, +2,248,227,247,218,247,227,247,246,247,14,248,50,248,97,248,144,248,191,248,248,248,61,249,133,249,202,249,22,250,113,250, +219,250,79,251,195,251,66,252,215,252,114,253,16,254,183,254,89,255,250,255,157,0,54,1,187,1,50,2,159,2,254,2, +74,3,138,3,199,3,253,3,35,4,63,4,95,4,126,4,142,4,143,4,130,4,107,4,77,4,37,4,245,3,188,3, +127,3,73,3,16,3,201,2,124,2,37,2,197,1,105,1,16,1,176,0,70,0,225,255,133,255,32,255,185,254,105,254, +40,254,239,253,197,253,171,253,165,253,178,253,194,253,203,253,220,253,251,253,35,254,79,254,118,254,157,254,221,254,53,255, +140,255,229,255,77,0,195,0,66,1,197,1,69,2,179,2,13,3,90,3,138,3,158,3,164,3,143,3,99,3,51,3, +247,2,176,2,115,2,64,2,4,2,195,1,144,1,90,1,16,1,203,0,134,0,39,0,184,255,63,255,190,254,58,254, +171,253,30,253,171,252,78,252,7,252,219,251,201,251,224,251,38,252,148,252,32,253,191,253,114,254,60,255,23,0,253,0, +231,1,207,2,183,3,152,4,113,5,77,6,41,7,253,7,204,8,138,9,50,10,201,10,76,11,191,11,35,12,97,12, +116,12,108,12,80,12,43,12,11,12,236,11,201,11,167,11,144,11,133,11,120,11,112,11,123,11,136,11,150,11,179,11, +206,11,232,11,22,12,84,12,141,12,180,12,200,12,197,12,169,12,127,12,62,12,217,11,105,11,253,10,138,10,19,10, +160,9,49,9,221,8,174,8,161,8,172,8,195,8,232,8,23,9,61,9,82,9,76,9,39,9,236,8,161,8,76,8, +2,8,200,7,153,7,122,7,112,7,122,7,148,7,191,7,240,7,18,8,31,8,22,8,238,7,166,7,64,7,189,6, +52,6,186,5,70,5,205,4,87,4,242,3,174,3,133,3,105,3,84,3,57,3,9,3,194,2,82,2,171,1,227,0, +13,0,37,255,58,254,81,253,92,252,116,251,191,250,52,250,194,249,108,249,51,249,17,249,3,249,4,249,24,249,58,249, +87,249,108,249,134,249,160,249,191,249,238,249,48,250,115,250,168,250,230,250,68,251,176,251,22,252,118,252,194,252,247,252, +49,253,99,253,123,253,149,253,197,253,246,253,26,254,48,254,63,254,82,254,98,254,106,254,110,254,108,254,99,254,90,254, +94,254,106,254,110,254,116,254,141,254,170,254,184,254,179,254,166,254,150,254,100,254,17,254,173,253,33,253,120,252,216,251, +53,251,147,250,27,250,193,249,102,249,16,249,198,248,134,248,90,248,53,248,5,248,215,247,175,247,125,247,55,247,220,246, +119,246,20,246,189,245,124,245,72,245,25,245,5,245,31,245,92,245,177,245,30,246,169,246,80,247,0,248,174,248,75,249, +219,249,112,250,255,250,128,251,247,251,103,252,231,252,126,253,32,254,208,254,135,255,66,0,9,1,187,1,79,2,211,2, +63,3,143,3,194,3,206,3,200,3,186,3,154,3,106,3,52,3,0,3,198,2,123,2,42,2,197,1,68,1,201,0, +82,0,210,255,88,255,219,254,78,254,197,253,66,253,194,252,67,252,176,251,15,251,113,250,195,249,6,249,91,248,195,247, +72,247,243,246,177,246,138,246,133,246,135,246,163,246,245,246,97,247,215,247,99,248,7,249,185,249,101,250,17,251,190,251, +84,252,220,252,100,253,238,253,120,254,234,254,66,255,148,255,212,255,4,0,41,0,36,0,254,255,206,255,121,255,235,254, +42,254,82,253,128,252,170,251,190,250,208,249,253,248,74,248,170,247,29,247,165,246,61,246,249,245,215,245,174,245,123,245, +76,245,25,245,227,244,169,244,110,244,60,244,24,244,255,243,244,243,1,244,49,244,126,244,219,244,59,245,143,245,234,245, +107,246,8,247,163,247,54,248,205,248,110,249,33,250,222,250,148,251,75,252,22,253,224,253,156,254,91,255,46,0,11,1, +223,1,178,2,128,3,45,4,186,4,60,5,172,5,17,6,110,6,192,6,255,6,25,7,40,7,61,7,66,7,57,7, +47,7,16,7,235,6,200,6,149,6,88,6,27,6,223,5,164,5,97,5,22,5,200,4,112,4,4,4,140,3,13,3, +105,2,165,1,240,0,50,0,91,255,155,254,250,253,100,253,240,252,154,252,82,252,34,252,20,252,35,252,62,252,80,252, +72,252,43,252,20,252,18,252,30,252,58,252,104,252,159,252,228,252,70,253,194,253,85,254,246,254,139,255,5,0,111,0, +188,0,230,0,252,0,234,0,170,0,74,0,201,255,48,255,152,254,2,254,104,253,202,252,48,252,171,251,39,251,161,250, +41,250,180,249,75,249,253,248,178,248,104,248,48,248,14,248,255,247,0,248,46,248,147,248,12,249,163,249,105,250,73,251, +78,252,129,253,203,254,48,0,164,1,18,3,132,4,239,5,80,7,190,8,43,10,130,11,205,12,254,13,3,15,229,15, +149,16,251,16,46,17,63,17,24,17,183,16,53,16,161,15,12,15,132,14,7,14,138,13,17,13,199,12,196,12,228,12, +17,13,99,13,212,13,62,14,168,14,33,15,146,15,4,16,154,16,63,17,222,17,124,18,13,19,149,19,16,20,95,20, +137,20,143,20,104,20,42,20,201,19,66,19,186,18,51,18,172,17,50,17,177,16,47,16,195,15,95,15,9,15,196,14, +123,14,51,14,8,14,244,13,212,13,156,13,116,13,110,13,106,13,83,13,54,13,31,13,3,13,212,12,152,12,81,12, +248,11,147,11,30,11,138,10,224,9,48,9,114,8,164,7,207,6,246,5,39,5,116,4,196,3,16,3,125,2,10,2, +137,1,229,0,47,0,128,255,213,254,23,254,79,253,147,252,245,251,115,251,242,250,111,250,254,249,163,249,93,249,35,249, +234,248,195,248,187,248,199,248,224,248,8,249,64,249,130,249,202,249,38,250,152,250,25,251,173,251,91,252,24,253,190,253, +62,254,174,254,14,255,87,255,125,255,120,255,93,255,56,255,17,255,3,255,242,254,200,254,184,254,202,254,211,254,230,254, +8,255,20,255,20,255,37,255,62,255,90,255,135,255,191,255,237,255,22,0,46,0,48,0,60,0,80,0,71,0,26,0, +213,255,114,255,223,254,34,254,86,253,123,252,143,251,156,250,155,249,151,248,169,247,208,246,6,246,64,245,117,244,192,243, +52,243,186,242,82,242,7,242,192,241,114,241,56,241,6,241,215,240,221,240,24,241,103,241,214,241,101,242,9,243,201,243, +148,244,101,245,67,246,19,247,214,247,157,248,97,249,41,250,253,250,204,251,157,252,120,253,70,254,250,254,179,255,117,0, +17,1,149,1,55,2,220,2,108,3,230,3,46,4,81,4,103,4,80,4,8,4,174,3,73,3,234,2,156,2,74,2, +235,1,149,1,96,1,64,1,18,1,201,0,113,0,254,255,100,255,184,254,255,253,46,253,86,252,130,251,160,250,188,249, +225,248,16,248,73,247,131,246,199,245,31,245,114,244,215,243,119,243,56,243,19,243,43,243,119,243,216,243,73,244,211,244, +112,245,32,246,232,246,172,247,91,248,7,249,186,249,109,250,16,251,149,251,28,252,178,252,43,253,127,253,200,253,4,254, +27,254,15,254,247,253,199,253,95,253,204,252,40,252,103,251,125,250,117,249,100,248,70,247,30,246,11,245,20,244,42,243, +99,242,202,241,81,241,249,240,187,240,122,240,43,240,197,239,57,239,167,238,57,238,203,237,74,237,230,236,174,236,150,236, +167,236,220,236,61,237,202,237,93,238,6,239,205,239,125,240,31,241,227,241,186,242,135,243,91,244,76,245,87,246,122,247, +183,248,12,250,117,251,233,252,87,254,201,255,52,1,117,2,156,3,181,4,157,5,99,6,43,7,225,7,120,8,1,9, +115,9,200,9,2,10,13,10,208,9,100,9,235,8,116,8,233,7,55,7,116,6,182,5,4,5,132,4,42,4,201,3, +113,3,35,3,200,2,125,2,67,2,240,1,137,1,25,1,147,0,246,255,86,255,192,254,32,254,111,253,216,252,109,252, +24,252,226,251,220,251,235,251,236,251,233,251,241,251,219,251,154,251,70,251,225,250,113,250,19,250,217,249,212,249,5,250, +104,250,9,251,219,251,182,252,136,253,72,254,222,254,62,255,115,255,122,255,75,255,242,254,113,254,208,253,52,253,181,252, +79,252,3,252,211,251,185,251,179,251,197,251,230,251,16,252,88,252,202,252,91,253,13,254,228,254,219,255,251,0,68,2, +175,3,52,5,198,6,111,8,45,10,236,11,191,13,151,15,70,17,204,18,31,20,42,21,11,22,209,22,95,23,172,23, +209,23,234,23,246,23,234,23,202,23,151,23,91,23,28,23,220,22,162,22,101,22,44,22,26,22,40,22,61,22,103,22, +186,22,54,23,206,23,101,24,214,24,16,25,40,25,48,25,41,25,4,25,169,24,40,24,159,23,5,23,114,22,9,22, +182,21,119,21,95,21,82,21,46,21,236,20,128,20,230,19,28,19,17,18,184,16,44,15,150,13,252,11,110,10,22,9, +2,8,56,7,185,6,110,6,79,6,93,6,129,6,140,6,107,6,53,6,251,5,163,5,28,5,122,4,227,3,92,3, +220,2,120,2,51,2,244,1,212,1,210,1,196,1,176,1,161,1,119,1,22,1,119,0,161,255,148,254,89,253,8,252, +153,250,43,249,248,247,252,246,29,246,110,245,249,244,181,244,138,244,85,244,6,244,170,243,74,243,232,242,119,242,239,241, +79,241,171,240,54,240,2,240,242,239,3,240,76,240,209,240,117,241,43,242,0,243,235,243,218,244,203,245,153,246,34,247, +147,247,40,248,207,248,119,249,61,250,33,251,26,252,46,253,89,254,148,255,211,0,2,2,32,3,36,4,255,4,195,5, +114,6,247,6,93,7,173,7,229,7,249,7,210,7,141,7,69,7,241,6,155,6,60,6,211,5,147,5,127,5,105,5, +67,5,27,5,8,5,1,5,226,4,179,4,123,4,31,4,157,3,242,2,35,2,77,1,110,0,107,255,70,254,31,253, +12,252,11,251,19,250,27,249,42,248,93,247,182,246,22,246,119,245,238,244,122,244,29,244,222,243,186,243,196,243,27,244, +179,244,119,245,101,246,118,247,177,248,29,250,167,251,69,253,247,254,176,0,105,2,6,4,128,5,2,7,113,8,162,9, +179,10,195,11,198,12,171,13,114,14,48,15,216,15,88,16,195,16,17,17,39,17,32,17,24,17,250,16,160,16,255,15, +47,15,70,14,82,13,81,12,33,11,214,9,161,8,108,7,39,6,233,4,186,3,154,2,119,1,59,0,5,255,239,253, +228,252,218,251,229,250,12,250,75,249,163,248,28,248,179,247,91,247,15,247,223,246,204,246,185,246,172,246,195,246,243,246, +25,247,40,247,37,247,1,247,169,246,48,246,171,245,18,245,120,244,240,243,115,243,253,242,152,242,77,242,30,242,255,241, +214,241,162,241,127,241,115,241,106,241,73,241,237,240,89,240,216,239,109,239,207,238,21,238,121,237,229,236,69,236,163,235, +0,235,76,234,153,233,245,232,50,232,70,231,121,230,213,229,33,229,84,228,147,227,249,226,124,226,3,226,142,225,20,225, +157,224,86,224,78,224,123,224,230,224,129,225,70,226,81,227,147,228,231,229,77,231,199,232,69,234,206,235,98,237,227,238, +79,240,185,241,16,243,67,244,115,245,195,246,50,248,151,249,219,250,37,252,133,253,212,254,20,0,97,1,162,2,202,3, +3,5,60,6,50,7,253,7,224,8,218,9,203,10,173,11,122,12,22,13,124,13,185,13,175,13,60,13,133,12,171,11, +161,10,126,9,77,8,238,6,121,5,45,4,3,3,197,1,140,0,156,255,204,254,244,253,43,253,91,252,138,251,230,250, +89,250,213,249,112,249,31,249,242,248,249,248,33,249,144,249,91,250,88,251,118,252,168,253,206,254,225,255,219,0,158,1, +25,2,93,2,148,2,196,2,187,2,132,2,103,2,114,2,146,2,223,2,104,3,49,4,82,5,177,6,8,8,93,9, +223,10,116,12,227,13,52,15,121,16,173,17,218,18,248,19,244,20,213,21,135,22,250,22,76,23,123,23,122,23,113,23, +94,23,38,23,229,22,178,22,135,22,112,22,118,22,148,22,206,22,59,23,239,23,216,24,220,25,252,26,65,28,160,29, +2,31,99,32,217,33,95,35,214,36,14,38,241,38,152,39,27,40,121,40,175,40,158,40,58,40,172,39,4,39,51,38, +56,37,12,36,184,34,81,33,234,31,138,30,3,29,45,27,60,25,83,23,53,21,205,18,74,16,201,13,87,11,226,8, +81,6,202,3,115,1,73,255,86,253,146,251,240,249,151,248,140,247,146,246,136,245,134,244,192,243,55,243,180,242,50,242, +212,241,156,241,154,241,198,241,231,241,254,241,54,242,144,242,251,242,105,243,201,243,36,244,118,244,169,244,178,244,149,244, +95,244,36,244,225,243,142,243,45,243,172,242,2,242,94,241,188,240,236,239,7,239,40,238,38,237,10,236,2,235,19,234, +53,233,94,232,125,231,147,230,145,229,105,228,55,227,252,225,168,224,102,223,98,222,130,221,183,220,35,220,209,219,193,219, +11,220,164,220,116,221,135,222,235,223,157,225,155,227,209,229,40,232,163,234,65,237,252,239,182,242,58,245,168,247,68,250, +234,252,102,255,201,1,252,3,239,5,223,7,183,9,57,11,139,12,207,13,239,14,242,15,220,16,168,17,94,18,232,18, +45,19,67,19,80,19,73,19,246,18,86,18,160,17,201,16,193,15,165,14,125,13,63,12,2,11,197,9,129,8,56,7, +214,5,107,4,40,3,2,2,222,0,209,255,223,254,34,254,208,253,205,253,229,253,44,254,174,254,108,255,127,0,210,1, +84,3,255,4,161,6,52,8,220,9,131,11,32,13,190,14,27,16,47,17,73,18,80,19,20,20,201,20,111,21,209,21, +11,22,65,22,84,22,77,22,78,22,74,22,53,22,49,22,65,22,59,22,14,22,201,21,120,21,54,21,2,21,169,20, +51,20,208,19,134,19,73,19,253,18,120,18,208,17,30,17,77,16,112,15,177,14,9,14,94,13,175,12,252,11,54,11, +87,10,106,9,127,8,165,7,241,6,85,6,160,5,191,4,229,3,76,3,229,2,144,2,82,2,39,2,242,1,206,1, +196,1,143,1,15,1,97,0,131,255,124,254,116,253,88,252,3,251,116,249,189,247,0,246,78,244,143,242,208,240,32,239, +84,237,98,235,127,233,195,231,11,230,43,228,56,226,118,224,211,222,25,221,111,219,238,217,109,216,4,215,228,213,239,212, +32,212,144,211,35,211,199,210,151,210,149,210,164,210,198,210,31,211,175,211,77,212,255,212,247,213,57,215,173,216,61,218, +206,219,89,221,214,222,45,224,108,225,176,226,240,227,43,229,104,230,156,231,180,232,159,233,113,234,59,235,215,235,55,236, +123,236,132,236,44,236,183,235,96,235,253,234,107,234,209,233,99,233,57,233,72,233,144,233,32,234,240,234,232,235,229,236, +218,237,240,238,46,240,105,241,153,242,191,243,205,244,218,245,0,247,46,248,92,249,137,250,167,251,177,252,169,253,154,254, +134,255,104,0,63,1,13,2,192,2,92,3,243,3,129,4,1,5,131,5,18,6,189,6,149,7,159,8,209,9,1,11, +5,12,218,12,138,13,14,14,104,14,130,14,66,14,188,13,5,13,16,12,235,10,209,9,231,8,32,8,90,7,162,6, +18,6,173,5,128,5,146,5,192,5,8,6,138,6,47,7,237,7,253,8,124,10,54,12,15,14,35,16,129,18,20,21, +188,23,100,26,243,28,63,31,56,33,18,35,208,36,16,38,188,38,59,39,180,39,255,39,34,40,31,40,244,39,234,39, +36,40,103,40,159,40,233,40,100,41,39,42,18,43,242,43,220,44,239,45,20,47,62,48,109,49,153,50,169,51,128,52, +8,53,37,53,202,52,22,52,22,51,177,49,254,47,44,46,59,44,53,42,28,40,231,37,203,35,239,33,50,32,144,30, +34,29,214,27,161,26,143,25,152,24,137,23,51,22,191,20,118,19,68,18,25,17,36,16,98,15,198,14,111,14,30,14, +129,13,201,12,23,12,22,11,120,9,54,7,109,4,72,1,238,253,125,250,0,247,125,243,50,240,89,237,227,234,201,232, +31,231,238,229,44,229,163,228,30,228,178,227,93,227,214,226,27,226,84,225,109,224,128,223,229,222,160,222,149,222,238,222, +202,223,1,225,118,226,27,228,201,229,91,231,180,232,173,233,45,234,38,234,146,233,128,232,10,231,56,229,49,227,47,225, +55,223,56,221,80,219,164,217,42,216,199,214,115,213,43,212,218,210,133,209,64,208,5,207,208,205,194,204,242,203,128,203, +155,203,86,204,184,205,179,207,29,210,250,212,89,216,238,219,135,223,65,227,236,230,55,234,48,237,254,239,171,242,64,245, +185,247,17,250,86,252,132,254,144,0,116,2,44,4,172,5,226,6,223,7,215,8,183,9,88,10,229,10,122,11,5,12, +140,12,4,13,111,13,253,13,150,14,252,14,63,15,103,15,84,15,21,15,190,14,70,14,168,13,233,12,20,12,37,11, +1,10,212,8,233,7,36,7,95,6,168,5,248,4,103,4,44,4,33,4,34,4,96,4,203,4,25,5,98,5,238,5, +193,6,217,7,79,9,29,11,39,13,92,15,172,17,6,20,117,22,251,24,128,27,228,29,242,31,132,33,209,34,10,36, +255,36,154,37,10,38,115,38,217,38,63,39,156,39,242,39,54,40,72,40,29,40,185,39,30,39,78,38,69,37,237,35, +67,34,61,32,202,29,0,27,30,24,69,21,105,18,148,15,238,12,135,10,78,8,52,6,45,4,49,2,70,0,103,254, +148,252,241,250,165,249,163,248,184,247,236,246,144,246,193,246,71,247,10,248,7,249,44,250,153,251,90,253,23,255,145,0, +213,1,229,2,180,3,28,4,218,3,8,3,237,1,128,0,178,254,146,252,35,250,146,247,25,245,142,242,175,239,149,236, +132,233,151,230,178,227,182,224,196,221,33,219,217,216,194,214,205,212,23,211,182,209,175,208,246,207,79,207,166,206,60,206, +32,206,25,206,28,206,48,206,73,206,118,206,179,206,214,206,233,206,22,207,112,207,3,208,187,208,135,209,131,210,185,211, +36,213,198,214,121,216,38,218,1,220,22,222,41,224,30,226,16,228,41,230,92,232,107,234,63,236,250,237,176,239,98,241, +9,243,122,244,163,245,152,246,73,247,154,247,152,247,78,247,196,246,4,246,14,245,229,243,170,242,134,241,130,240,140,239, +164,238,228,237,118,237,119,237,206,237,71,238,221,238,142,239,57,240,246,240,224,241,193,242,135,243,90,244,64,245,63,246, +114,247,197,248,31,250,144,251,39,253,233,254,194,0,135,2,44,4,200,5,97,7,236,8,89,10,136,11,114,12,58,13, +5,14,225,14,227,15,36,17,167,18,116,20,147,22,230,24,75,27,187,29,33,32,93,34,111,36,106,38,80,40,10,42, +133,43,199,44,196,45,85,46,130,46,119,46,70,46,237,45,92,45,148,44,178,43,176,42,129,41,70,40,232,38,47,37, +73,35,124,33,215,31,143,30,220,29,168,29,218,29,124,30,148,31,43,33,63,35,191,37,158,40,181,43,224,46,47,50, +172,53,54,57,139,60,105,63,205,65,218,67,130,69,164,70,71,71,131,71,106,71,234,70,237,69,148,68,232,66,181,64, +246,61,219,58,121,55,229,51,66,48,157,44,231,40,25,37,89,33,208,29,92,26,225,22,141,19,124,16,169,13,22,11, +185,8,161,6,223,4,60,3,145,1,16,0,182,254,70,253,193,251,54,250,155,248,245,246,77,245,162,243,249,241,86,240, +198,238,85,237,238,235,130,234,55,233,53,232,97,231,141,230,186,229,2,229,113,228,254,227,123,227,190,226,225,225,17,225, +85,224,175,223,32,223,143,222,8,222,179,221,136,221,93,221,50,221,32,221,25,221,247,220,178,220,64,220,137,219,162,218, +155,217,92,216,246,214,145,213,36,212,180,210,98,209,38,208,7,207,43,206,156,205,76,205,24,205,206,204,114,204,19,204, +144,203,241,202,96,202,195,201,18,201,155,200,130,200,178,200,66,201,96,202,242,203,218,205,64,208,41,211,76,214,140,217, +239,220,72,224,117,227,128,230,95,233,6,236,120,238,175,240,178,242,165,244,152,246,118,248,53,250,226,251,140,253,51,255, +230,0,179,2,117,4,10,6,131,7,220,8,247,9,233,10,222,11,218,12,204,13,180,14,167,15,177,16,201,17,224,18, +234,19,229,20,208,21,134,22,238,22,56,23,120,23,153,23,170,23,182,23,156,23,99,23,43,23,231,22,163,22,133,22, +136,22,149,22,195,22,33,23,149,23,16,24,163,24,82,25,20,26,241,26,218,27,159,28,58,29,183,29,15,30,83,30, +131,30,134,30,102,30,66,30,54,30,93,30,155,30,218,30,72,31,227,31,121,32,34,33,224,33,110,34,217,34,70,35, +125,35,96,35,32,35,201,34,82,34,184,33,229,32,205,31,149,30,117,29,108,28,57,27,202,25,82,24,220,22,89,21, +222,19,98,18,187,16,229,14,243,12,234,10,222,8,221,6,230,4,5,3,55,1,124,255,250,253,210,252,241,251,68,251, +206,250,123,250,38,250,188,249,57,249,159,248,214,247,198,246,137,245,35,244,107,242,124,240,166,238,231,236,24,235,58,233, +93,231,142,229,207,227,15,226,66,224,109,222,141,220,189,218,24,217,135,215,248,213,120,212,8,211,158,209,79,208,65,207, +122,206,216,205,83,205,9,205,7,205,59,205,132,205,188,205,243,205,82,206,186,206,250,206,19,207,20,207,37,207,87,207, +129,207,173,207,9,208,113,208,208,208,88,209,13,210,228,210,243,211,41,213,117,214,224,215,95,217,253,218,190,220,103,222, +250,223,169,225,84,227,214,228,54,230,93,231,71,232,33,233,17,234,39,235,69,236,67,237,79,238,127,239,129,240,77,241, +25,242,205,242,59,243,118,243,149,243,161,243,157,243,155,243,209,243,65,244,171,244,45,245,20,246,67,247,117,248,168,249, +236,250,88,252,230,253,93,255,167,0,228,1,19,3,54,4,93,5,102,6,72,7,86,8,167,9,229,10,231,11,210,12, +169,13,79,14,209,14,70,15,180,15,59,16,9,17,24,18,89,19,233,20,211,22,11,25,159,27,140,30,172,33,237,36, +55,40,108,43,147,46,164,49,102,52,205,54,235,56,183,58,30,60,35,61,225,61,111,62,182,62,172,62,109,62,228,61, +244,60,185,59,69,58,177,56,51,55,179,53,250,51,72,50,0,49,57,48,219,47,194,47,252,47,182,48,223,49,87,51, +17,53,235,54,227,56,253,58,218,60,68,62,114,63,99,64,255,64,111,65,163,65,115,65,19,65,167,64,21,64,62,63, +6,62,119,60,173,58,130,56,231,53,23,51,20,48,205,44,108,41,6,38,169,34,155,31,237,28,115,26,58,24,107,22, +252,20,214,19,240,18,19,18,238,16,103,15,171,13,205,11,161,9,30,7,120,4,202,1,39,255,167,252,58,250,207,247, +131,245,103,243,71,241,232,238,70,236,131,233,157,230,135,227,109,224,119,221,143,218,183,215,27,213,196,210,184,208,52,207, +97,206,33,206,56,206,126,206,253,206,194,207,163,208,111,209,35,210,195,210,68,211,161,211,228,211,25,212,65,212,123,212, +226,212,70,213,124,213,157,213,174,213,150,213,87,213,211,212,241,211,233,210,207,209,123,208,8,207,162,205,82,204,71,203, +160,202,77,202,84,202,154,202,232,202,99,203,39,204,208,204,43,205,110,205,185,205,248,205,255,205,205,205,169,205,193,205, +0,206,91,206,219,206,150,207,155,208,193,209,230,210,51,212,171,213,34,215,169,216,94,218,55,220,86,222,206,224,129,227, +133,230,10,234,249,237,57,242,213,246,167,251,124,0,67,5,230,9,40,14,219,17,36,21,66,24,57,27,244,29,109,32, +156,34,135,36,74,38,211,39,21,41,43,42,247,42,62,43,37,43,213,42,49,42,67,41,54,40,250,38,130,37,249,35, +122,34,7,33,179,31,132,30,114,29,150,28,1,28,118,27,204,26,55,26,212,25,112,25,252,24,148,24,61,24,14,24, +38,24,125,24,26,25,27,26,115,27,1,29,184,30,140,32,121,34,74,36,186,37,213,38,178,39,53,40,129,40,188,40, +166,40,46,40,155,39,230,38,245,37,245,36,226,35,136,34,236,32,46,31,67,29,18,27,166,24,29,22,109,19,140,16, +178,13,1,11,106,8,30,6,72,4,187,2,84,1,10,0,177,254,87,253,30,252,207,250,73,249,198,247,83,246,207,244, +87,243,30,242,41,241,82,240,137,239,255,238,177,238,91,238,250,237,157,237,2,237,27,236,55,235,94,234,85,233,23,232, +189,230,85,229,234,227,130,226,44,225,2,224,18,223,90,222,196,221,58,221,191,220,74,220,166,219,191,218,168,217,96,216, +234,214,96,213,203,211,32,210,120,208,248,206,175,205,156,204,193,203,6,203,93,202,239,201,174,201,73,201,205,200,118,200, +22,200,140,199,31,199,234,198,223,198,15,199,117,199,31,200,95,201,39,203,16,205,37,207,163,209,94,212,12,215,164,217, +62,220,221,222,119,225,254,227,77,230,70,232,22,234,244,235,197,237,113,239,249,240,69,242,102,243,127,244,97,245,252,245, +143,246,16,247,99,247,180,247,6,248,51,248,78,248,98,248,102,248,110,248,121,248,122,248,121,248,117,248,100,248,66,248, +243,247,143,247,90,247,74,247,69,247,117,247,224,247,92,248,229,248,129,249,49,250,14,251,12,252,24,253,91,254,240,255, +180,1,153,3,185,5,46,8,18,11,123,14,108,18,214,22,153,27,159,32,217,37,32,43,47,48,227,52,76,57,119,61, +56,65,124,68,90,71,183,73,105,75,175,76,213,77,198,78,100,79,187,79,200,79,126,79,236,78,35,78,41,77,244,75, +127,74,216,72,22,71,101,69,3,68,244,66,18,66,101,65,242,64,158,64,103,64,86,64,100,64,124,64,123,64,67,64, +228,63,88,63,141,62,163,61,176,60,183,59,199,58,225,57,10,57,89,56,184,55,16,55,132,54,13,54,128,53,226,52, +26,52,253,50,165,49,51,48,156,46,229,44,255,42,222,40,206,38,254,36,70,35,161,33,26,32,154,30,29,29,126,27, +140,25,117,23,93,21,253,18,53,16,66,13,68,10,54,7,41,4,50,1,94,254,173,251,32,249,176,246,52,244,139,241, +197,238,219,235,162,232,36,229,145,225,252,221,107,218,236,214,155,211,159,208,11,206,239,203,99,202,101,201,236,200,238,200, +82,201,253,201,210,202,163,203,91,204,4,205,125,205,171,205,189,205,226,205,27,206,99,206,179,206,10,207,121,207,3,208, +143,208,13,209,137,209,254,209,60,210,37,210,204,209,45,209,54,208,6,207,185,205,69,204,191,202,84,201,39,200,105,199, +19,199,252,198,71,199,0,200,220,200,198,201,195,202,162,203,114,204,96,205,57,206,223,206,148,207,108,208,76,209,65,210, +99,211,189,212,67,214,227,215,170,217,158,219,184,221,15,224,144,226,255,228,100,231,205,233,18,236,76,238,173,240,10,243, +98,245,250,247,180,250,80,253,227,255,151,2,106,5,75,8,34,11,245,13,229,16,237,19,220,22,142,25,7,28,73,30, +66,32,236,33,90,35,121,36,71,37,249,37,151,38,243,38,34,39,70,39,90,39,110,39,122,39,75,39,255,38,213,38, +172,38,91,38,253,37,151,37,10,37,96,36,175,35,253,34,103,34,24,34,20,34,75,34,199,34,143,35,140,36,168,37, +208,38,241,39,17,41,49,42,43,43,2,44,199,44,88,45,196,45,50,46,105,46,63,46,224,45,74,45,75,44,248,42, +116,41,189,39,214,37,185,35,119,33,60,31,15,29,210,26,128,24,49,22,15,20,30,18,32,16,24,14,72,12,160,10, +235,8,57,7,183,5,113,4,76,3,37,2,32,1,103,0,199,255,25,255,130,254,248,253,73,253,117,252,130,251,106,250, +53,249,223,247,111,246,248,244,96,243,167,241,6,240,125,238,212,236,255,234,34,233,86,231,134,229,138,227,117,225,111,223, +115,221,124,219,141,217,138,215,113,213,102,211,104,209,127,207,199,205,39,204,119,202,193,200,16,199,133,197,68,196,29,195, +201,193,86,192,244,190,174,189,124,188,85,187,69,186,125,185,33,185,38,185,127,185,62,186,87,187,158,188,15,190,193,191, +147,193,99,195,55,197,251,198,174,200,137,202,129,204,91,206,70,208,114,210,172,212,228,214,59,217,144,219,184,221,183,223, +144,225,57,227,169,228,202,229,134,230,225,230,6,231,35,231,57,231,76,231,141,231,31,232,14,233,85,234,216,235,138,237, +99,239,43,241,215,242,123,244,193,245,101,246,200,246,30,247,39,247,234,246,175,246,141,246,155,246,0,247,185,247,168,248, +186,249,235,250,60,252,143,253,209,254,18,0,106,1,237,2,170,4,142,6,171,8,54,11,39,14,119,17,85,21,173,25, +68,30,34,35,55,40,70,45,65,50,13,55,93,59,41,63,138,66,128,69,39,72,153,74,183,76,126,78,37,80,191,81, +44,83,109,84,156,85,161,86,87,87,202,87,254,87,209,87,82,87,178,86,233,85,221,84,172,83,127,82,110,81,115,80, +110,79,80,78,55,77,41,76,13,75,205,73,100,72,223,70,79,69,181,67,19,66,141,64,76,63,93,62,182,61,82,61, +45,61,21,61,222,60,168,60,145,60,117,60,58,60,223,59,82,59,134,58,128,57,67,56,222,54,96,53,205,51,41,50, +113,48,164,46,193,44,171,42,72,40,187,37,24,35,66,32,47,29,236,25,154,22,102,19,52,16,235,12,199,9,206,6, +180,3,145,0,158,253,166,250,137,247,107,244,71,241,248,237,111,234,183,230,243,226,52,223,122,219,225,215,120,212,49,209, +35,206,90,203,186,200,98,198,130,196,240,194,146,193,139,192,201,191,18,191,113,190,23,190,8,190,36,190,92,190,178,190, +16,191,102,191,206,191,80,192,219,192,110,193,1,194,123,194,234,194,101,195,229,195,100,196,220,196,58,197,142,197,247,197, +101,198,186,198,1,199,79,199,163,199,238,199,49,200,110,200,161,200,213,200,35,201,139,201,243,201,88,202,213,202,115,203, +23,204,182,204,88,205,227,205,66,206,146,206,235,206,64,207,164,207,38,208,192,208,148,209,209,210,108,212,88,214,159,216, +59,219,30,222,53,225,106,228,165,231,174,234,93,237,233,239,109,242,188,244,245,246,99,249,248,251,155,254,90,1,29,4, +227,6,195,9,148,12,52,15,193,17,46,20,117,22,202,24,31,27,65,29,77,31,96,33,87,35,41,37,241,38,176,40, +93,42,13,44,191,45,61,47,108,48,111,49,67,50,199,50,28,51,110,51,179,51,255,51,91,52,144,52,182,52,39,53, +189,53,43,54,154,54,38,55,153,55,243,55,87,56,170,56,219,56,255,56,12,57,223,56,132,56,38,56,202,55,75,55, +144,54,166,53,168,52,154,51,109,50,3,49,69,47,53,45,229,42,81,40,133,37,160,34,179,31,204,28,18,26,154,23, +92,21,106,19,209,17,124,16,102,15,128,14,170,13,236,12,95,12,228,11,109,11,11,11,161,10,40,10,199,9,107,9, +237,8,80,8,131,7,106,6,28,5,161,3,236,1,17,0,3,254,161,251,253,248,54,246,64,243,33,240,249,236,224,233, +222,230,4,228,105,225,254,222,138,220,15,218,192,215,135,213,49,211,219,208,178,206,173,204,176,202,170,200,168,198,214,196, +67,195,217,193,144,192,94,191,66,190,75,189,98,188,101,187,99,186,92,185,55,184,252,182,179,181,79,180,244,178,200,177, +207,176,44,176,255,175,44,176,168,176,140,177,195,178,48,180,222,181,175,183,111,185,48,187,9,189,234,190,213,192,213,194, +200,196,165,198,144,200,146,202,134,204,75,206,236,207,149,209,69,211,194,212,251,213,19,215,4,216,183,216,53,217,134,217, +176,217,211,217,236,217,228,217,225,217,30,218,165,218,115,219,144,220,245,221,137,223,52,225,253,226,253,228,35,231,72,233, +115,235,193,237,56,240,206,242,128,245,113,248,213,251,153,255,144,3,195,7,47,12,176,16,61,21,208,25,82,30,199,34, +55,39,133,43,166,47,156,51,87,55,219,58,57,62,112,65,126,68,85,71,213,73,255,75,240,77,177,79,73,81,171,82, +193,83,161,84,95,85,222,85,64,86,212,86,157,87,133,88,160,89,218,90,9,92,71,93,137,94,135,95,71,96,235,96, +62,97,17,97,136,96,182,95,144,94,55,93,211,91,95,90,208,88,61,87,191,85,90,84,8,83,193,81,123,80,38,79, +186,77,43,76,119,74,186,72,4,71,59,69,82,67,99,65,128,63,184,61,39,60,196,58,116,57,60,56,255,54,124,53, +162,51,127,49,247,46,247,43,154,40,239,36,245,32,208,28,178,24,176,20,206,16,51,13,13,10,66,7,159,4,30,2, +179,255,73,253,232,250,119,248,205,245,23,243,135,240,246,237,86,235,212,232,108,230,13,228,208,225,171,223,125,221,83,219, +75,217,114,215,199,213,16,212,22,210,243,207,189,205,87,203,193,200,32,198,145,195,51,193,19,191,21,189,72,187,243,185, +47,185,195,184,125,184,103,184,140,184,198,184,250,184,65,185,164,185,4,186,109,186,1,187,183,187,136,188,130,189,144,190, +144,191,140,192,139,193,125,194,111,195,111,196,81,197,223,197,36,198,93,198,173,198,240,198,10,199,43,199,152,199,83,200, +47,201,24,202,37,203,91,204,137,205,131,206,81,207,20,208,248,208,28,210,103,211,198,212,110,214,121,216,177,218,9,221, +145,223,51,226,224,228,149,231,37,234,128,236,215,238,40,241,70,243,53,245,7,247,193,248,118,250,32,252,162,253,22,255, +170,0,102,2,76,4,92,6,139,8,215,10,80,13,240,15,153,18,36,21,136,23,242,25,128,28,29,31,183,33,89,36, +3,39,172,41,82,44,230,46,86,49,151,51,155,53,105,55,11,57,115,58,167,59,191,60,157,61,28,62,88,62,121,62, +140,62,156,62,173,62,179,62,166,62,140,62,96,62,20,62,164,61,32,61,150,60,255,59,84,59,147,58,165,57,128,56, +74,55,21,54,179,52,255,50,16,49,41,47,117,45,220,43,72,42,211,40,121,39,7,38,133,36,30,35,200,33,114,32, +46,31,253,29,224,28,222,27,227,26,236,25,21,25,72,24,102,23,137,22,196,21,16,21,130,20,8,20,97,19,147,18, +209,17,20,17,68,16,93,15,70,14,239,12,108,11,191,9,213,7,170,5,65,3,161,0,204,253,199,250,159,247,83,244, +207,240,39,237,147,233,31,230,160,226,23,223,192,219,173,216,174,213,165,210,196,207,59,205,248,202,237,200,33,199,119,197, +219,195,118,194,99,193,133,192,202,191,49,191,185,190,89,190,248,189,132,189,35,189,252,188,250,188,249,188,240,188,231,188, +236,188,250,188,241,188,198,188,127,188,45,188,233,187,179,187,130,187,121,187,184,187,23,188,122,188,0,189,186,189,163,190, +188,191,242,192,46,194,112,195,169,196,210,197,253,198,35,200,44,201,21,202,213,202,105,203,249,203,138,204,241,204,65,205, +183,205,85,206,11,207,242,207,33,209,153,210,74,212,17,214,247,215,54,218,223,220,209,223,246,226,75,230,212,233,157,237, +161,241,200,245,17,250,106,254,150,2,130,6,100,10,102,14,99,18,33,22,145,25,180,28,139,31,33,34,123,36,147,38, +129,40,102,42,56,44,236,45,160,47,106,49,90,51,146,53,11,56,157,58,62,61,230,63,124,66,18,69,195,71,118,74, +31,77,190,79,44,82,81,84,64,86,241,87,62,89,26,90,133,90,152,90,135,90,76,90,184,89,219,88,241,87,4,87, +1,86,236,84,228,83,248,82,39,82,123,81,247,80,111,80,198,79,28,79,125,78,205,77,248,76,231,75,129,74,242,72, +124,71,35,70,224,68,185,67,145,66,81,65,246,63,104,62,166,60,220,58,250,56,192,54,65,52,180,49,8,47,22,44, +237,40,172,37,97,34,36,31,13,28,22,25,36,22,44,19,56,16,87,13,135,10,181,7,204,4,211,1,211,254,203,251, +196,248,212,245,254,242,60,240,144,237,240,234,107,232,46,230,39,228,27,226,25,224,57,222,88,220,100,218,106,216,70,214, +217,211,56,209,119,206,173,203,244,200,80,198,203,195,136,193,119,191,123,189,167,187,8,186,143,184,82,183,93,182,149,181, +11,181,226,180,234,180,239,180,12,181,99,181,244,181,182,182,156,183,147,184,158,185,199,186,249,187,13,189,1,190,245,190, +228,191,166,192,47,193,147,193,219,193,30,194,106,194,164,194,176,194,166,194,153,194,156,194,211,194,73,195,226,195,171,196, +193,197,26,199,170,200,130,202,159,204,230,206,68,209,181,211,57,214,193,216,41,219,94,221,126,223,182,225,253,227,32,230, +36,232,69,234,142,236,229,238,70,241,179,243,28,246,138,248,8,251,129,253,238,255,87,2,182,4,20,7,134,9,246,11, +70,14,131,16,180,18,219,20,22,23,110,25,222,27,107,30,233,32,32,35,38,37,28,39,228,40,120,42,240,43,51,45, +42,46,233,46,114,47,210,47,63,48,190,48,52,49,197,49,149,50,124,51,77,52,29,53,240,53,156,54,18,55,102,55, +151,55,143,55,88,55,29,55,234,54,173,54,79,54,181,53,233,52,29,52,101,51,168,50,206,49,203,48,161,47,104,46, +39,45,200,43,72,42,195,40,70,39,202,37,61,36,146,34,217,32,47,31,153,29,23,28,184,26,137,25,127,24,127,23, +138,22,209,21,99,21,19,21,217,20,194,20,150,20,30,20,122,19,210,18,12,18,7,17,183,15,31,14,86,12,101,10, +55,8,200,5,41,3,104,0,147,253,183,250,228,247,44,245,140,242,240,239,92,237,228,234,142,232,100,230,97,228,104,226, +127,224,202,222,67,221,225,219,188,218,200,217,228,216,12,216,61,215,105,214,162,213,254,212,101,212,182,211,216,210,197,209, +143,208,73,207,239,205,141,204,58,203,247,201,198,200,190,199,227,198,40,198,146,197,60,197,37,197,52,197,99,197,195,197, +75,198,232,198,168,199,132,200,89,201,47,202,47,203,79,204,122,205,197,206,56,208,193,209,77,211,197,212,38,214,140,215, +255,216,105,218,200,219,35,221,118,222,186,223,227,224,238,225,252,226,28,228,59,229,106,230,202,231,81,233,239,234,201,236, +254,238,131,241,69,244,77,247,155,250,4,254,105,1,218,4,77,8,143,11,148,14,93,17,209,19,13,22,79,24,125,26, +107,28,47,30,221,31,108,33,249,34,128,36,225,37,65,39,211,40,115,42,254,43,152,45,88,47,57,49,66,51,123,53, +233,55,153,58,145,61,186,64,233,67,18,71,54,74,57,77,249,79,121,82,178,84,132,86,252,87,42,89,192,89,135,89, +194,88,194,87,156,86,72,85,187,83,248,81,36,80,77,78,92,76,87,74,86,72,63,70,236,67,97,65,187,62,7,60, +90,57,220,54,171,52,196,50,40,49,224,47,223,46,19,46,114,45,222,44,48,44,94,43,77,42,229,40,71,39,144,37, +172,35,158,33,116,31,39,29,224,26,210,24,194,22,120,20,33,18,198,15,50,13,110,10,168,7,227,4,26,2,77,255, +125,252,195,249,53,247,212,244,182,242,238,240,108,239,43,238,49,237,102,236,168,235,215,234,222,233,203,232,167,231,68,230, +132,228,127,226,72,224,223,221,90,219,181,216,205,213,170,210,136,207,142,204,163,201,173,198,198,195,25,193,177,190,140,188, +154,186,189,184,19,183,218,181,4,181,98,180,13,180,37,180,159,180,124,181,184,182,37,184,175,185,128,187,169,189,237,191, +12,194,13,196,20,198,20,200,249,201,214,203,159,205,48,207,137,208,165,209,104,210,235,210,69,211,66,211,220,210,101,210, +16,210,228,209,234,209,16,210,80,210,214,210,183,211,234,212,99,214,238,215,94,217,206,218,60,220,116,221,150,222,211,223, +7,225,33,226,87,227,183,228,54,230,237,231,226,233,235,235,247,237,14,240,45,242,83,244,141,246,202,248,216,250,187,252, +182,254,227,0,39,3,148,5,76,8,50,11,48,14,98,17,203,20,66,24,164,27,224,30,238,33,201,36,82,39,128,41, +112,43,35,45,148,46,227,47,42,49,89,50,108,51,105,52,83,53,30,54,170,54,222,54,198,54,99,54,162,53,152,52, +82,51,224,49,114,48,2,47,91,45,181,43,99,42,32,41,181,39,113,38,102,37,72,36,15,35,223,33,156,32,48,31, +188,29,90,28,240,26,91,25,175,23,22,22,142,20,3,19,131,17,34,16,216,14,164,13,135,12,113,11,99,10,103,9, +126,8,158,7,175,6,174,5,213,4,77,4,240,3,172,3,152,3,159,3,153,3,128,3,85,3,7,3,119,2,142,1, +78,0,199,254,254,252,249,250,198,248,102,246,232,243,101,241,233,238,142,236,98,234,64,232,23,230,250,227,212,225,155,223, +131,221,152,219,178,217,216,215,22,214,100,212,234,210,207,209,247,208,82,208,233,207,154,207,75,207,10,207,220,206,182,206, +145,206,88,206,15,206,204,205,121,205,8,205,168,204,116,204,82,204,65,204,95,204,180,204,43,205,173,205,53,206,185,206, +24,207,72,207,91,207,79,207,30,207,234,206,196,206,164,206,140,206,119,206,117,206,193,206,113,207,91,208,115,209,211,210, +138,212,144,214,201,216,21,219,122,221,9,224,184,226,145,229,154,232,190,235,15,239,183,242,168,246,194,250,252,254,67,3, +134,7,198,11,236,15,220,19,134,23,206,26,179,29,94,32,204,34,230,36,205,38,135,40,246,41,53,43,120,44,190,45, +251,46,57,48,120,49,180,50,230,51,5,53,21,54,39,55,70,56,133,57,230,58,94,60,0,62,216,63,204,65,206,67, +235,69,17,72,40,74,52,76,47,78,1,80,154,81,255,82,57,84,75,85,38,86,202,86,67,87,154,87,230,87,45,88, +68,88,25,88,194,87,41,87,57,86,12,85,156,83,199,81,177,79,128,77,34,75,140,72,209,69,19,67,122,64,5,62, +152,59,97,57,129,55,169,53,158,51,135,49,116,47,69,45,244,42,125,40,219,37,55,35,169,32,21,30,97,27,160,24, +238,21,68,19,151,16,238,13,64,11,103,8,86,5,27,2,156,254,206,250,220,246,214,242,169,238,109,234,82,230,121,226, +11,223,26,220,150,217,128,215,234,213,210,212,43,212,207,211,138,211,78,211,38,211,250,210,171,210,61,210,196,209,71,209, +175,208,230,207,0,207,13,206,2,205,248,203,4,203,6,202,242,200,221,199,183,198,115,197,43,196,217,194,108,193,254,191, +145,190,14,189,151,187,71,186,18,185,8,184,66,183,178,182,104,182,144,182,45,183,34,184,95,185,232,186,198,188,232,190, +33,193,104,195,208,197,83,200,210,202,68,205,163,207,243,209,62,212,127,214,179,216,231,218,27,221,71,223,117,225,168,227, +189,229,152,231,64,233,205,234,53,236,106,237,140,238,175,239,172,240,129,241,101,242,92,243,85,244,104,245,138,246,162,247, +206,248,39,250,150,251,15,253,149,254,27,0,178,1,87,3,213,4,56,6,194,7,111,9,15,11,175,12,101,14,47,16, +11,18,248,19,246,21,8,24,30,26,44,28,69,30,114,32,176,34,6,37,124,39,5,42,149,44,44,47,220,49,178,52, +143,55,88,58,16,61,162,63,251,65,49,68,57,70,228,71,57,73,84,74,35,75,170,75,16,76,68,76,33,76,177,75, +249,74,231,73,129,72,212,70,190,68,30,66,13,63,178,59,17,56,66,52,137,48,231,44,64,41,206,37,205,34,25,32, +162,29,129,27,157,25,211,23,30,22,81,20,87,18,108,16,142,14,123,12,77,10,58,8,44,6,29,4,49,2,90,0, +133,254,212,252,75,251,186,249,9,248,72,246,142,244,201,242,222,240,220,238,218,236,220,234,239,232,33,231,100,229,187,227, +76,226,38,225,57,224,120,223,195,222,249,221,16,221,254,219,176,218,29,217,75,215,68,213,16,211,177,208,59,206,183,203, +14,201,77,198,163,195,14,193,113,190,219,187,88,185,216,182,117,180,87,178,118,176,192,174,69,173,31,172,111,171,64,171, +137,171,69,172,102,173,223,174,169,176,139,178,54,180,193,181,106,183,10,185,96,186,124,187,119,188,93,189,62,190,14,191, +190,191,115,192,72,193,40,194,9,195,249,195,14,197,105,198,17,200,255,201,77,204,11,207,37,210,163,213,162,217,10,222, +186,226,181,231,255,236,122,242,249,247,96,253,178,2,236,7,253,12,194,17,25,22,255,25,143,29,178,32,58,35,71,37, +23,39,171,40,8,42,87,43,148,44,170,45,180,46,202,47,233,48,12,50,58,51,136,52,26,54,250,55,34,58,146,60, +66,63,50,66,106,69,201,72,50,76,161,79,236,82,228,85,152,88,8,91,4,93,151,94,220,95,192,96,81,97,194,97, +19,98,61,98,90,98,97,98,54,98,235,97,123,97,184,96,157,95,84,94,232,92,55,91,49,89,254,86,204,84,151,82, +93,80,50,78,9,76,196,73,116,71,62,69,47,67,48,65,40,63,34,61,41,59,38,57,20,55,29,53,59,51,65,49, +43,47,2,45,198,42,142,40,104,38,62,36,1,34,150,31,226,28,5,26,15,23,214,19,96,16,232,12,108,9,196,5, +253,1,58,254,126,250,176,246,189,242,191,238,211,234,241,230,25,227,100,223,208,219,107,216,99,213,173,210,24,208,138,205, +247,202,115,200,51,198,39,196,11,194,233,191,247,189,43,188,100,186,167,184,2,183,118,181,248,179,120,178,9,177,192,175, +147,174,109,173,82,172,77,171,105,170,167,169,234,168,33,168,102,167,210,166,85,166,227,165,155,165,160,165,221,165,70,166, +1,167,10,168,40,169,111,170,23,172,1,174,8,176,54,178,113,180,158,182,248,184,135,187,245,189,58,192,150,194,22,197, +171,199,98,202,62,205,57,208,69,211,61,214,15,217,201,219,85,222,145,224,132,226,44,228,126,229,138,230,120,231,88,232, +41,233,252,233,6,235,90,236,203,237,68,239,234,240,177,242,106,244,42,246,22,248,27,250,48,252,105,254,200,0,52,3, +160,5,54,8,37,11,63,14,48,17,21,20,53,23,115,26,149,29,158,32,155,35,137,38,106,41,38,44,172,46,15,49, +93,51,147,53,191,55,248,57,51,60,88,62,110,64,157,66,237,68,65,71,153,73,254,75,99,78,211,80,80,83,133,85, +66,87,200,88,27,90,3,91,154,91,244,91,221,91,84,91,119,90,46,89,135,87,172,85,126,83,231,80,38,78,96,75, +114,72,64,69,231,65,171,62,161,59,156,56,150,53,190,50,24,48,141,45,46,43,2,41,232,38,204,36,185,34,191,32, +202,30,179,28,128,26,78,24,19,22,198,19,122,17,53,15,255,12,217,10,148,8,8,6,78,3,113,0,103,253,58,250, +225,246,64,243,128,239,236,235,145,232,75,229,14,226,4,223,93,220,4,218,205,215,180,213,191,211,220,209,12,208,57,206, +58,204,38,202,43,200,55,198,51,196,53,194,75,192,110,190,163,188,242,186,111,185,37,184,11,183,18,182,49,181,91,180, +159,179,33,179,211,178,124,178,4,178,130,177,18,177,184,176,99,176,29,176,11,176,63,176,165,176,33,177,171,177,84,178, +41,179,23,180,33,181,105,182,240,183,150,185,98,187,130,189,19,192,252,194,15,198,57,201,122,204,224,207,120,211,33,215, +164,218,28,222,178,225,42,229,75,232,67,235,52,238,6,241,194,243,121,246,28,249,170,251,41,254,120,0,149,2,166,4, +166,6,133,8,113,10,130,12,145,14,173,16,2,19,110,21,200,23,86,26,96,29,198,32,89,36,26,40,241,43,180,47, +80,51,174,54,197,57,185,60,144,63,32,66,105,68,157,70,213,72,15,75,87,77,172,79,239,81,17,84,26,86,5,88, +199,89,92,91,172,92,148,93,28,94,98,94,97,94,8,94,118,93,207,92,21,92,80,91,154,90,0,90,110,89,202,88, +253,87,255,86,208,85,95,84,140,82,95,80,13,78,135,75,152,72,101,69,74,66,77,63,82,60,100,57,154,54,17,52, +225,49,223,47,229,45,3,44,52,42,91,40,137,38,193,36,225,34,245,32,44,31,132,29,234,27,89,26,215,24,116,23, +41,22,225,20,137,19,2,18,66,16,120,14,168,12,153,10,80,8,249,5,132,3,196,0,157,253,12,250,57,246,75,242, +53,238,245,233,174,229,111,225,83,221,110,217,160,213,227,209,102,206,53,203,52,200,102,197,213,194,126,192,64,190,236,187, +137,185,49,183,213,180,136,178,118,176,113,174,90,172,105,170,178,168,46,167,6,166,56,165,160,164,96,164,113,164,153,164, +236,164,139,165,70,166,11,167,244,167,241,168,0,170,71,171,205,172,129,174,88,176,78,178,136,180,31,183,236,185,228,188, +20,192,78,195,80,198,9,201,120,203,161,205,140,207,43,209,120,210,149,211,159,212,162,213,153,214,136,215,153,216,215,217, +12,219,35,220,60,221,86,222,114,223,175,224,0,226,63,227,123,228,209,229,67,231,207,232,113,234,61,236,97,238,210,240, +101,243,26,246,3,249,0,252,248,254,232,1,199,4,145,7,96,10,79,13,97,16,110,19,88,22,58,25,72,28,119,31, +151,34,147,37,124,40,88,43,34,46,202,48,59,51,124,53,167,55,186,57,172,59,146,61,130,63,119,65,111,67,87,69, +13,71,148,72,245,73,25,75,222,75,56,76,41,76,214,75,99,75,198,74,246,73,3,73,238,71,184,70,88,69,174,67, +203,65,233,63,235,61,146,59,246,56,61,54,90,51,89,48,94,45,114,42,148,39,216,36,90,34,41,32,69,30,190,28, +155,27,177,26,220,25,32,25,102,24,143,23,145,22,64,21,111,19,77,17,6,15,131,12,193,9,203,6,159,3,90,0, +20,253,181,249,65,246,203,242,80,239,222,235,147,232,94,229,45,226,9,223,11,220,81,217,198,214,66,212,254,209,64,208, +220,206,164,205,182,204,9,204,122,203,23,203,207,202,115,202,3,202,143,201,6,201,87,200,124,199,128,198,126,197,118,196, +80,195,46,194,62,193,127,192,231,191,142,191,136,191,207,191,109,192,130,193,249,194,164,196,146,198,229,200,125,203,49,206, +1,209,227,211,225,214,29,218,123,221,192,224,236,227,20,231,52,234,84,237,100,240,45,243,167,245,236,247,249,249,196,251, +81,253,153,254,131,255,10,0,73,0,91,0,71,0,23,0,229,255,212,255,17,0,175,0,143,1,162,2,5,4,192,5, +206,7,67,10,12,13,239,15,226,18,244,21,28,25,63,28,59,31,6,34,174,36,51,39,138,41,192,43,197,45,145,47, +78,49,10,51,160,52,26,54,145,55,253,56,110,58,233,59,57,61,84,62,97,63,95,64,51,65,194,65,250,65,0,66, +1,66,250,65,243,65,10,66,54,66,125,66,232,66,66,67,109,67,141,67,143,67,54,67,116,66,72,65,177,63,207,61, +177,59,78,57,180,54,6,52,93,49,198,46,64,44,224,41,196,39,216,37,3,36,77,34,177,32,42,31,197,29,115,28, +30,27,215,25,147,24,58,23,224,21,150,20,79,19,39,18,45,17,65,16,102,15,168,14,232,13,20,13,46,12,41,11, +250,9,158,8,8,7,62,5,67,3,251,0,126,254,11,252,149,249,231,246,23,244,88,241,179,238,25,236,133,233,240,230, +80,228,165,225,243,222,65,220,156,217,10,215,123,212,237,209,114,207,4,205,174,202,157,200,208,198,30,197,136,195,35,194, +225,192,170,191,122,190,87,189,90,188,148,187,252,186,133,186,41,186,229,185,207,185,243,185,75,186,205,186,106,187,23,188, +250,188,48,190,156,191,33,193,206,194,170,196,159,198,148,200,136,202,140,204,136,206,95,208,36,210,216,211,88,213,180,214, +27,216,130,217,226,218,68,220,152,221,213,222,7,224,39,225,76,226,150,227,229,228,23,230,56,231,77,232,91,233,98,234, +71,235,32,236,50,237,117,238,183,239,18,241,158,242,81,244,52,246,81,248,156,250,21,253,152,255,2,2,116,4,6,7, +153,9,27,12,132,14,206,16,14,19,71,21,96,23,102,25,89,27,30,29,213,30,183,32,188,34,206,36,229,38,241,40, +247,42,11,45,9,47,194,48,56,50,125,51,141,52,85,53,205,53,12,54,12,54,180,53,28,53,114,52,175,51,218,50, +15,50,74,49,131,48,206,47,48,47,144,46,211,45,225,44,192,43,133,42,25,41,108,39,135,37,93,35,239,32,112,30, +236,27,81,25,195,22,103,20,41,18,17,16,73,14,190,12,70,11,240,9,189,8,92,7,170,5,227,3,32,2,61,0, +45,254,248,251,157,249,56,247,219,244,126,242,63,240,58,238,61,236,39,234,22,232,10,230,226,227,178,225,162,223,168,221, +162,219,144,217,162,215,238,213,84,212,205,210,120,209,76,208,52,207,49,206,66,205,119,204,234,203,132,203,50,203,20,203, +43,203,86,203,141,203,217,203,58,204,189,204,96,205,31,206,9,207,21,208,43,209,86,210,159,211,13,213,195,214,199,216, +10,219,159,221,132,224,163,227,12,231,188,234,153,238,161,242,179,246,146,250,63,254,185,1,221,4,194,7,127,10,220,12, +202,14,125,16,239,17,13,19,248,19,199,20,135,21,74,22,9,23,190,23,113,24,25,25,190,25,118,26,54,27,240,27, +181,28,139,29,131,30,186,31,25,33,145,34,84,36,116,38,185,40,236,42,250,44,232,46,204,48,142,50,249,51,250,52, +140,53,180,53,156,53,114,53,61,53,5,53,223,52,215,52,250,52,63,53,146,53,221,53,20,54,73,54,132,54,154,54, +108,54,33,54,227,53,169,53,103,53,40,53,7,53,39,53,116,53,190,53,5,54,79,54,115,54,86,54,248,53,70,53, +31,52,132,50,131,48,26,46,89,43,100,40,80,37,46,34,20,31,247,27,193,24,138,21,107,18,86,15,93,12,143,9, +172,6,178,3,252,0,145,254,62,252,41,250,124,248,29,247,13,246,87,245,209,244,93,244,242,243,120,243,249,242,150,242, +70,242,234,241,90,241,144,240,178,239,204,238,188,237,133,236,45,235,154,233,204,231,219,229,194,227,130,225,34,223,165,220, +26,218,134,215,214,212,52,210,233,207,231,205,246,203,12,202,73,200,232,198,247,197,43,197,105,196,220,195,121,195,26,195, +174,194,31,194,129,193,22,193,215,192,139,192,40,192,183,191,68,191,233,190,160,190,95,190,67,190,79,190,107,190,152,190, +207,190,16,191,134,191,50,192,254,192,13,194,122,195,53,197,84,199,229,201,167,204,129,207,165,210,30,214,165,217,242,220, +0,224,0,227,252,229,191,232,46,235,103,237,147,239,175,241,161,243,99,245,14,247,178,248,70,250,200,251,41,253,91,254, +123,255,160,0,175,1,145,2,99,3,72,4,69,5,86,6,141,7,233,8,67,10,155,11,21,13,169,14,57,16,206,17, +106,19,230,20,52,22,107,23,166,24,6,26,122,27,188,28,199,29,237,30,95,32,251,33,156,35,76,37,31,39,255,40, +199,42,118,44,14,46,138,47,227,48,11,50,5,51,228,51,144,52,234,52,15,53,14,53,209,52,113,52,18,52,165,51, +30,51,134,50,212,49,23,49,75,48,49,47,193,45,47,44,116,42,124,40,99,38,56,36,255,33,215,31,202,29,193,27, +179,25,164,23,178,21,255,19,102,18,175,16,234,14,35,13,54,11,29,9,247,6,192,4,94,2,204,255,31,253,94,250, +119,247,116,244,107,241,87,238,39,235,231,231,137,228,9,225,149,221,68,218,1,215,221,211,240,208,57,206,203,203,186,201, +241,199,97,198,20,197,252,195,249,194,21,194,105,193,251,192,183,192,141,192,126,192,148,192,205,192,18,193,74,193,133,193, +249,193,171,194,113,195,67,196,61,197,93,198,151,199,249,200,132,202,50,204,0,206,230,207,228,209,22,212,154,214,118,217, +151,220,229,223,109,227,78,231,132,235,229,239,89,244,234,248,157,253,85,2,218,6,21,11,8,15,169,18,237,21,228,24, +148,27,237,29,245,31,198,33,104,35,221,36,34,38,34,39,219,39,116,40,16,41,154,41,7,42,132,42,66,43,68,44, +123,45,220,46,94,48,248,49,169,51,119,53,95,55,72,57,23,59,211,60,147,62,85,64,13,66,190,67,94,69,220,70, +72,72,179,73,14,75,60,76,45,77,228,77,98,78,160,78,151,78,72,78,173,77,217,76,222,75,178,74,94,73,33,72, +2,71,213,69,162,68,133,67,108,66,99,65,131,64,166,63,186,62,215,61,220,60,161,59,69,58,237,56,155,55,94,54, +51,53,1,52,198,50,124,49,16,48,143,46,0,45,50,43,16,41,204,38,117,36,212,33,215,30,177,27,117,24,6,21, +109,17,202,13,25,10,113,6,250,2,172,255,127,252,134,249,186,246,30,244,224,241,247,239,53,238,162,236,66,235,239,233, +179,232,162,231,155,230,134,229,100,228,42,227,208,225,91,224,209,222,40,221,58,219,255,216,154,214,6,212,51,209,86,206, +131,203,128,200,111,197,180,194,59,192,207,189,130,187,96,185,98,183,167,181,62,180,13,179,24,178,110,177,245,176,145,176, +81,176,82,176,139,176,209,176,31,177,126,177,216,177,29,178,97,178,158,178,190,178,216,178,255,178,26,179,16,179,233,178, +182,178,142,178,137,178,165,178,205,178,6,179,119,179,58,180,89,181,213,182,136,184,66,186,21,188,34,190,96,192,200,194, +102,197,53,200,42,203,70,206,147,209,27,213,183,216,46,220,137,223,217,226,246,229,228,232,190,235,106,238,240,240,126,243, +5,246,107,248,204,250,49,253,148,255,254,1,89,4,167,6,4,9,95,11,163,13,228,15,12,18,10,20,16,22,33,24, +25,26,20,28,42,30,72,32,119,34,198,36,44,39,169,41,28,44,91,46,116,48,117,50,58,52,190,53,24,55,80,56, +110,57,109,58,59,59,224,59,68,60,70,60,24,60,240,59,181,59,82,59,212,58,71,58,168,57,217,56,195,55,137,54, +90,53,47,52,1,51,219,49,215,48,14,48,100,47,183,46,36,46,173,45,33,45,142,44,18,44,114,43,150,42,165,41, +148,40,88,39,25,38,205,36,79,35,172,33,224,31,208,29,145,27,51,25,135,22,121,19,25,16,83,12,34,8,190,3, +79,255,199,250,41,246,132,241,202,236,18,232,143,227,52,223,238,218,228,214,37,211,157,207,77,204,57,201,108,198,250,195, +193,193,159,191,202,189,76,188,217,186,83,185,205,183,61,182,180,180,66,179,209,177,105,176,36,175,249,173,233,172,242,171, +10,171,109,170,100,170,232,170,248,171,171,173,232,175,192,178,104,182,173,186,58,191,21,196,66,201,165,206,56,212,225,217, +130,223,23,229,150,234,232,239,5,245,206,249,48,254,58,2,223,5,11,9,210,11,64,14,75,16,248,17,73,19,76,20, +40,21,238,21,166,22,112,23,86,24,103,25,218,26,191,28,248,30,129,33,99,36,142,39,240,42,114,46,3,50,158,53, +28,57,81,60,77,63,254,65,32,68,197,69,51,71,84,72,240,72,18,73,225,72,101,72,172,71,219,70,7,70,43,69, +71,68,86,67,103,66,162,65,22,65,152,64,25,64,183,63,113,63,51,63,15,63,19,63,54,63,118,63,213,63,93,64, +23,65,234,65,178,66,104,67,13,68,153,68,252,68,10,69,198,68,123,68,62,68,215,67,39,67,57,66,32,65,243,63, +167,62,42,61,151,59,252,57,53,56,51,54,14,52,203,49,98,47,206,44,16,42,44,39,47,36,44,33,58,30,84,27, +131,24,240,21,165,19,113,17,47,15,234,12,211,10,253,8,65,7,128,5,206,3,35,2,111,0,196,254,12,253,33,251, +42,249,76,247,114,245,158,243,203,241,188,239,102,237,246,234,93,232,107,229,48,226,223,222,129,219,255,215,94,212,194,208, +61,205,218,201,178,198,202,195,23,193,185,190,202,188,66,187,36,186,111,185,5,185,223,184,239,184,243,184,216,184,202,184, +205,184,182,184,119,184,30,184,186,183,86,183,229,182,65,182,79,181,43,180,9,179,239,177,196,176,144,175,94,174,53,173, +61,172,135,171,246,170,129,170,52,170,246,169,205,169,230,169,78,170,8,171,27,172,101,173,218,174,172,176,242,178,133,181, +72,184,51,187,69,190,143,193,11,197,154,200,47,204,205,207,104,211,247,214,124,218,233,221,40,225,74,228,103,231,102,234, +45,237,216,239,114,242,210,244,235,246,224,248,199,250,170,252,171,254,218,0,12,3,43,5,106,7,242,9,155,12,82,15, +45,18,7,21,194,23,149,26,143,29,111,32,58,35,38,38,50,41,78,44,114,47,116,50,60,53,221,55,92,58,166,60, +157,62,60,64,143,65,99,66,131,66,37,66,106,65,32,64,92,62,102,60,52,58,240,55,253,53,68,52,139,50,1,49, +178,47,120,46,108,45,163,44,16,44,165,43,58,43,176,42,64,42,0,42,178,41,82,41,0,41,164,40,47,40,173,39, +22,39,80,38,69,37,238,35,106,34,175,32,126,30,212,27,221,24,144,21,214,17,207,13,178,9,151,5,123,1,72,253, +2,249,211,244,236,240,80,237,209,233,60,230,163,226,81,223,82,220,97,217,98,214,139,211,253,208,155,206,86,204,44,202, +24,200,51,198,140,196,234,194,29,193,83,191,180,189,50,188,202,186,144,185,153,184,4,184,243,183,100,184,65,185,162,186, +189,188,158,191,44,195,95,199,30,204,40,209,97,214,208,219,92,225,236,230,133,236,24,242,125,247,152,252,91,1,199,5, +197,9,58,13,46,16,156,18,100,20,177,21,199,22,152,23,53,24,220,24,91,25,144,25,227,25,121,26,35,27,12,28, +97,29,3,31,244,32,69,35,227,37,213,40,248,43,247,46,201,49,122,52,209,54,209,56,147,58,230,59,201,60,111,61, +169,61,68,61,101,60,32,59,119,57,138,55,84,53,210,50,60,48,161,45,211,42,222,39,255,36,95,34,27,32,73,30, +250,28,55,28,248,27,37,28,195,28,219,29,92,31,58,33,117,35,242,37,131,40,4,43,90,45,112,47,73,49,228,50, +36,52,243,52,91,53,107,53,51,53,203,52,53,52,115,51,160,50,199,49,222,48,245,47,12,47,255,45,197,44,104,43, +219,41,21,40,10,38,164,35,247,32,68,30,166,27,20,25,146,22,69,20,76,18,153,16,19,15,204,13,201,12,218,11, +230,10,246,9,245,8,197,7,118,6,47,5,236,3,133,2,2,1,154,255,98,254,72,253,69,252,60,251,8,250,203,248, +150,247,36,246,78,244,45,242,201,239,31,237,49,234,255,230,194,227,171,224,156,221,153,218,226,215,127,213,95,211,169,209, +101,208,93,207,99,206,119,205,173,204,249,203,65,203,152,202,25,202,149,201,246,200,108,200,4,200,175,199,112,199,53,199, +224,198,122,198,244,197,24,197,209,195,39,194,53,192,33,190,249,187,202,185,173,183,169,181,215,179,124,178,161,177,11,177, +183,176,217,176,127,177,142,178,212,179,52,181,213,182,224,184,81,187,37,190,86,193,193,196,89,200,53,204,62,208,74,212, +100,216,163,220,202,224,125,228,184,231,170,234,61,237,56,239,144,240,98,241,225,241,66,242,131,242,165,242,231,242,117,243, +67,244,96,245,216,246,128,248,70,250,85,252,173,254,30,1,163,3,80,6,8,9,169,11,85,14,27,17,214,19,151,22, +132,25,114,28,35,31,156,33,229,35,222,37,96,39,74,40,141,40,68,40,145,39,123,38,246,36,27,35,47,33,100,31, +206,29,155,28,215,27,79,27,247,26,238,26,32,27,119,27,249,27,112,28,167,28,195,28,227,28,253,28,20,29,24,29, +250,28,229,28,244,28,249,28,218,28,147,28,34,28,133,27,157,26,76,25,177,23,206,21,116,19,183,16,177,13,65,10, +140,6,241,2,111,255,229,251,90,248,210,244,114,241,108,238,152,235,194,232,18,230,170,227,123,225,112,223,132,221,215,219, +132,218,94,217,55,216,28,215,20,214,31,213,79,212,153,211,240,210,99,210,243,209,145,209,76,209,36,209,19,209,51,209, +169,209,129,210,200,211,122,213,129,215,231,217,206,220,37,224,189,227,131,231,130,235,196,239,92,244,80,249,119,254,169,3, +215,8,251,13,13,19,249,23,153,28,202,32,118,36,170,39,144,42,41,45,80,47,49,49,7,51,168,52,255,53,87,55, +191,56,35,58,183,59,125,61,63,63,8,65,217,66,116,68,226,69,82,71,145,72,113,73,10,74,105,74,152,74,167,74, +125,74,23,74,148,73,226,72,222,71,124,70,173,68,148,66,91,64,196,61,180,58,114,55,14,52,120,48,220,44,58,41, +124,37,205,33,53,30,160,26,69,23,89,20,218,17,201,15,19,14,176,12,194,11,50,11,193,10,117,10,79,10,54,10, +57,10,87,10,105,10,120,10,167,10,255,10,122,11,245,11,100,12,216,12,61,13,117,13,158,13,186,13,157,13,64,13, +168,12,211,11,231,10,243,9,210,8,145,7,96,6,58,5,18,4,246,2,221,1,188,0,171,255,161,254,131,253,118,252, +136,251,142,250,145,249,195,248,25,248,153,247,114,247,129,247,133,247,131,247,139,247,147,247,155,247,140,247,84,247,0,247, +118,246,163,245,202,244,240,243,206,242,123,241,50,240,207,238,88,237,15,236,201,234,65,233,154,231,230,229,15,228,42,226, +80,224,124,222,185,220,11,219,114,217,252,215,152,214,74,213,64,212,96,211,129,210,214,209,102,209,6,209,204,208,181,208, +140,208,104,208,97,208,74,208,38,208,11,208,238,207,219,207,196,207,111,207,234,206,104,206,209,205,252,204,252,203,251,202, +246,201,214,200,175,199,166,198,190,197,19,197,193,196,168,196,202,196,87,197,45,198,59,199,160,200,29,202,137,203,66,205, +88,207,149,209,32,212,12,215,36,218,118,221,26,225,218,228,147,232,63,236,202,239,54,243,104,246,28,249,75,251,36,253, +172,254,202,255,129,0,226,0,13,1,42,1,73,1,111,1,179,1,28,2,168,2,82,3,10,4,228,4,24,6,148,7, +34,9,206,10,179,12,197,14,6,17,110,19,207,21,33,24,122,26,186,28,179,30,85,32,159,33,145,34,16,35,254,34, +110,34,148,33,122,32,16,31,94,29,131,27,146,25,153,23,177,21,233,19,72,18,228,16,198,15,233,14,76,14,247,13, +240,13,50,14,160,14,27,15,142,15,233,15,83,16,235,16,123,17,221,17,36,18,49,18,234,17,127,17,208,16,164,15, +20,14,18,12,100,9,36,6,106,2,50,254,175,249,244,244,240,239,214,234,196,229,183,224,250,219,193,215,224,211,77,208, +57,205,192,202,227,200,127,199,117,198,202,197,121,197,121,197,230,197,218,198,58,200,225,201,199,203,255,205,141,208,87,211, +77,214,118,217,212,220,92,224,251,227,160,231,80,235,9,239,165,242,17,246,91,249,148,252,180,255,187,2,187,5,186,8, +163,11,141,14,155,17,174,20,162,23,148,26,165,29,190,32,203,35,204,38,204,41,217,44,247,47,31,51,78,54,158,57, +35,61,197,64,97,68,247,71,144,75,23,79,104,82,95,85,233,87,252,89,166,91,7,93,8,94,138,94,186,94,192,94, +108,94,181,93,205,92,197,91,160,90,93,89,222,87,31,86,27,84,158,81,182,78,181,75,165,72,92,69,214,65,41,62, +128,58,242,54,115,51,253,47,162,44,107,41,101,38,129,35,155,32,189,29,17,27,127,24,199,21,231,18,26,16,122,13, +7,11,232,8,66,7,246,5,218,4,240,3,54,3,157,2,23,2,158,1,40,1,158,0,231,255,23,255,73,254,139,253, +228,252,63,252,157,251,46,251,226,250,144,250,104,250,106,250,77,250,43,250,37,250,247,249,141,249,27,249,173,248,50,248, +159,247,246,246,97,246,248,245,165,245,98,245,21,245,162,244,56,244,246,243,141,243,208,242,238,241,10,241,19,240,255,238, +227,237,225,236,3,236,43,235,89,234,181,233,69,233,224,232,128,232,32,232,149,231,223,230,33,230,75,229,81,228,63,227, +19,226,239,224,6,224,37,223,19,222,0,221,31,220,106,219,224,218,119,218,36,218,219,217,135,217,63,217,32,217,10,217, +242,216,243,216,217,216,126,216,34,216,219,215,131,215,24,215,145,214,204,213,202,212,165,211,90,210,220,208,61,207,159,205, +4,204,95,202,185,200,41,199,203,197,197,196,41,196,226,195,214,195,17,196,173,196,156,197,188,198,15,200,190,201,234,203, +114,206,2,209,141,211,96,214,129,217,188,220,253,223,54,227,110,230,217,233,70,237,99,240,98,243,105,246,54,249,197,251, +47,254,94,0,92,2,48,4,182,5,254,6,38,8,15,9,190,9,92,10,221,10,56,11,138,11,222,11,54,12,177,12, +80,13,227,13,100,14,8,15,191,15,87,16,236,16,154,17,58,18,192,18,34,19,47,19,247,18,167,18,31,18,63,17, +30,16,207,14,109,13,12,12,146,10,237,8,64,7,183,5,76,4,220,2,97,1,248,255,165,254,95,253,55,252,49,251, +88,250,206,249,136,249,96,249,107,249,198,249,92,250,15,251,216,251,180,252,144,253,82,254,238,254,75,255,79,255,251,254, +64,254,2,253,83,251,50,249,122,246,61,243,173,239,215,235,223,231,238,227,251,223,18,220,102,216,15,213,35,210,181,207, +180,205,24,204,14,203,184,202,255,202,189,203,226,204,131,206,193,208,137,211,163,214,8,218,193,221,162,225,160,229,204,233, +251,237,14,242,33,246,25,250,203,253,73,1,159,4,212,7,228,10,150,13,220,15,242,17,211,19,117,21,15,23,155,24, +7,26,162,27,151,29,196,31,51,34,234,36,227,39,56,43,223,46,171,50,155,54,176,58,212,62,236,66,215,70,111,74, +155,77,115,80,33,83,135,85,99,87,220,88,48,90,84,91,76,92,64,93,27,94,178,94,0,95,254,94,130,94,118,93, +0,92,64,90,8,88,85,85,99,82,64,79,251,75,202,72,181,69,186,66,253,63,104,61,221,58,109,56,252,53,131,51, +66,49,11,47,139,44,243,41,114,39,205,36,244,33,249,30,215,27,171,24,163,21,189,18,249,15,106,13,19,11,1,9, +54,7,106,5,98,3,62,1,29,255,223,252,129,250,41,248,233,245,179,243,143,241,144,239,191,237,36,236,216,234,225,233, +38,233,182,232,170,232,185,232,148,232,90,232,50,232,254,231,174,231,88,231,33,231,16,231,11,231,28,231,104,231,209,231, +80,232,12,233,231,233,194,234,194,235,222,236,231,237,235,238,237,239,206,240,154,241,90,242,242,242,73,243,91,243,71,243, +26,243,170,242,231,241,240,240,210,239,141,238,45,237,196,235,105,234,7,233,158,231,117,230,143,229,163,228,207,227,90,227, +40,227,22,227,40,227,86,227,151,227,225,227,42,228,114,228,163,228,184,228,211,228,230,228,218,228,191,228,149,228,95,228, +75,228,76,228,37,228,206,227,73,227,158,226,243,225,56,225,65,224,38,223,20,222,20,221,38,220,70,219,134,218,9,218, +190,217,147,217,176,217,31,218,185,218,118,219,86,220,75,221,69,222,44,223,232,223,123,224,243,224,91,225,207,225,86,226, +215,226,98,227,27,228,248,228,251,229,72,231,222,232,176,234,203,236,35,239,176,241,130,244,125,247,108,250,66,253,231,255, +86,2,168,4,187,6,95,8,166,9,163,10,102,11,15,12,127,12,138,12,88,12,15,12,169,11,37,11,120,10,164,9, +193,8,199,7,160,6,65,5,149,3,183,1,211,255,211,253,176,251,158,249,171,247,216,245,66,244,241,242,215,241,241,240, +68,240,221,239,171,239,122,239,63,239,4,239,196,238,132,238,71,238,3,238,208,237,199,237,215,237,1,238,92,238,231,238, +150,239,91,240,42,241,241,241,140,242,249,242,65,243,54,243,202,242,27,242,37,241,6,240,251,238,225,237,138,236,50,235, +6,234,239,232,236,231,21,231,96,230,183,229,28,229,172,228,114,228,100,228,172,228,105,229,118,230,199,231,130,233,153,235, +210,237,51,240,225,242,194,245,150,248,88,251,19,254,163,0,251,2,64,5,108,7,104,9,85,11,81,13,57,15,6,17, +245,18,16,21,31,23,27,25,30,27,44,29,95,31,203,33,73,36,188,38,65,41,223,43,172,46,198,49,4,53,76,56, +183,59,23,63,70,66,121,69,190,72,216,75,168,78,26,81,34,83,220,84,88,86,150,87,168,88,147,89,91,90,20,91, +189,91,69,92,132,92,95,92,236,91,47,91,238,89,48,88,51,86,246,83,109,81,195,78,14,76,83,73,187,70,90,68, +28,66,13,64,80,62,205,60,61,59,132,57,156,55,108,53,236,50,43,48,40,45,231,41,116,38,227,34,104,31,36,28, +255,24,246,21,40,19,144,16,29,14,193,11,101,9,9,7,177,4,81,2,217,255,58,253,129,250,232,247,120,245,5,243, +153,240,87,238,50,236,45,234,83,232,132,230,164,228,200,226,247,224,16,223,15,221,32,219,77,217,96,215,89,213,119,211, +197,209,48,208,211,206,211,205,57,205,250,204,0,205,78,205,226,205,137,206,57,207,56,208,141,209,15,211,189,212,133,214, +61,216,251,217,206,219,130,221,248,222,91,224,197,225,23,227,26,228,179,228,235,228,214,228,132,228,14,228,129,227,197,226, +210,225,220,224,246,223,255,222,6,222,64,221,151,220,229,219,61,219,184,218,104,218,103,218,168,218,6,219,132,219,51,220, +36,221,86,222,155,223,224,224,87,226,252,227,136,229,236,230,81,232,171,233,214,234,224,235,197,236,91,237,167,237,202,237, +174,237,73,237,196,236,37,236,86,235,87,234,43,233,243,231,218,230,212,229,218,228,38,228,212,227,189,227,198,227,12,228, +189,228,201,229,1,231,113,232,45,234,14,236,1,238,23,240,71,242,121,244,160,246,188,248,217,250,228,252,195,254,119,0, +245,1,61,3,105,4,77,5,189,5,238,5,1,6,242,5,225,5,198,5,153,5,136,5,152,5,193,5,29,6,139,6, +231,6,82,7,202,7,43,8,123,8,169,8,164,8,127,8,41,8,148,7,212,6,214,5,132,4,243,2,48,1,66,255, +58,253,12,251,193,248,116,246,14,244,115,241,186,238,1,236,96,233,251,230,228,228,22,227,152,225,118,224,187,223,125,223, +194,223,82,224,255,224,210,225,182,226,122,227,22,228,139,228,204,228,232,228,246,228,2,229,18,229,24,229,14,229,240,228, +161,228,63,228,3,228,217,227,172,227,149,227,125,227,119,227,205,227,89,228,243,228,239,229,110,231,56,233,70,235,184,237, +149,240,183,243,233,246,24,250,67,253,77,0,42,3,211,5,63,8,149,10,221,12,234,14,194,16,123,18,11,20,132,21, +4,23,155,24,74,26,234,27,137,29,97,31,101,33,126,35,211,37,88,40,0,43,251,45,51,49,112,52,195,55,46,59, +140,62,199,65,199,68,133,71,18,74,95,76,86,78,239,79,29,81,243,81,149,82,14,83,105,83,175,83,239,83,81,84, +205,84,35,85,80,85,102,85,59,85,196,84,47,84,125,83,151,82,149,81,137,80,82,79,230,77,91,76,183,74,18,73, +141,71,23,70,138,68,207,66,215,64,192,62,157,60,47,58,106,55,128,52,96,49,251,45,132,42,7,39,136,35,46,32, +238,28,180,25,152,22,157,19,186,16,230,13,13,11,81,8,229,5,164,3,92,1,19,255,228,252,249,250,77,249,168,247, +1,246,114,244,0,243,163,241,66,240,202,238,75,237,183,235,0,234,74,232,159,230,222,228,21,227,99,225,196,223,53,222, +164,220,1,219,102,217,218,215,41,214,72,212,125,210,254,208,179,207,104,206,13,205,191,203,170,202,219,201,62,201,206,200, +156,200,176,200,13,201,175,201,135,202,141,203,193,204,24,206,142,207,27,209,183,210,97,212,5,214,122,215,204,216,40,218, +138,219,187,220,157,221,73,222,236,222,149,223,76,224,13,225,195,225,110,226,24,227,176,227,42,228,140,228,208,228,243,228, +249,228,236,228,225,228,225,228,235,228,35,229,137,229,242,229,116,230,60,231,57,232,85,233,148,234,247,235,111,237,219,238, +28,240,65,241,84,242,76,243,47,244,245,244,121,245,186,245,224,245,1,246,21,246,21,246,13,246,11,246,17,246,30,246, +53,246,93,246,150,246,229,246,107,247,32,248,236,248,4,250,166,251,151,253,152,255,192,1,31,4,155,6,29,9,136,11, +197,13,197,15,129,17,6,19,65,20,19,21,146,21,202,21,159,21,42,21,143,20,206,19,232,18,217,17,142,16,247,14, +15,13,242,10,199,8,111,6,212,3,44,1,159,254,47,252,220,249,166,247,160,245,243,243,145,242,93,241,96,240,171,239, +59,239,247,238,175,238,85,238,2,238,199,237,145,237,65,237,222,236,125,236,19,236,149,235,4,235,67,234,94,233,134,232, +166,231,147,230,107,229,58,228,230,226,97,225,182,223,23,222,161,220,42,219,150,217,10,216,182,214,172,213,223,212,66,212, +224,211,180,211,180,211,255,211,164,212,136,213,153,214,232,215,144,217,125,219,126,221,163,223,12,226,149,228,37,231,175,233, +20,236,111,238,202,240,235,242,213,244,166,246,68,248,202,249,103,251,8,253,192,254,182,0,221,2,67,5,237,7,174,10, +140,13,175,16,21,20,180,23,122,27,72,31,45,35,64,39,103,43,121,47,102,51,79,55,62,59,251,62,90,66,106,69, +53,72,178,74,197,76,84,78,106,79,27,80,89,80,50,80,199,79,48,79,136,78,238,77,104,77,242,76,159,76,137,76, +158,76,190,76,2,77,102,77,185,77,10,78,113,78,201,78,15,79,74,79,79,79,36,79,234,78,141,78,255,77,69,77, +79,76,26,75,162,73,231,71,255,69,213,67,96,65,211,62,54,60,115,57,155,54,179,51,214,48,73,46,14,44,6,42, +67,40,193,38,91,37,8,36,180,34,66,33,175,31,1,30,48,28,40,26,231,23,127,21,233,18,36,16,68,13,48,10, +231,6,160,3,82,0,230,252,127,249,9,246,99,242,211,238,116,235,28,232,239,228,23,226,115,223,250,220,189,218,182,216, +231,214,75,213,203,211,100,210,48,209,34,208,24,207,27,206,35,205,5,204,232,202,31,202,129,201,199,200,23,200,177,199, +150,199,174,199,225,199,30,200,86,200,142,200,228,200,96,201,238,201,144,202,72,203,18,204,239,204,190,205,116,206,87,207, +99,208,83,209,18,210,139,210,179,210,181,210,123,210,213,209,226,208,187,207,102,206,15,205,192,203,119,202,109,201,181,200, +61,200,20,200,51,200,136,200,32,201,252,201,21,203,125,204,50,206,20,208,7,210,3,212,31,214,94,216,170,218,9,221, +123,223,227,225,69,228,175,230,249,232,0,235,217,236,164,238,76,240,197,241,40,243,104,244,107,245,88,246,92,247,88,248, +64,249,69,250,132,251,229,252,66,254,165,255,44,1,182,2,52,4,207,5,122,7,254,8,102,10,186,11,228,12,229,13, +182,14,84,15,209,15,25,16,0,16,131,15,194,14,200,13,130,12,244,10,64,9,92,7,70,5,56,3,56,1,36,255, +32,253,68,251,129,249,218,247,64,246,177,244,89,243,44,242,2,241,253,239,39,239,92,238,161,237,14,237,181,236,151,236, +139,236,136,236,170,236,229,236,32,237,76,237,67,237,255,236,165,236,52,236,163,235,11,235,104,234,159,233,193,232,16,232, +173,231,122,231,110,231,177,231,70,232,30,233,68,234,181,235,93,237,67,239,105,241,196,243,93,246,60,249,63,252,64,255, +75,2,98,5,95,8,82,11,84,14,35,17,147,19,187,21,124,23,202,24,229,25,198,26,76,27,148,27,167,27,131,27, +72,27,246,26,147,26,65,26,3,26,229,25,3,26,98,26,43,27,109,28,222,29,119,31,122,33,221,35,123,38,84,41, +83,44,106,47,165,50,233,53,248,56,182,59,50,62,101,64,28,66,66,67,225,67,254,67,196,67,91,67,152,66,111,65, +33,64,195,62,85,61,225,59,85,58,182,56,49,55,208,53,134,52,98,51,114,50,175,49,14,49,139,48,46,48,8,48, +45,48,147,48,24,49,219,49,1,51,76,52,111,53,75,54,182,54,150,54,8,54,23,53,172,51,196,49,130,47,18,45, +116,42,176,39,234,36,46,34,116,31,205,28,60,26,201,23,122,21,48,19,231,16,201,14,200,12,198,10,211,8,0,7, +103,5,11,4,197,2,157,1,176,0,215,255,11,255,90,254,157,253,209,252,1,252,254,250,183,249,83,248,215,246,62,245, +139,243,183,241,213,239,225,237,208,235,213,233,1,232,60,230,162,228,67,227,228,225,129,224,60,223,248,221,148,220,45,219, +218,217,152,216,99,215,55,214,20,213,31,212,112,211,222,210,95,210,19,210,229,209,204,209,253,209,117,210,246,210,101,211, +202,211,54,212,184,212,80,213,17,214,249,214,227,215,213,216,228,217,244,218,2,220,17,221,248,221,174,222,79,223,215,223, +51,224,88,224,69,224,19,224,185,223,31,223,91,222,129,221,141,220,149,219,162,218,176,217,201,216,240,215,54,215,183,214, +91,214,24,214,14,214,66,214,160,214,41,215,206,215,152,216,155,217,210,218,55,220,207,221,168,223,217,225,71,228,180,230, +25,233,115,235,182,237,3,240,102,242,158,244,130,246,34,248,141,249,198,250,200,251,182,252,189,253,201,254,201,255,232,0, +47,2,113,3,172,4,5,6,116,7,224,8,90,10,250,11,149,13,251,14,50,16,74,17,73,18,42,19,216,19,55,20, +68,20,24,20,198,19,30,19,244,17,107,16,157,14,108,12,211,9,221,6,153,3,51,0,165,252,222,248,27,245,119,241, +223,237,146,234,153,231,174,228,244,225,165,223,162,221,227,219,122,218,83,217,107,216,206,215,106,215,34,215,221,214,172,214, +158,214,131,214,60,214,244,213,200,213,174,213,149,213,107,213,41,213,234,212,201,212,215,212,10,213,94,213,242,213,230,214, +79,216,38,218,54,220,107,222,245,224,222,227,239,230,13,234,66,237,165,240,62,244,231,247,117,251,230,254,68,2,130,5, +140,8,122,11,116,14,102,17,47,20,197,22,5,25,0,27,251,28,241,30,188,32,112,34,3,36,105,37,199,38,34,40, +113,41,229,42,156,44,118,46,90,48,64,50,49,52,64,54,126,56,222,58,34,61,56,63,75,65,83,67,45,69,237,70, +134,72,239,73,99,75,198,76,211,77,177,78,113,79,238,79,64,80,114,80,107,80,63,80,227,79,53,79,84,78,73,77, +2,76,154,74,50,73,198,71,92,70,252,68,165,67,62,66,176,64,37,63,193,61,87,60,197,58,28,57,107,55,210,53, +100,52,228,50,24,49,56,47,154,45,28,44,113,42,188,40,41,39,130,37,189,35,1,34,66,32,127,30,216,28,63,27, +162,25,32,24,208,22,171,21,147,20,143,19,189,18,9,18,93,17,222,16,129,16,30,16,199,15,113,15,249,14,108,14, +197,13,240,12,1,12,231,10,114,9,161,7,135,5,48,3,154,0,196,253,196,250,170,247,104,244,24,241,217,237,159,234, +93,231,28,228,235,224,235,221,40,219,145,216,37,214,249,211,35,210,158,208,81,207,70,206,138,205,5,205,190,204,215,204, +72,205,244,205,204,206,185,207,191,208,214,209,200,210,154,211,124,212,89,213,240,213,46,214,58,214,61,214,56,214,48,214, +61,214,75,214,77,214,89,214,110,214,138,214,210,214,62,215,180,215,59,216,199,216,52,217,127,217,188,217,1,218,85,218, +194,218,73,219,208,219,71,220,174,220,231,220,235,220,211,220,127,220,228,219,48,219,85,218,55,217,9,216,218,214,170,213, +177,212,245,211,93,211,249,210,210,210,222,210,28,211,128,211,23,212,241,212,241,213,21,215,107,216,232,217,164,219,177,221, +243,223,135,226,131,229,184,232,20,236,147,239,0,243,83,246,175,249,2,253,23,0,207,2,57,5,132,7,167,9,112,11, +234,12,74,14,160,15,203,16,153,17,237,17,203,17,83,17,144,16,74,15,112,13,76,11,237,8,41,6,27,3,232,255, +160,252,96,249,32,246,200,242,116,239,59,236,43,233,85,230,160,227,9,225,197,222,198,220,230,218,56,217,192,215,127,214, +134,213,204,212,93,212,54,212,29,212,14,212,46,212,80,212,106,212,181,212,37,213,143,213,0,214,143,214,80,215,95,216, +194,217,106,219,76,221,134,223,69,226,106,229,188,232,58,236,233,239,186,243,191,247,232,251,15,0,72,4,164,8,0,13, +48,17,37,21,225,24,97,28,124,31,34,34,110,36,89,38,199,39,199,40,82,41,80,41,214,40,16,40,22,39,0,38, +242,36,21,36,135,35,82,35,97,35,169,35,64,36,56,37,142,38,52,40,17,42,21,44,89,46,245,48,202,51,181,54, +197,57,244,60,33,64,65,67,54,70,200,72,1,75,16,77,221,78,71,80,75,81,211,81,228,81,176,81,36,81,22,80, +194,78,85,77,162,75,162,73,116,71,22,69,152,66,18,64,134,61,23,59,227,56,203,54,218,52,87,51,64,50,104,49, +232,48,233,48,71,49,194,49,73,50,221,50,94,51,156,51,144,51,71,51,203,50,28,50,53,49,24,48,215,46,119,45, +239,43,65,42,100,40,76,38,22,36,217,33,125,31,250,28,116,26,242,23,112,21,0,19,152,16,43,14,229,11,229,9, +14,8,95,6,6,5,6,4,25,3,7,2,197,0,77,255,142,253,137,251,42,249,94,246,85,243,56,240,233,236,99,233, +201,229,27,226,107,222,212,218,58,215,146,211,247,207,101,204,222,200,133,197,101,194,116,191,170,188,20,186,232,183,61,182, +244,180,39,180,14,180,143,180,114,181,185,182,108,184,126,186,205,188,61,191,236,193,234,196,246,199,233,202,221,205,213,208, +201,211,186,214,145,217,72,220,249,222,154,225,19,228,95,230,116,232,77,234,238,235,75,237,102,238,72,239,220,239,40,240, +89,240,107,240,70,240,240,239,116,239,205,238,243,237,229,236,187,235,139,234,72,233,249,231,204,230,216,229,32,229,163,228, +101,228,108,228,170,228,17,229,164,229,96,230,58,231,70,232,126,233,190,234,253,235,67,237,131,238,182,239,229,240,32,242, +94,243,137,244,180,245,241,246,16,248,20,249,52,250,90,251,93,252,93,253,114,254,153,255,222,0,91,2,31,4,249,5, +160,7,58,9,9,11,212,12,92,14,177,15,213,16,189,17,103,18,195,18,205,18,150,18,33,18,106,17,106,16,21,15, +103,13,80,11,199,8,211,5,107,2,143,254,103,250,6,246,89,241,101,236,93,231,135,226,243,221,139,217,112,213,214,209, +176,206,252,203,206,201,24,200,196,198,211,197,54,197,207,196,143,196,108,196,99,196,118,196,195,196,109,197,103,198,152,199, +4,201,169,202,141,204,154,206,147,208,129,210,138,212,129,214,84,216,72,218,99,220,138,222,214,224,93,227,45,230,72,233, +154,236,30,240,195,243,103,247,15,251,183,254,56,2,148,5,210,8,211,11,141,14,9,17,91,19,177,21,251,23,34,26, +95,28,161,30,162,32,142,34,134,36,55,38,122,39,115,40,63,41,238,41,108,42,187,42,40,43,241,43,7,45,81,46, +187,47,82,49,45,51,45,53,36,55,13,57,217,58,119,60,236,61,34,63,5,64,189,64,128,65,86,66,41,67,214,67, +95,68,230,68,110,69,189,69,175,69,101,69,252,68,94,68,129,67,116,66,54,65,207,63,93,62,245,60,172,59,160,58, +241,57,168,57,156,57,135,57,94,57,58,57,21,57,224,56,161,56,88,56,255,55,153,55,50,55,197,54,45,54,115,53, +209,52,45,52,70,51,68,50,86,49,65,48,231,46,88,45,106,43,28,41,196,38,96,36,203,33,82,31,32,29,6,27, +23,25,122,23,254,21,151,20,96,19,56,18,9,17,220,15,157,14,84,13,26,12,215,10,124,9,25,8,183,6,118,5, +89,4,37,3,204,1,90,0,176,254,197,252,148,250,254,247,37,245,60,242,28,239,190,235,86,232,222,228,99,225,38,222, +22,219,1,216,20,213,110,210,219,207,79,205,247,202,220,200,235,198,62,197,247,195,24,195,164,194,158,194,0,195,213,195, +30,197,184,198,145,200,165,202,202,204,226,206,11,209,97,211,175,213,187,215,157,217,141,219,137,221,110,223,50,225,196,226, +35,228,106,229,151,230,133,231,34,232,129,232,199,232,220,232,145,232,13,232,152,231,40,231,182,230,81,230,236,229,141,229, +69,229,13,229,228,228,178,228,92,228,20,228,246,227,207,227,164,227,161,227,178,227,201,227,249,227,59,228,147,228,27,229, +203,229,139,230,96,231,98,232,117,233,113,234,89,235,31,236,167,236,44,237,192,237,17,238,75,238,232,238,185,239,126,240, +100,241,110,242,134,243,192,244,5,246,82,247,203,248,84,250,195,251,23,253,64,254,65,255,48,0,253,0,139,1,231,1, +54,2,131,2,160,2,119,2,46,2,164,1,154,0,50,255,133,253,99,251,210,248,246,245,217,242,148,239,56,236,193,232, +59,229,180,225,69,222,1,219,207,215,163,212,175,209,12,207,163,204,114,202,164,200,112,199,189,198,85,198,76,198,204,198, +195,199,39,201,223,202,184,204,196,206,34,209,165,211,41,214,195,216,118,219,55,222,1,225,232,227,1,231,64,234,167,237, +76,241,253,244,139,248,40,252,230,255,126,3,209,6,242,9,241,12,228,15,192,18,87,21,174,23,243,25,55,28,130,30, +212,32,254,34,225,36,163,38,95,40,253,41,121,43,216,44,2,46,246,46,206,47,120,48,243,48,97,49,203,49,60,50, +218,50,162,51,123,52,109,53,118,54,121,55,81,56,243,56,140,57,59,58,233,58,156,59,122,60,117,61,98,62,49,63, +227,63,115,64,201,64,239,64,1,65,222,64,93,64,176,63,247,62,21,62,21,61,2,60,189,58,91,57,14,56,222,54, +211,53,245,52,43,52,100,51,151,50,174,49,176,48,179,47,154,46,71,45,207,43,88,42,231,40,131,39,60,38,21,37, +14,36,35,35,56,34,56,33,55,32,67,31,39,30,205,28,101,27,241,25,48,24,45,22,37,20,26,18,247,15,199,13, +163,11,178,9,17,8,174,6,132,5,161,4,228,3,52,3,175,2,78,2,230,1,121,1,9,1,120,0,210,255,62,255, +176,254,252,253,41,253,76,252,67,251,226,249,46,248,35,246,198,243,85,241,212,238,0,236,224,232,183,229,141,226,80,223, +250,219,147,216,67,213,32,210,28,207,72,204,201,201,157,199,162,197,196,195,10,194,127,192,45,191,57,190,188,189,174,189, +36,190,45,191,154,192,81,194,70,196,68,198,84,200,165,202,16,205,109,207,222,209,108,212,9,215,178,217,80,220,218,222, +94,225,227,227,108,230,254,232,143,235,42,238,206,240,90,243,188,245,217,247,161,249,51,251,158,252,203,253,194,254,148,255, +58,0,200,0,74,1,177,1,2,2,89,2,177,2,220,2,201,2,174,2,147,2,49,2,144,1,237,0,49,0,78,255, +122,254,172,253,195,252,226,251,34,251,112,250,189,249,249,248,33,248,81,247,152,246,226,245,30,245,91,244,210,243,152,243, +142,243,176,243,39,244,242,244,237,245,6,247,40,248,47,249,23,250,237,250,171,251,84,252,9,253,196,253,111,254,7,255, +109,255,147,255,176,255,195,255,131,255,226,254,220,253,101,252,170,250,189,248,115,246,217,243,22,241,31,238,245,234,157,231, +26,228,159,224,81,221,39,218,42,215,71,212,110,209,206,206,139,204,152,202,254,200,196,199,230,198,101,198,61,198,145,198, +140,199,13,201,238,202,49,205,187,207,124,210,128,213,173,216,1,220,141,223,34,227,169,230,65,234,198,237,17,241,71,244, +109,247,118,250,126,253,121,0,49,3,178,5,45,8,169,10,15,13,82,15,144,17,250,19,151,22,76,25,41,28,57,31, +66,34,49,37,63,40,78,43,15,46,166,48,52,51,123,53,119,55,88,57,20,59,157,60,244,61,7,63,234,63,192,64, +95,65,156,65,132,65,36,65,123,64,143,63,115,62,63,61,236,59,125,58,38,57,7,56,5,55,25,54,79,53,157,52, +244,51,83,51,170,50,251,49,88,49,178,48,240,47,36,47,83,46,91,45,57,44,18,43,251,41,6,41,45,40,75,39, +87,38,76,37,31,36,241,34,214,33,173,32,122,31,95,30,85,29,107,28,177,27,26,27,164,26,71,26,230,25,117,25, +230,24,74,24,223,23,141,23,18,23,137,22,3,22,92,21,170,20,254,19,57,19,108,18,175,17,237,16,24,16,34,15, +8,14,232,12,205,11,164,10,107,9,64,8,54,7,53,6,39,5,48,4,91,3,119,2,142,1,192,0,253,255,84,255, +208,254,47,254,81,253,70,252,0,251,128,249,229,247,35,246,45,244,27,242,3,240,221,237,162,235,89,233,252,230,127,228, +239,225,66,223,119,220,196,217,59,215,185,212,65,210,217,207,112,205,33,203,255,200,250,198,37,197,144,195,62,194,63,193, +130,192,254,191,242,191,110,192,43,193,9,194,32,195,143,196,83,198,65,200,81,202,149,204,236,206,82,209,228,211,131,214, +41,217,1,220,241,222,211,225,175,228,116,231,23,234,161,236,3,239,71,241,124,243,120,245,58,247,241,248,154,250,38,252, +142,253,200,254,210,255,162,0,26,1,94,1,177,1,0,2,35,2,59,2,119,2,190,2,234,2,16,3,51,3,59,3, +57,3,60,3,26,3,202,2,110,2,20,2,187,1,78,1,189,0,52,0,202,255,77,255,181,254,51,254,187,253,36,253, +138,252,32,252,234,251,178,251,88,251,241,250,144,250,52,250,226,249,140,249,29,249,152,248,253,247,88,247,214,246,111,246, +229,245,57,245,145,244,238,243,78,243,181,242,28,242,140,241,3,241,79,240,87,239,32,238,161,236,244,234,54,233,81,231, +68,229,55,227,42,225,35,223,69,221,138,219,231,217,111,216,43,215,44,214,131,213,42,213,57,213,202,213,177,214,192,215, +254,216,126,218,90,220,149,222,255,224,126,227,42,230,10,233,249,235,208,238,153,241,141,244,172,247,209,250,16,254,128,1, +225,4,5,8,254,10,209,13,104,16,221,18,74,21,147,23,179,25,224,27,48,30,159,32,69,35,18,38,208,40,128,43, +55,46,247,48,201,51,155,54,65,57,159,59,156,61,46,63,114,64,126,65,88,66,1,67,106,67,156,67,167,67,120,67, +17,67,126,66,160,65,126,64,66,63,222,61,72,60,156,58,209,56,209,54,166,52,90,50,252,47,157,45,68,43,241,40, +156,38,76,36,43,34,67,32,121,30,225,28,140,27,82,26,52,25,90,24,180,23,14,23,89,22,164,21,236,20,26,20, +38,19,50,18,123,17,9,17,162,16,50,16,233,15,220,15,228,15,251,15,21,16,3,16,206,15,170,15,142,15,90,15, +24,15,222,14,171,14,125,14,80,14,12,14,167,13,63,13,231,12,136,12,34,12,216,11,168,11,93,11,200,10,228,9, +202,8,144,7,39,6,145,4,239,2,83,1,196,255,72,254,189,252,24,251,126,249,238,247,81,246,191,244,56,243,168,241, +59,240,248,238,154,237,50,236,233,234,144,233,27,232,184,230,88,229,10,228,238,226,209,225,147,224,91,223,33,222,207,220, +135,219,80,218,21,217,200,215,99,214,253,212,172,211,96,210,33,209,26,208,85,207,182,206,46,206,213,205,209,205,29,206, +147,206,34,207,213,207,200,208,242,209,35,211,79,212,136,213,197,214,5,216,76,217,124,218,148,219,175,220,213,221,246,222, +243,223,191,224,135,225,100,226,78,227,70,228,76,229,122,230,241,231,138,233,45,235,11,237,6,239,238,240,219,242,197,244, +145,246,109,248,91,250,43,252,232,253,174,255,127,1,85,3,28,5,202,6,79,8,119,9,49,10,154,10,183,10,130,10, +254,9,62,9,101,8,93,7,14,6,186,4,139,3,91,2,49,1,64,0,137,255,255,254,146,254,57,254,255,253,217,253, +172,253,132,253,118,253,125,253,117,253,92,253,92,253,108,253,99,253,69,253,10,253,149,252,251,251,45,251,4,250,175,248, +54,247,93,245,70,243,41,241,235,238,141,236,41,234,196,231,112,229,48,227,14,225,69,223,222,221,185,220,243,219,171,219, +206,219,92,220,85,221,165,222,79,224,103,226,230,228,173,231,161,234,182,237,223,240,9,244,40,247,51,250,26,253,211,255, +87,2,178,4,254,6,39,9,5,11,166,12,40,14,150,15,244,16,70,18,136,19,189,20,251,21,98,23,245,24,156,26, +88,28,52,30,44,32,55,34,69,36,75,38,119,40,238,42,153,45,104,48,99,51,116,54,115,57,93,60,56,63,225,65, +44,68,27,70,187,71,240,72,159,73,225,73,216,73,132,73,230,72,39,72,100,71,126,70,80,69,210,67,249,65,204,63, +110,61,230,58,30,56,16,53,210,49,133,46,56,43,251,39,226,36,243,33,64,31,219,28,152,26,90,24,78,22,90,20, +37,18,203,15,149,13,96,11,1,9,179,6,161,4,181,2,253,0,163,255,136,254,133,253,208,252,105,252,15,252,201,251, +161,251,100,251,31,251,248,250,204,250,139,250,63,250,236,249,180,249,160,249,117,249,60,249,48,249,78,249,121,249,173,249, +238,249,48,250,103,250,139,250,132,250,52,250,191,249,101,249,33,249,230,248,206,248,214,248,225,248,229,248,232,248,243,248, +251,248,236,248,213,248,184,248,133,248,56,248,200,247,66,247,192,246,45,246,130,245,209,244,250,243,226,242,157,241,38,240, +136,238,235,236,49,235,64,233,32,231,205,228,113,226,61,224,15,222,1,220,101,218,19,217,192,215,134,214,131,213,186,212, +45,212,202,211,139,211,115,211,119,211,161,211,17,212,198,212,176,213,181,214,195,215,244,216,66,218,92,219,28,220,185,220, +91,221,232,221,91,222,225,222,133,223,38,224,195,224,99,225,9,226,198,226,134,227,37,228,175,228,50,229,175,229,62,230, +199,230,55,231,203,231,160,232,134,233,118,234,126,235,162,236,240,237,103,239,250,240,158,242,38,244,113,245,159,246,187,247, +169,248,107,249,18,250,145,250,208,250,201,250,172,250,170,250,181,250,180,250,185,250,202,250,228,250,41,251,174,251,80,252, +254,252,194,253,126,254,2,255,75,255,117,255,141,255,134,255,87,255,24,255,215,254,141,254,80,254,39,254,218,253,115,253, +63,253,38,253,221,252,98,252,181,251,204,250,186,249,114,248,222,246,43,245,125,243,205,241,44,240,150,238,227,236,42,235, +173,233,105,232,71,231,101,230,224,229,183,229,245,229,164,230,192,231,84,233,85,235,161,237,59,240,38,243,68,246,141,249, +240,252,57,0,90,3,101,6,93,9,63,12,248,14,137,17,20,20,138,22,196,24,220,26,225,28,189,30,112,32,231,33, +28,35,47,36,11,37,160,37,45,38,210,38,122,39,68,40,94,41,210,42,159,44,200,46,72,49,1,52,183,54,68,57, +167,59,219,61,203,63,112,65,221,66,34,68,45,69,245,69,137,70,231,70,27,71,57,71,47,71,8,71,221,70,127,70, +215,69,2,69,229,67,117,66,203,64,202,62,107,60,218,57,3,55,241,51,249,48,39,46,71,43,77,40,67,37,50,34, +37,31,17,28,235,24,169,21,59,18,184,14,53,11,159,7,240,3,50,0,113,252,205,248,105,245,74,242,113,239,7,237, +57,235,213,233,135,232,113,231,188,230,30,230,122,229,0,229,142,228,241,227,81,227,210,226,109,226,41,226,253,225,204,225, +158,225,151,225,184,225,231,225,54,226,180,226,50,227,177,227,104,228,79,229,77,230,116,231,159,232,183,233,254,234,138,236, +36,238,191,239,107,241,45,243,251,244,172,246,34,248,106,249,145,250,140,251,79,252,210,252,41,253,109,253,137,253,90,253, +217,252,21,252,34,251,23,250,255,248,213,247,178,246,180,245,202,244,209,243,209,242,215,241,193,240,125,239,32,238,189,236, +88,235,243,233,172,232,150,231,165,230,205,229,35,229,178,228,108,228,84,228,124,228,241,228,176,229,145,230,121,231,118,232, +120,233,91,234,54,235,35,236,251,236,197,237,218,238,87,240,23,242,13,244,25,246,11,248,5,250,59,252,125,254,125,0, +35,2,123,3,134,4,48,5,123,5,137,5,91,5,236,4,104,4,214,3,25,3,96,2,216,1,102,1,2,1,202,0, +145,0,21,0,105,255,184,254,222,253,181,252,104,251,9,250,120,248,238,246,178,245,166,244,199,243,54,243,201,242,88,242, +254,241,203,241,195,241,228,241,250,241,227,241,164,241,66,241,209,240,99,240,227,239,80,239,216,238,150,238,118,238,99,238, +107,238,153,238,211,238,12,239,62,239,69,239,16,239,175,238,48,238,171,237,29,237,95,236,125,235,160,234,186,233,188,232, +175,231,149,230,128,229,128,228,153,227,222,226,86,226,244,225,194,225,193,225,233,225,76,226,254,226,14,228,131,229,56,231, +31,233,93,235,212,237,57,240,142,242,237,244,83,247,202,249,103,252,45,255,5,2,210,4,152,7,80,10,192,12,214,14, +180,16,105,18,251,19,87,21,117,22,154,23,240,24,84,26,219,27,181,29,188,31,225,33,90,36,23,39,234,41,252,44, +109,48,236,51,52,55,81,58,46,61,159,63,192,65,154,67,252,68,6,70,247,70,202,71,145,72,119,73,114,74,95,75, +49,76,216,76,65,77,88,77,7,77,88,76,71,75,183,73,186,71,111,69,211,66,233,63,210,60,177,57,158,54,160,51, +182,48,216,45,231,42,196,39,95,36,179,32,201,28,159,24,31,20,95,15,155,10,255,5,160,1,144,253,216,249,112,246, +78,243,133,240,44,238,33,236,46,234,86,232,178,230,65,229,231,227,139,226,60,225,26,224,15,223,239,221,187,220,129,219, +77,218,59,217,103,216,195,215,55,215,205,214,141,214,83,214,4,214,194,213,181,213,220,213,59,214,229,214,209,215,245,216, +82,218,216,219,99,221,235,222,130,224,63,226,31,228,5,230,229,231,222,233,227,235,178,237,64,239,173,240,244,241,9,243, +235,243,151,244,37,245,170,245,7,246,41,246,21,246,193,245,68,245,213,244,108,244,210,243,8,243,67,242,156,241,247,240, +70,240,129,239,149,238,157,237,164,236,116,235,30,234,240,232,223,231,227,230,52,230,195,229,120,229,119,229,167,229,221,229, +42,230,157,230,76,231,65,232,64,233,53,234,79,235,126,236,170,237,233,238,60,240,179,241,106,243,76,245,74,247,117,249, +191,251,22,254,106,0,139,2,99,4,2,6,88,7,83,8,18,9,174,9,40,10,168,10,96,11,78,12,117,13,230,14, +121,16,28,18,3,20,250,21,149,23,3,25,120,26,162,27,113,28,34,29,151,29,167,29,127,29,68,29,245,28,162,28, +97,28,30,28,174,27,17,27,100,26,154,25,145,24,64,23,166,21,217,19,241,17,242,15,217,13,159,11,68,9,242,6, +183,4,117,2,58,0,40,254,68,252,151,250,23,249,163,247,63,246,245,244,172,243,83,242,5,241,217,239,192,238,161,237, +144,236,149,235,146,234,132,233,104,232,45,231,237,229,187,228,129,227,91,226,106,225,170,224,44,224,247,223,244,223,41,224, +148,224,32,225,218,225,181,226,157,227,185,228,0,230,61,231,143,232,8,234,106,235,175,236,247,237,50,239,83,240,96,241, +86,242,62,243,31,244,218,244,89,245,179,245,252,245,38,246,26,246,231,245,189,245,189,245,242,245,111,246,74,247,120,248, +220,249,108,251,42,253,34,255,96,1,199,3,65,6,240,8,221,11,233,14,13,18,85,21,202,24,127,28,96,32,77,36, +62,40,24,44,216,47,139,51,242,54,205,57,62,60,91,62,6,64,69,65,58,66,240,66,98,67,152,67,175,67,177,67, +138,67,46,67,142,66,145,65,73,64,187,62,200,60,125,58,252,55,67,53,90,50,97,47,84,44,37,41,250,37,251,34, +21,32,65,29,180,26,99,24,0,22,150,19,78,17,0,15,152,12,56,10,230,7,143,5,55,3,242,0,209,254,190,252, +178,250,187,248,198,246,189,244,183,242,170,240,134,238,101,236,79,234,63,232,59,230,65,228,132,226,50,225,26,224,76,223, +39,223,136,223,44,224,46,225,137,226,37,228,50,230,169,232,60,235,204,237,109,240,44,243,246,245,170,248,58,251,176,253, +5,0,45,2,37,4,238,5,124,7,181,8,163,9,98,10,215,10,214,10,105,10,177,9,176,8,83,7,185,5,11,4, +55,2,61,0,80,254,114,252,134,250,147,248,128,246,49,244,219,241,160,239,113,237,86,235,91,233,130,231,210,229,83,228, +0,227,202,225,145,224,100,223,101,222,127,221,148,220,173,219,225,218,74,218,237,217,172,217,116,217,90,217,141,217,35,218, +244,218,226,219,247,220,29,222,58,223,81,224,88,225,65,226,13,227,166,227,16,228,121,228,243,228,124,229,27,230,183,230, +55,231,172,231,60,232,248,232,196,233,139,234,104,235,79,236,17,237,171,237,57,238,215,238,154,239,113,240,58,241,246,241, +169,242,87,243,4,244,145,244,232,244,15,245,20,245,19,245,6,245,195,244,114,244,79,244,48,244,0,244,241,243,238,243, +212,243,204,243,213,243,204,243,195,243,205,243,225,243,9,244,65,244,115,244,180,244,7,245,73,245,137,245,221,245,29,246, +70,246,104,246,102,246,87,246,108,246,132,246,148,246,188,246,211,246,212,246,24,247,174,247,122,248,134,249,204,250,82,252, +39,254,38,0,61,2,116,4,162,6,191,8,219,10,220,12,207,14,207,16,179,18,129,20,98,22,55,24,248,25,194,27, +137,29,64,31,248,32,178,34,87,36,174,37,147,38,51,39,172,39,217,39,197,39,164,39,128,39,90,39,104,39,205,39, +105,40,32,41,22,42,109,43,7,45,193,46,143,48,97,50,40,52,206,53,53,55,118,56,187,57,0,59,40,60,66,61, +112,62,173,63,225,64,16,66,58,67,71,68,48,69,228,69,75,70,109,70,91,70,27,70,167,69,215,68,158,67,51,66, +160,64,193,62,166,60,87,58,177,55,216,52,253,49,253,46,180,43,59,40,162,36,226,32,247,28,220,24,152,20,83,16, +29,12,212,7,135,3,101,255,85,251,54,247,33,243,34,239,79,235,216,231,168,228,165,225,231,222,82,220,209,217,149,215, +155,213,184,211,242,209,62,208,133,206,213,204,25,203,77,201,168,199,48,198,189,196,87,195,18,194,243,192,12,192,93,191, +234,190,199,190,11,191,191,191,207,192,29,194,168,195,99,197,39,199,243,200,228,202,3,205,78,207,191,209,57,212,141,214, +173,216,192,218,218,220,211,222,126,224,218,225,7,227,30,228,6,229,159,229,252,229,49,230,57,230,30,230,253,229,252,229, +41,230,102,230,158,230,211,230,235,230,227,230,227,230,224,230,165,230,56,230,192,229,75,229,202,228,68,228,217,227,125,227, +16,227,148,226,45,226,249,225,1,226,54,226,145,226,11,227,141,227,53,228,50,229,108,230,204,231,113,233,99,235,159,237, +65,240,58,243,103,246,192,249,28,253,74,0,77,3,55,6,5,9,163,11,255,13,20,16,233,17,142,19,1,21,43,22, +21,23,235,23,174,24,65,25,160,25,213,25,255,25,46,26,87,26,141,26,246,26,130,27,17,28,162,28,70,29,239,29, +116,30,223,30,99,31,221,31,9,32,242,31,146,31,207,30,226,29,246,28,233,27,180,26,97,25,244,23,131,22,251,20, +48,19,74,17,125,15,185,13,239,11,61,10,174,8,56,7,220,5,150,4,64,3,210,1,132,0,110,255,106,254,131,253, +243,252,185,252,154,252,119,252,117,252,177,252,12,253,88,253,140,253,168,253,187,253,216,253,6,254,64,254,154,254,61,255, +62,0,127,1,230,2,103,4,215,5,42,7,137,8,235,9,21,11,243,11,163,12,69,13,204,13,16,14,32,14,46,14, +62,14,73,14,80,14,80,14,81,14,63,14,241,13,115,13,209,12,250,11,255,10,239,9,210,8,213,7,17,7,125,6, +63,6,134,6,78,7,128,8,9,10,238,11,25,14,50,16,19,18,234,19,176,21,88,23,253,24,116,26,169,27,214,28, +208,29,78,30,170,30,47,31,145,31,175,31,200,31,217,31,172,31,75,31,210,30,49,30,109,29,151,28,160,27,138,26, +110,25,61,24,238,22,151,21,40,20,140,18,221,16,37,15,79,13,84,11,38,9,185,6,46,4,161,1,229,254,217,251, +176,248,164,245,176,242,204,239,12,237,131,234,65,232,55,230,100,228,246,226,235,225,14,225,114,224,43,224,4,224,254,223, +69,224,187,224,57,225,205,225,133,226,90,227,62,228,54,229,52,230,255,230,135,231,234,231,250,231,152,231,3,231,82,230, +118,229,137,228,152,227,178,226,8,226,148,225,56,225,15,225,42,225,124,225,17,226,0,227,87,228,24,230,52,232,178,234, +147,237,182,240,242,243,56,247,135,250,216,253,9,1,1,4,218,6,157,9,33,12,80,14,64,16,19,18,196,19,66,21, +160,22,243,23,42,25,53,26,252,26,107,27,180,27,253,27,11,28,196,27,86,27,194,26,254,25,57,25,108,24,112,23, +109,22,125,21,111,20,59,19,14,18,216,16,137,15,48,14,186,12,24,11,97,9,129,7,111,5,95,3,89,1,79,255, +100,253,155,251,236,249,112,248,25,247,223,245,232,244,28,244,98,243,228,242,157,242,98,242,52,242,253,241,184,241,148,241, +140,241,129,241,147,241,205,241,37,242,176,242,107,243,42,244,228,244,173,245,133,246,102,247,91,248,72,249,250,249,145,250, +67,251,238,251,105,252,212,252,55,253,116,253,123,253,82,253,19,253,207,252,83,252,102,251,16,250,115,248,152,246,130,244, +66,242,225,239,86,237,173,234,8,232,93,229,159,226,232,223,69,221,171,218,24,216,133,213,251,210,168,208,164,206,226,204, +96,203,28,202,32,201,99,200,196,199,50,199,178,198,51,198,177,197,77,197,25,197,28,197,98,197,235,197,165,198,143,199, +197,200,87,202,58,204,105,206,236,208,191,211,228,214,100,218,53,222,64,226,103,230,142,234,153,238,102,242,230,245,32,249, +8,252,165,254,30,1,104,3,104,5,67,7,2,9,140,10,3,12,123,13,205,14,9,16,114,17,0,19,105,20,158,21, +221,22,52,24,115,25,161,26,235,27,84,29,225,30,165,32,158,34,214,36,94,39,52,42,81,45,174,48,56,52,211,55, +88,59,193,62,28,66,77,69,61,72,9,75,160,77,214,79,226,81,18,84,63,86,43,88,5,90,28,92,78,94,82,96, +43,98,229,99,112,101,200,102,209,103,98,104,146,104,121,104,250,103,6,103,163,101,203,99,126,97,181,94,121,91,241,87, +60,84,112,80,154,76,167,72,131,68,71,64,251,59,146,55,15,51,124,46,212,41,35,37,139,32,41,28,5,24,240,19, +171,15,75,11,31,7,28,3,9,255,8,251,70,247,179,243,89,240,60,237,43,234,45,231,101,228,157,225,185,222,10,220, +168,217,81,215,8,213,18,211,101,209,195,207,60,206,241,204,196,203,178,202,240,201,159,201,189,201,35,202,165,202,85,203, +51,204,1,205,192,205,140,206,64,207,224,207,145,208,52,209,207,209,142,210,83,211,247,211,107,212,145,212,119,212,74,212, +255,211,141,211,17,211,147,210,21,210,157,209,6,209,59,208,94,207,154,206,237,205,59,205,157,204,89,204,106,204,111,204, +85,204,81,204,86,204,52,204,246,203,182,203,115,203,36,203,193,202,76,202,242,201,214,201,225,201,247,201,33,202,130,202, +45,203,251,203,196,204,166,205,171,206,151,207,86,208,21,209,219,209,141,210,50,211,245,211,221,212,195,213,170,214,184,215, +220,216,7,218,66,219,99,220,74,221,36,222,13,223,2,224,12,225,23,226,19,227,35,228,79,229,124,230,199,231,79,233, +1,235,226,236,19,239,123,241,228,243,88,246,231,248,102,251,204,253,66,0,185,2,33,5,162,7,40,10,102,12,91,14, +54,16,248,17,137,19,221,20,242,21,224,22,182,23,99,24,219,24,55,25,143,25,218,25,13,26,53,26,88,26,116,26, +146,26,176,26,202,26,231,26,29,27,134,27,31,28,180,28,62,29,232,29,170,30,109,31,66,32,32,33,245,33,221,34, +223,35,230,36,7,38,43,39,11,40,200,40,176,41,173,42,147,43,100,44,23,45,173,45,81,46,250,46,128,47,242,47, +91,48,156,48,183,48,201,48,200,48,170,48,139,48,159,48,3,49,139,49,28,50,254,50,82,52,216,53,101,55,9,57, +216,58,207,60,187,62,104,64,218,65,28,67,25,68,214,68,96,69,183,69,227,69,237,69,198,69,98,69,187,68,243,67, +49,67,97,66,105,65,101,64,108,63,89,62,255,60,106,59,182,57,223,55,230,53,240,51,254,49,222,47,148,45,85,43, +32,41,199,38,60,36,136,33,181,30,212,27,235,24,239,21,203,18,109,15,230,11,81,8,152,4,146,0,92,252,19,248, +149,243,232,238,79,234,223,229,137,225,90,221,88,217,135,213,16,210,5,207,63,204,172,201,99,199,99,197,127,195,173,193, +39,192,227,190,150,189,62,188,17,187,253,185,230,184,239,183,52,183,159,182,20,182,155,181,79,181,44,181,15,181,239,180, +215,180,185,180,151,180,144,180,202,180,75,181,221,181,91,182,15,183,70,184,185,185,56,187,16,189,86,191,184,193,38,196, +201,198,164,201,177,204,210,207,229,210,26,214,160,217,75,221,15,225,0,229,254,232,1,237,43,241,82,245,58,249,235,252, +108,0,158,3,90,6,132,8,57,10,184,11,25,13,77,14,85,15,63,16,23,17,231,17,153,18,27,19,112,19,165,19, +196,19,188,19,107,19,213,18,22,18,50,17,31,16,240,14,200,13,185,12,203,11,35,11,212,10,184,10,201,10,53,11, +226,11,139,12,72,13,50,14,18,15,226,15,219,16,236,17,242,18,23,20,108,21,197,22,9,24,64,25,123,26,191,27, +251,28,58,30,160,31,27,33,113,34,164,35,215,36,22,38,100,39,176,40,243,41,62,43,133,44,176,45,207,46,210,47, +136,48,249,48,60,49,59,49,246,48,128,48,216,47,12,47,43,46,25,45,174,43,234,41,230,39,174,37,31,35,15,32, +147,28,236,24,29,21,5,17,159,12,15,8,143,3,60,255,239,250,138,246,66,242,62,238,85,234,114,230,188,226,63,223, +215,219,129,216,83,213,62,210,53,207,105,204,5,202,235,199,0,198,74,196,198,194,112,193,72,192,49,191,42,190,86,189, +151,188,186,187,211,186,228,185,195,184,125,183,62,182,13,181,251,179,43,179,163,178,98,178,100,178,142,178,203,178,43,179, +179,179,88,180,32,181,20,182,24,183,14,184,5,185,24,186,63,187,115,188,192,189,42,191,162,192,60,194,25,196,41,198, +57,200,54,202,78,204,174,206,77,209,23,212,37,215,151,218,113,222,158,226,249,230,110,235,16,240,231,244,219,249,229,254, +16,4,93,9,199,14,65,20,202,25,107,31,3,37,105,42,179,47,230,52,217,57,152,62,45,67,81,71,238,74,37,78, +234,80,57,83,49,85,175,86,161,87,69,88,178,88,218,88,240,88,24,89,59,89,90,89,112,89,75,89,205,88,237,87, +162,86,20,85,103,83,139,81,135,79,128,77,123,75,112,73,91,71,36,69,220,66,196,64,245,62,80,61,213,59,151,58, +134,57,110,56,33,55,154,53,254,51,104,50,198,48,11,47,100,45,238,43,125,42,242,40,109,39,241,37,88,36,181,34, +44,33,168,31,22,30,143,28,49,27,255,25,232,24,210,23,187,22,184,21,219,20,46,20,173,19,81,19,43,19,73,19, +149,19,242,19,69,20,107,20,89,20,15,20,128,19,168,18,162,17,134,16,92,15,27,14,195,12,88,11,191,9,223,7, +213,5,174,3,61,1,157,254,39,252,207,249,92,247,223,244,100,242,196,239,246,236,14,234,37,231,105,228,234,225,130,223, +62,221,69,219,129,217,194,215,16,214,116,212,206,210,26,209,133,207,28,206,193,204,137,203,141,202,147,201,114,200,92,199, +93,198,74,197,44,196,23,195,9,194,33,193,111,192,211,191,73,191,221,190,113,190,248,189,142,189,63,189,32,189,59,189, +130,189,6,190,228,190,241,191,12,193,87,194,204,195,67,197,198,198,106,200,23,202,185,203,68,205,171,206,239,207,9,209, +220,209,100,210,162,210,148,210,92,210,31,210,212,209,118,209,25,209,190,208,87,208,232,207,125,207,46,207,22,207,47,207, +86,207,160,207,61,208,20,209,238,209,214,210,224,211,248,212,39,214,146,215,59,217,22,219,35,221,91,223,198,225,94,228, +234,230,67,233,116,235,111,237,36,239,172,240,17,242,69,243,105,244,130,245,99,246,24,247,210,247,143,248,48,249,185,249, +80,250,36,251,59,252,114,253,186,254,27,0,155,1,62,3,237,4,155,6,120,8,168,10,29,13,225,15,9,19,132,22, +81,26,108,30,148,34,171,38,194,42,186,46,120,50,28,54,161,57,212,60,182,63,91,66,159,68,99,70,189,71,211,72, +183,73,89,74,186,74,16,75,138,75,46,76,241,76,200,77,192,78,251,79,114,81,4,83,189,84,184,86,238,88,87,91, +243,93,151,96,22,99,125,101,221,103,252,105,161,107,234,108,3,110,214,110,68,111,71,111,201,110,201,109,117,108,192,106, +114,104,166,101,145,98,25,95,41,91,244,86,180,82,125,78,80,74,42,70,23,66,35,62,81,58,180,54,83,51,20,48, +233,44,220,41,238,38,17,36,54,33,77,30,64,27,4,24,171,20,78,17,253,13,191,10,144,7,93,4,24,1,205,253, +123,250,7,247,118,243,212,239,14,236,24,232,13,228,9,224,33,220,73,216,101,212,157,208,24,205,202,201,194,198,25,196, +170,193,110,191,142,189,253,187,166,186,143,185,134,184,105,183,111,182,177,181,12,181,126,180,21,180,206,179,191,179,217,179, +232,179,1,180,73,180,144,180,176,180,191,180,211,180,244,180,52,181,157,181,43,182,201,182,100,183,9,184,219,184,232,185, +25,187,83,188,175,189,80,191,34,193,5,195,2,197,21,199,19,201,238,202,192,204,149,206,108,208,80,210,63,212,48,214, +33,216,242,217,135,219,242,220,42,222,17,223,181,223,51,224,151,224,245,224,70,225,111,225,130,225,182,225,14,226,77,226, +89,226,106,226,184,226,50,227,186,227,82,228,33,229,70,230,174,231,52,233,215,234,145,236,86,238,69,240,122,242,209,244, +64,247,241,249,203,252,158,255,121,2,74,5,234,7,120,10,245,12,63,15,121,17,196,19,8,22,71,24,121,26,126,28, +92,30,39,32,214,33,102,35,216,36,44,38,111,39,163,40,188,41,193,42,173,43,107,44,251,44,100,45,145,45,142,45, +156,45,212,45,17,46,47,46,32,46,233,45,131,45,210,44,252,43,46,43,66,42,39,41,8,40,242,38,215,37,159,36, +33,35,94,33,106,31,38,29,164,26,53,24,228,21,149,19,98,17,69,15,1,13,156,10,71,8,241,5,163,3,160,1, +246,255,156,254,172,253,22,253,149,252,9,252,131,251,16,251,162,250,70,250,3,250,173,249,75,249,31,249,14,249,216,248, +153,248,95,248,254,247,119,247,228,246,63,246,134,245,230,244,100,244,201,243,26,243,136,242,10,242,142,241,33,241,169,240, +32,240,192,239,175,239,217,239,59,240,233,240,215,241,217,242,218,243,204,244,161,245,131,246,141,247,120,248,27,249,167,249, +30,250,72,250,14,250,155,249,33,249,178,248,92,248,56,248,84,248,179,248,92,249,76,250,109,251,177,252,36,254,190,255, +117,1,92,3,104,5,106,7,97,9,90,11,69,13,23,15,185,16,34,18,98,19,104,20,37,21,160,21,174,21,93,21, +252,20,116,20,159,19,186,18,206,17,200,16,213,15,3,15,50,14,116,13,239,12,155,12,89,12,39,12,22,12,44,12, +103,12,190,12,43,13,192,13,131,14,112,15,140,16,192,17,229,18,244,19,250,20,238,21,162,22,253,22,20,23,220,22, +60,22,77,21,27,20,143,18,192,16,211,14,199,12,159,10,102,8,34,6,217,3,181,1,193,255,198,253,201,251,14,250, +153,248,82,247,76,246,125,245,229,244,176,244,234,244,115,245,50,246,35,247,101,248,242,249,155,251,77,253,2,255,200,0, +169,2,119,4,14,6,126,7,208,8,10,10,57,11,70,12,38,13,236,13,162,14,55,15,164,15,0,16,83,16,111,16, +57,16,215,15,94,15,174,14,177,13,122,12,28,11,144,9,224,7,24,6,51,4,72,2,91,0,73,254,34,252,255,249, +205,247,133,245,31,243,148,240,11,238,137,235,230,232,64,230,195,227,85,225,210,222,74,220,206,217,79,215,213,212,134,210, +118,208,200,206,154,205,187,204,237,203,45,203,148,202,47,202,226,201,177,201,210,201,58,202,214,202,194,203,220,204,16,206, +165,207,128,209,79,211,44,213,57,215,106,217,202,219,92,222,19,225,214,227,115,230,192,232,205,234,192,236,129,238,217,239, +238,240,7,242,253,242,167,243,43,244,147,244,162,244,51,244,112,243,126,242,92,241,22,240,183,238,65,237,209,235,138,234, +104,233,113,232,167,231,255,230,114,230,16,230,250,229,39,230,118,230,10,231,8,232,77,233,190,234,79,236,16,238,52,240, +185,242,154,245,17,249,9,253,53,1,143,5,22,10,167,14,36,19,138,23,251,27,112,32,180,36,183,40,116,44,225,47, +237,50,105,53,86,55,235,56,43,58,23,59,204,59,54,60,95,60,133,60,158,60,159,60,182,60,236,60,19,61,39,61, +42,61,243,60,134,60,23,60,153,59,226,58,247,57,232,56,193,55,120,54,246,52,91,51,185,49,243,47,41,46,117,44, +193,42,35,41,148,39,212,37,230,35,240,33,15,32,102,30,225,28,121,27,114,26,236,25,211,25,19,26,161,26,121,27, +139,28,208,29,62,31,149,32,171,33,145,34,70,35,179,35,185,35,66,35,128,34,159,33,139,32,67,31,216,29,81,28, +191,26,9,25,4,23,200,20,120,18,28,16,171,13,31,11,135,8,230,5,73,3,216,0,141,254,80,252,77,250,161,248, +27,247,160,245,69,244,3,243,179,241,109,240,70,239,234,237,59,236,107,234,110,232,52,230,216,227,69,225,135,222,213,219, +43,217,155,214,90,212,95,210,159,208,48,207,22,206,84,205,15,205,85,205,245,205,190,206,209,207,58,209,214,210,142,212, +64,214,244,215,231,217,4,220,21,222,36,224,58,226,88,228,126,230,157,232,212,234,52,237,137,239,204,241,244,243,201,245, +77,247,159,248,182,249,159,250,108,251,40,252,234,252,171,253,103,254,48,255,240,255,135,0,5,1,123,1,218,1,41,2, +132,2,199,2,199,2,150,2,50,2,131,1,164,0,163,255,108,254,254,252,93,251,191,249,63,248,157,246,215,244,44,243, +151,241,10,240,140,238,12,237,145,235,57,234,29,233,91,232,230,231,163,231,143,231,167,231,242,231,83,232,165,232,33,233, +235,233,203,234,180,235,167,236,147,237,128,238,75,239,210,239,53,240,123,240,164,240,225,240,59,241,150,241,249,241,105,242, +213,242,32,243,63,243,69,243,77,243,104,243,137,243,161,243,202,243,7,244,43,244,21,244,203,243,81,243,153,242,176,241, +209,240,254,239,27,239,92,238,203,237,43,237,137,236,235,235,37,235,55,234,53,233,50,232,69,231,86,230,98,229,108,228, +79,227,47,226,66,225,97,224,149,223,46,223,63,223,187,223,155,224,230,225,185,227,5,230,139,232,40,235,221,237,175,240, +130,243,100,246,124,249,136,252,81,255,45,2,69,5,81,8,59,11,38,14,19,17,223,19,122,22,230,24,3,27,194,28, +66,30,121,31,63,32,151,32,148,32,90,32,15,32,174,31,83,31,57,31,117,31,239,31,130,32,28,33,204,33,144,34, +90,35,10,36,123,36,214,36,81,37,218,37,74,38,134,38,158,38,199,38,232,38,210,38,180,38,182,38,217,38,37,39, +172,39,138,40,173,41,242,42,126,44,85,46,65,48,84,50,165,52,28,55,190,57,151,60,111,63,251,65,45,68,39,70, +202,71,235,72,181,73,45,74,59,74,253,73,104,73,91,72,247,70,40,69,170,66,152,63,25,60,34,56,200,51,77,47, +219,42,135,38,127,34,215,30,114,27,85,24,159,21,67,19,35,17,36,15,52,13,85,11,123,9,141,7,130,5,77,3, +227,0,80,254,174,251,12,249,98,246,211,243,159,241,145,239,116,237,114,235,102,233,18,231,143,228,209,225,215,222,232,219, +2,217,26,214,104,211,250,208,225,206,73,205,48,204,137,203,71,203,103,203,253,203,229,204,238,205,49,207,177,208,59,210, +190,211,76,213,221,214,92,216,198,217,32,219,98,220,147,221,187,222,193,223,170,224,124,225,37,226,185,226,84,227,239,227, +127,228,245,228,59,229,83,229,91,229,105,229,124,229,177,229,57,230,238,230,139,231,27,232,158,232,255,232,69,233,94,233, +94,233,127,233,152,233,126,233,65,233,218,232,84,232,192,231,244,230,250,229,6,229,23,228,42,227,70,226,119,225,202,224, +48,224,183,223,112,223,52,223,251,222,251,222,75,223,213,223,128,224,78,225,78,226,107,227,163,228,248,229,58,231,107,232, +197,233,60,235,184,236,75,238,230,239,88,241,152,242,185,243,171,244,90,245,229,245,98,246,197,246,18,247,66,247,110,247, +198,247,26,248,84,248,222,248,197,249,188,250,194,251,237,252,51,254,143,255,240,0,46,2,39,3,235,3,163,4,50,5, +112,5,101,5,30,5,165,4,16,4,106,3,187,2,3,2,71,1,168,0,15,0,80,255,133,254,188,253,233,252,14,252, +40,251,94,250,186,249,13,249,131,248,92,248,109,248,174,248,85,249,90,250,192,251,151,253,189,255,24,2,167,4,87,7, +25,10,248,12,0,16,2,19,193,21,62,24,140,26,172,28,152,30,62,32,151,33,167,34,120,35,36,36,179,36,26,37, +96,37,126,37,130,37,125,37,70,37,207,36,70,36,179,35,19,35,110,34,213,33,119,33,91,33,82,33,87,33,128,33, +209,33,56,34,162,34,66,35,48,36,36,37,24,38,36,39,6,40,160,40,5,41,59,41,86,41,81,41,35,41,250,40, +226,40,210,40,223,40,245,40,19,41,102,41,216,41,80,42,255,42,232,43,215,44,180,45,130,46,66,47,237,47,119,48, +202,48,242,48,19,49,9,49,139,48,153,47,120,46,77,45,227,43,250,41,172,39,26,37,64,34,63,31,26,28,189,24, +102,21,48,18,242,14,194,11,161,8,102,5,42,2,15,255,13,252,27,249,57,246,122,243,208,240,15,238,79,235,178,232, +37,230,163,227,73,225,39,223,24,221,248,218,11,217,130,215,24,214,171,212,98,211,47,210,247,208,157,207,18,206,130,204, +41,203,9,202,24,201,97,200,254,199,242,199,42,200,160,200,69,201,20,202,61,203,205,204,158,206,151,208,178,210,242,212, +66,215,137,217,195,219,211,221,161,223,98,225,41,227,202,228,64,230,165,231,11,233,92,234,113,235,99,236,84,237,64,238, +61,239,70,240,47,241,22,242,26,243,37,244,49,245,56,246,34,247,218,247,83,248,165,248,227,248,8,249,22,249,255,248, +182,248,64,248,133,247,140,246,130,245,81,244,243,242,156,241,91,240,43,239,17,238,236,236,178,235,118,234,51,233,244,231, +207,230,212,229,24,229,151,228,70,228,23,228,249,227,255,227,87,228,0,229,216,229,212,230,11,232,120,233,240,234,102,236, +244,237,172,239,149,241,149,243,135,245,96,247,47,249,41,251,104,253,168,255,185,1,178,3,171,5,186,7,203,9,192,11, +180,13,161,15,102,17,11,19,130,20,211,21,49,23,130,24,158,25,140,26,60,27,186,27,7,28,224,27,86,27,180,26, +226,25,198,24,120,23,7,22,115,20,173,18,169,16,120,14,27,12,163,9,62,7,9,5,8,3,54,1,171,255,136,254, +162,253,201,252,47,252,231,251,196,251,215,251,57,252,186,252,55,253,213,253,168,254,133,255,94,0,58,1,0,2,160,2, +45,3,191,3,108,4,32,5,199,5,141,6,122,7,112,8,113,9,99,10,40,11,207,11,81,12,186,12,45,13,140,13, +198,13,0,14,55,14,60,14,254,13,154,13,44,13,197,12,145,12,151,12,164,12,179,12,233,12,57,13,154,13,19,14, +143,14,252,14,91,15,171,15,218,15,238,15,30,16,128,16,236,16,111,17,45,18,40,19,98,20,203,21,85,23,40,25, +47,27,44,29,50,31,106,33,165,35,174,37,148,39,101,41,241,42,55,44,110,45,118,46,32,47,128,47,140,47,61,47, +185,46,254,45,0,45,193,43,50,42,125,40,209,38,16,37,47,35,69,33,104,31,163,29,233,27,61,26,196,24,117,23, +23,22,153,20,255,18,58,17,61,15,58,13,90,11,109,9,82,7,48,5,20,3,10,1,22,255,14,253,254,250,6,249, +255,246,217,244,149,242,8,240,50,237,46,234,246,230,160,227,71,224,217,220,129,217,133,214,211,211,89,209,73,207,151,205, +23,204,246,202,85,202,22,202,55,202,167,202,60,203,6,204,13,205,51,206,149,207,101,209,149,211,6,214,202,216,243,219, +50,223,70,226,100,229,141,232,115,235,38,238,209,240,101,243,216,245,18,248,18,250,10,252,8,254,0,0,203,1,36,3, +38,4,16,5,179,5,231,5,184,5,20,5,1,4,147,2,207,0,193,254,109,252,230,249,83,247,189,244,62,242,251,239, +199,237,123,235,42,233,206,230,89,228,199,225,23,223,100,220,196,217,32,215,137,212,51,210,21,208,24,206,117,204,86,203, +128,202,218,201,128,201,74,201,28,201,19,201,37,201,42,201,56,201,131,201,19,202,206,202,176,203,201,204,17,206,146,207, +111,209,163,211,40,214,1,217,27,220,110,223,246,226,146,230,60,234,6,238,232,241,219,245,232,249,8,254,46,2,104,6, +165,10,146,14,25,18,111,21,114,24,227,26,229,28,173,30,49,32,99,33,70,34,224,34,56,35,111,35,156,35,151,35, +101,35,87,35,95,35,84,35,101,35,166,35,10,36,170,36,122,37,101,38,130,39,233,40,155,42,136,44,173,46,20,49, +160,51,53,54,214,56,90,59,158,61,182,63,121,65,178,66,123,67,222,67,203,67,112,67,217,66,207,65,90,64,192,62, +241,60,174,58,38,56,151,53,249,50,108,48,44,46,25,44,27,42,62,40,129,38,252,36,181,35,120,34,52,33,252,31, +182,30,68,29,163,27,197,25,146,23,254,20,255,17,157,14,9,11,134,7,57,4,26,1,14,254,17,251,54,248,114,245, +174,242,233,239,32,237,77,234,144,231,10,229,179,226,124,224,110,222,152,220,28,219,29,218,140,217,105,217,216,217,194,218, +0,220,193,221,255,223,96,226,210,228,85,231,201,233,58,236,147,238,167,240,159,242,133,244,73,246,13,248,182,249,241,250, +195,251,78,252,156,252,159,252,50,252,119,251,177,250,212,249,215,248,194,247,124,246,11,245,149,243,41,242,206,240,126,239, +78,238,109,237,191,236,29,236,180,235,157,235,184,235,248,235,102,236,7,237,210,237,175,238,146,239,123,240,92,241,42,242, +211,242,55,243,87,243,73,243,11,243,163,242,46,242,176,241,26,241,129,240,15,240,210,239,198,239,209,239,229,239,48,240, +237,240,33,242,177,243,146,245,217,247,152,250,167,253,219,0,79,4,40,8,64,12,90,16,114,20,146,24,164,28,124,32, +219,35,185,38,68,41,125,43,58,45,128,46,110,47,13,48,102,48,148,48,190,48,240,48,12,49,11,49,237,48,146,48, +237,47,13,47,255,45,192,44,54,43,96,41,75,39,234,36,93,34,219,31,72,29,137,26,197,23,10,21,82,18,148,15, +185,12,199,9,198,6,157,3,57,0,142,252,182,248,2,245,124,241,252,237,153,234,103,231,89,228,116,225,168,222,7,220, +206,217,208,215,177,213,125,211,92,209,92,207,137,205,212,203,32,202,119,200,230,198,104,197,254,195,184,194,166,193,203,192, +30,192,165,191,93,191,36,191,231,190,191,190,184,190,202,190,3,191,117,191,22,192,233,192,248,193,39,195,70,196,73,197, +65,198,55,199,18,200,186,200,81,201,6,202,192,202,110,203,41,204,239,204,193,205,180,206,188,207,210,208,1,210,43,211, +60,212,77,213,98,214,118,215,153,216,212,217,82,219,62,221,159,223,137,226,4,230,236,233,76,238,49,243,93,248,149,253, +209,2,245,7,209,12,107,17,235,21,67,26,72,30,5,34,124,37,160,40,166,43,160,46,101,49,247,51,46,54,199,55, +242,56,222,57,78,58,37,58,117,57,79,56,234,54,102,53,196,51,50,50,216,48,210,47,56,47,240,46,236,46,79,47, +3,48,224,48,238,49,20,51,45,52,80,53,126,54,149,55,160,56,196,57,250,58,31,60,60,61,118,62,169,63,154,64, +107,65,74,66,24,67,208,67,173,68,187,69,210,70,1,72,102,73,214,74,41,76,125,77,205,78,225,79,166,80,11,81, +238,80,113,80,194,79,186,78,73,77,151,75,177,73,170,71,187,69,238,67,31,66,77,64,121,62,111,60,36,58,178,55, +237,52,185,49,52,46,66,42,199,37,19,33,84,28,120,23,166,18,251,13,97,9,205,4,60,0,180,251,86,247,18,243, +199,238,135,234,87,230,25,226,180,221,36,217,145,212,22,208,177,203,134,199,187,195,66,192,25,189,71,186,192,183,154,181, +212,179,54,178,170,176,61,175,245,173,228,172,61,172,23,172,74,172,183,172,130,173,175,174,4,176,130,177,63,179,23,181, +17,183,48,185,40,187,228,188,158,190,95,192,29,194,224,195,169,197,130,199,122,201,170,203,22,206,115,208,153,210,190,212, +227,214,206,216,145,218,44,220,116,221,157,222,233,223,49,225,83,226,109,227,133,228,145,229,172,230,215,231,228,232,210,233, +192,234,150,235,65,236,213,236,69,237,104,237,57,237,208,236,58,236,118,235,145,234,155,233,160,232,186,231,240,230,15,230, +5,229,245,227,220,226,176,225,149,224,144,223,174,222,39,222,246,221,245,221,56,222,206,222,177,223,228,224,92,226,8,228, +219,229,208,231,253,233,93,236,204,238,74,241,217,243,107,246,23,249,199,251,64,254,162,0,37,3,166,5,0,8,50,10, +49,12,234,13,88,15,116,16,60,17,207,17,101,18,238,18,48,19,82,19,149,19,3,20,163,20,77,21,192,21,29,22, +133,22,187,22,187,22,197,22,222,22,4,23,80,23,196,23,92,24,39,25,47,26,113,27,241,28,214,30,36,33,160,35, +77,38,81,41,117,44,137,47,184,50,0,54,42,57,52,60,58,63,77,66,115,69,146,72,123,75,21,78,91,80,71,82, +219,83,21,85,212,85,3,86,199,85,61,85,108,84,114,83,107,82,96,81,100,80,115,79,114,78,102,77,97,76,88,75, +61,74,249,72,109,71,148,69,118,67,22,65,104,62,92,59,250,55,68,52,35,48,167,43,10,39,120,34,238,29,31,25, +237,19,166,14,107,9,21,4,178,254,87,249,17,244,255,238,20,234,81,229,1,225,54,221,195,217,160,214,192,211,23,209, +185,206,169,204,230,202,130,201,113,200,189,199,142,199,207,199,84,200,29,201,73,202,239,203,244,205,34,208,112,210,228,212, +111,215,248,217,78,220,78,222,14,224,157,225,241,226,15,228,243,228,148,229,248,229,23,230,240,229,131,229,198,228,183,227, +109,226,17,225,193,223,83,222,160,220,222,218,31,217,59,215,97,213,211,211,114,210,43,209,8,208,241,206,236,205,32,205, +139,204,22,204,192,203,140,203,116,203,106,203,88,203,53,203,21,203,10,203,21,203,56,203,130,203,16,204,245,204,3,206, +26,207,120,208,79,210,131,212,18,215,20,218,133,221,107,225,192,229,105,234,117,239,240,244,179,250,152,0,125,6,84,12, +45,18,254,23,169,29,56,35,147,40,135,45,246,49,196,53,247,56,175,59,225,61,138,63,211,64,197,65,102,66,192,66, +186,66,75,66,128,65,65,64,138,62,131,60,76,58,253,55,155,53,26,51,116,48,165,45,176,42,164,39,112,36,25,33, +215,29,176,26,143,23,138,20,175,17,254,14,130,12,28,10,188,7,136,5,136,3,178,1,1,0,89,254,181,252,58,251, +252,249,220,248,172,247,93,246,20,245,247,243,15,243,95,242,229,241,170,241,201,241,51,242,202,242,137,243,114,244,139,245, +217,246,66,248,179,249,71,251,252,252,159,254,17,0,91,1,128,2,98,3,213,3,186,3,20,3,251,1,123,0,148,254, +80,252,183,249,213,246,194,243,137,240,40,237,188,233,101,230,40,227,242,223,182,220,119,217,72,214,61,211,119,208,253,205, +173,203,164,201,55,200,97,199,246,198,14,199,197,199,6,201,182,202,206,204,69,207,2,210,11,213,148,216,140,220,190,224, +70,229,50,234,74,239,121,244,189,249,234,254,241,3,209,8,96,13,116,17,18,21,106,24,137,27,38,30,34,32,195,33, +25,35,246,35,75,36,37,36,161,35,222,34,216,33,125,32,223,30,9,29,243,26,165,24,61,22,224,19,170,17,173,15, +238,13,105,12,39,11,62,10,171,9,88,9,60,9,77,9,132,9,217,9,57,10,143,10,205,10,223,10,198,10,155,10, +97,10,1,10,146,9,87,9,89,9,102,9,131,9,219,9,109,10,41,11,3,12,232,12,210,13,196,14,187,15,221,16, +91,18,41,20,62,22,181,24,150,27,187,30,249,33,47,37,61,40,18,43,167,45,236,47,218,49,150,51,36,53,86,54, +45,55,207,55,45,56,54,56,251,55,133,55,217,54,0,54,234,52,115,51,128,49,30,47,93,44,30,41,68,37,227,32, +36,28,69,23,114,18,151,13,188,8,32,4,198,255,155,251,180,247,251,243,77,240,180,236,49,233,187,229,101,226,51,223, +51,220,130,217,40,215,47,213,161,211,92,210,69,209,129,208,42,208,62,208,207,208,240,209,146,211,143,213,210,215,92,218, +40,221,8,224,232,226,10,230,156,233,109,237,75,241,33,245,201,248,56,252,108,255,64,2,184,4,16,7,77,9,54,11, +171,12,181,13,106,14,193,14,184,14,112,14,201,13,144,12,3,11,101,9,147,7,116,5,29,3,149,0,246,253,97,251, +220,248,116,246,60,244,33,242,17,240,56,238,213,236,197,235,176,234,167,233,208,232,243,231,219,230,138,229,250,227,33,226, +16,224,220,221,149,219,51,217,184,214,53,212,158,209,18,207,213,204,200,202,185,200,229,198,106,197,38,196,25,195,72,194, +199,193,189,193,29,194,212,194,4,196,169,197,164,199,8,202,226,204,30,208,147,211,17,215,143,218,12,222,83,225,79,228, +42,231,222,233,84,236,160,238,195,240,138,242,240,243,36,245,33,246,189,246,255,246,3,247,195,246,68,246,161,245,235,244, +46,244,129,243,239,242,115,242,9,242,198,241,195,241,255,241,121,242,61,243,52,244,59,245,87,246,160,247,21,249,151,250, +32,252,203,253,166,255,195,1,58,4,246,6,225,9,6,13,85,16,171,19,17,23,133,26,236,29,63,33,135,36,192,39, +192,42,107,45,234,47,73,50,110,52,132,54,142,56,57,58,156,59,255,60,67,62,78,63,66,64,60,65,84,66,128,67, +170,68,253,69,136,71,30,73,197,74,104,76,192,77,196,78,116,79,180,79,125,79,189,78,100,77,136,75,36,73,32,70, +169,66,5,63,74,59,90,55,52,51,31,47,73,43,143,39,234,35,120,32,67,29,74,26,146,23,50,21,64,19,180,17, +170,16,75,16,104,16,228,16,227,17,68,19,195,20,92,22,254,23,145,25,32,27,142,28,187,29,181,30,114,31,222,31, +238,31,149,31,239,30,44,30,82,29,110,28,146,27,179,26,228,25,60,25,115,24,76,23,228,21,75,20,114,18,106,16, +62,14,224,11,118,9,31,7,170,4,13,2,105,255,147,252,102,249,0,246,104,242,142,238,119,234,27,230,142,225,237,220, +20,216,0,211,233,205,195,200,116,195,32,190,202,184,111,179,68,174,90,169,146,164,4,160,249,155,143,152,150,149,254,146, +23,145,9,144,198,143,84,144,173,145,179,147,102,150,203,153,208,157,74,162,10,167,38,172,211,177,243,183,60,190,164,196, +86,203,98,210,156,217,219,224,37,232,90,239,59,246,194,252,222,2,83,8,31,13,91,17,241,20,187,23,178,25,247,26, +159,27,140,27,223,26,224,25,127,24,173,22,162,20,101,18,211,15,233,12,178,9,81,6,223,2,78,255,178,251,65,248, +7,245,255,241,19,239,33,236,62,233,149,230,47,228,8,226,12,224,45,222,108,220,171,218,207,216,250,214,84,213,238,211, +206,210,221,209,26,209,167,208,147,208,227,208,158,209,197,210,87,212,92,214,208,216,156,219,158,222,234,225,176,229,224,233, +75,238,249,242,243,247,27,253,75,2,95,7,95,12,92,17,57,22,210,26,0,31,142,34,130,37,243,39,182,41,189,42, +44,43,10,43,79,42,5,41,62,39,24,37,145,34,164,31,150,28,144,25,121,22,113,19,178,16,65,14,69,12,238,10, +64,10,77,10,46,11,203,12,11,15,248,17,122,21,90,25,109,29,150,33,216,37,89,42,1,47,111,51,129,55,78,59, +204,62,250,65,239,68,141,71,188,73,182,75,155,77,61,79,136,80,153,81,111,82,216,82,195,82,108,82,240,81,28,81, +240,79,181,78,136,77,86,76,19,75,173,73,15,72,53,70,44,68,243,65,128,63,192,60,163,57,49,54,134,50,153,46, +83,42,193,37,251,32,30,28,81,23,132,18,163,13,237,8,125,4,15,0,158,251,97,247,66,243,18,239,228,234,218,230, +241,226,35,223,150,219,90,216,90,213,178,210,146,208,236,206,190,205,23,205,202,204,208,204,78,205,51,206,111,207,12,209, +249,210,65,213,6,216,51,219,167,222,72,226,241,229,165,233,99,237,8,241,145,244,242,247,248,250,145,253,170,255,33,1, +6,2,96,2,34,2,103,1,79,0,244,254,118,253,190,251,178,249,101,247,198,244,201,241,175,238,151,235,116,232,80,229, +41,226,249,222,192,219,118,216,33,213,209,209,128,206,59,203,15,200,238,196,231,193,7,191,43,188,84,185,164,182,2,180, +95,177,255,174,11,173,77,171,173,169,142,168,67,168,191,168,17,170,111,172,170,175,109,179,186,183,151,188,233,193,162,199, +188,205,55,212,22,219,70,226,185,233,117,241,90,249,67,1,48,9,28,17,229,24,101,32,106,39,211,45,165,51,218,56, +64,61,193,64,105,67,65,69,82,70,171,70,108,70,227,69,63,69,100,68,64,67,223,65,48,64,44,62,225,59,87,57, +164,54,220,51,4,49,27,46,43,43,65,40,108,37,149,34,168,31,172,28,158,25,129,22,122,19,114,16,78,13,43,10, +245,6,111,3,199,255,58,252,191,248,94,245,77,242,185,239,167,237,252,235,196,234,20,234,196,233,178,233,236,233,115,234, +78,235,144,236,56,238,87,240,254,242,45,246,225,249,232,253,4,2,58,6,126,10,147,14,84,18,159,21,102,24,192,26, +107,28,20,29,245,28,64,28,181,26,84,24,89,21,206,17,174,13,25,9,47,4,246,254,116,249,209,243,59,238,190,232, +87,227,245,221,179,216,234,211,213,207,117,204,228,201,31,200,17,199,216,198,101,199,92,200,168,201,109,203,163,205,43,208, +252,210,17,214,119,217,32,221,233,224,210,228,222,232,8,237,86,241,187,245,24,250,100,254,146,2,121,6,1,10,46,13, +15,16,168,18,250,20,19,23,1,25,198,26,106,28,253,29,124,31,195,32,195,33,150,34,42,35,64,35,213,34,13,34, +230,32,99,31,159,29,162,27,105,25,0,23,128,20,247,17,92,15,175,12,22,10,178,7,135,5,145,3,207,1,69,0, +232,254,161,253,137,252,207,251,114,251,116,251,251,251,15,253,157,254,148,0,219,2,88,5,233,7,127,10,43,13,240,15, +199,18,217,21,57,25,176,28,22,32,116,35,208,38,36,42,131,45,245,48,94,52,154,55,144,58,43,61,77,63,233,64, +229,65,53,66,12,66,132,65,113,64,215,62,232,60,188,58,103,56,6,54,150,51,9,49,89,46,142,43,170,40,130,37, +0,34,90,30,179,26,237,22,230,18,171,14,93,10,5,6,146,1,6,253,121,248,250,243,150,239,61,235,218,230,127,226, +59,222,8,218,3,214,76,210,214,206,167,203,208,200,73,198,253,195,226,193,18,192,169,190,143,189,173,188,17,188,169,187, +101,187,106,187,232,187,232,188,98,190,101,192,16,195,101,198,75,202,174,206,107,211,108,216,157,221,181,226,133,231,45,236, +160,240,179,244,105,248,168,251,102,254,235,0,70,3,51,5,163,6,185,7,148,8,46,9,98,9,65,9,229,8,41,8, +8,7,178,5,18,4,14,2,206,255,118,253,14,251,171,248,105,246,100,244,171,242,52,241,253,239,4,239,67,238,163,237, +247,236,47,236,103,235,153,234,174,233,165,232,126,231,61,230,240,228,125,227,198,225,221,223,203,221,139,219,73,217,61,215, +127,213,36,212,74,211,235,210,219,210,36,211,246,211,65,213,221,214,207,216,31,219,195,221,188,224,1,228,125,231,21,235, +169,238,29,242,88,245,76,248,255,250,126,253,209,255,2,2,16,4,213,5,49,7,45,8,224,8,74,9,75,9,211,8, +243,7,211,6,138,5,16,4,132,2,43,1,22,0,23,255,24,254,57,253,164,252,91,252,58,252,93,252,254,252,253,253, +42,255,161,0,99,2,79,4,95,6,139,8,209,10,61,13,210,15,180,18,238,21,58,25,113,28,163,31,171,34,94,37, +188,39,213,41,214,43,205,45,139,47,15,49,140,50,8,52,156,53,117,55,124,57,140,59,163,61,179,63,191,65,196,67, +124,69,174,70,102,71,188,71,180,71,89,71,182,70,194,69,121,68,239,66,36,65,10,63,199,60,126,58,24,56,147,53, +246,50,22,48,254,44,240,41,238,38,242,35,37,33,144,30,46,28,253,25,224,23,192,21,161,19,134,17,141,15,190,13, +239,11,38,10,171,8,140,7,151,6,182,5,19,5,219,4,6,5,136,5,103,6,132,7,190,8,20,10,95,11,114,12, +81,13,246,13,114,14,247,14,95,15,109,15,77,15,28,15,182,14,34,14,116,13,143,12,94,11,244,9,84,8,105,6, +40,4,168,1,6,255,47,252,26,249,236,245,179,242,94,239,28,236,27,233,44,230,35,227,22,224,7,221,217,217,138,214, +40,211,185,207,64,204,186,200,70,197,20,194,41,191,102,188,183,185,30,183,184,180,127,178,81,176,80,174,182,172,96,171, +32,170,5,169,47,168,180,167,152,167,210,167,121,168,183,169,147,171,254,173,249,176,148,180,180,184,26,189,191,193,171,198, +207,203,36,209,145,214,214,219,208,224,148,229,88,234,69,239,51,244,234,248,116,253,199,1,210,5,143,9,195,12,87,15, +146,17,100,19,149,20,75,21,149,21,99,21,216,20,252,19,222,18,165,17,70,16,223,14,180,13,147,12,74,11,23,10, +8,9,0,8,21,7,67,6,98,5,118,4,147,3,179,2,200,1,211,0,221,255,225,254,209,253,155,252,84,251,78,250, +144,249,205,248,255,247,89,247,226,246,161,246,136,246,113,246,119,246,176,246,20,247,186,247,151,248,156,249,8,251,211,252, +168,254,143,0,159,2,193,4,20,7,177,9,139,12,170,15,243,18,68,22,184,25,52,29,96,32,35,35,135,37,130,39, +7,41,251,41,89,42,67,42,182,41,149,40,243,38,0,37,200,34,58,32,98,29,95,26,57,23,1,20,184,16,67,13, +171,9,33,6,178,2,94,255,41,252,26,249,116,246,125,244,57,243,148,242,129,242,236,242,207,243,32,245,202,246,198,248, +12,251,126,253,34,0,0,3,248,5,3,9,54,12,125,15,171,18,198,21,234,24,41,28,117,31,157,34,135,37,59,40, +184,42,254,44,11,47,167,48,191,49,136,50,5,51,8,51,171,50,24,50,90,49,108,48,20,47,42,45,219,42,54,40, +35,37,195,33,66,30,153,26,206,22,1,19,72,15,162,11,15,8,162,4,81,1,6,254,231,250,25,248,163,245,159,243, +11,242,187,240,193,239,69,239,61,239,145,239,42,240,18,241,101,242,19,244,242,245,4,248,74,250,167,252,252,254,47,1, +62,3,41,5,197,6,19,8,79,9,131,10,152,11,181,12,8,14,126,15,232,16,51,18,98,19,112,20,75,21,217,21, +254,21,201,21,104,21,205,20,188,19,51,18,97,16,82,14,252,11,109,9,194,6,255,3,28,1,47,254,94,251,162,248, +191,245,147,242,39,239,127,235,151,231,128,227,82,223,34,219,13,215,39,211,132,207,58,204,88,201,212,198,144,196,152,194, +35,193,41,192,99,191,223,190,197,190,5,191,137,191,65,192,33,193,68,194,158,195,5,197,155,198,136,200,170,202,234,204, +60,207,137,209,214,211,42,214,115,216,169,218,245,220,143,223,124,226,155,229,226,232,73,236,174,239,8,243,98,246,186,249, +25,253,114,0,154,3,143,6,97,9,13,12,143,14,227,16,2,19,212,20,40,22,253,22,134,23,206,23,199,23,123,23, +217,22,204,21,132,20,61,19,221,17,52,16,115,14,203,12,38,11,138,9,19,8,176,6,114,5,115,4,151,3,210,2, +32,2,111,1,238,0,170,0,92,0,1,0,207,255,197,255,225,255,36,0,109,0,180,0,5,1,74,1,96,1,56,1, +225,0,104,0,194,255,242,254,252,253,219,252,185,251,190,250,232,249,70,249,215,248,142,248,146,248,229,248,98,249,19,250, +236,250,222,251,24,253,126,254,197,255,19,1,130,2,227,3,33,5,34,6,232,6,153,7,22,8,57,8,40,8,222,7, +67,7,110,6,79,5,194,3,225,1,203,255,137,253,49,251,227,248,187,246,195,244,250,242,108,241,38,240,70,239,237,238, +253,238,86,239,4,240,245,240,11,242,95,243,15,245,47,247,192,249,147,252,130,255,133,2,116,5,45,8,201,10,74,13, +130,15,124,17,110,19,92,21,31,23,158,24,214,25,211,26,151,27,24,28,92,28,107,28,68,28,245,27,111,27,153,26, +174,25,225,24,40,24,138,23,4,23,117,22,17,22,15,22,71,22,170,22,80,23,35,24,7,25,253,25,235,26,168,27, +31,28,97,28,130,28,114,28,44,28,212,27,138,27,98,27,74,27,32,27,4,27,27,27,92,27,225,27,186,28,201,29, +25,31,178,32,122,34,132,36,188,38,235,40,37,43,134,45,2,48,158,50,51,53,155,55,233,57,244,59,132,61,177,62, +119,63,162,63,23,63,210,61,15,60,24,58,200,55,228,52,124,49,170,45,144,41,66,37,164,32,191,27,193,22,165,17, +125,12,136,7,198,2,23,254,141,249,70,245,56,241,97,237,209,233,118,230,81,227,119,224,185,221,244,218,93,216,232,213, +66,211,121,208,160,205,120,202,26,199,225,195,192,192,166,189,210,186,82,184,249,181,204,179,213,177,241,175,24,174,78,172, +131,170,222,168,163,167,214,166,100,166,78,166,121,166,207,166,108,167,92,168,152,169,46,171,31,173,65,175,121,177,233,179, +147,182,54,185,198,187,134,190,122,193,136,196,193,199,39,203,193,206,178,210,225,214,42,219,156,223,53,228,200,232,47,237, +76,241,27,245,162,248,222,251,235,254,224,1,164,4,31,7,83,9,66,11,243,12,87,14,105,15,51,16,177,16,242,16, +8,17,207,16,65,16,143,15,199,14,226,13,243,12,19,12,101,11,247,10,177,10,136,10,112,10,77,10,38,10,239,9, +115,9,192,8,13,8,71,7,51,6,219,4,119,3,6,2,105,0,196,254,60,253,173,251,254,249,59,248,130,246,247,244, +147,243,81,242,110,241,0,241,238,240,71,241,14,242,65,243,253,244,49,247,179,249,147,252,221,255,112,3,28,7,177,10, +43,14,179,17,81,21,208,24,230,27,153,30,61,33,229,35,105,38,222,40,65,43,65,45,174,46,150,47,23,48,55,48, +223,47,29,47,41,46,26,45,252,43,247,42,35,42,136,41,24,41,199,40,195,40,51,41,254,41,22,43,115,44,240,45, +99,47,168,48,164,49,111,50,36,51,178,51,35,52,165,52,70,53,218,53,49,54,70,54,1,54,54,53,251,51,146,50, +34,49,202,47,149,46,99,45,57,44,64,43,120,42,211,41,108,41,61,41,20,41,243,40,229,40,176,40,31,40,51,39, +216,37,249,35,149,33,158,30,30,27,73,23,82,19,90,15,116,11,169,7,12,4,148,0,47,253,231,249,163,246,52,243, +167,239,10,236,100,232,215,228,94,225,234,221,174,218,192,215,43,213,40,211,186,209,188,208,52,208,13,208,54,208,205,208, +190,209,208,210,231,211,8,213,79,214,186,215,50,217,192,218,91,220,248,221,198,223,204,225,213,227,222,229,247,231,32,234, +58,236,250,237,66,239,59,240,231,240,77,241,170,241,11,242,94,242,164,242,209,242,236,242,219,242,93,242,129,241,125,240, +63,239,199,237,39,236,83,234,96,232,106,230,102,228,94,226,89,224,104,222,193,220,110,219,83,218,99,217,117,216,114,215, +147,214,215,213,249,212,23,212,104,211,192,210,1,210,87,209,232,208,185,208,185,208,191,208,218,208,95,209,92,210,133,211, +189,212,45,214,233,215,230,217,32,220,168,222,132,225,156,228,245,231,171,235,168,239,201,243,28,248,157,252,30,1,101,5, +83,9,231,12,57,16,91,19,78,22,6,25,145,27,227,29,200,31,88,33,240,34,132,36,204,37,201,38,125,39,200,39, +193,39,151,39,59,39,118,38,63,37,187,35,246,33,1,32,11,30,28,28,59,26,156,24,49,23,219,21,180,20,170,19, +164,18,194,17,212,16,161,15,95,14,37,13,199,11,71,10,157,8,191,6,215,4,1,3,64,1,136,255,172,253,184,251, +249,249,120,248,6,247,164,245,124,244,167,243,9,243,120,242,245,241,161,241,117,241,89,241,95,241,195,241,128,242,119,243, +171,244,246,245,27,247,51,248,76,249,58,250,6,251,203,251,125,252,28,253,162,253,247,253,10,254,187,253,9,253,23,252, +229,250,125,249,9,248,159,246,89,245,77,244,106,243,186,242,108,242,131,242,10,243,20,244,142,245,105,247,159,249,248,251, +56,254,122,0,10,3,228,5,198,8,145,11,65,14,203,16,66,19,182,21,34,24,168,26,87,29,232,31,36,34,8,36, +150,37,200,38,130,39,174,39,93,39,157,38,131,37,60,36,218,34,71,33,121,31,136,29,173,27,13,26,158,24,106,23, +127,22,205,21,75,21,238,20,146,20,67,20,35,20,22,20,249,19,202,19,114,19,237,18,98,18,204,17,15,17,88,16, +216,15,106,15,239,14,107,14,213,13,78,13,13,13,232,12,164,12,93,12,41,12,253,11,226,11,212,11,212,11,252,11, +87,12,234,12,190,13,207,14,24,16,126,17,216,18,24,20,79,21,171,22,77,24,8,26,163,27,7,29,39,30,20,31, +231,31,143,32,8,33,85,33,105,33,74,33,202,32,166,31,21,30,73,28,247,25,28,23,28,20,20,17,246,13,176,10, +36,7,86,3,112,255,163,251,244,247,52,244,95,240,180,236,82,233,46,230,51,227,76,224,170,221,120,219,131,217,175,215, +21,214,171,212,92,211,33,210,233,208,180,207,127,206,72,205,51,204,61,203,51,202,31,201,38,200,75,199,146,198,244,197, +90,197,207,196,95,196,230,195,80,195,195,194,103,194,53,194,23,194,7,194,29,194,126,194,47,195,27,196,71,197,188,198, +141,200,228,202,184,205,201,208,255,211,82,215,169,218,253,221,71,225,110,228,116,231,74,234,196,236,245,238,22,241,30,243, +227,244,122,246,26,248,163,249,239,250,54,252,141,253,196,254,242,255,68,1,154,2,218,3,22,5,93,6,160,7,180,8, +144,9,81,10,242,10,106,11,200,11,33,12,116,12,141,12,71,12,218,11,92,11,166,10,211,9,245,8,222,7,166,6, +100,5,241,3,100,2,233,0,128,255,46,254,207,252,61,251,169,249,44,248,145,246,245,244,160,243,170,242,27,242,251,241, +47,242,160,242,91,243,89,244,102,245,115,246,143,247,140,248,87,249,9,250,99,250,49,250,211,249,132,249,24,249,152,248, +52,248,241,247,214,247,240,247,66,248,205,248,101,249,223,249,98,250,32,251,0,252,233,252,230,253,10,255,103,0,28,2, +56,4,178,6,109,9,65,12,36,15,21,18,0,21,2,24,66,27,140,30,161,33,148,36,113,39,59,42,3,45,166,47, +9,50,79,52,116,54,83,56,252,57,143,59,15,61,95,62,108,63,74,64,4,65,170,65,116,66,124,67,145,68,137,69, +75,70,218,70,81,71,165,71,186,71,147,71,44,71,141,70,209,69,0,69,24,68,22,67,242,65,179,64,90,63,201,61, +248,59,13,58,53,56,129,54,213,52,30,51,73,49,36,47,176,44,1,42,4,39,229,35,241,32,34,30,101,27,180,24, +244,21,74,19,247,16,217,14,186,12,165,10,197,8,29,7,136,5,9,4,219,2,243,1,56,1,223,0,229,0,5,1, +38,1,72,1,124,1,216,1,58,2,122,2,153,2,140,2,72,2,214,1,33,1,235,255,18,254,205,251,113,249,10,247, +139,244,4,242,97,239,161,236,232,233,47,231,76,228,23,225,116,221,152,217,189,213,202,209,208,205,6,202,95,198,212,194, +110,191,5,188,139,184,36,181,206,177,132,174,96,171,104,168,144,165,224,162,91,160,248,157,188,155,213,153,103,152,112,151, +236,150,218,150,58,151,10,152,33,153,79,154,154,155,7,157,132,158,28,160,244,161,28,164,155,166,129,169,231,172,213,176, +58,181,33,186,150,191,94,197,33,203,182,208,14,214,55,219,92,224,129,229,120,234,43,239,181,243,42,248,143,252,211,0, +223,4,204,8,168,12,40,16,36,19,186,21,225,23,132,25,190,26,122,27,152,27,70,27,183,26,235,25,229,24,212,23, +254,22,109,22,4,22,199,21,176,21,173,21,196,21,192,21,114,21,255,20,96,20,117,19,104,18,71,17,4,16,194,14, +152,13,173,12,31,12,144,11,192,10,239,9,56,9,157,8,47,8,184,7,43,7,187,6,77,6,208,5,142,5,172,5, +42,6,32,7,141,8,83,10,104,12,204,14,128,17,113,20,135,23,156,26,130,29,51,32,170,34,212,36,209,38,171,40, +37,42,64,43,28,44,167,44,219,44,172,44,255,43,227,42,94,41,95,39,1,37,62,34,32,31,26,28,114,25,253,22, +172,20,156,18,217,16,93,15,0,14,188,12,193,11,31,11,161,10,17,10,136,9,88,9,146,9,11,10,199,10,194,11, +216,12,56,14,33,16,93,18,161,20,217,22,20,25,95,27,152,29,141,31,73,33,233,34,93,36,155,37,177,38,186,39, +0,41,185,42,149,44,34,46,85,47,43,48,124,48,79,48,183,47,163,46,38,45,95,43,72,41,249,38,151,36,24,34, +100,31,125,28,138,25,202,22,91,20,44,18,26,16,251,13,192,11,107,9,229,6,36,4,91,1,202,254,128,252,108,250, +150,248,40,247,50,246,156,245,74,245,31,245,4,245,237,244,215,244,196,244,157,244,76,244,1,244,227,243,236,243,27,244, +86,244,144,244,13,245,221,245,169,246,103,247,71,248,55,249,246,249,78,250,72,250,29,250,216,249,117,249,13,249,172,248, +76,248,242,247,139,247,25,247,189,246,127,246,59,246,174,245,201,244,200,243,178,242,103,241,18,240,213,238,162,237,125,236, +116,235,115,234,97,233,73,232,78,231,69,230,210,228,8,227,22,225,234,222,143,220,238,217,180,214,18,211,107,207,195,203, +36,200,190,196,192,193,111,191,202,189,151,188,200,187,65,187,230,186,241,186,124,187,98,188,150,189,240,190,61,192,160,193, +82,195,105,197,233,199,179,202,167,205,200,208,15,212,108,215,231,218,133,222,49,226,215,229,102,233,186,236,208,239,243,242, +62,246,120,249,143,252,165,255,208,2,24,6,81,9,78,12,46,15,249,17,126,20,206,22,4,25,244,26,154,28,28,30, +118,31,162,32,177,33,177,34,143,35,38,36,122,36,158,36,117,36,6,36,123,35,169,34,116,33,45,32,245,30,152,29, +36,28,208,26,144,25,60,24,203,22,71,21,216,19,177,18,210,17,20,17,90,16,156,15,208,14,221,13,193,12,166,11, +150,10,118,9,113,8,169,7,243,6,97,6,25,6,211,5,84,5,181,4,245,3,22,3,80,2,196,1,94,1,246,0, +162,0,153,0,197,0,227,0,4,1,70,1,138,1,179,1,195,1,204,1,205,1,159,1,23,1,35,0,225,254,150,253, +72,252,207,250,61,249,169,247,11,246,136,244,59,243,25,242,40,241,98,240,154,239,183,238,172,237,137,236,116,235,131,234, +194,233,63,233,2,233,30,233,130,233,244,233,106,234,239,234,162,235,183,236,38,238,174,239,61,241,221,242,162,244,149,246, +119,248,74,250,79,252,97,254,87,0,118,2,208,4,46,7,130,9,202,11,14,14,95,16,175,18,243,20,39,23,44,25, +225,26,43,28,41,29,34,30,6,31,172,31,63,32,181,32,182,32,82,32,202,31,25,31,36,30,12,29,21,28,83,27, +163,26,15,26,147,25,226,24,5,24,106,23,47,23,36,23,62,23,128,23,219,23,89,24,15,25,235,25,202,26,198,27, +9,29,139,30,80,32,105,34,197,36,104,39,71,42,24,45,203,47,143,50,71,53,194,55,247,57,212,59,97,61,228,62, +102,64,146,65,60,66,134,66,127,66,5,66,4,65,114,63,94,61,242,58,45,56,221,52,32,49,74,45,98,41,50,37, +179,32,21,28,100,23,148,18,220,13,124,9,65,5,217,0,55,252,118,247,192,242,37,238,136,233,239,228,168,224,227,220, +130,217,100,214,134,211,235,208,154,206,148,204,192,202,9,201,115,199,229,197,50,196,81,194,74,192,37,190,245,187,184,185, +124,183,116,181,171,179,12,178,145,176,59,175,24,174,62,173,166,172,81,172,42,172,4,172,16,172,143,172,96,173,109,174, +205,175,166,177,51,180,67,183,87,186,123,189,2,193,207,196,178,200,157,204,134,208,110,212,56,216,189,219,253,222,247,225, +186,228,99,231,221,233,28,236,58,238,30,240,181,241,45,243,149,244,217,245,20,247,105,248,192,249,224,250,197,251,129,252, +247,252,34,253,40,253,6,253,164,252,5,252,72,251,169,250,57,250,209,249,119,249,38,249,198,248,158,248,231,248,106,249, +13,250,228,250,229,251,22,253,83,254,89,255,54,0,254,0,151,1,27,2,171,2,61,3,187,3,7,4,45,4,98,4, +162,4,206,4,223,4,197,4,121,4,19,4,186,3,164,3,210,3,253,3,28,4,81,4,155,4,20,5,220,5,211,6, +221,7,254,8,51,10,132,11,249,12,116,14,218,15,72,17,201,18,40,20,78,21,119,22,184,23,231,24,248,25,0,27, +4,28,17,29,65,30,157,31,9,33,101,34,181,35,242,36,7,38,10,39,38,40,90,41,156,42,239,43,87,45,211,46, +86,48,232,49,166,51,113,53,27,55,183,56,81,58,185,59,206,60,150,61,36,62,137,62,186,62,160,62,80,62,248,61, +158,61,50,61,189,60,57,60,139,59,209,58,58,58,184,57,47,57,145,56,210,55,249,54,237,53,120,52,173,50,180,48, +128,46,4,44,64,41,61,38,27,35,223,31,138,28,79,25,79,22,131,19,232,16,102,14,234,11,145,9,114,7,130,5, +184,3,50,2,237,0,165,255,71,254,13,253,1,252,46,251,200,250,171,250,146,250,141,250,138,250,93,250,24,250,170,249, +242,248,16,248,9,247,189,245,59,244,186,242,113,241,101,240,122,239,203,238,112,238,61,238,31,238,16,238,238,237,152,237, +240,236,13,236,66,235,109,234,42,233,162,231,41,230,183,228,56,227,163,225,3,224,128,222,18,221,143,219,250,217,100,216, +197,214,9,213,30,211,25,209,47,207,126,205,224,203,53,202,171,200,127,199,156,198,212,197,7,197,10,196,223,194,161,193, +78,192,247,190,182,189,136,188,150,187,255,186,183,186,214,186,95,187,51,188,95,189,200,190,42,192,150,193,20,195,109,196, +186,197,26,199,99,200,151,201,219,202,37,204,112,205,220,206,155,208,221,210,133,213,97,216,119,219,166,222,156,225,105,228, +64,231,7,234,147,236,223,238,230,240,222,242,24,245,140,247,26,250,212,252,182,255,184,2,243,5,35,9,236,11,111,14, +220,16,28,19,48,21,31,23,203,24,39,26,62,27,7,28,143,28,242,28,55,29,90,29,117,29,152,29,168,29,153,29, +128,29,77,29,243,28,138,28,12,28,119,27,14,27,254,26,59,27,160,27,12,28,125,28,245,28,62,29,36,29,188,28, +32,28,57,27,1,26,194,24,207,23,19,23,96,22,200,21,92,21,13,21,201,20,136,20,92,20,83,20,97,20,107,20, +58,20,175,19,8,19,88,18,95,17,66,16,69,15,70,14,67,13,102,12,167,11,17,11,166,10,26,10,69,9,91,8, +115,7,114,6,119,5,189,4,57,4,223,3,247,3,141,4,90,5,98,6,190,7,59,9,171,10,249,11,30,13,59,14, +57,15,3,16,220,16,198,17,139,18,88,19,79,20,73,21,84,22,146,23,235,24,59,26,125,27,190,28,239,29,207,30, +86,31,175,31,207,31,181,31,155,31,140,31,103,31,59,31,37,31,7,31,177,30,16,30,22,29,165,27,210,25,220,23, +200,21,133,19,34,17,151,14,218,11,18,9,86,6,138,3,162,0,199,253,49,251,244,248,9,247,103,245,253,243,197,242, +203,241,36,241,4,241,133,241,137,242,22,244,66,246,219,248,171,251,171,254,195,1,197,4,140,7,17,10,96,12,96,14, +2,16,128,17,254,18,105,20,218,21,114,23,31,25,232,26,220,28,215,30,196,32,172,34,99,36,186,37,180,38,68,39, +73,39,193,38,176,37,255,35,172,33,209,30,152,27,49,24,195,20,106,17,62,14,58,11,87,8,135,5,165,2,170,255, +174,252,184,249,210,246,244,243,236,240,178,237,107,234,18,231,171,227,66,224,169,220,235,216,95,213,26,210,7,207,59,204, +186,201,127,199,142,197,208,195,60,194,239,192,0,192,111,191,34,191,242,190,218,190,244,190,77,191,191,191,251,191,254,191, +25,192,108,192,216,192,83,193,226,193,127,194,40,195,209,195,100,196,219,196,68,197,150,197,174,197,151,197,133,197,150,197, +227,197,125,198,83,199,100,200,197,201,119,203,112,205,158,207,225,209,56,212,166,214,18,217,111,219,180,221,232,223,49,226, +125,228,151,230,158,232,165,234,144,236,99,238,31,240,186,241,109,243,108,245,166,247,3,250,98,252,164,254,217,0,23,3, +84,5,150,7,245,9,102,12,190,14,234,16,250,18,229,20,162,22,76,24,194,25,197,26,116,27,244,27,51,28,79,28, +104,28,84,28,251,27,115,27,181,26,208,25,232,24,239,23,209,22,202,21,253,20,82,20,197,19,93,19,246,18,110,18, +186,17,217,16,244,15,55,15,142,14,224,13,69,13,207,12,142,12,152,12,245,12,167,13,165,14,199,15,244,16,52,18, +152,19,45,21,216,22,107,24,232,25,146,27,140,29,185,31,239,33,40,36,105,38,170,40,232,42,42,45,115,47,179,49, +192,51,127,53,0,55,70,56,69,57,19,58,203,58,112,59,26,60,217,60,134,61,8,62,133,62,4,63,97,63,146,63, +147,63,89,63,9,63,196,62,92,62,160,61,158,60,104,59,21,58,209,56,152,55,47,54,93,52,22,50,119,47,138,44, +43,41,92,37,91,33,85,29,84,25,95,21,144,17,241,13,137,10,144,7,52,5,67,3,131,1,251,255,172,254,132,253, +126,252,133,251,104,250,242,248,4,247,193,244,112,242,64,240,71,238,126,236,230,234,175,233,1,233,183,232,134,232,60,232, +217,231,115,231,227,230,253,229,241,228,249,227,32,227,138,226,80,226,90,226,185,226,175,227,64,229,54,231,84,233,112,235, +148,237,194,239,169,241,255,242,208,243,46,244,52,244,53,244,72,244,65,244,56,244,92,244,139,244,172,244,200,244,200,244, +135,244,0,244,60,243,48,242,195,240,11,239,75,237,125,235,133,233,153,231,221,229,35,228,95,226,159,224,202,222,197,220, +111,218,186,215,213,212,238,209,252,206,29,204,144,201,101,199,148,197,43,196,48,195,132,194,28,194,33,194,150,194,56,195, +231,195,173,196,113,197,56,198,36,199,31,200,36,201,107,202,240,203,161,205,202,207,109,210,53,213,38,216,79,219,84,222, +15,225,162,227,240,229,219,231,117,233,200,234,0,236,95,237,216,238,77,240,204,241,77,243,193,244,38,246,112,247,160,248, +187,249,170,250,88,251,184,251,159,251,18,251,88,250,169,249,33,249,209,248,188,248,13,249,234,249,32,251,126,252,25,254, +209,255,80,1,116,2,62,3,181,3,16,4,124,4,219,4,36,5,132,5,6,6,149,6,70,7,29,8,218,8,96,9, +203,9,0,10,227,9,173,9,119,9,14,9,127,8,248,7,110,7,12,7,23,7,125,7,50,8,95,9,205,10,52,12, +160,13,3,15,44,16,47,17,37,18,247,18,166,19,60,20,201,20,117,21,58,22,231,22,124,23,32,24,223,24,164,25, +63,26,149,26,206,26,27,27,135,27,40,28,40,29,141,30,70,32,81,34,179,36,107,39,107,42,126,45,98,48,237,50, +26,53,8,55,198,56,23,58,198,58,9,59,55,59,92,59,136,59,255,59,220,60,19,62,175,63,154,65,138,67,143,69, +239,71,149,74,28,77,58,79,206,80,216,81,84,82,27,82,48,81,211,79,16,78,227,75,132,73,253,70,11,68,189,64, +70,61,119,57,48,53,188,48,65,44,167,39,251,34,72,30,120,25,157,20,234,15,113,11,56,7,64,3,90,255,120,251, +195,247,36,244,97,240,149,236,227,232,7,229,210,224,126,220,65,216,39,212,66,208,181,204,127,201,123,198,168,195,59,193, +87,191,246,189,15,189,140,188,81,188,125,188,67,189,139,190,64,192,132,194,95,197,156,200,33,204,6,208,72,212,166,216, +234,220,28,225,59,229,2,233,48,236,195,238,207,240,99,242,163,243,186,244,180,245,122,246,244,246,30,247,239,246,107,246, +172,245,172,244,93,243,234,241,117,240,245,238,121,237,25,236,196,234,129,233,114,232,160,231,30,231,242,230,207,230,117,230, +244,229,86,229,127,228,105,227,32,226,185,224,66,223,189,221,72,220,19,219,41,218,131,217,38,217,4,217,21,217,120,217, +39,218,232,218,147,219,28,220,139,220,227,220,32,221,86,221,159,221,243,221,92,222,254,222,234,223,51,225,253,226,48,229, +157,231,52,234,209,236,83,239,214,241,103,244,230,246,56,249,76,251,39,253,244,254,175,0,55,2,137,3,177,4,190,5, +207,6,222,7,187,8,80,9,138,9,71,9,163,8,237,7,95,7,20,7,28,7,149,7,152,8,12,10,187,11,121,13, +26,15,148,16,241,17,3,19,157,19,212,19,150,19,173,18,53,17,104,15,88,13,40,11,254,8,227,6,237,4,40,3, +122,1,234,255,136,254,66,253,32,252,60,251,160,250,99,250,135,250,229,250,120,251,89,252,138,253,15,255,226,0,211,2, +187,4,137,6,19,8,55,9,227,9,0,10,164,9,2,9,20,8,210,6,93,5,199,3,7,2,33,0,43,254,68,252, +124,250,216,248,95,247,25,246,12,245,78,244,226,243,176,243,173,243,215,243,33,244,151,244,56,245,247,245,232,246,7,248, +23,249,25,250,74,251,161,252,252,253,96,255,233,0,175,2,182,4,246,6,144,9,165,12,23,16,207,19,203,23,219,27, +216,31,184,35,77,39,111,42,50,45,165,47,196,49,155,51,43,53,138,54,239,55,75,57,97,58,54,59,240,59,129,60, +217,60,248,60,203,60,52,60,53,59,227,57,58,56,40,54,196,51,84,49,0,47,196,44,169,42,204,40,60,39,244,37, +224,36,235,35,13,35,62,34,73,33,238,31,67,30,132,28,169,26,172,24,216,22,78,21,191,19,236,17,227,15,189,13, +133,11,82,9,60,7,87,5,160,3,22,2,231,0,51,0,213,255,187,255,3,0,152,0,93,1,116,2,244,3,192,5, +178,7,153,9,73,11,196,12,6,14,253,14,191,15,104,16,240,16,110,17,8,18,152,18,241,18,47,19,82,19,46,19, +221,18,118,18,194,17,176,16,105,15,228,13,5,12,205,9,56,7,88,4,83,1,29,254,170,250,40,247,149,243,218,239, +31,236,116,232,180,228,232,224,52,221,148,217,15,214,186,210,143,207,154,204,245,201,162,199,161,197,220,195,20,194,45,192, +57,190,64,188,66,186,78,184,88,182,95,180,150,178,47,177,64,176,234,175,73,176,84,177,2,179,88,181,54,184,103,187, +223,190,168,194,166,198,160,202,97,206,204,209,239,212,219,215,136,218,240,220,28,223,13,225,217,226,142,228,5,230,71,231, +160,232,17,234,75,235,54,236,205,236,253,236,247,236,228,236,167,236,95,236,98,236,159,236,226,236,48,237,116,237,137,237, +122,237,80,237,254,236,151,236,49,236,180,235,8,235,57,234,82,233,70,232,21,231,209,229,123,228,27,227,215,225,172,224, +83,223,206,221,94,220,236,218,91,217,219,215,116,214,6,213,208,211,32,211,235,210,51,211,21,212,143,213,169,215,130,218, +243,221,173,225,137,229,132,233,144,237,148,241,147,245,176,249,240,253,41,2,47,6,231,9,69,13,80,16,35,19,231,21, +192,24,185,27,198,30,192,33,95,36,136,38,93,40,212,41,193,42,74,43,167,43,233,43,23,44,36,44,253,43,184,43, +115,43,52,43,8,43,240,42,239,42,43,43,172,43,101,44,112,45,184,46,7,48,129,49,59,51,216,52,46,54,113,55, +173,56,224,57,8,59,26,60,79,61,240,62,202,64,147,66,75,68,250,69,146,71,24,73,141,74,9,76,166,77,76,79, +198,80,249,81,211,82,68,83,85,83,47,83,14,83,5,83,21,83,80,83,151,83,176,83,153,83,83,83,188,82,239,81, +12,81,219,79,48,78,33,76,186,73,252,70,229,67,101,64,145,60,143,56,77,52,172,47,175,42,114,37,39,32,243,26, +205,21,182,16,202,11,28,7,187,2,172,254,214,250,72,247,51,244,163,241,133,239,192,237,71,236,48,235,116,234,219,233, +66,233,178,232,62,232,10,232,45,232,150,232,57,233,16,234,22,235,111,236,48,238,38,240,49,242,108,244,202,246,12,249, +253,250,148,252,230,253,240,254,150,255,230,255,4,0,222,255,68,255,43,254,155,252,149,250,29,248,58,245,238,241,53,238, +2,234,59,229,208,223,243,217,238,211,233,205,0,200,80,194,217,188,169,183,203,178,23,174,129,169,57,165,53,161,81,157, +174,153,94,150,47,147,18,144,50,141,197,138,243,136,186,135,8,135,4,135,218,135,108,137,133,139,32,142,78,145,16,149, +90,153,35,158,74,163,176,168,92,174,69,180,44,186,5,192,12,198,87,204,202,210,77,217,202,223,51,230,118,236,87,242, +170,247,150,252,70,1,171,5,181,9,101,13,166,16,95,19,166,21,161,23,69,25,126,26,102,27,250,27,250,27,82,27, +23,26,67,24,237,21,74,19,83,16,250,12,74,9,55,5,193,0,7,252,19,247,240,241,206,236,216,231,38,227,202,222, +175,218,212,214,107,211,146,208,63,206,120,204,90,203,11,203,167,203,24,205,44,207,196,209,188,212,230,215,61,219,209,222, +163,226,186,230,25,235,177,239,107,244,79,249,106,254,180,3,39,9,209,14,183,20,196,26,217,32,211,38,143,44,235,49, +211,54,100,59,181,63,139,67,187,70,138,73,55,76,174,78,227,80,216,82,113,84,161,85,85,86,89,86,176,85,144,84, +253,82,226,80,94,78,152,75,154,72,113,69,32,66,151,62,253,58,147,55,92,52,86,49,190,46,190,44,66,43,68,42, +188,41,141,41,208,41,162,42,203,43,30,45,171,46,101,48,18,50,149,51,238,52,24,54,255,54,131,55,154,55,52,55, +60,54,232,52,147,51,73,50,235,48,140,47,97,46,154,45,65,45,49,45,81,45,160,45,15,46,139,46,238,46,10,47, +232,46,174,46,68,46,114,45,33,44,87,42,33,40,116,37,71,34,180,30,185,26,56,22,79,17,26,12,119,6,94,0, +239,249,41,243,27,236,16,229,70,222,211,215,201,209,76,204,133,199,141,195,98,192,11,190,137,188,204,187,208,187,134,188, +215,189,220,191,146,194,189,197,74,201,60,205,104,209,175,213,2,218,78,222,161,226,254,230,74,235,152,239,253,243,63,248, +74,252,71,0,25,4,123,7,109,10,17,13,105,15,86,17,184,18,144,19,241,19,250,19,209,19,112,19,184,18,173,17, +69,16,85,14,215,11,223,8,113,5,159,1,125,253,21,249,125,244,172,239,133,234,23,229,122,223,162,217,157,211,135,205, +115,199,130,193,206,187,75,182,5,177,22,172,141,167,121,163,244,159,23,157,248,154,141,153,201,152,188,152,106,153,200,154, +254,156,53,160,87,164,47,169,142,174,90,180,141,186,32,193,3,200,44,207,144,214,33,222,196,229,59,237,85,244,11,251, +97,1,113,7,83,13,227,18,17,24,251,28,138,33,149,37,55,41,131,44,109,47,2,50,47,52,190,53,190,54,75,55, +77,55,183,54,162,53,6,52,200,49,244,46,158,43,169,39,243,34,155,29,226,23,243,17,230,11,200,5,178,255,210,249, +27,244,76,238,122,232,238,226,175,221,187,216,59,212,72,208,252,204,104,202,101,200,230,198,8,198,182,197,222,197,171,198, +54,200,104,202,46,205,110,208,7,212,235,215,27,220,167,224,153,229,205,234,6,240,35,245,38,250,27,255,246,3,155,8, +12,13,100,17,177,21,241,25,6,30,210,33,111,37,7,41,158,44,58,48,216,51,69,55,83,58,232,60,220,62,18,64, +152,64,141,64,3,64,217,62,234,60,99,58,126,55,52,52,126,48,115,44,54,40,244,35,193,31,128,27,40,23,217,18, +188,14,245,10,157,7,202,4,153,2,12,1,40,0,30,0,1,1,157,2,199,4,112,7,121,10,194,13,33,17,105,20, +153,23,175,26,130,29,6,32,86,34,132,36,154,38,154,40,125,42,71,44,11,46,211,47,133,49,7,51,119,52,251,53, +103,55,129,56,89,57,247,57,65,58,48,58,198,57,1,57,226,55,76,54,29,52,89,49,30,46,151,42,222,38,221,34, +138,30,10,26,118,21,220,16,105,12,52,8,87,4,254,0,27,254,119,251,14,249,235,246,251,244,52,243,125,241,179,239, +237,237,106,236,61,235,84,234,184,233,153,233,30,234,80,235,49,237,195,239,0,243,221,246,32,251,143,255,55,4,14,9, +197,13,52,18,81,22,245,25,38,29,14,32,144,34,149,36,64,38,118,39,255,39,222,39,27,39,162,37,109,35,120,32, +214,28,181,24,48,20,73,15,28,10,213,4,158,255,135,250,117,245,70,240,246,234,150,229,46,224,169,218,241,212,17,207, +37,201,65,195,101,189,117,183,110,177,131,171,200,165,52,160,1,155,103,150,89,146,212,142,221,139,95,137,101,135,7,134, +59,133,15,133,172,133,36,135,150,137,33,141,156,145,207,150,174,156,45,163,26,170,56,177,131,184,24,192,207,199,85,207, +146,214,136,221,47,228,157,234,236,240,1,247,177,252,240,1,210,6,91,11,88,15,151,18,49,21,72,23,184,24,88,25, +44,25,95,24,11,23,36,21,186,18,6,16,17,13,215,9,121,6,241,2,31,255,36,251,26,247,216,242,74,238,144,233, +214,228,58,224,193,219,111,215,91,211,151,207,68,204,139,201,95,199,170,197,132,196,254,195,3,196,121,196,71,197,112,198, +19,200,50,202,206,204,4,208,207,211,5,216,154,220,145,225,237,230,193,236,5,243,145,249,47,0,178,6,1,13,5,19, +151,24,178,29,109,34,221,38,33,43,90,47,121,51,124,55,137,59,179,63,233,67,13,72,6,76,218,79,135,83,240,86, +21,90,244,92,86,95,43,97,151,98,121,99,156,99,12,99,212,97,252,95,161,93,209,90,141,87,237,83,1,80,200,75, +87,71,228,66,162,62,168,58,248,54,176,51,248,48,208,46,38,45,237,43,32,43,195,42,213,42,59,43,212,43,114,44, +4,45,179,45,145,46,139,47,187,48,53,50,230,51,207,53,236,55,4,58,243,59,179,61,39,63,67,64,245,64,20,65, +179,64,7,64,231,62,21,61,150,58,144,55,48,52,175,48,39,45,141,41,212,37,13,34,63,30,66,26,238,21,81,17, +140,12,181,7,199,2,177,253,142,248,150,243,209,238,79,234,88,230,250,226,255,223,91,221,6,219,210,216,171,214,153,212, +176,210,19,209,217,207,252,206,134,206,140,206,14,207,247,207,41,209,181,210,209,212,123,215,121,218,170,221,252,224,92,228, +183,231,229,234,213,237,167,240,113,243,46,246,249,248,231,251,228,254,224,1,213,4,163,7,25,10,20,12,145,13,131,14, +194,14,54,14,218,12,167,10,184,7,60,4,71,0,254,251,145,247,224,242,198,237,87,232,166,226,190,220,175,214,100,208, +226,201,107,195,25,189,219,182,199,176,15,171,229,165,116,161,202,157,215,154,161,152,53,151,131,150,84,150,121,150,250,150, +237,151,82,153,57,155,166,157,111,160,172,163,165,167,87,172,166,177,147,183,252,189,169,196,136,203,117,210,45,217,145,223, +178,229,165,235,104,241,246,246,75,252,92,1,30,6,175,10,43,15,142,19,204,23,193,27,62,31,55,34,137,36,248,37, +129,38,27,38,154,36,59,34,134,31,149,28,79,25,214,21,57,18,93,14,66,10,235,5,56,1,24,252,179,246,62,241, +191,235,42,230,155,224,56,219,18,214,76,209,21,205,132,201,171,198,175,196,176,195,154,195,41,196,67,197,246,198,40,201, +179,203,142,206,170,209,3,213,181,216,203,220,63,225,29,230,87,235,221,240,181,246,175,252,136,2,64,8,197,13,204,18, +81,23,150,27,172,31,140,35,83,39,45,43,30,47,20,51,27,55,55,59,51,63,231,66,100,70,154,73,61,76,38,78, +81,79,179,79,80,79,73,78,193,76,203,74,143,72,75,70,23,68,223,65,195,63,227,61,20,60,59,58,110,56,157,54, +186,52,210,50,238,48,52,47,230,45,8,45,138,44,139,44,3,45,188,45,144,46,85,47,246,47,143,48,43,49,188,49, +52,50,124,50,136,50,100,50,30,50,219,49,203,49,243,49,101,50,77,51,150,52,254,53,100,55,148,56,76,57,127,57, +63,57,142,56,110,55,227,53,233,51,137,49,243,46,107,44,249,41,101,39,156,36,168,33,121,30,254,26,51,23,12,19, +158,14,30,10,171,5,96,1,77,253,86,249,136,245,37,242,42,239,85,236,163,233,74,231,89,229,156,227,236,225,83,224, +191,222,10,221,107,219,60,218,136,217,64,217,119,217,58,218,131,219,93,221,198,223,170,226,230,229,68,233,145,236,186,239, +186,242,141,245,57,248,203,250,70,253,189,255,93,2,53,5,14,8,183,10,49,13,109,15,71,17,173,18,155,19,8,20, +233,19,32,19,144,17,43,15,240,11,255,7,149,3,216,254,215,249,164,244,63,239,134,233,96,227,196,220,204,213,155,206, +66,199,225,191,189,184,9,178,219,171,76,166,96,161,30,157,164,153,9,151,81,149,88,148,226,147,241,147,177,148,15,150, +210,151,231,153,76,156,14,159,50,162,151,165,61,169,88,173,231,177,202,182,252,187,101,193,209,198,41,204,87,209,70,214, +5,219,168,223,48,228,137,232,171,236,171,240,159,244,116,248,40,252,192,255,17,3,254,5,156,8,231,10,187,12,13,14, +211,14,23,15,1,15,165,14,251,13,245,12,136,11,193,9,177,7,69,5,126,2,122,255,47,252,122,248,97,244,244,239, +78,235,155,230,235,225,84,221,14,217,67,213,248,209,31,207,170,204,185,202,102,201,130,200,247,199,246,199,122,200,79,201, +125,202,22,204,13,206,113,208,92,211,200,214,188,218,68,223,82,228,231,233,9,240,143,246,70,253,45,4,72,11,110,18, +118,25,56,32,134,38,92,44,224,49,22,55,224,59,87,64,158,68,148,72,1,76,230,78,85,81,61,83,144,84,101,85, +215,85,236,85,181,85,84,85,190,84,208,83,131,82,222,80,245,78,237,76,208,74,131,72,10,70,139,67,47,65,9,63, +15,61,46,59,133,57,72,56,116,55,226,54,150,54,166,54,247,54,83,55,167,55,235,55,24,56,62,56,87,56,61,56, +243,55,161,55,93,55,70,55,103,55,178,55,66,56,42,57,32,58,249,58,216,59,177,60,91,61,215,61,44,62,75,62, +55,62,0,62,204,61,153,61,30,61,74,60,70,59,231,57,238,55,141,53,240,50,233,47,80,44,47,40,172,35,218,30, +184,25,104,20,38,15,5,10,23,5,153,0,163,252,15,249,213,245,240,242,64,240,176,237,56,235,210,232,144,230,141,228, +215,226,111,225,73,224,71,223,85,222,123,221,227,220,171,220,193,220,44,221,23,222,125,223,60,225,80,227,170,229,44,232, +215,234,186,237,219,240,67,244,237,247,184,251,108,255,214,2,231,5,132,8,104,10,118,11,212,11,135,11,134,10,243,8, +226,6,65,4,32,1,135,253,96,249,195,244,223,239,195,234,123,229,14,224,98,218,130,212,161,206,189,200,197,194,224,188, +31,183,103,177,193,171,107,166,131,161,7,157,248,152,104,149,92,146,193,143,146,141,231,139,193,138,9,138,190,137,242,137, +175,138,9,140,11,142,200,144,107,148,245,152,48,158,7,164,122,170,93,177,136,184,235,191,91,199,195,206,67,214,222,221, +100,229,178,236,181,243,75,250,72,0,167,5,138,10,0,15,244,18,100,22,95,25,219,27,200,29,11,31,116,31,3,31, +238,29,71,28,25,26,143,23,199,20,181,17,67,14,89,10,235,5,14,1,219,251,105,246,213,240,76,235,3,230,254,224, +53,220,194,215,180,211,242,207,141,204,161,201,15,199,207,196,18,195,211,193,251,192,173,192,9,193,25,194,224,195,71,198, +60,201,208,204,252,208,172,213,9,219,38,225,207,231,211,238,25,246,133,253,237,4,35,12,26,19,213,25,48,32,30,38, +232,43,208,49,199,55,181,61,141,67,74,73,239,78,93,84,93,89,241,93,24,98,162,101,135,104,230,106,170,108,181,109, +30,110,248,109,50,109,185,107,141,105,204,102,172,99,72,96,158,92,177,88,156,84,133,80,123,76,119,72,147,68,24,65, +53,62,234,59,52,58,31,57,180,56,224,56,108,57,24,58,183,58,52,59,133,59,143,59,57,59,147,58,210,57,38,57, +163,56,79,56,49,56,85,56,178,56,48,57,210,57,149,58,80,59,243,59,142,60,2,61,16,61,160,60,178,59,98,58, +222,56,56,55,126,53,206,51,3,50,211,47,68,45,99,42,8,39,51,35,5,31,101,26,85,21,23,16,205,10,93,5, +211,255,118,250,144,245,27,241,230,236,244,232,94,229,14,226,240,222,7,220,56,217,110,214,188,211,57,209,7,207,72,205, +246,203,18,203,186,202,228,202,118,203,136,204,27,206,6,208,49,210,146,212,29,215,194,217,100,220,234,222,95,225,208,227, +68,230,216,232,150,235,106,238,70,241,28,244,191,246,251,248,174,250,199,251,73,252,71,252,203,251,205,250,78,249,117,247, +97,245,247,242,25,240,211,236,59,233,86,229,38,225,176,220,11,216,71,211,78,206,19,201,184,195,90,190,20,185,23,180, +128,175,105,171,2,168,72,165,9,163,68,161,244,159,233,158,33,158,169,157,72,157,219,156,149,156,174,156,65,157,87,158, +236,159,29,162,16,165,179,168,242,172,215,177,67,183,253,188,244,194,31,201,83,207,105,213,86,219,49,225,252,230,149,236, +0,242,102,247,194,252,248,1,3,7,203,11,47,16,48,20,193,23,181,26,252,28,164,30,186,31,79,32,103,32,6,32, +85,31,100,30,24,29,107,27,116,25,32,23,94,20,45,17,110,13,248,8,224,3,103,254,182,248,218,242,235,236,23,231, +138,225,93,220,152,215,58,211,79,207,240,203,31,201,202,198,223,196,72,195,247,193,10,193,157,192,173,192,57,193,109,194, +138,196,183,199,211,203,182,208,111,214,245,220,249,227,59,235,143,242,190,249,179,0,98,7,177,13,193,19,203,25,185,31, +139,37,128,43,126,49,51,55,164,60,247,65,16,71,196,75,247,79,126,83,57,86,37,88,87,89,224,89,194,89,18,89, +241,87,85,86,65,84,239,81,141,79,31,77,186,74,119,72,88,70,95,68,123,66,144,64,183,62,31,61,211,59,196,58, +223,57,28,57,156,56,85,56,236,55,58,55,91,54,51,53,150,51,143,49,53,47,152,44,247,41,157,39,157,37,4,36, +250,34,163,34,240,34,201,35,47,37,34,39,136,41,76,44,78,47,90,50,65,53,225,55,1,58,108,59,30,60,55,60, +218,59,12,59,209,57,48,56,22,54,86,51,237,47,226,43,57,39,18,34,138,28,160,22,144,16,181,10,26,5,199,255, +0,251,211,246,34,243,1,240,118,237,84,235,128,233,217,231,38,230,94,228,147,226,198,224,15,223,148,221,85,220,78,219, +151,218,80,218,135,218,52,219,100,220,70,222,223,224,238,227,55,231,136,234,171,237,153,240,122,243,107,246,112,249,119,252, +103,255,85,2,82,5,60,8,2,11,172,13,33,16,89,18,86,20,215,21,151,22,173,22,36,22,213,20,198,18,55,16, +60,13,193,9,183,5,14,1,182,251,189,245,102,239,240,232,99,226,202,219,72,213,222,206,102,200,218,193,93,187,37,181, +108,175,102,170,54,166,217,162,61,160,92,158,25,157,63,156,162,155,40,155,195,154,161,154,250,154,191,155,237,156,183,158, +46,161,76,164,37,168,167,172,178,177,97,183,171,189,44,196,163,202,6,209,60,215,43,221,188,226,197,231,58,236,56,240, +218,243,60,247,115,250,140,253,148,0,142,3,92,6,238,8,65,11,62,13,210,14,234,15,109,16,91,16,204,15,201,14, +101,13,193,11,218,9,184,7,121,5,24,3,123,0,136,253,24,250,37,246,215,241,50,237,55,232,36,227,43,222,66,217, +106,212,193,207,110,203,161,199,114,196,222,193,254,191,245,190,181,190,30,191,25,192,139,193,94,195,163,197,114,200,196,203, +147,207,251,211,23,217,208,222,243,228,88,235,221,241,104,248,221,254,45,5,124,11,231,17,64,24,104,30,126,36,138,42, +138,48,168,54,214,60,189,66,73,72,148,77,118,82,182,86,62,90,247,92,207,94,186,95,186,95,243,94,120,93,52,91, +82,88,35,85,178,81,2,78,80,74,225,70,222,67,93,65,60,63,93,61,214,59,162,58,141,57,135,56,174,55,23,55, +190,54,156,54,174,54,217,54,220,54,153,54,36,54,107,53,73,52,221,50,100,49,17,48,0,47,36,46,120,45,56,45, +129,45,34,46,0,47,46,48,175,49,141,51,194,53,17,56,83,58,131,60,97,62,165,63,94,64,161,64,76,64,89,63, +235,61,248,59,104,57,128,54,141,51,117,48,16,45,148,41,51,38,206,34,74,31,195,27,88,24,18,21,236,17,211,14, +165,11,77,8,210,4,44,1,52,253,233,248,138,244,70,240,55,236,155,232,152,229,23,227,31,225,221,223,91,223,152,223, +156,224,66,226,96,228,244,230,225,233,244,236,13,240,23,243,237,245,122,248,177,250,143,252,50,254,189,255,66,1,196,2, +69,4,211,5,109,7,232,8,43,10,67,11,35,12,173,12,210,12,122,12,165,11,112,10,216,8,208,6,123,4,229,1, +220,254,64,251,3,247,21,242,153,236,167,230,39,224,64,217,68,210,72,203,85,196,166,189,76,183,59,177,156,171,156,166, +54,162,99,158,47,155,155,152,133,150,183,148,11,147,127,145,45,144,46,143,145,142,119,142,17,143,123,144,194,146,238,149, +245,153,195,158,72,164,80,170,153,176,10,183,127,189,189,195,193,201,155,207,24,213,30,218,217,222,70,227,65,231,202,234, +232,237,189,240,111,243,204,245,157,247,32,249,135,250,171,251,133,252,61,253,198,253,15,254,64,254,131,254,211,254,254,254, +218,254,110,254,178,253,114,252,147,250,16,248,202,244,192,240,50,236,80,231,54,226,29,221,65,216,179,211,129,207,214,203, +212,200,100,198,97,196,212,194,183,193,229,192,115,192,141,192,15,193,209,193,3,195,215,196,81,199,132,202,139,206,105,211, +19,217,96,223,19,230,12,237,58,244,131,251,233,2,118,10,18,18,173,25,93,33,37,41,229,48,162,56,117,64,69,72, +223,79,55,87,66,94,203,100,153,106,137,111,110,115,30,118,155,119,20,120,174,119,117,118,139,116,49,114,140,111,153,108, +91,105,224,101,53,98,121,94,180,90,192,86,175,82,197,78,5,75,90,71,250,67,27,65,178,62,188,60,66,59,45,58, +90,57,174,56,29,56,164,55,57,55,192,54,54,54,164,53,13,53,136,52,45,52,10,52,35,52,124,52,22,53,248,53, +6,55,14,56,246,56,160,57,210,57,116,57,123,56,205,54,133,52,221,49,228,46,190,43,175,40,184,37,203,34,31,32, +215,29,221,27,26,26,112,24,196,22,40,21,162,19,254,17,38,16,40,14,248,11,106,9,84,6,181,2,189,254,144,250, +32,246,116,241,191,236,40,232,181,227,113,223,110,219,181,215,94,212,157,209,155,207,76,206,161,205,183,205,163,206,75,208, +135,210,55,213,67,216,125,219,154,222,107,225,11,228,123,230,165,232,177,234,194,236,175,238,109,240,62,242,50,244,39,246, +15,248,217,249,116,251,227,252,19,254,231,254,102,255,136,255,24,255,228,253,225,251,41,249,222,245,30,242,4,238,164,233, +248,228,6,224,250,218,199,213,65,208,161,202,59,197,252,191,208,186,244,181,140,177,144,173,27,170,64,167,207,164,154,162, +180,160,64,159,64,158,146,157,36,157,9,157,100,157,52,158,105,159,24,161,108,163,112,166,18,170,80,174,46,179,136,184, +47,190,30,196,97,202,212,208,48,215,66,221,230,226,251,231,126,236,145,240,74,244,161,247,125,250,209,252,168,254,34,0, +84,1,68,2,241,2,81,3,111,3,122,3,140,3,141,3,97,3,12,3,137,2,189,1,149,0,27,255,94,253,84,251, +246,248,81,246,105,243,65,240,214,236,31,233,73,229,173,225,95,222,60,219,93,216,240,213,250,211,137,210,182,209,103,209, +142,209,57,210,65,211,124,212,249,213,180,215,154,217,193,219,68,222,22,225,46,228,146,231,72,235,73,239,123,243,211,247, +110,252,86,1,139,6,37,12,30,18,78,24,179,30,69,37,213,43,75,50,156,56,172,62,140,68,87,74,213,79,229,84, +179,89,43,94,2,98,55,101,198,103,102,105,6,106,229,105,26,105,154,103,151,101,81,99,199,96,248,93,254,90,211,87, +101,84,226,80,126,77,50,74,14,71,77,68,254,65,12,64,113,62,26,61,249,59,30,59,123,58,227,57,97,57,15,57, +190,56,66,56,180,55,50,55,195,54,120,54,103,54,147,54,240,54,118,55,36,56,239,56,185,57,101,58,219,58,246,58, +142,58,139,57,232,55,180,53,241,50,137,47,149,43,121,39,103,35,75,31,50,27,82,23,172,19,30,16,153,12,36,9, +210,5,193,2,4,0,151,253,101,251,84,249,97,247,144,245,213,243,32,242,113,240,187,238,226,236,216,234,148,232,23,230, +116,227,178,224,218,221,33,219,179,216,148,214,209,212,148,211,247,210,248,210,151,211,207,212,161,214,252,216,166,219,95,222, +7,225,129,227,194,229,222,231,225,233,201,235,175,237,159,239,139,241,134,243,173,245,228,247,1,250,245,251,180,253,55,255, +130,0,125,1,245,1,227,1,107,1,165,0,117,255,184,253,106,251,147,248,47,245,71,241,240,236,46,232,12,227,182,221, +80,216,210,210,43,205,116,199,253,193,247,188,75,184,251,179,77,176,94,173,246,170,253,168,148,167,207,166,176,166,63,167, +128,168,101,170,208,172,172,175,252,178,172,182,169,186,11,191,226,195,16,201,128,206,26,212,178,217,65,223,198,228,249,233, +178,238,24,243,48,247,217,250,32,254,244,0,37,3,221,4,76,6,66,7,200,7,69,8,216,8,73,9,122,9,92,9, +234,8,58,8,71,7,229,5,28,4,34,2,10,0,195,253,70,251,151,248,208,245,10,243,72,240,123,237,157,234,182,231, +195,228,186,225,167,222,172,219,211,216,26,214,146,211,94,209,145,207,56,206,76,205,174,204,52,204,209,203,150,203,152,203, +216,203,81,204,19,205,41,206,152,207,135,209,27,212,81,215,29,219,127,223,111,228,217,233,151,239,113,245,75,251,41,1, +249,6,164,12,37,18,110,23,123,28,106,33,70,38,253,42,148,47,21,52,120,56,189,60,193,64,68,68,66,71,213,73, +218,75,68,77,68,78,233,78,25,79,232,78,109,78,181,77,228,76,15,76,22,75,235,73,179,72,123,71,50,70,205,68, +71,67,167,65,251,63,87,62,216,60,128,59,60,58,28,57,48,56,86,55,115,54,158,53,227,52,51,52,158,51,52,51, +236,50,200,50,213,50,248,50,16,51,56,51,169,51,84,52,253,52,171,53,150,54,180,55,197,56,147,57,236,57,160,57, +160,56,243,54,156,52,182,49,104,46,218,42,62,39,184,35,79,32,29,29,80,26,233,23,210,21,251,19,68,18,136,16, +207,14,58,13,222,11,184,10,170,9,166,8,186,7,245,6,78,6,174,5,237,4,224,3,132,2,234,0,28,255,37,253, +14,251,228,248,201,246,225,244,69,243,23,242,113,241,82,241,190,241,189,242,59,244,33,246,79,248,128,250,117,252,9,254, +14,255,129,255,153,255,112,255,251,254,91,254,190,253,31,253,104,252,145,251,156,250,147,249,127,248,88,247,19,246,159,244, +238,242,25,241,52,239,38,237,218,234,97,232,187,229,214,226,178,223,79,220,176,216,232,212,2,209,0,205,252,200,5,197, +14,193,25,189,59,185,131,181,19,178,24,175,176,172,231,170,196,169,61,169,58,169,163,169,91,170,73,171,94,172,138,173, +215,174,96,176,54,178,94,180,225,182,204,185,57,189,59,193,176,197,95,202,67,207,105,212,157,217,123,222,218,226,206,230, +95,234,124,237,45,240,118,242,69,244,170,245,181,246,81,247,143,247,180,247,191,247,126,247,246,246,48,246,4,245,113,243, +137,241,56,239,149,236,221,233,28,231,89,228,189,225,70,223,245,220,8,219,129,217,14,216,148,214,49,213,218,211,126,210, +38,209,214,207,150,206,133,205,177,204,7,204,122,203,33,203,37,203,133,203,30,204,243,204,12,206,56,207,94,208,178,209, +84,211,44,213,62,215,167,217,108,220,155,223,75,227,129,231,55,236,107,241,255,246,203,252,194,2,223,8,17,15,76,21, +154,27,247,33,70,40,101,46,73,52,244,57,104,63,170,68,177,73,105,78,176,82,93,86,88,89,157,91,25,93,191,93, +185,93,30,93,209,91,232,89,184,87,107,85,6,83,170,80,119,78,116,76,166,74,23,73,223,71,14,71,116,70,222,69, +94,69,237,68,58,68,55,67,43,66,63,65,119,64,214,63,83,63,244,62,189,62,130,62,36,62,198,61,130,61,81,61, +57,61,63,61,107,61,216,61,130,62,48,63,206,63,104,64,233,64,58,65,92,65,52,65,144,64,85,63,124,61,252,58, +210,55,25,52,20,48,9,44,12,40,33,36,95,32,236,28,234,25,97,23,53,21,89,19,219,17,179,16,181,15,185,14, +167,13,104,12,242,10,71,9,110,7,103,5,48,3,222,0,139,254,19,252,72,249,91,246,159,243,36,241,223,238,228,236, +71,235,31,234,129,233,108,233,224,233,230,234,94,236,20,238,5,240,58,242,130,244,161,246,138,248,49,250,119,251,86,252, +245,252,98,253,118,253,25,253,108,252,155,251,202,250,11,250,46,249,18,248,245,246,10,246,30,245,248,243,155,242,12,241, +78,239,117,237,112,235,18,233,75,230,26,227,110,223,60,219,139,214,106,209,252,203,104,198,221,192,141,187,150,182,19,178, +35,174,198,170,223,167,103,165,110,163,1,162,39,161,201,160,204,160,52,161,253,161,252,162,28,164,108,165,222,166,106,168, +62,170,131,172,71,175,158,178,131,182,211,186,116,191,78,196,60,201,59,206,82,211,102,216,92,221,58,226,251,230,127,235, +201,239,240,243,237,247,154,251,220,254,172,1,253,3,187,5,222,6,116,7,129,7,254,6,237,5,104,4,122,2,21,0, +60,253,6,250,115,246,145,242,139,238,126,234,117,230,154,226,10,223,168,219,99,216,86,213,133,210,225,207,108,205,61,203, +122,201,66,200,129,199,48,199,104,199,1,200,168,200,97,201,83,202,100,203,137,204,231,205,119,207,40,209,15,211,43,213, +106,215,237,217,228,220,87,224,75,228,200,232,213,237,130,243,192,249,91,0,53,7,68,14,103,21,127,28,126,35,91,42, +19,49,161,55,226,61,198,67,107,73,220,78,227,83,77,88,27,92,100,95,34,98,43,100,120,101,37,102,77,102,247,101, +52,101,39,100,238,98,132,97,204,95,199,93,159,91,97,89,238,86,62,84,109,81,137,78,140,75,105,72,41,69,211,65, +96,62,237,58,200,55,21,53,204,50,19,49,16,48,167,47,177,47,31,48,206,48,166,49,167,50,192,51,231,52,63,54, +235,55,250,57,99,60,224,62,46,65,76,67,55,69,168,70,95,71,71,71,92,70,183,68,110,66,138,63,47,60,111,56, +54,52,165,47,23,43,164,38,73,34,58,30,154,26,82,23,72,20,113,17,182,14,251,11,14,9,211,5,109,2,17,255, +208,251,178,248,176,245,182,242,232,239,103,237,9,235,154,232,49,230,227,227,161,225,101,223,46,221,6,219,21,217,127,215, +67,214,99,213,248,212,32,213,232,213,68,215,26,217,91,219,239,221,183,224,162,227,151,230,102,233,3,236,135,238,253,240, +84,243,132,245,158,247,175,249,166,251,98,253,221,254,29,0,25,1,198,1,22,2,212,1,193,0,207,254,31,252,213,248, +18,245,248,240,168,236,67,232,202,227,37,223,69,218,57,213,33,208,14,203,242,197,215,192,238,187,71,183,204,178,146,174, +207,170,156,167,14,165,63,163,56,162,9,162,217,162,139,164,194,166,66,169,246,171,172,174,62,177,192,179,96,182,69,185, +140,188,79,192,159,196,120,201,184,206,73,212,54,218,121,224,204,230,227,236,174,242,39,248,32,253,116,1,54,5,108,8, +250,10,218,12,51,14,53,15,9,16,185,16,33,17,35,17,204,16,16,16,191,14,212,12,104,10,114,7,241,3,23,0, +21,252,239,247,171,243,104,239,79,235,120,231,219,227,105,224,51,221,66,218,105,215,117,212,93,209,46,206,2,203,254,199, +52,197,200,194,251,192,223,191,70,191,43,191,159,191,133,192,214,193,181,195,9,198,166,200,166,203,3,207,106,210,202,213, +104,217,112,221,4,226,83,231,105,237,46,244,147,251,117,3,146,11,159,19,92,27,181,34,188,41,104,48,160,54,131,60, +33,66,89,71,19,76,87,80,22,84,75,87,0,90,31,92,154,93,132,94,193,94,38,94,200,92,205,90,39,88,224,84, +74,81,173,77,22,74,123,70,227,66,107,63,50,60,64,57,126,54,211,51,62,49,194,46,83,44,237,41,148,39,68,37, +3,35,240,32,42,31,193,29,223,28,178,28,56,29,74,30,196,31,142,33,143,35,166,37,197,39,5,42,126,44,35,47, +242,49,248,52,30,56,80,59,140,62,184,65,162,68,31,71,254,72,12,74,70,74,173,73,44,72,214,69,208,66,50,63, +48,59,24,55,21,51,74,47,230,43,235,40,75,38,13,36,25,34,55,32,64,30,4,28,73,25,17,22,112,18,97,14, +252,9,121,5,248,0,133,252,50,248,19,244,87,240,31,237,94,234,19,232,92,230,22,229,244,227,237,226,42,226,178,225, +132,225,181,225,102,226,174,227,135,229,217,231,144,234,132,237,129,240,113,243,81,246,11,249,136,251,191,253,169,255,77,1, +178,2,201,3,141,4,24,5,134,5,232,5,64,6,104,6,71,6,224,5,21,5,171,3,166,1,21,255,197,251,158,247, +217,242,162,237,243,231,221,225,142,219,45,213,195,206,98,200,44,194,56,188,121,182,230,176,168,171,230,166,173,162,248,158, +199,155,48,153,91,151,73,150,220,149,29,150,33,151,188,152,188,154,37,157,242,159,250,162,55,166,200,169,189,173,24,178, +239,182,68,188,240,193,192,199,144,205,94,211,59,217,26,223,197,228,15,234,239,238,77,243,239,246,189,249,203,251,39,253, +216,253,254,253,197,253,61,253,111,252,99,251,24,250,141,248,200,246,211,244,172,242,86,240,212,237,29,235,25,232,197,228, +61,225,147,221,204,217,14,214,130,210,30,207,229,203,7,201,116,198,241,195,159,193,191,191,61,190,2,189,43,188,192,187, +197,187,80,188,75,189,159,190,125,192,255,194,239,197,75,201,47,205,137,209,83,214,149,219,10,225,135,230,74,236,99,242, +163,248,36,255,14,6,65,13,201,20,226,28,107,37,9,46,152,54,246,62,235,70,109,78,139,85,39,92,32,98,126,103, +80,108,129,112,250,115,191,118,216,120,52,122,214,122,233,122,128,122,132,121,233,119,165,117,166,114,244,110,181,106,239,101, +170,96,28,91,121,85,211,79,72,74,11,69,49,64,180,59,160,55,25,52,52,49,202,46,165,44,194,42,62,41,20,40, +48,39,141,38,56,38,51,38,118,38,9,39,247,39,59,41,204,42,172,44,213,46,68,49,15,52,63,55,177,58,62,62, +195,65,4,69,212,71,12,74,88,75,138,75,221,74,120,73,43,71,241,67,47,64,42,60,217,55,37,51,23,46,213,40, +142,35,114,30,160,25,31,21,238,16,30,13,182,9,131,6,72,3,241,255,126,252,224,248,14,245,9,241,230,236,205,232, +213,228,239,224,20,221,103,217,23,214,47,211,161,208,101,206,147,204,72,203,149,202,119,202,242,202,32,204,21,206,168,208, +152,211,217,214,95,218,250,221,153,225,49,229,118,232,87,235,62,238,67,241,248,243,69,246,113,248,127,250,87,252,5,254, +126,255,191,0,228,1,198,2,27,3,241,2,102,2,82,1,180,255,188,253,79,251,68,248,204,244,22,241,243,236,57,232, +0,227,106,221,132,215,98,209,27,203,187,196,105,190,109,184,216,178,134,173,148,168,67,164,130,160,44,157,123,154,173,152, +180,151,113,151,216,151,218,152,134,154,237,156,229,159,64,163,7,167,61,171,220,175,4,181,199,186,0,193,156,199,173,206, +50,214,6,222,235,229,170,237,27,245,26,252,115,2,6,8,206,12,194,16,225,19,69,22,238,23,201,24,218,24,57,24, +242,22,13,21,160,18,209,15,196,12,128,9,3,6,92,2,147,254,159,250,133,246,100,242,76,238,59,234,44,230,43,226, +84,222,176,218,35,215,140,211,241,207,105,204,249,200,165,197,134,194,181,191,65,189,70,187,236,185,55,185,24,185,170,185, +1,187,225,188,7,191,135,193,133,196,222,199,94,203,10,207,4,211,83,215,234,219,212,224,54,230,35,236,157,242,177,249, +76,1,66,9,136,17,19,26,160,34,233,42,215,50,89,58,101,65,1,72,32,78,187,83,0,89,247,93,119,98,133,102, +55,106,113,109,29,112,44,114,100,115,189,115,113,115,121,114,166,112,26,110,252,106,72,103,22,99,133,94,129,89,40,84, +217,78,178,73,161,68,189,63,29,59,187,54,139,50,119,46,108,42,141,38,25,35,35,32,159,29,162,27,76,26,162,25, +144,25,16,26,31,27,167,28,143,30,212,32,97,35,47,38,99,41,5,45,217,48,189,52,176,56,145,60,63,64,181,67, +187,70,248,72,104,74,33,75,6,75,4,74,52,72,150,69,34,66,251,61,73,57,45,52,233,46,180,41,167,36,221,31, +117,27,100,23,149,19,1,16,133,12,236,8,52,5,118,1,153,253,143,249,133,245,151,241,164,237,172,233,220,229,79,226, +27,223,125,220,135,218,1,217,200,215,230,214,90,214,31,214,53,214,130,214,1,215,207,215,244,216,92,218,20,220,43,222, +144,224,58,227,42,230,83,233,160,236,247,239,51,243,46,246,224,248,84,251,152,253,175,255,156,1,106,3,23,5,149,6, +213,7,189,8,18,9,172,8,153,7,227,5,140,3,165,0,49,253,25,249,84,244,249,238,35,233,236,226,107,220,197,213, +59,207,3,201,45,195,173,189,123,184,157,179,14,175,180,170,139,166,180,162,58,159,13,156,80,153,67,151,255,149,152,149, +38,150,130,151,128,153,29,156,76,159,228,162,229,166,94,171,92,176,252,181,64,188,246,194,14,202,142,209,58,217,202,224, +48,232,100,239,85,246,239,252,2,3,105,8,43,13,63,17,127,20,228,22,103,24,7,25,245,24,81,24,244,22,224,20, +104,18,173,15,149,12,34,9,100,5,95,1,37,253,177,248,225,243,193,238,120,233,7,228,128,222,31,217,5,212,54,207, +196,202,167,198,193,194,20,191,185,187,201,184,109,182,182,180,138,179,238,178,3,179,185,179,248,180,214,182,90,185,102,188, +247,191,23,196,175,200,156,205,183,210,222,215,15,221,100,226,217,231,91,237,255,242,240,248,44,255,157,5,77,12,70,19, +102,26,137,33,154,40,138,47,96,54,41,61,199,67,255,73,193,79,8,85,204,89,9,94,166,97,122,100,155,102,48,104, +29,105,73,105,223,104,248,103,127,102,109,100,203,97,152,94,217,90,161,86,26,82,117,77,189,72,252,67,117,63,95,59, +198,55,195,52,89,50,65,48,80,46,161,44,60,43,3,42,227,40,208,39,205,38,254,37,120,37,59,37,78,37,175,37, +90,38,95,39,198,40,132,42,166,44,63,47,62,50,125,53,229,56,94,60,197,63,5,67,7,70,133,72,58,74,42,75, +110,75,226,74,119,73,113,71,246,68,222,65,32,62,227,57,53,53,41,48,4,43,251,37,41,33,174,28,160,24,247,20, +167,17,148,14,138,11,97,8,21,5,185,1,94,254,8,251,194,247,148,244,102,241,40,238,12,235,69,232,220,229,224,227, +129,226,201,225,156,225,237,225,185,226,228,227,88,229,28,231,49,233,140,235,46,238,20,241,15,244,216,246,63,249,56,251, +221,252,82,254,151,255,145,0,52,1,135,1,145,1,85,1,236,0,153,0,138,0,163,0,171,0,182,0,229,0,10,1, +206,0,19,0,239,254,104,253,113,251,255,248,8,246,118,242,65,238,110,233,235,227,190,221,43,215,107,208,142,201,171,194, +232,187,92,181,34,175,86,169,245,163,16,159,195,154,253,150,181,147,9,145,248,142,113,141,137,140,86,140,224,140,56,142, +67,144,219,146,18,150,222,153,240,157,68,162,29,167,125,172,79,178,160,184,111,191,154,198,255,205,106,213,179,220,205,227, +142,234,197,240,105,246,125,251,249,255,226,3,46,7,182,9,104,11,78,12,142,12,66,12,86,11,189,9,184,7,129,5, +253,2,30,0,1,253,175,249,27,246,73,242,67,238,24,234,222,229,145,225,64,221,30,217,53,213,115,209,247,205,222,202, +8,200,87,197,221,194,157,192,137,190,188,188,105,187,184,186,191,186,125,187,222,188,214,190,107,193,148,196,74,200,140,204, +63,209,91,214,243,219,225,225,218,231,233,237,65,244,191,250,55,1,200,7,143,14,136,21,196,28,66,36,221,43,119,51, +241,58,59,66,97,73,72,80,175,86,141,92,240,97,191,102,236,106,135,110,136,113,241,115,220,117,54,119,231,119,254,119, +119,119,49,118,27,116,38,113,86,109,237,104,26,100,206,94,21,89,66,83,147,77,5,72,166,66,163,61,34,57,48,53, +202,49,205,46,22,44,177,41,182,39,11,38,140,36,65,35,60,34,143,33,90,33,160,33,61,34,35,35,112,36,52,38, +87,40,188,42,102,45,64,48,14,51,190,53,111,56,253,58,41,61,250,62,107,64,55,65,70,65,175,64,106,63,123,61, +22,59,99,56,129,53,138,50,104,47,4,44,92,40,123,36,126,32,133,28,151,24,232,20,181,17,213,14,11,12,101,9, +191,6,199,3,141,0,51,253,151,249,202,245,19,242,123,238,13,235,240,231,29,229,156,226,174,224,83,223,71,222,134,221, +44,221,32,221,57,221,99,221,159,221,4,222,153,222,87,223,73,224,118,225,202,226,81,228,51,230,95,232,170,234,27,237, +206,239,169,242,102,245,206,247,192,249,57,251,82,252,30,253,154,253,216,253,246,253,238,253,168,253,33,253,86,252,54,251, +180,249,199,247,84,245,62,242,112,238,244,233,220,228,38,223,240,216,131,210,22,204,193,197,155,191,184,185,48,180,50,175, +208,170,236,166,140,163,189,160,98,158,94,156,164,154,28,153,204,151,204,150,28,150,219,149,83,150,169,151,237,153,26,157, +239,160,61,165,32,170,118,175,236,180,150,186,145,192,166,198,192,204,252,210,40,217,27,223,253,228,224,234,155,240,23,246, +73,251,40,0,167,4,142,8,149,11,191,13,70,15,63,16,157,16,91,16,127,15,34,14,110,12,137,10,127,8,88,6, +33,4,210,1,90,255,170,252,167,249,61,246,112,242,74,238,222,233,107,229,40,225,32,221,126,217,108,214,194,211,92,209, +100,207,236,205,214,204,42,204,247,203,54,204,214,204,176,205,155,206,179,207,28,209,203,210,200,212,45,215,249,217,57,221, +6,225,80,229,1,234,34,239,174,244,146,250,186,0,11,7,133,13,65,20,57,27,89,34,155,41,244,48,106,56,12,64, +184,71,68,79,188,86,14,94,247,100,87,107,4,113,196,117,145,121,114,124,53,126,210,126,125,126,71,125,52,123,102,120, +240,116,207,112,11,108,175,102,192,96,97,90,185,83,236,76,44,70,177,63,147,57,237,51,231,46,150,42,230,38,196,35, +45,33,5,31,40,29,133,27,16,26,175,24,89,23,27,22,10,21,79,20,8,20,71,20,45,21,202,22,8,25,217,27, +38,31,170,34,53,38,188,41,9,45,214,47,31,50,215,51,195,52,199,52,235,51,86,50,71,48,246,45,146,43,94,41, +124,39,228,37,154,36,125,35,51,34,160,32,231,30,245,28,171,26,32,24,108,21,142,18,128,15,29,12,90,8,94,4, +76,0,52,252,63,248,137,244,33,241,36,238,129,235,244,232,98,230,233,227,161,225,151,223,200,221,50,220,247,218,59,218, +246,217,17,218,123,218,41,219,35,220,115,221,239,222,101,224,216,225,83,227,197,228,30,230,96,231,160,232,18,234,234,235, +31,238,124,240,225,242,68,245,132,247,131,249,67,251,176,252,174,253,84,254,179,254,154,254,234,253,175,252,237,250,169,248, +229,245,146,242,202,238,189,234,86,230,129,225,98,220,250,214,45,209,39,203,46,197,99,191,238,185,255,180,164,176,243,172, +254,169,185,167,11,166,211,164,251,163,144,163,150,163,242,163,174,164,226,165,120,167,111,169,228,171,203,174,14,178,197,181, +246,185,159,190,210,195,119,201,84,207,76,213,73,219,25,225,157,230,188,235,72,240,47,244,130,247,83,250,189,252,230,254, +215,0,139,2,4,4,67,5,62,6,231,6,69,7,97,7,42,7,129,6,99,5,215,3,225,1,138,255,218,252,215,249, +165,246,114,243,63,240,220,236,51,233,105,229,170,225,243,221,72,218,230,214,232,211,44,209,184,206,178,204,14,203,195,201, +233,200,151,200,221,200,199,201,70,203,67,205,161,207,51,210,234,212,208,215,188,218,157,221,190,224,77,228,55,232,141,236, +108,241,199,246,142,252,162,2,203,8,4,15,106,21,236,27,109,34,218,40,25,47,42,53,38,59,6,65,201,70,144,76, +95,82,32,88,199,93,57,99,75,104,228,108,231,112,29,116,82,118,121,119,155,119,187,118,206,116,221,113,17,110,147,105, +140,100,62,95,196,89,14,84,75,78,215,72,202,67,3,63,146,58,154,54,254,50,132,47,34,44,228,40,200,37,228,34, +94,32,46,30,90,28,37,27,166,26,163,26,240,26,140,27,122,28,202,29,127,31,113,33,129,35,162,37,190,39,185,41, +100,43,133,44,34,45,111,45,111,45,14,45,68,44,3,43,75,41,68,39,2,37,141,34,32,32,4,30,94,28,38,27, +45,26,81,25,155,24,250,23,69,23,134,22,203,21,241,20,225,19,140,18,214,16,184,14,47,12,31,9,189,5,116,2, +97,255,134,252,20,250,20,248,66,246,139,244,9,243,168,241,57,240,177,238,14,237,59,235,68,233,92,231,172,229,54,228, +1,227,41,226,190,225,204,225,91,226,83,227,138,228,245,229,141,231,46,233,186,234,43,236,120,237,127,238,46,239,170,239, +37,240,151,240,248,240,105,241,227,241,54,242,91,242,89,242,14,242,100,241,90,240,228,238,251,236,160,234,203,231,119,228, +158,224,81,220,212,215,99,211,13,207,250,202,97,199,48,196,63,193,146,190,40,188,249,185,13,184,109,182,46,181,117,180, +47,180,38,180,83,180,177,180,45,181,229,181,17,183,198,184,251,186,150,189,119,192,137,195,170,198,183,201,193,204,225,207, +14,211,87,214,228,217,181,221,152,225,70,229,136,232,101,235,246,237,32,240,188,241,218,242,152,243,246,243,233,243,94,243, +78,242,223,240,88,239,231,237,154,236,129,235,170,234,244,233,52,233,106,232,142,231,130,230,80,229,19,228,171,226,3,225, +66,223,113,221,133,219,157,217,204,215,15,214,130,212,53,211,11,210,2,209,33,208,72,207,100,206,145,205,227,204,110,204, +68,204,95,204,202,204,184,205,69,207,100,209,14,212,65,215,0,219,66,223,238,227,237,232,64,238,210,243,138,249,112,255, +130,5,161,11,190,17,220,23,4,30,62,36,123,42,182,48,15,55,139,61,2,68,116,74,229,80,22,87,227,92,77,98, +39,103,46,107,100,110,228,112,179,114,209,115,61,116,235,115,204,114,226,112,88,110,85,107,197,103,172,99,76,95,214,90, +90,86,247,81,203,77,219,73,49,70,221,66,227,63,57,61,205,58,130,56,28,54,106,51,137,48,162,45,163,42,129,39, +121,36,203,33,162,31,32,30,76,29,42,29,212,29,66,31,81,33,224,35,158,38,32,41,88,43,78,45,197,46,124,47, +126,47,245,46,235,45,81,44,60,42,9,40,6,38,63,36,188,34,149,33,211,32,103,32,42,32,229,31,116,31,214,30, +27,30,62,29,33,28,189,26,56,25,139,23,140,21,100,19,74,17,50,15,39,13,91,11,201,9,78,8,220,6,80,5, +153,3,227,1,52,0,108,254,173,252,41,251,219,249,175,248,157,247,125,246,45,245,201,243,120,242,52,241,226,239,121,238, +14,237,177,235,80,234,204,232,55,231,219,229,246,228,132,228,111,228,200,228,149,229,158,230,169,231,163,232,116,233,10,234, +98,234,105,234,28,234,154,233,212,232,146,231,234,229,14,228,246,225,151,223,255,220,29,218,241,214,152,211,254,207,251,203, +171,199,82,195,40,191,68,187,175,183,150,180,45,178,114,176,73,175,167,174,114,174,152,174,39,175,250,175,203,176,134,177, +68,178,41,179,74,180,155,181,27,183,246,184,48,187,181,189,152,192,238,195,181,199,216,203,22,208,50,212,54,216,31,220, +177,223,199,226,99,229,142,231,90,233,188,234,161,235,36,236,79,236,7,236,112,235,194,234,240,233,255,232,44,232,122,231, +172,230,160,229,88,228,221,226,62,225,150,223,5,222,167,220,130,219,127,218,104,217,26,216,136,214,152,212,72,210,199,207, +49,205,148,202,51,200,60,198,159,196,93,195,132,194,1,194,240,193,133,194,161,195,21,197,6,199,149,201,139,204,168,207, +237,210,130,214,115,218,189,222,112,227,141,232,9,238,242,243,82,250,18,1,28,8,85,15,149,22,204,29,249,36,239,43, +155,50,43,57,173,63,238,69,220,75,172,81,143,87,124,93,76,99,232,104,63,110,46,115,131,119,22,123,179,125,43,127, +134,127,255,126,174,125,130,123,160,120,91,117,211,113,244,109,185,105,54,101,153,96,40,92,2,88,23,84,104,80,18,77, +30,74,96,71,150,68,175,65,214,62,35,60,157,57,85,55,69,53,101,51,207,49,127,48,69,47,21,46,4,45,29,44, +113,43,12,43,221,42,199,42,168,42,100,42,231,41,23,41,240,39,145,38,11,37,101,35,180,33,0,32,93,30,3,29, +222,27,179,26,168,25,247,24,138,24,98,24,163,24,53,25,243,25,210,26,182,27,114,28,225,28,238,28,153,28,228,27, +210,26,120,25,238,23,68,22,132,20,152,18,129,16,116,14,116,12,111,10,158,8,29,7,173,5,84,4,58,3,30,2, +190,0,46,255,125,253,182,251,247,249,57,248,104,246,143,244,151,242,99,240,9,238,174,235,118,233,134,231,245,229,216,228, +69,228,29,228,35,228,48,228,46,228,37,228,39,228,30,228,231,227,138,227,2,227,21,226,153,224,144,222,10,220,24,217, +250,213,6,211,88,208,204,205,65,203,184,200,43,198,122,195,132,192,86,189,34,186,22,183,62,180,157,177,46,175,3,173, +51,171,180,169,136,168,226,167,215,167,58,168,244,168,247,169,30,171,86,172,151,173,194,174,219,175,20,177,152,178,114,180, +137,182,184,184,6,187,138,189,34,192,157,194,5,197,153,199,137,202,189,205,255,208,56,212,94,215,108,218,108,221,57,224, +159,226,204,228,250,230,0,233,177,234,9,236,253,236,138,237,185,237,104,237,150,236,116,235,30,234,170,232,42,231,137,229, +191,227,234,225,7,224,8,222,6,220,26,218,94,216,251,214,235,213,3,213,69,212,203,211,134,211,99,211,109,211,185,211, +81,212,43,213,50,214,83,215,133,216,183,217,212,218,231,219,28,221,129,222,37,224,66,226,252,228,78,232,58,236,176,240, +156,245,12,251,241,0,38,7,207,13,236,20,30,28,65,35,92,42,53,49,168,55,207,61,184,67,141,73,129,79,127,85, +121,91,120,97,47,103,92,108,7,113,251,116,254,119,55,122,178,123,76,124,15,124,248,122,248,120,66,118,245,114,252,110, +153,106,57,102,245,97,197,93,189,89,214,85,231,81,232,77,245,73,41,70,141,66,55,63,82,60,244,57,28,56,182,54, +150,53,137,52,117,51,69,50,232,48,90,47,170,45,230,43,255,41,222,39,144,37,52,35,203,32,71,30,181,27,62,25, +9,23,24,21,99,19,246,17,179,16,87,15,229,13,137,12,80,11,74,10,164,9,106,9,155,9,41,10,242,10,235,11, +17,13,58,14,77,15,98,16,138,17,191,18,230,19,217,20,140,21,242,21,237,21,127,21,172,20,115,19,41,18,19,17, +252,15,204,14,166,13,88,12,186,10,12,9,89,7,143,5,231,3,114,2,254,0,160,255,107,254,46,253,210,251,93,250, +198,248,28,247,114,245,186,243,2,242,91,240,171,238,224,236,16,235,73,233,145,231,241,229,133,228,112,227,184,226,55,226, +197,225,88,225,239,224,120,224,219,223,0,223,219,221,130,220,20,219,135,217,199,215,225,213,217,211,177,209,161,207,193,205, +236,203,54,202,195,200,94,199,218,197,56,196,105,194,125,192,162,190,220,188,75,187,85,186,12,186,65,186,221,186,194,187, +215,188,48,190,191,191,78,193,208,194,73,196,201,197,110,199,27,201,165,202,37,204,191,205,127,207,116,209,148,211,190,213, +245,215,39,218,44,220,2,222,161,223,241,224,17,226,44,227,56,228,41,229,0,230,178,230,55,231,134,231,149,231,120,231, +70,231,247,230,123,230,232,229,94,229,205,228,1,228,229,226,153,225,66,224,5,223,248,221,17,221,89,220,251,219,246,219, +15,220,31,220,41,220,66,220,135,220,13,221,213,221,215,222,12,224,114,225,225,226,26,228,17,229,216,229,108,230,220,230, +82,231,220,231,135,232,87,233,37,234,251,234,34,236,175,237,182,239,154,242,118,246,8,251,55,0,6,6,65,12,186,18, +93,25,32,32,5,39,13,46,42,53,66,60,21,67,112,73,85,79,194,84,174,89,63,94,147,98,159,102,70,106,90,109, +177,111,73,113,20,114,1,114,66,113,4,112,69,110,32,108,173,105,227,102,201,99,132,96,39,93,200,89,115,86,40,83, +248,79,243,76,5,74,21,71,9,68,220,64,174,61,156,58,164,55,203,52,44,50,216,47,188,45,189,43,217,41,19,40, +56,38,19,36,156,33,216,30,219,27,213,24,231,21,44,19,197,16,164,14,145,12,130,10,142,8,194,6,25,5,141,3, +66,2,122,1,59,1,96,1,227,1,183,2,194,3,17,5,183,6,188,8,35,11,190,13,77,16,196,18,244,20,146,22, +172,23,113,24,213,24,235,24,2,25,65,25,157,25,243,25,41,26,69,26,69,26,17,26,172,25,48,25,140,24,148,23, +48,22,106,20,65,18,166,15,182,12,194,9,247,6,82,4,201,1,80,255,243,252,210,250,212,248,212,246,230,244,3,243, +7,241,10,239,27,237,28,235,24,233,30,231,35,229,78,227,202,225,128,224,100,223,129,222,168,221,158,220,87,219,220,217, +43,216,48,214,212,211,46,209,113,206,184,203,30,201,193,198,164,196,191,194,13,193,138,191,58,190,32,189,37,188,39,187, +31,186,29,185,39,184,41,183,41,182,69,181,142,180,44,180,97,180,62,181,175,182,171,184,7,187,143,189,40,192,161,194, +191,196,127,198,221,199,223,200,195,201,177,202,149,203,132,204,150,205,184,206,227,207,9,209,11,210,244,210,187,211,37,212, +55,212,22,212,161,211,188,210,147,209,89,208,64,207,126,206,24,206,1,206,71,206,238,206,227,207,10,209,59,210,65,211, +4,212,161,212,42,213,102,213,51,213,223,212,163,212,103,212,74,212,158,212,109,213,153,214,25,216,216,217,181,219,130,221, +20,223,105,224,151,225,152,226,121,227,117,228,176,229,33,231,165,232,26,234,158,235,113,237,153,239,237,241,108,244,71,247, +152,250,71,254,44,2,64,6,152,10,72,15,93,20,222,25,218,31,95,38,85,45,151,52,251,59,27,67,140,73,62,79, +48,84,61,88,77,91,85,93,109,94,221,94,196,94,14,94,229,92,144,91,50,90,235,88,184,87,140,86,162,85,252,84, +24,84,205,82,92,81,209,79,60,78,219,76,175,75,194,74,93,74,125,74,226,74,114,75,20,76,166,76,27,77,58,77, +184,76,127,75,147,73,222,70,87,67,10,63,42,58,22,53,25,48,90,43,0,39,39,35,189,31,152,28,148,25,155,22, +152,19,150,16,197,13,55,11,226,8,205,6,18,5,202,3,8,3,193,2,241,2,194,3,76,5,123,7,47,10,43,13, +42,16,17,19,162,21,129,23,164,24,60,25,104,25,85,25,37,25,216,24,147,24,123,24,132,24,179,24,17,25,112,25, +170,25,190,25,170,25,133,25,105,25,84,25,78,25,84,25,77,25,80,25,127,25,201,25,45,26,157,26,195,26,113,26, +182,25,95,24,43,22,53,19,176,15,204,11,194,7,170,3,128,255,113,251,178,247,74,244,37,241,68,238,196,235,172,233, +188,231,164,229,56,227,81,224,221,220,250,216,223,212,189,208,215,204,120,201,205,198,222,196,142,195,164,194,252,193,146,193, +79,193,12,193,184,192,87,192,215,191,26,191,7,190,153,188,249,186,103,185,24,184,61,183,1,183,104,183,119,184,52,186, +69,188,58,190,37,192,48,194,31,196,216,197,140,199,91,201,94,203,171,205,42,208,202,210,153,213,137,216,133,219,133,222, +84,225,190,227,187,229,44,231,219,231,188,231,215,230,68,229,43,227,168,224,234,221,52,219,160,216,69,214,68,212,116,210, +154,208,192,206,222,204,223,202,239,200,39,199,125,197,30,196,39,195,145,194,144,194,59,195,91,196,5,198,136,200,199,203, +119,207,127,211,170,215,149,219,28,223,84,226,53,229,186,231,37,234,182,236,100,239,40,242,18,245,25,248,63,251,149,254, +2,2,108,5,213,8,22,12,2,15,155,17,219,19,173,21,28,23,96,24,200,25,117,27,101,29,199,31,173,34,213,37, +33,41,153,44,3,48,55,51,72,54,33,57,195,59,63,62,82,64,224,65,68,67,147,68,141,69,56,70,175,70,242,70, +24,71,40,71,250,70,129,70,194,69,176,68,73,67,178,65,40,64,203,62,171,61,252,60,217,60,21,61,176,61,189,62, +245,63,29,65,63,66,47,67,180,67,247,67,39,68,28,68,173,67,236,66,245,65,201,64,93,63,181,61,215,59,212,57, +222,55,247,53,206,51,44,49,36,46,185,42,212,38,135,34,5,30,122,25,13,21,225,16,245,12,41,9,133,5,39,2, +254,254,249,251,38,249,133,246,28,244,27,242,118,240,11,239,20,238,217,237,88,238,163,239,222,241,231,244,155,248,217,252, +62,1,104,5,35,9,48,12,104,14,229,15,180,16,198,16,65,16,76,15,227,13,44,12,120,10,254,8,234,7,118,7, +210,7,0,9,204,10,221,12,232,14,193,16,64,18,74,19,209,19,209,19,93,19,128,18,42,17,95,15,45,13,115,10, +30,7,99,3,116,255,112,251,131,247,182,243,249,239,91,236,222,232,78,229,155,225,245,221,121,218,23,215,204,211,162,208, +144,205,137,202,137,199,110,196,35,193,216,189,193,186,238,183,147,181,228,179,237,178,194,178,101,179,174,180,150,182,52,185, +141,188,146,192,33,197,15,202,96,207,250,212,127,218,191,223,182,228,71,233,108,237,65,241,200,244,251,247,232,250,134,253, +196,255,134,1,181,2,95,3,157,3,141,3,85,3,3,3,141,2,236,1,245,0,119,255,110,253,231,250,249,247,225,244, +172,241,62,238,160,234,213,230,205,226,173,222,132,218,75,214,79,210,227,206,11,204,205,201,52,200,19,199,45,198,88,197, +116,196,124,195,142,194,215,193,121,193,102,193,148,193,14,194,181,194,98,195,25,196,228,196,212,197,23,199,199,200,241,202, +151,205,128,208,121,211,123,214,118,217,116,220,190,223,99,227,83,231,168,235,81,240,0,245,141,249,232,253,243,1,154,5, +205,8,151,11,22,14,62,16,233,17,30,19,3,20,176,20,47,21,164,21,85,22,95,23,160,24,12,26,168,27,72,29, +194,30,27,32,102,33,175,34,8,36,143,37,85,39,46,41,242,42,174,44,93,46,216,47,58,49,173,50,53,52,227,53, +204,55,205,57,209,59,234,61,16,64,52,66,112,68,215,70,95,73,245,75,146,78,30,81,93,83,38,85,118,86,59,87, +77,87,174,86,129,85,203,83,124,81,145,78,28,75,45,71,215,66,49,62,67,57,13,52,183,46,105,41,42,36,244,30, +198,25,166,20,182,15,8,11,151,6,118,2,197,254,139,251,197,248,90,246,48,244,63,242,102,240,104,238,85,236,104,234, +182,232,70,231,58,230,194,229,18,230,42,231,8,233,239,235,13,240,49,245,40,251,224,1,34,9,144,16,186,23,64,30, +236,35,159,40,68,44,213,46,77,48,179,48,49,48,241,46,13,45,158,42,209,39,255,36,119,34,66,32,99,30,253,28, +24,28,137,27,22,27,146,26,245,25,52,25,55,24,12,23,173,21,214,19,135,17,210,14,114,11,61,7,89,2,227,252, +10,247,32,241,54,235,94,229,218,223,190,218,8,214,228,209,127,206,226,203,242,201,131,200,159,199,100,199,157,199,248,199, +88,200,190,200,79,201,57,202,114,203,250,204,9,207,184,209,224,212,93,216,48,220,75,224,132,228,208,232,61,237,160,241, +202,245,189,249,108,253,174,0,100,3,97,5,141,6,25,7,21,7,96,6,0,5,10,3,138,0,162,253,93,250,196,246, +244,242,230,238,133,234,3,230,137,225,12,221,145,216,37,212,202,207,139,203,96,199,57,195,35,191,32,187,41,183,82,179, +182,175,95,172,79,169,136,166,41,164,97,162,52,161,148,160,121,160,221,160,219,161,153,163,245,165,189,168,241,171,124,175, +40,179,217,182,136,186,52,190,231,193,136,197,245,200,60,204,145,207,242,210,54,214,125,217,12,221,227,224,224,228,13,233, +72,237,87,241,43,245,168,248,178,251,128,254,44,1,144,3,198,5,249,7,251,9,160,11,214,12,128,13,186,13,194,13, +185,13,191,13,6,14,176,14,211,15,121,17,157,19,72,22,131,25,60,29,77,33,156,37,27,42,182,46,58,51,101,55, +20,59,81,62,68,65,235,67,28,70,229,71,128,73,252,74,73,76,104,77,101,78,105,79,149,80,239,81,151,83,161,85, +229,87,75,90,202,92,53,95,124,97,158,99,118,101,227,102,201,103,238,103,53,103,176,101,92,99,54,96,75,92,173,87, +132,82,241,76,233,70,123,64,211,57,16,51,65,44,117,37,190,30,81,24,94,18,238,12,40,8,73,4,79,1,13,255, +129,253,202,252,213,252,92,253,74,254,189,255,173,1,2,4,174,6,141,9,157,12,227,15,17,19,227,21,114,24,187,26, +166,28,121,30,97,32,39,34,180,35,39,37,122,38,122,39,22,40,105,40,126,40,75,40,228,39,77,39,93,38,9,37, +95,35,71,33,198,30,27,28,117,25,1,23,234,20,11,19,80,17,234,15,222,14,243,13,12,13,32,12,19,11,199,9, +19,8,174,5,82,2,15,254,51,249,211,243,217,237,125,231,8,225,119,218,197,211,45,205,211,198,168,192,164,186,1,181, +10,176,226,171,179,168,164,166,142,165,67,165,210,165,29,167,226,168,23,171,157,173,69,176,39,179,77,182,128,185,175,188, +207,191,188,194,124,197,29,200,132,202,198,204,32,207,157,209,31,212,155,214,17,217,101,219,110,221,15,223,48,224,197,224, +234,224,183,224,25,224,30,223,6,222,213,220,102,219,177,217,222,215,24,214,117,212,247,210,165,209,118,208,86,207,78,206, +71,205,1,204,129,202,228,200,17,199,21,197,37,195,65,193,97,191,156,189,244,187,120,186,75,185,111,184,245,183,12,184, +193,184,13,186,252,187,148,190,199,193,116,197,138,201,15,206,221,210,194,215,200,220,241,225,252,230,181,235,13,240,250,243, +127,247,181,250,180,253,136,0,59,3,246,5,240,8,39,12,131,15,17,19,214,22,203,26,251,30,85,35,167,39,200,43, +156,47,23,51,34,54,151,56,119,58,244,59,55,61,99,62,140,63,151,64,119,65,37,66,103,66,33,66,111,65,92,64, +9,63,194,61,160,60,163,59,226,58,80,58,194,57,36,57,135,56,17,56,206,55,154,55,103,55,70,55,45,55,4,55, +183,54,70,54,223,53,197,53,17,54,191,54,215,55,130,57,230,59,225,62,13,66,25,69,222,71,79,74,95,76,200,77, +43,78,110,77,158,75,212,72,54,69,218,64,237,59,173,54,40,49,110,43,183,37,5,32,68,26,166,20,92,15,100,10, +186,5,101,1,144,253,127,250,36,248,67,246,242,244,91,244,110,244,16,245,48,246,196,247,206,249,61,252,210,254,76,1, +126,3,89,5,213,6,215,7,74,8,67,8,6,8,205,7,136,7,34,7,177,6,51,6,152,5,9,5,161,4,98,4, +146,4,99,5,154,6,20,8,224,9,221,11,227,13,229,15,210,17,195,19,226,21,29,24,66,26,30,28,117,29,28,30, +248,29,249,28,40,27,150,24,71,21,92,17,22,13,182,8,78,4,217,255,124,251,97,247,89,243,66,239,102,235,229,231, +106,228,185,224,224,220,246,216,254,212,237,208,192,204,146,200,108,196,70,192,33,188,252,183,217,179,197,175,214,171,43,168, +228,164,35,162,8,160,151,158,197,157,164,157,54,158,90,159,42,161,207,163,38,167,0,171,90,175,26,180,31,185,77,190, +117,195,137,200,134,205,87,210,254,214,145,219,13,224,145,228,73,233,18,238,157,242,189,246,63,250,244,252,227,254,32,0, +170,0,151,0,17,0,43,255,202,253,234,251,195,249,132,247,59,245,6,243,6,241,93,239,41,238,91,237,176,236,238,235, +252,234,216,233,134,232,2,231,101,229,219,227,117,226,57,225,60,224,148,223,107,223,239,223,32,225,253,226,150,229,206,232, +130,236,152,240,180,244,121,248,234,251,42,255,62,2,46,5,227,7,72,10,155,12,14,15,125,17,187,19,197,21,185,23, +192,25,223,27,245,29,236,31,220,33,239,35,33,38,59,40,52,42,74,44,188,46,147,49,150,52,124,55,40,58,110,60, +249,61,167,62,114,62,57,61,252,58,234,55,42,52,211,47,252,42,193,37,109,32,77,27,140,22,98,18,253,14,87,12, +110,10,73,9,193,8,158,8,182,8,247,8,104,9,30,10,52,11,213,12,5,15,153,17,121,20,144,23,189,26,237,29, +5,33,237,35,175,38,49,41,77,43,24,45,166,46,218,47,176,48,88,49,244,49,105,50,148,50,122,50,45,50,118,49, +10,48,198,45,178,42,243,38,165,34,207,29,181,24,183,19,231,14,79,10,23,6,89,2,61,255,237,252,75,251,43,250, +139,249,82,249,75,249,41,249,155,248,169,247,113,246,183,244,85,242,147,239,178,236,200,233,248,230,105,228,76,226,200,224, +227,223,171,223,48,224,101,225,76,227,247,229,78,233,49,237,155,241,146,246,5,252,209,1,215,7,251,13,18,20,243,25, +100,31,24,36,245,39,241,42,199,44,107,45,42,45,24,44,83,42,82,40,77,38,37,36,238,33,195,31,149,29,65,27, +137,24,72,21,142,17,61,13,49,8,129,2,77,252,163,245,158,238,95,231,37,224,55,217,189,210,229,204,214,199,117,195, +170,191,126,188,216,185,149,183,169,181,250,179,135,178,118,177,230,176,232,176,126,177,164,178,117,180,10,183,77,186,30,190, +106,194,32,199,50,204,113,209,184,214,36,220,209,225,160,231,114,237,58,243,13,249,14,255,27,5,243,10,134,16,180,21, +57,26,243,29,193,32,123,34,25,35,139,34,207,32,0,30,43,26,103,21,247,15,16,10,212,3,117,253,39,247,45,241, +184,235,195,230,80,226,116,222,22,219,35,216,148,213,69,211,49,209,97,207,184,205,60,204,22,203,51,202,126,201,17,201, +229,200,229,200,38,201,174,201,107,202,80,203,111,204,251,205,23,208,199,210,22,214,4,218,134,222,163,227,95,233,167,239, +77,246,252,252,124,3,217,9,2,16,189,21,242,26,151,31,175,35,77,39,96,42,227,44,31,47,66,49,51,51,243,52, +135,54,205,55,158,56,244,56,200,56,244,55,82,54,231,51,203,48,249,44,118,40,95,35,214,29,14,24,67,18,180,12, +161,7,14,3,233,254,86,251,89,248,207,245,211,243,136,242,200,241,154,241,36,242,63,243,205,244,240,246,167,249,213,252, +109,0,102,4,186,8,72,13,206,17,31,22,45,26,215,29,255,32,177,35,242,37,178,39,240,40,221,41,168,42,91,43, +246,43,140,44,46,45,234,45,202,46,183,47,136,48,60,49,250,49,185,50,35,51,11,51,151,50,186,49,73,48,113,46, +93,44,244,41,91,39,207,36,29,34,253,30,144,27,4,24,77,20,75,16,13,12,199,7,149,3,126,255,161,251,18,248, +205,244,234,241,135,239,145,237,253,235,213,234,8,234,131,233,94,233,175,233,112,234,162,235,98,237,197,239,198,242,80,246, +92,250,247,254,21,4,112,9,184,14,198,19,142,24,235,28,167,32,146,35,151,37,172,38,194,38,224,37,29,36,152,33, +147,30,88,27,7,24,198,20,186,17,199,14,200,11,213,8,219,5,151,2,29,255,198,251,156,248,122,245,109,242,162,239, +30,237,204,234,157,232,121,230,84,228,75,226,113,224,180,222,19,221,140,219,7,218,133,216,45,215,9,214,28,213,139,212, +131,212,15,213,36,214,188,215,220,217,112,220,83,223,106,226,170,229,8,233,131,236,27,240,207,243,160,247,134,251,108,255, +56,3,218,6,94,10,197,13,219,16,112,19,124,21,9,23,13,24,80,24,153,23,235,21,76,19,190,15,92,11,55,6, +100,0,58,250,241,243,116,237,216,230,81,224,224,217,178,211,9,206,198,200,192,195,31,191,255,186,88,183,45,180,129,177, +75,175,164,173,173,172,102,172,175,172,97,173,93,174,126,175,168,176,208,177,254,178,96,180,25,182,15,184,56,186,179,188, +144,191,211,194,106,198,45,202,40,206,170,210,210,215,133,221,181,227,77,234,12,241,169,247,248,253,227,3,70,9,25,14, +153,18,234,22,229,26,117,30,156,33,85,36,179,38,168,40,249,41,152,42,170,42,65,42,91,41,243,39,31,38,254,35, +111,33,94,30,30,27,237,23,185,20,142,17,138,14,184,11,60,9,33,7,77,5,222,3,255,2,160,2,186,2,103,3, +174,4,116,6,145,8,1,11,222,13,40,17,195,20,163,24,193,28,12,33,103,37,184,41,218,45,166,49,15,53,34,56, +185,58,160,60,253,61,251,62,127,63,120,63,235,62,218,61,88,60,118,58,75,56,20,54,244,51,238,49,26,48,113,46, +202,44,46,43,160,41,251,39,76,38,193,36,110,35,79,34,65,33,38,32,8,31,209,29,88,28,169,26,203,24,187,22, +173,20,208,18,23,17,112,15,231,13,171,12,225,11,119,11,88,11,164,11,101,12,126,13,215,14,87,16,208,17,29,19, +63,20,70,21,31,22,189,22,87,23,31,24,13,25,25,26,63,27,134,28,13,30,208,31,146,33,46,35,145,36,151,37, +45,38,73,38,213,37,197,36,4,35,135,32,115,29,216,25,162,21,226,16,193,11,94,6,207,0,37,251,138,245,36,240, +238,234,250,229,138,225,198,221,188,218,99,216,142,214,58,213,135,212,84,212,133,212,47,213,72,214,201,215,210,217,63,220, +197,222,98,225,19,228,160,230,218,232,201,234,155,236,121,238,105,240,105,242,123,244,146,246,156,248,147,250,112,252,38,254, +150,255,166,0,64,1,54,1,86,0,132,254,186,251,35,248,238,243,35,239,237,233,169,228,136,223,152,218,208,213,20,209, +120,204,41,200,14,196,26,192,102,188,206,184,44,181,157,177,28,174,138,170,5,167,176,163,141,160,177,157,69,155,119,153, +95,152,236,151,251,151,105,152,44,153,106,154,68,156,180,158,194,161,133,165,6,170,65,175,27,181,95,187,235,193,149,200, +32,207,106,213,97,219,238,224,14,230,186,234,206,238,49,242,242,244,72,247,107,249,116,251,135,253,215,255,133,2,177,5, +118,9,177,13,37,18,169,22,37,27,130,31,138,35,247,38,164,41,114,43,68,44,59,44,130,43,25,42,41,40,1,38, +212,35,205,33,231,31,230,29,194,27,139,25,28,23,102,20,145,17,211,14,104,12,117,10,11,9,81,8,96,8,41,9, +173,10,232,12,179,15,233,18,122,22,81,26,72,30,46,34,228,37,121,41,245,44,86,48,191,51,99,55,98,59,210,63, +187,68,252,73,80,79,107,84,254,88,179,92,65,95,133,96,97,96,204,94,240,91,227,87,176,82,166,76,26,70,85,63, +207,56,224,50,152,45,27,41,136,37,195,34,169,32,10,31,174,29,132,28,138,27,180,26,19,26,180,25,151,25,219,25, +120,26,30,27,169,27,34,28,131,28,199,28,242,28,245,28,174,28,7,28,13,27,190,25,1,24,253,21,32,20,189,18, +7,18,45,18,42,19,223,20,64,23,43,26,90,29,135,32,165,35,179,38,117,41,164,43,70,45,93,46,184,46,83,46, +105,45,39,44,190,42,92,41,2,40,159,38,31,37,86,35,251,32,203,29,175,25,165,20,172,14,237,7,156,0,173,248, +62,240,181,231,63,223,218,214,166,206,200,198,126,191,7,185,58,179,201,173,191,168,43,164,254,159,63,156,250,152,71,150, +80,148,32,147,188,146,62,147,137,148,89,150,160,152,74,155,16,158,210,160,179,163,189,166,206,169,235,172,69,176,232,179, +214,183,59,188,47,193,170,198,179,204,75,211,100,218,226,225,126,233,223,240,194,247,217,253,229,2,211,6,132,9,229,10, +37,11,120,10,246,8,168,6,151,3,226,255,159,251,198,246,123,241,251,235,60,230,53,224,4,218,159,211,5,205,102,198, +220,191,139,185,210,179,4,175,66,171,157,168,38,167,223,166,160,167,50,169,131,171,142,174,52,178,93,182,240,186,202,191, +215,196,238,201,239,206,251,211,62,217,181,222,106,228,112,234,188,240,52,247,181,253,249,3,202,9,33,15,254,19,83,24, +39,28,197,31,110,35,30,39,225,42,221,46,20,51,126,55,22,60,184,64,72,69,191,73,242,77,189,81,3,85,142,87, +75,89,96,90,213,90,142,90,119,89,150,87,5,85,189,81,168,77,220,72,101,67,61,61,162,54,223,47,252,40,35,34, +165,27,172,21,101,16,249,11,116,8,9,6,0,5,94,5,13,7,13,10,80,14,166,19,190,25,54,32,201,38,78,45, +137,51,67,57,138,62,152,67,113,72,252,76,66,81,53,85,150,88,61,91,10,93,218,93,193,93,221,92,27,91,137,88, +87,85,150,81,71,77,106,72,249,66,32,61,28,55,9,49,13,43,85,37,216,31,113,26,254,20,123,15,252,9,119,4, +211,254,47,249,189,243,118,238,72,233,77,228,189,223,177,219,19,216,223,212,60,210,55,208,169,206,88,205,37,204,21,203, +32,202,50,201,129,200,84,200,170,200,141,201,58,203,175,205,172,208,27,212,248,215,40,220,155,224,109,229,193,234,140,240, +171,246,239,252,15,3,214,8,50,14,253,18,30,23,167,26,150,29,238,31,195,33,225,34,2,35,42,34,105,32,197,29, +97,26,75,22,141,17,90,12,207,6,8,1,43,251,12,245,143,238,7,232,159,225,43,219,170,212,59,206,231,199,177,193, +148,187,142,181,175,175,1,170,179,164,6,160,1,156,167,152,56,150,216,148,108,148,245,148,132,150,16,153,145,156,9,161, +88,166,55,172,129,178,61,185,90,192,191,199,132,207,168,215,15,224,194,232,174,241,136,250,41,3,135,11,108,19,151,26, +235,32,105,38,31,43,12,47,42,50,98,52,166,53,46,54,33,54,55,53,89,51,227,48,252,45,163,42,11,39,81,35, +129,31,191,27,1,24,38,20,55,16,39,12,228,7,165,3,153,255,176,251,227,247,89,244,67,241,153,238,22,236,168,233, +135,231,197,229,59,228,219,226,185,225,231,224,82,224,214,223,129,223,128,223,222,223,159,224,206,225,93,227,43,229,49,231, +125,233,14,236,227,238,24,242,211,245,25,250,222,254,10,4,133,9,71,15,49,21,244,26,108,32,153,37,108,42,221,46, +230,50,91,54,25,57,30,59,93,60,214,60,155,60,164,59,244,57,181,55,20,53,26,50,162,46,156,42,64,38,159,33, +141,28,30,23,130,17,186,11,221,5,31,0,155,250,123,245,255,240,70,237,105,234,132,232,151,231,143,231,82,232,206,233, +248,235,180,238,223,241,116,245,120,249,216,253,127,2,77,7,8,12,110,16,93,20,203,23,149,26,152,28,252,29,243,30, +98,31,58,31,161,30,160,29,44,28,96,26,94,24,76,22,74,20,101,18,179,16,71,15,0,14,169,12,65,11,213,9, +73,8,119,6,107,4,60,2,193,255,217,252,174,249,91,246,237,242,166,239,192,236,60,234,21,232,71,230,201,228,174,227, +9,227,215,226,19,227,192,227,229,228,155,230,237,232,177,235,174,238,203,241,28,245,177,248,108,252,48,0,242,3,169,7, +74,11,209,14,54,18,119,21,170,24,235,27,57,31,120,34,168,37,199,40,166,43,34,46,64,48,230,49,233,50,50,51, +179,50,102,49,100,47,177,44,80,41,105,37,36,33,163,28,10,24,110,19,223,14,116,10,33,6,223,1,192,253,176,249, +149,245,140,241,168,237,236,233,108,230,70,227,165,224,183,222,121,221,211,220,182,220,21,221,236,221,63,223,2,225,30,227, +140,229,70,232,50,235,28,238,220,240,152,243,149,246,236,249,146,253,127,1,186,5,86,10,59,15,20,20,132,24,68,28, +65,31,120,33,214,34,90,35,33,35,40,34,115,32,41,30,95,27,53,24,225,20,89,17,125,13,93,9,5,5,91,0, +88,251,241,245,16,240,198,233,52,227,106,220,120,213,129,206,197,199,116,193,127,187,224,181,198,176,96,172,206,168,15,166, +252,163,120,162,135,161,33,161,65,161,232,161,25,163,13,165,16,168,26,172,250,176,142,182,154,188,221,194,50,201,104,207, +67,213,184,218,208,223,132,228,191,232,103,236,134,239,86,242,247,244,90,247,161,249,19,252,199,254,208,1,86,5,46,9, +3,13,230,16,239,20,207,24,77,28,102,31,17,34,83,36,39,38,102,39,24,40,111,40,96,40,219,39,240,38,128,37, +108,35,193,32,111,29,71,25,88,20,222,14,4,9,252,2,27,253,181,247,241,242,0,239,47,236,157,234,35,234,156,234, +232,235,237,237,143,240,143,243,186,246,18,250,132,253,240,0,85,4,188,7,58,11,5,15,48,19,167,23,104,28,93,33, +93,38,88,43,23,48,72,52,198,55,110,58,25,60,200,60,106,60,234,58,135,56,126,53,207,49,185,45,170,41,181,37, +207,33,54,30,32,27,130,24,86,22,167,20,104,19,133,18,7,18,251,17,105,18,88,19,194,20,142,22,171,24,251,26, +46,29,3,31,118,32,130,33,3,34,232,33,74,33,81,32,28,31,188,29,90,28,56,27,139,26,112,26,249,26,34,28, +212,29,5,32,168,34,132,37,79,40,225,42,58,45,73,47,225,48,245,49,159,50,225,50,204,50,142,50,67,50,249,49, +217,49,255,49,81,50,147,50,141,50,48,50,133,49,108,48,195,46,140,44,197,41,97,38,91,34,163,29,48,24,29,18, +118,11,65,4,163,252,197,244,228,236,76,229,12,222,27,215,142,208,106,202,182,196,133,191,190,186,105,182,224,178,51,176, +38,174,183,172,241,171,178,171,223,171,106,172,82,173,158,174,43,176,243,177,31,180,150,182,34,185,230,187,9,191,129,194, +78,198,108,202,209,206,119,211,70,216,51,221,60,226,59,231,47,236,48,241,2,246,112,250,134,254,11,2,180,4,136,6, +106,7,59,7,64,6,167,4,93,2,108,255,219,251,144,247,135,242,183,236,26,230,216,222,37,215,66,207,113,199,203,191, +108,184,149,177,100,171,205,165,206,160,104,156,186,152,255,149,93,148,249,147,220,148,222,150,241,153,21,158,2,163,117,168, +101,174,170,180,16,187,149,193,49,200,202,206,84,213,211,219,70,226,157,232,206,238,239,244,4,251,223,0,101,6,140,11, +73,16,177,20,205,24,162,28,119,32,148,36,244,40,140,45,65,50,208,54,37,59,71,63,21,67,136,70,200,73,187,76, +42,79,250,80,14,82,45,82,28,81,225,78,199,75,1,72,174,67,18,63,89,58,121,53,109,48,35,43,109,37,68,31, +183,24,234,17,61,11,251,4,61,255,104,250,226,246,171,244,201,243,100,244,135,246,61,250,108,255,153,5,107,12,206,19, +119,27,3,35,55,42,220,48,209,54,31,60,231,64,81,69,106,73,27,77,98,80,111,83,107,86,80,89,239,91,20,94, +177,95,171,96,186,96,169,95,108,93,12,90,150,85,42,80,9,74,114,67,134,60,100,53,60,46,30,39,25,32,73,25, +162,18,45,12,42,6,141,0,14,251,205,245,17,241,209,236,237,232,106,229,80,226,175,223,158,221,43,220,74,219,205,218, +144,218,150,218,210,218,33,219,147,219,78,220,86,221,195,222,184,224,77,227,136,230,96,234,191,238,155,243,235,248,146,254, +101,4,52,10,206,15,16,21,211,25,250,29,135,33,116,36,173,38,67,40,100,41,40,42,138,42,140,42,44,42,77,41, +205,39,149,37,139,34,163,30,235,25,94,20,253,13,255,6,140,255,153,247,50,239,140,230,204,221,38,213,229,204,40,197, +224,189,15,183,212,176,66,171,82,166,1,162,84,158,70,155,220,152,60,151,127,150,167,150,183,151,178,153,140,156,75,160, +238,164,81,170,76,176,202,182,174,189,193,196,213,203,0,211,108,218,13,226,199,233,148,241,76,249,175,0,153,7,219,13, +79,19,254,23,211,27,164,30,147,32,209,33,59,34,169,33,42,32,195,29,127,26,170,22,150,18,64,14,152,9,207,4, +5,0,8,251,207,245,150,240,117,235,127,230,236,225,199,221,3,218,205,214,64,212,64,210,206,208,235,207,128,207,142,207, +252,207,124,208,226,208,37,209,37,209,220,208,109,208,247,207,158,207,155,207,22,208,31,209,194,210,10,213,1,216,185,219, +53,224,108,229,111,235,75,242,206,249,175,1,195,9,227,17,227,25,162,33,236,40,148,47,178,53,81,59,78,64,177,68, +156,72,0,76,188,78,179,80,173,81,138,81,105,80,104,78,136,75,207,71,86,67,62,62,156,56,131,50,24,44,120,37, +212,30,139,24,191,18,66,13,37,8,157,3,159,255,26,252,42,249,222,246,37,245,228,243,20,243,204,242,2,243,134,243, +95,244,185,245,156,247,4,250,243,252,126,0,193,4,110,9,250,13,64,18,73,22,211,25,180,28,255,30,174,32,209,33, +149,34,229,34,145,34,164,33,68,32,180,30,62,29,1,28,27,27,194,26,247,26,143,27,97,28,52,29,237,29,163,30, +83,31,222,31,59,32,95,32,54,32,170,31,146,30,217,28,172,26,75,24,193,21,246,18,233,15,193,12,141,9,53,6, +191,2,94,255,73,252,176,249,167,247,30,246,15,245,149,244,174,244,34,245,161,245,23,246,206,246,15,248,200,249,206,251, +22,254,157,0,101,3,103,6,104,9,64,12,27,15,25,18,18,21,210,23,48,26,252,27,27,29,137,29,40,29,224,27, +205,25,23,23,199,19,0,16,13,12,45,8,137,4,46,1,18,254,46,251,167,248,157,246,247,244,124,243,5,242,144,240, +28,239,149,237,248,235,79,234,153,232,212,230,10,229,65,227,118,225,159,223,162,221,110,219,12,217,145,214,40,212,247,209, +18,208,152,206,192,205,153,205,11,206,25,207,213,208,71,211,91,214,235,217,241,221,101,226,235,230,36,235,30,239,200,242, +203,245,54,248,106,250,98,252,2,254,122,255,230,0,22,2,217,2,35,3,251,2,99,2,82,1,220,255,26,254,239,251, +61,249,7,246,56,242,215,237,37,233,82,228,123,223,216,218,130,214,103,210,137,206,237,202,136,199,107,196,191,193,144,191, +212,189,162,188,45,188,132,188,130,189,27,191,114,193,171,196,238,200,71,206,120,212,49,219,61,226,77,233,0,240,15,246, +57,251,94,255,175,2,88,5,99,7,239,8,37,10,35,11,5,12,207,12,122,13,22,14,181,14,101,15,57,16,57,17, +97,18,182,19,67,21,20,23,38,25,122,27,36,30,39,33,92,36,181,39,52,43,165,46,202,49,111,52,67,54,33,55, +13,55,212,53,71,51,164,47,54,43,45,38,188,32,5,27,61,21,191,15,173,10,240,5,163,1,242,253,217,250,84,248, +135,246,158,245,144,245,33,246,66,247,249,248,4,251,32,253,90,255,194,1,61,4,163,6,229,8,32,11,108,13,171,15, +193,17,173,19,97,21,221,22,36,24,15,25,145,25,208,25,223,25,226,25,5,26,32,26,7,26,226,25,197,25,150,25, +100,25,66,25,30,25,218,24,122,24,46,24,31,24,65,24,139,24,251,24,126,25,33,26,255,26,237,27,171,28,71,29, +227,29,120,30,224,30,4,31,240,30,178,30,49,30,101,29,107,28,89,27,72,26,110,25,239,24,203,24,211,24,225,24, +1,25,52,25,76,25,78,25,108,25,167,25,218,25,225,25,169,25,58,25,157,24,177,23,116,22,26,21,218,19,196,18, +213,17,27,17,159,16,47,16,147,15,190,14,148,13,237,11,213,9,77,7,54,4,161,0,184,252,137,248,50,244,214,239, +160,235,223,231,181,228,243,225,141,223,125,221,137,219,154,217,181,215,192,213,177,211,159,209,149,207,173,205,236,203,47,202, +109,200,192,198,58,197,250,195,32,195,189,194,244,194,193,195,253,196,163,198,156,200,167,202,186,204,242,206,67,209,184,211, +108,214,89,217,146,220,63,224,65,228,89,232,113,236,110,240,44,244,161,247,195,250,115,253,159,255,60,1,44,2,92,2, +221,1,209,0,60,255,41,253,196,250,51,248,133,245,216,242,54,240,128,237,166,234,181,231,160,228,91,225,16,222,231,218, +232,215,65,213,59,211,209,209,233,208,191,208,132,209,13,211,50,213,237,215,13,219,70,222,93,225,48,228,196,230,33,233, +69,235,88,237,132,239,192,241,24,244,185,246,156,249,151,252,143,255,118,2,82,5,40,8,210,10,63,13,144,15,225,17, +59,20,170,22,52,25,3,28,91,31,54,35,86,39,143,43,180,47,142,51,236,54,146,57,90,59,66,60,72,60,101,59, +148,57,205,54,17,51,133,46,96,41,222,35,66,30,199,24,140,19,161,14,8,10,173,5,132,1,174,253,76,250,77,247, +170,244,146,242,13,241,5,240,154,239,244,239,0,241,183,242,44,245,70,248,236,251,29,0,167,4,42,9,99,13,59,17, +173,20,191,23,130,26,242,28,9,31,226,32,161,34,56,36,125,37,106,38,7,39,81,39,56,39,162,38,141,37,16,36, +53,34,249,31,122,29,242,26,139,24,114,22,254,20,138,20,24,21,110,22,107,24,215,26,53,29,25,31,66,32,108,32, +127,31,153,29,193,26,6,23,179,18,242,13,191,8,76,3,244,253,237,248,89,244,104,240,60,237,210,234,35,233,54,232, +253,231,96,232,125,233,126,235,113,238,121,242,189,247,11,254,33,5,221,12,224,20,151,28,184,35,30,42,134,47,175,51, +111,54,149,55,15,55,29,53,18,50,36,46,163,41,3,37,130,32,48,28,27,24,32,20,13,16,217,11,100,7,122,2, +59,253,212,247,45,242,71,236,76,230,61,224,48,218,94,212,222,206,215,201,153,197,62,194,162,191,162,189,11,188,152,186, +5,185,34,183,254,180,195,178,133,176,133,174,35,173,123,172,129,172,77,173,238,174,75,177,75,180,213,183,230,187,139,192, +173,197,61,203,71,209,181,215,80,222,30,229,76,236,209,243,132,251,101,3,144,11,219,19,240,27,153,35,153,42,143,48, +64,53,144,56,59,58,33,58,100,56,6,53,232,47,57,41,92,33,168,24,117,15,12,6,139,252,13,243,199,233,198,224, +238,215,64,207,0,199,132,191,0,185,151,179,109,175,174,172,120,171,199,171,131,173,158,176,22,181,214,186,169,193,66,201, +67,209,84,217,44,225,158,232,144,239,241,245,165,251,143,0,217,4,218,8,139,12,183,15,149,18,132,21,133,24,136,27, +158,30,170,33,147,36,105,39,21,42,119,44,178,46,244,48,72,51,198,53,123,56,89,59,92,62,96,65,1,68,252,69, +58,71,132,71,172,70,181,68,150,65,60,61,221,55,201,49,26,43,222,35,89,28,214,20,121,13,94,6,184,255,174,249, +86,244,200,239,18,236,47,233,34,231,239,229,126,229,167,229,100,230,196,231,186,233,31,236,211,238,183,241,181,244,229,247, +85,251,203,254,5,2,8,5,231,7,139,10,216,12,238,14,14,17,65,19,125,21,252,23,239,26,45,30,158,33,79,37, +5,41,107,44,134,47,88,50,163,52,97,54,186,55,162,56,247,56,195,56,10,56,170,54,169,52,65,50,135,47,94,44, +205,40,240,36,167,32,218,27,173,22,53,17,107,11,112,5,108,255,118,249,189,243,122,238,205,233,192,229,81,226,128,223, +92,221,226,219,243,218,140,218,172,218,52,219,16,220,88,221,49,223,172,225,199,228,155,232,84,237,210,242,177,248,190,254, +220,4,191,10,41,16,5,21,51,25,155,28,48,31,199,32,74,33,191,32,47,31,194,28,193,25,79,22,145,18,211,14, +54,11,175,7,40,4,104,0,65,252,202,247,23,243,49,238,90,233,207,228,152,224,202,220,118,217,124,214,190,211,45,209, +176,206,54,204,194,201,86,199,6,197,222,194,199,192,190,190,230,188,89,187,55,186,157,185,139,185,43,186,200,187,99,190, +195,193,219,197,176,202,29,208,251,213,59,220,190,226,87,233,239,239,121,246,196,252,162,2,30,8,64,13,234,17,22,22, +214,25,1,29,103,31,251,32,162,33,43,33,155,31,23,29,186,25,165,21,10,17,45,12,69,7,82,2,81,253,101,248, +177,243,72,239,75,235,195,231,176,228,66,226,153,224,134,223,218,222,138,222,131,222,180,222,37,223,203,223,164,224,215,225, +138,227,179,229,50,232,243,234,245,237,68,241,240,244,230,248,234,252,218,0,198,4,176,8,123,12,38,16,186,19,53,23, +181,26,111,30,96,34,104,38,139,42,190,46,217,50,184,54,75,58,142,61,137,64,52,67,108,69,23,71,45,72,148,72, +41,72,236,70,235,68,39,66,187,62,212,58,119,54,157,49,94,44,208,38,10,33,44,27,38,21,215,14,111,8,41,2, +243,251,213,245,22,240,227,234,82,230,127,226,109,223,35,221,180,219,8,219,11,219,207,219,60,221,24,223,89,225,254,227, +240,230,46,234,178,237,82,241,227,244,69,248,104,251,95,254,50,1,201,3,28,6,36,8,203,9,17,11,252,11,131,12, +192,12,241,12,55,13,155,13,40,14,249,14,45,16,191,17,140,19,137,21,170,23,196,25,176,27,61,29,30,30,44,30, +92,29,159,27,38,25,86,22,99,19,105,16,144,13,209,10,12,8,53,5,50,2,235,254,123,251,14,248,183,244,119,241, +75,238,84,235,170,232,53,230,16,228,161,226,44,226,200,226,153,228,159,231,167,235,111,240,155,245,217,250,16,0,11,5, +116,9,62,13,114,16,13,19,47,21,232,22,16,24,171,24,230,24,199,24,82,24,167,23,197,22,146,21,253,19,231,17, +52,15,202,11,152,7,207,2,181,253,91,248,230,242,163,237,193,232,104,228,193,224,192,221,88,219,159,217,114,216,167,215, +81,215,94,215,132,215,183,215,29,216,167,216,65,217,253,217,250,218,99,220,95,222,240,224,253,227,102,231,248,234,109,238, +162,241,167,244,121,247,253,249,76,252,145,254,176,0,135,2,72,4,37,6,32,8,71,10,178,12,94,15,60,18,41,21, +221,23,27,26,175,27,89,28,0,28,194,26,208,24,100,22,183,19,243,16,22,14,230,10,48,7,11,3,155,254,225,249, +229,244,171,239,49,234,133,228,163,222,110,216,18,210,243,203,77,198,103,193,186,189,141,187,217,186,127,187,86,189,47,192, +227,195,52,200,206,204,151,209,167,214,6,220,136,225,252,230,74,236,109,241,111,246,102,251,96,0,124,5,229,10,129,16, +247,21,28,27,200,31,145,35,59,38,232,39,157,40,106,40,200,39,20,39,65,38,79,37,119,36,238,35,188,35,189,35, +210,35,253,35,33,36,6,36,129,35,92,34,101,32,154,29,32,26,49,22,20,18,7,14,87,10,66,7,170,4,83,2, +59,0,75,254,66,252,23,250,215,247,147,245,129,243,187,241,41,240,236,238,50,238,220,237,231,237,132,238,181,239,147,241, +92,244,236,247,214,251,207,255,150,3,242,6,191,9,199,11,5,13,215,13,145,14,95,15,127,16,9,18,212,19,200,21, +227,23,6,26,248,27,133,29,154,30,35,31,236,30,201,29,179,27,168,24,224,20,187,16,86,12,179,7,22,3,203,254, +220,250,61,247,226,243,207,240,42,238,254,235,58,234,254,232,113,232,103,232,170,232,58,233,31,234,101,235,26,237,68,239, +251,241,64,245,240,248,254,252,76,1,117,5,39,9,89,12,2,15,43,17,254,18,166,20,98,22,112,24,214,26,163,29, +252,32,204,36,233,40,60,45,133,49,141,53,85,57,191,60,120,63,90,65,107,66,156,66,208,65,13,64,123,61,59,58, +71,54,167,49,150,44,51,39,84,33,221,26,228,19,122,12,187,4,200,252,181,244,170,236,236,228,163,221,224,214,171,208, +246,202,211,197,137,193,55,190,229,187,184,186,182,186,171,187,117,189,254,191,17,195,133,198,96,202,153,206,25,211,247,215, +59,221,164,226,247,231,38,237,21,242,180,246,24,251,56,255,21,3,225,6,162,10,55,14,164,17,220,20,151,23,185,25, +98,27,166,28,138,29,11,30,33,30,189,29,196,28,33,27,203,24,189,21,230,17,69,13,250,7,37,2,217,251,30,245, +255,237,161,230,54,223,192,215,57,208,228,200,22,194,234,187,83,182,75,177,222,172,26,169,236,165,60,163,30,161,191,159, +85,159,19,160,8,162,44,165,102,169,129,174,99,180,252,186,14,194,96,201,234,208,179,216,211,224,78,233,233,241,131,250, +44,3,189,11,247,19,197,27,28,35,244,41,76,48,248,53,162,58,26,62,90,64,116,65,153,65,251,64,187,63,41,62, +150,60,14,59,146,57,57,56,227,54,96,53,169,51,175,49,124,47,36,45,136,42,151,39,109,36,203,32,104,28,106,23, +3,18,57,12,48,6,28,0,54,250,185,244,174,239,11,235,242,230,135,227,214,224,238,222,223,221,168,221,77,222,211,223, +50,226,71,229,242,232,41,237,239,241,72,247,38,253,114,3,2,10,160,16,26,23,62,29,211,34,208,39,81,44,83,48, +209,51,247,54,218,57,98,60,134,62,51,64,71,65,182,65,144,65,245,64,250,63,155,62,224,60,197,58,39,56,248,52, +50,49,197,44,243,39,25,35,70,30,144,25,48,21,51,17,143,13,55,10,3,7,230,3,238,0,26,254,113,251,253,248, +153,246,57,244,30,242,105,240,249,238,212,237,20,237,150,236,80,236,99,236,187,236,68,237,44,238,146,239,124,241,18,244, +111,247,161,251,184,0,137,6,194,12,18,19,48,25,7,31,140,36,118,41,156,45,19,49,186,51,78,53,178,53,249,52, +70,51,165,48,251,44,88,40,0,35,41,29,241,22,100,16,148,9,171,2,188,251,198,244,196,237,164,230,95,223,27,216, +6,209,33,202,106,195,21,189,82,183,20,178,83,173,64,169,242,165,89,163,123,161,114,160,85,160,47,161,239,162,133,165, +226,168,231,172,97,177,248,181,80,186,89,190,59,194,28,198,33,202,89,206,184,210,70,215,255,219,211,224,192,229,157,234, +69,239,226,243,143,248,37,253,150,1,223,5,216,9,91,13,79,16,169,18,99,20,117,21,229,21,175,21,166,20,183,18, +246,15,108,12,29,8,39,3,187,253,12,248,69,242,127,236,206,230,63,225,212,219,144,214,151,209,23,205,39,201,221,197, +99,195,203,193,20,193,43,193,232,193,77,195,129,197,115,200,18,204,111,208,112,213,251,218,9,225,76,231,132,237,186,243, +217,249,224,255,235,5,202,11,97,17,246,22,118,28,139,33,54,38,135,42,112,46,17,50,158,53,45,57,212,60,155,64, +96,68,1,72,115,75,140,78,21,81,3,83,93,84,28,85,80,85,11,85,56,84,192,82,177,80,29,78,4,75,98,71, +77,67,227,62,47,58,57,53,250,47,80,42,99,36,123,30,153,24,218,18,153,13,231,8,192,4,76,1,124,254,27,252, +28,250,143,248,136,247,248,246,213,246,80,247,123,248,22,250,241,251,221,253,158,255,83,1,47,3,35,5,72,7,219,9, +204,12,238,15,30,19,18,22,134,24,122,26,254,27,2,29,141,29,176,29,88,29,125,28,55,27,127,25,59,23,130,20, +152,17,201,14,38,12,153,9,72,7,99,5,197,3,61,2,191,0,81,255,2,254,197,252,131,251,85,250,55,249,17,248, +246,246,206,245,90,244,176,242,245,240,40,239,98,237,145,235,136,233,117,231,97,229,14,227,153,224,63,222,24,220,107,218, +129,217,97,217,27,218,204,219,68,222,55,225,134,228,21,232,213,235,236,239,102,244,25,249,242,253,229,2,193,7,85,12, +91,16,141,19,9,22,243,23,39,25,149,25,72,25,70,24,172,22,111,20,74,17,48,13,67,8,187,2,240,252,250,246, +195,240,127,234,119,228,190,222,103,217,130,212,23,208,70,204,38,201,173,198,185,196,32,195,208,193,208,192,22,192,172,191, +178,191,73,192,143,193,106,195,153,197,34,200,21,203,60,206,133,209,36,213,34,217,104,221,12,226,26,231,87,236,151,241, +213,246,223,251,155,0,52,5,171,9,239,13,43,18,81,22,22,26,112,29,75,32,119,34,34,36,141,37,194,38,193,39, +144,40,48,41,148,41,136,41,240,40,210,39,30,38,215,35,25,33,222,29,30,26,250,21,145,17,225,12,224,7,166,2, +114,253,95,248,105,243,180,238,120,234,213,230,192,227,26,225,227,222,50,221,17,220,123,219,87,219,145,219,82,220,188,221, +189,223,70,226,75,229,186,232,143,236,170,240,224,244,43,249,134,253,211,1,6,6,14,10,235,13,165,17,39,21,112,24, +161,27,187,30,178,33,143,36,65,39,177,41,243,43,34,46,74,48,101,50,118,52,134,54,167,56,233,58,32,61,246,62, +69,64,244,64,202,64,179,63,182,61,209,58,60,55,43,51,149,46,151,41,84,36,193,30,234,24,214,18,121,12,21,6, +232,255,233,249,71,244,78,239,240,234,27,231,232,227,100,225,148,223,145,222,104,222,19,223,120,224,123,226,22,229,48,232, +129,235,191,238,225,241,230,244,158,247,229,249,168,251,202,252,88,253,112,253,24,253,130,252,229,251,45,251,96,250,166,249, +245,248,69,248,156,247,242,246,97,246,248,245,142,245,63,245,55,245,86,245,129,245,180,245,205,245,186,245,121,245,244,244, +35,244,25,243,250,241,220,240,152,239,15,238,102,236,187,234,30,233,168,231,92,230,60,229,125,228,94,228,238,228,27,230, +214,231,26,234,221,236,254,239,76,243,178,246,65,250,237,253,168,1,142,5,146,9,149,13,194,17,33,22,114,26,174,30, +235,34,255,38,151,42,94,45,56,47,71,48,120,48,193,47,118,46,198,44,191,42,168,40,133,38,12,36,52,33,246,29, +40,26,218,21,52,17,54,12,241,6,165,1,135,252,154,247,187,242,236,237,87,233,34,229,102,225,62,222,204,219,42,218, +101,217,140,217,123,218,229,219,165,221,187,223,22,226,164,228,101,231,131,234,37,238,44,242,126,246,44,251,13,0,230,4, +197,9,144,14,4,19,30,23,238,26,116,30,170,33,89,36,110,38,44,40,177,41,234,42,234,43,205,44,161,45,77,46, +132,46,28,46,32,45,123,43,19,41,248,37,58,34,205,29,184,24,19,19,216,12,3,6,198,254,79,247,186,239,72,232, +27,225,19,218,74,211,246,204,1,199,84,193,7,188,62,183,38,179,212,175,68,173,154,171,241,170,34,171,13,172,170,173, +223,175,156,178,236,181,205,185,21,190,155,194,95,199,77,204,58,209,10,214,156,218,228,222,36,227,127,231,222,235,72,240, +191,244,54,249,190,253,55,2,86,6,14,10,116,13,113,16,234,18,230,20,136,22,201,23,94,24,44,24,116,23,89,22, +204,20,219,18,185,16,144,14,79,12,245,9,182,7,176,5,232,3,120,2,106,1,172,0,78,0,90,0,194,0,93,1, +243,1,113,2,231,2,73,3,112,3,74,3,236,2,127,2,5,2,116,1,237,0,142,0,107,0,171,0,120,1,248,2, +71,5,117,8,139,12,90,17,131,22,228,27,115,33,230,38,28,44,19,49,152,53,145,57,252,60,154,63,57,65,207,65, +77,65,171,63,6,61,132,57,65,53,77,48,204,42,232,36,168,30,48,24,203,17,142,11,141,5,9,0,44,251,1,247, +133,243,160,240,65,238,129,236,107,235,237,234,1,235,176,235,223,236,87,238,12,240,251,241,249,243,237,245,219,247,204,249, +213,251,16,254,164,0,195,3,82,7,29,11,69,15,192,19,44,24,124,28,208,32,249,36,211,40,80,44,102,47,42,50, +161,52,174,54,76,56,129,57,87,58,207,58,207,58,84,58,140,57,137,56,65,55,182,53,218,51,145,49,212,46,159,43, +205,39,53,35,236,29,38,24,2,18,179,11,120,5,88,255,88,249,145,243,247,237,128,232,58,227,32,222,51,217,141,212, +68,208,111,204,53,201,179,198,233,196,189,195,55,195,132,195,152,196,63,198,84,200,191,202,132,205,168,208,14,212,194,215, +248,219,176,224,199,229,0,235,255,239,167,244,17,249,50,253,247,0,104,4,142,7,132,10,72,13,154,15,65,17,15,18, +238,17,243,16,50,15,177,12,136,9,206,5,167,1,75,253,198,248,4,244,37,239,101,234,216,229,109,225,39,221,20,217, +41,213,104,209,209,205,60,202,168,198,59,195,236,191,180,188,165,185,166,182,158,179,142,176,130,173,164,170,255,167,116,165, +50,163,147,161,163,160,75,160,133,160,78,161,202,162,28,165,73,168,80,172,30,177,155,182,207,188,149,195,160,202,181,209, +160,216,71,223,174,229,191,235,75,241,68,246,186,250,187,254,73,2,100,5,48,8,221,10,133,13,37,16,176,18,42,21, +165,23,43,26,212,28,160,31,99,34,18,37,193,39,109,42,11,45,121,47,122,49,239,50,225,51,86,52,67,52,139,51, +62,50,159,48,188,46,155,44,126,42,119,40,131,38,204,36,89,35,19,34,37,33,189,32,229,32,157,33,230,34,200,36, +58,39,0,42,222,44,181,47,114,50,32,53,204,55,95,58,207,60,43,63,126,65,199,67,228,69,170,71,23,73,80,74, +96,75,51,76,202,76,45,77,74,77,31,77,176,76,210,75,138,74,25,73,126,71,162,69,163,67,97,65,186,62,205,59, +114,56,106,52,237,47,68,43,127,38,188,33,19,29,134,24,27,20,198,15,136,11,119,7,127,3,152,255,239,251,134,248, +45,245,230,241,222,238,39,236,181,233,155,231,253,229,7,229,228,228,121,229,128,230,6,232,58,234,240,236,232,239,15,243, +108,246,22,250,241,253,179,1,42,5,53,8,192,10,231,12,180,14,20,16,35,17,17,18,235,18,161,19,9,20,10,20, +165,19,201,18,98,17,104,15,224,12,236,9,162,6,234,2,206,254,94,250,121,245,17,240,94,234,145,228,151,222,78,216, +244,209,2,204,162,198,174,193,17,189,230,184,96,181,123,178,252,175,210,173,26,172,214,170,252,169,116,169,31,169,30,169, +149,169,124,170,198,171,95,173,30,175,5,177,31,179,88,181,188,183,126,186,200,189,167,193,31,198,49,203,198,208,182,214, +213,220,236,226,208,232,134,238,33,244,191,249,108,255,9,5,151,10,61,16,201,21,208,26,38,31,194,34,149,37,165,39, +223,40,37,41,128,40,27,39,28,37,138,34,86,31,155,27,137,23,63,19,184,14,204,9,108,4,193,254,207,248,139,242, +19,236,119,229,178,222,241,215,103,209,60,203,184,197,17,193,105,189,231,186,153,185,117,185,126,186,182,188,238,191,211,195, +28,200,178,204,131,209,101,214,60,219,9,224,196,228,71,233,131,237,147,241,103,245,214,248,236,251,179,254,19,1,19,3, +205,4,78,6,179,7,255,8,55,10,152,11,78,13,88,15,205,17,160,20,166,23,235,26,109,30,242,33,99,37,193,40, +18,44,92,47,126,50,85,53,234,55,50,58,6,60,99,61,69,62,172,62,189,62,147,62,40,62,143,61,224,60,18,60, +32,59,22,58,208,56,37,55,41,53,253,50,172,48,66,46,194,43,79,41,52,39,153,37,138,36,53,36,151,36,138,37, +6,39,229,40,246,42,52,45,114,47,98,49,243,50,40,52,254,52,135,53,185,53,141,53,37,53,108,52,46,51,116,49, +84,47,190,44,192,41,135,38,43,35,161,31,229,27,46,24,184,20,109,17,44,14,27,11,88,8,186,5,26,3,122,0, +198,253,227,250,211,247,146,244,33,241,169,237,81,234,45,231,85,228,202,225,137,223,184,221,107,220,161,219,92,219,146,219, +58,220,93,221,234,222,181,224,163,226,174,228,234,230,109,233,55,236,78,239,170,242,29,246,130,249,162,252,37,255,244,0, +56,2,246,2,37,3,223,2,85,2,190,1,67,1,222,0,115,0,254,255,165,255,135,255,130,255,105,255,65,255,28,255, +192,254,223,253,108,252,139,250,72,248,164,245,165,242,77,239,187,235,34,232,141,228,244,224,143,221,170,218,100,216,202,214, +224,213,147,213,191,213,72,214,240,214,83,215,63,215,205,214,5,214,242,212,217,211,230,210,38,210,217,209,62,210,80,211, +10,213,107,215,78,218,113,221,147,224,145,227,99,230,7,233,144,235,4,238,72,240,93,242,116,244,148,246,179,248,216,250, +254,252,30,255,71,1,102,3,65,5,202,6,5,8,212,8,29,9,240,8,112,8,200,7,29,7,111,6,179,5,19,5, +177,4,121,4,91,4,98,4,120,4,121,4,96,4,38,4,162,3,203,2,203,1,177,0,100,255,254,253,154,252,25,251, +92,249,92,247,11,245,134,242,1,240,123,237,247,234,172,232,174,230,235,228,103,227,56,226,99,225,230,224,199,224,4,225, +125,225,25,226,232,226,227,227,242,228,22,230,81,231,148,232,207,233,244,234,247,235,207,236,96,237,141,237,108,237,44,237, +247,236,3,237,131,237,131,238,1,240,16,242,188,244,252,247,201,251,23,0,208,4,207,9,223,14,224,19,197,24,136,29, +49,34,209,38,86,43,168,47,193,51,128,55,177,58,39,61,172,62,61,63,28,63,129,62,163,61,212,60,58,60,199,59, +115,59,32,59,160,58,236,57,253,56,200,55,92,54,188,52,216,50,170,48,29,46,25,43,183,39,27,36,91,32,150,28, +253,24,186,21,225,18,89,16,247,13,212,11,17,10,126,8,229,6,79,5,206,3,85,2,198,0,10,255,59,253,138,251, +241,249,100,248,253,246,216,245,13,245,184,244,205,244,35,245,198,245,218,246,106,248,125,250,29,253,78,0,23,4,136,8, +146,13,249,18,124,24,251,29,86,35,110,40,77,45,241,49,67,54,86,58,62,62,165,65,36,68,153,69,237,69,228,68, +100,66,154,62,227,57,160,52,10,47,44,41,11,35,209,28,177,22,188,16,229,10,42,5,139,255,12,250,167,244,50,239, +129,233,187,227,60,222,48,217,180,212,16,209,132,206,17,205,157,204,248,204,231,205,61,207,214,208,137,210,60,212,250,213, +218,215,192,217,113,219,206,220,188,221,32,222,36,222,38,222,88,222,227,222,5,224,178,225,172,227,206,229,236,231,236,233, +225,235,195,237,138,239,100,241,82,243,2,245,85,246,81,247,209,247,195,247,61,247,76,246,7,245,134,243,178,241,105,239, +162,236,53,233,23,229,145,224,223,219,9,215,60,210,203,205,210,201,70,198,68,195,235,192,39,191,228,189,59,189,46,189, +142,189,73,190,87,191,112,192,81,193,243,193,79,194,86,194,45,194,25,194,82,194,253,194,42,196,217,197,237,199,64,202, +181,204,59,207,191,209,75,212,3,215,254,217,60,221,190,224,168,228,35,233,47,238,164,243,118,249,170,255,16,6,93,12, +85,18,189,23,86,28,233,31,88,34,180,35,67,36,89,36,57,36,28,36,37,36,87,36,166,36,4,37,77,37,81,37, +9,37,161,36,41,36,135,35,177,34,173,33,117,32,28,31,182,29,88,28,64,27,181,26,186,26,63,27,59,28,119,29, +189,30,250,31,6,33,188,33,64,34,193,34,86,35,28,36,16,37,11,38,20,39,77,40,193,41,141,43,216,45,167,48, +239,51,148,55,93,59,5,63,60,66,182,68,63,70,201,70,123,70,172,69,142,68,16,67,35,65,209,62,30,60,29,57, +210,53,47,50,81,46,108,42,118,38,76,34,244,29,115,25,203,20,4,16,19,11,240,5,187,0,184,251,25,247,241,242, +60,239,250,235,51,233,215,230,172,228,126,226,75,224,46,222,52,220,95,218,200,216,160,215,28,215,129,215,245,216,86,219, +137,222,169,226,174,231,60,237,235,242,121,248,180,253,120,2,187,6,113,10,131,13,3,16,29,18,209,19,11,21,223,21, +78,22,40,22,123,21,125,20,48,19,150,17,14,16,241,14,71,14,4,14,25,14,105,14,220,14,114,15,19,16,158,16, +25,17,178,17,107,18,12,19,96,19,67,19,158,18,113,17,186,15,98,13,117,10,31,7,98,3,57,255,186,250,235,245, +208,240,138,235,53,230,242,224,19,220,214,215,76,212,128,209,111,207,25,206,148,205,204,205,116,206,105,207,167,208,32,210, +196,211,115,213,248,214,56,216,59,217,30,218,14,219,18,220,6,221,254,221,23,223,38,224,244,224,126,225,191,225,195,225, +182,225,180,225,211,225,83,226,98,227,237,228,215,230,27,233,170,235,92,238,7,241,141,243,227,245,9,248,7,250,215,251, +95,253,135,254,50,255,76,255,231,254,32,254,2,253,141,251,206,249,220,247,199,245,144,243,50,241,187,238,64,236,199,233, +100,231,72,229,145,227,52,226,3,225,229,223,250,222,101,222,16,222,0,222,119,222,155,223,100,225,202,227,155,230,119,233, +71,236,59,239,63,242,12,245,183,247,125,250,81,253,18,0,227,2,218,5,212,8,195,11,172,14,145,17,133,20,127,23, +66,26,183,28,224,30,137,32,133,33,240,33,234,33,136,33,236,32,53,32,107,31,142,30,133,29,61,28,182,26,223,24, +186,22,120,20,51,18,230,15,181,13,202,11,45,10,242,8,56,8,250,7,41,8,180,8,125,9,87,10,0,11,54,11, +228,10,253,9,110,8,109,6,104,4,165,2,70,1,125,0,114,0,59,1,212,2,31,5,2,8,103,11,21,15,201,18, +97,22,200,25,219,28,111,31,118,33,23,35,151,36,19,38,124,39,203,40,10,42,49,43,30,44,172,44,196,44,80,44, +73,43,217,41,47,40,78,38,65,36,43,34,0,32,134,29,181,26,173,23,127,20,50,17,230,13,196,10,211,7,246,4, +8,2,248,254,222,251,210,248,212,245,232,242,59,240,3,238,76,236,20,235,93,234,45,234,151,234,147,235,223,236,53,238, +120,239,139,240,67,241,140,241,118,241,15,241,82,240,77,239,80,238,195,237,212,237,148,238,41,240,192,242,117,246,66,251, +243,0,74,7,39,14,114,21,18,29,213,36,93,44,101,51,241,57,9,64,111,69,222,73,54,77,127,79,188,80,197,80, +97,79,124,76,25,72,69,66,42,59,250,50,254,41,165,32,84,23,76,14,208,5,252,253,183,246,240,239,136,233,47,227, +173,220,254,213,27,207,9,200,246,192,21,186,171,179,10,174,101,169,228,165,193,163,0,163,110,163,243,164,116,167,163,170, +43,174,225,177,162,181,83,185,241,188,159,192,142,196,239,200,219,205,84,211,86,217,240,223,53,231,18,239,85,247,197,255, +62,8,159,16,168,24,7,32,143,38,40,44,177,48,17,52,68,54,66,55,28,55,245,53,210,51,161,48,120,44,121,39, +188,33,78,27,38,20,73,12,235,3,59,251,79,242,84,233,154,224,84,216,161,208,158,201,107,195,21,190,156,185,4,182, +72,179,69,177,203,175,181,174,231,173,47,173,87,172,87,171,106,170,213,169,192,169,96,170,248,171,158,174,66,178,218,182, +75,188,84,194,184,200,85,207,11,214,165,220,241,226,241,232,191,238,73,244,117,249,92,254,41,3,25,8,111,13,46,19, +34,25,65,31,115,37,83,43,132,48,220,52,52,56,130,58,252,59,235,60,129,61,216,61,235,61,171,61,4,61,186,59, +160,57,192,54,48,51,232,46,246,41,140,36,225,30,4,25,250,18,246,12,82,7,99,2,103,254,134,251,212,249,84,249, +240,249,126,251,211,253,189,0,6,4,172,7,211,11,103,16,66,21,87,26,127,31,111,36,253,40,15,45,151,48,166,51, +84,54,193,56,22,59,91,61,110,63,47,65,113,66,249,66,208,66,39,66,15,65,120,63,107,61,16,59,117,56,120,53, +255,49,50,46,86,42,146,38,248,34,151,31,127,28,196,25,90,23,0,21,127,18,216,15,58,13,193,10,115,8,89,6, +140,4,255,2,126,1,235,255,69,254,145,252,222,250,91,249,54,248,111,247,211,246,63,246,195,245,106,245,30,245,210,244, +167,244,219,244,144,245,196,246,109,248,138,250,246,252,105,255,175,1,181,3,152,5,158,7,235,9,111,12,15,15,176,17, +48,20,117,22,72,24,114,25,244,25,198,25,191,24,248,22,195,20,70,18,142,15,171,12,147,9,66,6,189,2,228,254, +155,250,2,246,48,241,29,236,207,230,98,225,248,219,178,214,164,209,14,205,75,201,122,198,120,196,26,195,63,194,214,193, +209,193,239,193,254,193,26,194,119,194,38,195,43,196,132,197,64,199,127,201,65,204,99,207,215,210,163,214,197,218,52,223, +203,227,80,232,164,236,189,240,140,244,6,248,35,251,235,253,142,0,51,3,203,5,53,8,100,10,91,12,36,14,168,15, +171,16,0,17,158,16,128,15,154,13,231,10,127,7,149,3,74,255,162,250,160,245,92,240,241,234,138,229,93,224,146,219, +61,215,106,211,40,208,102,205,252,202,218,200,0,199,107,197,39,196,45,195,95,194,214,193,199,193,9,194,94,194,232,194, +204,195,254,196,153,198,185,200,49,203,222,205,187,208,173,211,144,214,97,217,63,220,87,223,204,226,181,230,52,235,60,240, +140,245,7,251,164,0,53,6,171,11,25,17,100,22,93,27,234,31,226,35,38,39,199,41,239,43,207,45,142,47,47,49, +186,50,62,52,140,53,93,54,156,54,88,54,173,53,204,52,205,51,190,50,198,49,4,49,105,48,211,47,38,47,91,46, +127,45,139,44,108,43,32,42,180,40,67,39,227,37,121,36,214,34,16,33,97,31,212,29,93,28,19,27,41,26,217,25, +58,26,62,27,209,28,241,30,158,33,186,36,11,40,81,43,80,46,212,48,213,50,105,52,131,53,6,54,230,53,25,53, +151,51,124,49,244,46,41,44,44,41,254,37,184,34,135,31,88,28,244,24,85,21,156,17,240,13,108,10,14,7,230,3, +39,1,223,254,241,252,116,251,154,250,111,250,237,250,249,251,98,253,228,254,30,0,191,0,172,0,212,255,71,254,103,252, +155,250,22,249,17,248,188,247,8,248,225,248,70,250,33,252,107,254,19,1,209,3,102,6,183,8,148,10,197,11,40,12, +164,11,71,10,96,8,71,6,67,4,142,2,62,1,64,0,115,255,192,254,40,254,159,253,12,253,114,252,235,251,92,251, +135,250,63,249,88,247,206,244,225,241,219,238,235,235,77,233,50,231,148,229,71,228,22,227,197,225,29,224,13,222,152,219, +201,216,205,213,228,210,38,208,161,205,142,203,45,202,147,201,206,201,226,202,207,204,175,207,124,211,208,215,83,220,225,224, +62,229,54,233,214,236,29,240,6,243,209,245,220,248,63,252,228,255,194,3,211,7,244,11,236,15,155,19,234,22,142,25, +61,27,221,27,67,27,55,25,208,21,98,17,43,12,90,6,45,0,254,249,24,244,150,238,124,233,197,228,62,224,188,219, +77,215,244,210,170,206,152,202,217,198,109,195,103,192,198,189,106,187,110,185,241,183,203,182,0,182,223,181,124,182,181,183, +128,185,183,187,7,190,83,192,195,194,101,197,49,200,60,203,157,206,71,210,50,214,93,218,167,222,245,226,79,231,158,235, +200,239,245,243,57,248,59,252,175,255,175,2,102,5,210,7,241,9,224,11,186,13,144,15,121,17,125,19,139,21,172,23, +251,25,77,28,86,30,18,32,148,33,191,34,141,35,21,36,112,36,211,36,123,37,93,38,79,39,66,40,61,41,73,42, +94,43,93,44,66,45,22,46,180,46,224,46,135,46,184,45,145,44,39,43,133,41,222,39,123,38,123,37,216,36,128,36, +89,36,103,36,199,36,121,37,111,38,167,39,15,41,173,42,151,44,162,46,143,48,94,50,32,52,213,53,123,55,250,56, +61,58,85,59,8,60,222,59,196,58,2,57,175,54,212,51,162,48,49,45,110,41,108,37,74,33,244,28,93,24,182,19, +43,15,183,10,107,6,119,2,238,254,204,251,250,248,60,246,114,243,199,240,133,238,207,236,164,235,25,235,122,235,4,237, +143,239,239,242,50,247,70,252,242,1,12,8,84,14,102,20,19,26,67,31,161,35,206,38,173,40,63,41,137,40,175,38, +252,35,201,32,100,29,11,26,226,22,246,19,95,17,56,15,103,13,212,11,150,10,187,9,69,9,90,9,3,10,13,11, +86,12,201,13,74,15,209,16,48,18,3,19,42,19,174,18,85,17,225,14,87,11,207,6,114,1,131,251,36,245,112,238, +185,231,77,225,76,219,200,213,205,208,103,204,179,200,210,197,214,195,170,194,13,194,192,193,162,193,131,193,25,193,75,192, +78,191,111,190,213,189,138,189,155,189,25,190,2,191,59,192,141,193,199,194,249,195,92,197,0,199,205,200,166,202,114,204, +41,206,185,207,11,209,40,210,65,211,127,212,6,214,244,215,101,218,119,221,44,225,68,229,117,233,153,237,114,241,182,244, +87,247,121,249,38,251,77,252,8,253,159,253,35,254,106,254,134,254,184,254,240,254,224,254,86,254,58,253,144,251,107,249, +189,246,136,243,14,240,147,236,61,233,40,230,103,227,21,225,60,223,160,221,7,220,132,218,38,217,231,215,2,215,175,214, +194,214,3,215,101,215,218,215,86,216,212,216,108,217,119,218,74,220,222,222,12,226,206,229,13,234,133,238,237,242,27,247, +20,251,248,254,213,2,150,6,38,10,140,13,203,16,185,19,32,22,249,23,99,25,157,26,226,27,62,29,166,30,45,32, +232,33,199,35,167,37,101,39,238,40,104,42,239,43,95,45,158,46,190,47,201,48,181,49,136,50,102,51,135,52,19,54, +250,55,238,57,160,59,223,60,143,61,157,61,4,61,201,59,252,57,1,56,108,54,111,53,208,52,112,52,85,52,117,52, +183,52,223,52,187,52,138,52,145,52,152,52,104,52,7,52,91,51,79,50,250,48,76,47,50,45,13,43,74,41,231,39, +188,38,201,37,25,37,152,36,24,36,92,35,40,34,104,32,69,30,212,27,218,24,42,21,222,16,16,12,191,6,1,1, +14,251,62,245,7,240,167,235,30,232,133,229,18,228,206,227,132,228,232,229,208,231,78,234,110,237,0,241,167,244,16,248, +15,251,191,253,90,0,242,2,100,5,166,7,233,9,68,12,112,14,251,15,150,16,24,16,111,14,164,11,233,7,173,3, +136,255,247,251,62,249,108,247,118,246,97,246,35,247,125,248,52,250,72,252,184,254,93,1,249,3,55,6,207,7,177,8, +198,8,228,7,9,6,112,3,121,0,112,253,74,250,215,246,35,243,103,239,197,235,60,232,167,228,0,225,137,221,131,218, +221,215,95,213,220,210,101,208,68,206,129,204,211,202,59,201,34,200,179,199,183,199,237,199,41,200,85,200,120,200,168,200, +234,200,50,201,143,201,61,202,94,203,192,204,51,206,198,207,161,209,220,211,131,214,167,217,84,221,105,225,149,229,139,233, +21,237,249,239,20,242,126,243,101,244,7,245,184,245,185,246,38,248,28,250,169,252,146,255,101,2,188,4,86,6,23,7, +9,7,50,6,140,4,74,2,189,255,243,252,238,249,5,247,153,244,210,242,191,241,72,241,42,241,88,241,211,241,36,242, +211,241,237,240,164,239,250,237,248,235,223,233,234,231,25,230,90,228,190,226,89,225,44,224,77,223,245,222,42,223,189,223, +131,224,114,225,137,226,160,227,140,228,117,229,168,230,78,232,149,234,160,237,49,241,242,244,208,248,172,252,81,0,187,3, +242,6,1,10,30,13,83,16,96,19,41,22,190,24,17,27,31,29,12,31,248,32,8,35,123,37,140,40,58,44,67,48, +84,52,35,56,92,59,179,61,10,63,107,63,231,62,126,61,49,59,27,56,135,52,200,48,8,45,89,41,225,37,217,34, +83,32,58,30,131,28,9,27,123,25,202,23,57,22,222,20,200,19,77,19,155,19,130,20,240,21,227,23,37,26,122,28, +185,30,158,32,231,33,119,34,56,34,18,33,243,30,225,27,18,24,227,19,189,15,253,11,239,8,236,6,51,6,161,6, +226,7,215,9,95,12,52,15,49,18,71,21,67,24,22,27,223,29,178,32,162,35,184,38,197,41,158,44,59,47,131,49, +80,51,164,52,163,53,92,54,149,54,239,53,97,52,6,50,182,46,73,42,238,36,238,30,147,24,53,18,3,12,22,6, +187,0,58,252,149,248,182,245,142,243,33,242,123,241,113,241,142,241,106,241,228,240,21,240,25,239,249,237,212,236,253,235, +206,235,100,236,136,237,225,238,82,240,216,241,45,243,15,244,140,244,182,244,107,244,134,243,239,241,160,239,186,236,122,233, +49,230,65,227,234,224,73,223,113,222,78,222,148,222,4,223,121,223,204,223,215,223,145,223,3,223,68,222,112,221,183,220, +51,220,203,219,115,219,85,219,128,219,195,219,236,219,220,219,128,219,199,218,146,217,214,215,190,213,108,211,5,209,206,206, +229,204,63,203,11,202,112,201,86,201,202,201,244,202,196,204,58,207,89,210,223,213,150,217,115,221,43,225,66,228,136,230, +242,231,122,232,57,232,81,231,236,229,77,228,169,226,23,225,179,223,118,222,40,221,175,219,28,218,89,216,54,214,196,211, +71,209,232,206,167,204,160,202,31,201,123,200,249,200,177,202,146,205,145,209,155,214,114,220,211,226,117,233,228,239,195,245, +4,251,162,255,119,3,126,6,223,8,209,10,125,12,229,13,16,15,64,16,175,17,64,19,186,20,17,22,70,23,64,24, +244,24,129,25,10,26,161,26,103,27,126,28,216,29,79,31,215,32,122,34,34,36,164,37,228,38,240,39,244,40,16,42, +69,43,119,44,122,45,60,46,194,46,255,46,212,46,76,46,151,45,214,44,28,44,110,43,212,42,99,42,39,42,32,42, +84,42,197,42,88,43,0,44,180,44,75,45,175,45,5,46,91,46,129,46,66,46,137,45,115,44,67,43,43,42,31,41, +10,40,12,39,70,38,157,37,219,36,232,35,206,34,139,33,24,32,145,30,41,29,4,28,49,27,191,26,167,26,172,26, +117,26,228,25,255,24,152,23,135,21,2,19,85,16,163,13,31,11,254,8,62,7,239,5,65,5,36,5,93,5,218,5, +122,6,250,6,68,7,104,7,103,7,89,7,110,7,184,7,50,8,218,8,141,9,24,10,86,10,54,10,210,9,94,9, +244,8,157,8,114,8,109,8,106,8,88,8,56,8,250,7,162,7,93,7,81,7,147,7,41,8,242,8,187,9,120,10, +53,11,230,11,138,12,56,13,236,13,142,14,14,15,66,15,207,14,124,13,88,11,112,8,175,4,33,0,5,251,152,245, +6,240,153,234,176,229,109,225,186,221,166,218,92,216,199,214,150,213,118,212,30,211,86,209,247,206,239,203,96,200,147,196, +201,192,84,189,159,186,215,184,222,183,154,183,250,183,231,184,98,186,109,188,229,190,174,193,218,196,137,200,178,204,11,209, +77,213,132,217,219,221,60,226,96,230,66,234,45,238,93,242,163,246,167,250,67,254,114,1,30,4,71,6,239,7,248,8, +63,9,199,8,172,7,17,6,241,3,36,1,166,253,195,249,216,245,9,242,63,238,123,234,246,230,195,227,163,224,104,221, +29,218,246,214,63,212,18,210,54,208,171,206,201,205,164,205,242,205,135,206,100,207,130,208,217,209,91,211,251,212,197,214, +187,216,187,218,141,220,33,222,174,223,143,225,247,227,247,230,159,234,234,238,197,243,44,249,229,254,124,4,172,9,127,14, +4,19,34,23,181,26,193,29,118,32,240,34,31,37,246,38,127,40,243,41,151,43,84,45,206,46,237,47,220,48,151,49, +242,49,212,49,75,49,130,48,174,47,228,46,247,45,164,44,213,42,158,40,250,37,202,34,0,31,172,26,11,22,127,17, +49,13,7,9,8,5,79,1,227,253,230,250,140,248,251,246,120,246,84,247,138,249,235,252,86,1,175,6,197,12,79,19, +247,25,163,32,85,39,215,45,229,51,87,57,250,61,168,65,113,68,86,70,54,71,58,71,203,70,46,70,98,69,47,68, +100,66,26,64,123,61,110,58,184,54,63,50,15,45,53,39,196,32,213,25,134,18,16,11,216,3,40,253,4,247,113,241, +182,236,12,233,110,230,177,228,178,227,115,227,7,228,57,229,173,230,47,232,168,233,5,235,61,236,41,237,137,237,104,237, +16,237,175,236,55,236,128,235,147,234,209,233,130,233,146,233,6,234,43,235,50,237,41,240,38,244,39,249,19,255,223,5, +127,13,185,21,50,30,150,38,165,46,28,54,152,60,204,65,165,69,52,72,137,73,161,73,102,72,213,69,8,66,24,61, +43,55,131,48,95,41,248,33,154,26,108,19,104,12,124,5,158,254,185,247,160,240,32,233,53,225,14,217,218,208,202,200, +33,193,8,186,156,179,36,174,220,169,191,166,162,164,111,163,23,163,137,163,162,164,54,166,43,168,140,170,109,173,208,176, +168,180,12,185,38,190,212,195,222,201,71,208,15,215,29,222,129,229,64,237,9,245,159,252,6,4,44,11,214,17,212,23, +10,29,138,33,142,37,36,41,48,44,174,46,178,48,71,50,66,51,66,51,252,49,104,47,125,43,29,38,92,31,122,23, +172,14,29,5,8,251,193,240,161,230,241,220,228,211,127,203,170,195,113,188,0,182,99,176,136,171,103,167,9,164,130,161, +213,159,197,158,10,158,170,157,217,157,185,158,100,160,232,162,65,166,143,170,2,176,142,182,227,189,183,197,248,205,134,214, +24,223,111,231,112,239,250,246,1,254,159,4,210,10,150,16,46,22,198,27,59,33,105,38,44,43,49,47,70,50,124,52, +211,53,81,54,53,54,181,53,13,53,136,52,47,52,224,51,170,51,165,51,157,51,75,51,145,50,88,49,111,47,163,44, +208,40,243,35,50,30,194,23,205,16,145,9,121,2,236,251,41,246,98,241,183,237,39,235,198,233,179,233,206,234,205,236, +134,239,211,242,146,246,204,250,154,255,4,5,42,11,58,18,65,26,5,35,26,44,35,53,233,61,45,70,154,77,245,83, +29,89,22,93,250,95,182,97,36,98,87,97,127,95,174,92,6,89,191,84,254,79,248,74,246,69,4,65,249,59,201,54, +151,49,119,44,71,39,232,33,136,28,113,23,179,18,78,14,91,10,242,6,47,4,41,2,200,0,209,255,34,255,168,254, +71,254,198,253,233,252,155,251,229,249,198,247,71,245,133,242,157,239,183,236,31,234,24,232,196,230,64,230,186,230,91,232, +35,235,210,238,44,243,53,248,213,253,174,3,123,9,68,15,21,21,202,26,78,32,178,37,242,42,224,47,94,52,54,56, +2,59,128,60,153,60,19,59,214,55,71,51,218,45,195,39,72,33,168,26,244,19,69,13,180,6,56,0,221,249,184,243, +180,237,217,231,90,226,45,221,17,216,234,210,178,205,93,200,252,194,175,189,149,184,229,179,223,175,152,172,3,170,24,168, +242,166,167,166,44,167,96,168,53,170,163,172,161,175,36,179,21,183,94,187,1,192,30,197,207,202,1,209,113,215,233,221, +90,228,167,234,153,240,7,246,255,250,177,255,39,4,58,8,212,11,248,14,131,17,71,19,40,20,3,20,222,18,252,16, +127,14,88,11,143,7,68,3,145,254,145,249,50,244,48,238,130,231,100,224,243,216,61,209,121,201,237,193,223,186,158,180, +103,175,77,171,55,168,246,165,117,164,172,163,133,163,234,163,226,164,125,166,188,168,124,171,143,174,235,177,133,181,60,185, +24,189,72,193,212,197,188,202,7,208,148,213,52,219,226,224,143,230,12,236,77,241,115,246,149,251,187,0,233,5,35,11, +98,16,173,21,31,27,204,32,166,38,165,44,208,50,21,57,76,63,46,69,89,74,169,78,73,82,52,85,36,87,12,88, +34,88,145,87,83,86,50,84,14,81,14,77,107,72,87,67,2,62,123,56,207,50,62,45,242,39,212,34,213,29,4,25, +100,20,30,16,119,12,135,9,77,7,244,5,183,5,157,6,134,8,97,11,35,15,165,19,155,24,178,29,167,34,89,39, +187,43,152,47,170,50,239,52,153,54,198,55,132,56,219,56,185,56,38,56,97,55,129,54,89,53,221,51,59,50,133,48, +199,46,45,45,215,43,199,42,15,42,181,41,151,41,172,41,16,42,194,42,162,43,184,44,14,46,118,47,184,48,164,49, +247,49,136,49,89,48,75,46,60,43,83,39,198,34,169,29,47,24,145,18,224,12,57,7,198,1,149,252,198,247,143,243, +12,240,86,237,129,235,114,234,9,234,51,234,185,234,89,235,17,236,6,237,71,238,212,239,185,241,1,244,131,246,3,249, +124,251,228,253,251,255,170,1,16,3,34,4,203,4,20,5,243,4,99,4,139,3,128,2,57,1,182,255,4,254,32,252, +226,249,21,247,167,243,145,239,198,234,111,229,213,223,43,218,177,212,178,207,63,203,72,199,199,195,171,192,242,189,197,187, +40,186,241,184,6,184,82,183,166,182,228,181,247,180,189,179,55,178,152,176,21,175,211,173,20,173,21,173,198,173,5,175, +221,176,86,179,88,182,237,185,47,190,34,195,200,200,40,207,26,214,104,221,249,228,156,236,251,243,223,250,60,1,253,6, +2,12,75,16,218,19,163,22,157,24,192,25,255,25,97,25,252,23,193,21,143,18,91,14,47,9,54,3,187,252,244,245, +253,238,22,232,166,225,208,219,101,214,96,209,235,204,252,200,137,197,221,194,41,193,90,192,135,192,223,193,77,196,170,199, +236,203,255,208,156,214,113,220,91,226,101,232,121,238,101,244,27,250,142,255,162,4,71,9,115,13,28,17,83,20,36,23, +174,25,63,28,229,30,119,33,31,36,38,39,117,42,241,45,164,49,126,53,107,57,126,61,180,65,230,69,234,73,156,77, +211,80,83,83,234,84,134,85,2,85,60,83,66,80,42,76,12,71,37,65,165,58,159,51,91,44,32,37,0,30,23,23, +145,16,119,10,217,4,223,255,133,251,187,247,169,244,135,242,93,241,29,241,187,241,22,243,2,245,116,247,99,250,156,253, +1,1,169,4,163,8,229,12,111,17,69,22,101,27,203,32,71,38,130,43,45,48,20,52,22,55,2,57,165,57,241,56, +5,55,255,51,18,48,127,43,136,38,125,33,172,28,72,24,114,20,57,17,148,14,130,12,29,11,117,10,107,10,207,10, +122,11,61,12,207,12,0,13,198,12,10,12,188,10,243,8,197,6,46,4,61,1,241,253,44,250,247,245,131,241,240,236, +88,232,245,227,21,224,232,220,134,218,48,217,20,217,36,218,113,220,54,224,97,229,177,235,252,242,15,251,152,3,56,12, +120,20,2,28,179,34,67,40,117,44,90,47,254,48,77,49,81,48,39,46,18,43,109,39,81,35,190,30,246,25,26,21, +248,15,110,10,100,4,198,253,199,246,175,239,147,232,122,225,138,218,0,212,30,206,229,200,50,196,17,192,158,188,206,185, +136,183,192,181,90,180,59,179,110,178,243,177,152,177,78,177,94,177,241,177,245,178,124,180,177,182,141,185,1,189,10,193, +141,197,124,202,210,207,120,213,97,219,125,225,175,231,245,237,97,244,233,250,156,1,140,8,142,15,119,22,73,29,221,35, +221,41,15,47,69,51,59,54,215,55,54,56,98,55,54,53,155,49,161,44,97,38,24,31,5,23,72,14,35,5,13,252, +74,243,251,234,84,227,90,220,229,213,244,207,137,202,148,197,26,193,41,189,199,185,6,183,250,180,178,179,90,179,25,180, +245,181,225,184,210,188,211,193,221,199,166,206,210,213,46,221,153,228,231,235,245,242,190,249,92,0,209,6,10,13,8,19, +187,24,244,29,184,34,21,39,230,42,36,46,235,48,61,51,37,53,177,54,176,55,29,56,40,56,215,55,51,55,117,54, +173,53,223,52,30,52,65,51,2,50,74,48,8,46,46,43,195,39,204,35,87,31,119,26,33,21,80,15,22,9,120,2, +164,251,254,244,202,238,41,233,104,228,220,224,151,222,128,221,137,221,172,222,207,224,230,227,246,231,236,236,160,242,215,248, +68,255,193,5,70,12,142,18,85,24,174,29,175,34,74,39,137,43,122,47,3,51,12,54,133,56,95,58,134,59,218,59, +96,59,74,58,174,56,169,54,130,52,79,50,3,48,189,45,134,43,44,41,167,38,246,35,235,32,121,29,179,25,139,21, +238,16,245,11,184,6,57,1,148,251,15,246,213,240,238,235,118,231,164,227,153,224,63,222,97,220,243,218,13,218,142,217, +53,217,33,217,131,217,60,218,69,219,198,220,190,222,57,225,111,228,116,232,49,237,164,242,210,248,188,255,62,7,31,15, +61,23,112,31,129,39,72,47,137,54,245,60,117,66,10,71,141,74,245,76,90,78,199,78,90,78,59,77,108,75,238,72, +188,69,175,65,165,60,147,54,120,47,112,39,158,30,53,21,136,11,215,1,79,248,57,239,217,230,61,223,103,216,85,210, +3,205,116,200,120,196,203,192,109,189,102,186,145,183,229,180,134,178,137,176,6,175,35,174,241,173,120,174,201,175,245,177, +228,180,107,184,125,188,19,193,10,198,83,203,226,208,138,214,71,220,40,226,17,232,11,238,98,244,47,251,75,2,144,9, +198,16,189,23,80,30,52,36,44,41,59,45,86,48,83,50,33,51,195,50,66,49,161,46,224,42,27,38,108,32,212,25, +127,18,184,10,149,2,46,250,186,241,75,233,228,224,170,216,207,208,128,201,229,194,16,189,255,183,175,179,43,176,117,173, +112,171,10,170,106,169,169,169,186,170,147,172,27,175,10,178,22,181,32,184,56,187,147,190,82,194,143,198,131,203,91,209, +0,216,40,223,139,230,23,238,219,245,183,253,137,5,90,13,26,21,173,28,4,36,220,42,246,48,99,54,61,59,149,63, +150,67,80,71,185,74,196,77,32,80,112,81,184,81,243,80,243,78,223,75,251,71,68,67,209,61,228,55,146,49,194,42, +102,35,150,27,139,19,124,11,131,3,185,251,58,244,27,237,114,230,91,224,224,218,254,213,255,209,88,207,17,206,244,205, +18,207,133,209,16,213,128,217,163,222,35,228,228,233,251,239,73,246,168,252,244,2,254,8,185,14,59,20,124,25,96,30, +192,34,129,38,220,41,1,45,167,47,144,49,225,50,194,51,73,52,132,52,101,52,235,51,70,51,144,50,181,49,173,48, +146,47,121,46,94,45,67,44,67,43,111,42,219,41,140,41,57,41,145,40,144,39,62,38,143,36,120,34,217,31,161,28, +15,25,102,21,164,17,176,13,121,9,17,5,186,0,149,252,150,248,228,244,203,241,118,239,239,237,54,237,76,237,45,238, +219,239,94,242,179,245,188,249,106,254,174,3,73,9,246,14,121,20,148,25,47,30,78,34,224,37,223,40,69,43,6,45, +67,46,5,47,249,46,5,46,111,44,63,42,81,39,186,35,144,31,208,26,139,21,188,15,84,9,108,2,55,251,230,243, +163,236,147,229,243,222,226,216,60,211,234,205,3,201,134,196,111,192,218,188,228,185,158,183,49,182,186,181,25,182,22,183, +146,184,117,186,143,188,208,190,67,193,205,195,93,198,16,201,203,203,96,206,243,208,157,211,79,214,47,217,119,220,36,224, +24,228,74,232,179,236,57,241,149,245,165,249,137,253,53,1,107,4,39,7,129,9,93,11,145,12,228,12,57,12,182,10, +120,8,113,5,175,1,79,253,108,248,32,243,117,237,111,231,41,225,198,218,115,212,108,206,187,200,62,195,12,190,89,185, +56,181,188,177,18,175,92,173,157,172,226,172,75,174,199,176,30,180,46,184,244,188,107,194,142,200,50,207,48,214,166,221, +162,229,229,237,60,246,144,254,177,6,124,14,201,21,79,28,13,34,32,39,85,43,129,46,213,48,128,50,147,51,46,52, +153,52,24,53,175,53,82,54,49,55,107,56,221,57,145,59,152,61,170,63,103,65,142,66,224,66,75,66,242,64,211,62, +222,59,53,56,7,52,92,47,58,42,191,36,6,31,20,25,254,18,231,12,250,6,142,1,3,253,78,249,38,246,131,243, +122,241,4,240,18,239,138,238,102,238,216,238,248,239,165,241,189,243,43,246,213,248,171,251,184,254,25,2,215,5,221,9, +62,14,5,19,226,23,118,28,160,32,69,36,80,39,203,41,191,43,63,45,103,46,38,47,83,47,218,46,141,45,75,43, +59,40,126,36,25,32,44,27,9,22,12,17,101,12,18,8,25,4,167,0,218,253,183,251,48,250,60,249,238,248,61,249, +233,249,191,250,161,251,104,252,13,253,163,253,37,254,162,254,61,255,231,255,131,0,22,1,163,1,39,2,190,2,147,3, +174,4,2,6,177,7,240,9,186,12,231,15,102,19,2,23,129,26,231,29,48,33,57,36,2,39,118,41,69,43,55,44, +49,44,58,43,143,41,97,39,181,36,159,33,59,30,160,26,211,22,164,18,239,13,203,8,66,3,91,253,95,247,121,241, +177,235,75,230,103,225,189,220,49,216,227,211,219,207,54,204,49,201,205,198,238,196,168,195,14,195,15,195,150,195,149,196, +249,197,198,199,12,202,210,204,13,208,166,211,116,215,88,219,80,223,74,227,58,231,87,235,213,239,162,244,175,249,237,254, +27,4,0,9,123,13,104,17,219,20,11,24,237,26,116,29,198,31,224,33,146,35,186,36,78,37,111,37,69,37,192,36, +192,35,59,34,12,32,253,28,3,25,30,20,96,14,251,7,24,1,219,249,144,242,130,235,196,228,71,222,242,215,181,209, +149,203,172,197,8,192,173,186,189,181,105,177,193,173,212,170,201,168,158,167,52,167,164,167,8,169,66,171,48,174,186,177, +178,181,226,185,39,190,110,194,176,198,246,202,75,207,180,211,33,216,134,220,221,224,23,229,29,233,220,236,94,240,211,243, +105,247,21,251,192,254,98,2,234,5,73,9,120,12,93,15,236,17,51,20,56,22,6,24,165,25,238,26,190,27,37,28, +15,28,93,27,75,26,51,25,34,24,2,23,212,21,163,20,98,19,6,18,179,16,132,15,103,14,104,13,201,12,156,12, +186,12,37,13,254,13,35,15,68,16,83,17,139,18,12,20,207,21,232,23,108,26,86,29,152,32,47,36,54,40,213,44, +2,50,148,55,139,61,192,67,200,73,78,79,11,84,198,87,142,90,124,92,118,93,139,93,235,92,159,91,174,89,38,87, +246,83,19,80,136,75,87,70,154,64,101,58,169,51,123,44,12,37,109,29,192,21,46,14,196,6,151,255,195,248,48,242, +224,235,18,230,211,224,251,219,144,215,199,211,191,208,112,206,202,204,218,203,193,203,166,204,150,206,127,209,78,213,250,217, +95,223,78,229,167,235,69,242,244,248,168,255,93,6,246,12,89,19,131,25,79,31,111,36,184,40,52,44,209,46,139,48, +178,49,107,50,140,50,41,50,100,49,12,48,31,46,235,43,116,41,163,38,167,35,139,32,35,29,82,25,0,21,35,16, +187,10,178,4,25,254,58,247,68,240,83,233,149,226,15,220,156,213,59,207,15,201,73,195,11,190,119,185,209,181,85,179, +0,178,189,177,113,178,249,179,92,182,162,185,151,189,7,194,241,198,104,204,79,210,73,216,23,222,205,227,93,233,167,238, +228,243,74,249,190,254,44,4,126,9,128,14,39,19,90,23,251,26,60,30,38,33,119,35,60,37,161,38,123,39,182,39, +96,39,91,38,155,36,42,34,13,31,120,27,158,23,124,19,41,15,165,10,165,5,28,0,60,250,254,243,85,237,102,230, +94,223,84,216,68,209,31,202,238,194,188,187,148,180,186,173,135,167,53,162,236,157,219,154,55,153,244,152,180,153,68,155, +156,157,125,160,183,163,122,167,219,171,209,176,108,182,147,188,29,195,247,201,231,208,203,215,194,222,188,229,132,236,17,243, +62,249,221,254,235,3,52,8,113,11,182,13,56,15,37,16,199,16,81,17,220,17,154,18,147,19,159,20,193,21,18,23, +148,24,35,26,150,27,237,28,17,30,182,30,184,30,37,30,2,29,122,27,221,25,77,24,234,22,234,21,39,21,97,20, +161,19,233,18,15,18,34,17,106,16,41,16,112,16,58,17,126,18,33,20,244,21,232,23,233,25,219,27,234,29,112,32, +130,35,9,39,247,42,30,47,42,51,226,54,66,58,57,61,177,63,209,65,211,67,178,69,92,71,202,72,220,73,116,74, +136,74,237,73,123,72,35,70,214,66,171,62,204,57,42,52,189,45,196,38,111,31,245,23,195,16,33,10,39,4,251,254, +171,250,9,247,234,243,69,241,38,239,140,237,84,236,105,235,204,234,128,234,117,234,118,234,87,234,52,234,42,234,59,234, +164,234,148,235,233,236,137,238,101,240,98,242,131,244,176,246,187,248,3,251,2,254,144,1,141,5,49,10,113,15,24,21, +252,26,178,32,207,37,79,42,28,46,237,48,151,50,11,51,69,50,93,48,128,45,208,41,117,37,176,32,206,27,1,23, +97,18,16,14,36,10,145,6,46,3,211,255,147,252,157,249,198,246,185,243,104,240,252,236,153,233,72,230,245,226,156,223, +97,220,103,217,195,214,132,212,162,210,35,209,57,208,254,207,73,208,204,208,103,209,93,210,244,211,25,214,175,216,188,219, +70,223,74,227,141,231,149,235,22,239,252,241,63,244,240,245,41,247,239,247,102,248,184,248,235,248,14,249,49,249,106,249, +251,249,17,251,146,252,123,254,203,0,55,3,112,5,51,7,62,8,120,8,238,7,164,6,166,4,1,2,225,254,139,251, +251,247,7,244,202,239,109,235,11,231,242,226,55,223,165,219,66,216,25,213,235,209,153,206,36,203,152,199,64,196,118,193, +93,191,4,190,85,189,50,189,174,189,171,190,223,191,85,193,47,195,112,197,41,200,74,203,159,206,25,210,169,213,29,217, +78,220,83,223,111,226,200,229,45,233,118,236,167,239,149,242,10,245,238,246,33,248,173,248,223,248,236,248,255,248,76,249, +218,249,184,250,239,251,71,253,175,254,84,0,50,2,91,4,10,7,5,10,255,12,10,16,3,19,165,21,254,23,17,26, +205,27,111,29,47,31,11,33,250,34,240,36,224,38,204,40,164,42,99,44,38,46,246,47,215,49,188,51,110,53,216,54, +11,56,237,56,122,57,226,57,52,58,116,58,189,58,253,58,23,59,3,59,176,58,21,58,78,57,106,56,153,55,46,55, +73,55,227,55,225,56,234,57,160,58,227,58,153,58,171,57,48,56,65,54,232,51,66,49,79,46,228,42,237,38,121,34, +144,29,86,24,17,19,237,13,16,9,190,4,28,1,254,253,62,251,234,248,5,247,122,245,83,244,181,243,171,243,29,244, +246,244,44,246,144,247,211,248,200,249,130,250,45,251,241,251,205,252,175,253,148,254,112,255,26,0,131,0,201,0,6,1, +76,1,176,1,77,2,43,3,25,4,210,4,76,5,129,5,70,5,171,4,254,3,101,3,225,2,122,2,43,2,214,1, +97,1,201,0,36,0,137,255,21,255,220,254,199,254,177,254,144,254,57,254,74,253,155,251,69,249,98,246,19,243,137,239, +237,235,107,232,25,229,228,225,211,222,15,220,150,217,96,215,151,213,74,212,81,211,144,210,247,209,92,209,178,208,8,208, +96,207,208,206,147,206,201,206,83,207,19,208,250,208,242,209,206,210,89,211,120,211,51,211,181,210,66,210,20,210,70,210, +228,210,254,211,149,213,154,215,1,218,189,220,204,223,64,227,39,231,127,235,49,240,13,245,239,249,196,254,116,3,244,7, +75,12,118,16,128,20,131,24,110,28,38,32,164,35,210,38,166,41,46,44,100,46,73,48,222,49,0,51,153,51,183,51, +72,51,66,50,209,48,4,47,218,44,163,42,170,40,208,38,230,36,239,34,232,32,177,30,61,28,149,25,184,22,151,19, +78,16,9,13,178,9,4,6,238,1,149,253,9,249,69,244,114,239,226,234,194,230,19,227,189,223,110,220,216,216,0,213, +250,208,196,204,144,200,149,196,239,192,222,189,134,187,192,185,144,184,12,184,8,184,115,184,120,185,18,187,47,189,211,191, +209,194,221,197,212,200,195,203,230,206,106,210,71,214,143,218,117,223,235,228,170,234,100,240,207,245,200,250,84,255,117,3, +61,7,189,10,235,13,209,16,128,19,209,21,170,23,55,25,163,26,13,28,162,29,104,31,78,33,78,35,65,37,232,38, +42,40,38,41,241,41,117,42,167,42,186,42,195,42,139,42,235,41,226,40,109,39,188,37,43,36,233,34,25,34,227,33, +29,34,133,34,254,34,82,35,91,35,74,35,76,35,95,35,153,35,31,36,248,36,251,37,236,38,190,39,135,40,35,41, +105,41,112,41,62,41,196,40,12,40,248,38,86,37,65,35,228,32,86,30,224,27,202,25,48,24,50,23,195,22,154,22, +144,22,138,22,74,22,160,21,118,20,192,18,160,16,51,14,110,11,118,8,139,5,174,2,211,255,35,253,215,250,23,249, +243,247,104,247,110,247,216,247,107,248,13,249,190,249,113,250,36,251,235,251,240,252,86,254,19,0,236,1,173,3,40,5, +58,6,237,6,109,7,199,7,252,7,66,8,195,8,69,9,133,9,138,9,82,9,179,8,188,7,177,6,200,5,28,5, +145,4,233,3,2,3,202,1,32,0,30,254,252,251,213,249,198,247,228,245,20,244,69,242,97,240,50,238,186,235,62,233, +231,230,226,228,116,227,168,226,83,226,70,226,80,226,65,226,20,226,228,225,231,225,95,226,136,227,123,229,37,232,81,235, +192,238,47,242,103,245,59,248,146,250,162,252,197,254,247,0,253,2,187,4,23,6,249,6,100,7,81,7,230,6,139,6, +86,6,30,6,227,5,112,5,125,4,39,3,119,1,65,255,199,252,119,250,78,248,72,246,145,244,33,243,220,241,197,240, +210,239,253,238,79,238,190,237,40,237,103,236,74,235,148,233,26,231,232,227,38,224,253,219,195,215,227,211,144,208,221,205, +224,203,120,202,94,201,100,200,107,199,110,198,138,197,220,196,109,196,35,196,210,195,104,195,218,194,4,194,210,192,78,191, +159,189,35,188,22,187,79,186,198,185,166,185,233,185,128,186,117,187,175,188,45,190,33,192,160,194,160,197,30,201,253,204, +31,209,111,213,183,217,207,221,203,225,199,229,227,233,55,238,167,242,37,247,210,251,183,0,206,5,24,11,119,16,223,21, +135,27,142,33,194,39,231,45,204,51,56,57,249,61,245,65,26,69,131,71,102,73,233,74,20,76,237,76,112,77,173,77, +202,77,197,77,145,77,73,77,28,77,33,77,93,77,160,77,162,77,70,77,142,76,130,75,40,74,128,72,168,70,231,68, +88,67,229,65,132,64,11,63,61,61,30,59,199,56,66,54,202,51,173,49,239,47,116,46,42,45,2,44,243,42,249,41, +54,41,212,40,222,40,85,41,39,42,255,42,146,43,195,43,97,43,91,42,240,40,76,39,144,37,244,35,137,34,76,33, +84,32,124,31,142,30,164,29,197,28,214,27,234,26,9,26,14,25,222,23,71,22,26,20,109,17,97,14,13,11,164,7, +90,4,89,1,192,254,112,252,69,250,73,248,115,246,210,244,160,243,216,242,90,242,61,242,95,242,114,242,106,242,44,242, +108,241,46,240,178,238,237,236,196,234,98,232,247,229,117,227,190,224,206,221,172,218,130,215,174,212,115,210,253,208,134,208, +19,209,113,210,163,212,185,215,125,219,176,223,43,228,209,232,127,237,251,241,8,246,137,249,62,252,212,253,75,254,192,253, +62,252,238,249,245,246,123,243,210,239,22,236,36,232,27,228,65,224,181,220,145,217,228,214,182,212,46,211,70,210,155,209, +217,208,231,207,206,206,173,205,142,204,128,203,185,202,86,202,74,202,114,202,132,202,105,202,101,202,138,202,181,202,11,203, +219,203,96,205,173,207,118,210,81,213,48,216,52,219,102,222,186,225,41,229,210,232,228,236,89,241,13,246,197,250,29,255, +1,3,161,6,237,9,203,12,84,15,106,17,204,18,120,19,87,19,58,18,55,16,149,13,146,10,99,7,46,4,254,0, +192,253,86,250,182,246,238,242,10,239,57,235,179,231,158,228,15,226,253,223,77,222,251,220,227,219,208,218,205,217,246,216, +73,216,225,215,199,215,206,215,221,215,204,215,88,215,157,214,241,213,110,213,70,213,217,213,73,215,140,217,162,220,114,224, +196,228,105,233,72,238,84,243,138,248,253,253,207,3,7,10,148,16,86,23,13,30,126,36,153,42,89,48,209,53,53,59, +119,64,114,69,46,74,143,78,73,82,66,85,106,87,188,88,125,89,234,89,239,89,129,89,172,88,96,87,150,85,91,83, +174,80,156,77,78,74,246,70,175,67,116,64,53,61,252,57,203,54,121,51,250,47,125,44,42,41,28,38,130,35,112,33, +201,31,130,30,180,29,84,29,58,29,79,29,164,29,96,30,124,31,179,32,221,33,1,35,245,35,103,36,45,36,85,35, +33,34,209,32,103,31,221,29,77,28,175,26,200,24,114,22,177,19,177,16,175,13,243,10,213,8,123,7,185,6,111,6, +112,6,76,6,190,5,199,4,94,3,145,1,134,255,52,253,165,250,11,248,81,245,73,242,240,238,92,235,207,231,146,228, +174,225,55,223,94,221,9,220,4,219,77,218,205,217,112,217,116,217,30,218,148,219,241,221,28,225,212,228,224,232,8,237, +5,241,156,244,190,247,135,250,1,253,34,255,227,0,31,2,147,2,53,2,56,1,225,255,153,254,179,253,56,253,36,253, +111,253,243,253,110,254,123,254,208,253,154,252,39,251,122,249,159,247,196,245,201,243,102,241,139,238,49,235,72,231,221,226, +38,222,92,217,165,212,4,208,124,203,24,199,211,194,157,190,124,186,152,182,27,179,34,176,213,173,79,172,147,171,166,171, +120,172,225,173,226,175,167,178,53,182,124,186,112,191,241,196,243,202,117,209,83,216,104,223,177,230,50,238,4,246,84,254, +25,7,32,16,53,25,29,34,161,42,116,50,38,57,129,62,164,66,173,69,151,71,94,72,15,72,199,70,147,68,114,65, +141,61,19,57,39,52,18,47,27,42,61,37,96,32,114,27,72,22,187,16,193,10,92,4,206,253,127,247,162,241,73,236, +123,231,30,227,31,223,114,219,236,215,105,212,242,208,159,205,146,202,226,199,132,197,97,195,110,193,182,191,77,190,33,189, +27,188,129,187,165,187,110,188,152,189,23,191,253,192,82,195,15,198,38,201,158,204,154,208,62,213,133,218,53,224,44,230, +122,236,9,243,168,249,92,0,50,7,43,14,88,21,145,28,108,35,193,41,136,47,140,52,183,56,31,60,192,62,169,64, +6,66,206,66,216,66,13,66,99,64,7,62,53,59,238,55,79,52,179,48,83,45,39,42,35,39,33,36,6,33,231,29, +215,26,237,23,91,21,79,19,246,17,151,17,60,18,150,19,100,21,143,23,244,25,103,28,203,30,31,33,120,35,212,37, +27,40,67,42,54,44,223,45,80,47,160,48,209,49,225,50,223,51,235,52,19,54,31,55,213,55,70,56,123,56,79,56, +181,55,173,54,52,53,105,51,89,49,222,46,246,43,195,40,95,37,249,33,190,30,178,27,220,24,55,22,169,19,28,17, +98,14,52,11,130,7,115,3,21,255,128,250,235,245,114,241,34,237,4,233,19,229,87,225,238,221,230,218,109,216,211,214, +47,214,83,214,34,215,138,216,93,218,81,220,65,222,45,224,31,226,53,228,150,230,80,233,105,236,235,239,167,243,66,247, +151,250,170,253,115,0,2,3,113,5,165,7,113,9,212,10,215,11,110,12,157,12,133,12,84,12,45,12,61,12,156,12, +25,13,108,13,100,13,195,12,90,11,80,9,211,6,202,3,73,0,164,252,238,248,233,244,106,240,132,235,98,230,37,225, +220,219,196,214,57,210,76,206,198,202,137,199,146,196,214,193,95,191,91,189,238,187,80,187,208,187,135,189,76,192,0,196, +131,200,141,205,226,210,111,216,41,222,18,228,73,234,194,240,32,247,252,252,42,2,152,6,61,10,52,13,162,15,131,17, +237,18,35,20,49,21,211,21,222,21,98,21,109,20,21,19,138,17,247,15,104,14,227,12,103,11,195,9,197,7,140,5, +79,3,11,1,195,254,147,252,113,250,67,248,7,246,126,243,90,240,168,236,142,232,31,228,158,223,82,219,73,215,141,211, +45,208,51,205,163,202,86,200,54,198,145,196,152,195,26,195,18,195,162,195,179,196,27,198,164,199,20,201,120,202,1,204, +190,205,225,207,130,210,85,213,58,216,78,219,110,222,120,225,127,228,116,231,89,234,127,237,4,241,199,244,191,248,216,252, +236,0,221,4,130,8,183,11,124,14,212,16,212,18,141,20,237,21,245,22,169,23,221,23,147,23,31,23,166,22,69,22, +39,22,51,22,102,22,2,23,228,23,167,24,80,25,2,26,201,26,208,27,24,29,101,30,178,31,10,33,78,34,100,35, +70,36,29,37,52,38,148,39,40,41,49,43,189,45,115,48,59,51,41,54,12,57,231,59,0,63,73,66,141,69,194,72, +218,75,164,78,241,80,119,82,20,83,252,82,96,82,63,81,169,79,192,77,112,75,153,72,64,69,97,65,243,60,45,56, +88,51,132,46,183,41,10,37,128,32,2,28,131,23,4,19,159,14,133,10,233,6,245,3,184,1,26,0,242,254,27,254, +99,253,172,252,0,252,91,251,176,250,2,250,94,249,188,248,246,247,211,246,65,245,96,243,75,241,50,239,105,237,37,236, +110,235,75,235,190,235,165,236,206,237,30,239,156,240,86,242,69,244,93,246,156,248,1,251,152,253,82,0,10,3,184,5, +95,8,243,10,142,13,56,16,165,18,147,20,12,22,250,22,49,23,179,22,148,21,253,19,63,18,126,16,161,14,161,12, +139,10,105,8,51,6,185,3,226,0,229,253,225,250,189,247,111,244,233,240,4,237,178,232,8,228,32,223,48,218,125,213, +53,209,105,205,35,202,110,199,67,197,145,195,84,194,142,193,40,193,10,193,59,193,201,193,186,194,12,196,162,197,94,199, +68,201,80,203,103,205,113,207,117,209,149,211,243,213,123,216,254,218,97,221,145,223,107,225,217,226,240,227,243,228,40,230, +156,231,68,233,53,235,130,237,3,240,140,242,24,245,170,247,67,250,232,252,134,255,228,1,209,3,52,5,233,5,235,5, +87,5,62,4,215,2,149,1,147,0,117,255,32,254,190,252,45,251,36,249,151,246,170,243,160,240,181,237,232,234,35,232, +105,229,199,226,65,224,212,221,144,219,149,217,237,215,169,214,244,213,179,213,139,213,88,213,17,213,157,212,8,212,107,211, +192,210,62,210,19,210,9,210,6,210,82,210,245,210,188,211,174,212,7,214,247,215,143,218,190,221,101,225,114,229,203,233, +84,238,232,242,110,247,8,252,209,0,172,5,154,10,161,15,134,20,22,25,90,29,68,33,206,36,27,40,60,43,58,46, +63,49,59,52,214,54,236,56,178,58,87,60,202,61,240,62,248,63,29,65,87,66,142,67,175,68,121,69,177,69,85,69, +120,68,56,67,195,65,78,64,14,63,19,62,53,61,119,60,0,60,186,59,133,59,113,59,133,59,192,59,48,60,184,60, +27,61,56,61,237,60,28,60,188,58,205,56,102,54,199,51,19,49,64,46,75,43,59,40,29,37,251,33,205,30,170,27, +202,24,74,22,45,20,118,18,12,17,209,15,202,14,250,13,84,13,219,12,146,12,109,12,90,12,78,12,50,12,228,11, +88,11,164,10,216,9,249,8,19,8,40,7,46,6,45,5,21,4,187,2,20,1,46,255,26,253,12,251,74,249,246,247, +32,247,186,246,156,246,183,246,239,246,253,246,200,246,115,246,19,246,150,245,245,244,81,244,227,243,179,243,169,243,190,243, +227,243,36,244,208,244,235,245,27,247,82,248,180,249,37,251,143,252,234,253,3,255,214,255,129,0,8,1,140,1,26,2, +120,2,166,2,177,2,68,2,95,1,110,0,98,255,15,254,183,252,82,251,127,249,39,247,79,244,239,240,21,237,206,232, +40,228,81,223,119,218,200,213,104,209,55,205,47,201,143,197,103,194,173,191,130,189,230,187,197,186,34,186,194,185,94,185, +5,185,186,184,104,184,69,184,138,184,45,185,71,186,253,187,62,190,246,192,3,196,46,199,99,202,178,205,39,209,198,212, +129,216,70,220,49,224,93,228,187,232,72,237,17,242,7,247,15,252,13,1,210,5,38,10,216,13,197,16,233,18,86,20, +31,21,79,21,251,20,54,20,23,19,182,17,25,16,40,14,210,11,50,9,112,6,157,3,189,0,220,253,18,251,90,248, +120,245,67,242,223,238,95,235,171,231,224,227,50,224,156,220,45,217,32,214,123,211,33,209,29,207,125,205,65,204,129,203, +66,203,100,203,212,203,167,204,216,205,36,207,105,208,226,209,193,211,10,214,222,216,114,220,204,224,230,229,181,235,15,242, +198,248,202,255,10,7,109,14,180,21,175,28,130,35,82,42,226,48,8,55,228,60,131,66,207,71,178,76,18,81,215,84, +227,87,254,89,6,91,3,91,0,90,40,88,200,85,31,83,82,80,126,77,154,74,170,71,198,68,239,65,26,63,65,60, +104,57,172,54,50,52,240,49,210,47,235,45,74,44,225,42,161,41,132,40,171,39,66,39,76,39,178,39,92,40,34,41, +228,41,168,42,134,43,100,44,6,45,109,45,200,45,250,45,180,45,4,45,46,44,49,43,253,41,157,40,13,39,100,37, +235,35,201,34,234,33,68,33,217,32,170,32,176,32,223,32,13,33,8,33,185,32,16,32,226,30,14,29,157,26,151,23, +14,20,29,16,186,11,247,6,26,2,20,253,163,247,227,241,248,235,199,229,124,223,114,217,219,211,2,207,61,203,147,200, +247,198,85,198,107,198,20,199,63,200,166,201,23,203,147,204,20,206,192,207,195,209,0,212,122,214,114,217,223,220,144,224, +126,228,153,232,206,236,23,241,68,245,47,249,245,252,171,0,74,4,199,7,8,11,250,13,167,16,248,18,226,20,126,22, +176,23,98,24,200,24,226,24,101,24,71,23,175,21,161,19,0,17,172,13,170,9,39,5,61,0,231,250,36,245,255,238, +159,232,35,226,135,219,231,212,123,206,46,200,243,193,51,188,47,183,187,178,216,174,185,171,84,169,141,167,98,166,198,165, +159,165,227,165,169,166,50,168,191,170,83,174,221,178,73,184,94,190,214,196,121,203,10,210,89,216,100,222,43,228,154,233, +168,238,101,243,228,247,61,252,134,0,172,4,135,8,22,12,106,15,123,18,59,21,159,23,168,25,123,27,38,29,131,30, +154,31,176,32,200,33,166,34,42,35,74,35,1,35,82,34,41,33,100,31,254,28,8,26,146,22,176,18,94,14,147,9, +100,4,240,254,77,249,155,243,231,237,46,232,142,226,46,221,9,216,12,211,64,206,224,201,42,198,38,195,201,192,39,191, +93,190,106,190,66,191,200,192,219,194,120,197,166,200,90,204,134,208,26,213,21,218,155,223,178,229,24,236,167,242,95,249, +7,0,106,6,143,12,97,18,175,23,133,28,9,33,49,37,232,40,53,44,58,47,8,50,104,52,45,54,127,55,114,56, +196,56,109,56,150,55,40,54,35,52,223,49,131,47,248,44,99,42,246,39,162,37,86,35,25,33,235,30,212,28,242,26, +62,25,154,23,10,22,176,20,154,19,187,18,5,18,128,17,85,17,171,17,137,18,214,19,128,21,141,23,251,25,160,28, +67,31,205,33,79,36,213,38,97,41,238,43,115,46,221,48,50,51,125,53,178,55,175,57,77,59,103,60,251,60,45,61, +10,61,109,60,69,59,187,57,226,55,158,53,230,50,226,47,157,44,246,40,218,36,87,32,139,27,166,22,224,17,77,13, +218,8,146,4,174,0,68,253,37,250,32,247,34,244,38,241,55,238,68,235,38,232,10,229,97,226,71,224,133,222,37,221, +80,220,238,219,221,219,26,220,164,220,127,221,196,222,133,224,197,226,127,229,159,232,26,236,227,239,240,243,81,248,13,253, +248,1,247,6,25,12,50,17,241,21,64,26,47,30,165,33,122,36,162,38,47,40,44,41,164,41,174,41,114,41,255,40, +58,40,15,39,136,37,171,35,94,33,129,30,6,27,240,22,80,18,56,13,180,7,202,1,138,251,12,245,122,238,228,231, +50,225,108,218,179,211,245,204,24,198,70,191,160,184,53,178,83,172,56,167,196,162,237,158,221,155,127,153,178,151,155,150, +68,150,147,150,164,151,132,153,4,156,35,159,6,163,142,167,129,172,210,177,96,183,246,188,142,194,34,200,150,205,237,210, +37,216,13,221,157,225,0,230,74,234,132,238,197,242,246,246,248,250,212,254,141,2,8,6,39,9,189,11,175,13,35,15, +54,16,221,16,39,17,45,17,221,16,37,16,18,15,179,13,3,12,241,9,132,7,212,4,213,1,141,254,47,251,189,247, +20,244,84,240,160,236,224,232,49,229,203,225,127,222,40,219,252,215,10,213,46,210,133,207,62,205,98,203,6,202,85,201, +99,201,65,202,3,204,156,206,211,209,131,213,174,217,70,222,51,227,113,232,250,237,166,243,110,249,97,255,101,5,95,11, +84,17,47,23,220,28,90,34,134,39,35,44,34,48,131,51,53,54,68,56,211,57,249,58,217,59,176,60,160,61,148,62, +110,63,40,64,178,64,235,64,185,64,17,64,253,62,154,61,241,59,235,57,166,55,109,53,96,51,124,49,207,47,102,46, +69,45,127,44,5,44,158,43,52,43,236,42,226,42,17,43,115,43,11,44,215,44,195,45,189,46,187,47,180,48,148,49, +83,50,251,50,139,51,249,51,101,52,2,53,200,53,143,54,89,55,65,56,50,57,1,58,164,58,20,59,56,59,1,59, +139,58,238,57,43,57,79,56,117,55,138,54,91,53,214,51,243,49,165,47,236,44,195,41,33,38,34,34,224,29,97,25, +182,20,236,15,253,10,255,5,27,1,77,252,132,247,190,242,241,237,18,233,31,228,16,223,4,218,68,213,5,209,98,205, +132,202,167,200,241,199,69,200,118,201,151,203,165,206,82,210,105,214,218,218,93,223,186,227,1,232,32,236,245,239,164,243, +110,247,118,251,195,255,55,4,175,8,4,13,229,16,14,20,129,22,60,24,45,25,118,25,56,25,136,24,134,23,59,22, +151,20,180,18,166,16,80,14,187,11,10,9,47,6,249,2,76,255,58,251,231,246,82,242,98,237,36,232,174,226,255,220, +45,215,91,209,115,203,108,197,134,191,5,186,248,180,100,176,87,172,232,168,48,166,35,164,135,162,50,161,50,160,164,159, +131,159,189,159,112,160,210,161,254,163,249,166,208,170,125,175,228,180,229,186,93,193,26,200,243,206,197,213,91,220,137,226, +66,232,130,237,82,242,205,246,6,251,19,255,22,3,28,7,26,11,5,15,162,18,163,21,6,24,226,25,13,27,115,27, +66,27,158,26,160,25,135,24,118,23,107,22,114,21,155,20,218,19,26,19,74,18,84,17,26,16,148,14,206,12,172,10, +243,7,189,4,83,1,205,253,69,250,232,246,178,243,167,240,234,237,87,235,187,232,62,230,236,227,154,225,90,223,82,221, +119,219,245,217,13,217,163,216,154,216,27,217,58,218,237,219,66,222,59,225,208,228,12,233,239,237,73,243,216,248,114,254, +10,4,117,9,110,14,217,18,188,22,5,26,137,28,43,30,11,31,125,31,183,31,191,31,190,31,233,31,59,32,155,32, +252,32,55,33,23,33,137,32,161,31,140,30,121,29,141,28,249,27,219,27,19,28,146,28,105,29,131,30,179,31,249,32, +88,34,181,35,14,37,117,38,234,39,79,41,124,42,116,43,109,44,145,45,225,46,97,48,13,50,184,51,67,53,164,54, +184,55,97,56,182,56,187,56,67,56,85,55,48,54,223,52,73,51,121,49,116,47,57,45,245,42,215,40,227,38,33,37, +158,35,58,34,206,32,80,31,199,29,82,28,254,26,175,25,104,24,75,23,70,22,40,21,231,19,118,18,191,16,225,14, +18,13,79,11,122,9,152,7,185,5,183,3,74,1,75,254,199,250,216,246,161,242,92,238,36,234,246,229,255,225,156,222, +242,219,246,217,180,216,47,216,69,216,230,216,2,218,104,219,249,220,189,222,161,224,151,226,196,228,49,231,192,233,131,236, +151,239,219,242,29,246,42,249,226,251,77,254,90,0,214,1,200,2,71,3,70,3,213,2,32,2,51,1,59,0,103,255, +163,254,249,253,146,253,78,253,14,253,245,252,4,253,8,253,225,252,108,252,138,251,64,250,136,248,77,246,180,243,233,240, +221,237,151,234,78,231,11,228,169,224,42,221,183,217,93,214,2,211,159,207,77,204,12,201,189,197,99,194,30,191,238,187, +233,184,84,182,93,180,29,179,173,178,19,179,74,180,91,182,43,185,133,188,83,192,162,196,96,201,88,206,84,211,56,216, +255,220,181,225,114,230,50,235,235,239,181,244,143,249,59,254,135,2,106,6,197,9,111,12,107,14,224,15,228,16,127,17, +212,17,16,18,78,18,152,18,239,18,110,19,44,20,7,21,230,21,231,22,248,23,210,24,108,25,194,25,168,25,39,25, +93,24,36,23,119,21,130,19,57,17,139,14,150,11,88,8,185,4,209,0,183,252,112,248,24,244,193,239,93,235,244,230, +178,226,197,222,80,219,88,216,243,213,90,212,147,211,137,211,75,212,217,213,14,216,224,218,81,222,72,226,180,230,133,235, +155,240,232,245,87,251,181,0,244,5,24,11,250,15,120,20,149,24,64,28,88,31,234,33,20,36,197,37,219,38,80,39, +55,39,161,38,170,37,100,36,215,34,37,33,121,31,199,29,252,27,57,26,152,24,9,23,142,21,45,20,206,18,119,17, +91,16,137,15,239,14,138,14,69,14,19,14,27,14,103,14,202,14,54,15,208,15,150,16,90,17,7,18,185,18,119,19, +63,20,37,21,71,22,173,23,67,25,226,26,137,28,71,30,246,31,125,33,8,35,147,36,250,37,96,39,229,40,115,42, +2,44,150,45,39,47,177,48,38,50,142,51,12,53,128,54,170,55,136,56,42,57,133,57,139,57,53,57,148,56,189,55, +163,54,75,53,201,51,15,50,34,48,44,46,42,44,0,42,172,39,35,37,64,34,5,31,116,27,126,23,56,19,199,14, +48,10,138,5,29,1,5,253,67,249,8,246,103,243,58,241,106,239,217,237,99,236,23,235,3,234,7,233,32,232,115,231, +41,231,92,231,251,231,244,232,101,234,89,236,185,238,117,241,124,244,190,247,50,251,169,254,232,1,209,4,57,7,6,9, +80,10,55,11,205,11,37,12,83,12,98,12,52,12,141,11,114,10,6,9,40,7,180,4,204,1,115,254,131,250,14,246, +59,241,253,235,94,230,158,224,246,218,118,213,13,208,177,202,112,197,80,192,63,187,75,182,137,177,227,172,84,168,6,164, +8,160,84,156,16,153,112,150,118,148,24,147,113,146,155,146,162,147,168,149,193,152,183,156,95,161,174,166,104,172,65,178, +28,184,210,189,89,195,236,200,160,206,100,212,76,218,88,224,109,230,158,236,240,242,40,249,23,255,173,4,226,9,168,14, +224,18,100,22,41,25,47,27,134,28,98,29,233,29,47,30,116,30,223,30,72,31,153,31,209,31,191,31,52,31,63,30, +219,28,254,26,217,24,153,22,61,20,208,17,121,15,81,13,91,11,147,9,1,8,155,6,97,5,101,4,109,3,45,2, +196,0,73,255,153,253,222,251,66,250,162,248,42,247,27,246,76,245,172,244,116,244,176,244,79,245,96,246,251,247,46,250, +240,252,46,0,226,3,239,7,30,12,67,16,61,20,2,24,177,27,89,31,220,34,18,38,244,40,132,43,166,45,56,47, +42,48,118,48,57,48,143,47,93,46,159,44,110,42,168,39,84,36,184,32,206,28,140,24,44,20,198,15,104,11,73,7, +85,3,111,255,206,251,131,248,102,245,136,242,18,240,28,238,200,236,34,236,39,236,224,236,86,238,128,240,54,243,57,246, +124,249,15,253,190,0,33,4,6,7,107,9,59,11,124,12,101,13,8,14,92,14,170,14,58,15,241,15,175,16,111,17, +45,18,247,18,217,19,224,20,64,22,21,24,57,26,135,28,242,30,109,33,222,35,8,38,188,39,16,41,38,42,236,42, +68,43,70,43,16,43,127,42,90,41,175,39,167,37,50,35,72,32,26,29,181,25,235,21,187,17,94,13,237,8,122,4, +71,0,134,252,76,249,189,246,245,244,244,243,155,243,169,243,254,243,175,244,188,245,27,247,218,248,232,250,33,253,163,255, +134,2,163,5,227,8,85,12,244,15,164,19,72,23,207,26,41,30,38,33,123,35,1,37,181,37,147,37,178,36,84,35, +152,33,137,31,96,29,48,27,213,24,95,22,237,19,97,17,172,14,209,11,190,8,124,5,46,2,188,254,5,251,33,247, +69,243,141,239,236,235,99,232,14,229,248,225,38,223,160,220,55,218,166,215,210,212,204,209,177,206,134,203,50,200,186,196, +63,193,215,189,147,186,128,183,167,180,23,178,236,175,89,174,126,173,68,173,147,173,98,174,147,175,1,177,143,178,34,180, +213,181,195,183,244,185,156,188,221,191,156,195,213,199,119,204,80,209,119,214,242,219,100,225,154,230,145,235,51,240,123,244, +89,248,157,251,72,254,130,0,137,2,165,4,207,6,249,8,84,11,204,13,19,16,23,18,204,19,12,21,209,21,31,22, +249,21,125,21,181,20,141,19,18,18,104,16,152,14,158,12,154,10,182,8,245,6,69,5,148,3,206,1,15,0,128,254, +20,253,186,251,135,250,145,249,239,248,172,248,181,248,1,249,152,249,122,250,157,251,230,252,73,254,250,255,9,2,61,4, +117,6,165,8,188,10,201,12,219,14,224,16,216,18,213,20,223,22,241,24,243,26,199,28,92,30,160,31,117,32,196,32, +162,32,83,32,9,32,168,31,32,31,153,30,38,30,146,29,180,28,152,27,103,26,60,25,37,24,34,23,52,22,68,21, +39,20,191,18,255,16,225,14,111,12,195,9,12,7,124,4,21,2,221,255,23,254,199,252,167,251,196,250,73,250,12,250, +232,249,218,249,216,249,254,249,97,250,239,250,173,251,169,252,248,253,191,255,217,1,253,3,53,6,126,8,146,10,104,12, +9,14,49,15,219,15,86,16,199,16,36,17,113,17,190,17,0,18,11,18,193,17,57,17,153,16,243,15,95,15,240,14, +135,14,13,14,143,13,248,12,25,12,216,10,57,9,110,7,187,5,31,4,155,2,89,1,66,0,43,255,25,254,243,252, +178,251,159,250,218,249,76,249,238,248,166,248,110,248,89,248,58,248,5,248,243,247,32,248,172,248,198,249,87,251,80,253, +207,255,184,2,234,5,112,9,53,13,21,17,252,20,207,24,132,28,6,32,52,35,11,38,118,40,90,42,229,43,80,45, +182,46,57,48,202,49,26,51,236,51,47,52,241,51,44,51,187,49,188,47,130,45,46,43,171,40,229,37,215,34,139,31, +8,28,94,24,165,20,224,16,43,13,194,9,138,6,66,3,245,255,177,252,98,249,14,246,175,242,82,239,36,236,15,233, +224,229,184,226,170,223,144,220,130,217,191,214,79,212,26,210,35,208,115,206,229,204,69,203,120,201,117,199,55,197,230,194, +171,192,140,190,167,188,67,187,108,186,15,186,79,186,79,187,241,188,20,191,173,193,157,196,191,199,242,202,23,206,32,209, +241,211,109,214,173,216,212,218,233,220,2,223,61,225,169,227,85,230,30,233,189,235,26,238,36,240,211,241,82,243,159,244, +145,245,86,246,26,247,193,247,60,248,154,248,224,248,43,249,146,249,10,250,152,250,78,251,28,252,231,252,155,253,31,254, +110,254,159,254,204,254,245,254,26,255,83,255,183,255,59,0,191,0,66,1,221,1,127,2,3,3,119,3,248,3,117,4, +223,4,56,5,103,5,76,5,222,4,40,4,68,3,70,2,46,1,255,255,203,254,177,253,203,252,15,252,106,251,221,250, +118,250,32,250,192,249,104,249,46,249,243,248,153,248,47,248,197,247,149,247,243,247,226,248,65,250,3,252,9,254,88,0, +249,2,156,5,18,8,122,10,193,12,209,14,194,16,148,18,82,20,247,21,80,23,113,24,131,25,95,26,251,26,127,27, +228,27,54,28,131,28,172,28,167,28,131,28,79,28,40,28,243,27,150,27,56,27,224,26,127,26,73,26,61,26,52,26, +86,26,176,26,21,27,121,27,226,27,113,28,77,29,83,30,98,31,141,32,178,33,170,34,123,35,238,35,223,35,155,35, +71,35,193,34,34,34,112,33,132,32,111,31,85,30,20,29,148,27,237,25,40,24,77,22,103,20,77,18,248,15,175,13, +138,11,112,9,153,7,81,6,155,5,85,5,90,5,122,5,146,5,144,5,94,5,239,4,78,4,143,3,195,2,253,1, +78,1,198,0,111,0,69,0,55,0,94,0,212,0,121,1,54,2,20,3,2,4,251,4,14,6,39,7,67,8,139,9, +17,11,221,12,242,14,46,17,104,19,129,21,73,23,170,24,150,25,252,25,226,25,75,25,39,24,141,22,139,20,16,18, +38,15,241,11,145,8,60,5,3,2,194,254,136,251,121,248,122,245,102,242,64,239,1,236,177,232,110,229,77,226,81,223, +115,220,172,217,11,215,127,212,205,209,13,207,152,204,114,202,134,200,10,199,4,198,47,197,97,196,135,195,135,194,84,193, +234,191,100,190,215,188,62,187,194,185,144,184,145,183,193,182,78,182,66,182,169,182,117,183,116,184,183,185,91,187,30,189, +221,190,177,192,148,194,153,196,234,198,129,201,113,204,213,207,134,211,96,215,106,219,147,223,178,227,162,231,81,235,193,238, +5,242,60,245,111,248,120,251,85,254,47,1,16,4,237,6,188,9,143,12,122,15,95,18,43,21,249,23,167,26,16,29, +127,31,245,33,46,36,106,38,230,40,108,43,221,45,52,48,77,50,25,52,131,53,123,54,29,55,113,55,134,55,156,55, +173,55,150,55,123,55,74,55,188,54,209,53,148,52,245,50,20,49,24,47,255,44,225,42,198,40,150,38,91,36,39,34, +9,32,54,30,183,28,58,27,175,25,83,24,25,23,199,21,86,20,208,18,93,17,58,16,95,15,187,14,126,14,182,14, +60,15,248,15,202,16,147,17,80,18,1,19,157,19,12,20,73,20,129,20,176,20,151,20,85,20,30,20,204,19,94,19, +241,18,74,18,71,17,8,16,117,14,102,12,219,9,226,6,179,3,149,0,135,253,111,250,94,247,107,244,147,241,199,238, +251,235,89,233,14,231,251,228,249,226,32,225,132,223,17,222,199,220,178,219,187,218,207,217,253,216,94,216,243,215,179,215, +150,215,170,215,6,216,175,216,167,217,236,218,107,220,17,222,218,223,187,225,139,227,37,229,131,230,144,231,60,232,161,232, +202,232,194,232,193,232,211,232,197,232,164,232,156,232,166,232,179,232,170,232,113,232,33,232,220,231,164,231,132,231,149,231, +237,231,166,232,185,233,15,235,171,236,148,238,194,240,40,243,189,245,112,248,25,251,152,253,10,0,129,2,246,4,149,7, +132,10,194,13,94,17,52,21,1,25,218,28,216,32,188,36,96,40,209,43,255,46,219,49,97,52,147,54,130,56,60,58, +194,59,1,61,246,61,205,62,166,63,94,64,220,64,37,65,33,65,193,64,28,64,65,63,41,62,220,60,108,59,192,57, +165,55,43,53,126,50,141,47,77,44,220,40,66,37,155,33,16,30,150,26,30,23,181,19,64,16,169,12,13,9,117,5, +213,1,49,254,154,250,45,247,239,243,216,240,247,237,105,235,74,233,183,231,165,230,224,229,87,229,3,229,179,228,70,228, +215,227,126,227,43,227,207,226,112,226,43,226,47,226,139,226,40,227,254,227,25,229,99,230,190,231,24,233,84,234,92,235, +54,236,217,236,70,237,153,237,211,237,245,237,24,238,73,238,148,238,28,239,221,239,173,240,112,241,39,242,215,242,101,243, +173,243,191,243,177,243,117,243,20,243,187,242,112,242,25,242,193,241,128,241,82,241,58,241,83,241,145,241,221,241,89,242, +20,243,203,243,90,244,241,244,160,245,74,246,243,246,144,247,249,247,55,248,95,248,76,248,241,247,130,247,37,247,213,246, +128,246,30,246,194,245,113,245,245,244,46,244,54,243,37,242,24,241,44,240,88,239,162,238,68,238,92,238,189,238,54,239, +197,239,134,240,96,241,41,242,235,242,148,243,10,244,123,244,241,244,49,245,79,245,165,245,75,246,42,247,33,248,12,249, +221,249,151,250,52,251,162,251,202,251,185,251,157,251,137,251,128,251,141,251,175,251,227,251,51,252,150,252,5,253,145,253, +59,254,249,254,211,255,194,0,157,1,74,2,209,2,40,3,54,3,6,3,179,2,71,2,216,1,132,1,53,1,175,0, +220,255,218,254,174,253,72,252,195,250,72,249,217,247,129,246,81,245,51,244,43,243,62,242,70,241,73,240,125,239,247,238, +201,238,250,238,110,239,53,240,83,241,135,242,210,243,92,245,252,246,155,248,89,250,19,252,150,253,233,254,20,0,45,1, +88,2,144,3,201,4,13,6,122,7,56,9,50,11,16,13,171,14,27,16,118,17,210,18,71,20,243,21,254,23,99,26, +239,28,145,31,87,34,67,37,71,40,51,43,213,45,58,48,128,50,130,52,19,54,52,55,4,56,159,56,253,56,24,57, +31,57,79,57,158,57,230,57,29,58,56,58,31,58,206,57,78,57,183,56,38,56,157,55,17,55,147,54,43,54,176,53, +224,52,163,51,6,50,22,48,242,45,185,43,87,41,203,38,62,36,168,33,238,30,44,28,103,25,124,22,125,19,127,16, +105,13,52,10,227,6,112,3,0,0,179,252,98,249,238,245,124,242,64,239,83,236,161,233,254,230,106,228,253,225,184,223, +162,221,204,219,54,218,242,216,42,216,203,215,154,215,149,215,202,215,6,216,17,216,246,215,222,215,210,215,202,215,178,215, +98,215,190,214,221,213,223,212,201,211,162,210,134,209,156,208,247,207,121,207,227,206,49,206,124,205,189,204,218,203,214,202, +230,201,90,201,69,201,125,201,225,201,81,202,191,202,78,203,0,204,174,204,113,205,110,206,149,207,224,208,92,210,2,212, +223,213,241,215,9,218,28,220,63,222,102,224,131,226,142,228,114,230,34,232,152,233,218,234,11,236,77,237,151,238,228,239, +67,241,181,242,49,244,164,245,243,246,41,248,92,249,124,250,124,251,118,252,115,253,123,254,160,255,191,0,205,1,252,2, +66,4,114,5,183,6,39,8,125,9,174,10,222,11,3,13,28,14,78,15,156,16,248,17,103,19,245,20,164,22,97,24, +24,26,198,27,89,29,172,30,178,31,115,32,250,32,89,33,149,33,162,33,121,33,27,33,153,32,13,32,139,31,22,31, +155,30,19,30,177,29,153,29,160,29,157,29,157,29,153,29,123,29,77,29,36,29,15,29,26,29,56,29,92,29,119,29, +101,29,25,29,181,28,77,28,228,27,134,27,30,27,133,26,178,25,159,24,70,23,185,21,7,20,59,18,118,16,196,14, +43,13,191,11,124,10,67,9,19,8,12,7,84,6,222,5,99,5,210,4,118,4,98,4,97,4,92,4,95,4,140,4, +38,5,56,6,134,7,238,8,108,10,224,11,36,13,22,14,151,14,167,14,92,14,193,13,236,12,253,11,0,11,244,9, +248,8,65,8,219,7,167,7,159,7,192,7,206,7,164,7,101,7,35,7,185,6,25,6,98,5,176,4,21,4,175,3, +159,3,237,3,148,4,156,5,224,6,14,8,18,9,18,10,250,10,145,11,201,11,166,11,65,11,181,10,246,9,254,8, +234,7,183,6,114,5,83,4,95,3,112,2,136,1,158,0,151,255,111,254,15,253,101,251,169,249,6,248,101,246,205,244, +93,243,255,241,161,240,75,239,240,237,122,236,239,234,103,233,216,231,30,230,54,228,66,226,68,224,51,222,35,220,47,218, +107,216,246,214,217,213,20,213,179,212,164,212,206,212,56,213,197,213,56,214,163,214,44,215,176,215,20,216,128,216,10,217, +147,217,23,218,182,218,138,219,172,220,54,222,29,224,45,226,62,228,48,230,204,231,5,233,248,233,161,234,241,234,13,235, +33,235,71,235,149,235,18,236,185,236,117,237,27,238,146,238,232,238,27,239,34,239,13,239,235,238,213,238,235,238,36,239, +126,239,26,240,11,241,104,242,101,244,252,246,240,249,41,253,125,0,154,3,107,6,6,9,94,11,127,13,137,15,114,17, +49,19,228,20,168,22,137,24,129,26,127,28,131,30,146,32,167,34,183,36,163,38,69,40,154,41,177,42,126,43,250,43, +66,44,134,44,234,44,110,45,254,45,158,46,79,47,247,47,137,48,3,49,85,49,121,49,118,49,75,49,231,48,54,48, +56,47,12,46,181,44,25,43,51,41,36,39,30,37,49,35,55,33,38,31,29,29,29,27,26,25,54,23,133,21,238,19, +115,18,58,17,85,16,192,15,106,15,72,15,97,15,164,15,235,15,43,16,115,16,203,16,26,17,48,17,7,17,188,16, +61,16,112,15,119,14,121,13,124,12,154,11,213,10,21,10,105,9,198,8,234,7,200,6,120,5,235,3,37,2,64,0, +36,254,190,251,39,249,108,246,139,243,140,240,115,237,92,234,130,231,228,228,77,226,176,223,33,221,168,218,64,216,234,213, +171,211,162,209,249,207,181,206,180,205,241,204,121,204,44,204,209,203,90,203,187,202,233,201,250,200,253,199,225,198,179,197, +140,196,89,195,27,194,4,193,67,192,214,191,158,191,142,191,181,191,6,192,98,192,207,192,84,193,220,193,88,194,203,194, +81,195,17,196,5,197,20,198,104,199,27,201,254,202,243,204,14,207,85,209,182,211,25,214,118,216,220,218,52,221,68,223, +18,225,198,226,90,228,181,229,205,230,173,231,128,232,100,233,88,234,95,235,134,236,214,237,121,239,148,241,22,244,254,246, +95,250,33,254,44,2,143,6,77,11,84,16,172,21,88,27,81,33,160,39,53,46,221,52,102,59,176,65,153,71,245,76, +157,81,129,85,168,88,28,91,238,92,54,94,10,95,127,95,171,95,174,95,158,95,108,95,0,95,100,94,161,93,166,92, +111,91,26,90,184,88,47,87,84,85,57,83,37,81,30,79,255,76,220,74,191,72,138,70,71,68,4,66,136,63,188,60, +203,57,206,54,198,51,163,48,72,45,189,41,36,38,119,34,170,30,222,26,42,23,141,19,13,16,169,12,72,9,207,5, +73,2,239,254,234,251,59,249,224,246,233,244,102,243,85,242,147,241,7,241,208,240,3,241,111,241,248,241,195,242,215,243, +17,245,83,246,113,247,64,248,197,248,253,248,206,248,61,248,108,247,122,246,127,245,121,244,90,243,49,242,18,241,11,240, +43,239,94,238,113,237,97,236,90,235,102,234,103,233,89,232,86,231,118,230,195,229,66,229,230,228,158,228,123,228,120,228, +99,228,41,228,216,227,83,227,132,226,123,225,75,224,9,223,190,221,106,220,31,219,223,217,140,216,73,215,57,214,32,213, +224,211,173,210,140,209,83,208,0,207,159,205,66,204,9,203,1,202,45,201,149,200,57,200,41,200,115,200,240,200,105,201, +217,201,82,202,227,202,136,203,35,204,198,204,168,205,196,206,240,207,42,209,123,210,198,211,250,212,37,214,86,215,153,216, +248,217,116,219,11,221,178,222,99,224,34,226,241,227,214,229,211,231,209,233,203,235,201,237,176,239,104,241,0,243,138,244, +22,246,185,247,106,249,52,251,63,253,128,255,202,1,32,4,154,6,53,9,226,11,156,14,127,17,151,20,184,23,186,26, +151,29,68,32,190,34,251,36,221,38,102,40,163,41,119,42,213,42,197,42,59,42,58,41,195,39,220,37,195,35,159,33, +94,31,38,29,46,27,78,25,99,23,137,21,198,19,23,18,138,16,18,15,170,13,120,12,135,11,200,10,71,10,18,10, +33,10,121,10,47,11,51,12,108,13,239,14,234,16,97,19,35,22,247,24,184,27,90,30,233,32,95,35,147,37,100,39, +212,40,224,41,133,42,220,42,240,42,185,42,97,42,29,42,238,41,207,41,227,41,61,42,206,42,135,43,95,44,64,45, +40,46,64,47,147,48,246,49,97,51,253,52,202,54,154,56,73,58,199,59,10,61,234,61,40,62,175,61,134,60,168,58, +31,56,243,52,47,49,20,45,222,40,159,36,135,32,199,28,76,25,20,22,37,19,53,16,10,13,176,9,59,6,191,2, +105,255,69,252,81,249,153,246,19,244,168,241,93,239,53,237,14,235,223,232,189,230,149,228,56,226,171,223,1,221,53,218, +83,215,105,212,122,209,159,206,241,203,108,201,23,199,240,196,236,194,11,193,69,191,137,189,227,187,115,186,75,185,112,184, +204,183,102,183,78,183,123,183,245,183,231,184,72,186,6,188,61,190,229,192,178,195,111,198,28,201,173,203,7,206,44,208, +46,210,5,212,187,213,118,215,32,217,171,218,66,220,233,221,153,223,132,225,183,227,5,230,115,232,10,235,164,237,54,240, +177,242,247,244,17,247,34,249,59,251,133,253,39,0,13,3,253,5,228,8,206,11,166,14,36,17,20,19,118,20,82,21, +175,21,152,21,20,21,56,20,45,19,10,18,202,16,137,15,118,14,156,13,238,12,99,12,223,11,71,11,157,10,205,9, +187,8,139,7,120,6,156,5,247,4,144,4,140,4,17,5,23,6,150,7,121,9,141,11,191,13,16,16,75,18,62,20, +237,21,88,23,122,24,96,25,35,26,238,26,223,27,243,28,47,30,134,31,224,32,55,34,102,35,72,36,248,36,129,37, +211,37,17,38,71,38,104,38,160,38,236,38,17,39,32,39,65,39,101,39,143,39,203,39,11,40,55,40,40,40,210,39, +83,39,162,38,158,37,101,36,46,35,19,34,32,33,91,32,193,31,61,31,193,30,91,30,240,29,73,29,114,28,134,27, +102,26,10,25,131,23,192,21,203,19,198,17,167,15,117,13,92,11,86,9,67,7,57,5,54,3,15,1,179,254,45,252, +107,249,107,246,62,243,208,239,27,236,68,232,73,228,16,224,192,219,141,215,132,211,176,207,23,204,162,200,36,197,145,193, +5,190,122,186,201,182,6,179,95,175,217,171,138,168,156,165,25,163,4,161,106,159,70,158,132,157,36,157,52,157,149,157, +25,158,239,158,82,160,24,162,46,164,198,166,207,169,36,173,218,176,235,180,66,185,220,189,144,194,73,199,25,204,230,208, +141,213,20,218,97,222,88,226,6,230,122,233,200,236,30,240,147,243,15,247,117,250,211,253,79,1,203,4,18,8,43,11, +40,14,249,16,159,19,36,22,133,24,192,26,208,28,195,30,154,32,58,34,180,35,53,37,163,38,217,39,230,40,224,41, +202,42,145,43,35,44,169,44,81,45,15,46,220,46,194,47,165,48,122,49,81,50,35,51,244,51,229,52,7,54,85,55, +187,56,20,58,60,59,42,60,240,60,138,61,234,61,54,62,149,62,246,62,82,63,190,63,50,64,163,64,22,65,125,65, +200,65,8,66,74,66,120,66,89,66,203,65,209,64,128,63,235,61,27,60,10,58,209,55,154,53,104,51,50,49,1,47, +205,44,128,42,34,40,204,37,124,35,48,33,21,31,78,29,171,27,7,26,140,24,73,23,53,22,111,21,248,20,162,20, +103,20,94,20,133,20,174,20,173,20,137,20,61,20,168,19,222,18,250,17,240,16,200,15,143,14,53,13,191,11,52,10, +134,8,205,6,14,5,56,3,92,1,125,255,135,253,145,251,157,249,124,247,51,245,229,242,168,240,138,238,125,236,105,234, +83,232,47,230,215,227,57,225,94,222,121,219,184,216,29,214,183,211,152,209,183,207,25,206,183,204,113,203,70,202,44,201, +252,199,207,198,197,197,182,196,142,195,84,194,245,192,117,191,239,189,104,188,252,186,224,185,30,185,166,184,122,184,156,184, +8,185,188,185,204,186,69,188,26,190,61,192,169,194,72,197,241,199,142,202,33,205,171,207,31,210,138,212,13,215,167,217, +65,220,202,222,41,225,71,227,28,229,153,230,196,231,201,232,196,233,172,234,118,235,44,236,210,236,95,237,209,237,45,238, +112,238,187,238,39,239,137,239,204,239,40,240,191,240,150,241,170,242,220,243,52,245,229,246,236,248,39,251,132,253,232,255, +74,2,185,4,38,7,111,9,128,11,97,13,66,15,51,17,13,19,201,20,102,22,213,23,39,25,88,26,88,27,73,28, +42,29,199,29,20,30,17,30,193,29,74,29,169,28,191,27,174,26,167,25,172,24,173,23,167,22,162,21,152,20,117,19, +77,18,60,17,50,16,43,15,48,14,52,13,64,12,94,11,128,10,181,9,3,9,68,8,100,7,103,6,73,5,22,4, +204,2,95,1,237,255,125,254,254,252,158,251,136,250,143,249,175,248,44,248,254,247,222,247,216,247,37,248,165,248,39,249, +197,249,131,250,68,251,21,252,3,253,247,253,236,254,240,255,8,1,62,2,135,3,209,4,41,6,153,7,246,8,32,10, +32,11,253,11,182,12,87,13,223,13,53,14,104,14,159,14,214,14,14,15,106,15,245,15,162,16,97,17,3,18,120,18, +231,18,95,19,218,19,85,20,205,20,102,21,80,22,117,23,195,24,76,26,254,27,185,29,115,31,18,33,129,34,176,35, +146,36,37,37,74,37,220,36,250,35,198,34,66,33,149,31,234,29,77,28,219,26,156,25,126,24,147,23,234,22,122,22, +54,22,17,22,4,22,15,22,40,22,68,22,62,22,4,22,223,21,243,21,240,21,213,21,214,21,201,21,145,21,77,21, +228,20,70,20,148,19,199,18,210,17,211,16,211,15,213,14,232,13,254,12,19,12,71,11,173,10,56,10,229,9,190,9, +181,9,162,9,114,9,29,9,166,8,43,8,183,7,56,7,211,6,169,6,155,6,172,6,238,6,49,7,90,7,119,7, +115,7,45,7,164,6,183,5,63,4,81,2,253,255,48,253,248,249,126,246,215,242,30,239,128,235,21,232,240,228,51,226, +222,223,237,221,112,220,67,219,68,218,147,217,55,217,8,217,1,217,40,217,139,217,55,218,20,219,14,220,60,221,157,222, +16,224,131,225,232,226,43,228,74,229,56,230,234,230,80,231,123,231,163,231,228,231,42,232,100,232,130,232,140,232,148,232, +108,232,227,231,35,231,76,230,93,229,109,228,121,227,118,226,125,225,153,224,226,223,149,223,170,223,19,224,11,225,147,226, +102,228,105,230,145,232,185,234,174,236,82,238,195,239,30,241,79,242,79,243,43,244,225,244,125,245,16,246,162,246,79,247, +33,248,15,249,42,250,92,251,103,252,72,253,23,254,219,254,168,255,136,0,116,1,105,2,113,3,146,4,191,5,220,6, +227,7,233,8,244,9,6,11,22,12,12,13,235,13,198,14,135,15,15,16,103,16,175,16,0,17,91,17,172,17,243,17, +72,18,190,18,67,19,181,19,251,19,250,19,149,19,196,18,146,17,21,16,88,14,91,12,64,10,72,8,124,6,206,4, +92,3,49,2,67,1,146,0,14,0,186,255,184,255,248,255,86,0,227,0,167,1,133,2,129,3,170,4,233,5,14,7, +20,8,23,9,14,10,227,10,165,11,73,12,188,12,22,13,86,13,99,13,80,13,43,13,232,12,148,12,27,12,96,11, +134,10,147,9,104,8,27,7,185,5,43,4,115,2,164,0,197,254,217,252,219,250,228,248,24,247,109,245,227,243,131,242, +51,241,233,239,159,238,44,237,143,235,235,233,74,232,181,230,44,229,155,227,12,226,132,224,253,222,139,221,54,220,240,218, +207,217,226,216,27,216,119,215,232,214,108,214,22,214,229,213,205,213,203,213,204,213,222,213,45,214,180,214,86,215,12,216, +201,216,137,217,101,218,95,219,95,220,104,221,155,222,254,223,134,225,45,227,222,228,140,230,62,232,232,233,118,235,2,237, +157,238,45,240,168,241,20,243,122,244,240,245,127,247,26,249,182,250,97,252,70,254,126,0,224,2,82,5,233,7,161,10, +94,13,27,16,213,18,143,21,71,24,232,26,103,29,185,31,211,33,200,35,168,37,125,39,102,41,101,43,112,45,148,47, +189,49,205,51,227,53,237,55,171,57,42,59,134,60,167,61,151,62,109,63,23,64,153,64,16,65,126,65,208,65,5,66, +44,66,84,66,130,66,190,66,247,66,254,66,211,66,149,66,70,66,242,65,160,65,35,65,122,64,203,63,242,62,196,61, +72,60,115,58,56,56,172,53,219,50,200,47,120,44,245,40,86,37,171,33,237,29,55,26,181,22,124,19,141,16,237,13, +154,11,131,9,136,7,178,5,8,4,96,2,182,0,51,255,211,253,161,252,198,251,44,251,184,250,132,250,125,250,122,250, +131,250,165,250,210,250,1,251,28,251,24,251,246,250,157,250,5,250,90,249,187,248,27,248,118,247,216,246,55,246,132,245, +200,244,252,243,8,243,246,241,214,240,174,239,128,238,57,237,187,235,23,234,103,232,162,230,187,228,205,226,1,225,91,223, +200,221,82,220,242,218,121,217,225,215,61,214,135,212,181,210,204,208,238,206,67,205,179,203,47,202,246,200,252,199,237,198, +212,197,245,196,93,196,0,196,186,195,125,195,92,195,96,195,140,195,241,195,149,196,151,197,20,199,242,200,21,203,107,205, +218,207,103,210,23,213,178,215,3,218,31,220,45,222,48,224,5,226,170,227,46,229,132,230,171,231,196,232,211,233,186,234, +115,235,22,236,184,236,62,237,133,237,170,237,208,237,236,237,6,238,60,238,137,238,227,238,89,239,251,239,202,240,196,241, +214,242,237,243,30,245,130,246,230,247,31,249,95,250,199,251,65,253,209,254,135,0,103,2,140,4,253,6,165,9,139,12, +186,15,21,19,133,22,4,26,140,29,9,33,103,36,166,39,192,42,179,45,153,48,110,51,2,54,95,56,175,58,190,60, +70,62,105,63,110,64,74,65,209,65,9,66,28,66,7,66,175,65,39,65,130,64,180,63,196,62,202,61,199,60,169,59, +91,58,213,56,33,55,46,53,242,50,141,48,4,46,53,43,60,40,67,37,63,34,52,31,57,28,85,25,152,22,10,20, +162,17,104,15,94,13,124,11,197,9,46,8,170,6,74,5,14,4,228,2,223,1,22,1,134,0,17,0,151,255,47,255, +228,254,122,254,194,253,190,252,113,251,231,249,30,248,6,246,176,243,51,241,156,238,23,236,167,233,36,231,169,228,97,226, +73,224,100,222,180,220,38,219,191,217,144,216,142,215,146,214,124,213,90,212,59,211,4,210,172,208,90,207,42,206,28,205, +55,204,153,203,63,203,17,203,41,203,163,203,94,204,72,205,127,206,252,207,169,209,125,211,117,213,140,215,165,217,186,219, +238,221,48,224,91,226,130,228,153,230,112,232,5,234,115,235,216,236,63,238,136,239,159,240,148,241,126,242,106,243,63,244, +229,244,150,245,124,246,122,247,126,248,108,249,59,250,24,251,213,251,31,252,24,252,219,251,98,251,218,250,62,250,106,249, +138,248,188,247,232,246,31,246,118,245,230,244,131,244,93,244,99,244,125,244,171,244,9,245,157,245,89,246,87,247,148,248, +254,249,188,251,220,253,51,0,190,2,122,5,66,8,23,11,249,13,192,16,112,19,33,22,179,24,3,27,39,29,61,31, +66,33,11,35,133,36,220,37,56,39,140,40,207,41,249,42,235,43,174,44,97,45,236,45,49,46,68,46,48,46,233,45, +125,45,253,44,96,44,184,43,47,43,205,42,143,42,129,42,160,42,223,42,55,43,123,43,134,43,138,43,158,43,151,43, +122,43,107,43,85,43,50,43,6,43,191,42,86,42,229,41,146,41,114,41,88,41,40,41,2,41,216,40,126,40,248,39, +75,39,130,38,184,37,229,36,244,35,234,34,193,33,135,32,67,31,213,29,60,28,147,26,227,24,51,23,127,21,176,19, +205,17,219,15,205,13,165,11,97,9,254,6,130,4,236,1,56,255,90,252,72,249,38,246,14,243,241,239,202,236,150,233, +96,230,87,227,123,224,173,221,17,219,192,216,178,214,248,212,137,211,80,210,91,209,160,208,17,208,175,207,100,207,56,207, +77,207,125,207,162,207,202,207,241,207,29,208,99,208,177,208,0,209,92,209,185,209,14,210,113,210,217,210,44,211,102,211, +135,211,139,211,108,211,45,211,213,210,105,210,229,209,81,209,212,208,138,208,104,208,106,208,159,208,6,209,154,209,80,210, +13,211,210,211,173,212,167,213,213,214,52,216,182,217,94,219,28,221,213,222,134,224,45,226,209,227,137,229,70,231,240,232, +153,234,76,236,254,237,159,239,38,241,168,242,43,244,138,245,216,246,62,248,162,249,243,250,72,252,156,253,249,254,130,0, +29,2,190,3,125,5,50,7,164,8,251,9,91,11,147,12,160,13,176,14,191,15,195,16,218,17,4,19,54,20,117,21, +171,22,200,23,204,24,165,25,93,26,29,27,229,27,149,28,35,29,163,29,39,30,172,30,44,31,166,31,15,32,120,32, +4,33,167,33,67,34,238,34,186,35,157,36,128,37,96,38,79,39,61,40,26,41,7,42,249,42,212,43,196,44,211,45, +202,46,154,47,67,48,172,48,216,48,229,48,227,48,192,48,97,48,216,47,39,47,49,46,30,45,238,43,103,42,173,40, +230,38,212,36,143,34,85,32,243,29,86,27,184,24,35,22,161,19,84,17,40,15,249,12,199,10,182,8,214,6,250,4, +13,3,65,1,164,255,36,254,202,252,134,251,66,250,0,249,163,247,14,246,102,244,189,242,4,241,81,239,178,237,23,236, +125,234,222,232,37,231,122,229,2,228,162,226,102,225,104,224,126,223,155,222,242,221,121,221,17,221,210,220,181,220,162,220, +193,220,59,221,250,221,210,222,191,223,203,224,227,225,243,226,246,227,223,228,173,229,116,230,46,231,190,231,30,232,90,232, +115,232,94,232,24,232,167,231,16,231,109,230,211,229,53,229,164,228,56,228,212,227,135,227,119,227,127,227,157,227,3,228, +141,228,22,229,199,229,162,230,151,231,183,232,233,233,24,235,103,236,221,237,107,239,20,241,200,242,104,244,227,245,72,247, +166,248,232,249,21,251,85,252,147,253,178,254,202,255,239,0,24,2,63,3,102,4,144,5,172,6,175,7,186,8,204,9, +208,10,205,11,187,12,152,13,127,14,95,15,50,16,40,17,46,18,31,19,27,20,31,21,15,22,239,22,165,23,5,24, +26,24,0,24,209,23,153,23,81,23,7,23,212,22,170,22,114,22,39,22,196,21,76,21,193,20,30,20,102,19,178,18, +34,18,182,17,104,17,71,17,83,17,132,17,237,17,141,18,59,19,210,19,68,20,149,20,190,20,181,20,134,20,54,20, +196,19,74,19,215,18,90,18,230,17,157,17,97,17,5,17,148,16,33,16,143,15,194,14,186,13,97,12,184,10,251,8, +40,7,21,5,236,2,226,0,237,254,37,253,167,251,98,250,84,249,138,248,248,247,144,247,52,247,201,246,91,246,244,245, +126,245,236,244,64,244,116,243,130,242,130,241,167,240,6,240,131,239,13,239,163,238,58,238,206,237,103,237,5,237,149,236, +36,236,226,235,211,235,215,235,8,236,133,236,74,237,107,238,237,239,149,241,69,243,26,245,4,247,178,248,239,249,208,250, +114,251,220,251,22,252,50,252,80,252,149,252,1,253,147,253,86,254,68,255,93,0,169,1,246,2,32,4,39,5,223,5, +60,6,104,6,95,6,51,6,43,6,71,6,123,6,210,6,66,7,221,7,161,8,71,9,195,9,38,10,67,10,27,10, +195,9,36,9,99,8,171,7,225,6,40,6,178,5,85,5,245,4,176,4,136,4,102,4,66,4,27,4,228,3,144,3, +44,3,193,2,55,2,151,1,13,1,145,0,19,0,176,255,128,255,115,255,126,255,154,255,177,255,174,255,151,255,101,255, +254,254,106,254,197,253,23,253,87,252,144,251,220,250,80,250,243,249,193,249,203,249,37,250,194,250,137,251,94,252,38,253, +226,253,151,254,43,255,164,255,38,0,158,0,247,0,80,1,170,1,238,1,66,2,171,2,9,3,111,3,217,3,44,4, +134,4,223,4,6,5,19,5,15,5,229,4,178,4,141,4,112,4,114,4,128,4,133,4,163,4,195,4,174,4,109,4, +22,4,163,3,22,3,115,2,193,1,14,1,116,0,20,0,222,255,186,255,193,255,236,255,16,0,49,0,84,0,92,0, +67,0,17,0,195,255,88,255,201,254,19,254,60,253,62,252,36,251,21,250,46,249,98,248,149,247,227,246,116,246,25,246, +174,245,75,245,246,244,189,244,172,244,149,244,113,244,107,244,120,244,122,244,116,244,100,244,86,244,80,244,46,244,242,243, +198,243,189,243,211,243,249,243,46,244,142,244,16,245,152,245,49,246,215,246,120,247,46,248,8,249,233,249,218,250,247,251, +47,253,105,254,178,255,32,1,177,2,83,4,244,5,135,7,10,9,136,10,6,12,138,13,9,15,122,16,213,17,9,19, +14,20,235,20,131,21,193,21,201,21,163,21,57,21,158,20,227,19,255,18,244,17,197,16,135,15,91,14,69,13,68,12, +98,11,153,10,233,9,88,9,205,8,44,8,116,7,186,6,1,6,59,5,110,4,162,3,201,2,218,1,225,0,237,255, +245,254,236,253,232,252,0,252,14,251,2,250,11,249,41,248,68,247,121,246,208,245,62,245,223,244,172,244,131,244,101,244, +67,244,13,244,227,243,214,243,212,243,221,243,248,243,29,244,69,244,127,244,212,244,25,245,39,245,31,245,44,245,69,245, +75,245,60,245,64,245,107,245,167,245,231,245,52,246,155,246,20,247,128,247,241,247,108,248,185,248,214,248,247,248,9,249, +4,249,6,249,247,248,217,248,218,248,240,248,29,249,133,249,30,250,210,250,173,251,176,252,209,253,2,255,56,0,94,1, +76,2,22,3,218,3,104,4,187,4,25,5,125,5,180,5,193,5,185,5,183,5,200,5,202,5,187,5,198,5,232,5, +15,6,59,6,92,6,110,6,117,6,111,6,106,6,108,6,109,6,124,6,151,6,173,6,192,6,204,6,208,6,235,6, +15,7,4,7,181,6,49,6,133,5,180,4,201,3,209,2,230,1,42,1,147,0,2,0,136,255,50,255,241,254,194,254, +163,254,148,254,147,254,148,254,173,254,241,254,59,255,129,255,216,255,61,0,168,0,22,1,141,1,4,2,89,2,139,2, +168,2,146,2,87,2,15,2,160,1,20,1,144,0,7,0,133,255,43,255,228,254,161,254,134,254,155,254,189,254,214,254, +224,254,233,254,250,254,246,254,211,254,177,254,156,254,145,254,151,254,179,254,233,254,43,255,109,255,184,255,249,255,49,0, +124,0,192,0,239,0,17,1,30,1,44,1,74,1,102,1,135,1,183,1,244,1,65,2,145,2,233,2,69,3,124,3, +149,3,177,3,177,3,132,3,81,3,41,3,245,2,166,2,60,2,182,1,43,1,177,0,55,0,197,255,113,255,39,255, +231,254,199,254,184,254,166,254,138,254,103,254,65,254,5,254,192,253,130,253,51,253,198,252,48,252,113,251,200,250,71,250, +194,249,62,249,224,248,168,248,141,248,154,248,228,248,101,249,14,250,228,250,201,251,166,252,143,253,125,254,71,255,228,255, +96,0,191,0,250,0,15,1,15,1,8,1,242,0,211,0,204,0,213,0,211,0,222,0,15,1,71,1,127,1,186,1, +231,1,36,2,146,2,9,3,111,3,224,3,89,4,206,4,83,5,223,5,100,6,228,6,70,7,145,7,208,7,215,7, +165,7,91,7,240,6,126,6,21,6,145,5,17,5,181,4,98,4,40,4,11,4,4,4,26,4,54,4,81,4,124,4, +160,4,176,4,160,4,97,4,32,4,249,3,212,3,179,3,160,3,159,3,161,3,153,3,149,3,133,3,86,3,52,3, +36,3,11,3,252,2,248,2,238,2,231,2,228,2,218,2,183,2,121,2,47,2,213,1,97,1,223,0,94,0,225,255, +103,255,5,255,212,254,208,254,251,254,88,255,222,255,134,0,74,1,14,2,195,2,112,3,28,4,177,4,29,5,112,5, +161,5,180,5,192,5,161,5,71,5,212,4,83,4,210,3,84,3,193,2,42,2,144,1,219,0,28,0,86,255,130,254, +184,253,243,252,45,252,113,251,169,250,203,249,0,249,99,248,208,247,58,247,207,246,142,246,83,246,50,246,39,246,20,246, +13,246,29,246,58,246,105,246,157,246,204,246,245,246,27,247,64,247,90,247,112,247,136,247,124,247,82,247,55,247,40,247, +31,247,43,247,65,247,96,247,126,247,143,247,182,247,243,247,16,248,20,248,43,248,72,248,89,248,106,248,128,248,180,248, +6,249,85,249,181,249,51,250,161,250,15,251,167,251,71,252,222,252,118,253,245,253,105,254,229,254,59,255,96,255,113,255, +101,255,63,255,24,255,250,254,238,254,252,254,16,255,16,255,2,255,237,254,200,254,154,254,105,254,42,254,235,253,182,253, +138,253,143,253,209,253,24,254,87,254,181,254,45,255,188,255,112,0,46,1,221,1,141,2,69,3,241,3,136,4,254,4, +90,5,169,5,219,5,233,5,237,5,226,5,188,5,131,5,36,5,161,4,55,4,226,3,112,3,227,2,82,2,195,1, +62,1,200,0,107,0,35,0,200,255,91,255,26,255,22,255,41,255,81,255,164,255,13,0,111,0,219,0,98,1,10,2, +207,2,139,3,45,4,213,4,138,5,54,6,219,6,107,7,210,7,30,8,90,8,122,8,128,8,102,8,48,8,253,7, +204,7,123,7,22,7,182,6,100,6,44,6,3,6,215,5,197,5,213,5,230,5,230,5,213,5,191,5,189,5,196,5, +171,5,91,5,242,4,143,4,52,4,228,3,157,3,87,3,38,3,253,2,182,2,110,2,62,2,21,2,239,1,214,1, +201,1,184,1,147,1,107,1,61,1,250,0,186,0,148,0,130,0,91,0,254,255,156,255,86,255,14,255,211,254,167,254, +100,254,19,254,200,253,125,253,70,253,36,253,6,253,239,252,225,252,219,252,222,252,229,252,243,252,11,253,33,253,42,253, +46,253,41,253,14,253,238,252,198,252,106,252,236,251,109,251,208,250,38,250,160,249,46,249,186,248,90,248,32,248,5,248, +1,248,20,248,50,248,69,248,96,248,163,248,238,248,25,249,63,249,128,249,220,249,77,250,205,250,94,251,247,251,142,252, +53,253,10,254,255,254,235,255,205,0,180,1,148,2,90,3,22,4,213,4,124,5,252,5,93,6,156,6,178,6,156,6, +104,6,39,6,195,5,50,5,149,4,235,3,42,3,111,2,198,1,40,1,145,0,250,255,83,255,180,254,61,254,191,253, +10,253,85,252,196,251,56,251,161,250,4,250,135,249,67,249,252,248,180,248,161,248,158,248,153,248,188,248,5,249,110,249, +245,249,148,250,86,251,41,252,241,252,179,253,115,254,33,255,169,255,25,0,138,0,219,0,7,1,53,1,83,1,80,1, +69,1,61,1,88,1,154,1,209,1,250,1,39,2,74,2,89,2,90,2,84,2,64,2,17,2,209,1,150,1,96,1, +20,1,176,0,86,0,251,255,131,255,10,255,151,254,23,254,135,253,243,252,99,252,216,251,80,251,226,250,152,250,108,250, +100,250,120,250,165,250,225,250,35,251,123,251,222,251,50,252,141,252,250,252,119,253,13,254,176,254,84,255,252,255,160,0, +52,1,175,1,13,2,104,2,189,2,254,2,43,3,79,3,106,3,113,3,99,3,86,3,78,3,89,3,126,3,144,3, +129,3,114,3,128,3,168,3,190,3,180,3,191,3,230,3,7,4,27,4,43,4,70,4,110,4,124,4,102,4,67,4, +19,4,208,3,150,3,108,3,52,3,236,2,203,2,211,2,211,2,217,2,247,2,19,3,70,3,161,3,236,3,34,4, +123,4,243,4,107,5,233,5,117,6,15,7,175,7,86,8,13,9,186,9,75,10,219,10,102,11,188,11,222,11,249,11, +19,12,22,12,6,12,244,11,224,11,206,11,193,11,169,11,120,11,34,11,178,10,41,10,109,9,133,8,159,7,197,6, +233,5,3,5,48,4,134,3,225,2,44,2,131,1,241,0,136,0,70,0,4,0,199,255,148,255,111,255,125,255,164,255, +186,255,230,255,32,0,85,0,171,0,6,1,62,1,125,1,210,1,17,2,44,2,63,2,86,2,95,2,100,2,101,2, +67,2,31,2,20,2,251,1,200,1,156,1,111,1,61,1,24,1,251,0,212,0,175,0,137,0,71,0,247,255,161,255, +52,255,200,254,101,254,212,253,15,253,84,252,187,251,35,251,111,250,180,249,23,249,158,248,52,248,187,247,43,247,163,246, +63,246,237,245,150,245,71,245,1,245,183,244,140,244,127,244,94,244,66,244,61,244,32,244,244,243,217,243,195,243,172,243, +150,243,120,243,69,243,9,243,226,242,190,242,155,242,156,242,177,242,195,242,224,242,237,242,216,242,205,242,225,242,6,243, +42,243,79,243,131,243,198,243,25,244,132,244,248,244,99,245,197,245,36,246,129,246,205,246,15,247,91,247,157,247,204,247, +254,247,36,248,38,248,29,248,32,248,40,248,51,248,61,248,58,248,53,248,46,248,25,248,25,248,59,248,106,248,179,248, +23,249,139,249,32,250,191,250,80,251,241,251,163,252,93,253,35,254,216,254,133,255,77,0,40,1,7,2,228,2,183,3, +136,4,93,5,58,6,8,7,162,7,26,8,122,8,170,8,183,8,170,8,109,8,9,8,140,7,11,7,160,6,52,6, +180,5,61,5,231,4,178,4,138,4,96,4,83,4,132,4,225,4,73,5,194,5,82,6,223,6,96,7,242,7,145,8, +22,9,129,9,216,9,34,10,110,10,169,10,196,10,222,10,243,10,0,11,42,11,90,11,117,11,153,11,197,11,244,11, +49,12,101,12,153,12,224,12,25,13,67,13,101,13,103,13,93,13,81,13,20,13,166,12,34,12,148,11,7,11,121,10, +232,9,87,9,199,8,71,8,224,7,139,7,71,7,21,7,254,6,244,6,217,6,182,6,156,6,122,6,81,6,26,6, +192,5,74,5,204,4,82,4,215,3,65,3,161,2,34,2,194,1,109,1,21,1,180,0,101,0,45,0,228,255,142,255, +63,255,245,254,198,254,170,254,120,254,72,254,31,254,216,253,133,253,85,253,71,253,66,253,41,253,1,253,208,252,123,252, +36,252,246,251,199,251,120,251,24,251,173,250,75,250,5,250,194,249,118,249,40,249,229,248,174,248,99,248,255,247,164,247, +92,247,29,247,218,246,155,246,130,246,140,246,138,246,125,246,122,246,135,246,162,246,196,246,227,246,0,247,27,247,59,247, +99,247,146,247,192,247,237,247,34,248,93,248,156,248,247,248,99,249,201,249,65,250,191,250,46,251,167,251,20,252,92,252, +157,252,214,252,4,253,62,253,117,253,170,253,227,253,4,254,25,254,46,254,35,254,254,253,226,253,200,253,158,253,112,253, +76,253,50,253,43,253,53,253,39,253,16,253,12,253,6,253,2,253,6,253,2,253,12,253,39,253,54,253,81,253,131,253, +190,253,252,253,66,254,161,254,0,255,59,255,126,255,212,255,19,0,72,0,130,0,184,0,1,1,87,1,160,1,231,1, +63,2,145,2,198,2,242,2,33,3,73,3,100,3,106,3,124,3,179,3,225,3,248,3,16,4,23,4,27,4,39,4, +36,4,38,4,34,4,245,3,201,3,168,3,124,3,83,3,44,3,11,3,253,2,240,2,229,2,235,2,0,3,23,3, +19,3,248,2,235,2,228,2,230,2,251,2,247,2,210,2,194,2,204,2,198,2,176,2,162,2,152,2,155,2,153,2, +106,2,48,2,250,1,152,1,26,1,153,0,15,0,147,255,35,255,185,254,104,254,21,254,189,253,126,253,73,253,18,253, +221,252,166,252,109,252,32,252,187,251,99,251,33,251,225,250,149,250,73,250,4,250,193,249,154,249,148,249,148,249,177,249, +228,249,10,250,59,250,120,250,157,250,188,250,225,250,250,250,7,251,7,251,13,251,32,251,51,251,82,251,123,251,165,251, +234,251,74,252,182,252,60,253,204,253,75,254,198,254,76,255,193,255,54,0,215,0,133,1,36,2,215,2,145,3,63,4, +242,4,158,5,50,6,178,6,52,7,199,7,52,8,112,8,171,8,212,8,222,8,229,8,205,8,157,8,118,8,76,8, +29,8,220,7,113,7,9,7,173,6,75,6,238,5,153,5,94,5,77,5,62,5,41,5,35,5,44,5,54,5,63,5, +76,5,95,5,117,5,159,5,220,5,4,6,33,6,86,6,140,6,172,6,190,6,185,6,166,6,149,6,117,6,63,6, +249,5,163,5,82,5,18,5,199,4,111,4,34,4,231,3,191,3,155,3,123,3,108,3,87,3,53,3,4,3,172,2, +64,2,226,1,136,1,47,1,218,0,136,0,70,0,9,0,203,255,160,255,127,255,89,255,57,255,22,255,240,254,217,254, +202,254,183,254,164,254,135,254,91,254,56,254,24,254,236,253,199,253,161,253,87,253,1,253,188,252,114,252,26,252,217,251, +177,251,119,251,57,251,23,251,247,250,213,250,204,250,196,250,183,250,198,250,220,250,220,250,216,250,214,250,201,250,171,250, +126,250,81,250,66,250,81,250,91,250,76,250,42,250,9,250,6,250,21,250,14,250,247,249,228,249,222,249,231,249,236,249, +227,249,203,249,157,249,116,249,92,249,72,249,68,249,72,249,73,249,90,249,100,249,90,249,96,249,123,249,166,249,239,249, +57,250,113,250,172,250,254,250,97,251,194,251,53,252,206,252,96,253,213,253,76,254,192,254,28,255,96,255,135,255,141,255, +122,255,82,255,33,255,233,254,170,254,121,254,98,254,92,254,110,254,156,254,211,254,249,254,15,255,44,255,81,255,94,255, +79,255,50,255,6,255,204,254,138,254,73,254,29,254,251,253,209,253,202,253,4,254,82,254,127,254,149,254,188,254,239,254, +27,255,80,255,138,255,179,255,227,255,59,0,171,0,31,1,156,1,46,2,200,2,90,3,226,3,96,4,201,4,29,5, +84,5,83,5,32,5,231,4,170,4,93,4,37,4,4,4,233,3,225,3,228,3,238,3,6,4,7,4,238,3,216,3, +169,3,109,3,65,3,21,3,224,2,154,2,76,2,33,2,17,2,2,2,5,2,29,2,84,2,180,2,15,3,88,3, +158,3,231,3,60,4,128,4,165,4,208,4,6,5,74,5,164,5,253,5,73,6,146,6,205,6,235,6,234,6,215,6, +196,6,174,6,126,6,44,6,204,5,115,5,38,5,228,4,175,4,135,4,108,4,83,4,69,4,83,4,111,4,148,4, +205,4,16,5,81,5,151,5,250,5,110,6,205,6,30,7,113,7,185,7,6,8,81,8,124,8,133,8,118,8,98,8, +100,8,102,8,82,8,47,8,4,8,220,7,183,7,135,7,85,7,58,7,48,7,26,7,249,6,213,6,150,6,76,6, +22,6,210,5,126,5,61,5,244,4,150,4,73,4,251,3,154,3,53,3,194,2,79,2,248,1,167,1,79,1,236,0, +94,0,175,255,19,255,147,254,30,254,174,253,60,253,218,252,137,252,40,252,180,251,74,251,240,250,138,250,255,249,102,249, +228,248,94,248,191,247,25,247,112,246,195,245,31,245,149,244,33,244,184,243,107,243,64,243,30,243,13,243,10,243,243,242, +201,242,168,242,163,242,168,242,157,242,142,242,134,242,117,242,99,242,96,242,102,242,111,242,125,242,151,242,180,242,197,242, +217,242,224,242,213,242,217,242,229,242,232,242,232,242,232,242,240,242,2,243,22,243,63,243,116,243,179,243,24,244,135,244, +253,244,167,245,118,246,71,247,23,248,233,248,178,249,92,250,243,250,147,251,49,252,207,252,104,253,230,253,98,254,227,254, +74,255,160,255,253,255,90,0,176,0,254,0,68,1,136,1,207,1,8,2,43,2,60,2,69,2,90,2,119,2,141,2, +168,2,191,2,189,2,218,2,11,3,19,3,42,3,111,3,186,3,26,4,124,4,198,4,43,5,157,5,4,6,122,6, +246,6,125,7,36,8,201,8,65,9,128,9,165,9,200,9,198,9,178,9,192,9,211,9,205,9,201,9,201,9,197,9, +192,9,190,9,184,9,180,9,190,9,200,9,202,9,215,9,242,9,16,10,36,10,38,10,36,10,22,10,237,9,206,9, +200,9,196,9,183,9,142,9,74,9,0,9,177,8,106,8,40,8,205,7,100,7,8,7,175,6,84,6,3,6,189,5, +124,5,67,5,14,5,229,4,230,4,14,5,51,5,82,5,126,5,160,5,168,5,153,5,115,5,59,5,0,5,180,4, +63,4,179,3,43,3,166,2,32,2,145,1,1,1,139,0,48,0,210,255,102,255,247,254,161,254,86,254,231,253,95,253, +229,252,120,252,29,252,210,251,151,251,109,251,61,251,12,251,255,250,250,250,231,250,231,250,3,251,46,251,90,251,125,251, +151,251,166,251,179,251,200,251,215,251,215,251,212,251,206,251,196,251,182,251,159,251,138,251,122,251,98,251,80,251,73,251, +55,251,30,251,22,251,12,251,225,250,159,250,102,250,62,250,32,250,14,250,6,250,8,250,30,250,63,250,85,250,107,250, +144,250,170,250,180,250,185,250,164,250,113,250,57,250,247,249,150,249,43,249,223,248,155,248,61,248,229,247,165,247,94,247, +16,247,198,246,129,246,89,246,64,246,35,246,28,246,28,246,16,246,18,246,35,246,43,246,46,246,70,246,125,246,187,246, +248,246,77,247,175,247,29,248,184,248,102,249,254,249,147,250,58,251,244,251,169,252,71,253,240,253,180,254,106,255,238,255, +81,0,189,0,50,1,122,1,151,1,191,1,236,1,16,2,78,2,147,2,175,2,191,2,235,2,22,3,56,3,109,3, +174,3,239,3,49,4,107,4,147,4,162,4,165,4,177,4,191,4,191,4,200,4,227,4,249,4,243,4,217,4,201,4, +196,4,177,4,162,4,173,4,197,4,228,4,3,5,17,5,11,5,244,4,222,4,203,4,158,4,104,4,73,4,55,4, +47,4,59,4,85,4,123,4,183,4,4,5,74,5,133,5,194,5,15,6,101,6,171,6,224,6,30,7,92,7,133,7, +172,7,216,7,245,7,248,7,240,7,236,7,208,7,131,7,53,7,4,7,200,6,105,6,227,5,62,5,150,4,234,3, +52,3,137,2,240,1,114,1,12,1,156,0,56,0,22,0,33,0,53,0,87,0,139,0,214,0,64,1,179,1,27,2, +128,2,223,2,46,3,109,3,149,3,151,3,120,3,86,3,59,3,24,3,232,2,173,2,107,2,48,2,249,1,181,1, +121,1,81,1,27,1,204,0,120,0,43,0,219,255,110,255,231,254,95,254,215,253,94,253,241,252,102,252,216,251,123,251, +30,251,175,250,89,250,254,249,137,249,42,249,218,248,129,248,47,248,217,247,122,247,36,247,228,246,187,246,146,246,117,246, +139,246,199,246,7,247,79,247,149,247,219,247,49,248,143,248,238,248,58,249,113,249,188,249,40,250,154,250,22,251,159,251, +49,252,194,252,74,253,225,253,153,254,102,255,44,0,209,0,106,1,253,1,98,2,165,2,233,2,28,3,63,3,94,3, +114,3,125,3,128,3,132,3,154,3,176,3,181,3,178,3,188,3,220,3,239,3,226,3,206,3,187,3,173,3,150,3, +110,3,95,3,119,3,139,3,140,3,128,3,127,3,156,3,180,3,185,3,204,3,225,3,230,3,235,3,247,3,3,4, +20,4,57,4,125,4,218,4,56,5,150,5,14,6,149,6,9,7,109,7,194,7,244,7,9,8,23,8,48,8,80,8, +110,8,140,8,147,8,121,8,82,8,11,8,165,7,68,7,198,6,26,6,92,5,141,4,194,3,249,2,19,2,44,1, +72,0,104,255,186,254,46,254,170,253,71,253,5,253,216,252,184,252,146,252,106,252,63,252,254,251,178,251,111,251,50,251, +235,250,156,250,74,250,228,249,137,249,100,249,91,249,90,249,103,249,111,249,119,249,136,249,137,249,114,249,85,249,67,249, +65,249,81,249,130,249,207,249,23,250,88,250,154,250,229,250,64,251,154,251,218,251,6,252,34,252,31,252,251,251,211,251, +162,251,79,251,250,250,177,250,111,250,74,250,39,250,246,249,217,249,202,249,193,249,193,249,167,249,144,249,158,249,159,249, +138,249,159,249,223,249,18,250,54,250,112,250,175,250,237,250,57,251,121,251,162,251,201,251,245,251,37,252,75,252,102,252, +157,252,242,252,74,253,163,253,8,254,155,254,74,255,211,255,74,0,219,0,105,1,221,1,57,2,122,2,170,2,216,2, +14,3,64,3,97,3,113,3,107,3,97,3,96,3,93,3,95,3,119,3,144,3,148,3,138,3,130,3,112,3,69,3, +27,3,238,2,180,2,135,2,105,2,74,2,49,2,20,2,3,2,27,2,62,2,86,2,113,2,165,2,235,2,47,3, +128,3,219,3,38,4,121,4,208,4,12,5,70,5,138,5,202,5,253,5,16,6,33,6,74,6,100,6,120,6,149,6, +165,6,176,6,175,6,163,6,153,6,131,6,105,6,102,6,116,6,141,6,167,6,201,6,250,6,21,7,24,7,29,7, +12,7,230,6,203,6,176,6,126,6,60,6,13,6,242,5,189,5,104,5,18,5,195,4,109,4,4,4,138,3,2,3, +111,2,221,1,60,1,130,0,213,255,74,255,211,254,109,254,10,254,183,253,144,253,139,253,145,253,150,253,157,253,179,253, +216,253,17,254,89,254,148,254,197,254,255,254,50,255,87,255,119,255,140,255,133,255,103,255,62,255,255,254,161,254,48,254, +171,253,15,253,114,252,237,251,113,251,241,250,119,250,12,250,185,249,153,249,137,249,98,249,62,249,42,249,26,249,15,249, +244,248,205,248,199,248,216,248,209,248,191,248,191,248,210,248,244,248,36,249,68,249,85,249,124,249,176,249,226,249,19,250, +38,250,22,250,9,250,252,249,227,249,201,249,177,249,163,249,154,249,142,249,146,249,166,249,177,249,180,249,171,249,139,249, +118,249,133,249,144,249,130,249,126,249,152,249,205,249,26,250,117,250,214,250,55,251,160,251,42,252,185,252,47,253,159,253, +244,253,33,254,76,254,109,254,124,254,149,254,184,254,202,254,190,254,179,254,200,254,207,254,182,254,166,254,148,254,139,254, +164,254,187,254,202,254,216,254,227,254,2,255,53,255,117,255,209,255,56,0,172,0,65,1,220,1,126,2,53,3,238,3, +146,4,37,5,188,5,72,6,167,6,248,6,74,7,135,7,202,7,11,8,48,8,95,8,147,8,163,8,165,8,166,8, +136,8,79,8,23,8,226,7,162,7,94,7,34,7,252,6,242,6,238,6,241,6,16,7,54,7,89,7,129,7,156,7, +179,7,205,7,211,7,214,7,218,7,201,7,196,7,211,7,205,7,195,7,195,7,179,7,148,7,116,7,71,7,11,7, +195,6,115,6,29,6,188,5,68,5,181,4,41,4,168,3,37,3,173,2,82,2,19,2,233,1,188,1,128,1,88,1, +73,1,57,1,39,1,23,1,10,1,5,1,247,0,215,0,171,0,118,0,78,0,50,0,242,255,154,255,98,255,70,255, +47,255,23,255,242,254,191,254,130,254,60,254,242,253,166,253,100,253,45,253,238,252,164,252,86,252,11,252,219,251,192,251, +158,251,125,251,103,251,86,251,81,251,88,251,96,251,97,251,92,251,75,251,39,251,2,251,248,250,254,250,0,251,7,251, +30,251,62,251,93,251,126,251,157,251,174,251,188,251,221,251,6,252,38,252,49,252,35,252,20,252,29,252,32,252,1,252, +220,251,197,251,178,251,176,251,177,251,151,251,131,251,146,251,163,251,184,251,235,251,31,252,69,252,118,252,177,252,218,252, +230,252,224,252,209,252,186,252,171,252,180,252,189,252,168,252,145,252,151,252,171,252,196,252,229,252,247,252,244,252,247,252, +9,253,44,253,94,253,147,253,204,253,20,254,98,254,192,254,59,255,195,255,73,0,208,0,70,1,155,1,221,1,17,2, +38,2,34,2,28,2,24,2,15,2,11,2,14,2,12,2,254,1,242,1,246,1,4,2,20,2,55,2,103,2,139,2, +188,2,3,3,68,3,130,3,216,3,53,4,123,4,175,4,212,4,232,4,244,4,248,4,235,4,209,4,174,4,131,4, +81,4,26,4,217,3,133,3,45,3,228,2,138,2,22,2,204,1,183,1,148,1,100,1,71,1,59,1,65,1,79,1, +77,1,73,1,91,1,115,1,125,1,135,1,173,1,203,1,193,1,170,1,146,1,134,1,154,1,165,1,150,1,146,1, +129,1,76,1,29,1,226,0,118,0,6,0,190,255,132,255,67,255,13,255,242,254,238,254,252,254,21,255,58,255,102,255, +149,255,202,255,248,255,12,0,23,0,29,0,16,0,245,255,208,255,173,255,152,255,125,255,77,255,29,255,252,254,221,254, +179,254,141,254,119,254,94,254,58,254,35,254,19,254,246,253,224,253,234,253,11,254,60,254,121,254,184,254,250,254,57,255, +115,255,187,255,4,0,48,0,69,0,61,0,22,0,238,255,208,255,183,255,172,255,147,255,105,255,82,255,75,255,59,255, +33,255,11,255,4,255,252,254,237,254,234,254,241,254,252,254,27,255,72,255,114,255,164,255,219,255,4,0,33,0,59,0, +72,0,74,0,72,0,53,0,38,0,43,0,24,0,248,255,242,255,236,255,220,255,216,255,225,255,228,255,189,255,120,255, +86,255,91,255,95,255,84,255,50,255,11,255,236,254,198,254,153,254,112,254,90,254,96,254,106,254,113,254,153,254,230,254, +56,255,120,255,158,255,174,255,186,255,204,255,212,255,203,255,198,255,205,255,208,255,192,255,158,255,129,255,105,255,67,255, +34,255,15,255,238,254,191,254,141,254,96,254,69,254,59,254,61,254,69,254,68,254,61,254,64,254,55,254,31,254,12,254, +246,253,218,253,201,253,187,253,168,253,159,253,155,253,149,253,153,253,166,253,189,253,226,253,10,254,55,254,102,254,123,254, +132,254,156,254,177,254,176,254,172,254,187,254,206,254,211,254,221,254,241,254,15,255,75,255,145,255,199,255,244,255,21,0, +43,0,66,0,82,0,102,0,120,0,117,0,119,0,132,0,140,0,145,0,143,0,153,0,193,0,224,0,219,0,209,0, +222,0,250,0,25,1,66,1,113,1,144,1,182,1,239,1,30,2,73,2,134,2,201,2,2,3,30,3,39,3,57,3, +78,3,100,3,127,3,142,3,168,3,229,3,42,4,111,4,187,4,2,5,61,5,116,5,176,5,236,5,17,6,16,6, +240,5,199,5,151,5,92,5,26,5,221,4,184,4,179,4,177,4,161,4,137,4,103,4,59,4,248,3,141,3,26,3, +190,2,112,2,32,2,205,1,127,1,79,1,55,1,34,1,20,1,29,1,52,1,69,1,75,1,70,1,51,1,15,1, +216,0,152,0,95,0,43,0,228,255,140,255,69,255,17,255,201,254,96,254,242,253,150,253,84,253,22,253,209,252,142,252, +71,252,250,251,199,251,162,251,120,251,88,251,58,251,17,251,246,250,238,250,223,250,202,250,208,250,239,250,1,251,11,251, +38,251,70,251,117,251,193,251,9,252,62,252,108,252,138,252,166,252,202,252,240,252,34,253,67,253,70,253,87,253,111,253, +108,253,97,253,75,253,45,253,47,253,65,253,66,253,59,253,53,253,60,253,83,253,89,253,82,253,94,253,120,253,161,253, +225,253,33,254,98,254,195,254,37,255,107,255,189,255,48,0,171,0,22,1,117,1,197,1,251,1,20,2,31,2,30,2, +4,2,217,1,180,1,158,1,140,1,110,1,76,1,68,1,84,1,87,1,55,1,250,0,182,0,135,0,116,0,104,0, +88,0,88,0,111,0,140,0,166,0,181,0,197,0,246,0,54,1,95,1,135,1,182,1,213,1,241,1,16,2,30,2, +52,2,105,2,158,2,199,2,236,2,248,2,241,2,248,2,7,3,254,2,209,2,154,2,117,2,77,2,20,2,233,1, +202,1,171,1,161,1,151,1,131,1,146,1,178,1,189,1,187,1,173,1,164,1,183,1,205,1,211,1,209,1,206,1, +215,1,239,1,255,1,247,1,211,1,163,1,117,1,72,1,26,1,235,0,199,0,186,0,180,0,169,0,158,0,145,0, +136,0,123,0,98,0,94,0,121,0,135,0,133,0,146,0,175,0,213,0,247,0,5,1,6,1,6,1,254,0,252,0, +10,1,18,1,18,1,26,1,25,1,10,1,238,0,205,0,167,0,103,0,30,0,233,255,173,255,122,255,115,255,112,255, +89,255,71,255,63,255,56,255,31,255,245,254,211,254,182,254,142,254,94,254,23,254,197,253,147,253,131,253,120,253,103,253, +86,253,82,253,85,253,101,253,132,253,158,253,191,253,241,253,10,254,9,254,43,254,106,254,142,254,169,254,218,254,251,254, +9,255,42,255,75,255,78,255,70,255,72,255,77,255,70,255,51,255,30,255,255,254,221,254,203,254,191,254,174,254,157,254, +151,254,150,254,140,254,130,254,138,254,138,254,118,254,103,254,99,254,89,254,74,254,68,254,71,254,69,254,64,254,73,254, +95,254,115,254,130,254,158,254,184,254,181,254,177,254,186,254,185,254,178,254,160,254,123,254,84,254,49,254,37,254,59,254, +81,254,87,254,87,254,85,254,91,254,86,254,72,254,96,254,153,254,211,254,6,255,45,255,92,255,162,255,230,255,44,0, +120,0,182,0,235,0,40,1,107,1,148,1,157,1,181,1,202,1,188,1,173,1,160,1,131,1,99,1,66,1,29,1, +242,0,197,0,175,0,155,0,112,0,83,0,72,0,62,0,70,0,94,0,138,0,207,0,15,1,84,1,166,1,237,1, +62,2,171,2,26,3,111,3,161,3,208,3,19,4,73,4,96,4,114,4,132,4,140,4,139,4,119,4,74,4,20,4, +231,3,202,3,189,3,173,3,153,3,140,3,126,3,100,3,50,3,238,2,179,2,116,2,17,2,174,1,87,1,241,0, +156,0,109,0,54,0,243,255,192,255,162,255,144,255,129,255,122,255,128,255,138,255,137,255,111,255,78,255,62,255,45,255, +6,255,208,254,146,254,94,254,43,254,227,253,147,253,64,253,236,252,162,252,79,252,248,251,190,251,145,251,110,251,97,251, +93,251,99,251,121,251,134,251,145,251,165,251,181,251,203,251,240,251,24,252,64,252,107,252,152,252,194,252,229,252,14,253, +62,253,94,253,112,253,128,253,137,253,160,253,212,253,6,254,35,254,65,254,115,254,171,254,205,254,217,254,227,254,236,254, +241,254,246,254,250,254,253,254,6,255,23,255,48,255,78,255,118,255,166,255,221,255,30,0,105,0,189,0,17,1,92,1, +169,1,250,1,55,2,95,2,124,2,144,2,161,2,168,2,164,2,149,2,119,2,91,2,66,2,30,2,3,2,254,1, +247,1,242,1,12,2,68,2,121,2,147,2,178,2,233,2,26,3,61,3,89,3,107,3,122,3,128,3,126,3,126,3, +107,3,70,3,50,3,35,3,250,2,185,2,116,2,56,2,251,1,184,1,131,1,90,1,36,1,236,0,188,0,148,0, +117,0,79,0,31,0,245,255,193,255,128,255,73,255,26,255,248,254,238,254,223,254,204,254,202,254,205,254,216,254,241,254, +3,255,19,255,48,255,69,255,76,255,80,255,85,255,101,255,114,255,112,255,122,255,134,255,130,255,131,255,133,255,132,255, +155,255,187,255,205,255,228,255,244,255,241,255,247,255,6,0,19,0,32,0,23,0,9,0,16,0,18,0,4,0,233,255, +175,255,103,255,59,255,40,255,16,255,233,254,189,254,151,254,123,254,107,254,88,254,56,254,26,254,5,254,242,253,226,253, +215,253,198,253,171,253,165,253,187,253,207,253,217,253,239,253,24,254,81,254,126,254,148,254,173,254,208,254,252,254,48,255, +81,255,114,255,176,255,240,255,35,0,71,0,81,0,90,0,96,0,86,0,79,0,82,0,90,0,108,0,130,0,160,0, +177,0,163,0,169,0,206,0,231,0,236,0,227,0,215,0,213,0,198,0,182,0,183,0,172,0,150,0,137,0,113,0, +89,0,93,0,112,0,123,0,128,0,141,0,146,0,121,0,92,0,85,0,76,0,70,0,86,0,99,0,103,0,108,0, +93,0,74,0,79,0,62,0,26,0,22,0,18,0,242,255,217,255,196,255,165,255,126,255,66,255,3,255,205,254,131,254, +61,254,19,254,228,253,186,253,179,253,184,253,195,253,222,253,1,254,56,254,138,254,223,254,49,255,108,255,130,255,159,255, +197,255,206,255,212,255,232,255,233,255,221,255,227,255,250,255,24,0,45,0,40,0,25,0,22,0,25,0,25,0,25,0, +18,0,9,0,7,0,251,255,218,255,194,255,174,255,145,255,134,255,162,255,217,255,32,0,115,0,200,0,19,1,83,1, +153,1,229,1,55,2,139,2,227,2,63,3,133,3,176,3,230,3,25,4,46,4,67,4,93,4,96,4,62,4,0,4, +211,3,194,3,159,3,100,3,39,3,242,2,205,2,179,2,150,2,110,2,73,2,61,2,57,2,47,2,40,2,34,2, +46,2,87,2,133,2,177,2,216,2,241,2,10,3,27,3,31,3,47,3,72,3,95,3,114,3,105,3,71,3,33,3, +245,2,191,2,133,2,74,2,6,2,180,1,105,1,43,1,244,0,207,0,177,0,146,0,131,0,111,0,84,0,87,0, +111,0,128,0,132,0,116,0,88,0,69,0,46,0,9,0,223,255,185,255,146,255,107,255,71,255,36,255,254,254,217,254, +175,254,125,254,87,254,58,254,29,254,14,254,10,254,250,253,242,253,8,254,34,254,54,254,90,254,134,254,161,254,165,254, +163,254,176,254,194,254,208,254,206,254,172,254,130,254,100,254,49,254,226,253,120,253,245,252,125,252,15,252,133,251,247,250, +130,250,45,250,248,249,187,249,100,249,32,249,244,248,194,248,143,248,106,248,83,248,69,248,64,248,70,248,96,248,146,248, +205,248,9,249,72,249,124,249,167,249,223,249,47,250,136,250,214,250,26,251,97,251,170,251,218,251,245,251,17,252,35,252, +28,252,3,252,225,251,192,251,169,251,154,251,145,251,137,251,137,251,156,251,187,251,231,251,36,252,100,252,176,252,19,253, +121,253,214,253,60,254,188,254,54,255,138,255,221,255,66,0,155,0,237,0,52,1,92,1,113,1,127,1,136,1,159,1, +189,1,220,1,255,1,31,2,63,2,92,2,102,2,94,2,85,2,76,2,53,2,14,2,255,1,9,2,10,2,15,2, +43,2,91,2,155,2,221,2,27,3,86,3,139,3,205,3,34,4,110,4,189,4,31,5,129,5,204,5,11,6,77,6, +134,6,181,6,231,6,251,6,237,6,237,6,241,6,227,6,205,6,168,6,123,6,97,6,71,6,36,6,251,5,206,5, +172,5,126,5,47,5,218,4,126,4,15,4,178,3,113,3,52,3,7,3,237,2,195,2,144,2,112,2,97,2,90,2, +83,2,59,2,34,2,25,2,27,2,37,2,37,2,21,2,9,2,252,1,230,1,213,1,187,1,146,1,115,1,95,1, +72,1,47,1,17,1,238,0,207,0,183,0,155,0,118,0,98,0,105,0,105,0,91,0,92,0,113,0,141,0,160,0, +162,0,155,0,161,0,171,0,158,0,122,0,81,0,37,0,243,255,186,255,114,255,38,255,231,254,179,254,133,254,100,254, +58,254,252,253,200,253,163,253,116,253,71,253,40,253,6,253,229,252,211,252,200,252,192,252,200,252,219,252,237,252,7,253, +40,253,66,253,94,253,128,253,163,253,211,253,17,254,77,254,140,254,204,254,3,255,49,255,82,255,109,255,120,255,110,255, +97,255,81,255,38,255,241,254,196,254,148,254,105,254,81,254,60,254,25,254,238,253,212,253,197,253,159,253,105,253,71,253, +48,253,20,253,255,252,237,252,215,252,207,252,187,252,140,252,122,252,139,252,154,252,173,252,196,252,208,252,221,252,236,252, +246,252,0,253,12,253,29,253,38,253,20,253,255,252,251,252,243,252,229,252,213,252,177,252,125,252,94,252,98,252,105,252, +102,252,106,252,130,252,169,252,207,252,241,252,33,253,94,253,160,253,228,253,35,254,94,254,155,254,209,254,5,255,65,255, +133,255,225,255,83,0,188,0,22,1,112,1,193,1,254,1,53,2,105,2,140,2,164,2,194,2,218,2,224,2,229,2, +248,2,21,3,41,3,40,3,22,3,10,3,11,3,7,3,251,2,244,2,243,2,251,2,255,2,250,2,10,3,51,3, +99,3,166,3,251,3,75,4,146,4,208,4,15,5,78,5,136,5,197,5,255,5,38,6,67,6,93,6,117,6,143,6, +162,6,167,6,155,6,136,6,118,6,87,6,26,6,199,5,108,5,15,5,179,4,76,4,220,3,115,3,27,3,216,2, +168,2,121,2,55,2,255,1,234,1,205,1,159,1,125,1,82,1,27,1,1,1,243,0,218,0,189,0,153,0,113,0, +84,0,70,0,58,0,33,0,4,0,232,255,192,255,143,255,94,255,45,255,1,255,204,254,126,254,47,254,237,253,169,253, +98,253,33,253,245,252,212,252,158,252,97,252,71,252,74,252,76,252,66,252,39,252,7,252,249,251,252,251,255,251,254,251, +5,252,28,252,54,252,77,252,94,252,101,252,103,252,102,252,85,252,61,252,47,252,52,252,76,252,101,252,129,252,171,252, +219,252,31,253,116,253,172,253,209,253,252,253,35,254,83,254,147,254,203,254,1,255,50,255,86,255,122,255,147,255,170,255, +218,255,9,0,27,0,23,0,19,0,16,0,250,255,211,255,159,255,88,255,31,255,3,255,211,254,151,254,126,254,130,254, +142,254,150,254,161,254,200,254,245,254,8,255,27,255,58,255,89,255,126,255,171,255,221,255,31,0,101,0,159,0,201,0, +221,0,236,0,17,1,54,1,50,1,16,1,244,0,235,0,225,0,197,0,150,0,94,0,32,0,213,255,146,255,104,255, +61,255,10,255,224,254,195,254,181,254,180,254,180,254,193,254,214,254,235,254,19,255,73,255,108,255,134,255,156,255,177,255, +216,255,1,0,21,0,28,0,35,0,35,0,18,0,251,255,238,255,224,255,197,255,164,255,137,255,116,255,88,255,52,255, +19,255,245,254,230,254,224,254,200,254,179,254,173,254,163,254,167,254,185,254,200,254,233,254,18,255,49,255,98,255,153,255, +202,255,1,0,61,0,135,0,211,0,1,1,33,1,68,1,93,1,115,1,136,1,145,1,135,1,112,1,96,1,74,1, +29,1,237,0,195,0,151,0,115,0,69,0,19,0,245,255,214,255,170,255,131,255,86,255,29,255,237,254,196,254,165,254, +152,254,147,254,153,254,171,254,188,254,209,254,249,254,43,255,93,255,142,255,186,255,232,255,21,0,57,0,92,0,130,0, +170,0,205,0,226,0,249,0,19,1,28,1,50,1,95,1,121,1,133,1,147,1,153,1,165,1,175,1,165,1,156,1, +155,1,163,1,194,1,230,1,13,2,69,2,129,2,175,2,206,2,226,2,250,2,26,3,54,3,71,3,81,3,86,3, +85,3,76,3,59,3,38,3,13,3,241,2,211,2,177,2,130,2,80,2,38,2,255,1,205,1,145,1,88,1,44,1, +3,1,208,0,154,0,106,0,75,0,62,0,45,0,16,0,253,255,5,0,23,0,29,0,43,0,72,0,94,0,121,0, +159,0,176,0,183,0,205,0,217,0,209,0,195,0,171,0,140,0,113,0,75,0,21,0,218,255,163,255,114,255,55,255, +233,254,166,254,121,254,79,254,46,254,27,254,3,254,225,253,192,253,165,253,140,253,115,253,95,253,80,253,70,253,69,253, +74,253,83,253,96,253,98,253,85,253,60,253,32,253,14,253,3,253,248,252,247,252,253,252,254,252,255,252,2,253,253,252, +235,252,213,252,177,252,124,252,89,252,68,252,38,252,22,252,36,252,66,252,116,252,184,252,4,253,89,253,181,253,26,254, +128,254,225,254,85,255,214,255,66,0,152,0,220,0,30,1,98,1,157,1,221,1,29,2,70,2,108,2,155,2,188,2, +205,2,203,2,188,2,166,2,131,2,84,2,36,2,241,1,185,1,133,1,101,1,78,1,51,1,30,1,32,1,59,1, +89,1,102,1,120,1,147,1,162,1,167,1,164,1,159,1,159,1,145,1,128,1,126,1,122,1,118,1,125,1,135,1, +141,1,135,1,133,1,145,1,139,1,111,1,90,1,68,1,34,1,243,0,184,0,146,0,131,0,115,0,108,0,113,0, +113,0,107,0,113,0,133,0,150,0,158,0,171,0,183,0,200,0,218,0,221,0,222,0,231,0,222,0,197,0,171,0, +134,0,89,0,42,0,240,255,174,255,109,255,43,255,231,254,160,254,88,254,24,254,229,253,186,253,152,253,128,253,114,253, +115,253,121,253,118,253,123,253,156,253,198,253,239,253,28,254,71,254,106,254,140,254,176,254,218,254,5,255,49,255,106,255, +162,255,194,255,219,255,252,255,23,0,42,0,63,0,93,0,130,0,154,0,168,0,191,0,216,0,236,0,253,0,5,1, +7,1,8,1,10,1,7,1,235,0,188,0,145,0,109,0,82,0,55,0,25,0,21,0,31,0,34,0,47,0,72,0, +80,0,75,0,73,0,78,0,81,0,83,0,99,0,133,0,175,0,203,0,212,0,220,0,239,0,251,0,250,0,244,0, +247,0,8,1,30,1,56,1,92,1,125,1,159,1,196,1,219,1,229,1,244,1,255,1,252,1,242,1,223,1,192,1, +163,1,146,1,138,1,134,1,118,1,91,1,73,1,59,1,45,1,43,1,40,1,27,1,22,1,26,1,19,1,245,0, +203,0,168,0,134,0,88,0,43,0,2,0,212,255,169,255,128,255,87,255,54,255,28,255,6,255,239,254,217,254,216,254, +220,254,216,254,226,254,243,254,6,255,53,255,110,255,151,255,194,255,252,255,66,0,134,0,180,0,215,0,252,0,27,1, +45,1,53,1,62,1,70,1,63,1,45,1,27,1,3,1,227,0,180,0,121,0,76,0,32,0,231,255,180,255,139,255, +95,255,57,255,31,255,17,255,17,255,23,255,27,255,36,255,49,255,63,255,74,255,82,255,96,255,116,255,128,255,125,255, +118,255,114,255,115,255,121,255,116,255,100,255,89,255,79,255,55,255,17,255,233,254,189,254,129,254,55,254,231,253,158,253, +101,253,54,253,16,253,247,252,223,252,206,252,206,252,207,252,217,252,239,252,251,252,12,253,41,253,57,253,75,253,104,253, +121,253,120,253,109,253,97,253,88,253,72,253,47,253,27,253,17,253,13,253,9,253,9,253,249,252,221,252,203,252,183,252, +157,252,147,252,138,252,116,252,104,252,118,252,156,252,201,252,253,252,69,253,141,253,195,253,253,253,63,254,132,254,201,254, +6,255,65,255,145,255,240,255,71,0,146,0,224,0,48,1,129,1,209,1,11,2,56,2,111,2,170,2,229,2,27,3, +66,3,99,3,133,3,163,3,181,3,174,3,158,3,150,3,135,3,107,3,80,3,56,3,27,3,3,3,6,3,20,3, +28,3,40,3,57,3,75,3,97,3,109,3,127,3,153,3,162,3,165,3,170,3,162,3,159,3,163,3,154,3,137,3, +122,3,113,3,98,3,69,3,44,3,29,3,11,3,248,2,233,2,222,2,214,2,201,2,192,2,192,2,188,2,178,2, +161,2,141,2,121,2,87,2,42,2,0,2,221,1,187,1,149,1,113,1,77,1,31,1,245,0,216,0,199,0,196,0, +180,0,151,0,126,0,95,0,54,0,15,0,230,255,181,255,136,255,112,255,94,255,63,255,39,255,31,255,27,255,17,255, +249,254,219,254,195,254,165,254,136,254,109,254,78,254,58,254,38,254,9,254,246,253,234,253,216,253,205,253,197,253,184,253, +171,253,167,253,173,253,182,253,193,253,200,253,202,253,220,253,237,253,235,253,238,253,233,253,196,253,162,253,147,253,142,253, +144,253,150,253,160,253,167,253,159,253,143,253,141,253,158,253,167,253,162,253,171,253,195,253,220,253,244,253,9,254,35,254, +67,254,92,254,123,254,154,254,173,254,204,254,248,254,24,255,51,255,78,255,99,255,107,255,106,255,104,255,100,255,103,255, +103,255,82,255,67,255,66,255,62,255,64,255,58,255,30,255,4,255,239,254,220,254,206,254,180,254,153,254,142,254,131,254, +127,254,137,254,144,254,147,254,146,254,146,254,152,254,158,254,170,254,185,254,197,254,214,254,227,254,234,254,252,254,9,255, +10,255,20,255,43,255,73,255,105,255,126,255,153,255,199,255,242,255,24,0,68,0,105,0,137,0,176,0,216,0,246,0, +18,1,59,1,115,1,172,1,221,1,9,2,47,2,84,2,129,2,168,2,194,2,213,2,226,2,232,2,225,2,200,2, +169,2,145,2,125,2,101,2,81,2,65,2,51,2,34,2,11,2,243,1,224,1,211,1,197,1,182,1,166,1,150,1, +144,1,150,1,159,1,183,1,213,1,222,1,227,1,243,1,2,2,25,2,62,2,83,2,84,2,65,2,25,2,242,1, +206,1,150,1,85,1,18,1,187,0,90,0,9,0,192,255,110,255,22,255,196,254,117,254,34,254,214,253,164,253,132,253, +92,253,50,253,30,253,39,253,60,253,76,253,86,253,104,253,128,253,153,253,189,253,237,253,29,254,73,254,116,254,159,254, +205,254,247,254,33,255,90,255,158,255,219,255,11,0,43,0,65,0,89,0,109,0,117,0,125,0,139,0,151,0,156,0, +160,0,173,0,188,0,197,0,211,0,226,0,239,0,11,1,44,1,69,1,101,1,135,1,164,1,187,1,194,1,189,1, +177,1,169,1,174,1,173,1,163,1,154,1,141,1,134,1,132,1,122,1,123,1,113,1,76,1,40,1,1,1,213,0, +184,0,149,0,109,0,86,0,72,0,65,0,59,0,48,0,46,0,40,0,29,0,29,0,36,0,53,0,70,0,74,0, +79,0,79,0,71,0,75,0,82,0,87,0,98,0,109,0,125,0,149,0,160,0,147,0,112,0,67,0,19,0,225,255, +174,255,123,255,78,255,53,255,41,255,18,255,235,254,200,254,176,254,139,254,90,254,45,254,253,253,213,253,193,253,176,253, +163,253,161,253,167,253,172,253,163,253,148,253,146,253,146,253,145,253,138,253,123,253,114,253,108,253,99,253,92,253,82,253, +73,253,72,253,70,253,72,253,75,253,83,253,106,253,132,253,152,253,175,253,207,253,253,253,52,254,106,254,172,254,241,254, +36,255,83,255,120,255,142,255,169,255,202,255,227,255,245,255,15,0,43,0,58,0,67,0,87,0,119,0,151,0,176,0, +189,0,196,0,198,0,204,0,217,0,234,0,0,1,23,1,38,1,42,1,49,1,65,1,80,1,97,1,122,1,151,1, +184,1,213,1,236,1,15,2,60,2,93,2,111,2,121,2,127,2,134,2,136,2,140,2,153,2,176,2,209,2,238,2, +8,3,33,3,49,3,66,3,81,3,81,3,75,3,63,3,44,3,37,3,24,3,1,3,239,2,224,2,210,2,192,2, +157,2,115,2,66,2,1,2,189,1,120,1,52,1,241,0,170,0,105,0,45,0,238,255,180,255,126,255,71,255,30,255, +247,254,192,254,138,254,100,254,65,254,21,254,240,253,218,253,200,253,184,253,166,253,142,253,123,253,104,253,85,253,78,253, +78,253,80,253,102,253,128,253,141,253,152,253,169,253,190,253,214,253,236,253,1,254,26,254,50,254,67,254,80,254,97,254, +115,254,138,254,166,254,186,254,205,254,233,254,7,255,29,255,47,255,62,255,71,255,70,255,68,255,69,255,75,255,84,255, +93,255,93,255,85,255,77,255,75,255,75,255,67,255,59,255,57,255,57,255,57,255,68,255,83,255,93,255,105,255,130,255, +160,255,177,255,190,255,219,255,254,255,21,0,35,0,47,0,57,0,65,0,90,0,135,0,173,0,203,0,241,0,27,1, +63,1,103,1,148,1,190,1,215,1,222,1,231,1,240,1,239,1,233,1,224,1,217,1,220,1,223,1,225,1,224,1, +227,1,242,1,254,1,250,1,242,1,231,1,217,1,206,1,191,1,174,1,160,1,145,1,130,1,125,1,125,1,110,1, +79,1,45,1,5,1,214,0,166,0,118,0,70,0,28,0,253,255,233,255,222,255,214,255,201,255,185,255,174,255,169,255, +164,255,155,255,132,255,108,255,93,255,88,255,94,255,104,255,111,255,130,255,160,255,182,255,197,255,210,255,221,255,240,255, +4,0,12,0,13,0,15,0,17,0,22,0,37,0,57,0,69,0,79,0,93,0,106,0,107,0,90,0,71,0,66,0, +56,0,31,0,5,0,241,255,220,255,196,255,166,255,134,255,107,255,83,255,54,255,27,255,12,255,5,255,0,255,248,254, +241,254,247,254,4,255,5,255,1,255,1,255,4,255,13,255,27,255,41,255,43,255,36,255,37,255,37,255,35,255,46,255, +53,255,48,255,56,255,71,255,81,255,95,255,103,255,97,255,88,255,76,255,62,255,55,255,51,255,39,255,23,255,13,255, +4,255,248,254,237,254,226,254,215,254,202,254,194,254,185,254,172,254,160,254,153,254,146,254,143,254,147,254,149,254,148,254, +144,254,140,254,137,254,129,254,120,254,120,254,117,254,106,254,101,254,106,254,118,254,133,254,146,254,155,254,171,254,198,254, +222,254,238,254,3,255,31,255,64,255,103,255,134,255,160,255,197,255,245,255,43,0,101,0,156,0,211,0,19,1,83,1, +140,1,198,1,255,1,45,2,84,2,117,2,143,2,167,2,187,2,199,2,195,2,173,2,152,2,135,2,106,2,68,2, +32,2,0,2,235,1,213,1,180,1,149,1,128,1,106,1,84,1,69,1,50,1,23,1,1,1,249,0,247,0,243,0, +239,0,237,0,243,0,252,0,250,0,246,0,255,0,8,1,7,1,12,1,22,1,29,1,31,1,31,1,28,1,25,1, +26,1,24,1,9,1,237,0,208,0,187,0,173,0,157,0,141,0,124,0,110,0,97,0,83,0,72,0,67,0,63,0, +60,0,54,0,39,0,24,0,14,0,255,255,227,255,195,255,167,255,139,255,108,255,71,255,35,255,255,254,213,254,178,254, +162,254,149,254,139,254,143,254,146,254,142,254,140,254,143,254,144,254,143,254,139,254,134,254,138,254,153,254,172,254,193,254, +217,254,246,254,23,255,52,255,74,255,89,255,102,255,116,255,133,255,144,255,148,255,148,255,145,255,140,255,139,255,146,255, +147,255,132,255,118,255,111,255,98,255,75,255,57,255,53,255,52,255,41,255,31,255,36,255,47,255,63,255,85,255,104,255, +112,255,116,255,117,255,115,255,108,255,93,255,70,255,51,255,36,255,17,255,0,255,244,254,231,254,222,254,221,254,225,254, +228,254,218,254,208,254,215,254,227,254,232,254,246,254,13,255,42,255,73,255,99,255,129,255,170,255,216,255,5,0,46,0, +90,0,142,0,192,0,238,0,20,1,45,1,64,1,84,1,94,1,98,1,106,1,113,1,107,1,86,1,64,1,43,1, +19,1,248,0,221,0,197,0,177,0,147,0,108,0,78,0,64,0,53,0,34,0,12,0,0,0,3,0,12,0,11,0, +2,0,4,0,15,0,27,0,39,0,50,0,62,0,85,0,115,0,149,0,190,0,228,0,254,0,24,1,60,1,91,1, +107,1,128,1,164,1,197,1,213,1,214,1,209,1,211,1,212,1,207,1,202,1,193,1,182,1,182,1,186,1,186,1, +192,1,202,1,201,1,186,1,167,1,150,1,136,1,120,1,100,1,81,1,60,1,39,1,25,1,11,1,246,0,227,0, +206,0,175,0,136,0,93,0,52,0,17,0,241,255,217,255,192,255,162,255,137,255,109,255,74,255,43,255,14,255,240,254, +215,254,194,254,175,254,160,254,149,254,145,254,149,254,158,254,175,254,194,254,205,254,212,254,213,254,211,254,211,254,215,254, +228,254,248,254,14,255,46,255,88,255,126,255,160,255,198,255,223,255,233,255,242,255,242,255,232,255,230,255,230,255,232,255, +246,255,252,255,252,255,5,0,9,0,7,0,9,0,3,0,244,255,232,255,221,255,207,255,191,255,172,255,158,255,153,255, +147,255,136,255,126,255,120,255,110,255,96,255,82,255,75,255,78,255,77,255,67,255,65,255,73,255,82,255,91,255,104,255, +122,255,136,255,141,255,145,255,149,255,153,255,159,255,165,255,168,255,169,255,168,255,167,255,156,255,143,255,134,255,126,255, +126,255,129,255,126,255,121,255,111,255,98,255,93,255,85,255,67,255,53,255,41,255,35,255,37,255,32,255,26,255,36,255, +52,255,66,255,76,255,82,255,90,255,102,255,114,255,119,255,116,255,107,255,99,255,100,255,101,255,94,255,83,255,74,255, +62,255,47,255,31,255,25,255,22,255,14,255,10,255,14,255,19,255,33,255,47,255,60,255,80,255,101,255,129,255,161,255, +178,255,188,255,205,255,222,255,236,255,241,255,243,255,4,0,36,0,71,0,110,0,153,0,192,0,222,0,243,0,9,1, +32,1,51,1,64,1,78,1,94,1,105,1,116,1,141,1,169,1,192,1,217,1,243,1,3,2,5,2,2,2,251,1, +239,1,225,1,208,1,187,1,177,1,176,1,171,1,170,1,168,1,159,1,150,1,140,1,129,1,118,1,105,1,98,1, +101,1,113,1,133,1,146,1,153,1,169,1,190,1,208,1,221,1,223,1,222,1,224,1,217,1,200,1,185,1,174,1, +155,1,128,1,102,1,77,1,49,1,17,1,234,0,192,0,144,0,90,0,41,0,250,255,201,255,155,255,113,255,75,255, +43,255,12,255,246,254,234,254,224,254,209,254,189,254,176,254,171,254,167,254,171,254,181,254,181,254,182,254,197,254,212,254, +215,254,205,254,193,254,188,254,180,254,164,254,148,254,132,254,113,254,92,254,74,254,57,254,41,254,37,254,45,254,47,254, +46,254,50,254,59,254,66,254,70,254,70,254,70,254,72,254,81,254,95,254,111,254,126,254,139,254,157,254,180,254,198,254, +211,254,221,254,227,254,232,254,229,254,220,254,210,254,198,254,189,254,182,254,163,254,142,254,123,254,104,254,89,254,76,254, +70,254,74,254,69,254,55,254,49,254,51,254,58,254,70,254,81,254,93,254,121,254,163,254,207,254,254,254,49,255,96,255, +151,255,211,255,1,0,40,0,84,0,123,0,161,0,202,0,243,0,26,1,58,1,84,1,113,1,144,1,177,1,200,1, +205,1,205,1,214,1,222,1,221,1,214,1,207,1,201,1,197,1,196,1,185,1,169,1,156,1,142,1,128,1,108,1, +72,1,28,1,233,0,180,0,141,0,107,0,66,0,28,0,254,255,232,255,211,255,187,255,170,255,165,255,163,255,160,255, +163,255,169,255,176,255,188,255,197,255,198,255,208,255,240,255,22,0,57,0,90,0,129,0,177,0,222,0,1,1,36,1, +69,1,102,1,132,1,151,1,166,1,186,1,214,1,244,1,5,2,9,2,20,2,35,2,40,2,36,2,28,2,16,2, +254,1,228,1,197,1,166,1,142,1,119,1,83,1,42,1,5,1,219,0,171,0,130,0,99,0,68,0,39,0,22,0, +7,0,245,255,231,255,219,255,207,255,196,255,182,255,171,255,168,255,171,255,180,255,189,255,196,255,198,255,196,255,194,255, +193,255,191,255,190,255,189,255,190,255,196,255,197,255,198,255,205,255,209,255,203,255,198,255,188,255,174,255,165,255,163,255, +158,255,150,255,149,255,158,255,163,255,158,255,157,255,171,255,191,255,200,255,203,255,213,255,226,255,239,255,251,255,251,255, +237,255,219,255,202,255,179,255,153,255,131,255,107,255,75,255,50,255,39,255,28,255,10,255,246,254,234,254,228,254,224,254, +222,254,214,254,201,254,188,254,179,254,180,254,186,254,186,254,192,254,208,254,227,254,252,254,25,255,46,255,63,255,84,255, +108,255,131,255,144,255,146,255,150,255,152,255,147,255,142,255,137,255,127,255,112,255,94,255,74,255,53,255,29,255,11,255, +4,255,247,254,222,254,207,254,197,254,184,254,174,254,169,254,161,254,158,254,159,254,161,254,164,254,171,254,185,254,199,254, +213,254,234,254,2,255,29,255,65,255,100,255,127,255,154,255,185,255,216,255,242,255,8,0,34,0,59,0,82,0,112,0, +143,0,169,0,198,0,234,0,11,1,44,1,80,1,115,1,150,1,188,1,220,1,240,1,3,2,23,2,36,2,42,2, +53,2,71,2,84,2,93,2,101,2,106,2,109,2,105,2,90,2,70,2,47,2,20,2,249,1,219,1,185,1,154,1, +124,1,88,1,52,1,23,1,249,0,210,0,163,0,116,0,75,0,45,0,24,0,7,0,255,255,6,0,22,0,41,0, +64,0,83,0,94,0,102,0,111,0,119,0,132,0,144,0,148,0,150,0,161,0,181,0,199,0,203,0,203,0,211,0, +208,0,190,0,172,0,154,0,131,0,109,0,87,0,65,0,51,0,34,0,10,0,245,255,229,255,207,255,181,255,156,255, +130,255,102,255,76,255,53,255,27,255,248,254,215,254,197,254,191,254,178,254,154,254,130,254,108,254,82,254,59,254,40,254, +12,254,243,253,231,253,225,253,223,253,222,253,221,253,228,253,248,253,12,254,33,254,54,254,70,254,85,254,108,254,135,254, +162,254,194,254,228,254,2,255,35,255,77,255,124,255,176,255,235,255,39,0,94,0,153,0,215,0,14,1,67,1,114,1, +149,1,185,1,221,1,242,1,2,2,19,2,25,2,27,2,25,2,10,2,247,1,228,1,199,1,161,1,120,1,74,1, +29,1,245,0,204,0,162,0,114,0,62,0,14,0,228,255,189,255,157,255,130,255,108,255,92,255,81,255,76,255,79,255, +85,255,95,255,111,255,124,255,147,255,180,255,204,255,221,255,247,255,15,0,35,0,56,0,74,0,86,0,94,0,98,0, +101,0,102,0,95,0,81,0,63,0,37,0,7,0,239,255,215,255,185,255,160,255,141,255,124,255,116,255,110,255,98,255, +81,255,58,255,31,255,5,255,233,254,203,254,170,254,138,254,111,254,92,254,82,254,71,254,54,254,34,254,16,254,252,253, +232,253,215,253,200,253,181,253,156,253,139,253,133,253,127,253,125,253,135,253,158,253,187,253,226,253,18,254,67,254,112,254, +161,254,217,254,17,255,73,255,129,255,184,255,236,255,30,0,79,0,124,0,166,0,205,0,237,0,1,1,11,1,26,1, +46,1,59,1,66,1,71,1,69,1,68,1,69,1,58,1,43,1,41,1,40,1,32,1,17,1,249,0,226,0,215,0, +205,0,189,0,175,0,172,0,176,0,180,0,184,0,188,0,191,0,195,0,201,0,201,0,198,0,197,0,193,0,179,0, +154,0,126,0,101,0,84,0,67,0,49,0,40,0,36,0,37,0,50,0,64,0,76,0,94,0,112,0,122,0,126,0, +130,0,136,0,143,0,155,0,169,0,178,0,193,0,216,0,232,0,244,0,0,1,10,1,19,1,22,1,17,1,9,1, +3,1,253,0,244,0,237,0,230,0,216,0,202,0,193,0,181,0,161,0,138,0,124,0,115,0,91,0,58,0,39,0, +27,0,9,0,253,255,250,255,252,255,254,255,255,255,3,0,12,0,21,0,26,0,31,0,34,0,35,0,44,0,61,0, +71,0,82,0,104,0,124,0,136,0,143,0,146,0,145,0,138,0,128,0,117,0,101,0,85,0,72,0,57,0,45,0, +41,0,41,0,44,0,43,0,45,0,58,0,68,0,66,0,65,0,68,0,70,0,66,0,58,0,52,0,47,0,46,0, +47,0,46,0,52,0,62,0,65,0,56,0,42,0,29,0,19,0,14,0,14,0,12,0,6,0,255,255,246,255,239,255, +231,255,216,255,190,255,158,255,128,255,102,255,72,255,43,255,23,255,8,255,252,254,238,254,222,254,215,254,210,254,212,254, +223,254,232,254,242,254,6,255,20,255,26,255,43,255,61,255,70,255,75,255,83,255,91,255,95,255,99,255,107,255,117,255, +124,255,131,255,133,255,125,255,112,255,100,255,75,255,38,255,5,255,233,254,204,254,178,254,150,254,126,254,111,254,97,254, +84,254,73,254,60,254,52,254,53,254,58,254,65,254,75,254,90,254,111,254,132,254,151,254,170,254,194,254,224,254,254,254, +21,255,39,255,57,255,72,255,89,255,113,255,137,255,156,255,184,255,212,255,231,255,252,255,16,0,35,0,59,0,82,0, +98,0,115,0,137,0,166,0,201,0,231,0,4,1,38,1,73,1,101,1,125,1,148,1,168,1,181,1,194,1,202,1, +197,1,186,1,175,1,166,1,155,1,136,1,108,1,80,1,59,1,38,1,11,1,242,0,225,0,214,0,209,0,208,0, +205,0,202,0,198,0,192,0,187,0,185,0,195,0,209,0,222,0,236,0,250,0,6,1,25,1,46,1,66,1,80,1, +83,1,81,1,76,1,64,1,50,1,38,1,33,1,32,1,27,1,18,1,13,1,3,1,241,0,218,0,188,0,157,0, +127,0,96,0,64,0,39,0,19,0,252,255,232,255,214,255,191,255,171,255,156,255,139,255,122,255,111,255,106,255,101,255, +94,255,93,255,98,255,105,255,117,255,131,255,147,255,170,255,194,255,217,255,243,255,13,0,37,0,59,0,79,0,98,0, +121,0,145,0,168,0,188,0,207,0,220,0,226,0,230,0,233,0,235,0,234,0,223,0,205,0,186,0,169,0,150,0, +124,0,93,0,62,0,31,0,252,255,213,255,169,255,125,255,75,255,16,255,213,254,161,254,110,254,63,254,16,254,219,253, +171,253,135,253,106,253,79,253,58,253,41,253,32,253,31,253,34,253,43,253,59,253,74,253,93,253,117,253,139,253,161,253, +182,253,202,253,232,253,16,254,60,254,105,254,146,254,187,254,233,254,20,255,64,255,109,255,147,255,186,255,232,255,21,0, +65,0,107,0,146,0,183,0,219,0,252,0,19,1,29,1,38,1,53,1,64,1,68,1,69,1,68,1,63,1,56,1, +46,1,36,1,25,1,8,1,239,0,215,0,188,0,156,0,125,0,92,0,57,0,30,0,7,0,237,255,215,255,202,255, +193,255,186,255,187,255,196,255,204,255,217,255,241,255,9,0,35,0,64,0,95,0,131,0,169,0,204,0,243,0,31,1, +75,1,116,1,156,1,197,1,232,1,2,2,30,2,58,2,84,2,106,2,120,2,125,2,124,2,116,2,101,2,82,2, +62,2,38,2,14,2,245,1,210,1,169,1,132,1,90,1,39,1,241,0,186,0,127,0,72,0,18,0,217,255,158,255, +97,255,32,255,220,254,152,254,87,254,28,254,229,253,177,253,130,253,87,253,48,253,21,253,0,253,233,252,215,252,204,252, +199,252,203,252,215,252,239,252,21,253,69,253,123,253,182,253,239,253,44,254,109,254,175,254,241,254,48,255,113,255,180,255, +242,255,42,0,93,0,142,0,189,0,230,0,5,1,24,1,28,1,19,1,4,1,238,0,200,0,153,0,104,0,52,0, +250,255,193,255,138,255,87,255,41,255,251,254,207,254,169,254,139,254,114,254,87,254,60,254,41,254,30,254,23,254,25,254, +36,254,57,254,90,254,126,254,162,254,197,254,236,254,21,255,57,255,92,255,134,255,174,255,214,255,12,0,71,0,128,0, +185,0,237,0,30,1,73,1,105,1,133,1,164,1,188,1,199,1,208,1,222,1,231,1,238,1,249,1,10,2,29,2, +41,2,50,2,64,2,79,2,85,2,83,2,72,2,59,2,43,2,18,2,248,1,226,1,199,1,168,1,139,1,111,1, +82,1,56,1,27,1,245,0,208,0,171,0,128,0,88,0,54,0,25,0,9,0,253,255,239,255,234,255,241,255,252,255, +9,0,28,0,55,0,82,0,104,0,128,0,153,0,179,0,208,0,240,0,20,1,58,1,93,1,131,1,172,1,208,1, +239,1,6,2,18,2,22,2,15,2,253,1,230,1,206,1,179,1,145,1,106,1,64,1,24,1,246,0,208,0,161,0, +113,0,66,0,14,0,216,255,160,255,106,255,54,255,2,255,209,254,168,254,134,254,103,254,69,254,36,254,9,254,243,253, +223,253,199,253,177,253,165,253,153,253,145,253,153,253,167,253,186,253,209,253,232,253,5,254,38,254,64,254,86,254,108,254, +129,254,150,254,173,254,193,254,212,254,232,254,254,254,17,255,31,255,40,255,51,255,61,255,68,255,71,255,73,255,71,255, +66,255,61,255,55,255,56,255,60,255,62,255,67,255,78,255,89,255,98,255,103,255,111,255,117,255,115,255,112,255,115,255, +121,255,124,255,125,255,131,255,137,255,137,255,135,255,134,255,132,255,132,255,135,255,144,255,159,255,176,255,196,255,215,255, +232,255,254,255,29,0,64,0,101,0,131,0,159,0,190,0,217,0,242,0,15,1,45,1,75,1,101,1,123,1,141,1, +157,1,164,1,164,1,158,1,146,1,132,1,117,1,97,1,75,1,53,1,33,1,14,1,250,0,226,0,204,0,185,0, +165,0,149,0,133,0,109,0,80,0,52,0,30,0,16,0,255,255,233,255,213,255,199,255,191,255,180,255,166,255,153,255, +141,255,130,255,114,255,95,255,84,255,78,255,71,255,66,255,67,255,69,255,74,255,85,255,101,255,118,255,136,255,161,255, +189,255,217,255,242,255,10,0,37,0,69,0,98,0,120,0,139,0,156,0,172,0,189,0,203,0,211,0,213,0,213,0, +207,0,193,0,172,0,148,0,124,0,96,0,60,0,23,0,246,255,215,255,186,255,160,255,141,255,124,255,106,255,96,255, +96,255,97,255,104,255,110,255,107,255,102,255,102,255,106,255,117,255,131,255,144,255,159,255,174,255,189,255,208,255,228,255, +239,255,244,255,250,255,251,255,247,255,246,255,248,255,253,255,9,0,20,0,34,0,53,0,68,0,79,0,92,0,102,0, +112,0,121,0,129,0,138,0,149,0,165,0,188,0,211,0,230,0,250,0,13,1,24,1,26,1,28,1,24,1,12,1, +250,0,228,0,206,0,183,0,155,0,128,0,101,0,69,0,34,0,254,255,216,255,179,255,141,255,101,255,63,255,32,255, +6,255,232,254,201,254,186,254,185,254,183,254,190,254,209,254,229,254,249,254,19,255,47,255,73,255,100,255,131,255,162,255, +193,255,222,255,248,255,20,0,52,0,84,0,115,0,142,0,161,0,178,0,194,0,208,0,218,0,220,0,210,0,193,0, +173,0,154,0,132,0,108,0,83,0,60,0,36,0,10,0,242,255,218,255,190,255,164,255,141,255,119,255,103,255,92,255, +83,255,78,255,75,255,75,255,78,255,81,255,86,255,93,255,98,255,101,255,100,255,98,255,101,255,107,255,112,255,122,255, +135,255,150,255,171,255,192,255,206,255,220,255,240,255,3,0,10,0,14,0,23,0,34,0,46,0,62,0,79,0,96,0, +118,0,146,0,171,0,192,0,214,0,233,0,248,0,6,1,18,1,28,1,34,1,38,1,40,1,39,1,33,1,21,1, +7,1,249,0,233,0,215,0,197,0,172,0,137,0,103,0,73,0,43,0,11,0,233,255,197,255,169,255,147,255,126,255, +106,255,89,255,75,255,62,255,53,255,50,255,50,255,48,255,45,255,47,255,52,255,57,255,64,255,75,255,87,255,100,255, +109,255,116,255,124,255,133,255,136,255,132,255,124,255,121,255,120,255,113,255,103,255,98,255,97,255,97,255,94,255,91,255, +92,255,96,255,101,255,104,255,104,255,103,255,105,255,107,255,106,255,105,255,110,255,118,255,128,255,137,255,141,255,148,255, +163,255,177,255,186,255,188,255,187,255,190,255,195,255,194,255,190,255,188,255,184,255,176,255,167,255,159,255,150,255,140,255, +135,255,133,255,132,255,130,255,132,255,141,255,151,255,159,255,170,255,184,255,201,255,222,255,245,255,11,0,36,0,60,0, +80,0,99,0,115,0,131,0,146,0,154,0,152,0,148,0,148,0,153,0,161,0,167,0,169,0,175,0,184,0,189,0, +193,0,199,0,202,0,206,0,214,0,222,0,222,0,218,0,222,0,232,0,238,0,241,0,247,0,2,1,15,1,30,1, +44,1,55,1,61,1,64,1,63,1,59,1,59,1,60,1,57,1,50,1,36,1,17,1,254,0,233,0,211,0,187,0, +160,0,132,0,107,0,83,0,60,0,42,0,24,0,7,0,251,255,242,255,235,255,236,255,243,255,251,255,4,0,14,0, +26,0,40,0,51,0,62,0,74,0,82,0,89,0,94,0,94,0,93,0,91,0,89,0,85,0,74,0,62,0,53,0, +42,0,27,0,13,0,254,255,236,255,219,255,205,255,193,255,179,255,168,255,164,255,162,255,161,255,164,255,167,255,170,255, +175,255,182,255,187,255,193,255,205,255,215,255,219,255,218,255,217,255,214,255,209,255,203,255,192,255,177,255,164,255,151,255, +133,255,113,255,94,255,79,255,65,255,44,255,19,255,253,254,232,254,208,254,182,254,162,254,147,254,136,254,132,254,133,254, +137,254,145,254,160,254,179,254,194,254,211,254,231,254,250,254,14,255,32,255,48,255,62,255,81,255,102,255,121,255,135,255, +146,255,163,255,181,255,194,255,201,255,206,255,211,255,218,255,225,255,228,255,233,255,243,255,251,255,255,255,1,0,4,0, +9,0,15,0,19,0,20,0,24,0,28,0,30,0,30,0,29,0,26,0,29,0,35,0,36,0,33,0,33,0,35,0, +38,0,40,0,38,0,33,0,31,0,34,0,38,0,45,0,51,0,55,0,57,0,60,0,64,0,70,0,78,0,86,0, +93,0,102,0,118,0,133,0,139,0,140,0,138,0,136,0,131,0,124,0,119,0,117,0,113,0,107,0,102,0,95,0, +89,0,84,0,79,0,76,0,74,0,74,0,76,0,80,0,82,0,84,0,87,0,90,0,93,0,94,0,93,0,97,0, +99,0,97,0,96,0,97,0,99,0,102,0,105,0,110,0,116,0,119,0,119,0,120,0,120,0,118,0,113,0,102,0, +88,0,76,0,70,0,68,0,64,0,56,0,53,0,56,0,56,0,56,0,58,0,57,0,54,0,51,0,43,0,36,0, +32,0,28,0,26,0,27,0,24,0,21,0,24,0,30,0,31,0,30,0,30,0,31,0,31,0,27,0,21,0,20,0, +25,0,32,0,41,0,49,0,58,0,65,0,69,0,72,0,74,0,70,0,62,0,53,0,42,0,30,0,20,0,10,0, +254,255,246,255,237,255,224,255,212,255,203,255,189,255,171,255,156,255,147,255,137,255,124,255,110,255,96,255,84,255,78,255, +77,255,77,255,77,255,80,255,84,255,91,255,98,255,104,255,111,255,118,255,119,255,113,255,103,255,92,255,83,255,78,255, +76,255,73,255,71,255,71,255,68,255,62,255,55,255,45,255,33,255,20,255,4,255,243,254,234,254,231,254,234,254,245,254, +5,255,24,255,49,255,76,255,100,255,124,255,148,255,168,255,191,255,213,255,231,255,248,255,10,0,28,0,47,0,65,0, +79,0,86,0,88,0,88,0,85,0,75,0,63,0,48,0,28,0,8,0,248,255,235,255,228,255,222,255,215,255,214,255, +220,255,230,255,245,255,6,0,25,0,49,0,78,0,108,0,141,0,176,0,211,0,247,0,26,1,58,1,91,1,126,1, +159,1,185,1,206,1,221,1,230,1,235,1,232,1,218,1,200,1,182,1,166,1,149,1,129,1,103,1,74,1,48,1, +22,1,251,0,224,0,199,0,173,0,147,0,120,0,94,0,71,0,50,0,29,0,8,0,247,255,234,255,221,255,209,255, +198,255,188,255,176,255,163,255,149,255,135,255,118,255,102,255,88,255,75,255,62,255,53,255,50,255,51,255,56,255,61,255, +58,255,51,255,44,255,36,255,27,255,19,255,11,255,9,255,11,255,16,255,20,255,28,255,37,255,42,255,40,255,36,255, +34,255,34,255,33,255,32,255,26,255,17,255,11,255,6,255,3,255,5,255,13,255,22,255,28,255,33,255,39,255,47,255, +55,255,61,255,62,255,65,255,76,255,89,255,101,255,116,255,131,255,142,255,157,255,178,255,197,255,210,255,220,255,227,255, +229,255,227,255,219,255,209,255,199,255,188,255,178,255,173,255,176,255,182,255,191,255,200,255,207,255,213,255,220,255,225,255, +229,255,231,255,232,255,240,255,253,255,13,0,35,0,64,0,95,0,130,0,167,0,200,0,234,0,13,1,44,1,71,1, +91,1,106,1,122,1,133,1,137,1,140,1,144,1,149,1,158,1,164,1,166,1,166,1,162,1,149,1,132,1,110,1, +86,1,64,1,43,1,24,1,10,1,0,1,248,0,243,0,238,0,234,0,229,0,224,0,219,0,209,0,193,0,177,0, +162,0,145,0,128,0,115,0,101,0,85,0,70,0,55,0,40,0,25,0,8,0,241,255,213,255,181,255,148,255,116,255, +89,255,65,255,46,255,37,255,38,255,45,255,58,255,75,255,92,255,110,255,131,255,151,255,171,255,191,255,211,255,232,255, +3,0,33,0,66,0,99,0,128,0,154,0,180,0,202,0,216,0,219,0,211,0,194,0,176,0,156,0,132,0,107,0, +83,0,56,0,32,0,9,0,237,255,207,255,178,255,143,255,106,255,73,255,44,255,15,255,239,254,211,254,192,254,177,254, +167,254,163,254,164,254,171,254,182,254,188,254,195,254,209,254,220,254,226,254,231,254,234,254,238,254,245,254,253,254,7,255, +21,255,37,255,55,255,75,255,91,255,102,255,114,255,129,255,142,255,150,255,156,255,162,255,172,255,183,255,191,255,203,255, +219,255,237,255,254,255,18,0,36,0,49,0,60,0,67,0,68,0,64,0,59,0,53,0,46,0,37,0,27,0,21,0, +16,0,9,0,254,255,238,255,220,255,203,255,180,255,151,255,123,255,97,255,71,255,49,255,29,255,15,255,12,255,15,255, +23,255,34,255,44,255,53,255,64,255,77,255,89,255,105,255,124,255,146,255,174,255,201,255,226,255,253,255,26,0,58,0, +87,0,112,0,135,0,159,0,180,0,201,0,221,0,239,0,255,0,12,1,21,1,30,1,39,1,46,1,54,1,66,1, +73,1,77,1,85,1,95,1,99,1,95,1,91,1,90,1,91,1,87,1,80,1,74,1,68,1,61,1,52,1,38,1, +21,1,5,1,245,0,226,0,205,0,179,0,149,0,120,0,92,0,62,0,33,0,5,0,233,255,206,255,183,255,167,255, +154,255,144,255,131,255,119,255,110,255,104,255,102,255,102,255,103,255,107,255,119,255,134,255,148,255,162,255,179,255,200,255, +220,255,240,255,6,0,25,0,39,0,51,0,65,0,77,0,82,0,83,0,85,0,87,0,88,0,86,0,81,0,78,0, +70,0,56,0,46,0,39,0,25,0,5,0,246,255,234,255,225,255,214,255,203,255,197,255,191,255,183,255,174,255,164,255, +154,255,146,255,137,255,130,255,125,255,117,255,110,255,110,255,108,255,101,255,98,255,97,255,94,255,91,255,87,255,85,255, +86,255,87,255,88,255,90,255,92,255,99,255,108,255,118,255,131,255,145,255,158,255,174,255,193,255,213,255,234,255,253,255, +13,0,28,0,40,0,47,0,50,0,52,0,52,0,50,0,45,0,36,0,25,0,13,0,3,0,245,255,224,255,205,255, +189,255,170,255,150,255,133,255,115,255,96,255,78,255,61,255,49,255,42,255,40,255,41,255,47,255,54,255,63,255,77,255, +93,255,105,255,118,255,136,255,155,255,175,255,195,255,214,255,232,255,252,255,15,0,31,0,42,0,52,0,60,0,63,0, +65,0,69,0,69,0,68,0,71,0,72,0,73,0,75,0,73,0,70,0,69,0,67,0,64,0,62,0,62,0,65,0, +68,0,66,0,65,0,66,0,65,0,65,0,69,0,72,0,77,0,81,0,84,0,86,0,91,0,95,0,99,0,104,0, +104,0,103,0,108,0,111,0,110,0,107,0,102,0,98,0,96,0,96,0,98,0,98,0,97,0,98,0,103,0,106,0, +107,0,111,0,115,0,119,0,125,0,133,0,143,0,151,0,156,0,163,0,170,0,175,0,179,0,180,0,180,0,182,0, +184,0,181,0,175,0,166,0,156,0,145,0,133,0,123,0,112,0,99,0,85,0,71,0,54,0,34,0,14,0,250,255, +233,255,217,255,204,255,190,255,178,255,171,255,168,255,164,255,161,255,162,255,161,255,161,255,163,255,165,255,169,255,174,255, +182,255,192,255,204,255,215,255,228,255,236,255,239,255,244,255,252,255,2,0,5,0,5,0,3,0,0,0,253,255,249,255, +244,255,236,255,227,255,217,255,205,255,191,255,175,255,160,255,145,255,129,255,113,255,100,255,88,255,77,255,69,255,61,255, +54,255,52,255,51,255,51,255,51,255,52,255,55,255,63,255,71,255,79,255,87,255,96,255,106,255,119,255,134,255,147,255, +160,255,172,255,185,255,196,255,208,255,216,255,223,255,235,255,246,255,254,255,8,0,17,0,20,0,24,0,30,0,37,0, +45,0,51,0,58,0,68,0,71,0,71,0,76,0,79,0,78,0,77,0,75,0,69,0,63,0,58,0,51,0,42,0, +32,0,19,0,7,0,252,255,239,255,227,255,218,255,212,255,206,255,201,255,198,255,194,255,192,255,193,255,196,255,200,255, +207,255,212,255,219,255,227,255,239,255,251,255,9,0,24,0,40,0,55,0,72,0,87,0,100,0,117,0,134,0,149,0, +162,0,173,0,185,0,199,0,211,0,219,0,225,0,231,0,233,0,231,0,226,0,220,0,211,0,200,0,188,0,174,0, +160,0,147,0,137,0,130,0,121,0,109,0,99,0,95,0,89,0,82,0,74,0,63,0,53,0,44,0,36,0,29,0, +22,0,13,0,3,0,250,255,242,255,234,255,228,255,225,255,222,255,217,255,213,255,211,255,207,255,205,255,205,255,208,255, +215,255,222,255,230,255,241,255,254,255,11,0,21,0,32,0,42,0,49,0,57,0,66,0,74,0,78,0,80,0,80,0, +81,0,79,0,72,0,62,0,50,0,33,0,11,0,241,255,212,255,183,255,154,255,120,255,86,255,53,255,22,255,250,254, +224,254,197,254,174,254,159,254,144,254,128,254,116,254,110,254,108,254,107,254,107,254,113,254,123,254,139,254,161,254,185,254, +212,254,240,254,12,255,42,255,70,255,94,255,119,255,147,255,174,255,197,255,217,255,237,255,5,0,29,0,50,0,67,0, +80,0,92,0,103,0,110,0,115,0,122,0,125,0,126,0,128,0,133,0,137,0,140,0,143,0,147,0,147,0,144,0, +140,0,133,0,123,0,114,0,105,0,95,0,87,0,80,0,73,0,67,0,58,0,50,0,45,0,40,0,33,0,26,0, +19,0,13,0,8,0,3,0,255,255,250,255,248,255,249,255,252,255,1,0,12,0,28,0,43,0,55,0,70,0,88,0, +103,0,118,0,134,0,146,0,160,0,173,0,180,0,188,0,197,0,204,0,208,0,211,0,211,0,210,0,207,0,202,0, +197,0,188,0,174,0,164,0,155,0,141,0,125,0,110,0,96,0,85,0,74,0,63,0,53,0,42,0,32,0,23,0, +15,0,7,0,255,255,246,255,238,255,230,255,225,255,222,255,220,255,220,255,221,255,220,255,220,255,222,255,225,255,229,255, +232,255,236,255,239,255,244,255,250,255,253,255,254,255,1,0,1,0,255,255,0,0,3,0,3,0,5,0,8,0,10,0, +11,0,9,0,4,0,255,255,249,255,241,255,234,255,229,255,225,255,221,255,215,255,210,255,206,255,202,255,198,255,193,255, +186,255,178,255,170,255,162,255,156,255,152,255,150,255,152,255,155,255,156,255,158,255,159,255,160,255,161,255,162,255,162,255, +160,255,158,255,158,255,160,255,160,255,159,255,161,255,166,255,171,255,174,255,177,255,178,255,177,255,175,255,172,255,169,255, +167,255,167,255,166,255,170,255,173,255,170,255,167,255,169,255,170,255,171,255,170,255,166,255,164,255,164,255,164,255,163,255, +161,255,163,255,167,255,172,255,176,255,180,255,182,255,182,255,184,255,189,255,189,255,186,255,187,255,191,255,190,255,187,255, +186,255,184,255,185,255,191,255,197,255,200,255,203,255,207,255,214,255,220,255,224,255,226,255,230,255,234,255,237,255,240,255, +246,255,1,0,12,0,24,0,37,0,50,0,64,0,76,0,84,0,93,0,104,0,115,0,122,0,125,0,127,0,132,0, +137,0,140,0,145,0,149,0,149,0,152,0,156,0,156,0,154,0,150,0,146,0,142,0,137,0,133,0,129,0,125,0, +119,0,115,0,110,0,104,0,97,0,91,0,86,0,80,0,70,0,61,0,55,0,54,0,54,0,54,0,54,0,55,0, +59,0,63,0,62,0,63,0,68,0,71,0,71,0,73,0,80,0,90,0,100,0,108,0,116,0,126,0,134,0,140,0, +141,0,140,0,139,0,138,0,136,0,133,0,129,0,123,0,116,0,107,0,99,0,91,0,80,0,68,0,54,0,37,0, +22,0,9,0,253,255,242,255,232,255,221,255,210,255,200,255,191,255,183,255,174,255,167,255,165,255,164,255,163,255,164,255, +167,255,172,255,177,255,181,255,187,255,193,255,199,255,205,255,212,255,218,255,223,255,227,255,230,255,231,255,229,255,227,255, +226,255,223,255,219,255,214,255,208,255,203,255,195,255,187,255,181,255,177,255,174,255,172,255,167,255,163,255,159,255,152,255, +147,255,141,255,130,255,120,255,114,255,110,255,106,255,103,255,105,255,108,255,110,255,113,255,117,255,120,255,122,255,125,255, +125,255,125,255,130,255,134,255,135,255,137,255,139,255,144,255,151,255,156,255,162,255,169,255,177,255,186,255,193,255,199,255, +204,255,209,255,216,255,224,255,230,255,236,255,243,255,250,255,3,0,11,0,15,0,20,0,24,0,28,0,34,0,39,0, +43,0,45,0,47,0,51,0,53,0,52,0,53,0,53,0,50,0,45,0,39,0,32,0,27,0,23,0,19,0,16,0, +16,0,16,0,16,0,15,0,17,0,21,0,25,0,28,0,33,0,39,0,43,0,48,0,54,0,59,0,64,0,70,0, +78,0,85,0,93,0,100,0,106,0,110,0,113,0,114,0,115,0,115,0,113,0,111,0,109,0,104,0,96,0,86,0, +78,0,68,0,54,0,42,0,33,0,22,0,12,0,4,0,253,255,250,255,248,255,240,255,233,255,231,255,228,255,226,255, +227,255,227,255,227,255,231,255,232,255,233,255,235,255,236,255,236,255,236,255,237,255,239,255,237,255,232,255,228,255,225,255, +223,255,223,255,224,255,225,255,224,255,225,255,227,255,229,255,231,255,234,255,239,255,244,255,249,255,0,0,6,0,11,0, +21,0,34,0,44,0,55,0,68,0,75,0,82,0,91,0,96,0,99,0,103,0,107,0,109,0,110,0,107,0,104,0, +100,0,94,0,88,0,81,0,69,0,57,0,46,0,34,0,24,0,16,0,10,0,8,0,5,0,0,0,251,255,246,255, +243,255,240,255,237,255,236,255,236,255,237,255,242,255,248,255,250,255,254,255,5,0,11,0,19,0,26,0,29,0,32,0, +35,0,40,0,45,0,52,0,60,0,65,0,69,0,73,0,78,0,80,0,82,0,83,0,84,0,84,0,79,0,74,0, +70,0,66,0,64,0,64,0,62,0,60,0,59,0,54,0,49,0,44,0,37,0,27,0,17,0,7,0,254,255,246,255, +239,255,232,255,220,255,208,255,197,255,188,255,176,255,161,255,145,255,134,255,123,255,109,255,96,255,86,255,77,255,67,255, +56,255,47,255,41,255,35,255,31,255,28,255,27,255,28,255,28,255,27,255,27,255,31,255,36,255,42,255,49,255,56,255, +65,255,73,255,82,255,90,255,97,255,107,255,119,255,129,255,138,255,150,255,161,255,170,255,180,255,188,255,195,255,203,255, +212,255,220,255,228,255,235,255,241,255,246,255,251,255,255,255,1,0,2,0,3,0,1,0,255,255,252,255,249,255,248,255, +247,255,245,255,242,255,240,255,240,255,240,255,240,255,240,255,239,255,241,255,242,255,241,255,242,255,245,255,247,255,250,255, +1,0,8,0,14,0,22,0,30,0,40,0,51,0,62,0,73,0,87,0,100,0,113,0,127,0,144,0,161,0,177,0, +192,0,208,0,223,0,237,0,249,0,3,1,13,1,22,1,27,1,30,1,32,1,31,1,30,1,29,1,26,1,21,1, +13,1,1,1,248,0,238,0,224,0,208,0,191,0,173,0,157,0,140,0,121,0,104,0,87,0,69,0,52,0,35,0, +20,0,4,0,245,255,231,255,218,255,210,255,205,255,199,255,191,255,187,255,187,255,187,255,187,255,186,255,185,255,186,255, +189,255,191,255,191,255,192,255,195,255,195,255,193,255,193,255,193,255,192,255,192,255,191,255,190,255,191,255,192,255,196,255, +200,255,204,255,210,255,216,255,220,255,228,255,235,255,241,255,250,255,4,0,13,0,24,0,36,0,45,0,55,0,64,0, +69,0,74,0,76,0,78,0,78,0,73,0,65,0,58,0,47,0,33,0,20,0,7,0,249,255,232,255,214,255,195,255, +177,255,159,255,142,255,124,255,105,255,91,255,81,255,74,255,68,255,67,255,69,255,74,255,81,255,90,255,101,255,112,255, +124,255,138,255,150,255,164,255,178,255,192,255,204,255,216,255,227,255,236,255,242,255,247,255,249,255,247,255,246,255,246,255, +243,255,239,255,236,255,233,255,228,255,221,255,215,255,211,255,208,255,203,255,198,255,192,255,187,255,184,255,181,255,179,255, +179,255,181,255,184,255,187,255,189,255,190,255,190,255,190,255,191,255,195,255,199,255,203,255,206,255,211,255,216,255,223,255, +228,255,231,255,232,255,233,255,233,255,234,255,235,255,238,255,242,255,247,255,255,255,10,0,22,0,33,0,44,0,55,0, +64,0,75,0,86,0,96,0,108,0,120,0,130,0,139,0,146,0,149,0,150,0,152,0,150,0,146,0,139,0,130,0, +120,0,110,0,100,0,92,0,85,0,77,0,68,0,60,0,52,0,42,0,31,0,19,0,10,0,3,0,253,255,247,255, +244,255,241,255,243,255,249,255,254,255,3,0,10,0,16,0,19,0,22,0,25,0,30,0,35,0,36,0,37,0,39,0, +40,0,42,0,44,0,45,0,45,0,45,0,43,0,38,0,32,0,27,0,21,0,14,0,9,0,6,0,1,0,254,255, +253,255,250,255,247,255,246,255,244,255,243,255,243,255,243,255,246,255,250,255,253,255,255,255,255,255,254,255,251,255,248,255, +246,255,244,255,238,255,230,255,226,255,222,255,214,255,208,255,205,255,200,255,193,255,190,255,188,255,185,255,186,255,189,255, +190,255,193,255,200,255,207,255,217,255,228,255,239,255,250,255,5,0,12,0,20,0,27,0,32,0,40,0,47,0,52,0, +58,0,64,0,66,0,69,0,70,0,67,0,63,0,60,0,55,0,47,0,36,0,26,0,16,0,6,0,251,255,240,255, +229,255,221,255,212,255,203,255,194,255,187,255,184,255,180,255,175,255,175,255,178,255,180,255,183,255,190,255,195,255,203,255, +211,255,216,255,222,255,229,255,234,255,239,255,244,255,247,255,250,255,253,255,1,0,3,0,5,0,8,0,11,0,12,0, +15,0,19,0,21,0,25,0,31,0,38,0,44,0,47,0,50,0,53,0,56,0,58,0,61,0,62,0,65,0,69,0, +72,0,74,0,78,0,79,0,78,0,77,0,74,0,69,0,64,0,58,0,52,0,44,0,35,0,27,0,21,0,13,0, +5,0,253,255,245,255,236,255,227,255,218,255,209,255,201,255,195,255,189,255,183,255,179,255,178,255,180,255,185,255,189,255, +195,255,203,255,210,255,217,255,225,255,232,255,237,255,243,255,249,255,253,255,2,0,5,0,7,0,10,0,13,0,14,0, +12,0,9,0,8,0,5,0,255,255,250,255,246,255,241,255,234,255,228,255,224,255,221,255,216,255,212,255,207,255,201,255, +194,255,190,255,186,255,179,255,172,255,167,255,163,255,161,255,160,255,158,255,158,255,161,255,164,255,167,255,170,255,174,255, +176,255,177,255,179,255,184,255,190,255,195,255,201,255,206,255,212,255,216,255,221,255,228,255,234,255,238,255,243,255,247,255, +249,255,252,255,0,0,5,0,9,0,14,0,19,0,23,0,29,0,35,0,39,0,42,0,46,0,51,0,55,0,59,0, +62,0,62,0,64,0,67,0,67,0,66,0,64,0,63,0,62,0,62,0,62,0,61,0,59,0,60,0,60,0,58,0, +56,0,56,0,55,0,54,0,54,0,53,0,53,0,54,0,55,0,58,0,61,0,63,0,68,0,74,0,78,0,83,0, +89,0,94,0,98,0,103,0,108,0,114,0,119,0,125,0,130,0,133,0,135,0,135,0,134,0,131,0,125,0,118,0, +112,0,105,0,97,0,88,0,77,0,69,0,62,0,50,0,39,0,27,0,13,0,0,0,245,255,234,255,224,255,216,255, +209,255,203,255,199,255,196,255,194,255,191,255,188,255,187,255,186,255,182,255,179,255,179,255,179,255,180,255,184,255,191,255, +198,255,204,255,210,255,216,255,220,255,224,255,227,255,227,255,229,255,231,255,232,255,231,255,232,255,234,255,236,255,237,255, +236,255,235,255,234,255,233,255,232,255,232,255,231,255,229,255,227,255,225,255,225,255,224,255,224,255,225,255,224,255,223,255, +223,255,223,255,222,255,222,255,222,255,220,255,217,255,214,255,210,255,204,255,200,255,198,255,195,255,192,255,189,255,187,255, +187,255,189,255,191,255,193,255,195,255,193,255,193,255,193,255,192,255,191,255,193,255,196,255,198,255,202,255,206,255,212,255, +220,255,226,255,231,255,233,255,235,255,239,255,242,255,243,255,242,255,241,255,243,255,247,255,248,255,248,255,250,255,251,255, +252,255,252,255,251,255,249,255,246,255,245,255,245,255,245,255,245,255,246,255,247,255,250,255,255,255,3,0,5,0,7,0, +9,0,10,0,11,0,11,0,12,0,12,0,12,0,12,0,11,0,12,0,13,0,12,0,9,0,8,0,5,0,1,0, +254,255,252,255,250,255,248,255,245,255,245,255,245,255,246,255,250,255,254,255,2,0,8,0,14,0,17,0,20,0,25,0, +28,0,31,0,35,0,39,0,45,0,50,0,53,0,58,0,64,0,68,0,71,0,76,0,78,0,80,0,82,0,83,0, +82,0,81,0,82,0,82,0,82,0,82,0,85,0,86,0,87,0,87,0,87,0,87,0,86,0,86,0,86,0,85,0, +83,0,82,0,81,0,79,0,78,0,77,0,78,0,80,0,80,0,78,0,76,0,74,0,73,0,71,0,68,0,64,0, +60,0,55,0,51,0,46,0,43,0,39,0,35,0,32,0,31,0,28,0,24,0,20,0,13,0,8,0,4,0,255,255, +250,255,244,255,238,255,233,255,229,255,226,255,224,255,220,255,215,255,213,255,211,255,206,255,202,255,199,255,197,255,195,255, +193,255,192,255,193,255,193,255,192,255,192,255,192,255,190,255,188,255,186,255,181,255,176,255,172,255,168,255,164,255,160,255, +157,255,152,255,149,255,146,255,144,255,143,255,142,255,141,255,142,255,143,255,141,255,141,255,141,255,138,255,137,255,138,255, +139,255,140,255,143,255,147,255,152,255,157,255,162,255,167,255,173,255,178,255,183,255,187,255,192,255,198,255,202,255,205,255, +210,255,215,255,221,255,226,255,230,255,235,255,240,255,243,255,245,255,247,255,248,255,249,255,249,255,247,255,247,255,247,255, +248,255,249,255,252,255,0,0,5,0,9,0,13,0,15,0,16,0,18,0,22,0,25,0,26,0,29,0,33,0,40,0, +45,0,49,0,53,0,60,0,67,0,72,0,76,0,80,0,84,0,86,0,88,0,89,0,90,0,91,0,91,0,91,0, +92,0,92,0,91,0,91,0,89,0,84,0,79,0,76,0,70,0,64,0,56,0,50,0,46,0,44,0,42,0,40,0, +39,0,39,0,37,0,34,0,33,0,32,0,30,0,27,0,26,0,25,0,24,0,25,0,24,0,25,0,27,0,28,0, +28,0,30,0,33,0,33,0,32,0,31,0,29,0,27,0,26,0,26,0,27,0,27,0,29,0,30,0,33,0,36,0, +39,0,41,0,41,0,41,0,40,0,37,0,35,0,33,0,30,0,27,0,27,0,25,0,22,0,20,0,18,0,15,0, +12,0,7,0,2,0,254,255,248,255,244,255,240,255,235,255,230,255,226,255,221,255,219,255,218,255,218,255,218,255,218,255, +219,255,220,255,220,255,220,255,221,255,223,255,224,255,226,255,229,255,231,255,233,255,235,255,237,255,237,255,237,255,238,255, +238,255,238,255,239,255,240,255,239,255,239,255,238,255,236,255,237,255,240,255,241,255,240,255,239,255,238,255,238,255,238,255, +237,255,236,255,236,255,236,255,237,255,238,255,240,255,243,255,245,255,245,255,245,255,245,255,243,255,239,255,235,255,232,255, +228,255,223,255,220,255,216,255,215,255,214,255,212,255,212,255,213,255,211,255,210,255,211,255,210,255,210,255,213,255,214,255, +215,255,219,255,221,255,224,255,231,255,236,255,240,255,244,255,249,255,253,255,0,0,3,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,3,0,3,0,1,0,255,255,253,255,252,255,250,255,245,255,243,255,241,255,237,255,236,255, +237,255,236,255,236,255,240,255,242,255,245,255,249,255,252,255,255,255,2,0,3,0,4,0,6,0,9,0,11,0,11,0, +12,0,15,0,17,0,19,0,19,0,19,0,19,0,18,0,15,0,13,0,11,0,7,0,5,0,4,0,2,0,1,0, +3,0,5,0,8,0,9,0,9,0,10,0,12,0,12,0,15,0,16,0,17,0,19,0,24,0,28,0,33,0,39,0, +45,0,49,0,53,0,57,0,59,0,60,0,60,0,60,0,59,0,56,0,52,0,50,0,47,0,43,0,39,0,38,0, +37,0,35,0,33,0,29,0,27,0,25,0,22,0,20,0,16,0,12,0,10,0,9,0,8,0,8,0,9,0,9,0, +11,0,12,0,12,0,13,0,12,0,9,0,8,0,5,0,1,0,255,255,254,255,251,255,249,255,247,255,244,255,242,255, +241,255,238,255,234,255,231,255,228,255,226,255,223,255,223,255,224,255,225,255,227,255,229,255,232,255,236,255,239,255,241,255, +244,255,246,255,246,255,247,255,248,255,248,255,248,255,247,255,247,255,247,255,245,255,243,255,240,255,238,255,235,255,231,255, +228,255,223,255,219,255,214,255,210,255,206,255,203,255,202,255,201,255,199,255,198,255,197,255,197,255,197,255,197,255,198,255, +199,255,200,255,201,255,202,255,204,255,207,255,208,255,211,255,214,255,218,255,223,255,228,255,232,255,237,255,240,255,243,255, +246,255,249,255,251,255,253,255,0,0,4,0,9,0,14,0,17,0,21,0,26,0,29,0,32,0,33,0,33,0,32,0, +33,0,34,0,34,0,33,0,34,0,35,0,35,0,36,0,35,0,35,0,34,0,31,0,28,0,26,0,23,0,21,0, +18,0,15,0,12,0,11,0,9,0,10,0,10,0,9,0,8,0,9,0,9,0,10,0,12,0,13,0,15,0,17,0, +19,0,22,0,27,0,30,0,33,0,36,0,38,0,42,0,44,0,47,0,50,0,53,0,56,0,59,0,62,0,64,0, +66,0,67,0,68,0,68,0,68,0,67,0,65,0,63,0,63,0,61,0,57,0,55,0,52,0,48,0,44,0,39,0, +32,0,26,0,21,0,15,0,10,0,7,0,5,0,1,0,253,255,251,255,247,255,243,255,239,255,235,255,231,255,227,255, +223,255,220,255,218,255,218,255,218,255,218,255,218,255,219,255,218,255,218,255,218,255,217,255,216,255,216,255,215,255,214,255, +214,255,214,255,212,255,212,255,211,255,209,255,208,255,206,255,204,255,201,255,199,255,196,255,194,255,193,255,193,255,192,255, +193,255,194,255,194,255,194,255,194,255,195,255,197,255,200,255,202,255,205,255,207,255,210,255,214,255,216,255,218,255,221,255, +222,255,224,255,228,255,230,255,230,255,232,255,233,255,235,255,238,255,240,255,242,255,244,255,246,255,249,255,251,255,253,255, +253,255,0,0,4,0,8,0,10,0,13,0,17,0,21,0,24,0,26,0,27,0,29,0,32,0,33,0,35,0,38,0, +39,0,40,0,42,0,43,0,41,0,40,0,38,0,36,0,34,0,30,0,28,0,26,0,24,0,23,0,23,0,23,0, +23,0,22,0,20,0,19,0,18,0,17,0,17,0,17,0,18,0,19,0,20,0,23,0,27,0,30,0,32,0,33,0, +33,0,34,0,34,0,34,0,34,0,34,0,33,0,35,0,35,0,35,0,36,0,37,0,36,0,35,0,33,0,31,0, +30,0,29,0,27,0,26,0,25,0,25,0,25,0,25,0,26,0,26,0,24,0,25,0,24,0,22,0,20,0,19,0, +18,0,16,0,17,0,18,0,18,0,18,0,19,0,19,0,19,0,18,0,17,0,17,0,17,0,15,0,14,0,14,0, +12,0,11,0,10,0,8,0,6,0,5,0,4,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,254,255,252,255, +250,255,248,255,246,255,244,255,242,255,241,255,239,255,238,255,238,255,237,255,235,255,234,255,234,255,231,255,230,255,229,255, +228,255,227,255,227,255,228,255,229,255,230,255,231,255,233,255,234,255,236,255,238,255,238,255,238,255,239,255,240,255,241,255, +241,255,242,255,243,255,243,255,243,255,244,255,244,255,242,255,242,255,243,255,241,255,239,255,237,255,235,255,233,255,230,255, +227,255,225,255,222,255,219,255,218,255,215,255,212,255,211,255,209,255,207,255,208,255,207,255,206,255,207,255,207,255,208,255, +209,255,211,255,214,255,216,255,218,255,221,255,224,255,226,255,230,255,231,255,233,255,235,255,237,255,239,255,242,255,244,255, +245,255,247,255,248,255,250,255,252,255,253,255,255,255,0,0,0,0,1,0,2,0,2,0,3,0,4,0,4,0,5,0, +6,0,6,0,8,0,10,0,11,0,11,0,12,0,12,0,13,0,13,0,14,0,13,0,12,0,13,0,14,0,14,0, +14,0,13,0,11,0,11,0,12,0,11,0,10,0,11,0,10,0,9,0,8,0,8,0,7,0,5,0,4,0,5,0, +4,0,5,0,5,0,5,0,5,0,7,0,9,0,11,0,11,0,13,0,14,0,15,0,16,0,17,0,18,0,19,0, +20,0,21,0,22,0,25,0,27,0,28,0,28,0,29,0,30,0,29,0,29,0,29,0,28,0,27,0,27,0,25,0, +24,0,24,0,23,0,21,0,21,0,19,0,18,0,16,0,15,0,13,0,12,0,10,0,9,0,8,0,6,0,6,0, +5,0,4,0,4,0,2,0,0,0,255,255,254,255,253,255,252,255,250,255,251,255,250,255,249,255,250,255,250,255,249,255, +250,255,250,255,250,255,252,255,252,255,251,255,253,255,253,255,253,255,254,255,255,255,254,255,0,0,1,0,1,0,0,0, +255,255,255,255,254,255,254,255,254,255,253,255,251,255,251,255,251,255,249,255,248,255,247,255,245,255,245,255,245,255,243,255, +242,255,242,255,241,255,242,255,241,255,241,255,241,255,241,255,240,255,240,255,241,255,241,255,241,255,241,255,241,255,240,255, +239,255,239,255,239,255,239,255,238,255,237,255,238,255,238,255,238,255,239,255,241,255,242,255,243,255,244,255,246,255,246,255, +247,255,249,255,250,255,251,255,253,255,0,0,3,0,6,0,9,0,11,0,13,0,16,0,18,0,19,0,20,0,21,0, +22,0,22,0,22,0,21,0,20,0,20,0,19,0,18,0,17,0,17,0,15,0,13,0,12,0,9,0,8,0,7,0, +6,0,5,0,5,0,5,0,4,0,4,0,4,0,6,0,6,0,6,0,8,0,9,0,10,0,10,0,10,0,10,0, +10,0,9,0,7,0,7,0,6,0,4,0,2,0,0,0,255,255,253,255,252,255,251,255,249,255,248,255,247,255,246,255, +246,255,245,255,245,255,245,255,247,255,247,255,247,255,250,255,252,255,252,255,253,255,253,255,254,255,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,253,255,251,255,249,255,248,255,248,255,246,255,243,255,242,255,241,255,238,255,237,255,236,255, +235,255,235,255,236,255,237,255,237,255,237,255,238,255,239,255,241,255,242,255,242,255,242,255,245,255,246,255,244,255,245,255, +248,255,248,255,248,255,249,255,249,255,250,255,251,255,249,255,249,255,249,255,248,255,248,255,248,255,249,255,250,255,251,255, +251,255,253,255,0,0,2,0,3,0,5,0,7,0,10,0,12,0,14,0,18,0,21,0,23,0,25,0,28,0,30,0, +30,0,31,0,34,0,33,0,32,0,33,0,33,0,31,0,31,0,30,0,28,0,26,0,26,0,25,0,23,0,21,0, +19,0,17,0,15,0,13,0,11,0,9,0,7,0,5,0,3,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0, +255,255,254,255,253,255,253,255,253,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,249,255,249,255,248,255,248,255, +247,255,247,255,247,255,248,255,248,255,249,255,249,255,250,255,251,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0, +4,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,7,0,7,0,5,0,5,0,3,0,1,0,0,0, +253,255,251,255,250,255,248,255,246,255,245,255,245,255,244,255,243,255,242,255,242,255,243,255,243,255,244,255,247,255,249,255, +251,255,252,255,255,255,1,0,2,0,4,0,8,0,9,0,10,0,13,0,13,0,14,0,16,0,17,0,18,0,18,0, +17,0,18,0,19,0,17,0,16,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,8,0,7,0,6,0,4,0, +3,0,3,0,2,0,1,0,0,0,255,255,254,255,252,255,252,255,252,255,250,255,249,255,248,255,247,255,245,255,245,255, +244,255,243,255,243,255,242,255,241,255,240,255,238,255,237,255,237,255,236,255,235,255,235,255,235,255,235,255,235,255,236,255, +237,255,238,255,239,255,240,255,241,255,243,255,244,255,245,255,247,255,248,255,248,255,249,255,250,255,251,255,252,255,253,255, +253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,252,255, +251,255,252,255,251,255,249,255,248,255,246,255,246,255,245,255,244,255,242,255,243,255,243,255,243,255,243,255,243,255,243,255, +244,255,244,255,245,255,246,255,247,255,248,255,249,255,250,255,253,255,255,255,0,0,2,0,4,0,5,0,6,0,8,0, +9,0,11,0,12,0,13,0,14,0,15,0,15,0,15,0,16,0,17,0,18,0,17,0,17,0,17,0,16,0,16,0, +17,0,16,0,16,0,16,0,15,0,15,0,17,0,16,0,16,0,17,0,18,0,17,0,17,0,18,0,20,0,20,0, +19,0,20,0,20,0,19,0,19,0,18,0,15,0,14,0,14,0,12,0,10,0,7,0,6,0,5,0,3,0,2,0, +2,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,251,255,250,255,251,255,251,255,251,255,251,255,252,255,251,255, +251,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255, +251,255,251,255,251,255,251,255,252,255,251,255,250,255,251,255,251,255,250,255,250,255,251,255,250,255,250,255,250,255,249,255, +248,255,247,255,246,255,246,255,246,255,246,255,244,255,243,255,243,255,242,255,241,255,240,255,239,255,239,255,240,255,239,255, +239,255,241,255,241,255,242,255,244,255,244,255,246,255,249,255,250,255,251,255,253,255,255,255,0,0,2,0,3,0,5,0, +7,0,8,0,9,0,10,0,12,0,13,0,13,0,13,0,13,0,14,0,14,0,14,0,13,0,13,0,14,0,12,0, +12,0,11,0,11,0,10,0,9,0,8,0,8,0,8,0,7,0,7,0,6,0,5,0,4,0,3,0,1,0,0,0, +0,0,0,0,254,255,252,255,252,255,252,255,252,255,251,255,249,255,248,255,247,255,247,255,246,255,244,255,244,255,244,255, +244,255,244,255,244,255,245,255,246,255,245,255,245,255,246,255,248,255,248,255,249,255,251,255,252,255,253,255,254,255,0,0, +1,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,9,0,9,0,10,0,9,0,8,0,8,0,7,0,6,0, +5,0,3,0,2,0,0,0,255,255,254,255,253,255,251,255,250,255,248,255,247,255,247,255,245,255,244,255,244,255,243,255, +242,255,242,255,242,255,242,255,242,255,241,255,241,255,242,255,242,255,242,255,243,255,244,255,244,255,245,255,246,255,247,255, +249,255,250,255,252,255,253,255,255,255,1,0,3,0,4,0,6,0,7,0,9,0,10,0,10,0,12,0,14,0,15,0, +16,0,16,0,17,0,18,0,19,0,20,0,21,0,20,0,19,0,19,0,19,0,18,0,17,0,16,0,15,0,14,0, +12,0,11,0,10,0,9,0,7,0,5,0,4,0,3,0,1,0,0,0,254,255,252,255,251,255,250,255,249,255,250,255, +249,255,249,255,250,255,250,255,249,255,250,255,251,255,250,255,252,255,253,255,253,255,254,255,255,255,0,0,2,0,3,0, +3,0,4,0,6,0,6,0,6,0,7,0,6,0,5,0,4,0,5,0,4,0,4,0,4,0,3,0,1,0,1,0, +1,0,0,0,255,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,249,255,248,255,248,255,248,255,248,255, +248,255,248,255,249,255,250,255,249,255,249,255,249,255,250,255,249,255,248,255,249,255,249,255,249,255,249,255,248,255,248,255, +249,255,249,255,249,255,250,255,251,255,250,255,250,255,250,255,252,255,253,255,254,255,255,255,1,0,2,0,3,0,5,0, +6,0,7,0,8,0,9,0,10,0,12,0,12,0,11,0,12,0,12,0,13,0,12,0,12,0,12,0,11,0,11,0, +11,0,11,0,9,0,9,0,8,0,6,0,6,0,5,0,4,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,251,255,251,255,251,255,249,255,248,255,247,255, +247,255,247,255,246,255,245,255,244,255,243,255,243,255,243,255,243,255,243,255,243,255,242,255,242,255,245,255,246,255,245,255, +245,255,247,255,247,255,248,255,249,255,248,255,249,255,251,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,2,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,5,0,5,0,6,0,6,0,5,0,5,0, +6,0,6,0,6,0,7,0,7,0,7,0,8,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0, +6,0,6,0,6,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0, +5,0,7,0,7,0,6,0,6,0,6,0,5,0,6,0,6,0,4,0,4,0,5,0,4,0,2,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255, +253,255,252,255,252,255,252,255,252,255,251,255,251,255,252,255,252,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,3,0,3,0,4,0,3,0,3,0,5,0, +6,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0,4,0,5,0,5,0,4,0,4,0,5,0, +4,0,4,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255,252,255,252,255,252,255,253,255, +253,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,253,255,253,255,252,255,253,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +1,0,0,0,255,255,1,0,1,0,255,255,255,255,255,255,254,255,255,255,254,255,253,255,253,255,253,255,252,255,252,255, +252,255,251,255,251,255,251,255,251,255,251,255,250,255,249,255,249,255,250,255,250,255,250,255,249,255,250,255,250,255,250,255, +250,255,250,255,250,255,250,255,251,255,252,255,253,255,252,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0, +5,0,5,0,5,0,6,0,7,0,7,0,6,0,6,0,6,0,5,0,4,0,3,0,4,0,4,0,3,0,2,0, +3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,3,0,4,0,3,0,3,0, +4,0,5,0,4,0,5,0,5,0,4,0,3,0,4,0,4,0,3,0,3,0,3,0,2,0,1,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,254,255,253,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,252,255, +252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255, +255,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,5,0, +4,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,255,255, +254,255,253,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,254,255,0,0,0,0,254,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,254,255,255,255,254,255,253,255,252,255,252,255,251,255,252,255,251,255,251,255,250,255, +250,255,250,255,250,255,251,255,250,255,251,255,251,255,250,255,251,255,251,255,253,255,254,255,254,255,254,255,255,255,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0, +2,0,1,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,2,0,3,0,2,0,2,0,3,0,2,0,1,0, +2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,254,255,254,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255, +254,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0, +2,0,2,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,1,0,1,0,2,0,2,0,3,0, +2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255, +255,255,1,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255, +254,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0, +255,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255, +254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0, +1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255, +255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,2,0,1,0,255,255,255,255,1,0,1,0,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,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,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, + +}; \ No newline at end of file diff --git a/src/client/sound/data/cow2.pcm b/src/client/sound/data/cow2.pcm new file mode 100755 index 0000000..1523308 --- /dev/null +++ b/src/client/sound/data/cow2.pcm @@ -0,0 +1,3779 @@ +unsigned char PCM_cow2[120832] = { +1,0,0,0,2,0,0,0,68,172,0,0,248,235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,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,1,0, +0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,2,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,255,255,254,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +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,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,255,255, +255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,255,255,1,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,1,0, +0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,255,255,255,255,1,0,255,255,0,0, +1,0,255,255,0,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,1,0,1,0,0,0,255,255,1,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,254,255,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,254,255,255,255,255,255,0,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,254,255,254,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,1,0,1,0,254,255,255,255,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0, +2,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,3,0,1,0,0,0,2,0, +3,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,0,0,0,0,0,0,1,0,3,0,2,0,1,0, +2,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,2,0,2,0,0,0,0,0,1,0,2,0,1,0,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255, +255,255,255,255,255,255,253,255,253,255,255,255,255,255,252,255,254,255,255,255,254,255,255,255,255,255,253,255,253,255,255,255, +255,255,254,255,254,255,253,255,254,255,255,255,254,255,253,255,254,255,254,255,253,255,252,255,253,255,254,255,255,255,255,255, +254,255,253,255,254,255,254,255,253,255,254,255,255,255,253,255,255,255,0,0,254,255,254,255,254,255,254,255,255,255,254,255, +253,255,254,255,254,255,255,255,255,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,254,255,255,255,254,255,254,255,0,0,255,255,254,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0, +2,0,1,0,255,255,0,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,2,0,3,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,1,0,2,0,1,0,2,0,2,0,2,0,3,0,3,0,1,0,0,0,0,0,2,0,3,0,1,0,1,0, +3,0,1,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,0,0,1,0,2,0, +1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,255,255,1,0, +2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,2,0, +1,0,255,255,0,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,3,0,3,0,1,0, +2,0,2,0,0,0,1,0,3,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +1,0,2,0,0,0,255,255,1,0,0,0,0,0,1,0,0,0,1,0,2,0,0,0,0,0,0,0,255,255,1,0, +1,0,0,0,2,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0, +1,0,255,255,254,255,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,254,255,253,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,254,255,254,255,255,255,255,255,255,255,255,255, +253,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,0,0,254,255,252,255,253,255,253,255,253,255,254,255,253,255, +253,255,255,255,254,255,253,255,254,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,254,255,253,255,255,255,0,0,0,0,255,255,253,255,255,255,1,0, +255,255,254,255,254,255,254,255,0,0,255,255,254,255,255,255,255,255,255,255,1,0,255,255,254,255,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0, +255,255,253,255,254,255,1,0,0,0,254,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255, +1,0,0,0,255,255,0,0,0,0,253,255,253,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0,255,255, +254,255,254,255,255,255,0,0,254,255,255,255,255,255,255,255,0,0,254,255,253,255,0,0,255,255,254,255,0,0,255,255, +253,255,255,255,255,255,255,255,0,0,254,255,255,255,0,0,254,255,0,0,2,0,0,0,0,0,0,0,255,255,0,0, +2,0,2,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,2,0, +1,0,0,0,2,0,2,0,3,0,4,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0, +1,0,2,0,3,0,0,0,2,0,3,0,0,0,1,0,3,0,1,0,1,0,3,0,0,0,2,0,3,0,1,0, +1,0,1,0,1,0,2,0,2,0,0,0,2,0,3,0,3,0,1,0,2,0,3,0,0,0,255,255,2,0,2,0, +1,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,0,0,1,0,3,0,1,0,1,0,2,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,254,255,1,0,1,0,254,255,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,253,255, +254,255,2,0,1,0,255,255,1,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255, +254,255,253,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,1,0,255,255,253,255,0,0, +0,0,254,255,254,255,255,255,0,0,0,0,255,255,0,0,255,255,253,255,255,255,255,255,255,255,2,0,255,255,253,255, +254,255,255,255,255,255,255,255,254,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +3,0,3,0,1,0,1,0,0,0,0,0,2,0,1,0,1,0,1,0,0,0,2,0,1,0,255,255,1,0,255,255, +254,255,0,0,0,0,0,0,1,0,255,255,254,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0, +2,0,1,0,255,255,1,0,3,0,1,0,1,0,3,0,3,0,3,0,2,0,0,0,1,0,2,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0, +0,0,255,255,1,0,0,0,254,255,255,255,255,255,0,0,2,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255, +0,0,0,0,0,0,0,0,254,255,253,255,0,0,255,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +1,0,1,0,255,255,254,255,255,255,255,255,1,0,3,0,1,0,0,0,2,0,0,0,254,255,1,0,1,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,0,0,2,0,2,0,0,0,255,255,1,0,2,0,0,0, +1,0,1,0,0,0,1,0,3,0,2,0,2,0,0,0,0,0,2,0,1,0,1,0,2,0,2,0,3,0,4,0, +3,0,4,0,4,0,1,0,0,0,3,0,3,0,2,0,2,0,3,0,2,0,255,255,1,0,4,0,1,0,1,0, +3,0,2,0,1,0,1,0,0,0,0,0,2,0,3,0,2,0,0,0,0,0,2,0,2,0,1,0,0,0,255,255, +1,0,3,0,3,0,2,0,1,0,1,0,3,0,4,0,2,0,3,0,2,0,1,0,1,0,0,0,255,255,2,0, +3,0,2,0,1,0,0,0,1,0,1,0,0,0,2,0,0,0,254,255,0,0,255,255,255,255,0,0,253,255,255,255, +2,0,255,255,254,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,254,255,254,255,254,255,254,255, +0,0,254,255,252,255,253,255,254,255,0,0,0,0,255,255,0,0,254,255,253,255,0,0,255,255,253,255,254,255,253,255, +253,255,254,255,252,255,253,255,254,255,253,255,0,0,2,0,255,255,254,255,254,255,255,255,255,255,254,255,253,255,251,255, +252,255,0,0,0,0,254,255,254,255,252,255,253,255,254,255,253,255,252,255,251,255,251,255,254,255,255,255,254,255,253,255, +252,255,254,255,255,255,252,255,254,255,254,255,253,255,255,255,254,255,253,255,255,255,253,255,253,255,255,255,253,255,253,255, +0,0,254,255,252,255,253,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,255,255,253,255,255,255,254,255,253,255, +254,255,253,255,251,255,252,255,253,255,254,255,254,255,253,255,253,255,253,255,255,255,0,0,251,255,252,255,0,0,254,255, +253,255,255,255,253,255,253,255,255,255,254,255,254,255,253,255,253,255,2,0,1,0,254,255,255,255,0,0,255,255,254,255, +254,255,0,0,255,255,254,255,2,0,0,0,254,255,0,0,255,255,254,255,255,255,253,255,255,255,3,0,2,0,1,0, +2,0,255,255,255,255,2,0,2,0,1,0,1,0,1,0,0,0,254,255,0,0,1,0,255,255,2,0,3,0,0,0, +3,0,4,0,1,0,1,0,0,0,254,255,0,0,0,0,0,0,1,0,255,255,0,0,2,0,1,0,3,0,3,0, +255,255,1,0,4,0,2,0,1,0,2,0,3,0,4,0,0,0,1,0,4,0,2,0,2,0,1,0,0,0,2,0, +1,0,1,0,4,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,3,0,4,0,3,0,3,0,4,0,5,0, +6,0,3,0,2,0,4,0,3,0,2,0,5,0,5,0,1,0,2,0,4,0,3,0,3,0,4,0,3,0,3,0, +5,0,6,0,6,0,5,0,5,0,6,0,2,0,3,0,6,0,4,0,3,0,6,0,4,0,3,0,4,0,3,0, +4,0,5,0,4,0,4,0,3,0,4,0,6,0,3,0,2,0,4,0,5,0,5,0,2,0,1,0,4,0,4,0, +5,0,5,0,3,0,3,0,4,0,3,0,4,0,4,0,3,0,5,0,3,0,1,0,3,0,3,0,2,0,6,0, +6,0,5,0,3,0,2,0,4,0,3,0,255,255,2,0,1,0,253,255,1,0,4,0,1,0,0,0,1,0,1,0, +2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +254,255,252,255,255,255,255,255,252,255,254,255,254,255,254,255,254,255,252,255,253,255,251,255,251,255,0,0,254,255,251,255, +253,255,252,255,250,255,253,255,253,255,252,255,253,255,253,255,253,255,253,255,251,255,251,255,254,255,253,255,251,255,254,255, +0,0,252,255,249,255,252,255,254,255,255,255,254,255,253,255,253,255,251,255,252,255,255,255,253,255,252,255,255,255,252,255, +249,255,252,255,253,255,253,255,255,255,255,255,254,255,253,255,253,255,253,255,252,255,253,255,0,0,255,255,253,255,0,0, +255,255,254,255,255,255,253,255,252,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,253,255,0,0,1,0,255,255,2,0,0,0,253,255,0,0,1,0,1,0,3,0,3,0,1,0,3,0,4,0, +2,0,1,0,2,0,3,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0, +255,255,2,0,3,0,0,0,1,0,3,0,2,0,2,0,1,0,0,0,2,0,0,0,0,0,2,0,0,0,1,0, +1,0,255,255,0,0,255,255,254,255,3,0,2,0,0,0,3,0,2,0,0,0,3,0,3,0,2,0,1,0,0,0, +1,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,0,0,0,0,1,0,3,0,4,0,3,0, +5,0,3,0,0,0,3,0,3,0,1,0,3,0,3,0,1,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,2,0,4,0, +3,0,2,0,1,0,1,0,2,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,255,255,254,255,1,0, +1,0,254,255,0,0,255,255,254,255,0,0,255,255,1,0,2,0,253,255,254,255,1,0,255,255,2,0,1,0,252,255, +1,0,1,0,254,255,1,0,1,0,0,0,2,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,1,0,253,255, +255,255,3,0,0,0,254,255,254,255,1,0,0,0,254,255,0,0,0,0,252,255,255,255,1,0,252,255,252,255,255,255, +255,255,255,255,0,0,1,0,0,0,255,255,253,255,254,255,255,255,254,255,254,255,253,255,252,255,253,255,255,255,252,255, +252,255,254,255,252,255,251,255,255,255,255,255,252,255,254,255,1,0,253,255,253,255,255,255,253,255,253,255,254,255,254,255, +254,255,253,255,252,255,254,255,253,255,250,255,251,255,251,255,252,255,252,255,250,255,251,255,253,255,252,255,251,255,250,255, +252,255,254,255,251,255,249,255,250,255,250,255,251,255,253,255,251,255,250,255,252,255,252,255,250,255,252,255,252,255,251,255, +251,255,251,255,253,255,252,255,250,255,253,255,255,255,252,255,252,255,253,255,253,255,0,0,254,255,251,255,254,255,253,255, +254,255,1,0,254,255,252,255,254,255,254,255,255,255,252,255,249,255,252,255,252,255,250,255,255,255,254,255,248,255,252,255, +1,0,254,255,253,255,254,255,252,255,253,255,255,255,254,255,252,255,251,255,252,255,254,255,253,255,254,255,1,0,255,255, +253,255,0,0,2,0,3,0,2,0,3,0,2,0,255,255,4,0,7,0,1,0,254,255,0,0,1,0,1,0,255,255, +0,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,3,0,2,0,255,255,2,0,3,0, +1,0,1,0,255,255,254,255,0,0,2,0,3,0,1,0,2,0,5,0,2,0,1,0,4,0,1,0,2,0,6,0, +3,0,4,0,7,0,2,0,255,255,3,0,2,0,1,0,3,0,3,0,2,0,3,0,3,0,3,0,4,0,3,0, +4,0,3,0,4,0,4,0,2,0,2,0,4,0,2,0,1,0,0,0,1,0,5,0,2,0,0,0,3,0,1,0, +1,0,2,0,254,255,0,0,3,0,0,0,0,0,4,0,5,0,3,0,2,0,3,0,2,0,1,0,4,0,3,0, +3,0,4,0,1,0,2,0,3,0,0,0,4,0,4,0,0,0,3,0,2,0,253,255,1,0,1,0,254,255,2,0, +4,0,0,0,0,0,2,0,2,0,255,255,255,255,1,0,1,0,0,0,253,255,251,255,253,255,1,0,1,0,254,255, +252,255,254,255,254,255,255,255,0,0,254,255,252,255,254,255,254,255,251,255,251,255,255,255,0,0,253,255,253,255,253,255, +253,255,253,255,254,255,255,255,252,255,249,255,254,255,255,255,251,255,253,255,253,255,254,255,1,0,1,0,255,255,253,255, +252,255,254,255,252,255,250,255,254,255,0,0,254,255,255,255,253,255,252,255,254,255,253,255,253,255,252,255,250,255,253,255, +1,0,252,255,247,255,250,255,251,255,250,255,252,255,253,255,252,255,252,255,255,255,255,255,253,255,252,255,254,255,252,255, +252,255,253,255,250,255,249,255,255,255,0,0,253,255,254,255,254,255,251,255,251,255,253,255,252,255,251,255,0,0,255,255, +252,255,254,255,254,255,252,255,254,255,0,0,254,255,252,255,252,255,255,255,251,255,249,255,254,255,253,255,251,255,253,255, +252,255,252,255,253,255,253,255,255,255,250,255,247,255,255,255,0,0,252,255,253,255,252,255,253,255,252,255,251,255,253,255, +253,255,251,255,252,255,252,255,252,255,252,255,250,255,252,255,252,255,250,255,251,255,251,255,249,255,250,255,250,255,250,255, +254,255,253,255,249,255,250,255,253,255,253,255,251,255,250,255,251,255,253,255,253,255,253,255,249,255,247,255,249,255,250,255, +249,255,251,255,251,255,250,255,251,255,251,255,250,255,249,255,250,255,253,255,252,255,251,255,254,255,251,255,250,255,254,255, +251,255,248,255,253,255,254,255,252,255,253,255,254,255,250,255,250,255,254,255,252,255,251,255,0,0,253,255,251,255,255,255, +254,255,252,255,255,255,0,0,253,255,250,255,251,255,250,255,247,255,252,255,251,255,245,255,252,255,0,0,249,255,251,255, +253,255,252,255,254,255,253,255,251,255,252,255,251,255,250,255,249,255,248,255,250,255,252,255,253,255,252,255,250,255,250,255, +250,255,250,255,253,255,252,255,251,255,253,255,253,255,252,255,252,255,250,255,251,255,252,255,250,255,251,255,253,255,252,255, +251,255,253,255,252,255,249,255,252,255,253,255,251,255,251,255,251,255,251,255,254,255,0,0,255,255,251,255,250,255,255,255, +1,0,253,255,253,255,254,255,0,0,1,0,255,255,253,255,253,255,251,255,252,255,252,255,251,255,253,255,252,255,249,255, +253,255,0,0,250,255,250,255,253,255,251,255,254,255,255,255,252,255,0,0,255,255,248,255,249,255,249,255,247,255,251,255, +253,255,251,255,254,255,254,255,252,255,252,255,254,255,253,255,252,255,253,255,255,255,255,255,0,0,255,255,253,255,254,255, +255,255,255,255,254,255,255,255,1,0,255,255,253,255,255,255,255,255,0,0,3,0,254,255,253,255,255,255,252,255,255,255, +2,0,255,255,1,0,2,0,1,0,4,0,2,0,2,0,3,0,255,255,255,255,0,0,254,255,0,0,0,0,254,255, +1,0,1,0,254,255,251,255,254,255,2,0,255,255,255,255,0,0,249,255,252,255,2,0,251,255,251,255,1,0,255,255, +253,255,250,255,250,255,1,0,254,255,251,255,3,0,1,0,252,255,255,255,0,0,255,255,255,255,251,255,252,255,0,0, +253,255,252,255,254,255,252,255,253,255,253,255,252,255,0,0,255,255,255,255,1,0,254,255,1,0,5,0,1,0,2,0, +3,0,254,255,255,255,0,0,252,255,255,255,1,0,254,255,253,255,254,255,0,0,0,0,1,0,255,255,253,255,1,0, +0,0,252,255,0,0,2,0,255,255,254,255,254,255,255,255,255,255,254,255,0,0,254,255,252,255,254,255,255,255,255,255, +255,255,254,255,0,0,255,255,252,255,255,255,255,255,252,255,252,255,252,255,254,255,254,255,253,255,0,0,0,0,254,255, +253,255,252,255,253,255,254,255,252,255,254,255,255,255,252,255,251,255,252,255,254,255,255,255,253,255,253,255,253,255,0,0, +5,0,1,0,251,255,254,255,1,0,1,0,253,255,252,255,2,0,2,0,0,0,4,0,2,0,254,255,2,0,4,0, +3,0,2,0,3,0,4,0,0,0,0,0,3,0,255,255,0,0,3,0,0,0,0,0,2,0,3,0,4,0,3,0, +255,255,0,0,3,0,3,0,1,0,254,255,255,255,254,255,253,255,3,0,1,0,251,255,2,0,9,0,3,0,3,0, +5,0,1,0,4,0,5,0,2,0,2,0,2,0,3,0,4,0,2,0,2,0,2,0,2,0,3,0,0,0,5,0, +11,0,4,0,2,0,5,0,3,0,4,0,5,0,3,0,4,0,4,0,5,0,8,0,8,0,8,0,4,0,3,0, +8,0,7,0,6,0,7,0,6,0,8,0,10,0,5,0,5,0,10,0,9,0,7,0,6,0,5,0,6,0,8,0, +9,0,7,0,4,0,7,0,9,0,7,0,5,0,5,0,4,0,3,0,3,0,4,0,3,0,3,0,6,0,7,0, +4,0,2,0,6,0,5,0,2,0,8,0,8,0,1,0,6,0,12,0,9,0,8,0,9,0,11,0,12,0,9,0, +7,0,5,0,3,0,6,0,12,0,9,0,4,0,5,0,8,0,8,0,9,0,7,0,6,0,11,0,11,0,9,0, +10,0,6,0,7,0,12,0,7,0,3,0,9,0,10,0,5,0,5,0,8,0,5,0,4,0,12,0,13,0,4,0, +2,0,6,0,5,0,3,0,7,0,12,0,9,0,7,0,9,0,8,0,9,0,11,0,7,0,6,0,5,0,5,0, +7,0,4,0,4,0,6,0,6,0,3,0,4,0,7,0,5,0,3,0,9,0,8,0,0,0,3,0,4,0,3,0, +10,0,5,0,253,255,0,0,0,0,2,0,5,0,0,0,1,0,4,0,0,0,1,0,5,0,3,0,2,0,2,0, +3,0,0,0,252,255,3,0,7,0,2,0,253,255,255,255,2,0,4,0,4,0,3,0,0,0,252,255,255,255,4,0, +3,0,255,255,3,0,6,0,255,255,255,255,3,0,1,0,5,0,6,0,254,255,254,255,2,0,254,255,253,255,254,255, +255,255,255,255,255,255,0,0,2,0,1,0,254,255,255,255,6,0,4,0,254,255,3,0,4,0,255,255,2,0,3,0, +2,0,2,0,2,0,1,0,2,0,3,0,6,0,7,0,3,0,0,0,2,0,6,0,5,0,1,0,3,0,8,0, +9,0,5,0,4,0,6,0,6,0,4,0,3,0,0,0,0,0,4,0,4,0,0,0,1,0,3,0,1,0,0,0, +2,0,0,0,255,255,3,0,3,0,1,0,2,0,3,0,4,0,7,0,3,0,2,0,7,0,5,0,1,0,0,0, +253,255,0,0,5,0,1,0,254,255,3,0,4,0,255,255,255,255,5,0,8,0,2,0,1,0,2,0,253,255,0,0, +5,0,253,255,254,255,4,0,255,255,254,255,2,0,3,0,2,0,255,255,255,255,1,0,0,0,1,0,0,0,254,255, +254,255,252,255,255,255,3,0,253,255,252,255,3,0,4,0,1,0,255,255,255,255,1,0,255,255,255,255,255,255,255,255, +3,0,5,0,5,0,3,0,252,255,3,0,11,0,2,0,2,0,6,0,0,0,4,0,5,0,254,255,4,0,7,0, +0,0,3,0,3,0,0,0,4,0,3,0,4,0,8,0,1,0,254,255,5,0,2,0,255,255,4,0,4,0,4,0, +6,0,1,0,255,255,3,0,3,0,0,0,1,0,1,0,254,255,1,0,2,0,252,255,0,0,3,0,253,255,255,255, +3,0,255,255,2,0,4,0,253,255,0,0,3,0,254,255,1,0,4,0,0,0,2,0,0,0,254,255,4,0,4,0, +254,255,254,255,255,255,255,255,254,255,251,255,254,255,3,0,253,255,248,255,255,255,1,0,252,255,253,255,254,255,254,255, +253,255,250,255,253,255,255,255,249,255,250,255,252,255,248,255,248,255,247,255,244,255,250,255,251,255,249,255,253,255,253,255, +253,255,255,255,251,255,249,255,253,255,252,255,249,255,248,255,249,255,252,255,252,255,249,255,248,255,247,255,245,255,248,255, +251,255,250,255,250,255,251,255,248,255,247,255,250,255,248,255,247,255,250,255,248,255,249,255,252,255,249,255,250,255,254,255, +253,255,255,255,253,255,252,255,254,255,250,255,251,255,3,0,253,255,252,255,2,0,253,255,252,255,0,0,254,255,0,0, +1,0,254,255,255,255,253,255,252,255,253,255,253,255,254,255,253,255,253,255,255,255,252,255,252,255,1,0,253,255,0,0, +7,0,0,0,249,255,253,255,255,255,251,255,252,255,3,0,3,0,255,255,0,0,251,255,253,255,4,0,253,255,250,255, +2,0,0,0,255,255,255,255,252,255,0,0,1,0,254,255,1,0,255,255,255,255,4,0,1,0,253,255,1,0,4,0, +255,255,251,255,2,0,3,0,252,255,1,0,2,0,253,255,255,255,254,255,251,255,0,0,255,255,254,255,2,0,2,0, +2,0,3,0,254,255,253,255,4,0,6,0,2,0,1,0,0,0,254,255,4,0,5,0,255,255,0,0,1,0,0,0, +5,0,0,0,250,255,0,0,0,0,253,255,255,255,254,255,253,255,2,0,3,0,253,255,252,255,255,255,253,255,255,255, +0,0,251,255,251,255,255,255,0,0,255,255,248,255,248,255,0,0,252,255,250,255,255,255,250,255,249,255,1,0,255,255, +251,255,251,255,252,255,252,255,252,255,252,255,248,255,248,255,255,255,0,0,252,255,0,0,254,255,248,255,251,255,254,255, +253,255,253,255,254,255,251,255,251,255,253,255,250,255,250,255,255,255,253,255,251,255,253,255,254,255,253,255,249,255,251,255, +5,0,2,0,247,255,246,255,247,255,251,255,0,0,254,255,252,255,251,255,248,255,248,255,251,255,252,255,249,255,245,255, +247,255,247,255,248,255,251,255,250,255,248,255,248,255,250,255,253,255,248,255,246,255,252,255,253,255,249,255,250,255,252,255, +252,255,246,255,243,255,245,255,251,255,0,0,254,255,249,255,251,255,251,255,253,255,0,0,250,255,247,255,254,255,254,255, +250,255,251,255,253,255,251,255,250,255,252,255,251,255,248,255,250,255,252,255,255,255,255,255,253,255,1,0,1,0,253,255, +0,0,254,255,252,255,2,0,0,0,250,255,249,255,250,255,252,255,252,255,251,255,249,255,248,255,253,255,253,255,247,255, +249,255,251,255,250,255,255,255,255,255,254,255,255,255,253,255,254,255,0,0,0,0,255,255,254,255,4,0,3,0,249,255, +251,255,1,0,255,255,0,0,1,0,0,0,1,0,1,0,4,0,2,0,2,0,7,0,4,0,0,0,5,0,2,0, +0,0,6,0,5,0,255,255,254,255,1,0,0,0,255,255,5,0,5,0,4,0,6,0,4,0,6,0,9,0,7,0, +12,0,10,0,255,255,3,0,6,0,1,0,6,0,7,0,6,0,13,0,13,0,4,0,3,0,9,0,7,0,1,0, +255,255,1,0,2,0,0,0,254,255,5,0,6,0,3,0,9,0,9,0,3,0,2,0,1,0,6,0,6,0,250,255, +255,255,6,0,0,0,255,255,255,255,2,0,6,0,0,0,255,255,1,0,254,255,6,0,7,0,2,0,6,0,0,0, +253,255,5,0,2,0,1,0,3,0,253,255,254,255,0,0,250,255,251,255,254,255,0,0,4,0,2,0,0,0,1,0, +4,0,4,0,253,255,254,255,2,0,0,0,4,0,7,0,2,0,1,0,4,0,5,0,5,0,3,0,1,0,255,255, +255,255,255,255,252,255,252,255,254,255,255,255,4,0,0,0,247,255,250,255,255,255,253,255,251,255,250,255,251,255,252,255, +251,255,248,255,248,255,248,255,250,255,254,255,252,255,248,255,255,255,1,0,251,255,255,255,254,255,249,255,3,0,8,0, +255,255,251,255,254,255,2,0,253,255,246,255,253,255,255,255,248,255,253,255,0,0,249,255,252,255,3,0,2,0,255,255, +253,255,250,255,248,255,254,255,2,0,252,255,252,255,3,0,255,255,250,255,255,255,253,255,248,255,250,255,253,255,254,255, +1,0,4,0,3,0,0,0,254,255,253,255,254,255,0,0,255,255,1,0,3,0,6,0,7,0,7,0,4,0,0,0, +3,0,7,0,5,0,8,0,10,0,6,0,10,0,11,0,0,0,3,0,12,0,7,0,5,0,9,0,4,0,7,0, +14,0,8,0,4,0,4,0,2,0,5,0,5,0,1,0,4,0,5,0,1,0,255,255,252,255,253,255,3,0,6,0, +2,0,250,255,251,255,5,0,4,0,1,0,6,0,6,0,6,0,7,0,2,0,255,255,0,0,0,0,2,0,5,0, +4,0,1,0,3,0,4,0,255,255,0,0,4,0,255,255,2,0,11,0,1,0,253,255,5,0,255,255,253,255,4,0, +2,0,2,0,8,0,4,0,0,0,2,0,1,0,255,255,255,255,0,0,255,255,253,255,252,255,250,255,249,255,249,255, +250,255,254,255,255,255,249,255,253,255,255,255,247,255,246,255,245,255,243,255,249,255,246,255,240,255,246,255,248,255,247,255, +250,255,247,255,241,255,240,255,242,255,246,255,242,255,239,255,244,255,245,255,245,255,250,255,249,255,247,255,252,255,251,255, +246,255,250,255,254,255,253,255,249,255,247,255,244,255,247,255,251,255,252,255,254,255,2,0,1,0,253,255,250,255,247,255, +248,255,248,255,241,255,239,255,246,255,248,255,245,255,248,255,245,255,241,255,245,255,244,255,237,255,239,255,247,255,248,255, +241,255,240,255,246,255,249,255,251,255,250,255,244,255,245,255,249,255,247,255,247,255,244,255,243,255,245,255,246,255,250,255, +253,255,248,255,246,255,245,255,246,255,249,255,249,255,253,255,255,255,247,255,244,255,246,255,248,255,251,255,246,255,242,255, +248,255,0,0,1,0,251,255,251,255,250,255,246,255,255,255,0,0,243,255,253,255,1,0,244,255,251,255,249,255,243,255, +1,0,252,255,245,255,254,255,254,255,254,255,1,0,253,255,253,255,250,255,249,255,255,255,251,255,248,255,253,255,251,255, +252,255,251,255,243,255,247,255,0,0,254,255,252,255,252,255,249,255,248,255,254,255,251,255,244,255,251,255,252,255,250,255, +2,0,2,0,251,255,252,255,252,255,253,255,250,255,249,255,255,255,3,0,4,0,2,0,254,255,0,0,5,0,5,0, +0,0,248,255,3,0,12,0,255,255,0,0,6,0,255,255,5,0,10,0,5,0,8,0,3,0,0,0,1,0,251,255, +2,0,9,0,1,0,0,0,3,0,4,0,5,0,2,0,3,0,9,0,7,0,1,0,4,0,13,0,12,0,5,0, +7,0,10,0,6,0,4,0,5,0,11,0,14,0,9,0,9,0,10,0,9,0,8,0,8,0,9,0,11,0,15,0, +13,0,5,0,5,0,11,0,8,0,8,0,10,0,8,0,15,0,19,0,14,0,18,0,20,0,13,0,8,0,10,0, +15,0,11,0,7,0,8,0,7,0,7,0,8,0,7,0,6,0,0,0,254,255,1,0,0,0,3,0,2,0,252,255, +2,0,7,0,2,0,7,0,6,0,3,0,10,0,11,0,10,0,11,0,9,0,12,0,8,0,254,255,4,0,11,0, +4,0,5,0,12,0,11,0,9,0,5,0,1,0,3,0,4,0,3,0,5,0,3,0,5,0,12,0,8,0,11,0, +16,0,4,0,2,0,3,0,254,255,6,0,4,0,253,255,5,0,3,0,0,0,7,0,1,0,4,0,13,0,5,0, +4,0,7,0,4,0,6,0,0,0,0,0,10,0,9,0,9,0,9,0,3,0,8,0,11,0,8,0,8,0,4,0, +2,0,8,0,7,0,2,0,255,255,3,0,5,0,1,0,5,0,4,0,0,0,9,0,9,0,4,0,8,0,4,0, +9,0,14,0,3,0,9,0,19,0,11,0,14,0,13,0,4,0,14,0,17,0,5,0,6,0,8,0,8,0,13,0, +10,0,8,0,11,0,8,0,10,0,14,0,10,0,14,0,14,0,7,0,13,0,10,0,0,0,8,0,11,0,2,0, +3,0,4,0,1,0,5,0,7,0,5,0,2,0,5,0,7,0,1,0,3,0,4,0,252,255,2,0,4,0,250,255, +252,255,255,255,251,255,0,0,0,0,0,0,2,0,0,0,5,0,7,0,0,0,4,0,9,0,5,0,252,255,251,255, +4,0,3,0,250,255,254,255,0,0,0,0,3,0,252,255,251,255,1,0,254,255,2,0,6,0,2,0,255,255,2,0, +11,0,6,0,250,255,3,0,2,0,243,255,253,255,2,0,249,255,0,0,4,0,254,255,251,255,246,255,249,255,254,255, +252,255,0,0,254,255,254,255,5,0,253,255,252,255,6,0,253,255,254,255,6,0,253,255,1,0,8,0,3,0,8,0, +2,0,248,255,3,0,4,0,255,255,255,255,251,255,5,0,7,0,251,255,3,0,2,0,249,255,8,0,7,0,254,255, +7,0,2,0,0,0,7,0,255,255,1,0,4,0,1,0,10,0,8,0,254,255,0,0,254,255,2,0,6,0,3,0, +12,0,9,0,252,255,4,0,12,0,8,0,3,0,254,255,254,255,254,255,1,0,9,0,7,0,5,0,8,0,3,0, +10,0,19,0,13,0,11,0,12,0,11,0,14,0,9,0,10,0,18,0,10,0,6,0,13,0,8,0,11,0,19,0, +11,0,6,0,15,0,18,0,15,0,17,0,21,0,20,0,13,0,7,0,10,0,12,0,14,0,19,0,17,0,14,0, +19,0,17,0,12,0,11,0,11,0,15,0,14,0,7,0,13,0,19,0,14,0,12,0,13,0,9,0,15,0,22,0, +12,0,8,0,15,0,11,0,7,0,12,0,11,0,14,0,21,0,18,0,12,0,11,0,10,0,10,0,8,0,8,0, +5,0,255,255,8,0,15,0,1,0,255,255,9,0,6,0,2,0,1,0,252,255,254,255,2,0,1,0,3,0,1,0, +251,255,254,255,0,0,252,255,251,255,254,255,255,255,4,0,254,255,249,255,0,0,252,255,250,255,3,0,250,255,244,255, +0,0,3,0,4,0,3,0,255,255,8,0,3,0,246,255,254,255,254,255,250,255,3,0,255,255,249,255,253,255,2,0, +12,0,9,0,245,255,242,255,252,255,3,0,1,0,252,255,3,0,7,0,3,0,3,0,2,0,251,255,250,255,254,255, +2,0,254,255,250,255,3,0,5,0,250,255,250,255,0,0,251,255,250,255,253,255,247,255,253,255,10,0,2,0,254,255, +6,0,254,255,252,255,2,0,250,255,252,255,3,0,255,255,3,0,1,0,250,255,2,0,4,0,1,0,4,0,253,255, +253,255,3,0,249,255,250,255,7,0,0,0,250,255,0,0,0,0,3,0,6,0,2,0,5,0,7,0,2,0,6,0, +8,0,3,0,4,0,6,0,5,0,5,0,3,0,9,0,13,0,4,0,6,0,11,0,6,0,10,0,14,0,13,0, +14,0,3,0,0,0,12,0,10,0,12,0,19,0,11,0,4,0,4,0,9,0,17,0,8,0,3,0,11,0,7,0, +1,0,3,0,0,0,5,0,10,0,1,0,250,255,254,255,2,0,5,0,11,0,9,0,1,0,253,255,252,255,249,255, +249,255,253,255,2,0,255,255,249,255,254,255,0,0,251,255,0,0,2,0,255,255,1,0,253,255,250,255,0,0,1,0, +254,255,255,255,3,0,4,0,255,255,253,255,0,0,1,0,5,0,8,0,2,0,251,255,254,255,2,0,253,255,254,255, +0,0,245,255,246,255,2,0,247,255,240,255,0,0,4,0,249,255,249,255,0,0,2,0,3,0,0,0,246,255,251,255, +0,0,244,255,246,255,3,0,249,255,244,255,252,255,249,255,251,255,1,0,249,255,246,255,249,255,248,255,241,255,233,255, +245,255,255,255,236,255,228,255,244,255,248,255,241,255,248,255,250,255,244,255,249,255,0,0,249,255,243,255,241,255,243,255, +250,255,249,255,241,255,242,255,241,255,241,255,252,255,5,0,2,0,1,0,1,0,253,255,254,255,4,0,3,0,254,255, +255,255,3,0,5,0,0,0,254,255,7,0,3,0,252,255,4,0,0,0,241,255,247,255,0,0,252,255,250,255,0,0, +3,0,2,0,3,0,3,0,1,0,1,0,254,255,1,0,4,0,0,0,1,0,255,255,3,0,20,0,10,0,250,255, +14,0,10,0,247,255,9,0,17,0,0,0,3,0,16,0,11,0,9,0,18,0,16,0,8,0,14,0,12,0,5,0, +14,0,11,0,3,0,7,0,8,0,12,0,13,0,9,0,16,0,10,0,2,0,12,0,9,0,6,0,14,0,6,0, +5,0,4,0,250,255,4,0,7,0,253,255,7,0,5,0,255,255,12,0,8,0,253,255,2,0,11,0,12,0,5,0, +4,0,11,0,7,0,5,0,10,0,12,0,10,0,9,0,16,0,17,0,1,0,254,255,6,0,2,0,255,255,255,255, +2,0,255,255,240,255,248,255,15,0,10,0,2,0,7,0,8,0,13,0,9,0,252,255,1,0,3,0,1,0,9,0, +0,0,247,255,252,255,249,255,252,255,1,0,248,255,250,255,254,255,253,255,2,0,254,255,250,255,252,255,247,255,255,255, +3,0,246,255,251,255,249,255,236,255,248,255,254,255,246,255,247,255,246,255,250,255,253,255,243,255,248,255,252,255,248,255, +1,0,1,0,253,255,255,255,242,255,233,255,244,255,251,255,249,255,245,255,252,255,1,0,246,255,251,255,4,0,252,255, +7,0,16,0,8,0,14,0,15,0,8,0,9,0,2,0,252,255,6,0,10,0,2,0,254,255,6,0,10,0,9,0, +11,0,8,0,4,0,1,0,252,255,10,0,16,0,2,0,6,0,10,0,3,0,15,0,13,0,254,255,5,0,5,0, +250,255,3,0,11,0,7,0,5,0,5,0,1,0,2,0,5,0,2,0,3,0,7,0,4,0,4,0,10,0,8,0, +8,0,8,0,12,0,20,0,10,0,5,0,6,0,250,255,0,0,8,0,246,255,247,255,5,0,5,0,9,0,4,0, +249,255,254,255,5,0,4,0,252,255,254,255,11,0,6,0,255,255,5,0,2,0,4,0,6,0,248,255,255,255,6,0, +255,255,8,0,8,0,251,255,3,0,7,0,4,0,12,0,5,0,247,255,249,255,5,0,13,0,10,0,3,0,2,0, +254,255,254,255,1,0,254,255,2,0,6,0,255,255,4,0,8,0,254,255,1,0,7,0,254,255,255,255,4,0,0,0, +5,0,10,0,255,255,251,255,9,0,17,0,10,0,5,0,9,0,7,0,3,0,8,0,5,0,253,255,6,0,16,0, +7,0,1,0,9,0,6,0,3,0,7,0,5,0,6,0,6,0,254,255,3,0,3,0,250,255,2,0,4,0,255,255, +5,0,253,255,246,255,253,255,245,255,245,255,253,255,246,255,245,255,249,255,250,255,251,255,249,255,1,0,2,0,238,255, +236,255,248,255,245,255,242,255,242,255,244,255,249,255,254,255,0,0,242,255,238,255,3,0,0,0,241,255,251,255,251,255, +241,255,246,255,255,255,3,0,252,255,246,255,250,255,251,255,1,0,4,0,246,255,0,0,10,0,249,255,244,255,249,255, +247,255,248,255,246,255,246,255,0,0,1,0,248,255,248,255,250,255,244,255,243,255,250,255,236,255,224,255,238,255,243,255, +244,255,254,255,246,255,240,255,255,255,253,255,238,255,237,255,246,255,252,255,249,255,244,255,238,255,240,255,253,255,0,0, +248,255,247,255,248,255,253,255,252,255,242,255,252,255,6,0,253,255,0,0,1,0,249,255,2,0,2,0,250,255,1,0, +2,0,1,0,12,0,9,0,253,255,250,255,255,255,9,0,15,0,7,0,2,0,2,0,1,0,5,0,9,0,254,255, +247,255,5,0,9,0,253,255,0,0,2,0,254,255,6,0,4,0,0,0,5,0,249,255,250,255,5,0,249,255,4,0, +26,0,12,0,14,0,26,0,13,0,19,0,30,0,18,0,14,0,13,0,12,0,17,0,9,0,3,0,10,0,9,0, +4,0,6,0,6,0,255,255,253,255,10,0,15,0,5,0,252,255,253,255,4,0,1,0,240,255,238,255,245,255,238,255, +238,255,253,255,255,255,248,255,1,0,10,0,253,255,246,255,249,255,243,255,244,255,250,255,248,255,251,255,251,255,250,255, +254,255,252,255,251,255,3,0,2,0,253,255,254,255,13,0,20,0,6,0,7,0,15,0,0,0,6,0,26,0,21,0, +13,0,7,0,0,0,249,255,239,255,244,255,246,255,238,255,255,255,255,255,236,255,252,255,253,255,236,255,250,255,250,255, +235,255,244,255,241,255,234,255,244,255,240,255,234,255,241,255,246,255,250,255,254,255,250,255,250,255,0,0,252,255,250,255, +0,0,250,255,249,255,3,0,251,255,240,255,246,255,251,255,2,0,255,255,241,255,248,255,254,255,242,255,246,255,1,0, +252,255,251,255,3,0,0,0,247,255,249,255,253,255,252,255,252,255,247,255,239,255,248,255,1,0,245,255,235,255,250,255, +10,0,248,255,223,255,235,255,3,0,2,0,248,255,252,255,254,255,240,255,243,255,2,0,244,255,231,255,242,255,244,255, +244,255,251,255,250,255,251,255,252,255,254,255,7,0,2,0,248,255,5,0,11,0,4,0,5,0,2,0,244,255,238,255, +238,255,236,255,244,255,244,255,228,255,231,255,237,255,219,255,215,255,230,255,233,255,233,255,233,255,235,255,237,255,218,255, +211,255,224,255,215,255,213,255,228,255,219,255,214,255,224,255,211,255,208,255,222,255,212,255,211,255,229,255,217,255,209,255, +229,255,225,255,216,255,230,255,221,255,204,255,211,255,223,255,227,255,214,255,209,255,232,255,237,255,228,255,237,255,241,255, +243,255,245,255,232,255,232,255,249,255,4,0,12,0,8,0,4,0,10,0,6,0,3,0,9,0,11,0,16,0,20,0, +15,0,7,0,2,0,5,0,9,0,4,0,9,0,13,0,3,0,1,0,7,0,0,0,246,255,255,255,10,0,5,0, +7,0,18,0,16,0,13,0,21,0,30,0,35,0,32,0,28,0,33,0,38,0,37,0,27,0,30,0,51,0,51,0, +44,0,51,0,50,0,63,0,75,0,50,0,50,0,73,0,64,0,66,0,78,0,68,0,71,0,80,0,61,0,52,0, +66,0,69,0,57,0,50,0,38,0,16,0,22,0,43,0,42,0,29,0,19,0,22,0,32,0,16,0,6,0,18,0, +7,0,254,255,7,0,247,255,235,255,249,255,2,0,254,255,244,255,244,255,5,0,3,0,250,255,4,0,9,0,11,0, +19,0,13,0,0,0,251,255,255,255,2,0,252,255,242,255,236,255,245,255,2,0,245,255,230,255,248,255,7,0,250,255, +251,255,4,0,245,255,235,255,247,255,243,255,223,255,223,255,227,255,220,255,227,255,231,255,216,255,216,255,225,255,221,255, +224,255,228,255,216,255,211,255,212,255,208,255,209,255,212,255,209,255,208,255,210,255,211,255,211,255,219,255,227,255,219,255, +210,255,217,255,227,255,235,255,230,255,218,255,230,255,245,255,239,255,243,255,252,255,250,255,249,255,240,255,234,255,238,255, +236,255,240,255,245,255,234,255,239,255,249,255,245,255,248,255,253,255,246,255,242,255,239,255,243,255,253,255,249,255,250,255, +2,0,250,255,247,255,0,0,0,0,255,255,0,0,255,255,253,255,254,255,1,0,255,255,254,255,7,0,3,0,252,255, +11,0,15,0,3,0,14,0,23,0,20,0,26,0,25,0,24,0,36,0,28,0,19,0,33,0,36,0,35,0,43,0, +37,0,34,0,31,0,23,0,43,0,53,0,26,0,16,0,24,0,25,0,31,0,31,0,33,0,44,0,37,0,29,0, +36,0,30,0,20,0,31,0,42,0,33,0,32,0,43,0,42,0,40,0,32,0,9,0,21,0,34,0,9,0,19,0, +38,0,13,0,12,0,17,0,4,0,25,0,33,0,12,0,17,0,15,0,4,0,12,0,12,0,23,0,38,0,18,0, +11,0,29,0,25,0,16,0,17,0,12,0,13,0,19,0,19,0,16,0,15,0,13,0,17,0,24,0,14,0,5,0, +12,0,14,0,13,0,19,0,18,0,15,0,17,0,22,0,23,0,15,0,12,0,17,0,18,0,21,0,26,0,22,0, +18,0,22,0,22,0,14,0,12,0,20,0,21,0,13,0,6,0,5,0,7,0,0,0,255,255,10,0,5,0,253,255, +0,0,249,255,248,255,254,255,242,255,239,255,249,255,244,255,235,255,237,255,241,255,233,255,228,255,240,255,239,255,231,255, +235,255,222,255,213,255,227,255,232,255,232,255,218,255,202,255,225,255,226,255,210,255,232,255,224,255,203,255,229,255,233,255, +213,255,216,255,224,255,233,255,233,255,225,255,228,255,225,255,230,255,233,255,220,255,230,255,238,255,227,255,235,255,225,255, +211,255,228,255,232,255,223,255,221,255,215,255,224,255,224,255,213,255,222,255,222,255,226,255,242,255,229,255,220,255,232,255, +233,255,225,255,213,255,221,255,237,255,216,255,208,255,225,255,214,255,214,255,234,255,232,255,231,255,230,255,228,255,233,255, +235,255,240,255,242,255,239,255,255,255,8,0,254,255,3,0,10,0,4,0,4,0,3,0,254,255,255,255,11,0,16,0, +8,0,9,0,14,0,7,0,8,0,9,0,1,0,2,0,2,0,1,0,7,0,6,0,8,0,14,0,9,0,9,0, +10,0,255,255,3,0,13,0,8,0,4,0,8,0,12,0,9,0,4,0,6,0,9,0,11,0,12,0,4,0,9,0, +19,0,255,255,252,255,25,0,13,0,246,255,10,0,11,0,255,255,16,0,22,0,24,0,37,0,32,0,30,0,38,0, +31,0,38,0,46,0,31,0,31,0,45,0,38,0,31,0,35,0,32,0,25,0,34,0,35,0,16,0,21,0,38,0, +29,0,22,0,20,0,13,0,18,0,15,0,10,0,17,0,8,0,15,0,33,0,17,0,20,0,32,0,8,0,12,0, +33,0,25,0,29,0,32,0,29,0,49,0,49,0,26,0,29,0,36,0,33,0,40,0,42,0,33,0,30,0,33,0, +29,0,28,0,36,0,36,0,40,0,45,0,27,0,22,0,35,0,24,0,15,0,27,0,25,0,18,0,17,0,12,0, +8,0,1,0,5,0,19,0,8,0,248,255,3,0,15,0,17,0,19,0,21,0,17,0,6,0,5,0,17,0,18,0, +9,0,12,0,27,0,29,0,23,0,37,0,46,0,39,0,43,0,37,0,24,0,41,0,44,0,36,0,60,0,50,0, +16,0,31,0,42,0,29,0,25,0,12,0,4,0,15,0,19,0,17,0,11,0,3,0,4,0,251,255,241,255,245,255, +251,255,250,255,242,255,239,255,235,255,217,255,214,255,221,255,208,255,213,255,224,255,206,255,208,255,221,255,219,255,229,255, +241,255,241,255,235,255,231,255,241,255,237,255,228,255,239,255,235,255,238,255,252,255,231,255,233,255,2,0,239,255,238,255, +2,0,243,255,243,255,250,255,239,255,243,255,244,255,236,255,244,255,238,255,215,255,210,255,220,255,208,255,184,255,189,255, +188,255,169,255,182,255,197,255,181,255,175,255,179,255,171,255,155,255,148,255,150,255,134,255,135,255,161,255,146,255,138,255, +166,255,148,255,129,255,139,255,129,255,137,255,149,255,133,255,149,255,170,255,169,255,186,255,192,255,180,255,189,255,201,255, +214,255,224,255,226,255,237,255,239,255,243,255,1,0,244,255,226,255,238,255,238,255,231,255,249,255,5,0,252,255,253,255, +7,0,0,0,243,255,234,255,223,255,223,255,232,255,221,255,202,255,208,255,219,255,203,255,185,255,190,255,194,255,190,255, +184,255,178,255,186,255,202,255,215,255,227,255,226,255,231,255,247,255,248,255,253,255,255,255,242,255,8,0,33,0,23,0, +35,0,44,0,36,0,65,0,83,0,71,0,82,0,91,0,94,0,115,0,130,0,129,0,121,0,119,0,127,0,123,0, +111,0,100,0,98,0,103,0,82,0,67,0,78,0,60,0,46,0,61,0,46,0,31,0,35,0,20,0,3,0,250,255, +240,255,243,255,241,255,235,255,232,255,227,255,229,255,225,255,212,255,218,255,220,255,215,255,236,255,2,0,254,255,1,0, +21,0,19,0,3,0,5,0,3,0,2,0,27,0,26,0,4,0,13,0,21,0,20,0,35,0,33,0,20,0,33,0, +49,0,46,0,31,0,31,0,47,0,51,0,35,0,15,0,3,0,252,255,244,255,242,255,240,255,234,255,232,255,224,255, +213,255,215,255,207,255,203,255,214,255,205,255,196,255,202,255,202,255,207,255,215,255,210,255,195,255,181,255,187,255,192,255, +195,255,212,255,208,255,208,255,240,255,231,255,213,255,236,255,238,255,235,255,252,255,252,255,252,255,254,255,255,255,10,0, +3,0,2,0,16,0,1,0,249,255,8,0,14,0,21,0,9,0,254,255,22,0,24,0,15,0,35,0,42,0,37,0, +24,0,0,0,6,0,14,0,5,0,17,0,10,0,244,255,250,255,242,255,227,255,234,255,238,255,238,255,231,255,218,255, +223,255,233,255,241,255,249,255,248,255,247,255,243,255,237,255,243,255,233,255,228,255,0,0,3,0,1,0,22,0,8,0, +250,255,17,0,15,0,3,0,10,0,12,0,21,0,29,0,30,0,41,0,36,0,28,0,36,0,23,0,14,0,22,0, +8,0,9,0,32,0,29,0,24,0,30,0,23,0,14,0,10,0,18,0,20,0,4,0,12,0,19,0,253,255,255,255, +0,0,224,255,221,255,239,255,236,255,238,255,240,255,229,255,229,255,242,255,243,255,239,255,252,255,251,255,236,255,0,0, +8,0,240,255,246,255,0,0,239,255,234,255,239,255,248,255,4,0,6,0,16,0,17,0,6,0,21,0,20,0,255,255, +9,0,9,0,251,255,4,0,10,0,11,0,9,0,2,0,15,0,14,0,9,0,30,0,21,0,11,0,32,0,17,0, +5,0,28,0,15,0,6,0,20,0,6,0,255,255,12,0,10,0,252,255,239,255,247,255,2,0,232,255,219,255,252,255, +13,0,250,255,234,255,236,255,244,255,254,255,255,255,234,255,227,255,241,255,235,255,237,255,245,255,229,255,236,255,246,255, +224,255,229,255,236,255,224,255,240,255,246,255,231,255,234,255,235,255,243,255,244,255,222,255,225,255,224,255,209,255,229,255, +230,255,219,255,239,255,226,255,217,255,252,255,241,255,212,255,232,255,236,255,211,255,214,255,234,255,219,255,205,255,229,255, +223,255,198,255,214,255,216,255,206,255,228,255,227,255,220,255,230,255,220,255,225,255,237,255,233,255,245,255,241,255,230,255, +242,255,230,255,218,255,227,255,220,255,215,255,203,255,185,255,193,255,192,255,189,255,192,255,178,255,198,255,220,255,189,255, +191,255,210,255,195,255,198,255,207,255,202,255,197,255,192,255,210,255,213,255,205,255,246,255,1,0,225,255,239,255,246,255, +230,255,250,255,0,0,241,255,246,255,253,255,253,255,251,255,6,0,25,0,19,0,7,0,9,0,4,0,4,0,13,0, +13,0,0,0,237,255,237,255,252,255,0,0,1,0,0,0,253,255,4,0,2,0,253,255,252,255,248,255,3,0,16,0, +7,0,252,255,244,255,0,0,19,0,253,255,245,255,15,0,3,0,252,255,25,0,32,0,33,0,50,0,53,0,51,0, +55,0,57,0,52,0,50,0,54,0,50,0,48,0,57,0,50,0,46,0,60,0,55,0,52,0,67,0,66,0,67,0, +77,0,69,0,63,0,69,0,63,0,55,0,55,0,52,0,51,0,50,0,42,0,40,0,42,0,36,0,33,0,35,0, +39,0,47,0,46,0,31,0,19,0,15,0,24,0,28,0,9,0,11,0,21,0,3,0,7,0,15,0,237,255,235,255, +0,0,241,255,252,255,14,0,252,255,3,0,12,0,250,255,8,0,9,0,236,255,253,255,9,0,247,255,2,0,5,0, +252,255,3,0,248,255,250,255,11,0,252,255,252,255,7,0,236,255,237,255,252,255,236,255,237,255,236,255,227,255,239,255, +227,255,211,255,221,255,211,255,203,255,206,255,204,255,222,255,218,255,199,255,219,255,217,255,201,255,217,255,214,255,208,255, +211,255,199,255,205,255,204,255,190,255,207,255,200,255,184,255,208,255,214,255,211,255,223,255,211,255,211,255,220,255,210,255, +212,255,211,255,209,255,224,255,213,255,196,255,207,255,220,255,226,255,211,255,199,255,216,255,208,255,199,255,225,255,222,255, +209,255,229,255,238,255,233,255,230,255,224,255,228,255,232,255,224,255,229,255,243,255,245,255,237,255,233,255,234,255,235,255, +245,255,253,255,241,255,242,255,9,0,12,0,249,255,247,255,250,255,233,255,227,255,230,255,215,255,209,255,201,255,185,255, +203,255,207,255,174,255,176,255,182,255,156,255,149,255,148,255,148,255,169,255,165,255,148,255,158,255,153,255,122,255,110,255, +117,255,108,255,85,255,91,255,110,255,108,255,111,255,118,255,119,255,134,255,151,255,163,255,190,255,215,255,223,255,234,255, +254,255,20,0,39,0,55,0,56,0,39,0,26,0,29,0,33,0,33,0,32,0,31,0,23,0,19,0,17,0,5,0, +2,0,10,0,12,0,15,0,10,0,251,255,240,255,226,255,220,255,207,255,167,255,150,255,149,255,125,255,124,255,140,255, +138,255,172,255,226,255,251,255,16,0,32,0,35,0,38,0,32,0,24,0,32,0,42,0,43,0,36,0,42,0,66,0, +88,0,109,0,125,0,135,0,160,0,188,0,195,0,198,0,210,0,218,0,216,0,212,0,209,0,213,0,218,0,200,0, +171,0,153,0,132,0,107,0,93,0,76,0,59,0,52,0,49,0,42,0,25,0,20,0,35,0,35,0,27,0,30,0, +20,0,5,0,250,255,228,255,200,255,176,255,173,255,187,255,192,255,216,255,252,255,8,0,26,0,54,0,69,0,83,0, +90,0,91,0,102,0,102,0,91,0,78,0,59,0,31,0,16,0,30,0,31,0,15,0,36,0,58,0,57,0,80,0, +96,0,80,0,58,0,45,0,53,0,34,0,249,255,1,0,240,255,188,255,193,255,190,255,161,255,158,255,144,255,139,255, +149,255,131,255,135,255,149,255,142,255,159,255,178,255,176,255,183,255,175,255,152,255,143,255,141,255,138,255,130,255,139,255, +165,255,172,255,168,255,160,255,165,255,195,255,202,255,213,255,3,0,16,0,15,0,32,0,20,0,7,0,7,0,240,255, +217,255,207,255,203,255,207,255,215,255,229,255,234,255,232,255,255,255,33,0,54,0,51,0,32,0,32,0,28,0,12,0, +19,0,7,0,242,255,1,0,246,255,219,255,224,255,220,255,220,255,233,255,233,255,247,255,6,0,4,0,16,0,12,0, +255,255,16,0,31,0,29,0,25,0,17,0,27,0,41,0,37,0,44,0,59,0,56,0,53,0,63,0,59,0,47,0, +63,0,76,0,78,0,107,0,123,0,108,0,119,0,129,0,112,0,95,0,75,0,62,0,66,0,57,0,58,0,78,0, +89,0,103,0,108,0,84,0,75,0,91,0,104,0,105,0,100,0,95,0,88,0,78,0,67,0,47,0,35,0,49,0, +53,0,34,0,38,0,53,0,54,0,67,0,78,0,66,0,78,0,94,0,73,0,67,0,84,0,74,0,61,0,63,0, +57,0,57,0,66,0,58,0,48,0,48,0,37,0,22,0,34,0,45,0,38,0,48,0,60,0,55,0,65,0,67,0, +44,0,43,0,47,0,21,0,9,0,19,0,20,0,26,0,35,0,21,0,5,0,13,0,18,0,9,0,9,0,13,0, +8,0,13,0,25,0,24,0,15,0,8,0,5,0,7,0,12,0,9,0,255,255,254,255,254,255,248,255,251,255,11,0, +21,0,17,0,1,0,253,255,255,255,249,255,251,255,3,0,1,0,247,255,228,255,214,255,212,255,201,255,190,255,183,255, +174,255,182,255,194,255,190,255,187,255,194,255,208,255,205,255,184,255,186,255,203,255,206,255,212,255,204,255,190,255,194,255, +185,255,177,255,190,255,186,255,170,255,172,255,188,255,192,255,178,255,181,255,201,255,205,255,202,255,198,255,200,255,213,255, +200,255,180,255,188,255,196,255,207,255,206,255,188,255,203,255,220,255,211,255,215,255,211,255,200,255,201,255,190,255,202,255, +212,255,179,255,185,255,212,255,186,255,174,255,192,255,193,255,188,255,183,255,194,255,210,255,210,255,227,255,237,255,227,255, +237,255,239,255,230,255,247,255,255,255,254,255,13,0,16,0,11,0,7,0,254,255,3,0,14,0,8,0,254,255,6,0, +24,0,22,0,18,0,32,0,30,0,20,0,35,0,38,0,26,0,31,0,36,0,40,0,52,0,38,0,27,0,38,0, +29,0,20,0,42,0,43,0,32,0,47,0,62,0,62,0,46,0,24,0,40,0,61,0,43,0,30,0,38,0,39,0, +30,0,7,0,249,255,6,0,21,0,19,0,8,0,16,0,33,0,23,0,42,0,77,0,50,0,39,0,70,0,58,0, +54,0,66,0,33,0,33,0,71,0,74,0,71,0,75,0,75,0,92,0,102,0,88,0,89,0,106,0,112,0,104,0, +93,0,80,0,83,0,104,0,92,0,67,0,78,0,78,0,63,0,76,0,79,0,55,0,45,0,50,0,51,0,44,0, +47,0,57,0,46,0,39,0,47,0,38,0,30,0,31,0,18,0,2,0,244,255,253,255,24,0,12,0,252,255,17,0, +16,0,2,0,16,0,29,0,33,0,38,0,42,0,50,0,50,0,41,0,31,0,24,0,32,0,33,0,23,0,29,0, +25,0,15,0,29,0,30,0,7,0,0,0,0,0,4,0,7,0,246,255,238,255,242,255,225,255,208,255,199,255,187,255, +191,255,190,255,163,255,153,255,172,255,183,255,176,255,177,255,180,255,168,255,167,255,189,255,199,255,193,255,198,255,197,255, +180,255,176,255,187,255,191,255,195,255,205,255,205,255,207,255,210,255,192,255,180,255,183,255,171,255,171,255,184,255,181,255, +185,255,195,255,196,255,204,255,198,255,188,255,200,255,206,255,216,255,231,255,222,255,222,255,218,255,198,255,211,255,218,255, +207,255,227,255,234,255,219,255,227,255,231,255,232,255,240,255,235,255,231,255,225,255,220,255,224,255,209,255,195,255,190,255, +160,255,153,255,162,255,128,255,106,255,105,255,82,255,69,255,60,255,44,255,48,255,47,255,35,255,32,255,16,255,254,254, +247,254,238,254,232,254,220,254,210,254,215,254,209,254,217,254,251,254,2,255,24,255,95,255,138,255,163,255,220,255,15,0, +46,0,59,0,56,0,69,0,92,0,97,0,99,0,101,0,104,0,113,0,116,0,114,0,92,0,50,0,34,0,40,0, +40,0,41,0,45,0,56,0,60,0,44,0,34,0,14,0,231,255,209,255,166,255,97,255,72,255,69,255,70,255,117,255, +179,255,224,255,10,0,59,0,101,0,106,0,106,0,133,0,136,0,122,0,133,0,136,0,137,0,157,0,158,0,160,0, +198,0,236,0,16,1,57,1,79,1,104,1,142,1,162,1,168,1,182,1,194,1,195,1,196,1,188,1,166,1,147,1, +110,1,45,1,248,0,217,0,183,0,156,0,140,0,119,0,110,0,110,0,106,0,125,0,150,0,149,0,162,0,183,0, +161,0,122,0,87,0,39,0,251,255,219,255,209,255,232,255,1,0,29,0,83,0,120,0,124,0,148,0,195,0,226,0, +237,0,242,0,226,0,201,0,183,0,146,0,102,0,81,0,62,0,39,0,30,0,35,0,58,0,91,0,100,0,105,0, +133,0,155,0,146,0,126,0,112,0,84,0,32,0,248,255,223,255,191,255,170,255,153,255,119,255,87,255,71,255,64,255, +64,255,57,255,60,255,95,255,129,255,142,255,152,255,151,255,133,255,120,255,101,255,83,255,95,255,107,255,95,255,88,255, +82,255,77,255,85,255,78,255,78,255,105,255,115,255,137,255,181,255,190,255,205,255,232,255,213,255,206,255,204,255,152,255, +124,255,119,255,89,255,81,255,94,255,115,255,164,255,203,255,242,255,24,0,22,0,32,0,56,0,30,0,6,0,3,0, +236,255,219,255,197,255,157,255,131,255,123,255,122,255,111,255,93,255,108,255,129,255,141,255,176,255,196,255,202,255,238,255, +0,0,234,255,218,255,218,255,221,255,208,255,202,255,230,255,241,255,248,255,35,0,51,0,36,0,39,0,25,0,8,0, +27,0,44,0,61,0,88,0,92,0,94,0,103,0,95,0,86,0,74,0,47,0,26,0,29,0,56,0,69,0,51,0, +51,0,64,0,55,0,62,0,82,0,95,0,116,0,117,0,98,0,106,0,95,0,57,0,42,0,27,0,1,0,243,255, +235,255,238,255,250,255,9,0,27,0,34,0,55,0,81,0,75,0,74,0,82,0,63,0,60,0,69,0,49,0,44,0, +63,0,52,0,36,0,46,0,38,0,8,0,16,0,47,0,38,0,17,0,35,0,61,0,55,0,38,0,40,0,38,0, +24,0,32,0,42,0,43,0,68,0,83,0,78,0,74,0,48,0,30,0,46,0,54,0,48,0,40,0,41,0,59,0, +62,0,65,0,80,0,79,0,81,0,76,0,49,0,46,0,42,0,22,0,23,0,20,0,12,0,22,0,30,0,41,0, +44,0,44,0,63,0,73,0,77,0,79,0,66,0,71,0,72,0,48,0,43,0,29,0,2,0,251,255,239,255,237,255, +250,255,240,255,244,255,5,0,3,0,252,255,240,255,240,255,253,255,248,255,254,255,11,0,10,0,24,0,19,0,247,255, +247,255,240,255,220,255,218,255,219,255,214,255,210,255,214,255,219,255,212,255,221,255,238,255,233,255,237,255,244,255,221,255, +198,255,193,255,194,255,194,255,194,255,201,255,199,255,198,255,205,255,197,255,189,255,202,255,213,255,223,255,225,255,215,255, +222,255,227,255,202,255,187,255,198,255,190,255,169,255,172,255,173,255,166,255,178,255,170,255,164,255,196,255,200,255,200,255, +239,255,247,255,237,255,255,255,8,0,3,0,242,255,223,255,230,255,224,255,213,255,224,255,217,255,205,255,217,255,233,255, +254,255,12,0,22,0,42,0,44,0,39,0,42,0,31,0,35,0,53,0,46,0,43,0,52,0,44,0,32,0,31,0, +26,0,26,0,48,0,60,0,52,0,57,0,67,0,69,0,68,0,59,0,48,0,36,0,19,0,13,0,253,255,235,255, +245,255,242,255,229,255,231,255,226,255,232,255,255,255,10,0,26,0,50,0,79,0,95,0,78,0,84,0,92,0,60,0, +60,0,64,0,40,0,50,0,45,0,24,0,48,0,49,0,30,0,48,0,57,0,44,0,34,0,28,0,16,0,252,255, +5,0,8,0,233,255,232,255,236,255,221,255,229,255,218,255,201,255,224,255,231,255,226,255,225,255,212,255,225,255,240,255, +237,255,249,255,255,255,253,255,1,0,243,255,231,255,231,255,234,255,245,255,237,255,226,255,240,255,247,255,0,0,15,0, +11,0,17,0,32,0,34,0,36,0,23,0,7,0,5,0,242,255,214,255,205,255,196,255,191,255,196,255,195,255,202,255, +214,255,206,255,202,255,209,255,205,255,205,255,208,255,198,255,195,255,187,255,166,255,170,255,170,255,161,255,186,255,195,255, +176,255,189,255,212,255,222,255,236,255,235,255,228,255,236,255,234,255,219,255,215,255,219,255,214,255,207,255,214,255,216,255, +216,255,224,255,227,255,219,255,207,255,214,255,241,255,236,255,216,255,229,255,243,255,236,255,221,255,207,255,210,255,215,255, +218,255,223,255,212,255,208,255,210,255,193,255,189,255,186,255,168,255,178,255,179,255,159,255,173,255,176,255,148,255,140,255, +134,255,100,255,64,255,52,255,56,255,50,255,46,255,40,255,25,255,18,255,6,255,245,254,234,254,214,254,209,254,200,254, +161,254,157,254,161,254,131,254,142,254,159,254,149,254,200,254,14,255,49,255,97,255,150,255,181,255,205,255,235,255,18,0, +38,0,42,0,62,0,77,0,77,0,94,0,115,0,114,0,94,0,81,0,74,0,46,0,26,0,41,0,38,0,19,0, +26,0,33,0,26,0,18,0,250,255,213,255,180,255,131,255,83,255,62,255,43,255,38,255,76,255,124,255,181,255,7,0, +60,0,74,0,111,0,150,0,152,0,156,0,181,0,202,0,214,0,203,0,194,0,226,0,0,1,9,1,37,1,74,1, +108,1,154,1,187,1,208,1,240,1,11,2,31,2,48,2,56,2,58,2,59,2,57,2,20,2,205,1,166,1,143,1, +97,1,56,1,12,1,228,0,216,0,199,0,192,0,207,0,200,0,204,0,222,0,211,0,205,0,186,0,142,0,119,0, +87,0,38,0,16,0,253,255,254,255,29,0,46,0,70,0,111,0,136,0,169,0,211,0,229,0,238,0,252,0,248,0, +214,0,172,0,137,0,97,0,56,0,27,0,16,0,12,0,8,0,22,0,39,0,34,0,40,0,68,0,83,0,93,0, +91,0,61,0,40,0,39,0,24,0,250,255,223,255,193,255,151,255,104,255,54,255,16,255,6,255,254,254,240,254,253,254, +25,255,47,255,61,255,59,255,53,255,52,255,43,255,23,255,253,254,243,254,253,254,253,254,3,255,13,255,0,255,1,255, +26,255,37,255,53,255,78,255,95,255,132,255,175,255,190,255,210,255,236,255,237,255,231,255,224,255,195,255,174,255,174,255, +158,255,141,255,154,255,183,255,224,255,7,0,29,0,52,0,80,0,101,0,102,0,79,0,65,0,52,0,11,0,242,255, +234,255,199,255,171,255,172,255,168,255,158,255,160,255,178,255,203,255,228,255,245,255,5,0,31,0,46,0,56,0,67,0, +45,0,34,0,58,0,44,0,32,0,57,0,43,0,38,0,78,0,79,0,62,0,73,0,84,0,94,0,117,0,139,0, +146,0,151,0,163,0,155,0,139,0,134,0,110,0,86,0,79,0,51,0,40,0,61,0,60,0,33,0,14,0,21,0, +25,0,14,0,41,0,73,0,63,0,59,0,56,0,37,0,17,0,240,255,222,255,224,255,205,255,190,255,197,255,207,255, +222,255,228,255,250,255,29,0,27,0,48,0,93,0,83,0,66,0,77,0,64,0,39,0,14,0,234,255,206,255,187,255, +164,255,139,255,124,255,121,255,117,255,120,255,130,255,132,255,139,255,162,255,183,255,191,255,200,255,219,255,242,255,17,0, +57,0,75,0,90,0,122,0,121,0,101,0,105,0,113,0,119,0,122,0,105,0,98,0,105,0,104,0,102,0,100,0, +91,0,73,0,52,0,39,0,23,0,251,255,218,255,194,255,194,255,206,255,213,255,234,255,253,255,252,255,7,0,30,0, +48,0,62,0,71,0,82,0,92,0,94,0,103,0,96,0,61,0,48,0,51,0,34,0,29,0,28,0,252,255,232,255, +237,255,226,255,208,255,204,255,203,255,198,255,181,255,171,255,173,255,155,255,151,255,174,255,174,255,171,255,197,255,213,255, +226,255,249,255,4,0,13,0,10,0,248,255,245,255,244,255,235,255,230,255,221,255,205,255,185,255,174,255,173,255,164,255, +159,255,155,255,143,255,149,255,150,255,140,255,166,255,191,255,180,255,187,255,218,255,242,255,2,0,20,0,35,0,34,0, +40,0,56,0,42,0,35,0,47,0,28,0,12,0,255,255,212,255,203,255,212,255,197,255,204,255,206,255,185,255,190,255, +178,255,148,255,154,255,157,255,147,255,158,255,180,255,200,255,212,255,224,255,234,255,244,255,16,0,44,0,57,0,68,0, +61,0,68,0,105,0,94,0,67,0,93,0,103,0,82,0,80,0,75,0,54,0,45,0,34,0,5,0,244,255,0,0, +2,0,244,255,246,255,4,0,20,0,37,0,46,0,64,0,80,0,77,0,97,0,116,0,103,0,99,0,95,0,74,0, +63,0,53,0,50,0,49,0,19,0,5,0,7,0,237,255,213,255,206,255,201,255,207,255,196,255,178,255,190,255,194,255, +178,255,180,255,190,255,201,255,221,255,227,255,216,255,229,255,16,0,31,0,20,0,35,0,44,0,29,0,46,0,59,0, +19,0,254,255,9,0,251,255,220,255,192,255,158,255,133,255,118,255,106,255,96,255,77,255,67,255,80,255,98,255,119,255, +143,255,154,255,158,255,170,255,182,255,173,255,172,255,197,255,197,255,177,255,201,255,233,255,222,255,206,255,207,255,206,255, +193,255,178,255,179,255,172,255,153,255,162,255,168,255,157,255,161,255,158,255,145,255,158,255,178,255,189,255,199,255,211,255, +234,255,0,0,24,0,53,0,62,0,68,0,79,0,68,0,52,0,39,0,25,0,21,0,10,0,243,255,224,255,207,255, +202,255,187,255,145,255,119,255,100,255,71,255,64,255,68,255,69,255,89,255,109,255,112,255,120,255,148,255,171,255,171,255, +176,255,174,255,150,255,151,255,154,255,128,255,112,255,85,255,51,255,51,255,23,255,225,254,208,254,184,254,141,254,114,254, +76,254,37,254,14,254,234,253,195,253,166,253,137,253,116,253,111,253,121,253,126,253,129,253,162,253,201,253,219,253,7,254, +95,254,186,254,22,255,127,255,222,255,33,0,91,0,154,0,201,0,217,0,221,0,237,0,255,0,4,1,12,1,8,1, +226,0,186,0,144,0,79,0,24,0,241,255,208,255,203,255,201,255,187,255,188,255,192,255,189,255,186,255,155,255,106,255, +73,255,44,255,14,255,11,255,53,255,122,255,201,255,39,0,134,0,201,0,244,0,13,1,17,1,19,1,21,1,14,1, +1,1,240,0,232,0,237,0,244,0,10,1,44,1,71,1,110,1,162,1,196,1,218,1,246,1,12,2,31,2,62,2, +95,2,114,2,123,2,123,2,108,2,73,2,13,2,192,1,115,1,54,1,2,1,200,0,153,0,129,0,102,0,87,0, +102,0,103,0,93,0,99,0,97,0,91,0,84,0,52,0,39,0,43,0,20,0,27,0,72,0,88,0,100,0,143,0, +177,0,182,0,197,0,246,0,30,1,37,1,62,1,95,1,80,1,42,1,0,1,194,0,128,0,67,0,3,0,209,255, +193,255,196,255,200,255,219,255,3,0,52,0,120,0,187,0,212,0,213,0,218,0,217,0,200,0,163,0,123,0,96,0, +73,0,48,0,20,0,243,255,223,255,210,255,191,255,192,255,218,255,243,255,2,0,14,0,16,0,254,255,225,255,207,255, +194,255,186,255,206,255,232,255,8,0,49,0,52,0,43,0,64,0,63,0,49,0,73,0,107,0,135,0,163,0,193,0, +230,0,240,0,230,0,236,0,207,0,158,0,126,0,58,0,0,0,255,255,233,255,219,255,8,0,51,0,87,0,134,0, +182,0,221,0,221,0,217,0,235,0,210,0,179,0,188,0,159,0,113,0,105,0,91,0,70,0,69,0,71,0,86,0, +118,0,138,0,146,0,160,0,163,0,143,0,131,0,136,0,137,0,132,0,120,0,102,0,93,0,82,0,58,0,39,0, +33,0,24,0,255,255,226,255,204,255,180,255,157,255,143,255,134,255,132,255,132,255,134,255,150,255,160,255,166,255,176,255, +174,255,176,255,183,255,176,255,179,255,201,255,211,255,203,255,189,255,204,255,231,255,234,255,255,255,39,0,37,0,24,0, +18,0,241,255,186,255,126,255,71,255,13,255,198,254,154,254,137,254,111,254,106,254,128,254,146,254,176,254,220,254,2,255, +45,255,97,255,137,255,173,255,223,255,6,0,30,0,60,0,75,0,75,0,92,0,101,0,104,0,126,0,131,0,125,0, +131,0,109,0,86,0,85,0,61,0,20,0,243,255,219,255,208,255,194,255,187,255,194,255,178,255,154,255,149,255,133,255, +109,255,107,255,125,255,159,255,195,255,226,255,13,0,64,0,103,0,133,0,155,0,165,0,173,0,176,0,152,0,122,0, +102,0,66,0,27,0,0,0,221,255,196,255,180,255,150,255,142,255,150,255,144,255,159,255,168,255,142,255,140,255,144,255, +112,255,84,255,68,255,53,255,49,255,51,255,64,255,85,255,90,255,104,255,140,255,165,255,172,255,185,255,216,255,243,255, +244,255,249,255,17,0,26,0,26,0,39,0,42,0,31,0,27,0,43,0,68,0,76,0,74,0,79,0,78,0,81,0, +84,0,67,0,71,0,99,0,94,0,84,0,92,0,88,0,80,0,76,0,66,0,55,0,42,0,25,0,252,255,219,255, +219,255,218,255,198,255,223,255,254,255,1,0,23,0,28,0,15,0,30,0,10,0,228,255,238,255,236,255,219,255,225,255, +206,255,182,255,197,255,200,255,183,255,183,255,180,255,156,255,147,255,148,255,122,255,98,255,101,255,94,255,87,255,94,255, +78,255,56,255,55,255,43,255,21,255,16,255,12,255,1,255,242,254,232,254,227,254,220,254,205,254,184,254,170,254,169,254, +154,254,122,254,98,254,71,254,36,254,255,253,199,253,138,253,94,253,53,253,6,253,220,252,181,252,148,252,120,252,102,252, +109,252,127,252,145,252,188,252,248,252,57,253,153,253,2,254,89,254,187,254,32,255,129,255,249,255,104,0,197,0,48,1, +140,1,201,1,8,2,53,2,68,2,68,2,52,2,38,2,22,2,222,1,147,1,89,1,25,1,203,0,131,0,57,0, +231,255,170,255,129,255,74,255,20,255,255,254,1,255,5,255,21,255,64,255,117,255,177,255,241,255,42,0,118,0,232,0, +96,1,208,1,62,2,173,2,33,3,134,3,221,3,63,4,149,4,220,4,42,5,98,5,137,5,183,5,212,5,223,5, +227,5,223,5,213,5,186,5,148,5,107,5,59,5,25,5,232,4,152,4,100,4,65,4,19,4,241,3,202,3,172,3, +165,3,137,3,122,3,132,3,120,3,126,3,150,3,146,3,146,3,139,3,100,3,69,3,43,3,9,3,237,2,199,2, +143,2,100,2,70,2,17,2,196,1,130,1,75,1,17,1,227,0,175,0,108,0,48,0,246,255,186,255,122,255,59,255, +28,255,247,254,194,254,174,254,151,254,109,254,92,254,70,254,31,254,3,254,235,253,217,253,200,253,174,253,168,253,162,253, +140,253,129,253,120,253,108,253,92,253,52,253,254,252,200,252,157,252,128,252,95,252,69,252,51,252,0,252,188,251,117,251, +31,251,213,250,152,250,81,250,10,250,200,249,129,249,36,249,192,248,120,248,41,248,201,247,142,247,95,247,47,247,36,247, +52,247,86,247,141,247,210,247,57,248,177,248,29,249,147,249,12,250,132,250,13,251,154,251,40,252,178,252,46,253,179,253, +52,254,152,254,248,254,79,255,165,255,1,0,54,0,100,0,163,0,180,0,181,0,201,0,181,0,150,0,132,0,96,0, +62,0,31,0,251,255,222,255,165,255,102,255,70,255,31,255,8,255,31,255,69,255,144,255,238,255,57,0,159,0,31,1, +156,1,41,2,184,2,70,3,214,3,65,4,157,4,9,5,108,5,200,5,20,6,71,6,132,6,176,6,182,6,190,6, +191,6,176,6,166,6,161,6,156,6,134,6,95,6,73,6,34,6,217,5,160,5,115,5,70,5,50,5,34,5,8,5, +240,4,189,4,129,4,101,4,60,4,246,3,200,3,147,3,55,3,228,2,134,2,237,1,83,1,201,0,40,0,122,255, +208,254,48,254,152,253,243,252,86,252,220,251,98,251,234,250,131,250,13,250,159,249,80,249,241,248,139,248,78,248,15,248, +181,247,120,247,80,247,13,247,205,246,163,246,111,246,58,246,20,246,235,245,190,245,154,245,110,245,41,245,214,244,131,244, +42,244,198,243,90,243,243,242,153,242,51,242,180,241,53,241,201,240,104,240,11,240,194,239,177,239,201,239,242,239,81,240, +245,240,199,241,204,242,243,243,66,245,208,246,116,248,33,250,230,251,167,253,99,255,31,1,184,2,35,4,100,5,116,6, +68,7,188,7,223,7,189,7,89,7,216,6,51,6,61,5,36,4,34,3,27,2,12,1,17,0,47,255,135,254,56,254, +28,254,32,254,115,254,27,255,252,255,17,1,64,2,146,3,40,5,216,6,134,8,65,10,240,11,160,13,103,15,22,17, +156,18,4,20,57,21,49,22,247,22,152,23,5,24,42,24,40,24,10,24,192,23,92,23,210,22,51,22,187,21,74,21, +201,20,104,20,21,20,214,19,204,19,197,19,189,19,205,19,214,19,231,19,2,20,15,20,44,20,70,20,71,20,90,20, +95,20,77,20,93,20,95,20,52,20,5,20,181,19,61,19,186,18,10,18,48,17,67,16,65,15,79,14,94,13,63,12, +36,11,26,10,7,9,8,8,13,7,243,5,231,4,240,3,235,2,215,1,203,0,225,255,9,255,41,254,95,253,168,252, +231,251,62,251,180,250,21,250,130,249,42,249,221,248,132,248,74,248,32,248,245,247,212,247,164,247,117,247,102,247,52,247, +224,246,174,246,135,246,74,246,245,245,134,245,34,245,178,244,3,244,56,243,83,242,62,241,17,240,197,238,85,237,219,235, +89,234,228,232,158,231,132,230,153,229,213,228,33,228,134,227,34,227,231,226,183,226,168,226,209,226,12,227,80,227,171,227, +25,228,170,228,102,229,66,230,66,231,79,232,107,233,192,234,46,236,135,237,235,238,87,240,172,241,241,242,35,244,27,245, +242,245,215,246,160,247,54,248,197,248,89,249,244,249,144,250,13,251,134,251,5,252,118,252,249,252,113,253,179,253,5,254, +119,254,216,254,53,255,143,255,220,255,59,0,185,0,67,1,198,1,90,2,10,3,174,3,59,4,186,4,56,5,182,5, +20,6,98,6,184,6,253,6,80,7,170,7,225,7,49,8,128,8,174,8,2,9,59,9,73,9,141,9,176,9,176,9, +232,9,10,10,33,10,116,10,202,10,61,11,223,11,131,12,73,13,25,14,226,14,191,15,130,16,39,17,197,17,52,18, +102,18,85,18,20,18,202,17,80,17,177,16,12,16,68,15,100,14,91,13,34,12,246,10,181,9,71,8,218,6,79,5, +186,3,64,2,173,0,16,255,127,253,251,251,175,250,120,249,60,248,50,247,79,246,137,245,2,245,166,244,94,244,41,244, +5,244,240,243,219,243,211,243,230,243,6,244,54,244,89,244,92,244,106,244,114,244,78,244,20,244,187,243,60,243,169,242, +253,241,56,241,92,240,111,239,139,238,179,237,236,236,93,236,14,236,248,235,46,236,206,236,206,237,40,239,241,240,23,243, +123,245,25,248,226,250,220,253,252,0,253,3,188,6,62,9,105,11,46,13,124,14,61,15,108,15,250,14,245,13,119,12, +116,10,6,8,101,5,180,2,253,255,46,253,130,250,85,248,134,246,247,244,219,243,66,243,36,243,116,243,41,244,71,245, +172,246,88,248,105,250,178,252,35,255,224,1,204,4,206,7,222,10,221,13,190,16,112,19,233,21,31,24,228,25,61,27, +76,28,238,28,14,29,201,28,57,28,127,27,172,26,190,25,198,24,206,23,245,22,102,22,254,21,184,21,179,21,200,21, +232,21,20,22,26,22,254,21,220,21,160,21,91,21,37,21,222,20,140,20,65,20,6,20,229,19,198,19,161,19,126,19, +52,19,185,18,27,18,57,17,15,16,196,14,87,13,201,11,52,10,164,8,40,7,207,5,156,4,152,3,223,2,111,2, +39,2,6,2,14,2,56,2,122,2,179,2,211,2,233,2,240,2,232,2,220,2,193,2,161,2,137,2,107,2,71,2, +18,2,199,1,123,1,22,1,130,0,218,255,34,255,77,254,84,253,61,252,35,251,7,250,223,248,177,247,130,246,110,245, +114,244,103,243,96,242,110,241,122,240,131,239,119,238,88,237,72,236,39,235,245,233,222,232,205,231,183,230,188,229,230,228, +56,228,164,227,36,227,212,226,180,226,164,226,161,226,197,226,13,227,86,227,200,227,139,228,97,229,91,230,159,231,225,232, +44,234,186,235,79,237,213,238,113,240,7,242,129,243,232,244,51,246,86,247,71,248,255,248,117,249,182,249,225,249,226,249, +187,249,155,249,106,249,16,249,205,248,153,248,82,248,62,248,86,248,79,248,99,248,189,248,24,249,128,249,5,250,104,250, +205,250,98,251,249,251,152,252,66,253,224,253,154,254,93,255,5,0,193,0,149,1,101,2,58,3,10,4,209,4,136,5, +14,6,113,6,207,6,32,7,89,7,129,7,176,7,221,7,239,7,245,7,253,7,17,8,86,8,193,8,38,9,167,9, +92,10,20,11,196,11,138,12,74,13,237,13,154,14,71,15,219,15,93,16,175,16,202,16,203,16,154,16,77,16,5,16, +144,15,243,14,68,14,89,13,78,12,54,11,220,9,101,8,246,6,90,5,159,3,252,1,88,0,170,254,24,253,155,251, +40,250,236,248,230,247,243,246,30,246,114,245,250,244,185,244,128,244,76,244,70,244,94,244,131,244,192,244,17,245,110,245, +208,245,72,246,193,246,12,247,84,247,153,247,144,247,89,247,15,247,117,246,165,245,198,244,174,243,85,242,240,240,176,239, +146,238,153,237,237,236,160,236,192,236,79,237,43,238,109,239,53,241,95,243,215,245,137,248,89,251,69,254,56,1,31,4, +218,6,47,9,50,11,244,12,68,14,17,15,96,15,65,15,163,14,97,13,198,11,247,9,198,7,113,5,26,3,173,0, +107,254,74,252,63,250,158,248,97,247,111,246,234,245,203,245,27,246,206,246,183,247,229,248,84,250,9,252,19,254,68,0, +158,2,52,5,218,7,142,10,64,13,219,15,118,18,230,20,27,23,56,25,253,26,82,28,103,29,49,30,143,30,125,30, +29,30,162,29,23,29,123,28,206,27,33,27,136,26,232,25,63,25,154,24,218,23,49,23,184,22,35,22,135,21,239,20, +53,20,155,19,50,19,198,18,107,18,43,18,15,18,24,18,17,18,247,17,208,17,145,17,71,17,205,16,24,16,71,15, +52,14,241,12,171,11,43,10,151,8,46,7,205,5,147,4,163,3,203,2,30,2,175,1,60,1,191,0,81,0,197,255, +21,255,105,254,187,253,15,253,118,252,224,251,105,251,40,251,2,251,19,251,96,251,192,251,68,252,227,252,115,253,244,253, +87,254,155,254,189,254,155,254,81,254,222,253,34,253,72,252,71,251,5,250,193,248,128,247,62,246,10,245,182,243,112,242, +77,241,248,239,143,238,53,237,186,235,69,234,226,232,119,231,44,230,247,228,208,227,226,226,37,226,140,225,23,225,196,224, +187,224,245,224,74,225,217,225,167,226,156,227,194,228,8,230,87,231,190,232,69,234,213,235,102,237,9,239,154,240,248,241, +68,243,132,244,164,245,194,246,212,247,196,248,177,249,111,250,210,250,29,251,82,251,80,251,74,251,71,251,50,251,53,251, +66,251,55,251,50,251,72,251,129,251,199,251,230,251,21,252,136,252,4,253,119,253,231,253,55,254,131,254,209,254,6,255, +51,255,90,255,124,255,189,255,20,0,100,0,175,0,21,1,165,1,22,2,88,2,170,2,232,2,243,2,250,2,241,2, +214,2,206,2,214,2,250,2,71,3,175,3,66,4,4,5,222,5,193,6,176,7,201,8,251,9,33,11,74,12,97,13, +72,14,13,15,148,15,228,15,23,16,246,15,159,15,87,15,229,14,48,14,80,13,51,12,229,10,108,9,180,7,224,5, +250,3,218,1,151,255,93,253,46,251,21,249,45,247,128,245,4,244,186,242,169,241,191,240,243,239,98,239,17,239,228,238, +233,238,53,239,187,239,111,240,74,241,37,242,5,243,14,244,31,245,252,245,176,246,101,247,13,248,115,248,168,248,188,248, +132,248,17,248,152,247,250,246,61,246,172,245,71,245,248,244,234,244,43,245,197,245,219,246,93,248,61,250,143,252,30,255, +212,1,217,4,206,7,107,10,246,12,68,15,19,17,165,18,232,19,143,20,176,20,83,20,131,19,91,18,182,16,162,14, +94,12,244,9,110,7,210,4,46,2,197,255,169,253,204,251,78,250,31,249,47,248,176,247,164,247,239,247,151,248,165,249, +36,251,24,253,103,255,254,1,200,4,192,7,216,10,225,13,190,16,116,19,249,21,67,24,64,26,228,27,74,29,85,30, +228,30,41,31,25,31,156,30,9,30,118,29,181,28,233,27,53,27,143,26,253,25,100,25,166,24,220,23,18,23,62,22, +100,21,127,20,146,19,172,18,213,17,15,17,74,16,126,15,194,14,39,14,158,13,18,13,105,12,156,11,195,10,220,9, +200,8,149,7,89,6,34,5,0,4,229,2,217,1,255,0,67,0,190,255,177,255,237,255,97,0,60,1,66,2,56,3, +33,4,212,4,73,5,140,5,144,5,105,5,22,5,147,4,4,4,86,3,130,2,153,1,149,0,147,255,162,254,175,253, +211,252,5,252,48,251,103,250,134,249,134,248,147,247,170,246,227,245,77,245,174,244,34,244,197,243,95,243,249,242,160,242, +34,242,148,241,28,241,155,240,0,240,66,239,78,238,66,237,53,236,253,234,154,233,69,232,2,231,208,229,193,228,190,227, +219,226,49,226,150,225,10,225,187,224,178,224,233,224,81,225,233,225,192,226,186,227,227,228,84,230,218,231,115,233,84,235, +113,237,153,239,185,241,199,243,189,245,151,247,89,249,253,250,121,252,203,253,236,254,210,255,103,0,163,0,163,0,109,0, +250,255,114,255,216,254,28,254,80,253,107,252,135,251,201,250,16,250,99,249,222,248,107,248,25,248,251,247,7,248,67,248, +154,248,11,249,192,249,180,250,217,251,55,253,181,254,82,0,30,2,252,3,184,5,62,7,173,8,10,10,54,11,47,12, +246,12,115,13,175,13,188,13,112,13,206,12,46,12,171,11,40,11,197,10,124,10,13,10,168,9,102,9,16,9,202,8, +152,8,91,8,67,8,60,8,26,8,20,8,27,8,20,8,33,8,49,8,59,8,96,8,129,8,119,8,63,8,218,7, +65,7,99,6,81,5,24,4,173,2,46,1,164,255,241,253,51,252,138,250,226,248,79,247,244,245,188,244,156,243,188,242, +27,242,150,241,50,241,215,240,108,240,31,240,239,239,186,239,161,239,169,239,199,239,13,240,89,240,155,240,252,240,100,241, +188,241,28,242,124,242,214,242,56,243,126,243,151,243,186,243,18,244,148,244,59,245,20,246,40,247,132,248,29,250,215,251, +192,253,222,255,31,2,128,4,253,6,114,9,195,11,236,13,204,15,52,17,45,18,178,18,170,18,62,18,125,17,53,16, +116,14,76,12,192,9,243,6,243,3,217,0,219,253,30,251,226,248,63,247,17,246,108,245,83,245,181,245,161,246,240,247, +164,249,217,251,85,254,22,1,19,4,255,6,0,10,46,13,88,16,153,19,218,22,245,25,1,29,206,31,51,34,55,36, +177,37,182,38,90,39,125,39,40,39,96,38,53,37,212,35,45,34,71,32,84,30,103,28,164,26,24,25,196,23,181,22, +191,21,220,20,43,20,119,19,151,18,137,17,90,16,56,15,17,14,197,12,131,11,91,10,91,9,145,8,201,7,11,7, +119,6,248,5,155,5,88,5,243,4,111,4,232,3,103,3,237,2,108,2,0,2,224,1,254,1,49,2,138,2,13,3, +145,3,26,4,165,4,243,4,250,4,222,4,164,4,86,4,224,3,29,3,57,2,103,1,144,0,147,255,134,254,155,253, +189,252,211,251,2,251,42,250,43,249,49,248,47,247,22,246,251,244,195,243,153,242,185,241,251,240,69,240,156,239,33,239, +238,238,178,238,87,238,17,238,169,237,14,237,114,236,179,235,200,234,198,233,176,232,169,231,186,230,246,229,110,229,8,229, +225,228,10,229,79,229,193,229,112,230,55,231,12,232,206,232,129,233,92,234,75,235,62,236,70,237,91,238,132,239,199,240, +27,242,117,243,164,244,181,245,188,246,142,247,65,248,210,248,5,249,18,249,32,249,249,248,191,248,130,248,43,248,253,247, +235,247,185,247,149,247,141,247,132,247,140,247,146,247,131,247,134,247,161,247,196,247,246,247,55,248,116,248,163,248,231,248, +99,249,253,249,154,250,61,251,212,251,99,252,2,253,167,253,64,254,210,254,122,255,79,0,59,1,40,2,33,3,32,4, +11,5,223,5,163,6,77,7,194,7,15,8,72,8,86,8,58,8,18,8,206,7,110,7,17,7,186,6,112,6,64,6, +17,6,203,5,148,5,126,5,67,5,197,4,52,4,135,3,167,2,188,1,223,0,1,0,46,255,120,254,227,253,99,253, +237,252,145,252,80,252,15,252,194,251,133,251,77,251,235,250,131,250,81,250,34,250,225,249,166,249,77,249,237,248,185,248, +126,248,56,248,6,248,221,247,188,247,146,247,85,247,22,247,190,246,67,246,198,245,83,245,234,244,138,244,68,244,29,244, +239,243,206,243,226,243,7,244,58,244,159,244,64,245,56,246,130,247,20,249,1,251,62,253,216,255,190,2,170,5,185,8, +2,12,63,15,78,18,35,21,188,23,21,26,222,27,27,29,249,29,49,30,186,29,202,28,109,27,193,25,163,23,248,20, +20,18,4,15,196,11,162,8,155,5,169,2,31,0,36,254,170,252,177,251,57,251,83,251,6,252,51,253,199,254,188,0, +28,3,226,5,222,8,210,11,194,14,209,17,236,20,232,23,181,26,68,29,151,31,200,33,190,35,57,37,43,38,180,38, +226,38,164,38,240,37,198,36,60,35,130,33,171,31,173,29,135,27,49,25,220,22,202,20,221,18,239,16,47,15,198,13, +150,12,137,11,171,10,240,9,64,9,202,8,144,8,101,8,100,8,154,8,252,8,161,9,71,10,169,10,252,10,63,11, +63,11,2,11,110,10,106,9,33,8,182,6,33,5,94,3,176,1,96,0,69,255,75,254,161,253,61,253,6,253,1,253, +245,252,170,252,57,252,200,251,87,251,218,250,71,250,168,249,37,249,173,248,32,248,156,247,48,247,196,246,91,246,240,245, +136,245,63,245,241,244,109,244,172,243,180,242,159,241,116,240,57,239,5,238,200,236,159,235,181,234,221,233,11,233,86,232, +186,231,63,231,205,230,81,230,244,229,162,229,75,229,9,229,163,228,8,228,135,227,38,227,210,226,149,226,103,226,86,226, +130,226,233,226,115,227,18,228,194,228,98,229,240,229,142,230,49,231,218,231,153,232,94,233,63,234,54,235,32,236,37,237, +57,238,55,239,66,240,76,241,89,242,159,243,233,244,15,246,43,247,62,248,91,249,91,250,7,251,166,251,65,252,136,252, +154,252,142,252,73,252,1,252,223,251,202,251,196,251,225,251,61,252,220,252,153,253,117,254,127,255,161,0,193,1,207,2, +199,3,186,4,146,5,46,6,196,6,119,7,29,8,180,8,95,9,8,10,161,10,69,11,223,11,82,12,187,12,23,13, +58,13,69,13,77,13,15,13,140,12,237,11,42,11,96,10,133,9,115,8,96,7,95,6,101,5,174,4,40,4,171,3, +85,3,34,3,3,3,248,2,230,2,217,2,219,2,237,2,27,3,59,3,81,3,145,3,185,3,150,3,72,3,214,2, +63,2,111,1,93,0,55,255,239,253,121,252,8,251,152,249,32,248,192,246,114,245,55,244,36,243,48,242,86,241,148,240, +217,239,18,239,81,238,176,237,27,237,152,236,73,236,34,236,68,236,208,236,163,237,190,238,52,240,242,241,250,243,65,246, +210,248,190,251,206,254,252,1,92,5,167,8,215,11,7,15,240,17,106,20,136,22,46,24,66,25,196,25,194,25,63,25, +31,24,120,22,141,20,111,18,19,16,127,13,194,10,3,8,103,5,216,2,88,0,69,254,210,252,234,251,125,251,109,251, +183,251,117,252,125,253,177,254,43,0,222,1,182,3,184,5,236,7,101,10,4,13,165,15,83,18,253,20,168,23,91,26, +232,28,72,31,125,33,114,35,34,37,91,38,2,39,80,39,69,39,218,38,39,38,39,37,237,35,136,34,242,32,66,31, +102,29,98,27,115,25,161,23,224,21,26,20,61,18,135,16,247,14,76,13,160,11,12,10,165,8,124,7,110,6,145,5, +249,4,157,4,164,4,221,4,253,4,66,5,200,5,106,6,4,7,104,7,182,7,0,8,22,8,13,8,226,7,120,7, +3,7,130,6,243,5,122,5,221,4,9,4,77,3,139,2,123,1,29,0,166,254,64,253,231,251,142,250,52,249,222,247, +169,246,185,245,8,245,104,244,182,243,51,243,8,243,221,242,146,242,101,242,65,242,3,242,163,241,27,241,137,240,253,239, +108,239,225,238,81,238,188,237,58,237,181,236,15,236,62,235,51,234,25,233,255,231,195,230,119,229,39,228,211,226,167,225, +158,224,169,223,245,222,135,222,94,222,134,222,231,222,142,223,148,224,214,225,63,227,189,228,49,230,157,231,16,233,140,234, +28,236,182,237,47,239,126,240,198,241,239,242,212,243,160,244,72,245,156,245,221,245,21,246,252,245,181,245,134,245,110,245, +90,245,87,245,155,245,38,246,200,246,124,247,57,248,248,248,203,249,140,250,32,251,168,251,42,252,159,252,9,253,108,253, +201,253,31,254,147,254,31,255,144,255,14,0,174,0,81,1,23,2,231,2,168,3,125,4,58,5,214,5,144,6,53,7, +181,7,61,8,178,8,43,9,190,9,51,10,143,10,215,10,242,10,237,10,195,10,114,10,23,10,162,9,11,9,90,8, +125,7,146,6,194,5,253,4,61,4,155,3,25,3,146,2,246,1,86,1,197,0,71,0,201,255,53,255,173,254,96,254, +53,254,0,254,198,253,165,253,159,253,153,253,149,253,146,253,98,253,4,253,148,252,3,252,54,251,43,250,250,248,178,247, +91,246,4,245,162,243,48,242,202,240,113,239,41,238,28,237,78,236,181,235,92,235,83,235,169,235,100,236,137,237,40,239, +81,241,21,244,107,247,52,251,87,255,178,3,46,8,153,12,197,16,202,20,138,24,202,27,154,30,209,32,88,34,100,35, +184,35,57,35,37,34,139,32,158,30,80,28,106,25,89,22,69,19,10,16,225,12,198,9,196,6,45,4,1,2,80,0, +53,255,142,254,94,254,146,254,30,255,21,0,77,1,206,2,161,4,166,6,249,8,113,11,205,13,54,16,174,18,32,21, +128,23,145,25,107,27,34,29,122,30,92,31,193,31,205,31,155,31,251,30,15,30,5,29,188,27,89,26,243,24,118,23, +17,22,226,20,238,19,33,19,102,18,214,17,94,17,253,16,210,16,134,16,10,16,171,15,76,15,249,14,186,14,78,14, +229,13,169,13,113,13,45,13,189,12,49,12,161,11,226,10,247,9,216,8,109,7,222,5,8,4,235,1,226,255,230,253, +254,251,104,250,10,249,239,247,52,247,169,246,62,246,232,245,144,245,72,245,253,244,164,244,89,244,30,244,251,243,233,243, +224,243,3,244,64,244,135,244,254,244,125,245,225,245,61,246,89,246,53,246,8,246,169,245,6,245,84,244,141,243,169,242, +200,241,223,240,230,239,7,239,62,238,109,237,169,236,236,235,21,235,73,234,160,233,236,232,36,232,87,231,152,230,230,229, +37,229,111,228,222,227,103,227,26,227,234,226,195,226,207,226,15,227,106,227,226,227,113,228,22,229,172,229,25,230,152,230, +42,231,196,231,138,232,97,233,76,234,108,235,162,236,235,237,80,239,200,240,69,242,169,243,14,245,122,246,172,247,175,248, +149,249,83,250,248,250,108,251,206,251,72,252,143,252,185,252,247,252,20,253,26,253,25,253,15,253,28,253,34,253,46,253, +107,253,174,253,242,253,56,254,105,254,164,254,235,254,86,255,223,255,35,0,82,0,189,0,25,1,89,1,158,1,242,1, +118,2,247,2,97,3,215,3,44,4,92,4,132,4,132,4,90,4,22,4,183,3,63,3,184,2,54,2,181,1,44,1, +163,0,48,0,236,255,212,255,233,255,61,0,168,0,21,1,144,1,245,1,78,2,161,2,178,2,166,2,162,2,123,2, +81,2,57,2,255,1,192,1,137,1,27,1,140,0,8,0,120,255,227,254,90,254,172,253,227,252,39,252,73,251,95,250, +181,249,47,249,182,248,100,248,86,248,158,248,19,249,171,249,159,250,224,251,119,253,146,255,5,2,181,4,159,7,143,10, +134,13,123,16,78,19,22,22,182,24,252,26,243,28,130,30,146,31,49,32,56,32,144,31,93,30,181,28,173,26,93,24, +194,21,238,18,6,16,37,13,107,10,251,7,244,5,120,4,156,3,90,3,140,3,44,4,78,5,187,6,66,8,254,9, +219,11,219,13,51,16,188,18,67,21,199,23,61,26,169,28,252,30,1,33,175,34,11,36,5,37,140,37,151,37,42,37, +77,36,42,35,210,33,18,32,24,30,38,28,34,26,31,24,25,22,225,19,189,17,231,15,67,14,197,12,86,11,22,10, +40,9,104,8,208,7,75,7,198,6,120,6,76,6,16,6,202,5,142,5,149,5,200,5,194,5,162,5,137,5,91,5, +33,5,158,4,160,3,91,2,245,0,120,255,222,253,35,252,109,250,234,248,184,247,179,246,165,245,199,244,64,244,221,243, +131,243,30,243,176,242,67,242,187,241,49,241,168,240,244,239,83,239,227,238,101,238,227,237,109,237,238,236,120,236,7,236, +113,235,168,234,204,233,10,233,77,232,107,231,100,230,91,229,135,228,220,227,27,227,105,226,241,225,159,225,146,225,190,225, +218,225,16,226,128,226,244,226,111,227,246,227,133,228,49,229,204,229,43,230,93,230,93,230,81,230,97,230,99,230,96,230, +142,230,218,230,65,231,227,231,180,232,148,233,158,234,227,235,53,237,150,238,12,240,113,241,227,242,89,244,153,245,217,246, +48,248,121,249,192,250,238,251,17,253,81,254,134,255,176,0,213,1,218,2,226,3,212,4,150,5,89,6,246,6,113,7, +248,7,51,8,35,8,249,7,140,7,6,7,145,6,12,6,155,5,81,5,33,5,52,5,121,5,198,5,55,6,197,6, +58,7,150,7,231,7,12,8,20,8,7,8,203,7,119,7,16,7,147,6,34,6,167,5,31,5,196,4,127,4,44,4, +214,3,129,3,37,3,174,2,51,2,199,1,70,1,219,0,141,0,41,0,252,255,8,0,27,0,114,0,218,0,40,1, +147,1,228,1,21,2,86,2,101,2,56,2,252,1,165,1,24,1,52,0,33,255,7,254,203,252,117,251,252,249,106,248, +232,246,75,245,156,243,9,242,119,240,255,238,176,237,122,236,121,235,151,234,237,233,173,233,175,233,32,234,39,235,113,236, +29,238,113,240,66,243,103,246,224,249,184,253,189,1,171,5,126,9,42,13,160,16,231,19,218,22,117,25,180,27,84,29, +91,30,231,30,215,30,22,30,179,28,226,26,211,24,124,22,231,19,67,17,155,14,219,11,23,9,164,6,144,4,199,2, +133,1,213,0,153,0,236,0,203,1,32,3,224,4,211,6,209,8,249,10,93,13,218,15,79,18,195,20,51,23,127,25, +154,27,105,29,195,30,179,31,78,32,148,32,129,32,25,32,84,31,57,30,246,28,160,27,30,26,144,24,45,23,246,21, +206,20,187,19,214,18,12,18,89,17,239,16,169,16,97,16,75,16,74,16,76,16,131,16,182,16,208,16,21,17,75,17, +63,17,50,17,21,17,193,16,107,16,13,16,124,15,223,14,71,14,135,13,145,12,80,11,188,9,10,8,58,6,50,4, +16,2,219,255,163,253,162,251,233,249,135,248,134,247,206,246,112,246,108,246,150,246,216,246,29,247,88,247,145,247,168,247, +153,247,130,247,69,247,226,246,122,246,254,245,122,245,5,245,115,244,167,243,202,242,10,242,113,241,210,240,26,240,113,239, +209,238,27,238,101,237,166,236,196,235,217,234,12,234,74,233,102,232,116,231,154,230,193,229,245,228,89,228,231,227,180,227, +179,227,185,227,221,227,25,228,54,228,60,228,76,228,113,228,158,228,210,228,77,229,28,230,254,230,240,231,12,233,68,234, +114,235,112,236,77,237,41,238,25,239,11,240,198,240,79,241,199,241,28,242,110,242,230,242,84,243,165,243,27,244,167,244, +238,244,253,244,30,245,51,245,43,245,44,245,43,245,50,245,75,245,87,245,113,245,169,245,226,245,17,246,60,246,141,246, +245,246,81,247,223,247,143,248,41,249,217,249,148,250,58,251,228,251,110,252,206,252,7,253,15,253,18,253,230,252,97,252, +214,251,66,251,129,250,200,249,15,249,70,248,132,247,191,246,212,245,191,244,154,243,90,242,228,240,98,239,222,237,69,236, +182,234,63,233,7,232,59,231,188,230,142,230,206,230,98,231,38,232,18,233,65,234,199,235,153,237,186,239,29,242,180,244, +120,247,61,250,9,253,246,255,222,2,186,5,154,8,147,11,145,14,73,17,202,19,62,22,123,24,139,26,137,28,89,30, +9,32,142,33,194,34,144,35,233,35,237,35,162,35,254,34,32,34,27,33,20,32,37,31,58,30,86,29,103,28,134,27, +238,26,118,26,33,26,33,26,91,26,244,26,241,27,7,29,66,30,150,31,253,32,157,34,36,36,115,37,192,38,227,39, +201,40,123,41,228,41,40,42,80,42,91,42,113,42,116,42,77,42,21,42,201,41,92,41,186,40,237,39,28,39,83,38, +150,37,214,36,11,36,86,35,199,34,87,34,251,33,163,33,98,33,61,33,8,33,143,32,181,31,178,30,188,29,160,28, +65,27,190,25,40,24,139,22,232,20,13,19,236,16,197,14,178,12,135,10,69,8,239,5,121,3,4,1,134,254,232,251, +72,249,164,246,21,244,200,241,159,239,155,237,200,235,33,234,221,232,245,231,73,231,238,230,208,230,254,230,109,231,210,231, +72,232,207,232,48,233,144,233,232,233,25,234,71,234,88,234,59,234,12,234,193,233,103,233,4,233,102,232,128,231,99,230, +24,229,177,227,51,226,135,224,157,222,150,220,145,218,137,216,128,214,118,212,151,210,36,209,250,207,250,206,71,206,210,205, +155,205,153,205,144,205,137,205,148,205,170,205,224,205,15,206,43,206,102,206,152,206,189,206,19,207,136,207,46,208,45,209, +92,210,175,211,44,213,204,214,152,216,106,218,53,220,45,222,57,224,64,226,80,228,86,230,88,232,105,234,119,236,129,238, +124,240,112,242,121,244,134,246,151,248,166,250,151,252,147,254,144,0,83,2,253,3,149,5,254,6,74,8,131,9,188,10, +235,11,232,12,214,13,215,14,201,15,169,16,148,17,138,18,109,19,52,20,247,20,155,21,34,22,174,22,27,23,128,23, +248,23,63,24,106,24,141,24,125,24,76,24,255,23,153,23,54,23,189,22,65,22,210,21,92,21,14,21,204,20,108,20, +65,20,85,20,111,20,144,20,191,20,251,20,54,21,101,21,145,21,178,21,217,21,249,21,251,21,250,21,228,21,169,21, +92,21,235,20,123,20,30,20,152,19,229,18,244,17,204,16,141,15,3,14,79,12,135,10,104,8,61,6,49,4,14,2, +16,0,63,254,130,252,2,251,189,249,198,248,50,248,246,247,28,248,124,248,58,249,143,250,43,252,12,254,77,0,211,2, +161,5,83,8,219,10,154,13,60,16,162,18,225,20,188,22,126,24,18,26,3,27,122,27,107,27,217,26,248,25,119,24, +89,22,199,19,199,16,171,13,76,10,166,6,78,3,72,0,175,253,190,251,50,250,52,249,201,248,167,248,242,248,109,249, +243,249,229,250,47,252,171,253,81,255,221,0,113,2,57,4,7,6,194,7,110,9,19,11,167,12,25,14,79,15,0,16, +66,16,82,16,249,15,49,15,32,14,189,12,56,11,176,9,243,7,245,5,233,3,3,2,71,0,191,254,149,253,162,252, +213,251,122,251,110,251,81,251,16,251,200,250,166,250,158,250,111,250,4,250,136,249,53,249,245,248,139,248,23,248,202,247, +156,247,139,247,99,247,219,246,0,246,0,245,213,243,101,242,193,240,29,239,172,237,113,236,94,235,153,234,64,234,42,234, +92,234,251,234,215,235,202,236,247,237,101,239,251,240,169,242,89,244,26,246,3,248,225,249,120,251,211,252,0,254,239,254, +154,255,239,255,208,255,89,255,201,254,55,254,140,253,195,252,237,251,8,251,46,250,103,249,134,248,142,247,172,246,221,245, +5,245,23,244,66,243,183,242,79,242,1,242,217,241,180,241,182,241,245,241,55,242,127,242,222,242,58,243,136,243,210,243, +55,244,182,244,63,245,17,246,35,247,41,248,60,249,108,250,164,251,229,252,14,254,58,255,153,0,248,1,64,3,119,4, +146,5,199,6,19,8,45,9,29,10,252,10,189,11,115,12,15,13,83,13,82,13,83,13,70,13,20,13,246,12,251,12, +238,12,206,12,148,12,36,12,150,11,226,10,254,9,34,9,89,8,147,7,240,6,114,6,8,6,180,5,98,5,33,5, +12,5,253,4,232,4,214,4,148,4,31,4,147,3,233,2,52,2,129,1,194,0,21,0,116,255,187,254,4,254,81,253, +116,252,119,251,120,250,111,249,80,248,15,247,171,245,46,244,138,242,197,240,7,239,65,237,99,235,161,233,19,232,175,230, +113,229,87,228,122,227,241,226,184,226,189,226,229,226,77,227,6,228,217,228,190,229,206,230,250,231,76,233,173,234,27,236, +209,237,177,239,153,241,156,243,136,245,98,247,87,249,64,251,20,253,206,254,87,0,220,1,76,3,120,4,115,5,78,6, +33,7,243,7,159,8,49,9,144,9,126,9,16,9,110,8,196,7,33,7,108,6,200,5,66,5,203,4,137,4,119,4, +133,4,201,4,82,5,55,6,129,7,3,9,156,10,56,12,194,13,29,15,70,16,107,17,125,18,134,19,191,20,235,21, +247,22,24,24,35,25,35,26,56,27,59,28,97,29,177,30,212,31,219,32,189,33,71,34,160,34,216,34,224,34,217,34, +234,34,12,35,8,35,222,34,177,34,96,34,254,33,182,33,94,33,221,32,81,32,172,31,203,30,189,29,156,28,75,27, +226,25,169,24,113,23,39,22,244,20,186,19,138,18,108,17,59,16,55,15,101,14,151,13,252,12,91,12,96,11,75,10, +35,9,206,7,95,6,211,4,82,3,252,1,174,0,100,255,76,254,146,253,25,253,175,252,114,252,87,252,51,252,22,252, +244,251,183,251,95,251,225,250,93,250,210,249,35,249,120,248,201,247,221,246,195,245,144,244,64,243,214,241,73,240,158,238, +212,236,226,234,234,232,243,230,221,228,184,226,161,224,164,222,228,220,100,219,248,217,180,216,179,215,209,214,23,214,138,213, +5,213,184,212,189,212,200,212,197,212,218,212,23,213,123,213,221,213,43,214,111,214,184,214,40,215,189,215,91,216,2,217, +203,217,223,218,59,220,188,221,115,223,76,225,36,227,253,228,183,230,113,232,87,234,58,236,43,238,85,240,124,242,149,244, +199,246,16,249,71,251,73,253,38,255,245,0,189,2,129,4,29,6,143,7,231,8,254,9,235,10,207,11,131,12,254,12, +87,13,159,13,204,13,211,13,238,13,18,14,24,14,53,14,70,14,48,14,78,14,122,14,127,14,122,14,62,14,201,13, +68,13,149,12,201,11,250,10,83,10,5,10,225,9,207,9,231,9,23,10,88,10,140,10,174,10,214,10,218,10,199,10, +181,10,112,10,17,10,181,9,77,9,9,9,231,8,212,8,230,8,10,9,66,9,130,9,151,9,186,9,2,10,26,10, +249,9,195,9,103,9,221,8,29,8,1,7,145,5,15,4,86,2,29,0,159,253,23,251,157,248,95,246,89,244,165,242, +96,241,115,240,13,240,27,240,74,240,241,240,40,242,175,243,187,245,57,248,6,251,92,254,239,1,116,5,35,9,224,12, +114,16,233,19,65,23,78,26,249,28,57,31,223,32,199,33,12,34,174,33,183,32,97,31,151,29,81,27,206,24,13,22, +1,19,218,15,186,12,180,9,232,6,132,4,172,2,86,1,119,0,232,255,145,255,139,255,165,255,165,255,199,255,41,0, +176,0,90,1,19,2,233,2,252,3,52,5,142,6,3,8,104,9,196,10,236,11,157,12,26,13,121,13,120,13,31,13, +124,12,160,11,189,10,200,9,185,8,170,7,168,6,204,5,30,5,162,4,118,4,105,4,77,4,62,4,79,4,129,4, +200,4,235,4,223,4,198,4,157,4,103,4,56,4,6,4,186,3,105,3,29,3,196,2,115,2,48,2,216,1,119,1, +255,0,68,0,88,255,72,254,15,253,175,251,41,250,164,248,57,247,216,245,151,244,135,243,166,242,245,241,98,241,230,240, +147,240,112,240,112,240,100,240,83,240,128,240,241,240,132,241,45,242,236,242,194,243,144,244,89,245,55,246,5,247,194,247, +133,248,59,249,216,249,66,250,112,250,143,250,152,250,146,250,135,250,56,250,175,249,13,249,31,248,219,246,79,245,151,243, +254,241,132,240,3,239,129,237,246,235,101,234,212,232,84,231,29,230,32,229,57,228,169,227,140,227,173,227,235,227,92,228, +25,229,19,230,66,231,186,232,111,234,102,236,168,238,244,240,45,243,117,245,160,247,143,249,135,251,144,253,144,255,150,1, +114,3,4,5,105,6,172,7,210,8,203,9,150,10,104,11,63,12,12,13,228,13,120,14,193,14,250,14,240,14,206,14, +216,14,194,14,154,14,119,14,18,14,151,13,19,13,99,12,190,11,19,11,83,10,205,9,99,9,212,8,55,8,151,7, +233,6,58,6,160,5,14,5,111,4,223,3,96,3,191,2,243,1,25,1,52,0,53,255,24,254,201,252,42,251,73,249, +63,247,44,245,49,243,33,241,5,239,41,237,112,235,222,233,145,232,81,231,64,230,110,229,147,228,233,227,120,227,43,227, +98,227,235,227,118,228,93,229,181,230,109,232,127,234,198,236,86,239,60,242,90,245,171,248,24,252,145,255,16,3,129,6, +184,9,120,12,191,14,166,16,19,18,12,19,137,19,155,19,124,19,241,18,255,17,241,16,126,15,179,13,245,11,34,10, +70,8,122,6,183,4,50,3,235,1,222,0,39,0,177,255,190,255,113,0,141,1,57,3,101,5,217,7,188,10,211,13, +201,16,205,19,243,22,30,26,40,29,253,31,156,34,247,36,33,39,22,41,162,42,214,43,188,44,73,45,166,45,176,45, +59,45,134,44,166,43,108,42,241,40,97,39,163,37,183,35,209,33,222,31,193,29,197,27,253,25,83,24,226,22,144,21, +74,20,70,19,122,18,174,17,221,16,32,16,105,15,160,14,220,13,8,13,2,12,12,11,34,10,6,9,217,7,157,6, +75,5,28,4,239,2,149,1,44,0,185,254,51,253,143,251,234,249,133,248,75,247,22,246,33,245,136,244,33,244,224,243, +239,243,81,244,207,244,86,245,7,246,232,246,215,247,181,248,124,249,52,250,248,250,211,251,139,252,3,253,86,253,101,253, +17,253,110,252,129,251,97,250,28,249,162,247,11,246,80,244,73,242,39,240,13,238,204,235,104,233,5,231,151,228,54,226, +23,224,30,222,54,220,119,218,215,216,95,215,37,214,13,213,21,212,75,211,186,210,133,210,140,210,157,210,220,210,78,211, +217,211,147,212,122,213,152,214,226,215,60,217,198,218,117,220,43,222,252,223,190,225,91,227,17,229,223,230,159,232,86,234, +22,236,241,237,196,239,91,241,210,242,58,244,125,245,165,246,206,247,249,248,14,250,16,251,16,252,6,253,226,253,159,254, +55,255,173,255,11,0,79,0,93,0,47,0,222,255,84,255,153,254,237,253,65,253,158,252,55,252,221,251,147,251,138,251, +162,251,229,251,107,252,12,253,205,253,141,254,41,255,213,255,119,0,228,0,101,1,252,1,114,2,232,2,115,3,19,4, +208,4,167,5,154,6,158,7,177,8,214,9,215,10,155,11,69,12,200,12,4,13,8,13,199,12,52,12,129,11,203,10, +235,9,214,8,177,7,168,6,171,5,157,4,191,3,61,3,206,2,111,2,103,2,173,2,42,3,229,3,202,4,222,5, +51,7,187,8,114,10,82,12,71,14,63,16,77,18,143,20,218,22,11,25,63,27,99,29,107,31,76,33,184,34,174,35, +92,36,175,36,185,36,108,36,146,35,103,34,21,33,119,31,174,29,224,27,43,26,201,24,195,23,43,23,25,23,100,23, +12,24,24,25,86,26,177,27,28,29,138,30,226,31,216,32,102,33,215,33,58,34,124,34,150,34,139,34,131,34,135,34, +92,34,255,33,143,33,0,33,58,32,34,31,146,29,161,27,128,25,29,23,128,20,228,17,82,15,224,12,185,10,218,8, +92,7,79,6,106,5,167,4,39,4,198,3,92,3,196,2,237,1,227,0,138,255,234,253,58,252,115,250,153,248,200,246, +243,244,60,243,174,241,13,240,96,238,207,236,60,235,151,233,232,231,31,230,77,228,137,226,174,224,200,222,39,221,212,219, +184,218,227,217,92,217,62,217,175,217,145,218,172,219,247,220,132,222,67,224,0,226,172,227,60,229,157,230,246,231,58,233, +51,234,12,235,206,235,82,236,186,236,22,237,71,237,57,237,248,236,174,236,68,236,164,235,240,234,46,234,114,233,186,232, +255,231,143,231,74,231,226,230,185,230,201,230,215,230,48,231,175,231,53,232,22,233,13,234,229,234,242,235,44,237,96,238, +131,239,147,240,186,241,12,243,91,244,127,245,117,246,77,247,6,248,144,248,233,248,70,249,214,249,98,250,210,250,100,251, +0,252,131,252,3,253,99,253,172,253,27,254,191,254,150,255,122,0,51,1,219,1,157,2,87,3,234,3,154,4,114,5, +55,6,7,7,217,7,100,8,245,8,147,9,234,9,48,10,103,10,110,10,113,10,47,10,160,9,41,9,144,8,169,7, +157,6,93,5,3,4,179,2,77,1,213,255,145,254,155,253,177,252,205,251,58,251,230,250,183,250,199,250,254,250,116,251, +60,252,32,253,22,254,22,255,20,0,22,1,243,1,163,2,54,3,159,3,234,3,1,4,216,3,162,3,94,3,250,2, +127,2,239,1,117,1,11,1,117,0,204,255,40,255,128,254,234,253,101,253,250,252,210,252,241,252,81,253,22,254,68,255, +184,0,126,2,149,4,210,6,68,9,229,11,107,14,196,16,204,18,76,20,94,21,1,22,17,22,190,21,42,21,74,20, +15,19,124,17,178,15,215,13,25,12,138,10,27,9,1,8,85,7,252,6,22,7,156,7,117,8,188,9,94,11,94,13, +227,15,199,18,241,21,92,25,214,28,76,32,198,35,53,39,120,42,91,45,176,47,97,49,119,50,213,50,82,50,26,49, +74,47,214,44,220,41,97,38,130,34,146,30,155,26,153,22,216,18,141,15,174,12,54,10,60,8,163,6,75,5,83,4, +159,3,16,3,210,2,200,2,206,2,230,2,207,2,133,2,47,2,164,1,229,0,5,0,248,254,206,253,120,252,216,250, +255,248,4,247,226,244,115,242,216,239,92,237,238,234,151,232,135,230,180,228,51,227,24,226,110,225,79,225,178,225,160,226, +6,228,150,229,88,231,86,233,93,235,86,237,35,239,217,240,146,242,15,244,70,245,82,246,39,247,229,247,147,248,29,249, +114,249,113,249,52,249,182,248,193,247,117,246,224,244,235,242,185,240,93,238,238,235,154,233,135,231,201,229,77,228,29,227, +94,226,1,226,11,226,115,226,16,227,231,227,203,228,148,229,119,230,120,231,97,232,38,233,247,233,254,234,1,236,254,236, +60,238,159,239,42,241,230,242,120,244,13,246,254,247,220,249,109,251,228,252,43,254,54,255,40,0,226,0,96,1,204,1, +21,2,54,2,103,2,158,2,229,2,102,3,229,3,72,4,160,4,202,4,237,4,30,5,0,5,128,4,215,3,36,3, +115,2,173,1,211,0,7,0,88,255,205,254,88,254,253,253,218,253,209,253,191,253,158,253,104,253,61,253,28,253,212,252, +111,252,229,251,18,251,32,250,55,249,84,248,130,247,213,246,66,246,187,245,67,245,5,245,10,245,20,245,40,245,129,245, +252,245,112,246,255,246,164,247,71,248,229,248,120,249,27,250,222,250,171,251,117,252,48,253,217,253,106,254,199,254,237,254, +206,254,104,254,223,253,13,253,229,251,155,250,41,249,176,247,84,246,228,244,150,243,223,242,193,242,18,243,196,243,232,244, +123,246,85,248,98,250,141,252,219,254,92,1,209,3,39,6,101,8,107,10,99,12,66,14,173,15,202,16,206,17,179,18, +111,19,213,19,224,19,188,19,103,19,243,18,124,18,26,18,11,18,108,18,50,19,82,20,220,21,239,23,119,26,90,29, +146,32,252,35,127,39,31,43,172,46,222,49,185,52,102,55,180,57,120,59,213,60,168,61,221,61,146,61,169,60,48,59, +66,57,209,54,38,52,101,49,138,46,184,43,185,40,155,37,164,34,161,31,200,28,63,26,195,23,185,21,57,20,221,18, +231,17,92,17,243,16,201,16,211,16,254,16,74,17,146,17,212,17,228,17,158,17,44,17,105,16,69,15,249,13,126,12, +221,10,23,9,3,7,195,4,99,2,188,255,244,252,43,250,105,247,222,244,130,242,39,240,243,237,4,236,60,234,180,232, +119,231,103,230,167,229,40,229,151,228,243,227,83,227,201,226,91,226,234,225,135,225,68,225,245,224,164,224,63,224,156,223, +227,222,42,222,83,221,67,220,237,218,129,217,39,216,210,214,122,213,39,212,10,211,70,210,178,209,56,209,238,208,218,208, +1,209,68,209,147,209,255,209,128,210,37,211,4,212,11,213,80,214,223,215,133,217,79,219,85,221,103,223,94,225,64,227, +14,229,186,230,46,232,103,233,112,234,68,235,235,235,112,236,201,236,41,237,170,237,23,238,136,238,27,239,159,239,39,240, +201,240,112,241,57,242,35,243,40,244,86,245,105,246,64,247,255,247,181,248,125,249,54,250,188,250,90,251,42,252,13,253, +252,253,245,254,21,0,86,1,144,2,202,3,236,4,0,6,40,7,47,8,19,9,238,9,173,10,118,11,63,12,217,12, +115,13,36,14,217,14,136,15,11,16,135,16,24,17,115,17,155,17,185,17,187,17,176,17,158,17,90,17,247,16,174,16, +110,16,45,16,15,16,252,15,236,15,251,15,239,15,181,15,113,15,22,15,197,14,128,14,5,14,111,13,222,12,47,12, +74,11,37,10,206,8,75,7,163,5,254,3,44,2,40,0,85,254,161,252,5,251,184,249,159,248,210,247,103,247,24,247, +248,246,44,247,158,247,98,248,130,249,247,250,168,252,151,254,219,0,65,3,186,5,110,8,19,11,130,13,226,15,10,18, +228,19,124,21,194,22,202,23,129,24,205,24,218,24,170,24,37,24,80,23,63,22,13,21,183,19,64,18,240,16,226,15, +235,14,34,14,184,13,146,13,164,13,26,14,220,14,192,15,205,16,254,17,44,19,29,20,197,20,70,21,113,21,49,21, +210,20,92,20,195,19,50,19,194,18,119,18,41,18,190,17,114,17,47,17,187,16,80,16,234,15,93,15,209,14,57,14, +140,13,36,13,16,13,44,13,156,13,81,14,24,15,23,16,66,17,72,18,50,19,21,20,202,20,68,21,128,21,86,21, +139,20,7,19,7,17,188,14,45,12,110,9,144,6,163,3,211,0,56,254,192,251,72,249,246,246,8,245,80,243,173,241, +52,240,189,238,64,237,198,235,82,234,28,233,39,232,93,231,252,230,27,231,159,231,131,232,176,233,31,235,200,236,121,238, +13,240,124,241,185,242,153,243,11,244,48,244,9,244,157,243,2,243,47,242,69,241,94,240,113,239,138,238,155,237,195,236, +30,236,99,235,182,234,85,234,251,233,170,233,149,233,168,233,246,233,114,234,231,234,102,235,19,236,4,237,43,238,103,239, +165,240,206,241,5,243,82,244,110,245,84,246,16,247,140,247,224,247,254,247,212,247,115,247,214,246,31,246,106,245,181,244, +54,244,247,243,249,243,94,244,242,244,127,245,36,246,234,246,180,247,76,248,192,248,63,249,171,249,246,249,44,250,79,250, +118,250,146,250,175,250,0,251,94,251,195,251,93,252,11,253,202,253,141,254,25,255,137,255,1,0,96,0,164,0,186,0, +166,0,171,0,190,0,168,0,135,0,101,0,45,0,15,0,8,0,191,255,101,255,60,255,19,255,233,254,199,254,119,254, +8,254,147,253,16,253,131,252,234,251,113,251,59,251,35,251,30,251,24,251,254,250,2,251,30,251,19,251,221,250,150,250, +85,250,4,250,127,249,236,248,86,248,147,247,177,246,222,245,56,245,187,244,53,244,191,243,129,243,67,243,1,243,240,242, +4,243,89,243,28,244,16,245,53,246,208,247,177,249,171,251,223,253,75,0,238,2,187,5,124,8,4,11,43,13,242,14, +105,16,105,17,235,17,8,18,197,17,56,17,110,16,111,15,75,14,1,13,184,11,133,10,97,9,118,8,213,7,133,7, +157,7,254,7,171,8,164,9,178,10,248,11,125,13,253,14,146,16,70,18,237,19,127,21,229,22,29,24,39,25,213,25, +47,26,62,26,213,25,9,25,254,23,160,22,250,20,64,19,131,17,201,15,43,14,164,12,56,11,7,10,252,8,31,8, +147,7,66,7,63,7,148,7,17,8,193,8,161,9,132,10,125,11,119,12,81,13,16,14,163,14,13,15,70,15,53,15, +229,14,71,14,107,13,109,12,35,11,157,9,242,7,14,6,22,4,17,2,20,0,86,254,180,252,53,251,247,249,183,248, +150,247,205,246,40,246,164,245,92,245,65,245,66,245,79,245,134,245,4,246,164,246,94,247,75,248,119,249,207,250,62,252, +215,253,140,255,50,1,189,2,11,4,17,5,242,5,145,6,213,6,210,6,128,6,230,5,42,5,82,4,88,3,76,2, +70,1,73,0,94,255,166,254,35,254,214,253,202,253,240,253,50,254,137,254,6,255,181,255,124,0,63,1,252,1,154,2, +18,3,112,3,172,3,198,3,211,3,215,3,201,3,193,3,189,3,139,3,50,3,218,2,128,2,56,2,242,1,140,1, +64,1,30,1,252,0,228,0,215,0,237,0,89,1,249,1,172,2,117,3,73,4,38,5,227,5,80,6,134,6,140,6, +89,6,15,6,153,5,215,4,246,3,241,2,182,1,122,0,69,255,32,254,52,253,84,252,103,251,140,250,174,249,227,248, +70,248,178,247,63,247,247,246,181,246,154,246,126,246,32,246,174,245,45,245,170,244,94,244,21,244,190,243,146,243,133,243, +141,243,154,243,132,243,100,243,100,243,117,243,127,243,118,243,72,243,233,242,121,242,1,242,104,241,203,240,60,240,152,239, +221,238,4,238,19,237,36,236,36,235,18,234,19,233,64,232,186,231,117,231,85,231,86,231,108,231,175,231,46,232,192,232, +85,233,233,233,131,234,49,235,198,235,54,236,170,236,47,237,192,237,66,238,166,238,6,239,91,239,168,239,244,239,18,240, +8,240,237,239,175,239,97,239,18,239,170,238,50,238,196,237,110,237,72,237,88,237,141,237,231,237,107,238,2,239,177,239, +137,240,113,241,111,242,105,243,22,244,172,244,81,245,198,245,46,246,135,246,154,246,180,246,229,246,230,246,223,246,225,246, +229,246,9,247,51,247,83,247,133,247,201,247,32,248,136,248,244,248,102,249,253,249,218,250,226,251,255,252,96,254,14,0, +221,1,215,3,15,6,118,8,11,11,209,13,165,16,88,19,219,21,18,24,216,25,41,27,30,28,207,28,87,29,183,29, +224,29,222,29,206,29,167,29,83,29,245,28,182,28,149,28,152,28,204,28,31,29,123,29,214,29,53,30,186,30,137,31, +166,32,2,34,147,35,59,37,202,38,59,40,165,41,19,43,145,44,34,46,193,47,78,49,153,50,146,51,58,52,140,52, +151,52,105,52,33,52,221,51,141,51,34,51,134,50,150,49,120,48,61,47,208,45,119,44,108,43,124,42,140,41,176,40, +225,39,18,39,75,38,152,37,23,37,231,36,227,36,204,36,163,36,99,36,202,35,194,34,124,33,18,32,136,30,228,28, +0,27,213,24,161,22,75,20,173,17,4,15,74,12,131,9,220,6,18,4,18,1,37,254,37,251,21,248,49,245,120,242, +30,240,74,238,212,236,214,235,93,235,60,235,123,235,255,235,157,236,99,237,72,238,56,239,19,240,138,240,151,240,118,240, +17,240,81,239,98,238,48,237,175,235,39,234,136,232,162,230,164,228,131,226,34,224,179,221,40,219,113,216,179,213,220,210, +254,207,67,205,134,202,231,199,178,197,222,195,124,194,179,193,95,193,93,193,182,193,71,194,221,194,106,195,237,195,101,196, +224,196,88,197,191,197,37,198,152,198,44,199,243,199,221,200,235,201,62,203,200,204,117,206,80,208,60,210,15,212,214,213, +143,215,12,217,94,218,185,219,30,221,116,222,162,223,196,224,21,226,120,227,187,228,251,229,59,231,132,232,244,233,72,235, +81,236,57,237,244,237,104,238,140,238,90,238,242,237,95,237,144,236,172,235,200,234,233,233,52,233,166,232,64,232,30,232, +8,232,243,231,32,232,128,232,236,232,104,233,210,233,59,234,199,234,92,235,12,236,255,236,27,238,113,239,24,241,233,242, +249,244,103,247,29,250,16,253,45,0,96,3,178,6,33,10,155,13,244,16,255,19,245,22,19,26,46,29,53,32,71,35, +98,38,115,41,87,44,10,47,196,49,132,52,8,55,65,57,26,59,120,60,107,61,199,61,101,61,168,60,206,59,196,58, +154,57,77,56,201,54,68,53,212,51,77,50,182,48,79,47,56,46,68,45,68,44,52,43,7,42,168,40,28,39,108,37, +154,35,194,33,24,32,178,30,105,29,54,28,71,27,183,26,169,26,62,27,82,28,199,29,186,31,28,34,168,36,58,39, +220,41,156,44,105,47,34,50,217,52,170,55,104,58,230,60,4,63,162,64,200,65,124,66,207,66,17,67,50,67,216,66, +19,66,251,64,133,63,200,61,164,59,17,57,110,54,211,51,46,49,136,46,180,43,190,40,231,37,252,34,224,31,195,28, +168,25,177,22,242,19,27,17,49,14,101,11,125,8,104,5,62,2,210,254,55,251,189,247,88,244,234,240,125,237,38,234, +15,231,73,228,199,225,136,223,142,221,6,220,4,219,47,218,98,217,218,216,135,216,40,216,207,215,155,215,122,215,100,215, +100,215,97,215,44,215,200,214,79,214,185,213,31,213,168,212,59,212,194,211,71,211,188,210,3,210,9,209,190,207,45,206, +87,204,77,202,62,200,39,198,230,195,146,193,69,191,6,189,235,186,18,185,134,183,67,182,63,181,114,180,180,179,228,178, +43,178,164,177,63,177,13,177,47,177,203,177,238,178,80,180,202,181,143,183,130,185,130,187,195,189,54,192,171,194,46,197, +153,199,170,201,120,203,41,205,186,206,63,208,229,209,178,211,129,213,73,215,11,217,170,218,51,220,193,221,71,223,242,224, +227,226,218,228,218,230,21,233,68,235,83,237,124,239,186,241,24,244,161,246,25,249,140,251,22,254,119,0,163,2,181,4, +163,6,133,8,95,10,4,12,120,13,184,14,198,15,213,16,211,17,167,18,157,19,218,20,62,22,187,23,58,25,190,26, +84,28,237,29,161,31,120,33,74,35,66,37,121,39,136,41,104,43,111,45,140,47,166,49,231,51,62,54,123,56,168,58, +210,60,224,62,187,64,117,66,28,68,165,69,9,71,49,72,237,72,57,73,64,73,12,73,144,72,224,71,16,71,21,70, +245,68,197,67,120,66,25,65,223,63,215,62,244,61,65,61,171,60,48,60,231,59,148,59,24,59,169,58,67,58,220,57, +135,57,28,57,162,56,65,56,172,55,210,54,4,54,54,53,93,52,142,51,143,50,66,49,207,47,47,46,99,44,95,42, +252,39,114,37,0,35,142,32,23,30,160,27,28,25,170,22,103,20,93,18,152,16,247,14,121,13,56,12,1,11,186,9, +131,8,70,7,15,6,21,5,65,4,142,3,34,3,234,2,202,2,180,2,163,2,160,2,132,2,4,2,16,1,168,255, +210,253,157,251,240,248,208,245,143,242,81,239,3,236,178,232,110,229,75,226,90,223,146,220,232,217,78,215,194,212,88,210, +23,208,253,205,1,204,1,202,6,200,53,198,122,196,208,194,75,193,225,191,175,190,218,189,65,189,236,188,7,189,111,189, +2,190,183,190,88,191,212,191,63,192,120,192,105,192,55,192,255,191,183,191,76,191,190,190,40,190,179,189,117,189,100,189, +125,189,185,189,3,190,99,190,223,190,71,191,164,191,38,192,169,192,13,193,113,193,213,193,47,194,122,194,155,194,162,194, +181,194,203,194,237,194,33,195,84,195,140,195,201,195,13,196,126,196,18,197,199,197,217,198,45,200,153,201,59,203,250,204, +218,206,41,209,196,211,142,214,202,217,118,221,109,225,176,229,34,234,202,238,197,243,238,248,64,254,179,3,0,9,24,14, +233,18,62,23,59,27,231,30,14,34,211,36,82,39,108,41,41,43,139,44,163,45,189,46,224,47,2,49,86,50,197,51, +47,53,180,54,54,56,123,57,162,58,195,59,218,60,243,61,3,63,255,63,1,65,249,65,180,66,61,67,190,67,31,68, +66,68,70,68,62,68,13,68,167,67,8,67,71,66,126,65,142,64,112,63,87,62,68,61,43,60,55,59,115,58,204,57, +74,57,230,56,148,56,98,56,100,56,166,56,19,57,129,57,236,57,77,58,157,58,234,58,43,59,93,59,141,59,145,59, +91,59,25,59,173,58,242,57,255,56,203,55,85,54,205,52,41,51,100,49,141,47,113,45,248,42,77,40,120,37,124,34, +99,31,38,28,225,24,180,21,164,18,179,15,218,12,44,10,216,7,231,5,86,4,59,3,140,2,40,2,245,1,234,1, +7,2,18,2,230,1,199,1,172,1,58,1,147,0,212,255,181,254,49,253,110,251,122,249,111,247,71,245,235,242,94,240, +151,237,162,234,154,231,103,228,20,225,208,221,141,218,94,215,108,212,160,209,8,207,213,204,5,203,172,201,222,200,113,200, +96,200,181,200,63,201,200,201,51,202,121,202,166,202,171,202,130,202,69,202,240,201,134,201,41,201,229,200,187,200,181,200, +197,200,228,200,13,201,58,201,105,201,140,201,149,201,139,201,92,201,255,200,146,200,47,200,221,199,149,199,72,199,9,199, +247,198,5,199,30,199,79,199,175,199,38,200,152,200,40,201,208,201,65,202,141,202,233,202,30,203,27,203,22,203,25,203, +51,203,99,203,125,203,155,203,207,203,249,203,65,204,181,204,40,205,205,205,181,206,155,207,158,208,227,209,74,211,254,212, +36,215,168,217,178,220,88,224,107,228,222,232,169,237,163,242,184,247,225,252,24,2,73,7,73,12,15,17,142,21,135,25, +224,28,186,31,31,34,19,36,173,37,253,38,251,39,156,40,250,40,49,41,57,41,26,41,234,40,184,40,165,40,203,40, +24,41,137,41,37,42,247,42,12,44,78,45,171,46,80,48,67,50,72,52,57,54,21,56,223,57,121,59,191,60,185,61, +127,62,32,63,171,63,8,64,40,64,49,64,13,64,152,63,255,62,93,62,175,61,19,61,125,60,223,59,106,59,34,59, +4,59,49,59,151,59,33,60,216,60,161,61,113,62,93,63,87,64,74,65,31,66,183,66,37,67,102,67,74,67,216,66, +42,66,67,65,56,64,8,63,172,61,46,60,126,58,159,56,166,54,118,52,12,50,154,47,12,45,72,42,111,39,121,36, +81,33,10,30,189,26,102,23,15,20,213,16,185,13,159,10,152,7,183,4,205,1,233,254,84,252,19,250,44,248,190,246, +148,245,133,244,170,243,242,242,62,242,137,241,197,240,248,239,35,239,19,238,196,236,89,235,198,233,242,231,217,229,140,227, +60,225,11,223,249,220,8,219,56,217,137,215,248,213,106,212,232,210,162,209,157,208,195,207,11,207,104,206,203,205,37,205, +76,204,68,203,61,202,27,201,196,199,139,198,147,197,165,196,227,195,115,195,244,194,94,194,24,194,255,193,210,193,177,193, +126,193,12,193,142,192,22,192,161,191,78,191,37,191,48,191,119,191,220,191,100,192,29,193,240,193,234,194,21,196,89,197, +213,198,131,200,26,202,158,203,28,205,110,206,165,207,226,208,33,210,97,211,144,212,173,213,199,214,203,215,211,216,10,218, +85,219,202,220,129,222,43,224,173,225,46,227,130,228,149,229,142,230,97,231,18,232,185,232,79,233,236,233,147,234,45,235, +231,235,219,236,2,238,136,239,96,241,80,243,114,245,175,247,206,249,255,251,74,254,117,0,159,2,224,4,1,7,247,8, +214,10,138,12,8,14,97,15,178,16,23,18,135,19,232,20,57,22,121,23,174,24,234,25,47,27,108,28,176,29,42,31, +251,32,31,35,97,37,143,39,189,41,28,44,156,46,24,49,149,51,4,54,51,56,14,58,157,59,213,60,169,61,35,62, +74,62,41,62,201,61,25,61,23,60,4,59,32,58,104,57,197,56,58,56,238,55,9,56,116,56,8,57,185,57,98,58, +251,58,177,59,117,60,37,61,205,61,76,62,149,62,228,62,51,63,99,63,141,63,154,63,103,63,20,63,157,62,6,62, +105,61,135,60,76,59,242,57,98,56,139,54,163,52,169,50,147,48,124,46,99,44,73,42,51,40,41,38,101,36,235,34, +115,33,9,32,197,30,123,29,49,28,244,26,154,25,11,24,55,22,34,20,237,17,139,15,5,13,164,10,89,8,241,5, +148,3,103,1,102,255,113,253,87,251,54,249,52,247,27,245,225,242,170,240,68,238,163,235,3,233,99,230,173,227,7,225, +149,222,88,220,57,218,47,216,71,214,108,212,163,210,49,209,3,208,219,206,209,205,218,204,210,203,222,202,229,201,163,200, +84,199,52,198,32,197,47,196,118,195,184,194,1,194,118,193,228,192,79,192,250,191,216,191,192,191,188,191,205,191,223,191, +245,191,46,192,146,192,1,193,128,193,45,194,228,194,121,195,8,196,148,196,13,197,129,197,231,197,63,198,175,198,38,199, +117,199,175,199,222,199,229,199,219,199,249,199,89,200,233,200,143,201,59,202,224,202,125,203,40,204,222,204,162,205,160,206, +202,207,244,208,48,210,130,211,209,212,39,214,158,215,82,217,73,219,72,221,66,223,80,225,67,227,29,229,40,231,87,233, +147,235,6,238,165,240,113,243,132,246,162,249,181,252,233,255,38,3,117,6,25,10,232,13,156,17,62,21,203,24,45,28, +94,31,97,34,81,37,71,40,62,43,33,46,201,48,49,51,119,53,107,55,214,56,250,57,2,59,213,59,129,60,1,61, +21,61,183,60,5,60,247,58,146,57,4,56,118,54,247,52,137,51,24,50,124,48,190,46,26,45,148,43,23,42,205,40, +202,39,8,39,178,38,191,38,246,38,135,39,158,40,23,42,10,44,140,46,81,49,47,52,29,55,219,57,72,60,112,62, +72,64,216,65,35,67,26,68,192,68,7,69,235,68,158,68,22,68,45,67,31,66,27,65,249,63,169,62,43,61,120,59, +172,57,194,55,152,53,91,51,62,49,46,47,10,45,209,42,170,40,182,38,205,36,205,34,220,32,13,31,81,29,159,27, +223,25,18,24,71,22,93,20,59,18,249,15,166,13,72,11,242,8,173,6,113,4,76,2,108,0,207,254,41,253,89,251, +141,249,204,247,11,246,88,244,151,242,183,240,212,238,211,236,157,234,97,232,59,230,60,228,118,226,183,224,208,222,221,220, +255,218,87,217,227,215,112,214,7,213,204,211,146,210,76,209,18,208,176,206,31,205,157,203,43,202,208,200,158,199,97,198, +6,197,183,195,90,194,190,192,3,191,107,189,29,188,249,186,212,185,188,184,193,183,215,182,3,182,72,181,176,180,103,180, +107,180,148,180,222,180,76,181,232,181,211,182,250,183,41,185,118,186,17,188,225,189,151,191,23,193,140,194,26,196,176,197, +71,199,217,200,88,202,201,203,26,205,51,206,51,207,54,208,56,209,79,210,120,211,156,212,202,213,236,214,216,215,188,216, +182,217,183,218,232,219,89,221,233,222,169,224,154,226,162,228,230,230,112,233,27,236,243,238,247,241,16,245,93,248,198,251, +252,254,20,2,74,5,155,8,235,11,32,15,64,18,84,21,63,24,244,26,148,29,30,32,144,34,2,37,98,39,143,41, +143,43,116,45,85,47,39,49,203,50,82,52,210,53,32,55,61,56,107,57,190,58,26,60,109,61,179,62,252,63,68,65, +94,66,44,67,183,67,28,68,90,68,104,68,102,68,97,68,61,68,16,68,208,67,53,67,116,66,252,65,172,65,109,65, +121,65,170,65,194,65,202,65,165,65,75,65,236,64,120,64,222,63,78,63,201,62,55,62,162,61,243,60,7,60,241,58, +227,57,9,57,94,56,203,55,93,55,254,54,132,54,21,54,170,53,255,52,43,52,77,51,31,50,133,48,156,46,84,44, +163,41,180,38,173,35,161,32,143,29,137,26,207,23,117,21,72,19,39,17,30,15,73,13,180,11,72,10,245,8,184,7, +139,6,101,5,54,4,230,2,111,1,219,255,68,254,216,252,128,251,19,250,164,248,35,247,88,245,71,243,248,240,92,238, +137,235,114,232,4,229,120,225,223,221,18,218,56,214,122,210,208,206,99,203,99,200,210,197,186,195,36,194,14,193,121,192, +40,192,239,191,231,191,0,192,16,192,27,192,20,192,248,191,241,191,231,191,173,191,89,191,19,191,239,190,247,190,23,191, +92,191,216,191,77,192,129,192,146,192,170,192,208,192,248,192,7,193,11,193,41,193,89,193,134,193,173,193,197,193,198,193, +180,193,163,193,157,193,173,193,231,193,48,194,65,194,40,194,25,194,12,194,14,194,83,194,195,194,73,195,250,195,186,196, +108,197,50,198,29,199,38,200,69,201,93,202,143,203,0,205,131,206,248,207,112,209,232,210,122,212,60,214,32,216,74,218, +221,220,198,223,25,227,228,230,3,235,148,239,185,244,51,250,232,255,233,5,251,11,228,17,173,23,82,29,171,34,152,39, +17,44,13,48,92,51,234,53,223,55,78,57,65,58,218,58,11,59,200,58,76,58,188,57,20,57,105,56,199,55,52,55, +198,54,132,54,91,54,71,54,84,54,149,54,8,55,149,55,44,56,204,56,148,57,144,58,124,59,55,60,4,61,214,61, +111,62,219,62,25,63,28,63,38,63,50,63,244,62,126,62,255,61,122,61,9,61,163,60,39,60,182,59,99,59,37,59, +5,59,226,58,154,58,86,58,57,58,79,58,153,58,233,58,41,59,118,59,183,59,198,59,158,59,34,59,97,58,138,57, +128,56,63,55,251,53,185,52,121,51,84,50,49,49,12,48,0,47,2,46,13,45,44,44,48,43,219,41,29,40,242,37, +103,35,149,32,138,29,92,26,29,23,200,19,97,16,247,12,164,9,109,6,71,3,91,0,198,253,105,251,98,249,206,247, +107,246,31,245,0,244,221,242,187,241,211,240,255,239,30,239,60,238,37,237,200,235,80,234,147,232,139,230,146,228,200,226, +22,225,99,223,123,221,85,219,19,217,188,214,97,212,10,210,183,207,154,205,202,203,36,202,170,200,88,199,12,198,231,196, +246,195,23,195,86,194,166,193,209,192,242,191,23,191,6,190,211,188,191,187,209,186,3,186,71,185,126,184,176,183,238,182, +61,182,170,181,39,181,155,180,16,180,156,179,58,179,214,178,120,178,71,178,36,178,218,177,149,177,137,177,160,177,219,177, +73,178,203,178,110,179,77,180,95,181,173,182,56,184,227,185,177,187,165,189,171,191,215,193,38,196,119,198,217,200,93,203, +248,205,200,208,221,211,48,215,194,218,121,222,51,226,251,229,198,233,139,237,113,241,117,245,130,249,160,253,179,1,153,5, +86,9,217,12,35,16,71,19,38,22,188,24,60,27,127,29,79,31,201,32,250,33,203,34,63,35,84,35,40,35,254,34, +209,34,113,34,228,33,72,33,178,32,60,32,225,31,156,31,152,31,253,31,192,32,199,33,0,35,95,36,238,37,196,39, +217,41,36,44,201,46,199,49,219,52,219,55,198,58,145,61,54,64,179,66,3,69,55,71,70,73,25,75,208,76,95,78, +104,79,239,79,57,80,64,80,41,80,84,80,172,80,236,80,50,81,141,81,200,81,217,81,238,81,3,82,245,81,203,81, +147,81,20,81,32,80,204,78,38,77,45,75,22,73,1,71,220,68,197,66,219,64,231,62,184,60,101,58,255,55,140,53, +46,51,218,48,101,46,213,43,80,41,203,38,56,36,165,33,12,31,131,28,60,26,46,24,50,22,72,20,120,18,202,16, +63,15,192,13,80,12,8,11,219,9,175,8,128,7,75,6,18,5,228,3,202,2,197,1,170,0,54,255,150,253,22,252, +127,250,143,248,96,246,227,243,248,240,186,237,52,234,91,230,96,226,137,222,209,218,21,215,120,211,48,208,37,205,55,202, +124,199,245,196,148,194,94,192,20,190,133,187,249,184,143,182,35,180,221,177,225,175,31,174,193,172,235,171,110,171,48,171, +43,171,47,171,48,171,85,171,161,171,240,171,46,172,91,172,101,172,53,172,234,171,185,171,180,171,233,171,92,172,20,173, +47,174,146,175,3,177,134,178,18,180,129,181,232,182,79,184,146,185,191,186,199,187,126,188,7,189,111,189,161,189,220,189, +53,190,123,190,222,190,138,191,95,192,113,193,224,194,139,196,86,198,47,200,26,202,81,204,216,206,140,209,112,212,113,215, +126,218,176,221,237,224,42,228,183,231,138,235,81,239,17,243,228,246,180,250,126,254,39,2,129,5,143,8,107,11,52,14, +251,16,178,19,106,22,51,25,231,27,113,30,231,32,94,35,241,37,178,40,146,43,133,46,109,49,57,52,25,55,19,58, +1,61,9,64,60,67,115,70,181,73,243,76,246,79,196,82,89,85,138,87,112,89,33,91,129,92,137,93,41,94,83,94, +28,94,116,93,104,92,65,91,239,89,84,88,167,86,224,84,213,82,194,80,193,78,175,76,167,74,201,72,15,71,152,69, +135,68,229,67,142,67,60,67,236,66,198,66,182,66,193,66,28,67,169,67,58,68,195,68,23,69,12,69,151,68,167,67, +71,66,124,64,62,62,178,59,228,56,184,53,76,50,168,46,177,42,166,38,183,34,192,30,239,26,132,23,76,20,65,17, +130,14,240,11,146,9,160,7,33,6,27,5,155,4,132,4,187,4,49,5,206,5,132,6,41,7,129,7,118,7,22,7, +101,6,67,5,129,3,22,1,13,254,104,250,78,246,212,241,228,236,205,231,2,227,115,222,249,217,168,213,130,209,168,205, +80,202,86,199,142,196,40,194,83,192,6,191,10,190,36,189,97,188,199,187,50,187,201,186,172,186,160,186,182,186,50,187, +226,187,130,188,6,189,75,189,94,189,108,189,84,189,3,189,170,188,75,188,202,187,30,187,74,186,105,185,160,184,255,183, +147,183,96,183,73,183,70,183,81,183,68,183,26,183,245,182,230,182,227,182,224,182,229,182,21,183,106,183,196,183,48,184, +191,184,122,185,126,186,216,187,112,189,45,191,242,192,180,194,116,196,27,198,159,199,25,201,163,202,73,204,255,205,145,207, +0,209,133,210,46,212,246,213,0,216,110,218,94,221,213,224,143,228,115,232,168,236,35,241,210,245,198,250,227,255,30,5, +160,10,90,16,25,22,192,27,19,33,229,37,95,42,143,46,86,50,196,53,232,56,165,59,228,61,166,63,227,64,145,65, +190,65,144,65,40,65,156,64,245,63,28,63,253,61,178,60,71,59,186,57,46,56,187,54,113,53,129,52,222,51,72,51, +200,50,102,50,249,49,137,49,41,49,194,48,97,48,21,48,207,47,145,47,61,47,177,46,53,46,12,46,44,46,171,46, +168,47,5,49,171,50,101,52,238,53,100,55,14,57,223,58,172,60,98,62,252,63,128,65,201,66,155,67,255,67,21,68, +231,67,133,67,19,67,161,66,16,66,50,65,11,64,174,62,15,61,69,59,123,57,199,55,69,54,238,52,122,51,193,49, +194,47,111,45,251,42,155,40,67,38,2,36,249,33,2,32,10,30,16,28,218,25,98,23,241,20,169,18,141,16,149,14, +159,12,166,10,173,8,153,6,120,4,111,2,138,0,222,254,112,253,40,252,251,250,184,249,20,248,41,246,42,244,45,242, +95,240,179,238,237,236,36,235,115,233,156,231,136,229,93,227,60,225,80,223,167,221,20,220,130,218,245,216,77,215,96,213, +48,211,236,208,162,206,72,204,248,201,187,199,99,197,1,195,179,192,57,190,126,187,191,184,8,182,84,179,168,176,228,173, +17,171,83,168,129,165,152,162,217,159,89,157,60,155,170,153,113,152,123,151,243,150,203,150,236,150,111,151,71,152,114,153, +3,155,207,156,169,158,160,160,172,162,182,164,193,166,206,168,221,170,245,172,21,175,67,177,125,179,186,181,26,184,205,186, +246,189,152,193,141,197,191,201,65,206,253,210,213,215,218,220,6,226,83,231,213,236,95,242,200,247,44,253,114,2,81,7, +175,11,115,15,160,18,95,21,160,23,92,25,205,26,218,27,74,28,80,28,30,28,173,27,251,26,249,25,200,24,201,23, +8,23,78,22,178,21,109,21,143,21,29,22,26,23,147,24,156,26,23,29,220,31,234,34,73,38,242,41,200,45,197,49, +31,54,196,58,82,63,184,67,23,72,95,76,141,80,150,84,78,88,198,91,19,95,231,97,17,100,186,101,240,102,146,103, +158,103,72,103,197,102,5,102,241,100,156,99,244,97,233,95,162,93,25,91,81,88,153,85,255,82,80,80,163,77,17,75, +140,72,34,70,200,67,124,65,124,63,199,61,31,60,131,58,242,56,77,55,179,53,40,52,122,50,181,48,255,46,87,45, +182,43,255,41,17,40,255,37,225,35,160,33,50,31,184,28,92,26,18,24,184,21,104,19,66,17,54,15,88,13,213,11, +164,10,186,9,20,9,171,8,145,8,202,8,37,9,138,9,233,9,48,10,102,10,91,10,213,9,16,9,19,8,112,6, +55,4,189,1,227,254,144,251,226,247,209,243,103,239,210,234,45,230,156,225,52,221,218,216,140,212,77,208,1,204,188,199, +167,195,198,191,48,188,1,185,37,182,142,179,61,177,39,175,91,173,237,171,209,170,245,169,112,169,112,169,211,169,50,170, +124,170,216,170,52,171,166,171,104,172,81,173,57,174,58,175,60,176,41,177,50,178,104,179,195,180,55,182,149,183,211,184, +13,186,34,187,255,187,187,188,54,189,102,189,150,189,239,189,104,190,243,190,103,191,174,191,214,191,238,191,5,192,32,192, +72,192,176,192,63,193,144,193,157,193,166,193,166,193,176,193,235,193,67,194,178,194,85,195,25,196,247,196,9,198,84,199, +236,200,8,203,193,205,10,209,200,212,223,216,39,221,123,225,234,229,156,234,140,239,201,244,102,250,21,0,135,5,199,10, +190,15,82,20,161,24,187,28,170,32,147,36,105,40,20,44,149,47,203,50,184,53,150,56,109,59,56,62,24,65,235,67, +127,70,199,72,143,74,200,75,180,76,118,77,47,78,23,79,7,80,187,80,63,81,154,81,185,81,170,81,104,81,226,80, +51,80,123,79,173,78,155,77,57,76,176,74,30,73,137,71,13,70,194,68,173,67,203,66,242,65,7,65,44,64,103,63, +194,62,134,62,195,62,67,63,7,64,8,65,37,66,118,67,228,68,62,70,166,71,31,73,121,74,191,75,223,76,130,77, +164,77,95,77,179,76,206,75,204,74,123,73,205,71,205,69,100,67,163,64,162,61,89,58,226,54,96,51,202,47,29,44, +114,40,204,36,249,32,225,28,205,24,1,21,103,17,234,13,150,10,101,7,105,4,168,1,245,254,102,252,72,250,125,248, +188,246,3,245,82,243,141,241,179,239,214,237,3,236,48,234,96,232,171,230,241,228,21,227,80,225,186,223,33,222,141,220, +19,219,170,217,109,216,70,215,225,213,68,212,171,210,37,209,203,207,163,206,135,205,116,204,119,203,121,202,126,201,129,200, +103,199,87,198,126,197,188,196,210,195,151,194,22,193,109,191,142,189,121,187,118,185,170,183,13,182,147,180,19,179,102,177, +169,175,243,173,68,172,182,170,96,169,72,168,98,167,118,166,92,165,22,164,164,162,67,161,72,160,207,159,231,159,133,160, +107,161,140,162,228,163,40,165,97,166,254,167,30,170,181,172,177,175,182,178,146,181,90,184,237,186,53,189,102,191,179,193, +70,196,52,199,65,202,73,205,99,208,122,211,129,214,184,217,84,221,109,225,24,230,39,235,77,240,101,245,96,250,43,255, +212,3,130,8,58,13,221,17,109,22,224,26,229,30,82,34,61,37,149,39,93,41,196,42,196,43,89,44,185,44,213,44, +129,44,231,43,47,43,116,42,243,41,195,41,224,41,103,42,62,43,41,44,54,45,148,46,70,48,51,50,60,52,92,54, +149,56,203,58,228,60,178,62,23,64,74,65,118,66,97,67,255,67,126,68,209,68,254,68,30,69,24,69,5,69,47,69, +133,69,209,69,13,70,71,70,144,70,233,70,80,71,244,71,239,72,45,74,191,75,160,77,135,79,105,81,102,83,78,85, +224,86,6,88,186,88,13,89,0,89,127,88,164,87,127,86,6,85,79,83,108,81,88,79,47,77,7,75,214,72,155,70, +68,68,194,65,40,63,91,60,49,57,206,53,66,50,129,46,185,42,19,39,138,35,38,32,214,28,127,25,71,22,74,19, +109,16,183,13,68,11,12,9,255,6,11,5,26,3,38,1,33,255,12,253,6,251,32,249,88,247,179,245,46,244,183,242, +55,241,161,239,240,237,42,236,114,234,216,232,50,231,79,229,31,227,125,224,108,221,66,218,32,215,245,211,237,208,37,206, +120,203,231,200,111,198,230,195,84,193,204,190,73,188,225,185,169,183,155,181,172,179,175,177,131,175,78,173,29,171,231,168, +212,166,246,164,64,163,191,161,92,160,229,158,124,157,65,156,40,155,56,154,128,153,12,153,244,152,36,153,122,153,244,153, +126,154,16,155,197,155,143,156,95,157,86,158,120,159,166,160,235,161,86,163,229,164,147,166,76,168,12,170,221,171,187,173, +190,175,12,178,154,180,107,183,153,186,252,189,125,193,79,197,120,201,216,205,113,210,68,215,81,220,144,225,204,230,220,235, +197,240,134,245,32,250,143,254,174,2,110,6,212,9,176,12,223,14,110,16,110,17,8,18,125,18,225,18,44,19,115,19, +186,19,239,19,20,20,77,20,194,20,133,21,149,22,252,23,208,25,4,28,113,30,1,33,173,35,129,38,169,41,57,45, +6,49,254,52,49,57,114,61,139,65,152,69,135,73,34,77,158,80,37,84,118,87,141,90,122,93,234,95,204,97,79,99, +73,100,175,100,196,100,131,100,225,99,16,99,6,98,181,96,93,95,34,94,2,93,22,92,96,91,217,90,124,90,33,90, +186,89,108,89,55,89,2,89,192,88,102,88,232,87,68,87,123,86,152,85,145,84,98,83,29,82,180,80,6,79,40,77, +23,75,146,72,139,69,27,66,80,62,61,58,241,53,122,49,252,44,126,40,5,36,213,31,11,28,128,24,70,21,105,18, +172,15,5,13,173,10,179,8,12,7,182,5,157,4,164,3,181,2,199,1,236,0,16,0,0,255,198,253,122,252,16,251, +146,249,2,248,43,246,248,243,121,241,163,238,138,235,123,232,142,229,137,226,80,223,242,219,120,216,221,212,47,209,170,205, +165,202,30,200,198,197,137,195,114,193,104,191,116,189,179,187,11,186,144,184,137,183,194,182,240,181,60,181,148,180,163,179, +139,178,151,177,191,176,16,176,184,175,167,175,157,175,114,175,33,175,182,174,62,174,237,173,249,173,53,174,111,174,199,174, +64,175,175,175,6,176,53,176,64,176,151,176,126,177,165,178,207,179,31,181,168,182,52,184,139,185,188,186,1,188,107,189, +216,190,29,192,23,193,205,193,69,194,94,194,23,194,172,193,58,193,201,192,97,192,232,191,100,191,23,191,20,191,75,191, +222,191,254,192,190,194,41,197,47,200,172,203,156,207,251,211,190,216,217,221,56,227,222,232,201,238,187,244,139,250,70,0, +191,5,201,10,151,15,58,20,127,24,118,28,61,32,175,35,204,38,186,41,110,44,226,46,39,49,55,51,51,53,87,55, +129,57,144,59,176,61,223,63,225,65,204,67,203,69,213,71,240,73,29,76,28,78,197,79,36,81,65,82,14,83,112,83, +75,83,183,82,204,81,135,80,10,79,133,77,230,75,31,74,91,72,211,70,176,69,248,68,131,68,74,68,87,68,134,68, +177,68,227,68,36,69,117,69,220,69,68,70,145,70,203,70,18,71,89,71,113,71,97,71,88,71,86,71,80,71,109,71, +167,71,193,71,184,71,125,71,199,70,171,69,115,68,16,67,111,65,160,63,149,61,100,59,69,57,47,55,248,52,180,50, +140,48,139,46,188,44,37,43,170,41,255,39,254,37,218,35,167,33,58,31,183,28,98,26,44,24,7,22,244,19,169,17, +4,15,99,12,240,9,119,7,217,4,40,2,124,255,223,252,25,250,243,246,137,243,2,240,92,236,175,232,15,229,121,225, +247,221,116,218,184,214,227,210,94,207,106,204,28,202,102,200,35,199,65,198,181,197,99,197,71,197,95,197,108,197,86,197, +76,197,64,197,246,196,121,196,235,195,69,195,131,194,165,193,136,192,34,191,161,189,29,188,113,186,133,184,90,182,225,179, +31,177,92,174,176,171,227,168,8,166,119,163,73,161,109,159,235,157,176,156,152,155,165,154,219,153,62,153,216,152,171,152, +173,152,196,152,220,152,22,153,126,153,204,153,252,153,126,154,120,155,192,156,103,158,117,160,189,162,50,165,222,167,193,170, +253,173,187,177,255,181,166,186,128,191,124,196,179,201,35,207,205,212,217,218,74,225,18,232,55,239,117,246,79,253,194,3, +244,9,179,15,217,20,125,25,151,29,12,33,189,35,125,37,78,38,103,38,245,37,52,37,96,36,140,35,225,34,139,34, +75,34,241,33,202,33,26,34,228,34,57,36,30,38,99,40,236,42,173,45,141,48,128,51,139,54,171,57,234,60,100,64, +27,68,229,71,121,75,172,78,122,81,239,83,25,86,10,88,203,89,105,91,229,92,28,94,211,94,234,94,116,94,172,93, +187,92,160,91,109,90,63,89,13,88,215,86,183,85,154,84,121,83,148,82,1,82,148,81,57,81,234,80,165,80,124,80, +70,80,196,79,24,79,116,78,185,77,222,76,247,75,249,74,227,73,181,72,63,71,114,69,117,67,77,65,238,62,103,60, +198,57,253,54,235,51,136,48,15,45,156,41,3,38,84,34,228,30,203,27,249,24,104,22,9,20,252,17,110,16,59,15, +64,14,158,13,56,13,199,12,68,12,171,11,212,10,195,9,118,8,204,6,227,4,0,3,50,1,103,255,143,253,165,251, +179,249,170,247,84,245,158,242,151,239,73,236,186,232,213,228,128,224,215,219,16,215,75,210,183,205,126,201,153,197,12,194, +7,191,142,188,104,186,121,184,207,182,98,181,26,180,249,178,241,177,232,176,236,175,12,175,26,174,29,173,104,172,237,171, +110,171,46,171,97,171,180,171,4,172,125,172,255,172,68,173,70,173,26,173,222,172,157,172,59,172,175,171,9,171,70,170, +135,169,254,168,167,168,137,168,216,168,142,169,136,170,184,171,255,172,70,174,173,175,64,177,223,178,124,180,19,182,155,183, +3,185,23,186,208,186,118,187,38,188,193,188,90,189,12,190,214,190,191,191,181,192,174,193,247,194,198,196,230,198,47,201, +193,203,188,206,42,210,248,213,250,217,57,222,226,226,232,231,36,237,127,242,240,247,127,253,23,3,127,8,174,13,197,18, +155,23,236,27,178,31,246,34,194,37,44,40,46,42,177,43,216,44,234,45,2,47,19,48,32,49,62,50,123,51,231,52, +169,54,211,56,88,59,23,62,231,64,183,67,151,70,113,73,13,76,107,78,148,80,107,82,252,83,81,85,55,86,189,86, +61,87,183,87,250,87,27,88,57,88,83,88,111,88,119,88,95,88,68,88,19,88,155,87,238,86,58,86,159,85,67,85, +21,85,232,84,230,84,78,85,251,85,173,86,83,87,4,88,222,88,186,89,91,90,208,90,36,91,15,91,117,90,130,89, +85,88,7,87,160,85,234,83,189,81,69,79,179,76,9,74,52,71,47,68,27,65,18,62,251,58,194,55,114,52,4,49, +120,45,231,41,83,38,185,34,32,31,110,27,148,23,171,19,185,15,187,11,228,7,101,4,68,1,126,254,13,252,212,249, +186,247,194,245,254,243,105,242,200,240,250,238,17,237,11,235,175,232,231,229,229,226,219,223,198,220,147,217,94,214,88,211, +154,208,39,206,208,203,96,201,15,199,56,197,171,195,30,194,176,192,111,191,58,190,24,189,9,188,252,186,24,186,101,185, +180,184,8,184,121,183,225,182,42,182,84,181,82,180,46,179,234,177,87,176,118,174,95,172,8,170,133,167,3,165,125,162, +6,160,214,157,235,155,55,154,208,152,178,151,227,150,132,150,141,150,233,150,162,151,145,152,131,153,125,154,125,155,115,156, +115,157,130,158,134,159,148,160,193,161,247,162,41,164,102,165,199,166,98,168,45,170,44,172,128,174,34,177,239,179,232,182, +253,185,21,189,99,192,15,196,231,199,214,203,7,208,124,212,25,217,223,221,217,226,5,232,83,237,160,242,214,247,254,252, +17,2,233,6,103,11,124,15,37,19,89,22,31,25,139,27,164,29,101,31,221,32,32,34,72,35,124,36,207,37,73,39, +2,41,235,42,225,44,252,46,75,49,168,51,14,54,136,56,243,58,81,61,198,63,71,66,212,68,142,71,102,74,77,77, +76,80,58,83,243,85,146,88,20,91,84,93,86,95,13,97,107,98,151,99,140,100,14,101,56,101,73,101,58,101,13,101, +231,100,195,100,141,100,75,100,1,100,175,99,86,99,243,98,149,98,69,98,227,97,81,97,152,96,204,95,226,94,191,93, +108,92,12,91,160,89,5,88,43,86,18,84,185,81,45,79,124,76,157,73,136,70,64,67,212,63,95,60,223,56,50,53, +96,49,150,45,239,41,116,38,52,35,44,32,78,29,145,26,239,23,107,21,15,19,229,16,0,15,119,13,80,12,115,11, +181,10,252,9,82,9,184,8,17,8,66,7,73,6,44,5,230,3,59,2,7,0,140,253,6,251,84,248,96,245,71,242, +19,239,215,235,146,232,17,229,91,225,200,221,108,218,49,215,26,212,26,209,46,206,109,203,174,200,203,197,17,195,182,192, +151,190,167,188,216,186,250,184,20,183,59,181,82,179,74,177,52,175,27,173,33,171,70,169,97,167,131,165,199,163,7,162, +74,160,230,158,6,158,153,157,137,157,185,157,30,158,182,158,107,159,58,160,59,161,117,162,228,163,131,165,63,167,30,169, +42,171,58,173,38,175,255,176,212,178,168,180,119,182,26,184,138,185,237,186,42,188,10,189,176,189,98,190,36,191,217,191, +105,192,226,192,116,193,31,194,170,194,2,195,75,195,171,195,44,196,212,196,165,197,172,198,9,200,230,201,66,204,244,206, +10,210,172,213,176,217,241,221,157,226,159,231,157,236,142,241,138,246,119,251,96,0,95,5,82,10,43,15,241,19,128,24, +186,28,175,32,111,36,44,40,15,44,220,47,77,51,110,54,78,57,238,59,98,62,163,64,168,66,129,68,56,70,205,71, +91,73,229,74,102,76,233,77,61,79,59,80,47,81,91,82,124,83,85,84,223,84,252,84,158,84,240,83,251,82,165,81, +250,79,23,78,2,76,205,73,148,71,92,69,34,67,251,64,21,63,162,61,185,60,61,60,18,60,87,60,34,61,32,62, +250,62,218,63,250,64,60,66,130,67,219,68,57,70,136,71,215,72,21,74,0,75,118,75,122,75,29,75,133,74,192,73, +159,72,22,71,90,69,112,67,50,65,197,62,99,60,12,58,200,55,188,53,217,51,12,50,124,48,59,47,45,46,60,45, +86,44,81,43,38,42,249,40,214,39,141,38,225,36,215,34,174,32,111,30,234,27,2,25,190,21,59,18,149,14,170,10, +89,6,221,1,103,253,207,248,3,244,21,239,4,234,251,228,79,224,26,220,77,216,222,212,170,209,169,206,4,204,195,201, +225,199,128,198,148,197,230,196,113,196,62,196,50,196,67,196,131,196,226,196,51,197,90,197,104,197,126,197,125,197,24,197, +39,196,182,194,241,192,11,191,17,189,238,186,162,184,56,182,165,179,212,176,185,173,123,170,118,167,213,164,99,162,5,160, +223,157,14,156,136,154,67,153,74,152,178,151,124,151,165,151,49,152,244,152,194,153,187,154,222,155,225,156,206,157,246,158, +87,160,179,161,231,162,229,163,196,164,169,165,154,166,192,167,83,169,57,171,82,173,211,175,191,178,238,181,123,185,123,189, +225,193,214,198,108,204,82,210,74,216,99,222,168,228,30,235,162,241,234,247,227,253,175,3,55,9,42,14,74,18,135,21, +17,24,21,26,117,27,28,28,60,28,12,28,147,27,196,26,161,25,99,24,97,23,186,22,89,22,60,22,112,22,21,23, +76,24,17,26,84,28,26,31,97,34,31,38,84,42,219,46,121,51,37,56,242,60,224,65,238,70,4,76,234,80,148,85, +243,89,195,93,220,96,112,99,185,101,207,103,160,105,251,106,192,107,254,107,205,107,58,107,88,106,64,105,10,104,209,102, +169,101,159,100,160,99,118,98,29,97,215,95,201,94,230,93,60,93,214,92,155,92,105,92,20,92,101,91,89,90,16,89, +140,87,214,85,3,84,254,81,163,79,234,76,206,73,80,70,143,66,177,62,212,58,25,55,117,51,175,47,178,43,148,39, +110,35,92,31,119,27,225,23,208,20,80,18,46,16,91,14,245,12,247,11,85,11,26,11,73,11,223,11,215,12,240,13, +186,14,245,14,166,14,242,13,249,12,184,11,21,10,20,8,189,5,242,2,158,255,215,251,200,247,144,243,68,239,246,234, +192,230,187,226,228,222,22,219,48,215,51,211,42,207,50,203,150,199,133,196,199,193,18,191,103,188,206,185,76,183,3,181, +246,178,23,177,149,175,124,174,121,173,84,172,11,171,138,169,243,167,139,166,83,165,78,164,171,163,87,163,20,163,222,162, +170,162,97,162,50,162,72,162,137,162,230,162,102,163,0,164,187,164,156,165,127,166,102,167,120,168,188,169,27,171,117,172, +166,173,186,174,202,175,178,176,86,177,214,177,65,178,153,178,0,179,126,179,236,179,64,180,163,180,52,181,217,181,102,182, +249,182,220,183,24,185,132,186,24,188,231,189,246,191,73,194,223,196,186,199,225,202,80,206,251,209,229,213,13,218,120,222, +46,227,2,232,190,236,119,241,72,246,11,251,165,255,38,4,135,8,185,12,168,16,41,20,61,23,33,26,252,28,216,31, +193,34,180,37,173,40,174,43,173,46,169,49,191,52,253,55,93,59,212,62,68,66,174,69,69,73,10,77,190,80,65,84, +142,87,143,90,65,93,174,95,205,97,148,99,242,100,204,101,47,102,53,102,215,101,29,101,43,100,16,99,211,97,108,96, +173,94,167,92,167,90,179,88,170,86,189,84,29,83,176,81,121,80,148,79,228,78,75,78,239,77,241,77,67,78,192,78, +88,79,17,80,222,80,154,81,59,82,190,82,25,83,71,83,47,83,154,82,148,81,101,80,2,79,34,77,200,74,37,72, +53,69,247,65,153,62,39,59,119,55,146,51,200,47,43,44,133,40,205,36,32,33,130,29,15,26,251,22,69,20,214,17, +188,15,0,14,157,12,130,11,112,10,72,9,52,8,52,7,1,6,119,4,137,2,50,0,180,253,49,251,80,248,239,244, +110,241,243,237,93,234,187,230,57,227,238,223,232,220,254,217,240,214,195,211,157,208,145,205,171,202,219,199,255,196,54,194, +192,191,168,189,213,187,68,186,246,184,244,183,73,183,254,182,22,183,124,183,7,184,176,184,103,185,233,185,5,186,208,185, +97,185,183,184,207,183,168,182,85,181,6,180,204,178,147,177,66,176,216,174,123,173,88,172,109,171,153,170,235,169,123,169, +37,169,168,168,3,168,109,167,255,166,168,166,111,166,105,166,112,166,100,166,118,166,197,166,47,167,179,167,105,168,92,169, +152,170,16,172,134,173,237,174,107,176,253,177,165,179,148,181,198,183,7,186,73,188,138,190,188,192,240,194,71,197,208,199, +159,202,203,205,65,209,207,212,82,216,222,219,155,223,153,227,233,231,159,236,134,241,100,246,69,251,30,0,184,4,50,9, +189,13,46,18,100,22,120,26,84,30,203,33,204,36,66,39,62,41,15,43,215,44,129,46,36,48,186,49,7,51,244,51, +148,52,245,52,90,53,18,54,28,55,83,56,179,57,49,59,173,60,18,62,90,63,138,64,197,65,49,67,197,68,91,70, +225,71,66,73,71,74,192,74,202,74,176,74,176,74,234,74,73,75,163,75,250,75,84,76,167,76,21,77,217,77,245,78, +105,80,70,82,101,84,128,86,129,88,113,90,75,92,12,94,162,95,7,97,83,98,129,99,86,100,165,100,104,100,199,99, +0,99,33,98,24,97,245,95,164,94,223,92,147,90,209,87,148,84,12,81,139,77,246,73,33,70,55,66,86,62,115,58, +164,54,241,50,76,47,232,43,253,40,120,38,59,36,62,34,94,32,101,30,63,28,233,25,112,23,254,20,167,18,84,16, +5,14,205,11,157,9,82,7,242,4,178,2,159,0,133,254,91,252,66,250,31,248,176,245,206,242,110,239,165,235,139,231, +58,227,236,222,210,218,223,214,239,210,240,206,246,202,66,199,19,196,94,193,234,190,172,188,165,186,184,184,231,182,49,181, +103,179,140,177,217,175,90,174,249,172,192,171,198,170,2,170,66,169,116,168,176,167,228,166,248,165,11,165,45,164,56,163, +38,162,23,161,6,160,221,158,173,157,123,156,83,155,95,154,173,153,46,153,227,152,181,152,167,152,220,152,38,153,71,153, +119,153,240,153,141,154,52,155,252,155,234,156,1,158,77,159,184,160,45,162,209,163,198,165,23,168,203,170,205,173,3,177, +104,180,226,183,86,187,212,190,97,194,232,197,90,201,182,204,13,208,110,211,219,214,93,218,8,222,234,225,240,229,7,234, +76,238,208,242,111,247,243,251,55,0,59,4,17,8,197,11,87,15,187,18,235,21,9,25,19,28,216,30,68,33,110,35, +140,37,226,39,132,42,90,45,89,48,145,51,248,54,111,58,239,61,134,65,61,69,21,73,18,77,49,81,88,85,54,89, +161,92,185,95,105,98,154,100,155,102,133,104,11,106,50,107,27,108,127,108,67,108,189,107,17,107,31,106,251,104,182,103, +80,102,236,100,133,99,221,97,23,96,145,94,101,93,119,92,180,91,30,91,195,90,146,90,88,90,246,89,109,89,211,88, +62,88,173,87,253,86,26,86,0,85,172,83,34,82,81,80,26,78,165,75,32,73,94,70,59,67,188,63,212,59,141,55, +5,51,88,46,189,41,88,37,31,33,18,29,68,25,184,21,100,18,81,15,148,12,59,10,92,8,215,6,92,5,237,3, +197,2,221,1,18,1,47,0,18,255,222,253,133,252,203,250,177,248,74,246,170,243,238,240,253,237,194,234,90,231,218,227, +74,224,172,220,253,216,70,213,156,209,44,206,235,202,140,199,15,196,159,192,74,189,56,186,123,183,20,181,29,179,142,177, +97,176,169,175,62,175,31,175,129,175,85,176,115,177,192,178,32,180,133,181,190,182,160,183,69,184,208,184,60,185,99,185, +70,185,18,185,148,184,135,183,22,182,94,180,102,178,112,176,130,174,129,172,151,170,213,168,15,167,44,165,87,163,227,161, +253,160,181,160,23,161,16,162,155,163,179,165,47,168,18,171,128,174,100,178,158,182,59,187,43,192,49,197,36,202,29,207, +23,212,196,216,252,220,222,224,136,228,19,232,124,235,148,238,92,241,247,243,93,246,150,248,203,250,251,252,40,255,110,1, +196,3,43,6,197,8,145,11,133,14,165,17,238,20,96,24,242,27,142,31,45,35,203,38,83,42,155,45,150,48,92,51, +235,53,68,56,114,58,85,60,244,61,111,63,149,64,98,65,6,66,100,66,129,66,142,66,134,66,139,66,164,66,175,66, +193,66,226,66,230,66,190,66,118,66,72,66,76,66,77,66,62,66,18,66,166,65,18,65,107,64,180,63,249,62,46,62, +103,61,167,60,203,59,226,58,185,57,30,56,99,54,134,52,84,50,15,48,169,45,235,42,223,39,102,36,120,32,76,28, +254,23,175,19,108,15,61,11,65,7,96,3,128,255,192,251,46,248,226,244,234,241,70,239,52,237,184,235,171,234,28,234, +215,233,191,233,18,234,229,234,74,236,80,238,173,240,66,243,21,246,2,249,7,252,31,255,62,2,120,5,184,8,214,11, +207,14,131,17,174,19,8,21,143,21,135,21,238,20,170,19,249,17,251,15,162,13,254,10,31,8,53,5,121,2,218,255, +76,253,0,251,4,249,39,247,96,245,215,243,120,242,245,240,85,239,208,237,86,236,208,234,106,233,49,232,14,231,242,229, +225,228,244,227,62,227,179,226,101,226,99,226,136,226,204,226,63,227,237,227,251,228,99,230,0,232,209,233,201,235,208,237, +229,239,245,241,16,244,71,246,110,248,128,250,143,252,107,254,1,0,99,1,170,2,217,3,193,4,95,5,208,5,16,6, +33,6,234,5,85,5,148,4,165,3,145,2,170,1,210,0,220,255,249,254,33,254,71,253,118,252,136,251,144,250,167,249, +191,248,223,247,240,246,233,245,239,244,225,243,160,242,76,241,24,240,72,239,208,238,144,238,175,238,15,239,166,239,183,240, +27,242,175,243,175,245,16,248,167,250,92,253,19,0,166,2,213,4,158,6,55,8,139,9,164,10,153,11,61,12,151,12, +182,12,111,12,232,11,67,11,103,10,123,9,136,8,112,7,54,6,238,4,164,3,77,2,218,0,121,255,81,254,103,253, +159,252,205,251,250,250,48,250,67,249,50,248,6,247,183,245,101,244,14,243,140,241,216,239,245,237,242,235,241,233,3,232, +70,230,217,228,181,227,212,226,50,226,209,225,191,225,1,226,138,226,80,227,83,228,131,229,196,230,21,232,86,233,98,234, +90,235,68,236,13,237,232,237,229,238,222,239,214,240,205,241,162,242,94,243,9,244,143,244,231,244,58,245,161,245,8,246, +98,246,159,246,189,246,231,246,33,247,97,247,209,247,113,248,63,249,85,250,130,251,162,252,219,253,46,255,138,0,236,1, +72,3,166,4,248,5,45,7,71,8,59,9,8,10,163,10,253,10,72,11,159,11,238,11,65,12,139,12,160,12,130,12, +82,12,28,12,192,11,74,11,253,10,182,10,73,10,229,9,128,9,21,9,236,8,6,9,74,9,206,9,151,10,160,11, +228,12,68,14,160,15,239,16,75,18,180,19,7,21,48,22,16,23,134,23,164,23,121,23,33,23,199,22,106,22,21,22, +210,21,130,21,42,21,195,20,70,20,217,19,120,19,14,19,189,18,149,18,143,18,151,18,164,18,212,18,50,19,191,19, +142,20,149,21,209,22,68,24,201,25,88,27,229,28,81,30,173,31,220,32,204,33,149,34,15,35,43,35,27,35,223,34, +118,34,227,33,24,33,56,32,82,31,87,30,65,29,253,27,192,26,181,25,157,24,98,23,17,22,184,20,148,19,144,18, +109,17,65,16,25,15,12,14,61,13,145,12,245,11,101,11,219,10,107,10,254,9,107,9,191,8,250,7,52,7,109,6, +107,5,73,4,62,3,72,2,104,1,129,0,130,255,137,254,117,253,45,252,203,250,53,249,114,247,192,245,27,244,133,242, +13,241,140,239,248,237,135,236,96,235,111,234,149,233,222,232,96,232,27,232,240,231,151,231,4,231,93,230,146,229,154,228, +138,227,82,226,1,225,204,223,173,222,154,221,166,220,210,219,54,219,0,219,25,219,91,219,218,219,129,220,54,221,26,222, +34,223,38,224,58,225,115,226,206,227,55,229,151,230,232,231,30,233,41,234,27,235,230,235,102,236,164,236,160,236,79,236, +159,235,122,234,14,233,133,231,234,229,90,228,215,226,117,225,75,224,46,223,19,222,252,220,206,219,203,218,22,218,130,217, +46,217,19,217,29,217,127,217,22,218,209,218,247,219,122,221,73,223,102,225,153,227,185,229,167,231,90,233,254,234,118,236, +196,237,27,239,100,240,164,241,212,242,186,243,139,244,127,245,134,246,177,247,242,248,101,250,38,252,207,253,72,255,192,0, +27,2,126,3,253,4,111,6,10,8,203,9,120,11,46,13,234,14,194,16,247,18,113,21,47,24,50,27,34,30,207,32, +56,35,97,37,74,39,204,40,236,41,165,42,191,42,90,42,133,41,255,39,251,37,172,35,15,33,118,30,3,28,149,25, +60,23,245,20,194,18,174,16,167,14,215,12,120,11,127,10,217,9,109,9,32,9,4,9,50,9,181,9,123,10,100,11, +135,12,244,13,118,15,225,16,39,18,53,19,14,20,173,20,12,21,86,21,136,21,106,21,13,21,157,20,31,20,160,19, +56,19,228,18,173,18,171,18,235,18,98,19,246,19,158,20,61,21,198,21,93,22,226,22,33,23,63,23,28,23,117,22, +130,21,133,20,148,19,169,18,179,17,223,16,41,16,97,15,191,14,77,14,222,13,158,13,121,13,46,13,203,12,64,12, +125,11,150,10,132,9,96,8,55,7,26,6,71,5,183,4,101,4,123,4,217,4,126,5,123,6,159,7,9,9,180,10, +81,12,244,13,136,15,243,16,131,18,58,20,22,22,57,24,93,26,118,28,158,30,139,32,55,34,166,35,154,36,13,37, +20,37,186,36,238,35,113,34,77,32,132,29,0,26,15,22,206,17,57,13,182,8,65,4,159,255,251,250,89,246,166,241, +226,236,15,232,104,227,247,222,149,218,122,214,185,210,63,207,34,204,63,201,137,198,60,196,96,194,2,193,34,192,102,191, +173,190,25,190,173,189,97,189,56,189,48,189,63,189,109,189,213,189,70,190,159,190,34,191,233,191,216,192,240,193,34,195, +118,196,30,198,10,200,7,202,254,203,222,205,176,207,152,209,168,211,241,213,116,216,26,219,220,221,171,224,79,227,201,229, +78,232,192,234,8,237,81,239,124,241,80,243,225,244,64,246,73,247,217,247,10,248,53,248,134,248,226,248,51,249,106,249, +127,249,99,249,19,249,181,248,102,248,53,248,36,248,8,248,8,248,92,248,185,248,251,248,94,249,5,250,20,251,125,252, +2,254,165,255,78,1,215,2,92,4,214,5,65,7,199,8,107,10,17,12,169,13,74,15,25,17,249,18,233,20,26,23, +110,25,234,27,187,30,171,33,139,36,80,39,230,41,92,44,170,46,200,48,209,50,181,52,105,54,252,55,92,57,158,58, +193,59,162,60,99,61,33,62,222,62,163,63,85,64,240,64,115,65,172,65,149,65,27,65,32,64,242,62,197,61,126,60, +25,59,154,57,249,55,70,54,156,52,17,51,151,49,38,48,222,46,195,45,199,44,192,43,142,42,108,41,99,40,72,39, +74,38,103,37,89,36,53,35,7,34,174,32,68,31,227,29,116,28,237,26,124,25,58,24,233,22,95,21,188,19,6,18, +65,16,101,14,91,12,43,10,206,7,58,5,125,2,134,255,108,252,110,249,114,246,102,243,100,240,80,237,252,233,79,230, +111,226,171,222,239,218,38,215,135,211,14,208,155,204,36,201,167,197,102,194,166,191,95,189,132,187,34,186,66,185,184,184, +80,184,23,184,234,183,145,183,77,183,81,183,103,183,126,183,164,183,213,183,10,184,82,184,228,184,185,185,162,186,218,187, +156,189,199,191,79,194,47,197,70,200,156,203,65,207,47,211,80,215,136,219,193,223,233,227,232,231,167,235,22,239,42,242, +241,244,134,247,209,249,134,251,183,252,180,253,111,254,185,254,137,254,227,253,254,252,39,252,75,251,68,250,58,249,60,248, +30,247,7,246,39,245,93,244,212,243,211,243,39,244,174,244,96,245,8,246,189,246,173,247,181,248,201,249,230,250,3,252, +30,253,12,254,155,254,222,254,18,255,100,255,186,255,26,0,169,0,51,1,197,1,164,2,137,3,87,4,102,5,199,6, +107,8,52,10,240,11,142,13,236,14,37,16,136,17,243,18,95,20,255,21,182,23,136,25,120,27,78,29,31,31,245,32, +184,34,140,36,141,38,211,40,72,43,152,45,228,47,67,50,117,52,178,54,56,57,244,59,221,62,172,65,34,68,54,70, +160,71,72,72,47,72,26,71,39,69,119,66,224,62,122,58,112,53,227,47,18,42,19,36,27,30,128,24,111,19,47,15, +215,11,80,9,204,7,58,7,97,7,89,8,9,10,66,12,15,15,66,18,147,21,226,24,31,28,73,31,71,34,249,36, +100,39,96,41,183,42,93,43,72,43,150,42,97,41,131,39,27,37,123,34,150,31,87,28,223,24,73,21,185,17,95,14, +73,11,138,8,62,6,88,4,164,2,242,0,64,255,154,253,240,251,91,250,0,249,190,247,117,246,26,245,144,243,233,241, +69,240,165,238,19,237,133,235,246,233,117,232,192,230,167,228,85,226,228,223,99,221,222,218,71,216,195,213,92,211,218,208, +57,206,131,203,218,200,124,198,104,196,184,194,145,193,201,192,108,192,131,192,206,192,90,193,46,194,65,195,208,196,214,198, +43,201,206,203,137,206,63,209,240,211,79,214,94,216,98,218,93,220,47,222,158,223,135,224,230,224,145,224,154,223,23,222, +243,219,113,217,174,214,125,211,15,208,110,204,137,200,179,196,248,192,67,189,207,185,170,182,239,179,204,177,41,176,36,175, +231,174,92,175,152,176,173,178,134,181,23,185,40,189,131,193,26,198,228,202,231,207,6,213,19,218,8,223,206,227,108,232, +242,236,33,241,238,244,152,248,19,252,66,255,45,2,228,4,175,7,179,10,235,13,121,17,98,21,158,25,86,30,101,35, +102,40,80,45,66,50,36,55,209,59,44,64,254,67,23,71,110,73,6,75,207,75,210,75,82,75,154,74,216,73,59,73, +201,72,98,72,15,72,231,71,217,71,207,71,192,71,163,71,130,71,124,71,177,71,24,72,134,72,220,72,10,73,36,73, +56,73,46,73,49,73,136,73,7,74,117,74,165,74,63,74,88,73,69,72,12,71,187,69,100,68,11,67,223,65,244,64, +24,64,42,63,49,62,105,61,240,60,114,60,193,59,231,58,187,57,15,56,194,53,215,50,102,47,124,43,83,39,48,35, +33,31,70,27,191,23,187,20,125,18,235,16,189,15,243,14,157,14,219,14,172,15,165,16,95,17,165,17,70,17,86,16, +221,14,186,12,28,10,67,7,50,4,236,0,86,253,65,249,191,244,19,240,123,235,13,231,191,226,159,222,218,218,147,215, +193,212,66,210,49,208,213,206,68,206,91,206,3,207,41,208,148,209,17,211,163,212,49,214,95,215,30,216,163,216,224,216, +164,216,215,215,99,214,113,212,120,210,157,208,183,206,225,204,76,203,6,202,4,201,18,200,36,199,131,198,78,198,85,198, +114,198,158,198,217,198,13,199,31,199,29,199,2,199,220,198,214,198,198,198,134,198,77,198,255,197,52,197,231,195,79,194, +142,192,185,190,232,188,44,187,134,185,4,184,182,182,120,181,60,180,33,179,46,178,104,177,213,176,134,176,143,176,217,176, +109,177,93,178,103,179,149,180,80,182,137,184,32,187,25,190,62,193,151,196,72,200,15,204,235,207,31,212,164,216,98,221, +95,226,139,231,210,236,59,242,227,247,219,253,18,4,98,10,165,16,206,22,187,28,35,34,255,38,105,43,68,47,135,50, +19,53,146,54,34,55,17,55,74,54,216,52,255,50,234,48,213,46,211,44,189,42,172,40,216,38,70,37,230,35,192,34, +248,33,177,33,224,33,101,34,21,35,229,35,232,36,247,37,234,38,235,39,13,41,63,42,138,43,211,44,238,45,209,46, +97,47,151,47,158,47,170,47,250,47,174,48,164,49,217,50,120,52,143,54,17,57,221,59,236,62,81,66,7,70,225,73, +138,77,200,80,153,83,216,85,113,87,116,88,214,88,197,88,123,88,167,87,79,86,234,84,94,83,155,81,238,79,45,78, +33,76,233,73,124,71,206,68,2,66,18,63,217,59,94,56,214,52,71,49,147,45,197,41,243,37,49,34,134,30,161,26, +104,22,67,18,90,14,160,10,58,7,22,4,28,1,83,254,166,251,30,249,227,246,29,245,239,243,52,243,186,242,127,242, +95,242,87,242,166,242,64,243,252,243,238,244,23,246,106,247,195,248,225,249,166,250,6,251,5,251,198,250,45,250,22,249, +151,247,186,245,105,243,132,240,2,237,43,233,56,229,27,225,213,220,111,216,9,212,2,208,121,204,54,201,33,198,88,195, +1,193,23,191,94,189,171,187,247,185,112,184,39,183,193,181,53,180,223,178,167,177,125,176,182,175,65,175,253,174,15,175, +88,175,177,175,68,176,44,177,111,178,37,180,75,182,212,184,154,187,116,190,96,193,102,196,132,199,164,202,186,205,240,208, +85,212,186,215,255,218,15,222,227,224,135,227,243,229,49,232,95,234,120,236,137,238,151,240,137,242,129,244,135,246,97,248, +37,250,232,251,129,253,242,254,58,0,78,1,62,2,221,2,5,3,226,2,103,2,98,1,225,255,29,254,65,252,74,250, +59,248,53,246,66,244,107,242,170,240,211,238,10,237,174,235,198,234,61,234,9,234,41,234,176,234,126,235,93,236,107,237, +203,238,117,240,106,242,180,244,72,247,244,249,120,252,219,254,62,1,183,3,88,6,12,9,227,11,9,15,84,18,174,21, +52,25,158,28,175,31,131,34,253,36,255,38,134,40,92,41,119,41,252,40,213,39,215,37,34,35,18,32,6,29,19,26, +41,23,82,20,170,17,97,15,139,13,40,12,76,11,6,11,129,11,203,12,142,14,143,16,196,18,13,21,128,23,69,26, +52,29,84,32,198,35,91,39,226,42,31,46,186,48,159,50,227,51,180,52,40,53,219,52,119,51,66,49,151,46,155,43, +87,40,223,36,138,33,179,30,120,28,182,26,41,25,216,23,34,23,44,23,197,23,149,24,74,25,231,25,113,26,172,26, +119,26,230,25,73,25,4,25,48,25,196,25,176,26,195,27,243,28,78,30,179,31,35,33,165,34,51,36,215,37,79,39, +46,40,84,40,197,39,183,38,141,37,66,36,173,34,252,32,93,31,203,29,23,28,254,25,117,23,171,20,224,17,66,15, +178,12,244,9,235,6,142,3,7,0,136,252,3,249,153,245,163,242,85,240,182,238,156,237,196,236,5,236,110,235,72,235, +163,235,62,236,51,237,187,238,152,240,107,242,233,243,246,244,234,245,18,247,137,248,83,250,250,251,27,253,239,253,109,254, +28,254,250,252,110,251,190,249,216,247,140,245,207,242,153,239,245,235,36,232,85,228,168,224,87,221,137,218,76,216,154,214, +80,213,60,212,55,211,102,210,21,210,36,210,79,210,144,210,212,210,40,211,159,211,226,211,2,212,133,212,108,213,106,214, +104,215,76,216,21,217,212,217,117,218,225,218,29,219,90,219,183,219,16,220,83,220,156,220,250,220,130,221,67,222,75,223, +224,224,33,227,250,229,77,233,176,236,202,239,202,242,201,245,158,248,62,251,167,253,186,255,101,1,169,2,105,3,159,3, +150,3,123,3,42,3,190,2,56,2,68,1,246,255,109,254,77,252,165,249,188,246,139,243,87,240,109,237,124,234,69,231, +244,227,196,224,228,221,104,219,98,217,239,215,22,215,203,214,211,214,227,214,2,215,88,215,239,215,192,216,170,217,158,218, +168,219,212,220,56,222,201,223,95,225,6,227,232,228,43,231,232,233,197,236,106,239,254,241,123,244,147,246,74,248,198,249, +52,251,189,252,76,254,177,255,211,0,221,1,47,3,222,4,193,6,248,8,188,11,22,15,222,18,206,22,216,26,228,30, +150,34,239,37,45,41,66,44,5,47,68,49,205,50,192,51,76,52,83,52,178,51,143,50,63,49,237,47,145,46,8,45, +44,43,62,41,154,39,23,38,155,36,111,35,144,34,0,34,233,33,242,33,232,33,27,34,145,34,46,35,237,35,156,36, +59,37,12,38,252,38,196,39,69,40,146,40,210,40,45,41,193,41,110,42,11,43,217,43,12,45,119,46,5,48,188,49, +163,51,231,53,115,56,234,58,20,61,223,62,68,64,31,65,29,65,10,64,246,61,246,58,22,55,106,50,35,45,77,39, +239,32,132,26,122,20,191,14,102,9,167,4,144,0,84,253,12,251,172,249,149,249,251,250,128,253,207,0,140,4,91,8, +47,12,244,15,100,19,114,22,57,25,168,27,109,29,66,30,26,30,8,29,78,27,71,25,18,23,178,20,31,18,86,15, +150,12,243,9,79,7,194,4,53,2,106,255,155,252,225,249,5,247,41,244,98,241,155,238,249,235,130,233,60,231,110,229, +16,228,218,226,188,225,179,224,179,223,223,222,86,222,231,221,84,221,178,220,10,220,48,219,36,218,230,216,103,215,232,213, +160,212,105,211,55,210,5,209,181,207,95,206,6,205,104,203,136,201,184,199,35,198,175,196,97,195,97,194,169,193,68,193, +63,193,106,193,213,193,204,194,65,196,23,198,58,200,101,202,154,204,207,206,176,208,108,210,81,212,12,214,122,215,214,216, +8,218,201,218,11,219,243,218,170,218,59,218,187,217,29,217,17,216,148,214,224,212,232,210,155,208,38,206,185,203,114,201, +87,199,116,197,216,195,160,194,255,193,228,193,23,194,192,194,2,196,189,197,3,200,219,202,11,206,124,209,26,213,188,216, +103,220,49,224,23,228,244,231,174,235,103,239,26,243,115,246,107,249,77,252,30,255,137,1,96,3,229,4,89,6,170,7, +211,8,209,9,122,10,217,10,27,11,78,11,108,11,128,11,167,11,219,11,250,11,32,12,84,12,132,12,10,13,51,14, +211,15,230,17,107,20,55,23,135,26,116,30,147,34,180,38,236,42,52,47,85,51,241,54,232,57,83,60,21,62,14,63, +40,63,48,62,74,60,229,57,49,55,26,52,117,48,114,44,182,40,154,37,0,35,214,32,33,31,245,29,126,29,184,29, +102,30,142,31,129,33,76,36,164,39,79,43,39,47,43,51,175,55,217,60,91,66,15,72,21,78,115,84,254,90,95,97, +72,103,142,108,14,113,177,116,68,119,128,120,128,120,132,119,139,117,141,114,147,110,206,105,156,100,31,95,73,89,52,83, +245,76,178,70,179,64,25,59,208,53,164,48,128,43,140,38,212,33,98,29,105,25,215,21,146,18,208,15,144,13,190,11, +151,10,1,10,156,9,81,9,22,9,210,8,116,8,201,7,169,6,35,5,61,3,236,0,61,254,111,251,155,248,169,245, +203,242,78,240,34,238,53,236,140,234,7,233,178,231,166,230,163,229,140,228,128,227,80,226,180,224,187,222,143,220,79,218, +39,216,14,214,219,211,180,209,214,207,57,206,196,204,89,203,240,201,187,200,163,199,85,198,219,196,57,195,84,193,104,191, +117,189,46,187,182,184,86,182,29,180,17,178,49,176,154,174,99,173,89,172,109,171,182,170,251,169,67,169,212,168,144,168, +84,168,97,168,238,168,252,169,146,171,194,173,102,176,81,179,164,182,104,186,95,190,139,194,11,199,179,203,73,208,132,212, +27,216,46,219,235,221,36,224,191,225,224,226,191,227,143,228,67,229,158,229,141,229,42,229,132,228,159,227,122,226,32,225, +169,223,33,222,125,220,183,218,217,216,252,214,106,213,87,212,177,211,120,211,202,211,179,212,51,214,43,216,88,218,193,220, +132,223,132,226,146,229,111,232,239,234,62,237,114,239,102,241,29,243,175,244,43,246,163,247,8,249,79,250,129,251,175,252, +250,253,98,255,192,0,30,2,143,3,25,5,222,6,207,8,216,10,35,13,175,15,100,18,104,21,164,24,249,27,147,31, +109,35,81,39,38,43,204,46,64,50,128,53,68,56,115,58,81,60,231,61,18,63,206,63,28,64,10,64,180,63,250,62, +197,61,57,60,106,58,87,56,22,54,141,51,151,48,86,45,255,41,186,38,182,35,1,33,196,30,73,29,132,28,71,28, +178,28,211,29,147,31,27,34,170,37,32,42,20,47,49,52,76,57,57,62,217,66,8,71,132,74,89,77,201,79,156,81, +115,82,78,82,83,81,178,79,142,77,220,74,215,71,238,68,63,66,185,63,56,61,154,58,10,56,200,53,242,51,163,50, +188,49,19,49,206,48,234,48,5,49,203,48,55,48,158,47,81,47,40,47,216,46,79,46,115,45,57,44,181,42,207,40, +138,38,74,36,95,34,189,32,53,31,135,29,145,27,100,25,23,23,207,20,184,18,192,16,201,14,215,12,203,10,103,8, +156,5,156,2,192,255,66,253,32,251,100,249,10,248,219,246,188,245,168,244,121,243,52,242,39,241,153,240,121,240,85,240, +222,239,58,239,106,238,38,237,86,235,32,233,211,230,180,228,174,226,144,224,39,222,74,219,50,216,28,213,255,209,1,207, +68,204,131,201,188,198,29,196,111,193,154,190,225,187,109,185,79,183,135,181,255,179,191,178,199,177,0,177,112,176,4,176, +145,175,67,175,92,175,187,175,41,176,163,176,44,177,169,177,5,178,73,178,149,178,21,179,253,179,87,181,231,182,113,184, +255,185,185,187,183,189,230,191,21,194,30,196,242,197,149,199,25,201,99,202,82,203,10,204,168,204,27,205,107,205,151,205, +173,205,230,205,51,206,107,206,186,206,49,207,173,207,71,208,247,208,135,209,10,210,170,210,121,211,141,212,217,213,79,215, +2,217,226,218,225,220,255,222,0,225,191,226,91,228,220,229,82,231,198,232,13,234,50,235,125,236,239,237,84,239,157,240, +217,241,60,243,242,244,235,246,8,249,73,251,205,253,161,0,147,3,97,6,5,9,137,11,226,13,240,15,135,17,178,18, +182,19,187,20,166,21,67,22,142,22,218,22,93,23,225,23,83,24,248,24,254,25,124,27,111,29,196,31,170,34,57,38, +36,42,65,46,171,50,106,55,137,60,245,65,90,71,144,76,140,81,25,86,7,90,61,93,211,95,254,97,153,99,98,100, +135,100,39,100,37,99,131,97,55,95,65,92,5,89,219,85,209,82,252,79,89,77,187,74,25,72,152,69,93,67,129,65, +21,64,34,63,149,62,77,62,49,62,30,62,31,62,128,62,79,63,95,64,186,65,108,67,81,69,74,71,30,73,131,74, +97,75,208,75,250,75,246,75,155,75,189,74,85,73,81,71,192,68,233,65,237,62,243,59,38,57,105,54,161,51,205,48, +171,45,47,42,157,38,242,34,27,31,63,27,127,23,246,19,171,16,104,13,39,10,40,7,126,4,45,2,68,0,179,254, +121,253,163,252,12,252,132,251,233,250,66,250,188,249,97,249,17,249,206,248,123,248,183,247,70,246,92,244,63,242,241,239, +97,237,182,234,232,231,149,228,171,224,118,220,11,216,128,211,27,207,250,202,13,199,79,195,200,191,135,188,161,185,61,183, +109,181,226,179,108,178,82,177,154,176,241,175,55,175,78,174,38,173,13,172,17,171,242,169,210,168,214,167,196,166,136,165, +62,164,248,162,220,161,9,161,145,160,123,160,159,160,221,160,60,161,178,161,73,162,33,163,25,164,25,165,83,166,216,167, +122,169,17,171,150,172,41,174,239,175,229,177,4,180,79,182,188,184,69,187,211,189,73,192,180,194,46,197,215,199,221,202, +52,206,152,209,219,212,5,216,53,219,70,222,225,224,11,227,0,229,203,230,118,232,238,233,227,234,119,235,29,236,215,236, +140,237,103,238,123,239,215,240,151,242,146,244,161,246,210,248,60,251,240,253,212,0,179,3,145,6,108,9,30,12,169,14, +5,17,12,19,205,20,72,22,105,23,90,24,56,25,205,25,11,26,9,26,190,25,36,25,79,24,106,23,166,22,7,22, +108,21,203,20,44,20,158,19,22,19,146,18,81,18,152,18,102,19,138,20,204,21,45,23,226,24,231,26,24,29,146,31, +101,34,121,37,200,40,43,44,111,47,172,50,240,53,27,57,32,60,240,62,127,65,217,67,230,69,141,71,215,72,188,73, +103,74,67,75,77,76,50,77,226,77,119,78,7,79,125,79,140,79,68,79,253,78,178,78,67,78,182,77,228,76,164,75, +17,74,77,72,116,70,138,68,115,66,62,64,48,62,90,60,141,58,157,56,139,54,132,52,181,50,23,49,131,47,231,45, +120,44,88,43,68,42,6,41,187,39,132,38,157,37,46,37,209,36,43,36,78,35,81,34,47,33,237,31,166,30,138,29, +179,28,30,28,179,27,17,27,245,25,158,24,72,23,254,21,232,20,243,19,253,18,64,18,184,17,217,16,112,15,202,13, +30,12,134,10,244,8,38,7,20,5,246,2,232,0,230,254,185,252,78,250,237,247,207,245,224,243,7,242,51,240,123,238, +18,237,224,235,142,234,235,232,10,231,40,229,62,227,11,225,151,222,43,220,248,217,3,216,36,214,47,212,68,210,184,208, +185,207,27,207,167,206,125,206,220,206,174,207,169,208,143,209,55,210,193,210,86,211,176,211,193,211,242,211,79,212,153,212, +172,212,99,212,197,211,223,210,172,209,101,208,33,207,135,205,145,203,131,201,93,199,39,197,255,194,206,192,138,190,122,188, +201,186,93,185,54,184,124,183,25,183,205,182,140,182,136,182,213,182,106,183,111,184,200,185,241,186,205,187,189,188,252,189, +153,191,139,193,168,195,222,197,47,200,163,202,35,205,103,207,96,209,59,211,31,213,19,215,202,216,13,218,57,219,151,220, +21,222,158,223,16,225,121,226,54,228,78,230,133,232,229,234,131,237,60,240,240,242,123,245,204,247,8,250,39,252,6,254, +190,255,80,1,170,2,250,3,94,5,198,6,11,8,229,8,105,9,228,9,55,10,43,10,183,9,216,8,209,7,237,6, +35,6,92,5,162,4,251,3,118,3,32,3,239,2,210,2,240,2,143,3,175,4,19,6,141,7,34,9,233,10,171,12, +38,14,117,15,214,16,105,18,35,20,238,21,217,23,204,25,149,27,47,29,143,30,193,31,238,32,241,33,213,34,193,35, +112,36,211,36,29,37,87,37,186,37,123,38,142,39,16,41,23,43,157,45,145,48,138,51,74,54,21,57,12,60,245,62, +162,65,243,67,228,69,158,71,230,72,51,73,148,72,131,71,38,70,121,68,107,66,222,63,248,60,4,58,36,55,60,52, +16,49,211,45,234,42,84,40,6,38,11,36,88,34,27,33,146,32,160,32,234,32,73,33,248,33,30,35,146,36,54,38, +9,40,8,42,76,44,231,46,154,49,245,51,241,53,226,55,208,57,152,59,23,61,45,62,2,63,156,63,182,63,74,63, +56,62,126,60,149,58,146,56,76,54,218,51,25,49,10,46,221,42,70,39,42,35,213,30,147,26,187,22,80,19,233,15, +70,12,114,8,175,4,29,1,136,253,10,250,6,247,158,244,190,242,55,241,177,239,225,237,222,235,251,233,105,232,64,231, +73,230,24,229,197,227,139,226,49,225,155,223,239,221,86,220,4,219,0,218,55,217,172,216,104,216,111,216,124,216,78,216, +29,216,30,216,71,216,152,216,242,216,21,217,245,216,166,216,15,216,39,215,25,214,233,212,144,211,52,210,176,208,212,206, +173,204,59,202,180,199,71,197,198,194,89,192,29,190,208,187,152,185,155,183,194,181,39,180,202,178,185,177,30,177,199,176, +164,176,182,176,206,176,37,177,231,177,214,178,216,179,254,180,131,182,133,184,193,186,14,189,95,191,164,193,235,195,56,198, +164,200,64,203,222,205,119,208,14,211,119,213,193,215,20,218,87,220,89,222,32,224,242,225,193,227,94,229,2,231,134,232, +146,233,99,234,18,235,125,235,217,235,67,236,175,236,41,237,159,237,244,237,66,238,188,238,96,239,11,240,179,240,104,241, +52,242,0,243,192,243,169,244,189,245,226,246,44,248,100,249,105,250,120,251,126,252,79,253,243,253,107,254,232,254,124,255, +21,0,232,0,233,1,244,2,37,4,106,5,190,6,35,8,113,9,192,10,21,12,102,13,214,14,53,16,125,17,242,18, +124,20,27,22,254,23,13,26,62,28,140,30,15,33,217,35,149,38,41,41,192,43,73,46,195,48,32,51,83,53,138,55, +186,57,217,59,242,61,202,63,135,65,99,67,26,69,135,70,162,71,107,72,34,73,192,73,244,73,147,73,140,72,8,71, +28,69,143,66,83,63,184,59,0,56,75,52,192,48,118,45,75,42,89,39,224,36,219,34,74,33,58,32,169,31,183,31, +73,32,17,33,241,33,236,34,63,36,29,38,92,40,202,42,84,45,245,47,161,50,48,53,183,55,63,58,187,60,138,63, +145,66,37,69,18,71,56,72,168,72,203,72,141,72,186,71,109,70,182,68,207,66,183,64,10,62,139,58,83,54,20,50, +69,46,117,42,118,38,117,34,133,30,201,26,203,22,38,18,115,13,47,9,89,5,204,1,69,254,217,250,194,247,8,245, +173,242,98,240,8,238,2,236,125,234,118,233,192,232,246,231,44,231,178,230,109,230,247,229,19,229,10,228,67,227,212,226, +135,226,216,225,150,224,55,223,233,221,149,220,76,219,249,217,135,216,44,215,23,214,33,213,56,212,148,211,68,211,49,211, +86,211,109,211,64,211,234,210,120,210,243,209,56,209,36,208,8,207,247,205,183,204,45,203,9,201,85,198,129,195,148,192, +162,189,205,186,28,184,215,181,222,179,204,177,172,175,153,173,219,171,187,170,45,170,49,170,161,170,101,171,188,172,123,174, +120,176,213,178,99,181,67,184,173,187,94,191,67,195,54,199,233,202,120,206,9,210,143,213,207,216,165,219,91,222,221,224, +228,226,169,228,41,230,82,231,106,232,79,233,248,233,183,234,142,235,90,236,245,236,68,237,129,237,209,237,57,238,191,238, +78,239,237,239,179,240,133,241,68,242,243,242,157,243,69,244,39,245,114,246,211,247,28,249,106,250,173,251,228,252,238,253, +145,254,5,255,105,255,165,255,184,255,129,255,9,255,110,254,154,253,159,252,150,251,185,250,113,250,143,250,205,250,95,251, +85,252,186,253,149,255,205,1,91,4,26,7,24,10,104,13,187,16,30,20,156,23,233,26,86,30,17,34,172,37,14,41, +46,44,28,47,249,49,129,52,164,54,116,56,227,57,49,59,71,60,231,60,82,61,116,61,49,61,206,60,74,60,192,59, +94,59,24,59,12,59,25,59,244,58,188,58,124,58,26,58,170,57,17,57,30,56,232,54,174,53,89,52,148,50,91,48, +193,45,228,42,20,40,94,37,202,34,157,32,231,30,169,29,205,28,28,28,166,27,152,27,21,28,31,29,99,30,200,31, +126,33,136,35,213,37,69,40,201,42,98,45,236,47,97,50,177,52,179,54,117,56,220,57,214,58,141,59,192,59,99,59, +180,58,156,57,19,56,234,53,254,50,203,47,144,44,99,41,150,38,244,35,126,33,105,31,56,29,166,26,209,23,195,20, +209,17,52,15,253,12,37,11,62,9,68,7,84,5,40,3,241,0,4,255,94,253,46,252,123,251,28,251,249,250,201,250, +92,250,190,249,33,249,198,248,174,248,211,248,34,249,68,249,30,249,160,248,170,247,133,246,107,245,70,244,251,242,111,241, +203,239,50,238,103,236,79,234,7,232,173,229,138,227,189,225,19,224,112,222,243,220,140,219,254,217,83,216,142,214,155,212, +224,210,114,209,204,207,184,205,68,203,175,200,38,198,116,195,195,192,86,190,3,188,215,185,171,183,59,181,218,178,186,176, +230,174,135,173,121,172,218,171,208,171,15,172,116,172,221,172,100,173,131,174,56,176,97,178,245,180,152,183,84,186,89,189, +127,192,199,195,33,199,136,202,31,206,177,209,255,212,212,215,22,218,33,220,5,222,178,223,108,225,26,227,174,228,101,230, +0,232,87,233,142,234,176,235,207,236,209,237,162,238,108,239,33,240,196,240,102,241,195,241,201,241,172,241,154,241,193,241, +38,242,150,242,249,242,121,243,41,244,236,244,190,245,124,246,19,247,213,247,176,248,91,249,248,249,139,250,20,251,184,251, +35,252,49,252,40,252,24,252,13,252,6,252,231,251,188,251,170,251,234,251,96,252,212,252,144,253,126,254,94,255,160,0, +105,2,130,4,12,7,6,10,81,13,178,16,237,19,54,23,159,26,25,30,161,33,222,36,206,39,125,42,140,44,41,46, +115,47,12,48,49,48,47,48,27,48,39,48,42,48,3,48,194,47,74,47,193,46,44,46,114,45,251,44,0,45,98,45, +3,46,163,46,77,47,38,48,226,48,98,49,223,49,101,50,225,50,81,51,154,51,115,51,238,50,75,50,59,49,133,47, +124,45,122,43,194,41,85,40,1,39,235,37,69,37,15,37,57,37,166,37,126,38,254,39,3,42,48,44,58,46,68,48, +133,50,201,52,244,54,6,57,238,58,190,60,84,62,132,63,53,64,53,64,196,63,42,63,78,62,57,61,150,59,31,57, +76,54,3,51,223,46,52,42,104,37,249,32,55,29,213,25,161,22,146,19,183,16,66,14,247,11,222,9,56,8,215,6, +241,5,161,5,70,5,163,4,206,3,217,2,12,2,92,1,163,0,26,0,7,0,115,0,236,0,240,0,131,0,249,255, +177,255,143,255,8,255,54,254,110,253,147,252,136,251,18,250,16,248,206,245,136,243,64,241,186,238,178,235,104,232,86,229, +169,226,66,224,240,221,191,219,218,217,48,216,131,214,148,212,108,210,82,208,157,206,92,205,22,204,163,202,113,201,139,200, +179,199,183,198,85,197,207,195,106,194,12,193,181,191,28,190,24,188,25,186,41,184,48,182,102,180,230,178,10,178,24,178, +214,178,246,179,42,181,150,182,138,184,204,186,55,189,183,191,28,194,170,196,67,199,110,201,67,203,228,204,113,206,33,208, +219,209,154,211,101,213,34,215,196,216,248,217,153,218,233,218,8,219,79,219,222,219,65,220,116,220,162,220,190,220,254,220, +94,221,194,221,94,222,61,223,94,224,210,225,104,227,3,229,193,230,178,232,183,234,181,236,191,238,226,240,253,242,239,244, +159,246,40,248,181,249,101,251,85,253,81,255,72,1,113,3,147,5,124,7,68,9,208,10,51,12,128,13,125,14,38,15, +138,15,190,15,223,15,223,15,206,15,176,15,105,15,47,15,23,15,13,15,26,15,17,15,19,15,88,15,178,15,58,16, +255,16,240,17,67,19,185,20,33,22,183,23,75,25,192,26,34,28,72,29,116,30,178,31,172,32,113,33,219,33,221,33, +202,33,135,33,24,33,196,32,142,32,149,32,200,32,248,32,60,33,84,33,42,33,53,33,146,33,53,34,34,35,52,36, +108,37,190,38,236,39,213,40,125,41,6,42,125,42,210,42,21,43,102,43,199,43,243,43,163,43,252,42,47,42,76,41, +140,40,231,39,54,39,181,38,145,38,153,38,185,38,17,39,179,39,152,40,206,41,64,43,205,44,132,46,62,48,217,49, +100,51,163,52,115,53,228,53,224,53,121,53,150,52,1,51,0,49,198,46,111,44,15,42,105,39,162,36,239,33,13,31, +64,28,200,25,112,23,117,21,238,19,174,18,204,17,20,17,88,16,182,15,49,15,205,14,94,14,218,13,166,13,183,13, +174,13,98,13,178,12,227,11,76,11,192,10,29,10,114,9,220,8,134,8,84,8,9,8,102,7,87,6,28,5,213,3, +137,2,72,1,234,255,116,254,249,252,38,251,217,248,59,246,130,243,252,240,160,238,14,236,56,233,104,230,216,227,146,225, +141,223,176,221,241,219,105,218,234,216,83,215,223,213,138,212,94,211,133,210,195,209,19,209,116,208,168,207,253,206,128,206, +193,205,208,204,209,203,241,202,88,202,153,201,157,200,168,199,156,198,143,197,132,196,123,195,208,194,117,194,69,194,85,194, +104,194,156,194,42,195,239,195,14,197,128,198,17,200,212,201,150,203,58,205,183,206,167,207,39,208,148,208,255,208,152,209, +78,210,26,211,68,212,143,213,174,214,157,215,84,216,42,217,73,218,106,219,128,220,116,221,54,222,236,222,130,223,235,223, +71,224,131,224,154,224,142,224,124,224,212,224,184,225,218,226,29,228,142,229,44,231,18,233,64,235,111,237,129,239,168,241, +241,243,94,246,233,248,106,251,254,253,180,0,70,3,158,5,179,7,108,9,7,11,165,12,45,14,145,15,187,16,161,17, +67,18,175,18,253,18,23,19,4,19,222,18,124,18,253,17,141,17,249,16,92,16,242,15,189,15,202,15,6,16,116,16, +60,17,57,18,45,19,223,19,79,20,241,20,210,21,156,22,70,23,187,23,255,23,67,24,81,24,240,23,81,23,178,22, +28,22,120,21,221,20,116,20,49,20,30,20,103,20,233,20,129,21,86,22,122,23,194,24,30,26,171,27,121,29,126,31, +135,33,112,35,81,37,10,39,96,40,91,41,243,41,55,42,84,42,20,42,117,41,196,40,5,40,63,39,133,38,223,37, +85,37,208,36,118,36,123,36,161,36,252,36,212,37,252,38,56,40,101,41,151,42,239,43,39,45,10,46,118,46,95,46, +59,46,18,46,133,45,185,44,158,43,52,42,240,40,168,39,15,38,71,36,104,34,194,32,109,31,43,30,17,29,33,28, +84,27,238,26,237,26,51,27,162,27,21,28,174,28,50,29,65,29,34,29,29,29,71,29,156,29,168,29,69,29,184,28, +250,27,213,26,62,25,107,23,157,21,235,19,101,18,237,16,90,15,226,13,126,12,224,10,247,8,204,6,165,4,197,2, +4,1,34,255,247,252,139,250,42,248,229,245,160,243,57,241,161,238,62,236,92,234,140,232,124,230,91,228,118,226,231,224, +125,223,32,222,236,220,230,219,254,218,50,218,134,217,205,216,229,215,41,215,186,214,59,214,175,213,34,213,104,212,173,211, +8,211,71,210,129,209,206,208,42,208,150,207,244,206,75,206,222,205,214,205,41,206,168,206,55,207,229,207,163,208,79,209, +220,209,65,210,144,210,239,210,131,211,75,212,9,213,134,213,228,213,42,214,25,214,182,213,78,213,9,213,240,212,223,212, +155,212,26,212,116,211,207,210,69,210,215,209,144,209,109,209,82,209,84,209,103,209,81,209,56,209,114,209,26,210,34,211, +80,212,140,213,235,214,75,216,118,217,99,218,60,219,63,220,135,221,29,223,235,224,179,226,119,228,68,230,34,232,99,234, +15,237,204,239,161,242,187,245,248,248,17,252,198,254,41,1,96,3,101,5,37,7,110,8,53,9,183,9,240,9,204,9, +93,9,210,8,112,8,52,8,228,7,124,7,251,6,97,6,220,5,146,5,158,5,247,5,166,6,221,7,113,9,32,11, +238,12,194,14,138,16,86,18,23,20,209,21,136,23,37,25,127,26,90,27,199,27,215,27,118,27,236,26,59,26,41,25, +28,24,73,23,138,22,18,22,223,21,197,21,250,21,180,22,251,23,128,25,244,26,123,28,46,30,9,32,250,33,168,35, +31,37,154,38,224,39,223,40,155,41,255,41,85,42,192,42,13,43,41,43,0,43,184,42,104,42,188,41,180,40,163,39, +155,38,193,37,39,37,175,36,88,36,34,36,25,36,59,36,80,36,91,36,173,36,91,37,66,38,54,39,51,40,56,41, +41,42,24,43,6,44,189,44,47,45,107,45,153,45,237,45,71,46,142,46,209,46,201,46,109,46,24,46,170,45,245,44, +73,44,186,43,38,43,139,42,217,41,15,41,61,40,71,39,49,38,38,37,12,36,184,34,47,33,134,31,205,29,9,28, +62,26,157,24,54,23,210,21,107,20,45,19,15,18,249,16,222,15,170,14,112,13,90,12,96,11,56,10,158,8,175,6, +182,4,173,2,127,0,50,254,185,251,52,249,205,246,96,244,207,241,8,239,242,235,169,232,95,229,55,226,63,223,84,220, +102,217,142,214,218,211,111,209,103,207,207,205,185,204,3,204,162,203,198,203,62,204,185,204,46,205,147,205,238,205,81,206, +202,206,85,207,169,207,166,207,123,207,48,207,230,206,184,206,130,206,111,206,163,206,251,206,101,207,149,207,99,207,31,207, +201,206,90,206,244,205,139,205,75,205,74,205,54,205,4,205,180,204,54,204,191,203,99,203,72,203,150,203,15,204,177,204, +134,205,58,206,213,206,109,207,226,207,117,208,51,209,214,209,91,210,184,210,3,211,139,211,61,212,244,212,191,213,153,214, +140,215,155,216,157,217,142,218,156,219,214,220,40,222,160,223,57,225,191,226,67,228,234,229,151,231,105,233,126,235,179,237, +64,240,89,243,166,246,218,249,226,252,186,255,112,2,229,4,11,7,2,9,182,10,27,12,68,13,32,14,181,14,32,15, +77,15,85,15,99,15,71,15,225,14,123,14,27,14,136,13,243,12,159,12,132,12,154,12,206,12,10,13,110,13,9,14, +222,14,240,15,35,17,133,18,38,20,216,21,128,23,253,24,24,26,230,26,127,27,224,27,8,28,229,27,151,27,90,27, +32,27,218,26,111,26,226,25,152,25,160,25,221,25,137,26,132,27,133,28,156,29,181,30,212,31,8,33,34,34,82,35, +196,36,46,38,114,39,133,40,89,41,42,42,255,42,189,43,92,44,166,44,109,44,207,43,20,43,116,42,187,41,181,40, +146,39,143,38,226,37,121,37,7,37,173,36,158,36,185,36,229,36,252,36,247,36,19,37,108,37,241,37,70,38,17,38, +175,37,125,37,83,37,27,37,163,36,237,35,108,35,33,35,252,34,38,35,72,35,57,35,62,35,22,35,158,34,65,34, +58,34,139,34,16,35,119,35,151,35,128,35,106,35,120,35,86,35,193,34,243,33,33,33,71,32,75,31,213,29,181,27, +98,25,91,23,138,21,193,19,230,17,249,15,70,14,220,12,106,11,224,9,97,8,29,7,61,6,80,5,210,3,8,2, +74,0,135,254,164,252,115,250,209,247,0,245,108,242,24,240,166,237,245,234,55,232,151,229,31,227,161,224,18,222,222,219, +61,218,248,216,202,215,125,214,58,213,73,212,138,211,214,210,38,210,99,209,185,208,86,208,32,208,238,207,169,207,116,207, +122,207,174,207,251,207,56,208,95,208,177,208,24,209,86,209,100,209,50,209,239,208,192,208,105,208,247,207,144,207,49,207, +24,207,40,207,27,207,58,207,138,207,201,207,221,207,102,207,149,206,32,206,231,205,176,205,156,205,125,205,98,205,114,205, +128,205,170,205,52,206,38,207,128,208,20,210,167,211,41,213,131,214,187,215,238,216,22,218,13,219,198,219,101,220,13,221, +180,221,90,222,1,223,177,223,124,224,79,225,74,226,163,227,58,229,6,231,5,233,22,235,103,237,15,240,199,242,140,245, +82,248,242,250,163,253,121,0,64,3,223,5,80,8,177,10,251,12,230,14,97,16,105,17,222,17,231,17,177,17,42,17, +96,16,108,15,80,14,44,13,16,12,209,10,114,9,48,8,37,7,114,6,54,6,59,6,128,6,52,7,16,8,215,8, +169,9,174,10,7,12,136,13,246,14,105,16,208,17,241,18,220,19,173,20,100,21,220,21,9,22,63,22,141,22,220,22, +82,23,184,23,2,24,162,24,117,25,63,26,67,27,113,28,171,29,251,30,70,32,169,33,63,35,231,36,151,38,15,40, +27,41,210,41,46,42,85,42,131,42,110,42,218,41,243,40,220,39,179,38,108,37,206,35,247,33,104,32,77,31,89,30, +154,29,73,29,52,29,118,29,61,30,38,31,62,32,201,33,120,35,61,37,18,39,167,40,29,42,109,43,97,44,58,45, +248,45,118,46,243,46,64,47,26,47,204,46,113,46,8,46,174,45,39,45,80,44,82,43,45,42,224,40,98,39,152,37, +187,35,13,34,141,32,45,31,217,29,136,28,96,27,109,26,156,25,238,24,102,24,3,24,221,23,246,23,44,24,94,24, +117,24,105,24,62,24,246,23,148,23,36,23,171,22,10,22,26,21,213,19,73,18,126,16,114,14,49,12,206,9,77,7, +150,4,147,1,94,254,26,251,163,247,226,243,16,240,98,236,227,232,135,229,77,226,109,223,12,221,1,219,58,217,207,215, +208,214,64,214,236,213,174,213,158,213,195,213,237,213,220,213,128,213,3,213,92,212,87,211,26,210,0,209,21,208,16,207, +208,205,130,204,54,203,5,202,23,201,67,200,115,199,184,198,248,197,80,197,203,196,81,196,33,196,20,196,219,195,213,195, +56,196,253,196,28,198,56,199,103,200,216,201,18,203,37,204,76,205,44,206,239,206,194,207,88,208,221,208,127,209,16,210, +151,210,29,211,180,211,113,212,47,213,235,213,186,214,139,215,74,216,9,217,240,217,227,218,204,219,218,220,243,221,7,223, +50,224,53,225,55,226,180,227,117,229,90,231,142,233,237,235,90,238,171,240,213,242,58,245,216,247,114,250,25,253,205,255, +147,2,85,5,173,7,157,9,100,11,3,13,134,14,220,15,205,16,109,17,7,18,140,18,152,18,29,18,93,17,114,16, +119,15,108,14,42,13,208,11,155,10,152,9,176,8,217,7,84,7,78,7,172,7,80,8,28,9,25,10,91,11,165,12, +5,14,164,15,14,17,29,18,0,19,164,19,18,20,35,20,173,19,21,19,102,18,106,17,97,16,72,15,22,14,27,13, +88,12,196,11,140,11,193,11,119,12,134,13,170,14,242,15,118,17,53,19,71,21,156,23,244,25,46,28,95,30,158,32, +218,34,225,36,131,38,234,39,100,41,188,42,155,43,246,43,208,43,63,43,77,42,222,40,10,39,247,36,202,34,228,32, +70,31,189,29,131,28,138,27,130,26,181,25,119,25,151,25,0,26,180,26,145,27,140,28,172,29,250,30,108,32,208,33, +87,35,36,37,200,38,59,40,233,41,201,43,199,45,163,47,210,48,158,49,113,50,243,50,22,51,0,51,131,50,161,49, +111,48,249,46,83,45,134,43,230,41,162,40,103,39,7,38,124,36,216,34,107,33,55,32,253,30,145,29,230,27,96,26, +70,25,52,24,214,22,49,21,105,19,185,17,40,16,153,14,28,13,217,11,180,10,117,9,253,7,20,6,184,3,133,1, +182,255,241,253,221,251,51,249,88,246,239,243,164,241,43,239,199,236,140,234,147,232,162,230,44,228,134,225,61,223,69,221, +133,219,226,217,76,216,223,214,174,213,214,212,58,212,140,211,242,210,187,210,242,210,139,211,122,212,140,213,120,214,69,215, +249,215,95,216,168,216,236,216,226,216,193,216,136,216,228,215,247,214,157,213,207,211,38,210,158,208,38,207,24,206,78,205, +192,204,112,204,10,204,175,203,135,203,114,203,125,203,136,203,155,203,246,203,121,204,21,205,204,205,110,206,4,207,144,207, +18,208,162,208,46,209,204,209,128,210,2,211,91,211,149,211,162,211,173,211,196,211,232,211,18,212,50,212,153,212,104,213, +93,214,113,215,167,216,10,218,190,219,165,221,171,223,209,225,8,228,105,230,13,233,14,236,87,239,117,242,84,245,71,248, +85,251,109,254,150,1,221,4,45,8,33,11,128,13,95,15,227,16,43,18,10,19,108,19,178,19,215,19,141,19,216,18, +200,17,123,16,51,15,253,13,195,12,134,11,133,10,229,9,118,9,46,9,231,8,102,8,248,7,213,7,7,8,179,8, +124,9,31,10,232,10,203,11,123,12,234,12,53,13,145,13,236,13,16,14,4,14,182,13,68,13,4,13,217,12,121,12, +255,11,190,11,222,11,65,12,176,12,9,13,126,13,97,14,157,15,241,16,62,18,140,19,74,21,118,23,96,25,252,26, +145,28,20,30,193,31,165,33,88,35,207,36,44,38,95,39,51,40,99,40,244,39,46,39,66,38,79,37,104,36,161,35, +251,34,99,34,228,33,134,33,66,33,16,33,18,33,163,33,164,34,171,35,181,36,180,37,186,38,4,40,37,41,214,41, +123,42,80,43,96,44,92,45,219,45,43,46,123,46,179,46,10,47,93,47,143,47,203,47,221,47,214,47,229,47,212,47, +216,47,44,48,160,48,64,49,1,50,149,50,229,50,250,50,201,50,42,50,23,49,187,47,17,46,243,43,64,41,20,38, +197,34,104,31,2,28,166,24,48,21,245,17,87,15,7,13,221,10,184,8,87,6,20,4,44,2,113,0,205,254,24,253, +99,251,185,249,184,247,117,245,28,243,180,240,170,238,222,236,192,234,129,232,123,230,159,228,217,226,43,225,163,223,63,222, +13,221,23,220,37,219,64,218,160,217,35,217,167,216,46,216,192,215,96,215,6,215,204,214,155,214,64,214,226,213,115,213, +254,212,214,212,187,212,128,212,102,212,64,212,244,211,152,211,23,211,177,210,113,210,51,210,40,210,13,210,162,209,62,209, +218,208,87,208,210,207,74,207,231,206,172,206,78,206,180,205,211,204,199,203,207,202,251,201,96,201,21,201,18,201,64,201, +98,201,95,201,93,201,142,201,12,202,192,202,179,203,242,204,63,206,157,207,27,209,107,210,158,211,211,212,8,214,141,215, +124,217,190,219,32,222,40,224,235,225,177,227,66,229,182,230,62,232,224,233,225,235,254,237,184,239,81,241,17,243,237,244, +251,246,77,249,198,251,59,254,161,0,234,2,231,4,142,6,239,7,19,9,0,10,165,10,34,11,122,11,117,11,74,11, +8,11,103,10,188,9,73,9,252,8,16,9,83,9,117,9,170,9,255,9,84,10,152,10,196,10,25,11,163,11,42,12, +160,12,240,12,21,13,38,13,35,13,20,13,208,12,51,12,111,11,155,10,208,9,26,9,58,8,91,7,217,6,167,6, +161,6,177,6,246,6,199,7,47,9,231,10,159,12,134,14,21,17,2,20,220,22,167,25,17,28,9,30,15,32,14,34, +168,35,203,36,151,37,60,38,176,38,197,38,111,38,209,37,53,37,133,36,129,35,97,34,78,33,83,32,159,31,33,31, +215,30,229,30,107,31,153,32,60,34,4,36,235,37,184,39,120,41,118,43,104,45,253,46,37,48,225,48,107,49,156,49, +38,49,80,48,84,47,70,46,83,45,110,44,149,43,240,42,163,42,168,42,209,42,36,43,170,43,114,44,206,45,160,47, +123,49,86,51,10,53,114,54,179,55,159,56,28,57,106,57,139,57,57,57,49,56,125,54,93,52,230,49,71,47,104,44, +250,40,69,37,164,33,59,30,44,27,33,24,253,20,23,18,87,15,157,12,226,9,14,7,98,4,231,1,88,255,193,252, +254,249,232,246,224,243,23,241,88,238,132,235,174,232,247,229,126,227,109,225,175,223,32,222,230,220,243,219,45,219,182,218, +109,218,85,218,150,218,235,218,57,219,146,219,211,219,14,220,67,220,83,220,41,220,164,219,251,218,76,218,77,217,44,216, +32,215,19,214,45,213,54,212,253,210,230,209,245,208,255,207,31,207,75,206,170,205,73,205,215,204,121,204,130,204,179,204, +216,204,33,205,139,205,212,205,17,206,82,206,93,206,65,206,254,205,102,205,176,204,231,203,9,203,92,202,177,201,8,201, +191,200,174,200,196,200,14,201,76,201,178,201,91,202,253,202,184,203,183,204,6,206,172,207,86,209,245,210,208,212,220,214, +241,216,232,218,177,220,130,222,114,224,111,226,82,228,244,229,108,231,203,232,19,234,96,235,193,236,78,238,0,240,203,241, +240,243,99,246,220,248,88,251,193,253,32,0,121,2,143,4,104,6,22,8,132,9,185,10,126,11,190,11,186,11,112,11, +8,11,163,10,14,10,158,9,130,9,74,9,240,8,170,8,147,8,225,8,139,9,100,10,77,11,55,12,56,13,51,14, +236,14,77,15,96,15,110,15,132,15,79,15,211,14,35,14,63,13,54,12,251,10,188,9,180,8,207,7,52,7,26,7, +106,7,244,7,139,8,95,9,190,10,139,12,152,14,186,16,234,18,101,21,251,23,87,26,121,28,91,30,76,32,113,34, +97,36,27,38,183,39,244,40,226,41,120,42,117,42,246,41,42,41,66,40,107,39,132,38,132,37,152,36,245,35,141,35, +42,35,229,34,233,34,100,35,139,36,5,38,133,39,63,41,7,43,134,44,173,45,114,46,252,46,102,47,162,47,178,47, +87,47,145,46,211,45,47,45,168,44,113,44,131,44,237,44,192,45,200,46,193,47,157,48,172,49,241,50,51,52,168,53, +81,55,215,56,35,58,236,58,14,59,181,58,174,57,6,56,55,54,89,52,49,50,136,47,120,44,65,41,217,37,57,34, +116,30,178,26,104,23,170,20,37,18,190,15,97,13,30,11,251,8,201,6,195,4,25,3,89,1,100,255,126,253,183,251, +250,249,46,248,56,246,18,244,240,241,234,239,162,237,42,235,218,232,121,230,7,228,158,225,23,223,204,220,235,218,46,217, +199,215,199,214,246,213,85,213,205,212,124,212,150,212,205,212,242,212,25,213,34,213,255,212,185,212,95,212,248,211,132,211, +20,211,173,210,101,210,49,210,214,209,116,209,28,209,145,208,27,208,227,207,145,207,32,207,170,206,42,206,162,205,255,204, +82,204,173,203,23,203,203,202,159,202,74,202,0,202,189,201,85,201,205,200,60,200,235,199,207,199,167,199,174,199,220,199, +251,199,83,200,254,200,219,201,240,202,44,204,115,205,179,206,1,208,110,209,226,210,116,212,76,214,60,216,28,218,229,219, +169,221,101,223,216,224,52,226,181,227,7,229,43,230,81,231,76,232,52,233,65,234,123,235,248,236,215,238,54,241,221,243, +114,246,16,249,178,251,45,254,148,0,202,2,227,4,20,7,255,8,105,10,114,11,44,12,210,12,107,13,202,13,17,14, +91,14,175,14,2,15,46,15,56,15,48,15,20,15,242,14,227,14,44,15,177,15,237,15,234,15,243,15,252,15,243,15, +226,15,236,15,8,16,248,15,180,15,55,15,137,14,228,13,4,13,210,11,177,10,162,9,173,8,22,8,189,7,140,7, +109,7,100,7,218,7,205,8,248,9,146,11,191,13,86,16,15,19,162,21,18,24,140,26,5,29,50,31,230,32,123,34, +44,36,188,37,5,39,247,39,158,40,42,41,135,41,171,41,156,41,74,41,217,40,115,40,26,40,189,39,31,39,143,38, +163,38,59,39,252,39,153,40,233,40,77,41,209,41,28,42,67,42,99,42,113,42,81,42,210,41,19,41,65,40,87,39, +131,38,217,37,76,37,9,37,73,37,25,38,91,39,224,40,118,42,24,44,65,46,28,49,251,51,123,54,164,56,116,58, +30,60,115,61,252,61,239,61,156,61,241,60,194,59,220,57,67,55,55,52,237,48,109,45,134,41,76,37,32,33,65,29, +210,25,146,22,58,19,14,16,48,13,131,10,14,8,161,5,70,3,69,1,122,255,196,253,7,252,253,249,210,247,234,245, +86,244,229,242,103,241,239,239,141,238,47,237,232,235,158,234,45,233,200,231,138,230,83,229,4,228,150,226,26,225,147,223, +26,222,181,220,63,219,6,218,87,217,232,216,115,216,207,215,232,214,233,213,228,212,248,211,68,211,152,210,21,210,231,209, +193,209,138,209,66,209,220,208,170,208,198,208,238,208,10,209,255,208,195,208,110,208,6,208,144,207,30,207,202,206,150,206, +89,206,246,205,81,205,112,204,139,203,161,202,163,201,191,200,19,200,173,199,114,199,34,199,208,198,157,198,157,198,16,199, +253,199,43,201,108,202,205,203,127,205,80,207,4,209,190,210,114,212,45,214,60,216,82,218,28,220,212,221,139,223,47,225, +183,226,37,228,123,229,154,230,136,231,99,232,23,233,182,233,127,234,117,235,148,236,220,237,100,239,93,241,167,243,221,245, +208,247,191,249,230,251,254,253,204,255,127,1,34,3,174,4,24,6,60,7,46,8,28,9,17,10,25,11,33,12,234,12, +67,13,82,13,107,13,129,13,118,13,113,13,101,13,102,13,144,13,129,13,59,13,23,13,238,12,168,12,89,12,254,11, +212,11,230,11,217,11,131,11,218,10,220,9,196,8,209,7,255,6,47,6,114,5,235,4,171,4,209,4,83,5,19,6, +85,7,89,9,228,11,153,14,90,17,51,20,9,23,176,25,45,28,149,30,246,32,42,35,217,36,14,38,228,38,55,39, +47,39,239,38,112,38,238,37,120,37,25,37,28,37,41,37,209,36,87,36,233,35,130,35,66,35,25,35,248,34,3,35, +60,35,111,35,160,35,6,36,169,36,87,37,206,37,208,37,125,37,32,37,193,36,106,36,29,36,184,35,128,35,226,35, +214,36,10,38,68,39,165,40,149,42,60,45,58,48,25,51,220,53,213,56,252,59,243,62,51,65,144,66,111,67,245,67, +202,67,215,66,57,65,48,63,235,60,70,58,63,55,245,51,110,48,11,45,1,42,223,38,109,35,221,31,130,28,150,25, +221,22,16,20,104,17,40,15,77,13,156,11,164,9,87,7,51,5,95,3,121,1,77,255,230,252,83,250,207,247,109,245, +236,242,40,240,64,237,119,234,11,232,210,229,139,227,73,225,27,223,23,221,90,219,211,217,151,216,195,215,97,215,126,215, +194,215,190,215,168,215,230,215,125,216,34,217,123,217,163,217,240,217,107,218,223,218,251,218,156,218,47,218,250,217,173,217, +0,217,255,215,194,214,104,213,250,211,68,210,44,208,250,205,254,203,45,202,85,200,116,198,196,196,92,195,46,194,83,193, +210,192,126,192,72,192,45,192,38,192,39,192,6,192,215,191,215,191,11,192,107,192,240,192,154,193,188,194,127,196,146,198, +182,200,220,202,12,205,79,207,116,209,89,211,53,213,55,215,55,217,243,218,127,220,10,222,96,223,92,224,61,225,42,226, +41,227,84,228,169,229,13,231,114,232,209,233,60,235,194,236,75,238,231,239,230,241,90,244,17,247,218,249,138,252,59,255, +45,2,48,5,254,7,176,10,102,13,34,16,192,18,9,21,248,22,128,24,115,25,236,25,7,26,179,25,33,25,138,24, +225,23,17,23,17,22,243,20,227,19,18,19,158,18,77,18,213,17,91,17,6,17,172,16,58,16,181,15,13,15,79,14, +165,13,60,13,26,13,240,12,122,12,212,11,37,11,123,10,236,9,117,9,55,9,129,9,36,10,195,10,119,11,80,12, +75,13,155,14,36,16,161,17,60,19,250,20,158,22,59,24,243,25,167,27,53,29,145,30,202,31,226,32,152,33,199,33, +207,33,234,33,169,33,210,32,196,31,205,30,245,29,34,29,31,28,15,27,51,26,110,25,200,24,142,24,176,24,25,25, +230,25,3,27,94,28,23,30,9,32,237,33,169,35,65,37,207,38,63,40,97,41,100,42,106,43,19,44,87,44,130,44, +106,44,244,43,94,43,178,42,18,42,211,41,255,41,106,42,245,42,141,43,52,44,253,44,247,45,244,46,144,47,204,47, +245,47,29,48,59,48,55,48,195,47,219,46,212,45,173,44,53,43,127,41,158,39,127,37,27,35,143,32,239,29,34,27, +27,24,225,20,108,17,212,13,96,10,13,7,184,3,128,0,119,253,120,250,118,247,124,244,158,241,13,239,241,236,89,235, +73,234,183,233,137,233,146,233,176,233,221,233,34,234,160,234,76,235,202,235,11,236,95,236,204,236,25,237,75,237,116,237, +157,237,181,237,112,237,158,236,116,235,42,234,185,232,10,231,24,229,241,226,143,224,227,221,2,219,35,216,115,213,242,210, +159,208,178,206,83,205,79,204,114,203,196,202,85,202,27,202,255,201,11,202,90,202,183,202,235,202,46,203,171,203,52,204, +151,204,188,204,189,204,217,204,14,205,52,205,85,205,128,205,193,205,22,206,68,206,66,206,80,206,144,206,13,207,206,207, +168,208,130,209,93,210,33,211,224,211,180,212,111,213,0,214,176,214,189,215,11,217,73,218,106,219,178,220,49,222,193,223, +91,225,249,226,143,228,51,230,246,231,205,233,166,235,132,237,120,239,100,241,34,243,187,244,44,246,115,247,224,248,124,250, +215,251,192,252,119,253,58,254,4,255,126,255,135,255,132,255,185,255,32,0,176,0,72,1,203,1,104,2,46,3,254,3, +236,4,19,6,96,7,192,8,36,10,103,11,127,12,120,13,67,14,195,14,22,15,98,15,128,15,86,15,30,15,227,14, +97,14,139,13,138,12,80,11,237,9,208,8,32,8,166,7,116,7,133,7,106,7,14,7,193,6,180,6,39,7,21,8, +7,9,249,9,42,11,97,12,149,13,248,14,95,16,187,17,47,19,144,20,249,21,186,23,153,25,67,27,153,28,143,29, +131,30,174,31,158,32,58,33,223,33,129,34,255,34,108,35,214,35,105,36,67,37,32,38,205,38,101,39,248,39,106,40, +151,40,148,40,170,40,217,40,212,40,135,40,31,40,178,39,60,39,187,38,54,38,217,37,227,37,90,38,29,39,73,40, +12,42,83,44,241,46,148,49,231,51,19,54,117,56,228,58,242,60,114,62,126,63,95,64,15,65,31,65,130,64,169,63, +198,62,188,61,96,60,155,58,167,56,196,54,203,52,133,50,254,47,106,45,232,42,92,40,146,37,118,34,41,31,239,27, +0,25,80,22,171,19,6,17,156,14,138,12,151,10,173,8,230,6,47,5,107,3,140,1,99,255,5,253,185,250,148,248, +155,246,180,244,142,242,60,240,25,238,30,236,53,234,89,232,62,230,207,227,130,225,172,223,38,222,141,220,187,218,13,217, +203,215,209,214,37,214,227,213,232,213,38,214,160,214,61,215,239,215,167,216,82,217,240,217,92,218,83,218,217,217,60,217, +135,216,121,215,29,214,156,212,222,210,6,209,82,207,121,205,112,203,196,201,128,200,69,199,35,198,60,197,131,196,11,196, +197,195,149,195,172,195,4,196,59,196,57,196,34,196,254,195,219,195,216,195,252,195,62,196,162,196,66,197,39,198,68,199, +158,200,18,202,91,203,96,204,50,205,2,206,247,206,244,207,240,208,249,209,255,210,32,212,147,213,62,215,235,216,133,218, +26,220,220,221,203,223,169,225,76,227,209,228,136,230,152,232,209,234,5,237,56,239,119,241,211,243,98,246,39,249,12,252, +0,255,239,1,172,4,61,7,213,9,58,12,242,13,46,15,99,16,80,17,186,17,15,18,91,18,75,18,8,18,178,17, +56,17,208,16,134,16,61,16,14,16,8,16,51,16,140,16,225,16,56,17,176,17,22,18,92,18,145,18,132,18,18,18, +100,17,196,16,67,16,178,15,12,15,124,14,3,14,139,13,19,13,162,12,72,12,40,12,65,12,115,12,189,12,66,13, +35,14,110,15,247,16,156,18,136,20,181,22,213,24,199,26,128,28,5,30,125,31,229,32,37,34,56,35,2,36,110,36, +175,36,223,36,201,36,134,36,98,36,38,36,185,35,127,35,82,35,220,34,95,34,242,33,128,33,60,33,29,33,42,33, +163,33,77,34,194,34,249,34,241,34,205,34,218,34,35,35,140,35,12,36,136,36,220,36,27,37,96,37,153,37,198,37, +248,37,57,38,172,38,82,39,255,39,184,40,145,41,102,42,17,43,198,43,216,44,34,46,75,47,65,48,3,49,141,49, +206,49,164,49,44,49,166,48,21,48,95,47,57,46,161,44,12,43,83,41,235,38,32,36,129,33,41,31,245,28,140,26, +183,23,201,20,18,18,84,15,91,12,96,9,128,6,166,3,235,0,81,254,205,251,120,249,71,247,29,245,245,242,216,240, +247,238,73,237,129,235,168,233,220,231,8,230,73,228,204,226,140,225,106,224,77,223,60,222,58,221,97,220,220,219,164,219, +157,219,196,219,9,220,84,220,136,220,154,220,132,220,51,220,211,219,145,219,61,219,228,218,180,218,141,218,108,218,80,218, +22,218,235,217,239,217,213,217,109,217,241,216,138,216,245,215,10,215,222,213,89,212,137,210,192,208,30,207,180,205,130,204, +112,203,145,202,232,201,82,201,207,200,104,200,49,200,45,200,43,200,41,200,78,200,161,200,2,201,78,201,165,201,33,202, +171,202,87,203,19,204,186,204,148,205,205,206,76,208,32,210,44,212,67,214,87,216,87,218,106,220,200,222,50,225,84,227, +58,229,33,231,20,233,251,234,208,236,145,238,74,240,36,242,69,244,184,246,39,249,67,251,101,253,187,255,9,2,82,4, +142,6,180,8,235,10,16,13,247,14,155,16,229,17,227,18,130,19,160,19,152,19,169,19,152,19,67,19,180,18,10,18, +92,17,168,16,6,16,112,15,217,14,87,14,208,13,49,13,165,12,43,12,175,11,61,11,231,10,163,10,85,10,242,9, +97,9,172,8,23,8,140,7,193,6,221,5,10,5,88,4,1,4,22,4,91,4,141,4,196,4,92,5,60,6,41,7, +79,8,210,9,172,11,177,13,200,15,59,18,250,20,132,23,181,25,170,27,147,29,115,31,245,32,45,34,104,35,153,36, +164,37,51,38,0,38,117,37,204,36,190,35,67,34,131,32,167,30,223,28,96,27,76,26,100,25,96,24,118,23,252,22, +228,22,246,22,60,23,232,23,250,24,102,26,231,27,34,29,74,30,180,31,68,33,181,34,201,35,174,36,198,37,212,38, +131,39,238,39,52,40,132,40,238,40,89,41,188,41,229,41,219,41,255,41,117,42,39,43,220,43,125,44,79,45,64,46, +20,47,220,47,112,48,213,48,84,49,173,49,133,49,202,48,129,47,240,45,37,44,222,41,38,39,77,36,184,33,167,31, +181,29,60,27,47,24,16,21,41,18,82,15,87,12,32,9,231,5,20,3,143,0,245,253,19,251,239,247,229,244,37,242, +129,239,3,237,165,234,119,232,190,230,50,229,123,227,191,225,50,224,57,223,233,222,183,222,137,222,179,222,101,223,145,224, +168,225,90,226,12,227,4,228,50,229,76,230,11,231,143,231,4,232,85,232,81,232,207,231,1,231,31,230,25,229,240,227, +141,226,231,224,73,223,192,221,9,220,18,218,1,216,8,214,44,212,111,210,233,208,134,207,56,206,19,205,47,204,144,203, +226,202,34,202,207,201,202,201,187,201,203,201,247,201,20,202,31,202,21,202,252,201,205,201,158,201,157,201,195,201,45,202, +234,202,206,203,251,204,120,206,23,208,224,209,162,211,59,213,222,214,111,216,247,217,161,219,59,221,207,222,105,224,197,225, +240,226,29,228,93,229,206,230,96,232,235,233,108,235,255,236,208,238,218,240,254,242,58,245,168,247,68,250,211,252,88,255, +241,1,90,4,96,6,3,8,93,9,211,10,57,12,14,13,149,13,245,13,31,14,114,14,214,14,226,14,184,14,129,14, +63,14,243,13,145,13,31,13,143,12,238,11,95,11,191,10,242,9,5,9,28,8,132,7,36,7,184,6,106,6,77,6, +79,6,109,6,124,6,109,6,81,6,53,6,53,6,62,6,84,6,130,6,154,6,182,6,250,6,60,7,162,7,87,8, +54,9,71,10,160,11,50,13,233,14,184,16,162,18,138,20,82,22,4,24,124,25,152,26,113,27,51,28,252,28,162,29, +1,30,17,30,155,29,203,28,243,27,244,26,238,25,245,24,190,23,101,22,39,21,41,20,176,19,145,19,199,19,164,20, +247,21,158,23,184,25,16,28,148,30,63,33,215,35,85,38,193,40,254,42,227,44,73,46,10,47,27,47,203,46,92,46, +160,45,176,44,223,43,36,43,115,42,202,41,36,41,174,40,152,40,2,41,218,41,231,42,63,44,230,45,161,47,58,49, +105,50,45,51,191,51,9,52,24,52,254,51,118,51,132,50,59,49,121,47,83,45,221,42,63,40,186,37,64,35,173,32, +236,29,7,27,37,24,55,21,81,18,159,15,246,12,93,10,236,7,128,5,45,3,240,0,180,254,170,252,181,250,191,248, +227,246,254,244,42,243,140,241,214,239,14,238,134,236,80,235,104,234,162,233,188,232,223,231,106,231,68,231,10,231,215,230, +210,230,195,230,174,230,146,230,67,230,193,229,236,228,191,227,112,226,242,224,98,223,236,221,108,220,47,219,87,218,121,217, +145,216,193,215,240,214,18,214,16,213,16,212,66,211,126,210,184,209,249,208,47,208,97,207,163,206,64,206,85,206,105,206, +70,206,27,206,7,206,18,206,244,205,111,205,206,204,67,204,197,203,52,203,92,202,92,201,150,200,67,200,87,200,168,200, +65,201,36,202,74,203,191,204,43,206,68,207,58,208,36,209,27,210,46,211,45,212,61,213,140,214,233,215,91,217,238,218, +127,220,255,221,119,223,24,225,239,226,181,228,90,230,244,231,182,233,167,235,112,237,40,239,26,241,45,243,139,245,53,248, +200,250,65,253,142,255,157,1,186,3,171,5,10,7,30,8,67,9,125,10,124,11,220,11,181,11,132,11,140,11,130,11, +32,11,184,10,152,10,182,10,235,10,3,11,26,11,98,11,175,11,238,11,52,12,109,12,141,12,151,12,176,12,199,12, +124,12,237,11,95,11,188,10,12,10,65,9,97,8,207,7,129,7,72,7,43,7,24,7,31,7,85,7,192,7,153,8, +216,9,110,11,124,13,203,15,59,18,209,20,76,23,172,25,8,28,52,30,21,32,128,33,108,34,4,35,71,35,84,35, +94,35,62,35,198,34,22,34,102,33,171,32,168,31,107,30,29,29,246,27,74,27,255,26,251,26,121,27,110,28,181,29, +73,31,254,32,185,34,139,36,157,38,234,40,19,43,237,44,101,46,108,47,88,48,10,49,0,49,130,48,22,48,237,47, +1,48,228,47,93,47,166,46,240,45,136,45,136,45,169,45,205,45,15,46,176,46,141,47,8,48,17,48,7,48,46,48, +170,48,4,49,178,48,240,47,20,47,27,46,217,44,41,43,93,41,219,39,145,38,37,37,98,35,112,33,127,31,128,29, +107,27,58,25,6,23,31,21,146,19,0,18,224,15,20,13,41,10,122,7,17,5,231,2,147,0,16,254,201,251,153,249, +77,247,225,244,54,242,165,239,129,237,177,235,26,234,114,232,165,230,239,228,47,227,65,225,92,223,191,221,152,220,231,219, +155,219,121,219,13,219,126,218,60,218,18,218,179,217,15,217,65,216,168,215,79,215,222,214,73,214,217,213,175,213,148,213, +92,213,4,213,150,212,89,212,78,212,253,211,75,211,85,210,51,209,58,208,100,207,122,206,150,205,176,204,232,203,113,203, +250,202,78,202,158,201,24,201,163,200,6,200,82,199,152,198,213,197,103,197,101,197,144,197,14,198,212,198,166,199,140,200, +133,201,155,202,204,203,242,204,30,206,68,207,91,208,148,209,176,210,146,211,152,212,196,213,15,215,134,216,226,217,42,219, +151,220,1,222,55,223,83,224,144,225,13,227,223,228,29,231,190,233,193,236,13,240,116,243,245,246,102,250,179,253,20,1, +57,4,223,6,93,9,160,11,152,13,126,15,7,17,248,17,119,18,161,18,153,18,63,18,147,17,239,16,86,16,194,15, +77,15,221,14,151,14,155,14,171,14,179,14,185,14,200,14,211,14,179,14,155,14,157,14,122,14,86,14,80,14,43,14, +211,13,105,13,7,13,152,12,12,12,128,11,212,10,253,9,51,9,94,8,121,7,178,6,10,6,219,5,84,6,254,6, +201,7,7,9,182,10,166,12,195,14,24,17,132,19,254,21,177,24,94,27,188,29,183,31,21,33,255,33,206,34,140,35, +83,36,34,37,220,37,123,38,175,38,113,38,11,38,111,37,196,36,72,36,216,35,156,35,197,35,76,36,20,37,184,37, +49,38,189,38,57,39,175,39,34,40,49,40,236,39,137,39,229,38,20,38,51,37,53,36,54,35,127,34,56,34,80,34, +169,34,28,35,153,35,83,36,86,37,183,38,200,40,76,43,216,45,81,48,101,50,9,52,143,53,229,54,215,55,46,56, +220,55,76,55,139,54,80,53,163,51,160,49,136,47,133,45,81,43,191,40,218,37,208,34,241,31,36,29,58,26,91,23, +179,20,102,18,99,16,113,14,101,12,19,10,167,7,100,5,17,3,174,0,120,254,120,252,220,250,136,249,246,247,15,246, +247,243,225,241,27,240,146,238,250,236,62,235,118,233,208,231,69,230,140,228,147,226,177,224,64,223,46,222,82,221,169,220, +12,220,120,219,253,218,100,218,158,217,212,216,57,216,239,215,174,215,60,215,199,214,111,214,118,214,238,214,104,215,212,215, +98,216,255,216,158,217,229,217,144,217,243,216,38,216,4,215,142,213,211,211,35,210,183,208,70,207,195,205,116,204,105,203, +140,202,196,201,253,200,59,200,139,199,239,198,97,198,221,197,113,197,58,197,73,197,145,197,255,197,139,198,33,199,228,199, +240,200,60,202,219,203,193,205,189,207,217,209,18,212,56,214,53,216,18,218,247,219,214,221,110,223,200,224,7,226,67,227, +125,228,100,229,252,229,197,230,234,231,102,233,67,235,92,237,162,239,45,242,233,244,186,247,154,250,127,253,70,0,231,2, +136,5,14,8,67,10,54,12,232,13,75,15,141,16,215,17,24,19,60,20,37,21,154,21,134,21,3,21,61,20,123,19, +219,18,52,18,158,17,60,17,188,16,252,15,31,15,55,14,109,13,218,12,123,12,101,12,129,12,189,12,4,13,14,13, +198,12,48,12,53,11,1,10,177,8,59,7,187,5,28,4,106,2,18,1,38,0,116,255,23,255,77,255,20,0,45,1, +128,2,37,4,35,6,119,8,0,11,135,13,31,16,220,18,142,21,252,23,6,26,144,27,186,28,227,29,9,31,187,31, +27,32,168,32,89,33,2,34,105,34,87,34,29,34,223,33,86,33,142,32,201,31,93,31,94,31,113,31,123,31,138,31, +155,31,232,31,79,32,154,32,24,33,194,33,81,34,225,34,123,35,7,36,127,36,230,36,77,37,147,37,153,37,139,37, +164,37,238,37,43,38,55,38,93,38,198,38,105,39,41,40,214,40,179,41,242,42,47,44,80,45,130,46,180,47,201,48, +166,49,55,50,104,50,57,50,214,49,47,49,60,48,60,47,231,45,6,44,237,41,186,39,130,37,76,35,215,32,80,30, +235,27,106,25,200,22,37,20,144,17,4,15,94,12,160,9,220,6,39,4,174,1,75,255,255,252,17,251,86,249,165,247, +232,245,233,243,225,241,4,240,44,238,77,236,81,234,67,232,92,230,145,228,213,226,32,225,115,223,49,222,124,221,34,221, +39,221,130,221,60,222,80,223,84,224,12,225,139,225,229,225,25,226,33,226,31,226,242,225,87,225,164,224,25,224,136,223, +248,222,75,222,154,221,79,221,15,221,84,220,39,219,184,217,90,216,2,215,94,213,157,211,238,209,84,208,233,206,134,205, +51,204,44,203,88,202,148,201,225,200,83,200,235,199,123,199,38,199,52,199,120,199,161,199,169,199,5,200,255,200,27,202, +60,203,195,204,133,206,82,208,9,210,113,211,219,212,109,214,223,215,49,217,112,218,192,219,67,221,190,222,47,224,166,225, +251,226,63,228,128,229,192,230,23,232,84,233,136,234,15,236,233,237,248,239,44,242,132,244,10,247,143,249,240,251,57,254, +102,0,127,2,110,4,31,6,184,7,44,9,94,10,91,11,4,12,102,12,160,12,163,12,148,12,155,12,210,12,53,13, +94,13,77,13,94,13,113,13,98,13,59,13,242,12,173,12,115,12,49,12,242,11,136,11,1,11,135,10,223,9,16,9, +66,8,92,7,124,6,164,5,158,4,129,3,133,2,193,1,41,1,167,0,79,0,40,0,15,0,243,255,219,255,14,0, +193,0,199,1,1,3,105,4,14,6,12,8,42,10,58,12,96,14,157,16,238,18,72,21,121,23,147,25,173,27,158,29, +96,31,231,32,38,34,65,35,46,36,168,36,175,36,120,36,2,36,66,35,155,34,61,34,189,33,25,33,124,32,203,31, +42,31,170,30,35,30,191,29,121,29,85,29,144,29,217,29,231,29,242,29,236,29,209,29,228,29,48,30,193,30,160,31, +165,32,220,33,105,35,87,37,145,39,232,41,86,44,3,47,234,49,225,52,208,55,168,58,44,61,48,63,219,64,41,66, +225,66,16,67,183,66,180,65,22,64,233,61,34,59,212,55,66,52,176,48,23,45,105,41,178,37,253,33,121,30,17,27, +124,23,11,20,38,17,188,14,196,12,17,11,115,9,36,8,1,7,166,5,22,4,114,2,233,0,159,255,112,254,57,253, +198,251,5,250,42,248,53,246,37,244,39,242,48,240,84,238,202,236,72,235,140,233,199,231,33,230,158,228,73,227,26,226, +19,225,112,224,83,224,83,224,17,224,172,223,71,223,247,222,215,222,220,222,250,222,23,223,32,223,22,223,230,222,187,222, +220,222,25,223,64,223,75,223,11,223,144,222,228,221,185,220,16,219,23,217,215,214,115,212,37,210,52,208,151,206,246,204, +52,203,121,201,238,199,175,198,163,197,170,196,171,195,154,194,175,193,225,192,0,192,117,191,112,191,183,191,114,192,174,193, +79,195,115,197,235,199,109,202,235,204,81,207,181,209,87,212,16,215,116,217,91,219,250,220,125,222,212,223,204,224,87,225, +210,225,119,226,243,226,80,227,211,227,98,228,23,229,29,230,64,231,127,232,37,234,86,236,224,238,92,241,215,243,153,246, +145,249,116,252,234,254,9,1,62,3,100,5,82,7,60,9,238,10,83,12,163,13,185,14,126,15,1,16,54,16,54,16, +250,15,116,15,202,14,233,13,198,12,164,11,181,10,249,9,67,9,144,8,32,8,222,7,137,7,60,7,39,7,48,7, +29,7,248,6,207,6,135,6,66,6,3,6,141,5,23,5,216,4,152,4,82,4,43,4,63,4,150,4,23,5,232,5, +35,7,162,8,112,10,86,12,3,14,219,15,20,18,94,20,138,22,110,24,39,26,254,27,163,29,197,30,133,31,31,32, +188,32,74,33,169,33,247,33,84,34,181,34,232,34,227,34,215,34,176,34,99,34,63,34,73,34,115,34,207,34,49,35, +148,35,37,36,196,36,40,37,62,37,58,37,38,37,193,36,31,36,136,35,31,35,17,35,60,35,71,35,41,35,30,35, +131,35,142,36,23,38,7,40,89,42,2,45,15,48,47,51,245,53,105,56,188,58,16,61,52,63,182,64,124,65,165,65, +115,65,23,65,23,64,31,62,163,59,7,57,124,54,244,51,1,49,168,45,69,42,5,39,251,35,237,32,195,29,254,26, +218,24,241,22,187,20,8,18,41,15,143,12,73,10,251,7,82,5,141,2,31,0,22,254,33,252,224,249,105,247,56,245, +99,243,167,241,192,239,138,237,64,235,11,233,202,230,93,228,179,225,38,223,46,221,157,219,66,218,32,217,29,216,131,215, +125,215,181,215,58,216,63,217,186,218,139,220,70,222,164,223,192,224,170,225,134,226,100,227,23,228,134,228,131,228,6,228, +104,227,160,226,56,225,33,223,222,220,220,218,223,216,124,214,186,211,210,208,249,205,70,203,160,200,23,198,2,196,158,194, +158,193,114,192,79,191,168,190,81,190,50,190,100,190,188,190,51,191,224,191,197,192,200,193,155,194,49,195,181,195,58,196, +22,197,92,198,159,199,248,200,204,202,21,205,127,207,177,209,198,211,8,214,63,216,37,218,171,219,240,220,81,222,238,223, +159,225,70,227,197,228,30,230,121,231,242,232,178,234,197,236,27,239,160,241,33,244,177,246,117,249,34,252,160,254,18,1, +95,3,123,5,118,7,102,9,100,11,60,13,181,14,239,15,30,17,78,18,120,19,122,20,53,21,179,21,34,22,89,22, +28,22,146,21,192,20,179,19,176,18,136,17,40,16,239,14,196,13,165,12,213,11,16,11,75,10,248,9,28,10,101,10, +135,10,129,10,151,10,204,10,2,11,35,11,248,10,205,10,47,11,249,11,195,12,141,13,157,14,5,16,131,17,240,18, +79,20,167,21,13,23,100,24,118,25,69,26,220,26,94,27,8,28,205,28,105,29,166,29,158,29,146,29,122,29,75,29, +12,29,153,28,7,28,135,27,20,27,161,26,21,26,114,25,220,24,67,24,202,23,161,23,155,23,234,23,207,24,223,25, +221,26,237,27,36,29,176,30,119,32,33,34,166,35,36,37,182,38,65,40,102,41,7,42,81,42,108,42,127,42,120,42, +63,42,22,42,73,42,174,42,202,42,107,42,219,41,113,41,104,41,153,41,166,41,171,41,244,41,103,42,199,42,226,42, +226,42,34,43,120,43,152,43,109,43,5,43,183,42,137,42,236,41,164,40,232,38,253,36,49,35,150,33,249,31,28,30, +247,27,147,25,200,22,177,19,165,16,139,13,76,10,254,6,147,3,77,0,90,253,126,250,196,247,68,245,254,242,29,241, +147,239,93,238,132,237,174,236,192,235,229,234,20,234,95,233,207,232,93,232,45,232,255,231,148,231,79,231,96,231,146,231, +233,231,102,232,187,232,194,232,171,232,87,232,149,231,189,230,224,229,190,228,146,227,100,226,239,224,65,223,101,221,130,219, +216,217,66,216,174,214,74,213,38,212,69,211,86,210,23,209,179,207,77,206,20,205,27,204,53,203,123,202,25,202,254,201, +9,202,199,201,22,201,120,200,6,200,185,199,177,199,190,199,200,199,238,199,49,200,137,200,209,200,20,201,166,201,117,202, +73,203,72,204,153,205,37,207,196,208,90,210,192,211,242,212,28,214,71,215,137,216,246,217,94,219,225,220,131,222,190,223, +202,224,34,226,96,227,115,228,180,229,15,231,137,232,57,234,35,236,98,238,217,240,111,243,16,246,155,248,66,251,4,254, +161,0,251,2,200,4,12,6,35,7,6,8,179,8,56,9,121,9,177,9,249,9,34,10,63,10,117,10,215,10,69,11, +125,11,148,11,174,11,204,11,1,12,23,12,248,11,178,11,15,11,103,10,31,10,226,9,145,9,92,9,81,9,173,9, +107,10,49,11,180,11,235,11,37,12,105,12,110,12,62,12,248,11,186,11,123,11,227,10,6,10,47,9,125,8,99,8, +237,8,153,9,93,10,75,11,127,12,44,14,239,15,121,17,10,19,203,20,167,22,90,24,192,25,13,27,76,28,116,29, +141,30,101,31,223,31,28,32,79,32,134,32,133,32,58,32,212,31,119,31,95,31,131,31,160,31,223,31,141,32,168,33, +215,34,191,35,134,36,113,37,129,38,141,39,39,40,93,40,189,40,50,41,114,41,138,41,101,41,33,41,233,40,193,40, +186,40,200,40,31,41,38,42,156,43,62,45,31,47,48,49,128,51,0,54,96,56,118,58,28,60,133,61,238,62,226,63, +27,64,185,63,200,62,115,61,184,59,118,57,230,54,21,52,235,48,131,45,243,41,58,38,38,34,213,29,240,25,147,22, +106,19,113,16,170,13,50,11,19,9,251,6,220,4,220,2,23,1,163,255,45,254,127,252,224,250,103,249,245,247,102,246, +157,244,200,242,33,241,196,239,178,238,153,237,85,236,10,235,205,233,172,232,126,231,14,230,176,228,196,227,59,227,201,226, +76,226,19,226,72,226,139,226,153,226,129,226,92,226,27,226,117,225,87,224,0,223,161,221,78,220,3,219,190,217,128,216, +54,215,223,213,132,212,48,211,237,209,176,208,143,207,157,206,162,205,122,204,58,203,30,202,82,201,149,200,211,199,98,199, +49,199,14,199,214,198,41,198,31,197,18,196,248,194,242,193,43,193,198,192,248,192,99,193,200,193,135,194,140,195,155,196, +245,197,165,199,134,201,137,203,159,205,210,207,15,210,23,212,203,213,78,215,209,216,90,218,239,219,168,221,104,223,22,225, +173,226,5,228,42,229,75,230,132,231,240,232,114,234,239,235,122,237,16,239,216,240,13,243,125,245,240,247,105,250,222,252, +74,255,185,1,36,4,119,6,149,8,122,10,65,12,245,13,158,15,47,17,130,18,146,19,104,20,246,20,80,21,178,21, +29,22,88,22,59,22,199,21,52,21,183,20,57,20,154,19,214,18,3,18,100,17,241,16,111,16,231,15,69,15,117,14, +186,13,242,12,213,11,124,10,255,8,132,7,33,6,141,4,176,2,209,0,90,255,140,254,25,254,222,253,41,254,239,254, +224,255,229,0,3,2,100,3,48,5,119,7,36,10,236,12,160,15,58,18,180,20,23,23,47,25,204,26,40,28,103,29, +135,30,157,31,118,32,208,32,200,32,146,32,72,32,203,31,6,31,28,30,20,29,5,28,62,27,224,26,238,26,90,27, +240,27,172,28,169,29,213,30,29,32,107,33,143,34,125,35,83,36,16,37,213,37,241,38,57,40,58,41,247,41,173,42, +125,43,97,44,31,45,184,45,93,46,254,46,138,47,9,48,123,48,238,48,91,49,216,49,142,50,77,51,229,51,99,52, +200,52,16,53,20,53,177,52,1,52,53,51,123,50,122,49,162,47,70,45,193,42,200,39,103,36,249,32,178,29,191,26, +14,24,122,21,3,19,177,16,156,14,136,12,62,10,4,8,214,5,161,3,163,1,215,255,63,254,244,252,199,251,205,250, +28,250,127,249,211,248,7,248,85,247,205,246,216,245,111,244,16,243,160,241,0,240,94,238,195,236,44,235,171,233,116,232, +134,231,123,230,68,229,34,228,20,227,49,226,168,225,109,225,68,225,240,224,91,224,134,223,118,222,77,221,71,220,153,219, +57,219,238,218,182,218,139,218,71,218,244,217,144,217,9,217,86,216,129,215,157,214,74,213,49,211,229,208,240,206,39,205, +124,203,21,202,7,201,56,200,112,199,168,198,208,197,220,196,14,196,118,195,15,195,9,195,131,195,119,196,149,197,155,198, +229,199,178,201,230,203,113,206,11,209,159,211,62,214,172,216,207,218,146,220,212,221,190,222,121,223,78,224,60,225,178,225, +246,225,166,226,103,227,1,228,165,228,85,229,87,230,188,231,46,233,140,234,233,235,154,237,193,239,3,242,87,244,218,246, +139,249,116,252,76,255,227,1,99,4,173,6,175,8,117,10,240,11,71,13,108,14,16,15,78,15,87,15,62,15,15,15, +161,14,218,13,225,12,230,11,237,10,247,9,38,9,98,8,155,7,43,7,18,7,234,6,170,6,106,6,65,6,58,6, +251,5,88,5,157,4,0,4,97,3,154,2,220,1,108,1,46,1,242,0,145,0,4,0,162,255,151,255,187,255,230,255, +8,0,63,0,164,0,57,1,6,2,248,2,56,4,234,5,181,7,162,9,230,11,18,14,17,16,36,18,51,20,35,22, +189,23,245,24,36,26,67,27,71,28,65,29,232,29,82,30,209,30,118,31,77,32,32,33,212,33,159,34,70,35,167,35, +10,36,118,36,242,36,146,37,55,38,213,38,97,39,243,39,139,40,217,40,224,40,207,40,144,40,63,40,247,39,198,39, +220,39,52,40,196,40,151,41,114,42,95,43,181,44,152,46,206,48,241,50,26,53,151,55,24,58,70,60,54,62,230,63, +79,65,108,66,19,67,31,67,118,66,32,65,50,63,187,60,203,57,111,54,199,50,252,46,22,43,44,39,70,35,84,31, +167,27,127,24,149,21,151,18,168,15,27,13,224,10,200,8,218,6,255,4,94,3,50,2,39,1,26,0,50,255,60,254, +76,253,143,252,216,251,48,251,132,250,164,249,169,248,124,247,14,246,94,244,75,242,39,240,42,238,4,236,199,233,185,231, +220,229,44,228,148,226,21,225,174,223,81,222,44,221,44,220,35,219,78,218,205,217,140,217,108,217,43,217,225,216,178,216, +174,216,0,217,88,217,98,217,123,217,162,217,126,217,228,216,168,215,9,214,120,212,246,210,101,209,178,207,253,205,126,204, +11,203,118,201,208,199,50,198,251,196,99,196,2,196,118,195,209,194,67,194,186,193,19,193,123,192,46,192,80,192,20,193, +149,194,184,196,55,199,192,201,35,204,74,206,57,208,253,209,152,211,44,213,180,214,8,216,80,217,147,218,188,219,243,220, +31,222,31,223,32,224,33,225,24,226,7,227,247,227,31,229,105,230,184,231,66,233,244,234,187,236,196,238,13,241,143,243, +49,246,193,248,65,251,160,253,233,255,47,2,28,4,183,5,91,7,250,8,144,10,72,12,43,14,27,16,195,17,10,19, +250,19,122,20,208,20,253,20,156,20,220,19,239,18,200,17,135,16,25,15,147,13,48,12,204,10,154,9,196,8,214,7, +185,6,186,5,243,4,79,4,121,3,131,2,247,1,226,1,223,1,203,1,188,1,192,1,207,1,232,1,221,1,153,1, +147,1,50,2,62,3,97,4,148,5,25,7,9,9,56,11,163,13,34,16,100,18,121,20,131,22,108,24,31,26,178,27, +108,29,83,31,40,33,219,34,91,36,160,37,215,38,20,40,29,41,121,41,35,41,190,40,123,40,22,40,143,39,233,38, +71,38,243,37,223,37,204,37,143,37,85,37,117,37,174,37,172,37,121,37,45,37,18,37,64,37,107,37,165,37,12,38, +168,38,156,39,159,40,109,41,47,42,42,43,194,44,216,46,236,48,38,51,174,53,84,56,244,58,30,61,168,62,201,63, +98,64,122,64,68,64,168,63,175,62,74,61,75,59,207,56,240,53,177,50,36,47,101,43,174,39,12,36,99,32,196,28, +61,25,232,21,217,18,228,15,2,13,114,10,96,8,155,6,194,4,238,2,81,1,168,255,239,253,76,252,168,250,33,249, +227,247,202,246,160,245,105,244,110,243,192,242,36,242,124,241,169,240,143,239,72,238,195,236,216,234,183,232,175,230,218,228, +50,227,195,225,125,224,91,223,163,222,39,222,100,221,136,220,192,219,1,219,115,218,247,217,105,217,233,216,112,216,45,216, +63,216,77,216,90,216,143,216,193,216,196,216,117,216,225,215,1,215,173,213,26,212,75,210,44,208,68,206,165,204,218,202, +234,200,252,198,48,197,169,195,72,194,19,193,30,192,111,191,15,191,191,190,120,190,144,190,17,191,235,191,22,193,105,194, +234,195,156,197,120,199,109,201,28,203,128,204,251,205,158,207,63,209,191,210,53,212,213,213,135,215,77,217,78,219,74,221, +36,223,248,224,161,226,42,228,182,229,50,231,169,232,73,234,41,236,76,238,177,240,60,243,185,245,42,248,181,250,47,253, +116,255,133,1,101,3,20,5,127,6,174,7,194,8,184,9,191,10,6,12,108,13,208,14,27,16,91,17,181,18,249,19, +12,21,242,21,125,22,199,22,219,22,143,22,37,22,173,21,236,20,251,19,234,18,199,17,159,16,71,15,210,13,113,12, +37,11,238,9,167,8,74,7,226,5,76,4,203,2,176,1,220,0,83,0,10,0,224,255,13,0,152,0,90,1,73,2, +107,3,230,4,163,6,115,8,114,10,118,12,80,14,38,16,235,17,186,19,208,21,251,23,21,26,14,28,207,29,111,31, +206,32,223,33,191,34,78,35,183,35,60,36,149,36,176,36,208,36,185,36,19,36,31,35,76,34,161,33,20,33,197,32, +113,32,234,31,154,31,175,31,206,31,198,31,203,31,253,31,41,32,43,32,11,32,214,31,210,31,7,32,70,32,202,32, +159,33,128,34,140,35,229,36,102,38,231,39,80,41,195,42,87,44,253,45,186,47,94,49,225,50,159,52,127,54,24,56, +92,57,86,58,208,58,142,58,224,57,249,56,99,55,28,53,124,50,122,47,73,44,237,40,22,37,31,33,93,29,162,25, +227,21,40,18,166,14,155,11,248,8,195,6,241,4,114,3,96,2,112,1,116,0,140,255,129,254,96,253,119,252,143,251, +143,250,154,249,181,248,226,247,226,246,128,245,224,243,25,242,75,240,128,238,136,236,97,234,33,232,218,229,160,227,135,225, +214,223,196,222,47,222,237,221,217,221,233,221,52,222,144,222,214,222,9,223,20,223,4,223,17,223,85,223,192,223,33,224, +105,224,156,224,166,224,119,224,252,223,60,223,52,222,182,220,248,218,64,217,83,215,39,213,5,211,24,209,93,207,151,205, +149,203,152,201,16,200,31,199,81,198,85,197,140,196,21,196,184,195,114,195,72,195,121,195,68,196,139,197,38,199,212,200, +158,202,225,204,74,207,110,209,100,211,12,213,99,214,127,215,73,216,13,217,226,217,128,218,8,219,166,219,133,220,202,221, +31,223,81,224,93,225,50,226,44,227,140,228,253,229,51,231,68,232,175,233,203,235,76,238,238,240,189,243,202,246,18,250, +63,253,26,0,183,2,20,5,55,7,16,9,125,10,191,11,242,12,237,13,196,14,124,15,250,15,66,16,109,16,174,16, +14,17,89,17,118,17,105,17,57,17,237,16,136,16,1,16,33,15,221,13,140,12,103,11,82,10,34,9,235,7,225,6, +224,5,199,4,216,3,58,3,226,2,191,2,198,2,247,2,34,3,76,3,190,3,51,4,92,4,86,4,35,4,4,4, +68,4,193,4,107,5,42,6,2,7,57,8,165,9,48,11,31,13,110,15,8,18,168,20,239,22,29,25,73,27,29,29, +148,30,188,31,194,32,229,33,253,34,222,35,130,36,240,36,49,37,234,36,245,35,175,34,68,33,237,31,219,30,205,29, +183,28,181,27,221,26,98,26,45,26,24,26,39,26,70,26,162,26,93,27,87,28,167,29,69,31,242,32,162,34,45,36, +145,37,59,39,60,41,64,43,18,45,165,46,19,48,131,49,244,50,67,52,140,53,254,54,121,56,235,57,84,59,124,60, +69,61,145,61,68,61,151,60,146,59,9,58,27,56,240,53,137,51,203,48,126,45,199,41,21,38,148,34,32,31,176,27, +157,24,1,22,136,19,49,17,239,14,155,12,113,10,122,8,171,6,36,5,187,3,112,2,74,1,245,255,170,254,167,253, +171,252,200,251,255,250,25,250,30,249,231,247,115,246,253,244,92,243,121,241,113,239,103,237,154,235,1,234,94,232,169,230, +24,229,246,227,14,227,0,226,9,225,72,224,174,223,94,223,16,223,123,222,206,221,54,221,238,220,235,220,216,220,220,220, +254,220,238,220,164,220,5,220,229,218,125,217,45,216,19,215,231,213,97,212,182,210,28,209,97,207,107,205,108,203,142,201, +246,199,216,198,2,198,21,197,51,196,118,195,178,194,238,193,42,193,133,192,88,192,172,192,118,193,181,194,33,196,171,197, +122,199,157,201,7,204,111,206,160,208,163,210,123,212,34,214,108,215,60,216,220,216,132,217,95,218,117,219,132,220,172,221, +33,223,161,224,22,226,117,227,189,228,57,230,194,231,20,233,68,234,92,235,155,236,2,238,79,239,212,240,154,242,61,244, +18,246,80,248,179,250,49,253,205,255,148,2,121,5,42,8,137,10,165,12,173,14,200,16,155,18,218,19,178,20,76,21, +204,21,25,22,16,22,235,21,175,21,30,21,70,20,59,19,246,17,100,16,153,14,231,12,80,11,165,9,253,7,109,6, +7,5,246,3,36,3,107,2,187,1,6,1,98,0,240,255,174,255,145,255,179,255,6,0,67,0,125,0,236,0,119,1, +26,2,204,2,131,3,146,4,4,6,152,7,104,9,127,11,187,13,254,15,34,18,67,20,134,22,238,24,130,27,253,29, +9,32,118,33,38,34,146,34,6,35,13,35,153,34,255,33,84,33,185,32,16,32,29,31,9,30,42,29,182,28,113,28, +39,28,64,28,233,28,252,29,84,31,123,32,108,33,137,34,180,35,235,36,40,38,4,39,130,39,214,39,23,40,104,40, +148,40,163,40,35,41,46,42,132,43,215,44,225,45,206,46,220,47,1,49,63,50,165,51,50,53,220,54,145,56,17,58, +11,59,148,59,247,59,55,60,57,60,172,59,98,58,199,56,239,54,102,52,56,49,203,45,95,42,39,39,15,36,191,32, +26,29,115,25,29,22,9,19,22,16,78,13,251,10,82,9,2,8,197,6,160,5,104,4,29,3,212,1,99,0,209,254, +62,253,191,251,113,250,247,248,41,247,107,245,208,243,110,242,92,241,22,240,93,238,123,236,167,234,238,232,25,231,14,229, +20,227,112,225,99,224,188,223,22,223,139,222,21,222,167,221,140,221,144,221,89,221,29,221,18,221,48,221,22,221,150,220, +58,220,32,220,247,219,195,219,84,219,115,218,80,217,11,216,162,214,245,212,239,210,208,208,179,206,139,204,95,202,36,200, +25,198,150,196,132,195,166,194,242,193,168,193,6,194,168,194,241,194,220,194,204,194,248,194,83,195,224,195,170,196,150,197, +192,198,65,200,205,201,37,203,85,204,128,205,152,206,99,207,18,208,12,209,71,210,163,211,32,213,173,214,32,216,111,217, +243,218,195,220,124,222,27,224,201,225,117,227,45,229,231,230,161,232,122,234,85,236,84,238,172,240,48,243,220,245,182,248, +159,251,160,254,134,1,13,4,78,6,119,8,195,10,16,13,12,15,235,16,183,18,91,20,17,22,146,23,133,24,71,25, +15,26,184,26,249,26,192,26,99,26,220,25,232,24,164,23,34,22,173,20,129,19,37,18,86,16,92,14,93,12,111,10, +144,8,173,6,220,4,46,3,160,1,30,0,188,254,189,253,1,253,87,252,246,251,239,251,10,252,46,252,109,252,13,253, +51,254,205,255,199,1,231,3,26,6,125,8,251,10,118,13,255,15,152,18,21,21,97,23,151,25,188,27,174,29,104,31, +203,32,178,33,25,34,9,34,239,33,28,34,48,34,226,33,61,33,151,32,126,32,184,32,156,32,35,32,146,31,59,31, +58,31,59,31,42,31,47,31,83,31,182,31,63,32,216,32,175,33,184,34,180,35,60,36,30,36,203,35,119,35,3,35, +154,34,71,34,44,34,126,34,24,35,5,36,74,37,176,38,104,40,122,42,174,44,46,47,218,49,68,52,57,54,162,55, +170,56,130,57,20,58,106,58,129,58,81,58,219,57,216,56,24,55,192,52,52,50,232,47,163,45,218,42,198,39,236,36, +88,34,162,31,103,28,231,24,165,21,161,18,173,15,222,12,78,10,228,7,162,5,127,3,16,1,101,254,18,252,24,250, +65,248,135,246,183,244,234,242,80,241,198,239,100,238,72,237,26,236,166,234,42,233,222,231,177,230,174,229,217,228,218,227, +223,226,114,226,99,226,97,226,81,226,18,226,182,225,46,225,117,224,235,223,142,223,81,223,101,223,146,223,207,223,57,224, +102,224,70,224,23,224,202,223,110,223,15,223,146,222,223,221,226,220,186,219,116,218,253,216,120,215,217,213,38,212,179,210, +101,209,241,207,46,206,21,204,6,202,64,200,177,198,109,197,88,196,92,195,174,194,57,194,228,193,209,193,15,194,162,194, +107,195,106,196,225,197,181,199,188,201,235,203,232,205,153,207,69,209,244,210,151,212,50,214,151,215,199,216,5,218,42,219, +242,219,203,220,253,221,37,223,64,224,120,225,170,226,4,228,196,229,202,231,18,234,157,236,82,239,40,242,10,245,19,248, +101,251,185,254,166,1,6,4,25,6,47,8,46,10,221,11,48,13,60,14,35,15,217,15,119,16,74,17,45,18,208,18, +26,19,43,19,107,19,163,19,52,19,81,18,97,17,136,16,213,15,206,14,58,13,170,11,73,10,246,8,175,7,96,6, +53,5,89,4,165,3,8,3,107,2,198,1,85,1,48,1,39,1,236,0,134,0,123,0,211,0,24,1,37,1,19,1, +52,1,180,1,55,2,180,2,143,3,225,4,141,6,125,8,180,10,45,13,160,15,254,17,99,20,157,22,165,24,154,26, +98,28,8,30,148,31,212,32,217,33,174,34,12,35,246,34,173,34,38,34,102,33,168,32,216,31,203,30,159,29,112,28, +140,27,72,27,48,27,182,26,25,26,211,25,22,26,186,26,104,27,26,28,13,29,83,30,162,31,204,32,41,34,201,35, +70,37,153,38,190,39,160,40,114,41,50,42,1,43,52,44,112,45,108,46,121,47,179,48,1,50,90,51,200,52,72,54, +151,55,154,56,74,57,166,57,252,57,80,58,90,58,28,58,101,57,41,56,180,54,226,52,120,50,107,47,213,43,75,40, +12,37,236,33,17,31,89,28,111,25,82,22,229,18,87,15,42,12,119,9,3,7,154,4,74,2,64,0,127,254,32,253, +246,251,160,250,80,249,56,248,83,247,187,246,11,246,247,244,205,243,152,242,53,241,135,239,115,237,92,235,175,233,71,232, +234,230,171,229,222,228,162,228,176,228,189,228,174,228,167,228,198,228,253,228,92,229,176,229,151,229,55,229,215,228,120,228, +252,227,72,227,132,226,189,225,211,224,224,223,192,222,100,221,56,220,65,219,74,218,30,217,128,215,172,213,192,211,125,209, +241,206,67,204,203,201,221,199,52,198,200,196,172,195,139,194,123,193,174,192,39,192,24,192,128,192,106,193,189,194,251,195, +59,197,185,198,81,200,33,202,32,204,52,206,92,208,82,210,62,212,74,214,232,215,238,216,169,217,89,218,51,219,249,219, +152,220,94,221,63,222,55,223,71,224,37,225,232,225,215,226,252,227,112,229,40,231,253,232,247,234,62,237,174,239,228,241, +225,243,244,245,34,248,87,250,130,252,170,254,11,1,168,3,61,6,121,8,51,10,189,11,78,13,193,14,222,15,116,16, +215,16,73,17,86,17,231,16,69,16,124,15,206,14,46,14,78,13,79,12,44,11,230,9,189,8,147,7,108,6,118,5, +128,4,118,3,137,2,252,1,210,1,169,1,129,1,109,1,55,1,8,1,254,0,246,0,32,1,112,1,159,1,177,1, +203,1,23,2,125,2,215,2,82,3,253,3,209,4,252,5,106,7,248,8,180,10,130,12,63,14,237,15,159,17,73,19, +207,20,72,22,163,23,165,24,101,25,235,25,27,26,17,26,16,26,92,26,218,26,37,27,97,27,198,27,25,28,94,28, +204,28,97,29,48,30,59,31,93,32,164,33,3,35,28,36,223,36,138,37,54,38,16,39,39,40,23,41,195,41,75,42, +161,42,226,42,249,42,177,42,108,42,124,42,202,42,78,43,250,43,225,44,13,46,32,47,2,48,249,48,37,50,143,51, +40,53,181,54,22,56,100,57,189,58,224,59,126,60,177,60,142,60,30,60,102,59,249,57,162,55,190,52,118,49,219,45, +65,42,190,38,57,35,192,31,113,28,69,25,25,22,232,18,226,15,51,13,235,10,1,9,63,7,142,5,15,4,159,2, +9,1,118,255,19,254,245,252,53,252,148,251,184,250,128,249,0,248,110,246,182,244,182,242,183,240,245,238,159,237,220,236, +60,236,66,235,6,234,222,232,33,232,166,231,7,231,108,230,252,229,173,229,110,229,235,228,23,228,55,227,89,226,162,225, +25,225,151,224,16,224,80,223,119,222,234,221,74,221,46,220,189,218,23,217,105,215,200,213,235,211,198,209,145,207,106,205, +98,203,136,201,216,199,65,198,196,196,130,195,166,194,54,194,249,193,230,193,18,194,108,194,253,194,173,195,31,196,102,196, +212,196,149,197,143,198,76,199,201,199,132,200,163,201,45,203,221,204,49,206,82,207,141,208,201,209,7,211,70,212,140,213, +231,214,58,216,139,217,188,218,187,219,1,221,195,222,165,224,93,226,222,227,102,229,28,231,224,232,182,234,153,236,125,238, +104,240,102,242,180,244,37,247,100,249,202,251,111,254,228,0,13,3,245,4,208,6,192,8,124,10,16,12,148,13,197,14, +160,15,83,16,26,17,238,17,83,18,59,18,247,17,151,17,20,17,73,16,84,15,129,14,168,13,203,12,252,11,228,10, +141,9,33,8,173,6,164,5,20,5,130,4,10,4,243,3,243,3,195,3,106,3,224,2,71,2,242,1,199,1,171,1, +194,1,229,1,46,2,204,2,96,3,12,4,76,5,221,6,117,8,10,10,154,11,76,13,4,15,164,16,81,18,12,20, +218,21,172,23,114,25,37,27,87,28,5,29,180,29,104,30,62,31,87,32,59,33,227,33,166,34,127,35,55,36,118,36, +110,36,148,36,165,36,119,36,40,36,186,35,117,35,105,35,94,35,112,35,174,35,241,35,33,36,73,36,135,36,174,36, +191,36,1,37,59,37,79,37,181,37,148,38,206,39,71,41,189,42,1,44,38,45,131,46,116,48,236,50,115,53,184,55, +233,57,33,60,27,62,157,63,146,64,20,65,56,65,150,64,30,63,77,61,58,59,205,56,250,53,222,50,202,47,145,44, +14,41,150,37,26,34,171,30,121,27,21,24,147,20,121,17,202,14,133,12,111,10,62,8,62,6,120,4,180,2,61,1, +77,0,175,255,253,254,241,253,150,252,43,251,243,249,185,248,42,247,156,245,47,244,147,242,214,240,17,239,86,237,178,235, +201,233,155,231,185,229,48,228,164,226,252,224,101,223,254,221,206,220,197,219,193,218,248,217,143,217,0,217,32,216,116,215, +25,215,217,214,141,214,72,214,67,214,31,214,125,213,190,212,51,212,224,211,135,211,204,210,225,209,51,209,159,208,187,207, +102,206,247,204,186,203,166,202,171,201,162,200,129,199,141,198,213,197,3,197,221,195,177,194,216,193,44,193,172,192,121,192, +130,192,26,193,83,194,182,195,87,197,55,199,29,201,47,203,25,205,157,206,51,208,243,209,201,211,157,213,0,215,28,216, +84,217,164,218,70,220,32,222,201,223,115,225,119,227,139,229,27,231,45,232,100,233,253,234,187,236,166,238,223,240,79,243, +202,245,60,248,184,250,114,253,151,0,199,3,108,6,167,8,226,10,49,13,117,15,84,17,184,18,239,19,38,21,126,22, +245,23,51,25,2,26,137,26,10,27,134,27,222,27,0,28,225,27,191,27,165,27,0,27,204,25,69,24,43,22,230,19, +0,18,63,16,141,14,210,12,249,10,81,9,205,7,91,6,52,5,55,4,103,3,199,2,24,2,118,1,239,0,124,0, +51,0,212,255,74,255,233,254,220,254,44,255,176,255,69,0,56,1,197,2,194,4,219,6,227,8,23,11,185,13,167,16, +87,19,50,21,110,22,192,23,82,25,220,26,5,28,172,28,67,29,54,30,58,31,203,31,254,31,69,32,177,32,7,33, +236,32,52,32,84,31,146,30,209,29,55,29,174,28,9,28,128,27,52,27,41,27,50,27,1,27,204,26,155,26,56,26, +252,25,5,26,65,26,214,26,128,27,42,28,8,29,220,29,171,30,215,31,122,33,139,35,223,37,93,40,40,43,45,46, +27,49,189,51,39,54,95,56,4,58,234,58,48,59,245,58,105,58,127,57,45,56,148,54,129,52,254,49,105,47,198,44, +3,42,235,38,84,35,190,31,155,28,197,25,223,22,159,19,102,16,170,13,53,11,0,9,82,7,41,6,81,5,128,4, +157,3,208,2,5,2,18,1,239,255,165,254,72,253,220,251,100,250,4,249,191,247,40,246,240,243,164,241,194,239,247,237, +42,236,148,234,85,233,153,232,8,232,55,231,82,230,141,229,8,229,166,228,41,228,234,227,11,228,51,228,108,228,151,228, +135,228,126,228,132,228,130,228,140,228,155,228,163,228,93,228,157,227,146,226,81,225,18,224,207,222,242,220,138,218,16,216, +145,213,19,211,146,208,54,206,87,204,167,202,188,200,214,198,58,197,236,195,204,194,193,193,229,192,75,192,2,192,22,192, +133,192,118,193,230,194,103,196,203,197,124,199,175,201,238,203,252,205,7,208,2,210,208,211,71,213,63,214,31,215,43,216, +84,217,198,218,89,220,205,221,75,223,174,224,219,225,28,227,133,228,239,229,41,231,63,232,134,233,27,235,224,236,164,238, +129,240,210,242,67,245,134,247,3,250,145,252,217,254,10,1,42,3,111,5,212,7,187,9,58,11,161,12,199,13,216,14, +246,15,240,16,211,17,188,18,147,19,29,20,72,20,102,20,122,20,46,20,119,19,116,18,21,17,51,15,243,12,200,10, +223,8,243,6,184,4,88,2,101,0,15,255,5,254,246,252,246,251,132,251,166,251,215,251,29,252,162,252,65,253,228,253, +91,254,166,254,225,254,222,254,209,254,11,255,108,255,14,0,241,0,220,1,14,3,202,4,236,6,30,9,29,11,11,13, +15,15,6,17,226,18,205,20,218,22,204,24,136,26,70,28,233,29,112,31,36,33,186,34,237,35,231,36,145,37,234,37, +20,38,236,37,47,37,171,35,174,33,199,31,248,29,23,28,59,26,196,24,34,24,230,23,173,23,19,24,24,25,62,26, +156,27,36,29,134,30,179,31,211,32,48,34,184,35,66,37,230,38,154,40,93,42,78,44,80,46,64,48,39,50,34,52, +47,54,14,56,209,57,204,59,218,61,130,63,142,64,1,65,236,64,160,64,63,64,36,63,230,60,249,57,211,54,176,51, +126,48,14,45,179,41,130,38,46,35,242,31,249,28,35,26,102,23,150,20,200,17,37,15,161,12,157,10,74,9,63,8, +46,7,252,5,235,4,30,4,68,3,137,2,248,1,33,1,52,0,65,255,243,253,133,252,12,251,78,249,82,247,40,245, +3,243,243,240,205,238,207,236,47,235,163,233,253,231,80,230,182,228,95,227,109,226,187,225,7,225,107,224,25,224,35,224, +165,224,82,225,191,225,29,226,127,226,165,226,156,226,124,226,35,226,113,225,97,224,234,222,11,221,14,219,35,217,6,215, +139,212,208,209,4,207,41,204,65,201,198,198,214,196,18,195,182,193,190,192,207,191,66,191,34,191,54,191,152,191,246,191, +89,192,28,193,212,193,120,194,103,195,136,196,252,197,192,199,106,201,5,203,134,204,173,205,173,206,175,207,137,208,48,209, +224,209,194,210,196,211,231,212,55,214,188,215,154,217,178,219,174,221,117,223,43,225,247,226,169,228,43,230,214,231,155,233, +63,235,5,237,11,239,61,241,126,243,177,245,39,248,14,251,8,254,200,0,56,3,134,5,225,7,37,10,51,12,229,13, +25,15,12,16,210,16,94,17,215,17,46,18,95,18,145,18,193,18,199,18,111,18,198,17,2,17,32,16,38,15,254,13, +130,12,5,11,172,9,81,8,18,7,227,5,151,4,67,3,7,2,6,1,45,0,71,255,125,254,8,254,238,253,13,254, +40,254,31,254,247,253,255,253,62,254,67,254,92,254,253,254,218,255,23,1,205,2,121,4,108,6,237,8,114,11,221,13, +53,16,78,18,80,20,94,22,92,24,13,26,108,27,192,28,254,29,249,30,207,31,146,32,86,33,38,34,225,34,155,35, +115,36,63,37,228,37,118,38,242,38,42,39,59,39,100,39,136,39,154,39,160,39,104,39,9,39,157,38,8,38,97,37, +180,36,5,36,86,35,99,34,81,33,133,32,229,31,84,31,8,31,71,31,19,32,54,33,183,34,176,36,57,39,121,42, +255,45,98,49,219,52,82,56,120,59,16,62,218,63,12,65,189,65,200,65,90,65,86,64,170,62,154,60,237,57,167,54, +81,51,21,48,6,45,253,41,144,38,236,34,77,31,188,27,117,24,135,21,213,18,70,16,214,13,182,11,229,9,34,8, +126,6,40,5,232,3,107,2,208,0,101,255,20,254,184,252,75,251,199,249,78,248,245,246,178,245,127,244,66,243,238,241, +78,240,49,238,4,236,13,234,53,232,172,230,128,229,166,228,19,228,144,227,73,227,89,227,85,227,55,227,33,227,25,227, +57,227,86,227,97,227,131,227,148,227,113,227,23,227,174,226,112,226,20,226,101,225,111,224,249,222,17,221,207,218,10,216, +47,213,144,210,242,207,108,205,48,203,58,201,119,199,190,197,238,195,18,194,121,192,111,191,175,190,249,189,132,189,116,189, +139,189,147,189,251,189,50,191,218,192,155,194,141,196,173,198,3,201,91,203,97,205,46,207,224,208,131,210,25,212,117,213, +170,214,221,215,251,216,51,218,159,219,20,221,120,222,200,223,237,224,180,225,76,226,39,227,70,228,149,229,243,230,9,232, +53,233,20,235,136,237,75,240,40,243,18,246,16,249,192,251,59,254,247,0,157,3,208,5,203,7,222,9,52,12,134,14, +123,16,26,18,117,19,209,20,65,22,95,23,4,24,108,24,180,24,144,24,166,23,74,22,6,21,225,19,147,18,212,16, +180,14,110,12,12,10,204,7,174,5,101,3,71,1,186,255,161,254,214,253,59,253,242,252,42,253,131,253,147,253,103,253, +105,253,226,253,105,254,150,254,141,254,176,254,109,255,142,0,129,1,122,2,226,3,177,5,163,7,138,9,161,11,13,14, +141,16,255,18,65,21,49,23,211,24,35,26,117,27,218,28,217,29,164,30,196,31,36,33,125,34,167,35,165,36,157,37, +128,38,32,39,81,39,18,39,106,38,65,37,202,35,49,34,97,32,120,30,120,28,132,26,15,25,219,23,122,22,47,21, +97,20,66,20,156,20,50,21,78,22,6,24,45,26,151,28,243,30,123,33,150,36,14,40,196,43,178,47,155,51,106,55, +232,58,220,61,61,64,243,65,50,67,54,68,212,68,215,68,27,68,178,66,212,64,140,62,201,59,150,56,88,53,121,50, +200,47,24,45,132,42,248,39,128,37,15,35,82,32,80,29,38,26,237,22,234,19,62,17,231,14,203,12,195,10,246,8, +113,7,4,6,152,4,41,3,180,1,22,0,87,254,206,252,125,251,62,250,239,248,86,247,172,245,31,244,104,242,175,240, +21,239,148,237,87,236,239,234,15,233,65,231,169,229,25,228,124,226,216,224,174,223,75,223,93,223,141,223,177,223,232,223, +108,224,41,225,16,226,248,226,175,227,81,228,218,228,38,229,41,229,190,228,213,227,138,226,5,225,95,223,126,221,94,219, +14,217,131,214,188,211,205,208,241,205,32,203,21,200,45,197,191,194,114,192,78,190,132,188,23,187,53,186,169,185,68,185, +73,185,175,185,113,186,177,187,47,189,192,190,123,192,109,194,118,196,125,198,163,200,158,202,8,204,80,205,200,206,73,208, +212,209,89,211,234,212,144,214,15,216,161,217,119,219,79,221,55,223,48,225,15,227,234,228,185,230,144,232,161,234,210,236, +252,238,14,241,21,243,111,245,79,248,71,251,195,253,228,255,22,2,67,4,98,6,164,8,230,10,248,12,219,14,210,16, +3,19,239,20,116,22,231,23,38,25,53,26,24,27,93,27,46,27,9,27,207,26,3,26,93,24,83,22,76,20,237,17, +74,15,193,12,69,10,5,8,34,6,113,4,246,2,192,1,215,0,40,0,129,255,2,255,234,254,57,255,163,255,240,255, +117,0,74,1,5,2,165,2,86,3,35,4,66,5,193,6,129,8,54,10,158,11,2,13,148,14,25,16,115,17,132,18, +49,19,134,19,173,19,226,19,28,20,73,20,137,20,186,20,185,20,157,20,139,20,180,20,239,20,36,21,154,21,52,22, +189,22,68,23,178,23,16,24,74,24,64,24,59,24,48,24,39,24,157,24,103,25,39,26,248,26,246,27,75,29,204,30, +28,32,102,33,150,34,97,35,247,35,103,36,122,36,45,36,194,35,149,35,199,35,54,36,191,36,115,37,113,38,125,39, +111,40,109,41,154,42,31,44,186,45,242,46,20,48,113,49,195,50,216,51,159,52,73,53,22,54,199,54,66,55,119,55, +241,54,144,53,137,51,16,49,91,46,94,43,27,40,168,36,10,33,117,29,228,25,68,22,194,18,87,15,20,12,49,9, +157,6,82,4,59,2,79,0,172,254,23,253,131,251,47,250,10,249,73,248,23,248,10,248,19,248,93,248,173,248,224,248, +231,248,161,248,13,248,87,247,159,246,198,245,216,244,17,244,98,243,136,242,80,241,229,239,204,238,29,238,134,237,208,236, +241,235,34,235,111,234,168,233,210,232,218,231,196,230,183,229,132,228,78,227,80,226,89,225,128,224,177,223,185,222,241,221, +42,221,223,219,48,218,81,216,107,214,143,212,123,210,78,208,79,206,127,204,232,202,110,201,244,199,183,198,244,197,150,197, +100,197,104,197,193,197,73,198,237,198,114,199,160,199,221,199,84,200,246,200,8,202,109,203,195,204,19,206,131,207,45,209, +3,211,183,212,29,214,82,215,174,216,56,218,149,219,190,220,238,221,79,223,220,224,57,226,95,227,173,228,72,230,61,232, +81,234,50,236,213,237,47,239,160,240,141,242,109,244,243,245,145,247,131,249,195,251,221,253,127,255,4,1,132,2,208,3, +240,4,214,5,195,6,221,7,184,8,53,9,112,9,108,9,93,9,94,9,82,9,32,9,196,8,82,8,22,8,77,8, +153,8,106,8,241,7,131,7,11,7,99,6,92,5,9,4,192,2,157,1,150,0,128,255,122,254,208,253,28,253,8,252, +254,250,37,250,116,249,238,248,111,248,9,248,215,247,229,247,90,248,60,249,167,250,162,252,207,254,7,1,99,3,14,6, +29,9,50,12,44,15,42,18,205,20,217,22,131,24,231,25,250,26,156,27,220,27,224,27,161,27,121,27,150,27,135,27, +89,27,116,27,214,27,97,28,219,28,37,29,116,29,215,29,33,30,60,30,56,30,55,30,96,30,233,30,200,31,195,32, +197,33,193,34,202,35,253,36,75,38,174,39,14,41,107,42,5,44,148,45,218,46,35,48,75,49,36,50,214,50,58,51, +108,51,160,51,158,51,140,51,146,51,110,51,25,51,198,50,146,50,117,50,65,50,240,49,171,49,151,49,170,49,163,49, +119,49,28,49,102,48,118,47,99,46,25,45,177,43,44,42,120,40,158,38,178,36,205,34,215,32,181,30,112,28,240,25, +79,23,202,20,76,18,161,15,176,12,185,9,32,7,160,4,219,1,17,255,162,252,173,250,8,249,135,247,65,246,66,245, +138,244,3,244,104,243,180,242,243,241,57,241,181,240,75,240,242,239,201,239,77,239,36,238,179,236,49,235,166,233,45,232, +231,230,236,229,26,229,100,228,190,227,192,226,97,225,3,224,176,222,57,221,159,219,39,218,20,217,24,216,209,214,123,213, +78,212,253,210,116,209,25,208,240,206,215,205,252,204,60,204,108,203,164,202,210,201,247,200,31,200,37,199,59,198,124,197, +228,196,218,196,88,197,230,197,102,198,221,198,110,199,46,200,232,200,153,201,103,202,89,203,102,204,103,205,98,206,102,207, +85,208,67,209,40,210,232,210,168,211,82,212,218,212,142,213,133,214,170,215,225,216,238,217,242,218,65,220,243,221,240,223, +9,226,30,228,52,230,90,232,174,234,71,237,25,240,220,242,85,245,190,247,100,250,32,253,182,255,62,2,213,4,44,7, +25,9,217,10,75,12,44,13,165,13,243,13,89,14,207,14,231,14,142,14,223,13,9,13,92,12,138,11,65,10,237,8, +223,7,20,7,87,6,92,5,111,4,223,3,129,3,80,3,76,3,91,3,111,3,111,3,86,3,23,3,195,2,161,2, +120,2,209,1,208,0,199,255,209,254,255,253,99,253,13,253,251,252,68,253,246,253,223,254,246,255,92,1,254,2,162,4, +41,6,198,7,170,9,151,11,88,13,11,15,211,16,173,18,131,20,145,22,7,25,136,27,189,29,177,31,148,33,152,35, +165,37,124,39,18,41,125,42,196,43,141,44,187,44,202,44,207,44,132,44,247,43,51,43,108,42,194,41,255,40,93,40, +25,40,190,39,17,39,107,38,58,38,138,38,244,38,82,39,220,39,164,40,111,41,228,41,23,42,137,42,123,43,193,44, +244,45,26,47,183,48,163,50,92,52,215,53,31,55,89,56,175,57,16,59,84,60,27,61,64,61,58,61,51,61,237,60, +33,60,170,58,199,56,163,54,30,52,37,49,170,45,253,41,135,38,5,35,65,31,140,27,47,24,22,21,251,17,10,15, +157,12,126,10,138,8,3,7,247,5,38,5,77,4,101,3,123,2,141,1,218,0,121,0,53,0,235,255,121,255,208,254, +209,253,44,252,29,250,13,248,225,245,120,243,215,240,66,238,29,236,94,234,174,232,178,230,123,228,183,226,117,225,52,224, +225,222,192,221,35,221,215,220,80,220,186,219,61,219,173,218,81,218,25,218,158,217,245,216,137,216,198,216,73,217,80,217, +251,216,98,216,96,215,84,214,57,213,188,211,227,209,180,207,76,205,200,202,43,200,174,197,103,195,57,193,76,191,216,189, +235,188,83,188,255,187,43,188,179,188,89,189,59,190,90,191,127,192,159,193,238,194,101,196,188,197,25,199,195,200,139,202, +55,204,146,205,184,206,27,208,167,209,18,211,88,212,123,213,191,214,40,216,95,217,98,218,106,219,218,220,181,222,87,224, +184,225,90,227,100,229,180,231,166,233,23,235,200,236,195,238,190,240,214,242,250,244,43,247,83,249,100,251,202,253,114,0, +219,2,240,4,194,6,148,8,118,10,1,12,57,13,64,14,32,15,237,15,94,16,112,16,146,16,188,16,168,16,44,16, +80,15,82,14,27,13,150,11,253,9,76,8,116,6,135,4,170,2,19,1,206,255,201,254,205,253,174,252,196,251,80,251, +46,251,60,251,93,251,193,251,133,252,83,253,19,254,206,254,136,255,104,0,60,1,10,2,70,3,244,4,226,6,236,8, +10,11,115,13,13,16,167,18,61,21,172,23,30,26,136,28,136,30,63,32,159,33,124,34,33,35,127,35,135,35,137,35, +136,35,157,35,222,35,40,36,144,36,255,36,110,37,3,38,129,38,195,38,188,38,100,38,29,38,222,37,90,37,212,36, +142,36,140,36,172,36,197,36,22,37,188,37,170,38,237,39,76,41,203,42,127,44,246,45,64,47,191,48,47,50,78,51, +38,52,177,52,200,52,117,52,52,52,60,52,88,52,112,52,87,52,59,52,176,52,168,53,168,54,103,55,235,55,114,56, +236,56,30,57,11,57,197,56,85,56,123,55,16,54,84,52,57,50,173,47,197,44,105,41,219,37,82,34,165,30,29,27, +208,23,111,20,227,16,16,13,50,9,166,5,55,2,219,254,198,251,30,249,20,247,112,245,241,243,174,242,167,241,19,241, +246,240,230,240,217,240,187,240,122,240,61,240,191,239,216,238,178,237,97,236,60,235,55,234,220,232,98,231,18,230,212,228, +122,227,221,225,94,224,85,223,121,222,160,221,204,220,31,220,200,219,124,219,10,219,135,218,204,217,245,216,76,216,153,215, +133,214,254,212,64,211,142,209,249,207,106,206,199,204,59,203,2,202,246,200,223,199,167,198,134,197,210,196,63,196,128,195, +200,194,62,194,26,194,81,194,133,194,225,194,106,195,226,195,139,196,121,197,160,198,19,200,133,201,204,202,21,204,111,205, +209,206,3,208,35,209,116,210,181,211,236,212,100,214,9,216,196,217,81,219,147,220,255,221,205,223,255,225,86,228,89,230, +76,232,131,234,194,236,19,239,123,241,208,243,238,245,165,247,104,249,170,251,216,253,136,255,239,0,84,2,229,3,127,5, +17,7,165,8,4,10,53,11,83,12,38,13,195,13,94,14,208,14,3,15,20,15,247,14,155,14,66,14,20,14,196,13, +21,13,36,12,90,11,255,10,147,10,211,9,73,9,252,8,158,8,45,8,144,7,195,6,226,5,24,5,153,4,23,4, +62,3,62,2,36,1,230,255,126,254,217,252,44,251,148,249,16,248,205,246,217,245,103,245,178,245,132,246,168,247,26,249, +0,251,71,253,113,255,174,1,99,4,38,7,242,9,6,13,22,16,246,18,134,21,196,23,10,26,51,28,7,30,153,31, +220,32,238,33,199,34,34,35,252,34,57,34,5,33,5,32,54,31,89,30,136,29,180,28,216,27,39,27,204,26,217,26, +54,27,217,27,212,28,12,30,92,31,186,32,6,34,246,34,167,35,191,36,82,38,249,39,164,41,64,43,204,44,125,46, +33,48,148,49,249,50,64,52,99,53,106,54,77,55,252,55,48,56,243,55,181,55,135,55,47,55,120,54,135,53,184,52, +0,52,22,51,204,49,77,48,28,47,9,46,137,44,213,42,54,41,182,39,45,38,49,36,253,33,5,32,19,30,252,27, +159,25,11,23,166,20,105,18,58,16,59,14,77,12,126,10,202,8,6,7,90,5,111,3,243,0,140,254,145,252,233,250, +159,249,129,248,137,247,12,247,22,247,57,247,232,246,39,246,102,245,175,244,208,243,204,242,189,241,151,240,51,239,171,237, +36,236,161,234,71,233,23,232,242,230,237,229,251,228,48,228,176,227,42,227,118,226,201,225,29,225,74,224,79,223,77,222, +74,221,49,220,10,219,202,217,93,216,222,214,58,213,117,211,158,209,138,207,103,205,126,203,190,201,45,200,192,198,99,197, +30,196,230,194,248,193,154,193,173,193,40,194,212,194,147,195,198,196,93,198,22,200,217,201,66,203,88,204,130,205,213,206, +72,208,120,209,54,210,225,210,108,211,193,211,41,212,167,212,95,213,114,214,169,215,15,217,161,218,45,220,192,221,93,223, +255,224,162,226,38,228,142,229,230,230,72,232,218,233,180,235,248,237,96,240,117,242,118,244,206,246,97,249,229,251,20,254, +253,255,232,1,205,3,123,5,1,7,159,8,61,10,117,11,83,12,36,13,228,13,125,14,213,14,245,14,15,15,30,15, +59,15,102,15,83,15,23,15,223,14,118,14,184,13,162,12,108,11,104,10,152,9,187,8,120,7,14,6,19,5,35,4, +192,2,82,1,49,0,82,255,92,254,25,253,236,251,204,250,137,249,121,248,125,247,118,246,205,245,142,245,171,245,11,246, +126,246,82,247,153,248,8,250,189,251,209,253,38,0,138,2,221,4,93,7,255,9,107,12,197,14,69,17,201,19,10,22, +230,23,185,25,221,27,39,30,52,32,180,33,189,34,157,35,99,36,0,37,76,37,30,37,121,36,108,35,48,34,8,33, +250,31,31,31,124,30,246,29,131,29,20,29,224,28,63,29,35,30,119,31,19,33,187,34,183,36,37,39,143,41,172,43, +125,45,247,46,35,48,89,49,155,50,92,51,205,51,118,52,9,53,70,53,42,53,218,52,8,53,148,53,177,53,127,53, +64,53,12,53,35,53,46,53,214,52,55,52,134,51,9,51,146,50,211,49,243,48,201,47,35,46,41,44,209,41,26,39, +19,36,220,32,201,29,175,26,111,23,141,20,59,18,51,16,68,14,117,12,16,11,49,10,149,9,215,8,228,7,30,7, +137,6,164,5,79,4,195,2,71,1,224,255,60,254,132,252,231,250,0,249,229,246,17,245,150,243,68,242,188,240,206,238, +195,236,203,234,8,233,169,231,140,230,142,229,242,228,229,228,11,229,15,229,223,228,70,228,114,227,184,226,244,225,65,225, +192,224,255,223,246,222,190,221,73,220,221,218,78,217,98,215,93,213,68,211,56,209,76,207,22,205,199,202,192,200,252,198, +172,197,181,196,225,195,80,195,204,194,77,194,4,194,168,193,23,193,133,192,60,192,163,192,152,193,170,194,196,195,232,196, +35,198,171,199,115,201,18,203,92,204,166,205,234,206,231,207,232,208,2,210,10,211,19,212,235,212,162,213,186,214,29,216, +161,217,97,219,29,221,191,222,102,224,8,226,215,227,251,229,56,232,90,234,107,236,156,238,251,240,45,243,12,245,15,247, +113,249,162,251,60,253,126,254,214,255,152,1,152,3,108,5,29,7,193,8,108,10,82,12,22,14,84,15,50,16,189,16, +14,17,40,17,220,16,107,16,224,15,245,14,232,13,189,12,90,11,31,10,0,9,190,7,139,6,124,5,112,4,73,3, +13,2,3,1,47,0,89,255,133,254,235,253,151,253,71,253,233,252,119,252,157,251,126,250,146,249,192,248,247,247,153,247, +225,247,172,248,167,249,196,250,65,252,49,254,132,0,242,2,74,5,242,7,56,11,220,14,127,18,179,21,74,24,137,26, +146,28,39,30,71,31,89,32,120,33,91,34,243,34,88,35,113,35,39,35,160,34,35,34,177,33,56,33,226,32,145,32, +118,32,17,33,237,33,147,34,83,35,44,36,68,37,216,38,113,40,210,41,254,42,156,43,189,43,172,43,124,43,71,43, +57,43,115,43,172,43,164,43,174,43,217,43,240,43,247,43,227,43,241,43,103,44,54,45,111,46,236,47,106,49,5,51, +164,52,28,54,106,55,112,56,85,57,37,58,140,58,116,58,197,57,144,56,40,55,120,53,113,51,35,49,137,46,8,44, +147,41,171,38,126,35,44,32,148,28,23,25,227,21,201,18,218,15,53,13,186,10,73,8,252,5,242,3,53,2,183,0, +57,255,191,253,112,252,51,251,29,250,23,249,206,247,168,246,231,245,79,245,217,244,63,244,106,243,187,242,201,241,42,240, +63,238,70,236,106,234,206,232,55,231,127,229,203,227,114,226,117,225,139,224,229,223,130,223,39,223,252,222,171,222,178,221, +70,220,157,218,252,216,133,215,227,213,61,212,12,211,73,210,174,209,3,209,106,208,1,208,132,207,227,206,8,206,190,204, +48,203,138,201,13,200,227,198,177,197,172,196,47,196,223,195,181,195,182,195,113,195,25,195,229,194,129,194,252,193,172,193, +178,193,254,193,110,194,249,194,134,195,22,196,243,196,57,198,182,199,47,201,164,202,111,204,174,206,34,209,142,211,209,213, +23,216,154,218,42,221,146,223,221,225,40,228,131,230,197,232,178,234,105,236,90,238,153,240,163,242,89,244,40,246,39,248, +71,250,120,252,102,254,13,0,174,1,77,3,250,4,196,6,145,8,98,10,66,12,11,14,160,15,37,17,192,18,60,20, +90,21,48,22,220,22,97,23,170,23,154,23,62,23,178,22,16,22,65,21,14,20,173,18,108,17,12,16,147,14,99,13, +89,12,42,11,204,9,93,8,38,7,245,5,71,4,70,2,98,0,187,254,126,253,133,252,92,251,41,250,93,249,12,249, +44,249,168,249,94,250,90,251,169,252,37,254,158,255,39,1,9,3,90,5,225,7,90,10,193,12,121,15,162,18,172,21, +73,24,174,26,235,28,246,30,166,32,180,33,69,34,196,34,71,35,121,35,28,35,138,34,57,34,37,34,239,33,54,33, +34,32,44,31,152,30,133,30,183,30,189,30,188,30,28,31,238,31,12,33,30,34,36,35,84,36,119,37,99,38,19,39, +140,39,46,40,24,41,2,42,196,42,41,43,74,43,165,43,70,44,250,44,166,45,57,46,213,46,147,47,122,48,167,49, +22,51,161,52,6,54,22,55,228,55,143,56,50,57,188,57,181,57,242,56,210,55,154,54,61,53,126,51,38,49,73,46, +76,43,149,40,240,37,248,34,213,31,164,28,116,25,100,22,52,19,247,15,254,12,64,10,1,8,80,6,177,4,45,3, +215,1,119,0,45,255,229,253,122,252,28,251,177,249,49,248,219,246,173,245,123,244,15,243,89,241,129,239,163,237,241,235, +112,234,246,232,156,231,101,230,61,229,40,228,12,227,34,226,150,225,28,225,207,224,227,224,33,225,126,225,223,225,240,225, +152,225,237,224,49,224,131,223,188,222,218,221,208,220,171,219,176,218,186,217,159,216,101,215,238,213,70,212,85,210,241,207, +123,205,31,203,207,200,198,198,245,196,114,195,132,194,243,193,158,193,157,193,178,193,180,193,158,193,113,193,79,193,67,193, +63,193,81,193,163,193,101,194,144,195,46,197,101,199,235,201,100,204,218,206,75,209,139,211,125,213,35,215,148,216,229,217, +20,219,0,220,209,220,224,221,6,223,40,224,178,225,200,227,59,230,204,232,83,235,34,238,19,241,118,243,106,245,44,247, +169,248,77,250,65,252,51,254,52,0,77,2,136,4,15,7,168,9,48,12,197,14,37,17,254,18,88,20,106,21,68,22, +166,22,128,22,0,22,44,21,13,20,199,18,107,17,251,15,115,14,200,12,7,11,102,9,248,7,102,6,144,4,208,2, +67,1,189,255,32,254,110,252,241,250,214,249,232,248,21,248,96,247,185,246,64,246,31,246,104,246,222,246,61,247,198,247, +155,248,152,249,220,250,52,252,81,253,97,254,95,255,86,0,149,1,244,2,105,4,43,6,1,8,235,9,7,12,13,14, +254,15,3,18,216,19,90,21,161,22,191,23,204,24,189,25,125,26,56,27,30,28,0,29,180,29,110,30,44,31,150,31, +181,31,212,31,18,32,101,32,165,32,192,32,171,32,62,32,147,31,246,30,131,30,15,30,122,29,66,29,202,29,166,30, +127,31,65,32,212,32,127,33,69,34,223,34,167,35,229,36,124,38,97,40,81,42,44,44,44,46,76,48,106,50,166,52, +60,55,48,58,243,60,38,63,246,64,84,66,11,67,62,67,28,67,170,66,209,65,132,64,213,62,194,60,90,58,176,55, +182,52,144,49,89,46,3,43,157,39,34,36,159,32,67,29,248,25,194,22,214,19,55,17,232,14,233,12,3,11,6,9, +6,7,42,5,93,3,169,1,69,0,2,255,214,253,244,252,18,252,67,251,233,250,159,250,35,250,149,249,208,248,31,248, +173,247,222,246,137,245,237,243,32,242,87,240,173,238,40,237,220,235,143,234,31,233,181,231,111,230,97,229,107,228,91,227, +73,226,123,225,10,225,176,224,50,224,190,223,103,223,236,222,37,222,38,221,44,220,65,219,47,218,221,216,67,215,71,213, +208,210,13,208,147,205,135,203,145,201,186,199,36,198,235,196,52,196,132,195,123,194,86,193,34,192,244,190,242,189,0,189, +141,188,228,188,109,189,241,189,180,190,208,191,92,193,53,195,41,197,56,199,73,201,87,203,117,205,123,207,69,209,210,210, +70,212,230,213,208,215,229,217,248,219,42,222,182,224,60,227,73,229,20,231,210,232,110,234,228,235,55,237,124,238,232,239, +158,241,124,243,91,245,69,247,31,249,249,250,74,253,189,255,183,1,149,3,154,5,135,7,67,9,164,10,204,11,242,12, +197,13,88,14,239,14,67,15,69,15,254,14,83,14,158,13,0,13,31,12,236,10,133,9,246,7,96,6,200,4,22,3, +78,1,150,255,227,253,33,252,138,250,57,249,32,248,87,247,202,246,91,246,49,246,85,246,186,246,84,247,11,248,8,249, +75,250,118,251,108,252,116,253,220,254,117,0,211,1,38,3,180,4,88,6,40,8,18,10,187,11,82,13,30,15,35,17, +93,19,154,21,161,23,108,25,21,27,162,28,200,29,129,30,50,31,210,31,44,32,90,32,102,32,86,32,52,32,9,32, +248,31,15,32,77,32,167,32,6,33,129,33,11,34,90,34,133,34,173,34,208,34,253,34,230,34,87,34,178,33,46,33, +170,32,254,31,36,31,128,30,107,30,196,30,120,31,177,32,96,34,48,36,67,38,34,41,176,44,117,48,62,52,209,55, +38,59,94,62,62,65,167,67,153,69,240,70,185,71,214,71,18,71,208,69,108,68,183,66,94,64,92,61,36,58,35,55, +69,52,65,49,233,45,121,42,63,39,2,36,163,32,92,29,61,26,114,23,251,20,144,18,66,16,50,14,81,12,151,10, +215,8,227,6,185,4,104,2,47,0,44,254,46,252,25,250,6,248,69,246,245,244,171,243,71,242,24,241,28,240,248,238, +119,237,231,235,151,234,75,233,214,231,68,230,153,228,27,227,18,226,134,225,83,225,32,225,8,225,114,225,50,226,23,227, +38,228,56,229,50,230,239,230,83,231,137,231,115,231,236,230,22,230,206,228,230,226,117,224,181,221,6,219,135,216,32,214, +205,211,135,209,93,207,89,205,94,203,120,201,153,199,162,197,193,195,37,194,212,192,156,191,81,190,52,189,89,188,142,187, +10,187,30,187,232,187,61,189,159,190,16,192,206,193,142,195,29,197,170,198,108,200,125,202,151,204,141,206,144,208,175,210, +249,212,92,215,133,217,132,219,157,221,198,223,200,225,155,227,112,229,61,231,212,232,60,234,106,235,140,236,253,237,135,239, +44,241,73,243,149,245,208,247,30,250,95,252,132,254,142,0,108,2,59,4,241,5,113,7,202,8,1,10,61,11,137,12, +172,13,199,14,24,16,124,17,180,18,166,19,88,20,210,20,238,20,136,20,175,19,168,18,153,17,71,16,169,14,5,13, +75,11,85,9,111,7,227,5,113,4,186,2,227,0,78,255,41,254,96,253,141,252,123,251,118,250,130,249,102,248,81,247, +86,246,109,245,228,244,224,244,78,245,24,246,14,247,34,248,116,249,25,251,16,253,38,255,83,1,229,3,181,6,97,9, +241,11,109,14,222,16,112,19,24,22,193,24,132,27,59,30,133,32,72,34,184,35,183,36,9,37,10,37,16,37,201,36, +3,36,235,34,148,33,245,31,34,30,47,28,49,26,117,24,67,23,133,22,52,22,89,22,208,22,131,23,68,24,248,24, +24,26,183,27,112,29,38,31,127,32,96,33,68,34,60,35,106,36,10,38,189,39,154,41,251,43,110,46,113,48,214,49, +210,50,239,51,51,53,92,54,126,55,206,56,117,58,47,60,107,61,237,61,217,61,164,61,97,61,143,60,47,59,138,57, +173,55,195,53,157,51,231,48,244,45,68,43,237,40,152,38,226,35,199,32,108,29,16,26,207,22,103,19,236,15,194,12, +4,10,198,7,241,5,110,4,53,3,229,1,121,0,78,255,77,254,103,253,124,252,41,251,150,249,9,248,100,246,152,244, +176,242,203,240,255,238,122,237,134,236,214,235,248,234,11,234,48,233,155,232,136,232,203,232,82,233,12,234,181,234,90,235, +0,236,102,236,118,236,97,236,98,236,93,236,238,235,252,234,196,233,146,232,64,231,124,229,139,227,154,225,167,223,255,221, +57,220,199,217,24,215,107,212,175,209,0,207,55,204,118,201,50,199,112,197,241,195,121,194,23,193,50,192,177,191,54,191, +208,190,156,190,168,190,5,191,165,191,151,192,238,193,168,195,192,197,8,200,75,202,139,204,196,206,227,208,206,210,79,212, +123,213,157,214,158,215,133,216,181,217,28,219,121,220,240,221,144,223,123,225,221,227,63,230,80,232,105,234,141,236,95,238, +207,239,32,241,143,242,2,244,86,245,197,246,133,248,93,250,249,251,109,253,2,255,189,0,107,2,244,3,117,5,13,7, +171,8,30,10,38,11,204,11,115,12,254,12,22,13,250,12,226,12,210,12,199,12,82,12,60,11,209,9,62,8,133,6, +132,4,45,2,216,255,151,253,73,251,34,249,67,247,167,245,105,244,171,243,122,243,195,243,80,244,255,244,200,245,140,246, +36,247,181,247,75,248,170,248,248,248,52,249,32,249,21,249,32,249,33,249,168,249,168,250,180,251,27,253,238,254,9,1, +111,3,239,5,140,8,65,11,10,14,38,17,93,20,96,23,42,26,129,28,94,30,174,31,83,32,194,32,27,33,53,33, +72,33,68,33,20,33,208,32,79,32,183,31,55,31,190,30,93,30,252,29,148,29,60,29,198,28,60,28,237,27,4,28, +119,28,243,28,162,29,26,31,58,33,110,35,85,37,10,39,19,41,104,43,155,45,148,47,94,49,44,51,21,53,193,54, +242,55,197,56,167,57,220,58,32,60,73,61,69,62,249,62,150,63,19,64,15,64,124,63,135,62,145,61,179,60,155,59, +67,58,181,56,216,54,190,52,110,50,8,48,161,45,12,43,107,40,233,37,128,35,82,33,25,31,126,28,160,25,171,22, +207,19,4,17,45,14,165,11,130,9,123,7,120,5,104,3,143,1,79,0,89,255,101,254,167,253,94,253,105,253,60,253, +132,252,95,251,232,249,74,248,162,246,237,244,63,243,139,241,216,239,89,238,246,236,150,235,84,234,17,233,169,231,60,230, +237,228,151,227,4,226,91,224,2,223,34,222,160,221,125,221,168,221,196,221,197,221,214,221,184,221,89,221,208,220,250,219, +18,219,29,218,179,216,241,214,232,212,150,210,119,208,155,206,216,204,77,203,201,201,27,200,94,198,138,196,130,194,76,192, +85,190,2,189,21,188,82,187,199,186,168,186,53,187,61,188,118,189,236,190,175,192,217,194,70,197,177,199,74,202,2,205, +113,207,132,209,64,211,227,212,200,214,193,216,136,218,45,220,227,221,157,223,33,225,154,226,40,228,102,229,79,230,30,231, +247,231,39,233,175,234,37,236,125,237,46,239,79,241,90,243,63,245,68,247,59,249,51,251,110,253,217,255,132,2,40,5, +97,7,89,9,240,10,10,12,1,13,213,13,98,14,131,14,67,14,14,14,226,13,126,13,218,12,226,11,3,11,151,10, +29,10,76,9,41,8,198,6,111,5,4,4,79,2,103,0,109,254,186,252,100,251,66,250,119,249,234,248,123,248,45,248, +194,247,94,247,50,247,16,247,30,247,115,247,212,247,66,248,181,248,43,249,171,249,32,250,209,250,1,252,142,253,84,255, +96,1,223,3,167,6,87,9,235,11,88,14,151,16,253,18,133,21,239,23,72,26,152,28,173,30,131,32,97,34,62,36, +179,37,168,38,31,39,73,39,144,39,177,39,66,39,80,38,223,36,104,35,104,34,172,33,56,33,2,33,221,32,22,33, +122,33,176,33,22,34,204,34,177,35,147,36,42,37,177,37,95,38,20,39,240,39,223,40,155,41,65,42,64,43,219,44, +192,46,129,48,28,50,169,51,60,53,201,54,72,56,231,57,142,59,26,61,146,62,178,63,126,64,40,65,96,65,15,65, +98,64,84,63,1,62,93,60,37,58,92,55,79,52,56,49,16,46,234,42,220,39,169,36,64,33,211,29,76,26,164,22, +9,19,150,15,91,12,135,9,95,7,188,5,76,4,35,3,63,2,152,1,61,1,217,0,93,0,218,255,28,255,93,254, +127,253,19,252,140,250,65,249,44,248,98,247,121,246,84,245,78,244,29,243,123,241,148,239,136,237,122,235,118,233,121,231, +128,229,171,227,81,226,26,225,145,223,36,222,5,221,33,220,194,219,171,219,98,219,241,218,121,218,6,218,156,217,38,217, +164,216,55,216,243,215,183,215,113,215,243,214,206,213,47,212,136,210,185,208,165,206,88,204,252,201,244,199,47,198,116,196, +199,194,23,193,162,191,171,190,4,190,162,189,148,189,211,189,67,190,169,190,15,191,151,191,91,192,172,193,95,195,40,197, +29,199,55,201,139,203,246,205,238,207,156,209,75,211,214,212,118,214,86,216,80,218,67,220,47,222,71,224,108,226,98,228, +99,230,107,232,88,234,52,236,205,237,84,239,21,241,219,242,149,244,35,246,104,247,217,248,160,250,98,252,41,254,81,0, +188,2,221,4,184,6,165,8,90,10,166,11,175,12,85,13,199,13,90,14,234,14,60,15,64,15,10,15,191,14,88,14, +180,13,219,12,245,11,226,10,117,9,234,7,60,6,47,4,227,1,106,255,31,253,107,251,3,250,248,248,143,248,93,248, +64,248,77,248,114,248,202,248,2,249,230,248,230,248,26,249,132,249,29,250,183,250,145,251,175,252,215,253,58,255,218,0, +157,2,119,4,14,6,125,7,29,9,204,10,140,12,118,14,92,16,82,18,197,20,175,23,106,26,192,28,254,30,74,33, +193,35,52,38,64,40,47,42,36,44,203,45,48,47,37,48,117,48,100,48,227,47,194,46,44,45,97,43,138,41,146,39, +104,37,54,35,48,33,142,31,99,30,170,29,99,29,78,29,99,29,227,29,198,30,227,31,22,33,93,34,239,35,201,37, +207,39,229,41,217,43,220,45,9,48,67,50,148,52,188,54,180,56,204,58,208,60,157,62,19,64,193,64,221,64,154,64, +221,63,231,62,172,61,70,60,8,59,97,57,238,54,33,52,69,49,113,46,70,43,81,39,19,35,42,31,149,27,51,24, +244,20,228,17,20,15,138,12,81,10,130,8,66,7,131,6,11,6,158,5,6,5,64,4,79,3,57,2,66,1,101,0, +114,255,139,254,141,253,89,252,24,251,151,249,185,247,156,245,55,243,189,240,94,238,36,236,2,234,174,231,56,229,252,226, +242,224,46,223,205,221,195,220,14,220,127,219,239,218,112,218,38,218,83,218,225,218,130,219,46,220,206,220,126,221,63,222, +160,222,170,222,148,222,69,222,221,221,86,221,135,220,93,219,122,217,20,215,163,212,205,209,128,206,74,203,126,200,37,198, +253,195,211,193,211,191,24,190,172,188,121,187,106,186,178,185,97,185,130,185,55,186,57,187,78,188,176,189,155,191,249,193, +113,196,204,198,54,201,230,203,192,206,89,209,106,211,34,213,207,214,162,216,121,218,29,220,147,221,219,222,62,224,253,225, +188,227,113,229,35,231,116,232,177,233,60,235,200,236,52,238,125,239,230,240,210,242,224,244,205,246,219,248,45,251,229,253, +184,0,97,3,76,6,105,9,73,12,238,14,43,17,229,18,86,20,114,21,54,22,184,22,242,22,217,22,117,22,236,21, +35,21,203,19,255,17,10,16,12,14,248,11,164,9,33,7,160,4,53,2,227,255,140,253,75,251,101,249,220,247,201,246, +45,246,198,245,145,245,144,245,182,245,20,246,146,246,59,247,73,248,159,249,255,250,62,252,77,253,71,254,64,255,56,0, +24,1,216,1,179,2,194,3,14,5,178,6,135,8,123,10,159,12,246,14,136,17,40,20,211,22,159,25,65,28,172,30, +234,32,214,34,182,36,137,38,241,39,23,41,232,41,76,42,120,42,53,42,174,41,43,41,35,40,181,38,131,37,148,36, +224,35,45,35,46,34,46,33,96,32,181,31,11,31,35,30,69,29,213,28,122,28,243,27,155,27,169,27,27,28,231,28, +231,29,45,31,227,32,216,34,8,37,162,39,80,42,233,44,173,47,161,50,224,53,64,57,34,60,151,62,226,64,186,66, +210,67,246,67,115,67,218,66,243,65,106,64,37,62,32,59,253,55,45,53,42,50,151,46,193,42,26,39,165,35,27,32, +130,28,12,25,240,21,73,19,199,16,116,14,185,12,131,11,131,10,124,9,92,8,67,7,11,6,165,4,51,3,168,1, +45,0,229,254,174,253,131,252,40,251,153,249,87,248,61,247,232,245,114,244,211,242,231,240,199,238,182,236,226,234,14,233, +19,231,33,229,84,227,227,225,248,224,101,224,8,224,238,223,25,224,116,224,221,224,51,225,105,225,133,225,123,225,75,225, +44,225,21,225,223,224,135,224,191,223,114,222,233,220,5,219,192,216,105,214,20,212,215,209,159,207,91,205,95,203,175,201, +38,200,210,198,153,197,137,196,178,195,229,194,37,194,66,193,16,192,240,190,27,190,181,189,222,189,90,190,45,191,149,192, +130,194,182,196,194,198,150,200,140,202,143,204,133,206,129,208,93,210,20,212,224,213,255,215,111,218,210,220,15,223,91,225, +186,227,6,230,25,232,253,233,174,235,0,237,32,238,69,239,82,240,73,241,52,242,44,243,118,244,18,246,216,247,199,249, +255,251,142,254,9,1,26,3,244,4,188,6,106,8,218,9,231,10,188,11,113,12,14,13,172,13,5,14,11,14,13,14, +19,14,7,14,232,13,197,13,202,13,232,13,255,13,202,13,250,12,195,11,71,10,117,8,131,6,145,4,194,2,25,1, +69,255,134,253,29,252,211,250,206,249,247,248,16,248,138,247,102,247,67,247,55,247,35,247,222,246,151,246,93,246,71,246, +139,246,39,247,251,247,47,249,247,250,8,253,23,255,76,1,197,3,145,6,151,9,165,12,227,15,53,19,65,22,41,25, +16,28,2,31,6,34,181,36,226,38,238,40,237,42,121,44,89,45,228,45,34,46,174,45,151,44,232,42,130,40,201,37, +2,35,89,32,2,30,185,27,158,25,48,24,67,23,134,22,8,22,0,22,153,22,141,23,186,24,82,26,59,28,62,30, +58,32,36,34,0,36,202,37,160,39,135,41,119,43,145,45,139,47,79,49,64,51,37,53,235,54,223,56,179,58,92,60, +197,61,101,62,139,62,164,62,104,62,183,61,124,60,198,58,237,56,242,54,210,52,140,50,227,47,254,44,46,42,103,39, +137,36,161,33,206,30,19,28,102,25,195,22,54,20,198,17,73,15,232,12,249,10,103,9,81,8,189,7,14,7,43,6, +64,5,51,4,73,3,93,2,1,1,112,255,188,253,219,251,231,249,186,247,145,245,142,243,96,241,61,239,86,237,175,235, +110,234,58,233,222,231,198,230,14,230,134,229,16,229,196,228,180,228,162,228,154,228,164,228,125,228,94,228,119,228,140,228, +167,228,194,228,175,228,105,228,245,227,82,227,96,226,40,225,211,223,55,222,76,220,14,218,87,215,119,212,188,209,27,207, +146,204,8,202,175,199,218,197,103,196,25,195,192,193,116,192,151,191,242,190,93,190,47,190,87,190,179,190,92,191,103,192, +247,193,209,195,180,197,172,199,151,201,111,203,105,205,169,207,0,210,214,211,30,213,98,214,188,215,46,217,183,218,28,220, +107,221,197,222,72,224,9,226,203,227,145,229,58,231,126,232,195,233,29,235,93,236,227,237,122,239,215,240,94,242,18,244, +229,245,234,247,212,249,183,251,204,253,225,255,206,1,154,3,101,5,66,7,28,9,207,10,34,12,22,13,214,13,97,14, +188,14,191,14,90,14,236,13,150,13,43,13,111,12,72,11,14,10,181,8,219,6,162,4,77,2,31,0,41,254,9,252, +218,249,247,247,103,246,88,245,170,244,54,244,55,244,74,244,14,244,204,243,206,243,36,244,86,244,56,244,114,244,19,245, +202,245,151,246,74,247,7,248,37,249,149,250,72,252,12,254,224,255,55,2,233,4,140,7,65,10,63,13,124,16,178,19, +175,22,128,25,36,28,176,30,59,33,178,35,221,37,136,39,219,40,220,41,44,42,223,41,50,41,50,40,18,39,206,37, +88,36,207,34,59,33,215,31,160,30,108,29,140,28,244,27,146,27,190,27,68,28,234,28,203,29,203,30,245,31,32,33, +37,34,108,35,5,37,204,38,187,40,134,42,75,44,93,46,163,48,6,51,95,53,185,55,93,58,34,61,203,63,67,66, +97,68,50,70,125,71,6,72,18,72,180,71,234,70,206,69,66,68,45,66,165,63,210,60,231,57,15,55,97,52,195,49, +41,47,147,44,186,41,150,38,88,35,0,32,215,28,226,25,232,22,58,20,233,17,228,15,86,14,213,12,41,11,152,9, +16,8,147,6,59,5,226,3,118,2,228,0,49,255,108,253,135,251,168,249,226,247,70,246,209,244,31,243,82,241,203,239, +73,238,183,236,1,235,253,232,37,231,164,229,66,228,25,227,27,226,94,225,28,225,51,225,125,225,188,225,225,225,49,226, +117,226,123,226,107,226,29,226,129,225,179,224,175,223,119,222,217,220,178,218,55,216,98,213,7,210,83,206,194,202,169,199, +8,197,195,194,170,192,212,190,144,189,178,188,255,187,79,187,112,186,181,185,109,185,106,185,140,185,164,185,237,185,208,186, +253,187,97,189,65,191,126,193,41,196,240,198,90,201,176,203,229,205,229,207,232,209,122,211,126,212,112,213,131,214,27,216, +47,218,36,220,249,221,216,223,207,225,235,227,206,229,60,231,121,232,196,233,23,235,53,236,42,237,72,238,169,239,61,241, +223,242,107,244,237,245,141,247,147,249,14,252,190,254,115,1,2,4,109,6,191,8,185,10,82,12,167,13,174,14,110,15, +236,15,75,16,157,16,180,16,163,16,94,16,203,15,60,15,164,14,224,13,12,13,181,11,205,9,181,7,75,5,202,2, +129,0,74,254,57,252,42,250,33,248,160,246,171,245,63,245,98,245,152,245,231,245,150,246,141,247,202,248,34,250,74,251, +73,252,38,253,220,253,112,254,28,255,29,0,66,1,109,2,191,3,44,5,193,6,153,8,159,10,225,12,90,15,208,17, +35,20,108,22,192,24,247,26,226,28,103,30,160,31,215,32,229,33,183,34,147,35,39,36,70,36,98,36,142,36,211,36, +29,37,228,36,60,36,92,35,45,34,222,32,146,31,142,30,253,29,127,29,67,29,178,29,129,30,99,31,66,32,68,33, +163,34,10,36,63,37,141,38,32,40,203,41,19,43,14,44,86,45,247,46,209,48,202,50,152,52,88,54,43,56,4,58, +4,60,245,61,180,63,121,65,244,66,172,67,144,67,212,66,231,65,215,64,77,63,48,61,186,58,56,56,189,53,21,51, +34,48,17,45,21,42,8,39,200,35,127,32,77,29,63,26,59,23,36,20,46,17,65,14,88,11,214,8,143,6,126,4, +6,3,203,1,172,0,211,255,2,255,147,254,129,254,11,254,58,253,22,252,138,250,18,249,160,247,249,245,47,244,52,242, +101,240,198,238,220,236,246,234,90,233,196,231,48,230,153,228,26,227,12,226,84,225,180,224,56,224,218,223,126,223,41,223, +5,223,78,223,11,224,210,224,62,225,137,225,220,225,237,225,127,225,110,224,213,222,228,220,170,218,114,216,72,214,220,211, +52,209,112,206,217,203,148,201,50,199,208,196,210,194,9,193,138,191,95,190,95,189,168,188,230,187,3,187,140,186,152,186, +61,187,136,188,25,190,21,192,149,194,48,197,170,199,221,201,235,203,44,206,120,208,134,210,74,212,229,213,112,215,213,216, +57,218,196,219,77,221,207,222,59,224,154,225,57,227,230,228,118,230,32,232,208,233,97,235,182,236,172,237,171,238,19,240, +176,241,89,243,34,245,9,247,246,248,241,250,32,253,153,255,49,2,141,4,227,6,144,9,23,12,29,14,215,15,59,17, +90,18,32,19,35,19,168,18,9,18,82,17,142,16,92,15,215,13,145,12,82,11,204,9,245,7,207,5,199,3,245,1, +57,0,193,254,91,253,255,251,228,250,197,249,171,248,218,247,67,247,9,247,91,247,36,248,49,249,61,250,40,251,233,251, +144,252,59,253,233,253,196,254,213,255,233,0,38,2,134,3,191,4,240,5,36,7,87,8,185,9,57,11,203,12,178,14, +238,16,46,19,102,21,182,23,239,25,229,27,157,29,255,30,67,32,143,33,163,34,213,35,74,37,104,38,42,39,193,39, +26,40,32,40,111,39,30,38,153,36,180,34,133,32,37,30,117,27,244,24,194,22,161,20,216,18,126,17,170,16,153,16, +42,17,74,18,209,19,155,21,232,23,158,26,131,29,176,32,19,36,197,39,200,43,205,47,220,51,222,55,128,59,198,62, +135,65,157,67,82,69,175,70,105,71,135,71,69,71,176,70,159,69,211,67,93,65,213,62,88,60,123,57,75,54,224,50, +97,47,68,44,34,41,171,37,144,34,222,31,95,29,13,27,148,24,65,22,74,20,22,18,157,15,248,12,19,10,112,7, +53,5,40,3,115,1,39,0,14,255,241,253,205,252,174,251,103,250,16,249,212,247,99,246,170,244,204,242,173,240,124,238, +128,236,181,234,17,233,203,231,21,231,176,230,85,230,243,229,86,229,150,228,254,227,144,227,113,227,184,227,43,228,188,228, +131,229,158,230,7,232,101,233,172,234,232,235,173,236,169,236,7,236,251,234,96,233,235,230,196,227,111,224,58,221,1,218, +155,214,77,211,38,208,237,204,188,201,183,198,230,195,57,193,172,190,200,188,181,187,252,186,195,186,24,187,190,187,227,188, +67,190,157,191,68,193,26,195,3,197,16,199,252,200,218,202,208,204,182,206,178,208,195,210,201,212,228,214,2,217,251,218, +190,220,81,222,237,223,161,225,69,227,215,228,96,230,220,231,81,233,232,234,143,236,255,237,69,239,121,240,156,241,190,242, +167,243,114,244,166,245,67,247,3,249,155,250,231,251,75,253,230,254,139,0,78,2,19,4,214,5,174,7,117,9,61,11, +171,12,112,13,24,14,171,14,223,14,224,14,137,14,243,13,114,13,173,12,123,11,37,10,193,8,67,7,145,5,217,3, +60,2,161,0,43,255,200,253,111,252,111,251,155,250,210,249,73,249,231,248,188,248,199,248,188,248,174,248,162,248,165,248, +28,249,225,249,143,250,44,251,204,251,129,252,71,253,254,253,153,254,11,255,131,255,77,0,54,1,214,1,108,2,135,3, +253,4,110,6,26,8,39,10,139,12,72,15,233,17,73,20,179,22,0,25,62,27,142,29,158,31,94,33,173,34,95,35, +201,35,228,35,118,35,161,34,101,33,28,32,32,31,241,29,58,28,59,26,53,24,112,22,16,21,193,19,59,18,213,16, +48,16,86,16,207,16,101,17,121,18,133,20,130,23,9,27,185,30,85,34,249,37,215,41,189,45,106,49,225,52,93,56, +234,59,31,63,186,65,233,67,223,69,192,71,101,73,67,74,26,74,50,73,206,71,237,69,158,67,252,64,234,61,133,58, +36,55,233,51,245,48,54,46,83,43,79,40,104,37,188,34,73,32,231,29,147,27,89,25,67,23,81,21,82,19,105,17, +252,15,229,14,237,13,241,12,191,11,154,10,148,9,105,8,41,7,153,5,154,3,183,1,26,0,125,254,179,252,165,250, +135,248,107,246,43,244,17,242,112,240,34,239,213,237,91,236,234,234,223,233,73,233,188,232,237,231,70,231,41,231,117,231, +206,231,217,231,227,231,84,232,220,232,95,233,250,233,130,234,239,234,232,234,40,234,252,232,34,231,118,228,114,225,37,222, +180,218,105,215,36,212,244,208,232,205,38,203,247,200,6,199,28,197,106,195,196,193,56,192,16,191,37,190,48,189,8,188, +230,186,29,186,169,185,194,185,160,186,22,188,7,190,69,192,162,194,2,197,31,199,239,200,141,202,21,204,207,205,174,207, +120,209,74,211,46,213,57,215,103,217,110,219,100,221,115,223,102,225,52,227,7,229,187,230,241,231,194,232,178,233,183,234, +123,235,54,236,68,237,199,238,121,240,247,241,141,243,141,245,153,247,112,249,38,251,9,253,119,255,35,2,112,4,76,6, +3,8,201,9,96,11,105,12,24,13,193,13,73,14,98,14,255,13,120,13,34,13,238,12,126,12,142,11,104,10,96,9, +30,8,82,6,40,4,210,1,167,255,194,253,158,251,51,249,41,247,143,245,18,244,177,242,120,241,166,240,152,240,35,241, +228,241,186,242,174,243,253,244,189,246,165,248,142,250,185,252,87,255,16,2,107,4,107,6,120,8,206,10,11,13,159,14, +169,15,150,16,132,17,82,18,171,18,176,18,241,18,123,19,36,20,248,20,227,21,3,23,104,24,221,25,118,27,55,29, +218,30,113,32,254,33,31,35,160,35,172,35,112,35,227,34,252,33,210,32,129,31,52,30,239,28,153,27,73,26,8,25, +234,23,23,23,139,22,125,22,14,23,251,23,80,25,23,27,44,29,151,31,11,34,94,36,222,38,136,41,106,44,130,47, +72,50,196,52,80,55,175,57,178,59,129,61,69,63,4,65,141,66,202,67,179,68,42,69,27,69,123,68,123,67,44,66, +107,64,158,62,0,61,58,59,60,57,252,54,141,52,54,50,162,47,146,44,70,41,215,37,169,34,224,31,229,28,174,25, +129,22,87,19,75,16,82,13,124,10,58,8,103,6,147,4,215,2,111,1,61,0,0,255,162,253,58,252,228,250,190,249, +204,248,15,248,143,247,35,247,155,246,240,245,26,245,22,244,227,242,161,241,112,240,53,239,233,237,132,236,251,234,203,233, +63,233,219,232,95,232,212,231,89,231,39,231,9,231,184,230,106,230,30,230,158,229,205,228,162,227,93,226,28,225,184,223, +60,222,157,220,181,218,149,216,82,214,251,211,149,209,253,206,39,204,10,201,184,197,139,194,191,191,112,189,147,187,253,185, +226,184,95,184,28,184,49,184,214,184,207,185,11,187,151,188,70,190,236,191,113,193,245,194,144,196,14,198,126,199,37,201, +254,202,205,204,125,206,90,208,154,210,241,212,54,215,128,217,192,219,240,221,235,223,138,225,8,227,127,228,208,229,251,230, +27,232,130,233,58,235,229,236,157,238,171,240,225,242,19,245,45,247,36,249,30,251,23,253,198,254,33,0,119,1,243,2, +119,4,240,5,99,7,211,8,63,10,110,11,89,12,76,13,55,14,219,14,41,15,19,15,150,14,177,13,147,12,127,11, +36,10,65,8,57,6,61,4,78,2,89,0,54,254,72,252,229,250,170,249,78,248,222,246,148,245,193,244,85,244,255,243, +165,243,133,243,211,243,40,244,80,244,189,244,108,245,47,246,18,247,222,247,170,248,178,249,207,250,28,252,173,253,72,255, +21,1,32,3,35,5,53,7,126,9,252,11,149,14,50,17,238,19,202,22,196,25,242,28,26,32,8,35,192,37,6,40, +173,41,175,42,8,43,240,42,162,42,11,42,219,40,245,38,229,36,2,35,239,32,125,30,215,27,66,25,46,23,144,21, +27,20,17,19,161,18,142,18,190,18,70,19,98,20,81,22,217,24,140,27,118,30,173,33,201,36,166,39,122,42,41,45, +152,47,194,49,155,51,113,53,79,55,232,56,101,58,207,59,252,60,19,62,11,63,235,63,233,64,159,65,188,65,137,65, +54,65,208,64,43,64,7,63,129,61,144,59,40,57,130,54,155,51,133,48,108,45,34,42,175,38,107,35,120,32,185,29, +201,26,107,23,233,19,186,16,247,13,73,11,166,8,114,6,156,4,4,3,203,1,221,0,90,0,79,0,80,0,118,0, +225,0,13,1,235,0,140,0,174,255,121,254,27,253,128,251,197,249,249,247,6,246,236,243,212,241,236,239,13,238,13,236, +41,234,155,232,95,231,70,230,9,229,212,227,23,227,233,226,10,227,75,227,164,227,10,228,88,228,108,228,48,228,190,227, +48,227,117,226,146,225,134,224,54,223,154,221,149,219,39,217,136,214,169,211,129,208,34,205,141,201,42,198,57,195,133,192, +72,190,148,188,18,187,241,185,95,185,41,185,103,185,68,186,177,187,110,189,44,191,233,192,173,194,104,196,20,198,166,199, +86,201,109,203,203,205,82,208,214,210,40,213,111,215,124,217,0,219,80,220,185,221,44,223,135,224,168,225,183,226,178,227, +96,228,234,228,126,229,47,230,31,231,42,232,84,233,206,234,112,236,39,238,226,239,121,241,52,243,70,245,113,247,155,249, +226,251,133,254,106,1,221,3,177,5,80,7,204,8,17,10,36,11,242,11,115,12,163,12,100,12,204,11,3,11,253,9, +208,8,213,7,245,6,205,5,105,4,0,3,179,1,138,0,39,255,114,253,203,251,57,250,175,248,67,247,255,245,10,245, +67,244,113,243,215,242,134,242,76,242,78,242,172,242,103,243,91,244,66,245,70,246,196,247,176,249,163,251,88,253,22,255, +10,1,251,2,255,4,21,7,247,8,196,10,160,12,144,14,189,16,8,19,80,21,129,23,97,25,32,27,1,29,217,30, +124,32,222,33,38,35,102,36,59,37,178,37,56,38,189,38,24,39,7,39,58,38,30,37,38,36,29,35,221,33,121,32, +45,31,56,30,99,29,120,28,221,27,229,27,91,28,11,29,43,30,206,31,173,33,200,35,47,38,161,40,226,42,205,44, +114,46,24,48,202,49,139,51,92,53,203,54,157,55,89,56,112,57,192,58,2,60,26,61,31,62,44,63,39,64,209,64, +26,65,7,65,179,64,94,64,198,63,122,62,236,60,145,59,36,58,101,56,19,54,36,51,13,48,227,44,135,41,37,38, +185,34,94,31,48,28,223,24,125,21,96,18,155,15,58,13,56,11,166,9,120,8,86,7,105,6,251,5,159,5,5,5, +64,4,109,3,119,2,254,0,22,255,31,253,2,251,198,248,139,246,62,244,3,242,0,240,98,238,67,237,30,236,169,234, +47,233,206,231,150,230,145,229,146,228,122,227,56,226,241,224,222,223,251,222,83,222,244,221,203,221,205,221,173,221,72,221, +241,220,149,220,227,219,232,218,182,217,84,216,228,214,81,213,82,211,242,208,141,206,21,204,61,201,21,198,229,194,5,192, +188,189,255,187,183,186,202,185,46,185,31,185,156,185,90,186,41,187,3,188,51,189,217,190,109,192,202,193,72,195,230,196, +124,198,218,199,4,201,127,202,120,204,144,206,144,208,109,210,64,212,30,214,216,215,98,217,203,218,26,220,120,221,222,222, +24,224,80,225,180,226,25,228,102,229,159,230,213,231,14,233,73,234,159,235,24,237,171,238,87,240,255,241,182,243,169,245, +191,247,4,250,131,252,241,254,27,1,253,2,228,4,10,7,233,8,42,10,27,11,204,11,68,12,141,12,154,12,189,12, +226,12,149,12,14,12,161,11,71,11,225,10,57,10,107,9,211,8,120,8,9,8,39,7,214,5,78,4,181,2,36,1, +113,255,151,253,32,252,47,251,92,250,117,249,148,248,3,248,219,247,1,248,81,248,162,248,48,249,30,250,5,251,237,251, +28,253,146,254,105,0,103,2,97,4,157,6,230,8,44,11,212,13,167,16,86,19,25,22,41,25,119,28,167,31,126,34, +0,37,34,39,12,41,204,42,51,44,37,45,147,45,181,45,182,45,68,45,69,44,202,42,219,40,201,38,127,36,214,33, +71,31,2,29,6,27,160,25,191,24,35,24,197,23,202,23,125,24,175,25,224,26,31,28,182,29,183,31,32,34,158,36, +233,38,84,41,255,43,139,46,237,48,69,51,116,53,122,55,124,57,143,59,147,61,60,63,153,64,216,65,213,66,122,67, +173,67,75,67,141,66,139,65,18,64,42,62,250,59,170,57,79,55,218,52,62,50,128,47,226,44,154,42,97,40,216,37, +10,35,69,32,184,29,58,27,107,24,69,21,70,18,175,15,73,13,36,11,76,9,134,7,11,6,224,4,142,3,23,2, +132,0,175,254,213,252,246,250,254,248,13,247,50,245,145,243,228,241,208,239,165,237,125,235,77,233,87,231,159,229,32,228, +187,226,66,225,255,223,226,222,164,221,111,220,76,219,114,218,56,218,102,218,219,218,144,219,98,220,74,221,13,222,152,222, +5,223,62,223,101,223,110,223,12,223,100,222,138,221,104,220,245,218,234,216,96,214,192,211,3,209,3,206,226,202,228,199, +14,197,71,194,190,191,135,189,176,187,116,186,172,185,73,185,124,185,11,186,191,186,178,187,2,189,183,190,129,192,48,194, +238,195,191,197,176,199,184,201,156,203,92,205,35,207,33,209,68,211,30,213,184,214,91,216,247,217,151,219,63,221,226,222, +165,224,118,226,45,228,211,229,88,231,187,232,41,234,179,235,67,237,211,238,130,240,113,242,142,244,155,246,142,248,167,250, +239,252,79,255,207,1,87,4,254,6,225,9,171,12,28,15,41,17,220,18,107,20,173,21,118,22,242,22,24,23,242,22, +188,22,98,22,188,21,173,20,56,19,155,17,4,16,116,14,184,12,188,10,190,8,186,6,154,4,115,2,68,0,50,254, +43,252,254,249,33,248,211,246,243,245,135,245,95,245,87,245,133,245,1,246,246,246,49,248,164,249,137,251,127,253,80,255, +41,1,206,2,64,4,173,5,4,7,76,8,99,9,88,10,125,11,197,12,18,14,115,15,251,16,180,18,129,20,155,22, +67,25,29,28,175,30,178,32,85,34,241,35,27,37,139,37,140,37,29,37,129,36,13,36,123,35,147,34,120,33,78,32, +228,30,36,29,144,27,45,26,163,24,23,23,123,21,251,19,59,19,55,19,179,19,121,20,51,21,11,22,45,23,116,24, +229,25,118,27,53,29,70,31,146,33,29,36,215,38,154,41,137,44,159,47,143,50,30,53,100,55,194,57,91,60,209,62, +177,64,218,65,116,66,138,66,42,66,120,65,136,64,126,63,28,62,41,60,32,58,41,56,7,54,186,51,5,49,246,45, +229,42,165,39,63,36,244,32,161,29,78,26,32,23,32,20,97,17,212,14,116,12,75,10,103,8,220,6,124,5,24,4, +170,2,35,1,159,255,43,254,166,252,253,250,55,249,170,247,108,246,55,245,30,244,31,243,32,242,66,241,56,240,223,238, +159,237,164,236,215,235,243,234,216,233,215,232,11,232,90,231,175,230,11,230,163,229,100,229,89,229,232,229,215,230,220,231, +230,232,145,233,197,233,137,233,207,232,226,231,198,230,82,229,117,227,16,225,134,222,22,220,112,217,141,214,111,211,62,208, +117,205,243,202,128,200,65,198,16,196,183,193,87,191,64,189,172,187,140,186,200,185,49,185,204,184,228,184,119,185,148,186, +95,188,134,190,230,192,105,195,217,197,104,200,36,203,227,205,126,208,168,210,153,212,193,214,12,217,64,219,63,221,69,223, +112,225,89,227,33,229,12,231,196,232,50,234,101,235,102,236,98,237,61,238,2,239,244,239,250,240,16,242,82,243,193,244, +101,246,47,248,2,250,206,251,155,253,101,255,237,0,40,2,81,3,134,4,225,5,18,7,188,7,33,8,113,8,173,8, +218,8,231,8,238,8,186,8,20,8,93,7,160,6,192,5,201,4,118,3,237,1,117,0,210,254,32,253,137,251,229,249, +56,248,125,246,218,244,177,243,3,243,116,242,209,241,86,241,54,241,90,241,205,241,117,242,40,243,25,244,81,245,165,246, +226,247,240,248,30,250,134,251,21,253,245,254,231,0,203,2,234,4,55,7,164,9,7,12,68,14,215,16,193,19,160,22, +104,25,216,27,8,30,73,32,68,34,190,35,196,36,71,37,121,37,136,37,105,37,38,37,216,36,103,36,152,35,128,34, +31,33,77,31,114,29,204,27,27,26,113,24,223,22,163,21,27,21,230,20,159,20,83,20,54,20,210,20,52,22,234,23, +231,25,62,28,245,30,11,34,81,37,126,40,88,43,85,46,255,49,219,53,111,57,200,60,32,64,180,67,236,70,3,73, +83,74,120,75,170,76,149,77,162,77,250,76,22,76,247,74,70,73,157,70,91,67,45,64,13,61,194,57,89,54,3,51, +224,47,206,44,196,41,205,38,228,35,20,33,65,30,106,27,170,24,13,22,200,19,135,17,229,14,119,12,123,10,176,8, +49,7,195,5,76,4,30,3,6,2,215,0,177,255,142,254,95,253,43,252,242,250,130,249,209,247,26,246,45,244,229,241, +142,239,87,237,134,235,19,234,153,232,72,231,59,230,60,229,83,228,95,227,135,226,57,226,56,226,68,226,127,226,236,226, +96,227,169,227,183,227,154,227,88,227,214,226,217,225,121,224,214,222,236,220,249,218,196,216,5,214,96,211,253,208,134,206, +20,204,131,201,221,198,114,196,21,194,170,191,51,189,201,186,221,184,136,183,183,182,97,182,71,182,168,182,206,183,110,185, +78,187,84,189,102,191,162,193,20,196,127,198,148,200,106,202,57,204,16,206,14,208,9,210,216,211,220,213,8,216,21,218, +10,220,203,221,123,223,41,225,126,226,164,227,191,228,155,229,73,230,224,230,147,231,99,232,254,232,198,233,60,235,54,237, +95,239,100,241,113,243,252,245,219,248,202,251,176,254,93,1,219,3,55,6,111,8,109,10,24,12,146,13,232,14,33,16, +100,17,134,18,80,19,190,19,231,19,240,19,167,19,253,18,53,18,57,17,223,15,252,13,147,11,52,9,232,6,98,4, +228,1,112,255,9,253,7,251,91,249,0,248,36,247,180,246,136,246,131,246,198,246,66,247,171,247,26,248,134,248,214,248, +112,249,78,250,43,251,28,252,21,253,39,254,116,255,189,0,215,1,19,3,212,4,240,6,3,9,21,11,56,13,141,15, +61,18,255,20,173,23,75,26,210,28,84,31,101,33,222,34,109,36,17,38,98,39,102,40,245,40,243,40,105,40,130,39, +169,38,147,37,153,35,214,32,240,29,124,27,103,25,71,23,49,21,121,19,79,18,141,17,223,16,88,16,26,16,65,16, +232,16,225,17,59,19,43,21,168,23,209,26,86,30,164,33,227,36,91,40,62,44,163,48,242,52,174,56,10,60,88,63, +119,66,214,68,74,70,56,71,224,71,56,72,243,71,5,71,167,69,212,67,205,65,197,63,128,61,7,59,74,56,83,53, +165,50,6,48,27,45,24,42,242,38,183,35,130,32,38,29,239,25,37,23,164,20,78,18,243,15,173,13,242,11,197,10, +169,9,76,8,217,6,125,5,56,4,247,2,80,1,58,255,58,253,101,251,160,249,186,247,135,245,120,243,178,241,220,239, +12,238,64,236,148,234,97,233,130,232,168,231,151,230,68,229,22,228,35,227,94,226,251,225,235,225,38,226,175,226,135,227, +228,228,150,230,56,232,141,233,87,234,206,234,58,235,84,235,217,234,197,233,42,232,252,229,56,227,84,224,121,221,67,218, +195,214,107,211,145,208,17,206,98,203,88,200,32,197,7,194,65,191,165,188,58,186,27,184,75,182,53,181,207,180,186,180, +57,181,84,182,226,183,235,185,22,188,110,190,42,193,218,195,64,198,114,200,161,202,39,205,242,207,164,210,37,213,167,215, +88,218,21,221,197,223,108,226,196,228,158,230,10,232,81,233,171,234,221,235,189,236,84,237,186,237,94,238,54,239,0,240, +252,240,58,242,229,243,58,246,181,248,8,251,84,253,155,255,25,2,170,4,245,6,44,9,116,11,177,13,188,15,97,17, +202,18,47,20,127,21,122,22,228,22,235,22,189,22,50,22,62,21,235,19,119,18,1,17,13,15,102,12,107,9,132,6, +177,3,133,0,29,253,39,250,221,247,21,246,125,244,3,243,1,242,112,241,41,241,9,241,210,240,236,240,148,241,67,242, +240,242,239,243,93,245,49,247,12,249,170,250,40,252,236,253,65,0,181,2,247,4,55,7,94,9,132,11,207,13,232,15, +173,17,37,19,76,20,95,21,134,22,179,23,171,24,103,25,47,26,203,26,237,26,210,26,135,26,12,26,133,25,212,24, +223,23,216,22,23,22,184,21,102,21,206,20,236,19,47,19,32,19,142,19,12,20,99,20,148,20,19,21,236,21,189,22, +155,23,149,24,189,25,47,27,184,28,126,30,151,32,149,34,141,36,171,38,187,40,182,42,158,44,156,46,194,48,191,50, +112,52,206,53,222,54,240,55,52,57,147,58,191,59,124,60,8,61,144,61,249,61,51,62,48,62,251,61,120,61,145,60, +139,59,79,58,152,56,109,54,227,51,52,49,99,46,38,43,155,39,28,36,237,32,0,30,223,26,154,23,131,20,115,17, +135,14,13,12,4,10,52,8,110,6,223,4,138,3,32,2,211,0,224,255,56,255,165,254,226,253,49,253,15,253,60,253, +54,253,204,252,31,252,115,251,235,250,117,250,190,249,202,248,242,247,5,247,222,245,167,244,80,243,27,242,21,241,210,239, +139,238,99,237,36,236,9,235,17,234,6,233,222,231,97,230,158,228,242,226,137,225,87,224,21,223,162,221,45,220,220,218, +197,217,202,216,156,215,13,214,49,212,103,210,183,208,164,206,14,204,102,201,18,199,235,196,175,194,167,192,17,191,236,189, +80,189,252,188,195,188,233,188,135,189,135,190,195,191,43,193,239,194,221,196,187,198,149,200,92,202,95,204,206,206,65,209, +190,211,84,214,189,216,4,219,48,221,41,223,217,224,16,226,252,226,214,227,174,228,162,229,139,230,80,231,52,232,54,233, +47,234,40,235,33,236,31,237,40,238,55,239,67,240,90,241,123,242,120,243,110,244,144,245,211,246,114,248,104,250,79,252, +77,254,126,0,141,2,125,4,83,6,195,7,159,8,13,9,95,9,188,9,15,10,8,10,121,9,173,8,160,7,36,6, +156,4,40,3,160,1,49,0,213,254,131,253,61,252,197,250,64,249,234,247,177,246,152,245,146,244,175,243,38,243,222,242, +216,242,33,243,119,243,176,243,217,243,29,244,153,244,52,245,231,245,171,246,134,247,179,248,83,250,59,252,6,254,136,255, +48,1,76,3,193,5,130,8,95,11,64,14,82,17,156,20,237,23,253,26,175,29,27,32,80,34,68,36,197,37,182,38, +49,39,61,39,249,38,141,38,215,37,248,36,7,36,210,34,167,33,192,32,200,31,173,30,152,29,170,28,3,28,170,27, +164,27,245,27,170,28,205,29,52,31,215,32,200,34,0,37,134,39,37,42,144,44,174,46,133,48,111,50,163,52,202,54, +207,56,185,58,92,60,223,61,82,63,117,64,57,65,189,65,52,66,147,66,157,66,156,66,210,66,214,66,105,66,150,65, +65,64,137,62,158,60,78,58,152,55,183,52,139,49,42,46,241,42,206,39,188,36,179,33,140,30,211,27,190,25,138,23, +6,21,129,18,25,16,240,13,208,11,161,9,211,7,143,6,172,5,14,5,156,4,69,4,230,3,116,3,255,2,127,2, +252,1,57,1,224,255,37,254,76,252,69,250,243,247,78,245,150,242,11,240,150,237,64,235,35,233,39,231,87,229,194,227, +77,226,234,224,185,223,193,222,224,221,45,221,212,220,184,220,177,220,185,220,180,220,135,220,99,220,138,220,185,220,109,220, +160,219,150,218,107,217,241,215,7,214,250,211,238,209,180,207,70,205,166,202,250,199,98,197,151,194,183,191,45,189,229,186, +250,184,179,183,245,182,185,182,255,182,151,183,126,184,194,185,78,187,241,188,142,190,63,192,16,194,255,195,52,198,184,200, +78,203,176,205,210,207,237,209,25,212,61,214,67,216,9,218,130,219,203,220,249,221,3,223,232,223,221,224,17,226,93,227, +161,228,5,230,171,231,109,233,20,235,172,236,102,238,29,240,155,241,28,243,231,244,191,246,112,248,34,250,225,251,207,253, +19,0,88,2,135,4,214,6,255,8,206,10,86,12,139,13,161,14,150,15,36,16,126,16,184,16,138,16,51,16,252,15, +194,15,70,15,108,14,89,13,42,12,196,10,52,9,159,7,224,5,187,3,90,1,40,255,83,253,216,251,175,250,180,249, +218,248,63,248,250,247,24,248,119,248,208,248,14,249,72,249,142,249,248,249,142,250,78,251,61,252,95,253,182,254,67,0, +230,1,137,3,73,5,38,7,27,9,76,11,180,13,93,16,97,19,145,22,224,25,87,29,151,32,128,35,88,38,40,41, +198,43,219,45,69,47,89,48,28,49,55,49,142,48,56,47,119,45,94,43,171,40,157,37,191,34,39,32,161,29,18,27, +190,24,31,23,48,22,163,21,117,21,198,21,190,22,68,24,237,25,198,27,65,30,78,33,147,36,227,39,13,43,14,46, +33,49,33,52,188,54,21,57,116,59,186,61,149,63,233,64,213,65,152,66,85,67,216,67,239,67,166,67,237,66,202,65, +132,64,29,63,96,61,53,59,146,56,142,53,75,50,202,46,72,43,13,40,9,37,38,34,112,31,242,28,123,26,197,23, +238,20,26,18,58,15,114,12,239,9,201,7,31,6,214,4,226,3,87,3,204,2,239,1,21,1,88,0,123,255,117,254, +90,253,80,252,103,251,65,250,131,248,97,246,50,244,239,241,109,239,195,236,63,234,254,231,235,229,226,227,215,225,5,224, +154,222,124,221,150,220,7,220,3,220,127,220,25,221,179,221,132,222,147,223,187,224,178,225,68,226,197,226,85,227,140,227, +105,227,59,227,220,226,10,226,180,224,235,222,211,220,90,218,94,215,235,211,29,208,32,204,64,200,184,196,186,193,79,191, +94,189,213,187,204,186,82,186,46,186,60,186,216,186,27,188,143,189,16,191,197,192,165,194,152,196,137,198,122,200,157,202, +22,205,239,207,245,210,181,213,24,216,79,218,71,220,218,221,16,223,14,224,253,224,194,225,91,226,45,227,74,228,119,229, +194,230,61,232,190,233,32,235,100,236,159,237,184,238,165,239,192,240,66,242,241,243,149,245,23,247,170,248,169,250,230,252, +19,255,87,1,209,3,76,6,136,8,87,10,220,11,95,13,207,14,225,15,143,16,22,17,121,17,120,17,15,17,123,16, +223,15,46,15,50,14,236,12,155,11,50,10,112,8,95,6,66,4,99,2,179,0,190,254,130,252,126,250,207,248,66,247, +217,245,208,244,51,244,177,243,35,243,195,242,150,242,116,242,103,242,137,242,239,242,165,243,156,244,205,245,72,247,53,249, +143,251,207,253,200,255,244,1,103,4,244,6,165,9,89,12,18,15,19,18,43,21,19,24,226,26,137,29,226,31,232,33, +164,35,60,37,172,38,165,39,233,39,104,39,73,38,200,36,235,34,208,32,186,30,160,28,124,26,119,24,151,22,220,20, +129,19,154,18,239,17,123,17,123,17,9,18,26,19,162,20,126,22,165,24,28,27,204,29,195,32,0,36,53,39,71,42, +61,45,241,47,112,50,198,52,194,54,114,56,243,57,57,59,82,60,45,61,190,61,37,62,81,62,61,62,13,62,159,61, +12,61,172,60,85,60,191,59,236,58,222,57,173,56,91,55,177,53,164,51,99,49,18,47,166,44,234,41,6,39,109,36, +35,34,249,31,194,29,83,27,224,24,163,22,57,20,111,17,187,14,110,12,99,10,131,8,211,6,63,5,192,3,109,2, +46,1,218,255,114,254,5,253,161,251,79,250,240,248,108,247,160,245,110,243,25,241,12,239,90,237,218,235,64,234,107,232, +172,230,80,229,120,228,35,228,13,228,9,228,37,228,94,228,194,228,86,229,218,229,15,230,192,229,3,229,84,228,202,227, +31,227,82,226,121,225,171,224,243,223,242,222,106,221,136,219,95,217,230,214,14,212,226,208,190,205,196,202,185,199,165,196, +196,193,73,191,101,189,18,188,89,187,92,187,209,187,90,188,4,189,249,189,76,191,242,192,158,194,18,196,84,197,97,198, +79,199,131,200,55,202,58,204,137,206,69,209,35,212,217,214,104,217,197,219,243,221,245,223,151,225,216,226,206,227,103,228, +227,228,150,229,105,230,64,231,9,232,202,232,219,233,96,235,20,237,195,238,101,240,44,242,50,244,44,246,246,247,198,249, +200,251,237,253,225,255,133,1,101,3,163,5,155,7,23,9,91,10,141,11,182,12,177,13,73,14,164,14,238,14,210,14, +255,13,212,12,225,11,31,11,63,10,39,9,219,7,118,6,252,4,52,3,39,1,34,255,62,253,119,251,209,249,51,248, +132,246,233,244,173,243,215,242,43,242,159,241,75,241,27,241,254,240,1,241,60,241,222,241,219,242,10,244,113,245,31,247, +19,249,65,251,119,253,187,255,65,2,249,4,180,7,107,10,21,13,190,15,108,18,0,21,132,23,48,26,21,29,221,31, +10,34,121,35,110,36,55,37,238,37,91,38,67,38,193,37,218,36,151,35,64,34,187,32,199,30,199,28,8,27,73,25, +114,23,209,21,207,20,137,20,150,20,215,20,194,21,104,23,99,25,131,27,194,29,44,32,205,34,119,37,238,39,82,42, +239,44,219,47,225,50,205,53,152,56,78,59,227,61,35,64,230,65,65,67,41,68,132,68,136,68,114,68,4,68,197,66, +194,64,126,62,49,60,181,57,245,54,4,52,80,49,76,47,170,45,239,43,61,42,209,40,177,39,174,38,98,37,209,35, +106,34,44,33,196,31,29,30,87,28,159,26,12,25,132,23,225,21,34,20,98,18,140,16,133,14,123,12,104,10,255,7, +96,5,201,2,30,0,84,253,118,250,144,247,204,244,80,242,24,240,6,238,36,236,218,234,61,234,214,233,94,233,214,232, +101,232,73,232,88,232,67,232,23,232,207,231,128,231,101,231,77,231,40,231,71,231,172,231,60,232,217,232,46,233,44,233, +2,233,176,232,21,232,231,230,243,228,128,226,208,223,195,220,58,217,88,213,114,209,225,205,197,202,241,199,31,197,93,194, +236,191,213,189,27,188,198,186,211,185,107,185,171,185,102,186,113,187,166,188,2,190,175,191,181,193,235,195,40,198,106,200, +234,202,141,205,230,207,224,209,129,211,231,212,110,214,229,215,216,216,139,217,106,218,134,219,182,220,175,221,130,222,137,223, +186,224,242,225,27,227,40,228,77,229,154,230,236,231,61,233,129,234,205,235,63,237,171,238,29,240,196,241,111,243,17,245, +204,246,146,248,115,250,139,252,201,254,37,1,128,3,149,5,66,7,150,8,196,9,215,10,162,11,27,12,81,12,91,12, +60,12,164,11,134,10,71,9,254,7,141,6,8,5,155,3,89,2,21,1,167,255,53,254,190,252,49,251,190,249,81,248, +216,246,160,245,201,244,63,244,3,244,13,244,117,244,79,245,123,246,219,247,67,249,160,250,12,252,70,253,32,254,246,254, +232,255,199,0,136,1,32,2,139,2,242,2,108,3,226,3,48,4,100,4,209,4,203,5,99,7,64,9,35,11,76,13, +184,15,237,17,219,19,203,21,186,23,115,25,245,26,128,28,49,30,197,31,252,32,211,33,122,34,17,35,89,35,47,35, +195,34,46,34,138,33,223,32,215,31,115,30,58,29,133,28,120,28,189,28,228,28,92,29,186,30,205,32,46,35,167,37, +97,40,197,43,134,47,255,50,54,54,82,57,83,60,68,63,211,65,149,67,187,68,174,69,124,70,229,70,157,70,174,69, +127,68,16,67,242,64,80,62,232,59,233,57,238,55,222,53,251,51,106,50,11,49,175,47,91,46,20,45,189,43,80,42, +237,40,133,39,204,37,156,35,40,33,168,30,54,28,207,25,60,23,129,20,31,18,66,16,161,14,33,13,190,11,105,10, +14,9,136,7,240,5,151,4,148,3,180,2,174,1,134,0,123,255,122,254,46,253,128,251,142,249,136,247,127,245,98,243, +96,241,183,239,49,238,155,236,14,235,143,233,9,232,116,230,222,228,131,227,106,226,88,225,107,224,17,224,86,224,204,224, +228,224,108,224,203,223,89,223,163,222,40,221,48,219,32,217,229,214,80,212,112,209,142,206,241,203,191,201,247,199,86,198, +164,196,38,195,28,194,90,193,166,192,230,191,39,191,140,190,12,190,165,189,119,189,139,189,15,190,69,191,8,193,237,194, +156,196,36,198,216,199,160,201,33,203,76,204,69,205,83,206,167,207,13,209,95,210,148,211,158,212,204,213,88,215,235,216, +82,218,184,219,48,221,173,222,31,224,130,225,203,226,242,227,9,229,24,230,48,231,139,232,41,234,241,235,10,238,93,240, +140,242,163,244,219,246,16,249,0,251,199,252,167,254,144,0,102,2,29,4,101,5,85,6,126,7,228,8,48,10,88,11, +98,12,105,13,143,14,146,15,31,16,68,16,51,16,254,15,125,15,137,14,62,13,231,11,147,10,6,9,78,7,213,5, +167,4,142,3,142,2,170,1,233,0,100,0,19,0,229,255,171,255,82,255,32,255,237,254,105,254,226,253,116,253,207,252, +251,251,29,251,111,250,51,250,67,250,132,250,247,250,104,251,230,251,135,252,15,253,175,253,181,254,2,0,153,1,147,3, +236,5,171,8,138,11,51,14,177,16,34,19,155,21,36,24,153,26,231,28,36,31,62,33,244,34,46,36,18,37,176,37, +6,38,37,38,223,37,30,37,99,36,1,36,189,35,80,35,164,34,21,34,23,34,103,34,131,34,119,34,178,34,112,35, +108,36,111,37,200,38,168,40,243,42,140,45,44,48,176,50,78,53,12,56,155,58,168,60,41,62,88,63,84,64,22,65, +124,65,56,65,59,64,222,62,109,61,224,59,240,57,164,55,87,53,239,50,50,48,94,45,204,42,209,40,115,39,65,38, +62,37,170,36,36,36,81,35,30,34,123,32,173,30,212,28,181,26,101,24,23,22,232,19,247,17,31,16,106,14,44,13, +59,12,69,11,79,10,75,9,34,8,207,6,71,5,168,3,2,2,57,0,125,254,39,253,20,252,193,250,29,249,143,247, +79,246,57,245,251,243,103,242,188,240,46,239,145,237,213,235,11,234,34,232,36,230,20,228,11,226,125,224,170,223,94,223, +100,223,173,223,54,224,224,224,104,225,164,225,125,225,235,224,0,224,195,222,90,221,225,219,28,218,240,215,123,213,228,210, +128,208,104,206,101,204,115,202,131,200,128,198,179,196,53,195,229,193,206,192,238,191,77,191,241,190,151,190,80,190,131,190, +59,191,77,192,141,193,235,194,151,196,137,198,136,200,128,202,96,204,16,206,134,207,203,208,251,209,39,211,83,212,139,213, +186,214,217,215,16,217,90,218,181,219,62,221,207,222,41,224,65,225,33,226,228,226,167,227,100,228,31,229,29,230,153,231, +100,233,66,235,102,237,9,240,8,243,21,246,226,248,110,251,254,253,140,0,239,2,44,5,51,7,241,8,108,10,199,11, +27,13,50,14,226,14,70,15,101,15,80,15,5,15,72,14,86,13,145,12,172,11,104,10,251,8,130,7,19,6,183,4, +92,3,16,2,243,0,31,0,140,255,17,255,197,254,182,254,164,254,145,254,124,254,33,254,133,253,222,252,74,252,195,251, +233,250,165,249,148,248,219,247,12,247,28,246,74,245,191,244,168,244,46,245,48,246,81,247,113,248,208,249,162,251,220,253, +82,0,229,2,168,5,162,8,187,11,238,14,70,18,222,21,175,25,99,29,159,32,67,35,140,37,236,39,65,42,5,44, +28,45,182,45,3,46,39,46,5,46,127,45,133,44,235,42,193,40,83,38,233,35,207,33,14,32,144,30,157,29,90,29, +138,29,5,30,209,30,1,32,165,33,167,35,253,37,155,40,94,43,40,46,221,48,115,51,212,53,187,55,63,57,168,58, +220,59,185,60,54,61,97,61,155,61,211,61,116,61,124,60,71,59,22,58,1,57,157,55,180,53,226,51,140,50,140,49, +169,48,169,47,183,46,43,46,181,45,198,44,81,43,141,41,131,39,11,37,22,34,250,30,52,28,205,25,110,23,255,20, +175,18,142,16,154,14,200,12,18,11,124,9,222,7,44,6,158,4,53,3,223,1,160,0,42,255,149,253,86,252,33,251, +151,249,246,247,54,246,68,244,90,242,118,240,150,238,244,236,150,235,96,234,50,233,236,231,172,230,180,229,20,229,126,228, +204,227,86,227,102,227,243,227,192,228,93,229,169,229,225,229,223,229,112,229,154,228,71,227,177,225,51,224,140,222,129,220, +69,218,13,216,237,213,175,211,31,209,142,206,60,204,14,202,237,199,204,197,173,195,183,193,8,192,173,190,173,189,18,189, +223,188,6,189,140,189,126,190,196,191,92,193,53,195,23,197,244,198,216,200,165,202,66,204,170,205,233,206,5,208,244,208, +248,209,110,211,51,213,206,214,31,216,161,217,174,219,233,221,207,223,53,225,63,226,80,227,121,228,126,229,102,230,66,231, +63,232,180,233,111,235,49,237,78,239,179,241,11,244,97,246,158,248,176,250,191,252,165,254,85,0,7,2,167,3,250,4, +244,5,200,6,191,7,180,8,90,9,169,9,187,9,179,9,138,9,0,9,41,8,71,7,54,6,194,4,8,3,89,1, +241,255,184,254,144,253,146,252,200,251,63,251,242,250,161,250,71,250,20,250,216,249,69,249,147,248,47,248,40,248,92,248, +138,248,82,248,214,247,144,247,96,247,2,247,186,246,178,246,248,246,174,247,120,248,3,249,166,249,151,250,149,251,148,252, +193,253,29,255,192,0,221,2,77,5,196,7,93,10,37,13,242,15,195,18,122,21,244,23,79,26,140,28,170,30,198,32, +142,34,189,35,131,36,247,36,23,37,212,36,241,35,144,34,22,33,162,31,54,30,190,28,51,27,225,25,218,24,229,23, +241,22,37,22,230,21,121,22,144,23,6,25,24,27,222,29,90,33,102,37,158,41,215,45,30,50,97,54,123,58,50,62, +83,65,219,67,212,69,69,71,26,72,51,72,145,71,106,70,39,69,2,68,184,66,31,65,117,63,245,61,172,60,110,59, +227,57,23,56,117,54,35,53,171,51,145,49,14,47,162,44,124,42,132,40,60,38,66,35,38,32,141,29,77,27,6,25, +166,22,129,20,245,18,227,17,251,16,29,16,67,15,125,14,163,13,103,12,223,10,108,9,77,8,92,7,82,6,76,5, +75,4,242,2,67,1,103,255,95,253,49,251,167,248,219,245,114,243,100,241,41,239,178,236,40,234,198,231,187,229,247,227, +149,226,185,225,87,225,112,225,205,225,56,226,219,226,167,227,93,228,2,229,111,229,105,229,16,229,116,228,79,227,142,225, +154,223,166,221,127,219,50,217,212,214,78,212,214,209,98,207,149,204,173,201,19,199,181,196,128,194,126,192,164,190,254,188, +198,187,27,187,197,186,214,186,198,187,117,189,106,191,132,193,172,195,213,197,2,200,23,202,27,204,7,206,220,207,218,209, +174,211,234,212,9,214,80,215,126,216,141,217,86,218,209,218,97,219,12,220,182,220,101,221,251,221,121,222,254,222,151,223, +110,224,167,225,39,227,198,228,105,230,48,232,50,234,61,236,54,238,35,240,2,242,201,243,101,245,254,246,248,248,75,251, +129,253,106,255,72,1,97,3,164,5,194,7,141,9,29,11,138,12,173,13,109,14,228,14,8,15,210,14,91,14,167,13, +203,12,186,11,52,10,100,8,171,6,250,4,41,3,51,1,58,255,172,253,161,252,176,251,147,250,129,249,232,248,217,248, +255,248,39,249,67,249,77,249,84,249,42,249,199,248,154,248,172,248,199,248,27,249,164,249,43,250,208,250,171,251,191,252, +25,254,141,255,3,1,153,2,80,4,56,6,126,8,7,11,174,13,119,16,91,19,49,22,227,24,157,27,116,30,10,33, +39,35,219,36,236,37,132,38,22,39,61,39,140,38,115,37,73,36,51,35,61,34,242,32,83,31,230,29,157,28,85,27, +75,26,164,25,125,25,179,25,4,26,190,26,17,28,183,29,181,31,8,34,81,36,129,38,214,40,93,43,11,46,164,48, +226,50,240,52,6,55,210,56,20,58,249,58,162,59,57,60,6,61,248,61,205,62,109,63,205,63,241,63,191,63,5,63, +231,61,147,60,244,58,36,57,92,55,153,53,168,51,125,49,74,47,23,45,166,42,245,39,42,37,87,34,139,31,198,28, +22,26,148,23,62,21,13,19,214,16,127,14,73,12,93,10,203,8,143,7,48,6,157,4,101,3,156,2,246,1,53,1, +57,0,97,255,211,254,19,254,238,252,113,251,165,249,177,247,109,245,212,242,82,240,251,237,187,235,150,233,127,231,161,229, +21,228,190,226,167,225,184,224,225,223,57,223,136,222,196,221,50,221,227,220,243,220,70,221,94,221,65,221,96,221,208,221, +60,222,59,222,209,221,61,221,77,220,198,218,212,216,184,214,129,212,4,210,60,207,103,204,166,201,20,199,215,196,254,194, +145,193,125,192,156,191,221,190,52,190,196,189,187,189,25,190,216,190,211,191,13,193,193,194,140,196,9,198,147,199,73,201, +4,203,209,204,156,206,103,208,77,210,43,212,227,213,78,215,146,216,66,218,66,220,8,222,144,223,233,224,77,226,5,228, +194,229,70,231,185,232,47,234,201,235,115,237,226,238,42,240,116,241,196,242,48,244,200,245,144,247,91,249,19,251,8,253, +94,255,205,1,24,4,35,6,5,8,229,9,172,11,91,13,5,15,100,16,58,17,128,17,74,17,198,16,18,16,46,15, +12,14,176,12,95,11,54,10,252,8,131,7,206,5,18,4,142,2,64,1,25,0,14,255,33,254,97,253,187,252,55,252, +18,252,49,252,92,252,157,252,228,252,9,253,249,252,184,252,117,252,55,252,218,251,124,251,49,251,251,250,8,251,107,251, +11,252,175,252,29,253,139,253,84,254,137,255,24,1,253,2,83,5,38,8,60,11,109,14,174,17,203,20,167,23,76,26, +208,28,38,31,22,33,145,34,191,35,189,36,139,37,246,37,229,37,146,37,27,37,142,36,22,36,136,35,154,34,104,33, +81,32,152,31,249,30,49,30,176,29,164,29,152,29,138,29,197,29,96,30,98,31,165,32,223,33,245,34,12,36,85,37, +212,38,114,40,42,42,240,43,204,45,202,47,182,49,97,51,239,52,146,54,47,56,154,57,231,58,33,60,95,61,215,62, +54,64,232,64,217,64,43,64,39,63,21,62,160,60,112,58,205,55,42,53,198,50,82,48,98,45,59,42,11,39,177,35, +88,32,8,29,207,25,246,22,69,20,116,17,174,14,2,12,143,9,158,7,44,6,29,5,71,4,132,3,222,2,90,2, +245,1,144,1,233,0,0,0,239,254,163,253,27,252,48,250,194,247,48,245,229,242,190,240,97,238,242,235,15,234,221,232, +219,231,165,230,80,229,72,228,152,227,185,226,140,225,109,224,162,223,66,223,17,223,212,222,214,222,66,223,254,223,234,224, +196,225,132,226,59,227,160,227,143,227,25,227,37,226,168,224,184,222,96,220,192,217,253,214,19,212,227,208,162,205,164,202, +196,199,233,196,95,194,72,192,154,190,33,189,177,187,161,186,16,186,181,185,185,185,37,186,189,186,178,187,33,189,4,191, +79,193,165,195,9,198,213,200,210,203,187,206,141,209,100,212,106,215,75,218,160,220,154,222,103,224,41,226,7,228,227,229, +172,231,76,233,133,234,143,235,176,236,172,237,90,238,196,238,251,238,55,239,153,239,47,240,24,241,58,242,83,243,97,244, +139,245,218,246,95,248,41,250,23,252,15,254,4,0,238,1,2,4,67,6,96,8,99,10,49,12,108,13,95,14,97,15, +42,16,146,16,141,16,17,16,57,15,253,13,115,12,208,10,22,9,78,7,88,5,3,3,142,0,37,254,207,251,170,249, +143,247,156,245,34,244,7,243,118,242,136,242,158,242,138,242,145,242,208,242,111,243,63,244,6,245,25,246,116,247,198,248, +50,250,166,251,243,252,99,254,33,0,228,1,127,3,38,5,29,7,97,9,213,11,62,14,57,16,226,17,209,19,37,22, +113,24,96,26,254,27,159,29,125,31,60,33,97,34,34,35,209,35,68,36,107,36,48,36,104,35,126,34,194,33,242,32, +19,32,60,31,114,30,238,29,152,29,54,29,175,28,213,27,9,27,244,26,154,27,193,28,24,30,121,31,103,33,236,35, +115,38,211,40,21,43,124,45,127,48,230,51,54,55,70,58,7,61,156,63,252,65,204,67,254,68,186,69,27,70,55,70, +235,69,34,69,11,68,190,66,54,65,114,63,119,61,77,59,21,57,6,55,1,53,167,50,14,48,134,45,52,43,11,41, +167,38,197,35,176,32,186,29,245,26,98,24,249,21,182,19,107,17,247,14,151,12,111,10,111,8,153,6,236,4,107,3, +20,2,211,0,213,255,85,255,64,255,55,255,220,254,54,254,128,253,215,252,77,252,157,251,117,250,22,249,174,247,36,246, +129,244,167,242,129,240,58,238,223,235,158,233,187,231,46,230,224,228,151,227,65,226,47,225,72,224,99,223,214,222,181,222, +216,222,8,223,251,222,253,222,93,223,141,223,35,223,61,222,254,220,139,219,224,217,221,215,160,213,89,211,31,209,195,206, +252,203,27,201,155,198,54,196,140,193,227,190,150,188,168,186,46,185,49,184,149,183,142,183,78,184,152,185,93,187,192,189, +136,192,110,195,62,198,254,200,254,203,9,207,173,209,239,211,232,213,215,215,248,217,239,219,111,221,161,222,179,223,195,224, +165,225,22,226,89,226,200,226,98,227,225,227,26,228,125,228,98,229,107,230,108,231,154,232,15,234,228,235,222,237,174,239, +119,241,97,243,87,245,61,247,19,249,239,250,169,252,20,254,110,255,247,0,142,2,240,3,12,5,20,6,8,7,196,7, +91,8,184,8,216,8,252,8,26,9,36,9,60,9,51,9,237,8,149,8,58,8,203,7,24,7,20,6,240,4,145,3, +245,1,119,0,31,255,204,253,128,252,63,251,66,250,208,249,185,249,149,249,89,249,98,249,196,249,51,250,160,250,247,250, +18,251,53,251,136,251,236,251,104,252,241,252,118,253,21,254,194,254,89,255,233,255,165,0,217,1,163,3,236,5,141,8, +107,11,130,14,180,17,207,20,206,23,134,26,255,28,139,31,248,33,4,36,219,37,102,39,157,40,164,41,68,42,79,42, +212,41,8,41,54,40,54,39,226,37,166,36,190,35,56,35,247,34,122,34,191,33,75,33,61,33,120,33,212,33,96,34, +110,35,187,36,204,37,206,38,19,40,190,41,183,43,164,45,132,47,126,49,109,51,81,53,69,55,65,57,58,59,253,60, +90,62,115,63,119,64,88,65,234,65,243,65,107,65,174,64,218,63,136,62,187,60,210,58,152,56,234,53,10,51,247,47, +233,44,26,42,31,39,209,35,108,32,245,28,143,25,86,22,64,19,108,16,212,13,145,11,231,9,187,8,10,8,180,7, +59,7,141,6,199,5,232,4,79,4,14,4,179,3,253,2,202,1,61,0,159,254,165,252,21,250,56,247,64,244,67,241, +122,238,7,236,231,233,4,232,60,230,84,228,70,226,107,224,228,222,166,221,187,220,245,219,100,219,84,219,150,219,255,219, +173,220,140,221,146,222,203,223,21,225,52,226,240,226,57,227,47,227,214,226,19,226,157,224,84,222,150,219,195,216,7,214, +96,211,148,208,190,205,36,203,193,200,146,198,150,196,183,194,246,192,73,191,223,189,250,188,104,188,44,188,134,188,65,189, +44,190,58,191,125,192,53,194,39,196,42,198,131,200,13,203,198,205,218,208,202,211,111,214,244,216,2,219,143,220,207,221, +195,222,203,223,243,224,238,225,245,226,19,228,15,229,17,230,39,231,43,232,51,233,73,234,91,235,92,236,117,237,209,238, +49,240,79,241,103,242,197,243,69,245,175,246,60,248,44,250,74,252,90,254,106,0,163,2,24,5,194,7,145,10,74,13, +154,15,126,17,239,18,193,19,26,20,30,20,202,19,71,19,135,18,129,17,116,16,106,15,79,14,213,12,135,10,220,7, +123,5,53,3,232,0,156,254,84,252,104,250,220,248,125,247,144,246,65,246,130,246,40,247,216,247,132,248,125,249,243,250, +165,252,209,253,68,254,141,254,188,254,175,254,177,254,232,254,66,255,179,255,88,0,122,1,10,3,163,4,1,6,30,7, +98,8,56,10,104,12,188,14,110,17,180,20,98,24,252,27,5,31,88,33,84,35,56,37,154,38,84,39,208,39,17,40, +8,40,201,39,37,39,86,38,130,37,31,36,45,34,43,32,88,30,253,28,4,28,28,27,85,26,155,25,16,25,80,25, +66,26,74,27,15,28,148,28,85,29,162,30,83,32,61,34,28,36,242,37,253,39,9,42,13,44,90,46,176,48,202,50, +203,52,202,54,212,56,228,58,202,60,95,62,122,63,219,63,155,63,64,63,7,63,132,62,95,61,171,59,116,57,237,54, +39,52,232,48,104,45,250,41,131,38,22,35,247,31,19,29,58,26,99,23,169,20,16,18,145,15,126,13,13,12,0,11, +66,10,214,9,127,9,21,9,179,8,77,8,161,7,158,6,120,5,80,4,36,3,195,1,226,255,181,253,154,251,145,249, +137,247,92,245,235,242,77,240,147,237,217,234,64,232,169,229,41,227,1,225,81,223,46,222,78,221,119,220,6,220,242,219, +251,219,88,220,15,221,252,221,34,223,82,224,152,225,255,226,35,228,251,228,186,229,64,230,104,230,59,230,211,229,32,229, +205,227,189,225,16,223,250,219,207,216,159,213,103,210,79,207,71,204,85,201,139,198,175,195,228,192,167,190,24,189,29,188, +140,187,90,187,173,187,104,188,76,189,76,190,142,191,78,193,102,195,177,197,122,200,141,203,116,206,87,209,11,212,84,214, +150,216,227,218,251,220,14,223,36,225,7,227,201,228,169,230,145,232,27,234,20,235,190,235,110,236,84,237,85,238,43,239, +193,239,58,240,216,240,180,241,147,242,94,243,57,244,61,245,124,246,231,247,124,249,107,251,162,253,228,255,34,2,76,4, +118,6,195,8,32,11,123,13,180,15,153,17,39,19,94,20,41,21,126,21,48,21,48,20,215,18,100,17,175,15,134,13, +4,11,85,8,135,5,155,2,135,255,98,252,105,249,202,246,187,244,67,243,3,242,251,240,125,240,139,240,32,241,33,242, +56,243,108,244,204,245,14,247,14,248,226,248,161,249,94,250,43,251,51,252,111,253,206,254,94,0,229,1,97,3,53,5, +82,7,138,9,245,11,115,14,247,16,131,19,238,21,43,24,26,26,163,27,9,29,78,30,86,31,47,32,175,32,215,32, +236,32,19,33,77,33,61,33,165,32,237,31,58,31,117,30,157,29,101,28,247,26,222,25,251,24,44,24,179,23,155,23, +3,24,219,24,188,25,150,26,112,27,51,28,31,29,82,30,139,31,167,32,196,33,39,35,245,36,1,39,4,41,214,42, +142,44,104,46,118,48,128,50,91,52,42,54,25,56,0,58,155,59,232,60,11,62,250,62,108,63,67,63,157,62,113,61, +227,59,33,58,228,55,248,52,143,49,248,45,165,42,177,39,178,36,139,33,134,30,195,27,40,25,141,22,249,19,156,17, +127,15,164,13,46,12,23,11,56,10,144,9,46,9,218,8,91,8,194,7,38,7,137,6,191,5,132,4,7,3,147,1, +20,0,119,254,149,252,75,250,5,248,24,246,97,244,194,242,1,241,36,239,126,237,233,235,58,234,171,232,74,231,21,230, +42,229,139,228,40,228,223,227,195,227,14,228,155,228,32,229,144,229,1,230,144,230,13,231,57,231,21,231,155,230,225,229, +235,228,82,227,46,225,241,222,165,220,77,218,182,215,144,212,67,209,64,206,122,203,238,200,120,198,35,196,51,194,138,192, +49,191,117,190,58,190,76,190,162,190,88,191,174,192,110,194,55,196,30,198,53,200,104,202,181,204,17,207,139,209,47,212, +209,214,57,217,74,219,4,221,113,222,148,223,145,224,127,225,80,226,17,227,189,227,81,228,0,229,193,229,121,230,61,231, +12,232,227,232,223,233,248,234,38,236,109,237,148,238,146,239,211,240,137,242,106,244,64,246,18,248,250,249,20,252,27,254, +180,255,39,1,203,2,127,4,33,6,159,7,241,8,46,10,64,11,21,12,156,12,163,12,75,12,202,11,242,10,179,9, +67,8,209,6,126,5,33,4,104,2,89,0,56,254,35,252,251,249,217,247,9,246,107,244,225,242,197,241,86,241,145,241, +56,242,251,242,218,243,209,244,186,245,153,246,54,247,132,247,238,247,125,248,10,249,142,249,238,249,140,250,178,251,235,252, +22,254,106,255,230,0,134,2,34,4,201,5,250,7,161,10,91,13,52,16,65,19,115,22,160,25,141,28,73,31,246,33, +135,36,214,38,196,40,110,42,201,43,162,44,36,45,81,45,8,45,110,44,97,43,188,41,205,39,174,37,107,35,62,33, +37,31,79,29,242,27,236,26,63,26,245,25,232,25,17,26,117,26,63,27,158,28,85,30,61,32,166,34,181,37,68,41, +254,44,124,48,170,51,182,54,175,57,130,60,37,63,155,65,219,67,227,69,154,71,184,72,14,73,157,72,126,71,219,69, +174,67,212,64,134,61,32,58,215,54,146,51,32,48,194,44,224,41,77,39,157,36,188,33,234,30,83,28,221,25,106,23, +7,21,227,18,58,17,254,15,8,15,77,14,145,13,194,12,40,12,182,11,17,11,9,10,190,8,137,7,83,6,197,4, +228,2,191,0,145,254,190,252,20,251,55,249,17,247,151,244,249,241,99,239,186,236,0,234,82,231,235,228,228,226,223,224, +218,222,49,221,199,219,138,218,140,217,194,216,110,216,192,216,160,217,255,218,143,220,20,222,142,223,185,224,116,225,197,225, +181,225,132,225,11,225,255,223,182,222,52,221,14,219,97,216,121,213,141,210,181,207,171,204,91,201,15,198,5,195,64,192, +181,189,178,187,100,186,80,185,108,184,38,184,104,184,234,184,150,185,111,186,184,187,149,189,226,191,116,194,33,197,239,199, +245,202,6,206,244,208,149,211,246,213,106,216,212,218,207,220,86,222,159,223,255,224,136,226,217,227,240,228,25,230,21,231, +159,231,21,232,210,232,194,233,179,234,143,235,88,236,72,237,149,238,55,240,12,242,253,243,27,246,151,248,84,251,12,254, +200,0,155,3,122,6,79,9,229,11,28,14,235,15,88,17,165,18,221,19,233,20,230,21,150,22,162,22,57,22,139,21, +160,20,139,19,65,18,208,16,67,15,133,13,167,11,171,9,133,7,99,5,92,3,60,1,217,254,97,252,40,250,31,248, +42,246,110,244,228,242,184,241,31,241,202,240,141,240,99,240,73,240,169,240,158,241,217,242,116,244,80,246,44,248,50,250, +76,252,128,254,3,1,131,3,230,5,88,8,185,10,44,13,184,15,3,18,49,20,86,22,32,24,170,25,72,27,247,28, +116,30,130,31,70,32,249,32,135,33,199,33,202,33,247,33,121,34,232,34,248,34,160,34,254,33,77,33,78,32,178,30, +193,28,225,26,112,25,143,24,224,23,82,23,37,23,108,23,83,24,163,25,22,27,27,29,205,31,158,34,80,37,195,39, +20,42,184,44,136,47,39,50,191,52,70,55,93,57,252,58,31,60,187,60,44,61,141,61,131,61,30,61,161,60,247,59, +55,59,80,58,219,56,252,54,20,53,35,51,50,49,94,47,188,45,83,44,229,42,70,41,143,39,213,37,21,36,10,34, +122,31,192,28,46,26,168,23,33,21,150,18,11,16,208,13,44,12,219,10,99,9,214,7,147,6,137,5,113,4,57,3, +29,2,106,1,215,0,252,255,239,254,172,253,85,252,56,251,249,249,92,248,171,246,236,244,89,243,19,242,124,240,132,238, +178,236,35,235,204,233,152,232,130,231,192,230,56,230,164,229,2,229,115,228,38,228,232,227,132,227,87,227,112,227,121,227, +124,227,112,227,19,227,91,226,115,225,147,224,153,223,47,222,111,220,128,218,108,216,72,214,234,211,89,209,215,206,70,204, +154,201,12,199,172,196,153,194,237,192,153,191,163,190,6,190,171,189,167,189,32,190,31,191,95,192,182,193,95,195,125,197, +16,200,27,203,45,206,225,208,101,211,233,213,105,216,198,218,214,220,175,222,125,224,56,226,201,227,43,229,130,230,196,231, +139,232,218,232,52,233,175,233,249,233,21,234,67,234,164,234,63,235,5,236,223,236,208,237,252,238,154,240,183,242,240,244, +226,246,134,248,242,249,106,251,26,253,186,254,74,0,31,2,235,3,98,5,187,6,9,8,74,9,119,10,74,11,170,11, +201,11,194,11,136,11,228,10,189,9,71,8,182,6,30,5,131,3,252,1,165,0,108,255,75,254,54,253,239,251,153,250, +99,249,18,248,204,246,228,245,69,245,222,244,155,244,82,244,18,244,232,243,223,243,4,244,72,244,197,244,109,245,0,246, +207,246,17,248,97,249,163,250,237,251,43,253,140,254,44,0,228,1,171,3,125,5,110,7,156,9,254,11,137,14,69,17, +39,20,11,23,171,25,202,27,91,29,150,30,192,31,210,32,189,33,111,34,147,34,102,34,138,34,198,34,151,34,227,33, +160,32,51,31,45,30,113,29,204,28,83,28,53,28,192,28,212,29,232,30,244,31,36,33,130,34,249,35,41,37,10,38, +46,39,200,40,148,42,90,44,6,46,211,47,5,50,92,52,79,54,164,55,159,56,185,57,0,59,4,60,149,60,22,61, +243,61,254,62,173,63,215,63,208,63,199,63,157,63,4,63,185,61,224,59,195,57,48,55,1,52,144,48,17,45,155,41, +86,38,22,35,205,31,216,28,52,26,125,23,156,20,188,17,9,15,180,12,212,10,94,9,85,8,209,7,163,7,95,7, +233,6,97,6,186,5,237,4,12,4,32,3,64,2,122,1,158,0,77,255,110,253,64,251,236,248,125,246,21,244,197,241, +141,239,97,237,39,235,17,233,70,231,144,229,226,227,80,226,234,224,210,223,239,222,51,222,207,221,161,221,150,221,208,221, +40,222,146,222,13,223,67,223,49,223,247,222,104,222,164,221,237,220,70,220,143,219,114,218,228,216,70,215,168,213,223,211, +187,209,49,207,148,204,24,202,189,199,190,197,47,196,247,194,29,194,161,193,107,193,100,193,146,193,27,194,219,194,155,195, +76,196,230,196,197,197,33,199,142,200,14,202,251,203,8,206,254,207,5,210,8,212,253,213,13,216,42,218,18,220,173,221, +21,223,66,224,67,225,95,226,103,227,26,228,199,228,161,229,136,230,112,231,87,232,66,233,62,234,93,235,192,236,104,238, +68,240,81,242,115,244,147,246,173,248,218,250,85,253,5,0,125,2,165,4,176,6,176,8,119,10,209,11,196,12,91,13, +154,13,164,13,144,13,94,13,14,13,149,12,252,11,73,11,140,10,218,9,246,8,219,7,218,6,222,5,205,4,185,3, +123,2,33,1,195,255,59,254,208,252,197,251,236,250,67,250,185,249,35,249,171,248,69,248,167,247,220,246,42,246,206,245, +187,245,188,245,186,245,193,245,38,246,56,247,215,248,193,250,191,252,245,254,191,1,210,4,201,7,190,10,168,13,128,16, +88,19,10,22,208,24,213,27,188,30,95,33,175,35,152,37,75,39,177,40,160,41,47,42,86,42,68,42,51,42,12,42, +207,41,57,41,254,39,136,38,25,37,165,35,99,34,94,33,141,32,9,32,151,31,22,31,206,30,249,30,114,31,219,31, +64,32,251,32,240,33,233,34,2,36,96,37,28,39,65,41,178,43,33,46,104,48,217,50,160,53,119,56,29,59,90,61, +41,63,205,64,55,66,61,67,214,67,201,67,2,67,184,65,27,64,66,62,7,60,91,57,113,54,81,51,30,48,16,45, +17,42,32,39,40,36,6,33,247,29,229,26,152,23,123,20,192,17,49,15,204,12,144,10,175,8,117,7,157,6,213,5, +41,5,150,4,251,3,88,3,161,2,148,1,78,0,60,255,85,254,89,253,77,252,78,251,148,250,248,249,232,248,101,247, +189,245,252,243,46,242,37,240,206,237,123,235,86,233,140,231,27,230,136,228,241,226,194,225,249,224,154,224,111,224,50,224, +59,224,149,224,238,224,59,225,95,225,79,225,25,225,145,224,203,223,221,222,186,221,113,220,220,218,237,216,230,214,166,212, +29,210,159,207,34,205,134,202,253,199,153,197,93,195,121,193,6,192,228,190,20,190,147,189,43,189,244,188,45,189,173,189, +112,190,158,191,254,192,89,194,197,195,154,197,18,200,167,202,253,204,110,207,14,210,190,212,87,215,97,217,7,219,219,220, +210,222,194,224,124,226,209,227,230,228,185,229,75,230,249,230,195,231,143,232,142,233,134,234,25,235,99,235,167,235,59,236, +93,237,197,238,14,240,119,241,98,243,163,245,247,247,76,250,165,252,46,255,213,1,61,4,108,6,115,8,77,10,252,11, +34,13,184,13,82,14,225,14,12,15,249,14,198,14,111,14,203,13,182,12,109,11,16,10,137,8,237,6,32,5,26,3, +23,1,25,255,43,253,101,251,158,249,207,247,49,246,20,245,157,244,104,244,57,244,98,244,8,245,238,245,217,246,233,247, +88,249,0,251,185,252,139,254,92,0,40,2,214,3,36,5,85,6,206,7,101,9,215,10,12,12,21,13,36,14,86,15, +158,16,243,17,94,19,211,20,42,22,93,23,123,24,122,25,113,26,71,27,231,27,188,28,207,29,202,30,213,31,228,32, +169,33,69,34,213,34,85,35,188,35,213,35,182,35,140,35,23,35,62,34,50,33,21,32,13,31,40,30,103,29,7,29, +14,29,25,29,29,29,135,29,80,30,10,31,211,31,9,33,201,34,30,37,217,39,210,42,48,46,190,49,24,53,25,56, +182,58,39,61,143,63,144,65,245,66,185,67,215,67,146,67,253,66,252,65,180,64,29,63,2,61,101,58,80,55,241,51, +171,48,156,45,145,42,113,39,75,36,15,33,181,29,96,26,251,22,99,19,204,15,123,12,220,9,26,8,174,6,61,5, +231,3,186,2,215,1,35,1,78,0,133,255,229,254,47,254,112,253,223,252,147,252,127,252,103,252,40,252,183,251,3,251, +48,250,87,249,82,248,11,247,134,245,206,243,218,241,166,239,105,237,60,235,15,233,254,230,15,229,33,227,59,225,143,223, +82,222,119,221,223,220,132,220,71,220,48,220,78,220,100,220,139,220,239,220,31,221,210,220,52,220,77,219,22,218,127,216, +145,214,130,212,121,210,129,208,171,206,246,204,70,203,98,201,81,199,90,197,150,195,58,194,115,193,254,192,171,192,108,192, +59,192,130,192,107,193,146,194,207,195,49,197,210,198,202,200,219,202,241,204,62,207,124,209,115,211,122,213,183,215,231,217, +247,219,251,221,237,223,232,225,238,227,173,229,24,231,97,232,114,233,72,234,229,234,53,235,118,235,203,235,38,236,192,236, +137,237,92,238,124,239,231,240,115,242,65,244,69,246,109,248,130,250,60,252,23,254,143,0,39,3,87,5,49,7,11,9, +1,11,205,12,102,14,251,15,92,17,86,18,2,19,94,19,91,19,5,19,120,18,212,17,26,17,3,16,104,14,168,12, +3,11,50,9,39,7,48,5,125,3,35,2,228,0,138,255,85,254,109,253,177,252,240,251,248,250,1,250,79,249,168,248, +33,248,249,247,4,248,36,248,78,248,143,248,40,249,16,250,30,251,109,252,254,253,200,255,164,1,97,3,64,5,98,7, +146,9,229,11,94,14,192,16,12,19,61,21,68,23,79,25,126,27,122,29,242,30,38,32,91,33,98,34,34,35,174,35, +254,35,12,36,212,35,116,35,38,35,196,34,234,33,145,32,46,31,63,30,153,29,228,28,53,28,166,27,45,27,178,26, +12,26,105,25,233,24,120,24,110,24,226,24,139,25,164,26,94,28,135,30,21,33,232,35,227,38,27,42,131,45,35,49, +214,52,27,56,230,58,107,61,110,63,173,64,70,65,117,65,59,65,89,64,181,62,157,60,121,58,102,56,26,54,105,51, +105,48,59,45,0,42,180,38,60,35,165,31,65,28,108,25,16,23,217,20,217,18,19,17,109,15,2,14,154,12,23,11, +244,9,33,9,54,8,60,7,32,6,221,4,178,3,104,2,167,0,138,254,124,252,198,250,43,249,130,247,46,246,94,245, +220,244,90,244,103,243,243,241,96,240,236,238,154,237,73,236,214,234,77,233,227,231,161,230,81,229,254,227,247,226,72,226, +228,225,203,225,236,225,116,226,128,227,218,228,80,230,157,231,104,232,149,232,6,232,218,230,111,229,185,227,146,225,49,223, +200,220,111,218,58,216,38,214,39,212,47,210,45,208,234,205,89,203,240,200,249,198,64,197,163,195,24,194,199,192,16,192, +254,191,108,192,59,193,78,194,214,195,215,197,234,199,3,202,54,204,76,206,38,208,190,209,61,211,234,212,196,214,149,216, +70,218,221,219,118,221,50,223,31,225,48,227,78,229,88,231,241,232,9,234,3,235,252,235,202,236,106,237,214,237,63,238, +204,238,75,239,233,239,19,241,187,242,163,244,155,246,144,248,167,250,221,252,15,255,18,1,176,2,24,4,157,5,33,7, +93,8,52,9,223,9,157,10,56,11,114,11,102,11,84,11,107,11,133,11,102,11,30,11,184,10,71,10,232,9,102,9, +109,8,228,6,2,5,27,3,38,1,49,255,128,253,1,252,167,250,134,249,124,248,168,247,46,247,234,246,229,246,11,247, +250,246,175,246,128,246,183,246,84,247,246,247,97,248,205,248,143,249,186,250,29,252,187,253,163,255,161,1,159,3,116,5, +253,6,147,8,59,10,163,11,242,12,98,14,251,15,175,17,87,19,35,21,49,23,16,25,149,26,241,27,57,29,143,30, +198,31,153,32,54,33,194,33,53,34,156,34,239,34,12,35,213,34,60,34,76,33,43,32,29,31,28,30,250,28,227,27, +249,26,52,26,187,25,153,25,176,25,206,25,191,25,210,25,106,26,95,27,152,28,46,30,40,32,157,34,128,37,145,40, +155,43,144,46,163,49,211,52,248,55,45,59,86,62,32,65,113,67,10,69,218,69,9,70,60,69,117,67,82,65,245,62, +46,60,9,57,217,53,4,51,134,48,26,46,168,43,31,41,149,38,24,36,87,33,52,30,253,26,228,23,214,20,143,17, +26,14,0,11,142,8,159,6,17,5,247,3,89,3,241,2,125,2,3,2,150,1,52,1,187,0,249,255,240,254,226,253, +22,253,124,252,188,251,213,250,226,249,207,248,189,247,143,246,221,244,221,242,1,241,69,239,131,237,178,235,36,234,35,233, +45,232,193,230,43,229,233,227,50,227,218,226,143,226,93,226,139,226,37,227,196,227,6,228,39,228,92,228,71,228,147,227, +61,226,126,224,188,222,245,220,212,218,90,216,172,213,241,210,133,208,130,206,126,204,68,202,12,200,237,197,218,195,13,194, +186,192,197,191,11,191,127,190,31,190,253,189,84,190,85,191,211,192,147,194,143,196,174,198,227,200,93,203,253,205,105,208, +154,210,170,212,161,214,114,216,17,218,149,219,33,221,182,222,81,224,247,225,170,227,96,229,13,231,147,232,188,233,133,234, +40,235,187,235,51,236,157,236,254,236,110,237,35,238,68,239,220,240,251,242,123,245,202,247,199,249,50,252,26,255,163,1, +152,3,82,5,204,6,248,7,198,8,68,9,232,9,210,10,146,11,12,12,134,12,34,13,199,13,59,14,57,14,189,13, +0,13,9,12,199,10,84,9,166,7,173,5,164,3,170,1,188,255,231,253,68,252,252,250,12,250,79,249,234,248,223,248, +224,248,247,248,81,249,224,249,140,250,36,251,94,251,51,251,251,250,8,251,74,251,161,251,15,252,169,252,165,253,233,254, +33,0,146,1,129,3,153,5,132,7,56,9,9,11,73,13,163,15,201,17,205,19,150,21,59,23,226,24,82,26,152,27, +237,28,81,30,161,31,135,32,14,33,153,33,253,33,250,33,172,33,21,33,90,32,168,31,207,30,190,29,172,28,216,27, +111,27,48,27,170,26,218,25,41,25,229,24,228,24,217,24,185,24,214,24,130,25,142,26,165,27,248,28,191,30,251,32, +171,35,160,38,216,41,129,45,123,49,136,53,91,57,173,60,163,63,68,66,100,68,24,70,10,71,181,70,95,69,168,67, +225,65,13,64,15,62,238,59,162,57,21,55,60,52,9,49,216,45,219,42,140,39,232,35,117,32,71,29,81,26,121,23, +156,20,220,17,45,15,129,12,69,10,182,8,227,7,135,7,245,6,54,6,167,5,245,4,214,3,98,2,180,0,15,255, +140,253,22,252,187,250,117,249,40,248,200,246,65,245,135,243,163,241,167,239,185,237,241,235,51,234,84,232,135,230,26,229, +236,227,225,226,51,226,229,225,236,225,63,226,149,226,234,226,147,227,179,228,37,230,109,231,34,232,92,232,59,232,206,231, +37,231,14,230,108,228,98,226,32,224,241,221,230,219,215,217,215,215,227,213,178,211,51,209,188,206,150,204,154,202,134,200, +126,198,177,196,34,195,197,193,116,192,92,191,210,190,190,190,22,191,6,192,131,193,102,195,103,197,74,199,50,201,55,203, +72,205,118,207,181,209,238,211,27,214,31,216,7,218,214,219,131,221,72,223,35,225,230,226,187,228,144,230,13,232,74,233, +86,234,27,235,218,235,168,236,60,237,180,237,111,238,106,239,151,240,16,242,186,243,90,245,11,247,1,249,72,251,194,253, +15,0,252,1,224,3,228,5,221,7,202,9,164,11,63,13,142,14,147,15,109,16,80,17,19,18,132,18,186,18,160,18, +16,18,49,17,9,16,82,14,25,12,188,9,91,7,0,5,207,2,199,0,233,254,77,253,242,251,203,250,231,249,73,249, +212,248,105,248,39,248,73,248,176,248,16,249,69,249,45,249,231,248,201,248,230,248,27,249,91,249,198,249,104,250,2,251, +162,251,152,252,186,253,235,254,82,0,208,1,128,3,136,5,129,7,91,9,114,11,161,13,187,15,208,17,212,19,242,21, +61,24,111,26,114,28,84,30,10,32,115,33,103,34,246,34,90,35,154,35,114,35,164,34,108,33,65,32,40,31,235,29, +92,28,134,26,230,24,195,23,221,22,46,22,228,21,11,22,188,22,233,23,83,25,170,26,155,27,74,28,65,29,170,30, +52,32,132,33,164,34,33,36,84,38,232,40,87,43,129,45,170,47,242,49,41,52,13,54,128,55,173,56,213,57,222,58, +120,59,135,59,79,59,5,59,96,58,24,57,107,55,193,53,96,52,16,51,70,49,17,47,200,44,114,42,0,40,47,37, +197,33,33,30,147,26,29,23,178,19,62,16,9,13,90,10,5,8,8,6,92,4,200,2,146,1,244,0,153,0,52,0, +168,255,1,255,109,254,219,253,54,253,140,252,230,251,117,251,79,251,41,251,184,250,227,249,195,248,110,247,237,245,120,244, +31,243,212,241,187,240,172,239,120,238,94,237,85,236,37,235,250,233,226,232,185,231,129,230,80,229,117,228,240,227,50,227, +65,226,153,225,43,225,196,224,119,224,54,224,209,223,68,223,130,222,120,221,76,220,9,219,143,217,228,215,3,214,222,211, +162,209,94,207,9,205,218,202,231,200,66,199,26,198,57,197,100,196,202,195,137,195,164,195,13,196,164,196,113,197,141,198, +20,200,1,202,244,203,213,205,237,207,55,210,155,212,22,215,164,217,99,220,51,223,162,225,179,227,164,229,99,231,180,232, +135,233,30,234,166,234,251,234,41,235,94,235,158,235,205,235,165,235,58,235,253,234,21,235,135,235,96,236,123,237,211,238, +78,240,195,241,106,243,63,245,228,246,101,248,226,249,99,251,1,253,143,254,14,0,188,1,69,3,76,4,13,5,194,5, +105,6,217,6,213,6,130,6,83,6,65,6,224,5,9,5,225,3,125,2,250,0,113,255,242,253,187,252,231,251,45,251, +79,250,73,249,85,248,193,247,127,247,85,247,52,247,20,247,34,247,138,247,232,247,243,247,209,247,137,247,47,247,22,247, +103,247,30,248,45,249,138,250,18,252,167,253,121,255,203,1,135,4,108,7,71,10,53,13,86,16,136,19,191,22,215,25, +128,28,228,30,31,33,242,34,123,36,216,37,229,38,205,39,103,40,48,40,62,39,1,38,208,36,196,35,157,34,84,33, +22,32,245,30,58,30,10,30,45,30,147,30,50,31,0,32,39,33,158,34,47,36,200,37,105,39,38,41,227,42,118,44, +29,46,240,47,158,49,24,51,131,52,227,53,58,55,151,56,240,57,27,59,229,59,22,60,169,59,7,59,117,58,185,57, +190,56,176,55,159,54,179,53,227,52,225,51,182,50,189,49,6,49,59,48,240,46,66,45,196,43,170,42,153,41,60,40, +179,38,64,37,215,35,37,34,218,31,13,29,68,26,190,23,76,21,228,18,186,16,5,15,162,13,245,11,193,9,65,7, +183,4,131,2,157,0,147,254,126,252,174,250,51,249,35,248,87,247,174,246,68,246,208,245,19,245,61,244,67,243,17,242, +204,240,125,239,22,238,121,236,153,234,197,232,61,231,230,229,120,228,202,226,29,225,170,223,106,222,96,221,101,220,80,219, +109,218,221,217,95,217,192,216,223,215,210,214,201,213,177,212,112,211,24,210,197,208,122,207,244,205,37,204,124,202,64,201, +83,200,156,199,246,198,66,198,161,197,48,197,191,196,47,196,206,195,219,195,60,196,224,196,179,197,126,198,89,199,137,200, +253,201,86,203,71,204,245,204,229,205,65,207,183,208,15,210,79,211,119,212,110,213,53,214,223,214,134,215,112,216,160,217, +217,218,50,220,187,221,91,223,33,225,180,226,187,227,170,228,191,229,175,230,145,231,138,232,156,233,251,234,161,236,98,238, +87,240,196,242,154,245,83,248,191,250,50,253,205,255,120,2,233,4,198,6,98,8,10,10,67,11,200,11,211,11,184,11, +187,11,149,11,3,11,79,10,139,9,132,8,81,7,33,6,18,5,20,4,232,2,124,1,34,0,80,255,247,254,149,254, +19,254,182,253,152,253,199,253,36,254,113,254,181,254,226,254,233,254,9,255,65,255,57,255,218,254,89,254,229,253,132,253, +63,253,58,253,135,253,22,254,229,254,18,0,156,1,89,3,65,5,79,7,107,9,213,11,170,14,108,17,206,19,5,22, +95,24,26,27,207,29,182,31,230,32,7,34,67,35,98,36,56,37,201,37,50,38,139,38,227,38,11,39,190,38,30,38, +127,37,22,37,238,36,199,36,147,36,181,36,63,37,244,37,191,38,152,39,122,40,83,41,229,41,58,42,134,42,183,42, +182,42,106,42,193,41,239,40,71,40,229,39,159,39,84,39,57,39,138,39,119,40,4,42,197,43,185,45,90,48,96,51, +82,54,42,57,172,59,197,61,155,63,247,64,194,65,23,66,237,65,98,65,128,64,253,62,161,60,141,57,38,54,174,50, +19,47,70,43,53,39,236,34,178,30,182,26,249,22,123,19,65,16,75,13,121,10,216,7,160,5,183,3,229,1,22,0, +76,254,224,252,4,252,112,251,223,250,44,250,90,249,132,248,132,247,96,246,78,245,41,244,208,242,68,241,161,239,46,238, +199,236,24,235,89,233,221,231,166,230,120,229,20,228,159,226,114,225,141,224,145,223,55,222,209,220,200,219,245,218,30,218, +57,217,76,216,133,215,240,214,129,214,78,214,40,214,244,213,5,214,48,214,7,214,169,213,58,213,158,212,225,211,13,211, +14,210,214,208,103,207,9,206,7,205,62,204,124,203,181,202,230,201,71,201,244,200,177,200,128,200,109,200,57,200,210,199, +109,199,66,199,143,199,97,200,123,201,143,202,167,203,24,205,244,206,247,208,244,210,233,212,240,214,21,217,65,219,105,221, +108,223,48,225,213,226,92,228,175,229,205,230,198,231,185,232,178,233,197,234,3,236,39,237,27,238,28,239,37,240,67,241, +155,242,5,244,128,245,47,247,36,249,117,251,243,253,98,0,191,2,238,4,223,6,166,8,84,10,246,11,84,13,78,14, +4,15,125,15,208,15,235,15,156,15,66,15,43,15,14,15,184,14,58,14,217,13,169,13,59,13,108,12,96,11,11,10, +158,8,34,7,128,5,4,4,188,2,128,1,78,0,229,254,68,253,211,251,161,250,152,249,177,248,210,247,3,247,93,246, +250,245,229,245,244,245,49,246,244,246,53,248,151,249,17,251,232,252,79,255,72,2,119,5,102,8,47,11,43,14,54,17, +35,20,229,22,98,25,151,27,127,29,58,31,3,33,160,34,186,35,85,36,150,36,177,36,169,36,77,36,181,35,254,34, +244,33,158,32,74,31,13,30,211,28,153,27,51,26,154,24,53,23,76,22,230,21,16,22,132,22,237,22,104,23,13,24, +209,24,184,25,172,26,188,27,38,29,254,30,55,33,210,35,199,38,244,41,100,45,5,49,74,52,28,55,234,57,122,60, +135,62,65,64,182,65,5,67,18,68,118,68,110,68,16,68,221,66,195,64,254,61,238,58,247,55,234,52,163,49,89,46, +45,43,58,40,95,37,78,34,11,31,199,27,164,24,140,21,95,18,77,15,97,12,172,9,69,7,171,4,174,1,235,254, +139,252,66,250,221,247,110,245,111,243,254,241,176,240,74,239,208,237,132,236,161,235,19,235,235,234,66,235,0,236,31,237, +108,238,142,239,118,240,80,241,12,242,129,242,217,242,57,243,117,243,158,243,167,243,95,243,20,243,194,242,248,241,233,240, +211,239,173,238,133,237,57,236,183,234,35,233,115,231,184,229,238,227,9,226,63,224,109,222,95,220,94,218,98,216,58,214, +21,212,219,209,107,207,42,205,18,203,190,200,120,198,148,196,222,194,119,193,128,192,173,191,39,191,64,191,209,191,179,192, +176,193,161,194,164,195,183,196,250,197,163,199,148,201,214,203,115,206,48,209,38,212,105,215,191,218,245,221,237,224,165,227, +54,230,201,232,105,235,198,237,209,239,193,241,133,243,36,245,171,246,224,247,191,248,88,249,181,249,11,250,87,250,163,250, +1,251,55,251,89,251,167,251,21,252,150,252,252,252,67,253,219,253,218,254,220,255,145,0,240,0,64,1,164,1,219,1, +184,1,125,1,157,1,252,1,95,2,1,3,219,3,179,4,116,5,212,5,205,5,154,5,58,5,213,4,94,4,130,3, +99,2,33,1,208,255,158,254,75,253,198,251,91,250,1,249,197,247,176,246,171,245,254,244,189,244,187,244,249,244,80,245, +180,245,116,246,167,247,16,249,150,250,93,252,98,254,114,0,122,2,81,4,219,5,66,7,102,8,36,9,207,9,160,10, +144,11,138,12,129,13,148,14,189,15,216,16,231,17,220,18,153,19,18,20,57,20,251,19,78,19,118,18,170,17,189,16, +175,15,132,14,48,13,17,12,66,11,158,10,62,10,12,10,11,10,149,10,197,11,184,13,98,16,82,19,108,22,192,25, +76,29,43,33,50,37,4,41,129,44,162,47,103,50,176,52,95,54,169,55,217,56,218,57,67,58,237,57,62,57,158,56, +17,56,49,55,174,53,227,51,46,50,161,48,82,47,15,46,216,44,17,44,194,43,246,43,133,44,208,44,251,44,108,45, +223,45,51,46,69,46,244,45,161,45,82,45,139,44,32,43,91,41,185,39,47,38,60,36,211,33,37,31,94,28,189,25, +90,23,248,20,49,18,37,15,127,12,96,10,97,8,63,6,236,3,204,1,58,0,40,255,99,254,135,253,173,252,130,252, +223,252,25,253,30,253,45,253,120,253,220,253,230,253,136,253,48,253,238,252,89,252,107,251,124,250,106,249,31,248,186,246, +5,245,41,243,106,241,129,239,138,237,177,235,183,233,225,231,69,230,91,228,251,225,57,223,22,220,172,216,33,213,171,209, +119,206,171,203,97,201,121,199,235,197,211,196,48,196,232,195,186,195,193,195,97,196,68,197,249,197,195,198,222,199,46,201, +119,202,151,203,181,204,245,205,69,207,130,208,128,209,67,210,250,210,188,211,97,212,179,212,226,212,25,213,35,213,6,213, +232,212,238,212,85,213,220,213,74,214,224,214,161,215,151,216,215,217,21,219,60,220,73,221,66,222,101,223,132,224,129,225, +176,226,255,227,125,229,123,231,152,233,128,235,102,237,101,239,110,241,99,243,36,245,189,246,95,248,36,250,233,251,112,253, +142,254,73,255,227,255,99,0,171,0,189,0,143,0,103,0,123,0,97,0,35,0,22,0,3,0,214,255,149,255,67,255, +82,255,205,255,52,0,88,0,85,0,118,0,177,0,136,0,9,0,156,255,72,255,245,254,143,254,47,254,8,254,4,254, +253,253,237,253,235,253,239,253,187,253,110,253,94,253,124,253,148,253,117,253,81,253,164,253,63,254,205,254,129,255,119,0, +166,1,24,3,194,4,181,6,6,9,176,11,156,14,136,17,125,20,161,23,221,26,9,30,235,32,105,35,191,37,254,39, +3,42,142,43,105,44,191,44,193,44,115,44,196,43,167,42,109,41,115,40,198,39,103,39,35,39,9,39,121,39,25,40, +155,40,38,41,88,41,60,41,68,41,246,40,28,40,68,39,143,38,243,37,140,37,54,37,234,36,245,36,143,37,152,38, +237,39,120,41,65,43,125,45,17,48,182,50,144,53,150,56,132,59,77,62,163,64,72,66,102,67,20,68,62,68,194,67, +149,66,208,64,120,62,212,59,238,56,70,53,24,49,4,45,242,40,207,36,136,32,254,27,163,23,178,19,243,15,116,12, +90,9,178,6,143,4,11,3,53,2,205,1,150,1,116,1,54,1,222,0,115,0,208,255,243,254,199,253,53,252,106,250, +125,248,128,246,156,244,202,242,223,240,196,238,176,236,213,234,19,233,96,231,176,229,236,227,74,226,218,224,170,223,248,222, +157,222,132,222,203,222,17,223,27,223,48,223,129,223,229,223,240,223,158,223,61,223,202,222,69,222,161,221,178,220,179,219, +202,218,222,217,234,216,179,215,72,214,244,212,115,211,134,209,120,207,157,205,18,204,148,202,224,200,65,199,37,198,111,197, +165,196,201,195,33,195,148,194,69,194,101,194,129,194,117,194,121,194,128,194,182,194,119,195,200,196,110,198,54,200,48,202, +121,204,2,207,181,209,108,212,52,215,17,218,157,220,204,222,221,224,218,226,230,228,211,230,74,232,129,233,163,234,209,235, +54,237,157,238,247,239,99,241,216,242,110,244,3,246,98,247,211,248,127,250,73,252,15,254,163,255,42,1,229,2,210,4, +223,6,224,8,151,10,254,11,89,13,240,14,151,16,246,17,238,18,132,19,230,19,26,20,254,19,194,19,96,19,165,18, +172,17,86,16,149,14,230,12,130,11,31,10,136,8,232,6,134,5,87,4,82,3,120,2,162,1,246,0,126,0,252,255, +131,255,241,254,11,254,23,253,35,252,51,251,136,250,2,250,146,249,122,249,181,249,75,250,100,251,231,252,162,254,130,0, +158,2,8,5,167,7,87,10,2,13,199,15,176,18,141,21,78,24,216,26,29,29,113,31,242,33,74,36,26,38,84,39, +73,40,238,40,249,40,143,40,174,39,69,38,184,36,32,35,115,33,190,31,233,29,66,28,254,26,173,25,22,24,101,22, +223,20,235,19,176,19,251,19,147,20,121,21,212,22,138,24,129,26,163,28,158,30,80,32,190,33,221,34,223,35,204,36, +126,37,3,38,80,38,92,38,88,38,136,38,45,39,32,40,246,40,133,41,229,41,120,42,106,43,79,44,11,45,201,45, +120,46,249,46,51,47,45,47,229,46,37,46,28,45,248,43,133,42,198,40,178,38,65,36,178,33,8,31,48,28,45,25, +239,21,163,18,116,15,91,12,99,9,139,6,234,3,143,1,60,255,6,253,28,251,119,249,14,248,201,246,219,245,126,245, +65,245,243,244,250,244,110,245,26,246,160,246,160,246,42,246,123,245,178,244,187,243,87,242,165,240,25,239,245,237,250,236, +236,235,4,235,47,234,51,233,118,232,24,232,215,231,155,231,29,231,123,230,15,230,145,229,250,228,121,228,222,227,61,227, +153,226,222,225,74,225,200,224,38,224,103,223,80,222,235,220,97,219,160,217,202,215,238,213,5,212,69,210,160,208,240,206, +80,205,186,203,39,202,217,200,11,200,163,199,121,199,136,199,193,199,98,200,143,201,168,202,97,203,52,204,81,205,189,206, +97,208,8,210,10,212,147,214,67,217,217,219,81,222,230,224,160,227,33,230,112,232,158,234,126,236,45,238,142,239,113,240, +36,241,194,241,38,242,55,242,5,242,250,241,46,242,117,242,248,242,200,243,202,244,249,245,92,247,239,248,115,250,212,251, +69,253,151,254,186,255,247,0,71,2,162,3,250,4,16,6,247,6,181,7,33,8,137,8,21,9,101,9,82,9,13,9, +168,8,8,8,42,7,11,6,158,4,22,3,149,1,20,0,198,254,188,253,205,252,254,251,87,251,192,250,21,250,107,249, +5,249,193,248,133,248,153,248,220,248,47,249,187,249,65,250,146,250,246,250,151,251,79,252,209,252,38,253,158,253,37,254, +164,254,41,255,114,255,120,255,162,255,35,0,15,1,98,2,244,3,220,5,81,8,57,11,72,14,76,17,46,20,231,22, +119,25,179,27,104,29,168,30,143,31,83,32,39,33,210,33,2,34,159,33,202,32,239,31,57,31,97,30,110,29,176,28, +90,28,163,28,123,29,118,30,88,31,41,32,186,32,206,32,168,32,193,32,55,33,235,33,148,34,12,35,131,35,19,36, +187,36,111,37,246,37,86,38,255,38,59,40,211,41,98,43,219,44,118,46,47,48,195,49,254,50,1,52,69,53,248,54, +186,56,8,58,195,58,74,59,192,59,207,59,72,59,7,58,21,56,211,53,72,51,83,48,19,45,171,41,78,38,4,35, +123,31,222,27,194,24,34,22,124,19,165,16,242,13,204,11,100,10,143,9,218,8,48,8,184,7,64,7,129,6,99,5, +15,4,236,2,5,2,28,1,56,0,125,255,217,254,225,253,109,252,244,250,136,249,228,247,62,246,184,244,68,243,216,241, +56,240,89,238,101,236,126,234,210,232,100,231,65,230,106,229,151,228,225,227,115,227,2,227,131,226,13,226,146,225,15,225, +90,224,151,223,250,222,69,222,133,221,214,220,223,219,189,218,178,217,125,216,236,214,4,213,252,210,11,209,25,207,30,205, +74,203,193,201,98,200,248,198,194,197,8,197,165,196,109,196,61,196,2,196,245,195,36,196,116,196,211,196,64,197,242,197, +222,198,217,199,31,201,201,202,179,204,179,206,131,208,40,210,196,211,97,213,250,214,72,216,97,217,166,218,225,219,24,221, +137,222,7,224,171,225,107,227,206,228,245,229,27,231,80,232,202,233,84,235,169,236,226,237,14,239,88,240,178,241,250,242, +94,244,220,245,99,247,11,249,182,250,92,252,226,253,245,254,207,255,197,0,196,1,183,2,139,3,73,4,20,5,197,5, +42,6,74,6,71,6,56,6,42,6,31,6,245,5,175,5,162,5,194,5,216,5,224,5,158,5,3,5,71,4,131,3, +214,2,42,2,84,1,151,0,238,255,7,255,225,253,148,252,86,251,73,250,46,249,237,247,215,246,83,246,131,246,23,247, +3,248,120,249,111,251,13,254,77,1,199,4,106,8,70,12,86,16,127,20,71,24,135,27,163,30,172,33,129,36,2,39, +241,40,75,42,71,43,27,44,183,44,199,44,109,44,228,43,255,42,198,41,128,40,90,39,124,38,196,37,8,37,104,36, +243,35,225,35,102,36,12,37,100,37,184,37,85,38,48,39,56,40,91,41,102,42,73,43,13,44,167,44,30,45,162,45, +79,46,28,47,215,47,129,48,129,49,222,50,45,52,69,53,20,54,150,54,17,55,140,55,173,55,81,55,148,54,122,53, +249,51,91,50,254,48,219,47,192,46,170,45,161,44,158,43,147,42,134,41,119,40,57,39,234,37,226,36,230,35,166,34, +53,33,134,31,102,29,196,26,168,23,90,20,53,17,101,14,235,11,149,9,73,7,18,5,230,2,204,0,187,254,135,252, +60,250,4,248,243,245,3,244,33,242,138,240,124,239,184,238,12,238,103,237,217,236,215,236,78,237,110,237,198,236,100,235, +161,233,226,231,249,229,184,227,122,225,130,223,220,221,128,220,72,219,77,218,171,217,50,217,195,216,102,216,239,215,53,215, +115,214,209,213,5,213,7,212,40,211,139,210,67,210,62,210,41,210,231,209,122,209,178,208,122,207,31,206,7,205,44,204, +53,203,14,202,222,200,200,199,250,198,155,198,138,198,88,198,1,198,23,198,195,198,198,199,15,201,98,202,180,203,56,205, +169,206,247,207,117,209,29,211,227,212,213,214,225,216,241,218,242,220,13,223,90,225,99,227,230,228,21,230,21,231,12,232, +222,232,118,233,55,234,50,235,24,236,221,236,154,237,121,238,138,239,187,240,19,242,111,243,211,244,133,246,83,248,31,250, +51,252,127,254,217,0,69,3,170,5,18,8,132,10,163,12,30,14,28,15,235,15,125,16,163,16,140,16,118,16,108,16, +83,16,246,15,60,15,38,14,231,12,201,11,175,10,111,9,48,8,225,6,110,5,42,4,77,3,158,2,199,1,243,0, +144,0,142,0,188,0,218,0,138,0,0,0,141,255,237,254,254,253,222,252,183,251,171,250,147,249,115,248,133,247,176,246, +14,246,240,245,77,246,236,246,168,247,179,248,66,250,4,252,229,253,42,0,199,2,185,5,238,8,33,12,89,15,133,18, +131,21,139,24,136,27,50,30,128,32,96,34,226,35,43,37,8,38,56,38,193,37,225,36,204,35,134,34,3,33,56,31, +118,29,70,28,131,27,216,26,121,26,97,26,73,26,80,26,152,26,4,27,145,27,79,28,38,29,2,30,231,30,186,31, +116,32,85,33,51,34,161,34,198,34,12,35,174,35,181,36,252,37,125,39,56,41,42,43,102,45,199,47,52,50,205,52, +76,55,71,57,167,58,154,59,126,60,80,61,185,61,202,61,146,61,253,60,3,60,108,58,66,56,177,53,140,50,247,46, +78,43,122,39,126,35,145,31,216,27,84,24,214,20,87,17,247,13,214,10,50,8,253,5,11,4,155,2,164,1,233,0, +134,0,92,0,48,0,6,0,205,255,118,255,11,255,130,254,218,253,12,253,44,252,65,251,3,250,107,248,209,246,55,245, +108,243,115,241,113,239,106,237,102,235,151,233,9,232,182,230,180,229,218,228,249,227,52,227,162,226,49,226,193,225,42,225, +104,224,127,223,129,222,145,221,181,220,19,220,199,219,141,219,51,219,216,218,133,218,254,217,236,216,114,215,222,213,9,212, +246,209,208,207,127,205,56,203,71,201,143,199,240,197,94,196,25,195,136,194,135,194,218,194,118,195,66,196,98,197,197,198, +9,200,57,201,124,202,200,203,59,205,220,206,162,208,161,210,221,212,86,215,200,217,236,219,209,221,116,223,224,224,42,226, +43,227,0,228,249,228,16,230,74,231,179,232,25,234,84,235,89,236,62,237,50,238,33,239,215,239,82,240,213,240,159,241, +127,242,54,243,251,243,25,245,118,246,205,247,31,249,128,250,205,251,16,253,115,254,201,255,0,1,43,2,66,3,76,4, +76,5,69,6,70,7,52,8,242,8,116,9,192,9,249,9,233,9,77,9,95,8,51,7,183,5,30,4,152,2,84,1, +90,0,107,255,130,254,180,253,1,253,115,252,214,251,30,251,145,250,26,250,146,249,252,248,88,248,229,247,193,247,203,247, +252,247,56,248,127,248,254,248,171,249,179,250,58,252,246,253,239,255,90,2,13,5,251,7,57,11,174,14,51,18,133,21, +129,24,84,27,43,30,218,32,251,34,140,36,215,37,225,38,161,39,30,40,66,40,1,40,81,39,62,38,15,37,219,35, +145,34,63,33,240,31,199,30,229,29,74,29,38,29,163,29,116,30,56,31,18,32,42,33,55,34,64,35,137,36,141,37, +254,37,124,38,97,39,145,40,204,41,205,42,211,43,48,45,162,46,241,47,27,49,48,50,72,51,84,52,68,53,13,54, +175,54,99,55,2,56,75,56,143,56,3,57,116,57,180,57,156,57,62,57,158,56,155,55,73,54,144,52,109,50,71,48, +13,46,96,43,69,40,238,36,191,33,199,30,164,27,114,24,151,21,49,19,91,17,220,15,58,14,101,12,158,10,233,8, +247,6,174,4,54,2,168,255,50,253,201,250,49,248,198,245,236,243,99,242,240,240,127,239,22,238,255,236,65,236,139,235, +186,234,227,233,19,233,78,232,179,231,24,231,53,230,86,229,167,228,227,227,36,227,127,226,222,225,116,225,43,225,211,224, +144,224,81,224,205,223,219,222,129,221,251,219,79,218,143,216,15,215,210,213,199,212,231,211,245,210,236,209,223,208,209,207, +244,206,7,206,179,204,66,203,236,201,160,200,76,199,221,197,159,196,225,195,124,195,97,195,168,195,63,196,30,197,77,198, +160,199,188,200,161,201,206,202,98,204,9,206,168,207,66,209,217,210,132,212,77,214,48,216,1,218,132,219,222,220,90,222, +254,223,172,225,75,227,192,228,17,230,118,231,236,232,68,234,138,235,191,236,189,237,159,238,143,239,157,240,224,241,74,243, +206,244,92,246,219,247,109,249,11,251,111,252,202,253,99,255,56,1,64,3,54,5,216,6,81,8,208,9,64,11,67,12, +149,12,145,12,164,12,199,12,220,12,174,12,25,12,95,11,183,10,46,10,197,9,85,9,222,8,127,8,54,8,238,7, +128,7,249,6,101,6,132,5,114,4,148,3,177,2,148,1,86,0,232,254,103,253,8,252,191,250,148,249,168,248,20,248, +212,247,154,247,80,247,90,247,1,248,97,249,86,251,134,253,234,255,179,2,199,5,188,8,63,11,134,13,3,16,193,18, +146,21,80,24,11,27,229,29,133,32,117,34,178,35,79,36,117,36,109,36,64,36,202,35,15,35,66,34,118,33,145,32, +145,31,132,30,95,29,34,28,232,26,247,25,140,25,154,25,31,26,40,27,135,28,245,29,80,31,187,32,66,34,139,35, +97,36,239,36,102,37,203,37,234,37,233,37,25,38,65,38,61,38,69,38,123,38,46,39,74,40,70,41,39,42,24,43, +18,44,19,45,217,45,139,46,153,47,222,48,86,50,255,51,58,53,225,53,83,54,138,54,38,54,205,52,183,50,128,48, +96,46,31,44,94,41,64,38,69,35,89,32,55,29,215,25,35,22,105,18,26,15,60,12,164,9,46,7,246,4,43,3, +150,1,12,0,142,254,55,253,63,252,88,251,67,250,116,249,1,249,132,248,188,247,156,246,115,245,83,244,15,243,221,241, +232,240,46,240,158,239,1,239,109,238,219,237,247,236,236,235,232,234,210,233,168,232,60,231,164,229,79,228,77,227,150,226, +18,226,126,225,225,224,97,224,239,223,62,223,23,222,224,220,223,219,184,218,75,217,234,215,210,214,219,213,155,212,9,211, +112,209,5,208,178,206,29,205,79,203,145,201,206,199,43,198,225,196,202,195,14,195,240,194,121,195,157,196,247,197,66,199, +202,200,151,202,63,204,113,205,69,206,49,207,112,208,235,209,107,211,199,212,71,214,59,216,147,218,31,221,162,223,2,226, +76,228,112,230,92,232,243,233,65,235,140,236,157,237,66,238,220,238,146,239,107,240,108,241,82,242,64,243,101,244,130,245, +167,246,238,247,48,249,119,250,159,251,150,252,150,253,176,254,15,0,201,1,119,3,230,4,67,6,155,7,252,8,70,10, +38,11,147,11,186,11,160,11,36,11,65,10,75,9,160,8,42,8,169,7,44,7,230,6,248,6,66,7,93,7,22,7, +143,6,251,5,132,5,237,4,15,4,81,3,174,2,195,1,209,0,13,0,69,255,96,254,89,253,69,252,55,251,14,250, +215,248,192,247,238,246,111,246,37,246,71,246,45,247,197,248,13,251,7,254,93,1,206,4,65,8,193,11,113,15,56,19, +212,22,10,26,165,28,182,30,122,32,11,34,66,35,204,35,149,35,208,34,196,33,165,32,95,31,225,29,47,28,44,26, +255,23,3,22,104,20,84,19,209,18,180,18,211,18,35,19,253,19,194,21,12,24,56,26,80,28,171,30,82,33,12,36, +123,38,100,40,38,42,235,43,22,45,131,45,144,45,93,45,48,45,255,44,89,44,92,43,67,42,73,41,199,40,99,40, +214,39,114,39,45,39,21,39,68,39,117,39,190,39,28,40,49,40,26,40,33,40,106,40,234,40,93,41,192,41,67,42, +241,42,136,43,141,43,5,43,35,42,164,40,113,38,135,35,8,32,148,28,65,25,228,21,236,18,113,16,38,14,1,12, +236,9,232,7,14,6,98,4,210,2,17,1,242,254,184,252,165,250,183,248,211,246,53,245,254,243,223,242,15,242,231,241, +246,241,221,241,142,241,28,241,230,240,191,240,23,240,5,239,230,237,210,236,177,235,114,234,39,233,211,231,156,230,184,229, +233,228,230,227,202,226,222,225,78,225,206,224,10,224,0,223,196,221,128,220,23,219,63,217,68,215,172,213,154,212,193,211, +190,210,228,209,141,209,86,209,243,208,78,208,145,207,34,207,159,206,157,205,110,204,59,203,59,202,162,201,55,201,11,201, +89,201,251,201,204,202,188,203,243,204,118,206,242,207,125,209,42,211,158,212,203,213,224,214,5,216,77,217,139,218,181,219, +209,220,242,221,88,223,215,224,70,226,210,227,71,229,157,230,2,232,23,233,213,233,177,234,172,235,166,236,175,237,176,238, +180,239,0,241,130,242,223,243,34,245,127,246,226,247,66,249,177,250,78,252,86,254,138,0,124,2,81,4,59,6,4,8, +100,9,111,10,114,11,75,12,194,12,238,12,201,12,96,12,237,11,112,11,216,10,37,10,129,9,35,9,211,8,111,8, +17,8,159,7,51,7,240,6,186,6,153,6,136,6,137,6,182,6,200,6,119,6,182,5,157,4,121,3,49,2,175,0, +103,255,75,254,7,253,167,251,55,250,250,248,69,248,18,248,90,248,8,249,48,250,11,252,78,254,174,0,56,3,189,5, +28,8,120,10,226,12,101,15,238,17,102,20,185,22,182,24,98,26,9,28,212,29,140,31,240,32,46,34,114,35,124,36, +23,37,47,37,182,36,198,35,185,34,231,33,51,33,94,32,159,31,65,31,55,31,39,31,200,30,95,30,22,30,210,29, +204,29,22,30,140,30,26,31,117,31,162,31,214,31,207,31,208,31,95,32,78,33,115,34,240,35,229,37,43,40,68,42, +37,44,27,46,39,48,78,50,92,52,23,54,201,55,108,57,154,58,94,59,243,59,109,60,149,60,36,60,31,59,174,57, +24,56,79,54,246,51,48,49,60,46,43,43,55,40,37,37,194,33,130,30,102,27,32,24,172,20,32,17,220,13,16,11, +117,8,24,6,29,4,91,2,185,0,24,255,91,253,116,251,48,249,146,246,250,243,143,241,29,239,168,236,111,234,125,232, +199,230,47,229,181,227,222,226,196,226,221,226,29,227,173,227,97,228,16,229,148,229,254,229,107,230,200,230,34,231,92,231, +81,231,72,231,57,231,251,230,163,230,2,230,21,229,250,227,150,226,15,225,108,223,113,221,62,219,14,217,20,215,74,213, +103,211,173,209,89,208,25,207,205,205,122,204,47,203,35,202,42,201,20,200,247,198,213,197,221,196,29,196,86,195,136,194, +3,194,237,193,16,194,78,194,213,194,140,195,75,196,24,197,211,197,171,198,222,199,62,201,230,202,228,204,252,206,93,209, +10,212,182,214,133,217,107,220,10,223,77,225,102,227,139,229,177,231,179,233,184,235,215,237,202,239,127,241,50,243,226,244, +148,246,135,248,128,250,48,252,242,253,218,255,163,1,82,3,209,4,60,6,211,7,91,9,188,10,254,11,26,13,96,14, +194,15,209,16,121,17,207,17,36,18,134,18,122,18,24,18,184,17,75,17,222,16,62,16,50,15,11,14,236,12,215,11, +202,10,144,9,100,8,135,7,165,6,120,5,39,4,20,3,97,2,221,1,129,1,78,1,73,1,135,1,203,1,249,1, +41,2,55,2,42,2,35,2,12,2,253,1,19,2,79,2,166,2,247,2,119,3,124,4,242,5,145,7,33,9,178,10, +82,12,196,13,245,14,226,15,128,16,42,17,26,18,42,19,106,20,252,21,188,23,129,25,26,27,95,28,68,29,240,29, +108,30,142,30,78,30,193,29,4,29,40,28,22,27,253,25,46,25,172,24,114,24,46,24,175,23,141,23,212,23,38,24, +160,24,14,25,120,25,87,26,102,27,88,28,60,29,228,29,86,30,124,30,45,30,207,29,153,29,118,29,135,29,196,29, +36,30,189,30,164,31,223,32,63,34,201,35,162,37,162,39,185,41,191,43,124,45,48,47,207,48,248,49,182,50,1,51, +166,50,246,49,89,49,148,48,58,47,93,45,52,43,213,40,122,38,240,35,234,32,188,29,122,26,204,22,226,18,56,15, +26,12,107,9,205,6,99,4,148,2,65,1,45,0,71,255,121,254,185,253,14,253,65,252,23,251,233,249,3,249,15,248, +244,246,224,245,250,244,143,244,120,244,94,244,72,244,2,244,127,243,47,243,36,243,25,243,181,242,249,241,127,241,79,241, +234,240,57,240,55,239,253,237,193,236,141,235,80,234,223,232,117,231,128,230,166,229,161,228,200,227,38,227,193,226,123,226, +230,225,25,225,26,224,185,222,89,221,47,220,233,218,126,217,35,216,238,214,204,213,161,212,96,211,8,210,188,208,132,207, +62,206,14,205,48,204,186,203,154,203,118,203,59,203,54,203,139,203,56,204,30,205,251,205,199,206,223,207,147,209,154,211, +129,213,79,215,11,217,176,218,124,220,95,222,14,224,132,225,234,226,104,228,248,229,128,231,14,233,187,234,150,236,111,238, +255,239,100,241,152,242,129,243,90,244,29,245,206,245,152,246,76,247,3,248,243,248,238,249,9,251,65,252,72,253,54,254, +58,255,75,0,70,1,255,1,191,2,186,3,186,4,158,5,58,6,157,6,52,7,5,8,222,8,173,9,114,10,64,11, +214,11,219,11,123,11,205,10,193,9,123,8,44,7,3,6,5,5,23,4,38,3,246,1,171,0,190,255,14,255,69,254, +103,253,134,252,182,251,3,251,60,250,54,249,18,248,18,247,58,246,98,245,150,244,32,244,56,244,181,244,108,245,128,246, +250,247,210,249,6,252,129,254,117,1,235,4,108,8,200,11,241,14,213,17,186,20,162,23,56,26,73,28,196,29,239,30, +11,32,236,32,106,33,90,33,179,32,179,31,112,30,13,29,158,27,248,25,66,24,181,22,105,21,127,20,183,19,254,18, +187,18,235,18,109,19,97,20,197,21,145,23,177,25,18,28,179,30,93,33,210,35,235,37,137,39,223,40,7,42,215,42, +84,43,171,43,249,43,18,44,199,43,110,43,58,43,235,42,136,42,48,42,227,41,183,41,159,41,150,41,185,41,1,42, +78,42,110,42,107,42,172,42,80,43,252,43,89,44,90,44,9,44,101,43,102,42,27,41,169,39,56,38,184,36,20,35, +78,33,86,31,46,29,198,26,250,23,247,20,248,17,21,15,102,12,230,9,183,7,191,5,129,3,28,1,1,255,30,253, +82,251,148,249,17,248,11,247,39,246,31,245,34,244,70,243,200,242,179,242,165,242,124,242,45,242,183,241,61,241,158,240, +236,239,123,239,33,239,161,238,5,238,105,237,223,236,79,236,187,235,50,235,143,234,241,233,163,233,147,233,85,233,127,232, +29,231,120,229,167,227,216,225,39,224,131,222,9,221,171,219,39,218,148,216,15,215,134,213,19,212,230,210,254,209,17,209, +220,207,138,206,126,205,197,204,21,204,100,203,250,202,242,202,52,203,168,203,68,204,3,205,195,205,133,206,108,207,109,208, +150,209,189,210,148,211,83,212,40,213,247,213,249,214,60,216,149,217,240,218,45,220,113,221,205,222,250,223,241,224,176,225, +92,226,132,227,2,229,117,230,252,231,144,233,42,235,207,236,94,238,15,240,5,242,7,244,19,246,10,248,211,249,142,251, +29,253,114,254,173,255,188,0,135,1,16,2,122,2,246,2,94,3,134,3,164,3,226,3,18,4,20,4,5,4,2,4, +22,4,31,4,240,3,174,3,126,3,53,3,234,2,177,2,96,2,20,2,188,1,31,1,102,0,163,255,212,254,45,254, +186,253,121,253,80,253,11,253,231,252,10,253,47,253,67,253,101,253,154,253,235,253,77,254,164,254,15,255,211,255,215,0, +201,1,204,2,11,4,99,5,192,6,248,7,12,9,58,10,111,11,165,12,14,14,172,15,119,17,70,19,235,20,150,22, +76,24,224,25,63,27,85,28,62,29,248,29,88,30,138,30,137,30,33,30,119,29,145,28,113,27,97,26,125,25,193,24, +67,24,13,24,14,24,25,24,46,24,98,24,168,24,240,24,6,25,182,24,41,24,120,23,166,22,209,21,251,20,10,20, +249,18,27,18,226,17,33,18,142,18,59,19,26,20,50,21,146,22,5,24,149,25,98,27,70,29,51,31,7,33,156,34, +56,36,29,38,34,40,245,41,123,43,225,44,40,46,24,47,133,47,97,47,164,46,66,45,96,43,43,41,183,38,36,36, +108,33,118,30,122,27,146,24,173,21,201,18,234,15,91,13,60,11,72,9,161,7,114,6,142,5,220,4,24,4,29,3, +59,2,141,1,10,1,144,0,246,255,141,255,126,255,157,255,218,255,240,255,225,255,17,0,82,0,115,0,136,0,122,0, +106,0,90,0,244,255,71,255,137,254,208,253,67,253,184,252,218,251,207,250,236,249,48,249,120,248,211,247,46,247,87,246, +104,245,140,244,197,243,19,243,102,242,187,241,31,241,151,240,60,240,255,239,180,239,89,239,205,238,9,238,67,237,132,236, +203,235,35,235,123,234,212,233,48,233,137,232,218,231,46,231,158,230,43,230,204,229,128,229,52,229,10,229,9,229,228,228, +167,228,130,228,121,228,178,228,30,229,168,229,151,230,211,231,6,233,26,234,8,235,237,235,224,236,186,237,112,238,15,239, +174,239,99,240,9,241,141,241,246,241,47,242,69,242,79,242,82,242,57,242,231,241,124,241,5,241,109,240,232,239,116,239, +225,238,77,238,193,237,83,237,42,237,12,237,218,236,175,236,130,236,108,236,128,236,163,236,200,236,230,236,8,237,73,237, +160,237,255,237,92,238,170,238,228,238,23,239,75,239,125,239,200,239,74,240,200,240,23,241,93,241,146,241,178,241,208,241, +213,241,202,241,198,241,185,241,159,241,119,241,79,241,41,241,221,240,112,240,0,240,150,239,70,239,23,239,20,239,76,239, +190,239,147,240,220,241,108,243,55,245,33,247,12,249,20,251,53,253,69,255,54,1,15,3,236,4,234,6,243,8,209,10, +109,12,239,13,74,15,68,16,226,16,42,17,48,17,46,17,16,17,192,16,76,16,158,15,200,14,229,13,232,12,251,11, +44,11,84,10,130,9,206,8,89,8,40,8,248,7,203,7,194,7,201,7,228,7,37,8,130,8,221,8,242,8,170,8, +49,8,158,7,238,6,27,6,23,5,231,3,166,2,121,1,100,0,79,255,50,254,17,253,5,252,17,251,35,250,109,249, +241,248,123,248,68,248,121,248,250,248,208,249,247,250,83,252,245,253,213,255,217,1,255,3,79,6,219,8,109,11,209,13, +52,16,164,18,255,20,82,23,152,25,188,27,222,29,6,32,253,33,168,35,32,37,91,38,47,39,118,39,50,39,149,38, +177,37,124,36,11,35,97,33,114,31,95,29,67,27,56,25,68,23,74,21,113,19,233,17,186,16,249,15,131,15,61,15, +112,15,254,15,146,16,47,17,222,17,183,18,213,19,18,21,104,22,221,23,92,25,215,26,57,28,148,29,225,30,203,31, +60,32,64,32,209,31,54,31,134,30,162,29,168,28,142,27,49,26,163,24,232,22,25,21,106,19,209,17,61,16,185,14, +77,13,236,11,122,10,223,8,21,7,52,5,125,3,7,2,195,0,195,255,34,255,222,254,206,254,169,254,99,254,42,254, +16,254,1,254,232,253,191,253,134,253,54,253,227,252,170,252,120,252,49,252,243,251,195,251,130,251,80,251,78,251,99,251, +133,251,136,251,86,251,51,251,253,250,123,250,230,249,52,249,96,248,176,247,247,246,59,246,193,245,58,245,147,244,7,244, +101,243,173,242,28,242,174,241,98,241,17,241,125,240,171,239,172,238,137,237,64,236,192,234,26,233,97,231,132,229,126,227, +84,225,20,223,194,220,86,218,249,215,216,213,238,211,40,210,136,208,51,207,36,206,60,205,138,204,17,204,202,203,227,203, +70,204,183,204,103,205,145,206,25,208,235,209,9,212,83,214,164,216,233,218,30,221,109,223,213,225,255,227,234,229,207,231, +135,233,4,235,91,236,123,237,148,238,194,239,192,240,149,241,113,242,90,243,91,244,80,245,25,246,225,246,183,247,139,248, +78,249,231,249,118,250,54,251,41,252,36,253,27,254,60,255,149,0,235,1,27,3,51,4,58,5,60,6,78,7,100,8, +91,9,50,10,229,10,105,11,231,11,103,12,184,12,234,12,40,13,107,13,169,13,207,13,209,13,193,13,147,13,94,13, +53,13,237,12,137,12,51,12,212,11,98,11,1,11,196,10,155,10,143,10,186,10,217,10,176,10,108,10,24,10,171,9, +63,9,183,8,255,7,35,7,32,6,27,5,244,3,98,2,171,0,255,254,66,253,140,251,223,249,45,248,134,246,201,244, +227,242,0,241,59,239,161,237,54,236,249,234,251,233,63,233,203,232,191,232,34,233,218,233,203,234,250,235,135,237,120,239, +190,241,69,244,254,246,5,250,112,253,8,1,167,4,111,8,99,12,111,16,157,20,184,24,125,28,1,32,59,35,251,37, +67,40,4,42,35,43,160,43,118,43,216,42,232,41,145,40,226,38,225,36,167,34,123,32,74,30,3,28,212,25,190,23, +2,22,203,20,176,19,200,18,92,18,32,18,10,18,60,18,150,18,57,19,67,20,136,21,226,22,74,24,223,25,126,27, +196,28,198,29,182,30,94,31,144,31,97,31,228,30,42,30,56,29,10,28,191,26,106,25,238,23,60,22,116,20,132,18, +93,16,60,14,75,12,149,10,31,9,209,7,206,6,67,6,1,6,227,5,242,5,36,6,143,6,69,7,8,8,172,8, +81,9,245,9,119,10,228,10,65,11,128,11,161,11,148,11,76,11,240,10,131,10,239,9,48,9,47,8,249,6,203,5, +190,4,225,3,19,3,43,2,74,1,143,0,248,255,137,255,53,255,251,254,227,254,241,254,48,255,119,255,172,255,244,255, +89,0,212,0,76,1,133,1,151,1,167,1,152,1,98,1,212,0,195,255,121,254,48,253,207,251,68,250,137,248,184,246, +223,244,219,242,173,240,129,238,93,236,34,234,209,231,117,229,18,227,202,224,140,222,20,220,169,217,170,215,240,213,98,212, +25,211,55,210,195,209,104,209,27,209,65,209,185,209,59,210,218,210,138,211,96,212,135,213,194,214,228,215,240,216,228,217, +235,218,23,220,45,221,41,222,69,223,117,224,126,225,120,226,129,227,127,228,105,229,53,230,218,230,142,231,94,232,54,233, +49,234,75,235,92,236,109,237,138,238,167,239,203,240,232,241,209,242,144,243,97,244,54,245,245,245,212,246,205,247,190,248, +184,249,162,250,110,251,71,252,45,253,32,254,63,255,113,0,151,1,176,2,193,3,208,4,207,5,178,6,128,7,78,8, +35,9,239,9,181,10,121,11,41,12,213,12,109,13,192,13,6,14,109,14,179,14,200,14,203,14,186,14,164,14,163,14, +187,14,217,14,228,14,229,14,223,14,202,14,173,14,128,14,77,14,40,14,3,14,206,13,124,13,23,13,175,12,34,12, +94,11,127,10,114,9,61,8,5,7,182,5,93,4,11,3,133,1,209,255,52,254,154,252,217,250,252,248,34,247,87,245, +133,243,181,241,5,240,100,238,205,236,96,235,37,234,41,233,147,232,79,232,50,232,59,232,119,232,21,233,46,234,117,235, +194,236,80,238,51,240,83,242,165,244,36,247,203,249,163,252,185,255,247,2,93,6,244,9,106,13,148,16,199,19,246,22, +205,25,45,28,241,29,59,31,81,32,255,32,35,33,219,32,40,32,22,31,177,29,0,28,28,26,245,23,153,21,34,19, +141,16,41,14,63,12,176,10,122,9,153,8,222,7,78,7,7,7,26,7,124,7,12,8,222,8,24,10,153,11,58,13, +234,14,169,16,130,18,111,20,83,22,254,23,98,25,166,26,227,27,235,28,123,29,144,29,108,29,61,29,242,28,120,28, +230,27,113,27,24,27,160,26,0,26,101,25,237,24,146,24,51,24,188,23,67,23,7,23,21,23,47,23,97,23,208,23, +83,24,236,24,154,25,47,26,196,26,71,27,122,27,138,27,112,27,35,27,239,26,132,26,162,25,168,24,136,23,30,22, +134,20,163,18,135,16,101,14,60,12,38,10,26,8,8,6,14,4,22,2,43,0,150,254,81,253,46,252,30,251,49,250, +126,249,252,248,170,248,128,248,57,248,199,247,125,247,144,247,218,247,12,248,21,248,22,248,20,248,247,247,141,247,178,246, +126,245,12,244,102,242,144,240,131,238,109,236,113,234,103,232,29,230,140,227,215,224,27,222,64,219,108,216,221,213,109,211, +27,209,26,207,90,205,236,203,229,202,6,202,83,201,37,201,136,201,92,202,164,203,59,205,232,206,176,208,127,210,35,212, +191,213,81,215,161,216,222,217,37,219,92,220,169,221,249,222,4,224,222,224,143,225,31,226,221,226,175,227,74,228,225,228, +148,229,58,230,238,230,195,231,125,232,24,233,213,233,189,234,171,235,143,236,98,237,57,238,55,239,74,240,91,241,125,242, +186,243,17,245,119,246,209,247,27,249,120,250,239,251,74,253,88,254,69,255,97,0,170,1,238,2,27,4,62,5,109,6, +193,7,24,9,54,10,45,11,31,12,11,13,235,13,193,14,160,15,158,16,164,17,178,18,231,19,33,21,65,22,133,23, +255,24,136,26,30,28,175,29,42,31,160,32,16,34,124,35,222,36,246,37,181,38,60,39,122,39,129,39,122,39,84,39, +17,39,169,38,236,37,238,36,207,35,134,34,14,33,78,31,89,29,118,27,152,25,179,23,235,21,23,20,17,18,249,15, +254,13,47,12,97,10,143,8,242,6,140,5,58,4,238,2,166,1,126,0,124,255,131,254,136,253,154,252,208,251,39,251, +126,250,182,249,159,248,56,247,197,245,102,244,8,243,145,241,240,239,71,238,158,236,218,234,27,233,91,231,107,229,107,227, +115,225,144,223,244,221,145,220,76,219,67,218,125,217,241,216,184,216,228,216,126,217,140,218,251,219,162,221,147,223,243,225, +201,228,37,232,219,235,131,239,48,243,14,247,224,250,149,254,29,2,68,5,32,8,176,10,222,12,181,14,251,15,152,16, +178,16,56,16,68,15,1,14,94,12,133,10,175,8,195,6,198,4,235,2,91,1,40,0,63,255,149,254,74,254,143,254, +108,255,201,0,164,2,232,4,94,7,1,10,203,12,170,15,188,18,228,21,215,24,159,27,80,30,234,32,90,35,87,37, +192,38,167,39,254,39,197,39,29,39,52,38,48,37,23,36,235,34,189,33,145,32,100,31,46,30,191,28,253,26,38,25, +123,23,246,21,173,20,182,19,214,18,18,18,172,17,132,17,89,17,23,17,218,16,230,16,42,17,91,17,122,17,164,17, +240,17,69,18,80,18,39,18,6,18,195,17,80,17,172,16,202,15,234,14,16,14,232,12,117,11,239,9,128,8,53,7, +236,5,173,4,151,3,177,2,19,2,158,1,17,1,107,0,185,255,19,255,159,254,80,254,29,254,4,254,254,253,27,254, +61,254,69,254,68,254,42,254,248,253,209,253,156,253,100,253,70,253,6,253,146,252,254,251,48,251,55,250,26,249,186,247, +29,246,85,244,126,242,187,240,245,238,34,237,76,235,83,233,82,231,116,229,150,227,206,225,90,224,46,223,70,222,195,221, +142,221,134,221,194,221,64,222,212,222,120,223,51,224,245,224,180,225,133,226,106,227,58,228,220,228,91,229,168,229,173,229, +148,229,124,229,81,229,252,228,111,228,181,227,241,226,66,226,156,225,228,224,44,224,163,223,75,223,30,223,14,223,245,222, +232,222,12,223,93,223,204,223,82,224,7,225,5,226,56,227,159,228,39,230,169,231,91,233,48,235,207,236,110,238,41,240, +213,241,165,243,130,245,57,247,17,249,234,250,139,252,60,254,16,0,0,2,24,4,11,6,180,7,61,9,180,10,30,12, +121,13,182,14,201,15,180,16,171,17,192,18,191,19,153,20,85,21,253,21,169,22,79,23,251,23,204,24,174,25,171,26, +186,27,142,28,42,29,184,29,52,30,155,30,218,30,224,30,205,30,177,30,150,30,140,30,113,30,56,30,236,29,110,29, +211,28,83,28,208,27,25,27,68,26,86,25,71,24,61,23,82,22,105,21,128,20,174,19,0,19,101,18,198,17,32,17, +120,16,231,15,131,15,56,15,7,15,4,15,12,15,31,15,86,15,132,15,181,15,244,15,243,15,207,15,191,15,136,15, +43,15,181,14,4,14,39,13,37,12,240,10,151,9,19,8,94,6,139,4,170,2,215,0,1,255,15,253,22,251,28,249, +55,247,111,245,161,243,236,241,104,240,250,238,214,237,249,236,37,236,112,235,201,234,40,234,205,233,140,233,35,233,173,232, +52,232,185,231,46,231,124,230,219,229,73,229,124,228,119,227,74,226,13,225,214,223,98,222,173,220,16,219,135,217,243,215, +101,214,232,212,180,211,7,211,203,210,234,210,114,211,102,212,191,213,119,215,126,217,221,219,151,222,139,225,152,228,183,231, +196,234,145,237,49,240,187,242,252,244,172,246,203,247,144,248,31,249,121,249,123,249,248,248,9,248,239,246,198,245,181,244, +238,243,109,243,6,243,197,242,230,242,99,243,43,244,82,245,165,246,21,248,236,249,250,251,13,254,120,0,50,3,24,6, +62,9,81,12,60,15,47,18,246,20,142,23,8,26,44,28,15,30,222,31,138,33,34,35,147,36,185,37,171,38,128,39, +82,40,8,41,111,41,175,41,243,41,63,42,143,42,169,42,142,42,133,42,118,42,92,42,82,42,56,42,35,42,65,42, +120,42,173,42,207,42,231,42,22,43,70,43,99,43,97,43,40,43,237,42,180,42,40,42,80,41,82,40,27,39,194,37, +86,36,181,34,219,32,236,30,31,29,127,27,222,25,58,24,179,22,67,21,243,19,202,18,178,17,168,16,185,15,216,14, +2,14,75,13,189,12,85,12,255,11,167,11,80,11,249,10,167,10,99,10,8,10,140,9,255,8,38,8,254,6,208,5, +118,4,222,2,81,1,197,255,20,254,73,252,90,250,74,248,34,246,213,243,95,241,201,238,59,236,187,233,37,231,154,228, +63,226,10,224,26,222,86,220,125,218,202,216,126,215,134,214,184,213,10,213,165,212,112,212,26,212,209,211,201,211,243,211, +70,212,119,212,114,212,146,212,218,212,60,213,207,213,100,214,243,214,135,215,246,215,78,216,140,216,150,216,164,216,178,216, +141,216,88,216,21,216,194,215,177,215,222,215,253,215,26,216,100,216,207,216,73,217,242,217,215,218,226,219,34,221,149,222, +19,224,185,225,152,227,124,229,112,231,148,233,183,235,205,237,19,240,150,242,27,245,137,247,221,249,255,251,246,253,226,255, +158,1,242,2,253,3,228,4,176,5,116,6,46,7,191,7,79,8,22,9,247,9,222,10,210,11,199,12,212,13,7,15, +84,16,224,17,156,19,92,21,61,23,45,25,249,26,173,28,60,30,179,31,33,33,68,34,28,35,213,35,100,36,223,36, +91,37,192,37,20,38,73,38,89,38,81,38,24,38,211,37,168,37,81,37,188,36,23,36,130,35,252,34,76,34,101,33, +110,32,74,31,17,30,244,28,208,27,178,26,162,25,123,24,101,23,113,22,127,21,150,20,157,19,154,18,179,17,219,16, +26,16,120,15,191,14,243,13,62,13,156,12,253,11,83,11,162,10,228,9,244,8,238,7,240,6,223,5,190,4,175,3, +201,2,3,2,28,1,35,0,120,255,4,255,122,254,251,253,163,253,76,253,233,252,121,252,246,251,115,251,240,250,93,250, +190,249,15,249,75,248,155,247,3,247,85,246,149,245,213,244,27,244,127,243,236,242,60,242,119,241,157,240,185,239,241,238, +43,238,48,237,18,236,20,235,82,234,163,233,224,232,15,232,67,231,143,230,231,229,46,229,108,228,182,227,28,227,160,226, +35,226,181,225,111,225,34,225,208,224,150,224,86,224,41,224,51,224,88,224,141,224,185,224,219,224,50,225,180,225,38,226, +129,226,199,226,19,227,110,227,172,227,199,227,219,227,6,228,81,228,126,228,112,228,85,228,79,228,131,228,221,228,12,229, +41,229,142,229,74,230,62,231,97,232,190,233,91,235,70,237,132,239,246,241,167,244,188,247,10,251,95,254,193,1,44,5, +162,8,32,12,121,15,118,18,24,21,159,23,22,26,44,28,193,29,244,30,197,31,51,32,119,32,157,32,99,32,213,31, +85,31,221,30,76,30,215,29,123,29,44,29,44,29,130,29,11,30,194,30,147,31,115,32,92,33,73,34,84,35,99,36, +84,37,60,38,30,39,250,39,204,40,105,41,201,41,250,41,10,42,250,41,158,41,6,41,109,40,191,39,255,38,51,38, +34,37,239,35,205,34,145,33,72,32,14,31,202,29,147,28,103,27,44,26,0,25,231,23,204,22,182,21,159,20,136,19, +114,18,105,17,162,16,24,16,134,15,215,14,34,14,143,13,27,13,147,12,255,11,94,11,133,10,139,9,116,8,52,7, +233,5,121,4,203,2,5,1,41,255,74,253,134,251,177,249,193,247,204,245,221,243,13,242,92,240,184,238,31,237,171,235, +155,234,236,233,85,233,215,232,152,232,151,232,183,232,203,232,211,232,242,232,59,233,163,233,246,233,29,234,49,234,29,234, +232,233,174,233,79,233,200,232,74,232,229,231,137,231,19,231,144,230,21,230,124,229,183,228,203,227,178,226,163,225,192,224, +231,223,0,223,254,221,244,220,15,220,72,219,130,218,166,217,210,216,94,216,53,216,8,216,220,215,202,215,219,215,26,216, +88,216,94,216,74,216,123,216,12,217,193,217,123,218,63,219,12,220,19,221,82,222,123,223,131,224,159,225,216,226,30,228, +113,229,192,230,243,231,43,233,158,234,56,236,208,237,100,239,255,240,200,242,196,244,199,246,206,248,208,250,186,252,157,254, +111,0,24,2,195,3,144,5,99,7,37,9,222,10,156,12,101,14,67,16,43,18,243,19,156,21,72,23,225,24,95,26, +195,27,224,28,189,29,148,30,107,31,24,32,118,32,174,32,3,33,69,33,67,33,55,33,61,33,92,33,156,33,206,33, +252,33,72,34,155,34,226,34,16,35,43,35,103,35,191,35,18,36,101,36,172,36,238,36,51,37,102,37,140,37,160,37, +155,37,143,37,120,37,89,37,45,37,221,36,118,36,241,35,68,35,118,34,116,33,104,32,130,31,142,30,129,29,104,28, +41,27,232,25,172,24,81,23,246,21,172,20,97,19,2,18,133,16,19,15,195,13,146,12,130,11,103,10,80,9,112,8, +153,7,195,6,6,6,70,5,149,4,246,3,83,3,179,2,1,2,78,1,191,0,24,0,69,255,96,254,101,253,115,252, +143,251,150,250,136,249,109,248,96,247,110,246,118,245,126,244,148,243,176,242,240,241,71,241,156,240,0,240,112,239,240,238, +126,238,237,237,80,237,219,236,99,236,182,235,224,234,254,233,62,233,157,232,224,231,8,231,57,230,110,229,171,228,6,228, +99,227,164,226,222,225,45,225,146,224,11,224,138,223,6,223,155,222,88,222,21,222,204,221,162,221,148,221,159,221,207,221, +21,222,118,222,247,222,139,223,56,224,246,224,179,225,126,226,83,227,32,228,243,228,225,229,243,230,17,232,31,233,51,234, +96,235,159,236,234,237,45,239,95,240,154,241,216,242,253,243,29,245,83,246,139,247,171,248,159,249,97,250,9,251,183,251, +125,252,70,253,233,253,132,254,62,255,242,255,152,0,60,1,206,1,93,2,250,2,153,3,32,4,113,4,194,4,57,5, +149,5,205,5,1,6,58,6,171,6,63,7,199,7,81,8,202,8,77,9,12,10,212,10,155,11,89,12,239,12,125,13, +242,13,62,14,131,14,153,14,143,14,136,14,82,14,15,14,216,13,135,13,61,13,211,12,35,12,142,11,25,11,167,10, +73,10,210,9,76,9,227,8,118,8,7,8,175,7,125,7,114,7,112,7,132,7,188,7,24,8,203,8,171,9,117,10, +96,11,109,12,97,13,73,14,41,15,249,15,182,16,64,17,158,17,236,17,31,18,36,18,235,17,143,17,37,17,149,16, +232,15,49,15,96,14,134,13,179,12,213,11,15,11,118,10,234,9,107,9,255,8,177,8,151,8,149,8,151,8,168,8, +203,8,11,9,100,9,182,9,22,10,141,10,248,10,70,11,110,11,125,11,126,11,76,11,224,10,77,10,160,9,254,8, +90,8,141,7,166,6,172,5,185,4,224,3,235,2,220,1,218,0,230,255,28,255,123,254,225,253,89,253,227,252,132,252, +73,252,19,252,215,251,172,251,140,251,108,251,77,251,60,251,47,251,255,250,181,250,117,250,69,250,39,250,19,250,245,249, +200,249,141,249,67,249,250,248,192,248,122,248,9,248,142,247,28,247,165,246,51,246,195,245,98,245,42,245,249,244,197,244, +178,244,178,244,204,244,26,245,139,245,22,246,183,246,104,247,52,248,242,248,131,249,255,249,111,250,203,250,13,251,68,251, +134,251,199,251,254,251,40,252,60,252,85,252,122,252,159,252,208,252,2,253,41,253,78,253,103,253,107,253,86,253,46,253, +16,253,240,252,188,252,138,252,105,252,99,252,127,252,180,252,245,252,39,253,90,253,166,253,240,253,46,254,89,254,104,254, +124,254,137,254,134,254,155,254,171,254,177,254,222,254,6,255,23,255,64,255,116,255,158,255,189,255,204,255,205,255,179,255, +141,255,118,255,89,255,47,255,1,255,205,254,183,254,182,254,165,254,177,254,228,254,15,255,70,255,147,255,211,255,1,0, +19,0,29,0,68,0,116,0,164,0,219,0,17,1,98,1,207,1,35,2,118,2,224,2,78,3,206,3,85,4,202,4, +55,5,152,5,233,5,23,6,27,6,32,6,29,6,5,6,241,5,190,5,93,5,252,4,153,4,48,4,185,3,33,3, +128,2,227,1,106,1,34,1,193,0,84,0,32,0,14,0,32,0,86,0,121,0,158,0,220,0,37,1,121,1,197,1, +9,2,85,2,158,2,228,2,29,3,71,3,114,3,151,3,189,3,221,3,218,3,203,3,173,3,101,3,39,3,253,2, +194,2,110,2,236,1,68,1,156,0,233,255,37,255,107,254,196,253,46,253,168,252,67,252,28,252,23,252,254,251,213,251, +200,251,218,251,242,251,14,252,41,252,50,252,53,252,70,252,92,252,102,252,102,252,95,252,76,252,66,252,76,252,71,252, +37,252,240,251,187,251,156,251,120,251,55,251,241,250,160,250,72,250,13,250,226,249,188,249,163,249,143,249,127,249,123,249, +144,249,187,249,231,249,22,250,81,250,137,250,192,250,251,250,56,251,122,251,180,251,234,251,38,252,109,252,198,252,25,253, +101,253,196,253,41,254,139,254,248,254,91,255,172,255,242,255,41,0,86,0,133,0,180,0,223,0,251,0,6,1,17,1, +39,1,60,1,70,1,87,1,122,1,172,1,230,1,29,2,86,2,152,2,217,2,36,3,115,3,177,3,253,3,113,4, +249,4,135,5,10,6,114,6,214,6,69,7,166,7,225,7,11,8,44,8,54,8,62,8,51,8,1,8,201,7,140,7, +70,7,20,7,211,6,115,6,25,6,182,5,73,5,232,4,137,4,42,4,215,3,136,3,52,3,225,2,152,2,72,2, +237,1,153,1,69,1,252,0,228,0,221,0,188,0,136,0,85,0,46,0,33,0,31,0,15,0,254,255,252,255,234,255, +190,255,137,255,75,255,17,255,220,254,153,254,93,254,35,254,217,253,154,253,85,253,250,252,162,252,77,252,12,252,235,251, +203,251,194,251,210,251,235,251,28,252,76,252,118,252,199,252,29,253,94,253,164,253,235,253,26,254,40,254,45,254,62,254, +70,254,78,254,96,254,97,254,97,254,105,254,85,254,63,254,60,254,44,254,10,254,225,253,180,253,145,253,106,253,46,253, +235,252,168,252,103,252,47,252,234,251,157,251,103,251,58,251,17,251,251,250,223,250,192,250,179,250,161,250,144,250,144,250, +142,250,129,250,87,250,26,250,249,249,221,249,171,249,133,249,119,249,103,249,56,249,231,248,143,248,52,248,218,247,138,247, +50,247,220,246,154,246,98,246,63,246,58,246,67,246,80,246,105,246,158,246,247,246,112,247,2,248,148,248,25,249,171,249, +76,250,245,250,177,251,121,252,60,253,233,253,145,254,74,255,252,255,161,0,78,1,231,1,101,2,230,2,100,3,193,3, +5,4,77,4,165,4,251,4,67,5,135,5,207,5,30,6,114,6,207,6,70,7,213,7,109,8,7,9,160,9,58,10, +227,10,144,11,29,12,130,12,226,12,83,13,202,13,49,14,139,14,227,14,43,15,101,15,157,15,185,15,193,15,195,15, +177,15,149,15,117,15,59,15,234,14,125,14,8,14,176,13,90,13,254,12,173,12,85,12,6,12,191,11,104,11,20,11, +192,10,86,10,215,9,69,9,196,8,90,8,203,7,25,7,106,6,200,5,49,5,140,4,220,3,50,3,126,2,205,1, +52,1,163,0,18,0,133,255,10,255,159,254,48,254,199,253,101,253,4,253,193,252,151,252,111,252,83,252,59,252,27,252, +1,252,241,251,238,251,247,251,8,252,39,252,86,252,153,252,228,252,22,253,59,253,102,253,150,253,190,253,213,253,233,253, +2,254,9,254,18,254,45,254,62,254,72,254,82,254,96,254,121,254,145,254,159,254,171,254,178,254,176,254,178,254,185,254, +181,254,161,254,137,254,111,254,74,254,41,254,12,254,214,253,151,253,110,253,67,253,12,253,215,252,144,252,53,252,225,251, +131,251,19,251,172,250,72,250,232,249,150,249,73,249,1,249,201,248,144,248,87,248,36,248,252,247,233,247,218,247,197,247, +186,247,171,247,135,247,94,247,73,247,70,247,67,247,72,247,89,247,104,247,126,247,144,247,150,247,175,247,203,247,211,247, +225,247,242,247,7,248,34,248,37,248,29,248,49,248,77,248,115,248,177,248,237,248,46,249,133,249,231,249,78,250,187,250, +51,251,192,251,87,252,232,252,118,253,252,253,123,254,1,255,122,255,209,255,35,0,140,0,249,0,80,1,156,1,224,1, +16,2,66,2,125,2,179,2,251,2,94,3,185,3,0,4,57,4,112,4,194,4,31,5,113,5,196,5,6,6,53,6, +113,6,169,6,203,6,233,6,253,6,0,7,246,6,236,6,238,6,231,6,218,6,207,6,176,6,132,6,93,6,55,6, +23,6,243,5,186,5,130,5,73,5,10,5,200,4,126,4,59,4,254,3,175,3,101,3,43,3,243,2,198,2,156,2, +98,2,41,2,249,1,196,1,148,1,115,1,73,1,7,1,203,0,154,0,94,0,29,0,219,255,150,255,83,255,11,255, +178,254,89,254,22,254,219,253,152,253,91,253,43,253,5,253,242,252,231,252,217,252,209,252,200,252,199,252,213,252,226,252, +254,252,30,253,29,253,28,253,44,253,48,253,52,253,66,253,79,253,99,253,110,253,110,253,124,253,135,253,131,253,133,253, +144,253,157,253,161,253,153,253,151,253,159,253,157,253,159,253,177,253,191,253,205,253,234,253,11,254,44,254,80,254,123,254, +178,254,232,254,31,255,98,255,152,255,192,255,237,255,19,0,63,0,106,0,121,0,140,0,180,0,215,0,250,0,36,1, +61,1,76,1,107,1,149,1,185,1,221,1,251,1,16,2,44,2,64,2,76,2,100,2,118,2,131,2,150,2,161,2, +181,2,208,2,227,2,2,3,36,3,77,3,139,3,187,3,234,3,39,4,83,4,128,4,174,4,198,4,225,4,245,4, +246,4,2,5,18,5,20,5,10,5,7,5,32,5,47,5,41,5,55,5,78,5,107,5,150,5,177,5,202,5,239,5, +12,6,33,6,44,6,52,6,78,6,96,6,99,6,105,6,109,6,101,6,78,6,44,6,0,6,203,5,142,5,71,5, +0,5,182,4,89,4,2,4,173,3,62,3,205,2,97,2,235,1,126,1,19,1,171,0,93,0,20,0,207,255,153,255, +87,255,14,255,208,254,151,254,88,254,13,254,198,253,133,253,52,253,234,252,188,252,141,252,84,252,21,252,216,251,166,251, +121,251,67,251,5,251,201,250,150,250,113,250,88,250,60,250,21,250,237,249,202,249,170,249,144,249,123,249,94,249,55,249, +19,249,245,248,213,248,188,248,174,248,164,248,167,248,174,248,180,248,200,248,223,248,247,248,22,249,39,249,60,249,106,249, +145,249,158,249,158,249,161,249,170,249,175,249,167,249,143,249,123,249,131,249,149,249,163,249,182,249,208,249,239,249,19,250, +66,250,125,250,158,250,168,250,202,250,252,250,41,251,87,251,132,251,184,251,236,251,21,252,56,252,94,252,149,252,216,252, +12,253,55,253,98,253,142,253,191,253,237,253,18,254,47,254,70,254,99,254,127,254,141,254,171,254,212,254,239,254,15,255, +52,255,72,255,95,255,123,255,138,255,153,255,167,255,180,255,210,255,248,255,24,0,54,0,70,0,85,0,128,0,169,0, +195,0,228,0,8,1,51,1,107,1,162,1,211,1,255,1,44,2,94,2,141,2,188,2,234,2,19,3,63,3,108,3, +156,3,199,3,224,3,253,3,25,4,32,4,45,4,61,4,75,4,99,4,114,4,132,4,162,4,186,4,219,4,240,4, +234,4,243,4,1,5,2,5,13,5,12,5,250,4,235,4,212,4,179,4,147,4,124,4,103,4,69,4,48,4,48,4, +41,4,40,4,47,4,50,4,66,4,82,4,84,4,86,4,88,4,88,4,77,4,58,4,41,4,16,4,243,3,212,3, +177,3,157,3,139,3,106,3,83,3,64,3,48,3,45,3,30,3,9,3,249,2,227,2,207,2,172,2,123,2,96,2, +73,2,34,2,244,1,194,1,153,1,107,1,40,1,235,0,189,0,144,0,109,0,75,0,24,0,220,255,170,255,133,255, +96,255,67,255,46,255,18,255,248,254,232,254,216,254,204,254,196,254,188,254,175,254,160,254,152,254,149,254,147,254,146,254, +138,254,121,254,112,254,107,254,96,254,86,254,84,254,76,254,57,254,43,254,35,254,22,254,9,254,0,254,246,253,229,253, +214,253,210,253,207,253,209,253,219,253,231,253,245,253,8,254,32,254,65,254,94,254,118,254,144,254,163,254,182,254,201,254, +217,254,252,254,33,255,51,255,61,255,62,255,71,255,95,255,110,255,122,255,135,255,142,255,151,255,158,255,164,255,180,255, +193,255,202,255,210,255,222,255,249,255,11,0,13,0,18,0,9,0,252,255,1,0,8,0,19,0,43,0,56,0,75,0, +114,0,150,0,183,0,219,0,249,0,14,1,29,1,38,1,42,1,41,1,26,1,4,1,242,0,228,0,205,0,178,0, +155,0,136,0,123,0,125,0,130,0,134,0,149,0,160,0,159,0,161,0,151,0,130,0,120,0,105,0,89,0,74,0, +58,0,60,0,65,0,54,0,50,0,50,0,48,0,53,0,57,0,69,0,81,0,83,0,86,0,83,0,75,0,75,0, +67,0,56,0,47,0,28,0,5,0,239,255,220,255,210,255,189,255,162,255,142,255,127,255,123,255,122,255,111,255,96,255, +83,255,79,255,67,255,45,255,25,255,245,254,205,254,181,254,143,254,97,254,57,254,19,254,3,254,246,253,217,253,204,253, +200,253,191,253,190,253,179,253,164,253,165,253,165,253,157,253,144,253,129,253,122,253,116,253,105,253,90,253,67,253,50,253, +42,253,38,253,33,253,26,253,30,253,44,253,54,253,74,253,101,253,123,253,146,253,174,253,194,253,206,253,223,253,244,253, +7,254,32,254,56,254,72,254,90,254,112,254,139,254,174,254,201,254,225,254,0,255,31,255,67,255,104,255,145,255,193,255, +229,255,255,255,33,0,72,0,112,0,145,0,166,0,186,0,205,0,222,0,245,0,10,1,25,1,40,1,58,1,66,1, +65,1,73,1,90,1,116,1,158,1,193,1,223,1,10,2,47,2,71,2,90,2,97,2,105,2,118,2,127,2,142,2, +161,2,166,2,159,2,149,2,135,2,112,2,92,2,79,2,67,2,58,2,49,2,43,2,49,2,44,2,24,2,10,2, +245,1,223,1,210,1,195,1,184,1,166,1,146,1,142,1,129,1,115,1,117,1,109,1,100,1,106,1,114,1,127,1, +131,1,129,1,143,1,152,1,166,1,187,1,186,1,178,1,177,1,174,1,179,1,175,1,169,1,173,1,168,1,162,1, +160,1,150,1,150,1,151,1,127,1,94,1,76,1,65,1,56,1,46,1,25,1,251,0,234,0,230,0,221,0,211,0, +205,0,204,0,208,0,205,0,209,0,224,0,227,0,215,0,199,0,183,0,162,0,131,0,110,0,101,0,80,0,58,0, +33,0,253,255,230,255,208,255,173,255,153,255,139,255,128,255,131,255,125,255,108,255,97,255,83,255,74,255,72,255,60,255, +47,255,51,255,62,255,65,255,58,255,47,255,48,255,51,255,42,255,32,255,35,255,42,255,47,255,48,255,45,255,34,255, +20,255,16,255,19,255,14,255,0,255,241,254,232,254,227,254,217,254,209,254,204,254,190,254,174,254,159,254,145,254,135,254, +121,254,100,254,78,254,50,254,28,254,22,254,17,254,11,254,13,254,17,254,24,254,39,254,55,254,64,254,77,254,93,254, +95,254,92,254,93,254,93,254,105,254,118,254,118,254,121,254,129,254,140,254,159,254,170,254,182,254,204,254,220,254,236,254, +250,254,12,255,41,255,58,255,69,255,83,255,91,255,101,255,115,255,118,255,126,255,142,255,158,255,180,255,198,255,215,255, +236,255,253,255,9,0,24,0,45,0,61,0,76,0,93,0,107,0,121,0,143,0,158,0,178,0,200,0,205,0,213,0, +228,0,234,0,235,0,226,0,220,0,227,0,222,0,209,0,199,0,186,0,181,0,171,0,157,0,162,0,168,0,170,0, +185,0,201,0,203,0,201,0,197,0,186,0,172,0,165,0,160,0,147,0,137,0,135,0,131,0,119,0,100,0,91,0, +86,0,77,0,84,0,90,0,79,0,76,0,70,0,42,0,11,0,238,255,203,255,168,255,135,255,97,255,50,255,2,255, +218,254,183,254,149,254,115,254,91,254,73,254,60,254,61,254,66,254,73,254,91,254,101,254,107,254,120,254,132,254,154,254, +188,254,212,254,231,254,240,254,248,254,22,255,45,255,56,255,82,255,109,255,135,255,160,255,172,255,194,255,223,255,241,255, +4,0,24,0,36,0,48,0,58,0,68,0,82,0,95,0,107,0,115,0,126,0,148,0,174,0,197,0,219,0,240,0, +8,1,25,1,38,1,57,1,71,1,83,1,95,1,94,1,92,1,94,1,79,1,59,1,51,1,37,1,17,1,4,1, +248,0,234,0,225,0,212,0,196,0,190,0,180,0,155,0,132,0,128,0,132,0,121,0,97,0,76,0,63,0,57,0, +56,0,54,0,46,0,35,0,28,0,23,0,19,0,17,0,11,0,7,0,11,0,11,0,11,0,16,0,20,0,22,0, +26,0,37,0,53,0,56,0,47,0,45,0,32,0,13,0,255,255,228,255,197,255,180,255,161,255,134,255,110,255,87,255, +68,255,51,255,37,255,31,255,27,255,26,255,35,255,54,255,74,255,89,255,100,255,113,255,129,255,139,255,137,255,133,255, +140,255,154,255,173,255,186,255,195,255,214,255,233,255,244,255,4,0,17,0,25,0,46,0,60,0,48,0,34,0,28,0, +17,0,10,0,2,0,238,255,223,255,221,255,221,255,220,255,214,255,203,255,199,255,201,255,206,255,217,255,218,255,222,255, +235,255,232,255,216,255,208,255,199,255,193,255,189,255,175,255,164,255,163,255,161,255,158,255,153,255,143,255,127,255,112,255, +105,255,105,255,110,255,116,255,124,255,138,255,151,255,160,255,173,255,180,255,190,255,213,255,227,255,235,255,253,255,9,0, +14,0,22,0,29,0,40,0,50,0,52,0,54,0,56,0,57,0,55,0,43,0,33,0,33,0,36,0,41,0,50,0, +61,0,74,0,84,0,101,0,125,0,140,0,150,0,169,0,190,0,209,0,228,0,238,0,248,0,15,1,31,1,32,1, +36,1,42,1,48,1,58,1,58,1,60,1,78,1,94,1,106,1,116,1,120,1,120,1,117,1,118,1,116,1,98,1, +86,1,85,1,67,1,42,1,23,1,5,1,248,0,230,0,201,0,173,0,154,0,143,0,135,0,125,0,115,0,102,0, +91,0,85,0,71,0,58,0,50,0,39,0,33,0,24,0,9,0,254,255,243,255,234,255,232,255,227,255,216,255,210,255, +210,255,212,255,212,255,211,255,211,255,209,255,210,255,212,255,210,255,213,255,215,255,204,255,199,255,204,255,200,255,196,255, +203,255,205,255,200,255,201,255,205,255,206,255,209,255,208,255,196,255,193,255,200,255,203,255,208,255,216,255,224,255,231,255, +238,255,242,255,236,255,233,255,232,255,220,255,206,255,195,255,182,255,178,255,178,255,173,255,166,255,155,255,147,255,145,255, +134,255,122,255,114,255,97,255,83,255,69,255,55,255,49,255,36,255,18,255,11,255,1,255,242,254,241,254,241,254,236,254, +242,254,249,254,249,254,248,254,247,254,242,254,243,254,254,254,253,254,245,254,243,254,231,254,214,254,203,254,193,254,184,254, +173,254,155,254,147,254,156,254,173,254,192,254,202,254,211,254,231,254,247,254,10,255,40,255,66,255,92,255,124,255,152,255, +180,255,206,255,231,255,4,0,35,0,62,0,91,0,116,0,137,0,158,0,177,0,192,0,202,0,210,0,213,0,215,0, +222,0,227,0,231,0,232,0,229,0,238,0,254,0,7,1,22,1,40,1,49,1,58,1,67,1,74,1,84,1,86,1, +82,1,82,1,79,1,77,1,75,1,75,1,80,1,82,1,77,1,69,1,58,1,43,1,31,1,26,1,17,1,245,0, +216,0,189,0,157,0,134,0,112,0,83,0,63,0,50,0,42,0,42,0,39,0,41,0,46,0,37,0,32,0,33,0, +33,0,37,0,38,0,40,0,47,0,47,0,46,0,48,0,52,0,58,0,60,0,64,0,68,0,70,0,82,0,89,0, +80,0,78,0,76,0,69,0,70,0,72,0,74,0,76,0,80,0,97,0,110,0,111,0,116,0,119,0,121,0,130,0, +132,0,138,0,143,0,137,0,143,0,149,0,134,0,126,0,121,0,103,0,86,0,72,0,54,0,34,0,17,0,3,0, +243,255,228,255,217,255,206,255,197,255,193,255,188,255,178,255,166,255,156,255,146,255,137,255,129,255,119,255,110,255,108,255, +95,255,70,255,52,255,36,255,15,255,253,254,242,254,235,254,228,254,220,254,212,254,204,254,197,254,185,254,177,254,178,254, +173,254,164,254,168,254,170,254,165,254,168,254,166,254,158,254,161,254,171,254,183,254,197,254,213,254,231,254,246,254,6,255, +34,255,61,255,80,255,99,255,114,255,129,255,152,255,169,255,180,255,198,255,217,255,233,255,249,255,9,0,28,0,44,0, +52,0,67,0,81,0,86,0,96,0,108,0,119,0,128,0,125,0,120,0,119,0,114,0,111,0,107,0,97,0,93,0, +87,0,77,0,69,0,58,0,47,0,36,0,21,0,18,0,21,0,16,0,16,0,15,0,9,0,14,0,18,0,14,0, +17,0,18,0,17,0,18,0,14,0,10,0,4,0,249,255,244,255,241,255,235,255,229,255,221,255,214,255,203,255,188,255, +179,255,172,255,161,255,150,255,142,255,141,255,146,255,150,255,149,255,148,255,149,255,150,255,150,255,149,255,148,255,151,255, +159,255,167,255,175,255,185,255,195,255,207,255,219,255,234,255,250,255,9,0,29,0,42,0,43,0,54,0,67,0,70,0, +79,0,87,0,90,0,102,0,113,0,125,0,136,0,132,0,133,0,143,0,145,0,151,0,154,0,152,0,163,0,167,0, +165,0,173,0,172,0,169,0,174,0,173,0,175,0,180,0,176,0,176,0,174,0,171,0,175,0,164,0,152,0,155,0, +148,0,142,0,139,0,125,0,117,0,114,0,103,0,93,0,82,0,70,0,65,0,53,0,39,0,37,0,30,0,25,0, +24,0,10,0,252,255,241,255,225,255,212,255,203,255,195,255,194,255,190,255,186,255,191,255,190,255,189,255,198,255,192,255, +178,255,176,255,176,255,181,255,188,255,185,255,184,255,184,255,178,255,178,255,183,255,187,255,194,255,204,255,219,255,233,255, +241,255,250,255,3,0,11,0,23,0,35,0,50,0,69,0,78,0,87,0,97,0,95,0,94,0,94,0,87,0,86,0, +83,0,77,0,85,0,87,0,83,0,88,0,86,0,82,0,88,0,88,0,82,0,82,0,81,0,77,0,71,0,64,0, +62,0,62,0,61,0,64,0,64,0,62,0,62,0,62,0,63,0,68,0,69,0,64,0,58,0,56,0,57,0,53,0, +50,0,46,0,38,0,30,0,23,0,14,0,5,0,252,255,240,255,226,255,204,255,180,255,168,255,163,255,156,255,147,255, +136,255,122,255,108,255,97,255,88,255,77,255,63,255,55,255,56,255,54,255,48,255,42,255,39,255,43,255,47,255,42,255, +43,255,53,255,60,255,68,255,76,255,77,255,81,255,87,255,92,255,99,255,106,255,112,255,114,255,111,255,114,255,116,255, +111,255,110,255,108,255,102,255,102,255,107,255,113,255,121,255,127,255,137,255,151,255,161,255,177,255,197,255,209,255,223,255, +234,255,240,255,243,255,246,255,247,255,246,255,245,255,248,255,246,255,245,255,250,255,248,255,242,255,242,255,238,255,233,255, +237,255,247,255,255,255,3,0,8,0,16,0,21,0,28,0,33,0,37,0,50,0,61,0,69,0,82,0,89,0,93,0, +101,0,108,0,116,0,121,0,125,0,135,0,135,0,133,0,140,0,136,0,126,0,124,0,114,0,105,0,105,0,100,0, +95,0,90,0,83,0,76,0,69,0,69,0,67,0,55,0,51,0,51,0,44,0,41,0,44,0,44,0,46,0,46,0, +45,0,48,0,56,0,64,0,63,0,61,0,66,0,67,0,66,0,62,0,54,0,50,0,47,0,39,0,35,0,29,0, +19,0,12,0,8,0,3,0,252,255,244,255,240,255,237,255,230,255,227,255,228,255,231,255,236,255,241,255,245,255,251,255, +7,0,19,0,29,0,42,0,55,0,66,0,81,0,88,0,88,0,97,0,107,0,108,0,107,0,108,0,108,0,104,0, +97,0,91,0,84,0,78,0,76,0,75,0,69,0,61,0,55,0,49,0,42,0,39,0,34,0,25,0,18,0,18,0, +24,0,27,0,25,0,30,0,39,0,45,0,51,0,58,0,66,0,73,0,71,0,69,0,70,0,67,0,70,0,70,0, +64,0,64,0,63,0,55,0,51,0,44,0,31,0,20,0,7,0,248,255,235,255,223,255,213,255,200,255,191,255,181,255, +166,255,159,255,154,255,148,255,148,255,148,255,144,255,145,255,146,255,150,255,150,255,141,255,144,255,148,255,142,255,145,255, +145,255,142,255,149,255,148,255,149,255,165,255,175,255,183,255,196,255,207,255,224,255,241,255,246,255,251,255,3,0,10,0, +15,0,21,0,29,0,34,0,40,0,44,0,41,0,40,0,41,0,39,0,45,0,49,0,45,0,42,0,43,0,43,0, +42,0,40,0,39,0,40,0,44,0,46,0,39,0,35,0,38,0,37,0,38,0,39,0,33,0,28,0,23,0,15,0, +9,0,251,255,238,255,229,255,220,255,217,255,208,255,196,255,197,255,196,255,191,255,193,255,190,255,181,255,177,255,177,255, +180,255,181,255,178,255,177,255,176,255,173,255,173,255,174,255,175,255,175,255,174,255,175,255,180,255,184,255,189,255,193,255, +200,255,207,255,212,255,216,255,223,255,227,255,233,255,243,255,248,255,249,255,249,255,250,255,248,255,247,255,245,255,242,255, +243,255,246,255,245,255,243,255,243,255,242,255,235,255,225,255,222,255,217,255,210,255,210,255,210,255,211,255,217,255,217,255, +212,255,216,255,216,255,209,255,210,255,215,255,218,255,216,255,211,255,213,255,217,255,216,255,217,255,217,255,219,255,228,255, +235,255,236,255,243,255,251,255,253,255,255,255,7,0,13,0,13,0,17,0,22,0,27,0,34,0,41,0,43,0,48,0, +55,0,57,0,58,0,60,0,59,0,58,0,57,0,54,0,50,0,46,0,39,0,32,0,28,0,26,0,24,0,21,0, +18,0,14,0,7,0,7,0,5,0,0,0,255,255,255,255,255,255,3,0,8,0,14,0,22,0,27,0,28,0,29,0, +33,0,42,0,47,0,43,0,40,0,39,0,36,0,34,0,30,0,26,0,21,0,14,0,11,0,6,0,255,255,254,255, +253,255,252,255,0,0,3,0,4,0,7,0,11,0,12,0,15,0,15,0,17,0,23,0,24,0,24,0,32,0,42,0, +47,0,49,0,51,0,56,0,54,0,51,0,53,0,49,0,44,0,48,0,46,0,40,0,39,0,32,0,23,0,21,0, +17,0,7,0,2,0,255,255,251,255,246,255,246,255,244,255,238,255,238,255,243,255,246,255,243,255,239,255,243,255,248,255, +248,255,252,255,4,0,5,0,10,0,15,0,15,0,19,0,23,0,23,0,27,0,33,0,39,0,42,0,41,0,38,0, +35,0,31,0,27,0,23,0,21,0,18,0,14,0,15,0,16,0,13,0,13,0,13,0,13,0,15,0,16,0,20,0, +23,0,22,0,26,0,31,0,32,0,39,0,42,0,39,0,39,0,38,0,35,0,36,0,37,0,33,0,28,0,26,0, +23,0,19,0,15,0,9,0,1,0,254,255,249,255,239,255,234,255,234,255,231,255,228,255,227,255,227,255,228,255,226,255, +223,255,226,255,228,255,226,255,228,255,234,255,237,255,239,255,244,255,247,255,249,255,252,255,1,0,5,0,4,0,4,0, +8,0,10,0,10,0,9,0,8,0,7,0,3,0,248,255,242,255,241,255,241,255,243,255,242,255,241,255,243,255,240,255, +235,255,232,255,228,255,221,255,216,255,215,255,215,255,216,255,217,255,217,255,217,255,215,255,208,255,203,255,202,255,200,255, +198,255,200,255,199,255,198,255,200,255,197,255,197,255,203,255,205,255,202,255,199,255,197,255,199,255,198,255,196,255,197,255, +194,255,190,255,190,255,188,255,188,255,193,255,197,255,200,255,203,255,207,255,211,255,215,255,221,255,227,255,230,255,234,255, +240,255,244,255,248,255,249,255,247,255,249,255,249,255,246,255,247,255,247,255,247,255,246,255,243,255,240,255,239,255,239,255, +245,255,251,255,254,255,5,0,7,0,9,0,14,0,16,0,16,0,18,0,18,0,20,0,24,0,25,0,23,0,22,0, +22,0,19,0,19,0,24,0,26,0,29,0,33,0,28,0,27,0,34,0,35,0,37,0,40,0,38,0,39,0,43,0, +43,0,42,0,43,0,43,0,45,0,45,0,41,0,38,0,38,0,38,0,34,0,29,0,26,0,22,0,18,0,14,0, +12,0,13,0,12,0,11,0,11,0,10,0,13,0,16,0,17,0,24,0,29,0,29,0,33,0,39,0,43,0,48,0, +54,0,60,0,64,0,67,0,72,0,71,0,72,0,74,0,73,0,72,0,73,0,70,0,69,0,71,0,70,0,64,0, +57,0,54,0,51,0,47,0,50,0,48,0,41,0,41,0,39,0,36,0,40,0,40,0,39,0,45,0,45,0,41,0, +40,0,39,0,38,0,34,0,31,0,28,0,20,0,14,0,13,0,8,0,7,0,7,0,0,0,250,255,248,255,245,255, +243,255,240,255,234,255,226,255,217,255,210,255,204,255,195,255,188,255,183,255,178,255,175,255,174,255,172,255,173,255,171,255, +166,255,165,255,164,255,161,255,158,255,157,255,158,255,158,255,158,255,160,255,162,255,165,255,170,255,172,255,175,255,182,255, +187,255,191,255,195,255,197,255,198,255,202,255,205,255,208,255,208,255,207,255,208,255,210,255,211,255,211,255,210,255,209,255, +211,255,212,255,210,255,210,255,213,255,217,255,224,255,235,255,243,255,248,255,0,0,12,0,23,0,30,0,37,0,43,0, +53,0,66,0,75,0,78,0,82,0,85,0,87,0,86,0,80,0,77,0,76,0,72,0,66,0,63,0,58,0,56,0, +55,0,51,0,46,0,41,0,35,0,31,0,29,0,26,0,20,0,14,0,13,0,10,0,6,0,4,0,0,0,250,255, +247,255,245,255,243,255,242,255,240,255,240,255,241,255,239,255,240,255,242,255,241,255,243,255,244,255,242,255,244,255,246,255, +244,255,243,255,240,255,234,255,228,255,223,255,217,255,210,255,202,255,192,255,181,255,174,255,168,255,160,255,157,255,156,255, +153,255,154,255,156,255,157,255,164,255,169,255,174,255,183,255,192,255,200,255,211,255,223,255,233,255,240,255,246,255,254,255, +5,0,9,0,14,0,14,0,11,0,10,0,6,0,3,0,3,0,0,0,249,255,244,255,245,255,242,255,238,255,237,255, +236,255,235,255,235,255,235,255,237,255,243,255,247,255,254,255,10,0,20,0,29,0,38,0,44,0,50,0,58,0,63,0, +65,0,68,0,71,0,73,0,77,0,81,0,84,0,87,0,89,0,90,0,94,0,92,0,85,0,82,0,80,0,78,0, +77,0,73,0,67,0,66,0,65,0,63,0,59,0,56,0,56,0,56,0,52,0,49,0,46,0,45,0,46,0,44,0, +43,0,45,0,47,0,50,0,53,0,56,0,58,0,60,0,63,0,68,0,70,0,67,0,66,0,68,0,70,0,69,0, +70,0,71,0,68,0,66,0,66,0,68,0,70,0,67,0,62,0,63,0,65,0,67,0,75,0,80,0,80,0,82,0, +87,0,92,0,96,0,95,0,93,0,90,0,84,0,80,0,79,0,80,0,77,0,74,0,69,0,60,0,53,0,45,0, +38,0,34,0,33,0,26,0,17,0,9,0,1,0,251,255,244,255,237,255,233,255,228,255,224,255,224,255,222,255,219,255, +215,255,205,255,195,255,186,255,177,255,170,255,168,255,163,255,156,255,154,255,154,255,151,255,148,255,148,255,146,255,145,255, +149,255,150,255,150,255,151,255,154,255,157,255,156,255,155,255,157,255,156,255,152,255,153,255,153,255,152,255,151,255,147,255, +142,255,140,255,134,255,127,255,124,255,118,255,110,255,105,255,101,255,95,255,88,255,85,255,85,255,86,255,84,255,80,255, +78,255,81,255,86,255,91,255,97,255,104,255,110,255,114,255,119,255,121,255,124,255,129,255,137,255,145,255,152,255,157,255, +164,255,176,255,184,255,188,255,196,255,204,255,207,255,210,255,213,255,215,255,218,255,220,255,222,255,224,255,226,255,226,255, +229,255,236,255,239,255,239,255,241,255,242,255,247,255,253,255,255,255,1,0,4,0,5,0,7,0,10,0,11,0,13,0, +16,0,17,0,16,0,13,0,12,0,14,0,14,0,15,0,16,0,17,0,19,0,22,0,26,0,33,0,37,0,40,0, +46,0,48,0,49,0,52,0,58,0,65,0,72,0,79,0,87,0,94,0,102,0,111,0,119,0,128,0,139,0,146,0, +152,0,155,0,161,0,169,0,174,0,180,0,189,0,194,0,199,0,208,0,213,0,220,0,224,0,222,0,220,0,223,0, +220,0,214,0,209,0,203,0,199,0,195,0,191,0,188,0,187,0,184,0,182,0,179,0,177,0,175,0,175,0,173,0, +169,0,167,0,164,0,158,0,152,0,148,0,143,0,139,0,133,0,126,0,119,0,110,0,101,0,93,0,83,0,73,0, +65,0,57,0,49,0,44,0,40,0,35,0,31,0,29,0,28,0,26,0,23,0,21,0,18,0,12,0,9,0,6,0, +2,0,254,255,250,255,242,255,237,255,229,255,218,255,210,255,203,255,195,255,190,255,183,255,175,255,170,255,166,255,163,255, +157,255,149,255,147,255,147,255,146,255,145,255,143,255,141,255,140,255,139,255,141,255,141,255,140,255,143,255,146,255,147,255, +150,255,155,255,158,255,159,255,160,255,167,255,172,255,173,255,178,255,184,255,187,255,191,255,193,255,194,255,199,255,199,255, +199,255,199,255,193,255,186,255,181,255,171,255,162,255,157,255,149,255,141,255,133,255,129,255,128,255,126,255,123,255,121,255, +118,255,116,255,113,255,109,255,109,255,109,255,106,255,104,255,104,255,105,255,108,255,110,255,112,255,113,255,115,255,116,255, +115,255,118,255,122,255,122,255,124,255,127,255,125,255,124,255,126,255,127,255,127,255,131,255,133,255,134,255,139,255,144,255, +147,255,154,255,161,255,166,255,173,255,180,255,187,255,196,255,201,255,205,255,213,255,221,255,228,255,234,255,237,255,244,255, +253,255,3,0,7,0,11,0,17,0,20,0,22,0,25,0,26,0,23,0,20,0,17,0,18,0,23,0,23,0,25,0, +31,0,33,0,37,0,44,0,48,0,51,0,54,0,57,0,63,0,70,0,75,0,79,0,85,0,93,0,98,0,102,0, +109,0,113,0,117,0,123,0,126,0,127,0,129,0,127,0,129,0,134,0,133,0,132,0,132,0,129,0,129,0,130,0, +132,0,136,0,139,0,140,0,142,0,144,0,145,0,143,0,140,0,138,0,135,0,134,0,136,0,133,0,130,0,128,0, +124,0,121,0,118,0,116,0,113,0,110,0,107,0,104,0,100,0,98,0,97,0,91,0,86,0,85,0,83,0,78,0, +74,0,73,0,72,0,73,0,74,0,73,0,69,0,66,0,64,0,62,0,61,0,59,0,55,0,54,0,56,0,59,0, +58,0,55,0,54,0,56,0,55,0,51,0,47,0,43,0,38,0,33,0,29,0,24,0,20,0,16,0,11,0,5,0, +0,0,254,255,251,255,245,255,242,255,240,255,234,255,228,255,224,255,221,255,218,255,215,255,211,255,210,255,206,255,202,255, +202,255,203,255,200,255,199,255,201,255,202,255,202,255,202,255,203,255,204,255,207,255,208,255,208,255,210,255,214,255,215,255, +218,255,218,255,214,255,214,255,216,255,214,255,214,255,215,255,213,255,211,255,210,255,211,255,211,255,209,255,206,255,201,255, +195,255,194,255,194,255,194,255,194,255,194,255,195,255,194,255,189,255,187,255,186,255,184,255,182,255,179,255,178,255,178,255, +178,255,179,255,178,255,177,255,179,255,182,255,182,255,182,255,184,255,184,255,186,255,188,255,188,255,190,255,193,255,197,255, +199,255,199,255,198,255,199,255,203,255,204,255,204,255,205,255,205,255,204,255,206,255,206,255,205,255,204,255,203,255,200,255, +197,255,195,255,199,255,201,255,200,255,202,255,205,255,208,255,211,255,213,255,214,255,214,255,217,255,221,255,222,255,223,255, +226,255,226,255,226,255,225,255,224,255,222,255,221,255,219,255,218,255,217,255,218,255,217,255,214,255,213,255,212,255,210,255, +212,255,215,255,216,255,218,255,224,255,230,255,234,255,237,255,242,255,248,255,251,255,0,0,6,0,13,0,19,0,24,0, +29,0,37,0,46,0,53,0,61,0,68,0,76,0,85,0,91,0,95,0,101,0,107,0,111,0,115,0,118,0,120,0, +125,0,128,0,129,0,129,0,129,0,129,0,129,0,127,0,124,0,121,0,116,0,111,0,108,0,103,0,99,0,97,0, +95,0,93,0,90,0,85,0,81,0,77,0,74,0,70,0,65,0,62,0,60,0,61,0,64,0,64,0,64,0,64,0, +63,0,60,0,60,0,56,0,51,0,49,0,45,0,40,0,38,0,34,0,29,0,24,0,21,0,20,0,18,0,18,0, +18,0,15,0,14,0,14,0,10,0,7,0,5,0,2,0,0,0,253,255,251,255,251,255,249,255,245,255,241,255,235,255, +231,255,228,255,223,255,217,255,211,255,205,255,200,255,195,255,190,255,186,255,182,255,178,255,175,255,171,255,169,255,169,255, +167,255,165,255,166,255,166,255,165,255,167,255,169,255,170,255,172,255,173,255,174,255,178,255,180,255,182,255,185,255,190,255, +194,255,198,255,200,255,203,255,208,255,211,255,213,255,216,255,220,255,223,255,226,255,230,255,232,255,233,255,238,255,240,255, +243,255,248,255,251,255,254,255,4,0,5,0,6,0,9,0,11,0,13,0,15,0,16,0,16,0,16,0,16,0,16,0, +15,0,15,0,15,0,12,0,10,0,7,0,4,0,3,0,0,0,253,255,251,255,249,255,245,255,243,255,241,255,239,255, +239,255,238,255,238,255,238,255,238,255,238,255,239,255,239,255,240,255,241,255,243,255,245,255,247,255,247,255,248,255,249,255, +249,255,249,255,250,255,250,255,251,255,252,255,252,255,254,255,1,0,2,0,4,0,8,0,8,0,9,0,10,0,10,0, +9,0,9,0,11,0,14,0,17,0,19,0,19,0,18,0,19,0,19,0,18,0,15,0,10,0,7,0,3,0,254,255, +251,255,248,255,244,255,242,255,240,255,237,255,237,255,236,255,236,255,239,255,241,255,240,255,240,255,241,255,243,255,247,255, +251,255,0,0,5,0,10,0,13,0,15,0,19,0,22,0,23,0,23,0,23,0,23,0,25,0,29,0,30,0,31,0, +34,0,38,0,42,0,43,0,44,0,45,0,45,0,46,0,47,0,46,0,48,0,52,0,54,0,54,0,55,0,56,0, +56,0,58,0,58,0,56,0,58,0,58,0,55,0,54,0,52,0,52,0,53,0,54,0,55,0,56,0,57,0,60,0, +63,0,63,0,64,0,65,0,65,0,64,0,62,0,60,0,58,0,55,0,50,0,46,0,41,0,36,0,29,0,23,0, +17,0,10,0,5,0,254,255,247,255,244,255,243,255,241,255,242,255,241,255,240,255,242,255,244,255,245,255,251,255,1,0, +5,0,9,0,13,0,15,0,14,0,15,0,15,0,13,0,12,0,10,0,4,0,254,255,249,255,245,255,239,255,231,255, +222,255,215,255,208,255,199,255,191,255,187,255,182,255,178,255,175,255,172,255,171,255,172,255,170,255,169,255,170,255,170,255, +169,255,170,255,171,255,171,255,170,255,168,255,168,255,168,255,169,255,170,255,169,255,169,255,170,255,171,255,173,255,176,255, +178,255,180,255,184,255,187,255,190,255,194,255,197,255,200,255,202,255,205,255,208,255,211,255,212,255,213,255,215,255,219,255, +218,255,219,255,224,255,225,255,226,255,230,255,231,255,234,255,239,255,242,255,245,255,251,255,1,0,4,0,7,0,11,0, +15,0,18,0,23,0,27,0,29,0,33,0,35,0,36,0,38,0,39,0,40,0,41,0,42,0,42,0,43,0,45,0, +46,0,47,0,49,0,51,0,54,0,58,0,64,0,69,0,74,0,79,0,85,0,89,0,93,0,97,0,99,0,101,0, +102,0,101,0,101,0,102,0,100,0,97,0,94,0,88,0,82,0,76,0,67,0,60,0,52,0,44,0,37,0,32,0, +28,0,25,0,20,0,16,0,12,0,7,0,4,0,1,0,253,255,249,255,247,255,245,255,240,255,237,255,237,255,235,255, +231,255,230,255,227,255,222,255,220,255,217,255,214,255,213,255,210,255,207,255,207,255,205,255,203,255,203,255,204,255,205,255, +206,255,207,255,208,255,209,255,212,255,215,255,218,255,222,255,224,255,227,255,231,255,235,255,235,255,235,255,236,255,235,255, +234,255,233,255,233,255,234,255,236,255,237,255,238,255,239,255,238,255,237,255,236,255,234,255,230,255,228,255,224,255,221,255, +221,255,222,255,222,255,220,255,221,255,224,255,224,255,223,255,224,255,224,255,227,255,231,255,233,255,239,255,248,255,253,255, +2,0,10,0,18,0,25,0,32,0,38,0,42,0,48,0,55,0,60,0,62,0,65,0,66,0,67,0,66,0,64,0, +64,0,62,0,59,0,58,0,57,0,53,0,52,0,49,0,45,0,45,0,44,0,41,0,40,0,40,0,41,0,41,0, +39,0,39,0,39,0,38,0,38,0,36,0,36,0,38,0,37,0,35,0,35,0,34,0,33,0,31,0,27,0,24,0, +23,0,19,0,14,0,10,0,7,0,3,0,1,0,254,255,251,255,250,255,248,255,248,255,248,255,246,255,244,255,244,255, +243,255,242,255,241,255,241,255,240,255,238,255,238,255,241,255,242,255,242,255,246,255,246,255,245,255,247,255,245,255,242,255, +240,255,238,255,236,255,236,255,235,255,233,255,230,255,228,255,226,255,223,255,222,255,218,255,212,255,209,255,204,255,199,255, +197,255,194,255,190,255,188,255,187,255,186,255,185,255,184,255,184,255,183,255,183,255,186,255,187,255,189,255,192,255,194,255, +197,255,202,255,205,255,208,255,212,255,215,255,218,255,220,255,221,255,222,255,225,255,226,255,226,255,226,255,228,255,228,255, +228,255,229,255,229,255,229,255,229,255,230,255,232,255,232,255,233,255,235,255,238,255,242,255,245,255,247,255,250,255,252,255, +255,255,2,0,1,0,1,0,2,0,1,0,3,0,6,0,6,0,8,0,12,0,13,0,14,0,16,0,18,0,19,0, +20,0,23,0,27,0,29,0,33,0,38,0,41,0,47,0,54,0,59,0,62,0,64,0,67,0,68,0,67,0,68,0, +70,0,71,0,73,0,72,0,73,0,75,0,74,0,76,0,77,0,74,0,74,0,75,0,72,0,72,0,73,0,73,0, +73,0,74,0,74,0,74,0,73,0,72,0,70,0,68,0,67,0,65,0,63,0,60,0,58,0,54,0,50,0,45,0, +39,0,35,0,32,0,27,0,22,0,19,0,15,0,10,0,6,0,255,255,250,255,246,255,241,255,236,255,233,255,229,255, +226,255,223,255,219,255,217,255,213,255,209,255,207,255,205,255,203,255,202,255,201,255,202,255,202,255,202,255,203,255,205,255, +207,255,210,255,211,255,212,255,215,255,217,255,220,255,223,255,224,255,225,255,224,255,224,255,224,255,222,255,222,255,222,255, +220,255,220,255,220,255,219,255,218,255,217,255,216,255,215,255,212,255,212,255,212,255,211,255,212,255,216,255,216,255,217,255, +219,255,220,255,221,255,223,255,225,255,226,255,226,255,226,255,226,255,226,255,227,255,227,255,227,255,228,255,229,255,229,255, +230,255,232,255,233,255,234,255,238,255,240,255,243,255,247,255,251,255,255,255,4,0,8,0,15,0,22,0,26,0,30,0, +34,0,37,0,40,0,43,0,45,0,48,0,52,0,53,0,53,0,52,0,53,0,55,0,53,0,53,0,52,0,50,0, +49,0,48,0,46,0,45,0,43,0,42,0,41,0,40,0,40,0,40,0,40,0,39,0,36,0,35,0,35,0,33,0, +31,0,29,0,27,0,25,0,24,0,21,0,20,0,19,0,16,0,15,0,15,0,13,0,12,0,12,0,12,0,12,0, +12,0,11,0,11,0,12,0,12,0,11,0,10,0,10,0,10,0,9,0,7,0,5,0,2,0,255,255,253,255,251,255, +249,255,247,255,244,255,243,255,242,255,241,255,241,255,241,255,242,255,242,255,242,255,242,255,244,255,244,255,244,255,247,255, +247,255,245,255,246,255,246,255,246,255,245,255,245,255,244,255,241,255,238,255,235,255,231,255,228,255,224,255,220,255,217,255, +216,255,214,255,213,255,212,255,211,255,212,255,212,255,213,255,214,255,215,255,218,255,219,255,221,255,224,255,224,255,224,255, +227,255,230,255,231,255,233,255,234,255,236,255,238,255,239,255,240,255,242,255,243,255,245,255,247,255,248,255,251,255,252,255, +254,255,0,0,2,0,4,0,6,0,8,0,10,0,12,0,12,0,11,0,11,0,9,0,8,0,7,0,5,0,5,0, +5,0,3,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,5,0, +5,0,6,0,8,0,10,0,11,0,11,0,11,0,11,0,12,0,13,0,13,0,12,0,14,0,14,0,14,0,15,0, +16,0,16,0,18,0,19,0,21,0,22,0,22,0,24,0,26,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0, +24,0,23,0,23,0,21,0,18,0,17,0,14,0,11,0,9,0,7,0,4,0,2,0,0,0,254,255,253,255,252,255, +251,255,249,255,248,255,248,255,248,255,247,255,248,255,249,255,248,255,247,255,248,255,248,255,249,255,250,255,250,255,250,255, +251,255,250,255,250,255,251,255,250,255,250,255,250,255,251,255,252,255,253,255,253,255,254,255,255,255,254,255,255,255,0,0, +0,0,1,0,3,0,5,0,8,0,9,0,11,0,13,0,14,0,15,0,16,0,16,0,16,0,16,0,15,0,14,0, +13,0,10,0,7,0,3,0,0,0,252,255,249,255,246,255,242,255,238,255,233,255,228,255,226,255,221,255,217,255,214,255, +212,255,210,255,209,255,209,255,209,255,210,255,211,255,214,255,216,255,219,255,222,255,223,255,226,255,231,255,233,255,236,255, +239,255,242,255,245,255,247,255,248,255,250,255,253,255,0,0,3,0,4,0,6,0,9,0,10,0,11,0,12,0,14,0, +15,0,17,0,18,0,18,0,20,0,20,0,19,0,20,0,19,0,16,0,15,0,12,0,8,0,5,0,1,0,253,255, +251,255,248,255,244,255,242,255,240,255,237,255,235,255,233,255,232,255,231,255,232,255,233,255,233,255,236,255,239,255,242,255, +247,255,253,255,0,0,5,0,9,0,13,0,17,0,21,0,24,0,28,0,31,0,33,0,37,0,39,0,40,0,41,0, +42,0,43,0,43,0,42,0,41,0,41,0,40,0,40,0,39,0,37,0,36,0,35,0,35,0,35,0,35,0,35,0, +35,0,36,0,35,0,35,0,35,0,33,0,33,0,32,0,30,0,28,0,26,0,24,0,22,0,20,0,18,0,15,0, +12,0,9,0,5,0,2,0,255,255,251,255,248,255,247,255,246,255,244,255,242,255,241,255,240,255,239,255,238,255,238,255, +237,255,236,255,237,255,237,255,236,255,236,255,237,255,236,255,237,255,240,255,240,255,241,255,243,255,245,255,246,255,248,255, +249,255,251,255,252,255,252,255,254,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,251,255,250,255,248,255,244,255, +241,255,239,255,235,255,231,255,228,255,225,255,222,255,219,255,217,255,216,255,213,255,210,255,209,255,209,255,208,255,209,255, +209,255,210,255,210,255,212,255,213,255,214,255,216,255,218,255,220,255,223,255,227,255,230,255,232,255,234,255,236,255,239,255, +242,255,244,255,247,255,250,255,252,255,255,255,3,0,5,0,7,0,8,0,10,0,11,0,12,0,12,0,12,0,12,0, +12,0,12,0,12,0,12,0,11,0,10,0,11,0,11,0,9,0,8,0,7,0,7,0,6,0,6,0,6,0,6,0, +6,0,7,0,7,0,6,0,6,0,7,0,7,0,7,0,8,0,7,0,7,0,8,0,8,0,8,0,9,0,10,0, +10,0,11,0,13,0,14,0,15,0,16,0,18,0,20,0,22,0,24,0,26,0,26,0,28,0,30,0,31,0,32,0, +33,0,33,0,34,0,33,0,33,0,33,0,33,0,32,0,31,0,30,0,30,0,29,0,26,0,26,0,24,0,21,0, +20,0,18,0,14,0,13,0,12,0,9,0,7,0,6,0,3,0,1,0,0,0,254,255,254,255,254,255,253,255,252,255, +252,255,253,255,253,255,254,255,0,0,2,0,3,0,5,0,7,0,8,0,10,0,11,0,12,0,13,0,14,0,15,0, +16,0,16,0,14,0,14,0,12,0,10,0,8,0,5,0,2,0,255,255,251,255,249,255,247,255,243,255,240,255,238,255, +235,255,233,255,231,255,229,255,228,255,227,255,227,255,229,255,229,255,229,255,232,255,236,255,238,255,242,255,246,255,249,255, +253,255,0,0,2,0,4,0,6,0,7,0,7,0,7,0,7,0,5,0,1,0,254,255,250,255,245,255,240,255,235,255, +229,255,224,255,218,255,213,255,210,255,207,255,204,255,203,255,203,255,204,255,206,255,210,255,214,255,218,255,225,255,232,255, +238,255,245,255,253,255,3,0,8,0,14,0,20,0,23,0,25,0,27,0,28,0,28,0,26,0,25,0,22,0,18,0, +13,0,8,0,2,0,253,255,249,255,243,255,238,255,235,255,231,255,229,255,228,255,226,255,225,255,226,255,225,255,226,255, +229,255,231,255,234,255,237,255,240,255,244,255,248,255,252,255,0,0,3,0,5,0,8,0,11,0,12,0,13,0,16,0, +18,0,19,0,20,0,21,0,21,0,21,0,22,0,23,0,22,0,21,0,21,0,21,0,19,0,18,0,17,0,16,0, +15,0,13,0,13,0,11,0,10,0,9,0,8,0,7,0,6,0,4,0,4,0,4,0,4,0,5,0,5,0,6,0, +8,0,10,0,10,0,11,0,13,0,13,0,14,0,14,0,14,0,15,0,15,0,14,0,14,0,13,0,12,0,12,0, +11,0,9,0,7,0,6,0,6,0,6,0,4,0,4,0,4,0,3,0,2,0,3,0,4,0,5,0,6,0,7,0, +9,0,10,0,11,0,12,0,14,0,15,0,15,0,15,0,16,0,16,0,16,0,17,0,16,0,16,0,16,0,16,0, +15,0,14,0,12,0,9,0,8,0,8,0,6,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,253,255,251,255, +250,255,249,255,248,255,249,255,247,255,247,255,248,255,248,255,248,255,249,255,250,255,250,255,251,255,252,255,253,255,254,255, +255,255,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,252,255,251,255, +251,255,250,255,248,255,247,255,247,255,246,255,245,255,245,255,245,255,244,255,244,255,245,255,246,255,245,255,246,255,246,255, +245,255,245,255,245,255,246,255,246,255,245,255,244,255,244,255,242,255,242,255,242,255,240,255,239,255,238,255,236,255,235,255, +236,255,234,255,232,255,232,255,232,255,230,255,230,255,231,255,231,255,232,255,233,255,235,255,236,255,238,255,240,255,241,255, +243,255,245,255,246,255,247,255,249,255,249,255,251,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,253,255, +253,255,252,255,251,255,251,255,251,255,251,255,250,255,250,255,249,255,249,255,250,255,250,255,248,255,249,255,250,255,249,255, +248,255,249,255,249,255,250,255,250,255,250,255,251,255,252,255,253,255,255,255,0,0,1,0,3,0,4,0,5,0,7,0, +7,0,9,0,11,0,11,0,12,0,14,0,15,0,15,0,16,0,16,0,17,0,18,0,18,0,18,0,20,0,20,0, +19,0,20,0,21,0,20,0,19,0,21,0,22,0,22,0,21,0,22,0,23,0,22,0,22,0,21,0,22,0,21,0, +21,0,21,0,20,0,19,0,19,0,19,0,18,0,17,0,15,0,14,0,14,0,13,0,11,0,10,0,9,0,8,0, +7,0,7,0,7,0,6,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0,6,0, +6,0,6,0,6,0,7,0,8,0,8,0,7,0,7,0,7,0,7,0,8,0,8,0,6,0,6,0,6,0,5,0, +5,0,4,0,3,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,251,255,250,255, +250,255,249,255,247,255,245,255,245,255,243,255,242,255,241,255,240,255,239,255,237,255,236,255,236,255,235,255,234,255,233,255, +233,255,233,255,233,255,233,255,234,255,236,255,236,255,237,255,240,255,241,255,243,255,245,255,247,255,249,255,252,255,254,255, +255,255,1,0,2,0,2,0,4,0,4,0,4,0,5,0,5,0,4,0,3,0,2,0,1,0,1,0,255,255,254,255, +253,255,253,255,252,255,250,255,249,255,249,255,249,255,248,255,247,255,247,255,247,255,248,255,248,255,248,255,249,255,249,255, +250,255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +2,0,1,0,1,0,2,0,3,0,3,0,3,0,5,0,7,0,7,0,8,0,10,0,10,0,10,0,10,0,11,0, +11,0,11,0,11,0,10,0,9,0,9,0,9,0,9,0,8,0,7,0,7,0,7,0,7,0,6,0,5,0,5,0, +5,0,4,0,4,0,3,0,3,0,3,0,2,0,1,0,0,0,255,255,0,0,255,255,254,255,254,255,253,255,252,255, +251,255,250,255,249,255,250,255,250,255,249,255,248,255,249,255,250,255,251,255,250,255,251,255,252,255,252,255,253,255,255,255, +0,0,1,0,1,0,2,0,4,0,5,0,4,0,5,0,5,0,5,0,6,0,6,0,4,0,3,0,3,0,2,0, +3,0,2,0,1,0,0,0,0,0,254,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,251,255,252,255,252,255,252,255,251,255,252,255,252,255,252,255,251,255,252,255,252,255,252,255,253,255, +252,255,252,255,253,255,254,255,253,255,253,255,253,255,254,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0, +3,0,3,0,4,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,7,0,6,0,6,0,6,0, +7,0,6,0,5,0,5,0,5,0,4,0,5,0,5,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0, +3,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0, +5,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0, +2,0,1,0,2,0,2,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,250,255,250,255,250,255,250,255,249,255, +248,255,249,255,249,255,249,255,248,255,249,255,249,255,248,255,248,255,248,255,248,255,249,255,249,255,250,255,250,255,249,255, +250,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,251,255,250,255,251,255,252,255,251,255,250,255, +250,255,250,255,250,255,250,255,249,255,249,255,250,255,250,255,249,255,249,255,250,255,250,255,250,255,250,255,251,255,251,255, +251,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255, +253,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,0,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0, +3,0,4,0,5,0,4,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0,5,0, +6,0,7,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0, +3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,3,0,4,0,3,0,3,0,4,0,4,0, +4,0,4,0,5,0,4,0,5,0,6,0,6,0,6,0,6,0,7,0,7,0,8,0,8,0,8,0,8,0,9,0, +10,0,8,0,8,0,9,0,8,0,8,0,8,0,8,0,7,0,7,0,7,0,6,0,6,0,6,0,5,0,5,0, +5,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,255,255,254,255,253,255,254,255,252,255,252,255,252,255,252,255, +251,255,251,255,250,255,250,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255,252,255,253,255,253,255,252,255,253,255, +254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,253,255, +252,255,252,255,251,255,251,255,250,255,249,255,249,255,249,255,248,255,248,255,248,255,246,255,246,255,247,255,247,255,246,255, +247,255,247,255,247,255,247,255,247,255,247,255,248,255,248,255,248,255,249,255,249,255,249,255,248,255,249,255,250,255,251,255, +251,255,251,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,5,0,5,0, +5,0,6,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0, +6,0,5,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,2,0,2,0, +2,0,3,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0, +4,0,3,0,3,0,3,0,2,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255, +252,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255, +252,255,252,255,253,255,253,255,253,255,252,255,253,255,254,255,254,255,253,255,252,255,254,255,254,255,253,255,254,255,254,255, +254,255,254,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255, +251,255,251,255,251,255,251,255,250,255,249,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255, +252,255,252,255,252,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +2,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,2,0,2,0, +3,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,3,0, +3,0,4,0,4,0,3,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0, +4,0,3,0,2,0,4,0,5,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0, +3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,2,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0, +255,255,0,0,1,0,0,0,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,253,255, +254,255,254,255,253,255,253,255,253,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255, +253,255,253,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0, +255,255,254,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0, +2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,254,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,1,0,255,255,255,255,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,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,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + +}; \ No newline at end of file diff --git a/src/client/sound/data/cow3.pcm b/src/client/sound/data/cow3.pcm new file mode 100755 index 0000000..0ae73e5 --- /dev/null +++ b/src/client/sound/data/cow3.pcm @@ -0,0 +1,5515 @@ +unsigned char PCM_cow3[176408] = { +1,0,0,0,2,0,0,0,68,172,0,0,132,88,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +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,255,255, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,255,255,1,0,1,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,254,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +255,255,1,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,2,0,2,0,0,0,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,253,255, +255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255, +0,0,255,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,254,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +254,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0, +1,0,1,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,2,0,3,0, +2,0,1,0,1,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0, +2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0, +5,0,6,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,5,0,5,0, +6,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,6,0,7,0, +6,0,5,0,6,0,6,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0, +6,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0, +5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,4,0,5,0,5,0,4,0,5,0,5,0,4,0,5,0, +6,0,5,0,4,0,5,0,5,0,4,0,5,0,6,0,5,0,4,0,5,0,5,0,5,0,4,0,5,0,5,0, +5,0,4,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,5,0,4,0,4,0, +4,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,4,0,5,0,5,0,5,0,4,0, +4,0,4,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,5,0, +5,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0, +4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,4,0, +4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,4,0, +4,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,3,0,5,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,4,0,4,0,4,0, +3,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,2,0,3,0, +4,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0, +2,0,2,0,3,0,3,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255, +254,255,253,255,253,255,253,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255, +253,255,253,255,254,255,254,255,253,255,252,255,253,255,254,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,251,255, +253,255,253,255,253,255,253,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255, +253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,251,255,252,255,253,255, +252,255,252,255,252,255,252,255,252,255,251,255,252,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,253,255,252,255, +251,255,252,255,253,255,252,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,250,255,250,255,251,255, +251,255,251,255,251,255,251,255,251,255,251,255,250,255,251,255,252,255,251,255,250,255,251,255,252,255,251,255,250,255,251,255, +250,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,251,255,250,255,249,255,250,255,251,255,250,255,249,255,249,255, +249,255,250,255,250,255,250,255,249,255,250,255,249,255,249,255,249,255,250,255,249,255,249,255,250,255,250,255,250,255,250,255, +250,255,249,255,248,255,248,255,249,255,250,255,249,255,249,255,249,255,250,255,250,255,249,255,249,255,249,255,249,255,250,255, +249,255,249,255,250,255,250,255,249,255,249,255,250,255,250,255,249,255,249,255,249,255,250,255,250,255,250,255,249,255,249,255, +251,255,251,255,250,255,250,255,250,255,250,255,250,255,251,255,250,255,249,255,250,255,251,255,250,255,250,255,251,255,251,255, +251,255,251,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255, +251,255,250,255,250,255,251,255,250,255,251,255,252,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255, +252,255,251,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255,251,255,252,255,252,255, +252,255,253,255,253,255,252,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255, +253,255,253,255,254,255,254,255,253,255,253,255,254,255,253,255,254,255,255,255,254,255,254,255,255,255,254,255,255,255,0,0, +255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0, +2,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,254,255,253,255,253,255,254,255,253,255,253,255,253,255, +253,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,252,255,251,255, +251,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,250,255,251,255,251,255,250,255, +250,255,251,255,250,255,249,255,249,255,249,255,249,255,249,255,249,255,249,255,249,255,250,255,251,255,250,255,249,255,249,255, +249,255,249,255,249,255,249,255,249,255,249,255,249,255,249,255,249,255,248,255,249,255,249,255,249,255,249,255,249,255,248,255, +248,255,248,255,248,255,247,255,248,255,248,255,248,255,249,255,248,255,247,255,247,255,248,255,248,255,248,255,249,255,249,255, +250,255,250,255,250,255,250,255,249,255,249,255,250,255,249,255,249,255,249,255,249,255,248,255,247,255,248,255,249,255,249,255, +249,255,249,255,250,255,250,255,249,255,250,255,251,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255, +251,255,251,255,251,255,251,255,252,255,253,255,253,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,252,255,252,255, +253,255,254,255,253,255,253,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,254,255,254,255,254,255,255,255, +0,0,0,0,255,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,254,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,2,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,2,0,3,0,3,0,4,0,3,0,2,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,4,0,3,0, +3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0, +3,0,4,0,5,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,2,0,2,0, +2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0, +3,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,5,0,5,0,6,0,7,0,7,0,6,0, +6,0,7,0,7,0,6,0,5,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,9,0,8,0, +9,0,9,0,9,0,8,0,9,0,9,0,9,0,9,0,10,0,10,0,10,0,9,0,9,0,10,0,10,0,8,0, +8,0,10,0,10,0,9,0,11,0,10,0,10,0,10,0,11,0,10,0,10,0,10,0,10,0,10,0,11,0,11,0, +10,0,11,0,11,0,10,0,10,0,11,0,10,0,11,0,12,0,11,0,10,0,11,0,11,0,10,0,11,0,12,0, +11,0,11,0,11,0,11,0,10,0,10,0,11,0,12,0,12,0,13,0,14,0,14,0,14,0,15,0,15,0,16,0, +15,0,15,0,16,0,17,0,16,0,16,0,17,0,17,0,16,0,16,0,17,0,17,0,16,0,16,0,17,0,17,0, +17,0,18,0,18,0,18,0,18,0,19,0,19,0,19,0,19,0,20,0,21,0,21,0,22,0,22,0,22,0,23,0, +24,0,24,0,24,0,24,0,23,0,24,0,24,0,24,0,24,0,24,0,24,0,23,0,23,0,24,0,23,0,23,0, +23,0,22,0,22,0,23,0,22,0,23,0,24,0,24,0,24,0,24,0,23,0,23,0,24,0,24,0,23,0,23,0, +23,0,23,0,23,0,23,0,23,0,23,0,22,0,22,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,19,0, +19,0,19,0,19,0,19,0,19,0,18,0,18,0,18,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,16,0, +15,0,14,0,14,0,14,0,13,0,13,0,12,0,12,0,12,0,11,0,10,0,11,0,12,0,10,0,10,0,10,0, +10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,9,0,8,0,7,0,7,0, +8,0,7,0,5,0,6,0,6,0,5,0,5,0,5,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0, +2,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,252,255,253,255, +254,255,253,255,251,255,252,255,252,255,251,255,251,255,250,255,251,255,251,255,251,255,250,255,249,255,250,255,249,255,248,255, +248,255,249,255,248,255,247,255,248,255,248,255,247,255,247,255,248,255,248,255,247,255,247,255,247,255,246,255,246,255,247,255, +246,255,246,255,246,255,246,255,246,255,246,255,246,255,246,255,246,255,246,255,247,255,247,255,248,255,247,255,247,255,248,255, +248,255,247,255,246,255,246,255,247,255,247,255,246,255,245,255,246,255,247,255,247,255,247,255,248,255,248,255,248,255,248,255, +249,255,250,255,249,255,250,255,250,255,251,255,251,255,252,255,251,255,251,255,252,255,253,255,252,255,252,255,253,255,253,255, +253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255, +254,255,254,255,255,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,253,255,253,255,254,255,254,255,254,255,254,255, +255,255,0,0,255,255,254,255,254,255,252,255,252,255,251,255,250,255,250,255,250,255,249,255,249,255,249,255,248,255,247,255, +247,255,247,255,246,255,247,255,247,255,247,255,248,255,247,255,247,255,247,255,247,255,246,255,246,255,247,255,247,255,247,255, +247,255,248,255,249,255,250,255,249,255,249,255,250,255,251,255,251,255,250,255,249,255,248,255,247,255,247,255,246,255,246,255, +246,255,245,255,244,255,244,255,243,255,243,255,244,255,244,255,243,255,245,255,246,255,246,255,246,255,246,255,246,255,246,255, +245,255,244,255,244,255,245,255,244,255,243,255,244,255,244,255,245,255,244,255,244,255,245,255,245,255,243,255,243,255,243,255, +242,255,241,255,241,255,240,255,239,255,239,255,238,255,238,255,239,255,238,255,238,255,238,255,238,255,238,255,240,255,241,255, +241,255,240,255,240,255,239,255,239,255,238,255,237,255,236,255,236,255,235,255,235,255,234,255,234,255,233,255,234,255,234,255, +234,255,235,255,234,255,233,255,232,255,231,255,230,255,230,255,231,255,230,255,230,255,229,255,229,255,229,255,229,255,228,255, +228,255,229,255,228,255,228,255,229,255,230,255,229,255,230,255,230,255,229,255,230,255,230,255,229,255,228,255,228,255,227,255, +227,255,229,255,229,255,229,255,228,255,228,255,228,255,228,255,228,255,227,255,227,255,227,255,227,255,228,255,228,255,227,255, +227,255,228,255,228,255,227,255,226,255,226,255,227,255,227,255,227,255,228,255,228,255,228,255,228,255,229,255,228,255,227,255, +227,255,228,255,229,255,228,255,228,255,229,255,228,255,228,255,228,255,228,255,228,255,228,255,228,255,228,255,228,255,227,255, +227,255,227,255,227,255,226,255,225,255,226,255,226,255,225,255,225,255,224,255,224,255,224,255,225,255,225,255,224,255,223,255, +223,255,224,255,224,255,223,255,223,255,223,255,223,255,223,255,224,255,224,255,223,255,223,255,223,255,223,255,222,255,223,255, +223,255,222,255,222,255,221,255,221,255,220,255,220,255,220,255,220,255,220,255,220,255,220,255,219,255,219,255,220,255,221,255, +221,255,222,255,222,255,222,255,222,255,223,255,223,255,223,255,224,255,224,255,224,255,224,255,224,255,224,255,223,255,222,255, +223,255,224,255,224,255,225,255,226,255,226,255,225,255,225,255,226,255,225,255,225,255,226,255,226,255,225,255,225,255,227,255, +229,255,229,255,229,255,229,255,230,255,230,255,231,255,231,255,231,255,232,255,232,255,232,255,233,255,233,255,232,255,232,255, +233,255,233,255,232,255,232,255,233,255,234,255,235,255,235,255,236,255,238,255,239,255,239,255,239,255,240,255,241,255,241,255, +241,255,241,255,241,255,240,255,240,255,241,255,241,255,241,255,240,255,240,255,240,255,240,255,240,255,240,255,241,255,241,255, +240,255,241,255,242,255,241,255,241,255,241,255,243,255,243,255,243,255,244,255,245,255,246,255,247,255,247,255,248,255,250,255, +250,255,250,255,250,255,251,255,251,255,251,255,251,255,250,255,250,255,249,255,248,255,249,255,249,255,248,255,249,255,251,255, +251,255,252,255,253,255,253,255,254,255,0,0,0,0,0,0,2,0,2,0,3,0,5,0,5,0,5,0,6,0,7,0, +7,0,7,0,8,0,8,0,8,0,8,0,8,0,9,0,10,0,11,0,12,0,12,0,11,0,12,0,12,0,13,0, +13,0,14,0,15,0,16,0,16,0,17,0,18,0,19,0,19,0,20,0,20,0,20,0,20,0,21,0,21,0,20,0, +21,0,21,0,21,0,21,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,19,0,20,0,21,0,21,0, +21,0,22,0,22,0,22,0,22,0,22,0,22,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0,20,0,19,0, +19,0,18,0,17,0,17,0,17,0,15,0,14,0,15,0,16,0,15,0,15,0,15,0,14,0,14,0,14,0,13,0, +12,0,12,0,13,0,14,0,13,0,13,0,14,0,12,0,11,0,12,0,12,0,11,0,11,0,11,0,11,0,11,0, +10,0,10,0,11,0,10,0,9,0,9,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0, +8,0,7,0,6,0,6,0,7,0,6,0,5,0,6,0,6,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0, +5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0,4,0,3,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255, +253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,253,255,252,255,253,255,254,255,254,255,254,255,253,255,253,255, +253,255,251,255,250,255,251,255,250,255,249,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255,250,255, +250,255,249,255,250,255,251,255,251,255,251,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,252,255,253,255,253,255, +253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0, +3,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,12,0,12,0,13,0,13,0, +14,0,15,0,15,0,16,0,16,0,17,0,18,0,18,0,18,0,18,0,18,0,18,0,17,0,18,0,19,0,19,0, +18,0,19,0,20,0,20,0,21,0,21,0,21,0,22,0,22,0,21,0,23,0,24,0,23,0,23,0,25,0,24,0, +24,0,25,0,25,0,24,0,25,0,25,0,27,0,28,0,28,0,28,0,30,0,30,0,29,0,29,0,29,0,28,0, +27,0,26,0,26,0,26,0,26,0,25,0,25,0,25,0,24,0,24,0,23,0,21,0,22,0,23,0,24,0,24,0, +25,0,25,0,25,0,25,0,24,0,23,0,23,0,22,0,23,0,24,0,26,0,27,0,28,0,30,0,30,0,30,0, +30,0,29,0,27,0,26,0,26,0,26,0,24,0,24,0,25,0,25,0,23,0,22,0,21,0,22,0,21,0,20,0, +21,0,22,0,23,0,24,0,25,0,25,0,25,0,25,0,24,0,23,0,23,0,22,0,22,0,22,0,22,0,22,0, +23,0,24,0,25,0,27,0,27,0,27,0,27,0,26,0,25,0,25,0,25,0,24,0,22,0,22,0,21,0,20,0, +19,0,18,0,17,0,17,0,18,0,19,0,19,0,20,0,22,0,22,0,22,0,22,0,22,0,20,0,20,0,19,0, +17,0,16,0,15,0,14,0,12,0,11,0,11,0,12,0,13,0,13,0,12,0,12,0,12,0,11,0,10,0,8,0, +7,0,5,0,3,0,3,0,3,0,2,0,1,0,0,0,0,0,2,0,2,0,1,0,2,0,2,0,3,0,3,0, +3,0,4,0,5,0,5,0,4,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +2,0,1,0,0,0,0,0,0,0,0,0,254,255,253,255,253,255,252,255,253,255,253,255,252,255,251,255,252,255,252,255, +251,255,252,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255, +252,255,253,255,254,255,253,255,252,255,252,255,250,255,250,255,250,255,249,255,249,255,248,255,247,255,247,255,248,255,248,255, +248,255,249,255,248,255,247,255,247,255,246,255,246,255,246,255,245,255,244,255,245,255,245,255,244,255,244,255,244,255,244,255, +244,255,243,255,243,255,243,255,243,255,243,255,243,255,243,255,242,255,243,255,244,255,244,255,244,255,245,255,245,255,243,255, +243,255,243,255,242,255,242,255,243,255,243,255,243,255,244,255,244,255,244,255,244,255,244,255,244,255,243,255,244,255,243,255, +242,255,243,255,243,255,243,255,243,255,242,255,243,255,245,255,245,255,244,255,245,255,245,255,245,255,246,255,247,255,248,255, +250,255,251,255,252,255,253,255,253,255,253,255,252,255,250,255,250,255,250,255,249,255,249,255,250,255,252,255,252,255,253,255, +255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,4,0,4,0,3,0,2,0,1,0, +0,0,0,0,0,0,1,0,2,0,2,0,3,0,4,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,4,0, +5,0,6,0,8,0,11,0,11,0,11,0,12,0,13,0,13,0,13,0,13,0,14,0,15,0,15,0,15,0,16,0, +16,0,16,0,15,0,14,0,14,0,14,0,14,0,15,0,16,0,18,0,18,0,20,0,23,0,24,0,24,0,25,0, +26,0,27,0,27,0,27,0,28,0,30,0,30,0,32,0,32,0,32,0,33,0,34,0,33,0,33,0,34,0,34,0, +35,0,35,0,35,0,36,0,35,0,34,0,35,0,35,0,36,0,39,0,40,0,40,0,41,0,42,0,43,0,44,0, +44,0,43,0,44,0,45,0,46,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,44,0,43,0,42,0,43,0, +42,0,42,0,43,0,42,0,41,0,41,0,40,0,39,0,38,0,38,0,38,0,38,0,39,0,39,0,39,0,40,0, +41,0,40,0,38,0,38,0,38,0,37,0,36,0,35,0,34,0,34,0,32,0,31,0,30,0,29,0,27,0,27,0, +25,0,24,0,25,0,25,0,26,0,25,0,24,0,25,0,25,0,23,0,22,0,21,0,19,0,17,0,17,0,17,0, +17,0,17,0,16,0,15,0,15,0,15,0,15,0,13,0,12,0,12,0,12,0,11,0,9,0,8,0,7,0,5,0, +4,0,2,0,1,0,0,0,0,0,255,255,2,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,2,0,1,0, +1,0,0,0,0,0,255,255,253,255,251,255,250,255,250,255,249,255,247,255,247,255,247,255,247,255,249,255,249,255,249,255, +249,255,248,255,248,255,247,255,245,255,243,255,242,255,241,255,241,255,242,255,243,255,241,255,240,255,239,255,238,255,236,255, +235,255,235,255,234,255,234,255,234,255,233,255,233,255,232,255,229,255,228,255,227,255,225,255,223,255,223,255,222,255,222,255, +224,255,224,255,225,255,226,255,225,255,224,255,224,255,223,255,222,255,221,255,222,255,222,255,221,255,221,255,221,255,220,255, +220,255,220,255,219,255,219,255,219,255,219,255,220,255,221,255,222,255,223,255,225,255,225,255,225,255,224,255,223,255,223,255, +223,255,222,255,222,255,222,255,224,255,225,255,226,255,228,255,228,255,228,255,229,255,228,255,228,255,229,255,229,255,230,255, +230,255,229,255,229,255,230,255,230,255,230,255,231,255,232,255,234,255,234,255,235,255,237,255,238,255,239,255,242,255,243,255, +243,255,243,255,242,255,242,255,243,255,242,255,242,255,243,255,243,255,243,255,244,255,245,255,246,255,246,255,246,255,246,255, +246,255,247,255,247,255,247,255,247,255,246,255,246,255,248,255,247,255,247,255,249,255,249,255,249,255,250,255,250,255,251,255, +253,255,253,255,253,255,253,255,252,255,250,255,249,255,247,255,245,255,244,255,244,255,244,255,243,255,242,255,243,255,242,255, +241,255,241,255,240,255,240,255,241,255,242,255,243,255,243,255,243,255,242,255,242,255,241,255,240,255,239,255,239,255,240,255, +241,255,244,255,247,255,250,255,253,255,255,255,255,255,254,255,252,255,250,255,249,255,247,255,245,255,245,255,245,255,244,255, +243,255,242,255,241,255,240,255,238,255,238,255,239,255,240,255,241,255,242,255,243,255,245,255,246,255,246,255,246,255,245,255, +243,255,242,255,240,255,239,255,241,255,243,255,244,255,246,255,248,255,249,255,250,255,250,255,248,255,247,255,246,255,245,255, +244,255,242,255,240,255,239,255,238,255,236,255,236,255,236,255,236,255,236,255,237,255,239,255,240,255,241,255,243,255,244,255, +245,255,246,255,246,255,245,255,243,255,241,255,239,255,237,255,235,255,233,255,231,255,229,255,229,255,228,255,228,255,228,255, +228,255,228,255,229,255,228,255,226,255,224,255,221,255,218,255,216,255,214,255,214,255,214,255,213,255,215,255,218,255,218,255, +218,255,219,255,220,255,220,255,221,255,222,255,222,255,221,255,222,255,222,255,221,255,221,255,220,255,218,255,215,255,212,255, +210,255,209,255,209,255,210,255,211,255,213,255,216,255,218,255,218,255,219,255,220,255,218,255,217,255,216,255,215,255,215,255, +214,255,214,255,214,255,214,255,215,255,215,255,214,255,214,255,215,255,214,255,213,255,214,255,215,255,216,255,216,255,215,255, +215,255,214,255,213,255,213,255,213,255,213,255,213,255,213,255,214,255,216,255,216,255,217,255,220,255,221,255,223,255,225,255, +225,255,224,255,223,255,222,255,221,255,219,255,217,255,217,255,216,255,216,255,216,255,217,255,218,255,219,255,219,255,219,255, +219,255,219,255,219,255,219,255,219,255,220,255,221,255,222,255,223,255,222,255,223,255,223,255,221,255,218,255,217,255,215,255, +214,255,215,255,215,255,216,255,216,255,216,255,218,255,217,255,216,255,216,255,215,255,213,255,213,255,214,255,215,255,217,255, +220,255,221,255,222,255,223,255,223,255,222,255,221,255,220,255,219,255,219,255,219,255,218,255,219,255,221,255,220,255,220,255, +222,255,221,255,221,255,220,255,219,255,219,255,218,255,218,255,219,255,221,255,222,255,222,255,222,255,222,255,224,255,224,255, +224,255,224,255,224,255,224,255,225,255,225,255,226,255,227,255,227,255,227,255,227,255,227,255,226,255,225,255,224,255,224,255, +224,255,225,255,226,255,229,255,232,255,234,255,236,255,237,255,239,255,240,255,241,255,241,255,241,255,242,255,242,255,243,255, +245,255,246,255,245,255,245,255,245,255,244,255,244,255,242,255,242,255,242,255,243,255,244,255,245,255,246,255,247,255,247,255, +247,255,248,255,247,255,248,255,248,255,248,255,248,255,252,255,254,255,0,0,5,0,8,0,10,0,13,0,14,0,15,0, +15,0,15,0,15,0,16,0,15,0,16,0,17,0,18,0,18,0,19,0,20,0,21,0,22,0,23,0,25,0,26,0, +28,0,31,0,34,0,37,0,40,0,43,0,45,0,45,0,46,0,47,0,47,0,47,0,46,0,47,0,50,0,52,0, +53,0,54,0,54,0,55,0,56,0,56,0,56,0,58,0,58,0,58,0,59,0,61,0,62,0,63,0,64,0,65,0, +67,0,67,0,67,0,68,0,69,0,70,0,71,0,73,0,76,0,78,0,79,0,81,0,81,0,82,0,83,0,81,0, +79,0,79,0,79,0,77,0,77,0,76,0,75,0,75,0,75,0,77,0,77,0,78,0,78,0,78,0,78,0,78,0, +78,0,78,0,78,0,78,0,78,0,78,0,78,0,76,0,74,0,72,0,70,0,68,0,65,0,63,0,62,0,61,0, +62,0,63,0,63,0,63,0,61,0,59,0,58,0,56,0,53,0,50,0,49,0,50,0,49,0,49,0,51,0,52,0, +52,0,52,0,51,0,50,0,49,0,48,0,47,0,48,0,49,0,49,0,48,0,47,0,47,0,45,0,42,0,39,0, +35,0,33,0,32,0,30,0,30,0,32,0,32,0,33,0,34,0,34,0,32,0,30,0,28,0,28,0,26,0,24,0, +24,0,23,0,21,0,21,0,20,0,19,0,19,0,18,0,16,0,15,0,14,0,13,0,13,0,12,0,12,0,11,0, +10,0,10,0,9,0,7,0,6,0,5,0,5,0,4,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0,3,0, +3,0,2,0,2,0,255,255,252,255,250,255,248,255,245,255,242,255,241,255,240,255,240,255,238,255,239,255,239,255,238,255, +236,255,235,255,232,255,231,255,231,255,231,255,230,255,231,255,232,255,233,255,233,255,232,255,232,255,230,255,228,255,225,255, +224,255,223,255,223,255,223,255,223,255,223,255,224,255,225,255,226,255,225,255,224,255,223,255,222,255,223,255,225,255,227,255, +230,255,232,255,234,255,237,255,238,255,238,255,239,255,238,255,238,255,238,255,237,255,238,255,239,255,240,255,242,255,244,255, +245,255,246,255,247,255,249,255,249,255,248,255,249,255,250,255,251,255,253,255,255,255,0,0,2,0,5,0,6,0,7,0, +8,0,9,0,9,0,9,0,10,0,11,0,11,0,13,0,15,0,15,0,15,0,15,0,14,0,13,0,13,0,12,0, +11,0,10,0,10,0,12,0,15,0,17,0,19,0,22,0,25,0,25,0,26,0,27,0,28,0,27,0,27,0,27,0, +28,0,28,0,28,0,28,0,28,0,26,0,23,0,22,0,20,0,19,0,19,0,18,0,18,0,19,0,18,0,19,0, +19,0,17,0,16,0,17,0,15,0,12,0,12,0,13,0,14,0,15,0,18,0,21,0,22,0,24,0,26,0,26,0, +25,0,25,0,24,0,22,0,21,0,20,0,19,0,17,0,16,0,15,0,12,0,12,0,11,0,10,0,10,0,11,0, +12,0,13,0,16,0,17,0,18,0,20,0,22,0,23,0,23,0,23,0,23,0,22,0,21,0,22,0,21,0,21,0, +22,0,22,0,21,0,21,0,20,0,20,0,20,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,17,0,16,0, +16,0,18,0,17,0,16,0,18,0,19,0,18,0,19,0,19,0,19,0,21,0,22,0,21,0,21,0,20,0,18,0, +16,0,15,0,13,0,11,0,10,0,7,0,4,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,252,255,251,255,248,255,246,255,244,255,241,255,239,255,238,255, +237,255,237,255,238,255,237,255,236,255,234,255,233,255,232,255,231,255,229,255,228,255,228,255,229,255,230,255,230,255,230,255, +230,255,229,255,229,255,228,255,228,255,229,255,230,255,233,255,236,255,238,255,241,255,242,255,241,255,239,255,236,255,232,255, +227,255,223,255,220,255,220,255,220,255,221,255,221,255,222,255,222,255,221,255,220,255,219,255,219,255,219,255,220,255,222,255, +224,255,227,255,229,255,228,255,227,255,226,255,223,255,220,255,219,255,217,255,217,255,219,255,221,255,224,255,228,255,230,255, +231,255,230,255,229,255,227,255,224,255,221,255,219,255,216,255,215,255,214,255,214,255,215,255,214,255,216,255,219,255,220,255, +221,255,223,255,224,255,225,255,227,255,227,255,226,255,227,255,226,255,224,255,222,255,220,255,218,255,214,255,211,255,210,255, +208,255,207,255,207,255,208,255,210,255,213,255,215,255,218,255,219,255,218,255,215,255,213,255,211,255,207,255,203,255,201,255, +199,255,199,255,201,255,204,255,206,255,208,255,212,255,214,255,215,255,216,255,216,255,216,255,217,255,218,255,218,255,219,255, +221,255,221,255,220,255,219,255,218,255,218,255,218,255,216,255,215,255,216,255,217,255,219,255,221,255,223,255,224,255,223,255, +222,255,220,255,217,255,213,255,211,255,210,255,208,255,208,255,210,255,211,255,213,255,217,255,220,255,223,255,227,255,229,255, +230,255,231,255,230,255,229,255,230,255,230,255,230,255,232,255,234,255,236,255,238,255,239,255,240,255,240,255,240,255,239,255, +238,255,240,255,241,255,243,255,246,255,250,255,252,255,254,255,0,0,0,0,255,255,254,255,252,255,251,255,250,255,251,255, +252,255,254,255,2,0,6,0,9,0,9,0,9,0,8,0,7,0,6,0,6,0,7,0,8,0,10,0,13,0,17,0, +21,0,24,0,25,0,25,0,25,0,23,0,21,0,21,0,23,0,26,0,30,0,36,0,42,0,47,0,51,0,55,0, +55,0,53,0,51,0,50,0,49,0,49,0,51,0,55,0,59,0,63,0,67,0,70,0,71,0,71,0,71,0,71,0, +71,0,73,0,76,0,79,0,83,0,87,0,91,0,93,0,94,0,91,0,87,0,84,0,82,0,80,0,80,0,82,0, +85,0,90,0,97,0,102,0,106,0,109,0,110,0,109,0,107,0,104,0,103,0,102,0,101,0,102,0,103,0,104,0, +105,0,107,0,107,0,107,0,108,0,107,0,108,0,111,0,113,0,114,0,118,0,120,0,121,0,121,0,119,0,117,0, +114,0,110,0,104,0,101,0,98,0,95,0,94,0,96,0,99,0,100,0,102,0,104,0,105,0,104,0,103,0,99,0, +93,0,89,0,84,0,79,0,76,0,74,0,73,0,73,0,74,0,75,0,78,0,79,0,78,0,78,0,78,0,79,0, +79,0,79,0,79,0,79,0,78,0,78,0,77,0,73,0,69,0,65,0,62,0,58,0,55,0,54,0,53,0,54,0, +55,0,57,0,57,0,57,0,56,0,52,0,46,0,39,0,34,0,28,0,23,0,19,0,17,0,16,0,17,0,18,0, +18,0,20,0,21,0,21,0,19,0,18,0,17,0,16,0,13,0,12,0,13,0,13,0,12,0,12,0,11,0,9,0, +7,0,5,0,2,0,1,0,255,255,255,255,255,255,1,0,4,0,5,0,6,0,7,0,7,0,6,0,4,0,1,0, +253,255,249,255,245,255,243,255,243,255,243,255,243,255,245,255,246,255,246,255,246,255,244,255,241,255,239,255,237,255,235,255, +234,255,234,255,235,255,236,255,237,255,238,255,239,255,238,255,235,255,232,255,228,255,226,255,225,255,225,255,227,255,232,255, +237,255,240,255,243,255,246,255,246,255,244,255,241,255,238,255,237,255,237,255,237,255,238,255,240,255,244,255,247,255,249,255, +251,255,253,255,252,255,251,255,250,255,250,255,252,255,254,255,255,255,2,0,5,0,5,0,5,0,4,0,1,0,253,255, +249,255,247,255,245,255,244,255,246,255,250,255,255,255,4,0,8,0,12,0,15,0,16,0,15,0,13,0,11,0,8,0, +7,0,7,0,6,0,6,0,7,0,8,0,9,0,10,0,10,0,9,0,11,0,11,0,11,0,13,0,16,0,18,0, +21,0,25,0,28,0,30,0,31,0,31,0,29,0,26,0,25,0,23,0,22,0,25,0,29,0,31,0,35,0,39,0, +41,0,40,0,39,0,36,0,31,0,25,0,19,0,15,0,12,0,12,0,13,0,14,0,15,0,18,0,19,0,19,0, +19,0,20,0,21,0,22,0,24,0,28,0,33,0,37,0,39,0,40,0,38,0,36,0,34,0,31,0,27,0,25,0, +23,0,21,0,21,0,23,0,25,0,27,0,30,0,32,0,33,0,33,0,32,0,31,0,29,0,28,0,27,0,25,0, +25,0,24,0,23,0,23,0,26,0,27,0,27,0,28,0,29,0,28,0,27,0,26,0,25,0,23,0,22,0,20,0, +19,0,18,0,17,0,17,0,16,0,15,0,14,0,12,0,9,0,8,0,8,0,9,0,12,0,15,0,18,0,20,0, +22,0,23,0,22,0,20,0,17,0,13,0,10,0,8,0,6,0,3,0,2,0,3,0,3,0,2,0,2,0,1,0, +1,0,0,0,255,255,254,255,252,255,251,255,251,255,252,255,252,255,252,255,251,255,249,255,248,255,246,255,243,255,241,255, +239,255,235,255,233,255,232,255,232,255,233,255,233,255,233,255,234,255,234,255,232,255,229,255,224,255,219,255,216,255,213,255, +212,255,214,255,217,255,220,255,223,255,225,255,226,255,226,255,225,255,222,255,221,255,219,255,218,255,220,255,223,255,226,255, +230,255,231,255,230,255,226,255,221,255,215,255,208,255,203,255,201,255,202,255,205,255,209,255,214,255,218,255,219,255,217,255, +213,255,207,255,200,255,195,255,192,255,190,255,192,255,197,255,200,255,203,255,205,255,204,255,201,255,197,255,193,255,188,255, +185,255,186,255,190,255,196,255,201,255,205,255,208,255,207,255,204,255,200,255,195,255,189,255,186,255,185,255,185,255,189,255, +193,255,195,255,197,255,197,255,194,255,189,255,184,255,180,255,176,255,174,255,173,255,173,255,173,255,173,255,172,255,169,255, +166,255,164,255,162,255,161,255,161,255,164,255,168,255,171,255,174,255,178,255,180,255,179,255,177,255,176,255,174,255,174,255, +176,255,178,255,179,255,180,255,179,255,178,255,175,255,172,255,169,255,167,255,166,255,169,255,173,255,178,255,184,255,189,255, +190,255,189,255,186,255,182,255,180,255,178,255,176,255,179,255,183,255,186,255,192,255,198,255,202,255,203,255,202,255,200,255, +199,255,198,255,198,255,200,255,203,255,207,255,210,255,211,255,210,255,208,255,205,255,199,255,193,255,190,255,191,255,195,255, +201,255,208,255,214,255,220,255,223,255,224,255,221,255,217,255,213,255,210,255,209,255,209,255,210,255,213,255,216,255,218,255, +221,255,223,255,226,255,228,255,230,255,233,255,237,255,240,255,243,255,247,255,248,255,247,255,245,255,241,255,234,255,230,255, +227,255,224,255,224,255,225,255,226,255,227,255,228,255,227,255,226,255,226,255,226,255,229,255,233,255,237,255,239,255,241,255, +241,255,240,255,238,255,236,255,236,255,238,255,243,255,251,255,5,0,16,0,26,0,36,0,44,0,49,0,49,0,46,0, +41,0,36,0,31,0,30,0,31,0,34,0,37,0,39,0,41,0,40,0,38,0,34,0,31,0,31,0,35,0,41,0, +48,0,57,0,67,0,74,0,78,0,78,0,74,0,69,0,64,0,59,0,57,0,59,0,64,0,73,0,83,0,92,0, +101,0,106,0,106,0,104,0,100,0,95,0,91,0,87,0,87,0,89,0,91,0,91,0,91,0,92,0,91,0,90,0, +90,0,93,0,96,0,101,0,105,0,108,0,111,0,113,0,114,0,113,0,111,0,105,0,98,0,93,0,89,0,86,0, +83,0,81,0,82,0,82,0,82,0,81,0,80,0,79,0,78,0,78,0,78,0,77,0,75,0,71,0,66,0,61,0, +55,0,48,0,43,0,41,0,38,0,38,0,39,0,39,0,42,0,43,0,43,0,43,0,42,0,37,0,33,0,29,0, +25,0,20,0,16,0,14,0,12,0,10,0,9,0,7,0,5,0,4,0,1,0,255,255,253,255,252,255,251,255,251,255, +251,255,249,255,244,255,239,255,232,255,225,255,217,255,209,255,202,255,196,255,191,255,187,255,186,255,188,255,190,255,193,255, +196,255,196,255,193,255,190,255,186,255,183,255,179,255,176,255,177,255,178,255,179,255,181,255,184,255,186,255,186,255,184,255, +181,255,179,255,176,255,175,255,176,255,177,255,181,255,185,255,188,255,190,255,188,255,183,255,178,255,171,255,163,255,157,255, +155,255,154,255,157,255,161,255,166,255,171,255,175,255,176,255,174,255,170,255,165,255,162,255,162,255,160,255,159,255,162,255, +165,255,166,255,169,255,169,255,166,255,164,255,161,255,158,255,157,255,156,255,157,255,161,255,166,255,171,255,178,255,181,255, +183,255,183,255,181,255,178,255,174,255,172,255,173,255,173,255,174,255,176,255,179,255,184,255,190,255,194,255,195,255,195,255, +192,255,189,255,187,255,184,255,182,255,181,255,180,255,180,255,180,255,178,255,176,255,173,255,169,255,166,255,164,255,162,255, +164,255,168,255,173,255,178,255,184,255,191,255,195,255,198,255,200,255,198,255,196,255,195,255,192,255,191,255,192,255,193,255, +196,255,200,255,204,255,208,255,210,255,211,255,211,255,211,255,214,255,216,255,217,255,220,255,224,255,226,255,228,255,231,255, +233,255,235,255,237,255,239,255,241,255,242,255,245,255,248,255,250,255,254,255,1,0,2,0,2,0,1,0,253,255,249,255, +247,255,243,255,241,255,239,255,236,255,234,255,234,255,234,255,235,255,238,255,242,255,247,255,254,255,4,0,10,0,14,0, +17,0,19,0,19,0,17,0,15,0,13,0,11,0,10,0,9,0,7,0,5,0,2,0,255,255,253,255,251,255,249,255, +249,255,248,255,248,255,249,255,252,255,255,255,1,0,2,0,0,0,254,255,251,255,248,255,247,255,247,255,248,255,251,255, +253,255,1,0,6,0,9,0,12,0,13,0,8,0,3,0,254,255,248,255,242,255,238,255,235,255,234,255,233,255,232,255, +232,255,232,255,232,255,233,255,233,255,235,255,237,255,240,255,245,255,250,255,255,255,3,0,6,0,6,0,5,0,1,0, +253,255,247,255,242,255,239,255,236,255,234,255,233,255,233,255,234,255,236,255,237,255,239,255,241,255,241,255,241,255,241,255, +240,255,238,255,236,255,236,255,237,255,236,255,236,255,239,255,241,255,242,255,242,255,240,255,237,255,234,255,230,255,228,255, +229,255,233,255,238,255,243,255,245,255,246,255,245,255,241,255,235,255,228,255,223,255,222,255,223,255,227,255,236,255,246,255, +0,0,8,0,12,0,12,0,6,0,253,255,244,255,234,255,226,255,224,255,226,255,229,255,234,255,237,255,237,255,234,255, +228,255,219,255,211,255,206,255,205,255,206,255,211,255,220,255,230,255,238,255,243,255,243,255,238,255,230,255,219,255,208,255, +199,255,194,255,194,255,198,255,205,255,212,255,217,255,218,255,217,255,211,255,205,255,197,255,189,255,183,255,180,255,179,255, +181,255,182,255,182,255,181,255,177,255,172,255,170,255,168,255,167,255,167,255,169,255,171,255,173,255,173,255,175,255,174,255, +171,255,168,255,164,255,160,255,157,255,154,255,152,255,151,255,150,255,147,255,144,255,141,255,140,255,141,255,144,255,149,255, +155,255,161,255,166,255,168,255,167,255,166,255,163,255,160,255,158,255,156,255,156,255,159,255,164,255,169,255,173,255,175,255, +176,255,175,255,173,255,171,255,168,255,166,255,167,255,169,255,173,255,176,255,180,255,183,255,184,255,183,255,181,255,179,255, +178,255,178,255,179,255,184,255,191,255,198,255,206,255,211,255,214,255,215,255,214,255,210,255,208,255,207,255,206,255,207,255, +209,255,212,255,216,255,220,255,223,255,226,255,225,255,224,255,224,255,224,255,227,255,230,255,235,255,243,255,250,255,1,0, +9,0,14,0,17,0,21,0,24,0,25,0,26,0,26,0,27,0,30,0,33,0,36,0,36,0,37,0,39,0,40,0, +38,0,34,0,30,0,24,0,17,0,12,0,10,0,8,0,8,0,13,0,20,0,29,0,38,0,44,0,49,0,54,0, +59,0,63,0,67,0,72,0,82,0,96,0,109,0,122,0,134,0,142,0,146,0,146,0,142,0,136,0,126,0,121,0, +120,0,120,0,125,0,131,0,138,0,145,0,150,0,152,0,152,0,148,0,142,0,138,0,136,0,136,0,140,0,147,0, +159,0,172,0,183,0,191,0,197,0,199,0,200,0,201,0,202,0,204,0,209,0,217,0,226,0,233,0,239,0,244,0, +245,0,245,0,244,0,239,0,233,0,227,0,223,0,223,0,228,0,234,0,240,0,248,0,255,0,4,1,9,1,13,1, +13,1,13,1,13,1,12,1,13,1,14,1,13,1,12,1,13,1,12,1,13,1,13,1,11,1,8,1,6,1,2,1, +253,0,246,0,240,0,236,0,231,0,225,0,219,0,213,0,209,0,204,0,198,0,192,0,185,0,179,0,176,0,176,0, +176,0,177,0,177,0,178,0,181,0,183,0,183,0,183,0,181,0,176,0,172,0,168,0,164,0,160,0,155,0,152,0, +150,0,147,0,142,0,138,0,134,0,130,0,125,0,118,0,109,0,100,0,93,0,85,0,78,0,72,0,66,0,60,0, +55,0,49,0,44,0,39,0,33,0,27,0,24,0,22,0,20,0,18,0,18,0,19,0,19,0,21,0,23,0,19,0, +15,0,10,0,3,0,254,255,250,255,246,255,244,255,247,255,250,255,253,255,254,255,254,255,254,255,252,255,248,255,244,255, +237,255,230,255,225,255,221,255,218,255,216,255,215,255,214,255,211,255,207,255,202,255,196,255,189,255,182,255,178,255,178,255, +179,255,179,255,181,255,186,255,189,255,190,255,190,255,187,255,183,255,178,255,171,255,166,255,165,255,166,255,169,255,173,255, +176,255,178,255,177,255,176,255,175,255,172,255,167,255,163,255,161,255,161,255,160,255,161,255,165,255,167,255,170,255,171,255, +170,255,168,255,167,255,165,255,166,255,169,255,173,255,177,255,180,255,183,255,185,255,184,255,183,255,180,255,175,255,170,255, +163,255,156,255,150,255,147,255,146,255,147,255,146,255,146,255,146,255,145,255,145,255,146,255,146,255,147,255,150,255,150,255, +150,255,152,255,154,255,157,255,161,255,162,255,163,255,163,255,161,255,159,255,158,255,159,255,160,255,160,255,161,255,164,255, +167,255,168,255,169,255,170,255,170,255,169,255,167,255,168,255,168,255,168,255,171,255,175,255,180,255,185,255,191,255,195,255, +197,255,197,255,196,255,194,255,191,255,187,255,181,255,177,255,172,255,167,255,165,255,162,255,158,255,155,255,152,255,150,255, +152,255,154,255,155,255,158,255,162,255,166,255,171,255,176,255,180,255,186,255,192,255,197,255,201,255,204,255,208,255,211,255, +211,255,213,255,214,255,214,255,214,255,211,255,207,255,204,255,201,255,199,255,198,255,195,255,191,255,186,255,180,255,175,255, +170,255,169,255,171,255,175,255,179,255,184,255,188,255,192,255,197,255,200,255,201,255,201,255,201,255,200,255,198,255,197,255, +197,255,197,255,197,255,197,255,196,255,194,255,190,255,183,255,177,255,174,255,173,255,174,255,176,255,178,255,181,255,183,255, +185,255,188,255,189,255,189,255,189,255,188,255,189,255,190,255,191,255,193,255,194,255,193,255,194,255,193,255,191,255,188,255, +184,255,177,255,170,255,163,255,158,255,155,255,153,255,154,255,156,255,157,255,158,255,159,255,157,255,155,255,152,255,150,255, +152,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,152,255,149,255,145,255,142,255,138,255,135,255,135,255,136,255, +139,255,142,255,143,255,144,255,143,255,139,255,134,255,128,255,124,255,124,255,124,255,125,255,126,255,124,255,120,255,117,255, +114,255,112,255,110,255,107,255,104,255,98,255,90,255,82,255,73,255,66,255,59,255,53,255,47,255,42,255,36,255,31,255, +27,255,26,255,27,255,28,255,27,255,26,255,24,255,19,255,16,255,15,255,15,255,17,255,20,255,21,255,19,255,14,255, +9,255,4,255,254,254,250,254,249,254,251,254,253,254,0,255,3,255,6,255,7,255,7,255,6,255,4,255,1,255,254,254, +248,254,243,254,239,254,236,254,237,254,240,254,243,254,245,254,243,254,240,254,235,254,230,254,225,254,221,254,220,254,224,254, +227,254,228,254,227,254,224,254,221,254,221,254,222,254,226,254,233,254,238,254,242,254,247,254,252,254,2,255,10,255,18,255, +26,255,32,255,34,255,36,255,38,255,40,255,41,255,42,255,42,255,40,255,37,255,36,255,35,255,34,255,37,255,44,255, +52,255,60,255,64,255,65,255,66,255,65,255,62,255,58,255,57,255,57,255,59,255,60,255,60,255,61,255,61,255,61,255, +63,255,66,255,72,255,79,255,87,255,94,255,102,255,113,255,125,255,133,255,141,255,148,255,152,255,157,255,160,255,160,255, +161,255,160,255,160,255,163,255,165,255,168,255,170,255,173,255,175,255,176,255,176,255,176,255,173,255,170,255,171,255,171,255, +170,255,171,255,175,255,184,255,196,255,206,255,216,255,228,255,240,255,252,255,10,0,23,0,37,0,54,0,71,0,86,0, +95,0,100,0,102,0,101,0,97,0,90,0,78,0,64,0,52,0,46,0,45,0,47,0,51,0,57,0,65,0,72,0, +77,0,77,0,74,0,74,0,78,0,86,0,95,0,105,0,118,0,134,0,150,0,165,0,177,0,186,0,193,0,201,0, +209,0,217,0,227,0,238,0,249,0,3,1,11,1,15,1,16,1,16,1,12,1,6,1,255,0,249,0,246,0,249,0, +255,0,10,1,23,1,34,1,43,1,51,1,57,1,63,1,69,1,74,1,77,1,78,1,77,1,74,1,69,1,63,1, +56,1,51,1,50,1,52,1,54,1,56,1,59,1,63,1,68,1,72,1,75,1,78,1,78,1,77,1,75,1,72,1, +68,1,66,1,65,1,64,1,64,1,66,1,67,1,69,1,71,1,74,1,76,1,79,1,86,1,93,1,98,1,100,1, +99,1,95,1,90,1,86,1,82,1,76,1,69,1,60,1,50,1,43,1,39,1,37,1,35,1,35,1,34,1,33,1, +29,1,23,1,15,1,3,1,248,0,237,0,225,0,215,0,205,0,193,0,182,0,174,0,168,0,164,0,162,0,163,0, +166,0,168,0,169,0,171,0,172,0,174,0,174,0,173,0,170,0,167,0,162,0,154,0,148,0,142,0,136,0,131,0, +129,0,130,0,130,0,131,0,132,0,135,0,137,0,138,0,137,0,133,0,124,0,113,0,101,0,91,0,80,0,70,0, +60,0,51,0,42,0,33,0,24,0,14,0,7,0,2,0,253,255,247,255,243,255,242,255,239,255,234,255,229,255,224,255, +217,255,211,255,206,255,201,255,197,255,196,255,197,255,199,255,207,255,216,255,225,255,234,255,242,255,246,255,247,255,244,255, +239,255,235,255,232,255,229,255,225,255,220,255,214,255,208,255,202,255,198,255,196,255,193,255,192,255,195,255,199,255,203,255, +205,255,205,255,205,255,204,255,202,255,198,255,194,255,188,255,179,255,170,255,163,255,159,255,158,255,158,255,160,255,161,255, +162,255,161,255,162,255,166,255,170,255,174,255,177,255,179,255,184,255,189,255,191,255,192,255,192,255,190,255,190,255,191,255, +191,255,191,255,192,255,197,255,204,255,213,255,221,255,226,255,229,255,227,255,222,255,215,255,209,255,204,255,201,255,200,255, +197,255,194,255,193,255,195,255,198,255,202,255,205,255,209,255,212,255,217,255,222,255,224,255,223,255,221,255,217,255,211,255, +203,255,196,255,188,255,182,255,178,255,175,255,175,255,176,255,181,255,190,255,201,255,212,255,223,255,233,255,243,255,253,255, +6,0,15,0,24,0,32,0,38,0,46,0,53,0,58,0,62,0,66,0,70,0,74,0,78,0,79,0,82,0,86,0, +90,0,92,0,94,0,94,0,92,0,89,0,84,0,78,0,74,0,74,0,79,0,86,0,95,0,106,0,116,0,125,0, +133,0,141,0,148,0,153,0,155,0,154,0,151,0,147,0,142,0,138,0,132,0,126,0,120,0,114,0,108,0,104,0, +101,0,99,0,99,0,102,0,107,0,113,0,121,0,129,0,139,0,150,0,159,0,166,0,173,0,177,0,179,0,183,0, +186,0,186,0,189,0,194,0,199,0,204,0,205,0,201,0,195,0,186,0,174,0,162,0,150,0,140,0,130,0,119,0, +109,0,102,0,95,0,86,0,76,0,66,0,55,0,45,0,38,0,33,0,32,0,34,0,39,0,41,0,39,0,33,0, +22,0,9,0,252,255,238,255,228,255,225,255,227,255,230,255,231,255,231,255,230,255,225,255,217,255,208,255,200,255,193,255, +190,255,189,255,191,255,194,255,197,255,198,255,197,255,192,255,183,255,169,255,150,255,130,255,114,255,104,255,99,255,98,255, +99,255,99,255,96,255,91,255,83,255,73,255,62,255,50,255,41,255,32,255,24,255,17,255,13,255,11,255,10,255,10,255, +9,255,7,255,5,255,5,255,5,255,6,255,7,255,8,255,7,255,4,255,2,255,0,255,253,254,251,254,250,254,249,254, +250,254,254,254,3,255,8,255,10,255,9,255,8,255,7,255,5,255,7,255,12,255,16,255,20,255,21,255,19,255,14,255, +8,255,1,255,250,254,248,254,247,254,248,254,251,254,1,255,7,255,12,255,14,255,15,255,15,255,14,255,11,255,8,255, +4,255,1,255,0,255,0,255,255,254,254,254,254,254,254,254,253,254,253,254,253,254,255,254,2,255,5,255,9,255,14,255, +19,255,22,255,23,255,25,255,27,255,31,255,39,255,52,255,70,255,91,255,112,255,134,255,153,255,168,255,179,255,186,255, +193,255,198,255,199,255,196,255,191,255,184,255,177,255,170,255,163,255,159,255,158,255,157,255,154,255,149,255,146,255,145,255, +147,255,148,255,150,255,155,255,165,255,179,255,195,255,209,255,223,255,237,255,252,255,11,0,25,0,37,0,49,0,63,0, +78,0,94,0,112,0,129,0,141,0,148,0,145,0,133,0,115,0,94,0,74,0,58,0,49,0,47,0,52,0,62,0, +75,0,90,0,104,0,114,0,121,0,126,0,132,0,138,0,142,0,147,0,158,0,173,0,188,0,204,0,220,0,233,0, +241,0,244,0,243,0,239,0,236,0,235,0,238,0,246,0,255,0,6,1,11,1,13,1,9,1,1,1,246,0,233,0, +223,0,217,0,215,0,217,0,224,0,236,0,250,0,10,1,30,1,49,1,62,1,69,1,74,1,77,1,74,1,67,1, +61,1,55,1,50,1,45,1,42,1,41,1,42,1,42,1,43,1,47,1,50,1,49,1,42,1,35,1,29,1,24,1, +22,1,24,1,25,1,27,1,28,1,24,1,17,1,11,1,4,1,253,0,246,0,242,0,244,0,251,0,6,1,19,1, +31,1,41,1,45,1,42,1,35,1,26,1,16,1,4,1,247,0,238,0,235,0,235,0,240,0,246,0,250,0,252,0, +250,0,244,0,233,0,221,0,209,0,200,0,195,0,190,0,184,0,177,0,167,0,156,0,143,0,128,0,113,0,100,0, +87,0,76,0,73,0,74,0,75,0,77,0,79,0,82,0,84,0,81,0,72,0,61,0,50,0,36,0,22,0,13,0, +8,0,9,0,11,0,13,0,16,0,19,0,21,0,23,0,27,0,29,0,28,0,24,0,20,0,16,0,12,0,7,0, +1,0,253,255,251,255,249,255,245,255,239,255,231,255,225,255,219,255,216,255,216,255,216,255,215,255,217,255,220,255,221,255, +219,255,214,255,207,255,196,255,184,255,173,255,163,255,155,255,151,255,148,255,147,255,150,255,156,255,160,255,162,255,162,255, +159,255,154,255,149,255,146,255,145,255,145,255,145,255,148,255,152,255,158,255,164,255,168,255,170,255,170,255,172,255,176,255, +181,255,188,255,194,255,201,255,211,255,219,255,224,255,226,255,222,255,212,255,201,255,189,255,176,255,165,255,157,255,150,255, +147,255,147,255,149,255,151,255,153,255,154,255,155,255,156,255,158,255,158,255,158,255,157,255,156,255,156,255,155,255,155,255, +157,255,157,255,153,255,149,255,145,255,146,255,150,255,155,255,159,255,165,255,171,255,176,255,181,255,185,255,187,255,190,255, +195,255,200,255,205,255,208,255,213,255,218,255,225,255,234,255,247,255,5,0,17,0,27,0,32,0,35,0,37,0,39,0, +39,0,35,0,27,0,15,0,1,0,243,255,229,255,219,255,213,255,210,255,211,255,213,255,218,255,224,255,233,255,243,255, +254,255,12,0,27,0,44,0,60,0,74,0,88,0,100,0,108,0,113,0,113,0,110,0,106,0,104,0,105,0,109,0, +113,0,116,0,119,0,119,0,119,0,118,0,116,0,112,0,106,0,99,0,93,0,90,0,90,0,92,0,95,0,100,0, +103,0,105,0,107,0,107,0,105,0,103,0,100,0,97,0,96,0,93,0,89,0,83,0,74,0,65,0,54,0,41,0, +26,0,15,0,5,0,252,255,248,255,247,255,248,255,255,255,9,0,20,0,31,0,44,0,55,0,63,0,68,0,71,0, +71,0,73,0,75,0,76,0,74,0,71,0,65,0,58,0,50,0,42,0,33,0,26,0,19,0,12,0,3,0,250,255, +240,255,230,255,221,255,212,255,203,255,193,255,183,255,173,255,164,255,158,255,152,255,149,255,148,255,149,255,149,255,147,255, +143,255,138,255,131,255,123,255,116,255,110,255,103,255,95,255,87,255,80,255,74,255,70,255,69,255,70,255,73,255,77,255, +81,255,85,255,90,255,95,255,101,255,109,255,118,255,124,255,126,255,124,255,116,255,107,255,96,255,88,255,84,255,83,255, +81,255,78,255,72,255,63,255,51,255,40,255,33,255,28,255,22,255,16,255,10,255,3,255,253,254,247,254,242,254,239,254, +235,254,228,254,221,254,216,254,211,254,205,254,201,254,204,254,211,254,220,254,229,254,235,254,238,254,236,254,233,254,232,254, +236,254,246,254,5,255,19,255,30,255,39,255,45,255,49,255,55,255,60,255,62,255,64,255,65,255,64,255,62,255,61,255, +60,255,59,255,56,255,52,255,48,255,41,255,28,255,12,255,251,254,239,254,233,254,233,254,237,254,242,254,248,254,254,254, +2,255,7,255,15,255,29,255,48,255,70,255,92,255,112,255,129,255,142,255,148,255,149,255,145,255,138,255,126,255,116,255, +109,255,106,255,108,255,118,255,136,255,158,255,177,255,184,255,182,255,173,255,160,255,148,255,142,255,151,255,178,255,215,255, +255,255,36,0,62,0,73,0,72,0,65,0,58,0,58,0,64,0,77,0,99,0,126,0,151,0,174,0,191,0,195,0, +178,0,142,0,93,0,40,0,248,255,215,255,202,255,210,255,232,255,5,0,34,0,56,0,64,0,59,0,47,0,38,0, +39,0,50,0,69,0,96,0,127,0,156,0,181,0,201,0,218,0,231,0,236,0,236,0,238,0,243,0,251,0,8,1, +26,1,49,1,73,1,93,1,104,1,101,1,82,1,56,1,30,1,10,1,255,0,251,0,251,0,249,0,244,0,240,0, +239,0,243,0,255,0,18,1,37,1,52,1,62,1,61,1,51,1,34,1,15,1,0,1,247,0,243,0,245,0,251,0, +4,1,13,1,20,1,30,1,40,1,50,1,55,1,54,1,47,1,38,1,29,1,24,1,28,1,40,1,54,1,61,1, +59,1,49,1,32,1,12,1,251,0,246,0,253,0,13,1,31,1,50,1,69,1,87,1,99,1,104,1,102,1,95,1, +79,1,55,1,26,1,254,0,229,0,215,0,212,0,216,0,225,0,233,0,232,0,223,0,208,0,188,0,167,0,147,0, +128,0,114,0,104,0,98,0,97,0,95,0,90,0,82,0,74,0,64,0,51,0,38,0,29,0,26,0,30,0,41,0, +63,0,95,0,126,0,149,0,161,0,158,0,142,0,116,0,87,0,60,0,44,0,37,0,32,0,34,0,40,0,49,0, +63,0,74,0,81,0,83,0,79,0,65,0,46,0,25,0,6,0,252,255,252,255,1,0,7,0,10,0,8,0,255,255, +243,255,230,255,219,255,211,255,211,255,216,255,227,255,244,255,3,0,14,0,19,0,20,0,15,0,5,0,249,255,233,255, +213,255,194,255,181,255,175,255,177,255,186,255,197,255,208,255,213,255,211,255,205,255,201,255,197,255,193,255,192,255,192,255, +193,255,191,255,186,255,183,255,182,255,184,255,188,255,195,255,201,255,205,255,203,255,202,255,205,255,213,255,224,255,238,255, +252,255,8,0,13,0,9,0,255,255,243,255,230,255,219,255,211,255,209,255,214,255,222,255,233,255,244,255,0,0,15,0, +36,0,59,0,79,0,94,0,104,0,109,0,112,0,113,0,113,0,116,0,119,0,118,0,112,0,101,0,88,0,77,0, +71,0,70,0,75,0,86,0,95,0,100,0,105,0,107,0,108,0,113,0,119,0,125,0,133,0,143,0,150,0,155,0, +160,0,167,0,179,0,193,0,209,0,225,0,240,0,254,0,8,1,13,1,15,1,13,1,6,1,253,0,239,0,221,0, +200,0,176,0,153,0,137,0,130,0,128,0,130,0,135,0,143,0,153,0,166,0,181,0,198,0,216,0,229,0,233,0, +231,0,225,0,212,0,198,0,184,0,171,0,162,0,157,0,154,0,150,0,143,0,133,0,124,0,118,0,113,0,109,0, +106,0,104,0,103,0,103,0,104,0,106,0,108,0,112,0,115,0,117,0,122,0,127,0,129,0,132,0,138,0,146,0, +158,0,169,0,176,0,175,0,165,0,147,0,125,0,101,0,78,0,57,0,38,0,18,0,254,255,232,255,214,255,198,255, +185,255,181,255,186,255,198,255,213,255,230,255,245,255,255,255,5,0,8,0,8,0,5,0,254,255,243,255,232,255,223,255, +215,255,207,255,204,255,203,255,201,255,195,255,185,255,173,255,161,255,148,255,138,255,136,255,138,255,142,255,143,255,136,255, +122,255,101,255,77,255,59,255,46,255,37,255,34,255,35,255,38,255,39,255,38,255,34,255,28,255,18,255,5,255,245,254, +225,254,204,254,182,254,160,254,143,254,134,254,131,254,132,254,134,254,137,254,136,254,130,254,123,254,121,254,128,254,145,254, +166,254,185,254,198,254,204,254,203,254,198,254,188,254,177,254,168,254,161,254,155,254,147,254,137,254,129,254,126,254,128,254, +134,254,143,254,150,254,152,254,150,254,142,254,133,254,125,254,118,254,115,254,113,254,111,254,110,254,109,254,106,254,103,254, +101,254,102,254,108,254,116,254,124,254,130,254,131,254,130,254,128,254,125,254,124,254,124,254,125,254,125,254,122,254,115,254, +109,254,107,254,110,254,121,254,136,254,154,254,176,254,197,254,213,254,226,254,237,254,250,254,10,255,31,255,51,255,69,255, +84,255,93,255,95,255,94,255,90,255,83,255,72,255,54,255,35,255,26,255,29,255,39,255,53,255,66,255,75,255,82,255, +82,255,72,255,54,255,36,255,25,255,25,255,34,255,55,255,86,255,117,255,138,255,146,255,145,255,147,255,159,255,182,255, +212,255,250,255,35,0,79,0,122,0,159,0,184,0,190,0,175,0,145,0,110,0,79,0,56,0,45,0,49,0,64,0, +88,0,119,0,148,0,163,0,159,0,140,0,119,0,103,0,91,0,89,0,95,0,106,0,117,0,127,0,136,0,146,0, +153,0,154,0,153,0,155,0,164,0,178,0,193,0,209,0,225,0,238,0,248,0,2,1,7,1,3,1,243,0,222,0, +203,0,193,0,193,0,200,0,210,0,221,0,231,0,238,0,246,0,4,1,24,1,48,1,74,1,97,1,113,1,120,1, +116,1,105,1,95,1,86,1,80,1,76,1,74,1,72,1,72,1,75,1,79,1,85,1,89,1,89,1,85,1,80,1, +72,1,58,1,44,1,33,1,25,1,21,1,19,1,19,1,19,1,11,1,250,0,232,0,220,0,218,0,224,0,234,0, +251,0,16,1,34,1,49,1,59,1,62,1,59,1,46,1,24,1,1,1,235,0,214,0,196,0,182,0,176,0,180,0, +191,0,203,0,211,0,212,0,204,0,191,0,177,0,164,0,149,0,134,0,120,0,106,0,91,0,76,0,63,0,51,0, +38,0,21,0,5,0,251,255,246,255,246,255,247,255,251,255,4,0,14,0,19,0,23,0,21,0,12,0,253,255,235,255, +216,255,202,255,192,255,185,255,180,255,176,255,176,255,180,255,186,255,197,255,208,255,214,255,216,255,214,255,207,255,197,255, +183,255,168,255,157,255,148,255,141,255,134,255,126,255,117,255,111,255,108,255,107,255,108,255,108,255,109,255,112,255,116,255, +121,255,123,255,122,255,120,255,115,255,108,255,97,255,84,255,72,255,60,255,49,255,44,255,45,255,50,255,55,255,58,255, +61,255,63,255,63,255,63,255,63,255,64,255,64,255,62,255,54,255,45,255,36,255,31,255,28,255,27,255,31,255,39,255, +48,255,53,255,57,255,59,255,63,255,75,255,92,255,112,255,132,255,149,255,162,255,172,255,175,255,175,255,177,255,178,255, +178,255,180,255,184,255,189,255,198,255,210,255,224,255,239,255,255,255,12,0,21,0,26,0,27,0,27,0,29,0,33,0, +39,0,46,0,51,0,49,0,43,0,36,0,29,0,26,0,29,0,38,0,50,0,65,0,82,0,94,0,100,0,103,0, +103,0,98,0,94,0,94,0,94,0,93,0,94,0,96,0,104,0,118,0,136,0,155,0,172,0,187,0,204,0,221,0, +241,0,7,1,29,1,47,1,57,1,61,1,58,1,50,1,36,1,19,1,2,1,244,0,238,0,236,0,235,0,232,0, +228,0,225,0,224,0,227,0,231,0,234,0,230,0,222,0,212,0,203,0,199,0,198,0,201,0,205,0,211,0,220,0, +230,0,239,0,244,0,249,0,254,0,5,1,12,1,20,1,23,1,21,1,14,1,6,1,253,0,245,0,239,0,233,0, +223,0,209,0,194,0,180,0,171,0,165,0,167,0,177,0,188,0,197,0,203,0,207,0,205,0,197,0,185,0,174,0, +162,0,147,0,132,0,114,0,94,0,72,0,50,0,29,0,11,0,251,255,234,255,215,255,197,255,181,255,168,255,159,255, +158,255,163,255,169,255,170,255,163,255,152,255,134,255,111,255,94,255,83,255,76,255,76,255,80,255,84,255,87,255,85,255, +79,255,73,255,65,255,53,255,41,255,24,255,2,255,233,254,209,254,188,254,174,254,165,254,155,254,144,254,129,254,111,254, +89,254,67,254,50,254,44,254,51,254,65,254,78,254,85,254,84,254,74,254,55,254,30,254,1,254,232,253,214,253,200,253, +190,253,185,253,185,253,191,253,201,253,214,253,229,253,242,253,252,253,4,254,8,254,10,254,14,254,20,254,31,254,44,254, +52,254,57,254,57,254,54,254,48,254,42,254,42,254,50,254,61,254,70,254,77,254,79,254,76,254,69,254,58,254,47,254, +36,254,24,254,13,254,3,254,247,253,235,253,226,253,222,253,224,253,231,253,241,253,255,253,12,254,24,254,35,254,45,254, +61,254,82,254,104,254,124,254,142,254,156,254,165,254,165,254,161,254,153,254,144,254,134,254,124,254,119,254,125,254,143,254, +171,254,202,254,230,254,252,254,14,255,23,255,18,255,3,255,242,254,233,254,238,254,0,255,28,255,64,255,99,255,126,255, +140,255,142,255,145,255,156,255,174,255,200,255,235,255,19,0,63,0,108,0,143,0,164,0,163,0,138,0,98,0,57,0, +20,0,249,255,240,255,251,255,21,0,60,0,107,0,149,0,176,0,184,0,178,0,168,0,162,0,164,0,174,0,197,0, +227,0,1,1,27,1,53,1,80,1,103,1,120,1,134,1,150,1,170,1,193,1,213,1,229,1,244,1,253,1,255,1, +0,2,249,1,227,1,192,1,152,1,118,1,97,1,89,1,91,1,98,1,104,1,106,1,104,1,104,1,111,1,126,1, +147,1,173,1,199,1,221,1,235,1,238,1,234,1,231,1,230,1,232,1,238,1,245,1,253,1,5,2,13,2,21,2, +28,2,32,2,33,2,31,2,26,2,15,2,254,1,236,1,219,1,205,1,198,1,197,1,198,1,198,1,188,1,167,1, +142,1,124,1,117,1,119,1,130,1,150,1,173,1,192,1,204,1,209,1,206,1,196,1,174,1,144,1,115,1,94,1, +76,1,60,1,45,1,36,1,39,1,51,1,65,1,74,1,70,1,55,1,38,1,21,1,5,1,249,0,238,0,232,0, +230,0,226,0,221,0,216,0,208,0,192,0,171,0,151,0,137,0,131,0,130,0,130,0,133,0,144,0,159,0,175,0, +189,0,194,0,183,0,156,0,120,0,82,0,53,0,34,0,25,0,22,0,25,0,34,0,48,0,62,0,73,0,73,0, +63,0,47,0,29,0,13,0,254,255,241,255,230,255,225,255,225,255,228,255,229,255,223,255,211,255,195,255,178,255,165,255, +160,255,162,255,173,255,190,255,210,255,231,255,247,255,254,255,251,255,237,255,217,255,198,255,178,255,159,255,143,255,130,255, +123,255,122,255,124,255,128,255,130,255,130,255,124,255,114,255,102,255,91,255,82,255,79,255,79,255,81,255,87,255,94,255, +100,255,102,255,100,255,97,255,97,255,99,255,101,255,102,255,106,255,116,255,132,255,156,255,183,255,208,255,223,255,226,255, +220,255,208,255,192,255,176,255,163,255,155,255,155,255,161,255,175,255,192,255,211,255,230,255,247,255,8,0,28,0,47,0, +62,0,68,0,66,0,59,0,51,0,42,0,32,0,17,0,254,255,235,255,219,255,207,255,201,255,197,255,196,255,197,255, +202,255,209,255,218,255,227,255,233,255,233,255,229,255,226,255,228,255,234,255,245,255,3,0,19,0,39,0,64,0,93,0, +125,0,157,0,186,0,213,0,237,0,3,1,18,1,24,1,21,1,12,1,255,0,241,0,231,0,224,0,220,0,220,0, +225,0,233,0,244,0,2,1,16,1,27,1,34,1,38,1,40,1,41,1,41,1,36,1,29,1,21,1,13,1,7,1, +1,1,247,0,232,0,212,0,190,0,168,0,149,0,133,0,124,0,121,0,124,0,133,0,144,0,154,0,161,0,163,0, +163,0,163,0,165,0,169,0,179,0,194,0,210,0,227,0,242,0,0,1,10,1,20,1,26,1,27,1,29,1,30,1, +27,1,18,1,5,1,242,0,215,0,180,0,140,0,97,0,58,0,28,0,7,0,250,255,244,255,243,255,245,255,243,255, +236,255,223,255,206,255,188,255,170,255,156,255,145,255,139,255,136,255,135,255,137,255,141,255,143,255,141,255,136,255,130,255, +126,255,124,255,122,255,125,255,136,255,153,255,171,255,184,255,189,255,186,255,178,255,164,255,146,255,125,255,110,255,103,255, +103,255,104,255,103,255,96,255,82,255,60,255,30,255,249,254,209,254,170,254,131,254,93,254,60,254,35,254,18,254,7,254, +5,254,10,254,14,254,12,254,3,254,244,253,226,253,209,253,197,253,192,253,197,253,212,253,235,253,3,254,25,254,42,254, +53,254,58,254,59,254,57,254,53,254,48,254,46,254,47,254,50,254,53,254,55,254,55,254,52,254,42,254,28,254,14,254, +1,254,245,253,236,253,234,253,238,253,244,253,248,253,249,253,245,253,236,253,223,253,207,253,194,253,184,253,178,253,177,253, +178,253,181,253,187,253,197,253,212,253,235,253,14,254,55,254,99,254,142,254,181,254,213,254,233,254,240,254,239,254,231,254, +222,254,213,254,210,254,216,254,235,254,10,255,43,255,71,255,89,255,97,255,94,255,83,255,69,255,57,255,55,255,73,255, +107,255,150,255,192,255,225,255,242,255,241,255,224,255,204,255,194,255,204,255,235,255,29,0,95,0,168,0,234,0,25,1, +44,1,32,1,246,0,182,0,111,0,49,0,10,0,0,0,17,0,56,0,110,0,167,0,216,0,244,0,251,0,240,0, +222,0,211,0,215,0,236,0,15,1,61,1,113,1,165,1,210,1,241,1,1,2,1,2,246,1,228,1,214,1,208,1, +212,1,224,1,242,1,5,2,18,2,21,2,13,2,250,1,225,1,197,1,172,1,154,1,145,1,147,1,154,1,161,1, +167,1,174,1,186,1,207,1,235,1,9,2,32,2,49,2,58,2,61,2,57,2,50,2,44,2,42,2,43,2,48,2, +53,2,58,2,63,2,64,2,60,2,52,2,44,2,33,2,18,2,5,2,254,1,0,2,11,2,30,2,54,2,79,2, +97,2,100,2,83,2,48,2,0,2,206,1,164,1,138,1,126,1,131,1,152,1,183,1,217,1,244,1,2,2,2,2, +245,1,217,1,177,1,132,1,92,1,63,1,46,1,40,1,45,1,59,1,76,1,88,1,91,1,83,1,64,1,44,1, +26,1,9,1,252,0,245,0,242,0,239,0,234,0,225,0,210,0,193,0,173,0,147,0,118,0,93,0,76,0,68,0, +67,0,73,0,87,0,109,0,131,0,147,0,153,0,145,0,124,0,91,0,54,0,16,0,242,255,223,255,213,255,211,255, +218,255,230,255,241,255,246,255,246,255,237,255,218,255,194,255,172,255,157,255,149,255,147,255,149,255,155,255,162,255,165,255, +161,255,150,255,133,255,114,255,98,255,90,255,90,255,102,255,124,255,149,255,172,255,187,255,195,255,195,255,186,255,170,255, +152,255,132,255,113,255,98,255,91,255,89,255,90,255,95,255,99,255,101,255,104,255,106,255,106,255,106,255,110,255,118,255, +129,255,144,255,158,255,170,255,183,255,198,255,214,255,231,255,247,255,5,0,20,0,34,0,45,0,55,0,67,0,82,0, +101,0,122,0,140,0,154,0,160,0,155,0,138,0,115,0,90,0,64,0,44,0,33,0,31,0,37,0,50,0,66,0, +84,0,100,0,115,0,128,0,140,0,152,0,164,0,175,0,184,0,191,0,196,0,199,0,199,0,198,0,193,0,185,0, +177,0,170,0,168,0,170,0,175,0,183,0,191,0,197,0,200,0,199,0,198,0,199,0,202,0,206,0,217,0,237,0, +2,1,22,1,41,1,55,1,67,1,81,1,96,1,111,1,122,1,130,1,133,1,132,1,129,1,119,1,102,1,79,1, +51,1,18,1,239,0,207,0,179,0,160,0,148,0,141,0,137,0,136,0,137,0,137,0,135,0,132,0,133,0,137,0, +144,0,153,0,165,0,177,0,185,0,191,0,193,0,192,0,189,0,183,0,171,0,154,0,132,0,110,0,89,0,72,0, +63,0,61,0,66,0,72,0,76,0,79,0,80,0,78,0,74,0,65,0,53,0,39,0,22,0,3,0,243,255,234,255, +234,255,237,255,241,255,242,255,242,255,237,255,223,255,201,255,174,255,145,255,117,255,89,255,60,255,33,255,11,255,249,254, +235,254,229,254,230,254,236,254,245,254,255,254,7,255,11,255,13,255,17,255,21,255,24,255,27,255,30,255,27,255,12,255, +239,254,203,254,165,254,131,254,102,254,81,254,65,254,50,254,32,254,10,254,242,253,220,253,202,253,188,253,177,253,164,253, +149,253,133,253,119,253,108,253,101,253,100,253,104,253,116,253,131,253,144,253,153,253,161,253,167,253,171,253,172,253,176,253, +182,253,189,253,195,253,199,253,199,253,197,253,196,253,196,253,197,253,202,253,210,253,220,253,234,253,252,253,14,254,33,254, +52,254,70,254,86,254,96,254,92,254,76,254,53,254,31,254,15,254,6,254,3,254,0,254,251,253,242,253,230,253,219,253, +208,253,201,253,200,253,203,253,207,253,211,253,216,253,222,253,229,253,239,253,1,254,28,254,65,254,109,254,158,254,208,254, +255,254,41,255,78,255,109,255,126,255,128,255,113,255,86,255,55,255,33,255,29,255,44,255,69,255,92,255,102,255,95,255, +70,255,29,255,240,254,207,254,197,254,215,254,254,254,44,255,84,255,108,255,112,255,93,255,61,255,30,255,12,255,15,255, +42,255,93,255,168,255,2,0,95,0,171,0,217,0,222,0,185,0,115,0,28,0,203,255,148,255,134,255,163,255,226,255, +53,0,132,0,189,0,212,0,200,0,163,0,120,0,89,0,77,0,85,0,115,0,157,0,205,0,251,0,39,1,79,1, +113,1,137,1,149,1,153,1,156,1,159,1,169,1,192,1,228,1,14,2,51,2,73,2,72,2,50,2,18,2,245,1, +230,1,230,1,243,1,6,2,23,2,28,2,20,2,7,2,254,1,3,2,26,2,61,2,98,2,133,2,159,2,169,2, +163,2,152,2,146,2,153,2,173,2,199,2,228,2,254,2,19,3,34,3,41,3,38,3,27,3,10,3,240,2,202,2, +160,2,126,2,105,2,101,2,110,2,131,2,154,2,163,2,145,2,98,2,30,2,212,1,145,1,98,1,77,1,83,1, +113,1,158,1,206,1,248,1,24,2,42,2,43,2,21,2,233,1,174,1,114,1,65,1,29,1,11,1,13,1,30,1, +53,1,71,1,75,1,60,1,28,1,246,0,208,0,172,0,142,0,121,0,103,0,84,0,69,0,58,0,51,0,49,0, +48,0,42,0,29,0,7,0,237,255,212,255,196,255,192,255,205,255,229,255,253,255,16,0,23,0,13,0,243,255,205,255, +164,255,126,255,95,255,74,255,62,255,56,255,58,255,66,255,78,255,92,255,104,255,108,255,97,255,73,255,44,255,18,255, +254,254,244,254,243,254,249,254,1,255,6,255,7,255,5,255,254,254,244,254,234,254,224,254,216,254,211,254,211,254,218,254, +230,254,247,254,14,255,41,255,65,255,81,255,87,255,82,255,68,255,47,255,24,255,7,255,254,254,251,254,252,254,255,254, +6,255,12,255,14,255,13,255,11,255,7,255,1,255,249,254,236,254,220,254,203,254,189,254,183,254,186,254,197,254,213,254, +229,254,241,254,248,254,252,254,1,255,9,255,21,255,37,255,53,255,67,255,76,255,80,255,79,255,75,255,71,255,70,255, +69,255,67,255,63,255,56,255,47,255,43,255,45,255,55,255,76,255,108,255,147,255,185,255,220,255,246,255,3,0,2,0, +246,255,229,255,212,255,198,255,194,255,199,255,212,255,229,255,245,255,0,0,7,0,10,0,12,0,12,0,11,0,10,0, +12,0,21,0,39,0,66,0,102,0,144,0,189,0,231,0,11,1,38,1,54,1,63,1,68,1,71,1,73,1,77,1, +86,1,99,1,115,1,127,1,131,1,125,1,109,1,83,1,50,1,13,1,232,0,201,0,180,0,173,0,179,0,196,0, +221,0,249,0,16,1,30,1,31,1,21,1,5,1,249,0,246,0,255,0,19,1,44,1,65,1,73,1,60,1,25,1, +227,0,162,0,94,0,28,0,221,255,164,255,117,255,80,255,55,255,40,255,31,255,25,255,20,255,10,255,249,254,223,254, +188,254,155,254,132,254,119,254,112,254,106,254,100,254,91,254,79,254,66,254,58,254,53,254,47,254,35,254,14,254,234,253, +186,253,127,253,62,253,1,253,208,252,173,252,149,252,128,252,106,252,80,252,49,252,18,252,252,251,239,251,233,251,230,251, +226,251,216,251,202,251,187,251,179,251,179,251,182,251,180,251,172,251,155,251,129,251,98,251,70,251,53,251,51,251,68,251, +98,251,133,251,165,251,188,251,204,251,217,251,232,251,1,252,35,252,75,252,116,252,156,252,191,252,225,252,6,253,46,253, +85,253,121,253,151,253,169,253,178,253,182,253,188,253,203,253,230,253,10,254,45,254,69,254,78,254,72,254,52,254,27,254, +6,254,0,254,11,254,32,254,55,254,76,254,91,254,97,254,101,254,107,254,116,254,126,254,135,254,137,254,131,254,120,254, +109,254,103,254,108,254,127,254,160,254,202,254,245,254,30,255,67,255,99,255,129,255,155,255,170,255,169,255,151,255,119,255, +81,255,49,255,35,255,45,255,76,255,111,255,137,255,141,255,118,255,72,255,19,255,230,254,205,254,203,254,226,254,5,255, +34,255,45,255,37,255,10,255,229,254,199,254,189,254,208,254,254,254,66,255,148,255,238,255,70,0,141,0,183,0,189,0, +155,0,87,0,255,255,162,255,84,255,40,255,37,255,69,255,122,255,181,255,230,255,252,255,241,255,209,255,174,255,153,255, +152,255,173,255,212,255,8,0,61,0,112,0,165,0,228,0,40,1,105,1,161,1,207,1,245,1,18,2,44,2,73,2, +106,2,141,2,174,2,194,2,195,2,178,2,153,2,133,2,125,2,129,2,136,2,145,2,151,2,143,2,124,2,106,2, +102,2,118,2,152,2,200,2,254,2,47,3,83,3,103,3,111,3,113,3,118,3,127,3,138,3,151,3,162,3,166,3, +163,3,154,3,147,3,145,3,142,3,136,3,124,3,104,3,76,3,48,3,32,3,31,3,45,3,69,3,95,3,111,3, +105,3,74,3,21,3,215,2,159,2,120,2,101,2,100,2,116,2,142,2,168,2,187,2,197,2,194,2,178,2,143,2, +89,2,19,2,198,1,127,1,73,1,39,1,25,1,26,1,35,1,44,1,47,1,39,1,18,1,246,0,217,0,186,0, +153,0,122,0,97,0,78,0,64,0,55,0,56,0,64,0,74,0,77,0,70,0,50,0,23,0,250,255,226,255,214,255, +216,255,234,255,1,0,21,0,31,0,27,0,9,0,239,255,211,255,183,255,163,255,151,255,143,255,137,255,134,255,134,255, +139,255,147,255,148,255,140,255,122,255,98,255,69,255,44,255,32,255,35,255,52,255,80,255,113,255,143,255,162,255,170,255, +172,255,170,255,168,255,170,255,179,255,196,255,219,255,246,255,21,0,56,0,94,0,131,0,164,0,188,0,200,0,197,0, +182,0,161,0,136,0,112,0,92,0,79,0,69,0,63,0,59,0,55,0,51,0,48,0,49,0,55,0,64,0,70,0, +73,0,74,0,73,0,77,0,89,0,104,0,118,0,129,0,133,0,128,0,117,0,103,0,89,0,81,0,80,0,86,0, +93,0,98,0,100,0,99,0,98,0,99,0,102,0,102,0,96,0,84,0,70,0,56,0,48,0,50,0,66,0,95,0, +134,0,183,0,241,0,43,1,97,1,141,1,171,1,187,1,191,1,183,1,172,1,163,1,156,1,154,1,155,1,159,1, +165,1,171,1,172,1,168,1,163,1,158,1,155,1,153,1,151,1,153,1,162,1,181,1,209,1,245,1,29,2,69,2, +106,2,138,2,163,2,180,2,187,2,189,2,192,2,197,2,205,2,215,2,221,2,224,2,218,2,202,2,175,2,140,2, +101,2,58,2,18,2,240,1,217,1,204,1,200,1,202,1,204,1,200,1,187,1,165,1,135,1,102,1,69,1,41,1, +27,1,27,1,34,1,40,1,41,1,32,1,7,1,221,0,166,0,104,0,35,0,217,255,144,255,81,255,28,255,238,254, +196,254,159,254,129,254,105,254,83,254,64,254,50,254,36,254,17,254,248,253,218,253,184,253,146,253,103,253,62,253,26,253, +254,252,231,252,213,252,202,252,191,252,179,252,164,252,149,252,131,252,111,252,90,252,68,252,44,252,22,252,2,252,240,251, +225,251,214,251,211,251,217,251,230,251,242,251,255,251,10,252,19,252,28,252,38,252,49,252,60,252,68,252,66,252,56,252, +44,252,37,252,35,252,36,252,37,252,42,252,52,252,65,252,80,252,101,252,129,252,167,252,216,252,18,253,78,253,136,253, +191,253,243,253,34,254,77,254,113,254,141,254,162,254,177,254,186,254,190,254,194,254,198,254,202,254,210,254,218,254,224,254, +229,254,234,254,234,254,228,254,214,254,193,254,168,254,143,254,121,254,105,254,100,254,105,254,123,254,156,254,203,254,4,255, +67,255,129,255,189,255,243,255,33,0,66,0,82,0,78,0,56,0,19,0,225,255,170,255,122,255,92,255,85,255,94,255, +114,255,135,255,148,255,147,255,130,255,102,255,79,255,73,255,86,255,113,255,142,255,161,255,165,255,159,255,149,255,141,255, +143,255,159,255,190,255,235,255,35,0,95,0,156,0,213,0,255,0,13,1,248,0,192,0,107,0,4,0,152,255,62,255, +8,255,255,254,28,255,79,255,132,255,170,255,175,255,150,255,112,255,79,255,65,255,72,255,98,255,135,255,181,255,233,255, +34,0,92,0,154,0,223,0,39,1,103,1,151,1,186,1,214,1,243,1,18,2,54,2,100,2,149,2,190,2,209,2, +207,2,192,2,176,2,173,2,188,2,215,2,246,2,12,3,17,3,2,3,231,2,210,2,208,2,226,2,3,3,37,3, +63,3,75,3,74,3,62,3,53,3,61,3,90,3,129,3,169,3,200,3,219,3,223,3,212,3,193,3,182,3,185,3, +192,3,196,3,195,3,188,3,174,3,161,3,158,3,173,3,200,3,227,3,240,3,227,3,182,3,114,3,40,3,236,2, +198,2,182,2,187,2,206,2,229,2,248,2,2,3,3,3,251,2,228,2,189,2,139,2,83,2,16,2,202,1,138,1, +88,1,51,1,25,1,6,1,245,0,224,0,195,0,155,0,113,0,80,0,58,0,44,0,31,0,17,0,4,0,249,255, +242,255,243,255,253,255,11,0,23,0,32,0,32,0,23,0,7,0,251,255,245,255,245,255,254,255,20,0,51,0,76,0, +78,0,58,0,22,0,232,255,178,255,126,255,84,255,51,255,23,255,2,255,249,254,252,254,7,255,16,255,17,255,9,255, +241,254,205,254,168,254,139,254,128,254,138,254,169,254,212,254,3,255,39,255,60,255,66,255,62,255,50,255,37,255,31,255, +35,255,46,255,62,255,89,255,125,255,163,255,194,255,221,255,243,255,255,255,250,255,234,255,219,255,206,255,193,255,184,255, +184,255,189,255,194,255,194,255,192,255,189,255,184,255,177,255,170,255,165,255,158,255,152,255,149,255,149,255,148,255,148,255, +153,255,159,255,165,255,167,255,163,255,154,255,139,255,119,255,100,255,85,255,72,255,64,255,58,255,52,255,47,255,44,255, +41,255,45,255,54,255,67,255,82,255,97,255,114,255,132,255,150,255,174,255,209,255,251,255,44,0,98,0,157,0,218,0, +18,1,67,1,106,1,132,1,142,1,139,1,127,1,110,1,89,1,70,1,55,1,47,1,44,1,43,1,42,1,36,1, +21,1,254,0,229,0,208,0,195,0,196,0,212,0,245,0,35,1,87,1,140,1,188,1,226,1,249,1,3,2,3,2, +252,1,241,1,225,1,210,1,201,1,196,1,194,1,193,1,189,1,172,1,143,1,98,1,40,1,231,0,168,0,115,0, +76,0,50,0,35,0,28,0,25,0,20,0,12,0,2,0,247,255,236,255,225,255,218,255,211,255,202,255,192,255,176,255, +153,255,122,255,83,255,33,255,229,254,163,254,94,254,27,254,220,253,163,253,114,253,76,253,44,253,14,253,238,252,203,252, +172,252,146,252,128,252,116,252,106,252,92,252,73,252,55,252,39,252,27,252,19,252,19,252,24,252,30,252,32,252,25,252, +9,252,242,251,213,251,182,251,153,251,126,251,100,251,73,251,47,251,25,251,10,251,3,251,5,251,12,251,22,251,30,251, +32,251,33,251,36,251,42,251,54,251,74,251,93,251,111,251,130,251,149,251,171,251,194,251,218,251,250,251,30,252,57,252, +72,252,77,252,78,252,76,252,71,252,67,252,74,252,90,252,115,252,148,252,189,252,231,252,14,253,47,253,76,253,103,253, +124,253,138,253,145,253,146,253,145,253,143,253,141,253,145,253,156,253,171,253,193,253,223,253,1,254,41,254,90,254,143,254, +198,254,252,254,46,255,83,255,104,255,111,255,108,255,102,255,89,255,70,255,48,255,32,255,24,255,24,255,37,255,63,255, +99,255,127,255,130,255,105,255,63,255,16,255,233,254,213,254,220,254,3,255,63,255,123,255,167,255,185,255,182,255,170,255, +161,255,163,255,182,255,221,255,27,0,104,0,178,0,242,0,41,1,78,1,84,1,49,1,229,0,135,0,39,0,203,255, +126,255,82,255,76,255,97,255,125,255,143,255,143,255,121,255,79,255,30,255,247,254,230,254,245,254,33,255,97,255,169,255, +237,255,42,0,95,0,143,0,192,0,242,0,35,1,78,1,114,1,144,1,181,1,233,1,36,2,91,2,139,2,173,2, +185,2,165,2,127,2,98,2,95,2,114,2,141,2,168,2,193,2,208,2,208,2,206,2,217,2,251,2,49,3,108,3, +158,3,193,3,208,3,204,3,188,3,172,3,172,3,192,3,226,3,7,4,37,4,54,4,65,4,72,4,72,4,73,4, +78,4,82,4,77,4,58,4,27,4,252,3,236,3,244,3,20,4,67,4,116,4,154,4,167,4,147,4,100,4,36,4, +230,3,181,3,146,3,130,3,130,3,137,3,143,3,148,3,150,3,149,3,137,3,105,3,51,3,235,2,147,2,52,2, +224,1,162,1,124,1,100,1,82,1,63,1,37,1,2,1,219,0,185,0,163,0,149,0,139,0,130,0,121,0,108,0, +94,0,85,0,88,0,99,0,113,0,127,0,140,0,145,0,136,0,124,0,120,0,128,0,138,0,151,0,173,0,198,0, +206,0,187,0,145,0,93,0,40,0,241,255,187,255,142,255,104,255,71,255,46,255,33,255,36,255,48,255,55,255,50,255, +30,255,251,254,208,254,173,254,155,254,159,254,184,254,226,254,25,255,84,255,135,255,175,255,203,255,221,255,230,255,237,255, +244,255,252,255,0,0,0,0,1,0,7,0,18,0,34,0,50,0,65,0,73,0,69,0,55,0,34,0,10,0,242,255, +223,255,211,255,204,255,200,255,197,255,196,255,197,255,197,255,196,255,196,255,202,255,212,255,225,255,239,255,252,255,9,0, +21,0,30,0,35,0,38,0,37,0,27,0,10,0,245,255,227,255,220,255,222,255,228,255,236,255,245,255,252,255,1,0, +3,0,6,0,16,0,33,0,55,0,79,0,108,0,147,0,190,0,232,0,22,1,69,1,115,1,160,1,206,1,250,1, +38,2,76,2,105,2,123,2,129,2,122,2,109,2,89,2,67,2,46,2,27,2,10,2,252,1,237,1,219,1,197,1, +172,1,145,1,116,1,89,1,70,1,62,1,68,1,89,1,126,1,179,1,241,1,45,2,97,2,137,2,163,2,172,2, +165,2,149,2,130,2,112,2,95,2,80,2,65,2,50,2,33,2,9,2,235,1,197,1,155,1,110,1,65,1,18,1, +228,0,184,0,147,0,122,0,103,0,88,0,77,0,68,0,53,0,31,0,2,0,224,255,192,255,161,255,132,255,106,255, +83,255,55,255,15,255,218,254,158,254,97,254,30,254,217,253,151,253,91,253,36,253,237,252,186,252,148,252,129,252,127,252, +138,252,157,252,179,252,198,252,207,252,204,252,194,252,180,252,168,252,166,252,169,252,175,252,181,252,182,252,174,252,156,252, +129,252,95,252,60,252,20,252,231,251,183,251,139,251,100,251,72,251,57,251,60,251,75,251,94,251,107,251,113,251,117,251, +119,251,125,251,142,251,174,251,218,251,13,252,62,252,103,252,134,252,157,252,176,252,194,252,212,252,233,252,255,252,18,253, +30,253,33,253,27,253,21,253,20,253,24,253,32,253,46,253,66,253,93,253,128,253,170,253,219,253,14,254,60,254,100,254, +133,254,156,254,173,254,189,254,213,254,253,254,49,255,105,255,162,255,210,255,248,255,18,0,35,0,46,0,55,0,56,0, +47,0,25,0,244,255,203,255,170,255,152,255,151,255,166,255,194,255,220,255,227,255,210,255,183,255,161,255,161,255,190,255, +248,255,68,0,139,0,178,0,174,0,137,0,93,0,56,0,34,0,29,0,52,0,111,0,194,0,18,1,85,1,142,1, +189,1,204,1,172,1,96,1,0,1,153,0,46,0,203,255,141,255,133,255,166,255,211,255,243,255,253,255,238,255,196,255, +138,255,92,255,78,255,95,255,128,255,162,255,193,255,220,255,241,255,254,255,12,0,42,0,95,0,163,0,225,0,17,1, +58,1,102,1,154,1,206,1,253,1,46,2,89,2,101,2,69,2,13,2,228,1,227,1,7,2,66,2,143,2,224,2, +25,3,44,3,41,3,45,3,70,3,112,3,166,3,226,3,22,4,52,4,58,4,57,4,64,4,88,4,128,4,183,4, +247,4,45,5,77,5,81,5,66,5,46,5,25,5,7,5,242,4,217,4,180,4,132,4,80,4,40,4,31,4,61,4, +124,4,198,4,7,5,40,5,29,5,234,4,161,4,86,4,25,4,240,3,221,3,225,3,242,3,255,3,4,4,7,4, +15,4,17,4,255,3,210,3,141,3,53,3,204,2,97,2,10,2,216,1,198,1,195,1,191,1,178,1,151,1,111,1, +67,1,30,1,11,1,12,1,23,1,30,1,26,1,12,1,2,1,255,0,253,0,251,0,255,0,5,1,255,0,225,0, +178,0,139,0,117,0,100,0,82,0,76,0,89,0,99,0,79,0,31,0,233,255,183,255,133,255,88,255,59,255,49,255, +47,255,41,255,34,255,34,255,43,255,53,255,58,255,55,255,40,255,12,255,235,254,212,254,205,254,219,254,251,254,38,255, +88,255,134,255,169,255,198,255,225,255,252,255,21,0,41,0,62,0,85,0,98,0,98,0,97,0,101,0,111,0,130,0, +156,0,189,0,220,0,236,0,228,0,198,0,152,0,96,0,37,0,238,255,192,255,155,255,130,255,119,255,116,255,116,255, +119,255,124,255,130,255,135,255,138,255,148,255,170,255,198,255,223,255,246,255,16,0,46,0,73,0,87,0,92,0,96,0, +104,0,113,0,120,0,130,0,144,0,154,0,150,0,136,0,122,0,112,0,107,0,106,0,111,0,123,0,142,0,169,0, +205,0,248,0,41,1,92,1,144,1,194,1,239,1,23,2,61,2,91,2,109,2,117,2,116,2,108,2,94,2,68,2, +35,2,3,2,229,1,199,1,166,1,126,1,87,1,52,1,17,1,236,0,202,0,180,0,175,0,182,0,196,0,222,0, +6,1,60,1,123,1,184,1,247,1,56,2,111,2,148,2,170,2,179,2,179,2,173,2,160,2,141,2,117,2,86,2, +49,2,9,2,215,1,152,1,83,1,16,1,212,0,158,0,108,0,65,0,24,0,236,255,183,255,126,255,75,255,33,255, +252,254,222,254,201,254,190,254,185,254,181,254,178,254,175,254,172,254,162,254,139,254,100,254,45,254,233,253,161,253,91,253, +29,253,235,252,197,252,168,252,143,252,120,252,101,252,90,252,86,252,87,252,90,252,99,252,108,252,111,252,104,252,91,252, +75,252,59,252,46,252,37,252,35,252,41,252,50,252,54,252,45,252,29,252,10,252,244,251,215,251,184,251,155,251,130,251, +104,251,76,251,52,251,39,251,36,251,39,251,42,251,44,251,45,251,42,251,41,251,45,251,57,251,76,251,103,251,134,251, +166,251,198,251,228,251,252,251,17,252,35,252,50,252,64,252,78,252,89,252,92,252,91,252,87,252,85,252,94,252,117,252, +155,252,208,252,16,253,90,253,169,253,248,253,63,254,124,254,180,254,232,254,24,255,64,255,91,255,98,255,79,255,34,255, +236,254,190,254,166,254,164,254,181,254,215,254,255,254,29,255,38,255,27,255,7,255,242,254,225,254,215,254,222,254,245,254, +11,255,15,255,254,254,227,254,216,254,233,254,22,255,88,255,174,255,22,0,131,0,219,0,26,1,76,1,114,1,126,1, +97,1,32,1,211,0,139,0,71,0,12,0,237,255,249,255,39,0,85,0,105,0,98,0,70,0,21,0,212,255,153,255, +124,255,127,255,141,255,147,255,149,255,156,255,171,255,187,255,205,255,239,255,39,0,102,0,152,0,181,0,205,0,238,0, +17,1,44,1,64,1,88,1,120,1,140,1,126,1,96,1,84,1,105,1,152,1,210,1,19,2,84,2,131,2,141,2, +125,2,116,2,135,2,183,2,243,2,48,3,110,3,160,3,191,3,211,3,238,3,31,4,98,4,172,4,244,4,58,5, +114,5,146,5,156,5,162,5,174,5,190,5,197,5,193,5,179,5,151,5,114,5,78,5,63,5,77,5,109,5,139,5, +154,5,144,5,97,5,17,5,177,4,91,4,27,4,241,3,221,3,228,3,253,3,21,4,29,4,22,4,12,4,255,3, +232,3,197,3,155,3,108,3,63,3,21,3,241,2,219,2,213,2,216,2,216,2,199,2,166,2,127,2,91,2,57,2, +29,2,15,2,13,2,12,2,255,1,231,1,204,1,182,1,161,1,137,1,117,1,108,1,95,1,62,1,12,1,216,0, +177,0,148,0,120,0,101,0,96,0,87,0,53,0,252,255,186,255,122,255,64,255,11,255,226,254,206,254,198,254,193,254, +187,254,184,254,186,254,191,254,194,254,192,254,184,254,170,254,151,254,136,254,135,254,148,254,177,254,221,254,21,255,79,255, +130,255,169,255,197,255,221,255,244,255,8,0,24,0,38,0,50,0,62,0,73,0,81,0,88,0,101,0,119,0,136,0, +150,0,161,0,167,0,163,0,142,0,107,0,71,0,41,0,13,0,243,255,224,255,218,255,220,255,222,255,222,255,225,255, +234,255,244,255,246,255,246,255,253,255,17,0,40,0,59,0,75,0,93,0,112,0,126,0,132,0,133,0,133,0,132,0, +123,0,110,0,103,0,103,0,104,0,105,0,109,0,119,0,136,0,159,0,187,0,218,0,253,0,35,1,75,1,122,1, +179,1,247,1,63,2,134,2,199,2,254,2,39,3,63,3,67,3,52,3,23,3,237,2,188,2,131,2,71,2,18,2, +232,1,199,1,169,1,130,1,81,1,25,1,219,0,151,0,85,0,34,0,7,0,3,0,16,0,40,0,78,0,132,0, +196,0,10,1,82,1,155,1,226,1,35,2,85,2,118,2,133,2,131,2,116,2,91,2,59,2,21,2,236,1,189,1, +137,1,80,1,17,1,208,0,145,0,91,0,45,0,4,0,222,255,181,255,133,255,78,255,18,255,216,254,168,254,131,254, +105,254,87,254,77,254,69,254,57,254,35,254,10,254,242,253,215,253,177,253,124,253,63,253,1,253,195,252,132,252,75,252, +37,252,13,252,250,251,226,251,204,251,191,251,183,251,173,251,159,251,151,251,153,251,164,251,175,251,185,251,195,251,208,251, +232,251,5,252,35,252,66,252,96,252,113,252,110,252,89,252,58,252,31,252,11,252,253,251,246,251,246,251,250,251,253,251, +251,251,242,251,228,251,213,251,201,251,198,251,203,251,210,251,215,251,214,251,207,251,195,251,179,251,163,251,151,251,144,251, +143,251,150,251,164,251,184,251,212,251,248,251,34,252,83,252,137,252,197,252,2,253,58,253,112,253,169,253,234,253,46,254, +118,254,190,254,250,254,31,255,40,255,27,255,1,255,229,254,206,254,196,254,204,254,227,254,252,254,2,255,234,254,183,254, +123,254,68,254,36,254,37,254,73,254,137,254,210,254,8,255,27,255,18,255,253,254,236,254,232,254,240,254,6,255,50,255, +118,255,199,255,30,0,121,0,213,0,34,1,76,1,67,1,11,1,176,0,67,0,215,255,134,255,97,255,101,255,128,255, +163,255,188,255,196,255,183,255,155,255,133,255,135,255,161,255,200,255,238,255,11,0,37,0,66,0,97,0,126,0,161,0, +208,0,9,1,60,1,84,1,84,1,81,1,90,1,104,1,117,1,131,1,147,1,149,1,117,1,52,1,242,0,208,0, +219,0,6,1,64,1,126,1,177,1,202,1,204,1,204,1,222,1,14,2,84,2,160,2,233,2,33,3,65,3,74,3, +78,3,97,3,138,3,197,3,8,4,78,4,143,4,187,4,207,4,211,4,213,4,217,4,220,4,211,4,181,4,135,4, +80,4,28,4,249,3,241,3,8,4,54,4,108,4,150,4,164,4,149,4,111,4,62,4,14,4,230,3,201,3,181,3, +167,3,155,3,141,3,127,3,121,3,124,3,132,3,137,3,128,3,94,3,40,3,231,2,167,2,110,2,68,2,42,2, +28,2,18,2,2,2,239,1,220,1,204,1,188,1,173,1,162,1,156,1,147,1,131,1,111,1,91,1,77,1,70,1, +66,1,66,1,62,1,43,1,5,1,207,0,149,0,101,0,62,0,34,0,21,0,14,0,255,255,226,255,183,255,131,255, +77,255,26,255,234,254,195,254,163,254,132,254,101,254,73,254,50,254,37,254,34,254,39,254,50,254,61,254,65,254,58,254, +51,254,52,254,67,254,93,254,128,254,169,254,213,254,1,255,41,255,74,255,101,255,128,255,153,255,172,255,183,255,193,255, +203,255,210,255,209,255,203,255,200,255,204,255,210,255,209,255,207,255,210,255,215,255,217,255,215,255,216,255,223,255,227,255, +222,255,214,255,209,255,211,255,217,255,224,255,231,255,241,255,254,255,8,0,10,0,4,0,250,255,235,255,214,255,195,255, +181,255,170,255,158,255,144,255,129,255,120,255,115,255,112,255,115,255,124,255,134,255,148,255,167,255,195,255,236,255,38,0, +111,0,194,0,24,1,101,1,165,1,216,1,251,1,17,2,34,2,54,2,78,2,100,2,119,2,133,2,148,2,164,2, +173,2,164,2,141,2,105,2,54,2,245,1,170,1,93,1,30,1,241,0,208,0,184,0,174,0,176,0,186,0,198,0, +204,0,207,0,211,0,212,0,209,0,205,0,198,0,189,0,179,0,169,0,160,0,151,0,140,0,126,0,109,0,85,0, +52,0,15,0,239,255,217,255,209,255,212,255,219,255,225,255,228,255,222,255,206,255,182,255,159,255,142,255,127,255,114,255, +106,255,102,255,94,255,79,255,60,255,42,255,20,255,237,254,178,254,104,254,23,254,191,253,99,253,11,253,193,252,133,252, +80,252,29,252,235,251,190,251,147,251,102,251,53,251,5,251,225,250,199,250,178,250,158,250,141,250,138,250,152,250,178,250, +210,250,247,250,32,251,70,251,90,251,89,251,80,251,75,251,78,251,87,251,104,251,132,251,171,251,209,251,236,251,254,251, +13,252,22,252,26,252,25,252,22,252,17,252,6,252,243,251,226,251,213,251,199,251,183,251,167,251,152,251,137,251,121,251, +105,251,92,251,81,251,74,251,75,251,85,251,106,251,140,251,186,251,244,251,57,252,133,252,215,252,44,253,126,253,195,253, +250,253,29,254,44,254,43,254,38,254,39,254,51,254,75,254,110,254,152,254,193,254,215,254,206,254,174,254,135,254,105,254, +94,254,108,254,151,254,220,254,37,255,85,255,94,255,70,255,36,255,7,255,245,254,241,254,2,255,48,255,119,255,205,255, +39,0,132,0,221,0,30,1,50,1,16,1,191,0,80,0,213,255,96,255,15,255,242,254,255,254,35,255,74,255,102,255, +114,255,103,255,70,255,42,255,41,255,71,255,117,255,156,255,187,255,222,255,9,0,55,0,98,0,146,0,213,0,39,1, +105,1,133,1,140,1,151,1,176,1,203,1,224,1,246,1,16,2,21,2,237,1,161,1,85,1,42,1,39,1,68,1, +119,1,179,1,220,1,229,1,212,1,192,1,193,1,222,1,14,2,69,2,119,2,152,2,161,2,155,2,153,2,177,2, +232,2,51,3,134,3,215,3,28,4,75,4,95,4,100,4,104,4,115,4,126,4,121,4,95,4,52,4,3,4,222,3, +213,3,241,3,48,4,133,4,217,4,20,5,35,5,5,5,206,4,144,4,90,4,55,4,47,4,60,4,90,4,125,4, +158,4,194,4,234,4,15,5,43,5,53,5,37,5,248,4,177,4,95,4,19,4,215,3,172,3,146,3,127,3,105,3, +74,3,32,3,236,2,180,2,124,2,75,2,34,2,254,1,216,1,177,1,143,1,114,1,83,1,53,1,32,1,19,1, +4,1,235,0,200,0,166,0,148,0,147,0,153,0,167,0,188,0,200,0,187,0,142,0,72,0,253,255,183,255,121,255, +74,255,49,255,44,255,54,255,69,255,82,255,88,255,85,255,73,255,51,255,18,255,230,254,175,254,119,254,73,254,42,254, +29,254,36,254,59,254,90,254,127,254,172,254,218,254,1,255,30,255,52,255,65,255,65,255,54,255,42,255,36,255,37,255, +40,255,45,255,62,255,92,255,129,255,168,255,207,255,245,255,23,0,44,0,53,0,56,0,57,0,56,0,52,0,53,0, +67,0,91,0,115,0,139,0,167,0,194,0,215,0,228,0,232,0,234,0,239,0,240,0,238,0,237,0,241,0,249,0, +255,0,254,0,248,0,243,0,234,0,217,0,193,0,170,0,154,0,145,0,140,0,139,0,148,0,171,0,202,0,237,0, +18,1,61,1,109,1,161,1,215,1,19,2,86,2,159,2,234,2,49,3,112,3,161,3,197,3,217,3,220,3,208,3, +187,3,163,3,139,3,111,3,80,3,48,3,20,3,249,2,218,2,177,2,128,2,75,2,18,2,209,1,140,1,77,1, +24,1,239,0,206,0,185,0,176,0,181,0,195,0,209,0,220,0,224,0,219,0,201,0,171,0,130,0,82,0,32,0, +241,255,200,255,167,255,141,255,125,255,112,255,96,255,79,255,66,255,51,255,32,255,14,255,1,255,249,254,240,254,226,254, +212,254,205,254,202,254,197,254,185,254,170,254,156,254,140,254,111,254,69,254,22,254,229,253,180,253,126,253,67,253,9,253, +209,252,153,252,93,252,30,252,224,251,165,251,112,251,65,251,18,251,225,250,180,250,147,250,129,250,120,250,116,250,118,250, +129,250,142,250,146,250,143,250,144,250,156,250,180,250,211,250,245,250,23,251,52,251,71,251,79,251,81,251,84,251,89,251, +95,251,106,251,123,251,143,251,162,251,179,251,197,251,220,251,245,251,10,252,22,252,22,252,14,252,0,252,233,251,204,251, +180,251,171,251,183,251,211,251,249,251,45,252,113,252,189,252,3,253,62,253,109,253,141,253,159,253,164,253,159,253,147,253, +130,253,118,253,120,253,136,253,161,253,192,253,232,253,28,254,80,254,118,254,133,254,133,254,122,254,107,254,90,254,76,254, +70,254,78,254,95,254,100,254,79,254,47,254,30,254,41,254,74,254,120,254,189,254,33,255,152,255,1,0,81,0,148,0, +204,0,228,0,208,0,156,0,95,0,34,0,231,255,181,255,159,255,173,255,207,255,241,255,10,0,25,0,22,0,248,255, +188,255,117,255,65,255,49,255,58,255,77,255,100,255,144,255,214,255,31,0,84,0,131,0,204,0,50,1,144,1,199,1, +229,1,12,2,61,2,89,2,92,2,99,2,128,2,159,2,156,2,120,2,84,2,72,2,84,2,110,2,145,2,188,2, +223,2,229,2,199,2,156,2,125,2,115,2,119,2,134,2,164,2,201,2,228,2,233,2,234,2,1,3,53,3,123,3, +201,3,31,4,120,4,192,4,228,4,225,4,202,4,175,4,150,4,122,4,94,4,68,4,50,4,43,4,47,4,63,4, +95,4,139,4,181,4,205,4,203,4,178,4,133,4,78,4,29,4,4,4,13,4,46,4,84,4,127,4,179,4,228,4, +255,4,254,4,242,4,235,4,222,4,186,4,130,4,74,4,22,4,228,3,177,3,131,3,95,3,60,3,15,3,215,2, +149,2,74,2,251,1,182,1,134,1,100,1,68,1,33,1,1,1,225,0,185,0,141,0,106,0,88,0,82,0,76,0, +68,0,60,0,54,0,51,0,55,0,66,0,83,0,95,0,93,0,74,0,43,0,5,0,220,255,183,255,161,255,159,255, +173,255,192,255,205,255,204,255,191,255,164,255,125,255,75,255,20,255,221,254,173,254,132,254,93,254,61,254,45,254,48,254, +67,254,96,254,134,254,177,254,220,254,255,254,20,255,28,255,28,255,21,255,9,255,4,255,12,255,25,255,42,255,66,255, +99,255,138,255,174,255,204,255,234,255,9,0,26,0,23,0,10,0,0,0,2,0,10,0,21,0,42,0,78,0,120,0, +157,0,187,0,218,0,254,0,31,1,52,1,66,1,81,1,99,1,114,1,120,1,121,1,124,1,127,1,124,1,111,1, +91,1,71,1,53,1,30,1,9,1,255,0,2,1,12,1,22,1,33,1,48,1,70,1,94,1,119,1,151,1,193,1, +248,1,56,2,126,2,203,2,32,3,121,3,199,3,1,4,39,4,60,4,62,4,37,4,242,3,179,3,117,3,54,3, +243,2,172,2,105,2,44,2,241,1,178,1,113,1,45,1,228,0,148,0,61,0,228,255,150,255,94,255,59,255,44,255, +42,255,46,255,57,255,75,255,95,255,113,255,131,255,147,255,155,255,151,255,133,255,106,255,72,255,30,255,242,254,202,254, +169,254,144,254,120,254,91,254,53,254,6,254,212,253,165,253,126,253,96,253,75,253,59,253,49,253,40,253,27,253,12,253, +2,253,250,252,238,252,218,252,189,252,156,252,118,252,68,252,10,252,209,251,163,251,129,251,100,251,61,251,9,251,207,250, +147,250,85,250,27,250,240,249,218,249,211,249,206,249,197,249,187,249,187,249,196,249,209,249,227,249,251,249,25,250,58,250, +88,250,116,250,150,250,196,250,252,250,55,251,113,251,169,251,216,251,246,251,2,252,4,252,254,251,247,251,240,251,234,251, +231,251,231,251,233,251,237,251,247,251,8,252,32,252,62,252,95,252,130,252,166,252,204,252,247,252,35,253,77,253,123,253, +171,253,216,253,254,253,30,254,56,254,70,254,67,254,46,254,20,254,251,253,225,253,200,253,185,253,188,253,210,253,235,253, +254,253,8,254,11,254,14,254,21,254,29,254,44,254,77,254,123,254,161,254,173,254,157,254,140,254,148,254,175,254,207,254, +254,254,79,255,187,255,32,0,106,0,169,0,238,0,42,1,60,1,27,1,222,0,148,0,57,0,209,255,115,255,61,255, +51,255,64,255,75,255,82,255,87,255,84,255,67,255,37,255,19,255,39,255,95,255,156,255,201,255,239,255,35,0,98,0, +148,0,187,0,246,0,93,1,212,1,50,2,108,2,164,2,236,2,48,3,93,3,121,3,152,3,181,3,181,3,137,3, +71,3,16,3,246,2,252,2,28,3,71,3,111,3,130,3,121,3,94,3,64,3,41,3,37,3,52,3,81,3,107,3, +113,3,98,3,82,3,86,3,122,3,186,3,13,4,109,4,210,4,43,5,102,5,127,5,129,5,122,5,112,5,86,5, +40,5,239,4,185,4,140,4,110,4,109,4,149,4,226,4,61,5,139,5,185,5,193,5,166,5,107,5,31,5,221,4, +183,4,173,4,171,4,173,4,188,4,219,4,247,4,2,5,252,4,239,4,221,4,184,4,118,4,33,4,203,3,129,3, +64,3,255,2,183,2,110,2,38,2,218,1,131,1,36,1,208,0,153,0,127,0,116,0,107,0,98,0,94,0,85,0, +60,0,26,0,251,255,227,255,211,255,193,255,174,255,163,255,165,255,182,255,218,255,17,0,81,0,139,0,175,0,183,0, +167,0,131,0,79,0,22,0,229,255,198,255,185,255,180,255,179,255,181,255,182,255,179,255,167,255,140,255,102,255,57,255, +6,255,202,254,137,254,78,254,35,254,10,254,2,254,12,254,41,254,87,254,147,254,213,254,25,255,93,255,156,255,206,255, +239,255,1,0,7,0,6,0,254,255,243,255,235,255,235,255,247,255,14,0,46,0,81,0,111,0,131,0,140,0,138,0, +126,0,108,0,87,0,72,0,66,0,65,0,65,0,69,0,86,0,116,0,148,0,172,0,195,0,226,0,13,1,56,1, +92,1,127,1,173,1,228,1,13,2,29,2,22,2,6,2,243,1,213,1,171,1,132,1,111,1,105,1,105,1,105,1, +104,1,109,1,121,1,131,1,132,1,128,1,127,1,134,1,141,1,143,1,146,1,164,1,201,1,246,1,30,2,61,2, +82,2,89,2,74,2,33,2,234,1,178,1,126,1,72,1,13,1,205,0,137,0,66,0,249,255,176,255,110,255,49,255, +251,254,206,254,169,254,136,254,104,254,80,254,69,254,64,254,60,254,58,254,58,254,61,254,64,254,61,254,57,254,54,254, +45,254,28,254,9,254,243,253,219,253,194,253,166,253,144,253,129,253,112,253,86,253,50,253,7,253,218,252,173,252,129,252, +94,252,72,252,58,252,47,252,33,252,11,252,240,251,209,251,176,251,149,251,125,251,102,251,75,251,41,251,0,251,212,250, +167,250,126,250,94,250,71,250,55,250,37,250,13,250,242,249,219,249,203,249,194,249,195,249,203,249,212,249,218,249,221,249, +222,249,224,249,231,249,249,249,25,250,66,250,109,250,150,250,189,250,233,250,25,251,74,251,122,251,169,251,211,251,247,251, +19,252,35,252,40,252,39,252,37,252,48,252,73,252,109,252,152,252,206,252,15,253,88,253,162,253,233,253,38,254,87,254, +122,254,137,254,129,254,100,254,56,254,9,254,224,253,185,253,146,253,116,253,101,253,102,253,108,253,114,253,119,253,127,253, +131,253,132,253,137,253,151,253,170,253,195,253,235,253,44,254,120,254,180,254,221,254,6,255,68,255,142,255,204,255,3,0, +78,0,176,0,9,1,65,1,92,1,113,1,131,1,119,1,63,1,233,0,143,0,62,0,245,255,189,255,159,255,158,255, +170,255,174,255,160,255,130,255,90,255,38,255,235,254,189,254,179,254,212,254,8,255,61,255,123,255,217,255,82,0,196,0, +27,1,109,1,219,1,87,2,176,2,211,2,231,2,24,3,89,3,130,3,140,3,147,3,170,3,188,3,172,3,129,3, +97,3,101,3,134,3,174,3,209,3,234,3,244,3,231,3,197,3,159,3,135,3,131,3,145,3,171,3,203,3,232,3, +253,3,9,4,25,4,62,4,120,4,183,4,238,4,23,5,58,5,87,5,99,5,93,5,82,5,78,5,79,5,67,5, +39,5,4,5,234,4,224,4,235,4,10,5,62,5,128,5,191,5,233,5,254,5,253,5,233,5,205,5,180,5,172,5, +183,5,199,5,205,5,208,5,217,5,231,5,236,5,216,5,176,5,127,5,69,5,241,4,125,4,251,3,135,3,45,3, +229,2,158,2,85,2,23,2,231,1,175,1,94,1,254,0,170,0,113,0,68,0,14,0,214,255,173,255,153,255,140,255, +120,255,107,255,117,255,137,255,149,255,151,255,150,255,152,255,156,255,164,255,186,255,220,255,247,255,1,0,249,255,230,255, +203,255,170,255,137,255,119,255,120,255,138,255,160,255,176,255,186,255,193,255,194,255,187,255,171,255,147,255,120,255,95,255, +68,255,33,255,249,254,215,254,195,254,189,254,193,254,208,254,239,254,29,255,82,255,141,255,201,255,255,255,46,0,86,0, +119,0,141,0,145,0,137,0,136,0,148,0,165,0,186,0,216,0,3,1,45,1,67,1,66,1,55,1,40,1,20,1, +0,1,242,0,243,0,4,1,30,1,58,1,87,1,123,1,165,1,204,1,232,1,255,1,23,2,55,2,89,2,121,2, +158,2,211,2,15,3,61,3,77,3,65,3,41,3,12,3,226,2,170,2,119,2,90,2,78,2,63,2,40,2,20,2, +7,2,247,1,221,1,185,1,150,1,123,1,102,1,83,1,67,1,55,1,53,1,62,1,74,1,82,1,79,1,63,1, +36,1,248,0,188,0,119,0,55,0,4,0,217,255,171,255,126,255,85,255,44,255,255,254,199,254,136,254,76,254,21,254, +229,253,186,253,147,253,116,253,94,253,74,253,55,253,40,253,34,253,36,253,44,253,51,253,58,253,63,253,64,253,55,253, +34,253,1,253,214,252,166,252,120,252,79,252,44,252,12,252,238,251,207,251,172,251,128,251,75,251,22,251,231,250,189,250, +151,250,117,250,91,250,74,250,62,250,53,250,47,250,47,250,49,250,41,250,26,250,10,250,247,249,225,249,201,249,183,249, +182,249,195,249,212,249,228,249,244,249,3,250,20,250,36,250,50,250,67,250,89,250,112,250,132,250,144,250,146,250,144,250, +139,250,137,250,140,250,145,250,151,250,161,250,180,250,212,250,3,251,63,251,130,251,199,251,4,252,53,252,93,252,128,252, +158,252,191,252,238,252,50,253,134,253,219,253,42,254,116,254,181,254,224,254,240,254,236,254,220,254,189,254,138,254,75,254, +15,254,221,253,180,253,145,253,122,253,119,253,131,253,139,253,131,253,119,253,127,253,159,253,201,253,242,253,36,254,113,254, +201,254,4,255,7,255,236,254,229,254,8,255,60,255,114,255,190,255,51,0,187,0,36,1,93,1,127,1,152,1,152,1, +103,1,10,1,155,0,40,0,174,255,58,255,228,254,182,254,159,254,137,254,117,254,115,254,134,254,151,254,152,254,157,254, +201,254,33,255,128,255,191,255,223,255,15,0,104,0,197,0,252,0,33,1,108,1,245,1,133,2,219,2,6,3,63,3, +150,3,222,3,241,3,225,3,217,3,219,3,200,3,146,3,80,3,37,3,26,3,37,3,59,3,80,3,85,3,69,3, +39,3,14,3,8,3,21,3,47,3,86,3,137,3,187,3,219,3,228,3,229,3,252,3,59,4,151,4,248,4,84,5, +181,5,33,6,126,6,174,6,174,6,147,6,113,6,65,6,244,5,147,5,57,5,254,4,231,4,242,4,26,5,85,5, +152,5,208,5,241,5,240,5,202,5,138,5,69,5,19,5,1,5,8,5,26,5,43,5,65,5,101,5,137,5,156,5, +144,5,114,5,87,5,62,5,11,5,177,4,65,4,225,3,154,3,78,3,229,2,107,2,248,1,149,1,51,1,196,0, +87,0,8,0,219,255,191,255,162,255,135,255,117,255,101,255,75,255,46,255,23,255,10,255,1,255,248,254,244,254,254,254, +20,255,50,255,83,255,121,255,166,255,210,255,237,255,237,255,211,255,173,255,135,255,98,255,51,255,254,254,210,254,188,254, +185,254,188,254,188,254,193,254,218,254,0,255,30,255,45,255,56,255,73,255,94,255,104,255,97,255,85,255,87,255,110,255, +157,255,220,255,39,0,129,0,232,0,73,1,145,1,180,1,180,1,156,1,115,1,56,1,244,0,180,0,137,0,122,0, +128,0,147,0,169,0,191,0,217,0,245,0,9,1,19,1,21,1,28,1,49,1,82,1,119,1,158,1,206,1,13,2, +90,2,163,2,220,2,4,3,38,3,76,3,118,3,157,3,198,3,249,3,49,4,92,4,99,4,70,4,18,4,215,3, +150,3,73,3,245,2,169,2,112,2,70,2,34,2,1,2,233,1,221,1,208,1,183,1,148,1,108,1,70,1,34,1, +251,0,219,0,201,0,197,0,198,0,197,0,191,0,185,0,173,0,147,0,103,0,46,0,248,255,200,255,148,255,82,255, +10,255,200,254,149,254,109,254,70,254,37,254,23,254,28,254,33,254,22,254,252,253,225,253,203,253,186,253,168,253,148,253, +131,253,119,253,112,253,106,253,98,253,81,253,57,253,24,253,237,252,177,252,95,252,251,251,152,251,66,251,250,250,190,250, +144,250,112,250,89,250,63,250,26,250,233,249,175,249,119,249,67,249,24,249,248,248,227,248,222,248,233,248,0,249,32,249, +62,249,84,249,103,249,121,249,136,249,147,249,159,249,181,249,221,249,13,250,52,250,83,250,115,250,151,250,185,250,210,250, +227,250,246,250,13,251,39,251,65,251,84,251,95,251,101,251,108,251,115,251,119,251,120,251,118,251,114,251,115,251,123,251, +140,251,164,251,197,251,245,251,55,252,127,252,194,252,252,252,51,253,110,253,171,253,228,253,17,254,51,254,70,254,75,254, +64,254,40,254,11,254,242,253,232,253,241,253,9,254,35,254,51,254,51,254,40,254,24,254,6,254,255,253,13,254,41,254, +85,254,153,254,237,254,51,255,83,255,91,255,115,255,165,255,215,255,247,255,28,0,102,0,206,0,44,1,104,1,145,1, +181,1,199,1,166,1,76,1,209,0,78,0,204,255,84,255,242,254,172,254,128,254,93,254,55,254,14,254,230,253,193,253, +155,253,131,253,149,253,227,253,90,254,206,254,46,255,150,255,33,0,179,0,26,1,91,1,171,1,38,2,163,2,231,2, +244,2,4,3,54,3,111,3,130,3,108,3,86,3,81,3,72,3,35,3,229,2,177,2,164,2,189,2,229,2,254,2, +254,2,243,2,236,2,234,2,238,2,253,2,35,3,99,3,177,3,246,3,35,4,52,4,57,4,77,4,128,4,204,4, +31,5,115,5,207,5,47,6,123,6,157,6,154,6,143,6,133,6,109,6,60,6,255,5,199,5,155,5,125,5,121,5, +154,5,211,5,11,6,49,6,70,6,75,6,56,6,8,6,207,5,174,5,172,5,185,5,193,5,193,5,198,5,208,5, +204,5,176,5,132,5,86,5,48,5,16,5,233,4,181,4,121,4,67,4,26,4,234,3,154,3,46,3,186,2,76,2, +216,1,92,1,237,0,156,0,97,0,41,0,234,255,168,255,103,255,33,255,214,254,151,254,118,254,105,254,93,254,79,254, +76,254,92,254,117,254,134,254,142,254,157,254,196,254,251,254,42,255,66,255,76,255,95,255,127,255,147,255,132,255,92,255, +56,255,34,255,14,255,243,254,227,254,243,254,27,255,68,255,95,255,117,255,135,255,134,255,119,255,107,255,111,255,129,255, +148,255,166,255,199,255,249,255,42,0,78,0,98,0,107,0,112,0,120,0,121,0,101,0,64,0,39,0,46,0,64,0, +61,0,30,0,254,255,238,255,218,255,176,255,133,255,119,255,141,255,175,255,199,255,224,255,14,0,73,0,128,0,178,0, +235,0,44,1,106,1,156,1,197,1,240,1,32,2,82,2,135,2,194,2,4,3,72,3,132,3,172,3,188,3,188,3, +179,3,159,3,121,3,64,3,253,2,188,2,118,2,36,2,207,1,133,1,76,1,32,1,245,0,204,0,166,0,122,0, +66,0,254,255,180,255,106,255,37,255,239,254,208,254,199,254,203,254,219,254,246,254,24,255,54,255,74,255,80,255,72,255, +47,255,5,255,211,254,155,254,96,254,37,254,241,253,202,253,167,253,124,253,73,253,26,253,245,252,213,252,178,252,144,252, +122,252,113,252,106,252,91,252,67,252,41,252,12,252,234,251,192,251,146,251,103,251,68,251,38,251,11,251,240,250,214,250, +193,250,173,250,140,250,89,250,22,250,207,249,129,249,39,249,202,248,129,248,86,248,61,248,37,248,18,248,20,248,44,248, +72,248,96,248,127,248,177,248,242,248,50,249,101,249,149,249,206,249,11,250,68,250,123,250,180,250,245,250,53,251,109,251, +151,251,178,251,200,251,230,251,10,252,37,252,47,252,47,252,49,252,52,252,46,252,32,252,22,252,31,252,62,252,106,252, +151,252,200,252,254,252,50,253,94,253,132,253,170,253,213,253,3,254,45,254,83,254,121,254,149,254,158,254,147,254,123,254, +100,254,81,254,59,254,40,254,39,254,62,254,99,254,136,254,172,254,213,254,6,255,54,255,94,255,126,255,153,255,174,255, +198,255,233,255,27,0,85,0,143,0,204,0,8,1,61,1,95,1,107,1,101,1,85,1,64,1,42,1,21,1,0,1, +238,0,225,0,209,0,187,0,159,0,123,0,83,0,41,0,1,0,226,255,203,255,187,255,177,255,171,255,167,255,161,255, +156,255,161,255,177,255,202,255,233,255,22,0,91,0,179,0,16,1,110,1,210,1,60,2,157,2,223,2,1,3,18,3, +30,3,28,3,11,3,253,2,5,3,39,3,84,3,127,3,168,3,207,3,242,3,14,4,38,4,65,4,94,4,118,4, +140,4,169,4,205,4,232,4,232,4,214,4,208,4,226,4,2,5,32,5,72,5,151,5,10,6,124,6,214,6,28,7, +87,7,126,7,123,7,74,7,2,7,187,6,127,6,79,6,44,6,26,6,30,6,49,6,63,6,56,6,29,6,250,5, +210,5,162,5,109,5,69,5,52,5,39,5,10,5,236,4,241,4,26,5,64,5,75,5,87,5,135,5,205,5,242,5, +229,5,203,5,198,5,193,5,147,5,52,5,192,4,82,4,231,3,104,3,214,2,81,2,248,1,201,1,167,1,112,1, +32,1,198,0,111,0,20,0,182,255,101,255,53,255,33,255,14,255,230,254,179,254,133,254,96,254,64,254,49,254,69,254, +121,254,183,254,238,254,31,255,81,255,123,255,141,255,132,255,110,255,84,255,54,255,18,255,240,254,227,254,247,254,40,255, +113,255,200,255,32,0,109,0,166,0,196,0,202,0,190,0,169,0,151,0,141,0,142,0,153,0,171,0,190,0,211,0, +236,0,2,1,9,1,250,0,221,0,198,0,183,0,158,0,118,0,81,0,67,0,64,0,42,0,246,255,194,255,171,255, +166,255,153,255,138,255,155,255,214,255,29,0,80,0,115,0,160,0,217,0,9,1,37,1,63,1,102,1,147,1,185,1, +223,1,17,2,86,2,166,2,246,2,64,3,129,3,185,3,228,3,250,3,243,3,216,3,185,3,155,3,115,3,60,3, +253,2,201,2,162,2,120,2,67,2,7,2,208,1,163,1,118,1,60,1,248,0,170,0,84,0,243,255,135,255,21,255, +170,254,84,254,27,254,3,254,4,254,24,254,58,254,99,254,131,254,145,254,138,254,115,254,78,254,30,254,232,253,181,253, +141,253,106,253,69,253,30,253,247,252,201,252,144,252,83,252,23,252,218,251,156,251,97,251,51,251,24,251,8,251,242,250, +216,250,192,250,169,250,138,250,97,250,49,250,9,250,238,249,219,249,206,249,198,249,192,249,187,249,174,249,147,249,104,249, +50,249,248,248,190,248,132,248,79,248,35,248,2,248,230,247,206,247,186,247,173,247,167,247,165,247,170,247,186,247,218,247, +9,248,64,248,120,248,178,248,245,248,61,249,130,249,197,249,8,250,81,250,157,250,231,250,43,251,107,251,167,251,223,251, +13,252,42,252,57,252,67,252,79,252,89,252,91,252,93,252,106,252,132,252,156,252,173,252,195,252,233,252,25,253,65,253, +90,253,110,253,133,253,160,253,191,253,230,253,23,254,82,254,144,254,195,254,229,254,243,254,239,254,228,254,220,254,222,254, +238,254,10,255,46,255,89,255,136,255,179,255,211,255,233,255,253,255,16,0,34,0,49,0,63,0,83,0,112,0,143,0, +174,0,209,0,250,0,34,1,61,1,62,1,40,1,13,1,244,0,217,0,190,0,165,0,145,0,128,0,106,0,74,0, +40,0,8,0,236,255,214,255,203,255,201,255,208,255,219,255,231,255,251,255,26,0,64,0,103,0,142,0,187,0,241,0, +41,1,89,1,122,1,151,1,181,1,206,1,216,1,215,1,213,1,216,1,224,1,244,1,23,2,72,2,126,2,175,2, +214,2,248,2,26,3,68,3,116,3,172,3,245,3,88,4,195,4,18,5,48,5,52,5,69,5,104,5,140,5,170,5, +218,5,46,6,146,6,226,6,23,7,67,7,111,7,139,7,130,7,84,7,22,7,217,6,157,6,91,6,28,6,239,5, +221,5,222,5,216,5,193,5,167,5,144,5,114,5,71,5,26,5,9,5,21,5,32,5,14,5,246,4,246,4,5,5, +255,4,219,4,186,4,183,4,192,4,171,4,115,4,68,4,58,4,61,4,41,4,250,3,194,3,138,3,73,3,239,2, +136,2,52,2,1,2,233,1,219,1,198,1,157,1,106,1,51,1,252,0,198,0,146,0,103,0,66,0,22,0,212,255, +130,255,49,255,236,254,189,254,174,254,192,254,230,254,14,255,46,255,67,255,71,255,54,255,17,255,228,254,187,254,151,254, +117,254,90,254,80,254,89,254,118,254,167,254,233,254,56,255,141,255,220,255,33,0,92,0,136,0,167,0,193,0,222,0, +252,0,22,1,42,1,54,1,57,1,53,1,50,1,49,1,46,1,36,1,21,1,13,1,9,1,249,0,218,0,191,0, +175,0,153,0,107,0,45,0,253,255,230,255,218,255,212,255,230,255,27,0,105,0,181,0,242,0,34,1,80,1,123,1, +154,1,177,1,203,1,235,1,10,2,34,2,52,2,76,2,114,2,167,2,229,2,40,3,107,3,173,3,229,3,3,4, +0,4,233,3,210,3,190,3,165,3,129,3,88,3,59,3,46,3,32,3,5,3,233,2,218,2,212,2,197,2,156,2, +91,2,12,2,175,1,61,1,185,0,46,0,172,255,61,255,225,254,156,254,116,254,96,254,85,254,74,254,59,254,47,254, +35,254,12,254,225,253,171,253,116,253,65,253,10,253,196,252,127,252,74,252,37,252,254,251,203,251,152,251,116,251,96,251, +76,251,48,251,17,251,246,250,219,250,177,250,114,250,46,250,246,249,205,249,171,249,137,249,108,249,93,249,90,249,84,249, +71,249,58,249,54,249,49,249,26,249,242,248,199,248,157,248,107,248,46,248,241,247,196,247,168,247,140,247,107,247,86,247, +86,247,98,247,113,247,130,247,164,247,222,247,33,248,97,248,160,248,227,248,45,249,115,249,182,249,255,249,89,250,191,250, +36,251,129,251,214,251,35,252,101,252,151,252,186,252,210,252,222,252,224,252,218,252,208,252,197,252,193,252,203,252,227,252, +1,253,30,253,61,253,96,253,133,253,161,253,171,253,178,253,200,253,238,253,32,254,94,254,166,254,242,254,53,255,103,255, +136,255,158,255,172,255,183,255,198,255,226,255,7,0,45,0,76,0,100,0,120,0,141,0,169,0,202,0,236,0,12,1, +36,1,43,1,41,1,38,1,40,1,47,1,60,1,75,1,87,1,86,1,64,1,21,1,226,0,178,0,133,0,94,0, +65,0,45,0,28,0,8,0,244,255,223,255,206,255,195,255,194,255,207,255,233,255,8,0,37,0,66,0,99,0,135,0, +171,0,204,0,240,0,28,1,72,1,108,1,129,1,137,1,142,1,149,1,153,1,153,1,163,1,187,1,218,1,248,1, +20,2,50,2,85,2,123,2,162,2,212,2,20,3,91,3,166,3,253,3,92,4,168,4,213,4,247,4,34,5,86,5, +134,5,175,5,232,5,59,6,150,6,230,6,40,7,94,7,127,7,131,7,112,7,77,7,29,7,228,6,173,6,130,6, +97,6,63,6,27,6,251,5,222,5,193,5,163,5,142,5,129,5,120,5,118,5,130,5,149,5,155,5,140,5,121,5, +117,5,113,5,85,5,44,5,22,5,22,5,11,5,220,4,156,4,113,4,100,4,90,4,64,4,28,4,249,3,211,3, +154,3,70,3,234,2,163,2,125,2,105,2,82,2,45,2,249,1,189,1,122,1,46,1,230,0,187,0,174,0,163,0, +131,0,77,0,13,0,203,255,132,255,65,255,28,255,37,255,75,255,113,255,140,255,157,255,164,255,154,255,123,255,86,255, +55,255,25,255,247,254,212,254,187,254,177,254,185,254,210,254,250,254,46,255,99,255,146,255,185,255,211,255,227,255,244,255, +18,0,59,0,97,0,124,0,146,0,168,0,184,0,188,0,183,0,183,0,191,0,196,0,194,0,188,0,181,0,171,0, +157,0,144,0,131,0,108,0,64,0,7,0,209,255,162,255,120,255,87,255,79,255,101,255,134,255,159,255,175,255,193,255, +222,255,7,0,54,0,109,0,181,0,12,1,98,1,171,1,226,1,17,2,67,2,122,2,179,2,237,2,44,3,115,3, +190,3,255,3,49,4,89,4,119,4,133,4,121,4,82,4,29,4,235,3,185,3,126,3,61,3,6,3,222,2,185,2, +135,2,71,2,2,2,185,1,97,1,240,0,109,0,230,255,101,255,242,254,149,254,79,254,24,254,234,253,186,253,127,253, +56,253,232,252,150,252,75,252,7,252,201,251,146,251,98,251,51,251,1,251,203,250,148,250,96,250,45,250,249,249,199,249, +164,249,149,249,149,249,157,249,168,249,182,249,193,249,188,249,163,249,120,249,67,249,9,249,207,248,160,248,128,248,108,248, +98,248,94,248,88,248,77,248,63,248,45,248,22,248,252,247,223,247,197,247,174,247,149,247,126,247,109,247,98,247,87,247, +74,247,68,247,78,247,107,247,147,247,198,247,13,248,107,248,214,248,68,249,170,249,4,250,82,250,149,250,209,250,12,251, +81,251,167,251,11,252,112,252,203,252,25,253,88,253,135,253,163,253,172,253,173,253,174,253,174,253,170,253,169,253,178,253, +198,253,228,253,7,254,45,254,85,254,122,254,152,254,176,254,197,254,218,254,247,254,35,255,92,255,152,255,205,255,249,255, +29,0,61,0,85,0,99,0,112,0,132,0,163,0,199,0,238,0,20,1,56,1,80,1,82,1,64,1,35,1,3,1, +226,0,191,0,155,0,130,0,123,0,128,0,134,0,132,0,122,0,113,0,104,0,85,0,57,0,34,0,27,0,31,0, +42,0,55,0,69,0,81,0,87,0,88,0,87,0,85,0,89,0,108,0,145,0,191,0,239,0,27,1,63,1,86,1, +93,1,85,1,63,1,29,1,244,0,207,0,187,0,189,0,213,0,1,1,59,1,124,1,191,1,250,1,39,2,74,2, +112,2,165,2,231,2,45,3,122,3,216,3,58,4,135,4,182,4,222,4,23,5,93,5,155,5,211,5,26,6,113,6, +188,6,234,6,0,7,10,7,2,7,219,6,153,6,79,6,7,6,196,5,138,5,97,5,80,5,81,5,92,5,106,5, +114,5,118,5,123,5,132,5,139,5,140,5,148,5,174,5,208,5,227,5,226,5,224,5,238,5,254,5,253,5,240,5, +244,5,8,6,14,6,236,5,175,5,115,5,61,5,248,4,152,4,47,4,214,3,143,3,74,3,254,2,186,2,152,2, +157,2,178,2,187,2,175,2,151,2,127,2,99,2,59,2,17,2,253,1,3,2,9,2,241,1,184,1,114,1,49,1, +245,0,190,0,152,0,139,0,146,0,157,0,158,0,147,0,124,0,87,0,40,0,242,255,182,255,115,255,54,255,9,255, +239,254,229,254,236,254,5,255,46,255,94,255,138,255,171,255,191,255,199,255,198,255,194,255,194,255,201,255,208,255,215,255, +225,255,239,255,252,255,255,255,248,255,236,255,227,255,221,255,212,255,205,255,205,255,208,255,205,255,199,255,193,255,184,255, +166,255,138,255,117,255,113,255,117,255,119,255,129,255,158,255,200,255,236,255,3,0,27,0,66,0,113,0,157,0,202,0, +2,1,69,1,139,1,199,1,250,1,46,2,104,2,164,2,223,2,28,3,91,3,155,3,216,3,11,4,51,4,80,4, +102,4,114,4,110,4,92,4,72,4,59,4,48,4,26,4,249,3,212,3,175,3,132,3,73,3,0,3,178,2,95,2, +253,1,139,1,15,1,149,0,36,0,192,255,104,255,21,255,197,254,120,254,43,254,213,253,114,253,7,253,155,252,52,252, +210,251,114,251,20,251,191,250,111,250,31,250,207,249,133,249,66,249,4,249,202,248,148,248,102,248,60,248,21,248,241,247, +212,247,190,247,170,247,153,247,142,247,140,247,146,247,147,247,140,247,129,247,118,247,108,247,97,247,83,247,68,247,61,247, +57,247,48,247,34,247,20,247,7,247,253,246,246,246,243,246,246,246,0,247,13,247,26,247,42,247,67,247,102,247,146,247, +199,247,6,248,79,248,160,248,239,248,58,249,130,249,205,249,32,250,117,250,202,250,30,251,118,251,207,251,34,252,112,252, +183,252,250,252,56,253,108,253,145,253,169,253,187,253,206,253,228,253,251,253,23,254,57,254,98,254,141,254,185,254,230,254, +23,255,70,255,112,255,152,255,191,255,225,255,0,0,33,0,70,0,113,0,158,0,198,0,228,0,248,0,1,1,1,1, +251,0,242,0,233,0,229,0,231,0,230,0,221,0,199,0,167,0,136,0,107,0,78,0,51,0,29,0,10,0,253,255, +245,255,235,255,223,255,218,255,226,255,249,255,24,0,52,0,71,0,88,0,106,0,123,0,140,0,165,0,203,0,249,0, +39,1,80,1,115,1,146,1,174,1,199,1,221,1,234,1,231,1,210,1,176,1,142,1,117,1,102,1,91,1,88,1, +100,1,121,1,138,1,145,1,152,1,171,1,205,1,252,1,58,2,132,2,209,2,25,3,94,3,165,3,230,3,30,4, +90,4,170,4,10,5,102,5,178,5,248,5,65,6,131,6,170,6,187,6,195,6,196,6,182,6,151,6,112,6,77,6, +51,6,29,6,11,6,2,6,252,5,239,5,219,5,195,5,172,5,159,5,157,5,169,5,194,5,226,5,2,6,33,6, +61,6,81,6,94,6,109,6,133,6,160,6,179,6,180,6,169,6,150,6,119,6,69,6,4,6,190,5,123,5,59,5, +254,4,196,4,146,4,111,4,87,4,68,4,43,4,9,4,224,3,180,3,134,3,91,3,57,3,38,3,32,3,24,3, +5,3,233,2,195,2,147,2,91,2,38,2,1,2,239,1,228,1,217,1,209,1,198,1,175,1,128,1,58,1,233,0, +143,0,43,0,197,255,110,255,44,255,247,254,209,254,195,254,201,254,215,254,225,254,227,254,226,254,221,254,206,254,190,254, +192,254,212,254,241,254,18,255,57,255,101,255,139,255,162,255,171,255,177,255,184,255,187,255,191,255,200,255,211,255,218,255, +221,255,222,255,221,255,208,255,178,255,139,255,109,255,88,255,68,255,51,255,47,255,61,255,81,255,91,255,88,255,85,255, +97,255,124,255,159,255,203,255,6,0,78,0,151,0,210,0,0,1,42,1,91,1,146,1,200,1,1,2,65,2,133,2, +196,2,247,2,29,3,61,3,89,3,110,3,117,3,116,3,116,3,124,3,138,3,148,3,154,3,162,3,172,3,175,3, +164,3,137,3,101,3,59,3,6,3,194,2,116,2,42,2,231,1,172,1,117,1,67,1,21,1,234,0,181,0,108,0, +17,0,168,255,51,255,181,254,50,254,173,253,46,253,180,252,55,252,183,251,55,251,192,250,79,250,226,249,116,249,15,249, +182,248,102,248,23,248,204,247,138,247,83,247,37,247,254,246,225,246,210,246,203,246,194,246,182,246,171,246,163,246,160,246, +162,246,172,246,188,246,206,246,220,246,224,246,218,246,210,246,202,246,196,246,191,246,188,246,187,246,187,246,187,246,183,246, +180,246,186,246,206,246,240,246,27,247,73,247,124,247,181,247,236,247,27,248,73,248,124,248,182,248,243,248,49,249,115,249, +195,249,30,250,118,250,198,250,22,251,102,251,179,251,246,251,42,252,89,252,140,252,196,252,254,252,58,253,123,253,194,253, +18,254,103,254,187,254,10,255,84,255,156,255,232,255,55,0,127,0,192,0,255,0,65,1,131,1,190,1,237,1,16,2, +44,2,63,2,71,2,68,2,54,2,38,2,22,2,7,2,243,1,217,1,186,1,146,1,93,1,31,1,223,0,163,0, +108,0,55,0,13,0,242,255,229,255,221,255,212,255,208,255,213,255,227,255,243,255,1,0,13,0,30,0,59,0,97,0, +142,0,192,0,250,0,54,1,110,1,155,1,191,1,233,1,26,2,77,2,119,2,146,2,155,2,144,2,110,2,57,2, +253,1,197,1,141,1,88,1,45,1,15,1,251,0,239,0,237,0,245,0,9,1,42,1,89,1,141,1,192,1,248,1, +66,2,150,2,219,2,7,3,51,3,117,3,195,3,5,4,63,4,141,4,245,4,94,5,180,5,251,5,56,6,95,6, +106,6,94,6,65,6,24,6,231,5,187,5,153,5,129,5,112,5,104,5,107,5,116,5,131,5,156,5,188,5,217,5, +237,5,6,6,44,6,81,6,100,6,107,6,125,6,154,6,175,6,172,6,156,6,145,6,135,6,104,6,46,6,232,5, +171,5,121,5,65,5,254,4,186,4,128,4,79,4,28,4,229,3,172,3,128,3,108,3,107,3,112,3,119,3,129,3, +150,3,174,3,192,3,203,3,223,3,252,3,11,4,248,3,200,3,141,3,78,3,6,3,183,2,116,2,74,2,50,2, +29,2,254,1,203,1,131,1,44,1,205,0,105,0,1,0,154,255,64,255,249,254,191,254,141,254,100,254,74,254,67,254, +78,254,97,254,115,254,131,254,146,254,160,254,174,254,189,254,204,254,216,254,223,254,227,254,231,254,228,254,212,254,189,254, +175,254,180,254,199,254,220,254,242,254,9,255,30,255,43,255,47,255,45,255,40,255,36,255,39,255,53,255,71,255,86,255, +103,255,131,255,170,255,211,255,241,255,7,0,29,0,58,0,92,0,124,0,157,0,201,0,255,0,52,1,93,1,120,1, +147,1,177,1,209,1,243,1,30,2,90,2,160,2,226,2,29,3,82,3,126,3,149,3,145,3,121,3,91,3,60,3, +33,3,5,3,234,2,215,2,212,2,218,2,221,2,214,2,198,2,175,2,138,2,80,2,0,2,159,1,56,1,213,0, +130,0,66,0,10,0,209,255,148,255,84,255,8,255,167,254,50,254,178,253,50,253,177,252,40,252,156,251,13,251,125,250, +233,249,85,249,198,248,59,248,180,247,58,247,211,246,132,246,74,246,33,246,6,246,250,245,249,245,253,245,255,245,252,245, +250,245,254,245,5,246,14,246,29,246,54,246,85,246,116,246,142,246,164,246,183,246,198,246,207,246,212,246,217,246,217,246, +207,246,182,246,145,246,105,246,75,246,55,246,38,246,26,246,26,246,44,246,79,246,124,246,179,246,250,246,84,247,181,247, +17,248,95,248,164,248,235,248,59,249,144,249,231,249,67,250,169,250,23,251,134,251,241,251,87,252,185,252,21,253,108,253, +193,253,17,254,92,254,164,254,239,254,61,255,139,255,217,255,38,0,116,0,191,0,6,1,76,1,145,1,210,1,15,2, +75,2,131,2,183,2,230,2,15,3,47,3,67,3,73,3,66,3,45,3,15,3,240,2,210,2,175,2,134,2,94,2, +59,2,22,2,234,1,181,1,125,1,71,1,17,1,221,0,176,0,142,0,122,0,117,0,118,0,118,0,116,0,121,0, +145,0,189,0,247,0,58,1,135,1,223,1,56,2,138,2,209,2,14,3,67,3,113,3,148,3,168,3,174,3,173,3, +167,3,154,3,136,3,114,3,82,3,39,3,247,2,205,2,171,2,145,2,123,2,108,2,104,2,110,2,114,2,115,2, +128,2,166,2,227,2,34,3,80,3,118,3,168,3,239,3,61,4,140,4,235,4,102,5,237,5,95,6,178,6,245,6, +44,7,79,7,93,7,86,7,61,7,16,7,212,6,146,6,81,6,22,6,230,5,196,5,171,5,142,5,113,5,91,5, +74,5,51,5,25,5,15,5,29,5,48,5,52,5,51,5,68,5,103,5,130,5,137,5,141,5,162,5,190,5,194,5, +163,5,119,5,78,5,40,5,248,4,187,4,128,4,79,4,30,4,222,3,142,3,64,3,3,3,219,2,188,2,166,2, +162,2,183,2,216,2,246,2,10,3,31,3,65,3,105,3,127,3,121,3,94,3,57,3,17,3,230,2,190,2,163,2, +156,2,160,2,158,2,134,2,81,2,0,2,157,1,49,1,194,0,78,0,220,255,119,255,39,255,223,254,150,254,82,254, +36,254,21,254,28,254,45,254,69,254,103,254,140,254,176,254,214,254,250,254,26,255,50,255,68,255,87,255,108,255,119,255, +114,255,106,255,105,255,112,255,117,255,120,255,129,255,146,255,164,255,174,255,176,255,176,255,174,255,176,255,189,255,215,255, +243,255,11,0,35,0,75,0,129,0,176,0,208,0,242,0,36,1,95,1,144,1,174,1,201,1,233,1,8,2,19,2, +9,2,244,1,221,1,197,1,176,1,165,1,171,1,191,1,215,1,239,1,1,2,9,2,1,2,231,1,185,1,129,1, +72,1,25,1,245,0,217,0,195,0,181,0,175,0,169,0,157,0,132,0,96,0,53,0,5,0,197,255,117,255,26,255, +186,254,90,254,255,253,172,253,98,253,25,253,206,252,128,252,47,252,220,251,134,251,50,251,223,250,137,250,45,250,204,249, +101,249,242,248,117,248,250,247,140,247,38,247,194,246,104,246,35,246,241,245,202,245,168,245,145,245,139,245,148,245,160,245, +171,245,182,245,194,245,200,245,201,245,204,245,218,245,241,245,10,246,31,246,50,246,71,246,97,246,127,246,159,246,197,246, +235,246,7,247,22,247,24,247,13,247,248,246,225,246,206,246,197,246,201,246,220,246,254,246,48,247,111,247,188,247,27,248, +141,248,7,249,125,249,234,249,76,250,168,250,1,251,96,251,201,251,59,252,180,252,48,253,169,253,27,254,136,254,240,254, +80,255,166,255,247,255,69,0,142,0,202,0,251,0,42,1,90,1,132,1,170,1,211,1,5,2,62,2,123,2,179,2, +231,2,23,3,67,3,107,3,142,3,168,3,187,3,195,3,188,3,166,3,132,3,83,3,21,3,211,2,154,2,110,2, +74,2,38,2,0,2,222,1,187,1,152,1,118,1,88,1,57,1,22,1,243,0,211,0,190,0,185,0,196,0,222,0, +11,1,82,1,176,1,22,2,120,2,210,2,39,3,117,3,178,3,216,3,233,3,236,3,225,3,202,3,171,3,131,3, +88,3,59,3,54,3,65,3,82,3,96,3,100,3,91,3,74,3,56,3,46,3,49,3,72,3,114,3,163,3,197,3, +214,3,237,3,28,4,91,4,158,4,229,4,57,5,152,5,238,5,50,6,103,6,140,6,157,6,158,6,150,6,129,6, +89,6,31,6,227,5,175,5,123,5,64,5,13,5,237,4,219,4,200,4,178,4,156,4,134,4,111,4,94,4,94,4, +110,4,131,4,158,4,197,4,244,4,27,5,50,5,70,5,107,5,162,5,211,5,230,5,221,5,196,5,161,5,111,5, +38,5,210,4,136,4,74,4,11,4,192,3,113,3,47,3,5,3,231,2,200,2,173,2,160,2,155,2,145,2,115,2, +78,2,60,2,67,2,79,2,78,2,66,2,57,2,49,2,34,2,11,2,248,1,245,1,255,1,12,2,16,2,0,2, +219,1,160,1,87,1,8,1,177,0,81,0,243,255,162,255,98,255,42,255,247,254,206,254,180,254,172,254,172,254,173,254, +170,254,168,254,173,254,192,254,216,254,236,254,248,254,2,255,22,255,56,255,92,255,118,255,139,255,168,255,209,255,251,255, +25,0,47,0,76,0,114,0,144,0,156,0,156,0,156,0,160,0,169,0,186,0,212,0,244,0,25,1,72,1,126,1, +170,1,195,1,209,1,227,1,253,1,17,2,23,2,25,2,33,2,42,2,38,2,20,2,254,1,241,1,234,1,225,1, +211,1,195,1,179,1,162,1,136,1,98,1,53,1,11,1,225,0,173,0,108,0,39,0,233,255,182,255,130,255,75,255, +26,255,245,254,210,254,166,254,111,254,50,254,241,253,172,253,96,253,15,253,186,252,97,252,13,252,201,251,149,251,105,251, +64,251,26,251,250,250,220,250,185,250,140,250,86,250,24,250,214,249,142,249,65,249,237,248,145,248,48,248,211,247,131,247, +56,247,240,246,173,246,119,246,78,246,41,246,254,245,209,245,170,245,138,245,107,245,79,245,58,245,47,245,40,245,32,245, +21,245,16,245,20,245,32,245,55,245,88,245,126,245,165,245,200,245,238,245,26,246,71,246,111,246,151,246,194,246,237,246, +18,247,51,247,85,247,124,247,168,247,218,247,23,248,100,248,191,248,33,249,138,249,249,249,110,250,230,250,91,251,205,251, +64,252,185,252,53,253,171,253,24,254,131,254,243,254,100,255,212,255,65,0,168,0,2,1,73,1,127,1,171,1,213,1, +0,2,45,2,93,2,139,2,178,2,212,2,245,2,20,3,52,3,84,3,113,3,136,3,153,3,166,3,178,3,191,3, +202,3,205,3,204,3,198,3,180,3,146,3,100,3,55,3,16,3,242,2,221,2,208,2,195,2,179,2,160,2,137,2, +111,2,89,2,79,2,88,2,116,2,158,2,207,2,5,3,55,3,95,3,120,3,137,3,154,3,176,3,202,3,226,3, +243,3,246,3,240,3,228,3,216,3,208,3,210,3,218,3,226,3,235,3,248,3,8,4,27,4,50,4,76,4,105,4, +138,4,175,4,214,4,246,4,3,5,254,4,255,4,19,5,51,5,84,5,127,5,194,5,18,6,83,6,125,6,156,6, +180,6,187,6,171,6,140,6,101,6,46,6,233,5,167,5,115,5,71,5,31,5,1,5,240,4,230,4,221,4,219,4, +228,4,240,4,248,4,0,5,16,5,29,5,29,5,25,5,38,5,75,5,120,5,152,5,170,5,191,5,216,5,231,5, +224,5,200,5,172,5,151,5,128,5,88,5,33,5,234,4,182,4,123,4,43,4,198,3,99,3,17,3,208,2,153,2, +109,2,83,2,78,2,85,2,86,2,76,2,64,2,56,2,44,2,17,2,232,1,186,1,148,1,118,1,93,1,78,1, +84,1,113,1,151,1,177,1,178,1,154,1,110,1,48,1,230,0,148,0,67,0,248,255,179,255,110,255,42,255,234,254, +174,254,122,254,87,254,68,254,66,254,78,254,98,254,122,254,148,254,179,254,214,254,249,254,22,255,50,255,90,255,135,255, +171,255,194,255,217,255,255,255,43,0,75,0,94,0,118,0,154,0,188,0,207,0,210,0,205,0,195,0,182,0,167,0, +151,0,131,0,111,0,106,0,120,0,142,0,158,0,169,0,189,0,224,0,5,1,30,1,47,1,62,1,75,1,78,1, +62,1,30,1,244,0,198,0,150,0,106,0,73,0,53,0,37,0,16,0,237,255,187,255,127,255,59,255,239,254,151,254, +51,254,209,253,126,253,58,253,254,252,197,252,145,252,99,252,61,252,25,252,244,251,206,251,173,251,138,251,91,251,29,251, +218,250,153,250,98,250,55,250,23,250,3,250,248,249,240,249,227,249,202,249,167,249,126,249,80,249,31,249,234,248,179,248, +123,248,59,248,242,247,165,247,93,247,24,247,213,246,146,246,87,246,43,246,17,246,0,246,248,245,245,245,242,245,234,245, +219,245,198,245,174,245,154,245,137,245,120,245,103,245,91,245,90,245,105,245,134,245,171,245,217,245,20,246,92,246,169,246, +245,246,61,247,125,247,180,247,230,247,23,248,65,248,99,248,132,248,175,248,232,248,51,249,146,249,2,250,124,250,251,250, +122,251,254,251,129,252,248,252,95,253,188,253,25,254,123,254,222,254,67,255,173,255,31,0,148,0,2,1,100,1,184,1, +5,2,79,2,146,2,203,2,252,2,36,3,70,3,97,3,114,3,119,3,116,3,109,3,100,3,91,3,85,3,81,3, +84,3,96,3,108,3,116,3,122,3,126,3,124,3,116,3,103,3,88,3,69,3,41,3,6,3,225,2,194,2,170,2, +157,2,165,2,197,2,245,2,44,3,101,3,156,3,205,3,243,3,12,4,22,4,20,4,7,4,238,3,206,3,172,3, +143,3,125,3,117,3,114,3,111,3,117,3,139,3,177,3,219,3,2,4,41,4,82,4,122,4,155,4,181,4,205,4, +236,4,21,5,57,5,74,5,72,5,74,5,96,5,126,5,147,5,163,5,193,5,239,5,27,6,53,6,66,6,72,6, +69,6,52,6,29,6,5,6,234,5,200,5,165,5,139,5,122,5,106,5,92,5,86,5,89,5,93,5,98,5,110,5, +128,5,145,5,165,5,196,5,232,5,4,6,17,6,27,6,45,6,63,6,61,6,44,6,35,6,44,6,52,6,38,6, +2,6,218,5,185,5,154,5,118,5,80,5,48,5,24,5,4,5,232,4,194,4,155,4,127,4,110,4,97,4,82,4, +64,4,46,4,22,4,235,3,178,3,126,3,85,3,45,3,242,2,167,2,97,2,36,2,227,1,148,1,67,1,5,1, +224,0,198,0,165,0,120,0,71,0,21,0,223,255,169,255,119,255,72,255,28,255,243,254,209,254,179,254,145,254,114,254, +99,254,101,254,108,254,120,254,138,254,159,254,172,254,177,254,186,254,207,254,231,254,244,254,251,254,12,255,36,255,50,255, +48,255,48,255,63,255,90,255,117,255,141,255,172,255,210,255,240,255,0,0,11,0,27,0,49,0,73,0,91,0,97,0, +88,0,77,0,75,0,87,0,101,0,105,0,103,0,104,0,107,0,104,0,90,0,70,0,55,0,47,0,40,0,26,0, +6,0,236,255,206,255,174,255,140,255,106,255,76,255,50,255,22,255,245,254,202,254,151,254,95,254,33,254,222,253,149,253, +74,253,6,253,201,252,141,252,79,252,18,252,218,251,168,251,122,251,82,251,45,251,9,251,227,250,186,250,139,250,80,250, +11,250,202,249,153,249,117,249,81,249,44,249,7,249,232,248,205,248,183,248,162,248,137,248,103,248,63,248,22,248,235,247, +180,247,114,247,48,247,242,246,190,246,145,246,98,246,51,246,14,246,252,245,247,245,244,245,236,245,232,245,241,245,5,246, +21,246,27,246,29,246,34,246,40,246,42,246,34,246,21,246,11,246,13,246,29,246,53,246,82,246,121,246,175,246,235,246, +40,247,99,247,158,247,214,247,10,248,57,248,100,248,143,248,191,248,249,248,64,249,151,249,255,249,122,250,255,250,137,251, +19,252,162,252,55,253,205,253,91,254,226,254,103,255,234,255,100,0,216,0,68,1,167,1,3,2,91,2,173,2,243,2, +44,3,93,3,138,3,183,3,224,3,3,4,35,4,61,4,75,4,75,4,64,4,48,4,32,4,16,4,3,4,249,3, +238,3,223,3,210,3,208,3,214,3,223,3,234,3,243,3,248,3,245,3,236,3,224,3,214,3,209,3,211,3,227,3, +1,4,37,4,70,4,103,4,138,4,171,4,194,4,204,4,201,4,188,4,170,4,151,4,130,4,100,4,57,4,10,4, +228,3,207,3,205,3,217,3,237,3,11,4,52,4,100,4,146,4,182,4,210,4,244,4,39,5,95,5,130,5,131,5, +117,5,116,5,130,5,142,5,153,5,179,5,222,5,8,6,33,6,45,6,52,6,47,6,24,6,248,5,218,5,178,5, +112,5,33,5,224,4,180,4,141,4,97,4,58,4,35,4,22,4,15,4,19,4,28,4,36,4,54,4,94,4,145,4, +182,4,202,4,230,4,25,5,81,5,115,5,134,5,166,5,217,5,7,6,25,6,24,6,24,6,36,6,47,6,38,6, +9,6,235,5,213,5,189,5,151,5,101,5,61,5,45,5,45,5,46,5,48,5,58,5,77,5,88,5,72,5,29,5, +238,4,200,4,158,4,90,4,253,3,159,3,79,3,3,3,171,2,81,2,6,2,209,1,167,1,123,1,74,1,17,1, +209,0,141,0,73,0,10,0,205,255,148,255,99,255,59,255,27,255,252,254,218,254,188,254,172,254,176,254,194,254,220,254, +251,254,27,255,59,255,94,255,132,255,161,255,171,255,170,255,183,255,210,255,227,255,221,255,215,255,232,255,10,0,33,0, +33,0,29,0,37,0,51,0,51,0,36,0,17,0,6,0,6,0,6,0,248,255,219,255,189,255,177,255,182,255,190,255, +187,255,175,255,166,255,160,255,149,255,128,255,106,255,94,255,95,255,94,255,74,255,41,255,12,255,246,254,229,254,219,254, +220,254,228,254,232,254,225,254,208,254,183,254,146,254,97,254,43,254,243,253,185,253,118,253,45,253,229,252,166,252,111,252, +59,252,6,252,207,251,150,251,94,251,40,251,241,250,184,250,128,250,74,250,15,250,201,249,128,249,69,249,27,249,250,248, +217,248,184,248,155,248,130,248,99,248,59,248,16,248,229,247,184,247,135,247,90,247,51,247,17,247,238,246,202,246,166,246, +137,246,120,246,111,246,108,246,112,246,123,246,138,246,148,246,149,246,149,246,154,246,164,246,172,246,176,246,178,246,180,246, +178,246,168,246,152,246,140,246,139,246,149,246,168,246,187,246,206,246,228,246,254,246,19,247,34,247,46,247,60,247,75,247, +92,247,119,247,165,247,231,247,56,248,147,248,247,248,100,249,224,249,104,250,246,250,128,251,7,252,145,252,28,253,160,253, +30,254,157,254,34,255,169,255,40,0,162,0,29,1,151,1,12,2,116,2,202,2,15,3,70,3,117,3,157,3,185,3, +204,3,220,3,235,3,244,3,244,3,238,3,230,3,224,3,226,3,236,3,1,4,33,4,67,4,96,4,118,4,134,4, +150,4,168,4,187,4,203,4,217,4,231,4,239,4,243,4,252,4,18,5,47,5,71,5,81,5,77,5,61,5,32,5, +244,4,190,4,132,4,78,4,35,4,252,3,209,3,161,3,116,3,79,3,56,3,49,3,56,3,81,3,125,3,174,3, +215,3,4,4,73,4,167,4,252,4,47,5,75,5,113,5,166,5,213,5,248,5,38,6,113,6,194,6,249,6,21,7, +36,7,37,7,9,7,213,6,155,6,89,6,0,6,149,5,44,5,213,4,139,4,76,4,25,4,240,3,199,3,161,3, +138,3,124,3,101,3,69,3,51,3,61,3,82,3,96,3,116,3,171,3,250,3,60,4,93,4,116,4,154,4,205,4, +246,4,10,5,33,5,78,5,133,5,174,5,188,5,188,5,190,5,199,5,206,5,198,5,180,5,167,5,167,5,180,5, +199,5,223,5,8,6,61,6,103,6,119,6,113,6,103,6,88,6,48,6,234,5,152,5,81,5,9,5,175,4,75,4, +243,3,170,3,95,3,9,3,170,2,77,2,243,1,153,1,62,1,227,0,136,0,47,0,226,255,168,255,127,255,93,255, +66,255,52,255,55,255,70,255,91,255,121,255,161,255,206,255,248,255,28,0,62,0,91,0,110,0,119,0,130,0,154,0, +182,0,195,0,194,0,201,0,221,0,236,0,231,0,220,0,216,0,212,0,195,0,161,0,123,0,92,0,68,0,48,0, +30,0,11,0,242,255,214,255,190,255,166,255,136,255,103,255,81,255,70,255,55,255,23,255,236,254,202,254,177,254,146,254, +103,254,56,254,14,254,233,253,199,253,169,253,147,253,132,253,116,253,92,253,66,253,39,253,8,253,227,252,185,252,139,252, +86,252,23,252,209,251,141,251,80,251,27,251,234,250,188,250,146,250,107,250,70,250,28,250,230,249,169,249,106,249,48,249, +244,248,174,248,98,248,35,248,250,247,225,247,205,247,190,247,183,247,182,247,175,247,154,247,128,247,104,247,81,247,47,247, +1,247,210,246,173,246,147,246,124,246,102,246,79,246,60,246,49,246,46,246,48,246,57,246,77,246,106,246,139,246,173,246, +207,246,244,246,29,247,65,247,95,247,123,247,150,247,176,247,198,247,215,247,228,247,246,247,12,248,33,248,48,248,60,248, +75,248,98,248,125,248,153,248,177,248,200,248,224,248,255,248,46,249,112,249,195,249,33,250,132,250,232,250,78,251,185,251, +42,252,159,252,25,253,157,253,42,254,182,254,51,255,163,255,19,0,134,0,242,0,82,1,168,1,248,1,66,2,133,2, +192,2,237,2,5,3,9,3,3,3,250,2,235,2,215,2,199,2,194,2,200,2,213,2,231,2,1,3,33,3,71,3, +110,3,149,3,192,3,243,3,49,4,114,4,178,4,243,4,51,5,111,5,167,5,221,5,14,6,51,6,66,6,59,6, +31,6,236,5,161,5,74,5,243,4,168,4,108,4,57,4,12,4,222,3,177,3,135,3,104,3,85,3,81,3,95,3, +122,3,148,3,176,3,226,3,43,4,115,4,164,4,203,4,2,5,78,5,154,5,223,5,47,6,152,6,8,7,105,7, +174,7,219,7,247,7,7,8,9,8,244,7,196,7,118,7,15,7,157,6,44,6,199,5,115,5,49,5,247,4,193,4, +146,4,110,4,77,4,39,4,7,4,252,3,7,4,21,4,26,4,32,4,58,4,104,4,144,4,160,4,161,4,169,4, +189,4,206,4,206,4,197,4,202,4,230,4,4,5,2,5,223,4,184,4,166,4,163,4,150,4,120,4,94,4,89,4, +101,4,120,4,145,4,185,4,240,4,42,5,90,5,123,5,141,5,144,5,129,5,97,5,56,5,19,5,241,4,201,4, +151,4,104,4,66,4,28,4,229,3,152,3,63,3,234,2,152,2,70,2,243,1,159,1,71,1,238,0,148,0,52,0, +207,255,118,255,55,255,20,255,4,255,0,255,9,255,34,255,63,255,86,255,107,255,141,255,195,255,250,255,32,0,54,0, +80,0,115,0,140,0,146,0,150,0,170,0,204,0,233,0,249,0,3,1,10,1,3,1,237,0,219,0,217,0,224,0, +226,0,221,0,216,0,213,0,205,0,189,0,161,0,117,0,66,0,29,0,14,0,9,0,250,255,223,255,195,255,166,255, +118,255,39,255,202,254,118,254,53,254,0,254,208,253,168,253,144,253,129,253,103,253,62,253,18,253,240,252,211,252,177,252, +125,252,60,252,250,251,189,251,130,251,71,251,15,251,222,250,182,250,151,250,123,250,91,250,52,250,253,249,177,249,87,249, +4,249,189,248,122,248,54,248,251,247,210,247,173,247,119,247,47,247,239,246,201,246,184,246,172,246,158,246,148,246,142,246, +134,246,118,246,92,246,66,246,47,246,38,246,33,246,27,246,22,246,20,246,20,246,17,246,12,246,11,246,20,246,36,246, +54,246,76,246,107,246,143,246,174,246,188,246,187,246,182,246,183,246,195,246,212,246,234,246,7,247,42,247,80,247,119,247, +159,247,203,247,253,247,52,248,111,248,168,248,222,248,20,249,77,249,134,249,186,249,237,249,42,250,118,250,211,250,62,251, +186,251,66,252,202,252,72,253,187,253,40,254,148,254,0,255,107,255,212,255,56,0,146,0,224,0,35,1,96,1,156,1, +215,1,14,2,61,2,97,2,124,2,141,2,149,2,152,2,155,2,165,2,184,2,208,2,230,2,254,2,28,3,63,3, +101,3,137,3,176,3,225,3,30,4,100,4,175,4,4,5,98,5,192,5,17,6,72,6,98,6,101,6,88,6,57,6, +4,6,193,5,127,5,69,5,15,5,218,4,167,4,124,4,91,4,60,4,27,4,252,3,228,3,210,3,200,3,196,3, +198,3,214,3,252,3,54,4,114,4,164,4,215,4,28,5,115,5,207,5,47,6,157,6,26,7,147,7,248,7,73,8, +136,8,175,8,182,8,161,8,123,8,66,8,243,7,147,7,50,7,217,6,137,6,60,6,242,5,173,5,109,5,52,5, +3,5,220,4,189,4,170,4,166,4,173,4,179,4,188,4,214,4,4,5,55,5,93,5,112,5,126,5,142,5,155,5, +154,5,144,5,139,5,144,5,145,5,126,5,83,5,29,5,230,4,177,4,124,4,72,4,28,4,251,3,235,3,236,3, +2,4,44,4,97,4,152,4,202,4,241,4,9,5,18,5,12,5,250,4,227,4,209,4,198,4,183,4,154,4,121,4, +93,4,68,4,29,4,226,3,153,3,78,3,2,3,174,2,85,2,252,1,161,1,68,1,231,0,140,0,55,0,232,255, +166,255,119,255,94,255,86,255,92,255,114,255,151,255,196,255,243,255,44,0,111,0,173,0,215,0,241,0,9,1,32,1, +44,1,40,1,37,1,48,1,63,1,64,1,52,1,43,1,35,1,13,1,233,0,200,0,181,0,169,0,157,0,141,0, +127,0,115,0,104,0,88,0,61,0,16,0,220,255,180,255,162,255,152,255,139,255,123,255,108,255,85,255,38,255,226,254, +149,254,77,254,11,254,208,253,160,253,127,253,107,253,88,253,64,253,36,253,7,253,239,252,215,252,183,252,139,252,85,252, +28,252,230,251,183,251,139,251,97,251,60,251,29,251,3,251,230,250,191,250,137,250,67,250,237,249,140,249,42,249,209,248, +129,248,53,248,236,247,169,247,105,247,33,247,205,246,122,246,61,246,28,246,7,246,238,245,212,245,194,245,181,245,163,245, +137,245,110,245,94,245,89,245,87,245,80,245,72,245,67,245,67,245,73,245,83,245,96,245,115,245,143,245,177,245,210,245, +242,245,19,246,49,246,66,246,69,246,71,246,80,246,98,246,122,246,152,246,193,246,241,246,29,247,70,247,114,247,166,247, +227,247,39,248,110,248,179,248,245,248,53,249,113,249,165,249,211,249,3,250,64,250,142,250,236,250,86,251,202,251,71,252, +199,252,66,253,183,253,37,254,145,254,254,254,114,255,231,255,88,0,191,0,26,1,105,1,177,1,248,1,66,2,139,2, +207,2,10,3,57,3,93,3,118,3,135,3,145,3,155,3,169,3,188,3,207,3,221,3,237,3,1,4,20,4,33,4, +47,4,74,4,116,4,168,4,227,4,43,5,128,5,212,5,22,6,60,6,73,6,67,6,41,6,253,5,199,5,144,5, +95,5,51,5,8,5,220,4,181,4,151,4,129,4,113,4,101,4,91,4,82,4,75,4,72,4,70,4,64,4,58,4, +73,4,118,4,171,4,210,4,241,4,39,5,122,5,213,5,40,6,126,6,232,6,90,7,191,7,14,8,75,8,114,8, +121,8,105,8,82,8,48,8,245,7,162,7,75,7,254,6,183,6,115,6,53,6,0,6,204,5,154,5,113,5,87,5, +64,5,38,5,19,5,19,5,28,5,34,5,49,5,90,5,155,5,216,5,253,5,20,6,46,6,79,6,104,6,116,6, +129,6,152,6,180,6,193,6,176,6,135,6,84,6,36,6,247,5,198,5,145,5,94,5,60,5,45,5,44,5,51,5, +71,5,107,5,142,5,153,5,136,5,112,5,95,5,83,5,66,5,46,5,30,5,14,5,241,4,195,4,145,4,105,4, +69,4,27,4,229,3,162,3,81,3,241,2,137,2,36,2,198,1,108,1,18,1,184,0,97,0,14,0,190,255,120,255, +63,255,25,255,6,255,8,255,30,255,69,255,116,255,164,255,213,255,8,0,48,0,69,0,76,0,91,0,120,0,152,0, +174,0,186,0,196,0,202,0,196,0,173,0,144,0,113,0,79,0,35,0,242,255,195,255,157,255,121,255,80,255,35,255, +247,254,205,254,163,254,122,254,88,254,66,254,59,254,59,254,60,254,58,254,48,254,26,254,249,253,215,253,180,253,138,253, +87,253,34,253,248,252,216,252,186,252,150,252,114,252,82,252,47,252,255,251,196,251,138,251,87,251,34,251,229,250,163,250, +101,250,45,250,249,249,202,249,165,249,136,249,111,249,80,249,41,249,250,248,196,248,139,248,83,248,29,248,236,247,192,247, +148,247,104,247,65,247,36,247,14,247,245,246,214,246,185,246,160,246,140,246,121,246,104,246,87,246,65,246,35,246,2,246, +231,245,207,245,181,245,154,245,137,245,135,245,145,245,156,245,165,245,181,245,210,245,249,245,32,246,67,246,99,246,129,246, +150,246,161,246,171,246,185,246,203,246,220,246,239,246,11,247,50,247,98,247,153,247,215,247,23,248,86,248,148,248,212,248, +24,249,90,249,152,249,214,249,22,250,84,250,145,250,206,250,14,251,81,251,150,251,223,251,48,252,141,252,245,252,100,253, +211,253,70,254,185,254,40,255,141,255,235,255,77,0,185,0,38,1,138,1,228,1,59,2,146,2,226,2,39,3,97,3, +150,3,200,3,243,3,12,4,19,4,24,4,36,4,54,4,71,4,87,4,105,4,126,4,151,4,175,4,197,4,223,4, +1,5,45,5,97,5,154,5,209,5,2,6,43,6,66,6,67,6,51,6,28,6,252,5,215,5,181,5,160,5,146,5, +126,5,94,5,61,5,37,5,21,5,9,5,1,5,255,4,250,4,237,4,219,4,200,4,183,4,175,4,186,4,212,4, +237,4,255,4,24,5,79,5,156,5,235,5,52,6,136,6,235,6,70,7,139,7,195,7,245,7,18,8,15,8,247,7, +214,7,162,7,87,7,7,7,196,6,131,6,51,6,215,5,128,5,43,5,206,4,115,4,45,4,1,4,220,3,185,3, +166,3,169,3,186,3,210,3,248,3,42,4,93,4,139,4,182,4,229,4,27,5,84,5,139,5,185,5,221,5,251,5, +16,6,23,6,16,6,9,6,9,6,9,6,248,5,214,5,173,5,136,5,108,5,92,5,86,5,86,5,91,5,96,5, +93,5,70,5,33,5,2,5,244,4,237,4,229,4,223,4,223,4,226,4,224,4,212,4,192,4,168,4,143,4,114,4, +78,4,29,4,223,3,146,3,57,3,215,2,117,2,28,2,201,1,116,1,33,1,219,0,158,0,96,0,36,0,248,255, +229,255,230,255,243,255,9,0,37,0,64,0,89,0,114,0,144,0,169,0,186,0,200,0,219,0,238,0,251,0,3,1, +11,1,15,1,4,1,229,0,187,0,145,0,101,0,50,0,254,255,209,255,164,255,105,255,30,255,209,254,143,254,87,254, +31,254,234,253,193,253,168,253,147,253,124,253,103,253,85,253,69,253,52,253,32,253,0,253,211,252,161,252,119,252,83,252, +47,252,10,252,231,251,199,251,168,251,138,251,112,251,82,251,41,251,241,250,174,250,102,250,30,250,217,249,156,249,103,249, +57,249,8,249,206,248,140,248,71,248,8,248,206,247,152,247,100,247,57,247,25,247,251,246,216,246,175,246,137,246,108,246, +89,246,78,246,74,246,75,246,77,246,80,246,86,246,90,246,85,246,69,246,52,246,44,246,44,246,42,246,34,246,24,246, +19,246,17,246,9,246,252,245,244,245,242,245,247,245,4,246,27,246,56,246,83,246,109,246,137,246,165,246,186,246,201,246, +223,246,5,247,53,247,99,247,141,247,187,247,241,247,48,248,122,248,206,248,43,249,141,249,235,249,66,250,142,250,204,250, +5,251,67,251,137,251,208,251,16,252,72,252,125,252,182,252,242,252,48,253,109,253,174,253,244,253,59,254,130,254,204,254, +34,255,133,255,237,255,83,0,183,0,24,1,113,1,200,1,35,2,127,2,209,2,22,3,82,3,135,3,183,3,227,3, +9,4,42,4,71,4,95,4,119,4,140,4,153,4,161,4,177,4,212,4,2,5,49,5,90,5,124,5,160,5,198,5, +229,5,247,5,255,5,2,6,2,6,247,5,222,5,188,5,155,5,126,5,99,5,73,5,55,5,50,5,63,5,88,5, +119,5,149,5,180,5,213,5,242,5,9,6,28,6,47,6,70,6,91,6,106,6,116,6,131,6,152,6,167,6,180,6, +210,6,12,7,81,7,143,7,199,7,6,8,63,8,89,8,82,8,62,8,36,8,252,7,196,7,132,7,61,7,235,6, +145,6,59,6,232,5,141,5,47,5,228,4,180,4,137,4,84,4,34,4,2,4,238,3,221,3,208,3,208,3,221,3, +242,3,11,4,39,4,76,4,122,4,172,4,210,4,230,4,242,4,7,5,34,5,53,5,65,5,83,5,106,5,116,5, +105,5,78,5,50,5,32,5,31,5,37,5,41,5,42,5,46,5,52,5,45,5,16,5,228,4,188,4,156,4,120,4, +75,4,29,4,248,3,220,3,196,3,180,3,177,3,187,3,198,3,204,3,202,3,190,3,160,3,115,3,65,3,17,3, +222,2,163,2,98,2,30,2,216,1,141,1,69,1,8,1,210,0,158,0,120,0,105,0,106,0,99,0,81,0,69,0, +76,0,93,0,101,0,103,0,111,0,128,0,145,0,159,0,170,0,177,0,180,0,177,0,169,0,161,0,157,0,149,0, +127,0,87,0,34,0,228,255,162,255,99,255,37,255,232,254,172,254,110,254,45,254,236,253,170,253,104,253,42,253,246,252, +197,252,148,252,106,252,74,252,48,252,25,252,11,252,5,252,255,251,242,251,221,251,197,251,172,251,149,251,132,251,117,251, +92,251,48,251,244,250,173,250,90,250,4,250,179,249,102,249,19,249,185,248,96,248,15,248,192,247,114,247,44,247,242,246, +190,246,139,246,95,246,61,246,30,246,248,245,203,245,157,245,116,245,87,245,76,245,88,245,117,245,149,245,176,245,195,245, +206,245,208,245,208,245,210,245,216,245,221,245,223,245,220,245,210,245,195,245,177,245,160,245,151,245,156,245,171,245,191,245, +220,245,3,246,50,246,103,246,158,246,214,246,15,247,68,247,115,247,156,247,201,247,253,247,59,248,128,248,198,248,20,249, +110,249,210,249,59,250,167,250,27,251,146,251,2,252,102,252,188,252,5,253,69,253,131,253,195,253,4,254,65,254,123,254, +179,254,235,254,34,255,86,255,140,255,196,255,253,255,49,0,98,0,149,0,209,0,25,1,104,1,182,1,252,1,57,2, +113,2,166,2,217,2,10,3,61,3,115,3,173,3,230,3,18,4,45,4,65,4,87,4,109,4,128,4,150,4,175,4, +202,4,231,4,11,5,58,5,112,5,162,5,202,5,232,5,246,5,240,5,222,5,203,5,185,5,159,5,125,5,89,5, +55,5,26,5,7,5,5,5,29,5,79,5,140,5,192,5,228,5,250,5,12,6,28,6,47,6,73,6,110,6,148,6, +163,6,158,6,159,6,177,6,192,6,196,6,209,6,251,6,51,7,97,7,140,7,194,7,250,7,27,8,41,8,45,8, +29,8,229,7,149,7,80,7,34,7,244,6,184,6,123,6,65,6,255,5,178,5,106,5,47,5,248,4,194,4,157,4, +142,4,135,4,128,4,129,4,145,4,171,4,199,4,225,4,248,4,9,5,20,5,30,5,38,5,39,5,36,5,37,5, +38,5,30,5,12,5,255,4,254,4,3,5,1,5,238,4,208,4,187,4,189,4,201,4,208,4,208,4,207,4,203,4, +186,4,150,4,103,4,55,4,3,4,201,3,144,3,94,3,46,3,250,2,203,2,168,2,145,2,126,2,108,2,100,2, +102,2,106,2,97,2,70,2,35,2,2,2,224,1,180,1,126,1,72,1,28,1,241,0,196,0,154,0,123,0,99,0, +80,0,73,0,79,0,84,0,81,0,81,0,103,0,141,0,172,0,185,0,191,0,196,0,195,0,181,0,157,0,136,0, +120,0,102,0,78,0,56,0,39,0,20,0,247,255,209,255,165,255,115,255,59,255,0,255,202,254,162,254,125,254,77,254, +15,254,208,253,150,253,94,253,41,253,249,252,202,252,156,252,112,252,66,252,10,252,201,251,136,251,80,251,34,251,246,250, +208,250,175,250,141,250,100,250,56,250,16,250,226,249,167,249,103,249,39,249,227,248,151,248,77,248,14,248,209,247,137,247, +55,247,231,246,161,246,97,246,39,246,244,245,197,245,149,245,98,245,48,245,255,244,210,244,174,244,152,244,140,244,137,244, +142,244,156,244,171,244,181,244,186,244,192,244,198,244,203,244,209,244,222,244,243,244,15,245,44,245,68,245,82,245,86,245, +82,245,80,245,91,245,116,245,147,245,184,245,231,245,29,246,82,246,133,246,191,246,5,247,80,247,146,247,207,247,17,248, +93,248,174,248,2,249,95,249,198,249,50,250,159,250,8,251,104,251,191,251,18,252,101,252,184,252,7,253,85,253,166,253, +254,253,84,254,164,254,241,254,57,255,114,255,153,255,183,255,215,255,252,255,35,0,80,0,134,0,194,0,0,1,60,1, +117,1,173,1,230,1,34,2,97,2,153,2,197,2,235,2,21,3,72,3,125,3,179,3,236,3,42,4,98,4,137,4, +164,4,188,4,217,4,251,4,34,5,79,5,129,5,179,5,222,5,254,5,21,6,33,6,34,6,28,6,18,6,9,6, +3,6,0,6,253,5,251,5,253,5,13,6,49,6,91,6,119,6,129,6,135,6,146,6,155,6,161,6,174,6,199,6, +236,6,22,7,61,7,91,7,120,7,163,7,221,7,18,8,50,8,60,8,64,8,64,8,55,8,44,8,46,8,56,8, +55,8,36,8,9,8,230,7,181,7,126,7,83,7,48,7,4,7,204,6,149,6,99,6,36,6,218,5,155,5,117,5, +92,5,66,5,46,5,42,5,49,5,59,5,69,5,81,5,88,5,89,5,92,5,103,5,120,5,142,5,173,5,210,5, +239,5,250,5,247,5,240,5,232,5,227,5,227,5,228,5,218,5,185,5,136,5,89,5,54,5,28,5,6,5,248,4, +239,4,229,4,211,4,179,4,129,4,72,4,22,4,241,3,217,3,198,3,174,3,143,3,107,3,68,3,23,3,227,2, +174,2,128,2,94,2,65,2,37,2,10,2,243,1,221,1,198,1,178,1,160,1,137,1,104,1,59,1,4,1,204,0, +155,0,115,0,80,0,49,0,26,0,9,0,251,255,237,255,232,255,250,255,33,0,79,0,124,0,170,0,217,0,254,0, +20,1,32,1,50,1,76,1,99,1,108,1,105,1,100,1,94,1,78,1,49,1,9,1,220,0,168,0,105,0,40,0, +236,255,173,255,102,255,28,255,212,254,137,254,53,254,224,253,148,253,76,253,3,253,184,252,114,252,46,252,225,251,137,251, +58,251,253,250,206,250,167,250,132,250,99,250,64,250,24,250,232,249,180,249,127,249,69,249,253,248,169,248,87,248,17,248, +212,247,153,247,93,247,36,247,236,246,171,246,94,246,12,246,188,245,107,245,26,245,205,244,136,244,76,244,29,244,251,243, +222,243,195,243,178,243,179,243,189,243,197,243,201,243,212,243,232,243,253,243,11,244,19,244,30,244,50,244,74,244,96,244, +113,244,131,244,156,244,188,244,222,244,4,245,51,245,113,245,186,245,4,246,77,246,149,246,220,246,29,247,89,247,155,247, +234,247,63,248,147,248,227,248,48,249,124,249,199,249,19,250,98,250,185,250,29,251,139,251,250,251,94,252,183,252,8,253, +83,253,154,253,222,253,36,254,104,254,169,254,225,254,14,255,53,255,94,255,144,255,204,255,12,0,75,0,134,0,188,0, +235,0,22,1,66,1,112,1,156,1,195,1,238,1,38,2,102,2,169,2,236,2,52,3,125,3,190,3,246,3,46,4, +108,4,179,4,0,5,81,5,156,5,218,5,11,6,50,6,82,6,105,6,113,6,112,6,113,6,119,6,122,6,120,6, +120,6,126,6,133,6,136,6,134,6,124,6,95,6,44,6,240,5,186,5,146,5,114,5,99,5,116,5,171,5,246,5, +57,6,94,6,104,6,107,6,108,6,102,6,90,6,96,6,132,6,189,6,248,6,55,7,133,7,216,7,23,8,57,8, +75,8,74,8,38,8,227,7,166,7,128,7,98,7,58,7,11,7,212,6,131,6,24,6,174,5,91,5,25,5,219,4, +172,4,154,4,151,4,141,4,136,4,159,4,209,4,3,5,42,5,79,5,117,5,144,5,154,5,154,5,155,5,170,5, +203,5,251,5,39,6,70,6,97,6,126,6,142,6,120,6,60,6,246,5,195,5,165,5,139,5,103,5,58,5,10,5, +218,4,168,4,107,4,41,4,244,3,214,3,196,3,171,3,133,3,87,3,42,3,5,3,236,2,221,2,212,2,201,2, +193,2,196,2,210,2,220,2,219,2,220,2,230,2,241,2,230,2,185,2,110,2,21,2,184,1,89,1,0,1,186,0, +139,0,117,0,117,0,129,0,128,0,100,0,58,0,20,0,245,255,213,255,183,255,167,255,175,255,201,255,234,255,18,0, +74,0,148,0,232,0,52,1,108,1,146,1,171,1,184,1,185,1,181,1,183,1,194,1,202,1,199,1,179,1,134,1, +56,1,208,0,96,0,238,255,114,255,236,254,105,254,247,253,148,253,59,253,232,252,142,252,33,252,163,251,37,251,180,250, +73,250,227,249,142,249,79,249,32,249,246,248,214,248,193,248,175,248,150,248,117,248,78,248,35,248,245,247,196,247,151,247, +113,247,78,247,43,247,5,247,215,246,160,246,98,246,34,246,220,245,147,245,81,245,22,245,225,244,175,244,127,244,77,244, +29,244,244,243,216,243,204,243,208,243,226,243,7,244,61,244,120,244,173,244,220,244,15,245,69,245,115,245,146,245,166,245, +184,245,200,245,216,245,241,245,36,246,114,246,204,246,35,247,112,247,180,247,237,247,29,248,72,248,116,248,157,248,192,248, +218,248,246,248,24,249,67,249,121,249,196,249,33,250,130,250,218,250,40,251,119,251,202,251,36,252,129,252,220,252,52,253, +141,253,230,253,57,254,126,254,178,254,217,254,250,254,30,255,72,255,121,255,181,255,251,255,66,0,125,0,166,0,190,0, +203,0,212,0,230,0,4,1,42,1,81,1,122,1,172,1,240,1,69,2,167,2,20,3,136,3,255,3,111,4,212,4, +46,5,133,5,216,5,35,6,99,6,152,6,194,6,223,6,242,6,253,6,0,7,251,6,239,6,222,6,206,6,195,6, +192,6,196,6,210,6,229,6,238,6,232,6,218,6,200,6,172,6,135,6,107,6,107,6,127,6,141,6,140,6,139,6, +164,6,211,6,1,7,34,7,63,7,96,7,127,7,149,7,164,7,179,7,189,7,180,7,152,7,120,7,87,7,46,7, +249,6,196,6,156,6,123,6,87,6,45,6,0,6,212,5,176,5,159,5,164,5,177,5,182,5,178,5,172,5,163,5, +144,5,124,5,130,5,164,5,202,5,223,5,232,5,243,5,255,5,247,5,206,5,144,5,84,5,39,5,3,5,222,4, +185,4,158,4,143,4,131,4,103,4,61,4,22,4,254,3,249,3,5,4,32,4,67,4,100,4,128,4,152,4,166,4, +167,4,156,4,137,4,107,4,61,4,2,4,200,3,151,3,109,3,72,3,41,3,15,3,237,2,197,2,161,2,134,2, +104,2,54,2,246,1,189,1,142,1,93,1,32,1,227,0,180,0,142,0,106,0,75,0,52,0,37,0,29,0,33,0, +53,0,85,0,121,0,158,0,201,0,247,0,33,1,62,1,78,1,88,1,88,1,73,1,48,1,27,1,19,1,23,1, +26,1,10,1,231,0,188,0,152,0,122,0,92,0,56,0,16,0,235,255,208,255,186,255,157,255,110,255,51,255,249,254, +193,254,128,254,44,254,203,253,106,253,22,253,206,252,138,252,62,252,224,251,113,251,251,250,136,250,32,250,192,249,100,249, +9,249,176,248,91,248,9,248,188,247,118,247,58,247,5,247,207,246,144,246,70,246,254,245,198,245,160,245,137,245,123,245, +109,245,93,245,81,245,74,245,65,245,50,245,34,245,25,245,19,245,6,245,240,244,215,244,196,244,184,244,175,244,167,244, +155,244,138,244,124,244,128,244,150,244,175,244,189,244,196,244,204,244,216,244,228,244,245,244,19,245,66,245,125,245,187,245, +251,245,69,246,154,246,247,246,87,247,181,247,16,248,104,248,189,248,12,249,87,249,163,249,244,249,69,250,147,250,219,250, +31,251,99,251,170,251,244,251,61,252,128,252,188,252,243,252,45,253,111,253,184,253,7,254,79,254,131,254,154,254,160,254, +165,254,179,254,202,254,232,254,8,255,41,255,78,255,125,255,183,255,250,255,68,0,150,0,238,0,69,1,148,1,218,1, +28,2,94,2,162,2,234,2,64,3,166,3,24,4,146,4,19,5,149,5,18,6,130,6,232,6,75,7,173,7,1,8, +57,8,82,8,80,8,55,8,10,8,214,7,171,7,148,7,139,7,128,7,107,7,77,7,47,7,23,7,13,7,19,7, +37,7,67,7,104,7,132,7,134,7,111,7,85,7,72,7,67,7,58,7,46,7,38,7,40,7,52,7,82,7,138,7, +211,7,21,8,63,8,81,8,72,8,32,8,223,7,152,7,76,7,242,6,138,6,39,6,223,5,181,5,161,5,158,5, +167,5,174,5,169,5,157,5,148,5,145,5,148,5,166,5,207,5,10,6,70,6,121,6,163,6,203,6,242,6,11,7, +12,7,246,6,211,6,173,6,140,6,115,6,102,6,103,6,104,6,80,6,13,6,169,5,58,5,212,4,126,4,61,4, +15,4,239,3,217,3,209,3,222,3,0,4,50,4,111,4,176,4,236,4,26,5,54,5,70,5,77,5,77,5,72,5, +63,5,42,5,3,5,206,4,152,4,98,4,44,4,245,3,188,3,130,3,65,3,249,2,177,2,109,2,44,2,232,1, +163,1,97,1,31,1,219,0,157,0,109,0,79,0,65,0,65,0,75,0,87,0,94,0,101,0,117,0,143,0,176,0, +218,0,17,1,80,1,137,1,181,1,218,1,252,1,27,2,49,2,53,2,34,2,251,1,200,1,145,1,88,1,33,1, +238,0,191,0,147,0,101,0,43,0,222,255,132,255,43,255,224,254,157,254,84,254,1,254,180,253,117,253,59,253,244,252, +158,252,63,252,217,251,101,251,230,250,101,250,236,249,124,249,24,249,187,248,96,248,3,248,163,247,69,247,238,246,156,246, +77,246,252,245,170,245,93,245,32,245,242,244,202,244,162,244,123,244,85,244,48,244,13,244,234,243,198,243,164,243,139,243, +125,243,115,243,102,243,88,243,84,243,95,243,113,243,129,243,146,243,173,243,209,243,242,243,9,244,26,244,44,244,70,244, +106,244,146,244,189,244,238,244,33,245,80,245,121,245,160,245,206,245,2,246,58,246,118,246,185,246,2,247,75,247,146,247, +219,247,36,248,107,248,175,248,243,248,52,249,110,249,161,249,214,249,20,250,90,250,163,250,231,250,39,251,101,251,162,251, +222,251,29,252,96,252,164,252,225,252,21,253,64,253,104,253,145,253,191,253,237,253,24,254,62,254,97,254,142,254,200,254, +13,255,85,255,160,255,238,255,57,0,127,0,194,0,8,1,81,1,155,1,230,1,55,2,148,2,249,2,95,3,203,3, +66,4,194,4,64,5,183,5,36,6,133,6,210,6,8,7,39,7,50,7,42,7,21,7,249,6,223,6,198,6,171,6, +140,6,108,6,80,6,56,6,42,6,41,6,55,6,82,6,118,6,158,6,191,6,203,6,196,6,181,6,170,6,155,6, +128,6,96,6,68,6,47,6,38,6,53,6,101,6,171,6,242,6,44,7,81,7,93,7,78,7,41,7,252,6,209,6, +161,6,100,6,34,6,236,5,202,5,188,5,189,5,197,5,201,5,198,5,196,5,197,5,197,5,204,5,234,5,41,6, +124,6,204,6,11,7,62,7,109,7,149,7,174,7,178,7,162,7,137,7,111,7,82,7,54,7,35,7,33,7,38,7, +22,7,222,6,129,6,24,6,183,5,105,5,47,5,9,5,241,4,227,4,223,4,240,4,22,5,78,5,146,5,217,5, +23,6,65,6,82,6,76,6,54,6,24,6,249,5,218,5,182,5,136,5,79,5,18,5,215,4,157,4,99,4,41,4, +239,3,177,3,111,3,43,3,237,2,182,2,132,2,80,2,22,2,210,1,133,1,56,1,250,0,209,0,190,0,188,0, +203,0,232,0,11,1,46,1,82,1,118,1,153,1,187,1,216,1,238,1,252,1,4,2,11,2,22,2,34,2,36,2, +19,2,238,1,185,1,122,1,57,1,254,0,203,0,163,0,136,0,117,0,95,0,66,0,28,0,239,255,188,255,131,255, +66,255,247,254,167,254,91,254,23,254,213,253,139,253,52,253,211,252,104,252,238,251,100,251,217,250,91,250,236,249,132,249, +27,249,176,248,70,248,225,247,131,247,45,247,220,246,139,246,50,246,210,245,117,245,38,245,230,244,178,244,135,244,98,244, +63,244,23,244,232,243,184,243,141,243,102,243,67,243,37,243,7,243,224,242,182,242,150,242,135,242,135,242,146,242,170,242, +210,242,251,242,24,243,44,243,70,243,105,243,142,243,180,243,223,243,12,244,50,244,85,244,125,244,174,244,233,244,45,245, +117,245,190,245,10,246,95,246,187,246,26,247,118,247,212,247,53,248,144,248,221,248,30,249,89,249,143,249,190,249,236,249, +31,250,84,250,136,250,188,250,248,250,55,251,117,251,179,251,248,251,66,252,137,252,201,252,7,253,68,253,122,253,165,253, +198,253,223,253,238,253,243,253,249,253,8,254,38,254,79,254,132,254,194,254,3,255,70,255,141,255,219,255,50,0,147,0, +247,0,91,1,196,1,57,2,188,2,75,3,229,3,131,4,34,5,187,5,74,6,204,6,63,7,160,7,233,7,32,8, +73,8,101,8,112,8,107,8,90,8,68,8,46,8,28,8,20,8,19,8,17,8,8,8,253,7,247,7,253,7,13,8, +36,8,58,8,70,8,73,8,71,8,61,8,37,8,0,8,223,7,201,7,184,7,168,7,165,7,188,7,228,7,9,8, +35,8,54,8,62,8,48,8,16,8,228,7,179,7,123,7,60,7,250,6,186,6,129,6,83,6,50,6,28,6,11,6, +1,6,4,6,14,6,19,6,21,6,38,6,74,6,119,6,164,6,211,6,12,7,76,7,137,7,180,7,194,7,180,7, +155,7,134,7,117,7,92,7,66,7,50,7,43,7,20,7,220,6,132,6,30,6,186,5,93,5,12,5,208,4,174,4, +165,4,174,4,200,4,237,4,26,5,76,5,124,5,162,5,195,5,231,5,15,6,47,6,59,6,45,6,10,6,208,5, +129,5,40,5,213,4,142,4,76,4,7,4,187,3,109,3,37,3,230,2,173,2,112,2,48,2,242,1,185,1,129,1, +66,1,252,0,186,0,127,0,73,0,19,0,225,255,188,255,176,255,193,255,235,255,35,0,96,0,156,0,213,0,14,1, +74,1,136,1,192,1,232,1,249,1,246,1,236,1,223,1,205,1,174,1,130,1,75,1,14,1,204,0,134,0,63,0, +3,0,214,255,170,255,114,255,48,255,239,254,182,254,127,254,65,254,252,253,185,253,120,253,49,253,223,252,136,252,48,252, +217,251,124,251,18,251,150,250,10,250,118,249,225,248,87,248,220,247,113,247,13,247,170,246,74,246,242,245,161,245,83,245, +4,245,189,244,131,244,86,244,50,244,21,244,251,243,227,243,205,243,182,243,153,243,116,243,71,243,26,243,244,242,210,242, +176,242,146,242,127,242,126,242,143,242,182,242,247,242,73,243,158,243,238,243,53,244,114,244,166,244,216,244,14,245,71,245, +117,245,150,245,183,245,229,245,31,246,92,246,152,246,209,246,9,247,68,247,141,247,230,247,74,248,182,248,43,249,166,249, +22,250,110,250,179,250,231,250,10,251,36,251,67,251,111,251,162,251,213,251,6,252,53,252,94,252,131,252,168,252,211,252, +251,252,27,253,55,253,90,253,132,253,179,253,228,253,16,254,40,254,42,254,35,254,34,254,43,254,59,254,81,254,110,254, +149,254,195,254,246,254,45,255,105,255,170,255,240,255,56,0,128,0,206,0,43,1,158,1,39,2,189,2,87,3,238,3, +129,4,12,5,144,5,14,6,133,6,238,6,63,7,114,7,133,7,128,7,108,7,84,7,60,7,37,7,16,7,250,6, +229,6,215,6,209,6,214,6,233,6,11,7,51,7,88,7,119,7,148,7,181,7,208,7,214,7,200,7,178,7,160,7, +138,7,115,7,110,7,137,7,188,7,238,7,14,8,30,8,33,8,21,8,249,7,211,7,161,7,91,7,4,7,172,6, +95,6,27,6,221,5,167,5,117,5,64,5,6,5,218,4,204,4,214,4,240,4,29,5,97,5,172,5,236,5,28,6, +68,6,113,6,163,6,205,6,225,6,221,6,208,6,195,6,184,6,169,6,157,6,153,6,153,6,138,6,100,6,48,6, +249,5,189,5,121,5,43,5,214,4,126,4,45,4,241,3,211,3,212,3,236,3,17,4,62,4,106,4,146,4,185,4, +226,4,12,5,51,5,84,5,107,5,114,5,103,5,82,5,60,5,35,5,251,4,194,4,124,4,47,4,217,3,131,3, +57,3,250,2,188,2,127,2,69,2,14,2,213,1,152,1,95,1,48,1,12,1,238,0,214,0,198,0,191,0,200,0, +238,0,47,1,120,1,183,1,238,1,38,2,92,2,136,2,168,2,191,2,201,2,189,2,160,2,124,2,87,2,47,2, +0,2,204,1,147,1,84,1,19,1,212,0,155,0,108,0,73,0,41,0,254,255,194,255,127,255,62,255,252,254,182,254, +112,254,46,254,234,253,157,253,74,253,247,252,164,252,78,252,244,251,151,251,54,251,211,250,114,250,18,250,175,249,69,249, +210,248,93,248,233,247,115,247,246,246,124,246,18,246,183,245,97,245,10,245,183,244,112,244,51,244,251,243,197,243,146,243, +101,243,58,243,13,243,220,242,173,242,136,242,105,242,71,242,30,242,248,241,221,241,206,241,205,241,218,241,238,241,1,242, +18,242,40,242,77,242,126,242,180,242,237,242,46,243,116,243,185,243,254,243,74,244,164,244,15,245,132,245,251,245,108,246, +216,246,62,247,166,247,22,248,136,248,246,248,91,249,184,249,10,250,83,250,148,250,211,250,19,251,90,251,166,251,238,251, +47,252,107,252,166,252,224,252,29,253,96,253,165,253,224,253,18,254,69,254,128,254,185,254,232,254,9,255,28,255,30,255, +23,255,22,255,35,255,57,255,82,255,108,255,142,255,182,255,223,255,5,0,45,0,90,0,140,0,197,0,7,1,83,1, +168,1,8,2,117,2,243,2,126,3,13,4,151,4,26,5,151,5,9,6,111,6,197,6,9,7,61,7,102,7,139,7, +172,7,206,7,246,7,30,8,56,8,62,8,55,8,45,8,38,8,41,8,50,8,62,8,70,8,82,8,105,8,131,8, +145,8,140,8,126,8,115,8,111,8,115,8,130,8,159,8,201,8,250,8,41,9,78,9,103,9,117,9,128,9,139,9, +141,9,124,9,82,9,12,9,171,8,60,8,209,7,118,7,41,7,228,6,168,6,115,6,61,6,2,6,206,5,176,5, +169,5,175,5,186,5,202,5,227,5,7,6,55,6,99,6,111,6,84,6,36,6,247,5,208,5,171,5,141,5,126,5, +125,5,124,5,107,5,72,5,26,5,234,4,185,4,134,4,83,4,35,4,246,3,195,3,138,3,82,3,35,3,7,3, +255,2,8,3,28,3,58,3,93,3,125,3,146,3,154,3,151,3,138,3,119,3,103,3,94,3,95,3,98,3,90,3, +65,3,21,3,220,2,155,2,83,2,7,2,190,1,128,1,74,1,21,1,221,0,167,0,115,0,63,0,6,0,204,255, +151,255,107,255,76,255,60,255,63,255,81,255,110,255,147,255,192,255,243,255,42,0,100,0,155,0,200,0,226,0,233,0, +224,0,202,0,172,0,135,0,97,0,60,0,27,0,4,0,255,255,7,0,18,0,28,0,36,0,38,0,29,0,9,0, +235,255,199,255,161,255,122,255,83,255,40,255,250,254,199,254,139,254,65,254,235,253,151,253,79,253,16,253,211,252,149,252, +84,252,13,252,197,251,128,251,55,251,225,250,120,250,1,250,132,249,7,249,146,248,41,248,210,247,136,247,67,247,1,247, +198,246,144,246,91,246,37,246,236,245,176,245,111,245,43,245,230,244,165,244,104,244,42,244,235,243,175,243,115,243,57,243, +7,243,227,242,212,242,219,242,240,242,5,243,21,243,37,243,60,243,85,243,108,243,134,243,169,243,216,243,14,244,69,244, +130,244,207,244,49,245,166,245,38,246,163,246,25,247,134,247,235,247,73,248,166,248,4,249,94,249,176,249,248,249,54,250, +113,250,173,250,238,250,52,251,123,251,191,251,1,252,71,252,147,252,225,252,40,253,103,253,165,253,232,253,49,254,120,254, +184,254,239,254,34,255,82,255,129,255,169,255,198,255,218,255,242,255,21,0,67,0,119,0,169,0,205,0,229,0,247,0, +9,1,28,1,50,1,77,1,110,1,147,1,186,1,231,1,25,2,85,2,156,2,241,2,80,3,174,3,10,4,102,4, +191,4,10,5,65,5,105,5,134,5,157,5,175,5,190,5,209,5,241,5,30,6,81,6,133,6,179,6,215,6,243,6, +17,7,58,7,111,7,169,7,227,7,30,8,85,8,122,8,133,8,125,8,102,8,67,8,25,8,246,7,229,7,230,7, +246,7,17,8,52,8,86,8,106,8,106,8,93,8,81,8,72,8,60,8,36,8,249,7,191,7,122,7,45,7,217,6, +135,6,65,6,11,6,227,5,194,5,163,5,136,5,117,5,107,5,108,5,120,5,142,5,175,5,220,5,15,6,56,6, +72,6,59,6,19,6,217,5,154,5,103,5,73,5,64,5,67,5,72,5,71,5,60,5,38,5,13,5,250,4,245,4, +2,5,33,5,76,5,117,5,149,5,169,5,177,5,173,5,161,5,150,5,146,5,154,5,170,5,189,5,205,5,216,5, +220,5,209,5,179,5,134,5,82,5,31,5,237,4,190,4,144,4,99,4,58,4,22,4,245,3,210,3,173,3,135,3, +97,3,58,3,18,3,231,2,185,2,138,2,90,2,39,2,238,1,177,1,115,1,56,1,6,1,218,0,178,0,146,0, +128,0,120,0,116,0,111,0,104,0,91,0,64,0,15,0,204,255,130,255,59,255,252,254,199,254,148,254,93,254,31,254, +225,253,165,253,108,253,55,253,10,253,229,252,199,252,175,252,157,252,146,252,137,252,123,252,98,252,57,252,253,251,177,251, +91,251,255,250,162,250,73,250,240,249,146,249,47,249,209,248,123,248,46,248,232,247,168,247,107,247,46,247,235,246,157,246, +71,246,245,245,174,245,115,245,62,245,8,245,209,244,160,244,117,244,75,244,32,244,242,243,190,243,133,243,80,243,40,243, +11,243,249,242,243,242,247,242,253,242,253,242,249,242,252,242,14,243,45,243,87,243,140,243,201,243,7,244,68,244,131,244, +197,244,4,245,62,245,117,245,177,245,244,245,55,246,127,246,213,246,58,247,165,247,16,248,122,248,231,248,89,249,210,249, +76,250,201,250,68,251,184,251,28,252,112,252,187,252,5,253,85,253,167,253,242,253,54,254,120,254,185,254,251,254,61,255, +125,255,184,255,236,255,28,0,72,0,116,0,161,0,208,0,252,0,31,1,52,1,56,1,46,1,30,1,11,1,250,0, +240,0,238,0,240,0,246,0,0,1,23,1,59,1,107,1,163,1,226,1,34,2,94,2,146,2,192,2,232,2,8,3, +32,3,47,3,59,3,71,3,82,3,88,3,91,3,97,3,112,3,137,3,170,3,202,3,227,3,249,3,22,4,65,4, +119,4,173,4,218,4,255,4,34,5,72,5,118,5,175,5,239,5,43,6,94,6,137,6,175,6,210,6,247,6,33,7, +79,7,124,7,161,7,195,7,230,7,3,8,16,8,13,8,10,8,19,8,40,8,66,8,92,8,116,8,131,8,139,8, +141,8,136,8,120,8,95,8,67,8,40,8,10,8,239,7,223,7,219,7,221,7,225,7,232,7,245,7,12,8,45,8, +82,8,116,8,138,8,141,8,129,8,111,8,88,8,56,8,12,8,211,7,141,7,63,7,241,6,168,6,101,6,43,6, +2,6,242,5,254,5,33,6,80,6,128,6,165,6,186,6,194,6,193,6,183,6,162,6,128,6,85,6,33,6,237,5, +190,5,155,5,128,5,107,5,87,5,63,5,38,5,14,5,250,4,233,4,213,4,184,4,149,4,110,4,64,4,11,4, +204,3,134,3,57,3,232,2,148,2,63,2,238,1,161,1,85,1,7,1,187,0,113,0,40,0,228,255,168,255,116,255, +71,255,28,255,241,254,199,254,162,254,127,254,86,254,41,254,2,254,228,253,201,253,165,253,112,253,41,253,215,252,130,252, +46,252,223,251,149,251,83,251,24,251,224,250,165,250,106,250,53,250,7,250,223,249,187,249,152,249,117,249,82,249,43,249, +254,248,200,248,135,248,60,248,233,247,144,247,53,247,222,246,146,246,80,246,24,246,232,245,193,245,170,245,163,245,162,245, +156,245,146,245,139,245,133,245,127,245,122,245,119,245,111,245,95,245,72,245,47,245,22,245,254,244,228,244,201,244,178,244, +160,244,151,244,146,244,142,244,143,244,152,244,175,244,211,244,4,245,65,245,130,245,193,245,253,245,56,246,115,246,174,246, +229,246,27,247,81,247,134,247,181,247,226,247,18,248,71,248,127,248,189,248,2,249,80,249,168,249,7,250,105,250,207,250, +58,251,166,251,17,252,118,252,209,252,35,253,111,253,182,253,245,253,46,254,100,254,151,254,200,254,250,254,48,255,102,255, +156,255,206,255,1,0,57,0,120,0,184,0,246,0,51,1,112,1,169,1,219,1,4,2,33,2,53,2,62,2,64,2, +60,2,51,2,36,2,13,2,237,1,202,1,173,1,161,1,168,1,193,1,231,1,18,2,64,2,112,2,157,2,197,2, +227,2,248,2,2,3,3,3,255,2,249,2,242,2,236,2,236,2,241,2,250,2,8,3,24,3,48,3,83,3,131,3, +191,3,3,4,73,4,136,4,191,4,244,4,44,5,99,5,145,5,181,5,206,5,224,5,237,5,249,5,14,6,44,6, +79,6,113,6,147,6,183,6,221,6,7,7,52,7,101,7,150,7,195,7,229,7,252,7,12,8,26,8,41,8,54,8, +64,8,76,8,90,8,102,8,109,8,111,8,113,8,118,8,125,8,135,8,150,8,169,8,193,8,220,8,253,8,34,9, +65,9,84,9,99,9,116,9,130,9,136,9,134,9,126,9,108,9,72,9,17,9,202,8,123,8,38,8,202,7,108,7, +19,7,199,6,139,6,92,6,56,6,32,6,22,6,23,6,26,6,32,6,39,6,44,6,43,6,34,6,15,6,240,5, +197,5,143,5,87,5,35,5,245,4,203,4,162,4,122,4,85,4,54,4,23,4,244,3,203,3,160,3,119,3,80,3, +46,3,14,3,234,2,192,2,144,2,87,2,20,2,204,1,129,1,51,1,225,0,142,0,60,0,240,255,173,255,115,255, +65,255,22,255,240,254,201,254,158,254,113,254,70,254,29,254,246,253,205,253,160,253,112,253,60,253,4,253,198,252,131,252, +61,252,241,251,159,251,74,251,250,250,177,250,107,250,39,250,234,249,180,249,129,249,80,249,36,249,254,248,219,248,182,248, +143,248,102,248,53,248,252,247,187,247,121,247,55,247,244,246,178,246,117,246,59,246,5,246,207,245,152,245,100,245,53,245, +11,245,228,244,194,244,172,244,163,244,167,244,180,244,201,244,227,244,0,245,27,245,52,245,77,245,101,245,117,245,123,245, +123,245,120,245,121,245,126,245,136,245,149,245,159,245,166,245,174,245,190,245,213,245,240,245,17,246,55,246,97,246,146,246, +204,246,12,247,73,247,128,247,177,247,222,247,10,248,52,248,95,248,141,248,191,248,246,248,53,249,123,249,198,249,19,250, +98,250,178,250,2,251,85,251,171,251,254,251,75,252,147,252,216,252,22,253,73,253,117,253,162,253,210,253,1,254,39,254, +70,254,102,254,138,254,174,254,208,254,240,254,14,255,42,255,71,255,106,255,152,255,206,255,4,0,59,0,116,0,173,0, +225,0,13,1,52,1,88,1,122,1,151,1,177,1,205,1,237,1,16,2,51,2,85,2,121,2,160,2,199,2,235,2, +13,3,48,3,86,3,127,3,171,3,217,3,253,3,18,4,32,4,50,4,74,4,102,4,136,4,176,4,219,4,3,5, +43,5,85,5,135,5,191,5,251,5,58,6,122,6,185,6,248,6,57,7,119,7,178,7,235,7,35,8,85,8,121,8, +140,8,146,8,149,8,153,8,155,8,153,8,149,8,145,8,144,8,146,8,149,8,152,8,158,8,165,8,170,8,173,8, +176,8,185,8,201,8,220,8,240,8,8,9,37,9,65,9,84,9,94,9,98,9,100,9,104,9,110,9,117,9,122,9, +130,9,138,9,140,9,135,9,125,9,108,9,79,9,35,9,235,8,171,8,98,8,18,8,188,7,101,7,14,7,184,6, +102,6,29,6,222,5,167,5,120,5,81,5,50,5,25,5,5,5,244,4,227,4,205,4,175,4,140,4,102,4,60,4, +17,4,234,3,201,3,171,3,138,3,102,3,64,3,25,3,238,2,190,2,139,2,88,2,37,2,243,1,193,1,141,1, +91,1,45,1,2,1,211,0,162,0,111,0,60,0,13,0,231,255,200,255,173,255,147,255,119,255,92,255,67,255,42,255, +13,255,234,254,197,254,164,254,136,254,110,254,81,254,49,254,14,254,230,253,185,253,134,253,74,253,10,253,202,252,137,252, +65,252,243,251,169,251,106,251,53,251,7,251,224,250,188,250,153,250,117,250,74,250,22,250,219,249,158,249,98,249,40,249, +241,248,189,248,139,248,85,248,21,248,211,247,152,247,103,247,58,247,18,247,243,246,220,246,200,246,178,246,150,246,121,246, +92,246,57,246,16,246,228,245,187,245,150,245,119,245,95,245,84,245,87,245,104,245,131,245,166,245,206,245,249,245,34,246, +70,246,95,246,109,246,115,246,119,246,120,246,115,246,106,246,100,246,108,246,136,246,180,246,233,246,39,247,104,247,167,247, +225,247,24,248,78,248,136,248,196,248,2,249,61,249,115,249,159,249,196,249,232,249,19,250,68,250,127,250,200,250,24,251, +107,251,189,251,11,252,80,252,133,252,171,252,203,252,240,252,25,253,66,253,106,253,146,253,187,253,229,253,20,254,71,254, +120,254,165,254,210,254,7,255,71,255,145,255,221,255,38,0,98,0,139,0,165,0,181,0,190,0,195,0,212,0,0,1, +76,1,177,1,35,2,152,2,8,3,106,3,185,3,245,3,26,4,30,4,253,3,192,3,117,3,46,3,1,3,251,2, +30,3,103,3,208,3,74,4,195,4,40,5,108,5,143,5,156,5,167,5,183,5,205,5,231,5,254,5,12,6,15,6, +7,6,0,6,10,6,50,6,123,6,224,6,90,7,231,7,126,8,19,9,151,9,249,9,47,10,54,10,19,10,207,9, +120,9,22,9,174,8,73,8,244,7,187,7,168,7,185,7,233,7,48,8,138,8,234,8,69,9,146,9,207,9,242,9, +239,9,196,9,121,9,25,9,171,8,58,8,213,7,139,7,94,7,73,7,81,7,120,7,177,7,238,7,37,8,79,8, +95,8,74,8,9,8,162,7,40,7,170,6,38,6,151,5,253,4,94,4,190,3,39,3,160,2,54,2,244,1,221,1, +243,1,47,2,133,2,232,2,77,3,168,3,233,3,5,4,250,3,202,3,120,3,8,3,129,2,240,1,102,1,244,0, +167,0,139,0,159,0,220,0,49,1,136,1,207,1,254,1,17,2,6,2,230,1,184,1,124,1,47,1,205,0,89,0, +217,255,91,255,236,254,154,254,105,254,89,254,103,254,149,254,225,254,62,255,155,255,232,255,28,0,44,0,18,0,199,255, +75,255,162,254,215,253,248,252,31,252,100,251,215,250,127,250,93,250,105,250,148,250,214,250,41,251,138,251,244,251,87,252, +157,252,176,252,133,252,32,252,144,251,233,250,64,250,167,249,38,249,185,248,92,248,22,248,245,247,0,248,56,248,151,248, +13,249,129,249,215,249,249,249,225,249,146,249,30,249,155,248,22,248,147,247,17,247,147,246,29,246,179,245,92,245,34,245, +16,245,39,245,91,245,160,245,239,245,64,246,127,246,158,246,158,246,132,246,88,246,34,246,231,245,176,245,129,245,96,245, +83,245,96,245,142,245,226,245,97,246,15,247,217,247,161,248,75,249,203,249,36,250,98,250,139,250,156,250,144,250,103,250, +42,250,241,249,204,249,198,249,233,249,61,250,192,250,93,251,2,252,159,252,43,253,157,253,236,253,18,254,21,254,249,253, +190,253,104,253,255,252,139,252,16,252,158,251,73,251,30,251,25,251,57,251,131,251,252,251,153,252,62,253,215,253,90,254, +198,254,30,255,100,255,149,255,174,255,181,255,174,255,164,255,170,255,208,255,31,0,154,0,60,1,254,1,215,2,190,3, +165,4,129,5,73,6,235,6,87,7,127,7,98,7,15,7,158,6,38,6,182,5,101,5,73,5,107,5,193,5,57,6, +186,6,52,7,166,7,21,8,125,8,212,8,8,9,15,9,239,8,174,8,80,8,223,7,109,7,20,7,225,6,211,6, +229,6,18,7,93,7,206,7,103,8,32,9,231,9,159,10,47,11,132,11,149,11,97,11,237,10,77,10,151,9,222,8, +48,8,157,7,63,7,48,7,120,7,6,8,183,8,114,9,47,10,229,10,134,11,255,11,69,12,79,12,23,12,165,11, +4,11,68,10,106,9,128,8,154,7,213,6,67,6,236,5,209,5,234,5,35,6,98,6,142,6,152,6,127,6,73,6, +246,5,128,5,235,4,60,4,121,3,164,2,192,1,216,0,8,0,112,255,33,255,23,255,71,255,166,255,40,0,188,0, +78,1,197,1,14,2,29,2,245,1,165,1,56,1,183,0,42,0,153,255,13,255,148,254,62,254,28,254,48,254,114,254, +208,254,58,255,162,255,1,0,82,0,150,0,200,0,225,0,219,0,177,0,101,0,252,255,134,255,19,255,175,254,93,254, +22,254,212,253,154,253,99,253,38,253,220,252,132,252,31,252,175,251,48,251,159,250,5,250,105,249,208,248,59,248,174,247, +44,247,184,246,91,246,27,246,242,245,210,245,181,245,154,245,132,245,118,245,119,245,142,245,188,245,247,245,44,246,77,246, +96,246,122,246,175,246,9,247,127,247,0,248,129,248,252,248,113,249,219,249,48,250,109,250,161,250,217,250,22,251,74,251, +104,251,111,251,101,251,76,251,31,251,225,250,160,250,104,250,66,250,41,250,26,250,18,250,14,250,8,250,253,249,240,249, +226,249,213,249,202,249,191,249,177,249,160,249,146,249,138,249,142,249,170,249,227,249,52,250,143,250,227,250,45,251,121,251, +211,251,61,252,176,252,33,253,131,253,215,253,41,254,136,254,249,254,124,255,13,0,164,0,61,1,218,1,128,2,48,3, +223,3,112,4,205,4,243,4,240,4,214,4,172,4,107,4,11,4,136,3,230,2,46,2,114,1,187,0,11,0,104,255, +221,254,108,254,13,254,180,253,86,253,243,252,144,252,50,252,220,251,140,251,56,251,219,250,126,250,54,250,26,250,58,250, +150,250,34,251,210,251,154,252,114,253,87,254,65,255,30,0,214,0,83,1,133,1,115,1,55,1,244,0,192,0,164,0, +166,0,209,0,47,1,187,1,98,2,17,3,194,3,126,4,74,5,37,6,242,6,147,7,247,7,37,8,40,8,15,8, +235,7,201,7,174,7,149,7,117,7,83,7,65,7,82,7,143,7,241,7,104,8,222,8,64,9,125,9,138,9,101,9, +15,9,138,8,221,7,26,7,94,6,196,5,93,5,59,5,112,5,6,6,247,6,42,8,137,9,0,11,125,12,231,13, +35,15,29,16,201,16,33,17,44,17,251,16,163,16,42,16,144,15,226,14,57,14,171,13,71,13,22,13,20,13,43,13, +56,13,25,13,196,12,68,12,167,11,237,10,17,10,13,9,229,7,165,6,90,5,16,4,221,2,224,1,54,1,233,0, +242,0,58,1,171,1,56,2,211,2,103,3,221,3,28,4,13,4,166,3,239,2,240,1,183,0,83,255,224,253,123,252, +67,251,78,250,170,249,89,249,72,249,92,249,128,249,177,249,237,249,47,250,110,250,157,250,166,250,124,250,33,250,170,249, +46,249,183,248,73,248,240,247,179,247,146,247,137,247,145,247,163,247,176,247,168,247,123,247,35,247,156,246,222,245,229,244, +183,243,98,242,246,240,127,239,11,238,173,236,130,235,155,234,252,233,161,233,135,233,174,233,16,234,156,234,66,235,2,236, +230,236,235,237,253,238,3,240,237,240,185,241,113,242,41,243,230,243,165,244,97,245,27,246,220,246,182,247,179,248,204,249, +240,250,16,252,40,253,57,254,61,255,40,0,237,0,137,1,250,1,60,2,85,2,92,2,110,2,159,2,237,2,84,3, +212,3,114,4,46,5,253,5,206,6,143,7,47,8,161,8,220,8,221,8,165,8,49,8,129,7,152,6,120,5,39,4, +177,2,40,1,159,255,48,254,246,252,7,252,105,251,22,251,1,251,34,251,115,251,243,251,159,252,105,253,54,254,228,254, +107,255,217,255,68,0,195,0,98,1,36,2,2,3,241,3,225,4,203,5,177,6,148,7,99,8,4,9,91,9,87,9, +246,8,66,8,64,7,236,5,75,4,112,2,117,0,115,254,120,252,149,250,219,248,91,247,34,246,56,245,154,244,54,244, +248,243,210,243,189,243,179,243,183,243,209,243,17,244,138,244,66,245,42,246,40,247,31,248,250,248,172,249,43,250,129,250, +201,250,29,251,126,251,226,251,77,252,215,252,151,253,152,254,219,255,91,1,251,2,149,4,19,6,129,7,233,8,57,10, +93,11,94,12,80,13,50,14,243,14,135,15,242,15,46,16,41,16,242,15,191,15,197,15,6,16,108,16,232,16,103,17, +190,17,195,17,109,17,204,16,231,15,185,14,74,13,187,11,38,10,155,8,53,7,36,6,145,5,123,5,201,5,115,6, +124,7,218,8,100,10,241,11,114,13,229,14,49,16,48,17,193,17,212,17,110,17,168,16,175,15,179,14,213,13,30,13, +150,12,65,12,37,12,54,12,91,12,111,12,87,12,7,12,129,11,212,10,18,10,78,9,144,8,215,7,29,7,87,6, +140,5,207,4,42,4,142,3,231,2,61,2,184,1,125,1,131,1,155,1,163,1,139,1,74,1,208,0,25,0,41,255, +254,253,143,252,221,250,8,249,83,247,2,246,50,245,203,244,144,244,73,244,228,243,115,243,18,243,217,242,212,242,6,243, +111,243,10,244,207,244,176,245,151,246,103,247,6,248,108,248,158,248,163,248,127,248,48,248,174,247,244,246,21,246,47,245, +87,244,124,243,134,242,115,241,88,240,78,239,111,238,201,237,82,237,230,236,107,236,223,235,87,235,225,234,124,234,23,234, +177,233,97,233,78,233,157,233,101,234,159,235,48,237,248,238,218,240,179,242,96,244,207,245,1,247,240,247,139,248,197,248, +176,248,127,248,96,248,94,248,112,248,149,248,223,248,102,249,47,250,40,251,63,252,114,253,194,254,60,0,240,1,224,3, +238,5,219,7,111,9,150,10,104,11,15,12,171,12,72,13,224,13,98,14,185,14,213,14,180,14,95,14,222,13,41,13, +47,12,230,10,84,9,155,7,226,5,53,4,128,2,175,0,196,254,223,252,35,251,152,249,50,248,234,246,211,245,3,245, +135,244,98,244,146,244,21,245,239,245,33,247,151,248,57,250,246,251,183,253,89,255,191,0,236,1,3,3,31,4,57,5, +41,6,198,6,248,6,189,6,48,6,119,5,169,4,195,3,192,2,170,1,157,0,184,255,11,255,142,254,31,254,156,253, +246,252,61,252,141,251,243,250,110,250,254,249,173,249,135,249,145,249,201,249,41,250,174,250,72,251,215,251,58,252,118,252, +177,252,253,252,53,253,39,253,194,252,25,252,67,251,76,250,67,249,83,248,180,247,139,247,216,247,153,248,218,249,167,251, +240,253,147,0,115,3,117,6,121,9,81,12,210,14,239,16,186,18,68,20,149,21,174,22,142,23,43,24,134,24,186,24, +235,24,38,25,90,25,120,25,124,25,94,25,251,24,53,24,14,23,150,21,190,19,108,17,159,14,129,11,77,8,51,5, +93,2,6,0,113,254,178,253,157,253,245,253,171,254,211,255,111,1,69,3,10,5,151,6,247,7,54,9,57,10,225,10, +46,11,58,11,20,11,197,10,103,10,41,10,43,10,98,10,165,10,208,10,223,10,236,10,21,11,94,11,165,11,177,11, +104,11,232,10,98,10,232,9,117,9,5,9,141,8,244,7,35,7,36,6,34,5,74,4,185,3,101,3,47,3,250,2, +186,2,113,2,29,2,172,1,14,1,58,0,39,255,202,253,46,252,111,250,180,248,33,247,205,245,186,244,214,243,17,243, +109,242,250,241,205,241,246,241,119,242,53,243,0,244,169,244,25,245,93,245,133,245,141,245,113,245,52,245,211,244,70,244, +155,243,1,243,172,242,168,242,215,242,11,243,34,243,23,243,231,242,145,242,29,242,158,241,22,241,106,240,127,239,81,238, +0,237,182,235,136,234,124,233,157,232,13,232,243,231,109,232,125,233,6,235,212,236,188,238,169,240,138,242,73,244,200,245, +239,246,173,247,4,248,253,247,177,247,77,247,10,247,5,247,47,247,102,247,162,247,249,247,139,248,99,249,127,250,220,251, +122,253,78,255,66,1,42,3,214,4,52,6,90,7,96,8,69,9,251,9,125,10,216,10,33,11,106,11,182,11,254,11, +68,12,141,12,204,12,238,12,234,12,196,12,130,12,32,12,138,11,161,10,79,9,149,7,135,5,64,3,217,0,107,254, +20,252,247,249,48,248,211,246,238,245,139,245,166,245,32,246,214,246,170,247,140,248,114,249,77,250,17,251,188,251,85,252, +226,252,99,253,217,253,64,254,158,254,7,255,143,255,50,0,233,0,177,1,142,2,116,3,73,4,237,4,72,5,82,5, +14,5,134,4,203,3,250,2,39,2,96,1,186,0,78,0,49,0,107,0,255,0,229,1,254,2,19,4,230,4,91,5, +127,5,106,5,22,5,106,4,92,3,251,1,84,0,102,254,47,252,195,249,83,247,20,245,46,243,191,241,225,240,156,240, +228,240,165,241,198,242,50,244,217,245,191,247,230,249,75,252,220,254,129,1,24,4,141,6,223,8,33,11,106,13,192,15, +24,18,87,20,97,22,26,24,112,25,104,26,23,27,155,27,11,28,98,28,128,28,69,28,163,27,156,26,44,25,67,23, +217,20,253,17,220,14,178,11,173,8,242,5,162,3,206,1,102,0,91,255,181,254,132,254,202,254,120,255,116,0,152,1, +165,2,87,3,140,3,92,3,253,2,156,2,69,2,241,1,152,1,50,1,197,0,106,0,75,0,145,0,77,1,108,2, +198,3,69,5,226,6,140,8,19,10,73,11,38,12,187,12,21,13,64,13,89,13,129,13,182,13,218,13,226,13,236,13, +19,14,83,14,148,14,190,14,183,14,91,14,130,13,33,12,74,10,28,8,171,5,4,3,60,0,99,253,135,250,194,247, +64,245,38,243,132,241,79,240,119,239,241,238,183,238,198,238,13,239,118,239,219,239,19,240,4,240,182,239,77,239,249,238, +223,238,16,239,130,239,36,240,235,240,208,241,204,242,218,243,251,244,31,246,41,247,243,247,103,248,136,248,99,248,255,247, +91,247,120,246,104,245,65,244,15,243,218,241,175,240,168,239,218,238,73,238,235,237,197,237,224,237,63,238,207,238,119,239, +33,240,189,240,64,241,165,241,238,241,42,242,104,242,169,242,231,242,32,243,89,243,154,243,232,243,68,244,171,244,24,245, +140,245,17,246,186,246,149,247,155,248,188,249,229,250,14,252,44,253,60,254,59,255,42,0,11,1,221,1,148,2,36,3, +147,3,249,3,110,4,247,4,139,5,35,6,187,6,88,7,5,8,206,8,180,9,170,10,139,11,42,12,105,12,64,12, +192,11,251,10,249,9,180,8,47,7,127,5,200,3,52,2,219,0,192,255,219,254,36,254,151,253,42,253,213,252,142,252, +83,252,31,252,245,251,219,251,219,251,255,251,74,252,190,252,92,253,38,254,22,255,33,0,59,1,93,2,129,3,155,4, +159,5,127,6,46,7,163,7,215,7,206,7,160,7,110,7,87,7,108,7,180,7,50,8,226,8,192,9,197,10,224,11, +242,12,209,13,89,14,109,14,13,14,72,13,47,12,194,10,3,9,7,7,237,4,192,2,120,0,21,254,165,251,43,249, +170,246,67,244,50,242,160,240,129,239,166,238,234,237,69,237,198,236,138,236,172,236,76,237,142,238,139,240,50,243,73,246, +137,249,206,252,15,0,74,3,122,6,156,9,170,12,133,15,252,17,246,19,134,21,220,22,33,24,95,25,138,26,138,27, +72,28,188,28,235,28,209,28,89,28,98,27,226,25,243,23,196,21,123,19,37,17,189,14,55,12,157,9,26,7,244,4, +105,3,154,2,123,2,227,2,157,3,111,4,40,5,163,5,195,5,118,5,186,4,163,3,73,2,186,0,1,255,45,253, +85,251,149,249,16,248,236,246,61,246,246,245,6,246,104,246,40,247,82,248,224,249,180,251,160,253,131,255,95,1,77,3, +88,5,108,7,110,9,70,11,244,12,140,14,55,16,19,18,5,20,189,21,228,22,80,23,5,23,31,22,186,20,229,18, +155,16,212,13,148,10,240,6,7,3,1,255,16,251,99,247,20,244,30,241,109,238,244,235,177,233,170,231,242,229,154,228, +159,227,234,226,104,226,28,226,22,226,109,226,56,227,129,228,58,230,65,232,120,234,201,236,38,239,140,241,251,243,110,246, +210,248,8,251,255,252,176,254,22,0,28,1,168,1,178,1,73,1,141,0,159,255,153,254,129,253,79,252,252,250,143,249, +28,248,187,246,120,245,95,244,127,243,234,242,165,242,169,242,236,242,95,243,239,243,130,244,2,245,94,245,146,245,149,245, +90,245,221,244,44,244,89,243,111,242,126,241,162,240,254,239,170,239,172,239,4,240,178,240,167,241,195,242,220,243,230,244, +247,245,46,247,133,248,212,249,245,250,219,251,146,252,46,253,208,253,160,254,179,255,17,1,184,2,171,4,224,6,63,9, +160,11,220,13,207,15,93,17,110,18,248,18,8,19,173,18,231,17,171,16,251,14,236,12,154,10,41,8,202,5,166,3, +209,1,80,0,37,255,78,254,196,253,117,253,76,253,70,253,97,253,152,253,222,253,50,254,162,254,66,255,28,0,52,1, +131,2,248,3,121,5,228,6,39,8,67,9,56,10,246,10,102,11,120,11,40,11,129,10,152,9,137,8,105,7,73,6, +50,5,58,4,126,3,18,3,236,2,246,2,25,3,73,3,123,3,163,3,177,3,150,3,84,3,248,2,133,2,238,1, +35,1,43,0,32,255,27,254,33,253,31,252,252,250,176,249,74,248,237,246,180,245,163,244,181,243,239,242,93,242,250,241, +189,241,178,241,254,241,193,242,1,244,160,245,107,247,66,249,38,251,36,253,61,255,101,1,143,3,171,5,178,7,171,9, +175,11,213,13,45,16,184,18,103,21,32,24,189,26,36,29,74,31,40,33,160,34,128,35,152,35,213,34,70,33,30,31, +173,28,58,26,232,23,193,21,210,19,64,18,41,17,138,16,68,16,53,16,70,16,94,16,88,16,253,15,12,15,101,13, +26,11,88,8,61,5,219,1,79,254,200,250,121,247,131,244,251,241,235,239,98,238,108,237,11,237,39,237,156,237,80,238, +71,239,145,240,36,242,225,243,178,245,167,247,231,249,136,252,125,255,158,2,209,5,35,9,165,12,67,16,187,19,190,22, +20,25,161,26,91,27,76,27,147,26,67,25,84,23,176,20,90,17,118,13,60,9,225,4,146,0,101,252,99,248,144,244, +234,240,99,237,245,233,174,230,165,227,243,224,162,222,176,220,19,219,206,217,247,216,173,216,16,217,45,218,242,219,64,222, +0,225,32,228,149,231,82,235,66,239,53,243,245,246,91,250,81,253,200,255,192,1,70,3,95,4,0,5,27,5,180,4, +236,3,234,2,201,1,153,0,104,255,55,254,251,252,177,251,108,250,69,249,90,248,195,247,135,247,140,247,168,247,186,247, +181,247,142,247,56,247,165,246,216,245,214,244,151,243,18,242,86,240,138,238,211,236,73,235,255,233,252,232,64,232,200,231, +160,231,216,231,127,232,151,233,4,235,149,236,32,238,163,239,52,241,232,242,190,244,164,246,134,248,98,250,69,252,69,254, +123,0,237,2,154,5,130,8,164,11,231,14,22,18,253,20,111,23,83,25,166,26,107,27,156,27,38,27,8,26,93,24, +86,22,31,20,198,17,65,15,157,12,4,10,154,7,91,5,55,3,51,1,105,255,225,253,136,252,77,251,62,250,126,249, +38,249,58,249,188,249,166,250,243,251,153,253,146,255,203,1,41,4,144,6,226,8,1,11,212,12,68,14,69,15,209,15, +244,15,201,15,107,15,229,14,61,14,136,13,223,12,70,12,173,11,12,11,107,10,213,9,67,9,157,8,206,7,197,6, +122,5,223,3,252,1,238,255,213,253,186,251,155,249,134,247,148,245,205,243,30,242,123,240,248,238,189,237,218,236,59,236, +217,235,203,235,43,236,249,236,52,238,224,239,243,241,72,244,192,246,86,249,17,252,225,254,154,1,25,4,92,6,116,8, +102,10,39,12,191,13,94,15,45,17,33,19,19,21,250,22,241,24,2,27,27,29,43,31,49,33,10,35,105,36,12,37, +235,36,41,36,223,34,3,33,142,30,173,27,167,24,173,21,221,18,103,16,124,14,37,13,81,12,229,11,179,11,115,11, +240,10,25,10,240,8,108,7,124,5,22,3,68,0,51,253,24,250,30,247,101,244,6,242,13,240,126,238,106,237,227,236, +235,236,105,237,54,238,40,239,32,240,22,241,31,242,87,243,210,244,143,246,139,248,200,250,77,253,18,0,252,2,250,5, +19,9,72,12,119,15,98,18,217,20,200,22,18,24,145,24,56,24,38,23,119,21,45,19,74,16,239,12,95,9,221,5, +141,2,117,255,140,252,206,249,52,247,172,244,42,242,165,239,21,237,116,234,204,231,53,229,193,226,120,224,99,222,153,220, +68,219,144,218,142,218,49,219,102,220,35,222,94,224,5,227,7,230,75,233,172,236,253,239,27,243,245,245,125,248,165,250, +102,252,193,253,195,254,117,255,214,255,237,255,209,255,162,255,124,255,114,255,138,255,184,255,243,255,63,0,164,0,27,1, +143,1,241,1,47,2,43,2,196,1,229,0,139,255,187,253,131,251,238,248,9,246,226,242,143,239,43,236,210,232,170,229, +227,226,162,224,244,222,201,221,13,221,198,220,17,221,0,222,122,223,77,225,82,227,127,229,220,231,112,234,60,237,59,240, +99,243,180,246,67,250,41,254,109,2,250,6,183,11,142,16,97,21,6,26,87,30,54,34,146,37,84,40,93,42,147,43, +237,43,108,43,14,42,216,39,230,36,95,33,103,29,44,25,226,20,171,16,142,12,139,8,166,4,237,0,109,253,40,250, +28,247,88,244,253,241,41,240,227,238,42,238,0,238,108,238,126,239,76,241,223,243,35,247,235,250,252,254,29,3,32,7, +221,10,43,14,237,16,34,19,219,20,31,22,236,22,71,23,71,23,5,23,142,22,228,21,5,21,251,19,206,18,136,17, +57,16,231,14,111,13,149,11,55,9,90,6,19,3,115,255,141,251,115,247,50,243,222,238,160,234,164,230,14,227,1,224, +171,221,60,220,194,219,29,220,33,221,189,222,253,224,223,227,76,231,40,235,95,239,210,243,73,248,140,252,128,0,42,4, +158,7,238,10,42,14,81,17,73,20,245,22,88,25,142,27,174,29,174,31,123,33,20,35,139,36,218,37,230,38,153,39, +245,39,228,39,24,39,79,37,157,34,95,31,232,27,93,24,214,20,121,17,104,14,160,11,15,9,206,6,45,5,94,4, +58,4,111,4,202,4,43,5,99,5,57,5,154,4,155,3,92,2,239,0,76,255,96,253,53,251,247,248,222,246,18,245, +163,243,133,242,163,241,250,240,150,240,120,240,142,240,204,240,47,241,170,241,35,242,149,242,44,243,43,244,181,245,180,247, +249,249,113,252,34,255,15,2,46,5,114,8,202,11,14,15,3,18,117,20,64,22,86,23,190,23,152,23,251,22,225,21, +56,20,5,18,115,15,184,12,250,9,79,7,205,4,121,2,60,0,228,253,64,251,67,248,13,245,205,241,151,238,94,235, +12,232,165,228,86,225,90,222,215,219,223,217,132,216,220,215,232,215,151,216,226,217,209,219,100,222,126,225,234,228,102,232, +189,235,221,238,200,241,127,244,242,246,12,249,192,250,25,252,48,253,34,254,20,255,42,0,115,1,219,2,77,4,210,5, +124,7,75,9,37,11,223,12,59,14,11,15,61,15,200,14,150,13,144,11,195,8,86,5,103,1,6,253,72,248,93,243, +128,238,212,233,89,229,24,225,52,221,220,217,52,215,83,213,65,212,231,211,34,212,217,212,247,213,99,215,26,217,65,219, +3,222,102,225,85,229,187,233,147,238,218,243,133,249,130,255,189,5,24,12,111,18,168,24,176,30,115,36,202,41,118,46, +49,50,203,52,60,54,154,54,253,53,98,52,192,49,28,46,150,41,77,36,96,30,2,24,132,17,45,11,28,5,80,255, +200,249,139,244,176,239,97,235,191,231,211,228,164,226,71,225,203,224,44,225,94,226,86,228,16,231,140,234,199,238,170,243, +253,248,142,254,61,4,230,9,85,15,85,20,197,24,140,28,140,31,174,33,246,34,146,35,180,35,104,35,150,34,40,33, +32,31,149,28,165,25,116,22,28,19,163,15,253,11,5,8,149,3,176,254,139,249,80,244,13,239,212,233,210,228,43,224, +227,219,8,216,215,212,162,210,153,209,181,209,217,210,246,212,12,216,26,220,14,225,218,230,90,237,64,244,23,251,130,1, +105,7,229,12,4,18,189,22,10,27,234,30,77,34,32,37,106,39,89,41,28,43,183,44,252,45,190,46,235,46,147,46, +203,45,165,44,48,43,94,41,1,39,232,35,21,32,200,27,89,23,4,19,207,14,190,10,253,6,187,3,0,1,221,254, +155,253,133,253,141,254,91,0,141,2,206,4,210,6,103,8,127,9,25,10,50,10,217,9,28,9,244,7,80,6,63,4, +241,1,151,255,63,253,220,250,109,248,14,246,224,243,236,241,43,240,150,238,41,237,219,235,177,234,192,233,42,233,28,233, +189,233,21,235,5,237,113,239,80,242,152,245,51,249,20,253,67,1,185,5,65,10,143,14,88,18,107,21,180,23,64,25, +37,26,113,26,43,26,95,25,27,24,99,22,56,20,156,17,160,14,91,11,233,7,83,4,145,0,149,252,90,248,231,243, +69,239,141,234,216,229,55,225,192,220,149,216,224,212,198,209,102,207,213,205,10,205,244,204,142,205,222,206,224,208,128,211, +161,214,36,218,234,221,221,225,223,229,199,233,112,237,206,240,240,243,237,246,217,249,179,252,114,255,13,2,135,4,228,6, +41,9,84,11,90,13,52,15,235,16,131,18,227,19,220,20,63,21,230,20,187,19,186,17,245,14,111,11,40,7,44,2, +168,252,213,246,218,240,213,234,234,228,71,223,9,218,66,213,14,209,151,205,250,202,64,201,113,200,159,200,206,201,234,203, +210,206,100,210,145,214,88,219,192,224,195,230,73,237,51,244,97,251,179,2,19,10,118,17,205,24,250,31,200,38,8,45, +161,50,145,55,201,59,29,63,73,65,18,66,87,65,40,63,186,59,75,55,248,49,201,43,212,36,73,29,94,21,80,13, +97,5,221,253,255,246,229,240,154,235,32,231,124,227,180,224,214,222,243,221,18,222,50,223,68,225,57,228,252,231,120,236, +146,241,43,247,40,253,116,3,236,9,92,16,149,22,116,28,215,33,141,38,106,42,89,45,77,47,56,48,5,48,194,46, +173,44,11,42,243,38,87,35,56,31,179,26,240,21,9,17,13,12,4,7,245,1,233,252,208,247,140,242,30,237,188,231, +156,226,210,221,111,217,159,213,134,210,40,208,143,206,227,205,81,206,226,207,126,210,6,214,111,218,174,223,167,229,52,236, +57,243,147,250,253,1,24,9,156,15,112,21,150,26,25,31,252,34,72,38,17,41,96,43,31,45,63,46,212,46,12,47, +241,46,95,46,49,45,96,43,253,40,38,38,2,35,171,31,23,28,31,24,171,19,214,14,236,9,72,5,37,1,142,253, +132,250,22,248,80,246,41,245,178,244,47,245,216,246,134,249,186,252,251,255,250,2,134,5,131,7,238,8,205,9,30,10, +221,9,16,9,192,7,250,5,214,3,126,1,22,255,173,252,58,250,191,247,80,245,254,242,202,240,187,238,229,236,80,235, +242,233,201,232,232,231,113,231,151,231,150,232,127,234,35,237,70,240,209,243,187,247,240,251,95,0,5,5,210,9,146,14, +248,18,187,22,171,25,189,27,14,29,189,29,204,29,44,29,220,27,253,25,189,23,52,21,93,18,49,15,189,11,30,8, +94,4,107,0,39,252,138,247,177,242,199,237,238,232,56,228,173,223,94,219,102,215,233,211,14,209,242,206,168,205,42,205, +106,205,97,206,26,208,148,210,176,213,60,217,14,221,13,225,41,229,74,233,77,237,25,241,168,244,14,248,110,251,226,254, +91,2,180,5,220,8,216,11,155,14,3,17,7,19,205,20,127,22,29,24,122,25,74,26,73,26,73,25,69,23,75,20, +107,16,183,11,74,6,76,0,233,249,79,243,178,236,66,230,33,224,97,218,13,213,44,208,201,203,7,200,43,197,111,195, +216,194,63,195,132,196,162,198,166,201,149,205,96,210,237,215,41,222,10,229,135,236,136,244,226,252,94,5,210,13,50,22, +120,30,122,38,242,45,154,52,71,58,232,62,113,66,206,68,226,69,152,69,252,67,49,65,86,61,131,56,204,50,73,44, +21,37,77,29,22,21,166,12,76,4,92,252,12,245,107,238,109,232,21,227,132,222,232,218,88,216,212,214,105,214,42,215, +24,217,22,220,2,224,211,228,124,234,214,240,163,247,173,254,204,5,213,12,139,19,185,25,64,31,18,36,35,40,100,43, +197,45,54,47,179,47,70,47,251,45,231,43,49,41,11,38,138,34,155,30,35,26,38,21,210,15,90,10,213,4,66,255, +161,249,11,244,162,238,130,233,174,228,34,224,220,219,241,215,129,212,166,209,136,207,103,206,124,206,206,207,51,210,132,213, +176,217,167,222,70,228,110,234,29,241,84,248,234,255,128,7,182,14,85,21,68,27,120,32,237,36,177,40,210,43,78,46, +20,48,32,49,141,49,135,49,37,49,92,48,43,47,180,45,27,44,103,42,138,40,107,38,211,35,111,32,23,28,252,22, +140,17,36,12,247,6,55,2,23,254,182,250,13,248,10,246,192,244,97,244,27,245,235,246,146,249,159,252,153,255,30,2, +249,3,34,5,177,5,184,5,40,5,239,3,34,2,247,255,155,253,32,251,169,248,115,246,158,244,11,243,149,241,76,240, +87,239,184,238,63,238,191,237,48,237,170,236,77,236,43,236,84,236,245,236,87,238,161,240,181,243,86,247,86,251,152,255, +254,3,106,8,212,12,45,17,68,21,207,24,134,27,71,29,16,30,3,30,76,29,0,28,14,26,110,23,85,20,18,17, +200,13,95,10,213,6,86,3,2,0,183,252,55,249,98,245,73,241,24,237,236,232,204,228,196,224,240,220,121,217,126,214, +12,212,46,210,237,208,94,208,144,208,130,209,21,211,20,213,87,215,216,217,165,220,185,223,228,226,237,229,205,232,157,235, +96,238,245,240,74,243,134,245,226,247,121,250,62,253,32,0,30,3,53,6,72,9,50,12,221,14,69,17,107,19,85,21, +1,23,72,24,215,24,95,24,206,22,58,20,173,16,33,12,185,6,191,0,122,250,14,244,149,237,63,231,67,225,193,219, +183,214,29,210,22,206,228,202,186,200,155,199,113,199,40,200,180,201,3,204,255,206,161,210,242,214,6,220,225,225,126,232, +221,239,243,247,130,0,37,9,155,17,221,25,237,33,174,41,231,48,99,55,245,60,116,65,186,68,159,70,11,71,0,70, +150,67,228,63,8,59,43,53,126,46,51,39,128,31,160,23,198,15,9,8,126,0,79,249,170,242,171,236,79,231,148,226, +152,222,142,219,150,217,184,216,247,216,89,218,212,220,78,224,176,228,239,233,238,239,129,246,114,253,131,4,118,11,16,18, +40,24,157,29,95,34,97,38,136,41,175,43,192,44,212,44,25,44,169,42,142,40,224,37,194,34,76,31,120,27,51,23, +118,18,80,13,223,7,66,2,141,252,193,246,238,240,63,235,224,229,221,224,55,220,11,216,137,212,192,209,176,207,119,206, +102,206,199,207,173,210,229,214,17,220,235,225,88,232,72,239,145,246,5,254,150,5,48,13,143,20,79,27,45,33,26,38, +32,42,72,45,149,47,29,49,3,50,83,50,255,49,16,49,196,47,81,46,182,44,217,42,185,40,104,38,0,36,171,33, +127,31,67,29,136,26,4,23,197,18,19,14,73,9,185,4,163,0,58,253,170,250,250,248,9,248,188,247,32,248,70,249, +29,251,120,253,18,0,119,2,36,4,198,4,83,4,248,2,0,1,185,254,80,252,204,249,44,247,108,244,133,241,148,238, +231,235,193,233,29,232,209,230,217,229,99,229,148,229,111,230,211,231,144,233,128,235,144,237,190,239,30,242,218,244,32,248, +246,251,61,0,210,4,144,9,77,14,216,18,11,23,216,26,69,30,70,33,148,35,195,36,156,36,71,35,18,33,45,30, +166,26,142,22,249,17,248,12,159,7,15,2,119,252,2,247,212,241,8,237,187,232,240,228,122,225,14,222,137,218,7,215, +186,211,189,208,45,206,54,204,255,202,139,202,204,202,187,203,90,205,161,207,126,210,229,213,208,217,31,222,153,226,41,231, +239,235,249,240,244,245,104,250,44,254,109,1,74,4,149,6,16,8,196,8,12,9,81,9,209,9,148,10,140,11,157,12, +172,13,168,14,135,15,40,16,86,16,238,15,243,14,106,13,58,11,57,8,83,4,154,255,47,250,52,244,203,237,43,231, +172,224,170,218,104,213,252,208,102,205,170,202,214,200,252,199,27,200,40,201,28,203,238,205,142,209,227,213,207,218,43,224, +204,229,173,235,245,241,197,248,1,0,112,7,248,14,164,22,114,30,43,38,112,45,231,51,103,57,246,61,150,65,28,68, +76,69,10,69,96,67,94,64,19,60,166,54,82,48,77,41,198,33,253,25,71,18,234,10,250,3,112,253,98,247,246,241, +61,237,38,233,164,229,196,226,152,224,50,223,174,222,47,223,195,224,91,227,237,230,121,235,245,240,53,247,255,253,39,5, +134,12,223,19,218,26,38,33,152,38,35,43,172,46,249,48,234,49,150,49,59,48,4,46,2,43,80,39,32,35,158,30, +242,25,66,21,177,16,72,12,247,7,181,3,131,255,81,251,245,246,73,242,77,237,33,232,241,226,221,221,254,216,116,212, +119,208,81,205,83,203,199,202,214,203,118,206,110,210,126,215,128,221,104,228,43,236,162,244,128,253,95,6,220,14,172,22, +165,29,173,35,180,40,183,44,207,47,37,50,212,51,222,52,67,53,33,53,175,52,22,52,88,51,94,50,23,49,124,47, +124,45,250,42,220,39,27,36,182,31,183,26,58,21,114,15,156,9,248,3,204,254,92,250,225,246,121,244,22,243,132,242, +143,242,34,243,59,244,184,245,86,247,220,248,45,250,51,251,195,251,166,251,207,250,119,249,250,247,142,246,50,245,221,243, +150,242,104,241,100,240,171,239,72,239,11,239,179,238,48,238,159,237,27,237,173,236,102,236,90,236,157,236,71,237,120,238, +79,240,225,242,53,246,56,250,180,254,107,3,39,8,195,12,19,17,226,20,250,23,43,26,96,27,153,27,233,26,131,25, +163,23,114,21,242,18,39,16,58,13,95,10,172,7,30,5,172,2,72,0,208,253,18,251,234,247,78,244,76,240,4,236, +155,231,50,227,221,222,158,218,118,214,139,210,38,207,139,204,207,202,219,201,151,201,255,201,28,203,231,204,77,207,70,210, +206,213,202,217,10,222,105,226,220,230,93,235,225,239,109,244,7,249,167,253,48,2,121,6,107,10,20,14,157,17,27,21, +96,24,36,27,70,29,207,30,199,31,28,32,172,31,99,30,63,28,68,25,102,21,145,16,197,10,35,4,228,252,62,245, +89,237,84,229,93,221,205,213,6,207,60,201,106,196,132,192,163,189,238,187,123,187,71,188,66,190,88,193,120,197,144,202, +131,208,48,215,134,222,132,230,23,239,19,248,76,1,163,10,247,19,25,29,218,37,23,46,174,53,111,60,40,66,182,70, +13,74,36,76,223,76,37,76,238,73,84,70,141,65,211,59,72,53,4,46,53,38,39,30,32,22,54,14,110,6,212,254, +133,247,168,240,110,234,251,228,91,224,147,220,178,217,218,215,38,215,156,215,50,217,231,219,198,223,211,228,242,234,244,241, +173,249,232,1,90,10,176,18,156,26,219,33,45,40,99,45,101,49,37,52,151,53,184,53,153,52,94,50,62,47,109,43, +18,39,71,34,45,29,224,23,110,18,221,12,64,7,172,1,36,252,154,246,253,240,76,235,152,229,8,224,196,218,249,213, +217,209,141,206,34,204,154,202,9,202,150,202,100,204,125,207,205,211,37,217,86,223,65,230,214,237,248,245,125,254,40,7, +165,15,153,23,193,30,250,36,43,42,72,46,98,49,157,51,19,53,196,53,163,53,189,52,79,51,172,49,247,47,29,46, +14,44,228,41,185,39,129,37,27,35,112,32,109,29,4,26,77,22,118,18,159,14,212,10,46,7,232,3,66,1,83,255, +249,253,1,253,106,252,92,252,229,252,209,253,215,254,194,255,120,0,215,0,177,0,215,255,55,254,240,251,63,249,78,246, +39,243,219,239,145,236,105,233,116,230,209,227,182,225,84,224,178,223,186,223,84,224,105,225,229,226,191,228,248,230,135,233, +98,236,140,239,22,243,9,247,83,251,227,255,195,4,248,9,81,15,107,20,253,24,241,28,70,32,221,34,135,36,36,37, +180,36,72,35,253,32,246,29,93,26,90,22,25,18,201,13,136,9,79,5,16,1,223,252,214,248,231,244,232,240,201,236, +163,232,143,228,139,224,134,220,125,216,134,212,197,208,91,205,104,202,18,200,133,198,217,197,7,198,253,198,195,200,111,203, +254,206,68,211,248,215,214,220,185,225,161,230,139,235,79,240,195,244,238,248,234,252,183,0,61,4,121,7,132,10,121,13, +100,16,63,19,238,21,70,24,37,26,122,27,67,28,108,28,208,27,100,26,65,24,123,21,235,17,84,13,173,7,48,1, +39,250,209,242,108,235,52,228,88,221,236,214,8,209,233,203,208,199,220,196,7,195,84,194,201,194,94,196,6,199,183,202, +103,207,247,212,51,219,221,225,210,232,17,240,156,247,94,255,61,7,39,15,2,23,170,30,253,37,214,44,2,51,79,56, +168,60,17,64,138,66,6,68,114,68,197,67,248,65,254,62,215,58,173,53,181,47,24,41,245,33,113,26,177,18,219,10, +35,3,201,251,8,245,18,239,1,234,209,229,122,226,14,224,158,222,49,222,193,222,74,224,193,226,27,230,89,234,122,239, +91,245,200,251,145,2,146,9,166,16,149,23,19,30,211,35,152,40,67,44,228,46,151,48,86,49,255,48,135,47,6,45, +155,41,94,37,120,32,36,27,149,21,233,15,40,10,94,4,156,254,247,248,117,243,36,238,23,233,77,228,175,223,47,219, +223,214,230,210,132,207,246,204,89,203,182,202,53,203,5,205,35,208,110,212,222,217,126,224,57,232,210,240,2,250,133,3, +7,13,34,22,131,30,240,37,57,44,45,49,195,52,35,55,125,56,225,56,84,56,243,54,247,52,152,50,4,48,92,45, +188,42,52,40,192,37,95,35,27,33,240,30,184,28,83,26,190,23,8,21,70,18,146,15,233,12,44,10,107,7,243,4, +235,2,41,1,135,255,50,254,118,253,89,253,146,253,206,253,234,253,225,253,144,253,181,252,30,251,203,248,223,245,130,242, +206,238,204,234,151,230,113,226,168,222,108,219,201,216,213,214,194,213,180,213,145,214,43,216,118,218,124,221,37,225,83,229, +18,234,107,239,51,245,33,251,255,0,170,6,27,12,117,17,207,22,255,27,171,32,139,36,123,39,125,41,166,42,0,43, +109,42,196,40,1,38,77,34,219,29,213,24,91,19,145,13,160,7,166,1,172,251,192,245,8,240,182,234,214,229,57,225, +169,220,42,216,238,211,34,208,213,204,4,202,153,199,124,197,185,195,133,194,21,194,136,194,218,195,233,197,148,200,229,203, +251,207,206,212,39,218,194,223,105,229,1,235,141,240,13,246,95,251,74,0,169,4,115,8,163,11,49,14,33,16,139,17, +151,18,105,19,9,20,106,20,141,20,136,20,111,20,49,20,160,19,154,18,32,17,69,15,15,13,105,10,30,7,254,2, +9,254,117,248,149,242,168,236,201,230,4,225,125,219,123,214,66,210,249,206,180,204,131,203,113,203,131,204,189,206,19,210, +94,214,114,219,41,225,91,231,198,237,45,244,118,250,171,0,226,6,33,13,71,19,43,25,190,30,18,36,45,41,239,45, +23,50,111,53,236,55,158,57,138,58,149,58,144,57,101,55,20,52,179,47,110,42,135,36,58,30,181,23,28,17,153,10, +79,4,90,254,224,248,7,244,228,239,132,236,247,233,70,232,121,231,154,231,182,232,195,234,174,237,100,241,212,245,226,250, +111,0,95,6,140,12,184,18,160,24,23,30,17,35,135,39,90,43,76,46,28,48,174,48,12,48,86,46,163,43,254,39, +127,35,78,30,154,24,148,18,110,12,82,6,92,0,157,250,24,245,202,239,178,234,228,229,121,225,111,221,171,217,26,214, +208,210,0,208,208,205,83,204,172,203,30,204,213,205,201,208,219,212,6,218,90,224,213,231,73,240,94,249,198,2,66,12, +137,21,58,30,253,37,153,44,242,49,255,53,199,56,84,58,191,58,50,58,217,56,214,54,87,52,155,49,210,46,33,44, +168,41,120,39,127,37,151,35,161,33,141,31,71,29,173,26,160,23,40,20,112,16,143,12,121,8,64,4,65,0,220,252, +50,250,62,248,13,247,181,246,23,247,224,247,196,248,156,249,61,250,104,250,239,249,202,248,251,246,152,244,210,241,216,238, +194,235,169,232,183,229,15,227,206,224,23,223,15,222,200,221,82,222,168,223,163,225,5,228,164,230,112,233,112,236,161,239, +227,242,8,246,6,249,0,252,24,255,95,2,225,5,161,9,134,13,105,17,34,21,143,24,147,27,25,30,4,32,33,33, +66,33,105,32,196,30,129,28,159,25,12,22,231,17,112,13,209,8,22,4,81,255,159,250,12,246,132,241,232,236,33,232, +61,227,105,222,199,217,93,213,31,209,251,204,253,200,105,197,151,194,166,192,130,191,36,191,169,191,43,193,181,195,55,199, +148,203,171,208,98,214,154,220,34,227,199,233,96,240,199,246,216,252,99,2,66,7,113,11,247,14,197,17,216,19,102,21, +187,22,239,23,251,24,227,25,171,26,62,27,111,27,11,27,242,25,38,24,176,21,130,18,128,14,154,9,223,3,121,253, +172,246,185,239,209,232,32,226,215,219,46,214,101,209,185,205,75,203,35,202,79,202,217,203,172,206,143,210,64,215,140,220, +96,226,167,232,40,239,147,245,184,251,147,1,52,7,183,12,49,18,161,23,253,28,66,34,105,39,80,44,207,48,185,52, +220,55,22,58,79,59,96,59,29,58,135,55,208,51,39,47,168,41,109,35,160,28,127,21,88,14,115,7,250,0,14,251, +205,245,91,241,221,237,110,235,17,234,179,233,64,234,149,235,150,237,60,240,131,243,79,247,134,251,43,0,60,5,147,10, +5,16,126,21,245,26,71,32,50,37,126,41,23,45,243,47,231,49,185,50,84,50,207,48,60,46,149,42,221,37,65,32, +10,26,112,19,153,12,175,5,247,254,163,248,183,242,38,237,243,231,47,227,224,222,246,218,66,215,159,211,36,208,11,205, +128,202,159,200,145,199,139,199,197,200,115,203,164,207,46,213,237,219,231,227,18,237,16,247,86,1,118,11,47,21,73,30, +127,38,125,45,255,50,241,54,100,57,117,58,74,58,22,57,27,55,150,52,193,49,220,46,37,44,186,41,160,39,210,37, +63,36,188,34,22,33,26,31,141,28,52,25,34,21,182,16,74,12,242,7,152,3,69,255,79,251,50,248,58,246,90,245, +103,245,84,246,12,248,68,250,150,252,181,254,116,0,179,1,67,2,221,1,60,0,100,253,163,249,85,245,179,240,246,235, +102,231,45,227,90,223,20,220,172,217,98,216,41,216,192,216,239,217,156,219,193,221,92,224,92,227,158,230,4,234,136,237, +59,241,40,245,69,249,133,253,239,1,146,6,100,11,40,16,137,20,83,24,122,27,11,30,7,32,86,33,205,33,92,33, +31,32,61,30,185,27,114,24,101,20,211,15,26,11,111,6,189,1,231,252,242,247,249,242,245,237,203,232,127,227,65,222, +70,217,165,212,101,208,153,204,101,201,231,198,40,197,39,196,239,195,139,196,238,197,254,199,185,202,59,206,140,210,131,215, +220,220,101,226,13,232,209,237,142,243,3,249,240,253,62,2,238,5,12,9,169,11,216,13,168,15,56,17,185,18,73,20, +218,21,73,23,137,24,142,25,77,26,168,26,112,26,107,25,124,23,168,20,247,16,93,12,210,6,116,0,118,249,17,242, +124,234,247,226,203,219,70,213,179,207,88,203,104,200,243,198,238,198,66,200,219,202,167,206,129,211,30,217,46,223,148,229, +79,236,72,243,86,250,97,1,96,8,75,15,41,22,0,29,183,35,37,42,46,48,185,53,156,58,160,62,158,65,129,67, +40,68,99,67,20,65,81,61,64,56,254,49,183,42,191,34,101,26,214,17,76,9,41,1,206,249,93,243,212,237,60,233, +171,229,41,227,176,225,70,225,9,226,252,227,238,230,164,234,16,239,48,244,241,249,61,0,248,6,237,13,221,20,159,27, +18,34,250,39,29,45,101,49,215,52,94,55,192,56,189,56,52,55,59,52,9,48,201,42,152,36,159,29,38,22,126,14, +222,6,107,255,71,248,151,241,110,235,211,229,195,224,32,220,192,215,140,211,146,207,241,203,205,200,80,198,147,196,165,195, +184,195,23,197,237,199,57,204,240,209,3,217,83,225,193,234,16,245,201,255,92,10,107,20,208,29,92,38,191,45,169,51, +240,55,175,58,40,60,136,60,235,59,128,58,133,56,33,54,126,51,223,48,130,46,110,44,126,42,128,40,77,38,196,35, +195,32,32,29,203,24,250,19,41,15,196,10,187,6,180,2,178,254,63,251,204,248,79,247,163,246,228,246,64,248,156,250, +134,253,114,0,4,3,26,5,148,6,60,7,215,6,66,5,120,2,175,254,70,250,126,245,123,240,122,235,187,230,80,226, +68,222,218,218,92,216,210,214,7,214,197,213,241,213,141,214,172,215,100,217,201,219,213,222,113,226,151,230,78,235,129,240, +0,246,193,251,220,1,67,8,160,14,146,20,229,25,153,30,188,34,55,38,190,40,22,42,74,42,144,41,6,40,162,37, +85,34,57,30,140,25,124,20,18,15,77,9,48,3,179,252,217,245,196,238,161,231,138,224,172,217,73,211,143,205,125,200, +255,195,27,192,250,188,212,186,193,185,184,185,174,186,174,188,185,191,193,195,178,200,110,206,193,212,114,219,63,226,235,232, +93,239,166,245,189,251,99,1,94,6,167,10,82,14,115,17,11,20,12,22,117,23,111,24,47,25,185,25,236,25,191,25, +82,25,186,24,223,23,126,22,89,20,100,17,181,13,87,9,74,4,143,254,62,248,134,241,154,234,160,227,198,220,79,214, +137,208,193,203,55,200,17,198,78,197,228,197,199,199,223,202,10,207,30,212,224,217,12,224,135,230,80,237,85,244,126,251, +189,2,252,9,25,17,9,24,214,30,111,37,178,43,138,49,226,54,143,59,93,63,39,66,221,67,106,68,171,67,125,65, +231,61,16,57,36,51,84,44,225,36,14,29,17,21,35,13,144,5,159,254,121,248,27,243,122,238,169,234,194,231,204,229, +209,228,240,228,43,230,84,232,74,235,10,239,143,243,196,248,153,254,233,4,112,11,241,17,84,24,130,30,79,36,130,41, +245,45,160,49,121,52,85,54,249,54,64,54,50,52,236,48,144,44,64,39,39,33,125,26,131,19,111,12,100,5,134,254, +239,247,180,241,230,235,132,230,104,225,99,220,97,215,131,210,11,206,58,202,49,199,255,196,188,195,163,195,237,196,174,199, +213,203,81,209,35,216,57,224,100,233,96,243,207,253,43,8,246,17,240,26,9,35,26,42,217,47,12,52,189,54,40,56, +135,56,249,55,170,54,223,52,194,50,109,48,27,46,23,44,114,42,255,40,135,39,224,37,221,35,73,33,248,29,228,25, +86,21,219,16,216,12,43,9,111,5,170,1,116,254,85,252,58,251,208,250,36,251,121,252,191,254,128,1,49,4,114,6, +21,8,11,9,44,9,42,8,201,5,22,2,101,253,25,248,117,242,163,236,228,230,132,225,169,220,94,216,216,212,102,210, +22,209,181,208,16,209,9,210,128,211,102,213,219,215,0,219,202,222,24,227,218,231,0,237,92,242,197,247,81,253,56,3, +115,9,166,15,100,21,125,26,251,30,230,34,25,38,84,40,116,41,124,41,129,40,150,38,204,35,60,32,5,28,94,23, +121,18,98,13,1,8,54,2,251,251,113,245,208,238,71,232,238,225,222,219,51,214,2,209,76,204,9,200,60,196,2,193, +134,190,224,188,21,188,45,188,66,189,124,191,239,194,126,199,235,204,246,210,103,217,250,223,108,230,165,236,181,242,161,248, +66,254,91,3,214,7,203,11,94,15,141,18,57,21,83,23,0,25,125,26,216,27,228,28,121,29,170,29,158,29,74,29, +99,28,159,26,220,23,25,20,93,15,181,9,52,3,249,251,45,244,9,236,204,227,186,219,39,212,114,205,238,199,212,195, +66,193,62,192,195,192,199,194,38,198,165,202,8,208,33,214,194,220,198,227,30,235,212,242,245,250,120,3,39,12,173,20, +219,28,189,36,80,44,85,51,142,57,241,62,136,67,61,71,219,73,47,75,27,75,157,73,186,70,123,66,252,60,111,54, +14,47,30,39,237,30,187,22,182,14,7,7,220,255,80,249,96,243,6,238,88,233,123,229,149,226,193,224,18,224,130,224, +248,225,100,228,206,231,50,236,110,241,97,247,231,253,205,4,209,11,196,18,142,25,11,32,251,37,23,43,55,47,80,50, +85,52,47,53,202,52,54,51,149,48,10,45,171,40,155,35,9,30,30,24,241,17,156,11,63,5,232,254,157,248,126,242, +162,236,238,230,55,225,118,219,204,213,113,208,158,203,121,199,29,196,164,193,51,192,236,191,252,192,140,195,168,199,58,205, +43,212,93,220,152,229,130,239,167,249,153,3,12,13,214,21,198,29,171,36,109,42,17,47,172,50,93,53,50,55,57,56, +161,56,161,56,65,56,116,55,85,54,19,53,182,51,41,50,79,48,249,45,236,42,252,38,42,34,168,28,212,22,25,17, +183,11,176,6,247,1,186,253,102,250,66,248,71,247,102,247,165,248,213,250,121,253,7,0,40,2,176,3,124,4,91,4, +31,3,197,0,114,253,82,249,161,244,184,239,231,234,89,230,52,226,148,222,132,219,21,217,123,215,208,214,240,214,156,215, +158,216,211,217,45,219,199,220,216,222,144,225,241,228,220,232,73,237,60,242,147,247,47,253,48,3,172,9,96,16,221,22, +235,28,110,34,41,39,205,42,36,45,39,46,230,45,101,44,174,41,243,37,125,33,101,28,173,22,122,16,12,10,148,3, +37,253,188,246,68,240,198,233,115,227,123,221,228,215,173,210,217,205,107,201,105,197,233,193,24,191,46,189,81,188,112,188, +107,189,64,191,7,194,208,197,143,202,42,208,108,214,13,221,195,227,76,234,124,240,77,246,210,251,16,1,232,5,53,10, +231,13,3,17,143,19,154,21,56,23,132,24,155,25,149,26,116,27,39,28,144,28,150,28,30,28,5,27,21,25,23,22, +249,17,219,12,238,6,91,0,74,249,241,241,135,234,62,227,68,220,202,213,10,208,76,203,203,199,156,197,183,196,12,197, +149,198,60,201,209,204,22,209,231,213,68,219,52,225,186,231,215,238,135,246,190,254,106,7,100,16,117,25,101,34,1,43, +19,51,100,58,213,64,66,70,107,74,27,77,62,78,214,77,223,75,101,72,136,67,113,61,76,54,94,46,1,38,135,29, +47,21,41,13,148,5,118,254,204,247,168,241,45,236,120,231,151,227,148,224,126,222,107,221,112,221,148,222,218,224,70,228, +210,232,85,238,162,244,155,251,35,3,2,11,250,18,211,26,95,34,100,41,162,47,222,52,233,56,172,59,26,61,40,61, +206,59,22,57,40,53,58,48,121,42,251,35,230,28,115,21,216,13,50,6,138,254,230,246,95,239,45,232,126,225,70,219, +83,213,155,207,77,202,164,197,197,193,197,190,194,188,225,187,63,188,241,189,6,193,128,197,93,203,156,210,40,219,194,228, +9,239,140,249,225,3,188,13,242,22,83,31,167,38,216,44,247,49,25,54,71,57,149,59,45,61,54,62,172,62,106,62, +111,61,246,59,65,58,87,56,19,54,92,51,41,48,103,44,227,39,98,34,245,27,29,21,126,14,109,8,236,2,239,253, +158,249,87,246,101,244,183,243,21,244,132,245,16,248,100,251,209,254,172,1,142,3,108,4,110,4,146,3,152,1,106,254, +84,250,217,245,88,241,243,236,186,232,233,228,213,225,134,223,193,221,107,220,167,219,137,219,242,219,152,220,40,221,132,221, +235,221,187,222,23,224,241,225,84,228,113,231,96,235,251,239,242,244,51,250,238,255,50,6,174,12,235,18,152,24,139,29, +168,33,199,36,187,38,116,39,23,39,217,37,204,35,221,32,247,28,49,24,223,18,91,13,196,7,40,2,188,252,177,247, +244,242,68,238,122,233,160,228,229,223,97,219,254,214,153,210,70,206,85,202,26,199,181,196,18,195,30,194,235,193,155,194, +51,196,166,198,231,201,247,205,195,210,11,216,102,221,143,226,161,231,216,236,55,242,139,247,160,252,95,1,194,5,187,9, +46,13,16,16,126,18,173,20,197,22,216,24,228,26,197,28,65,30,23,31,15,31,3,30,222,27,141,24,3,20,76,14, +148,7,34,0,85,248,141,240,12,233,243,225,107,219,177,213,253,208,112,205,14,203,207,201,169,201,139,202,93,204,3,207, +110,210,145,214,74,219,116,224,4,230,28,236,232,242,100,250,93,2,151,10,240,18,96,27,228,35,77,44,59,52,81,59, +86,65,28,70,120,73,87,75,202,75,238,74,201,72,70,69,82,64,13,58,226,50,77,43,156,35,242,27,108,20,55,13, +128,6,93,0,204,250,206,245,114,241,190,237,176,234,70,232,134,230,110,229,16,229,151,229,50,231,244,233,203,237,150,242, +45,248,111,254,59,5,115,12,248,19,140,27,210,34,117,41,70,47,26,52,194,55,33,58,43,59,205,58,253,56,205,53, +102,49,236,43,146,37,148,30,34,23,100,15,124,7,141,255,187,247,67,240,97,233,22,227,49,221,126,215,241,209,149,204, +127,199,205,194,183,190,143,187,171,185,54,185,62,186,210,188,8,193,222,198,68,206,31,215,31,225,190,235,121,246,17,1, +99,11,44,21,10,30,196,37,90,44,211,49,26,54,46,57,59,59,116,60,232,60,166,60,205,59,123,58,212,56,8,55, +56,53,92,51,74,49,185,46,80,43,227,38,134,33,112,27,237,20,106,14,74,8,186,2,194,253,125,249,41,246,247,243, +227,242,211,242,210,243,245,245,250,248,61,252,30,255,86,1,204,2,89,3,193,2,231,0,248,253,70,250,8,246,109,241, +195,236,97,232,115,228,14,225,76,222,46,220,158,218,159,217,73,217,150,217,69,218,251,218,127,219,245,219,192,220,48,222, +87,224,42,227,162,230,186,234,82,239,60,244,109,249,255,254,222,4,187,10,80,16,137,21,81,26,123,30,211,33,45,36, +120,37,189,37,2,37,46,35,62,32,95,28,209,23,208,18,164,13,138,8,157,3,235,254,126,250,60,246,247,241,144,237, +12,233,125,228,243,223,106,219,223,214,111,210,89,206,217,202,255,199,178,197,219,195,162,194,79,194,1,195,170,196,81,199, +15,203,209,207,72,213,28,219,23,225,49,231,101,237,140,243,113,249,3,255,70,4,46,9,165,13,165,17,59,21,125,24, +125,27,59,30,167,32,171,34,51,36,40,37,108,37,214,36,57,35,111,32,102,28,43,23,224,16,166,9,162,1,23,249, +101,240,226,231,210,223,125,216,39,210,2,205,45,201,197,198,218,197,90,198,24,200,227,202,159,206,45,211,80,216,208,221, +178,227,24,234,21,241,165,248,192,0,67,9,249,17,175,26,61,35,114,43,33,51,26,58,40,64,23,69,189,72,253,74, +211,75,100,75,211,73,19,71,8,67,176,61,39,55,172,47,156,39,80,31,25,23,62,15,245,7,73,1,50,251,181,245, +232,240,224,236,142,233,205,230,141,228,230,226,15,226,61,226,166,227,106,230,127,234,190,239,241,245,214,252,46,4,216,11, +186,19,160,27,69,35,108,42,223,48,104,54,213,58,239,61,123,63,90,63,156,61,107,58,251,53,130,48,50,42,46,35, +147,27,124,19,12,11,114,2,236,249,182,241,226,233,81,226,221,218,146,211,161,204,32,198,249,191,45,186,1,181,218,176, +249,173,134,172,189,172,224,174,244,178,215,184,129,192,3,202,39,213,100,225,50,238,52,251,7,8,29,20,10,31,169,40, +246,48,216,55,66,61,83,65,60,68,20,70,241,70,10,71,145,70,133,69,196,67,86,65,112,62,69,59,220,55,10,52, +151,47,105,42,138,36,255,29,185,22,233,14,42,7,7,0,133,249,109,243,236,237,142,233,164,230,36,229,12,229,141,230, +154,233,162,237,232,241,246,245,140,249,79,252,240,253,107,254,238,253,153,252,147,250,47,248,184,245,59,243,156,240,227,237, +74,235,13,233,57,231,192,229,164,228,255,227,222,227,29,228,101,228,107,228,65,228,69,228,182,228,157,229,29,231,111,233, +147,236,77,240,122,244,37,249,73,254,183,3,44,9,110,14,66,19,114,23,226,26,155,29,161,31,204,32,227,32,221,31, +227,29,31,27,182,23,208,19,160,15,83,11,250,6,141,2,10,254,157,249,133,245,192,241,254,237,239,233,146,229,32,225, +177,220,42,216,136,211,10,207,253,202,136,199,179,196,147,194,78,193,16,193,235,193,204,195,158,198,101,202,34,207,161,212, +133,218,129,224,127,230,138,236,159,242,167,248,121,254,236,3,226,8,87,13,90,17,240,20,30,24,243,26,136,29,214,31, +189,33,34,35,255,35,78,36,218,35,74,34,99,31,40,27,198,21,126,15,143,8,33,1,73,249,64,241,100,233,4,226, +64,219,48,213,10,208,14,204,102,201,30,200,54,200,175,201,111,204,55,208,187,212,207,217,119,223,188,229,155,236,252,243, +206,251,11,4,161,12,97,21,14,30,114,38,96,46,174,53,38,60,125,65,111,69,247,71,67,73,114,73,119,72,70,70, +241,66,158,62,102,57,70,51,60,44,120,36,90,28,64,20,99,12,220,4,199,253,72,247,139,241,167,236,153,232,82,229, +195,226,227,224,186,223,112,223,73,224,141,226,100,230,194,235,103,242,247,249,15,2,93,10,174,18,223,26,204,34,75,42, +38,49,16,55,182,59,237,62,180,64,9,65,217,63,24,61,225,56,118,51,32,45,21,38,116,30,86,22,228,13,73,5, +160,252,1,244,141,235,98,227,138,219,243,211,149,204,134,197,233,190,238,184,212,179,226,175,74,173,58,172,242,172,156,175, +37,180,99,186,77,194,224,203,216,214,180,226,248,238,83,251,118,7,254,18,143,29,255,38,77,47,113,54,86,60,239,64, +75,68,140,70,217,71,84,72,1,72,210,70,206,68,43,66,33,63,188,59,234,55,147,51,150,46,196,40,3,34,117,26, +134,18,217,10,3,4,48,254,33,249,165,244,252,240,134,238,58,237,205,236,59,237,205,238,152,241,50,245,253,248,120,252, +93,255,122,1,140,2,81,2,195,0,81,254,155,251,253,248,96,246,130,243,90,240,32,237,9,234,28,231,81,228,198,225, +176,223,40,222,15,221,27,220,12,219,222,217,230,216,142,216,5,217,78,218,137,220,223,223,53,228,56,233,193,238,225,244, +138,251,104,2,18,9,74,15,245,20,19,26,166,30,145,34,142,37,84,39,201,39,0,39,26,37,67,34,175,30,158,26, +72,22,203,17,45,13,117,8,186,3,32,255,185,250,103,246,237,241,31,237,6,232,194,226,96,221,227,215,131,210,173,205, +175,201,129,198,239,195,225,193,126,192,14,192,209,192,225,194,43,198,124,202,145,207,22,213,173,218,28,224,119,229,0,235, +222,240,242,246,244,252,178,2,48,8,120,13,106,18,199,22,104,26,96,29,210,31,189,33,11,35,194,35,9,36,220,35, +226,34,161,32,226,28,209,23,209,17,65,11,94,4,63,253,238,245,145,238,103,231,177,224,145,218,46,213,186,208,86,205, +239,202,101,201,206,200,99,201,53,203,4,206,137,209,191,213,224,218,30,225,116,232,178,240,165,249,30,3,226,12,173,22, +65,32,117,41,25,50,218,57,77,64,49,69,139,72,140,74,104,75,64,75,27,74,230,71,143,68,48,64,8,59,76,53, +7,47,47,40,223,32,85,25,214,17,132,10,115,3,194,252,154,246,11,241,1,236,115,231,133,227,131,224,175,222,33,222, +226,222,12,225,183,228,202,233,240,239,217,246,98,254,119,6,228,14,98,23,162,31,72,39,244,45,97,51,119,55,34,58, +74,59,234,58,28,57,10,54,221,49,190,44,226,38,135,32,224,25,252,18,205,11,84,4,180,252,20,245,135,237,22,230, +190,222,101,215,255,207,194,200,30,194,107,188,194,183,41,180,207,177,7,177,19,178,245,180,127,185,154,191,94,199,214,208, +156,219,238,230,38,242,3,253,129,7,118,17,146,26,166,34,202,41,19,48,98,53,145,57,183,60,251,62,95,64,235,64, +229,64,139,64,213,63,160,62,248,60,217,58,249,55,19,52,42,47,71,41,75,34,98,26,101,18,69,11,60,5,246,255, +103,251,253,247,255,245,36,245,236,244,67,245,120,246,193,248,193,251,162,254,169,0,189,1,69,2,101,2,163,1,124,255, +48,252,150,248,44,245,207,241,76,238,199,234,116,231,80,228,92,225,195,222,165,220,247,218,180,217,225,216,83,216,190,215, +31,215,225,214,100,215,163,216,124,218,23,221,195,224,140,229,40,235,80,241,234,247,239,254,41,6,43,13,117,19,184,24, +247,28,89,32,222,34,88,36,180,36,28,36,184,34,106,32,253,28,149,24,203,19,63,15,25,11,18,7,224,2,144,254, +102,250,147,246,243,242,44,239,247,234,104,230,195,225,44,221,151,216,45,212,104,208,166,205,199,203,95,202,74,201,207,200, +77,201,220,202,94,205,186,208,248,212,6,218,148,223,39,229,105,234,89,239,35,244,209,248,51,253,19,1,132,4,218,7, +67,11,140,14,106,17,223,19,45,22,112,24,104,26,194,27,100,28,121,28,34,28,36,27,11,25,157,21,13,17,179,11, +173,5,4,255,251,247,2,241,108,234,75,228,159,222,124,217,18,213,154,209,65,207,20,206,5,206,8,207,29,209,61,212, +60,216,228,220,43,226,37,232,200,238,218,245,44,253,199,4,189,12,243,20,29,29,237,36,54,44,214,50,166,56,114,61, +6,65,83,67,122,68,177,68,3,68,68,66,84,63,89,59,160,54,95,49,161,43,110,37,242,30,114,24,34,18,16,12, +48,6,133,0,65,251,154,246,149,242,7,239,221,235,69,233,131,231,185,230,255,230,127,232,90,235,106,239,94,244,253,249, +47,0,209,6,171,13,144,20,110,27,37,34,86,40,134,45,98,49,226,51,17,53,231,52,92,51,145,48,195,44,39,40, +226,34,12,29,184,22,14,16,59,9,89,2,104,251,121,244,179,237,60,231,36,225,101,219,227,213,115,208,3,203,187,197, +224,192,171,188,87,185,55,183,168,182,223,183,196,186,27,191,200,196,237,203,165,212,178,222,122,233,109,244,71,255,229,9, +254,19,47,29,72,37,92,44,126,50,152,55,125,59,29,62,145,63,15,64,216,63,39,63,23,62,156,60,171,58,84,56, +156,53,87,50,75,46,128,41,37,36,83,30,27,24,195,17,175,11,18,6,240,0,103,252,197,248,60,246,165,244,176,243, +79,243,209,243,142,245,95,248,142,251,82,254,84,0,164,1,65,2,226,1,95,0,16,254,132,251,228,248,239,245,130,242, +221,238,92,235,46,232,85,229,195,226,98,224,50,222,93,220,7,219,7,218,10,217,20,216,165,215,50,216,188,217,0,220, +227,222,132,226,232,230,229,235,86,241,61,247,143,253,0,4,24,10,134,15,70,20,125,24,49,28,33,31,237,32,109,33, +208,32,86,31,23,29,37,26,181,22,255,18,18,15,226,10,115,6,226,1,84,253,233,248,163,244,82,240,162,235,112,230, +8,225,226,219,32,215,131,210,243,205,218,201,183,198,154,196,64,195,151,194,227,194,99,196,0,199,108,202,109,206,4,211, +55,216,221,221,171,227,106,233,36,239,6,245,25,251,36,1,221,6,37,12,12,17,160,21,211,25,132,29,146,32,238,34, +160,36,163,37,231,37,103,37,59,36,100,34,158,31,149,27,75,22,46,16,179,9,243,2,199,251,62,244,174,236,91,229, +92,222,204,215,241,209,31,205,148,201,99,199,117,198,181,198,43,200,228,202,199,206,172,211,116,217,15,224,121,231,175,239, +147,248,220,1,72,11,185,20,26,30,39,39,109,47,131,54,78,60,245,64,161,68,70,71,216,72,115,73,46,73,238,71, +131,69,235,65,99,61,49,56,113,50,18,44,12,37,134,29,207,21,45,14,187,6,129,255,159,248,85,242,215,236,38,232, +53,228,35,225,55,223,164,222,113,223,132,225,188,228,15,233,131,238,249,244,46,252,224,3,225,11,8,20,31,28,229,35, +7,43,54,49,59,54,254,57,104,60,99,61,235,60,19,59,255,55,228,51,239,46,67,41,248,34,27,28,166,20,161,12, +60,4,176,251,19,243,113,234,237,225,174,217,184,209,244,201,126,194,178,187,239,181,92,177,9,174,40,172,254,171,172,173, +44,177,109,182,83,189,174,197,62,207,203,217,28,229,236,240,227,252,155,8,189,19,33,30,179,39,75,48,170,55,161,61, +39,66,65,69,236,70,63,71,134,70,37,69,79,67,254,64,54,62,7,59,87,55,222,50,127,45,98,39,172,32,105,25, +223,17,165,10,71,4,225,254,82,250,163,246,0,244,98,242,150,241,131,241,54,242,197,243,39,246,46,249,127,252,200,255, +216,2,115,5,41,7,169,7,16,7,173,5,164,3,244,0,182,253,16,250,254,245,105,241,130,236,204,231,164,227,232,223, +86,220,7,217,58,214,224,211,194,209,1,208,22,207,66,207,91,208,46,210,205,212,108,216,23,221,154,226,166,232,2,239, +156,245,133,252,169,3,181,10,78,17,80,23,174,28,43,33,119,36,115,38,46,39,204,38,118,37,76,35,93,32,210,28, +250,24,3,21,200,16,22,12,242,6,143,1,11,252,72,246,253,239,14,233,216,225,230,218,140,212,220,206,232,201,212,197, +168,194,79,192,163,190,162,189,131,189,154,190,6,193,170,196,98,201,26,207,190,213,21,221,185,228,45,236,34,243,156,249, +198,255,165,5,35,11,73,16,78,21,80,26,23,31,71,35,206,38,219,41,95,44,0,46,133,46,10,46,164,44,47,42, +103,38,33,33,103,26,134,18,242,9,16,1,36,248,77,239,144,230,253,221,206,213,80,206,205,199,141,194,208,190,170,188, +252,187,171,188,183,190,54,194,52,199,120,205,133,212,253,219,241,227,170,236,58,246,98,0,198,10,40,21,108,31,101,41, +179,50,250,58,34,66,55,72,25,77,139,80,126,82,44,83,224,82,169,81,66,79,94,75,11,70,173,63,166,56,30,49, +23,41,172,32,39,24,229,15,39,8,4,1,114,250,86,244,133,238,233,232,165,227,22,223,182,219,247,217,3,218,172,219, +184,222,22,227,181,232,92,239,195,246,180,254,8,7,144,15,16,24,72,32,255,39,0,47,1,53,162,57,141,60,169,61, +35,61,77,59,98,56,101,52,86,47,101,41,216,34,211,27,94,20,147,12,165,4,187,252,243,244,108,237,54,230,56,223, +51,216,247,208,138,201,26,194,251,186,163,180,137,175,249,171,13,170,202,169,32,171,12,174,200,178,158,185,121,194,205,204, +6,216,216,227,21,240,117,252,134,8,200,19,213,29,141,38,16,46,125,52,211,57,20,62,99,65,220,67,107,69,237,69, +120,69,94,68,219,66,245,64,167,62,239,59,178,56,195,52,3,48,115,42,51,36,147,29,234,22,97,16,239,9,175,3, +10,254,95,249,160,245,135,242,51,240,65,239,6,240,9,242,105,244,171,246,198,248,185,250,68,252,251,252,158,252,101,251, +219,249,73,248,144,246,144,244,120,242,128,240,138,238,68,236,149,233,209,230,107,228,132,226,226,224,75,223,170,221,251,219, +77,218,229,216,30,216,53,216,57,217,18,219,145,221,157,224,99,228,28,233,178,238,174,244,139,250,25,0,130,5,217,10, +211,15,1,20,56,23,137,25,12,27,200,27,194,27,255,26,149,25,175,23,118,21,253,18,88,16,155,13,219,10,31,8, +71,5,18,2,95,254,67,250,207,245,232,240,123,235,168,229,178,223,240,217,189,212,71,208,141,204,149,201,121,199,59,198, +206,197,82,198,0,200,237,202,224,206,128,211,143,216,16,222,20,228,115,234,205,240,229,246,195,252,126,2,19,8,105,13, +109,18,26,23,113,27,93,31,189,34,114,37,105,39,155,40,3,41,140,40,3,39,72,36,112,32,150,27,175,21,177,14, +210,6,131,254,36,246,221,237,183,229,207,221,102,214,195,207,22,202,146,197,117,194,215,192,162,192,188,193,35,196,209,199, +188,204,207,210,207,217,103,225,114,233,4,242,47,251,205,4,148,14,73,24,193,33,188,42,232,50,19,58,70,64,140,69, +186,73,148,76,12,78,80,78,156,77,12,76,142,73,240,69,26,65,62,59,183,52,191,45,88,38,136,30,136,22,177,14, +78,7,140,0,131,250,31,245,38,240,122,235,66,231,202,227,82,225,13,224,32,224,147,225,76,228,50,232,50,237,44,243, +236,249,56,1,231,8,215,16,202,24,103,32,100,39,150,45,207,50,191,54,14,57,147,57,109,56,239,53,88,50,164,45, +185,39,191,32,35,25,68,17,65,9,24,1,220,248,196,240,21,233,249,225,108,219,57,213,27,207,238,200,189,194,180,188, +23,183,80,178,209,174,225,172,153,172,251,173,247,176,142,181,251,187,129,196,243,206,181,218,47,231,7,244,238,0,134,13, +112,25,70,36,156,45,59,53,46,59,155,63,161,66,101,68,33,69,8,69,32,68,99,66,251,63,64,61,97,58,77,55, +243,51,98,48,141,44,65,40,79,35,191,29,192,23,163,17,192,11,56,6,238,0,232,251,143,247,80,244,39,242,200,240, +82,240,108,241,114,244,204,248,107,253,177,1,135,5,217,8,79,11,110,12,232,11,236,9,20,7,201,3,246,255,115,251, +135,246,168,241,242,236,50,232,92,227,200,222,230,218,216,215,106,213,103,211,189,209,109,208,127,207,29,207,140,207,0,209, +131,211,252,214,58,219,35,224,215,229,133,236,14,244,244,251,161,3,205,10,141,17,253,23,223,29,173,34,16,38,26,40, +16,41,34,41,66,40,63,38,26,35,40,31,202,26,27,22,14,17,203,11,182,6,19,2,196,253,98,249,168,244,182,239, +208,234,249,229,249,224,179,219,100,214,125,209,91,205,12,202,119,199,168,197,215,196,30,197,87,198,115,200,160,203,254,207, +71,213,234,218,129,224,22,230,225,235,221,241,175,247,2,253,213,1,99,6,213,10,8,15,170,18,153,21,3,24,29,26, +213,27,6,29,193,29,59,30,121,30,52,30,29,29,18,27,28,24,65,20,123,15,198,9,66,3,51,252,237,244,179,237, +169,230,244,223,206,217,110,212,242,207,116,204,48,202,95,201,5,202,236,203,210,206,151,210,60,215,190,220,4,227,218,233, +6,241,101,248,247,255,198,7,185,15,139,23,237,30,173,37,204,43,118,49,213,54,213,59,36,64,107,67,130,69,110,70, +64,70,8,69,221,66,214,63,253,59,83,55,231,49,212,43,59,37,69,30,40,23,28,16,71,9,201,2,215,252,164,247, +67,243,178,239,233,236,231,234,168,233,56,233,185,233,82,235,4,238,156,241,217,245,166,250,9,0,244,5,49,12,134,18, +188,24,153,30,229,35,105,40,234,43,38,46,241,46,64,46,38,44,221,40,172,36,179,31,242,25,123,19,131,12,62,5, +207,253,80,246,243,238,5,232,191,225,25,220,220,214,231,209,80,205,60,201,171,197,126,194,164,191,58,189,130,187,203,186, +91,187,93,189,213,192,185,197,32,204,51,212,221,221,172,232,11,244,138,255,214,10,144,21,77,31,198,39,232,46,180,52, +19,57,2,60,191,61,153,62,159,62,192,61,40,60,28,58,161,55,164,52,95,49,74,46,165,43,76,41,230,38,43,36, +249,32,80,29,52,25,178,20,231,15,3,11,47,6,150,1,119,253,35,250,208,247,129,246,33,246,173,246,66,248,201,250, +203,253,191,0,102,3,179,5,87,7,191,7,150,6,36,4,248,0,94,253,73,249,178,244,197,239,177,234,164,229,223,224, +149,220,203,216,137,213,19,211,171,209,54,209,84,209,188,209,116,210,179,211,159,213,34,216,27,219,154,222,203,226,170,231, +5,237,184,242,182,248,217,254,218,4,114,10,125,15,247,19,227,23,38,27,140,29,240,30,101,31,13,31,218,29,155,27, +88,24,120,20,108,16,85,12,29,8,213,3,214,255,118,252,191,249,94,247,231,244,29,242,3,239,157,235,203,231,121,227, +224,222,112,218,129,214,49,211,116,208,76,206,216,204,63,204,141,204,178,205,148,207,48,210,165,213,2,218,30,223,172,228, +121,234,124,240,148,246,109,252,187,1,123,6,201,10,166,14,255,17,208,20,56,23,94,25,75,27,220,28,219,29,60,30, +45,30,211,29,15,29,144,27,12,25,93,21,125,16,142,10,205,3,118,252,177,244,177,236,201,228,81,221,126,214,118,208, +130,203,249,199,254,197,127,197,111,198,217,200,178,204,182,209,146,215,28,222,80,229,22,237,55,245,138,253,27,6,248,14, +250,23,195,32,3,41,151,48,123,55,172,61,7,67,85,71,102,74,41,76,166,76,238,75,16,74,12,71,231,66,196,61, +227,55,109,49,103,42,214,34,228,26,225,18,37,11,247,3,144,253,15,248,125,243,209,239,244,236,195,234,35,233,28,232, +198,231,61,232,152,233,240,235,88,239,204,243,57,249,126,255,115,6,228,13,134,21,255,28,253,35,58,42,128,47,156,51, +100,54,183,55,146,55,10,54,57,51,38,47,209,41,87,35,237,27,221,19,109,11,207,2,45,250,170,241,92,233,90,225, +200,217,195,210,53,204,249,197,46,192,36,187,13,183,226,179,147,177,47,176,228,175,231,176,73,179,2,183,26,188,189,194, +13,203,229,212,201,223,45,235,201,246,142,2,62,14,83,25,96,35,75,44,20,52,146,58,144,63,3,67,29,69,46,70, +111,70,222,69,104,68,52,66,155,63,216,60,224,57,135,54,193,50,164,46,35,42,21,37,128,31,180,25,253,19,123,14, +58,9,84,4,241,255,69,252,112,249,92,247,233,245,63,245,175,245,63,247,127,249,219,251,4,254,250,255,184,1,222,2, +229,2,165,1,109,255,154,252,55,249,37,245,132,240,174,235,240,230,76,226,184,221,94,217,163,213,229,210,60,209,120,208, +81,208,169,208,132,209,220,210,163,212,236,214,218,217,101,221,95,225,158,229,24,234,231,238,52,244,240,249,195,255,81,5, +137,10,139,15,85,20,151,24,237,27,43,30,127,31,34,32,9,32,237,30,168,28,121,25,208,21,221,17,136,13,213,8, +26,4,190,255,234,251,125,248,40,245,175,241,24,238,144,234,28,231,152,227,2,224,131,220,68,217,97,214,239,211,245,209, +110,208,103,207,18,207,167,207,75,209,245,211,107,215,100,219,183,223,100,228,119,233,214,238,51,244,61,249,229,253,92,2, +200,6,14,11,236,14,73,18,91,21,97,24,65,27,158,29,73,31,100,32,7,33,14,33,57,32,99,30,136,27,187,23, +0,19,73,13,164,6,84,255,173,247,244,239,114,232,107,225,5,219,71,213,75,208,92,204,202,201,188,200,37,201,245,202, +43,206,172,210,51,216,114,222,65,229,139,236,52,244,20,252,6,4,244,11,204,19,115,27,191,34,127,41,148,47,252,52, +195,57,231,61,76,65,205,67,91,69,242,69,128,69,233,67,28,65,40,61,57,56,146,50,90,44,154,37,100,30,3,23, +207,15,239,8,98,2,52,252,149,246,197,241,233,237,11,235,38,233,59,232,74,232,83,233,80,235,56,238,252,241,126,246, +158,251,68,1,85,7,165,13,9,20,88,26,95,32,215,37,143,42,113,46,97,49,33,51,132,51,141,50,79,48,204,44, +6,40,29,34,77,27,218,19,5,12,252,3,205,251,132,243,77,235,101,227,230,219,192,212,236,205,136,199,194,193,189,188, +134,184,29,181,132,178,210,176,51,176,226,176,24,179,244,182,115,188,142,195,71,204,138,214,254,225,35,238,141,250,252,6, +45,19,189,30,57,41,74,50,210,57,201,63,41,68,236,70,39,72,15,72,229,70,230,68,57,66,234,62,252,58,145,54, +254,49,151,45,97,41,40,37,210,32,121,28,48,24,229,19,137,15,40,11,228,6,215,2,5,255,134,251,168,248,216,246, +58,246,153,246,187,247,178,249,159,252,63,0,231,3,14,7,167,9,191,11,252,12,220,12,89,11,232,8,223,5,56,2, +216,253,221,248,125,243,228,237,47,232,134,226,39,221,84,216,69,212,30,209,210,206,47,205,30,204,191,203,57,204,143,205, +171,207,111,210,183,213,118,217,163,221,39,226,246,230,56,236,11,242,27,248,210,253,222,2,108,7,203,11,240,15,115,19, +2,22,184,23,213,24,81,25,235,24,148,23,133,21,6,19,50,16,3,13,134,9,5,6,205,2,243,255,92,253,207,250, +16,248,244,244,122,241,187,237,206,233,194,229,168,225,143,221,161,217,31,214,55,211,4,209,181,207,124,207,96,208,70,210, +18,213,160,216,183,220,39,225,228,229,241,234,72,240,187,245,0,251,229,255,110,4,173,8,157,12,28,16,3,19,82,21, +38,23,141,24,107,25,184,25,162,25,77,25,165,24,116,23,141,21,207,18,42,15,164,10,68,5,31,255,103,248,91,241, +57,234,55,227,140,220,120,214,79,209,97,205,208,202,165,201,242,201,209,203,61,207,16,212,14,218,254,224,180,232,7,241, +180,249,122,2,58,11,230,19,92,28,107,36,232,43,162,50,114,56,79,61,66,65,82,68,130,70,204,71,19,72,68,71, +107,69,163,66,252,62,125,58,58,53,91,47,253,40,26,34,163,26,200,18,233,10,86,3,66,252,229,245,119,240,14,236, +181,232,121,230,93,229,89,229,107,230,136,232,155,235,142,239,80,244,189,249,176,255,9,6,168,12,107,19,53,26,227,32, +69,39,37,45,76,50,129,54,145,57,86,59,184,59,168,58,22,56,5,52,151,46,5,40,127,32,46,24,80,15,38,6, +199,252,59,243,185,233,147,224,250,215,253,207,162,200,227,193,190,187,87,182,238,177,155,174,63,172,189,170,48,170,213,170, +217,172,82,176,87,181,14,188,138,196,167,206,15,218,80,230,11,243,253,255,221,12,52,25,122,36,89,46,195,54,194,61, +79,67,76,71,175,73,158,74,86,74,0,73,192,70,212,67,126,64,224,60,250,56,213,52,129,48,8,44,92,39,94,34, +237,28,29,23,75,17,225,11,237,6,55,2,183,253,215,249,13,247,117,245,217,244,25,245,86,246,171,248,215,251,62,255, +81,2,235,4,50,7,7,9,233,9,107,9,169,7,27,5,21,2,141,254,88,250,121,245,48,240,203,234,136,229,138,224, +241,219,229,215,138,212,228,209,214,207,61,206,26,205,133,204,146,204,54,205,104,206,51,208,175,210,215,213,137,217,179,221, +87,226,115,231,234,236,130,242,1,248,91,253,166,2,216,7,159,12,162,16,203,19,64,22,6,24,237,24,197,24,161,23, +197,21,104,19,146,16,57,13,120,9,164,5,25,2,243,254,244,251,216,248,144,245,58,242,234,238,151,235,49,232,186,228, +95,225,86,222,177,219,98,217,109,215,0,214,78,213,117,213,127,214,105,216,45,219,193,222,3,227,194,231,222,236,75,242, +243,247,156,253,3,3,255,7,156,12,253,16,36,21,227,24,24,28,201,30,251,32,133,34,46,35,254,34,81,34,119,33, +78,32,103,30,117,27,116,23,135,18,218,12,132,6,124,255,201,247,188,239,191,231,7,224,181,216,18,210,132,204,79,200, +138,197,66,196,141,196,126,198,18,202,38,207,127,213,192,220,134,228,147,236,223,244,116,253,76,6,72,15,40,24,152,32, +92,40,111,47,215,53,133,59,105,64,125,68,184,71,3,74,48,75,25,75,197,73,88,71,230,67,104,63,229,57,116,51, +53,44,91,36,55,28,26,20,78,12,19,5,149,254,248,248,101,244,252,240,176,238,101,237,18,237,185,237,65,239,120,241, +49,244,91,247,254,250,25,255,143,3,65,8,27,13,253,17,188,22,60,27,94,31,252,34,244,37,44,40,121,41,171,41, +179,40,160,38,138,35,132,31,159,26,246,20,185,14,14,8,3,1,170,249,48,242,190,234,104,227,76,220,134,213,40,207, +69,201,244,195,53,191,255,186,113,183,203,180,55,179,195,178,135,179,171,181,71,185,86,190,198,196,147,204,195,213,26,224, +7,235,246,245,179,0,69,11,130,21,241,30,33,39,11,46,240,51,217,56,146,60,10,63,110,64,230,64,137,64,122,63, +220,61,193,59,87,57,232,54,138,52,246,49,217,46,34,43,238,38,86,34,95,29,28,24,196,18,145,13,166,8,34,4, +59,0,39,253,4,251,213,249,144,249,47,250,191,251,59,254,58,1,17,4,97,6,89,8,35,10,73,11,9,11,67,9, +166,6,185,3,70,0,247,251,248,246,178,241,74,236,212,230,158,225,250,220,13,217,223,213,117,211,176,209,80,208,54,207, +135,206,134,206,86,207,221,208,233,210,85,213,41,216,130,219,85,223,90,227,74,231,45,235,53,239,99,243,131,247,129,251, +106,255,26,3,42,6,85,8,214,9,39,11,109,12,87,13,152,13,60,13,126,12,115,11,19,10,84,8,53,6,200,3, +53,1,149,254,203,251,183,248,101,245,247,241,125,238,243,234,104,231,22,228,97,225,151,223,171,222,82,222,103,222,22,223, +128,224,125,226,212,228,135,231,170,234,27,238,141,241,209,244,249,247,41,251,86,254,53,1,145,3,165,5,243,7,180,10, +149,13,23,16,16,18,170,19,255,20,225,21,29,22,206,21,74,21,176,20,161,19,144,17,59,14,194,9,103,4,84,254, +165,247,130,240,61,233,82,226,32,220,179,214,239,209,247,205,57,203,10,202,112,202,72,204,138,207,64,212,81,218,106,225, +32,233,45,241,141,249,69,2,46,11,255,19,123,28,121,36,222,43,141,50,100,56,55,61,235,64,153,67,114,69,135,70, +176,70,181,69,126,67,30,64,205,59,202,54,50,49,14,43,127,36,179,29,187,22,168,15,191,8,84,2,133,252,87,247, +240,242,146,239,92,237,60,236,21,236,223,236,160,238,64,241,113,244,237,247,191,251,40,0,49,5,149,10,8,16,112,21, +214,26,55,32,116,37,71,42,87,46,94,49,70,51,28,52,220,51,92,50,112,47,24,43,155,37,87,31,131,24,34,17, +72,9,51,1,18,249,220,240,164,232,193,224,117,217,170,210,51,204,33,198,169,192,235,187,249,183,219,180,144,178,40,177, +208,176,169,177,181,179,11,183,242,187,155,194,221,202,80,212,154,222,139,233,253,244,167,0,8,12,152,22,33,32,189,40, +124,48,46,55,146,60,144,64,35,67,97,68,146,68,21,68,19,67,138,65,139,63,65,61,188,58,250,55,242,52,123,49, +99,45,176,40,153,35,84,30,252,24,184,19,176,14,2,10,192,5,249,1,189,254,47,252,148,250,27,250,165,250,199,251, +14,253,67,254,111,255,156,0,135,1,167,1,172,0,219,254,189,252,105,250,140,247,13,244,56,240,62,236,16,232,204,227, +202,223,55,220,25,217,146,214,199,212,149,211,190,210,45,210,247,209,53,210,241,210,24,212,133,213,57,215,103,217,33,220, +39,223,24,226,200,228,103,231,93,234,221,237,170,241,94,245,199,248,236,251,197,254,34,1,237,2,74,4,101,5,58,6, +170,6,159,6,4,6,215,4,60,3,89,1,58,255,251,252,206,250,186,248,147,246,74,244,253,241,184,239,99,237,248,234, +147,232,101,230,159,228,70,227,54,226,93,225,233,224,32,225,25,226,195,227,25,230,45,233,255,236,92,241,252,245,172,250, +77,255,189,3,229,7,181,11,35,15,70,18,62,21,251,23,64,26,249,27,66,29,25,30,81,30,230,29,22,29,37,28, +26,27,166,25,99,23,31,20,224,15,176,10,154,4,203,253,132,246,0,239,130,231,84,224,168,217,155,211,87,206,33,202, +69,199,253,197,106,198,146,200,113,204,236,209,190,216,124,224,195,232,91,241,64,250,119,3,225,12,56,22,55,31,174,39, +114,47,79,54,36,60,239,64,201,68,202,71,243,73,35,75,51,75,6,74,170,71,73,68,248,63,176,58,141,52,222,45, +224,38,158,31,52,24,241,16,25,10,194,3,241,253,186,248,58,244,142,240,199,237,249,235,66,235,160,235,225,236,196,238, +55,241,81,244,39,248,164,252,151,1,210,6,58,12,182,17,40,23,121,28,131,33,9,38,220,41,239,44,41,47,71,48, +24,48,149,46,196,43,172,39,121,34,107,28,157,21,28,14,21,6,200,253,84,245,192,236,60,228,26,220,142,212,148,205, +36,199,74,193,21,188,141,183,199,179,224,176,3,175,99,174,39,175,82,177,216,180,202,185,68,192,57,200,82,209,24,219, +75,229,235,239,219,250,146,5,122,15,110,24,160,32,29,40,175,46,46,52,160,56,32,60,195,62,179,64,13,66,186,66, +155,66,222,65,221,64,141,63,141,61,183,58,63,55,56,51,140,46,79,41,203,35,43,30,109,24,154,18,229,12,166,7, +42,3,127,255,139,252,112,250,158,249,66,250,205,251,88,253,124,254,126,255,149,0,80,1,7,1,165,255,169,253,105,251, +186,248,109,245,205,241,93,238,76,235,108,232,153,229,228,226,109,224,92,222,239,220,55,220,241,219,188,219,119,219,63,219, +60,219,145,219,85,220,132,221,249,222,141,224,57,226,23,228,38,230,51,232,20,234,209,235,150,237,139,239,182,241,232,243, +222,245,123,247,210,248,227,249,156,250,22,251,151,251,53,252,167,252,144,252,222,251,231,250,1,250,48,249,57,248,251,246, +141,245,12,244,125,242,222,240,54,239,144,237,224,235,21,234,69,232,170,230,109,229,152,228,64,228,129,228,91,229,191,230, +191,232,130,235,241,238,175,242,105,246,16,250,206,253,180,1,151,5,52,9,120,12,131,15,110,18,39,21,143,23,166,25, +118,27,238,28,228,29,70,30,51,30,228,29,112,29,169,28,66,27,32,25,77,22,170,18,234,13,255,7,49,1,200,249, +239,241,232,233,16,226,168,218,205,211,175,205,164,200,11,197,39,195,23,195,229,196,131,200,172,205,251,211,46,219,42,227, +206,235,233,244,90,254,12,8,193,17,19,27,177,35,128,43,109,50,78,56,8,61,199,64,210,67,53,70,178,71,24,72, +105,71,193,69,45,67,163,63,33,59,205,53,244,47,201,41,73,35,105,28,93,21,130,14,5,8,217,1,18,252,4,247, +252,242,250,239,229,237,201,236,190,236,189,237,153,239,35,242,67,245,247,248,63,253,255,1,14,7,64,12,114,17,143,22, +139,27,73,32,150,36,75,40,79,43,115,45,112,46,29,46,136,44,218,41,42,38,114,33,179,27,22,21,230,13,103,6, +180,254,191,246,132,238,51,230,11,222,33,214,122,206,86,199,21,193,206,187,96,183,214,179,116,177,102,176,167,176,48,178, +18,181,85,185,232,190,155,197,47,205,116,213,69,222,107,231,161,240,191,249,185,2,108,11,157,19,62,27,96,34,236,40, +182,46,206,51,108,56,132,60,207,63,62,66,254,67,26,69,103,69,182,68,240,66,23,64,74,60,179,55,118,50,189,44, +189,38,152,32,97,26,77,20,189,14,250,9,255,5,169,2,2,0,87,254,223,253,90,254,55,255,32,0,21,1,244,1, +48,2,99,1,213,255,16,254,20,252,126,249,96,246,89,243,183,240,63,238,198,235,126,233,136,231,197,229,42,228,220,226, +246,225,96,225,239,224,116,224,209,223,26,223,157,222,166,222,62,223,41,224,43,225,52,226,91,227,171,228,3,230,43,231, +18,232,227,232,216,233,5,235,74,236,118,237,111,238,72,239,20,240,199,240,109,241,78,242,154,243,15,245,45,246,192,246, +244,246,6,247,12,247,253,246,205,246,115,246,230,245,36,245,63,244,89,243,138,242,201,241,6,241,70,240,165,239,76,239, +76,239,151,239,17,240,172,240,101,241,82,242,147,243,44,245,233,246,151,248,48,250,202,251,120,253,74,255,72,1,108,3, +175,5,25,8,173,10,99,13,46,16,250,18,150,21,194,23,91,25,107,26,28,27,131,27,143,27,16,27,218,25,218,23, +255,20,43,17,70,12,105,6,209,255,177,248,49,241,154,233,64,226,90,219,6,213,113,207,215,202,138,199,222,197,0,198, +232,199,101,203,59,208,47,214,14,221,179,228,236,236,127,245,80,254,71,7,42,16,169,24,149,32,222,39,105,46,11,52, +186,56,166,60,0,64,193,66,178,68,160,69,114,69,40,68,219,65,166,62,134,58,126,53,186,47,114,41,177,34,130,27, +53,20,51,13,178,6,193,0,131,251,50,247,5,244,17,242,79,241,170,241,7,243,61,245,23,248,94,251,233,254,169,2, +156,6,171,10,169,14,121,18,34,22,185,25,61,29,147,32,159,35,85,38,169,40,102,42,67,43,24,43,237,41,216,39, +223,36,243,32,0,28,22,22,112,15,73,8,169,0,136,248,0,240,77,231,168,222,51,214,22,206,159,198,27,192,153,186, +10,182,141,178,104,176,171,175,50,176,238,177,5,181,148,185,132,191,125,198,31,206,61,214,205,222,164,231,118,240,47,249, +233,1,140,10,210,18,160,26,4,34,216,40,218,46,31,52,1,57,119,61,10,65,129,67,36,69,45,70,109,70,147,69, +132,67,69,64,244,59,198,54,251,48,191,42,50,36,121,29,194,22,84,16,140,10,164,5,141,1,33,254,123,251,247,249, +197,249,131,250,146,251,179,252,9,254,113,255,64,0,5,0,30,255,35,254,249,252,21,251,128,248,221,245,112,243,233,240, +43,238,140,235,46,233,225,230,171,228,221,226,146,225,153,224,189,223,216,222,208,221,196,220,15,220,245,219,105,220,35,221, +224,221,144,222,83,223,51,224,255,224,134,225,202,225,248,225,71,226,218,226,179,227,177,228,179,229,190,230,242,231,83,233, +228,234,200,236,12,239,86,241,44,243,113,244,80,245,216,245,255,245,216,245,134,245,7,245,58,244,23,243,205,241,162,240, +192,239,28,239,153,238,67,238,79,238,226,238,239,239,81,241,224,242,127,244,43,246,6,248,42,250,122,252,180,254,188,0, +167,2,134,4,87,6,41,8,26,10,59,12,147,14,47,17,5,20,251,22,2,26,0,29,170,31,188,33,54,35,60,36, +221,36,2,37,133,36,68,35,51,33,60,30,45,26,225,20,129,14,107,7,235,255,21,248,254,239,243,231,98,224,149,217, +167,211,170,206,195,202,56,200,94,199,96,200,22,203,52,207,137,212,247,218,65,226,20,234,52,242,148,250,50,3,217,11, +42,20,226,27,1,35,153,41,140,47,155,52,197,56,71,60,73,63,164,65,17,67,123,67,243,66,117,65,220,62,30,59, +104,54,243,48,223,42,67,36,68,29,31,22,24,15,78,8,213,1,231,251,211,246,189,242,180,239,222,237,92,237,20,238, +197,239,63,242,102,245,31,249,63,253,165,1,70,6,23,11,235,15,134,20,217,24,1,29,6,33,173,36,164,39,193,41, +21,43,185,43,156,43,141,42,92,40,12,37,206,32,211,27,30,22,161,15,112,8,188,0,176,248,117,240,51,232,254,223, +234,215,32,208,204,200,249,193,178,187,41,182,151,177,34,174,225,171,221,170,16,171,125,172,84,175,213,179,22,186,225,193, +198,202,86,212,84,222,155,232,252,242,54,253,11,7,90,16,19,25,27,33,84,40,185,46,79,52,252,56,172,60,124,63, +143,65,225,66,93,67,11,67,250,65,41,64,141,61,38,58,8,54,99,49,114,44,64,39,183,33,238,27,49,22,179,16, +127,11,170,6,102,2,225,254,74,252,219,250,178,250,150,251,10,253,159,254,27,0,109,1,130,2,51,3,93,3,253,2, +39,2,213,0,243,254,169,252,83,250,23,248,194,245,44,243,115,240,216,237,141,235,154,233,221,231,51,230,152,228,15,227, +146,225,42,224,243,222,14,222,144,221,112,221,141,221,220,221,107,222,44,223,231,223,109,224,196,224,41,225,216,225,220,226, +14,228,77,229,133,230,180,231,233,232,54,234,160,235,38,237,191,238,56,240,69,241,191,241,204,241,173,241,120,241,40,241, +206,240,140,240,116,240,125,240,156,240,194,240,225,240,239,240,231,240,220,240,254,240,110,241,35,242,14,243,34,244,69,245, +107,246,181,247,82,249,74,251,115,253,165,255,228,1,72,4,219,6,156,9,144,12,188,15,26,19,157,22,20,26,66,29, +27,32,166,34,184,36,10,38,131,38,61,38,100,37,2,36,247,33,33,31,156,27,154,23,38,19,31,14,112,8,49,2, +164,251,246,244,37,238,51,231,94,224,15,218,160,212,60,208,233,204,189,202,243,201,179,202,230,204,77,208,192,212,57,218, +181,224,14,232,240,239,13,248,77,0,177,8,31,17,60,25,153,32,248,38,91,44,215,48,123,52,79,55,90,57,151,58, +229,58,48,58,155,56,100,54,153,51,28,48,231,43,33,39,236,33,94,28,146,22,185,16,17,11,210,5,28,1,4,253, +167,249,43,247,174,245,49,245,151,245,209,246,232,248,216,251,118,255,137,3,231,7,104,12,226,16,50,21,78,25,43,29, +185,32,222,35,140,38,196,40,119,42,123,43,171,43,250,42,111,41,14,39,224,35,247,31,107,27,55,22,66,16,133,9, +37,2,89,250,68,242,244,233,122,225,235,216,121,208,112,200,28,193,160,186,2,181,89,176,218,172,201,170,73,170,78,171, +195,173,194,177,118,183,189,190,29,199,34,208,157,217,143,227,194,237,199,247,74,1,65,10,163,18,83,26,73,33,154,39, +69,45,61,50,149,54,95,58,137,61,242,63,157,65,147,66,191,66,1,66,99,64,12,62,4,59,57,55,161,50,84,45, +133,39,100,33,246,26,67,20,157,13,146,7,131,2,111,254,51,251,232,248,240,247,126,248,35,250,17,252,205,253,108,255, +18,1,124,2,53,3,36,3,131,2,118,1,247,255,16,254,222,251,118,249,3,247,203,244,234,242,55,241,134,239,241,237, +163,236,129,235,58,234,186,232,54,231,213,229,148,228,102,227,73,226,65,225,90,224,135,223,170,222,205,221,36,221,206,220, +184,220,170,220,117,220,40,220,2,220,19,220,33,220,25,220,69,220,254,220,62,222,162,223,216,224,234,225,6,227,51,228, +83,229,93,230,94,231,116,232,177,233,4,235,68,236,83,237,56,238,28,239,28,240,32,241,1,242,198,242,134,243,58,244, +209,244,96,245,32,246,75,247,253,248,47,251,204,253,188,0,210,3,223,6,202,9,147,12,61,15,212,17,101,20,236,22, +97,25,196,27,31,30,92,32,48,34,98,35,17,36,121,36,149,36,45,36,51,35,206,33,33,32,39,30,185,27,175,24, +232,20,92,16,43,11,140,5,150,255,60,249,155,242,242,235,106,229,31,223,99,217,177,212,117,209,202,207,126,207,82,208, +60,210,84,213,173,217,64,223,216,229,19,237,163,244,112,252,117,4,136,12,89,20,158,27,38,34,221,39,183,44,181,48, +217,51,29,54,110,55,199,55,50,55,202,53,167,51,218,48,115,45,130,41,28,37,91,32,92,27,51,22,244,16,211,11, +24,7,223,2,17,255,175,251,7,249,107,247,223,246,54,247,98,248,119,250,117,253,44,1,80,5,153,9,230,13,52,18, +119,22,141,26,83,30,174,33,142,36,248,38,252,40,154,42,187,43,72,44,55,44,117,43,225,41,108,39,42,36,41,32, +91,27,194,21,136,15,207,8,150,1,199,249,111,241,213,232,99,224,93,216,184,208,93,201,127,194,133,188,175,183,46,180, +75,178,31,178,92,179,205,181,171,185,9,191,85,197,234,203,185,210,15,218,234,225,219,233,122,241,190,248,192,255,105,6, +140,12,60,18,180,23,19,29,71,34,46,39,166,43,136,47,190,50,107,53,198,55,170,57,165,58,139,58,155,57,247,55, +116,53,253,49,183,45,215,40,135,35,236,29,52,24,158,18,114,13,215,8,168,4,201,0,171,253,12,252,240,251,91,252, +118,252,110,252,209,252,136,253,233,253,140,253,161,252,127,251,34,250,99,248,122,246,225,244,201,243,245,242,21,242,11,241, +237,239,232,238,35,238,138,237,190,236,132,235,48,234,62,233,163,232,246,231,21,231,62,230,158,229,25,229,134,228,241,227, +120,227,4,227,65,226,248,224,63,223,91,221,155,219,18,218,124,216,154,214,170,212,53,211,136,210,128,210,213,210,136,211, +220,212,230,214,96,217,12,220,217,222,162,225,45,228,106,230,125,232,128,234,115,236,83,238,23,240,155,241,183,242,136,243, +119,244,196,245,69,247,195,248,91,250,78,252,175,254,82,1,18,4,249,6,16,10,43,13,11,16,154,18,233,20,18,23, +31,25,249,26,111,28,126,29,98,30,85,31,56,32,195,32,242,32,29,33,129,33,237,33,8,34,168,33,211,32,146,31, +225,29,184,27,17,25,226,21,26,18,163,13,113,8,146,2,66,252,222,245,151,239,107,233,106,227,223,221,52,217,179,213, +105,211,72,210,105,210,246,211,216,214,196,218,152,223,91,229,255,235,90,243,63,251,121,3,196,11,232,19,185,27,250,34, +97,41,193,46,21,51,91,54,124,56,111,57,67,57,255,55,167,53,105,50,155,46,108,42,215,37,227,32,205,27,207,22, +240,17,36,13,135,8,77,4,147,0,84,253,144,250,99,248,230,246,15,246,229,245,141,246,28,248,108,250,73,253,169,0, +150,4,253,8,173,13,117,18,49,23,200,27,41,32,66,36,221,39,173,42,155,44,210,45,107,46,76,46,88,45,132,43, +201,40,34,37,151,32,50,27,11,21,81,14,56,7,206,255,6,248,250,239,2,232,96,224,247,216,148,209,98,202,206,195, +25,190,97,185,245,181,45,180,240,179,219,180,237,182,123,186,118,191,83,197,185,203,171,210,11,218,98,225,91,232,7,239, +126,245,128,251,195,0,116,5,28,10,6,15,30,20,51,25,38,30,231,34,116,39,197,43,189,47,39,51,188,53,78,55, +232,55,177,55,177,54,224,52,53,50,168,46,64,42,42,37,156,31,224,25,113,20,196,15,209,11,67,8,63,5,134,3, +129,3,128,4,117,5,37,6,241,6,200,7,16,8,125,7,69,6,159,4,122,2,190,255,152,252,136,249,254,246,11,245, +93,243,162,241,226,239,134,238,227,237,197,237,144,237,226,236,242,235,52,235,183,234,26,234,39,233,50,232,148,231,48,231, +160,230,201,229,2,229,158,228,106,228,201,227,92,226,92,224,97,222,207,220,108,219,186,217,179,215,226,213,185,212,43,212, +1,212,62,212,34,213,193,214,191,216,175,218,153,220,206,222,95,225,251,227,74,230,41,232,191,233,87,235,6,237,136,238, +138,239,3,240,65,240,136,240,217,240,61,241,36,242,3,244,190,246,203,249,228,252,66,0,40,4,93,8,78,12,155,15, +90,18,226,20,117,23,2,26,54,28,211,29,243,30,209,31,113,32,182,32,194,32,239,32,92,33,190,33,194,33,124,33, +55,33,4,33,150,32,144,31,201,29,91,27,107,24,255,20,236,16,241,11,244,5,30,255,188,247,42,240,213,232,60,226, +181,220,78,216,253,212,212,210,9,210,203,210,12,213,135,216,0,221,107,226,193,232,219,239,122,247,87,255,31,7,138,14, +114,21,209,27,162,33,207,38,68,43,224,46,112,49,203,50,8,51,110,50,34,49,19,47,66,44,223,40,19,37,252,32, +203,28,182,24,175,20,126,16,36,12,235,7,36,4,227,0,16,254,157,251,166,249,80,248,175,247,206,247,202,248,180,250, +93,253,112,0,178,3,16,7,126,10,234,13,86,17,199,20,33,24,66,27,52,30,252,32,125,35,160,37,88,39,122,40, +203,40,58,40,229,38,230,36,56,34,185,30,73,26,255,20,36,15,252,8,138,2,184,251,178,244,224,237,106,231,22,225, +196,218,174,212,10,207,253,201,225,197,24,195,130,193,182,192,193,192,39,194,241,196,92,200,196,203,82,207,104,211,231,215, +94,220,190,224,102,229,130,234,181,239,152,244,92,249,134,254,87,4,178,10,88,17,2,24,116,30,145,36,63,42,52,47, +34,51,242,53,199,55,173,56,132,56,80,55,97,53,243,50,220,47,213,43,231,38,102,33,220,27,225,22,158,18,179,14, +246,10,3,8,137,6,44,6,213,5,17,5,122,4,124,4,119,4,163,3,21,2,97,0,165,254,113,252,138,249,103,246, +219,243,80,242,130,241,239,240,82,240,198,239,144,239,188,239,230,239,162,239,1,239,117,238,64,238,43,238,233,237,151,237, +136,237,196,237,245,237,213,237,125,237,48,237,245,236,107,236,31,235,243,232,50,230,61,227,56,224,7,221,166,217,102,214, +183,211,188,209,88,208,118,207,62,207,231,207,106,209,103,211,148,213,14,216,3,219,49,222,26,225,116,227,73,229,197,230, +2,232,0,233,174,233,17,234,91,234,222,234,186,235,205,236,41,238,68,240,123,243,122,247,152,251,150,255,185,3,40,8, +120,12,9,16,174,18,178,20,99,22,212,23,247,24,191,25,57,26,149,26,252,26,94,27,164,27,2,28,228,28,107,30, +40,32,144,33,143,34,100,35,1,36,245,35,240,34,12,33,122,30,46,27,253,22,215,17,225,11,99,5,164,254,192,247, +202,240,17,234,29,228,81,223,184,219,51,217,191,215,124,215,127,216,165,218,177,221,145,225,101,230,52,236,190,242,161,249, +149,0,134,7,116,14,72,21,192,27,147,33,158,38,231,42,114,46,37,49,226,50,163,51,91,51,238,49,100,47,14,44, +84,40,104,36,75,32,247,27,108,23,178,18,236,13,76,9,239,4,225,0,71,253,94,250,58,248,199,246,247,245,222,245, +136,246,229,247,206,249,41,252,238,254,56,2,26,6,111,10,214,14,12,19,27,23,18,27,200,30,244,33,119,36,117,38, +22,40,46,41,95,41,154,40,38,39,37,37,107,34,211,30,132,26,197,21,191,16,115,11,200,5,171,255,60,249,214,242, +192,236,215,230,211,224,217,218,83,213,101,208,254,203,84,200,191,197,44,196,75,195,70,195,159,196,89,199,208,202,155,206, +251,210,38,216,159,221,196,226,158,231,177,236,31,242,115,247,70,252,178,0,13,5,150,9,129,14,214,19,50,25,18,30, +105,34,149,38,156,42,239,45,25,48,73,49,231,49,243,49,48,49,160,47,108,45,150,42,247,38,128,34,90,29,11,24, +68,19,76,15,216,11,180,8,85,6,66,5,50,5,56,5,236,4,195,4,7,5,33,5,97,4,0,3,173,1,125,0, +209,254,83,252,131,249,49,247,181,245,207,244,20,244,74,243,143,242,55,242,88,242,123,242,3,242,223,240,146,239,122,238, +104,237,19,236,173,234,159,233,238,232,43,232,12,231,208,229,0,229,220,228,250,228,161,228,126,227,219,225,31,224,94,222, +99,220,25,218,187,215,153,213,216,211,118,210,141,209,88,209,238,209,25,211,134,212,23,214,248,215,93,218,62,221,70,224, +18,227,125,229,154,231,125,233,28,235,100,236,84,237,16,238,198,238,138,239,103,240,151,241,132,243,87,246,185,249,45,253, +162,0,102,4,159,8,245,12,216,16,253,19,99,22,55,24,196,25,71,27,176,28,180,29,49,30,81,30,81,30,93,30, +166,30,88,31,99,32,109,33,35,34,134,34,191,34,186,34,36,34,191,32,128,30,90,27,68,23,116,18,76,13,252,7, +82,2,16,252,89,245,184,238,196,232,211,227,248,223,28,221,43,219,54,218,102,218,187,219,8,222,43,225,32,229,224,233, +78,239,73,245,179,251,112,2,93,9,49,16,129,22,12,28,228,32,64,37,37,41,98,44,178,46,234,47,4,48,16,47, +38,45,114,42,48,39,137,35,135,31,71,27,0,23,216,18,197,14,179,10,175,6,227,2,109,255,86,252,170,249,155,247, +81,246,187,245,171,245,11,246,240,246,131,248,234,250,37,254,253,1,53,6,165,10,41,15,159,19,250,23,42,28,248,31, +34,35,159,37,157,39,65,41,126,42,20,43,203,42,158,41,171,39,14,37,225,33,65,30,56,26,183,21,178,16,44,11, +25,5,139,254,213,247,67,241,193,234,10,228,46,221,141,214,115,208,252,202,94,198,219,194,99,192,170,190,205,189,105,190, +188,192,42,196,14,200,115,204,130,209,210,214,219,219,195,224,23,230,227,235,161,241,250,246,36,252,134,1,97,7,212,13, +205,20,219,27,122,34,150,40,81,46,104,51,68,55,175,57,248,58,90,59,178,58,228,56,29,54,156,50,112,46,141,41, +236,35,177,29,101,23,221,17,143,13,17,10,204,6,12,4,170,2,161,2,214,2,137,2,38,2,48,2,52,2,112,1, +255,255,164,254,143,253,20,252,179,249,205,246,57,244,144,242,236,241,241,241,0,242,204,241,169,241,247,241,105,242,82,242, +115,241,53,240,15,239,255,237,176,236,20,235,155,233,174,232,26,232,71,231,7,230,214,228,65,228,51,228,238,227,196,226, +193,224,130,222,116,220,136,218,155,216,223,214,177,213,54,213,50,213,105,213,244,213,15,215,170,216,84,218,176,219,197,220, +236,221,116,223,71,225,247,226,61,228,68,229,92,230,153,231,222,232,34,234,137,235,54,237,21,239,226,240,158,242,216,244, +9,248,217,251,123,255,171,2,198,5,25,9,109,12,92,15,192,17,184,19,113,21,5,23,114,24,177,25,213,26,12,28, +100,29,149,30,91,31,239,31,235,32,119,34,255,35,205,36,192,36,52,36,93,35,2,34,232,31,54,29,53,26,228,22, +24,19,213,14,62,10,77,5,225,255,12,250,29,244,119,238,116,233,70,229,236,225,89,223,154,221,196,220,211,220,189,221, +159,223,166,226,196,230,164,235,245,240,156,246,137,252,133,2,81,8,200,13,212,18,96,23,110,27,19,31,95,34,68,37, +159,39,72,41,22,42,236,41,201,40,231,38,163,36,37,34,85,31,34,28,175,24,29,21,102,17,137,13,173,9,0,6, +159,2,153,255,3,253,0,251,182,249,50,249,106,249,91,250,7,252,97,254,74,1,155,4,44,8,221,11,146,15,29,19, +91,22,106,25,132,28,161,31,117,34,213,36,230,38,218,40,174,42,27,44,207,44,177,44,211,43,49,42,171,39,64,36, +20,32,62,27,176,21,89,15,70,8,174,0,214,248,227,240,219,232,220,224,32,217,203,209,234,202,164,196,75,191,40,187, +71,184,127,182,201,181,117,182,205,184,149,188,61,193,120,198,84,204,204,210,154,217,117,224,82,231,55,238,19,245,190,251, +42,2,110,8,176,14,22,21,170,27,44,34,17,40,255,44,18,49,132,52,59,55,230,56,115,57,17,57,242,55,29,54, +128,51,20,48,240,43,59,39,15,34,130,28,194,22,51,17,69,12,30,8,145,4,153,1,140,255,156,254,82,254,2,254, +162,253,172,253,56,254,162,254,76,254,92,253,91,252,90,251,236,249,237,247,208,245,43,244,65,243,230,242,181,242,86,242, +202,241,72,241,208,240,29,240,9,239,206,237,202,236,25,236,130,235,189,234,207,233,253,232,117,232,15,232,125,231,149,230, +96,229,7,228,154,226,250,224,255,222,193,220,138,218,146,216,208,214,61,213,22,212,168,211,211,211,32,212,106,212,4,213, +29,214,111,215,189,216,35,218,202,219,168,221,163,223,186,225,240,227,69,230,181,232,50,235,165,237,248,239,30,242,33,244, +18,246,231,247,137,249,13,251,186,252,180,254,236,0,77,3,206,5,88,8,202,10,39,13,117,15,151,17,120,19,77,21, +104,23,189,25,226,27,174,29,124,31,173,33,23,36,72,38,16,40,131,41,172,42,108,43,149,43,13,43,231,41,80,40, +77,38,173,35,87,32,100,28,227,23,175,18,167,12,233,5,215,254,224,247,79,241,56,235,165,229,180,224,138,220,65,217, +232,214,153,213,119,213,152,214,237,216,79,220,155,224,180,229,128,235,216,241,121,248,15,255,99,5,126,11,135,17,124,23, +23,29,250,33,249,37,29,41,109,43,194,44,5,45,94,44,21,43,77,41,255,38,27,36,161,32,165,28,83,24,210,19, +50,15,130,10,243,5,192,1,5,254,187,250,241,247,218,245,154,244,42,244,135,244,201,245,239,247,181,250,215,253,77,1, +18,5,239,8,186,12,150,16,170,20,217,24,213,28,113,32,189,35,211,38,139,41,142,43,176,44,10,45,174,44,122,43, +81,41,73,38,146,34,48,30,254,24,247,18,107,12,179,5,205,254,135,247,234,239,70,232,207,224,122,217,80,210,185,203, +69,198,35,194,18,191,234,188,5,188,211,188,45,191,122,194,105,198,28,203,161,208,173,214,226,220,32,227,102,233,162,239, +158,245,52,251,131,0,224,5,142,11,140,17,156,23,100,29,170,34,106,39,165,43,51,47,219,49,147,51,134,52,216,52, +131,52,112,51,160,49,42,47,13,44,56,40,181,35,199,30,225,25,95,21,80,17,144,13,53,10,167,7,21,6,24,5, +42,4,86,3,5,3,43,3,35,3,114,2,81,1,45,0,252,254,86,253,21,251,165,248,178,246,163,245,69,245,13,245, +161,244,38,244,233,243,221,243,152,243,227,242,11,242,126,241,61,241,240,240,106,240,227,239,160,239,139,239,72,239,138,238, +84,237,223,235,96,234,204,232,211,230,58,228,28,225,197,221,99,218,2,215,195,211,249,208,228,206,99,205,37,204,44,203, +209,202,59,203,41,204,84,205,188,206,131,208,187,210,94,213,86,216,121,219,142,222,121,225,75,228,30,231,227,233,108,236, +158,238,104,240,177,241,123,242,41,243,81,244,54,246,151,248,35,251,224,253,5,1,155,4,104,8,30,12,133,15,144,18, +90,21,241,23,64,26,59,28,18,30,233,31,137,33,138,34,239,34,59,35,205,35,133,36,24,37,113,37,141,37,87,37, +193,36,207,35,113,34,130,32,228,29,148,26,154,22,230,17,82,12,220,5,185,254,50,247,135,239,25,232,112,225,251,219, +207,215,224,212,69,211,26,211,71,212,170,214,78,218,67,223,103,229,114,236,26,244,15,252,2,4,189,11,34,19,22,26, +120,32,47,38,23,43,11,47,4,50,22,52,70,53,103,53,78,52,21,50,31,47,189,43,250,39,187,35,15,31,59,26, +108,21,141,16,145,11,183,6,91,2,158,254,115,251,225,248,8,247,222,245,56,245,13,245,127,245,175,246,150,248,34,251, +52,254,160,1,48,5,177,8,12,12,87,15,200,18,116,22,67,26,27,30,230,33,120,37,158,40,64,43,79,45,134,46, +140,46,83,45,31,43,46,40,113,36,185,31,5,26,156,19,212,12,208,5,150,254,77,247,46,240,60,233,82,226,117,219, +254,212,89,207,183,202,24,199,139,196,76,195,146,195,51,197,170,199,133,202,176,205,45,209,193,212,46,216,159,219,113,223, +162,227,217,231,245,235,66,240,34,245,187,250,11,1,245,7,54,15,123,22,159,29,148,36,5,43,81,48,13,52,87,54, +142,55,225,55,43,55,56,53,24,50,21,46,99,41,17,36,83,30,170,24,153,19,71,15,145,11,109,8,27,6,202,4, +54,4,226,3,151,3,117,3,118,3,63,3,129,2,61,1,132,255,47,253,42,250,210,246,204,243,168,241,156,240,124,240, +219,240,116,241,86,242,151,243,245,244,242,245,65,246,4,246,146,245,3,245,49,244,253,242,125,241,229,239,97,238,7,237, +225,235,12,235,171,234,149,234,71,234,53,233,47,231,104,228,46,225,153,221,151,217,71,213,24,209,122,205,144,202,62,200, +125,198,134,197,150,197,147,198,40,200,32,202,144,204,146,207,248,210,67,214,18,217,130,219,248,221,163,224,91,227,222,229, +21,232,20,234,249,235,209,237,192,239,30,242,62,245,33,249,124,253,14,2,218,6,242,11,22,17,180,21,95,25,18,28, +4,30,107,31,85,32,170,32,92,32,145,31,126,30,59,29,223,27,181,26,51,26,152,26,147,27,147,28,96,29,44,30, +15,31,195,31,214,31,250,30,51,29,203,26,250,23,186,20,232,16,112,12,99,7,231,1,49,252,133,246,63,241,178,236, +243,232,239,229,170,227,82,226,28,226,29,227,74,229,129,232,161,236,136,241,27,247,52,253,130,3,165,9,108,15,218,20, +238,25,152,30,208,34,157,38,254,41,218,44,243,46,1,48,232,47,187,46,157,44,192,41,90,38,147,34,146,30,130,26, +125,22,142,18,176,14,205,10,226,6,21,3,147,255,113,252,195,249,159,247,7,246,247,244,109,244,98,244,214,244,230,245, +198,247,139,250,20,254,37,2,138,6,23,11,131,15,148,19,85,23,249,26,150,30,13,34,28,37,144,39,102,41,173,42, +67,43,243,42,185,41,186,39,4,37,148,33,115,29,188,24,123,19,168,13,87,7,204,0,65,250,184,243,31,237,143,230, +55,224,60,218,186,212,196,207,102,203,171,199,180,196,196,194,12,194,104,194,143,195,113,197,27,200,82,203,177,206,49,210, +57,214,24,219,166,224,109,230,25,236,173,241,92,247,101,253,247,3,11,11,84,18,135,25,119,32,239,38,144,44,242,48, +226,51,129,53,9,54,150,53,48,52,10,50,96,47,35,44,12,40,11,35,140,29,58,24,148,19,174,15,107,12,218,9, +76,8,222,7,5,8,250,7,150,7,71,7,38,7,184,6,184,5,118,4,51,3,168,1,97,255,92,252,38,249,122,246, +190,244,207,243,80,243,31,243,81,243,215,243,65,244,29,244,84,243,33,242,191,240,65,239,136,237,124,235,89,233,152,231, +80,230,30,229,210,227,221,226,195,226,93,227,249,227,11,228,132,227,142,226,43,225,48,223,136,220,135,217,211,214,201,212, +61,211,234,209,234,208,145,208,254,208,4,210,91,211,211,212,124,214,136,216,246,218,109,221,144,223,92,225,26,227,12,229, +56,231,116,233,157,235,175,237,176,239,127,241,241,242,67,244,24,246,211,248,36,252,125,255,185,2,6,6,97,9,111,12, +233,14,211,16,78,18,118,19,92,20,6,21,109,21,137,21,106,21,32,21,185,20,127,20,0,21,154,22,26,25,243,27, +198,30,133,33,31,36,77,38,180,39,49,40,219,39,204,38,11,37,157,34,130,31,167,27,238,22,84,17,9,11,97,4, +191,253,131,247,241,241,44,237,56,233,3,230,121,227,157,225,142,224,118,224,116,225,132,227,127,230,47,234,107,238,29,243, +39,248,96,253,168,2,229,7,255,12,228,17,141,22,248,26,12,31,146,34,72,37,1,39,187,39,158,39,197,38,52,37, +8,35,129,32,196,29,197,26,125,23,17,20,184,16,138,13,113,10,74,7,31,4,48,1,217,254,82,253,147,252,112,252, +209,252,190,253,51,255,29,1,99,3,239,5,171,8,149,11,179,14,241,17,37,21,47,24,8,27,171,29,15,32,57,34, +41,36,193,37,205,38,65,39,37,39,92,38,177,36,35,34,221,30,0,27,146,22,135,17,218,11,174,5,87,255,16,249, +199,242,64,236,117,229,193,222,143,216,8,211,44,206,21,202,224,198,126,196,196,194,180,193,130,193,97,194,77,196,17,199, +123,202,104,206,180,210,88,215,113,220,10,226,235,231,223,237,1,244,146,250,135,1,151,8,177,15,1,23,79,30,245,36, +157,42,139,47,245,51,138,55,211,57,169,58,75,58,38,57,135,55,94,53,108,50,178,46,122,42,251,37,41,33,2,28, +212,22,4,18,180,13,233,9,188,6,57,4,48,2,101,0,185,254,37,253,152,251,254,249,95,248,246,246,252,245,88,245, +178,244,214,243,228,242,26,242,161,241,124,241,168,241,16,242,140,242,4,243,131,243,240,243,3,244,170,243,24,243,122,242, +231,241,148,241,189,241,76,242,236,242,80,243,71,243,164,242,72,241,80,239,18,237,194,234,56,232,36,229,119,225,127,221, +171,217,44,214,242,210,252,207,141,205,225,203,253,202,207,202,59,203,13,204,2,205,234,205,198,206,214,207,116,209,199,211, +156,214,152,217,118,220,60,223,25,226,41,229,97,232,165,235,194,238,123,241,205,243,4,246,101,248,238,250,113,253,212,255, +54,2,218,4,219,7,22,11,80,14,84,17,3,20,85,22,82,24,0,26,95,27,128,28,125,29,109,30,70,31,241,31, +145,32,108,33,144,34,184,35,167,36,91,37,242,37,111,38,162,38,59,38,3,37,243,34,33,32,182,28,209,24,95,20, +26,15,223,8,227,1,164,250,152,243,250,236,244,230,212,225,235,221,69,219,201,217,122,217,113,218,162,220,218,223,243,227, +251,232,249,238,175,245,166,252,112,3,203,9,168,15,21,21,13,26,111,30,45,34,85,37,239,39,231,41,27,43,100,43, +182,42,64,41,63,39,197,36,201,33,86,30,146,26,167,22,156,18,109,14,53,10,58,6,188,2,215,255,142,253,214,251, +170,250,8,250,234,249,80,250,77,251,231,252,251,254,113,1,93,4,213,7,172,11,132,15,26,19,109,22,151,25,154,28, +96,31,214,33,244,35,194,37,69,39,106,40,11,41,14,41,86,40,194,38,82,36,47,33,108,29,230,24,121,19,30,13, +0,6,130,254,18,247,219,239,183,232,118,225,56,218,100,211,117,205,189,200,63,197,213,194,140,193,174,193,61,195,181,197, +151,200,224,203,177,207,204,211,209,215,185,219,210,223,87,228,64,233,90,238,129,243,192,248,74,254,77,4,212,10,186,17, +192,24,164,31,51,38,59,44,107,49,103,53,17,56,151,57,15,58,56,57,251,54,209,51,55,48,255,43,186,38,153,32, +117,26,8,21,89,16,242,11,154,7,199,3,50,1,211,255,191,254,82,253,243,251,64,251,243,250,59,250,232,248,134,247, +124,246,148,245,98,244,226,242,165,241,79,241,237,241,232,242,189,243,133,244,153,245,234,246,239,247,65,248,5,248,185,247, +158,247,109,247,181,246,126,245,96,244,196,243,82,243,106,242,2,241,178,239,207,238,241,237,103,236,234,233,191,230,70,227, +145,223,121,219,255,214,135,210,132,206,24,203,60,200,26,198,244,196,224,196,184,197,77,199,108,201,222,203,118,206,30,209, +190,211,64,214,175,216,51,219,212,221,112,224,223,226,28,229,66,231,96,233,85,235,245,236,90,238,253,239,86,242,99,245, +203,248,106,252,127,0,23,5,188,9,231,13,137,17,234,20,42,24,33,27,147,29,102,31,173,32,149,33,49,34,109,34, +57,34,220,33,210,33,91,34,56,35,2,36,161,36,57,37,200,37,7,38,175,37,194,36,100,35,131,33,204,30,18,27, +143,22,149,17,54,12,82,6,238,255,94,249,37,243,169,237,7,233,64,229,107,226,180,224,55,224,251,224,6,227,100,230, +246,234,105,240,102,246,183,252,47,3,149,9,172,15,69,21,67,26,168,30,131,34,210,37,129,40,141,42,250,43,175,44, +128,44,114,43,201,41,179,39,13,37,170,33,173,29,112,25,44,21,235,16,177,12,158,8,223,4,134,1,142,254,1,252, +255,249,147,248,176,247,86,247,153,247,135,248,26,250,72,252,4,255,73,2,5,6,250,9,203,13,65,17,117,20,166,23, +225,26,228,29,106,32,116,34,53,36,183,37,204,38,71,39,40,39,136,38,93,37,107,35,127,32,151,28,223,23,138,18, +187,12,97,6,106,255,17,248,205,240,218,233,27,227,144,220,161,214,194,209,242,205,227,202,161,200,145,199,195,199,203,200, +91,202,130,204,81,207,144,210,217,213,240,216,245,219,72,223,32,227,84,231,160,235,3,240,203,244,58,250,64,0,122,6, +141,12,122,18,136,24,197,30,190,36,221,41,233,45,241,48,240,50,196,51,78,51,162,49,21,47,243,43,37,40,99,35, +236,29,141,24,215,19,124,15,233,10,78,6,148,2,51,0,185,254,148,253,201,252,132,252,121,252,22,252,13,251,148,249, +32,248,225,246,150,245,248,243,57,242,243,240,146,240,227,240,74,241,123,241,205,241,186,242,50,244,170,245,183,246,119,247, +44,248,180,248,175,248,24,248,85,247,190,246,62,246,130,245,85,244,220,242,108,241,33,240,177,238,185,236,27,234,255,230, +159,227,1,224,11,220,216,215,194,211,26,208,248,204,104,202,158,200,222,199,51,200,82,201,209,202,103,204,8,206,213,207, +237,209,49,212,94,214,88,216,50,218,248,219,158,221,38,223,183,224,113,226,63,228,246,229,179,231,235,233,241,236,173,240, +205,244,39,249,202,253,210,2,35,8,109,13,107,18,6,23,38,27,164,30,98,33,93,35,176,36,141,37,26,38,88,38, +60,38,223,37,144,37,154,37,234,37,43,38,54,38,47,38,66,38,96,38,69,38,142,37,247,35,125,33,64,30,79,26, +177,21,122,16,204,10,214,4,198,254,187,248,221,242,110,237,178,232,213,228,234,225,244,223,255,222,46,223,162,224,88,227, +43,231,241,235,128,241,171,247,65,254,23,5,4,12,209,18,69,25,42,31,77,36,156,40,45,44,14,47,27,49,49,50, +83,50,142,49,233,47,127,45,110,42,195,38,151,34,34,30,150,25,3,21,103,16,219,11,159,7,211,3,83,0,239,252, +196,249,25,247,8,245,109,243,35,242,75,241,52,241,5,242,157,243,217,245,193,248,83,252,95,0,162,4,249,8,101,13, +234,17,121,22,228,26,236,30,95,34,44,37,92,39,229,40,168,41,144,41,161,40,239,38,138,36,128,33,241,29,249,25, +147,21,150,16,245,10,214,4,103,254,187,247,225,240,254,233,83,227,58,221,251,215,145,211,188,207,112,204,20,202,254,200, +228,200,51,201,226,201,101,203,211,205,175,208,145,211,165,214,83,218,187,222,159,227,173,232,193,237,255,242,175,248,235,254, +123,5,19,12,155,18,12,25,40,31,143,36,0,41,117,44,17,47,221,48,149,49,249,48,71,47,246,44,23,42,99,38, +208,33,211,28,5,24,174,19,156,15,136,11,179,7,216,4,89,3,183,2,45,2,167,1,138,1,199,1,171,1,192,0, +91,255,0,254,180,252,20,251,1,249,235,246,122,245,7,245,82,245,196,245,9,246,94,246,12,247,219,247,73,248,57,248, +10,248,20,248,47,248,227,247,4,247,251,245,64,245,180,244,198,243,52,242,96,240,217,238,178,237,100,236,94,234,142,231, +93,228,47,225,254,221,127,218,170,214,247,210,225,207,118,205,146,203,76,202,223,201,84,202,104,203,183,204,9,206,132,207, +102,209,161,211,214,213,185,215,92,217,15,219,2,221,19,223,18,225,21,227,71,229,143,231,156,233,104,235,108,237,36,240, +143,243,68,247,245,250,186,254,202,2,10,7,254,10,76,14,33,17,204,19,72,22,85,24,223,25,20,27,50,28,65,29, +6,30,84,30,116,30,238,30,245,31,51,33,61,34,8,35,212,35,191,36,136,37,193,37,49,37,242,35,45,34,195,31, +109,28,47,24,101,19,77,14,204,8,203,2,138,252,136,246,48,241,166,236,232,232,238,229,179,227,69,226,197,225,79,226, +244,227,201,230,216,234,214,239,78,245,30,251,95,1,2,8,172,14,251,20,182,26,217,31,123,36,148,40,230,43,58,46, +147,47,3,48,128,47,14,46,215,43,7,41,168,37,197,33,139,29,39,25,175,20,55,16,228,11,226,7,84,4,67,1, +169,254,133,252,220,250,164,249,195,248,44,248,253,247,100,248,108,249,245,250,237,252,101,255,93,2,161,5,246,8,79,12, +191,15,78,19,213,22,30,26,37,29,255,31,157,34,195,36,68,38,6,39,254,38,59,38,222,36,235,34,69,32,219,28, +190,24,6,20,186,14,215,8,111,2,182,251,235,244,70,238,237,231,2,226,184,220,72,216,192,212,14,210,63,208,134,207, +215,207,191,208,205,209,3,211,168,212,194,214,1,217,29,219,36,221,97,223,29,226,116,229,81,233,139,237,37,242,72,247, +18,253,87,3,184,9,248,15,46,22,122,28,159,34,18,40,104,44,132,47,117,49,62,50,209,49,59,48,177,45,119,42, +175,38,90,34,145,29,174,24,25,20,244,15,58,12,44,9,36,7,11,6,88,5,171,4,25,4,195,3,92,3,82,2, +101,0,221,253,24,251,49,248,46,245,61,242,167,239,166,237,101,236,235,235,249,235,60,236,180,236,175,237,51,239,187,240, +207,241,129,242,33,243,187,243,49,244,126,244,182,244,244,244,72,245,140,245,88,245,108,244,252,242,98,241,156,239,89,237, +97,234,195,230,169,226,42,222,84,217,75,212,97,207,6,203,140,199,5,197,95,195,138,194,140,194,113,195,30,197,54,199, +91,201,112,203,152,205,254,207,150,210,45,213,163,215,251,217,42,220,34,222,21,224,76,226,208,228,115,231,47,234,48,237, +174,240,196,244,88,249,46,254,34,3,39,8,14,13,146,17,144,21,15,25,247,27,6,30,21,31,76,31,251,30,109,30, +219,29,102,29,16,29,218,28,221,28,68,29,38,30,133,31,68,33,47,35,10,37,148,38,153,39,238,39,107,39,222,37, +25,35,21,31,1,26,45,20,228,13,104,7,249,0,208,250,14,245,217,239,124,235,76,232,129,230,36,230,20,231,29,233, +25,236,253,239,197,244,72,250,62,0,93,6,126,12,133,18,57,24,91,29,216,33,190,37,10,41,150,43,66,45,30,46, +92,46,20,46,49,45,154,43,74,41,70,38,163,34,143,30,39,26,122,21,167,16,229,11,93,7,31,3,68,255,237,251, +52,249,25,247,144,245,142,244,9,244,2,244,156,244,243,245,240,247,84,250,11,253,43,0,182,3,137,7,131,11,139,15, +132,19,75,23,195,26,214,29,125,32,210,34,242,36,195,38,253,39,103,40,248,39,197,38,234,36,120,34,98,31,135,27, +226,22,137,17,156,11,66,5,173,254,7,248,99,241,190,234,52,228,34,222,0,217,252,212,241,209,172,207,39,206,123,205, +155,205,66,206,49,207,107,208,0,210,205,211,172,213,172,215,248,217,167,220,186,223,48,227,40,231,218,235,107,241,194,247, +147,254,147,5,160,12,183,19,206,26,157,33,186,39,213,44,213,48,164,51,35,53,74,53,59,52,48,50,76,47,151,43, +1,39,164,33,245,27,163,22,5,18,225,13,223,9,36,6,57,3,86,1,24,0,0,255,7,254,80,253,167,252,166,251, +35,250,63,248,40,246,3,244,234,241,245,239,99,238,143,237,167,237,127,238,199,239,84,241,42,243,70,245,121,247,118,249, +251,250,252,251,148,252,196,252,107,252,150,251,145,250,145,249,127,248,51,247,158,245,207,243,240,241,39,240,79,238,14,236, +58,233,238,229,81,226,95,222,11,218,112,213,221,208,173,204,26,201,66,198,59,196,28,195,244,194,182,195,49,197,30,199, +87,201,231,203,199,206,183,209,129,212,53,215,6,218,234,220,167,223,26,226,89,228,149,230,227,232,47,235,112,237,213,239, +169,242,6,246,199,249,172,253,150,1,159,5,218,9,253,13,154,17,146,20,16,23,15,25,86,26,206,26,169,26,41,26, +129,25,231,24,129,24,78,24,80,24,186,24,178,25,15,27,141,28,25,30,185,31,75,33,135,34,27,35,206,34,156,33, +148,31,165,28,178,24,215,19,117,14,235,8,110,3,33,254,47,249,200,244,28,241,79,238,122,236,169,235,233,235,54,237, +104,239,65,242,168,245,179,249,99,254,136,3,209,8,11,14,41,19,27,24,179,28,196,32,71,36,75,39,204,41,170,43, +191,44,251,44,114,44,73,43,134,41,19,39,218,35,231,31,120,27,203,22,251,17,21,13,70,8,217,3,252,255,172,252, +212,249,117,247,166,245,127,244,8,244,44,244,213,244,2,246,190,247,229,249,60,252,196,254,178,1,15,5,164,8,74,12, +251,15,174,19,85,23,224,26,54,30,75,33,52,36,10,39,170,41,179,43,203,44,215,44,248,43,80,42,214,39,97,36, +213,31,70,26,237,19,255,12,173,5,55,254,204,246,111,239,32,232,13,225,150,218,35,213,242,208,241,205,229,203,182,202, +121,202,34,203,97,204,239,205,217,207,62,210,239,212,154,215,56,218,15,221,91,224,18,228,10,232,73,236,15,241,148,246, +205,252,127,3,88,10,21,17,158,23,253,29,23,36,136,41,239,45,31,49,13,51,176,51,12,51,63,49,128,46,0,43, +212,38,3,34,186,28,101,23,128,18,80,14,179,10,103,7,133,4,124,2,113,1,238,0,104,0,219,255,119,255,13,255, +33,254,133,252,113,250,48,248,239,245,180,243,127,241,127,239,26,238,135,237,153,237,7,238,185,238,196,239,59,241,5,243, +195,244,14,246,223,246,102,247,162,247,97,247,176,246,241,245,114,245,34,245,172,244,206,243,159,242,117,241,127,240,118,239, +220,237,127,235,156,232,138,229,76,226,165,222,151,218,157,214,46,211,80,208,211,205,201,203,130,202,52,202,182,202,142,203, +87,204,30,205,43,206,127,207,203,208,204,209,155,210,134,211,189,212,34,214,131,215,241,216,176,218,224,220,118,223,106,226, +215,229,224,233,118,238,67,243,243,247,131,252,50,1,16,6,202,10,238,14,74,18,253,20,51,23,254,24,94,26,105,27, +81,28,62,29,59,30,54,31,41,32,67,33,197,34,171,36,140,38,12,40,49,41,41,42,227,42,10,43,75,42,130,40, +196,37,37,34,152,29,29,24,249,17,145,11,57,5,42,255,120,249,39,244,103,239,153,235,241,232,86,231,168,230,242,230, +72,232,170,234,1,238,47,242,21,247,147,252,130,2,175,8,228,14,240,20,172,26,3,32,233,36,74,41,11,45,20,48, +89,50,224,51,180,52,185,52,188,51,169,49,174,46,11,43,217,38,32,34,250,28,142,23,250,17,93,12,221,6,174,1, +5,253,11,249,193,245,22,243,24,241,245,239,189,239,82,240,152,241,154,243,83,246,142,249,16,253,202,0,209,4,36,9, +148,13,223,17,217,21,142,25,42,29,194,32,51,36,54,39,146,41,46,43,14,44,38,44,87,43,138,41,213,38,107,35, +107,31,203,26,128,21,164,15,90,9,161,2,111,251,228,243,82,236,26,229,125,222,158,216,156,211,162,207,190,204,195,202, +155,201,134,201,187,202,235,204,127,207,45,210,28,213,124,216,53,220,4,224,186,227,89,231,2,235,230,238,42,243,212,247, +214,252,41,2,202,7,150,13,80,19,203,24,250,29,210,34,34,39,141,42,181,44,135,45,75,45,68,44,99,42,146,39, +19,36,85,32,145,28,168,24,129,20,101,16,217,12,250,9,89,7,200,4,212,2,254,1,204,1,59,1,229,255,59,254, +183,252,32,251,236,248,20,246,47,243,182,240,142,238,115,236,125,234,34,233,201,232,89,233,77,234,78,235,134,236,66,238, +102,240,110,242,222,243,154,244,249,244,100,245,212,245,239,245,163,245,84,245,82,245,102,245,21,245,42,244,235,242,203,241, +209,240,115,239,59,237,83,234,56,231,10,228,113,224,49,220,158,215,102,211,221,207,197,204,215,201,71,199,117,197,97,196, +174,195,19,195,177,194,237,194,244,195,109,197,219,198,58,200,249,201,100,204,83,207,124,210,218,213,170,217,17,222,199,226, +92,231,183,235,47,240,23,245,66,250,54,255,203,3,90,8,61,13,76,18,6,23,40,27,209,30,45,34,51,37,187,39, +173,41,21,43,28,44,224,44,63,45,252,44,38,44,53,43,137,42,249,41,23,41,204,39,111,38,56,37,226,35,6,34, +144,31,181,28,145,25,251,21,179,17,188,12,105,7,23,2,224,252,182,247,187,242,96,238,31,235,38,233,89,232,143,232, +201,233,31,236,144,239,245,243,24,249,219,254,35,5,188,11,93,18,211,24,246,30,162,36,181,41,31,46,201,49,129,52, +36,54,199,54,160,54,194,53,9,52,91,49,220,45,204,41,81,37,116,32,53,27,151,21,173,15,173,9,239,3,195,254, +84,250,188,246,254,243,4,242,182,240,26,240,81,240,98,241,38,243,122,245,101,248,235,251,213,255,200,3,159,7,123,11, +106,15,59,19,183,22,204,25,134,28,245,30,37,33,255,34,92,36,51,37,155,37,147,37,236,36,126,35,83,33,142,30, +64,27,72,23,111,18,176,12,84,6,169,255,182,248,96,241,205,233,103,226,135,219,100,213,48,208,33,204,110,201,101,200, +65,201,200,203,80,207,93,211,224,215,194,220,146,225,230,229,203,233,142,237,55,241,111,244,237,246,206,248,129,250,128,252, +40,255,152,2,161,6,252,10,138,15,62,20,241,24,92,29,51,33,40,36,0,38,181,38,101,38,29,37,229,34,196,31, +186,27,209,22,66,17,123,11,18,6,144,1,20,254,85,251,71,249,83,248,163,248,158,249,134,250,66,251,38,252,46,253, +208,253,158,253,192,252,157,251,43,250,3,248,38,245,66,242,28,240,251,238,177,238,234,238,116,239,97,240,204,241,124,243, +11,245,88,246,142,247,193,248,183,249,33,250,245,249,128,249,17,249,154,248,199,247,108,246,211,244,124,243,150,242,163,241, +246,239,122,237,178,234,245,231,252,228,89,225,14,221,147,216,97,212,130,208,172,204,223,200,162,197,124,195,90,194,202,193, +149,193,240,193,36,195,33,197,102,199,106,201,26,203,211,204,221,206,56,209,197,211,138,214,163,217,10,221,126,224,216,227, +97,231,149,235,145,240,250,245,114,251,247,0,199,6,0,13,85,19,67,25,131,30,33,35,38,39,96,42,162,44,238,45, +91,46,8,46,16,45,120,43,74,41,212,38,153,36,218,34,113,33,36,32,5,31,75,30,248,29,192,29,74,29,134,28, +147,27,83,26,95,24,117,21,181,17,109,13,200,8,211,3,171,254,162,249,57,245,224,241,193,239,216,238,35,239,151,240, +24,243,130,246,177,250,126,255,209,4,159,10,185,16,206,22,163,28,34,34,52,39,192,43,176,47,203,50,200,52,153,53, +127,53,180,52,50,51,219,48,180,45,228,41,154,37,247,32,8,28,212,22,90,17,161,11,213,5,67,0,45,251,192,246, +48,243,155,240,219,238,172,237,253,236,245,236,181,237,49,239,66,241,188,243,143,246,191,249,90,253,103,1,209,5,95,10, +205,14,247,18,207,22,82,26,136,29,145,32,125,35,53,38,120,40,240,41,99,42,209,41,95,40,37,38,34,35,59,31, +85,26,130,20,254,13,251,6,139,255,206,247,2,240,77,232,181,224,105,217,226,210,161,205,223,201,147,199,185,198,116,199, +199,201,85,205,155,209,94,214,133,219,202,224,192,229,32,234,223,237,15,241,205,243,40,246,43,248,10,250,54,252,31,255, +204,2,223,6,4,11,75,15,237,19,208,24,116,29,89,33,59,36,5,38,190,38,110,38,247,36,45,34,42,30,98,25, +46,20,147,14,170,8,9,3,108,254,3,251,119,248,160,246,216,245,118,246,51,248,93,250,135,252,176,254,197,0,86,2, +2,3,227,2,70,2,49,1,114,255,26,253,154,250,132,248,44,247,117,246,239,245,92,245,5,245,82,245,46,246,31,247, +209,247,82,248,197,248,26,249,32,249,191,248,36,248,154,247,64,247,219,246,11,246,182,244,56,243,253,241,235,240,107,239, +31,237,66,234,80,231,111,228,90,225,200,221,213,217,243,213,129,210,136,207,4,205,46,203,85,202,137,202,129,203,213,204, +69,206,199,207,76,209,143,210,59,211,70,211,11,211,240,210,11,211,49,211,94,211,221,211,251,212,189,214,15,217,29,220, +62,224,121,229,97,235,112,241,134,247,225,253,143,4,33,11,0,17,239,21,29,26,196,29,217,32,27,35,110,36,18,37, +110,37,169,37,153,37,36,37,136,36,59,36,117,36,245,36,77,37,94,37,88,37,84,37,35,37,141,36,132,35,13,34, +19,32,88,29,153,25,223,20,139,15,11,10,144,4,41,255,2,250,109,245,185,241,17,239,126,237,248,236,122,237,245,238, +82,241,118,244,92,248,249,252,38,2,176,7,113,13,89,19,85,25,53,31,184,36,164,41,206,45,24,49,116,51,219,52, +78,53,217,52,149,51,153,49,247,46,198,43,36,40,41,36,218,31,45,27,25,22,192,16,113,11,125,6,20,2,67,254, +0,251,44,248,177,245,146,243,232,241,205,240,80,240,121,240,67,241,165,242,162,244,70,247,144,250,86,254,89,2,118,6, +187,10,52,15,182,19,2,24,0,28,188,31,38,35,4,38,20,40,49,41,86,41,144,40,229,38,64,36,132,32,180,27, +5,22,198,15,61,9,134,2,146,251,81,244,236,236,189,229,16,223,6,217,206,211,171,207,196,204,35,203,236,202,62,204, +209,206,18,210,157,213,105,217,102,221,79,225,245,228,115,232,251,235,143,239,20,243,99,246,94,249,49,252,121,255,191,3, +204,8,251,13,24,19,90,24,162,29,80,34,236,37,113,40,248,41,110,42,180,41,183,39,120,36,21,32,217,26,25,21, +4,15,188,8,167,2,106,253,105,249,133,246,123,244,97,243,115,243,130,244,250,245,99,247,173,248,231,249,233,250,115,251, +118,251,254,250,246,249,66,248,10,246,184,243,202,241,172,240,135,240,22,241,225,241,175,242,157,243,183,244,219,245,237,246, +7,248,79,249,173,250,192,251,51,252,25,252,215,251,155,251,33,251,253,249,43,248,48,246,142,244,33,243,60,241,112,238, +11,235,169,231,119,228,25,225,55,221,0,217,3,213,146,209,125,206,150,203,50,201,229,199,205,199,112,200,76,201,93,202, +214,203,157,205,55,207,68,208,212,208,56,209,192,209,160,210,244,211,208,213,69,216,86,219,222,222,166,226,171,230,59,235, +161,240,202,246,71,253,177,3,221,9,173,15,222,20,40,25,127,28,32,31,81,33,26,35,68,36,166,36,105,36,230,35, +90,35,199,34,19,34,66,33,143,32,52,32,24,32,231,31,137,31,40,31,194,30,249,29,129,28,132,26,92,24,24,22, +98,19,233,15,198,11,86,7,226,2,127,254,64,250,90,246,40,243,10,241,41,240,82,240,67,241,244,242,126,245,200,248, +137,252,139,0,227,4,201,9,58,15,207,20,29,26,14,31,193,35,62,40,99,44,246,47,175,50,99,52,25,53,222,52, +179,51,191,49,74,47,102,44,227,40,173,36,239,31,215,26,108,21,183,15,235,9,94,4,87,255,243,250,46,247,11,244, +159,241,3,240,47,239,240,238,21,239,188,239,52,241,149,243,151,246,241,249,146,253,105,1,72,5,2,9,137,12,218,15, +246,18,231,21,168,24,52,27,138,29,165,31,108,33,176,34,62,35,253,34,24,34,193,32,215,30,10,28,66,24,164,19, +93,14,147,8,109,2,243,251,43,245,85,238,202,231,173,225,17,220,51,215,89,211,173,208,99,207,172,207,97,209,18,212, +103,215,47,219,39,223,245,226,104,230,163,233,237,236,92,240,200,243,1,247,245,249,164,252,81,255,140,2,174,6,111,11, +95,16,111,21,181,26,14,32,45,37,183,41,33,45,247,46,55,47,50,46,22,44,210,40,83,36,195,30,136,24,242,17, +38,11,128,4,177,254,38,250,182,246,54,244,225,242,188,242,53,243,197,243,117,244,107,245,93,246,194,246,109,246,180,245, +235,244,237,243,88,242,43,240,236,237,81,236,201,235,72,236,98,237,211,238,169,240,219,242,1,245,195,246,59,248,183,249, +57,251,117,252,47,253,120,253,131,253,70,253,134,252,39,251,79,249,58,247,36,245,69,243,138,241,127,239,202,236,139,233, +23,230,142,226,217,222,210,218,129,214,46,210,32,206,105,202,13,199,88,196,164,194,13,194,117,194,171,195,133,197,226,199, +155,202,85,205,175,207,139,209,8,211,91,212,191,213,116,215,145,217,3,220,167,222,96,225,46,228,88,231,64,235,238,239, +9,245,87,250,248,255,6,6,55,12,239,17,186,22,156,26,231,29,188,32,231,34,67,36,242,36,42,37,250,36,106,36, +137,35,105,34,57,33,65,32,182,31,155,31,193,31,236,31,247,31,200,31,48,31,246,29,12,28,153,25,189,22,97,19, +80,15,117,10,2,5,109,255,54,250,165,245,198,241,172,238,165,236,1,236,199,236,193,238,183,241,125,245,221,249,163,254, +181,3,25,9,200,14,136,20,33,26,131,31,173,36,137,41,12,46,67,50,42,54,132,57,253,59,90,61,145,61,180,60, +222,58,18,56,50,52,38,47,14,41,70,34,36,27,234,19,197,12,211,5,49,255,30,249,240,243,214,239,217,236,254,234, +67,234,128,234,108,235,213,236,186,238,46,241,40,244,137,247,63,251,66,255,122,3,193,7,228,11,176,15,25,19,52,22, +14,25,146,27,202,29,241,31,39,34,40,36,144,37,55,38,31,38,51,37,108,35,228,32,160,29,138,25,159,20,251,14, +205,8,83,2,179,251,221,244,187,237,115,230,113,223,76,217,141,212,88,209,117,207,178,206,38,207,208,208,89,211,81,214, +144,217,40,221,12,225,236,228,110,232,106,235,0,238,115,240,238,242,94,245,162,247,224,249,149,252,36,0,111,4,12,9, +221,13,19,19,168,24,55,30,71,35,116,39,114,42,29,44,117,44,108,43,243,40,33,37,77,32,232,26,63,21,108,15, +192,9,224,4,53,1,117,254,43,252,119,250,209,249,66,250,46,251,255,251,152,252,250,252,210,252,169,251,114,249,159,246, +178,243,205,240,211,237,223,234,113,232,29,231,7,231,198,231,220,232,62,234,54,236,191,238,97,241,162,243,103,245,230,246, +67,248,75,249,159,249,67,249,177,248,80,248,18,248,143,247,99,246,151,244,164,242,230,240,27,239,184,236,157,233,51,230, +220,226,135,223,210,219,153,215,53,211,44,207,189,203,210,200,114,198,4,197,226,196,236,197,161,199,169,201,250,203,142,206, +39,209,102,211,35,213,132,214,190,215,242,216,48,218,124,219,236,220,190,222,17,225,186,227,164,230,40,234,155,238,207,243, +73,249,201,254,92,4,22,10,197,15,244,20,70,25,169,28,58,31,4,33,250,33,35,34,172,33,212,32,220,31,227,30, +228,29,215,28,241,27,136,27,180,27,72,28,16,29,240,29,221,30,174,31,254,31,101,31,214,29,142,27,171,24,25,21, +192,16,186,11,98,6,55,1,129,252,61,248,121,244,143,241,232,239,166,239,165,240,180,242,178,245,115,249,185,253,82,2, +36,7,38,12,74,17,97,22,46,27,173,31,0,36,46,40,21,44,148,47,138,50,212,52,95,54,45,55,57,55,121,54, +231,52,113,50,0,47,133,42,27,37,22,31,226,24,201,18,232,12,72,7,4,2,86,253,112,249,100,246,36,244,153,242, +182,241,143,241,61,242,155,243,89,245,96,247,198,249,135,252,138,255,216,2,118,6,55,10,231,13,114,17,215,20,3,24, +223,26,108,29,182,31,179,33,66,35,79,36,219,36,227,36,71,36,221,34,151,32,141,29,203,25,58,21,222,15,249,9, +222,3,182,253,116,247,240,240,48,234,126,227,66,221,211,215,94,211,233,207,122,205,82,204,175,204,80,206,153,208,31,211, +228,213,247,216,52,220,100,223,127,226,162,229,231,232,89,236,223,239,62,243,109,246,220,249,26,254,60,3,224,8,169,14, +146,20,193,26,19,33,251,38,231,43,146,47,226,49,182,50,252,49,206,47,113,44,45,40,51,35,150,29,98,23,229,16, +199,10,158,5,91,1,143,253,59,250,232,247,194,246,51,246,134,245,166,244,238,243,106,243,148,242,244,240,177,238,80,236, +36,234,40,232,69,230,168,228,208,227,47,228,175,229,215,231,64,234,219,236,198,239,230,242,212,245,51,248,12,250,164,251, +15,253,253,253,22,254,103,253,91,252,64,251,245,249,50,248,244,245,145,243,85,241,21,239,76,236,190,232,194,228,218,224, +55,221,158,217,207,213,243,209,145,206,225,203,151,201,119,199,216,197,76,197,251,197,120,199,70,201,69,203,147,205,23,208, +106,210,42,212,86,213,75,214,101,215,175,216,23,218,201,219,19,222,3,225,83,228,194,231,114,235,206,239,246,244,131,250, +8,0,124,5,7,11,143,16,158,21,192,25,219,28,46,31,239,32,47,34,234,34,34,35,228,34,76,34,122,33,141,32, +165,31,231,30,113,30,92,30,156,30,247,30,75,31,168,31,14,32,64,32,231,31,214,30,25,29,195,26,189,23,231,19, +85,15,73,10,16,5,255,255,88,251,59,247,221,243,140,241,97,240,52,240,255,240,252,242,69,246,124,250,26,255,241,3, +26,9,129,14,224,19,0,25,204,29,62,34,90,38,25,42,102,45,57,48,139,50,60,52,36,53,55,53,110,52,205,50, +111,48,116,45,227,41,183,37,253,32,208,27,82,22,162,16,238,10,125,5,138,0,54,252,156,248,194,245,130,243,192,241, +133,240,226,239,220,239,122,240,207,241,223,243,134,246,145,249,236,252,170,0,190,4,226,8,199,12,93,16,191,19,244,22, +203,25,26,28,0,30,169,31,244,32,162,33,172,33,33,33,241,31,31,30,211,27,42,25,253,21,9,18,62,13,215,7, +25,2,52,252,80,246,132,240,191,234,249,228,103,223,104,218,70,214,18,211,186,208,90,207,49,207,48,208,229,209,241,211, +72,214,5,217,29,220,85,223,106,226,73,229,30,232,53,235,194,238,167,242,159,246,178,250,53,255,72,4,168,9,30,15, +196,20,190,26,221,32,160,38,134,43,67,47,179,49,204,50,141,50,238,48,247,45,234,41,35,37,207,31,5,26,251,19, +20,14,179,8,249,3,175,255,188,251,139,248,157,246,191,245,40,245,71,244,52,243,77,242,144,241,149,240,20,239,77,237, +202,235,199,234,17,234,107,233,4,233,73,233,103,234,40,236,51,238,88,240,168,242,65,245,228,247,15,250,138,251,148,252, +102,253,217,253,170,253,216,252,178,251,131,250,62,249,149,247,68,245,77,242,4,239,205,235,175,232,92,229,167,225,208,221, +48,218,207,214,95,211,194,207,95,204,196,201,0,200,180,198,185,197,91,197,236,197,93,199,77,201,109,203,178,205,38,208, +179,210,39,213,77,215,39,217,233,218,188,220,153,222,128,224,166,226,76,229,136,232,59,236,38,240,56,244,144,248,48,253, +221,1,94,6,168,10,212,14,236,18,193,22,245,25,76,28,218,29,234,30,194,31,116,32,224,32,253,32,5,33,52,33, +125,33,172,33,175,33,166,33,180,33,237,33,90,34,204,34,227,34,92,34,75,33,197,31,173,29,233,26,135,23,153,19, +36,15,68,10,57,5,99,0,17,252,76,248,248,244,47,242,78,240,156,239,37,240,202,241,99,244,195,247,176,251,241,255, +117,4,77,9,132,14,248,19,95,25,109,30,251,34,7,39,152,42,177,45,65,48,27,50,21,51,47,51,120,50,239,48, +147,46,115,43,159,39,42,35,69,30,51,25,38,20,29,15,17,10,49,5,194,0,225,252,147,249,239,246,241,244,116,243, +102,242,219,241,225,241,124,242,166,243,71,245,82,247,217,249,245,252,158,0,164,4,201,8,207,12,133,16,211,19,203,22, +138,25,25,28,108,30,120,32,29,34,27,35,78,35,205,34,188,33,29,32,220,29,247,26,131,23,124,19,182,14,32,9, +233,2,84,252,150,245,213,238,42,232,181,225,182,219,129,214,78,210,28,207,204,204,107,203,78,203,162,204,1,207,201,209, +194,212,18,216,182,219,104,223,249,226,121,230,10,234,198,237,194,241,253,245,68,250,121,254,216,2,173,7,225,12,21,18, +32,23,40,28,73,33,60,38,109,42,113,45,61,47,220,47,56,47,76,45,82,42,154,38,82,34,135,29,82,24,219,18, +85,13,27,8,159,3,2,0,24,253,241,250,224,249,191,249,204,249,118,249,232,248,133,248,54,248,132,247,60,246,158,244, +238,242,45,241,78,239,115,237,234,235,9,235,251,234,165,235,182,236,243,237,78,239,211,240,103,242,202,243,213,244,157,245, +62,246,178,246,230,246,224,246,188,246,129,246,12,246,52,245,244,243,89,242,125,240,135,238,130,236,57,234,119,231,72,228, +222,224,76,221,151,217,218,213,72,210,20,207,80,204,235,201,225,199,98,198,166,197,178,197,92,198,134,199,38,201,28,203, +34,205,9,207,220,208,181,210,153,212,128,214,123,216,192,218,125,221,173,224,47,228,250,231,22,236,121,240,21,245,231,249, +231,254,4,4,45,9,66,14,11,19,70,23,203,26,185,29,78,32,149,34,94,36,149,37,105,38,4,39,97,39,109,39, +63,39,254,38,183,38,99,38,5,38,168,37,64,37,172,36,199,35,108,34,139,32,50,30,118,27,86,24,187,20,154,16, +17,12,106,7,227,2,141,254,108,250,156,246,86,243,207,240,47,239,147,238,0,239,85,240,84,242,213,244,218,247,118,251, +179,255,123,4,144,9,170,14,179,19,181,24,181,29,155,34,52,39,64,43,149,46,39,49,242,50,220,51,211,51,215,50, +251,48,79,46,226,42,216,38,106,34,194,29,237,24,250,19,30,15,157,10,157,6,30,3,22,0,125,253,68,251,100,249, +245,247,21,247,202,246,2,247,171,247,184,248,42,250,18,252,121,254,71,1,70,4,60,7,13,10,214,12,188,15,185,18, +171,21,123,24,18,27,76,29,19,31,116,32,120,33,4,34,238,33,33,33,143,31,23,29,155,25,24,21,181,15,172,9, +62,3,169,252,22,246,154,239,82,233,132,227,127,222,98,218,27,215,187,212,151,211,221,211,64,213,46,215,80,217,160,219, +25,222,153,224,7,227,102,229,186,231,17,234,155,236,117,239,131,242,175,245,56,249,113,253,88,2,151,7,227,12,69,18, +225,23,137,29,165,34,166,38,85,41,177,42,172,42,78,41,216,38,151,35,177,31,52,27,52,22,214,16,103,11,106,6, +69,2,237,254,46,252,47,250,81,249,123,249,229,249,229,249,159,249,140,249,156,249,68,249,61,248,179,246,219,244,196,242, +138,240,102,238,162,236,136,235,66,235,184,235,172,236,229,237,82,239,253,240,219,242,168,244,26,246,55,247,53,248,13,249, +131,249,145,249,109,249,33,249,126,248,97,247,210,245,232,243,196,241,138,239,56,237,162,234,165,231,80,228,208,224,47,221, +64,217,241,212,151,208,173,204,85,201,90,198,172,195,140,193,61,192,190,191,246,191,222,192,105,194,92,196,106,198,96,200, +43,202,191,203,44,205,170,206,102,208,100,210,177,212,118,215,179,218,55,222,249,225,61,230,51,235,181,240,124,246,99,252, +105,2,133,8,140,14,62,20,122,25,69,30,144,34,33,38,207,40,174,42,221,43,103,44,96,44,243,43,64,43,77,42, +37,41,243,39,228,38,19,38,130,37,38,37,219,36,98,36,140,35,88,34,209,32,226,30,97,28,66,25,146,21,99,17, +215,12,57,8,220,3,229,255,85,252,78,249,39,247,45,246,89,246,115,247,80,249,216,251,231,254,105,2,117,6,30,11, +44,16,61,21,33,26,216,30,87,35,128,39,67,43,164,46,130,49,149,51,173,52,210,52,40,52,180,50,102,48,67,45, +105,41,243,36,239,31,132,26,250,20,141,15,91,10,127,5,46,1,154,253,206,250,189,248,95,247,163,246,109,246,170,246, +93,247,125,248,236,249,146,251,107,253,113,255,144,1,204,3,51,6,182,8,33,11,86,13,103,15,112,17,121,19,126,21, +126,23,108,25,40,27,147,28,152,29,38,30,44,30,145,29,53,28,253,25,224,22,222,18,254,13,83,8,5,2,91,251, +168,244,56,238,60,232,222,226,94,222,243,218,168,216,130,215,166,215,38,217,189,219,231,222,50,226,97,229,65,232,155,234, +82,236,124,237,50,238,124,238,130,238,168,238,55,239,48,240,171,241,10,244,132,247,203,251,118,0,118,5,218,10,104,16, +177,21,65,26,189,29,253,31,19,33,20,33,255,31,214,29,173,26,171,22,16,18,52,13,107,8,1,4,68,0,94,253, +63,251,213,249,63,249,127,249,53,250,214,250,35,251,49,251,20,251,167,250,178,249,43,248,48,246,233,243,133,241,59,239, +46,237,130,235,146,234,191,234,244,235,160,237,83,239,7,241,218,242,187,244,128,246,27,248,159,249,35,251,141,252,158,253, +45,254,75,254,29,254,161,253,179,252,57,251,71,249,12,247,141,244,144,241,225,237,164,233,40,229,136,224,168,219,127,214, +80,209,143,204,139,200,61,197,118,194,55,192,194,190,85,190,245,190,113,192,148,194,54,197,41,200,26,203,173,205,203,207, +167,209,122,211,88,213,64,215,69,217,148,219,72,222,81,225,152,228,64,232,138,236,122,241,206,246,93,252,49,2,77,8, +126,14,108,20,194,25,84,30,57,34,160,37,145,40,226,42,91,44,224,44,134,44,147,43,75,42,206,40,47,39,139,37, +0,36,150,34,60,33,218,31,101,30,226,28,74,27,125,25,112,23,64,21,4,19,165,16,248,13,242,10,187,7,145,4, +163,1,254,254,181,252,6,251,65,250,131,250,179,251,188,253,157,0,55,4,65,8,114,12,191,16,77,21,49,26,62,31, +41,36,183,40,200,44,74,48,57,51,153,53,111,55,172,56,36,57,163,56,21,55,134,52,1,49,138,44,77,39,144,33, +122,27,27,21,164,14,103,8,147,2,41,253,65,248,28,244,234,240,179,238,114,237,26,237,132,237,120,238,208,239,139,241, +183,243,81,246,77,249,152,252,8,0,105,3,161,6,203,9,4,13,48,16,21,19,145,21,162,23,65,25,104,26,42,27, +170,27,233,27,185,27,225,26,69,25,233,22,225,19,69,16,42,12,156,7,133,2,193,252,80,246,114,239,120,232,190,225, +182,219,192,214,228,210,252,207,44,206,206,205,230,206,0,209,191,211,48,215,114,219,81,224,87,229,34,234,107,238,245,241, +174,244,203,246,152,248,70,250,23,252,106,254,94,1,167,4,0,8,139,11,136,15,235,19,111,24,183,28,101,32,53,35, +34,37,60,38,113,38,154,37,164,35,144,32,116,28,130,23,23,18,196,12,38,8,128,4,159,1,75,255,186,253,48,253, +109,253,219,253,77,254,27,255,102,0,159,1,17,2,134,1,49,0,50,254,138,251,106,248,73,245,155,242,140,240,246,238, +151,237,101,236,178,235,221,235,228,236,95,238,224,239,83,241,238,242,197,244,154,246,45,248,136,249,214,250,254,251,167,252, +145,252,200,251,140,250,37,249,160,247,193,245,65,243,25,240,133,236,182,232,166,228,51,224,117,219,189,214,85,210,66,206, +119,202,38,199,174,196,72,195,221,194,53,195,60,196,246,197,60,200,180,202,27,205,99,207,130,209,94,211,252,212,139,214, +53,216,254,217,223,219,197,221,180,223,253,225,52,229,167,233,6,239,176,244,73,250,232,255,181,5,140,11,11,17,250,21, +103,26,101,30,187,33,18,36,69,37,133,37,42,37,114,36,98,35,240,33,57,32,140,30,47,29,61,28,154,27,29,27, +161,26,15,26,81,25,74,24,230,22,30,21,3,19,180,16,52,14,87,11,229,7,234,3,214,255,41,252,38,249,214,246, +61,245,117,244,150,244,178,245,205,247,209,250,133,254,169,2,31,7,248,11,62,17,197,22,68,28,130,33,91,38,167,42, +61,46,31,49,117,51,81,53,144,54,243,54,98,54,252,52,237,50,57,48,187,44,111,40,138,35,78,30,222,24,78,19, +208,13,178,8,41,4,43,0,146,252,89,249,165,246,153,244,47,243,85,242,12,242,90,242,37,243,56,244,120,245,245,246, +191,248,203,250,25,253,193,255,197,2,3,6,106,9,20,13,252,16,213,20,77,24,89,27,25,30,130,32,71,34,31,35, +8,35,52,34,180,32,104,30,70,27,127,23,72,19,164,14,147,9,61,4,213,254,111,249,17,244,211,238,226,233,115,229, +181,225,181,222,103,220,218,218,67,218,177,218,205,219,35,221,174,222,191,224,101,227,42,230,122,232,49,234,168,235,81,237, +94,239,194,241,122,244,155,247,48,251,47,255,123,3,227,7,58,12,146,16,36,21,232,25,112,30,60,34,9,37,192,38, +90,39,214,38,59,37,139,34,209,30,69,26,80,21,96,16,180,11,99,7,123,3,23,0,87,253,107,251,114,250,77,250, +163,250,62,251,42,252,90,253,85,254,106,254,67,253,48,251,219,248,171,246,134,244,60,242,235,239,231,237,83,236,16,235, +1,234,74,233,79,233,86,234,42,236,62,238,51,240,39,242,90,244,180,246,205,248,109,250,197,251,8,253,11,254,98,254, +200,253,64,252,4,250,83,247,73,244,207,240,202,236,83,232,175,227,17,223,140,218,41,214,7,210,88,206,52,203,123,200, +4,198,232,195,128,194,16,194,120,194,68,195,25,196,253,196,30,198,127,199,243,200,101,202,226,203,113,205,17,207,213,208, +211,210,28,213,195,215,223,218,124,222,159,226,75,231,106,236,198,241,52,247,176,252,82,2,34,8,249,13,140,19,149,24, +232,28,117,32,56,35,57,37,126,38,31,39,81,39,72,39,7,39,97,38,64,37,205,35,104,34,92,33,163,32,235,31, +249,30,216,29,150,28,20,27,39,25,226,22,120,20,4,18,110,15,157,12,166,9,204,6,76,4,51,2,107,0,243,254, +6,254,234,253,181,254,64,0,99,2,28,5,104,8,34,12,13,16,252,19,234,23,236,27,0,32,240,35,136,39,202,42, +202,45,117,48,151,50,254,51,136,52,51,52,30,51,103,49,6,47,229,43,12,40,156,35,192,30,150,25,45,20,153,14, +21,9,246,3,114,255,147,251,87,248,197,245,225,243,166,242,29,242,103,242,157,243,153,245,245,247,101,250,234,252,163,255, +143,2,166,5,224,8,31,12,45,15,224,17,45,20,16,22,132,23,155,24,144,25,145,26,126,27,0,28,230,27,79,27, +100,26,52,25,196,23,23,22,21,20,150,17,115,14,153,10,32,6,88,1,134,252,171,247,178,242,203,237,81,233,134,229, +113,226,6,224,100,222,222,221,145,222,18,224,191,225,100,227,68,229,149,231,35,234,120,236,62,238,117,239,85,240,21,241, +215,241,186,242,223,243,105,245,119,247,13,250,15,253,92,0,243,3,220,7,5,12,62,16,66,20,196,23,119,26,37,28, +193,28,91,28,248,26,149,24,86,21,152,17,179,13,222,9,80,6,50,3,112,0,238,253,238,251,218,250,162,250,156,250, +58,250,139,249,229,248,79,248,106,247,234,245,246,243,233,241,237,239,243,237,245,235,20,234,127,232,96,231,203,230,194,230, +75,231,106,232,248,233,175,235,96,237,23,239,1,241,39,243,76,245,33,247,159,248,248,249,51,251,1,252,23,252,115,251, +56,250,116,248,29,246,28,243,90,239,236,234,22,230,31,225,30,220,1,215,214,209,231,204,145,200,4,197,56,194,28,192, +184,190,44,190,139,190,185,191,116,193,144,195,17,198,249,200,26,204,36,207,232,209,111,212,214,214,35,217,74,219,119,221, +1,224,22,227,139,230,64,234,96,238,27,243,89,248,214,253,118,3,78,9,113,15,179,21,166,27,221,32,38,37,147,40, +60,43,47,45,101,46,212,46,118,46,91,45,167,43,143,41,69,39,243,36,184,34,182,32,252,30,130,29,57,28,18,27, +237,25,161,24,23,23,93,21,140,19,182,17,213,15,205,13,141,11,45,9,233,6,248,4,113,3,98,2,233,1,59,2, +130,3,194,5,228,8,198,12,61,17,8,22,219,26,128,31,230,35,19,40,0,44,138,47,135,50,225,52,147,54,158,55, +6,56,211,55,1,55,140,53,127,51,232,48,193,45,253,41,165,37,231,32,248,27,2,23,24,18,71,13,163,8,72,4, +65,0,138,252,50,249,100,246,86,244,27,243,156,242,198,242,167,243,82,245,166,247,98,250,95,253,153,0,250,3,68,7, +71,10,14,13,171,15,241,17,144,19,110,20,182,20,148,20,16,20,30,19,183,17,214,15,128,13,194,10,177,7,98,4, +236,0,79,253,120,249,86,245,230,240,47,236,76,231,130,226,58,222,195,218,46,216,108,214,148,213,245,213,185,215,168,218, +93,222,152,226,37,231,193,235,55,240,123,244,132,248,24,252,247,254,5,1,83,2,4,3,81,3,134,3,227,3,113,4, +46,5,66,6,221,7,234,9,22,12,26,14,211,15,41,17,8,18,93,18,22,18,21,17,56,15,107,12,187,8,100,4, +184,255,16,251,207,246,52,243,40,240,129,237,130,235,198,234,117,235,3,237,200,238,161,240,189,242,16,245,57,247,236,248, +44,250,8,251,99,251,36,251,97,250,90,249,91,248,161,247,41,247,186,246,60,246,222,245,200,245,234,245,35,246,111,246, +221,246,114,247,32,248,208,248,132,249,85,250,73,251,42,252,177,252,190,252,113,252,1,252,120,251,149,250,12,249,224,246, +92,244,177,241,192,238,76,235,75,231,254,226,179,222,135,218,133,214,219,210,196,207,91,205,155,203,117,202,220,201,206,201, +91,202,120,203,225,204,68,206,133,207,185,208,3,210,115,211,10,213,198,214,185,216,250,218,148,221,158,224,83,228,228,232, +56,238,2,244,255,249,37,0,146,6,68,13,243,19,53,26,209,31,198,36,32,41,210,44,186,47,169,49,123,50,51,50, +252,48,17,47,159,44,188,41,119,38,249,34,128,31,53,28,30,25,47,22,94,19,163,16,240,13,57,11,123,8,211,5, +108,3,67,1,32,255,226,252,180,250,225,248,150,247,224,246,200,246,96,247,203,248,47,251,148,254,207,2,155,7,191,12, +39,18,201,23,125,29,10,35,80,40,67,45,195,49,150,53,146,56,166,58,205,59,22,60,162,59,126,58,160,56,250,53, +151,50,137,46,206,41,103,36,113,30,39,24,197,17,119,11,110,5,213,255,180,250,0,246,204,241,83,238,205,235,55,234, +96,233,18,233,71,233,45,234,233,235,107,238,116,241,206,244,93,248,26,252,11,0,42,4,98,8,148,12,156,16,74,20, +105,23,219,25,159,27,183,28,27,29,208,28,231,27,114,26,106,24,182,21,73,18,49,14,163,9,208,4,197,255,111,250, +199,244,241,238,37,233,130,227,35,222,70,217,82,213,139,210,228,208,72,208,240,208,27,211,146,214,203,218,134,223,236,228, +2,235,86,241,74,247,124,252,223,0,147,4,180,7,47,10,209,11,163,12,24,13,186,13,186,14,247,15,105,17,78,19, +219,21,247,24,49,28,25,31,135,33,138,35,19,37,209,37,120,37,253,35,133,33,44,30,252,25,7,21,152,15,52,10, +80,5,4,1,59,253,38,250,35,248,46,247,195,246,122,246,127,246,59,247,160,248,7,250,192,250,162,250,239,249,215,248, +77,247,74,245,13,243,255,240,111,239,105,238,207,237,161,237,10,238,20,239,119,240,223,241,65,243,195,244,94,246,206,247, +226,248,186,249,167,250,182,251,133,252,161,252,231,251,144,250,239,248,40,247,39,245,187,242,185,239,21,236,212,231,1,227, +162,221,221,215,13,210,153,204,165,199,25,195,241,190,107,187,222,184,142,183,144,183,193,184,205,186,106,189,103,192,149,195, +179,198,137,201,252,203,22,206,252,207,211,209,185,211,199,213,10,216,129,218,53,221,110,224,131,228,126,233,22,239,7,245, +72,251,235,1,226,8,235,15,170,22,200,28,255,33,23,38,3,41,210,42,138,43,41,43,206,41,182,39,22,37,26,34, +230,30,148,27,82,24,117,21,69,19,182,17,117,16,71,15,36,14,15,13,248,11,207,10,163,9,134,8,99,7,0,6, +48,4,6,2,212,255,245,253,161,252,233,251,226,251,193,252,174,254,151,1,67,5,131,9,74,14,140,19,31,25,184,30, +20,36,46,41,32,46,188,50,125,54,9,57,132,58,81,59,157,59,73,59,28,58,6,56,70,53,50,50,249,46,147,43, +238,39,7,36,232,31,159,27,73,23,24,19,70,15,222,11,176,8,149,5,173,2,70,0,148,254,142,253,15,253,255,252, +93,253,38,254,76,255,187,0,108,2,103,4,177,6,49,9,181,11,21,14,83,16,140,18,191,20,184,22,52,24,30,25, +147,25,202,25,218,25,155,25,208,24,108,23,153,21,105,19,188,16,117,13,167,9,115,5,233,0,245,251,116,246,104,240, +40,234,83,228,110,223,150,219,141,216,61,214,7,213,94,213,41,215,207,217,224,220,97,224,114,228,224,232,46,237,231,240, +226,243,57,246,24,248,147,249,173,250,133,251,104,252,170,253,106,255,137,1,223,3,115,6,118,9,233,12,120,16,175,19, +68,22,19,24,15,25,57,25,169,24,99,23,64,21,18,18,243,13,82,9,185,4,143,0,8,253,17,250,119,247,88,245, +62,244,113,244,119,245,154,246,205,247,149,249,25,252,163,254,73,0,206,0,169,0,69,0,135,255,40,254,53,252,27,250, +73,248,214,246,137,245,61,244,48,243,200,242,7,243,111,243,134,243,94,243,101,243,203,243,73,244,140,244,163,244,214,244, +48,245,98,245,28,245,78,244,4,243,85,241,102,239,72,237,223,234,3,232,194,228,60,225,122,221,115,217,62,213,45,209, +155,205,155,202,225,199,49,197,194,194,28,193,159,192,56,193,120,194,1,196,194,197,219,199,75,202,231,204,123,207,237,209, +58,212,111,214,160,216,228,218,81,221,240,223,204,226,19,230,244,233,102,238,24,243,185,247,64,252,222,0,186,5,192,10, +187,15,124,20,240,24,11,29,175,32,180,35,4,38,165,39,150,40,206,40,88,40,88,39,243,37,52,36,40,34,2,32, +2,30,56,28,124,26,178,24,241,22,78,21,191,19,48,18,159,16,31,15,196,13,127,12,12,11,57,9,33,7,28,5, +131,3,143,2,85,2,208,2,241,3,180,5,37,8,84,11,54,15,149,19,37,24,173,28,16,33,76,37,101,41,75,45, +200,48,155,51,169,53,19,55,7,56,134,56,96,56,103,55,143,53,240,50,166,47,182,43,30,39,4,34,178,28,81,23, +211,17,61,12,191,6,146,1,218,252,166,248,249,244,197,241,8,239,232,236,141,235,3,235,58,235,38,236,183,237,189,239, +13,242,172,244,177,247,26,251,219,254,237,2,56,7,125,11,129,15,54,19,150,22,124,25,178,27,54,29,70,30,22,31, +153,31,159,31,7,31,219,29,56,28,46,26,177,23,193,20,120,17,219,13,192,9,252,4,168,255,43,250,246,244,42,240, +138,235,216,230,48,226,5,222,191,218,106,216,232,214,93,214,20,215,220,216,10,219,44,221,115,223,64,226,144,229,244,232, +248,235,125,238,183,240,232,242,44,245,112,247,165,249,10,252,13,255,209,2,229,6,184,10,62,14,220,17,198,21,171,25, +12,29,156,31,49,33,160,33,193,32,151,30,84,27,86,23,248,18,91,14,99,9,24,4,225,254,87,250,214,246,79,244, +140,242,145,241,118,241,3,242,191,242,111,243,66,244,108,245,181,246,153,247,198,247,94,247,183,246,11,246,109,245,233,244, +150,244,155,244,7,245,168,245,62,246,208,246,147,247,121,248,28,249,39,249,192,248,87,248,36,248,222,247,45,247,32,246, +23,245,76,244,150,243,155,242,43,241,93,239,92,237,37,235,146,232,143,229,46,226,152,222,241,218,66,215,113,211,107,207, +102,203,222,199,49,197,96,195,57,194,149,193,116,193,247,193,59,195,27,197,66,199,141,201,22,204,217,206,147,209,13,212, +73,214,100,216,119,218,157,220,252,222,185,225,216,228,59,232,220,235,233,239,153,244,238,249,167,255,111,5,34,11,206,16, +109,22,205,27,197,32,65,37,29,41,37,44,55,46,71,47,98,47,183,46,134,45,2,44,74,42,109,40,107,38,79,36, +55,34,59,32,95,30,149,28,205,26,5,25,61,23,102,21,96,19,31,17,193,14,105,12,25,10,196,7,132,5,164,3, +106,2,230,1,0,2,169,2,252,3,46,6,86,9,78,13,206,17,155,22,138,27,130,32,111,37,30,42,77,46,232,49, +10,53,198,55,0,58,148,59,114,60,172,60,87,60,98,59,171,57,53,55,34,52,137,48,100,44,170,39,101,34,177,28, +190,22,190,16,218,10,54,5,255,255,106,251,151,247,125,244,13,242,77,240,69,239,227,238,15,239,178,239,183,240,25,242, +227,243,23,246,142,248,12,251,92,253,110,255,105,1,141,3,235,5,73,8,85,10,238,11,32,13,244,13,102,14,139,14, +120,14,10,14,1,13,71,11,248,8,44,6,228,2,26,255,210,250,46,246,107,241,187,236,65,232,34,228,155,224,229,221, +33,220,86,219,121,219,114,220,26,222,84,224,8,227,253,229,222,232,130,235,1,238,123,240,243,242,64,245,26,247,71,248, +220,248,61,249,196,249,132,250,108,251,148,252,71,254,165,0,129,3,148,6,164,9,108,12,191,14,160,16,36,18,65,19, +212,19,189,19,226,18,71,17,248,14,234,11,43,8,33,4,97,0,79,253,22,251,198,249,51,249,235,248,166,248,154,248, +40,249,59,250,84,251,35,252,212,252,163,253,101,254,164,254,30,254,2,253,190,251,187,250,54,250,53,250,130,250,233,250, +87,251,183,251,234,251,228,251,181,251,122,251,70,251,32,251,2,251,239,250,229,250,188,250,55,250,54,249,182,247,217,245, +252,243,113,242,26,241,151,239,191,237,173,235,116,233,16,231,132,228,226,225,54,223,108,220,97,217,27,214,210,210,193,207, +26,205,9,203,155,201,182,200,91,200,196,200,11,202,230,203,215,205,155,207,77,209,56,211,135,213,28,216,196,218,111,221, +33,224,207,226,131,229,111,232,179,235,71,239,59,243,178,247,162,252,202,1,236,6,219,11,126,16,220,20,15,25,17,29, +206,32,43,36,245,38,238,40,11,42,102,42,19,42,8,41,41,39,131,36,120,33,118,30,135,27,103,24,255,20,124,17, +4,14,161,10,99,7,114,4,253,1,6,0,78,254,149,252,227,250,99,249,51,248,101,247,39,247,167,247,254,248,70,251, +153,254,237,2,251,7,93,13,202,18,31,24,82,29,89,34,42,39,181,43,212,47,73,51,241,53,209,55,236,56,47,57, +164,56,117,55,193,53,154,51,26,49,68,46,240,42,248,38,83,34,21,29,108,23,148,17,172,11,192,5,238,255,93,250, +32,245,91,240,86,236,80,233,95,231,127,230,169,230,234,231,82,234,205,237,21,242,218,246,218,251,216,0,177,5,97,10, +229,14,39,19,20,23,164,26,192,29,53,32,204,33,122,34,113,34,0,34,83,33,64,32,110,30,206,27,172,24,78,21, +166,17,130,13,217,8,201,3,108,254,195,248,206,242,175,236,169,230,230,224,114,219,107,214,20,210,196,206,187,204,5,204, +147,204,116,206,204,209,134,214,56,220,105,226,211,232,102,239,252,245,36,252,93,1,122,5,167,8,28,11,246,12,86,14, +113,15,134,16,193,17,47,19,191,20,89,22,254,23,217,25,20,28,144,30,226,32,150,34,102,35,38,35,193,33,72,31, +247,27,12,24,170,19,221,14,213,9,239,4,143,0,247,252,52,250,31,248,166,246,0,246,123,246,238,247,211,249,218,251, +38,254,205,0,93,3,19,5,148,5,52,5,121,4,144,3,91,2,231,0,134,255,129,254,203,253,38,253,123,252,247,251, +202,251,215,251,196,251,61,251,70,250,40,249,14,248,201,246,20,245,250,242,215,240,247,238,60,237,82,235,43,233,254,230, +232,228,190,226,66,224,93,221,52,218,29,215,75,212,144,209,155,206,95,203,23,200,21,197,145,194,147,192,2,191,219,189, +71,189,117,189,109,190,10,192,31,194,128,196,244,198,53,201,47,203,15,205,13,207,61,209,155,211,33,214,198,216,135,219, +101,222,96,225,132,228,4,232,28,236,208,240,216,245,238,250,252,255,249,4,192,9,45,14,62,18,4,22,131,25,172,28, +82,31,66,33,109,34,246,34,2,35,164,34,211,33,140,32,234,30,43,29,117,27,199,25,16,24,69,22,95,20,85,18, +32,16,195,13,93,11,18,9,229,6,195,4,169,2,158,0,174,254,252,252,194,251,44,251,81,251,81,252,95,254,156,1, +235,5,237,10,66,16,186,21,76,27,232,32,109,38,190,43,195,48,78,53,17,57,211,59,165,61,200,62,107,63,150,63, +48,63,31,62,118,60,122,58,72,56,174,53,97,50,75,46,144,41,93,36,196,30,215,24,195,18,200,12,7,7,149,1, +140,252,20,248,82,244,98,241,92,239,83,238,84,238,92,239,91,241,63,244,218,247,219,251,246,255,8,4,15,8,14,12, +7,16,247,19,201,23,80,27,72,30,120,32,221,33,189,34,108,35,248,35,16,36,102,35,13,34,92,32,115,30,24,28, +8,25,55,21,191,16,181,11,20,6,226,255,80,249,163,242,9,236,161,229,151,223,43,218,157,213,26,210,174,207,97,206, +84,206,164,207,50,210,163,213,149,217,207,221,67,226,208,230,22,235,169,238,100,241,116,243,28,245,148,246,253,247,116,249, +26,251,19,253,122,255,76,2,94,5,130,8,184,11,31,15,187,18,78,22,103,25,151,27,164,28,139,28,102,27,75,25, +75,22,126,18,24,14,111,9,213,4,134,0,180,252,130,249,244,246,18,245,19,244,38,244,25,245,108,246,211,247,105,249, +56,251,193,252,64,253,112,252,190,250,193,248,186,246,158,244,109,242,91,240,166,238,88,237,90,236,179,235,139,235,245,235, +200,236,194,237,176,238,153,239,167,240,224,241,252,242,184,243,51,244,202,244,167,245,126,246,219,246,156,246,247,245,26,245, +235,243,46,242,206,239,239,236,197,233,96,230,164,226,117,222,231,217,80,213,19,209,93,205,19,202,19,199,116,196,137,194, +146,193,115,193,218,193,149,194,167,195,7,197,142,198,21,200,147,201,35,203,238,204,253,206,67,209,203,211,197,214,74,218, +81,222,221,226,11,232,237,237,96,244,20,251,195,1,107,8,39,15,209,21,12,28,139,33,64,38,59,42,121,45,217,47, +83,49,18,50,79,50,40,50,177,49,5,49,40,48,9,47,185,45,97,44,14,43,162,41,5,40,51,38,31,36,175,33, +218,30,181,27,88,24,202,20,2,17,253,12,213,8,193,4,245,0,169,253,32,251,140,249,251,248,113,249,248,250,133,253, +247,0,41,5,251,9,71,15,236,20,181,26,98,32,200,37,203,42,67,47,255,50,245,53,62,56,245,57,30,59,153,59, +55,59,253,57,28,56,162,53,106,50,87,46,118,41,248,35,19,30,235,23,147,17,47,11,246,4,0,255,70,249,239,243, +87,239,213,235,114,233,5,232,105,231,147,231,126,232,40,234,137,236,157,239,86,243,143,247,20,252,175,0,42,5,104,9, +117,13,97,17,255,20,242,23,251,25,38,27,164,27,166,27,49,27,26,26,62,24,190,21,210,18,133,15,191,11,119,7, +185,2,160,253,67,248,168,242,219,236,4,231,94,225,23,220,90,215,93,211,108,208,204,206,127,206,73,207,1,209,178,211, +81,215,152,219,82,224,111,229,196,234,231,239,107,244,24,248,229,250,254,252,186,254,101,0,245,1,45,3,9,4,214,4, +230,5,81,7,12,9,24,11,136,13,95,16,107,19,60,22,71,24,68,25,95,25,249,24,45,24,197,22,154,20,198,17, +118,14,189,10,177,6,171,2,42,255,120,252,109,250,207,248,192,247,150,247,86,248,181,249,122,251,152,253,230,255,244,1, +72,3,192,3,158,3,55,3,174,2,255,1,31,1,12,0,221,254,191,253,216,252,72,252,33,252,86,252,185,252,10,253, +19,253,186,252,26,252,116,251,255,250,190,250,144,250,80,250,235,249,74,249,61,248,144,246,72,244,179,241,12,239,43,236, +197,232,215,228,175,224,137,220,87,216,254,211,161,207,160,203,64,200,118,197,10,195,248,192,145,191,54,191,253,191,158,193, +177,195,3,198,152,200,96,203,31,206,156,208,220,210,7,213,58,215,113,217,166,219,5,222,208,224,14,228,159,231,146,235, +30,240,72,245,203,250,90,0,204,5,33,11,117,16,201,21,227,26,98,31,247,34,143,37,76,39,91,40,202,40,142,40, +173,39,67,38,113,36,72,34,217,31,55,29,144,26,42,24,40,22,88,20,113,18,95,16,62,14,23,12,212,9,113,7, +30,5,20,3,86,1,176,255,250,253,79,252,230,250,234,249,149,249,32,250,150,251,212,253,207,0,148,4,15,9,12,14, +95,19,229,24,122,30,241,35,23,41,203,45,0,50,172,53,178,56,245,58,111,60,41,61,50,61,143,60,37,59,207,56, +150,53,170,49,39,45,3,40,55,34,226,27,65,21,154,14,35,8,5,2,115,252,149,247,102,243,200,239,222,236,9,235, +130,234,36,235,150,236,148,238,2,241,216,243,24,247,197,250,211,254,32,3,134,7,230,11,20,16,218,19,36,23,30,26, +218,28,16,31,99,32,195,32,106,32,140,31,44,30,36,28,82,25,215,21,6,18,250,13,131,9,128,4,20,255,113,249, +165,243,176,237,163,231,185,225,65,220,119,215,108,211,57,208,45,206,164,205,165,206,228,208,25,212,53,216,38,221,175,226, +148,232,198,238,36,245,60,251,134,0,182,4,194,7,201,9,33,11,53,12,32,13,160,13,145,13,54,13,236,12,222,12, +18,13,143,13,111,14,205,15,152,17,106,19,166,20,239,20,108,20,123,19,68,18,151,16,63,14,80,11,22,8,185,4, +51,1,172,253,167,250,155,248,125,247,247,246,249,246,203,247,138,249,248,251,190,254,185,1,195,4,108,7,38,9,191,9, +123,9,191,8,185,7,98,6,170,4,149,2,70,0,241,253,197,251,228,249,109,248,106,247,189,246,38,246,102,245,113,244, +128,243,223,242,175,242,215,242,38,243,124,243,204,243,4,244,236,243,62,243,231,241,37,240,47,238,234,235,13,233,138,229, +159,225,150,221,131,217,75,213,227,208,133,204,144,200,46,197,68,194,186,191,194,189,187,188,212,188,207,189,58,191,213,192, +174,194,205,196,247,198,228,200,130,202,6,204,176,205,137,207,122,209,167,211,110,214,252,217,42,222,219,226,37,232,22,238, +130,244,37,251,195,1,63,8,161,14,228,20,210,26,17,32,97,36,160,39,218,41,64,43,1,44,27,44,119,43,30,42, +58,40,2,38,154,35,5,33,66,30,125,27,235,24,122,22,238,19,64,17,147,14,241,11,62,9,114,6,190,3,96,1, +108,255,189,253,44,252,204,250,212,249,108,249,181,249,215,250,235,252,229,255,188,3,100,8,185,13,125,19,115,25,113,31, +87,37,6,43,91,48,47,53,105,57,251,60,204,63,192,65,208,66,6,67,121,66,64,65,76,63,115,60,177,56,59,52, +60,47,173,41,126,35,207,28,229,21,7,15,97,8,18,2,77,252,77,247,33,243,170,239,236,236,59,235,223,234,194,235, +139,237,244,239,228,242,86,246,51,250,96,254,200,2,80,7,216,11,75,16,136,20,90,24,166,27,146,30,52,33,71,35, +117,36,188,36,100,36,160,35,109,34,150,32,241,29,159,26,4,23,80,19,72,15,169,10,135,5,17,0,79,250,51,244, +205,237,86,231,26,225,94,219,64,214,217,209,120,206,137,204,49,204,47,205,57,207,61,210,50,214,217,218,242,223,115,229, +82,235,56,241,157,246,32,251,152,254,16,1,212,2,87,4,196,5,223,6,125,7,214,7,66,8,221,8,165,9,171,10, +13,12,235,13,65,16,177,18,141,20,91,21,58,21,141,20,125,19,213,17,97,15,49,12,137,8,146,4,82,0,2,252, +55,248,111,245,160,243,127,242,13,242,152,242,55,244,157,246,128,249,198,252,76,0,145,3,238,5,30,7,91,7,7,7, +77,6,37,5,128,3,95,1,226,254,59,252,163,249,76,247,98,245,250,243,246,242,26,242,44,241,38,240,64,239,203,238, +239,238,136,239,89,240,52,241,5,242,176,242,254,242,174,242,184,241,97,240,223,238,11,237,148,234,112,231,229,227,56,224, +117,220,124,216,79,212,41,208,90,204,249,200,232,197,28,195,196,192,64,191,201,190,55,191,33,192,77,193,203,194,158,196, +139,198,82,200,238,201,152,203,132,205,174,207,238,209,89,212,76,215,253,218,76,223,29,228,136,233,159,239,54,246,2,253, +200,3,114,10,16,17,161,23,232,29,131,35,41,40,183,43,49,46,198,47,162,48,195,48,24,48,178,46,194,44,126,42, +18,40,142,37,243,34,100,32,18,30,244,27,212,25,159,23,107,21,53,19,222,16,103,14,254,11,203,9,197,7,186,5, +141,3,95,1,102,255,202,253,182,252,102,252,4,253,142,254,249,0,69,4,101,8,51,13,126,18,29,24,227,29,161,35, +39,41,82,46,11,51,52,55,166,58,78,61,47,63,86,64,200,64,138,64,141,63,177,61,239,58,107,55,68,51,120,46, +249,40,218,34,79,28,149,21,220,14,71,8,252,1,41,252,223,246,26,242,246,237,197,234,204,232,4,232,37,232,245,232, +102,234,122,236,35,239,74,242,218,245,178,249,177,253,195,1,212,5,177,9,67,13,173,16,6,20,8,23,90,25,246,26, +26,28,234,28,77,29,12,29,252,27,48,26,0,24,157,21,211,18,93,15,59,11,142,6,89,1,149,251,94,245,242,238, +154,232,139,226,229,220,207,215,156,211,183,208,62,207,248,206,169,207,84,209,245,211,76,215,19,219,66,223,215,227,137,232, +225,236,134,240,90,243,113,245,24,247,188,248,139,250,85,252,235,253,120,255,67,1,102,3,220,5,176,8,246,11,181,15, +213,19,236,23,71,27,102,29,92,30,133,30,3,30,169,28,89,26,44,23,88,19,248,14,22,10,253,4,77,0,131,252, +148,249,60,247,149,245,251,244,126,245,201,246,142,248,196,250,88,253,222,255,187,1,171,2,227,2,195,2,118,2,235,1, +7,1,197,255,52,254,119,252,189,250,66,249,53,248,161,247,94,247,37,247,183,246,8,246,74,245,207,244,193,244,7,245, +110,245,215,245,47,246,81,246,254,245,1,245,101,243,124,241,142,239,125,237,238,234,202,231,81,228,202,224,66,221,154,217, +215,213,63,210,32,207,126,204,42,202,24,200,127,198,186,197,246,197,252,198,106,200,21,202,9,204,54,206,83,208,37,210, +175,211,42,213,203,214,146,216,93,218,58,220,116,222,65,225,143,228,72,232,148,236,155,241,64,247,47,253,37,3,10,9, +234,14,202,20,117,26,141,31,193,35,228,38,243,40,22,42,127,42,55,42,60,41,168,39,165,37,87,35,236,32,137,30, +57,28,14,26,36,24,123,22,240,20,107,19,232,17,88,16,169,14,224,12,30,11,121,9,223,7,37,6,45,4,15,2, +6,0,65,254,224,252,22,252,22,252,246,252,178,254,63,1,133,4,93,8,159,12,51,17,253,21,210,26,132,31,248,35, +36,40,240,43,46,47,192,49,172,51,11,53,239,53,91,54,52,54,84,53,174,51,90,49,106,46,212,42,140,38,178,33, +126,28,30,23,170,17,63,12,7,7,49,2,214,253,244,249,155,246,10,244,130,242,240,241,12,242,158,242,149,243,237,244, +154,246,148,248,213,250,88,253,7,0,210,2,156,5,56,8,144,10,210,12,36,15,79,17,252,18,26,20,205,20,37,21, +22,21,132,20,89,19,169,17,175,15,129,13,239,10,197,7,19,4,12,0,188,251,12,247,5,242,226,236,230,231,61,227, +253,222,70,219,120,216,3,215,241,214,228,215,153,217,27,220,108,223,77,227,127,231,239,235,147,240,29,245,18,249,24,252, +29,254,67,255,219,255,89,0,245,0,132,1,221,1,44,2,195,2,188,3,14,5,193,6,238,8,162,11,183,14,199,17, +60,20,175,21,52,22,12,22,74,21,211,19,161,17,210,14,137,11,205,7,160,3,83,255,137,251,181,248,183,246,59,245, +91,244,123,244,179,245,168,247,2,250,182,252,184,255,160,2,217,4,31,6,173,6,228,6,236,6,177,6,28,6,51,5, +5,4,184,2,120,1,109,0,178,255,71,255,13,255,211,254,98,254,152,253,145,252,171,251,34,251,212,250,137,250,45,250, +186,249,24,249,16,248,111,246,52,244,159,241,225,238,218,235,77,232,51,228,214,223,137,219,87,215,18,211,179,206,141,202, +6,199,69,196,42,194,140,192,124,191,57,191,232,191,103,193,117,195,229,197,164,200,142,203,85,206,189,208,212,210,222,212, +24,215,143,217,32,220,192,222,161,225,252,228,202,232,253,236,169,241,216,246,94,252,3,2,156,7,27,13,141,18,239,23, +10,29,146,33,89,37,65,40,62,42,110,43,246,43,210,43,232,42,57,41,233,38,43,36,46,33,24,30,10,27,32,24, +111,21,250,18,174,16,130,14,121,12,138,10,174,8,253,6,159,5,153,4,185,3,190,2,148,1,104,0,105,255,160,254, +33,254,49,254,11,255,167,0,237,2,227,5,138,9,180,13,34,18,178,22,92,27,250,31,82,36,65,40,201,43,232,46, +115,49,34,51,223,51,212,51,53,51,10,50,57,48,173,45,109,42,166,38,131,34,255,29,12,25,191,19,75,14,226,8, +177,3,210,254,98,250,130,246,51,243,85,240,251,237,144,236,105,236,117,237,85,239,178,241,99,244,101,247,177,250,62,254, +3,2,222,5,162,9,47,13,96,16,11,19,61,21,53,23,255,24,72,26,190,26,108,26,157,25,130,24,25,23,77,21, +13,19,95,16,112,13,110,10,77,7,218,3,16,0,4,252,178,247,23,243,80,238,141,233,11,229,2,225,125,221,125,218, +89,216,148,215,79,216,42,218,188,220,243,223,236,227,145,232,156,237,215,242,22,248,5,253,66,1,143,4,214,6,32,8, +172,8,222,8,237,8,192,8,66,8,162,7,34,7,221,6,227,6,86,7,84,8,227,9,233,11,13,14,191,15,155,16, +167,16,34,16,46,15,181,13,152,11,216,8,154,5,250,1,21,254,57,250,234,246,133,244,246,242,0,242,183,241,110,242, +61,244,219,246,241,249,83,253,214,0,28,4,168,6,58,8,250,8,58,9,50,9,241,8,104,8,139,7,103,6,25,5, +195,3,153,2,199,1,78,1,11,1,214,0,107,0,139,255,79,254,22,253,37,252,122,251,232,250,60,250,95,249,84,248, +10,247,89,245,43,243,156,240,224,237,12,235,250,231,122,228,160,224,175,220,207,216,246,212,25,209,93,205,19,202,108,199, +72,197,124,195,28,194,110,193,163,193,178,194,97,196,122,198,242,200,199,203,222,206,255,209,236,212,141,215,14,218,152,220, +28,223,142,225,25,228,242,230,42,234,179,237,127,241,155,245,36,250,15,255,30,4,33,9,18,14,242,18,175,23,38,28, +35,32,98,35,188,37,57,39,246,39,240,39,18,39,104,37,34,35,105,32,78,29,232,25,94,22,216,18,118,15,101,12, +224,9,0,8,158,6,117,5,92,4,74,3,63,2,83,1,173,0,97,0,88,0,101,0,128,0,214,0,147,1,198,2, +129,4,239,6,29,10,235,13,54,18,242,22,6,28,58,33,71,38,245,42,11,47,83,50,203,52,159,54,214,55,63,56, +182,55,78,54,63,52,195,49,247,46,200,43,29,40,250,35,122,31,190,26,219,21,208,16,150,11,73,6,23,1,21,252, +78,247,232,242,48,239,111,236,162,234,158,233,106,233,52,234,244,235,118,238,157,241,95,245,168,249,89,254,53,3,226,7, +32,12,218,15,0,19,140,21,147,23,48,25,98,26,13,27,19,27,105,26,14,25,22,23,182,20,39,18,135,15,234,12, +85,10,173,7,204,4,196,1,185,254,165,251,119,248,46,245,185,241,235,237,191,233,132,229,184,225,189,222,193,220,211,219, +231,219,228,220,200,222,190,225,198,229,129,234,119,239,111,244,87,249,247,253,250,1,43,5,139,7,39,9,252,9,3,10, +79,9,37,8,236,6,241,5,62,5,200,4,180,4,78,5,181,6,161,8,154,10,93,12,204,13,177,14,197,14,0,14, +154,12,182,10,57,8,7,5,72,1,90,253,135,249,4,246,19,243,228,240,108,239,162,238,211,238,82,240,228,242,185,245, +46,248,112,250,6,253,202,255,218,1,167,2,142,2,52,2,187,1,233,0,203,255,213,254,92,254,68,254,56,254,13,254, +231,253,24,254,181,254,83,255,113,255,251,254,40,254,27,253,224,251,149,250,93,249,92,248,159,247,8,247,96,246,132,245, +113,244,69,243,22,242,177,240,181,238,11,236,253,232,194,229,46,226,247,221,74,217,204,212,255,208,220,205,40,203,219,200, +44,199,96,198,153,198,194,199,174,201,62,204,85,207,183,210,23,214,42,217,208,219,40,222,98,224,122,226,77,228,241,229, +193,231,7,234,198,236,229,239,125,243,183,247,128,252,139,1,152,6,148,11,134,16,108,21,11,26,246,29,242,32,33,35, +198,36,221,37,40,38,142,37,64,36,126,34,98,32,244,29,65,27,86,24,70,21,59,18,107,15,248,12,215,10,238,8, +47,7,142,5,238,3,69,2,198,0,178,255,18,255,171,254,74,254,17,254,80,254,34,255,104,0,27,2,93,4,69,7, +198,10,196,14,30,19,174,23,84,28,231,32,56,37,17,41,82,44,7,47,89,49,67,51,142,52,10,53,190,52,228,51, +195,50,114,49,180,47,61,45,252,41,42,38,26,34,233,29,88,25,34,20,110,14,166,8,22,3,214,253,255,248,187,244, +39,241,54,238,218,235,72,234,213,233,154,234,94,236,192,238,115,241,96,244,156,247,48,251,252,254,211,2,136,6,253,9, +38,13,227,15,11,18,171,19,247,20,243,21,82,22,210,21,144,20,251,18,110,17,209,15,187,13,2,11,249,7,25,5, +117,2,172,255,113,252,217,248,43,245,119,241,169,237,207,233,23,230,158,226,91,223,87,220,215,217,80,216,24,216,40,217, +44,219,214,221,15,225,215,228,15,233,123,237,239,241,82,246,132,250,82,254,113,1,169,3,11,5,234,5,138,6,249,6, +41,7,51,7,108,7,38,8,104,9,232,10,94,12,212,13,134,15,129,17,118,19,243,20,178,21,180,21,23,21,230,19, +10,18,133,15,132,12,39,9,119,5,178,1,82,254,198,251,55,250,136,249,125,249,244,249,225,250,18,252,71,253,121,254, +208,255,99,1,250,2,20,4,60,4,116,3,49,2,222,0,152,255,81,254,10,253,223,251,230,250,24,250,101,249,209,248, +110,248,76,248,102,248,134,248,98,248,227,247,45,247,105,246,175,245,16,245,167,244,120,244,86,244,247,243,44,243,244,241, +82,240,78,238,239,235,37,233,226,229,70,226,127,222,171,218,236,214,102,211,54,208,131,205,110,203,234,201,198,200,0,200, +216,199,164,200,119,202,248,204,150,207,16,210,143,212,63,215,250,217,115,220,144,222,131,224,158,226,0,229,127,231,238,233, +114,236,98,239,226,242,231,246,109,251,110,0,182,5,6,11,53,16,37,21,195,25,7,30,220,33,31,37,178,39,116,41, +68,42,31,42,27,41,81,39,228,36,25,34,53,31,75,28,72,25,48,22,47,19,125,16,52,14,66,12,113,10,163,8, +234,6,88,5,221,3,105,2,15,1,234,255,15,255,135,254,74,254,84,254,175,254,98,255,121,0,46,2,184,4,255,7, +193,11,215,15,67,20,4,25,232,29,156,34,228,38,178,42,245,45,144,48,123,50,171,51,248,51,94,51,27,50,119,48, +134,46,37,44,7,41,9,37,109,32,166,27,222,22,241,17,212,12,184,7,213,2,60,254,252,249,59,246,30,243,189,240, +48,239,127,238,159,238,120,239,244,240,244,242,112,245,104,248,180,251,22,255,119,2,231,5,118,9,5,13,58,16,202,18, +201,20,117,22,209,23,192,24,66,25,76,25,169,24,63,23,46,21,156,18,162,15,92,12,233,8,76,5,127,1,138,253, +132,249,123,245,105,241,66,237,2,233,190,228,165,224,234,220,180,217,35,215,99,213,171,212,11,213,78,214,65,216,9,219, +237,222,214,227,70,233,185,238,245,243,250,248,195,253,12,2,130,5,20,8,239,9,49,11,204,11,207,11,149,11,144,11, +220,11,68,12,173,12,87,13,138,14,66,16,54,18,14,20,131,21,91,22,109,22,180,21,65,20,42,18,131,15,100,12, +229,8,41,5,104,1,221,253,221,250,203,248,202,247,168,247,85,248,253,249,136,252,97,255,230,1,250,3,240,5,2,8, +217,9,226,10,230,10,36,10,226,8,54,7,48,5,245,2,200,0,229,254,78,253,224,251,147,250,146,249,3,249,195,248, +98,248,131,247,48,246,195,244,133,243,128,242,150,241,174,240,209,239,15,239,91,238,151,237,194,236,230,235,235,234,149,233, +172,231,44,229,55,226,230,222,51,219,25,215,192,210,134,206,200,202,158,199,237,196,189,194,73,193,201,192,75,193,194,194, +3,197,209,199,234,202,20,206,29,209,234,211,107,214,149,216,108,218,15,220,170,221,95,223,69,225,108,227,242,229,17,233, +255,236,196,241,48,247,3,253,12,3,34,9,35,15,235,20,72,26,9,31,22,35,82,38,148,40,202,41,23,42,175,41, +194,40,112,39,192,37,168,35,50,33,142,30,4,28,214,25,10,24,102,22,173,20,215,18,245,16,11,15,14,13,255,10, +251,8,37,7,120,5,216,3,69,2,229,0,213,255,23,255,183,254,222,254,197,255,148,1,92,4,13,8,114,12,68,17, +91,22,172,27,24,33,98,38,78,43,180,47,131,51,170,54,6,57,129,58,47,59,58,59,169,58,85,57,8,55,183,51, +168,47,51,43,104,38,32,33,83,27,46,21,224,14,140,8,88,2,130,252,98,247,62,243,27,240,204,237,52,236,100,235, +125,235,120,236,35,238,88,240,20,243,89,246,7,250,233,253,195,1,106,5,210,8,14,12,38,15,255,17,125,20,168,22, +134,24,234,25,133,26,71,26,112,25,73,24,209,22,207,20,47,18,55,15,51,12,35,9,193,5,213,1,96,253,130,248, +91,243,6,238,178,232,163,227,10,223,245,218,128,215,234,212,114,211,44,211,19,212,36,214,67,217,45,221,150,225,88,230, +109,235,195,240,18,246,226,250,212,254,221,1,44,4,249,5,105,7,153,8,150,9,93,10,233,10,74,11,191,11,152,12, +226,13,85,15,198,16,76,18,228,19,43,21,175,21,96,21,130,20,67,19,138,17,36,15,5,12,91,8,104,4,104,0, +151,252,76,249,217,246,66,245,85,244,21,244,179,244,35,246,4,248,27,250,124,252,52,255,229,1,240,3,254,4,75,5, +83,5,80,5,35,5,165,4,230,3,12,3,24,2,250,0,219,255,17,255,186,254,137,254,13,254,29,253,229,251,165,250, +123,249,94,248,70,247,58,246,76,245,120,244,146,243,105,242,241,240,73,239,146,237,197,235,165,233,237,230,172,227,56,224, +192,220,14,217,229,212,102,208,1,204,31,200,216,196,254,193,109,191,80,189,12,188,228,187,197,188,88,190,81,192,165,194, +107,197,158,200,244,203,23,207,235,209,157,212,92,215,41,218,224,220,127,223,61,226,90,229,250,232,50,237,19,242,147,247, +125,253,132,3,113,9,72,15,50,21,31,27,169,32,96,37,26,41,218,43,156,45,90,46,27,46,238,44,253,42,122,40, +134,37,46,34,137,30,207,26,67,23,36,20,137,17,77,15,59,13,85,11,195,9,130,8,86,7,33,6,18,5,104,4, +29,4,223,3,116,3,247,2,186,2,247,2,200,3,65,5,119,7,106,10,13,14,69,18,241,22,244,27,47,33,110,38, +102,43,214,47,162,51,208,54,106,57,90,59,114,60,155,60,241,59,179,58,10,57,204,54,162,51,119,47,168,42,143,37, +38,32,67,26,252,19,149,13,69,7,47,1,107,251,34,246,161,241,50,238,211,235,76,234,143,233,192,233,234,234,237,236, +186,239,87,243,171,247,105,252,70,1,32,6,231,10,111,15,123,19,243,22,227,25,85,28,69,30,172,31,115,32,120,32, +186,31,92,30,121,28,32,26,96,23,60,20,179,16,226,12,233,8,187,4,50,0,88,251,90,246,72,241,23,236,190,230, +80,225,8,220,63,215,69,211,71,208,98,206,175,205,59,206,19,208,68,211,181,215,14,221,233,226,254,232,36,239,60,245, +25,251,112,0,254,4,170,8,138,11,175,13,29,15,224,15,47,16,67,16,32,16,181,15,52,15,7,15,79,15,196,15, +33,16,100,16,156,16,163,16,47,16,24,15,114,13,116,11,40,9,88,6,232,2,26,255,87,251,244,247,43,245,32,243, +202,241,28,241,55,241,77,242,64,244,162,246,24,249,158,251,91,254,67,1,8,4,85,6,7,8,37,9,191,9,219,9, +117,9,153,8,116,7,50,6,207,4,51,3,111,1,179,255,22,254,138,252,247,250,99,249,238,247,169,246,129,245,91,244, +69,243,97,242,182,241,37,241,137,240,185,239,158,238,59,237,154,235,174,233,95,231,164,228,149,225,83,222,234,218,70,215, +87,211,64,207,64,203,147,199,98,196,186,193,136,191,193,189,142,188,45,188,169,188,209,189,89,191,23,193,37,195,173,197, +155,200,151,203,95,206,4,209,198,211,214,214,59,218,211,221,140,225,138,229,254,233,237,238,67,244,251,249,10,0,75,6, +149,12,206,18,214,24,137,30,212,35,162,40,191,44,234,47,240,49,209,50,179,50,183,49,205,47,232,44,64,41,65,37, +48,33,7,29,181,24,103,20,121,16,26,13,34,10,88,7,188,4,130,2,197,0,110,255,82,254,101,253,206,252,186,252, +46,253,6,254,52,255,207,0,250,2,198,5,55,9,71,13,229,17,13,23,198,28,244,34,65,41,67,47,189,52,170,57, +8,62,162,65,63,68,215,69,139,70,80,70,238,68,81,66,192,62,159,58,19,54,243,48,23,43,161,36,235,29,72,23, +209,16,129,10,91,4,140,254,86,249,221,244,25,241,12,238,228,235,213,234,230,234,236,235,177,237,27,240,43,243,231,246, +49,251,203,255,124,4,35,9,168,13,232,17,192,21,35,25,21,28,131,30,50,32,246,32,231,32,70,32,40,31,94,29, +191,26,114,23,206,19,9,16,12,12,172,7,234,2,238,253,222,248,217,243,6,239,124,234,30,230,177,225,31,221,173,216, +230,212,79,210,30,209,49,209,94,210,176,212,84,216,63,221,10,227,58,233,140,239,229,245,26,252,223,1,239,6,18,11, +45,14,91,16,216,17,173,18,176,18,245,17,240,16,5,16,61,15,132,14,242,13,179,13,220,13,75,14,170,14,148,14, +227,13,194,12,107,11,219,9,213,7,30,5,170,1,163,253,76,249,245,244,12,241,1,238,243,235,148,234,182,233,169,233, +204,234,234,236,96,239,206,241,87,244,30,247,217,249,14,252,135,253,103,254,236,254,47,255,37,255,190,254,17,254,88,253, +196,252,90,252,27,252,28,252,99,252,187,252,229,252,214,252,173,252,127,252,55,252,157,251,133,250,244,248,45,247,110,245, +172,243,153,241,242,238,223,235,218,232,38,230,128,227,122,224,20,221,168,217,87,214,222,210,255,206,216,202,191,198,244,194, +144,191,161,188,42,186,56,184,248,182,176,182,113,183,244,184,235,186,80,189,67,192,176,195,69,199,198,202,54,206,189,209, +110,213,69,217,77,221,170,225,123,230,201,235,144,241,216,247,173,254,1,6,149,13,6,21,20,28,195,34,17,41,167,46, +13,51,19,54,215,55,118,56,235,55,57,54,140,51,31,48,32,44,190,39,67,35,252,30,6,27,70,23,180,19,141,16, +3,14,244,11,23,10,80,8,199,6,154,5,173,4,199,3,219,2,13,2,131,1,83,1,158,1,151,2,96,4,7,7, +146,10,18,15,139,20,197,26,88,33,226,39,53,46,51,52,182,57,166,62,245,66,115,70,215,72,245,73,243,73,35,73, +189,71,168,69,162,66,161,62,246,57,243,52,147,47,179,41,92,35,187,28,229,21,213,14,165,7,174,0,107,250,36,245, +204,240,42,237,52,234,23,232,19,231,76,231,175,232,2,235,21,238,209,241,38,246,253,250,34,0,44,5,162,9,96,13, +144,16,75,19,109,21,232,22,212,23,52,24,219,23,172,22,202,20,132,18,42,16,205,13,65,11,86,8,6,5,98,1, +113,253,42,249,125,244,96,239,225,233,40,228,110,222,241,216,234,211,172,207,163,204,20,203,218,202,186,203,221,205,158,209, +244,214,87,221,49,228,50,235,64,242,59,249,208,255,135,5,14,10,107,13,204,15,55,17,155,17,40,17,107,16,217,15, +103,15,196,14,244,13,106,13,126,13,9,14,162,14,6,15,20,15,162,14,133,13,181,11,76,9,92,6,230,2,252,254, +209,250,149,246,113,242,191,238,252,235,90,234,150,233,130,233,87,234,58,236,197,238,98,241,235,243,158,246,146,249,116,252, +209,254,137,0,205,1,217,2,175,3,45,4,70,4,55,4,100,4,221,4,71,5,86,5,67,5,101,5,157,5,125,5, +219,4,243,3,27,3,101,2,151,1,119,0,33,255,250,253,66,253,190,252,231,251,108,250,127,248,126,246,102,244,219,241, +159,238,204,234,160,230,55,226,125,221,95,216,17,211,252,205,106,201,107,197,2,194,72,191,100,189,128,188,161,188,131,189, +201,190,102,192,139,194,45,197,223,199,61,202,54,204,238,205,141,207,55,209,2,211,3,213,100,215,90,218,242,221,24,226, +210,230,90,236,207,242,237,249,48,1,77,8,95,15,127,22,97,29,145,35,212,40,31,45,106,48,177,50,250,51,67,52, +138,51,219,49,91,47,71,44,215,40,30,37,29,33,252,28,244,24,11,21,31,17,46,13,96,9,212,5,143,2,143,255, +233,252,196,250,54,249,36,248,123,247,95,247,12,248,138,249,171,251,82,254,168,1,233,5,29,11,254,16,66,23,201,29, +126,36,51,43,169,49,171,55,6,61,139,65,29,69,195,71,147,73,138,74,135,74,120,73,116,71,161,68,15,65,195,60, +208,55,67,50,22,44,67,37,227,29,54,22,139,14,42,7,59,0,214,249,26,244,48,239,49,235,40,232,51,230,112,229, +205,229,1,231,188,232,213,234,79,237,58,240,141,243,22,247,162,250,25,254,117,1,185,4,226,7,209,10,84,13,84,15, +223,16,251,17,160,18,195,18,82,18,54,17,116,15,43,13,129,10,148,7,119,4,21,1,71,253,2,249,109,244,189,239, +8,235,75,230,146,225,25,221,56,217,71,214,125,212,228,211,110,212,55,214,110,217,241,221,63,227,228,232,200,238,255,244, +134,251,30,2,54,8,36,13,156,16,210,18,24,20,153,20,119,20,221,19,249,18,253,17,27,17,108,16,234,15,180,15, +21,16,31,17,106,18,135,19,100,20,15,21,74,21,171,20,12,19,154,16,130,13,212,9,181,5,114,1,85,253,144,249, +64,246,108,243,22,241,139,239,65,239,57,240,203,241,101,243,39,245,134,247,126,250,108,253,144,255,166,0,241,0,204,0, +89,0,168,255,226,254,37,254,114,253,198,252,43,252,167,251,63,251,254,250,232,250,236,250,239,250,231,250,225,250,217,250, +159,250,11,250,61,249,133,248,252,247,103,247,108,246,231,244,2,243,248,240,197,238,57,236,79,233,50,230,237,226,68,223, +255,218,75,214,154,209,48,205,254,200,245,196,62,193,5,190,80,187,55,185,248,183,166,183,1,184,195,184,240,185,178,187, +255,189,150,192,79,195,61,198,132,201,51,205,54,209,120,213,250,217,215,222,40,228,236,233,18,240,138,246,59,253,238,3, +101,10,140,16,130,22,75,28,160,33,42,38,200,41,125,44,75,46,56,47,75,47,122,46,190,44,56,42,38,39,190,35, +20,32,36,28,249,23,217,19,252,15,76,12,153,8,244,4,169,1,226,254,153,252,187,250,90,249,152,248,111,248,165,248, +37,249,54,250,46,252,12,255,149,2,163,6,57,11,94,16,13,22,48,28,166,34,72,41,223,47,47,54,249,59,8,65, +61,69,151,72,21,75,162,76,25,77,107,76,177,74,46,72,36,69,148,65,69,61,25,56,85,50,99,44,98,38,29,32, +112,25,134,18,186,11,86,5,136,255,109,250,33,246,194,242,84,240,188,238,237,237,22,238,102,239,192,241,197,244,20,248, +125,251,255,254,161,2,91,6,12,10,139,13,172,16,70,19,57,21,120,22,20,23,58,23,5,23,88,22,4,21,12,19, +161,16,230,13,205,10,44,7,244,2,67,254,66,249,5,244,153,238,30,233,179,227,111,222,111,217,220,212,241,208,255,205, +77,204,241,203,228,204,45,207,213,210,185,215,139,221,239,227,161,234,140,241,154,248,110,255,131,5,144,10,169,14,248,17, +106,20,199,21,36,22,2,22,211,21,144,21,2,21,69,20,194,19,200,19,81,20,24,21,185,21,237,21,159,21,193,20, +28,19,148,16,106,13,8,10,134,6,180,2,123,254,23,250,14,246,244,242,7,241,22,240,234,239,163,240,87,242,159,244, +237,246,42,249,164,251,115,254,34,1,10,3,225,3,213,3,73,3,146,2,209,1,249,0,243,255,216,254,206,253,210,252, +204,251,206,250,22,250,186,249,145,249,86,249,211,248,2,248,254,246,213,245,126,244,251,242,115,241,21,240,213,238,92,237, +107,235,57,233,46,231,96,229,139,227,112,225,3,223,90,220,141,217,143,214,58,211,140,207,216,203,133,200,189,197,104,195, +101,193,195,191,191,190,139,190,14,191,244,191,5,193,92,194,40,196,78,198,99,200,15,202,106,203,216,204,164,206,206,208, +51,211,217,213,243,216,174,220,23,225,63,230,67,236,29,243,127,250,244,1,50,9,64,16,55,23,247,29,48,36,146,41, +238,45,53,49,116,51,187,52,17,53,132,52,73,51,164,49,192,47,142,45,205,42,95,39,139,35,187,31,0,28,15,24, +188,19,74,15,46,11,134,7,247,3,53,0,138,252,133,249,98,247,254,245,68,245,98,245,149,246,222,248,18,252,18,0, +219,4,96,10,114,16,227,22,138,29,42,36,149,42,205,48,210,54,102,60,53,65,23,69,31,72,100,74,208,75,49,76, +124,75,247,73,229,71,47,69,121,65,159,60,227,54,145,48,173,41,26,34,5,26,237,17,72,10,49,3,137,252,89,246, +245,240,183,236,187,233,236,231,55,231,155,231,25,233,149,235,198,238,99,242,96,246,205,250,143,255,87,4,214,8,233,12, +155,16,25,20,118,23,128,26,227,28,110,30,40,31,41,31,106,30,194,28,42,26,230,22,56,19,22,15,83,10,247,4, +57,255,70,249,50,243,12,237,225,230,179,224,153,218,217,212,192,207,124,203,46,200,8,198,14,197,14,197,2,198,60,200, +245,203,224,208,101,214,33,220,12,226,71,232,189,238,10,245,188,250,167,255,210,3,69,7,3,10,26,12,181,13,39,15, +189,16,108,18,214,19,211,20,183,21,246,22,147,24,30,26,45,27,159,27,102,27,71,26,10,24,206,20,251,16,213,12, +86,8,117,3,116,254,197,249,205,245,190,242,134,240,250,238,61,238,190,238,137,240,248,242,81,245,141,247,20,250,245,252, +157,255,101,1,52,2,116,2,123,2,73,2,219,1,106,1,69,1,166,1,136,2,160,3,160,4,141,5,152,6,176,7, +130,8,210,8,166,8,4,8,205,6,231,4,104,2,158,255,224,252,84,250,204,247,244,244,186,241,110,238,98,235,137,232, +155,229,113,226,25,223,168,219,5,216,247,211,115,207,214,202,147,198,192,194,75,191,105,188,112,186,112,185,53,185,158,185, +175,186,93,188,143,190,59,193,92,196,195,199,19,203,248,205,102,208,169,210,45,213,41,216,114,219,199,222,36,226,196,229, +219,233,138,238,232,243,1,250,168,0,109,7,233,13,7,20,241,25,166,31,228,36,106,41,18,45,184,47,55,49,148,49, +1,49,178,47,190,45,59,43,95,40,111,37,113,34,46,31,155,27,2,24,173,20,151,17,138,14,108,11,96,8,149,5, +5,3,147,0,98,254,197,252,226,251,145,251,178,251,87,252,169,253,170,255,67,2,112,5,67,9,178,13,157,18,238,23, +136,29,31,35,94,40,45,45,185,49,22,54,19,58,92,61,194,63,92,65,73,66,126,66,220,65,98,64,61,62,138,59, +52,56,9,52,245,46,30,41,185,34,230,27,188,20,112,13,71,6,120,255,39,249,131,243,191,238,251,234,58,232,148,230, +53,230,34,231,20,233,167,235,146,238,189,241,54,245,7,249,28,253,69,1,56,5,158,8,75,11,120,13,130,15,131,17, +71,19,159,20,144,21,58,22,151,22,99,22,93,21,153,19,107,17,6,15,80,12,25,9,79,5,2,1,77,252,76,247, +35,242,253,236,246,231,27,227,130,222,111,218,68,215,63,213,91,212,121,212,159,213,240,215,93,219,141,223,20,228,184,232, +128,237,132,242,164,247,123,252,149,0,177,3,221,5,96,7,146,8,143,9,67,10,189,10,64,11,231,11,117,12,173,12, +193,12,67,13,137,14,71,16,201,17,160,18,221,18,180,18,32,18,12,17,156,15,5,14,60,12,8,10,106,7,181,4, +69,2,57,0,113,254,203,252,110,251,187,250,221,250,129,251,33,252,133,252,217,252,101,253,36,254,183,254,199,254,107,254, +0,254,188,253,126,253,11,253,94,252,182,251,89,251,75,251,92,251,131,251,233,251,151,252,78,253,186,253,165,253,25,253, +93,252,181,251,37,251,137,250,218,249,60,249,192,248,55,248,89,247,11,246,113,244,176,242,179,240,68,238,74,235,217,231, +252,227,139,223,102,218,203,212,57,207,15,202,94,197,37,193,126,189,146,186,126,184,82,183,11,183,142,183,190,184,150,186, +40,189,89,192,198,195,4,199,248,201,212,204,205,207,227,210,238,213,226,216,2,220,162,223,216,227,135,232,184,237,154,243, +40,250,4,1,194,7,78,14,216,20,103,27,158,33,250,38,45,43,55,46,50,48,44,49,25,49,232,47,155,45,83,42, +93,38,22,34,177,29,52,25,184,20,127,16,174,12,44,9,221,5,216,2,86,0,100,254,198,252,72,251,30,250,176,249, +9,250,200,250,154,251,150,252,7,254,27,0,202,2,19,6,23,10,230,14,83,20,33,26,53,32,120,38,187,44,203,50, +124,56,166,61,30,66,191,69,119,72,56,74,227,74,69,74,90,72,115,69,240,65,232,61,44,57,163,51,112,45,212,38, +243,31,214,24,157,17,138,10,221,3,179,253,30,248,70,243,106,239,178,236,9,235,67,234,106,234,166,235,240,237,7,241, +164,244,147,248,181,252,249,0,81,5,169,9,214,13,154,17,198,20,99,23,145,25,89,27,178,28,160,29,63,30,139,30, +80,30,79,29,140,27,79,25,192,22,189,19,24,16,219,11,33,7,230,1,28,252,219,245,118,239,58,233,57,227,105,221, +239,215,43,211,135,207,75,205,131,204,25,205,9,207,80,210,179,214,188,219,15,225,159,230,138,236,210,242,56,249,69,255, +136,4,188,8,223,11,50,14,7,16,131,17,158,18,102,19,6,20,126,20,162,20,105,20,37,20,63,20,193,20,64,21, +78,21,210,20,229,19,131,18,155,16,68,14,173,11,220,8,170,5,9,2,48,254,121,250,27,247,41,244,168,241,173,239, +102,238,244,237,53,238,216,238,183,239,250,240,190,242,218,244,6,247,24,249,254,250,159,252,224,253,193,254,99,255,212,255, +0,0,225,255,154,255,76,255,237,254,106,254,218,253,103,253,5,253,114,252,134,251,93,250,38,249,237,247,168,246,81,245, +247,243,179,242,121,241,20,240,90,238,92,236,59,234,12,232,217,229,174,227,111,225,228,222,229,219,121,216,194,212,226,208, +253,204,56,201,186,197,153,194,216,191,119,189,134,187,51,186,174,185,251,185,233,186,87,188,98,190,29,193,72,196,108,199, +72,202,250,204,198,207,200,210,222,213,244,216,55,220,250,223,86,228,45,233,107,238,53,244,170,250,166,1,213,8,242,15, +228,22,154,29,229,35,120,41,2,46,86,49,112,51,111,52,119,52,144,51,177,49,247,46,174,43,45,40,165,36,19,33, +105,29,201,25,123,22,164,19,23,17,151,14,26,12,202,9,200,7,2,6,76,4,172,2,103,1,189,0,169,0,7,1, +212,1,64,3,125,5,150,8,108,12,214,16,190,21,31,27,243,32,16,39,37,45,221,50,5,56,148,60,137,64,198,67, +21,70,80,71,143,71,5,71,186,69,140,67,133,64,252,60,62,57,45,53,111,48,240,42,12,37,36,31,64,25,50,19, +231,12,152,6,166,0,81,251,140,246,48,242,88,238,106,235,181,233,47,233,140,233,145,234,65,236,173,238,185,241,31,245, +171,248,102,252,123,0,228,4,59,9,4,13,17,16,153,18,220,20,217,22,92,24,59,25,134,25,87,25,153,24,25,23, +206,20,237,17,184,14,56,11,53,7,135,2,95,253,19,248,197,242,97,237,211,231,52,226,208,220,251,215,215,211,82,208, +117,205,135,203,205,202,91,203,30,205,0,208,242,211,215,216,108,222,80,228,60,234,19,240,203,245,85,251,130,0,255,4, +138,8,66,11,126,13,110,15,8,17,81,18,120,19,154,20,168,21,158,22,159,23,192,24,214,25,155,26,207,26,63,26, +213,24,172,22,249,19,220,16,89,13,113,9,62,5,247,0,221,252,34,249,255,245,170,243,59,242,172,241,237,241,224,242, +60,244,168,245,232,246,7,248,51,249,103,250,111,251,52,252,196,252,42,253,102,253,148,253,205,253,9,254,74,254,197,254, +183,255,26,1,162,2,4,4,40,5,1,6,93,6,5,6,242,4,79,3,87,1,43,255,190,252,6,250,48,247,124,244, +247,241,132,239,22,237,183,234,110,232,50,230,227,227,95,225,142,222,93,219,184,215,168,211,94,207,25,203,253,198,23,195, +132,191,117,188,20,186,105,184,115,183,73,183,248,183,97,185,93,187,225,189,220,192,19,196,52,199,22,202,216,204,191,207, +240,210,87,214,223,217,162,221,204,225,104,230,106,235,233,240,24,247,233,253,252,4,237,11,151,18,254,24,24,31,178,36, +129,41,72,45,249,47,163,49,97,50,97,50,189,49,92,48,43,46,98,43,86,40,44,37,206,33,56,30,152,26,32,23, +171,19,224,15,183,11,157,7,246,3,188,0,181,253,235,250,192,248,135,247,49,247,112,247,52,248,198,249,96,252,239,255, +61,4,42,9,179,14,221,20,145,27,133,34,75,41,156,47,129,53,21,59,40,64,74,68,53,71,27,73,78,74,201,74, +48,74,85,72,138,69,74,66,175,62,112,58,97,53,182,47,202,41,183,35,77,29,110,22,90,15,146,8,92,2,158,252, +51,247,76,242,89,238,168,235,31,234,109,233,108,233,60,234,255,235,166,238,243,241,179,245,226,249,137,254,108,3,5,8, +231,11,19,15,208,17,74,20,89,22,181,23,78,24,82,24,218,23,192,22,222,20,97,18,173,15,236,12,214,9,35,6, +242,1,156,253,59,249,173,244,225,239,236,234,255,229,75,225,233,220,224,216,90,213,181,210,66,209,33,209,75,210,181,212, +83,216,15,221,176,226,215,232,46,239,119,245,137,251,66,1,108,6,167,10,170,13,137,15,150,16,9,17,245,16,144,16, +39,16,216,15,139,15,71,15,76,15,207,15,187,16,184,17,80,18,49,18,83,17,217,15,217,13,83,11,64,8,156,4, +119,0,7,252,149,247,118,243,23,240,211,237,191,236,180,236,149,237,77,239,168,241,77,244,242,246,139,249,43,252,182,254, +230,0,153,2,221,3,184,4,30,5,32,5,230,4,132,4,12,4,173,3,159,3,239,3,116,4,253,4,121,5,218,5, +240,5,118,5,78,4,153,2,163,0,148,254,83,252,196,249,21,247,143,244,70,242,24,240,236,237,212,235,237,233,52,232, +112,230,93,228,223,225,242,222,147,219,199,215,171,211,101,207,20,203,221,198,247,194,147,191,194,188,127,186,221,184,2,184, +240,183,128,184,153,185,69,187,129,189,20,192,172,194,25,197,112,199,241,201,193,204,217,207,49,211,228,214,21,219,197,223, +220,228,108,234,181,240,195,247,64,255,181,6,230,13,219,20,167,27,31,34,223,39,144,44,32,48,169,50,71,52,17,53, +2,53,244,51,239,49,74,47,89,44,34,41,121,37,99,33,42,29,15,25,2,21,187,16,52,12,204,7,209,3,59,0, +223,252,209,249,99,247,212,245,22,245,254,244,146,245,12,247,144,249,14,253,97,1,108,6,35,12,135,18,129,25,207,32, +15,40,3,47,169,53,0,60,200,65,149,70,43,74,168,76,75,78,16,79,177,78,8,77,89,74,17,71,78,67,218,62, +146,57,164,51,93,45,220,38,1,32,177,24,32,17,198,9,245,2,171,252,201,246,105,241,225,236,123,233,48,231,208,229, +72,229,187,229,60,231,173,233,205,236,106,240,138,244,65,249,99,254,116,3,11,8,23,12,202,15,68,19,93,22,209,24, +139,26,174,27,74,28,42,28,29,27,68,25,1,23,125,20,119,17,161,13,13,9,13,4,211,254,83,249,122,243,87,237, +43,231,74,225,226,219,242,214,139,210,251,206,166,204,197,203,87,204,57,206,80,209,143,213,195,218,142,224,145,230,144,236, +108,242,22,248,98,253,244,1,124,5,0,8,208,9,30,11,0,12,169,12,104,13,80,14,59,15,36,16,75,17,224,18, +192,20,123,22,151,23,206,23,36,23,183,21,142,19,163,16,238,12,113,8,76,3,207,253,85,248,54,243,209,238,127,235, +102,233,127,232,183,232,246,233,8,236,151,238,82,241,27,244,3,247,245,249,164,252,216,254,154,0,248,1,232,2,110,3, +171,3,185,3,180,3,204,3,49,4,229,4,186,5,138,6,80,7,2,8,112,8,84,8,139,7,54,6,153,4,217,2, +222,0,139,254,8,252,161,249,114,247,90,245,52,243,0,241,225,238,231,236,244,234,203,232,68,230,82,227,243,223,54,220, +62,216,47,212,28,208,26,204,90,200,17,197,91,194,55,192,183,190,2,190,29,190,218,190,255,191,120,193,72,195,107,197, +182,199,236,201,250,203,18,206,114,208,37,211,26,214,90,217,20,221,92,225,24,230,70,235,21,241,151,247,127,254,86,5, +223,11,41,18,73,24,15,30,19,35,6,39,236,41,238,43,39,45,169,45,120,45,122,44,178,42,109,40,253,37,114,35, +168,32,158,29,141,26,156,23,161,20,74,17,148,13,221,9,121,6,91,3,84,0,107,253,239,250,33,249,253,247,99,247, +111,247,113,248,148,250,180,253,149,1,33,6,113,11,148,17,89,24,79,31,7,38,93,44,101,50,21,56,26,61,16,65, +219,67,184,69,232,70,95,71,210,70,43,69,192,66,6,64,3,61,91,57,220,52,200,47,117,42,220,36,172,30,190,23, +100,16,37,9,74,2,185,251,81,245,66,239,0,234,231,229,243,226,238,224,209,223,208,223,8,225,89,227,123,230,57,234, +152,238,184,243,117,249,69,255,164,4,120,9,7,14,130,18,192,22,95,26,42,29,63,31,183,32,96,33,245,32,140,31, +128,29,9,27,241,23,240,19,17,15,170,9,239,3,219,253,103,247,188,240,36,234,227,227,13,222,156,216,183,211,195,207, +35,205,0,204,73,204,220,205,161,208,127,212,69,217,165,222,84,228,21,234,199,239,98,245,198,250,156,255,150,3,199,6, +134,9,1,12,53,14,58,16,75,18,133,20,198,22,252,24,79,27,240,29,195,32,85,35,26,37,193,37,78,37,231,35, +163,33,131,30,141,26,204,21,89,16,107,10,74,4,86,254,9,249,216,244,230,241,14,240,36,239,19,239,179,239,183,240, +208,241,244,242,67,244,168,245,199,246,108,247,183,247,210,247,201,247,176,247,157,247,141,247,139,247,213,247,179,248,45,250, +3,252,251,253,255,255,1,2,195,3,224,4,40,5,201,4,29,4,72,3,26,2,105,0,92,254,74,252,84,250,94,248, +81,246,57,244,54,242,72,240,64,238,233,235,59,233,61,230,223,226,13,223,222,218,126,214,7,210,137,205,41,201,31,197, +145,193,135,190,11,188,54,186,15,185,125,184,109,184,221,184,203,185,19,187,118,188,202,189,37,191,199,192,208,194,38,197, +188,199,192,202,106,206,185,210,137,215,229,220,21,227,43,234,204,241,124,249,25,1,198,8,136,16,16,24,232,30,205,36, +199,41,233,45,41,49,122,51,205,52,13,53,66,52,187,50,200,48,105,46,112,43,224,39,0,36,7,32,217,27,48,23, +15,18,219,12,232,7,43,3,122,254,243,249,1,246,242,242,186,240,39,239,78,238,139,238,26,240,230,242,187,246,122,251, +34,1,176,7,252,14,176,22,113,30,16,38,127,45,160,52,49,59,228,64,162,69,146,73,219,76,102,79,234,80,69,81, +194,80,206,79,115,78,89,76,77,73,124,69,28,65,32,60,87,54,172,47,93,40,219,32,122,25,54,18,246,10,233,3, +133,253,45,248,229,243,122,240,222,237,56,236,163,235,4,236,41,237,237,238,89,241,128,244,55,248,0,252,112,255,127,2, +112,5,122,8,133,11,75,14,157,16,130,18,250,19,217,20,253,20,129,20,159,19,99,18,157,16,29,14,234,10,48,7, +255,2,75,254,20,249,125,243,183,237,243,231,85,226,249,220,20,216,249,211,246,208,50,207,179,206,125,207,161,209,21,213, +142,217,154,222,235,227,105,233,6,239,166,244,254,249,164,254,77,2,24,5,89,7,51,9,162,10,191,11,214,12,18,14, +90,15,147,16,217,17,96,19,47,21,4,23,108,24,241,24,97,24,211,22,130,20,140,17,245,13,181,9,214,4,139,255, +38,250,254,244,118,240,237,236,152,234,127,233,148,233,178,234,142,236,205,238,55,241,211,243,175,246,153,249,50,252,88,254, +37,0,152,1,141,2,3,3,30,3,238,2,120,2,231,1,129,1,97,1,97,1,75,1,15,1,179,0,34,0,48,255, +200,253,17,252,67,250,119,248,152,246,163,244,201,242,66,241,5,240,226,238,196,237,187,236,213,235,8,235,49,234,40,233, +209,231,13,230,190,227,237,224,205,221,138,218,34,215,147,211,8,208,191,204,218,201,88,199,66,197,178,195,172,194,24,194, +238,193,62,194,2,195,13,196,39,197,38,198,24,199,67,200,217,201,199,203,249,205,139,208,163,211,57,215,55,219,188,223, +19,229,76,235,20,242,248,248,203,255,165,6,157,13,141,20,29,27,2,33,33,38,113,42,237,45,156,48,130,50,136,51, +157,51,248,50,230,49,117,48,122,46,243,43,31,41,49,38,16,35,126,31,130,27,106,23,116,19,152,15,178,11,205,7, +46,4,27,1,146,254,92,252,128,250,87,249,53,249,26,250,211,251,62,254,106,1,112,5,67,10,163,15,75,21,28,27, +13,33,9,39,210,44,28,50,194,54,217,58,127,62,154,65,233,67,79,69,252,69,51,70,244,69,250,68,12,67,61,64, +198,60,188,56,240,51,48,46,171,39,231,32,55,26,132,19,159,12,186,5,89,255,233,249,115,245,196,241,214,238,232,236, +25,236,53,236,243,236,63,238,56,240,250,242,101,246,19,250,151,253,213,0,246,3,31,7,52,10,248,12,84,15,95,17, +29,19,93,20,245,20,1,21,190,20,44,20,250,18,220,16,229,13,98,10,114,6,245,1,190,252,204,246,87,240,179,233, +21,227,140,220,74,214,188,208,78,204,55,201,139,199,84,199,146,200,45,203,232,206,110,211,118,216,206,221,90,227,251,232, +105,238,50,243,12,247,21,250,150,252,177,254,113,0,21,2,255,3,82,6,225,8,137,11,128,14,12,18,13,22,0,26, +85,29,184,31,22,33,130,33,8,33,157,31,38,29,145,25,246,20,160,15,240,9,63,4,235,254,83,250,186,246,46,244, +164,242,251,241,251,241,100,242,20,243,16,244,97,245,218,246,41,248,46,249,2,250,173,250,24,251,76,251,111,251,138,251, +157,251,222,251,148,252,188,253,23,255,119,0,212,1,27,3,19,4,129,4,96,4,224,3,55,3,124,2,151,1,124,0, +84,255,77,254,97,253,113,252,113,251,111,250,123,249,153,248,161,247,73,246,89,244,198,241,147,238,201,234,133,230,240,225, +42,221,76,216,116,211,200,206,112,202,143,198,75,195,193,192,238,190,161,189,181,188,57,188,79,188,233,188,177,189,81,190, +209,190,143,191,201,192,105,194,86,196,182,198,195,201,145,205,20,210,89,215,143,221,199,228,175,236,204,244,238,252,48,5, +152,13,214,21,124,29,61,36,249,41,154,46,25,50,135,52,241,53,71,54,140,53,2,52,237,49,95,47,83,44,230,40, +83,37,183,33,248,29,230,25,148,21,91,17,113,13,173,9,205,5,226,1,75,254,78,251,216,248,183,246,7,245,38,244, +83,244,134,245,165,247,173,250,180,254,192,3,164,9,9,16,147,22,9,29,88,35,125,41,85,47,141,52,227,56,94,60, +41,63,65,65,111,66,156,66,5,66,255,64,152,63,152,61,229,58,158,55,224,51,156,47,183,42,49,37,61,31,30,25, +248,18,197,12,131,6,99,0,203,250,19,246,67,242,48,239,221,236,126,235,46,235,204,235,43,237,53,239,247,241,133,245, +177,249,232,253,159,1,207,4,219,7,6,11,44,14,249,16,69,19,39,21,184,22,213,23,75,24,33,24,152,23,199,22, +110,21,73,19,99,16,237,12,233,8,57,4,225,254,15,249,5,243,255,236,34,231,136,225,98,220,14,216,227,212,20,211, +164,210,121,211,126,213,160,216,164,220,35,225,188,229,75,234,216,238,100,243,172,247,53,251,190,253,135,255,251,0,71,2, +110,3,157,4,25,6,239,7,241,9,5,12,84,14,9,17,4,20,212,22,239,24,248,25,232,25,245,24,75,23,235,20, +201,17,246,13,172,9,49,5,188,0,131,252,217,248,18,246,78,244,129,243,145,243,82,244,118,245,168,246,188,247,192,248, +200,249,187,250,106,251,220,251,65,252,150,252,169,252,122,252,69,252,55,252,93,252,210,252,174,253,218,254,23,0,55,1, +59,2,31,3,178,3,171,3,242,2,180,1,71,0,223,254,120,253,4,252,160,250,125,249,176,248,39,248,193,247,100,247, +7,247,163,246,29,246,74,245,8,244,46,242,146,239,81,236,195,232,43,229,131,225,175,221,183,217,216,213,81,210,66,207, +177,204,171,202,56,201,48,200,87,199,141,198,212,197,32,197,80,196,85,195,85,194,140,193,23,193,242,192,46,193,4,194, +176,195,80,198,230,201,117,206,25,212,225,218,156,226,238,234,134,243,50,252,204,4,34,13,249,20,35,28,143,34,40,40, +210,44,132,48,69,51,15,53,211,53,163,53,164,52,245,50,174,48,230,45,181,42,52,39,115,35,106,31,20,27,127,22, +188,17,222,12,11,8,128,3,97,255,169,251,73,248,93,245,57,243,32,242,14,242,218,242,128,244,30,247,207,250,131,255, +11,5,50,11,194,17,129,24,55,31,193,37,4,44,225,49,61,55,254,59,251,63,253,66,233,68,214,69,243,69,84,69, +222,67,109,65,255,61,164,57,113,52,153,46,97,40,243,33,78,27,120,20,148,13,223,6,149,0,215,250,184,245,86,241, +214,237,76,235,171,233,201,232,114,232,162,232,124,233,15,235,75,237,37,240,151,243,122,247,145,251,184,255,231,3,31,8, +84,12,110,16,94,20,32,24,140,27,73,30,20,32,242,32,11,33,92,32,182,30,2,28,82,24,166,19,236,13,79,7, +66,0,47,249,79,242,198,235,190,229,87,224,183,219,31,216,211,213,225,212,15,213,18,214,194,215,12,218,221,220,27,224, +150,227,13,231,112,234,240,237,146,241,251,244,229,247,145,250,117,253,192,0,82,4,18,8,12,12,65,16,111,20,35,24, +35,27,144,29,149,31,12,33,148,33,245,32,40,31,52,28,45,24,100,19,74,14,51,9,84,4,217,255,222,251,96,248, +105,245,35,243,170,241,227,240,168,240,235,240,167,241,186,242,225,243,226,244,174,245,79,246,229,246,164,247,156,248,149,249, +79,250,247,250,254,251,126,253,41,255,186,0,66,2,228,3,133,5,214,6,156,7,219,7,181,7,50,7,67,6,234,4, +73,3,135,1,172,255,181,253,157,251,107,249,74,247,117,245,231,243,76,242,112,240,132,238,204,236,48,235,111,233,108,231, +51,229,215,226,104,224,245,221,146,219,94,217,131,215,29,214,34,213,84,212,129,211,208,210,141,210,163,210,157,210,39,210, +117,209,232,208,123,208,195,207,149,206,91,205,154,204,102,204,144,204,27,205,80,206,111,208,113,211,17,215,17,219,106,223, +70,228,204,233,222,239,24,246,28,252,225,1,135,7,234,12,178,17,175,21,23,25,65,28,70,31,231,33,239,35,126,37, +211,38,248,39,175,40,176,40,239,39,150,38,195,36,104,34,120,31,16,28,90,24,101,20,25,16,105,11,156,6,33,2, +45,254,180,250,204,247,207,245,15,245,156,245,76,247,217,249,16,253,228,0,83,5,67,10,127,15,203,20,22,26,121,31, +228,36,6,42,148,46,143,50,36,54,100,57,35,60,37,62,96,63,4,64,38,64,166,63,91,62,54,60,56,57,121,53, +29,49,72,44,21,39,169,33,52,28,218,22,152,17,91,12,55,7,96,2,247,253,249,249,101,246,73,243,178,240,177,238, +83,237,148,236,94,236,158,236,84,237,141,238,78,240,167,242,200,245,203,249,94,254,240,2,63,7,112,11,153,15,126,19, +181,22,3,25,106,26,230,26,86,26,182,24,61,22,254,18,190,14,116,9,148,3,177,253,22,248,228,242,90,238,179,234, +218,231,138,229,170,227,92,226,164,225,69,225,246,224,170,224,140,224,166,224,205,224,232,224,42,225,189,225,109,226,5,227, +198,227,79,229,8,232,231,235,172,240,35,246,51,252,197,2,151,9,45,16,20,22,41,27,106,31,167,34,158,36,71,37, +195,36,31,35,100,32,191,28,121,24,253,19,184,15,230,11,139,8,177,5,98,3,137,1,239,255,128,254,72,253,78,252, +126,251,181,250,205,249,182,248,141,247,121,246,158,245,16,245,186,244,95,244,236,243,193,243,85,244,164,245,77,247,22,249, +255,250,16,253,36,255,254,0,135,2,235,3,77,5,119,6,35,7,105,7,148,7,187,7,174,7,45,7,26,6,134,4, +180,2,224,0,10,255,3,253,174,250,22,248,61,245,42,242,5,239,252,235,7,233,11,230,14,227,54,224,173,221,138,219, +196,217,67,216,245,214,185,213,97,212,244,210,176,209,173,208,162,207,62,206,151,204,18,203,238,201,16,201,83,200,210,199, +187,199,14,200,178,200,198,201,139,203,29,206,80,209,236,212,213,216,11,221,149,225,130,230,204,235,70,241,189,246,31,252, +84,1,64,6,223,10,56,15,60,19,228,22,63,26,80,29,6,32,96,34,99,36,0,38,30,39,163,39,143,39,249,38, +227,37,41,36,186,33,189,30,100,27,196,23,225,19,186,15,88,11,219,6,118,2,101,254,231,250,30,248,12,246,183,244, +75,244,251,244,192,246,98,249,183,252,188,0,92,5,83,10,109,15,160,20,220,25,1,31,255,35,198,40,49,45,19,49, +93,52,43,55,158,57,164,59,12,61,182,61,150,61,131,60,106,58,131,55,32,52,93,48,45,44,144,39,182,34,214,29, +254,24,27,20,65,15,175,10,129,6,168,2,36,255,248,251,7,249,63,246,218,243,56,242,125,241,121,241,238,241,206,242, +49,244,36,246,148,248,95,251,118,254,221,1,149,5,118,9,64,13,193,16,243,19,247,22,215,25,75,28,214,29,44,30, +110,29,232,27,192,25,229,22,80,19,23,15,72,10,214,4,224,254,203,248,254,242,179,237,14,233,43,229,24,226,206,223, +38,222,243,220,54,220,254,219,28,220,86,220,199,220,161,221,164,222,76,223,123,223,173,223,121,224,17,226,76,228,26,231, +164,234,241,238,162,243,98,248,99,253,7,3,61,9,121,15,42,21,251,25,189,29,97,32,244,33,129,34,18,34,188,32, +144,30,152,27,250,23,234,19,174,15,167,11,41,8,54,5,181,2,175,0,31,255,184,253,56,252,179,250,103,249,108,248, +171,247,251,246,55,246,86,245,115,244,207,243,158,243,225,243,119,244,82,245,118,246,208,247,61,249,173,250,50,252,225,253, +163,255,56,1,102,2,31,3,135,3,208,3,20,4,79,4,127,4,171,4,198,4,175,4,61,4,96,3,48,2,227,0, +136,255,239,253,229,251,109,249,171,246,185,243,160,240,123,237,131,234,222,231,118,229,39,227,251,224,9,223,84,221,211,219, +117,218,30,217,178,215,35,214,96,212,103,210,66,208,225,205,41,203,52,200,86,197,203,194,157,192,216,190,172,189,91,189, +6,190,168,191,60,194,197,197,57,202,92,207,229,212,180,218,219,224,92,231,7,238,154,244,236,250,251,0,226,6,179,12, +80,18,128,23,56,28,161,32,206,36,149,40,179,43,4,46,163,47,182,48,41,49,192,48,85,47,236,44,168,41,196,37, +105,33,144,28,59,23,182,17,80,12,24,7,9,2,86,253,86,249,61,246,247,243,105,242,170,241,243,241,80,243,156,245, +164,248,80,252,154,0,116,5,184,10,54,16,205,21,114,27,42,33,230,38,97,44,80,49,178,53,196,57,148,61,213,64, +43,67,141,68,43,69,8,69,243,67,201,65,154,62,140,58,212,53,186,48,105,43,226,37,37,32,76,26,121,20,200,14, +67,9,248,3,23,255,200,250,247,246,127,243,121,240,56,238,245,236,174,236,46,237,63,238,205,239,226,241,117,244,109,247, +176,250,43,254,227,1,222,5,238,9,169,13,196,16,91,19,184,21,223,23,127,25,82,26,101,26,233,25,223,24,254,22, +253,19,234,15,36,11,233,5,41,0,237,249,170,243,215,237,137,232,178,227,130,223,85,220,63,218,4,217,107,216,106,216, +239,216,206,217,1,219,158,220,116,222,19,224,64,225,64,226,149,227,115,229,169,231,37,234,73,237,104,241,42,246,7,251, +2,0,121,5,118,11,133,17,16,23,191,27,138,31,128,34,132,36,87,37,216,36,23,35,58,32,113,28,4,24,60,19, +98,14,203,9,193,5,67,2,61,255,209,252,28,251,218,249,182,248,177,247,238,246,92,246,208,245,44,245,105,244,156,243, +237,242,119,242,75,242,134,242,52,243,79,244,213,245,191,247,234,249,47,252,125,254,199,0,232,2,178,4,17,6,4,7, +132,7,145,7,80,7,243,6,140,6,15,6,111,5,164,4,157,3,84,2,217,0,64,255,130,253,125,251,16,249,69,246, +58,243,243,239,101,236,174,232,29,229,244,225,75,223,33,221,124,219,88,218,149,217,29,217,232,216,215,216,173,216,69,216, +140,215,94,214,133,212,230,209,146,206,212,202,10,199,106,195,8,192,9,189,159,186,8,185,159,184,191,185,98,188,46,192, +227,196,109,202,174,208,112,215,133,222,201,229,8,237,0,244,139,250,175,0,128,6,16,12,105,17,145,22,128,27,41,32, +136,36,174,40,164,44,54,48,29,51,80,53,236,54,198,55,131,55,9,54,141,51,42,48,193,43,77,38,15,32,80,25, +36,18,149,10,10,3,34,252,32,246,237,240,162,236,167,233,70,232,97,232,177,233,32,236,191,239,119,244,238,249,202,255, +228,5,40,12,134,18,3,25,177,31,124,38,27,45,71,51,241,56,35,62,201,66,191,70,239,73,60,76,107,77,98,77, +77,76,93,74,161,71,27,68,230,63,33,59,212,53,247,47,159,41,6,35,97,28,204,21,98,15,48,9,38,3,62,253, +169,247,180,242,153,238,105,235,21,233,145,231,235,230,43,231,53,232,243,233,110,236,185,239,194,243,67,248,243,252,190,1, +172,6,169,11,125,16,248,20,242,24,72,28,193,30,19,32,12,32,187,30,92,28,23,25,251,20,38,16,217,10,89,5, +215,255,110,250,82,245,187,240,183,236,36,233,240,229,40,227,209,224,208,222,254,220,73,219,183,217,63,216,206,214,128,213, +169,212,114,212,189,212,115,213,183,214,181,216,116,219,234,222,52,227,134,232,236,238,41,246,223,253,165,5,1,13,133,19, +9,25,156,29,58,33,162,35,152,36,58,36,226,34,178,32,143,29,160,25,105,21,100,17,186,13,106,10,125,7,255,4, +236,2,52,1,211,255,191,254,187,253,124,252,246,250,80,249,153,247,201,245,3,244,154,242,192,241,84,241,46,241,108,241, +88,242,8,244,71,246,211,248,144,251,138,254,195,1,245,4,176,7,198,9,109,11,211,12,214,13,48,14,214,13,3,13, +227,11,85,10,41,8,126,5,181,2,11,0,99,253,144,250,152,247,161,244,186,241,228,238,49,236,181,233,112,231,96,229, +145,227,12,226,205,224,213,223,43,223,216,222,221,222,30,223,76,223,30,223,117,222,71,221,119,219,230,216,172,213,37,210, +157,206,14,203,82,199,139,195,38,192,123,189,165,187,168,186,172,186,224,187,55,190,87,193,253,196,58,201,49,206,197,211, +170,217,175,223,199,229,234,235,8,242,41,248,95,254,179,4,47,11,215,17,132,24,222,30,164,36,210,41,127,46,174,50, +71,54,25,57,222,58,94,59,159,58,211,56,34,54,149,50,53,46,36,41,115,35,21,29,21,22,204,14,184,7,39,1, +41,251,208,245,104,241,70,238,114,236,178,235,231,235,35,237,110,239,156,242,121,246,236,250,238,255,115,5,113,11,215,17, +130,24,59,31,228,37,126,44,249,50,13,57,94,62,185,66,32,70,160,72,36,74,124,74,146,73,156,71,255,68,236,65, +53,62,181,57,156,52,51,47,137,41,145,35,88,29,2,23,177,16,120,10,81,4,61,254,117,248,86,243,15,239,153,235, +231,232,232,230,148,229,8,229,130,229,18,231,140,233,195,236,175,240,76,245,109,250,195,255,30,5,136,10,23,16,144,21, +105,26,59,30,5,33,223,34,174,35,66,35,160,33,242,30,83,27,204,22,128,17,188,11,221,5,30,0,172,250,190,245, +105,241,118,237,173,233,43,230,31,227,91,224,144,221,217,218,174,216,41,215,200,213,42,212,167,210,218,209,228,209,137,210, +203,211,8,214,125,217,250,221,48,227,1,233,114,239,108,246,206,253,124,5,17,13,231,19,163,25,109,30,90,34,19,37, +68,38,12,38,202,36,181,34,211,31,64,28,92,24,163,20,103,17,176,14,82,12,49,10,70,8,136,6,231,4,64,3, +80,1,245,254,111,252,1,250,120,247,135,244,99,241,157,238,124,236,236,234,209,233,83,233,198,233,94,235,245,237,31,241, +126,244,252,247,190,251,179,255,98,3,85,6,160,8,171,10,135,12,202,13,39,14,222,13,105,13,227,12,248,11,114,10, +132,8,129,6,125,4,90,2,255,255,110,253,174,250,197,247,190,244,159,241,93,238,5,235,225,231,68,229,63,227,163,225, +57,224,241,222,237,221,45,221,88,220,10,219,78,217,110,215,102,213,230,210,200,207,100,204,64,201,123,198,207,195,49,193, +23,191,234,189,128,189,118,189,209,189,248,190,20,193,195,195,145,198,129,201,222,204,196,208,22,213,185,217,166,222,232,227, +165,233,249,239,213,246,244,253,26,5,69,12,140,19,208,26,193,33,40,40,239,45,242,50,6,55,11,58,226,59,113,60, +191,59,227,57,237,54,244,50,38,46,193,40,245,34,200,28,56,22,133,15,45,9,148,3,181,254,79,250,86,246,31,243, +239,240,163,239,246,238,240,238,193,239,114,241,248,243,86,247,134,251,119,0,34,6,144,12,158,19,233,26,13,34,238,40, +153,47,239,53,169,59,150,64,158,68,186,71,5,74,148,75,59,76,193,75,33,74,118,71,209,67,70,63,247,57,5,52, +132,45,130,38,36,31,177,23,131,16,209,9,166,3,253,253,243,248,194,244,111,241,185,238,126,236,237,234,50,234,46,234, +174,234,177,235,65,237,67,239,149,241,69,244,133,247,98,251,169,255,30,4,153,8,241,12,243,16,102,20,33,23,39,25, +141,26,49,27,204,26,93,25,56,23,154,20,123,17,201,13,175,9,151,5,195,1,251,253,232,249,175,245,191,241,47,238, +185,234,58,231,216,227,158,224,79,221,190,217,69,214,138,211,214,209,229,208,120,208,195,208,36,210,171,212,45,216,171,220, +95,226,80,233,46,241,138,249,253,1,16,10,88,17,155,23,209,28,237,32,184,35,253,36,243,36,36,36,217,34,249,32, +148,30,19,28,216,25,252,23,103,22,239,20,112,19,238,17,120,16,233,14,243,12,84,10,10,7,57,3,254,254,101,250, +151,245,247,240,246,236,201,233,83,231,101,229,34,228,234,227,232,228,234,230,171,233,17,237,18,241,134,245,35,250,143,254, +135,2,249,5,234,8,80,11,11,13,11,14,109,14,99,14,254,13,50,13,2,12,131,10,180,8,141,6,29,4,135,1, +215,254,252,251,228,248,171,245,131,242,146,239,226,236,113,234,48,232,27,230,79,228,233,226,232,225,54,225,172,224,0,224, +242,222,119,221,157,219,82,217,115,214,251,210,18,207,12,203,44,199,116,195,220,191,155,188,5,186,61,184,45,183,213,182, +98,183,249,184,115,187,121,190,225,193,192,197,37,202,225,206,184,211,163,216,197,221,46,227,203,232,149,238,158,244,243,250, +146,1,105,8,69,15,229,21,40,28,22,34,188,39,20,45,244,49,11,54,17,57,244,58,205,59,166,59,105,58,245,55, +85,52,203,47,136,42,116,36,124,29,231,21,63,14,224,6,221,255,69,249,109,243,200,238,138,235,148,233,192,232,25,233, +179,234,107,237,238,240,14,245,234,249,171,255,47,6,50,13,131,20,8,28,173,35,99,43,247,50,5,58,51,64,111,69, +211,73,99,77,227,79,14,81,233,80,190,79,200,77,5,75,109,71,35,67,91,62,54,57,168,51,149,45,10,39,75,32, +149,25,229,18,34,12,95,5,231,254,5,249,205,243,41,239,14,235,157,231,19,229,159,227,64,227,225,227,128,229,37,232, +209,235,114,240,205,245,138,251,111,1,134,7,206,13,229,19,41,25,45,29,252,31,199,33,94,34,106,33,27,31,23,28, +158,24,115,20,154,15,155,10,240,5,178,1,206,253,64,250,20,247,67,244,165,241,6,239,66,236,51,233,188,229,251,225, +72,222,219,218,151,215,78,212,63,209,237,206,157,205,51,205,167,205,74,207,116,210,33,215,238,220,112,227,119,234,12,242, +49,250,142,2,94,10,240,16,56,22,157,26,51,30,150,32,140,33,100,33,137,32,27,31,14,29,132,26,1,24,18,22, +222,20,23,20,103,19,166,18,194,17,180,16,91,15,112,13,191,10,114,7,210,3,235,255,133,251,133,246,61,241,85,236, +78,232,34,229,145,226,191,224,47,224,52,225,147,227,191,230,83,234,70,238,176,242,109,247,0,252,251,255,111,3,172,6, +165,9,237,11,56,13,168,13,165,13,118,13,3,13,9,12,157,10,40,9,222,7,121,6,158,4,48,2,93,255,97,252, +78,249,2,246,119,242,246,238,227,235,118,233,169,231,82,230,70,229,121,228,231,227,115,227,227,226,5,226,194,224,30,223, +13,221,96,218,238,214,229,210,178,206,160,202,183,198,253,194,180,191,50,189,162,187,1,187,60,187,67,188,7,190,125,192, +131,195,218,198,91,202,15,206,252,209,15,214,69,218,174,222,85,227,77,232,182,237,167,243,32,250,32,1,156,8,106,16, +64,24,224,31,55,39,38,46,85,52,93,57,28,61,165,63,252,64,13,65,199,63,35,61,35,57,224,51,150,45,157,38, +65,31,171,23,16,16,217,8,107,2,224,252,27,248,13,244,207,240,141,238,60,237,154,236,134,236,40,237,181,238,50,241, +143,244,193,248,193,253,140,3,39,10,129,17,75,25,21,33,150,40,188,47,110,54,106,60,118,65,126,69,116,72,84,74, +70,75,117,75,204,74,28,73,95,70,191,66,95,62,81,57,185,51,222,45,215,39,109,33,125,26,83,19,107,12,241,5, +204,255,250,249,171,244,19,240,65,236,54,233,9,231,198,229,73,229,117,229,112,230,118,232,127,235,64,239,142,243,123,248, +246,253,127,3,138,8,3,13,20,17,157,20,73,23,246,24,191,25,188,25,230,24,36,23,140,20,133,17,109,14,58,11, +187,7,31,4,237,0,98,254,28,252,134,249,107,246,5,243,127,239,195,235,209,231,238,227,63,224,144,220,181,216,249,212, +201,209,51,207,34,205,237,203,41,204,254,205,19,209,37,213,87,218,219,224,135,232,215,240,88,249,205,1,237,9,61,17, +83,23,21,28,144,31,198,33,175,34,87,34,0,33,30,31,21,29,18,27,39,25,134,23,127,22,51,22,67,22,17,22, +102,21,120,20,70,19,98,17,143,14,9,11,14,7,135,2,94,253,223,247,148,242,227,237,240,233,213,230,194,228,216,227, +13,228,69,229,103,231,82,234,224,237,247,241,126,246,34,251,105,255,18,3,56,6,253,8,66,11,225,12,228,13,124,14, +213,14,253,14,232,14,140,14,227,13,212,12,92,11,169,9,221,7,197,5,28,3,221,255,52,252,75,248,83,244,131,240, +0,237,226,233,53,231,11,229,130,227,178,226,145,226,209,226,10,227,247,226,140,226,176,225,20,224,135,221,96,218,36,215, +222,211,40,208,241,203,196,199,58,196,101,193,15,191,78,189,149,188,26,189,123,190,44,192,25,194,161,196,233,199,143,203, +52,207,235,210,247,214,103,219,50,224,86,229,202,234,135,240,142,246,224,252,102,3,11,10,191,16,119,23,28,30,116,36, +43,42,2,47,234,50,254,53,84,56,214,57,79,58,164,57,226,55,3,53,233,48,167,43,162,37,51,31,99,24,38,17, +189,9,171,2,85,252,209,246,26,242,55,238,57,235,51,233,45,232,6,232,160,232,25,234,174,236,103,240,18,245,109,250, +102,0,25,7,147,14,133,22,110,30,12,38,104,45,120,52,219,58,31,64,43,68,64,71,139,73,249,74,110,75,245,74, +166,73,129,71,115,68,112,64,137,59,250,53,13,48,227,41,90,35,73,28,229,20,185,13,36,7,22,1,98,251,17,246, +80,241,69,237,251,233,94,231,103,229,51,228,229,227,129,228,5,230,108,232,178,235,228,239,13,245,251,250,64,1,102,7, +52,13,168,18,158,23,145,27,253,29,245,30,241,30,25,30,49,28,60,25,174,21,227,17,229,13,209,9,0,6,160,2, +138,255,170,252,28,250,192,247,24,245,211,241,60,238,219,234,198,231,143,228,228,224,12,221,116,217,25,214,218,210,7,208, +38,206,101,205,181,205,54,207,48,210,194,214,206,220,34,228,120,236,69,245,227,253,19,6,235,13,36,21,255,26,23,31, +186,33,61,35,98,35,223,33,39,31,57,28,183,25,151,23,180,21,45,20,24,19,92,18,215,17,96,17,169,16,125,15, +249,13,81,12,97,10,188,7,40,4,251,255,203,251,223,247,23,244,94,240,255,236,111,234,228,232,65,232,90,232,52,233, +242,234,169,237,40,241,246,244,174,248,117,252,169,0,17,5,234,8,195,11,202,13,60,15,249,15,197,15,194,14,103,13, +242,11,31,10,165,7,182,4,185,1,199,254,194,251,167,248,139,245,108,242,65,239,41,236,98,233,23,231,94,229,88,228, +21,228,106,228,9,229,194,229,126,230,36,231,130,231,81,231,79,230,115,228,252,225,37,223,236,219,52,216,24,212,14,208, +143,204,162,201,249,198,138,196,196,194,18,194,101,194,67,195,66,196,95,197,222,198,230,200,92,203,23,206,26,209,133,212, +90,216,110,220,170,224,51,229,76,234,18,240,115,246,71,253,110,4,213,11,95,19,210,26,245,33,155,40,152,46,195,51, +14,56,102,59,156,61,142,62,59,62,176,60,225,57,171,53,8,48,72,41,3,34,161,26,34,19,149,11,109,4,50,254, +4,249,173,244,252,240,0,238,238,235,226,234,194,234,107,235,232,236,105,239,250,242,103,247,109,252,241,1,0,8,155,14, +143,21,131,28,64,35,205,41,51,48,56,54,133,59,222,63,53,67,151,69,13,71,132,71,246,70,152,69,174,67,44,65, +197,61,77,57,237,51,5,46,234,39,184,33,85,27,191,20,71,14,77,8,218,2,179,253,200,248,88,244,155,240,134,237, +1,235,45,233,67,232,70,232,18,233,157,234,251,236,48,240,42,244,221,248,56,254,241,3,149,9,226,14,229,19,143,24, +112,28,5,31,49,32,58,32,62,31,7,29,124,25,11,21,105,16,235,11,99,7,182,2,76,254,183,250,19,248,254,245, +16,244,42,242,59,240,16,238,127,235,162,232,165,229,121,226,233,222,4,219,56,215,223,211,250,208,146,206,32,205,66,205, +22,207,75,210,190,214,167,220,6,228,93,236,13,245,188,253,57,6,55,14,78,21,46,27,166,31,135,34,177,35,61,35, +117,33,168,30,51,27,157,23,114,20,241,17,19,16,198,14,242,13,109,13,10,13,169,12,39,12,85,11,16,10,90,8, +44,6,86,3,176,255,118,251,50,247,77,243,206,239,161,236,8,234,133,232,78,232,28,233,160,234,230,236,14,240,238,243, +45,248,124,252,161,0,104,4,183,7,141,10,232,12,161,14,130,15,135,15,228,14,199,13,55,12,78,10,76,8,87,6, +80,4,13,2,159,255,64,253,249,250,145,248,221,245,253,242,54,240,162,237,56,235,248,232,12,231,185,229,36,229,34,229, +100,229,191,229,44,230,152,230,197,230,109,230,110,229,206,227,153,225,220,222,173,219,20,216,10,212,180,207,132,203,229,199, +222,196,64,194,42,192,15,191,41,191,32,192,139,193,120,195,44,198,158,201,119,205,119,209,155,213,243,217,102,222,191,226, +248,230,87,235,32,240,78,245,185,250,82,0,47,6,112,12,23,19,248,25,208,32,99,39,119,45,209,50,86,55,248,58, +141,61,208,62,156,62,253,60,7,58,161,53,177,47,127,40,179,32,196,24,181,16,130,8,171,0,235,249,158,244,154,240, +172,237,225,235,66,235,156,235,188,236,177,238,154,241,94,245,199,249,196,254,79,4,68,10,105,16,180,22,39,29,137,35, +141,41,48,47,145,52,126,57,153,61,201,64,46,67,206,68,141,69,87,69,67,68,121,66,255,63,170,60,99,56,70,51, +132,45,73,39,194,32,249,25,217,18,144,11,165,4,147,254,105,249,241,244,8,241,187,237,33,235,75,233,67,232,29,232, +217,232,72,234,41,236,106,238,42,241,113,244,34,248,65,252,250,0,62,6,144,11,127,16,248,20,6,25,110,28,201,30, +238,31,4,32,37,31,29,29,205,25,156,21,16,17,40,12,169,6,235,0,192,251,138,247,229,243,90,240,10,237,98,234, +70,232,30,230,179,227,112,225,148,223,203,221,194,219,180,217,11,216,200,214,170,213,212,212,206,212,224,213,220,215,173,218, +178,222,44,228,201,234,255,241,141,249,80,1,226,8,200,15,206,21,227,26,195,30,33,33,8,34,193,33,86,32,164,29, +225,25,200,21,19,18,3,15,135,12,172,10,145,9,4,9,158,8,34,8,120,7,112,6,250,4,90,3,199,1,243,255, +109,253,95,250,123,247,29,245,240,242,162,240,157,238,145,237,157,237,99,238,182,239,179,241,97,244,163,247,90,251,80,255, +34,3,133,6,132,9,63,12,136,14,3,16,149,16,118,16,205,15,133,14,155,12,70,10,193,7,22,5,64,2,87,255, +130,252,191,249,238,246,14,244,58,241,133,238,0,236,213,233,49,232,42,231,209,230,44,231,28,232,87,233,132,234,101,235, +222,235,220,235,49,235,174,233,80,231,62,228,157,224,141,220,45,216,169,211,69,207,91,203,44,200,191,197,8,196,33,195, +62,195,85,196,253,197,213,199,218,201,37,204,142,206,220,208,30,211,158,213,138,216,210,219,92,223,51,227,119,231,52,236, +109,241,60,247,173,253,158,4,216,11,56,19,149,26,174,33,60,40,9,46,241,50,231,54,230,57,210,59,122,60,195,59, +200,57,181,54,142,50,78,45,38,39,100,32,64,25,228,17,157,10,215,3,225,253,216,248,173,244,79,241,200,238,24,237, +38,236,242,235,164,236,90,238,10,241,167,244,50,249,146,254,147,4,14,11,242,17,25,25,72,32,73,39,243,45,12,52, +69,57,123,61,200,64,78,67,254,68,177,69,93,69,30,68,16,66,44,63,101,59,214,54,172,49,242,43,148,37,159,30, +85,23,1,16,231,8,63,2,72,252,62,247,36,243,193,239,240,236,217,234,159,233,22,233,253,232,97,233,131,234,107,236, +201,238,76,241,2,244,50,247,251,250,62,255,206,3,136,8,71,13,215,17,5,22,161,25,114,28,59,30,229,30,126,30, +8,29,106,26,187,22,93,18,193,13,39,9,181,4,158,0,9,253,217,249,194,246,178,243,214,240,33,238,46,235,243,231, +239,228,93,226,198,223,182,220,113,217,136,214,29,212,17,210,163,208,120,208,223,209,149,212,93,216,83,221,109,227,35,234, +251,240,8,248,96,255,142,6,238,12,78,18,207,22,90,26,168,28,166,29,122,29,83,28,111,26,54,24,35,22,137,20, +131,19,14,19,37,19,167,19,48,20,78,20,224,19,228,18,40,17,142,14,95,11,227,7,242,3,93,255,118,250,216,245, +212,241,89,238,96,235,39,233,255,231,244,231,216,232,128,234,216,236,211,239,103,243,125,247,206,251,233,255,128,3,172,6, +163,9,64,12,26,14,7,15,74,15,32,15,123,14,52,13,90,11,45,9,223,6,99,4,155,1,141,254,98,251,46,248, +2,245,9,242,105,239,35,237,67,235,251,233,125,233,194,233,140,234,149,235,174,236,175,237,96,238,127,238,238,237,182,236, +240,234,165,232,200,229,87,226,142,222,196,218,49,215,212,211,179,208,8,206,38,204,29,203,170,202,147,202,220,202,121,203, +43,204,199,204,112,205,87,206,127,207,202,208,68,210,45,212,186,214,211,217,72,221,54,225,220,229,59,235,44,241,175,247, +210,254,96,6,239,13,57,21,55,28,224,34,249,40,52,46,110,50,177,53,5,56,82,57,115,57,79,56,230,53,89,50, +220,45,145,40,127,34,199,27,228,20,103,14,134,8,32,3,25,254,121,249,89,245,207,241,221,238,122,236,191,234,246,233, +87,234,212,235,66,238,128,241,133,245,91,250,253,255,49,6,179,12,114,19,104,26,100,33,28,40,95,46,16,52,23,57, +98,61,224,64,137,67,92,69,76,70,49,70,219,68,72,66,169,62,62,58,33,53,75,47,218,40,47,34,161,27,77,21, +45,15,75,9,190,3,146,254,231,249,234,245,147,242,162,239,2,237,253,234,225,233,165,233,10,234,241,234,136,236,16,239, +124,242,120,246,223,250,206,255,54,5,153,10,94,15,49,19,20,22,50,24,154,25,27,26,152,25,64,24,85,22,237,19, +40,17,96,14,232,11,210,9,248,7,38,6,68,4,88,2,76,0,210,253,180,250,40,247,121,243,138,239,12,235,23,230, +17,225,41,220,105,215,50,211,23,208,77,206,153,205,224,205,115,207,146,210,253,214,60,220,49,226,239,232,29,240,4,247, +51,253,174,2,126,7,131,11,160,14,188,16,172,17,117,17,146,16,184,15,95,15,160,15,117,16,220,17,188,19,201,21, +172,23,47,25,63,26,207,26,203,26,30,26,184,24,129,22,88,19,82,15,207,10,37,6,84,1,95,252,155,247,130,243, +69,240,216,237,55,236,114,235,144,235,144,236,100,238,222,240,170,243,134,246,116,249,148,252,209,255,211,2,69,5,27,7, +126,8,135,9,48,10,121,10,121,10,52,10,155,9,173,8,124,7,6,6,55,4,16,2,167,255,17,253,73,250,70,247, +37,244,49,241,170,238,161,236,18,235,17,234,170,233,199,233,57,234,212,234,102,235,179,235,135,235,198,234,109,233,131,231, +26,229,87,226,102,223,91,220,56,217,17,214,21,211,115,208,79,206,196,204,228,203,176,203,15,204,210,204,192,205,188,206, +203,207,253,208,69,210,145,211,228,212,80,214,223,215,164,217,192,219,77,222,82,225,218,228,2,233,238,237,180,243,67,250, +104,1,236,8,158,16,63,24,109,31,188,37,247,42,51,47,141,50,231,52,19,54,27,54,53,53,112,51,181,48,5,45, +148,40,156,35,56,30,124,24,160,18,237,12,146,7,157,2,22,254,14,250,149,246,157,243,7,241,199,238,7,237,254,235, +205,235,144,236,102,238,99,241,118,245,115,250,41,0,114,6,41,13,38,20,71,27,97,34,43,41,82,47,179,52,82,57, +18,61,190,63,71,65,210,65,133,65,122,64,197,62,97,60,54,57,51,53,118,48,80,43,252,37,106,32,133,26,147,20, +245,14,175,9,138,4,124,255,191,250,146,246,13,243,39,240,209,237,4,236,212,234,111,234,248,234,96,236,128,238,86,241, +246,244,74,249,16,254,0,3,235,7,196,12,131,17,251,21,207,25,161,28,54,30,141,30,209,29,41,28,165,25,110,22, +209,18,6,15,45,11,134,7,100,4,233,1,235,255,43,254,120,252,172,250,132,248,194,245,127,242,21,239,156,235,215,231, +184,227,139,223,133,219,135,215,135,211,15,208,244,205,141,205,138,206,186,208,101,212,161,217,215,223,87,230,8,237,19,244, +51,251,189,1,73,7,232,11,155,15,17,18,48,19,68,19,123,18,197,16,131,14,168,12,232,11,75,12,159,13,222,15, +237,18,74,22,72,25,121,27,181,28,232,28,12,28,56,26,112,23,143,19,156,14,14,9,114,3,237,253,97,248,2,243, +134,238,125,235,200,233,4,233,78,233,6,235,13,238,205,241,212,245,242,249,236,253,116,1,120,4,40,7,150,9,114,11, +122,12,219,12,228,12,137,12,161,11,101,10,47,9,252,7,150,6,247,4,64,3,100,1,49,255,156,252,202,249,195,246, +121,243,15,240,227,236,71,234,90,232,34,231,134,230,84,230,99,230,148,230,186,230,154,230,20,230,43,229,228,227,43,226, +234,223,54,221,73,218,77,215,110,212,252,209,58,208,30,207,136,206,134,206,49,207,83,208,121,209,94,210,27,211,218,211, +141,212,19,213,144,213,90,214,152,215,46,217,251,218,17,221,157,223,174,226,65,230,113,234,114,239,75,245,203,251,188,2, +229,9,251,16,165,23,172,29,10,35,214,39,23,44,171,47,111,50,90,52,104,53,138,53,171,52,188,50,188,47,200,43, +18,39,203,33,41,28,110,22,213,16,125,11,113,6,159,1,241,252,117,248,89,244,201,240,232,237,216,235,193,234,195,234, +231,235,21,238,49,241,39,245,224,249,50,255,248,4,37,11,173,17,91,24,197,30,153,36,204,41,112,46,112,50,194,53, +136,56,217,58,141,60,108,61,105,61,138,60,211,58,64,56,217,52,195,48,35,44,253,38,92,33,139,27,226,21,110,16, +19,11,199,5,164,0,209,251,114,247,151,243,64,240,124,237,114,235,75,234,24,234,200,234,46,236,50,238,219,240,54,244, +55,248,197,252,200,1,41,7,182,12,11,18,170,22,59,26,170,28,11,30,118,30,232,29,96,28,11,26,51,23,6,20, +168,16,106,13,169,10,115,8,156,6,249,4,120,3,255,1,65,0,234,253,251,250,197,247,92,244,96,240,139,235,26,230, +112,224,177,218,0,213,223,207,13,204,239,201,111,201,96,202,209,204,186,208,201,213,171,219,73,226,131,233,238,240,241,247, +19,254,33,3,26,7,244,9,148,11,243,11,66,11,233,9,116,8,98,7,255,6,119,7,239,8,91,11,96,14,136,17, +151,20,126,23,250,25,151,27,27,28,173,27,87,26,173,23,101,19,7,14,131,8,60,3,247,253,186,248,49,244,253,240, +252,238,174,237,11,237,127,237,45,239,186,241,201,244,38,248,142,251,195,254,200,1,194,4,150,7,228,9,109,11,105,12, +60,13,236,13,51,14,246,13,92,13,106,12,244,10,235,8,118,6,180,3,176,0,132,253,93,250,72,247,59,244,93,241, +7,239,103,237,85,236,178,235,159,235,38,236,227,236,83,237,64,237,191,236,220,235,110,234,71,232,125,229,103,226,85,223, +87,220,76,217,67,214,166,211,233,209,14,209,182,208,174,208,34,209,36,210,89,211,77,212,229,212,87,213,198,213,30,214, +75,214,97,214,127,214,191,214,70,215,80,216,10,218,130,220,193,223,219,227,209,232,127,238,183,244,80,251,45,2,38,9, +2,16,128,22,116,28,209,33,152,38,182,42,252,45,80,48,219,49,217,50,66,51,207,50,89,49,13,47,58,44,252,40, +68,37,18,33,138,28,207,23,214,18,141,13,5,8,125,2,59,253,115,248,69,244,205,240,62,238,216,236,186,236,191,237, +162,239,62,242,153,245,174,249,68,254,34,3,71,8,201,13,140,19,72,25,211,30,45,36,68,41,232,45,246,49,98,53, +22,56,240,57,216,58,208,58,227,57,14,56,86,53,227,49,244,45,172,41,17,37,45,32,20,27,204,21,108,16,34,11, +25,6,89,1,224,252,173,248,196,244,36,241,218,237,13,235,250,232,217,231,193,231,179,232,173,234,163,237,97,241,146,245, +245,249,113,254,229,2,18,7,207,10,41,14,52,17,226,19,4,22,105,23,243,23,164,23,154,22,3,21,34,19,69,17, +174,15,141,14,229,13,106,13,172,12,124,11,227,9,180,7,155,4,157,0,33,252,95,247,46,242,124,236,158,230,13,225, +241,219,64,215,52,211,79,208,212,206,142,206,86,207,104,209,248,212,191,217,60,223,41,229,100,235,147,241,42,247,213,251, +152,255,146,2,212,4,124,6,182,7,157,8,51,9,155,9,47,10,78,11,36,13,165,15,153,18,164,21,99,24,140,26, +241,27,89,28,153,27,222,25,159,23,17,21,243,17,9,14,150,9,44,5,14,1,20,253,54,249,210,245,75,243,140,241, +78,240,146,239,125,239,3,240,251,240,108,242,104,244,192,246,43,249,173,251,140,254,209,1,26,5,7,8,146,10,215,12, +169,14,180,15,231,15,115,15,101,14,136,12,198,9,103,6,197,2,10,255,83,251,240,247,47,245,13,243,85,241,250,239, +35,239,224,238,7,239,101,239,227,239,105,240,200,240,193,240,47,240,16,239,100,237,29,235,64,232,8,229,213,225,232,222, +69,220,238,217,29,216,17,215,182,214,172,214,197,214,21,215,141,215,209,215,162,215,31,215,135,214,232,213,55,213,138,212, +39,212,65,212,216,212,235,213,164,215,49,218,126,221,81,225,151,229,110,234,223,239,190,245,201,251,211,1,174,7,31,13, +248,17,63,22,34,26,193,29,37,33,83,36,81,39,24,42,116,44,24,46,216,46,188,46,208,45,13,44,105,41,240,37, +207,33,70,29,128,24,125,19,59,14,206,8,90,3,8,254,9,249,139,244,186,240,195,237,198,235,211,234,8,235,130,236, +38,239,168,242,211,246,155,251,240,0,168,6,140,12,102,18,27,24,161,29,224,34,184,39,41,44,65,48,232,51,219,54, +221,56,228,57,9,58,83,57,196,55,119,53,145,50,9,47,217,42,69,38,172,33,35,29,124,24,142,19,97,14,34,9, +15,4,98,255,64,251,161,247,93,244,102,241,234,238,7,237,167,235,184,234,93,234,197,234,249,235,232,237,146,240,15,244, +74,248,223,252,78,1,96,5,37,9,157,12,149,15,231,17,181,19,41,21,24,22,36,22,87,21,48,20,248,18,128,17, +186,15,30,14,19,13,78,12,60,11,174,9,209,7,135,5,90,2,43,254,106,249,118,244,33,239,58,233,39,227,164,221, +5,217,9,213,117,209,178,206,105,205,177,205,18,207,81,209,175,212,78,217,215,222,211,228,251,234,4,241,138,246,65,251, +40,255,90,2,213,4,142,6,165,7,86,8,215,8,110,9,139,10,142,12,117,15,245,18,206,22,202,26,141,30,164,33, +202,35,221,36,174,36,33,35,108,32,235,28,172,24,144,19,213,13,39,8,253,2,59,254,178,249,201,245,57,243,49,242, +21,242,84,242,19,243,178,244,8,247,129,249,178,251,139,253,49,255,201,0,104,2,8,4,128,5,159,6,99,7,15,8, +206,8,107,9,150,9,92,9,248,8,97,8,67,7,115,5,27,3,129,0,194,253,216,250,198,247,182,244,221,241,73,239, +234,236,207,234,59,233,96,232,25,232,17,232,30,232,71,232,120,232,98,232,190,231,139,230,244,228,34,227,48,225,57,223, +65,221,63,219,78,217,182,215,150,214,204,213,76,213,53,213,125,213,217,213,19,214,64,214,133,214,222,214,61,215,182,215, +122,216,161,217,40,219,21,221,132,223,119,226,208,229,121,233,122,237,219,241,147,246,154,251,247,0,138,6,239,11,196,16, +13,21,11,25,201,28,37,32,21,35,183,37,34,40,71,42,239,43,209,44,195,44,212,43,40,42,198,39,144,36,120,32, +175,27,149,22,101,17,14,12,119,6,199,0,84,251,76,246,178,241,157,237,95,234,67,232,85,231,136,231,231,232,131,235, +74,239,242,243,38,249,184,254,156,4,171,10,159,16,71,22,161,27,183,32,111,37,157,41,46,45,51,48,185,50,156,52, +172,53,231,53,114,53,117,52,243,50,217,48,25,46,190,42,212,38,120,34,239,29,131,25,64,21,255,16,177,12,120,8, +143,4,39,1,45,254,83,251,127,248,229,245,177,243,220,241,106,240,140,239,121,239,54,240,160,241,172,243,129,246,57,250, +160,254,87,3,35,8,233,12,118,17,121,21,186,24,60,27,255,28,204,29,98,29,221,27,156,25,226,22,190,19,65,16, +173,12,97,9,150,6,81,4,164,2,159,1,2,1,73,0,22,255,49,253,93,250,130,246,211,241,163,236,38,231,132,225, +243,219,192,214,42,210,68,206,62,203,168,201,245,201,239,203,34,207,134,211,71,217,26,224,74,231,87,238,39,245,137,251, +238,0,231,4,140,7,59,9,24,10,57,10,241,9,168,9,163,9,251,9,211,10,102,12,216,14,245,17,90,21,208,24, +28,28,184,30,38,32,77,32,58,31,244,28,166,25,160,21,17,17,1,12,161,6,125,1,35,253,180,249,6,247,61,245, +172,244,50,245,63,246,136,247,45,249,46,251,57,253,10,255,158,0,11,2,57,3,2,4,128,4,17,5,210,5,129,6, +233,6,31,7,59,7,25,7,123,6,80,5,192,3,232,1,159,255,170,252,36,249,115,245,237,241,176,238,191,235,33,233, +239,230,68,229,29,228,99,227,30,227,106,227,57,228,67,229,64,230,8,231,111,231,40,231,4,230,45,228,237,225,108,223, +188,220,14,218,166,215,157,213,244,211,192,210,50,210,94,210,39,211,97,212,250,213,223,215,220,217,189,219,123,221,45,223, +216,224,121,226,4,228,107,229,194,230,71,232,46,234,133,236,88,239,196,242,209,246,99,251,88,0,163,5,68,11,46,17, +39,23,215,28,250,33,119,38,90,42,178,45,131,48,183,50,52,52,223,52,145,52,40,51,182,48,105,45,93,41,158,36, +63,31,94,25,46,19,249,12,243,6,38,1,156,251,117,246,204,241,182,237,89,234,225,231,98,230,210,229,48,230,174,231, +132,234,170,238,215,243,183,249,9,0,144,6,26,13,132,19,168,25,83,31,96,36,197,40,117,44,87,47,96,49,160,50, +44,51,251,50,10,50,120,48,90,46,162,43,99,40,244,36,148,33,27,30,76,26,57,22,50,18,112,14,238,10,155,7, +134,4,195,1,79,255,26,253,34,251,115,249,29,248,35,247,136,246,89,246,167,246,115,247,188,248,151,250,19,253,27,0, +152,3,103,7,73,11,254,14,119,18,168,21,99,24,130,26,13,28,19,29,117,29,238,28,91,27,234,24,214,21,27,18, +179,13,233,8,42,4,189,255,206,251,149,248,65,246,195,244,185,243,184,242,143,241,22,240,233,237,206,234,29,231,83,227, +132,223,136,219,128,215,201,211,137,208,151,205,6,203,131,201,185,201,159,203,206,206,63,211,8,217,190,223,182,230,173,237, +196,244,229,251,115,2,201,7,210,11,220,14,0,17,44,18,149,18,129,18,246,17,235,16,184,15,246,14,10,15,217,15, +14,17,140,18,105,20,102,22,238,23,154,24,93,24,83,23,172,21,173,19,101,17,167,14,120,11,74,8,127,5,238,2, +70,0,219,253,110,252,42,252,135,252,30,253,254,253,60,255,182,0,75,2,249,3,189,5,108,7,199,8,202,9,165,10, +83,11,142,11,83,11,222,10,46,10,239,8,238,6,76,4,67,1,244,253,90,250,118,246,131,242,224,238,200,235,59,233, +30,231,101,229,40,228,141,227,135,227,233,227,170,228,217,229,80,231,163,232,108,233,131,233,237,232,166,231,147,229,170,226, +31,223,81,219,157,215,69,212,112,209,53,207,181,205,19,205,72,205,13,206,52,207,241,208,132,211,163,214,154,217,13,220, +57,222,103,224,119,226,50,228,197,229,176,231,44,234,5,237,10,240,93,243,31,247,59,251,165,255,125,4,198,9,87,15, +22,21,10,27,24,33,219,38,215,43,208,47,223,50,58,53,249,54,6,56,69,56,190,55,139,54,144,52,97,49,196,44, +8,39,175,32,242,25,196,18,78,11,3,4,75,253,46,247,132,241,93,236,249,231,124,228,221,225,33,224,103,223,218,223, +146,225,131,228,129,232,112,237,70,243,220,249,221,0,245,7,244,14,210,21,139,28,236,34,150,40,70,45,0,49,213,51, +161,53,55,54,173,53,84,52,79,50,137,47,24,44,94,40,145,36,134,32,41,28,184,23,100,19,13,15,168,10,140,6, +46,3,174,0,194,254,11,253,113,251,36,250,83,249,4,249,37,249,167,249,124,250,134,251,167,252,211,253,24,255,148,0, +93,2,123,4,222,6,117,9,66,12,68,15,80,18,38,21,167,23,214,25,179,27,27,29,214,29,210,29,56,29,34,28, +87,26,163,23,46,20,50,16,161,11,89,6,148,0,215,250,152,245,251,240,1,237,212,233,146,231,211,229,1,228,28,226, +120,224,220,222,162,220,193,217,229,214,135,212,110,210,73,208,90,206,64,205,44,205,196,205,234,206,29,209,201,212,187,217, +127,223,248,229,43,237,213,244,140,252,12,4,19,11,35,17,199,21,21,25,113,27,233,28,84,29,228,28,8,28,199,26, +201,24,15,22,76,19,82,17,91,16,32,16,122,16,97,17,130,18,83,19,156,19,106,19,171,18,87,17,188,15,31,14, +72,12,218,9,17,7,167,4,243,2,163,1,133,0,8,0,164,0,40,2,247,3,189,5,154,7,173,9,194,11,137,13, +223,14,163,15,165,15,236,14,211,13,140,12,225,10,152,8,208,5,192,2,104,255,167,251,149,247,140,243,192,239,21,236, +125,232,52,229,118,226,67,224,137,222,66,221,96,220,206,219,118,219,64,219,32,219,46,219,151,219,99,220,84,221,6,222, +85,222,109,222,98,222,231,221,180,220,242,218,1,217,21,215,45,213,91,211,209,209,185,208,36,208,29,208,174,208,205,209, +114,211,176,213,123,216,137,219,150,222,146,225,129,228,92,231,28,234,211,236,173,239,219,242,96,246,23,250,248,253,27,2, +138,6,61,11,75,16,213,21,222,27,67,34,199,40,18,47,177,52,52,57,113,60,148,62,210,63,32,64,76,63,63,61, +22,58,234,53,169,48,45,42,148,34,86,26,240,17,151,9,78,1,51,249,161,241,2,235,122,229,221,224,16,221,66,218, +168,216,62,216,233,216,168,218,144,221,172,225,227,230,248,236,175,243,219,250,63,2,149,9,179,16,148,23,47,30,95,36, +228,41,113,46,200,49,220,51,199,52,177,52,203,51,68,50,46,48,126,45,55,42,136,38,166,34,181,30,211,26,25,23, +139,19,21,16,170,12,110,9,172,6,142,4,5,3,232,1,31,1,176,0,179,0,39,1,223,1,174,2,171,3,5,5, +174,6,99,8,253,9,135,11,51,13,35,15,50,17,49,19,77,21,195,23,90,26,152,28,77,30,141,31,108,32,232,32, +246,32,133,32,129,31,208,29,86,27,20,24,36,20,142,15,95,10,188,4,181,254,68,248,153,241,22,235,12,229,151,223, +211,218,239,214,254,211,200,209,12,208,211,206,51,206,228,205,132,205,34,205,26,205,157,205,143,206,197,207,78,209,108,211, +27,214,254,216,20,220,243,223,222,228,85,234,224,239,148,245,158,251,215,1,238,7,185,13,35,19,238,23,188,27,103,30, +23,32,229,32,208,32,234,31,74,30,244,27,11,25,221,21,198,18,46,16,91,14,45,13,99,12,235,11,180,11,132,11, +49,11,167,10,215,9,236,8,83,8,56,8,56,8,217,7,39,7,169,6,179,6,249,6,29,7,105,7,103,8,0,10, +149,11,174,12,82,13,208,13,98,14,228,14,250,14,105,14,39,13,89,11,78,9,48,7,209,4,0,2,213,254,112,251, +194,247,182,243,102,239,27,235,29,231,121,227,9,224,203,220,226,217,84,215,25,213,73,211,249,209,15,209,113,208,33,208, +47,208,173,208,174,209,56,211,37,213,40,215,238,216,87,218,95,219,235,219,210,219,14,219,199,217,59,216,181,214,104,213, +87,212,127,211,21,211,105,211,146,212,94,214,161,216,129,219,29,223,43,227,56,231,35,235,17,239,9,243,235,246,157,250, +60,254,11,2,48,6,141,10,3,15,178,19,196,24,59,30,250,35,210,41,160,47,87,53,235,58,20,64,89,68,84,71, +217,72,241,72,185,71,58,69,113,65,110,60,76,54,44,47,80,39,0,31,78,22,28,13,141,3,32,250,85,241,82,233, +26,226,249,219,102,215,129,212,246,210,123,210,19,211,206,212,140,215,32,219,127,223,177,228,163,234,32,241,245,247,12,255, +81,6,146,13,132,20,214,26,82,32,1,37,16,41,126,44,18,47,149,48,4,49,117,48,251,46,163,44,132,41,208,37, +206,33,182,29,159,25,137,21,133,17,189,13,75,10,54,7,125,4,22,2,233,255,249,253,141,252,222,251,204,251,18,252, +161,252,168,253,78,255,112,1,190,3,12,6,126,8,47,11,249,13,178,16,105,19,65,22,39,25,213,27,20,30,228,31, +114,33,206,34,197,35,35,36,243,35,85,35,79,34,217,32,254,30,203,28,57,26,47,23,139,19,59,15,58,10,134,4, +38,254,57,247,250,239,157,232,73,225,56,218,186,211,7,206,68,201,164,197,62,195,222,193,69,193,111,193,73,194,125,195, +214,196,148,198,7,201,17,204,95,207,202,210,88,214,245,217,134,221,48,225,114,229,178,234,198,240,53,247,209,253,188,4, +216,11,166,18,207,24,100,30,105,35,121,39,37,42,114,43,165,43,211,42,246,40,47,38,176,34,135,30,200,25,231,20, +170,16,145,13,147,11,135,10,129,10,98,11,144,12,125,13,14,14,82,14,76,14,37,14,17,14,240,13,90,13,35,12, +175,10,133,9,180,8,244,7,106,7,178,7,240,8,140,10,10,12,138,13,61,15,227,16,16,18,143,18,93,18,93,17, +106,15,189,12,194,9,130,6,166,2,22,254,24,249,218,243,90,238,184,232,83,227,142,222,139,218,41,215,99,212,86,210, +242,208,233,207,15,207,116,206,28,206,237,205,218,205,237,205,55,206,201,206,164,207,189,208,249,209,41,211,32,212,216,212, +85,213,127,213,90,213,21,213,205,212,149,212,162,212,30,213,249,213,16,215,106,216,56,218,149,220,92,223,91,226,168,229, +110,233,142,237,198,241,5,246,81,250,154,254,233,2,102,7,39,12,40,17,77,22,117,27,154,32,210,37,21,43,70,48, +89,53,53,58,153,62,77,66,53,69,37,71,243,71,142,71,227,69,224,66,151,62,68,57,13,51,229,43,177,35,155,26, +24,17,131,7,213,253,19,244,166,234,36,226,225,218,222,212,12,208,123,204,89,202,170,201,62,202,239,203,193,206,180,210, +175,215,147,221,67,228,154,235,95,243,70,251,6,3,123,10,150,17,54,24,48,30,92,35,168,39,17,43,143,45,21,47, +158,47,58,47,244,45,213,43,247,40,128,37,152,33,103,29,42,25,35,21,101,17,214,13,111,10,112,7,37,5,154,3, +172,2,66,2,93,2,1,3,38,4,179,5,137,7,133,9,137,11,141,13,135,15,88,17,2,19,197,20,209,22,12,25, +70,27,97,29,92,31,87,33,111,35,126,37,47,39,98,40,60,41,211,41,11,42,168,41,133,40,171,38,31,36,210,32, +187,28,250,23,171,18,219,12,152,6,246,255,20,249,41,242,120,235,47,229,128,223,152,218,136,214,55,211,115,208,17,206, +14,204,107,202,233,200,64,199,147,197,87,196,208,195,251,195,197,196,45,198,83,200,64,203,196,206,207,210,180,215,160,221, +61,228,33,235,57,242,124,249,177,0,126,7,169,13,43,19,247,23,193,27,73,30,196,31,150,32,214,32,96,32,36,31, +67,29,8,27,196,24,186,22,65,21,161,20,198,20,101,21,80,22,91,23,55,24,169,24,160,24,16,24,19,23,240,21, +183,20,49,19,68,17,38,15,50,13,146,11,25,10,171,8,170,7,129,7,245,7,111,8,192,8,18,9,129,9,3,10, +118,10,175,10,131,10,208,9,144,8,242,6,28,5,217,2,218,255,41,252,18,248,200,243,64,239,121,234,181,229,82,225, +94,221,172,217,85,214,150,211,94,209,133,207,41,206,109,205,34,205,8,205,27,205,114,205,14,206,208,206,163,207,160,208, +205,209,233,210,173,211,31,212,76,212,25,212,121,211,152,210,179,209,12,209,213,208,24,209,209,209,3,211,179,212,225,214, +137,217,141,220,194,223,17,227,101,230,149,233,142,236,88,239,2,242,164,244,106,247,127,250,242,253,189,1,201,5,34,10, +2,15,141,20,150,26,231,32,119,39,66,46,31,53,199,59,217,65,243,70,221,74,130,77,212,78,206,78,112,77,194,74, +214,70,192,65,143,59,94,52,88,44,170,35,130,26,19,17,149,7,75,254,135,245,152,237,172,230,218,224,44,220,148,216, +8,214,146,212,46,212,197,212,70,214,186,216,38,220,123,224,167,229,158,235,68,242,72,249,68,0,1,7,128,13,189,19, +132,25,135,30,160,34,223,37,86,40,240,41,156,42,121,42,181,41,94,40,117,38,10,36,61,33,45,30,250,26,204,23, +200,20,237,17,49,15,183,12,197,10,117,9,180,8,114,8,171,8,77,9,63,10,114,11,218,12,109,14,36,16,242,17, +193,19,113,21,235,22,57,24,118,25,167,26,186,27,183,28,205,29,31,31,147,32,214,33,173,34,52,35,164,35,234,35, +197,35,54,35,106,34,112,33,24,32,11,30,5,27,11,23,67,18,171,12,59,6,57,255,28,248,44,241,111,234,241,227, +242,221,150,216,157,211,180,206,17,202,52,198,24,195,70,192,151,189,104,187,15,186,110,185,39,185,53,185,251,185,170,187, +248,189,191,192,106,196,115,201,191,207,202,214,64,222,36,230,90,238,100,246,216,253,199,4,75,11,17,17,181,21,61,25, +214,27,128,29,51,30,252,29,250,28,103,27,141,25,180,23,51,22,81,21,31,21,129,21,71,22,45,23,244,23,117,24, +126,24,221,23,166,22,66,21,4,20,218,18,111,17,164,15,222,13,135,12,134,11,145,10,233,9,27,10,50,11,156,12, +211,13,207,14,204,15,204,16,135,17,209,17,162,17,216,16,90,15,103,13,87,11,36,9,145,6,144,3,82,0,250,252, +120,249,190,245,13,242,193,238,214,235,5,233,75,230,212,227,145,225,74,223,7,221,243,218,23,217,90,215,187,213,94,212, +97,211,194,210,129,210,170,210,28,211,149,211,255,211,107,212,210,212,31,213,86,213,132,213,178,213,243,213,98,214,1,215, +185,215,127,216,115,217,203,218,150,220,188,222,53,225,4,228,4,231,246,233,203,236,164,239,143,242,131,245,142,248,222,251, +155,255,181,3,224,7,244,11,28,16,144,20,56,25,219,29,130,34,104,39,160,44,231,49,224,54,86,59,42,63,42,66, +50,68,86,69,191,69,103,69,31,68,195,65,83,62,211,57,60,52,152,45,14,38,194,29,216,20,146,11,74,2,76,249, +210,240,27,233,86,226,135,220,172,215,219,211,53,209,199,207,149,207,173,208,19,211,169,214,61,219,172,224,211,230,117,237, +57,244,205,250,18,1,21,7,208,12,17,18,160,22,105,26,111,29,173,31,27,33,199,33,216,33,119,33,168,32,80,31, +112,29,62,27,239,24,142,22,1,20,55,17,76,14,143,11,57,9,66,7,150,5,78,4,123,3,243,2,123,2,25,2, +19,2,148,2,135,3,205,4,105,6,73,8,49,10,250,11,181,13,131,15,95,17,30,19,172,20,48,22,217,23,146,25, +22,27,74,28,76,29,56,30,25,31,237,31,162,32,56,33,185,33,15,34,0,34,75,33,183,31,17,29,67,25,87,20, +112,14,222,7,9,1,39,250,59,243,90,236,199,229,184,223,38,218,4,213,136,208,254,204,65,202,176,199,243,196,110,194, +175,192,198,191,107,191,138,191,75,192,156,193,33,195,223,196,123,199,119,203,146,208,89,214,212,220,54,228,68,236,116,244, +121,252,106,4,66,12,140,19,195,25,217,30,251,34,17,38,235,39,153,40,75,40,23,39,47,37,16,35,62,33,231,31, +245,30,107,30,105,30,205,30,41,31,57,31,240,30,38,30,171,28,193,26,254,24,126,23,200,21,137,19,30,17,22,15, +110,13,212,11,114,10,220,9,55,10,11,11,232,11,201,12,201,13,204,14,150,15,5,16,17,16,170,15,196,14,148,13, +111,12,80,11,202,9,148,7,217,4,218,1,143,254,215,250,206,246,198,242,231,238,40,235,143,231,77,228,111,225,220,222, +149,220,189,218,70,217,239,215,154,214,106,213,134,212,243,211,164,211,153,211,194,211,245,211,18,212,26,212,11,212,206,211, +72,211,112,210,89,209,60,208,108,207,31,207,88,207,9,208,66,209,30,211,138,213,57,216,249,218,221,221,255,224,47,228, +37,231,206,233,76,236,175,238,250,240,80,243,237,245,239,248,63,252,211,255,221,3,140,8,201,13,81,19,16,25,25,31, +93,37,153,43,157,49,87,55,160,60,41,65,181,68,51,71,149,72,188,72,159,71,85,69,245,65,136,61,24,56,183,49, +112,42,55,34,26,25,110,15,162,5,243,251,131,242,157,233,170,225,230,218,74,213,186,208,49,205,197,202,135,201,126,201, +170,202,10,205,133,208,243,212,52,218,49,224,195,230,158,237,118,244,42,251,180,1,249,7,207,13,45,19,11,24,48,28, +99,31,184,33,113,35,173,36,106,37,181,37,176,37,94,37,148,36,51,35,103,33,134,31,186,29,235,27,242,25,203,23, +138,21,77,19,55,17,100,15,221,13,151,12,140,11,214,10,150,10,208,10,121,11,137,12,242,13,150,15,84,17,30,19, +253,20,254,22,17,25,14,27,222,28,130,30,245,31,52,33,64,34,7,35,118,35,162,35,193,35,230,35,249,35,207,35, +64,35,56,34,176,32,146,30,197,27,78,24,56,20,116,15,245,9,200,3,9,253,227,245,152,238,110,231,152,224,98,218, +47,213,40,209,16,206,165,203,243,201,5,201,111,200,192,199,28,199,0,199,125,199,65,200,49,201,139,202,112,204,185,206, +88,209,156,212,220,216,246,221,113,227,27,233,32,239,145,245,31,252,109,2,101,8,30,14,112,19,231,23,52,27,132,29, +33,31,14,32,59,32,195,31,192,30,42,29,66,27,165,25,201,24,159,24,218,24,90,25,16,26,178,26,217,26,69,26, +242,24,2,23,206,20,181,18,198,16,180,14,87,12,242,9,236,7,103,6,73,5,157,4,161,4,88,5,82,6,35,7, +200,7,99,8,212,8,228,8,150,8,23,8,88,7,27,6,99,4,133,2,180,0,195,254,126,252,244,249,64,247,90,244, +59,241,13,238,250,234,2,232,26,229,92,226,233,223,176,221,127,219,85,217,101,215,182,213,21,212,106,210,225,208,173,207, +226,206,128,206,139,206,252,206,171,207,100,208,26,209,198,209,60,210,80,210,27,210,230,209,220,209,17,210,163,210,176,211, +55,213,34,215,103,217,2,220,238,222,55,226,233,229,228,233,217,237,146,241,25,245,133,248,209,251,249,254,38,2,140,5, +65,9,54,13,92,17,191,21,111,26,81,31,53,36,29,41,59,46,145,51,209,56,164,61,223,65,109,69,24,72,159,73, +243,73,54,73,115,71,130,68,68,64,203,58,59,52,167,44,33,36,212,26,12,17,37,7,107,253,27,244,113,235,176,227, +25,221,192,215,124,211,30,208,197,205,174,204,215,204,8,206,47,208,97,211,150,215,166,220,110,226,213,232,165,239,133,246, +37,253,109,3,114,9,51,15,123,20,20,25,237,28,20,32,145,34,88,36,93,37,185,37,154,37,14,37,2,36,119,34, +160,32,164,30,126,28,34,26,171,23,61,21,220,18,132,16,85,14,126,12,34,11,74,10,218,9,174,9,203,9,81,10, +47,11,43,12,62,13,146,14,44,16,231,17,181,19,152,21,122,23,48,25,201,26,139,28,162,30,213,32,200,34,97,36, +193,37,232,38,166,39,213,39,126,39,187,38,142,37,219,35,126,33,109,30,177,26,89,22,106,17,223,11,182,5,1,255, +248,247,246,240,100,234,149,228,142,223,24,219,18,215,142,211,137,208,183,205,189,202,167,199,219,196,161,194,232,192,163,191, +7,191,59,191,6,192,22,193,138,194,234,196,137,200,46,205,135,210,152,216,134,223,26,231,212,238,95,246,170,253,144,4, +171,10,156,15,111,19,117,22,202,24,70,26,224,26,187,26,227,25,96,24,144,22,12,21,59,20,46,20,209,20,20,22, +222,23,232,25,171,27,162,28,154,28,206,27,164,26,89,25,212,23,222,21,117,19,227,16,99,14,242,11,151,9,188,7, +216,6,221,6,75,7,194,7,77,8,5,9,207,9,127,10,253,10,72,11,85,11,16,11,122,10,170,9,166,8,95,7, +219,5,54,4,96,2,46,0,148,253,188,250,221,247,24,245,100,242,178,239,9,237,124,234,0,232,120,229,227,226,73,224, +175,221,29,219,159,216,61,214,21,212,102,210,101,209,10,209,23,209,80,209,159,209,248,209,49,210,29,210,201,209,117,209, +96,209,166,209,59,210,252,210,219,211,231,212,52,214,199,215,172,217,251,219,202,222,251,225,65,229,87,232,43,235,196,237, +41,240,107,242,181,244,59,247,26,250,78,253,179,0,43,4,183,7,102,11,72,15,127,19,39,24,50,29,141,34,56,40, +36,46,9,52,119,57,3,62,140,65,61,68,58,70,103,71,139,71,141,70,111,68,55,65,222,60,72,55,100,48,83,40, +95,31,228,21,40,12,98,2,207,248,196,239,130,231,22,224,115,217,157,211,173,206,207,202,38,200,187,198,141,198,157,199, +232,201,88,205,222,209,104,215,183,221,109,228,76,235,67,242,73,249,66,0,9,7,117,13,86,19,110,24,155,28,231,31, +104,34,32,36,20,37,105,37,55,37,117,36,29,35,72,33,30,31,178,28,2,26,22,23,22,20,51,17,150,14,94,12, +168,10,128,9,217,8,140,8,116,8,152,8,34,9,18,10,56,11,127,12,254,13,177,15,116,17,58,19,22,21,6,23, +231,24,151,26,25,28,150,29,31,31,143,32,182,33,134,34,19,35,113,35,176,35,214,35,239,35,254,35,223,35,85,35, +64,34,170,32,140,30,176,27,207,23,207,18,213,12,27,6,196,254,237,246,221,238,238,230,112,223,164,216,196,210,226,205, +213,201,112,198,177,195,151,193,244,191,149,190,150,189,63,189,158,189,144,190,11,192,21,194,146,196,108,199,217,202,65,207, +214,212,84,219,76,226,155,233,87,241,76,249,243,0,251,7,126,14,149,20,7,26,117,30,197,33,25,36,125,37,198,37, +239,36,68,35,249,32,13,30,207,26,6,24,81,22,179,21,238,21,219,22,67,24,168,25,135,26,166,26,255,25,153,24, +175,22,175,20,210,18,234,16,197,14,147,12,160,10,249,8,131,7,104,6,0,6,80,6,239,6,137,7,41,8,210,8, +70,9,90,9,44,9,221,8,82,8,92,7,1,6,123,4,236,2,40,1,252,254,121,252,194,249,200,246,112,243,219,239, +90,236,39,233,69,230,155,227,29,225,203,222,154,220,129,218,131,216,146,214,126,212,61,210,22,208,79,206,248,204,30,204, +235,203,109,204,123,205,219,206,98,208,235,209,69,211,81,212,22,213,173,213,56,214,223,214,195,215,226,216,46,218,180,219, +126,221,125,223,172,225,58,228,87,231,223,234,95,238,134,241,97,244,3,247,81,249,83,251,108,253,1,0,31,3,161,6, +107,10,101,14,126,18,177,22,1,27,116,31,22,36,235,40,250,45,74,51,164,56,144,61,160,65,164,68,132,70,52,71, +197,70,88,69,252,66,168,63,91,59,19,54,189,47,56,40,145,31,43,22,123,12,196,2,49,249,21,240,219,231,188,224, +155,218,64,213,171,208,18,205,149,202,44,201,212,200,167,201,169,203,190,206,215,210,253,215,48,222,53,229,156,236,0,244, +53,251,52,2,249,8,99,15,48,21,22,26,252,29,232,32,212,34,176,35,161,35,237,34,198,33,44,32,21,30,153,27, +247,24,104,22,6,20,215,17,216,15,13,14,150,12,169,11,82,11,108,11,225,11,174,12,171,13,153,14,86,15,247,15, +150,16,45,17,176,17,49,18,208,18,145,19,101,20,67,21,21,22,185,22,44,23,164,23,83,24,41,25,248,25,178,26, +109,27,47,28,203,28,8,29,221,28,100,28,182,27,211,26,157,25,224,23,128,21,125,18,219,14,144,10,137,5,213,255, +188,249,167,243,200,237,10,232,118,226,97,221,26,217,134,213,93,210,157,207,106,205,130,203,86,201,215,198,175,196,110,195, +245,194,242,194,121,195,192,196,172,198,249,200,202,203,167,207,216,212,7,219,195,225,248,232,159,240,85,248,174,255,168,6, +105,13,180,19,3,25,18,29,23,32,83,34,182,35,31,36,183,35,184,34,22,33,215,30,121,28,172,26,186,25,135,25, +248,25,3,27,99,28,150,29,61,30,75,30,188,29,145,28,11,27,138,25,3,24,4,22,95,19,144,16,43,14,62,12, +152,10,93,9,222,8,242,8,24,9,30,9,54,9,103,9,114,9,58,9,216,8,76,8,99,7,4,6,112,4,250,2, +155,1,6,0,13,254,186,251,7,249,228,245,121,242,17,239,214,235,190,232,187,229,227,226,94,224,39,222,22,220,30,218, +86,216,175,214,252,212,58,211,159,209,104,208,199,207,219,207,148,208,172,209,218,210,246,211,237,212,164,213,0,214,254,213, +181,213,71,213,239,212,229,212,58,213,219,213,198,214,23,216,227,217,34,220,208,222,1,226,182,229,157,233,70,237,150,240, +175,243,136,246,247,248,33,251,104,253,248,255,182,2,141,5,151,8,254,11,207,15,252,19,138,24,145,29,6,35,183,40, +128,46,69,52,186,57,125,62,93,66,82,69,75,71,34,72,189,71,26,70,63,67,56,63,23,58,243,51,216,44,202,36, +232,27,129,18,242,8,137,255,125,246,10,238,117,230,221,223,44,218,58,213,255,208,138,205,239,202,75,201,198,200,116,201, +69,203,28,206,241,209,208,214,174,220,82,227,105,234,179,241,8,249,93,0,167,7,172,14,7,21,133,26,52,31,23,35, +1,38,232,39,248,40,80,41,235,40,197,39,5,38,224,35,114,33,193,30,228,27,238,24,212,21,160,18,166,15,60,13, +105,11,20,10,68,9,2,9,43,9,146,9,45,10,20,11,85,12,228,13,161,15,96,17,254,18,111,20,189,21,237,22, +245,23,201,24,109,25,9,26,215,26,228,27,4,29,17,30,28,31,69,32,119,33,124,34,50,35,158,35,195,35,124,35, +142,34,220,32,85,30,219,26,95,22,238,16,150,10,116,3,221,251,52,244,173,236,112,229,226,222,102,217,250,212,74,209, +33,206,140,203,135,201,192,199,237,197,47,196,222,194,31,194,220,193,18,194,224,194,68,196,24,198,101,200,132,203,192,207, +236,212,175,218,248,224,221,231,43,239,124,246,168,253,193,4,160,11,201,17,212,22,202,26,232,29,57,32,153,33,13,34, +196,33,209,32,59,31,79,29,148,27,116,26,5,26,51,26,242,26,29,28,78,29,16,30,41,30,136,29,47,28,74,26, +56,24,48,22,16,20,180,17,82,15,69,13,141,11,232,9,109,8,153,7,159,7,32,8,183,8,96,9,40,10,238,10, +140,11,2,12,72,12,59,12,206,11,46,11,138,10,203,9,174,8,22,7,19,5,163,2,177,255,60,252,105,248,98,244, +86,240,115,236,225,232,171,229,175,226,190,223,206,220,2,218,122,215,44,213,11,211,39,209,167,207,174,206,77,206,126,206, +15,207,189,207,111,208,67,209,65,210,56,211,241,211,109,212,206,212,73,213,14,214,47,215,157,216,76,218,70,220,147,222, +40,225,215,227,129,230,58,233,11,236,180,238,231,240,168,242,47,244,130,245,143,246,127,247,178,248,95,250,103,252,155,254, +25,1,44,4,227,7,16,12,156,16,167,21,73,27,107,33,202,39,14,46,236,51,46,57,169,61,56,65,202,67,106,69, +28,70,201,69,84,68,198,65,58,62,170,57,244,51,23,45,71,37,208,28,246,19,238,10,228,1,19,249,202,240,56,233, +89,226,31,220,164,214,18,210,128,206,231,203,65,202,164,201,19,202,113,203,168,205,215,208,24,213,71,218,19,224,51,230, +132,236,18,243,211,249,131,0,218,6,200,12,76,18,65,23,120,27,240,30,207,33,45,36,241,37,241,38,38,39,164,38, +110,37,129,35,1,33,50,30,81,27,127,24,214,21,113,19,91,17,147,15,39,14,52,13,188,12,161,12,202,12,62,13, +251,13,233,14,232,15,231,16,237,17,10,19,48,20,64,21,47,22,2,23,183,23,106,24,92,25,170,26,17,28,56,29, +15,30,199,30,128,31,22,32,105,32,174,32,46,33,184,33,188,33,232,32,97,31,93,29,197,26,72,23,202,18,117,13, +122,7,224,0,183,249,63,242,203,234,151,227,210,220,188,214,157,209,141,205,89,202,205,199,244,197,204,196,2,196,66,195, +179,194,197,194,165,195,6,197,157,198,140,200,36,203,93,206,226,209,161,213,236,217,250,222,158,228,144,234,194,240,66,247, +244,253,146,4,226,10,189,16,243,21,82,26,201,29,96,32,26,34,247,34,1,35,72,34,227,32,255,30,231,28,20,27, +245,25,156,25,206,25,91,26,35,27,232,27,101,28,122,28,18,28,34,27,223,25,173,24,162,23,102,22,167,20,155,18, +194,16,66,15,181,13,214,11,3,10,189,8,230,7,231,6,131,5,31,4,44,3,150,2,10,2,102,1,197,0,63,0, +225,255,163,255,86,255,192,254,179,253,23,252,1,250,167,247,46,245,167,242,48,240,223,237,153,235,65,233,237,230,188,228, +165,226,141,224,105,222,63,220,36,218,33,216,52,214,101,212,231,210,250,209,180,209,243,209,130,210,62,211,20,212,233,212, +151,213,6,214,47,214,30,214,246,213,229,213,253,213,58,214,163,214,88,215,117,216,231,217,129,219,66,221,99,223,248,225, +204,228,167,231,119,234,56,237,221,239,96,242,207,244,101,247,105,250,236,253,193,1,193,5,242,9,103,14,27,19,254,23, +8,29,58,34,146,39,0,45,121,50,225,55,239,60,70,65,181,68,45,71,158,72,1,73,94,72,160,70,169,67,126,63, +72,58,25,52,225,44,166,36,164,27,52,18,157,8,11,255,176,245,204,236,157,228,86,221,26,215,227,209,148,205,43,202, +206,199,162,198,171,198,218,199,44,202,173,205,82,210,247,215,116,222,154,229,35,237,189,244,37,252,56,3,246,9,105,16, +110,22,200,27,103,32,104,36,198,39,85,42,0,44,217,44,5,45,154,44,153,43,1,42,240,39,153,37,22,35,109,32, +156,29,150,26,102,23,87,20,193,17,183,15,40,14,22,13,133,12,79,12,60,12,62,12,110,12,218,12,121,13,87,14, +138,15,11,17,179,18,103,20,37,22,246,23,214,25,178,27,128,29,77,31,26,33,177,34,210,35,111,36,163,36,118,36, +209,35,174,34,48,33,121,31,105,29,202,26,156,23,1,20,241,15,73,11,3,6,48,0,227,249,45,243,59,236,83,229, +192,222,175,216,45,211,93,206,92,202,1,199,9,196,137,193,187,191,134,190,151,189,244,188,253,188,232,189,132,191,143,193, +11,196,41,199,228,202,238,206,31,211,191,215,43,221,76,227,186,233,64,240,238,246,178,253,72,4,138,10,106,16,175,21, +4,26,80,29,186,31,106,33,88,34,87,34,97,33,177,31,141,29,18,27,127,24,74,22,195,20,230,19,152,19,196,19, +53,20,165,20,240,20,1,21,176,20,237,19,245,18,28,18,95,17,94,16,237,14,105,13,88,12,189,11,52,11,149,10, +47,10,72,10,168,10,206,10,139,10,28,10,199,9,136,9,28,9,68,8,248,6,113,5,240,3,135,2,19,1,82,255, +17,253,103,250,165,247,237,244,23,242,11,239,254,235,52,233,195,230,146,228,147,226,206,224,68,223,228,221,163,220,133,219, +139,218,175,217,243,216,106,216,39,216,55,216,140,216,1,217,130,217,17,218,171,218,59,219,190,219,68,220,204,220,63,221, +161,221,45,222,33,223,107,224,194,225,17,227,136,228,61,230,248,231,129,233,230,234,84,236,220,237,104,239,233,240,113,242, +23,244,218,245,204,247,32,250,248,252,72,0,247,3,16,8,178,12,220,17,94,23,255,28,161,34,54,40,170,45,227,50, +209,55,81,60,45,64,70,67,140,69,230,70,40,71,49,70,0,68,174,64,84,60,250,54,182,48,170,41,249,33,188,25, +35,17,114,8,219,255,99,247,11,239,2,231,154,223,250,216,18,211,228,205,180,201,202,198,60,197,10,197,46,198,148,200, +27,204,163,208,23,214,84,220,34,227,77,234,184,241,67,249,176,0,188,7,78,14,96,20,197,25,69,30,211,33,137,36, +120,38,138,39,157,39,183,38,10,37,180,34,182,31,47,28,125,24,233,20,119,17,25,14,234,10,28,8,196,5,225,3, +126,2,160,1,39,1,244,0,22,1,179,1,224,2,153,4,189,6,28,9,144,11,8,14,125,16,231,18,53,21,65,23, +238,24,77,26,124,27,110,28,11,29,115,29,233,29,144,30,73,31,218,31,34,32,35,32,218,31,40,31,220,29,201,27, +214,24,25,21,185,16,184,11,252,5,164,255,21,249,167,242,124,236,176,230,142,225,90,221,253,217,52,215,245,212,89,211, +39,210,244,208,176,207,177,206,38,206,207,205,105,205,28,205,65,205,213,205,133,206,79,207,170,208,246,210,19,214,188,217, +255,221,19,227,244,232,86,239,11,246,18,253,64,4,21,11,19,17,13,22,15,26,28,29,22,31,232,31,184,31,225,30, +177,29,111,28,108,27,224,26,210,26,75,27,90,28,203,29,59,31,114,32,88,33,183,33,113,33,201,32,18,32,38,31, +168,29,166,27,158,25,210,23,6,22,2,20,13,18,170,16,3,16,186,15,92,15,210,14,105,14,106,14,186,14,250,14, +212,14,63,14,111,13,140,12,111,11,199,9,119,7,168,4,156,1,119,254,62,251,251,247,222,244,18,242,124,239,238,236, +120,234,58,232,21,230,203,227,87,225,237,222,170,220,130,218,111,216,142,214,254,212,203,211,15,211,243,210,109,211,51,212, +255,212,187,213,110,214,16,215,131,215,169,215,154,215,171,215,30,216,218,216,157,217,91,218,76,219,155,220,39,222,187,223, +88,225,39,227,20,229,204,230,25,232,14,233,207,233,78,234,110,234,87,234,116,234,7,235,243,235,14,237,122,238,132,240, +90,243,243,246,46,251,252,255,108,5,149,11,125,18,247,25,149,33,220,40,144,47,173,53,44,59,232,63,184,67,117,70, +5,72,96,72,128,71,76,69,176,65,168,60,84,54,0,47,7,39,156,30,201,21,190,12,204,3,46,251,232,242,247,234, +116,227,134,220,71,214,200,208,38,204,131,200,233,197,77,196,194,195,119,196,153,198,41,202,238,206,144,212,190,218,87,225, +89,232,167,239,243,246,250,253,185,4,79,11,169,17,130,23,179,28,73,33,65,37,91,40,89,42,73,43,129,43,64,43, +127,42,45,41,95,39,39,37,144,34,198,31,12,29,129,26,26,24,204,21,163,19,187,17,37,16,210,14,179,13,235,12, +156,12,169,12,207,12,252,12,89,13,12,14,8,15,36,16,81,17,173,18,81,20,29,22,200,23,35,25,55,26,52,27, +58,28,75,29,113,30,200,31,72,33,160,34,117,35,184,35,148,35,4,35,183,33,101,31,17,28,219,23,210,18,32,13, +15,7,213,0,132,250,77,244,150,238,153,233,29,229,195,224,140,220,193,216,85,213,218,209,61,206,253,202,134,200,187,198, +90,197,116,196,72,196,222,196,8,198,219,199,194,202,253,206,70,212,56,218,202,224,9,232,182,239,131,247,79,255,233,6, +228,13,228,19,232,24,22,29,118,32,234,34,96,36,235,36,172,36,194,35,91,34,213,32,157,31,227,30,150,30,155,30, +208,30,218,30,87,30,59,29,169,27,147,25,242,22,36,20,139,17,5,15,39,12,232,8,200,5,60,3,54,1,117,255, +27,254,134,253,165,253,249,253,61,254,158,254,74,255,69,0,138,1,251,2,78,4,77,5,18,6,207,6,120,7,194,7, +90,7,39,6,89,4,45,2,157,255,123,252,220,248,39,245,168,241,81,238,5,235,199,231,153,228,113,225,90,222,103,219, +140,216,196,213,54,211,19,209,101,207,18,206,12,205,90,204,247,203,190,203,144,203,122,203,158,203,9,204,175,204,120,205, +91,206,140,207,74,209,129,211,222,213,70,216,243,218,241,221,240,224,167,227,41,230,161,232,235,234,168,236,183,237,82,238, +192,238,22,239,93,239,200,239,153,240,229,241,147,243,154,245,33,248,69,251,255,254,69,3,26,8,102,13,246,18,171,24, +125,30,78,36,227,41,12,47,199,51,41,56,43,60,161,63,103,66,120,68,190,69,17,70,71,69,63,67,225,63,57,59, +126,53,235,46,166,39,217,31,183,23,94,15,224,6,80,254,208,245,144,237,198,229,177,222,153,216,191,211,83,208,98,206, +222,205,172,206,172,208,177,211,141,215,48,220,152,225,158,231,244,237,100,244,212,250,40,1,54,7,224,12,15,18,183,22, +210,26,92,30,82,33,180,35,134,37,200,38,128,39,182,39,105,39,163,38,139,37,83,36,24,35,226,33,182,32,154,31, +145,30,162,29,205,28,254,27,18,27,3,26,238,24,231,23,223,22,192,21,160,20,171,19,241,18,91,18,214,17,118,17, +105,17,185,17,60,18,197,18,104,19,79,20,119,21,178,22,231,23,36,25,97,26,108,27,30,28,124,28,126,28,238,27, +163,26,175,24,50,22,32,19,94,15,9,11,106,6,159,1,149,252,93,247,92,242,217,237,168,233,126,229,89,225,70,221, +13,217,122,212,199,207,108,203,155,199,33,196,214,192,243,189,204,187,105,186,162,185,150,185,173,186,20,189,152,192,6,197, +97,202,158,208,128,215,219,222,166,230,169,238,103,246,123,253,219,3,138,9,76,14,215,17,45,20,140,21,29,22,209,21, +192,20,101,19,95,18,252,17,58,18,243,18,237,19,226,20,183,21,107,22,214,22,167,22,216,21,204,20,220,19,210,18, +58,17,42,15,69,13,231,11,184,10,94,9,32,8,139,7,188,7,78,8,233,8,142,9,110,10,143,11,180,12,140,13, +230,13,205,13,124,13,38,13,187,12,232,11,107,10,101,8,31,6,156,3,166,0,83,253,21,250,64,247,195,244,121,242, +95,240,117,238,172,236,242,234,58,233,111,231,137,229,171,227,19,226,225,224,5,224,123,223,113,223,0,224,228,224,178,225, +73,226,200,226,48,227,70,227,225,226,38,226,111,225,230,224,102,224,190,223,16,223,186,222,234,222,120,223,49,224,36,225, +117,226,18,228,180,229,33,231,77,232,72,233,41,234,16,235,30,236,105,237,244,238,180,240,176,242,5,245,201,247,4,251, +194,254,17,3,236,7,69,13,25,19,99,25,244,31,131,38,218,44,227,50,139,56,177,61,51,66,243,69,202,72,151,74, +86,75,10,75,140,73,158,70,45,66,121,60,213,53,103,46,56,38,110,29,96,20,91,11,112,2,137,249,162,240,237,231, +173,223,20,216,67,209,95,203,138,198,232,194,169,192,247,191,208,192,25,195,184,198,147,203,127,209,87,216,10,224,108,232, +28,241,184,249,11,2,250,9,81,17,204,23,63,29,166,33,4,37,68,39,71,40,23,40,238,38,9,37,131,34,94,31, +171,27,151,23,102,19,84,15,135,11,25,8,37,5,194,2,240,0,159,255,198,254,106,254,141,254,39,255,44,0,147,1, +69,3,37,5,39,7,92,9,207,11,87,14,182,16,229,18,25,21,100,23,134,25,57,27,137,28,171,29,168,30,86,31, +164,31,185,31,186,31,146,31,31,31,114,30,168,29,159,28,7,27,175,24,158,21,232,17,149,13,197,8,198,3,219,254, +254,249,15,245,58,240,221,235,255,231,76,228,165,224,81,221,105,218,160,215,197,212,36,210,25,208,142,206,45,205,212,203, +171,202,219,201,126,201,195,201,240,202,35,205,46,208,231,211,92,216,163,221,142,227,229,233,160,240,183,247,210,254,111,5, +61,11,40,16,50,20,91,23,151,25,235,26,125,27,139,27,78,27,0,27,220,26,12,27,169,27,208,28,116,30,41,32, +116,33,84,34,8,35,118,35,59,35,84,34,47,33,250,31,95,30,32,28,162,25,129,23,225,21,112,20,15,19,3,18, +131,17,85,17,34,17,216,16,171,16,196,16,20,17,97,17,111,17,44,17,176,16,30,16,140,15,214,14,158,13,154,11, +239,8,252,5,212,2,68,255,96,251,155,247,59,244,20,241,227,237,158,234,103,231,91,228,127,225,197,222,37,220,184,217, +173,215,25,214,238,212,25,212,160,211,144,211,226,211,111,212,7,213,139,213,249,213,90,214,162,214,178,214,148,214,151,214, +3,215,196,215,152,216,129,217,194,218,109,220,73,222,51,224,67,226,134,228,194,230,160,232,247,233,213,234,86,235,136,235, +121,235,90,235,99,235,154,235,238,235,125,236,138,237,54,239,114,241,61,244,169,247,177,251,61,0,81,5,249,10,10,17, +53,23,68,29,40,35,203,40,11,46,228,50,91,55,71,59,92,62,120,64,155,65,155,65,36,64,24,61,186,56,84,51, +1,45,199,37,209,29,104,21,199,12,255,3,23,251,38,242,96,233,6,225,84,217,138,210,209,204,51,200,190,196,157,194, +3,194,233,194,23,197,89,200,153,204,210,209,4,216,20,223,189,230,165,238,149,246,131,254,91,6,212,13,153,20,142,26, +191,31,27,36,116,39,186,41,34,43,238,43,51,44,226,43,246,42,115,41,98,39,235,36,88,34,238,31,189,29,172,27, +168,25,183,23,231,21,59,20,178,18,85,17,36,16,27,15,54,14,121,13,232,12,133,12,87,12,98,12,166,12,45,13, +10,14,78,15,245,16,242,18,59,21,200,23,135,26,80,29,228,31,26,34,241,35,121,37,157,38,46,39,29,39,130,38, +91,37,114,35,153,32,244,28,213,24,96,20,149,15,164,10,234,5,124,1,12,253,92,248,127,243,123,238,13,233,2,227, +153,220,66,214,47,208,88,202,202,196,195,191,120,187,233,183,26,181,88,179,21,179,127,180,125,183,0,188,2,194,75,201, +119,209,66,218,119,227,176,236,121,245,151,253,2,5,171,11,113,17,68,22,45,26,52,29,70,31,91,32,179,32,209,32, +38,33,215,33,217,34,23,36,91,37,88,38,213,38,174,38,173,37,190,35,44,33,103,30,117,27,254,23,233,19,165,15, +176,11,29,8,207,4,242,1,248,255,16,255,240,254,53,255,203,255,217,0,101,2,51,4,240,5,104,7,148,8,136,9, +90,10,23,11,187,11,48,12,94,12,58,12,182,11,170,10,250,8,194,6,52,4,80,1,244,253,45,250,57,246,74,242, +97,238,119,234,157,230,240,226,121,223,45,220,11,217,61,214,16,212,188,210,51,210,53,210,130,210,251,210,144,211,18,212, +66,212,0,212,116,211,251,210,220,210,16,211,98,211,209,211,162,212,1,214,185,215,133,217,113,219,183,221,84,224,237,226, +47,229,1,231,107,232,104,233,239,233,20,234,12,234,9,234,29,234,89,234,226,234,217,235,68,237,45,239,182,241,234,244, +180,248,29,253,88,2,94,8,194,14,18,21,55,27,73,33,51,39,196,44,232,49,160,54,225,58,159,62,227,65,150,68, +109,70,37,71,198,70,117,69,34,67,147,63,194,58,245,52,117,46,75,39,89,31,158,22,78,13,174,3,248,249,98,240, +44,231,161,222,7,215,157,208,153,203,34,200,61,198,222,197,231,198,43,201,147,204,48,209,252,214,157,221,154,228,200,235, +56,243,197,250,254,1,147,8,150,14,30,20,1,25,11,29,78,32,5,35,57,37,201,38,160,39,206,39,103,39,128,38, +71,37,234,35,111,34,195,32,230,30,240,28,234,26,198,24,139,22,98,20,105,18,166,16,26,15,207,13,204,12,17,12, +181,11,231,11,167,12,186,13,240,14,100,16,53,18,51,20,12,22,184,23,111,25,55,27,188,28,189,29,90,30,227,30, +101,31,175,31,168,31,106,31,245,30,19,30,146,28,126,26,3,24,47,21,234,17,43,14,19,10,204,5,97,1,224,252, +141,248,158,244,232,240,11,237,244,232,210,228,162,224,39,220,101,215,195,210,144,206,178,202,248,198,121,195,129,192,60,190, +178,188,5,188,124,188,50,190,248,192,155,196,28,201,111,206,88,212,177,218,133,225,188,232,208,239,49,246,195,251,194,0, +70,5,19,9,242,11,0,14,136,15,169,16,94,17,220,17,152,18,222,19,158,21,159,23,166,25,115,27,219,28,225,29, +122,30,98,30,125,29,34,28,170,26,238,24,140,22,158,19,193,16,92,14,82,12,106,10,205,8,213,7,150,7,191,7, +255,7,78,8,211,8,160,9,155,10,137,11,57,12,164,12,246,12,102,13,241,13,70,14,5,14,29,13,199,11,46,10, +53,8,185,5,224,2,2,0,72,253,154,250,214,247,251,244,39,242,113,239,213,236,55,234,149,231,21,229,229,226,16,225, +145,223,121,222,231,221,209,221,252,221,39,222,52,222,26,222,203,221,52,221,81,220,56,219,27,218,68,217,218,216,194,216, +214,216,53,217,22,218,106,219,236,220,148,222,149,224,250,226,106,229,130,231,43,233,147,234,204,235,182,236,71,237,193,237, +113,238,88,239,78,240,88,241,164,242,71,244,79,246,232,248,46,252,16,0,121,4,129,9,51,15,84,21,127,27,117,33, +40,39,161,44,218,49,179,54,0,59,167,62,167,65,247,67,96,69,140,69,68,68,169,65,10,62,136,57,0,52,102,45, +253,37,30,30,231,21,67,13,56,4,2,251,252,241,96,233,64,225,165,217,189,210,213,204,28,200,150,196,76,194,97,193, +241,193,217,195,202,198,149,202,90,207,72,213,44,220,123,227,207,234,27,242,92,249,92,0,231,6,2,13,183,18,218,23, +42,28,148,31,51,34,30,36,89,37,237,37,226,37,47,37,201,35,196,33,93,31,209,28,51,26,123,23,165,20,186,17, +208,14,8,12,138,9,109,7,188,5,142,4,251,3,253,3,96,4,250,4,201,5,214,6,13,8,85,9,189,10,108,12, +112,14,156,16,179,18,161,20,122,22,77,24,14,26,186,27,107,29,41,31,207,32,47,34,70,35,24,36,126,36,44,36, +252,34,4,33,91,30,3,27,12,23,173,18,18,14,70,9,97,4,144,255,225,250,52,246,130,241,237,236,115,232,215,227, +4,223,71,218,242,213,247,209,29,206,125,202,110,199,13,197,45,195,212,193,129,193,160,194,4,197,64,200,73,204,97,209, +137,215,102,222,173,229,63,237,226,244,41,252,203,2,214,8,107,14,106,19,148,23,226,26,126,29,115,31,178,32,108,33, +26,34,12,35,68,36,164,37,11,39,48,40,192,40,158,40,209,39,71,38,242,35,21,33,31,30,48,27,17,24,176,20, +99,17,140,14,46,12,37,10,144,8,184,7,158,7,240,7,105,8,6,9,215,9,212,10,221,11,203,12,132,13,19,14, +160,14,72,15,252,15,124,16,121,16,205,15,141,14,202,12,113,10,126,7,52,4,216,0,108,253,216,249,40,246,111,242, +162,238,169,234,152,230,159,226,219,222,95,219,72,216,177,213,161,211,6,210,205,208,228,207,47,207,126,206,165,205,167,204, +171,203,216,202,47,202,156,201,60,201,94,201,50,202,143,203,54,205,58,207,222,209,34,213,173,216,51,220,172,223,29,227, +89,230,11,233,251,234,44,236,188,236,188,236,64,236,128,235,196,234,45,234,184,233,117,233,137,233,14,234,24,235,200,236, +65,239,133,242,124,246,18,251,62,0,232,5,231,11,21,18,99,24,205,30,59,37,131,43,113,49,220,54,170,59,208,63, +47,67,139,69,169,70,137,70,77,69,5,67,157,63,15,59,112,53,219,46,99,39,34,31,68,22,243,12,85,3,165,249, +59,240,112,231,123,223,115,216,114,210,147,205,229,201,112,199,80,198,155,198,59,200,14,203,10,207,48,212,91,218,53,225, +115,232,254,239,210,247,195,255,130,7,215,14,192,21,62,28,42,34,82,39,148,43,222,46,37,49,126,50,27,51,36,51, +172,50,200,49,147,48,31,47,103,45,112,43,75,41,5,39,155,36,10,34,106,31,214,28,80,26,215,23,143,21,166,19, +40,18,3,17,51,16,181,15,118,15,100,15,140,15,255,15,197,16,217,17,57,19,237,20,250,22,75,25,164,27,221,29, +0,32,14,34,197,35,208,36,26,37,188,36,193,35,38,34,250,31,99,29,122,26,55,23,140,19,156,15,174,11,230,7, +29,4,45,0,34,252,247,247,90,243,252,237,5,232,232,225,221,219,195,213,131,207,94,201,189,195,213,190,166,186,77,183, +38,181,130,180,88,181,107,183,144,186,189,190,233,195,248,201,188,208,248,215,85,223,115,230,16,237,9,243,74,248,191,252, +110,0,124,3,11,6,33,8,226,9,168,11,208,13,108,16,82,19,80,22,46,25,179,27,182,29,26,31,167,31,52,31, +240,29,76,28,119,26,42,24,50,21,236,17,253,14,156,12,117,10,83,8,149,6,198,5,231,5,103,6,214,6,83,7, +48,8,103,9,150,10,116,11,4,12,112,12,214,12,50,13,86,13,2,13,29,12,196,10,25,9,26,7,204,4,110,2, +77,0,106,254,139,252,148,250,166,248,219,246,22,245,45,243,13,241,206,238,151,236,138,234,175,232,243,230,79,229,228,227, +207,226,237,225,230,224,136,223,233,221,57,220,121,218,120,216,25,214,143,211,73,209,151,207,114,206,176,205,87,205,166,205, +189,206,100,208,80,210,134,212,52,215,73,218,104,221,71,224,225,226,71,229,107,231,55,233,187,234,39,236,158,237,20,239, +108,240,177,241,22,243,197,244,216,246,100,249,112,252,246,255,18,4,4,9,203,14,255,20,60,27,123,33,220,39,70,46, +124,52,78,58,156,63,71,68,68,72,134,75,221,77,252,78,189,78,63,77,194,74,100,71,21,67,202,61,180,55,23,49, +255,41,81,34,6,26,63,17,44,8,251,254,207,245,198,236,9,228,216,219,125,212,60,206,75,201,198,197,179,195,20,195, +225,195,248,197,63,201,187,205,100,211,228,217,217,224,36,232,199,239,138,247,17,255,35,6,169,12,138,18,172,23,253,27, +111,31,251,33,185,35,208,36,82,37,48,37,93,36,237,34,26,33,25,31,247,28,153,26,248,23,50,21,125,18,13,16, +249,13,59,12,215,10,236,9,147,9,179,9,21,10,161,10,93,11,67,12,34,13,190,13,27,14,129,14,29,15,194,15, +46,16,117,16,234,16,178,17,180,18,231,19,100,21,57,23,76,25,114,27,116,29,16,31,9,32,62,32,158,31,12,30, +96,27,184,23,125,19,4,15,60,10,20,5,214,255,232,250,74,246,188,241,49,237,208,232,142,228,42,224,146,219,247,214, +137,210,44,206,182,201,73,197,54,193,154,189,94,186,180,183,42,182,34,182,120,183,242,185,161,189,172,194,236,200,6,208, +191,215,246,223,102,232,152,240,42,248,250,254,3,5,46,10,98,14,176,17,68,20,53,22,155,23,190,24,4,26,170,27, +177,29,249,31,79,34,111,36,23,38,37,39,131,39,21,39,215,37,11,36,14,34,231,31,82,29,86,26,117,23,29,21, +55,19,127,17,30,16,123,15,155,15,11,16,103,16,185,16,60,17,246,17,177,18,55,19,127,19,146,19,118,19,53,19, +210,18,55,18,56,17,185,15,205,13,144,11,12,9,81,6,141,3,250,0,167,254,115,252,75,250,55,248,47,246,24,244, +236,241,190,239,145,237,90,235,32,233,242,230,211,228,201,226,244,224,88,223,187,221,224,219,201,217,155,215,102,213,30,211, +187,208,98,206,96,204,251,202,63,202,9,202,70,202,15,203,122,204,110,206,176,208,25,211,172,213,96,216,251,218,59,221, +20,223,163,224,232,225,209,226,109,227,244,227,136,228,36,229,203,229,154,230,184,231,63,233,65,235,206,237,242,240,178,244, +17,249,14,254,156,3,154,9,225,15,91,22,1,29,192,35,119,42,251,48,35,55,193,60,166,65,166,69,153,72,86,74, +188,74,196,73,135,71,46,68,211,63,112,58,246,51,112,44,10,36,253,26,116,17,135,7,77,253,245,242,210,232,58,223, +104,214,117,206,105,199,84,193,99,188,202,184,170,182,247,181,163,182,186,184,90,188,121,193,206,199,251,206,202,214,48,223, +17,232,30,241,0,250,149,2,214,10,151,18,128,25,75,31,232,35,109,39,3,42,210,43,243,44,111,45,88,45,198,44, +199,43,95,42,166,40,197,38,207,36,185,34,125,32,52,30,249,27,206,25,173,23,161,21,176,19,202,17,230,15,44,14, +214,12,239,11,96,11,39,11,97,11,31,12,73,13,197,14,156,16,238,18,191,21,230,24,37,28,91,31,122,34,92,37, +194,39,145,41,225,42,196,43,40,44,18,44,155,43,194,42,109,41,173,39,169,37,77,35,96,32,217,28,206,24,21,20, +98,14,190,7,138,0,11,249,54,241,0,233,163,224,110,216,122,208,197,200,151,193,132,187,233,182,168,179,143,177,181,176, +74,177,64,179,102,182,158,186,200,191,158,197,221,203,117,210,116,217,183,224,235,231,217,238,129,245,225,251,194,1,12,7, +15,12,51,17,127,22,186,27,195,32,126,37,155,41,195,44,226,46,249,47,247,47,239,46,58,45,13,43,58,40,142,36, +64,32,212,27,142,23,86,19,46,15,122,11,164,8,154,6,2,5,202,3,56,3,118,3,82,4,117,5,175,6,251,7, +105,9,244,10,129,12,243,13,46,15,17,16,131,16,136,16,31,16,43,15,176,13,230,11,250,9,233,7,182,5,133,3, +99,1,40,255,176,252,251,249,23,247,1,244,179,240,34,237,77,233,94,229,151,225,27,222,215,218,164,215,123,212,117,209, +166,206,255,203,106,201,234,198,168,196,229,194,236,193,209,193,89,194,71,195,179,196,202,198,101,201,40,204,251,206,4,210, +62,213,95,216,22,219,66,221,239,222,68,224,100,225,100,226,80,227,44,228,232,228,126,229,21,230,221,230,218,231,248,232, +61,234,196,235,153,237,192,239,64,242,31,245,98,248,16,252,32,0,132,4,55,9,73,14,192,19,142,25,153,31,212,37, +63,44,198,50,22,57,198,62,173,67,223,71,80,75,183,77,217,78,193,78,134,77,17,75,66,71,28,66,174,59,250,51, +17,43,57,33,201,22,241,11,207,0,174,245,2,235,43,225,92,216,179,208,76,202,60,197,161,193,174,191,129,191,235,192, +160,195,134,199,179,204,7,211,23,218,136,225,74,233,78,241,81,249,15,1,122,8,152,15,74,22,93,28,171,33,25,38, +136,41,251,43,164,45,192,46,93,47,97,47,190,46,138,45,217,43,161,41,228,38,210,35,159,32,85,29,244,25,165,22, +169,19,33,17,10,15,96,13,46,12,117,11,37,11,55,11,182,11,163,12,213,13,37,15,160,16,100,18,90,20,84,22, +91,24,162,26,55,29,255,31,229,34,227,37,222,40,165,43,250,45,166,47,128,48,125,48,153,47,201,45,6,43,114,39, +78,35,197,30,222,25,163,20,82,15,36,10,9,5,210,255,143,250,100,245,40,240,125,234,91,228,24,222,236,215,184,209, +94,203,35,197,144,191,4,187,111,183,158,180,173,178,0,178,202,178,227,180,17,184,74,188,154,193,248,199,46,207,219,214, +144,222,251,229,231,236,45,243,177,248,96,253,58,1,88,4,237,6,41,9,40,11,30,13,85,15,248,17,248,20,41,24, +79,27,43,30,154,32,154,34,7,36,141,36,21,36,244,34,124,33,152,31,21,29,38,26,82,23,217,20,134,18,37,16, +247,13,126,12,235,11,238,11,29,12,88,12,208,12,167,13,168,14,101,15,171,15,159,15,125,15,74,15,220,14,6,14, +166,12,183,10,103,8,250,5,151,3,70,1,18,255,13,253,56,251,125,249,194,247,242,245,255,243,234,241,185,239,99,237, +229,234,89,232,239,229,197,227,223,225,64,224,251,222,20,222,115,221,230,220,58,220,74,219,27,218,204,216,98,215,190,213, +232,211,50,210,237,208,20,208,139,207,110,207,239,207,5,209,118,210,38,212,41,214,129,216,10,219,152,221,17,224,83,226, +48,228,132,229,94,230,244,230,96,231,142,231,111,231,51,231,48,231,156,231,128,232,236,233,5,236,243,238,211,242,173,247, +95,253,160,3,49,10,3,17,31,24,118,31,225,38,51,46,57,53,185,59,133,65,137,70,180,74,229,77,1,80,16,81, +37,81,54,80,28,78,206,74,106,70,17,65,204,58,154,51,122,43,111,34,145,24,25,14,70,3,76,248,105,237,231,226, +5,217,247,207,1,200,112,193,127,188,74,185,206,183,245,183,170,185,237,188,178,193,192,199,204,206,169,214,53,223,42,232, +35,241,220,249,59,2,47,10,140,17,36,24,231,29,222,34,16,39,110,42,221,44,77,46,205,46,140,46,187,45,111,44, +174,42,132,40,6,38,74,35,102,32,123,29,168,26,255,23,134,21,78,19,104,17,225,15,182,14,237,13,152,13,176,13, +11,14,124,14,14,15,235,15,25,17,98,18,126,19,101,20,71,21,83,22,132,23,208,24,80,26,33,28,54,30,110,32, +177,34,208,36,130,38,152,39,20,40,248,39,34,39,104,37,211,34,162,31,9,28,251,23,104,19,151,14,242,9,107,5, +146,0,71,251,217,245,90,240,103,234,201,227,212,220,251,213,79,207,162,200,253,193,189,187,58,182,140,177,200,173,59,171, +49,170,154,170,68,172,41,175,78,179,143,184,190,190,205,197,157,205,215,213,14,222,255,229,162,237,3,245,7,252,104,2, +247,7,192,12,222,16,105,20,168,23,244,26,107,30,248,33,142,37,4,41,229,43,213,45,224,46,31,47,89,46,105,44, +186,41,234,38,22,36,214,32,251,28,243,24,76,21,4,18,202,14,176,11,48,9,124,7,69,6,62,5,119,4,34,4, +74,4,207,4,129,5,62,6,7,7,249,7,29,9,90,10,113,11,23,12,39,12,189,11,252,10,210,9,45,8,70,6, +120,4,212,2,40,1,89,255,121,253,150,251,149,249,87,247,215,244,52,242,150,239,17,237,165,234,77,232,23,230,17,228, +58,226,120,224,172,222,198,220,205,218,205,216,201,214,179,212,122,210,48,208,32,206,160,204,208,203,152,203,247,203,23,205, +7,207,141,209,118,212,209,215,176,219,203,223,166,227,253,230,214,233,62,236,44,238,166,239,206,240,190,241,119,242,233,242, +26,243,54,243,102,243,194,243,93,244,80,245,175,246,136,248,253,250,48,254,20,2,101,6,242,10,196,15,246,20,134,26, +82,32,60,38,50,44,29,50,214,55,34,61,188,65,105,69,11,72,162,73,45,74,151,73,194,71,180,68,152,64,140,59, +137,53,118,46,85,38,65,29,99,19,241,8,45,254,92,243,192,232,154,222,62,213,6,205,30,198,133,192,61,188,106,185, +46,184,146,184,154,186,63,190,90,195,146,201,144,208,33,216,39,224,110,232,180,240,193,248,120,0,178,7,51,14,214,19, +163,24,185,28,46,32,248,34,247,36,12,38,76,38,247,37,76,37,97,36,57,35,216,33,62,32,99,30,65,28,220,25, +76,23,184,20,63,18,243,15,245,13,116,12,115,11,202,10,98,10,88,10,196,10,153,11,192,12,45,14,215,15,165,17, +124,19,81,21,49,23,41,25,42,27,37,29,20,31,239,32,146,34,224,35,214,36,114,37,159,37,75,37,113,36,0,35, +214,32,250,29,179,26,85,23,3,20,186,16,131,13,99,10,40,7,123,3,62,255,154,250,152,245,7,240,229,233,147,227, +85,221,253,214,88,208,186,201,193,195,179,190,119,186,18,183,232,180,90,180,85,181,133,183,191,186,31,191,172,196,46,203, +82,210,209,217,97,225,181,232,158,239,34,246,63,252,191,1,104,6,63,10,117,13,37,16,114,18,188,20,107,23,135,26, +210,29,26,33,52,36,215,38,207,40,30,42,190,42,120,42,56,41,75,39,6,37,83,34,243,30,18,27,84,23,41,20, +104,17,201,14,122,12,231,10,33,10,204,9,160,9,176,9,41,10,252,10,222,11,129,12,212,12,239,12,233,12,209,12, +183,12,136,12,2,12,6,11,182,9,32,8,35,6,195,3,80,1,21,255,27,253,86,251,203,249,105,248,6,247,126,245, +191,243,198,241,165,239,119,237,71,235,33,233,26,231,82,229,214,227,151,226,102,225,15,224,124,222,182,220,206,218,195,216, +147,214,74,212,25,210,66,208,232,206,241,205,79,205,47,205,196,205,0,207,169,208,173,210,26,213,217,215,158,218,21,221, +32,223,217,224,94,226,175,227,209,228,225,229,239,230,235,231,204,232,194,233,18,235,214,236,9,239,169,241,176,244,17,248, +208,251,1,0,158,4,119,9,101,14,94,19,101,24,108,29,103,34,97,39,96,44,72,49,225,53,253,57,130,61,81,64, +61,66,38,67,19,67,20,66,30,64,23,61,249,56,213,51,185,45,178,38,213,30,67,22,22,13,112,3,148,249,229,239, +198,230,109,222,243,214,130,208,81,203,122,199,247,196,184,195,183,195,241,196,121,199,97,203,128,208,101,214,181,220,105,227, +144,234,253,241,92,249,119,0,76,7,223,13,4,20,117,25,11,30,219,33,255,36,106,39,254,40,170,41,124,41,164,40, +104,39,249,37,95,36,149,34,151,32,93,30,230,27,71,25,158,22,1,20,128,17,52,15,48,13,117,11,248,9,170,8, +152,7,238,6,207,6,49,7,1,8,88,9,79,11,192,13,100,16,31,19,15,22,60,25,105,28,66,31,182,33,242,35, +3,38,171,39,190,40,89,41,146,41,56,41,30,40,108,38,104,36,37,34,143,31,184,28,211,25,239,22,209,19,48,16, +249,11,48,7,175,1,79,251,69,244,12,237,232,229,199,222,161,215,176,208,60,202,96,196,47,191,232,186,226,183,76,182, +28,182,57,183,154,185,42,189,203,193,99,199,207,205,181,212,162,219,98,226,250,232,97,239,97,245,205,250,165,255,237,3, +143,7,132,10,0,13,100,15,244,17,198,20,207,23,230,26,180,29,224,31,80,33,7,34,228,33,197,32,225,30,171,28, +72,26,119,23,22,20,122,16,25,13,14,10,49,7,161,4,201,2,220,1,150,1,160,1,252,1,212,2,38,4,186,5, +83,7,197,8,250,9,237,10,177,11,101,12,25,13,175,13,241,13,199,13,47,13,22,12,105,10,69,8,231,5,101,3, +185,0,246,253,75,251,216,248,150,246,98,244,31,242,206,239,125,237,39,235,183,232,52,230,210,227,203,225,46,224,215,222, +141,221,56,220,226,218,137,217,18,216,118,214,217,212,119,211,142,210,60,210,106,210,239,210,216,211,84,213,94,215,180,217, +58,220,9,223,19,226,252,228,98,231,38,233,91,234,20,235,83,235,37,235,180,234,43,234,154,233,4,233,126,232,52,232, +79,232,245,232,65,234,66,236,234,238,44,242,11,246,144,250,167,255,15,5,123,10,203,15,13,21,81,26,135,31,157,36, +145,41,104,46,35,51,170,55,195,59,51,63,240,65,28,68,185,69,137,70,78,70,255,68,172,66,68,63,164,58,198,52, +196,45,192,37,226,28,95,19,115,9,79,255,46,245,104,235,94,226,88,218,133,211,2,206,213,201,245,198,85,197,248,196, +243,197,80,200,232,203,119,208,194,213,179,219,54,226,35,233,73,240,132,247,182,254,183,5,90,12,119,18,247,23,213,28, +12,33,133,36,24,39,169,40,68,41,33,41,128,40,117,39,247,37,8,36,205,33,107,31,240,28,99,26,210,23,76,21, +221,18,149,16,128,14,162,12,2,11,180,9,195,8,29,8,158,7,69,7,51,7,120,7,228,7,66,8,158,8,53,9, +32,10,59,11,114,12,227,13,176,15,190,17,191,19,135,21,41,23,178,24,235,25,138,26,122,26,219,25,178,24,240,22, +181,20,72,18,193,15,247,12,234,9,235,6,57,4,155,1,173,254,107,251,8,248,103,244,41,240,58,235,0,230,206,224, +139,219,12,214,120,208,53,203,130,198,101,194,248,190,134,188,73,187,44,187,11,188,253,189,38,193,106,197,128,202,64,208, +147,214,55,221,212,227,50,234,63,240,227,245,2,251,146,255,164,3,82,7,173,10,218,13,25,17,151,20,64,24,241,27, +164,31,71,35,144,38,55,41,45,43,103,44,173,44,237,43,131,42,212,40,214,38,65,36,34,33,244,29,25,27,120,24, +212,21,75,19,66,17,219,15,206,14,217,13,7,13,123,12,52,12,18,12,237,11,157,11,29,11,157,10,79,10,52,10, +16,10,162,9,224,8,253,7,32,7,59,6,58,5,69,4,147,3,25,3,159,2,13,2,111,1,182,0,183,255,83,254, +147,252,145,250,99,248,16,246,147,243,243,240,85,238,238,235,213,233,242,231,26,230,49,228,50,226,24,224,221,221,114,219, +217,216,55,214,220,211,1,210,164,208,171,207,42,207,86,207,50,208,125,209,255,210,202,212,6,215,156,217,63,220,197,222, +57,225,161,227,213,229,182,231,89,233,233,234,113,236,215,237,10,239,34,240,73,241,158,242,41,244,241,245,12,248,144,250, +151,253,55,1,99,5,209,9,56,14,148,18,10,23,161,27,56,32,178,36,251,40,253,44,154,48,175,51,12,54,128,55, +248,55,133,55,72,54,73,52,116,49,180,45,41,41,30,36,179,30,195,24,37,18,229,10,52,3,71,251,75,243,105,235, +205,227,171,220,64,214,189,208,67,204,243,200,230,198,29,198,141,198,43,200,231,202,169,206,82,211,174,216,134,222,189,228, +82,235,40,242,253,248,158,255,246,5,241,11,116,17,110,22,208,26,136,30,155,33,29,36,1,38,33,39,109,39,16,39, +75,38,75,37,8,36,94,34,57,32,186,29,21,27,107,24,206,21,92,19,58,17,117,15,7,14,227,12,248,11,78,11, +8,11,63,11,224,11,195,12,223,13,74,15,20,17,38,19,72,21,90,23,107,25,145,27,194,29,215,31,190,33,121,35, +0,37,56,38,1,39,71,39,10,39,79,38,16,37,62,35,226,32,27,30,16,27,226,23,180,20,152,17,112,14,5,11, +63,7,29,3,138,254,87,249,117,243,35,237,186,230,92,224,255,217,184,211,208,205,140,200,247,195,24,192,50,189,158,187, +121,187,156,188,228,190,76,194,200,198,44,204,73,210,239,216,202,223,110,230,165,236,128,242,19,248,61,253,208,1,198,5, +60,9,61,12,191,14,226,16,11,19,167,21,199,24,28,28,84,31,65,34,200,36,177,38,169,39,105,39,4,38,250,35, +185,33,35,31,213,27,235,23,8,20,162,16,159,13,196,10,66,8,142,6,218,5,221,5,49,6,179,6,113,7,114,8, +160,9,208,10,193,11,67,12,109,12,140,12,203,12,253,12,204,12,23,12,5,11,188,9,27,8,232,5,59,3,113,0, +186,253,2,251,73,248,186,245,96,243,26,241,220,238,181,236,163,234,154,232,154,230,168,228,197,226,18,225,189,223,197,222, +255,221,79,221,176,220,24,220,104,219,127,218,73,217,208,215,76,214,19,213,92,212,21,212,23,212,106,212,51,213,97,214, +171,215,253,216,131,218,74,220,3,222,99,223,105,224,46,225,172,225,211,225,189,225,169,225,202,225,24,226,104,226,193,226, +103,227,138,228,28,230,16,232,128,234,130,237,18,241,54,245,238,249,12,255,73,4,142,9,238,14,112,20,7,26,176,31, +116,37,69,43,252,48,110,54,118,59,232,63,143,67,68,70,247,71,160,72,35,72,111,70,146,67,171,63,197,58,214,52, +227,45,13,38,128,29,85,20,158,10,148,0,147,246,237,236,209,227,119,219,50,212,65,206,176,201,117,198,136,196,225,195, +139,196,162,198,43,202,237,206,160,212,46,219,147,226,162,234,1,243,103,251,177,3,188,11,81,19,64,26,117,32,237,37, +166,42,142,46,133,49,100,51,43,52,11,52,63,51,222,49,236,47,130,45,198,42,203,39,156,36,76,33,236,29,128,26, +13,23,165,19,106,16,124,13,229,10,172,8,236,6,200,5,55,5,3,5,23,5,152,5,162,6,22,8,183,9,118,11, +122,13,232,15,178,18,177,21,218,24,49,28,137,31,146,34,41,37,82,39,242,40,206,41,224,41,82,41,40,40,53,38, +106,35,247,31,18,28,214,23,105,19,22,15,8,11,21,7,220,2,51,254,46,249,195,243,185,237,17,231,49,224,116,217, +217,210,60,204,192,197,186,191,110,186,249,181,139,178,127,176,11,176,10,177,65,179,199,182,201,187,16,194,25,201,158,208, +149,216,189,224,138,232,171,239,54,246,73,252,198,1,120,6,76,10,74,13,131,15,51,17,197,18,149,20,175,22,236,24, +53,27,109,29,77,31,134,32,248,32,156,32,95,31,80,29,199,26,25,24,45,21,195,17,2,14,119,10,120,7,229,4, +147,2,191,0,208,255,201,255,64,0,228,0,201,1,38,3,240,4,212,6,137,8,247,9,39,11,51,12,55,13,64,14, +38,15,164,15,152,15,32,15,71,14,227,12,232,10,155,8,78,6,3,4,140,1,225,254,42,252,128,249,209,246,250,243, +243,240,231,237,16,235,133,232,58,230,63,228,205,226,12,226,206,225,180,225,122,225,18,225,114,224,132,223,60,222,168,220, +235,218,68,217,0,216,69,215,243,214,227,214,48,215,14,216,116,217,52,219,80,221,236,223,234,226,224,229,119,232,163,234, +107,236,188,237,134,238,244,238,82,239,191,239,31,240,94,240,160,240,31,241,233,241,250,242,97,244,59,246,153,248,150,251, +82,255,200,3,174,8,181,13,212,18,43,24,185,29,78,35,193,40,11,46,45,51,14,56,128,60,84,64,100,67,143,69, +192,70,232,70,255,69,7,68,22,65,74,61,173,56,36,51,146,44,7,37,176,28,175,19,38,10,93,0,179,246,100,237, +143,228,104,220,71,213,113,207,243,202,180,199,170,197,236,196,150,197,176,199,25,203,152,207,239,212,248,218,148,225,152,232, +192,239,218,246,204,253,115,4,153,10,19,16,224,20,249,24,65,28,168,30,53,32,236,32,209,32,12,32,236,30,171,29, +80,28,199,26,11,25,38,23,48,21,59,19,78,17,112,15,184,13,64,12,9,11,3,10,29,9,79,8,162,7,43,7, +249,6,255,6,54,7,176,7,113,8,96,9,97,10,121,11,197,12,74,14,246,15,181,17,114,19,21,21,139,22,206,23, +226,24,188,25,67,26,111,26,75,26,203,25,204,24,78,23,140,21,179,19,187,17,162,15,142,13,145,11,114,9,233,6, +224,3,78,0,8,252,252,246,100,241,160,235,213,229,233,223,210,217,213,211,73,206,64,201,172,196,192,192,4,190,205,188, +253,188,79,190,179,192,50,196,180,200,7,206,246,211,65,218,161,224,233,230,15,237,22,243,227,248,66,254,9,3,53,7, +209,10,225,13,133,16,20,19,242,21,62,25,207,28,91,32,140,35,23,38,218,39,206,40,225,40,11,40,140,38,191,36, +179,34,34,32,236,28,101,25,11,22,20,19,97,16,227,13,217,11,138,10,220,9,121,9,62,9,87,9,231,9,215,10, +230,11,218,12,151,13,45,14,193,14,104,15,18,16,146,16,190,16,147,16,39,16,109,15,55,14,131,12,157,10,188,8, +195,6,144,4,59,2,223,255,98,253,168,250,197,247,218,244,230,241,218,238,197,235,214,232,71,230,57,228,164,226,102,225, +95,224,109,223,105,222,63,221,247,219,150,218,17,217,112,215,238,213,200,212,248,211,91,211,254,210,39,211,227,211,244,212, +41,214,164,215,141,217,184,219,201,221,141,223,3,225,42,226,248,226,132,227,1,228,148,228,42,229,150,229,209,229,10,230, +104,230,235,230,156,231,172,232,73,234,128,236,84,239,215,242,3,247,157,251,112,0,124,5,222,10,143,16,110,22,97,28, +80,34,33,40,183,45,254,50,200,55,216,59,8,63,85,65,185,66,13,67,49,66,43,64,26,61,20,57,21,52,10,46, +235,38,207,30,221,21,77,12,106,2,128,248,186,238,58,229,76,220,81,212,126,205,214,199,101,195,83,192,193,190,183,190, +48,192,25,195,68,199,120,204,146,210,123,217,6,225,233,232,232,240,243,248,247,0,179,8,216,15,75,22,15,28,27,33, +86,37,177,40,23,43,113,44,205,44,113,44,159,43,99,42,182,40,164,38,81,36,220,33,76,31,168,28,8,26,130,23, +23,21,201,18,182,16,240,14,96,13,246,11,212,10,15,10,130,9,16,9,220,8,30,9,204,9,171,10,153,11,179,12, +37,14,242,15,11,18,121,20,67,23,47,26,234,28,96,31,170,33,179,35,52,37,30,38,149,38,143,38,189,37,239,35, +97,33,113,30,67,27,203,23,44,20,169,16,46,13,75,9,208,4,4,0,32,251,245,245,85,240,125,234,184,228,236,222, +206,216,112,210,72,204,198,198,5,194,19,190,52,187,186,185,162,185,187,186,8,189,174,192,139,197,67,203,170,209,192,216, +68,224,163,231,111,238,180,244,174,250,74,0,40,5,6,9,250,11,61,14,0,16,134,17,41,19,23,21,72,23,166,25, +20,28,63,30,199,31,158,32,231,32,144,32,94,31,105,29,31,27,187,24,5,22,203,18,100,15,97,12,221,9,128,7, +60,5,128,3,162,2,105,2,114,2,181,2,98,3,125,4,212,5,52,7,123,8,139,9,89,10,2,11,175,11,86,12, +177,12,128,12,202,11,176,10,38,9,19,7,157,4,34,2,204,255,127,253,29,251,177,248,72,246,210,243,62,241,150,238, +235,235,73,233,196,230,132,228,164,226,35,225,246,223,33,223,173,222,129,222,94,222,15,222,140,221,229,220,20,220,255,218, +192,217,169,216,251,215,157,215,93,215,79,215,190,215,187,216,1,218,106,219,33,221,76,223,159,225,149,227,246,228,240,229, +169,230,7,231,246,230,184,230,153,230,149,230,125,230,88,230,109,230,242,230,242,231,116,233,137,235,51,238,121,241,124,245, +83,250,226,255,233,5,53,12,172,18,51,25,171,31,5,38,64,44,80,50,18,56,94,61,19,66,9,70,2,73,211,74, +134,75,60,75,239,73,117,71,187,67,222,62,20,57,121,50,11,43,198,34,191,25,38,16,61,6,64,252,96,242,193,232, +156,223,71,215,20,208,38,202,130,197,57,194,106,192,33,192,84,193,241,195,221,199,222,204,180,210,62,217,109,224,16,232, +213,239,144,247,74,255,242,6,52,14,183,20,102,26,86,31,135,35,216,38,50,41,150,42,21,43,206,42,241,41,175,40, +26,39,44,37,230,34,85,32,133,29,125,26,99,23,115,20,219,17,156,15,174,13,25,12,222,10,227,9,15,9,111,8, +38,8,56,8,122,8,203,8,71,9,33,10,75,11,137,12,209,13,84,15,38,17,45,19,95,21,201,23,80,26,193,28, +10,31,50,33,22,35,106,36,2,37,234,36,60,36,248,34,8,33,114,30,85,27,212,23,15,20,61,16,135,12,193,8, +148,4,245,255,33,251,12,246,93,240,14,234,165,227,152,221,191,215,196,209,199,203,72,198,126,193,67,189,171,185,65,183, +111,182,253,182,132,184,15,187,225,190,215,195,133,201,198,207,175,214,5,222,46,229,198,235,231,241,193,247,49,253,243,1, +5,6,152,9,184,12,86,15,173,17,59,20,68,23,147,26,223,29,8,33,237,35,49,38,129,39,206,39,51,39,198,37, +177,35,43,33,64,30,199,26,208,22,211,18,75,15,73,12,169,9,132,7,38,6,160,5,161,5,212,5,39,6,182,6, +135,7,129,8,122,9,80,10,245,10,110,11,220,11,91,12,222,12,36,13,245,12,85,12,106,11,50,10,156,8,195,6, +228,4,12,3,20,1,245,254,209,252,167,250,73,248,171,245,240,242,47,240,97,237,141,234,211,231,82,229,26,227,59,225, +183,223,120,222,100,221,99,220,86,219,34,218,190,216,57,215,165,213,34,212,235,210,54,210,14,210,90,210,18,211,73,212, +254,213,1,216,48,218,156,220,81,223,30,226,178,228,213,230,123,232,177,233,140,234,26,235,107,235,146,235,158,235,148,235, +132,235,157,235,3,236,194,236,240,237,169,239,240,241,174,244,249,247,250,251,170,0,186,5,238,10,69,16,209,21,129,27, +59,33,253,38,210,44,149,50,252,55,207,60,245,64,64,68,109,70,104,71,90,71,85,70,43,68,178,64,7,60,113,54, +13,48,192,40,119,32,104,23,234,13,55,4,120,250,230,240,189,231,40,223,86,215,125,208,197,202,71,198,44,195,147,193, +97,193,102,194,157,196,30,200,212,204,115,210,181,216,133,223,214,230,116,238,26,246,164,253,2,5,252,11,72,18,206,23, +151,28,151,32,185,35,9,38,145,39,58,40,251,39,7,39,164,37,254,35,44,34,54,32,15,30,169,27,9,25,78,22, +168,19,61,17,13,15,10,13,77,11,247,9,231,8,231,7,22,7,182,6,188,6,235,6,73,7,24,8,96,9,207,10, +46,12,167,13,135,15,202,17,45,20,149,22,30,25,185,27,28,30,47,32,20,34,190,35,222,36,88,37,67,37,152,36, +52,35,51,33,226,30,96,28,152,25,146,22,128,19,108,16,11,13,15,9,135,4,170,255,100,250,114,244,235,237,66,231, +182,224,44,218,149,211,67,205,144,199,143,194,48,190,173,186,131,184,237,183,177,184,144,186,160,189,252,193,94,199,105,205, +2,212,28,219,100,226,119,233,51,240,170,246,210,252,118,2,108,7,174,11,78,15,93,18,248,20,107,23,4,26,216,28, +198,31,170,34,93,37,145,39,233,40,54,41,119,40,189,38,48,36,18,33,164,29,246,25,247,21,196,17,196,13,85,10, +119,7,13,5,71,3,118,2,144,2,38,3,224,3,185,4,219,5,80,7,227,8,77,10,127,11,153,12,164,13,144,14, +102,15,32,16,112,16,14,16,16,15,174,13,224,11,150,9,16,7,155,4,54,2,194,255,63,253,188,250,29,248,59,245, +36,242,19,239,37,236,69,233,97,230,159,227,56,225,64,223,166,221,85,220,59,219,71,218,92,217,84,216,32,215,216,213, +141,212,49,211,228,209,22,209,252,208,82,209,224,209,224,210,146,212,190,214,18,217,144,219,90,222,82,225,33,228,117,230, +48,232,104,233,56,234,162,234,170,234,114,234,24,234,156,233,7,233,145,232,117,232,201,232,141,233,197,234,126,236,210,238, +233,241,224,245,163,250,239,255,118,5,30,11,248,16,13,23,74,29,167,35,29,42,130,48,146,54,39,60,44,65,98,69, +119,72,97,74,78,75,64,75,246,73,64,71,65,67,62,62,82,56,92,49,68,41,41,32,83,22,1,12,114,1,251,246, +235,236,107,227,152,218,180,210,8,204,186,198,214,194,117,192,175,191,118,192,168,194,49,198,245,202,177,208,22,215,255,221, +92,229,2,237,185,244,89,252,199,3,215,10,83,17,15,23,246,27,1,32,53,35,159,37,60,39,253,39,226,39,22,39, +217,37,94,36,183,34,228,32,218,30,141,28,2,26,96,23,217,20,136,18,108,16,140,14,247,12,176,11,166,10,206,9, +50,9,222,8,203,8,242,8,102,9,64,10,111,11,181,12,240,13,57,15,184,16,105,18,51,20,23,22,33,24,54,26, +29,28,186,29,25,31,57,32,242,32,41,33,232,32,49,32,230,30,9,29,215,26,128,24,249,21,63,19,131,16,221,13, +11,11,183,7,212,3,136,255,214,250,144,245,170,239,107,233,44,227,9,221,235,214,219,208,28,203,250,197,158,193,29,190, +163,187,102,186,128,186,217,187,82,190,224,193,111,198,207,203,212,209,95,216,51,223,247,229,115,236,180,242,197,248,119,254, +133,3,207,7,98,11,106,14,35,17,195,19,114,22,68,25,50,28,19,31,169,33,179,35,2,37,130,37,39,37,239,35, +236,33,94,31,134,28,111,25,255,21,79,18,200,14,194,11,59,9,10,7,69,5,52,4,235,3,38,4,145,4,19,5, +196,5,187,6,222,7,251,8,240,9,206,10,182,11,183,12,197,13,176,14,42,15,1,15,89,14,117,13,76,12,175,10, +184,8,190,6,227,4,251,2,234,0,194,254,141,252,65,250,208,247,55,245,127,242,180,239,225,236,18,234,112,231,53,229, +116,227,15,226,214,224,178,223,149,222,102,221,11,220,135,218,247,216,110,215,253,213,205,212,14,212,192,211,205,211,75,212, +93,213,241,214,204,216,220,218,43,221,163,223,17,226,68,228,26,230,132,231,142,232,75,233,198,233,17,234,73,234,115,234, +135,234,150,234,204,234,62,235,247,235,7,237,119,238,81,240,190,242,250,245,8,250,167,254,139,3,155,8,235,13,138,19, +102,25,102,31,134,37,182,43,194,49,109,55,142,60,246,64,113,68,226,70,73,72,150,72,168,71,120,69,14,66,119,61, +212,55,68,49,193,41,51,33,184,23,164,13,91,3,42,249,64,239,181,229,187,220,181,212,7,206,199,200,220,196,58,194, +231,192,229,192,50,194,201,196,136,200,47,205,138,210,130,216,10,223,248,229,16,237,52,244,103,251,151,2,133,9,252,15, +234,21,67,27,233,31,201,35,222,38,24,41,104,42,220,42,158,42,205,41,127,40,196,38,170,36,56,34,120,31,130,28, +119,25,124,22,170,19,17,17,214,14,41,13,9,12,58,11,128,10,209,9,72,9,252,8,242,8,48,9,194,9,161,10, +174,11,212,12,32,14,162,15,95,17,90,19,160,21,25,24,146,26,236,28,27,31,255,32,102,34,51,35,101,35,238,34, +180,33,178,31,19,29,18,26,202,22,63,19,151,15,18,12,160,8,212,4,115,0,186,251,217,246,158,241,229,235,252,229, +66,224,168,218,244,212,48,207,184,201,213,196,154,192,31,189,179,186,168,185,254,185,124,187,26,190,253,193,20,199,12,205, +170,211,220,218,106,226,224,233,224,240,94,247,116,253,29,3,38,8,108,12,244,15,217,18,68,21,125,23,208,25,79,28, +211,30,61,33,116,35,49,37,33,38,47,38,118,37,244,35,172,33,223,30,222,27,169,24,21,21,66,17,171,13,174,10, +50,8,1,6,61,4,60,3,7,3,67,3,161,3,37,4,243,4,2,6,31,7,39,8,22,9,252,9,236,10,248,11, +35,13,82,14,59,15,152,15,92,15,167,14,129,13,218,11,193,9,106,7,250,4,113,2,201,255,0,253,14,250,237,246, +169,243,89,240,33,237,34,234,102,231,233,228,196,226,43,225,47,224,144,223,0,223,118,222,10,222,152,221,209,220,151,219, +30,218,153,216,27,215,198,213,209,212,77,212,40,212,115,212,100,213,252,214,234,216,248,218,66,221,223,223,129,226,172,228, +58,230,90,231,47,232,168,232,189,232,164,232,148,232,129,232,73,232,4,232,255,231,100,232,58,233,144,234,126,236,254,238, +252,241,147,245,229,249,210,254,6,4,96,9,246,14,205,20,182,26,144,32,102,38,58,44,216,49,4,55,152,59,116,63, +98,66,55,68,243,68,172,68,86,67,209,64,44,61,157,56,64,51,254,44,202,37,201,29,56,21,73,12,37,3,254,249, +15,241,137,232,145,224,80,217,248,210,187,205,189,201,20,199,192,197,184,197,4,199,186,201,194,205,211,210,168,216,42,223, +74,230,205,237,103,245,235,252,67,4,72,11,195,17,142,23,158,28,235,32,104,36,18,39,249,40,34,42,129,42,39,42, +86,41,71,40,247,38,77,37,67,35,228,32,55,30,89,27,125,24,199,21,49,19,181,16,104,14,109,12,206,10,125,9, +109,8,185,7,133,7,210,7,132,8,155,9,45,11,49,13,127,15,242,17,116,20,233,22,60,25,99,27,89,29,22,31, +156,32,235,33,237,34,120,35,102,35,172,34,87,33,130,31,62,29,146,26,144,23,71,20,208,16,89,13,17,10,220,6, +106,3,154,255,143,251,68,247,105,242,221,236,249,230,52,225,165,219,17,214,107,208,13,203,93,198,97,194,241,190,68,188, +234,186,47,187,213,188,123,191,254,194,95,199,141,204,97,210,163,216,14,223,91,229,94,235,4,241,67,246,13,251,77,255, +255,2,52,6,250,8,94,11,160,13,35,16,40,19,157,22,77,26,3,30,130,33,137,36,214,38,42,40,83,40,103,39, +196,37,177,35,7,33,115,29,15,25,131,20,112,16,234,12,189,9,3,7,37,5,75,4,36,4,89,4,222,4,204,5, +31,7,149,8,214,9,165,10,11,11,60,11,96,11,125,11,127,11,72,11,203,10,26,10,69,9,48,8,196,6,36,5, +137,3,250,1,91,0,168,254,242,252,50,251,65,249,4,247,132,244,214,241,9,239,32,236,47,233,89,230,203,227,167,225, +244,223,166,222,157,221,180,220,196,219,166,218,65,217,140,215,145,213,124,211,152,209,42,208,54,207,164,206,134,206,16,207, +72,208,249,209,252,211,102,214,78,217,130,220,160,223,94,226,175,228,164,230,59,232,99,233,35,234,160,234,5,235,112,235, +246,235,159,236,106,237,110,238,230,239,7,242,205,244,6,248,140,251,98,255,160,3,69,8,29,13,217,17,95,22,208,26, +74,31,188,35,3,40,35,44,55,48,67,52,38,56,176,59,175,62,1,65,145,66,77,67,26,67,207,65,77,63,144,59, +178,54,204,48,237,41,36,34,151,25,124,16,15,7,138,253,45,244,58,235,243,226,136,219,23,213,193,207,181,203,22,201, +211,199,197,199,216,200,25,203,139,206,5,211,61,216,249,221,51,228,242,234,15,242,65,249,91,0,81,7,17,14,116,20, +94,26,176,31,68,36,0,40,232,42,5,45,68,46,142,46,236,45,151,44,212,42,200,40,110,38,199,35,249,32,43,30, +105,27,195,24,78,22,11,20,235,17,234,15,24,14,118,12,254,10,185,9,185,8,0,8,125,7,41,7,32,7,140,7, +104,8,120,9,152,10,223,11,103,13,22,15,210,16,178,18,211,20,32,23,96,25,93,27,1,29,77,30,46,31,112,31, +227,30,135,29,107,27,141,24,234,20,156,16,202,11,147,6,21,1,143,251,94,246,187,241,131,237,99,233,73,229,88,225, +125,221,98,217,239,212,113,208,42,204,20,200,34,196,134,192,144,189,117,187,60,186,226,185,121,186,32,188,229,190,192,194, +169,199,129,205,24,212,85,219,73,227,220,235,145,244,196,252,21,4,115,10,223,15,66,20,129,23,171,25,245,26,154,27, +192,27,157,27,124,27,146,27,231,27,116,28,42,29,224,29,91,30,104,30,220,29,149,28,174,26,124,24,69,22,249,19, +103,17,162,14,12,12,244,9,77,8,235,6,229,5,139,5,252,5,2,7,92,8,230,9,141,11,84,13,78,15,99,17, +59,19,132,20,63,21,156,21,164,21,33,21,215,19,203,17,70,15,129,12,113,9,17,6,169,2,150,255,217,252,49,250, +131,247,240,244,132,242,12,240,93,237,145,234,228,231,117,229,57,227,44,225,111,223,53,222,161,221,166,221,7,222,127,222, +240,222,98,223,214,223,37,224,29,224,193,223,77,223,13,223,20,223,67,223,148,223,62,224,113,225,3,227,160,228,42,230, +186,231,78,233,179,234,189,235,109,236,217,236,6,237,234,236,146,236,44,236,220,235,155,235,92,235,58,235,113,235,56,236, +178,237,255,239,44,243,35,247,220,251,117,1,248,7,15,15,60,22,66,29,53,36,30,43,199,49,233,55,91,61,2,66, +193,69,115,72,230,73,230,73,91,72,103,69,61,65,246,59,146,53,42,46,251,37,61,29,14,20,121,10,140,0,93,246, +19,236,234,225,47,216,46,207,31,199,37,192,82,186,206,181,227,178,214,177,174,178,45,181,7,185,16,190,59,196,114,203, +116,211,231,219,142,228,103,237,106,246,81,255,189,7,114,15,98,22,125,28,167,33,211,37,15,41,116,43,27,45,25,46, +116,46,22,46,231,44,2,43,178,40,47,38,131,35,170,32,166,29,113,26,5,23,139,19,63,16,53,13,93,10,190,7, +125,5,169,3,61,2,59,1,178,0,161,0,254,0,206,1,47,3,54,5,208,7,189,10,210,13,19,17,124,20,213,23, +220,26,135,29,244,31,50,34,48,36,209,37,4,39,192,39,249,39,150,39,114,38,117,36,178,33,112,30,236,26,45,23, +29,19,219,14,149,10,39,6,54,1,185,251,255,245,32,240,216,233,8,227,8,220,73,213,232,206,204,200,18,195,22,190, +36,186,67,183,112,181,232,180,3,182,218,184,68,189,19,195,21,202,8,210,164,218,182,227,13,237,84,246,29,255,27,7, +80,14,219,20,167,26,98,31,225,34,87,37,20,39,78,40,60,41,33,42,28,43,38,44,61,45,81,46,31,47,78,47, +177,46,61,45,219,42,135,39,141,35,86,31,6,27,131,22,226,17,144,13,222,9,179,6,235,3,191,1,129,0,47,0, +111,0,235,0,133,1,87,2,134,3,251,4,100,6,136,7,125,8,113,9,112,10,106,11,67,12,200,12,210,12,98,12, +126,11,2,10,209,7,20,5,16,2,233,254,158,251,57,248,199,244,60,241,130,237,154,233,161,229,182,225,239,221,103,218, +60,215,138,212,110,210,1,209,51,208,195,207,117,207,55,207,4,207,195,206,99,206,233,205,114,205,45,205,84,205,249,205, +241,206,21,208,135,209,124,211,236,213,162,216,133,219,157,222,212,225,212,228,66,231,249,232,8,234,111,234,43,234,103,233, +120,232,139,231,149,230,159,229,243,228,220,228,107,229,139,230,53,232,124,234,115,237,51,241,219,245,102,251,145,1,5,8, +155,14,92,21,69,28,60,35,25,42,173,48,202,54,89,60,85,65,144,69,167,72,70,74,110,74,69,73,202,70,205,66, +62,61,94,54,150,46,47,38,60,29,199,19,250,9,18,0,81,246,244,236,54,228,67,220,54,213,41,207,79,202,222,198, +228,196,66,196,212,196,146,198,131,201,172,205,11,211,131,217,205,224,153,232,192,240,49,249,185,1,5,10,212,17,18,25, +164,31,99,37,56,42,42,46,63,49,101,51,140,52,194,52,26,52,165,50,132,48,254,45,80,43,145,40,185,37,203,34, +218,31,12,29,132,26,72,24,69,22,122,20,0,19,233,17,45,17,189,16,157,16,217,16,115,17,86,18,116,19,224,20, +197,22,40,25,210,27,124,30,2,33,100,35,159,37,131,39,209,40,120,41,161,41,96,41,142,40,9,39,245,36,120,34, +114,31,179,27,99,23,228,18,110,14,2,10,176,5,183,1,61,254,14,251,202,247,73,244,141,240,105,236,145,231,14,226, +68,220,122,214,169,208,201,202,24,197,241,191,131,187,210,183,255,180,115,179,134,179,55,181,78,184,172,188,51,194,145,200, +116,207,188,214,55,222,106,229,226,235,147,241,166,246,41,251,8,255,62,2,211,4,199,6,28,8,2,9,236,9,77,11, +68,13,180,15,143,18,225,21,120,25,215,28,128,31,54,33,241,33,197,33,212,32,55,31,234,28,233,25,114,22,255,18, +227,15,15,13,105,10,53,8,222,6,103,6,114,6,182,6,48,7,231,7,193,8,152,9,70,10,158,10,144,10,53,10, +192,9,90,9,4,9,150,8,233,7,250,6,208,5,85,4,119,2,90,0,55,254,25,252,243,249,209,247,217,245,5,244, +30,242,4,240,222,237,222,235,252,233,7,232,245,229,0,228,112,226,103,225,201,224,77,224,178,223,231,222,252,221,231,220, +136,219,217,217,1,216,76,214,253,212,34,212,149,211,66,211,91,211,24,212,99,213,251,214,211,216,21,219,179,221,77,224, +138,226,100,228,250,229,63,231,27,232,177,232,83,233,30,234,236,234,173,235,152,236,231,237,161,239,181,241,39,244,252,246, +49,250,211,253,17,2,3,7,121,12,22,18,165,23,57,29,244,34,202,40,137,46,14,52,95,57,133,62,91,67,135,71, +172,74,174,76,171,77,184,77,173,76,82,74,169,70,238,65,83,60,223,53,142,46,115,38,174,29,87,20,153,10,189,0, +7,247,149,237,123,228,233,219,40,212,125,205,29,200,33,196,127,193,24,192,230,191,32,193,255,195,106,200,0,206,113,212, +170,219,147,227,221,235,51,244,116,252,147,4,90,12,119,19,187,25,32,31,154,35,17,39,129,41,8,43,186,43,158,43, +206,42,129,41,235,39,37,38,55,36,38,34,236,31,138,29,24,27,176,24,77,22,227,19,127,17,61,15,45,13,70,11, +138,9,21,8,0,7,59,6,167,5,97,5,182,5,183,6,25,8,143,9,25,11,212,12,167,14,98,16,16,18,248,19, +53,22,129,24,128,26,41,28,158,29,190,30,42,31,198,30,218,29,146,28,178,26,247,23,148,20,5,17,112,13,133,9, +27,5,151,0,97,252,53,248,144,243,136,238,154,233,188,228,92,223,91,217,77,211,165,205,35,200,105,194,186,188,212,183, +33,180,124,177,196,175,73,175,98,176,242,178,180,182,180,187,20,194,153,201,211,209,133,218,150,227,181,236,96,245,66,253, +82,4,163,10,34,16,153,20,248,23,110,26,65,28,175,29,252,30,106,32,13,34,197,35,108,37,211,38,191,39,13,40, +198,39,227,38,48,37,162,34,159,31,148,28,116,25,241,21,43,18,190,14,15,12,229,9,247,7,146,6,55,6,228,6, +15,8,90,9,223,10,210,12,40,15,155,17,228,19,220,21,131,23,227,24,255,25,192,26,246,26,109,26,31,25,59,23, +232,20,28,18,219,14,94,11,216,7,54,4,87,0,81,252,76,248,49,244,221,239,116,235,81,231,162,227,89,224,108,221, +243,218,18,217,217,215,91,215,161,215,134,216,188,217,251,218,32,220,32,221,220,221,26,222,198,221,46,221,210,220,220,220, +11,221,52,221,148,221,114,222,158,223,180,224,166,225,189,226,10,228,40,229,170,229,147,229,54,229,195,228,28,228,45,227, +36,226,60,225,126,224,226,223,153,223,249,223,58,225,93,227,83,230,20,234,158,238,0,244,81,250,138,1,109,9,173,17, +21,26,131,34,216,42,249,50,203,58,20,66,133,72,246,77,113,82,219,85,205,87,225,87,35,86,241,82,108,78,85,72, +143,64,111,55,99,45,139,34,225,22,152,10,20,254,168,241,130,229,216,217,244,206,20,197,95,188,15,181,119,175,210,171, +29,170,57,170,15,172,126,175,74,180,69,186,103,193,147,201,115,210,181,219,67,229,18,239,237,248,132,2,160,11,30,20, +219,27,180,34,142,40,84,45,241,48,103,51,212,52,71,53,151,52,160,50,148,47,225,43,206,39,107,35,209,30,64,26, +233,21,222,17,44,14,239,10,50,8,228,5,254,3,161,2,251,1,3,2,132,2,95,3,164,4,83,6,63,8,85,10, +190,12,160,15,211,18,15,22,53,25,91,28,149,31,203,34,203,37,124,40,238,42,48,45,36,47,138,48,57,49,54,49, +139,48,19,47,157,44,73,41,110,37,39,33,70,28,209,22,54,17,173,11,241,5,191,255,67,249,177,242,226,235,161,228, +35,221,233,213,67,207,22,201,53,195,198,189,41,185,141,181,238,178,118,177,125,177,20,179,253,181,24,186,116,191,245,197, +64,205,29,213,138,221,96,230,55,239,164,247,129,255,206,6,117,13,74,19,55,24,67,28,117,31,228,33,221,35,186,37, +153,39,100,41,28,43,205,44,71,46,48,47,69,47,117,46,185,44,36,42,249,38,134,35,231,31,248,27,181,23,124,19, +201,15,182,12,6,10,188,7,74,6,1,6,158,6,159,7,193,8,5,10,111,11,245,12,139,14,8,16,47,17,233,17, +96,18,205,18,43,19,51,19,168,18,132,17,223,15,183,13,250,10,187,7,36,4,79,0,62,252,1,248,191,243,132,239, +52,235,185,230,42,226,181,221,115,217,103,213,150,209,35,206,71,203,57,201,2,200,110,199,60,199,73,199,142,199,235,199, +41,200,34,200,231,199,176,199,184,199,20,200,177,200,117,201,116,202,221,203,182,205,203,207,1,210,127,212,99,215,105,218, +33,221,83,223,20,225,115,226,95,227,212,227,2,228,36,228,85,228,152,228,251,228,155,229,157,230,32,232,58,234,237,236, +45,240,3,244,155,248,24,254,79,4,221,10,126,17,47,24,247,30,191,37,106,44,246,50,92,57,111,63,238,68,167,73, +103,77,227,79,233,80,145,80,250,78,4,76,121,71,120,65,88,58,62,50,31,41,16,31,86,20,53,9,218,253,142,242, +193,231,219,221,21,213,127,205,59,199,134,194,142,191,71,190,140,190,63,192,79,195,180,199,104,205,74,212,14,220,102,228, +41,237,61,246,108,255,110,8,20,17,70,25,228,32,185,39,147,45,81,50,235,53,106,56,221,57,76,58,170,57,239,55, +68,53,3,50,130,46,233,42,73,39,179,35,41,32,174,28,91,25,97,22,219,19,193,17,8,16,192,14,14,14,243,13, +59,14,188,14,132,15,173,16,25,18,157,19,76,21,93,23,202,25,73,28,169,30,255,32,104,35,208,37,242,39,160,41, +218,42,175,43,22,44,248,43,84,43,52,42,127,40,255,37,174,34,219,30,219,26,173,22,39,18,118,13,12,9,253,4, +219,0,73,252,94,247,73,242,239,236,25,231,221,224,141,218,103,212,94,206,81,200,104,194,19,189,153,184,238,180,22,178, +101,176,41,176,92,177,209,179,122,183,77,188,26,194,155,200,138,207,160,214,150,221,53,228,91,234,252,239,28,245,175,249, +144,253,166,0,4,3,223,4,120,6,19,8,235,9,41,12,212,14,199,17,184,20,98,23,161,25,86,27,80,28,94,28, +139,27,23,26,53,24,221,21,245,18,181,15,158,12,4,10,200,7,185,5,5,4,5,3,209,2,54,3,0,4,26,5, +128,6,35,8,220,9,109,11,159,12,96,13,195,13,239,13,249,13,205,13,70,13,102,12,77,11,7,10,122,8,175,6, +218,4,22,3,80,1,135,255,217,253,65,252,137,250,144,248,110,246,53,244,206,241,30,239,61,236,87,233,140,230,253,227, +209,225,33,224,211,222,175,221,153,220,163,219,213,218,250,217,216,216,131,215,92,214,158,213,41,213,211,212,182,212,8,213, +209,213,240,214,94,216,61,218,148,220,44,223,194,225,53,228,124,230,132,232,52,234,141,235,174,236,178,237,157,238,107,239, +50,240,33,241,97,242,242,243,189,245,187,247,250,249,140,252,123,255,214,2,173,6,3,11,197,15,200,20,224,25,249,30, +32,36,86,41,135,46,159,51,150,56,85,61,170,65,88,69,47,72,8,74,195,74,67,74,120,72,99,69,22,65,165,59, +30,53,156,45,60,37,20,28,70,18,5,8,139,253,14,243,208,232,41,223,107,214,219,206,177,200,14,196,239,192,59,191, +243,190,46,192,232,194,217,198,169,203,68,209,193,215,244,222,118,230,10,238,192,245,141,253,39,5,79,12,9,19,102,25, +61,31,68,36,85,40,127,43,210,45,58,47,148,47,234,46,121,45,125,43,25,41,103,38,127,35,116,32,77,29,13,26, +187,22,108,19,71,16,111,13,235,10,177,8,185,6,22,5,226,3,20,3,127,2,10,2,198,1,195,1,2,2,157,2, +191,3,108,5,114,7,166,9,14,12,184,14,142,17,96,20,2,23,93,25,95,27,233,28,230,29,96,30,96,30,196,29, +84,28,17,26,65,23,42,20,212,16,45,13,94,9,205,5,159,2,121,255,243,251,12,248,239,243,123,239,105,234,201,228, +254,222,74,217,156,211,220,205,63,200,59,195,32,191,238,187,161,185,114,184,163,184,68,186,81,189,198,193,117,199,0,206, +23,213,137,220,4,228,23,235,108,241,247,246,224,251,78,0,53,4,94,7,187,9,136,11,18,13,125,14,240,15,177,17, +6,20,253,22,84,26,153,29,105,32,165,34,73,36,42,37,25,37,44,36,183,34,236,32,174,30,228,27,216,24,17,22, +195,19,181,17,200,15,90,14,220,13,66,14,40,15,68,16,120,17,182,18,238,19,8,21,208,21,22,22,222,21,78,21, +138,20,159,19,119,18,224,16,203,14,101,12,217,9,24,7,22,4,7,1,36,254,107,251,200,248,85,246,55,244,98,242, +170,240,251,238,97,237,218,235,83,234,200,232,81,231,22,230,70,229,252,228,41,229,158,229,46,230,182,230,28,231,72,231, +47,231,213,230,71,230,178,229,78,229,38,229,15,229,243,228,0,229,89,229,221,229,102,230,20,231,25,232,76,233,56,234, +155,234,152,234,96,234,228,233,1,233,218,231,198,230,240,229,64,229,170,228,102,228,180,228,143,229,203,230,99,232,129,234, +80,237,234,240,102,245,203,250,220,0,58,7,167,13,33,20,164,26,27,33,113,39,139,45,59,51,79,56,176,60,66,64, +194,66,237,67,191,67,102,66,1,64,128,60,218,55,50,50,193,43,162,36,217,28,113,20,126,11,14,2,58,248,73,238, +143,228,65,219,129,210,140,202,186,195,69,190,48,186,95,183,196,181,110,181,127,182,27,185,80,189,245,194,170,201,8,209, +218,216,1,225,82,233,155,241,183,249,133,1,217,8,151,15,182,21,31,27,172,31,70,35,252,37,223,39,234,40,24,41, +144,40,148,39,80,38,200,36,248,34,229,32,131,30,195,27,188,24,169,21,185,18,255,15,146,13,144,11,249,9,173,8, +147,7,170,6,2,6,159,5,114,5,119,5,210,5,161,6,187,7,211,8,218,9,12,11,156,12,145,14,225,16,138,19, +132,22,193,25,48,29,182,32,38,36,93,39,49,42,103,44,200,45,49,46,132,45,162,43,145,40,138,36,204,31,114,26, +127,20,15,14,110,7,250,0,220,250,243,244,21,239,93,233,7,228,15,223,46,218,55,213,83,208,185,203,86,199,252,194, +211,190,102,187,23,185,216,183,151,183,157,184,72,187,152,191,69,197,30,204,28,212,48,221,33,231,139,241,7,252,60,6, +211,15,124,24,19,32,164,38,31,44,77,48,38,51,237,52,220,53,6,54,158,53,5,53,109,52,186,51,201,50,163,49, +81,48,183,46,158,44,217,41,92,38,65,34,182,29,217,24,174,19,81,14,33,9,153,4,236,0,239,253,116,251,158,249, +178,248,189,248,130,249,169,250,22,252,254,253,135,0,94,3,242,5,11,8,205,9,67,11,67,12,171,12,120,12,162,11, +44,10,64,8,17,6,200,3,122,1,27,255,131,252,161,249,149,246,124,243,54,240,145,236,126,232,39,228,206,223,159,219, +155,215,186,211,13,208,209,204,67,202,117,200,65,199,124,198,41,198,86,198,235,198,191,199,188,200,216,201,6,203,95,204, +7,206,232,207,206,209,194,211,6,214,163,216,90,219,247,221,125,224,248,226,94,229,143,231,105,233,215,234,208,235,80,236, +95,236,31,236,195,235,85,235,194,234,29,234,182,233,220,233,168,234,32,236,80,238,63,241,249,244,171,249,135,255,107,6, +234,13,168,21,131,29,95,37,255,44,28,52,125,58,240,63,88,68,176,71,248,73,19,75,219,74,79,73,149,70,212,66, +16,62,52,56,67,49,120,41,31,33,100,24,92,15,25,6,188,252,108,243,85,234,174,225,176,217,137,210,91,204,89,199, +198,195,210,193,137,193,239,194,248,197,109,202,247,207,102,214,176,221,177,229,19,238,137,246,240,254,46,7,26,15,131,22, +67,29,63,35,108,40,198,44,80,48,14,51,6,53,70,54,218,54,195,54,239,53,86,52,34,50,161,47,4,45,70,42, +90,39,89,36,103,33,142,30,212,27,93,25,70,23,128,21,244,19,180,18,221,17,95,17,19,17,240,16,2,17,71,17, +179,17,78,18,51,19,117,20,2,22,171,23,73,25,220,26,116,28,8,30,122,31,180,32,179,33,125,34,8,35,48,35, +196,34,159,33,178,31,245,28,100,25,11,21,25,16,209,10,100,5,238,255,160,250,180,245,34,241,155,236,249,231,106,227, +253,222,81,218,29,213,174,207,136,202,203,197,71,193,251,188,62,185,97,182,98,180,35,179,224,178,13,180,187,182,144,186, +87,191,51,197,35,204,195,211,166,219,165,227,179,235,154,243,254,250,158,1,115,7,138,12,187,16,209,19,222,21,31,23, +180,23,190,23,160,23,190,23,54,24,244,24,216,25,177,26,76,27,137,27,70,27,88,26,186,24,176,22,135,20,94,18, +35,16,205,13,131,11,128,9,180,7,221,5,8,4,161,2,222,1,123,1,55,1,41,1,121,1,34,2,1,3,251,3, +3,5,23,6,40,7,27,8,227,8,128,9,215,9,171,9,223,8,127,7,155,5,65,3,157,0,229,253,53,251,143,248, +1,246,163,243,125,241,133,239,193,237,73,236,24,235,245,233,167,232,52,231,201,229,128,228,91,227,83,226,74,225,22,224, +154,222,220,220,241,218,252,216,18,215,55,213,134,211,71,210,178,209,171,209,2,210,203,210,58,212,58,214,134,216,19,219, +29,222,165,225,55,229,82,232,237,234,70,237,107,239,48,241,148,242,226,243,87,245,233,246,114,248,1,250,213,251,15,254, +152,0,79,3,61,6,127,9,50,13,127,17,117,22,223,27,95,33,192,38,4,44,32,49,240,53,88,58,84,62,203,65, +142,68,111,70,83,71,23,71,144,69,193,66,218,62,3,58,47,52,97,45,228,37,23,30,39,22,28,14,254,5,220,253, +201,245,235,237,113,230,134,223,80,217,240,211,125,207,29,204,7,202,93,201,16,202,249,203,239,206,208,210,153,215,102,221, +42,228,134,235,22,243,187,250,112,2,255,9,18,17,108,23,4,29,212,33,188,37,146,40,76,42,3,43,214,42,216,41, +26,40,170,37,158,34,49,31,185,27,123,24,144,21,237,18,124,16,47,14,5,12,6,10,64,8,198,6,169,5,239,4, +159,4,194,4,61,5,227,5,153,6,110,7,118,8,181,9,58,11,21,13,70,15,165,17,246,19,4,22,194,23,56,25, +78,26,228,26,9,27,233,26,128,26,150,25,9,24,238,21,103,19,115,16,6,13,54,9,85,5,186,1,138,254,198,251, +111,249,101,247,102,245,63,243,212,240,241,237,95,234,48,230,167,225,239,220,26,216,79,211,183,206,83,202,27,198,53,194, +20,191,58,189,205,188,155,189,137,191,203,194,116,199,31,205,72,211,195,217,132,224,56,231,82,237,131,242,229,246,183,250, +6,254,188,0,219,2,116,4,129,5,28,6,179,6,190,7,90,9,110,11,247,13,248,16,53,20,58,23,152,25,27,27, +212,27,0,28,211,27,102,27,185,26,200,25,150,24,65,23,230,21,135,20,62,19,99,18,72,18,230,18,1,20,110,21, +24,23,213,24,109,26,186,27,169,28,34,29,247,28,14,28,147,26,217,24,253,22,205,20,44,18,60,15,38,12,231,8, +111,5,202,1,35,254,163,250,105,247,135,244,9,242,236,239,47,238,212,236,222,235,58,235,199,234,118,234,95,234,160,234, +70,235,70,236,134,237,228,238,57,240,91,241,23,242,50,242,119,241,236,239,217,237,164,235,140,233,161,231,235,229,134,228, +145,227,4,227,174,226,111,226,110,226,233,226,207,227,192,228,109,229,204,229,227,229,166,229,18,229,79,228,156,227,38,227, +251,226,27,227,152,227,142,228,4,230,245,231,113,234,141,237,71,241,158,245,172,250,125,0,223,6,122,13,3,20,81,26, +72,32,211,37,224,42,118,47,158,51,83,55,128,58,14,61,216,62,171,63,109,63,58,62,46,60,63,57,91,53,150,48, +23,43,244,36,46,30,195,22,181,14,19,6,243,252,123,243,230,233,108,224,41,215,72,206,43,198,83,191,10,186,77,182, +250,179,5,179,134,179,167,181,111,185,187,190,86,197,26,205,224,213,101,223,69,233,23,243,145,252,145,5,235,13,90,21, +174,27,235,32,29,37,62,40,71,42,67,43,56,43,56,42,125,40,86,38,247,35,118,33,220,30,50,28,130,25,222,22, +72,20,177,17,12,15,94,12,188,9,61,7,248,4,252,2,81,1,248,255,247,254,99,254,84,254,222,254,4,0,186,1, +227,3,98,6,46,9,72,12,145,15,213,18,15,22,102,25,225,28,70,32,89,35,9,38,98,40,94,42,208,43,130,44, +99,44,137,43,247,41,133,39,24,36,214,31,251,26,165,21,220,15,216,9,254,3,143,254,102,249,60,244,16,239,21,234, +63,229,73,224,34,219,1,214,18,209,78,204,186,199,148,195,48,192,172,189,244,187,21,187,100,187,41,189,57,192,69,196, +92,201,202,207,127,215,18,224,54,233,234,242,10,253,20,7,98,16,155,24,198,31,248,37,13,43,196,46,20,49,48,50, +95,50,246,49,93,49,228,48,147,48,65,48,203,47,44,47,87,46,22,45,45,43,136,40,86,37,230,33,101,30,195,26, +213,22,161,18,118,14,155,10,15,7,192,3,239,0,3,255,29,254,254,253,95,254,50,255,139,0,103,2,145,4,188,6, +174,8,81,10,161,11,150,12,46,13,94,13,253,12,221,11,0,10,155,7,224,4,228,1,187,254,138,251,111,248,113,245, +141,242,192,239,242,236,242,233,182,230,116,227,103,224,131,221,149,218,159,215,231,212,180,210,16,209,224,207,5,207,121,206, +59,206,57,206,72,206,63,206,7,206,167,205,83,205,87,205,218,205,186,206,217,207,89,209,94,211,185,213,20,216,100,218, +222,220,139,223,33,226,86,228,35,230,162,231,199,232,117,233,193,233,237,233,25,234,41,234,14,234,6,234,106,234,90,235, +188,236,133,238,208,240,210,243,186,247,154,252,80,2,147,8,25,15,185,21,97,28,243,34,74,41,70,47,198,52,152,57, +148,61,189,64,24,67,113,68,121,68,25,67,126,64,217,60,57,56,162,50,40,44,243,36,51,29,10,21,131,12,169,3, +159,250,162,241,247,232,212,224,98,217,192,210,21,205,145,200,94,197,147,195,60,195,87,196,210,198,133,202,70,207,229,212, +52,219,8,226,71,233,218,240,165,248,129,0,64,8,193,15,240,22,171,29,192,35,13,41,142,45,74,49,68,52,131,54, +10,56,198,56,158,56,159,55,251,53,229,51,120,49,184,46,166,43,74,40,203,36,97,33,62,30,128,27,28,25,235,22, +213,20,231,18,57,17,200,15,145,14,174,13,55,13,31,13,80,13,209,13,176,14,228,15,76,17,205,18,110,20,68,22, +80,24,127,26,212,28,110,31,73,34,34,37,182,39,241,41,174,43,149,44,97,44,25,43,218,40,145,37,32,33,164,27, +100,21,124,14,226,6,200,254,183,246,20,239,199,231,149,224,165,217,71,211,109,205,193,199,61,194,70,189,53,185,5,182, +131,179,181,177,209,176,239,176,243,177,224,179,238,182,50,187,110,192,94,198,8,205,117,212,120,220,213,228,116,237,49,246, +164,254,76,6,240,12,169,18,157,23,204,27,29,31,133,33,1,35,141,35,70,35,131,34,166,33,218,32,22,32,68,31, +77,30,14,29,103,27,75,25,184,22,162,19,18,16,84,12,214,8,177,5,154,2,114,255,164,252,167,250,99,249,122,248, +242,247,41,248,47,249,162,250,39,252,183,253,122,255,113,1,118,3,99,5,30,7,136,8,137,9,51,10,176,10,238,10, +152,10,104,9,118,7,8,5,76,2,84,255,63,252,55,249,72,246,90,243,92,240,88,237,86,234,75,231,70,228,124,225, +16,223,240,220,248,218,41,217,162,215,123,214,195,213,121,213,144,213,233,213,95,214,215,214,87,215,226,215,79,216,120,216, +146,216,23,217,61,218,192,219,104,221,97,223,230,225,199,228,163,231,111,234,101,237,127,240,86,243,151,245,80,247,184,248, +207,249,115,250,173,250,187,250,193,250,173,250,127,250,128,250,7,251,38,252,189,253,199,255,100,2,167,5,149,9,61,14, +163,19,147,25,180,31,202,37,189,43,115,49,201,54,164,59,227,63,83,67,197,69,45,71,123,71,132,70,48,68,157,64, +249,59,80,54,183,47,104,40,160,32,118,24,2,16,118,7,249,254,141,246,61,238,69,230,244,222,105,216,152,210,137,205, +124,201,190,198,111,197,124,197,218,198,142,201,128,205,121,210,79,216,242,222,61,230,220,237,128,245,13,253,123,4,168,11, +91,18,106,24,205,29,135,34,135,38,180,41,6,44,143,45,103,46,155,46,38,46,246,44,22,43,195,40,79,38,227,35, +121,33,255,30,115,28,221,25,88,23,5,21,242,18,17,17,85,15,196,13,121,12,131,11,203,10,35,10,134,9,25,9, +235,8,238,8,45,9,221,9,20,11,170,12,101,14,37,16,220,17,130,19,14,21,129,22,225,23,49,25,74,26,234,26, +228,26,46,26,191,24,126,22,113,19,204,15,210,11,167,7,94,3,9,255,205,250,202,246,235,242,245,238,195,234,98,230, +221,225,16,221,240,215,196,210,239,205,140,201,119,197,171,193,114,190,20,188,153,186,247,185,103,186,63,188,146,191,44,196, +203,201,53,208,45,215,125,222,246,229,80,237,44,244,66,250,126,255,233,3,138,7,82,10,50,12,62,13,178,13,181,13, +86,13,203,12,128,12,203,12,167,13,234,14,120,16,52,18,224,19,54,21,7,22,66,22,250,21,115,21,242,20,112,20, +170,19,169,18,224,17,168,17,211,17,17,18,122,18,104,19,230,20,151,22,19,24,42,25,227,25,81,26,103,26,245,25, +219,24,59,23,74,21,43,19,236,16,160,14,73,12,214,9,61,7,136,4,194,1,233,254,244,251,234,248,228,245,2,243, +93,240,2,238,240,235,27,234,116,232,7,231,240,229,57,229,199,228,129,228,124,228,249,228,29,230,192,231,136,233,54,235, +192,236,21,238,10,239,126,239,110,239,231,238,12,238,25,237,51,236,74,235,70,234,74,233,151,232,62,232,36,232,64,232, +173,232,115,233,91,234,26,235,147,235,232,235,51,236,98,236,103,236,94,236,105,236,128,236,144,236,179,236,53,237,76,238, +245,239,12,242,144,244,177,247,160,251,91,0,180,5,111,11,96,17,108,23,125,29,131,35,102,41,5,47,58,52,218,56, +196,60,238,63,79,66,196,67,27,68,70,67,91,65,103,62,90,58,28,53,167,46,10,39,111,30,22,21,60,11,14,1, +180,246,106,236,143,226,116,217,46,209,165,201,240,194,104,189,85,185,170,182,49,181,219,180,193,181,245,183,111,187,19,192, +197,197,86,204,122,211,236,218,153,226,134,234,137,242,79,250,168,1,162,8,53,15,40,21,77,26,175,30,97,34,85,37, +107,39,152,40,219,40,54,40,186,38,157,36,25,34,64,31,9,28,149,24,64,21,70,18,160,15,40,13,216,10,194,8, +5,7,183,5,220,4,91,4,29,4,39,4,130,4,35,5,240,5,216,6,220,7,14,9,124,10,47,12,58,14,177,16, +143,19,157,22,156,25,107,28,8,31,105,33,121,35,46,37,161,38,228,39,195,40,225,40,25,40,138,38,59,36,1,33, +223,28,51,24,87,19,86,14,34,9,229,3,235,254,64,250,139,245,113,240,254,234,118,229,212,223,217,217,150,211,143,205, +54,200,139,195,113,191,29,188,251,185,46,185,125,185,207,186,108,189,164,193,97,199,88,206,85,214,48,223,154,232,66,242, +246,251,130,5,149,14,225,22,65,30,183,36,79,42,252,46,148,50,8,53,122,54,15,55,219,54,21,54,40,53,88,52, +158,51,212,50,221,49,147,48,201,46,90,44,33,41,17,37,98,32,140,27,238,22,133,18,27,14,194,9,227,5,192,2, +27,0,171,253,174,251,173,250,198,250,137,251,134,252,158,253,215,254,41,0,114,1,144,2,120,3,47,4,183,4,31,5, +137,5,247,5,33,6,208,5,37,5,74,4,24,3,93,1,56,255,224,252,81,250,108,247,64,244,242,240,144,237,2,234, +56,230,71,226,97,222,165,218,10,215,138,211,79,208,160,205,178,203,139,202,5,202,239,201,43,202,161,202,38,203,150,203, +232,203,52,204,174,204,165,205,73,207,113,209,232,211,192,214,35,218,233,221,189,225,131,229,96,233,70,237,213,240,161,243, +140,245,184,246,54,247,235,246,222,245,92,244,159,242,159,240,93,238,44,236,118,234,103,233,252,232,66,233,93,234,109,236, +141,239,201,243,24,249,74,255,20,6,39,13,86,20,148,27,209,34,231,41,161,48,204,54,67,60,228,64,119,68,174,70, +79,71,96,70,15,68,122,64,171,59,181,53,188,46,232,38,103,30,94,21,232,11,27,2,26,248,30,238,120,228,112,219, +38,211,175,203,63,197,39,192,141,188,105,186,183,185,125,186,152,188,213,191,49,196,218,201,216,208,223,216,145,225,187,234, +67,244,237,253,104,7,121,16,11,25,0,33,46,40,123,46,228,51,100,56,235,59,118,62,7,64,152,64,44,64,243,62, +62,61,70,59,14,57,125,54,145,51,99,48,19,45,162,41,5,38,73,34,142,30,235,26,112,23,49,20,67,17,181,14, +162,12,41,11,69,10,217,9,235,9,170,10,27,12,240,13,204,15,157,17,143,19,177,21,210,23,202,25,190,27,229,29, +52,32,111,34,115,36,61,38,177,39,147,40,189,40,40,40,205,38,128,36,6,33,69,28,77,22,62,15,60,7,134,254, +132,245,159,236,36,228,87,220,99,213,56,207,167,201,173,196,101,192,195,188,165,185,20,183,61,181,48,180,211,179,16,180, +238,180,126,182,191,184,173,187,107,191,54,196,38,202,10,209,170,216,246,224,233,233,83,243,232,252,88,6,89,15,153,23, +191,30,137,36,243,40,26,44,253,45,125,46,170,45,219,43,103,41,142,38,168,35,20,33,228,30,239,28,31,27,115,25, +201,23,224,21,148,19,245,16,36,14,56,11,57,8,37,5,3,2,227,254,238,251,95,249,94,247,213,245,164,244,230,243, +216,243,114,244,90,245,79,246,108,247,247,248,244,250,9,253,202,254,23,0,10,1,178,1,8,2,26,2,243,1,125,1, +167,0,139,255,75,254,225,252,71,251,137,249,168,247,145,245,77,243,8,241,206,238,114,236,206,233,255,230,70,228,193,225, +84,223,235,220,174,218,232,216,192,215,41,215,249,214,15,215,84,215,173,215,1,216,75,216,159,216,3,217,116,217,13,218, +11,219,134,220,94,222,124,224,247,226,221,229,8,233,77,236,169,239,28,243,116,246,93,249,158,251,62,253,98,254,31,255, +128,255,178,255,244,255,85,0,173,0,249,0,134,1,175,2,122,4,185,6,95,9,151,12,138,16,72,21,200,26,212,32, +251,38,208,44,50,50,58,55,221,59,214,63,220,66,203,68,153,69,79,69,246,67,123,65,181,61,153,56,96,50,94,43, +187,35,117,27,164,18,152,9,169,0,7,248,185,239,182,231,252,223,157,216,198,209,172,203,115,198,41,194,236,190,237,188, +102,188,122,189,28,192,30,196,73,201,118,207,123,214,48,222,107,230,237,238,106,247,178,255,191,7,134,15,211,22,111,29, +61,35,43,40,41,44,51,47,90,49,174,50,69,51,59,51,161,50,106,49,131,47,254,44,28,42,38,39,62,36,82,33, +81,30,68,27,59,24,63,21,113,18,11,16,28,14,119,12,242,10,157,9,156,8,239,7,116,7,29,7,7,7,81,7, +249,7,236,8,33,10,136,11,239,12,44,14,91,15,183,16,71,18,222,19,101,21,239,22,138,24,19,26,86,27,43,28, +120,28,28,28,224,26,154,24,67,21,233,16,147,11,71,5,64,254,229,246,123,239,0,232,129,224,105,217,56,211,11,206, +165,201,239,197,7,195,233,192,66,191,212,189,208,188,150,188,45,189,57,190,136,191,95,193,10,196,96,199,14,203,41,207, +11,212,184,217,211,223,38,230,210,236,233,243,44,251,69,2,11,9,105,15,23,21,181,25,38,29,167,31,118,33,122,34, +124,34,140,33,12,32,103,30,221,28,143,27,153,26,20,26,2,26,63,26,151,26,237,26,58,27,102,27,73,27,216,26, +70,26,206,25,98,25,165,24,100,23,239,21,178,20,155,19,57,18,132,16,239,14,194,13,193,12,159,11,103,10,85,9, +142,8,15,8,171,7,42,7,109,6,122,5,102,4,58,3,233,1,69,0,27,254,129,251,215,248,101,246,36,244,3,242, +44,240,204,238,196,237,204,236,206,235,236,234,44,234,99,233,126,232,164,231,241,230,74,230,135,229,187,228,36,228,233,227, +255,227,67,228,156,228,250,228,75,229,135,229,186,229,230,229,233,229,178,229,124,229,146,229,229,229,48,230,122,230,19,231, +1,232,244,232,204,233,190,234,227,235,247,236,186,237,76,238,250,238,216,239,197,240,199,241,35,243,255,244,33,247,85,249, +205,251,234,254,179,2,222,6,51,11,174,15,81,20,26,25,21,30,67,35,113,40,66,45,123,49,44,53,115,56,63,59, +88,61,141,62,188,62,205,61,187,59,144,56,61,52,168,46,230,39,67,32,5,24,75,15,30,6,148,252,221,242,79,233, +64,224,213,215,16,208,11,201,13,195,83,190,230,186,167,184,123,183,110,183,160,184,29,187,204,190,141,195,64,201,177,207, +158,214,223,221,115,229,68,237,18,245,151,252,186,3,132,10,231,16,175,22,179,27,247,31,137,35,89,38,80,40,108,41, +191,41,101,41,138,40,81,39,192,37,203,35,136,33,50,31,4,29,18,27,74,25,138,23,194,21,4,20,117,18,41,17, +19,16,17,15,23,14,68,13,193,12,140,12,137,12,194,12,86,13,73,14,118,15,201,16,77,18,7,20,230,21,206,23, +167,25,103,27,13,29,152,30,255,31,40,33,248,33,96,34,110,34,35,34,81,33,189,31,86,29,47,26,78,22,187,17, +170,12,97,7,3,2,154,252,68,247,38,242,62,237,104,232,150,227,224,222,86,218,209,213,43,209,160,204,173,200,151,197, +49,195,82,193,40,192,253,191,205,192,102,194,228,196,178,200,4,206,139,212,202,219,133,227,184,235,70,244,253,252,184,5, +74,14,91,22,147,29,190,35,211,40,225,44,246,47,12,50,15,51,10,51,58,50,229,48,77,47,201,45,170,44,240,43, +88,43,180,42,243,41,244,40,112,39,51,37,67,34,219,30,69,27,160,23,213,19,214,15,215,11,51,8,14,5,70,2, +203,255,230,253,233,252,180,252,203,252,206,252,209,252,33,253,223,253,217,254,185,255,75,0,148,0,176,0,173,0,143,0, +78,0,185,255,142,254,204,252,170,250,77,248,177,245,232,242,37,240,133,237,249,234,122,232,12,230,156,227,19,225,138,222, +54,220,35,218,35,216,19,214,26,212,136,210,143,209,19,209,224,208,233,208,64,209,219,209,149,210,88,211,34,212,231,212, +164,213,130,214,186,215,73,217,253,218,208,220,227,222,52,225,135,227,204,229,50,232,193,234,28,237,221,238,240,239,113,240, +103,240,218,239,254,238,33,238,108,237,205,236,37,236,160,235,188,235,214,236,219,238,125,241,160,244,93,248,199,252,223,1, +163,7,238,13,110,20,218,26,23,33,28,39,203,44,11,50,211,54,9,59,126,62,14,65,160,66,15,67,46,66,247,63, +132,60,245,55,91,50,198,43,78,36,25,28,92,19,84,10,46,1,1,248,233,238,36,230,11,222,222,214,169,208,97,203, +29,199,28,196,153,194,166,194,38,196,222,198,150,202,51,207,180,212,28,219,84,226,30,234,39,242,52,250,39,2,229,9, +58,17,1,24,65,30,7,36,49,41,136,45,243,48,131,51,87,53,141,54,51,55,57,55,132,54,23,53,29,51,217,48, +135,46,54,44,202,41,39,39,96,36,153,33,227,30,68,28,208,25,155,23,181,21,43,20,7,19,54,18,141,17,246,16, +129,16,80,16,132,16,35,17,13,18,12,19,242,19,164,20,38,21,150,21,23,22,174,22,88,23,39,24,46,25,75,26, +65,27,236,27,64,28,13,28,10,27,21,25,60,22,138,18,240,13,111,8,75,2,240,251,149,245,46,239,198,232,181,226, +66,221,75,216,158,211,91,207,183,203,122,200,52,197,236,193,36,191,40,189,179,187,116,186,149,185,143,185,156,186,157,188, +127,191,117,195,156,200,180,206,101,213,153,220,103,228,182,236,54,245,158,253,192,5,99,13,45,20,212,25,87,30,226,33, +124,36,248,37,65,38,148,37,84,36,212,34,89,33,33,32,75,31,190,30,72,30,190,29,2,29,4,28,176,26,215,24, +82,22,76,19,47,16,40,13,1,10,155,6,81,3,160,0,163,254,23,253,213,251,6,251,222,250,77,251,4,252,183,252, +93,253,27,254,10,255,12,0,236,0,138,1,233,1,35,2,84,2,134,2,138,2,13,2,234,0,82,255,144,253,183,251, +182,249,149,247,113,245,80,243,27,241,201,238,100,236,247,233,134,231,19,229,166,226,85,224,63,222,115,220,243,218,207,217, +42,217,20,217,110,217,15,218,224,218,213,219,209,220,176,221,88,222,180,222,193,222,181,222,228,222,105,223,23,224,225,224, +1,226,165,227,160,229,174,231,201,233,17,236,108,238,134,240,38,242,103,243,139,244,164,245,152,246,104,247,78,248,115,249, +183,250,252,251,120,253,138,255,70,2,113,5,219,8,156,12,223,16,183,21,19,27,210,32,183,38,120,44,223,49,225,54, +120,59,133,63,206,66,17,69,39,70,14,70,207,68,80,66,109,62,45,57,200,50,116,43,88,35,158,26,124,17,34,8, +187,254,136,245,195,236,130,228,197,220,162,213,89,207,57,202,100,198,185,195,15,194,123,193,55,194,92,196,195,199,56,204, +147,209,177,215,101,222,137,229,250,236,148,244,42,252,144,3,169,10,92,17,130,23,245,28,170,33,160,37,185,40,219,42, +30,44,186,44,200,44,74,44,80,43,236,41,13,40,161,37,199,34,208,31,241,28,35,26,66,23,72,20,88,17,153,14, +19,12,201,9,200,7,28,6,216,4,23,4,224,3,12,4,118,4,49,5,96,6,238,7,147,9,40,11,201,12,159,14, +151,16,111,18,12,20,146,21,24,23,122,24,154,25,150,26,127,27,43,28,124,28,130,28,49,28,53,27,82,25,154,22, +44,19,246,14,224,9,27,4,4,254,214,247,160,241,132,235,207,229,165,224,217,219,55,215,198,210,155,206,159,202,189,198, +43,195,58,192,5,190,113,188,112,187,35,187,173,187,9,189,50,191,92,194,213,198,142,204,32,211,69,218,5,226,84,234, +228,242,97,251,153,3,83,11,67,18,46,24,9,29,230,32,213,35,201,37,174,38,160,38,239,37,230,36,182,35,142,34, +164,33,21,33,218,32,213,32,200,32,103,32,141,31,60,30,122,28,76,26,217,23,94,21,249,18,147,16,28,14,194,11, +216,9,127,8,144,7,229,6,157,6,227,6,162,7,137,8,88,9,21,10,232,10,205,11,134,12,220,12,220,12,166,12, +50,12,109,11,90,10,234,8,242,6,105,4,139,1,137,254,96,251,9,248,175,244,144,241,194,238,45,236,191,233,135,231, +160,229,252,227,106,226,218,224,111,223,77,222,110,221,196,220,107,220,139,220,35,221,253,221,223,222,177,223,91,224,186,224, +190,224,129,224,36,224,194,223,140,223,185,223,68,224,250,224,191,225,167,226,186,227,231,228,37,230,131,231,248,232,88,234, +109,235,32,236,135,236,203,236,8,237,77,237,185,237,113,238,139,239,12,241,5,243,148,245,192,248,122,252,172,0,66,5, +52,10,145,15,105,21,159,27,216,33,184,39,32,45,21,50,131,54,57,58,44,61,115,63,248,64,120,65,212,64,32,63, +93,60,90,56,1,51,144,44,87,37,126,29,21,21,68,12,74,3,86,250,134,241,253,232,225,224,77,217,98,210,95,204, +138,199,248,195,137,193,53,192,53,192,196,193,199,196,231,200,224,205,150,211,243,217,222,224,70,232,11,240,223,247,99,255, +115,6,32,13,87,19,199,24,54,29,203,32,196,35,31,38,172,39,104,40,127,40,16,40,29,39,161,37,168,35,83,33, +213,30,84,28,225,25,130,23,67,21,42,19,44,17,64,15,101,13,166,11,29,10,229,8,6,8,131,7,128,7,23,8, +25,9,52,10,84,11,161,12,52,14,245,15,207,17,208,19,1,22,62,24,76,26,13,28,140,29,219,30,250,31,241,32, +207,33,146,34,19,35,33,35,146,34,81,33,99,31,215,28,168,25,197,21,62,17,58,12,209,6,25,1,90,251,243,245, +252,240,68,236,167,231,53,227,244,222,181,218,72,214,208,209,187,205,84,202,136,199,50,197,120,195,155,194,134,194,244,194, +250,195,25,198,172,201,135,206,78,212,218,218,27,226,231,233,254,241,48,250,79,2,19,10,43,17,98,23,180,28,57,33, +230,36,140,39,9,41,113,41,245,40,213,39,113,38,48,37,79,36,212,35,176,35,186,35,146,35,205,34,61,33,247,30, +37,28,246,24,164,21,93,18,38,15,231,11,171,8,169,5,16,3,219,0,3,255,185,253,55,253,114,253,28,254,230,254, +174,255,126,0,117,1,143,2,159,3,121,4,30,5,143,5,191,5,172,5,98,5,200,4,168,3,249,1,234,255,153,253, +2,251,52,248,101,245,188,242,38,240,139,237,239,234,98,232,223,229,101,227,5,225,198,222,138,220,57,218,237,215,239,213, +124,212,168,211,90,211,102,211,171,211,28,212,161,212,24,213,106,213,152,213,185,213,4,214,182,214,210,215,36,217,146,218, +55,220,23,222,2,224,216,225,185,227,211,229,18,232,33,234,196,235,8,237,20,238,225,238,97,239,191,239,70,240,17,241, +10,242,45,243,167,244,161,246,18,249,211,251,212,254,53,2,29,6,150,10,154,15,31,21,254,26,228,32,138,38,212,43, +190,48,59,53,60,57,174,60,120,63,122,65,146,66,155,66,110,65,249,62,72,59,118,54,160,48,225,41,87,34,44,26, +151,17,210,8,23,0,152,247,103,239,128,231,0,224,68,217,167,211,49,207,194,203,102,201,95,200,221,200,197,202,210,205, +207,209,164,214,69,220,158,226,153,233,22,241,230,248,196,0,113,8,189,15,125,22,143,28,225,33,110,38,37,42,232,44, +182,46,160,47,172,47,220,46,87,45,92,43,13,41,108,38,148,35,195,32,38,30,182,27,88,25,9,23,213,20,189,18, +187,16,219,14,46,13,174,11,78,10,41,9,125,8,91,8,145,8,240,8,133,9,109,10,166,11,30,13,221,14,245,16, +92,19,220,21,47,24,41,26,210,27,69,29,141,30,161,31,119,32,9,33,77,33,39,33,111,32,6,31,237,28,57,26, +240,22,7,19,124,14,88,9,171,3,160,253,143,247,195,241,65,236,226,230,160,225,153,220,182,215,169,210,99,205,73,200, +211,195,28,192,4,189,136,186,214,184,7,184,0,184,165,184,25,186,181,188,171,192,210,197,223,203,168,210,28,218,25,226, +105,234,214,242,43,251,35,3,113,10,215,16,73,22,233,26,190,30,139,33,27,35,128,35,252,34,205,33,68,32,207,30, +188,29,18,29,177,28,118,28,59,28,190,27,184,26,0,25,183,22,51,20,190,17,100,15,12,13,167,10,79,8,53,6, +116,4,2,3,228,1,90,1,156,1,136,2,189,3,234,4,252,5,6,7,30,8,66,9,70,10,251,10,75,11,55,11, +204,10,39,10,75,9,13,8,76,6,23,4,153,1,225,254,243,251,237,248,3,246,84,243,222,240,145,238,106,236,98,234, +98,232,89,230,92,228,128,226,172,224,196,222,241,220,133,219,164,218,51,218,19,218,61,218,167,218,45,219,171,219,14,220, +75,220,76,220,21,220,239,219,56,220,2,221,9,222,33,223,107,224,4,226,194,227,122,229,78,231,128,233,251,235,77,238, +39,240,155,241,211,242,196,243,92,244,212,244,123,245,81,246,26,247,222,247,2,249,205,250,36,253,218,255,246,2,142,6, +156,10,40,15,80,20,255,25,220,31,162,37,72,43,194,48,204,53,39,58,201,61,184,64,219,66,15,68,77,68,144,67, +173,65,109,62,207,57,14,52,100,45,222,37,136,29,159,20,117,11,66,2,29,249,23,240,89,231,32,223,171,215,38,209, +164,203,45,199,206,195,170,193,247,192,219,193,71,196,5,200,212,204,115,210,181,216,152,223,41,231,74,239,167,247,243,255, +245,7,119,15,62,22,34,28,34,33,69,37,125,40,183,42,240,43,56,44,161,43,64,42,70,40,234,37,65,35,76,32, +50,29,59,26,150,23,50,21,229,18,170,16,156,14,205,12,52,11,195,9,125,8,107,7,143,6,244,5,180,5,223,5, +107,6,60,7,58,8,81,9,121,10,203,11,121,13,143,15,213,17,248,19,219,21,139,23,0,25,35,26,10,27,228,27, +179,28,75,29,154,29,169,29,90,29,122,28,1,27,8,25,139,22,106,19,148,15,37,11,80,6,51,1,220,251,117,246, +71,241,93,236,106,231,49,226,221,220,175,215,161,210,154,205,219,200,218,196,190,193,74,191,75,189,241,187,132,187,2,188, +70,189,129,191,25,195,8,200,219,205,69,212,82,219,1,227,17,235,62,243,95,251,67,3,159,10,39,17,184,22,110,27, +115,31,174,34,215,36,225,37,22,38,190,37,5,37,63,36,221,35,1,36,99,36,167,36,156,36,35,36,22,35,95,33, +0,31,26,28,234,24,182,21,156,18,115,15,22,12,181,8,192,5,122,3,215,1,185,0,60,0,139,0,133,1,183,2, +191,3,165,4,179,5,4,7,88,8,83,9,220,9,11,10,242,9,160,9,47,9,156,8,166,7,20,6,3,4,193,1, +109,255,1,253,156,250,115,248,126,246,132,244,102,242,39,240,200,237,60,235,142,232,221,229,70,227,206,224,114,222,69,220, +113,218,30,217,79,216,242,215,241,215,41,216,101,216,120,216,92,216,33,216,217,215,157,215,162,215,20,216,227,216,206,217, +181,218,199,219,51,221,236,222,215,224,2,227,116,229,227,231,230,233,93,235,117,236,96,237,49,238,240,238,178,239,133,240, +99,241,75,242,111,243,30,245,118,247,101,250,223,253,245,1,158,6,182,11,41,17,251,22,19,29,49,35,10,41,104,46, +48,51,97,55,12,59,43,62,135,64,228,65,52,66,145,65,227,63,229,60,124,56,236,50,142,44,125,37,182,29,75,21, +109,12,85,3,50,250,42,241,94,232,5,224,105,216,196,209,53,204,198,199,125,196,112,194,207,193,195,194,69,197,34,201, +25,206,231,211,89,218,85,225,207,232,169,240,160,248,100,0,181,7,128,14,200,20,116,26,83,31,81,35,132,38,246,40, +152,42,93,43,88,43,170,42,120,41,216,39,205,37,98,35,198,32,44,30,171,27,70,25,1,23,209,20,167,18,131,16, +125,14,174,12,31,11,209,9,211,8,72,8,69,8,179,8,94,9,45,10,46,11,107,12,216,13,102,15,28,17,6,19, +30,21,61,23,45,25,217,26,87,28,193,29,19,31,61,32,54,33,253,33,127,34,150,34,30,34,253,32,40,31,137,28, +26,25,4,21,135,16,164,11,61,6,126,0,225,250,161,245,124,240,36,235,164,229,54,224,231,218,156,213,96,208,127,203, +81,199,237,195,43,193,246,190,135,189,31,189,173,189,253,190,37,193,125,196,32,201,200,206,41,213,49,220,212,227,206,235, +200,243,148,251,31,3,44,10,93,16,145,21,250,25,191,29,178,32,149,34,110,35,116,35,211,34,191,33,140,32,155,31, +35,31,27,31,61,31,61,31,227,30,253,29,89,28,233,25,230,22,173,19,129,16,113,13,90,10,39,7,22,4,149,1, +198,255,120,254,161,253,139,253,100,254,235,255,173,1,95,3,248,4,139,6,33,8,161,9,211,10,137,11,190,11,156,11, +89,11,253,10,71,10,248,8,24,7,221,4,93,2,137,255,116,252,104,249,162,246,18,244,135,241,242,238,90,236,170,233, +198,230,201,227,236,224,63,222,170,219,46,217,252,214,73,213,34,212,117,211,42,211,69,211,198,211,130,212,46,213,164,213, +229,213,253,213,16,214,110,214,74,215,116,216,153,217,177,218,254,219,160,221,109,223,61,225,37,227,68,229,112,231,88,233, +207,234,229,235,182,236,72,237,171,237,5,238,130,238,55,239,31,240,69,241,213,242,255,244,205,247,44,251,15,255,118,3, +99,8,214,13,194,19,236,25,251,31,189,37,50,43,88,48,16,53,70,57,245,60,255,63,56,66,138,67,241,67,77,67, +101,65,45,62,219,57,172,52,159,46,149,39,156,31,1,23,34,14,47,5,47,252,38,243,81,234,26,226,196,218,87,212, +221,206,136,202,145,199,10,198,243,197,81,199,22,202,17,206,3,211,201,216,87,223,158,230,100,238,82,246,24,254,150,5, +189,12,107,19,104,25,141,30,215,34,82,38,253,40,210,42,208,43,1,44,130,43,122,42,255,40,9,39,152,36,211,33, +250,30,61,28,180,25,95,23,52,21,42,19,62,17,121,15,228,13,137,12,108,11,147,10,8,10,216,9,255,9,101,10, +251,10,194,11,187,12,215,13,19,15,126,16,46,18,17,20,247,21,188,23,108,25,34,27,216,28,120,30,245,31,61,33, +43,34,161,34,153,34,252,33,150,32,64,30,14,27,38,23,142,18,59,13,72,7,254,0,172,250,138,244,198,238,125,233, +153,228,224,223,65,219,227,214,211,210,229,206,5,203,116,199,140,196,85,194,138,192,9,191,27,190,24,190,244,190,107,192, +157,194,253,197,182,202,113,208,213,214,217,221,111,229,71,237,253,244,97,252,93,3,187,9,43,15,128,19,212,22,74,25, +204,26,50,27,149,26,66,25,134,23,171,21,28,20,60,19,38,19,171,19,123,20,74,21,225,21,30,22,229,21,25,21, +182,19,237,17,12,16,49,14,57,12,4,10,214,7,45,6,60,5,205,4,179,4,22,5,52,6,247,7,252,9,237,11, +192,13,146,15,78,17,173,18,129,19,222,19,206,19,56,19,30,18,186,16,28,15,0,13,42,10,204,6,65,3,173,255, +15,252,130,248,63,245,97,242,225,239,177,237,198,235,10,234,98,232,189,230,28,229,136,227,17,226,198,224,179,223,234,222, +133,222,136,222,211,222,57,223,143,223,174,223,130,223,35,223,176,222,26,222,83,221,163,220,111,220,195,220,86,221,16,222, +32,223,159,224,100,226,69,228,63,230,80,232,79,234,2,236,78,237,69,238,3,239,150,239,14,240,156,240,96,241,70,242, +68,243,156,244,157,246,68,249,81,252,185,255,165,3,35,8,18,13,88,18,250,23,244,29,15,36,243,41,95,47,59,52, +137,56,79,60,125,63,230,65,92,67,220,67,120,67,17,66,85,63,36,59,189,53,111,47,85,40,104,32,186,23,141,14, +62,5,18,252,20,243,67,234,211,225,10,218,18,211,254,204,234,199,251,195,79,193,24,192,126,192,109,194,158,197,217,201, +6,207,9,213,190,219,17,227,240,234,40,243,103,251,104,3,6,11,37,18,157,24,63,30,238,34,158,38,75,41,255,42, +217,43,244,43,87,43,12,42,46,40,220,37,36,35,25,32,236,28,214,25,250,22,83,20,204,17,88,15,10,13,6,11, +97,9,20,8,18,7,93,6,4,6,10,6,83,6,190,6,72,7,6,8,255,8,31,10,87,11,181,12,75,14,11,16, +196,17,76,19,175,20,21,22,147,23,32,25,186,26,90,28,211,29,230,30,139,31,207,31,141,31,118,30,118,28,183,25, +76,22,6,18,205,12,237,6,225,0,230,250,236,244,10,239,146,233,163,228,0,224,130,219,89,215,164,211,48,208,210,204, +187,201,63,199,95,197,217,195,147,194,211,193,248,193,0,195,172,196,250,198,60,202,144,206,176,211,100,217,200,223,247,230, +178,238,137,246,33,254,75,5,231,11,200,17,189,22,178,26,180,29,194,31,199,32,207,32,43,32,69,31,114,30,237,29, +217,29,55,30,232,30,179,31,84,32,165,32,165,32,72,32,102,31,227,29,234,27,188,25,112,23,238,20,59,18,163,15, +133,13,251,11,219,10,17,10,204,9,51,10,18,11,6,12,218,12,167,13,135,14,90,15,216,15,224,15,133,15,225,14, +238,13,169,12,26,11,47,9,189,6,188,3,105,0,2,253,145,249,25,246,203,242,230,239,109,237,54,235,40,233,75,231, +149,229,228,227,37,226,113,224,237,222,166,221,152,220,197,219,57,219,253,218,8,219,61,219,120,219,154,219,138,219,68,219, +217,218,82,218,170,217,252,216,150,216,186,216,80,217,28,218,30,219,151,220,158,222,4,225,150,227,79,230,43,233,242,235, +91,238,67,240,183,241,200,242,116,243,193,243,223,243,15,244,104,244,219,244,133,245,190,246,185,248,86,251,97,254,224,1, +248,5,186,10,19,16,226,21,247,27,26,34,21,40,184,45,224,50,116,55,92,59,122,62,167,64,190,65,173,65,119,64, +33,62,148,58,185,53,167,47,160,40,225,32,136,24,163,15,95,6,11,253,249,243,73,235,233,226,220,218,100,211,222,204, +137,199,119,195,161,192,15,191,230,190,61,192,251,194,233,198,222,203,197,209,134,216,0,224,4,232,67,240,102,248,59,0, +178,7,189,14,51,21,237,26,228,31,36,36,167,39,78,42,12,44,255,44,75,45,244,44,244,43,84,42,40,40,129,37, +129,34,101,31,104,28,171,25,46,23,218,20,149,18,85,16,45,14,67,12,187,10,145,9,176,8,22,8,223,7,10,8, +110,8,235,8,149,9,156,10,18,12,216,13,194,15,192,17,205,19,219,21,214,23,198,25,182,27,150,29,76,31,211,32, +38,34,41,35,203,35,4,36,195,35,230,34,84,33,0,31,218,27,227,23,66,19,45,14,202,8,55,3,162,253,59,248, +0,243,190,237,92,232,7,227,235,221,247,216,10,212,73,207,1,203,86,199,73,196,230,193,85,192,194,191,46,192,112,193, +119,195,128,198,211,202,81,208,142,214,64,221,81,228,162,235,10,243,111,250,184,1,169,8,0,15,165,20,160,25,243,29, +121,33,255,35,114,37,254,37,226,37,87,37,158,36,0,36,177,35,170,35,184,35,167,35,75,35,115,34,240,32,179,30, +218,27,160,24,59,21,203,17,83,14,207,10,100,7,101,4,11,2,68,0,237,254,28,254,5,254,179,254,230,255,70,1, +161,2,251,3,104,5,214,6,21,8,6,9,177,9,35,10,95,10,100,10,23,10,66,9,195,7,184,5,93,3,208,0, +11,254,33,251,63,248,116,245,170,242,217,239,21,237,98,234,170,231,241,228,84,226,210,223,61,221,128,218,202,215,104,213, +137,211,36,210,26,209,91,208,231,207,176,207,140,207,87,207,14,207,193,206,124,206,91,206,139,206,39,207,27,208,82,209, +219,210,196,212,238,214,57,217,193,219,165,222,180,225,151,228,42,231,117,233,111,235,4,237,67,238,99,239,144,240,204,241, +5,243,85,244,8,246,73,248,244,250,232,253,73,1,69,5,211,9,233,14,146,20,178,26,244,32,15,39,231,44,113,50, +144,55,29,60,244,63,245,66,7,69,12,70,242,69,180,68,64,66,120,62,106,57,94,51,144,44,14,37,242,28,118,20, +220,11,83,3,3,251,248,242,52,235,216,227,48,221,132,215,253,210,169,207,131,205,143,204,236,204,181,206,207,209,251,213, +248,218,151,224,186,230,92,237,108,244,167,251,187,2,140,9,44,16,164,22,182,28,5,34,96,38,214,41,131,44,97,46, +103,47,165,47,54,47,49,46,167,44,140,42,197,39,106,36,217,32,114,29,89,26,129,23,218,20,89,18,254,15,220,13, +15,12,170,10,170,9,253,8,157,8,157,8,5,9,179,9,122,10,88,11,105,12,187,13,69,15,251,16,211,18,201,20, +206,22,202,24,172,26,125,28,75,30,3,32,131,33,179,34,126,35,191,35,84,35,51,34,86,32,162,29,244,25,91,21, +31,16,142,10,191,4,167,254,113,248,129,242,17,237,244,231,213,226,186,221,246,216,173,212,156,208,138,204,168,200,74,197, +115,194,229,191,167,189,16,188,110,187,186,187,205,188,168,190,122,193,97,197,79,202,34,208,180,214,205,221,45,229,170,236, +36,244,99,251,31,2,33,8,83,13,193,17,109,21,49,24,212,25,88,26,1,26,16,25,183,23,82,22,79,21,221,20, +219,20,21,21,96,21,139,21,110,21,237,20,250,19,151,18,232,16,23,15,44,13,8,11,175,8,109,6,160,4,90,3, +107,2,200,1,183,1,109,2,201,3,110,5,34,7,236,8,227,10,228,12,134,14,120,15,197,15,166,15,57,15,146,14, +204,13,224,12,152,11,219,9,194,7,96,5,170,2,173,255,160,252,168,249,201,246,6,244,111,241,6,239,172,236,60,234, +195,231,105,229,66,227,57,225,76,223,162,221,117,220,226,219,216,219,52,220,222,220,200,221,213,222,225,223,220,224,186,225, +96,226,196,226,8,227,73,227,109,227,99,227,81,227,111,227,202,227,81,228,255,228,217,229,209,230,200,231,167,232,120,233, +71,234,0,235,129,235,208,235,25,236,124,236,243,236,123,237,60,238,119,239,75,241,175,243,168,246,93,250,215,254,239,3, +140,9,185,15,90,22,26,29,196,35,93,42,210,48,214,54,41,60,178,64,102,68,55,71,20,73,228,73,138,73,245,71, +41,69,60,65,54,60,12,54,184,46,99,38,91,29,217,19,250,9,233,255,232,245,70,236,75,227,33,219,209,211,104,205, +24,200,25,196,120,193,38,192,33,192,113,193,33,196,36,200,77,205,95,211,52,218,172,225,140,233,134,241,107,249,43,1, +166,8,160,15,237,21,133,27,111,32,153,36,222,39,44,42,151,43,46,44,240,43,235,42,62,41,7,39,109,36,153,33, +147,30,69,27,198,23,107,20,116,17,225,14,162,12,185,10,39,9,225,7,228,6,61,6,250,5,30,6,157,6,100,7, +108,8,178,9,34,11,158,12,32,14,177,15,89,17,18,19,203,20,110,22,229,23,39,25,60,26,45,27,245,27,120,28, +152,28,72,28,153,27,155,26,58,25,72,23,175,20,130,17,207,13,129,9,137,4,16,255,96,249,167,243,242,237,105,232, +87,227,237,222,14,219,122,215,39,212,68,209,214,206,161,204,134,202,188,200,131,199,201,198,92,198,64,198,179,198,230,199, +199,201,51,204,57,207,13,211,188,215,30,221,9,227,90,233,214,239,55,246,96,252,68,2,181,7,119,12,107,16,143,19, +255,21,212,23,254,24,77,25,203,24,200,23,139,22,57,21,23,20,143,19,209,19,170,20,203,21,248,22,6,24,201,24, +22,25,217,24,41,24,67,23,83,22,73,21,240,19,84,18,221,16,244,15,137,15,64,15,6,15,49,15,5,16,76,17, +134,18,100,19,250,19,133,20,251,20,243,20,21,20,129,18,154,16,153,14,137,12,104,10,43,8,182,5,3,3,34,0, +31,253,242,249,162,246,88,243,60,240,86,237,167,234,59,232,29,230,52,228,85,226,132,224,245,222,190,221,182,220,178,219, +202,218,76,218,117,218,60,219,100,220,186,221,40,223,146,224,201,225,174,226,56,227,102,227,83,227,75,227,127,227,210,227, +29,228,136,228,85,229,132,230,225,231,81,233,225,234,143,236,31,238,66,239,223,239,25,240,17,240,192,239,41,239,137,238, +48,238,61,238,179,238,174,239,99,241,238,243,66,247,84,251,40,0,175,5,201,11,97,18,98,25,126,32,69,39,114,45, +6,51,1,56,64,60,163,63,34,66,175,67,50,68,163,67,9,66,81,63,91,59,38,54,227,47,194,40,206,32,0,24, +114,14,111,4,82,250,90,240,158,230,40,221,33,212,216,203,148,196,126,190,172,185,60,182,74,180,232,179,32,181,235,183, +40,188,153,193,5,200,67,207,61,215,209,223,192,232,188,241,145,250,43,3,113,11,30,19,230,25,182,31,177,36,230,40, +49,44,112,46,175,47,7,48,138,47,71,46,85,44,186,41,123,38,200,34,3,31,114,27,26,24,223,20,197,17,247,14, +146,12,141,10,204,8,79,7,44,6,112,5,24,5,24,5,90,5,215,5,159,6,203,7,78,9,2,11,211,12,213,14, +33,17,167,19,38,22,100,24,98,26,73,28,38,30,223,31,94,33,175,34,227,35,252,36,214,37,46,38,215,37,210,36, +31,35,150,32,22,29,182,24,144,19,152,13,216,6,158,255,69,248,244,240,192,233,233,226,215,220,205,215,179,211,69,208, +105,205,43,203,105,201,230,199,160,198,217,197,182,197,8,198,163,198,176,199,127,201,37,204,112,207,58,211,171,215,254,220, +46,227,252,233,61,241,228,248,225,0,8,9,37,17,249,24,44,32,93,38,74,43,229,46,75,49,151,50,197,50,215,49, +252,47,143,45,230,42,78,40,8,38,54,36,199,34,151,33,139,32,135,31,92,30,211,28,195,26,37,24,28,21,220,17, +118,14,207,10,243,6,78,3,94,0,55,254,136,252,21,251,7,250,177,249,30,250,248,250,219,251,192,252,239,253,138,255, +73,1,191,2,181,3,48,4,65,4,2,4,146,3,235,2,219,1,83,0,139,254,185,252,212,250,189,248,131,246,71,244, +6,242,161,239,4,237,40,234,255,230,136,227,227,223,62,220,173,216,50,213,221,209,224,206,126,204,233,202,36,202,9,202, +98,202,254,202,189,203,140,204,103,205,65,206,255,206,154,207,75,208,86,209,192,210,91,212,48,214,132,216,118,219,204,222, +70,226,231,229,184,233,131,237,225,240,149,243,171,245,75,247,142,248,127,249,76,250,51,251,61,252,61,253,41,254,81,255, +18,1,129,3,119,6,221,9,175,13,245,17,193,22,28,28,218,33,149,39,232,44,161,49,173,53,251,56,104,59,207,60, +27,61,74,60,103,58,118,55,103,51,52,46,253,39,2,33,119,25,111,17,252,8,82,0,189,247,145,239,24,232,109,225, +118,219,30,214,133,209,232,205,104,203,255,201,154,201,62,202,5,204,6,207,51,211,87,216,45,222,132,228,61,235,69,242, +138,249,228,0,31,8,8,15,131,21,121,27,202,32,87,37,23,41,17,44,56,46,113,47,192,47,85,47,95,46,245,44, +62,43,116,41,162,39,140,37,13,35,93,32,217,29,170,27,198,25,25,24,148,22,44,21,224,19,181,18,184,17,247,16, +124,16,66,16,65,16,126,16,252,16,177,17,150,18,180,19,11,21,137,22,26,24,186,25,104,27,15,29,133,30,171,31, +126,32,11,33,91,33,124,33,136,33,116,33,4,33,13,32,159,30,199,28,79,26,252,22,201,18,204,13,248,7,62,1, +223,249,90,242,5,235,220,227,223,220,110,214,251,208,125,204,139,200,19,197,121,194,223,192,223,191,45,191,9,191,200,191, +62,193,2,195,12,197,168,199,243,202,174,206,169,210,19,215,61,220,34,226,110,232,249,238,225,245,52,253,176,4,237,11, +167,18,183,24,243,29,46,34,81,37,91,39,77,40,22,40,180,38,91,36,94,33,0,30,127,26,49,23,118,20,115,18, +0,17,204,15,151,14,87,13,33,12,226,10,89,9,110,7,108,5,162,3,254,1,55,0,86,254,190,252,182,251,37,251, +206,250,186,250,41,251,53,252,145,253,208,254,212,255,216,0,13,2,75,3,69,4,212,4,5,5,225,4,101,4,148,3, +115,2,231,0,206,254,60,252,109,249,126,246,110,243,92,240,132,237,243,234,128,232,15,230,184,227,146,225,154,223,195,221, +11,220,116,218,254,216,183,215,183,214,20,214,218,213,30,214,248,214,98,216,32,218,226,219,116,221,223,222,53,224,94,225, +41,226,162,226,40,227,2,228,11,229,253,229,241,230,63,232,0,234,248,235,254,237,38,240,120,242,189,244,188,246,120,248, +22,250,172,251,60,253,214,254,161,0,180,2,0,5,125,7,74,10,143,13,70,17,69,21,124,25,254,29,211,34,227,39, +13,45,60,50,78,55,6,60,34,64,118,67,234,69,107,71,225,71,43,71,37,69,187,65,255,60,22,55,10,48,213,39, +159,30,212,20,216,10,224,0,10,247,151,237,227,228,64,221,217,214,170,209,146,205,128,202,151,200,14,200,226,200,205,202, +140,205,32,209,163,213,254,218,236,224,50,231,196,237,152,244,139,251,117,2,61,9,199,15,220,21,72,27,3,32,25,36, +123,39,249,41,123,43,19,44,217,43,208,42,247,40,103,38,82,35,245,31,135,28,42,25,224,21,169,18,166,15,16,13, +5,11,112,9,18,8,177,6,67,5,241,3,230,2,43,2,178,1,119,1,141,1,11,2,238,2,23,4,110,5,250,6, +213,8,4,11,114,13,12,16,196,18,133,21,33,24,93,26,13,28,50,29,225,29,21,30,174,29,157,28,237,26,158,24, +151,21,209,17,107,13,136,8,52,3,113,253,90,247,37,241,1,235,3,229,94,223,110,218,103,214,6,211,229,207,253,204, +135,202,110,200,97,198,96,196,219,194,46,194,74,194,239,194,19,196,229,197,130,200,207,203,167,207,20,212,57,217,26,223, +161,229,178,236,24,244,120,251,138,2,66,9,157,15,97,21,42,26,195,29,78,32,21,34,58,35,167,35,68,35,31,34, +90,32,32,30,198,27,188,25,83,24,151,23,98,23,122,23,164,23,193,23,196,23,145,23,236,22,196,21,94,20,18,19, +232,17,160,16,23,15,150,13,136,12,1,12,181,11,133,11,178,11,119,12,172,13,239,14,247,15,175,16,31,17,91,17, +96,17,12,17,65,16,255,14,99,13,144,11,142,9,57,7,113,4,77,1,5,254,162,250,255,246,19,243,25,239,82,235, +209,231,156,228,197,225,91,223,88,221,185,219,149,218,244,217,183,217,178,217,226,217,96,218,62,219,136,220,65,222,74,224, +91,226,44,228,154,229,158,230,46,231,66,231,225,230,49,230,127,229,17,229,235,228,241,228,52,229,216,229,191,230,166,231, +146,232,202,233,79,235,185,236,166,237,27,238,69,238,47,238,215,237,113,237,89,237,184,237,112,238,116,239,253,240,85,243, +146,246,159,250,102,255,219,4,237,10,137,17,147,24,211,31,245,38,163,45,161,51,207,56,25,61,107,64,184,66,241,67, +250,67,186,66,67,64,189,60,42,56,104,50,131,43,211,35,175,27,34,19,29,10,198,0,124,247,162,238,104,230,206,222, +204,215,118,209,4,204,169,199,134,196,168,194,16,194,185,194,154,196,169,199,202,203,226,208,215,214,124,221,141,228,224,235, +121,243,78,251,19,3,108,10,55,17,131,23,57,29,27,34,249,37,210,40,181,42,174,43,214,43,78,43,37,42,100,40, +41,38,157,35,204,32,177,29,102,26,60,23,134,20,103,18,207,16,155,15,170,14,224,13,52,13,178,12,97,12,53,12, +31,12,46,12,122,12,252,12,143,13,37,14,217,14,196,15,220,16,6,18,65,19,168,20,58,22,201,23,49,25,126,26, +187,27,190,28,97,29,187,29,232,29,192,29,2,29,166,27,198,25,87,23,41,20,45,16,130,11,85,6,187,0,198,250, +152,244,106,238,122,232,9,227,79,222,93,218,22,215,100,212,79,210,197,208,120,207,47,206,18,205,116,204,81,204,87,204, +97,204,188,204,206,205,150,207,196,209,78,212,150,215,229,219,8,225,168,230,164,236,250,242,131,249,5,0,76,6,38,12, +82,17,154,21,237,24,97,27,11,29,224,29,199,29,223,28,132,27,254,25,112,24,19,23,72,22,73,22,248,22,7,24, +57,25,95,26,74,27,205,27,196,27,40,27,21,26,183,24,21,23,18,21,175,18,58,16,31,14,129,12,48,11,13,10, +75,9,40,9,140,9,24,10,126,10,179,10,205,10,210,10,158,10,2,10,243,8,132,7,196,5,208,3,212,1,210,255, +138,253,212,250,233,247,33,245,127,242,217,239,59,237,229,234,250,232,96,231,245,229,166,228,109,227,66,226,31,225,250,223, +198,222,126,221,58,220,44,219,130,218,78,218,141,218,52,219,40,220,53,221,35,222,225,222,124,223,232,223,243,223,144,223, +23,223,246,222,42,223,96,223,132,223,224,223,165,224,178,225,226,226,58,228,184,229,55,231,143,232,189,233,206,234,196,235, +146,236,61,237,3,238,31,239,142,240,35,242,244,243,96,246,167,249,173,253,63,2,79,7,233,12,15,19,181,25,174,32, +172,39,106,46,196,52,164,58,218,63,41,68,116,71,171,73,167,74,68,74,145,72,182,69,175,65,80,60,159,53,237,45, +143,37,161,28,31,19,38,9,6,255,33,245,190,235,246,226,199,218,53,211,87,204,89,198,117,193,222,189,151,187,134,186, +178,186,80,188,108,191,200,195,21,201,66,207,94,214,89,222,253,230,6,240,56,249,73,2,249,10,42,19,206,26,193,33, +206,39,212,44,215,48,228,51,250,53,5,55,249,54,235,53,21,52,167,49,171,46,32,43,47,39,39,35,82,31,211,27, +162,24,165,21,201,18,27,16,186,13,185,11,29,10,218,8,213,7,3,7,106,6,12,6,217,5,200,5,239,5,99,6, +37,7,40,8,113,9,13,11,244,12,253,14,7,17,28,19,99,21,215,23,56,26,84,28,66,30,45,32,9,34,137,35, +94,36,102,36,151,35,219,33,23,31,64,27,86,22,84,16,71,9,109,1,36,249,178,240,60,232,0,224,109,216,234,209, +133,204,250,199,14,196,214,192,124,190,239,188,237,187,100,187,124,187,79,188,181,189,126,191,192,193,185,196,125,200,239,204, +249,209,172,215,29,222,60,229,229,236,246,244,75,253,183,5,20,14,52,22,207,29,142,36,39,42,113,46,93,49,243,50, +68,51,104,50,145,48,8,46,10,43,198,39,134,36,167,33,90,31,123,29,209,27,60,26,189,24,76,23,198,21,241,19, +189,17,91,15,14,13,207,10,98,8,195,5,89,3,144,1,100,0,128,255,188,254,80,254,127,254,60,255,59,0,55,1, +41,2,60,3,157,4,67,6,223,7,32,9,230,9,67,10,79,10,20,10,111,9,36,8,38,6,169,3,219,0,193,253, +116,250,40,247,245,243,188,240,120,237,90,234,115,231,139,228,109,225,40,222,3,219,42,216,147,213,35,211,245,208,83,207, +114,206,74,206,173,206,116,207,125,208,161,209,191,210,209,211,231,212,10,214,64,215,162,216,85,218,95,220,158,222,255,224, +151,227,103,230,72,233,29,236,235,238,158,241,255,243,226,245,66,247,44,248,184,248,15,249,94,249,203,249,123,250,129,251, +204,252,85,254,59,0,174,2,186,5,81,9,92,13,202,17,154,22,217,27,127,33,66,39,184,44,151,49,184,53,1,57, +96,59,203,60,39,61,78,60,59,58,20,55,252,50,229,45,180,39,133,32,172,24,123,16,22,8,141,255,20,247,249,238, +121,231,152,224,69,218,135,212,138,207,114,203,82,200,60,198,78,197,147,197,250,198,124,201,32,205,221,209,130,215,213,221, +168,228,202,235,19,243,105,250,186,1,222,8,154,15,192,21,58,27,1,32,6,36,62,39,163,41,53,43,250,43,2,44, +93,43,35,42,129,40,176,38,212,36,228,34,194,32,117,30,65,28,107,26,11,25,6,24,70,23,194,22,102,22,11,22, +164,21,77,21,31,21,253,20,192,20,112,20,54,20,31,20,22,20,17,20,32,20,81,20,173,20,60,21,15,22,42,23, +104,24,137,25,102,26,19,27,194,27,135,28,75,29,230,29,51,30,29,30,157,29,161,28,253,26,126,24,10,21,162,16, +76,11,20,5,37,254,207,246,94,239,5,232,249,224,133,218,211,212,191,207,23,203,251,198,173,195,37,193,30,191,136,189, +162,188,141,188,34,189,58,190,239,191,118,194,202,197,174,201,17,206,54,211,86,217,64,224,143,231,36,239,17,247,56,255, +74,7,10,15,86,22,247,28,154,34,254,38,30,42,35,44,44,45,38,45,251,43,207,41,240,38,177,35,105,32,132,29, +72,27,163,25,84,24,31,23,227,21,138,20,253,18,35,17,225,14,67,12,141,9,251,6,143,4,48,2,251,255,63,254, +31,253,106,252,228,251,167,251,254,251,235,252,23,254,47,255,41,0,43,1,73,2,103,3,58,4,145,4,119,4,26,4, +140,3,206,2,228,1,203,0,100,255,155,253,123,251,11,249,76,246,93,243,115,240,165,237,218,234,7,232,66,229,155,226, +7,224,120,221,253,218,177,216,148,214,160,212,244,210,210,209,114,209,228,209,12,211,188,212,186,214,198,216,169,218,73,220, +166,221,205,222,186,223,116,224,51,225,55,226,128,227,225,228,83,230,246,231,207,233,189,235,193,237,255,239,98,242,142,244, +54,246,98,247,71,248,254,248,133,249,245,249,137,250,110,251,150,252,245,253,190,255,61,2,132,5,108,9,218,13,207,18, +68,24,28,30,66,36,158,42,248,48,237,54,45,60,142,64,248,67,77,70,126,71,135,71,87,70,221,67,34,64,67,59, +75,53,42,46,241,37,237,28,134,19,247,9,77,0,163,246,87,237,221,228,114,221,255,214,95,209,157,204,234,200,113,198, +62,197,65,197,104,198,175,200,47,204,240,208,200,214,102,221,128,228,238,235,146,243,61,251,192,2,2,10,234,16,75,23, +251,28,235,33,20,38,102,41,216,43,119,45,64,46,29,46,4,45,34,43,188,40,3,38,18,35,247,31,188,28,99,25, +251,21,175,18,197,15,113,13,178,11,89,10,63,9,90,8,182,7,103,7,121,7,226,7,134,8,79,9,57,10,60,11, +70,12,75,13,78,14,85,15,94,16,113,17,153,18,216,19,34,21,91,22,99,23,31,24,133,24,161,24,142,24,96,24, +12,24,110,23,113,22,21,21,75,19,221,16,145,13,106,9,154,4,54,255,50,249,163,242,224,235,53,229,189,222,160,216, +60,211,199,206,10,203,188,199,243,196,242,194,186,193,10,193,198,192,25,193,33,194,183,195,166,197,255,199,255,202,172,206, +200,210,62,215,94,220,111,226,56,233,58,240,60,247,88,254,152,5,195,12,131,19,151,25,212,30,10,35,15,38,227,39, +182,40,187,40,253,39,113,38,30,36,57,33,28,30,40,27,181,24,254,22,5,22,145,21,82,21,9,21,156,20,252,19, +25,19,229,17,112,16,228,14,107,13,8,12,167,10,97,9,117,8,5,8,233,7,244,7,60,8,238,8,241,9,238,10, +161,11,14,12,89,12,139,12,122,12,249,11,11,11,210,9,97,8,174,6,195,4,189,2,155,0,47,254,94,251,67,248, +9,245,193,241,111,238,50,235,55,232,144,229,58,227,44,225,92,223,189,221,90,220,84,219,182,218,88,218,14,218,225,217, +6,218,175,218,224,219,117,221,67,223,37,225,243,226,111,228,114,229,10,230,82,230,78,230,22,230,252,229,69,230,219,230, +137,231,79,232,69,233,91,234,120,235,167,236,253,237,95,239,132,240,55,241,138,241,177,241,208,241,249,241,86,242,32,243, +113,244,65,246,145,248,133,251,66,255,194,3,216,8,95,14,78,20,162,26,66,33,251,39,145,46,201,52,110,58,74,63, +37,67,211,69,67,71,137,71,186,70,198,68,148,65,46,61,173,55,6,49,39,41,51,32,127,22,87,12,226,1,78,247, +239,236,35,227,47,218,50,210,59,203,82,197,129,192,228,188,158,186,191,185,44,186,206,187,171,190,213,194,57,200,159,206, +207,213,151,221,192,229,18,238,120,246,237,254,71,7,59,15,143,22,53,29,48,35,112,40,204,44,33,48,102,50,164,51, +210,51,237,50,23,49,141,46,127,43,12,40,76,36,80,32,48,28,37,24,127,20,119,17,12,15,16,13,100,11,0,10, +221,8,238,7,46,7,162,6,72,6,24,6,21,6,87,6,221,6,118,7,252,7,135,8,73,9,83,10,166,11,79,13, +73,15,91,17,70,19,251,20,146,22,11,24,64,25,17,26,136,26,186,26,139,26,194,25,61,24,252,21,11,19,100,15, +254,10,223,5,44,0,26,250,225,243,194,237,18,232,26,227,230,222,63,219,218,215,157,212,152,209,201,206,21,204,133,201, +85,199,191,197,210,196,133,196,224,196,245,197,205,199,95,202,181,205,252,209,92,215,186,221,211,228,107,236,90,244,106,252, +85,4,234,11,10,19,132,25,22,31,143,35,246,38,106,41,2,43,183,43,114,43,47,42,28,40,153,37,31,35,33,33, +235,31,126,31,170,31,40,32,162,32,190,32,73,32,58,31,151,29,124,27,26,25,155,22,253,19,37,17,39,14,84,11, +242,8,254,6,97,5,68,4,240,3,96,4,52,5,7,6,169,6,36,7,137,7,205,7,203,7,108,7,175,6,157,5, +68,4,195,2,60,1,170,255,221,253,195,251,121,249,26,247,151,244,242,241,95,239,15,237,242,234,236,232,4,231,78,229, +197,227,92,226,19,225,233,223,175,222,45,221,108,219,204,217,179,216,62,216,79,216,189,216,109,217,51,218,211,218,34,219, +33,219,225,218,120,218,14,218,220,217,8,218,145,218,100,219,103,220,136,221,206,222,75,224,13,226,15,228,46,230,41,232, +213,233,57,235,97,236,76,237,13,238,222,238,239,239,79,241,246,242,248,244,131,247,178,250,104,254,125,2,241,6,214,11, +34,17,195,22,183,28,232,34,4,41,170,46,167,51,230,55,69,59,181,61,73,63,17,64,233,63,173,62,100,60,37,57, +225,52,129,47,14,41,180,33,168,25,5,17,222,7,115,254,44,245,83,236,241,227,248,219,117,212,151,205,163,199,214,194, +90,191,69,189,161,188,119,189,217,191,195,195,3,201,79,207,98,214,253,221,235,229,19,238,113,246,233,254,69,7,72,15, +204,22,175,29,197,35,221,40,240,44,23,48,95,50,198,51,84,52,31,52,57,51,182,49,171,47,33,45,18,42,134,38, +173,34,217,30,96,27,93,24,188,21,103,19,89,17,140,15,249,13,174,12,191,11,37,11,202,10,181,10,7,11,208,11, +249,12,98,14,237,15,126,17,0,19,132,20,47,22,14,24,4,26,228,27,146,29,11,31,72,32,62,33,4,34,219,34, +214,35,175,36,13,37,197,36,208,35,25,34,116,31,196,27,27,23,155,17,66,11,26,4,119,252,184,244,243,236,33,229, +143,221,208,214,49,209,123,204,91,200,232,196,105,194,200,192,147,191,163,190,67,190,160,190,119,191,136,192,12,194,114,196, +202,199,197,203,67,208,122,213,135,219,48,226,53,233,142,240,60,248,8,0,161,7,221,14,164,21,178,27,152,32,27,36, +84,38,130,39,189,39,244,38,35,37,132,34,109,31,37,28,248,24,83,22,127,20,99,19,187,18,99,18,63,18,41,18, +251,17,137,17,174,16,111,15,12,14,189,12,105,11,207,9,249,7,77,6,21,5,39,4,59,3,119,2,75,2,217,2, +183,3,98,4,184,4,254,4,108,5,229,5,46,6,38,6,196,5,6,5,6,4,222,2,121,1,150,255,19,253,27,250, +249,246,193,243,113,240,60,237,116,234,28,232,247,229,245,227,67,226,237,224,188,223,123,222,56,221,31,220,47,219,61,218, +52,217,61,216,158,215,125,215,201,215,90,216,22,217,235,217,176,218,69,219,174,219,242,219,19,220,65,220,194,220,161,221, +176,222,225,223,99,225,93,227,168,229,254,231,78,234,191,236,84,239,188,241,173,243,37,245,63,246,15,247,176,247,89,248, +66,249,117,250,209,251,75,253,30,255,142,1,159,4,46,8,51,12,182,16,172,21,9,27,216,32,16,39,101,45,101,51, +192,56,94,61,49,65,27,68,3,70,221,70,154,70,46,69,151,66,214,62,228,57,192,51,139,44,152,36,54,28,120,19, +93,10,24,1,12,248,132,239,137,231,255,223,214,216,72,210,191,204,135,200,152,197,197,195,1,195,113,195,70,197,136,200, +12,205,158,210,24,217,69,224,230,231,212,239,249,247,25,0,212,7,228,14,61,21,237,26,230,31,254,35,45,39,138,41, +40,43,2,44,21,44,105,43,22,42,88,40,118,38,144,36,142,34,76,32,209,29,91,27,24,25,253,22,236,20,235,18, +13,17,80,15,176,13,74,12,64,11,133,10,246,9,150,9,147,9,247,9,144,10,61,11,18,12,37,13,100,14,174,15, +254,16,98,18,211,19,38,21,73,22,97,23,132,24,134,25,82,26,34,27,43,28,50,29,197,29,185,29,43,29,18,28, +19,26,234,22,183,18,158,13,128,7,76,0,104,248,95,240,100,232,115,224,196,216,200,209,185,203,113,198,210,193,19,190, +106,187,173,185,150,184,42,184,157,184,230,185,195,187,9,190,210,192,77,196,111,200,5,205,4,210,159,215,236,221,185,228, +203,235,29,243,182,250,105,2,244,9,54,17,26,24,87,30,134,35,112,39,34,42,194,43,95,44,242,43,125,42,52,40, +113,37,141,34,214,31,136,29,183,27,81,26,73,25,138,24,228,23,40,23,58,22,252,20,85,19,104,17,133,15,216,13, +70,12,160,10,245,8,143,7,152,6,224,5,42,5,139,4,85,4,160,4,41,5,165,5,2,6,89,6,176,6,248,6, +37,7,32,7,193,6,251,5,249,4,238,3,196,2,49,1,17,255,148,252,253,249,81,247,125,244,173,241,43,239,14,237, +48,235,124,233,244,231,136,230,13,229,109,227,189,225,28,224,144,222,24,221,199,219,186,218,10,218,194,217,228,217,90,218, +4,219,197,219,133,220,67,221,4,222,183,222,79,223,250,223,2,225,104,226,232,227,81,229,202,230,140,232,137,234,128,236, +95,238,77,240,68,242,242,243,28,245,215,245,82,246,161,246,205,246,6,247,140,247,119,248,159,249,244,250,176,252,21,255, +40,2,213,5,28,10,3,15,116,20,82,26,135,32,240,38,69,45,46,51,105,56,208,60,82,64,231,66,135,68,18,69, +98,68,106,66,50,63,186,58,250,52,240,45,188,37,165,28,9,19,54,9,84,255,120,245,198,235,132,226,242,217,22,210, +220,202,122,196,90,191,188,187,145,185,190,184,55,185,4,187,58,190,203,194,127,200,24,207,121,214,121,222,212,230,82,239, +222,247,79,0,77,8,136,15,245,21,174,27,163,32,169,36,198,39,26,42,158,43,54,44,241,43,9,43,163,41,198,39, +121,37,213,34,0,32,10,29,5,26,25,23,117,20,31,18,240,15,205,13,205,11,25,10,198,8,215,7,98,7,119,7, +247,7,182,8,167,9,203,10,16,12,101,13,215,14,120,16,65,18,25,20,238,21,187,23,107,25,205,26,209,27,166,28, +115,29,36,30,177,30,75,31,16,32,207,32,51,33,30,33,145,32,96,31,44,29,196,25,90,21,36,16,13,10,0,3, +65,251,62,243,37,235,248,226,248,218,179,211,141,205,131,200,121,196,125,193,134,191,60,190,95,189,17,189,149,189,235,190, +211,192,39,195,1,198,138,201,175,205,59,210,49,215,205,220,29,227,218,233,195,240,220,247,60,255,204,6,93,14,208,21, +10,29,182,35,102,41,212,45,250,48,238,50,176,51,50,51,146,49,32,47,41,44,213,40,104,37,63,34,145,31,84,29, +116,27,225,25,124,24,39,23,195,21,41,20,61,18,27,16,10,14,57,12,144,10,218,8,27,7,155,5,137,4,200,3, +62,3,12,3,75,3,202,3,51,4,103,4,151,4,239,4,90,5,156,5,163,5,129,5,49,5,136,4,116,3,23,2, +136,0,157,254,40,252,71,249,60,246,15,243,171,239,63,236,44,233,154,230,87,228,51,226,68,224,171,222,77,221,235,219, +117,218,16,217,209,215,176,214,190,213,39,213,19,213,124,213,69,214,92,215,179,216,31,218,101,219,128,220,142,221,135,222, +82,223,28,224,56,225,169,226,28,228,115,229,238,230,185,232,145,234,24,236,87,237,150,238,206,239,164,240,234,240,197,240, +117,240,31,240,229,239,253,239,150,240,166,241,1,243,177,244,6,247,44,250,6,254,105,2,88,7,221,12,230,18,84,25, +11,32,233,38,175,45,16,52,215,57,223,62,8,67,49,70,69,72,51,73,231,72,70,71,62,68,204,63,251,57,224,50, +159,42,111,33,140,23,55,13,189,2,108,248,104,238,195,228,153,219,11,211,73,203,144,196,31,191,12,187,85,184,234,182, +194,182,240,183,144,186,159,190,241,195,90,202,179,209,203,217,115,226,125,235,181,244,224,253,211,6,117,15,160,23,25,31, +158,37,30,43,180,47,109,51,29,54,162,55,23,56,174,55,123,54,140,52,3,50,12,47,194,43,56,40,149,36,5,33, +153,29,70,26,13,23,10,20,84,17,226,14,179,12,243,10,214,9,74,9,22,9,45,9,165,9,107,10,73,11,61,12, +110,13,233,14,151,16,108,18,115,20,164,22,201,24,156,26,12,28,49,29,12,30,137,30,209,30,54,31,201,31,78,32, +142,32,117,32,229,31,170,30,156,28,177,25,234,21,61,17,173,11,76,5,44,254,100,246,47,238,233,229,214,221,33,214, +22,207,40,201,150,196,44,193,140,190,180,188,223,187,241,187,112,188,46,189,126,190,159,192,75,195,34,198,48,201,209,204, +38,209,242,213,7,219,140,224,191,230,142,237,179,244,2,252,123,3,20,11,141,18,156,25,20,32,211,37,143,42,0,46, +38,48,69,49,135,49,208,48,247,46,34,44,207,40,107,37,34,34,12,31,81,28,7,26,20,24,79,22,154,20,226,18, +28,17,51,15,22,13,231,10,231,8,30,7,81,5,97,3,141,1,37,0,32,255,48,254,51,253,95,252,235,251,196,251, +180,251,169,251,195,251,49,252,253,252,243,253,202,254,94,255,176,255,182,255,97,255,173,254,154,253,22,252,20,250,183,247, +63,245,195,242,49,240,153,237,48,235,8,233,247,230,222,228,204,226,217,224,15,223,115,221,21,220,249,218,1,218,16,217, +58,216,199,215,237,215,157,216,169,217,241,218,104,220,251,221,133,223,245,224,87,226,174,227,223,228,240,229,28,231,133,232, +255,233,104,235,224,236,137,238,58,240,173,241,223,242,10,244,51,245,23,246,137,246,190,246,254,246,96,247,235,247,190,248, +243,249,118,251,38,253,15,255,107,1,102,4,239,7,215,11,252,15,84,20,242,24,3,30,157,35,134,41,74,47,154,52, +99,57,142,61,227,64,60,67,154,68,243,68,16,68,200,65,44,62,75,57,19,51,141,43,15,35,3,26,153,16,205,6, +187,252,194,242,72,233,127,224,121,216,74,209,16,203,228,197,221,193,8,191,89,189,176,188,252,188,77,190,206,192,148,196, +122,201,75,207,229,213,41,221,237,228,18,237,125,245,240,253,24,6,201,13,4,21,195,27,222,33,39,39,145,43,42,47, +232,49,161,51,68,52,254,51,22,51,201,49,53,48,87,46,13,44,69,41,41,38,255,34,252,31,35,29,103,26,182,23, +7,21,105,18,253,15,223,13,28,12,176,10,153,9,216,8,118,8,104,8,146,8,246,8,178,9,198,10,8,12,103,13, +240,14,151,16,40,18,120,19,138,20,135,21,130,22,101,23,20,24,151,24,9,25,91,25,85,25,208,24,212,23,107,22, +117,20,181,17,11,14,127,9,23,4,193,253,147,246,235,238,43,231,111,223,189,215,104,208,5,202,229,196,220,192,167,189, +86,187,23,186,208,185,42,186,253,186,119,188,190,190,163,193,216,196,87,200,103,204,40,209,94,214,199,219,122,225,193,231, +157,238,183,245,199,252,219,3,23,11,107,18,160,25,121,32,182,38,21,44,101,48,151,51,179,53,184,54,144,54,61,53, +249,50,22,48,210,44,89,41,221,37,141,34,140,31,227,28,116,26,24,24,214,21,211,19,255,17,20,16,247,13,223,11, +0,10,48,8,39,6,249,3,13,2,166,0,143,255,106,254,41,253,35,252,163,251,149,251,175,251,218,251,75,252,48,253, +107,254,145,255,73,0,152,0,188,0,208,0,178,0,49,0,38,255,125,253,79,251,215,248,55,246,112,243,148,240,209,237, +77,235,11,233,247,230,7,229,58,227,140,225,237,223,85,222,217,220,146,219,128,218,144,217,205,216,114,216,182,216,154,217, +229,218,90,220,221,221,115,223,33,225,226,226,152,228,35,230,122,231,189,232,13,234,100,235,159,236,201,237,15,239,119,240, +208,241,243,242,240,243,226,244,195,245,113,246,218,246,14,247,51,247,99,247,174,247,47,248,3,249,38,250,132,251,32,253, +32,255,169,1,189,4,64,8,29,12,85,16,241,20,245,25,91,31,2,37,165,42,232,47,137,52,115,56,157,59,236,61, +54,63,86,63,53,62,207,59,43,56,72,51,28,45,180,37,77,29,64,20,214,10,51,1,106,247,172,237,89,228,204,219, +42,212,108,205,146,199,191,194,27,191,184,188,139,187,113,187,88,188,69,190,66,193,81,197,93,202,76,208,254,214,77,222, +14,230,27,238,88,246,156,254,166,6,60,14,76,21,216,27,209,33,14,39,117,43,6,47,197,49,160,51,136,52,152,52, +23,52,56,51,10,50,131,48,162,46,111,44,245,41,77,39,152,36,235,33,68,31,156,28,247,25,95,23,220,20,121,18, +78,16,118,14,251,12,203,11,208,10,14,10,157,9,130,9,181,9,49,10,245,10,252,11,63,13,188,14,92,16,235,17, +61,19,86,20,96,21,113,22,120,23,88,24,13,25,160,25,16,26,61,26,246,25,26,25,151,23,82,21,37,18,3,14, +1,9,37,3,102,252,223,244,240,236,3,229,68,221,192,213,189,206,185,200,10,196,150,192,29,190,144,188,254,187,73,188, +45,189,140,190,124,192,23,195,61,198,176,201,86,205,96,209,14,214,81,219,224,224,172,230,243,236,207,243,4,251,69,2, +123,9,180,16,248,23,41,31,247,37,251,43,225,48,134,52,239,54,53,56,104,56,115,55,78,53,58,50,163,46,212,42, +254,38,92,35,40,32,123,29,66,27,86,25,147,23,241,21,105,20,205,18,219,16,155,14,87,12,57,10,8,8,130,5, +200,2,79,0,92,254,189,252,32,251,146,249,114,248,244,247,237,247,19,248,81,248,200,248,166,249,216,250,246,251,141,252, +140,252,52,252,183,251,12,251,17,250,164,248,194,246,147,244,72,242,240,239,127,237,13,235,200,232,198,230,251,228,89,227, +217,225,118,224,36,223,216,221,146,220,95,219,81,218,108,217,172,216,40,216,21,216,162,216,204,217,88,219,10,221,207,222, +160,224,106,226,19,228,138,229,195,230,192,231,181,232,213,233,25,235,88,236,147,237,239,238,111,240,247,241,116,243,225,244, +46,246,54,247,223,247,54,248,97,248,130,248,160,248,206,248,53,249,238,249,224,250,247,251,100,253,120,255,91,2,237,5, +245,9,95,14,71,19,196,24,199,30,21,37,90,43,64,49,129,54,251,58,148,62,32,65,113,66,98,66,223,64,216,61, +92,57,142,51,140,44,104,36,72,27,111,17,52,7,225,252,168,242,181,232,74,223,188,214,65,207,218,200,120,195,26,191, +210,187,185,185,232,184,75,185,174,186,240,188,48,192,153,196,44,202,176,208,226,215,151,223,189,231,71,240,16,249,210,1, +55,10,5,18,57,25,230,31,7,38,111,43,238,47,112,51,247,53,141,55,65,56,43,56,120,55,88,54,229,52,36,51, +26,49,216,46,109,44,224,41,69,39,181,36,52,34,166,31,252,28,73,26,178,23,85,21,65,19,111,17,203,15,81,14, +14,13,11,12,68,11,192,10,153,10,217,10,108,11,55,12,54,13,113,14,205,15,7,17,233,17,141,18,58,19,13,20, +218,20,118,21,241,21,115,22,251,22,87,23,69,23,160,22,91,21,100,19,145,16,196,12,7,8,106,2,226,251,108,244, +72,236,228,227,147,219,133,211,12,204,182,197,238,192,161,189,104,187,26,186,222,185,172,186,26,188,224,189,53,192,85,195, +247,198,152,202,33,206,242,209,73,214,247,218,179,223,154,228,25,234,97,240,40,247,23,254,44,5,140,12,27,20,136,27, +132,34,214,40,61,46,125,50,118,53,58,55,243,55,164,55,39,54,124,51,248,47,10,44,249,39,12,36,155,32,223,29, +198,27,24,26,172,24,113,23,94,22,82,21,15,20,106,18,135,16,153,14,135,12,8,10,22,7,23,4,106,1,8,255, +180,252,115,250,163,248,135,247,246,246,156,246,102,246,134,246,32,247,19,248,14,249,202,249,35,250,25,250,179,249,255,248, +11,248,201,246,35,245,36,243,7,241,241,238,213,236,183,234,197,232,24,231,152,229,50,228,240,226,213,225,187,224,124,223, +31,222,207,220,164,219,143,218,133,217,190,216,148,216,54,217,140,218,100,220,161,222,44,225,215,227,109,230,220,232,32,235, +32,237,199,238,55,240,170,241,21,243,62,244,41,245,33,246,63,247,82,248,63,249,33,250,4,251,181,251,0,252,227,251, +131,251,0,251,107,250,212,249,98,249,50,249,56,249,96,249,196,249,178,250,103,252,238,254,42,2,3,6,124,10,183,15, +212,21,182,28,241,35,249,42,114,49,65,55,86,60,118,64,85,67,194,68,161,68,205,66,64,63,32,58,155,51,195,43, +187,34,229,24,179,14,99,4,12,250,218,239,32,230,51,221,64,213,85,206,105,200,112,195,92,191,65,188,70,186,110,185, +143,185,142,186,132,188,151,191,206,195,24,201,82,207,73,214,207,221,210,229,73,238,19,247,231,255,113,8,116,16,224,23, +195,30,29,37,197,42,128,47,43,51,201,53,123,55,103,56,171,56,92,56,140,55,75,54,159,52,138,50,17,48,76,45, +101,42,133,39,175,36,211,33,233,30,248,27,7,25,39,22,121,19,3,17,171,14,107,12,105,10,183,8,59,7,239,5, +9,5,189,4,252,4,159,5,154,6,239,7,120,9,240,10,44,12,54,13,55,14,74,15,101,16,107,17,78,18,14,19, +168,19,21,20,75,20,37,20,97,19,205,17,113,15,99,12,146,8,224,3,83,254,15,248,40,241,182,233,249,225,82,218, +20,211,131,204,243,198,183,194,222,191,35,190,69,189,59,189,7,190,126,191,124,193,24,196,104,199,38,203,234,206,164,210, +169,214,64,219,74,224,128,229,208,234,111,240,142,246,22,253,212,3,186,10,219,17,47,25,123,32,101,39,146,45,183,50, +171,54,116,57,46,59,228,59,125,59,227,57,57,55,212,51,0,48,236,43,218,39,40,36,14,33,118,30,44,28,22,26, +44,24,93,22,131,20,124,18,62,16,219,13,101,11,201,8,234,5,221,2,243,255,111,253,68,251,47,249,34,247,104,245, +94,244,19,244,67,244,188,244,154,245,10,247,233,248,190,250,35,252,255,252,102,253,93,253,223,252,244,251,163,250,233,248, +219,246,174,244,144,242,134,240,144,238,189,236,28,235,164,233,61,232,224,230,133,229,20,228,118,226,175,224,222,222,24,221, +93,219,189,217,114,216,202,215,237,215,204,216,73,218,85,220,216,222,157,225,109,228,60,231,4,234,155,236,204,238,159,240, +70,242,195,243,241,244,205,245,141,246,96,247,54,248,224,248,76,249,138,249,168,249,155,249,87,249,232,248,102,248,218,247, +76,247,214,246,145,246,118,246,117,246,167,246,88,247,198,248,237,250,168,253,238,0,237,4,211,9,162,15,32,22,236,28, +162,35,2,42,233,47,39,53,117,57,162,60,150,62,48,63,59,62,159,59,118,55,230,49,19,43,41,35,108,26,46,17, +175,7,24,254,141,244,77,235,174,226,238,218,25,212,28,206,225,200,114,196,227,192,60,190,111,188,116,187,101,187,107,188, +154,190,232,193,59,198,121,203,141,209,91,216,193,223,168,231,2,240,160,248,43,1,94,9,63,17,226,24,44,32,224,38, +210,44,242,49,52,54,140,57,249,59,143,61,112,62,174,62,74,62,58,61,118,59,4,57,251,53,141,50,238,46,50,43, +86,39,98,35,108,31,136,27,199,23,55,20,222,16,194,13,247,10,140,8,114,6,140,4,212,2,114,1,155,0,102,0, +200,0,169,1,242,2,133,4,58,6,247,7,195,9,191,11,247,13,80,16,149,18,172,20,148,22,60,24,133,25,97,26, +212,26,192,26,246,25,95,24,249,21,169,18,81,14,11,9,14,3,108,252,26,245,66,237,83,229,166,221,95,214,171,207, +253,201,191,197,216,194,209,192,109,191,212,190,38,191,45,192,174,193,179,195,84,198,97,201,138,204,211,207,152,211,20,216, +8,221,22,226,80,231,26,237,146,243,112,250,118,1,171,8,26,16,161,23,4,31,252,37,52,44,86,49,54,53,223,55, +129,57,61,58,246,57,120,56,211,53,98,50,110,46,23,42,161,37,126,33,249,29,4,27,108,24,5,22,183,19,114,17, +41,15,197,12,39,10,90,7,138,4,202,1,245,254,251,251,20,249,140,246,102,244,107,242,161,240,101,239,14,239,142,239, +147,240,235,241,171,243,235,245,122,248,223,250,185,252,243,253,172,254,245,254,215,254,98,254,145,253,63,252,103,250,72,248, +46,246,30,244,251,241,210,239,207,237,1,236,72,234,131,232,172,230,201,228,229,226,14,225,82,223,177,221,43,220,207,218, +187,217,30,217,39,217,243,217,130,219,181,221,86,224,42,227,255,229,191,232,93,235,192,237,208,239,161,241,95,243,18,245, +153,246,239,247,51,249,114,250,145,251,125,252,68,253,240,253,107,254,155,254,110,254,225,253,246,252,198,251,129,250,99,249, +132,248,205,247,46,247,231,246,104,247,224,248,31,251,226,253,35,1,13,5,210,9,118,15,195,21,90,28,226,34,28,41, +202,46,171,51,140,55,81,58,231,59,53,60,40,59,193,56,17,53,31,48,227,41,123,34,66,26,165,17,222,8,255,255, +31,247,111,238,30,230,84,222,42,215,166,208,191,202,120,197,245,192,95,189,197,186,26,185,101,184,216,184,161,186,187,189, +251,193,69,199,133,205,155,212,91,220,172,228,123,237,153,246,193,255,181,8,77,17,119,25,38,33,74,40,197,46,113,52, +45,57,237,60,177,63,131,65,120,66,179,66,88,66,105,65,199,63,84,61,39,58,141,54,205,50,241,46,219,42,142,38, +71,34,60,30,106,26,190,22,64,19,9,16,38,13,157,10,119,8,175,6,56,5,23,4,96,3,26,3,57,3,187,3, +171,4,255,5,138,7,31,9,199,10,154,12,130,14,68,16,198,17,39,19,127,20,165,21,94,22,155,22,122,22,9,22, +35,21,151,19,77,17,64,14,86,10,105,5,135,255,242,248,199,241,242,233,140,225,13,217,253,208,155,201,12,195,161,189, +193,185,129,183,139,182,128,182,83,183,33,185,197,187,213,190,14,194,144,197,138,201,219,205,52,210,139,214,43,219,62,224, +149,229,251,234,159,240,223,246,195,253,248,4,71,12,190,19,100,27,9,35,98,42,47,49,43,55,4,60,127,63,147,65, +83,66,197,65,216,63,149,60,74,56,100,51,44,46,211,40,180,35,64,31,158,27,145,24,199,21,40,19,210,16,207,14, +231,12,203,10,99,8,224,5,104,3,217,0,13,254,45,251,153,248,126,246,190,244,57,243,15,242,132,241,179,241,119,242, +153,243,8,245,210,246,242,248,39,251,18,253,115,254,66,255,141,255,91,255,181,254,171,253,70,252,149,250,185,248,208,246, +206,244,154,242,78,240,41,238,59,236,79,234,65,232,48,230,89,228,196,226,66,225,183,223,69,222,33,221,81,220,193,219, +127,219,203,219,215,220,153,222,221,224,117,227,63,230,24,233,220,235,116,238,206,240,218,242,154,244,51,246,188,247,22,249, +33,250,240,250,186,251,136,252,51,253,161,253,215,253,232,253,203,253,92,253,118,252,40,251,170,249,36,248,157,246,34,245, +214,243,215,242,64,242,69,242,46,243,27,245,2,248,192,251,55,0,79,5,3,11,75,17,249,23,193,30,84,37,120,43, +245,48,146,53,32,57,122,59,132,60,41,60,91,58,29,55,134,50,176,44,171,37,139,29,134,20,239,10,9,1,251,246, +238,236,43,227,1,218,160,209,17,202,89,195,147,189,223,184,72,181,198,178,81,177,243,176,199,177,229,179,68,183,203,187, +94,193,234,199,77,207,89,215,235,223,233,232,48,242,140,251,201,4,192,13,74,22,72,30,169,37,96,44,78,50,79,55, +90,59,131,62,211,64,61,66,188,66,106,66,96,65,148,63,244,60,158,57,230,53,31,50,99,46,156,42,192,38,243,34, +93,31,6,28,227,24,248,21,65,19,165,16,32,14,212,11,217,9,34,8,179,6,187,5,86,5,104,5,213,5,173,6, +7,8,189,9,138,11,75,13,14,15,218,16,138,18,239,19,5,21,223,21,120,22,174,22,107,22,199,21,226,20,192,19, +61,18,48,16,140,13,94,10,152,6,21,2,207,252,227,246,95,240,55,233,150,225,241,217,191,210,46,204,92,198,145,193, +46,190,83,188,197,187,56,188,154,189,8,192,101,195,67,199,65,203,97,207,214,211,130,216,7,221,70,225,148,229,67,234, +63,239,79,244,132,249,32,255,45,5,116,11,216,17,121,24,110,31,137,38,104,45,164,51,234,56,247,60,154,63,207,64, +183,64,109,63,229,60,23,57,67,52,222,46,69,41,174,35,90,30,160,25,173,21,96,18,117,15,213,12,156,10,221,8, +100,7,211,5,236,3,195,1,135,255,60,253,190,250,26,248,159,245,151,243,0,242,182,240,188,239,72,239,131,239,99,240, +185,241,88,243,46,245,46,247,41,249,204,250,208,251,42,252,245,251,84,251,105,250,71,249,224,247,39,246,62,244,91,242, +134,240,167,238,200,236,13,235,122,233,225,231,26,230,56,228,111,226,225,224,123,223,33,222,230,220,12,220,200,219,23,220, +234,220,89,222,136,224,100,227,174,230,46,234,186,237,34,241,53,244,221,246,7,249,144,250,119,251,12,252,166,252,66,253, +168,253,213,253,248,253,35,254,55,254,29,254,219,253,111,253,197,252,199,251,109,250,192,248,221,246,220,244,209,242,219,240, +23,239,139,237,79,236,181,235,34,236,196,237,137,240,81,244,17,249,195,254,80,5,148,12,83,20,54,28,216,35,232,42, +36,49,85,54,73,58,225,60,17,62,197,61,239,59,166,56,30,52,118,46,173,39,222,31,96,23,158,14,219,5,36,253, +120,244,239,235,194,227,31,220,1,213,84,206,33,200,157,194,249,189,76,186,154,183,244,181,120,181,66,182,80,184,138,187, +220,191,56,197,137,203,159,210,85,218,173,226,175,235,46,245,189,254,2,8,232,16,124,25,176,33,84,41,65,48,99,54, +164,59,231,63,18,67,43,69,82,70,174,70,79,70,40,69,47,67,123,64,66,61,194,57,21,54,43,50,250,45,169,41, +104,37,63,33,39,29,50,25,117,21,230,17,118,14,61,11,87,8,190,5,110,3,144,1,91,0,219,255,233,255,103,0, +89,1,194,2,125,4,79,6,33,8,250,9,209,11,132,13,1,15,79,16,108,17,55,18,147,18,125,18,11,18,73,17, +49,16,189,14,229,12,140,10,143,7,237,3,204,255,52,251,243,245,241,239,103,233,170,226,217,219,5,213,123,206,170,200, +218,195,35,192,160,189,114,188,148,188,210,189,0,192,3,195,183,198,215,202,41,207,173,211,120,216,94,221,248,225,21,230, +7,234,67,238,205,242,82,247,192,251,117,0,197,5,150,11,157,17,198,23,32,30,156,36,239,42,187,48,169,53,112,57, +232,59,15,61,239,60,128,59,181,56,166,52,162,47,12,42,67,36,171,30,182,25,172,21,130,18,250,15,231,13,67,12, +7,11,21,10,51,9,40,8,211,6,63,5,133,3,151,1,66,255,135,252,203,249,145,247,248,245,188,244,182,243,42,243, +113,243,122,244,208,245,23,247,87,248,182,249,15,251,246,251,32,252,166,251,200,250,162,249,54,248,154,246,228,244,4,243, +225,240,150,238,106,236,127,234,199,232,59,231,229,229,203,228,234,227,68,227,208,226,112,226,17,226,196,225,170,225,214,225, +85,226,55,227,136,228,84,230,169,232,135,235,209,238,79,242,202,245,17,249,9,252,169,254,222,0,119,2,81,3,126,3, +57,3,166,2,190,1,133,0,39,255,225,253,200,252,202,251,210,250,216,249,224,248,233,247,242,246,237,245,214,244,188,243, +195,242,12,242,159,241,112,241,126,241,231,241,236,242,204,244,153,247,58,251,144,255,133,4,0,10,230,15,22,22,89,28, +101,34,240,39,190,44,165,48,132,51,55,53,156,53,154,52,45,50,99,46,90,41,62,35,64,28,130,20,36,12,94,3, +135,250,222,241,121,233,92,225,166,217,142,210,60,204,180,198,232,193,225,189,187,186,150,184,112,183,59,183,236,183,148,185, +71,188,250,191,133,196,207,201,219,207,166,214,14,222,240,229,64,238,248,246,249,255,4,9,211,17,57,26,38,34,146,41, +94,48,102,54,147,59,216,63,43,67,132,69,228,70,78,71,203,70,115,69,100,67,177,64,105,61,165,57,139,53,63,49, +220,44,107,40,247,35,150,31,95,27,95,23,158,19,37,16,251,12,30,10,134,7,46,5,25,3,92,1,17,0,74,255, +14,255,87,255,19,0,44,1,151,2,79,4,58,6,38,8,248,9,177,11,71,13,159,14,169,15,97,16,195,16,192,16, +78,16,113,15,45,14,124,12,93,10,230,7,43,5,19,2,111,254,70,250,208,245,26,241,235,235,34,230,253,223,219,217, +241,211,92,206,90,201,59,197,53,194,85,192,166,191,68,192,48,194,55,197,16,201,153,205,197,210,98,216,36,222,234,227, +184,233,110,239,174,244,70,249,121,253,173,1,223,5,191,9,73,13,227,16,222,20,28,25,94,29,160,33,10,38,155,42, +16,47,5,51,39,54,68,56,67,57,19,57,183,55,60,53,186,49,78,45,53,40,203,34,104,29,97,24,3,20,134,16, +238,13,19,12,195,10,217,9,61,9,222,8,150,8,41,8,95,7,47,6,179,4,234,2,173,0,239,253,2,251,102,248, +80,246,155,244,42,243,56,242,12,242,148,242,113,243,78,244,29,245,246,245,196,246,56,247,13,247,81,246,62,245,0,244, +179,242,117,241,77,240,26,239,199,237,108,236,46,235,22,234,33,233,84,232,184,231,76,231,7,231,219,230,177,230,123,230, +67,230,30,230,33,230,93,230,227,230,191,231,239,232,116,234,90,236,169,238,78,241,25,244,211,246,73,249,97,251,27,253, +119,254,73,255,103,255,245,254,82,254,173,253,216,252,168,251,66,250,242,248,210,247,199,246,178,245,146,244,108,243,53,242, +238,240,174,239,147,238,170,237,6,237,201,236,10,237,190,237,209,238,89,240,155,242,218,245,26,250,30,255,158,4,110,10, +131,16,206,22,31,29,37,35,127,40,228,44,59,48,133,50,179,51,164,51,67,50,142,47,142,43,101,38,83,32,150,25, +74,18,109,10,18,2,136,249,48,241,56,233,149,225,66,218,98,211,37,205,162,199,217,194,195,190,104,187,227,184,89,183, +221,182,117,183,36,185,237,187,200,191,167,196,120,202,41,209,155,216,164,224,22,233,207,241,192,250,211,3,213,12,148,21, +247,29,253,37,145,45,128,52,162,58,240,63,119,68,50,72,4,75,211,76,156,77,112,77,106,76,161,74,29,72,220,68, +249,64,180,60,59,56,135,51,118,46,5,41,94,35,194,29,101,24,95,19,170,14,56,10,17,6,80,2,11,255,77,252, +35,250,167,248,230,247,206,247,59,248,26,249,116,250,74,252,121,254,207,0,54,3,181,5,76,8,224,10,67,13,95,15, +59,17,211,18,250,19,126,20,94,20,188,19,168,18,16,17,225,14,37,12,248,8,104,5,105,1,223,252,186,247,255,241, +197,235,53,229,125,222,206,215,76,209,45,203,200,197,132,193,161,190,28,189,225,188,2,190,151,192,109,196,20,201,69,206, +251,211,31,218,93,224,111,230,72,236,221,241,0,247,151,251,215,255,21,4,103,8,161,12,173,16,197,20,45,25,217,29, +131,34,16,39,154,43,41,48,120,52,39,56,242,58,170,60,27,61,34,60,217,57,121,54,32,50,215,44,213,38,144,32, +130,26,248,20,39,16,57,12,58,9,20,7,153,5,161,4,1,4,140,3,12,3,83,2,78,1,254,255,74,254,6,252, +51,249,34,246,72,243,232,240,7,239,146,237,145,236,43,236,124,236,103,237,160,238,238,239,75,241,186,242,17,244,11,245, +124,245,113,245,14,245,118,244,204,243,41,243,126,242,158,241,123,240,62,239,22,238,17,237,37,236,79,235,149,234,251,233, +113,233,225,232,67,232,164,231,25,231,167,230,96,230,97,230,192,230,122,231,155,232,74,234,164,236,152,239,234,242,95,246, +204,249,7,253,223,255,47,2,226,3,225,4,33,5,194,4,3,4,12,3,217,1,109,0,249,254,179,253,160,252,151,251, +120,250,57,249,223,247,103,246,216,244,63,243,168,241,20,240,145,238,72,237,90,236,203,235,163,235,21,236,108,237,209,239, +53,243,105,247,69,252,175,1,151,7,223,13,85,20,180,26,163,32,210,37,23,42,106,45,193,47,4,49,33,49,14,48, +199,45,79,42,197,37,93,32,59,26,113,19,24,12,96,4,135,252,179,244,246,236,96,229,18,222,45,215,200,208,239,202, +171,197,2,193,6,189,212,185,134,183,38,182,191,181,103,182,56,184,62,187,111,191,184,196,7,203,79,210,122,218,103,227, +233,236,213,246,246,0,21,11,14,21,201,30,44,40,16,49,80,57,194,64,54,71,145,76,209,80,2,84,28,86,22,87, +246,86,205,85,168,83,152,80,198,76,98,72,124,67,254,61,225,55,74,49,112,42,123,35,140,28,206,21,86,15,36,9, +66,3,221,253,42,249,64,245,38,242,237,239,181,238,137,238,79,239,215,240,2,243,191,245,222,248,34,252,109,255,206,2, +60,6,128,9,96,12,206,14,218,16,123,18,153,19,50,20,90,20,25,20,94,19,36,18,123,16,104,14,217,11,194,8, +34,5,242,0,19,252,106,246,251,239,238,232,131,225,248,217,136,210,129,203,74,197,59,192,127,188,37,186,85,185,77,186, +24,189,92,193,136,198,51,204,74,210,189,216,60,223,97,229,19,235,112,240,108,245,207,249,147,253,24,1,210,4,217,8, +8,13,92,17,12,22,47,27,124,32,148,37,84,42,203,46,251,50,175,54,145,57,82,59,181,59,155,58,13,56,81,52, +182,47,106,42,133,36,82,30,71,24,185,18,204,13,173,9,167,6,221,4,22,4,226,3,246,3,73,4,217,4,121,5, +215,5,184,5,17,5,229,3,44,2,238,255,115,253,40,251,89,249,7,248,9,247,78,246,228,245,217,245,13,246,77,246, +118,246,149,246,197,246,247,246,225,246,68,246,53,245,1,244,226,242,228,241,252,240,20,240,30,239,33,238,54,237,110,236, +201,235,61,235,193,234,86,234,254,233,169,233,67,233,209,232,116,232,64,232,39,232,50,232,148,232,126,233,231,234,175,236, +213,238,106,241,84,244,89,247,75,250,27,253,181,255,238,1,156,3,171,4,21,5,224,4,47,4,54,3,21,2,217,0, +151,255,123,254,162,253,14,253,154,252,33,252,152,251,11,251,116,250,187,249,218,248,226,247,217,246,198,245,198,244,243,243, +72,243,184,242,109,242,181,242,194,243,131,245,208,247,151,250,226,253,177,1,230,5,81,10,190,14,254,18,237,22,108,26, +86,29,138,31,239,32,123,33,38,33,229,31,193,29,214,26,68,23,14,19,49,14,200,8,18,3,72,253,106,247,94,241, +56,235,55,229,128,223,7,218,193,212,187,207,6,203,178,198,224,194,171,191,32,189,83,187,107,186,143,186,204,187,20,190, +86,193,146,197,216,202,46,209,131,216,174,224,132,233,220,242,141,252,118,6,126,16,145,26,139,36,35,46,14,55,34,63, +78,70,124,76,137,81,103,85,25,88,178,89,63,90,202,89,90,88,0,86,220,82,6,79,127,74,69,69,116,63,50,57, +162,50,219,43,247,36,254,29,233,22,198,15,200,8,45,2,26,252,145,246,156,241,109,237,70,234,57,232,37,231,236,230, +130,231,212,232,193,234,50,237,46,240,185,243,172,247,192,251,192,255,169,3,120,7,12,11,60,14,245,16,38,19,194,20, +199,21,59,22,18,22,60,21,192,19,178,17,19,15,191,11,149,7,154,2,237,252,179,246,15,240,40,233,59,226,136,219, +76,213,195,207,47,203,192,199,138,197,147,196,223,196,84,198,184,200,211,203,132,207,187,211,86,216,32,221,245,225,231,230, +7,236,40,241,21,246,238,250,28,0,213,5,235,11,22,18,56,24,74,30,41,36,146,41,86,46,112,50,223,53,138,56, +66,58,221,58,64,58,101,56,102,53,127,49,240,44,224,39,96,34,152,28,216,22,124,17,185,12,168,8,111,5,46,3, +200,1,226,0,60,0,216,255,190,255,200,255,176,255,61,255,99,254,61,253,238,251,138,250,35,249,240,247,61,247,24,247, +52,247,46,247,241,246,179,246,153,246,121,246,19,246,116,245,227,244,125,244,14,244,83,243,84,242,85,241,135,240,236,239, +130,239,76,239,40,239,219,238,88,238,218,237,147,237,119,237,91,237,55,237,32,237,37,237,71,237,142,237,252,237,129,238, +0,239,122,239,28,240,21,241,92,242,196,243,70,245,4,247,7,249,20,251,226,252,94,254,156,255,156,0,62,1,104,1, +32,1,121,0,132,255,84,254,3,253,170,251,96,250,78,249,146,248,36,248,227,247,191,247,184,247,196,247,195,247,156,247, +83,247,248,246,150,246,56,246,245,245,232,245,7,246,50,246,107,246,238,246,245,247,138,249,148,251,240,253,126,0,43,3, +4,6,31,9,105,12,166,15,158,18,54,21,113,23,75,25,165,26,85,27,71,27,136,26,42,25,52,23,164,20,119,17, +181,13,116,9,210,4,237,255,221,250,174,245,107,240,38,235,249,229,248,224,35,220,112,215,216,210,104,206,72,202,173,198, +176,195,87,193,184,191,1,191,76,191,137,192,169,194,184,197,191,201,181,206,153,212,115,219,61,227,207,235,233,244,80,254, +225,7,138,17,41,27,139,36,133,45,245,53,178,61,149,68,145,74,173,79,236,83,54,87,116,89,165,90,222,90,32,90, +95,88,163,85,14,82,186,77,172,72,221,66,84,60,44,53,146,45,185,37,205,29,229,21,9,14,73,6,207,254,207,247, +121,241,241,235,80,231,171,227,14,225,124,223,240,222,92,223,174,224,207,226,181,229,89,233,149,237,45,242,243,246,214,251, +191,0,134,5,8,10,59,14,30,18,143,21,92,24,112,26,219,27,153,28,127,28,115,27,145,25,2,23,193,19,161,15, +145,10,186,4,90,254,142,247,102,240,9,233,157,225,58,218,9,211,98,204,171,198,39,194,236,190,251,188,97,188,28,189, +3,191,221,193,154,197,71,202,194,207,187,213,2,220,170,226,184,233,222,240,196,247,124,254,95,5,130,12,152,19,89,26, +199,32,244,38,182,44,188,49,222,53,58,57,246,59,248,61,252,62,200,62,73,61,148,58,207,54,39,50,203,44,232,38, +150,32,236,25,44,19,182,12,219,6,222,1,5,254,115,251,9,250,128,249,146,249,25,250,19,251,113,252,239,253,50,255, +18,0,163,0,241,0,208,0,34,0,44,255,100,254,237,253,116,253,165,252,127,251,50,250,216,248,93,247,170,245,222,243, +43,242,152,240,253,238,66,237,130,235,233,233,143,232,129,231,217,230,163,230,175,230,172,230,137,230,132,230,201,230,87,231, +35,232,62,233,186,234,142,236,151,238,191,240,14,243,133,245,3,248,102,250,179,252,2,255,80,1,125,3,113,5,57,7, +232,8,97,10,102,11,219,11,201,11,43,11,247,9,40,8,197,5,224,2,169,255,89,252,30,249,20,246,79,243,236,240, +19,239,222,237,67,237,30,237,74,237,153,237,227,237,35,238,108,238,215,238,104,239,24,240,234,240,245,241,59,243,164,244, +49,246,34,248,184,250,244,253,146,1,72,5,255,8,196,12,147,16,84,20,240,23,55,27,212,29,143,31,121,32,180,32, +51,32,201,30,103,28,59,25,135,21,93,17,169,12,124,7,4,2,92,252,145,246,214,240,103,235,89,230,161,225,54,221, +45,217,159,213,128,210,161,207,227,204,77,202,250,199,6,198,133,196,138,195,61,195,204,195,67,197,145,199,160,202,102,206, +230,210,53,216,101,222,111,229,49,237,106,245,206,253,42,6,117,14,165,22,164,30,91,38,170,45,102,52,112,58,182,63, +39,68,208,71,204,74,35,77,196,78,169,79,214,79,79,79,26,78,55,76,170,73,123,70,176,66,62,62,24,57,75,51, +243,44,53,38,42,31,225,23,124,16,59,9,64,2,142,251,65,245,162,239,232,234,21,231,16,228,210,225,105,224,217,223, +2,224,197,224,38,226,55,228,254,230,111,234,114,238,222,242,156,247,156,252,204,1,32,7,143,12,240,17,249,22,117,27, +70,31,80,34,111,36,131,37,120,37,80,36,15,34,168,30,28,26,138,20,28,14,3,7,105,255,100,247,19,239,186,230, +146,222,173,214,45,207,117,200,228,194,146,190,107,187,128,185,22,185,100,186,40,189,216,192,47,197,79,202,85,208,9,215, +30,222,135,229,87,237,103,245,82,253,249,4,164,12,120,20,35,28,70,35,222,41,26,48,239,53,10,59,37,63,75,66, +154,68,241,69,11,70,204,68,65,66,119,62,116,57,79,51,55,44,104,36,4,28,31,19,27,10,157,1,26,250,188,243, +171,238,32,235,44,233,157,232,23,233,72,234,20,236,116,238,47,241,234,243,109,246,188,248,215,250,156,252,235,253,229,254, +209,255,179,0,66,1,76,1,255,0,157,0,57,0,174,255,210,254,173,253,126,252,100,251,63,250,214,248,21,247,16,245, +246,242,241,240,22,239,98,237,171,235,202,233,235,231,127,230,186,229,117,229,148,229,47,230,97,231,36,233,97,235,253,237, +231,240,4,244,37,247,40,250,32,253,34,0,24,3,211,5,71,8,146,10,221,12,17,15,224,16,17,18,151,18,113,18, +143,17,236,15,136,13,107,10,197,6,204,2,158,254,70,250,234,245,198,241,14,238,212,234,16,232,192,229,239,227,144,226, +133,225,204,224,125,224,163,224,63,225,88,226,247,227,45,230,244,232,38,236,164,239,133,243,229,247,182,252,199,1,227,6, +225,11,173,16,47,21,64,25,191,28,143,31,136,33,141,34,165,34,222,33,56,32,191,29,145,26,203,22,133,18,203,13, +144,8,214,2,179,252,64,246,156,239,255,232,149,226,105,220,132,214,9,209,28,204,211,199,52,196,62,193,246,190,111,189, +182,188,202,188,153,189,23,191,83,193,112,196,99,200,248,204,21,210,194,215,253,221,174,228,186,235,11,243,149,250,75,2, +19,10,209,17,116,25,230,32,3,40,179,46,225,52,111,58,82,63,148,67,51,71,29,74,65,76,137,77,234,77,127,77, +113,76,212,74,189,72,70,70,110,67,39,64,115,60,103,56,14,52,101,47,104,42,27,37,128,31,157,25,137,19,116,13, +125,7,163,1,248,251,172,246,208,241,87,237,74,233,218,229,54,227,102,225,84,224,251,223,111,224,170,225,124,227,200,229, +164,232,46,236,101,240,40,245,67,250,142,255,250,4,117,10,226,15,53,21,97,26,46,31,82,35,159,38,253,40,81,42, +126,42,113,41,44,39,191,35,43,31,117,25,201,18,102,11,114,3,9,251,78,242,110,233,165,224,51,216,58,208,198,200, +16,194,129,188,109,184,221,181,162,180,172,180,53,182,112,185,35,190,215,195,81,202,163,209,196,217,102,226,51,235,34,244, +81,253,153,6,147,15,12,24,51,32,29,40,125,47,246,53,125,59,62,64,49,68,9,71,156,72,42,73,239,72,196,71, +89,69,154,65,168,60,166,54,172,47,217,39,110,31,180,22,204,13,197,4,243,251,225,243,240,236,70,231,249,226,40,224, +216,222,214,222,192,223,80,225,128,227,77,230,122,233,173,236,185,239,156,242,83,245,193,247,221,249,215,251,236,253,16,0, +252,1,135,3,194,4,202,5,150,6,239,6,169,6,215,5,176,4,66,3,111,1,27,255,82,252,63,249,24,246,0,243, +23,240,113,237,249,234,136,232,63,230,126,228,114,227,3,227,31,227,229,227,118,229,203,231,177,234,255,237,180,241,206,245, +34,250,132,254,239,2,107,7,215,11,245,15,164,19,0,23,38,26,245,28,21,31,66,32,97,32,94,31,47,29,222,25, +134,21,76,16,89,10,228,3,45,253,113,246,230,239,193,233,63,228,140,223,187,219,216,216,216,214,150,213,239,212,222,212, +111,213,176,214,182,216,126,219,228,222,199,226,15,231,158,235,90,240,66,245,105,250,203,255,60,5,112,10,56,15,146,19, +139,23,27,27,31,30,103,32,194,33,17,34,80,33,134,31,193,28,27,25,173,20,147,15,240,9,227,3,125,253,214,246, +13,240,70,233,169,226,100,220,154,214,100,209,219,204,21,201,24,198,229,195,126,194,220,193,239,193,169,194,20,196,60,198, +31,201,181,204,1,209,254,213,129,219,88,225,119,231,223,237,117,244,8,251,135,1,12,8,178,14,83,21,155,27,89,33, +153,38,116,43,231,47,223,51,73,55,27,58,94,60,18,62,45,63,178,63,177,63,44,63,33,62,168,60,232,58,251,56, +238,54,202,52,135,50,27,48,141,45,229,42,30,40,39,37,0,34,176,30,37,27,67,23,11,19,159,14,17,10,94,5, +146,0,207,251,53,247,216,242,200,238,35,235,5,232,120,229,118,227,13,226,89,225,108,225,66,226,221,227,68,230,124,233, +123,237,33,242,68,247,196,252,126,2,58,8,190,13,247,18,228,23,86,28,255,31,177,34,130,36,149,37,225,37,48,37, +105,35,174,32,37,29,198,24,119,19,70,13,95,6,221,254,201,246,68,238,151,229,5,221,175,212,183,204,109,197,51,191, +71,186,188,182,162,180,38,180,103,181,56,184,87,188,178,193,74,200,217,207,235,215,84,224,50,233,136,242,2,252,61,5, +32,14,200,22,45,31,25,39,102,46,46,53,146,59,120,65,140,70,140,74,123,77,117,79,107,80,25,80,58,78,174,74, +114,69,168,62,154,54,154,45,215,35,92,25,78,14,13,3,22,248,213,237,175,228,3,221,9,215,180,210,204,207,32,206, +157,205,71,206,31,208,253,210,154,214,212,218,180,223,26,229,158,234,230,239,251,244,19,250,42,255,250,3,81,8,48,12, +172,15,183,18,26,21,175,22,137,23,202,23,91,23,246,21,125,19,14,16,210,11,233,6,154,1,72,252,39,247,37,242, +43,237,112,232,94,228,56,225,6,223,194,221,123,221,65,222,12,224,208,226,131,230,18,235,72,240,224,245,167,251,140,1, +137,7,124,13,34,19,79,24,5,29,65,33,202,36,78,39,140,40,100,40,214,38,1,36,3,32,233,26,210,20,25,14, +50,7,82,0,102,249,123,242,240,235,39,230,49,225,243,220,101,217,150,214,115,212,215,210,188,209,72,209,153,209,176,210, +133,212,38,215,167,218,233,222,151,227,123,232,169,237,71,243,64,249,90,255,104,5,79,11,231,16,8,22,162,26,156,30, +189,33,195,35,148,36,65,36,237,34,157,32,56,29,176,24,30,19,177,12,148,5,234,253,227,245,189,237,178,229,247,221, +185,214,38,208,100,202,121,197,99,193,64,190,65,188,119,187,191,187,242,188,254,190,220,193,133,197,237,201,6,207,197,212, +42,219,44,226,154,233,42,241,174,248,45,0,169,7,2,15,12,22,177,28,218,34,98,40,23,45,215,48,152,51,113,53, +119,54,174,54,32,54,236,52,56,51,22,49,141,46,178,43,171,40,158,37,176,34,15,32,223,29,46,28,246,26,48,26, +213,25,207,25,3,26,81,26,144,26,153,26,84,26,179,25,185,24,121,23,5,22,86,20,73,18,204,15,248,12,250,9, +236,6,206,3,177,0,192,253,15,251,149,248,68,246,41,244,92,242,239,240,241,239,115,239,129,239,29,240,75,241,22,243, +139,245,167,248,70,252,54,0,75,4,113,8,160,12,192,16,163,20,32,24,32,27,145,29,85,31,76,32,104,32,175,31, +42,30,220,27,205,24,14,21,167,16,151,11,217,5,117,255,130,248,37,241,126,233,168,225,219,217,112,210,180,203,205,197, +226,192,58,189,41,187,201,186,246,187,119,190,50,194,29,199,6,205,157,211,184,218,104,226,184,234,118,243,86,252,48,5, +13,14,241,22,181,31,31,40,22,48,153,55,146,62,196,68,253,73,48,78,81,81,45,83,124,83,20,82,237,78,15,74, +143,67,136,59,28,50,121,39,227,27,156,15,253,2,143,246,230,234,101,224,68,215,195,207,20,202,46,198,228,195,35,195, +234,195,25,198,104,201,149,205,133,210,41,216,91,222,206,228,45,235,80,241,79,247,92,253,112,3,72,9,161,14,113,19, +211,23,189,27,229,30,245,32,209,33,147,33,72,32,216,29,52,26,131,21,11,16,7,10,155,3,236,252,54,246,173,239, +121,233,214,227,19,223,115,219,12,217,227,215,249,215,69,217,180,219,60,223,215,227,91,233,106,239,171,245,254,251,106,2, +224,8,44,15,14,21,90,26,9,31,22,35,94,38,160,40,180,41,162,41,132,40,101,38,54,35,238,30,172,25,185,19, +88,13,157,6,149,255,118,248,150,241,30,235,2,229,74,223,42,218,196,213,252,209,178,206,3,204,59,202,138,201,235,201, +74,203,168,205,10,209,81,213,68,218,201,223,223,229,115,236,74,243,40,250,225,0,74,7,45,13,88,18,162,22,237,25, +36,28,55,29,38,29,15,28,41,26,149,23,58,20,243,15,202,10,250,4,182,254,28,248,66,241,87,234,146,227,33,221, +27,215,136,209,129,204,44,200,175,196,29,194,130,192,234,191,100,192,248,193,151,196,34,200,128,204,170,209,157,215,66,222, +105,229,230,236,150,244,87,252,246,3,55,11,227,17,225,23,43,29,179,33,103,37,74,40,108,42,217,43,159,44,210,44, +129,44,160,43,35,42,22,40,152,37,201,34,202,31,184,28,171,25,190,22,19,20,196,17,231,15,145,14,220,13,205,13, +90,14,119,15,12,17,238,18,237,20,235,22,223,24,180,26,72,28,132,29,105,30,251,30,46,31,234,30,21,30,164,28, +162,26,48,24,117,21,127,18,71,15,216,11,85,8,225,4,149,1,139,254,231,251,192,249,23,248,240,246,88,246,97,246, +14,247,81,248,17,250,54,252,184,254,146,1,175,4,227,7,250,10,209,13,88,16,134,18,77,20,162,21,146,22,52,23, +144,23,140,23,7,23,234,21,47,20,203,17,173,14,224,10,150,6,252,1,6,253,144,247,160,241,100,235,255,228,137,222, +70,216,166,210,1,206,127,202,73,200,142,199,82,200,78,202,38,205,185,208,40,213,114,218,63,224,54,230,98,236,2,243, +244,249,186,0,18,7,52,13,102,19,145,25,117,31,7,37,114,42,186,47,159,52,203,56,7,60,55,62,57,63,241,62, +88,61,102,58,245,53,235,47,108,40,209,31,105,22,80,12,146,1,122,246,170,235,222,225,151,217,12,211,99,206,180,203, +232,202,181,203,208,205,9,209,60,213,48,218,155,223,57,229,234,234,177,240,113,246,230,251,229,0,158,5,92,10,28,15, +138,19,96,23,154,26,69,29,61,31,50,32,247,31,172,30,139,28,158,25,201,21,18,17,177,11,239,5,19,0,105,250, +35,245,75,240,236,235,72,232,176,229,63,228,219,227,135,228,125,230,225,233,119,238,207,243,166,249,238,255,126,6,238,12, +204,18,226,23,64,28,3,32,60,35,226,37,226,39,57,41,243,41,15,42,85,41,113,39,68,36,6,32,4,27,77,21, +197,14,135,7,251,255,124,248,26,241,210,233,231,226,188,220,128,215,47,211,230,207,221,205,25,205,75,205,40,206,167,207, +225,209,202,212,62,216,45,220,147,224,78,229,19,234,168,238,255,242,35,247,14,251,186,254,53,2,148,5,194,8,141,11, +220,13,182,15,20,17,195,17,128,17,48,16,236,13,239,10,104,7,89,3,164,254,87,249,193,243,47,238,168,232,19,227, +143,221,131,216,87,212,36,209,210,206,87,205,207,204,81,205,207,206,31,209,14,212,110,215,41,219,54,223,122,227,207,231, +35,236,141,240,35,245,224,249,160,254,51,3,98,7,3,11,12,14,137,16,135,18,21,20,68,21,25,22,141,22,149,22, +40,22,70,21,252,19,98,18,137,16,117,14,54,12,223,9,115,7,246,4,136,2,97,0,160,254,70,253,98,252,31,252, +169,252,7,254,25,0,194,2,243,5,150,9,133,13,155,17,183,21,185,25,131,29,250,32,1,36,120,38,63,40,71,41, +141,41,26,41,244,39,33,38,171,35,161,32,13,29,235,24,74,20,88,15,87,10,123,5,241,0,244,252,175,249,39,247, +67,245,242,243,50,243,4,243,111,243,132,244,86,246,222,248,245,251,96,255,231,2,107,6,217,9,20,13,241,15,72,18, +10,20,71,21,30,22,151,22,161,22,52,22,106,21,98,20,31,19,132,17,122,15,9,13,75,10,97,7,93,4,74,1, +36,254,218,250,79,247,113,243,75,239,241,234,118,230,12,226,19,222,250,218,7,217,69,216,186,216,128,218,160,221,200,225, +99,230,10,235,172,239,65,244,144,248,103,252,219,255,34,3,61,6,255,8,75,11,58,13,245,14,135,16,232,17,37,19, +113,20,236,21,110,23,182,24,160,25,41,26,63,26,193,25,151,24,163,22,185,19,196,15,241,10,144,5,220,255,215,249, +122,243,0,237,253,230,18,226,163,222,215,220,195,220,104,222,141,225,190,229,116,234,81,239,59,244,63,249,84,254,83,3, +22,8,148,12,196,16,116,20,89,23,86,25,142,26,54,27,76,27,161,26,35,25,253,22,90,20,36,17,52,13,148,8, +127,3,38,254,166,248,26,243,182,237,211,232,215,228,20,226,148,224,38,224,156,224,0,226,131,228,44,232,184,236,230,241, +187,247,79,254,118,5,202,12,253,19,253,26,186,33,237,39,36,45,0,49,108,51,164,52,249,52,138,52,53,51,215,48, +133,45,128,41,230,36,136,31,21,25,133,17,58,9,170,0,255,247,74,239,225,230,72,223,200,216,89,211,251,206,239,203, +106,202,87,202,131,203,220,205,83,209,169,213,132,218,166,223,249,228,107,234,215,239,24,245,36,250,244,254,88,3,2,7, +196,9,152,11,130,12,128,12,193,11,162,10,87,9,184,7,128,5,174,2,120,255,245,251,9,248,150,243,183,238,209,233, +85,229,112,225,238,221,139,218,87,215,168,212,180,210,96,209,137,208,88,208,46,209,60,211,87,214,59,218,201,222,2,228, +211,233,2,240,76,246,128,252,136,2,74,8,155,13,76,18,57,22,67,25,102,27,187,28,97,29,85,29,126,28,208,26, +91,24,57,21,139,17,128,13,67,9,237,4,132,0,17,252,174,247,126,243,149,239,233,235,112,232,76,229,193,226,242,224, +202,223,49,223,59,223,16,224,181,225,8,228,241,230,124,234,188,238,159,243,248,248,160,254,127,4,137,10,165,16,158,22, +41,28,11,33,46,37,148,40,63,43,35,45,37,46,59,46,135,45,58,44,110,42,27,40,57,37,210,33,247,29,173,25, +248,20,248,15,229,10,245,5,74,1,250,252,35,249,237,245,121,243,191,241,177,240,81,240,172,240,201,241,174,243,107,246, +248,249,30,254,143,2,11,7,103,11,124,15,24,19,31,22,155,24,157,26,40,28,46,29,165,29,136,29,219,28,174,27, +18,26,26,24,212,21,65,19,94,16,49,13,222,9,143,6,88,3,32,0,200,252,101,249,64,246,138,243,54,241,53,239, +170,237,205,236,146,236,175,236,236,236,82,237,242,237,189,238,186,239,39,241,52,243,188,245,128,248,116,251,158,254,188,1, +104,4,126,6,46,8,143,9,104,10,129,10,14,10,125,9,246,8,60,8,23,7,169,5,60,4,218,2,112,1,24,0, +14,255,92,254,212,253,78,253,194,252,45,252,123,251,147,250,133,249,123,248,119,247,91,246,51,245,88,244,4,244,22,244, +75,244,150,244,41,245,56,246,226,247,74,250,146,253,181,1,100,6,50,11,209,15,35,20,10,24,76,27,162,29,225,30, +19,31,94,30,219,28,126,26,62,23,80,19,20,15,184,10,41,6,95,1,146,252,9,248,220,243,0,240,113,236,76,233, +185,230,199,228,112,227,174,226,129,226,236,226,25,228,68,230,125,233,132,237,22,242,42,247,208,252,241,2,68,9,153,15, +240,21,64,28,66,34,157,39,45,44,0,48,28,51,79,53,72,54,209,53,253,51,22,49,106,45,41,41,95,36,22,31, +110,25,154,19,169,13,112,7,192,0,170,249,132,242,149,235,217,228,65,222,34,216,255,210,7,207,255,203,201,201,177,200, +8,201,180,202,98,205,231,208,61,213,51,218,126,223,242,228,123,234,251,239,90,245,157,250,203,255,197,4,87,9,93,13, +191,16,91,19,5,21,194,21,217,21,149,21,237,20,170,19,189,17,67,15,73,12,185,8,128,4,178,255,122,250,26,245, +239,239,64,235,10,231,34,227,155,223,207,220,236,218,198,217,43,217,52,217,39,218,38,220,10,223,149,226,174,230,80,235, +95,240,159,245,214,250,211,255,107,4,123,8,233,11,172,14,206,16,103,18,144,19,88,20,199,20,223,20,152,20,216,19, +142,18,206,16,198,14,144,12,45,10,157,7,253,4,113,2,24,0,248,253,20,252,119,250,41,249,34,248,100,247,10,247, +40,247,176,247,130,248,123,249,137,250,167,251,206,252,237,253,4,255,42,0,108,1,169,2,183,3,131,4,10,5,66,5, +25,5,158,4,254,3,84,3,139,2,134,1,68,0,221,254,108,253,4,252,166,250,85,249,38,248,32,247,47,246,64,245, +104,244,216,243,184,243,19,244,231,244,51,246,244,247,41,250,202,252,201,255,20,3,149,6,57,10,222,13,98,17,180,20, +204,23,145,26,218,28,128,30,113,31,177,31,91,31,142,30,97,29,222,27,15,26,17,24,5,22,232,19,144,17,220,14, +219,11,168,8,74,5,184,1,238,253,250,249,253,245,31,242,117,238,255,234,180,231,154,228,209,225,136,223,217,221,209,220, +137,220,39,221,191,222,57,225,113,228,87,232,240,236,47,242,221,247,177,253,119,3,22,9,117,14,105,19,185,23,67,27, +5,30,7,32,75,33,217,33,192,33,21,33,242,31,125,30,211,28,235,26,149,24,175,21,80,18,177,14,219,10,160,6, +245,1,24,253,89,248,210,243,117,239,72,235,122,231,70,228,200,225,21,224,97,223,224,223,142,225,58,228,186,231,234,235, +145,240,111,245,78,250,13,255,129,3,105,7,150,10,26,13,51,15,250,16,78,18,15,19,72,19,26,19,162,18,3,18, +99,17,220,16,88,16,172,15,186,14,134,13,33,12,138,10,156,8,65,6,157,3,239,0,97,254,245,251,162,249,105,247, +104,245,216,243,220,242,97,242,77,242,177,242,170,243,35,245,222,246,160,248,87,250,19,252,236,253,240,255,3,2,226,3, +104,5,209,6,126,8,118,10,91,12,226,13,22,15,46,16,73,17,92,18,90,19,69,20,26,21,184,21,254,21,224,21, +93,21,104,20,240,18,249,16,137,14,146,11,15,8,50,4,86,0,172,252,21,249,96,245,139,241,184,237,251,233,64,230, +126,226,208,222,109,219,118,216,10,214,98,212,191,211,62,212,193,213,26,216,63,219,67,223,28,228,139,233,76,239,46,245, +243,250,84,0,53,5,157,9,143,13,2,17,248,19,121,22,140,24,49,26,107,27,57,28,147,28,110,28,196,27,161,26, +42,25,127,23,165,21,133,19,255,16,11,14,190,10,65,7,182,3,33,0,123,252,222,248,144,245,190,242,101,240,109,238, +216,236,177,235,254,234,183,234,207,234,69,235,31,236,98,237,3,239,249,240,66,243,215,245,155,248,98,251,6,254,129,0, +227,2,65,5,176,7,46,10,163,12,254,14,73,17,134,19,160,21,122,23,3,25,41,26,223,26,42,27,26,27,184,26, +10,26,26,25,244,23,161,22,34,21,107,19,112,17,46,15,177,12,17,10,94,7,163,4,231,1,60,255,176,252,73,250, +21,248,47,246,173,244,152,243,234,242,156,242,163,242,231,242,76,243,209,243,142,244,137,245,158,246,157,247,111,248,24,249, +163,249,5,250,40,250,17,250,224,249,150,249,14,249,52,248,37,247,20,246,31,245,89,244,211,243,158,243,194,243,69,244, +37,245,84,246,196,247,122,249,122,251,166,253,211,255,244,1,17,4,39,6,41,8,5,10,166,11,8,13,55,14,69,15, +49,16,237,16,109,17,194,17,0,18,25,18,217,17,28,17,241,15,121,14,189,12,164,10,26,8,32,5,213,1,89,254, +187,250,255,246,40,243,79,239,167,235,93,232,138,229,64,227,151,225,172,224,135,224,33,225,103,226,86,228,251,230,78,234, +23,238,15,242,21,246,48,250,86,254,89,2,8,6,99,9,131,12,115,15,46,18,187,20,42,23,136,25,224,27,56,30, +123,32,117,34,224,35,133,36,91,36,111,35,177,33,247,30,66,27,201,22,199,17,89,12,143,6,147,0,166,250,252,244, +182,239,0,235,28,231,57,228,92,226,112,225,101,225,42,226,157,227,148,229,222,231,74,234,165,236,183,238,109,240,255,241, +202,243,249,245,106,248,234,250,118,253,35,0,247,2,228,5,236,8,4,12,242,14,104,17,42,19,45,20,125,20,17,20, +194,18,113,16,63,13,121,9,109,5,81,1,73,253,115,249,11,246,95,243,153,241,163,240,95,240,216,240,33,242,44,244, +188,246,145,249,128,252,127,255,149,2,196,5,214,8,102,11,58,13,149,14,231,15,50,17,255,17,235,17,19,17,215,15, +103,14,165,12,119,10,2,8,124,5,231,2,24,0,15,253,19,250,124,247,99,245,174,243,54,242,242,240,8,240,198,239, +102,240,208,241,176,243,207,245,40,248,192,250,102,253,200,255,175,1,26,3,23,4,149,4,153,4,92,4,38,4,1,4, +194,3,53,3,80,2,44,1,216,255,73,254,101,252,19,250,66,247,2,244,131,240,231,236,46,233,118,229,16,226,65,223, +6,221,78,219,68,218,57,218,71,219,51,221,192,223,254,226,48,231,113,236,135,242,13,249,184,255,104,6,11,13,131,19, +152,25,7,31,177,35,182,39,65,43,56,46,72,48,72,49,88,49,170,48,53,47,213,44,141,41,151,37,35,33,60,28, +230,22,71,17,138,11,215,5,85,0,28,251,62,246,212,241,1,238,217,234,87,232,108,230,31,229,158,228,29,229,160,230, +255,232,8,236,158,239,176,243,45,248,242,252,200,1,139,6,57,11,220,15,107,20,205,24,230,28,155,32,205,35,87,38, +18,40,235,40,245,40,92,40,54,39,117,37,8,35,0,32,127,28,161,24,132,20,78,16,33,12,24,8,65,4,159,0, +51,253,16,250,75,247,233,244,236,242,104,241,123,240,38,240,77,240,217,240,213,241,81,243,52,245,61,247,62,249,55,251, +63,253,82,255,76,1,0,3,77,4,38,5,145,5,159,5,103,5,242,4,54,4,56,3,24,2,242,0,200,255,135,254, +33,253,165,251,49,250,211,248,138,247,91,246,77,245,86,244,97,243,102,242,119,241,191,240,114,240,182,240,138,241,219,242, +153,244,196,246,82,249,34,252,17,255,25,2,61,5,105,8,118,11,69,14,205,16,1,19,197,20,237,21,95,22,33,22, +71,21,224,19,248,17,162,15,251,12,26,10,12,7,219,3,154,0,93,253,56,250,65,247,145,244,52,242,44,240,140,238, +112,237,227,236,209,236,36,237,216,237,254,238,168,240,208,242,90,245,45,248,51,251,95,254,172,1,22,5,123,8,172,11, +152,14,72,17,174,19,155,21,247,22,236,23,180,24,76,25,130,25,85,25,254,24,153,24,231,23,144,22,125,20,207,17, +141,14,152,10,236,5,187,0,60,251,131,245,161,239,192,233,23,228,233,222,138,218,97,215,176,213,108,213,97,214,117,216, +177,219,242,223,207,228,213,233,213,238,207,243,152,248,187,252,205,255,220,1,80,3,110,4,32,5,50,5,146,4,102,3, +16,2,1,1,102,0,13,0,171,255,43,255,150,254,203,253,118,252,98,250,183,247,185,244,130,241,19,238,140,234,15,231, +167,227,105,224,164,221,181,219,190,218,168,218,97,219,243,220,85,223,92,226,221,229,184,233,191,237,185,241,134,245,48,249, +162,252,134,255,152,1,7,3,64,4,103,5,63,6,147,6,116,6,21,6,158,5,43,5,205,4,137,4,91,4,79,4, +128,4,230,4,70,5,127,5,190,5,50,6,169,6,203,6,149,6,110,6,184,6,128,7,147,8,189,9,237,10,24,12, +31,13,214,13,33,14,243,13,75,13,65,12,13,11,238,9,7,9,92,8,241,7,213,7,1,8,75,8,160,8,22,9, +190,9,98,10,178,10,142,10,16,10,68,9,22,8,130,6,178,4,208,2,230,0,247,254,26,253,105,251,232,249,157,248, +158,247,11,247,237,246,50,247,209,247,200,248,246,249,37,251,45,252,8,253,177,253,32,254,101,254,172,254,20,255,148,255, +15,0,130,0,7,1,168,1,75,2,220,2,102,3,248,3,146,4,33,5,153,5,242,5,43,6,54,6,249,5,88,5, +61,4,158,2,135,0,22,254,108,251,170,248,251,245,149,243,167,241,67,240,100,239,237,238,198,238,229,238,82,239,7,240, +237,240,241,241,39,243,172,244,126,246,132,248,159,250,179,252,166,254,98,0,220,1,23,3,39,4,25,5,227,5,116,6, +201,6,239,6,232,6,179,6,86,6,221,5,76,5,154,4,211,3,23,3,121,2,213,1,255,0,238,255,191,254,142,253, +108,252,89,251,75,250,46,249,3,248,237,246,23,246,137,245,38,245,219,244,188,244,234,244,93,245,226,245,73,246,157,246, +20,247,202,247,167,248,135,249,105,250,102,251,127,252,156,253,160,254,127,255,68,0,253,0,181,1,111,2,33,3,186,3, +46,4,141,4,248,4,123,5,1,6,123,6,14,7,239,7,36,9,129,10,236,11,127,13,70,15,23,17,179,18,21,20, +96,21,145,22,118,23,242,23,24,24,0,24,160,23,232,22,229,21,195,20,158,19,115,18,70,17,69,16,174,15,139,15, +191,15,53,16,239,16,228,17,255,18,47,20,107,21,165,22,195,23,184,24,132,25,38,26,148,26,200,26,197,26,146,26, +49,26,156,25,203,24,183,23,101,22,228,20,62,19,114,17,125,15,100,13,42,11,192,8,22,6,63,3,108,0,201,253, +89,251,5,249,198,246,181,244,245,242,141,241,116,240,175,239,86,239,121,239,13,240,243,240,8,242,52,243,102,244,140,245, +148,246,109,247,33,248,216,248,205,249,27,251,171,252,75,254,208,255,29,1,23,2,166,2,183,2,60,2,43,1,128,255, +57,253,107,250,65,247,231,243,114,240,243,236,138,233,96,230,145,227,43,225,50,223,184,221,202,220,98,220,99,220,168,220, +9,221,106,221,200,221,51,222,172,222,32,223,132,223,245,223,160,224,149,225,208,226,85,228,57,230,139,232,66,235,55,238, +54,241,9,244,142,246,184,248,133,250,221,251,151,252,146,252,203,251,79,250,44,248,135,245,165,242,198,239,252,236,76,234, +220,231,233,229,146,228,202,227,128,227,198,227,177,228,56,230,43,232,94,234,176,236,25,239,166,241,109,244,101,247,100,250, +68,253,12,0,212,2,154,5,69,8,204,10,66,13,180,15,27,18,104,20,146,22,143,24,83,26,224,27,55,29,63,30, +214,30,245,30,187,30,80,30,194,29,19,29,81,28,154,27,242,26,64,26,118,25,168,24,240,23,80,23,184,22,34,22, +157,21,52,21,238,20,211,20,240,20,82,21,254,21,229,22,237,23,2,25,13,26,236,26,120,27,145,27,39,27,66,26, +238,24,56,23,50,21,248,18,168,16,83,14,7,12,219,9,232,7,59,6,217,4,189,3,229,2,84,2,1,2,208,1, +157,1,93,1,34,1,247,0,214,0,186,0,170,0,165,0,155,0,128,0,93,0,66,0,37,0,240,255,162,255,90,255, +38,255,235,254,121,254,193,253,210,252,172,251,52,250,80,248,12,246,135,243,205,240,214,237,161,234,71,231,236,227,177,224, +179,221,11,219,203,216,249,214,149,213,166,212,63,212,109,212,35,213,79,214,245,215,36,218,216,220,233,223,38,227,123,230, +246,233,162,237,110,241,54,245,217,248,62,252,85,255,25,2,134,4,135,6,252,7,211,8,26,9,233,8,79,8,78,7, +228,5,25,4,3,2,184,255,55,253,117,250,122,247,106,244,111,241,155,238,224,235,41,233,131,230,24,228,8,226,95,224, +40,223,115,222,84,222,220,222,18,224,235,225,74,228,15,231,38,234,130,237,17,241,171,244,32,248,82,251,60,254,228,0, +67,3,75,5,248,6,78,8,88,9,27,10,151,10,206,10,204,10,164,10,95,10,3,10,152,9,30,9,142,8,232,7, +66,7,185,6,89,6,34,6,20,6,64,6,182,6,118,7,124,8,202,9,101,11,62,13,60,15,75,17,104,19,139,21, +162,23,150,25,92,27,240,28,71,30,84,31,18,32,130,32,170,32,148,32,75,32,219,31,65,31,124,30,141,29,125,28, +91,27,58,26,41,25,40,24,52,23,80,22,130,21,206,20,49,20,165,19,45,19,215,18,169,18,159,18,185,18,1,19, +126,19,34,20,220,20,163,21,116,22,72,23,14,24,189,24,87,25,226,25,80,26,137,26,132,26,78,26,239,25,102,25, +173,24,187,23,137,22,18,21,92,19,103,17,36,15,136,12,143,9,65,6,171,2,223,254,237,250,230,246,228,242,11,239, +123,235,85,232,182,229,173,227,62,226,104,225,32,225,89,225,2,226,14,227,112,228,19,230,220,231,180,233,155,235,150,237, +161,239,167,241,148,243,96,245,15,247,168,248,48,250,161,251,240,252,19,254,2,255,164,255,222,255,169,255,26,255,68,254, +39,253,186,251,250,249,229,247,119,245,178,242,174,239,136,236,92,233,69,230,98,227,212,224,167,222,211,220,76,219,24,218, +86,217,28,217,97,217,4,218,235,218,14,220,102,221,229,222,130,224,64,226,28,228,12,230,1,232,239,233,218,235,213,237, +238,239,33,242,87,244,115,246,94,248,11,250,127,251,202,252,251,253,16,255,248,255,163,0,10,1,42,1,245,0,96,0, +119,255,94,254,63,253,49,252,48,251,48,250,53,249,93,248,200,247,134,247,169,247,63,248,65,249,153,250,64,252,65,254, +148,0,18,3,162,5,69,8,4,11,199,13,89,16,153,18,156,20,146,22,143,24,107,26,237,27,249,28,172,29,59,30, +199,30,75,31,174,31,225,31,245,31,7,32,37,32,61,32,63,32,61,32,99,32,192,32,51,33,133,33,155,33,141,33, +144,33,195,33,20,34,100,34,176,34,12,35,122,35,213,35,239,35,181,35,50,35,119,34,138,33,104,32,15,31,127,29, +189,27,199,25,156,23,63,21,190,18,36,16,118,13,181,10,229,7,15,5,56,2,116,255,212,252,98,250,36,248,40,246, +128,244,48,243,60,242,172,241,134,241,188,241,48,242,200,242,130,243,108,244,144,245,223,246,56,248,123,249,146,250,111,251, +5,252,76,252,72,252,8,252,164,251,29,251,96,250,94,249,34,248,199,246,92,245,221,243,59,242,125,240,186,238,3,237, +78,235,139,233,182,231,220,229,15,228,92,226,196,224,55,223,179,221,79,220,37,219,56,218,127,217,255,216,213,216,28,217, +212,217,228,218,48,220,176,221,104,223,78,225,69,227,53,229,21,231,232,232,169,234,66,236,161,237,195,238,174,239,100,240, +221,240,12,241,243,240,169,240,82,240,12,240,216,239,167,239,115,239,67,239,38,239,31,239,46,239,93,239,191,239,98,240, +61,241,53,242,53,243,57,244,78,245,123,246,183,247,235,248,22,250,74,251,156,252,6,254,105,255,177,0,217,1,239,2, +247,3,245,4,235,5,212,6,160,7,68,8,191,8,8,9,22,9,232,8,141,8,15,8,104,7,150,6,167,5,181,4, +212,3,19,3,123,2,27,2,0,2,51,2,179,2,130,3,163,4,18,6,199,7,189,9,238,11,77,14,207,16,104,19, +7,22,154,24,13,27,92,29,132,31,118,33,25,35,87,36,40,37,147,37,158,37,74,37,147,36,126,35,23,34,109,32, +133,30,96,28,3,26,129,23,234,20,62,18,127,15,191,12,22,10,154,7,88,5,96,3,182,1,94,0,89,255,169,254, +82,254,85,254,181,254,114,255,134,0,232,1,137,3,85,5,62,7,58,9,66,11,73,13,58,15,2,17,154,18,252,19, +25,21,221,21,59,22,55,22,211,21,14,21,221,19,61,18,59,16,228,13,55,11,50,8,228,4,103,1,217,253,85,250, +248,246,222,243,26,241,179,238,169,236,255,234,182,233,215,232,109,232,130,232,24,233,37,234,154,235,104,237,131,239,220,241, +100,244,12,247,188,249,93,252,229,254,73,1,124,3,112,5,34,7,140,8,159,9,79,10,145,10,94,10,181,9,162,8, +56,7,128,5,129,3,65,1,199,254,27,252,80,249,122,246,168,243,232,240,85,238,14,236,49,234,203,232,215,231,81,231, +59,231,143,231,62,232,55,233,112,234,220,235,102,237,247,238,131,240,20,242,184,243,108,245,35,247,206,248,99,250,212,251, +18,253,20,254,215,254,86,255,141,255,140,255,95,255,251,254,71,254,62,253,245,251,133,250,247,248,78,247,148,245,226,243, +85,242,254,240,229,239,9,239,116,238,52,238,86,238,221,238,194,239,249,240,122,242,65,244,74,246,134,248,224,250,72,253, +184,255,41,2,141,4,221,6,21,9,45,11,22,13,194,14,47,16,89,17,61,18,214,18,28,19,18,19,202,18,87,18, +191,17,246,16,234,15,152,14,29,13,158,11,43,10,198,8,111,7,44,6,5,5,3,4,44,3,136,2,29,2,246,1, +27,2,141,2,73,3,75,4,148,5,36,7,250,8,9,11,59,13,125,15,194,17,245,19,252,21,199,23,89,25,178,26, +204,27,146,28,246,28,0,29,193,28,62,28,108,27,66,26,205,24,39,23,105,21,159,19,208,17,16,16,118,14,15,13, +212,11,187,10,186,9,201,8,234,7,42,7,149,6,36,6,204,5,142,5,113,5,111,5,120,5,123,5,122,5,128,5, +148,5,167,5,172,5,154,5,114,5,50,5,217,4,95,4,193,3,0,3,31,2,34,1,13,0,224,254,155,253,64,252, +210,250,77,249,181,247,19,246,117,244,233,242,126,241,65,240,52,239,81,238,147,237,249,236,137,236,72,236,62,236,108,236, +207,236,100,237,31,238,235,238,182,239,123,240,55,241,230,241,122,242,229,242,29,243,31,243,236,242,130,242,229,241,32,241, +59,240,53,239,5,238,173,236,51,235,162,233,10,232,129,230,29,229,236,227,251,226,75,226,213,225,144,225,119,225,143,225, +229,225,124,226,72,227,62,228,94,229,173,230,44,232,220,233,180,235,169,237,184,239,227,241,43,244,131,246,223,248,53,251, +130,253,189,255,213,1,181,3,76,5,154,6,168,7,118,8,4,9,80,9,84,9,12,9,131,8,201,7,234,6,237,5, +218,4,192,3,172,2,167,1,174,0,204,255,18,255,139,254,54,254,13,254,15,254,61,254,152,254,26,255,190,255,130,0, +102,1,103,2,126,3,161,4,202,5,234,6,249,7,251,8,242,9,221,10,182,11,117,12,19,13,138,13,218,13,255,13, +241,13,173,13,59,13,159,12,227,11,14,11,39,10,56,9,81,8,120,7,173,6,244,5,86,5,222,4,146,4,120,4, +156,4,4,5,165,5,111,6,88,7,92,8,117,9,154,10,196,11,237,12,16,14,33,15,23,16,236,16,150,17,5,18, +52,18,44,18,241,17,130,17,214,16,240,15,222,14,178,13,106,12,1,11,123,9,235,7,94,6,213,4,84,3,230,1, +160,0,142,255,180,254,12,254,143,253,62,253,35,253,63,253,145,253,17,254,181,254,113,255,64,0,29,1,1,2,229,2, +197,3,152,4,91,5,9,6,154,6,9,7,81,7,116,7,116,7,78,7,254,6,132,6,231,5,39,5,56,4,18,3, +186,1,61,0,165,254,250,252,64,251,130,249,203,247,41,246,171,244,91,243,62,242,96,241,195,240,106,240,87,240,138,240, +249,240,157,241,114,242,111,243,147,244,217,245,59,247,170,248,34,250,158,251,25,253,142,254,244,255,63,1,100,2,98,3, +59,4,238,4,117,5,207,5,251,5,246,5,191,5,83,5,180,4,231,3,244,2,226,1,192,0,153,255,118,254,90,253, +81,252,103,251,161,250,6,250,160,249,112,249,121,249,188,249,50,250,210,250,152,251,125,252,114,253,108,254,100,255,84,0, +51,1,247,1,156,2,35,3,137,3,206,3,240,3,238,3,197,3,117,3,4,3,121,2,218,1,43,1,111,0,168,255, +213,254,250,253,31,253,78,252,136,251,206,250,36,250,145,249,28,249,206,248,169,248,170,248,208,248,29,249,149,249,54,250, +242,250,186,251,139,252,107,253,88,254,76,255,62,0,40,1,6,2,209,2,135,3,41,4,176,4,14,5,65,5,82,5, +69,5,27,5,211,4,112,4,246,3,103,3,195,2,13,2,77,1,142,0,218,255,58,255,176,254,60,254,222,253,159,253, +137,253,161,253,226,253,65,254,184,254,69,255,235,255,172,0,138,1,135,2,160,3,197,4,226,5,233,6,209,7,147,8, +50,9,180,9,28,10,105,10,152,10,161,10,125,10,47,10,193,9,62,9,172,8,9,8,73,7,105,6,111,5,97,4, +68,3,33,2,0,1,232,255,223,254,238,253,35,253,130,252,15,252,206,251,195,251,237,251,64,252,180,252,67,253,234,253, +164,254,103,255,48,0,1,1,213,1,162,2,93,3,0,4,142,4,16,5,133,5,226,5,33,6,68,6,76,6,61,6, +27,6,235,5,176,5,108,5,23,5,174,4,48,4,166,3,23,3,140,2,9,2,143,1,28,1,176,0,83,0,9,0, +209,255,169,255,145,255,142,255,162,255,204,255,7,0,82,0,171,0,13,1,112,1,206,1,33,2,100,2,150,2,183,2, +192,2,171,2,110,2,2,2,106,1,168,0,191,255,181,254,151,253,111,252,70,251,37,250,19,249,22,248,47,247,95,246, +168,245,15,245,149,244,57,244,254,243,227,243,228,243,255,243,49,244,114,244,188,244,15,245,106,245,201,245,36,246,118,246, +190,246,0,247,59,247,110,247,149,247,172,247,177,247,160,247,115,247,44,247,208,246,100,246,234,245,98,245,202,244,41,244, +136,243,241,242,104,242,243,241,148,241,81,241,50,241,58,241,105,241,194,241,70,242,239,242,186,243,164,244,170,245,195,246, +236,247,33,249,96,250,168,251,243,252,62,254,130,255,183,0,216,1,227,2,212,3,170,4,99,5,254,5,123,6,217,6, +23,7,60,7,78,7,69,7,32,7,229,6,154,6,69,6,236,5,148,5,62,5,236,4,161,4,101,4,63,4,48,4, +45,4,52,4,75,4,122,4,190,4,23,5,130,5,254,5,135,6,26,7,175,7,61,8,187,8,36,9,121,9,188,9, +236,9,8,10,11,10,243,9,185,9,92,9,223,8,75,8,165,7,242,6,59,6,131,5,202,4,16,4,93,3,182,2, +36,2,164,1,46,1,194,0,103,0,35,0,249,255,238,255,5,0,62,0,146,0,243,0,88,1,188,1,27,2,113,2, +196,2,25,3,109,3,184,3,242,3,22,4,33,4,22,4,251,3,214,3,162,3,85,3,239,2,114,2,224,1,54,1, +121,0,178,255,234,254,41,254,117,253,212,252,72,252,211,251,124,251,73,251,51,251,50,251,70,251,112,251,181,251,18,252, +124,252,238,252,111,253,255,253,153,254,48,255,193,255,78,0,226,0,123,1,15,2,151,2,17,3,124,3,218,3,43,4, +111,4,164,4,200,4,212,4,191,4,130,4,33,4,168,3,35,3,149,2,252,1,85,1,160,0,227,255,39,255,111,254, +188,253,17,253,113,252,230,251,124,251,51,251,5,251,244,250,252,250,26,251,79,251,155,251,255,251,119,252,1,253,150,253, +48,254,201,254,93,255,233,255,106,0,218,0,47,1,107,1,148,1,172,1,181,1,178,1,162,1,131,1,81,1,14,1, +195,0,118,0,45,0,232,255,164,255,94,255,18,255,196,254,117,254,40,254,223,253,160,253,112,253,77,253,50,253,33,253, +34,253,54,253,95,253,160,253,246,253,94,254,209,254,66,255,165,255,249,255,64,0,128,0,181,0,217,0,232,0,227,0, +205,0,163,0,100,0,19,0,184,255,91,255,1,255,172,254,99,254,39,254,251,253,227,253,226,253,249,253,41,254,106,254, +182,254,15,255,126,255,9,0,168,0,80,1,247,1,149,2,41,3,179,3,54,4,179,4,43,5,155,5,4,6,95,6, +163,6,199,6,199,6,164,6,105,6,27,6,186,5,69,5,190,4,39,4,131,3,211,2,23,2,89,1,163,0,251,255, +98,255,213,254,85,254,230,253,145,253,93,253,74,253,88,253,129,253,191,253,17,254,117,254,237,254,120,255,20,0,186,0, +101,1,12,2,162,2,34,3,137,3,214,3,15,4,51,4,64,4,54,4,22,4,224,3,153,3,67,3,222,2,105,2, +228,1,82,1,183,0,27,0,125,255,224,254,73,254,189,253,55,253,182,252,56,252,194,251,91,251,11,251,217,250,196,250, +203,250,236,250,36,251,110,251,195,251,33,252,136,252,243,252,97,253,212,253,73,254,191,254,50,255,151,255,233,255,36,0, +76,0,97,0,105,0,96,0,74,0,42,0,0,0,203,255,139,255,67,255,243,254,162,254,83,254,9,254,197,253,136,253, +83,253,37,253,2,253,237,252,235,252,250,252,25,253,66,253,113,253,161,253,213,253,15,254,79,254,149,254,227,254,55,255, +145,255,236,255,63,0,132,0,186,0,223,0,243,0,245,0,228,0,195,0,152,0,100,0,35,0,208,255,106,255,248,254, +132,254,21,254,171,253,70,253,228,252,133,252,47,252,232,251,183,251,158,251,160,251,185,251,226,251,26,252,99,252,191,252, +39,253,148,253,2,254,118,254,241,254,107,255,218,255,61,0,151,0,233,0,48,1,105,1,148,1,180,1,204,1,215,1, +210,1,184,1,136,1,65,1,230,0,121,0,250,255,106,255,207,254,52,254,156,253,5,253,111,252,221,251,83,251,214,250, +105,250,15,250,210,249,180,249,173,249,183,249,212,249,5,250,75,250,161,250,0,251,104,251,216,251,77,252,196,252,58,253, +168,253,11,254,96,254,168,254,226,254,9,255,29,255,33,255,23,255,254,254,212,254,158,254,95,254,26,254,206,253,125,253, +41,253,217,252,140,252,68,252,2,252,200,251,150,251,109,251,83,251,73,251,80,251,102,251,138,251,184,251,236,251,38,252, +105,252,183,252,20,253,125,253,234,253,84,254,187,254,33,255,132,255,230,255,71,0,165,0,0,1,86,1,163,1,234,1, +45,2,104,2,159,2,211,2,253,2,27,3,53,3,84,3,121,3,165,3,218,3,22,4,88,4,160,4,234,4,57,5, +139,5,217,5,30,6,91,6,146,6,194,6,238,6,20,7,56,7,90,7,123,7,155,7,186,7,217,7,243,7,0,8, +1,8,244,7,218,7,182,7,136,7,78,7,4,7,171,6,74,6,231,5,131,5,29,5,181,4,76,4,226,3,122,3, +22,3,185,2,100,2,30,2,228,1,178,1,135,1,99,1,74,1,59,1,51,1,50,1,56,1,68,1,89,1,115,1, +142,1,177,1,221,1,13,2,62,2,107,2,146,2,179,2,208,2,227,2,233,2,233,2,227,2,215,2,189,2,139,2, +64,2,231,1,135,1,34,1,182,0,62,0,192,255,64,255,191,254,63,254,194,253,72,253,218,252,127,252,59,252,10,252, +235,251,219,251,219,251,240,251,27,252,86,252,161,252,249,252,91,253,199,253,57,254,169,254,21,255,129,255,238,255,88,0, +184,0,15,1,97,1,173,1,237,1,28,2,60,2,81,2,95,2,101,2,97,2,85,2,65,2,34,2,243,1,180,1, +101,1,11,1,175,0,83,0,247,255,155,255,64,255,242,254,186,254,156,254,147,254,152,254,167,254,195,254,241,254,46,255, +115,255,182,255,246,255,51,0,107,0,152,0,189,0,220,0,246,0,10,1,23,1,25,1,15,1,253,0,225,0,190,0, +147,0,102,0,58,0,22,0,248,255,222,255,202,255,188,255,177,255,171,255,169,255,169,255,178,255,197,255,220,255,242,255, +6,0,27,0,49,0,73,0,98,0,125,0,154,0,182,0,207,0,229,0,249,0,12,1,26,1,37,1,45,1,46,1, +37,1,19,1,250,0,222,0,195,0,168,0,139,0,112,0,88,0,65,0,46,0,33,0,28,0,28,0,31,0,36,0, +45,0,57,0,71,0,87,0,108,0,137,0,173,0,217,0,12,1,71,1,134,1,197,1,3,2,68,2,132,2,194,2, +250,2,43,3,85,3,120,3,145,3,158,3,159,3,148,3,127,3,98,3,61,3,13,3,215,2,161,2,111,2,68,2, +29,2,247,1,207,1,163,1,116,1,66,1,16,1,221,0,173,0,131,0,100,0,83,0,75,0,75,0,84,0,99,0, +119,0,146,0,181,0,222,0,13,1,66,1,123,1,181,1,240,1,40,2,94,2,143,2,187,2,226,2,4,3,31,3, +48,3,53,3,42,3,16,3,235,2,190,2,140,2,87,2,27,2,214,1,141,1,65,1,246,0,178,0,123,0,75,0, +31,0,246,255,209,255,177,255,153,255,133,255,121,255,116,255,119,255,126,255,134,255,144,255,154,255,164,255,169,255,169,255, +165,255,153,255,134,255,112,255,88,255,63,255,38,255,14,255,247,254,223,254,192,254,153,254,111,254,70,254,31,254,248,253, +206,253,159,253,110,253,63,253,18,253,234,252,200,252,170,252,147,252,130,252,122,252,119,252,121,252,127,252,144,252,169,252, +198,252,234,252,18,253,59,253,103,253,151,253,201,253,254,253,51,254,97,254,132,254,153,254,161,254,157,254,141,254,115,254, +83,254,50,254,15,254,233,253,190,253,141,253,93,253,50,253,15,253,242,252,223,252,212,252,208,252,206,252,207,252,212,252, +224,252,240,252,4,253,26,253,48,253,72,253,98,253,123,253,149,253,180,253,209,253,233,253,2,254,28,254,59,254,97,254, +141,254,189,254,238,254,28,255,65,255,94,255,114,255,123,255,121,255,102,255,69,255,23,255,223,254,161,254,96,254,29,254, +217,253,151,253,90,253,34,253,236,252,185,252,139,252,105,252,81,252,64,252,51,252,41,252,34,252,36,252,48,252,69,252, +95,252,126,252,161,252,202,252,254,252,57,253,124,253,197,253,16,254,93,254,170,254,244,254,58,255,123,255,181,255,231,255, +16,0,48,0,68,0,76,0,77,0,73,0,64,0,53,0,40,0,26,0,7,0,243,255,225,255,207,255,193,255,183,255, +178,255,180,255,191,255,209,255,236,255,16,0,59,0,102,0,142,0,177,0,208,0,236,0,3,1,23,1,40,1,53,1, +60,1,62,1,60,1,56,1,53,1,52,1,54,1,58,1,63,1,69,1,80,1,97,1,116,1,130,1,138,1,140,1, +140,1,136,1,130,1,126,1,126,1,131,1,141,1,159,1,186,1,221,1,5,2,47,2,91,2,134,2,173,2,209,2, +239,2,6,3,21,3,28,3,31,3,31,3,25,3,12,3,248,2,221,2,189,2,149,2,104,2,54,2,0,2,197,1, +134,1,71,1,10,1,210,0,162,0,121,0,81,0,44,0,8,0,229,255,196,255,165,255,135,255,107,255,79,255,49,255, +18,255,246,254,224,254,209,254,202,254,201,254,205,254,214,254,228,254,249,254,18,255,49,255,85,255,118,255,145,255,165,255, +180,255,189,255,193,255,186,255,171,255,148,255,116,255,74,255,24,255,224,254,163,254,100,254,38,254,233,253,174,253,117,253, +62,253,12,253,227,252,194,252,171,252,159,252,156,252,165,252,181,252,196,252,211,252,226,252,244,252,11,253,39,253,64,253, +87,253,110,253,136,253,162,253,188,253,214,253,243,253,21,254,57,254,90,254,115,254,137,254,161,254,181,254,196,254,206,254, +215,254,222,254,223,254,218,254,209,254,203,254,202,254,205,254,213,254,225,254,239,254,0,255,20,255,41,255,64,255,91,255, +120,255,150,255,180,255,209,255,237,255,10,0,41,0,75,0,111,0,141,0,165,0,186,0,204,0,213,0,215,0,210,0, +201,0,190,0,175,0,155,0,132,0,113,0,98,0,83,0,67,0,55,0,52,0,62,0,82,0,109,0,136,0,167,0, +206,0,251,0,44,1,99,1,158,1,223,1,37,2,101,2,157,2,206,2,249,2,28,3,54,3,70,3,75,3,77,3, +80,3,78,3,72,3,63,3,54,3,49,3,51,3,50,3,42,3,25,3,2,3,233,2,210,2,189,2,168,2,148,2, +130,2,116,2,108,2,104,2,104,2,109,2,120,2,139,2,159,2,179,2,201,2,230,2,7,3,34,3,54,3,69,3, +83,3,95,3,103,3,103,3,97,3,86,3,70,3,47,3,16,3,232,2,188,2,143,2,99,2,55,2,10,2,219,1, +175,1,136,1,97,1,56,1,12,1,227,0,195,0,168,0,143,0,118,0,97,0,80,0,66,0,52,0,34,0,15,0, +255,255,245,255,240,255,232,255,216,255,198,255,179,255,158,255,134,255,105,255,77,255,50,255,23,255,246,254,210,254,176,254, +148,254,130,254,120,254,109,254,96,254,88,254,85,254,84,254,80,254,72,254,62,254,52,254,43,254,34,254,27,254,25,254, +31,254,46,254,70,254,101,254,139,254,186,254,238,254,36,255,86,255,131,255,172,255,215,255,2,0,37,0,62,0,79,0, +91,0,99,0,99,0,92,0,77,0,57,0,37,0,17,0,253,255,234,255,216,255,199,255,182,255,166,255,148,255,135,255, +129,255,129,255,132,255,136,255,140,255,149,255,161,255,173,255,182,255,189,255,195,255,200,255,205,255,208,255,211,255,218,255, +228,255,237,255,245,255,255,255,9,0,18,0,26,0,31,0,31,0,32,0,32,0,27,0,12,0,244,255,213,255,182,255, +152,255,117,255,80,255,43,255,10,255,240,254,218,254,200,254,183,254,166,254,149,254,134,254,124,254,118,254,116,254,116,254, +116,254,117,254,119,254,126,254,137,254,153,254,175,254,201,254,227,254,5,255,46,255,89,255,130,255,167,255,200,255,230,255, +6,0,39,0,71,0,102,0,130,0,154,0,171,0,183,0,191,0,194,0,193,0,184,0,169,0,149,0,124,0,100,0, +78,0,57,0,42,0,29,0,17,0,8,0,2,0,252,255,245,255,239,255,228,255,218,255,211,255,206,255,205,255,207,255, +213,255,223,255,235,255,248,255,5,0,16,0,23,0,26,0,22,0,13,0,1,0,245,255,226,255,200,255,170,255,139,255, +109,255,85,255,65,255,48,255,32,255,10,255,240,254,217,254,196,254,181,254,174,254,174,254,178,254,185,254,194,254,205,254, +218,254,233,254,249,254,10,255,27,255,44,255,57,255,66,255,70,255,73,255,75,255,74,255,72,255,74,255,78,255,80,255, +81,255,82,255,81,255,80,255,76,255,66,255,51,255,30,255,5,255,233,254,205,254,177,254,151,254,123,254,96,254,71,254, +50,254,34,254,25,254,21,254,23,254,30,254,44,254,64,254,89,254,118,254,148,254,177,254,207,254,239,254,12,255,33,255, +51,255,68,255,81,255,92,255,103,255,112,255,119,255,125,255,129,255,135,255,147,255,162,255,176,255,189,255,199,255,206,255, +211,255,213,255,214,255,213,255,206,255,196,255,186,255,178,255,176,255,177,255,178,255,179,255,180,255,176,255,168,255,162,255, +158,255,155,255,152,255,151,255,152,255,155,255,160,255,169,255,178,255,185,255,190,255,194,255,200,255,205,255,206,255,204,255, +198,255,186,255,171,255,154,255,136,255,118,255,102,255,91,255,83,255,77,255,74,255,75,255,75,255,75,255,74,255,71,255, +68,255,62,255,58,255,57,255,57,255,60,255,67,255,75,255,80,255,82,255,81,255,80,255,82,255,87,255,95,255,107,255, +119,255,130,255,133,255,128,255,120,255,108,255,92,255,72,255,48,255,23,255,252,254,223,254,192,254,161,254,132,254,105,254, +83,254,65,254,51,254,39,254,28,254,18,254,9,254,3,254,0,254,0,254,6,254,16,254,33,254,59,254,92,254,129,254, +169,254,209,254,247,254,26,255,57,255,88,255,114,255,132,255,141,255,147,255,150,255,149,255,140,255,122,255,101,255,77,255, +50,255,23,255,251,254,227,254,205,254,183,254,162,254,139,254,115,254,96,254,79,254,66,254,59,254,57,254,58,254,61,254, +64,254,68,254,74,254,81,254,88,254,95,254,99,254,102,254,108,254,116,254,130,254,150,254,174,254,198,254,221,254,241,254, +5,255,27,255,48,255,69,255,88,255,103,255,115,255,125,255,134,255,145,255,158,255,170,255,180,255,189,255,194,255,198,255, +206,255,216,255,225,255,230,255,234,255,237,255,239,255,239,255,239,255,237,255,236,255,232,255,225,255,217,255,210,255,208,255, +209,255,211,255,214,255,219,255,227,255,239,255,255,255,18,0,37,0,55,0,74,0,92,0,108,0,123,0,136,0,149,0, +163,0,177,0,193,0,209,0,223,0,238,0,253,0,10,1,22,1,31,1,39,1,48,1,57,1,63,1,67,1,65,1, +61,1,56,1,48,1,40,1,30,1,18,1,6,1,251,0,241,0,235,0,230,0,223,0,215,0,204,0,189,0,175,0, +161,0,145,0,130,0,114,0,99,0,86,0,76,0,68,0,59,0,48,0,37,0,27,0,18,0,12,0,5,0,251,255, +245,255,241,255,239,255,234,255,227,255,219,255,209,255,198,255,187,255,175,255,163,255,153,255,148,255,146,255,147,255,155,255, +168,255,182,255,194,255,207,255,218,255,226,255,233,255,240,255,244,255,245,255,243,255,240,255,233,255,225,255,217,255,206,255, +194,255,182,255,170,255,153,255,133,255,111,255,91,255,72,255,51,255,30,255,12,255,251,254,238,254,228,254,215,254,200,254, +188,254,178,254,172,254,172,254,174,254,179,254,184,254,189,254,193,254,198,254,203,254,208,254,214,254,225,254,241,254,1,255, +21,255,42,255,62,255,82,255,102,255,120,255,140,255,158,255,170,255,179,255,183,255,181,255,176,255,168,255,159,255,151,255, +147,255,143,255,138,255,134,255,130,255,126,255,122,255,118,255,110,255,99,255,86,255,72,255,55,255,37,255,19,255,3,255, +248,254,241,254,235,254,233,254,236,254,245,254,4,255,27,255,53,255,79,255,106,255,134,255,161,255,189,255,216,255,242,255, +11,0,36,0,62,0,89,0,114,0,133,0,148,0,161,0,176,0,187,0,193,0,193,0,187,0,181,0,178,0,175,0, +174,0,175,0,174,0,169,0,163,0,159,0,155,0,152,0,147,0,140,0,133,0,124,0,117,0,111,0,108,0,110,0, +114,0,118,0,123,0,127,0,132,0,141,0,152,0,165,0,175,0,181,0,188,0,197,0,203,0,208,0,213,0,214,0, +214,0,212,0,208,0,205,0,204,0,201,0,197,0,191,0,186,0,181,0,179,0,180,0,183,0,187,0,192,0,196,0, +198,0,198,0,196,0,191,0,186,0,182,0,178,0,176,0,175,0,174,0,173,0,173,0,175,0,174,0,174,0,174,0, +173,0,171,0,168,0,163,0,152,0,136,0,114,0,92,0,71,0,49,0,28,0,9,0,250,255,241,255,235,255,235,255, +237,255,237,255,234,255,229,255,224,255,221,255,218,255,214,255,212,255,211,255,211,255,216,255,227,255,240,255,252,255,8,0, +19,0,34,0,50,0,66,0,84,0,102,0,119,0,132,0,138,0,140,0,138,0,134,0,127,0,115,0,101,0,86,0, +69,0,54,0,43,0,35,0,32,0,33,0,34,0,31,0,27,0,21,0,14,0,5,0,252,255,243,255,231,255,218,255, +205,255,195,255,186,255,180,255,175,255,172,255,174,255,178,255,181,255,182,255,183,255,187,255,193,255,200,255,206,255,212,255, +221,255,231,255,241,255,251,255,4,0,12,0,20,0,29,0,38,0,45,0,49,0,48,0,44,0,37,0,26,0,8,0, +240,255,216,255,195,255,175,255,159,255,143,255,132,255,127,255,125,255,126,255,129,255,131,255,132,255,134,255,135,255,138,255, +140,255,138,255,139,255,145,255,151,255,158,255,166,255,172,255,178,255,185,255,194,255,203,255,211,255,217,255,224,255,231,255, +236,255,239,255,239,255,236,255,233,255,230,255,228,255,226,255,224,255,225,255,232,255,240,255,251,255,2,0,2,0,254,255, +244,255,229,255,211,255,192,255,173,255,154,255,135,255,119,255,108,255,101,255,98,255,100,255,103,255,108,255,115,255,123,255, +128,255,131,255,129,255,122,255,114,255,109,255,107,255,107,255,109,255,113,255,121,255,132,255,144,255,157,255,168,255,177,255, +188,255,202,255,217,255,234,255,249,255,4,0,14,0,21,0,25,0,30,0,37,0,45,0,50,0,51,0,51,0,47,0, +39,0,30,0,20,0,11,0,7,0,6,0,6,0,8,0,11,0,14,0,19,0,24,0,29,0,33,0,36,0,40,0, +46,0,52,0,53,0,50,0,44,0,39,0,34,0,28,0,24,0,22,0,21,0,21,0,19,0,16,0,14,0,11,0, +9,0,8,0,6,0,0,0,249,255,240,255,231,255,218,255,203,255,189,255,175,255,163,255,156,255,152,255,148,255,150,255, +158,255,169,255,184,255,201,255,220,255,242,255,8,0,29,0,46,0,58,0,67,0,74,0,79,0,84,0,88,0,94,0, +99,0,101,0,101,0,97,0,92,0,86,0,79,0,71,0,62,0,51,0,40,0,32,0,26,0,23,0,20,0,16,0, +13,0,9,0,6,0,1,0,252,255,250,255,246,255,239,255,231,255,226,255,225,255,230,255,236,255,240,255,244,255,248,255, +254,255,6,0,13,0,20,0,28,0,34,0,38,0,41,0,42,0,39,0,33,0,25,0,17,0,9,0,254,255,243,255, +235,255,231,255,230,255,227,255,225,255,225,255,225,255,224,255,222,255,217,255,211,255,202,255,188,255,174,255,163,255,154,255, +147,255,142,255,139,255,138,255,139,255,141,255,142,255,142,255,144,255,148,255,152,255,157,255,162,255,168,255,175,255,184,255, +195,255,206,255,214,255,220,255,223,255,224,255,225,255,226,255,229,255,233,255,236,255,240,255,244,255,248,255,255,255,8,0, +15,0,22,0,29,0,38,0,46,0,55,0,61,0,66,0,70,0,75,0,88,0,105,0,123,0,140,0,155,0,168,0, +183,0,198,0,210,0,218,0,219,0,219,0,219,0,217,0,215,0,214,0,213,0,214,0,213,0,207,0,200,0,192,0, +182,0,174,0,167,0,162,0,160,0,157,0,152,0,144,0,133,0,119,0,103,0,87,0,71,0,51,0,32,0,13,0, +248,255,227,255,208,255,189,255,173,255,163,255,156,255,153,255,152,255,151,255,150,255,149,255,147,255,146,255,144,255,140,255, +135,255,131,255,128,255,126,255,124,255,122,255,119,255,118,255,117,255,115,255,111,255,103,255,93,255,84,255,74,255,63,255, +50,255,36,255,22,255,10,255,3,255,0,255,253,254,251,254,250,254,252,254,255,254,6,255,16,255,28,255,44,255,64,255, +84,255,105,255,128,255,149,255,167,255,181,255,192,255,204,255,213,255,219,255,223,255,227,255,232,255,236,255,239,255,243,255, +248,255,250,255,250,255,247,255,241,255,238,255,234,255,232,255,234,255,237,255,238,255,241,255,245,255,250,255,4,0,15,0, +27,0,37,0,46,0,52,0,57,0,60,0,61,0,59,0,56,0,53,0,51,0,48,0,44,0,37,0,32,0,32,0, +35,0,41,0,48,0,55,0,63,0,73,0,83,0,92,0,99,0,104,0,106,0,105,0,104,0,100,0,88,0,74,0, +63,0,57,0,55,0,55,0,56,0,58,0,63,0,69,0,77,0,85,0,93,0,101,0,106,0,109,0,112,0,113,0, +113,0,111,0,111,0,113,0,115,0,115,0,115,0,116,0,119,0,125,0,131,0,134,0,136,0,134,0,129,0,124,0, +119,0,116,0,111,0,106,0,100,0,94,0,84,0,76,0,69,0,66,0,65,0,64,0,65,0,65,0,63,0,61,0, +58,0,55,0,56,0,59,0,61,0,67,0,74,0,79,0,87,0,97,0,105,0,112,0,117,0,118,0,113,0,105,0, +93,0,78,0,61,0,42,0,21,0,255,255,232,255,210,255,191,255,173,255,157,255,142,255,131,255,125,255,121,255,120,255, +124,255,130,255,138,255,144,255,145,255,142,255,139,255,134,255,131,255,128,255,127,255,126,255,125,255,124,255,125,255,128,255, +131,255,136,255,142,255,147,255,151,255,154,255,157,255,162,255,169,255,175,255,181,255,184,255,184,255,185,255,186,255,187,255, +187,255,183,255,179,255,177,255,177,255,174,255,169,255,162,255,156,255,154,255,156,255,162,255,169,255,178,255,189,255,200,255, +211,255,221,255,229,255,234,255,237,255,236,255,235,255,237,255,237,255,238,255,237,255,232,255,223,255,212,255,201,255,194,255, +187,255,181,255,176,255,171,255,165,255,159,255,151,255,144,255,140,255,136,255,133,255,133,255,133,255,134,255,138,255,145,255, +153,255,160,255,168,255,178,255,189,255,204,255,225,255,245,255,9,0,27,0,44,0,56,0,62,0,65,0,67,0,66,0, +63,0,60,0,57,0,53,0,52,0,53,0,54,0,54,0,52,0,48,0,46,0,45,0,45,0,46,0,47,0,49,0, +52,0,57,0,61,0,64,0,67,0,70,0,71,0,74,0,77,0,81,0,89,0,96,0,102,0,108,0,111,0,109,0, +108,0,110,0,114,0,119,0,125,0,133,0,141,0,147,0,151,0,154,0,156,0,157,0,157,0,153,0,150,0,149,0, +147,0,146,0,145,0,142,0,139,0,137,0,134,0,131,0,128,0,126,0,124,0,123,0,124,0,131,0,144,0,159,0, +174,0,184,0,194,0,204,0,211,0,214,0,217,0,221,0,223,0,222,0,219,0,216,0,214,0,209,0,201,0,191,0, +179,0,166,0,157,0,154,0,155,0,159,0,163,0,167,0,170,0,172,0,173,0,170,0,163,0,156,0,148,0,138,0, +129,0,119,0,111,0,106,0,100,0,92,0,85,0,80,0,78,0,81,0,84,0,87,0,90,0,90,0,90,0,87,0, +83,0,82,0,84,0,88,0,86,0,81,0,75,0,72,0,69,0,65,0,59,0,52,0,49,0,47,0,47,0,51,0, +56,0,61,0,69,0,76,0,82,0,92,0,101,0,107,0,113,0,118,0,121,0,124,0,127,0,131,0,135,0,136,0, +136,0,136,0,137,0,137,0,135,0,133,0,130,0,128,0,126,0,123,0,118,0,115,0,115,0,114,0,112,0,112,0, +113,0,112,0,110,0,105,0,102,0,101,0,96,0,90,0,83,0,75,0,66,0,58,0,54,0,55,0,61,0,70,0, +80,0,92,0,104,0,117,0,131,0,144,0,156,0,167,0,175,0,176,0,171,0,160,0,145,0,132,0,125,0,121,0, +121,0,122,0,125,0,132,0,141,0,149,0,160,0,173,0,183,0,193,0,206,0,218,0,229,0,236,0,237,0,234,0, +230,0,224,0,217,0,210,0,204,0,200,0,198,0,198,0,199,0,202,0,206,0,212,0,214,0,213,0,208,0,199,0, +186,0,170,0,151,0,133,0,119,0,108,0,101,0,99,0,101,0,106,0,112,0,118,0,125,0,133,0,137,0,141,0, +147,0,152,0,155,0,156,0,157,0,159,0,162,0,163,0,162,0,160,0,155,0,152,0,150,0,150,0,153,0,156,0, +159,0,163,0,167,0,171,0,174,0,178,0,183,0,188,0,191,0,194,0,197,0,203,0,208,0,211,0,212,0,212,0, +213,0,211,0,204,0,194,0,187,0,182,0,179,0,176,0,171,0,168,0,170,0,173,0,174,0,177,0,179,0,181,0, +183,0,184,0,188,0,196,0,206,0,214,0,219,0,221,0,220,0,218,0,216,0,217,0,218,0,217,0,212,0,207,0, +202,0,198,0,193,0,189,0,188,0,186,0,185,0,187,0,191,0,195,0,202,0,207,0,210,0,211,0,210,0,207,0, +203,0,198,0,193,0,188,0,184,0,183,0,181,0,178,0,174,0,171,0,168,0,166,0,162,0,160,0,160,0,163,0, +166,0,169,0,172,0,173,0,173,0,175,0,177,0,180,0,184,0,186,0,186,0,186,0,187,0,186,0,183,0,178,0, +171,0,165,0,160,0,157,0,155,0,152,0,149,0,146,0,142,0,137,0,133,0,128,0,121,0,117,0,111,0,105,0, +100,0,97,0,94,0,93,0,91,0,89,0,89,0,88,0,89,0,91,0,91,0,90,0,90,0,88,0,84,0,81,0, +77,0,75,0,75,0,77,0,81,0,87,0,91,0,94,0,99,0,104,0,111,0,117,0,121,0,121,0,118,0,115,0, +113,0,113,0,115,0,120,0,125,0,131,0,138,0,145,0,154,0,163,0,170,0,179,0,188,0,191,0,190,0,183,0, +169,0,153,0,141,0,130,0,122,0,118,0,114,0,111,0,111,0,114,0,116,0,120,0,126,0,132,0,138,0,144,0, +152,0,159,0,163,0,161,0,156,0,147,0,136,0,125,0,116,0,108,0,103,0,103,0,105,0,111,0,119,0,124,0, +131,0,137,0,139,0,137,0,131,0,120,0,104,0,85,0,66,0,50,0,38,0,32,0,32,0,33,0,37,0,44,0, +50,0,56,0,61,0,63,0,65,0,67,0,67,0,62,0,54,0,46,0,42,0,37,0,30,0,21,0,12,0,2,0, +251,255,246,255,242,255,241,255,241,255,242,255,244,255,245,255,245,255,247,255,249,255,252,255,255,255,255,255,253,255,253,255, +1,0,7,0,11,0,14,0,19,0,23,0,26,0,27,0,26,0,27,0,30,0,34,0,37,0,39,0,39,0,40,0, +42,0,44,0,46,0,50,0,54,0,56,0,55,0,56,0,60,0,67,0,76,0,83,0,83,0,82,0,82,0,83,0, +85,0,87,0,86,0,82,0,74,0,64,0,57,0,52,0,49,0,50,0,53,0,54,0,56,0,58,0,63,0,70,0, +73,0,72,0,70,0,68,0,66,0,64,0,63,0,60,0,57,0,54,0,53,0,51,0,48,0,46,0,43,0,40,0, +40,0,42,0,44,0,48,0,55,0,63,0,72,0,80,0,89,0,99,0,109,0,118,0,127,0,133,0,138,0,142,0, +148,0,154,0,159,0,161,0,164,0,169,0,176,0,185,0,191,0,196,0,199,0,202,0,205,0,206,0,207,0,206,0, +204,0,202,0,199,0,192,0,185,0,181,0,177,0,174,0,172,0,173,0,175,0,179,0,183,0,188,0,196,0,202,0, +207,0,212,0,216,0,218,0,221,0,220,0,217,0,212,0,204,0,197,0,193,0,190,0,187,0,183,0,178,0,172,0, +165,0,154,0,143,0,130,0,114,0,98,0,84,0,71,0,60,0,50,0,41,0,34,0,28,0,26,0,28,0,33,0, +38,0,43,0,46,0,48,0,48,0,48,0,47,0,45,0,42,0,37,0,29,0,19,0,10,0,1,0,251,255,248,255, +243,255,235,255,229,255,224,255,223,255,226,255,231,255,236,255,239,255,240,255,238,255,235,255,236,255,236,255,232,255,224,255, +214,255,202,255,192,255,183,255,177,255,175,255,175,255,176,255,181,255,186,255,192,255,202,255,214,255,225,255,236,255,246,255, +251,255,255,255,0,0,254,255,251,255,246,255,240,255,234,255,226,255,218,255,213,255,213,255,213,255,212,255,210,255,209,255, +209,255,213,255,222,255,233,255,244,255,253,255,3,0,6,0,6,0,5,0,3,0,3,0,1,0,251,255,242,255,232,255, +223,255,216,255,211,255,206,255,203,255,199,255,194,255,192,255,193,255,197,255,201,255,206,255,210,255,215,255,222,255,231,255, +241,255,252,255,7,0,17,0,24,0,29,0,32,0,37,0,39,0,39,0,40,0,39,0,38,0,36,0,34,0,34,0, +35,0,36,0,34,0,34,0,36,0,39,0,41,0,40,0,40,0,43,0,49,0,56,0,63,0,69,0,73,0,78,0, +84,0,92,0,99,0,106,0,115,0,125,0,133,0,143,0,152,0,163,0,174,0,182,0,190,0,199,0,204,0,203,0, +199,0,192,0,182,0,172,0,160,0,149,0,139,0,125,0,110,0,98,0,92,0,88,0,81,0,72,0,63,0,57,0, +58,0,64,0,70,0,74,0,78,0,83,0,93,0,106,0,117,0,126,0,133,0,138,0,142,0,144,0,141,0,134,0, +122,0,109,0,97,0,85,0,73,0,63,0,55,0,51,0,50,0,51,0,53,0,54,0,55,0,58,0,61,0,65,0, +65,0,61,0,56,0,52,0,50,0,48,0,47,0,43,0,39,0,38,0,38,0,36,0,34,0,27,0,20,0,16,0, +15,0,16,0,15,0,13,0,13,0,14,0,12,0,11,0,10,0,7,0,3,0,0,0,252,255,249,255,246,255,242,255, +241,255,240,255,237,255,227,255,211,255,193,255,177,255,167,255,163,255,164,255,168,255,173,255,179,255,183,255,187,255,189,255, +189,255,190,255,190,255,189,255,188,255,186,255,182,255,181,255,184,255,188,255,194,255,199,255,204,255,211,255,222,255,232,255, +241,255,247,255,251,255,251,255,250,255,250,255,248,255,246,255,244,255,244,255,244,255,247,255,249,255,248,255,242,255,234,255, +227,255,219,255,212,255,204,255,197,255,189,255,183,255,179,255,176,255,177,255,182,255,191,255,205,255,218,255,231,255,245,255, +3,0,15,0,26,0,33,0,36,0,37,0,35,0,32,0,30,0,26,0,21,0,19,0,16,0,13,0,9,0,2,0, +249,255,238,255,227,255,218,255,214,255,211,255,208,255,202,255,194,255,189,255,185,255,182,255,181,255,182,255,184,255,188,255, +191,255,192,255,191,255,189,255,184,255,179,255,174,255,173,255,177,255,182,255,187,255,191,255,193,255,193,255,191,255,190,255, +193,255,194,255,193,255,193,255,193,255,195,255,198,255,202,255,204,255,206,255,207,255,206,255,204,255,203,255,205,255,209,255, +212,255,215,255,221,255,227,255,231,255,234,255,239,255,246,255,0,0,11,0,22,0,33,0,41,0,48,0,53,0,57,0, +59,0,60,0,63,0,67,0,70,0,69,0,68,0,67,0,67,0,65,0,63,0,62,0,62,0,59,0,56,0,54,0, +56,0,59,0,61,0,61,0,63,0,64,0,66,0,70,0,74,0,75,0,75,0,73,0,72,0,73,0,75,0,76,0, +75,0,71,0,67,0,62,0,58,0,53,0,48,0,42,0,33,0,26,0,19,0,13,0,8,0,6,0,6,0,6,0, +8,0,10,0,11,0,12,0,12,0,12,0,12,0,12,0,9,0,6,0,6,0,9,0,16,0,24,0,32,0,39,0, +47,0,59,0,71,0,80,0,86,0,91,0,95,0,98,0,102,0,107,0,111,0,115,0,121,0,128,0,134,0,140,0, +144,0,147,0,153,0,163,0,172,0,182,0,189,0,193,0,199,0,205,0,207,0,210,0,216,0,221,0,223,0,225,0, +224,0,222,0,221,0,218,0,213,0,205,0,193,0,181,0,171,0,161,0,152,0,143,0,134,0,131,0,132,0,133,0, +134,0,134,0,135,0,136,0,136,0,137,0,138,0,141,0,142,0,141,0,142,0,142,0,139,0,133,0,129,0,123,0, +114,0,105,0,97,0,89,0,85,0,84,0,84,0,85,0,88,0,88,0,86,0,84,0,80,0,75,0,69,0,63,0, +58,0,52,0,43,0,34,0,25,0,15,0,6,0,254,255,245,255,238,255,232,255,229,255,227,255,226,255,227,255,227,255, +227,255,230,255,236,255,240,255,243,255,248,255,251,255,253,255,255,255,0,0,0,0,255,255,251,255,248,255,245,255,242,255, +240,255,243,255,247,255,251,255,0,0,4,0,8,0,11,0,14,0,16,0,17,0,20,0,23,0,24,0,25,0,28,0, +29,0,31,0,36,0,38,0,38,0,38,0,38,0,38,0,39,0,38,0,38,0,39,0,39,0,39,0,38,0,37,0, +38,0,39,0,40,0,42,0,47,0,52,0,57,0,61,0,64,0,64,0,63,0,65,0,70,0,74,0,77,0,80,0, +80,0,80,0,78,0,76,0,75,0,77,0,81,0,83,0,82,0,81,0,81,0,84,0,89,0,97,0,105,0,112,0, +119,0,124,0,128,0,130,0,131,0,131,0,128,0,123,0,117,0,112,0,105,0,98,0,95,0,93,0,92,0,93,0, +97,0,101,0,106,0,112,0,117,0,124,0,133,0,143,0,151,0,156,0,158,0,159,0,161,0,162,0,161,0,159,0, +152,0,145,0,141,0,139,0,140,0,144,0,150,0,157,0,164,0,170,0,174,0,178,0,179,0,181,0,183,0,182,0, +178,0,173,0,168,0,164,0,161,0,156,0,152,0,151,0,155,0,162,0,167,0,173,0,181,0,188,0,197,0,207,0, +217,0,226,0,232,0,230,0,226,0,223,0,220,0,218,0,214,0,206,0,195,0,185,0,177,0,174,0,171,0,168,0, +167,0,165,0,164,0,166,0,170,0,174,0,179,0,183,0,185,0,188,0,187,0,183,0,179,0,177,0,174,0,170,0, +166,0,163,0,161,0,159,0,158,0,153,0,146,0,140,0,134,0,126,0,119,0,114,0,106,0,98,0,91,0,87,0, +85,0,83,0,82,0,83,0,85,0,88,0,91,0,89,0,84,0,79,0,72,0,64,0,54,0,42,0,32,0,28,0, +25,0,24,0,27,0,30,0,32,0,36,0,42,0,49,0,58,0,66,0,74,0,80,0,84,0,83,0,83,0,85,0, +85,0,82,0,79,0,80,0,83,0,86,0,89,0,90,0,91,0,93,0,95,0,98,0,102,0,104,0,102,0,98,0, +93,0,90,0,89,0,87,0,83,0,78,0,75,0,72,0,68,0,63,0,63,0,65,0,66,0,68,0,71,0,74,0, +77,0,78,0,80,0,82,0,86,0,89,0,89,0,90,0,92,0,96,0,99,0,98,0,94,0,88,0,80,0,73,0, +67,0,59,0,52,0,48,0,45,0,43,0,42,0,40,0,37,0,36,0,38,0,39,0,42,0,47,0,50,0,52,0, +52,0,53,0,55,0,55,0,56,0,56,0,55,0,55,0,55,0,56,0,60,0,65,0,71,0,75,0,78,0,81,0, +83,0,87,0,91,0,94,0,94,0,92,0,89,0,84,0,75,0,67,0,61,0,57,0,54,0,51,0,50,0,50,0, +52,0,61,0,72,0,84,0,96,0,108,0,117,0,126,0,132,0,134,0,135,0,135,0,134,0,131,0,126,0,121,0, +119,0,119,0,121,0,124,0,124,0,121,0,116,0,112,0,110,0,109,0,107,0,103,0,98,0,91,0,84,0,76,0, +69,0,69,0,71,0,72,0,72,0,72,0,71,0,70,0,68,0,64,0,63,0,63,0,63,0,64,0,64,0,66,0, +70,0,76,0,84,0,92,0,96,0,96,0,93,0,87,0,83,0,80,0,75,0,70,0,66,0,63,0,62,0,61,0, +59,0,57,0,56,0,56,0,54,0,53,0,55,0,60,0,66,0,73,0,81,0,89,0,99,0,111,0,121,0,130,0, +136,0,138,0,137,0,135,0,131,0,128,0,126,0,125,0,124,0,123,0,123,0,128,0,134,0,139,0,146,0,153,0, +158,0,159,0,160,0,162,0,168,0,173,0,174,0,171,0,166,0,161,0,155,0,151,0,150,0,152,0,155,0,158,0, +162,0,167,0,172,0,175,0,178,0,180,0,181,0,183,0,184,0,184,0,181,0,178,0,173,0,169,0,165,0,160,0, +158,0,159,0,161,0,160,0,159,0,157,0,154,0,149,0,144,0,140,0,137,0,136,0,134,0,131,0,127,0,124,0, +121,0,118,0,115,0,112,0,109,0,107,0,105,0,103,0,101,0,99,0,98,0,96,0,94,0,91,0,87,0,84,0, +81,0,76,0,72,0,68,0,65,0,64,0,63,0,64,0,67,0,69,0,70,0,72,0,71,0,69,0,67,0,66,0, +60,0,54,0,46,0,35,0,27,0,23,0,18,0,13,0,9,0,9,0,11,0,14,0,19,0,22,0,24,0,26,0, +27,0,29,0,34,0,39,0,40,0,39,0,37,0,35,0,35,0,34,0,33,0,33,0,31,0,29,0,27,0,23,0, +18,0,14,0,11,0,7,0,3,0,253,255,246,255,240,255,235,255,231,255,230,255,231,255,232,255,233,255,233,255,236,255, +240,255,243,255,245,255,247,255,247,255,249,255,253,255,255,255,0,0,255,255,251,255,248,255,246,255,245,255,244,255,245,255, +246,255,248,255,249,255,249,255,248,255,244,255,240,255,236,255,232,255,230,255,230,255,230,255,231,255,233,255,235,255,240,255, +245,255,250,255,0,0,6,0,9,0,13,0,15,0,15,0,17,0,21,0,25,0,28,0,30,0,32,0,34,0,35,0, +38,0,42,0,45,0,46,0,46,0,45,0,43,0,41,0,37,0,33,0,30,0,28,0,26,0,25,0,24,0,24,0, +24,0,26,0,31,0,33,0,34,0,36,0,39,0,41,0,44,0,46,0,48,0,48,0,47,0,45,0,43,0,41,0, +38,0,37,0,36,0,33,0,31,0,31,0,32,0,32,0,33,0,34,0,35,0,37,0,40,0,43,0,49,0,53,0, +56,0,58,0,61,0,63,0,64,0,65,0,66,0,67,0,69,0,72,0,74,0,74,0,74,0,72,0,69,0,66,0, +65,0,62,0,60,0,60,0,60,0,60,0,63,0,65,0,68,0,72,0,75,0,75,0,72,0,68,0,65,0,63,0, +59,0,56,0,52,0,49,0,45,0,42,0,40,0,38,0,36,0,35,0,34,0,33,0,33,0,33,0,32,0,31,0, +31,0,31,0,33,0,35,0,37,0,39,0,41,0,41,0,43,0,45,0,45,0,45,0,43,0,41,0,40,0,40,0, +40,0,39,0,41,0,43,0,43,0,41,0,41,0,40,0,36,0,32,0,29,0,24,0,20,0,14,0,6,0,255,255, +252,255,248,255,245,255,243,255,242,255,241,255,241,255,241,255,240,255,239,255,240,255,243,255,244,255,245,255,246,255,245,255, +244,255,243,255,241,255,240,255,241,255,240,255,239,255,238,255,238,255,238,255,237,255,235,255,235,255,235,255,236,255,236,255, +235,255,233,255,233,255,230,255,226,255,225,255,225,255,225,255,225,255,224,255,222,255,220,255,220,255,220,255,220,255,218,255, +216,255,214,255,212,255,211,255,211,255,212,255,213,255,214,255,214,255,215,255,217,255,218,255,219,255,220,255,220,255,219,255, +216,255,213,255,210,255,207,255,204,255,202,255,201,255,200,255,200,255,199,255,197,255,195,255,193,255,191,255,189,255,188,255, +186,255,184,255,183,255,182,255,183,255,186,255,189,255,192,255,196,255,200,255,204,255,207,255,211,255,215,255,218,255,223,255, +228,255,231,255,233,255,234,255,235,255,235,255,235,255,236,255,238,255,240,255,242,255,243,255,243,255,243,255,242,255,239,255, +237,255,237,255,237,255,238,255,239,255,240,255,240,255,240,255,242,255,243,255,244,255,245,255,246,255,245,255,245,255,245,255, +246,255,249,255,250,255,249,255,247,255,246,255,245,255,244,255,242,255,242,255,242,255,241,255,243,255,246,255,248,255,249,255, +251,255,253,255,255,255,0,0,255,255,255,255,0,0,254,255,253,255,252,255,249,255,246,255,244,255,242,255,240,255,239,255, +239,255,239,255,239,255,239,255,240,255,242,255,244,255,246,255,246,255,247,255,248,255,249,255,251,255,253,255,255,255,254,255, +253,255,254,255,254,255,252,255,252,255,253,255,253,255,254,255,0,0,2,0,4,0,6,0,7,0,10,0,14,0,17,0, +18,0,19,0,19,0,18,0,17,0,16,0,15,0,15,0,15,0,15,0,15,0,14,0,14,0,13,0,13,0,14,0, +14,0,13,0,15,0,14,0,13,0,13,0,14,0,13,0,13,0,11,0,9,0,7,0,4,0,2,0,254,255,252,255, +252,255,251,255,249,255,250,255,249,255,248,255,248,255,247,255,245,255,246,255,248,255,248,255,249,255,250,255,252,255,253,255, +253,255,255,255,1,0,3,0,6,0,8,0,9,0,11,0,12,0,13,0,14,0,15,0,14,0,13,0,15,0,16,0, +16,0,17,0,16,0,16,0,15,0,14,0,13,0,10,0,7,0,3,0,255,255,252,255,250,255,249,255,246,255,244,255, +242,255,240,255,238,255,237,255,237,255,236,255,236,255,236,255,236,255,236,255,236,255,237,255,239,255,240,255,242,255,244,255, +245,255,246,255,249,255,250,255,250,255,251,255,251,255,251,255,250,255,249,255,249,255,249,255,248,255,248,255,249,255,249,255, +249,255,250,255,249,255,249,255,249,255,248,255,247,255,245,255,244,255,242,255,242,255,241,255,240,255,238,255,238,255,238,255, +239,255,240,255,243,255,246,255,248,255,251,255,254,255,255,255,1,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0, +0,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,251,255,251,255,252,255,252,255,253,255, +254,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0,4,0,3,0,2,0,3,0,3,0,3,0,2,0, +0,0,255,255,254,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255,252,255,252,255, +251,255,250,255,250,255,248,255,246,255,246,255,245,255,245,255,244,255,245,255,247,255,247,255,249,255,251,255,252,255,253,255, +254,255,253,255,253,255,253,255,251,255,249,255,249,255,247,255,243,255,242,255,242,255,241,255,239,255,237,255,236,255,237,255, +238,255,238,255,238,255,239,255,240,255,241,255,242,255,243,255,244,255,245,255,245,255,246,255,246,255,246,255,247,255,248,255, +249,255,251,255,252,255,253,255,255,255,255,255,0,0,2,0,4,0,4,0,6,0,7,0,8,0,9,0,10,0,10,0, +11,0,13,0,14,0,12,0,12,0,12,0,11,0,8,0,8,0,7,0,5,0,3,0,1,0,0,0,255,255,255,255, +254,255,253,255,252,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,4,0,5,0,6,0,6,0,6,0,5,0, +4,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255, +253,255,251,255,250,255,250,255,248,255,246,255,247,255,247,255,247,255,248,255,248,255,247,255,248,255,247,255,246,255,247,255, +248,255,249,255,249,255,248,255,248,255,249,255,249,255,248,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,248,255, +247,255,248,255,247,255,245,255,245,255,245,255,242,255,240,255,239,255,238,255,237,255,236,255,235,255,234,255,233,255,233,255, +233,255,233,255,234,255,234,255,234,255,235,255,237,255,238,255,239,255,240,255,242,255,243,255,244,255,245,255,246,255,246,255, +247,255,248,255,249,255,250,255,250,255,249,255,249,255,249,255,248,255,247,255,248,255,248,255,248,255,248,255,248,255,248,255, +248,255,248,255,247,255,247,255,247,255,246,255,245,255,244,255,243,255,242,255,240,255,239,255,238,255,238,255,239,255,241,255, +241,255,242,255,245,255,247,255,248,255,249,255,251,255,252,255,252,255,252,255,254,255,254,255,253,255,253,255,254,255,254,255, +254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,251,255,250,255,251,255,251,255,250,255,250,255,250,255, +251,255,251,255,252,255,251,255,251,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,9,0,8,0,8,0, +8,0,8,0,8,0,7,0,7,0,7,0,6,0,5,0,5,0,4,0,2,0,2,0,2,0,1,0,0,0,255,255, +254,255,255,255,254,255,253,255,253,255,253,255,252,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,250,255,251,255, +251,255,250,255,251,255,251,255,250,255,250,255,250,255,249,255,249,255,250,255,250,255,250,255,252,255,253,255,254,255,0,0, +255,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,252,255,251,255,251,255,252,255,251,255,250,255, +250,255,250,255,250,255,251,255,252,255,251,255,251,255,251,255,251,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255, +252,255,251,255,252,255,254,255,253,255,253,255,255,255,254,255,253,255,254,255,254,255,253,255,254,255,253,255,253,255,253,255, +253,255,252,255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,252,255,252,255,253,255,252,255,252,255,253,255,253,255, +252,255,252,255,253,255,253,255,253,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255, +253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255, +254,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0, +3,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,0,0,255,255,254,255,255,255,255,255,254,255,254,255,254,255, +253,255,254,255,254,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0, +3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0, +2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,3,0,2,0,1,0,1,0,2,0, +0,0,0,0,0,0,0,0,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0,255,255,254,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,254,255,255,255, +0,0,255,255,254,255,255,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,254,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,255,255,0,0,1,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/cow4.pcm b/src/client/sound/data/cow4.pcm new file mode 100755 index 0000000..3037648 --- /dev/null +++ b/src/client/sound/data/cow4.pcm @@ -0,0 +1,4685 @@ +unsigned char PCM_cow4[149828] = { +1,0,0,0,2,0,0,0,68,172,0,0,154,36,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,2,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,2,0,3,0,2,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0, +2,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0, +2,0,3,0,1,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,3,0, +3,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0,2,0, +2,0,3,0,3,0,3,0,4,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0, +3,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,4,0,3,0,3,0,4,0, +4,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0, +4,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,2,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0, +3,0,3,0,4,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0, +3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0, +4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,4,0,3,0, +3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,5,0,4,0,2,0,3,0, +4,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0, +3,0,4,0,2,0,2,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,4,0,3,0,4,0, +4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,5,0,5,0,4,0,3,0,3,0, +4,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0, +3,0,3,0,4,0,4,0,3,0,4,0,4,0,4,0,5,0,3,0,3,0,4,0,5,0,4,0,3,0,4,0, +5,0,5,0,4,0,3,0,3,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0, +3,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,4,0,3,0, +4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,5,0,5,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0, +4,0,3,0,3,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,4,0, +4,0,4,0,5,0,5,0,4,0,3,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0, +5,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,5,0,4,0,3,0,4,0,5,0, +4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0, +3,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0, +2,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,3,0, +2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,3,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +2,0,2,0,1,0,2,0,3,0,1,0,2,0,3,0,2,0,2,0,4,0,4,0,3,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0, +3,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,2,0,3,0, +4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,5,0,6,0,6,0,6,0,7,0,8,0,7,0, +7,0,8,0,8,0,7,0,7,0,8,0,7,0,7,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, +8,0,9,0,9,0,9,0,10,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,10,0,9,0,9,0,9,0, +9,0,9,0,9,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,7,0,8,0,7,0,7,0,7,0,8,0,9,0,9,0,10,0,10,0,9,0,9,0, +10,0,9,0,9,0,9,0,8,0,8,0,7,0,6,0,6,0,7,0,7,0,7,0,6,0,7,0,8,0,8,0, +8,0,8,0,8,0,8,0,9,0,9,0,10,0,10,0,9,0,10,0,11,0,11,0,11,0,10,0,10,0,11,0, +10,0,10,0,10,0,9,0,8,0,8,0,7,0,6,0,7,0,6,0,5,0,5,0,6,0,6,0,6,0,5,0, +6,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,6,0,6,0,5,0,6,0, +6,0,6,0,6,0,6,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,5,0,4,0, +4,0,6,0,6,0,6,0,6,0,7,0,8,0,8,0,7,0,8,0,8,0,8,0,8,0,7,0,7,0,7,0, +6,0,5,0,5,0,4,0,4,0,4,0,3,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0, +1,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0,5,0,6,0,6,0,7,0,7,0,7,0,8,0, +7,0,6,0,6,0,7,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0,5,0,4,0,5,0,6,0,5,0, +6,0,6,0,5,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0,5,0,3,0,3,0,4,0,3,0, +2,0,1,0,2,0,3,0,2,0,3,0,3,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,1,0,0,0, +0,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,5,0, +5,0,4,0,3,0,3,0,3,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,4,0,5,0,5,0, +4,0,4,0,4,0,4,0,3,0,3,0,4,0,5,0,5,0,5,0,6,0,7,0,7,0,8,0,9,0,9,0, +9,0,10,0,11,0,10,0,10,0,10,0,11,0,11,0,11,0,10,0,10,0,10,0,9,0,8,0,9,0,9,0, +8,0,7,0,8,0,8,0,7,0,8,0,8,0,7,0,8,0,9,0,9,0,9,0,8,0,8,0,8,0,8,0, +8,0,7,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,4,0,5,0,5,0,4,0,3,0,3,0, +2,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0, +1,0,0,0,255,255,255,255,255,255,254,255,252,255,251,255,250,255,250,255,248,255,246,255,246,255,248,255,248,255,246,255, +246,255,245,255,246,255,246,255,247,255,247,255,247,255,248,255,249,255,249,255,249,255,251,255,251,255,251,255,252,255,253,255, +254,255,255,255,0,0,2,0,2,0,1,0,3,0,4,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,0,0, +0,0,254,255,254,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,251,255,251,255, +251,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255,250,255,251,255,251,255,250,255,250,255,250,255, +249,255,249,255,249,255,249,255,248,255,247,255,245,255,245,255,245,255,245,255,244,255,244,255,243,255,242,255,242,255,242,255, +243,255,242,255,241,255,240,255,241,255,241,255,241,255,240,255,241,255,242,255,244,255,245,255,244,255,246,255,249,255,250,255, +251,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,250,255,249,255,248,255,248,255,247,255,246,255,246,255,245,255, +245,255,245,255,246,255,246,255,246,255,247,255,248,255,249,255,250,255,251,255,253,255,255,255,0,0,255,255,254,255,254,255, +254,255,254,255,253,255,253,255,254,255,254,255,255,255,0,0,1,0,2,0,4,0,6,0,8,0,10,0,13,0,14,0, +15,0,16,0,18,0,20,0,20,0,20,0,20,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0,21,0,20,0, +20,0,21,0,21,0,21,0,21,0,22,0,23,0,23,0,24,0,25,0,25,0,26,0,28,0,28,0,28,0,30,0, +34,0,36,0,38,0,41,0,44,0,47,0,50,0,52,0,54,0,56,0,59,0,59,0,59,0,59,0,58,0,57,0, +55,0,53,0,51,0,50,0,48,0,46,0,44,0,42,0,41,0,40,0,38,0,36,0,34,0,33,0,31,0,30,0, +30,0,30,0,30,0,30,0,30,0,30,0,29,0,29,0,29,0,27,0,26,0,27,0,27,0,26,0,25,0,25,0, +25,0,25,0,26,0,25,0,26,0,28,0,29,0,29,0,30,0,31,0,32,0,32,0,35,0,39,0,41,0,42,0, +46,0,50,0,51,0,51,0,53,0,55,0,56,0,57,0,58,0,57,0,57,0,56,0,55,0,55,0,55,0,54,0, +53,0,52,0,49,0,47,0,47,0,45,0,43,0,41,0,40,0,39,0,38,0,38,0,38,0,38,0,37,0,37,0, +37,0,37,0,36,0,35,0,34,0,32,0,29,0,27,0,25,0,25,0,23,0,21,0,20,0,20,0,20,0,19,0, +19,0,19,0,18,0,18,0,19,0,19,0,18,0,20,0,22,0,23,0,22,0,23,0,24,0,25,0,26,0,26,0, +25,0,24,0,24,0,24,0,23,0,23,0,21,0,19,0,18,0,17,0,16,0,15,0,16,0,16,0,14,0,13,0, +12,0,10,0,9,0,8,0,6,0,4,0,2,0,255,255,252,255,250,255,249,255,248,255,248,255,248,255,248,255,249,255, +249,255,248,255,247,255,247,255,246,255,244,255,241,255,239,255,236,255,235,255,233,255,230,255,226,255,224,255,223,255,222,255, +221,255,221,255,220,255,218,255,219,255,221,255,222,255,223,255,225,255,227,255,230,255,232,255,233,255,233,255,234,255,234,255, +234,255,234,255,233,255,231,255,231,255,233,255,234,255,234,255,234,255,235,255,236,255,237,255,237,255,237,255,237,255,237,255, +237,255,236,255,236,255,235,255,234,255,231,255,230,255,229,255,227,255,226,255,226,255,224,255,221,255,222,255,223,255,221,255, +220,255,220,255,221,255,220,255,220,255,220,255,220,255,220,255,220,255,219,255,218,255,217,255,216,255,216,255,215,255,214,255, +214,255,213,255,212,255,214,255,215,255,216,255,217,255,219,255,220,255,219,255,220,255,221,255,220,255,219,255,218,255,218,255, +217,255,216,255,216,255,215,255,212,255,211,255,210,255,208,255,206,255,204,255,202,255,199,255,197,255,196,255,194,255,192,255, +190,255,190,255,190,255,188,255,187,255,189,255,190,255,191,255,191,255,192,255,195,255,197,255,198,255,197,255,198,255,200,255, +200,255,198,255,197,255,198,255,197,255,196,255,195,255,196,255,195,255,194,255,191,255,191,255,192,255,192,255,192,255,193,255, +194,255,194,255,195,255,197,255,199,255,200,255,201,255,202,255,202,255,202,255,201,255,201,255,201,255,201,255,201,255,202,255, +202,255,201,255,199,255,198,255,198,255,199,255,200,255,200,255,202,255,206,255,211,255,213,255,215,255,216,255,218,255,220,255, +220,255,220,255,220,255,221,255,222,255,222,255,222,255,223,255,223,255,223,255,224,255,222,255,218,255,215,255,214,255,213,255, +211,255,211,255,210,255,209,255,208,255,207,255,208,255,209,255,210,255,211,255,212,255,212,255,212,255,211,255,209,255,208,255, +207,255,206,255,203,255,201,255,201,255,200,255,200,255,201,255,200,255,197,255,196,255,196,255,194,255,192,255,189,255,187,255, +186,255,184,255,180,255,177,255,174,255,172,255,170,255,169,255,168,255,169,255,170,255,170,255,171,255,173,255,174,255,173,255, +173,255,173,255,172,255,171,255,170,255,168,255,167,255,166,255,165,255,163,255,161,255,159,255,158,255,157,255,156,255,155,255, +154,255,153,255,153,255,154,255,155,255,156,255,157,255,158,255,161,255,164,255,165,255,166,255,168,255,169,255,169,255,169,255, +171,255,173,255,174,255,174,255,175,255,179,255,182,255,183,255,183,255,184,255,185,255,185,255,185,255,184,255,183,255,184,255, +184,255,181,255,178,255,178,255,180,255,180,255,178,255,177,255,178,255,177,255,178,255,180,255,182,255,183,255,185,255,187,255, +188,255,189,255,190,255,189,255,188,255,189,255,191,255,190,255,188,255,187,255,190,255,194,255,196,255,198,255,200,255,200,255, +200,255,203,255,207,255,208,255,207,255,209,255,211,255,212,255,212,255,212,255,214,255,215,255,214,255,213,255,213,255,214,255, +214,255,214,255,214,255,214,255,214,255,212,255,210,255,210,255,209,255,207,255,205,255,202,255,202,255,205,255,207,255,209,255, +212,255,216,255,218,255,220,255,224,255,228,255,232,255,237,255,242,255,247,255,250,255,252,255,255,255,4,0,7,0,10,0, +15,0,20,0,24,0,27,0,30,0,33,0,35,0,36,0,36,0,35,0,32,0,27,0,20,0,12,0,5,0,0,0, +250,255,243,255,236,255,229,255,224,255,219,255,216,255,214,255,211,255,208,255,206,255,205,255,203,255,204,255,206,255,207,255, +207,255,207,255,207,255,207,255,206,255,206,255,207,255,206,255,205,255,207,255,210,255,212,255,211,255,209,255,207,255,208,255, +208,255,208,255,209,255,210,255,211,255,214,255,217,255,223,255,231,255,238,255,243,255,248,255,0,0,7,0,13,0,20,0, +27,0,33,0,38,0,41,0,45,0,47,0,46,0,45,0,43,0,39,0,32,0,24,0,16,0,5,0,252,255,245,255, +238,255,230,255,221,255,215,255,211,255,207,255,204,255,204,255,205,255,206,255,207,255,209,255,209,255,208,255,207,255,208,255, +205,255,202,255,200,255,198,255,196,255,194,255,191,255,187,255,185,255,182,255,177,255,169,255,162,255,157,255,154,255,149,255, +145,255,143,255,142,255,143,255,147,255,152,255,158,255,166,255,173,255,178,255,184,255,191,255,200,255,207,255,211,255,216,255, +222,255,226,255,227,255,228,255,229,255,229,255,231,255,230,255,228,255,226,255,224,255,221,255,217,255,210,255,201,255,193,255, +185,255,179,255,173,255,168,255,165,255,164,255,164,255,165,255,166,255,170,255,174,255,180,255,185,255,190,255,191,255,191,255, +192,255,190,255,186,255,182,255,176,255,170,255,163,255,157,255,150,255,142,255,135,255,130,255,127,255,125,255,126,255,127,255, +127,255,129,255,132,255,137,255,141,255,143,255,143,255,143,255,146,255,149,255,151,255,152,255,153,255,152,255,151,255,151,255, +150,255,150,255,150,255,150,255,150,255,147,255,141,255,136,255,133,255,129,255,122,255,116,255,111,255,104,255,100,255,97,255, +94,255,88,255,84,255,84,255,83,255,81,255,79,255,79,255,78,255,77,255,77,255,78,255,79,255,81,255,82,255,82,255, +81,255,80,255,77,255,72,255,70,255,66,255,61,255,57,255,53,255,47,255,42,255,39,255,36,255,34,255,33,255,31,255, +33,255,36,255,39,255,41,255,42,255,43,255,43,255,43,255,44,255,45,255,44,255,43,255,41,255,36,255,30,255,24,255, +15,255,5,255,254,254,246,254,235,254,224,254,216,254,212,254,209,254,205,254,202,254,201,254,200,254,201,254,202,254,202,254, +205,254,208,254,210,254,212,254,215,254,217,254,218,254,220,254,223,254,225,254,224,254,222,254,220,254,220,254,219,254,217,254, +215,254,213,254,209,254,205,254,201,254,197,254,193,254,188,254,180,254,172,254,167,254,164,254,160,254,159,254,162,254,168,254, +174,254,178,254,180,254,182,254,184,254,185,254,183,254,178,254,175,254,174,254,169,254,162,254,157,254,154,254,149,254,146,254, +149,254,151,254,148,254,147,254,150,254,151,254,154,254,161,254,169,254,176,254,180,254,181,254,182,254,183,254,183,254,184,254, +187,254,190,254,192,254,192,254,190,254,190,254,190,254,190,254,189,254,187,254,184,254,184,254,185,254,185,254,187,254,186,254, +186,254,191,254,196,254,198,254,205,254,215,254,222,254,226,254,229,254,232,254,238,254,246,254,253,254,3,255,4,255,5,255, +6,255,11,255,17,255,23,255,27,255,30,255,30,255,30,255,31,255,31,255,30,255,26,255,21,255,19,255,18,255,16,255, +13,255,12,255,10,255,6,255,1,255,252,254,250,254,249,254,247,254,247,254,248,254,251,254,254,254,1,255,3,255,4,255, +1,255,252,254,248,254,245,254,244,254,246,254,250,254,253,254,254,254,252,254,253,254,1,255,2,255,1,255,1,255,4,255, +10,255,20,255,32,255,48,255,66,255,84,255,97,255,105,255,113,255,120,255,123,255,123,255,124,255,122,255,118,255,114,255, +110,255,107,255,104,255,94,255,78,255,65,255,55,255,46,255,36,255,27,255,18,255,8,255,0,255,252,254,248,254,243,254, +242,254,244,254,247,254,249,254,253,254,5,255,17,255,29,255,39,255,46,255,51,255,54,255,56,255,55,255,53,255,52,255, +49,255,48,255,48,255,48,255,48,255,51,255,58,255,68,255,77,255,84,255,93,255,101,255,107,255,113,255,118,255,125,255, +134,255,143,255,151,255,159,255,165,255,169,255,172,255,175,255,178,255,184,255,191,255,197,255,203,255,211,255,221,255,230,255, +237,255,244,255,250,255,254,255,2,0,8,0,18,0,28,0,37,0,47,0,59,0,71,0,85,0,100,0,113,0,124,0, +134,0,143,0,149,0,153,0,155,0,160,0,163,0,164,0,161,0,152,0,137,0,118,0,97,0,77,0,59,0,42,0, +27,0,13,0,254,255,242,255,235,255,235,255,237,255,239,255,238,255,238,255,236,255,228,255,220,255,212,255,203,255,197,255, +192,255,186,255,181,255,177,255,173,255,170,255,165,255,163,255,163,255,163,255,159,255,153,255,146,255,145,255,144,255,140,255, +139,255,144,255,151,255,156,255,161,255,168,255,182,255,202,255,221,255,236,255,250,255,4,0,13,0,23,0,29,0,34,0, +41,0,49,0,50,0,43,0,34,0,24,0,14,0,0,0,241,255,225,255,205,255,184,255,164,255,146,255,130,255,117,255, +104,255,93,255,84,255,77,255,72,255,68,255,64,255,61,255,61,255,62,255,61,255,62,255,62,255,58,255,55,255,54,255, +51,255,46,255,42,255,38,255,35,255,30,255,25,255,21,255,13,255,2,255,247,254,235,254,222,254,214,254,209,254,207,254, +207,254,208,254,211,254,218,254,230,254,245,254,2,255,12,255,19,255,22,255,19,255,15,255,10,255,1,255,247,254,240,254, +233,254,225,254,215,254,205,254,196,254,185,254,174,254,163,254,149,254,136,254,127,254,120,254,111,254,105,254,103,254,101,254, +98,254,97,254,101,254,107,254,111,254,114,254,119,254,127,254,136,254,141,254,146,254,152,254,155,254,154,254,153,254,153,254, +144,254,129,254,116,254,107,254,98,254,84,254,70,254,60,254,53,254,47,254,42,254,41,254,46,254,55,254,64,254,71,254, +79,254,89,254,99,254,106,254,110,254,115,254,119,254,122,254,128,254,137,254,144,254,148,254,149,254,150,254,151,254,150,254, +145,254,140,254,134,254,126,254,114,254,99,254,86,254,72,254,59,254,48,254,41,254,35,254,31,254,27,254,26,254,27,254, +29,254,28,254,29,254,34,254,41,254,47,254,51,254,55,254,58,254,59,254,61,254,64,254,65,254,63,254,60,254,57,254, +54,254,51,254,49,254,50,254,55,254,62,254,71,254,79,254,85,254,91,254,100,254,109,254,117,254,123,254,131,254,142,254, +152,254,160,254,164,254,164,254,164,254,164,254,162,254,158,254,155,254,153,254,150,254,144,254,139,254,137,254,137,254,136,254, +134,254,129,254,123,254,121,254,119,254,114,254,107,254,102,254,98,254,95,254,90,254,87,254,88,254,91,254,93,254,94,254, +96,254,97,254,100,254,103,254,104,254,105,254,104,254,103,254,105,254,109,254,110,254,111,254,111,254,113,254,118,254,121,254, +122,254,121,254,122,254,124,254,125,254,124,254,122,254,120,254,116,254,112,254,107,254,101,254,94,254,88,254,85,254,81,254, +76,254,71,254,62,254,55,254,54,254,50,254,41,254,28,254,14,254,0,254,246,253,235,253,225,253,216,253,207,253,199,253, +193,253,189,253,188,253,189,253,189,253,194,253,202,253,208,253,216,253,227,253,237,253,249,253,5,254,11,254,13,254,13,254, +12,254,9,254,7,254,4,254,1,254,254,253,252,253,251,253,249,253,248,253,253,253,5,254,11,254,16,254,21,254,27,254, +37,254,47,254,60,254,76,254,92,254,103,254,109,254,111,254,111,254,108,254,105,254,105,254,105,254,102,254,100,254,98,254, +93,254,85,254,77,254,73,254,71,254,67,254,62,254,59,254,59,254,59,254,57,254,54,254,53,254,55,254,58,254,61,254, +64,254,67,254,68,254,67,254,66,254,63,254,55,254,46,254,37,254,30,254,21,254,9,254,248,253,233,253,222,253,212,253, +202,253,192,253,183,253,177,253,168,253,159,253,152,253,142,253,130,253,120,253,115,253,110,253,104,253,99,253,98,253,101,253, +106,253,112,253,121,253,132,253,146,253,160,253,172,253,182,253,194,253,202,253,208,253,216,253,225,253,236,253,246,253,253,253, +2,254,4,254,2,254,252,253,246,253,242,253,244,253,248,253,251,253,251,253,248,253,244,253,241,253,237,253,233,253,233,253, +238,253,245,253,251,253,254,253,255,253,3,254,12,254,24,254,34,254,42,254,51,254,59,254,64,254,70,254,75,254,80,254, +88,254,99,254,107,254,113,254,121,254,133,254,144,254,155,254,168,254,183,254,198,254,211,254,225,254,241,254,6,255,28,255, +47,255,64,255,80,255,93,255,107,255,122,255,131,255,138,255,153,255,170,255,184,255,194,255,208,255,227,255,246,255,7,0, +21,0,32,0,39,0,45,0,48,0,50,0,51,0,46,0,28,0,0,0,219,255,180,255,143,255,113,255,90,255,74,255, +62,255,47,255,29,255,12,255,3,255,0,255,1,255,1,255,253,254,243,254,231,254,220,254,214,254,210,254,208,254,207,254, +202,254,194,254,182,254,167,254,156,254,153,254,154,254,160,254,177,254,198,254,218,254,238,254,1,255,15,255,26,255,35,255, +41,255,48,255,56,255,64,255,74,255,85,255,102,255,123,255,143,255,162,255,184,255,209,255,237,255,10,0,35,0,53,0, +67,0,78,0,88,0,97,0,102,0,103,0,98,0,86,0,66,0,40,0,10,0,241,255,223,255,208,255,198,255,192,255, +184,255,173,255,161,255,149,255,138,255,130,255,128,255,130,255,134,255,142,255,152,255,160,255,164,255,165,255,163,255,160,255, +158,255,156,255,155,255,152,255,148,255,141,255,131,255,118,255,104,255,92,255,79,255,64,255,48,255,34,255,24,255,22,255, +29,255,40,255,59,255,85,255,108,255,126,255,145,255,165,255,184,255,200,255,214,255,227,255,239,255,245,255,248,255,251,255, +254,255,252,255,246,255,242,255,242,255,242,255,238,255,232,255,217,255,188,255,152,255,115,255,79,255,47,255,24,255,7,255, +250,254,239,254,226,254,211,254,195,254,182,254,174,254,169,254,164,254,163,254,163,254,157,254,151,254,146,254,144,254,145,254, +148,254,155,254,168,254,185,254,197,254,203,254,205,254,205,254,199,254,188,254,176,254,167,254,161,254,156,254,148,254,139,254, +131,254,126,254,124,254,128,254,131,254,134,254,138,254,140,254,139,254,141,254,147,254,151,254,148,254,139,254,130,254,121,254, +110,254,100,254,88,254,76,254,66,254,60,254,52,254,41,254,28,254,16,254,6,254,251,253,238,253,225,253,216,253,210,253, +202,253,195,253,190,253,188,253,186,253,185,253,186,253,190,253,194,253,203,253,217,253,229,253,235,253,235,253,232,253,225,253, +220,253,219,253,220,253,220,253,222,253,225,253,227,253,226,253,226,253,229,253,235,253,242,253,254,253,13,254,26,254,33,254, +36,254,39,254,35,254,20,254,2,254,243,253,229,253,215,253,201,253,185,253,164,253,147,253,134,253,122,253,109,253,100,253, +93,253,85,253,75,253,66,253,59,253,54,253,54,253,59,253,63,253,67,253,70,253,70,253,66,253,65,253,65,253,64,253, +61,253,54,253,44,253,30,253,16,253,13,253,20,253,32,253,46,253,62,253,73,253,83,253,93,253,104,253,112,253,118,253, +125,253,129,253,130,253,127,253,119,253,102,253,79,253,53,253,30,253,12,253,3,253,3,253,7,253,10,253,12,253,16,253, +22,253,30,253,39,253,45,253,43,253,35,253,15,253,243,252,212,252,184,252,159,252,134,252,108,252,82,252,58,252,40,252, +27,252,18,252,13,252,15,252,23,252,33,252,43,252,48,252,51,252,53,252,53,252,50,252,45,252,46,252,52,252,59,252, +65,252,66,252,57,252,38,252,15,252,246,251,224,251,210,251,203,251,200,251,200,251,205,251,212,251,220,251,230,251,246,251, +13,252,42,252,74,252,107,252,135,252,157,252,172,252,179,252,178,252,173,252,166,252,158,252,150,252,144,252,143,252,147,252, +155,252,166,252,177,252,183,252,183,252,175,252,159,252,140,252,120,252,97,252,73,252,51,252,36,252,27,252,16,252,3,252, +250,251,243,251,234,251,226,251,223,251,223,251,225,251,230,251,235,251,238,251,240,251,239,251,243,251,254,251,14,252,29,252, +48,252,71,252,97,252,122,252,144,252,168,252,192,252,209,252,214,252,214,252,218,252,225,252,227,252,221,252,214,252,213,252, +218,252,227,252,242,252,5,253,24,253,38,253,46,253,46,253,39,253,33,253,37,253,47,253,49,253,41,253,28,253,15,253, +3,253,245,252,229,252,218,252,212,252,202,252,191,252,185,252,188,252,202,252,225,252,252,252,21,253,47,253,71,253,92,253, +108,253,119,253,124,253,126,253,127,253,132,253,140,253,148,253,158,253,169,253,178,253,184,253,192,253,203,253,217,253,235,253, +1,254,26,254,54,254,83,254,114,254,148,254,183,254,221,254,6,255,52,255,103,255,159,255,214,255,14,0,76,0,139,0, +195,0,244,0,29,1,55,1,62,1,58,1,52,1,46,1,36,1,16,1,238,0,186,0,122,0,58,0,2,0,212,255, +177,255,150,255,127,255,101,255,70,255,39,255,17,255,12,255,21,255,36,255,48,255,53,255,51,255,40,255,22,255,0,255, +236,254,222,254,207,254,186,254,162,254,140,254,118,254,98,254,83,254,73,254,70,254,79,254,96,254,111,254,122,254,131,254, +137,254,140,254,141,254,142,254,149,254,165,254,188,254,216,254,249,254,31,255,81,255,143,255,209,255,25,0,104,0,183,0, +253,0,56,1,100,1,125,1,137,1,145,1,152,1,155,1,144,1,112,1,62,1,1,1,189,0,119,0,54,0,1,0, +215,255,175,255,130,255,86,255,52,255,25,255,5,255,252,254,255,254,4,255,11,255,27,255,48,255,62,255,66,255,62,255, +47,255,23,255,252,254,230,254,216,254,204,254,183,254,155,254,129,254,109,254,90,254,75,254,66,254,66,254,78,254,101,254, +129,254,161,254,203,254,5,255,74,255,143,255,206,255,8,0,60,0,102,0,131,0,151,0,169,0,190,0,217,0,244,0, +5,1,7,1,1,1,249,0,233,0,206,0,171,0,129,0,74,0,7,0,194,255,127,255,63,255,1,255,197,254,144,254, +96,254,56,254,26,254,4,254,239,253,219,253,203,253,186,253,165,253,146,253,131,253,121,253,114,253,103,253,91,253,86,253, +90,253,97,253,107,253,119,253,131,253,140,253,143,253,137,253,121,253,95,253,63,253,26,253,243,252,203,252,162,252,128,252, +106,252,103,252,119,252,152,252,193,252,234,252,19,253,57,253,84,253,102,253,119,253,135,253,148,253,152,253,145,253,131,253, +116,253,103,253,98,253,100,253,101,253,99,253,94,253,89,253,85,253,82,253,78,253,77,253,79,253,79,253,75,253,72,253, +74,253,79,253,86,253,92,253,99,253,109,253,118,253,122,253,127,253,135,253,139,253,139,253,133,253,123,253,108,253,90,253, +64,253,30,253,248,252,216,252,192,252,172,252,155,252,145,252,142,252,137,252,130,252,125,252,123,252,130,252,147,252,175,252, +206,252,233,252,252,252,4,253,2,253,247,252,227,252,201,252,176,252,153,252,131,252,107,252,83,252,62,252,45,252,28,252, +8,252,247,251,235,251,222,251,202,251,181,251,167,251,155,251,142,251,133,251,132,251,134,251,135,251,136,251,136,251,133,251, +129,251,126,251,125,251,120,251,107,251,87,251,68,251,53,251,39,251,26,251,22,251,27,251,35,251,47,251,56,251,57,251, +58,251,64,251,75,251,92,251,116,251,135,251,138,251,126,251,106,251,77,251,44,251,12,251,244,250,231,250,224,250,216,250, +207,250,200,250,196,250,193,250,185,250,171,250,148,250,121,250,95,250,76,250,61,250,41,250,18,250,250,249,218,249,180,249, +147,249,127,249,111,249,96,249,89,249,93,249,101,249,111,249,130,249,161,249,197,249,226,249,246,249,5,250,17,250,28,250, +42,250,57,250,67,250,69,250,64,250,46,250,10,250,218,249,167,249,118,249,74,249,41,249,23,249,18,249,26,249,45,249, +76,249,117,249,164,249,216,249,13,250,62,250,102,250,129,250,149,250,163,250,164,250,155,250,144,250,130,250,105,250,74,250, +43,250,17,250,255,249,245,249,230,249,208,249,184,249,161,249,139,249,118,249,98,249,78,249,62,249,47,249,33,249,24,249, +24,249,34,249,49,249,63,249,71,249,74,249,76,249,85,249,100,249,113,249,120,249,125,249,132,249,143,249,163,249,192,249, +218,249,234,249,235,249,222,249,202,249,184,249,176,249,174,249,177,249,182,249,186,249,186,249,183,249,189,249,206,249,226,249, +241,249,250,249,4,250,18,250,33,250,52,250,77,250,105,250,131,250,155,250,179,250,208,250,245,250,32,251,76,251,112,251, +138,251,159,251,176,251,187,251,196,251,202,251,200,251,189,251,172,251,151,251,134,251,131,251,140,251,154,251,174,251,201,251, +240,251,34,252,88,252,139,252,195,252,3,253,68,253,131,253,201,253,22,254,99,254,168,254,226,254,20,255,65,255,108,255, +157,255,212,255,10,0,55,0,85,0,105,0,123,0,144,0,172,0,209,0,249,0,27,1,56,1,81,1,94,1,88,1, +61,1,16,1,214,0,145,0,64,0,230,255,138,255,48,255,213,254,122,254,43,254,242,253,214,253,212,253,232,253,5,254, +34,254,58,254,76,254,89,254,96,254,85,254,54,254,14,254,228,253,187,253,150,253,121,253,104,253,98,253,103,253,117,253, +137,253,161,253,191,253,222,253,245,253,1,254,18,254,50,254,93,254,147,254,213,254,24,255,88,255,156,255,233,255,60,0, +147,0,236,0,65,1,145,1,219,1,28,2,84,2,129,2,154,2,156,2,140,2,115,2,92,2,77,2,64,2,41,2, +3,2,203,1,138,1,75,1,29,1,7,1,255,0,250,0,238,0,209,0,164,0,111,0,59,0,11,0,228,255,199,255, +181,255,176,255,174,255,164,255,142,255,113,255,79,255,49,255,32,255,35,255,50,255,65,255,76,255,83,255,87,255,85,255, +75,255,60,255,42,255,16,255,237,254,199,254,175,254,172,254,189,254,226,254,25,255,91,255,165,255,238,255,50,0,110,0, +164,0,215,0,7,1,49,1,82,1,105,1,113,1,101,1,65,1,8,1,196,0,130,0,69,0,9,0,203,255,138,255, +69,255,250,254,170,254,95,254,39,254,8,254,253,253,0,254,16,254,38,254,59,254,72,254,80,254,88,254,98,254,109,254, +117,254,125,254,131,254,133,254,130,254,116,254,89,254,55,254,19,254,238,253,208,253,186,253,165,253,138,253,97,253,43,253, +239,252,182,252,136,252,112,252,107,252,113,252,124,252,138,252,150,252,158,252,165,252,179,252,195,252,205,252,211,252,216,252, +222,252,230,252,240,252,248,252,3,253,20,253,39,253,56,253,69,253,72,253,68,253,55,253,29,253,250,252,208,252,155,252, +94,252,32,252,232,251,188,251,167,251,171,251,192,251,227,251,15,252,60,252,102,252,148,252,200,252,255,252,54,253,104,253, +133,253,138,253,125,253,104,253,74,253,27,253,226,252,171,252,117,252,61,252,4,252,209,251,168,251,137,251,112,251,90,251, +70,251,55,251,52,251,59,251,72,251,88,251,110,251,144,251,186,251,226,251,1,252,23,252,32,252,31,252,23,252,11,252, +247,251,220,251,189,251,151,251,103,251,50,251,253,250,199,250,146,250,99,250,61,250,29,250,1,250,234,249,217,249,206,249, +200,249,200,249,207,249,221,249,244,249,20,250,59,250,103,250,146,250,180,250,195,250,191,250,176,250,157,250,133,250,104,250, +73,250,34,250,239,249,173,249,98,249,30,249,243,248,222,248,210,248,199,248,188,248,174,248,157,248,135,248,106,248,70,248, +33,248,254,247,214,247,168,247,130,247,111,247,104,247,108,247,119,247,134,247,155,247,188,247,223,247,246,247,5,248,15,248, +11,248,242,247,206,247,159,247,97,247,26,247,206,246,129,246,58,246,251,245,198,245,163,245,148,245,150,245,170,245,211,245, +16,246,93,246,179,246,19,247,128,247,240,247,93,248,198,248,41,249,128,249,197,249,241,249,11,250,20,250,16,250,4,250, +247,249,232,249,225,249,227,249,233,249,243,249,3,250,25,250,61,250,114,250,180,250,251,250,61,251,126,251,196,251,3,252, +53,252,97,252,135,252,157,252,159,252,151,252,139,252,119,252,87,252,51,252,19,252,238,251,188,251,128,251,62,251,254,250, +192,250,134,250,85,250,50,250,25,250,5,250,243,249,224,249,211,249,205,249,204,249,205,249,211,249,217,249,213,249,200,249, +192,249,196,249,205,249,222,249,250,249,30,250,71,250,117,250,165,250,209,250,248,250,22,251,38,251,41,251,33,251,17,251, +7,251,20,251,51,251,75,251,86,251,94,251,103,251,111,251,127,251,159,251,207,251,4,252,53,252,93,252,125,252,159,252, +209,252,18,253,89,253,163,253,238,253,52,254,109,254,153,254,193,254,231,254,3,255,21,255,33,255,39,255,46,255,60,255, +83,255,114,255,153,255,210,255,33,0,128,0,234,0,95,1,209,1,56,2,153,2,249,2,91,3,196,3,54,4,165,4, +253,4,46,5,50,5,21,5,236,4,195,4,157,4,118,4,66,4,238,3,121,3,241,2,102,2,234,1,145,1,91,1, +56,1,25,1,243,0,198,0,152,0,113,0,84,0,68,0,58,0,47,0,25,0,246,255,199,255,142,255,79,255,17,255, +209,254,143,254,87,254,45,254,14,254,250,253,250,253,19,254,59,254,98,254,131,254,150,254,149,254,137,254,120,254,102,254, +96,254,112,254,145,254,192,254,3,255,90,255,192,255,49,0,166,0,28,1,144,1,11,2,146,2,30,3,167,3,36,4, +132,4,192,4,222,4,227,4,220,4,207,4,183,4,141,4,69,4,213,3,68,3,168,2,15,2,136,1,33,1,221,0, +180,0,155,0,140,0,130,0,126,0,126,0,129,0,129,0,133,0,151,0,186,0,225,0,254,0,12,1,7,1,236,0, +193,0,150,0,121,0,102,0,84,0,54,0,2,0,185,255,101,255,13,255,188,254,115,254,43,254,230,253,183,253,175,253, +210,253,32,254,139,254,7,255,138,255,19,0,161,0,53,1,203,1,83,2,194,2,15,3,53,3,54,3,39,3,25,3, +15,3,255,2,231,2,205,2,188,2,187,2,208,2,241,2,14,3,22,3,253,2,191,2,109,2,29,2,213,1,156,1, +122,1,104,1,86,1,62,1,36,1,10,1,235,0,212,0,204,0,210,0,221,0,232,0,243,0,255,0,7,1,7,1, +4,1,10,1,32,1,63,1,90,1,99,1,93,1,78,1,50,1,8,1,212,0,162,0,119,0,84,0,57,0,42,0, +43,0,59,0,84,0,107,0,122,0,128,0,125,0,122,0,135,0,178,0,248,0,74,1,155,1,225,1,15,2,33,2, +32,2,7,2,214,1,150,1,84,1,16,1,194,0,101,0,255,255,154,255,60,255,230,254,163,254,128,254,121,254,120,254, +117,254,117,254,121,254,134,254,173,254,237,254,50,255,105,255,134,255,131,255,111,255,86,255,61,255,32,255,250,254,199,254, +139,254,70,254,254,253,193,253,148,253,119,253,95,253,61,253,14,253,216,252,160,252,117,252,95,252,92,252,109,252,148,252, +199,252,249,252,25,253,30,253,13,253,232,252,186,252,146,252,120,252,106,252,101,252,104,252,110,252,115,252,119,252,122,252, +125,252,121,252,105,252,83,252,61,252,37,252,12,252,243,251,215,251,180,251,133,251,81,251,33,251,255,250,240,250,236,250, +234,250,231,250,227,250,221,250,210,250,194,250,172,250,150,250,141,250,144,250,150,250,150,250,146,250,138,250,121,250,96,250, +68,250,49,250,47,250,60,250,76,250,75,250,50,250,2,250,192,249,115,249,42,249,228,248,158,248,90,248,31,248,241,247, +211,247,198,247,205,247,230,247,8,248,47,248,86,248,118,248,138,248,146,248,131,248,77,248,233,247,101,247,217,246,80,246, +206,245,99,245,24,245,231,244,205,244,212,244,255,244,69,245,154,245,242,245,68,246,136,246,191,246,236,246,19,247,55,247, +91,247,121,247,138,247,130,247,90,247,29,247,218,246,153,246,95,246,49,246,17,246,3,246,12,246,47,246,107,246,191,246, +46,247,179,247,70,248,223,248,123,249,22,250,182,250,91,251,250,251,132,252,239,252,44,253,59,253,45,253,17,253,235,252, +190,252,140,252,87,252,16,252,173,251,57,251,197,250,92,250,7,250,196,249,140,249,89,249,44,249,5,249,235,248,225,248, +231,248,246,248,4,249,17,249,27,249,31,249,30,249,19,249,247,248,207,248,160,248,108,248,59,248,27,248,18,248,37,248, +78,248,135,248,211,248,48,249,147,249,250,249,98,250,192,250,19,251,101,251,186,251,16,252,96,252,158,252,192,252,201,252, +207,252,230,252,11,253,53,253,92,253,120,253,126,253,112,253,101,253,114,253,156,253,222,253,50,254,139,254,226,254,55,255, +139,255,219,255,34,0,88,0,117,0,122,0,117,0,117,0,129,0,155,0,193,0,247,0,69,1,166,1,10,2,101,2, +181,2,1,3,77,3,156,3,245,3,91,4,193,4,14,5,44,5,17,5,196,4,85,4,207,3,61,3,176,2,43,2, +169,1,34,1,153,0,18,0,150,255,37,255,200,254,140,254,119,254,131,254,164,254,205,254,239,254,3,255,20,255,47,255, +79,255,109,255,140,255,172,255,196,255,215,255,246,255,46,0,125,0,207,0,17,1,54,1,54,1,23,1,238,0,206,0, +194,0,209,0,248,0,51,1,129,1,226,1,87,2,215,2,88,3,218,3,99,4,246,4,155,5,78,6,0,7,165,7, +51,8,152,8,207,8,229,8,240,8,242,8,218,8,157,8,50,8,141,7,184,6,213,5,2,5,79,4,196,3,92,3, +11,3,191,2,111,2,20,2,178,1,88,1,23,1,242,0,235,0,7,1,62,1,126,1,180,1,210,1,215,1,207,1, +197,1,204,1,240,1,39,2,92,2,131,2,149,2,146,2,128,2,97,2,52,2,251,1,184,1,113,1,49,1,5,1, +250,0,22,1,91,1,194,1,62,2,196,2,91,3,3,4,170,4,67,5,197,5,43,6,116,6,161,6,188,6,206,6, +210,6,194,6,156,6,99,6,27,6,208,5,128,5,39,5,186,4,52,4,155,3,247,2,84,2,198,1,105,1,73,1, +89,1,133,1,192,1,3,2,70,2,131,2,190,2,255,2,78,3,166,3,251,3,60,4,94,4,100,4,86,4,64,4, +41,4,26,4,21,4,14,4,243,3,187,3,105,3,254,2,121,2,232,1,90,1,218,0,117,0,50,0,25,0,42,0, +97,0,186,0,39,1,148,1,246,1,78,2,150,2,205,2,252,2,43,3,92,3,142,3,195,3,246,3,36,4,77,4, +121,4,169,4,216,4,3,5,39,5,64,5,70,5,51,5,7,5,197,4,111,4,17,4,188,3,114,3,45,3,244,2, +202,2,176,2,165,2,164,2,172,2,191,2,214,2,237,2,254,2,5,3,255,2,240,2,212,2,165,2,97,2,10,2, +169,1,70,1,235,0,158,0,96,0,42,0,250,255,206,255,169,255,136,255,108,255,98,255,104,255,118,255,139,255,168,255, +202,255,243,255,36,0,89,0,137,0,170,0,179,0,175,0,167,0,157,0,146,0,134,0,112,0,73,0,15,0,206,255, +136,255,63,255,252,254,201,254,155,254,104,254,47,254,239,253,173,253,110,253,54,253,11,253,241,252,233,252,245,252,20,253, +59,253,95,253,123,253,144,253,166,253,194,253,225,253,0,254,28,254,47,254,53,254,43,254,15,254,231,253,186,253,141,253, +104,253,73,253,46,253,19,253,234,252,166,252,72,252,213,251,85,251,213,250,105,250,27,250,234,249,203,249,186,249,182,249, +192,249,216,249,255,249,46,250,92,250,130,250,154,250,164,250,162,250,141,250,96,250,31,250,206,249,100,249,223,248,77,248, +187,247,49,247,183,246,89,246,26,246,247,245,239,245,7,246,64,246,146,246,244,246,91,247,199,247,56,248,172,248,31,249, +152,249,16,250,118,250,187,250,216,250,213,250,190,250,152,250,111,250,84,250,71,250,63,250,52,250,43,250,47,250,71,250, +116,250,183,250,13,251,108,251,205,251,44,252,128,252,197,252,252,252,39,253,75,253,98,253,98,253,76,253,43,253,14,253, +243,252,213,252,176,252,131,252,76,252,6,252,177,251,90,251,17,251,215,250,159,250,102,250,44,250,242,249,187,249,140,249, +109,249,99,249,110,249,141,249,186,249,240,249,50,250,130,250,214,250,33,251,92,251,135,251,169,251,206,251,251,251,45,252, +100,252,166,252,239,252,54,253,125,253,203,253,26,254,97,254,155,254,195,254,216,254,222,254,223,254,230,254,251,254,23,255, +61,255,121,255,214,255,84,0,232,0,127,1,15,2,148,2,15,3,138,3,12,4,146,4,30,5,176,5,58,6,175,6, +19,7,110,7,196,7,8,8,43,8,36,8,243,7,165,7,82,7,4,7,183,6,100,6,2,6,131,5,221,4,26,4, +83,3,161,2,11,2,139,1,36,1,215,0,155,0,101,0,57,0,31,0,28,0,48,0,85,0,128,0,168,0,190,0, +185,0,154,0,103,0,33,0,221,255,176,255,155,255,147,255,154,255,180,255,228,255,41,0,127,0,215,0,38,1,108,1, +168,1,216,1,255,1,41,2,99,2,182,2,37,3,171,3,71,4,248,4,177,5,101,6,13,7,165,7,42,8,156,8, +3,9,99,9,181,9,239,9,2,10,225,9,143,9,34,9,175,8,70,8,239,7,161,7,79,7,226,6,81,6,164,5, +243,4,82,4,208,3,112,3,44,3,245,2,191,2,137,2,89,2,41,2,250,1,220,1,229,1,27,2,122,2,239,2, +89,3,148,3,147,3,97,3,19,3,202,2,162,2,157,2,170,2,181,2,170,2,133,2,85,2,37,2,240,1,177,1, +101,1,14,1,192,0,150,0,165,0,245,0,127,1,45,2,236,2,179,3,127,4,76,5,15,6,183,6,54,7,125,7, +138,7,112,7,70,7,18,7,206,6,115,6,13,6,172,5,91,5,34,5,3,5,244,4,225,4,176,4,90,4,237,3, +124,3,16,3,180,2,99,2,18,2,195,1,127,1,71,1,22,1,235,0,200,0,179,0,184,0,225,0,43,1,146,1, +7,2,111,2,183,2,223,2,240,2,242,2,237,2,232,2,220,2,190,2,135,2,61,2,224,1,117,1,1,1,138,0, +25,0,189,255,133,255,119,255,145,255,196,255,1,0,65,0,125,0,178,0,234,0,43,1,111,1,173,1,228,1,16,2, +51,2,75,2,90,2,91,2,75,2,40,2,247,1,192,1,140,1,89,1,30,1,214,0,134,0,52,0,230,255,168,255, +129,255,110,255,109,255,125,255,162,255,219,255,34,0,112,0,181,0,232,0,11,1,31,1,43,1,51,1,60,1,58,1, +27,1,222,0,145,0,66,0,252,255,199,255,161,255,125,255,79,255,26,255,235,254,201,254,186,254,189,254,200,254,197,254, +170,254,128,254,92,254,78,254,91,254,123,254,154,254,163,254,145,254,103,254,51,254,10,254,247,253,239,253,230,253,213,253, +179,253,128,253,72,253,17,253,224,252,175,252,120,252,63,252,9,252,211,251,165,251,131,251,104,251,76,251,39,251,242,250, +182,250,136,250,114,250,112,250,126,250,148,250,163,250,160,250,137,250,101,250,68,250,43,250,27,250,19,250,15,250,8,250, +249,249,229,249,210,249,197,249,192,249,191,249,191,249,193,249,199,249,199,249,183,249,151,249,112,249,67,249,20,249,232,248, +189,248,149,248,115,248,85,248,56,248,32,248,20,248,15,248,20,248,37,248,57,248,72,248,81,248,85,248,80,248,50,248, +247,247,161,247,55,247,194,246,84,246,249,245,175,245,118,245,86,245,82,245,104,245,151,245,225,245,62,246,161,246,1,247, +87,247,163,247,240,247,63,248,137,248,189,248,203,248,177,248,116,248,24,248,169,247,65,247,245,246,204,246,202,246,238,246, +47,247,132,247,223,247,47,248,112,248,173,248,238,248,50,249,115,249,166,249,200,249,213,249,211,249,207,249,213,249,232,249, +6,250,39,250,50,250,29,250,238,249,173,249,93,249,3,249,170,248,88,248,18,248,216,247,170,247,138,247,119,247,112,247, +113,247,128,247,168,247,233,247,51,248,117,248,171,248,210,248,240,248,11,249,40,249,68,249,85,249,84,249,69,249,58,249, +66,249,107,249,187,249,44,250,176,250,61,251,214,251,134,252,81,253,44,254,4,255,203,255,123,0,20,1,156,1,27,2, +152,2,15,3,115,3,195,3,9,4,79,4,159,4,255,4,109,5,229,5,98,6,228,6,104,7,240,7,120,8,243,8, +83,9,150,9,192,9,203,9,176,9,106,9,241,8,63,8,87,7,90,6,105,5,149,4,222,3,65,3,179,2,40,2, +161,1,49,1,231,0,200,0,206,0,228,0,245,0,253,0,2,1,8,1,20,1,31,1,30,1,13,1,229,0,165,0, +94,0,38,0,10,0,7,0,21,0,41,0,58,0,69,0,76,0,85,0,108,0,149,0,211,0,35,1,128,1,223,1, +68,2,187,2,75,3,240,3,164,4,97,5,22,6,181,6,61,7,184,7,48,8,164,8,10,9,84,9,121,9,119,9, +90,9,48,9,7,9,226,8,187,8,123,8,21,8,140,7,234,6,65,6,164,5,29,5,167,4,57,4,205,3,101,3, +6,3,169,2,71,2,226,1,125,1,29,1,207,0,165,0,160,0,177,0,194,0,194,0,175,0,150,0,132,0,137,0, +172,0,226,0,19,1,43,1,35,1,2,1,211,0,156,0,98,0,37,0,236,255,194,255,182,255,208,255,21,0,125,0, +250,0,132,1,20,2,166,2,57,3,209,3,107,4,5,5,153,5,33,6,156,6,6,7,91,7,156,7,193,7,195,7, +163,7,110,7,40,7,209,6,102,6,228,5,75,5,157,4,223,3,30,3,105,2,209,1,99,1,38,1,23,1,37,1, +59,1,73,1,70,1,50,1,22,1,248,0,228,0,220,0,216,0,198,0,163,0,121,0,83,0,51,0,32,0,30,0, +44,0,66,0,91,0,115,0,135,0,144,0,136,0,110,0,67,0,19,0,235,255,205,255,191,255,194,255,212,255,248,255, +54,0,133,0,217,0,45,1,128,1,206,1,25,2,97,2,162,2,212,2,235,2,223,2,181,2,113,2,27,2,194,1, +111,1,29,1,198,0,106,0,16,0,189,255,112,255,32,255,200,254,103,254,0,254,160,253,83,253,30,253,5,253,6,253, +22,253,43,253,65,253,94,253,138,253,197,253,10,254,85,254,152,254,201,254,223,254,218,254,181,254,111,254,19,254,178,253, +90,253,12,253,205,252,163,252,137,252,117,252,107,252,116,252,143,252,177,252,208,252,233,252,249,252,253,252,248,252,238,252, +217,252,179,252,126,252,58,252,232,251,150,251,86,251,42,251,6,251,230,250,195,250,151,250,100,250,49,250,3,250,217,249, +178,249,148,249,138,249,148,249,168,249,186,249,197,249,192,249,166,249,124,249,82,249,55,249,51,249,65,249,82,249,88,249, +81,249,64,249,50,249,53,249,74,249,110,249,158,249,213,249,19,250,88,250,161,250,234,250,42,251,88,251,110,251,117,251, +116,251,112,251,106,251,86,251,42,251,235,250,154,250,59,250,219,249,131,249,51,249,230,248,162,248,113,248,95,248,105,248, +133,248,161,248,174,248,168,248,154,248,148,248,159,248,186,248,218,248,238,248,238,248,223,248,205,248,201,248,219,248,255,248, +43,249,87,249,125,249,157,249,199,249,5,250,85,250,168,250,242,250,50,251,116,251,191,251,21,252,110,252,199,252,27,253, +100,253,152,253,182,253,194,253,195,253,184,253,159,253,123,253,85,253,53,253,25,253,253,252,232,252,227,252,247,252,44,253, +130,253,242,253,108,254,227,254,79,255,172,255,247,255,43,0,65,0,47,0,245,255,161,255,69,255,244,254,185,254,140,254, +99,254,52,254,255,253,205,253,167,253,150,253,156,253,173,253,190,253,206,253,221,253,242,253,16,254,59,254,113,254,168,254, +222,254,24,255,92,255,169,255,0,0,102,0,212,0,71,1,196,1,82,2,240,2,150,3,54,4,196,4,66,5,183,5, +44,6,166,6,39,7,173,7,52,8,174,8,14,9,74,9,100,9,93,9,53,9,241,8,162,8,81,8,251,7,147,7, +15,7,107,6,176,5,241,4,72,4,203,3,118,3,55,3,253,2,187,2,113,2,48,2,12,2,7,2,18,2,26,2, +17,2,245,1,198,1,136,1,73,1,12,1,198,0,113,0,22,0,194,255,131,255,100,255,99,255,114,255,140,255,180,255, +238,255,64,0,163,0,14,1,116,1,201,1,14,2,77,2,151,2,253,2,127,3,10,4,140,4,2,5,111,5,215,5, +61,6,152,6,226,6,32,7,88,7,144,7,209,7,28,8,100,8,151,8,169,8,156,8,124,8,89,8,60,8,25,8, +218,7,111,7,215,6,38,6,119,5,219,4,86,4,230,3,132,3,40,3,209,2,136,2,75,2,22,2,233,1,201,1, +183,1,177,1,186,1,198,1,191,1,153,1,85,1,255,0,176,0,131,0,125,0,145,0,166,0,178,0,184,0,195,0, +219,0,2,1,45,1,75,1,83,1,73,1,66,1,85,1,143,1,239,1,102,2,232,2,114,3,7,4,172,4,96,5, +18,6,169,6,19,7,80,7,112,7,135,7,156,7,173,7,170,7,127,7,44,7,190,6,67,6,207,5,104,5,4,5, +152,4,29,4,155,3,31,3,177,2,77,2,246,1,166,1,88,1,17,1,215,0,171,0,136,0,99,0,49,0,245,255, +189,255,149,255,138,255,153,255,180,255,205,255,216,255,209,255,190,255,174,255,166,255,168,255,175,255,178,255,172,255,157,255, +137,255,114,255,88,255,63,255,43,255,34,255,42,255,64,255,95,255,123,255,139,255,140,255,128,255,117,255,121,255,147,255, +189,255,242,255,38,0,76,0,98,0,106,0,105,0,97,0,82,0,59,0,32,0,3,0,224,255,173,255,103,255,17,255, +178,254,75,254,224,253,120,253,19,253,173,252,73,252,234,251,157,251,110,251,97,251,117,251,158,251,206,251,3,252,60,252, +119,252,180,252,238,252,35,253,76,253,102,253,112,253,111,253,107,253,106,253,110,253,112,253,106,253,96,253,83,253,64,253, +40,253,18,253,254,252,235,252,218,252,207,252,202,252,196,252,192,252,190,252,179,252,153,252,113,252,60,252,252,251,181,251, +116,251,70,251,44,251,36,251,37,251,39,251,35,251,23,251,9,251,253,250,243,250,236,250,226,250,198,250,144,250,69,250, +239,249,145,249,53,249,230,248,170,248,135,248,124,248,131,248,151,248,174,248,198,248,224,248,248,248,20,249,58,249,99,249, +134,249,159,249,171,249,172,249,167,249,152,249,128,249,98,249,63,249,22,249,233,248,175,248,97,248,255,247,140,247,18,247, +159,246,67,246,11,246,253,245,17,246,59,246,120,246,201,246,43,247,152,247,8,248,117,248,212,248,32,249,87,249,121,249, +129,249,104,249,42,249,210,248,112,248,17,248,197,247,152,247,135,247,135,247,146,247,164,247,196,247,245,247,52,248,121,248, +186,248,231,248,249,248,251,248,255,248,15,249,47,249,93,249,139,249,170,249,182,249,175,249,152,249,122,249,89,249,53,249, +20,249,254,248,246,248,254,248,20,249,52,249,93,249,147,249,217,249,47,250,148,250,8,251,136,251,5,252,120,252,222,252, +53,253,128,253,193,253,247,253,28,254,52,254,64,254,68,254,64,254,54,254,42,254,32,254,25,254,22,254,23,254,24,254, +19,254,10,254,4,254,252,253,247,253,253,253,17,254,48,254,90,254,143,254,211,254,37,255,129,255,232,255,91,0,209,0, +64,1,157,1,232,1,46,2,121,2,198,2,16,3,88,3,145,3,180,3,191,3,185,3,171,3,155,3,138,3,109,3, +57,3,221,2,86,2,170,1,230,0,28,0,96,255,190,254,59,254,211,253,129,253,68,253,25,253,2,253,4,253,21,253, +46,253,73,253,94,253,101,253,99,253,91,253,83,253,69,253,35,253,232,252,155,252,64,252,225,251,139,251,69,251,11,251, +220,250,185,250,163,250,150,250,148,250,163,250,198,250,5,251,100,251,226,251,134,252,80,253,49,254,30,255,11,0,231,0, +172,1,88,2,232,2,94,3,194,3,21,4,94,4,158,4,207,4,233,4,233,4,206,4,167,4,131,4,107,4,96,4, +86,4,56,4,252,3,161,3,59,3,226,2,160,2,110,2,70,2,34,2,246,1,193,1,135,1,72,1,5,1,182,0, +92,0,1,0,175,255,113,255,75,255,44,255,255,254,194,254,128,254,78,254,64,254,85,254,116,254,126,254,99,254,43,254, +236,253,186,253,155,253,126,253,83,253,18,253,189,252,112,252,80,252,111,252,203,252,82,253,231,253,130,254,42,255,230,255, +177,0,125,1,52,2,197,2,48,3,130,3,202,3,15,4,68,4,81,4,40,4,208,3,98,3,247,2,156,2,68,2, +219,1,82,1,174,0,254,255,92,255,221,254,134,254,71,254,18,254,232,253,209,253,213,253,244,253,37,254,83,254,107,254, +106,254,98,254,100,254,116,254,127,254,109,254,42,254,186,253,62,253,208,252,126,252,77,252,47,252,7,252,207,251,155,251, +120,251,113,251,138,251,180,251,219,251,249,251,23,252,62,252,124,252,210,252,50,253,139,253,214,253,18,254,75,254,150,254, +245,254,95,255,207,255,52,0,137,0,217,0,39,1,107,1,162,1,201,1,218,1,219,1,211,1,199,1,189,1,177,1, +157,1,126,1,84,1,36,1,246,0,202,0,153,0,97,0,33,0,227,255,178,255,147,255,134,255,127,255,109,255,79,255, +43,255,6,255,238,254,227,254,218,254,196,254,151,254,84,254,6,254,186,253,113,253,48,253,239,252,165,252,86,252,9,252, +198,251,150,251,124,251,113,251,115,251,132,251,175,251,252,251,104,252,231,252,99,253,195,253,252,253,15,254,7,254,243,253, +216,253,172,253,99,253,250,252,118,252,231,251,93,251,224,250,115,250,14,250,172,249,86,249,19,249,237,248,234,248,249,248, +251,248,220,248,155,248,69,248,241,247,171,247,120,247,79,247,36,247,239,246,176,246,106,246,40,246,238,245,180,245,109,245, +23,245,190,244,120,244,79,244,67,244,84,244,122,244,172,244,234,244,55,245,141,245,230,245,51,246,98,246,102,246,61,246, +240,245,150,245,64,245,244,244,172,244,103,244,49,244,20,244,22,244,56,244,121,244,206,244,39,245,127,245,211,245,37,246, +125,246,214,246,31,247,74,247,85,247,72,247,47,247,24,247,15,247,22,247,35,247,49,247,66,247,93,247,134,247,194,247, +17,248,104,248,185,248,253,248,56,249,119,249,195,249,24,250,113,250,196,250,3,251,40,251,61,251,79,251,98,251,117,251, +133,251,140,251,136,251,130,251,131,251,146,251,173,251,208,251,248,251,38,252,99,252,186,252,47,253,188,253,82,254,227,254, +106,255,241,255,128,0,18,1,158,1,25,2,118,2,180,2,227,2,10,3,45,3,77,3,96,3,93,3,82,3,77,3, +93,3,135,3,192,3,251,3,58,4,128,4,209,4,55,5,178,5,47,6,145,6,202,6,227,6,248,6,23,7,66,7, +101,7,99,7,47,7,202,6,74,6,199,5,72,5,189,4,15,4,39,3,3,2,193,0,133,255,106,254,124,253,178,252, +252,251,88,251,213,250,138,250,124,250,153,250,206,250,10,251,64,251,114,251,175,251,248,251,67,252,121,252,133,252,110,252, +82,252,74,252,104,252,169,252,247,252,64,253,125,253,173,253,226,253,33,254,86,254,110,254,87,254,10,254,155,253,41,253, +204,252,145,252,122,252,129,252,162,252,226,252,79,253,237,253,177,254,135,255,92,0,40,1,243,1,191,2,138,3,69,4, +219,4,47,5,62,5,27,5,220,4,152,4,88,4,20,4,189,3,70,3,180,2,30,2,152,1,48,1,231,0,179,0, +133,0,89,0,53,0,35,0,34,0,40,0,48,0,60,0,77,0,108,0,160,0,224,0,30,1,76,1,96,1,101,1, +110,1,129,1,153,1,170,1,159,1,106,1,20,1,173,0,74,0,247,255,180,255,114,255,40,255,218,254,150,254,114,254, +122,254,170,254,246,254,82,255,179,255,17,0,109,0,207,0,51,1,143,1,221,1,30,2,82,2,130,2,177,2,213,2, +231,2,230,2,202,2,152,2,89,2,20,2,208,1,141,1,64,1,233,0,137,0,31,0,180,255,88,255,17,255,226,254, +206,254,207,254,222,254,234,254,225,254,202,254,177,254,158,254,150,254,157,254,172,254,185,254,191,254,190,254,188,254,191,254, +207,254,241,254,29,255,75,255,113,255,133,255,130,255,104,255,57,255,3,255,211,254,176,254,158,254,151,254,146,254,150,254, +175,254,226,254,56,255,171,255,44,0,171,0,30,1,130,1,225,1,66,2,159,2,234,2,27,3,41,3,27,3,251,2, +211,2,169,2,119,2,56,2,241,1,172,1,117,1,82,1,59,1,37,1,0,1,198,0,131,0,76,0,42,0,37,0, +54,0,77,0,98,0,124,0,159,0,207,0,7,1,49,1,59,1,29,1,220,0,136,0,48,0,219,255,138,255,49,255, +201,254,96,254,1,254,192,253,164,253,160,253,168,253,180,253,185,253,184,253,189,253,205,253,227,253,245,253,250,253,241,253, +228,253,212,253,191,253,164,253,126,253,71,253,3,253,193,252,138,252,98,252,70,252,43,252,7,252,218,251,165,251,113,251, +68,251,27,251,236,250,177,250,103,250,15,250,178,249,87,249,0,249,171,248,93,248,27,248,237,247,223,247,248,247,48,248, +112,248,158,248,179,248,178,248,162,248,141,248,124,248,106,248,81,248,45,248,0,248,217,247,194,247,186,247,185,247,180,247, +161,247,134,247,114,247,113,247,126,247,134,247,124,247,91,247,46,247,10,247,3,247,29,247,77,247,130,247,179,247,222,247, +17,248,84,248,165,248,244,248,41,249,49,249,14,249,205,248,126,248,41,248,198,247,75,247,182,246,22,246,127,245,9,245, +189,244,147,244,124,244,111,244,110,244,128,244,174,244,250,244,92,245,194,245,27,246,107,246,187,246,22,247,123,247,221,247, +42,248,95,248,124,248,138,248,151,248,168,248,192,248,226,248,6,249,50,249,118,249,214,249,76,250,210,250,92,251,226,251, +103,252,246,252,155,253,79,254,254,254,164,255,63,0,208,0,102,1,10,2,180,2,95,3,255,3,133,4,244,4,80,5, +157,5,227,5,36,6,90,6,134,6,172,6,209,6,246,6,27,7,67,7,103,7,125,7,128,7,106,7,56,7,239,6, +146,6,34,6,167,5,36,5,155,4,3,4,89,3,164,2,242,1,79,1,195,0,80,0,233,255,135,255,39,255,202,254, +122,254,73,254,57,254,67,254,93,254,121,254,141,254,155,254,167,254,176,254,183,254,184,254,169,254,137,254,101,254,69,254, +51,254,51,254,62,254,75,254,79,254,73,254,65,254,59,254,59,254,68,254,83,254,110,254,155,254,212,254,18,255,84,255, +146,255,196,255,229,255,248,255,10,0,26,0,37,0,46,0,57,0,75,0,104,0,142,0,184,0,217,0,226,0,211,0, +181,0,149,0,129,0,115,0,97,0,62,0,250,255,150,255,29,255,155,254,23,254,152,253,29,253,169,252,66,252,231,251, +152,251,90,251,39,251,248,250,212,250,198,250,214,250,255,250,52,251,99,251,128,251,137,251,136,251,146,251,180,251,228,251, +12,252,27,252,12,252,232,251,197,251,171,251,152,251,129,251,88,251,24,251,207,250,146,250,122,250,139,250,188,250,5,251, +94,251,192,251,47,252,168,252,29,253,126,253,182,253,191,253,164,253,121,253,73,253,24,253,221,252,150,252,66,252,234,251, +159,251,103,251,52,251,246,250,166,250,64,250,209,249,106,249,22,249,216,248,168,248,131,248,109,248,109,248,135,248,186,248, +247,248,38,249,52,249,33,249,2,249,239,248,246,248,19,249,57,249,88,249,110,249,133,249,174,249,248,249,100,250,229,250, +100,251,207,251,35,252,99,252,150,252,189,252,210,252,205,252,171,252,110,252,34,252,208,251,124,251,42,251,216,250,139,250, +86,250,61,250,65,250,99,250,146,250,186,250,220,250,255,250,44,251,103,251,164,251,211,251,227,251,201,251,140,251,55,251, +214,250,116,250,12,250,146,249,1,249,95,248,189,247,51,247,204,246,137,246,100,246,86,246,99,246,143,246,222,246,80,247, +219,247,108,248,245,248,108,249,212,249,52,250,143,250,223,250,23,251,47,251,42,251,18,251,239,250,213,250,198,250,188,250, +178,250,166,250,151,250,146,250,164,250,205,250,2,251,56,251,102,251,139,251,169,251,198,251,225,251,240,251,233,251,204,251, +156,251,91,251,16,251,187,250,90,250,230,249,94,249,199,248,48,248,166,247,43,247,189,246,89,246,253,245,169,245,109,245, +89,245,115,245,183,245,23,246,127,246,225,246,55,247,127,247,182,247,216,247,226,247,212,247,178,247,137,247,94,247,53,247, +13,247,227,246,179,246,136,246,112,246,118,246,158,246,214,246,10,247,38,247,39,247,22,247,254,246,237,246,230,246,219,246, +185,246,122,246,39,246,209,245,139,245,86,245,43,245,0,245,206,244,161,244,139,244,150,244,196,244,6,245,73,245,131,245, +176,245,208,245,242,245,28,246,65,246,81,246,65,246,18,246,211,245,152,245,108,245,76,245,47,245,16,245,239,244,216,244, +215,244,241,244,33,245,98,245,170,245,249,245,81,246,179,246,33,247,149,247,254,247,90,248,167,248,235,248,49,249,122,249, +192,249,251,249,39,250,71,250,103,250,146,250,209,250,30,251,102,251,164,251,226,251,42,252,138,252,13,253,175,253,102,254, +30,255,203,255,106,0,1,1,148,1,37,2,171,2,27,3,107,3,155,3,178,3,190,3,203,3,220,3,232,3,229,3, +210,3,185,3,162,3,149,3,148,3,160,3,173,3,170,3,147,3,107,3,57,3,7,3,221,2,186,2,157,2,133,2, +106,2,69,2,10,2,185,1,87,1,237,0,136,0,49,0,237,255,185,255,138,255,84,255,24,255,226,254,187,254,176,254, +187,254,199,254,200,254,188,254,171,254,166,254,184,254,218,254,1,255,33,255,53,255,70,255,106,255,177,255,24,0,148,0, +12,1,108,1,179,1,244,1,59,2,142,2,226,2,38,3,82,3,101,3,105,3,119,3,152,3,189,3,217,3,224,3, +203,3,165,3,129,3,115,3,124,3,147,3,178,3,210,3,238,3,11,4,37,4,56,4,63,4,53,4,27,4,250,3, +207,3,150,3,75,3,230,2,99,2,204,1,48,1,160,0,35,0,186,255,95,255,6,255,171,254,83,254,0,254,182,253, +126,253,91,253,79,253,93,253,125,253,163,253,204,253,236,253,1,254,21,254,50,254,85,254,120,254,145,254,146,254,113,254, +56,254,248,253,190,253,147,253,112,253,69,253,14,253,208,252,156,252,140,252,171,252,246,252,99,253,217,253,66,254,154,254, +227,254,41,255,114,255,178,255,221,255,234,255,210,255,153,255,82,255,13,255,209,254,156,254,103,254,50,254,2,254,224,253, +210,253,214,253,229,253,240,253,234,253,210,253,180,253,158,253,160,253,185,253,222,253,255,253,13,254,4,254,234,253,203,253, +189,253,203,253,242,253,45,254,112,254,170,254,214,254,239,254,246,254,250,254,2,255,20,255,49,255,81,255,107,255,130,255, +149,255,171,255,200,255,228,255,242,255,236,255,199,255,133,255,50,255,227,254,161,254,101,254,38,254,226,253,149,253,74,253, +17,253,238,252,223,252,212,252,191,252,156,252,109,252,63,252,30,252,10,252,245,251,212,251,159,251,89,251,13,251,205,250, +163,250,139,250,117,250,83,250,34,250,235,249,192,249,176,249,191,249,232,249,31,250,88,250,144,250,197,250,255,250,69,251, +151,251,243,251,81,252,166,252,238,252,39,253,76,253,98,253,111,253,116,253,117,253,119,253,128,253,151,253,184,253,223,253, +12,254,55,254,94,254,128,254,159,254,190,254,225,254,7,255,53,255,102,255,142,255,166,255,173,255,168,255,161,255,156,255, +156,255,159,255,154,255,133,255,92,255,38,255,235,254,176,254,121,254,70,254,12,254,200,253,123,253,50,253,254,252,232,252, +231,252,243,252,254,252,254,252,246,252,236,252,230,252,232,252,231,252,221,252,204,252,183,252,170,252,174,252,194,252,223,252, +253,252,21,253,41,253,69,253,116,253,185,253,15,254,102,254,174,254,225,254,2,255,27,255,45,255,63,255,78,255,84,255, +74,255,51,255,16,255,229,254,182,254,136,254,93,254,58,254,32,254,11,254,242,253,211,253,178,253,143,253,120,253,119,253, +139,253,179,253,228,253,15,254,51,254,81,254,105,254,128,254,153,254,177,254,195,254,206,254,219,254,240,254,20,255,81,255, +165,255,10,0,124,0,236,0,77,1,161,1,235,1,42,2,102,2,158,2,202,2,223,2,217,2,185,2,141,2,97,2, +65,2,48,2,43,2,47,2,59,2,81,2,124,2,192,2,20,3,109,3,186,3,248,3,51,4,120,4,213,4,70,5, +191,5,46,6,136,6,202,6,3,7,65,7,136,7,212,7,21,8,67,8,97,8,110,8,109,8,97,8,65,8,5,8, +177,7,77,7,237,6,153,6,78,6,5,6,182,5,95,5,13,5,201,4,150,4,105,4,42,4,197,3,55,3,143,2, +237,1,109,1,25,1,230,0,185,0,129,0,62,0,250,255,198,255,172,255,164,255,160,255,149,255,127,255,105,255,96,255, +104,255,127,255,157,255,183,255,198,255,200,255,196,255,188,255,177,255,164,255,154,255,155,255,178,255,223,255,30,0,105,0, +175,0,229,0,20,1,70,1,132,1,214,1,56,2,168,2,34,3,162,3,43,4,185,4,65,5,187,5,31,6,106,6, +165,6,222,6,19,7,63,7,90,7,86,7,50,7,248,6,181,6,117,6,61,6,7,6,200,5,119,5,25,5,178,4, +73,4,228,3,125,3,7,3,125,2,225,1,66,1,172,0,38,0,177,255,73,255,232,254,143,254,66,254,10,254,235,253, +218,253,198,253,168,253,129,253,92,253,74,253,80,253,106,253,139,253,154,253,140,253,103,253,56,253,20,253,255,252,236,252, +205,252,155,252,89,252,23,252,232,251,217,251,229,251,251,251,13,252,24,252,34,252,59,252,105,252,163,252,217,252,247,252, +243,252,218,252,192,252,180,252,182,252,179,252,156,252,109,252,46,252,240,251,195,251,175,251,172,251,165,251,142,251,103,251, +59,251,20,251,253,250,241,250,230,250,211,250,187,250,173,250,179,250,209,250,7,251,69,251,124,251,179,251,235,251,34,252, +89,252,138,252,170,252,187,252,189,252,185,252,175,252,158,252,128,252,84,252,27,252,233,251,203,251,197,251,213,251,239,251, +253,251,253,251,249,251,3,252,42,252,112,252,197,252,22,253,81,253,112,253,127,253,147,253,183,253,233,253,33,254,84,254, +118,254,135,254,142,254,147,254,160,254,180,254,198,254,205,254,193,254,157,254,96,254,19,254,194,253,123,253,59,253,254,252, +195,252,133,252,65,252,2,252,212,251,190,251,187,251,192,251,199,251,197,251,184,251,168,251,152,251,140,251,136,251,135,251, +127,251,111,251,89,251,65,251,40,251,13,251,241,250,213,250,192,250,184,250,196,250,224,250,5,251,36,251,58,251,72,251, +72,251,63,251,53,251,41,251,30,251,21,251,13,251,7,251,5,251,6,251,7,251,3,251,246,250,227,250,202,250,177,250, +158,250,147,250,153,250,180,250,219,250,5,251,42,251,72,251,102,251,143,251,198,251,10,252,78,252,134,252,168,252,179,252, +182,252,192,252,218,252,253,252,25,253,28,253,254,252,198,252,130,252,65,252,9,252,213,251,158,251,96,251,32,251,233,250, +194,250,172,250,164,250,158,250,151,250,146,250,154,250,176,250,201,250,216,250,208,250,178,250,139,250,107,250,90,250,93,250, +101,250,93,250,66,250,25,250,239,249,212,249,199,249,192,249,180,249,153,249,116,249,84,249,70,249,79,249,103,249,127,249, +148,249,169,249,197,249,238,249,31,250,76,250,108,250,125,250,134,250,155,250,198,250,6,251,81,251,150,251,205,251,249,251, +37,252,95,252,170,252,249,252,65,253,122,253,159,253,188,253,225,253,20,254,77,254,131,254,175,254,214,254,254,254,50,255, +121,255,208,255,49,0,153,0,11,1,137,1,15,2,154,2,32,3,157,3,21,4,135,4,246,4,102,5,207,5,40,6, +108,6,157,6,198,6,241,6,22,7,36,7,10,7,191,6,71,6,181,5,30,5,142,4,252,3,83,3,132,2,145,1, +145,0,166,255,232,254,94,254,248,253,155,253,57,253,216,252,142,252,112,252,130,252,183,252,251,252,52,253,82,253,98,253, +116,253,141,253,176,253,206,253,215,253,199,253,166,253,132,253,114,253,117,253,133,253,151,253,167,253,184,253,211,253,1,254, +60,254,127,254,193,254,4,255,82,255,191,255,82,0,8,1,211,1,151,2,62,3,199,3,66,4,201,4,106,5,36,6, +233,6,163,7,64,8,192,8,42,9,127,9,189,9,224,9,217,9,162,9,65,9,192,8,39,8,127,7,207,6,24,6, +91,5,162,4,250,3,110,3,1,3,167,2,91,2,29,2,233,1,193,1,166,1,147,1,127,1,94,1,39,1,226,0, +159,0,103,0,56,0,10,0,208,255,129,255,29,255,167,254,39,254,163,253,28,253,148,252,17,252,159,251,75,251,26,251, +9,251,10,251,20,251,36,251,65,251,121,251,222,251,109,252,26,253,206,253,119,254,17,255,155,255,28,0,155,0,16,1, +104,1,150,1,148,1,105,1,40,1,224,0,148,0,69,0,232,255,114,255,232,254,87,254,206,253,86,253,238,252,143,252, +49,252,206,251,108,251,20,251,210,250,174,250,163,250,161,250,159,250,158,250,159,250,167,250,195,250,241,250,39,251,89,251, +122,251,130,251,120,251,98,251,74,251,57,251,44,251,27,251,3,251,230,250,199,250,176,250,161,250,152,250,151,250,149,250, +140,250,124,250,108,250,105,250,119,250,151,250,202,250,4,251,63,251,125,251,186,251,250,251,72,252,162,252,1,253,90,253, +154,253,183,253,178,253,139,253,80,253,15,253,207,252,145,252,85,252,20,252,206,251,135,251,69,251,18,251,238,250,211,250, +189,250,167,250,145,250,128,250,122,250,128,250,142,250,157,250,168,250,177,250,183,250,192,250,208,250,223,250,229,250,225,250, +214,250,199,250,187,250,179,250,163,250,129,250,75,250,5,250,194,249,152,249,146,249,177,249,232,249,35,250,88,250,139,250, +197,250,21,251,124,251,236,251,87,252,176,252,241,252,31,253,66,253,93,253,108,253,99,253,60,253,250,252,165,252,79,252, +255,251,182,251,116,251,55,251,253,250,204,250,170,250,149,250,135,250,117,250,93,250,72,250,64,250,83,250,126,250,179,250, +221,250,238,250,218,250,168,250,112,250,72,250,55,250,59,250,76,250,93,250,98,250,97,250,102,250,117,250,149,250,196,250, +249,250,44,251,87,251,118,251,145,251,175,251,207,251,241,251,19,252,45,252,56,252,49,252,25,252,241,251,191,251,139,251, +86,251,34,251,245,250,212,250,198,250,205,250,226,250,255,250,29,251,52,251,64,251,71,251,73,251,74,251,71,251,57,251, +28,251,243,250,193,250,138,250,91,250,66,250,66,250,85,250,118,250,164,250,220,250,31,251,110,251,196,251,33,252,123,252, +206,252,25,253,94,253,166,253,249,253,82,254,168,254,244,254,47,255,91,255,130,255,179,255,248,255,84,0,195,0,68,1, +211,1,109,2,25,3,213,3,158,4,109,5,56,6,250,6,179,7,95,8,248,8,115,9,193,9,219,9,203,9,153,9, +82,9,1,9,164,8,45,8,138,7,179,6,183,5,170,4,164,3,174,2,199,1,231,0,4,0,29,255,62,254,125,253, +231,252,128,252,64,252,31,252,26,252,43,252,83,252,148,252,234,252,71,253,147,253,191,253,205,253,197,253,183,253,177,253, +184,253,203,253,230,253,6,254,49,254,102,254,166,254,246,254,75,255,153,255,227,255,51,0,146,0,15,1,175,1,103,2, +32,3,203,3,93,4,215,4,70,5,189,5,69,6,215,6,108,7,244,7,98,8,178,8,228,8,253,8,4,9,249,8, +217,8,162,8,80,8,224,7,85,7,177,6,252,5,67,5,142,4,229,3,79,3,207,2,95,2,248,1,153,1,65,1, +246,0,191,0,153,0,128,0,116,0,105,0,86,0,61,0,33,0,8,0,251,255,248,255,248,255,240,255,212,255,159,255, +92,255,29,255,250,254,1,255,44,255,102,255,153,255,185,255,199,255,210,255,232,255,18,0,79,0,147,0,215,0,25,1, +97,1,189,1,50,2,187,2,72,3,203,3,61,4,160,4,252,4,89,5,176,5,244,5,21,6,20,6,3,6,244,5, +240,5,245,5,240,5,205,5,135,5,43,5,208,4,140,4,102,4,84,4,63,4,15,4,193,3,97,3,4,3,188,2, +137,2,100,2,68,2,25,2,229,1,183,1,145,1,123,1,115,1,111,1,107,1,111,1,121,1,134,1,142,1,128,1, +87,1,25,1,208,0,139,0,81,0,32,0,239,255,168,255,63,255,195,254,74,254,226,253,154,253,106,253,63,253,15,253, +219,252,180,252,171,252,207,252,34,253,145,253,1,254,91,254,153,254,189,254,208,254,224,254,241,254,0,255,15,255,27,255, +27,255,7,255,221,254,152,254,56,254,198,253,75,253,210,252,102,252,9,252,182,251,109,251,52,251,17,251,5,251,21,251, +60,251,106,251,154,251,206,251,0,252,47,252,85,252,103,252,98,252,70,252,25,252,236,251,202,251,179,251,166,251,157,251, +154,251,166,251,197,251,252,251,70,252,141,252,198,252,243,252,27,253,70,253,124,253,180,253,225,253,244,253,230,253,198,253, +164,253,142,253,134,253,131,253,115,253,78,253,25,253,228,252,193,252,182,252,185,252,185,252,175,252,153,252,128,252,118,252, +129,252,152,252,175,252,183,252,165,252,127,252,84,252,45,252,9,252,225,251,174,251,113,251,48,251,248,250,217,250,214,250, +237,250,22,251,73,251,127,251,187,251,4,252,93,252,193,252,45,253,149,253,237,253,53,254,110,254,155,254,188,254,211,254, +219,254,220,254,214,254,200,254,183,254,165,254,139,254,107,254,70,254,30,254,250,253,221,253,197,253,173,253,146,253,115,253, +84,253,58,253,42,253,37,253,38,253,37,253,26,253,7,253,244,252,231,252,229,252,241,252,0,253,14,253,32,253,56,253, +91,253,141,253,201,253,11,254,74,254,132,254,192,254,11,255,109,255,230,255,111,0,254,0,131,1,245,1,90,2,185,2, +18,3,104,3,191,3,22,4,110,4,204,4,54,5,172,5,41,6,169,6,40,7,163,7,19,8,115,8,193,8,2,9, +61,9,119,9,176,9,230,9,9,10,7,10,203,9,81,9,170,8,237,7,50,7,141,6,254,5,121,5,234,4,78,4, +173,3,14,3,123,2,250,1,128,1,3,1,133,0,20,0,196,255,168,255,183,255,221,255,255,255,2,0,229,255,182,255, +138,255,118,255,116,255,114,255,97,255,63,255,17,255,234,254,214,254,210,254,209,254,196,254,166,254,132,254,120,254,149,254, +218,254,56,255,150,255,227,255,35,0,102,0,189,0,49,1,185,1,63,2,181,2,25,3,119,3,224,3,84,4,190,4, +9,5,33,5,0,5,182,4,93,4,5,4,170,3,63,3,178,2,8,2,82,1,171,0,41,0,208,255,140,255,65,255, +222,254,100,254,224,253,107,253,28,253,245,252,230,252,225,252,217,252,204,252,195,252,197,252,213,252,235,252,252,252,2,253, +242,252,202,252,149,252,91,252,36,252,246,251,213,251,193,251,184,251,184,251,192,251,213,251,254,251,60,252,142,252,238,252, +80,253,177,253,20,254,133,254,18,255,191,255,137,0,98,1,54,2,242,2,151,3,45,4,183,4,51,5,159,5,235,5, +12,6,4,6,215,5,150,5,78,5,0,5,168,4,68,4,213,3,109,3,24,3,220,2,188,2,172,2,152,2,114,2, +55,2,245,1,196,1,175,1,181,1,206,1,235,1,3,2,21,2,32,2,37,2,39,2,34,2,18,2,247,1,211,1, +168,1,116,1,51,1,222,0,112,0,242,255,115,255,0,255,161,254,83,254,7,254,176,253,76,253,233,252,152,252,99,252, +78,252,79,252,89,252,100,252,118,252,161,252,243,252,110,253,2,254,155,254,31,255,133,255,208,255,6,0,47,0,68,0, +59,0,14,0,187,255,79,255,224,254,120,254,19,254,168,253,44,253,159,252,12,252,138,251,46,251,3,251,252,250,9,251, +27,251,37,251,44,251,60,251,98,251,162,251,246,251,78,252,156,252,215,252,249,252,4,253,254,252,237,252,207,252,167,252, +116,252,54,252,233,251,141,251,39,251,192,250,99,250,22,250,218,249,175,249,152,249,144,249,149,249,169,249,201,249,234,249, +1,250,6,250,244,249,210,249,171,249,137,249,115,249,104,249,97,249,85,249,60,249,21,249,230,248,181,248,134,248,91,248, +45,248,251,247,197,247,138,247,78,247,21,247,220,246,162,246,108,246,60,246,23,246,3,246,1,246,13,246,29,246,35,246, +30,246,15,246,253,245,240,245,241,245,4,246,36,246,74,246,116,246,161,246,206,246,251,246,39,247,79,247,117,247,150,247, +178,247,199,247,210,247,208,247,194,247,172,247,153,247,151,247,173,247,216,247,9,248,51,248,83,248,109,248,144,248,200,248, +25,249,119,249,210,249,24,250,66,250,91,250,119,250,157,250,205,250,251,250,25,251,31,251,22,251,19,251,31,251,67,251, +125,251,194,251,9,252,85,252,173,252,17,253,123,253,226,253,64,254,151,254,237,254,81,255,199,255,68,0,182,0,11,1, +63,1,90,1,115,1,156,1,217,1,27,2,80,2,112,2,131,2,157,2,208,2,35,3,143,3,2,4,114,4,228,4, +102,5,2,6,179,6,97,7,235,7,62,8,92,8,92,8,88,8,98,8,117,8,108,8,40,8,157,7,211,6,233,5, +8,5,71,4,164,3,20,3,128,2,219,1,44,1,137,0,3,0,159,255,83,255,15,255,201,254,125,254,54,254,4,254, +247,253,15,254,69,254,133,254,190,254,231,254,255,254,13,255,31,255,62,255,100,255,139,255,165,255,168,255,151,255,128,255, +110,255,109,255,126,255,152,255,184,255,218,255,0,0,51,0,126,0,219,0,59,1,144,1,210,1,8,2,69,2,157,2, +24,3,169,3,46,4,132,4,159,4,131,4,74,4,17,4,234,3,209,3,184,3,140,3,65,3,220,2,104,2,235,1, +100,1,202,0,24,0,85,255,148,254,234,253,107,253,19,253,214,252,164,252,109,252,50,252,253,251,218,251,197,251,183,251, +165,251,142,251,126,251,130,251,159,251,207,251,254,251,19,252,4,252,218,251,166,251,132,251,135,251,164,251,197,251,214,251, +206,251,187,251,188,251,230,251,63,252,187,252,63,253,180,253,23,254,121,254,244,254,152,255,96,0,55,1,5,2,179,2, +61,3,175,3,27,4,139,4,247,4,76,5,121,5,118,5,68,5,242,4,148,4,54,4,216,3,121,3,25,3,184,2, +93,2,9,2,186,1,109,1,27,1,196,0,112,0,45,0,254,255,225,255,203,255,175,255,135,255,86,255,39,255,10,255, +7,255,22,255,45,255,63,255,66,255,52,255,25,255,240,254,186,254,117,254,31,254,183,253,71,253,210,252,93,252,232,251, +113,251,246,250,127,250,22,250,200,249,158,249,151,249,171,249,208,249,252,249,45,250,104,250,183,250,29,251,149,251,16,252, +132,252,230,252,44,253,86,253,112,253,125,253,126,253,115,253,90,253,47,253,241,252,161,252,72,252,236,251,145,251,60,251, +238,250,167,250,105,250,61,250,38,250,33,250,42,250,61,250,84,250,110,250,136,250,166,250,203,250,245,250,32,251,71,251, +101,251,118,251,126,251,129,251,124,251,104,251,62,251,250,250,161,250,60,250,219,249,141,249,92,249,72,249,72,249,82,249, +95,249,110,249,138,249,183,249,242,249,49,250,104,250,138,250,147,250,138,250,123,250,113,250,104,250,92,250,71,250,38,250, +253,249,209,249,166,249,124,249,74,249,7,249,179,248,86,248,254,247,183,247,137,247,110,247,88,247,62,247,28,247,245,246, +206,246,170,246,131,246,90,246,51,246,23,246,21,246,53,246,113,246,182,246,239,246,13,247,25,247,38,247,75,247,145,247, +240,247,78,248,147,248,182,248,185,248,177,248,180,248,201,248,236,248,12,249,25,249,14,249,249,248,234,248,232,248,246,248, +11,249,29,249,36,249,38,249,46,249,67,249,101,249,144,249,184,249,215,249,240,249,13,250,55,250,113,250,186,250,4,251, +67,251,118,251,158,251,194,251,235,251,23,252,63,252,92,252,112,252,128,252,152,252,197,252,13,253,109,253,222,253,89,254, +219,254,106,255,10,0,187,0,119,1,52,2,230,2,137,3,34,4,179,4,62,5,188,5,29,6,83,6,91,6,67,6, +30,6,1,6,247,5,253,5,5,6,254,5,220,5,164,5,100,5,48,5,21,5,21,5,36,5,48,5,41,5,4,5, +196,4,121,4,48,4,239,3,185,3,140,3,97,3,50,3,0,3,204,2,150,2,91,2,25,2,203,1,115,1,24,1, +195,0,123,0,64,0,10,0,205,255,130,255,39,255,194,254,96,254,15,254,215,253,183,253,170,253,170,253,183,253,214,253, +11,254,95,254,206,254,76,255,207,255,75,0,181,0,17,1,108,1,211,1,69,2,193,2,59,3,165,3,243,3,42,4, +83,4,123,4,165,4,208,4,244,4,9,5,5,5,230,4,174,4,98,4,8,4,166,3,73,3,252,2,199,2,168,2, +147,2,123,2,84,2,31,2,232,1,186,1,151,1,109,1,35,1,169,0,253,255,49,255,96,254,161,253,252,252,101,252, +210,251,55,251,156,250,16,250,162,249,86,249,34,249,247,248,209,248,182,248,173,248,195,248,247,248,59,249,129,249,196,249, +7,250,81,250,172,250,20,251,124,251,221,251,52,252,135,252,223,252,60,253,141,253,188,253,188,253,146,253,81,253,21,253, +245,252,242,252,253,252,0,253,241,252,207,252,164,252,125,252,100,252,90,252,90,252,90,252,86,252,80,252,72,252,58,252, +39,252,18,252,251,251,231,251,221,251,219,251,222,251,225,251,227,251,226,251,220,251,204,251,177,251,139,251,94,251,53,251, +21,251,252,250,233,250,216,250,195,250,173,250,166,250,180,250,213,250,0,251,36,251,53,251,57,251,56,251,71,251,118,251, +193,251,23,252,105,252,172,252,221,252,2,253,33,253,54,253,61,253,54,253,35,253,7,253,235,252,211,252,188,252,162,252, +133,252,106,252,89,252,92,252,117,252,155,252,190,252,215,252,226,252,224,252,220,252,219,252,222,252,225,252,221,252,203,252, +171,252,120,252,53,252,238,251,170,251,108,251,57,251,19,251,238,250,194,250,141,250,80,250,18,250,223,249,186,249,162,249, +144,249,121,249,93,249,73,249,70,249,93,249,148,249,221,249,39,250,97,250,136,250,157,250,173,250,193,250,221,250,254,250, +25,251,33,251,24,251,1,251,229,250,205,250,187,250,178,250,169,250,153,250,130,250,107,250,96,250,105,250,138,250,181,250, +218,250,241,250,244,250,232,250,222,250,226,250,246,250,22,251,55,251,74,251,76,251,63,251,37,251,6,251,233,250,202,250, +173,250,148,250,126,250,109,250,103,250,106,250,116,250,131,250,150,250,173,250,203,250,242,250,35,251,93,251,150,251,199,251, +233,251,251,251,255,251,251,251,246,251,245,251,250,251,255,251,4,252,12,252,28,252,62,252,121,252,196,252,22,253,102,253, +170,253,227,253,23,254,75,254,128,254,178,254,214,254,233,254,240,254,238,254,240,254,0,255,29,255,62,255,101,255,150,255, +208,255,27,0,122,0,228,0,80,1,183,1,17,2,91,2,154,2,204,2,243,2,10,3,17,3,10,3,250,2,221,2, +180,2,124,2,46,2,202,1,89,1,226,0,111,0,3,0,159,255,60,255,212,254,99,254,235,253,117,253,13,253,190,252, +138,252,110,252,95,252,86,252,73,252,55,252,40,252,32,252,28,252,24,252,11,252,239,251,196,251,141,251,84,251,35,251, +250,250,215,250,183,250,149,250,111,250,71,250,29,250,236,249,179,249,114,249,52,249,7,249,248,248,11,249,58,249,118,249, +174,249,224,249,18,250,83,250,176,250,39,251,172,251,48,252,170,252,21,253,118,253,210,253,43,254,120,254,177,254,205,254, +204,254,184,254,156,254,128,254,101,254,72,254,38,254,254,253,215,253,183,253,165,253,154,253,139,253,106,253,45,253,219,252, +131,252,53,252,251,251,216,251,192,251,168,251,133,251,84,251,27,251,228,250,181,250,140,250,95,250,30,250,193,249,78,249, +207,248,77,248,209,247,90,247,228,246,114,246,10,246,179,245,119,245,88,245,79,245,83,245,91,245,100,245,117,245,150,245, +201,245,10,246,83,246,152,246,211,246,6,247,56,247,107,247,157,247,201,247,230,247,240,247,233,247,214,247,188,247,165,247, +150,247,147,247,157,247,177,247,198,247,212,247,218,247,214,247,201,247,192,247,195,247,204,247,213,247,211,247,193,247,158,247, +119,247,89,247,79,247,100,247,153,247,232,247,78,248,195,248,61,249,175,249,19,250,96,250,148,250,180,250,202,250,219,250, +232,250,241,250,242,250,229,250,204,250,168,250,122,250,65,250,250,249,167,249,83,249,6,249,197,248,145,248,104,248,73,248, +51,248,40,248,52,248,93,248,153,248,219,248,23,249,70,249,103,249,133,249,173,249,229,249,40,250,114,250,188,250,0,251, +63,251,128,251,196,251,6,252,64,252,111,252,151,252,189,252,227,252,10,253,46,253,69,253,68,253,51,253,34,253,25,253, +29,253,46,253,65,253,73,253,65,253,45,253,18,253,251,252,237,252,225,252,209,252,186,252,156,252,124,252,102,252,96,252, +113,252,152,252,205,252,11,253,78,253,149,253,219,253,31,254,93,254,146,254,189,254,227,254,7,255,49,255,95,255,138,255, +169,255,175,255,151,255,106,255,56,255,16,255,250,254,245,254,251,254,1,255,4,255,13,255,40,255,92,255,166,255,251,255, +75,0,136,0,169,0,182,0,186,0,188,0,191,0,189,0,173,0,139,0,92,0,40,0,248,255,211,255,187,255,177,255, +180,255,195,255,221,255,3,0,48,0,92,0,133,0,172,0,209,0,248,0,36,1,87,1,138,1,184,1,222,1,249,1, +8,2,11,2,6,2,250,1,236,1,229,1,236,1,1,2,34,2,75,2,116,2,149,2,169,2,177,2,177,2,177,2, +183,2,196,2,213,2,227,2,228,2,216,2,195,2,169,2,141,2,110,2,66,2,255,1,162,1,46,1,174,0,53,0, +207,255,121,255,33,255,182,254,46,254,142,253,228,252,69,252,193,251,92,251,8,251,186,250,111,250,38,250,235,249,200,249, +188,249,188,249,182,249,154,249,104,249,46,249,246,248,209,248,198,248,205,248,216,248,225,248,224,248,217,248,214,248,230,248, +12,249,72,249,148,249,229,249,48,250,113,250,170,250,225,250,20,251,66,251,101,251,127,251,147,251,165,251,190,251,231,251, +28,252,78,252,113,252,127,252,122,252,104,252,83,252,61,252,39,252,15,252,240,251,203,251,165,251,127,251,82,251,25,251, +209,250,122,250,27,250,195,249,121,249,58,249,1,249,204,248,151,248,102,248,67,248,55,248,57,248,56,248,42,248,9,248, +218,247,167,247,126,247,91,247,53,247,254,246,171,246,67,246,214,245,119,245,47,245,249,244,200,244,141,244,64,244,224,243, +119,243,13,243,168,242,70,242,230,241,135,241,46,241,232,240,189,240,178,240,210,240,27,241,134,241,10,242,162,242,70,243, +236,243,143,244,46,245,202,245,96,246,234,246,102,247,212,247,50,248,128,248,194,248,250,248,40,249,79,249,105,249,119,249, +119,249,108,249,86,249,59,249,32,249,10,249,2,249,12,249,38,249,76,249,118,249,156,249,187,249,214,249,243,249,28,250, +84,250,151,250,216,250,7,251,24,251,10,251,224,250,169,250,117,250,75,250,39,250,251,249,191,249,110,249,10,249,159,248, +63,248,246,247,203,247,187,247,190,247,205,247,227,247,0,248,35,248,79,248,132,248,191,248,254,248,62,249,127,249,189,249, +242,249,28,250,64,250,101,250,139,250,179,250,223,250,8,251,35,251,51,251,64,251,85,251,124,251,189,251,21,252,127,252, +246,252,115,253,241,253,110,254,229,254,80,255,175,255,8,0,95,0,184,0,23,1,118,1,205,1,20,2,78,2,128,2, +173,2,214,2,247,2,9,3,6,3,239,2,203,2,163,2,126,2,95,2,68,2,40,2,14,2,242,1,211,1,171,1, +120,1,57,1,241,0,165,0,102,0,61,0,40,0,30,0,24,0,13,0,252,255,238,255,235,255,250,255,23,0,59,0, +97,0,133,0,169,0,203,0,233,0,3,1,20,1,29,1,39,1,62,1,104,1,165,1,235,1,41,2,83,2,101,2, +99,2,88,2,83,2,93,2,120,2,159,2,205,2,253,2,48,3,98,3,148,3,203,3,5,4,63,4,120,4,175,4, +221,4,0,5,23,5,34,5,32,5,24,5,15,5,7,5,254,4,241,4,220,4,195,4,176,4,171,4,187,4,221,4, +6,5,38,5,48,5,35,5,13,5,254,4,5,5,40,5,99,5,166,5,231,5,31,6,78,6,118,6,156,6,192,6, +223,6,0,7,41,7,96,7,167,7,247,7,67,8,127,8,164,8,180,8,186,8,198,8,221,8,246,8,0,9,234,8, +175,8,82,8,220,7,86,7,197,6,37,6,118,5,183,4,235,3,26,3,75,2,129,1,186,0,249,255,69,255,167,254, +41,254,205,253,141,253,99,253,68,253,39,253,14,253,255,252,249,252,246,252,241,252,226,252,196,252,160,252,124,252,94,252, +70,252,49,252,25,252,248,251,209,251,172,251,145,251,137,251,150,251,183,251,231,251,39,252,118,252,215,252,71,253,194,253, +63,254,183,254,42,255,160,255,32,0,170,0,61,1,202,1,64,2,148,2,197,2,217,2,219,2,209,2,193,2,165,2, +115,2,34,2,178,1,41,1,147,0,255,255,118,255,1,255,162,254,88,254,29,254,234,253,187,253,138,253,82,253,26,253, +227,252,172,252,121,252,73,252,25,252,234,251,193,251,155,251,115,251,65,251,255,250,165,250,54,250,192,249,85,249,255,248, +193,248,147,248,108,248,68,248,21,248,224,247,166,247,102,247,34,247,217,246,140,246,68,246,17,246,250,245,2,246,34,246, +84,246,144,246,215,246,43,247,136,247,231,247,68,248,146,248,203,248,247,248,32,249,76,249,126,249,174,249,213,249,240,249, +0,250,18,250,52,250,108,250,180,250,253,250,51,251,69,251,57,251,34,251,18,251,24,251,59,251,117,251,186,251,254,251, +60,252,115,252,164,252,208,252,248,252,24,253,48,253,66,253,81,253,94,253,103,253,103,253,88,253,56,253,17,253,232,252, +197,252,171,252,147,252,112,252,61,252,247,251,168,251,95,251,42,251,5,251,233,250,206,250,170,250,123,250,77,250,47,250, +42,250,72,250,136,250,223,250,67,251,173,251,18,252,109,252,198,252,35,253,139,253,5,254,144,254,38,255,185,255,58,0, +166,0,0,1,82,1,164,1,250,1,78,2,149,2,200,2,227,2,236,2,240,2,251,2,22,3,70,3,135,3,212,3, +35,4,103,4,152,4,178,4,187,4,185,4,181,4,184,4,194,4,208,4,223,4,235,4,241,4,250,4,15,5,48,5, +88,5,129,5,167,5,198,5,224,5,247,5,9,6,20,6,19,6,8,6,249,5,243,5,255,5,30,6,72,6,112,6, +139,6,149,6,146,6,137,6,127,6,108,6,74,6,20,6,203,5,121,5,47,5,249,4,219,4,206,4,198,4,187,4, +171,4,155,4,146,4,155,4,181,4,214,4,243,4,7,5,17,5,26,5,42,5,64,5,87,5,108,5,117,5,109,5, +93,5,82,5,82,5,98,5,127,5,159,5,188,5,211,5,231,5,1,6,45,6,109,6,187,6,17,7,99,7,169,7, +221,7,1,8,24,8,41,8,63,8,95,8,131,8,169,8,201,8,222,8,228,8,224,8,218,8,216,8,218,8,220,8, +206,8,167,8,99,8,4,8,145,7,21,7,151,6,16,6,123,5,212,4,24,4,80,3,135,2,195,1,3,1,68,0, +132,255,191,254,251,253,66,253,156,252,14,252,149,251,42,251,198,250,100,250,5,250,172,249,98,249,42,249,2,249,236,248, +227,248,226,248,233,248,245,248,2,249,15,249,28,249,37,249,41,249,45,249,54,249,77,249,111,249,155,249,208,249,12,250, +76,250,137,250,196,250,251,250,46,251,94,251,141,251,188,251,233,251,17,252,44,252,58,252,55,252,30,252,243,251,185,251, +116,251,38,251,211,250,127,250,42,250,217,249,138,249,58,249,227,248,129,248,22,248,167,247,59,247,211,246,110,246,5,246, +149,245,29,245,160,244,37,244,184,243,98,243,44,243,22,243,30,243,63,243,118,243,182,243,237,243,17,244,27,244,10,244, +234,243,203,243,179,243,163,243,154,243,150,243,151,243,163,243,195,243,247,243,51,244,105,244,135,244,138,244,127,244,120,244, +135,244,180,244,253,244,90,245,197,245,63,246,207,246,123,247,65,248,19,249,224,249,158,250,68,251,215,251,93,252,221,252, +85,253,192,253,24,254,94,254,151,254,201,254,244,254,24,255,47,255,48,255,27,255,247,254,203,254,153,254,96,254,30,254, +215,253,146,253,88,253,55,253,54,253,82,253,126,253,176,253,223,253,10,254,51,254,92,254,133,254,171,254,197,254,212,254, +218,254,221,254,230,254,251,254,25,255,58,255,91,255,123,255,152,255,179,255,206,255,229,255,244,255,252,255,3,0,19,0, +57,0,125,0,218,0,70,1,179,1,22,2,109,2,193,2,30,3,135,3,248,3,101,4,195,4,9,5,56,5,90,5, +118,5,142,5,158,5,163,5,152,5,124,5,86,5,45,5,4,5,217,4,170,4,115,4,57,4,4,4,219,3,197,3, +192,3,196,3,199,3,202,3,208,3,224,3,3,4,62,4,139,4,222,4,44,5,107,5,150,5,173,5,183,5,189,5, +192,5,193,5,194,5,192,5,186,5,181,5,186,5,207,5,247,5,48,6,112,6,173,6,221,6,1,7,27,7,49,7, +71,7,98,7,128,7,157,7,188,7,225,7,17,8,71,8,123,8,157,8,162,8,136,8,85,8,19,8,210,7,156,7, +112,7,70,7,28,7,239,6,191,6,148,6,115,6,89,6,66,6,41,6,15,6,244,5,226,5,227,5,252,5,42,6, +99,6,158,6,213,6,2,7,41,7,79,7,118,7,160,7,205,7,254,7,47,8,98,8,150,8,201,8,248,8,32,9, +62,9,80,9,88,9,88,9,76,9,56,9,31,9,3,9,233,8,216,8,209,8,209,8,209,8,203,8,191,8,177,8, +164,8,157,8,154,8,153,8,148,8,139,8,130,8,135,8,160,8,203,8,252,8,37,9,57,9,52,9,29,9,2,9, +238,8,228,8,219,8,202,8,170,8,123,8,64,8,250,7,166,7,70,7,220,6,107,6,251,5,145,5,47,5,201,4, +83,4,198,3,35,3,119,2,209,1,58,1,178,0,53,0,182,255,50,255,174,254,53,254,204,253,113,253,29,253,197,252, +101,252,1,252,166,251,96,251,48,251,19,251,5,251,252,250,246,250,244,250,253,250,15,251,36,251,62,251,96,251,144,251, +214,251,59,252,187,252,76,253,224,253,108,254,240,254,117,255,5,0,170,0,102,1,46,2,237,2,140,3,250,3,45,4, +39,4,246,3,176,3,103,3,35,3,224,2,146,2,40,2,150,1,222,0,14,0,57,255,115,254,199,253,50,253,172,252, +44,252,174,251,48,251,183,250,73,250,235,249,153,249,76,249,253,248,172,248,90,248,10,248,193,247,130,247,75,247,18,247, +208,246,121,246,8,246,122,245,213,244,38,244,128,243,240,242,126,242,44,242,247,241,220,241,219,241,247,241,52,242,154,242, +46,243,230,243,182,244,144,245,107,246,62,247,10,248,211,248,160,249,110,250,54,251,240,251,147,252,23,253,125,253,200,253, +0,254,45,254,81,254,110,254,133,254,152,254,172,254,198,254,240,254,41,255,111,255,186,255,6,0,77,0,142,0,204,0, +8,1,65,1,111,1,138,1,140,1,118,1,83,1,53,1,40,1,50,1,76,1,110,1,141,1,163,1,177,1,192,1, +215,1,243,1,12,2,26,2,26,2,15,2,4,2,3,2,19,2,49,2,85,2,122,2,154,2,184,2,218,2,8,3, +68,3,142,3,225,3,55,4,138,4,215,4,27,5,87,5,144,5,207,5,30,6,125,6,230,6,76,7,162,7,224,7, +5,8,29,8,50,8,78,8,115,8,155,8,190,8,219,8,248,8,27,9,70,9,122,9,179,9,234,9,29,10,79,10, +132,10,196,10,16,11,97,11,174,11,244,11,50,12,103,12,153,12,206,12,8,13,67,13,122,13,172,13,212,13,238,13, +252,13,3,14,12,14,30,14,62,14,111,14,177,14,1,15,93,15,191,15,32,16,120,16,190,16,237,16,10,17,27,17, +39,17,50,17,57,17,49,17,18,17,215,16,135,16,44,16,213,15,137,15,74,15,20,15,229,14,190,14,158,14,132,14, +108,14,81,14,45,14,4,14,226,13,212,13,219,13,239,13,255,13,249,13,217,13,163,13,101,13,47,13,5,13,227,12, +190,12,143,12,88,12,33,12,247,11,228,11,231,11,249,11,14,12,32,12,45,12,54,12,63,12,80,12,108,12,147,12, +198,12,255,12,55,13,106,13,156,13,214,13,31,14,124,14,235,14,97,15,209,15,52,16,135,16,210,16,23,17,80,17, +109,17,102,17,58,17,241,16,150,16,55,16,210,15,88,15,185,14,239,13,4,13,13,12,29,11,60,10,93,9,108,8, +95,7,54,6,2,5,219,3,206,2,219,1,243,0,11,0,36,255,69,254,127,253,221,252,95,252,247,251,156,251,75,251, +8,251,219,250,197,250,189,250,176,250,149,250,107,250,61,250,30,250,27,250,51,250,85,250,113,250,128,250,138,250,164,250, +226,250,76,251,214,251,110,252,2,253,138,253,16,254,163,254,82,255,24,0,232,0,175,1,92,2,232,2,91,3,194,3, +30,4,102,4,141,4,131,4,67,4,215,3,79,3,189,2,41,2,141,1,224,0,22,0,48,255,51,254,39,253,19,252, +0,251,245,249,245,248,7,248,48,247,113,246,200,245,52,245,179,244,72,244,252,243,222,243,236,243,31,244,106,244,194,244, +26,245,110,245,193,245,20,246,98,246,162,246,214,246,2,247,49,247,112,247,200,247,60,248,197,248,95,249,4,250,182,250, +119,251,71,252,32,253,250,253,199,254,125,255,19,0,134,0,212,0,255,0,18,1,27,1,35,1,43,1,47,1,34,1, +247,0,173,0,81,0,243,255,159,255,84,255,6,255,162,254,33,254,138,253,244,252,116,252,18,252,196,251,118,251,21,251, +162,250,46,250,213,249,173,249,185,249,236,249,44,250,102,250,150,250,196,250,255,250,81,251,187,251,55,252,187,252,68,253, +211,253,109,254,23,255,201,255,124,0,41,1,205,1,108,2,16,3,200,3,152,4,122,5,100,6,75,7,33,8,221,8, +129,9,18,10,150,10,14,11,117,11,191,11,222,11,203,11,132,11,14,11,120,10,216,9,69,9,207,8,124,8,74,8, +48,8,31,8,10,8,238,7,209,7,191,7,190,7,205,7,223,7,229,7,208,7,157,7,86,7,13,7,208,6,162,6, +127,6,94,6,60,6,33,6,29,6,59,6,118,6,192,6,3,7,46,7,62,7,70,7,100,7,175,7,53,8,239,8, +201,9,170,10,128,11,68,12,252,12,176,13,96,14,9,15,166,15,45,16,149,16,225,16,25,17,68,17,105,17,132,17, +142,17,126,17,76,17,251,16,148,16,38,16,188,15,90,15,251,14,152,14,43,14,182,13,67,13,225,12,151,12,101,12, +64,12,28,12,238,11,180,11,111,11,43,11,242,10,200,10,171,10,152,10,139,10,129,10,123,10,124,10,140,10,177,10, +236,10,59,11,149,11,238,11,58,12,118,12,166,12,210,12,5,13,69,13,144,13,215,13,15,14,53,14,78,14,107,14, +157,14,237,14,90,15,211,15,67,16,156,16,218,16,4,17,38,17,73,17,106,17,125,17,115,17,66,17,239,16,141,16, +46,16,226,15,168,15,117,15,51,15,212,14,81,14,178,13,7,13,97,12,200,11,56,11,173,10,31,10,141,9,251,8, +111,8,236,7,104,7,215,6,49,6,115,5,164,4,211,3,13,3,90,2,181,1,20,1,106,0,179,255,245,254,62,254, +153,253,16,253,166,252,88,252,32,252,252,251,234,251,232,251,238,251,245,251,246,251,238,251,226,251,215,251,209,251,206,251, +198,251,177,251,137,251,83,251,23,251,224,250,181,250,159,250,157,250,177,250,221,250,41,251,146,251,13,252,145,252,18,253, +138,253,255,253,123,254,1,255,138,255,4,0,86,0,107,0,59,0,207,255,61,255,156,254,250,253,90,253,188,252,23,252, +103,251,168,250,217,249,2,249,42,248,85,247,138,246,206,245,32,245,124,244,227,243,86,243,216,242,109,242,24,242,218,241, +170,241,130,241,93,241,60,241,37,241,29,241,40,241,61,241,80,241,89,241,81,241,58,241,32,241,19,241,33,241,82,241, +172,241,47,242,214,242,150,243,100,244,54,245,5,246,203,246,128,247,27,248,148,248,229,248,17,249,31,249,30,249,30,249, +37,249,53,249,74,249,95,249,119,249,156,249,220,249,58,250,177,250,48,251,166,251,4,252,70,252,113,252,135,252,137,252, +112,252,53,252,212,251,89,251,218,250,110,250,36,250,7,250,17,250,57,250,116,250,194,250,41,251,178,251,102,252,67,253, +62,254,66,255,60,0,29,1,223,1,135,2,31,3,173,3,52,4,176,4,26,5,112,5,188,5,12,6,110,6,237,6, +140,7,66,8,254,8,180,9,96,10,248,10,117,11,208,11,2,12,3,12,207,11,107,11,225,10,58,10,130,9,203,8, +38,8,164,7,82,7,53,7,68,7,115,7,179,7,253,7,81,8,178,8,29,9,137,9,230,9,38,10,65,10,65,10, +58,10,63,10,90,10,139,10,200,10,5,11,60,11,115,11,181,11,3,12,89,12,172,12,237,12,16,13,23,13,14,13, +5,13,12,13,49,13,116,13,204,13,48,14,154,14,6,15,116,15,235,15,109,16,246,16,122,17,234,17,54,18,87,18, +81,18,46,18,248,17,184,17,114,17,33,17,199,16,104,16,10,16,184,15,122,15,81,15,56,15,39,15,30,15,27,15, +31,15,40,15,54,15,69,15,81,15,86,15,83,15,72,15,58,15,48,15,50,15,69,15,108,15,164,15,229,15,36,16, +92,16,144,16,203,16,24,17,123,17,236,17,89,18,170,18,209,18,202,18,160,18,94,18,16,18,186,17,91,17,244,16, +139,16,49,16,249,15,238,15,12,16,75,16,152,16,229,16,42,17,107,17,176,17,254,17,84,18,173,18,255,18,61,19, +97,19,108,19,91,19,49,19,237,18,148,18,42,18,177,17,46,17,163,16,14,16,102,15,160,14,179,13,161,12,118,11, +68,10,32,9,23,8,34,7,46,6,38,5,250,3,174,2,85,1,13,0,238,254,255,253,57,253,141,252,236,251,82,251, +196,250,75,250,233,249,153,249,81,249,12,249,201,248,143,248,105,248,91,248,99,248,121,248,148,248,174,248,201,248,232,248, +13,249,55,249,99,249,143,249,193,249,254,249,75,250,169,250,17,251,120,251,212,251,33,252,99,252,162,252,231,252,51,253, +134,253,217,253,31,254,80,254,101,254,90,254,52,254,246,253,167,253,71,253,214,252,74,252,155,251,193,250,185,249,136,248, +55,247,211,245,101,244,245,242,136,241,33,240,199,238,130,237,90,236,87,235,129,234,228,233,136,233,113,233,156,233,251,233, +127,234,22,235,186,235,101,236,25,237,207,237,127,238,22,239,131,239,190,239,208,239,209,239,217,239,252,239,61,240,147,240, +243,240,86,241,190,241,58,242,216,242,158,243,135,244,135,245,139,246,133,247,109,248,62,249,243,249,136,250,247,250,62,251, +92,251,86,251,50,251,246,250,166,250,70,250,225,249,134,249,68,249,40,249,51,249,94,249,151,249,208,249,253,249,29,250, +55,250,80,250,101,250,112,250,100,250,59,250,246,249,165,249,90,249,37,249,16,249,28,249,73,249,150,249,6,250,160,250, +104,251,93,252,119,253,166,254,217,255,5,1,39,2,61,3,69,4,64,5,45,6,14,7,232,7,192,8,153,9,113,10, +65,11,6,12,189,12,106,13,20,14,193,14,110,15,16,16,148,16,237,16,18,17,8,17,216,16,143,16,50,16,195,15, +64,15,169,14,8,14,106,13,223,12,116,12,46,12,11,12,2,12,9,12,26,12,49,12,80,12,122,12,174,12,228,12, +18,13,50,13,64,13,68,13,72,13,88,13,125,13,180,13,245,13,53,14,108,14,156,14,202,14,253,14,53,15,108,15, +154,15,184,15,205,15,232,15,27,16,115,16,243,16,145,17,65,18,249,18,179,19,114,20,57,21,2,22,190,22,89,23, +196,23,252,23,10,24,1,24,241,23,226,23,205,23,166,23,96,23,247,22,115,22,227,21,88,21,219,20,111,20,13,20, +172,19,71,19,222,18,119,18,24,18,196,17,123,17,60,17,5,17,212,16,171,16,136,16,108,16,87,16,75,16,72,16, +84,16,111,16,153,16,206,16,9,17,71,17,138,17,219,17,62,18,178,18,41,19,147,19,221,19,254,19,253,19,232,19, +209,19,195,19,191,19,197,19,209,19,231,19,15,20,80,20,175,20,36,21,159,21,19,22,116,22,191,22,246,22,24,23, +29,23,250,22,163,22,17,22,67,21,64,20,17,19,195,17,98,16,245,14,129,13,6,12,127,10,232,8,65,7,142,5, +217,3,51,2,169,0,65,255,251,253,208,252,191,251,200,250,245,249,77,249,210,248,127,248,75,248,43,248,29,248,31,248, +56,248,103,248,168,248,239,248,46,249,89,249,109,249,110,249,99,249,87,249,83,249,92,249,113,249,141,249,169,249,189,249, +201,249,209,249,224,249,255,249,52,250,125,250,208,250,35,251,114,251,193,251,20,252,109,252,197,252,15,253,58,253,60,253, +19,253,202,252,109,252,8,252,157,251,38,251,153,250,241,249,42,249,76,248,94,247,108,246,125,245,150,244,186,243,226,242, +9,242,41,241,66,240,93,239,132,238,197,237,42,237,181,236,102,236,64,236,68,236,122,236,231,236,140,237,96,238,85,239, +92,240,107,241,127,242,153,243,182,244,205,245,207,246,174,247,96,248,229,248,67,249,128,249,158,249,156,249,114,249,28,249, +151,248,233,247,28,247,66,246,106,245,161,244,242,243,95,243,236,242,151,242,98,242,79,242,96,242,145,242,215,242,31,243, +79,243,84,243,35,243,191,242,51,242,140,241,215,240,30,240,107,239,204,238,79,238,0,238,226,237,240,237,31,238,102,238, +193,238,51,239,192,239,109,240,52,241,15,242,246,242,232,243,231,244,244,245,16,247,55,248,101,249,160,250,240,251,94,253, +234,254,134,0,30,2,159,3,255,4,67,6,116,7,152,8,164,9,131,10,30,11,107,11,114,11,79,11,28,11,234,10, +183,10,119,10,29,10,169,9,40,9,178,8,90,8,42,8,34,8,59,8,113,8,190,8,35,9,155,9,28,10,154,10, +7,11,88,11,135,11,147,11,127,11,79,11,10,11,179,10,79,10,226,9,113,9,255,8,148,8,58,8,251,7,219,7, +215,7,228,7,249,7,23,8,72,8,159,8,46,9,249,9,247,10,19,12,53,13,80,14,96,15,108,16,120,17,131,18, +127,19,91,20,10,21,136,21,223,21,30,22,85,22,137,22,186,22,221,22,231,22,206,22,143,22,50,22,199,21,94,21, +4,21,188,20,123,20,52,20,220,19,116,19,9,19,176,18,124,18,115,18,140,18,180,18,216,18,240,18,253,18,9,19, +30,19,58,19,88,19,110,19,119,19,119,19,116,19,119,19,134,19,161,19,196,19,235,19,17,20,53,20,82,20,102,20, +108,20,97,20,69,20,30,20,242,19,201,19,168,19,145,19,139,19,157,19,206,19,38,20,164,20,65,21,239,21,159,22, +66,23,203,23,53,24,125,24,162,24,159,24,113,24,22,24,145,23,230,22,32,22,70,21,87,20,82,19,51,18,248,16, +168,15,80,14,253,12,184,11,129,10,78,9,20,8,206,6,127,5,53,4,255,2,230,1,235,0,4,0,42,255,88,254, +145,253,216,252,42,252,128,251,212,250,31,250,105,249,194,248,62,248,238,247,213,247,232,247,21,248,78,248,135,248,195,248, +7,249,87,249,180,249,27,250,130,250,228,250,57,251,123,251,169,251,199,251,221,251,246,251,30,252,89,252,170,252,8,253, +105,253,193,253,4,254,41,254,44,254,10,254,198,253,105,253,250,252,129,252,0,252,113,251,200,250,0,250,25,249,27,248, +19,247,11,246,3,245,247,243,225,242,196,241,168,240,159,239,181,238,241,237,78,237,200,236,92,236,13,236,232,235,247,235, +63,236,185,236,89,237,16,238,210,238,149,239,80,240,254,240,152,241,28,242,142,242,244,242,81,243,164,243,233,243,27,244, +59,244,83,244,111,244,156,244,222,244,51,245,146,245,244,245,84,246,177,246,13,247,101,247,179,247,238,247,17,248,26,248, +10,248,227,247,165,247,79,247,231,246,117,246,6,246,165,245,85,245,22,245,230,244,194,244,174,244,175,244,198,244,242,244, +44,245,107,245,172,245,242,245,64,246,151,246,244,246,79,247,162,247,239,247,62,248,149,248,250,248,104,249,216,249,72,250, +192,250,77,251,250,251,200,252,171,253,148,254,121,255,93,0,76,1,85,2,124,3,182,4,237,5,10,7,0,8,204,8, +117,9,254,9,101,10,168,10,198,10,196,10,174,10,139,10,93,10,30,10,199,9,88,9,220,8,99,8,254,7,182,7, +141,7,129,7,143,7,182,7,249,7,85,8,194,8,54,9,173,9,36,10,162,10,40,11,180,11,55,12,165,12,248,12, +56,13,117,13,192,13,30,14,134,14,237,14,70,15,145,15,212,15,23,16,91,16,155,16,205,16,239,16,8,17,37,17, +83,17,151,17,235,17,67,18,154,18,241,18,78,19,184,19,44,20,160,20,11,21,101,21,177,21,249,21,67,22,142,22, +212,22,10,23,40,23,45,23,32,23,6,23,231,22,196,22,160,22,121,22,80,22,35,22,237,21,167,21,80,21,235,20, +134,20,48,20,244,19,212,19,199,19,195,19,192,19,189,19,195,19,217,19,6,20,72,20,153,20,237,20,57,21,117,21, +156,21,176,21,184,21,186,21,192,21,202,21,210,21,206,21,175,21,114,21,30,21,197,20,125,20,82,20,71,20,82,20, +107,20,144,20,202,20,37,21,167,21,72,22,240,22,132,23,235,23,29,24,33,24,6,24,219,23,164,23,89,23,238,22, +91,22,159,21,198,20,225,19,0,19,46,18,107,17,175,16,232,15,3,15,240,13,168,12,47,11,144,9,218,7,23,6, +80,4,136,2,197,0,16,255,123,253,22,252,239,250,7,250,82,249,191,248,63,248,203,247,106,247,36,247,1,247,253,246, +12,247,28,247,31,247,19,247,1,247,245,246,250,246,17,247,50,247,86,247,120,247,155,247,198,247,254,247,65,248,136,248, +204,248,8,249,64,249,123,249,191,249,11,250,88,250,155,250,204,250,230,250,235,250,222,250,189,250,134,250,53,250,202,249, +75,249,197,248,61,248,176,247,18,247,82,246,100,245,74,244,13,243,189,241,101,240,7,239,161,237,43,236,165,234,22,233, +145,231,44,230,252,228,15,228,109,227,23,227,9,227,64,227,183,227,101,228,65,229,60,230,73,231,91,232,103,233,103,234, +91,235,72,236,54,237,40,238,29,239,17,240,0,241,237,241,219,242,206,243,197,244,179,245,137,246,57,247,191,247,35,248, +114,248,185,248,249,248,41,249,64,249,58,249,35,249,14,249,13,249,38,249,78,249,111,249,119,249,96,249,53,249,7,249, +225,248,195,248,160,248,103,248,18,248,165,247,46,247,187,246,80,246,230,245,118,245,252,244,126,244,13,244,180,243,121,243, +86,243,65,243,48,243,35,243,38,243,70,243,145,243,12,244,176,244,114,245,71,246,39,247,17,248,7,249,9,250,24,251, +46,252,69,253,87,254,95,255,86,0,59,1,11,2,199,2,114,3,13,4,154,4,25,5,138,5,234,5,52,6,102,6, +125,6,124,6,111,6,100,6,106,6,139,6,201,6,31,7,131,7,231,7,70,8,157,8,239,8,66,9,151,9,235,9, +55,10,118,10,165,10,200,10,227,10,251,10,15,11,31,11,38,11,37,11,29,11,17,11,2,11,240,10,212,10,173,10, +124,10,74,10,37,10,22,10,31,10,58,10,93,10,128,10,165,10,214,10,28,11,125,11,242,11,112,12,234,12,96,13, +219,13,107,14,26,15,228,15,181,16,118,17,18,18,131,18,208,18,8,19,55,19,96,19,130,19,152,19,160,19,158,19, +151,19,145,19,142,19,140,19,136,19,128,19,115,19,100,19,87,19,77,19,71,19,70,19,72,19,73,19,67,19,44,19, +254,18,186,18,105,18,22,18,203,17,138,17,81,17,26,17,233,16,195,16,177,16,184,16,216,16,7,17,61,17,117,17, +175,17,239,17,54,18,132,18,212,18,34,19,111,19,192,19,27,20,130,20,243,20,104,21,223,21,89,22,219,22,103,23, +249,23,135,24,9,25,129,25,248,25,125,26,19,27,173,27,43,28,108,28,88,28,239,27,68,27,112,26,133,25,131,24, +92,23,0,22,106,20,165,18,199,16,230,14,18,13,79,11,152,9,232,7,61,6,157,4,16,3,159,1,82,0,42,255, +36,254,58,253,100,252,153,251,213,250,26,250,116,249,238,248,146,248,97,248,78,248,76,248,77,248,73,248,66,248,57,248, +50,248,44,248,35,248,26,248,19,248,20,248,34,248,62,248,103,248,152,248,207,248,17,249,98,249,202,249,78,250,238,250, +166,251,115,252,77,253,46,254,11,255,216,255,134,0,8,1,84,1,100,1,52,1,193,0,6,0,4,255,190,253,63,252, +150,250,210,248,1,247,42,245,84,243,131,241,187,239,0,238,89,236,201,234,82,233,246,231,179,230,139,229,128,228,153,227, +221,226,82,226,249,225,203,225,190,225,196,225,216,225,249,225,46,226,125,226,230,226,95,227,212,227,50,228,109,228,136,228, +146,228,157,228,180,228,215,228,252,228,22,229,33,229,36,229,47,229,82,229,146,229,234,229,79,230,181,230,25,231,128,231, +243,231,126,232,37,233,233,233,192,234,157,235,115,236,54,237,224,237,110,238,227,238,66,239,142,239,199,239,239,239,4,240, +8,240,0,240,245,239,241,239,251,239,21,240,61,240,113,240,172,240,241,240,67,241,166,241,27,242,164,242,66,243,244,243, +188,244,153,245,136,246,136,247,147,248,165,249,184,250,197,251,195,252,170,253,119,254,39,255,189,255,62,0,174,0,15,1, +98,1,169,1,231,1,32,2,92,2,160,2,240,2,75,3,177,3,30,4,144,4,9,5,137,5,15,6,150,6,24,7, +141,7,242,7,73,8,157,8,250,8,108,9,253,9,172,10,108,11,47,12,229,12,131,13,10,14,129,14,239,14,86,15, +174,15,238,15,17,16,30,16,36,16,57,16,105,16,183,16,24,17,124,17,215,17,36,18,106,18,180,18,10,19,109,19, +220,19,84,20,215,20,107,21,21,22,211,22,157,23,99,24,23,25,179,25,55,26,169,26,12,27,96,27,159,27,197,27, +211,27,208,27,201,27,201,27,213,27,234,27,0,28,15,28,18,28,12,28,4,28,1,28,1,28,248,27,217,27,151,27, +45,27,167,26,21,26,138,25,18,25,173,24,87,24,3,24,172,23,83,23,255,22,185,22,137,22,112,22,106,22,116,22, +139,22,173,22,220,22,17,23,70,23,113,23,141,23,156,23,166,23,180,23,203,23,236,23,19,24,57,24,92,24,125,24, +159,24,194,24,230,24,5,25,21,25,17,25,248,24,204,24,146,24,74,24,239,23,118,23,214,22,9,22,22,21,11,20, +250,18,237,17,232,16,227,15,211,14,174,13,115,12,43,11,224,9,154,8,86,7,6,6,153,4,8,3,86,1,152,255, +227,253,73,252,205,250,103,249,11,248,183,246,110,245,64,244,53,243,81,242,139,241,215,240,44,240,138,239,252,238,137,238, +52,238,245,237,190,237,133,237,75,237,28,237,5,237,15,237,52,237,100,237,145,237,181,237,217,237,15,238,100,238,219,238, +103,239,244,239,113,240,211,240,27,241,76,241,106,241,113,241,90,241,30,241,188,240,61,240,172,239,21,239,127,238,232,237, +80,237,181,236,30,236,145,235,24,235,181,234,100,234,25,234,200,233,100,233,231,232,81,232,169,231,250,230,77,230,167,229, +8,229,112,228,224,227,97,227,0,227,204,226,203,226,253,226,84,227,192,227,50,228,163,228,18,229,134,229,3,230,142,230, +38,231,205,231,133,232,83,233,55,234,48,235,52,236,56,237,49,238,29,239,255,239,219,240,177,241,122,242,43,243,188,243, +45,244,135,244,215,244,41,245,126,245,208,245,23,246,79,246,127,246,176,246,238,246,60,247,146,247,228,247,39,248,86,248, +124,248,166,248,227,248,54,249,148,249,238,249,52,250,97,250,125,250,149,250,180,250,226,250,26,251,84,251,139,251,193,251, +1,252,89,252,211,252,113,253,40,254,234,254,166,255,82,0,238,0,124,1,252,1,109,2,204,2,24,3,82,3,130,3, +177,3,229,3,32,4,97,4,168,4,248,4,84,5,190,5,48,6,159,6,251,6,55,7,78,7,72,7,49,7,23,7, +4,7,251,6,252,6,10,7,44,7,105,7,197,7,58,8,189,8,61,9,177,9,24,10,120,10,216,10,58,11,152,11, +232,11,35,12,72,12,95,12,113,12,135,12,164,12,197,12,229,12,3,13,36,13,81,13,144,13,223,13,51,14,123,14, +172,14,194,14,197,14,193,14,195,14,211,14,243,14,33,15,87,15,147,15,213,15,29,16,106,16,184,16,1,17,67,17, +121,17,164,17,199,17,229,17,1,18,26,18,46,18,58,18,63,18,59,18,46,18,21,18,239,17,183,17,113,17,34,17, +214,16,154,16,121,16,118,16,143,16,188,16,243,16,50,17,121,17,206,17,50,18,158,18,7,19,93,19,153,19,191,19, +217,19,247,19,31,20,79,20,128,20,168,20,201,20,235,20,24,21,87,21,161,21,233,21,32,22,64,22,81,22,101,22, +140,22,204,22,29,23,114,23,197,23,25,24,127,24,3,25,166,25,82,26,227,26,58,27,68,27,10,27,158,26,19,26, +110,25,161,24,149,23,61,22,155,20,200,18,233,16,31,15,123,13,249,11,142,10,45,9,214,7,143,6,97,5,79,4, +82,3,94,2,104,1,111,0,123,255,152,254,207,253,34,253,140,252,7,252,144,251,42,251,215,250,152,250,100,250,44,250, +227,249,136,249,39,249,213,248,168,248,167,248,199,248,244,248,27,249,56,249,90,249,155,249,15,250,187,250,144,251,117,252, +83,253,38,254,245,254,211,255,201,0,212,1,222,2,204,3,138,4,20,5,115,5,180,5,220,5,226,5,181,5,63,5, +123,4,109,3,39,2,188,0,57,255,165,253,1,252,81,250,160,248,253,246,118,245,19,244,210,242,168,241,135,240,103,239, +70,238,45,237,35,236,42,235,62,234,88,233,115,232,144,231,189,230,4,230,111,229,253,228,166,228,92,228,21,228,207,227, +141,227,83,227,33,227,245,226,201,226,155,226,116,226,97,226,112,226,168,226,7,227,129,227,15,228,175,228,106,229,75,230, +83,231,120,232,163,233,185,234,172,235,122,236,51,237,229,237,153,238,72,239,225,239,81,240,142,240,160,240,153,240,142,240, +141,240,148,240,153,240,146,240,123,240,92,240,65,240,51,240,55,240,70,240,87,240,98,240,102,240,106,240,116,240,142,240, +186,240,249,240,74,241,174,241,41,242,192,242,113,243,57,244,17,245,246,245,228,246,219,247,217,248,211,249,184,250,119,251, +6,252,103,252,170,252,223,252,21,253,78,253,135,253,187,253,236,253,38,254,124,254,250,254,163,255,111,0,76,1,45,2, +12,3,236,3,213,4,205,5,211,6,226,7,243,8,4,10,18,11,31,12,44,13,52,14,52,15,38,16,6,17,212,17, +142,18,51,19,195,19,61,20,161,20,241,20,45,21,86,21,109,21,119,21,121,21,122,21,125,21,128,21,125,21,110,21, +83,21,50,21,24,21,13,21,22,21,45,21,76,21,109,21,144,21,188,21,248,21,68,22,161,22,7,23,114,23,226,23, +88,24,210,24,76,25,189,25,33,26,124,26,218,26,72,27,201,27,86,28,218,28,65,29,130,29,160,29,166,29,159,29, +144,29,117,29,71,29,6,29,186,28,112,28,51,28,5,28,228,27,198,27,168,27,141,27,125,27,126,27,141,27,161,27, +172,27,168,27,149,27,125,27,102,27,82,27,58,27,19,27,207,26,103,26,216,25,37,25,82,24,101,23,100,22,82,21, +49,20,2,19,199,17,136,16,83,15,56,14,68,13,125,12,220,11,85,11,216,10,91,10,219,9,87,9,208,8,61,8, +146,7,195,6,206,5,188,4,161,3,144,2,146,1,166,0,196,255,232,254,18,254,74,253,153,252,253,251,110,251,217,250, +46,250,95,249,103,248,72,247,6,246,172,244,68,243,220,241,131,240,68,239,35,238,34,237,61,236,114,235,198,234,67,234, +242,233,218,233,244,233,51,234,129,234,206,234,10,235,47,235,57,235,38,235,246,234,170,234,69,234,205,233,67,233,170,232, +1,232,75,231,139,230,205,229,26,229,128,228,5,228,172,227,113,227,78,227,56,227,40,227,21,227,252,226,222,226,190,226, +158,226,126,226,93,226,55,226,10,226,211,225,150,225,83,225,7,225,172,224,54,224,157,223,222,222,255,221,12,221,17,220, +21,219,23,218,23,217,22,216,26,215,48,214,100,213,192,212,72,212,251,211,219,211,233,211,39,212,148,212,46,213,232,213, +184,214,150,215,126,216,116,217,124,218,151,219,195,220,251,221,60,223,133,224,212,225,42,227,129,228,208,229,13,231,47,232, +53,233,35,234,253,234,203,235,143,236,73,237,249,237,162,238,74,239,245,239,169,240,103,241,45,242,252,242,213,243,189,244, +185,245,203,246,241,247,35,249,88,250,137,251,177,252,203,253,214,254,206,255,173,0,106,1,255,1,106,2,176,2,218,2, +243,2,1,3,9,3,13,3,17,3,24,3,38,3,62,3,95,3,134,3,178,3,230,3,42,4,133,4,253,4,147,5, +64,6,249,6,179,7,106,8,34,9,225,9,173,10,130,11,89,12,37,13,222,13,132,14,28,15,174,15,67,16,219,16, +115,17,5,18,138,18,253,18,93,19,171,19,233,19,25,20,59,20,78,20,84,20,82,20,80,20,88,20,110,20,151,20, +206,20,14,21,82,21,149,21,216,21,29,22,102,22,176,22,244,22,45,23,83,23,103,23,107,23,96,23,69,23,20,23, +201,22,102,22,246,21,137,21,46,21,234,20,186,20,148,20,110,20,69,20,25,20,238,19,200,19,166,19,134,19,107,19, +88,19,85,19,102,19,135,19,175,19,205,19,216,19,209,19,192,19,175,19,159,19,134,19,80,19,238,18,85,18,138,17, +152,16,140,15,109,14,57,13,235,11,126,10,243,8,81,7,163,5,247,3,87,2,201,0,81,255,240,253,169,252,125,251, +109,250,123,249,169,248,245,247,90,247,208,246,78,246,202,245,64,245,176,244,27,244,132,243,229,242,61,242,138,241,209,240, +29,240,123,239,240,238,125,238,29,238,203,237,133,237,80,237,47,237,34,237,30,237,19,237,243,236,182,236,97,236,2,236, +163,235,72,235,239,234,145,234,46,234,208,233,133,233,89,233,77,233,86,233,103,233,114,233,117,233,117,233,120,233,126,233, +127,233,108,233,56,233,227,232,116,232,251,231,133,231,21,231,168,230,52,230,185,229,62,229,213,228,145,228,120,228,134,228, +169,228,207,228,232,228,239,228,233,228,222,228,210,228,198,228,180,228,148,228,100,228,42,228,238,227,187,227,148,227,118,227, +88,227,51,227,3,227,207,226,160,226,126,226,111,226,112,226,121,226,124,226,115,226,90,226,51,226,4,226,210,225,159,225, +107,225,53,225,252,224,195,224,141,224,90,224,45,224,5,224,228,223,206,223,199,223,213,223,249,223,53,224,136,224,239,224, +102,225,239,225,139,226,61,227,3,228,220,228,193,229,175,230,164,231,167,232,190,233,237,234,55,236,149,237,254,238,106,240, +213,241,65,243,182,244,57,246,201,247,94,249,232,250,91,252,180,253,250,254,62,0,146,1,250,2,113,4,231,5,80,7, +167,8,242,9,64,11,153,12,253,13,96,15,174,16,216,17,215,18,177,19,112,20,27,21,176,21,38,22,117,22,157,22, +167,22,159,22,144,22,124,22,95,22,52,22,249,21,179,21,106,21,39,21,233,20,172,20,106,20,29,20,196,19,96,19, +242,18,120,18,235,17,73,17,148,16,214,15,26,15,105,14,194,13,35,13,136,12,247,11,121,11,26,11,224,10,202,10, +204,10,222,10,250,10,37,11,99,11,184,11,30,12,139,12,241,12,74,13,154,13,233,13,69,14,175,14,33,15,142,15, +231,15,39,16,79,16,98,16,99,16,81,16,38,16,220,15,113,15,228,14,60,14,124,13,169,12,198,11,211,10,208,9, +189,8,153,7,98,6,26,5,193,3,95,2,250,0,156,255,73,254,5,253,206,251,160,250,122,249,94,248,79,247,82,246, +106,245,150,244,216,243,50,243,168,242,62,242,247,241,211,241,206,241,228,241,13,242,71,242,143,242,231,242,81,243,208,243, +97,244,1,245,168,245,83,246,251,246,160,247,66,248,225,248,124,249,14,250,148,250,6,251,94,251,152,251,180,251,177,251, +142,251,71,251,212,250,50,250,91,249,84,248,35,247,210,245,106,244,240,242,104,241,210,239,47,238,131,236,217,234,56,233, +169,231,42,230,181,228,64,227,197,225,66,224,192,222,72,221,228,219,152,218,98,217,65,216,53,215,64,214,107,213,188,212, +56,212,220,211,166,211,146,211,161,211,213,211,49,212,180,212,88,213,22,214,233,214,211,215,217,216,2,218,81,219,190,220, +63,222,197,223,68,225,181,226,23,228,107,229,175,230,227,231,4,233,16,234,8,235,237,235,191,236,122,237,21,238,135,238, +200,238,217,238,191,238,132,238,48,238,202,237,84,237,209,236,69,236,185,235,54,235,198,234,110,234,44,234,251,233,209,233, +168,233,126,233,89,233,63,233,51,233,53,233,61,233,69,233,76,233,91,233,127,233,203,233,77,234,10,235,249,235,9,237, +40,238,73,239,106,240,148,241,208,242,36,244,141,245,3,247,123,248,244,249,113,251,1,253,174,254,126,0,110,2,111,4, +113,6,103,8,77,10,37,12,238,13,163,15,54,17,149,18,177,19,136,20,36,21,149,21,234,21,45,22,93,22,117,22, +115,22,91,22,52,22,11,22,228,21,188,21,135,21,56,21,202,20,62,20,159,19,248,18,79,18,162,17,235,16,35,16, +73,15,100,14,127,13,166,12,229,11,66,11,194,10,98,10,35,10,3,10,2,10,31,10,87,10,169,10,16,11,136,11, +7,12,129,12,230,12,39,13,58,13,31,13,220,12,126,12,13,12,144,11,8,11,119,10,227,9,87,9,228,8,147,8, +105,8,91,8,91,8,89,8,74,8,45,8,3,8,206,7,135,7,34,7,142,6,196,5,197,4,155,3,85,2,255,0, +161,255,62,254,221,252,134,251,66,250,26,249,17,248,34,247,68,246,113,245,167,244,238,243,83,243,225,242,157,242,127,242, +123,242,132,242,145,242,161,242,188,242,233,242,49,243,148,243,11,244,131,244,235,244,50,245,82,245,81,245,60,245,32,245, +3,245,223,244,167,244,79,244,210,243,52,243,133,242,212,241,41,241,132,240,220,239,41,239,105,238,164,237,232,236,70,236, +196,235,96,235,16,235,196,234,111,234,4,234,127,233,218,232,23,232,54,231,55,230,29,229,234,227,163,226,81,225,253,223, +183,222,141,221,142,220,196,219,52,219,225,218,199,218,227,218,50,219,179,219,98,220,61,221,56,222,72,223,95,224,116,225, +131,226,143,227,159,228,186,229,226,230,23,232,84,233,147,234,211,235,20,237,85,238,144,239,184,240,188,241,140,242,35,243, +134,243,196,243,239,243,18,244,50,244,80,244,107,244,136,244,174,244,225,244,36,245,110,245,181,245,237,245,17,246,34,246, +35,246,23,246,250,245,196,245,112,245,254,244,119,244,233,243,95,243,227,242,118,242,25,242,204,241,147,241,113,241,106,241, +130,241,188,241,28,242,166,242,92,243,59,244,60,245,84,246,121,247,163,248,206,249,250,250,36,252,74,253,103,254,121,255, +134,0,149,1,179,2,231,3,51,5,150,6,12,8,147,9,43,11,209,12,125,14,33,16,173,17,16,19,65,20,58,21, +253,21,140,22,237,22,39,23,62,23,57,23,28,23,235,22,172,22,98,22,23,22,209,21,148,21,97,21,46,21,240,20, +156,20,45,20,169,19,27,19,136,18,239,17,70,17,131,16,160,15,165,14,163,13,172,12,206,11,10,11,87,10,169,9, +245,8,56,8,118,7,181,6,251,5,70,5,145,4,208,3,249,2,4,2,244,0,212,255,180,254,169,253,191,252,251,251, +87,251,201,250,72,250,213,249,115,249,39,249,235,248,173,248,85,248,207,247,18,247,39,246,32,245,17,244,6,243,5,242, +16,241,40,240,87,239,169,238,41,238,221,237,192,237,204,237,247,237,59,238,143,238,234,238,62,239,124,239,154,239,150,239, +117,239,69,239,17,239,223,238,180,238,145,238,123,238,120,238,141,238,184,238,239,238,41,239,91,239,130,239,162,239,190,239, +219,239,242,239,253,239,239,239,195,239,119,239,16,239,147,238,4,238,102,237,184,236,252,235,54,235,112,234,179,233,8,233, +119,232,5,232,180,231,127,231,97,231,79,231,68,231,56,231,38,231,7,231,207,230,114,230,228,229,35,229,55,228,50,227, +44,226,62,225,120,224,228,223,135,223,95,223,111,223,182,223,50,224,217,224,156,225,100,226,33,227,198,227,77,228,187,228, +20,229,97,229,166,229,234,229,52,230,142,230,0,231,148,231,79,232,47,233,45,234,55,235,61,236,43,237,245,237,148,238, +12,239,102,239,173,239,235,239,38,240,93,240,139,240,176,240,204,240,232,240,12,241,64,241,131,241,208,241,29,242,98,242, +157,242,211,242,10,243,73,243,142,243,215,243,27,244,91,244,155,244,232,244,82,245,225,245,150,246,104,247,77,248,62,249, +59,250,73,251,109,252,169,253,249,254,87,0,185,1,28,3,122,4,211,5,38,7,113,8,177,9,229,10,15,12,47,13, +69,14,82,15,85,16,78,17,65,18,46,19,19,20,234,20,170,21,77,22,213,22,78,23,198,23,69,24,198,24,60,25, +150,25,202,25,220,25,217,25,207,25,195,25,172,25,120,25,23,25,132,24,204,23,5,23,66,22,142,21,226,20,50,20, +114,19,162,18,202,17,249,16,58,16,145,15,251,14,113,14,236,13,103,13,221,12,77,12,180,11,21,11,112,10,204,9, +42,9,137,8,225,7,45,7,102,6,144,5,179,4,220,3,20,3,92,2,176,1,9,1,100,0,194,255,39,255,148,254, +3,254,104,253,180,252,222,251,234,250,228,249,222,248,232,247,10,247,65,246,134,245,208,244,29,244,113,243,213,242,85,242, +247,241,187,241,157,241,149,241,156,241,171,241,192,241,215,241,241,241,9,242,30,242,43,242,45,242,35,242,13,242,239,241, +210,241,188,241,182,241,197,241,235,241,38,242,113,242,201,242,40,243,141,243,246,243,98,244,204,244,44,245,120,245,168,245, +183,245,166,245,122,245,58,245,235,244,142,244,31,244,152,243,248,242,71,242,146,241,235,240,98,240,254,239,185,239,140,239, +107,239,78,239,52,239,25,239,247,238,193,238,102,238,218,237,26,237,50,236,60,235,78,234,123,233,198,232,42,232,158,231, +32,231,186,230,123,230,111,230,153,230,241,230,104,231,237,231,119,232,255,232,131,233,0,234,110,234,196,234,248,234,8,235, +250,234,216,234,177,234,146,234,133,234,147,234,193,234,20,235,142,235,49,236,250,236,232,237,248,238,40,240,114,241,206,242, +47,244,137,245,207,246,247,247,252,248,217,249,141,250,27,251,137,251,226,251,56,252,153,252,17,253,162,253,71,254,247,254, +167,255,81,0,240,0,133,1,10,2,122,2,206,2,0,3,15,3,255,2,217,2,168,2,119,2,77,2,49,2,40,2, +48,2,68,2,93,2,115,2,130,2,139,2,148,2,162,2,186,2,217,2,250,2,23,3,46,3,65,3,86,3,115,3, +159,3,218,3,38,4,129,4,239,4,116,5,15,6,191,6,123,7,53,8,227,8,126,9,10,10,142,10,22,11,170,11, +75,12,240,12,144,13,32,14,159,14,20,15,137,15,10,16,151,16,38,17,169,17,18,18,91,18,136,18,166,18,189,18, +204,18,201,18,164,18,80,18,206,17,41,17,116,16,192,15,25,15,127,14,239,13,105,13,239,12,138,12,64,12,18,12, +253,11,249,11,1,12,20,12,54,12,106,12,176,12,2,13,86,13,162,13,220,13,1,14,16,14,9,14,238,13,190,13, +124,13,39,13,191,12,66,12,175,11,7,11,80,10,147,9,215,8,32,8,103,7,159,6,187,5,178,4,136,3,71,2, +253,0,181,255,112,254,44,253,232,251,165,250,112,249,86,248,95,247,142,246,219,245,61,245,172,244,36,244,165,243,47,243, +192,242,82,242,223,241,101,241,231,240,108,240,251,239,150,239,62,239,244,238,186,238,151,238,144,238,169,238,226,238,54,239, +160,239,33,240,189,240,122,241,94,242,103,243,143,244,202,245,11,247,74,248,125,249,160,250,173,251,157,252,107,253,19,254, +152,254,254,254,75,255,132,255,169,255,184,255,173,255,138,255,83,255,18,255,211,254,160,254,125,254,98,254,67,254,16,254, +190,253,75,253,192,252,43,252,151,251,13,251,138,250,9,250,134,249,3,249,135,248,23,248,178,247,80,247,228,246,98,246, +198,245,25,245,101,244,183,243,18,243,116,242,217,241,68,241,190,240,86,240,25,240,10,240,35,240,89,240,158,240,236,240, +65,241,156,241,252,241,89,242,170,242,229,242,8,243,26,243,37,243,50,243,73,243,109,243,161,243,228,243,57,244,160,244, +23,245,153,245,27,246,150,246,5,247,105,247,198,247,37,248,139,248,250,248,111,249,229,249,84,250,186,250,23,251,113,251, +206,251,53,252,169,252,40,253,173,253,53,254,192,254,83,255,251,255,194,0,174,1,189,2,231,3,28,5,82,6,129,7, +169,8,206,9,244,10,26,12,60,13,80,14,81,15,60,16,21,17,226,17,172,18,121,19,72,20,21,21,218,21,146,22, +57,23,206,23,84,24,206,24,62,25,171,25,24,26,139,26,3,27,126,27,244,27,96,28,190,28,17,29,91,29,158,29, +218,29,5,30,23,30,11,30,226,29,164,29,94,29,23,29,205,28,121,28,15,28,138,27,236,26,62,26,139,25,218,24, +44,24,126,23,202,22,11,22,68,21,121,20,179,19,250,18,89,18,216,17,125,17,76,17,62,17,77,17,109,17,149,17, +189,17,226,17,1,18,18,18,16,18,243,17,184,17,98,17,246,16,124,16,251,15,119,15,248,14,130,14,31,14,216,13, +177,13,169,13,185,13,217,13,1,14,41,14,70,14,75,14,42,14,218,13,89,13,174,12,234,11,27,11,73,10,118,9, +160,8,199,7,247,6,62,6,169,5,59,5,234,4,165,4,91,4,6,4,169,3,75,3,239,2,141,2,23,2,128,1, +196,0,237,255,11,255,48,254,101,253,169,252,246,251,71,251,159,250,9,250,149,249,76,249,48,249,59,249,96,249,146,249, +199,249,245,249,24,250,45,250,52,250,45,250,28,250,2,250,226,249,190,249,151,249,109,249,62,249,7,249,193,248,102,248, +237,247,80,247,141,246,166,245,160,244,132,243,92,242,51,241,20,240,8,239,28,238,87,237,196,236,103,236,66,236,82,236, +145,236,238,236,88,237,188,237,9,238,55,238,68,238,52,238,12,238,209,237,134,237,46,237,209,236,124,236,60,236,34,236, +56,236,127,236,244,236,145,237,80,238,47,239,45,240,72,241,120,242,178,243,227,244,254,245,250,246,215,247,157,248,85,249, +7,250,183,250,100,251,14,252,183,252,100,253,28,254,224,254,174,255,127,0,75,1,11,2,186,2,85,3,217,3,61,4, +120,4,132,4,98,4,28,4,198,3,117,3,54,3,16,3,255,2,255,2,12,3,42,3,98,3,187,3,58,4,217,4, +145,5,86,6,30,7,234,7,188,8,158,9,150,10,168,11,212,12,18,14,96,15,187,16,40,18,175,19,86,21,25,23, +235,24,184,26,107,28,250,29,100,31,176,32,230,33,5,35,8,36,229,36,154,37,48,38,185,38,70,39,225,39,133,40, +36,41,179,41,47,42,161,42,22,43,153,43,37,44,174,44,33,45,112,45,148,45,138,45,82,45,233,44,73,44,115,43, +109,42,68,41,5,40,182,38,87,37,228,35,96,34,213,32,90,31,1,30,212,28,204,27,218,26,239,25,9,25,49,24, +118,23,226,22,112,22,13,22,161,21,28,21,127,20,218,19,70,19,215,18,147,18,116,18,103,18,92,18,73,18,49,18, +29,18,22,18,31,18,49,18,60,18,49,18,6,18,188,17,93,17,244,16,139,16,33,16,174,15,42,15,150,14,251,13, +105,13,241,12,153,12,92,12,45,12,1,12,214,11,177,11,154,11,146,11,147,11,139,11,105,11,31,11,170,10,12,10, +74,9,100,8,87,7,30,6,187,4,53,3,152,1,241,255,72,254,161,252,248,250,76,249,156,247,235,245,60,244,145,242, +236,240,78,239,192,237,74,236,248,234,209,233,217,232,11,232,94,231,201,230,73,230,220,229,133,229,68,229,20,229,239,228, +202,228,161,228,117,228,76,228,47,228,36,228,41,228,59,228,87,228,127,228,188,228,26,229,158,229,69,230,4,231,203,231, +148,232,99,233,71,234,82,235,141,236,246,237,126,239,22,241,183,242,95,244,19,246,207,247,135,249,33,251,135,252,170,253, +138,254,50,255,173,255,253,255,29,0,3,0,174,255,42,255,143,254,247,253,120,253,25,253,215,252,175,252,159,252,174,252, +229,252,73,253,216,253,138,254,80,255,30,0,235,0,179,1,113,2,37,3,206,3,111,4,14,5,178,5,97,6,36,7, +253,7,242,8,6,10,64,11,164,12,52,14,236,15,196,17,176,19,164,21,149,23,124,25,85,27,30,29,211,30,110,32, +230,33,50,35,79,36,65,37,20,38,217,38,159,39,110,40,68,41,23,42,228,42,172,43,120,44,85,45,72,46,72,47, +67,48,32,49,207,49,73,50,150,50,193,50,208,50,196,50,151,50,68,50,206,49,61,49,155,48,243,47,73,47,158,46, +242,45,75,45,173,44,30,44,156,43,33,43,165,42,35,42,155,41,14,41,123,40,218,39,31,39,57,38,31,37,206,35, +81,34,183,32,12,31,92,29,174,27,7,26,111,24,240,22,149,21,103,20,105,19,152,18,236,17,87,17,202,16,54,16, +141,15,198,14,219,13,201,12,146,11,53,10,181,8,22,7,99,5,168,3,246,1,93,0,238,254,174,253,163,252,203,251, +36,251,168,250,84,250,33,250,8,250,2,250,8,250,20,250,34,250,45,250,53,250,63,250,85,250,131,250,215,250,88,251, +8,252,224,252,212,253,215,254,221,255,218,0,195,1,142,2,45,3,153,3,202,3,191,3,118,3,238,2,40,2,40,1, +252,255,184,254,119,253,84,252,100,251,179,250,68,250,21,250,31,250,90,250,183,250,34,251,129,251,188,251,194,251,138,251, +19,251,91,250,91,249,8,248,88,246,78,244,2,242,157,239,81,237,73,235,164,233,107,232,153,231,36,231,3,231,48,231, +164,231,79,232,28,233,237,233,167,234,56,235,158,235,224,235,16,236,61,236,112,236,175,236,249,236,81,237,191,237,79,238, +13,239,4,240,54,241,157,242,42,244,204,245,113,247,12,249,150,250,9,252,104,253,178,254,233,255,13,1,28,2,23,3, +255,3,218,4,177,5,144,6,128,7,132,8,151,9,176,10,200,11,217,12,228,13,233,14,225,15,192,16,116,17,238,17, +44,18,58,18,43,18,22,18,7,18,255,17,250,17,246,17,251,17,23,18,87,18,192,18,71,19,216,19,96,20,211,20, +52,21,142,21,233,21,75,22,175,22,19,23,119,23,225,23,90,24,232,24,133,25,43,26,210,26,119,27,35,28,224,28, +181,29,159,30,148,31,139,32,126,33,114,34,115,35,136,36,178,37,232,38,26,40,57,41,61,42,37,43,245,43,177,44, +89,45,232,45,89,46,168,46,213,46,228,46,218,46,187,46,138,46,70,46,233,45,112,45,214,44,27,44,66,43,80,42, +72,41,43,40,249,38,178,37,93,36,6,35,189,33,147,32,148,31,195,30,25,30,141,29,20,29,170,28,76,28,253,27, +189,27,137,27,93,27,50,27,255,26,192,26,114,26,24,26,186,25,94,25,10,25,187,24,102,24,252,23,108,23,177,22, +207,21,211,20,202,19,185,18,156,17,102,16,16,15,155,13,22,12,153,10,58,9,6,8,252,6,22,6,75,5,149,4, +243,3,102,3,233,2,112,2,237,1,80,1,144,0,168,255,154,254,102,253,17,252,156,250,14,249,112,247,206,245,52,244, +178,242,83,241,38,240,54,239,140,238,45,238,17,238,45,238,112,238,204,238,60,239,191,239,90,240,12,241,203,241,135,242, +49,243,187,243,39,244,124,244,198,244,14,245,87,245,154,245,209,245,250,245,26,246,57,246,98,246,150,246,211,246,16,247, +64,247,94,247,103,247,96,247,79,247,59,247,42,247,32,247,34,247,53,247,96,247,168,247,15,248,148,248,48,249,218,249, +137,250,51,251,212,251,104,252,239,252,103,253,206,253,27,254,71,254,75,254,38,254,219,253,117,253,1,253,139,252,29,252, +191,251,123,251,94,251,113,251,189,251,67,252,252,252,219,253,213,254,228,255,10,1,74,2,165,3,18,5,133,6,240,7, +78,9,161,10,243,11,79,13,182,14,29,16,118,17,177,18,197,19,178,20,122,21,30,22,150,22,217,22,223,22,168,22, +61,22,176,21,22,21,127,20,248,19,137,19,56,19,13,19,12,19,55,19,137,19,253,19,136,20,34,21,192,21,88,22, +221,22,70,23,138,23,169,23,168,23,145,23,111,23,77,23,47,23,23,23,6,23,250,22,241,22,233,22,222,22,204,22, +178,22,142,22,100,22,54,22,8,22,222,21,189,21,167,21,160,21,169,21,193,21,232,21,32,22,113,22,226,22,123,23, +65,24,46,25,60,26,97,27,154,28,231,29,74,31,189,32,52,34,154,35,221,36,244,37,221,38,163,39,77,40,221,40, +76,41,144,41,159,41,123,41,42,41,185,40,48,40,150,39,237,38,56,38,123,37,194,36,22,36,125,35,250,34,139,34, +46,34,218,33,139,33,53,33,206,32,75,32,164,31,215,30,227,29,201,28,140,27,44,26,176,24,37,23,156,21,41,20, +215,18,168,17,144,16,129,15,114,14,97,13,86,12,86,11,97,10,108,9,106,8,78,7,24,6,211,4,145,3,100,2, +84,1,99,0,138,255,194,254,10,254,98,253,202,252,64,252,190,251,58,251,169,250,8,250,84,249,146,248,200,247,248,246, +34,246,64,245,73,244,55,243,7,242,189,240,99,239,7,238,180,236,111,235,56,234,15,233,245,231,239,230,8,230,77,229, +201,228,128,228,114,228,156,228,252,228,148,229,103,230,118,231,192,232,60,234,221,235,151,237,95,239,46,241,255,242,208,244, +157,246,98,248,25,250,189,251,73,253,184,254,10,0,63,1,90,2,101,3,104,4,106,5,109,6,111,7,103,8,79,9, +32,10,218,10,127,11,20,12,149,12,254,12,65,13,85,13,53,13,229,12,111,12,224,11,66,11,151,10,220,9,13,9, +44,8,68,7,101,6,158,5,248,4,111,4,244,3,119,3,236,2,77,2,160,1,238,0,64,0,153,255,249,254,97,254, +219,253,121,253,90,253,154,253,85,254,149,255,86,1,132,3,6,6,193,8,160,11,143,14,127,17,91,20,9,23,113,25, +123,27,27,29,81,30,39,31,170,31,225,31,213,31,135,31,2,31,84,30,150,29,221,28,55,28,163,27,18,27,114,26, +178,25,206,24,199,23,165,22,109,21,27,20,170,18,20,17,93,15,143,13,187,11,242,9,63,8,168,6,47,5,212,3, +153,2,125,1,130,0,162,255,214,254,23,254,100,253,193,252,54,252,207,251,150,251,148,251,202,251,59,252,233,252,215,253, +6,255,122,0,47,2,33,4,71,6,150,8,1,11,122,13,240,15,79,18,132,20,124,22,42,24,139,25,162,26,125,27, +40,28,176,28,28,29,114,29,186,29,252,29,72,30,170,30,41,31,195,31,105,32,10,33,147,33,244,33,33,34,15,34, +180,33,4,33,247,31,143,30,217,28,233,26,217,24,192,22,172,20,169,18,193,16,3,15,130,13,83,12,131,11,19,11, +247,10,23,11,96,11,190,11,38,12,145,12,248,12,79,13,146,13,190,13,219,13,249,13,40,14,114,14,215,14,76,15, +196,15,55,16,165,16,16,17,125,17,231,17,67,18,129,18,144,18,106,18,11,18,114,17,159,16,141,15,58,14,170,12, +236,10,21,9,57,7,101,5,154,3,209,1,2,0,45,254,86,252,136,250,198,248,13,247,82,245,140,243,186,241,227,239, +21,238,89,236,180,234,35,233,162,231,56,230,241,228,227,227,36,227,190,226,180,226,0,227,154,227,126,228,170,229,30,231, +212,232,194,234,220,236,20,239,98,241,192,243,40,246,148,248,254,250,98,253,188,255,6,2,57,4,71,6,34,8,192,9, +31,11,73,12,75,13,49,14,251,14,162,15,28,16,98,16,121,16,106,16,63,16,250,15,145,15,247,14,32,14,10,13, +193,11,85,10,215,8,82,7,202,5,66,4,191,2,74,1,238,255,180,254,160,253,177,252,225,251,42,251,134,250,242,249, +111,249,252,248,156,248,77,248,15,248,220,247,176,247,138,247,112,247,114,247,166,247,33,248,241,248,25,250,146,251,81,253, +77,255,126,1,221,3,90,6,224,8,87,11,168,13,200,15,182,17,120,19,22,21,139,22,208,23,214,24,151,25,18,26, +78,26,83,26,35,26,184,25,10,25,15,24,198,22,53,21,101,19,98,17,54,15,234,12,136,10,30,8,185,5,102,3, +46,1,21,255,29,253,68,251,141,249,249,247,141,246,78,245,64,244,102,243,195,242,89,242,38,242,37,242,79,242,156,242, +5,243,131,243,22,244,187,244,116,245,68,246,46,247,58,248,109,249,202,250,80,252,249,253,191,255,155,1,140,3,148,5, +180,7,235,9,51,12,128,14,199,16,254,18,32,21,40,23,21,25,224,26,127,28,231,29,14,31,239,31,136,32,220,32, +236,32,184,32,66,32,143,31,170,30,164,29,143,28,120,27,103,26,94,25,97,24,119,23,173,22,18,22,170,21,111,21, +78,21,52,21,17,21,233,20,199,20,187,20,204,20,246,20,42,21,94,21,148,21,220,21,78,22,249,22,218,23,224,24, +245,25,9,27,28,28,53,29,91,30,136,31,168,32,165,33,110,34,7,35,125,35,226,35,56,36,114,36,124,36,66,36, +195,35,11,35,41,34,38,33,247,31,140,30,209,28,200,26,129,24,28,22,180,19,88,17,6,15,180,12,92,10,5,8, +193,5,161,3,175,1,227,255,45,254,115,252,165,250,190,248,192,246,183,244,173,242,167,240,173,238,197,236,249,234,89,233, +249,231,233,230,55,230,233,229,253,229,109,230,50,231,69,232,158,233,51,235,243,236,200,238,155,240,89,242,252,243,134,245, +255,246,111,248,212,249,39,251,93,252,112,253,98,254,60,255,3,0,181,0,67,1,153,1,168,1,104,1,220,0,13,0, +2,255,191,253,69,252,155,250,209,248,255,246,65,245,169,243,60,242,244,240,198,239,172,238,165,237,184,236,234,235,53,235, +144,234,233,233,54,233,114,232,165,231,217,230,24,230,108,229,216,228,99,228,22,228,251,227,29,228,129,228,35,229,249,229, +248,230,25,232,86,233,176,234,41,236,189,237,103,239,28,241,211,242,135,244,56,246,233,247,158,249,85,251,8,253,173,254, +59,0,173,1,2,3,60,4,88,5,79,6,23,7,165,7,246,7,14,8,251,7,200,7,126,7,25,7,147,6,229,5, +15,5,25,4,18,3,7,2,1,1,255,255,0,255,3,254,13,253,40,252,96,251,190,250,72,250,255,249,230,249,0,250, +82,250,227,250,183,251,212,252,57,254,232,255,220,1,14,4,113,6,243,8,133,11,23,14,164,16,38,19,152,21,241,23, +33,26,23,28,203,29,68,31,148,32,215,33,37,35,141,36,16,38,167,39,71,41,237,42,150,44,68,46,240,47,140,49, +4,51,64,52,46,53,199,53,7,54,242,53,137,53,207,52,197,51,113,50,225,48,44,47,109,45,189,43,47,42,198,40, +126,39,75,38,33,37,248,35,203,34,153,33,94,32,11,31,144,29,221,27,233,25,190,23,118,21,51,19,26,17,65,15, +183,13,130,12,168,11,56,11,69,11,222,11,4,13,159,14,136,16,140,18,126,20,66,22,201,23,14,25,12,26,183,26, +253,26,210,26,52,26,50,25,234,23,127,22,17,21,181,19,120,18,93,17,97,16,129,15,181,14,247,13,60,13,122,12, +161,11,165,10,118,9,7,8,84,6,96,4,56,2,242,255,166,253,105,251,73,249,77,247,125,245,224,243,132,242,117,241, +182,240,63,240,252,239,207,239,156,239,83,239,234,238,100,238,197,237,16,237,68,236,96,235,103,234,98,233,94,232,110,231, +159,230,255,229,149,229,101,229,117,229,200,229,93,230,49,231,56,232,94,233,140,234,169,235,157,236,89,237,212,237,12,238, +7,238,204,237,103,237,228,236,83,236,192,235,57,235,200,234,116,234,66,234,51,234,69,234,114,234,175,234,233,234,7,235, +241,234,149,234,234,233,247,232,201,231,116,230,8,229,148,227,37,226,205,224,161,223,187,222,46,222,5,222,61,222,204,222, +160,223,171,224,226,225,54,227,151,228,240,229,47,231,68,232,48,233,254,233,192,234,136,235,99,236,90,237,113,238,180,239, +47,241,241,242,255,244,82,247,215,249,114,252,10,255,143,1,251,3,81,6,145,8,185,10,192,12,153,14,58,16,159,17, +204,18,203,19,166,20,100,21,7,22,137,22,230,22,25,23,38,23,17,23,223,22,145,22,32,22,132,21,178,20,169,19, +115,18,32,17,199,15,124,14,74,13,51,12,55,11,88,10,155,9,13,9,187,8,176,8,237,8,105,9,19,10,216,10, +164,11,109,12,49,13,246,13,197,14,163,15,143,16,128,17,107,18,74,19,35,20,2,21,247,21,11,23,62,24,130,25, +202,26,13,28,75,29,137,30,207,31,25,33,95,34,151,35,186,36,203,37,208,38,203,39,178,40,116,41,1,42,80,42, +105,42,91,42,55,42,2,42,182,41,72,41,179,40,254,39,57,39,115,38,178,37,234,36,11,36,11,35,233,33,178,32, +116,31,53,30,243,28,163,27,65,26,212,24,110,23,37,22,8,21,26,20,86,19,181,18,51,18,208,17,138,17,87,17, +38,17,230,16,141,16,29,16,161,15,31,15,148,14,242,13,41,13,51,12,26,11,240,9,202,8,177,7,162,6,146,5, +123,4,97,3,81,2,88,1,121,0,171,255,223,254,12,254,50,253,94,252,155,251,236,250,73,250,161,249,227,248,9,248, +22,247,18,246,3,245,234,243,193,242,137,241,70,240,255,238,187,237,120,236,48,235,216,233,110,232,248,230,131,229,28,228, +202,226,140,225,95,224,70,223,78,222,140,221,23,221,250,220,56,221,198,221,149,222,156,223,212,224,58,226,199,227,110,229, +25,231,177,232,29,234,79,235,58,236,223,236,62,237,100,237,92,237,55,237,6,237,211,236,169,236,139,236,126,236,130,236, +150,236,180,236,209,236,225,236,220,236,191,236,145,236,90,236,35,236,237,235,175,235,100,235,6,235,156,234,49,234,210,233, +132,233,68,233,8,233,197,232,122,232,46,232,236,231,191,231,173,231,176,231,192,231,213,231,237,231,6,232,33,232,62,232, +90,232,113,232,133,232,153,232,181,232,224,232,32,233,115,233,218,233,84,234,227,234,141,235,84,236,58,237,60,238,81,239, +114,240,149,241,181,242,209,243,230,244,243,245,241,246,215,247,155,248,54,249,172,249,8,250,92,250,186,250,45,251,179,251, +71,252,226,252,134,253,61,254,21,255,20,0,51,1,93,2,125,3,130,4,107,5,67,6,22,7,230,7,167,8,69,9, +180,9,245,9,31,10,76,10,147,10,250,10,117,11,245,11,117,12,252,12,158,13,111,14,115,15,163,16,234,17,57,19, +140,20,233,21,91,23,232,24,137,26,47,28,205,29,93,31,225,32,101,34,236,35,118,37,243,38,83,40,133,41,127,42, +66,43,207,43,42,44,87,44,86,44,37,44,197,43,56,43,132,42,179,41,208,40,231,39,0,39,27,38,52,37,68,36, +71,35,63,34,53,33,53,32,72,31,107,30,150,29,183,28,194,27,178,26,140,25,93,24,52,23,30,22,33,21,62,20, +115,19,190,18,30,18,148,17,34,17,196,16,113,16,29,16,184,15,60,15,166,14,0,14,87,13,185,12,43,12,170,11, +45,11,171,10,35,10,155,9,30,9,182,8,101,8,39,8,243,7,189,7,126,7,49,7,209,6,89,6,197,5,17,5, +61,4,79,3,79,2,68,1,53,0,35,255,16,254,0,253,249,251,255,250,22,250,63,249,119,248,191,247,23,247,128,246, +250,245,129,245,11,245,144,244,8,244,114,243,212,242,54,242,159,241,18,241,146,240,32,240,189,239,106,239,39,239,242,238, +201,238,169,238,144,238,126,238,112,238,101,238,87,238,69,238,47,238,27,238,16,238,20,238,44,238,87,238,148,238,223,238, +57,239,158,239,4,240,93,240,152,240,171,240,146,240,83,240,248,239,134,239,249,238,72,238,105,237,95,236,56,235,11,234, +242,232,253,231,46,231,128,230,237,229,115,229,20,229,215,228,186,228,179,228,175,228,155,228,109,228,37,228,206,227,122,227, +57,227,21,227,20,227,55,227,128,227,245,227,154,228,113,229,115,230,147,231,189,232,218,233,219,234,183,235,111,236,9,237, +142,237,4,238,111,238,211,238,54,239,162,239,35,240,194,240,136,241,115,242,128,243,167,244,218,245,13,247,47,248,45,249, +247,249,131,250,208,250,227,250,193,250,115,250,251,249,91,249,156,248,203,247,251,246,66,246,176,245,77,245,28,245,35,245, +104,245,245,245,209,246,249,247,93,249,230,250,125,252,21,254,171,255,65,1,218,2,108,4,233,5,63,7,101,8,91,9, +46,10,236,10,162,11,84,12,0,13,165,13,67,14,224,14,134,15,63,16,18,17,0,18,4,19,23,20,44,21,55,22, +48,23,20,24,229,24,171,25,108,26,40,27,220,27,133,28,36,29,192,29,99,30,20,31,211,31,147,32,65,33,204,33, +44,34,97,34,117,34,107,34,67,34,244,33,116,33,195,32,229,31,233,30,221,29,203,28,184,27,167,26,164,25,190,24, +8,24,142,23,82,23,71,23,90,23,119,23,149,23,179,23,214,23,0,24,41,24,66,24,55,24,253,23,147,23,1,23, +85,22,156,21,217,20,10,20,45,19,69,18,91,17,126,16,182,15,7,15,101,14,193,13,12,13,61,12,83,11,85,10, +72,9,45,8,0,7,189,5,101,4,254,2,147,1,50,0,227,254,172,253,137,252,118,251,109,250,107,249,106,248,103,247, +94,246,79,245,56,244,24,243,238,241,182,240,107,239,12,238,158,236,44,235,198,233,124,232,90,231,101,230,160,229,12,229, +169,228,121,228,120,228,156,228,213,228,18,229,70,229,104,229,117,229,110,229,80,229,26,229,204,228,104,228,251,227,146,227, +57,227,251,226,218,226,213,226,233,226,20,227,82,227,155,227,223,227,13,228,14,228,214,227,94,227,170,226,199,225,194,224, +169,223,135,222,103,221,88,220,107,219,178,218,60,218,20,218,58,218,163,218,66,219,4,220,219,220,190,221,168,222,149,223, +126,224,89,225,25,226,183,226,54,227,164,227,22,228,159,228,75,229,23,230,252,230,242,231,248,232,22,234,86,235,189,236, +69,238,219,239,102,241,212,242,24,244,50,245,39,246,252,246,180,247,82,248,215,248,74,249,182,249,40,250,171,250,71,251, +252,251,202,252,169,253,146,254,121,255,81,0,11,1,153,1,241,1,13,2,238,1,153,1,28,1,136,0,242,255,109,255, +9,255,207,254,195,254,230,254,54,255,175,255,76,0,9,1,221,1,193,2,176,3,165,4,163,5,172,6,194,7,231,8, +29,10,99,11,192,12,56,14,207,15,135,17,90,19,65,21,51,23,39,25,22,27,244,28,180,30,72,32,162,33,190,34, +158,35,76,36,213,36,66,37,148,37,201,37,220,37,204,37,154,37,76,37,231,36,109,36,223,35,62,35,139,34,202,33, +2,33,56,32,112,31,169,30,224,29,18,29,59,28,87,27,99,26,96,25,82,24,63,23,47,22,41,21,52,20,83,19, +137,18,217,17,70,17,214,16,141,16,109,16,114,16,150,16,207,16,20,17,90,17,153,17,204,17,239,17,5,18,17,18, +21,18,17,18,255,17,214,17,143,17,34,17,140,16,206,15,234,14,230,13,198,12,144,11,75,10,252,8,167,7,75,6, +224,4,93,3,187,1,248,255,28,254,56,252,94,250,159,248,7,247,158,245,99,244,84,243,110,242,171,241,8,241,129,240, +18,240,187,239,117,239,58,239,252,238,174,238,69,238,187,237,17,237,79,236,130,235,179,234,235,233,46,233,131,232,245,231, +144,231,97,231,112,231,190,231,71,232,255,232,221,233,214,234,229,235,254,236,22,238,31,239,8,240,196,240,74,241,155,241, +188,241,182,241,149,241,99,241,39,241,227,240,150,240,59,240,202,239,64,239,153,238,214,237,247,236,249,235,212,234,127,233, +245,231,52,230,73,228,67,226,57,224,59,222,90,220,162,218,31,217,225,215,249,214,116,214,86,214,152,214,41,215,246,215, +239,216,7,218,51,219,106,220,158,221,188,222,183,223,137,224,52,225,197,225,73,226,202,226,78,227,213,227,102,228,10,229, +207,229,196,230,237,231,71,233,197,234,86,236,236,237,126,239,7,241,131,242,235,243,57,245,102,246,114,247,101,248,71,249, +34,250,248,250,201,251,142,252,68,253,238,253,145,254,53,255,218,255,124,0,13,1,130,1,209,1,247,1,249,1,222,1, +176,1,120,1,68,1,31,1,24,1,60,1,149,1,35,2,226,2,203,3,211,4,244,5,40,7,106,8,178,9,249,10, +52,12,91,13,104,14,88,15,48,16,244,16,169,17,86,18,1,19,174,19,97,20,29,21,227,21,178,22,138,23,103,24, +69,25,32,26,240,26,174,27,83,28,219,28,65,29,131,29,160,29,154,29,114,29,46,29,213,28,112,28,5,28,151,27, +35,27,170,26,41,26,163,25,29,25,151,24,16,24,127,23,214,22,13,22,32,21,24,20,5,19,248,17,252,16,21,16, +67,15,130,14,213,13,69,13,224,12,176,12,184,12,241,12,76,13,188,13,56,14,189,14,78,15,234,15,138,16,31,17, +153,17,236,17,20,18,26,18,9,18,237,17,203,17,163,17,113,17,52,17,240,16,170,16,102,16,32,16,207,15,102,15, +216,14,31,14,62,13,55,12,15,11,196,9,83,8,183,6,240,4,4,3,254,0,236,254,220,252,219,250,243,248,42,247, +133,245,2,244,158,242,83,241,29,240,247,238,223,237,208,236,195,235,175,234,141,233,88,232,25,231,221,229,183,228,179,227, +216,226,33,226,137,225,11,225,170,224,105,224,78,224,86,224,117,224,155,224,183,224,194,224,186,224,167,224,146,224,129,224, +120,224,119,224,128,224,148,224,181,224,232,224,51,225,151,225,23,226,176,226,90,227,11,228,184,228,83,229,215,229,65,230, +146,230,204,230,240,230,250,230,233,230,189,230,122,230,38,230,202,229,104,229,2,229,150,228,37,228,178,227,73,227,248,226, +201,226,194,226,227,226,33,227,114,227,202,227,35,228,119,228,201,228,28,229,120,229,229,229,104,230,9,231,199,231,163,232, +152,233,163,234,193,235,239,236,44,238,116,239,197,240,26,242,111,243,192,244,10,246,71,247,112,248,127,249,109,250,59,251, +235,251,137,252,31,253,185,253,92,254,5,255,175,255,82,0,233,0,113,1,233,1,79,2,158,2,206,2,214,2,174,2, +83,2,200,1,21,1,70,0,105,255,137,254,181,253,249,252,96,252,242,251,180,251,167,251,195,251,253,251,72,252,148,252, +217,252,19,253,72,253,131,253,207,253,50,254,173,254,59,255,218,255,145,0,109,1,129,2,218,3,123,5,90,7,98,9, +126,11,159,13,187,15,208,17,216,19,199,21,143,23,35,25,123,26,153,27,132,28,67,29,223,29,91,30,188,30,8,31, +71,31,128,31,177,31,215,31,234,31,230,31,206,31,170,31,128,31,85,31,37,31,232,30,153,30,56,30,200,29,81,29, +209,28,68,28,160,27,226,26,10,26,34,25,54,24,81,23,120,22,174,21,247,20,92,20,229,19,155,19,126,19,135,19, +170,19,220,19,22,20,82,20,137,20,177,20,191,20,169,20,112,20,28,20,186,19,81,19,225,18,100,18,209,17,40,17, +113,16,187,15,18,15,118,14,224,13,65,13,142,12,196,11,232,10,251,9,249,8,211,7,122,6,226,4,17,3,25,1, +19,255,20,253,40,251,83,249,148,247,234,245,89,244,231,242,149,241,94,240,55,239,21,238,236,236,185,235,121,234,48,233, +222,231,134,230,46,229,221,227,162,226,140,225,169,224,255,223,145,223,93,223,91,223,132,223,206,223,48,224,163,224,33,225, +166,225,48,226,190,226,75,227,212,227,84,228,202,228,56,229,163,229,13,230,119,230,219,230,52,231,129,231,193,231,249,231, +42,232,85,232,113,232,119,232,97,232,47,232,232,231,147,231,52,231,198,230,63,230,149,229,198,228,217,227,224,226,241,225, +30,225,116,224,246,223,164,223,124,223,125,223,168,223,253,223,117,224,8,225,170,225,74,226,223,226,99,227,213,227,61,228, +164,228,19,229,147,229,41,230,214,230,157,231,126,232,126,233,162,234,237,235,96,237,248,238,168,240,95,242,12,244,159,245, +14,247,86,248,124,249,134,250,122,251,93,252,45,253,237,253,158,254,75,255,0,0,200,0,169,1,155,2,143,3,110,4, +38,5,174,5,4,6,47,6,52,6,25,6,223,5,136,5,29,5,175,4,80,4,17,4,252,3,13,4,63,4,135,4, +225,4,75,5,195,5,72,6,210,6,90,7,219,7,87,8,213,8,93,9,242,9,147,10,59,11,231,11,154,12,92,13, +57,14,55,15,84,16,136,17,197,18,0,20,56,21,113,22,176,23,247,24,64,26,128,27,167,28,171,29,134,30,59,31, +209,31,81,32,191,32,29,33,108,33,170,33,214,33,241,33,250,33,238,33,201,33,136,33,42,33,180,32,45,32,159,31, +13,31,116,30,198,29,241,28,235,27,176,26,77,25,212,23,88,22,230,20,131,19,46,18,232,16,186,15,176,14,212,13, +36,13,148,12,14,12,128,11,228,10,69,10,181,9,70,9,249,8,193,8,137,8,65,8,232,7,142,7,76,7,53,7, +77,7,133,7,194,7,235,7,237,7,198,7,119,7,7,7,116,6,187,5,212,4,193,3,137,2,59,1,229,255,148,254, +80,253,25,252,239,250,210,249,197,248,200,247,218,246,246,245,21,245,52,244,80,243,109,242,143,241,182,240,225,239,10,239, +48,238,89,237,144,236,223,235,76,235,207,234,85,234,203,233,37,233,102,232,159,231,224,230,53,230,152,229,249,228,71,228, +124,227,156,226,186,225,231,224,46,224,145,223,13,223,157,222,71,222,17,222,2,222,26,222,83,222,166,222,12,223,131,223, +11,224,161,224,59,225,205,225,76,226,181,226,6,227,66,227,103,227,110,227,83,227,27,227,213,226,154,226,125,226,134,226, +171,226,215,226,250,226,15,227,32,227,58,227,99,227,148,227,191,227,218,227,229,227,246,227,39,228,139,228,37,229,230,229, +186,230,144,231,97,232,53,233,17,234,245,234,215,235,168,236,89,237,230,237,84,238,174,238,255,238,79,239,163,239,255,239, +102,240,224,240,114,241,31,242,230,242,192,243,164,244,135,245,95,246,36,247,216,247,128,248,39,249,216,249,155,250,111,251, +81,252,60,253,45,254,34,255,26,0,14,1,248,1,206,2,140,3,49,4,193,4,62,5,168,5,254,5,61,6,107,6, +149,6,204,6,32,7,153,7,53,8,233,8,170,9,115,10,66,11,30,12,10,13,8,14,22,15,50,16,92,17,150,18, +228,19,75,21,204,22,99,24,9,26,178,27,79,29,214,30,63,32,137,33,181,34,196,35,176,36,109,37,242,37,59,38, +84,38,79,38,62,38,46,38,24,38,243,37,181,37,97,37,10,37,197,36,160,36,150,36,150,36,143,36,121,36,89,36, +63,36,51,36,46,36,26,36,221,35,104,35,190,34,237,33,7,33,15,32,254,30,200,29,101,28,218,26,55,25,142,23, +233,21,75,20,175,18,21,17,126,15,239,13,106,12,231,10,95,9,200,7,36,6,119,4,201,2,28,1,110,255,186,253, +1,252,80,250,187,248,87,247,46,246,58,245,107,244,173,243,241,242,48,242,105,241,156,240,202,239,241,238,11,238,23,237, +16,236,245,234,198,233,138,232,78,231,35,230,27,229,60,228,129,227,220,226,63,226,164,225,18,225,149,224,55,224,248,223, +203,223,158,223,102,223,33,223,217,222,158,222,123,222,117,222,130,222,153,222,176,222,198,222,224,222,13,223,90,223,208,223, +110,224,39,225,230,225,151,226,46,227,170,227,19,228,116,228,208,228,34,229,96,229,128,229,131,229,114,229,94,229,80,229, +73,229,66,229,53,229,33,229,17,229,21,229,52,229,109,229,178,229,247,229,51,230,106,230,161,230,219,230,15,231,43,231, +28,231,221,230,116,230,242,229,104,229,224,228,91,228,216,227,86,227,220,226,119,226,52,226,27,226,46,226,109,226,213,226, +98,227,18,228,224,228,199,229,196,230,213,231,251,232,53,234,127,235,211,236,41,238,126,239,213,240,52,242,161,243,24,245, +140,246,235,247,37,249,56,250,41,251,5,252,216,252,168,253,119,254,65,255,5,0,192,0,116,1,30,2,188,2,80,3, +224,3,115,4,20,5,202,5,149,6,114,7,94,8,88,9,101,10,136,11,191,12,0,14,60,15,100,16,110,17,85,18, +27,19,188,19,54,20,129,20,152,20,122,20,47,20,192,19,59,19,170,18,18,18,119,17,219,16,63,16,166,15,17,15, +132,14,254,13,130,13,15,13,168,12,78,12,3,12,204,11,177,11,187,11,240,11,85,12,236,12,174,13,149,14,148,15, +161,16,172,17,170,18,140,19,75,20,225,20,81,21,158,21,204,21,221,21,208,21,164,21,90,21,252,20,149,20,52,20, +231,19,183,19,163,19,168,19,188,19,215,19,244,19,15,20,39,20,58,20,62,20,37,20,226,19,107,19,194,18,243,17, +15,17,40,16,71,15,106,14,144,13,182,12,232,11,53,11,174,10,93,10,63,10,66,10,83,10,94,10,87,10,56,10, +253,9,159,9,23,9,96,8,119,7,100,6,45,5,219,3,117,2,254,0,126,255,253,253,136,252,41,251,228,249,184,248, +161,247,156,246,167,245,196,244,243,243,47,243,106,242,150,241,172,240,170,239,155,238,145,237,156,236,199,235,20,235,128,234, +6,234,163,233,91,233,55,233,62,233,114,233,205,233,60,234,171,234,6,235,68,235,103,235,122,235,134,235,138,235,123,235, +74,235,241,234,121,234,250,233,146,233,85,233,71,233,91,233,128,233,175,233,237,233,75,234,214,234,141,235,93,236,46,237, +234,237,138,238,25,239,164,239,51,240,191,240,59,241,148,241,194,241,201,241,182,241,148,241,110,241,71,241,34,241,2,241, +239,240,237,240,253,240,24,241,54,241,77,241,89,241,94,241,98,241,108,241,126,241,148,241,168,241,177,241,170,241,145,241, +107,241,62,241,22,241,250,240,238,240,240,240,252,240,13,241,35,241,65,241,108,241,164,241,230,241,40,242,95,242,136,242, +166,242,194,242,232,242,30,243,102,243,186,243,23,244,127,244,244,244,123,245,22,246,188,246,99,247,254,247,131,248,238,248, +66,249,130,249,177,249,205,249,214,249,199,249,159,249,97,249,17,249,185,248,95,248,7,248,178,247,96,247,16,247,201,246, +148,246,122,246,127,246,158,246,203,246,250,246,37,247,82,247,143,247,234,247,105,248,5,249,174,249,84,250,242,250,142,251, +53,252,240,252,192,253,153,254,109,255,49,0,232,0,155,1,91,2,47,3,25,4,19,5,18,6,20,7,25,8,40,9, +71,10,124,11,201,12,42,14,154,15,18,17,136,18,244,19,82,21,161,22,225,23,22,25,58,26,72,27,57,28,12,29, +195,29,103,30,254,30,137,31,0,32,90,32,145,32,169,32,176,32,179,32,185,32,189,32,180,32,145,32,80,32,249,31, +152,31,53,31,209,30,99,30,226,29,71,29,151,28,222,27,38,27,117,26,197,25,13,25,72,24,118,23,162,22,221,21, +53,21,175,20,73,20,249,19,186,19,136,19,102,19,83,19,73,19,59,19,27,19,220,18,126,18,11,18,147,17,31,17, +174,16,52,16,161,15,240,14,40,14,96,13,174,12,27,12,153,11,9,11,70,10,59,9,230,7,88,6,167,4,222,2, +251,0,245,254,202,252,134,250,77,248,72,246,151,244,70,243,74,242,141,241,248,240,128,240,36,240,231,239,195,239,168,239, +125,239,43,239,163,238,231,237,2,237,8,236,10,235,22,234,52,233,106,232,193,231,65,231,242,230,214,230,236,230,39,231, +122,231,213,231,48,232,137,232,229,232,72,233,179,233,33,234,138,234,233,234,66,235,158,235,10,236,140,236,31,237,184,237, +69,238,193,238,43,239,139,239,231,239,57,240,115,240,132,240,100,240,24,240,176,239,61,239,197,238,68,238,173,237,251,236, +55,236,122,235,229,234,147,234,144,234,214,234,86,235,1,236,206,236,183,237,180,238,184,239,169,240,111,241,244,241,47,242, +37,242,229,241,124,241,247,240,92,240,175,239,250,238,73,238,172,237,52,237,235,236,209,236,223,236,5,237,54,237,103,237, +146,237,180,237,202,237,208,237,192,237,155,237,101,237,47,237,11,237,6,237,38,237,100,237,183,237,23,238,129,238,254,238, +145,239,60,240,241,240,158,241,46,242,151,242,218,242,2,243,24,243,35,243,36,243,26,243,8,243,251,242,5,243,53,243, +149,243,36,244,221,244,187,245,187,246,222,247,37,249,141,250,10,252,145,253,19,255,137,0,241,1,77,3,157,4,227,5, +25,7,60,8,74,9,69,10,52,11,30,12,8,13,246,13,228,14,204,15,169,16,118,17,50,18,224,18,129,19,20,20, +151,20,8,21,102,21,181,21,254,21,73,22,155,22,244,22,81,23,177,23,21,24,131,24,254,24,135,25,18,26,143,26, +239,26,41,27,62,27,58,27,44,27,30,27,24,27,30,27,50,27,90,27,158,27,253,27,115,28,242,28,107,29,209,29, +33,30,95,30,148,30,205,30,17,31,102,31,205,31,71,32,207,32,100,33,1,34,163,34,72,35,237,35,142,36,34,37, +155,37,240,37,31,38,44,38,37,38,20,38,251,37,209,37,132,37,6,37,80,36,104,35,91,34,52,33,247,31,161,30, +45,29,153,27,237,25,53,24,125,22,201,20,23,19,94,17,148,15,176,13,173,11,136,9,63,7,213,4,83,2,200,255, +69,253,215,250,135,248,90,246,82,244,124,242,232,240,168,239,198,238,61,238,253,237,234,237,238,237,245,237,243,237,223,237, +173,237,84,237,207,236,32,236,82,235,118,234,153,233,197,232,1,232,85,231,208,230,127,230,106,230,143,230,222,230,72,231, +194,231,78,232,245,232,189,233,156,234,123,235,64,236,212,236,54,237,114,237,153,237,176,237,172,237,120,237,4,237,79,236, +109,235,121,234,136,233,161,232,188,231,207,230,213,229,215,228,230,227,15,227,87,226,182,225,32,225,138,224,243,223,93,223, +205,222,70,222,201,221,89,221,1,221,205,220,199,220,245,220,85,221,220,221,127,222,52,223,243,223,182,224,112,225,25,226, +166,226,20,227,101,227,161,227,206,227,241,227,11,228,35,228,63,228,104,228,166,228,250,228,95,229,209,229,77,230,219,230, +132,231,80,232,67,233,86,234,124,235,170,236,217,237,6,239,48,240,78,241,83,242,49,243,219,243,77,244,140,244,158,244, +139,244,90,244,16,244,182,243,87,243,5,243,206,242,190,242,215,242,22,243,118,243,240,243,127,244,35,245,221,245,173,246, +151,247,157,248,192,249,255,250,89,252,199,253,70,255,207,0,91,2,225,3,84,5,167,6,207,7,198,8,145,9,55,10, +196,10,65,11,178,11,24,12,118,12,209,12,48,13,155,13,24,14,169,14,73,15,243,15,160,16,74,17,238,17,141,18, +37,19,184,19,70,20,207,20,78,21,192,21,32,22,114,22,185,22,1,23,83,23,181,23,41,24,172,24,56,25,201,25, +96,26,252,26,159,27,70,28,238,28,143,29,39,30,178,30,44,31,148,31,232,31,37,32,76,32,97,32,103,32,101,32, +94,32,89,32,92,32,112,32,160,32,237,32,84,33,199,33,54,34,145,34,211,34,0,35,33,35,62,35,88,35,103,35, +96,35,57,35,244,34,156,34,66,34,246,33,190,33,148,33,100,33,24,33,157,32,239,31,22,31,36,30,41,29,46,28, +45,27,25,26,225,24,127,23,252,21,101,20,200,18,41,17,124,15,171,13,163,11,93,9,227,6,71,4,158,1,247,254, +89,252,202,249,85,247,10,245,254,242,66,241,222,239,207,238,12,238,138,237,63,237,30,237,22,237,17,237,251,236,196,236, +106,236,246,235,116,235,241,234,112,234,243,233,127,233,33,233,237,232,246,232,65,233,197,233,108,234,29,235,197,235,94,236, +233,236,106,237,223,237,64,238,132,238,168,238,177,238,172,238,169,238,177,238,199,238,232,238,14,239,51,239,85,239,113,239, +131,239,136,239,124,239,89,239,24,239,180,238,37,238,108,237,143,236,155,235,163,234,179,233,210,232,252,231,42,231,87,230, +140,229,219,228,89,228,26,228,37,228,116,228,0,229,187,229,156,230,153,231,161,232,159,233,119,234,16,235,90,235,85,235, +12,235,148,234,1,234,101,233,206,232,71,232,222,231,159,231,150,231,201,231,55,232,218,232,162,233,127,234,96,235,54,236, +244,236,146,237,13,238,99,238,148,238,164,238,156,238,132,238,106,238,91,238,97,238,129,238,187,238,12,239,108,239,210,239, +50,240,129,240,179,240,190,240,159,240,89,240,247,239,134,239,18,239,163,238,62,238,235,237,177,237,160,237,195,237,37,238, +200,238,167,239,190,240,7,242,125,243,29,245,218,246,164,248,99,250,2,252,116,253,182,254,203,255,185,0,133,1,44,2, +176,2,19,3,97,3,170,3,253,3,102,4,234,4,133,5,50,6,230,6,152,7,60,8,201,8,57,9,140,9,198,9, +241,9,20,10,54,10,89,10,127,10,175,10,244,10,91,11,239,11,181,12,169,13,196,14,253,15,77,17,176,18,33,20, +149,21,255,22,77,24,116,25,106,26,46,27,196,27,47,28,122,28,172,28,212,28,254,28,55,29,132,29,226,29,71,30, +172,30,10,31,102,31,197,31,44,32,154,32,2,33,84,33,126,33,124,33,84,33,21,33,210,32,150,32,101,32,57,32, +10,32,215,31,169,31,143,31,155,31,213,31,57,32,183,32,58,33,173,33,8,34,73,34,117,34,141,34,142,34,109,34, +26,34,139,33,187,32,173,31,110,30,15,29,161,27,51,26,208,24,117,23,23,22,164,20,10,19,64,17,76,15,63,13, +49,11,48,9,62,7,80,5,81,3,52,1,250,254,174,252,102,250,52,248,34,246,52,244,104,242,194,240,73,239,11,238, +17,237,96,236,241,235,180,235,150,235,134,235,123,235,115,235,116,235,135,235,176,235,232,235,34,236,77,236,98,236,101,236, +107,236,146,236,239,236,137,237,87,238,66,239,56,240,51,241,59,242,92,243,154,244,235,245,52,247,90,248,72,249,248,249, +114,250,195,250,241,250,252,250,224,250,152,250,41,250,152,249,241,248,60,248,124,247,182,246,238,245,42,245,109,244,182,243, +0,243,66,242,120,241,161,240,191,239,211,238,216,237,202,236,163,235,105,234,45,233,3,232,1,231,47,230,137,229,4,229, +149,228,57,228,243,227,199,227,178,227,171,227,162,227,133,227,75,227,241,226,126,226,0,226,134,225,38,225,243,224,254,224, +80,225,228,225,177,226,165,227,178,228,210,229,1,231,56,232,104,233,126,234,99,235,10,236,116,236,173,236,194,236,189,236, +157,236,90,236,243,235,114,235,232,234,107,234,9,234,192,233,135,233,84,233,36,233,255,232,246,232,18,233,83,233,175,233, +27,234,141,234,10,235,154,235,71,236,21,237,1,238,6,239,33,240,87,241,176,242,50,244,218,245,155,247,101,249,38,251, +212,252,109,254,237,255,84,1,153,2,183,3,167,4,106,5,8,6,137,6,250,6,99,7,204,7,59,8,183,8,73,9, +243,9,183,10,145,11,119,12,99,13,74,14,42,15,254,15,198,16,134,17,65,18,249,18,179,19,110,20,40,21,222,21, +143,22,59,23,233,23,155,24,84,25,17,26,204,26,128,27,38,28,189,28,65,29,176,29,3,30,57,30,83,30,90,30, +90,30,96,30,113,30,139,30,167,30,194,30,225,30,14,31,84,31,183,31,45,32,163,32,5,33,75,33,120,33,156,33, +200,33,6,34,82,34,160,34,227,34,20,35,54,35,82,35,114,35,155,35,204,35,254,35,43,36,77,36,97,36,102,36, +93,36,65,36,13,36,185,35,61,35,146,34,184,33,181,32,151,31,110,30,71,29,37,28,5,27,219,25,160,24,79,23, +234,21,116,20,235,18,67,17,108,15,87,13,0,11,109,8,173,5,209,2,230,255,244,252,8,250,57,247,168,244,124,242, +212,240,190,239,48,239,17,239,65,239,164,239,35,240,174,240,50,241,154,241,212,241,212,241,158,241,68,241,226,240,149,240, +112,240,123,240,183,240,35,241,189,241,135,242,125,243,146,244,180,245,201,246,185,247,119,248,254,248,82,249,124,249,134,249, +118,249,79,249,22,249,209,248,139,248,76,248,31,248,11,248,14,248,39,248,77,248,120,248,159,248,185,248,191,248,165,248, +99,248,241,247,76,247,118,246,118,245,87,244,36,243,233,241,176,240,127,239,96,238,91,237,124,236,202,235,79,235,17,235, +15,235,70,235,172,235,51,236,202,236,94,237,224,237,67,238,126,238,141,238,113,238,44,238,197,237,75,237,204,236,92,236, +11,236,227,235,232,235,24,236,111,236,229,236,113,237,9,238,162,238,49,239,176,239,28,240,118,240,187,240,229,240,236,240, +194,240,103,240,225,239,72,239,178,238,51,238,209,237,130,237,57,237,233,236,143,236,48,236,213,235,128,235,45,235,212,234, +109,234,252,233,140,233,45,233,237,232,215,232,239,232,54,233,175,233,96,234,75,235,111,236,197,237,64,239,212,240,119,242, +30,244,192,245,84,247,208,248,48,250,118,251,170,252,213,253,252,254,29,0,50,1,56,2,48,3,34,4,24,5,27,6, +42,7,62,8,72,9,63,10,26,11,213,11,111,12,232,12,63,13,118,13,145,13,151,13,141,13,122,13,100,13,83,13, +80,13,101,13,154,13,240,13,100,14,239,14,137,15,49,16,229,16,164,17,104,18,40,19,222,19,133,20,34,21,188,21, +86,22,239,22,127,23,0,24,114,24,227,24,102,25,14,26,228,26,228,27,255,28,37,30,70,31,90,32,89,33,63,34, +5,35,168,35,37,36,126,36,183,36,212,36,218,36,202,36,172,36,134,36,97,36,66,36,40,36,20,36,6,36,7,36, +36,36,101,36,198,36,56,37,160,37,232,37,4,38,251,37,218,37,172,37,113,37,32,37,170,36,9,36,63,35,87,34, +89,33,72,32,30,31,210,29,92,28,188,26,245,24,7,23,246,20,196,18,122,16,39,14,220,11,164,9,130,7,107,5, +82,3,52,1,21,255,7,253,30,251,103,249,233,247,163,246,150,245,200,244,62,244,252,243,252,243,47,244,128,244,222,244, +57,245,138,245,201,245,240,245,253,245,242,245,217,245,189,245,170,245,168,245,189,245,240,245,79,246,234,246,201,247,228,248, +36,250,100,251,133,252,120,253,58,254,212,254,74,255,146,255,160,255,104,255,239,254,75,254,151,253,231,252,64,252,151,251, +223,250,20,250,62,249,104,248,150,247,188,246,192,245,138,244,18,243,95,241,135,239,164,237,200,235,253,233,74,232,181,230, +75,229,22,228,24,227,75,226,164,225,24,225,167,224,83,224,35,224,24,224,44,224,82,224,129,224,177,224,221,224,255,224, +11,225,247,224,190,224,102,224,5,224,181,223,142,223,159,223,235,223,114,224,52,225,48,226,102,227,203,228,75,230,202,231, +47,233,100,234,95,235,28,236,152,236,208,236,193,236,106,236,213,235,19,235,56,234,88,233,128,232,187,231,13,231,122,230, +3,230,165,229,88,229,16,229,195,228,108,228,8,228,153,227,30,227,153,226,10,226,122,225,250,224,162,224,138,224,199,224, +95,225,81,226,145,227,18,229,199,230,167,232,171,234,198,236,233,238,2,241,252,242,200,244,93,246,192,247,250,248,28,250, +51,251,69,252,84,253,94,254,99,255,108,0,135,1,196,2,43,4,186,5,94,7,0,9,137,10,234,11,35,13,56,14, +50,15,19,16,221,16,140,17,33,18,160,18,17,19,125,19,239,19,108,20,246,20,141,21,46,22,217,22,141,23,74,24, +18,25,229,25,193,26,162,27,131,28,97,29,59,30,21,31,243,31,215,32,189,33,156,34,104,35,27,36,180,36,57,37, +176,37,33,38,139,38,235,38,59,39,120,39,164,39,195,39,215,39,225,39,223,39,207,39,178,39,143,39,115,39,106,39, +126,39,178,39,255,39,89,40,182,40,14,41,95,41,170,41,238,41,34,42,56,42,32,42,208,41,74,41,153,40,207,39, +248,38,19,38,21,37,236,35,140,34,247,32,55,31,94,29,117,27,125,25,110,23,61,21,231,18,114,16,232,13,78,11, +168,8,246,5,59,3,134,0,241,253,154,251,152,249,248,247,181,246,196,245,19,245,151,244,67,244,15,244,239,243,211,243, +176,243,124,243,55,243,226,242,134,242,41,242,208,241,130,241,70,241,39,241,47,241,103,241,214,241,125,242,87,243,87,244, +106,245,125,246,126,247,104,248,59,249,251,249,168,250,60,251,169,251,228,251,238,251,212,251,173,251,137,251,106,251,65,251, +244,250,112,250,180,249,208,248,220,247,231,246,239,245,228,244,182,243,95,242,235,240,113,239,4,238,166,236,75,235,227,233, +104,232,233,230,134,229,102,228,160,227,55,227,24,227,42,227,89,227,155,227,241,227,93,228,214,228,73,229,153,229,172,229, +116,229,246,228,71,228,133,227,206,226,55,226,204,225,142,225,122,225,143,225,202,225,45,226,176,226,74,227,232,227,121,228, +242,228,80,229,154,229,216,229,15,230,61,230,91,230,98,230,83,230,54,230,26,230,7,230,1,230,255,229,242,229,209,229, +149,229,67,229,229,228,132,228,40,228,212,227,139,227,78,227,34,227,12,227,16,227,45,227,100,227,182,227,36,228,180,228, +107,229,80,230,99,231,160,232,2,234,128,235,21,237,191,238,124,240,76,242,42,244,12,246,228,247,166,249,70,251,195,252, +32,254,103,255,164,0,223,1,31,3,102,4,179,5,5,7,88,8,167,9,237,10,35,12,70,13,85,14,80,15,53,16, +3,17,183,17,81,18,208,18,60,19,151,19,229,19,36,20,80,20,106,20,122,20,144,20,189,20,15,21,134,21,20,22, +167,22,47,23,162,23,5,24,97,24,193,24,45,25,165,25,41,26,184,26,83,27,251,27,175,28,107,29,44,30,240,30, +187,31,147,32,123,33,117,34,121,35,125,36,116,37,87,38,36,39,220,39,129,40,21,41,153,41,11,42,105,42,176,42, +224,42,250,42,2,43,254,42,244,42,235,42,232,42,238,42,255,42,28,43,73,43,133,43,204,43,18,44,66,44,70,44, +7,44,120,43,150,42,106,41,2,40,108,38,179,36,219,34,227,32,199,30,134,28,41,26,189,23,91,21,24,19,2,17, +27,15,85,13,156,11,221,9,15,8,54,6,94,4,148,2,218,0,46,255,137,253,233,251,89,250,234,248,176,247,179,246, +239,245,82,245,199,244,69,244,206,243,114,243,68,243,78,243,141,243,242,243,104,244,225,244,89,245,217,245,115,246,57,247, +51,248,92,249,167,250,0,252,90,253,176,254,6,0,101,1,212,2,80,4,199,5,36,7,77,8,50,9,203,9,25,10, +29,10,217,9,74,9,108,8,67,7,221,5,77,4,173,2,18,1,137,255,22,254,185,252,111,251,56,250,23,249,15,248, +36,247,81,246,141,245,201,244,239,243,237,242,184,241,79,240,188,238,22,237,119,235,245,233,159,232,123,231,135,230,188,229, +23,229,152,228,63,228,12,228,247,227,241,227,229,227,189,227,107,227,236,226,75,226,157,225,252,224,128,224,54,224,32,224, +57,224,123,224,228,224,121,225,61,226,48,227,72,228,111,229,137,230,124,231,53,232,175,232,238,232,252,232,224,232,158,232, +52,232,157,231,220,230,254,229,25,229,74,228,174,227,86,227,70,227,116,227,206,227,68,228,205,228,109,229,40,230,1,231, +239,231,225,232,197,233,144,234,72,235,255,235,204,236,190,237,217,238,16,240,86,241,158,242,233,243,60,245,161,246,27,248, +165,249,50,251,177,252,20,254,77,255,88,0,51,1,230,1,126,2,12,3,159,3,65,4,240,4,170,5,105,6,50,7, +13,8,4,9,24,10,63,11,95,12,94,13,41,14,186,14,28,15,95,15,147,15,189,15,222,15,247,15,11,16,40,16, +97,16,200,16,104,17,65,18,76,19,119,20,176,21,227,22,7,24,20,25,11,26,236,26,182,27,98,28,234,28,73,29, +132,29,174,29,225,29,53,30,184,30,100,31,40,32,240,32,178,33,111,34,52,35,12,36,248,36,233,37,198,38,120,39, +241,39,54,40,88,40,107,40,128,40,155,40,187,40,216,40,239,40,1,41,22,41,53,41,101,41,166,41,244,41,73,42, +156,42,227,42,20,43,32,43,247,42,138,42,206,41,196,40,120,39,253,37,104,36,199,34,31,33,108,31,167,29,205,27, +228,25,250,23,32,22,96,20,192,18,61,17,209,15,116,14,26,13,183,11,59,10,151,8,201,6,214,4,211,2,219,0, +5,255,95,253,238,251,175,250,163,249,206,248,53,248,213,247,165,247,144,247,128,247,105,247,74,247,46,247,32,247,35,247, +49,247,64,247,72,247,80,247,106,247,177,247,57,248,9,249,27,250,91,251,182,252,25,254,120,255,204,0,13,2,49,3, +41,4,229,4,87,5,118,5,63,5,186,4,242,3,245,2,205,1,129,0,21,255,140,253,240,251,81,250,190,248,69,247, +234,245,166,244,108,243,48,242,237,240,166,239,98,238,38,237,241,235,188,234,129,233,57,232,226,230,127,229,21,228,169,226, +71,225,253,223,221,222,246,221,82,221,238,220,188,220,166,220,147,220,115,220,60,220,236,219,133,219,14,219,145,218,24,218, +178,217,106,217,70,217,70,217,104,217,174,217,28,218,190,218,158,219,189,220,17,222,131,223,246,224,77,226,119,227,107,228, +42,229,180,229,11,230,45,230,21,230,196,229,63,229,148,228,212,227,22,227,114,226,249,225,183,225,170,225,202,225,9,226, +86,226,167,226,250,226,80,227,174,227,21,228,131,228,241,228,88,229,185,229,27,230,142,230,39,231,243,231,249,232,49,234, +140,235,249,236,109,238,233,239,116,241,21,243,203,244,134,246,45,248,162,249,210,250,187,251,108,252,0,253,147,253,62,254, +15,255,12,0,57,1,148,2,25,4,186,5,101,7,6,9,141,10,246,11,71,13,137,14,195,15,246,16,21,18,20,19, +233,19,153,20,49,21,198,21,105,22,37,23,248,23,217,24,189,25,158,26,125,27,98,28,84,29,88,30,102,31,113,32, +101,33,50,34,212,34,79,35,178,35,14,36,108,36,205,36,42,37,126,37,196,37,4,38,70,38,151,38,254,38,126,39, +20,40,182,40,89,41,235,41,92,42,158,42,176,42,160,42,137,42,134,42,165,42,228,42,48,43,113,43,158,43,191,43, +245,43,93,44,11,45,242,45,240,46,216,47,130,48,222,48,238,48,193,48,99,48,215,47,19,47,10,46,178,44,9,43, +28,41,253,38,194,36,128,34,67,32,16,30,226,27,178,25,121,23,54,21,243,18,189,16,159,14,156,12,168,10,178,8, +170,6,138,4,90,2,43,0,14,254,12,252,41,250,103,248,204,246,102,245,70,244,117,243,242,242,169,242,131,242,107,242, +90,242,85,242,105,242,158,242,239,242,74,243,150,243,192,243,193,243,163,243,126,243,108,243,133,243,213,243,92,244,18,245, +237,245,228,246,240,247,9,249,34,250,40,251,6,252,165,252,246,252,242,252,158,252,0,252,29,251,251,249,160,248,21,247, +109,245,188,243,23,242,137,240,17,239,168,237,73,236,241,234,167,233,113,232,82,231,68,230,56,229,36,228,255,226,206,225, +152,224,97,223,43,222,241,220,174,219,102,218,35,217,248,215,245,214,38,214,143,213,40,213,230,212,185,212,146,212,95,212, +25,212,189,211,88,211,255,210,205,210,213,210,32,211,170,211,106,212,84,213,98,214,146,215,230,216,91,218,238,219,153,221, +82,223,13,225,184,226,57,228,116,229,78,230,190,230,202,230,138,230,28,230,153,229,13,229,122,228,220,227,53,227,143,226, +251,225,136,225,63,225,28,225,27,225,50,225,95,225,158,225,237,225,71,226,163,226,250,226,76,227,158,227,254,227,120,228, +25,229,234,229,239,230,39,232,145,233,38,235,220,236,171,238,137,240,111,242,89,244,63,246,23,248,214,249,112,251,225,252, +49,254,110,255,170,0,242,1,72,3,166,4,5,6,101,7,205,8,75,10,230,11,152,13,79,15,238,16,96,18,153,19, +160,20,135,21,99,22,62,23,24,24,231,24,157,25,52,26,175,26,26,27,129,27,240,27,105,28,231,28,97,29,209,29, +54,30,147,30,239,30,74,31,162,31,239,31,38,32,68,32,76,32,78,32,94,32,142,32,236,32,122,33,45,34,247,34, +200,35,144,36,74,37,243,37,142,38,29,39,164,39,36,40,155,40,8,41,104,41,188,41,2,42,59,42,105,42,141,42, +172,42,203,42,244,42,49,43,142,43,17,44,190,44,138,45,101,46,51,47,218,47,70,48,108,48,77,48,242,47,100,47, +164,46,170,45,101,44,199,42,207,40,138,38,21,36,144,33,17,31,160,28,49,26,177,23,15,21,74,18,112,15,152,12, +219,9,67,7,203,4,101,2,255,255,144,253,28,251,178,248,104,246,81,244,120,242,224,240,132,239,95,238,110,237,176,236, +41,236,219,235,197,235,226,235,39,236,136,236,246,236,104,237,211,237,52,238,136,238,211,238,31,239,118,239,228,239,112,240, +24,241,211,241,154,242,100,243,52,244,19,245,7,246,20,247,47,248,73,249,78,250,46,251,228,251,107,252,191,252,215,252, +162,252,21,252,47,251,254,249,157,248,36,247,162,245,24,244,124,242,200,240,254,238,50,237,125,235,244,233,156,232,105,231, +72,230,41,229,6,228,230,226,213,225,217,224,241,223,16,223,43,222,59,221,72,220,99,219,161,218,17,218,182,217,138,217, +126,217,130,217,137,217,140,217,139,217,136,217,138,217,152,217,185,217,246,217,89,218,237,218,190,219,214,220,56,222,227,223, +198,225,204,227,218,229,217,231,187,233,122,235,21,237,139,238,209,239,215,240,138,241,222,241,216,241,137,241,12,241,123,240, +226,239,65,239,140,238,181,237,188,236,171,235,154,234,161,233,213,232,58,232,206,231,131,231,78,231,41,231,20,231,27,231, +74,231,173,231,77,232,37,233,44,234,81,235,134,236,198,237,19,239,120,240,252,241,159,243,82,245,5,247,165,248,46,250, +164,251,25,253,152,254,38,0,185,1,66,3,180,4,11,6,75,7,129,8,182,9,239,10,41,12,91,13,126,14,139,15, +126,16,83,17,11,18,169,18,50,19,173,19,34,20,149,20,3,21,108,21,204,21,38,22,125,22,215,22,56,23,161,23, +19,24,141,24,16,25,155,25,43,26,189,26,77,27,221,27,117,28,27,29,212,29,155,30,100,31,33,32,201,32,96,33, +239,33,128,34,22,35,168,35,46,36,162,36,14,37,128,37,7,38,162,38,66,39,208,39,60,40,135,40,198,40,22,41, +138,41,34,42,196,42,83,43,181,43,232,43,255,43,26,44,83,44,179,44,50,45,180,45,26,46,74,46,60,46,248,45, +149,45,46,45,215,44,145,44,74,44,230,43,71,43,94,42,46,41,199,39,59,38,145,36,199,34,210,32,170,30,79,28, +205,25,50,23,136,20,211,17,24,15,93,12,177,9,35,7,189,4,125,2,87,0,61,254,46,252,52,250,102,248,212,246, +131,245,105,244,124,243,181,242,30,242,198,241,180,241,226,241,55,242,147,242,228,242,42,243,116,243,214,243,86,244,233,244, +121,245,241,245,76,246,146,246,211,246,28,247,104,247,173,247,221,247,245,247,252,247,3,248,25,248,69,248,137,248,224,248, +70,249,185,249,53,250,178,250,33,251,114,251,154,251,147,251,94,251,252,250,107,250,164,249,158,248,82,247,197,245,3,244, +30,242,40,240,45,238,55,236,75,234,110,232,166,230,254,228,126,227,42,226,2,225,255,223,20,223,50,222,75,221,91,220, +109,219,151,218,247,217,168,217,185,217,39,218,220,218,184,219,158,220,117,221,55,222,228,222,131,223,26,224,172,224,55,225, +187,225,55,226,173,226,33,227,150,227,16,228,142,228,21,229,167,229,73,230,253,230,195,231,145,232,88,233,8,234,148,234, +244,234,42,235,63,235,59,235,38,235,2,235,207,234,139,234,51,234,199,233,70,233,176,232,4,232,65,231,110,230,147,229, +186,228,240,227,61,227,167,226,50,226,230,225,205,225,242,225,96,226,23,227,21,228,79,229,189,230,87,232,24,234,251,235, +248,237,4,240,21,242,34,244,43,246,51,248,64,250,81,252,98,254,100,0,70,2,249,3,116,5,180,6,194,7,173,8, +135,9,96,10,69,11,55,12,49,13,40,14,17,15,232,15,179,16,119,17,59,18,253,18,177,19,72,20,187,20,14,21, +81,21,153,21,246,21,105,22,232,22,99,23,208,23,54,24,166,24,57,25,255,25,246,26,11,28,29,29,16,30,208,30, +91,31,188,31,2,32,62,32,120,32,180,32,242,32,47,33,108,33,167,33,227,33,31,34,93,34,157,34,225,34,41,35, +118,35,196,35,14,36,77,36,124,36,154,36,169,36,175,36,181,36,191,36,211,36,240,36,21,37,61,37,104,37,149,37, +197,37,248,37,48,38,112,38,184,38,9,39,90,39,155,39,182,39,144,39,20,39,54,38,253,36,119,35,184,33,202,31, +175,29,101,27,231,24,60,22,116,19,166,16,230,13,62,11,173,8,46,6,193,3,105,1,47,255,26,253,39,251,76,249, +127,247,185,245,0,244,99,242,242,240,184,239,186,238,247,237,114,237,50,237,63,237,146,237,24,238,172,238,42,239,120,239, +148,239,143,239,130,239,128,239,138,239,148,239,147,239,128,239,101,239,86,239,101,239,157,239,3,240,148,240,79,241,50,242, +58,243,92,244,137,245,172,246,183,247,161,248,102,249,5,250,113,250,156,250,114,250,236,249,14,249,235,247,159,246,66,245, +231,243,152,242,94,241,60,240,51,239,64,238,93,237,130,236,176,235,234,234,56,234,155,233,11,233,116,232,195,231,238,230, +255,229,11,229,43,228,109,227,206,226,69,226,203,225,105,225,54,225,75,225,176,225,88,226,31,227,217,227,101,228,179,228, +196,228,163,228,93,228,0,228,155,227,66,227,10,227,5,227,53,227,145,227,10,228,150,228,57,229,255,229,244,230,26,232, +98,233,174,234,228,235,241,236,205,237,115,238,222,238,1,239,205,238,61,238,89,237,58,236,250,234,175,233,94,232,4,231, +158,229,50,228,210,226,154,225,159,224,239,223,136,223,97,223,114,223,182,223,43,224,208,224,159,225,145,226,152,227,175,228, +210,229,7,231,85,232,194,233,81,235,255,236,197,238,155,240,119,242,83,244,44,246,1,248,210,249,155,251,83,253,232,254, +77,0,120,1,106,2,49,3,222,3,127,4,24,5,164,5,23,6,109,6,168,6,214,6,10,7,82,7,180,7,38,8, +157,8,9,9,98,9,171,9,234,9,39,10,103,10,171,10,239,10,49,11,113,11,182,11,6,12,104,12,225,12,112,13, +19,14,199,14,140,15,97,16,70,17,56,18,48,19,36,20,8,21,212,21,133,22,30,23,165,23,35,24,156,24,21,25, +141,25,3,26,122,26,245,26,119,27,4,28,152,28,47,29,191,29,68,30,192,30,57,31,187,31,72,32,217,32,93,33, +190,33,239,33,244,33,225,33,209,33,218,33,2,34,64,34,130,34,187,34,232,34,17,35,63,35,117,35,168,35,197,35, +188,35,127,35,10,35,91,34,110,33,58,32,184,30,232,28,213,26,144,24,44,22,177,19,32,17,121,14,195,11,18,9, +129,6,44,4,29,2,82,0,189,254,80,253,4,252,216,250,204,249,216,248,233,247,237,246,217,245,178,244,139,243,124,242, +149,241,222,240,83,240,242,239,186,239,172,239,203,239,22,240,132,240,14,241,172,241,90,242,16,243,193,243,90,244,197,244, +246,244,239,244,193,244,133,244,81,244,51,244,50,244,82,244,151,244,7,245,160,245,88,246,25,247,208,247,110,248,240,248, +91,249,177,249,234,249,247,249,201,249,88,249,168,248,199,247,190,246,144,245,59,244,190,242,37,241,134,239,250,237,141,236, +58,235,241,233,162,232,78,231,6,230,229,228,251,227,68,227,170,226,19,226,109,225,191,224,26,224,146,223,43,223,216,222, +132,222,30,222,163,221,31,221,165,220,66,220,249,219,200,219,168,219,148,219,138,219,138,219,148,219,173,219,223,219,56,220, +202,220,155,221,166,222,218,223,33,225,107,226,181,227,5,229,93,230,184,231,7,233,51,234,37,235,212,235,60,236,94,236, +60,236,210,235,36,235,58,234,42,233,13,232,249,230,252,229,25,229,77,228,155,227,8,227,160,226,103,226,93,226,116,226, +157,226,205,226,2,227,69,227,162,227,38,228,220,228,197,229,225,230,42,232,154,233,35,235,189,236,95,238,7,240,185,241, +118,243,60,245,253,246,169,248,49,250,143,251,202,252,239,253,8,255,22,0,13,1,224,1,138,2,22,3,155,3,51,4, +238,4,205,5,191,6,178,7,151,8,112,9,73,10,48,11,47,12,64,13,87,14,100,15,93,16,65,17,20,18,223,18, +165,19,102,20,30,21,201,21,105,22,2,23,157,23,65,24,247,24,193,25,158,26,133,27,107,28,63,29,249,29,153,30, +48,31,212,31,154,32,136,33,140,34,134,35,80,36,216,36,36,37,83,37,142,37,238,37,113,38,247,38,88,39,119,39, +85,39,15,39,209,38,191,38,231,38,60,39,162,39,255,39,70,40,122,40,172,40,236,40,71,41,188,41,64,42,194,42, +41,43,97,43,91,43,19,43,146,42,231,41,31,41,59,40,48,39,237,37,97,36,139,34,123,32,74,30,14,28,208,25, +140,23,53,21,194,18,55,16,162,13,24,11,169,8,89,6,36,4,255,1,226,255,201,253,184,251,185,249,221,247,54,246, +216,244,207,243,29,243,179,242,119,242,73,242,22,242,214,241,145,241,82,241,36,241,4,241,234,240,204,240,165,240,121,240, +79,240,47,240,27,240,20,240,26,240,50,240,98,240,170,240,2,241,90,241,158,241,197,241,209,241,209,241,213,241,229,241, +253,241,17,242,21,242,9,242,244,241,228,241,219,241,206,241,165,241,72,241,172,240,214,239,220,238,217,237,224,236,243,235, +8,235,20,234,16,233,254,231,235,230,229,229,244,228,27,228,86,227,160,226,249,225,101,225,237,224,150,224,99,224,81,224, +90,224,118,224,160,224,213,224,22,225,95,225,170,225,237,225,24,226,32,226,253,225,181,225,86,225,248,224,174,224,137,224, +141,224,188,224,18,225,142,225,47,226,243,226,209,227,185,228,152,229,94,230,4,231,144,231,12,232,132,232,247,232,92,233, +165,233,196,233,183,233,136,233,71,233,5,233,202,232,151,232,98,232,35,232,209,231,108,231,247,230,121,230,252,229,140,229, +50,229,247,228,224,228,237,228,29,229,116,229,244,229,165,230,138,231,161,232,222,233,52,235,150,236,2,238,130,239,37,241, +242,242,229,244,234,246,226,248,180,250,85,252,206,253,54,255,161,0,28,2,161,3,26,5,110,6,136,7,100,8,13,9, +156,9,41,10,198,10,120,11,54,12,244,12,168,13,82,14,255,14,185,15,137,16,101,17,59,18,242,18,125,19,224,19, +50,20,141,20,4,21,152,21,54,22,200,22,65,23,167,23,19,24,161,24,94,25,71,26,68,27,56,28,17,29,204,29, +116,30,23,31,186,31,88,32,228,32,84,33,170,33,240,33,56,34,146,34,5,35,138,35,26,36,167,36,43,37,164,37, +18,38,115,38,197,38,2,39,39,39,49,39,36,39,4,39,216,38,166,38,114,38,63,38,19,38,246,37,240,37,6,38, +58,38,133,38,218,38,45,39,116,39,174,39,224,39,16,40,62,40,99,40,112,40,80,40,243,39,83,39,110,38,73,37, +235,35,87,34,143,32,149,30,104,28,14,26,141,23,237,20,60,18,140,15,238,12,121,10,60,8,66,6,138,4,13,3, +188,1,134,0,92,255,51,254,2,253,200,251,137,250,75,249,25,248,252,246,252,245,32,245,107,244,228,243,141,243,104,243, +111,243,153,243,214,243,24,244,86,244,139,244,178,244,196,244,185,244,134,244,43,244,179,243,53,243,206,242,146,242,137,242, +174,242,249,242,104,243,3,244,217,244,242,245,70,247,186,248,39,250,109,251,117,252,57,253,188,253,254,253,248,253,156,253, +225,252,201,251,99,250,203,248,26,247,97,245,168,243,237,241,46,240,107,238,173,236,0,235,119,233,32,232,9,231,53,230, +153,229,35,229,179,228,49,228,140,227,198,226,241,225,37,225,119,224,239,223,140,223,70,223,23,223,250,222,238,222,242,222, +3,223,27,223,57,223,95,223,150,223,225,223,63,224,166,224,10,225,104,225,197,225,53,226,204,226,150,227,144,228,173,229, +214,230,254,231,30,233,57,234,86,235,114,236,132,237,121,238,61,239,190,239,244,239,221,239,126,239,224,238,14,238,21,237, +254,235,210,234,153,233,93,232,42,231,15,230,28,229,95,228,225,227,161,227,155,227,202,227,43,228,189,228,131,229,124,230, +165,231,245,232,95,234,216,235,87,237,216,238,87,240,213,241,84,243,214,244,97,246,244,247,139,249,29,251,153,252,239,253, +21,255,9,0,210,0,122,1,13,2,148,2,16,3,130,3,237,3,89,4,210,4,104,5,36,6,9,7,17,8,45,9, +77,10,103,11,120,12,134,13,152,14,176,15,198,16,204,17,177,18,107,19,254,19,119,20,234,20,102,21,239,21,130,22, +18,23,154,23,24,24,149,24,28,25,178,25,84,26,249,26,151,27,39,28,169,28,36,29,161,29,35,30,174,30,63,31, +212,31,102,32,240,32,104,33,201,33,15,34,61,34,93,34,122,34,154,34,184,34,200,34,190,34,148,34,82,34,16,34, +232,33,239,33,39,34,131,34,238,34,81,35,165,35,238,35,56,36,139,36,231,36,61,37,119,37,128,37,76,37,221,36, +61,36,117,35,137,34,117,33,45,32,166,30,224,28,227,26,196,24,151,22,106,20,63,18,14,16,204,13,116,11,16,9, +178,6,108,4,77,2,85,0,121,254,172,252,233,250,54,249,160,247,54,246,1,245,1,244,48,243,136,242,7,242,175,241, +128,241,114,241,117,241,119,241,106,241,71,241,20,241,216,240,153,240,87,240,14,240,191,239,115,239,56,239,29,239,45,239, +101,239,191,239,51,240,189,240,96,241,32,242,250,242,230,243,215,244,193,245,160,246,113,247,49,248,213,248,71,249,114,249, +70,249,197,248,2,248,27,247,39,246,53,245,68,244,75,243,66,242,40,241,5,240,226,238,198,237,181,236,171,235,165,234, +161,233,161,232,171,231,194,230,234,229,34,229,106,228,193,227,39,227,158,226,43,226,215,225,169,225,163,225,190,225,234,225, +16,226,27,226,255,225,190,225,100,225,254,224,152,224,54,224,215,223,124,223,42,223,237,222,215,222,246,222,80,223,228,223, +167,224,141,225,135,226,138,227,141,228,140,229,134,230,122,231,101,232,63,233,248,233,126,234,193,234,188,234,115,234,242,233, +71,233,120,232,133,231,106,230,43,229,213,227,127,226,70,225,64,224,121,223,240,222,160,222,129,222,146,222,214,222,85,223, +18,224,10,225,54,226,140,227,2,229,143,230,45,232,216,233,137,235,64,237,251,238,186,240,124,242,67,244,10,246,206,247, +136,249,50,251,203,252,82,254,202,255,51,1,142,2,210,3,248,4,249,5,213,6,147,7,63,8,231,8,146,9,66,10, +242,10,159,11,76,12,253,12,182,13,117,14,47,15,216,15,104,16,227,16,90,17,221,17,119,18,36,19,213,19,120,20, +8,21,143,21,33,22,211,22,171,23,161,24,165,25,170,26,174,27,187,28,221,29,25,31,103,32,183,33,246,34,23,36, +24,37,254,37,208,38,145,39,68,40,228,40,109,41,219,41,38,42,76,42,78,42,53,42,18,42,245,41,231,41,229,41, +227,41,214,41,184,41,143,41,104,41,79,41,72,41,78,41,87,41,93,41,97,41,107,41,131,41,170,41,222,41,26,42, +91,42,160,42,228,42,24,43,32,43,221,42,51,42,25,41,153,39,200,37,188,35,127,33,20,31,120,28,174,25,195,22, +202,19,216,16,247,13,48,11,132,8,250,5,155,3,114,1,131,255,203,253,63,252,210,250,126,249,65,248,32,247,27,246, +49,245,92,244,152,243,229,242,73,242,203,241,111,241,51,241,17,241,255,240,247,240,244,240,244,240,246,240,250,240,0,241, +6,241,13,241,16,241,11,241,251,240,221,240,181,240,135,240,94,240,64,240,51,240,61,240,101,240,186,240,72,241,24,242, +40,243,102,244,179,245,236,246,245,247,187,248,55,249,105,249,84,249,249,248,84,248,101,247,41,246,169,244,241,242,21,241, +43,239,72,237,124,235,208,233,74,232,234,230,181,229,175,228,221,227,65,227,213,226,138,226,80,226,29,226,236,225,196,225, +175,225,180,225,214,225,20,226,103,226,206,226,69,227,199,227,74,228,190,228,19,229,64,229,65,229,31,229,226,228,149,228, +62,228,229,227,148,227,89,227,64,227,82,227,142,227,239,227,113,228,20,229,220,229,202,230,214,231,234,232,236,233,196,234, +108,235,232,235,68,236,134,236,167,236,150,236,69,236,181,235,248,234,40,234,91,233,152,232,214,231,8,231,45,230,83,229, +150,228,15,228,205,227,199,227,235,227,34,228,99,228,179,228,34,229,194,229,154,230,171,231,237,232,84,234,218,235,119,237, +42,239,237,240,189,242,152,244,124,246,101,248,80,250,51,252,4,254,180,255,57,1,139,2,167,3,145,4,80,5,236,5, +112,6,230,6,85,7,198,7,61,8,192,8,86,9,0,10,189,10,135,11,84,12,29,13,219,13,146,14,72,15,9,16, +215,16,178,17,145,18,109,19,66,20,20,21,236,21,208,22,197,23,194,24,189,25,171,26,134,27,82,28,23,29,220,29, +160,30,91,31,3,32,144,32,2,33,104,33,213,33,89,34,248,34,171,35,91,36,245,36,107,37,187,37,236,37,11,38, +30,38,42,38,44,38,37,38,25,38,15,38,15,38,33,38,70,38,128,38,210,38,64,39,205,39,116,40,42,41,222,41, +127,42,8,43,126,43,236,43,86,44,187,44,14,45,60,45,56,45,254,44,142,44,236,43,22,43,7,42,186,40,47,39, +107,37,121,35,99,33,45,31,216,28,100,26,217,23,69,21,182,18,57,16,210,13,129,11,68,9,31,7,24,5,51,3, +109,1,188,255,22,254,122,252,244,250,153,249,125,248,170,247,27,247,195,246,146,246,128,246,136,246,166,246,207,246,241,246, +248,246,221,246,167,246,108,246,65,246,50,246,59,246,78,246,96,246,111,246,137,246,192,246,34,247,177,247,99,248,41,249, +246,249,199,250,157,251,124,252,99,253,78,254,50,255,2,0,173,0,35,1,86,1,59,1,209,0,30,0,45,255,10,254, +187,252,66,251,156,249,205,247,225,245,236,243,2,242,52,240,140,238,12,237,180,235,136,234,138,233,187,232,20,232,138,231, +16,231,156,230,45,230,199,229,109,229,29,229,211,228,134,228,53,228,227,227,151,227,87,227,32,227,235,226,177,226,110,226, +43,226,240,225,198,225,171,225,152,225,132,225,113,225,110,225,145,225,239,225,141,226,102,227,101,228,125,229,166,230,230,231, +68,233,192,234,75,236,202,237,32,239,54,240,2,241,133,241,194,241,180,241,80,241,135,240,87,239,202,237,254,235,23,234, +52,232,109,230,201,228,77,227,253,225,227,224,13,224,140,223,101,223,148,223,16,224,202,224,181,225,200,226,252,227,75,229, +171,230,20,232,131,233,249,234,126,236,24,238,200,239,138,241,82,243,20,245,202,246,115,248,18,250,171,251,62,253,196,254, +50,0,128,1,169,2,176,3,156,4,121,5,80,6,38,7,253,7,211,8,173,9,144,10,136,11,161,12,226,13,71,15, +194,16,59,18,159,19,223,20,248,21,243,22,217,23,175,24,116,25,32,26,174,26,30,27,124,27,218,27,74,28,216,28, +133,29,77,30,38,31,7,32,237,32,214,33,197,34,191,35,196,36,212,37,231,38,240,39,223,40,164,41,60,42,176,42, +20,43,128,43,4,44,162,44,76,45,239,45,122,46,238,46,85,47,193,47,58,48,190,48,57,49,153,49,207,49,221,49, +210,49,192,49,183,49,187,49,200,49,213,49,217,49,213,49,201,49,185,49,161,49,119,49,44,49,175,48,241,47,231,46, +140,45,227,43,241,41,196,39,102,37,228,34,68,32,136,29,174,26,183,23,167,20,137,17,110,14,105,11,133,8,199,5, +42,3,166,0,50,254,208,251,136,249,106,247,133,245,229,243,137,242,111,241,144,240,233,239,122,239,65,239,58,239,85,239, +127,239,161,239,174,239,166,239,151,239,149,239,175,239,235,239,66,240,165,240,10,241,107,241,203,241,47,242,153,242,4,243, +101,243,177,243,226,243,251,243,6,244,17,244,36,244,69,244,114,244,168,244,226,244,28,245,79,245,116,245,127,245,104,245, +40,245,192,244,52,244,138,243,195,242,223,241,217,240,174,239,99,238,6,237,171,235,100,234,62,233,57,232,80,231,124,230, +182,229,4,229,110,228,252,227,179,227,143,227,137,227,151,227,184,227,239,227,68,228,189,228,85,229,3,230,181,230,89,231, +229,231,82,232,158,232,202,232,215,232,199,232,162,232,115,232,77,232,65,232,91,232,158,232,6,233,139,233,35,234,201,234, +119,235,40,236,212,236,112,237,243,237,86,238,155,238,196,238,215,238,212,238,185,238,129,238,41,238,179,237,36,237,128,236, +199,235,244,234,0,234,231,232,171,231,91,230,11,229,210,227,193,226,227,225,61,225,207,224,158,224,178,224,19,225,201,225, +210,226,33,228,162,229,66,231,239,232,165,234,100,236,53,238,30,240,29,242,44,244,67,246,88,248,106,250,123,252,144,254, +171,0,198,2,213,4,199,6,139,8,27,10,118,11,166,12,184,13,181,14,162,15,122,16,51,17,194,17,31,18,75,18, +78,18,53,18,16,18,237,17,213,17,203,17,207,17,222,17,248,17,29,18,79,18,142,18,214,18,32,19,98,19,151,19, +191,19,226,19,13,20,77,20,166,20,20,21,145,21,26,22,180,22,116,23,113,24,184,25,71,27,1,29,188,30,81,32, +166,33,183,34,148,35,79,36,245,36,130,37,236,37,42,38,65,38,69,38,77,38,110,38,174,38,6,39,103,39,198,39, +33,40,127,40,233,40,93,41,209,41,51,42,113,42,128,42,98,42,33,42,206,41,120,41,40,41,229,40,173,40,119,40, +55,40,222,39,98,39,189,38,241,37,0,37,239,35,186,34,86,33,185,31,221,29,196,27,118,25,251,22,87,20,137,17, +144,14,114,11,67,8,36,5,57,2,159,255,101,253,133,251,239,249,145,248,94,247,82,246,111,245,185,244,50,244,216,243, +167,243,150,243,157,243,180,243,208,243,235,243,3,244,24,244,50,244,89,244,149,244,238,244,104,245,5,246,196,246,156,247, +125,248,79,249,251,249,113,250,170,250,174,250,137,250,74,250,249,249,153,249,43,249,180,248,62,248,221,247,161,247,150,247, +188,247,12,248,122,248,248,248,121,249,238,249,71,250,111,250,86,250,243,249,71,249,92,248,63,247,252,245,152,244,25,243, +133,241,236,239,99,238,0,237,212,235,229,234,50,234,183,233,115,233,103,233,149,233,245,233,118,234,1,235,123,235,217,235, +26,236,74,236,120,236,170,236,221,236,8,237,35,237,47,237,54,237,68,237,95,237,131,237,164,237,183,237,187,237,188,237, +206,237,0,238,87,238,200,238,62,239,164,239,234,239,14,240,19,240,1,240,221,239,170,239,103,239,21,239,186,238,93,238, +3,238,174,237,93,237,11,237,178,236,76,236,214,235,78,235,176,234,253,233,49,233,77,232,81,231,64,230,36,229,12,228, +11,227,56,226,167,225,99,225,113,225,205,225,119,226,112,227,191,228,107,230,114,232,195,234,64,237,198,239,50,242,116,244, +137,246,126,248,97,250,56,252,4,254,190,255,95,1,231,2,94,4,204,5,55,7,155,8,240,9,38,11,53,12,21,13, +198,13,76,14,172,14,234,14,14,15,33,15,45,15,59,15,81,15,113,15,154,15,205,15,16,16,106,16,229,16,131,17, +63,18,13,19,223,19,170,20,105,21,29,22,202,22,120,23,44,24,241,24,208,25,214,26,9,28,102,29,225,30,101,32, +224,33,76,35,171,36,7,38,104,39,205,40,41,42,108,43,136,44,126,45,86,46,34,47,234,47,173,48,97,49,249,49, +110,50,196,50,8,51,71,51,133,51,190,51,231,51,243,51,219,51,160,51,74,51,229,50,119,50,8,50,151,49,36,49, +175,48,54,48,188,47,69,47,212,46,104,46,253,45,133,45,244,44,58,44,85,43,70,42,25,41,215,39,130,38,16,37, +111,35,140,33,92,31,221,28,30,26,47,23,36,20,13,17,249,13,242,10,5,8,59,5,156,2,44,0,239,253,233,251, +35,250,167,248,123,247,156,246,0,246,147,245,68,245,2,245,198,244,141,244,84,244,27,244,224,243,167,243,121,243,98,243, +106,243,149,243,222,243,55,244,150,244,241,244,69,245,142,245,200,245,235,245,243,245,218,245,166,245,92,245,2,245,157,244, +44,244,180,243,63,243,227,242,183,242,203,242,31,243,167,243,76,244,246,244,153,245,46,246,178,246,30,247,99,247,115,247, +69,247,222,246,74,246,154,245,213,244,253,243,13,243,6,242,245,240,244,239,28,239,131,238,42,238,7,238,8,238,29,238, +64,238,116,238,191,238,40,239,177,239,86,240,23,241,236,241,205,242,170,243,111,244,9,245,106,245,147,245,137,245,91,245, +20,245,186,244,80,244,220,243,103,243,252,242,167,242,106,242,61,242,15,242,206,241,110,241,236,240,77,240,158,239,232,238, +54,238,139,237,233,236,80,236,187,235,37,235,138,234,232,233,66,233,157,232,0,232,105,231,207,230,36,230,91,229,112,228, +110,227,105,226,118,225,165,224,253,223,126,223,38,223,0,223,29,223,146,223,109,224,173,225,62,227,5,229,231,230,213,232, +206,234,215,236,243,238,25,241,55,243,60,245,31,247,229,248,163,250,109,252,84,254,88,0,109,2,125,4,115,6,61,8, +206,9,30,11,34,12,211,12,44,13,45,13,222,12,76,12,137,11,169,10,192,9,227,8,32,8,129,7,12,7,188,6, +143,6,132,6,155,6,217,6,63,7,203,7,117,8,49,9,249,9,206,10,180,11,178,12,204,13,1,15,74,16,163,17, +10,19,128,20,9,22,171,23,106,25,75,27,76,29,102,31,134,33,147,35,113,37,16,39,113,40,165,41,194,42,213,43, +211,44,160,45,31,46,65,46,26,46,211,45,156,45,146,45,177,45,223,45,253,45,253,45,238,45,236,45,14,46,81,46, +154,46,191,46,161,46,59,46,162,45,249,44,92,44,213,43,92,43,224,42,85,42,186,41,22,41,120,40,232,39,109,39, +7,39,176,38,94,38,0,38,126,37,195,36,192,35,117,34,241,32,75,31,151,29,225,27,42,26,109,24,164,22,207,20, +245,18,31,17,89,15,171,13,29,12,177,10,105,9,64,8,49,7,52,6,68,5,93,4,124,3,159,2,191,1,215,0, +233,255,254,254,46,254,147,253,62,253,48,253,84,253,139,253,187,253,218,253,241,253,22,254,87,254,175,254,5,255,48,255, +20,255,164,254,243,253,34,253,83,252,158,251,6,251,132,250,14,250,165,249,85,249,44,249,54,249,114,249,211,249,71,250, +189,250,43,251,141,251,221,251,21,252,42,252,22,252,212,251,107,251,224,250,56,250,115,249,141,248,133,247,102,246,67,245, +50,244,68,243,124,242,212,241,62,241,178,240,46,240,186,239,90,239,8,239,184,238,89,238,223,237,73,237,158,236,233,235, +49,235,120,234,193,233,16,233,113,232,244,231,163,231,126,231,124,231,144,231,175,231,216,231,12,232,78,232,153,232,226,232, +31,233,71,233,90,233,96,233,95,233,94,233,93,233,91,233,90,233,94,233,109,233,139,233,182,233,228,233,12,234,35,234, +31,234,251,233,181,233,77,233,200,232,47,232,143,231,241,230,93,230,210,229,82,229,221,228,121,228,45,228,4,228,0,228, +33,228,95,228,181,228,32,229,160,229,55,230,230,230,172,231,134,232,115,233,116,234,138,235,184,236,253,237,88,239,198,240, +64,242,188,243,41,245,120,246,157,247,152,248,114,249,61,250,5,251,205,251,138,252,46,253,177,253,25,254,118,254,218,254, +77,255,203,255,71,0,186,0,41,1,162,1,58,2,249,2,218,3,210,4,219,5,252,6,72,8,204,9,140,11,117,13, +105,15,81,17,38,19,244,20,211,22,210,24,240,26,28,29,64,31,74,33,51,35,253,36,171,38,60,40,165,41,219,42, +212,43,141,44,6,45,69,45,79,45,50,45,250,44,178,44,98,44,13,44,176,43,78,43,241,42,170,42,135,42,137,42, +162,42,184,42,179,42,141,42,78,42,9,42,202,41,144,41,76,41,242,40,132,40,23,40,201,39,178,39,211,39,30,40, +120,40,213,40,52,41,163,41,40,42,190,42,78,43,190,43,252,43,7,44,231,43,162,43,57,43,160,42,210,41,212,40, +182,39,139,38,89,37,19,36,156,34,219,32,201,30,115,28,249,25,117,23,245,20,117,18,234,15,77,13,165,10,252,7, +94,5,208,2,79,0,222,253,138,251,107,249,158,247,53,246,48,245,131,244,27,244,232,243,226,243,5,244,68,244,138,244, +188,244,195,244,149,244,57,244,186,243,33,243,112,242,157,241,166,240,145,239,117,238,115,237,164,236,23,236,199,235,166,235, +167,235,198,235,6,236,113,236,11,237,211,237,188,238,184,239,186,240,183,241,170,242,142,243,93,244,17,245,165,245,22,246, +100,246,144,246,157,246,141,246,97,246,28,246,188,245,68,245,180,244,19,244,104,243,190,242,31,242,142,241,5,241,124,240, +236,239,84,239,196,238,77,238,1,238,230,237,243,237,25,238,75,238,137,238,219,238,80,239,233,239,150,240,55,241,170,241, +214,241,185,241,95,241,225,240,78,240,177,239,12,239,99,238,193,237,56,237,216,236,168,236,161,236,176,236,193,236,194,236, +172,236,119,236,33,236,165,235,2,235,59,234,90,233,111,232,135,231,173,230,231,229,59,229,174,228,75,228,22,228,14,228, +39,228,83,228,131,228,177,228,222,228,12,229,56,229,88,229,102,229,96,229,89,229,110,229,191,229,98,230,91,231,158,232, +24,234,188,235,132,237,119,239,151,241,225,243,71,246,180,248,14,251,67,253,69,255,14,1,160,2,2,4,60,5,86,6, +85,7,55,8,246,8,139,9,244,9,53,10,83,10,83,10,55,10,250,9,157,9,38,9,161,8,33,8,179,7,93,7, +26,7,227,6,181,6,149,6,139,6,157,6,205,6,21,7,111,7,219,7,100,8,22,9,254,9,31,11,117,12,246,13, +154,15,91,17,51,19,28,21,14,23,1,25,239,26,218,28,193,30,158,32,95,34,231,35,27,37,234,37,86,38,116,38, +91,38,37,38,221,37,140,37,53,37,226,36,159,36,121,36,117,36,146,36,202,36,27,37,133,37,9,38,165,38,76,39, +233,39,100,40,175,40,197,40,176,40,128,40,66,40,253,39,179,39,103,39,27,39,215,38,160,38,119,38,86,38,52,38, +11,38,215,37,157,37,95,37,27,37,198,36,77,36,152,35,148,34,56,33,139,31,158,29,137,27,98,25,54,23,13,21, +232,18,201,16,182,14,183,12,212,10,19,9,117,7,253,5,173,4,139,3,158,2,227,1,73,1,182,0,14,0,62,255, +69,254,52,253,31,252,24,251,37,250,66,249,109,248,172,247,14,247,163,246,113,246,109,246,129,246,148,246,152,246,143,246, +132,246,128,246,131,246,129,246,108,246,62,246,254,245,190,245,146,245,137,245,167,245,234,245,76,246,204,246,105,247,32,248, +236,248,193,249,148,250,90,251,10,252,155,252,4,253,58,253,55,253,251,252,138,252,240,251,51,251,87,250,91,249,67,248, +22,247,226,245,184,244,163,243,166,242,189,241,226,240,18,240,82,239,170,238,32,238,183,237,105,237,45,237,250,236,196,236, +130,236,43,236,184,235,43,235,141,234,236,233,88,233,214,232,101,232,254,231,158,231,73,231,12,231,238,230,243,230,12,231, +42,231,61,231,69,231,78,231,104,231,154,231,223,231,37,232,92,232,129,232,158,232,199,232,8,233,96,233,191,233,15,234, +68,234,90,234,91,234,77,234,43,234,228,233,98,233,154,232,144,231,90,230,22,229,220,227,187,226,179,225,196,224,242,223, +75,223,227,222,204,222,13,223,160,223,116,224,117,225,149,226,207,227,37,229,155,230,51,232,227,233,159,235,87,237,1,239, +154,240,40,242,177,243,54,245,178,246,29,248,111,249,170,250,211,251,245,252,20,254,44,255,52,0,30,1,230,1,144,2, +43,3,195,3,97,4,8,5,180,5,100,6,27,7,225,7,190,8,181,9,199,10,247,11,74,13,198,14,116,16,82,18, +82,20,95,22,99,24,83,26,48,28,7,30,227,31,201,33,178,35,143,37,82,39,244,40,115,42,210,43,18,45,48,46, +42,47,253,47,167,48,45,49,142,49,201,49,219,49,193,49,128,49,36,49,187,48,85,48,250,47,173,47,107,47,50,47, +3,47,222,46,198,46,189,46,196,46,217,46,252,46,42,47,99,47,162,47,229,47,43,48,119,48,204,48,45,49,155,49, +15,50,127,50,221,50,29,51,51,51,21,51,184,50,20,50,34,49,228,47,95,46,158,44,173,42,146,40,84,38,248,35, +134,33,9,31,142,28,28,26,182,23,86,21,248,18,151,16,54,14,217,11,134,9,61,7,255,4,202,2,166,0,161,254, +204,252,51,251,215,249,173,248,164,247,172,246,190,245,222,244,20,244,104,243,216,242,94,242,241,241,142,241,56,241,247,240, +213,240,214,240,248,240,55,241,141,241,248,241,115,242,250,242,135,243,17,244,147,244,11,245,125,245,235,245,85,246,176,246, +241,246,9,247,247,246,195,246,125,246,54,246,244,245,177,245,92,245,231,244,73,244,138,243,188,242,241,241,56,241,144,240, +243,239,85,239,179,238,14,238,112,237,225,236,96,236,231,235,107,235,225,234,66,234,143,233,205,232,0,232,46,231,95,230, +155,229,239,228,105,228,17,228,232,227,232,227,4,228,45,228,89,228,127,228,154,228,162,228,143,228,88,228,253,227,132,227, +255,226,136,226,56,226,35,226,81,226,195,226,110,227,72,228,70,229,91,230,127,231,167,232,198,233,207,234,179,235,105,236, +233,236,54,237,88,237,88,237,64,237,21,237,216,236,133,236,27,236,159,235,28,235,160,234,51,234,212,233,121,233,18,233, +149,232,5,232,112,231,237,230,143,230,98,230,98,230,134,230,195,230,24,231,137,231,32,232,232,232,225,233,8,235,84,236, +192,237,75,239,249,240,206,242,203,244,235,246,35,249,97,251,150,253,180,255,175,1,133,3,48,5,178,6,6,8,43,9, +29,10,221,10,110,11,222,11,59,12,151,12,251,12,109,13,233,13,109,14,247,14,137,15,39,16,210,16,134,17,55,18, +220,18,110,19,240,19,111,20,253,20,173,21,142,22,166,23,247,24,124,26,44,28,249,29,208,31,159,33,85,35,230,36, +74,38,129,39,136,40,96,41,10,42,140,42,238,42,64,43,145,43,233,43,71,44,163,44,240,44,37,45,64,45,71,45, +68,45,63,45,56,45,43,45,17,45,228,44,163,44,86,44,7,44,198,43,156,43,141,43,150,43,174,43,205,43,240,43, +23,44,69,44,125,44,189,44,253,44,54,45,96,45,120,45,124,45,106,45,54,45,208,44,38,44,46,43,233,41,101,40, +179,38,221,36,226,34,183,32,80,30,172,27,215,24,233,21,254,18,41,16,110,13,205,10,61,8,190,5,84,3,5,1, +213,254,193,252,199,250,227,248,28,247,123,245,11,244,210,242,208,241,251,240,73,240,179,239,52,239,202,238,112,238,35,238, +220,237,154,237,97,237,52,237,23,237,7,237,253,236,242,236,229,236,223,236,240,236,44,237,158,237,69,238,23,239,6,240, +7,241,22,242,53,243,102,244,163,245,224,246,13,248,27,249,3,250,200,250,110,251,251,251,106,252,176,252,186,252,122,252, +234,251,15,251,247,249,179,248,82,247,223,245,95,244,210,242,61,241,171,239,42,238,203,236,154,235,155,234,201,233,26,233, +132,232,2,232,148,231,63,231,5,231,227,230,210,230,200,230,196,230,199,230,221,230,16,231,98,231,204,231,61,232,162,232, +234,232,17,233,27,233,18,233,2,233,244,232,235,232,233,232,239,232,254,232,23,233,66,233,136,233,243,233,143,234,96,235, +101,236,144,237,209,238,17,240,65,241,84,242,65,243,254,243,124,244,172,244,131,244,255,243,41,243,22,242,216,240,127,239, +18,238,151,236,23,235,164,233,81,232,53,231,89,230,190,229,93,229,46,229,42,229,80,229,157,229,13,230,147,230,39,231, +201,231,131,232,104,233,136,234,235,235,133,237,69,239,23,241,239,242,206,244,184,246,178,248,184,250,185,252,163,254,95,0, +225,1,34,3,35,4,232,4,121,5,227,5,49,6,111,6,166,6,218,6,16,7,79,7,157,7,6,8,139,8,40,9, +204,9,102,10,231,10,80,11,171,11,9,12,114,12,231,12,92,13,200,13,45,14,152,14,30,15,210,15,182,16,188,17, +208,18,224,19,231,20,236,21,246,22,6,24,16,25,1,26,200,26,101,27,230,27,100,28,245,28,160,29,95,30,34,31, +220,31,137,32,46,33,211,33,123,34,32,35,179,35,38,36,112,36,149,36,161,36,164,36,171,36,188,36,221,36,14,37, +81,37,171,37,31,38,177,38,97,39,42,40,7,41,239,41,214,42,177,43,119,44,32,45,164,45,0,46,43,46,26,46, +193,45,21,45,17,44,185,42,25,41,67,39,73,37,53,35,14,33,212,30,130,28,20,26,136,23,221,20,25,18,70,15, +118,12,184,9,24,7,154,4,55,2,230,255,162,253,114,251,108,249,171,247,68,246,60,245,135,244,19,244,210,243,191,243, +228,243,70,244,222,244,146,245,61,246,188,246,1,247,21,247,21,247,26,247,49,247,83,247,108,247,108,247,84,247,53,247, +40,247,65,247,131,247,226,247,72,248,167,248,249,248,69,249,148,249,234,249,65,250,139,250,187,250,204,250,190,250,150,250, +91,250,13,250,173,249,54,249,172,248,17,248,108,247,191,246,7,246,65,245,100,244,108,243,90,242,46,241,233,239,143,238, +35,237,174,235,64,234,237,232,201,231,224,230,50,230,179,229,87,229,19,229,234,228,232,228,27,229,136,229,43,230,240,230, +196,231,150,232,100,233,50,234,5,235,215,235,154,236,55,237,159,237,210,237,226,237,236,237,10,238,76,238,174,238,35,239, +154,239,8,240,103,240,183,240,243,240,16,241,253,240,172,240,23,240,68,239,67,238,39,237,0,236,214,234,170,233,121,232, +61,231,245,229,161,228,73,227,248,225,185,224,152,223,153,222,186,221,245,220,66,220,159,219,16,219,164,218,106,218,109,218, +175,218,41,219,211,219,164,220,158,221,201,222,45,224,207,225,171,227,179,229,215,231,10,234,64,236,118,238,167,240,207,242, +234,244,245,246,241,248,223,250,192,252,148,254,87,0,4,2,154,3,27,5,142,6,248,7,89,9,170,10,221,11,231,12, +192,13,107,14,240,14,87,15,163,15,209,15,221,15,196,15,140,15,64,15,236,14,157,14,88,14,30,14,241,13,210,13, +200,13,221,13,25,14,128,14,20,15,208,15,173,16,158,17,150,18,139,19,123,20,107,21,107,22,140,23,215,24,72,26, +206,27,83,29,198,30,35,32,111,33,182,34,251,35,57,37,96,38,95,39,46,40,209,40,85,41,197,41,41,42,127,42, +197,42,254,42,50,43,112,43,193,43,39,44,154,44,15,45,125,45,226,45,66,46,160,46,252,46,81,47,154,47,210,47, +246,47,5,48,246,47,190,47,76,47,146,46,135,45,46,44,142,42,179,40,168,38,117,36,33,34,175,31,29,29,98,26, +112,23,59,20,190,16,2,13,34,9,60,5,107,1,190,253,59,250,229,246,198,243,246,240,149,238,189,236,124,235,203,234, +150,234,195,234,61,235,245,235,220,236,222,237,222,238,187,239,90,240,172,240,180,240,134,240,55,240,224,239,143,239,78,239, +34,239,18,239,30,239,73,239,141,239,224,239,51,240,120,240,164,240,177,240,161,240,123,240,74,240,28,240,253,239,251,239, +33,240,122,240,10,241,207,241,192,242,204,243,221,244,224,245,200,246,143,247,49,248,169,248,238,248,244,248,178,248,40,248, +97,247,111,246,96,245,59,244,252,242,155,241,27,240,140,238,10,237,183,235,170,234,238,233,124,233,75,233,86,233,160,233, +52,234,28,235,87,236,213,237,125,239,52,241,222,242,103,244,186,245,198,246,123,247,205,247,187,247,78,247,154,246,186,245, +206,244,242,243,62,243,194,242,132,242,125,242,154,242,194,242,223,242,224,242,192,242,132,242,49,242,206,241,92,241,218,240, +69,240,160,239,240,238,59,238,136,237,221,236,58,236,157,235,254,234,81,234,137,233,151,232,116,231,31,230,164,228,20,227, +129,225,254,223,155,222,107,221,133,220,3,220,249,219,114,220,102,221,194,222,108,224,81,226,107,228,186,230,66,233,252,235, +213,238,175,241,109,244,254,246,90,249,137,251,148,253,129,255,83,1,5,3,149,4,3,6,76,7,111,8,101,9,39,10, +173,10,243,10,253,10,205,10,104,10,204,9,250,8,241,7,187,6,101,5,8,4,187,2,149,1,171,0,12,0,194,255, +213,255,65,0,255,0,252,1,38,3,104,4,181,5,4,7,81,8,151,9,211,10,255,11,27,13,44,14,59,15,87,16, +140,17,225,18,86,20,231,21,140,23,62,25,247,26,177,28,99,30,2,32,128,33,208,34,237,35,211,36,135,37,13,38, +110,38,175,38,215,38,239,38,2,39,29,39,73,39,139,39,222,39,56,40,139,40,203,40,242,40,1,41,248,40,217,40, +165,40,94,40,11,40,181,39,104,39,41,39,243,38,182,38,97,38,228,37,64,37,124,36,169,35,208,34,243,33,11,33, +18,32,7,31,243,29,222,28,201,27,172,26,118,25,27,24,156,22,5,21,105,19,208,17,50,16,123,14,153,12,136,10, +92,8,54,6,58,4,127,2,6,1,196,255,174,254,196,253,10,253,136,252,59,252,16,252,240,251,196,251,128,251,41,251, +201,250,104,250,11,250,175,249,82,249,248,248,169,248,115,248,94,248,109,248,158,248,229,248,52,249,119,249,152,249,133,249, +50,249,156,248,207,247,219,246,213,245,204,244,205,243,226,242,22,242,118,241,10,241,216,240,220,240,14,241,100,241,212,241, +89,242,233,242,116,243,229,243,39,244,45,244,240,243,116,243,187,242,203,241,166,240,85,239,236,237,135,236,67,235,47,234, +76,233,142,232,234,231,95,231,249,230,199,230,208,230,7,231,78,231,127,231,128,231,74,231,228,230,94,230,195,229,22,229, +91,228,151,227,220,226,67,226,226,225,202,225,252,225,117,226,39,227,7,228,4,229,15,230,21,231,7,232,218,232,140,233, +26,234,133,234,201,234,231,234,228,234,208,234,195,234,208,234,0,235,74,235,157,235,230,235,27,236,56,236,64,236,45,236, +243,235,129,235,201,234,202,233,145,232,47,231,188,229,72,228,228,226,163,225,152,224,214,223,107,223,90,223,157,223,43,224, +253,224,17,226,96,227,226,228,133,230,51,232,217,233,105,235,225,236,65,238,139,239,195,240,238,241,22,243,73,244,143,245, +233,246,72,248,153,249,205,250,223,251,216,252,190,253,145,254,65,255,187,255,240,255,231,255,184,255,134,255,107,255,114,255, +151,255,209,255,31,0,143,0,49,1,18,2,49,3,126,4,230,5,91,7,218,8,99,10,249,11,153,13,57,15,210,16, +95,18,230,19,114,21,12,23,188,24,133,26,104,28,97,30,106,32,121,34,127,36,112,38,69,40,250,41,146,43,13,45, +102,46,152,47,157,48,116,49,32,50,168,50,14,51,81,51,113,51,115,51,97,51,72,51,43,51,5,51,198,50,100,50, +223,49,71,49,180,48,54,48,203,47,96,47,225,46,66,46,140,45,213,44,48,44,163,43,37,43,167,42,34,42,163,41, +64,41,13,41,14,41,47,41,79,41,76,41,13,41,137,40,186,39,157,38,47,37,114,35,114,33,68,31,254,28,175,26, +88,24,240,21,109,19,208,16,41,14,140,11,11,9,172,6,104,4,53,2,11,0,233,253,213,251,215,249,240,247,37,246, +118,244,236,242,146,241,117,240,159,239,20,239,204,238,186,238,198,238,209,238,188,238,108,238,213,237,250,236,240,235,207,234, +172,233,138,232,103,231,60,230,12,229,231,227,230,226,31,226,155,225,90,225,83,225,124,225,212,225,92,226,19,227,247,227, +251,228,18,230,49,231,80,232,106,233,121,234,122,235,106,236,74,237,29,238,226,238,146,239,30,240,116,240,140,240,107,240, +37,240,205,239,110,239,3,239,124,238,203,237,240,236,253,235,14,235,58,234,137,233,242,232,99,232,207,231,54,231,166,230, +47,230,219,229,172,229,155,229,161,229,190,229,244,229,69,230,173,230,26,231,117,231,162,231,141,231,43,231,126,230,146,229, +127,228,100,227,98,226,153,225,30,225,249,224,37,225,150,225,66,226,32,227,40,228,80,229,133,230,169,231,158,232,75,233, +164,233,174,233,124,233,33,233,173,232,43,232,158,231,6,231,106,230,209,229,69,229,204,228,102,228,16,228,194,227,120,227, +44,227,222,226,140,226,57,226,239,225,187,225,178,225,235,225,118,226,90,227,148,228,25,230,221,231,218,233,10,236,103,238, +228,240,109,243,232,245,66,248,114,250,120,252,94,254,38,0,208,1,81,3,158,4,180,5,150,6,78,7,229,7,98,8, +198,8,16,9,69,9,110,9,148,9,192,9,246,9,51,10,116,10,187,10,13,11,112,11,232,11,111,12,253,12,139,13, +21,14,159,14,47,15,206,15,129,16,73,17,38,18,22,19,23,20,38,21,66,22,105,23,154,24,215,25,28,27,95,28, +144,29,155,30,115,31,23,32,148,32,255,32,99,33,193,33,13,34,54,34,55,34,26,34,244,33,221,33,228,33,7,34, +59,34,116,34,173,34,235,34,56,35,152,35,9,36,130,36,248,36,101,37,197,37,22,38,84,38,123,38,139,38,138,38, +128,38,120,38,118,38,120,38,117,38,105,38,82,38,51,38,11,38,206,37,101,37,183,36,173,35,62,34,112,32,75,30, +217,27,30,25,28,22,219,18,106,15,227,11,97,8,252,4,196,1,192,254,248,251,118,249,63,247,90,245,193,243,105,242, +62,241,47,240,44,239,42,238,33,237,14,236,240,234,209,233,190,232,202,231,7,231,124,230,41,230,5,230,8,230,47,230, +121,230,227,230,103,231,247,231,133,232,3,233,110,233,204,233,37,234,132,234,238,234,98,235,224,235,101,236,241,236,139,237, +53,238,247,238,208,239,190,240,186,241,188,242,187,243,178,244,160,245,134,246,97,247,40,248,205,248,63,249,112,249,93,249, +16,249,151,248,2,248,94,247,175,246,248,245,55,245,113,244,168,243,228,242,40,242,121,241,218,240,77,240,210,239,97,239, +240,238,112,238,216,237,36,237,88,236,125,235,155,234,182,233,208,232,235,231,18,231,79,230,174,229,49,229,210,228,127,228, +43,228,208,227,111,227,18,227,193,226,128,226,81,226,53,226,51,226,87,226,172,226,58,227,1,228,254,228,40,230,122,231, +234,232,108,234,235,235,76,237,121,238,96,239,249,239,68,240,64,240,237,239,75,239,96,238,60,237,250,235,184,234,140,233, +131,232,159,231,221,230,61,230,195,229,115,229,78,229,80,229,114,229,178,229,20,230,160,230,96,231,82,232,110,233,165,234, +232,235,48,237,120,238,193,239,9,241,75,242,133,243,187,244,243,245,51,247,123,248,191,249,237,250,242,251,196,252,101,253, +221,253,54,254,118,254,155,254,162,254,141,254,96,254,38,254,233,253,177,253,133,253,109,253,115,253,160,253,251,253,129,254, +44,255,238,255,191,0,153,1,119,2,87,3,54,4,15,5,228,5,189,6,163,7,161,8,184,9,228,10,27,12,86,13, +151,14,232,15,83,17,219,18,122,20,33,22,193,23,79,25,195,26,27,28,79,29,88,30,45,31,203,31,54,32,122,32, +162,32,181,32,181,32,161,32,126,32,84,32,50,32,32,32,33,32,44,32,56,32,61,32,60,32,63,32,83,32,127,32, +196,32,27,33,126,33,233,33,91,34,215,34,91,35,225,35,100,36,221,36,74,37,171,37,254,37,59,38,82,38,47,38, +188,37,236,36,191,35,60,34,119,32,126,30,94,28,25,26,172,23,16,21,68,18,80,15,69,12,60,9,77,6,142,3, +13,1,209,254,216,252,27,251,143,249,39,248,214,246,148,245,96,244,64,243,61,242,96,241,174,240,38,240,199,239,139,239, +113,239,116,239,144,239,190,239,249,239,62,240,144,240,249,240,125,241,24,242,184,242,67,243,158,243,187,243,157,243,81,243, +235,242,120,242,253,241,122,241,245,240,126,240,47,240,38,240,115,240,23,241,1,242,27,243,74,244,125,245,168,246,193,247, +184,248,123,249,244,249,18,250,204,249,33,249,26,248,196,246,52,245,127,243,188,241,253,239,78,238,177,236,35,235,161,233, +43,232,204,230,144,229,134,228,175,227,6,227,123,226,255,225,136,225,21,225,174,224,92,224,39,224,20,224,36,224,87,224, +172,224,31,225,167,225,58,226,202,226,76,227,187,227,23,228,101,228,169,228,229,228,28,229,81,229,138,229,211,229,56,230, +189,230,97,231,20,232,198,232,100,233,228,233,70,234,142,234,196,234,235,234,3,235,10,235,254,234,225,234,178,234,114,234, +27,234,168,233,20,233,96,232,145,231,176,230,194,229,201,228,198,227,186,226,174,225,174,224,204,223,22,223,148,222,68,222, +39,222,64,222,149,222,48,223,24,224,69,225,171,226,55,228,219,229,144,231,85,233,43,235,16,237,252,238,233,240,209,242, +183,244,160,246,142,248,125,250,96,252,40,254,204,255,76,1,175,2,252,3,55,5,90,6,92,7,59,8,252,8,174,9, +96,10,32,11,239,11,201,12,163,13,123,14,79,15,38,16,255,16,217,17,169,18,102,19,11,20,156,20,36,21,178,21, +81,22,4,23,202,23,155,24,112,25,66,26,12,27,206,27,134,28,49,29,208,29,96,30,227,30,90,31,199,31,44,32, +137,32,220,32,40,33,110,33,178,33,250,33,69,34,140,34,199,34,231,34,231,34,200,34,148,34,91,34,43,34,12,34, +255,33,3,34,25,34,69,34,146,34,6,35,161,35,88,36,25,37,209,37,119,38,8,39,137,39,2,40,119,40,228,40, +65,41,128,41,146,41,102,41,242,40,48,40,34,39,210,37,80,36,167,34,215,32,213,30,140,28,237,25,240,22,162,19, +28,16,127,12,231,8,99,5,252,1,183,254,156,251,182,248,23,246,201,243,211,241,48,240,220,238,209,237,14,237,143,236, +80,236,68,236,87,236,112,236,120,236,97,236,36,236,196,235,76,235,203,234,80,234,233,233,160,233,118,233,106,233,119,233, +152,233,208,233,35,234,151,234,44,235,220,235,153,236,85,237,10,238,186,238,114,239,63,240,42,241,50,242,81,243,128,244, +186,245,254,246,76,248,155,249,217,250,237,251,189,252,57,253,90,253,40,253,169,252,231,251,229,250,166,249,48,248,148,246, +230,244,59,243,162,241,32,240,187,238,120,237,96,236,130,235,229,234,135,234,92,234,78,234,77,234,84,234,103,234,146,234, +218,234,58,235,167,235,16,236,106,236,175,236,217,236,226,236,189,236,90,236,180,235,214,234,216,233,220,232,254,231,78,231, +207,230,124,230,80,230,77,230,118,230,201,230,60,231,185,231,40,232,122,232,167,232,181,232,171,232,142,232,90,232,11,232, +155,231,14,231,104,230,175,229,228,228,2,228,2,227,225,225,163,224,77,223,231,221,120,220,3,219,146,217,54,216,9,215, +42,214,181,213,182,213,48,214,23,215,91,216,236,217,188,219,193,221,236,223,48,226,126,228,199,230,3,233,43,235,64,237, +71,239,72,241,74,243,83,245,99,247,117,249,126,251,116,253,80,255,14,1,173,2,41,4,121,5,143,6,93,7,220,7, +17,8,12,8,224,7,165,7,105,7,57,7,32,7,39,7,83,7,163,7,14,8,135,8,254,8,107,9,206,9,41,10, +125,10,200,10,2,11,36,11,49,11,56,11,74,11,120,11,206,11,79,12,252,12,215,13,231,14,46,16,167,17,68,19, +237,20,141,22,28,24,153,25,8,27,104,28,171,29,194,30,159,31,68,32,190,32,35,33,128,33,214,33,28,34,75,34, +103,34,131,34,180,34,10,35,134,35,23,36,173,36,56,37,185,37,53,38,174,38,35,39,139,39,226,39,44,40,119,40, +209,40,65,41,190,41,53,42,150,42,215,42,252,42,9,43,0,43,215,42,128,42,242,41,48,41,68,40,56,39,12,38, +179,36,27,35,62,33,34,31,219,28,128,26,22,24,151,21,245,18,39,16,59,13,77,10,127,7,233,4,147,2,121,0, +151,254,240,252,148,251,145,250,232,249,140,249,96,249,73,249,54,249,32,249,12,249,253,248,243,248,232,248,219,248,205,248, +196,248,194,248,196,248,195,248,186,248,171,248,162,248,169,248,194,248,226,248,241,248,220,248,153,248,46,248,171,247,30,247, +139,246,234,245,50,245,96,244,127,243,163,242,228,241,80,241,236,240,178,240,157,240,167,240,202,240,1,241,68,241,132,241, +179,241,195,241,169,241,91,241,210,240,4,240,238,238,145,237,245,235,45,234,78,232,110,230,161,228,252,226,142,225,106,224, +154,223,36,223,2,223,39,223,125,223,238,223,98,224,196,224,5,225,28,225,9,225,210,224,128,224,29,224,176,223,66,223, +221,222,145,222,113,222,144,222,251,222,176,223,161,224,185,225,230,226,25,228,78,229,127,230,165,231,178,232,146,233,53,234, +145,234,170,234,139,234,70,234,234,233,132,233,23,233,164,232,36,232,146,231,231,230,31,230,57,229,54,228,23,227,223,225, +146,224,52,223,207,221,113,220,40,219,1,218,5,217,54,216,147,215,32,215,226,214,230,214,53,215,215,215,202,216,4,218, +121,219,29,221,227,222,193,224,171,226,147,228,108,230,39,232,188,233,35,235,91,236,106,237,88,238,49,239,3,240,217,240, +185,241,163,242,149,243,140,244,138,245,145,246,162,247,188,248,219,249,249,250,20,252,45,253,73,254,109,255,151,0,196,1, +238,2,19,4,54,5,97,6,159,7,248,8,110,10,3,12,182,13,132,15,107,17,99,19,101,21,104,23,105,25,101,27, +93,29,78,31,48,33,252,34,171,36,64,38,196,39,67,41,188,42,38,44,111,45,138,46,119,47,69,48,11,49,216,49, +170,50,110,51,12,52,116,52,169,52,188,52,193,52,195,52,189,52,163,52,106,52,16,52,161,51,44,51,193,50,101,50, +26,50,221,49,173,49,138,49,110,49,85,49,50,49,253,48,179,48,84,48,223,47,78,47,148,46,161,45,107,44,238,42, +55,41,86,39,92,37,86,35,67,33,32,31,225,28,129,26,252,23,87,21,156,18,215,15,17,13,78,10,135,7,179,4, +206,1,223,254,249,251,57,249,181,246,118,244,119,242,173,240,21,239,186,237,177,236,12,236,201,235,206,235,240,235,4,236, +241,235,185,235,108,235,31,235,217,234,145,234,52,234,181,233,16,233,79,232,133,231,195,230,25,230,142,229,40,229,236,228, +217,228,232,228,19,229,82,229,168,229,29,230,192,230,151,231,158,232,195,233,236,234,3,236,254,236,223,237,173,238,110,239, +30,240,173,240,13,241,51,241,30,241,221,240,130,240,32,240,190,239,89,239,224,238,68,238,123,237,138,236,127,235,112,234, +109,233,126,232,159,231,201,230,251,229,62,229,165,228,68,228,35,228,66,228,149,228,14,229,164,229,81,230,11,231,196,231, +100,232,209,232,246,232,204,232,86,232,160,231,179,230,153,229,95,228,27,227,238,225,255,224,107,224,64,224,117,224,242,224, +159,225,103,226,62,227,29,228,247,228,189,229,93,230,205,230,14,231,42,231,45,231,32,231,4,231,212,230,142,230,53,230, +212,229,120,229,46,229,252,228,221,228,202,228,183,228,152,228,106,228,46,228,241,227,195,227,183,227,215,227,34,228,147,228, +34,229,209,229,169,230,186,231,16,233,169,234,123,236,115,238,132,240,168,242,231,244,70,247,193,249,70,252,184,254,246,0, +236,2,145,4,235,5,6,7,238,7,172,8,69,9,188,9,22,10,91,10,147,10,197,10,248,10,45,11,100,11,154,11, +200,11,236,11,4,12,16,12,20,12,18,12,13,12,5,12,254,11,254,11,12,12,52,12,126,12,240,12,141,13,82,14, +60,15,65,16,87,17,109,18,122,19,117,20,99,21,75,22,55,23,42,24,32,25,18,26,254,26,232,27,221,28,226,29, +245,30,5,32,253,32,203,33,106,34,225,34,57,35,116,35,138,35,113,35,39,35,188,34,79,34,252,33,210,33,206,33, +222,33,244,33,15,34,60,34,137,34,247,34,120,35,237,35,64,36,103,36,105,36,86,36,57,36,18,36,222,35,154,35, +78,35,4,35,194,34,120,34,10,34,84,33,66,32,214,30,36,29,73,27,84,25,70,23,17,21,171,18,21,16,92,13, +153,10,224,7,63,5,191,2,98,0,46,254,38,252,71,250,138,248,229,246,80,245,207,243,105,242,39,241,10,240,10,239, +29,238,65,237,127,236,232,235,140,235,114,235,143,235,212,235,49,236,165,236,57,237,249,237,231,238,248,239,20,241,29,242, +0,243,181,243,66,244,173,244,252,244,41,245,43,245,247,244,141,244,250,243,86,243,189,242,73,242,7,242,250,241,26,242, +92,242,184,242,42,243,173,243,53,244,175,244,0,245,16,245,208,244,66,244,113,243,107,242,59,241,228,239,109,238,225,236, +85,235,224,233,151,232,128,231,151,230,210,229,43,229,161,228,59,228,250,227,215,227,194,227,173,227,141,227,99,227,51,227, +253,226,186,226,97,226,237,225,105,225,236,224,145,224,103,224,113,224,161,224,233,224,66,225,172,225,45,226,196,226,104,227, +11,228,162,228,44,229,177,229,57,230,201,230,90,231,230,231,105,232,233,232,109,233,253,233,149,234,39,235,167,235,16,236, +105,236,188,236,18,237,100,237,164,237,191,237,169,237,100,237,247,236,105,236,184,235,226,234,227,233,200,232,165,231,150,230, +178,229,7,229,152,228,102,228,115,228,194,228,88,229,51,230,75,231,153,232,23,234,197,235,163,237,169,239,199,241,227,243, +229,245,193,247,119,249,18,251,156,252,25,254,133,255,215,0,6,2,18,3,250,3,194,4,104,5,236,5,80,6,159,6, +228,6,45,7,130,7,228,7,77,8,188,8,50,9,177,9,61,10,214,10,123,11,42,12,231,12,182,13,157,14,154,15, +166,16,183,17,200,18,217,19,241,20,25,22,78,23,135,24,184,25,215,26,229,27,238,28,0,30,35,31,81,32,125,33, +152,34,156,35,140,36,120,37,109,38,108,39,109,40,89,41,25,42,156,42,222,42,230,42,196,42,134,42,55,42,217,41, +107,41,233,40,88,40,193,39,48,39,176,38,70,38,242,37,175,37,126,37,99,37,101,37,142,37,220,37,67,38,171,38, +243,38,254,38,180,38,10,38,5,37,180,35,41,34,119,32,163,30,170,28,128,26,26,24,118,21,164,18,189,15,222,12, +23,10,107,7,206,4,48,2,140,255,233,252,88,250,236,247,175,245,160,243,185,241,247,239,93,238,248,236,212,235,250,234, +104,234,22,234,245,233,247,233,7,234,19,234,15,234,244,233,201,233,159,233,131,233,122,233,124,233,117,233,89,233,40,233, +246,232,222,232,247,232,69,233,188,233,74,234,228,234,140,235,79,236,52,237,57,238,77,239,87,240,72,241,26,242,207,242, +105,243,227,243,53,244,87,244,75,244,29,244,216,243,131,243,24,243,145,242,239,241,64,241,155,240,17,240,158,239,47,239, +168,238,247,237,30,237,53,236,83,235,131,234,192,233,248,232,34,232,70,231,124,230,222,229,123,229,78,229,68,229,79,229, +107,229,158,229,238,229,82,230,176,230,232,230,221,230,133,230,233,229,26,229,45,228,50,227,56,226,88,225,176,224,95,224, +117,224,242,224,193,225,200,226,241,227,53,229,147,230,7,232,130,233,233,234,32,236,23,237,208,237,89,238,195,238,21,239, +73,239,86,239,56,239,248,238,169,238,94,238,35,238,243,237,192,237,121,237,19,237,139,236,233,235,58,235,137,234,223,233, +70,233,194,232,89,232,18,232,243,231,3,232,73,232,203,232,143,233,149,234,214,235,73,237,228,238,155,240,104,242,69,244, +49,246,40,248,37,250,33,252,19,254,240,255,172,1,62,3,160,4,209,5,212,6,177,7,114,8,32,9,196,9,100,10, +7,11,182,11,113,12,56,13,1,14,187,14,87,15,198,15,5,16,29,16,31,16,29,16,39,16,68,16,114,16,174,16, +246,16,82,17,209,17,127,18,96,19,104,20,130,21,145,22,126,23,68,24,231,24,116,25,247,25,116,26,236,26,93,27, +208,27,83,28,245,28,194,29,183,30,199,31,226,32,250,33,12,35,23,36,27,37,20,38,246,38,183,39,82,40,202,40, +40,41,118,41,184,41,236,41,15,42,29,42,27,42,12,42,243,41,207,41,155,41,85,41,253,40,155,40,55,40,216,39, +124,39,26,39,167,38,20,38,88,37,108,36,75,35,242,33,93,32,140,30,125,28,50,26,171,23,236,20,254,17,241,14, +216,11,202,8,215,5,6,3,88,0,203,253,94,251,20,249,243,246,252,244,41,243,113,241,202,239,46,238,162,236,48,235, +225,233,182,232,168,231,175,230,195,229,231,228,36,228,136,227,29,227,232,226,233,226,27,227,120,227,252,227,160,228,98,229, +62,230,55,231,81,232,144,233,240,234,106,236,235,237,97,239,190,240,251,241,26,243,31,244,11,245,223,245,148,246,41,247, +157,247,246,247,58,248,111,248,150,248,171,248,166,248,124,248,39,248,159,247,229,246,0,246,247,244,212,243,157,242,82,241, +240,239,120,238,247,236,129,235,51,234,36,233,94,232,219,231,142,231,99,231,82,231,89,231,125,231,189,231,20,232,117,232, +210,232,36,233,107,233,172,233,233,233,31,234,67,234,73,234,41,234,226,233,117,233,231,232,61,232,126,231,182,230,252,229, +105,229,25,229,29,229,119,229,29,230,251,230,253,231,19,233,49,234,79,235,98,236,98,237,69,238,7,239,167,239,39,240, +134,240,195,240,216,240,190,240,117,240,255,239,105,239,190,238,11,238,86,237,162,236,240,235,66,235,159,234,15,234,151,233, +58,233,246,232,199,232,169,232,160,232,175,232,225,232,59,233,191,233,106,234,56,235,38,236,53,237,106,238,202,239,89,241, +20,243,247,244,250,246,20,249,57,251,92,253,110,255,98,1,45,3,201,4,52,6,106,7,103,8,38,9,163,9,230,9, +252,9,249,9,241,9,242,9,2,10,33,10,82,10,156,10,9,11,160,11,95,12,58,13,28,14,242,14,177,15,88,16, +236,16,113,17,231,17,75,18,152,18,207,18,248,18,28,19,71,19,129,19,207,19,50,20,172,20,55,21,206,21,106,22, +6,23,164,23,79,24,18,25,246,25,247,26,12,28,38,29,65,30,95,31,136,32,191,33,249,34,31,36,25,37,221,37, +115,38,242,38,114,39,250,39,127,40,237,40,54,41,96,41,129,41,181,41,9,42,121,42,238,42,81,43,149,43,191,43, +216,43,229,43,222,43,178,43,85,43,199,42,19,42,71,41,100,40,98,39,48,38,199,36,45,35,121,33,188,31,248,29, +27,28,4,26,155,23,219,20,214,17,166,14,97,11,14,8,170,4,54,1,196,253,117,250,110,247,199,244,134,242,159,240, +6,239,181,237,179,236,11,236,192,235,195,235,250,235,68,236,139,236,193,236,225,236,233,236,215,236,172,236,113,236,53,236, +10,236,250,235,6,236,37,236,80,236,138,236,225,236,100,237,24,238,240,238,206,239,152,240,68,241,220,241,120,242,44,243, +250,243,212,244,163,245,89,246,247,246,136,247,23,248,168,248,48,249,163,249,251,249,58,250,102,250,125,250,108,250,23,250, +101,249,80,248,237,246,90,245,182,243,13,242,89,240,145,238,184,236,233,234,80,233,25,232,89,231,11,231,22,231,91,231, +196,231,79,232,254,232,212,233,197,234,187,235,159,236,94,237,247,237,107,238,196,238,3,239,41,239,53,239,42,239,17,239, +246,238,231,238,237,238,16,239,83,239,184,239,60,240,214,240,121,241,23,242,169,242,45,243,167,243,25,244,130,244,215,244, +15,245,37,245,34,245,22,245,15,245,14,245,0,245,199,244,71,244,116,243,88,242,10,241,160,239,35,238,141,236,208,234, +227,232,206,230,172,228,159,226,199,224,56,223,253,221,28,221,155,220,135,220,232,220,189,221,249,222,134,224,73,226,47,228, +47,230,66,232,100,234,138,236,165,238,169,240,143,242,91,244,19,246,192,247,104,249,8,251,157,252,36,254,155,255,1,1, +81,2,133,3,144,4,107,5,18,6,132,6,198,6,218,6,197,6,138,6,48,6,194,5,80,5,233,4,157,4,118,4, +127,4,193,4,64,5,253,5,241,6,12,8,62,9,117,10,170,11,215,12,253,13,25,15,37,16,28,17,254,17,209,18, +165,19,139,20,139,21,166,22,213,23,14,25,80,26,161,27,9,29,140,30,34,32,184,33,58,35,147,36,190,37,188,38, +150,39,85,40,249,40,131,41,237,41,54,42,96,42,118,42,131,42,154,42,199,42,19,43,125,43,252,43,127,44,242,44, +73,45,126,45,145,45,132,45,86,45,1,45,127,44,207,43,251,42,22,42,49,41,86,40,134,39,184,38,228,37,12,37, +59,36,125,35,215,34,60,34,148,33,190,32,162,31,57,30,134,28,150,26,116,24,33,22,160,19,243,16,38,14,76,11, +126,8,207,5,79,3,6,1,251,254,51,253,177,251,113,250,102,249,127,248,168,247,211,246,254,245,46,245,105,244,178,243, +12,243,119,242,250,241,159,241,119,241,138,241,216,241,86,242,247,242,173,243,116,244,72,245,33,246,237,246,149,247,0,248, +29,248,240,247,134,247,246,246,80,246,159,245,235,244,59,244,159,243,44,243,248,242,13,243,104,243,255,243,191,244,154,245, +131,246,111,247,79,248,22,249,181,249,40,250,110,250,139,250,125,250,61,250,193,249,1,249,4,248,225,246,180,245,147,244, +133,243,133,242,133,241,129,240,131,239,159,238,233,237,106,237,29,237,240,236,212,236,192,236,182,236,186,236,200,236,218,236, +229,236,231,236,233,236,251,236,44,237,129,237,243,237,113,238,239,238,103,239,216,239,69,240,169,240,248,240,37,241,41,241, +9,241,210,240,144,240,74,240,250,239,149,239,19,239,113,238,184,237,241,236,35,236,81,235,121,234,155,233,181,232,201,231, +214,230,214,229,195,228,153,227,92,226,22,225,211,223,156,222,121,221,111,220,136,219,210,218,97,218,68,218,129,218,18,219, +240,219,15,221,106,222,1,224,205,225,195,227,208,229,221,231,219,233,196,235,156,237,104,239,42,241,219,242,114,244,237,245, +79,247,167,248,5,250,117,251,246,252,129,254,5,0,114,1,189,2,224,3,220,4,179,5,107,6,7,7,135,7,233,7, +42,8,74,8,81,8,79,8,84,8,113,8,170,8,255,8,105,9,232,9,128,10,58,11,26,12,25,13,36,14,35,15, +3,16,196,16,113,17,29,18,215,18,165,19,132,20,116,21,120,22,158,23,242,24,122,26,47,28,0,30,218,31,175,33, +123,35,61,37,246,38,158,40,47,42,160,43,240,44,32,46,53,47,45,48,2,49,172,49,42,50,129,50,189,50,233,50, +11,51,33,51,41,51,32,51,11,51,238,50,208,50,175,50,137,50,88,50,28,50,215,49,143,49,71,49,252,48,171,48, +82,48,243,47,140,47,25,47,139,46,202,45,192,44,99,43,185,41,210,39,192,37,140,35,46,33,152,30,192,27,168,24, +100,21,15,18,194,14,140,11,115,8,119,5,154,2,223,255,76,253,227,250,160,248,125,246,120,244,150,242,226,240,105,239, +52,238,68,237,146,236,21,236,199,235,156,235,140,235,140,235,144,235,150,235,161,235,186,235,233,235,43,236,114,236,168,236, +188,236,166,236,114,236,52,236,0,236,220,235,196,235,169,235,123,235,55,235,228,234,146,234,82,234,48,234,52,234,91,234, +163,234,6,235,127,235,11,236,166,236,76,237,247,237,155,238,42,239,143,239,185,239,157,239,60,239,163,238,230,237,26,237, +79,236,141,235,216,234,47,234,146,233,4,233,139,232,44,232,236,231,208,231,217,231,4,232,74,232,163,232,6,233,112,233, +232,233,122,234,51,235,25,236,41,237,87,238,142,239,188,240,211,241,196,242,134,243,9,244,63,244,31,244,169,243,239,242, +12,242,34,241,79,240,165,239,42,239,218,238,175,238,166,238,191,238,251,238,91,239,217,239,105,240,250,240,121,241,218,241, +20,242,37,242,14,242,206,241,103,241,214,240,30,240,71,239,92,238,103,237,114,236,128,235,146,234,168,233,199,232,246,231, +64,231,172,230,59,230,236,229,193,229,193,229,248,229,115,230,58,231,72,232,141,233,249,234,132,236,49,238,10,240,21,242, +83,244,184,246,56,249,199,251,96,254,5,1,175,3,76,6,191,8,235,10,187,12,42,14,65,15,14,16,155,16,233,16, +248,16,200,16,97,16,209,15,36,15,98,14,143,13,174,12,202,11,247,10,71,10,203,9,134,9,114,9,136,9,195,9, +38,10,182,10,118,11,104,12,136,13,214,14,85,16,7,18,230,19,226,21,230,23,221,25,191,27,148,29,99,31,47,33, +235,34,128,36,219,37,252,38,249,39,240,40,247,41,10,43,16,44,232,44,128,45,219,45,17,46,57,46,95,46,121,46, +124,46,100,46,61,46,31,46,30,46,59,46,104,46,146,46,174,46,195,46,219,46,253,46,28,47,28,47,227,46,103,46, +181,45,228,44,7,44,32,43,34,42,2,41,191,39,110,38,36,37,236,35,185,34,109,33,232,31,27,30,12,28,207,25, +116,23,252,20,90,18,128,15,109,12,50,9,236,5,183,2,163,255,188,252,12,250,162,247,144,245,223,243,136,242,117,241, +134,240,163,239,195,238,231,237,18,237,62,236,95,235,106,234,100,233,99,232,139,231,247,230,178,230,181,230,241,230,95,231, +5,232,241,232,43,234,169,235,76,237,235,238,97,240,152,241,136,242,50,243,148,243,174,243,127,243,18,243,121,242,205,241, +35,241,137,240,2,240,145,239,55,239,250,238,224,238,232,238,12,239,64,239,119,239,168,239,200,239,206,239,173,239,90,239, +203,238,1,238,1,237,213,235,135,234,31,233,164,231,34,230,173,228,90,227,63,226,106,225,226,224,171,224,197,224,49,225, +236,225,231,226,9,228,53,229,76,230,60,231,252,231,142,232,244,232,49,233,73,233,64,233,34,233,255,232,232,232,230,232, +2,233,65,233,172,233,76,234,39,235,53,236,100,237,152,238,183,239,177,240,130,241,46,242,185,242,32,243,98,243,127,243, +131,243,130,243,144,243,182,243,239,243,45,244,96,244,128,244,140,244,132,244,102,244,36,244,176,243,254,242,12,242,227,240, +142,239,25,238,140,236,244,234,103,233,0,232,226,230,37,230,213,229,241,229,110,230,66,231,98,232,195,233,89,235,16,237, +218,238,171,240,131,242,98,244,72,246,40,248,242,249,154,251,34,253,158,254,44,0,226,1,195,3,187,5,172,7,123,9, +26,11,137,12,202,13,217,14,171,15,48,16,100,16,79,16,11,16,179,15,94,15,23,15,227,14,196,14,195,14,233,14, +60,15,190,15,105,16,58,17,44,18,60,19,103,20,158,21,209,22,236,23,231,24,197,25,150,26,103,27,63,28,30,29, +255,29,227,30,214,31,234,32,41,34,149,35,33,37,184,38,76,40,216,41,97,43,235,44,111,46,222,47,34,49,42,50, +239,50,119,51,204,51,246,51,249,51,213,51,141,51,44,51,191,50,82,50,236,49,143,49,56,49,227,48,147,48,72,48, +1,48,180,47,84,47,206,46,21,46,34,45,242,43,135,42,230,40,19,39,24,37,255,34,213,32,165,30,116,28,66,26, +8,24,194,21,109,19,14,17,172,14,80,12,255,9,183,7,113,5,35,3,199,0,88,254,220,251,92,249,230,246,137,244, +84,242,84,240,146,238,21,237,223,235,239,234,64,234,196,233,107,233,37,233,228,232,158,232,83,232,10,232,204,231,168,231, +169,231,216,231,56,232,197,232,120,233,68,234,35,235,14,236,2,237,254,237,250,238,238,239,207,240,144,241,44,242,162,242, +240,242,26,243,32,243,4,243,207,242,143,242,88,242,58,242,61,242,92,242,136,242,177,242,200,242,195,242,160,242,92,242, +244,241,101,241,177,240,223,239,252,238,20,238,51,237,91,236,143,235,211,234,45,234,169,233,77,233,23,233,252,232,240,232, +234,232,238,232,12,233,86,233,218,233,154,234,142,235,169,236,219,237,25,239,91,240,145,241,172,242,150,243,63,244,160,244, +187,244,154,244,78,244,228,243,111,243,254,242,167,242,121,242,124,242,171,242,245,242,66,243,125,243,156,243,156,243,128,243, +71,243,233,242,93,242,157,241,179,240,181,239,192,238,239,237,82,237,232,236,167,236,133,236,123,236,132,236,155,236,176,236, +172,236,115,236,245,235,48,235,53,234,35,233,23,232,40,231,100,230,213,229,135,229,139,229,244,229,204,230,19,232,186,233, +171,235,209,237,28,240,131,242,253,244,127,247,250,249,96,252,165,254,201,0,208,2,192,4,154,6,93,8,4,10,140,11, +247,12,70,14,123,15,142,16,115,17,30,18,133,18,168,18,139,18,55,18,178,17,1,17,40,16,46,15,29,14,4,13, +244,11,250,10,35,10,117,9,244,8,161,8,122,8,125,8,170,8,4,9,146,9,86,10,76,11,103,12,147,13,192,14, +231,15,13,17,62,18,133,19,229,20,83,22,195,23,44,25,143,26,246,27,104,29,230,30,102,32,219,33,59,35,131,36, +186,37,226,38,249,39,245,40,205,41,124,42,5,43,113,43,196,43,253,43,19,44,0,44,195,43,104,43,252,42,137,42, +19,42,151,41,20,41,143,40,19,40,166,39,68,39,219,38,85,38,166,37,208,36,231,35,252,34,24,34,46,33,38,32, +231,30,106,29,185,27,232,25,8,24,26,22,24,20,243,17,166,15,57,13,184,10,47,8,163,5,21,3,135,0,6,254, +167,251,136,249,188,247,77,246,50,245,90,244,178,243,46,243,200,242,124,242,68,242,20,242,225,241,162,241,85,241,2,241, +181,240,125,240,96,240,92,240,104,240,122,240,146,240,185,240,1,241,122,241,42,242,255,242,221,243,161,244,57,245,164,245, +241,245,51,246,116,246,177,246,220,246,239,246,242,246,249,246,29,247,105,247,219,247,97,248,234,248,109,249,241,249,127,250, +27,251,192,251,95,252,236,252,96,253,187,253,252,253,23,254,246,253,128,253,167,252,114,251,249,249,91,248,179,246,20,245, +136,243,31,242,240,240,21,240,163,239,159,239,250,239,157,240,108,241,84,242,68,243,43,244,239,244,113,245,152,245,88,245, +187,244,215,243,200,242,169,241,137,240,119,239,129,238,181,237,32,237,194,236,144,236,123,236,113,236,105,236,94,236,77,236, +44,236,235,235,126,235,228,234,41,234,102,233,177,232,23,232,155,231,55,231,239,230,205,230,225,230,49,231,175,231,57,232, +168,232,218,232,195,232,106,232,228,231,65,231,135,230,180,229,199,228,198,227,197,226,222,225,41,225,185,224,149,224,193,224, +61,225,10,226,39,227,141,228,47,230,254,231,236,233,236,235,248,237,10,240,30,242,45,244,47,246,36,248,14,250,243,251, +218,253,196,255,171,1,129,3,53,5,183,6,254,7,2,9,193,9,60,10,115,10,103,10,26,10,150,9,231,8,29,8, +75,7,125,6,191,5,20,5,131,4,16,4,198,3,177,3,217,3,70,4,244,4,222,5,248,6,51,8,133,9,226,10, +68,12,167,13,12,15,119,16,237,17,113,19,3,21,156,22,56,24,211,25,112,27,24,29,209,30,162,32,138,34,131,36, +133,38,138,40,137,42,126,44,94,46,30,48,174,49,0,51,13,52,208,52,78,53,140,53,149,53,113,53,43,53,202,52, +87,52,217,51,89,51,227,50,126,50,47,50,245,49,196,49,140,49,62,49,209,48,71,48,165,47,235,46,21,46,19,45, +216,43,94,42,175,40,224,38,8,37,54,35,103,33,145,31,168,29,167,27,147,25,115,23,73,21,16,19,192,16,84,14, +216,11,95,9,0,7,200,4,178,2,176,0,179,254,189,252,219,250,34,249,162,247,88,246,54,245,45,244,53,243,88,242, +162,241,30,241,196,240,127,240,57,240,228,239,135,239,52,239,248,238,214,238,190,238,152,238,81,238,232,237,109,237,246,236, +148,236,79,236,36,236,11,236,4,236,20,236,65,236,143,236,250,236,121,237,4,238,148,238,39,239,188,239,78,240,215,240, +79,241,180,241,5,242,71,242,121,242,149,242,146,242,104,242,28,242,183,241,75,241,228,240,128,240,25,240,160,239,16,239, +112,238,206,237,59,237,194,236,102,236,36,236,252,235,240,235,3,236,52,236,124,236,201,236,10,237,55,237,77,237,85,237, +83,237,70,237,35,237,221,236,109,236,215,235,39,235,103,234,158,233,201,232,231,231,253,230,29,230,98,229,227,228,169,228, +172,228,216,228,26,229,102,229,189,229,37,230,159,230,34,231,164,231,27,232,137,232,249,232,121,233,10,234,158,234,28,235, +106,235,125,235,89,235,15,235,173,234,60,234,182,233,17,233,72,232,98,231,116,230,146,229,207,228,50,228,186,227,105,227, +67,227,81,227,160,227,51,228,10,229,30,230,102,231,220,232,125,234,67,236,39,238,31,240,31,242,31,244,30,246,28,248, +23,250,6,252,219,253,133,255,253,0,66,2,94,3,89,4,58,5,253,5,159,6,30,7,131,7,222,7,64,8,180,8, +61,9,212,9,111,10,12,11,176,11,99,12,42,13,2,14,223,14,179,15,117,16,39,17,207,17,120,18,41,19,226,19, +161,20,104,21,60,22,36,23,42,24,78,25,134,26,197,27,254,28,43,30,80,31,116,32,160,33,214,34,17,36,76,37, +131,38,185,39,248,40,73,42,177,43,44,45,175,46,43,48,144,49,212,50,241,51,231,52,180,53,84,54,196,54,2,55, +17,55,248,54,193,54,119,54,35,54,198,53,94,53,228,52,84,52,171,51,232,50,11,50,21,49,5,48,222,46,168,45, +114,44,77,43,69,42,93,41,139,40,187,39,216,38,213,37,175,36,106,35,11,34,141,32,223,30,231,28,138,26,188,23, +130,20,245,16,54,13,102,9,160,5,245,1,113,254,33,251,16,248,80,245,234,242,227,240,50,239,201,237,146,236,121,235, +111,234,109,233,107,232,102,231,91,230,70,229,41,228,11,227,250,225,10,225,81,224,225,223,199,223,5,224,152,224,119,225, +151,226,233,227,93,229,224,230,96,232,203,233,16,235,33,236,246,236,139,237,229,237,15,238,28,238,32,238,51,238,98,238, +180,238,38,239,174,239,64,240,215,240,114,241,17,242,184,242,94,243,244,243,98,244,142,244,105,244,239,243,40,243,37,242, +245,240,160,239,41,238,147,236,231,234,59,233,174,231,96,230,103,229,203,228,130,228,119,228,149,228,203,228,10,229,74,229, +124,229,148,229,132,229,73,229,235,228,119,228,255,227,140,227,32,227,185,226,87,226,2,226,203,225,194,225,243,225,94,226, +252,226,199,227,185,228,211,229,17,231,107,232,205,233,34,235,84,236,92,237,59,238,253,238,170,239,69,240,204,240,57,241, +141,241,203,241,249,241,23,242,32,242,10,242,204,241,98,241,208,240,24,240,63,239,69,238,45,237,252,235,195,234,150,233, +134,232,161,231,239,230,116,230,55,230,66,230,159,230,78,231,69,232,114,233,193,234,38,236,160,237,49,239,218,240,148,242, +78,244,248,245,138,247,9,249,129,250,1,252,141,253,39,255,200,0,108,2,19,4,192,5,111,7,22,9,166,10,17,12, +80,13,104,14,100,15,79,16,49,17,9,18,213,18,145,19,61,20,218,20,106,21,239,21,108,22,233,22,111,23,4,24, +168,24,83,25,246,25,136,26,7,27,124,27,239,27,101,28,218,28,66,29,149,29,212,29,13,30,85,30,191,30,79,31, +254,31,190,32,134,33,83,34,46,35,33,36,53,37,107,38,191,39,36,41,141,42,236,43,49,45,76,46,53,47,229,47, +94,48,160,48,174,48,135,48,46,48,168,47,3,47,82,46,165,45,7,45,121,44,250,43,136,43,42,43,233,42,203,42, +209,42,236,42,12,43,32,43,28,43,250,42,183,42,72,42,158,41,171,40,100,39,201,37,226,35,183,33,79,31,174,28, +216,25,216,22,189,19,152,16,115,13,78,10,36,7,243,3,196,0,169,253,185,250,4,248,137,245,63,243,24,241,14,239, +42,237,121,235,6,234,212,232,219,231,16,231,110,230,250,229,186,229,180,229,222,229,38,230,119,230,194,230,4,231,70,231, +145,231,234,231,77,232,177,232,13,233,91,233,157,233,213,233,5,234,43,234,68,234,79,234,80,234,80,234,91,234,121,234, +180,234,18,235,150,235,68,236,26,237,18,238,32,239,54,240,66,241,49,242,245,242,128,243,200,243,197,243,115,243,209,242, +229,241,182,240,80,239,192,237,22,236,99,234,187,232,47,231,205,229,162,228,179,227,3,227,146,226,92,226,92,226,139,226, +219,226,63,227,168,227,10,228,97,228,173,228,248,228,76,229,180,229,52,230,201,230,106,231,12,232,167,232,52,233,181,233, +44,234,157,234,12,235,121,235,229,235,83,236,195,236,55,237,175,237,42,238,165,238,28,239,138,239,236,239,66,240,143,240, +217,240,42,241,139,241,0,242,131,242,6,243,121,243,201,243,236,243,223,243,162,243,52,243,146,242,183,241,162,240,89,239, +236,237,113,236,255,234,168,233,115,232,103,231,133,230,210,229,87,229,27,229,37,229,118,229,17,230,244,230,24,232,119,233, +5,235,184,236,135,238,111,240,111,242,135,244,179,246,237,248,47,251,119,253,200,255,38,2,140,4,235,6,43,9,48,11, +234,12,85,14,121,15,101,16,31,17,168,17,254,17,35,18,38,18,26,18,16,18,13,18,12,18,5,18,248,17,240,17, +2,18,58,18,149,18,254,18,89,19,150,19,180,19,195,19,211,19,238,19,12,20,34,20,48,20,66,20,119,20,231,20, +159,21,150,22,183,23,237,24,52,26,149,27,32,29,220,30,190,32,174,34,141,36,68,38,204,39,41,41,97,42,124,43, +121,44,84,45,9,46,156,46,22,47,134,47,253,47,133,48,37,49,215,49,143,50,62,51,216,51,86,52,181,52,244,52, +16,53,255,52,181,52,45,52,109,51,134,50,143,49,152,48,168,47,186,46,194,45,183,44,148,43,84,42,242,40,100,39, +155,37,141,35,55,33,154,30,185,27,146,24,29,21,88,17,76,13,18,9,208,4,173,0,195,252,29,249,187,245,156,242, +201,239,83,237,79,235,197,233,175,232,247,231,132,231,60,231,18,231,1,231,6,231,30,231,62,231,89,231,96,231,74,231, +21,231,202,230,122,230,58,230,27,230,37,230,82,230,153,230,243,230,101,231,1,232,213,232,228,233,29,235,94,236,130,237, +121,238,72,239,7,240,205,240,162,241,119,242,54,243,204,243,58,244,141,244,215,244,31,245,93,245,130,245,135,245,108,245, +59,245,247,244,155,244,20,244,84,243,88,242,46,241,232,239,148,238,47,237,173,235,8,234,80,232,165,230,52,229,29,228, +108,227,23,227,18,227,86,227,233,227,213,228,23,230,156,231,65,233,227,234,109,236,217,237,39,239,82,240,74,241,247,241, +76,242,70,242,245,241,111,241,200,240,13,240,75,239,146,238,248,237,145,237,105,237,118,237,166,237,228,237,40,238,120,238, +225,238,102,239,253,239,141,240,0,241,78,241,127,241,161,241,191,241,210,241,200,241,140,241,19,241,95,240,123,239,113,238, +65,237,234,235,107,234,204,232,34,231,132,229,10,228,195,226,182,225,235,224,106,224,60,224,104,224,240,224,207,225,0,227, +123,228,60,230,60,232,109,234,193,236,42,239,157,241,29,244,174,246,82,249,6,252,186,254,96,1,233,3,77,6,137,8, +154,10,121,12,28,14,121,15,140,16,86,17,219,17,35,18,57,18,39,18,251,17,197,17,145,17,100,17,61,17,26,17, +252,16,237,16,248,16,39,17,118,17,214,17,48,18,119,18,169,18,209,18,2,19,71,19,159,19,1,20,98,20,188,20, +19,21,114,21,224,21,96,22,238,22,138,23,53,24,245,24,205,25,192,26,202,27,231,28,20,30,83,31,162,32,255,33, +93,35,178,36,241,37,24,39,42,40,46,41,38,42,14,43,221,43,135,44,6,45,90,45,139,45,161,45,166,45,158,45, +136,45,97,45,33,45,196,44,73,44,180,43,17,43,106,42,192,41,15,41,77,40,116,39,137,38,153,37,182,36,227,35, +18,35,38,34,252,32,126,31,168,29,137,27,53,25,182,22,8,20,34,17,254,13,164,10,40,7,167,3,58,0,246,252, +233,249,36,247,185,244,184,242,36,241,246,239,25,239,118,238,253,237,165,237,103,237,58,237,17,237,219,236,146,236,63,236, +243,235,195,235,187,235,218,235,26,236,118,236,248,236,174,237,168,238,231,239,94,241,242,242,134,244,0,246,79,247,102,248, +56,249,191,249,250,249,239,249,172,249,59,249,164,248,233,247,15,247,40,246,81,245,169,244,69,244,32,244,34,244,45,244, +44,244,32,244,21,244,21,244,23,244,254,243,161,243,225,242,186,241,66,240,158,238,238,236,71,235,175,233,40,232,182,230, +104,229,78,228,119,227,234,226,170,226,178,226,252,226,124,227,31,228,204,228,105,229,225,229,47,230,84,230,87,230,63,230, +15,230,203,229,125,229,57,229,21,229,37,229,112,229,237,229,137,230,49,231,218,231,129,232,43,233,220,233,147,234,72,235, +242,235,136,236,3,237,99,237,173,237,230,237,18,238,51,238,68,238,63,238,29,238,218,237,120,237,252,236,106,236,192,235, +250,234,16,234,1,233,212,231,153,230,93,229,40,228,249,226,206,225,166,224,138,223,139,222,184,221,26,221,179,220,129,220, +136,220,208,220,102,221,81,222,142,223,13,225,189,226,145,228,135,230,160,232,219,234,43,237,123,239,185,241,221,243,237,245, +247,247,0,250,5,252,246,253,195,255,101,1,225,2,67,4,147,5,206,6,231,7,207,8,126,9,250,9,81,10,149,10, +213,10,27,11,107,11,201,11,53,12,173,12,43,13,170,13,43,14,181,14,83,15,12,16,219,16,178,17,126,18,53,19, +219,19,129,20,58,21,20,22,14,23,28,24,54,25,90,26,144,27,226,28,85,30,230,31,136,33,50,35,220,36,136,38, +56,40,237,41,164,43,91,45,17,47,196,48,116,50,26,52,171,53,29,55,107,56,148,57,155,58,129,59,61,60,193,60, +4,61,6,61,214,60,134,60,39,60,187,59,60,59,160,58,229,57,14,57,36,56,38,55,7,54,178,52,21,51,43,49, +255,46,166,44,50,42,169,39,7,37,65,34,84,31,70,28,36,25,249,21,201,18,146,15,78,12,255,8,170,5,87,2, +12,255,205,251,156,248,129,245,139,242,204,239,88,237,58,235,119,233,12,232,246,230,48,230,176,229,107,229,73,229,49,229, +13,229,207,228,120,228,20,228,181,227,109,227,75,227,83,227,136,227,228,227,94,228,240,228,148,229,72,230,11,231,218,231, +173,232,119,233,37,234,172,234,10,235,70,235,111,235,146,235,182,235,220,235,5,236,48,236,101,236,167,236,247,236,78,237, +160,237,221,237,250,237,239,237,189,237,99,237,232,236,82,236,172,235,0,235,84,234,169,233,248,232,59,232,113,231,162,230, +219,229,40,229,141,228,4,228,135,227,22,227,185,226,133,226,138,226,211,226,93,227,31,228,14,229,37,230,96,231,178,232, +5,234,60,235,53,236,223,236,53,237,65,237,17,237,177,236,40,236,130,235,206,234,41,234,173,233,107,233,100,233,135,233, +188,233,239,233,23,234,53,234,73,234,79,234,64,234,20,234,203,233,109,233,9,233,174,232,99,232,44,232,9,232,253,231, +12,232,59,232,132,232,220,232,49,233,110,233,135,233,121,233,72,233,251,232,155,232,53,232,209,231,127,231,75,231,67,231, +114,231,226,231,154,232,159,233,241,234,141,236,107,238,131,240,205,242,68,245,230,247,170,250,132,253,100,0,54,3,236,5, +126,8,233,10,39,13,51,15,3,17,143,18,216,19,232,20,208,21,163,22,106,23,35,24,197,24,64,25,137,25,153,25, +111,25,15,25,127,24,201,23,244,22,10,22,18,21,19,20,22,19,42,18,101,17,223,16,167,16,195,16,41,17,200,17, +142,18,110,19,100,20,108,21,125,22,135,23,117,24,59,25,218,25,97,26,228,26,115,27,16,28,177,28,78,29,229,29, +130,30,55,31,19,32,26,33,67,34,124,35,182,36,232,37,17,39,50,40,73,41,78,42,54,43,248,43,142,44,247,44, +54,45,81,45,78,45,52,45,7,45,205,44,133,44,45,44,194,43,65,43,169,42,253,41,61,41,101,40,110,39,80,38, +1,37,127,35,200,33,219,31,182,29,85,27,182,24,222,21,217,18,186,15,151,12,128,9,128,6,155,3,209,0,39,254, +162,251,73,249,36,247,56,245,131,243,3,242,178,240,136,239,129,238,150,237,196,236,7,236,92,235,191,234,46,234,167,233, +44,233,194,232,111,232,56,232,31,232,35,232,66,232,122,232,202,232,52,233,181,233,73,234,231,234,135,235,36,236,189,236, +83,237,231,237,118,238,250,238,104,239,188,239,244,239,21,240,38,240,43,240,39,240,28,240,14,240,1,240,254,239,9,240, +34,240,67,240,101,240,126,240,133,240,116,240,72,240,254,239,151,239,22,239,126,238,210,237,17,237,54,236,62,235,45,234, +12,233,236,231,225,230,249,229,59,229,173,228,85,228,62,228,114,228,243,228,183,229,170,230,175,231,178,232,170,233,155,234, +136,235,112,236,70,237,249,237,126,238,215,238,21,239,77,239,142,239,219,239,47,240,132,240,221,240,72,241,208,241,119,242, +47,243,226,243,118,244,225,244,39,245,82,245,108,245,119,245,107,245,67,245,2,245,183,244,122,244,91,244,92,244,112,244, +128,244,117,244,66,244,228,243,96,243,185,242,246,241,24,241,35,240,29,239,13,238,253,236,248,235,7,235,53,234,139,233, +16,233,196,232,165,232,176,232,229,232,72,233,224,233,176,234,181,235,233,236,65,238,186,239,86,241,27,243,12,245,39,247, +93,249,157,251,213,253,254,255,20,2,24,4,2,6,198,7,84,9,159,10,163,11,102,12,244,12,90,13,162,13,211,13, +242,13,9,14,29,14,55,14,87,14,124,14,167,14,219,14,32,15,128,15,3,16,166,16,96,17,39,18,242,18,194,19, +153,20,122,21,99,22,72,23,29,24,217,24,127,25,26,26,190,26,122,27,86,28,80,29,99,30,137,31,195,32,23,34, +138,35,30,37,201,38,121,40,27,42,158,43,251,44,54,46,89,47,110,48,120,49,115,50,84,51,20,52,173,52,36,53, +128,53,201,53,3,54,42,54,57,54,38,54,237,53,140,53,6,53,98,52,168,51,225,50,14,50,42,49,41,48,250,46, +145,45,238,43,28,42,44,40,46,38,39,36,10,34,195,31,64,29,124,26,134,23,113,20,82,17,50,14,14,11,219,7, +149,4,69,1,251,253,202,250,189,247,217,244,27,242,131,239,22,237,225,234,238,232,72,231,239,229,223,228,20,228,138,227, +56,227,17,227,2,227,243,226,209,226,150,226,70,226,237,225,156,225,92,225,52,225,41,225,67,225,136,225,255,225,169,226, +122,227,101,228,87,229,70,230,40,231,251,231,186,232,100,233,246,233,114,234,221,234,61,235,154,235,245,235,79,236,169,236, +8,237,112,237,226,237,88,238,198,238,28,239,77,239,85,239,53,239,243,238,146,238,20,238,120,237,195,236,1,236,65,235, +147,234,255,233,141,233,60,233,14,233,5,233,36,233,104,233,202,233,63,234,193,234,82,235,248,235,190,236,166,237,171,238, +190,239,206,240,202,241,169,242,96,243,229,243,44,244,44,244,227,243,86,243,154,242,196,241,235,240,33,240,117,239,242,238, +160,238,133,238,157,238,222,238,53,239,140,239,212,239,2,240,19,240,7,240,221,239,152,239,57,239,199,238,72,238,197,237, +70,237,207,236,101,236,9,236,187,235,118,235,47,235,210,234,78,234,150,233,173,232,161,231,138,230,129,229,150,228,210,227, +58,227,215,226,182,226,229,226,115,227,97,228,167,229,53,231,248,232,223,234,224,236,246,238,31,241,92,243,171,245,12,248, +123,250,244,252,114,255,235,1,83,4,155,6,180,8,142,10,28,12,87,13,64,14,222,14,58,15,95,15,82,15,22,15, +177,14,48,14,165,13,37,13,193,12,123,12,79,12,47,12,21,12,255,11,249,11,14,12,69,12,156,12,12,13,141,13, +30,14,196,14,135,15,106,16,105,17,121,18,138,19,145,20,136,21,109,22,62,23,253,23,171,24,77,25,233,25,136,26, +49,27,234,27,181,28,153,29,153,30,185,31,248,32,76,34,163,35,233,36,17,38,23,39,0,40,212,40,155,41,84,42, +253,42,151,43,38,44,175,44,57,45,193,45,63,46,164,46,229,46,250,46,225,46,156,46,40,46,133,45,177,44,177,43, +142,42,82,41,4,40,160,38,26,37,99,35,115,33,72,31,233,28,94,26,175,23,219,20,223,17,183,14,106,11,2,8, +146,4,46,1,234,253,216,250,7,248,132,245,87,243,132,241,1,240,190,238,167,237,169,236,185,235,213,234,2,234,71,233, +169,232,42,232,197,231,123,231,79,231,74,231,115,231,203,231,73,232,223,232,121,233,13,234,154,234,40,235,192,235,102,236, +23,237,203,237,120,238,31,239,197,239,113,240,37,241,216,241,125,242,4,243,105,243,175,243,223,243,1,244,23,244,28,244, +12,244,232,243,183,243,134,243,92,243,57,243,23,243,236,242,178,242,101,242,3,242,133,241,227,240,18,240,14,239,218,237, +130,236,17,235,147,233,14,232,140,230,29,229,219,227,229,226,85,226,55,226,131,226,40,227,13,228,26,229,63,230,104,231, +132,232,128,233,77,234,230,234,80,235,150,235,195,235,224,235,242,235,254,235,17,236,54,236,123,236,226,236,101,237,245,237, +130,238,0,239,106,239,190,239,250,239,27,240,34,240,20,240,0,240,242,239,244,239,4,240,21,240,25,240,8,240,230,239, +188,239,143,239,94,239,26,239,177,238,22,238,72,237,82,236,68,235,45,234,26,233,18,232,28,231,60,230,116,229,197,228, +45,228,172,227,70,227,5,227,244,226,25,227,118,227,6,228,200,228,193,229,253,230,139,232,110,234,160,236,13,239,157,241, +60,244,221,246,121,249,8,252,125,254,199,0,216,2,170,4,65,6,162,7,207,8,193,9,110,10,208,10,232,10,200,10, +130,10,44,10,211,9,129,9,60,9,15,9,4,9,36,9,109,9,216,9,90,10,236,10,140,11,63,12,3,13,213,13, +172,14,128,15,80,16,36,17,7,18,0,19,11,20,31,21,45,22,50,23,47,24,45,25,48,26,53,27,49,28,27,29, +243,29,197,30,162,31,154,32,179,33,230,34,38,36,103,37,163,38,219,39,18,41,73,42,123,43,158,44,169,45,150,46, +101,47,22,48,171,48,38,49,134,49,205,49,252,49,23,50,33,50,29,50,9,50,226,49,161,49,59,49,168,48,222,47, +215,46,144,45,10,44,74,42,86,40,53,38,239,35,138,33,10,31,113,28,188,25,230,22,233,19,196,16,126,13,32,10, +183,6,83,3,254,255,192,252,162,249,169,246,219,243,62,241,212,238,163,236,174,234,251,232,145,231,114,230,158,229,12,229, +177,228,126,228,101,228,92,228,87,228,80,228,69,228,59,228,65,228,105,228,196,228,90,229,37,230,18,231,14,232,7,233, +243,233,208,234,155,235,77,236,220,236,59,237,101,237,98,237,64,237,15,237,218,236,164,236,105,236,33,236,203,235,104,235, +1,235,156,234,63,234,234,233,156,233,78,233,252,232,161,232,55,232,190,231,52,231,153,230,237,229,47,229,96,228,130,227, +154,226,173,225,192,224,215,223,245,222,29,222,88,221,176,220,53,220,238,219,224,219,5,220,88,220,217,220,144,221,136,222, +198,223,64,225,226,226,140,228,38,230,163,231,0,233,68,234,108,235,113,236,70,237,228,237,81,238,160,238,231,238,56,239, +154,239,12,240,136,240,14,241,159,241,60,242,221,242,118,243,246,243,80,244,125,244,125,244,83,244,4,244,145,243,4,243, +104,242,206,241,65,241,197,240,85,240,228,239,109,239,240,238,118,238,5,238,154,237,38,237,154,236,235,235,29,235,63,234, +102,233,161,232,251,231,123,231,46,231,40,231,124,231,58,232,95,233,222,234,162,236,155,238,191,240,8,243,109,245,219,247, +63,250,140,252,194,254,239,0,32,3,88,5,138,7,161,9,139,11,71,13,223,14,99,16,214,17,42,19,70,20,21,21, +144,21,194,21,191,21,148,21,66,21,197,20,33,20,104,19,190,18,73,18,34,18,75,18,182,18,77,19,4,20,218,20, +210,21,231,22,7,24,23,25,0,26,184,26,75,27,204,27,78,28,219,28,113,29,15,30,186,30,128,31,112,32,149,33, +235,34,99,36,233,37,107,39,223,40,69,42,154,43,222,44,11,46,29,47,20,48,244,48,200,49,153,50,108,51,64,52, +19,53,221,53,156,54,74,55,228,55,99,56,190,56,237,56,235,56,181,56,78,56,180,55,229,54,215,53,124,52,200,50, +179,48,69,46,141,43,162,40,151,37,116,34,55,31,216,27,81,24,166,20,230,16,39,13,122,9,233,5,116,2,19,255, +191,251,117,248,56,245,11,242,242,238,236,235,248,232,22,230,76,227,164,224,47,222,253,219,26,218,143,216,89,215,111,214, +192,213,58,213,208,212,123,212,61,212,31,212,37,212,83,212,163,212,17,213,155,213,69,214,20,215,15,216,52,217,125,218, +227,219,93,221,231,222,127,224,32,226,195,227,94,229,233,230,97,232,198,233,24,235,82,236,106,237,88,238,25,239,179,239, +53,240,168,240,16,241,96,241,137,241,129,241,74,241,240,240,134,240,20,240,151,239,4,239,83,238,134,237,173,236,220,235, +36,235,140,234,15,234,171,233,97,233,64,233,90,233,188,233,104,234,83,235,110,236,174,237,12,239,135,240,26,242,189,243, +91,245,226,246,64,248,108,249,100,250,43,251,196,251,45,252,105,252,125,252,114,252,87,252,61,252,48,252,52,252,73,252, +105,252,139,252,169,252,193,252,207,252,210,252,200,252,172,252,121,252,46,252,203,251,84,251,209,250,68,250,177,249,21,249, +111,248,187,247,250,246,42,246,76,245,92,244,89,243,67,242,34,241,255,239,230,238,221,237,229,236,252,235,30,235,79,234, +154,233,14,233,187,232,172,232,230,232,109,233,67,234,109,235,237,236,195,238,230,240,76,243,230,245,174,248,156,251,170,254, +203,1,235,4,241,7,196,10,82,13,145,15,127,17,30,19,114,20,122,21,55,22,172,22,218,22,197,22,114,22,232,21, +49,21,90,20,114,19,131,18,147,17,161,16,166,15,161,14,149,13,143,12,154,11,194,10,10,10,114,9,245,8,146,8, +76,8,37,8,34,8,67,8,133,8,226,8,83,9,210,9,89,10,228,10,117,11,15,12,186,12,123,13,83,14,62,15, +52,16,49,17,51,18,64,19,97,20,153,21,227,22,55,24,140,25,221,26,44,28,123,29,201,30,16,32,71,33,101,34, +108,35,97,36,74,37,40,38,240,38,151,39,21,40,104,40,156,40,185,40,198,40,188,40,145,40,59,40,186,39,17,39, +70,38,93,37,81,36,31,35,200,33,86,32,215,30,85,29,202,27,40,26,90,24,85,22,25,20,181,17,55,15,169,12, +10,10,83,7,128,4,152,1,170,254,203,251,13,249,127,246,44,244,30,242,99,240,0,239,244,237,47,237,152,236,21,236, +147,235,11,235,127,234,248,233,126,233,27,233,219,232,207,232,3,233,129,233,64,234,46,235,50,236,56,237,56,238,53,239, +54,240,57,241,55,242,29,243,222,243,115,244,229,244,67,245,157,245,254,245,105,246,222,246,96,247,242,247,153,248,87,249, +37,250,250,250,196,251,112,252,238,252,47,253,45,253,229,252,96,252,175,251,230,250,27,250,93,249,178,248,26,248,143,247, +12,247,139,246,11,246,135,245,251,244,99,244,184,243,248,242,36,242,66,241,96,240,143,239,229,238,120,238,87,238,137,238, +7,239,192,239,152,240,118,241,65,242,235,242,108,243,197,243,252,243,25,244,36,244,37,244,34,244,32,244,38,244,60,244, +101,244,162,244,235,244,49,245,103,245,130,245,132,245,117,245,96,245,73,245,41,245,242,244,149,244,12,244,93,243,153,242, +207,241,5,241,54,240,82,239,78,238,34,237,212,235,107,234,239,232,96,231,187,229,251,227,38,226,69,224,109,222,181,220, +48,219,240,217,255,216,101,216,33,216,50,216,140,216,38,217,245,217,243,218,30,220,115,221,239,222,140,224,67,226,15,228, +241,229,231,231,240,233,6,236,28,238,36,240,18,242,225,243,148,245,46,247,182,248,47,250,151,251,235,252,37,254,63,255, +48,0,239,0,119,1,204,1,251,1,22,2,52,2,101,2,175,2,17,3,135,3,12,4,160,4,69,5,255,5,209,6, +187,7,188,8,205,9,230,10,253,11,5,13,244,13,197,14,126,15,44,16,222,16,157,17,112,18,86,19,80,20,99,21, +151,22,250,23,144,25,88,27,74,29,87,31,118,33,160,35,207,37,253,39,28,42,28,44,235,45,125,47,207,48,230,49, +203,50,136,51,39,52,173,52,33,53,133,53,221,53,39,54,100,54,148,54,186,54,215,54,238,54,250,54,244,54,208,54, +132,54,13,54,111,53,177,52,216,51,228,50,200,49,121,48,235,46,28,45,20,43,222,40,137,38,25,36,143,33,226,30, +10,28,4,25,210,21,127,18,24,15,172,11,68,8,230,4,150,1,85,254,40,251,24,248,47,245,120,242,251,239,191,237, +205,235,43,234,224,232,243,231,100,231,42,231,54,231,112,231,191,231,11,232,66,232,84,232,56,232,235,231,109,231,197,230, +254,229,37,229,73,228,114,227,171,226,253,225,116,225,28,225,255,224,34,225,125,225,4,226,162,226,71,227,227,227,110,228, +226,228,62,229,130,229,178,229,214,229,248,229,38,230,105,230,200,230,67,231,215,231,124,232,38,233,201,233,85,234,192,234, +0,235,22,235,6,235,215,234,144,234,52,234,198,233,71,233,190,232,54,232,187,231,89,231,22,231,244,230,246,230,26,231, +97,231,201,231,79,232,236,232,158,233,104,234,83,235,106,236,173,237,16,239,120,240,192,241,200,242,121,243,208,243,208,243, +133,243,245,242,43,242,49,241,30,240,13,239,30,238,103,237,241,236,181,236,165,236,179,236,208,236,245,236,24,237,46,237, +45,237,10,237,195,236,94,236,226,235,86,235,187,234,13,234,73,233,114,232,144,231,179,230,231,229,49,229,141,228,243,227, +89,227,189,226,32,226,138,225,2,225,144,224,60,224,19,224,38,224,132,224,60,225,82,226,192,227,120,229,110,231,152,233, +241,235,121,238,43,241,252,243,219,246,181,249,120,252,28,255,159,1,2,4,67,6,94,8,72,10,247,11,102,13,150,14, +136,15,68,16,204,16,34,17,72,17,63,17,12,17,179,16,56,16,160,15,243,14,63,14,148,13,9,13,175,12,146,12, +178,12,4,13,126,13,21,14,195,14,135,15,93,16,64,17,40,18,11,19,228,19,177,20,119,21,57,22,250,22,186,23, +126,24,75,25,43,26,41,27,74,28,145,29,249,30,122,32,13,34,174,35,87,37,253,38,146,40,5,42,72,43,82,44, +38,45,204,45,81,46,194,46,37,47,131,47,223,47,64,48,171,48,31,49,152,49,11,50,110,50,182,50,222,50,229,50, +204,50,144,50,45,50,159,49,228,48,253,47,245,46,214,45,174,44,129,43,76,42,5,41,155,39,255,37,39,36,15,34, +190,31,58,29,142,26,190,23,204,20,185,17,136,14,66,11,247,7,187,4,158,1,173,254,233,251,79,249,216,246,127,244, +65,242,32,240,33,238,74,236,157,234,30,233,207,231,182,230,216,229,57,229,218,228,186,228,209,228,21,229,122,229,246,229, +131,230,22,231,166,231,41,232,150,232,231,232,28,233,58,233,72,233,73,233,59,233,26,233,224,232,142,232,43,232,195,231, +98,231,16,231,209,230,162,230,136,230,135,230,170,230,248,230,113,231,14,232,191,232,120,233,50,234,234,234,161,235,79,236, +231,236,85,237,134,237,115,237,29,237,145,236,218,235,1,235,12,234,0,233,234,231,223,230,246,229,70,229,219,228,182,228, +211,228,41,229,176,229,94,230,39,231,251,231,200,232,129,233,34,234,173,234,46,235,173,235,43,236,165,236,23,237,126,237, +223,237,63,238,162,238,6,239,98,239,175,239,228,239,2,240,13,240,7,240,241,239,200,239,142,239,71,239,0,239,202,238, +179,238,197,238,255,238,89,239,201,239,69,240,196,240,64,241,179,241,21,242,94,242,132,242,127,242,70,242,211,241,37,241, +65,240,49,239,5,238,204,236,144,235,87,234,37,233,254,231,235,230,253,229,70,229,212,228,175,228,210,228,55,229,215,229, +175,230,195,231,22,233,171,234,125,236,133,238,182,240,2,243,95,245,193,247,25,250,91,252,122,254,110,0,51,2,198,3, +40,5,85,6,72,7,251,7,110,8,168,8,181,8,167,8,142,8,118,8,105,8,108,8,135,8,191,8,27,9,153,9, +54,10,234,10,172,11,121,12,81,13,57,14,52,15,65,16,88,17,113,18,129,19,134,20,132,21,132,22,142,23,168,24, +213,25,18,27,91,28,175,29,15,31,126,32,252,33,136,35,28,37,180,38,75,40,221,41,105,43,237,44,104,46,215,47, +58,49,147,50,228,51,47,53,112,54,160,55,180,56,160,57,94,58,235,58,74,59,129,59,146,59,127,59,72,59,236,58, +114,58,223,57,56,57,127,56,172,55,179,54,135,53,32,52,126,50,168,48,169,46,142,44,96,42,38,40,229,37,159,35, +83,33,253,30,147,28,12,26,96,23,143,20,160,17,160,14,155,11,150,8,145,5,136,2,118,255,97,252,85,249,100,246, +162,243,28,241,217,238,219,236,32,235,167,233,112,232,118,231,176,230,17,230,133,229,0,229,120,228,236,227,98,227,222,226, +104,226,5,226,187,225,145,225,141,225,179,225,1,226,111,226,246,226,140,227,47,228,224,228,158,229,101,230,44,231,231,231, +137,232,17,233,130,233,230,233,69,234,161,234,250,234,75,235,152,235,228,235,55,236,149,236,252,236,99,237,195,237,21,238, +91,238,148,238,190,238,203,238,173,238,85,238,194,237,253,236,25,236,38,235,48,234,56,233,63,232,73,231,98,230,155,229, +3,229,160,228,113,228,111,228,156,228,1,229,174,229,174,230,254,231,133,233,28,235,153,236,218,237,206,238,111,239,196,239, +214,239,177,239,97,239,251,238,149,238,68,238,26,238,28,238,73,238,155,238,9,239,140,239,32,240,188,240,87,241,227,241, +86,242,165,242,203,242,196,242,143,242,44,242,161,241,245,240,54,240,117,239,193,238,39,238,176,237,92,237,41,237,15,237, +2,237,244,236,212,236,146,236,35,236,131,235,184,234,208,233,226,232,10,232,96,231,250,230,230,230,44,231,205,231,202,232, +30,234,195,235,176,237,212,239,28,242,118,244,215,246,57,249,159,251,15,254,135,0,0,3,107,5,183,7,216,9,199,11, +135,13,30,15,146,16,228,17,20,19,30,20,254,20,171,21,30,22,83,22,75,22,19,22,189,21,95,21,10,21,200,20, +154,20,125,20,112,20,115,20,139,20,184,20,246,20,61,21,132,21,202,21,16,22,93,22,179,22,12,23,97,23,169,23, +229,23,32,24,109,24,218,24,113,25,48,26,19,27,22,28,55,29,119,30,209,31,63,33,181,34,44,36,162,37,25,39, +146,40,5,42,100,43,155,44,159,45,114,46,33,47,189,47,83,48,224,48,88,49,175,49,223,49,237,49,227,49,204,49, +169,49,113,49,26,49,155,48,243,47,38,47,56,46,43,45,254,43,174,42,59,41,163,39,223,37,232,35,174,33,39,31, +81,28,54,25,232,21,123,18,255,14,122,11,239,7,101,4,231,0,138,253,100,250,129,247,225,244,126,242,76,240,69,238, +108,236,200,234,93,233,40,232,26,231,34,230,49,229,69,228,102,227,163,226,13,226,172,225,128,225,134,225,182,225,14,226, +138,226,41,227,227,227,172,228,115,229,41,230,195,230,60,231,149,231,211,231,253,231,23,232,44,232,69,232,111,232,180,232, +22,233,147,233,35,234,188,234,89,235,250,235,161,236,80,237,6,238,192,238,121,239,47,240,228,240,152,241,70,242,230,242, +103,243,187,243,213,243,177,243,84,243,192,242,251,241,6,241,228,239,157,238,64,237,227,235,158,234,137,233,181,232,45,232, +240,231,251,231,67,232,189,232,92,233,20,234,221,234,173,235,124,236,63,237,237,237,128,238,249,238,96,239,196,239,48,240, +172,240,52,241,191,241,64,242,173,242,4,243,72,243,126,243,168,243,194,243,196,243,170,243,110,243,19,243,163,242,38,242, +166,241,39,241,173,240,57,240,206,239,116,239,53,239,24,239,33,239,75,239,136,239,198,239,245,239,9,240,253,239,208,239, +131,239,20,239,133,238,216,237,24,237,85,236,160,235,9,235,150,234,73,234,30,234,21,234,44,234,98,234,177,234,21,235, +133,235,5,236,160,236,104,237,110,238,187,239,76,241,21,243,6,245,19,247,56,249,114,251,186,253,5,0,68,2,103,4, +100,6,51,8,205,9,39,11,54,12,237,12,78,13,101,13,75,13,27,13,240,12,218,12,227,12,12,13,86,13,188,13, +57,14,196,14,84,15,231,15,125,16,29,17,201,17,127,18,55,19,230,19,137,20,37,21,195,21,110,22,39,23,235,23, +179,24,124,25,75,26,41,27,31,28,42,29,67,30,95,31,120,32,144,33,173,34,215,35,13,37,73,38,135,39,198,40, +10,42,89,43,176,44,0,46,57,47,75,48,49,49,239,49,143,50,20,51,123,51,190,51,218,51,215,51,199,51,184,51, +178,51,173,51,156,51,115,51,45,51,208,50,100,50,227,49,60,49,86,48,27,47,128,45,140,43,78,41,216,38,57,36, +120,33,156,30,171,27,174,24,169,21,156,18,131,15,90,12,39,9,245,5,209,2,196,255,208,252,236,249,20,247,74,244, +158,241,36,239,240,236,6,235,98,233,245,231,182,230,165,229,203,228,47,228,210,227,168,227,153,227,144,227,127,227,100,227, +71,227,48,227,32,227,17,227,247,226,206,226,151,226,97,226,62,226,60,226,95,226,163,226,251,226,91,227,192,227,44,228, +164,228,44,229,195,229,99,230,7,231,173,231,89,232,13,233,201,233,137,234,69,235,246,235,154,236,53,237,201,237,83,238, +204,238,38,239,87,239,89,239,52,239,239,238,149,238,39,238,165,237,11,237,91,236,154,235,213,234,24,234,106,233,208,232, +77,232,229,231,157,231,123,231,133,231,193,231,47,232,209,232,163,233,160,234,186,235,226,236,6,238,21,239,1,240,191,240, +68,241,135,241,133,241,68,241,213,240,81,240,208,239,104,239,32,239,247,238,236,238,254,238,51,239,146,239,26,240,191,240, +109,241,12,242,139,242,227,242,20,243,32,243,10,243,208,242,117,242,252,241,115,241,229,240,92,240,221,239,104,239,249,238, +141,238,31,238,166,237,26,237,116,236,181,235,232,234,32,234,111,233,223,232,112,232,26,232,213,231,166,231,154,231,195,231, +48,232,229,232,221,233,16,235,123,236,36,238,17,240,66,242,178,244,81,247,13,250,212,252,151,255,73,2,215,4,50,7, +72,9,15,11,135,12,181,13,164,14,96,15,243,15,105,16,204,16,41,17,134,17,229,17,63,18,140,18,195,18,228,18, +245,18,254,18,8,19,27,19,58,19,104,19,164,19,235,19,55,20,134,20,217,20,54,21,170,21,60,22,235,22,168,23, +93,24,251,24,125,25,241,25,106,26,246,26,150,27,67,28,243,28,171,29,124,30,127,31,195,32,67,34,232,35,146,37, +40,39,164,40,12,42,113,43,217,44,65,46,155,47,222,48,7,50,29,51,45,52,64,53,87,54,107,55,112,56,90,57, +27,58,169,58,249,58,6,59,205,58,83,58,156,57,175,56,142,55,52,54,157,52,201,50,187,48,123,46,17,44,132,41, +213,38,255,35,246,32,175,29,30,26,63,22,27,18,200,13,103,9,22,5,238,0,252,252,67,249,197,245,139,242,164,239, +31,237,1,235,63,233,197,231,123,230,83,229,78,228,113,227,190,226,42,226,160,225,11,225,99,224,175,223,6,223,124,222, +27,222,227,221,203,221,208,221,247,221,74,222,206,222,129,223,89,224,75,225,77,226,96,227,132,228,186,229,253,230,69,232, +140,233,206,234,11,236,65,237,104,238,116,239,93,240,36,241,210,241,116,242,18,243,169,243,48,244,157,244,238,244,37,245, +70,245,78,245,49,245,223,244,82,244,141,243,163,242,164,241,155,240,135,239,100,238,51,237,4,236,244,234,32,234,154,233, +103,233,129,233,220,233,115,234,65,235,65,236,101,237,151,238,193,239,208,240,184,241,119,242,6,243,94,243,115,243,66,243, +210,242,54,242,141,241,241,240,121,240,52,240,40,240,93,240,211,240,133,241,98,242,81,243,55,244,251,244,144,245,239,245, +22,246,7,246,196,245,88,245,208,244,65,244,184,243,59,243,199,242,86,242,229,241,123,241,33,241,220,240,165,240,100,240, +251,239,83,239,100,238,55,237,225,235,123,234,25,233,205,231,166,230,185,229,28,229,224,228,15,229,168,229,165,230,248,231, +151,233,120,235,144,237,207,239,37,242,133,244,231,246,76,249,183,251,43,254,167,0,34,3,147,5,235,7,34,10,48,12, +15,14,185,15,41,17,88,18,65,19,226,19,62,20,90,20,64,20,252,19,152,19,25,19,132,18,220,17,40,17,119,16, +217,15,88,15,250,14,184,14,138,14,108,14,100,14,127,14,202,14,72,15,238,15,167,16,100,17,28,18,215,18,160,19, +124,20,103,21,85,22,58,23,21,24,241,24,223,25,230,26,2,28,39,29,68,30,86,31,102,32,133,33,193,34,29,36, +142,37,7,39,123,40,228,41,65,43,145,44,206,45,244,46,0,48,247,48,226,49,199,50,165,51,114,52,33,53,170,53, +11,54,76,54,115,54,129,54,108,54,39,54,168,53,237,52,254,51,233,50,183,49,110,48,11,47,135,45,215,43,243,41, +212,39,118,37,219,34,9,32,12,29,236,25,172,22,74,19,195,15,25,12,89,8,156,4,254,0,152,253,122,250,171,247, +45,245,5,243,55,241,196,239,166,238,204,237,31,237,138,236,0,236,132,235,28,235,214,234,186,234,202,234,7,235,108,235, +242,235,144,236,59,237,232,237,145,238,54,239,222,239,140,240,58,241,217,241,81,242,146,242,148,242,95,242,1,242,134,241, +243,240,65,240,110,239,124,238,128,237,146,236,206,235,68,235,245,234,219,234,237,234,39,235,137,235,19,236,190,236,123,237, +51,238,207,238,62,239,114,239,103,239,24,239,132,238,173,237,155,236,90,235,253,233,153,232,64,231,0,230,227,228,242,227, +52,227,178,226,114,226,117,226,182,226,43,227,198,227,123,228,63,229,12,230,225,230,191,231,169,232,160,233,166,234,185,235, +212,236,240,237,6,239,11,240,247,240,192,241,100,242,227,242,70,243,150,243,224,243,49,244,145,244,3,245,135,245,26,246, +181,246,79,247,222,247,87,248,174,248,214,248,201,248,133,248,12,248,100,247,150,246,168,245,161,244,135,243,94,242,44,241, +248,239,199,238,156,237,119,236,83,235,43,234,251,232,194,231,130,230,65,229,7,228,224,226,219,225,10,225,130,224,85,224, +145,224,59,225,77,226,187,227,121,229,126,231,192,233,54,236,212,238,131,241,45,244,188,246,35,249,92,251,107,253,81,255, +11,1,146,2,224,3,242,4,208,5,135,6,35,7,168,7,21,8,97,8,138,8,146,8,134,8,119,8,114,8,123,8, +146,8,178,8,220,8,21,9,105,9,224,9,128,10,75,11,61,12,81,13,132,14,207,15,44,17,144,18,243,19,74,21, +146,22,203,23,245,24,19,26,37,27,45,28,50,29,61,30,91,31,149,32,238,33,98,35,233,36,125,38,30,40,207,41, +147,43,100,45,52,47,237,48,118,50,194,51,208,52,171,53,101,54,13,55,170,55,61,56,192,56,45,57,133,57,205,57, +10,58,68,58,126,58,181,58,224,58,244,58,231,58,174,58,68,58,170,57,228,56,246,55,228,54,172,53,72,52,178,50, +230,48,229,46,180,44,88,42,214,39,43,37,82,34,68,31,250,27,115,24,177,20,184,16,145,12,69,8,230,3,137,255, +68,251,49,247,94,243,216,239,161,236,189,233,46,231,251,228,40,227,181,225,155,224,208,223,70,223,247,222,220,222,239,222, +38,223,112,223,184,223,237,223,12,224,29,224,48,224,81,224,132,224,192,224,246,224,26,225,44,225,56,225,78,225,119,225, +179,225,242,225,35,226,56,226,45,226,12,226,226,225,191,225,174,225,182,225,219,225,34,226,142,226,32,227,216,227,178,228, +168,229,182,230,213,231,0,233,44,234,75,235,80,236,48,237,228,237,109,238,206,238,7,239,20,239,238,238,145,238,253,237, +59,237,95,236,129,235,188,234,39,234,214,233,214,233,47,234,226,234,233,235,54,237,185,238,93,240,16,242,191,243,88,245, +203,246,11,248,13,249,204,249,74,250,138,250,148,250,113,250,41,250,201,249,98,249,7,249,202,248,184,248,210,248,16,249, +97,249,175,249,232,249,255,249,232,249,155,249,16,249,71,248,71,247,33,246,237,244,199,243,194,242,231,241,51,241,152,240, +9,240,124,239,234,238,79,238,162,237,216,236,228,235,184,234,82,233,184,231,253,229,59,228,140,226,10,225,201,223,217,222, +70,222,23,222,81,222,244,222,253,223,98,225,27,227,29,229,93,231,210,233,118,236,65,239,43,242,42,245,49,248,50,251, +30,254,229,0,127,3,226,5,10,8,242,9,149,11,237,12,245,13,176,14,34,15,89,15,101,15,83,15,48,15,254,14, +191,14,110,14,7,14,140,13,1,13,109,12,218,11,82,11,221,10,128,10,64,10,31,10,34,10,80,10,176,10,76,11, +40,12,63,13,137,14,244,15,113,17,242,18,112,20,234,21,98,23,218,24,82,26,201,27,63,29,178,30,36,32,147,33, +252,34,87,36,153,37,185,38,177,39,133,40,59,41,221,41,114,42,253,42,126,43,246,43,107,44,227,44,106,45,8,46, +191,46,136,47,86,48,23,49,184,49,43,50,104,50,108,50,60,50,222,49,88,49,178,48,241,47,25,47,49,46,61,45, +70,44,85,43,109,42,140,41,166,40,166,39,117,38,253,36,47,35,5,33,132,30,180,27,161,24,84,21,215,17,52,14, +117,10,169,6,223,2,41,255,154,251,67,248,53,245,123,242,26,240,15,238,82,236,214,234,140,233,107,232,112,231,156,230, +247,229,131,229,64,229,41,229,55,229,98,229,170,229,15,230,147,230,51,231,231,231,164,232,94,233,13,234,175,234,70,235, +207,235,62,236,132,236,144,236,92,236,238,235,90,235,189,234,43,234,177,233,82,233,13,233,231,232,237,232,48,233,187,233, +143,234,155,235,198,236,250,237,41,239,81,240,119,241,157,242,187,243,191,244,146,245,37,246,111,246,118,246,68,246,228,245, +94,245,182,244,242,243,26,243,57,242,92,241,144,240,219,239,66,239,200,238,113,238,68,238,67,238,113,238,198,238,54,239, +176,239,35,240,128,240,192,240,229,240,245,240,248,240,246,240,240,240,232,240,217,240,192,240,152,240,97,240,27,240,200,239, +109,239,13,239,175,238,86,238,8,238,198,237,144,237,103,237,77,237,68,237,75,237,96,237,123,237,145,237,157,237,159,237, +163,237,182,237,228,237,42,238,119,238,177,238,187,238,129,238,254,237,57,237,61,236,21,235,200,233,88,232,206,230,56,229, +170,227,64,226,16,225,44,224,160,223,118,223,180,223,98,224,131,225,22,227,15,229,87,231,212,233,107,236,3,239,141,241, +254,243,80,246,128,248,136,250,102,252,23,254,155,255,246,0,47,2,78,3,91,4,89,5,73,6,36,7,226,7,117,8, +212,8,249,8,232,8,176,8,99,8,25,8,232,7,219,7,250,7,68,8,184,8,84,9,24,10,3,11,18,12,62,13, +127,14,205,15,36,17,129,18,223,19,60,21,146,22,223,23,38,25,112,26,206,27,76,29,244,30,200,32,192,34,211,36, +246,38,35,41,85,43,133,45,170,47,186,49,171,51,118,53,22,55,140,56,217,57,255,58,3,60,233,60,182,61,111,62, +21,63,168,63,34,64,127,64,188,64,215,64,213,64,188,64,150,64,106,64,56,64,251,63,162,63,27,63,84,62,70,61, +247,59,120,58,221,56,49,55,117,53,157,51,158,49,111,47,17,45,142,42,234,39,38,37,61,34,39,31,232,27,136,24, +24,21,162,17,42,14,170,10,29,7,137,3,252,255,143,252,89,249,100,246,178,243,64,241,12,239,32,237,131,235,60,234, +68,233,135,232,238,231,103,231,233,230,112,230,249,229,127,229,244,228,81,228,151,227,212,226,33,226,147,225,57,225,23,225, +42,225,106,225,213,225,105,226,31,227,240,227,206,228,171,229,127,230,66,231,237,231,123,232,226,232,28,233,43,233,25,233, +246,232,212,232,189,232,181,232,188,232,208,232,245,232,46,233,121,233,208,233,40,234,113,234,162,234,184,234,182,234,158,234, +112,234,42,234,206,233,97,233,237,232,128,232,35,232,220,231,170,231,146,231,154,231,209,231,64,232,237,232,205,233,208,234, +224,235,238,236,243,237,237,238,216,239,168,240,74,241,169,241,186,241,127,241,9,241,114,240,211,239,66,239,205,238,126,238, +98,238,128,238,223,238,125,239,77,240,60,241,54,242,44,243,16,244,216,244,120,245,227,245,12,246,239,245,150,245,22,245, +136,244,6,244,155,243,73,243,11,243,221,242,190,242,178,242,182,242,194,242,196,242,168,242,93,242,219,241,36,241,70,240, +82,239,92,238,126,237,214,236,130,236,153,236,40,237,47,238,160,239,103,241,117,243,190,245,53,248,207,250,118,253,20,0, +149,2,235,4,20,7,23,9,251,10,195,12,111,14,0,16,117,17,208,18,19,20,64,21,83,22,76,23,45,24,254,24, +196,25,130,26,49,27,197,27,48,28,109,28,130,28,121,28,93,28,50,28,245,27,163,27,63,27,215,26,124,26,59,26, +25,26,14,26,16,26,28,26,52,26,102,26,188,26,61,27,232,27,184,28,166,29,177,30,216,31,23,33,102,34,186,35, +12,37,93,38,179,39,27,41,156,42,52,44,220,45,136,47,49,49,208,50,98,52,225,53,64,55,115,56,111,57,47,58, +182,58,12,59,58,59,68,59,43,59,238,58,137,58,251,57,70,57,108,56,116,55,102,54,76,53,47,52,19,51,248,49, +211,48,152,47,53,46,158,44,199,42,166,40,54,38,119,35,110,32,38,29,170,25,3,22,53,18,65,14,43,10,0,6, +221,1,227,253,50,250,221,246,230,243,67,241,229,238,195,236,220,234,53,233,203,231,148,230,122,229,104,228,83,227,62,226, +58,225,90,224,174,223,55,223,240,222,205,222,199,222,224,222,27,223,123,223,252,223,146,224,44,225,187,225,54,226,153,226, +231,226,36,227,85,227,130,227,180,227,248,227,90,228,224,228,139,229,81,230,38,231,0,232,218,232,185,233,163,234,157,235, +161,236,164,237,153,238,116,239,50,240,211,240,88,241,191,241,0,242,17,242,237,241,149,241,21,241,124,240,214,239,46,239, +134,238,224,237,63,237,166,236,29,236,169,235,78,235,18,235,251,234,16,235,85,235,205,235,113,236,51,237,4,238,214,238, +161,239,96,240,19,241,186,241,82,242,214,242,70,243,164,243,246,243,65,244,137,244,207,244,14,245,66,245,104,245,125,245, +129,245,115,245,82,245,26,245,202,244,100,244,234,243,94,243,198,242,39,242,138,241,251,240,134,240,57,240,28,240,50,240, +118,240,222,240,92,241,224,241,92,242,192,242,1,243,22,243,249,242,171,242,49,242,149,241,230,240,47,240,125,239,215,238, +67,238,199,237,107,237,56,237,55,237,109,237,220,237,130,238,87,239,89,240,134,241,225,242,107,244,34,246,254,247,245,249, +250,251,6,254,22,0,40,2,59,4,74,6,76,8,53,10,249,11,142,13,235,14,12,16,236,16,140,17,237,17,26,18, +32,18,12,18,240,17,217,17,211,17,232,17,31,18,122,18,245,18,138,19,48,20,225,20,158,21,104,22,63,23,30,24, +248,24,191,25,106,26,247,26,112,27,228,27,94,28,226,28,114,29,11,30,174,30,99,31,47,32,23,33,24,34,43,35, +73,36,111,37,158,38,218,39,38,41,122,42,206,43,20,45,68,46,88,47,78,48,40,49,229,49,136,50,23,51,153,51, +24,52,151,52,19,53,135,53,236,53,63,54,127,54,172,54,193,54,175,54,100,54,209,53,242,52,205,51,116,50,242,48, +79,47,138,45,157,43,141,41,99,39,46,37,249,34,191,32,112,30,244,27,54,25,44,22,223,18,95,15,193,11,22,8, +104,4,193,0,41,253,177,249,106,246,103,243,184,240,107,238,131,236,3,235,230,233,35,233,173,232,115,232,99,232,107,232, +122,232,130,232,120,232,86,232,25,232,195,231,90,231,229,230,107,230,246,229,143,229,61,229,5,229,230,228,222,228,231,228, +251,228,27,229,75,229,146,229,246,229,119,230,21,231,205,231,161,232,152,233,182,234,255,235,105,237,230,238,97,240,205,241, +35,243,102,244,154,245,190,246,204,247,181,248,111,249,242,249,65,250,94,250,76,250,12,250,156,249,253,248,50,248,64,247, +45,246,255,244,189,243,113,242,47,241,14,240,36,239,125,238,30,238,4,238,43,238,153,238,84,239,98,240,187,241,71,243, +227,244,105,246,189,247,207,248,153,249,26,250,77,250,47,250,194,249,23,249,73,248,121,247,196,246,57,246,219,245,168,245, +155,245,178,245,231,245,45,246,115,246,164,246,178,246,155,246,103,246,37,246,225,245,159,245,98,245,43,245,255,244,230,244, +229,244,251,244,31,245,67,245,95,245,109,245,103,245,68,245,242,244,93,244,120,243,72,242,226,240,102,239,243,237,156,236, +105,235,96,234,141,233,2,233,213,232,17,233,178,233,161,234,194,235,254,236,78,238,184,239,67,241,241,242,187,244,150,246, +125,248,116,250,129,252,169,254,230,0,35,3,71,5,59,7,245,8,113,10,173,11,167,12,87,13,185,13,207,13,167,13, +84,13,233,12,114,12,243,11,111,11,239,10,131,10,63,10,53,10,106,10,217,10,114,11,36,12,229,12,177,13,135,14, +101,15,75,16,52,17,32,18,19,19,15,20,25,21,47,22,75,23,103,24,126,25,141,26,146,27,138,28,110,29,56,30, +230,30,123,31,4,32,141,32,35,33,203,33,132,34,75,35,30,36,253,36,233,37,226,38,232,39,245,40,4,42,16,43, +24,44,28,45,27,46,19,47,255,47,216,48,152,49,61,50,198,50,54,51,145,51,218,51,16,52,47,52,49,52,9,52, +176,51,30,51,85,50,88,49,46,48,215,46,81,45,149,43,154,41,96,39,236,36,72,34,127,31,150,28,136,25,82,22, +241,18,106,15,205,11,45,8,155,4,36,1,208,253,164,250,167,247,230,244,108,242,62,240,91,238,187,236,79,235,15,234, +242,232,248,231,32,231,104,230,206,229,80,229,238,228,173,228,141,228,140,228,161,228,191,228,224,228,3,229,52,229,130,229, +249,229,151,230,78,231,13,232,191,232,95,233,237,233,110,234,228,234,75,235,154,235,200,235,213,235,202,235,179,235,155,235, +137,235,125,235,119,235,124,235,153,235,220,235,80,236,249,236,206,237,198,238,211,239,234,240,255,241,1,243,217,243,110,244, +173,244,146,244,41,244,143,243,223,242,48,242,139,241,244,240,110,240,2,240,194,239,192,239,7,240,152,240,102,241,92,242, +100,243,107,244,100,245,69,246,5,247,161,247,25,248,115,248,183,248,236,248,22,249,52,249,73,249,91,249,119,249,173,249, +8,250,139,250,46,251,229,251,163,252,96,253,26,254,206,254,116,255,255,255,95,0,138,0,126,0,66,0,225,255,101,255, +212,254,45,254,111,253,151,252,167,251,162,250,135,249,87,248,18,247,186,245,85,244,234,242,122,241,6,240,142,238,17,237, +150,235,40,234,214,232,168,231,162,230,195,229,12,229,131,228,55,228,58,228,155,228,96,229,132,230,250,231,176,233,153,235, +169,237,212,239,12,242,63,244,90,246,79,248,22,250,176,251,31,253,101,254,128,255,108,0,41,1,183,1,32,2,108,2, +165,2,209,2,239,2,0,3,3,3,254,2,251,2,2,3,25,3,66,3,124,3,195,3,24,4,129,4,7,5,184,5, +156,6,182,7,2,9,117,10,4,12,165,13,83,15,14,17,214,18,175,20,147,22,124,24,93,26,39,28,212,29,99,31, +218,32,68,34,171,35,16,37,114,38,204,39,28,41,104,42,188,43,38,45,170,46,62,48,209,49,75,51,155,52,188,53, +176,54,125,55,39,56,169,56,254,56,35,57,32,57,8,57,243,56,242,56,11,57,56,57,110,57,164,57,212,57,255,57, +37,58,65,58,71,58,41,58,217,57,79,57,140,56,144,55,95,54,249,52,92,51,138,49,132,47,77,45,235,42,101,40, +192,37,2,35,47,32,72,29,72,26,40,23,225,19,116,16,233,12,81,9,192,5,71,2,241,254,195,251,193,248,243,245, +103,243,41,241,69,239,188,237,135,236,156,235,242,234,133,234,78,234,67,234,84,234,104,234,103,234,67,234,251,233,152,233, +37,233,175,232,59,232,202,231,100,231,16,231,221,230,214,230,252,230,74,231,180,231,48,232,186,232,81,233,250,233,181,234, +125,235,75,236,27,237,235,237,193,238,164,239,150,240,153,241,169,242,196,243,230,244,17,246,66,247,116,248,155,249,169,250, +145,251,77,252,213,252,38,253,58,253,10,253,146,252,211,251,215,250,173,249,102,248,21,247,200,245,142,244,122,243,159,242, +17,242,218,241,252,241,104,242,13,243,212,243,174,244,140,245,99,246,40,247,204,247,65,248,122,248,112,248,32,248,137,247, +173,246,145,245,66,244,217,242,114,241,45,240,35,239,96,238,230,237,175,237,178,237,233,237,75,238,203,238,90,239,231,239, +99,240,200,240,22,241,83,241,130,241,163,241,175,241,160,241,115,241,42,241,199,240,73,240,172,239,233,238,1,238,252,236, +234,235,220,234,219,233,234,232,255,231,20,231,42,230,74,229,136,228,246,227,163,227,150,227,210,227,91,228,50,229,90,230, +210,231,148,233,152,235,212,237,66,240,222,242,160,245,125,248,99,251,63,254,254,0,149,3,254,5,52,8,49,10,233,11, +85,13,111,14,60,15,201,15,38,16,99,16,135,16,150,16,146,16,127,16,101,16,80,16,72,16,82,16,109,16,147,16, +194,16,246,16,52,17,131,17,234,17,113,18,30,19,242,19,232,20,247,21,20,23,49,24,69,25,73,26,59,27,32,28, +251,28,213,29,184,30,175,31,201,32,20,34,152,35,86,37,73,39,101,41,157,43,230,45,56,48,138,50,209,52,255,54, +3,57,207,58,91,60,170,61,195,62,177,63,124,64,41,65,184,65,47,66,146,66,238,66,79,67,188,67,51,68,168,68, +10,69,70,69,80,69,32,69,181,68,16,68,48,67,21,66,193,64,54,63,120,61,139,59,108,57,26,55,148,52,221,49, +0,47,11,44,8,41,252,37,224,34,171,31,87,28,234,24,113,21,253,17,150,14,57,11,215,7,100,4,225,0,92,253, +240,249,184,246,198,243,28,241,182,238,146,236,180,234,46,233,16,232,95,231,17,231,11,231,44,231,87,231,126,231,156,231, +179,231,197,231,210,231,214,231,209,231,195,231,177,231,159,231,141,231,121,231,98,231,74,231,54,231,41,231,32,231,18,231, +240,230,177,230,85,230,233,229,133,229,64,229,40,229,63,229,126,229,215,229,62,230,178,230,50,231,195,231,98,232,4,233, +151,233,5,234,58,234,42,234,215,233,77,233,164,232,241,231,71,231,175,230,38,230,166,229,46,229,193,228,111,228,72,228, +86,228,154,228,8,229,141,229,24,230,160,230,41,231,189,231,102,232,43,233,11,234,254,234,253,235,253,236,244,237,216,238, +156,239,52,240,149,240,186,240,163,240,87,240,221,239,67,239,152,238,237,237,84,237,221,236,146,236,119,236,133,236,182,236, +2,237,102,237,226,237,114,238,12,239,162,239,31,240,118,240,161,240,165,240,139,240,94,240,32,240,207,239,100,239,217,238, +48,238,111,237,160,236,202,235,244,234,37,234,98,233,181,232,36,232,184,231,115,231,88,231,110,231,190,231,84,232,60,233, +122,234,5,236,206,237,194,239,212,241,2,244,77,246,185,248,66,251,219,253,117,0,0,3,116,5,205,7,12,10,42,12, +28,14,210,15,66,17,104,18,72,19,240,19,105,20,189,20,240,20,8,21,14,21,17,21,33,21,70,21,130,21,205,21, +29,22,108,22,183,22,0,23,72,23,142,23,206,23,5,24,56,24,116,24,200,24,69,25,244,25,211,26,217,27,253,28, +55,30,129,31,220,32,68,34,185,35,52,37,180,38,56,40,192,41,78,43,225,44,118,46,7,48,141,49,4,51,107,52, +194,53,10,55,67,56,106,57,120,58,101,59,37,60,179,60,13,61,55,61,61,61,41,61,5,61,210,60,141,60,48,60, +182,59,31,59,113,58,174,57,213,56,217,55,168,54,47,53,100,51,74,49,241,46,109,44,208,41,33,39,93,36,124,33, +118,30,73,27,250,23,143,20,16,17,129,13,229,9,63,6,151,2,250,254,120,251,33,248,2,245,32,242,123,239,18,237, +222,234,222,232,18,231,120,229,19,228,224,226,221,225,3,225,74,224,171,223,34,223,173,222,83,222,25,222,6,222,25,222, +76,222,148,222,233,222,68,223,169,223,27,224,155,224,37,225,172,225,30,226,113,226,162,226,185,226,195,226,202,226,208,226, +211,226,207,226,197,226,190,226,199,226,232,226,36,227,113,227,192,227,2,228,48,228,74,228,85,228,84,228,69,228,36,228, +234,227,150,227,44,227,181,226,58,226,196,225,86,225,240,224,148,224,65,224,249,223,192,223,154,223,139,223,149,223,182,223, +233,223,41,224,116,224,206,224,68,225,231,225,198,226,230,227,70,229,218,230,146,232,97,234,61,236,29,238,242,239,173,241, +59,243,147,244,180,245,168,246,126,247,64,248,242,248,142,249,15,250,117,250,201,250,24,251,109,251,200,251,34,252,111,252, +169,252,213,252,0,253,53,253,116,253,182,253,232,253,251,253,232,253,176,253,91,253,241,252,112,252,213,251,25,251,58,250, +58,249,32,248,242,246,181,245,107,244,26,243,205,241,147,240,126,239,155,238,246,237,148,237,121,237,167,237,37,238,245,238, +18,240,115,241,6,243,188,244,138,246,106,248,94,250,98,252,112,254,121,0,106,2,55,4,217,5,85,7,177,8,244,9, +26,11,27,12,240,12,151,13,24,14,131,14,230,14,73,15,171,15,7,16,87,16,156,16,218,16,23,17,85,17,146,17, +202,17,253,17,51,18,123,18,225,18,108,19,25,20,225,20,189,21,174,22,182,23,218,24,20,26,86,27,141,28,169,29, +159,30,114,31,37,32,188,32,56,33,156,33,241,33,75,34,194,34,110,35,98,36,162,37,44,39,250,40,4,43,66,45, +161,47,3,50,70,52,69,54,232,55,39,57,8,58,150,58,221,58,233,58,194,58,120,58,28,58,194,57,120,57,63,57, +15,57,220,56,155,56,67,56,206,55,49,55,90,54,54,53,179,51,199,49,114,47,187,44,172,41,82,38,188,34,254,30, +46,27,97,23,160,19,235,15,57,12,128,8,194,4,13,1,114,253,2,250,191,246,163,243,167,240,198,237,8,235,124,232, +46,230,34,228,85,226,192,224,93,223,41,222,37,221,81,220,166,219,31,219,184,218,114,218,84,218,99,218,165,218,25,219, +197,219,175,220,228,221,103,223,48,225,40,227,42,229,23,231,220,232,115,234,225,235,38,237,56,238,9,239,147,239,225,239, +14,240,61,240,136,240,245,240,123,241,12,242,162,242,69,243,3,244,225,244,210,245,184,246,117,247,241,247,42,248,40,248, +245,247,150,247,12,247,91,246,144,245,197,244,22,244,148,243,61,243,0,243,202,242,144,242,87,242,45,242,32,242,48,242, +81,242,111,242,125,242,119,242,100,242,78,242,59,242,42,242,23,242,255,241,229,241,204,241,187,241,179,241,175,241,171,241, +167,241,166,241,179,241,218,241,41,242,168,242,90,243,63,244,77,245,121,246,178,247,228,248,254,249,238,250,166,251,26,252, +67,252,30,252,178,251,8,251,50,250,63,249,59,248,46,247,26,246,6,245,249,243,255,242,32,242,97,241,188,240,40,240, +152,239,2,239,96,238,179,237,253,236,63,236,128,235,197,234,27,234,147,233,62,233,43,233,101,233,242,233,211,234,8,236, +142,237,99,239,129,241,225,243,118,246,50,249,8,252,230,254,191,1,135,4,53,7,194,9,40,12,98,14,105,16,54,18, +194,19,8,21,9,22,201,22,80,23,167,23,212,23,220,23,194,23,137,23,53,23,207,22,95,22,236,21,122,21,10,21, +153,20,39,20,184,19,84,19,7,19,215,18,197,18,200,18,216,18,239,18,16,19,71,19,162,19,38,20,204,20,132,21, +62,22,244,22,175,23,129,24,124,25,168,26,253,27,111,29,242,30,131,32,37,34,220,35,160,37,96,39,9,41,140,42, +235,43,47,45,100,46,143,47,168,48,166,49,133,50,82,51,32,52,5,53,5,54,20,55,25,56,255,56,188,57,79,58, +190,58,1,59,4,59,171,58,221,57,149,56,225,54,220,52,162,50,71,48,211,45,69,43,155,40,210,37,232,34,217,31, +157,28,48,25,145,21,198,17,219,13,220,9,210,5,201,1,207,253,249,249,93,246,18,243,34,240,141,237,79,235,97,233, +195,231,119,230,122,229,190,228,44,228,169,227,33,227,142,226,249,225,114,225,3,225,179,224,129,224,109,224,128,224,197,224, +70,225,5,226,252,226,26,228,81,229,146,230,213,231,19,233,68,234,95,235,92,236,59,237,0,238,179,238,91,239,254,239, +156,240,54,241,201,241,86,242,216,242,74,243,169,243,243,243,42,244,85,244,115,244,128,244,112,244,56,244,212,243,75,243, +173,242,6,242,86,241,152,240,192,239,207,238,213,237,235,236,43,236,160,235,69,235,12,235,237,234,241,234,48,235,202,235, +203,236,42,238,201,239,131,241,60,243,233,244,140,246,35,248,162,249,237,250,228,251,108,252,129,252,48,252,146,251,195,250, +218,249,230,248,245,247,20,247,85,246,200,245,120,245,101,245,137,245,214,245,62,246,178,246,35,247,137,247,217,247,14,248, +34,248,17,248,217,247,117,247,229,246,40,246,70,245,72,244,63,243,59,242,70,241,104,240,162,239,239,238,74,238,175,237, +30,237,150,236,23,236,157,235,34,235,159,234,19,234,132,233,1,233,159,232,112,232,126,232,203,232,79,233,4,234,230,234, +249,235,70,237,216,238,177,240,206,242,35,245,161,247,57,250,220,252,122,255,2,2,96,4,130,6,92,8,231,9,40,11, +37,12,235,12,131,13,245,13,73,14,131,14,170,14,196,14,213,14,227,14,242,14,2,15,17,15,30,15,36,15,31,15, +12,15,233,14,180,14,110,14,23,14,181,13,79,13,240,12,163,12,112,12,94,12,110,12,163,12,3,13,148,13,95,14, +101,15,162,16,13,18,156,19,70,21,9,23,228,24,215,26,219,28,229,30,236,32,232,34,214,36,182,38,135,40,70,42, +236,43,119,45,236,46,84,48,189,49,46,51,166,52,27,54,129,55,206,56,251,57,5,59,231,59,155,60,26,61,93,61, +102,61,59,61,230,60,106,60,197,59,240,58,231,57,173,56,78,55,215,53,80,52,186,50,6,49,36,47,1,45,151,42, +229,39,247,36,218,33,150,30,50,27,172,23,3,20,58,16,94,12,135,8,212,4,101,1,78,254,150,251,53,249,29,247, +65,245,154,243,43,242,243,240,238,239,14,239,70,238,137,237,214,236,56,236,188,235,109,235,76,235,85,235,130,235,205,235, +54,236,187,236,86,237,253,237,164,238,65,239,207,239,77,240,183,240,7,241,53,241,61,241,33,241,239,240,181,240,125,240, +74,240,22,240,219,239,156,239,98,239,57,239,43,239,54,239,79,239,109,239,140,239,173,239,216,239,12,240,65,240,106,240, +118,240,94,240,31,240,184,239,40,239,102,238,108,237,57,236,222,234,117,233,25,232,222,230,206,229,230,228,40,228,154,227, +75,227,76,227,162,227,68,228,27,229,11,230,251,230,220,231,168,232,93,233,249,233,122,234,222,234,38,235,88,235,125,235, +159,235,199,235,253,235,69,236,160,236,10,237,124,237,233,237,70,238,137,238,177,238,193,238,190,238,171,238,136,238,86,238, +20,238,196,237,105,237,6,237,155,236,43,236,185,235,72,235,223,234,122,234,18,234,150,233,246,232,40,232,43,231,12,230, +217,228,158,227,97,226,33,225,222,223,161,222,120,221,121,220,185,219,69,219,34,219,81,219,209,219,161,220,191,221,37,223, +203,224,164,226,161,228,187,230,237,232,53,235,144,237,247,239,93,242,183,244,250,246,37,249,61,251,71,253,73,255,67,1, +45,3,252,4,166,6,35,8,110,9,134,10,108,11,32,12,163,12,248,12,40,13,64,13,81,13,108,13,156,13,234,13, +89,14,234,14,160,15,122,16,115,17,132,18,160,19,184,20,191,21,171,22,123,23,49,24,213,24,113,25,18,26,200,26, +155,27,144,28,163,29,203,30,252,31,51,33,115,34,198,35,53,37,195,38,101,40,14,42,174,43,67,45,211,46,106,48, +20,50,210,51,155,53,93,55,9,57,147,58,243,59,35,61,31,62,228,62,115,63,210,63,11,64,38,64,39,64,11,64, +204,63,103,63,218,62,43,62,91,61,101,60,60,59,212,57,36,56,44,54,246,51,139,49,240,46,37,44,37,41,241,37, +147,34,33,31,179,27,91,24,29,21,241,17,200,14,147,11,72,8,231,4,116,1,248,253,125,250,12,247,176,243,117,240, +102,237,145,234,2,232,195,229,219,227,75,226,16,225,32,224,112,223,244,222,159,222,102,222,62,222,24,222,233,221,174,221, +105,221,41,221,255,220,248,220,25,221,90,221,178,221,23,222,132,222,253,222,129,223,15,224,156,224,28,225,133,225,212,225, +13,226,54,226,84,226,104,226,111,226,102,226,78,226,43,226,4,226,223,225,195,225,181,225,184,225,204,225,239,225,22,226, +53,226,62,226,40,226,243,225,167,225,78,225,237,224,137,224,30,224,172,223,53,223,189,222,75,222,230,221,148,221,90,221, +67,221,90,221,172,221,68,222,34,223,68,224,164,225,58,227,3,229,249,230,13,233,43,235,53,237,15,239,164,240,235,241, +232,242,164,243,41,244,126,244,164,244,161,244,125,244,74,244,27,244,4,244,15,244,61,244,137,244,229,244,72,245,167,245, +249,245,55,246,83,246,64,246,245,245,109,245,178,244,213,243,239,242,22,242,88,241,185,240,52,240,197,239,104,239,31,239, +231,238,187,238,140,238,70,238,216,237,55,237,103,236,111,235,93,234,60,233,25,232,5,231,24,230,115,229,54,229,119,229, +61,230,127,231,45,233,54,235,146,237,56,240,29,243,40,246,57,249,44,252,234,254,106,1,179,3,209,5,203,7,156,9, +55,11,147,12,176,13,155,14,104,15,37,16,211,16,102,17,202,17,241,17,213,17,124,17,240,16,61,16,107,15,128,14, +134,13,139,12,161,11,218,10,66,10,223,9,174,9,171,9,208,9,21,10,116,10,225,10,85,11,204,11,77,12,228,12, +162,13,145,14,180,15,1,17,107,18,227,19,97,21,226,22,100,24,228,25,91,27,193,28,17,30,76,31,123,32,165,33, +205,34,240,35,10,37,19,38,11,39,246,39,216,40,183,41,147,42,105,43,56,44,2,45,199,45,134,46,55,47,205,47, +58,48,115,48,115,48,60,48,210,47,53,47,101,46,100,45,56,44,238,42,150,41,58,40,219,38,117,37,255,35,121,34, +230,32,78,31,173,29,245,27,15,26,231,23,118,21,195,18,229,15,235,12,217,9,164,6,58,3,150,255,200,251,240,247, +58,244,202,240,182,237,7,235,193,232,232,230,133,229,154,228,28,228,239,227,240,227,254,227,2,228,246,227,217,227,169,227, +97,227,248,226,106,226,194,225,17,225,114,224,251,223,188,223,189,223,6,224,156,224,131,225,177,226,21,228,144,229,1,231, +82,232,120,233,111,234,53,235,195,235,10,236,255,235,165,235,19,235,113,234,234,233,158,233,161,233,247,233,155,234,137,235, +190,236,49,238,212,239,145,241,75,243,232,244,84,246,128,247,94,248,228,248,11,249,211,248,75,248,139,247,178,246,216,245, +11,245,75,244,154,243,252,242,127,242,57,242,56,242,129,242,9,243,189,243,132,244,76,245,7,246,165,246,27,247,89,247, +85,247,14,247,141,246,223,245,20,245,54,244,81,243,114,242,171,241,17,241,183,240,162,240,198,240,11,241,86,241,148,241, +188,241,210,241,217,241,205,241,166,241,90,241,232,240,88,240,187,239,34,239,149,238,15,238,134,237,237,236,66,236,137,235, +203,234,10,234,68,233,114,232,141,231,150,230,150,229,153,228,177,227,233,226,70,226,204,225,122,225,76,225,63,225,79,225, +121,225,194,225,46,226,201,226,152,227,160,228,221,229,74,231,225,232,156,234,121,236,112,238,118,240,121,242,102,244,50,246, +221,247,110,249,238,250,98,252,197,253,11,255,38,0,16,1,206,1,105,2,237,2,98,3,198,3,24,4,86,4,131,4, +167,4,202,4,244,4,40,5,102,5,175,5,9,6,120,6,3,7,172,7,114,8,84,9,78,10,96,11,134,12,192,13, +10,15,97,16,198,17,60,19,201,20,112,22,46,24,250,25,201,27,145,29,79,31,7,33,196,34,142,36,105,38,79,40, +55,42,21,44,224,45,149,47,52,49,188,50,45,52,133,53,188,54,205,55,178,56,105,57,240,57,72,58,119,58,133,58, +124,58,101,58,75,58,51,58,33,58,21,58,15,58,14,58,16,58,16,58,5,58,224,57,145,57,9,57,64,56,52,55, +232,53,100,52,170,50,185,48,136,46,17,44,75,41,56,38,224,34,78,31,146,27,182,23,200,19,208,15,218,11,242,7, +34,4,116,0,239,252,150,249,108,246,118,243,184,240,58,238,0,236,12,234,94,232,239,230,184,229,175,228,202,227,252,226, +63,226,140,225,226,224,72,224,195,223,92,223,19,223,233,222,213,222,208,222,213,222,227,222,254,222,41,223,107,223,201,223, +72,224,234,224,171,225,135,226,114,227,98,228,78,229,50,230,17,231,241,231,213,232,188,233,162,234,127,235,84,236,37,237, +252,237,225,238,210,239,194,240,160,241,87,242,220,242,44,243,71,243,47,243,223,242,78,242,115,241,82,240,248,238,123,237, +246,235,126,234,33,233,231,231,217,230,0,230,106,229,30,229,34,229,112,229,0,230,199,230,190,231,216,232,8,234,52,235, +63,236,11,237,130,237,159,237,101,237,222,236,22,236,19,235,221,233,130,232,27,231,194,229,145,228,152,227,217,226,75,226, +231,225,168,225,139,225,145,225,178,225,227,225,18,226,51,226,65,226,65,226,63,226,69,226,90,226,130,226,192,226,27,227, +151,227,54,228,239,228,179,229,108,230,3,231,107,231,153,231,138,231,58,231,174,230,239,229,19,229,54,228,114,227,221,226, +125,226,83,226,92,226,158,226,39,227,8,228,72,229,228,230,204,232,234,234,44,237,140,239,6,242,151,244,49,247,189,249, +35,252,79,254,63,0,249,1,137,3,244,4,57,6,80,7,48,8,216,8,76,9,151,9,196,9,220,9,233,9,243,9, +5,10,38,10,88,10,151,10,217,10,21,11,72,11,112,11,146,11,174,11,197,11,214,11,226,11,239,11,8,12,58,12, +143,12,12,13,179,13,131,14,125,15,158,16,225,17,61,19,162,20,3,22,87,23,154,24,205,25,242,26,11,28,31,29, +57,30,109,31,210,32,120,34,103,36,147,38,232,40,78,43,176,45,2,48,58,50,73,52,26,54,148,55,164,56,69,57, +132,57,122,57,64,57,231,56,115,56,228,55,58,55,126,54,194,53,19,53,122,52,238,51,93,51,179,50,223,49,218,48, +163,47,62,46,170,44,229,42,236,40,189,38,96,36,225,33,82,31,191,28,48,26,166,23,28,21,137,18,230,15,51,13, +112,10,164,7,216,4,22,2,100,255,203,252,80,250,246,247,191,245,173,243,190,241,244,239,83,238,224,236,159,235,149,234, +193,233,29,233,165,232,82,232,33,232,18,232,35,232,80,232,141,232,204,232,254,232,29,233,39,233,33,233,20,233,1,233, +232,232,195,232,142,232,75,232,0,232,186,231,128,231,83,231,42,231,248,230,176,230,76,230,210,229,80,229,219,228,128,228, +72,228,49,228,53,228,78,228,125,228,198,228,49,229,193,229,114,230,57,231,2,232,185,232,74,233,166,233,190,233,137,233, +255,232,38,232,10,231,197,229,119,228,61,227,46,226,83,225,175,224,65,224,9,224,8,224,61,224,160,224,33,225,172,225, +48,226,165,226,15,227,115,227,215,227,58,228,148,228,221,228,20,229,62,229,101,229,145,229,192,229,232,229,252,229,247,229, +222,229,194,229,181,229,198,229,245,229,59,230,140,230,226,230,59,231,150,231,242,231,68,232,121,232,129,232,80,232,235,231, +94,231,188,230,18,230,99,229,172,228,233,227,28,227,80,226,149,225,246,224,121,224,24,224,202,223,135,223,76,223,27,223, +246,222,220,222,204,222,196,222,202,222,238,222,68,223,228,223,218,224,42,226,206,227,185,229,223,231,53,234,176,236,70,239, +237,241,153,244,64,247,220,249,97,252,198,254,255,0,1,3,200,4,89,6,192,7,7,9,52,10,69,11,51,12,252,12, +168,13,69,14,232,14,158,15,103,16,56,17,3,18,191,18,106,19,14,20,178,20,95,21,23,22,221,22,179,23,155,24, +150,25,156,26,159,27,146,28,110,29,54,30,244,30,178,31,115,32,50,33,228,33,134,34,34,35,199,35,136,36,109,37, +113,38,136,39,169,40,211,41,14,43,100,44,213,45,84,47,208,48,52,50,119,51,154,52,160,53,138,54,80,55,231,55, +73,56,120,56,132,56,126,56,120,56,116,56,112,56,99,56,73,56,31,56,230,55,153,55,51,55,167,54,237,53,2,53, +232,51,164,50,57,49,165,47,226,45,235,43,188,41,87,39,189,36,242,33,246,30,204,27,119,24,0,21,117,17,231,13, +107,10,17,7,229,3,229,0,11,254,72,251,146,248,227,245,64,243,179,240,71,238,253,235,210,233,189,231,193,229,233,227, +76,226,251,224,253,223,65,223,170,222,29,222,141,221,1,221,144,220,72,220,43,220,35,220,20,220,230,219,152,219,62,219, +247,218,220,218,248,218,68,219,179,219,62,220,229,220,177,221,166,222,197,223,254,224,63,226,116,227,145,228,149,229,130,230, +95,231,51,232,1,233,206,233,154,234,102,235,47,236,240,236,163,237,67,238,200,238,46,239,110,239,129,239,102,239,28,239, +169,238,19,238,102,237,168,236,224,235,18,235,64,234,114,233,176,232,6,232,131,231,54,231,44,231,107,231,239,231,172,232, +143,233,128,234,112,235,82,236,32,237,214,237,106,238,210,238,2,239,243,238,169,238,47,238,149,237,232,236,45,236,100,235, +144,234,183,233,232,232,56,232,186,231,121,231,119,231,176,231,28,232,177,232,103,233,47,234,249,234,175,235,64,236,158,236, +197,236,187,236,139,236,67,236,238,235,146,235,49,235,204,234,97,234,239,233,121,233,5,233,156,232,69,232,0,232,197,231, +139,231,70,231,246,230,161,230,89,230,48,230,49,230,98,230,193,230,79,231,17,232,21,233,104,234,19,236,19,238,88,240, +206,242,96,245,0,248,164,250,70,253,220,255,86,2,162,4,170,6,98,8,196,9,207,10,139,11,3,12,62,12,71,12, +38,12,228,11,140,11,43,11,209,10,141,10,107,10,113,10,154,10,224,10,54,11,150,11,248,11,89,12,176,12,241,12, +19,13,13,13,232,12,182,12,146,12,149,12,207,12,65,13,230,13,183,14,175,15,211,16,33,18,144,19,10,21,111,22, +167,23,163,24,105,25,9,26,154,26,49,27,218,27,161,28,148,29,196,30,67,32,25,34,64,36,162,38,32,41,155,43, +248,45,41,48,37,50,230,51,104,53,169,54,167,55,103,56,243,56,82,57,138,57,158,57,143,57,93,57,14,57,166,56, +40,56,148,55,230,54,23,54,33,53,255,51,174,50,46,49,126,47,157,45,141,43,79,41,230,38,84,36,158,33,197,30, +206,27,192,24,162,21,129,18,101,15,88,12,98,9,139,6,218,3,85,1,255,254,215,252,215,250,247,248,48,247,130,245, +238,243,122,242,41,241,2,240,5,239,52,238,141,237,12,237,171,236,96,236,35,236,238,235,191,235,150,235,116,235,91,235, +72,235,63,235,66,235,90,235,139,235,215,235,57,236,166,236,23,237,136,237,252,237,124,238,9,239,156,239,38,240,148,240, +221,240,1,241,9,241,2,241,239,240,206,240,150,240,66,240,209,239,77,239,191,238,44,238,149,237,242,236,63,236,120,235, +161,234,186,233,194,232,181,231,143,230,83,229,12,228,202,226,159,225,150,224,177,223,241,222,84,222,223,221,156,221,146,221, +197,221,45,222,191,222,105,223,32,224,218,224,145,225,68,226,240,226,148,227,47,228,192,228,70,229,191,229,41,230,132,230, +208,230,14,231,65,231,101,231,122,231,129,231,128,231,136,231,171,231,247,231,113,232,19,233,205,233,142,234,77,235,9,236, +194,236,117,237,19,238,133,238,178,238,133,238,249,237,22,237,237,235,144,234,14,233,114,231,200,229,28,228,127,226,2,225, +178,223,149,222,175,221,251,220,121,220,40,220,12,220,38,220,120,220,254,220,179,221,143,222,143,223,177,224,245,225,93,227, +234,228,153,230,101,232,69,234,51,236,40,238,35,240,35,242,37,244,36,246,21,248,237,249,157,251,29,253,104,254,126,255, +101,0,37,1,199,1,82,2,209,2,74,3,198,3,75,4,225,4,141,5,84,6,58,7,59,8,85,9,126,10,172,11, +214,12,243,13,254,14,245,15,217,16,175,17,125,18,75,19,35,20,11,21,7,22,26,23,70,24,139,25,234,26,98,28, +239,29,137,31,41,33,202,34,105,36,5,38,162,39,61,41,213,42,103,44,240,45,115,47,243,48,117,50,249,51,125,53, +251,54,110,56,213,57,48,59,125,60,184,61,213,62,205,63,152,64,56,65,180,65,17,66,81,66,108,66,86,66,4,66, +115,65,172,64,191,63,189,62,180,61,165,60,141,59,97,58,24,57,173,55,30,54,106,52,144,50,141,48,87,46,228,43, +39,41,27,38,192,34,33,31,82,27,103,23,117,19,134,15,162,11,205,7,12,4,104,0,238,252,167,249,156,246,207,243, +66,241,249,238,247,236,59,235,198,233,144,232,147,231,202,230,55,230,221,229,190,229,212,229,16,230,89,230,156,230,201,230, +217,230,201,230,148,230,50,230,154,229,200,228,199,227,173,226,149,225,151,224,194,223,24,223,149,222,57,222,8,222,6,222, +52,222,137,222,243,222,96,223,199,223,38,224,135,224,242,224,105,225,228,225,87,226,188,226,19,227,102,227,194,227,43,228, +154,228,255,228,71,229,100,229,81,229,17,229,170,228,36,228,134,227,216,226,39,226,129,225,245,224,144,224,88,224,78,224, +114,224,199,224,80,225,18,226,13,227,57,228,137,229,236,230,83,232,178,233,5,235,70,236,114,237,127,238,100,239,22,240, +139,240,192,240,182,240,113,240,244,239,70,239,109,238,115,237,102,236,86,235,83,234,109,233,175,232,31,232,191,231,141,231, +132,231,161,231,221,231,50,232,148,232,246,232,71,233,120,233,123,233,74,233,229,232,81,232,151,231,188,230,199,229,188,228, +157,227,113,226,65,225,23,224,250,222,243,221,6,221,56,220,141,219,14,219,197,218,188,218,254,218,148,219,130,220,204,221, +109,223,96,225,153,227,12,230,169,232,99,235,43,238,242,240,165,243,49,246,136,248,162,250,125,252,34,254,155,255,242,0, +39,2,57,3,37,4,233,4,141,5,28,6,159,6,29,7,150,7,5,8,101,8,179,8,238,8,25,9,51,9,62,9, +55,9,32,9,254,8,213,8,170,8,129,8,90,8,55,8,31,8,29,8,64,8,149,8,35,9,234,9,231,10,19,12, +104,13,225,14,121,16,42,18,236,19,183,21,131,23,76,25,14,27,197,28,116,30,27,32,195,33,115,35,51,37,8,39, +238,40,215,42,180,44,115,46,8,48,109,49,158,50,156,51,104,52,4,53,118,53,198,53,254,53,41,54,73,54,92,54, +92,54,69,54,23,54,212,53,130,53,35,53,178,52,39,52,118,51,154,50,150,49,114,48,58,47,247,45,172,44,86,43, +239,41,118,40,236,38,86,37,186,35,20,34,90,32,124,30,104,28,20,26,130,23,187,20,205,17,195,14,161,11,103,8, +24,5,189,1,105,254,57,251,72,248,168,245,94,243,99,241,175,239,57,238,2,237,15,236,97,235,246,234,192,234,172,234, +171,234,174,234,178,234,180,234,179,234,172,234,155,234,126,234,87,234,46,234,10,234,242,233,230,233,230,233,238,233,248,233, +0,234,254,233,233,233,182,233,96,233,231,232,85,232,182,231,24,231,132,230,1,230,147,229,65,229,24,229,35,229,105,229, +234,229,154,230,103,231,67,232,32,233,250,233,202,234,137,235,42,236,156,236,210,236,196,236,117,236,234,235,46,235,74,234, +71,233,49,232,24,231,11,230,29,229,88,228,195,227,95,227,47,227,53,227,118,227,240,227,158,228,115,229,95,230,83,231, +72,232,60,233,48,234,34,235,10,236,216,236,124,237,234,237,34,238,38,238,4,238,199,237,122,237,41,237,219,236,154,236, +107,236,81,236,77,236,89,236,110,236,132,236,147,236,145,236,119,236,62,236,229,235,108,235,216,234,46,234,113,233,162,232, +192,231,204,230,204,229,202,228,209,227,235,226,24,226,83,225,146,224,204,223,254,222,40,222,81,221,126,220,184,219,6,219, +115,218,12,218,224,217,251,217,101,218,32,219,40,220,117,221,0,223,195,224,183,226,210,228,5,231,62,233,106,235,122,237, +101,239,41,241,199,242,70,244,167,245,236,246,21,248,37,249,30,250,6,251,225,251,180,252,128,253,66,254,244,254,144,255, +15,0,107,0,158,0,168,0,139,0,80,0,5,0,185,255,125,255,97,255,111,255,179,255,50,0,240,0,234,1,24,3, +106,4,210,5,68,7,190,8,70,10,231,11,172,13,150,15,158,17,186,19,230,21,32,24,113,26,220,28,93,31,230,33, +93,36,171,38,193,40,156,42,67,44,189,45,14,47,49,48,34,49,223,49,111,50,225,50,68,51,167,51,17,52,129,52, +244,52,102,53,210,53,54,54,138,54,201,54,234,54,231,54,189,54,108,54,248,53,103,53,194,52,22,52,111,51,218,50, +96,50,0,50,185,49,131,49,88,49,49,49,7,49,209,48,132,48,19,48,116,47,159,46,142,45,57,44,149,42,155,40, +70,38,159,35,185,32,172,29,143,26,110,23,75,20,39,17,3,14,236,10,245,7,51,5,178,2,117,0,119,254,185,252, +62,251,12,250,37,249,130,248,14,248,176,247,87,247,252,246,160,246,72,246,238,245,132,245,246,244,58,244,85,243,90,242, +96,241,118,240,159,239,209,238,4,238,55,237,111,236,182,235,14,235,109,234,197,233,13,233,75,232,146,231,253,230,164,230, +142,230,184,230,29,231,186,231,146,232,174,233,13,235,163,236,87,238,13,240,171,241,31,243,92,244,91,245,17,246,119,246, +140,246,83,246,217,245,42,245,81,244,84,243,55,242,6,241,211,239,186,238,211,237,47,237,208,236,175,236,191,236,247,236, +80,237,195,237,71,238,201,238,54,239,127,239,153,239,130,239,55,239,179,238,236,237,214,236,114,235,206,233,3,232,49,230, +111,228,201,226,62,225,204,223,118,222,72,221,83,220,161,219,50,219,247,218,220,218,207,218,196,218,185,218,169,218,144,218, +98,218,21,218,163,217,17,217,109,216,199,215,46,215,170,214,59,214,227,213,165,213,131,213,126,213,139,213,154,213,149,213, +104,213,6,213,109,212,159,211,165,210,139,209,96,208,61,207,67,206,147,205,79,205,138,205,81,206,166,207,132,209,228,211, +186,214,238,217,94,221,225,224,77,228,133,231,119,234,30,237,122,239,134,241,57,243,138,244,122,245,22,246,118,246,183,246, +241,246,50,247,125,247,209,247,43,248,138,248,236,248,77,249,166,249,240,249,43,250,92,250,140,250,201,250,31,251,153,251, +67,252,42,253,93,254,227,255,188,1,219,3,43,6,152,8,19,11,145,13,13,16,127,18,220,20,24,23,45,25,29,27, +245,28,201,30,168,32,160,34,181,36,230,38,46,41,131,43,215,45,21,48,44,50,14,52,185,53,51,55,133,56,178,57, +180,58,128,59,18,60,111,60,167,60,206,60,241,60,15,61,29,61,18,61,237,60,184,60,134,60,96,60,69,60,41,60, +255,59,198,59,135,59,83,59,48,59,27,59,0,59,202,58,108,58,234,57,82,57,179,56,17,56,104,55,175,54,226,53, +4,53,29,52,48,51,54,50,31,49,216,47,81,46,133,44,119,42,39,40,145,37,170,34,111,31,225,27,17,24,26,20, +26,16,43,12,98,8,211,4,144,1,170,254,46,252,32,250,123,248,49,247,51,246,113,245,224,244,113,244,21,244,186,243, +85,243,228,242,107,242,246,241,143,241,53,241,228,240,147,240,67,240,251,239,200,239,177,239,179,239,190,239,183,239,135,239, +31,239,124,238,166,237,166,236,134,235,77,234,2,233,176,231,100,230,43,229,21,228,44,227,120,226,252,225,185,225,170,225, +195,225,246,225,49,226,100,226,133,226,142,226,124,226,74,226,242,225,107,225,178,224,198,223,174,222,121,221,53,220,243,218, +190,217,161,216,164,215,205,214,31,214,157,213,67,213,15,213,253,212,8,213,43,213,100,213,176,213,11,214,115,214,231,214, +100,215,231,215,105,216,230,216,91,217,198,217,47,218,162,218,41,219,206,219,145,220,107,221,83,222,63,223,46,224,35,225, +35,226,46,227,59,228,54,229,9,230,159,230,243,230,8,231,236,230,171,230,80,230,220,229,81,229,180,228,14,228,109,227, +222,226,103,226,6,226,177,225,93,225,2,225,150,224,18,224,107,223,153,222,151,221,108,220,43,219,239,217,217,216,4,216, +131,215,98,215,167,215,88,216,124,217,22,219,33,221,138,223,52,226,251,228,188,231,90,234,196,236,243,238,233,240,168,242, +55,244,153,245,214,246,248,247,12,249,31,250,61,251,102,252,149,253,188,254,208,255,207,0,193,1,180,2,183,3,207,4, +246,5,31,7,65,8,88,9,107,10,134,11,177,12,236,13,52,15,132,16,225,17,84,19,233,20,164,22,122,24,91,26, +51,28,244,29,160,31,62,33,215,34,111,36,1,38,132,39,239,40,62,42,110,43,124,44,99,45,34,46,189,46,66,47, +195,47,83,48,252,48,189,49,143,50,108,51,82,52,66,53,55,54,33,55,229,55,103,56,146,56,101,56,237,55,67,55, +123,54,162,53,189,52,206,51,222,50,250,49,49,49,140,48,11,48,167,47,88,47,24,47,229,46,191,46,163,46,138,46, +102,46,48,46,224,45,114,45,229,44,50,44,82,43,62,42,241,40,109,39,182,37,208,35,184,33,105,31,222,28,24,26, +32,23,7,20,223,16,185,13,153,10,126,7,98,4,65,1,31,254,7,251,12,248,60,245,165,242,72,240,34,238,46,236, +107,234,225,232,154,231,156,230,231,229,112,229,35,229,237,228,193,228,152,228,111,228,67,228,14,228,198,227,103,227,244,226, +120,226,0,226,149,225,54,225,221,224,130,224,35,224,194,223,102,223,19,223,197,222,116,222,27,222,188,221,97,221,26,221, +242,220,238,220,11,221,71,221,160,221,25,222,182,222,114,223,61,224,2,225,167,225,27,226,88,226,93,226,50,226,219,225, +94,225,187,224,247,223,25,223,45,222,68,221,116,220,215,219,136,219,155,219,27,220,5,221,72,222,206,223,128,225,76,227, +38,229,6,231,225,232,166,234,72,236,183,237,238,238,235,239,180,240,79,241,196,241,26,242,91,242,147,242,199,242,254,242, +55,243,117,243,188,243,20,244,134,244,19,245,179,245,85,246,230,246,87,247,164,247,209,247,224,247,212,247,168,247,89,247, +235,246,100,246,207,245,48,245,131,244,187,243,206,242,187,241,138,240,73,239,0,238,171,236,62,235,171,233,244,231,39,230, +96,228,187,226,74,225,19,224,23,223,87,222,224,221,193,221,8,222,185,222,207,223,58,225,237,226,221,228,1,231,80,233, +183,235,33,238,120,240,177,242,201,244,196,246,164,248,102,250,1,252,107,253,165,254,181,255,171,0,146,1,110,2,61,3, +248,3,153,4,32,5,142,5,224,5,18,6,28,6,249,5,174,5,73,5,221,4,122,4,42,4,241,3,208,3,205,3, +242,3,76,4,229,4,188,5,204,6,10,8,111,9,247,10,160,12,101,14,60,16,25,18,244,19,202,21,162,23,135,25, +127,27,134,29,142,31,134,33,97,35,22,37,165,38,15,40,77,41,85,42,23,43,139,43,174,43,139,43,48,43,172,42, +11,42,83,41,141,40,196,39,9,39,111,38,5,38,209,37,207,37,245,37,53,38,133,38,222,38,61,39,160,39,6,40, +105,40,196,40,16,41,73,41,108,41,118,41,103,41,62,41,249,40,147,40,7,40,84,39,120,38,120,37,92,36,39,35, +217,33,107,32,204,30,238,28,192,26,63,24,105,21,67,18,212,14,32,11,44,7,6,3,200,254,151,250,160,246,9,243, +240,239,96,237,92,235,226,233,243,232,145,232,186,232,93,233,86,234,112,235,114,236,47,237,144,237,151,237,84,237,215,236, +47,236,98,235,122,234,139,233,182,232,34,232,235,231,25,232,155,232,77,233,10,234,181,234,64,235,163,235,216,235,213,235, +142,235,253,234,47,234,61,233,80,232,145,231,32,231,13,231,95,231,20,232,36,233,133,234,41,236,249,237,219,239,180,241, +108,243,243,244,59,246,59,247,235,247,72,248,82,248,20,248,159,247,8,247,99,246,191,245,36,245,151,244,24,244,171,243, +81,243,19,243,250,242,18,243,102,243,250,243,199,244,191,245,206,246,222,247,226,248,207,249,158,250,70,251,183,251,225,251, +183,251,54,251,97,250,71,249,247,247,128,246,242,244,90,243,201,241,81,240,253,238,208,237,198,236,209,235,231,234,0,234, +23,233,43,232,59,231,67,230,69,229,72,228,94,227,156,226,22,226,210,225,203,225,237,225,31,226,69,226,70,226,12,226, +134,225,168,224,112,223,231,221,30,220,45,218,48,216,67,214,130,212,10,211,246,209,91,209,69,209,180,209,159,210,249,211, +177,213,185,215,251,217,98,220,212,222,54,225,122,227,154,229,155,231,134,233,97,235,47,237,242,238,173,240,106,242,49,244, +7,246,232,247,193,249,127,251,12,253,92,254,102,255,32,0,130,0,129,0,22,0,67,255,24,254,170,252,16,251,93,249, +162,247,241,245,99,244,18,243,24,242,138,241,114,241,212,241,170,242,240,243,155,245,156,247,219,249,61,252,170,254,17,1, +104,3,176,5,232,7,16,10,42,12,62,14,88,16,137,18,220,20,81,23,220,25,104,28,230,30,72,33,136,35,154,37, +112,39,246,40,32,42,238,42,113,43,197,43,0,44,46,44,78,44,94,44,96,44,97,44,112,44,154,44,219,44,40,45, +114,45,178,45,235,45,39,46,108,46,181,46,248,46,43,47,74,47,91,47,101,47,107,47,102,47,78,47,34,47,235,46, +189,46,166,46,171,46,191,46,206,46,195,46,146,46,51,46,160,45,201,44,154,43,1,42,252,39,151,37,237,34,19,32, +23,29,250,25,186,22,98,19,13,16,228,12,16,10,172,7,191,5,63,4,28,3,70,2,177,1,80,1,20,1,233,0, +188,0,126,0,38,0,182,255,51,255,163,254,16,254,131,253,5,253,160,252,89,252,48,252,34,252,38,252,52,252,71,252, +88,252,94,252,78,252,26,252,184,251,33,251,83,250,85,249,43,248,224,246,126,245,19,244,174,242,95,241,50,240,49,239, +100,238,208,237,126,237,113,237,170,237,30,238,189,238,111,239,29,240,177,240,30,241,86,241,82,241,13,241,138,240,207,239, +233,238,232,237,225,236,232,235,17,235,110,234,13,234,241,233,21,234,106,234,222,234,101,235,248,235,147,236,50,237,203,237, +73,238,150,238,161,238,104,238,246,237,93,237,174,236,245,235,52,235,109,234,158,233,205,232,1,232,64,231,147,230,1,230, +143,229,65,229,21,229,3,229,255,228,249,228,237,228,217,228,195,228,171,228,140,228,84,228,240,227,85,227,128,226,124,225, +81,224,6,223,156,221,16,220,106,218,184,216,15,215,130,213,21,212,196,210,130,209,73,208,26,207,254,205,254,204,31,204, +94,203,180,202,31,202,166,201,86,201,60,201,96,201,198,201,106,202,74,203,101,204,187,205,71,207,2,209,227,210,226,212, +249,214,38,217,96,219,159,221,216,223,4,226,33,228,53,230,71,232,90,234,107,236,109,238,85,240,28,242,189,243,56,245, +139,246,178,247,170,248,118,249,35,250,195,250,108,251,44,252,12,253,15,254,54,255,136,0,9,2,186,3,151,5,146,7, +158,9,180,11,208,13,242,15,29,18,77,20,129,22,187,24,7,27,119,29,26,32,250,34,14,38,64,41,113,44,131,47, +94,50,243,52,57,55,46,57,212,58,44,60,62,61,15,62,164,62,3,63,45,63,42,63,2,63,196,62,122,62,47,62, +230,61,156,61,77,61,247,60,152,60,52,60,204,59,99,59,253,58,156,58,69,58,249,57,186,57,131,57,80,57,28,57, +224,56,153,56,64,56,210,55,77,55,181,54,22,54,126,53,251,52,149,52,76,52,22,52,232,51,182,51,117,51,24,51, +145,50,203,49,178,48,51,47,66,45,220,42,4,40,194,36,36,33,63,29,44,25,11,21,252,16,32,13,143,9,97,6, +164,3,97,1,150,255,52,254,35,253,69,252,125,251,184,250,239,249,28,249,60,248,74,247,66,246,36,245,253,243,227,242, +233,241,27,241,121,240,253,239,159,239,92,239,50,239,26,239,255,238,195,238,74,238,131,237,114,236,46,235,212,233,123,232, +47,231,245,229,214,228,226,227,49,227,216,226,222,226,57,227,209,227,141,228,92,229,54,230,19,231,232,231,162,232,42,233, +113,233,115,233,54,233,198,232,49,232,126,231,179,230,217,229,252,228,42,228,106,227,192,226,41,226,162,225,43,225,200,224, +122,224,68,224,32,224,12,224,5,224,11,224,32,224,62,224,87,224,88,224,45,224,206,223,60,223,128,222,163,221,172,220, +158,219,128,218,93,217,75,216,97,215,178,214,73,214,37,214,63,214,144,214,17,215,186,215,129,216,93,217,65,218,35,219, +255,219,209,220,153,221,85,222,3,223,165,223,60,224,204,224,86,225,214,225,67,226,152,226,209,226,242,226,1,227,0,227, +234,226,183,226,96,226,231,225,86,225,184,224,23,224,119,223,217,222,67,222,196,221,117,221,113,221,201,221,133,222,162,223, +30,225,253,226,72,229,6,232,50,235,181,238,107,242,46,246,221,249,102,253,190,0,223,3,192,6,87,9,158,11,147,13, +61,15,166,16,217,17,220,18,183,19,114,20,26,21,185,21,87,22,245,22,141,23,24,24,146,24,252,24,94,25,188,25, +28,26,125,26,227,26,83,27,214,27,119,28,63,29,49,30,74,31,133,32,220,33,76,35,207,36,97,38,252,39,154,41, +52,43,197,44,71,46,179,47,3,49,55,50,83,51,95,52,101,53,106,54,109,55,104,56,83,57,40,58,232,58,147,59, +45,60,179,60,33,61,118,61,179,61,225,61,9,62,52,62,100,62,151,62,202,62,254,62,55,63,123,63,206,63,47,64, +149,64,244,64,63,65,105,65,103,65,53,65,208,64,56,64,108,63,107,62,48,61,184,59,2,58,24,56,11,54,236,51, +202,49,165,47,114,45,28,43,147,40,210,37,224,34,198,31,139,28,42,25,152,21,203,17,197,13,152,9,96,5,59,1, +64,253,124,249,247,245,184,242,204,239,65,237,36,235,119,233,52,232,75,231,167,230,50,230,218,229,145,229,74,229,0,229, +175,228,88,228,250,227,149,227,41,227,184,226,77,226,245,225,188,225,167,225,175,225,195,225,208,225,204,225,184,225,158,225, +135,225,116,225,91,225,45,225,222,224,111,224,236,223,100,223,223,222,93,222,216,221,72,221,177,220,28,220,151,219,45,219, +221,218,158,218,97,218,24,218,187,217,69,217,187,216,35,216,137,215,253,214,143,214,81,214,79,214,143,214,19,215,219,215, +234,216,68,218,235,219,220,221,13,224,107,226,226,228,95,231,210,233,43,236,93,238,90,240,20,242,130,243,157,244,102,245, +226,245,30,246,38,246,8,246,208,245,134,245,47,245,208,244,112,244,26,244,222,243,199,243,216,243,10,244,81,244,159,244, +238,244,65,245,161,245,17,246,139,246,0,247,95,247,161,247,198,247,217,247,226,247,225,247,202,247,142,247,39,247,153,246, +241,245,64,245,140,244,209,243,5,243,37,242,55,241,75,240,116,239,184,238,21,238,130,237,252,236,144,236,87,236,112,236, +239,236,216,237,29,239,169,240,112,242,108,244,161,246,13,249,165,251,77,254,227,0,76,3,123,5,115,7,66,9,245,10, +140,12,2,14,75,15,98,16,78,17,33,18,239,18,199,19,172,20,145,21,102,22,25,23,161,23,0,24,55,24,72,24, +48,24,231,23,108,23,197,22,6,22,73,21,167,20,49,20,242,19,233,19,23,20,124,20,26,21,243,21,5,23,74,24, +190,25,91,27,32,29,12,31,21,33,42,35,55,37,39,39,238,40,139,42,9,44,113,45,204,46,25,48,83,49,115,50, +119,51,98,52,57,53,0,54,183,54,89,55,226,55,78,56,155,56,199,56,210,56,185,56,121,56,13,56,112,55,159,54, +152,53,100,52,14,51,173,49,86,48,30,47,16,46,46,45,120,44,232,43,123,43,45,43,240,42,173,42,70,42,153,41, +144,40,37,39,95,37,75,35,246,32,98,30,141,27,116,24,28,21,145,17,226,13,33,10,89,6,148,2,224,254,78,251, +245,247,230,244,42,242,189,239,151,237,179,235,18,234,192,232,198,231,35,231,200,230,157,230,134,230,115,230,91,230,63,230, +31,230,248,229,195,229,125,229,46,229,231,228,191,228,204,228,20,229,148,229,65,230,14,231,242,231,230,232,226,233,215,234, +178,235,95,236,209,236,8,237,13,237,243,236,204,236,169,236,150,236,157,236,198,236,28,237,162,237,89,238,58,239,56,240, +70,241,91,242,108,243,117,244,107,245,67,246,243,246,112,247,183,247,201,247,172,247,101,247,247,246,98,246,164,245,195,244, +203,243,206,242,227,241,32,241,151,240,88,240,110,240,227,240,186,241,240,242,117,244,51,246,15,248,240,249,191,251,108,253, +234,254,44,0,37,1,203,1,26,2,25,2,214,1,103,1,223,0,82,0,208,255,103,255,36,255,16,255,43,255,107,255, +187,255,4,0,48,0,53,0,17,0,199,255,89,255,199,254,17,254,59,253,81,252,99,251,127,250,169,249,218,248,2,248, +19,247,7,246,229,244,183,243,139,242,98,241,55,240,2,239,189,237,109,236,29,235,221,233,187,232,192,231,240,230,80,230, +229,229,183,229,204,229,37,230,193,230,151,231,161,232,219,233,66,235,211,236,137,238,87,240,49,242,7,244,205,245,124,247, +17,249,140,250,238,251,56,253,108,254,141,255,157,0,157,1,137,2,94,3,20,4,165,4,15,5,80,5,109,5,104,5, +67,5,0,5,161,4,48,4,183,3,73,3,247,2,206,2,212,2,9,3,103,3,229,3,124,4,37,5,218,5,149,6, +79,7,5,8,180,8,97,9,22,10,225,10,210,11,245,12,86,14,253,15,235,17,29,20,135,22,25,25,188,27,88,30, +216,32,43,35,66,37,17,39,147,40,195,41,165,42,70,43,183,43,10,44,81,44,149,44,217,44,29,45,98,45,165,45, +227,45,19,46,41,46,21,46,208,45,87,45,180,44,247,43,46,43,102,42,163,41,231,40,54,40,151,39,20,39,179,38, +117,38,82,38,63,38,45,38,16,38,224,37,145,37,23,37,100,36,105,35,26,34,110,32,98,30,248,27,52,25,30,22, +191,18,35,15,89,11,114,7,131,3,163,255,241,251,143,248,160,245,67,243,137,241,115,240,242,239,239,239,79,240,249,240, +215,241,208,242,203,243,170,244,84,245,186,245,218,245,190,245,121,245,29,245,187,244,101,244,42,244,30,244,83,244,210,244, +154,245,156,246,189,247,224,248,232,249,193,250,90,251,169,251,168,251,87,251,190,250,243,249,18,249,61,248,145,247,40,247, +21,247,100,247,28,248,61,249,186,250,129,252,116,254,119,0,111,2,71,4,243,5,106,7,161,8,149,9,68,10,180,10, +241,10,13,11,17,11,4,11,229,10,175,10,100,10,6,10,155,9,40,9,170,8,27,8,121,7,202,6,27,6,126,5, +1,5,166,4,102,4,51,4,255,3,195,3,123,3,31,3,165,2,250,1,10,1,202,255,54,254,84,252,51,250,226,247, +112,245,242,242,127,240,51,238,39,236,107,234,1,233,220,231,238,230,40,230,126,229,232,228,88,228,187,227,250,226,6,226, +218,224,127,223,9,222,134,220,0,219,119,217,233,215,89,214,207,212,89,211,252,209,184,208,132,207,87,206,47,205,22,204, +28,203,77,202,175,201,67,201,8,201,7,201,80,201,250,201,26,203,182,204,203,206,74,209,35,212,69,215,159,218,27,222, +155,225,1,229,52,232,32,235,193,237,25,240,42,242,246,243,129,245,206,246,233,247,226,248,197,249,156,250,102,251,31,252, +191,252,68,253,175,253,1,254,59,254,88,254,87,254,57,254,5,254,201,253,147,253,113,253,112,253,156,253,1,254,170,254, +158,255,218,0,81,2,241,3,162,5,80,7,235,8,101,10,184,11,225,12,234,13,226,14,227,15,7,17,95,18,243,19, +193,21,197,23,254,25,112,28,27,31,244,33,227,36,194,39,108,42,196,44,192,46,100,48,189,49,217,50,199,51,147,52, +74,53,253,53,186,54,138,55,108,56,90,57,73,58,44,59,250,59,168,60,41,61,110,61,110,61,39,61,162,60,240,59, +35,59,76,58,118,57,167,56,234,55,76,55,218,54,154,54,142,54,172,54,229,54,42,55,104,55,142,55,137,55,66,55, +169,54,177,53,88,52,163,50,154,48,67,46,166,43,204,40,196,37,164,34,129,31,113,28,131,25,191,22,48,20,225,17, +221,15,40,14,192,12,149,11,147,10,169,9,205,8,253,7,58,7,129,6,201,5,12,5,72,4,136,3,218,2,75,2, +224,1,148,1,93,1,56,1,39,1,45,1,72,1,100,1,98,1,35,1,143,0,159,255,93,254,214,252,25,251,45,249, +28,247,243,244,201,242,185,240,214,238,42,237,182,235,117,234,106,233,154,232,12,232,198,231,194,231,246,231,83,232,210,232, +106,233,17,234,185,234,74,235,174,235,214,235,192,235,115,235,249,234,88,234,143,233,159,232,145,231,117,230,98,229,109,228, +162,227,5,227,149,226,79,226,53,226,70,226,122,226,194,226,9,227,63,227,96,227,110,227,111,227,101,227,71,227,15,227, +184,226,73,226,210,225,99,225,5,225,184,224,122,224,76,224,55,224,74,224,144,224,8,225,169,225,99,226,46,227,8,228, +243,228,235,229,226,230,192,231,110,232,221,232,12,233,6,233,210,232,111,232,215,231,255,230,232,229,161,228,65,227,227,225, +152,224,104,223,82,222,87,221,124,220,196,219,50,219,190,218,95,218,9,218,188,217,126,217,94,217,103,217,158,217,3,218, +146,218,82,219,77,220,152,221,63,223,73,225,170,227,77,230,24,233,242,235,205,238,161,241,110,244,51,247,236,249,140,252, +4,255,68,1,65,3,247,4,107,6,165,7,178,8,154,9,100,10,24,11,193,11,112,12,53,13,32,14,58,15,131,16, +248,17,144,19,66,21,2,23,195,24,118,26,13,28,124,29,192,30,217,31,204,32,160,33,91,34,6,35,175,35,106,36, +81,37,120,38,236,39,171,41,165,43,198,45,250,47,48,50,95,52,126,54,133,56,103,58,20,60,126,61,156,62,110,63, +253,63,90,64,152,64,200,64,246,64,39,65,89,65,135,65,173,65,200,65,217,65,225,65,221,65,202,65,164,65,104,65, +27,65,198,64,115,64,41,64,235,63,182,63,137,63,97,63,61,63,24,63,231,62,152,62,20,62,71,61,35,60,161,58, +196,56,147,54,21,52,82,49,81,46,23,43,174,39,32,36,122,32,201,28,28,25,127,21,250,17,145,14,64,11,1,8, +206,4,164,1,134,254,121,251,134,248,175,245,249,242,99,240,242,237,171,235,150,233,190,231,38,230,209,228,193,227,242,226, +98,226,11,226,223,225,208,225,206,225,205,225,202,225,202,225,215,225,249,225,50,226,129,226,225,226,77,227,200,227,86,228, +250,228,178,229,116,230,53,231,231,231,134,232,21,233,157,233,43,234,201,234,123,235,62,236,18,237,245,237,233,238,239,239, +4,241,29,242,38,243,7,244,171,244,3,245,9,245,188,244,27,244,35,243,211,241,48,240,78,238,77,236,88,234,151,232, +45,231,43,230,150,229,108,229,163,229,52,230,13,231,25,232,58,233,81,234,67,235,254,235,122,236,182,236,178,236,115,236, +2,236,110,235,209,234,68,234,219,233,157,233,132,233,130,233,140,233,157,233,182,233,219,233,11,234,63,234,105,234,126,234, +123,234,102,234,73,234,48,234,37,234,44,234,71,234,120,234,196,234,46,235,181,235,82,236,247,236,149,237,30,238,136,238, +203,238,229,238,211,238,151,238,52,238,177,237,24,237,115,236,209,235,63,235,200,234,123,234,96,234,129,234,227,234,133,235, +104,236,135,237,227,238,123,240,80,242,98,244,172,246,40,249,200,251,126,254,61,1,253,3,185,6,114,9,38,12,208,14, +103,17,219,19,30,22,37,24,233,25,102,27,152,28,121,29,3,30,49,30,7,30,145,29,226,28,13,28,33,27,36,26, +26,25,6,24,241,22,233,21,254,20,60,20,165,19,55,19,234,18,179,18,140,18,113,18,96,18,88,18,94,18,119,18, +177,18,24,19,182,19,144,20,164,21,236,22,95,24,245,25,167,27,112,29,75,31,52,33,38,35,28,37,13,39,240,40, +184,42,91,44,208,45,23,47,55,48,57,49,34,50,243,50,167,51,55,52,165,52,250,52,69,53,146,53,227,53,50,54, +112,54,141,54,133,54,89,54,20,54,191,53,92,53,230,52,84,52,155,51,181,50,160,49,100,48,7,47,148,45,18,44, +136,42,247,40,94,39,185,37,3,36,52,34,71,32,53,30,253,27,154,25,13,23,83,20,112,17,104,14,65,11,6,8, +195,4,136,1,104,254,118,251,198,248,103,246,100,244,191,242,114,241,117,240,184,239,48,239,207,238,141,238,98,238,75,238, +65,238,64,238,69,238,79,238,96,238,125,238,173,238,243,238,77,239,181,239,39,240,162,240,41,241,192,241,105,242,26,243, +194,243,74,244,162,244,198,244,190,244,152,244,94,244,19,244,177,243,47,243,140,242,210,241,21,241,105,240,221,239,122,239, +66,239,54,239,85,239,161,239,20,240,158,240,43,241,166,241,250,241,27,242,254,241,156,241,236,240,232,239,151,238,9,237, +91,235,173,233,28,232,188,230,156,229,198,228,70,228,40,228,112,228,23,229,10,230,43,231,98,232,153,233,200,234,230,235, +236,236,203,237,118,238,229,238,33,239,60,239,82,239,121,239,187,239,27,240,147,240,29,241,183,241,93,242,5,243,162,243, +29,244,100,244,107,244,50,244,197,243,51,243,140,242,222,241,52,241,151,240,15,240,166,239,101,239,79,239,101,239,161,239, +249,239,94,240,189,240,5,241,41,241,31,241,225,240,108,240,194,239,227,238,214,237,165,236,100,235,39,234,4,233,12,232, +74,231,191,230,108,230,80,230,111,230,205,230,113,231,90,232,134,233,234,234,120,236,34,238,222,239,164,241,110,243,59,245, +8,247,209,248,144,250,65,252,225,253,114,255,244,0,106,2,211,3,42,5,108,6,148,7,162,8,153,9,122,10,70,11, +248,11,140,12,253,12,79,13,137,13,181,13,218,13,251,13,25,14,57,14,102,14,176,14,43,15,228,15,223,16,23,18, +128,19,14,21,184,22,123,24,84,26,57,28,30,30,242,31,166,33,50,35,147,36,209,37,244,38,8,40,22,41,37,42, +59,43,92,44,137,45,192,46,253,47,55,49,100,50,121,51,112,52,69,53,248,53,139,54,254,54,77,55,114,55,103,55, +44,55,194,54,49,54,128,53,185,52,221,51,242,50,250,49,253,48,1,48,10,47,25,46,39,45,45,44,40,43,23,42, +253,40,219,39,174,38,111,37,24,36,164,34,21,33,109,31,172,29,201,27,184,25,110,23,233,20,49,18,84,15,97,12, +93,9,74,6,40,3,0,0,227,252,230,249,30,247,148,244,72,242,54,240,90,238,186,236,89,235,57,234,84,233,158,232, +13,232,158,231,89,231,67,231,97,231,171,231,17,232,132,232,254,232,130,233,22,234,191,234,119,235,51,236,231,236,141,237, +39,238,186,238,70,239,194,239,33,240,88,240,100,240,75,240,21,240,195,239,85,239,197,238,19,238,75,237,129,236,202,235, +55,235,202,234,126,234,79,234,60,234,75,234,127,234,213,234,59,235,150,235,203,235,198,235,126,235,246,234,50,234,55,233, +8,232,172,230,45,229,160,227,30,226,192,224,157,223,197,222,65,222,21,222,70,222,208,222,175,223,213,224,47,226,167,227, +38,229,149,230,230,231,13,233,3,234,199,234,90,235,194,235,6,236,47,236,72,236,88,236,102,236,120,236,144,236,182,236, +237,236,58,237,159,237,27,238,167,238,55,239,192,239,52,240,135,240,177,240,171,240,116,240,14,240,129,239,216,238,33,238, +103,237,177,236,2,236,92,235,194,234,53,234,181,233,62,233,199,232,67,232,169,231,246,230,49,230,99,229,149,228,203,227, +3,227,57,226,116,225,197,224,72,224,25,224,80,224,248,224,12,226,128,227,66,229,68,231,123,233,220,235,90,238,231,240, +114,243,234,245,63,248,103,250,91,252,30,254,180,255,39,1,126,2,192,3,236,4,254,5,243,6,204,7,142,8,66,9, +237,9,143,10,33,11,158,11,0,12,76,12,140,12,203,12,21,13,112,13,226,13,113,14,35,15,255,15,9,17,59,18, +137,19,226,20,52,22,114,23,148,24,154,25,131,26,84,27,14,28,181,28,78,29,222,29,107,30,255,30,168,31,115,32, +111,33,161,34,8,36,153,37,69,39,3,41,209,42,177,44,165,46,162,48,147,50,93,52,232,53,45,55,52,56,18,57, +215,57,138,58,38,59,158,59,235,59,16,60,22,60,7,60,229,59,168,59,65,59,165,58,207,57,197,56,140,55,39,54, +145,52,198,50,198,48,150,46,66,44,210,41,73,39,165,36,225,33,253,30,1,28,247,24,226,21,193,18,141,15,65,12, +229,8,140,5,80,2,69,255,110,252,191,249,36,247,139,244,242,241,96,239,228,236,134,234,70,232,27,230,255,227,241,225, +249,223,36,222,123,220,255,218,177,217,143,216,160,215,242,214,150,214,154,214,1,215,199,215,221,216,47,218,169,219,58,221, +215,222,117,224,18,226,174,227,73,229,225,230,114,232,242,233,92,235,172,236,227,237,6,239,28,240,38,241,39,242,28,243, +6,244,232,244,192,245,140,246,65,247,211,247,54,248,99,248,91,248,34,248,187,247,41,247,108,246,135,245,131,244,107,243, +79,242,56,241,44,240,43,239,54,238,80,237,134,236,225,235,107,235,36,235,5,235,3,235,23,235,60,235,112,235,176,235, +247,235,57,236,109,236,141,236,153,236,150,236,137,236,118,236,90,236,51,236,0,236,196,235,136,235,85,235,49,235,27,235, +16,235,9,235,3,235,254,234,254,234,4,235,14,235,22,235,18,235,254,234,218,234,172,234,123,234,78,234,38,234,2,234, +224,233,192,233,164,233,143,233,125,233,101,233,53,233,222,232,88,232,165,231,208,230,231,229,248,228,11,228,43,227,99,226, +197,225,100,225,81,225,148,225,41,226,4,227,25,228,92,229,197,230,75,232,231,233,142,235,56,237,227,238,145,240,73,242, +16,244,230,245,201,247,182,249,176,251,188,253,222,255,17,2,68,4,94,6,66,8,224,9,50,11,60,12,6,13,148,13, +229,13,245,13,197,13,95,13,215,12,67,12,182,11,61,11,219,10,142,10,84,10,37,10,251,9,208,9,157,9,93,9, +15,9,179,8,74,8,215,7,94,7,235,6,139,6,82,6,83,6,153,6,43,7,5,8,33,9,118,10,249,11,159,13, +92,15,33,17,229,18,162,20,90,22,14,24,192,25,106,27,10,29,155,30,36,32,176,33,73,35,246,36,180,38,119,40, +46,42,206,43,77,45,165,46,207,47,193,48,112,49,216,49,253,49,237,49,180,49,90,49,225,48,68,48,132,47,170,46, +198,45,231,44,20,44,72,43,117,42,135,41,115,40,46,39,183,37,10,36,33,34,250,31,150,29,0,27,71,24,121,21, +159,18,187,15,204,12,218,9,246,6,61,4,203,1,178,255,246,253,141,252,100,251,107,250,150,249,223,248,65,248,179,247, +43,247,156,246,255,245,85,245,166,244,3,244,122,243,21,243,216,242,192,242,200,242,237,242,43,243,133,243,253,243,143,244, +53,245,224,245,130,246,14,247,126,247,212,247,23,248,78,248,121,248,150,248,160,248,152,248,131,248,109,248,101,248,116,248, +157,248,218,248,32,249,98,249,151,249,183,249,191,249,169,249,110,249,7,249,106,248,140,247,107,246,9,245,112,243,181,241, +235,239,41,238,125,236,239,234,128,233,47,232,249,230,221,229,223,228,4,228,81,227,205,226,120,226,77,226,66,226,73,226, +84,226,89,226,90,226,93,226,110,226,147,226,201,226,6,227,60,227,94,227,107,227,107,227,101,227,93,227,75,227,35,227, +215,226,103,226,223,225,85,225,224,224,143,224,97,224,77,224,71,224,71,224,77,224,93,224,121,224,155,224,182,224,190,224, +172,224,133,224,88,224,48,224,19,224,250,223,212,223,145,223,37,223,148,222,231,221,40,221,87,220,109,219,94,218,33,217, +185,215,57,214,183,212,77,211,14,210,6,209,62,208,194,207,161,207,235,207,169,208,218,209,113,211,90,213,130,215,214,217, +73,220,205,222,85,225,210,227,56,230,133,232,185,234,220,236,242,238,252,240,250,242,235,244,207,246,173,248,136,250,95,252, +40,254,215,255,102,1,210,2,34,4,94,5,136,6,157,7,149,8,109,9,40,10,214,10,133,11,66,12,15,13,233,13, +205,14,187,15,187,16,210,17,255,18,57,20,115,21,161,22,192,23,212,24,228,25,245,26,7,28,24,29,41,30,66,31, +107,32,170,33,252,34,88,36,181,37,17,39,114,40,227,41,108,43,9,45,175,46,79,48,227,49,105,51,230,52,88,54, +180,55,232,56,227,57,161,58,41,59,137,59,203,59,239,59,233,59,172,59,53,59,144,58,205,57,255,56,43,56,81,55, +109,54,129,53,147,52,172,51,202,50,221,49,206,48,138,47,6,46,73,44,91,42,62,40,229,37,63,35,60,32,222,28, +60,25,119,21,172,17,235,13,52,10,127,6,204,2,36,255,152,251,58,248,17,245,27,242,82,239,184,236,88,234,67,232, +137,230,47,229,47,228,124,227,10,227,205,226,189,226,204,226,228,226,238,226,211,226,135,226,12,226,109,225,184,224,247,223, +46,223,95,222,144,221,206,220,45,220,194,219,151,219,167,219,229,219,60,220,154,220,245,220,73,221,151,221,221,221,21,222, +57,222,72,222,72,222,71,222,86,222,130,222,206,222,53,223,174,223,48,224,182,224,59,225,178,225,5,226,25,226,211,225, +36,225,17,224,171,222,9,221,60,219,79,217,71,215,50,213,41,211,78,209,197,207,168,206,2,206,209,205,17,206,193,206, +228,207,122,209,118,211,189,213,42,216,150,218,228,220,255,222,218,224,100,226,141,227,76,228,162,228,160,228,99,228,9,228, +168,227,74,227,245,226,175,226,137,226,150,226,226,226,107,227,29,228,216,228,124,229,244,229,54,230,68,230,34,230,219,229, +121,229,11,229,161,228,70,228,255,227,205,227,173,227,160,227,170,227,203,227,250,227,30,228,25,228,207,227,54,227,90,226, +84,225,64,224,48,223,47,222,70,221,135,220,17,220,4,220,118,220,105,221,204,222,137,224,146,226,227,228,129,231,107,234, +146,237,213,240,18,244,48,247,40,250,252,252,176,255,67,2,165,4,201,6,164,8,58,10,151,11,200,12,213,13,191,14, +132,15,36,16,160,16,253,16,61,17,93,17,93,17,60,17,2,17,186,16,110,16,40,16,237,15,195,15,181,15,205,15, +20,16,138,16,39,17,223,17,168,18,125,19,95,20,79,21,73,22,68,23,55,24,28,25,244,25,192,26,129,27,53,28, +217,28,106,29,241,29,122,30,16,31,185,31,113,32,52,33,5,34,233,34,236,35,20,37,89,38,170,39,246,40,49,42, +94,43,134,44,174,45,207,46,215,47,178,48,87,49,202,49,23,50,70,50,85,50,57,50,232,49,98,49,180,48,242,47, +42,47,94,46,133,45,146,44,133,43,100,42,56,41,2,40,181,38,58,37,129,35,133,33,83,31,251,28,136,26,248,23, +65,21,92,18,84,15,62,12,51,9,64,6,95,3,123,0,126,253,96,250,45,247,3,244,255,240,58,238,187,235,130,233, +141,231,217,229,105,228,61,227,82,226,157,225,14,225,152,224,47,224,206,223,114,223,25,223,195,222,113,222,35,222,218,221, +153,221,103,221,79,221,92,221,152,221,7,222,166,222,101,223,49,224,246,224,162,225,40,226,130,226,172,226,168,226,122,226, +42,226,196,225,84,225,234,224,147,224,94,224,89,224,140,224,254,224,171,225,136,226,134,227,147,228,163,229,170,230,162,231, +127,232,55,233,190,233,14,234,37,234,8,234,191,233,78,233,189,232,20,232,92,231,164,230,250,229,101,229,232,228,129,228, +50,228,3,228,2,228,62,228,188,228,117,229,90,230,87,231,94,232,103,233,109,234,103,235,74,236,9,237,152,237,244,237, +34,238,39,238,9,238,205,237,119,237,17,237,172,236,89,236,38,236,20,236,33,236,70,236,132,236,220,236,80,237,218,237, +106,238,235,238,75,239,132,239,153,239,149,239,125,239,80,239,7,239,159,238,26,238,125,237,208,236,15,236,53,235,56,234, +26,233,228,231,168,230,111,229,60,228,9,227,206,225,147,224,107,223,113,222,191,221,96,221,84,221,153,221,45,222,26,223, +104,224,26,226,35,228,102,230,198,232,42,235,134,237,211,239,13,242,43,244,32,246,226,247,108,249,197,250,245,251,3,253, +238,253,180,254,87,255,224,255,92,0,219,0,100,1,245,1,133,2,14,3,142,3,10,4,139,4,25,5,184,5,108,6, +57,7,40,8,63,9,128,10,230,11,104,13,248,14,138,16,15,18,125,19,196,20,220,21,192,22,114,23,255,23,119,24, +232,24,96,25,229,25,127,26,53,27,16,28,22,29,73,30,163,31,28,33,169,34,64,36,215,37,103,39,232,40,85,42, +172,43,243,44,48,46,110,47,175,48,243,49,55,51,117,52,167,53,197,54,197,55,152,56,52,57,143,57,169,57,135,57, +48,57,164,56,226,55,231,54,186,53,102,52,254,50,141,49,20,48,135,46,216,44,254,42,247,40,204,38,132,36,30,34, +146,31,215,28,237,25,223,22,193,19,164,16,145,13,133,10,121,7,110,4,106,1,123,254,169,251,246,248,89,246,202,243, +70,241,217,238,146,236,128,234,172,232,24,231,194,229,168,228,206,227,49,227,202,226,137,226,90,226,43,226,243,225,175,225, +96,225,7,225,159,224,44,224,180,223,74,223,5,223,248,222,45,223,166,223,91,224,67,225,86,226,134,227,191,228,233,229, +233,230,174,231,52,232,131,232,169,232,179,232,166,232,134,232,86,232,32,232,244,231,225,231,234,231,10,232,47,232,68,232, +55,232,253,231,142,231,234,230,18,230,10,229,223,227,163,226,107,225,76,224,90,223,160,222,40,222,246,221,14,222,109,222, +13,223,230,223,232,224,4,226,38,227,59,228,46,229,239,229,117,230,196,230,232,230,240,230,234,230,220,230,200,230,171,230, +137,230,105,230,82,230,72,230,73,230,77,230,81,230,85,230,94,230,115,230,154,230,209,230,21,231,103,231,202,231,65,232, +206,232,103,233,251,233,122,234,220,234,34,235,86,235,128,235,161,235,177,235,167,235,127,235,64,235,246,234,168,234,83,234, +239,233,110,233,206,232,22,232,88,231,160,230,243,229,77,229,169,228,10,228,128,227,37,227,18,227,89,227,252,227,247,228, +70,230,231,231,219,233,36,236,187,238,141,241,131,244,132,247,122,250,86,253,13,0,149,2,231,4,250,6,201,8,84,10, +162,11,188,12,175,13,137,14,87,15,33,16,237,16,187,17,138,18,85,19,28,20,224,20,162,21,99,22,33,23,215,23, +127,24,22,25,156,25,22,26,138,26,0,27,126,27,8,28,159,28,67,29,239,29,160,30,80,31,252,31,158,32,51,33, +182,33,37,34,128,34,203,34,16,35,96,35,206,35,107,36,70,37,100,38,197,39,97,41,44,43,21,45,10,47,251,48, +215,50,151,52,49,54,162,55,226,56,237,57,187,58,75,59,156,59,180,59,149,59,69,59,194,58,16,58,49,57,42,56, +252,54,163,53,20,52,63,50,26,48,163,45,228,42,236,39,196,36,111,33,230,29,35,26,38,22,254,17,191,13,122,9, +58,5,0,1,202,252,156,248,131,244,147,240,219,236,99,233,41,230,38,227,90,224,202,221,126,219,125,217,195,215,69,214, +247,212,207,211,200,210,220,209,0,209,35,208,53,207,47,206,32,205,33,204,82,203,198,202,126,202,111,202,142,202,216,202, +85,203,13,204,1,205,29,206,66,207,83,208,65,209,16,210,209,210,148,211,95,212,42,213,232,213,147,214,48,215,204,215, +115,216,40,217,223,217,138,218,24,219,129,219,191,219,210,219,183,219,106,219,237,218,72,218,142,217,213,216,50,216,175,215, +81,215,26,215,12,215,49,215,146,215,49,216,10,217,10,218,30,219,55,220,83,221,119,222,175,223,3,225,114,226,245,227, +131,229,20,231,170,232,70,234,234,235,143,237,38,239,159,240,232,241,252,242,223,243,159,244,75,245,240,245,153,246,75,247, +11,248,222,248,199,249,194,250,198,251,192,252,154,253,67,254,174,254,215,254,191,254,108,254,230,253,55,253,111,252,158,251, +213,250,35,250,147,249,41,249,231,248,200,248,199,248,214,248,228,248,218,248,165,248,60,248,157,247,214,246,244,245,6,245, +26,244,60,243,125,242,243,241,183,241,220,241,105,242,82,243,127,244,215,245,71,247,194,248,69,250,204,251,82,253,203,254, +49,0,129,1,194,2,2,4,75,5,166,6,20,8,148,9,38,11,203,12,129,14,66,16,0,18,168,19,39,21,111,22, +119,23,61,24,191,24,253,24,247,24,178,24,58,24,164,23,6,23,121,22,14,22,209,21,201,21,247,21,86,22,223,22, +137,23,68,24,2,25,182,25,85,26,216,26,56,27,113,27,128,27,100,27,31,27,185,26,61,26,185,25,57,25,200,24, +110,24,43,24,0,24,234,23,234,23,4,24,62,24,158,24,37,25,207,25,148,26,108,27,80,28,65,29,66,30,82,31, +110,32,136,33,145,34,119,35,48,36,187,36,24,37,73,37,81,37,48,37,233,36,129,36,255,35,103,35,177,34,209,33, +177,32,66,31,121,29,86,27,221,24,12,22,223,18,77,15,85,11,255,6,101,2,172,253,250,248,114,244,47,240,65,236, +183,232,154,229,237,226,171,224,197,222,36,221,173,219,74,218,237,216,139,215,30,214,162,212,18,211,112,209,198,207,35,206, +150,204,46,203,242,201,233,200,29,200,157,199,125,199,202,199,134,200,161,201,252,202,119,204,248,205,117,207,237,208,101,210, +222,211,84,213,192,214,31,216,112,217,185,218,254,219,66,221,132,222,200,223,22,225,123,226,3,228,178,229,125,231,80,233, +21,235,187,236,62,238,160,239,224,240,245,241,205,242,84,243,130,243,100,243,18,243,172,242,77,242,3,242,209,241,181,241, +181,241,221,241,60,242,221,242,192,243,216,244,19,246,91,247,159,248,210,249,235,250,228,251,185,252,109,253,6,254,143,254, +15,255,136,255,244,255,69,0,112,0,109,0,62,0,229,255,107,255,213,254,41,254,110,253,174,252,246,251,83,251,207,250, +110,250,51,250,32,250,54,250,117,250,218,250,87,251,219,251,79,252,162,252,199,252,187,252,122,252,3,252,82,251,98,250, +51,249,205,247,58,246,137,244,196,242,237,240,4,239,5,237,240,234,208,232,178,230,169,228,196,226,21,225,166,223,133,222, +186,221,77,221,63,221,142,221,49,222,33,223,84,224,195,225,99,227,37,229,248,230,199,232,134,234,45,236,191,237,68,239, +200,240,80,242,225,243,125,245,35,247,214,248,148,250,90,252,30,254,210,255,97,1,185,2,203,3,143,4,4,5,49,5, +36,5,236,4,151,4,50,4,199,3,96,3,5,3,190,2,149,2,140,2,163,2,209,2,9,3,63,3,102,3,125,3, +132,3,132,3,136,3,159,3,215,3,63,4,223,4,188,5,211,6,26,8,135,9,17,11,181,12,111,14,57,16,7,18, +201,19,107,21,224,22,33,24,50,25,28,26,232,26,160,27,75,28,244,28,168,29,115,30,96,31,115,32,169,33,252,34, +99,36,214,37,74,39,177,40,247,41,9,43,213,43,81,44,124,44,93,44,252,43,102,43,167,42,204,41,232,40,13,40, +74,39,165,38,22,38,145,37,4,37,92,36,136,35,115,34,11,33,58,31,245,28,58,26,22,23,159,19,234,15,8,12, +3,8,230,3,196,255,185,251,233,247,117,244,114,241,228,238,194,236,254,234,141,233,104,232,141,231,246,230,152,230,97,230, +66,230,48,230,36,230,34,230,43,230,66,230,106,230,163,230,238,230,81,231,207,231,106,232,37,233,3,234,3,235,39,236, +105,237,192,238,26,240,100,241,140,242,132,243,72,244,217,244,55,245,101,245,98,245,47,245,208,244,81,244,195,243,58,243, +201,242,128,242,104,242,129,242,197,242,41,243,158,243,25,244,139,244,238,244,59,245,108,245,123,245,96,245,18,245,138,244, +199,243,207,242,180,241,141,240,117,239,127,238,185,237,37,237,189,236,123,236,88,236,84,236,110,236,162,236,228,236,38,237, +86,237,109,237,105,237,83,237,52,237,20,237,242,236,202,236,152,236,90,236,21,236,206,235,136,235,66,235,247,234,161,234, +64,234,214,233,104,233,253,232,149,232,51,232,215,231,131,231,57,231,248,230,190,230,136,230,87,230,42,230,5,230,230,229, +199,229,153,229,80,229,223,228,69,228,132,227,159,226,147,225,90,224,235,222,69,221,116,219,142,217,173,215,231,213,69,212, +204,210,122,209,87,208,113,207,219,206,165,206,211,206,98,207,69,208,111,209,214,210,114,212,63,214,56,216,86,218,149,220, +241,222,100,225,232,227,117,230,3,233,141,235,20,238,156,240,40,243,176,245,39,248,117,250,138,252,89,254,229,255,53,1, +85,2,74,3,26,4,198,4,86,5,214,5,84,6,219,6,110,7,13,8,179,8,96,9,19,10,210,10,159,11,125,12, +106,13,104,14,119,15,153,16,205,17,16,19,92,20,174,21,9,23,117,24,250,25,156,27,86,29,29,31,232,32,178,34, +127,36,86,38,60,40,43,42,24,44,248,45,196,47,129,49,52,51,227,52,133,54,14,56,110,57,157,58,154,59,109,60, +27,61,162,61,251,61,31,62,20,62,239,61,202,61,190,61,213,61,10,62,76,62,139,62,190,62,226,62,246,62,240,62, +193,62,86,62,161,61,160,60,88,59,207,57,7,56,252,53,171,51,23,49,80,46,106,43,121,40,128,37,117,34,70,31, +227,27,75,24,139,20,179,16,209,12,233,8,249,4,0,1,7,253,34,249,109,245,253,241,226,238,33,236,185,233,174,231, +4,230,189,228,214,227,65,227,234,226,189,226,168,226,160,226,155,226,143,226,115,226,62,226,241,225,148,225,56,225,234,224, +175,224,128,224,84,224,38,224,248,223,213,223,197,223,197,223,196,223,173,223,107,223,251,222,99,222,177,221,238,220,24,220, +41,219,31,218,4,217,240,215,254,214,66,214,189,213,97,213,29,213,230,212,189,212,167,212,168,212,177,212,172,212,128,212, +32,212,145,211,231,210,56,210,143,209,236,208,72,208,162,207,7,207,144,206,85,206,108,206,218,206,156,207,175,208,16,210, +191,211,184,213,238,215,71,218,164,220,236,222,13,225,252,226,178,228,32,230,55,231,234,231,53,232,38,232,216,231,106,231, +251,230,157,230,93,230,68,230,87,230,155,230,12,231,161,231,72,232,236,232,122,233,229,233,36,234,48,234,7,234,174,233, +48,233,157,232,12,232,144,231,53,231,0,231,242,230,11,231,73,231,169,231,30,232,150,232,250,232,58,233,81,233,68,233, +34,233,249,232,208,232,174,232,154,232,164,232,226,232,105,233,73,234,130,235,17,237,237,238,19,241,131,243,57,246,36,249, +39,252,34,255,250,1,167,4,53,7,180,9,51,12,177,14,29,17,101,19,122,21,92,23,20,25,172,26,40,28,127,29, +162,30,131,31,25,32,103,32,122,32,97,32,42,32,227,31,149,31,71,31,1,31,204,30,175,30,177,30,209,30,12,31, +87,31,171,31,255,31,82,32,167,32,1,33,101,33,208,33,62,34,175,34,35,35,163,35,56,36,235,36,189,37,176,38, +192,39,239,40,62,42,172,43,55,45,211,46,115,48,9,50,143,51,2,53,101,54,184,55,251,56,41,58,67,59,70,60, +52,61,8,62,187,62,67,63,156,63,197,63,196,63,158,63,78,63,198,62,241,61,191,60,43,59,62,57,7,55,148,52, +231,49,253,46,204,43,85,40,160,36,189,32,191,28,181,24,169,20,162,16,170,12,207,8,26,5,147,1,57,254,10,251, +0,248,26,245,87,242,179,239,40,237,170,234,44,232,171,229,37,227,158,224,26,222,150,219,13,217,127,214,243,211,122,209, +44,207,28,205,87,203,226,201,190,200,235,199,107,199,61,199,93,199,191,199,85,200,16,201,230,201,212,202,217,203,248,204, +52,206,143,207,10,209,166,210,95,212,46,214,9,216,230,217,194,219,152,221,102,223,33,225,183,226,20,228,34,229,214,229, +51,230,68,230,20,230,174,229,22,229,78,228,93,227,82,226,62,225,53,224,68,223,118,222,212,221,100,221,45,221,53,221, +123,221,251,221,175,222,145,223,160,224,213,225,41,227,137,228,227,229,33,231,58,232,45,233,0,234,185,234,91,235,224,235, +68,236,134,236,170,236,189,236,206,236,232,236,25,237,104,237,223,237,131,238,85,239,78,240,101,241,139,242,180,243,215,244, +237,245,238,246,210,247,146,248,42,249,153,249,226,249,8,250,8,250,224,249,146,249,41,249,182,248,77,248,252,247,195,247, +151,247,106,247,51,247,240,246,166,246,86,246,252,245,144,245,15,245,127,244,241,243,123,243,44,243,9,243,17,243,65,243, +159,243,49,244,255,244,2,246,36,247,74,248,95,249,91,250,74,251,59,252,62,253,85,254,125,255,177,0,246,1,88,3, +226,4,148,6,99,8,62,10,21,12,224,13,157,15,75,17,223,18,71,20,114,21,86,22,249,22,108,23,187,23,239,23, +5,24,246,23,198,23,130,23,59,23,4,23,225,22,204,22,189,22,176,22,169,22,177,22,203,22,243,22,25,23,48,23, +46,23,23,23,241,22,197,22,149,22,94,22,36,22,239,21,206,21,209,21,2,22,96,22,228,22,136,23,70,24,28,25, +2,26,239,26,211,27,165,28,103,29,34,30,228,30,179,31,137,32,91,33,31,34,219,34,159,35,128,36,138,37,183,38, +244,39,41,41,72,42,78,43,64,44,28,45,214,45,85,46,130,46,78,46,185,45,203,44,141,43,254,41,24,40,214,37, +55,35,72,32,27,29,194,25,74,22,188,18,33,15,134,11,248,7,126,4,21,1,177,253,72,250,215,246,110,243,39,240, +31,237,103,234,1,232,231,229,13,228,113,226,23,225,2,224,51,223,157,222,48,222,219,221,148,221,86,221,29,221,227,220, +160,220,77,220,233,219,127,219,34,219,232,218,225,218,22,219,137,219,55,220,30,221,61,222,142,223,11,225,168,226,86,228, +5,230,166,231,42,233,137,234,190,235,204,236,191,237,164,238,136,239,117,240,106,241,99,242,90,243,71,244,35,245,231,245, +137,246,254,246,58,247,57,247,247,246,118,246,183,245,187,244,130,243,22,242,138,240,249,238,132,237,72,236,89,235,194,234, +135,234,170,234,46,235,19,236,78,237,207,238,123,240,53,242,228,243,113,245,205,246,232,247,181,248,41,249,67,249,10,249, +143,248,231,247,37,247,84,246,121,245,155,244,194,243,251,242,89,242,232,241,174,241,166,241,196,241,249,241,58,242,128,242, +205,242,34,243,129,243,234,243,84,244,185,244,14,245,81,245,127,245,157,245,171,245,168,245,137,245,67,245,202,244,23,244, +41,243,8,242,184,240,65,239,165,237,235,235,26,234,63,232,103,230,162,228,248,226,113,225,17,224,223,222,228,221,43,221, +190,220,163,220,221,220,108,221,81,222,140,223,26,225,249,226,29,229,122,231,0,234,158,236,70,239,234,241,128,244,254,246, +92,249,146,251,151,253,101,255,243,0,66,2,83,3,50,4,238,4,149,5,51,6,212,6,126,7,55,8,7,9,241,9, +246,10,14,12,46,13,74,14,89,15,87,16,69,17,38,18,253,18,207,19,160,20,122,21,104,22,110,23,136,24,170,25, +196,26,200,27,178,28,130,29,60,30,222,30,100,31,204,31,24,32,90,32,167,32,22,33,179,33,129,34,124,35,160,36, +240,37,111,39,27,41,231,42,189,44,132,46,42,48,172,49,11,51,75,52,104,53,90,54,26,55,172,55,32,56,144,56, +14,57,163,57,71,58,237,58,138,59,24,60,151,60,2,61,77,61,101,61,54,61,180,60,221,59,179,58,55,57,103,55, +60,53,178,50,210,47,174,44,91,41,234,37,97,34,189,30,251,26,30,23,50,19,68,15,98,11,146,7,215,3,48,0, +162,252,51,249,233,245,203,242,218,239,24,237,139,234,58,232,47,230,111,228,252,226,210,225,239,224,79,224,240,223,204,223, +214,223,0,224,59,224,127,224,204,224,39,225,145,225,6,226,123,226,230,226,65,227,145,227,223,227,48,228,131,228,203,228, +249,228,4,229,234,228,181,228,112,228,36,228,211,227,123,227,26,227,175,226,64,226,209,225,103,225,8,225,182,224,113,224, +57,224,9,224,215,223,151,223,60,223,193,222,36,222,109,221,164,220,211,219,1,219,51,218,110,217,182,216,18,216,139,215, +40,215,246,214,254,214,76,215,231,215,207,216,2,218,121,219,42,221,15,223,30,225,76,227,136,229,190,231,220,233,213,235, +164,237,72,239,193,240,12,242,31,243,241,243,127,244,203,244,229,244,224,244,209,244,205,244,231,244,42,245,160,245,72,246, +27,247,16,248,23,249,36,250,45,251,37,252,252,252,159,253,249,253,248,253,153,253,226,252,224,251,165,250,64,249,188,247, +38,246,138,244,245,242,116,241,9,240,179,238,107,237,44,236,249,234,213,233,197,232,201,231,220,230,248,229,34,229,103,228, +222,227,157,227,179,227,39,228,252,228,52,230,210,231,221,233,84,236,43,239,78,242,164,245,23,249,150,252,21,0,135,3, +219,6,254,9,223,12,118,15,193,17,200,19,146,21,36,23,132,24,182,25,194,26,180,27,148,28,102,29,40,30,215,30, +114,31,251,31,119,32,233,32,81,33,173,33,253,33,74,34,156,34,252,34,106,35,223,35,78,36,177,36,14,37,110,37, +223,37,102,38,251,38,147,39,35,40,171,40,49,41,192,41,93,42,4,43,175,43,88,44,1,45,180,45,121,46,90,47, +86,48,109,49,157,50,231,51,71,53,180,54,30,56,117,57,171,58,192,59,187,60,162,61,121,62,58,63,222,63,100,64, +212,64,58,65,157,65,243,65,35,66,11,66,151,65,193,64,151,63,37,62,115,60,115,58,15,56,55,53,234,49,61,46, +78,42,58,38,16,34,209,29,125,25,23,21,172,16,76,12,4,8,216,3,193,255,186,251,194,247,223,243,33,240,149,236, +69,233,54,230,110,227,239,224,188,222,208,220,29,219,143,217,20,216,164,214,64,213,247,211,211,210,219,209,9,209,85,208, +190,207,81,207,37,207,84,207,234,207,226,208,34,210,138,211,254,212,111,214,221,215,75,217,188,218,46,220,154,221,253,222, +89,224,186,225,42,227,175,228,69,230,220,231,98,233,195,234,236,235,206,236,91,237,134,237,75,237,177,236,200,235,172,234, +115,233,48,232,236,230,171,229,119,228,97,227,130,226,239,225,175,225,188,225,2,226,107,226,233,226,118,227,20,228,192,228, +118,229,45,230,231,230,174,231,151,232,183,233,23,235,179,236,121,238,83,240,52,242,17,244,226,245,152,247,30,249,91,250, +67,251,218,251,52,252,107,252,143,252,167,252,179,252,180,252,183,252,212,252,32,253,162,253,77,254,5,255,174,255,53,0, +149,0,206,0,225,0,197,0,112,0,225,255,36,255,83,254,136,253,214,252,64,252,189,251,63,251,193,250,66,250,198,249, +70,249,180,248,253,247,20,247,1,246,216,244,189,243,206,242,28,242,172,241,123,241,136,241,214,241,108,242,79,243,123,244, +221,245,96,247,233,248,100,250,199,251,17,253,76,254,135,255,213,0,72,2,236,3,198,5,206,7,248,9,49,12,103,14, +135,16,129,18,71,20,204,21,6,23,240,23,134,24,202,24,190,24,104,24,213,23,19,23,54,22,83,21,123,20,185,19, +18,19,131,18,10,18,164,17,79,17,5,17,190,16,113,16,19,16,159,15,25,15,139,14,4,14,149,13,77,13,55,13, +91,13,187,13,87,14,37,15,27,16,43,17,72,18,108,19,146,20,184,21,217,22,241,23,250,24,241,25,220,26,199,27, +191,28,211,29,8,31,98,32,222,33,120,35,42,37,239,38,186,40,125,42,38,44,160,45,223,46,217,47,142,48,5,49, +70,49,93,49,85,49,56,49,16,49,223,48,167,48,97,48,5,48,138,47,232,46,25,46,21,45,215,43,85,42,137,40, +108,38,0,36,76,33,91,30,59,27,247,23,149,20,26,17,139,13,239,9,80,6,188,2,67,255,243,251,223,248,21,246, +164,243,148,241,234,239,159,238,169,237,253,236,142,236,84,236,66,236,75,236,95,236,108,236,101,236,71,236,23,236,225,235, +174,235,136,235,120,235,135,235,199,235,73,236,31,237,73,238,186,239,83,241,242,242,122,244,214,245,255,246,239,247,158,248, +7,249,37,249,0,249,173,248,72,248,236,247,171,247,140,247,142,247,173,247,232,247,58,248,150,248,230,248,15,249,249,248, +154,248,247,247,30,247,30,246,252,244,180,243,68,242,183,240,38,239,184,237,142,236,186,235,56,235,243,234,210,234,199,234, +209,234,245,234,55,235,148,235,1,236,116,236,235,236,109,237,6,238,188,238,140,239,103,240,56,241,237,241,124,242,225,242, +27,243,39,243,2,243,169,242,29,242,106,241,163,240,220,239,43,239,155,238,49,238,234,237,189,237,161,237,144,237,134,237, +128,237,123,237,116,237,98,237,61,237,255,236,166,236,56,236,194,235,79,235,230,234,130,234,22,234,144,233,224,232,1,232, +245,230,199,229,130,228,47,227,212,225,117,224,26,223,211,221,174,220,190,219,13,219,165,218,138,218,191,218,72,219,40,220, +91,221,217,222,148,224,122,226,124,228,145,230,180,232,226,234,24,237,82,239,140,241,198,243,3,246,72,248,151,250,232,252, +46,255,92,1,100,3,67,5,250,6,140,8,250,9,63,11,89,12,72,13,22,14,207,14,130,15,54,16,234,16,152,17, +62,18,220,18,125,19,41,20,229,20,175,21,127,22,79,23,32,24,248,24,221,25,211,26,211,27,210,28,198,29,172,30, +134,31,92,32,53,33,20,34,249,34,229,35,220,36,233,37,17,39,87,40,184,41,46,43,179,44,74,46,249,47,196,49, +168,51,156,53,140,55,104,57,36,59,192,60,65,62,174,63,11,65,85,66,138,67,165,68,166,69,142,70,95,71,23,72, +179,72,44,73,120,73,144,73,110,73,17,73,122,72,174,71,175,70,126,69,25,68,122,66,162,64,148,62,86,60,241,57, +99,55,168,52,180,49,131,46,24,43,131,39,221,35,59,32,170,28,41,25,179,21,64,18,209,14,106,11,14,8,189,4, +111,1,31,254,209,250,148,247,130,244,181,241,61,239,33,237,95,235,244,233,224,232,39,232,199,231,182,231,221,231,32,232, +102,232,164,232,213,232,253,232,31,233,57,233,74,233,85,233,100,233,132,233,188,233,10,234,97,234,177,234,237,234,17,235, +33,235,31,235,1,235,185,234,49,234,97,233,78,232,15,231,191,229,118,228,67,227,39,226,33,225,46,224,77,223,125,222, +182,221,234,220,8,220,5,219,224,217,160,216,86,215,19,214,227,212,212,211,247,210,96,210,37,210,84,210,239,210,232,211, +40,213,149,214,29,216,185,217,102,219,37,221,239,222,188,224,128,226,55,228,227,229,136,231,44,233,208,234,110,236,250,237, +107,239,185,240,219,241,205,242,138,243,20,244,112,244,172,244,220,244,19,245,93,245,191,245,56,246,196,246,99,247,20,248, +215,248,163,249,100,250,2,251,99,251,117,251,51,251,164,250,211,249,203,248,152,247,69,246,228,244,139,243,81,242,73,241, +127,240,237,239,134,239,57,239,246,238,178,238,105,238,27,238,200,237,118,237,44,237,249,236,239,236,36,237,170,237,146,238, +230,239,174,241,236,243,154,246,174,249,18,253,172,0,99,4,28,8,198,11,82,15,181,18,231,21,221,24,148,27,8,30, +65,32,71,34,34,36,215,37,101,39,203,40,6,42,23,43,5,44,212,44,132,45,18,46,115,46,160,46,154,46,105,46, +29,46,196,45,106,45,20,45,195,44,120,44,56,44,12,44,250,43,4,44,38,44,86,44,142,44,199,44,1,45,59,45, +113,45,160,45,197,45,225,45,0,46,47,46,126,46,244,46,146,47,87,48,71,49,106,50,206,51,119,53,92,55,99,57, +110,59,98,61,53,63,232,64,133,66,17,68,134,69,214,70,244,71,223,72,158,73,59,74,181,74,255,74,3,75,173,74, +244,73,222,72,116,71,185,69,165,67,41,65,63,62,239,58,81,55,128,51,142,47,125,43,69,39,226,34,94,30,212,25, +100,21,31,17,2,13,248,8,236,4,218,0,207,252,233,248,64,245,223,241,195,238,232,235,76,233,250,230,252,228,81,227, +227,225,141,224,39,223,151,221,216,219,243,217,249,215,247,213,245,211,4,210,59,208,189,206,173,205,34,205,34,205,162,205, +142,206,218,207,121,209,97,211,129,213,185,215,233,217,242,219,199,221,106,223,233,224,83,226,180,227,19,229,118,230,229,231, +104,233,252,234,150,236,28,238,112,239,122,240,46,241,137,241,142,241,61,241,146,240,143,239,60,238,179,236,21,235,133,233, +31,232,243,230,4,230,82,229,219,228,158,228,150,228,190,228,8,229,105,229,216,229,84,230,227,230,144,231,103,232,117,233, +194,234,86,236,49,238,71,240,134,242,211,244,19,247,47,249,25,251,206,252,83,254,175,255,240,0,35,2,86,3,152,4, +240,5,97,7,226,8,106,10,237,11,96,13,185,14,236,15,234,16,158,17,248,17,237,17,128,17,192,16,195,15,160,14, +108,13,55,12,15,11,2,10,29,9,107,8,240,7,167,7,129,7,109,7,85,7,40,7,218,6,102,6,208,5,32,5, +99,4,167,3,252,2,113,2,20,2,243,1,27,2,144,2,81,3,81,4,123,5,184,6,245,7,39,9,76,10,102,11, +122,12,138,13,154,14,176,15,215,16,31,18,149,19,61,21,18,23,4,25,2,27,252,28,232,30,186,32,101,34,213,35, +241,36,165,37,234,37,203,37,92,37,181,36,229,35,240,34,214,33,153,32,68,31,240,29,183,28,171,27,209,26,25,26, +113,25,198,24,18,24,86,23,150,22,211,21,10,21,51,20,80,19,106,18,150,17,235,16,124,16,80,16,103,16,187,16, +70,17,0,18,225,18,221,19,228,20,231,21,220,22,192,23,153,24,110,25,70,26,34,27,4,28,243,28,253,29,50,31, +160,32,75,34,40,36,37,38,43,40,35,42,252,43,167,45,26,47,72,48,44,49,194,49,18,50,38,50,10,50,201,49, +104,49,237,48,88,48,170,47,224,46,243,45,214,44,126,43,222,41,241,39,181,37,44,35,93,32,81,29,21,26,188,22, +91,19,3,16,191,12,144,9,114,6,97,3,94,0,112,253,164,250,1,248,141,245,73,243,54,241,87,239,178,237,77,236, +40,235,62,234,137,233,4,233,174,232,136,232,149,232,207,232,48,233,175,233,69,234,244,234,186,235,151,236,129,237,111,238, +90,239,70,240,60,241,72,242,106,243,150,244,179,245,170,246,108,247,251,247,97,248,173,248,231,248,12,249,23,249,8,249, +232,248,200,248,191,248,217,248,28,249,129,249,249,249,113,250,216,250,31,251,58,251,39,251,233,250,140,250,28,250,163,249, +36,249,160,248,22,248,137,247,255,246,130,246,22,246,191,245,122,245,68,245,28,245,6,245,6,245,35,245,100,245,210,245, +120,246,93,247,130,248,216,249,72,251,184,252,21,254,87,255,132,0,162,1,172,2,147,3,61,4,150,4,158,4,104,4, +19,4,191,3,124,3,71,3,22,3,220,2,150,2,73,2,252,1,177,1,97,1,1,1,132,0,230,255,41,255,80,254, +96,253,93,252,77,251,55,250,37,249,29,248,31,247,30,246,10,245,209,243,106,242,214,240,34,239,91,237,146,235,211,233, +41,232,157,230,61,229,23,228,59,227,181,226,142,226,197,226,80,227,31,228,32,229,67,230,129,231,217,232,78,234,221,235, +129,237,44,239,217,240,138,242,77,244,55,246,82,248,156,250,255,252,91,255,151,1,162,3,124,5,40,7,162,8,224,9, +210,10,114,11,202,11,249,11,32,12,93,12,188,12,54,13,193,13,83,14,236,14,142,15,59,16,234,16,140,17,19,18, +124,18,211,18,41,19,146,19,22,20,182,20,107,21,48,22,7,23,244,23,250,24,21,26,59,27,99,28,132,29,161,30, +192,31,229,32,16,34,63,35,110,36,157,37,212,38,30,40,134,41,15,43,180,44,107,46,45,48,246,49,202,51,175,53, +166,55,169,57,171,59,150,61,88,63,227,64,51,66,75,67,51,68,246,68,153,69,33,70,145,70,238,70,63,71,139,71, +211,71,19,72,61,72,62,72,6,72,136,71,191,70,172,69,78,68,162,66,161,64,69,62,140,59,123,56,27,53,118,49, +149,45,126,41,60,37,224,32,133,28,72,24,64,20,121,16,237,12,145,9,87,6,56,3,56,0,93,253,171,250,36,248, +194,245,133,243,112,241,142,239,232,237,132,236,91,235,98,234,137,233,201,232,38,232,166,231,82,231,45,231,47,231,76,231, +125,231,189,231,19,232,135,232,31,233,219,233,176,234,146,235,116,236,79,237,32,238,232,238,170,239,103,240,28,241,199,241, +102,242,249,242,135,243,20,244,165,244,58,245,206,245,84,246,190,246,254,246,10,247,218,246,106,246,182,245,186,244,117,243, +237,241,44,240,68,238,72,236,75,234,94,232,144,230,243,228,159,227,174,226,55,226,66,226,197,226,165,227,194,228,255,229, +78,231,169,232,19,234,137,235,250,236,79,238,112,239,75,240,220,240,41,241,60,241,25,241,193,240,52,240,118,239,152,238, +180,237,235,236,87,236,13,236,17,236,98,236,245,236,187,237,164,238,154,239,130,240,68,241,201,241,0,242,231,241,130,241, +225,240,19,240,44,239,62,238,90,237,143,236,232,235,107,235,20,235,217,234,170,234,116,234,39,234,183,233,30,233,90,232, +110,231,97,230,64,229,32,228,25,227,75,226,211,225,204,225,66,226,57,227,168,228,126,230,166,232,11,235,154,237,66,240, +245,242,168,245,81,248,236,250,119,253,241,255,98,2,206,4,62,7,182,9,55,12,188,14,62,17,175,19,3,22,47,24, +45,26,250,27,150,29,1,31,61,32,72,33,31,34,197,34,60,35,140,35,193,35,230,35,6,36,40,36,79,36,121,36, +166,36,214,36,13,37,81,37,168,37,21,38,148,38,35,39,189,39,95,40,13,41,202,41,154,42,122,43,100,44,82,45, +62,46,42,47,26,48,19,49,24,50,42,51,68,52,102,53,146,54,204,55,21,57,105,58,189,59,7,61,62,62,96,63, +117,64,131,65,142,66,146,67,130,68,80,69,244,69,110,70,195,70,251,70,27,71,37,71,24,71,242,70,179,70,89,70, +224,69,65,69,111,68,97,67,12,66,104,64,112,62,30,60,109,57,90,54,232,50,31,47,13,43,199,38,93,34,229,29, +114,25,26,21,245,16,20,13,128,9,57,6,55,3,114,0,223,253,124,251,69,249,54,247,68,245,103,243,151,241,215,239, +44,238,160,236,51,235,225,233,159,232,102,231,60,230,46,229,77,228,164,227,46,227,223,226,170,226,139,226,135,226,175,226, +10,227,155,227,88,228,56,229,55,230,92,231,177,232,54,234,221,235,137,237,25,239,117,240,144,241,106,242,4,243,87,243, +84,243,236,242,31,242,254,240,169,239,68,238,230,236,151,235,83,234,21,233,223,231,182,230,161,229,153,228,142,227,103,226, +19,225,142,223,232,221,57,220,159,218,46,217,253,215,29,215,165,214,171,214,60,215,84,216,221,217,177,219,168,221,159,223, +125,225,46,227,161,228,198,229,147,230,5,231,43,231,28,231,247,230,216,230,210,230,241,230,60,231,187,231,116,232,102,233, +140,234,210,235,37,237,112,238,166,239,194,240,197,241,175,242,132,243,69,244,248,244,166,245,89,246,24,247,225,247,171,248, +99,249,248,249,91,250,130,250,104,250,13,250,119,249,176,248,197,247,201,246,202,245,211,244,230,243,7,243,56,242,128,241, +237,240,137,240,89,240,92,240,134,240,207,240,51,241,180,241,95,242,61,243,86,244,171,245,55,247,246,248,229,250,0,253, +69,255,171,1,39,4,170,6,36,9,132,11,191,13,203,15,159,17,55,19,147,20,180,21,160,22,94,23,245,23,113,24, +227,24,92,25,240,25,171,26,140,27,137,28,144,29,144,30,126,31,89,32,40,33,237,33,166,34,72,35,200,35,31,36, +82,36,106,36,115,36,118,36,114,36,101,36,75,36,41,36,7,36,241,35,236,35,253,35,32,36,84,36,157,36,0,37, +130,37,39,38,237,38,214,39,226,40,25,42,127,43,23,45,219,46,190,48,178,50,168,52,153,54,125,56,73,58,236,59, +85,61,117,62,74,63,224,63,74,64,156,64,225,64,30,65,80,65,116,65,138,65,143,65,122,65,60,65,192,64,243,63, +203,62,73,61,114,59,75,57,208,54,253,51,208,48,82,45,152,41,189,37,220,33,10,30,81,26,187,22,80,19,27,16, +35,13,99,10,206,7,78,5,208,2,76,0,196,253,67,251,211,248,121,246,55,244,12,242,254,239,21,238,89,236,205,234, +108,233,47,232,14,231,9,230,39,229,109,228,220,227,111,227,27,227,218,226,172,226,149,226,156,226,196,226,6,227,94,227, +199,227,64,228,204,228,107,229,22,230,192,230,90,231,218,231,63,232,140,232,195,232,229,232,235,232,209,232,152,232,72,232, +235,231,135,231,21,231,136,230,203,229,211,228,160,227,61,226,186,224,39,223,143,221,249,219,111,218,254,216,184,215,177,214, +249,213,150,213,138,213,207,213,92,214,36,215,26,216,45,217,77,218,109,219,133,220,152,221,172,222,201,223,245,224,49,226, +120,227,197,228,15,230,85,231,148,232,206,233,3,235,50,236,80,237,82,238,40,239,201,239,49,240,110,240,145,240,175,240, +214,240,10,241,69,241,130,241,193,241,10,242,107,242,238,242,146,243,68,244,235,244,109,245,184,245,200,245,164,245,83,245, +223,244,77,244,160,243,224,242,26,242,90,241,170,240,16,240,137,239,18,239,167,238,74,238,253,237,191,237,142,237,104,237, +80,237,79,237,118,237,218,237,135,238,129,239,195,240,66,242,247,243,223,245,252,247,76,250,202,252,106,255,27,2,210,4, +135,7,58,10,230,12,134,15,14,18,112,20,163,22,165,24,122,26,44,28,191,29,52,31,137,32,189,33,210,34,208,35, +191,36,165,37,132,38,85,39,19,40,184,40,67,41,184,41,26,42,109,42,179,42,237,42,26,43,60,43,83,43,96,43, +99,43,89,43,67,43,32,43,242,42,190,42,137,42,93,42,67,42,66,42,97,42,164,42,9,43,143,43,52,44,247,44, +216,45,213,46,233,47,14,49,59,50,103,51,141,52,170,53,191,54,208,55,225,56,248,57,28,59,86,60,171,61,23,63, +141,64,247,65,58,67,57,68,224,68,29,69,228,68,45,68,239,66,38,65,210,62,0,60,196,56,59,53,131,49,179,45, +220,41,5,38,47,34,89,30,129,26,165,22,196,18,221,14,234,10,231,6,209,2,167,254,110,250,47,246,251,241,228,237, +250,233,78,230,236,226,218,223,26,221,170,218,129,216,146,214,207,212,38,211,138,209,243,207,94,206,206,204,75,203,225,201, +160,200,153,199,224,198,131,198,140,198,246,198,185,199,193,200,255,201,98,203,227,204,123,206,37,208,220,209,153,211,86,213, +18,215,207,216,145,218,93,220,50,222,11,224,220,225,150,227,42,229,136,230,165,231,122,232,7,233,79,233,90,233,51,233, +228,232,122,232,1,232,133,231,21,231,188,230,126,230,93,230,79,230,75,230,66,230,44,230,255,229,183,229,82,229,211,228, +70,228,194,227,103,227,85,227,169,227,112,228,168,229,70,231,53,233,93,235,167,237,248,239,49,242,50,244,218,245,21,247, +217,247,48,248,44,248,236,247,144,247,58,247,8,247,23,247,125,247,67,248,106,249,227,250,150,252,98,254,38,0,194,1, +26,3,25,4,178,4,229,4,191,4,85,4,193,3,28,3,123,2,239,1,133,1,71,1,58,1,92,1,160,1,243,1, +59,2,95,2,80,2,4,2,121,1,178,0,182,255,142,254,74,253,1,252,201,250,185,249,226,248,75,248,248,247,233,247, +27,248,140,248,50,249,3,250,241,250,243,251,6,253,48,254,120,255,222,0,94,2,239,3,133,5,29,7,186,8,95,10, +13,12,189,13,97,15,239,16,98,18,189,19,7,21,63,22,88,23,61,24,216,24,29,25,16,25,194,24,71,24,175,23, +1,23,66,22,118,21,168,20,229,19,58,19,176,18,72,18,2,18,219,17,205,17,211,17,226,17,238,17,236,17,218,17, +194,17,179,17,186,17,221,17,24,18,104,18,203,18,78,19,1,20,238,20,16,22,78,23,133,24,152,25,123,26,50,27, +205,27,87,28,214,28,69,29,162,29,244,29,72,30,177,30,60,31,232,31,174,32,130,33,93,34,60,35,30,36,248,36, +185,37,75,38,156,38,166,38,110,38,1,38,104,37,167,36,193,35,182,34,140,33,75,32,248,30,148,29,21,28,114,26, +165,24,176,22,152,20,100,18,21,16,165,13,16,11,88,8,130,5,153,2,158,255,140,252,87,249,247,245,114,242,223,238, +101,235,45,232,85,229,234,226,237,224,87,223,38,222,90,221,244,220,238,220,60,221,202,221,131,222,85,223,54,224,32,225, +14,226,251,226,222,227,179,228,120,229,47,230,225,230,149,231,85,232,40,233,17,234,14,235,23,236,30,237,16,238,223,238, +132,239,255,239,90,240,160,240,217,240,6,241,38,241,54,241,56,241,53,241,54,241,65,241,85,241,107,241,122,241,127,241, +126,241,129,241,150,241,196,241,13,242,108,242,217,242,79,243,198,243,61,244,173,244,18,245,100,245,160,245,193,245,203,245, +189,245,154,245,103,245,44,245,247,244,221,244,240,244,64,245,211,245,165,246,173,247,223,248,51,250,158,251,21,253,136,254, +228,255,27,1,41,2,16,3,217,3,135,4,19,5,112,5,147,5,125,5,63,5,242,4,170,4,109,4,43,4,201,3, +48,3,92,2,89,1,58,0,18,255,226,253,163,252,75,251,217,249,87,248,215,246,99,245,250,243,145,242,24,241,135,239, +225,237,49,236,128,234,210,232,37,231,119,229,202,227,41,226,163,224,66,223,12,222,252,220,16,220,74,219,178,218,80,218, +40,218,57,218,126,218,247,218,169,219,162,220,236,221,134,223,99,225,113,227,160,229,229,231,65,234,177,236,41,239,148,241, +217,243,230,245,184,247,90,249,220,250,74,252,164,253,229,254,7,0,18,1,22,2,38,3,74,4,123,5,162,6,165,7, +112,8,253,8,84,9,129,9,144,9,136,9,117,9,99,9,100,9,137,9,220,9,97,10,19,11,234,11,228,12,3,14, +70,15,170,16,32,18,147,19,240,20,43,22,69,23,73,24,63,25,46,26,20,27,238,27,186,28,128,29,78,30,50,31, +50,32,78,33,124,34,178,35,233,36,31,38,87,39,153,40,230,41,61,43,152,44,234,45,41,47,73,48,69,49,28,50, +214,50,121,51,13,52,148,52,14,53,119,53,209,53,32,54,110,54,192,54,16,55,76,55,88,55,21,55,109,54,87,53, +214,51,244,49,190,47,63,45,130,42,146,39,126,36,87,33,44,30,6,27,235,23,219,20,216,17,231,14,10,12,64,9, +130,6,198,3,0,1,43,254,77,251,115,248,177,245,29,243,203,240,205,238,49,237,0,236,61,235,221,234,208,234,254,234, +79,235,176,235,20,236,113,236,190,236,242,236,8,237,0,237,226,236,187,236,152,236,131,236,130,236,152,236,201,236,22,237, +128,237,0,238,139,238,16,239,129,239,213,239,8,240,25,240,5,240,200,239,95,239,203,238,21,238,75,237,119,236,158,235, +187,234,201,233,198,232,185,231,177,230,182,229,203,228,235,227,12,227,45,226,90,225,162,224,20,224,179,223,116,223,74,223, +45,223,37,223,68,223,155,223,48,224,251,224,230,225,227,226,234,227,4,229,61,230,156,231,31,233,182,234,79,236,219,237, +84,239,179,240,245,241,14,243,244,243,151,244,238,244,243,244,169,244,23,244,78,243,98,242,110,241,138,240,195,239,30,239, +154,238,49,238,227,237,178,237,155,237,146,237,129,237,76,237,223,236,55,236,98,235,118,234,131,233,140,232,137,231,113,230, +72,229,29,228,11,227,36,226,111,225,227,224,112,224,14,224,187,223,125,223,89,223,79,223,88,223,111,223,152,223,224,223, +88,224,14,225,8,226,71,227,203,228,152,230,181,232,36,235,222,237,211,240,237,243,26,247,79,250,134,253,181,0,209,3, +199,6,140,9,26,12,120,14,176,16,197,18,176,20,97,22,206,23,248,24,242,25,215,26,188,27,166,28,141,29,95,30, +20,31,173,31,55,32,190,32,71,33,201,33,55,34,137,34,192,34,233,34,25,35,95,35,196,35,74,36,239,36,174,37, +133,38,110,39,104,40,111,41,126,42,146,43,164,44,175,45,171,46,153,47,128,48,113,49,125,50,182,51,29,53,172,54, +80,56,250,57,159,59,59,61,208,62,91,64,216,65,64,67,140,68,185,69,198,70,176,71,114,72,253,72,70,73,67,73, +243,72,89,72,120,71,79,70,213,68,255,66,197,64,39,62,46,59,236,55,116,52,215,48,36,45,97,41,145,37,180,33, +199,29,202,25,188,21,159,17,115,13,56,9,236,4,144,0,42,252,200,247,131,243,115,239,173,235,63,232,46,229,123,226, +34,224,31,222,101,220,224,218,113,217,247,215,89,214,141,212,154,210,149,208,149,206,175,204,245,202,119,201,75,200,136,199, +72,199,150,199,110,200,190,201,102,203,72,205,75,207,88,209,97,211,84,213,37,215,201,216,64,218,148,219,212,220,15,222, +81,223,156,224,234,225,51,227,108,228,138,229,129,230,71,231,210,231,26,232,25,232,209,231,72,231,138,230,172,229,193,228, +224,227,20,227,99,226,199,225,56,225,177,224,46,224,179,223,71,223,238,222,169,222,122,222,107,222,137,222,235,222,162,223, +189,224,61,226,25,228,68,230,175,232,71,235,241,237,143,240,247,242,6,245,161,246,192,247,108,248,192,248,217,248,215,248, +215,248,242,248,62,249,202,249,154,250,169,251,230,252,59,254,144,255,206,0,225,1,180,2,53,3,89,3,31,3,149,2, +216,1,10,1,77,0,185,255,94,255,67,255,103,255,198,255,88,0,10,1,196,1,107,2,225,2,16,3,235,2,112,2, +167,1,162,0,122,255,77,254,55,253,83,252,178,251,94,251,91,251,170,251,72,252,45,253,74,254,136,255,204,0,254,1, +13,3,243,3,180,4,88,5,230,5,101,6,222,6,96,7,0,8,212,8,237,9,80,11,243,12,196,14,174,16,158,18, +133,20,86,22,2,24,122,25,174,26,148,27,41,28,116,28,129,28,91,28,14,28,161,27,27,27,137,26,250,25,126,25, +37,25,243,24,230,24,239,24,255,24,6,25,252,24,225,24,188,24,149,24,115,24,88,24,68,24,55,24,54,24,73,24, +119,24,199,24,54,25,190,25,86,26,248,26,162,27,86,28,18,29,210,29,138,30,48,31,192,31,65,32,191,32,77,33, +248,33,194,34,168,35,160,36,158,37,150,38,124,39,63,40,205,40,19,41,8,41,173,40,17,40,75,39,118,38,168,37, +237,36,77,36,199,35,83,35,232,34,113,34,218,33,9,33,234,31,110,30,142,28,75,26,169,23,173,20,96,17,207,13, +14,10,53,6,95,2,159,254,1,251,134,247,42,244,234,240,197,237,191,234,219,231,27,229,124,226,250,223,154,221,103,219, +120,217,229,215,192,214,14,214,202,213,224,213,63,214,210,214,139,215,91,216,47,217,244,217,155,218,28,219,125,219,208,219, +46,220,179,220,115,221,124,222,211,223,116,225,88,227,111,229,167,231,234,233,33,236,52,238,15,240,164,241,235,242,233,243, +171,244,72,245,216,245,115,246,36,247,239,247,207,248,188,249,174,250,156,251,122,252,56,253,195,253,15,254,24,254,232,253, +146,253,45,253,196,252,94,252,246,251,141,251,38,251,201,250,125,250,65,250,13,250,214,249,149,249,79,249,13,249,219,248, +187,248,167,248,148,248,129,248,121,248,149,248,241,248,159,249,158,250,222,251,67,253,178,254,19,0,87,1,109,2,71,3, +216,3,29,4,28,4,231,3,155,3,81,3,31,3,19,3,49,3,121,3,226,3,101,4,243,4,130,5,4,6,111,6, +183,6,207,6,173,6,73,6,166,5,207,4,213,3,200,2,180,1,156,0,127,255,95,254,63,253,37,252,19,251,6,250, +245,248,215,247,175,246,135,245,118,244,142,243,218,242,93,242,20,242,255,241,36,242,136,242,45,243,10,244,14,245,40,246, +78,247,131,248,204,249,45,251,160,252,27,254,147,255,15,1,162,2,102,4,112,6,195,8,81,11,2,14,187,16,106,19, +254,21,106,24,153,26,117,28,242,29,15,31,223,31,128,32,14,33,154,33,40,34,176,34,39,35,137,35,215,35,24,36, +86,36,153,36,230,36,61,37,155,37,248,37,76,38,145,38,198,38,244,38,41,39,112,39,208,39,73,40,212,40,104,41, +0,42,155,42,60,43,227,43,145,44,70,45,0,46,190,46,122,47,46,48,209,48,96,49,223,49,85,50,206,50,79,51, +207,51,64,52,143,52,180,52,178,52,149,52,102,52,37,52,195,51,47,51,93,50,81,49,25,48,198,46,100,45,239,43, +94,42,170,40,211,38,231,36,248,34,18,33,54,31,87,29,97,27,61,25,218,22,47,20,62,17,15,14,178,10,58,7, +183,3,56,0,203,252,120,249,76,246,85,243,160,240,54,238,19,236,43,234,106,232,191,230,32,229,143,227,17,226,175,224, +108,223,77,222,86,221,146,220,14,220,210,219,223,219,42,220,161,220,52,221,216,221,137,222,68,223,3,224,187,224,94,225, +229,225,81,226,170,226,252,226,83,227,183,227,49,228,199,228,126,229,87,230,71,231,57,232,21,233,201,233,79,234,174,234, +241,234,32,235,59,235,58,235,25,235,222,234,153,234,97,234,70,234,70,234,81,234,75,234,27,234,181,233,27,233,90,232, +133,231,177,230,236,229,71,229,207,228,148,228,163,228,6,229,192,229,204,230,27,232,152,233,46,235,202,236,101,238,0,240, +160,241,76,243,2,245,190,246,120,248,46,250,232,251,184,253,174,255,207,1,17,4,88,6,133,8,117,10,17,12,75,13, +26,14,123,14,107,14,242,13,32,13,20,12,245,10,237,9,35,9,179,8,176,8,33,9,2,10,69,11,209,12,134,14, +65,16,226,17,78,19,116,20,71,21,194,21,228,21,179,21,62,21,158,20,240,19,80,19,208,18,121,18,73,18,56,18, +62,18,81,18,107,18,128,18,133,18,110,18,51,18,214,17,96,17,232,16,133,16,76,16,78,16,146,16,29,17,244,17, +31,19,171,20,166,22,22,25,244,27,41,31,148,34,12,38,107,41,153,44,133,47,43,50,136,52,154,54,95,56,209,57, +243,58,200,59,94,60,197,60,16,61,85,61,164,61,8,62,137,62,37,63,214,63,147,64,80,65,4,66,162,66,30,67, +102,67,101,67,4,67,51,66,239,64,66,63,69,61,25,59,226,56,188,54,184,52,214,50,17,49,93,47,177,45,9,44, +103,42,206,40,59,39,167,37,1,36,59,34,74,32,42,30,226,27,124,25,4,23,134,20,14,18,174,15,121,13,124,11, +191,9,59,8,221,6,142,5,59,4,219,2,109,1,241,255,97,254,173,252,197,250,156,248,53,246,160,243,247,240,83,238, +197,235,93,233,39,231,52,229,153,227,103,226,165,225,77,225,79,225,152,225,29,226,219,226,208,227,248,228,64,230,143,231, +201,232,218,233,189,234,118,235,18,236,152,236,10,237,97,237,150,237,159,237,117,237,20,237,127,236,188,235,219,234,234,233, +250,232,23,232,68,231,128,230,205,229,50,229,190,228,129,228,132,228,195,228,44,229,167,229,31,230,133,230,212,230,12,231, +46,231,57,231,49,231,36,231,38,231,77,231,172,231,71,232,20,233,254,233,242,234,228,235,205,236,166,237,98,238,239,238, +57,239,56,239,247,238,149,238,60,238,21,238,59,238,188,238,151,239,201,240,77,242,36,244,73,246,179,248,76,251,248,253, +149,0,7,3,53,5,22,7,170,8,252,9,30,11,37,12,41,13,64,14,125,15,239,16,157,18,133,20,154,22,191,24, +208,26,169,28,49,30,100,31,78,32,10,33,174,33,73,34,222,34,107,35,245,35,139,36,70,37,61,38,118,39,226,40, +98,42,208,43,17,45,30,46,253,46,186,47,93,48,226,48,59,49,95,49,76,49,13,49,182,48,92,48,16,48,214,47, +174,47,149,47,138,47,140,47,156,47,182,47,206,47,212,47,181,47,100,47,222,46,47,46,107,45,169,44,253,43,112,43, +253,42,152,42,53,42,202,41,89,41,236,40,142,40,72,40,30,40,11,40,10,40,21,40,38,40,56,40,65,40,57,40, +18,40,196,39,76,39,172,38,237,37,27,37,64,36,103,35,152,34,221,33,61,33,191,32,102,32,44,32,8,32,237,31, +205,31,156,31,83,31,238,30,106,30,192,29,232,28,214,27,123,26,207,24,212,22,148,20,38,18,163,15,34,13,175,10, +76,8,242,5,152,3,58,1,217,254,123,252,41,250,233,247,191,245,172,243,177,241,209,239,20,238,135,236,51,235,37,234, +98,233,237,232,191,232,208,232,15,233,108,233,214,233,61,234,146,234,205,234,231,234,225,234,194,234,146,234,90,234,30,234, +214,233,118,233,239,232,56,232,85,231,84,230,75,229,73,228,84,227,100,226,108,225,99,224,76,223,57,222,67,221,133,220, +16,220,232,219,11,220,111,220,15,221,230,221,236,222,23,224,88,225,157,226,218,227,10,229,47,230,75,231,93,232,91,233, +55,234,228,234,94,235,174,235,227,235,17,236,64,236,114,236,163,236,212,236,17,237,117,237,30,238,33,239,132,240,63,242, +63,244,117,246,222,248,129,251,100,254,131,1,202,4,21,8,65,11,49,14,214,16,45,19,56,21,245,22,102,24,143,25, +127,26,79,27,27,28,246,28,226,29,210,30,176,31,108,32,3,33,123,33,221,33,45,34,101,34,119,34,90,34,12,34, +149,33,6,33,111,32,226,31,111,31,46,31,59,31,178,31,164,32,18,34,232,35,1,38,55,40,108,42,136,44,127,46, +74,48,224,49,60,51,92,52,71,53,14,54,196,54,122,55,59,56,8,57,218,57,171,58,113,59,39,60,204,60,94,61, +220,61,65,62,133,62,157,62,126,62,32,62,138,61,207,60,10,60,88,59,202,58,96,58,12,58,180,57,63,57,154,56, +184,55,145,54,26,53,71,51,19,49,128,46,156,43,126,40,60,37,229,33,132,30,33,27,205,23,163,20,194,17,70,15, +59,13,148,11,54,10,2,9,224,7,198,6,186,5,200,4,249,3,78,3,194,2,79,2,242,1,176,1,144,1,155,1, +217,1,76,2,244,2,204,3,205,4,237,5,35,7,97,8,151,9,177,10,157,11,72,12,169,12,191,12,149,12,65,12, +219,11,127,11,64,11,42,11,68,11,143,11,6,12,164,12,96,13,46,14,2,15,208,15,147,16,69,17,230,17,117,18, +238,18,78,19,142,19,166,19,140,19,55,19,161,18,205,17,196,16,150,15,81,14,252,12,145,11,4,10,76,8,104,6, +102,4,93,2,96,0,116,254,145,252,164,250,160,248,131,246,90,244,59,242,55,240,86,238,145,236,222,234,54,233,155,231, +21,230,169,228,86,227,15,226,195,224,96,223,219,221,47,220,90,218,94,216,64,214,13,212,214,209,184,207,209,205,62,204, +25,203,119,202,107,202,1,203,61,204,20,206,106,208,20,211,224,213,165,216,69,219,178,221,236,223,248,225,221,227,162,229, +81,231,247,232,164,234,108,236,94,238,129,240,210,242,66,245,185,247,27,250,77,252,60,254,225,255,63,1,99,2,91,3, +52,4,249,4,183,5,129,6,115,7,169,8,54,10,28,12,69,14,143,16,211,18,243,20,218,22,129,24,224,25,239,26, +165,27,252,27,249,27,174,27,51,27,163,26,16,26,133,25,8,25,153,24,59,24,236,23,169,23,103,23,29,23,195,22, +96,22,5,22,205,21,219,21,74,22,52,23,165,24,165,26,45,29,46,32,138,35,29,39,185,42,52,46,102,49,50,52, +134,54,92,56,183,57,166,58,63,59,158,59,224,59,32,60,118,60,241,60,148,61,90,62,50,63,6,64,190,64,71,65, +146,65,151,65,78,65,177,64,189,63,124,62,3,61,122,59,16,58,238,56,44,56,201,55,181,55,217,55,38,56,150,56, +38,57,199,57,94,58,192,58,194,58,73,58,80,57,232,55,46,54,62,52,48,50,21,48,254,45,1,44,56,42,181,40, +128,39,142,38,206,37,40,37,139,36,237,35,73,35,152,34,212,33,243,32,241,31,207,30,154,29,94,28,40,27,255,25, +228,24,212,23,205,22,207,21,222,20,255,19,50,19,113,18,178,17,226,16,240,15,206,14,114,13,222,11,20,10,28,8, +251,5,181,3,77,1,199,254,39,252,109,249,148,246,149,243,106,240,21,237,165,233,57,230,242,226,242,223,79,221,19,219, +65,217,220,215,234,214,118,214,135,214,26,215,35,216,139,217,54,219,9,221,233,222,195,224,131,226,30,228,144,229,219,230, +10,232,34,233,40,234,27,235,249,235,195,236,125,237,47,238,220,238,126,239,14,240,128,240,210,240,11,241,55,241,94,241, +130,241,155,241,161,241,149,241,129,241,120,241,141,241,200,241,41,242,167,242,56,243,213,243,123,244,36,245,199,245,86,246, +198,246,14,247,43,247,25,247,210,246,77,246,132,245,119,244,55,243,221,241,134,240,68,239,32,238,28,237,63,236,159,235, +90,235,144,235,85,236,165,237,108,239,139,241,229,243,105,246,15,249,207,251,154,254,93,1,4,4,127,6,207,8,251,10, +14,13,19,15,10,17,238,18,180,20,82,22,191,23,242,24,229,25,147,26,254,26,47,27,52,27,29,27,250,26,216,26, +193,26,188,26,208,26,4,27,92,27,214,27,101,28,244,28,103,29,163,29,145,29,34,29,82,28,41,27,180,25,7,24, +58,22,101,20,161,18,6,17,164,15,133,14,169,13,9,13,154,12,81,12,40,12,28,12,47,12,96,12,178,12,39,13, +197,13,151,14,171,15,16,17,207,18,237,20,100,23,41,26,44,29,91,32,159,35,221,38,250,41,215,44,90,47,111,49, +9,51,40,52,208,52,18,53,255,52,173,52,48,52,153,51,243,50,69,50,150,49,236,48,79,48,198,47,86,47,255,46, +189,46,141,46,109,46,95,46,101,46,130,46,177,46,231,46,22,47,48,47,42,47,253,46,167,46,39,46,127,45,177,44, +190,43,168,42,112,41,23,40,165,38,42,37,188,35,114,34,96,33,138,32,231,31,101,31,240,30,126,30,11,30,158,29, +56,29,215,28,113,28,252,27,118,27,232,26,95,26,236,25,153,25,102,25,76,25,66,25,63,25,61,25,51,25,22,25, +216,24,104,24,183,23,189,22,115,21,213,19,224,17,145,15,228,12,219,9,121,6,198,2,207,254,165,250,87,246,247,241, +147,237,54,233,236,228,193,224,195,220,2,217,139,213,103,210,149,207,13,205,200,202,193,200,248,198,112,197,40,196,26,195, +60,194,139,193,13,193,211,192,243,192,127,193,121,194,218,195,146,197,153,199,237,201,144,204,126,207,169,210,245,213,70,217, +139,220,191,223,233,226,16,230,49,233,63,236,44,239,247,241,171,244,92,247,23,250,217,252,145,255,33,2,122,4,153,6, +143,8,110,10,66,12,7,14,172,15,34,17,98,18,110,19,73,20,246,20,106,21,149,21,104,21,219,20,240,19,174,18, +30,17,71,15,53,13,246,10,164,8,95,6,71,4,117,2,252,0,227,255,50,255,236,254,21,255,171,255,167,0,245,1, +124,3,31,5,197,6,90,8,214,9,50,11,112,12,148,13,166,14,176,15,196,16,242,17,73,19,206,20,124,22,65,24, +0,26,156,27,250,28,6,30,181,30,2,31,238,30,127,30,198,29,220,28,223,27,240,26,38,26,141,25,37,25,229,24, +195,24,183,24,181,24,176,24,146,24,62,24,154,23,145,22,24,21,46,19,219,16,40,14,37,11,235,7,156,4,95,1, +87,254,158,251,58,249,39,247,93,245,218,243,161,242,180,241,17,241,171,240,108,240,68,240,45,240,50,240,104,240,229,240, +181,241,218,242,81,244,19,246,32,248,121,250,26,253,249,255,254,2,13,6,5,9,202,11,66,14,91,16,7,18,59,19, +247,19,66,20,41,20,192,19,30,19,90,18,136,17,187,16,2,16,102,15,240,14,162,14,120,14,109,14,119,14,139,14, +158,14,169,14,175,14,185,14,214,14,21,15,128,15,27,16,228,16,217,17,244,18,49,20,129,21,207,22,0,24,247,24, +163,25,252,25,8,26,207,25,90,25,177,24,223,23,252,22,44,22,148,21,84,21,119,21,243,21,181,22,168,23,194,24, +253,25,85,27,187,28,24,30,83,31,96,32,63,33,0,34,180,34,99,35,7,36,149,36,3,37,80,37,131,37,167,37, +187,37,184,37,144,37,54,37,164,36,211,35,190,34,89,33,153,31,119,29,246,26,38,24,23,21,214,17,103,14,200,10, +249,6,6,3,4,255,16,251,64,247,161,243,60,240,24,237,69,234,219,231,243,229,158,228,222,227,165,227,219,227,103,228, +48,229,29,230,25,231,11,232,224,232,140,233,10,234,96,234,151,234,192,234,236,234,50,235,172,235,115,236,155,237,42,239, +27,241,92,243,217,245,126,248,57,251,248,253,164,0,33,3,81,5,29,7,124,8,113,9,17,10,116,10,180,10,230,10, +26,11,94,11,186,11,51,12,202,12,119,13,48,14,227,14,127,15,239,15,36,16,14,16,164,15,225,14,196,13,81,12, +147,10,152,8,115,6,58,4,253,1,205,255,179,253,186,251,234,249,82,248,252,246,240,245,45,245,167,244,79,244,22,244, +241,243,221,243,213,243,212,243,207,243,182,243,127,243,35,243,164,242,6,242,74,241,112,240,120,239,106,238,87,237,89,236, +136,235,248,234,176,234,172,234,229,234,81,235,232,235,156,236,92,237,15,238,159,238,255,238,40,239,32,239,238,238,153,238, +38,238,152,237,250,236,89,236,195,235,62,235,201,234,85,234,213,233,57,233,123,232,151,231,137,230,79,229,228,227,73,226, +132,224,166,222,195,220,247,218,94,217,21,216,53,215,213,214,255,214,176,215,219,216,111,218,89,220,142,222,7,225,185,227, +148,230,130,233,108,236,74,239,31,242,249,244,236,247,0,251,54,254,132,1,222,4,61,8,155,11,243,14,56,18,89,21, +66,24,229,26,57,29,63,31,246,32,95,34,122,35,74,36,219,36,61,37,132,37,189,37,242,37,39,38,100,38,182,38, +41,39,199,39,137,40,97,41,56,42,253,42,166,43,55,44,183,44,41,45,141,45,225,45,43,46,117,46,211,46,90,47, +24,48,18,49,67,50,163,51,41,53,201,54,122,56,48,58,223,59,125,61,4,63,110,64,179,65,200,66,159,67,45,68, +107,68,89,68,251,67,85,67,110,66,74,65,241,63,112,62,214,60,49,59,138,57,232,55,78,54,193,52,68,51,217,49, +121,48,18,47,142,45,217,43,229,41,176,39,61,37,146,34,180,31,168,28,120,25,49,22,229,18,164,15,119,12,98,9, +107,6,154,3,253,0,158,254,123,252,126,250,141,248,142,246,123,244,104,242,114,240,183,238,70,237,26,236,42,235,112,234, +243,233,196,233,237,233,107,234,41,235,11,236,246,236,221,237,188,238,147,239,91,240,10,241,151,241,3,242,88,242,166,242, +248,242,78,243,156,243,215,243,250,243,8,244,5,244,239,243,184,243,77,243,162,242,184,241,160,240,114,239,67,238,25,237, +238,235,183,234,110,233,20,232,174,230,60,229,182,227,11,226,46,224,21,222,199,219,81,217,196,214,49,212,167,209,54,207, +240,204,233,202,51,201,217,199,223,198,64,198,245,197,245,197,58,198,187,198,110,199,73,200,67,201,89,202,142,203,235,204, +121,206,64,208,66,210,126,212,241,214,147,217,89,220,47,223,246,225,140,228,208,230,169,232,14,234,8,235,169,235,9,236, +63,236,97,236,130,236,188,236,44,237,238,237,26,239,181,240,181,242,252,244,108,247,229,249,83,252,168,254,215,0,209,2, +128,4,212,5,197,6,96,7,193,7,11,8,98,8,218,8,125,9,77,10,70,11,102,12,166,13,252,14,88,16,167,17, +213,18,220,19,188,20,126,21,43,22,198,22,80,23,202,23,60,24,181,24,76,25,24,26,44,27,143,28,62,30,48,32, +87,34,168,36,23,39,157,41,50,44,205,46,100,49,236,51,90,54,167,56,209,58,220,60,208,62,181,64,142,66,89,68, +17,70,178,71,57,73,164,74,243,75,30,77,29,78,225,78,93,79,137,79,96,79,223,78,6,78,215,76,91,75,158,73, +177,71,167,69,138,67,92,65,22,63,178,60,47,58,146,55,230,52,53,50,130,47,201,44,7,42,62,39,122,36,207,33, +79,31,7,29,250,26,32,25,115,23,238,21,140,20,75,19,31,18,248,16,187,15,82,14,169,12,186,10,140,8,44,6, +173,3,34,1,154,254,31,252,180,249,94,247,33,245,6,243,23,241,98,239,243,237,204,236,237,235,76,235,225,234,161,234, +131,234,125,234,132,234,144,234,155,234,164,234,175,234,195,234,228,234,13,235,52,235,73,235,60,235,2,235,148,234,245,233, +38,233,47,232,22,231,228,229,160,228,83,227,6,226,194,224,145,223,125,222,143,221,207,220,67,220,236,219,205,219,233,219, +66,220,211,220,145,221,105,222,62,223,247,223,131,224,222,224,15,225,34,225,37,225,31,225,21,225,7,225,248,224,239,224, +245,224,15,225,69,225,151,225,5,226,137,226,35,227,208,227,146,228,110,229,110,230,151,231,237,232,106,234,0,236,159,237, +61,239,210,240,94,242,220,243,65,245,122,246,111,247,14,248,83,248,74,248,6,248,156,247,25,247,131,246,225,245,60,245, +163,244,41,244,220,243,193,243,212,243,18,244,121,244,16,245,222,245,234,246,47,248,162,249,50,251,209,252,115,254,19,0, +173,1,61,3,196,4,68,6,196,7,72,9,211,10,97,12,230,13,92,15,190,16,19,18,101,19,187,20,17,22,92,23, +143,24,161,25,153,26,134,27,125,28,140,29,180,30,238,31,47,33,112,34,176,35,243,36,61,38,142,39,218,40,17,42, +31,43,245,43,136,44,211,44,219,44,165,44,56,44,151,43,199,42,202,41,168,40,108,39,42,38,247,36,228,35,248,34, +52,34,146,33,15,33,174,32,123,32,131,32,211,32,105,33,60,34,57,35,73,36,87,37,84,38,50,39,232,39,107,40, +178,40,179,40,104,40,213,39,4,39,9,38,255,36,1,36,36,35,115,34,236,33,132,33,45,33,219,32,130,32,26,32, +150,31,232,30,253,29,197,28,56,27,90,25,57,23,231,20,121,18,2,16,148,13,69,11,38,9,72,7,179,5,98,4, +73,3,82,2,105,1,128,0,138,255,129,254,94,253,24,252,166,250,0,249,36,247,24,245,235,242,176,240,129,238,114,236, +143,234,221,232,85,231,238,229,158,228,97,227,49,226,7,225,210,223,123,222,235,220,18,219,238,216,142,214,8,212,118,209, +232,206,109,204,24,202,5,200,91,198,64,197,209,196,15,197,232,197,57,199,223,200,189,202,194,204,218,206,235,208,213,210, +118,212,184,213,151,214,35,215,120,215,173,215,214,215,252,215,41,216,110,216,225,216,155,217,173,218,26,220,212,221,194,223, +204,225,221,227,232,229,228,231,205,233,158,235,82,237,232,238,99,240,200,241,31,243,112,244,193,245,24,247,120,248,227,249, +89,251,216,252,94,254,230,255,106,1,227,2,70,4,133,5,145,6,92,7,219,7,7,8,224,7,109,7,189,6,228,5, +252,4,33,4,106,3,236,2,185,2,222,2,106,3,106,4,236,5,243,7,117,10,90,13,125,16,180,19,215,22,201,25, +119,28,219,30,245,32,203,34,101,36,206,37,17,39,59,40,88,41,112,42,132,43,143,44,133,45,91,46,7,47,133,47, +215,47,2,48,8,48,232,47,159,47,44,47,150,46,236,45,66,45,167,44,34,44,169,43,43,43,150,42,220,41,249,40, +236,39,178,38,66,37,142,35,142,33,65,31,179,28,250,25,42,23,86,20,139,17,213,14,68,12,231,9,203,7,242,5, +85,4,230,2,154,1,109,0,101,255,136,254,216,253,75,253,211,252,102,252,255,251,167,251,108,251,87,251,105,251,157,251, +234,251,77,252,197,252,82,253,244,253,163,254,86,255,9,0,183,0,100,1,14,2,175,2,60,3,172,3,251,3,45,4, +76,4,99,4,118,4,131,4,138,4,142,4,157,4,199,4,26,5,157,5,70,6,6,7,201,7,127,8,30,9,163,9, +13,10,95,10,154,10,194,10,216,10,221,10,207,10,172,10,117,10,45,10,217,9,125,9,27,9,178,8,63,8,196,7, +70,7,202,6,85,6,227,5,111,5,242,4,106,4,216,3,66,3,172,2,20,2,115,1,194,0,255,255,43,255,73,254, +86,253,71,252,15,251,167,249,20,248,105,246,196,244,61,243,225,241,173,240,143,239,113,238,53,237,193,235,248,233,189,231, +249,228,157,225,172,221,56,217,100,212,89,207,66,202,75,197,161,192,108,188,212,184,248,181,237,179,187,178,89,178,182,178, +178,179,41,181,242,182,229,184,227,186,216,188,194,190,170,192,159,194,176,196,235,198,93,201,18,204,22,207,111,210,27,214, +9,218,30,222,56,226,57,230,12,234,165,237,254,240,22,244,234,246,123,249,207,251,243,253,248,255,242,1,238,3,243,5, +3,8,25,10,46,12,54,14,32,16,209,17,46,19,28,20,140,20,126,20,0,20,44,19,29,18,228,16,138,15,14,14, +105,12,151,10,153,8,121,6,63,4,246,1,163,255,71,253,231,250,144,248,87,246,94,244,199,242,175,241,46,241,81,241, +34,242,170,243,238,245,239,248,157,252,220,0,130,5,93,10,62,15,251,19,108,24,116,28,246,31,231,34,78,37,69,39, +252,40,165,42,102,44,85,46,115,48,180,50,10,53,104,55,194,57,7,60,28,62,230,63,76,65,69,66,216,66,27,67, +37,67,7,67,199,66,105,66,238,65,95,65,198,64,36,64,114,63,148,62,102,61,195,59,142,57,187,54,76,51,77,47, +213,42,254,37,227,32,164,27,98,22,61,17,82,12,182,7,123,3,169,255,68,252,76,249,192,246,158,244,225,242,127,241, +110,240,156,239,1,239,153,238,114,238,163,238,70,239,104,240,6,242,8,244,75,246,168,248,2,251,66,253,85,255,33,1, +138,2,114,3,195,3,123,3,169,2,100,1,194,255,213,253,169,251,77,249,218,246,109,244,35,242,15,240,49,238,125,236, +228,234,97,233,248,231,181,230,158,229,175,228,217,227,12,227,60,226,107,225,162,224,244,223,110,223,29,223,10,223,58,223, +176,223,104,224,83,225,91,226,100,227,92,228,55,229,248,229,166,230,77,231,244,231,164,232,98,233,52,234,27,235,22,236, +27,237,35,238,40,239,44,240,50,241,63,242,74,243,71,244,37,245,221,245,113,246,235,246,83,247,169,247,223,247,223,247, +152,247,0,247,25,246,229,244,97,243,133,241,73,239,173,236,190,233,147,230,70,227,235,223,141,220,54,217,243,213,212,210, +238,207,74,205,229,202,181,200,176,198,217,196,64,195,253,193,33,193,178,192,169,192,0,193,185,193,224,194,127,196,150,198, +13,201,192,203,133,206,66,209,234,211,128,214,3,217,106,219,164,221,168,223,123,225,54,227,0,229,252,230,68,233,227,235, +219,238,47,242,219,245,214,249,1,254,45,2,31,6,163,9,153,12,247,14,195,16,8,18,209,18,36,19,20,19,187,18, +64,18,200,17,108,17,48,17,11,17,235,16,193,16,129,16,29,16,130,15,152,14,70,13,129,11,82,9,216,6,60,4, +172,1,80,255,74,253,186,251,188,250,104,250,208,250,243,251,195,253,33,0,232,2,238,5,11,9,27,12,2,15,176,17, +33,20,91,22,111,24,106,26,94,28,91,30,118,32,202,34,112,37,120,40,217,43,119,47,36,51,177,54,249,57,234,60, +119,63,151,65,56,67,69,68,179,68,138,68,235,67,6,67,16,66,47,65,117,64,229,63,123,63,49,63,254,62,210,62, +146,62,23,62,57,61,216,59,230,57,101,55,100,52,248,48,55,45,62,41,49,37,59,33,140,29,73,26,138,23,83,21, +154,19,78,18,91,17,171,16,37,16,171,15,26,15,85,14,73,13,248,11,112,10,203,8,36,7,147,5,41,4,246,2, +11,2,116,1,57,1,83,1,176,1,49,2,183,2,39,3,110,3,132,3,101,3,17,3,141,2,223,1,17,1,47,0, +63,255,64,254,44,253,252,251,173,250,67,249,194,247,47,246,131,244,172,242,152,240,55,238,134,235,140,232,88,229,247,225, +111,222,196,218,255,214,47,211,113,207,225,203,151,200,157,197,238,194,130,192,82,190,96,188,182,186,99,185,113,184,229,183, +189,183,243,183,127,184,84,185,105,186,176,187,35,189,191,190,135,192,127,194,165,196,241,198,85,201,191,203,31,206,105,208, +149,210,154,212,110,214,4,216,86,217,99,218,48,219,196,219,33,220,69,220,47,220,226,219,107,219,225,218,89,218,229,217, +137,217,67,217,14,217,230,216,204,216,192,216,188,216,184,216,169,216,136,216,90,216,42,216,7,216,248,215,2,216,34,216, +88,216,164,216,11,217,140,217,35,218,196,218,102,219,6,220,168,220,89,221,37,222,19,223,37,224,86,225,166,226,21,228, +169,229,104,231,84,233,101,235,141,237,184,239,208,241,190,243,111,245,213,246,236,247,184,248,69,249,166,249,238,249,48,250, +125,250,232,250,126,251,70,252,65,253,101,254,161,255,229,0,35,2,79,3,95,4,74,5,6,6,142,6,229,6,25,7, +63,7,103,7,155,7,219,7,32,8,104,8,182,8,17,9,127,9,255,9,134,10,9,11,130,11,248,11,128,12,46,13, +22,14,65,15,180,16,113,18,125,20,221,22,144,25,136,28,178,31,243,34,53,38,107,41,140,44,146,47,116,50,41,53, +173,55,0,58,42,60,53,62,36,64,245,65,162,67,35,69,120,70,162,71,160,72,110,73,3,74,87,74,107,74,73,74, +3,74,169,73,71,73,223,72,114,72,3,72,152,71,57,71,234,70,163,70,86,70,240,69,95,69,149,68,136,67,42,66, +112,64,84,62,217,59,12,57,1,54,206,50,130,47,35,44,186,40,77,37,233,33,153,30,97,27,57,24,18,21,226,17, +163,14,91,11,21,8,211,4,145,1,67,254,224,250,109,247,246,243,144,240,69,237,25,234,5,231,255,227,6,225,24,222, +55,219,93,216,127,213,146,210,149,207,155,204,188,201,21,199,182,196,161,194,207,192,62,191,244,189,255,188,111,188,70,188, +118,188,232,188,131,189,56,190,2,191,223,191,200,192,174,193,121,194,21,195,119,195,157,195,148,195,105,195,40,195,221,194, +145,194,83,194,56,194,84,194,185,194,111,195,119,196,199,197,82,199,11,201,230,202,213,204,203,206,181,208,124,210,11,212, +80,213,67,214,235,214,89,215,167,215,237,215,66,216,181,216,78,217,18,218,250,218,254,219,9,221,5,222,219,222,124,223, +224,223,9,224,250,223,181,223,61,223,153,222,217,221,22,221,116,220,22,220,24,220,142,220,132,221,1,223,7,225,147,227, +147,230,230,233,95,237,208,240,16,244,3,247,153,249,203,251,151,253,3,255,28,0,253,0,196,1,143,2,112,3,105,4, +118,5,141,6,167,7,192,8,210,9,206,10,157,11,41,12,102,12,87,12,9,12,144,11,251,10,86,10,176,9,35,9, +207,8,214,8,75,9,45,10,99,11,204,12,70,14,187,15,25,17,76,18,60,19,202,19,226,19,131,19,194,18,194,17, +168,16,145,15,143,14,180,13,24,13,214,12,8,13,185,13,217,14,70,16,213,17,96,19,207,20,23,22,48,23,19,24, +185,24,35,25,92,25,127,25,171,25,253,25,137,26,86,27,99,28,169,29,29,31,174,32,72,34,212,35,60,37,115,38, +115,39,56,40,192,40,8,41,12,41,207,40,93,40,200,39,38,39,136,38,250,37,132,37,43,37,242,36,216,36,209,36, +200,36,165,36,83,36,203,35,20,35,57,34,70,33,60,32,23,31,212,29,115,28,248,26,100,25,173,23,190,21,125,19, +220,16,219,13,146,10,25,7,133,3,218,255,17,252,32,248,6,244,205,239,132,235,56,231,230,226,136,222,20,218,138,213, +240,208,85,204,192,199,54,195,183,190,73,186,3,182,7,178,122,174,124,171,29,169,91,167,44,166,131,165,89,165,169,165, +109,166,156,167,36,169,245,170,255,172,59,175,166,177,65,180,11,183,252,185,13,189,49,192,92,195,134,198,166,201,182,204, +179,207,150,210,89,213,247,215,105,218,177,220,212,222,226,224,239,226,14,229,73,231,164,233,24,236,154,238,28,241,147,243, +237,245,26,248,2,250,138,251,157,252,46,253,65,253,228,252,50,252,74,251,73,250,71,249,86,248,136,247,230,246,122,246, +70,246,68,246,106,246,167,246,236,246,43,247,92,247,122,247,135,247,132,247,121,247,114,247,133,247,207,247,111,248,130,249, +27,251,58,253,212,255,208,2,19,6,130,9,1,13,115,16,186,19,186,22,92,25,149,27,100,29,215,30,253,31,226,32, +144,33,13,34,95,34,140,34,158,34,153,34,124,34,66,34,231,33,106,33,210,32,42,32,120,31,190,30,246,29,22,29, +28,28,13,27,242,25,213,24,181,23,134,22,50,21,167,19,219,17,210,15,155,13,72,11,235,8,147,6,78,4,48,2, +77,0,189,254,147,253,215,252,136,252,156,252,6,253,185,253,171,254,209,255,33,1,147,2,29,4,187,5,102,7,25,9, +203,10,114,12,2,14,114,15,186,16,215,17,193,18,109,19,209,19,223,19,146,19,234,18,241,17,180,16,59,15,139,13, +166,11,137,9,56,7,188,4,32,2,111,255,174,252,219,249,240,246,230,243,187,240,111,237,10,234,149,230,27,227,170,223, +80,220,29,217,34,214,112,211,21,209,27,207,138,205,100,204,168,203,81,203,82,203,155,203,23,204,175,204,77,205,216,205, +63,206,112,206,103,206,40,206,197,205,92,205,13,205,251,204,61,205,228,205,244,206,106,208,66,210,111,212,230,214,149,217, +100,220,58,223,251,225,148,228,245,230,23,233,252,234,165,236,22,238,78,239,81,240,31,241,189,241,51,242,135,242,188,242, +209,242,191,242,125,242,9,242,100,241,154,240,189,239,223,238,18,238,98,237,218,236,126,236,78,236,73,236,102,236,154,236, +216,236,24,237,88,237,153,237,227,237,60,238,171,238,52,239,226,239,192,240,224,241,77,243,11,245,22,247,93,249,206,251, +88,254,238,0,131,3,10,6,110,8,150,10,110,12,230,13,252,14,182,15,30,16,66,16,42,16,222,15,97,15,186,14, +232,13,238,12,201,11,120,10,0,9,104,7,190,5,15,4,107,2,219,0,107,255,35,254,11,253,40,252,118,251,231,250, +105,250,233,249,88,249,177,248,247,247,48,247,99,246,152,245,216,244,48,244,178,243,111,243,118,243,206,243,122,244,117,245, +179,246,40,248,195,249,111,251,24,253,177,254,52,0,163,1,12,3,127,4,9,6,186,7,159,9,195,11,51,14,240,16, +243,19,35,23,94,26,127,29,102,32,249,34,44,37,243,38,73,40,40,41,144,41,136,41,30,41,100,40,107,39,61,38, +222,36,80,35,150,33,178,31,167,29,114,27,11,25,100,22,118,19,63,16,202,12,47,9,138,5,246,1,140,254,92,251, +111,248,202,245,106,243,68,241,70,239,89,237,103,235,93,233,51,231,232,228,131,226,16,224,152,221,35,219,185,216,103,214, +60,212,73,210,159,208,71,207,64,206,130,205,253,204,166,204,114,204,95,204,104,204,138,204,184,204,234,204,25,205,74,205, +137,205,227,205,93,206,235,206,115,207,213,207,246,207,202,207,82,207,152,206,160,205,111,204,4,203,100,201,162,199,219,197, +49,196,190,194,142,193,161,192,238,191,109,191,28,191,0,191,23,191,92,191,192,191,52,192,172,192,41,193,181,193,95,194, +56,195,82,196,185,197,123,199,168,201,77,204,110,207,7,211,7,215,84,219,210,223,102,228,249,232,118,237,204,241,232,245, +186,249,55,253,92,0,44,3,179,5,255,7,34,10,42,12,36,14,24,16,10,18,250,19,233,21,214,23,192,25,166,27, +131,29,80,31,5,33,153,34,12,36,97,37,159,38,206,39,239,40,253,41,239,42,188,43,93,44,208,44,23,45,48,45, +21,45,194,44,52,44,114,43,134,42,130,41,122,40,125,39,152,38,216,37,72,37,247,36,237,36,46,37,179,37,108,38, +69,39,43,40,13,41,224,41,154,42,50,43,160,43,226,43,250,43,245,43,226,43,206,43,192,43,184,43,171,43,142,43, +80,43,228,42,57,42,60,41,212,39,235,37,109,35,79,32,150,28,81,24,156,19,158,14,127,9,107,4,138,255,1,251, +237,246,96,243,96,240,231,237,231,235,72,234,241,232,202,231,186,230,173,229,147,228,94,227,5,226,132,224,222,222,29,221, +80,219,139,217,222,215,90,214,6,213,230,211,249,210,59,210,164,209,48,209,218,208,160,208,135,208,150,208,216,208,87,209, +27,210,36,211,110,212,242,213,164,215,122,217,100,219,83,221,50,223,238,224,114,226,175,227,153,228,38,229,82,229,31,229, +146,228,189,227,182,226,157,225,142,224,160,223,222,222,72,222,210,221,106,221,250,220,108,220,173,219,175,218,106,217,222,215, +18,214,23,212,2,210,239,207,251,205,68,204,230,202,246,201,127,201,132,201,253,201,221,202,22,204,148,205,64,207,2,209, +189,210,90,212,202,213,12,215,43,216,58,217,79,218,122,219,197,220,58,222,225,223,193,225,221,227,50,230,175,232,61,235, +193,237,37,240,94,242,105,244,75,246,10,248,173,249,61,251,197,252,84,254,245,255,174,1,125,3,85,5,36,7,219,8, +108,10,206,11,251,12,237,13,160,14,17,15,64,15,50,15,238,14,121,14,216,13,16,13,39,12,36,11,17,10,243,8, +205,7,155,6,87,5,251,3,138,2,11,1,136,255,10,254,152,252,54,251,234,249,187,248,187,247,248,246,132,246,102,246, +162,246,55,247,32,248,94,249,239,250,208,252,250,254,93,1,229,3,125,6,22,9,165,11,42,14,167,16,33,19,154,21, +16,24,128,26,226,28,52,31,114,33,156,35,177,37,180,39,163,41,125,43,66,45,238,46,129,48,249,49,86,51,154,52, +198,53,223,54,234,55,239,56,248,57,13,59,55,60,120,61,203,62,33,64,100,65,119,66,65,67,168,67,154,67,12,67, +246,65,85,64,42,62,125,59,89,56,209,52,253,48,250,44,229,40,222,36,253,32,87,29,245,25,215,22,243,19,60,17, +161,14,15,12,121,9,206,6,251,3,239,0,154,253,239,249,238,245,153,241,248,236,21,232,246,226,167,221,58,216,200,210, +112,205,81,200,129,195,12,191,249,186,73,183,6,180,59,177,247,174,65,173,19,172,95,171,15,171,18,171,92,171,233,171, +184,172,197,173,8,175,117,176,4,178,174,179,114,181,81,183,74,185,93,187,134,189,196,191,17,194,103,196,183,198,240,200, +249,202,191,204,50,206,73,207,1,208,92,208,92,208,8,208,110,207,163,206,197,205,249,204,98,204,29,204,66,204,225,204, +2,206,162,207,180,209,34,212,202,214,136,217,55,220,177,222,214,224,136,226,170,227,43,228,3,228,57,227,222,225,15,224, +232,221,134,219,8,217,147,214,81,212,114,210,32,209,125,208,152,208,113,209,3,211,69,213,48,216,189,219,218,223,105,228, +65,233,52,238,30,243,228,247,122,252,218,0,0,5,229,8,129,12,212,15,233,18,212,21,172,24,134,27,105,30,86,33, +67,36,34,39,226,41,114,44,195,46,200,48,120,50,212,51,231,52,189,53,101,54,235,54,92,55,193,55,40,56,159,56, +45,57,212,57,140,58,68,59,232,59,103,60,175,60,176,60,91,60,167,59,146,58,39,57,128,55,189,53,252,51,84,50, +206,48,107,47,42,46,8,45,4,44,18,43,33,42,25,41,226,39,113,38,199,36,239,34,245,32,223,30,175,28,100,26, +8,24,174,21,114,19,107,17,164,15,28,14,197,12,144,11,107,10,67,9,0,8,134,6,184,4,135,2,247,255,30,253, +29,250,19,247,22,244,51,241,121,238,251,235,213,233,32,232,233,230,41,230,205,229,189,229,235,229,83,230,245,230,201,231, +188,232,179,233,148,234,86,235,2,236,171,236,99,237,52,238,28,239,23,240,37,241,77,242,149,243,252,244,111,246,207,247, +249,248,213,249,87,250,129,250,89,250,230,249,45,249,50,248,252,246,151,245,14,244,104,242,169,240,211,238,231,236,238,234, +244,232,5,231,45,229,119,227,243,225,176,224,195,223,53,223,7,223,44,223,142,223,24,224,186,224,105,225,21,226,168,226, +3,227,6,227,156,226,198,225,147,224,27,223,114,221,159,219,168,217,148,215,120,213,111,211,145,209,229,207,92,206,216,204, +60,203,130,201,185,199,0,198,118,196,42,195,26,194,65,193,161,192,76,192,94,192,238,192,0,194,131,195,83,197,73,199, +71,201,58,203,18,205,189,206,27,208,12,209,122,209,99,209,223,208,22,208,56,207,108,206,206,205,111,205,91,205,154,205, +48,206,26,207,73,208,164,209,16,211,119,212,202,213,9,215,58,216,105,217,161,218,238,219,93,221,1,223,235,224,45,227, +213,229,229,232,84,236,13,240,239,243,214,247,153,251,25,255,58,2,235,4,37,7,227,8,41,10,2,11,131,11,200,11, +247,11,55,12,170,12,102,13,121,14,232,15,177,17,206,19,46,22,185,24,78,27,201,29,10,32,252,33,152,35,227,36, +227,37,163,38,46,39,146,39,227,39,55,40,159,40,35,41,192,41,105,42,15,43,171,43,59,44,194,44,66,45,178,45, +10,46,64,46,85,46,84,46,82,46,103,46,164,46,19,47,179,47,124,48,96,49,78,50,51,51,252,51,149,52,238,52, +247,52,161,52,220,51,159,50,236,48,209,46,104,44,208,41,33,39,101,36,159,33,206,30,247,27,39,25,110,22,212,19, +83,17,218,14,89,12,203,9,61,7,205,4,153,2,185,0,57,255,31,254,114,253,58,253,133,253,84,254,156,255,68,1, +44,3,53,5,71,7,71,9,20,11,131,12,97,13,135,13,222,12,100,11,45,9,82,6,241,2,40,255,32,251,6,247, +17,243,106,239,45,236,96,233,253,230,1,229,111,227,83,226,180,225,134,225,173,225,2,226,98,226,188,226,15,227,101,227, +195,227,39,228,140,228,240,228,93,229,227,229,142,230,94,231,67,232,40,233,252,233,182,234,89,235,229,235,91,236,183,236, +245,236,28,237,58,237,96,237,147,237,204,237,247,237,1,238,227,237,156,237,57,237,190,236,43,236,122,235,167,234,180,233, +173,232,161,231,156,230,163,229,186,228,229,227,46,227,152,226,33,226,181,225,48,225,112,224,84,223,204,221,209,219,100,217, +135,214,67,211,173,207,235,203,49,200,181,196,160,193,7,191,235,188,74,187,38,186,139,185,134,185,22,186,40,187,144,188, +28,190,153,191,228,192,231,193,153,194,248,194,12,195,229,194,165,194,115,194,123,194,221,194,168,195,218,196,107,198,77,200, +115,202,206,204,70,207,192,209,26,212,62,214,30,216,191,217,46,219,121,220,173,221,205,222,219,223,219,224,211,225,207,226, +215,227,241,228,26,230,69,231,99,232,97,233,50,234,209,234,66,235,147,235,213,235,29,236,121,236,244,236,147,237,86,238, +60,239,63,240,88,241,123,242,156,243,178,244,189,245,198,246,224,247,35,249,169,250,131,252,190,254,96,1,106,4,216,7, +158,11,171,15,227,19,40,24,92,28,101,32,53,36,195,39,14,43,24,46,228,48,116,51,205,53,248,55,1,58,243,59, +214,61,169,63,103,65,2,67,110,68,158,69,142,70,60,71,169,71,215,71,201,71,131,71,12,71,110,70,183,69,241,68, +40,68,104,67,188,66,50,66,214,65,171,65,170,65,194,65,218,65,223,65,199,65,151,65,90,65,28,65,227,64,174,64, +125,64,84,64,63,64,80,64,142,64,246,64,112,65,219,65,17,66,246,65,119,65,139,64,41,63,72,61,224,58,237,55, +115,52,137,48,78,44,236,39,142,35,94,31,124,27,3,24,1,21,122,18,103,16,183,14,85,13,37,12,13,11,244,9, +197,8,116,7,254,5,109,4,210,2,67,1,213,255,153,254,150,253,208,252,66,252,222,251,142,251,49,251,160,250,178,249, +67,248,59,246,142,243,62,240,89,236,248,231,57,227,66,222,57,217,66,212,122,207,254,202,230,198,74,195,63,192,210,189, +3,188,196,186,251,185,147,185,121,185,167,185,28,186,211,186,189,187,197,188,213,189,224,190,226,191,223,192,215,193,193,194, +142,195,41,196,136,196,170,196,153,196,92,196,246,195,96,195,148,194,142,193,83,192,237,190,101,189,197,187,19,186,93,184, +186,182,71,181,34,180,92,179,250,178,245,178,72,179,243,179,255,180,111,182,58,184,66,186,92,188,92,190,36,192,167,193, +231,194,234,195,180,196,67,197,155,197,198,197,222,197,3,198,87,198,237,198,206,199,248,200,100,202,11,204,231,205,236,207, +16,210,68,212,123,214,172,216,213,218,241,220,0,223,0,225,242,226,221,228,207,230,210,232,237,234,27,237,81,239,131,241, +170,243,201,245,230,247,6,250,33,252,40,254,7,0,182,1,58,3,167,4,25,6,161,7,72,9,11,11,228,12,208,14, +215,16,7,19,103,21,245,23,164,26,95,29,22,32,196,34,104,37,8,40,160,42,33,45,116,47,126,49,46,51,122,52, +102,53,246,53,47,54,21,54,176,53,16,53,77,52,132,51,207,50,66,50,230,49,194,49,226,49,83,50,38,51,99,52, +6,54,253,55,45,58,127,60,226,62,77,65,184,67,18,70,70,72,58,74,219,75,34,77,21,78,190,78,37,79,72,79, +31,79,159,78,195,77,140,76,0,75,38,73,5,71,160,68,253,65,34,63,25,60,231,56,145,53,32,50,156,46,24,43, +166,39,86,36,49,33,56,30,103,27,197,24,94,22,72,20,145,18,59,17,53,16,100,15,171,14,249,13,68,13,135,12, +183,11,192,10,139,9,7,8,51,6,30,4,217,1,113,255,229,252,41,250,57,247,30,244,243,240,216,237,236,234,54,232, +176,229,72,227,235,224,146,222,61,220,241,217,178,215,127,213,89,211,69,209,75,207,112,205,182,203,23,202,140,200,15,199, +161,197,71,196,0,195,196,193,125,192,18,191,115,189,159,187,167,185,166,183,180,181,224,179,47,178,163,176,65,175,25,174, +61,173,188,172,153,172,205,172,70,173,245,173,209,174,217,175,17,177,118,178,4,180,171,181,95,183,24,185,213,186,160,188, +128,190,119,192,124,194,126,196,101,198,30,200,161,201,236,202,5,204,240,204,176,205,69,206,173,206,239,206,24,207,61,207, +118,207,219,207,130,208,120,209,203,210,130,212,162,214,41,217,9,220,43,223,114,226,190,229,242,232,254,235,219,238,136,241, +9,244,97,246,145,248,157,250,134,252,84,254,18,0,202,1,136,3,78,5,25,7,228,8,164,10,88,12,255,13,162,15, +73,17,250,18,186,20,134,22,94,24,63,26,35,28,3,30,210,31,125,33,239,34,21,36,227,36,86,37,110,37,48,37, +163,36,209,35,202,34,164,33,126,32,116,31,159,30,10,30,183,29,158,29,178,29,225,29,23,30,60,30,54,30,235,29, +74,29,78,28,1,27,120,25,204,23,25,22,121,20,3,19,200,17,219,16,70,16,14,16,45,16,150,16,53,17,242,17, +179,18,101,19,248,19,101,20,169,20,200,20,200,20,174,20,128,20,72,20,18,20,237,19,228,19,254,19,59,20,143,20, +238,20,75,21,156,21,217,21,244,21,219,21,123,21,192,20,167,19,53,18,127,16,151,14,141,12,104,10,44,8,226,5, +157,3,120,1,140,255,235,253,150,252,137,251,187,250,43,250,225,249,227,249,53,250,202,250,139,251,89,252,24,253,181,253, +33,254,83,254,66,254,229,253,54,253,53,252,233,250,92,249,156,247,181,245,181,243,169,241,162,239,180,237,242,235,109,234, +48,233,64,232,152,231,48,231,247,230,217,230,192,230,154,230,94,230,11,230,171,229,75,229,249,228,193,228,170,228,188,228, +245,228,83,229,200,229,64,230,161,230,211,230,196,230,107,230,194,229,198,228,114,227,193,225,179,223,79,221,170,218,224,215, +12,213,73,210,166,207,51,205,254,202,20,201,133,199,90,198,145,197,34,197,254,196,25,197,113,197,6,198,219,198,233,199, +35,201,116,202,203,203,30,205,108,206,189,207,25,209,132,210,249,211,119,213,0,215,159,216,104,218,111,220,192,222,95,225, +67,228,91,231,149,234,225,237,48,241,118,244,167,247,188,250,181,253,150,0,107,3,65,6,34,9,16,12,5,15,245,17, +207,20,133,23,8,26,71,28,46,30,169,31,165,32,24,33,2,33,110,32,110,31,24,30,132,28,203,26,5,25,77,23, +184,21,85,20,39,19,35,18,61,17,101,16,151,15,211,14,32,14,128,13,240,12,99,12,206,11,46,11,143,10,2,10, +154,9,94,9,65,9,38,9,233,8,107,8,151,7,104,6,226,4,16,3,251,0,176,254,64,252,196,249,96,247,56,245, +111,243,27,242,70,241,236,240,253,240,102,241,13,242,214,242,162,243,79,244,189,244,213,244,135,244,216,243,213,242,154,241, +65,240,228,238,143,237,75,236,22,235,238,233,207,232,179,231,146,230,96,229,14,228,141,226,211,224,219,222,170,220,75,218, +212,215,91,213,254,210,216,208,4,207,150,205,155,204,20,204,0,204,88,204,22,205,52,206,167,207,95,209,71,211,72,213, +79,215,79,217,70,219,54,221,36,223,17,225,252,226,231,228,211,230,195,232,184,234,173,236,151,238,109,240,43,242,213,243, +118,245,26,247,194,248,102,250,246,251,98,253,164,254,186,255,171,0,123,1,41,2,176,2,13,3,64,3,79,3,66,3, +32,3,233,2,161,2,75,2,243,1,172,1,139,1,162,1,250,1,154,2,131,3,185,4,60,6,10,8,25,10,92,12, +193,14,58,17,186,19,55,22,161,24,233,26,253,28,210,30,103,32,197,33,251,34,24,36,30,37,12,38,222,38,144,39, +39,40,171,40,30,41,124,41,185,41,201,41,159,41,59,41,159,40,207,39,205,38,150,37,41,36,136,34,189,32,218,30, +242,28,23,27,85,25,178,23,46,22,200,20,121,19,61,18,13,17,226,15,181,14,128,13,63,12,237,10,134,9,11,8, +123,6,219,4,46,3,118,1,180,255,230,253,9,252,27,250,33,248,33,246,38,244,62,242,114,240,205,238,83,237,4,236, +218,234,203,233,208,232,225,231,255,230,47,230,116,229,210,228,72,228,208,227,107,227,29,227,241,226,242,226,37,227,137,227, +19,228,181,228,97,229,12,230,174,230,58,231,162,231,211,231,193,231,105,231,211,230,11,230,34,229,29,228,2,227,210,225, +149,224,89,223,47,222,36,221,54,220,90,219,123,218,135,217,119,216,79,215,29,214,240,212,205,211,184,210,176,209,185,208, +224,207,61,207,231,206,239,206,88,207,23,208,19,209,49,210,91,211,128,212,147,213,142,214,102,215,20,216,152,216,251,216, +81,217,183,217,74,218,25,219,39,220,103,221,196,222,42,224,139,225,219,226,18,228,33,229,246,229,130,230,185,230,158,230, +62,230,174,229,2,229,77,228,158,227,2,227,134,226,55,226,31,226,62,226,138,226,243,226,100,227,205,227,39,228,113,228, +178,228,240,228,49,229,124,229,216,229,79,230,238,230,194,231,208,232,18,234,120,235,234,236,80,238,150,239,183,240,180,241, +153,242,112,243,65,244,18,245,233,245,208,246,215,247,12,249,125,250,47,252,29,254,62,0,136,2,240,4,113,7,4,10, +163,12,67,15,226,17,126,20,32,23,210,25,154,28,117,31,85,34,46,37,244,39,165,42,66,45,205,47,58,50,118,52, +108,54,12,56,85,57,85,58,33,59,201,59,88,60,210,60,62,61,166,61,26,62,166,62,75,63,251,63,160,64,39,65, +138,65,206,65,255,65,33,66,41,66,253,65,129,65,162,64,96,63,201,61,241,59,229,57,166,55,44,53,111,50,111,47, +57,44,227,40,130,37,42,34,231,30,194,27,196,24,244,21,86,19,233,16,162,14,114,12,73,10,32,8,245,5,207,3, +181,1,172,255,179,253,202,251,238,249,37,248,117,246,227,244,112,243,17,242,183,240,82,239,214,237,63,236,142,234,201,232, +240,230,255,228,240,226,191,224,111,222,18,220,195,217,163,215,207,213,92,212,89,211,199,210,166,210,242,210,164,211,178,212, +12,214,161,215,88,217,27,219,213,220,116,222,233,223,41,225,38,226,213,226,40,227,25,227,167,226,219,225,201,224,135,223, +44,222,198,220,93,219,247,217,151,216,70,215,14,214,251,212,15,212,72,211,160,210,21,210,174,209,117,209,120,209,183,209, +39,210,175,210,54,211,175,211,26,212,131,212,248,212,126,213,16,214,166,214,58,215,210,215,126,216,79,217,82,218,135,219, +231,220,101,222,245,223,137,225,15,227,112,228,147,229,102,230,226,230,18,231,11,231,228,230,172,230,111,230,51,230,7,230, +253,229,40,230,144,230,47,231,236,231,168,232,72,233,184,233,242,233,240,233,174,233,38,233,87,232,78,231,39,230,8,229, +26,228,123,227,61,227,100,227,241,227,228,228,56,230,231,231,222,233,4,236,59,238,108,240,139,242,153,244,164,246,187,248, +238,250,75,253,217,255,162,2,170,5,239,8,102,12,252,15,148,19,12,23,67,26,31,29,141,31,134,33,13,35,44,36, +242,36,114,37,193,37,243,37,28,38,76,38,145,38,244,38,114,39,5,40,158,40,45,41,162,41,239,41,9,42,231,41, +132,41,223,40,250,39,224,38,157,37,71,36,242,34,175,33,138,32,136,31,170,30,237,29,82,29,216,28,130,28,78,28, +52,28,38,28,24,28,255,27,218,27,177,27,143,27,123,27,117,27,119,27,117,27,110,27,102,27,102,27,119,27,159,27, +217,27,30,28,105,28,186,28,16,29,107,29,196,29,13,30,60,30,71,30,45,30,234,29,122,29,206,28,220,27,156,26, +21,25,93,23,141,21,186,19,236,17,32,16,81,14,125,12,168,10,217,8,16,7,64,5,84,3,50,1,203,254,26,252, +43,249,14,246,219,242,171,239,152,236,192,233,60,231,34,229,124,227,73,226,133,225,37,225,23,225,67,225,135,225,189,225, +194,225,131,225,1,225,75,224,120,223,148,222,170,221,195,220,243,219,91,219,37,219,112,219,74,220,165,221,100,223,100,225, +134,227,176,229,199,231,166,233,39,235,40,236,153,236,132,236,4,236,57,235,63,234,42,233,11,232,248,230,13,230,103,229, +24,229,28,229,100,229,215,229,99,230,253,230,161,231,66,232,208,232,56,233,109,233,113,233,83,233,40,233,255,232,224,232, +205,232,203,232,228,232,40,233,158,233,70,234,17,235,238,235,210,236,185,237,168,238,158,239,151,240,137,241,105,242,53,243, +239,243,153,244,44,245,150,245,198,245,177,245,93,245,218,244,61,244,149,243,232,242,61,242,160,241,41,241,243,240,18,241, +139,241,78,242,69,243,90,244,124,245,153,246,156,247,101,248,210,248,201,248,73,248,98,247,54,246,229,244,135,243,49,242, +245,240,238,239,56,239,230,238,247,238,82,239,202,239,53,240,117,240,127,240,83,240,244,239,95,239,144,238,142,237,106,236, +69,235,67,234,133,233,28,233,15,233,91,233,250,233,230,234,17,236,102,237,204,238,39,240,101,241,125,242,112,243,72,244, +20,245,234,245,221,246,4,248,111,249,35,251,27,253,71,255,152,1,0,4,117,6,234,8,76,11,130,13,119,15,33,17, +135,18,191,19,225,20,252,21,16,23,22,24,6,25,227,25,183,26,139,27,95,28,39,29,205,29,68,30,137,30,171,30, +190,30,208,30,230,30,249,30,3,31,11,31,30,31,82,31,182,31,75,32,6,33,215,33,175,34,137,35,102,36,73,37, +48,38,15,39,219,39,134,40,10,41,103,41,166,41,210,41,246,41,28,42,73,42,126,42,182,42,232,42,6,43,7,43, +223,42,140,42,12,42,99,41,149,40,163,39,145,38,94,37,16,36,173,34,65,33,217,31,129,30,61,29,13,28,229,26, +180,25,101,24,227,22,25,21,245,18,104,16,107,13,2,10,61,6,55,2,16,254,231,249,212,245,231,241,41,238,161,234, +82,231,63,228,99,225,183,222,42,220,174,217,52,215,186,212,66,210,215,207,136,205,102,203,133,201,249,199,216,198,50,198, +18,198,124,198,110,199,222,200,183,202,226,204,63,207,174,209,22,212,107,214,172,216,228,218,27,221,84,223,135,225,164,227, +160,229,117,231,37,233,180,234,30,236,87,237,77,238,239,238,57,239,49,239,231,238,105,238,191,237,237,236,249,235,236,234, +216,233,209,232,227,231,14,231,67,230,111,229,124,228,93,227,15,226,148,224,240,222,45,221,88,219,128,217,187,215,32,214, +193,212,167,211,213,210,69,210,237,209,199,209,201,209,237,209,43,210,123,210,213,210,50,211,143,211,237,211,85,212,216,212, +134,213,112,214,162,215,29,217,223,218,225,220,24,223,122,225,250,227,133,230,4,233,94,235,124,237,85,239,233,240,62,242, +98,243,93,244,56,245,253,245,187,246,132,247,104,248,109,249,137,250,164,251,164,252,115,253,6,254,95,254,135,254,131,254, +82,254,245,253,115,253,222,252,85,252,247,251,226,251,34,252,186,252,162,253,206,254,56,0,211,1,146,3,91,5,18,7, +154,8,222,9,219,10,153,11,42,12,162,12,15,13,124,13,242,13,122,14,35,15,252,15,17,17,102,18,245,19,176,21, +129,23,85,25,30,27,210,28,106,30,227,31,56,33,100,34,102,35,65,36,254,36,168,37,76,38,239,38,147,39,52,40, +203,40,84,41,204,41,52,42,135,42,195,42,223,42,214,42,165,42,82,42,228,41,99,41,215,40,67,40,173,39,24,39, +138,38,8,38,148,37,40,37,186,36,66,36,188,35,45,35,161,34,34,34,179,33,80,33,242,32,148,32,62,32,253,31, +228,31,255,31,79,32,198,32,81,33,219,33,86,34,179,34,228,34,217,34,124,34,190,33,151,32,16,31,57,29,39,27, +236,24,144,22,27,20,148,17,7,15,133,12,32,10,226,7,208,5,226,3,17,2,85,0,168,254,4,253,98,251,183,249, +250,247,40,246,67,244,81,242,91,240,102,238,114,236,124,234,129,232,130,230,128,228,122,226,108,224,82,222,42,220,250,217, +207,215,187,213,202,211,0,210,88,208,201,206,77,205,230,203,151,202,98,201,68,200,48,199,29,198,13,197,13,196,59,195, +183,194,157,194,253,194,220,195,55,197,6,199,61,201,201,203,142,206,102,209,38,212,166,214,199,216,117,218,163,219,72,220, +101,220,1,220,53,219,39,218,5,217,251,215,39,215,152,214,76,214,62,214,103,214,197,214,83,215,3,216,186,216,88,217, +189,217,212,217,155,217,32,217,122,216,194,215,15,215,117,214,7,214,214,213,241,213,96,214,33,215,41,216,100,217,187,218, +22,220,96,221,137,222,133,223,77,224,230,224,89,225,187,225,32,226,157,226,69,227,37,228,72,229,181,230,112,232,119,234, +193,236,63,239,223,241,145,244,72,247,248,249,153,252,30,255,125,1,171,3,163,5,107,7,12,9,146,10,8,12,111,13, +196,14,255,15,26,17,18,18,232,18,163,19,72,20,219,20,97,21,224,21,93,22,226,22,122,23,48,24,17,25,36,26, +109,27,238,28,162,30,128,32,127,34,148,36,180,38,215,40,243,42,254,44,239,46,183,48,75,50,161,51,178,52,127,53, +14,54,106,54,158,54,182,54,190,54,191,54,200,54,232,54,49,55,177,55,107,56,82,57,79,58,67,59,19,60,175,60, +17,61,54,61,26,61,173,60,220,59,150,58,214,56,169,54,40,52,111,49,149,46,165,43,164,40,153,37,147,34,167,31, +234,28,106,26,34,24,4,22,252,19,249,17,240,15,223,13,193,11,146,9,82,7,3,5,182,2,134,0,143,254,235,252, +166,251,191,250,47,250,234,249,234,249,36,250,138,250,3,251,109,251,166,251,141,251,16,251,35,250,200,248,4,247,226,244, +116,242,205,239,10,237,70,234,154,231,25,229,205,226,190,224,236,222,86,221,247,219,197,218,178,217,178,216,191,215,213,214, +245,213,32,213,82,212,131,211,169,210,187,209,182,208,150,207,88,206,242,204,82,203,104,201,41,199,147,196,182,193,170,190, +141,187,127,184,159,181,14,179,239,176,102,175,145,174,132,174,63,175,177,176,186,178,45,181,222,183,166,186,101,189,4,192, +118,194,181,196,195,198,167,200,109,202,38,204,232,205,202,207,221,209,44,212,175,214,86,217,2,220,145,222,226,224,219,226, +112,228,154,229,93,230,196,230,223,230,198,230,149,230,104,230,92,230,138,230,2,231,209,231,249,232,117,234,54,236,37,238, +37,240,29,242,249,243,177,245,69,247,185,248,23,250,99,251,164,252,225,253,38,255,125,0,239,1,128,3,45,5,238,6, +187,8,144,10,105,12,67,14,26,16,233,17,176,19,119,21,79,23,76,25,126,27,234,29,140,32,86,35,61,38,54,41, +62,44,75,47,81,50,57,53,236,55,84,58,102,60,33,62,135,63,157,64,96,65,207,65,231,65,174,65,42,65,104,64, +109,63,60,62,214,60,61,59,118,57,141,55,142,53,129,51,105,49,72,47,30,45,244,42,210,40,197,38,215,36,12,35, +100,33,223,31,126,30,68,29,51,28,79,27,148,26,253,25,130,25,29,25,197,24,117,24,40,24,218,23,138,23,56,23, +229,22,141,22,45,22,190,21,60,21,164,20,249,19,60,19,108,18,132,17,124,16,82,15,10,14,177,12,89,11,19,10, +231,8,218,7,235,6,25,6,100,5,201,4,65,4,187,3,32,3,94,2,110,1,84,0,38,255,251,253,230,252,242,251, +35,251,119,250,241,249,150,249,105,249,98,249,115,249,127,249,108,249,37,249,159,248,221,247,233,246,200,245,126,244,7,243, +99,241,150,239,175,237,196,235,236,233,62,232,195,230,124,229,98,228,102,227,116,226,115,225,74,224,222,222,26,221,244,218, +114,216,166,213,174,210,169,207,180,204,230,201,82,199,11,197,31,195,156,193,134,192,213,191,117,191,74,191,59,191,50,191, +36,191,11,191,229,190,173,190,94,190,244,189,112,189,219,188,65,188,177,187,59,187,233,186,199,186,222,186,53,187,213,187, +194,188,251,189,128,191,80,193,105,195,201,197,108,200,73,203,81,206,118,209,173,212,236,215,44,219,103,222,151,225,179,228, +178,231,147,234,88,237,11,240,184,242,106,245,44,248,6,251,251,253,13,1,52,4,101,7,139,10,141,13,83,16,197,18, +208,20,100,22,116,23,248,23,241,23,111,23,142,22,116,21,73,20,52,19,83,18,189,17,133,17,181,17,78,18,67,19, +116,20,184,21,229,22,221,23,146,24,5,25,65,25,77,25,46,25,236,24,146,24,60,24,15,24,49,24,193,24,202,25, +74,27,49,29,110,31,234,33,141,36,53,39,191,41,4,44,236,45,111,47,150,48,113,49,17,50,128,50,191,50,209,50, +193,50,160,50,131,50,119,50,126,50,137,50,133,50,100,50,33,50,197,49,93,49,243,48,143,48,48,48,213,47,130,47, +60,47,5,47,217,46,168,46,87,46,200,45,227,44,150,43,221,41,191,39,70,37,124,34,107,31,25,28,145,24,226,20, +33,17,105,13,207,9,97,6,36,3,17,0,29,253,66,250,125,247,207,244,58,242,188,239,80,237,240,234,157,232,98,230, +81,228,129,226,3,225,226,223,32,223,188,222,180,222,3,223,160,223,123,224,126,225,146,226,163,227,165,228,149,229,111,230, +46,231,206,231,79,232,185,232,35,233,169,233,97,234,82,235,112,236,164,237,208,238,227,239,212,240,164,241,81,242,216,242, +46,243,74,243,43,243,215,242,93,242,204,241,47,241,142,240,238,239,83,239,197,238,73,238,231,237,159,237,113,237,95,237, +105,237,152,237,242,237,123,238,52,239,25,240,37,241,78,242,138,243,204,244,4,246,37,247,30,248,227,248,104,249,162,249, +132,249,2,249,19,248,182,246,242,244,218,242,130,240,2,238,111,235,217,232,75,230,206,227,106,225,31,223,238,220,208,218, +188,216,169,214,148,212,127,210,119,208,140,206,212,204,96,203,62,202,118,201,12,201,1,201,91,201,27,202,68,203,206,204, +169,206,188,208,235,210,31,213,72,215,97,217,107,219,103,221,84,223,52,225,12,227,235,228,229,230,15,233,123,235,47,238, +36,241,81,244,170,247,38,251,187,254,99,2,15,6,176,9,52,13,138,16,164,19,119,22,248,24,35,27,250,28,134,30, +213,31,246,32,240,33,198,34,113,35,234,35,45,36,56,36,10,36,159,35,242,34,248,33,178,32,39,31,105,29,138,27, +155,25,163,23,166,21,167,19,178,17,213,15,29,14,142,12,34,11,208,9,149,8,122,7,147,6,241,5,154,5,130,5, +149,5,190,5,250,5,85,6,229,6,189,7,226,8,79,10,248,11,212,13,226,15,35,18,146,20,31,23,176,25,44,28, +133,30,187,32,216,34,231,36,232,38,210,40,150,42,41,44,133,45,176,46,174,47,130,48,38,49,141,49,172,49,124,49, +251,48,45,48,20,47,180,45,14,44,36,42,247,39,140,37,233,34,22,32,34,29,28,26,21,23,24,20,43,17,78,14, +126,11,192,8,31,6,175,3,134,1,177,255,53,254,10,253,38,252,125,251,9,251,202,250,190,250,226,250,41,251,132,251, +229,251,68,252,160,252,253,252,101,253,220,253,102,254,2,255,174,255,99,0,30,1,217,1,140,2,49,3,187,3,33,4, +87,4,85,4,24,4,157,3,224,2,227,1,168,0,55,255,164,253,12,252,145,250,78,249,80,248,147,247,1,247,128,246, +248,245,89,245,159,244,197,243,200,242,157,241,59,240,158,238,203,236,210,234,199,232,192,230,206,228,1,227,102,225,11,224, +251,222,61,222,206,221,164,221,175,221,222,221,41,222,140,222,12,223,175,223,124,224,122,225,176,226,36,228,215,229,199,231, +227,233,23,236,69,238,81,240,36,242,177,243,245,244,248,245,195,246,98,247,215,247,35,248,63,248,38,248,219,247,103,247, +215,246,59,246,153,245,241,244,60,244,111,243,132,242,120,241,70,240,233,238,90,237,151,235,172,233,176,231,202,229,31,228, +203,226,216,225,64,225,240,224,213,224,219,224,241,224,5,225,4,225,219,224,130,224,250,223,79,223,149,222,222,221,58,221, +187,220,114,220,120,220,228,220,199,221,37,223,243,224,28,227,134,229,22,232,183,234,82,237,214,239,52,242,100,244,103,246, +69,248,8,250,185,251,90,253,236,254,115,0,242,1,107,3,216,4,42,6,71,7,20,8,125,8,122,8,12,8,56,7, +5,6,120,4,158,2,145,0,120,254,130,252,219,250,161,249,225,248,155,248,201,248,94,249,76,250,130,251,230,252,98,254, +229,255,101,1,229,2,105,4,244,5,135,7,33,9,201,10,139,12,118,14,148,16,228,18,91,21,237,23,141,26,53,29, +222,31,126,34,5,37,96,39,132,41,112,43,52,45,225,46,134,48,39,50,196,51,88,53,233,54,123,56,20,58,175,59, +64,61,180,62,1,64,37,65,38,66,9,67,205,67,106,68,216,68,23,69,48,69,51,69,39,69,10,69,204,68,91,68, +170,67,181,66,124,65,252,63,46,62,6,60,131,57,174,54,156,51,103,48,27,45,187,41,65,38,169,34,252,30,71,27, +154,23,248,19,88,16,171,12,234,8,31,5,99,1,217,253,155,250,183,247,48,245,6,243,56,241,203,239,193,238,22,238, +187,237,155,237,156,237,166,237,164,237,130,237,50,237,175,236,254,235,45,235,76,234,103,233,128,232,146,231,154,230,155,229, +159,228,178,227,217,226,12,226,59,225,86,224,85,223,62,222,25,221,243,219,212,218,192,217,198,216,250,215,118,215,87,215, +169,215,112,216,160,217,43,219,255,220,10,223,51,225,91,227,97,229,45,231,179,232,246,233,255,234,213,235,114,236,208,236, +230,236,186,236,91,236,216,235,64,235,148,234,209,233,250,232,25,232,66,231,138,230,251,229,149,229,83,229,51,229,57,229, +114,229,228,229,139,230,82,231,33,232,224,232,132,233,8,234,106,234,165,234,176,234,132,234,37,234,161,233,18,233,147,232, +55,232,9,232,11,232,57,232,139,232,250,232,127,233,19,234,179,234,94,235,21,236,213,236,149,237,78,238,251,238,161,239, +79,240,22,241,1,242,20,243,73,244,156,245,16,247,170,248,111,250,82,252,54,254,244,255,106,1,136,2,79,3,204,3, +9,4,5,4,189,3,52,3,124,2,182,1,5,1,131,0,56,0,34,0,67,0,169,0,110,1,169,2,94,4,122,6, +215,8,79,11,193,13,27,16,80,18,79,20,3,22,84,23,56,24,179,24,219,24,200,24,142,24,60,24,220,23,125,23, +46,23,254,22,241,22,251,22,8,23,8,23,247,22,220,22,198,22,188,22,188,22,189,22,187,22,192,22,224,22,48,23, +189,23,136,24,134,25,173,26,246,27,94,29,224,30,106,32,230,33,59,35,92,36,71,37,2,38,149,38,255,38,57,39, +67,39,40,39,255,38,229,38,240,38,39,39,130,39,242,39,107,40,235,40,118,41,17,42,191,42,123,43,63,44,7,45, +205,45,141,46,63,47,222,47,102,48,219,48,68,49,162,49,241,49,30,50,23,50,205,49,57,49,94,48,61,47,211,45, +18,44,235,41,87,39,92,36,13,33,133,29,217,25,21,22,66,18,103,14,145,10,208,6,54,3,204,255,152,252,157,249, +221,246,96,244,42,242,61,240,148,238,37,237,227,235,202,234,216,233,16,233,113,232,249,231,161,231,98,231,54,231,23,231, +0,231,228,230,183,230,109,230,252,229,96,229,153,228,167,227,140,226,73,225,228,223,101,222,216,220,71,219,190,217,68,216, +230,214,175,213,173,212,231,211,96,211,22,211,4,211,44,211,150,211,73,212,70,213,128,214,223,215,72,217,168,218,247,219, +56,221,103,222,124,223,94,224,243,224,43,225,2,225,133,224,201,223,222,222,210,221,174,220,128,219,94,218,102,217,183,216, +107,216,144,216,46,217,72,218,219,219,228,221,84,224,19,227,2,230,2,233,250,235,216,238,148,241,37,244,130,246,160,248, +120,250,8,252,87,253,108,254,83,255,14,0,155,0,244,0,15,1,228,0,111,0,174,255,168,254,108,253,15,252,171,250, +91,249,57,248,89,247,203,246,157,246,212,246,115,247,116,248,203,249,106,251,67,253,72,255,108,1,160,3,211,5,242,7, +239,9,192,11,100,13,219,14,37,16,65,17,45,18,235,18,131,19,0,20,104,20,188,20,245,20,13,21,8,21,248,20, +250,20,43,21,157,21,84,22,72,23,110,24,190,25,52,27,201,28,106,30,252,31,98,33,137,34,109,35,26,36,162,36, +17,37,105,37,168,37,207,37,236,37,21,38,96,38,217,38,122,39,46,40,220,40,112,41,226,41,47,42,94,42,111,42, +101,42,63,42,0,42,173,41,81,41,247,40,173,40,127,40,119,40,155,40,232,40,86,41,216,41,98,42,231,42,94,43, +184,43,226,43,196,43,70,43,87,42,240,40,24,39,223,36,87,34,146,31,164,28,161,25,159,22,181,19,241,16,96,14, +6,12,234,9,20,8,138,6,83,5,104,4,188,3,61,3,220,2,149,2,108,2,103,2,134,2,196,2,24,3,123,3, +243,3,131,4,44,5,221,5,116,6,198,6,169,6,4,6,205,4,7,3,185,0,237,253,179,250,32,247,86,243,122,239, +180,235,33,232,209,228,209,225,39,223,213,220,221,218,54,217,209,215,154,214,136,213,152,212,214,211,77,211,4,211,243,210, +13,211,67,211,140,211,237,211,107,212,9,213,192,213,123,214,28,215,130,215,144,215,46,215,81,214,251,212,63,211,61,209, +29,207,7,205,27,203,115,201,39,200,77,199,0,199,85,199,88,200,3,202,66,204,250,206,16,210,109,213,254,216,170,220, +88,224,237,227,86,231,141,234,152,237,123,240,51,243,179,245,228,247,182,249,40,251,63,252,5,253,121,253,143,253,55,253, +112,252,74,251,233,249,123,248,38,247,6,246,43,245,162,244,126,244,208,244,160,245,234,246,147,248,123,250,131,252,148,254, +159,0,152,2,108,4,4,6,85,7,98,8,72,9,49,10,68,11,155,12,59,14,26,16,43,18,102,20,201,22,82,25, +246,27,163,30,61,33,171,35,218,37,192,39,95,41,193,42,247,43,20,45,45,46,84,47,144,48,226,49,70,51,185,52, +60,54,208,55,111,57,10,59,135,60,202,61,192,62,102,63,199,63,243,63,248,63,220,63,162,63,73,63,216,62,85,62, +199,61,44,61,126,60,181,59,208,58,209,57,191,56,153,55,87,54,234,52,64,51,79,49,20,47,146,44,200,41,181,38, +90,35,194,31,5,28,70,24,173,20,87,17,83,14,166,11,73,9,57,7,115,5,241,3,168,2,134,1,119,0,101,255, +64,254,249,252,125,251,182,249,139,247,235,244,210,241,82,238,139,234,165,230,199,226,13,223,142,219,88,216,118,213,244,210, +217,208,41,207,227,205,1,205,127,204,85,204,123,204,232,204,148,205,119,206,140,207,205,208,56,210,202,211,132,213,108,215, +140,217,237,219,150,222,131,225,163,228,217,231,254,234,236,237,126,240,151,242,34,244,21,245,111,245,54,245,122,244,79,243, +207,241,21,240,68,238,131,236,249,234,203,233,16,233,209,232,5,233,159,233,144,234,205,235,77,237,5,239,220,240,181,242, +109,244,230,245,12,247,216,247,71,248,89,248,13,248,104,247,116,246,67,245,233,243,118,242,245,240,111,239,239,237,139,236, +91,235,120,234,236,233,180,233,188,233,242,233,72,234,185,234,69,235,234,235,158,236,82,237,250,237,152,238,54,239,231,239, +186,240,181,241,215,242,28,244,125,245,241,246,105,248,205,249,253,250,215,251,67,252,56,252,192,251,238,250,218,249,155,248, +73,247,3,246,236,244,46,244,240,243,79,244,86,245,250,246,37,249,178,251,125,254,95,1,61,4,0,7,154,9,0,12, +41,14,13,16,169,17,255,18,31,20,33,21,33,22,53,23,105,24,186,25,31,27,143,28,4,30,123,31,237,32,80,34, +146,35,164,36,129,37,48,38,193,38,74,39,218,39,121,40,44,41,246,41,221,42,228,43,10,45,66,46,117,47,132,48, +85,49,211,49,242,49,173,49,0,49,233,47,104,46,128,44,59,42,168,39,217,36,229,33,227,30,235,27,22,25,120,22, +35,20,34,18,126,16,64,15,111,14,12,14,14,14,96,14,226,14,117,15,5,16,136,16,0,17,110,17,200,17,244,17, +212,17,80,17,98,16,23,15,135,13,203,11,240,9,246,7,213,5,137,3,19,1,131,254,234,251,95,249,237,246,155,244, +104,242,79,240,72,238,76,236,88,234,112,232,160,230,251,228,146,227,115,226,161,225,25,225,209,224,194,224,225,224,39,225, +138,225,2,226,133,226,14,227,153,227,37,228,176,228,51,229,166,229,0,230,66,230,115,230,166,230,236,230,83,231,223,231, +145,232,101,233,90,234,111,235,164,236,244,237,83,239,177,240,251,241,33,243,24,244,225,244,126,245,246,245,76,246,125,246, +131,246,86,246,241,245,92,245,166,244,234,243,65,243,189,242,96,242,37,242,254,241,226,241,207,241,200,241,212,241,251,241, +67,242,181,242,95,243,79,244,147,245,48,247,31,249,80,251,173,253,38,0,176,2,67,5,210,7,67,10,117,12,64,14, +132,15,44,16,48,16,144,15,88,14,155,12,118,10,21,8,172,5,109,3,133,1,12,0,7,255,110,254,54,254,88,254, +213,254,173,255,224,0,97,2,24,4,232,5,174,7,76,9,172,10,198,11,155,12,59,13,183,13,31,14,123,14,203,14, +9,15,47,15,57,15,39,15,251,14,178,14,68,14,165,13,206,12,188,11,114,10,250,8,93,7,160,5,205,3,244,1, +45,0,155,254,97,253,156,252,102,252,202,252,207,253,115,255,170,1,94,4,107,7,160,10,198,13,167,16,20,19,233,20, +10,22,102,22,240,21,167,20,148,18,207,15,117,12,174,8,168,4,154,0,191,252,84,249,145,246,154,244,122,243,35,243, +112,243,52,244,63,245,104,246,139,247,137,248,67,249,157,249,130,249,229,248,196,247,44,246,49,244,241,241,145,239,54,237, +5,235,26,233,133,231,75,230,103,229,210,228,124,228,86,228,73,228,63,228,31,228,218,227,112,227,239,226,113,226,22,226, +247,225,40,226,179,226,157,227,235,228,149,230,143,232,187,234,244,236,18,239,239,240,110,242,124,243,11,244,21,244,155,243, +167,242,85,241,206,239,68,238,234,236,234,235,93,235,78,235,188,235,159,236,236,237,153,239,152,241,220,243,82,246,232,248, +136,251,30,254,158,0,3,3,84,5,157,7,238,9,80,12,196,14,64,17,177,19,3,22,30,24,240,25,107,27,129,28, +38,29,87,29,23,29,116,28,135,27,106,26,61,25,30,24,43,23,125,22,46,22,77,22,225,22,229,23,76,25,0,27, +238,28,3,31,50,33,112,35,178,37,237,39,17,42,13,44,210,45,81,47,129,48,89,49,217,49,2,50,214,49,88,49, +135,48,102,47,246,45,60,44,64,42,9,40,158,37,8,35,79,32,126,29,158,26,182,23,205,20,230,17,2,15,41,12, +99,9,191,6,76,4,19,2,23,0,86,254,200,252,109,251,73,250,100,249,193,248,89,248,29,248,243,247,193,247,114,247, +251,246,92,246,157,245,208,244,3,244,70,243,158,242,14,242,148,241,48,241,231,240,199,240,227,240,73,241,0,242,254,242, +51,244,141,245,0,247,133,248,21,250,163,251,23,253,85,254,70,255,227,255,55,0,90,0,103,0,112,0,126,0,140,0, +151,0,153,0,142,0,113,0,49,0,187,255,251,254,233,253,134,252,219,250,245,248,220,246,151,244,45,242,174,239,51,237, +221,234,205,232,30,231,225,229,28,229,205,228,235,228,101,229,38,230,15,231,0,232,220,232,141,233,3,234,51,234,18,234, +152,233,193,232,154,231,59,230,203,228,118,227,98,226,171,225,89,225,108,225,215,225,139,226,114,227,118,228,121,229,92,230, +5,231,95,231,100,231,27,231,149,230,238,229,66,229,172,228,60,228,248,227,224,227,238,227,34,228,126,228,9,229,198,229, +177,230,188,231,205,232,204,233,166,234,82,235,214,235,64,236,163,236,14,237,145,237,55,238,2,239,237,239,238,240,246,241, +246,242,234,243,212,244,186,245,159,246,128,247,83,248,15,249,176,249,65,250,214,250,138,251,117,252,162,253,20,255,195,0, +163,2,173,4,217,6,31,9,122,11,229,13,95,16,232,18,130,21,44,24,227,26,162,29,98,32,28,35,201,37,90,40, +189,42,210,44,124,46,159,47,43,48,38,48,158,47,175,46,112,45,247,43,86,42,153,40,208,38,10,37,90,35,208,33, +128,32,118,31,188,30,83,30,53,30,89,30,178,30,56,31,229,31,186,32,188,33,239,34,86,36,243,37,197,39,202,41, +252,43,76,46,164,48,230,50,246,52,189,54,39,56,41,57,181,57,192,57,66,57,59,56,182,54,200,52,140,50,24,48, +125,45,195,42,245,39,28,37,77,34,153,31,12,29,163,26,83,24,12,22,196,19,122,17,49,15,232,12,150,10,42,8, +143,5,186,2,169,255,100,252,248,248,108,245,191,241,236,237,239,233,203,229,145,225,86,221,49,217,53,213,114,209,243,205, +198,202,247,199,151,197,178,195,85,194,134,193,69,193,137,193,68,194,97,195,205,196,116,198,73,200,72,202,113,204,204,206, +95,209,43,212,46,215,90,218,161,221,236,224,38,228,60,231,30,234,189,236,11,239,244,240,102,242,83,243,188,243,178,243, +88,243,219,242,99,242,16,242,245,241,30,242,142,242,72,243,72,244,124,245,193,246,230,247,178,248,248,248,152,248,134,247, +195,245,93,243,102,240,248,236,59,233,93,229,144,225,254,221,198,218,247,215,151,213,165,211,28,210,253,208,66,208,229,207, +220,207,32,208,176,208,148,209,216,210,142,212,196,214,139,217,245,220,13,225,216,229,69,235,47,241,95,247,148,253,146,3, +40,9,56,14,170,18,105,22,100,25,138,27,214,28,87,29,49,29,149,28,185,27,205,26,244,25,67,25,202,24,144,24, +156,24,241,24,137,25,91,26,78,27,68,28,24,29,167,29,214,29,152,29,235,28,214,27,102,26,167,24,168,22,123,20, +54,18,243,15,205,13,218,11,33,10,162,8,82,7,43,6,42,5,84,4,174,3,58,3,246,2,223,2,241,2,46,3, +158,3,77,4,71,5,149,6,58,8,50,10,114,12,229,14,116,17,8,20,141,22,247,24,60,27,83,29,42,31,170,32, +188,33,82,34,112,34,40,34,147,33,193,32,182,31,107,30,216,28,253,26,229,24,168,22,93,20,23,18,225,15,198,13, +211,11,31,10,191,8,193,7,35,7,211,6,180,6,173,6,170,6,161,6,142,6,107,6,45,6,203,5,57,5,113,4, +119,3,88,2,46,1,28,0,74,255,225,254,0,255,181,255,255,0,211,2,31,5,213,7,235,10,81,14,241,17,167,21, +77,25,194,28,240,31,203,34,79,37,111,39,23,41,44,42,151,42,78,42,84,41,180,39,122,37,164,34,42,31,8,27, +70,22,5,17,113,11,183,5,243,255,44,250,91,244,119,238,132,232,155,226,223,220,119,215,124,210,247,205,228,201,64,198, +16,195,100,192,81,190,226,188,24,188,227,187,43,188,216,188,212,189,14,191,114,192,232,193,86,195,161,196,185,197,157,198, +92,199,11,200,194,200,147,201,138,202,181,203,36,205,234,206,29,209,203,211,254,214,183,218,239,222,155,227,169,232,1,238, +132,243,17,249,131,254,181,3,133,8,209,12,123,16,104,19,134,21,207,22,76,23,19,23,64,22,237,20,48,19,28,17, +202,14,80,12,203,9,81,7,242,4,185,2,172,0,209,254,43,253,185,251,117,250,81,249,65,248,64,247,88,246,156,245, +38,245,7,245,70,245,225,245,209,246,19,248,164,249,119,251,111,253,97,255,31,1,135,2,142,3,66,4,188,4,20,5, +91,5,157,5,229,5,76,6,247,6,17,8,188,9,12,12,253,14,125,18,107,22,159,26,239,30,42,35,37,39,192,42, +233,45,152,48,203,50,124,52,163,53,56,54,59,54,190,53,221,52,181,51,91,50,211,48,19,47,15,45,196,42,56,40, +120,37,147,34,149,31,134,28,117,25,120,22,172,19,45,17,18,15,104,13,55,12,127,11,59,11,96,11,219,11,145,12, +101,13,64,14,15,15,200,15,98,16,213,16,19,17,21,17,218,16,110,16,225,15,63,15,144,14,208,13,254,12,32,12, +66,11,117,10,193,9,39,9,162,8,47,8,205,7,130,7,78,7,42,7,3,7,201,6,115,6,5,6,140,5,15,5, +133,4,208,3,204,2,90,1,112,255,20,253,85,250,56,247,189,243,228,239,184,235,91,231,255,226,216,222,16,219,185,215, +210,212,78,210,37,208,92,206,254,204,26,204,184,203,211,203,90,204,54,205,82,206,161,207,36,209,239,210,27,213,195,215, +237,218,141,222,132,226,173,230,233,234,38,239,84,243,100,247,59,251,181,254,178,1,36,4,18,6,149,7,198,8,185,9, +112,10,234,10,40,11,55,11,38,11,0,11,190,10,73,10,134,9,96,8,213,6,238,4,188,2,80,0,184,253,9,251, +97,248,234,245,203,243,34,242,248,240,71,240,247,239,240,239,19,240,60,240,64,240,238,239,28,239,177,237,174,235,40,233, +66,230,35,227,240,223,215,220,7,218,180,215,11,214,39,213,10,213,161,213,202,214,101,216,84,218,132,220,228,222,102,225, +3,228,190,230,163,233,193,236,31,240,187,243,134,247,110,251,100,255,95,3,77,7,16,11,118,14,72,17,84,19,128,20, +202,20,71,20,18,19,73,17,10,15,119,12,196,9,40,7,218,4,253,2,155,1,168,0,14,0,181,255,131,255,93,255, +32,255,169,254,222,253,184,252,76,251,188,249,53,248,222,246,213,245,53,245,22,245,149,245,194,246,161,248,28,251,9,254, +54,1,112,4,145,7,124,10,28,13,99,15,78,17,228,18,57,20,101,21,129,22,161,23,213,24,48,26,195,27,159,29, +195,31,27,34,131,36,205,38,216,40,148,42,4,44,49,45,29,46,192,46,19,47,25,47,229,46,151,46,71,46,255,45, +184,45,98,45,244,44,113,44,227,43,75,43,154,42,181,41,125,40,230,38,245,36,194,34,101,32,232,29,76,27,139,24, +168,21,181,18,200,15,244,12,67,10,183,7,82,5,34,3,57,1,173,255,130,254,178,253,44,253,228,252,220,252,31,253, +186,253,175,254,244,255,115,1,27,3,222,4,186,6,171,8,167,10,155,12,118,14,41,16,178,17,15,19,61,20,50,21, +222,21,52,22,49,22,214,21,40,21,39,20,208,18,29,17,24,15,211,12,106,10,246,7,133,5,21,3,157,0,26,254, +144,251,12,249,154,246,60,244,236,241,157,239,73,237,243,234,161,232,89,230,25,228,216,225,139,223,45,221,196,218,93,216, +8,214,212,211,204,209,250,207,104,206,35,205,47,204,140,203,51,203,23,203,49,203,128,203,9,204,207,204,210,205,9,207, +106,208,238,209,150,211,106,213,122,215,208,217,111,220,77,223,86,226,110,229,125,232,114,235,67,238,238,240,110,243,188,245, +205,247,152,249,27,251,98,252,126,253,131,254,120,255,87,0,17,1,157,1,253,1,64,2,116,2,156,2,172,2,137,2, +31,2,110,1,134,0,133,255,128,254,120,253,99,252,53,251,238,249,163,248,114,247,110,246,153,245,220,244,31,244,83,243, +124,242,172,241,242,240,83,240,198,239,61,239,180,238,49,238,199,237,133,237,118,237,153,237,242,237,134,238,97,239,144,240, +20,242,226,243,233,245,28,248,119,250,0,253,186,255,155,2,141,5,111,8,34,11,143,13,169,15,106,17,200,18,185,19, +53,20,62,20,224,19,50,19,75,18,68,17,46,16,23,15,8,14,9,13,29,12,60,11,94,10,120,9,138,8,157,7, +194,6,10,6,130,5,51,5,37,5,96,5,240,5,216,6,22,8,156,9,87,11,47,13,18,15,239,16,182,18,79,20, +164,21,160,22,63,23,142,23,169,23,181,23,211,23,32,24,177,24,152,25,224,26,137,28,139,30,201,32,30,35,90,37, +83,39,227,40,241,41,116,42,110,42,239,41,13,41,226,39,129,38,254,36,102,35,206,33,76,32,252,30,238,29,37,29, +146,28,25,28,160,27,22,27,117,26,183,25,213,24,195,23,120,22,252,20,108,19,241,17,174,16,177,15,239,14,80,14, +193,13,65,13,216,12,142,12,85,12,12,12,137,11,179,10,138,9,41,8,175,6,41,5,146,3,219,1,1,0,27,254, +86,252,218,250,187,249,237,248,78,248,195,247,70,247,231,246,190,246,210,246,21,247,102,247,165,247,191,247,181,247,137,247, +53,247,161,246,171,245,54,244,57,242,188,239,213,236,150,233,15,230,74,226,92,222,97,218,127,214,220,210,147,207,175,204, +47,202,14,200,72,198,216,196,186,195,228,194,74,194,221,193,141,193,78,193,23,193,228,192,187,192,172,192,209,192,70,193, +34,194,109,195,31,197,37,199,100,201,197,203,48,206,136,208,175,210,129,212,227,213,202,214,61,215,80,215,29,215,189,214, +67,214,197,213,92,213,44,213,86,213,244,213,18,215,172,216,178,218,14,221,165,223,92,226,22,229,180,231,35,234,89,236, +89,238,48,240,234,241,144,243,34,245,162,246,20,248,128,249,239,250,100,252,218,253,70,255,160,0,231,1,33,3,90,4, +153,5,225,6,50,8,146,9,14,11,184,12,162,14,213,16,74,19,242,21,182,24,127,27,58,30,212,32,59,35,98,37, +67,39,226,40,77,42,147,43,190,44,214,45,221,46,218,47,216,48,230,49,13,51,76,52,150,53,219,54,19,56,65,57, +113,58,175,59,253,60,83,62,160,63,212,64,232,65,224,66,193,67,137,68,47,69,158,69,193,69,132,69,217,68,179,67, +7,66,203,63,248,60,144,57,163,53,76,49,180,44,8,40,113,35,18,31,3,27,77,23,242,19,237,16,56,14,210,11, +183,9,221,7,44,6,129,4,183,2,177,0,99,254,213,251,26,249,69,246,103,243,140,240,195,237,37,235,205,232,209,230, +58,229,248,227,243,226,17,226,66,225,130,224,212,223,51,223,147,222,231,221,45,221,118,220,231,219,167,219,215,219,133,220, +178,221,90,223,119,225,255,227,220,230,224,233,203,236,89,239,91,241,189,242,138,243,214,243,176,243,31,243,37,242,207,240, +60,239,148,237,252,235,130,234,26,233,174,231,47,230,159,228,21,227,168,225,99,224,61,223,38,222,20,221,20,220,69,219, +203,218,186,218,15,219,175,219,124,220,94,221,75,222,65,223,55,224,26,225,200,225,31,226,8,226,130,225,162,224,138,223, +96,222,72,221,92,220,173,219,64,219,20,219,34,219,94,219,185,219,32,220,125,220,184,220,189,220,130,220,18,220,135,219, +8,219,189,218,193,218,30,219,215,219,231,220,82,222,23,224,51,226,144,228,5,231,94,233,107,235,12,237,56,238,249,238, +101,239,148,239,159,239,160,239,179,239,247,239,139,240,131,241,235,242,190,244,243,246,120,249,51,252,9,255,215,1,121,4, +212,6,218,8,143,10,10,12,103,13,198,14,61,16,224,17,186,19,211,21,51,24,221,26,207,29,252,32,80,36,168,39, +226,42,216,45,112,48,155,50,89,52,183,53,196,54,144,55,35,56,131,56,179,56,188,56,163,56,110,56,28,56,162,55, +243,54,3,54,205,52,84,51,156,49,164,47,106,45,230,42,31,40,41,37,40,34,69,31,162,28,78,26,68,24,115,22, +200,20,57,19,197,17,111,16,54,15,19,14,252,12,227,11,195,10,160,9,132,8,126,7,153,6,221,5,76,5,224,4, +143,4,71,4,246,3,135,3,239,2,40,2,58,1,47,0,22,255,251,253,230,252,217,251,216,250,233,249,22,249,108,248, +243,247,176,247,153,247,160,247,177,247,192,247,198,247,195,247,186,247,171,247,145,247,105,247,51,247,250,246,209,246,204,246, +243,246,64,247,157,247,240,247,30,248,24,248,209,247,62,247,84,246,9,245,95,243,108,241,89,239,88,237,147,235,40,234, +32,233,123,232,54,232,83,232,210,232,173,233,203,234,8,236,62,237,81,238,53,239,237,239,129,240,247,240,85,241,164,241, +249,241,112,242,43,243,64,244,178,245,115,247,106,249,123,251,143,253,142,255,87,1,192,2,157,3,204,3,66,3,17,2, +95,0,90,254,41,252,231,249,167,247,125,245,126,243,197,241,102,240,111,239,221,238,165,238,181,238,242,238,68,239,141,239, +184,239,181,239,132,239,50,239,207,238,109,238,24,238,216,237,182,237,192,237,9,238,162,238,147,239,212,240,84,242,252,243, +190,245,147,247,125,249,122,251,132,253,140,255,128,1,83,3,1,5,137,6,242,7,64,9,121,10,167,11,216,12,25,14, +113,15,220,16,75,18,169,19,230,20,255,21,247,22,220,23,183,24,137,25,78,26,0,27,152,27,18,28,102,28,134,28, +93,28,213,27,225,26,128,25,191,23,180,21,120,19,30,17,179,14,65,12,213,9,128,7,86,5,106,3,203,1,130,0, +140,255,224,254,109,254,25,254,200,253,93,253,187,252,208,251,149,250,18,249,92,247,143,245,205,243,55,242,230,240,237,239, +85,239,35,239,88,239,243,239,239,240,64,242,205,243,117,245,17,247,127,248,171,249,140,250,43,251,146,251,201,251,212,251, +179,251,106,251,0,251,132,250,4,250,135,249,10,249,127,248,215,247,6,247,8,246,224,244,150,243,50,242,189,240,61,239, +187,237,70,236,238,234,197,233,218,232,57,232,235,231,246,231,92,232,27,233,43,234,124,235,251,236,146,238,49,240,205,241, +99,243,240,244,116,246,232,247,69,249,131,250,155,251,140,252,89,253,4,254,145,254,253,254,73,255,118,255,139,255,152,255, +178,255,236,255,84,0,240,0,189,1,176,2,190,3,221,4,6,6,46,7,77,8,84,9,53,10,228,10,90,11,147,11, +149,11,104,11,26,11,188,10,99,10,37,10,19,10,52,10,133,10,249,10,131,11,20,12,168,12,61,13,214,13,117,14, +25,15,193,15,112,16,44,17,6,18,13,19,83,20,229,21,196,23,233,25,64,28,170,30,1,33,34,35,241,36,97,38, +116,39,50,40,164,40,205,40,172,40,64,40,146,39,183,38,206,37,248,36,79,36,223,35,166,35,151,35,162,35,180,35, +191,35,184,35,150,35,92,35,13,35,176,34,73,34,216,33,87,33,194,32,25,32,100,31,170,30,236,29,24,29,18,28, +186,26,245,24,186,22,16,20,10,17,187,13,58,10,160,6,10,3,160,255,138,252,232,249,197,247,31,246,231,244,17,244, +152,243,127,243,196,243,87,244,25,245,227,245,145,246,14,247,85,247,106,247,81,247,8,247,135,246,196,245,183,244,93,243, +182,241,194,239,135,237,17,235,121,232,220,229,88,227,4,225,233,222,8,221,97,219,248,217,218,216,17,216,158,215,115,215, +117,215,137,215,157,215,173,215,192,215,223,215,14,216,71,216,127,216,176,216,221,216,16,217,85,217,177,217,30,218,138,218, +219,218,252,218,219,218,113,218,196,217,222,216,213,215,188,214,170,213,180,212,237,211,109,211,73,211,146,211,83,212,132,213, +14,215,207,216,161,218,104,220,20,222,156,223,253,224,48,226,43,227,227,227,86,228,146,228,172,228,190,228,220,228,11,229, +69,229,128,229,184,229,242,229,60,230,165,230,57,231,255,231,249,232,43,234,156,235,87,237,104,239,215,241,162,244,191,247, +26,251,152,254,30,2,139,5,197,8,178,11,66,14,106,16,40,18,128,19,125,20,49,21,178,21,29,22,138,22,13,23, +177,23,118,24,82,25,59,26,41,27,24,28,7,29,244,29,215,30,165,31,87,32,236,32,110,33,244,33,151,34,106,35, +120,36,190,37,50,39,200,40,118,42,54,44,254,45,196,47,119,49,3,51,86,52,93,53,13,54,90,54,65,54,189,53, +210,52,136,51,236,49,13,48,251,45,193,43,110,41,11,39,167,36,77,34,9,32,225,29,217,27,246,25,61,24,181,22, +102,21,81,20,110,19,171,18,241,17,45,17,79,16,81,15,48,14,236,12,128,11,232,9,34,8,46,6,21,4,226,1, +163,255,104,253,65,251,68,249,135,247,33,246,37,245,159,244,148,244,254,244,211,245,4,247,125,248,38,250,231,251,167,253, +82,255,218,0,57,2,110,3,122,4,95,5,33,6,197,6,78,7,189,7,15,8,59,8,53,8,241,7,101,7,142,6, +104,5,245,3,52,2,35,0,196,253,30,251,65,248,70,245,79,242,130,239,3,237,238,234,82,233,43,232,104,231,238,230, +163,230,117,230,88,230,70,230,50,230,8,230,170,229,253,228,240,227,130,226,195,224,202,222,170,220,112,218,31,216,189,213, +85,211,252,208,204,206,217,204,46,203,203,201,170,200,198,199,34,199,199,198,196,198,35,199,238,199,36,201,193,202,186,204, +4,207,146,209,85,212,65,215,72,218,92,221,109,224,107,227,75,230,3,233,141,235,231,237,13,240,248,241,158,243,248,244, +5,246,206,246,102,247,221,247,66,248,156,248,237,248,54,249,124,249,205,249,59,250,215,250,178,251,219,252,91,254,53,0, +98,2,210,4,102,7,254,9,124,12,203,14,222,16,168,18,27,20,38,21,189,21,227,21,177,21,83,21,248,20,196,20, +197,20,245,20,73,21,185,21,77,22,14,23,1,24,22,25,44,26,26,27,193,27,20,28,26,28,228,27,129,27,250,26, +81,26,137,25,169,24,191,23,213,22,242,21,13,21,27,20,11,19,210,17,108,16,220,14,39,13,87,11,119,9,153,7, +207,5,44,4,195,2,158,1,198,0,65,0,17,0,53,0,163,0,75,1,19,2,225,2,157,3,53,4,162,4,227,4, +248,4,226,4,164,4,66,4,196,3,54,3,164,2,24,2,153,1,39,1,193,0,102,0,22,0,216,255,182,255,186,255, +241,255,96,0,9,1,232,1,245,2,43,4,132,5,252,6,144,8,58,10,242,11,175,13,104,15,20,17,170,18,29,20, +100,21,116,22,74,23,235,23,89,24,150,24,156,24,90,24,191,23,194,22,100,21,184,19,215,17,218,15,210,13,204,11, +212,9,252,7,87,6,251,4,241,3,50,3,166,2,47,2,176,1,21,1,84,0,107,255,88,254,25,253,170,251,13,250, +72,248,102,246,115,244,125,242,145,240,185,238,1,237,112,235,9,234,201,232,167,231,159,230,175,229,220,228,48,228,177,227, +94,227,52,227,44,227,70,227,133,227,238,227,137,228,85,229,75,230,98,231,141,232,193,233,246,234,37,236,77,237,110,238, +142,239,182,240,235,241,43,243,111,244,169,245,210,246,234,247,252,248,21,250,60,251,112,252,172,253,230,254,31,0,95,1, +180,2,39,4,186,5,100,7,24,9,204,10,121,12,28,14,174,15,31,17,93,18,85,19,1,20,100,20,138,20,129,20, +82,20,2,20,149,19,23,19,152,18,46,18,231,17,202,17,211,17,251,17,59,18,148,18,10,19,161,19,84,20,21,21, +212,21,128,22,15,23,129,23,218,23,27,24,66,24,72,24,39,24,217,23,95,23,189,22,247,21,18,21,16,20,247,18, +205,17,157,16,115,15,88,14,80,13,90,12,112,11,137,10,160,9,178,8,189,7,192,6,183,5,154,4,95,3,252,1, +107,0,166,254,176,252,137,250,59,248,207,245,83,243,214,240,100,238,5,236,186,233,127,231,82,229,48,227,30,225,36,223, +70,221,136,219,231,217,97,216,252,214,195,213,203,212,39,212,228,211,6,212,132,212,81,213,94,214,165,215,30,217,199,218, +152,220,134,222,135,224,143,226,150,228,151,230,137,232,104,234,44,236,208,237,86,239,194,240,30,242,110,243,182,244,244,245, +37,247,74,248,102,249,131,250,170,251,226,252,46,254,139,255,246,0,104,2,217,3,65,5,154,6,219,7,3,9,17,10, +11,11,245,11,211,12,161,13,89,14,240,14,93,15,153,15,162,15,118,15,18,15,115,14,152,13,133,12,67,11,228,9, +123,8,30,7,222,5,207,4,3,4,140,3,124,3,219,3,169,4,218,5,92,7,24,9,251,10,246,12,248,14,241,16, +206,18,125,20,243,21,49,23,67,24,62,25,53,26,56,27,74,28,105,29,141,30,176,31,201,32,212,33,201,34,159,35, +76,36,196,36,251,36,234,36,141,36,231,35,4,35,252,33,230,32,220,31,239,30,36,30,118,29,223,28,87,28,221,27, +114,27,23,27,201,26,128,26,48,26,211,25,99,25,223,24,73,24,158,23,215,22,241,21,233,20,192,19,126,18,39,17, +192,15,78,14,219,12,116,11,48,10,32,9,80,8,190,7,97,7,46,7,33,7,65,7,154,7,50,8,2,9,242,9, +227,10,182,11,90,12,205,12,25,13,70,13,90,13,81,13,34,13,202,12,74,12,173,11,1,11,79,10,158,9,236,8, +51,8,110,7,149,6,162,5,146,4,100,3,27,2,191,0,87,255,237,253,133,252,32,251,189,249,96,248,14,247,212,245, +189,244,211,243,24,243,138,242,32,242,211,241,158,241,122,241,97,241,76,241,50,241,12,241,211,240,130,240,19,240,129,239, +198,238,223,237,208,236,164,235,104,234,40,233,237,231,183,230,138,229,107,228,103,227,141,226,236,225,136,225,87,225,74,225, +77,225,85,225,92,225,98,225,103,225,95,225,56,225,222,224,64,224,88,223,46,222,208,220,85,219,211,217,95,216,11,215, +229,213,246,212,67,212,204,211,143,211,136,211,178,211,3,212,106,212,203,212,12,213,19,213,214,212,92,212,184,211,6,211, +94,210,206,209,96,209,25,209,1,209,34,209,138,209,60,210,54,211,102,212,184,213,21,215,104,216,167,217,206,218,223,219, +225,220,224,221,238,222,32,224,139,225,65,227,79,229,186,231,130,234,158,237,5,241,169,244,124,248,110,252,107,0,92,4, +41,8,189,11,11,15,18,18,217,20,113,23,237,25,89,28,191,30,35,33,135,35,239,37,93,40,203,42,46,45,116,47, +137,49,98,51,250,52,89,54,138,55,150,56,132,57,89,58,29,59,219,59,166,60,139,61,148,62,195,63,16,65,112,66, +216,67,63,69,153,70,216,71,241,72,220,73,154,74,52,75,184,75,44,76,149,76,238,76,51,77,100,77,136,77,166,77, +198,77,230,77,3,78,23,78,33,78,34,78,27,78,8,78,226,77,159,77,61,77,192,76,45,76,137,75,200,74,216,73, +159,72,14,71,34,69,232,66,111,64,193,61,223,58,198,55,117,52,247,48,100,45,210,41,83,38,232,34,136,31,34,28, +172,24,29,21,117,17,177,13,209,9,211,5,188,1,152,253,119,249,106,245,125,241,180,237,18,234,153,230,81,227,69,224, +126,221,253,218,187,216,172,214,196,212,249,210,72,209,181,207,70,206,5,205,249,203,45,203,167,202,107,202,123,202,214,202, +123,203,108,204,169,205,44,207,231,208,195,210,166,212,118,214,41,216,186,217,46,219,134,220,192,221,214,222,196,223,142,224, +63,225,229,225,135,226,31,227,156,227,232,227,239,227,168,227,19,227,52,226,17,225,172,223,7,222,43,220,40,218,23,216, +21,214,61,212,163,210,79,209,65,208,116,207,224,206,123,206,58,206,18,206,244,205,208,205,150,205,58,205,184,204,23,204, +102,203,190,202,57,202,244,201,2,202,116,202,82,203,158,204,83,206,107,208,215,210,135,213,103,216,99,219,101,222,90,225, +49,228,222,230,97,233,191,235,6,238,70,240,137,242,210,244,28,247,91,249,132,251,142,253,117,255,53,1,200,2,38,4, +72,5,43,6,210,6,70,7,149,7,202,7,241,7,22,8,75,8,161,8,43,9,245,9,253,10,53,12,137,13,229,14, +57,16,127,17,182,18,218,19,228,20,202,21,133,22,17,23,119,23,199,23,17,24,99,24,198,24,60,25,196,25,93,26, +6,27,186,27,116,28,46,29,223,29,136,30,43,31,209,31,134,32,81,33,55,34,61,35,105,36,199,37,101,39,80,41, +142,43,23,46,214,48,176,51,135,54,71,57,225,59,73,62,112,64,64,66,160,67,119,68,182,68,92,68,117,67,17,66, +69,64,35,62,189,59,43,57,136,54,245,51,142,49,98,47,118,45,193,43,55,42,206,40,131,39,86,38,67,37,68,36, +75,35,71,34,43,33,242,31,157,30,50,29,184,27,48,26,154,24,244,22,60,21,114,19,156,17,193,15,233,13,25,12, +79,10,133,8,174,6,187,4,163,2,97,0,252,253,124,251,238,248,87,246,186,243,23,241,112,238,206,235,60,233,201,230, +128,228,100,226,116,224,171,222,4,221,122,219,10,218,170,216,79,215,234,213,110,212,215,210,36,209,99,207,161,205,241,203, +100,202,5,201,221,199,241,198,68,198,215,197,171,197,189,197,13,198,154,198,96,199,90,200,129,201,208,202,63,204,203,205, +113,207,48,209,11,211,3,213,27,215,83,217,167,219,15,222,121,224,212,226,10,229,9,231,196,232,48,234,72,235,10,236, +119,236,149,236,113,236,27,236,168,235,45,235,187,234,96,234,37,234,17,234,35,234,93,234,187,234,58,235,209,235,121,236, +39,237,210,237,114,238,2,239,126,239,231,239,60,240,127,240,174,240,200,240,201,240,180,240,142,240,100,240,66,240,54,240, +74,240,131,240,234,240,130,241,83,242,99,243,183,244,76,246,26,248,21,250,47,252,90,254,136,0,173,2,188,4,169,6, +108,8,0,10,100,11,158,12,180,13,176,14,152,15,116,16,71,17,24,18,233,18,186,19,140,20,91,21,34,22,222,22, +141,23,48,24,203,24,101,25,8,26,184,26,121,27,73,28,33,29,251,29,209,30,161,31,104,32,35,33,198,33,70,34, +150,34,175,34,147,34,77,34,233,33,116,33,243,32,106,32,223,31,89,31,227,30,134,30,72,30,38,30,24,30,24,30, +37,30,67,30,119,30,198,30,43,31,159,31,25,32,147,32,11,33,130,33,241,33,80,34,142,34,153,34,99,34,229,33, +30,33,18,32,196,30,53,29,106,27,104,25,57,23,233,20,134,18,28,16,185,13,105,11,53,9,39,7,71,5,156,3, +42,2,249,0,12,0,101,255,0,255,210,254,200,254,205,254,205,254,181,254,121,254,17,254,120,253,172,252,174,251,132,250, +54,249,206,247,84,246,209,244,77,243,212,241,120,240,74,239,90,238,174,237,67,237,11,237,248,236,4,237,50,237,141,237, +36,238,3,239,47,240,164,241,87,243,58,245,59,247,73,249,76,251,45,253,208,254,29,0,252,0,92,1,50,1,124,0, +66,255,147,253,131,251,43,249,163,246,3,244,96,241,206,238,95,236,31,234,23,232,68,230,158,228,25,227,174,225,85,224, +18,223,233,221,226,220,1,220,75,219,192,218,100,218,53,218,51,218,90,218,163,218,255,218,96,219,177,219,226,219,230,219, +187,219,106,219,8,219,171,218,103,218,71,218,77,218,116,218,188,218,47,219,220,219,212,220,35,222,198,223,177,225,210,227, +27,230,133,232,13,235,180,237,114,240,63,243,15,246,214,248,140,251,40,254,159,0,225,2,223,4,139,6,224,7,223,8, +140,9,235,9,254,9,200,9,87,9,193,8,36,8,162,7,82,7,64,7,106,7,201,7,85,8,10,9,228,9,224,10, +246,11,27,13,67,14,102,15,125,16,130,17,113,18,70,19,254,19,157,20,43,21,180,21,60,22,196,22,71,23,187,23, +28,24,106,24,171,24,234,24,52,25,146,25,12,26,166,26,99,27,63,28,54,29,66,30,99,31,157,32,246,33,113,35, +12,37,181,38,90,40,226,41,60,43,91,44,54,45,192,45,228,45,143,45,180,44,81,43,117,41,53,39,171,36,233,33, +0,31,252,27,241,24,245,21,30,19,125,16,23,14,231,11,233,9,21,8,110,6,245,4,167,3,122,2,93,1,63,0, +24,255,234,253,193,252,174,251,190,250,249,249,100,249,2,249,217,248,239,248,73,249,227,249,175,250,151,251,122,252,57,253, +185,253,233,253,202,253,100,253,201,252,10,252,53,251,85,250,114,249,155,248,225,247,88,247,14,247,7,247,59,247,152,247, +9,248,124,248,227,248,48,249,84,249,64,249,229,248,59,248,71,247,23,246,194,244,93,243,252,241,173,240,131,239,141,238, +221,237,126,237,114,237,174,237,35,238,192,238,120,239,66,240,24,241,243,241,203,242,152,243,89,244,19,245,206,245,146,246, +104,247,82,248,83,249,111,250,170,251,6,253,128,254,14,0,167,1,69,3,231,4,148,6,82,8,31,10,239,11,177,13, +82,15,198,16,13,18,45,19,47,20,26,21,237,21,165,22,63,23,183,23,10,24,53,24,55,24,10,24,170,23,17,23, +55,22,20,21,160,19,215,17,187,15,79,13,156,10,166,7,112,4,251,0,76,253,111,249,121,245,131,241,168,237,1,234, +161,230,155,227,0,225,219,222,53,221,7,220,72,219,228,218,202,218,236,218,61,219,173,219,36,220,137,220,200,220,217,220, +199,220,169,220,152,220,167,220,220,220,54,221,184,221,105,222,85,223,130,224,235,225,121,227,9,229,127,230,203,231,239,232, +248,233,246,234,241,235,236,236,233,237,234,238,251,239,43,241,134,242,17,244,197,245,153,247,124,249,95,251,47,253,216,254, +67,0,93,1,24,2,114,2,115,2,39,2,160,1,237,0,27,0,57,255,84,254,119,253,169,252,236,251,64,251,163,250, +22,250,160,249,71,249,19,249,11,249,49,249,137,249,20,250,212,250,201,251,237,252,52,254,144,255,238,0,65,2,124,3, +153,4,153,5,129,6,93,7,61,8,50,9,72,10,139,11,0,13,174,14,152,16,194,18,39,21,183,23,87,26,228,28, +61,31,82,33,35,35,193,36,70,38,194,39,60,41,173,42,11,44,75,45,111,46,121,47,110,48,73,49,247,49,92,50, +88,50,208,49,181,48,9,47,218,44,65,42,90,39,66,36,17,33,228,29,215,26,12,24,166,21,195,19,117,18,188,17, +132,17,174,17,23,18,163,18,63,19,228,19,141,20,57,21,226,21,133,22,38,23,204,23,134,24,97,25,100,26,145,27, +221,28,55,30,139,31,187,32,168,33,50,34,57,34,171,33,128,32,190,30,114,28,173,25,128,22,2,19,76,15,133,11, +217,7,116,4,122,1,248,254,236,252,68,251,237,249,209,248,225,247,12,247,63,246,99,245,99,244,51,243,207,241,68,240, +163,238,255,236,100,235,219,233,107,232,28,231,249,229,15,229,102,228,2,228,225,227,250,227,67,228,176,228,51,229,187,229, +57,230,158,230,228,230,13,231,30,231,33,231,30,231,22,231,9,231,247,230,231,230,227,230,250,230,58,231,173,231,88,232, +63,233,98,234,190,235,71,237,229,238,120,240,219,241,236,242,148,243,203,243,145,243,237,242,226,241,118,240,181,238,177,236, +140,234,108,232,122,230,211,228,139,227,171,226,47,226,13,226,49,226,124,226,203,226,250,226,236,226,145,226,231,225,242,224, +182,223,58,222,136,220,182,218,234,216,80,215,16,214,67,213,232,212,239,212,67,213,215,213,165,214,175,215,238,216,79,218, +183,219,12,221,67,222,100,223,130,224,176,225,249,226,92,228,213,229,98,231,5,233,192,234,145,236,103,238,41,240,192,241, +27,243,53,244,17,245,175,245,17,246,54,246,36,246,237,245,171,245,124,245,116,245,158,245,253,245,147,246,102,247,129,248, +236,249,164,251,157,253,196,255,9,2,98,4,206,6,75,9,215,11,106,14,254,16,144,19,37,22,192,24,94,27,243,29, +112,32,196,34,233,36,230,38,196,40,139,42,59,44,210,45,76,47,174,48,4,50,90,51,180,52,15,54,98,55,165,56, +218,57,5,59,48,60,90,61,127,62,145,63,133,64,88,65,11,66,162,66,28,67,116,67,162,67,158,67,101,67,241,66, +63,66,68,65,248,63,85,62,91,60,21,58,142,55,208,52,229,49,214,46,175,43,130,40,98,37,95,34,128,31,192,28, +26,26,136,23,12,21,170,18,101,16,53,14,10,12,204,9,102,7,197,4,227,1,188,254,87,251,185,247,240,243,14,240, +41,236,91,232,189,228,103,225,114,222,241,219,246,217,141,216,188,215,129,215,213,215,176,216,4,218,195,219,215,221,39,224, +151,226,17,229,128,231,215,233,9,236,9,238,200,239,65,241,116,242,110,243,63,244,241,244,130,245,229,245,10,246,230,245, +121,245,200,244,208,243,136,242,223,240,205,238,92,236,172,233,233,230,55,228,172,225,70,223,1,221,227,218,3,217,131,215, +123,214,238,213,197,213,218,213,12,214,70,214,133,214,200,214,6,215,45,215,39,215,234,214,123,214,235,213,81,213,187,212, +47,212,173,211,57,211,224,210,178,210,182,210,233,210,62,211,162,211,10,212,118,212,237,212,116,213,12,214,178,214,97,215, +28,216,239,216,233,217,26,219,140,220,66,222,56,224,100,226,179,228,10,231,74,233,83,235,10,237,95,238,78,239,219,239, +13,240,239,239,146,239,14,239,130,238,15,238,211,237,231,237,89,238,53,239,128,240,59,242,86,244,180,246,44,249,146,251, +200,253,190,255,119,1,249,2,74,4,104,5,85,6,25,7,205,7,150,8,147,9,215,10,97,12,34,14,9,16,14,18, +45,20,105,22,187,24,22,27,100,29,144,31,138,33,77,35,221,36,65,38,134,39,186,40,233,41,28,43,84,44,133,45, +155,46,130,47,38,48,124,48,123,48,30,48,93,47,50,46,157,44,168,42,101,40,233,37,68,35,130,32,170,29,201,26, +242,23,58,21,177,18,96,16,71,14,101,12,194,10,106,9,113,8,224,7,181,7,223,7,76,8,234,8,175,9,147,10, +135,11,119,12,73,13,233,13,82,14,136,14,149,14,124,14,54,14,190,13,24,13,85,12,148,11,237,10,107,10,5,10, +166,9,65,9,210,8,104,8,15,8,198,7,126,7,29,7,149,6,233,5,50,5,145,4,32,4,235,3,237,3,29,4, +118,4,247,4,158,5,101,6,57,7,0,8,159,8,254,8,12,9,190,8,14,8,252,6,147,5,229,3,14,2,36,0, +58,254,90,252,141,250,221,248,90,247,21,246,21,245,80,244,174,243,12,243,77,242,90,241,37,240,163,238,198,236,129,234, +205,231,173,228,59,225,151,221,229,217,67,214,196,210,116,207,101,204,170,201,91,199,141,197,70,196,126,195,28,195,3,195, +23,195,67,195,128,195,206,195,51,196,183,196,94,197,39,198,17,199,28,200,79,201,182,202,99,204,99,206,187,208,94,211, +57,214,51,217,54,220,53,223,34,226,240,228,139,231,222,233,220,235,131,237,225,238,11,240,24,241,22,242,11,243,246,243, +219,244,197,245,195,246,234,247,71,249,224,250,177,252,178,254,217,0,28,3,112,5,202,7,27,10,83,12,93,14,38,16, +159,17,186,18,114,19,205,19,211,19,150,19,42,19,167,18,36,18,186,17,129,17,142,17,241,17,176,18,200,19,51,21, +229,22,208,24,232,26,26,29,80,31,119,33,122,35,78,37,238,38,90,40,149,41,160,42,125,43,47,44,191,44,54,45, +153,45,230,45,18,46,14,46,204,45,67,45,116,44,93,43,249,41,64,40,42,38,185,35,253,32,18,30,22,27,35,24, +70,21,128,18,205,15,43,13,152,10,21,8,153,5,23,3,121,0,172,253,167,250,108,247,7,244,138,240,9,237,152,233, +73,230,50,227,103,224,249,221,245,219,95,218,51,217,107,216,252,215,223,215,8,216,110,216,5,217,193,217,157,218,147,219, +166,220,216,221,50,223,187,224,121,226,109,228,152,230,244,232,120,235,24,238,195,240,99,243,222,245,23,248,247,249,108,251, +111,252,5,253,55,253,17,253,157,252,233,251,8,251,21,250,49,249,124,248,11,248,230,247,12,248,117,248,29,249,3,250, +35,251,111,252,206,253,32,255,69,0,44,1,205,1,43,2,72,2,31,2,175,1,249,0,16,0,23,255,48,254,120,253, +248,252,167,252,119,252,95,252,94,252,125,252,194,252,36,253,146,253,242,253,48,254,68,254,49,254,0,254,188,253,108,253, +26,253,209,252,164,252,165,252,228,252,105,253,48,254,49,255,95,0,173,1,13,3,110,4,188,5,227,6,207,7,118,8, +214,8,242,8,215,8,146,8,52,8,203,7,100,7,11,7,200,6,160,6,151,6,171,6,212,6,1,7,24,7,252,6, +149,6,213,5,185,4,74,3,144,1,148,255,95,253,253,250,137,248,39,246,6,244,80,242,34,241,137,240,127,240,251,240, +242,241,86,243,23,245,28,247,72,249,122,251,156,253,162,255,142,1,106,3,66,5,32,7,12,9,14,11,47,13,118,15, +228,17,113,20,11,23,157,25,21,28,94,30,101,32,19,34,81,35,8,36,42,36,185,35,194,34,96,33,175,31,201,29, +199,27,190,25,194,23,232,21,60,20,197,18,128,17,102,16,109,15,140,14,187,13,243,12,45,12,96,11,134,10,156,9, +163,8,156,7,132,6,88,5,20,4,179,2,56,1,169,255,12,254,105,252,196,250,36,249,143,247,13,246,167,244,98,243, +64,242,64,241,98,240,166,239,17,239,165,238,99,238,71,238,73,238,95,238,133,238,182,238,243,238,59,239,140,239,227,239, +57,240,137,240,202,240,245,240,5,241,242,240,186,240,88,240,200,239,0,239,248,237,170,236,22,235,75,233,95,231,108,229, +137,227,196,225,36,224,175,222,109,221,102,220,165,219,42,219,235,218,209,218,192,218,158,218,90,218,233,217,71,217,118,216, +124,215,103,214,77,213,74,212,120,211,240,210,190,210,235,210,119,211,100,212,176,213,85,215,74,217,125,219,223,221,99,224, +2,227,188,229,141,232,114,235,100,238,94,241,97,244,117,247,168,250,4,254,142,1,61,5,255,8,190,12,97,16,209,19, +248,22,199,25,49,28,48,30,199,31,251,32,216,33,103,34,178,34,195,34,164,34,99,34,11,34,173,33,86,33,16,33, +228,32,218,32,240,32,33,33,96,33,157,33,195,33,192,33,129,33,247,32,21,32,213,30,61,29,93,27,85,25,70,23, +78,21,129,19,234,17,142,16,118,15,180,14,92,14,125,14,28,15,46,16,160,17,89,19,69,21,81,23,107,25,127,27, +120,29,72,31,237,32,113,34,235,35,111,37,6,39,176,40,97,42,17,44,184,45,85,47,226,48,81,50,139,51,120,52, +254,52,14,53,158,52,169,51,43,50,34,48,150,45,155,42,80,39,219,35,98,32,2,29,208,25,219,22,44,20,205,17, +188,15,238,13,74,12,170,10,234,8,236,6,160,4,0,2,13,255,199,251,49,248,73,244,21,240,156,235,239,230,33,226, +78,221,145,216,11,212,220,207,31,204,228,200,49,198,1,196,70,194,245,192,2,192,99,191,13,191,246,190,17,191,84,191, +185,191,64,192,235,192,188,193,178,194,207,195,22,197,144,198,75,200,89,202,194,204,134,207,149,210,207,213,11,217,27,220, +211,222,13,225,171,226,156,227,217,227,105,227,90,226,198,224,207,222,155,220,84,218,31,216,29,214,103,212,11,211,17,210, +118,209,53,209,65,209,136,209,243,209,109,210,224,210,64,211,135,211,183,211,218,211,252,211,49,212,142,212,42,213,26,214, +110,215,47,217,95,219,252,221,1,225,102,228,31,232,22,236,49,240,80,244,95,248,85,252,53,0,10,4,216,7,149,11, +50,15,155,18,203,21,203,24,177,27,143,30,107,33,54,36,213,38,50,41,69,43,20,45,176,46,32,48,93,49,80,50, +223,50,251,50,163,50,236,49,238,48,192,47,112,46,10,45,153,43,51,42,243,40,241,39,62,39,218,38,184,38,198,38, +240,38,42,39,105,39,167,39,220,39,0,40,13,40,3,40,230,39,193,39,160,39,143,39,147,39,176,39,226,39,34,40, +104,40,172,40,230,40,19,41,50,41,65,41,59,41,29,41,226,40,138,40,27,40,161,39,39,39,183,38,83,38,249,37, +163,37,74,37,229,36,104,36,193,35,216,34,151,33,241,31,233,29,146,27,10,25,110,22,207,19,50,17,146,14,234,11, +62,9,153,6,8,4,146,1,51,255,223,252,131,250,21,248,146,245,255,242,99,240,192,237,20,235,93,232,162,229,242,226, +104,224,35,222,60,220,198,218,200,217,65,217,44,217,130,217,57,218,67,219,143,220,13,222,177,223,115,225,78,227,64,229, +66,231,72,233,69,235,42,237,241,238,149,240,22,242,110,243,150,244,128,245,30,246,102,246,87,246,247,245,79,245,104,244, +73,243,246,241,118,240,209,238,22,237,88,235,163,233,253,231,98,230,198,228,25,227,79,225,102,223,101,221,87,219,76,217, +79,215,104,213,161,211,8,210,174,208,164,207,244,206,155,206,134,206,155,206,191,206,227,206,4,207,44,207,107,207,202,207, +78,208,247,208,203,209,211,210,33,212,198,213,204,215,49,218,236,220,231,223,16,227,79,230,144,233,190,236,200,239,159,242, +68,245,192,247,35,250,126,252,219,254,59,1,152,3,236,5,57,8,132,10,209,12,29,15,92,17,122,19,102,21,22,23, +139,24,211,25,250,26,12,28,9,29,243,29,200,30,141,31,77,32,23,33,244,33,234,34,247,35,16,37,41,38,52,39, +34,40,234,40,134,41,245,41,58,42,92,42,95,42,71,42,21,42,201,41,97,41,221,40,61,40,127,39,163,38,171,37, +160,36,142,35,135,34,157,33,221,32,81,32,254,31,233,31,25,32,149,32,97,33,121,34,210,35,87,37,242,38,143,40, +27,42,135,43,191,44,171,45,52,46,73,46,232,45,31,45,7,44,184,42,65,41,163,39,210,37,192,35,100,33,189,30, +212,27,178,24,90,21,208,17,19,14,44,10,45,6,49,2,82,254,167,250,59,247,22,244,62,241,188,238,162,236,253,234, +217,233,49,233,246,232,18,233,112,233,253,233,175,234,126,235,102,236,95,237,100,238,113,239,134,240,163,241,196,242,221,243, +220,244,170,245,53,246,112,246,87,246,237,245,55,245,64,244,23,243,207,241,133,240,87,239,99,238,190,237,111,237,112,237, +181,237,39,238,178,238,63,239,182,239,254,239,254,239,160,239,211,238,146,237,226,235,213,233,136,231,34,229,206,226,181,224, +249,222,174,221,217,220,114,220,99,220,151,220,247,220,114,221,253,221,145,222,45,223,213,223,145,224,110,225,120,226,185,227, +58,229,253,230,4,233,78,235,214,237,146,240,109,243,74,246,1,249,105,251,93,253,195,254,142,255,189,255,93,255,128,254, +68,253,203,251,59,250,189,248,111,247,101,246,164,245,44,245,246,244,1,245,83,245,243,245,227,246,25,248,128,249,249,250, +104,252,187,253,234,254,249,255,238,0,207,1,157,2,89,3,7,4,174,4,81,5,239,5,122,6,220,6,253,6,206,6, +78,6,139,5,158,4,158,3,162,2,190,1,6,1,153,0,150,0,30,1,65,2,1,4,78,6,14,9,38,12,130,15, +20,19,203,22,148,26,80,30,225,33,44,37,32,40,182,42,239,44,206,46,82,48,124,49,72,50,181,50,189,50,88,50, +118,49,7,48,255,45,91,43,42,40,130,36,130,32,69,28,232,23,139,19,82,15,105,11,250,7,38,5,252,2,119,1, +129,0,0,0,216,255,239,255,37,0,83,0,79,0,241,255,34,255,221,253,51,252,68,250,49,248,26,246,25,244,72,242, +189,240,138,239,181,238,51,238,233,237,183,237,125,237,42,237,181,236,29,236,96,235,119,234,94,233,27,232,195,230,120,229, +96,228,150,227,39,227,15,227,66,227,178,227,86,228,35,229,9,230,236,230,172,231,43,232,86,232,48,232,203,231,70,231, +193,230,90,230,41,230,68,230,187,230,154,231,225,232,129,234,99,236,104,238,111,240,96,242,40,244,184,245,4,247,5,248, +182,248,31,249,80,249,100,249,118,249,156,249,228,249,82,250,227,250,149,251,104,252,94,253,116,254,167,255,236,0,56,2, +129,3,196,4,8,6,88,7,196,8,91,10,40,12,52,14,127,16,5,19,191,21,159,24,148,27,139,30,116,33,66,36, +231,38,88,41,136,43,105,45,241,46,26,48,227,48,83,49,112,49,64,49,200,48,11,48,16,47,223,45,134,44,19,43, +151,41,29,40,181,38,107,37,79,36,109,35,208,34,123,34,107,34,153,34,248,34,124,35,21,36,175,36,47,37,120,37, +105,37,231,36,224,35,77,34,54,32,173,29,213,26,215,23,224,20,30,18,180,15,185,13,54,12,43,11,141,10,80,10, +95,10,159,10,237,10,33,11,24,11,184,10,246,9,216,8,109,7,205,5,15,4,83,2,182,0,91,255,94,254,207,253, +171,253,221,253,65,254,176,254,3,255,26,255,217,254,39,254,237,252,31,251,188,248,216,245,150,242,38,239,183,235,114,232, +119,229,223,226,183,224,8,223,212,221,17,221,171,220,136,220,133,220,130,220,98,220,17,220,129,219,178,218,169,217,122,216, +59,215,6,214,242,212,14,212,98,211,235,210,162,210,123,210,110,210,113,210,127,210,146,210,166,210,183,210,193,210,198,210, +204,210,223,210,14,211,105,211,254,211,210,212,227,213,42,215,157,216,50,218,225,219,162,221,109,223,55,225,243,226,151,228, +23,230,113,231,165,232,186,233,185,234,173,235,161,236,159,237,177,238,221,239,42,241,153,242,42,244,217,245,162,247,132,249, +132,251,165,253,236,255,85,2,210,4,76,7,171,9,218,11,210,13,151,15,52,17,181,18,32,20,120,21,185,22,231,23, +11,25,50,26,104,27,182,28,31,30,162,31,63,33,250,34,217,36,223,38,11,41,89,43,187,45,40,48,147,50,243,52, +64,55,113,57,127,59,102,61,40,63,198,64,61,66,137,67,160,68,121,69,18,70,105,70,128,70,78,70,197,69,206,68, +90,67,100,65,253,62,65,60,81,57,76,54,70,51,80,48,124,45,228,42,161,40,204,38,111,37,134,36,3,36,208,35, +216,35,6,36,68,36,118,36,128,36,67,36,174,35,186,34,108,33,212,31,6,30,22,28,24,26,31,24,61,22,124,20, +228,18,114,17,29,16,218,14,156,13,89,12,6,11,159,9,33,8,145,6,250,4,106,3,242,1,163,0,142,255,194,254, +80,254,68,254,161,254,92,255,92,0,125,1,150,2,133,3,48,4,137,4,134,4,37,4,102,3,82,2,245,0,97,255, +167,253,210,251,232,249,232,247,210,245,172,243,126,241,85,239,59,237,56,235,82,233,139,231,229,229,94,228,244,226,161,225, +95,224,46,223,16,222,8,221,22,220,55,219,101,218,154,217,212,216,23,216,100,215,181,214,252,213,40,213,47,212,23,211, +245,209,230,208,3,208,90,207,232,206,166,206,137,206,140,206,174,206,236,206,64,207,161,207,9,208,122,208,253,208,155,209, +92,210,61,211,56,212,70,213,103,214,160,215,244,216,99,218,228,219,104,221,225,222,67,224,138,225,179,226,188,227,168,228, +125,229,70,230,22,231,252,231,6,233,63,234,171,235,80,237,53,239,91,241,188,243,74,246,239,248,148,251,39,254,157,0, +240,2,28,5,30,7,246,8,171,10,75,12,231,13,138,15,54,17,229,18,145,20,54,22,218,23,130,25,43,27,201,28, +73,30,156,31,191,32,190,33,169,34,135,35,86,36,9,37,150,37,2,38,94,38,191,38,45,39,158,39,251,39,47,40, +47,40,6,40,194,39,111,39,9,39,132,38,211,37,244,36,242,35,225,34,207,33,195,32,184,31,172,30,159,29,159,28, +185,27,250,26,106,26,8,26,209,25,192,25,205,25,238,25,19,26,50,26,70,26,79,26,81,26,72,26,42,26,236,25, +136,25,10,25,140,24,46,24,4,24,18,24,77,24,170,24,38,25,200,25,152,26,144,27,150,28,132,29,55,30,157,30, +187,30,164,30,102,30,10,30,142,29,243,28,69,28,150,27,247,26,103,26,211,25,27,25,36,24,224,22,82,21,131,19, +121,17,52,15,184,12,16,10,86,7,168,4,33,2,208,255,184,253,217,251,64,250,0,249,49,248,218,247,238,247,75,248, +203,248,77,249,191,249,23,250,76,250,82,250,32,250,185,249,46,249,159,248,40,248,217,247,172,247,145,247,118,247,83,247, +40,247,247,246,185,246,98,246,223,245,41,245,65,244,46,243,247,241,149,240,254,238,36,237,8,235,183,232,68,230,193,227, +55,225,168,222,22,220,138,217,23,215,206,212,185,210,213,208,21,207,111,205,225,203,117,202,54,201,44,200,82,199,160,198, +8,198,133,197,28,197,211,196,183,196,209,196,44,197,209,197,207,198,44,200,239,201,21,204,151,206,110,209,149,212,6,216, +183,219,150,223,141,227,132,231,110,235,71,239,19,243,217,246,155,250,86,254,5,2,163,5,47,9,170,12,20,16,103,19, +150,22,148,25,83,28,202,30,246,32,214,34,112,36,203,37,237,38,222,39,158,40,47,41,141,41,184,41,177,41,124,41, +27,41,138,40,191,39,175,38,86,37,193,35,7,34,75,32,167,30,48,29,236,27,218,26,246,25,65,25,186,24,97,24, +48,24,30,24,36,24,60,24,100,24,156,24,229,24,62,25,169,25,45,26,210,26,159,27,151,28,184,29,254,30,100,32, +234,33,144,35,80,37,26,39,216,40,113,42,213,43,254,44,238,45,166,46,33,47,82,47,48,47,190,46,9,46,35,45, +24,44,230,42,123,41,192,39,167,37,48,35,104,32,92,29,20,26,139,22,187,18,161,14,74,10,207,5,79,1,228,252, +163,248,151,244,202,240,74,237,36,234,100,231,15,229,38,227,163,225,123,224,167,223,31,223,218,222,204,222,236,222,44,223, +130,223,231,223,88,224,217,224,113,225,46,226,30,227,76,228,188,229,108,231,86,233,119,235,204,237,82,240,255,242,195,245, +129,248,31,251,139,253,190,255,189,1,144,3,59,5,189,6,16,8,50,9,39,10,245,10,161,11,43,12,141,12,192,12, +193,12,148,12,59,12,183,11,2,11,16,10,221,8,109,7,202,5,4,4,36,2,45,0,27,254,245,251,200,249,171,247, +186,245,5,244,147,242,96,241,103,240,170,239,47,239,253,238,21,239,112,239,4,240,200,240,187,241,224,242,57,244,196,245, +119,247,62,249,8,251,194,252,91,254,196,255,241,0,214,1,113,2,195,2,209,2,160,2,51,2,138,1,170,0,155,255, +105,254,35,253,207,251,111,250,2,249,139,247,22,246,179,244,110,243,72,242,56,241,44,240,27,239,7,238,252,236,7,236, +41,235,86,234,120,233,123,232,91,231,35,230,231,228,189,227,179,226,208,225,22,225,142,224,69,224,77,224,180,224,129,225, +170,226,29,228,192,229,118,231,41,233,200,234,78,236,190,237,31,239,125,240,220,241,67,243,183,244,64,246,239,247,212,249, +251,251,100,254,4,1,201,3,157,6,105,9,18,12,121,14,121,16,237,17,187,18,220,18,95,18,93,17,244,15,56,14, +57,12,2,10,166,7,63,5,232,2,179,0,165,254,184,252,230,250,48,249,164,247,83,246,75,245,141,244,17,244,203,243, +180,243,205,243,28,244,161,244,84,245,40,246,14,247,4,248,18,249,69,250,169,251,68,253,17,255,7,1,28,3,73,5, +134,7,202,9,6,12,44,14,47,16,9,18,188,19,78,21,199,22,46,24,142,25,239,26,88,28,206,29,77,31,207,32, +73,34,176,35,247,36,23,38,2,39,173,39,13,40,27,40,216,39,71,39,113,38,92,37,15,36,150,34,1,33,104,31, +223,29,114,28,34,27,228,25,168,24,100,23,21,22,191,20,104,19,22,18,201,16,132,15,78,14,51,13,66,12,131,11, +253,10,171,10,138,10,150,10,202,10,31,11,136,11,243,11,72,12,115,12,100,12,20,12,130,11,180,10,187,9,174,8, +173,7,215,6,65,6,248,5,250,5,69,6,218,6,192,7,254,8,148,10,112,12,111,14,107,16,65,18,220,19,47,21, +44,22,190,22,203,22,62,22,18,21,96,19,79,17,17,15,203,12,149,10,118,8,113,6,137,4,194,2,25,1,132,255, +238,253,70,252,131,250,174,248,216,246,24,245,125,243,16,242,214,240,216,239,36,239,206,238,227,238,105,239,86,240,153,241, +29,243,202,244,138,246,69,248,230,249,91,251,154,252,166,253,138,254,82,255,7,0,170,0,50,1,147,1,190,1,161,1, +46,1,87,0,18,255,96,253,77,251,237,248,89,246,172,243,1,241,115,238,32,236,40,234,166,232,170,231,48,231,37,231, +103,231,205,231,48,232,104,232,81,232,201,231,184,230,19,229,228,226,73,224,111,221,136,218,197,215,79,213,71,211,199,209, +221,208,135,208,176,208,48,209,212,209,103,210,192,210,199,210,116,210,212,209,250,208,6,208,24,207,82,206,210,205,172,205, +233,205,136,206,131,207,211,208,111,210,69,212,63,214,57,216,13,218,151,219,198,220,154,221,38,222,136,222,223,222,74,223, +227,223,189,224,235,225,115,227,84,229,126,231,216,233,69,236,170,238,242,240,16,243,248,244,165,246,19,248,69,249,66,250, +22,251,210,251,127,252,38,253,201,253,106,254,14,255,188,255,123,0,82,1,65,2,69,3,89,4,124,5,174,6,242,7, +78,9,199,10,96,12,27,14,248,15,246,17,17,20,65,22,122,24,173,26,209,28,224,30,220,32,207,34,192,36,182,38, +177,40,171,42,158,44,131,46,87,48,25,50,200,51,97,53,225,54,71,56,150,57,214,58,16,60,74,61,133,62,190,63, +239,64,19,66,43,67,59,68,71,69,77,70,68,71,32,72,210,72,81,73,148,73,145,73,59,73,132,72,95,71,197,69, +192,67,98,65,194,62,247,59,14,57,12,54,245,50,208,47,164,44,124,41,90,38,61,35,27,32,236,28,170,25,90,22, +0,19,165,15,77,12,255,8,196,5,169,2,187,255,6,253,141,250,74,248,54,246,70,244,120,242,200,240,45,239,150,237, +232,235,12,234,245,231,168,229,64,227,221,224,160,222,164,220,252,218,188,217,250,216,208,216,78,217,121,218,63,220,124,222, +3,225,166,227,61,230,171,232,212,234,159,236,246,237,203,238,28,239,245,238,109,238,163,237,181,236,189,235,207,234,250,233, +71,233,183,232,67,232,223,231,122,231,255,230,93,230,135,229,117,228,40,227,165,225,249,223,53,222,107,220,172,218,3,217, +123,215,24,214,222,212,208,211,233,210,32,210,102,209,172,208,232,207,23,207,68,206,126,205,210,204,77,204,239,203,183,203, +158,203,163,203,196,203,5,204,105,204,246,204,178,205,160,206,195,207,28,209,167,210,99,212,79,214,113,216,210,218,128,221, +128,224,208,227,94,231,14,235,184,238,52,242,88,245,4,248,28,250,148,251,104,252,162,252,86,252,163,251,171,250,148,249, +132,248,158,247,1,247,190,246,223,246,92,247,40,248,47,249,96,250,171,251,3,253,93,254,172,255,231,0,9,2,22,3, +28,4,47,5,105,6,221,7,154,9,162,11,238,13,108,16,5,19,156,21,20,24,81,26,64,28,210,29,5,31,221,31, +102,32,178,32,215,32,236,32,7,33,61,33,158,33,51,34,3,35,12,36,75,37,184,38,69,40,227,41,127,43,5,45, +99,46,138,47,110,48,8,49,83,49,79,49,253,48,100,48,141,47,134,46,88,45,13,44,165,42,29,41,110,39,147,37, +143,35,107,33,59,31,20,29,13,27,54,25,153,23,62,22,43,21,102,20,242,19,206,19,237,19,62,20,168,20,24,21, +129,21,224,21,51,22,122,22,173,22,196,22,184,22,138,22,67,22,243,21,165,21,94,21,27,21,212,20,129,20,29,20, +163,19,16,19,91,18,122,17,99,16,16,15,127,13,176,11,163,9,85,7,198,4,248,1,247,254,214,251,175,248,150,245, +157,242,206,239,47,237,196,234,146,232,154,230,224,228,102,227,46,226,61,225,154,224,70,224,63,224,120,224,226,224,106,225, +3,226,162,226,64,227,209,227,67,228,131,228,131,228,64,228,196,227,34,227,109,226,179,225,250,224,67,224,143,223,220,222, +44,222,122,221,189,220,228,219,227,218,175,217,75,216,190,214,27,213,118,211,232,209,142,208,137,207,246,206,238,206,125,207, +159,208,67,210,75,212,150,214,1,217,104,219,167,221,156,223,39,225,48,226,167,226,138,226,229,225,203,224,91,223,186,221, +12,220,117,218,20,217,255,215,67,215,232,214,240,214,92,215,45,216,94,217,233,218,196,220,225,222,55,225,189,227,110,230, +69,233,59,236,70,239,87,242,96,245,83,248,37,251,205,253,71,0,141,2,157,4,124,6,50,8,206,9,94,11,237,12, +122,14,251,15,95,17,144,18,127,19,33,20,112,20,104,20,10,20,91,19,104,18,77,17,48,16,58,15,148,14,89,14, +153,14,84,15,130,16,23,18,251,19,17,22,51,24,52,26,235,27,57,29,14,30,107,30,93,30,247,29,86,29,152,28, +230,27,105,27,73,27,160,27,117,28,189,29,95,31,56,33,35,35,248,36,143,38,189,39,94,40,95,40,193,39,159,38, +33,37,120,35,206,33,70,32,255,30,17,30,148,29,147,29,10,30,224,30,233,31,241,32,199,33,72,34,94,34,2,34, +54,33,6,32,128,30,193,28,235,26,35,25,145,23,85,22,134,21,53,21,106,21,37,22,89,23,239,24,196,26,175,28, +134,30,36,32,110,33,81,34,192,34,182,34,48,34,44,33,171,31,175,29,59,27,88,24,24,21,153,17,0,14,115,10, +15,7,225,3,229,0,12,254,71,251,140,248,223,245,77,243,227,240,171,238,169,236,215,234,45,233,160,231,43,230,199,228, +117,227,57,226,27,225,38,224,104,223,237,222,186,222,202,222,11,223,94,223,162,223,181,223,128,223,252,222,44,222,32,221, +234,219,152,218,56,217,215,215,134,214,92,213,112,212,217,211,169,211,234,211,165,212,227,213,171,215,255,217,216,220,30,224, +176,227,99,231,16,235,148,238,214,241,193,244,68,247,84,249,233,250,3,252,165,252,211,252,140,252,208,251,162,250,13,249, +44,247,34,245,19,243,26,241,70,239,155,237,27,236,200,234,168,233,188,232,0,232,107,231,244,230,154,230,104,230,112,230, +189,230,78,231,15,232,224,232,164,233,71,234,200,234,51,235,153,235,7,236,133,236,17,237,165,237,57,238,195,238,61,239, +160,239,233,239,26,240,59,240,87,240,124,240,188,240,47,241,240,241,24,243,190,244,237,246,157,249,186,252,36,0,183,3, +77,7,192,10,237,13,179,16,245,18,156,20,155,21,235,21,145,21,152,20,22,19,48,17,23,15,2,13,36,11,162,9, +142,8,230,7,160,7,172,7,248,7,118,8,19,9,188,9,94,10,238,10,106,11,218,11,77,12,205,12,102,13,36,14, +23,15,81,16,227,17,215,19,33,22,169,24,73,27,222,29,73,32,117,34,83,36,216,37,247,38,171,39,250,39,247,39, +191,39,115,39,52,39,29,39,66,39,177,39,109,40,113,41,172,42,3,44,90,45,152,46,169,47,126,48,11,49,64,49, +16,49,120,48,130,47,72,46,239,44,151,43,90,42,64,41,79,40,135,39,234,38,122,38,47,38,243,37,164,37,34,37, +80,36,36,35,157,33,193,31,149,29,25,27,82,24,72,21,20,18,211,14,161,11,143,8,158,5,198,2,253,255,62,253, +144,250,253,247,141,245,62,243,7,241,226,238,209,236,229,234,52,233,215,231,214,230,47,230,207,229,161,229,152,229,174,229, +230,229,63,230,173,230,27,231,109,231,144,231,123,231,49,231,187,230,32,230,98,229,126,228,116,227,71,226,3,225,179,223, +97,222,16,221,192,219,119,218,68,217,60,216,120,215,9,215,244,214,55,215,204,215,178,216,234,217,116,219,73,221,92,223, +152,225,234,227,65,230,143,232,198,234,213,236,166,238,43,240,92,241,65,242,234,242,108,243,213,243,49,244,141,244,245,244, +122,245,44,246,18,247,39,248,91,249,156,250,219,251,22,253,75,254,124,255,162,0,179,1,163,2,109,3,13,4,129,4, +197,4,208,4,160,4,53,4,152,3,211,2,233,1,208,0,115,255,192,253,176,251,80,249,187,246,11,244,80,241,141,238, +196,235,255,232,90,230,255,227,25,226,197,224,12,224,229,223,66,224,22,225,91,226,12,228,30,230,126,232,14,235,174,237, +66,240,177,242,228,244,199,246,71,248,89,249,2,250,81,250,100,250,91,250,81,250,86,250,113,250,166,250,245,250,100,251, +248,251,188,252,185,253,247,254,126,0,78,2,102,4,192,6,87,9,37,12,38,15,85,18,169,21,20,25,135,28,241,31, +67,35,106,38,82,41,227,43,254,45,140,47,125,48,211,48,160,48,250,47,244,46,153,45,236,43,241,41,183,39,81,37, +214,34,89,32,227,29,121,27,32,25,234,22,240,20,77,19,21,18,76,17,230,16,210,16,2,17,111,17,26,18,252,18, +6,20,31,21,40,22,10,23,186,23,57,24,142,24,192,24,209,24,189,24,127,24,24,24,138,23,219,22,14,22,42,21, +53,20,57,19,64,18,89,17,139,16,220,15,75,15,213,14,123,14,61,14,30,14,27,14,44,14,70,14,92,14,101,14, +96,14,78,14,48,14,5,14,197,13,104,13,232,12,68,12,131,11,173,10,205,9,234,8,7,8,42,7,87,6,150,5, +239,4,99,4,242,3,153,3,89,3,55,3,57,3,104,3,195,3,63,4,203,4,79,5,178,5,224,5,200,5,91,5, +140,4,79,3,160,1,130,255,5,253,66,250,85,247,94,244,122,241,197,238,87,236,65,234,142,232,62,231,78,230,187,229, +135,229,181,229,69,230,46,231,86,232,152,233,208,234,230,235,215,236,175,237,131,238,98,239,77,240,60,241,32,242,237,242, +155,243,36,244,129,244,164,244,129,244,20,244,99,243,125,242,116,241,84,240,39,239,241,237,191,236,165,235,188,234,28,234, +213,233,234,233,89,234,27,235,46,236,141,237,49,239,6,241,240,242,210,244,145,246,32,248,126,249,172,250,171,251,124,252, +29,253,144,253,220,253,4,254,6,254,219,253,118,253,205,252,224,251,188,250,115,249,23,248,176,246,62,245,191,243,51,242, +163,240,30,239,184,237,129,236,132,235,197,234,72,234,10,234,9,234,62,234,156,234,23,235,162,235,55,236,208,236,111,237, +18,238,187,238,109,239,43,240,252,240,227,241,228,242,255,243,55,245,144,246,17,248,189,249,147,251,138,253,144,255,142,1, +112,3,41,5,177,6,8,8,43,9,21,10,194,10,47,11,95,11,89,11,34,11,191,10,50,10,121,9,145,8,120,7, +43,6,172,4,0,3,52,1,85,255,115,253,156,251,220,249,57,248,187,246,105,245,84,244,143,243,41,243,43,243,144,243, +77,244,80,245,139,246,244,247,134,249,58,251,6,253,218,254,169,0,104,2,19,4,170,5,46,7,160,8,253,9,67,11, +108,12,116,13,87,14,14,15,151,15,244,15,42,16,66,16,71,16,68,16,67,16,75,16,99,16,150,16,238,16,118,17, +48,18,23,19,33,20,65,21,109,22,159,23,208,24,251,25,24,27,29,28,3,29,196,29,94,30,208,30,29,31,73,31, +87,31,78,31,51,31,12,31,219,30,159,30,84,30,249,29,144,29,34,29,184,28,93,28,23,28,233,27,211,27,207,27, +218,27,235,27,250,27,255,27,243,27,202,27,121,27,240,26,36,26,9,25,158,23,237,21,10,20,14,18,12,16,17,14, +29,12,44,10,60,8,77,6,103,4,148,2,220,0,65,255,191,253,80,252,237,250,146,249,59,248,230,246,140,245,43,244, +193,242,79,241,220,239,109,238,8,237,176,235,102,234,41,233,249,231,214,230,198,229,215,228,23,228,151,227,99,227,123,227, +217,227,106,228,22,229,196,229,98,230,229,230,71,231,138,231,179,231,204,231,232,231,24,232,110,232,247,232,185,233,181,234, +238,235,98,237,15,239,237,240,232,242,230,244,197,246,106,248,192,249,192,250,107,251,199,251,215,251,160,251,37,251,115,250, +156,249,184,248,217,247,17,247,99,246,204,245,69,245,192,244,54,244,156,243,240,242,48,242,97,241,137,240,173,239,210,238, +251,237,43,237,106,236,194,235,64,235,236,234,200,234,212,234,11,235,103,235,232,235,140,236,88,237,79,238,120,239,216,240, +119,242,88,244,117,246,183,248,249,250,17,253,220,254,70,0,73,1,234,1,44,2,14,2,137,1,154,0,74,255,175,253, +239,251,51,250,163,248,91,247,109,246,224,245,181,245,228,245,97,246,18,247,219,247,159,248,67,249,180,249,233,249,222,249, +159,249,63,249,217,248,137,248,107,248,143,248,252,248,175,249,166,250,221,251,81,253,248,254,192,0,136,2,42,4,131,5, +124,6,19,7,84,7,87,7,58,7,21,7,0,7,12,7,73,7,194,7,125,8,123,9,185,10,51,12,229,13,199,15, +203,17,222,19,228,21,196,23,106,25,202,26,234,27,216,28,170,29,122,30,95,31,103,32,152,33,240,34,101,36,236,37, +123,39,10,41,149,42,20,44,122,45,177,46,165,47,71,48,154,48,173,48,150,48,104,48,47,48,238,47,167,47,91,47, +16,47,206,46,146,46,80,46,239,45,86,45,107,44,33,43,111,41,79,39,186,36,166,33,13,30,244,25,106,21,141,16, +130,11,113,6,129,1,216,252,150,248,219,244,184,241,51,239,64,237,199,235,177,234,233,233,96,233,10,233,217,232,185,232, +148,232,88,232,254,231,142,231,32,231,208,230,179,230,211,230,45,231,179,231,84,232,255,232,163,233,45,234,141,234,182,234, +162,234,84,234,217,233,71,233,184,232,68,232,253,231,238,231,32,232,158,232,113,233,161,234,45,236,7,238,23,240,64,242, +98,244,102,246,63,248,231,249,91,251,153,252,152,253,80,254,188,254,222,254,189,254,98,254,212,253,24,253,45,252,18,251, +195,249,64,248,138,246,165,244,156,242,131,240,114,238,138,236,228,234,149,233,162,232,13,232,212,231,248,231,123,232,90,233, +139,234,244,235,110,237,210,238,251,239,217,240,106,241,187,241,225,241,241,241,255,241,24,242,72,242,147,242,252,242,127,243, +28,244,211,244,167,245,152,246,159,247,178,248,194,249,196,250,175,251,133,252,78,253,21,254,223,254,172,255,118,0,56,1, +238,1,151,2,47,3,178,3,22,4,80,4,91,4,54,4,231,3,123,3,254,2,123,2,253,1,144,1,65,1,31,1, +55,1,148,1,55,2,30,3,65,4,152,5,24,7,183,8,106,10,36,12,217,13,127,15,19,17,150,18,16,20,139,21, +9,23,135,24,249,25,81,27,126,28,120,29,59,30,202,30,43,31,102,31,132,31,142,31,146,31,159,31,192,31,245,31, +50,32,99,32,114,32,81,32,252,31,118,31,196,30,233,29,230,28,193,27,139,26,96,25,99,24,180,23,94,23,90,23, +141,23,219,23,46,24,124,24,194,24,0,25,49,25,80,25,86,25,73,25,49,25,28,25,20,25,27,25,45,25,70,25, +98,25,134,25,178,25,230,25,22,26,57,26,69,26,57,26,26,26,237,25,178,25,94,25,226,24,51,24,74,23,43,22, +218,20,79,19,120,17,57,15,128,12,73,9,172,5,211,1,243,253,58,250,194,246,146,243,159,240,220,237,66,235,210,232, +150,230,149,228,207,226,56,225,190,223,73,222,198,220,43,219,117,217,169,215,205,213,230,211,252,209,27,208,93,206,222,204, +186,203,2,203,183,202,207,202,58,203,234,203,220,204,21,206,156,207,112,209,135,211,208,213,56,216,180,218,70,221,241,223, +185,226,152,229,129,232,99,235,46,238,216,240,93,243,188,245,248,247,14,250,253,251,193,253,88,255,191,0,243,1,241,2, +182,3,65,4,147,4,177,4,158,4,90,4,227,3,49,3,59,2,247,0,94,255,112,253,52,251,188,248,36,246,145,243, +43,241,24,239,117,237,85,236,190,235,174,235,32,236,6,237,76,238,210,239,109,241,240,242,46,244,6,245,102,245,85,245, +234,244,77,244,172,243,55,243,32,243,144,243,173,244,141,246,57,249,173,252,209,0,129,5,135,10,164,15,144,20,10,25, +219,28,226,31,17,34,111,35,16,36,19,36,150,35,188,34,169,33,131,32,113,31,148,30,255,29,178,29,154,29,152,29, +137,29,79,29,218,28,34,28,41,27,249,25,156,24,34,23,160,21,48,20,242,18,5,18,129,17,123,17,248,17,240,18, +82,20,255,21,209,23,160,25,70,27,165,28,174,29,91,30,175,30,176,30,101,30,217,29,32,29,89,28,169,27,52,27, +18,27,75,27,208,27,133,28,74,29,3,30,159,30,16,31,75,31,61,31,217,30,20,30,245,28,144,27,2,26,107,24, +223,22,105,21,8,20,187,18,129,17,97,16,94,15,115,14,142,13,146,12,94,11,219,9,254,7,203,5,82,3,169,0, +228,253,24,251,86,248,181,245,76,243,48,241,111,239,13,238,3,237,65,236,186,235,95,235,45,235,33,235,57,235,114,235, +191,235,18,236,94,236,156,236,206,236,252,236,50,237,125,237,231,237,121,238,53,239,26,240,38,241,83,242,154,243,240,244, +70,246,137,247,171,248,158,249,87,250,200,250,227,250,152,250,211,249,137,248,179,246,90,244,150,241,135,238,77,235,2,232, +177,228,94,225,11,222,195,218,154,215,171,212,16,210,221,207,23,206,185,204,184,203,14,203,192,202,218,202,107,203,124,204, +14,206,18,208,120,210,47,213,42,216,97,219,207,222,104,226,26,230,203,233,93,237,184,240,204,243,150,246,29,249,107,251, +138,253,129,255,85,1,12,3,177,4,77,6,234,7,138,9,35,11,167,12,7,14,57,15,61,16,26,17,217,17,134,18, +42,19,203,19,107,20,11,21,170,21,67,22,207,22,66,23,147,23,186,23,179,23,122,23,5,23,70,22,42,21,167,19, +187,17,112,15,221,12,29,10,77,7,134,4,223,1,109,255,63,253,98,251,223,249,181,248,223,247,90,247,36,247,62,247, +168,247,91,248,72,249,89,250,121,251,160,252,213,253,51,255,224,0,3,3,180,5,245,8,171,12,164,16,161,20,98,24, +177,27,104,30,114,32,194,33,79,34,26,34,44,33,156,31,151,29,89,27,34,25,46,23,167,21,162,20,36,20,32,20, +129,20,34,21,210,21,87,22,118,22,0,22,220,20,13,19,170,16,213,13,185,10,127,7,81,4,89,1,192,254,165,252, +25,251,23,250,137,249,80,249,73,249,87,249,93,249,62,249,222,248,44,248,36,247,215,245,109,244,19,243,247,241,56,241, +231,240,9,241,156,241,155,242,251,243,168,245,133,247,109,249,64,251,230,252,86,254,142,255,146,0,102,1,11,2,132,2, +213,2,5,3,28,3,31,3,10,3,215,2,126,2,252,1,84,1,140,0,174,255,195,254,216,253,248,252,50,252,147,251, +33,251,224,250,207,250,236,250,53,251,169,251,68,252,253,252,195,253,134,254,54,255,203,255,71,0,177,0,11,1,86,1, +142,1,177,1,201,1,228,1,21,2,104,2,221,2,105,3,246,3,112,4,198,4,241,4,236,4,178,4,64,4,144,3, +164,2,134,1,76,0,14,255,231,253,236,252,49,252,194,251,168,251,226,251,106,252,46,253,22,254,4,255,220,255,135,0, +248,0,42,1,33,1,222,0,101,0,187,255,229,254,239,253,234,252,237,251,10,251,78,250,185,249,59,249,190,248,38,248, +100,247,117,246,100,245,72,244,63,243,98,242,201,241,128,241,146,241,2,242,211,242,3,244,142,245,110,247,153,249,2,252, +147,254,50,1,190,3,20,6,28,8,201,9,28,11,36,12,239,12,139,13,254,13,73,14,106,14,99,14,57,14,239,13, +132,13,241,12,39,12,31,11,214,9,86,8,175,6,246,4,60,3,141,1,244,255,122,254,39,253,1,252,12,251,69,250, +161,249,13,249,119,248,203,247,249,246,245,245,181,244,55,243,121,241,131,239,98,237,43,235,247,232,225,230,9,229,133,227, +103,226,179,225,97,225,99,225,170,225,40,226,206,226,146,227,99,228,48,229,233,229,130,230,251,230,94,231,189,231,45,232, +187,232,108,233,56,234,23,235,252,235,216,236,158,237,68,238,190,238,10,239,38,239,22,239,218,238,119,238,239,237,73,237, +147,236,231,235,98,235,33,235,56,235,168,235,105,236,111,237,176,238,43,240,227,241,218,243,9,246,98,248,209,250,67,253, +173,255,10,2,90,4,154,6,191,8,187,10,125,12,0,14,70,15,90,16,74,17,32,18,221,18,130,19,11,20,119,20, +206,20,23,21,92,21,158,21,218,21,11,22,47,22,75,22,110,22,173,22,24,23,187,23,153,24,175,25,245,26,102,28, +255,29,195,31,177,33,200,35,253,37,65,40,128,42,169,44,172,46,128,48,34,50,150,51,230,52,24,54,50,55,54,56, +33,57,238,57,150,58,12,59,69,59,51,59,206,58,15,58,244,56,123,55,159,53,94,51,179,48,158,45,41,42,107,38, +131,34,147,30,187,26,13,23,152,19,102,16,129,13,241,10,186,8,209,6,37,5,157,3,38,2,180,0,68,255,214,253, +96,252,212,250,30,249,50,247,23,245,226,242,183,240,177,238,224,236,73,235,233,233,197,232,234,231,101,231,56,231,84,231, +149,231,206,231,220,231,173,231,74,231,207,230,90,230,6,230,232,229,17,230,141,230,106,231,173,232,80,234,64,236,98,238, +150,240,192,242,199,244,152,246,38,248,100,249,75,250,223,250,44,251,70,251,65,251,45,251,12,251,215,250,128,250,249,249, +54,249,47,248,224,246,71,245,105,243,77,241,1,239,154,236,49,234,226,231,200,229,252,227,143,226,143,225,1,225,222,224, +25,225,151,225,58,226,224,226,107,227,195,227,215,227,160,227,32,227,105,226,147,225,193,224,23,224,187,223,203,223,91,224, +111,225,2,227,1,229,83,231,213,233,102,236,233,238,72,241,127,243,151,245,158,247,161,249,165,251,166,253,157,255,133,1, +93,3,44,5,244,6,173,8,65,10,141,11,116,12,230,12,229,12,128,12,205,11,219,10,181,9,101,8,251,6,142,5, +60,4,32,3,74,2,190,1,123,1,127,1,208,1,118,2,122,3,217,4,138,6,124,8,158,10,227,12,63,15,162,17, +250,19,51,22,62,24,22,26,191,27,62,29,145,30,175,31,135,32,14,33,68,33,59,33,14,33,214,32,161,32,115,32, +69,32,22,32,231,31,191,31,161,31,138,31,110,31,64,31,243,30,132,30,247,29,85,29,169,28,250,27,80,27,180,26, +49,26,213,25,171,25,186,25,1,26,121,26,17,27,180,27,72,28,179,28,225,28,199,28,100,28,194,27,241,26,1,26, +4,25,8,24,28,23,74,22,151,21,3,21,137,20,34,20,197,19,115,19,46,19,251,18,216,18,190,18,162,18,118,18, +53,18,221,17,110,17,236,16,87,16,171,15,229,14,2,14,254,12,216,11,142,10,33,9,147,7,232,5,39,4,83,2, +109,0,108,254,74,252,2,250,152,247,23,245,143,242,13,240,156,237,72,235,26,233,33,231,108,229,2,228,226,226,1,226, +78,225,183,224,53,224,198,223,111,223,51,223,18,223,8,223,19,223,53,223,112,223,198,223,50,224,174,224,50,225,187,225, +76,226,232,226,141,227,46,228,183,228,16,229,39,229,246,228,134,228,230,227,40,227,93,226,150,225,234,224,116,224,84,224, +159,224,96,225,144,226,29,228,236,229,224,231,224,233,212,235,163,237,49,239,100,240,39,241,110,241,65,241,175,240,211,239, +196,238,154,237,104,236,61,235,42,234,62,233,132,232,7,232,204,231,209,231,14,232,124,232,23,233,224,233,224,234,37,236, +188,237,178,239,11,242,195,244,205,247,18,251,124,254,245,1,108,5,208,8,20,12,40,15,252,17,128,20,168,22,113,24, +222,25,251,26,212,27,118,28,233,28,50,29,84,29,86,29,59,29,5,29,178,28,63,28,170,27,244,26,38,26,77,25, +120,24,181,23,13,23,133,22,32,22,223,21,195,21,198,21,222,21,250,21,11,22,2,22,216,21,137,21,20,21,119,20, +174,19,185,18,155,17,93,16,14,15,188,13,121,12,82,11,86,10,152,9,42,9,27,9,111,9,28,10,9,11,19,12, +28,13,7,14,194,14,63,15,119,15,105,15,28,15,156,14,255,13,95,13,214,12,121,12,87,12,121,12,226,12,142,13, +117,14,131,15,156,16,165,17,135,18,55,19,181,19,12,20,68,20,103,20,127,20,145,20,167,20,198,20,244,20,47,21, +114,21,180,21,235,21,25,22,64,22,102,22,143,22,182,22,211,22,216,22,186,22,108,22,226,21,12,21,218,19,61,18, +44,16,168,13,191,10,135,7,28,4,154,0,28,253,186,249,138,246,159,243,11,241,215,238,11,237,165,235,162,234,253,233, +170,233,155,233,189,233,245,233,38,234,50,234,1,234,130,233,178,232,152,231,68,230,200,228,56,227,166,225,37,224,197,222, +148,221,154,220,221,219,95,219,25,219,4,219,21,219,67,219,129,219,197,219,5,220,55,220,86,220,99,220,101,220,105,220, +126,220,181,220,32,221,204,221,195,222,5,224,139,225,74,227,49,229,51,231,70,233,98,235,128,237,157,239,175,241,177,243, +156,245,114,247,54,249,228,250,119,252,222,253,10,255,237,255,134,0,218,0,243,0,214,0,135,0,9,0,99,255,166,254, +242,253,100,253,23,253,19,253,83,253,197,253,87,254,249,254,157,255,52,0,172,0,243,0,253,0,196,0,85,0,198,255, +52,255,189,254,122,254,127,254,219,254,143,255,149,0,222,1,79,3,201,4,51,6,126,7,161,8,148,9,81,10,205,10, +254,10,231,10,154,10,56,10,231,9,208,9,14,10,167,10,145,11,177,12,230,13,14,15,14,16,209,16,78,17,133,17, +128,17,78,17,2,17,179,16,119,16,101,16,143,16,252,16,171,17,143,18,148,19,164,20,172,21,151,22,83,23,205,23, +246,23,197,23,64,23,121,22,144,21,169,20,226,19,78,19,248,18,225,18,7,19,95,19,221,19,109,20,248,20,105,21, +175,21,192,21,150,21,46,21,136,20,167,19,155,18,122,17,99,16,118,15,199,14,93,14,50,14,56,14,101,14,180,14, +34,15,173,15,73,16,227,16,104,17,203,17,11,18,51,18,89,18,149,18,250,18,150,19,108,20,124,21,194,22,56,24, +212,25,136,27,63,29,225,30,88,32,141,33,116,34,9,35,82,35,86,35,25,35,152,34,206,33,182,32,83,31,175,29, +214,27,204,25,139,23,4,21,40,18,239,14,101,11,161,7,190,3,200,255,194,251,164,247,110,243,44,239,253,234,4,231, +89,227,2,224,244,220,26,218,98,215,199,212,78,210,0,208,222,205,230,203,20,202,105,200,242,198,201,197,8,197,191,196, +237,196,134,197,117,198,164,199,3,201,136,202,38,204,206,205,107,207,234,208,63,210,103,211,112,212,116,213,144,214,217,215, +98,217,51,219,80,221,188,223,123,226,136,229,215,232,79,236,204,239,40,243,67,246,8,249,114,251,130,253,56,255,151,0, +163,1,105,2,252,2,119,3,241,3,113,4,240,4,92,5,158,5,164,5,105,5,242,4,67,4,98,3,79,2,21,1, +194,255,107,254,43,253,25,252,68,251,184,250,124,250,148,250,255,250,178,251,152,252,143,253,114,254,35,255,148,255,202,255, +211,255,196,255,182,255,192,255,249,255,122,0,88,1,162,2,90,4,117,6,226,8,135,11,78,14,31,17,228,19,139,22, +8,25,91,27,140,29,170,31,196,33,226,35,7,38,46,40,80,42,101,44,97,46,47,48,179,49,199,50,75,51,43,51, +99,50,3,49,35,47,224,44,92,42,186,39,33,37,184,34,162,32,245,30,188,29,239,28,127,28,92,28,117,28,186,28, +22,29,115,29,186,29,218,29,204,29,148,29,54,29,184,28,27,28,98,27,147,26,188,25,240,24,66,24,187,23,83,23, +252,22,166,22,67,22,206,21,73,21,180,20,11,20,70,19,95,18,88,17,55,16,14,15,238,13,225,12,228,11,239,10, +251,9,1,9,1,8,5,7,26,6,71,5,135,4,204,3,1,3,14,2,222,0,108,255,184,253,197,251,155,249,66,247, +194,244,36,242,122,239,217,236,87,234,2,232,226,229,251,227,77,226,222,224,187,223,246,222,154,222,171,222,33,223,228,223, +215,224,223,225,237,226,247,227,251,228,251,229,248,230,241,231,220,232,181,233,117,234,30,235,180,235,64,236,202,236,83,237, +215,237,82,238,192,238,30,239,113,239,191,239,12,240,86,240,152,240,205,240,245,240,20,241,52,241,94,241,148,241,210,241, +16,242,68,242,101,242,104,242,68,242,236,241,80,241,96,240,25,239,124,237,152,235,128,233,77,231,22,229,242,226,246,224, +54,223,194,221,170,220,249,219,182,219,228,219,127,220,128,221,215,222,106,224,27,226,201,227,93,229,199,230,6,232,35,233, +46,234,60,235,97,236,176,237,55,239,2,241,21,243,106,245,242,247,151,250,67,253,220,255,79,2,134,4,108,6,242,7, +15,9,193,9,21,10,33,10,6,10,225,9,203,9,213,9,9,10,106,10,247,10,171,11,121,12,80,13,29,14,210,14, +98,15,198,15,252,15,4,16,226,15,153,15,52,15,200,14,106,14,46,14,30,14,51,14,92,14,132,14,153,14,152,14, +133,14,110,14,97,14,105,14,139,14,206,14,66,15,245,15,241,16,59,18,207,19,157,21,142,23,141,25,135,27,104,29, +29,31,149,32,193,33,151,34,25,35,83,35,90,35,63,35,22,35,243,34,232,34,1,35,73,35,196,35,109,36,46,37, +238,37,143,38,243,38,5,39,189,38,24,38,24,37,196,35,39,34,74,32,56,30,1,28,184,25,114,23,60,21,30,19, +19,17,12,15,241,12,177,10,63,8,153,5,198,2,210,255,203,252,187,249,176,246,191,243,0,241,134,238,100,236,163,234, +70,233,75,232,176,231,118,231,154,231,14,232,189,232,141,233,94,234,28,235,192,235,77,236,197,236,44,237,127,237,186,237, +215,237,213,237,190,237,159,237,135,237,131,237,160,237,227,237,80,238,233,238,171,239,141,240,132,241,133,242,131,243,113,244, +71,245,4,246,172,246,73,247,235,247,158,248,104,249,73,250,56,251,38,252,3,253,194,253,87,254,185,254,224,254,203,254, +130,254,17,254,137,253,246,252,92,252,186,251,8,251,60,250,75,249,49,248,233,246,113,245,204,243,6,242,55,240,126,238, +250,236,195,235,228,234,100,234,72,234,155,234,110,235,203,236,177,238,11,241,176,243,109,246,17,249,120,251,135,253,47,255, +105,0,54,1,160,1,184,1,151,1,84,1,4,1,186,0,135,0,127,0,176,0,36,1,217,1,183,2,152,3,89,4, +228,4,53,5,84,5,77,5,37,5,219,4,105,4,214,3,53,3,167,2,80,2,79,2,178,2,119,3,148,4,255,5, +167,7,114,9,67,11,248,12,114,14,155,15,114,16,6,17,107,17,183,17,248,17,49,18,90,18,100,18,69,18,245,17, +112,17,192,16,248,15,43,15,103,14,180,13,21,13,135,12,15,12,186,11,156,11,198,11,67,12,15,13,28,14,80,15, +142,16,192,17,203,18,146,19,247,19,228,19,78,19,60,18,198,16,23,15,90,13,181,11,69,10,21,9,34,8,90,7, +167,6,237,5,17,5,252,3,166,2,14,1,58,255,52,253,11,251,211,248,159,246,133,244,154,242,239,240,143,239,126,238, +190,237,72,237,21,237,27,237,73,237,137,237,197,237,234,237,242,237,218,237,169,237,103,237,30,237,217,236,165,236,147,236, +179,236,17,237,180,237,157,238,195,239,25,241,150,242,45,244,208,245,109,247,243,248,82,250,129,251,126,252,78,253,249,253, +133,254,243,254,64,255,107,255,119,255,111,255,96,255,84,255,78,255,68,255,37,255,223,254,97,254,166,253,176,252,138,251, +63,250,212,248,82,247,197,245,63,244,216,242,172,241,209,240,80,240,36,240,63,240,147,240,23,241,207,241,195,242,247,243, +102,245,1,247,187,248,137,250,103,252,91,254,108,0,155,2,220,4,36,7,102,9,157,11,200,13,231,15,246,17,232,19, +173,21,60,23,145,24,177,25,167,26,127,27,64,28,235,28,128,29,5,30,130,30,1,31,142,31,46,32,224,32,157,33, +99,34,47,35,1,36,220,36,191,37,166,38,127,39,53,40,178,40,230,40,198,40,80,40,136,39,115,38,14,37,86,35, +72,33,225,30,40,28,45,25,4,22,187,18,92,15,244,11,144,8,69,5,45,2,107,255,29,253,78,251,252,249,22,249, +132,248,38,248,227,247,162,247,76,247,205,246,28,246,58,245,52,244,33,243,31,242,73,241,173,240,81,240,52,240,81,240, +152,240,251,240,102,241,201,241,17,242,55,242,58,242,24,242,211,241,105,241,216,240,32,240,75,239,110,238,170,237,29,237, +219,236,236,236,73,237,228,237,170,238,139,239,117,240,86,241,23,242,161,242,221,242,191,242,73,242,142,241,161,240,150,239, +125,238,88,237,37,236,222,234,127,233,6,232,115,230,205,228,28,227,111,225,218,223,121,222,102,221,182,220,117,220,167,220, +69,221,66,222,141,223,18,225,189,226,123,228,56,230,225,231,101,233,184,234,207,235,160,236,41,237,110,237,129,237,123,237, +124,237,163,237,5,238,168,238,133,239,137,240,148,241,138,242,80,243,207,243,245,243,185,243,33,243,61,242,38,241,254,239, +232,238,1,238,95,237,18,237,30,237,129,237,51,238,40,239,75,240,132,241,183,242,203,243,167,244,53,245,106,245,65,245, +196,244,3,244,28,243,46,242,89,241,182,240,87,240,72,240,144,240,51,241,58,242,168,243,117,245,142,247,214,249,44,252, +109,254,130,0,99,2,18,4,153,5,1,7,81,8,143,9,189,10,226,11,5,13,45,14,93,15,151,16,218,17,37,19, +119,20,215,21,76,23,210,24,92,26,216,27,48,29,80,30,48,31,212,31,72,32,154,32,218,32,19,33,79,33,153,33, +254,33,141,34,72,35,45,36,47,37,62,38,68,39,49,40,251,40,155,41,17,42,95,42,140,42,152,42,131,42,74,42, +229,41,76,41,125,40,128,39,102,38,65,37,27,36,248,34,206,33,144,32,51,31,179,29,23,28,102,26,169,24,224,22, +8,21,29,19,35,17,37,15,47,13,74,11,121,9,185,7,3,6,76,4,141,2,189,0,215,254,215,252,192,250,154,248, +113,246,85,244,78,242,92,240,126,238,181,236,12,235,147,233,92,232,116,231,221,230,144,230,132,230,180,230,29,231,189,231, +137,232,105,233,62,234,235,234,95,235,149,235,145,235,94,235,4,235,139,234,2,234,128,233,31,233,251,232,32,233,141,233, +47,234,243,234,205,235,186,236,184,237,191,238,187,239,146,240,41,241,113,241,108,241,37,241,171,240,10,240,73,239,111,238, +130,237,145,236,173,235,229,234,67,234,204,233,134,233,113,233,142,233,219,233,77,234,212,234,98,235,242,235,131,236,26,237, +186,237,91,238,235,238,82,239,127,239,107,239,22,239,139,238,221,237,32,237,103,236,197,235,77,235,10,235,2,235,56,235, +170,235,82,236,39,237,33,238,48,239,59,240,43,241,238,241,130,242,238,242,67,243,149,243,242,243,95,244,220,244,106,245, +9,246,189,246,142,247,129,248,146,249,185,250,228,251,253,252,231,253,140,254,223,254,225,254,157,254,40,254,155,253,15,253, +147,252,53,252,3,252,9,252,75,252,205,252,134,253,106,254,106,255,127,0,165,1,217,2,22,4,88,5,157,6,235,7, +82,9,231,10,183,12,195,14,251,16,67,19,126,21,145,23,110,25,15,27,108,28,123,29,53,30,150,30,164,30,104,30, +238,29,61,29,89,28,67,27,1,26,152,24,16,23,110,21,177,19,215,17,223,15,209,13,187,11,171,9,174,7,208,5, +29,4,166,2,126,1,187,0,104,0,131,0,247,0,169,1,127,2,104,3,91,4,84,5,76,6,62,7,35,8,253,8, +208,9,161,10,115,11,62,12,249,12,154,13,35,14,159,14,26,15,156,15,31,16,153,16,253,16,65,17,101,17,107,17, +83,17,30,17,203,16,92,16,215,15,66,15,154,14,214,13,236,12,213,11,150,10,67,9,242,7,178,6,131,5,87,4, +30,3,203,1,96,0,230,254,101,253,226,251,94,250,220,248,99,247,0,246,192,244,172,243,190,242,236,241,45,241,129,240, +237,239,120,239,33,239,225,238,162,238,79,238,213,237,38,237,58,236,17,235,173,233,22,232,95,230,161,228,251,226,129,225, +66,224,72,223,157,222,70,222,77,222,179,222,112,223,115,224,168,225,253,226,105,228,230,229,114,231,7,233,155,234,40,236, +174,237,54,239,202,240,111,242,29,244,197,245,78,247,174,248,229,249,253,250,250,251,221,252,152,253,30,254,102,254,117,254, +93,254,50,254,5,254,221,253,189,253,166,253,156,253,172,253,224,253,68,254,221,254,170,255,166,0,205,1,23,3,127,4, +251,5,127,7,3,9,130,10,250,11,99,13,182,14,232,15,243,16,210,17,136,18,28,19,143,19,224,19,7,20,245,19, +158,19,253,18,21,18,243,16,167,15,67,14,216,12,119,11,42,10,252,8,246,7,29,7,115,6,250,5,175,5,144,5, +147,5,172,5,207,5,238,5,0,6,254,5,222,5,148,5,22,5,90,4,90,3,27,2,170,0,25,255,126,253,233,251, +104,250,3,249,191,247,156,246,150,245,166,244,194,243,224,242,247,241,5,241,16,240,32,239,65,238,125,237,221,236,103,236, +31,236,2,236,11,236,47,236,97,236,149,236,196,236,237,236,26,237,83,237,162,237,12,238,150,238,66,239,18,240,11,241, +50,242,142,243,30,245,226,246,212,248,242,250,56,253,155,255,11,2,112,4,174,6,172,8,91,10,188,11,222,12,216,13, +192,14,165,15,142,16,129,17,130,18,148,19,186,20,245,21,61,23,127,24,165,25,149,26,62,27,149,27,150,27,73,27, +187,26,1,26,51,25,102,24,169,23,9,23,141,22,59,22,23,22,38,22,103,22,205,22,67,23,168,23,221,23,199,23, +82,23,113,22,33,21,99,19,64,17,202,14,37,12,125,9,254,6,199,4,225,2,68,1,226,255,175,254,174,253,230,252, +98,252,35,252,34,252,78,252,157,252,8,253,146,253,59,254,254,254,200,255,132,0,27,1,130,1,184,1,194,1,161,1, +78,1,192,0,237,255,211,254,123,253,244,251,82,250,175,248,35,247,195,245,160,244,197,243,55,243,240,242,229,242,11,243, +94,243,222,243,137,244,94,245,83,246,91,247,107,248,123,249,138,250,154,251,168,252,173,253,154,254,100,255,2,0,112,0, +170,0,168,0,101,0,216,255,253,254,211,253,100,252,185,250,223,248,226,246,208,244,189,242,196,240,5,239,153,237,144,236, +235,235,158,235,153,235,200,235,29,236,140,236,10,237,141,237,12,238,130,238,236,238,77,239,163,239,238,239,41,240,75,240, +76,240,41,240,233,239,149,239,61,239,236,238,171,238,127,238,107,238,112,238,139,238,183,238,236,238,27,239,56,239,58,239, +31,239,237,238,178,238,122,238,80,238,54,238,44,238,43,238,51,238,69,238,107,238,171,238,8,239,127,239,7,240,147,240, +20,241,129,241,214,241,18,242,53,242,67,242,63,242,48,242,27,242,13,242,23,242,82,242,216,242,191,243,18,245,207,246, +226,248,47,251,151,253,254,255,87,2,153,4,192,6,199,8,169,10,97,12,239,13,90,15,174,16,246,17,60,19,132,20, +205,21,24,23,105,24,190,25,17,27,87,28,128,29,128,30,81,31,251,31,142,32,29,33,187,33,114,34,68,35,46,36, +41,37,44,38,41,39,19,40,219,40,120,41,229,41,36,42,58,42,44,42,0,42,190,41,111,41,32,41,219,40,164,40, +121,40,80,40,28,40,204,39,74,39,129,38,88,37,189,35,163,33,11,31,5,28,174,24,39,21,139,17,238,13,101,10, +6,7,238,3,57,1,254,254,64,253,246,251,7,251,94,250,233,249,156,249,104,249,56,249,242,248,125,248,203,247,223,246, +204,245,173,244,151,243,150,242,171,241,215,240,28,240,133,239,21,239,201,238,143,238,83,238,254,237,136,237,240,236,66,236, +140,235,217,234,54,234,178,233,96,233,83,233,151,233,46,234,14,235,33,236,82,237,145,238,215,239,33,241,111,242,183,243, +238,244,7,246,250,246,199,247,112,248,254,248,118,249,219,249,41,250,88,250,88,250,27,250,148,249,185,248,135,247,3,246, +55,244,50,242,9,240,209,237,166,235,163,233,229,231,131,230,143,229,18,229,9,229,105,229,34,230,33,231,76,232,133,233, +168,234,146,235,36,236,72,236,246,235,55,235,38,234,234,232,177,231,169,230,248,229,184,229,247,229,178,230,226,231,120,233, +95,235,129,237,196,239,11,242,64,244,82,246,55,248,243,249,140,251,12,253,116,254,199,255,5,1,50,2,84,3,113,4, +140,5,165,6,179,7,170,8,125,9,36,10,152,10,214,10,217,10,157,10,36,10,116,9,160,8,192,7,243,6,86,6, +250,5,229,5,16,6,109,6,234,6,124,7,28,8,199,8,123,9,48,10,216,10,100,11,202,11,6,12,32,12,37,12, +38,12,48,12,77,12,128,12,200,12,40,13,160,13,44,14,194,14,85,15,218,15,74,16,164,16,237,16,43,17,98,17, +149,17,192,17,232,17,18,18,75,18,163,18,36,19,207,19,152,20,102,21,27,22,155,22,212,22,196,22,116,22,249,21, +110,21,231,20,110,20,3,20,161,19,66,19,232,18,157,18,103,18,77,18,78,18,96,18,119,18,129,18,115,18,68,18, +238,17,114,17,208,16,15,16,54,15,76,14,84,13,80,12,59,11,17,10,212,8,139,7,68,6,10,5,229,3,209,2, +205,1,212,0,232,255,13,255,74,254,165,253,29,253,174,252,78,252,245,251,154,251,56,251,201,250,69,250,161,249,210,248, +207,247,144,246,25,245,113,243,166,241,201,239,238,237,40,236,138,234,36,233,5,232,58,231,204,230,183,230,239,230,91,231, +230,231,124,232,23,233,182,233,89,234,255,234,158,235,37,236,136,236,196,236,226,236,238,236,247,236,2,237,17,237,33,237, +51,237,77,237,122,237,190,237,19,238,104,238,172,238,212,238,223,238,214,238,202,238,205,238,235,238,48,239,158,239,51,240, +238,240,197,241,177,242,174,243,189,244,235,245,69,247,210,248,145,250,117,252,108,254,96,0,65,2,7,4,171,5,36,7, +102,8,100,9,22,10,120,10,142,10,89,10,224,9,41,9,62,8,48,7,24,6,18,5,50,4,132,3,10,3,193,2, +168,2,198,2,36,3,205,3,200,4,23,6,173,7,117,9,82,11,36,13,202,14,47,16,73,17,31,18,195,18,78,19, +206,19,71,20,181,20,17,21,84,21,126,21,145,21,139,21,100,21,16,21,140,20,223,19,29,19,91,18,174,17,34,17, +190,16,137,16,141,16,219,16,130,17,133,18,214,19,91,21,245,22,139,24,19,26,135,27,226,28,25,30,20,31,187,31, +248,31,193,31,23,31,2,30,142,28,202,26,194,24,132,22,25,20,132,17,198,14,221,11,196,8,126,5,19,2,148,254, +24,251,179,247,120,244,122,241,205,238,132,236,176,234,89,233,123,232,12,232,252,231,55,232,170,232,63,233,216,233,84,234, +147,234,124,234,4,234,51,233,28,232,221,230,152,229,107,228,110,227,177,226,61,226,18,226,38,226,100,226,180,226,253,226, +49,227,70,227,57,227,14,227,206,226,132,226,61,226,3,226,225,225,221,225,252,225,69,226,193,226,117,227,103,228,142,229, +221,230,61,232,153,233,225,234,10,236,21,237,4,238,217,238,147,239,53,240,197,240,84,241,242,241,176,242,157,243,192,244, +30,246,183,247,134,249,127,251,140,253,152,255,140,1,94,3,13,5,164,6,44,8,167,9,8,11,60,12,50,13,226,13, +85,14,162,14,230,14,53,15,158,15,33,16,190,16,113,17,53,18,8,19,231,19,205,20,182,21,157,22,130,23,100,24, +73,25,48,26,25,27,1,28,226,28,182,29,118,30,33,31,178,31,42,32,133,32,188,32,204,32,173,32,95,32,224,31, +52,31,91,30,84,29,23,28,156,26,228,24,245,22,227,20,200,18,190,16,220,14,47,13,188,11,132,10,137,9,204,8, +79,8,18,8,14,8,63,8,157,8,33,9,196,9,125,10,65,11,2,12,179,12,69,13,175,13,240,13,11,14,14,14, +7,14,11,14,39,14,93,14,165,14,236,14,26,15,33,15,251,14,178,14,86,14,246,13,154,13,64,13,230,12,138,12, +50,12,228,11,166,11,123,11,93,11,71,11,54,11,48,11,60,11,97,11,158,11,229,11,35,12,72,12,71,12,31,12, +212,11,104,11,217,10,29,10,41,9,242,7,117,6,182,4,190,2,153,0,87,254,3,252,167,249,77,247,253,244,194,242, +161,240,158,238,185,236,240,234,62,233,156,231,0,230,98,228,189,226,13,225,83,223,145,221,204,219,6,218,62,216,116,214, +169,212,228,210,46,209,154,207,58,206,31,205,84,204,214,203,156,203,151,203,189,203,6,204,110,204,241,204,139,205,55,206, +236,206,166,207,98,208,32,209,225,209,163,210,98,211,30,212,218,212,156,213,106,214,72,215,48,216,24,217,242,217,186,218, +113,219,36,220,222,220,171,221,144,222,145,223,180,224,1,226,135,227,82,229,108,231,209,233,120,236,76,239,58,242,52,245, +43,248,22,251,236,253,164,0,57,3,168,5,242,7,32,10,63,12,93,14,131,16,184,18,250,20,66,23,134,25,191,27, +232,29,1,32,6,34,242,35,186,37,82,39,178,40,215,41,202,42,154,43,92,44,33,45,247,45,235,46,8,48,83,49, +208,50,121,52,62,54,9,56,190,57,67,59,128,60,98,61,215,61,205,61,61,61,37,60,143,58,140,56,47,54,136,51, +163,48,139,45,75,42,246,38,162,35,101,32,77,29,97,26,165,23,28,21,204,18,187,16,235,14,87,13,242,11,173,10, +121,9,80,8,48,7,23,6,254,4,215,3,147,2,38,1,144,255,213,253,0,252,27,250,48,248,74,246,119,244,203,242, +88,241,43,240,69,239,158,238,45,238,232,237,207,237,226,237,36,238,143,238,27,239,186,239,102,240,31,241,236,241,217,242, +238,243,51,245,169,246,81,248,42,250,42,252,67,254,89,0,76,2,253,3,84,5,70,6,215,6,17,7,255,6,174,6, +35,6,97,5,109,4,77,3,13,2,190,0,114,255,57,254,31,253,43,252,97,251,196,250,83,250,14,250,241,249,242,249, +0,250,8,250,248,249,196,249,104,249,228,248,54,248,91,247,72,246,245,244,92,243,129,241,114,239,63,237,252,234,185,232, +133,230,111,228,136,226,223,224,129,223,121,222,198,221,100,221,73,221,106,221,185,221,39,222,168,222,51,223,200,223,106,224, +31,225,238,225,212,226,206,227,213,228,227,229,247,230,17,232,42,233,53,234,29,235,203,235,47,236,64,236,2,236,130,235, +209,234,255,233,31,233,74,232,154,231,46,231,30,231,120,231,62,232,100,233,214,234,130,236,87,238,76,240,90,242,120,244, +156,246,183,248,187,250,154,252,74,254,202,255,28,1,72,2,87,3,84,4,70,5,55,6,47,7,56,8,90,9,157,10, +3,12,136,13,38,15,212,16,140,18,72,20,5,22,189,23,109,25,20,27,178,28,77,30,235,31,144,33,60,35,233,36, +143,38,36,40,162,41,4,43,69,44,91,45,58,46,216,46,46,47,59,47,7,47,158,46,13,46,95,45,156,44,205,43, +249,42,37,42,86,41,140,40,197,39,254,38,48,38,85,37,103,36,95,35,54,34,233,32,122,31,235,29,68,28,139,26, +199,24,255,22,62,21,141,19,247,17,128,16,39,15,231,13,192,12,178,11,201,10,15,10,133,9,34,9,209,8,122,8, +14,8,134,7,229,6,46,6,90,5,88,4,23,3,139,1,184,255,179,253,150,251,113,249,74,247,28,245,222,242,149,240, +80,238,39,236,49,234,120,232,247,230,160,229,100,228,62,227,48,226,68,225,130,224,238,223,132,223,63,223,22,223,6,223, +10,223,32,223,67,223,111,223,158,223,204,223,248,223,33,224,74,224,115,224,157,224,200,224,244,224,28,225,63,225,89,225, +106,225,113,225,119,225,132,225,168,225,242,225,114,226,54,227,68,228,156,229,56,231,12,233,10,235,36,237,76,239,115,241, +136,243,126,245,75,247,239,248,110,250,214,251,52,253,145,254,240,255,74,1,150,2,202,3,226,4,223,5,200,6,163,7, +114,8,51,9,226,9,118,10,236,10,71,11,144,11,214,11,40,12,145,12,22,13,182,13,108,14,51,15,7,16,225,16, +181,17,114,18,254,18,68,19,54,19,209,18,34,18,55,17,31,16,226,14,131,13,7,12,122,10,238,8,124,7,56,6, +44,5,90,4,190,3,83,3,27,3,25,3,82,3,199,3,114,4,74,5,69,6,91,7,136,8,197,9,9,11,68,12, +104,13,105,14,66,15,248,15,145,16,18,17,122,17,194,17,227,17,217,17,168,17,89,17,248,16,141,16,29,16,170,15, +52,15,189,14,76,14,236,13,166,13,128,13,124,13,148,13,190,13,239,13,28,14,61,14,78,14,77,14,57,14,18,14, +216,13,139,13,46,13,195,12,77,12,208,11,72,11,174,10,242,9,5,9,222,7,125,6,240,4,76,3,167,1,19,0, +153,254,63,253,10,252,1,251,51,250,172,249,112,249,122,249,184,249,23,250,133,250,245,250,97,251,193,251,13,252,59,252, +68,252,37,252,226,251,132,251,20,251,157,250,40,250,194,249,119,249,83,249,86,249,119,249,164,249,199,249,207,249,178,249, +110,249,4,249,110,248,165,247,163,246,109,245,14,244,154,242,34,241,172,239,53,238,182,236,47,235,165,233,38,232,187,230, +101,229,27,228,210,226,133,225,55,224,244,222,200,221,183,220,192,219,220,218,11,218,84,217,191,216,87,216,31,216,20,216, +50,216,122,216,238,216,143,217,91,218,69,219,63,220,61,221,64,222,83,223,134,224,227,225,108,227,32,229,252,230,1,233, +56,235,164,237,64,240,253,242,197,245,136,248,63,251,239,253,161,0,95,3,39,6,239,8,170,11,71,14,182,16,233,18, +208,20,92,22,130,23,66,24,160,24,173,24,122,24,22,24,146,23,2,23,123,22,18,22,222,21,238,21,74,22,242,22, +224,23,10,25,102,26,229,27,122,29,23,31,176,32,64,34,195,35,56,37,159,38,251,39,79,41,159,42,240,43,64,45, +133,46,170,47,153,48,61,49,140,49,131,49,39,49,124,48,138,47,92,46,10,45,180,43,126,42,134,41,215,40,108,40, +51,40,26,40,23,40,39,40,71,40,110,40,139,40,139,40,92,40,247,39,89,39,127,38,97,37,241,35,37,34,253,31, +134,29,213,26,250,23,254,20,221,17,147,14,34,11,145,7,238,3,61,0,121,252,148,248,130,244,69,240,239,235,161,231, +128,227,166,223,39,220,13,217,98,214,46,212,122,210,72,209,142,208,61,208,60,208,120,208,225,208,104,209,2,210,164,210, +69,211,223,211,114,212,3,213,148,213,44,214,209,214,140,215,108,216,126,217,202,218,75,220,244,221,176,223,114,225,49,227, +235,228,155,230,54,232,170,233,231,234,229,235,169,236,65,237,187,237,29,238,97,238,126,238,109,238,50,238,219,237,121,237, +20,237,173,236,61,236,187,235,35,235,120,234,187,233,237,232,14,232,30,231,33,230,39,229,66,228,135,227,4,227,193,226, +192,226,1,227,128,227,61,228,49,229,81,230,143,231,216,232,32,234,93,235,142,236,183,237,223,238,14,240,74,241,156,242, +9,244,150,245,71,247,30,249,21,251,37,253,65,255,95,1,119,3,136,5,152,7,180,9,231,11,58,14,175,16,65,19, +235,21,161,24,90,27,5,30,146,32,241,34,20,37,245,38,146,40,236,41,2,43,209,43,83,44,139,44,133,44,87,44, +25,44,220,43,164,43,106,43,37,43,209,42,114,42,13,42,161,41,34,41,124,40,157,39,129,38,49,37,195,35,78,34, +223,32,126,31,45,30,244,28,232,27,34,27,187,26,190,26,43,27,248,27,17,29,100,30,219,31,91,33,195,34,243,35, +209,36,81,37,120,37,79,37,229,36,67,36,111,35,111,34,81,33,41,32,13,31,15,30,56,29,136,28,248,27,125,27, +11,27,150,26,15,26,97,25,122,24,69,23,182,21,197,19,118,17,211,14,244,11,248,8,255,5,38,3,127,0,13,254, +204,251,178,249,185,247,227,245,47,244,156,242,31,241,166,239,32,238,133,236,214,234,35,233,127,231,248,229,155,228,107,227, +105,226,146,225,228,224,90,224,235,223,139,223,47,223,202,222,85,222,209,221,67,221,186,220,73,220,4,220,254,219,63,220, +194,220,119,221,76,222,41,223,254,223,190,224,91,225,204,225,7,226,5,226,203,225,95,225,206,224,34,224,98,223,150,222, +200,221,10,221,113,220,15,220,236,219,0,220,57,220,129,220,194,220,239,220,254,220,231,220,162,220,45,220,137,219,198,218, +248,217,59,217,163,216,66,216,32,216,70,216,182,216,112,217,107,218,150,219,220,220,40,222,112,223,182,224,5,226,104,227, +235,228,146,230,96,232,92,234,139,236,243,238,146,241,95,244,71,247,53,250,24,253,225,255,135,2,3,5,76,7,90,9, +41,11,187,12,26,14,85,15,127,16,174,17,244,18,95,20,246,21,182,23,145,25,112,27,58,29,218,30,65,32,107,33, +88,34,15,35,153,35,3,36,90,36,171,36,0,37,92,37,189,37,38,38,153,38,34,39,204,39,157,40,140,41,134,42, +117,43,72,44,247,44,137,45,2,46,102,46,178,46,226,46,254,46,26,47,84,47,203,47,148,48,178,49,27,51,189,52, +134,54,104,56,84,58,57,60,1,62,144,63,203,64,154,65,233,65,168,65,203,64,77,63,54,61,153,58,151,55,85,52, +241,48,131,45,22,42,180,38,105,35,65,32,75,29,140,26,4,24,167,21,107,19,69,17,43,15,26,13,11,11,249,8, +226,6,201,4,183,2,185,0,218,254,31,253,131,251,255,249,138,248,33,247,197,245,121,244,60,243,11,242,221,240,169,239, +103,238,19,237,176,235,70,234,225,232,144,231,95,230,90,229,134,228,228,227,116,227,54,227,41,227,75,227,146,227,239,227, +78,228,150,228,180,228,154,228,61,228,151,227,161,226,85,225,177,223,184,221,120,219,6,217,122,214,237,211,115,209,30,207, +247,204,255,202,54,201,149,199,23,198,186,196,128,195,106,194,120,193,171,192,254,191,114,191,15,191,223,190,239,190,66,191, +208,191,136,192,82,193,33,194,238,194,187,195,139,196,97,197,56,198,18,199,244,199,238,200,20,202,118,203,25,205,249,206, +11,209,71,211,174,213,65,216,255,218,223,221,212,224,207,227,203,230,205,233,223,236,11,240,77,243,157,246,239,249,60,253, +132,0,201,3,7,7,46,10,32,13,186,15,225,17,133,19,164,20,70,21,117,21,60,21,169,20,209,19,207,18,196,17, +212,16,27,16,176,15,157,15,230,15,134,16,113,17,149,18,218,19,40,21,105,22,141,23,138,24,92,25,4,26,137,26, +245,26,85,27,185,27,48,28,199,28,138,29,131,30,184,31,42,33,214,34,171,36,148,38,118,40,57,42,203,43,35,45, +63,46,34,47,210,47,89,48,202,48,57,49,189,49,105,50,66,51,70,52,102,53,145,54,181,55,189,56,146,57,29,58, +70,58,253,57,61,57,20,56,150,54,223,52,6,51,29,49,51,47,86,45,152,43,9,42,178,40,147,39,160,38,197,37, +239,36,18,36,39,35,46,34,37,33,7,32,205,30,116,29,254,27,119,26,241,24,126,23,39,22,240,20,209,19,187,18, +158,17,106,16,15,15,127,13,175,11,156,9,73,7,194,4,28,2,111,255,210,252,87,250,15,248,5,246,73,244,233,242, +238,241,89,241,32,241,40,241,82,241,125,241,138,241,96,241,237,240,30,240,229,238,57,237,29,235,161,232,227,229,5,227, +42,224,111,221,233,218,169,216,190,214,46,213,252,211,29,211,123,210,248,209,124,209,246,208,98,208,199,207,46,207,160,206, +34,206,181,205,97,205,48,205,47,205,109,205,241,205,188,206,199,207,3,209,98,210,211,211,71,213,181,214,21,216,99,217, +158,218,195,219,213,220,213,221,200,222,186,223,182,224,197,225,238,226,45,228,126,229,217,230,60,232,167,233,29,235,158,236, +40,238,183,239,69,241,210,242,95,244,235,245,112,247,227,248,54,250,89,251,65,252,229,252,60,253,61,253,224,252,36,252, +20,251,204,249,113,248,44,247,29,246,89,245,234,244,210,244,17,245,164,245,134,246,167,247,241,248,77,250,161,251,220,252, +242,253,219,254,145,255,14,0,84,0,107,0,104,0,102,0,128,0,207,0,97,1,62,2,100,3,206,4,113,6,58,8, +20,10,230,11,153,13,29,15,104,16,117,17,67,18,215,18,59,19,126,19,182,19,250,19,93,20,233,20,162,21,135,22, +147,23,196,24,22,26,123,27,223,28,36,30,43,31,220,31,41,32,18,32,161,31,230,30,243,29,219,28,180,27,144,26, +131,25,155,24,222,23,79,23,232,22,164,22,119,22,84,22,43,22,234,21,129,21,229,20,22,20,28,19,7,18,230,16, +200,15,186,14,197,13,243,12,82,12,238,11,209,11,254,11,107,12,7,13,184,13,97,14,237,14,72,15,107,15,85,15, +8,15,140,14,234,13,48,13,107,12,171,11,251,10,96,10,217,9,96,9,236,8,115,8,236,7,79,7,144,6,159,5, +111,4,246,2,52,1,52,255,8,253,197,250,128,248,74,246,52,244,76,242,164,240,73,239,68,238,145,237,35,237,230,236, +196,236,173,236,152,236,127,236,94,236,49,236,244,235,169,235,86,235,9,235,209,234,189,234,215,234,33,235,150,235,47,236, +228,236,173,237,134,238,104,239,76,240,41,241,245,241,168,242,65,243,200,243,72,244,207,244,104,245,22,246,216,246,168,247, +130,248,99,249,74,250,51,251,19,252,220,252,125,253,239,253,52,254,89,254,109,254,121,254,129,254,128,254,118,254,106,254, +104,254,130,254,191,254,27,255,137,255,246,255,84,0,159,0,221,0,18,1,60,1,83,1,75,1,28,1,198,0,85,0, +215,255,88,255,225,254,114,254,14,254,182,253,115,253,77,253,74,253,111,253,184,253,32,254,157,254,41,255,190,255,89,0, +250,0,165,1,93,2,36,3,247,3,211,4,180,5,151,6,128,7,115,8,114,9,123,10,133,11,131,12,107,13,55,14, +230,14,120,15,233,15,52,16,82,16,67,16,14,16,195,15,115,15,39,15,226,14,158,14,82,14,248,13,143,13,24,13, +148,12,0,12,88,11,157,10,213,9,10,9,76,8,164,7,27,7,182,6,123,6,109,6,141,6,217,6,66,7,180,7, +27,8,100,8,131,8,113,8,41,8,162,7,212,6,189,5,102,4,227,2,79,1,199,255,98,254,47,253,53,252,121,251, +249,250,175,250,138,250,109,250,54,250,197,249,0,249,222,247,93,246,135,244,103,242,14,240,145,237,14,235,167,232,123,230, +164,228,46,227,29,226,107,225,17,225,254,224,31,225,87,225,133,225,137,225,77,225,202,224,7,224,19,223,0,222,219,220, +181,219,159,218,172,217,242,216,128,216,93,216,130,216,227,216,115,217,36,218,237,218,195,219,155,220,103,221,30,222,193,222, +92,223,0,224,191,224,162,225,173,226,221,227,51,229,177,230,95,232,60,234,65,236,94,238,122,240,129,242,98,244,25,246, +171,247,31,249,126,250,206,251,23,253,95,254,170,255,252,0,87,2,188,3,43,5,164,6,40,8,187,9,94,11,19,13, +217,14,172,16,134,18,94,20,39,22,214,23,101,25,208,26,26,28,75,29,103,30,114,31,110,32,97,33,79,34,64,35, +55,36,50,37,41,38,16,39,220,39,138,40,30,41,159,41,21,42,128,42,225,42,57,43,141,43,230,43,80,44,206,44, +96,45,0,46,170,46,97,47,43,48,11,49,253,49,243,50,212,51,138,52,8,53,76,53,89,53,53,53,223,52,81,52, +134,51,125,50,63,49,216,47,84,46,186,44,15,43,86,41,151,39,223,37,57,36,171,34,45,33,178,31,43,30,142,28, +221,26,35,25,107,23,191,21,33,20,141,18,0,17,121,15,247,13,123,12,3,11,142,9,26,8,170,6,66,5,231,3, +151,2,72,1,234,255,112,254,213,252,36,251,111,249,205,247,75,246,238,244,176,243,134,242,109,241,102,240,123,239,180,238, +20,238,150,237,51,237,224,236,153,236,92,236,40,236,253,235,212,235,167,235,108,235,34,235,202,234,109,234,22,234,208,233, +159,233,134,233,130,233,139,233,156,233,174,233,191,233,207,233,222,233,235,233,240,233,226,233,182,233,98,233,225,232,54,232, +102,231,119,230,110,229,77,228,20,227,199,225,109,224,20,223,205,221,170,220,188,219,12,219,159,218,115,218,124,218,171,218, +238,218,49,219,105,219,143,219,163,219,167,219,158,219,142,219,125,219,117,219,132,219,187,219,39,220,207,220,180,221,207,222, +22,224,124,225,241,226,97,228,180,229,215,230,184,231,84,232,183,232,241,232,25,233,62,233,108,233,170,233,252,233,109,234, +7,235,208,235,197,236,219,237,2,239,42,240,76,241,100,242,115,243,117,244,99,245,51,246,221,246,100,247,215,247,72,248, +203,248,112,249,61,250,47,251,64,252,101,253,148,254,191,255,217,0,211,1,162,2,65,3,180,3,3,4,57,4,101,4, +146,4,199,4,12,5,99,5,209,5,87,6,244,6,168,7,112,8,68,9,30,10,247,10,199,11,136,12,54,13,206,13, +81,14,191,14,29,15,116,15,208,15,65,16,215,16,160,17,160,18,218,19,72,21,226,22,160,24,119,26,94,28,75,30, +49,32,6,34,193,35,90,37,202,38,17,40,46,41,38,42,254,42,189,43,103,44,0,45,137,45,0,46,107,46,207,46, +55,47,171,47,46,48,185,48,62,49,170,49,237,49,2,50,235,49,175,49,88,49,237,48,116,48,237,47,91,47,194,46, +41,46,148,45,8,45,131,44,4,44,137,43,17,43,156,42,39,42,176,41,47,41,156,40,240,39,37,39,59,38,47,37, +0,36,172,34,52,33,155,31,231,29,32,28,74,26,103,24,106,22,69,20,236,17,93,15,167,12,231,9,58,7,186,4, +112,2,86,0,93,254,118,252,154,250,204,248,21,247,128,245,16,244,197,242,153,241,132,240,130,239,138,238,151,237,160,236, +164,235,170,234,188,233,235,232,66,232,196,231,104,231,32,231,221,230,153,230,86,230,20,230,210,229,136,229,40,229,168,228, +3,228,70,227,131,226,203,225,40,225,152,224,20,224,150,223,29,223,179,222,104,222,72,222,87,222,142,222,223,222,59,223, +151,223,239,223,72,224,165,224,9,225,110,225,204,225,24,226,82,226,127,226,171,226,229,226,52,227,152,227,7,228,118,228, +221,228,56,229,137,229,211,229,25,230,89,230,142,230,185,230,224,230,16,231,84,231,178,231,45,232,195,232,117,233,70,234, +57,235,80,236,136,237,212,238,33,240,92,241,117,242,101,243,43,244,203,244,77,245,191,245,49,246,186,246,109,247,92,248, +138,249,245,250,150,252,100,254,92,0,118,2,166,4,214,6,238,8,211,10,117,12,209,13,237,14,207,15,124,16,244,16, +53,17,70,17,54,17,27,17,16,17,37,17,95,17,182,17,28,18,132,18,223,18,30,19,51,19,14,19,161,18,230,17, +223,16,153,15,38,14,152,12,3,11,122,9,22,8,241,6,31,6,174,5,159,5,227,5,102,6,13,7,195,7,119,8, +26,9,158,9,246,9,29,10,20,10,233,9,175,9,123,9,89,9,78,9,91,9,128,9,193,9,34,10,163,10,61,11, +223,11,113,12,220,12,18,13,16,13,220,12,128,12,5,12,116,11,219,10,74,10,213,9,141,9,121,9,151,9,219,9, +49,10,143,10,238,10,77,11,171,11,0,12,62,12,86,12,59,12,235,11,111,11,218,10,60,10,165,9,28,9,166,8, +70,8,1,8,218,7,209,7,222,7,246,7,12,8,21,8,15,8,249,7,214,7,166,7,107,7,35,7,208,6,123,6, +50,6,3,6,248,5,22,6,91,6,192,6,55,7,181,7,46,8,152,8,231,8,17,9,21,9,244,8,183,8,102,8, +6,8,155,7,40,7,173,6,43,6,167,5,42,5,186,4,93,4,15,4,203,3,139,3,71,3,251,2,164,2,68,2, +224,1,127,1,42,1,230,0,180,0,142,0,102,0,47,0,218,255,96,255,193,254,4,254,49,253,76,252,85,251,76,250, +53,249,26,248,15,247,40,246,120,245,8,245,216,244,225,244,30,245,138,245,36,246,229,246,198,247,187,248,188,249,197,250, +216,251,252,252,55,254,135,255,226,0,59,2,138,3,207,4,14,6,77,7,142,8,200,9,234,10,228,11,172,12,63,13, +160,13,206,13,198,13,133,13,15,13,110,12,185,11,10,11,118,10,11,10,201,9,169,9,165,9,183,9,222,9,23,10, +90,10,154,10,202,10,228,10,235,10,233,10,230,10,228,10,223,10,206,10,168,10,101,10,2,10,132,9,243,8,85,8, +176,7,12,7,114,6,231,5,108,5,255,4,156,4,65,4,234,3,152,3,74,3,250,2,162,2,61,2,200,1,73,1, +198,0,71,0,203,255,83,255,222,254,112,254,21,254,216,253,193,253,203,253,235,253,14,254,42,254,54,254,51,254,32,254, +247,253,174,253,56,253,144,252,188,251,200,250,192,249,168,248,125,247,57,246,216,244,97,243,223,241,95,240,229,238,106,237, +226,235,73,234,164,232,0,231,107,229,242,227,152,226,87,225,42,224,14,223,11,222,41,221,112,220,223,219,117,219,53,219, +35,219,70,219,159,219,40,220,214,220,156,221,115,222,97,223,108,224,154,225,231,226,70,228,166,229,251,230,64,232,125,233, +185,234,245,235,43,237,79,238,93,239,93,240,89,241,96,242,118,243,151,244,182,245,193,246,178,247,138,248,79,249,4,250, +167,250,50,251,159,251,236,251,28,252,56,252,75,252,97,252,127,252,170,252,228,252,47,253,139,253,246,253,112,254,249,254, +145,255,51,0,217,0,122,1,13,2,140,2,245,2,80,3,167,3,2,4,106,4,230,4,126,5,58,6,32,7,49,8, +100,9,173,10,250,11,64,13,121,14,162,15,184,16,180,17,145,18,76,19,232,19,113,20,248,20,139,21,46,22,219,22, +140,23,62,24,249,24,200,25,174,26,162,27,145,28,99,29,6,30,116,30,183,30,222,30,243,30,250,30,238,30,206,30, +160,30,113,30,83,30,83,30,109,30,148,30,179,30,185,30,156,30,91,30,250,29,123,29,219,28,21,28,36,27,15,26, +229,24,189,23,173,22,196,21,8,21,119,20,7,20,175,19,108,19,61,19,34,19,23,19,17,19,7,19,240,18,200,18, +145,18,83,18,22,18,222,17,175,17,143,17,134,17,159,17,226,17,82,18,234,18,160,19,103,20,50,21,251,21,188,22, +105,23,241,23,66,24,78,24,16,24,142,23,209,22,230,21,209,20,147,19,46,18,166,16,10,15,108,13,222,11,112,10, +43,9,16,8,27,7,74,6,152,5,250,4,100,4,196,3,13,3,57,2,67,1,48,0,6,255,211,253,162,252,126,251, +114,250,132,249,188,248,26,248,156,247,66,247,6,247,227,246,205,246,186,246,163,246,137,246,112,246,96,246,92,246,98,246, +100,246,87,246,50,246,247,245,179,245,112,245,53,245,255,244,198,244,128,244,44,244,213,243,134,243,70,243,16,243,219,242, +156,242,76,242,238,241,136,241,33,241,184,240,69,240,189,239,26,239,92,238,136,237,170,236,204,235,250,234,61,234,158,233, +38,233,222,232,201,232,223,232,20,233,90,233,167,233,244,233,63,234,137,234,214,234,39,235,124,235,210,235,40,236,128,236, +224,236,75,237,194,237,64,238,189,238,46,239,140,239,213,239,13,240,58,240,98,240,135,240,171,240,212,240,14,241,107,241, +247,241,179,242,146,243,126,244,100,245,62,246,13,247,217,247,166,248,107,249,22,250,150,250,231,250,19,251,45,251,63,251, +74,251,66,251,29,251,217,250,130,250,40,250,218,249,152,249,87,249,11,249,177,248,81,248,246,247,170,247,103,247,37,247, +220,246,144,246,85,246,64,246,95,246,175,246,30,247,162,247,56,248,237,248,206,249,223,250,15,252,65,253,88,254,71,255, +21,0,211,0,142,1,70,2,239,2,123,3,231,3,67,4,165,4,30,5,172,5,62,6,195,6,49,7,142,7,236,7, +91,8,223,8,111,9,242,9,82,10,134,10,146,10,134,10,113,10,95,10,86,10,82,10,77,10,63,10,35,10,247,9, +186,9,105,9,4,9,134,8,234,7,45,7,79,6,89,5,89,4,93,3,110,2,147,1,202,0,16,0,103,255,211,254, +91,254,2,254,199,253,166,253,156,253,167,253,198,253,249,253,64,254,150,254,247,254,95,255,208,255,80,0,226,0,135,1, +58,2,246,2,182,3,120,4,65,5,21,6,246,6,227,7,213,8,195,9,171,10,139,11,96,12,37,13,218,13,125,14, +17,15,153,15,28,16,164,16,55,17,216,17,126,18,31,19,172,19,27,20,104,20,152,20,181,20,203,20,223,20,237,20, +237,20,218,20,181,20,138,20,104,20,91,20,96,20,108,20,110,20,93,20,59,20,18,20,240,19,221,19,211,19,198,19, +171,19,132,19,89,19,57,19,43,19,48,19,67,19,93,19,121,19,156,19,205,19,16,20,99,20,194,20,37,21,139,21, +242,21,90,22,189,22,22,23,95,23,152,23,197,23,239,23,27,24,72,24,110,24,133,24,141,24,138,24,131,24,129,24, +135,24,144,24,149,24,142,24,118,24,79,24,27,24,220,23,147,23,61,23,214,22,91,22,203,21,41,21,121,20,193,19, +11,19,94,18,187,17,30,17,125,16,213,15,37,15,113,14,188,13,3,13,62,12,101,11,113,10,98,9,67,8,30,7, +250,5,210,4,159,3,93,2,18,1,203,255,146,254,106,253,72,252,27,251,215,249,124,248,29,247,207,245,161,244,150,243, +160,242,177,241,196,240,225,239,22,239,111,238,233,237,118,237,5,237,141,236,15,236,151,235,49,235,222,234,151,234,75,234, +236,233,119,233,241,232,96,232,200,231,35,231,107,230,156,229,187,228,212,227,246,226,44,226,124,225,229,224,104,224,4,224, +188,223,140,223,110,223,91,223,76,223,61,223,47,223,39,223,43,223,65,223,106,223,165,223,246,223,96,224,228,224,130,225, +52,226,240,226,171,227,97,228,16,229,184,229,91,230,251,230,149,231,42,232,182,232,55,233,176,233,33,234,135,234,228,234, +61,235,158,235,14,236,147,236,44,237,208,237,119,238,32,239,204,239,131,240,79,241,50,242,33,243,14,244,233,244,173,245, +93,246,2,247,165,247,71,248,232,248,128,249,15,250,156,250,51,251,221,251,153,252,92,253,22,254,188,254,77,255,214,255, +104,0,14,1,200,1,144,2,95,3,51,4,21,5,19,6,52,7,115,8,194,9,12,11,64,12,85,13,79,14,50,15, +4,16,198,16,117,17,16,18,152,18,20,19,139,19,253,19,102,20,196,20,23,21,105,21,195,21,41,22,157,22,21,23, +133,23,228,23,49,24,112,24,168,24,222,24,12,25,39,25,41,25,16,25,229,24,177,24,125,24,74,24,20,24,213,23, +138,23,53,23,224,22,145,22,71,22,252,21,167,21,65,21,201,20,70,20,191,19,60,19,192,18,69,18,191,17,39,17, +123,16,192,15,255,14,64,14,137,13,224,12,70,12,192,11,79,11,248,10,190,10,156,10,139,10,129,10,119,10,101,10, +74,10,39,10,251,9,197,9,130,9,50,9,218,8,129,8,49,8,242,7,193,7,155,7,122,7,94,7,75,7,73,7, +99,7,149,7,212,7,14,8,51,8,62,8,47,8,16,8,235,7,194,7,147,7,86,7,12,7,187,6,107,6,33,6, +226,5,170,5,112,5,43,5,216,4,121,4,16,4,157,3,26,3,130,2,213,1,30,1,104,0,194,255,50,255,184,254, +76,254,232,253,141,253,64,253,6,253,230,252,224,252,241,252,19,253,69,253,132,253,205,253,29,254,108,254,182,254,247,254, +49,255,102,255,157,255,214,255,14,0,67,0,117,0,164,0,215,0,21,1,94,1,176,1,8,2,99,2,194,2,35,3, +133,3,227,3,57,4,131,4,191,4,242,4,32,5,74,5,108,5,132,5,146,5,148,5,140,5,126,5,107,5,84,5, +54,5,22,5,250,4,231,4,223,4,220,4,216,4,201,4,169,4,122,4,61,4,245,3,165,3,76,3,233,2,125,2, +19,2,176,1,89,1,19,1,220,0,178,0,148,0,128,0,118,0,115,0,113,0,105,0,90,0,72,0,51,0,26,0, +250,255,212,255,166,255,114,255,62,255,12,255,221,254,170,254,106,254,24,254,187,253,96,253,16,253,208,252,155,252,101,252, +39,252,223,251,149,251,80,251,17,251,213,250,144,250,58,250,210,249,90,249,216,248,79,248,189,247,28,247,107,246,177,245, +253,244,91,244,210,243,93,243,245,242,151,242,69,242,8,242,232,241,230,241,252,241,32,242,73,242,118,242,171,242,239,242, +63,243,147,243,224,243,29,244,74,244,110,244,148,244,193,244,243,244,38,245,88,245,139,245,197,245,10,246,93,246,193,246, +43,247,146,247,240,247,62,248,119,248,153,248,168,248,168,248,160,248,151,248,145,248,142,248,142,248,137,248,124,248,106,248, +90,248,78,248,72,248,74,248,84,248,100,248,122,248,149,248,179,248,206,248,227,248,240,248,248,248,6,249,34,249,77,249, +129,249,186,249,243,249,46,250,109,250,179,250,254,250,71,251,135,251,180,251,205,251,216,251,218,251,220,251,229,251,244,251, +12,252,43,252,85,252,140,252,213,252,48,253,156,253,24,254,161,254,54,255,210,255,116,0,26,1,197,1,115,2,33,3, +202,3,108,4,0,5,131,5,248,5,100,6,201,6,39,7,121,7,181,7,217,7,232,7,234,7,230,7,230,7,234,7, +234,7,225,7,204,7,167,7,118,7,63,7,6,7,206,6,159,6,120,6,90,6,76,6,82,6,112,6,170,6,3,7, +120,7,2,8,154,8,57,9,215,9,114,10,11,11,162,11,49,12,177,12,23,13,94,13,138,13,161,13,176,13,195,13, +223,13,7,14,58,14,123,14,202,14,36,15,132,15,224,15,45,16,101,16,136,16,157,16,169,16,178,16,180,16,174,16, +159,16,140,16,126,16,130,16,153,16,191,16,231,16,6,17,20,17,16,17,252,16,220,16,177,16,120,16,48,16,217,15, +119,15,16,15,170,14,78,14,249,13,172,13,105,13,50,13,9,13,244,12,247,12,13,13,47,13,84,13,115,13,129,13, +126,13,111,13,85,13,52,13,13,13,223,12,168,12,105,12,38,12,227,11,169,11,121,11,72,11,13,11,193,10,97,10, +239,9,119,9,254,8,131,8,0,8,110,7,202,6,26,6,103,5,184,4,18,4,111,3,202,2,28,2,103,1,174,0, +244,255,60,255,134,254,206,253,17,253,80,252,142,251,205,250,14,250,79,249,143,248,208,247,22,247,102,246,194,245,40,245, +144,244,242,243,78,243,168,242,9,242,119,241,243,240,123,240,11,240,161,239,65,239,241,238,177,238,126,238,79,238,29,238, +231,237,172,237,118,237,74,237,39,237,7,237,225,236,173,236,109,236,42,236,232,235,172,235,117,235,63,235,5,235,204,234, +160,234,136,234,140,234,175,234,230,234,35,235,93,235,146,235,197,235,249,235,48,236,103,236,155,236,204,236,251,236,46,237, +110,237,191,237,31,238,136,238,242,238,83,239,168,239,244,239,62,240,142,240,234,240,84,241,198,241,63,242,187,242,57,243, +189,243,80,244,247,244,182,245,137,246,105,247,77,248,51,249,28,250,9,251,248,251,228,252,196,253,140,254,55,255,197,255, +60,0,163,0,253,0,74,1,133,1,171,1,187,1,189,1,184,1,179,1,175,1,172,1,170,1,169,1,171,1,172,1, +171,1,169,1,166,1,161,1,162,1,175,1,198,1,223,1,246,1,6,2,13,2,22,2,39,2,67,2,105,2,150,2, +200,2,252,2,50,3,106,3,160,3,204,3,228,3,227,3,206,3,174,3,138,3,102,3,71,3,43,3,18,3,4,3, +7,3,25,3,49,3,67,3,68,3,53,3,29,3,9,3,255,2,251,2,236,2,194,2,124,2,38,2,209,1,138,1, +90,1,56,1,22,1,236,0,194,0,161,0,148,0,158,0,185,0,214,0,230,0,228,0,213,0,196,0,187,0,186,0, +190,0,187,0,175,0,156,0,137,0,129,0,139,0,169,0,215,0,15,1,72,1,121,1,161,1,196,1,231,1,11,2, +49,2,80,2,90,2,75,2,37,2,243,1,195,1,161,1,145,1,143,1,151,1,166,1,191,1,231,1,30,2,89,2, +135,2,157,2,150,2,120,2,78,2,37,2,4,2,233,1,207,1,178,1,149,1,128,1,119,1,119,1,123,1,125,1, +116,1,102,1,88,1,79,1,73,1,64,1,42,1,5,1,212,0,162,0,117,0,81,0,52,0,29,0,12,0,8,0, +23,0,61,0,120,0,193,0,11,1,77,1,131,1,171,1,199,1,220,1,234,1,244,1,251,1,8,2,35,2,85,2, +157,2,251,2,107,3,230,3,102,4,233,4,109,5,237,5,102,6,212,6,47,7,116,7,164,7,195,7,214,7,225,7, +235,7,243,7,250,7,2,8,12,8,22,8,34,8,43,8,46,8,45,8,41,8,35,8,29,8,23,8,13,8,251,7, +221,7,180,7,132,7,85,7,40,7,252,6,208,6,162,6,112,6,64,6,26,6,0,6,238,5,227,5,219,5,213,5, +212,5,219,5,234,5,249,5,0,6,249,5,228,5,200,5,172,5,144,5,114,5,79,5,36,5,241,4,189,4,139,4, +88,4,26,4,205,3,112,3,12,3,174,2,102,2,53,2,19,2,245,1,209,1,165,1,117,1,70,1,27,1,237,0, +174,0,86,0,227,255,88,255,189,254,20,254,95,253,158,252,215,251,21,251,102,250,210,249,86,249,232,248,130,248,34,248, +200,247,120,247,53,247,254,246,201,246,140,246,68,246,240,245,149,245,56,245,219,244,125,244,34,244,206,243,133,243,79,243, +43,243,24,243,19,243,25,243,40,243,69,243,108,243,145,243,168,243,174,243,164,243,143,243,121,243,105,243,91,243,70,243, +36,243,246,242,199,242,166,242,152,242,155,242,163,242,164,242,154,242,135,242,115,242,99,242,84,242,67,242,40,242,4,242, +217,241,177,241,144,241,122,241,106,241,93,241,83,241,75,241,76,241,88,241,110,241,135,241,158,241,180,241,206,241,237,241, +25,242,83,242,155,242,238,242,74,243,174,243,25,244,136,244,248,244,100,245,202,245,42,246,131,246,214,246,35,247,105,247, +168,247,226,247,25,248,84,248,153,248,236,248,81,249,201,249,81,250,226,250,121,251,20,252,176,252,77,253,234,253,131,254, +17,255,142,255,249,255,84,0,168,0,253,0,83,1,165,1,236,1,38,2,84,2,130,2,191,2,16,3,113,3,220,3, +72,4,176,4,23,5,131,5,243,5,99,6,203,6,33,7,96,7,145,7,191,7,245,7,51,8,114,8,173,8,221,8, +7,9,48,9,94,9,145,9,192,9,230,9,252,9,5,10,10,10,21,10,39,10,61,10,80,10,95,10,104,10,112,10, +124,10,141,10,157,10,168,10,172,10,169,10,160,10,154,10,153,10,163,10,185,10,214,10,246,10,22,11,54,11,85,11, +115,11,146,11,183,11,224,11,10,12,49,12,79,12,95,12,89,12,59,12,10,12,201,11,122,11,35,11,202,10,117,10, +42,10,234,9,177,9,120,9,62,9,255,8,188,8,124,8,68,8,22,8,238,7,203,7,169,7,134,7,96,7,57,7, +22,7,247,6,217,6,188,6,154,6,111,6,61,6,4,6,204,5,151,5,103,5,61,5,21,5,235,4,190,4,143,4, +94,4,43,4,244,3,179,3,102,3,14,3,173,2,77,2,248,1,177,1,121,1,81,1,54,1,35,1,18,1,6,1, +249,0,235,0,221,0,210,0,203,0,200,0,200,0,199,0,191,0,176,0,157,0,138,0,122,0,107,0,86,0,58,0, +19,0,227,255,176,255,131,255,93,255,59,255,23,255,233,254,177,254,115,254,50,254,240,253,175,253,113,253,54,253,2,253, +219,252,192,252,175,252,167,252,162,252,154,252,146,252,141,252,137,252,129,252,118,252,103,252,88,252,76,252,79,252,102,252, +143,252,194,252,248,252,44,253,91,253,137,253,187,253,242,253,42,254,94,254,140,254,176,254,200,254,215,254,219,254,211,254, +196,254,178,254,156,254,134,254,118,254,106,254,97,254,90,254,86,254,86,254,86,254,83,254,72,254,49,254,12,254,221,253, +168,253,115,253,68,253,32,253,5,253,242,252,229,252,221,252,222,252,230,252,249,252,25,253,69,253,121,253,181,253,246,253, +58,254,131,254,205,254,17,255,77,255,128,255,168,255,199,255,230,255,11,0,55,0,103,0,152,0,194,0,226,0,253,0, +28,1,65,1,105,1,141,1,165,1,173,1,167,1,150,1,129,1,107,1,81,1,49,1,12,1,228,0,190,0,160,0, +140,0,126,0,113,0,97,0,77,0,58,0,43,0,32,0,22,0,10,0,250,255,229,255,206,255,182,255,161,255,137,255, +104,255,57,255,0,255,193,254,128,254,67,254,10,254,213,253,165,253,127,253,100,253,86,253,88,253,101,253,123,253,149,253, +176,253,203,253,227,253,249,253,12,254,24,254,29,254,23,254,7,254,236,253,198,253,152,253,102,253,53,253,9,253,228,252, +199,252,176,252,157,252,141,252,128,252,121,252,122,252,130,252,143,252,159,252,173,252,182,252,185,252,182,252,176,252,169,252, +163,252,159,252,159,252,161,252,165,252,170,252,175,252,176,252,173,252,165,252,151,252,132,252,109,252,88,252,71,252,58,252, +52,252,55,252,61,252,69,252,79,252,93,252,113,252,137,252,163,252,189,252,214,252,235,252,253,252,17,253,40,253,64,253, +90,253,122,253,158,253,198,253,241,253,28,254,72,254,115,254,153,254,185,254,212,254,234,254,249,254,3,255,7,255,6,255, +254,254,243,254,234,254,227,254,220,254,213,254,207,254,201,254,196,254,195,254,196,254,200,254,203,254,200,254,188,254,166,254, +137,254,106,254,79,254,60,254,51,254,48,254,47,254,48,254,50,254,56,254,70,254,93,254,122,254,156,254,192,254,226,254, +3,255,38,255,77,255,116,255,155,255,192,255,224,255,255,255,30,0,60,0,85,0,107,0,124,0,133,0,142,0,156,0, +178,0,209,0,249,0,35,1,77,1,114,1,147,1,173,1,193,1,206,1,217,1,225,1,231,1,238,1,245,1,250,1, +254,1,0,2,5,2,14,2,27,2,45,2,64,2,81,2,97,2,108,2,112,2,108,2,94,2,68,2,33,2,250,1, +210,1,174,1,141,1,108,1,74,1,40,1,8,1,239,0,226,0,226,0,234,0,244,0,255,0,10,1,21,1,35,1, +53,1,72,1,89,1,104,1,114,1,123,1,129,1,130,1,125,1,114,1,96,1,72,1,49,1,24,1,253,0,226,0, +198,0,171,0,151,0,139,0,135,0,135,0,137,0,137,0,138,0,142,0,151,0,164,0,178,0,189,0,194,0,193,0, +192,0,192,0,192,0,190,0,185,0,175,0,159,0,140,0,124,0,108,0,92,0,77,0,59,0,38,0,18,0,253,255, +230,255,207,255,182,255,155,255,131,255,112,255,96,255,85,255,77,255,71,255,67,255,64,255,66,255,73,255,80,255,81,255, +77,255,69,255,57,255,43,255,28,255,11,255,248,254,226,254,200,254,170,254,137,254,101,254,61,254,17,254,227,253,182,253, +140,253,104,253,73,253,45,253,25,253,11,253,2,253,253,252,253,252,252,252,251,252,249,252,246,252,241,252,237,252,231,252, +220,252,202,252,175,252,143,252,107,252,68,252,29,252,247,251,208,251,167,251,125,251,83,251,45,251,8,251,230,250,203,250, +180,250,160,250,147,250,140,250,134,250,129,250,126,250,124,250,123,250,126,250,135,250,151,250,171,250,194,250,217,250,239,250, +2,251,21,251,39,251,58,251,75,251,90,251,102,251,109,251,113,251,116,251,122,251,132,251,143,251,154,251,165,251,176,251, +185,251,197,251,217,251,239,251,8,252,34,252,60,252,89,252,120,252,154,252,191,252,228,252,9,253,43,253,77,253,112,253, +152,253,195,253,237,253,23,254,63,254,101,254,139,254,175,254,207,254,235,254,255,254,11,255,19,255,25,255,31,255,40,255, +53,255,69,255,88,255,112,255,141,255,176,255,212,255,246,255,23,0,56,0,88,0,122,0,156,0,184,0,202,0,210,0, +212,0,210,0,211,0,217,0,226,0,234,0,240,0,244,0,248,0,1,1,18,1,40,1,65,1,90,1,114,1,136,1, +157,1,180,1,206,1,233,1,4,2,33,2,64,2,97,2,133,2,168,2,198,2,223,2,242,2,255,2,8,3,13,3, +14,3,11,3,4,3,252,2,242,2,233,2,229,2,226,2,222,2,218,2,213,2,208,2,206,2,207,2,211,2,218,2, +225,2,230,2,233,2,233,2,231,2,225,2,216,2,205,2,193,2,177,2,159,2,139,2,118,2,97,2,80,2,68,2, +61,2,58,2,56,2,55,2,54,2,50,2,44,2,35,2,23,2,7,2,246,1,226,1,207,1,190,1,171,1,152,1, +134,1,112,1,89,1,68,1,49,1,32,1,21,1,13,1,7,1,2,1,255,0,254,0,252,0,247,0,243,0,238,0, +232,0,225,0,220,0,213,0,200,0,181,0,156,0,128,0,99,0,74,0,50,0,28,0,10,0,249,255,233,255,220,255, +210,255,201,255,192,255,182,255,171,255,161,255,153,255,150,255,152,255,156,255,160,255,160,255,157,255,153,255,150,255,146,255, +145,255,145,255,142,255,135,255,126,255,114,255,101,255,92,255,85,255,82,255,82,255,85,255,88,255,93,255,97,255,103,255, +109,255,111,255,114,255,117,255,120,255,124,255,133,255,143,255,155,255,168,255,180,255,190,255,198,255,208,255,218,255,226,255, +230,255,230,255,226,255,219,255,214,255,211,255,211,255,211,255,207,255,201,255,196,255,195,255,198,255,207,255,218,255,227,255, +233,255,235,255,238,255,244,255,253,255,7,0,19,0,28,0,34,0,42,0,51,0,63,0,78,0,93,0,104,0,109,0, +108,0,104,0,95,0,80,0,60,0,35,0,7,0,235,255,212,255,192,255,175,255,160,255,149,255,139,255,134,255,133,255, +136,255,139,255,142,255,143,255,144,255,147,255,152,255,157,255,160,255,158,255,151,255,141,255,126,255,108,255,86,255,62,255, +34,255,6,255,235,254,214,254,198,254,181,254,164,254,148,254,131,254,115,254,106,254,101,254,98,254,97,254,97,254,96,254, +100,254,106,254,113,254,119,254,120,254,116,254,110,254,106,254,107,254,116,254,129,254,143,254,158,254,172,254,187,254,204,254, +221,254,234,254,241,254,243,254,240,254,233,254,225,254,218,254,208,254,194,254,180,254,167,254,157,254,154,254,157,254,162,254, +167,254,173,254,178,254,186,254,196,254,205,254,214,254,225,254,236,254,248,254,6,255,25,255,47,255,69,255,93,255,117,255, +141,255,165,255,189,255,208,255,225,255,239,255,249,255,3,0,13,0,21,0,29,0,35,0,37,0,37,0,36,0,35,0, +34,0,33,0,30,0,28,0,27,0,28,0,31,0,34,0,39,0,43,0,50,0,59,0,70,0,81,0,91,0,97,0, +100,0,101,0,102,0,102,0,101,0,96,0,86,0,74,0,61,0,50,0,42,0,35,0,25,0,13,0,0,0,242,255, +232,255,228,255,228,255,230,255,232,255,231,255,230,255,229,255,229,255,232,255,238,255,244,255,249,255,254,255,2,0,8,0, +13,0,16,0,19,0,20,0,20,0,20,0,22,0,23,0,25,0,27,0,28,0,28,0,29,0,30,0,29,0,28,0, +27,0,26,0,28,0,32,0,36,0,38,0,36,0,31,0,22,0,12,0,1,0,246,255,234,255,221,255,210,255,202,255, +198,255,198,255,202,255,209,255,217,255,224,255,231,255,241,255,255,255,12,0,27,0,41,0,52,0,59,0,66,0,71,0, +74,0,75,0,73,0,67,0,58,0,48,0,39,0,31,0,25,0,22,0,20,0,19,0,22,0,28,0,38,0,49,0, +59,0,65,0,66,0,63,0,57,0,51,0,44,0,37,0,29,0,22,0,16,0,12,0,11,0,13,0,18,0,21,0, +23,0,23,0,20,0,15,0,10,0,3,0,251,255,241,255,227,255,210,255,194,255,176,255,157,255,139,255,123,255,106,255, +87,255,70,255,55,255,40,255,28,255,19,255,11,255,5,255,1,255,253,254,248,254,245,254,243,254,238,254,232,254,227,254, +221,254,215,254,210,254,207,254,207,254,209,254,212,254,217,254,225,254,235,254,247,254,5,255,17,255,26,255,31,255,36,255, +38,255,41,255,45,255,49,255,54,255,58,255,63,255,71,255,81,255,92,255,105,255,121,255,133,255,143,255,153,255,162,255, +169,255,175,255,177,255,174,255,168,255,160,255,152,255,146,255,141,255,138,255,136,255,134,255,133,255,135,255,137,255,142,255, +147,255,151,255,155,255,158,255,160,255,164,255,169,255,172,255,176,255,178,255,175,255,171,255,167,255,161,255,156,255,152,255, +147,255,142,255,138,255,135,255,134,255,137,255,142,255,145,255,147,255,145,255,140,255,134,255,130,255,130,255,133,255,135,255, +134,255,129,255,122,255,117,255,113,255,111,255,111,255,110,255,106,255,100,255,91,255,81,255,74,255,67,255,60,255,53,255, +45,255,36,255,29,255,24,255,23,255,24,255,25,255,24,255,22,255,21,255,21,255,22,255,26,255,31,255,33,255,34,255, +33,255,29,255,25,255,20,255,14,255,10,255,6,255,1,255,252,254,247,254,246,254,249,254,253,254,3,255,10,255,15,255, +19,255,24,255,32,255,44,255,59,255,74,255,86,255,97,255,105,255,113,255,123,255,135,255,147,255,161,255,175,255,188,255, +201,255,214,255,226,255,238,255,246,255,254,255,8,0,18,0,29,0,39,0,46,0,50,0,51,0,52,0,55,0,58,0, +62,0,64,0,64,0,61,0,59,0,60,0,63,0,69,0,76,0,81,0,84,0,87,0,90,0,93,0,97,0,101,0, +103,0,105,0,109,0,115,0,121,0,126,0,131,0,133,0,134,0,138,0,143,0,151,0,160,0,166,0,171,0,176,0, +179,0,184,0,189,0,192,0,192,0,189,0,184,0,178,0,173,0,170,0,167,0,164,0,161,0,160,0,162,0,167,0, +172,0,177,0,181,0,184,0,188,0,192,0,195,0,195,0,190,0,181,0,169,0,157,0,148,0,141,0,135,0,128,0, +122,0,115,0,108,0,104,0,105,0,105,0,104,0,104,0,103,0,101,0,100,0,99,0,96,0,91,0,82,0,75,0, +71,0,69,0,69,0,71,0,74,0,76,0,78,0,81,0,85,0,91,0,93,0,92,0,90,0,85,0,77,0,71,0, +65,0,59,0,50,0,38,0,24,0,10,0,251,255,237,255,225,255,214,255,204,255,195,255,189,255,187,255,185,255,184,255, +183,255,182,255,182,255,183,255,182,255,179,255,176,255,171,255,165,255,158,255,153,255,150,255,148,255,146,255,144,255,142,255, +141,255,139,255,138,255,136,255,133,255,128,255,123,255,119,255,114,255,105,255,96,255,86,255,75,255,65,255,58,255,53,255, +52,255,52,255,53,255,56,255,59,255,61,255,65,255,72,255,79,255,85,255,91,255,95,255,98,255,99,255,98,255,98,255, +99,255,97,255,95,255,94,255,93,255,92,255,90,255,86,255,81,255,76,255,74,255,73,255,73,255,74,255,75,255,77,255, +78,255,80,255,83,255,86,255,88,255,92,255,95,255,97,255,101,255,105,255,109,255,113,255,118,255,121,255,124,255,128,255, +131,255,133,255,137,255,140,255,142,255,144,255,145,255,146,255,146,255,145,255,146,255,145,255,144,255,147,255,153,255,160,255, +167,255,175,255,182,255,189,255,196,255,203,255,213,255,221,255,227,255,233,255,238,255,241,255,243,255,245,255,245,255,244,255, +243,255,240,255,238,255,239,255,240,255,241,255,243,255,243,255,243,255,244,255,246,255,249,255,252,255,255,255,0,0,1,0, +3,0,6,0,8,0,11,0,14,0,17,0,19,0,20,0,19,0,19,0,18,0,16,0,15,0,13,0,11,0,8,0, +6,0,5,0,4,0,6,0,9,0,13,0,16,0,18,0,20,0,21,0,21,0,20,0,20,0,19,0,20,0,19,0, +18,0,18,0,17,0,13,0,9,0,7,0,4,0,0,0,254,255,252,255,250,255,248,255,246,255,242,255,238,255,235,255, +234,255,234,255,231,255,226,255,221,255,216,255,212,255,209,255,205,255,202,255,199,255,195,255,192,255,191,255,190,255,187,255, +185,255,182,255,179,255,178,255,176,255,176,255,178,255,180,255,181,255,182,255,184,255,185,255,187,255,191,255,193,255,196,255, +198,255,197,255,196,255,195,255,193,255,190,255,187,255,183,255,179,255,175,255,172,255,169,255,167,255,165,255,164,255,165,255, +167,255,171,255,174,255,178,255,183,255,188,255,192,255,197,255,204,255,208,255,212,255,217,255,222,255,225,255,229,255,233,255, +237,255,239,255,241,255,242,255,242,255,241,255,240,255,239,255,240,255,240,255,239,255,239,255,240,255,239,255,239,255,239,255, +240,255,241,255,245,255,251,255,3,0,10,0,17,0,23,0,28,0,32,0,36,0,39,0,42,0,45,0,48,0,51,0, +54,0,57,0,59,0,63,0,68,0,72,0,74,0,75,0,76,0,77,0,78,0,78,0,79,0,79,0,78,0,78,0, +79,0,80,0,80,0,82,0,83,0,85,0,88,0,92,0,94,0,98,0,101,0,103,0,104,0,105,0,107,0,110,0, +111,0,111,0,110,0,108,0,105,0,101,0,97,0,94,0,90,0,83,0,78,0,73,0,66,0,61,0,58,0,54,0, +52,0,50,0,49,0,47,0,46,0,43,0,39,0,33,0,28,0,22,0,16,0,10,0,5,0,255,255,249,255,246,255, +244,255,241,255,240,255,239,255,238,255,236,255,234,255,232,255,231,255,230,255,227,255,224,255,220,255,216,255,215,255,214,255, +214,255,214,255,214,255,212,255,211,255,212,255,213,255,213,255,215,255,217,255,217,255,217,255,217,255,215,255,214,255,210,255, +207,255,204,255,201,255,200,255,200,255,199,255,198,255,197,255,196,255,195,255,196,255,196,255,196,255,196,255,194,255,192,255, +190,255,190,255,190,255,190,255,190,255,189,255,189,255,189,255,189,255,190,255,193,255,195,255,197,255,197,255,196,255,197,255, +199,255,200,255,203,255,205,255,207,255,207,255,208,255,208,255,208,255,209,255,211,255,213,255,215,255,218,255,221,255,223,255, +224,255,225,255,226,255,225,255,226,255,228,255,229,255,229,255,231,255,233,255,233,255,234,255,235,255,234,255,234,255,235,255, +236,255,237,255,238,255,240,255,241,255,243,255,246,255,247,255,249,255,249,255,250,255,250,255,250,255,250,255,250,255,249,255, +247,255,247,255,248,255,247,255,247,255,249,255,250,255,252,255,255,255,1,0,4,0,6,0,8,0,11,0,13,0,15,0, +19,0,22,0,25,0,28,0,31,0,33,0,35,0,36,0,36,0,36,0,36,0,37,0,37,0,38,0,37,0,37,0, +38,0,38,0,38,0,39,0,39,0,39,0,39,0,38,0,38,0,38,0,37,0,34,0,32,0,30,0,29,0,27,0, +24,0,23,0,22,0,20,0,19,0,20,0,19,0,18,0,18,0,19,0,18,0,19,0,19,0,18,0,17,0,17,0, +16,0,14,0,13,0,13,0,12,0,9,0,6,0,5,0,3,0,0,0,253,255,250,255,248,255,245,255,242,255,238,255, +235,255,231,255,228,255,226,255,223,255,219,255,216,255,214,255,213,255,211,255,210,255,209,255,208,255,207,255,207,255,208,255, +209,255,211,255,212,255,214,255,216,255,217,255,218,255,220,255,221,255,221,255,221,255,220,255,221,255,220,255,219,255,217,255, +216,255,213,255,210,255,209,255,209,255,209,255,210,255,212,255,214,255,216,255,218,255,219,255,220,255,220,255,220,255,221,255, +221,255,220,255,219,255,218,255,217,255,216,255,217,255,217,255,219,255,220,255,221,255,222,255,224,255,226,255,228,255,231,255, +233,255,234,255,235,255,235,255,236,255,238,255,239,255,239,255,240,255,241,255,242,255,243,255,245,255,247,255,249,255,248,255, +247,255,246,255,244,255,243,255,244,255,243,255,243,255,243,255,242,255,241,255,242,255,242,255,243,255,244,255,243,255,243,255, +242,255,242,255,241,255,241,255,240,255,240,255,240,255,239,255,239,255,239,255,239,255,239,255,239,255,240,255,241,255,241,255, +240,255,241,255,241,255,240,255,239,255,240,255,239,255,238,255,238,255,237,255,236,255,236,255,235,255,234,255,234,255,235,255, +235,255,234,255,234,255,235,255,235,255,234,255,235,255,234,255,234,255,234,255,235,255,234,255,233,255,232,255,231,255,231,255, +231,255,231,255,232,255,232,255,232,255,231,255,231,255,230,255,230,255,229,255,229,255,229,255,229,255,229,255,229,255,230,255, +232,255,234,255,235,255,236,255,237,255,237,255,237,255,237,255,237,255,236,255,236,255,237,255,236,255,236,255,238,255,239,255, +240,255,240,255,241,255,241,255,239,255,238,255,238,255,237,255,235,255,234,255,234,255,233,255,233,255,232,255,231,255,231,255, +232,255,233,255,233,255,234,255,234,255,235,255,235,255,235,255,236,255,237,255,238,255,240,255,242,255,243,255,243,255,243,255, +243,255,243,255,243,255,243,255,243,255,243,255,242,255,242,255,242,255,242,255,242,255,242,255,243,255,244,255,245,255,245,255, +246,255,246,255,246,255,246,255,247,255,248,255,250,255,250,255,250,255,251,255,251,255,249,255,250,255,250,255,249,255,249,255, +248,255,246,255,244,255,243,255,240,255,240,255,241,255,240,255,239,255,239,255,239,255,240,255,241,255,241,255,241,255,241,255, +241,255,241,255,241,255,241,255,241,255,241,255,239,255,239,255,238,255,237,255,237,255,237,255,237,255,237,255,238,255,238,255, +238,255,239,255,240,255,241,255,242,255,242,255,242,255,243,255,245,255,246,255,247,255,247,255,248,255,248,255,248,255,248,255, +248,255,247,255,247,255,247,255,247,255,246,255,246,255,244,255,243,255,243,255,242,255,241,255,241,255,241,255,241,255,240,255, +241,255,240,255,240,255,240,255,242,255,243,255,244,255,245,255,246,255,247,255,247,255,248,255,249,255,249,255,248,255,248,255, +247,255,246,255,247,255,247,255,247,255,247,255,248,255,247,255,246,255,247,255,248,255,249,255,250,255,250,255,250,255,251,255, +251,255,250,255,251,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255, +253,255,253,255,251,255,251,255,251,255,251,255,250,255,251,255,251,255,250,255,251,255,251,255,250,255,250,255,252,255,252,255, +253,255,253,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,3,0,3,0,3,0,2,0,1,0,0,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255, +252,255,252,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255, +250,255,251,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/cowhurt1.pcm b/src/client/sound/data/cowhurt1.pcm new file mode 100755 index 0000000..8663969 --- /dev/null +++ b/src/client/sound/data/cowhurt1.pcm @@ -0,0 +1,1249 @@ +unsigned char PCM_cowhurt1[39886] = { +1,0,0,0,2,0,0,0,68,172,0,0,223,77,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +0,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,253,255,253,255,253,255,252,255,252,255,251,255,250,255,252,255,252,255,252,255,253,255,254,255,254,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,254,255,253,255,254,255,255,255,255,255,1,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,1,0,3,0,3,0,4,0,5,0,3,0,3,0,2,0,0,0,1,0, +0,0,255,255,1,0,255,255,254,255,254,255,253,255,251,255,251,255,250,255,249,255,249,255,250,255,250,255,248,255,247,255, +246,255,246,255,246,255,247,255,249,255,250,255,250,255,250,255,249,255,248,255,248,255,249,255,251,255,254,255,1,0,3,0, +4,0,2,0,0,0,253,255,250,255,246,255,243,255,244,255,246,255,250,255,255,255,2,0,4,0,4,0,3,0,2,0, +0,0,254,255,251,255,250,255,250,255,250,255,251,255,251,255,249,255,245,255,240,255,234,255,229,255,227,255,226,255,228,255, +230,255,233,255,234,255,232,255,229,255,225,255,221,255,219,255,218,255,216,255,217,255,216,255,213,255,211,255,208,255,207,255, +207,255,209,255,214,255,219,255,224,255,229,255,232,255,235,255,235,255,233,255,233,255,235,255,241,255,248,255,251,255,250,255, +243,255,234,255,227,255,226,255,231,255,241,255,255,255,15,0,29,0,37,0,38,0,30,0,17,0,4,0,249,255,246,255, +248,255,253,255,8,0,21,0,32,0,37,0,29,0,15,0,2,0,254,255,13,0,39,0,62,0,73,0,64,0,39,0, +9,0,239,255,225,255,225,255,238,255,5,0,28,0,43,0,49,0,44,0,33,0,23,0,14,0,12,0,19,0,35,0, +60,0,87,0,109,0,117,0,111,0,100,0,88,0,78,0,68,0,59,0,50,0,43,0,36,0,30,0,24,0,20,0, +22,0,36,0,56,0,71,0,76,0,65,0,42,0,16,0,254,255,244,255,243,255,247,255,2,0,24,0,57,0,93,0, +122,0,129,0,110,0,77,0,42,0,19,0,12,0,16,0,30,0,51,0,67,0,74,0,64,0,38,0,11,0,252,255, +254,255,13,0,37,0,65,0,92,0,116,0,133,0,138,0,134,0,131,0,134,0,146,0,161,0,169,0,167,0,154,0, +129,0,95,0,57,0,21,0,249,255,236,255,238,255,250,255,6,0,16,0,26,0,38,0,51,0,63,0,74,0,81,0, +81,0,77,0,68,0,55,0,44,0,41,0,47,0,62,0,84,0,103,0,113,0,111,0,94,0,67,0,37,0,9,0, +241,255,220,255,207,255,207,255,220,255,244,255,15,0,35,0,43,0,42,0,36,0,32,0,31,0,37,0,53,0,77,0, +104,0,126,0,139,0,141,0,136,0,126,0,114,0,102,0,88,0,71,0,50,0,26,0,1,0,233,255,217,255,213,255, +224,255,251,255,36,0,83,0,128,0,163,0,184,0,190,0,185,0,177,0,171,0,167,0,162,0,155,0,146,0,139,0, +136,0,134,0,129,0,116,0,99,0,87,0,83,0,87,0,95,0,106,0,112,0,118,0,128,0,142,0,158,0,173,0, +182,0,181,0,172,0,163,0,161,0,169,0,185,0,192,0,180,0,153,0,127,0,115,0,119,0,126,0,125,0,113,0, +93,0,74,0,57,0,43,0,38,0,46,0,61,0,82,0,110,0,141,0,174,0,204,0,231,0,2,1,28,1,54,1, +76,1,93,1,101,1,97,1,76,1,37,1,250,0,215,0,195,0,189,0,196,0,205,0,202,0,182,0,154,0,131,0, +124,0,129,0,137,0,145,0,157,0,175,0,195,0,215,0,227,0,226,0,215,0,194,0,163,0,131,0,103,0,86,0, +84,0,92,0,99,0,102,0,103,0,106,0,107,0,98,0,82,0,60,0,37,0,25,0,31,0,47,0,65,0,80,0, +93,0,103,0,105,0,102,0,95,0,87,0,80,0,67,0,43,0,27,0,26,0,35,0,45,0,35,0,254,255,197,255, +136,255,95,255,83,255,88,255,93,255,82,255,51,255,5,255,207,254,160,254,123,254,83,254,22,254,188,253,81,253,240,252, +166,252,106,252,38,252,204,251,99,251,2,251,183,250,136,250,131,250,178,250,19,251,159,251,76,252,8,253,191,253,103,254, +0,255,143,255,17,0,121,0,193,0,3,1,102,1,233,1,91,2,135,2,83,2,200,1,12,1,95,0,6,0,37,0, +177,0,107,1,9,2,92,2,95,2,33,2,192,1,97,1,27,1,255,0,28,1,128,1,45,2,253,2,170,3,239,3, +165,3,215,2,177,1,105,0,63,255,99,254,223,253,150,253,100,253,52,253,242,252,147,252,31,252,155,251,22,251,159,250, +77,250,60,250,121,250,252,250,188,251,167,252,167,253,157,254,94,255,221,255,41,0,82,0,92,0,58,0,223,255,94,255, +217,254,121,254,102,254,161,254,9,255,105,255,151,255,136,255,78,255,252,254,167,254,112,254,116,254,182,254,54,255,226,255, +147,0,32,1,106,1,104,1,49,1,229,0,156,0,105,0,67,0,26,0,236,255,190,255,135,255,47,255,165,254,246,253, +78,253,224,252,180,252,175,252,182,252,182,252,174,252,166,252,151,252,134,252,139,252,185,252,24,253,161,253,57,254,198,254, +41,255,81,255,78,255,60,255,52,255,75,255,127,255,193,255,241,255,233,255,149,255,0,255,80,254,184,253,94,253,83,253, +154,253,41,254,227,254,147,255,6,0,32,0,229,255,116,255,240,254,131,254,69,254,61,254,96,254,152,254,197,254,214,254, +197,254,149,254,68,254,217,253,107,253,23,253,246,252,30,253,128,253,241,253,76,254,127,254,140,254,124,254,75,254,244,253, +137,253,44,253,245,252,241,252,20,253,64,253,92,253,103,253,104,253,110,253,132,253,165,253,199,253,235,253,15,254,45,254, +72,254,100,254,136,254,187,254,3,255,89,255,177,255,252,255,32,0,18,0,239,255,222,255,243,255,36,0,99,0,171,0, +253,0,60,1,65,1,249,0,109,0,204,255,92,255,77,255,156,255,31,0,165,0,9,1,52,1,31,1,216,0,117,0, +28,0,253,255,50,0,169,0,48,1,153,1,211,1,226,1,194,1,99,1,198,0,9,0,100,255,16,255,30,255,117,255, +231,255,76,0,149,0,196,0,219,0,218,0,211,0,225,0,17,1,96,1,194,1,32,2,99,2,137,2,150,2,146,2, +132,2,107,2,70,2,46,2,58,2,90,2,108,2,73,2,215,1,62,1,206,0,173,0,199,0,241,0,1,1,219,0, +150,0,96,0,87,0,115,0,156,0,188,0,203,0,205,0,208,0,219,0,238,0,11,1,46,1,74,1,73,1,47,1, +20,1,14,1,39,1,83,1,111,1,87,1,10,1,170,0,103,0,96,0,162,0,31,1,178,1,51,2,140,2,195,2, +226,2,236,2,227,2,189,2,114,2,23,2,206,1,174,1,186,1,232,1,28,2,53,2,27,2,211,1,119,1,39,1, +1,1,3,1,7,1,252,0,238,0,243,0,18,1,70,1,120,1,139,1,117,1,79,1,51,1,37,1,27,1,2,1, +210,0,154,0,116,0,96,0,86,0,84,0,92,0,114,0,142,0,149,0,125,0,86,0,60,0,67,0,108,0,157,0, +183,0,188,0,203,0,0,1,93,1,198,1,27,2,74,2,80,2,57,2,25,2,253,1,226,1,189,1,143,1,104,1, +81,1,59,1,26,1,239,0,198,0,172,0,169,0,184,0,212,0,1,1,63,1,135,1,210,1,24,2,75,2,98,2, +100,2,94,2,89,2,92,2,87,2,61,2,31,2,9,2,239,1,192,1,119,1,29,1,200,0,149,0,148,0,191,0, +4,1,81,1,148,1,180,1,173,1,148,1,128,1,126,1,148,1,190,1,241,1,36,2,79,2,119,2,158,2,189,2, +188,2,147,2,86,2,30,2,243,1,220,1,226,1,250,1,24,2,43,2,35,2,254,1,199,1,141,1,95,1,74,1, +82,1,120,1,182,1,248,1,37,2,54,2,49,2,32,2,9,2,235,1,195,1,149,1,107,1,83,1,77,1,68,1, +34,1,235,0,192,0,188,0,215,0,245,0,253,0,237,0,224,0,241,0,38,1,114,1,183,1,215,1,208,1,177,1, +141,1,122,1,124,1,137,1,149,1,153,1,134,1,77,1,244,0,163,0,119,0,99,0,80,0,68,0,74,0,91,0, +107,0,109,0,94,0,60,0,255,255,164,255,69,255,3,255,230,254,216,254,202,254,187,254,170,254,130,254,40,254,159,253, +5,253,114,252,229,251,94,251,221,250,89,250,212,249,94,249,253,248,171,248,95,248,18,248,209,247,185,247,238,247,129,248, +93,249,102,250,135,251,177,252,203,253,186,254,120,255,15,0,138,0,252,0,121,1,2,2,131,2,242,2,79,3,137,3, +119,3,3,3,74,2,148,1,23,1,235,0,24,1,135,1,253,1,69,2,80,2,36,2,212,1,116,1,25,1,212,0, +185,0,212,0,40,1,154,1,250,1,33,2,250,1,115,1,143,0,119,255,102,254,134,253,233,252,128,252,50,252,239,251, +171,251,88,251,242,250,137,250,55,250,15,250,25,250,83,250,194,250,103,251,45,252,243,252,166,253,67,254,206,254,80,255, +191,255,17,0,65,0,69,0,13,0,164,255,49,255,221,254,193,254,225,254,54,255,167,255,16,0,74,0,64,0,250,255, +157,255,87,255,66,255,109,255,201,255,57,0,161,0,230,0,231,0,152,0,14,0,109,255,224,254,123,254,55,254,10,254, +239,253,215,253,177,253,123,253,50,253,204,252,81,252,217,251,125,251,84,251,104,251,163,251,221,251,250,251,248,251,240,251, +246,251,11,252,55,252,127,252,212,252,35,253,107,253,173,253,239,253,50,254,96,254,117,254,135,254,161,254,180,254,180,254, +168,254,155,254,144,254,127,254,107,254,93,254,103,254,150,254,226,254,54,255,130,255,179,255,172,255,103,255,251,254,135,254, +34,254,213,253,162,253,138,253,131,253,117,253,75,253,8,253,188,252,119,252,70,252,49,252,51,252,72,252,116,252,182,252, +251,252,48,253,76,253,77,253,49,253,0,253,204,252,163,252,143,252,158,252,208,252,22,253,93,253,156,253,198,253,218,253, +224,253,230,253,240,253,253,253,20,254,68,254,137,254,207,254,3,255,27,255,29,255,23,255,20,255,26,255,50,255,97,255, +170,255,255,255,72,0,117,0,139,0,138,0,111,0,69,0,28,0,255,255,243,255,253,255,30,0,70,0,89,0,68,0, +14,0,205,255,158,255,149,255,175,255,226,255,39,0,129,0,240,0,99,1,179,1,189,1,117,1,239,0,87,0,231,255, +203,255,9,0,133,0,8,1,93,1,113,1,82,1,25,1,230,0,214,0,240,0,46,1,132,1,234,1,108,2,10,3, +139,3,183,3,132,3,12,3,127,2,28,2,254,1,20,2,71,2,116,2,122,2,91,2,44,2,251,1,218,1,193,1, +149,1,78,1,0,1,189,0,153,0,157,0,181,0,198,0,190,0,158,0,124,0,119,0,151,0,208,0,18,1,77,1, +115,1,131,1,125,1,105,1,92,1,95,1,102,1,103,1,101,1,99,1,103,1,108,1,99,1,75,1,49,1,28,1, +28,1,73,1,167,1,38,2,179,2,64,3,176,3,230,3,224,3,178,3,114,3,45,3,247,2,223,2,220,2,214,2, +183,2,118,2,28,2,183,1,85,1,3,1,204,0,183,0,196,0,236,0,40,1,99,1,127,1,120,1,96,1,75,1, +68,1,74,1,86,1,111,1,161,1,225,1,21,2,43,2,33,2,251,1,194,1,139,1,110,1,103,1,104,1,112,1, +141,1,185,1,227,1,248,1,248,1,229,1,202,1,179,1,175,1,199,1,250,1,59,2,128,2,200,2,10,3,52,3, +57,3,24,3,229,2,175,2,124,2,70,2,7,2,192,1,125,1,77,1,52,1,48,1,52,1,53,1,61,1,87,1, +122,1,158,1,199,1,247,1,47,2,108,2,162,2,205,2,250,2,40,3,80,3,101,3,85,3,33,3,221,2,154,2, +106,2,96,2,123,2,171,2,226,2,22,3,48,3,41,3,14,3,249,2,1,3,44,3,97,3,132,3,143,3,133,3, +110,3,86,3,58,3,25,3,244,2,196,2,135,2,79,2,43,2,31,2,41,2,54,2,40,2,245,1,174,1,109,1, +76,1,91,1,148,1,209,1,240,1,245,1,240,1,242,1,16,2,78,2,156,2,232,2,24,3,21,3,228,2,158,2, +94,2,60,2,56,2,58,2,44,2,12,2,216,1,151,1,89,1,34,1,235,0,188,0,171,0,199,0,11,1,86,1, +133,1,161,1,189,1,209,1,202,1,161,1,96,1,25,1,221,0,162,0,84,0,238,255,119,255,254,254,149,254,63,254, +243,253,163,253,69,253,212,252,97,252,1,252,171,251,65,251,190,250,62,250,210,249,123,249,57,249,13,249,244,248,239,248, +236,248,227,248,234,248,36,249,157,249,91,250,87,251,119,252,153,253,144,254,65,255,189,255,46,0,172,0,56,1,209,1, +116,2,7,3,107,3,120,3,17,3,79,2,127,1,240,0,208,0,45,1,233,1,188,2,85,3,121,3,28,3,81,2, +64,1,47,0,115,255,68,255,171,255,129,0,126,1,84,2,201,2,177,2,243,1,167,0,38,255,211,253,232,252,111,252, +92,252,142,252,188,252,166,252,48,252,103,251,118,250,144,249,230,248,152,248,178,248,39,249,205,249,127,250,45,251,204,251, +86,252,210,252,93,253,7,254,186,254,76,255,159,255,174,255,124,255,10,255,116,254,247,253,206,253,18,254,173,254,98,255, +232,255,19,0,224,255,107,255,229,254,133,254,112,254,174,254,45,255,205,255,95,0,182,0,179,0,83,0,194,255,49,255, +187,254,109,254,69,254,49,254,24,254,232,253,148,253,24,253,127,252,226,251,94,251,12,251,240,250,236,250,224,250,200,250, +169,250,132,250,96,250,81,250,109,250,195,250,77,251,237,251,135,252,12,253,104,253,127,253,88,253,34,253,16,253,54,253, +144,253,18,254,162,254,21,255,59,255,1,255,116,254,195,253,37,253,198,252,192,252,32,253,210,253,154,254,64,255,163,255, +175,255,90,255,183,254,254,253,106,253,29,253,28,253,80,253,162,253,249,253,47,254,32,254,195,253,56,253,179,252,98,252, +85,252,127,252,197,252,10,253,51,253,51,253,19,253,229,252,175,252,122,252,77,252,41,252,24,252,34,252,53,252,71,252, +89,252,105,252,128,252,184,252,21,253,134,253,244,253,77,254,133,254,162,254,179,254,189,254,202,254,229,254,9,255,52,255, +112,255,177,255,201,255,155,255,59,255,221,254,168,254,173,254,233,254,80,255,197,255,37,0,85,0,74,0,15,0,190,255, +110,255,66,255,91,255,194,255,97,0,13,1,147,1,210,1,190,1,91,1,194,0,48,0,212,255,187,255,228,255,69,0, +183,0,9,1,30,1,243,0,160,0,76,0,17,0,245,255,237,255,248,255,31,0,111,0,222,0,83,1,189,1,30,2, +115,2,194,2,22,3,105,3,153,3,136,3,64,3,243,2,208,2,219,2,250,2,9,3,244,2,196,2,143,2,83,2, +14,2,206,1,164,1,158,1,189,1,239,1,16,2,8,2,224,1,173,1,116,1,51,1,241,0,202,0,222,0,39,1, +126,1,204,1,253,1,255,1,213,1,157,1,121,1,121,1,158,1,220,1,40,2,127,2,218,2,20,3,25,3,244,2, +186,2,135,2,116,2,128,2,160,2,208,2,16,3,87,3,159,3,221,3,253,3,247,3,222,3,204,3,199,3,195,3, +175,3,135,3,80,3,10,3,181,2,90,2,11,2,209,1,174,1,159,1,162,1,178,1,199,1,228,1,11,2,43,2, +53,2,35,2,253,1,215,1,195,1,196,1,213,1,227,1,219,1,191,1,157,1,141,1,163,1,208,1,240,1,235,1, +200,1,156,1,118,1,102,1,124,1,183,1,3,2,76,2,135,2,169,2,174,2,160,2,141,2,133,2,149,2,193,2, +243,2,30,3,72,3,111,3,130,3,122,3,89,3,47,3,19,3,6,3,249,2,214,2,143,2,41,2,187,1,91,1, +14,1,215,0,193,0,221,0,56,1,189,1,71,2,185,2,12,3,56,3,66,3,58,3,45,3,44,3,78,3,154,3, +251,3,74,4,97,4,54,4,214,3,94,3,246,2,184,2,162,2,172,2,208,2,6,3,65,3,105,3,104,3,58,3, +248,2,208,2,215,2,1,3,58,3,118,3,167,3,192,3,192,3,165,3,113,3,45,3,230,2,161,2,110,2,95,2, +100,2,93,2,62,2,10,2,206,1,151,1,97,1,30,1,211,0,144,0,105,0,109,0,159,0,241,0,73,1,141,1, +176,1,171,1,128,1,48,1,192,0,77,0,4,0,249,255,23,0,43,0,14,0,188,255,72,255,190,254,37,254,131,253, +224,252,71,252,198,251,118,251,96,251,95,251,68,251,244,250,118,250,233,249,113,249,34,249,251,248,248,248,42,249,147,249, +21,250,160,250,67,251,15,252,251,252,231,253,175,254,72,255,197,255,72,0,236,0,178,1,119,2,3,3,48,3,249,2, +112,2,190,1,23,1,167,0,137,0,193,0,55,1,188,1,19,2,15,2,173,1,1,1,41,0,89,255,192,254,131,254, +192,254,121,255,118,0,101,1,255,1,8,2,108,1,78,0,235,254,137,253,99,252,154,251,44,251,14,251,42,251,76,251, +62,251,234,250,86,250,153,249,219,248,74,248,254,247,253,247,76,248,228,248,167,249,124,250,81,251,17,252,168,252,24,253, +98,253,137,253,147,253,127,253,83,253,38,253,14,253,22,253,74,253,160,253,245,253,36,254,36,254,0,254,200,253,139,253, +90,253,72,253,105,253,185,253,25,254,98,254,138,254,163,254,179,254,190,254,208,254,239,254,18,255,38,255,18,255,201,254, +90,254,215,253,71,253,203,252,125,252,82,252,53,252,22,252,234,251,170,251,79,251,220,250,98,250,246,249,185,249,194,249, +9,250,124,250,3,251,129,251,219,251,7,252,2,252,224,251,190,251,185,251,219,251,39,252,142,252,240,252,49,253,67,253, +28,253,195,252,82,252,230,251,156,251,130,251,148,251,208,251,43,252,136,252,199,252,219,252,202,252,168,252,123,252,78,252, +56,252,79,252,134,252,197,252,243,252,5,253,251,252,219,252,164,252,93,252,32,252,2,252,248,251,239,251,229,251,219,251, +203,251,181,251,155,251,136,251,134,251,148,251,168,251,191,251,220,251,3,252,53,252,116,252,197,252,38,253,144,253,243,253, +68,254,131,254,179,254,210,254,224,254,224,254,222,254,237,254,23,255,82,255,132,255,141,255,107,255,45,255,224,254,155,254, +124,254,138,254,189,254,16,255,109,255,187,255,232,255,239,255,222,255,210,255,219,255,250,255,42,0,96,0,138,0,163,0, +180,0,192,0,194,0,180,0,144,0,95,0,61,0,63,0,92,0,123,0,139,0,133,0,96,0,34,0,226,255,188,255, +199,255,17,0,142,0,37,1,178,1,22,2,73,2,91,2,103,2,129,2,169,2,212,2,8,3,80,3,163,3,246,3, +54,4,75,4,41,4,223,3,128,3,28,3,195,2,127,2,74,2,41,2,36,2,54,2,80,2,103,2,119,2,135,2, +167,2,205,2,212,2,177,2,126,2,83,2,51,2,37,2,53,2,96,2,153,2,221,2,27,3,67,3,76,3,41,3, +217,2,113,2,15,2,213,1,212,1,16,2,134,2,37,3,200,3,62,4,95,4,49,4,223,3,148,3,108,3,108,3, +141,3,206,3,52,4,183,4,64,5,182,5,251,5,250,5,183,5,90,5,10,5,219,4,197,4,187,4,181,4,175,4, +162,4,136,4,106,4,73,4,29,4,225,3,158,3,93,3,33,3,246,2,242,2,18,3,61,3,104,3,147,3,178,3, +192,3,193,3,175,3,136,3,91,3,57,3,41,3,49,3,86,3,134,3,159,3,152,3,126,3,98,3,70,3,40,3, +19,3,28,3,64,3,111,3,160,3,206,3,241,3,7,4,24,4,40,4,44,4,33,4,20,4,17,4,32,4,71,4, +122,4,166,4,184,4,167,4,120,4,54,4,229,3,141,3,55,3,232,2,159,2,98,2,60,2,50,2,65,2,106,2, +171,2,243,2,46,3,78,3,79,3,60,3,36,3,20,3,28,3,63,3,106,3,141,3,165,3,172,3,151,3,108,3, +48,3,231,2,159,2,105,2,77,2,89,2,144,2,223,2,42,3,93,3,105,3,75,3,18,3,231,2,241,2,45,3, +116,3,159,3,146,3,84,3,0,3,164,2,60,2,197,1,70,1,214,0,141,0,119,0,141,0,165,0,135,0,34,0, +153,255,24,255,187,254,138,254,112,254,85,254,59,254,36,254,7,254,231,253,195,253,134,253,45,253,196,252,79,252,223,251, +141,251,91,251,70,251,84,251,132,251,212,251,74,252,234,252,174,253,123,254,48,255,192,255,54,0,162,0,21,1,157,1, +60,2,238,2,160,3,45,4,94,4,22,4,114,3,177,2,19,2,204,1,239,1,86,2,179,2,211,2,172,2,67,2, +154,1,191,0,204,255,0,255,167,254,225,254,149,255,129,0,92,1,230,1,225,1,59,1,37,0,235,254,190,253,190,252, +5,252,169,251,163,251,196,251,203,251,138,251,255,250,69,250,119,249,174,248,21,248,215,247,228,247,28,248,119,248,239,248, +125,249,33,250,209,250,109,251,243,251,124,252,253,252,85,253,117,253,99,253,45,253,242,252,206,252,221,252,46,253,168,253, +24,254,86,254,86,254,31,254,199,253,104,253,26,253,229,252,214,252,248,252,66,253,152,253,223,253,4,254,4,254,238,253, +204,253,160,253,108,253,48,253,227,252,135,252,36,252,190,251,81,251,227,250,125,250,32,250,203,249,134,249,75,249,6,249, +178,248,94,248,26,248,247,247,16,248,112,248,5,249,172,249,57,250,133,250,156,250,153,250,132,250,102,250,93,250,122,250, +185,250,19,251,127,251,223,251,14,252,250,251,162,251,19,251,121,250,8,250,215,249,235,249,71,250,217,250,122,251,7,252, +105,252,145,252,125,252,63,252,234,251,146,251,88,251,77,251,103,251,150,251,196,251,207,251,167,251,85,251,232,250,108,250, +2,250,208,249,223,249,26,250,109,250,194,250,19,251,104,251,201,251,52,252,163,252,21,253,145,253,33,254,190,254,91,255, +223,255,50,0,78,0,70,0,45,0,24,0,26,0,57,0,111,0,176,0,227,0,237,0,192,0,94,0,225,255,119,255, +80,255,131,255,252,255,131,0,231,0,30,1,59,1,69,1,49,1,1,1,213,0,214,0,7,1,75,1,130,1,151,1, +137,1,92,1,13,1,170,0,79,0,13,0,245,255,22,0,98,0,189,0,28,1,123,1,212,1,33,2,88,2,120,2, +141,2,170,2,213,2,2,3,46,3,109,3,202,3,52,4,155,4,250,4,67,5,87,5,41,5,201,4,99,4,44,4, +50,4,81,4,104,4,112,4,119,4,126,4,121,4,98,4,62,4,20,4,231,3,197,3,189,3,217,3,14,4,59,4, +76,4,56,4,1,4,177,3,89,3,18,3,241,2,242,2,244,2,224,2,180,2,122,2,64,2,9,2,203,1,128,1, +61,1,23,1,13,1,22,1,58,1,128,1,217,1,43,2,100,2,127,2,135,2,150,2,186,2,239,2,50,3,123,3, +187,3,242,3,40,4,82,4,95,4,85,4,62,4,26,4,229,3,180,3,169,3,192,3,219,3,232,3,229,3,209,3, +178,3,131,3,59,3,219,2,119,2,46,2,7,2,230,1,173,1,97,1,19,1,197,0,120,0,62,0,37,0,39,0, +56,0,76,0,82,0,66,0,42,0,36,0,53,0,74,0,94,0,120,0,152,0,174,0,175,0,157,0,126,0,82,0, +34,0,0,0,222,255,163,255,86,255,10,255,187,254,102,254,12,254,181,253,108,253,50,253,253,252,214,252,199,252,194,252, +185,252,178,252,172,252,140,252,74,252,252,251,180,251,115,251,67,251,48,251,51,251,52,251,44,251,30,251,30,251,64,251, +128,251,198,251,9,252,106,252,5,253,219,253,209,254,206,255,203,0,201,1,183,2,131,3,47,4,210,4,125,5,48,6, +207,6,52,7,74,7,40,7,244,6,189,6,127,6,64,6,6,6,198,5,116,5,11,5,151,4,31,4,169,3,54,3, +193,2,83,2,1,2,220,1,225,1,255,1,37,2,68,2,72,2,41,2,251,1,204,1,154,1,112,1,118,1,175,1, +241,1,35,2,69,2,86,2,97,2,132,2,187,2,228,2,245,2,254,2,17,3,66,3,151,3,251,3,92,4,187,4, +12,5,54,5,55,5,36,5,2,5,200,4,127,4,67,4,26,4,231,3,145,3,34,3,172,2,53,2,193,1,81,1, +217,0,88,0,221,255,122,255,51,255,249,254,184,254,98,254,249,253,149,253,87,253,63,253,54,253,55,253,75,253,87,253, +65,253,16,253,219,252,186,252,196,252,250,252,53,253,100,253,154,253,232,253,69,254,169,254,17,255,116,255,200,255,13,0, +68,0,111,0,169,0,11,1,146,1,26,2,126,2,171,2,184,2,201,2,232,2,8,3,28,3,31,3,23,3,16,3, +15,3,14,3,8,3,249,2,209,2,117,2,230,1,77,1,210,0,123,0,50,0,217,255,100,255,226,254,91,254,178,253, +208,252,200,251,171,250,134,249,126,248,164,247,202,246,205,245,193,244,190,243,206,242,5,242,112,241,253,240,161,240,112,240, +111,240,151,240,249,240,173,241,173,242,205,243,220,244,214,245,214,246,223,247,220,248,201,249,194,250,217,251,252,252,11,254, +247,254,196,255,139,0,103,1,94,2,76,3,255,3,102,4,170,4,254,4,108,5,223,5,74,6,179,6,32,7,135,7, +200,7,185,7,90,7,224,6,117,6,12,6,141,5,0,5,122,4,254,3,135,3,25,3,188,2,114,2,62,2,19,2, +221,1,146,1,52,1,204,0,107,0,30,0,228,255,187,255,167,255,158,255,138,255,102,255,72,255,57,255,52,255,52,255, +49,255,30,255,3,255,250,254,4,255,21,255,57,255,115,255,176,255,232,255,34,0,98,0,167,0,240,0,49,1,107,1, +165,1,218,1,6,2,44,2,83,2,136,2,204,2,255,2,255,2,202,2,132,2,97,2,115,2,154,2,192,2,227,2, +252,2,4,3,14,3,47,3,94,3,131,3,149,3,171,3,231,3,67,4,142,4,167,4,151,4,133,4,134,4,139,4, +111,4,33,4,169,3,38,3,190,2,130,2,98,2,62,2,6,2,203,1,165,1,138,1,99,1,62,1,66,1,129,1, +224,1,41,2,60,2,52,2,66,2,103,2,122,2,111,2,86,2,61,2,45,2,45,2,58,2,58,2,7,2,138,1, +210,0,13,0,96,255,193,254,6,254,25,253,14,252,1,251,250,249,233,248,171,247,32,246,85,244,126,242,203,240,108,239, +135,238,21,238,245,237,18,238,106,238,4,239,228,239,249,240,28,242,63,243,124,244,239,245,173,247,204,249,72,252,212,254, +250,0,121,2,119,3,85,4,79,5,58,6,201,6,10,7,68,7,108,7,55,7,147,6,152,5,91,4,15,3,15,2, +148,1,156,1,251,1,104,2,153,2,110,2,250,1,121,1,52,1,82,1,179,1,22,2,100,2,202,2,91,3,215,3, +219,3,69,3,64,2,8,1,177,255,77,254,21,253,62,252,177,251,29,251,70,250,57,249,51,248,102,247,224,246,166,246, +210,246,109,247,77,248,67,249,67,250,87,251,150,252,26,254,205,255,105,1,198,2,226,3,179,4,51,5,117,5,150,5, +177,5,227,5,50,6,123,6,148,6,112,6,34,6,179,5,36,5,139,4,16,4,205,3,190,3,200,3,214,3,224,3, +231,3,243,3,16,4,55,4,83,4,105,4,143,4,186,4,209,4,208,4,189,4,143,4,68,4,246,3,198,3,178,3, +164,3,153,3,156,3,174,3,201,3,224,3,218,3,191,3,168,3,144,3,100,3,58,3,37,3,25,3,32,3,85,3, +169,3,251,3,76,4,151,4,179,4,137,4,44,4,189,3,101,3,104,3,233,3,210,4,229,5,220,6,120,7,159,7, +106,7,253,6,124,6,11,6,196,5,163,5,146,5,110,5,20,5,137,4,238,3,76,3,152,2,217,1,26,1,80,0, +126,255,191,254,31,254,168,253,102,253,59,253,246,252,144,252,38,252,207,251,173,251,206,251,0,252,2,252,218,251,165,251, +98,251,11,251,188,250,127,250,67,250,1,250,193,249,126,249,47,249,213,248,115,248,5,248,131,247,241,246,103,246,246,245, +144,245,47,245,235,244,206,244,177,244,103,244,242,243,115,243,254,242,165,242,134,242,155,242,182,242,184,242,166,242,134,242, +78,242,247,241,159,241,138,241,215,241,91,242,230,242,113,243,249,243,134,244,62,245,60,246,121,247,219,248,80,250,226,251, +187,253,233,255,56,2,90,4,43,6,212,7,148,9,104,11,8,13,75,14,58,15,195,15,195,15,70,15,128,14,151,13, +176,12,251,11,154,11,130,11,141,11,131,11,49,11,128,10,127,9,82,8,64,7,136,6,51,6,40,6,97,6,211,6, +74,7,124,7,45,7,71,6,240,4,116,3,247,1,114,0,7,255,0,254,105,253,251,252,112,252,181,251,180,250,96,249, +237,247,187,246,7,246,205,245,250,245,130,246,76,247,52,248,46,249,71,250,128,251,192,252,234,253,245,254,229,255,201,0, +191,1,211,2,237,3,246,4,232,5,191,6,117,7,15,8,137,8,214,8,237,8,199,8,121,8,39,8,219,7,129,7, +33,7,221,6,192,6,195,6,242,6,93,7,233,7,111,8,226,8,46,9,41,9,212,8,109,8,27,8,202,7,116,7, +64,7,62,7,74,7,65,7,36,7,236,6,122,6,202,5,27,5,168,4,117,4,114,4,158,4,230,4,35,5,71,5, +86,5,64,5,242,4,129,4,29,4,226,3,205,3,209,3,226,3,255,3,29,4,51,4,71,4,83,4,58,4,242,3, +150,3,69,3,6,3,208,2,160,2,116,2,61,2,226,1,89,1,163,0,190,255,186,254,200,253,9,253,116,252,231,251, +60,251,82,250,43,249,247,247,237,246,26,246,112,245,232,244,104,244,210,243,50,243,169,242,65,242,252,241,218,241,193,241, +151,241,97,241,48,241,5,241,216,240,165,240,120,240,103,240,104,240,92,240,54,240,6,240,216,239,162,239,85,239,241,238, +136,238,45,238,245,237,234,237,0,238,45,238,121,238,231,238,100,239,231,239,134,240,98,241,136,242,237,243,103,245,202,246, +7,248,27,249,16,250,4,251,20,252,80,253,198,254,101,0,249,1,96,3,148,4,133,5,44,6,184,6,79,7,226,7, +104,8,231,8,79,9,139,9,154,9,121,9,32,9,148,8,249,7,119,7,45,7,28,7,45,7,70,7,75,7,35,7, +201,6,86,6,228,5,120,5,8,5,163,4,106,4,84,4,39,4,174,3,236,2,255,1,3,1,17,0,65,255,163,254, +76,254,59,254,72,254,74,254,71,254,97,254,180,254,73,255,20,0,249,0,216,1,158,2,74,3,246,3,178,4,123,5, +73,6,14,7,172,7,11,8,51,8,62,8,59,8,47,8,30,8,14,8,36,8,130,8,24,9,168,9,4,10,43,10, +49,10,35,10,15,10,7,10,19,10,20,10,231,9,148,9,52,9,216,8,139,8,80,8,22,8,213,7,154,7,104,7, +48,7,210,6,59,6,122,5,174,4,223,3,17,3,74,2,151,1,252,0,111,0,223,255,76,255,194,254,60,254,190,253, +99,253,54,253,63,253,146,253,32,254,183,254,65,255,196,255,64,0,181,0,44,1,165,1,11,2,81,2,129,2,175,2, +239,2,70,3,160,3,222,3,243,3,231,3,193,3,141,3,85,3,14,3,169,2,43,2,155,1,255,0,99,0,202,255, +27,255,64,254,62,253,29,252,219,250,126,249,33,248,218,246,175,245,152,244,146,243,153,242,157,241,146,240,132,239,136,238, +170,237,252,236,148,236,115,236,129,236,159,236,199,236,3,237,82,237,173,237,38,238,214,238,201,239,2,241,113,242,1,244, +162,245,77,247,238,248,122,250,9,252,174,253,98,255,26,1,215,2,132,4,244,5,10,7,208,7,66,8,83,8,46,8, +30,8,38,8,31,8,255,7,217,7,191,7,191,7,199,7,176,7,113,7,26,7,163,6,254,5,61,5,134,4,238,3, +114,3,17,3,210,2,165,2,85,2,176,1,183,0,153,255,144,254,184,253,31,253,197,252,150,252,107,252,30,252,154,251, +230,250,35,250,115,249,250,248,215,248,14,249,137,249,45,250,238,250,180,251,106,252,32,253,237,253,201,254,181,255,209,0, +16,2,47,3,26,4,248,4,211,5,147,6,35,7,126,7,171,7,198,7,234,7,25,8,49,8,247,7,72,7,73,6, +67,5,98,4,180,3,52,3,184,2,21,2,86,1,163,0,2,0,122,255,34,255,249,254,208,254,122,254,248,253,108,253, +250,252,168,252,130,252,170,252,50,253,249,253,211,254,158,255,60,0,161,0,225,0,28,1,109,1,223,1,119,2,44,3, +216,3,76,4,124,4,132,4,123,4,111,4,106,4,110,4,114,4,117,4,145,4,218,4,62,5,148,5,200,5,214,5, +184,5,130,5,92,5,83,5,91,5,113,5,133,5,125,5,94,5,65,5,43,5,16,5,223,4,156,4,95,4,44,4, +227,3,109,3,217,2,64,2,182,1,77,1,252,0,164,0,59,0,214,255,143,255,116,255,116,255,108,255,90,255,101,255, +164,255,25,0,186,0,102,1,236,1,57,2,104,2,140,2,140,2,84,2,249,1,152,1,46,1,174,0,1,0,11,255, +201,253,96,252,233,250,112,249,16,248,236,246,251,245,40,245,124,244,22,244,255,243,43,244,123,244,204,244,16,245,93,245, +205,245,110,246,52,247,237,247,101,248,138,248,104,248,52,248,68,248,171,248,30,249,107,249,163,249,203,249,214,249,200,249, +176,249,174,249,239,249,117,250,11,251,143,251,1,252,106,252,222,252,125,253,63,254,8,255,212,255,169,0,107,1,15,2, +195,2,172,3,162,4,83,5,153,5,143,5,109,5,102,5,135,5,194,5,4,6,43,6,19,6,182,5,50,5,175,4, +86,4,68,4,105,4,143,4,152,4,134,4,100,4,61,4,20,4,218,3,126,3,3,3,134,2,40,2,242,1,206,1, +166,1,111,1,33,1,187,0,76,0,231,255,141,255,57,255,255,254,253,254,65,255,191,255,82,0,211,0,46,1,96,1, +114,1,122,1,137,1,163,1,200,1,240,1,15,2,23,2,11,2,3,2,21,2,52,2,76,2,95,2,117,2,137,2, +175,2,5,3,136,3,30,4,171,4,15,5,67,5,106,5,156,5,200,5,210,5,175,5,112,5,59,5,26,5,255,4, +243,4,0,5,10,5,240,4,179,4,96,4,22,4,252,3,4,4,254,3,230,3,220,3,233,3,4,4,26,4,21,4, +3,4,38,4,155,4,43,5,148,5,195,5,200,5,186,5,179,5,167,5,125,5,51,5,214,4,95,4,203,3,52,3, +185,2,101,2,48,2,6,2,222,1,189,1,164,1,138,1,114,1,108,1,133,1,184,1,249,1,62,2,110,2,126,2, +122,2,107,2,78,2,28,2,178,1,242,0,251,255,14,255,49,254,65,253,54,252,30,251,0,250,229,248,222,247,0,247, +86,246,224,245,142,245,69,245,225,244,88,244,204,243,103,243,51,243,45,243,67,243,74,243,18,243,157,242,30,242,189,241, +110,241,1,241,102,240,174,239,235,238,52,238,166,237,76,237,22,237,234,236,189,236,144,236,95,236,36,236,10,236,78,236, +6,237,30,238,148,239,104,241,126,243,205,245,97,248,24,251,161,253,214,255,202,1,147,3,64,5,208,6,49,8,82,9, +20,10,66,10,210,9,12,9,44,8,40,7,255,5,228,4,15,4,168,3,181,3,7,4,89,4,148,4,198,4,241,4, +13,5,44,5,116,5,232,5,118,6,26,7,217,7,120,8,152,8,19,8,28,7,241,5,150,4,7,3,125,1,75,0, +129,255,229,254,63,254,121,253,152,252,201,251,78,251,69,251,157,251,37,252,170,252,32,253,168,253,111,254,123,255,167,0, +200,1,216,2,237,3,11,5,33,6,24,7,217,7,89,8,175,8,1,9,97,9,197,9,22,10,55,10,13,10,152,9, +244,8,66,8,167,7,64,7,1,7,204,6,161,6,140,6,135,6,142,6,167,6,193,6,209,6,252,6,105,7,250,7, +103,8,125,8,49,8,150,7,205,6,4,6,92,5,216,4,96,4,221,3,79,3,198,2,59,2,146,1,220,0,80,0, +255,255,203,255,173,255,192,255,22,0,159,0,50,1,156,1,206,1,228,1,6,2,79,2,186,2,52,3,177,3,51,4, +191,4,88,5,237,5,85,6,108,6,46,6,187,5,75,5,9,5,231,4,185,4,113,4,21,4,149,3,204,2,188,1, +144,0,112,255,121,254,188,253,39,253,144,252,234,251,46,251,82,250,102,249,145,248,211,247,9,247,35,246,39,245,42,244, +65,243,100,242,117,241,114,240,100,239,86,238,108,237,217,236,143,236,70,236,249,235,236,235,62,236,202,236,115,237,59,238, +34,239,36,240,60,241,84,242,82,243,72,244,93,245,174,246,70,248,18,250,213,251,72,253,94,254,80,255,105,0,211,1, +139,3,84,5,202,6,171,7,11,8,23,8,235,7,156,7,72,7,17,7,33,7,128,7,241,7,35,8,3,8,176,7, +70,7,206,6,102,6,46,6,38,6,74,6,189,6,149,7,141,8,49,9,69,9,221,8,41,8,91,7,162,6,16,6, +147,5,255,4,38,4,241,2,129,1,35,0,19,255,80,254,193,253,77,253,215,252,77,252,191,251,77,251,31,251,69,251, +167,251,16,252,88,252,119,252,128,252,126,252,124,252,139,252,186,252,2,253,89,253,195,253,57,254,177,254,40,255,139,255, +182,255,161,255,113,255,79,255,81,255,104,255,111,255,99,255,100,255,131,255,179,255,234,255,38,0,105,0,194,0,56,1, +181,1,29,2,99,2,121,2,109,2,116,2,168,2,235,2,35,3,70,3,69,3,53,3,84,3,154,3,182,3,147,3, +99,3,68,3,60,3,76,3,121,3,217,3,150,4,165,5,185,6,144,7,22,8,79,8,77,8,34,8,211,7,95,7, +228,6,150,6,135,6,151,6,155,6,113,6,241,5,17,5,5,4,30,3,163,2,193,2,106,3,89,4,60,5,215,5, +15,6,246,5,184,5,127,5,106,5,114,5,107,5,35,5,134,4,176,3,205,2,247,1,33,1,60,0,87,255,143,254, +252,253,164,253,123,253,105,253,85,253,70,253,81,253,127,253,217,253,84,254,184,254,207,254,183,254,175,254,192,254,192,254, +132,254,243,253,19,253,245,251,162,250,56,249,231,247,189,246,155,245,111,244,66,243,21,242,240,240,249,239,94,239,35,239, +40,239,82,239,163,239,55,240,35,241,83,242,138,243,137,244,32,245,85,245,131,245,11,246,244,246,251,247,226,248,137,249, +243,249,55,250,101,250,127,250,147,250,183,250,236,250,44,251,131,251,8,252,174,252,70,253,197,253,104,254,87,255,111,0, +111,1,54,2,201,2,64,3,175,3,29,4,136,4,235,4,77,5,186,5,32,6,74,6,53,6,27,6,45,6,105,6, +164,6,168,6,89,6,205,5,52,5,174,4,71,4,3,4,221,3,181,3,109,3,0,3,123,2,244,1,140,1,77,1, +29,1,250,0,4,1,55,1,101,1,133,1,169,1,190,1,177,1,161,1,178,1,219,1,13,2,73,2,120,2,132,2, +134,2,157,2,198,2,252,2,77,3,195,3,97,4,24,5,185,5,29,6,84,6,128,6,183,6,252,6,69,7,142,7, +237,7,118,8,19,9,149,9,225,9,246,9,219,9,171,9,135,9,125,9,134,9,166,9,222,9,23,10,62,10,77,10, +56,10,254,9,173,9,69,9,199,8,92,8,31,8,254,7,221,7,167,7,65,7,172,6,8,6,114,5,254,4,192,4, +173,4,151,4,99,4,38,4,252,3,220,3,172,3,111,3,62,3,46,3,56,3,61,3,25,3,202,2,100,2,234,1, +88,1,173,0,241,255,60,255,159,254,6,254,87,253,156,252,237,251,76,251,147,250,170,249,175,248,227,247,83,247,192,246, +4,246,59,245,139,244,254,243,144,243,42,243,170,242,7,242,86,241,149,240,183,239,223,238,61,238,215,237,145,237,91,237, +42,237,248,236,194,236,147,236,148,236,242,236,163,237,131,238,125,239,125,240,110,241,92,242,83,243,70,244,69,245,136,246, +36,248,250,249,197,251,55,253,64,254,36,255,42,0,85,1,114,2,84,3,255,3,142,4,12,5,110,5,160,5,146,5, +55,5,163,4,15,4,186,3,183,3,225,3,237,3,156,3,218,2,205,1,188,0,214,255,28,255,122,254,232,253,118,253, +71,253,102,253,144,253,100,253,218,252,72,252,236,251,173,251,98,251,25,251,244,250,242,250,239,250,211,250,174,250,153,250, +157,250,199,250,29,251,145,251,18,252,163,252,73,253,242,253,146,254,51,255,226,255,146,0,60,1,249,1,203,2,143,3, +51,4,199,4,80,5,208,5,92,6,0,7,173,7,79,8,227,8,108,9,230,9,65,10,115,10,140,10,156,10,175,10, +210,10,5,11,55,11,85,11,87,11,88,11,123,11,181,11,232,11,15,12,22,12,214,11,99,11,0,11,192,10,136,10, +86,10,58,10,42,10,21,10,242,9,199,9,160,9,129,9,97,9,65,9,49,9,54,9,72,9,96,9,117,9,121,9, +94,9,31,9,183,8,51,8,173,7,52,7,213,6,170,6,167,6,154,6,99,6,254,5,113,5,228,4,133,4,79,4, +35,4,241,3,169,3,62,3,186,2,44,2,167,1,61,1,216,0,72,0,125,255,139,254,144,253,161,252,199,251,6,251, +86,250,151,249,173,248,164,247,157,246,176,245,227,244,52,244,150,243,232,242,11,242,10,241,24,240,95,239,238,238,177,238, +105,238,205,237,220,236,214,235,249,234,107,234,57,234,75,234,115,234,147,234,194,234,47,235,224,235,180,236,147,237,124,238, +111,239,118,240,170,241,22,243,179,244,101,246,19,248,191,249,115,251,16,253,113,254,153,255,162,0,152,1,118,2,76,3, +57,4,44,5,209,5,3,6,225,5,126,5,216,4,16,4,73,3,149,2,38,2,44,2,145,2,9,3,79,3,73,3, +247,2,107,2,220,1,151,1,195,1,64,2,223,2,116,3,194,3,143,3,227,2,12,2,72,1,163,0,34,0,223,255, +210,255,175,255,63,255,145,254,212,253,52,253,217,252,223,252,65,253,228,253,166,254,103,255,19,0,166,0,68,1,29,2, +45,3,68,4,81,5,101,6,106,7,51,8,196,8,67,9,204,9,115,10,74,11,46,12,218,12,61,13,113,13,118,13, +63,13,221,12,122,12,60,12,43,12,35,12,255,11,193,11,106,11,247,10,135,10,78,10,94,10,160,10,245,10,70,11, +122,11,121,11,60,11,209,10,86,10,230,9,143,9,86,9,61,9,53,9,29,9,210,8,76,8,174,7,55,7,9,7, +7,7,248,6,187,6,81,6,222,5,139,5,82,5,24,5,233,4,201,4,145,4,31,4,132,3,223,2,83,2,2,2, +238,1,231,1,185,1,98,1,243,0,107,0,187,255,244,254,77,254,230,253,165,253,81,253,191,252,216,251,153,250,38,249, +170,247,39,246,142,244,231,242,53,241,114,239,184,237,46,236,224,234,218,233,51,233,221,232,165,232,123,232,146,232,12,233, +198,233,164,234,201,235,84,237,43,239,58,241,104,243,115,245,42,247,144,248,179,249,168,250,164,251,187,252,210,253,231,254, +249,255,205,0,40,1,5,1,118,0,152,255,166,254,209,253,61,253,10,253,63,253,168,253,253,253,33,254,39,254,29,254, +11,254,21,254,85,254,177,254,13,255,127,255,26,0,181,0,23,1,33,1,219,0,96,0,179,255,211,254,231,253,38,253, +144,252,8,252,139,251,6,251,74,250,96,249,149,248,21,248,220,247,233,247,67,248,221,248,156,249,129,250,157,251,251,252, +138,254,54,0,250,1,178,3,19,5,2,6,193,6,131,7,47,8,167,8,249,8,44,9,60,9,66,9,88,9,81,9, +236,8,50,8,98,7,166,6,13,6,158,5,84,5,40,5,22,5,28,5,63,5,123,5,179,5,225,5,31,6,108,6, +168,6,195,6,197,6,168,6,112,6,39,6,207,5,123,5,81,5,67,5,14,5,154,4,8,4,109,3,211,2,86,2, +24,2,42,2,122,2,212,2,20,3,94,3,220,3,130,4,63,5,32,6,38,7,51,8,47,9,11,10,197,10,139,11, +152,12,215,13,229,14,116,15,123,15,24,15,124,14,212,13,55,13,159,12,235,11,235,10,128,9,204,7,8,6,70,4, +129,2,204,0,65,255,233,253,203,252,217,251,214,250,133,249,247,247,118,246,50,245,41,244,62,243,93,242,138,241,213,240, +52,240,143,239,238,238,108,238,23,238,246,237,3,238,26,238,42,238,92,238,196,238,57,239,155,239,251,239,122,240,73,241, +134,242,12,244,154,245,24,247,124,248,182,249,229,250,61,252,190,253,78,255,234,0,124,2,171,3,48,4,42,4,207,3, +50,3,135,2,21,2,222,1,188,1,172,1,146,1,35,1,73,0,55,255,19,254,235,252,230,251,47,251,209,250,194,250, +2,251,136,251,32,252,136,252,174,252,166,252,141,252,120,252,121,252,162,252,251,252,102,253,176,253,184,253,113,253,245,252, +155,252,165,252,247,252,94,253,215,253,76,254,152,254,188,254,212,254,4,255,122,255,76,0,73,1,60,2,14,3,185,3, +60,4,178,4,59,5,232,5,188,6,181,7,201,8,215,9,186,10,86,11,147,11,112,11,24,11,180,10,76,10,212,9, +75,9,188,8,45,8,147,7,223,6,30,6,106,5,208,4,91,4,25,4,9,4,19,4,0,4,156,3,237,2,43,2, +147,1,99,1,186,1,96,2,243,2,72,3,125,3,187,3,7,4,88,4,194,4,93,5,20,6,191,6,79,7,205,7, +75,8,220,8,111,9,214,9,255,9,3,10,251,9,226,9,170,9,88,9,15,9,225,8,184,8,106,8,226,7,57,7, +151,6,239,5,27,5,46,4,97,3,182,2,14,2,91,1,148,0,168,255,163,254,154,253,128,252,58,251,200,249,73,248, +227,246,163,245,114,244,60,243,20,242,27,241,82,240,178,239,83,239,77,239,141,239,251,239,149,240,103,241,117,242,212,243, +139,245,106,247,35,249,158,250,250,251,90,253,196,254,47,0,150,1,1,3,108,4,168,5,127,6,219,6,169,6,211,5, +135,4,20,3,176,1,154,0,14,0,229,255,181,255,73,255,157,254,157,253,78,252,230,250,170,249,210,248,133,248,206,248, +130,249,53,250,110,250,1,250,43,249,69,248,129,247,234,246,136,246,99,246,93,246,60,246,236,245,131,245,21,245,186,244, +146,244,158,244,194,244,241,244,35,245,69,245,97,245,166,245,64,246,47,247,76,248,116,249,170,250,2,252,107,253,184,254, +219,255,235,0,252,1,39,3,150,4,68,6,226,7,34,9,230,9,34,10,233,9,150,9,137,9,207,9,61,10,179,10, +27,11,80,11,45,11,168,10,233,9,49,9,185,8,134,8,134,8,183,8,3,9,48,9,11,9,160,8,31,8,164,7, +45,7,182,6,76,6,228,5,100,5,208,4,66,4,173,3,241,2,30,2,108,1,244,0,177,0,144,0,126,0,106,0, +88,0,108,0,194,0,75,1,239,1,170,2,109,3,15,4,138,4,22,5,237,5,10,7,50,8,42,9,228,9,128,10, +23,11,166,11,19,12,75,12,77,12,22,12,158,11,240,10,31,10,42,9,40,8,69,7,131,6,171,5,144,4,50,3, +169,1,17,0,137,254,45,253,3,252,239,250,196,249,117,248,32,247,231,245,219,244,255,243,81,243,201,242,104,242,66,242, +99,242,171,242,0,243,118,243,21,244,210,244,208,245,54,247,221,248,131,250,30,252,155,253,193,254,135,255,45,0,222,0, +151,1,103,2,86,3,46,4,172,4,202,4,156,4,42,4,131,3,201,2,30,2,173,1,151,1,190,1,225,1,214,1, +143,1,7,1,71,0,102,255,134,254,209,253,86,253,250,252,160,252,56,252,168,251,223,250,243,249,9,249,24,248,8,247, +243,245,15,245,92,244,165,243,203,242,220,241,1,241,96,240,0,240,182,239,104,239,58,239,80,239,171,239,74,240,42,241, +45,242,51,243,64,244,108,245,204,246,85,248,215,249,50,251,127,252,220,253,47,255,93,0,120,1,152,2,174,3,176,4, +167,5,130,6,26,7,124,7,235,7,140,8,78,9,13,10,159,10,231,10,239,10,221,10,198,10,184,10,202,10,254,10, +59,11,113,11,161,11,183,11,146,11,40,11,128,10,160,9,166,8,204,7,51,7,205,6,135,6,76,6,243,5,86,5, +118,4,130,3,187,2,79,2,51,2,73,2,107,2,114,2,100,2,124,2,222,2,120,3,50,4,9,5,234,5,198,6, +172,7,176,8,209,9,247,10,241,11,140,12,190,12,166,12,103,12,34,12,240,11,194,11,88,11,152,10,185,9,246,8, +69,8,136,7,181,6,189,5,158,4,107,3,42,2,207,0,105,255,10,254,175,252,68,251,189,249,22,248,102,246,218,244, +133,243,90,242,75,241,101,240,180,239,57,239,244,238,222,238,244,238,75,239,243,239,202,240,166,241,132,242,124,243,174,244, +55,246,13,248,1,250,214,251,89,253,113,254,72,255,58,0,113,1,186,2,208,3,168,4,72,5,163,5,179,5,146,5, +61,5,155,4,175,3,171,2,214,1,104,1,81,1,57,1,219,0,54,0,86,255,78,254,79,253,144,252,40,252,16,252, +58,252,131,252,183,252,156,252,30,252,89,251,113,250,125,249,142,248,174,247,223,246,29,246,88,245,118,244,108,243,82,242, +88,241,166,240,59,240,19,240,56,240,153,240,23,241,189,241,161,242,182,243,232,244,51,246,138,247,233,248,86,250,186,251, +244,252,14,254,64,255,181,0,97,2,19,4,153,5,213,6,188,7,88,8,187,8,249,8,44,9,110,9,204,9,64,10, +166,10,195,10,123,10,242,9,98,9,254,8,226,8,5,9,66,9,127,9,194,9,28,10,136,10,209,10,175,10,37,10, +114,9,206,8,84,8,35,8,56,8,86,8,61,8,239,7,139,7,38,7,218,6,191,6,201,6,205,6,179,6,141,6, +131,6,175,6,30,7,190,7,87,8,186,8,231,8,245,8,2,9,51,9,156,9,35,10,163,10,7,11,67,11,83,11, +62,11,21,11,237,10,213,10,202,10,177,10,108,10,234,9,51,9,94,8,112,7,99,6,60,5,2,4,183,2,98,1, +251,255,112,254,190,252,239,250,15,249,61,247,155,245,41,244,210,242,149,241,119,240,121,239,167,238,35,238,1,238,53,238, +170,238,95,239,75,240,80,241,90,242,120,243,185,244,40,246,222,247,214,249,213,251,149,253,1,255,59,0,98,1,110,2, +72,3,236,3,76,4,78,4,253,3,155,3,77,3,243,2,99,2,160,1,206,0,15,0,137,255,77,255,50,255,250,254, +143,254,231,253,5,253,26,252,90,251,196,250,77,250,10,250,240,249,199,249,98,249,194,248,3,248,69,247,145,246,219,245, +39,245,136,244,249,243,94,243,175,242,10,242,133,241,27,241,200,240,145,240,107,240,66,240,35,240,54,240,165,240,120,241, +148,242,209,243,19,245,77,246,113,247,124,248,122,249,134,250,188,251,32,253,147,254,245,255,68,1,135,2,183,3,205,4, +188,5,118,6,246,6,92,7,214,7,102,8,230,8,74,9,160,9,224,9,244,9,239,9,2,10,67,10,156,10,228,10, +8,11,23,11,24,11,254,10,193,10,116,10,37,10,218,9,161,9,130,9,113,9,89,9,55,9,30,9,18,9,255,8, +216,8,169,8,124,8,66,8,249,7,187,7,171,7,226,7,93,8,238,8,101,9,193,9,23,10,105,10,187,10,34,11, +167,11,67,12,244,12,181,13,107,14,236,14,42,15,46,15,246,14,137,14,11,14,151,13,31,13,151,12,8,12,93,11, +113,10,70,9,252,7,166,6,63,5,186,3,27,2,124,0,239,254,118,253,18,252,191,250,95,249,222,247,73,246,189,244, +89,243,36,242,21,241,52,240,157,239,85,239,75,239,106,239,162,239,242,239,102,240,11,241,233,241,254,242,45,244,75,245, +86,246,108,247,132,248,130,249,116,250,124,251,138,252,126,253,94,254,51,255,221,255,57,0,68,0,10,0,153,255,28,255, +179,254,86,254,4,254,214,253,189,253,127,253,249,252,45,252,39,251,15,250,44,249,170,248,128,248,145,248,193,248,229,248, +212,248,149,248,93,248,78,248,91,248,86,248,32,248,184,247,34,247,96,246,132,245,176,244,252,243,114,243,15,243,187,242, +87,242,228,241,117,241,22,241,216,240,222,240,57,241,224,241,202,242,222,243,241,244,235,245,198,246,129,247,50,248,30,249, +106,250,237,251,117,253,253,254,128,0,228,1,53,3,153,4,1,6,61,7,75,8,75,9,65,10,31,11,229,11,151,12, +39,13,132,13,179,13,215,13,23,14,118,14,203,14,230,14,191,14,119,14,46,14,240,13,189,13,147,13,97,13,10,13, +140,12,248,11,86,11,174,10,39,10,233,9,234,9,235,9,189,9,100,9,242,8,124,8,38,8,20,8,79,8,202,8, +100,9,239,9,89,10,175,10,243,10,49,11,144,11,21,12,147,12,245,12,89,13,198,13,29,14,80,14,111,14,132,14, +145,14,149,14,145,14,115,14,34,14,151,13,209,12,190,11,89,10,203,8,72,7,204,5,53,4,119,2,138,0,101,254, +28,252,228,249,233,247,64,246,233,244,204,243,207,242,224,241,252,240,50,240,173,239,148,239,230,239,149,240,160,241,242,242, +97,244,220,245,92,247,203,248,24,250,76,251,114,252,129,253,108,254,49,255,217,255,89,0,159,0,168,0,139,0,91,0, +21,0,179,255,46,255,102,254,51,253,168,251,22,250,208,248,19,248,244,247,65,248,133,248,110,248,253,247,82,247,126,246, +168,245,11,245,190,244,181,244,232,244,66,245,123,245,87,245,215,244,24,244,43,243,47,242,67,241,117,240,201,239,67,239, +206,238,82,238,217,237,125,237,87,237,117,237,203,237,53,238,158,238,11,239,147,239,92,240,118,241,200,242,44,244,144,245, +218,246,242,247,224,248,175,249,92,250,250,250,186,251,179,252,213,253,254,254,7,0,209,0,95,1,207,1,51,2,142,2, +240,2,119,3,51,4,35,5,60,6,96,7,99,8,65,9,20,10,216,10,126,11,31,12,221,12,188,13,184,14,193,15, +154,16,1,17,245,16,172,16,86,16,12,16,205,15,121,15,253,14,112,14,252,13,186,13,173,13,184,13,169,13,117,13, +59,13,9,13,214,12,189,12,231,12,81,13,213,13,85,14,200,14,49,15,146,15,237,15,62,16,118,16,133,16,110,16, +77,16,51,16,32,16,20,16,9,16,235,15,167,15,53,15,161,14,251,13,74,13,130,12,159,11,168,10,165,9,157,8, +133,7,53,6,146,4,181,2,195,0,207,254,227,252,22,251,113,249,240,247,134,246,30,245,178,243,95,242,76,241,145,240, +66,240,110,240,3,241,223,241,255,242,108,244,16,246,193,247,95,249,222,250,81,252,210,253,81,255,147,0,107,1,235,1, +76,2,175,2,247,2,252,2,172,2,1,2,247,0,167,255,34,254,93,252,105,250,137,248,2,247,253,245,140,245,119,245, +82,245,219,244,21,244,45,243,92,242,208,241,147,241,153,241,223,241,89,242,235,242,98,243,135,243,62,243,169,242,0,242, +103,241,228,240,108,240,234,239,71,239,120,238,134,237,135,236,150,235,233,234,182,234,248,234,111,235,235,235,94,236,187,236, +19,237,158,237,129,238,173,239,2,241,96,242,165,243,188,244,165,245,104,246,32,247,237,247,218,248,216,249,220,250,230,251, +236,252,235,253,246,254,5,0,239,0,164,1,90,2,69,3,111,4,211,5,97,7,238,8,81,10,122,11,116,12,86,13, +52,14,17,15,244,15,231,16,216,17,157,18,24,19,63,19,25,19,195,18,102,18,33,18,255,17,238,17,221,17,209,17, +205,17,193,17,152,17,56,17,149,16,216,15,67,15,1,15,12,15,73,15,148,15,213,15,1,16,23,16,32,16,52,16, +95,16,149,16,197,16,230,16,249,16,27,17,95,17,179,17,246,17,21,18,12,18,232,17,188,17,135,17,49,17,160,16, +203,15,181,14,103,13,254,11,150,10,41,9,144,7,167,5,107,3,250,0,135,254,55,252,32,250,77,248,187,246,95,245, +42,244,9,243,251,241,44,241,209,240,245,240,148,241,177,242,35,244,173,245,66,247,248,248,202,250,151,252,70,254,209,255, +65,1,153,2,196,3,163,4,43,5,99,5,88,5,25,5,174,4,19,4,45,3,228,1,76,0,142,254,180,252,176,250, +141,248,112,246,155,244,90,243,195,242,142,242,87,242,222,241,14,241,0,240,241,238,33,238,175,237,155,237,216,237,65,238, +154,238,175,238,126,238,34,238,186,237,96,237,30,237,233,236,182,236,127,236,54,236,223,235,147,235,97,235,84,235,132,235, +0,236,174,236,110,237,49,238,239,238,173,239,113,240,68,241,49,242,59,243,77,244,75,245,44,246,240,246,152,247,27,248, +115,248,177,248,253,248,117,249,32,250,248,250,235,251,239,252,3,254,20,255,8,0,219,0,167,1,139,2,163,3,250,4, +128,6,10,8,96,9,89,10,253,10,129,11,9,12,147,12,20,13,133,13,231,13,52,14,87,14,62,14,240,13,136,13, +42,13,245,12,249,12,55,13,160,13,32,14,164,14,33,15,132,15,189,15,228,15,44,16,169,16,67,17,223,17,104,18, +199,18,241,18,249,18,254,18,19,19,54,19,104,19,166,19,227,19,14,20,35,20,37,20,9,20,190,19,64,19,156,18, +228,17,32,17,88,16,131,15,139,14,103,13,49,12,239,10,137,9,243,7,61,6,108,4,111,2,80,0,56,254,76,252, +138,250,235,248,121,247,66,246,77,245,167,244,86,244,71,244,106,244,215,244,180,245,27,247,255,248,50,251,128,253,216,255, +59,2,145,4,156,6,35,8,34,9,188,9,3,10,239,9,144,9,12,9,105,8,147,7,138,6,87,5,221,3,243,1, +158,255,249,252,24,250,43,247,134,244,83,242,148,240,79,239,128,238,232,237,66,237,125,236,156,235,180,234,250,233,156,233, +157,233,245,233,165,234,138,235,103,236,10,237,85,237,64,237,239,236,150,236,91,236,84,236,132,236,206,236,21,237,97,237, +206,237,104,238,53,239,71,240,154,241,5,243,86,244,123,245,125,246,116,247,122,248,144,249,162,250,146,251,58,252,132,252, +121,252,33,252,128,251,190,250,32,250,188,249,128,249,92,249,66,249,35,249,8,249,21,249,80,249,157,249,239,249,96,250, +14,251,18,252,118,253,38,255,233,0,135,2,231,3,4,5,216,5,103,6,204,6,42,7,152,7,25,8,159,8,25,9, +122,9,188,9,236,9,45,10,162,10,84,11,65,12,96,13,169,14,35,16,194,17,74,19,116,20,44,21,145,21,213,21, +27,22,99,22,156,22,198,22,239,22,20,23,44,23,53,23,26,23,187,22,34,22,121,21,212,20,60,20,195,19,98,19, +234,18,55,18,78,17,51,16,237,14,149,13,65,12,242,10,155,9,59,8,210,6,89,5,202,3,38,2,113,0,169,254, +187,252,151,250,84,248,41,246,71,244,193,242,153,241,191,240,33,240,192,239,177,239,9,240,213,240,10,242,127,243,12,245, +163,246,69,248,250,249,218,251,237,253,249,255,155,1,158,2,26,3,69,3,75,3,61,3,18,3,189,2,60,2,145,1, +175,0,134,255,51,254,245,252,250,251,51,251,117,250,181,249,19,249,170,248,120,248,111,248,138,248,194,248,25,249,153,249, +59,250,233,250,155,251,99,252,62,253,14,254,183,254,39,255,57,255,211,254,11,254,23,253,24,252,10,251,226,249,166,248, +101,247,38,246,246,244,241,243,62,243,247,242,19,243,107,243,208,243,29,244,69,244,93,244,122,244,152,244,167,244,172,244, +177,244,182,244,191,244,221,244,26,245,108,245,195,245,23,246,121,246,255,246,169,247,90,248,242,248,103,249,194,249,29,250, +144,250,37,251,214,251,142,252,62,253,242,253,216,254,23,0,172,1,116,3,69,5,253,6,136,8,221,9,240,10,181,11, +45,12,109,12,147,12,168,12,146,12,52,12,154,11,239,10,92,10,238,9,157,9,79,9,239,8,136,8,50,8,255,7, +231,7,217,7,201,7,178,7,159,7,157,7,173,7,193,7,196,7,163,7,73,7,183,6,8,6,82,5,139,4,150,3, +93,2,246,0,163,255,169,254,29,254,229,253,211,253,200,253,201,253,253,253,128,254,55,255,234,255,115,0,196,0,230,0, +243,0,15,1,59,1,71,1,4,1,98,0,118,255,101,254,77,253,59,252,71,251,176,250,174,250,74,251,109,252,8,254, +13,0,108,2,30,5,20,8,29,11,248,13,142,16,231,18,253,20,179,22,6,24,23,25,0,26,197,26,107,27,1,28, +140,28,254,28,74,29,102,29,58,29,157,28,114,27,190,25,146,23,252,20,11,18,203,14,64,11,116,7,150,3,224,255, +102,252,21,249,234,245,246,242,47,240,115,237,189,234,54,232,9,230,65,228,204,226,133,225,67,224,233,222,97,221,166,219, +232,217,134,216,213,215,247,215,216,216,64,218,235,219,174,221,135,223,128,225,140,227,133,229,71,231,203,232,32,234,87,235, +102,236,69,237,8,238,206,238,164,239,140,240,154,241,228,242,125,244,110,246,189,248,103,251,73,254,36,1,179,3,212,5, +143,7,2,9,82,10,135,11,117,12,214,12,120,12,83,11,111,9,228,6,233,3,198,0,188,253,251,250,154,248,170,246, +79,245,189,244,11,245,32,246,222,247,36,250,178,252,60,255,168,1,9,4,112,6,200,8,255,10,33,13,97,15,233,17, +171,20,93,23,185,25,202,27,224,29,42,32,108,34,59,36,100,37,9,38,100,38,138,38,125,38,82,38,37,38,238,37, +126,37,182,36,165,35,111,34,31,33,175,31,54,30,241,28,19,28,158,27,88,27,205,26,140,25,125,23,240,20,71,18, +157,15,194,12,134,9,254,5,120,2,60,255,72,252,105,249,126,246,166,243,16,241,200,238,167,236,117,234,31,232,206,229, +201,227,56,226,23,225,106,224,74,224,193,224,187,225,1,227,66,228,31,229,69,229,149,228,39,227,64,225,39,223,4,221, +215,218,191,216,23,215,56,214,40,214,156,214,62,215,230,215,163,216,156,217,206,218,248,219,205,220,47,221,47,221,232,220, +122,220,21,220,4,220,141,220,199,221,146,223,189,225,56,228,19,231,91,234,23,238,76,242,15,247,138,252,214,2,192,9, +202,16,148,23,49,30,215,36,82,43,254,48,113,53,223,56,201,59,110,62,173,64,103,66,199,67,253,68,225,69,0,70, +1,69,241,66,52,64,92,61,246,58,55,57,208,55,50,54,247,51,6,49,93,45,233,40,144,35,107,29,231,22,179,16, +101,11,25,7,105,3,209,255,54,252,6,249,195,246,134,245,251,244,196,244,171,244,132,244,27,244,80,243,58,242,15,241, +237,239,194,238,125,237,70,236,88,235,190,234,94,234,46,234,38,234,17,234,179,233,20,233,133,232,66,232,43,232,222,231, +19,231,208,229,66,228,133,226,148,224,107,222,17,220,156,217,51,215,245,212,203,210,119,208,222,205,39,203,157,200,126,198, +235,196,235,195,131,195,190,195,190,196,169,198,149,201,120,205,67,210,234,215,85,222,77,229,123,236,127,243,7,250,228,255, +24,5,223,9,150,14,148,19,2,25,208,30,238,36,120,43,158,50,69,58,219,65,142,72,170,77,226,80,78,82,58,82, +248,80,193,78,176,75,215,71,106,67,174,62,187,57,83,52,34,46,62,39,110,32,197,26,253,22,26,21,145,20,166,20, +175,20,74,20,86,19,197,17,149,15,230,12,11,10,68,7,150,4,207,1,202,254,162,251,186,248,110,246,209,244,201,243, +75,243,91,243,217,243,119,244,204,244,125,244,114,243,227,241,22,240,30,238,248,235,205,233,238,231,125,230,61,229,197,227, +244,225,27,224,181,222,254,221,216,221,255,221,44,222,32,222,177,221,227,220,243,219,56,219,219,218,193,218,186,218,168,218, +124,218,48,218,200,217,66,217,134,216,131,215,79,214,46,213,116,212,106,212,36,213,136,214,110,216,183,218,70,221,31,224, +120,227,161,231,202,236,216,242,72,249,88,255,157,4,102,9,91,14,209,19,132,25,246,30,222,35,90,40,201,44,134,49, +193,54,104,60,22,66,37,71,5,75,135,77,208,78,19,79,104,78,183,76,228,73,7,70,130,65,176,60,162,55,49,50, +81,44,51,38,59,32,222,26,134,22,109,19,109,17,251,15,127,14,187,12,229,10,101,9,122,8,33,8,41,8,79,8, +62,8,151,7,60,6,121,4,219,2,192,1,41,1,212,0,115,0,220,255,255,254,187,253,199,251,211,248,185,244,148,239, +200,233,219,227,60,222,59,217,36,213,42,210,46,208,197,206,135,205,73,204,62,203,210,202,83,203,171,204,117,206,92,208, +95,210,204,212,245,215,215,219,18,224,36,228,158,231,45,234,165,235,28,236,219,235,61,235,144,234,244,233,99,233,233,232, +186,232,247,232,131,233,16,234,79,234,33,234,192,233,162,233,34,234,84,235,13,237,246,238,180,240,48,242,177,243,148,245, +22,248,77,251,53,255,170,3,106,8,46,13,197,17,41,22,114,26,173,30,207,34,175,38,13,42,171,44,132,46,206,47, +187,48,72,49,99,49,30,49,156,48,252,47,68,47,102,46,87,45,28,44,197,42,94,41,237,39,104,38,163,36,98,34, +170,31,231,28,182,26,107,25,213,24,131,24,33,24,163,23,39,23,189,22,63,22,88,21,187,19,104,17,164,14,203,11, +45,9,241,6,11,5,77,3,118,1,61,255,95,252,197,248,112,244,110,239,237,233,86,228,35,223,174,218,49,215,182,212, +8,211,207,209,219,208,60,208,33,208,188,208,19,210,251,211,65,214,218,216,197,219,240,222,67,226,178,229,30,233,70,236, +239,238,5,241,149,242,189,243,167,244,124,245,77,246,251,246,71,247,254,246,37,246,249,244,205,243,210,242,254,241,38,241, +50,240,36,239,242,237,118,236,154,234,130,232,143,230,50,229,171,228,233,228,175,229,226,230,150,232,248,234,66,238,152,242, +232,247,243,253,122,4,85,11,97,18,110,25,45,32,49,38,31,43,211,46,76,49,154,50,252,50,235,50,217,50,254,50, +86,51,199,51,37,52,40,52,123,51,240,49,156,47,192,44,150,41,77,38,20,35,14,32,45,29,73,26,80,23,94,20, +184,17,181,15,132,14,2,14,205,13,141,13,49,13,240,12,12,13,137,13,27,14,77,14,196,13,71,12,183,9,31,6, +186,1,232,252,249,247,35,243,153,238,163,234,111,231,232,228,228,226,86,225,47,224,42,223,243,221,129,220,36,219,89,218, +121,218,160,219,173,221,87,224,67,227,34,230,199,232,18,235,223,236,22,238,206,238,60,239,127,239,161,239,189,239,4,240, +140,240,28,241,71,241,195,240,165,239,49,238,147,236,215,234,252,232,245,230,169,228,24,226,137,223,123,221,95,220,51,220, +161,220,115,221,208,222,249,224,10,228,251,231,151,236,121,241,56,246,171,250,230,254,22,3,108,7,25,12,55,17,191,22, +103,28,188,33,121,38,184,42,169,46,67,50,100,53,21,56,99,58,30,60,231,60,138,60,49,59,57,57,221,54,23,52, +221,48,78,45,145,41,193,37,234,33,16,30,38,26,37,22,52,18,173,14,221,11,192,9,2,8,82,6,151,4,211,2, +254,0,27,255,74,253,150,251,233,249,75,248,239,246,235,245,241,244,137,243,115,241,179,238,110,235,223,231,108,228,142,225, +150,223,133,222,31,222,32,222,116,222,46,223,88,224,225,225,206,227,55,230,251,232,178,235,12,238,255,239,143,241,153,242, +246,242,173,242,2,242,97,241,43,241,125,241,32,242,171,242,180,242,248,241,106,240,31,238,66,235,46,232,99,229,51,227, +149,225,85,224,89,223,159,222,53,222,41,222,131,222,68,223,136,224,155,226,200,229,13,234,13,239,87,244,161,249,206,254, +233,3,16,9,100,14,254,19,4,26,158,32,174,39,180,46,16,53,80,58,62,62,235,64,174,66,250,67,19,69,241,69, +97,70,51,70,112,69,79,68,2,67,111,65,75,63,98,60,201,56,192,52,126,48,12,44,77,39,25,34,121,28,196,22, +135,17,43,13,189,9,6,7,199,4,224,2,75,1,230,255,106,254,158,252,149,250,163,248,30,247,9,246,238,244,32,243, +64,240,125,236,66,232,239,227,231,223,167,220,153,218,192,217,181,217,224,217,212,217,125,217,19,217,218,216,236,216,43,217, +111,217,197,217,116,218,160,219,2,221,16,222,100,222,242,221,246,220,205,219,198,218,7,218,144,217,75,217,33,217,27,217, +85,217,216,217,130,218,25,219,123,219,174,219,196,219,169,219,50,219,87,218,69,217,71,216,172,215,196,215,208,216,227,218, +246,221,228,225,105,230,51,235,42,240,120,245,90,251,218,1,179,8,127,15,242,21,236,27,97,33,99,38,58,43,68,48, +142,53,155,58,192,62,181,65,206,67,136,69,20,71,85,72,61,73,222,73,38,74,213,73,191,72,248,70,137,68,59,65, +205,60,93,55,106,49,126,43,227,37,177,32,239,27,173,23,25,20,87,17,95,15,1,14,47,13,244,12,57,13,155,13, +155,13,226,12,124,11,204,9,51,8,201,6,110,5,235,3,235,1,9,255,41,251,169,246,27,242,205,237,192,233,232,229, +110,226,148,223,129,221,55,220,152,219,90,219,6,219,63,218,24,217,17,216,173,215,26,216,47,217,170,218,93,220,40,222, +239,223,173,225,125,227,112,229,89,231,217,232,154,233,154,233,35,233,125,232,168,231,118,230,221,228,27,227,110,225,201,223, +229,221,167,219,70,217,15,215,59,213,25,212,33,212,152,213,75,216,185,219,159,223,38,228,152,233,232,239,170,246,97,253, +208,3,245,9,227,15,158,21,10,27,0,32,142,36,238,40,58,45,66,49,175,52,73,55,254,56,213,57,221,57,67,57, +89,56,95,55,85,54,20,53,162,51,42,50,170,48,226,46,160,44,249,41,18,39,226,35,89,32,167,28,37,25,246,21, +252,18,33,16,115,13,14,11,29,9,216,7,78,7,54,7,38,7,198,6,230,5,150,4,44,3,23,2,123,1,36,1, +157,0,114,255,109,253,192,250,213,247,227,244,196,241,74,238,155,234,45,231,102,228,98,226,252,224,234,223,216,222,158,221, +91,220,80,219,160,218,77,218,87,218,205,218,189,219,12,221,88,222,53,223,133,223,132,223,125,223,132,223,119,223,52,223, +201,222,96,222,11,222,191,221,148,221,178,221,13,222,107,222,163,222,177,222,163,222,163,222,242,222,182,223,250,224,229,226, +182,229,121,233,244,237,212,242,212,247,163,252,254,0,3,5,66,9,84,14,116,20,123,27,16,35,197,42,46,50,235,56, +137,62,146,66,242,68,24,70,118,70,23,70,241,68,86,67,188,65,70,64,170,62,135,60,164,57,7,54,206,49,39,45, +94,40,201,35,139,31,132,27,127,23,109,19,112,15,194,11,137,8,197,5,114,3,161,1,91,0,131,255,230,254,109,254, +41,254,73,254,246,254,53,0,205,1,80,3,71,4,90,4,69,3,221,0,60,253,225,248,96,244,27,240,85,236,75,233, +244,230,251,228,45,227,180,225,208,224,114,224,74,224,26,224,225,223,211,223,33,224,207,224,198,225,254,226,120,228,13,230, +108,231,74,232,137,232,47,232,78,231,12,230,159,228,26,227,83,225,37,223,183,220,115,218,188,216,183,215,62,215,249,214, +169,214,92,214,92,214,214,214,169,215,155,216,182,217,105,219,48,222,48,226,59,231,1,237,16,243,233,248,66,254,40,3, +231,7,208,12,20,18,171,23,102,29,50,35,40,41,76,47,72,53,123,58,87,62,173,64,163,65,142,65,209,64,213,63, +234,62,19,62,2,61,94,59,10,57,40,54,221,50,54,47,92,43,176,39,150,36,29,34,241,31,142,29,139,26,250,22, +125,19,224,16,120,15,0,15,221,14,136,14,190,13,126,12,239,10,75,9,208,7,149,6,131,5,113,4,50,3,105,1, +149,254,118,250,72,245,143,239,185,233,23,228,13,223,255,218,4,216,205,213,3,212,162,210,235,209,248,209,146,210,100,211, +69,212,88,213,214,214,202,216,255,218,46,221,31,223,162,224,151,225,3,226,42,226,124,226,68,227,74,228,239,228,175,228, +121,227,131,225,23,223,146,220,107,218,2,217,108,216,91,216,77,216,243,215,101,215,246,214,231,214,95,215,140,216,164,218, +204,221,250,225,1,231,182,236,15,243,42,250,75,2,167,11,39,22,61,33,9,44,162,53,116,61,136,67,88,72,63,76, +43,79,204,80,11,81,43,80,168,78,228,76,251,74,203,72,31,70,205,66,208,62,101,58,239,53,168,49,133,45,90,41, +9,37,153,32,31,28,166,23,56,19,1,15,89,11,153,8,249,6,137,6,43,7,132,8,14,10,68,11,232,11,23,12, +27,12,14,12,195,11,222,10,3,9,248,5,189,1,144,252,223,246,43,241,215,235,3,231,157,226,152,222,1,219,255,215, +203,213,141,212,53,212,127,212,41,213,3,214,220,214,141,215,36,216,246,216,91,218,95,220,182,222,28,225,147,227,43,230, +178,232,217,234,131,236,193,237,153,238,255,238,254,238,216,238,198,238,179,238,78,238,81,237,176,235,144,233,67,231,32,229, +70,227,113,225,89,223,30,221,67,219,62,218,49,218,13,219,221,220,198,223,198,227,157,232,6,238,223,243,26,250,158,0, +84,7,27,14,200,20,57,27,124,33,208,39,106,46,28,53,49,59,204,63,122,66,97,67,4,67,255,65,208,64,169,63, +86,62,102,60,131,57,160,53,250,48,220,43,129,38,19,33,181,27,113,22,77,17,100,12,224,7,240,3,187,0,85,254, +182,252,193,251,69,251,8,251,226,250,215,250,3,251,119,251,46,252,37,253,70,254,82,255,242,255,229,255,29,255,178,253, +186,251,66,249,105,246,91,243,55,240,26,237,44,234,147,231,69,229,34,227,35,225,96,223,4,222,58,221,18,221,120,221, +73,222,103,223,189,224,56,226,197,227,73,229,167,230,207,231,193,232,139,233,65,234,222,234,51,235,11,235,89,234,43,233, +156,231,207,229,237,227,31,226,136,224,73,223,98,222,183,221,44,221,208,220,233,220,208,221,183,223,134,226,0,230,239,233, +58,238,222,242,244,247,162,253,252,3,245,10,84,18,191,25,247,32,238,39,176,46,53,53,93,59,240,64,169,69,98,73, +56,76,101,78,240,79,160,80,61,80,196,78,97,76,63,73,115,69,30,65,132,60,251,55,211,51,59,48,31,45,32,42, +195,38,184,34,9,30,21,25,74,20,230,15,252,11,161,8,227,5,171,3,192,1,250,255,76,254,191,252,112,251,127,250, +222,249,74,249,125,248,93,247,255,245,113,244,134,242,235,239,106,236,39,232,153,227,89,223,232,219,99,217,119,215,160,213, +158,211,164,209,32,208,77,207,14,207,48,207,166,207,123,208,167,209,10,211,120,212,212,213,31,215,130,216,58,218,115,220, +16,223,177,225,5,228,8,230,206,231,60,233,34,234,116,234,83,234,241,233,145,233,114,233,167,233,17,234,125,234,190,234, +174,234,56,234,109,233,131,232,194,231,140,231,82,232,103,234,188,237,216,241,61,246,203,250,194,255,102,5,171,11,50,18, +158,24,234,30,63,37,155,43,178,49,30,55,127,59,142,62,57,64,178,64,64,64,13,63,41,61,180,58,248,55,66,53, +174,50,22,48,51,45,214,41,15,38,42,34,101,30,166,26,164,22,93,18,48,14,134,10,139,7,49,5,93,3,251,1, +242,0,22,0,67,255,135,254,15,254,236,253,10,254,79,254,167,254,242,254,255,254,168,254,230,253,200,252,92,251,168,249, +191,247,215,245,39,244,181,242,93,241,253,239,153,238,62,237,226,235,134,234,91,233,150,232,35,232,182,231,28,231,100,230, +221,229,223,229,107,230,12,231,74,231,41,231,7,231,22,231,61,231,50,231,167,230,106,229,147,227,104,225,48,223,52,221, +192,219,250,218,211,218,56,219,30,220,98,221,183,222,218,223,177,224,57,225,110,225,99,225,113,225,40,226,24,228,136,231, +87,236,18,242,65,248,182,254,118,5,109,12,86,19,236,25,32,32,22,38,238,43,117,49,62,54,254,57,190,60,179,62, +17,64,250,64,98,65,2,65,166,63,114,61,209,58,53,56,221,53,188,51,144,49,69,47,37,45,144,43,143,42,168,41, +43,40,165,37,67,34,184,30,174,27,69,25,24,23,200,20,85,18,222,15,85,13,157,10,218,7,78,5,13,3,12,1, +77,255,207,253,113,252,17,251,162,249,14,248,27,246,139,243,77,240,163,236,12,233,224,229,20,227,122,224,20,222,9,220, +94,218,234,216,147,215,117,214,199,213,158,213,225,213,93,214,207,214,2,215,250,214,249,214,79,215,34,216,95,217,196,218, +11,220,31,221,54,222,146,223,53,225,171,226,72,227,183,226,101,225,30,224,88,223,12,223,13,223,74,223,178,223,44,224, +161,224,12,225,141,225,100,226,203,227,250,229,60,233,206,237,139,243,232,249,71,0,68,6,200,11,236,16,212,21,167,26, +135,31,135,36,152,41,165,46,159,51,113,56,216,60,97,64,155,66,96,67,244,66,202,65,40,64,8,62,49,59,118,55, +237,50,252,45,21,41,118,36,47,32,66,28,183,24,162,21,24,19,18,17,99,15,222,13,120,12,68,11,94,10,187,9, +25,9,34,8,186,6,12,5,63,3,55,1,192,254,219,251,239,248,136,246,1,245,92,244,96,244,192,244,35,245,54,245, +185,244,142,243,198,241,163,239,138,237,216,235,172,234,203,233,194,232,65,231,84,229,85,227,163,225,125,224,243,223,219,223, +236,223,253,223,39,224,154,224,83,225,17,226,140,226,175,226,132,226,4,226,27,225,207,223,49,222,46,220,175,217,228,214, +56,212,23,210,190,208,83,208,249,208,202,210,196,213,181,217,67,222,27,227,20,232,43,237,105,242,210,247,71,253,114,2, +232,6,133,10,133,13,92,16,135,19,131,23,163,28,215,34,167,41,123,48,187,54,238,59,211,63,125,66,39,68,10,69, +94,69,87,69,2,69,38,68,102,66,130,63,141,59,255,54,151,50,21,47,208,44,143,43,184,42,190,41,124,40,34,39, +235,37,217,36,144,35,120,33,51,30,19,26,241,21,117,18,173,15,83,13,44,11,33,9,37,7,28,5,195,2,212,255, +76,252,145,248,27,245,12,242,28,239,200,235,191,231,55,227,209,222,20,219,21,216,151,213,87,211,46,209,36,207,116,205, +125,204,143,204,175,205,118,207,75,209,212,210,28,212,86,213,171,214,72,216,107,218,46,221,114,224,251,227,153,231,44,235, +157,238,213,241,167,244,204,246,41,248,5,249,218,249,1,251,128,252,21,254,103,255,64,0,158,0,120,0,148,255,195,253, +17,251,179,247,2,244,165,240,104,238,178,237,71,238,134,239,205,240,197,241,113,242,10,243,214,243,64,245,203,247,179,251, +172,0,31,6,89,11,164,15,146,18,92,20,189,21,84,23,72,25,85,27,2,29,219,29,193,29,1,29,6,28,248,26, +170,25,193,23,241,20,51,17,235,12,211,8,147,5,98,3,242,1,173,0,41,255,107,253,234,251,64,251,232,251,35,254, +200,1,51,6,142,10,78,14,89,17,203,19,173,21,248,22,181,23,25,24,95,24,144,24,144,24,77,24,189,23,199,22, +109,21,225,19,86,18,201,16,17,15,4,13,156,10,12,8,153,5,95,3,88,1,157,255,98,254,175,253,91,253,43,253, +220,252,51,252,53,251,54,250,149,249,123,249,200,249,34,250,40,250,181,249,242,248,14,248,245,246,73,245,171,242,254,238, +107,234,86,229,70,224,190,219,24,216,81,213,242,210,83,208,32,205,198,201,35,199,229,197,70,198,38,200,32,203,149,206, +231,209,218,212,162,215,165,218,39,222,53,226,180,230,130,235,113,240,70,245,233,249,147,254,169,3,99,9,125,15,91,21, +142,26,69,31,4,36,5,41,17,46,224,50,65,55,237,58,122,61,127,62,202,61,138,59,71,56,155,52,232,48,87,45, +4,42,0,39,70,36,212,33,200,31,94,30,185,29,183,29,6,30,104,30,215,30,90,31,195,31,187,31,27,31,28,30, +31,29,59,28,31,27,117,25,36,23,68,20,8,17,196,13,225,10,157,8,231,6,129,5,36,4,150,2,149,0,203,253, +233,249,216,244,215,238,85,232,206,225,193,219,191,214,76,211,153,209,83,209,217,209,183,210,195,211,225,212,237,213,241,214, +38,216,173,217,94,219,215,220,160,221,105,221,47,220,64,218,238,215,114,213,255,210,219,208,55,207,249,205,221,204,189,203, +177,202,220,201,97,201,117,201,93,202,75,204,90,207,131,211,105,216,88,221,187,225,137,229,33,233,227,236,249,240,110,245, +84,250,205,255,251,5,207,12,21,20,156,27,63,35,209,42,38,50,33,57,166,63,136,69,145,74,168,78,191,81,155,83, +221,83,68,82,236,78,67,74,225,68,92,63,11,58,215,52,105,47,140,41,97,35,72,29,186,23,44,19,226,15,205,13, +140,12,172,11,243,10,124,10,111,10,178,10,2,11,61,11,95,11,90,11,23,11,144,10,221,9,35,9,128,8,238,7, +90,7,203,6,85,6,215,5,242,4,88,3,237,0,169,253,127,249,134,244,27,239,186,233,203,228,168,224,165,221,232,219, +58,219,44,219,92,219,156,219,254,219,206,220,73,222,67,224,48,226,169,227,186,228,181,229,209,230,2,232,18,233,195,233, +234,233,101,233,21,232,235,229,250,226,130,223,227,219,103,216,63,213,153,210,166,208,127,207,29,207,121,207,141,208,66,210, +129,212,68,215,139,218,85,222,169,226,132,231,164,236,163,241,75,246,183,250,45,255,13,4,176,9,31,16,4,23,2,30, +1,37,253,43,166,50,121,56,32,61,145,64,203,66,185,67,104,67,35,66,83,64,70,62,26,60,187,57,252,54,217,51, +145,48,136,45,16,43,83,41,59,40,116,39,163,38,170,37,164,36,152,35,90,34,194,32,236,30,11,29,10,27,151,24, +158,21,119,18,156,15,108,13,21,12,123,11,29,11,105,10,27,9,49,7,167,4,90,1,30,253,201,247,100,241,104,234, +185,227,54,222,57,218,134,215,157,213,21,212,171,210,49,209,187,207,171,206,117,206,61,207,188,208,131,210,56,212,168,213, +167,214,16,215,241,214,166,214,173,214,84,215,164,216,126,218,186,220,45,223,150,225,161,227,37,229,76,230,116,231,207,232, +50,234,86,235,50,236,7,237,4,238,255,238,162,239,205,239,152,239,43,239,208,238,245,238,236,239,160,241,198,243,63,246, +51,249,225,252,110,1,209,6,197,12,214,18,137,24,141,29,204,33,88,37,88,40,255,42,104,45,127,47,24,49,39,50, +189,50,220,50,124,50,161,49,93,48,212,46,65,45,200,43,70,42,111,40,21,38,45,35,179,31,175,27,80,23,220,18, +144,14,154,10,58,7,202,4,127,3,47,3,111,3,244,3,177,4,161,5,152,6,96,7,237,7,97,8,237,8,171,9, +132,10,43,11,47,11,32,10,213,7,155,4,241,0,26,253,13,249,202,244,139,240,145,236,224,232,95,229,33,226,127,223, +217,221,81,221,170,221,104,222,29,223,196,223,164,224,230,225,101,227,229,228,63,230,86,231,31,232,182,232,75,233,236,233, +123,234,198,234,175,234,61,234,136,233,141,232,48,231,98,229,60,227,239,224,180,222,185,220,37,219,33,218,218,217,84,218, +100,219,223,220,185,222,237,224,126,227,162,230,157,234,124,239,18,245,37,251,140,1,51,8,254,14,165,21,172,27,188,32, +250,36,236,40,16,45,145,49,54,54,122,58,191,61,157,63,38,64,217,63,91,63,6,63,171,62,204,61,24,60,167,57, +182,54,113,51,21,48,3,45,149,42,230,40,192,39,149,38,192,36,18,34,249,30,248,27,50,25,189,22,228,20,183,19, +179,18,50,17,251,14,68,12,96,9,132,6,180,3,215,0,234,253,12,251,75,248,136,245,132,242,7,239,5,235,178,230, +106,226,134,222,71,219,213,216,51,215,68,214,230,213,234,213,3,214,236,213,171,213,148,213,6,214,39,215,214,216,191,218, +130,220,190,221,252,221,215,220,111,218,157,215,107,213,79,212,14,212,51,212,98,212,80,212,191,211,165,210,48,209,167,207, +86,206,135,205,128,205,137,206,206,208,29,212,243,215,217,219,171,223,127,227,123,231,211,235,175,240,18,246,235,251,35,2, +146,8,240,14,229,20,27,26,93,30,224,33,85,37,145,41,20,47,217,53,80,61,121,68,90,74,124,78,224,80,151,81, +161,80,52,78,208,74,242,70,200,66,73,62,106,57,36,52,110,46,119,40,204,34,10,30,93,26,111,23,219,20,116,18, +38,16,217,13,126,11,40,9,249,6,10,5,98,3,250,1,193,0,160,255,119,254,32,253,163,251,86,250,183,249,1,250, +12,251,122,252,237,253,17,255,140,255,251,254,14,253,200,249,165,245,99,241,149,237,127,234,54,232,174,230,186,229,46,229, +240,228,248,228,78,229,23,230,125,231,137,233,14,236,178,238,13,241,234,242,83,244,75,245,151,245,243,244,87,243,255,240, +80,238,178,235,73,233,201,230,183,227,218,223,72,219,63,214,42,209,201,204,223,201,173,200,232,200,30,202,0,204,81,206, +228,208,194,211,41,215,87,219,73,224,187,229,104,235,65,241,73,247,62,253,180,2,132,7,255,11,153,16,160,21,72,27, +173,33,196,40,60,48,124,55,166,61,239,65,32,68,153,68,217,67,52,66,247,63,114,61,195,58,195,55,83,52,141,48, +168,44,230,40,169,37,89,35,22,34,167,33,173,33,190,33,99,33,81,32,173,30,232,28,95,27,67,26,163,25,82,25, +236,24,13,24,115,22,253,19,188,16,8,13,88,9,242,5,221,2,238,255,224,252,107,249,117,245,27,241,124,236,150,231, +125,226,163,221,176,217,16,215,179,213,61,213,73,213,127,213,159,213,146,213,110,213,109,213,191,213,84,214,233,214,77,215, +164,215,58,216,25,217,242,217,103,218,93,218,238,217,51,217,45,216,224,214,79,213,78,211,161,208,91,205,1,202,58,199, +112,197,183,196,213,196,118,197,106,198,195,199,190,201,152,204,118,208,99,213,88,219,80,226,49,234,192,242,175,251,176,4, +111,13,171,21,92,29,188,36,26,44,204,51,19,60,241,68,243,77,67,86,234,92,43,97,196,98,237,97,46,95,40,91, +134,86,228,81,150,77,139,73,102,69,191,64,100,59,124,53,143,47,94,42,110,38,175,35,179,33,42,32,239,30,190,29, +48,28,0,26,55,23,42,20,81,17,238,14,218,12,191,10,142,8,138,6,3,5,28,4,204,3,207,3,160,3,158,2, +103,0,3,253,183,248,165,243,195,237,40,231,67,224,169,217,220,211,78,207,118,204,169,203,204,204,45,207,219,209,52,212, +29,214,205,215,130,217,85,219,61,221,37,223,249,224,164,226,12,228,46,229,27,230,204,230,28,231,247,230,94,230,67,229, +124,227,235,224,150,221,193,217,238,213,159,210,36,208,151,206,8,206,121,206,211,207,235,209,139,212,141,215,243,218,222,222, +79,227,18,232,240,236,206,241,182,246,207,251,84,1,105,7,249,13,171,20,20,27,5,33,199,38,235,44,203,51,53,59, +124,66,181,72,252,76,183,78,241,77,102,75,26,72,191,68,136,65,133,62,192,59,9,57,221,53,180,49,105,44,94,38, +76,32,241,26,179,22,156,19,128,17,13,16,215,14,144,13,39,12,188,10,125,9,125,8,147,7,120,6,15,5,126,3, +3,2,218,0,64,0,86,0,246,0,194,1,60,2,237,1,142,0,21,254,152,250,54,246,45,241,216,235,155,230,231,225, +58,222,227,219,194,218,80,218,245,217,73,217,40,216,160,214,236,212,121,211,207,210,79,211,5,213,151,215,99,218,184,220, +31,222,120,222,228,221,162,220,251,218,39,217,60,215,72,213,101,211,155,209,203,207,212,205,202,203,16,202,29,201,26,201, +212,201,45,203,102,205,224,208,180,213,166,219,78,226,72,233,95,240,157,247,18,255,177,6,109,14,99,22,203,30,195,39, +44,49,189,58,16,68,154,76,198,83,86,89,142,93,195,96,226,98,122,99,30,98,171,94,98,89,246,82,56,76,161,69, +63,63,249,56,207,50,210,44,38,39,234,33,54,29,31,25,197,21,62,19,116,17,25,16,187,14,242,12,169,10,32,8, +164,5,88,3,71,1,156,255,164,254,143,254,56,255,65,0,99,1,124,2,70,3,51,3,199,1,238,254,238,250,13,246, +106,240,53,234,226,227,7,222,29,217,98,213,245,210,214,209,213,209,166,210,253,211,170,213,155,215,192,217,233,219,214,221, +115,223,235,224,116,226,47,228,40,230,82,232,104,234,13,236,242,236,246,236,49,236,241,234,126,233,209,231,181,229,19,227, +42,224,117,221,107,219,67,218,234,217,37,218,167,218,49,219,198,219,157,220,230,221,171,223,252,225,253,228,175,232,230,236, +125,241,114,246,195,251,84,1,248,6,124,12,187,17,187,22,195,27,68,33,127,39,59,46,213,52,149,58,244,62,182,65, +220,66,161,66,96,65,132,63,134,61,208,59,147,58,161,57,124,56,129,54,39,51,70,46,34,40,83,33,147,26,168,20, +62,16,148,13,81,12,175,11,250,10,210,9,26,8,238,5,171,3,195,1,94,0,83,255,116,254,204,253,130,253,159,253, +235,253,3,254,173,253,233,252,166,251,158,249,187,246,85,243,212,239,69,236,132,232,158,228,242,224,9,222,59,220,92,219, +205,218,241,217,158,216,23,215,219,213,106,213,20,214,206,215,58,218,243,220,203,223,195,226,200,229,127,232,99,234,26,235, +175,234,128,233,235,231,24,230,8,228,198,225,107,223,248,220,112,218,3,216,18,214,241,212,190,212,94,213,150,214,35,216, +225,217,225,219,105,222,197,225,13,230,12,235,116,240,41,246,82,252,42,3,184,10,202,18,29,27,134,35,226,43,248,51, +125,59,38,66,193,71,80,76,19,80,74,83,238,85,160,87,223,87,76,86,250,82,138,78,216,73,135,69,190,65,73,62, +229,58,119,55,15,52,162,48,249,44,251,40,211,36,188,32,224,28,102,25,101,22,200,19,88,17,245,14,147,12,44,10, +199,7,109,5,24,3,194,0,119,254,55,252,213,249,17,247,209,243,59,240,165,236,68,233,236,229,67,226,69,222,105,218, +60,215,235,212,74,211,35,210,99,209,32,209,139,209,198,210,168,212,191,214,153,216,12,218,59,219,94,220,135,221,144,222, +90,223,5,224,220,224,253,225,72,227,126,228,75,229,75,229,100,228,245,226,127,225,60,224,21,223,217,221,98,220,186,218, +36,217,250,215,122,215,181,215,135,216,155,217,185,218,8,220,236,221,200,224,226,228,89,234,253,240,77,248,164,255,109,6, +100,12,195,17,3,23,97,28,202,33,61,39,224,44,173,50,70,56,52,61,13,65,121,67,88,68,252,67,11,67,250,65, +191,64,32,63,43,61,57,59,113,57,121,55,156,52,60,48,76,42,97,35,102,28,34,22,255,16,13,13,23,10,201,7, +216,5,46,4,220,2,230,1,35,1,98,0,159,255,235,254,50,254,63,253,245,251,105,250,207,248,97,247,76,246,150,245, +21,245,125,244,122,243,234,241,240,239,200,237,132,235,39,233,237,230,56,229,65,228,232,227,203,227,145,227,59,227,33,227, +121,227,22,228,174,228,46,229,159,229,226,229,188,229,8,229,244,227,1,227,178,226,4,227,100,227,47,227,42,226,125,224, +106,222,44,220,252,217,23,216,168,214,198,213,128,213,238,213,9,215,142,216,30,218,129,219,192,220,33,222,254,223,177,226, +114,230,78,235,45,241,228,247,46,255,192,6,106,14,56,22,86,30,197,38,75,47,137,55,16,63,96,69,29,74,78,77, +80,79,151,80,110,81,212,81,140,81,94,80,81,78,150,75,101,72,9,69,220,65,20,63,167,60,97,58,12,56,107,53, +49,50,36,46,97,41,100,36,176,31,125,27,194,23,109,20,101,17,115,14,90,11,246,7,91,4,235,0,55,254,150,252, +216,251,105,251,153,250,207,248,176,245,85,241,65,236,19,231,48,226,197,221,249,217,243,214,181,212,35,211,43,210,197,209, +166,209,89,209,187,208,40,208,25,208,181,208,217,209,68,211,169,212,212,213,187,214,74,215,72,215,143,214,84,213,251,211, +208,210,248,209,135,209,135,209,228,209,122,210,54,211,8,212,199,212,71,213,159,213,31,214,241,214,230,215,169,216,26,217, +94,217,187,217,129,218,34,220,53,223,59,228,76,235,235,243,46,253,25,6,21,14,24,21,110,27,102,33,69,39,70,45, +111,51,167,57,250,63,121,70,184,76,197,81,198,84,141,85,150,84,193,82,228,80,118,79,123,78,155,77,67,76,195,73, +165,69,239,63,17,57,177,49,120,42,226,35,41,30,69,25,243,20,202,16,112,12,229,7,130,3,169,255,131,252,237,249, +140,247,19,245,126,242,0,240,191,237,183,235,237,233,151,232,245,231,43,232,39,233,127,234,122,235,95,235,246,233,149,231, +207,228,40,226,6,224,160,222,235,221,182,221,215,221,57,222,208,222,147,223,101,224,8,225,84,225,97,225,133,225,17,226, +50,227,233,228,32,231,157,233,228,235,82,237,140,237,183,236,48,235,61,233,22,231,247,228,231,226,171,224,35,222,117,219, +244,216,0,215,248,213,247,213,189,214,233,215,79,217,11,219,95,221,141,224,180,228,182,233,79,239,44,245,14,251,234,0, +237,6,72,13,238,19,179,26,154,33,239,40,219,48,17,57,249,64,13,72,239,77,64,82,187,84,101,85,121,84,29,82, +74,78,10,73,193,66,53,60,57,54,67,49,90,45,86,42,1,40,20,38,85,36,196,34,137,33,172,32,251,31,52,31, +34,30,150,28,101,26,132,23,26,20,134,16,67,13,208,10,108,9,234,8,201,8,133,8,215,7,186,6,105,5,29,4, +172,2,121,0,238,252,1,248,59,242,87,236,246,230,88,226,94,222,215,218,192,215,48,213,35,211,137,209,109,208,242,207, +34,208,212,208,206,209,245,210,75,212,183,213,228,214,130,215,144,215,85,215,31,215,7,215,231,214,131,214,196,213,228,212, +86,212,111,212,38,213,31,214,13,215,229,215,182,216,116,217,26,218,223,218,36,220,5,222,30,224,219,225,14,227,23,228, +124,229,132,231,62,234,174,237,209,241,161,246,25,252,18,2,46,8,16,14,175,19,87,25,94,31,207,37,57,44,222,49, +54,54,72,57,106,59,226,60,201,61,29,62,199,61,195,60,72,59,169,57,9,56,82,54,96,52,39,50,159,47,176,44, +46,41,244,36,17,32,229,26,236,21,120,17,151,13,78,10,172,7,179,5,78,4,123,3,94,3,26,4,172,5,222,7, +86,10,167,12,114,14,110,15,112,15,135,14,243,12,246,10,180,8,71,6,191,3,1,1,240,253,157,250,46,247,152,243, +178,239,125,235,42,231,229,226,216,222,77,219,141,216,167,214,122,213,253,212,92,213,190,214,8,217,237,219,34,223,114,226, +160,229,104,232,140,234,237,235,173,236,46,237,217,237,200,238,174,239,0,240,69,239,95,237,163,234,134,231,52,228,136,224, +105,220,38,216,114,212,29,210,176,209,29,211,175,213,114,216,237,218,127,221,239,224,165,229,98,235,133,241,116,247,224,252, +237,1,22,7,202,12,41,19,8,26,19,33,236,39,85,46,58,52,140,57,51,62,43,66,131,69,39,72,218,73,129,74, +79,74,118,73,223,71,71,69,183,65,158,61,102,57,55,53,66,49,254,45,202,43,125,42,131,41,94,40,217,38,229,36, +139,34,252,31,130,29,91,27,154,25,30,24,138,22,117,20,178,17,113,14,12,11,193,7,149,4,95,1,226,253,255,249, +200,245,105,241,238,236,42,232,210,226,214,220,165,214,23,209,238,204,93,202,252,200,31,200,81,199,154,198,82,198,172,198, +137,199,177,200,247,201,51,203,91,204,156,205,6,207,62,208,215,208,239,208,32,209,225,209,57,211,227,212,122,214,141,215, +222,215,134,215,190,214,165,213,82,212,6,211,41,210,29,210,18,211,235,212,46,215,56,217,195,218,34,220,8,222,23,225, +162,229,144,235,101,242,127,249,113,0,15,7,61,13,238,18,85,24,217,29,237,35,232,42,231,50,163,59,109,68,112,76, +6,83,229,87,23,91,196,92,10,93,252,91,194,89,163,86,221,82,153,78,226,73,179,68,9,63,249,56,201,50,236,44, +223,39,249,35,59,33,64,31,89,29,229,26,176,23,2,20,77,16,228,12,239,9,134,7,167,5,43,4,228,2,175,1, +103,0,243,254,113,253,71,252,204,251,234,251,7,252,61,251,196,248,81,244,68,238,99,231,128,224,71,218,47,213,122,209, +63,207,141,206,70,207,240,208,221,210,140,212,211,213,216,214,249,215,161,217,3,220,255,222,73,226,138,229,104,232,148,234, +220,235,50,236,174,235,149,234,54,233,173,231,207,229,61,227,148,223,186,218,35,213,200,207,194,203,236,201,172,202,213,205, +179,210,104,216,64,222,192,227,153,232,186,236,74,240,132,243,155,246,198,249,52,253,248,0,18,5,148,9,150,14,254,19, +140,25,51,31,62,37,7,44,142,51,84,59,132,66,57,72,214,75,78,77,24,77,214,75,12,74,21,72,58,70,175,68, +106,67,3,66,209,63,87,60,171,55,112,50,108,45,29,41,158,37,176,34,226,31,191,28,5,25,169,20,216,15,244,10, +143,6,31,3,178,0,254,254,172,253,141,252,113,251,13,250,27,248,157,245,227,242,71,240,219,237,105,235,197,232,7,230, +109,227,7,225,185,222,91,220,234,217,133,215,106,213,221,211,6,211,212,210,245,210,240,210,72,210,190,208,136,206,93,204, +27,203,70,203,199,204,13,207,97,209,44,211,21,212,1,212,251,210,40,209,220,206,148,204,210,202,221,201,186,201,71,202, +90,203,212,204,176,206,3,209,186,211,125,214,4,217,120,219,83,222,246,225,144,230,57,236,210,242,243,249,62,1,178,8, +145,16,28,25,113,34,119,44,194,54,195,64,9,74,55,82,238,88,253,93,136,97,225,99,81,101,20,102,78,102,222,101, +85,100,59,97,106,92,73,86,202,79,3,74,145,69,101,66,253,63,164,61,152,58,88,54,240,48,240,42,1,37,149,31, +219,26,181,22,217,18,8,15,43,11,54,7,7,3,141,254,251,249,197,245,67,242,108,239,221,236,33,234,238,230,48,227, +1,223,150,218,42,214,12,210,159,206,66,204,19,203,240,202,139,203,123,204,78,205,190,205,225,205,15,206,179,206,35,208, +128,210,145,213,237,216,71,220,116,223,45,226,15,228,247,228,70,229,154,229,76,230,58,231,246,231,20,232,84,231,173,229, +93,227,204,224,75,222,237,219,186,217,211,215,115,214,192,213,203,213,126,214,152,215,229,216,141,218,9,221,187,224,180,229, +197,235,159,242,237,249,123,1,42,9,189,16,195,23,221,29,12,35,179,39,76,44,44,49,98,54,183,59,187,64,246,68, +7,72,175,73,229,73,244,72,118,71,11,70,6,69,101,68,238,67,53,67,164,65,156,62,208,57,119,51,64,44,255,36, +88,30,143,24,150,19,62,15,88,11,177,7,37,4,205,0,4,254,14,252,193,250,157,249,60,248,151,246,240,244,134,243, +90,242,49,241,213,239,90,238,247,236,176,235,72,234,152,232,205,230,59,229,6,228,17,227,40,226,63,225,133,224,45,224, +47,224,74,224,63,224,244,223,98,223,122,222,65,221,242,219,243,218,159,218,12,219,22,220,112,221,184,222,151,223,233,223, +208,223,96,223,105,222,172,220,57,218,110,215,183,212,84,210,78,208,128,206,201,204,71,203,80,202,69,202,126,203,44,206, +48,210,21,215,89,220,184,225,57,231,23,237,154,243,220,250,162,2,157,10,184,18,30,27,15,36,180,45,248,55,95,66, +30,76,109,84,217,90,101,95,106,98,58,100,217,100,58,100,132,98,247,95,156,92,73,88,254,82,3,77,193,70,148,64, +195,58,126,53,223,48,217,44,51,41,172,37,54,34,243,30,0,28,84,25,215,22,140,20,118,18,108,16,23,14,42,11, +181,7,34,4,221,0,5,254,117,251,1,249,140,246,230,243,191,240,198,236,230,231,109,226,230,220,214,215,155,211,128,208, +203,206,169,206,9,208,130,210,102,213,246,215,168,217,76,218,7,218,83,217,198,216,190,216,47,217,202,217,59,218,82,218, +43,218,42,218,167,218,147,219,128,220,241,220,138,220,35,219,223,216,28,214,67,211,178,208,181,206,124,205,3,205,53,205, +13,206,141,207,150,209,239,211,117,214,54,217,106,220,67,224,198,228,195,233,13,239,160,244,138,250,202,0,64,7,194,13, +35,20,71,26,53,32,4,38,194,43,124,49,59,55,229,60,30,66,118,70,156,73,122,75,40,76,216,75,193,74,21,73, +21,71,19,69,37,67,249,64,4,62,219,57,99,52,188,45,63,38,116,30,247,22,84,16,237,10,216,6,211,3,120,1, +117,255,135,253,122,251,75,249,56,247,155,245,190,244,206,244,183,245,5,247,42,248,229,248,82,249,175,249,49,250,241,250, +206,251,106,252,116,252,226,251,214,250,112,249,214,247,70,246,244,244,227,243,228,242,205,241,145,240,68,239,253,237,207,236, +216,235,49,235,209,234,140,234,59,234,218,233,115,233,253,232,98,232,171,231,250,230,75,230,78,229,162,227,64,225,114,222, +128,219,132,216,162,213,49,211,147,209,14,209,193,209,161,211,127,214,20,218,15,222,27,226,245,229,125,233,174,236,161,239, +153,242,248,245,4,250,203,254,56,4,47,10,142,16,61,23,40,30,10,37,91,43,154,48,153,52,122,55,111,57,152,58, +8,59,209,58,238,57,67,56,190,53,139,50,244,46,45,43,73,39,114,35,241,31,248,28,132,26,97,24,68,22,229,19, +46,17,78,14,143,11,45,9,73,7,205,5,100,4,187,2,202,0,196,254,236,252,151,251,53,251,1,252,200,253,19,0, +107,2,96,4,138,5,184,5,28,5,36,4,51,3,116,2,234,1,140,1,79,1,33,1,247,0,222,0,225,0,221,0, +147,0,239,255,20,255,44,254,64,253,66,252,25,251,165,249,209,247,167,245,76,243,219,240,82,238,151,235,136,232,18,229, +51,225,10,221,225,216,43,213,93,210,192,208,82,208,219,208,9,210,136,211,18,213,150,214,56,216,40,218,121,220,22,223, +219,225,147,228,17,231,76,233,97,235,108,237,107,239,98,241,99,243,143,245,23,248,69,251,83,255,55,4,168,9,59,15, +118,20,205,24,209,27,100,29,203,29,100,29,98,28,220,26,7,25,67,23,214,21,193,20,186,19,86,18,67,16,121,13, +53,10,193,6,92,3,69,0,202,253,49,252,172,251,77,252,242,253,72,0,252,2,211,5,147,8,255,10,32,13,64,15, +150,17,7,20,116,22,254,24,238,27,79,31,223,34,51,38,230,40,165,42,56,43,164,42,39,41,15,39,149,36,225,33, +23,31,86,28,180,25,75,23,44,21,68,19,89,17,49,15,178,12,229,9,232,6,204,3,132,0,238,252,250,248,183,244, +79,240,250,235,229,231,46,228,229,224,27,222,209,219,221,217,253,215,4,214,239,211,226,209,7,208,123,206,85,205,197,204, +0,205,17,206,213,207,41,210,10,213,95,216,224,219,69,223,120,226,134,229,133,232,151,235,222,238,101,242,8,246,137,249, +187,252,150,255,46,2,118,4,44,6,7,7,247,6,38,6,216,4,81,3,186,1,253,255,214,253,41,251,51,248,83,245, +203,242,205,240,145,239,69,239,245,239,167,241,98,244,6,248,70,252,209,0,125,5,48,10,215,14,127,19,81,24,91,29, +101,34,30,39,118,43,185,47,60,52,12,57,235,61,133,66,124,70,73,73,89,74,98,73,146,70,85,66,31,61,109,55, +211,49,229,44,16,41,128,38,15,37,61,36,98,35,244,33,169,31,104,28,59,24,90,19,21,14,180,8,109,3,108,254, +191,249,77,245,9,241,15,237,121,233,45,230,237,226,143,223,252,219,27,216,228,211,113,207,237,202,154,198,229,194,65,192, +225,190,166,190,89,191,210,192,229,194,83,197,253,199,245,202,92,206,45,210,67,214,114,218,130,222,41,226,71,229,5,232, +146,234,205,236,98,238,40,239,73,239,28,239,229,238,182,238,112,238,242,237,61,237,94,236,74,235,235,233,77,232,142,230, +213,228,98,227,164,226,10,227,210,228,244,231,39,236,0,241,31,246,76,251,107,0,106,5,77,10,46,15,42,20,89,25, +227,30,253,36,188,43,3,51,154,58,79,66,227,73,254,80,57,87,43,92,108,95,185,96,53,96,86,94,144,91,47,88, +111,84,156,80,233,76,100,73,8,70,184,66,42,63,16,59,70,54,213,48,227,42,172,36,106,30,33,24,158,17,188,10, +150,3,125,252,217,245,248,239,242,234,174,230,8,227,213,223,236,220,48,218,140,215,204,212,193,209,135,206,139,203,42,201, +131,199,154,198,125,198,22,199,18,200,16,201,241,201,210,202,194,203,147,204,15,205,63,205,104,205,212,205,184,206,48,208, +41,210,90,212,105,214,25,216,58,217,153,217,2,217,102,215,249,212,61,210,194,207,216,205,107,204,73,203,135,202,130,202, +135,203,149,205,124,208,31,212,122,216,105,221,176,226,44,232,239,237,26,244,171,250,102,1,247,7,59,14,115,20,246,26, +209,33,213,40,242,47,81,55,50,63,201,71,20,81,179,90,239,99,13,108,125,114,229,118,41,121,107,121,246,119,52,117, +169,113,205,109,231,105,4,102,254,97,125,93,24,88,137,81,203,73,15,65,204,55,154,46,212,37,83,29,189,20,5,12, +144,3,221,251,26,245,34,239,189,233,213,228,70,224,183,219,200,214,114,209,7,204,238,198,128,194,16,191,236,188,79,188, +77,189,185,191,5,195,113,198,94,201,125,203,186,204,47,205,35,205,251,204,15,205,134,205,93,206,122,207,170,208,192,209, +176,210,150,211,131,212,92,213,248,213,76,214,117,214,165,214,13,215,179,215,90,216,174,216,135,216,222,215,186,214,62,213, +184,211,111,210,132,209,21,209,107,209,242,210,255,213,178,218,237,224,115,232,223,240,156,249,16,2,254,9,157,17,47,25, +191,32,83,40,20,48,40,56,120,64,213,72,17,81,237,88,254,95,203,101,7,106,167,108,223,109,7,110,119,109,111,108, +248,106,240,104,31,102,90,98,132,93,138,87,94,80,12,72,225,62,118,53,129,44,101,36,3,29,248,21,8,15,56,8, +163,1,88,251,105,245,245,239,12,235,138,230,52,226,239,221,216,217,13,214,161,210,172,207,82,205,162,203,142,202,252,201, +230,201,93,202,109,203,235,204,110,206,168,207,165,208,165,209,207,210,42,212,179,213,90,215,236,216,36,218,211,218,240,218, +142,218,188,217,126,216,217,214,240,212,242,210,251,208,25,207,84,205,174,203,56,202,28,201,135,200,140,200,42,201,91,202, +11,204,5,206,13,208,17,210,55,212,198,214,2,218,25,222,43,227,77,233,107,240,62,248,126,0,32,9,36,18,85,27, +99,36,40,45,158,53,190,61,131,69,4,77,79,84,54,91,77,97,41,102,156,105,188,107,209,108,38,109,211,108,196,107, +239,105,97,103,29,100,22,96,98,91,86,86,55,81,252,75,124,70,165,64,115,58,212,51,170,44,231,36,149,28,237,19, +90,11,76,3,3,252,132,245,156,239,238,233,27,228,249,221,159,215,67,209,41,203,169,197,51,193,45,190,190,188,178,188, +185,189,162,191,69,194,62,197,3,200,72,202,37,204,236,205,232,207,71,210,255,212,211,215,133,218,242,220,0,223,137,224, +91,225,70,225,39,224,8,222,44,219,248,215,197,212,194,209,244,206,84,204,5,202,75,200,91,199,31,199,69,199,119,199, +125,199,77,199,19,199,66,199,115,200,13,203,20,207,102,212,245,218,173,226,65,235,81,244,181,253,92,7,22,17,150,26, +161,35,41,44,69,52,36,60,241,67,179,75,69,83,103,90,200,96,18,102,250,105,80,108,13,109,90,108,138,106,21,104, +123,101,13,99,195,96,92,94,154,91,77,88,67,84,96,79,161,73,7,67,159,59,184,51,201,43,31,36,183,28,126,21, +107,14,109,7,105,0,88,249,90,242,179,235,177,229,131,224,21,220,43,216,148,212,71,209,76,206,176,203,121,201,180,199, +132,198,24,198,125,198,132,199,223,200,83,202,192,203,31,205,134,206,18,208,200,209,149,211,103,213,60,215,15,217,192,218, +39,220,39,221,167,221,114,221,80,220,72,218,168,215,195,212,174,209,100,206,20,203,48,200,45,198,54,197,31,197,159,197, +123,198,134,199,181,200,61,202,130,204,208,207,51,212,130,217,123,223,221,229,142,236,164,243,41,251,0,3,16,11,96,19, +240,27,157,36,94,45,97,54,225,63,221,73,238,83,113,93,218,101,229,108,105,114,28,118,163,119,244,118,129,116,249,112, +239,108,182,104,129,100,115,96,133,92,109,88,227,83,229,78,147,73,218,67,112,61,41,54,33,46,183,37,87,29,56,21, +65,13,67,5,83,253,218,245,50,239,90,233,2,228,213,222,157,217,63,212,170,206,249,200,152,195,25,191,248,187,132,186, +212,186,181,188,168,191,13,195,88,198,42,201,78,203,191,204,166,205,83,206,17,207,16,208,80,209,177,210,5,212,36,213, +252,213,142,214,219,214,234,214,226,214,248,214,39,215,44,215,198,214,228,213,158,212,14,211,63,209,53,207,243,204,162,202, +128,200,218,198,5,198,89,198,9,200,21,203,103,207,220,212,52,219,44,226,179,233,222,241,147,250,128,3,84,12,242,20, +125,29,47,38,27,47,19,56,224,64,135,73,33,82,147,90,129,98,122,105,10,111,190,114,93,116,46,116,217,114,251,112, +219,110,134,108,255,105,62,103,23,100,71,96,131,91,129,85,19,78,95,69,233,59,76,50,251,40,61,32,36,24,137,16, +45,9,254,1,48,251,25,245,232,239,131,235,155,231,221,227,10,224,249,219,153,215,248,210,67,206,189,201,191,197,165,194, +171,192,242,191,155,192,175,194,215,197,97,201,149,204,30,207,32,209,245,210,203,212,131,214,239,215,16,217,245,217,151,218, +244,218,48,219,124,219,216,219,7,220,164,219,93,218,32,216,29,213,159,209,239,205,96,202,64,199,185,196,209,194,148,193, +45,193,211,193,157,195,91,198,176,201,88,205,96,209,22,214,199,219,126,226,253,233,227,241,238,249,15,2,76,10,188,18, +123,27,144,36,207,45,12,55,91,64,237,73,174,83,47,93,219,101,39,109,149,114,202,117,182,118,145,117,176,114,132,110, +168,105,195,100,64,96,56,92,138,88,250,84,44,81,204,76,203,71,65,66,41,60,108,53,32,46,124,38,158,30,137,22, +79,14,35,6,91,254,97,247,123,241,135,236,19,232,175,227,8,223,224,217,43,212,45,206,84,200,21,195,225,190,36,188, +34,187,208,187,234,189,5,193,159,196,28,200,244,202,236,204,57,206,84,207,173,208,118,210,160,212,228,214,225,216,79,218, +44,219,177,219,39,220,169,220,12,221,1,221,99,220,84,219,11,218,158,216,12,215,66,213,27,211,141,208,212,205,84,203, +85,201,245,199,82,199,162,199,19,201,189,203,180,207,8,213,150,219,239,226,127,234,220,241,228,248,182,255,153,6,218,13, +153,21,200,29,87,38,47,47,31,56,242,64,169,73,99,82,15,91,64,99,87,106,194,111,45,115,146,116,38,116,53,114, +30,111,81,107,46,103,247,98,218,94,229,90,218,86,53,82,120,76,149,69,236,61,244,53,230,45,203,37,206,29,67,22, +83,15,208,8,132,2,133,252,21,247,91,242,63,238,118,234,173,230,188,226,168,222,110,218,3,214,136,209,98,205,251,201, +149,199,84,198,76,198,104,199,82,201,132,203,129,205,16,207,87,208,180,209,84,211,22,213,184,214,13,216,251,216,97,217, +58,217,178,216,251,215,34,215,50,214,83,213,141,212,152,211,15,210,193,207,185,204,45,201,137,197,94,194,20,192,196,190, +101,190,231,190,39,192,254,193,96,196,100,199,47,203,231,207,158,213,50,220,104,227,25,235,55,243,171,251,89,4,47,13, +34,22,21,31,244,39,234,48,78,58,73,68,141,78,137,88,180,97,146,105,135,111,247,114,170,115,221,113,22,110,255,104, +104,99,28,94,172,89,83,86,247,83,44,82,93,80,26,78,52,75,155,71,68,67,52,62,117,56,20,50,47,43,249,35, +165,28,74,21,246,13,206,6,19,0,250,249,150,244,212,239,124,235,46,231,125,226,29,221,20,215,198,208,220,202,7,198, +166,194,163,192,200,191,6,192,89,193,119,195,235,197,109,200,245,202,128,205,246,207,63,210,96,212,99,214,31,216,71,217, +176,217,123,217,245,216,75,216,124,215,123,214,72,213,241,211,110,210,145,208,50,206,108,203,168,200,65,198,74,196,168,194, +84,193,124,192,97,192,49,193,244,194,189,197,217,201,130,207,120,214,15,222,174,229,26,237,73,244,63,251,36,2,73,9, +253,16,123,25,227,34,50,45,50,56,134,67,197,78,122,89,29,99,45,107,99,113,167,117,232,119,25,120,101,118,58,115, +33,111,149,106,3,102,160,97,84,93,229,88,60,84,96,79,69,74,203,68,234,62,160,56,219,49,148,42,230,34,246,26, +239,18,24,11,210,3,86,253,156,247,161,242,134,238,65,235,85,232,29,229,77,225,5,221,109,216,156,211,206,206,114,202, +242,198,137,196,81,195,51,195,242,195,75,197,20,199,45,201,112,203,180,205,198,207,100,209,105,210,4,211,147,211,86,212, +89,213,156,214,23,216,166,217,2,219,244,219,107,220,101,220,171,219,224,217,216,214,231,210,192,206,11,203,19,200,212,197, +58,196,86,195,93,195,118,196,174,198,12,202,124,206,187,211,115,217,109,223,144,229,194,235,255,241,115,248,67,255,85,6, +142,13,20,21,42,29,229,37,42,47,224,56,217,66,189,76,61,86,49,95,82,103,247,109,101,114,75,116,205,115,88,113, +154,109,101,105,84,101,155,97,67,94,69,91,90,88,7,85,7,81,82,76,176,70,189,63,124,55,135,46,130,37,164,28, +234,19,128,11,208,3,72,253,18,248,238,243,65,240,115,236,43,232,77,227,232,221,50,216,138,210,79,205,196,200,45,197, +224,194,23,194,171,194,42,196,47,198,126,200,219,202,250,204,184,206,51,208,135,209,150,210,59,211,146,211,226,211,84,212, +209,212,57,213,158,213,45,214,247,214,237,215,246,216,250,217,191,218,249,218,131,218,121,217,27,216,144,214,221,212,247,210, +224,208,189,206,224,204,187,203,176,203,231,204,77,207,182,210,239,214,184,219,217,224,75,230,36,236,92,242,188,248,38,255, +203,5,2,13,248,20,150,29,175,38,29,48,189,57,108,67,245,76,13,86,68,94,45,101,136,106,68,110,90,112,246,112, +155,112,241,111,51,111,40,110,143,108,80,106,61,103,226,98,214,92,247,84,127,75,233,64,219,53,235,42,127,32,234,22, +131,14,101,7,74,1,188,251,103,246,38,241,226,235,176,230,211,225,131,221,194,217,129,214,195,211,113,209,58,207,246,204, +237,202,153,201,49,201,172,201,4,203,25,205,126,207,168,209,80,211,97,212,187,212,82,212,114,211,160,210,45,210,28,210, +103,210,34,211,64,212,106,213,60,214,137,214,70,214,79,213,117,211,186,208,112,205,14,202,244,198,61,196,209,193,177,191, +45,190,210,189,5,191,203,193,210,197,160,202,200,207,17,213,115,218,248,223,170,229,140,235,144,241,170,247,13,254,66,5, +193,13,128,23,255,33,215,44,241,55,55,67,80,78,195,88,44,98,57,106,153,112,28,117,179,119,103,120,109,119,70,117, +150,114,209,111,39,109,154,106,1,104,19,101,151,97,135,93,234,88,183,83,227,77,102,71,20,64,197,55,169,46,53,37, +180,27,42,18,172,8,158,255,119,247,123,240,176,234,215,229,95,225,155,220,32,215,232,208,38,202,65,195,236,188,13,184, +74,181,188,180,35,182,38,185,89,189,24,194,156,198,60,202,170,204,250,205,137,206,232,206,169,207,22,209,2,211,246,212, +137,214,136,215,225,215,141,215,167,214,100,213,235,211,70,210,121,208,131,206,85,204,232,201,95,199,254,196,244,194,83,193, +63,192,10,192,21,193,135,195,49,199,191,203,247,208,200,214,29,221,192,227,134,234,131,241,243,248,230,0,41,9,163,17, +145,26,69,36,153,46,238,56,180,66,216,75,170,84,93,93,173,101,230,108,81,114,149,117,190,118,243,117,106,115,149,111, +47,107,208,102,178,98,222,94,112,91,108,88,133,85,54,82,10,78,190,72,53,66,146,58,45,50,101,41,137,32,238,23, +228,15,120,8,129,1,230,250,178,244,232,238,101,233,252,227,125,222,182,216,158,210,122,204,178,198,150,193,98,189,91,186, +161,184,13,184,109,184,189,185,243,187,172,190,91,193,184,195,194,197,125,199,215,200,231,201,253,202,106,204,90,206,213,208, +210,211,63,215,244,218,166,222,236,225,90,228,181,229,241,229,4,229,236,226,223,223,91,220,227,216,177,213,209,210,105,208, +205,206,72,206,230,206,134,208,9,211,106,214,171,218,169,223,32,229,214,234,186,240,214,246,44,253,164,3,29,10,131,16, +229,22,134,29,176,36,125,44,212,52,151,61,167,70,180,79,54,88,169,95,185,101,31,106,156,108,29,109,222,107,83,105, +12,102,173,98,180,95,50,93,215,90,66,88,48,85,99,81,154,76,185,70,213,63,34,56,245,47,192,39,214,31,47,24, +152,16,17,9,232,1,117,251,229,245,62,241,100,237,2,234,142,230,137,226,192,221,88,216,175,210,63,205,148,200,45,197, +80,195,6,195,51,196,159,198,214,201,39,205,231,207,187,209,172,210,1,211,18,211,23,211,44,211,110,211,8,212,250,212, +243,213,149,214,221,214,5,215,27,215,228,214,55,214,39,213,199,211,11,210,250,207,207,205,204,203,7,202,116,200,28,199, +25,198,140,197,156,197,107,198,8,200,103,202,142,205,169,209,221,214,21,221,19,228,144,235,53,243,143,250,87,1,194,7, +87,14,98,21,220,28,198,36,101,45,242,54,69,65,223,75,36,86,116,95,80,103,103,109,137,113,154,115,187,115,106,114, +68,112,179,109,10,107,176,104,213,102,3,101,87,98,41,94,94,88,46,81,223,72,195,63,70,54,216,44,204,35,63,27, +29,19,67,11,182,3,149,252,246,245,223,239,98,234,145,229,76,225,70,221,79,217,114,213,210,209,124,206,112,203,207,200, +226,198,241,197,2,198,221,198,57,200,222,201,119,203,151,204,11,205,28,205,76,205,224,205,200,206,229,207,45,209,132,210, +180,211,146,212,22,213,76,213,68,213,19,213,199,212,77,212,141,211,146,210,116,209,45,208,152,206,170,204,131,202,73,200, +44,198,135,196,210,195,90,196,41,198,54,201,126,205,222,210,24,217,5,224,152,231,161,239,186,247,145,255,34,7,163,14, +108,22,229,30,73,40,77,50,80,60,234,69,34,79,13,88,125,96,21,104,107,110,18,115,196,117,150,118,229,117,23,116, +126,113,107,110,7,107,58,103,238,98,80,94,170,89,3,85,34,80,227,74,86,69,137,63,80,57,100,50,154,42,17,34, +43,25,98,16,19,8,111,0,145,249,122,243,233,237,89,232,77,226,160,219,151,212,165,205,60,199,195,193,154,189,5,187, +12,186,119,186,234,187,2,190,99,192,174,194,148,196,2,198,51,199,124,200,19,202,241,203,227,205,154,207,198,208,62,209, +19,209,131,208,206,207,36,207,153,206,45,206,198,205,61,205,104,204,49,203,171,201,253,199,53,198,75,196,86,194,185,192, +6,192,166,192,166,194,191,197,154,201,2,206,1,211,202,216,145,223,95,231,4,240,53,249,188,2,140,12,156,22,194,32, +200,42,149,52,26,62,59,71,215,79,245,87,156,95,143,102,72,108,72,112,73,114,63,114,93,112,21,109,254,104,177,100, +200,96,182,93,127,91,176,89,211,87,174,85,14,83,149,79,1,75,101,69,250,62,228,55,86,48,158,40,245,32,101,25, +7,18,19,11,171,4,210,254,137,249,194,244,23,240,244,234,2,229,73,222,251,214,107,207,37,200,186,193,119,188,107,184, +158,181,27,180,203,179,143,180,95,182,23,185,75,188,121,191,94,194,5,197,134,199,225,201,11,204,15,206,17,208,57,210, +159,212,57,215,210,217,19,220,152,221,13,222,72,221,101,219,193,216,210,213,231,210,23,208,110,205,6,203,0,201,126,199, +189,198,19,199,176,200,123,203,52,207,161,211,172,216,107,222,17,229,183,236,33,245,226,253,179,6,149,15,169,24,37,34, +68,44,255,54,224,65,67,76,189,85,30,94,50,101,195,106,178,110,230,112,61,113,215,111,50,109,228,105,87,102,230,98, +233,95,107,93,21,91,144,88,192,85,133,82,148,78,199,73,58,68,5,62,34,55,176,47,238,39,239,31,164,23,76,15, +129,7,190,0,38,251,187,246,96,243,151,240,154,237,197,233,204,228,154,222,106,215,230,207,227,200,228,194,25,190,182,186, +250,184,221,184,8,186,10,188,103,190,156,192,77,194,119,195,100,196,110,197,221,198,187,200,193,202,133,204,222,205,245,206, +10,208,37,209,9,210,68,210,119,209,157,207,32,205,137,202,55,200,91,198,21,197,113,196,92,196,190,196,159,197,23,199, +71,201,74,204,41,208,182,212,168,217,224,222,108,228,78,234,114,240,236,246,234,253,103,5,36,13,245,20,221,28,249,36, +114,45,104,54,181,63,231,72,163,81,210,89,74,97,127,103,213,107,11,110,65,110,209,108,65,106,63,103,132,100,180,98, +30,98,107,98,184,98,43,98,95,96,51,93,121,88,26,82,93,74,219,65,23,57,78,48,149,39,23,31,8,23,114,15, +39,8,247,0,233,249,34,243,169,236,77,230,213,223,72,217,222,210,198,204,31,199,55,194,137,190,93,188,138,187,178,187, +149,188,8,190,204,191,130,193,219,194,226,195,246,196,107,198,34,200,180,201,228,202,185,203,61,204,110,204,96,204,64,204, +52,204,76,204,131,204,192,204,225,204,203,204,92,204,112,203,18,202,136,200,30,199,248,197,54,197,30,197,10,198,61,200, +201,203,150,208,119,214,46,221,99,228,158,235,116,242,195,248,181,254,162,4,226,10,178,17,43,25,70,33,243,41,27,51, +163,60,103,70,43,80,122,89,179,97,77,104,14,109,10,112,106,113,63,113,152,111,197,108,99,105,22,102,65,99,234,96, +211,94,149,92,222,89,143,86,158,82,242,77,125,72,91,66,182,59,149,52,246,44,248,36,212,28,177,20,160,12,201,4, +126,253,11,247,116,241,107,236,143,231,151,226,74,221,119,215,25,209,128,202,92,196,110,191,34,188,93,186,202,185,50,186, +103,187,7,189,151,190,209,191,169,192,40,193,125,193,8,194,37,195,234,196,47,199,179,201,56,204,145,206,163,208,91,210, +154,211,61,212,72,212,229,211,51,211,38,210,182,208,45,207,16,206,164,205,187,205,15,206,141,206,56,207,17,208,78,209, +62,211,232,213,0,217,99,220,68,224,217,228,25,234,227,239,30,246,163,252,70,3,6,10,6,17,76,24,190,31,103,39, +162,47,182,56,129,66,141,76,98,86,119,95,22,103,149,108,190,111,195,112,2,112,227,109,207,106,27,103,37,99,122,95, +123,92,237,89,71,87,57,84,145,80,213,75,150,69,247,61,158,53,47,45,41,37,237,29,141,23,202,17,93,12,47,7, +58,2,106,253,147,248,119,243,218,237,199,231,166,225,233,219,192,214,54,210,102,206,124,203,123,201,54,200,137,199,111,199, +223,199,146,200,37,201,74,201,242,200,73,200,173,199,107,199,152,199,42,200,41,201,130,202,213,203,207,204,129,205,48,206, +230,206,124,207,216,207,230,207,130,207,164,206,127,205,65,204,221,202,45,201,51,199,46,197,153,195,27,195,53,196,249,198, +19,203,41,208,17,214,181,220,228,227,76,235,171,242,240,249,25,1,16,8,177,14,15,21,156,27,229,34,20,43,218,51, +237,60,75,70,232,79,74,89,188,97,200,104,59,110,240,113,216,115,54,116,140,115,85,114,207,112,243,110,147,108,134,105, +206,101,122,97,136,92,236,86,193,80,59,74,109,67,66,60,171,52,190,44,155,36,76,28,228,19,171,11,15,4,65,253, +0,247,220,240,181,234,204,228,72,223,214,217,243,211,138,205,27,199,84,193,162,188,55,185,70,183,15,183,150,184,98,187, +159,190,168,193,73,196,139,198,83,200,115,201,233,201,240,201,209,201,190,201,203,201,250,201,91,202,3,203,233,203,219,204, +170,205,76,206,184,206,220,206,194,206,155,206,133,206,110,206,53,206,208,205,81,205,238,204,252,204,196,205,113,207,21,210, +167,213,243,217,172,222,176,227,22,233,250,238,76,245,217,251,132,2,107,9,206,16,217,24,139,33,191,42,61,52,169,61, +156,70,212,78,47,86,138,92,194,97,206,101,165,104,22,106,248,105,145,104,134,102,111,100,142,98,246,96,157,95,85,94, +211,92,198,90,185,87,18,83,117,76,33,68,192,58,214,48,182,38,221,28,0,20,171,12,241,6,116,2,147,254,172,250, +93,246,141,241,58,236,115,230,125,224,195,218,121,213,122,208,168,203,52,199,129,195,221,192,99,191,233,190,17,191,140,191, +81,192,93,193,130,194,159,195,248,196,238,198,127,201,74,204,9,207,181,209,68,212,142,214,109,216,201,217,145,218,200,218, +141,218,249,217,27,217,9,216,210,214,91,213,121,211,46,209,167,206,25,204,216,201,118,200,141,200,82,202,107,205,70,209, +143,213,78,218,165,223,138,229,196,235,5,242,5,248,157,253,223,2,21,8,170,13,20,20,176,27,130,36,72,46,208,56, +3,68,137,79,141,90,11,100,68,107,232,111,3,114,204,113,149,111,239,107,186,103,188,99,48,96,223,92,153,89,80,86, +244,82,124,79,241,75,68,72,71,68,226,63,25,59,213,53,243,47,135,41,209,34,250,27,34,21,139,14,121,8,234,2, +174,253,168,248,221,243,54,239,94,234,225,228,126,222,106,215,70,208,212,201,184,196,87,193,203,191,200,191,179,192,221,193, +230,194,204,195,157,196,60,197,166,197,34,198,246,198,11,200,31,201,8,202,179,202,24,203,101,203,222,203,129,204,15,205, +136,205,42,206,4,207,216,207,98,208,125,208,252,207,189,206,234,204,247,202,97,201,118,200,100,200,77,201,65,203,50,206, +227,209,5,214,106,218,32,223,87,228,45,234,135,240,56,247,75,254,251,5,104,14,100,23,143,32,136,41,13,50,11,58, +139,65,173,72,179,79,246,86,140,94,238,101,51,108,175,112,52,115,224,115,226,114,99,112,161,108,28,104,148,99,134,95, +175,91,90,87,28,82,1,76,9,69,236,60,137,51,86,41,52,31,229,21,193,13,190,6,150,0,236,250,103,245,239,239, +179,234,252,229,247,225,150,222,156,219,202,216,2,214,67,211,137,208,221,205,121,203,162,201,96,200,152,199,79,199,174,199, +165,200,206,201,194,202,111,203,12,204,185,204,78,205,179,205,53,206,71,207,253,208,1,211,253,212,224,214,199,216,212,218, +246,220,218,222,44,224,222,224,29,225,5,225,173,224,49,224,154,223,232,222,81,222,32,222,72,222,98,222,32,222,120,221, +146,220,209,219,186,219,141,220,45,222,163,224,84,228,163,233,179,240,116,249,144,3,89,14,65,25,58,36,74,47,8,58, +240,67,234,76,2,85,218,91,229,96,27,100,250,101,228,102,238,102,77,102,117,101,177,100,234,99,246,98,182,97,217,95, +241,92,198,88,71,83,74,76,206,67,110,58,6,49,253,39,91,31,67,23,246,15,120,9,148,3,34,254,6,249,47,244, +181,239,218,235,194,232,91,230,99,228,109,226,3,224,4,221,199,217,190,214,24,212,201,209,204,207,75,206,105,205,6,205, +183,204,34,204,63,203,69,202,113,201,236,200,213,200,71,201,94,202,27,204,49,206,23,208,98,209,235,209,174,209,189,208, +77,207,174,205,28,204,191,202,169,201,197,200,11,200,189,199,54,200,124,201,81,203,149,205,56,208,248,210,159,213,61,216, +212,218,28,221,19,223,90,225,154,228,232,232,34,238,120,244,31,252,210,4,27,14,189,23,124,33,229,42,185,51,61,60, +192,68,38,77,11,85,14,92,195,97,203,101,39,104,42,105,20,105,14,104,106,102,122,100,76,98,214,95,54,93,115,90, +69,87,105,83,230,78,178,73,142,67,127,60,0,53,126,45,15,38,192,30,161,23,126,16,0,9,66,1,209,249,15,243, +232,236,36,231,180,225,152,220,212,215,136,211,228,207,245,204,154,202,189,200,108,199,190,198,175,198,15,199,130,199,165,199, +119,199,97,199,195,199,152,200,178,201,29,203,12,205,144,207,135,210,174,213,168,216,33,219,1,221,101,222,64,223,65,223, +39,222,10,220,48,217,206,213,26,210,102,206,242,202,233,199,155,197,122,196,168,196,191,197,66,199,37,201,158,203,187,206, +128,210,66,215,93,221,184,228,217,236,109,245,117,254,11,8,57,18,219,28,148,39,43,50,205,60,150,71,10,82,92,91, +26,99,50,105,115,109,130,111,79,111,66,109,28,106,199,102,252,99,231,97,84,96,39,95,66,94,4,93,134,90,142,86, +189,81,177,76,104,71,166,65,133,59,82,53,23,47,141,40,128,33,37,26,250,18,93,12,76,6,129,0,203,250,51,245, +185,239,255,233,124,227,22,220,63,212,128,204,54,197,203,190,214,185,195,182,124,181,128,181,56,182,53,183,58,184,49,185, +11,186,201,186,151,187,194,188,128,190,211,192,178,195,28,199,228,202,175,206,79,210,231,213,144,217,11,221,223,223,181,225, +144,226,185,226,122,226,233,225,19,225,66,224,216,223,3,224,197,224,24,226,227,227,217,229,173,231,90,233,255,234,143,236, +235,237,54,239,185,240,136,242,138,244,200,246,70,249,199,251,22,254,117,0,86,3,233,6,78,11,230,16,236,23,255,31, +147,40,145,49,241,58,243,67,135,75,96,81,244,85,139,89,238,91,249,92,207,92,156,91,135,89,181,86,48,83,247,78, +59,74,61,69,233,63,8,58,195,51,141,45,146,39,154,33,142,27,186,21,117,16,202,11,123,7,36,3,119,254,135,249, +185,244,77,240,58,236,154,232,197,229,215,227,128,226,119,225,202,224,135,224,108,224,49,224,227,223,198,223,215,223,221,223, +219,223,19,224,148,224,13,225,24,225,126,224,79,223,240,221,211,220,244,219,240,218,146,217,10,216,132,214,5,213,190,211, +15,211,25,211,154,211,71,212,25,213,21,214,11,215,161,215,131,215,148,214,37,213,227,211,76,211,83,211,169,211,64,212, +84,213,19,215,112,217,66,220,132,223,85,227,179,231,115,236,141,241,40,247,62,253,123,3,163,9,193,15,238,21,47,28, +154,34,109,41,204,48,156,56,190,64,39,73,125,81,248,88,0,95,174,99,67,103,119,105,193,105,24,104,10,101,47,97, +208,92,8,88,16,83,77,78,3,74,7,70,222,65,39,61,199,55,181,49,216,42,67,35,99,27,185,19,137,12,232,5, +240,255,177,250,36,246,71,242,1,239,246,235,184,232,31,229,73,225,112,221,222,217,218,214,118,212,138,210,246,208,201,207, +32,207,233,206,229,206,5,207,135,207,137,208,171,209,110,210,199,210,19,211,143,211,250,211,233,211,66,211,74,210,52,209, +16,208,36,207,212,206,13,207,47,207,193,206,212,205,168,204,78,203,197,201,50,200,204,198,186,197,34,197,55,197,24,198, +176,199,200,201,40,204,200,206,229,209,200,213,102,218,118,223,233,228,7,235,36,242,120,250,11,4,173,14,25,26,25,38, +69,50,227,61,83,72,123,81,142,89,166,96,167,102,78,107,82,110,149,111,51,111,110,109,165,106,68,103,145,99,176,95, +213,91,53,88,211,84,119,81,210,77,137,73,65,68,224,61,170,54,15,47,112,39,48,32,184,25,17,20,183,14,9,9, +173,2,129,251,168,243,196,235,167,228,175,222,185,217,167,213,109,210,201,207,86,205,235,202,178,200,228,198,167,197,42,197, +176,197,69,199,151,201,59,204,218,206,4,209,97,210,49,211,33,212,127,213,32,215,240,216,1,219,42,221,16,223,113,224, +37,225,19,225,87,224,35,223,140,221,158,219,175,217,61,216,116,215,32,215,2,215,254,214,247,214,211,214,145,214,62,214, +234,213,195,213,254,213,171,214,218,215,215,217,249,220,86,225,202,230,25,237,5,244,102,251,43,3,40,11,44,19,99,27, +63,36,246,45,101,56,91,67,159,78,166,89,126,99,32,107,224,111,137,113,51,112,68,108,136,102,241,95,49,89,197,82, +29,77,119,72,185,68,170,65,14,63,147,60,252,57,66,55,76,52,171,48,0,44,103,38,53,32,109,25,239,17,3,10, +85,2,120,251,193,245,87,241,25,238,156,235,127,233,93,231,142,228,126,224,80,219,168,213,11,208,226,202,197,198,37,196, +238,194,198,194,128,195,16,197,59,199,160,201,10,204,131,206,19,209,166,211,65,214,249,216,186,219,107,222,26,225,177,227, +212,229,92,231,163,232,241,233,3,235,107,235,6,235,224,233,12,232,182,229,41,227,154,224,55,222,118,220,244,219,211,220, +162,222,20,225,102,228,176,232,97,237,182,241,100,245,116,248,219,250,154,252,241,253,57,255,158,0,70,2,138,4,146,7, +252,10,105,14,6,18,28,22,128,26,253,30,191,35,213,40,220,45,119,50,148,54,17,58,182,60,120,62,104,63,115,63, +144,62,252,60,16,59,227,56,56,54,203,50,145,46,164,41,30,36,20,30,181,23,88,17,124,11,158,6,218,2,223,255, +97,253,68,251,82,249,34,247,150,244,21,242,9,240,82,238,155,236,2,235,243,233,128,233,114,233,244,233,133,235,50,238, +118,241,181,244,147,247,239,249,222,251,126,253,208,254,214,255,172,0,113,1,23,2,109,2,68,2,157,1,132,0,209,254, +84,252,93,249,151,246,83,244,104,242,185,240,69,239,196,237,197,235,37,233,24,230,217,226,144,223,126,220,216,217,159,215, +201,213,124,212,197,211,84,211,232,210,194,210,45,211,8,212,22,213,105,214,42,216,119,218,130,221,117,225,31,230,49,235, +153,240,108,246,152,252,232,2,60,9,116,15,58,21,32,26,252,29,229,32,10,35,184,36,125,38,211,40,214,43,92,47, +8,51,78,54,222,56,252,58,229,60,73,62,220,62,7,63,80,63,126,63,236,62,138,61,242,59,109,58,94,56,228,52, +230,47,12,42,241,35,185,29,99,23,55,17,208,11,195,7,33,5,88,3,192,1,28,0,154,254,97,253,75,252,9,251, +125,249,203,247,64,246,36,245,140,244,47,244,168,243,223,242,251,241,251,240,169,239,234,237,237,235,27,234,199,232,219,231, +237,230,182,229,56,228,134,226,156,224,114,222,249,219,52,217,70,214,34,211,96,207,199,202,202,197,45,193,79,189,23,186, +111,183,149,181,230,180,95,181,140,182,247,183,141,185,129,187,236,189,137,192,251,194,79,197,33,200,1,204,227,208,93,214, +56,220,159,226,165,233,8,241,170,248,15,1,202,10,145,21,118,32,234,42,10,53,18,63,0,73,119,82,189,90,32,97, +109,101,163,103,104,103,68,100,94,94,151,86,242,77,30,69,170,60,73,53,167,47,25,44,136,42,127,42,52,43,214,43, +240,43,95,43,15,42,2,40,120,37,189,34,238,31,243,28,155,25,206,21,193,17,203,13,25,10,204,6,42,4,114,2, +136,1,233,0,229,255,223,253,145,250,65,246,151,241,27,237,223,232,204,228,50,225,150,222,252,220,225,219,243,218,108,218, +154,218,116,219,189,220,91,222,96,224,216,226,152,229,76,232,141,234,2,236,138,236,61,236,27,235,249,232,230,229,67,226, +88,222,49,218,243,213,239,209,96,206,102,203,50,201,212,199,22,199,184,198,201,198,141,199,29,201,74,203,232,205,1,209, +175,212,235,216,160,221,156,226,134,231,70,236,80,241,55,247,24,254,187,5,28,14,120,23,211,33,197,44,190,55,93,66, +71,76,236,84,168,91,20,96,21,98,208,97,181,95,56,92,131,87,165,81,255,74,68,68,31,62,225,56,114,52,124,48, +189,44,26,41,109,37,137,33,93,29,244,24,106,20,19,16,92,12,114,9,20,7,245,4,28,3,175,1,101,0,150,254, +244,251,221,248,208,245,240,242,38,240,107,237,222,234,192,232,68,231,64,230,87,229,74,228,13,227,163,225,41,224,211,222, +197,221,1,221,106,220,205,219,20,219,93,218,197,217,41,217,78,216,48,215,18,214,62,213,215,212,200,212,209,212,140,212, +169,211,31,210,22,208,148,205,136,202,19,199,111,195,179,191,2,188,207,184,159,182,195,181,90,182,79,184,98,187,88,191, +34,196,168,201,140,207,106,213,56,219,95,225,94,232,126,240,243,249,248,4,118,17,238,30,222,44,240,58,151,72,30,85, +6,96,246,104,84,111,135,114,160,114,106,112,222,108,188,104,147,100,218,96,203,93,73,91,33,89,43,87,43,85,206,82, +203,79,213,75,141,70,231,63,81,56,70,48,228,39,70,31,232,22,113,15,49,9,21,4,20,0,110,253,69,252,39,252, +76,252,44,252,165,251,183,250,60,249,10,247,79,244,182,241,207,239,131,238,131,237,249,236,60,237,14,238,187,238,199,238, +20,238,158,236,92,234,93,231,216,227,31,224,154,220,174,217,132,215,20,214,113,213,183,213,82,214,12,214,64,212,127,209, +132,206,75,203,159,199,241,195,254,192,31,191,80,190,142,190,204,191,226,193,159,196,185,199,139,202,115,204,163,205,232,206, +144,208,77,210,47,212,207,214,85,218,71,222,121,226,84,231,35,237,198,243,26,251,49,3,12,12,119,21,61,31,61,41, +43,51,127,60,207,68,252,75,249,81,188,86,119,90,107,93,94,95,191,95,92,94,144,91,201,87,66,83,71,78,86,73, +219,68,220,64,246,60,159,56,113,51,78,45,103,38,23,31,172,23,114,16,228,9,143,4,149,0,152,253,32,251,224,248, +132,246,153,243,249,239,64,236,122,233,49,232,23,232,166,232,178,233,54,235,216,236,219,237,175,237,112,236,196,234,27,233, +114,231,220,229,176,228,230,227,230,226,50,225,225,222,87,220,221,217,120,215,255,212,108,210,236,207,135,205,253,202,36,200, +95,197,73,195,253,193,234,192,143,191,253,189,117,188,241,186,85,185,214,183,225,182,196,182,170,183,180,185,249,188,98,193, +181,198,169,204,224,210,3,217,17,223,126,229,211,236,73,245,225,254,159,9,93,21,194,33,116,46,61,59,214,71,222,83, +242,94,146,104,18,112,229,116,239,118,118,118,10,116,112,112,128,108,243,104,14,102,142,99,255,96,73,94,139,91,138,88, +196,84,25,80,244,74,176,69,64,64,144,58,222,52,98,47,220,41,205,35,2,29,182,21,98,14,151,7,195,1,241,252, +2,249,8,246,22,244,169,242,205,240,244,237,81,234,79,230,27,226,222,221,253,217,219,214,152,212,31,211,61,210,136,209, +146,208,69,207,185,205,232,203,225,201,14,200,227,198,142,198,65,199,105,201,42,205,229,209,125,214,20,218,118,220,222,221, +117,222,53,222,63,221,235,219,131,218,34,217,231,215,249,214,87,214,193,213,8,213,76,212,230,211,34,212,41,213,25,215, +2,218,200,221,35,226,188,230,52,235,40,239,137,242,192,245,61,249,234,252,133,0,73,4,158,8,114,13,120,18,212,23, +197,29,241,35,168,41,151,46,188,50,12,54,146,56,146,58,54,60,123,61,107,62,12,63,11,63,230,61,115,59,253,55, +232,51,113,47,220,42,135,38,174,34,50,31,210,27,123,24,59,21,253,17,133,14,186,10,228,6,138,3,251,0,7,255, +45,253,45,251,83,249,250,247,246,246,200,245,107,244,112,243,77,243,245,243,16,245,77,246,118,247,80,248,158,248,111,248, +93,248,29,249,194,250,204,252,205,254,169,0,56,2,18,3,215,2,84,1,135,254,188,250,116,246,243,241,52,237,97,232, +252,227,120,224,212,221,191,219,21,218,232,216,21,216,27,215,175,213,232,211,202,209,53,207,92,204,184,201,168,199,113,198, +61,198,219,198,236,199,132,201,32,204,226,207,55,212,175,216,154,221,101,227,180,233,217,239,177,245,129,251,73,1,222,6, +81,12,222,17,145,23,47,29,110,34,57,39,183,43,15,48,73,52,81,56,13,60,142,63,4,67,94,70,25,73,169,74, +233,74,17,74,118,72,154,70,45,69,178,68,46,69,43,70,234,70,185,70,49,69,10,66,242,60,16,54,100,46,17,39, +167,32,109,27,158,23,3,21,232,18,189,16,86,14,139,11,69,8,219,4,206,1,68,255,254,252,186,250,93,248,208,245, +242,242,186,239,77,236,225,232,151,229,123,226,151,223,18,221,47,219,24,218,171,217,138,217,91,217,224,216,245,215,131,214, +142,212,86,210,43,208,18,206,242,203,8,202,184,200,215,199,197,198,58,197,124,195,209,193,17,192,233,189,120,187,110,185, +81,184,254,183,16,184,95,184,1,185,52,186,75,188,107,191,96,195,212,199,165,204,222,209,113,215,40,221,19,227,168,233, +52,241,137,249,119,2,50,12,243,22,144,34,128,46,56,58,92,69,174,79,231,88,195,96,22,103,184,107,117,110,12,111, +64,109,255,104,140,98,84,90,203,80,146,70,170,60,30,52,139,45,18,41,164,38,2,38,146,38,102,39,147,39,129,38, +72,36,131,33,149,30,128,27,105,24,143,21,212,18,248,15,8,13,30,10,50,7,119,4,72,2,171,0,60,255,123,253, +250,250,106,247,173,242,242,236,179,230,100,224,78,218,213,212,132,208,149,205,228,203,75,203,160,203,103,204,44,205,238,205, +234,206,48,208,176,209,121,211,172,213,57,216,207,218,46,221,105,223,159,225,144,227,220,228,127,229,175,229,133,229,9,229, +91,228,165,227,44,227,30,227,62,227,25,227,189,226,178,226,73,227,109,228,223,229,122,231,76,233,122,235,0,238,183,240, +142,243,143,246,200,249,65,253,226,0,137,4,102,8,221,12,24,18,246,23,109,30,136,37,44,45,9,53,163,60,121,67, +38,73,106,77,7,80,217,80,14,80,21,78,89,75,28,72,126,68,139,64,65,60,136,55,70,50,146,44,195,38,29,33, +139,27,242,21,120,16,94,11,179,6,73,2,237,253,195,249,66,246,202,243,125,242,99,242,108,243,91,245,232,247,180,250, +51,253,3,255,37,0,199,0,251,0,206,0,95,0,225,255,126,255,52,255,216,254,80,254,152,253,131,252,175,250,221,247, +44,244,11,240,221,235,180,231,121,227,60,223,51,219,104,215,207,211,162,208,74,206,249,204,113,204,72,204,55,204,51,204, +49,204,251,203,116,203,235,202,198,202,17,203,141,203,246,203,78,204,225,204,220,205,238,206,186,207,96,208,66,209,156,210, +137,212,26,215,62,218,195,221,122,225,126,229,60,234,236,239,69,246,237,252,224,3,40,11,146,18,213,25,214,32,216,39, +76,47,75,55,74,63,125,70,90,76,188,80,169,83,252,84,123,84,85,82,61,79,230,75,142,72,37,69,171,65,29,62, +60,58,204,53,241,48,19,44,137,39,161,35,144,32,56,30,58,28,94,26,146,24,175,22,146,20,104,18,159,16,129,15, +9,15,65,15,90,16,3,18,76,19,125,19,138,18,160,16,214,13,98,10,155,6,195,2,226,254,191,250,7,246,162,240, +226,234,105,229,176,224,187,220,103,217,227,214,84,213,69,212,1,211,75,209,82,207,44,205,205,202,86,200,67,198,30,197, +245,196,63,197,110,197,103,197,75,197,25,197,174,196,23,196,176,195,220,195,174,196,252,197,161,199,142,201,167,203,202,205, +235,207,21,210,100,212,251,214,211,217,200,220,242,223,211,227,242,232,90,239,170,246,181,254,178,7,158,17,221,27,228,37, +208,47,236,57,10,68,174,77,102,86,173,93,211,98,91,101,32,101,25,98,65,92,248,83,46,74,251,63,70,54,231,45, +156,39,160,35,135,33,154,32,89,32,140,32,1,33,101,33,112,33,13,33,75,32,66,31,207,29,117,27,222,23,89,19, +147,14,18,10,91,6,235,3,194,2,116,2,149,2,194,2,104,2,241,0,31,254,43,250,119,245,81,240,24,235,75,230, +45,226,162,222,145,219,255,216,214,214,238,212,60,211,228,209,42,209,81,209,87,210,241,211,204,213,169,215,66,217,72,218, +142,218,39,218,42,217,129,215,11,213,244,209,158,206,110,203,189,200,234,198,71,198,227,198,116,200,183,202,169,205,60,209, +54,213,151,217,144,222,5,228,172,233,121,239,117,245,117,251,72,1,235,6,118,12,238,17,77,23,176,28,106,34,159,40, +252,46,40,53,30,59,210,64,250,69,102,74,35,78,31,81,16,83,197,83,57,83,111,81,126,78,173,74,85,70,180,65, +245,60,69,56,222,51,247,47,155,44,167,41,236,38,67,36,144,33,209,30,2,28,240,24,83,21,3,17,240,11,36,6, +230,255,179,249,16,244,90,239,158,235,195,232,204,230,170,229,231,228,248,227,178,226,59,225,193,223,106,222,64,221,54,220, +84,219,183,218,69,218,194,217,57,217,18,217,145,217,149,218,203,219,2,221,49,222,88,223,90,224,0,225,59,225,68,225, +117,225,243,225,137,226,209,226,133,226,161,225,68,224,155,222,241,220,153,219,197,218,141,218,17,219,81,220,24,222,24,224, +11,226,203,227,111,229,50,231,66,233,163,235,72,238,80,241,253,244,105,249,103,254,192,3,96,9,79,15,146,21,13,28, +120,34,131,40,5,46,5,51,141,55,108,59,69,62,228,63,83,64,127,63,23,61,6,57,197,51,1,46,63,40,222,34, +51,30,115,26,162,23,149,21,235,19,39,18,255,15,141,13,17,11,153,8,0,6,51,3,93,0,172,253,10,251,78,248, +154,245,73,243,158,241,178,240,120,240,217,240,215,241,99,243,31,245,160,246,195,247,178,248,180,249,234,250,27,252,3,253, +190,253,128,254,9,255,234,254,254,253,120,252,193,250,64,249,62,248,230,247,52,248,203,248,62,249,123,249,185,249,45,250, +232,250,196,251,130,252,22,253,169,253,55,254,129,254,106,254,253,253,55,253,255,251,123,250,28,249,71,248,24,248,110,248, +12,249,178,249,59,250,151,250,196,250,225,250,3,251,30,251,51,251,83,251,101,251,95,251,132,251,10,252,200,252,144,253, +97,254,25,255,134,255,160,255,127,255,61,255,18,255,64,255,205,255,111,0,202,0,189,0,92,0,184,255,233,254,39,254, +142,253,253,252,101,252,241,251,159,251,56,251,173,250,67,250,61,250,170,250,131,251,215,252,189,254,31,1,191,3,99,6, +201,8,168,10,245,11,7,13,31,14,21,15,180,15,22,16,122,16,8,17,208,17,188,18,133,19,237,19,224,19,79,19, +25,18,32,16,104,13,27,10,118,6,187,2,54,255,72,252,93,250,168,249,242,249,190,250,140,251,3,252,10,252,205,251, +83,251,66,250,90,248,239,245,141,243,123,241,191,239,78,238,51,237,187,236,77,237,236,238,41,241,121,243,131,245,32,247, +70,248,236,248,40,249,79,249,198,249,164,250,187,251,239,252,81,254,228,255,116,1,231,2,89,4,206,5,40,7,117,8, +211,9,69,11,243,12,6,15,53,17,3,19,78,20,31,21,71,21,159,20,128,19,124,18,176,17,192,16,129,15,68,14, +75,13,105,12,82,11,246,9,124,8,5,7,164,5,125,4,188,3,88,3,7,3,148,2,1,2,129,1,114,1,30,2, +80,3,122,4,77,5,193,5,208,5,140,5,38,5,178,4,33,4,98,3,85,2,172,0,31,254,182,250,210,246,205,242, +168,238,79,234,246,229,13,226,229,222,128,220,179,218,72,217,5,216,187,214,126,213,149,212,34,212,29,212,156,212,176,213, +40,215,190,216,122,218,129,220,192,222,22,225,163,227,169,230,106,234,56,239,40,245,210,251,166,2,94,9,231,15,58,22, +73,28,191,33,16,38,25,41,35,43,24,44,82,43,96,40,128,35,76,29,73,22,219,14,141,7,46,1,127,252,170,249, +53,248,128,247,83,247,247,247,152,249,196,251,173,253,216,254,101,255,179,255,200,255,63,255,201,253,154,251,80,249,148,247, +184,246,196,246,193,247,175,249,47,252,155,254,100,0,29,1,144,0,247,254,228,252,204,250,223,248,56,247,225,245,203,244, +227,243,42,243,136,242,200,241,3,241,190,240,118,241,62,243,5,246,219,249,176,254,42,4,2,10,48,16,133,22,145,28, +244,33,121,38,237,41,36,44,7,45,145,44,239,42,134,40,183,37,204,34,59,32,157,30,30,30,85,30,204,30,127,31, +173,32,109,34,144,36,221,38,24,41,213,42,158,43,86,43,45,42,102,40,95,38,120,36,201,34,34,33,108,31,227,29, +207,28,46,28,202,27,110,27,197,26,76,25,146,22,100,18,211,12,85,6,116,255,82,248,219,240,90,233,84,226,5,220, +72,214,243,208,20,204,223,199,73,196,236,192,110,189,200,185,29,182,187,178,29,176,180,174,199,174,122,176,172,179,7,184, +45,189,136,194,74,199,47,203,177,206,68,210,13,214,104,218,252,223,37,231,136,239,134,248,186,1,236,10,193,19,183,27, +68,34,242,38,171,41,210,42,207,42,145,41,202,38,164,34,233,29,86,25,244,20,119,16,233,11,214,7,239,4,143,3, +109,3,237,3,176,4,167,5,177,6,123,7,175,7,66,7,144,6,13,6,208,5,184,5,223,5,126,6,118,7,126,8, +112,9,50,10,156,10,180,10,183,10,199,10,148,10,150,9,167,7,2,5,219,1,118,254,91,251,1,249,80,247,193,245, +207,243,54,241,16,238,215,234,37,232,63,230,26,229,200,228,115,229,30,231,168,233,224,236,102,240,167,243,49,246,241,247, +5,249,120,249,53,249,43,248,93,246,30,244,230,241,216,239,214,237,25,236,54,235,141,235,19,237,122,239,82,242,32,245, +134,247,113,249,41,251,5,253,25,255,63,1,85,3,41,5,142,6,181,7,70,9,190,11,14,15,196,18,83,22,69,25, +78,27,75,28,42,28,237,26,178,24,225,21,24,19,164,16,115,14,129,12,216,10,81,9,206,7,112,6,104,5,222,4, +223,4,51,5,86,5,196,4,113,3,7,2,136,1,165,2,110,5,126,9,70,14,68,19,1,24,17,28,67,31,170,33, +160,35,135,37,89,39,178,40,124,41,22,42,188,42,57,43,109,43,128,43,145,43,125,43,17,43,39,42,188,40,224,38, +139,36,157,33,15,30,222,25,16,21,232,15,198,10,213,5,47,1,14,253,167,249,242,246,169,244,102,242,203,239,139,236, +130,232,204,227,167,222,95,217,71,212,157,207,133,203,85,200,126,198,51,198,75,199,120,201,79,204,68,207,163,209,232,210, +0,211,36,210,157,208,234,206,161,205,255,204,233,204,98,205,144,206,105,208,152,210,194,212,212,214,7,217,110,219,184,221, +186,223,212,225,104,228,112,231,206,234,102,238,243,241,61,245,56,248,221,250,92,253,21,0,46,3,132,6,247,9,134,13, +50,17,227,20,90,24,73,27,176,29,233,31,86,34,254,36,136,39,141,41,225,42,147,43,181,43,82,43,165,42,22,42, +232,41,39,42,208,42,224,43,74,45,229,46,89,48,88,49,202,49,173,49,5,49,20,48,66,47,183,46,34,46,231,44, +148,42,38,39,229,34,38,30,81,25,207,20,229,16,158,13,198,10,253,7,217,4,23,1,155,252,124,247,15,242,201,236, +6,232,228,227,51,224,129,220,101,216,233,211,141,207,239,203,104,201,241,199,118,199,12,200,128,201,47,203,160,204,207,205, +5,207,168,208,225,210,95,213,169,215,169,217,162,219,170,221,120,223,172,224,55,225,93,225,124,225,211,225,119,226,150,227, +137,229,111,232,23,236,110,240,154,245,153,251,17,2,115,8,38,14,182,18,2,22,57,24,151,25,71,26,142,26,215,26, +145,27,3,29,25,31,118,33,203,35,254,37,248,39,140,41,159,42,99,43,18,44,97,44,165,43,139,41,78,38,81,34, +228,29,86,25,253,20,71,17,120,14,126,12,38,11,99,10,43,10,42,10,149,9,166,7,89,4,111,0,204,252,251,249, +19,248,191,246,148,245,115,244,110,243,86,242,234,240,92,239,36,238,88,237,194,236,115,236,170,236,75,237,234,237,87,238, +178,238,6,239,53,239,87,239,142,239,170,239,99,239,199,238,46,238,241,237,37,238,165,238,77,239,27,240,28,241,103,242, +34,244,108,246,79,249,162,252,38,0,194,3,140,7,130,11,122,15,48,19,75,22,152,24,69,26,177,27,247,28,210,29, +11,30,176,29,232,28,223,27,216,26,27,26,217,25,5,26,78,26,90,26,224,25,163,24,174,22,87,20,203,17,254,14, +234,11,154,8,39,5,221,1,11,255,211,252,74,251,139,250,156,250,82,251,108,252,163,253,174,254,43,255,189,254,88,253, +115,251,176,249,87,248,77,247,122,246,233,245,167,245,158,245,133,245,42,245,198,244,172,244,226,244,80,245,232,245,133,246, +228,246,206,246,44,246,41,245,54,244,176,243,129,243,93,243,43,243,236,242,64,242,153,240,242,237,212,234,181,231,190,228, +21,226,250,223,109,222,41,221,40,220,163,219,145,219,211,219,217,220,106,223,211,227,169,233,43,240,169,246,151,252,123,1, +1,5,9,7,183,7,121,7,181,6,133,5,251,3,118,2,116,1,48,1,127,1,10,2,178,2,164,3,2,5,152,6, +254,7,12,9,247,9,225,10,142,11,191,11,149,11,131,11,234,11,223,12,60,14,221,15,195,17,248,19,65,22,29,24, +69,25,211,25,227,25,127,25,219,24,64,24,203,23,79,23,104,22,208,20,170,18,83,16,255,13,133,11,121,8,181,4, +167,0,227,252,136,249,99,246,139,243,115,241,108,240,110,240,72,241,178,242,77,244,189,245,195,246,77,247,126,247,123,247, +67,247,204,246,12,246,239,244,148,243,104,242,220,241,27,242,38,243,249,244,119,247,71,250,22,253,226,255,179,2,79,5, +88,7,130,8,172,8,234,7,121,6,164,4,185,2,13,1,228,255,56,255,200,254,106,254,36,254,20,254,85,254,227,254, +182,255,6,1,251,2,77,5,133,7,98,9,205,10,206,11,152,12,94,13,77,14,143,15,33,17,226,18,169,20,64,22, +129,23,121,24,76,25,10,26,175,26,33,27,72,27,47,27,213,26,252,25,100,24,46,22,186,19,54,17,154,14,254,11, +155,9,141,7,183,5,245,3,80,2,232,0,200,255,242,254,116,254,72,254,91,254,159,254,232,254,207,254,251,253,106,252, +125,250,148,248,193,246,9,245,149,243,108,242,86,241,21,240,134,238,187,236,253,234,127,233,39,232,172,230,232,228,251,226, +20,225,47,223,63,221,107,219,252,217,15,217,127,216,29,216,248,215,69,216,20,217,49,218,94,219,142,220,255,221,245,223, +106,226,25,229,212,231,183,234,229,237,53,241,68,244,177,246,72,248,19,249,76,249,22,249,123,248,159,247,197,246,40,246, +234,245,23,246,200,246,65,248,178,250,11,254,6,2,85,6,210,10,95,15,190,19,180,23,75,27,172,30,219,33,175,36, +10,39,20,41,11,43,226,44,76,46,248,46,216,46,46,46,73,45,57,44,236,42,72,41,40,39,126,36,86,33,180,29, +190,25,232,21,118,18,44,15,179,11,25,8,158,4,70,1,10,254,26,251,150,248,79,246,1,244,159,241,80,239,68,237, +181,235,214,234,172,234,236,234,83,235,250,235,45,237,5,239,72,241,164,243,230,245,245,247,207,249,141,251,37,253,79,254, +236,254,33,255,14,255,214,254,187,254,231,254,87,255,246,255,173,0,129,1,127,2,117,3,2,4,236,3,65,3,66,2, +66,1,119,0,228,255,118,255,32,255,238,254,240,254,51,255,228,255,62,1,73,3,184,5,42,8,124,10,208,12,51,15, +97,17,0,19,255,19,147,20,206,20,118,20,106,19,230,17,58,16,92,14,9,12,42,9,42,6,165,3,220,1,144,0, +81,255,244,253,210,252,77,252,59,252,37,252,249,251,251,251,61,252,119,252,78,252,177,251,206,250,205,249,198,248,181,247, +83,246,93,244,229,241,44,239,111,236,221,233,156,231,195,229,74,228,249,226,123,225,142,223,5,221,222,217,73,214,148,210, +5,207,204,203,30,201,50,199,70,198,170,198,178,200,101,204,149,209,25,216,195,223,58,232,18,241,238,249,117,2,10,10, +214,15,119,19,73,21,226,21,176,21,243,20,207,19,122,18,82,17,160,16,90,16,84,16,127,16,206,16,26,17,57,17, +49,17,27,17,221,16,42,16,211,14,235,12,174,10,86,8,56,6,224,4,184,4,193,5,207,7,178,10,34,14,226,17, +204,21,183,25,133,29,36,33,119,36,82,39,130,41,215,42,64,43,183,42,53,41,219,38,6,36,251,32,171,29,246,25, +14,22,81,18,8,15,117,12,214,10,52,10,100,10,27,11,12,12,10,13,246,13,149,14,193,14,106,14,121,13,241,11, +246,9,131,7,141,4,91,1,83,254,167,251,95,249,151,247,132,246,66,246,175,246,157,247,227,248,59,250,71,251,193,251, +137,251,137,250,166,248,213,245,103,242,248,238,33,236,52,234,66,233,85,233,145,234,244,236,50,240,246,243,24,248,103,252, +99,0,122,3,127,5,181,6,97,7,147,7,80,7,225,6,183,6,245,6,74,7,93,7,28,7,144,6,219,5,32,5, +82,4,87,3,46,2,208,0,31,255,247,252,49,250,190,246,171,242,24,238,68,233,128,228,234,223,122,219,67,215,139,211, +174,208,231,206,68,206,211,206,181,208,211,211,224,215,180,220,115,226,33,233,105,240,220,247,33,255,233,5,254,11,75,17, +158,21,170,24,84,26,177,26,232,25,31,24,99,21,189,17,87,13,131,8,180,3,115,255,31,252,183,249,227,247,43,246, +53,244,207,241,248,238,8,236,123,233,149,231,117,230,73,230,21,231,173,232,238,234,197,237,7,241,126,244,9,248,152,251, +25,255,116,2,156,5,118,8,195,10,47,12,117,12,150,11,203,9,69,7,71,4,78,1,179,254,104,252,59,250,251,247, +127,245,231,242,178,240,112,239,120,239,213,240,121,243,61,247,168,251,245,255,152,3,124,6,206,8,196,10,130,12,253,13, +255,14,90,15,253,14,239,13,82,12,132,10,228,8,157,7,181,6,42,6,253,5,64,6,238,6,207,7,178,8,112,9, +209,9,183,9,54,9,122,8,174,7,243,6,91,6,1,6,27,6,236,6,174,8,110,11,2,15,41,19,143,23,219,27, +208,31,84,35,68,38,104,40,154,41,229,41,111,41,68,40,89,38,191,35,187,32,162,29,161,26,199,23,48,21,3,19, +64,17,202,15,143,14,109,13,33,12,104,10,37,8,121,5,166,2,236,255,149,253,240,251,44,251,79,251,39,252,81,253, +126,254,141,255,114,0,60,1,26,2,38,3,59,4,23,5,161,5,233,5,230,5,93,5,48,4,133,2,179,0,23,255, +0,254,157,253,228,253,128,254,251,254,16,255,203,254,112,254,50,254,11,254,243,253,8,254,105,254,21,255,226,255,146,0, +254,0,31,1,206,0,220,255,65,254,23,252,126,249,164,246,182,243,238,240,159,238,239,236,192,235,241,234,119,234,66,234, +66,234,111,234,161,234,151,234,85,234,16,234,198,233,64,233,116,232,124,231,95,230,32,229,208,227,158,226,216,225,195,225, +122,226,247,227,1,230,79,232,186,234,29,237,26,239,96,240,234,240,197,240,241,239,126,238,170,236,178,234,200,232,29,231, +206,229,221,228,67,228,232,227,158,227,106,227,122,227,199,227,46,228,154,228,240,228,24,229,33,229,45,229,95,229,212,229, +122,230,25,231,158,231,40,232,208,232,132,233,38,234,166,234,33,235,6,236,212,237,177,240,149,244,129,249,70,255,149,5, +52,12,221,18,23,25,130,30,5,35,170,38,110,41,42,43,177,43,246,42,27,41,93,38,24,35,183,31,175,28,98,26, +253,24,115,24,135,24,243,24,130,25,238,25,225,25,75,25,97,24,68,23,245,21,146,20,54,19,225,17,168,16,194,15, +82,15,101,15,25,16,123,17,73,19,36,21,206,22,8,24,142,24,68,24,45,23,96,21,23,19,135,16,211,13,38,11, +157,8,75,6,99,4,11,3,19,2,55,1,121,0,19,0,37,0,160,0,90,1,30,2,189,2,36,3,103,3,173,3, +31,4,187,4,87,5,230,5,118,6,253,6,101,7,185,7,241,7,242,7,216,7,6,8,196,8,248,9,88,11,163,12, +168,13,74,14,176,14,42,15,254,15,87,17,52,19,74,21,31,23,76,24,153,24,0,24,155,22,196,20,13,19,228,17, +102,17,169,17,198,18,155,20,200,22,240,24,229,26,130,28,158,29,44,30,60,30,187,29,117,28,73,26,86,23,247,19, +147,16,102,13,134,10,242,7,144,5,73,3,13,1,188,254,53,252,106,249,97,246,53,243,26,240,80,237,230,234,166,232, +85,230,249,227,184,225,191,223,63,222,83,221,247,220,41,221,209,221,156,222,43,223,52,223,134,222,25,221,242,218,25,216, +202,212,104,209,28,206,206,202,125,199,76,196,55,193,0,190,126,186,226,182,142,179,203,176,162,174,252,172,233,171,140,171, +2,172,149,173,170,176,118,181,233,187,204,195,206,204,161,214,16,225,223,235,169,246,213,0,172,9,189,16,1,22,147,25, +118,27,193,27,201,26,228,24,61,22,47,19,122,16,191,14,34,14,144,14,234,15,206,17,127,19,74,20,0,20,213,18, +234,16,112,14,239,11,244,9,181,8,83,8,248,8,134,10,187,12,172,15,166,19,140,24,217,29,54,35,117,40,7,45, +17,48,255,48,162,47,249,43,91,38,182,31,57,25,155,19,254,14,93,11,129,8,204,5,181,2,87,255,39,252,130,249, +168,247,233,246,98,247,165,248,253,249,7,251,180,251,254,251,13,252,80,252,41,253,139,254,14,0,94,1,108,2,52,3, +172,3,252,3,118,4,74,5,130,6,16,8,223,9,225,11,11,14,79,16,126,18,66,20,99,21,239,21,22,22,214,21, +227,20,255,18,79,16,49,13,246,9,245,6,174,4,164,3,30,4,247,5,193,8,34,12,247,15,39,20,131,24,201,28, +172,32,250,35,131,38,18,40,151,40,80,40,175,39,22,39,159,38,64,38,15,38,27,38,71,38,95,38,33,38,74,37, +179,35,88,33,62,30,125,26,59,22,152,17,186,12,242,7,202,3,200,0,56,255,11,255,226,255,59,1,196,2,104,4, +24,6,187,7,57,9,110,10,43,11,69,11,157,10,26,9,168,6,84,3,107,255,81,251,101,247,20,244,164,241,234,239, +99,238,126,236,214,233,127,230,228,226,109,223,83,220,161,217,75,215,74,213,162,211,62,210,12,209,33,208,147,207,84,207, +101,207,251,207,89,209,138,211,95,214,116,217,79,220,193,222,228,224,197,226,107,228,2,230,171,231,58,233,81,234,184,234, +131,234,217,233,172,232,208,230,72,228,95,225,123,222,196,219,11,217,51,214,120,211,71,209,255,207,208,207,169,208,61,210, +26,212,229,213,149,215,88,217,91,219,198,221,176,224,10,228,204,231,35,236,68,241,53,247,197,253,188,4,253,11,82,19, +85,26,154,32,190,37,80,41,247,42,146,42,34,40,188,35,202,29,42,23,190,16,11,11,97,6,5,3,248,0,248,255, +175,255,226,255,137,0,191,1,127,3,159,5,219,7,244,9,211,11,123,13,209,14,167,15,236,15,177,15,42,15,175,14, +153,14,24,15,19,16,36,17,205,17,164,17,134,16,154,14,30,12,88,9,160,6,66,4,68,2,103,0,89,254,224,251, +20,249,103,246,108,244,137,243,227,243,133,245,85,248,233,251,179,255,66,3,101,6,38,9,189,11,90,14,251,16,112,19, +124,21,17,23,54,24,236,24,64,25,87,25,71,25,48,25,87,25,229,25,171,26,71,27,115,27,75,27,67,27,200,27, +241,28,132,30,53,32,192,33,185,34,150,34,43,33,209,30,18,28,92,25,253,22,57,21,100,20,181,20,4,22,238,23, +14,26,14,28,156,29,132,30,227,30,30,31,140,31,45,32,163,32,114,32,84,31,50,29,251,25,176,21,148,16,57,11, +102,6,154,2,169,255,27,253,194,250,180,248,253,246,123,245,231,243,21,242,255,239,151,237,202,234,173,231,104,228,35,225, +0,222,26,219,177,216,55,215,12,215,67,216,167,218,208,221,64,225,116,228,246,230,132,232,42,233,51,233,239,232,142,232, +39,232,185,231,38,231,103,230,162,229,247,228,105,228,252,227,198,227,14,228,38,229,15,231,114,233,208,235,143,237,82,238, +48,238,127,237,156,236,245,235,240,235,190,236,89,238,147,240,46,243,230,245,124,248,235,250,110,253,64,0,100,3,179,6, +250,9,248,12,95,15,252,16,242,17,143,18,247,18,23,19,206,18,236,17,72,16,251,13,93,11,206,8,137,6,174,4, +78,3,115,2,60,2,177,2,126,3,64,4,204,4,252,4,177,4,29,4,165,3,160,3,49,4,16,5,186,5,225,5, +132,5,205,4,9,4,114,3,19,3,203,2,88,2,112,1,244,255,249,253,184,251,116,249,87,247,113,245,216,243,171,242, +250,241,168,241,132,241,114,241,121,241,174,241,37,242,6,243,150,244,242,246,213,249,207,252,154,255,30,2,102,4,117,6, +239,7,103,8,235,7,229,6,195,5,223,4,82,4,232,3,128,3,74,3,135,3,64,4,47,5,254,5,127,6,157,6, +87,6,197,5,251,4,244,3,195,2,143,1,85,0,220,254,249,252,207,250,178,248,235,246,169,245,33,245,130,245,219,246, +12,249,246,251,123,255,95,3,100,7,118,11,136,15,110,19,237,22,184,25,129,27,39,28,170,27,20,26,157,23,152,20, +79,17,250,13,155,10,25,7,147,3,82,0,111,253,239,250,227,248,65,247,215,245,121,244,64,243,114,242,18,242,192,241, +48,241,122,240,229,239,169,239,225,239,146,240,161,241,239,242,127,244,89,246,94,248,81,250,241,251,242,252,6,253,247,251, +195,249,169,246,10,243,92,239,6,236,39,233,170,230,130,228,183,226,87,225,138,224,132,224,122,225,161,227,226,230,195,234, +206,238,184,242,64,246,76,249,234,251,36,254,10,0,160,1,167,2,232,2,159,2,51,2,211,1,121,1,43,1,12,1, +77,1,2,2,238,2,174,3,25,4,74,4,119,4,203,4,71,5,204,5,107,6,69,7,54,8,5,9,165,9,46,10, +192,10,121,11,85,12,74,13,120,14,243,15,177,17,170,19,219,21,48,24,121,26,128,28,34,30,78,31,251,31,41,32, +211,31,252,30,208,29,139,28,56,27,199,25,33,24,65,22,67,20,104,18,216,16,124,15,19,14,105,12,129,10,152,8, +248,6,183,5,182,4,194,3,171,2,99,1,39,0,78,255,14,255,130,255,176,0,93,2,55,4,255,5,126,7,164,8, +147,9,84,10,186,10,157,10,242,9,201,8,71,7,148,5,220,3,88,2,73,1,218,0,250,0,87,1,161,1,186,1, +158,1,117,1,140,1,27,2,12,3,252,3,120,4,57,4,62,3,217,1,148,0,206,255,116,255,60,255,27,255,89,255, +32,0,57,1,85,2,57,3,175,3,163,3,59,3,196,2,149,2,230,2,155,3,111,4,66,5,16,6,226,6,220,7, +8,9,64,10,84,11,22,12,96,12,55,12,195,11,27,11,58,10,30,9,203,7,75,6,187,4,59,3,203,1,64,0, +99,254,17,252,106,249,221,246,189,244,247,242,67,241,103,239,95,237,101,235,191,233,138,232,167,231,185,230,113,229,198,227, +206,225,172,223,152,221,170,219,165,217,60,215,97,212,108,209,229,206,15,205,199,203,198,202,206,201,193,200,218,199,130,199, +216,199,164,200,181,201,6,203,161,204,171,206,121,209,74,213,11,218,122,223,94,229,147,235,0,242,100,248,64,254,12,3, +113,6,88,8,248,8,167,8,162,7,15,6,40,4,73,2,235,0,93,0,119,0,191,0,217,0,210,0,251,0,135,1, +139,2,63,4,218,6,0,10,202,12,140,14,113,15,43,16,28,17,19,18,201,18,86,19,12,20,41,21,188,22,211,24, +85,27,188,29,47,31,43,31,246,29,120,28,117,27,246,26,142,26,233,25,235,24,106,23,12,21,180,17,226,13,84,10, +114,7,77,5,243,3,136,3,22,4,96,5,237,6,58,8,243,8,10,9,193,8,77,8,116,7,213,5,131,3,8,1, +239,254,127,253,189,252,133,252,162,252,231,252,64,253,178,253,86,254,67,255,104,0,169,1,28,3,231,4,1,7,35,9, +245,10,63,12,228,12,215,12,63,12,132,11,19,11,35,11,197,11,225,12,56,14,151,15,6,17,154,18,40,20,76,21, +207,21,253,21,107,22,122,23,19,25,212,26,103,28,150,29,44,30,247,29,229,28,34,27,5,25,208,22,167,20,194,18, +106,17,175,16,74,16,224,15,68,15,136,14,196,13,238,12,244,11,214,10,148,9,31,8,107,6,144,4,175,2,204,0, +217,254,247,252,116,251,136,250,29,250,228,249,163,249,71,249,174,248,176,247,70,246,143,244,193,242,26,241,196,239,189,238, +226,237,15,237,60,236,125,235,227,234,137,234,148,234,24,235,3,236,34,237,45,238,223,238,18,239,188,238,203,237,42,236, +233,233,76,231,177,228,97,226,127,224,13,223,240,221,14,221,96,220,242,219,213,219,39,220,27,221,212,222,52,225,225,227, +149,230,66,233,231,235,97,238,139,240,120,242,92,244,67,246,7,248,143,249,248,250,114,252,252,253,102,255,142,0,139,1, +132,2,109,3,7,4,56,4,53,4,65,4,92,4,111,4,142,4,217,4,60,5,125,5,121,5,64,5,230,4,117,4, +17,4,224,3,222,3,253,3,92,4,28,5,42,6,71,7,55,8,216,8,57,9,143,9,16,10,224,10,4,12,85,13, +127,14,43,15,54,15,205,14,61,14,173,13,29,13,154,12,65,12,29,12,48,12,123,12,232,12,53,13,20,13,87,12, +21,11,169,9,116,8,158,7,28,7,195,6,72,6,109,5,61,4,11,3,49,2,216,1,251,1,154,2,173,3,255,4, +69,6,99,7,98,8,64,9,217,9,5,10,190,9,41,9,112,8,168,7,225,6,55,6,187,5,93,5,252,4,139,4, +22,4,182,3,117,3,86,3,98,3,142,3,187,3,223,3,249,3,3,4,12,4,55,4,137,4,219,4,12,5,17,5, +247,4,213,4,183,4,160,4,140,4,102,4,16,4,120,3,159,2,142,1,75,0,201,254,248,252,235,250,229,248,54,247, +3,246,54,245,137,244,187,243,199,242,229,241,64,241,207,240,138,240,113,240,119,240,133,240,153,240,203,240,51,241,204,241, +130,242,90,243,105,244,190,245,103,247,99,249,136,251,131,253,13,255,4,0,114,0,119,0,58,0,218,255,104,255,236,254, +98,254,197,253,22,253,96,252,168,251,230,250,15,250,43,249,85,248,176,247,83,247,77,247,160,247,60,248,239,248,132,249, +223,249,18,250,63,250,123,250,195,250,23,251,144,251,78,252,80,253,106,254,96,255,248,255,37,0,17,0,245,255,230,255, +226,255,238,255,20,0,68,0,69,0,234,255,70,255,148,254,8,254,171,253,113,253,85,253,97,253,151,253,225,253,28,254, +50,254,51,254,61,254,87,254,110,254,121,254,123,254,119,254,118,254,126,254,151,254,204,254,31,255,151,255,60,0,2,1, +203,1,120,2,240,2,52,3,99,3,156,3,237,3,75,4,160,4,215,4,233,4,211,4,151,4,60,4,209,3,95,3, +238,2,133,2,41,2,225,1,194,1,221,1,36,2,113,2,163,2,180,2,188,2,221,2,37,3,138,3,9,4,170,4, +111,5,58,6,227,6,77,7,134,7,169,7,194,7,203,7,191,7,171,7,156,7,137,7,94,7,24,7,194,6,98,6, +236,5,88,5,180,4,17,4,119,3,243,2,141,2,55,2,218,1,114,1,3,1,138,0,6,0,132,255,34,255,244,254, +243,254,23,255,83,255,150,255,213,255,31,0,124,0,219,0,34,1,76,1,110,1,158,1,219,1,35,2,104,2,149,2, +150,2,98,2,252,1,120,1,240,0,122,0,34,0,222,255,152,255,67,255,232,254,149,254,78,254,21,254,238,253,228,253, +251,253,32,254,51,254,31,254,246,253,217,253,219,253,247,253,31,254,71,254,103,254,126,254,148,254,175,254,201,254,217,254, +226,254,230,254,219,254,192,254,164,254,152,254,159,254,172,254,173,254,157,254,129,254,96,254,71,254,61,254,59,254,56,254, +38,254,251,253,194,253,148,253,141,253,178,253,241,253,40,254,75,254,104,254,153,254,238,254,92,255,199,255,26,0,77,0, +98,0,101,0,96,0,91,0,81,0,52,0,252,255,178,255,106,255,53,255,24,255,5,255,237,254,206,254,179,254,179,254, +222,254,30,255,86,255,131,255,175,255,225,255,22,0,74,0,130,0,197,0,9,1,54,1,60,1,42,1,26,1,22,1, +22,1,17,1,12,1,16,1,32,1,57,1,89,1,125,1,147,1,144,1,110,1,48,1,224,0,155,0,111,0,83,0, +56,0,15,0,215,255,149,255,86,255,39,255,20,255,25,255,46,255,84,255,138,255,209,255,27,0,88,0,124,0,138,0, +139,0,133,0,119,0,104,0,100,0,106,0,98,0,65,0,27,0,7,0,16,0,50,0,82,0,95,0,89,0,75,0, +72,0,95,0,136,0,169,0,172,0,138,0,84,0,40,0,27,0,46,0,79,0,97,0,83,0,51,0,26,0,33,0, +78,0,148,0,218,0,12,1,30,1,13,1,225,0,176,0,143,0,117,0,77,0,31,0,255,255,246,255,248,255,250,255, +255,255,16,0,38,0,49,0,52,0,63,0,90,0,128,0,165,0,189,0,185,0,143,0,66,0,227,255,143,255,92,255, +75,255,80,255,101,255,129,255,148,255,156,255,164,255,185,255,222,255,11,0,48,0,60,0,37,0,240,255,179,255,133,255, +107,255,91,255,73,255,47,255,10,255,215,254,153,254,92,254,44,254,4,254,224,253,196,253,183,253,188,253,189,253,169,253, +133,253,91,253,44,253,0,253,224,252,216,252,241,252,38,253,109,253,199,253,47,254,159,254,21,255,145,255,14,0,129,0, +227,0,51,1,112,1,153,1,174,1,171,1,131,1,53,1,206,0,95,0,240,255,133,255,27,255,180,254,80,254,233,253, +135,253,58,253,16,253,11,253,32,253,70,253,129,253,220,253,84,254,219,254,101,255,240,255,120,0,237,0,67,1,130,1, +176,1,200,1,205,1,208,1,222,1,245,1,6,2,7,2,243,1,204,1,161,1,123,1,87,1,54,1,27,1,3,1, +240,0,223,0,203,0,174,0,131,0,69,0,253,255,191,255,147,255,117,255,96,255,81,255,77,255,88,255,104,255,118,255, +133,255,151,255,176,255,204,255,222,255,231,255,246,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/cowhurt2.pcm b/src/client/sound/data/cowhurt2.pcm new file mode 100755 index 0000000..ede6806 --- /dev/null +++ b/src/client/sound/data/cowhurt2.pcm @@ -0,0 +1,1249 @@ +unsigned char PCM_cowhurt2[39886] = { +1,0,0,0,2,0,0,0,68,172,0,0,223,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255, +254,255,254,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,255,255,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,2,0,2,0,4,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255, +0,0,255,255,254,255,0,0,0,0,254,255,255,255,254,255,253,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255, +255,255,0,0,1,0,1,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +255,255,1,0,1,0,1,0,2,0,2,0,1,0,1,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0,1,0, +2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,0,0,255,255,254,255,252,255,250,255, +251,255,251,255,251,255,251,255,251,255,253,255,252,255,251,255,252,255,251,255,251,255,253,255,255,255,0,0,0,0,254,255, +254,255,254,255,252,255,252,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255,253,255, +252,255,251,255,248,255,246,255,244,255,243,255,244,255,245,255,249,255,254,255,2,0,5,0,6,0,5,0,4,0,1,0, +255,255,254,255,251,255,251,255,253,255,253,255,253,255,252,255,249,255,247,255,244,255,243,255,245,255,249,255,252,255,0,0, +3,0,6,0,8,0,9,0,12,0,15,0,17,0,20,0,22,0,22,0,23,0,23,0,22,0,20,0,17,0,13,0, +11,0,9,0,9,0,10,0,11,0,11,0,11,0,11,0,9,0,6,0,1,0,253,255,250,255,249,255,249,255,250,255, +253,255,3,0,7,0,11,0,16,0,20,0,21,0,21,0,17,0,13,0,9,0,4,0,0,0,250,255,243,255,236,255, +229,255,223,255,218,255,214,255,212,255,215,255,220,255,226,255,230,255,231,255,232,255,234,255,233,255,233,255,233,255,233,255, +236,255,238,255,235,255,225,255,208,255,189,255,172,255,161,255,153,255,151,255,153,255,158,255,165,255,172,255,177,255,183,255, +188,255,192,255,193,255,192,255,190,255,191,255,199,255,215,255,238,255,4,0,21,0,29,0,29,0,24,0,22,0,26,0, +37,0,50,0,61,0,64,0,62,0,60,0,60,0,65,0,70,0,70,0,62,0,49,0,38,0,36,0,42,0,53,0, +65,0,70,0,65,0,51,0,29,0,7,0,251,255,250,255,255,255,5,0,4,0,254,255,242,255,222,255,202,255,183,255, +165,255,152,255,150,255,162,255,186,255,209,255,224,255,233,255,246,255,4,0,11,0,7,0,247,255,226,255,209,255,199,255, +195,255,200,255,215,255,235,255,4,0,32,0,60,0,85,0,105,0,119,0,132,0,152,0,175,0,193,0,200,0,199,0, +191,0,175,0,151,0,130,0,115,0,106,0,93,0,70,0,40,0,20,0,19,0,34,0,64,0,105,0,143,0,167,0, +169,0,156,0,141,0,132,0,129,0,134,0,149,0,169,0,178,0,156,0,88,0,240,255,133,255,55,255,26,255,55,255, +132,255,230,255,56,0,93,0,80,0,19,0,180,255,83,255,20,255,13,255,73,255,188,255,77,0,218,0,67,1,115,1, +95,1,16,1,171,0,84,0,36,0,40,0,91,0,173,0,0,1,52,1,56,1,13,1,192,0,106,0,30,0,232,255, +214,255,227,255,2,0,44,0,90,0,128,0,150,0,153,0,152,0,158,0,171,0,180,0,168,0,130,0,69,0,239,255, +144,255,66,255,31,255,44,255,92,255,149,255,192,255,207,255,187,255,136,255,77,255,32,255,18,255,48,255,122,255,222,255, +68,0,144,0,174,0,160,0,122,0,88,0,72,0,79,0,110,0,154,0,192,0,215,0,222,0,216,0,204,0,189,0, +180,0,181,0,192,0,209,0,219,0,216,0,199,0,167,0,132,0,105,0,90,0,96,0,121,0,152,0,181,0,206,0, +216,0,202,0,158,0,97,0,46,0,21,0,28,0,62,0,107,0,139,0,135,0,89,0,7,0,169,255,91,255,49,255, +59,255,125,255,230,255,91,0,187,0,246,0,9,1,246,0,202,0,154,0,121,0,117,0,136,0,163,0,188,0,202,0, +192,0,150,0,78,0,0,0,199,255,179,255,193,255,229,255,11,0,33,0,22,0,238,255,182,255,126,255,80,255,46,255, +19,255,0,255,242,254,227,254,210,254,184,254,145,254,95,254,40,254,252,253,238,253,5,254,52,254,104,254,142,254,160,254, +157,254,138,254,117,254,109,254,120,254,149,254,205,254,29,255,108,255,163,255,198,255,227,255,6,0,49,0,103,0,169,0, +240,0,41,1,71,1,78,1,73,1,53,1,16,1,229,0,203,0,200,0,209,0,218,0,213,0,185,0,137,0,81,0, +25,0,231,255,203,255,199,255,212,255,232,255,241,255,224,255,181,255,116,255,40,255,227,254,179,254,151,254,138,254,131,254, +116,254,93,254,71,254,45,254,19,254,3,254,5,254,30,254,79,254,126,254,139,254,108,254,53,254,9,254,246,253,241,253, +250,253,26,254,72,254,109,254,128,254,125,254,97,254,52,254,2,254,221,253,225,253,14,254,61,254,81,254,82,254,68,254, +32,254,226,253,149,253,90,253,78,253,109,253,154,253,199,253,240,253,5,254,243,253,191,253,132,253,89,253,77,253,101,253, +158,253,235,253,49,254,82,254,63,254,10,254,207,253,167,253,154,253,156,253,164,253,198,253,19,254,116,254,196,254,245,254, +11,255,11,255,6,255,17,255,54,255,106,255,164,255,219,255,1,0,9,0,245,255,203,255,153,255,123,255,124,255,143,255, +164,255,170,255,149,255,123,255,124,255,151,255,172,255,158,255,102,255,24,255,209,254,156,254,107,254,47,254,232,253,162,253, +104,253,64,253,41,253,20,253,235,252,174,252,118,252,77,252,45,252,16,252,230,251,168,251,108,251,86,251,118,251,189,251, +10,252,60,252,80,252,84,252,85,252,93,252,116,252,157,252,215,252,33,253,114,253,188,253,2,254,73,254,147,254,232,254, +73,255,173,255,9,0,98,0,193,0,47,1,177,1,56,2,170,2,7,3,100,3,196,3,36,4,134,4,233,4,69,5, +144,5,181,5,164,5,105,5,28,5,201,4,120,4,45,4,226,3,148,3,57,3,203,2,85,2,233,1,135,1,39,1, +203,0,120,0,48,0,252,255,221,255,204,255,196,255,197,255,209,255,227,255,243,255,249,255,242,255,228,255,217,255,218,255, +233,255,253,255,13,0,33,0,73,0,144,0,243,0,94,1,178,1,219,1,225,1,227,1,4,2,81,2,189,2,53,3, +166,3,11,4,108,4,202,4,19,5,51,5,43,5,14,5,0,5,34,5,111,5,191,5,232,5,211,5,128,5,12,5, +154,4,53,4,216,3,124,3,41,3,236,2,208,2,195,2,163,2,86,2,223,1,84,1,212,0,116,0,69,0,86,0, +153,0,234,0,37,1,60,1,46,1,254,0,182,0,114,0,86,0,109,0,167,0,239,0,58,1,144,1,244,1,75,2, +113,2,102,2,92,2,137,2,239,2,102,3,197,3,3,4,38,4,47,4,38,4,44,4,91,4,160,4,214,4,234,4, +228,4,204,4,164,4,104,4,28,4,211,3,164,3,134,3,102,3,64,3,40,3,36,3,28,3,235,2,136,2,13,2, +156,1,67,1,251,0,195,0,145,0,89,0,12,0,176,255,86,255,10,255,190,254,98,254,4,254,201,253,184,253,180,253, +160,253,127,253,102,253,91,253,86,253,83,253,87,253,113,253,174,253,254,253,65,254,108,254,127,254,121,254,88,254,46,254, +26,254,54,254,137,254,249,254,97,255,163,255,182,255,160,255,116,255,77,255,68,255,98,255,158,255,235,255,62,0,136,0, +199,0,249,0,22,1,8,1,205,0,130,0,85,0,103,0,190,0,48,1,134,1,159,1,126,1,53,1,218,0,131,0, +70,0,35,0,16,0,16,0,43,0,85,0,123,0,137,0,118,0,64,0,240,255,153,255,92,255,79,255,106,255,155,255, +216,255,18,0,52,0,52,0,22,0,235,255,203,255,195,255,209,255,231,255,252,255,15,0,23,0,8,0,218,255,151,255, +82,255,22,255,221,254,160,254,102,254,66,254,55,254,59,254,69,254,72,254,49,254,241,253,142,253,30,253,191,252,126,252, +84,252,62,252,68,252,100,252,144,252,182,252,194,252,162,252,92,252,10,252,202,251,176,251,192,251,243,251,55,252,130,252, +209,252,32,253,99,253,144,253,171,253,195,253,232,253,36,254,122,254,220,254,57,255,138,255,205,255,246,255,254,255,236,255, +197,255,134,255,56,255,238,254,173,254,115,254,65,254,18,254,222,253,157,253,77,253,242,252,152,252,73,252,8,252,212,251, +167,251,125,251,91,251,64,251,36,251,5,251,239,250,226,250,217,250,214,250,218,250,226,250,232,250,240,250,247,250,243,250, +220,250,185,250,157,250,167,250,242,250,118,251,3,252,96,252,116,252,86,252,63,252,90,252,170,252,24,253,134,253,230,253, +66,254,170,254,31,255,135,255,187,255,171,255,113,255,59,255,49,255,106,255,216,255,72,0,132,0,115,0,28,0,156,255, +24,255,173,254,109,254,90,254,106,254,133,254,148,254,144,254,129,254,116,254,113,254,105,254,83,254,44,254,5,254,255,253, +53,254,148,254,225,254,247,254,215,254,161,254,119,254,118,254,169,254,1,255,95,255,162,255,196,255,218,255,249,255,40,0, +106,0,186,0,16,1,103,1,179,1,249,1,85,2,214,2,106,3,239,3,81,4,151,4,223,4,58,5,151,5,227,5, +34,6,80,6,93,6,72,6,43,6,18,6,236,5,172,5,96,5,31,5,250,4,243,4,248,4,243,4,228,4,210,4, +163,4,71,4,220,3,134,3,83,3,60,3,58,3,65,3,69,3,65,3,65,3,78,3,95,3,99,3,81,3,45,3, +12,3,8,3,37,3,87,3,144,3,196,3,243,3,42,4,114,4,187,4,231,4,233,4,216,4,206,4,201,4,189,4, +189,4,224,4,33,5,102,5,152,5,172,5,166,5,137,5,85,5,32,5,16,5,45,5,87,5,105,5,98,5,90,5, +83,5,45,5,207,4,81,4,233,3,181,3,164,3,146,3,108,3,38,3,172,2,2,2,93,1,6,1,10,1,38,1, +28,1,247,0,226,0,228,0,227,0,192,0,125,0,46,0,225,255,157,255,138,255,216,255,120,0,17,1,55,1,180,0, +173,255,133,254,151,253,28,253,58,253,244,253,2,255,237,255,91,0,67,0,227,255,117,255,4,255,137,254,37,254,18,254, +108,254,33,255,253,255,196,0,71,1,81,1,189,0,176,255,158,254,233,253,153,253,127,253,111,253,89,253,63,253,21,253, +213,252,152,252,128,252,140,252,157,252,136,252,77,252,22,252,3,252,2,252,9,252,36,252,89,252,160,252,239,252,47,253, +79,253,73,253,18,253,157,252,10,252,137,251,47,251,241,250,208,250,216,250,8,251,71,251,120,251,140,251,137,251,124,251, +119,251,131,251,156,251,188,251,219,251,245,251,13,252,35,252,55,252,79,252,112,252,138,252,144,252,124,252,74,252,250,251, +145,251,36,251,210,250,173,250,168,250,177,250,202,250,242,250,25,251,51,251,58,251,40,251,6,251,245,250,11,251,68,251, +155,251,6,252,114,252,203,252,15,253,66,253,95,253,103,253,100,253,104,253,135,253,203,253,36,254,127,254,198,254,240,254, +255,254,1,255,0,255,0,255,0,255,251,254,250,254,1,255,11,255,15,255,4,255,223,254,163,254,91,254,16,254,206,253, +161,253,131,253,100,253,61,253,23,253,246,252,205,252,156,252,125,252,126,252,146,252,171,252,204,252,252,252,55,253,109,253, +141,253,151,253,163,253,192,253,236,253,31,254,88,254,152,254,215,254,17,255,77,255,149,255,217,255,246,255,226,255,192,255, +186,255,222,255,29,0,90,0,128,0,139,0,138,0,139,0,145,0,165,0,206,0,242,0,247,0,232,0,226,0,238,0, +14,1,58,1,103,1,145,1,186,1,222,1,250,1,10,2,5,2,233,1,199,1,167,1,144,1,159,1,231,1,77,2, +171,2,234,2,0,3,243,2,216,2,195,2,191,2,207,2,239,2,26,3,86,3,159,3,221,3,0,4,2,4,236,3, +206,3,182,3,165,3,153,3,149,3,149,3,152,3,156,3,156,3,151,3,147,3,141,3,118,3,68,3,254,2,181,2, +121,2,81,2,61,2,55,2,59,2,63,2,53,2,21,2,240,1,214,1,181,1,124,1,55,1,254,0,228,0,242,0, +32,1,95,1,165,1,226,1,5,2,12,2,6,2,0,2,244,1,203,1,127,1,55,1,33,1,71,1,153,1,2,2, +112,2,208,2,11,3,27,3,17,3,1,3,243,2,236,2,255,2,70,3,191,3,69,4,174,4,234,4,6,5,24,5, +35,5,39,5,40,5,47,5,50,5,33,5,253,4,213,4,177,4,138,4,87,4,33,4,235,3,172,3,92,3,4,3, +187,2,157,2,177,2,229,2,28,3,61,3,68,3,64,3,80,3,137,3,226,3,56,4,98,4,81,4,31,4,247,3, +238,3,242,3,237,3,209,3,168,3,121,3,62,3,246,2,166,2,69,2,207,1,87,1,241,0,169,0,156,0,212,0, +50,1,134,1,184,1,209,1,229,1,251,1,18,2,61,2,147,2,7,3,107,3,161,3,189,3,221,3,235,3,160,3, +214,2,187,1,169,0,234,255,156,255,189,255,52,0,197,0,34,1,23,1,183,0,58,0,202,255,122,255,81,255,77,255, +123,255,251,255,207,0,187,1,115,2,196,2,159,2,12,2,38,1,23,0,23,255,82,254,209,253,130,253,79,253,28,253, +214,252,124,252,16,252,147,251,16,251,158,250,73,250,23,250,24,250,94,250,226,250,140,251,61,252,216,252,70,253,122,253, +127,253,110,253,96,253,85,253,61,253,10,253,201,252,142,252,102,252,71,252,29,252,224,251,150,251,72,251,0,251,197,250, +157,250,143,250,158,250,204,250,16,251,94,251,175,251,4,252,82,252,146,252,197,252,229,252,229,252,182,252,86,252,221,251, +115,251,37,251,237,250,194,250,155,250,111,250,59,250,250,249,176,249,107,249,69,249,75,249,111,249,156,249,214,249,42,250, +142,250,236,250,58,251,127,251,185,251,230,251,4,252,17,252,1,252,208,251,136,251,61,251,4,251,230,250,220,250,216,250, +203,250,176,250,159,250,172,250,205,250,250,250,58,251,132,251,193,251,231,251,14,252,84,252,187,252,43,253,151,253,249,253, +68,254,116,254,143,254,157,254,156,254,141,254,128,254,131,254,145,254,158,254,177,254,208,254,249,254,36,255,90,255,172,255, +31,0,148,0,237,0,47,1,115,1,205,1,60,2,177,2,37,3,145,3,220,3,248,3,246,3,236,3,234,3,252,3, +35,4,92,4,163,4,234,4,27,5,48,5,55,5,65,5,91,5,128,5,173,5,226,5,23,6,60,6,71,6,53,6, +1,6,166,5,51,5,199,4,136,4,109,4,65,4,224,3,78,3,153,2,216,1,42,1,150,0,7,0,107,255,195,254, +48,254,223,253,216,253,252,253,51,254,104,254,124,254,85,254,243,253,122,253,25,253,226,252,209,252,226,252,14,253,66,253, +106,253,119,253,102,253,64,253,29,253,7,253,4,253,31,253,99,253,205,253,80,254,221,254,115,255,21,0,175,0,44,1, +141,1,227,1,54,2,133,2,214,2,49,3,137,3,196,3,232,3,12,4,58,4,95,4,99,4,53,4,227,3,139,3, +69,3,27,3,8,3,252,2,236,2,214,2,180,2,139,2,94,2,36,2,215,1,119,1,19,1,202,0,165,0,138,0, +111,0,89,0,70,0,44,0,4,0,208,255,151,255,95,255,40,255,252,254,232,254,227,254,220,254,212,254,229,254,27,255, +104,255,177,255,230,255,3,0,23,0,60,0,134,0,0,1,157,1,57,2,184,2,36,3,150,3,14,4,113,4,170,4, +186,4,173,4,146,4,118,4,104,4,122,4,174,4,222,4,232,4,198,4,134,4,64,4,3,4,196,3,121,3,46,3, +252,2,246,2,34,3,108,3,173,3,192,3,141,3,23,3,136,2,24,2,225,1,212,1,225,1,248,1,240,1,144,1, +207,0,209,255,195,254,195,253,242,252,124,252,131,252,244,252,137,253,249,253,33,254,252,253,146,253,13,253,170,252,145,252, +198,252,62,253,221,253,131,254,17,255,101,255,95,255,7,255,130,254,245,253,132,253,77,253,86,253,142,253,209,253,244,253, +227,253,171,253,112,253,86,253,125,253,236,253,133,254,16,255,85,255,64,255,236,254,137,254,55,254,5,254,14,254,104,254, +253,254,132,255,189,255,156,255,47,255,137,254,207,253,39,253,188,252,180,252,18,253,180,253,105,254,252,254,60,255,38,255, +207,254,79,254,197,253,98,253,70,253,117,253,198,253,10,254,37,254,20,254,216,253,128,253,39,253,223,252,162,252,96,252, +26,252,220,251,174,251,145,251,142,251,167,251,202,251,234,251,19,252,82,252,150,252,194,252,210,252,201,252,164,252,105,252, +54,252,52,252,127,252,9,253,166,253,42,254,122,254,152,254,148,254,128,254,101,254,91,254,131,254,235,254,119,255,2,0, +143,0,42,1,199,1,86,2,220,2,96,3,223,3,74,4,146,4,181,4,183,4,169,4,176,4,230,4,69,5,186,5, +45,6,116,6,120,6,75,6,18,6,228,5,194,5,171,5,168,5,183,5,188,5,176,5,180,5,209,5,224,5,202,5, +169,5,139,5,92,5,16,5,199,4,166,4,184,4,235,4,40,5,98,5,128,5,102,5,20,5,158,4,35,4,198,3, +163,3,186,3,231,3,243,3,190,3,83,3,209,2,75,2,210,1,121,1,76,1,58,1,37,1,255,0,209,0,157,0, +89,0,3,0,180,255,129,255,104,255,102,255,130,255,194,255,18,0,83,0,111,0,83,0,248,255,134,255,49,255,11,255, +3,255,16,255,52,255,105,255,150,255,163,255,155,255,147,255,126,255,67,255,232,254,136,254,69,254,49,254,66,254,95,254, +109,254,88,254,26,254,208,253,159,253,171,253,4,254,149,254,51,255,196,255,55,0,125,0,138,0,106,0,76,0,90,0, +159,0,9,1,126,1,235,1,60,2,92,2,57,2,221,1,112,1,17,1,206,0,161,0,126,0,100,0,94,0,106,0, +105,0,64,0,255,255,197,255,155,255,115,255,64,255,18,255,12,255,50,255,103,255,154,255,200,255,235,255,250,255,244,255, +226,255,198,255,153,255,108,255,89,255,101,255,134,255,189,255,244,255,254,255,185,255,52,255,176,254,98,254,74,254,91,254, +147,254,227,254,45,255,91,255,95,255,55,255,243,254,169,254,110,254,84,254,87,254,88,254,66,254,25,254,244,253,218,253, +185,253,124,253,36,253,197,252,114,252,54,252,31,252,49,252,83,252,109,252,124,252,114,252,62,252,244,251,201,251,226,251, +39,252,100,252,129,252,135,252,129,252,116,252,114,252,137,252,179,252,214,252,223,252,205,252,169,252,122,252,69,252,30,252, +23,252,43,252,73,252,106,252,142,252,170,252,180,252,177,252,178,252,186,252,185,252,166,252,145,252,126,252,107,252,91,252, +86,252,85,252,76,252,65,252,91,252,178,252,49,253,173,253,17,254,87,254,120,254,139,254,187,254,6,255,63,255,82,255, +89,255,99,255,95,255,58,255,2,255,208,254,159,254,78,254,214,253,86,253,218,252,82,252,197,251,88,251,30,251,2,251, +249,250,27,251,115,251,233,251,72,252,105,252,72,252,4,252,188,251,130,251,115,251,165,251,4,252,102,252,176,252,216,252, +217,252,182,252,129,252,82,252,56,252,65,252,115,252,197,252,46,253,171,253,53,254,195,254,64,255,161,255,9,0,147,0, +39,1,174,1,63,2,239,2,168,3,64,4,175,4,22,5,139,5,5,6,133,6,3,7,88,7,112,7,98,7,84,7, +77,7,68,7,67,7,85,7,104,7,112,7,133,7,177,7,225,7,3,8,24,8,41,8,61,8,80,8,96,8,101,8, +72,8,5,8,192,7,145,7,96,7,25,7,203,6,126,6,32,6,172,5,49,5,181,4,50,4,173,3,59,3,238,2, +184,2,123,2,50,2,233,1,154,1,63,1,231,0,160,0,104,0,56,0,23,0,38,0,113,0,212,0,45,1,133,1, +237,1,93,2,182,2,229,2,243,2,236,2,215,2,200,2,208,2,218,2,190,2,104,2,221,1,65,1,189,0,97,0, +44,0,22,0,18,0,23,0,29,0,14,0,210,255,127,255,75,255,92,255,182,255,68,0,226,0,91,1,130,1,93,1, +27,1,223,0,164,0,92,0,21,0,233,255,227,255,250,255,37,0,86,0,112,0,107,0,105,0,134,0,179,0,219,0, +248,0,23,1,66,1,118,1,161,1,189,1,209,1,223,1,235,1,0,2,48,2,125,2,201,2,238,2,225,2,189,2, +170,2,185,2,217,2,247,2,5,3,3,3,0,3,4,3,244,2,191,2,120,2,63,2,22,2,234,1,173,1,98,1, +30,1,248,0,237,0,229,0,199,0,133,0,31,0,171,255,65,255,215,254,99,254,233,253,105,253,244,252,165,252,131,252, +121,252,120,252,124,252,131,252,134,252,125,252,107,252,84,252,62,252,49,252,56,252,88,252,129,252,154,252,145,252,110,252, +61,252,7,252,220,251,199,251,187,251,175,251,173,251,185,251,201,251,209,251,219,251,8,252,105,252,232,252,78,253,119,253, +118,253,121,253,154,253,207,253,252,253,11,254,248,253,198,253,114,253,6,253,151,252,55,252,233,251,169,251,120,251,96,251, +101,251,127,251,166,251,202,251,230,251,17,252,89,252,165,252,203,252,208,252,231,252,50,253,148,253,221,253,253,253,246,253, +218,253,200,253,203,253,206,253,172,253,85,253,230,252,147,252,113,252,101,252,81,252,46,252,253,251,190,251,143,251,146,251, +189,251,254,251,85,252,196,252,58,253,152,253,191,253,182,253,167,253,174,253,187,253,178,253,125,253,25,253,159,252,53,252, +250,251,246,251,17,252,46,252,63,252,83,252,136,252,239,252,142,253,103,254,101,255,92,0,47,1,239,1,163,2,31,3, +69,3,51,3,22,3,250,2,229,2,232,2,15,3,89,3,180,3,3,4,48,4,39,4,220,3,113,3,38,3,32,3, +106,3,252,3,186,4,144,5,101,6,12,7,74,7,13,7,125,6,210,5,54,5,192,4,120,4,81,4,37,4,217,3, +101,3,211,2,47,2,136,1,247,0,147,0,85,0,42,0,12,0,249,255,234,255,226,255,246,255,31,0,69,0,105,0, +163,0,254,0,106,1,199,1,255,1,10,2,230,1,151,1,56,1,239,0,207,0,215,0,246,0,23,1,37,1,19,1, +222,0,153,0,89,0,54,0,76,0,147,0,236,0,84,1,214,1,105,2,246,2,104,3,195,3,26,4,106,4,150,4, +136,4,60,4,196,3,72,3,236,2,189,2,163,2,126,2,57,2,202,1,58,1,177,0,93,0,74,0,91,0,109,0, +117,0,132,0,164,0,208,0,6,1,72,1,144,1,209,1,253,1,20,2,30,2,35,2,31,2,23,2,14,2,9,2, +4,2,244,1,220,1,199,1,187,1,184,1,176,1,150,1,106,1,63,1,31,1,25,1,56,1,113,1,164,1,183,1, +177,1,180,1,213,1,12,2,65,2,100,2,132,2,168,2,192,2,188,2,164,2,114,2,36,2,219,1,179,1,152,1, +97,1,3,1,149,0,44,0,185,255,63,255,231,254,206,254,217,254,227,254,228,254,229,254,230,254,219,254,189,254,151,254, +128,254,136,254,166,254,185,254,176,254,159,254,154,254,148,254,118,254,64,254,7,254,218,253,185,253,167,253,177,253,214,253, +249,253,1,254,233,253,185,253,138,253,111,253,94,253,63,253,11,253,214,252,190,252,212,252,10,253,58,253,58,253,248,252, +146,252,58,252,16,252,25,252,77,252,148,252,200,252,208,252,207,252,243,252,41,253,41,253,225,252,128,252,67,252,74,252, +140,252,203,252,200,252,139,252,91,252,100,252,139,252,172,252,199,252,229,252,255,252,24,253,63,253,127,253,194,253,223,253, +196,253,129,253,60,253,19,253,0,253,228,252,176,252,114,252,54,252,246,251,163,251,71,251,6,251,245,250,7,251,29,251, +52,251,108,251,227,251,137,252,47,253,171,253,244,253,39,254,102,254,178,254,7,255,108,255,216,255,48,0,107,0,142,0, +147,0,106,0,19,0,165,255,56,255,217,254,159,254,146,254,139,254,102,254,54,254,62,254,168,254,73,255,212,255,52,0, +129,0,203,0,30,1,140,1,13,2,135,2,240,2,63,3,90,3,56,3,248,2,167,2,49,2,140,1,219,0,83,0, +10,0,241,255,238,255,251,255,31,0,93,0,177,0,4,1,71,1,143,1,15,2,245,2,44,4,94,5,55,6,164,6, +186,6,135,6,12,6,75,5,88,4,93,3,142,2,14,2,229,1,20,2,128,2,231,2,8,3,220,2,133,2,34,2, +207,1,189,1,29,2,228,2,216,3,205,4,161,5,14,6,230,5,81,5,163,4,11,4,132,3,0,3,144,2,73,2, +33,2,251,1,199,1,126,1,33,1,194,0,120,0,76,0,72,0,117,0,203,0,48,1,157,1,31,2,178,2,66,3, +175,3,230,3,247,3,250,3,243,3,224,3,204,3,191,3,180,3,156,3,99,3,3,3,138,2,9,2,146,1,62,1, +20,1,15,1,33,1,53,1,63,1,66,1,56,1,31,1,8,1,9,1,58,1,166,1,71,2,5,3,183,3,31,4, +28,4,187,3,37,3,125,2,212,1,50,1,177,0,109,0,97,0,88,0,24,0,144,255,223,254,52,254,177,253,85,253, +4,253,171,252,81,252,14,252,237,251,228,251,228,251,228,251,224,251,206,251,168,251,116,251,66,251,41,251,50,251,76,251, +96,251,119,251,156,251,180,251,156,251,100,251,59,251,54,251,71,251,84,251,66,251,16,251,208,250,138,250,57,250,228,249, +154,249,91,249,39,249,13,249,18,249,36,249,47,249,57,249,86,249,151,249,245,249,91,250,191,250,38,251,146,251,2,252, +128,252,7,253,127,253,213,253,33,254,129,254,238,254,88,255,185,255,2,0,37,0,41,0,20,0,237,255,207,255,220,255, +32,0,125,0,186,0,188,0,165,0,163,0,197,0,3,1,80,1,161,1,235,1,29,2,58,2,92,2,138,2,172,2, +165,2,127,2,94,2,73,2,37,2,221,1,113,1,252,0,154,0,72,0,234,255,127,255,26,255,220,254,226,254,24,255, +80,255,108,255,110,255,106,255,116,255,141,255,175,255,237,255,89,0,234,0,120,1,200,1,200,1,167,1,161,1,180,1, +173,1,91,1,184,0,242,255,82,255,6,255,255,254,18,255,24,255,255,254,208,254,171,254,187,254,16,255,135,255,251,255, +111,0,3,1,192,1,140,2,54,3,161,3,218,3,238,3,225,3,198,3,193,3,217,3,14,4,89,4,165,4,225,4, +26,5,88,5,126,5,122,5,100,5,98,5,145,5,28,6,14,7,27,8,215,8,32,9,42,9,70,9,163,9,37,10, +133,10,179,10,198,10,169,10,42,10,74,9,46,8,244,6,194,5,212,4,78,4,51,4,94,4,131,4,94,4,223,3, +25,3,65,2,158,1,84,1,76,1,91,1,112,1,165,1,3,2,88,2,86,2,219,1,10,1,33,0,48,255,53,254, +91,253,209,252,127,252,28,252,120,251,162,250,214,249,57,249,206,248,146,248,136,248,167,248,217,248,9,249,61,249,150,249, +40,250,229,250,161,251,30,252,65,252,31,252,211,251,114,251,18,251,195,250,146,250,142,250,173,250,208,250,211,250,177,250, +136,250,126,250,151,250,195,250,248,250,57,251,134,251,210,251,13,252,50,252,69,252,84,252,107,252,124,252,101,252,27,252, +175,251,42,251,139,250,220,249,45,249,130,248,224,247,92,247,16,247,243,246,243,246,14,247,74,247,172,247,57,248,243,248, +210,249,196,250,180,251,129,252,26,253,152,253,29,254,174,254,89,255,58,0,55,1,15,2,172,2,17,3,50,3,9,3, +168,2,50,2,218,1,213,1,60,2,4,3,4,4,238,4,113,5,128,5,65,5,217,4,96,4,251,3,196,3,187,3, +210,3,235,3,218,3,129,3,229,2,35,2,83,1,133,0,189,255,244,254,44,254,112,253,208,252,95,252,44,252,23,252, +237,251,173,251,111,251,61,251,47,251,95,251,192,251,53,252,187,252,101,253,52,254,10,255,211,255,149,0,74,1,237,1, +141,2,60,3,255,3,203,4,136,5,46,6,198,6,79,7,203,7,65,8,160,8,219,8,23,9,127,9,17,10,162,10, +12,11,63,11,68,11,56,11,64,11,110,11,177,11,233,11,249,11,223,11,154,11,30,11,127,10,234,9,107,9,234,8, +89,8,183,7,5,7,69,6,123,5,180,4,239,3,26,3,45,2,64,1,112,0,212,255,102,255,11,255,154,254,14,254, +147,253,71,253,13,253,195,252,118,252,45,252,205,251,87,251,223,250,104,250,9,250,246,249,65,250,189,250,58,251,151,251, +189,251,177,251,144,251,117,251,115,251,148,251,194,251,238,251,46,252,146,252,246,252,39,253,29,253,244,252,206,252,186,252, +170,252,130,252,58,252,241,251,195,251,172,251,164,251,160,251,116,251,18,251,168,250,99,250,60,250,30,250,7,250,251,249, +252,249,9,250,23,250,36,250,70,250,114,250,129,250,98,250,39,250,226,249,188,249,219,249,48,250,149,250,7,251,138,251, +25,252,174,252,69,253,227,253,141,254,70,255,4,0,166,0,7,1,39,1,26,1,228,0,158,0,120,0,134,0,190,0, +34,1,150,1,220,1,203,1,105,1,211,0,35,0,115,255,215,254,92,254,20,254,14,254,63,254,137,254,190,254,177,254, +85,254,199,253,45,253,176,252,114,252,127,252,184,252,231,252,224,252,158,252,59,252,229,251,206,251,5,252,117,252,14,253, +185,253,93,254,240,254,115,255,244,255,134,0,51,1,233,1,143,2,15,3,105,3,184,3,24,4,136,4,244,4,93,5, +218,5,111,6,14,7,179,7,90,8,242,8,92,9,143,9,153,9,151,9,162,9,191,9,239,9,43,10,90,10,100,10, +83,10,66,10,51,10,36,10,45,10,88,10,120,10,77,10,183,9,203,8,197,7,237,6,119,6,105,6,146,6,178,6, +162,6,95,6,251,5,131,5,5,5,157,4,104,4,102,4,127,4,143,4,124,4,77,4,39,4,23,4,13,4,245,3, +193,3,111,3,9,3,149,2,23,2,158,1,50,1,195,0,49,0,116,255,177,254,16,254,154,253,56,253,221,252,154,252, +120,252,101,252,85,252,81,252,91,252,109,252,129,252,132,252,97,252,12,252,134,251,247,250,140,250,50,250,196,249,68,249, +193,248,36,248,105,247,180,246,37,246,185,245,109,245,67,245,44,245,22,245,21,245,77,245,186,245,50,246,148,246,230,246, +52,247,130,247,212,247,63,248,231,248,219,249,229,250,180,251,53,252,113,252,85,252,222,251,54,251,150,250,65,250,111,250, +10,251,194,251,98,252,211,252,254,252,211,252,100,252,221,251,128,251,138,251,1,252,185,252,100,253,178,253,131,253,250,252, +84,252,170,251,255,250,110,250,15,250,209,249,140,249,49,249,202,248,107,248,48,248,37,248,52,248,75,248,104,248,121,248, +111,248,98,248,130,248,222,248,106,249,24,250,233,250,225,251,247,252,10,254,252,254,198,255,118,0,28,1,219,1,224,2, +42,4,120,5,135,6,57,7,135,7,130,7,103,7,129,7,244,7,176,8,150,9,133,10,83,11,213,11,250,11,214,11, +167,11,166,11,225,11,80,12,229,12,132,13,254,13,53,14,38,14,234,13,155,13,68,13,242,12,175,12,105,12,7,12, +149,11,37,11,162,10,233,9,9,9,57,8,154,7,41,7,207,6,110,6,251,5,138,5,50,5,249,4,221,4,215,4, +222,4,221,4,180,4,101,4,33,4,24,4,68,4,126,4,167,4,188,4,200,4,212,4,224,4,232,4,223,4,194,4, +149,4,87,4,10,4,171,3,64,3,236,2,210,2,224,2,220,2,169,2,80,2,218,1,77,1,203,0,116,0,53,0, +219,255,80,255,160,254,227,253,45,253,137,252,248,251,113,251,224,250,49,250,121,249,225,248,116,248,19,248,169,247,49,247, +176,246,75,246,51,246,109,246,209,246,53,247,129,247,172,247,182,247,173,247,167,247,195,247,39,248,219,248,168,249,64,250, +136,250,155,250,150,250,139,250,142,250,172,250,238,250,76,251,169,251,231,251,252,251,232,251,170,251,68,251,205,250,104,250, +51,250,36,250,18,250,223,249,137,249,13,249,100,248,155,247,203,246,251,245,47,245,122,244,242,243,135,243,2,243,66,242, +112,241,205,240,108,240,63,240,49,240,48,240,54,240,76,240,138,240,255,240,172,241,148,242,202,243,73,245,240,246,155,248, +58,250,197,251,68,253,207,254,115,0,28,2,182,3,60,5,157,6,195,7,173,8,105,9,251,9,108,10,205,10,45,11, +148,11,249,11,72,12,114,12,127,12,120,12,83,12,23,12,237,11,250,11,66,12,184,12,72,13,212,13,58,14,107,14, +106,14,73,14,30,14,241,13,192,13,151,13,122,13,80,13,248,12,92,12,120,11,102,10,88,9,111,8,160,7,216,6, +24,6,111,5,232,4,141,4,94,4,69,4,41,4,21,4,41,4,111,4,212,4,79,5,229,5,147,6,75,7,249,7, +146,8,15,9,99,9,137,9,144,9,125,9,72,9,250,8,181,8,122,8,43,8,185,7,51,7,176,6,62,6,214,5, +87,5,160,4,187,3,200,2,218,1,254,0,66,0,159,255,234,254,243,253,181,252,92,251,18,250,229,248,210,247,213,246, +231,245,3,245,32,244,45,243,42,242,62,241,155,240,91,240,136,240,23,241,215,241,136,242,38,243,218,243,172,244,132,245, +96,246,76,247,82,248,117,249,162,250,175,251,129,252,32,253,166,253,30,254,149,254,14,255,102,255,122,255,80,255,251,254, +116,254,179,253,195,252,192,251,209,250,46,250,236,249,208,249,122,249,178,248,111,247,204,245,9,244,107,242,14,241,240,239, +21,239,120,238,239,237,80,237,135,236,160,235,187,234,2,234,145,233,122,233,199,233,109,234,68,235,50,236,59,237,99,238, +167,239,17,241,180,242,150,244,170,246,215,248,16,251,80,253,143,255,196,1,231,3,230,5,178,7,74,9,188,10,5,12, +18,13,218,13,107,14,224,14,77,15,178,15,16,16,115,16,232,16,122,17,45,18,235,18,135,19,228,19,10,20,25,20, +55,20,133,20,255,20,124,21,209,21,238,21,229,21,194,21,119,21,236,20,29,20,25,19,248,17,201,16,143,15,55,14, +172,12,243,10,44,9,125,7,254,5,183,4,161,3,170,2,203,1,27,1,174,0,120,0,97,0,100,0,139,0,236,0, +159,1,159,2,202,3,247,4,18,6,30,7,48,8,92,9,153,10,189,11,148,12,9,13,41,13,21,13,238,12,187,12, +97,12,205,11,3,11,21,10,5,9,217,7,144,6,31,5,129,3,188,1,214,255,222,253,240,251,24,250,80,248,160,246, +16,245,134,243,233,241,73,240,203,238,140,237,160,236,11,236,177,235,103,235,30,235,254,234,59,235,226,235,217,236,15,238, +123,239,6,241,167,242,116,244,104,246,82,248,14,250,163,251,16,253,66,254,57,255,16,0,214,0,145,1,70,2,238,2, +102,3,133,3,55,3,134,2,152,1,144,0,100,255,234,253,27,252,50,250,122,248,32,247,41,246,101,245,126,244,55,243, +148,241,201,239,13,238,118,236,251,234,154,233,120,232,203,231,154,231,169,231,167,231,104,231,251,230,160,230,159,230,26,231, +255,231,31,233,94,234,186,235,71,237,19,239,23,241,66,243,142,245,0,248,145,250,49,253,207,255,97,2,214,4,21,7, +25,9,253,10,211,12,147,14,53,16,179,17,244,18,235,19,173,20,86,21,245,21,150,22,69,23,254,23,182,24,97,25, +230,25,54,26,93,26,123,26,163,26,212,26,250,26,253,26,205,26,93,26,165,25,182,24,167,23,120,22,27,21,136,19, +199,17,230,15,232,13,198,11,132,9,48,7,231,4,205,2,5,1,152,255,124,254,156,253,233,252,110,252,72,252,137,252, +46,253,40,254,98,255,201,0,96,2,50,4,61,6,111,8,163,10,163,12,70,14,150,15,185,16,188,17,150,18,62,19, +169,19,191,19,106,19,173,18,149,17,38,16,102,14,107,12,88,10,68,8,49,6,25,4,233,1,131,255,218,252,5,250, +36,247,71,244,135,241,14,239,239,236,28,235,141,233,62,232,31,231,47,230,135,229,36,229,250,228,42,229,220,229,253,230, +91,232,244,233,217,235,248,237,40,240,99,242,177,244,3,247,66,249,101,251,104,253,50,255,176,0,239,1,240,2,153,3, +229,3,242,3,214,3,139,3,24,3,153,2,16,2,82,1,51,0,179,254,217,252,170,250,72,248,231,245,157,243,117,241, +128,239,181,237,241,235,54,234,163,232,51,231,190,229,53,228,174,226,87,225,107,224,11,224,32,224,114,224,219,224,91,225, +5,226,238,226,38,228,178,229,131,231,132,233,162,235,219,237,58,240,203,242,140,245,97,248,43,251,232,253,168,0,107,3, +14,6,121,8,179,10,211,12,238,14,24,17,71,19,71,21,229,22,39,24,48,25,32,26,2,27,223,27,179,28,122,29, +48,30,209,30,87,31,182,31,224,31,197,31,93,31,182,30,248,29,76,29,187,28,52,28,161,27,247,26,53,26,78,25, +45,24,186,22,245,20,253,18,250,16,1,15,14,13,17,11,1,9,225,6,201,4,234,2,102,1,52,0,65,255,149,254, +62,254,60,254,163,254,151,255,12,1,203,2,164,4,151,6,177,8,229,10,26,13,57,15,52,17,244,18,113,20,178,21, +164,22,29,23,11,23,121,22,112,21,251,19,55,18,58,16,1,14,145,11,243,8,45,6,68,3,78,0,95,253,120,250, +135,247,126,244,99,241,79,238,103,235,208,232,151,230,183,228,41,227,227,225,222,224,29,224,179,223,171,223,251,223,165,224, +182,225,53,227,15,229,51,231,150,233,39,236,192,238,78,241,214,243,85,246,199,248,69,251,229,253,139,0,248,2,255,4, +122,6,67,7,93,7,2,7,103,6,156,5,161,4,116,3,247,1,18,0,211,253,79,251,142,248,164,245,175,242,188,239, +217,236,51,234,228,231,209,229,221,227,17,226,124,224,27,223,228,221,212,220,254,219,128,219,106,219,178,219,56,220,218,220, +149,221,157,222,36,224,22,226,64,228,161,230,77,233,62,236,88,239,135,242,175,245,179,248,145,251,105,254,77,1,51,4, +38,7,41,10,21,13,185,15,18,18,45,20,9,22,178,23,62,25,164,26,205,27,191,28,138,29,57,30,222,30,148,31, +90,32,21,33,175,33,35,34,115,34,161,34,177,34,160,34,94,34,222,33,31,33,47,32,40,31,43,30,70,29,96,28, +80,27,242,25,39,24,228,21,62,19,96,16,115,13,144,10,195,7,9,5,101,2,248,255,236,253,75,252,7,251,26,250, +147,249,141,249,33,250,79,251,252,252,3,255,79,1,202,3,86,6,222,8,94,11,213,13,67,16,167,18,230,20,207,22, +57,24,14,25,71,25,239,24,27,24,213,22,48,21,70,19,31,17,174,14,239,11,247,8,214,5,144,2,38,255,175,251, +64,248,224,244,149,241,100,238,58,235,253,231,194,228,213,225,119,223,173,221,91,220,107,219,213,218,163,218,234,218,195,219, +58,221,69,223,212,225,204,228,10,232,120,235,24,239,217,242,145,246,42,250,180,253,50,1,145,4,181,7,104,10,82,12, +67,13,100,13,9,13,105,12,148,11,143,10,71,9,149,7,98,5,187,2,174,255,66,252,161,248,16,245,177,241,125,238, +116,235,164,232,5,230,152,227,118,225,163,223,232,221,24,220,73,218,193,216,194,215,116,215,209,215,152,216,120,217,91,218, +105,219,209,220,182,222,38,225,18,228,62,231,100,234,118,237,162,240,22,244,207,247,162,251,82,255,165,2,152,5,94,8, +34,11,215,13,86,16,138,18,117,20,42,22,195,23,73,25,179,26,245,27,16,29,254,29,186,30,82,31,241,31,179,32, +145,33,118,34,95,35,74,36,41,37,224,37,75,38,89,38,24,38,169,37,19,37,70,36,56,35,234,33,103,32,182,30, +212,28,171,26,36,24,44,21,214,17,90,14,252,10,221,7,251,4,57,2,140,255,10,253,214,250,6,249,161,247,174,246, +40,246,3,246,69,246,253,246,45,248,213,249,241,251,113,254,54,1,37,4,43,7,60,10,66,13,30,16,189,18,23,21, +25,23,151,24,119,25,199,25,156,25,247,24,220,23,89,22,113,20,22,18,66,15,245,11,56,8,38,4,229,255,144,251, +47,247,209,242,146,238,148,234,236,230,150,227,133,224,190,221,80,219,78,217,202,215,225,214,165,214,37,215,112,216,116,218, +3,221,251,223,81,227,222,230,106,234,227,237,92,241,203,244,13,248,35,251,57,254,125,1,251,4,142,8,212,11,83,14, +175,15,214,15,246,14,103,13,131,11,144,9,171,7,197,5,153,3,233,0,167,253,228,249,185,245,91,241,17,237,5,233, +81,229,21,226,88,223,244,220,205,218,238,216,106,215,79,214,156,213,55,213,250,212,231,212,45,213,0,214,120,215,158,217, +97,220,137,223,199,226,237,229,1,233,33,236,102,239,213,242,90,246,212,249,47,253,110,0,146,3,148,6,113,9,36,12, +171,14,6,17,66,19,108,21,132,23,128,25,78,27,222,28,54,30,111,31,157,32,204,33,25,35,149,36,43,38,165,39, +217,40,169,41,6,42,12,42,1,42,28,42,112,42,242,42,110,43,140,43,2,43,197,41,240,39,181,37,84,35,20,33, +9,31,246,28,124,26,114,23,239,19,16,16,232,11,170,7,161,3,253,255,192,252,233,249,127,247,130,245,253,243,11,243, +173,242,196,242,77,243,90,244,228,245,222,247,85,250,83,253,185,0,90,4,3,8,118,11,125,14,11,17,43,19,239,20, +122,22,238,23,52,25,244,25,207,25,165,24,152,22,213,19,109,16,113,12,12,8,104,3,171,254,6,250,151,245,78,241, +2,237,160,232,49,228,210,223,194,219,80,216,197,213,98,212,73,212,73,213,235,214,210,216,213,218,218,220,219,222,15,225, +188,227,243,230,145,234,88,238,13,242,150,245,21,249,177,252,89,0,209,3,218,6,65,9,230,10,210,11,39,12,22,12, +202,11,88,11,172,10,152,9,236,7,119,5,4,2,125,253,31,248,110,242,249,236,30,232,11,228,195,224,30,222,223,219, +228,217,58,216,245,214,10,214,82,213,169,212,10,212,161,211,187,211,156,212,69,214,129,216,13,219,192,221,124,224,34,227, +177,229,81,232,36,235,29,238,34,241,58,244,129,247,252,250,148,254,38,2,164,5,18,9,112,12,173,15,179,18,97,21, +135,23,17,25,35,26,249,26,189,27,141,28,133,29,169,30,242,31,98,33,227,34,52,36,24,37,117,37,84,37,244,36, +194,36,19,37,246,37,90,39,46,41,52,43,9,45,87,46,239,46,188,46,219,45,163,44,109,43,71,42,0,41,82,39, +24,37,86,34,44,31,188,27,19,24,25,20,169,15,198,10,183,5,214,0,98,252,136,248,119,245,73,243,250,241,102,241, +77,241,118,241,215,241,157,242,230,243,178,245,247,247,163,250,153,253,170,0,161,3,72,6,123,8,61,10,162,11,188,12, +158,13,104,14,45,15,220,15,55,16,250,15,2,15,69,13,191,10,137,7,224,3,238,255,176,251,34,247,100,242,149,237, +190,232,248,227,128,223,153,219,126,216,94,214,77,213,58,213,4,214,120,215,75,217,61,219,84,221,202,223,209,226,105,230, +123,234,230,238,127,243,8,248,62,252,234,255,252,2,157,5,20,8,152,10,34,13,108,15,43,17,69,18,199,18,159,18, +143,17,104,15,41,12,225,7,193,2,52,253,179,247,109,242,114,237,247,232,44,229,246,225,37,223,179,220,170,218,240,216, +92,215,227,213,175,212,12,212,45,212,251,212,47,214,139,215,214,216,211,217,123,218,33,219,48,220,235,221,109,224,159,227, +58,231,246,234,174,238,82,242,206,245,254,248,213,251,125,254,63,1,43,4,240,6,46,9,196,10,214,11,177,12,184,13, +41,15,243,16,234,18,19,21,134,23,49,26,201,28,253,30,165,32,186,33,80,34,161,34,254,34,162,35,142,36,184,37, +63,39,66,41,170,43,62,46,191,48,222,50,72,52,214,52,155,52,187,51,100,50,206,48,41,47,120,45,136,43,11,41, +181,37,89,33,252,27,218,21,89,15,245,8,34,3,48,254,66,250,80,247,41,245,136,243,41,242,248,240,25,240,194,239, +5,240,218,240,54,242,254,243,13,246,100,248,54,251,156,254,93,2,32,6,157,9,175,12,64,15,70,17,200,18,228,19, +197,20,126,21,244,21,228,21,5,21,40,19,73,16,148,12,62,8,101,3,21,254,107,248,174,242,64,237,110,232,76,228, +178,224,109,221,110,218,225,215,13,214,42,213,75,213,75,214,226,215,204,217,244,219,122,222,153,225,123,229,14,234,0,239, +245,243,172,248,254,252,194,0,224,3,106,6,132,8,83,10,235,11,72,13,77,14,220,14,215,14,26,14,125,12,243,9, +151,6,164,2,85,254,203,249,3,245,10,240,23,235,107,230,55,226,165,222,190,219,81,217,30,215,15,213,48,211,150,209, +109,208,229,207,15,208,223,208,70,210,32,212,61,214,124,216,189,218,216,220,196,222,166,224,149,226,137,228,144,230,239,232, +212,235,32,239,155,242,28,246,129,249,174,252,168,255,145,2,117,5,63,8,227,10,131,13,50,16,198,18,1,21,209,22, +97,24,246,25,203,27,236,29,41,32,60,34,253,35,105,37,154,38,180,39,203,40,213,41,190,42,109,43,205,43,221,43, +203,43,203,43,230,43,3,44,1,44,193,43,48,43,99,42,126,41,152,40,182,39,220,38,253,37,237,36,119,35,123,33, +240,30,223,27,91,24,131,20,136,16,158,12,220,8,56,5,169,1,57,254,7,251,65,248,31,246,199,244,46,244,39,244, +151,244,134,245,249,246,214,248,240,250,30,253,69,255,91,1,112,3,154,5,213,7,240,9,170,11,210,12,96,13,114,13, +61,13,240,12,153,12,17,12,21,11,116,9,47,7,100,4,52,1,207,253,97,250,253,246,140,243,225,239,231,235,191,231, +182,227,21,224,17,221,233,218,216,217,227,217,211,218,99,220,88,222,123,224,181,226,23,229,179,231,131,234,121,237,127,240, +117,243,58,246,198,248,45,251,158,253,79,0,75,3,70,6,175,8,251,9,251,9,248,8,123,7,236,5,113,4,36,3, +34,2,87,1,88,0,141,254,137,251,77,247,48,242,160,236,0,231,191,225,92,221,42,218,45,216,30,215,140,214,12,214, +106,213,171,212,224,211,37,211,196,210,26,211,74,212,45,214,129,216,27,219,218,221,141,224,250,226,251,228,149,230,247,231, +95,233,3,235,255,236,97,239,57,242,154,245,125,249,161,253,159,1,43,5,57,8,238,10,100,13,161,15,173,17,160,19, +128,21,60,23,199,24,44,26,120,27,177,28,231,29,70,31,7,33,65,35,214,37,129,40,2,43,62,45,64,47,23,49, +182,50,250,51,197,52,13,53,207,52,19,52,11,51,252,49,3,49,0,48,197,46,53,45,72,43,6,41,140,38,0,36, +124,33,2,31,123,28,200,25,204,22,123,19,212,15,205,11,79,7,100,2,99,253,215,248,45,245,141,242,237,240,26,240, +204,239,215,239,74,240,88,241,58,243,26,246,248,249,122,254,251,2,197,6,109,9,243,10,177,11,25,12,124,12,252,12, +129,13,206,13,156,13,190,12,32,11,205,8,232,5,137,2,183,254,144,250,100,246,120,242,219,238,134,235,140,232,254,229, +188,227,124,225,250,222,58,220,151,217,171,215,11,215,17,216,207,218,14,223,96,228,45,234,207,239,185,244,170,248,172,251, +251,253,218,255,135,1,40,3,198,4,95,6,243,7,96,9,81,10,106,10,138,9,213,7,149,5,43,3,248,0,50,255, +217,253,210,252,225,251,134,250,14,248,15,244,166,238,83,232,183,225,117,219,24,214,234,209,239,206,252,204,214,203,72,203, +51,203,141,203,91,204,176,205,158,207,26,210,242,212,238,215,234,218,211,221,151,224,58,227,199,229,27,232,216,233,184,234, +242,234,39,235,255,235,199,237,92,240,97,243,141,246,203,249,25,253,73,0,41,3,209,5,180,8,46,12,19,16,202,19, +221,22,81,25,97,27,35,29,164,30,41,32,15,34,137,36,156,39,58,43,34,47,220,50,250,53,71,56,167,57,20,58, +189,57,5,57,53,56,76,55,47,54,239,52,203,51,241,50,72,50,134,49,90,48,134,46,232,43,151,40,230,36,56,33, +226,29,26,27,217,24,202,22,119,20,153,17,44,14,81,10,49,6,249,1,215,253,253,249,181,246,98,244,87,243,153,243, +198,244,61,246,133,247,136,248,124,249,163,250,46,252,74,254,2,1,32,4,44,7,167,9,70,11,1,12,0,12,128,11, +174,10,147,9,13,8,231,5,13,3,180,255,67,252,17,249,68,246,215,243,172,241,146,239,66,237,127,234,67,231,227,227, +247,224,248,222,10,222,11,222,201,222,23,224,180,225,82,227,204,228,84,230,93,232,49,235,164,238,19,242,203,244,121,246, +76,247,178,247,16,248,188,248,11,250,23,252,121,254,102,0,47,1,156,0,21,255,103,253,69,252,212,251,199,251,213,251, +207,251,102,251,48,250,248,247,230,244,73,241,111,237,164,233,50,230,88,227,63,225,229,223,24,223,161,222,115,222,164,222, +54,223,238,223,117,224,158,224,143,224,152,224,226,224,101,225,20,226,231,226,174,227,24,228,228,227,23,227,14,226,87,225, +118,225,151,226,134,228,254,230,237,233,99,237,84,241,121,245,112,249,232,252,190,255,14,2,28,4,53,6,151,8,110,11, +185,14,64,18,174,21,207,24,160,27,51,30,164,32,30,35,197,37,151,40,118,43,76,46,16,49,174,51,1,54,221,55, +21,57,136,57,55,57,71,56,255,54,168,53,111,52,96,51,122,50,173,49,208,48,165,47,240,45,142,43,142,40,60,37, +244,33,216,30,208,27,179,24,96,21,181,17,181,13,159,9,212,5,151,2,10,0,48,254,247,252,48,252,165,251,59,251, +252,250,19,251,178,251,242,252,186,254,197,0,193,2,116,4,192,5,160,6,37,7,99,7,109,7,79,7,18,7,184,6, +54,6,126,5,145,4,119,3,50,2,188,0,16,255,29,253,217,250,80,248,155,245,206,242,250,239,74,237,237,234,234,232, +24,231,70,229,103,227,172,225,102,224,228,223,86,224,189,225,231,227,136,230,111,233,148,236,230,239,45,243,41,246,177,248, +174,250,16,252,218,252,35,253,13,253,192,252,90,252,232,251,132,251,89,251,110,251,150,251,146,251,43,251,51,250,173,248, +239,246,102,245,39,244,249,242,160,241,251,239,225,237,47,235,238,231,98,228,202,224,58,221,173,217,86,214,173,211,23,210, +138,209,166,209,26,210,205,210,194,211,234,212,33,214,64,215,62,216,60,217,112,218,253,219,224,221,18,224,154,226,114,229, +92,232,1,235,80,237,137,239,251,241,208,244,24,248,199,251,154,255,54,3,118,6,126,9,120,12,96,15,13,18,89,20, +60,22,223,23,143,25,129,27,161,29,155,31,52,33,139,34,225,35,82,37,205,38,86,40,29,42,67,44,159,46,210,48, +147,50,226,51,207,52,65,53,10,53,43,52,221,50,96,49,222,47,126,46,95,45,110,44,99,43,244,41,0,40,152,37, +230,34,15,32,29,29,252,25,160,22,49,19,5,16,105,13,94,11,159,9,229,7,17,6,49,4,118,2,37,1,114,0, +80,0,119,0,163,0,180,0,169,0,152,0,168,0,229,0,31,1,22,1,198,0,102,0,25,0,204,255,88,255,190,254, +24,254,117,253,201,252,7,252,40,251,25,250,195,248,46,247,143,245,24,244,210,242,162,241,106,240,23,239,163,237,14,236, +110,234,4,233,39,232,247,231,59,232,173,232,71,233,35,234,71,235,192,236,192,238,108,241,158,244,18,248,146,251,224,254, +162,1,169,3,32,5,63,6,226,6,163,6,106,5,182,3,56,2,77,1,211,0,100,0,142,255,12,254,234,251,109,249, +195,246,7,244,134,241,190,239,215,238,92,238,137,237,211,235,50,233,254,229,148,226,28,223,172,219,136,216,31,214,193,212, +110,212,212,212,142,213,100,214,87,215,99,216,104,217,82,218,60,219,50,220,4,221,120,221,173,221,48,222,133,223,159,225, +245,227,27,230,30,232,71,234,177,236,82,239,45,242,78,245,175,248,53,252,184,255,1,3,229,5,87,8,102,10,56,12, +250,13,213,15,227,17,47,20,166,22,27,25,119,27,200,29,16,32,41,34,8,36,235,37,35,40,192,42,130,45,11,48, +24,50,158,51,185,52,115,53,189,53,146,53,18,53,84,52,80,51,252,49,111,48,210,46,41,45,69,43,2,41,114,38, +201,35,47,33,160,30,4,28,78,25,154,22,40,20,33,18,90,16,112,14,30,12,113,9,171,6,25,4,9,2,178,0, +15,0,207,255,137,255,231,254,196,253,72,252,222,250,243,249,156,249,175,249,18,250,206,250,194,251,134,252,191,252,100,252, +172,251,210,250,241,249,9,249,18,248,3,247,203,245,74,244,96,242,14,240,118,237,205,234,79,232,38,230,82,228,189,226, +127,225,223,224,33,225,78,226,60,228,155,230,19,233,116,235,224,237,154,240,183,243,248,246,13,250,208,252,64,255,89,1, +246,2,230,3,24,4,186,3,45,3,216,2,248,2,153,3,160,4,212,5,237,6,150,7,131,7,152,6,10,5,54,3, +106,1,205,255,108,254,56,253,250,251,117,250,140,248,84,246,232,243,69,241,81,238,9,235,166,231,128,228,214,225,175,223, +219,221,11,220,19,218,36,216,155,214,155,213,241,212,102,212,246,211,188,211,206,211,69,212,54,213,166,214,134,216,190,218, +44,221,173,223,69,226,26,229,67,232,174,235,60,239,200,242,46,246,106,249,170,252,27,0,179,3,69,7,193,10,52,14, +163,17,10,21,111,24,203,27,247,30,212,33,106,36,208,38,23,41,93,43,201,45,102,48,3,51,93,53,75,55,200,56, +210,57,81,58,32,58,65,57,229,55,74,54,145,52,197,50,230,48,237,46,208,44,131,42,245,39,28,37,7,34,215,30, +164,27,127,24,136,21,230,18,163,16,170,14,210,12,233,10,198,8,87,6,174,3,240,0,71,254,223,251,211,249,38,248, +199,246,162,245,183,244,13,244,160,243,94,243,58,243,50,243,49,243,17,243,199,242,121,242,93,242,151,242,51,243,42,244, +90,245,122,246,49,247,48,247,86,246,203,244,239,242,42,241,178,239,130,238,150,237,1,237,204,236,196,236,173,236,122,236, +71,236,34,236,5,236,253,235,61,236,12,237,170,238,33,241,50,244,130,247,217,250,51,254,155,1,1,5,50,8,225,10, +196,12,184,13,201,13,45,13,35,12,215,10,77,9,134,7,183,5,82,4,181,3,211,3,51,4,61,4,133,3,237,1, +170,255,45,253,227,250,252,248,121,247,74,246,64,245,22,244,173,242,13,241,15,239,83,236,172,232,111,228,66,224,171,220, +215,217,187,215,77,214,155,213,144,213,197,213,168,213,229,212,158,211,70,210,79,209,230,208,255,208,161,209,19,211,164,213, +91,217,232,221,225,226,247,231,3,237,228,241,113,246,154,250,148,254,177,2,19,7,156,11,32,16,140,20,211,24,206,28, +70,32,7,35,9,37,118,38,143,39,137,40,146,41,218,42,123,44,91,46,54,48,206,49,15,51,20,52,243,52,146,53, +163,53,229,52,107,51,145,49,183,47,250,45,58,44,67,42,246,39,69,37,61,34,25,31,50,28,184,25,126,23,17,21, +35,18,220,14,198,11,94,9,166,7,46,6,136,4,167,2,201,0,25,255,113,253,123,251,13,249,97,246,248,243,67,242, +109,241,82,241,125,241,99,241,188,240,176,239,152,238,182,237,58,237,86,237,21,238,65,239,141,240,196,241,197,242,123,243, +233,243,41,244,74,244,74,244,35,244,202,243,51,243,115,242,187,241,65,241,36,241,113,241,42,242,74,243,197,244,131,246, +98,248,77,250,78,252,133,254,252,0,153,3,30,6,78,8,35,10,203,11,84,13,120,14,209,14,48,14,184,12,198,10, +185,8,207,6,32,5,216,3,74,3,196,3,56,5,34,7,194,8,116,9,236,8,65,7,197,4,221,1,237,254,85,252, +72,250,175,248,51,247,118,245,64,243,103,240,191,236,68,232,89,227,167,222,180,218,172,215,107,213,180,211,87,210,43,209, +246,207,141,206,13,205,208,203,17,203,201,202,244,202,210,203,202,205,27,209,176,213,19,219,169,224,6,230,9,235,179,239, +11,244,42,248,59,252,110,0,210,4,70,9,145,13,139,17,35,21,60,24,181,26,145,28,22,30,163,31,136,33,232,35, +162,38,82,41,153,43,83,45,151,46,144,47,88,48,225,48,19,49,223,48,64,48,39,47,134,45,125,43,101,41,143,39, +252,37,106,36,154,34,137,32,90,30,46,28,251,25,170,23,70,21,255,18,247,16,23,15,33,13,1,11,240,8,30,7, +105,5,141,3,129,1,127,255,173,253,246,251,52,250,109,248,198,246,92,245,33,244,226,242,117,241,225,239,87,238,6,237, +254,235,55,235,172,234,104,234,105,234,144,234,201,234,51,235,240,235,227,236,203,237,131,238,38,239,247,239,23,241,107,242, +202,243,47,245,190,246,147,248,158,250,163,252,110,254,225,255,242,0,147,1,199,1,184,1,186,1,6,2,144,2,38,3, +175,3,73,4,42,5,113,6,254,7,139,9,228,10,6,12,0,13,214,13,131,14,20,15,157,15,11,16,48,16,233,15, +59,15,69,14,34,13,194,11,253,9,181,7,243,4,221,1,175,254,159,251,221,248,152,246,230,244,143,243,255,241,163,239, +100,236,165,232,209,228,16,225,109,221,35,218,145,215,236,213,249,212,47,212,42,211,231,209,150,208,105,207,138,206,54,206, +190,206,110,208,82,211,43,215,148,219,47,224,178,228,235,232,206,236,127,240,40,244,208,247,109,251,24,255,0,3,73,7, +222,11,113,16,168,20,118,24,23,28,200,31,118,35,198,38,105,41,93,43,222,44,19,46,235,46,64,47,23,47,162,46, +2,46,24,45,160,43,96,41,108,38,53,35,77,32,252,29,52,28,199,26,160,25,215,24,145,24,199,24,64,25,174,25, +203,25,111,25,154,24,81,23,109,21,177,18,51,15,124,11,36,8,110,5,72,3,127,1,208,255,4,254,15,252,250,249, +200,247,126,245,48,243,4,241,26,239,124,237,29,236,237,234,211,233,181,232,138,231,93,230,62,229,67,228,130,227,19,227, +32,227,221,227,101,229,174,231,143,234,210,237,80,241,233,244,116,248,202,251,210,254,130,1,203,3,160,5,241,6,179,7, +226,7,151,7,1,7,80,6,157,5,242,4,86,4,193,3,39,3,155,2,76,2,114,2,53,3,132,4,21,6,145,7, +212,8,239,9,250,10,225,11,124,12,189,12,175,12,78,12,128,11,47,10,107,8,120,6,160,4,233,2,33,1,45,255, +69,253,204,251,254,250,167,250,54,250,3,249,165,246,28,243,174,238,192,233,195,228,50,224,112,220,153,217,98,215,72,213, +252,210,174,208,196,206,108,205,134,204,243,203,241,203,15,205,179,207,187,211,151,216,168,221,157,226,145,231,206,236,120,242, +106,248,80,254,221,3,232,8,112,13,142,17,106,21,52,25,16,29,248,32,166,36,185,39,245,41,104,43,71,44,183,44, +170,44,0,44,198,42,76,41,231,39,194,38,216,37,255,36,2,36,191,34,63,33,168,31,34,30,177,28,66,27,198,25, +82,24,10,23,0,22,37,21,98,20,174,19,252,18,51,18,78,17,90,16,80,15,10,14,103,12,100,10,30,8,183,5, +69,3,212,0,106,254,252,251,110,249,163,246,149,243,93,240,35,237,26,234,124,231,104,229,189,227,75,226,4,225,2,224, +110,223,111,223,0,224,233,224,215,225,144,226,29,227,193,227,191,228,48,230,20,232,101,234,6,237,188,239,89,242,227,244, +121,247,17,250,118,252,149,254,173,0,20,3,217,5,175,8,59,11,110,13,91,15,228,16,190,17,190,17,0,17,213,15, +105,14,158,12,102,10,28,8,91,6,145,5,191,5,169,6,36,8,21,10,65,12,90,14,57,16,230,17,95,19,112,20, +194,20,38,20,187,18,184,16,42,14,232,10,218,6,52,2,115,253,9,249,46,245,2,242,175,239,69,238,139,237,7,237, +54,236,210,234,222,232,141,230,41,228,5,226,110,224,135,223,29,223,187,222,40,222,150,221,85,221,115,221,207,221,101,222, +138,223,202,225,112,229,77,234,202,239,39,245,201,249,107,253,32,0,51,2,246,3,157,5,67,7,10,9,15,11,91,13, +224,15,129,18,19,21,96,23,42,25,91,26,22,27,148,27,4,28,114,28,180,28,148,28,24,28,127,27,253,26,142,26, +6,26,50,25,6,24,164,22,50,21,183,19,55,18,219,16,228,15,98,15,9,15,127,14,182,13,221,12,13,12,30,11, +206,9,10,8,3,6,17,4,131,2,113,1,176,0,244,255,20,255,17,254,4,253,9,252,33,251,40,250,251,248,149,247, +24,246,178,244,140,243,179,242,35,242,211,241,199,241,11,242,147,242,55,243,224,243,155,244,100,245,20,246,143,246,238,246, +116,247,79,248,104,249,139,250,164,251,189,252,228,253,36,255,134,0,22,2,225,3,217,5,219,7,182,9,56,11,53,12, +155,12,130,12,38,12,193,11,80,11,167,10,164,9,57,8,116,6,138,4,182,2,254,0,59,255,80,253,62,251,23,249, +248,246,47,245,46,244,34,244,176,244,73,245,172,245,204,245,137,245,167,244,26,243,40,241,63,239,187,237,207,236,132,236, +190,236,81,237,248,237,104,238,133,238,112,238,57,238,196,237,23,237,132,236,104,236,191,236,23,237,21,237,210,236,169,236, +207,236,65,237,251,237,29,239,230,240,131,243,219,246,146,250,64,254,175,1,224,4,198,7,47,10,5,12,120,13,198,14, +11,16,76,17,144,18,230,19,78,21,172,22,216,23,179,24,45,25,75,25,54,25,37,25,61,25,101,25,95,25,24,25, +180,24,67,24,162,23,188,22,176,21,204,20,80,20,57,20,80,20,86,20,27,20,148,19,229,18,64,18,158,17,200,16, +151,15,33,14,160,12,43,11,162,9,215,7,195,5,140,3,102,1,105,255,126,253,127,251,99,249,79,247,132,245,41,244, +38,243,81,242,141,241,204,240,6,240,59,239,86,238,47,237,163,235,168,233,99,231,30,229,5,227,7,225,6,223,50,221, +24,220,89,220,54,222,113,225,140,229,29,234,252,238,58,244,199,249,63,255,26,4,253,7,216,10,193,12,209,13,34,14, +236,13,120,13,251,12,120,12,204,11,220,10,182,9,114,8,14,7,140,5,23,4,5,3,170,2,9,3,180,3,47,4, +108,4,165,4,215,4,160,4,178,3,54,2,169,0,92,255,79,254,125,253,12,253,19,253,87,253,95,253,214,252,210,251, +177,250,231,249,221,249,198,250,118,252,126,254,115,0,20,2,45,3,131,3,237,2,147,1,242,255,162,254,13,254,59,254, +215,254,124,255,5,0,159,0,162,1,72,3,124,5,5,8,167,10,33,13,46,15,158,16,97,17,124,17,253,16,236,15, +94,14,134,12,165,10,218,8,42,7,148,5,19,4,133,2,185,0,173,254,167,252,233,250,113,249,9,248,133,246,233,244, +102,243,44,242,77,241,191,240,112,240,89,240,141,240,35,241,23,242,80,243,174,244,10,246,80,247,137,248,224,249,132,251, +129,253,176,255,209,1,187,3,100,5,196,6,202,7,112,8,201,8,228,8,168,8,226,7,115,6,97,4,203,1,216,254, +173,251,123,248,133,245,2,243,5,241,158,239,2,239,112,239,212,240,165,242,53,244,46,245,169,245,243,245,92,246,12,247, +238,247,225,248,210,249,185,250,147,251,105,252,71,253,49,254,50,255,110,0,36,2,145,4,194,7,108,11,2,15,4,18, +86,20,49,22,186,23,222,24,134,25,195,25,183,25,115,25,250,24,85,24,162,23,14,23,187,22,178,22,213,22,248,22, +247,22,183,22,45,22,118,21,196,20,43,20,138,19,156,18,19,17,215,14,25,12,39,9,49,6,38,3,209,255,34,252, +82,248,190,244,182,241,89,239,130,237,214,235,243,233,173,231,38,229,171,226,139,224,255,222,47,222,42,222,227,222,32,224, +127,225,183,226,204,227,233,228,52,230,191,231,133,233,121,235,148,237,192,239,210,241,194,243,189,245,236,247,64,250,118,252, +67,254,114,255,246,255,236,255,133,255,226,254,22,254,72,253,149,252,228,251,18,251,14,250,192,248,250,246,180,244,71,242, +88,240,131,239,20,240,238,241,166,244,204,247,37,251,151,254,221,1,159,4,209,6,195,8,200,10,227,12,237,14,245,16, +78,19,26,22,16,25,188,27,210,29,68,31,48,32,197,32,46,33,148,33,12,34,135,34,224,34,235,34,128,34,152,33, +82,32,230,30,127,29,47,28,234,26,157,25,53,24,190,22,111,21,151,20,115,20,8,21,5,22,220,22,26,23,152,22, +66,21,9,19,1,16,96,12,90,8,22,4,204,255,199,251,53,248,234,244,141,241,6,238,152,234,139,231,230,228,122,226, +23,224,176,221,80,219,26,217,90,215,106,214,122,214,107,215,220,216,104,218,218,219,40,221,78,222,103,223,185,224,116,226, +115,228,88,230,240,231,111,233,59,235,139,237,56,240,222,242,21,245,179,246,227,247,230,248,197,249,75,250,68,250,198,249, +50,249,227,248,244,248,73,249,154,249,130,249,180,248,35,247,12,245,225,242,25,241,2,240,184,239,51,240,131,241,221,243, +79,247,114,251,135,255,226,2,64,5,219,6,44,8,181,9,212,11,160,14,225,17,53,21,58,24,176,26,142,28,221,29, +140,30,164,30,123,30,135,30,243,30,119,31,122,31,129,30,143,28,52,26,45,24,239,22,107,22,56,22,242,21,131,21, +21,21,222,20,246,20,98,21,33,22,29,23,46,24,47,25,236,25,13,26,69,25,138,23,21,21,51,18,24,15,232,11, +218,8,36,6,173,3,23,1,22,254,185,250,69,247,237,243,167,240,100,237,73,234,146,231,107,229,214,227,182,226,234,225, +82,225,196,224,30,224,112,223,7,223,70,223,101,224,62,226,126,228,241,230,152,233,115,236,100,239,79,242,67,245,81,248, +73,251,196,253,106,255,32,0,9,0,110,255,139,254,101,253,236,251,28,250,254,247,159,245,10,243,93,240,218,237,227,235, +209,234,222,234,16,236,43,238,180,240,25,243,241,244,51,246,45,247,64,248,148,249,30,251,193,252,133,254,148,0,21,3, +2,6,45,9,88,12,100,15,72,18,253,20,122,23,201,25,232,27,179,29,252,30,163,31,161,31,7,31,231,29,78,28, +97,26,116,24,236,22,25,22,14,22,154,22,102,23,37,24,176,24,19,25,128,25,51,26,67,27,147,28,222,29,223,30, +94,31,59,31,114,30,29,29,102,27,126,25,139,23,136,21,66,19,134,16,59,13,104,9,35,5,132,0,169,251,192,246, +248,241,105,237,15,233,221,228,220,224,46,221,228,217,220,214,236,211,25,209,152,206,186,204,203,203,224,203,213,204,91,206, +29,208,248,209,13,212,166,214,246,217,234,221,43,226,93,230,65,234,183,237,171,240,15,243,214,244,3,246,182,246,29,247, +77,247,45,247,161,246,188,245,190,244,216,243,31,243,173,242,138,242,159,242,203,242,1,243,53,243,74,243,42,243,225,242, +167,242,200,242,134,243,244,244,232,246,44,249,191,251,205,254,102,2,105,6,160,10,207,14,191,18,90,22,184,25,235,28, +190,31,219,33,55,35,40,36,6,37,223,37,134,38,202,38,172,38,100,38,62,38,86,38,117,38,71,38,167,37,172,36, +115,35,34,34,21,33,185,32,47,33,53,34,108,35,140,36,101,37,215,37,199,37,27,37,204,35,237,33,157,31,242,28, +0,26,235,22,167,19,223,15,61,11,208,5,251,255,50,250,222,244,76,240,160,236,199,233,126,231,110,229,61,227,188,224, +6,222,97,219,1,217,7,215,160,213,216,212,136,212,125,212,170,212,42,213,48,214,239,215,132,218,232,221,245,225,103,230, +223,234,220,238,229,241,196,243,146,244,162,244,106,244,80,244,118,244,161,244,88,244,60,243,69,241,193,238,50,236,31,234, +237,232,192,232,105,233,134,234,183,235,197,236,161,237,62,238,135,238,125,238,106,238,218,238,77,240,224,242,79,246,57,250, +58,254,253,1,89,5,90,8,39,11,238,13,200,16,159,19,61,22,143,24,197,26,28,29,141,31,217,33,207,35,108,37, +204,38,18,40,78,41,114,42,94,43,237,43,251,43,134,43,208,42,83,42,107,42,28,43,17,44,239,44,132,45,190,45, +151,45,9,45,30,44,238,42,136,41,219,39,187,37,253,34,144,31,123,27,200,22,127,17,195,11,229,5,76,0,80,251, +51,247,254,243,79,241,89,238,90,234,16,229,201,222,0,216,52,209,240,202,212,197,103,194,210,192,198,192,171,193,244,194, +83,196,172,197,36,199,19,201,206,203,70,207,11,211,163,214,210,217,135,220,183,222,82,224,91,225,1,226,152,226,91,227, +65,228,20,229,196,229,119,230,92,231,147,232,35,234,236,235,153,237,196,238,50,239,244,238,87,238,169,237,20,237,168,236, +149,236,62,237,253,238,251,241,67,246,202,251,78,2,63,9,231,15,190,21,164,26,208,30,130,34,217,37,224,40,149,43, +218,45,114,47,61,48,99,48,51,48,224,47,124,47,34,47,236,46,203,46,123,46,183,45,110,44,208,42,61,41,31,40, +188,39,31,40,46,41,195,42,163,44,116,46,232,47,225,48,105,49,138,49,47,49,47,48,88,46,138,43,182,39,236,34, +89,29,69,23,247,16,141,10,254,3,70,253,153,246,98,240,23,235,236,230,170,227,195,224,136,221,108,217,75,212,156,206, +86,201,117,197,140,195,177,195,174,197,6,201,245,204,164,208,138,211,153,213,49,215,209,216,210,218,68,221,4,224,224,226, +164,229,24,232,16,234,128,235,134,236,76,237,216,237,1,238,147,237,133,236,25,235,185,233,221,232,241,232,46,234,116,236, +79,239,44,242,137,244,30,246,0,247,126,247,210,247,13,248,58,248,135,248,44,249,90,250,58,252,224,254,37,2,168,5, +251,8,212,11,34,14,22,16,6,18,62,20,222,22,212,25,248,28,29,32,253,34,57,37,133,38,239,38,228,38,212,38, +237,38,40,39,113,39,184,39,233,39,237,39,188,39,125,39,133,39,30,40,59,41,121,42,119,43,30,44,145,44,244,44, +61,45,45,45,97,44,136,42,145,39,160,35,228,30,139,25,207,19,3,14,136,8,165,3,92,255,97,251,52,247,119,242, +50,237,205,231,158,226,148,221,75,216,108,210,251,203,101,197,106,191,205,186,247,183,221,182,50,183,158,184,207,186,143,189, +209,192,145,196,184,200,60,205,59,210,191,215,113,221,170,226,210,230,161,233,28,235,130,235,35,235,84,234,126,233,34,233, +164,233,28,235,104,237,83,240,149,243,171,246,244,248,4,250,221,249,222,248,130,247,43,246,30,245,137,244,131,244,24,245, +103,246,168,248,245,251,35,0,208,4,158,9,96,14,28,19,229,23,164,28,16,33,232,36,33,40,219,42,48,45,40,47, +187,48,216,49,111,50,130,50,32,50,104,49,128,48,138,47,139,46,110,45,50,44,10,43,85,42,112,42,134,43,106,45, +152,47,124,49,183,50,65,51,55,51,175,50,176,49,61,48,95,46,7,44,18,41,88,37,209,32,146,27,194,21,136,15, +8,9,94,2,172,251,55,245,92,239,88,234,19,230,35,226,30,222,199,217,23,213,62,208,152,203,146,199,132,196,173,194, +68,194,79,195,115,197,255,199,76,202,23,204,125,205,205,206,86,208,87,210,5,213,125,216,162,220,16,225,90,229,68,233, +186,236,167,239,238,241,141,243,156,244,42,245,52,245,192,244,246,243,19,243,60,242,109,241,143,240,162,239,183,238,216,237, +12,237,110,236,16,236,239,235,1,236,79,236,236,236,235,237,115,239,177,241,143,244,172,247,195,250,238,253,118,1,125,5, +232,9,136,14,42,19,164,23,200,27,109,31,115,34,220,36,211,38,150,40,79,42,246,43,91,45,89,46,243,46,80,47, +135,47,147,47,93,47,219,46,47,46,185,45,248,45,54,47,55,49,64,51,129,52,160,52,245,51,37,51,122,50,162,49, +5,48,54,45,23,41,219,35,238,29,191,23,129,17,28,11,107,4,132,253,194,246,118,240,161,234,12,229,167,223,157,218, +21,214,9,210,106,206,57,203,92,200,150,197,208,194,77,192,130,190,195,189,45,190,201,191,174,194,215,198,235,203,71,209, +78,214,174,218,64,222,223,224,135,226,147,227,149,228,237,229,122,231,209,232,168,233,24,234,120,234,25,235,8,236,10,237, +177,237,166,237,232,236,216,235,246,234,141,234,138,234,159,234,155,234,197,234,201,235,59,238,38,242,11,247,69,252,110,1, +131,6,176,11,250,16,36,22,227,26,13,31,152,34,147,37,50,40,163,42,215,44,166,46,50,48,226,49,2,52,137,54, +47,57,156,59,126,61,167,62,32,63,16,63,144,62,175,61,138,60,100,59,153,58,96,58,141,58,154,58,3,58,145,56, +84,54,132,51,111,48,95,45,102,42,67,39,158,35,74,31,73,26,161,20,80,14,124,7,129,0,215,249,232,243,235,238, +212,234,69,231,185,227,212,223,143,219,27,215,170,210,90,206,66,202,126,198,57,195,174,192,253,190,18,190,175,189,159,189, +225,189,168,190,65,192,230,194,154,198,21,203,220,207,102,212,75,216,101,219,199,221,153,223,238,224,198,225,51,226,85,226, +75,226,50,226,59,226,170,226,157,227,8,229,209,230,232,232,24,235,240,236,254,237,29,238,127,237,133,236,157,235,45,235, +128,235,175,236,172,238,108,241,1,245,123,249,164,254,253,3,17,9,197,13,79,18,234,22,171,27,130,32,69,37,190,41, +189,45,39,49,231,51,227,53,19,55,150,55,178,55,164,55,113,55,17,55,166,54,126,54,205,54,161,55,6,57,5,59, +104,61,177,63,113,65,127,66,223,66,144,66,126,65,129,63,114,60,79,56,61,51,97,45,202,38,152,31,16,24,114,16, +224,8,137,1,188,250,207,244,241,239,41,236,69,233,206,230,22,228,137,224,248,219,160,214,254,208,139,203,173,198,198,194, +48,192,37,191,143,191,253,192,204,194,114,196,176,197,132,198,7,199,94,199,193,199,109,200,129,201,243,202,153,204,72,206, +237,207,144,209,58,211,240,212,177,214,123,216,61,218,213,219,49,221,110,222,211,223,184,225,87,228,162,231,74,235,247,238, +93,242,69,245,162,247,184,249,227,251,81,254,249,0,221,3,36,7,5,11,155,15,209,20,78,26,163,31,148,36,44,41, +132,45,142,49,30,53,15,56,86,58,13,60,105,61,161,62,209,63,253,64,36,66,69,67,89,68,77,69,253,69,66,70, +9,70,99,69,115,68,93,67,53,66,8,65,233,63,232,62,240,61,208,60,90,59,105,57,200,54,48,51,109,46,112,40, +57,33,215,24,150,15,7,6,216,252,151,244,136,237,153,231,141,226,53,222,83,218,107,214,233,209,163,204,252,198,142,193, +206,188,238,184,232,181,139,179,168,177,53,176,81,175,42,175,231,175,153,177,53,180,177,183,19,188,54,193,147,198,112,203, +84,207,68,210,147,212,159,214,174,216,207,218,221,220,161,222,2,224,24,225,48,226,170,227,194,229,97,232,40,235,177,237, +195,239,81,241,129,242,149,243,200,244,39,246,161,247,43,249,232,250,32,253,44,0,56,4,24,9,94,14,168,19,197,24, +135,29,158,33,213,36,91,39,159,41,245,43,98,46,200,48,19,51,59,53,46,55,217,56,64,58,110,59,84,60,187,60, +120,60,162,59,133,58,108,57,115,56,147,55,216,54,107,54,103,54,181,54,21,55,53,55,201,54,179,53,25,52,43,50, +221,47,237,44,53,41,203,36,212,31,116,26,207,20,247,14,194,8,239,1,117,250,137,242,120,234,148,226,71,219,233,212, +149,207,30,203,39,199,89,195,155,191,52,188,148,185,14,184,203,183,218,184,47,187,123,190,54,194,197,197,160,200,126,202, +131,203,61,204,94,205,85,207,22,210,55,213,61,216,228,218,22,221,213,222,45,224,54,225,23,226,253,226,15,228,77,229, +151,230,210,231,0,233,37,234,58,235,85,236,177,237,133,239,220,241,169,244,234,247,150,251,134,255,132,3,96,7,253,10, +78,14,93,17,81,20,109,23,232,26,194,30,190,34,140,38,253,41,15,45,238,47,217,50,248,53,48,57,46,60,169,62, +129,64,188,65,123,66,1,67,142,67,61,68,253,68,175,69,67,70,175,70,212,70,128,70,143,69,10,68,36,66,4,64, +153,61,163,58,248,54,180,50,31,46,94,41,78,36,176,30,107,24,156,17,124,10,59,3,225,251,70,244,57,236,187,227, +31,219,224,210,95,203,191,196,253,190,22,186,19,182,10,179,7,177,7,176,233,175,112,176,70,177,28,178,199,178,96,179, +72,180,246,181,166,184,63,188,115,192,249,196,156,201,35,206,87,210,14,214,75,217,56,220,5,223,183,225,30,228,254,229, +74,231,43,232,207,232,72,233,157,233,250,233,178,234,13,236,10,238,106,240,240,242,144,245,92,248,87,251,89,254,51,1, +220,3,121,6,64,9,78,12,159,15,33,19,185,22,80,26,212,29,57,33,133,36,214,39,74,43,213,46,59,50,51,53, +143,55,71,57,111,58,47,59,184,59,39,60,148,60,28,61,223,61,219,62,227,63,186,64,45,65,32,65,131,64,88,63, +192,61,251,59,64,58,135,56,123,54,184,51,16,48,172,43,241,38,63,34,170,29,232,24,143,19,107,13,157,6,107,255, +253,247,86,240,117,232,143,224,19,217,128,210,43,205,40,201,83,198,112,196,64,195,135,194,16,194,177,193,81,193,235,192, +130,192,39,192,3,192,88,192,100,193,60,195,193,197,178,200,208,203,253,206,72,210,236,213,40,218,241,222,197,227,231,231, +219,234,163,236,134,237,188,237,107,237,204,236,55,236,6,236,111,236,99,237,144,238,152,239,93,240,1,241,188,241,176,242, +230,243,94,245,9,247,198,248,116,250,13,252,193,253,231,255,186,2,50,6,37,10,136,14,106,19,186,24,38,30,66,35, +174,39,42,43,176,45,152,47,112,49,173,51,111,54,136,57,165,60,121,63,227,65,240,67,178,69,17,71,236,71,56,72, +5,72,91,71,56,70,174,68,228,66,244,64,212,62,115,60,209,57,8,55,30,52,241,48,59,45,174,40,23,35,122,28, +8,21,243,12,69,4,12,251,156,241,133,232,57,224,202,216,8,210,208,203,51,198,97,193,137,189,195,186,15,185,72,184, +42,184,91,184,139,184,148,184,151,184,248,184,20,186,237,187,63,190,231,192,14,196,229,199,75,204,219,208,24,213,158,216, +70,219,48,221,154,222,149,223,19,224,46,224,37,224,38,224,55,224,94,224,183,224,98,225,124,226,28,228,75,230,242,232, +238,235,32,239,86,242,84,245,240,247,65,250,150,252,64,255,98,2,225,5,132,9,40,13,214,16,168,20,154,24,116,28, +247,31,18,35,229,37,163,40,113,43,102,46,125,49,126,52,21,55,44,57,14,59,53,61,242,63,62,67,191,70,247,73, +136,76,81,78,89,79,154,79,13,79,184,77,177,75,24,73,9,70,157,66,217,62,197,58,123,54,19,50,130,45,160,40, +92,35,191,29,198,23,84,17,73,10,158,2,102,250,198,241,244,232,33,224,119,215,56,207,211,199,199,193,79,189,56,186, +20,184,145,182,165,181,116,181,28,182,143,183,148,185,231,187,111,190,67,193,122,196,243,199,102,203,174,206,229,209,59,213, +191,216,82,220,187,223,202,226,109,229,158,231,68,233,62,234,148,234,138,234,104,234,78,234,62,234,60,234,86,234,149,234, +250,234,129,235,38,236,235,236,222,237,20,239,150,240,84,242,48,244,14,246,233,247,208,249,215,251,26,254,184,0,192,3, +39,7,206,10,177,14,232,18,139,23,142,28,181,33,175,38,63,43,86,47,10,51,106,54,132,57,109,60,57,63,239,65, +155,68,86,71,36,74,206,76,254,78,124,80,61,81,69,81,153,80,62,79,79,77,245,74,86,72,114,69,26,66,22,62, +63,57,135,51,250,44,198,37,68,30,207,22,143,15,107,8,33,1,122,249,108,241,35,233,232,224,243,216,84,209,13,202, +68,195,84,189,152,184,55,181,47,179,123,178,10,179,152,180,177,182,216,184,175,186,12,188,9,189,247,189,32,191,146,192, +62,194,53,196,169,198,182,201,65,205,26,209,30,213,70,217,139,221,198,225,161,229,181,232,185,234,176,235,237,235,225,235, +220,235,230,235,230,235,214,235,218,235,33,236,212,236,8,238,181,239,194,241,18,244,146,246,35,249,142,251,150,253,30,255, +64,0,80,1,185,2,207,4,190,7,142,11,42,16,97,21,247,26,195,32,189,38,231,44,21,51,231,56,238,61,252,65, +56,69,246,71,113,74,195,76,246,78,1,81,202,82,59,84,82,85,14,86,90,86,33,86,95,85,5,84,235,81,239,78, +23,75,125,70,55,65,89,59,10,53,103,46,115,39,33,32,124,24,167,16,195,8,217,0,230,248,234,240,211,232,136,224, +12,216,155,207,142,199,42,192,168,185,78,180,79,176,178,173,93,172,61,172,77,173,121,175,123,178,216,181,253,184,153,187, +218,189,58,192,18,195,111,198,67,202,133,206,9,211,118,215,118,219,223,222,169,225,229,227,186,229,92,231,252,232,180,234, +117,236,248,237,217,238,226,238,64,238,103,237,203,236,184,236,88,237,180,238,160,240,186,242,164,244,64,246,164,247,228,248, +249,249,221,250,166,251,127,252,147,253,1,255,236,0,134,3,245,6,33,11,172,15,63,20,196,24,75,29,207,33,77,38, +213,42,105,47,220,51,241,55,149,59,211,62,188,65,101,68,234,70,78,73,126,75,117,77,66,79,201,80,199,81,33,82, +251,81,113,81,107,80,194,78,110,76,101,73,134,69,183,64,21,59,215,52,32,46,247,38,88,31,68,23,189,14,208,5, +155,252,65,243,230,233,185,224,241,215,172,207,243,199,212,192,121,186,17,181,190,176,180,173,61,172,133,172,90,174,65,177, +176,180,55,184,152,187,194,190,171,193,51,196,83,198,81,200,153,202,92,205,116,208,186,211,50,215,226,218,155,222,11,226, +222,228,219,230,248,231,114,232,182,232,32,233,184,233,62,234,118,234,121,234,162,234,40,235,224,235,121,236,233,236,122,237, +118,238,225,239,128,241,37,243,208,244,147,246,102,248,32,250,186,251,108,253,157,255,173,2,208,6,4,12,22,18,180,24, +123,31,12,38,33,44,146,49,76,54,81,58,199,61,1,65,70,68,153,71,201,74,184,77,129,80,75,83,16,86,153,88, +161,90,248,91,126,92,25,92,191,90,137,88,170,85,78,82,111,78,222,73,108,68,5,62,186,54,177,46,10,38,229,28, +104,19,200,9,47,0,198,246,197,237,85,229,105,221,210,213,139,206,185,199,112,193,150,187,26,182,27,177,207,172,94,169, +224,166,101,165,233,164,97,165,188,166,207,168,96,171,74,174,167,177,171,181,109,186,215,191,199,197,23,204,141,210,199,216, +86,222,237,226,134,230,74,233,105,235,243,236,213,237,238,237,70,237,41,236,16,235,104,234,110,234,47,235,162,236,175,238, +39,241,188,243,33,246,40,248,204,249,27,251,34,252,242,252,173,253,119,254,115,255,195,0,128,2,179,4,92,7,148,10, +114,14,225,18,163,23,150,28,198,33,66,39,2,45,251,50,41,57,101,63,89,69,184,74,93,79,71,83,127,86,24,89, +41,91,196,92,244,93,184,94,255,94,174,94,173,93,228,91,47,89,99,85,122,80,164,74,39,68,49,61,210,53,8,46, +194,37,240,28,160,19,29,10,199,0,213,247,64,239,245,230,219,222,213,214,212,206,243,198,102,191,75,184,168,177,149,171, +90,166,92,162,1,160,141,159,243,160,210,163,181,167,67,172,53,177,58,182,1,187,90,191,76,195,15,199,247,202,67,207, +243,211,202,216,129,221,219,225,171,229,222,232,151,235,25,238,145,240,244,242,254,244,86,246,199,246,120,246,212,245,58,245, +195,244,108,244,90,244,200,244,200,245,43,247,169,248,4,250,3,251,120,251,109,251,49,251,49,251,198,251,14,253,241,254, +72,1,24,4,160,7,22,12,90,17,14,23,227,28,169,34,58,40,117,45,85,50,236,54,66,59,106,63,136,67,189,71, +9,76,85,80,132,84,95,88,155,91,5,94,154,95,94,96,54,96,245,94,143,92,40,89,252,84,56,80,226,74,210,68, +215,61,237,53,97,45,172,36,25,28,160,19,30,11,149,2,28,250,138,241,136,232,237,222,249,212,29,203,167,193,171,184, +54,176,124,168,227,161,218,156,155,153,50,152,176,152,61,155,208,159,243,165,202,172,123,179,127,185,178,190,39,195,242,198, +40,202,1,205,228,207,57,211,59,215,210,219,149,224,252,228,170,232,158,235,252,237,205,239,239,240,84,241,55,241,15,241, +64,241,202,241,81,242,123,242,63,242,200,241,57,241,155,240,18,240,243,239,144,240,250,241,237,243,17,246,43,248,52,250, +70,252,155,254,130,1,48,5,147,9,100,14,112,19,178,24,42,30,175,35,254,40,225,45,83,50,128,54,149,58,148,62, +107,66,45,70,39,74,168,78,187,83,32,89,112,94,65,99,64,103,63,106,36,108,203,108,7,108,178,105,191,101,73,96, +163,89,62,82,109,74,51,66,89,57,169,47,45,37,80,26,175,15,197,5,159,252,234,243,76,235,167,226,40,218,255,209, +27,202,62,194,90,186,196,178,238,171,11,166,27,161,65,157,216,154,46,154,73,155,227,157,141,161,218,165,128,170,87,175, +53,180,230,184,89,189,199,193,130,198,168,203,13,209,100,214,95,219,194,223,117,227,137,230,23,233,28,235,150,236,176,237, +182,238,192,239,164,240,51,241,117,241,160,241,233,241,115,242,76,243,116,244,227,245,140,247,86,249,13,251,130,252,175,253, +172,254,143,255,104,0,93,1,187,2,205,4,191,7,154,11,76,16,168,21,101,27,55,33,253,38,189,44,129,50,49,56, +169,61,231,66,19,72,70,77,103,82,61,87,166,91,161,95,55,99,107,102,42,105,55,107,41,108,157,107,125,105,6,102, +130,97,27,92,238,85,28,79,189,71,201,63,42,55,230,45,45,36,58,26,43,16,240,5,104,251,149,240,176,229,5,219, +205,208,43,199,62,190,32,182,205,174,34,168,248,161,94,156,167,151,63,148,102,146,28,146,84,147,14,150,54,154,121,159, +83,165,69,171,8,177,144,182,241,187,57,193,93,198,76,203,252,207,112,212,191,216,8,221,77,225,94,229,0,233,33,236, +217,238,67,241,96,243,34,245,128,246,130,247,64,248,210,248,70,249,158,249,236,249,80,250,234,250,203,251,232,252,39,254, +102,255,144,0,156,1,133,2,86,3,65,4,136,5,90,7,202,9,240,12,238,16,209,21,123,27,158,33,215,39,221,45, +154,51,38,57,141,62,192,67,177,72,92,77,181,81,160,85,6,89,239,91,111,94,159,96,148,98,86,100,201,101,177,102, +206,102,241,101,251,99,208,96,78,92,101,86,41,79,202,70,122,61,84,51,104,40,214,28,221,16,209,4,255,248,143,237, +126,226,194,215,118,205,207,195,250,186,16,179,40,172,98,166,199,161,58,158,136,155,137,153,35,152,71,151,16,151,221,151, +42,154,55,158,219,163,172,170,41,178,194,185,234,192,71,199,202,204,135,209,147,213,16,217,49,220,32,223,5,226,32,229, +176,232,169,236,190,240,150,244,230,247,92,250,187,251,29,252,222,251,74,251,129,250,153,249,166,248,179,247,210,246,51,246, +25,246,195,246,101,248,17,251,117,254,236,1,241,4,118,7,199,9,39,12,181,14,135,17,185,20,97,24,129,28,18,33, +15,38,136,43,157,49,101,56,190,63,71,71,111,78,168,84,160,89,90,93,26,96,57,98,1,100,161,101,20,103,30,104, +114,104,224,103,83,102,174,99,205,95,145,90,244,83,16,76,39,67,153,57,177,47,131,37,8,27,77,16,122,5,174,250, +1,240,159,229,182,219,75,210,54,201,98,192,254,183,91,176,180,169,29,164,144,159,245,155,42,153,21,151,181,149,46,149, +200,149,217,151,138,155,165,160,185,166,89,173,58,180,9,187,96,193,240,198,173,203,199,207,130,211,32,215,224,218,252,222, +140,227,96,232,12,237,47,241,162,244,84,247,33,249,237,249,213,249,48,249,79,248,104,247,163,246,30,246,221,245,213,245, +4,246,124,246,96,247,210,248,200,250,12,253,103,255,217,1,137,4,125,7,162,10,1,14,203,17,26,22,214,26,224,31, +61,37,1,43,44,49,152,55,247,61,253,67,147,73,218,78,235,83,180,88,41,93,98,97,111,101,27,105,15,108,48,110, +156,111,87,112,15,112,76,110,188,106,78,101,26,94,85,85,96,75,190,64,228,53,31,43,141,32,38,22,214,11,158,1, +165,247,34,238,41,229,158,220,86,212,54,204,53,196,85,188,150,180,254,172,172,165,233,158,16,153,97,148,254,144,10,143, +177,142,28,144,83,147,59,152,140,158,208,165,124,173,14,181,19,188,50,194,79,199,148,203,71,207,161,210,217,213,47,217, +209,220,179,224,160,228,96,232,210,235,225,238,123,241,148,243,43,245,81,246,31,247,177,247,28,248,105,248,163,248,234,248, +124,249,153,250,97,252,186,254,81,1,198,3,227,5,190,7,155,9,182,11,42,14,12,17,113,20,101,24,237,28,24,34, +244,39,111,46,78,53,70,60,250,66,0,73,6,78,24,82,160,85,19,89,172,92,86,96,209,99,208,102,24,105,145,106, +58,107,33,107,85,106,208,104,99,102,191,98,156,93,205,86,88,78,123,68,163,57,75,46,204,34,87,23,243,11,155,0, +99,245,143,234,114,224,47,215,172,206,187,198,47,191,211,183,125,176,60,169,115,162,160,156,33,152,12,149,49,147,82,146, +103,146,161,147,56,150,50,154,115,159,204,165,246,172,129,180,229,187,173,194,143,200,111,205,110,209,219,212,12,216,60,219, +133,222,237,225,113,229,249,232,97,236,138,239,92,242,181,244,107,246,109,247,224,247,15,248,65,248,173,248,128,249,216,250, +166,252,187,254,229,0,252,2,211,4,59,6,25,7,125,7,170,7,15,8,47,9,105,11,221,14,115,19,244,24,23,31, +135,37,246,43,55,50,74,56,60,62,246,67,57,73,206,77,176,81,7,85,5,88,220,90,183,93,169,96,152,99,71,102, +110,104,184,105,212,105,144,104,249,101,63,98,120,93,134,87,57,80,121,71,116,61,169,50,186,39,14,29,154,18,6,8, +24,253,227,241,177,230,209,219,123,209,202,199,185,190,54,182,81,174,75,167,105,161,187,156,31,153,100,150,115,148,95,147, +104,147,205,148,159,151,191,155,16,161,116,167,158,174,1,182,249,188,250,194,168,199,14,203,190,205,137,208,255,211,59,216, +20,221,52,226,20,231,59,235,123,238,235,240,149,242,119,243,184,243,173,243,174,243,27,244,85,245,108,247,220,249,224,251, +16,253,155,253,251,253,156,254,185,255,95,1,120,3,224,5,108,8,247,10,139,13,114,16,254,19,53,24,214,28,171,33, +177,38,5,44,185,49,196,55,237,61,199,67,238,72,61,77,204,80,195,83,107,86,54,89,127,92,56,96,244,99,48,103, +128,105,133,106,249,105,226,103,142,100,89,96,111,91,205,85,73,79,171,71,231,62,56,53,3,43,142,32,231,21,10,11, +2,0,247,244,47,234,236,223,82,214,98,205,17,197,74,189,228,181,202,174,46,168,113,162,194,157,24,154,121,151,18,150, +255,149,60,151,199,153,168,157,187,162,171,168,4,175,67,181,228,186,156,191,145,195,49,199,222,202,211,206,36,211,188,215, +89,220,202,224,248,228,206,232,37,236,237,238,49,241,245,242,39,244,202,244,248,244,200,244,88,244,229,243,171,243,187,243, +25,244,246,244,144,246,209,248,70,251,122,253,45,255,82,0,16,1,205,1,6,3,27,5,58,8,110,12,155,17,127,23, +217,29,150,36,184,43,25,51,99,58,70,65,166,71,145,77,19,83,29,88,142,92,93,96,179,99,204,102,174,105,16,108, +153,109,32,110,190,109,148,108,173,106,252,103,87,100,134,95,90,89,189,81,186,72,145,62,187,51,179,40,178,29,182,18, +206,7,52,253,25,243,119,233,45,224,18,215,253,205,224,196,238,187,126,179,199,171,218,164,211,158,229,153,35,150,125,147, +247,145,192,145,14,147,250,149,126,154,93,160,33,167,51,174,254,180,253,186,187,191,1,195,3,197,73,198,114,199,25,201, +183,203,126,207,51,212,81,217,89,222,251,226,10,231,100,234,255,236,242,238,97,240,103,241,21,242,112,242,134,242,131,242, +184,242,123,243,246,244,52,247,64,250,26,254,121,2,218,6,204,10,31,14,215,16,21,19,46,21,155,23,190,26,198,30, +193,35,173,41,99,48,145,55,221,62,14,70,250,76,128,83,111,89,142,94,179,98,250,101,187,104,67,107,146,109,103,111, +132,112,209,112,92,112,72,111,159,109,45,107,146,103,121,98,198,91,151,83,32,74,158,63,92,52,168,40,192,28,186,16, +150,4,114,248,161,236,127,225,60,215,223,205,107,197,232,189,81,183,116,177,244,171,107,166,166,160,212,154,115,149,19,145, +44,142,32,141,42,142,60,145,246,149,226,155,156,162,197,169,218,176,62,183,120,188,121,192,147,195,57,198,204,200,162,203, +2,207,16,211,174,215,153,220,149,225,110,230,232,234,202,238,242,241,86,244,242,245,210,246,33,247,39,247,62,247,174,247, +152,248,236,249,149,251,152,253,8,0,202,2,138,5,247,7,249,9,179,11,83,13,1,15,232,16,75,19,113,22,136,26, +144,31,104,37,247,43,51,51,243,58,200,66,48,74,230,80,239,86,98,92,66,97,148,101,102,105,180,108,95,111,79,113, +123,114,209,114,40,114,99,112,117,109,75,105,204,99,16,93,104,85,36,77,98,68,22,59,32,49,111,38,29,27,109,15, +174,3,33,248,3,237,136,226,171,216,41,207,199,197,158,188,4,180,79,172,176,165,44,160,168,155,20,152,131,149,8,148, +146,147,10,148,141,149,66,152,9,156,137,160,125,165,209,170,101,176,236,181,4,187,106,191,18,195,53,198,60,201,116,204, +248,207,203,211,245,215,106,220,5,225,139,229,178,233,28,237,135,239,17,241,45,242,67,243,110,244,153,245,185,246,226,247, +67,249,1,251,32,253,127,255,6,2,187,4,152,7,97,10,212,12,238,14,233,16,245,18,46,21,188,23,222,26,197,30, +124,35,248,40,31,47,174,53,61,60,120,66,62,72,146,77,120,82,234,86,235,90,142,94,252,97,89,101,157,104,138,107, +207,109,68,111,227,111,151,111,37,110,73,107,222,102,249,96,218,89,210,81,35,73,239,63,59,54,250,43,29,33,183,21, +2,10,64,254,135,242,193,230,226,218,22,207,189,195,65,185,244,175,231,167,237,160,187,154,47,149,135,144,66,141,211,139, +92,140,191,142,188,146,240,151,211,157,205,163,111,169,120,174,198,178,90,182,115,185,123,188,210,191,183,195,63,200,70,205, +114,210,87,215,174,219,96,223,121,226,39,229,163,231,5,234,54,236,17,238,140,239,177,240,148,241,93,242,77,243,180,244, +219,246,241,249,237,253,139,2,94,7,246,11,245,15,30,19,129,21,118,23,97,25,111,27,189,29,127,32,238,35,13,40, +177,44,183,49,15,55,139,60,221,65,202,70,77,75,137,79,149,83,112,87,5,91,57,94,3,97,115,99,174,101,205,103, +192,105,72,107,2,108,122,107,81,105,97,101,202,95,222,88,243,80,73,72,13,63,93,53,88,43,17,33,154,22,254,11, +67,1,95,246,63,235,232,223,150,212,174,201,131,191,62,182,226,173,103,166,193,159,236,153,248,148,9,145,74,142,243,140, +70,141,107,143,56,147,53,152,197,157,92,163,145,168,51,173,72,177,246,180,109,184,242,187,243,191,202,196,118,202,150,208, +195,214,200,220,137,226,229,231,178,236,216,240,76,244,10,247,22,249,121,250,63,251,136,251,162,251,244,251,202,252,52,254, +30,0,92,2,161,4,143,6,237,7,190,8,39,9,98,9,216,9,21,11,117,13,232,16,39,21,19,26,191,31,55,38, +66,45,113,52,66,59,85,65,133,70,236,74,173,78,227,81,174,84,63,87,200,89,88,92,232,94,103,97,198,99,228,101, +125,103,39,104,125,103,70,101,139,97,116,92,36,86,192,78,140,70,217,61,227,52,180,43,59,34,110,24,87,14,17,4, +187,249,105,239,33,229,236,218,236,208,85,199,97,190,69,182,35,175,3,169,224,163,198,159,226,156,92,155,42,155,20,156, +234,157,144,160,216,163,86,167,137,170,29,173,14,175,150,176,11,178,200,179,34,182,94,185,173,189,2,195,2,201,29,207, +219,212,17,218,214,222,76,227,107,231,1,235,234,237,56,240,36,242,212,243,81,245,176,246,54,248,52,250,229,252,91,0, +115,4,190,8,156,12,142,15,101,17,53,18,80,18,59,18,137,18,131,19,25,21,43,23,208,25,68,29,174,33,1,39, +243,44,10,51,210,56,32,62,1,67,127,71,144,75,72,79,223,82,121,86,19,90,154,93,252,96,8,100,104,102,211,103, +35,104,59,103,245,100,78,97,123,92,182,86,22,80,150,72,72,64,104,55,73,46,54,37,79,28,131,19,182,10,245,1, +103,249,9,241,146,232,161,223,255,213,189,203,43,193,204,182,63,173,5,165,101,158,105,153,253,149,22,148,176,147,205,148, +97,151,65,155,13,160,47,165,8,170,42,174,132,177,79,180,219,182,120,185,114,188,19,192,128,196,169,201,63,207,214,212, +4,218,123,222,22,226,210,228,185,230,220,231,108,232,196,232,76,233,65,234,179,235,179,237,92,240,178,243,134,247,151,251, +168,255,123,3,211,6,156,9,250,11,40,14,84,16,166,18,89,21,161,24,147,28,28,33,18,38,64,43,116,48,152,53, +155,58,86,63,169,67,169,71,152,75,153,79,150,83,107,87,17,91,141,94,218,97,220,100,104,103,74,105,88,106,127,106, +173,105,209,103,230,100,236,96,200,91,71,85,104,77,131,68,14,59,78,49,93,39,82,29,71,19,75,9,108,255,180,245, +23,236,116,226,200,216,58,207,246,197,12,189,155,180,223,172,25,166,122,160,46,156,85,153,245,151,245,151,52,153,142,155, +188,158,88,162,246,165,52,169,195,171,135,173,193,174,247,175,185,177,112,180,81,184,74,189,252,194,240,200,209,206,118,212, +194,217,158,222,254,226,224,230,55,234,239,236,255,238,122,240,145,241,158,242,17,244,55,246,23,249,117,252,1,0,119,3, +158,6,66,9,59,11,132,12,85,13,38,14,129,15,195,17,254,20,24,25,244,29,132,35,177,41,55,48,173,54,176,60, +25,66,253,70,131,75,188,79,142,83,210,86,122,89,172,91,161,93,141,95,138,97,148,99,117,101,197,102,26,103,59,102, +34,100,227,96,158,92,132,87,192,81,98,75,87,68,137,60,247,51,187,42,19,33,59,23,63,13,248,2,85,248,152,237, +40,227,65,217,213,207,183,198,196,189,255,180,167,172,58,165,70,159,37,155,214,152,35,152,200,152,150,154,97,157,211,160, +94,164,110,167,175,169,54,171,94,172,154,173,86,175,220,177,82,181,189,185,13,191,14,197,97,203,130,209,0,215,160,219, +111,223,162,226,97,229,169,231,93,233,121,234,37,235,153,235,14,236,211,236,89,238,254,240,200,244,82,249,0,254,91,2, +63,6,190,9,236,12,187,15,49,18,131,20,12,23,22,26,194,29,12,34,211,38,224,43,6,49,59,54,127,59,186,64, +197,69,131,74,234,78,225,82,69,86,18,89,103,91,107,93,35,95,133,96,145,97,93,98,2,99,118,99,126,99,187,98, +229,96,244,93,8,90,37,85,21,79,175,71,20,63,160,53,174,43,138,33,129,23,214,13,159,4,189,251,10,243,102,234, +180,225,205,216,152,207,24,198,114,188,249,178,48,170,173,162,213,156,177,152,15,150,179,148,116,148,74,149,57,151,64,154, +45,158,156,162,23,167,73,171,17,175,137,178,247,181,182,185,7,190,250,194,109,200,40,206,229,211,95,217,88,222,150,226, +225,229,25,232,102,233,48,234,223,234,144,235,40,236,167,236,76,237,103,238,20,240,53,242,157,244,50,247,222,249,134,252, +1,255,55,1,57,3,70,5,178,7,192,10,146,14,56,19,170,24,197,30,75,37,250,43,149,50,228,56,186,62,11,68, +245,72,162,77,45,82,148,86,191,90,152,94,18,98,35,101,177,103,164,105,3,107,249,107,156,108,200,108,50,108,138,106, +152,103,62,99,126,93,110,86,55,78,7,69,29,59,182,48,251,37,252,26,219,15,212,4,47,250,51,240,27,231,0,223, +180,215,191,208,150,201,233,193,217,185,232,177,172,170,140,164,167,159,250,155,135,153,101,152,184,152,145,154,194,157,212,161, +56,166,125,170,86,174,137,177,10,180,17,182,255,183,35,186,182,188,252,191,50,196,70,201,195,206,22,212,211,216,200,220, +243,223,119,226,141,228,100,230,33,232,245,233,13,236,118,238,33,241,0,244,25,247,111,250,247,253,152,1,51,5,162,8, +180,11,56,14,4,16,9,17,104,17,138,17,16,18,138,19,57,22,10,26,208,30,107,36,165,42,8,49,6,55,80,60, +5,65,128,69,14,74,207,78,177,83,115,88,194,92,100,96,84,99,189,101,215,103,198,105,115,107,150,108,225,108,35,108, +42,106,186,102,182,97,66,91,157,83,240,74,70,65,177,54,77,43,55,31,139,18,116,5,71,248,138,235,201,223,77,213, +239,203,95,195,104,187,245,179,233,172,52,166,252,159,151,154,103,150,191,147,206,146,141,147,205,149,95,153,20,158,142,163, +68,169,195,174,185,179,201,183,175,186,137,188,225,189,71,191,19,193,130,195,194,198,214,202,137,207,146,212,163,217,105,222, +158,226,39,230,2,233,44,235,189,236,1,238,75,239,198,240,128,242,150,244,40,247,62,250,201,253,176,1,189,5,163,9, +31,13,18,16,122,18,107,20,17,22,176,23,136,25,213,27,208,30,150,34,11,39,230,43,209,48,119,53,144,57,23,61, +109,64,36,68,141,72,134,77,159,82,88,87,85,91,113,94,196,96,125,98,192,99,166,100,76,101,191,101,209,101,16,101, +9,99,118,95,72,90,135,83,73,75,191,65,67,55,69,44,33,33,18,22,63,11,212,0,235,246,121,237,97,228,167,219, +107,211,173,203,35,196,103,188,82,180,39,172,112,164,176,157,58,152,52,148,205,145,66,145,175,146,232,149,152,154,108,160, +18,167,20,174,229,180,10,187,67,192,140,196,21,200,49,203,63,206,137,209,51,213,50,217,79,221,55,225,157,228,75,231, +33,233,31,234,99,234,51,234,232,233,219,233,68,234,52,235,155,236,107,238,156,240,51,243,58,246,174,249,94,253,243,0, +34,4,237,6,142,9,62,12,19,15,12,18,54,21,184,24,198,28,123,33,192,38,90,44,3,50,112,55,90,60,153,64, +68,68,169,71,14,75,148,78,48,82,188,85,253,88,186,91,202,93,38,95,229,95,44,96,25,96,171,95,205,94,96,93, +69,91,100,88,167,84,238,79,13,74,251,66,225,58,243,49,57,40,167,29,106,18,240,6,181,251,28,241,103,231,166,222, +152,214,208,206,253,198,16,191,45,183,134,175,80,168,195,161,24,156,159,151,179,148,164,147,149,148,110,151,216,155,74,161, +47,167,252,172,51,178,103,182,109,185,126,187,44,189,36,191,235,193,187,197,144,202,70,208,160,214,46,221,90,227,171,232, +244,236,58,240,139,242,10,244,250,244,172,245,87,246,15,247,208,247,149,248,113,249,153,250,39,252,244,253,174,255,33,1, +69,2,44,3,248,3,234,4,67,6,54,8,245,10,192,14,191,19,210,25,165,32,215,39,8,47,223,53,23,60,157,65, +141,70,25,75,104,79,124,83,52,87,102,90,3,93,17,95,156,96,170,97,47,98,26,98,121,97,116,96,35,95,99,93, +249,90,201,87,196,83,184,78,112,72,244,64,133,56,81,47,78,37,125,26,38,15,192,3,178,248,44,238,54,228,212,218, +25,210,36,202,13,195,204,188,62,183,56,178,163,173,126,169,235,165,42,163,122,161,244,160,146,161,77,163,35,166,234,169, +59,174,150,178,132,182,159,185,184,187,15,189,75,190,20,192,195,194,112,198,18,203,108,208,10,214,108,219,45,224,9,228, +224,230,216,232,65,234,96,235,97,236,114,237,175,238,1,240,48,241,58,242,103,243,6,245,45,247,188,249,112,252,7,255, +88,1,101,3,71,5,30,7,16,9,80,11,253,13,18,17,129,20,93,24,215,28,21,34,246,39,4,46,195,51,9,57, +9,62,8,67,25,72,34,77,0,82,147,86,180,90,65,94,63,97,218,99,57,102,69,104,166,105,248,105,252,104,171,102, +24,99,99,94,172,88,24,82,197,74,199,66,54,58,65,49,46,40,54,31,96,22,126,13,95,4,235,250,51,241,102,231, +200,221,122,212,102,203,107,194,161,185,74,177,163,169,229,162,101,157,97,153,224,150,232,149,185,150,135,153,4,158,130,163, +98,169,48,175,126,180,245,184,131,188,63,191,70,193,230,194,168,196,0,199,13,202,193,205,11,210,176,214,54,219,54,223, +150,226,113,229,222,231,238,233,184,235,66,237,125,238,98,239,254,239,123,240,51,241,164,242,29,245,127,248,89,252,45,0, +130,3,248,5,120,7,72,8,214,8,131,9,176,10,202,12,39,16,217,20,176,26,97,33,141,40,185,47,87,54,254,59, +171,64,196,68,205,72,13,77,124,81,233,85,15,90,157,93,104,96,148,98,116,100,47,102,147,103,67,104,1,104,210,102, +227,100,68,98,206,94,67,90,129,84,135,77,105,69,84,60,142,50,78,40,151,29,88,18,191,6,54,251,41,240,204,229, +25,220,229,210,243,201,12,193,31,184,95,175,58,167,42,160,133,154,108,150,230,147,235,146,95,147,28,149,13,152,68,156, +195,161,70,168,62,175,13,182,49,188,90,193,104,197,124,200,249,202,83,205,218,207,164,210,191,213,64,217,8,221,164,224, +132,227,114,229,155,230,76,231,178,231,242,231,77,232,20,233,116,234,90,236,137,238,213,240,74,243,26,246,91,249,235,252, +147,0,36,4,118,7,96,10,211,12,242,14,254,16,54,19,218,21,48,25,115,29,166,34,133,40,157,46,124,52,215,57, +167,62,17,67,59,71,50,75,234,78,96,82,150,85,149,88,106,91,24,94,134,96,127,98,226,99,175,100,240,100,140,100, +67,99,204,96,252,92,225,87,191,81,226,74,117,67,127,59,2,51,252,41,88,32,6,22,34,11,245,255,211,244,252,233, +148,223,163,213,31,204,7,195,129,186,200,178,6,172,78,166,155,161,221,157,6,155,50,153,172,152,193,153,138,156,217,160, +72,166,93,172,160,178,151,184,188,189,152,193,9,196,101,197,68,198,56,199,179,200,20,203,145,206,28,211,87,216,182,221, +181,226,7,231,159,234,139,237,202,239,79,241,34,242,111,242,111,242,81,242,48,242,43,242,127,242,129,243,105,245,56,248, +201,251,229,255,48,4,34,8,70,11,140,13,71,15,244,16,15,19,252,21,237,25,219,30,150,36,230,42,130,49,21,56, +77,62,244,67,242,72,85,77,91,81,62,85,248,88,71,92,244,94,252,96,113,98,86,99,168,99,112,99,198,98,177,97, +25,96,194,93,108,90,248,85,106,80,205,73,27,66,84,57,151,47,35,37,56,26,12,15,209,3,200,248,64,238,118,228, +118,219,13,211,236,202,216,194,204,186,239,178,118,171,156,164,174,158,7,154,243,150,158,149,31,150,133,152,204,156,177,162, +163,169,219,176,140,183,33,189,94,193,82,196,34,198,0,199,84,199,186,199,193,200,184,202,181,205,160,209,49,214,254,218, +165,223,224,227,110,231,31,234,255,235,87,237,121,238,145,239,197,240,63,242,15,244,28,246,87,248,211,250,173,253,229,0, +87,4,212,7,45,11,55,14,192,16,153,18,189,19,135,20,172,21,220,23,104,27,62,32,33,38,198,44,196,51,171,58, +37,65,4,71,32,76,90,80,195,83,168,86,95,89,9,92,145,94,211,96,177,98,2,100,148,100,70,100,17,99,247,96, +239,93,240,89,235,84,202,78,144,71,115,63,199,54,188,45,88,36,175,26,242,16,64,7,169,253,89,244,139,235,53,227, +15,219,245,210,23,203,171,195,183,188,38,182,238,175,11,170,139,164,185,159,7,156,182,153,209,152,96,153,136,155,79,159, +131,164,208,170,208,177,240,184,130,191,251,196,38,201,33,204,65,206,226,207,73,209,184,210,146,212,61,215,201,218,221,222, +12,227,8,231,134,234,40,237,191,238,127,239,213,239,35,240,174,240,182,241,95,243,160,245,81,248,92,251,199,254,140,2, +129,6,102,10,13,14,112,17,159,20,161,23,118,26,68,29,94,32,19,36,120,40,101,45,164,50,10,56,123,61,208,66, +194,71,247,75,59,79,171,81,148,83,57,85,187,86,57,88,206,89,79,91,79,92,117,92,211,91,178,90,49,89,44,87, +114,84,230,80,106,76,229,70,108,64,48,57,60,49,97,40,117,30,161,19,113,8,154,253,164,243,179,234,149,226,15,219, +2,212,87,205,231,198,153,192,116,186,137,180,209,174,57,169,220,163,32,159,152,155,183,153,147,153,241,154,134,157,32,161, +141,165,121,170,138,175,127,180,38,185,87,189,255,192,59,196,79,199,136,202,33,206,34,210,94,214,160,218,209,222,223,226, +142,230,164,233,39,236,73,238,25,240,125,241,109,242,21,243,185,243,152,244,233,245,218,247,131,250,223,253,184,1,178,5, +141,9,80,13,11,17,132,20,88,23,103,25,8,27,188,28,222,30,168,33,87,37,21,42,209,47,57,54,222,60,93,67, +107,73,209,78,91,83,220,86,64,89,153,90,23,91,254,90,145,90,5,90,104,89,159,88,132,87,5,86,41,84,233,81, +39,79,179,75,100,71,36,66,249,59,248,52,52,45,187,36,161,27,34,18,160,8,113,255,160,246,249,237,72,229,121,220, +162,211,236,202,134,194,138,186,12,179,50,172,61,166,127,161,71,158,191,156,218,156,93,158,18,161,222,164,139,169,179,174, +248,179,42,185,40,190,182,194,151,198,192,201,79,204,117,206,130,208,235,210,17,214,18,218,219,222,62,228,218,233,29,239, +124,243,175,246,162,248,78,249,220,248,211,247,223,246,108,246,154,246,116,247,17,249,100,251,54,254,58,1,55,4,31,7, +3,10,5,13,71,16,209,19,116,23,202,26,122,29,129,31,57,33,19,35,79,37,247,39,24,43,209,46,22,51,128,55, +131,59,195,62,66,65,48,67,190,68,13,70,75,71,170,72,66,74,247,75,127,77,131,78,174,78,193,77,163,75,113,72, +112,68,227,63,255,58,224,53,110,48,113,42,229,35,23,29,76,22,144,15,222,8,61,2,142,251,149,244,65,237,166,229, +178,221,47,213,65,204,129,195,125,187,109,180,133,174,51,170,185,167,237,166,132,167,67,169,197,171,131,174,80,177,105,180, +252,183,230,187,230,191,194,195,49,199,8,202,103,204,152,206,198,208,21,211,202,213,31,217,12,221,109,225,31,230,202,234, +224,238,255,241,26,244,49,245,76,245,178,244,219,243,36,243,191,242,219,242,137,243,151,244,193,245,23,247,245,248,140,251, +180,254,43,2,196,5,74,9,144,12,173,15,229,18,89,22,6,26,245,29,61,34,242,38,15,44,69,49,243,53,132,57, +235,59,152,61,253,62,62,64,91,65,120,66,225,67,206,69,60,72,238,74,141,77,195,79,89,81,53,82,62,82,87,81, +114,79,160,76,236,72,75,68,191,62,112,56,129,49,248,41,5,34,15,26,69,18,107,10,84,2,57,250,83,242,137,234, +197,226,64,219,71,212,218,205,187,199,201,193,51,188,76,183,80,179,55,176,202,173,2,172,71,171,10,172,39,174,249,176, +18,180,97,183,177,186,148,189,225,191,223,193,7,196,225,198,231,202,57,208,144,214,144,221,229,228,254,235,30,242,245,246, +196,250,206,253,236,255,250,0,56,1,6,1,139,0,200,255,212,254,226,253,59,253,37,253,175,253,162,254,184,255,224,0, +23,2,53,3,0,4,125,4,241,4,157,5,175,6,118,8,69,11,43,15,247,19,95,25,250,30,76,36,33,41,148,45, +199,49,192,53,143,57,63,61,172,64,156,67,231,69,121,71,55,72,9,72,2,71,109,69,146,67,123,65,15,63,75,60, +61,57,226,53,26,50,210,45,24,41,12,36,194,30,48,25,87,19,102,13,150,7,227,1,28,252,45,246,37,240,255,233, +170,227,87,221,127,215,120,210,57,206,128,202,18,199,197,195,155,192,178,189,32,187,244,184,111,183,228,182,88,183,118,184, +255,185,2,188,164,190,193,193,22,197,182,200,6,205,54,210,246,215,215,221,157,227,41,233,85,238,232,242,164,246,112,249, +117,251,220,252,151,253,157,253,51,253,191,252,127,252,132,252,194,252,10,253,22,253,187,252,7,252,41,251,93,250,232,249, +8,250,203,250,30,252,6,254,148,0,144,3,104,6,138,8,206,9,114,10,215,10,97,11,137,12,213,14,135,18,98,23, +203,28,14,34,180,38,175,42,61,46,157,49,234,52,34,56,12,59,81,61,227,62,11,64,243,64,103,65,37,65,51,64, +233,62,169,61,137,60,61,59,117,57,37,55,90,52,251,48,224,44,5,40,154,34,222,28,238,22,184,16,53,10,153,3, +48,253,30,247,80,241,186,235,142,230,46,226,202,222,46,220,5,218,57,216,233,214,12,214,94,213,166,212,224,211,26,211, +77,210,117,209,162,208,223,207,48,207,160,206,67,206,41,206,96,206,209,206,81,207,255,207,87,209,216,211,185,215,255,220, +140,227,247,234,150,242,169,249,128,255,141,3,115,5,11,5,112,2,241,253,231,247,182,240,29,233,58,226,17,221,40,218, +153,217,59,219,180,222,110,227,158,232,128,237,190,241,117,245,212,248,208,251,80,254,115,0,147,2,4,5,239,7,107,11, +150,15,142,20,69,26,125,32,208,38,201,44,234,49,201,53,75,56,198,57,186,58,135,59,128,60,11,62,109,64,123,67, +176,70,87,73,177,74,25,74,34,71,199,65,174,58,1,51,211,43,167,37,162,32,210,28,12,26,205,23,120,21,154,18, +4,15,186,10,228,5,178,0,53,251,75,245,206,238,226,231,228,224,32,218,203,211,52,206,189,201,172,198,29,197,0,197, +6,198,205,199,19,202,163,204,42,207,90,209,48,211,199,212,231,213,29,214,87,213,25,212,255,210,86,210,59,210,208,210, +42,212,78,214,37,217,123,220,23,224,208,227,121,231,208,234,169,237,233,239,114,241,55,242,101,242,88,242,107,242,226,242, +226,243,100,245,31,247,137,248,21,249,150,248,86,247,206,245,105,244,153,243,221,243,159,245,2,249,210,253,166,3,26,10, +203,16,64,23,18,29,50,34,241,38,151,43,42,48,150,52,229,56,32,61,18,65,101,68,240,70,199,72,19,74,8,75, +197,75,60,76,75,76,245,75,65,75,26,74,90,72,241,69,231,66,87,63,87,59,226,54,238,49,166,44,74,39,253,33, +184,28,109,23,26,18,211,12,156,7,71,2,165,252,196,246,193,240,129,234,223,227,20,221,185,214,91,209,36,205,12,202, +16,200,51,199,72,199,244,199,210,200,155,201,25,202,31,202,164,201,244,200,146,200,226,200,9,202,30,204,6,207,48,210, +220,212,169,214,134,215,97,215,65,214,132,212,180,210,59,209,75,208,13,208,180,208,78,210,143,212,16,215,172,217,130,220, +184,223,74,227,237,230,30,234,163,236,224,238,98,241,63,244,80,247,188,250,200,254,52,3,62,7,83,10,137,12,108,14, +128,16,9,19,41,22,15,26,240,30,178,36,201,42,160,48,245,53,180,58,178,62,193,65,245,67,160,69,22,71,116,72, +126,73,229,73,155,73,184,72,62,71,49,69,224,66,223,64,165,63,34,63,188,62,219,61,86,60,14,58,119,54,19,49, +47,42,169,34,29,27,160,19,43,12,1,5,151,254,32,249,103,244,27,240,36,236,141,232,79,229,65,226,66,223,76,220, +72,217,229,213,210,209,30,205,44,200,75,195,152,190,53,186,112,182,125,179,83,177,231,175,107,175,14,176,173,177,19,180, +81,183,163,187,49,193,9,200,242,207,64,216,14,224,173,230,163,235,163,238,191,239,114,239,66,238,112,236,32,234,161,231, +110,229,240,227,71,227,126,227,190,228,67,231,23,235,251,239,130,245,83,251,69,1,47,7,176,12,100,17,66,21,153,24, +187,27,209,30,217,33,207,36,203,39,243,42,60,46,84,49,237,51,247,53,145,55,226,56,10,58,71,59,220,60,205,62, +216,64,177,66,18,68,178,68,112,68,98,67,142,65,204,62,15,59,142,54,116,49,210,43,243,37,121,32,231,27,64,24, +94,21,87,19,76,18,229,17,131,17,197,16,120,15,51,13,117,9,21,4,122,253,107,246,170,239,164,233,125,228,104,224, +172,221,82,220,248,219,16,220,81,220,182,220,24,221,252,220,250,219,37,218,222,215,118,213,26,211,220,208,199,206,0,205, +179,203,198,202,233,201,20,201,177,200,37,201,120,202,143,204,112,207,29,211,107,215,31,220,20,225,7,230,122,234,10,238, +173,240,137,242,206,243,208,244,249,245,113,247,2,249,110,250,199,251,95,253,109,255,229,1,153,4,112,7,95,10,82,13, +24,16,78,18,146,19,215,19,106,19,140,18,74,17,193,15,60,14,23,13,152,12,211,12,194,13,100,15,204,17,255,20, +232,24,101,29,63,34,25,39,135,43,33,47,143,49,156,50,57,50,113,48,124,45,201,41,240,37,118,34,166,31,137,29, +254,27,214,26,190,25,90,24,142,22,141,20,131,18,110,16,89,14,132,12,39,11,35,10,20,9,156,7,138,5,206,2, +120,255,185,251,199,247,201,243,16,240,30,237,70,235,99,234,24,234,38,234,109,234,188,234,209,234,109,234,110,233,191,231, +74,229,22,226,111,222,188,218,92,215,144,212,119,210,41,209,223,208,223,209,46,212,143,215,195,219,156,224,225,229,67,235, +81,240,139,244,170,247,171,249,162,250,180,250,69,250,207,249,142,249,145,249,242,249,180,250,152,251,66,252,145,252,171,252, +171,252,126,252,25,252,165,251,101,251,129,251,247,251,178,252,184,253,47,255,36,1,89,3,106,5,29,7,114,8,111,9, +1,10,52,10,126,10,122,11,90,13,231,15,246,18,133,22,111,26,110,30,79,34,217,37,183,40,164,42,130,43,73,43, +10,42,221,39,208,36,20,33,40,29,159,25,186,22,99,20,117,18,248,16,21,16,202,15,182,15,91,15,118,14,245,12, +192,10,216,7,139,4,60,1,30,254,68,251,221,248,49,247,124,246,210,246,17,248,194,249,86,251,116,252,238,252,146,252, +73,251,65,249,197,246,19,244,101,241,242,238,208,236,23,235,34,234,106,234,19,236,180,238,160,241,81,244,117,246,191,247, +241,247,24,247,139,245,161,243,160,241,224,239,168,238,17,238,23,238,140,238,14,239,99,239,211,239,194,240,22,242,86,243, +57,244,185,244,198,244,60,244,19,243,117,241,179,239,40,238,47,237,247,236,111,237,97,238,159,239,18,241,176,242,128,244, +131,246,167,248,213,250,11,253,75,255,134,1,154,3,103,5,229,6,45,8,118,9,35,11,150,13,225,16,162,20,94,24, +217,27,202,30,134,32,116,32,176,30,240,27,216,24,151,21,37,18,181,14,165,11,45,9,81,7,10,6,66,5,209,4, +123,4,238,3,230,2,150,1,137,0,0,0,208,255,248,255,225,0,210,2,127,5,98,8,68,11,46,14,228,16,197,18, +112,19,19,19,7,18,112,16,98,14,21,12,220,9,30,8,59,7,95,7,95,8,241,9,208,11,166,13,214,14,195,14, +63,13,154,10,73,7,152,3,180,255,214,251,105,248,225,245,108,244,230,243,24,244,227,244,39,246,164,247,255,248,177,249, +48,249,64,247,2,244,206,239,50,235,212,230,53,227,185,224,166,223,231,223,19,225,211,226,13,229,156,231,30,234,10,236, +250,236,224,236,246,235,116,234,155,232,13,231,153,230,157,231,210,233,192,236,29,240,200,243,120,247,162,250,186,252,145,253, +123,253,228,252,223,251,81,250,132,248,21,247,98,246,99,246,5,247,72,248,38,250,113,252,203,254,185,0,242,1,160,2, +39,3,196,3,151,4,235,5,34,8,92,11,97,15,184,19,226,23,122,27,39,30,155,31,211,31,41,31,36,30,55,29, +161,28,105,28,168,28,185,29,200,31,79,34,142,36,84,38,223,39,39,41,205,41,160,41,171,40,246,38,116,36,86,33, +21,30,4,27,36,24,84,21,91,18,209,14,111,10,92,5,35,0,91,251,78,247,199,243,84,240,183,236,245,232,28,229, +33,225,3,221,254,216,152,213,84,211,88,210,119,210,144,211,145,213,59,216,42,219,254,221,116,224,116,226,27,228,127,229, +143,230,49,231,89,231,29,231,196,230,182,230,67,231,141,232,145,234,43,237,8,240,187,242,249,244,180,246,253,247,243,248, +205,249,207,250,23,252,148,253,20,255,83,0,12,1,29,1,140,0,153,255,193,254,117,254,216,254,231,255,180,1,50,4, +19,7,1,10,198,12,86,15,193,17,24,20,74,22,56,24,184,25,164,26,245,26,197,26,81,26,226,25,188,25,9,26, +234,26,98,28,35,30,171,31,164,32,32,33,111,33,221,33,142,34,88,35,231,35,27,36,243,35,22,35,250,32,116,29, +219,24,184,19,146,14,228,9,26,6,82,3,35,1,236,254,103,252,209,249,118,247,81,245,49,243,252,240,211,238,13,237, +230,235,64,235,216,234,134,234,34,234,149,233,10,233,196,232,239,232,177,233,33,235,21,237,61,239,94,241,95,243,53,245, +210,246,24,248,248,248,135,249,213,249,196,249,96,249,11,249,8,249,53,249,102,249,155,249,217,249,35,250,122,250,188,250, +210,250,206,250,216,250,4,251,49,251,20,251,146,250,234,249,72,249,142,248,155,247,130,246,130,245,245,244,10,245,123,245, +229,245,68,246,206,246,128,247,50,248,252,248,56,250,26,252,98,254,143,0,72,2,109,3,223,3,156,3,204,2,134,1, +186,255,124,253,41,251,68,249,76,248,148,248,26,250,115,252,22,255,179,1,38,4,70,6,228,7,221,8,49,9,27,9, +243,8,15,9,202,9,119,11,18,14,34,17,242,19,245,21,229,22,194,22,197,21,15,20,110,17,200,13,154,9,146,5, +237,1,141,254,102,251,173,248,189,246,209,245,201,245,67,246,206,246,23,247,220,246,219,245,238,243,57,241,67,238,166,235, +193,233,194,232,244,232,148,234,105,237,239,240,185,244,96,248,80,251,36,253,4,254,93,254,125,254,159,254,224,254,8,255, +224,254,149,254,96,254,21,254,115,253,149,252,215,251,104,251,59,251,87,251,235,251,250,252,70,254,151,255,225,0,62,2, +229,3,3,6,163,8,186,11,7,15,29,18,150,20,53,22,2,23,69,23,59,23,197,22,150,21,154,19,5,17,44,14, +108,11,18,9,76,7,62,6,1,6,120,6,51,7,183,7,189,7,76,7,143,6,149,5,88,4,239,2,182,1,46,1, +195,1,114,3,205,5,94,8,240,10,129,13,1,16,49,18,221,19,5,21,157,21,88,21,1,20,178,17,155,14,210,10, +117,6,192,1,243,252,112,248,210,244,122,242,48,241,123,240,32,240,23,240,113,240,71,241,116,242,142,243,103,244,40,245, +182,245,113,245,226,243,65,241,4,238,86,234,111,230,254,226,228,224,194,224,169,226,17,230,77,234,37,239,198,244,30,251, +128,1,14,7,84,11,123,14,218,16,123,18,32,19,170,18,83,17,168,15,64,14,86,13,216,12,212,12,106,13,102,14, +83,15,201,15,125,15,91,14,152,12,145,10,172,8,76,7,148,6,82,6,53,6,244,5,74,5,227,3,110,1,7,254, +89,250,32,247,183,244,70,243,225,242,95,243,112,244,229,245,164,247,123,249,46,251,144,252,99,253,118,253,203,252,92,251, +251,248,190,245,63,242,47,239,255,236,250,235,106,236,58,238,190,240,71,243,202,245,143,248,135,251,105,254,11,1,54,3, +129,4,166,4,165,3,139,1,121,254,212,250,14,247,70,243,122,239,234,235,63,233,28,232,148,232,73,234,231,236,18,240, +19,243,42,245,27,246,61,246,45,246,82,246,146,246,212,246,101,247,190,248,24,251,113,254,166,2,134,7,214,12,89,18, +199,23,200,28,246,32,6,36,234,37,194,38,181,38,233,37,142,36,188,34,102,32,101,29,100,25,13,20,130,13,84,6, +238,254,138,247,167,240,238,234,180,230,242,227,161,226,217,226,148,228,130,231,24,235,168,238,153,241,204,243,153,245,44,247, +49,248,66,248,149,247,227,246,161,246,138,246,22,246,48,245,92,244,68,244,22,245,125,246,11,248,134,249,193,250,123,251, +111,251,162,250,131,249,181,248,183,248,181,249,163,251,121,254,57,2,194,6,189,11,190,16,91,21,87,25,216,28,51,32, +121,35,74,38,68,40,97,41,190,41,70,41,236,39,227,37,100,35,112,32,213,28,86,24,227,18,211,12,220,6,183,1, +165,253,128,250,59,248,224,246,95,246,171,246,210,247,171,249,187,251,155,253,54,255,153,0,191,1,141,2,207,2,90,2, +92,1,66,0,65,255,79,254,142,253,96,253,16,254,132,255,47,1,78,2,58,2,170,0,210,253,83,250,214,246,159,243, +161,240,210,237,73,235,46,233,196,231,110,231,102,232,146,234,174,237,111,241,116,245,84,249,186,252,107,255,75,1,106,2, +37,3,3,4,90,5,54,7,148,9,64,12,183,14,141,16,198,17,179,18,169,19,204,20,234,21,123,22,251,21,87,20, +25,18,9,16,176,14,12,14,179,13,52,13,96,12,53,11,167,9,146,7,241,4,28,2,124,255,249,252,32,250,224,246, +159,243,160,240,215,237,73,235,38,233,143,231,139,230,6,230,190,229,136,229,123,229,171,229,236,229,7,230,205,229,18,229, +225,227,105,226,218,224,136,223,240,222,129,223,86,225,7,228,216,230,43,233,172,234,48,235,177,234,90,233,147,231,230,229, +193,228,91,228,218,228,134,230,164,233,40,238,171,243,191,249,248,255,173,5,41,10,32,13,173,14,47,15,76,15,157,15, +73,16,36,17,17,18,1,19,218,19,126,20,221,20,10,21,60,21,107,21,27,21,244,19,57,18,104,16,208,14,161,13, +230,12,137,12,111,12,108,12,96,12,132,12,44,13,84,14,201,15,123,17,106,19,115,21,85,23,219,24,240,25,140,26, +195,26,199,26,172,26,59,26,50,25,119,23,21,21,23,18,140,14,166,10,187,6,30,3,235,255,20,253,166,250,201,248, +103,247,22,246,149,244,5,243,147,241,97,240,154,239,115,239,248,239,249,240,2,242,162,242,172,242,63,242,163,241,68,241, +155,241,230,242,248,244,108,247,220,249,246,251,138,253,124,254,192,254,121,254,242,253,102,253,243,252,122,252,139,251,208,249, +128,247,74,245,244,243,235,243,33,245,110,247,186,250,180,254,203,2,148,6,241,9,245,12,198,15,124,18,250,20,8,23, +147,24,212,25,254,26,237,27,79,28,27,28,131,27,150,26,32,25,7,23,125,20,184,17,159,14,28,11,153,7,207,4, +20,3,29,2,107,1,163,0,140,255,26,254,96,252,110,250,71,248,0,246,226,243,89,242,151,241,124,241,242,241,13,243, +188,244,176,246,165,248,146,250,157,252,195,254,173,0,246,1,105,2,4,2,1,1,185,255,91,254,4,253,244,251,99,251, +99,251,244,251,6,253,106,254,195,255,126,0,43,0,209,254,234,252,252,250,83,249,246,247,212,246,252,245,149,245,147,245, +172,245,176,245,183,245,212,245,230,245,229,245,9,246,119,246,237,246,255,246,166,246,31,246,117,245,156,244,194,243,5,243, +54,242,33,241,213,239,116,238,14,237,170,235,103,234,95,233,139,232,239,231,185,231,36,232,82,233,71,235,233,237,16,241, +151,244,88,248,24,252,136,255,119,2,228,4,209,6,45,8,10,9,151,9,0,10,96,10,176,10,217,10,245,10,83,11, +40,12,83,13,109,14,35,15,111,15,99,15,239,14,39,14,93,13,210,12,136,12,102,12,64,12,220,11,52,11,112,10, +173,9,241,8,87,8,1,8,9,8,135,8,97,9,68,10,238,10,97,11,206,11,97,12,253,12,76,13,45,13,202,12, +70,12,158,11,199,10,191,9,118,8,210,6,211,4,175,2,168,0,206,254,241,252,203,250,60,248,105,245,145,242,230,239, +131,237,82,235,48,233,38,231,79,229,185,227,149,226,65,226,245,226,135,228,164,230,35,233,10,236,61,239,122,242,162,245, +189,248,188,251,121,254,233,0,42,3,82,5,90,7,59,9,246,10,128,12,212,13,15,15,85,16,153,17,157,18,53,19, +96,19,38,19,148,18,194,17,166,16,25,15,46,13,52,11,112,9,10,8,48,7,24,7,205,7,18,9,158,10,91,12, +40,14,167,15,141,16,232,16,244,16,211,16,137,16,27,16,121,15,117,14,247,12,6,11,148,8,170,5,164,2,242,255, +175,253,164,251,166,249,214,247,125,246,187,245,95,245,45,245,56,245,205,245,234,246,46,248,87,249,134,250,246,251,155,253, +27,255,81,0,142,1,42,3,27,5,249,6,59,8,143,8,47,8,130,7,134,6,250,4,215,2,82,0,130,253,58,250, +95,246,42,242,17,238,130,234,199,231,238,229,213,228,112,228,236,228,134,230,72,233,23,237,227,241,142,247,173,253,184,3, +70,9,255,13,155,17,239,19,247,20,215,20,213,19,57,18,83,16,106,14,167,12,80,11,174,10,196,10,104,11,122,12, +195,13,240,14,206,15,84,16,105,16,185,15,206,13,127,10,32,6,59,1,97,252,12,248,123,244,162,241,108,239,245,237, +89,237,116,237,253,237,194,238,164,239,132,240,87,241,12,242,86,242,221,241,144,240,167,238,82,236,147,233,123,230,95,227, +163,224,132,222,24,221,87,220,41,220,128,220,80,221,117,222,202,223,88,225,75,227,176,229,67,232,172,234,202,236,157,238, +22,240,62,241,88,242,139,243,149,244,54,245,167,245,108,246,234,247,92,250,215,253,58,2,48,7,92,12,100,17,0,22, +252,25,50,29,129,31,196,32,242,32,53,32,196,30,178,28,10,26,11,23,42,20,218,17,97,16,225,15,93,16,176,17, +159,19,253,21,161,24,69,27,151,29,90,31,131,32,12,33,200,32,160,31,218,29,4,28,148,26,168,25,40,25,8,25, +108,25,109,26,235,27,143,29,237,30,149,31,25,31,53,29,233,25,89,21,193,15,111,9,174,2,211,251,56,245,14,239, +103,233,117,228,122,224,154,221,237,219,109,219,227,219,29,221,30,223,241,225,116,229,90,233,78,237,21,241,153,244,211,247, +211,250,168,253,45,0,17,2,48,3,175,3,179,3,76,3,158,2,235,1,83,1,201,0,47,0,150,255,76,255,142,255, +65,0,30,1,229,1,115,2,189,2,189,2,99,2,163,1,149,0,105,255,58,254,240,252,116,251,220,249,88,248,48,247, +220,246,219,247,76,250,223,253,248,1,250,5,86,9,148,11,128,12,86,12,99,11,205,9,203,7,210,5,69,4,52,3, +137,2,49,2,253,1,186,1,148,1,241,1,239,2,94,4,22,6,238,7,154,9,157,10,137,10,71,9,9,7,39,4, +54,1,220,254,97,253,173,252,144,252,173,252,142,252,4,252,58,251,109,250,185,249,47,249,12,249,117,249,27,250,83,250, +153,249,200,247,34,245,41,242,86,239,230,236,204,234,202,232,187,230,160,228,155,226,229,224,186,223,60,223,142,223,215,224, +23,227,34,230,190,233,177,237,201,241,216,245,192,249,113,253,211,0,164,3,134,5,35,6,106,5,172,3,104,1,6,255, +203,252,226,250,111,249,138,248,22,248,194,247,83,247,209,246,81,246,207,245,44,245,77,244,51,243,217,241,35,240,32,238, +51,236,206,234,48,234,107,234,134,235,151,237,156,240,108,244,196,248,82,253,193,1,232,5,196,9,91,13,153,16,83,19, +68,21,67,22,116,22,64,22,19,22,32,22,85,22,135,22,159,22,187,22,9,23,144,23,40,24,168,24,241,24,228,24, +107,24,125,23,22,22,47,20,220,17,80,15,210,12,188,10,109,9,23,9,150,9,126,10,96,11,253,11,87,12,137,12, +186,12,19,13,164,13,71,14,198,14,237,14,144,14,146,13,246,11,206,9,42,7,60,4,76,1,151,254,69,252,116,250, +38,249,75,248,228,247,235,247,64,248,199,248,135,249,141,250,202,251,26,253,105,254,230,255,193,1,213,3,219,5,191,7, +151,9,102,11,8,13,78,14,30,15,132,15,172,15,190,15,196,15,158,15,10,15,188,13,144,11,152,8,3,5,17,1, +22,253,95,249,16,246,78,243,114,241,226,240,197,241,234,243,8,247,240,250,131,255,142,4,180,9,110,14,16,18,28,20, +118,20,71,19,189,16,58,13,121,9,71,6,44,4,110,3,19,4,192,5,209,7,187,9,84,11,190,12,34,14,125,15, +154,16,40,17,235,16,234,15,76,14,45,12,168,9,224,6,236,3,226,0,253,253,164,251,45,250,146,249,112,249,47,249, +64,248,103,246,192,243,154,240,89,237,103,234,3,232,13,230,20,228,137,225,34,222,5,218,194,213,18,210,129,207,88,206, +171,206,72,208,161,210,10,213,254,214,70,216,16,217,207,217,237,218,141,220,121,222,73,224,184,225,185,226,106,227,20,228, +255,228,66,230,244,231,73,234,72,237,176,240,24,244,52,247,18,250,254,252,40,0,128,3,197,6,159,9,183,11,151,12, +216,11,122,9,246,5,239,1,253,253,142,250,232,247,86,246,12,246,3,247,7,249,180,251,128,254,240,0,211,2,106,4, +76,6,230,8,17,12,50,15,177,17,71,19,235,19,162,19,145,18,41,17,26,16,15,16,78,17,117,19,208,21,223,23, +111,25,98,26,145,26,214,25,51,24,209,21,194,18,252,14,154,10,222,5,13,1,73,252,163,247,94,243,251,239,228,237, +55,237,217,237,121,239,146,241,150,243,3,245,153,245,150,245,144,245,5,246,31,247,192,248,163,250,151,252,140,254,135,0, +142,2,161,4,175,6,171,8,181,10,10,13,185,15,127,18,216,20,66,22,149,22,6,22,222,20,108,19,22,18,57,17, +2,17,116,17,114,18,206,19,66,21,128,22,113,23,108,24,224,25,246,27,151,30,150,33,152,36,49,39,51,41,214,42, +90,44,179,45,140,46,137,46,135,45,163,43,30,41,65,38,56,35,0,32,145,28,254,24,120,21,55,18,85,15,178,12, +16,10,69,7,59,4,1,1,231,253,75,251,90,249,2,248,253,246,242,245,163,244,11,243,102,241,38,240,168,239,245,239, +184,240,90,241,95,241,182,240,150,239,58,238,195,236,56,235,145,233,191,231,177,229,87,227,188,224,6,222,83,219,200,216, +147,214,228,212,247,211,10,212,28,213,201,214,172,216,155,218,167,220,237,222,86,225,132,227,51,229,145,230,24,232,61,234, +67,237,5,241,6,245,224,248,134,252,27,0,158,3,225,6,189,9,33,12,234,13,253,14,108,15,81,15,186,14,204,13, +176,12,79,11,110,9,249,6,33,4,36,1,41,254,88,251,238,248,48,247,70,246,53,246,248,246,119,248,129,250,232,252, +144,255,76,2,212,4,241,6,134,8,141,9,14,10,246,9,48,9,222,7,50,6,79,4,83,2,68,0,14,254,210,251, +206,249,32,248,210,246,219,245,19,245,79,244,113,243,130,242,179,241,16,241,103,240,147,239,163,238,169,237,178,236,206,235, +42,235,0,235,121,235,181,236,219,238,219,241,90,245,236,248,42,252,167,254,26,0,133,0,42,0,107,255,169,254,33,254, +209,253,142,253,66,253,255,252,225,252,2,253,105,253,34,254,93,255,61,1,137,3,226,5,4,8,174,9,207,10,150,11, +48,12,184,12,63,13,166,13,207,13,242,13,94,14,47,15,89,16,197,17,116,19,127,21,236,23,154,26,91,29,255,31, +85,34,75,36,241,37,64,39,16,40,76,40,251,39,17,39,118,37,57,35,127,32,109,29,32,26,162,22,253,18,81,15, +207,11,154,8,218,5,185,3,61,2,59,1,139,0,32,0,248,255,21,0,112,0,243,0,134,1,54,2,19,3,9,4, +243,4,178,5,39,6,89,6,118,6,158,6,186,6,136,6,178,5,5,4,152,1,166,254,100,251,7,248,174,244,63,241, +145,237,173,233,202,229,45,226,39,223,242,220,165,219,51,219,114,219,34,220,45,221,176,222,174,224,241,226,47,229,31,231, +147,232,143,233,49,234,170,234,54,235,10,236,82,237,28,239,66,241,121,243,138,245,93,247,246,248,116,250,241,251,84,253, +86,254,165,254,31,254,245,252,148,251,96,250,116,249,154,248,159,247,180,246,74,246,157,246,136,247,182,248,191,249,73,250, +68,250,243,249,198,249,40,250,74,251,2,253,249,254,236,0,172,2,29,4,76,5,93,6,94,7,62,8,228,8,71,9, +124,9,147,9,121,9,21,9,100,8,120,7,111,6,127,5,218,4,127,4,43,4,139,3,128,2,77,1,123,0,99,0, +244,0,223,1,218,2,203,3,210,4,31,6,192,7,149,9,92,11,207,12,206,13,83,14,130,14,146,14,135,14,24,14, +253,12,53,11,25,9,33,7,125,5,16,4,154,2,213,0,168,254,93,252,83,250,160,248,32,247,170,245,44,244,196,242, +189,241,137,241,125,242,142,244,122,247,28,251,93,255,7,4,196,8,25,13,131,16,170,18,142,19,146,19,59,19,210,18, +97,18,234,17,137,17,142,17,67,18,135,19,221,20,226,21,128,22,214,22,12,23,81,23,242,23,13,25,26,26,48,26, +208,24,61,22,37,19,252,15,201,12,150,9,176,6,100,4,196,2,187,1,48,1,11,1,0,1,129,0,51,255,84,253, +153,251,176,250,187,250,81,251,255,251,121,252,99,252,112,251,174,249,152,247,180,245,71,244,106,243,82,243,34,244,152,245, +53,247,140,248,105,249,193,249,169,249,52,249,75,248,180,246,102,244,202,241,97,239,92,237,178,235,89,234,77,233,125,232, +201,231,53,231,227,230,218,230,245,230,28,231,97,231,237,231,229,232,50,234,130,235,123,236,240,236,210,236,47,236,82,235, +172,234,134,234,235,234,203,235,22,237,171,238,105,240,53,242,243,243,111,245,120,246,32,247,202,247,222,248,133,250,162,252, +252,254,81,1,82,3,178,4,87,5,107,5,40,5,175,4,34,4,195,3,229,3,166,4,202,5,232,6,202,7,128,8, +34,9,146,9,156,9,52,9,145,8,247,7,133,7,31,7,154,6,240,5,65,5,184,4,125,4,171,4,66,5,42,6, +70,7,124,8,168,9,152,10,28,11,55,11,13,11,192,10,105,10,20,10,206,9,185,9,244,9,124,10,43,11,218,11, +124,12,43,13,9,14,11,15,251,15,154,16,207,16,188,16,142,16,53,16,122,15,76,14,223,12,121,11,69,10,87,9, +185,8,107,8,91,8,87,8,26,8,144,7,234,6,118,6,92,6,133,6,188,6,230,6,244,6,210,6,112,6,211,5, +24,5,113,4,6,4,210,3,180,3,150,3,123,3,108,3,89,3,23,3,136,2,188,1,246,0,130,0,124,0,201,0, +60,1,175,1,20,2,98,2,138,2,145,2,146,2,154,2,168,2,213,2,61,3,234,3,195,4,155,5,84,6,227,6, +39,7,252,6,92,6,94,5,47,4,14,3,25,2,68,1,128,0,210,255,69,255,200,254,57,254,124,253,166,252,238,251, +129,251,70,251,243,250,104,250,194,249,24,249,111,248,194,247,13,247,108,246,1,246,176,245,69,245,194,244,73,244,238,243, +162,243,59,243,171,242,23,242,171,241,105,241,48,241,238,240,183,240,159,240,146,240,92,240,212,239,230,238,157,237,21,236, +94,234,130,232,156,230,225,228,139,227,162,226,9,226,176,225,161,225,241,225,166,226,155,227,133,228,54,229,191,229,80,230, +6,231,219,231,190,232,180,233,200,234,245,235,46,237,112,238,198,239,74,241,23,243,45,245,108,247,182,249,3,252,87,254, +175,0,243,2,247,4,146,6,203,7,191,8,107,9,195,9,229,9,0,10,27,10,18,10,211,9,124,9,73,9,122,9, +52,10,89,11,151,12,160,13,111,14,47,15,5,16,232,16,175,17,32,18,16,18,113,17,92,16,17,15,233,13,38,13, +213,12,226,12,57,13,206,13,179,14,24,16,9,18,63,20,68,22,185,23,129,24,192,24,163,24,39,24,33,23,128,21, +120,19,107,17,204,15,210,14,83,14,254,13,168,13,82,13,11,13,242,12,25,13,121,13,246,13,111,14,197,14,211,14, +100,14,77,13,155,11,137,9,81,7,28,5,5,3,37,1,161,255,169,254,71,254,75,254,76,254,227,253,252,252,223,251, +245,250,118,250,94,250,161,250,58,251,16,252,226,252,91,253,56,253,122,252,140,251,16,251,121,251,207,252,195,254,9,1, +148,3,101,6,43,9,72,11,76,12,96,12,29,12,245,11,226,11,151,11,228,10,222,9,186,8,142,7,73,6,223,4, +111,3,54,2,82,1,156,0,222,255,16,255,106,254,28,254,13,254,230,253,117,253,208,252,29,252,98,251,143,250,154,249, +135,248,113,247,136,246,247,245,218,245,39,246,174,246,41,247,97,247,67,247,233,246,128,246,16,246,139,245,14,245,224,244, +45,245,238,245,229,246,190,247,52,248,30,248,95,247,252,245,60,244,145,242,95,241,201,240,171,240,208,240,12,241,53,241, +44,241,235,240,137,240,71,240,104,240,253,240,227,241,241,242,18,244,53,245,50,246,198,246,197,246,76,246,196,245,162,245, +29,246,34,247,120,248,253,249,165,251,85,253,205,254,221,255,143,0,38,1,216,1,168,2,111,3,23,4,181,4,105,5, +37,6,173,6,201,6,134,6,51,6,29,6,105,6,13,7,226,7,196,8,162,9,115,10,26,11,107,11,81,11,233,10, +112,10,12,10,187,9,100,9,254,8,145,8,38,8,192,7,100,7,38,7,16,7,17,7,247,6,149,6,210,5,183,4, +106,3,11,2,158,0,30,255,172,253,137,252,227,251,168,251,152,251,145,251,169,251,240,251,79,252,154,252,205,252,8,253, +113,253,13,254,190,254,88,255,182,255,216,255,221,255,224,255,229,255,250,255,51,0,146,0,2,1,95,1,147,1,150,1, +106,1,23,1,184,0,120,0,118,0,199,0,132,1,189,2,85,4,252,5,99,7,101,8,8,9,113,9,204,9,39,10, +105,10,120,10,80,10,239,9,78,9,105,8,86,7,61,6,55,5,61,4,70,3,108,2,240,1,0,2,138,2,67,3, +204,3,227,3,128,3,196,2,218,1,230,0,1,0,67,255,190,254,108,254,42,254,222,253,146,253,92,253,56,253,13,253, +191,252,77,252,200,251,56,251,133,250,130,249,30,248,115,246,177,244,251,242,116,241,51,240,58,239,122,238,239,237,153,237, +114,237,122,237,173,237,253,237,87,238,174,238,0,239,98,239,239,239,165,240,106,241,53,242,32,243,59,244,115,245,183,246, +12,248,114,249,203,250,237,251,195,252,98,253,247,253,168,254,134,255,130,0,116,1,51,2,165,2,211,2,226,2,245,2, +29,3,92,3,174,3,2,4,81,4,155,4,208,4,214,4,145,4,225,3,195,2,91,1,240,255,210,254,55,254,26,254, +91,254,236,254,218,255,43,1,191,2,88,4,197,5,2,7,20,8,233,8,85,9,43,9,116,8,123,7,136,6,168,5, +211,4,35,4,207,3,251,3,159,4,142,5,147,6,141,7,122,8,106,9,110,10,122,11,80,12,178,12,130,12,186,11, +92,10,138,8,136,6,148,4,210,2,76,1,252,255,238,254,70,254,21,254,57,254,114,254,125,254,65,254,219,253,124,253, +80,253,118,253,250,253,194,254,147,255,37,0,68,0,243,255,117,255,42,255,95,255,42,0,120,1,45,3,44,5,60,7, +6,9,50,10,153,10,77,10,126,9,111,8,101,7,145,6,2,6,174,5,121,5,65,5,242,4,148,4,60,4,4,4, +248,3,22,4,92,4,204,4,87,5,214,5,41,6,58,6,250,5,88,5,92,4,44,3,251,1,235,0,2,0,68,255, +194,254,129,254,119,254,136,254,158,254,176,254,194,254,203,254,176,254,103,254,0,254,160,253,106,253,103,253,125,253,152,253, +185,253,218,253,226,253,185,253,82,253,176,252,239,251,59,251,181,250,104,250,79,250,101,250,154,250,191,250,151,250,2,250, +14,249,246,247,4,247,118,246,100,246,192,246,114,247,101,248,116,249,98,250,246,250,28,251,240,250,172,250,131,250,148,250, +249,250,186,251,194,252,212,253,169,254,17,255,14,255,197,254,101,254,24,254,243,253,3,254,86,254,251,254,214,255,161,0, +28,1,50,1,252,0,164,0,81,0,42,0,74,0,194,0,161,1,235,2,125,4,21,6,117,7,129,8,68,9,213,9, +68,10,156,10,240,10,72,11,156,11,214,11,208,11,99,11,117,10,4,9,20,7,185,4,31,2,141,255,78,253,135,251, +59,250,93,249,221,248,170,248,178,248,225,248,45,249,154,249,62,250,45,251,101,252,206,253,67,255,170,0,233,1,234,2, +148,3,203,3,126,3,198,2,227,1,32,1,174,0,137,0,141,0,157,0,170,0,151,0,58,0,118,255,94,254,38,253, +249,251,241,250,26,250,116,249,254,248,196,248,201,248,254,248,68,249,138,249,210,249,45,250,168,250,71,251,0,252,201,252, +161,253,134,254,95,255,252,255,43,0,222,255,58,255,124,254,228,253,173,253,6,254,4,255,148,0,120,2,101,4,25,6, +112,7,90,8,218,8,5,9,244,8,200,8,150,8,90,8,253,7,109,7,172,6,200,5,200,4,175,3,127,2,76,1, +65,0,136,255,39,255,252,254,220,254,168,254,83,254,224,253,98,253,232,252,130,252,65,252,56,252,108,252,201,252,55,253, +173,253,29,254,109,254,133,254,76,254,188,253,235,252,254,251,21,251,70,250,139,249,193,248,205,247,190,246,184,245,241,244, +152,244,157,244,198,244,229,244,244,244,11,245,84,245,235,245,205,246,200,247,153,248,34,249,137,249,8,250,170,250,84,251, +238,251,134,252,53,253,6,254,239,254,209,255,134,0,249,0,44,1,45,1,11,1,217,0,177,0,167,0,189,0,253,0, +134,1,96,2,91,3,62,4,235,4,84,5,113,5,87,5,54,5,61,5,130,5,254,5,149,6,22,7,67,7,11,7, +150,6,22,6,165,5,74,5,26,5,60,5,210,5,233,6,100,8,254,9,96,11,88,12,234,12,59,13,116,13,155,13, +132,13,250,12,6,12,214,10,123,9,216,7,226,5,178,3,114,1,78,255,111,253,239,251,230,250,112,250,150,250,55,251, +0,252,146,252,195,252,164,252,84,252,222,251,54,251,86,250,86,249,96,248,155,247,28,247,246,246,64,247,11,248,53,249, +101,250,72,251,213,251,70,252,222,252,195,253,224,254,246,255,186,0,9,1,245,0,160,0,12,0,49,255,47,254,72,253, +186,252,169,252,41,253,52,254,163,255,50,1,153,2,153,3,9,4,229,3,97,3,225,2,191,2,19,3,175,3,89,4, +246,4,126,5,230,5,18,6,227,5,80,5,114,4,120,3,153,2,13,2,250,1,95,2,23,3,215,3,84,4,106,4, +25,4,125,3,200,2,59,2,11,2,71,2,205,2,89,3,168,3,138,3,245,2,255,1,209,0,135,255,61,254,28,253, +95,252,66,252,211,252,225,253,15,255,252,255,107,0,84,0,219,255,45,255,118,254,206,253,61,253,207,252,145,252,125,252, +116,252,77,252,236,251,90,251,195,250,86,250,41,250,53,250,100,250,163,250,234,250,40,251,51,251,222,250,18,250,236,248, +165,247,116,246,128,245,223,244,160,244,203,244,96,245,86,246,149,247,254,248,112,250,212,251,38,253,108,254,182,255,10,1, +102,2,195,3,21,5,73,6,77,7,12,8,117,8,134,8,78,8,237,7,140,7,72,7,28,7,231,6,146,6,25,6, +125,5,185,4,211,3,224,2,8,2,106,1,17,1,255,0,49,1,168,1,96,2,55,3,242,3,103,4,148,4,153,4, +148,4,156,4,189,4,236,4,23,5,48,5,51,5,31,5,251,4,202,4,135,4,54,4,227,3,163,3,135,3,131,3, +114,3,50,3,188,2,28,2,103,1,167,0,205,255,188,254,104,253,236,251,129,250,102,249,212,248,213,248,64,249,211,249, +100,250,247,250,161,251,100,252,32,253,165,253,205,253,154,253,57,253,230,252,183,252,133,252,25,252,83,251,97,250,166,249, +121,249,244,249,251,250,86,252,205,253,78,255,220,0,121,2,12,4,105,5,88,6,172,6,71,6,51,5,176,3,26,2, +184,0,180,255,36,255,9,255,84,255,241,255,210,0,219,1,209,2,118,3,195,3,239,3,70,4,235,4,185,5,102,6, +175,6,130,6,249,5,72,5,142,4,194,3,218,2,246,1,86,1,33,1,83,1,196,1,61,2,136,2,138,2,55,2, +136,1,128,0,57,255,246,253,8,253,174,252,239,252,161,253,121,254,31,255,61,255,153,254,52,253,84,251,117,249,5,248, +57,247,19,247,136,247,129,248,209,249,63,251,117,252,17,253,219,252,236,251,167,250,133,249,207,248,134,248,124,248,134,248, +121,248,32,248,67,247,199,245,229,243,41,242,34,241,35,241,47,242,18,244,120,246,2,249,76,251,233,252,127,253,246,252, +142,251,220,249,146,248,49,248,212,248,61,250,28,252,45,254,67,0,50,2,194,3,191,4,25,5,3,5,221,4,253,4, +134,5,97,6,78,7,6,8,88,8,40,8,121,7,106,6,68,5,111,4,84,4,26,5,150,6,101,8,12,10,29,11, +86,11,180,10,104,9,189,7,9,6,162,4,204,3,160,3,12,4,225,4,214,5,157,6,248,6,200,6,18,6,250,4, +182,3,124,2,126,1,219,0,144,0,128,0,132,0,119,0,63,0,223,255,120,255,67,255,110,255,10,0,2,1,27,2, +15,3,161,3,172,3,35,3,20,2,161,0,4,255,142,253,145,252,61,252,135,252,47,253,231,253,137,254,9,255,97,255, +139,255,138,255,100,255,40,255,230,254,160,254,79,254,240,253,141,253,63,253,34,253,77,253,198,253,132,254,116,255,125,0, +141,1,156,2,162,3,138,4,56,5,151,5,151,5,59,5,163,4,253,3,116,3,32,3,7,3,32,3,93,3,175,3, +8,4,96,4,174,4,233,4,6,5,255,4,208,4,124,4,12,4,128,3,212,2,27,2,121,1,255,0,175,0,135,0, +127,0,135,0,149,0,159,0,143,0,75,0,194,255,231,254,185,253,83,252,235,250,191,249,240,248,122,248,76,248,91,248, +161,248,29,249,206,249,167,250,143,251,113,252,75,253,24,254,190,254,25,255,12,255,134,254,141,253,63,252,211,250,136,249, +157,248,55,248,90,248,234,248,186,249,173,250,179,251,197,252,224,253,247,254,226,255,115,0,156,0,111,0,16,0,164,255, +63,255,220,254,113,254,254,253,159,253,127,253,182,253,51,254,207,254,94,255,204,255,28,0,95,0,144,0,152,0,86,0, +184,255,204,254,195,253,227,252,96,252,70,252,113,252,175,252,231,252,42,253,161,253,103,254,117,255,168,0,208,1,205,2, +155,3,69,4,215,4,78,5,172,5,251,5,68,6,130,6,158,6,122,6,2,6,64,5,85,4,90,3,81,2,50,1, +4,0,211,254,179,253,201,252,60,252,24,252,73,252,173,252,33,253,147,253,6,254,140,254,50,255,224,255,104,0,170,0, +162,0,100,0,21,0,218,255,194,255,202,255,233,255,24,0,97,0,211,0,114,1,50,2,250,2,165,3,24,4,63,4, +22,4,176,3,46,3,171,2,59,2,237,1,183,1,144,1,124,1,141,1,199,1,30,2,118,2,182,2,194,2,131,2, +247,1,59,1,118,0,201,255,66,255,228,254,164,254,113,254,71,254,56,254,99,254,220,254,142,255,77,0,235,0,76,1, +111,1,105,1,85,1,61,1,31,1,250,0,208,0,177,0,186,0,8,1,160,1,107,2,55,3,212,3,31,4,12,4, +167,3,16,3,101,2,178,1,245,0,36,0,69,255,113,254,212,253,145,253,178,253,37,254,205,254,135,255,57,0,213,0, +79,1,148,1,143,1,56,1,151,0,200,255,238,254,45,254,171,253,114,253,116,253,156,253,220,253,39,254,115,254,188,254, +251,254,41,255,60,255,29,255,198,254,73,254,187,253,58,253,222,252,186,252,213,252,33,253,142,253,18,254,167,254,63,255, +197,255,37,0,83,0,76,0,19,0,178,255,60,255,194,254,86,254,10,254,234,253,242,253,25,254,85,254,151,254,209,254, +243,254,238,254,191,254,102,254,238,253,102,253,230,252,128,252,64,252,41,252,66,252,147,252,34,253,234,253,215,254,196,255, +135,0,251,0,17,1,210,0,80,0,162,255,221,254,16,254,81,253,192,252,116,252,119,252,204,252,106,253,56,254,24,255, +243,255,187,0,98,1,217,1,19,2,20,2,228,1,143,1,37,1,192,0,123,0,106,0,147,0,237,0,107,1,245,1, +113,2,201,2,240,2,232,2,175,2,62,2,152,1,212,0,14,0,88,255,192,254,76,254,253,253,216,253,225,253,26,254, +122,254,238,254,95,255,181,255,220,255,199,255,125,255,18,255,173,254,120,254,143,254,244,254,153,255,101,0,61,1,19,2, +224,2,159,3,61,4,166,4,196,4,146,4,25,4,117,3,205,2,65,2,221,1,162,1,140,1,152,1,204,1,47,2, +183,2,70,3,184,3,242,3,224,3,124,3,205,2,230,1,228,0,230,255,2,255,68,254,187,253,118,253,123,253,204,253, +95,254,32,255,238,255,167,0,51,1,138,1,176,1,173,1,142,1,97,1,47,1,2,1,233,0,253,0,76,1,204,1, +106,2,10,3,143,3,231,3,15,4,3,4,194,3,83,3,186,2,250,1,24,1,36,0,58,255,129,254,15,254,234,253, +7,254,75,254,154,254,223,254,21,255,55,255,62,255,38,255,242,254,177,254,114,254,62,254,28,254,11,254,19,254,52,254, +105,254,171,254,252,254,88,255,175,255,242,255,24,0,24,0,243,255,183,255,111,255,37,255,220,254,153,254,102,254,78,254, +90,254,138,254,212,254,31,255,84,255,100,255,88,255,63,255,36,255,7,255,235,254,216,254,218,254,239,254,8,255,27,255, +38,255,45,255,64,255,100,255,136,255,143,255,102,255,23,255,184,254,102,254,46,254,20,254,22,254,56,254,130,254,240,254, +118,255,251,255,106,0,185,0,230,0,252,0,7,1,6,1,230,0,160,0,61,0,214,255,133,255,88,255,75,255,91,255, +141,255,226,255,78,0,174,0,214,0,181,0,105,0,39,0,8,0,246,255,195,255,94,255,239,254,173,254,186,254,7,255, +101,255,173,255,225,255,25,0,101,0,187,0,4,1,43,1,41,1,7,1,207,0,132,0,47,0,222,255,165,255,144,255, +162,255,205,255,5,0,62,0,102,0,102,0,51,0,220,255,126,255,62,255,45,255,71,255,122,255,180,255,229,255,8,0, +29,0,41,0,59,0,96,0,152,0,214,0,255,0,247,0,186,0,89,0,240,255,148,255,86,255,67,255,100,255,186,255, +54,0,192,0,58,1,136,1,166,1,163,1,140,1,89,1,1,1,133,0,240,255,89,255,220,254,140,254,99,254,82,254, +78,254,89,254,129,254,205,254,57,255,177,255,20,0,69,0,57,0,251,255,159,255,66,255,2,255,236,254,0,255,56,255, +140,255,239,255,93,0,214,0,85,1,207,1,53,2,123,2,158,2,166,2,149,2,102,2,17,2,153,1,10,1,130,0, +28,0,227,255,213,255,229,255,252,255,10,0,10,0,246,255,203,255,140,255,66,255,245,254,177,254,129,254,109,254,117,254, +143,254,176,254,205,254,228,254,250,254,25,255,68,255,122,255,182,255,240,255,31,0,56,0,57,0,40,0,20,0,17,0, +48,0,114,0,204,0,42,1,124,1,176,1,191,1,169,1,115,1,38,1,204,0,113,0,24,0,188,255,84,255,233,254, +140,254,78,254,57,254,78,254,128,254,193,254,3,255,61,255,106,255,138,255,156,255,157,255,143,255,124,255,113,255,119,255, +142,255,174,255,214,255,3,0,48,0,87,0,118,0,151,0,194,0,240,0,19,1,28,1,8,1,227,0,186,0,153,0, +123,0,93,0,67,0,56,0,64,0,94,0,145,0,201,0,241,0,247,0,219,0,164,0,95,0,25,0,229,255,210,255, +222,255,250,255,19,0,30,0,31,0,32,0,41,0,63,0,99,0,143,0,182,0,199,0,183,0,141,0,79,0,4,0, +179,255,107,255,59,255,50,255,87,255,164,255,13,0,126,0,220,0,20,1,30,1,6,1,222,0,181,0,146,0,114,0, +79,0,28,0,218,255,146,255,81,255,40,255,33,255,61,255,113,255,173,255,226,255,4,0,17,0,8,0,238,255,201,255, +158,255,115,255,76,255,46,255,30,255,30,255,50,255,95,255,160,255,233,255,43,0,87,0,100,0,84,0,50,0,13,0, +231,255,191,255,149,255,107,255,72,255,52,255,48,255,55,255,73,255,98,255,123,255,148,255,169,255,180,255,177,255,161,255, +130,255,86,255,37,255,247,254,216,254,210,254,230,254,22,255,92,255,176,255,9,0,92,0,161,0,209,0,234,0,238,0, +233,0,224,0,211,0,188,0,152,0,105,0,57,0,17,0,242,255,215,255,184,255,150,255,126,255,121,255,126,255,130,255, +128,255,121,255,111,255,106,255,110,255,124,255,144,255,164,255,186,255,223,255,17,0,70,0,113,0,136,0,136,0,120,0, +90,0,52,0,17,0,255,255,6,0,38,0,86,0,132,0,161,0,176,0,180,0,178,0,171,0,158,0,135,0,100,0, +62,0,30,0,7,0,243,255,220,255,193,255,172,255,166,255,177,255,199,255,225,255,249,255,11,0,14,0,255,255,219,255, +165,255,98,255,27,255,223,254,192,254,191,254,215,254,5,255,77,255,170,255,15,0,111,0,184,0,227,0,246,0,253,0, +5,1,21,1,31,1,25,1,4,1,227,0,190,0,157,0,136,0,130,0,138,0,156,0,178,0,197,0,202,0,189,0, +160,0,116,0,58,0,249,255,189,255,143,255,115,255,112,255,135,255,180,255,235,255,36,0,86,0,125,0,153,0,172,0, +182,0,184,0,175,0,161,0,146,0,134,0,124,0,117,0,112,0,109,0,105,0,103,0,101,0,100,0,102,0,101,0, +93,0,82,0,68,0,47,0,16,0,230,255,179,255,134,255,105,255,96,255,109,255,139,255,176,255,213,255,239,255,246,255, +233,255,214,255,197,255,190,255,194,255,200,255,195,255,176,255,149,255,123,255,102,255,87,255,77,255,73,255,74,255,83,255, +104,255,131,255,159,255,186,255,213,255,235,255,252,255,6,0,13,0,20,0,28,0,34,0,39,0,38,0,23,0,254,255, +226,255,203,255,195,255,195,255,192,255,180,255,159,255,130,255,101,255,81,255,74,255,83,255,102,255,125,255,150,255,177,255, +204,255,229,255,249,255,3,0,4,0,255,255,248,255,243,255,244,255,249,255,252,255,247,255,229,255,207,255,191,255,188,255, +196,255,214,255,235,255,253,255,5,0,2,0,245,255,227,255,202,255,171,255,138,255,106,255,80,255,66,255,68,255,85,255, +112,255,140,255,163,255,179,255,192,255,202,255,214,255,228,255,246,255,11,0,31,0,45,0,53,0,53,0,43,0,30,0, +20,0,14,0,8,0,2,0,250,255,246,255,244,255,243,255,246,255,254,255,12,0,33,0,62,0,95,0,129,0,159,0, +179,0,187,0,190,0,188,0,180,0,166,0,153,0,145,0,140,0,136,0,143,0,159,0,181,0,210,0,248,0,31,1, +67,1,99,1,121,1,131,1,129,1,122,1,114,1,107,1,97,1,85,1,70,1,55,1,43,1,33,1,24,1,16,1, +6,1,243,0,219,0,195,0,174,0,155,0,132,0,105,0,78,0,56,0,39,0,26,0,17,0,12,0,10,0,7,0, +2,0,249,255,240,255,229,255,221,255,217,255,217,255,222,255,226,255,232,255,244,255,5,0,18,0,23,0,25,0,22,0, +15,0,1,0,237,255,214,255,190,255,162,255,130,255,96,255,64,255,39,255,18,255,1,255,251,254,254,254,5,255,14,255, +20,255,22,255,16,255,3,255,236,254,214,254,199,254,193,254,197,254,208,254,221,254,234,254,249,254,9,255,29,255,54,255, +80,255,100,255,114,255,125,255,135,255,142,255,144,255,143,255,140,255,134,255,126,255,119,255,111,255,109,255,116,255,125,255, +128,255,130,255,132,255,134,255,134,255,128,255,119,255,113,255,110,255,107,255,104,255,100,255,94,255,85,255,76,255,71,255, +68,255,65,255,64,255,63,255,61,255,59,255,62,255,69,255,75,255,83,255,95,255,109,255,121,255,133,255,146,255,165,255, +189,255,214,255,237,255,1,0,19,0,32,0,42,0,51,0,61,0,71,0,79,0,87,0,96,0,105,0,113,0,122,0, +129,0,133,0,133,0,126,0,118,0,113,0,114,0,120,0,126,0,132,0,138,0,149,0,163,0,176,0,188,0,195,0, +197,0,197,0,192,0,183,0,174,0,170,0,166,0,159,0,150,0,140,0,137,0,142,0,150,0,161,0,175,0,191,0, +204,0,214,0,217,0,216,0,215,0,210,0,200,0,186,0,171,0,158,0,148,0,139,0,132,0,127,0,123,0,119,0, +114,0,107,0,99,0,87,0,73,0,60,0,50,0,38,0,23,0,9,0,252,255,241,255,234,255,228,255,222,255,215,255, +207,255,199,255,195,255,192,255,189,255,186,255,183,255,181,255,182,255,187,255,190,255,193,255,197,255,200,255,203,255,206,255, +211,255,213,255,213,255,213,255,216,255,221,255,229,255,239,255,249,255,0,0,7,0,13,0,18,0,20,0,23,0,29,0, +36,0,43,0,47,0,48,0,47,0,43,0,37,0,32,0,26,0,20,0,11,0,2,0,249,255,238,255,227,255,217,255, +204,255,192,255,183,255,179,255,180,255,186,255,193,255,200,255,206,255,210,255,211,255,208,255,202,255,197,255,194,255,193,255, +196,255,201,255,208,255,218,255,225,255,226,255,227,255,226,255,223,255,222,255,222,255,216,255,209,255,206,255,205,255,199,255, +194,255,187,255,180,255,176,255,176,255,181,255,188,255,195,255,202,255,209,255,214,255,219,255,222,255,223,255,223,255,223,255, +223,255,225,255,229,255,233,255,237,255,236,255,231,255,228,255,228,255,227,255,222,255,217,255,213,255,215,255,223,255,233,255, +242,255,250,255,0,0,6,0,14,0,21,0,27,0,33,0,41,0,53,0,68,0,85,0,102,0,116,0,126,0,130,0, +125,0,116,0,107,0,102,0,96,0,87,0,79,0,71,0,61,0,52,0,45,0,41,0,37,0,34,0,34,0,36,0, +39,0,42,0,45,0,47,0,46,0,42,0,36,0,29,0,24,0,22,0,25,0,33,0,41,0,52,0,66,0,79,0, +87,0,93,0,96,0,94,0,88,0,78,0,65,0,48,0,28,0,9,0,251,255,245,255,244,255,244,255,249,255,2,0, +15,0,27,0,37,0,41,0,41,0,40,0,36,0,27,0,15,0,0,0,243,255,234,255,228,255,222,255,217,255,216,255, +218,255,226,255,237,255,247,255,251,255,248,255,239,255,225,255,207,255,194,255,186,255,182,255,181,255,185,255,195,255,208,255, +221,255,233,255,243,255,253,255,7,0,18,0,27,0,33,0,36,0,36,0,33,0,30,0,26,0,18,0,9,0,7,0, +11,0,16,0,19,0,22,0,23,0,19,0,13,0,7,0,253,255,239,255,227,255,219,255,212,255,207,255,202,255,200,255, +202,255,206,255,206,255,205,255,203,255,198,255,191,255,182,255,173,255,162,255,150,255,138,255,128,255,120,255,113,255,109,255, +110,255,116,255,126,255,138,255,149,255,162,255,173,255,177,255,176,255,177,255,177,255,174,255,171,255,166,255,159,255,150,255, +141,255,136,255,140,255,151,255,163,255,171,255,176,255,177,255,177,255,179,255,181,255,179,255,173,255,166,255,160,255,157,255, +162,255,172,255,181,255,191,255,203,255,215,255,223,255,229,255,235,255,245,255,4,0,17,0,17,0,4,0,245,255,239,255, +241,255,248,255,1,0,9,0,13,0,16,0,24,0,40,0,63,0,86,0,103,0,116,0,123,0,121,0,118,0,121,0, +130,0,139,0,151,0,166,0,174,0,170,0,160,0,154,0,154,0,154,0,151,0,148,0,146,0,144,0,141,0,138,0, +137,0,133,0,123,0,111,0,99,0,89,0,83,0,82,0,81,0,74,0,59,0,42,0,31,0,25,0,23,0,22,0, +19,0,14,0,12,0,16,0,26,0,43,0,61,0,71,0,74,0,74,0,73,0,69,0,63,0,58,0,58,0,61,0, +64,0,67,0,72,0,75,0,74,0,72,0,68,0,67,0,67,0,67,0,64,0,55,0,42,0,27,0,11,0,249,255, +233,255,223,255,219,255,217,255,214,255,211,255,211,255,211,255,209,255,205,255,200,255,194,255,186,255,177,255,168,255,163,255, +165,255,174,255,187,255,202,255,211,255,217,255,221,255,225,255,227,255,228,255,227,255,226,255,223,255,218,255,215,255,212,255, +206,255,197,255,191,255,188,255,185,255,182,255,182,255,187,255,192,255,193,255,191,255,186,255,179,255,172,255,172,255,180,255, +191,255,197,255,197,255,193,255,190,255,189,255,187,255,183,255,179,255,176,255,176,255,179,255,183,255,185,255,185,255,188,255, +195,255,203,255,213,255,220,255,226,255,233,255,242,255,253,255,9,0,20,0,29,0,38,0,48,0,57,0,65,0,70,0, +71,0,70,0,70,0,70,0,68,0,66,0,61,0,52,0,42,0,38,0,40,0,44,0,49,0,53,0,58,0,59,0, +57,0,55,0,52,0,43,0,29,0,17,0,12,0,10,0,11,0,12,0,11,0,6,0,0,0,252,255,252,255,0,0, +4,0,2,0,254,255,250,255,249,255,248,255,250,255,254,255,1,0,2,0,2,0,4,0,10,0,20,0,32,0,43,0, +49,0,50,0,48,0,43,0,37,0,30,0,24,0,21,0,20,0,24,0,31,0,35,0,35,0,30,0,24,0,21,0, +17,0,13,0,7,0,255,255,249,255,245,255,242,255,234,255,228,255,226,255,225,255,227,255,230,255,235,255,236,255,235,255, +231,255,226,255,222,255,221,255,219,255,212,255,204,255,201,255,203,255,206,255,212,255,218,255,225,255,233,255,239,255,239,255, +238,255,235,255,228,255,220,255,212,255,201,255,192,255,186,255,180,255,172,255,168,255,167,255,168,255,171,255,174,255,176,255, +174,255,170,255,166,255,164,255,158,255,149,255,138,255,127,255,120,255,115,255,112,255,113,255,121,255,131,255,144,255,159,255, +172,255,185,255,198,255,208,255,216,255,224,255,234,255,248,255,6,0,18,0,28,0,38,0,47,0,57,0,67,0,75,0, +81,0,88,0,94,0,98,0,102,0,105,0,106,0,106,0,104,0,103,0,103,0,105,0,108,0,113,0,118,0,122,0, +126,0,130,0,129,0,128,0,125,0,122,0,120,0,121,0,124,0,126,0,127,0,128,0,129,0,132,0,135,0,140,0, +145,0,148,0,148,0,145,0,140,0,132,0,122,0,110,0,98,0,89,0,83,0,77,0,70,0,61,0,55,0,53,0, +53,0,55,0,56,0,52,0,46,0,38,0,29,0,18,0,7,0,253,255,242,255,231,255,220,255,212,255,208,255,207,255, +207,255,205,255,201,255,194,255,188,255,181,255,174,255,169,255,165,255,159,255,153,255,147,255,143,255,139,255,137,255,136,255, +139,255,141,255,142,255,145,255,150,255,156,255,160,255,165,255,169,255,174,255,180,255,185,255,190,255,193,255,193,255,193,255, +196,255,201,255,207,255,212,255,214,255,214,255,215,255,217,255,217,255,217,255,217,255,223,255,230,255,236,255,238,255,239,255, +238,255,236,255,233,255,233,255,237,255,241,255,243,255,244,255,245,255,243,255,240,255,238,255,237,255,237,255,238,255,236,255, +234,255,233,255,235,255,242,255,251,255,3,0,9,0,14,0,15,0,15,0,17,0,21,0,25,0,32,0,37,0,38,0, +39,0,43,0,47,0,47,0,46,0,47,0,51,0,57,0,63,0,67,0,66,0,64,0,61,0,57,0,51,0,47,0, +45,0,42,0,39,0,39,0,44,0,50,0,53,0,54,0,53,0,52,0,52,0,51,0,50,0,48,0,47,0,45,0, +43,0,38,0,30,0,23,0,18,0,14,0,15,0,20,0,27,0,34,0,43,0,55,0,68,0,77,0,80,0,79,0, +77,0,74,0,70,0,67,0,67,0,67,0,67,0,67,0,62,0,54,0,45,0,34,0,23,0,12,0,2,0,249,255, +242,255,235,255,227,255,220,255,213,255,208,255,203,255,200,255,198,255,197,255,198,255,199,255,200,255,200,255,197,255,192,255, +187,255,180,255,175,255,174,255,178,255,184,255,190,255,195,255,199,255,201,255,203,255,205,255,207,255,210,255,213,255,216,255, +218,255,217,255,214,255,212,255,211,255,211,255,213,255,213,255,213,255,215,255,220,255,221,255,219,255,219,255,221,255,222,255, +220,255,215,255,211,255,210,255,211,255,211,255,212,255,216,255,222,255,229,255,239,255,248,255,0,0,6,0,9,0,10,0, +10,0,11,0,10,0,9,0,9,0,12,0,17,0,21,0,25,0,28,0,29,0,31,0,34,0,38,0,43,0,48,0, +49,0,47,0,44,0,40,0,37,0,36,0,35,0,36,0,36,0,37,0,38,0,40,0,39,0,36,0,30,0,24,0, +20,0,16,0,11,0,8,0,6,0,7,0,10,0,14,0,14,0,11,0,4,0,253,255,247,255,244,255,240,255,233,255, +228,255,223,255,221,255,224,255,230,255,235,255,239,255,244,255,250,255,2,0,12,0,21,0,30,0,37,0,43,0,48,0, +50,0,49,0,46,0,44,0,41,0,37,0,34,0,31,0,28,0,24,0,21,0,21,0,21,0,22,0,22,0,22,0, +23,0,24,0,26,0,26,0,26,0,24,0,22,0,19,0,16,0,12,0,6,0,255,255,252,255,255,255,3,0,8,0, +13,0,18,0,19,0,16,0,11,0,4,0,0,0,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,255,255,253,255,249,255,245,255,241,255,238,255,235,255,230,255,224,255,219,255,216,255,215,255, +216,255,216,255,216,255,216,255,215,255,211,255,207,255,203,255,200,255,197,255,196,255,197,255,197,255,198,255,199,255,199,255, +198,255,200,255,203,255,207,255,210,255,213,255,216,255,218,255,222,255,226,255,230,255,233,255,234,255,237,255,241,255,245,255, +251,255,255,255,2,0,4,0,6,0,7,0,9,0,10,0,10,0,10,0,9,0,9,0,10,0,9,0,10,0,13,0, +16,0,18,0,19,0,20,0,20,0,20,0,21,0,24,0,27,0,29,0,27,0,26,0,27,0,27,0,29,0,31,0, +31,0,29,0,29,0,29,0,31,0,31,0,31,0,32,0,33,0,34,0,35,0,35,0,35,0,34,0,33,0,32,0, +33,0,36,0,38,0,39,0,38,0,35,0,32,0,28,0,23,0,17,0,14,0,10,0,6,0,3,0,1,0,255,255, +253,255,251,255,249,255,247,255,245,255,244,255,245,255,245,255,242,255,239,255,237,255,236,255,235,255,234,255,233,255,234,255, +235,255,237,255,240,255,241,255,243,255,245,255,248,255,250,255,253,255,0,0,0,0,255,255,253,255,252,255,251,255,250,255, +249,255,249,255,250,255,250,255,250,255,251,255,252,255,253,255,254,255,0,0,0,0,254,255,253,255,253,255,253,255,252,255, +252,255,251,255,249,255,249,255,250,255,249,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255,249,255,249,255, +249,255,249,255,249,255,249,255,250,255,250,255,251,255,253,255,0,0,2,0,3,0,2,0,1,0,255,255,252,255,248,255, +246,255,247,255,247,255,244,255,242,255,244,255,245,255,245,255,244,255,243,255,241,255,241,255,241,255,240,255,240,255,241,255, +242,255,242,255,242,255,243,255,243,255,244,255,245,255,246,255,247,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255, +248,255,249,255,250,255,250,255,249,255,249,255,250,255,252,255,253,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,5,0,7,0,7,0, +4,0,3,0,1,0,0,0,0,0,2,0,2,0,2,0,3,0,6,0,8,0,8,0,7,0,5,0,3,0,2,0, +0,0,255,255,255,255,255,255,0,0,1,0,2,0,3,0,4,0,5,0,5,0,4,0,4,0,5,0,6,0,7,0, +6,0,4,0,3,0,2,0,1,0,1,0,3,0,4,0,4,0,3,0,2,0,1,0,0,0,253,255,252,255,251,255, +252,255,253,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,0,0,254,255,250,255, +248,255,248,255,249,255,250,255,251,255,253,255,253,255,253,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,252,255, +252,255,253,255,254,255,253,255,252,255,253,255,254,255,0,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0, +6,0,5,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,1,0,2,0,3,0, +1,0,2,0,3,0,4,0,5,0,7,0,7,0,6,0,6,0,7,0,8,0,8,0,7,0,6,0,5,0,5,0, +3,0,1,0,2,0,1,0,255,255,255,255,0,0,255,255,0,0,2,0,5,0,5,0,5,0,7,0,7,0,5,0, +4,0,4,0,3,0,2,0,1,0,3,0,4,0,4,0,3,0,2,0,0,0,0,0,1,0,2,0,2,0,1,0, +1,0,0,0,255,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,255,255,255,255,254,255,254,255,254,255, +253,255,252,255,252,255,251,255,251,255,250,255,249,255,250,255,250,255,251,255,250,255,250,255,249,255,249,255,250,255,250,255, +251,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,252,255,252,255,251,255,249,255,249,255,248,255,248,255,249,255, +251,255,252,255,253,255,253,255,255,255,0,0,0,0,0,0,0,0,254,255,252,255,251,255,253,255,254,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,255,255,254,255,255,255,1,0, +2,0,4,0,5,0,5,0,4,0,4,0,3,0,1,0,1,0,1,0,2,0,4,0,4,0,4,0,5,0,5,0, +4,0,3,0,3,0,2,0,2,0,2,0,3,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/cowhurt3.pcm b/src/client/sound/data/cowhurt3.pcm new file mode 100755 index 0000000..831b734 --- /dev/null +++ b/src/client/sound/data/cowhurt3.pcm @@ -0,0 +1,1400 @@ +unsigned char PCM_cowhurt3[44718] = { +1,0,0,0,2,0,0,0,68,172,0,0,79,87,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,255,255,0,0,255,255,254,255,254,255,254,255,253,255,252,255,252,255,253,255,254,255,255,255, +0,0,2,0,4,0,6,0,7,0,7,0,9,0,10,0,9,0,8,0,7,0,8,0,8,0,7,0,4,0,4,0, +3,0,0,0,254,255,252,255,249,255,248,255,247,255,247,255,248,255,252,255,2,0,9,0,15,0,18,0,19,0,18,0, +17,0,16,0,14,0,11,0,9,0,8,0,6,0,3,0,255,255,251,255,250,255,248,255,245,255,241,255,237,255,233,255, +231,255,229,255,229,255,233,255,241,255,251,255,5,0,14,0,18,0,18,0,16,0,14,0,10,0,3,0,253,255,248,255, +243,255,239,255,233,255,228,255,227,255,227,255,223,255,215,255,210,255,212,255,217,255,222,255,226,255,234,255,244,255,254,255, +9,0,20,0,30,0,40,0,46,0,48,0,49,0,50,0,48,0,44,0,38,0,30,0,21,0,11,0,0,0,248,255, +244,255,243,255,243,255,245,255,248,255,248,255,247,255,245,255,246,255,251,255,1,0,6,0,10,0,14,0,15,0,12,0, +5,0,253,255,245,255,235,255,223,255,217,255,217,255,218,255,218,255,218,255,220,255,223,255,228,255,231,255,231,255,232,255, +237,255,247,255,6,0,21,0,33,0,42,0,49,0,54,0,57,0,58,0,60,0,60,0,55,0,44,0,32,0,21,0, +12,0,4,0,253,255,250,255,249,255,249,255,250,255,251,255,253,255,254,255,250,255,239,255,229,255,225,255,228,255,237,255, +248,255,2,0,11,0,16,0,14,0,11,0,10,0,10,0,10,0,9,0,6,0,3,0,255,255,247,255,238,255,230,255, +217,255,202,255,189,255,182,255,183,255,190,255,200,255,212,255,226,255,241,255,251,255,3,0,7,0,5,0,1,0,0,0, +3,0,11,0,21,0,30,0,39,0,48,0,55,0,56,0,54,0,51,0,49,0,49,0,52,0,53,0,52,0,50,0, +44,0,34,0,21,0,7,0,250,255,240,255,233,255,229,255,228,255,230,255,232,255,234,255,235,255,236,255,235,255,233,255, +231,255,226,255,221,255,219,255,222,255,228,255,234,255,240,255,245,255,253,255,7,0,13,0,16,0,20,0,27,0,34,0, +36,0,38,0,37,0,34,0,25,0,11,0,252,255,240,255,233,255,225,255,218,255,211,255,202,255,192,255,182,255,173,255, +167,255,164,255,161,255,158,255,160,255,165,255,169,255,170,255,168,255,166,255,166,255,166,255,168,255,170,255,172,255,173,255, +174,255,173,255,176,255,181,255,190,255,203,255,225,255,250,255,19,0,45,0,69,0,85,0,94,0,97,0,103,0,113,0, +123,0,132,0,139,0,143,0,142,0,137,0,127,0,113,0,101,0,90,0,79,0,70,0,61,0,52,0,43,0,31,0, +15,0,250,255,230,255,212,255,199,255,191,255,187,255,185,255,181,255,174,255,165,255,158,255,158,255,167,255,187,255,211,255, +240,255,15,0,46,0,73,0,95,0,114,0,130,0,146,0,159,0,170,0,182,0,196,0,207,0,211,0,207,0,194,0, +172,0,143,0,112,0,84,0,62,0,45,0,31,0,20,0,10,0,0,0,244,255,229,255,213,255,196,255,179,255,164,255, +155,255,153,255,159,255,169,255,177,255,185,255,193,255,200,255,206,255,212,255,217,255,219,255,219,255,219,255,222,255,226,255, +226,255,222,255,211,255,196,255,185,255,177,255,166,255,155,255,143,255,127,255,116,255,113,255,116,255,120,255,123,255,125,255, +124,255,126,255,131,255,139,255,151,255,165,255,178,255,187,255,194,255,206,255,216,255,222,255,227,255,234,255,244,255,254,255, +6,0,15,0,28,0,43,0,52,0,58,0,63,0,67,0,69,0,70,0,72,0,72,0,66,0,56,0,46,0,36,0, +25,0,13,0,4,0,254,255,250,255,241,255,229,255,221,255,217,255,214,255,217,255,231,255,251,255,13,0,27,0,36,0, +41,0,42,0,36,0,25,0,11,0,251,255,232,255,215,255,204,255,192,255,174,255,151,255,129,255,114,255,103,255,96,255, +95,255,100,255,105,255,106,255,108,255,119,255,135,255,150,255,161,255,174,255,194,255,218,255,242,255,8,0,26,0,39,0, +54,0,72,0,94,0,116,0,136,0,158,0,184,0,205,0,217,0,226,0,240,0,2,1,12,1,11,1,9,1,8,1, +4,1,247,0,229,0,208,0,188,0,166,0,138,0,106,0,72,0,41,0,14,0,247,255,225,255,202,255,178,255,151,255, +125,255,102,255,82,255,64,255,48,255,34,255,22,255,20,255,30,255,53,255,82,255,114,255,150,255,189,255,225,255,1,0, +31,0,62,0,89,0,106,0,111,0,111,0,111,0,110,0,107,0,105,0,103,0,100,0,94,0,89,0,88,0,89,0, +88,0,87,0,88,0,92,0,92,0,88,0,86,0,87,0,92,0,97,0,101,0,104,0,107,0,112,0,114,0,114,0, +115,0,111,0,97,0,67,0,21,0,221,255,162,255,107,255,62,255,34,255,14,255,247,254,217,254,188,254,161,254,135,254, +103,254,68,254,37,254,15,254,3,254,4,254,16,254,26,254,25,254,14,254,1,254,246,253,238,253,238,253,5,254,54,254, +115,254,172,254,222,254,18,255,73,255,126,255,183,255,255,255,85,0,176,0,8,1,92,1,172,1,236,1,22,2,42,2, +49,2,44,2,27,2,5,2,248,1,242,1,223,1,187,1,148,1,111,1,70,1,27,1,251,0,247,0,10,1,34,1, +50,1,62,1,70,1,75,1,81,1,96,1,122,1,152,1,180,1,210,1,249,1,30,2,58,2,78,2,91,2,97,2, +98,2,100,2,105,2,110,2,108,2,97,2,73,2,36,2,248,1,210,1,178,1,152,1,130,1,110,1,90,1,66,1, +31,1,243,0,197,0,153,0,112,0,75,0,46,0,26,0,14,0,0,0,243,255,236,255,233,255,225,255,210,255,196,255, +184,255,173,255,165,255,162,255,167,255,177,255,182,255,179,255,170,255,162,255,151,255,137,255,121,255,98,255,59,255,0,255, +188,254,117,254,39,254,203,253,103,253,6,253,170,252,78,252,248,251,184,251,148,251,129,251,124,251,140,251,180,251,237,251, +47,252,117,252,196,252,33,253,133,253,228,253,63,254,157,254,0,255,106,255,220,255,76,0,183,0,28,1,119,1,196,1, +10,2,74,2,121,2,128,2,88,2,19,2,198,1,123,1,48,1,236,0,180,0,132,0,78,0,14,0,210,255,162,255, +124,255,97,255,91,255,113,255,149,255,173,255,177,255,174,255,161,255,123,255,65,255,11,255,236,254,233,254,255,254,45,255, +113,255,187,255,242,255,15,0,38,0,63,0,85,0,105,0,131,0,160,0,175,0,166,0,144,0,122,0,101,0,75,0, +47,0,24,0,9,0,248,255,224,255,197,255,170,255,142,255,113,255,91,255,85,255,99,255,136,255,198,255,22,0,108,0, +196,0,28,1,113,1,193,1,9,2,75,2,131,2,175,2,204,2,212,2,188,2,133,2,56,2,229,1,157,1,98,1, +45,1,243,0,184,0,127,0,70,0,13,0,214,255,161,255,107,255,46,255,238,254,176,254,125,254,83,254,46,254,13,254, +250,253,249,253,11,254,53,254,123,254,203,254,15,255,66,255,99,255,118,255,126,255,127,255,128,255,138,255,156,255,173,255, +187,255,205,255,235,255,15,0,53,0,89,0,122,0,145,0,163,0,172,0,164,0,142,0,116,0,89,0,57,0,28,0, +5,0,243,255,231,255,226,255,229,255,231,255,216,255,188,255,166,255,165,255,171,255,171,255,164,255,160,255,149,255,113,255, +52,255,240,254,177,254,122,254,87,254,91,254,140,254,206,254,247,254,250,254,231,254,198,254,138,254,48,254,197,253,93,253, +1,253,188,252,143,252,111,252,72,252,23,252,232,251,205,251,207,251,241,251,58,252,175,252,64,253,207,253,83,254,216,254, +101,255,242,255,115,0,243,0,126,1,11,2,138,2,250,2,95,3,180,3,241,3,25,4,59,4,91,4,109,4,115,4, +117,4,110,4,84,4,41,4,248,3,200,3,148,3,83,3,15,3,214,2,166,2,105,2,21,2,180,1,83,1,251,0, +183,0,143,0,126,0,117,0,109,0,110,0,135,0,183,0,246,0,65,1,155,1,254,1,93,2,178,2,253,2,64,3, +118,3,153,3,176,3,195,3,207,3,212,3,211,3,205,3,197,3,186,3,155,3,98,3,21,3,189,2,89,2,233,1, +118,1,8,1,159,0,49,0,189,255,65,255,194,254,75,254,226,253,132,253,49,253,234,252,175,252,133,252,110,252,101,252, +97,252,89,252,78,252,64,252,47,252,31,252,18,252,3,252,239,251,214,251,187,251,164,251,145,251,128,251,110,251,94,251, +77,251,62,251,57,251,73,251,110,251,166,251,236,251,61,252,152,252,253,252,106,253,220,253,87,254,219,254,104,255,254,255, +156,0,62,1,219,1,107,2,235,2,81,3,143,3,159,3,142,3,106,3,51,3,229,2,124,2,0,2,127,1,247,0, +98,0,196,255,45,255,169,254,64,254,248,253,211,253,215,253,244,253,7,254,250,253,211,253,161,253,101,253,39,253,252,252, +245,252,16,253,67,253,144,253,249,253,109,254,210,254,31,255,107,255,201,255,61,0,186,0,55,1,175,1,31,2,128,2, +209,2,21,3,76,3,115,3,138,3,149,3,154,3,148,3,125,3,86,3,30,3,205,2,102,2,247,1,141,1,46,1, +221,0,148,0,79,0,12,0,207,255,164,255,147,255,156,255,184,255,224,255,12,0,59,0,111,0,164,0,208,0,241,0, +12,1,36,1,55,1,82,1,129,1,186,1,234,1,12,2,39,2,62,2,73,2,64,2,30,2,237,1,182,1,121,1, +55,1,239,0,158,0,74,0,0,0,204,255,172,255,150,255,129,255,107,255,77,255,31,255,230,254,180,254,147,254,116,254, +76,254,37,254,13,254,3,254,255,253,7,254,40,254,90,254,150,254,221,254,51,255,148,255,233,255,30,0,51,0,52,0, +40,0,13,0,230,255,185,255,147,255,128,255,127,255,139,255,159,255,183,255,205,255,226,255,238,255,231,255,203,255,153,255, +78,255,238,254,132,254,24,254,184,253,118,253,84,253,69,253,59,253,54,253,64,253,101,253,161,253,235,253,72,254,176,254, +12,255,75,255,105,255,112,255,95,255,44,255,218,254,124,254,31,254,209,253,164,253,153,253,159,253,164,253,159,253,150,253, +146,253,151,253,172,253,223,253,42,254,123,254,200,254,33,255,146,255,10,0,111,0,201,0,50,1,169,1,23,2,117,2, +205,2,32,3,100,3,150,3,197,3,248,3,28,4,38,4,35,4,38,4,46,4,50,4,50,4,53,4,52,4,31,4, +235,3,166,3,107,3,58,3,250,2,159,2,50,2,198,1,103,1,25,1,224,0,194,0,189,0,198,0,210,0,224,0, +245,0,16,1,36,1,47,1,61,1,85,1,115,1,152,1,199,1,253,1,53,2,114,2,185,2,13,3,99,3,176,3, +241,3,30,4,44,4,21,4,223,3,143,3,36,3,155,2,250,1,76,1,149,0,221,255,43,255,136,254,254,253,147,253, +63,253,247,252,179,252,109,252,37,252,222,251,161,251,119,251,96,251,73,251,38,251,249,250,207,250,164,250,115,250,72,250, +56,250,76,250,120,250,175,250,234,250,47,251,120,251,179,251,220,251,8,252,62,252,122,252,189,252,23,253,144,253,33,254, +192,254,107,255,33,0,219,0,146,1,61,2,219,2,103,3,209,3,16,4,38,4,21,4,224,3,141,3,26,3,135,2, +231,1,78,1,193,0,48,0,146,255,250,254,128,254,38,254,228,253,191,253,195,253,221,253,233,253,220,253,203,253,185,253, +141,253,67,253,246,252,197,252,178,252,177,252,195,252,239,252,37,253,78,253,106,253,138,253,181,253,234,253,54,254,168,254, +59,255,221,255,137,0,72,1,10,2,183,2,82,3,227,3,101,4,201,4,9,5,46,5,65,5,63,5,34,5,235,4, +163,4,72,4,221,3,113,3,19,3,188,2,103,2,21,2,201,1,130,1,64,1,0,1,199,0,153,0,120,0,100,0, +93,0,93,0,94,0,98,0,111,0,137,0,173,0,216,0,5,1,48,1,85,1,121,1,159,1,196,1,222,1,227,1, +216,1,197,1,172,1,133,1,85,1,41,1,18,1,24,1,49,1,78,1,109,1,143,1,165,1,160,1,127,1,76,1, +11,1,176,0,48,0,159,255,22,255,157,254,44,254,196,253,108,253,42,253,252,252,224,252,217,252,225,252,235,252,247,252, +20,253,76,253,142,253,198,253,234,253,5,254,30,254,55,254,81,254,112,254,147,254,190,254,255,254,89,255,185,255,9,0, +60,0,88,0,101,0,105,0,103,0,94,0,57,0,232,255,125,255,28,255,213,254,159,254,125,254,122,254,142,254,155,254, +149,254,140,254,138,254,133,254,113,254,97,254,108,254,140,254,158,254,141,254,96,254,31,254,200,253,97,253,255,252,188,252, +161,252,176,252,229,252,56,253,152,253,238,253,52,254,126,254,211,254,47,255,149,255,19,0,159,0,26,1,118,1,187,1, +244,1,25,2,50,2,78,2,112,2,144,2,162,2,157,2,138,2,115,2,85,2,41,2,255,1,232,1,235,1,8,2, +63,2,140,2,213,2,4,3,27,3,40,3,47,3,43,3,24,3,252,2,224,2,195,2,155,2,97,2,29,2,221,1, +169,1,132,1,116,1,122,1,144,1,172,1,196,1,211,1,229,1,252,1,11,2,19,2,36,2,60,2,80,2,102,2, +137,2,181,2,216,2,236,2,247,2,255,2,2,3,247,2,214,2,151,2,50,2,167,1,8,1,108,0,215,255,61,255, +155,254,6,254,147,253,63,253,253,252,204,252,182,252,182,252,200,252,236,252,25,253,63,253,73,253,49,253,251,252,170,252, +67,252,217,251,124,251,51,251,250,250,209,250,189,250,199,250,222,250,235,250,240,250,1,251,42,251,100,251,165,251,250,251, +119,252,22,253,193,253,116,254,53,255,255,255,197,0,128,1,60,2,253,2,165,3,18,4,70,4,80,4,46,4,216,3, +81,3,183,2,37,2,149,1,239,0,44,0,93,255,157,254,251,253,123,253,35,253,253,252,254,252,11,253,15,253,10,253, +253,252,218,252,159,252,98,252,59,252,50,252,71,252,116,252,186,252,9,253,70,253,101,253,115,253,132,253,164,253,215,253, +33,254,127,254,232,254,86,255,210,255,99,0,1,1,165,1,80,2,255,2,172,3,75,4,209,4,56,5,121,5,141,5, +122,5,79,5,23,5,213,4,139,4,63,4,242,3,151,3,48,3,208,2,131,2,71,2,24,2,241,1,217,1,209,1, +204,1,196,1,188,1,177,1,162,1,146,1,136,1,138,1,155,1,181,1,211,1,247,1,29,2,61,2,81,2,90,2, +85,2,59,2,9,2,203,1,130,1,50,1,226,0,154,0,93,0,50,0,28,0,29,0,41,0,57,0,73,0,77,0, +58,0,26,0,252,255,223,255,185,255,132,255,65,255,251,254,180,254,104,254,23,254,200,253,132,253,84,253,52,253,17,253, +227,252,187,252,168,252,159,252,144,252,128,252,132,252,154,252,181,252,209,252,249,252,50,253,119,253,192,253,23,254,125,254, +228,254,66,255,153,255,232,255,40,0,85,0,116,0,141,0,151,0,132,0,89,0,42,0,4,0,234,255,216,255,193,255, +162,255,130,255,96,255,47,255,230,254,147,254,76,254,18,254,217,253,170,253,149,253,140,253,110,253,47,253,235,252,182,252, +133,252,81,252,44,252,37,252,45,252,58,252,91,252,156,252,236,252,54,253,125,253,215,253,74,254,195,254,52,255,171,255, +50,0,184,0,46,1,158,1,20,2,142,2,249,2,71,3,124,3,154,3,157,3,139,3,116,3,91,3,53,3,1,3, +205,2,167,2,144,2,131,2,113,2,78,2,27,2,233,1,196,1,174,1,153,1,123,1,89,1,59,1,31,1,0,1, +236,0,242,0,2,1,13,1,31,1,70,1,119,1,167,1,213,1,10,2,71,2,134,2,195,2,7,3,83,3,152,3, +212,3,15,4,74,4,120,4,143,4,145,4,131,4,99,4,52,4,255,3,194,3,111,3,2,3,127,2,235,1,73,1, +163,0,2,0,105,255,215,254,90,254,253,253,189,253,150,253,130,253,118,253,114,253,131,253,166,253,195,253,201,253,185,253, +156,253,117,253,67,253,9,253,209,252,165,252,127,252,79,252,19,252,216,251,161,251,105,251,55,251,18,251,0,251,255,250, +15,251,48,251,91,251,146,251,220,251,60,252,183,252,77,253,248,253,173,254,109,255,56,0,5,1,200,1,104,2,211,2, +11,3,29,3,16,3,233,2,169,2,92,2,21,2,215,1,139,1,32,1,160,0,31,0,170,255,65,255,241,254,205,254, +212,254,231,254,223,254,185,254,132,254,60,254,217,253,123,253,66,253,43,253,42,253,61,253,95,253,128,253,146,253,146,253, +141,253,141,253,154,253,194,253,9,254,104,254,206,254,56,255,174,255,45,0,172,0,49,1,200,1,109,2,18,3,172,3, +48,4,158,4,236,4,8,5,252,4,234,4,221,4,196,4,150,4,81,4,251,3,150,3,37,3,182,2,92,2,31,2, +248,1,221,1,211,1,219,1,225,1,214,1,187,1,151,1,113,1,84,1,75,1,99,1,157,1,227,1,29,2,71,2, +102,2,125,2,134,2,123,2,99,2,69,2,32,2,243,1,184,1,109,1,20,1,176,0,68,0,225,255,146,255,83,255, +30,255,250,254,242,254,244,254,228,254,195,254,170,254,158,254,135,254,91,254,47,254,22,254,9,254,244,253,210,253,180,253, +159,253,134,253,103,253,79,253,70,253,73,253,83,253,104,253,135,253,163,253,175,253,174,253,172,253,191,253,244,253,68,254, +157,254,255,254,113,255,243,255,118,0,227,0,45,1,87,1,111,1,126,1,117,1,70,1,244,0,149,0,55,0,226,255, +149,255,80,255,26,255,252,254,248,254,249,254,223,254,168,254,118,254,100,254,112,254,132,254,160,254,207,254,254,254,5,255, +221,254,160,254,104,254,47,254,237,253,182,253,167,253,188,253,219,253,250,253,29,254,62,254,77,254,77,254,90,254,135,254, +196,254,254,254,57,255,128,255,203,255,25,0,123,0,254,0,148,1,41,2,178,2,43,3,144,3,207,3,226,3,217,3, +197,3,168,3,123,3,67,3,10,3,220,2,188,2,162,2,131,2,89,2,35,2,230,1,178,1,145,1,116,1,81,1, +46,1,18,1,247,0,214,0,171,0,123,0,86,0,73,0,88,0,126,0,173,0,217,0,1,1,49,1,110,1,187,1, +13,2,91,2,166,2,237,2,41,3,86,3,119,3,143,3,144,3,111,3,58,3,5,3,208,2,141,2,56,2,209,1, +81,1,175,0,251,255,80,255,181,254,24,254,121,253,232,252,119,252,36,252,222,251,153,251,80,251,20,251,250,250,3,251, +25,251,37,251,36,251,35,251,46,251,62,251,70,251,76,251,90,251,114,251,148,251,199,251,7,252,69,252,119,252,171,252, +231,252,41,253,107,253,187,253,38,254,166,254,51,255,203,255,95,0,215,0,43,1,113,1,191,1,13,2,59,2,73,2, +75,2,66,2,15,2,159,1,19,1,156,0,52,0,175,255,2,255,87,254,221,253,144,253,80,253,26,253,12,253,31,253, +46,253,47,253,54,253,74,253,78,253,46,253,2,253,244,252,12,253,61,253,138,253,251,253,127,254,242,254,77,255,161,255, +237,255,39,0,86,0,141,0,195,0,233,0,9,1,64,1,145,1,235,1,71,2,169,2,14,3,92,3,131,3,156,3, +198,3,245,3,12,4,28,4,67,4,112,4,128,4,106,4,65,4,18,4,215,3,137,3,49,3,214,2,120,2,27,2, +211,1,171,1,145,1,110,1,70,1,41,1,30,1,30,1,35,1,49,1,78,1,136,1,216,1,44,2,127,2,217,2, +53,3,133,3,189,3,217,3,223,3,210,3,166,3,87,3,245,2,149,2,69,2,12,2,233,1,206,1,169,1,115,1, +59,1,2,1,178,0,62,0,185,255,70,255,231,254,137,254,38,254,207,253,138,253,75,253,15,253,225,252,199,252,191,252, +196,252,202,252,196,252,175,252,140,252,103,252,75,252,58,252,36,252,14,252,4,252,1,252,254,251,5,252,35,252,92,252, +174,252,23,253,151,253,41,254,189,254,63,255,173,255,19,0,117,0,192,0,234,0,254,0,14,1,25,1,15,1,245,0, +228,0,232,0,228,0,188,0,124,0,64,0,6,0,175,255,60,255,213,254,150,254,112,254,76,254,50,254,49,254,55,254, +35,254,252,253,231,253,238,253,246,253,236,253,218,253,207,253,201,253,195,253,202,253,239,253,51,254,130,254,201,254,10,255, +77,255,144,255,210,255,26,0,103,0,187,0,28,1,142,1,12,2,134,2,245,2,93,3,176,3,218,3,225,3,220,3, +211,3,189,3,149,3,112,3,92,3,66,3,255,2,147,2,38,2,200,1,111,1,18,1,187,0,120,0,66,0,13,0, +219,255,186,255,171,255,167,255,186,255,241,255,59,0,126,0,186,0,247,0,53,1,108,1,161,1,225,1,44,2,119,2, +190,2,4,3,71,3,134,3,194,3,244,3,8,4,245,3,197,3,137,3,70,3,249,2,161,2,64,2,212,1,86,1, +202,0,59,0,162,255,251,254,79,254,174,253,31,253,152,252,29,252,189,251,123,251,70,251,21,251,236,250,210,250,207,250, +224,250,1,251,43,251,74,251,89,251,102,251,125,251,158,251,199,251,250,251,53,252,112,252,174,252,249,252,80,253,172,253, +25,254,170,254,93,255,34,0,226,0,150,1,62,2,210,2,66,3,139,3,170,3,148,3,69,3,202,2,60,2,164,1, +247,0,54,0,112,255,189,254,22,254,97,253,160,252,246,251,127,251,54,251,12,251,4,251,39,251,106,251,167,251,199,251, +214,251,223,251,220,251,212,251,232,251,43,252,137,252,237,252,89,253,209,253,70,254,164,254,238,254,55,255,124,255,180,255, +232,255,34,0,90,0,129,0,160,0,215,0,53,1,168,1,39,2,180,2,67,3,186,3,9,4,57,4,87,4,94,4, +71,4,37,4,18,4,15,4,18,4,23,4,23,4,1,4,200,3,124,3,60,3,16,3,229,2,180,2,137,2,112,2, +91,2,54,2,6,2,221,1,193,1,180,1,189,1,224,1,22,2,81,2,140,2,201,2,7,3,63,3,105,3,138,3, +176,3,221,3,248,3,243,3,218,3,192,3,173,3,159,3,152,3,154,3,160,3,165,3,172,3,176,3,164,3,115,3, +21,3,156,2,33,2,164,1,22,1,120,0,227,255,105,255,2,255,158,254,59,254,227,253,158,253,113,253,89,253,77,253, +54,253,9,253,206,252,142,252,74,252,8,252,206,251,158,251,116,251,83,251,77,251,105,251,149,251,192,251,234,251,21,252, +62,252,91,252,107,252,123,252,145,252,162,252,171,252,181,252,210,252,12,253,93,253,190,253,52,254,201,254,123,255,58,0, +231,0,106,1,190,1,230,1,237,1,219,1,174,1,111,1,44,1,247,0,205,0,148,0,50,0,183,255,77,255,12,255, +236,254,231,254,7,255,74,255,143,255,175,255,167,255,131,255,70,255,251,254,198,254,198,254,230,254,9,255,53,255,116,255, +177,255,207,255,209,255,212,255,228,255,244,255,250,255,1,0,15,0,19,0,0,0,228,255,213,255,223,255,19,0,127,0, +26,1,193,1,86,2,206,2,41,3,87,3,82,3,54,3,30,3,7,3,224,2,174,2,125,2,79,2,16,2,192,1, +114,1,51,1,0,1,215,0,187,0,172,0,167,0,158,0,141,0,118,0,86,0,62,0,70,0,120,0,208,0,72,1, +211,1,91,2,204,2,33,3,91,3,121,3,117,3,74,3,251,2,155,2,49,2,180,1,31,1,121,0,205,255,40,255, +156,254,53,254,250,253,223,253,217,253,223,253,226,253,211,253,184,253,154,253,117,253,62,253,252,252,195,252,155,252,118,252, +72,252,23,252,241,251,218,251,200,251,184,251,176,251,182,251,200,251,227,251,7,252,49,252,88,252,134,252,206,252,58,253, +205,253,147,254,137,255,153,0,164,1,153,2,124,3,78,4,244,4,75,5,77,5,12,5,147,4,219,3,228,2,191,1, +130,0,68,255,33,254,36,253,69,252,135,251,247,250,164,250,141,250,158,250,204,250,24,251,125,251,237,251,87,252,182,252, +12,253,72,253,96,253,107,253,135,253,191,253,17,254,123,254,245,254,109,255,200,255,248,255,1,0,236,255,200,255,171,255, +160,255,165,255,180,255,206,255,2,0,80,0,173,0,16,1,123,1,238,1,95,2,198,2,36,3,120,3,177,3,195,3, +181,3,147,3,103,3,54,3,7,3,227,2,205,2,199,2,216,2,7,3,74,3,147,3,219,3,30,4,75,4,89,4, +74,4,35,4,230,3,156,3,89,3,47,3,28,3,13,3,11,3,40,3,93,3,138,3,155,3,140,3,107,3,60,3, +248,2,164,2,80,2,2,2,179,1,101,1,42,1,15,1,21,1,56,1,117,1,186,1,248,1,46,2,95,2,131,2, +138,2,109,2,48,2,221,1,115,1,241,0,90,0,188,255,39,255,169,254,69,254,248,253,191,253,147,253,107,253,53,253, +239,252,167,252,96,252,22,252,199,251,121,251,46,251,229,250,158,250,99,250,69,250,77,250,115,250,169,250,235,250,62,251, +149,251,215,251,1,252,29,252,53,252,82,252,123,252,177,252,246,252,83,253,206,253,88,254,230,254,135,255,72,0,26,1, +209,1,76,2,144,2,182,2,190,2,150,2,67,2,229,1,151,1,66,1,193,0,13,0,68,255,147,254,16,254,178,253, +127,253,131,253,172,253,208,253,214,253,199,253,172,253,129,253,74,253,48,253,88,253,188,253,70,254,240,254,176,255,103,0, +236,0,56,1,105,1,142,1,158,1,146,1,118,1,82,1,30,1,217,0,159,0,128,0,118,0,135,0,193,0,35,1, +146,1,245,1,76,2,172,2,8,3,65,3,86,3,106,3,133,3,143,3,111,3,42,3,213,2,124,2,27,2,181,1, +94,1,41,1,20,1,19,1,32,1,47,1,45,1,18,1,226,0,176,0,148,0,151,0,183,0,251,0,99,1,223,1, +88,2,198,2,38,3,105,3,137,3,136,3,104,3,45,3,210,2,71,2,140,1,183,0,230,255,47,255,159,254,54,254, +242,253,206,253,198,253,209,253,226,253,237,253,241,253,238,253,229,253,220,253,206,253,187,253,163,253,127,253,82,253,36,253, +246,252,199,252,155,252,118,252,82,252,38,252,238,251,182,251,135,251,100,251,86,251,97,251,138,251,217,251,83,252,251,252, +214,253,211,254,215,255,212,0,208,1,207,2,188,3,117,4,230,4,8,5,225,4,124,4,212,3,220,2,165,1,85,0, +21,255,251,253,6,253,50,252,137,251,23,251,220,250,209,250,238,250,39,251,104,251,165,251,222,251,23,252,66,252,77,252, +59,252,45,252,55,252,79,252,112,252,172,252,17,253,144,253,2,254,80,254,132,254,173,254,205,254,228,254,253,254,40,255, +99,255,167,255,252,255,110,0,250,0,153,1,70,2,252,2,177,3,77,4,195,4,33,5,108,5,149,5,143,5,85,5, +243,4,123,4,249,3,126,3,23,3,196,2,137,2,113,2,118,2,129,2,139,2,157,2,195,2,247,2,29,3,35,3, +16,3,243,2,207,2,168,2,138,2,121,2,110,2,113,2,140,2,185,2,232,2,7,3,17,3,16,3,14,3,4,3, +235,2,198,2,160,2,132,2,117,2,118,2,148,2,219,2,66,3,174,3,6,4,68,4,107,4,111,4,71,4,245,3, +132,3,245,2,73,2,141,1,205,0,15,0,87,255,176,254,39,254,188,253,104,253,45,253,21,253,18,253,11,253,243,252, +196,252,129,252,55,252,234,251,148,251,56,251,224,250,146,250,93,250,79,250,108,250,173,250,0,251,82,251,155,251,221,251, +22,252,64,252,93,252,135,252,205,252,39,253,136,253,235,253,86,254,215,254,114,255,37,0,234,0,171,1,74,2,181,2, +246,2,31,3,47,3,13,3,174,2,47,2,175,1,40,1,119,0,145,255,161,254,219,253,66,253,192,252,93,252,57,252, +81,252,113,252,121,252,126,252,143,252,157,252,155,252,167,252,227,252,77,253,207,253,99,254,6,255,159,255,20,0,97,0, +149,0,187,0,217,0,241,0,9,1,28,1,33,1,27,1,21,1,16,1,13,1,24,1,68,1,143,1,226,1,51,2, +136,2,224,2,38,3,70,3,75,3,71,3,62,3,51,3,33,3,254,2,207,2,153,2,89,2,19,2,209,1,147,1, +96,1,67,1,59,1,61,1,57,1,44,1,23,1,4,1,10,1,57,1,136,1,237,1,107,2,248,2,124,3,236,3, +74,4,156,4,217,4,241,4,221,4,164,4,77,4,207,3,39,3,103,2,166,1,237,0,65,0,169,255,41,255,201,254, +138,254,104,254,92,254,82,254,58,254,27,254,1,254,230,253,187,253,127,253,70,253,27,253,241,252,190,252,128,252,61,252, +2,252,221,251,197,251,169,251,128,251,85,251,55,251,45,251,54,251,81,251,120,251,166,251,226,251,67,252,216,252,156,253, +131,254,130,255,136,0,133,1,106,2,36,3,173,3,18,4,85,4,94,4,20,4,120,3,168,2,197,1,215,0,224,255, +247,254,50,254,138,253,242,252,99,252,233,251,145,251,99,251,92,251,119,251,173,251,239,251,45,252,93,252,126,252,138,252, +120,252,75,252,23,252,0,252,31,252,103,252,177,252,242,252,54,253,118,253,152,253,157,253,174,253,238,253,83,254,194,254, +44,255,151,255,5,0,121,0,251,0,152,1,76,2,7,3,184,3,82,4,200,4,8,5,16,5,241,4,193,4,137,4, +78,4,24,4,248,3,242,3,248,3,251,3,252,3,244,3,223,3,200,3,182,3,164,3,140,3,113,3,89,3,60,3, +11,3,190,2,97,2,21,2,239,1,228,1,220,1,217,1,233,1,9,2,35,2,37,2,15,2,244,1,228,1,226,1, +233,1,247,1,9,2,22,2,32,2,51,2,85,2,132,2,192,2,4,3,69,3,125,3,162,3,169,3,133,3,45,3, +173,2,27,2,131,1,225,0,67,0,191,255,86,255,248,254,152,254,62,254,247,253,199,253,169,253,149,253,135,253,122,253, +94,253,33,253,201,252,102,252,7,252,173,251,85,251,0,251,179,250,125,250,101,250,102,250,129,250,182,250,252,250,69,251, +139,251,216,251,65,252,203,252,101,253,10,254,179,254,83,255,220,255,81,0,199,0,77,1,212,1,61,2,123,2,147,2, +135,2,88,2,1,2,142,1,29,1,182,0,67,0,173,255,6,255,113,254,248,253,136,253,35,253,221,252,193,252,193,252, +200,252,212,252,241,252,22,253,42,253,46,253,66,253,124,253,211,253,59,254,193,254,102,255,252,255,93,0,141,0,158,0, +158,0,146,0,136,0,140,0,144,0,129,0,111,0,121,0,163,0,218,0,18,1,79,1,144,1,195,1,225,1,253,1, +34,2,66,2,74,2,63,2,50,2,32,2,3,2,228,1,210,1,199,1,178,1,147,1,125,1,113,1,106,1,108,1, +132,1,177,1,230,1,16,2,43,2,61,2,65,2,63,2,88,2,149,2,229,2,54,3,133,3,215,3,36,4,85,4, +106,4,115,4,115,4,84,4,6,4,148,3,11,3,101,2,164,1,223,0,49,0,159,255,35,255,189,254,116,254,69,254, +31,254,244,253,193,253,141,253,92,253,46,253,7,253,233,252,203,252,166,252,138,252,127,252,133,252,151,252,172,252,185,252, +188,252,177,252,150,252,116,252,83,252,51,252,27,252,15,252,7,252,250,251,243,251,4,252,56,252,154,252,49,253,250,253, +229,254,226,255,225,0,195,1,115,2,249,2,105,3,186,3,205,3,146,3,19,3,104,2,154,1,167,0,170,255,212,254, +62,254,214,253,122,253,15,253,145,252,20,252,176,251,115,251,96,251,117,251,164,251,208,251,226,251,229,251,227,251,208,251, +167,251,134,251,153,251,243,251,119,252,1,253,135,253,11,254,133,254,220,254,9,255,32,255,53,255,79,255,116,255,167,255, +229,255,41,0,117,0,214,0,95,1,8,2,178,2,68,3,185,3,14,4,68,4,93,4,94,4,77,4,39,4,242,3, +190,3,148,3,119,3,106,3,115,3,142,3,172,3,193,3,207,3,213,3,211,3,208,3,209,3,209,3,196,3,152,3, +71,3,225,2,127,2,55,2,21,2,29,2,73,2,141,2,216,2,25,3,61,3,67,3,63,3,64,3,67,3,62,3, +48,3,24,3,235,2,170,2,110,2,74,2,62,2,67,2,84,2,111,2,139,2,151,2,137,2,93,2,13,2,161,1, +49,1,201,0,98,0,245,255,134,255,30,255,184,254,79,254,246,253,193,253,179,253,189,253,199,253,200,253,195,253,178,253, +134,253,64,253,238,252,154,252,68,252,230,251,133,251,39,251,209,250,142,250,107,250,106,250,132,250,177,250,234,250,53,251, +148,251,6,252,141,252,39,253,200,253,94,254,221,254,78,255,193,255,62,0,193,0,62,1,172,1,253,1,35,2,31,2, +249,1,179,1,90,1,4,1,184,0,103,0,1,0,135,255,7,255,149,254,56,254,239,253,182,253,141,253,114,253,99,253, +92,253,83,253,58,253,22,253,5,253,32,253,84,253,137,253,205,253,69,254,228,254,119,255,218,255,21,0,66,0,106,0, +138,0,169,0,210,0,251,0,21,1,43,1,75,1,118,1,169,1,222,1,14,2,47,2,48,2,22,2,251,1,245,1, +249,1,246,1,233,1,218,1,203,1,181,1,154,1,131,1,118,1,109,1,99,1,86,1,71,1,56,1,59,1,93,1, +147,1,200,1,236,1,6,2,41,2,92,2,154,2,229,2,63,3,162,3,5,4,97,4,173,4,228,4,6,5,23,5, +24,5,254,4,188,4,77,4,187,3,18,3,95,2,171,1,0,1,109,0,245,255,142,255,45,255,206,254,114,254,21,254, +177,253,68,253,212,252,102,252,0,252,172,251,120,251,99,251,101,251,124,251,161,251,202,251,246,251,36,252,89,252,153,252, +218,252,16,253,48,253,55,253,54,253,54,253,44,253,17,253,242,252,227,252,246,252,55,253,175,253,97,254,69,255,72,0, +78,1,53,2,241,2,135,3,252,3,81,4,114,4,63,4,172,3,214,2,228,1,226,0,207,255,200,254,251,253,114,253, +9,253,153,252,24,252,158,251,71,251,28,251,32,251,81,251,157,251,231,251,36,252,82,252,112,252,109,252,71,252,22,252, +2,252,35,252,120,252,238,252,108,253,227,253,75,254,158,254,209,254,224,254,216,254,208,254,215,254,240,254,24,255,75,255, +136,255,216,255,65,0,198,0,90,1,242,1,135,2,15,3,123,3,205,3,5,4,31,4,21,4,240,3,202,3,176,3, +152,3,128,3,111,3,110,3,119,3,130,3,140,3,149,3,150,3,147,3,146,3,147,3,136,3,108,3,63,3,6,3, +196,2,128,2,77,2,54,2,52,2,60,2,79,2,115,2,155,2,182,2,193,2,206,2,229,2,0,3,21,3,23,3, +255,2,212,2,166,2,140,2,149,2,188,2,241,2,36,3,78,3,108,3,124,3,125,3,105,3,51,3,221,2,116,2, +250,1,105,1,196,0,19,0,103,255,210,254,86,254,233,253,139,253,74,253,33,253,254,252,221,252,201,252,194,252,186,252, +163,252,120,252,64,252,2,252,187,251,106,251,26,251,220,250,185,250,175,250,187,250,226,250,32,251,107,251,175,251,227,251, +20,252,99,252,210,252,82,253,219,253,107,254,245,254,104,255,202,255,57,0,208,0,136,1,55,2,171,2,220,2,228,2, +211,2,164,2,82,2,239,1,135,1,13,1,105,0,159,255,207,254,18,254,114,253,239,252,148,252,112,252,128,252,173,252, +224,252,20,253,78,253,133,253,162,253,168,253,188,253,4,254,118,254,236,254,84,255,177,255,248,255,22,0,15,0,4,0, +18,0,56,0,104,0,155,0,203,0,240,0,10,1,34,1,56,1,69,1,69,1,66,1,75,1,86,1,83,1,70,1, +69,1,83,1,99,1,112,1,134,1,176,1,234,1,35,2,80,2,105,2,101,2,74,2,42,2,11,2,230,1,194,1, +170,1,162,1,159,1,150,1,135,1,119,1,129,1,189,1,47,2,190,2,71,3,189,3,44,4,150,4,225,4,245,4, +217,4,166,4,97,4,242,3,82,3,154,2,221,1,32,1,104,0,194,255,58,255,213,254,134,254,70,254,22,254,244,253, +208,253,159,253,95,253,23,253,216,252,172,252,136,252,98,252,66,252,53,252,62,252,85,252,107,252,128,252,160,252,200,252, +233,252,250,252,255,252,249,252,233,252,204,252,175,252,163,252,172,252,194,252,237,252,73,253,232,253,194,254,197,255,222,0, +244,1,244,2,218,3,159,4,45,5,101,5,51,5,168,4,234,3,251,2,206,1,118,0,31,255,243,253,243,252,17,252, +75,251,171,250,58,250,4,250,19,250,97,250,210,250,65,251,157,251,240,251,63,252,127,252,162,252,160,252,139,252,140,252, +185,252,2,253,83,253,167,253,254,253,82,254,152,254,204,254,235,254,249,254,250,254,246,254,255,254,35,255,93,255,165,255, +4,0,135,0,38,1,201,1,87,2,191,2,1,3,50,3,103,3,155,3,189,3,199,3,201,3,210,3,223,3,224,3, +204,3,168,3,122,3,79,3,47,3,35,3,43,3,56,3,57,3,46,3,32,3,15,3,245,2,204,2,158,2,120,2, +104,2,127,2,182,2,248,2,58,3,120,3,174,3,214,3,225,3,200,3,152,3,99,3,48,3,246,2,162,2,54,2, +201,1,115,1,73,1,87,1,155,1,255,1,97,2,173,2,231,2,22,3,42,3,18,3,210,2,127,2,32,2,176,1, +41,1,137,0,217,255,39,255,127,254,233,253,114,253,31,253,241,252,231,252,247,252,15,253,32,253,37,253,25,253,250,252, +204,252,148,252,80,252,0,252,167,251,83,251,20,251,238,250,219,250,226,250,8,251,57,251,98,251,133,251,179,251,246,251, +68,252,148,252,240,252,101,253,245,253,155,254,64,255,216,255,123,0,69,1,45,2,254,2,137,3,210,3,245,3,247,3, +204,3,114,3,252,2,125,2,237,1,62,1,110,0,137,255,164,254,216,253,57,253,215,252,192,252,235,252,57,253,141,253, +221,253,38,254,90,254,105,254,98,254,109,254,164,254,251,254,93,255,194,255,34,0,104,0,137,0,145,0,153,0,177,0, +208,0,237,0,6,1,26,1,30,1,13,1,242,0,225,0,214,0,195,0,168,0,141,0,112,0,75,0,32,0,248,255, +213,255,175,255,139,255,135,255,175,255,239,255,50,0,118,0,192,0,13,1,80,1,137,1,182,1,219,1,253,1,26,2, +49,2,71,2,80,2,69,2,53,2,58,2,94,2,150,2,215,2,26,3,97,3,171,3,240,3,36,4,56,4,40,4, +255,3,192,3,94,3,205,2,18,2,59,1,90,0,132,255,206,254,67,254,224,253,152,253,103,253,76,253,68,253,72,253, +77,253,74,253,64,253,56,253,51,253,46,253,43,253,43,253,44,253,32,253,255,252,208,252,163,252,135,252,122,252,108,252, +98,252,105,252,122,252,131,252,133,252,155,252,229,252,103,253,19,254,218,254,186,255,171,0,167,1,170,2,173,3,155,4, +92,5,230,5,43,6,18,6,151,5,209,4,206,3,141,2,24,1,147,255,38,254,210,252,130,251,60,250,51,249,148,248, +88,248,88,248,131,248,211,248,46,249,129,249,212,249,54,250,158,250,244,250,63,251,162,251,47,252,211,252,115,253,7,254, +148,254,28,255,157,255,14,0,94,0,133,0,144,0,139,0,111,0,54,0,245,255,225,255,23,0,143,0,49,1,227,1, +148,2,52,3,167,3,231,3,29,4,98,4,158,4,185,4,177,4,142,4,92,4,31,4,209,3,112,3,5,3,157,2, +71,2,20,2,9,2,33,2,82,2,147,2,210,2,2,3,39,3,55,3,45,3,21,3,3,3,1,3,3,3,255,2, +253,2,19,3,74,3,150,3,219,3,2,4,18,4,23,4,11,4,225,3,151,3,52,3,191,2,66,2,213,1,147,1, +137,1,173,1,234,1,52,2,136,2,219,2,29,3,61,3,47,3,1,3,206,2,160,2,114,2,50,2,218,1,121,1, +17,1,153,0,20,0,147,255,35,255,189,254,81,254,228,253,137,253,62,253,244,252,164,252,86,252,12,252,187,251,89,251, +232,250,123,250,41,250,0,250,246,249,248,249,3,250,25,250,54,250,78,250,85,250,83,250,86,250,104,250,146,250,221,250, +83,251,248,251,201,252,186,253,188,254,198,255,221,0,5,2,46,3,53,4,247,4,99,5,131,5,101,5,9,5,110,4, +165,3,200,2,221,1,219,0,199,255,177,254,172,253,215,252,78,252,35,252,76,252,163,252,249,252,61,253,123,253,186,253, +231,253,237,253,224,253,240,253,58,254,174,254,41,255,155,255,8,0,110,0,199,0,19,1,86,1,140,1,176,1,187,1, +166,1,116,1,44,1,211,0,115,0,27,0,218,255,185,255,176,255,177,255,182,255,196,255,224,255,7,0,45,0,80,0, +117,0,157,0,212,0,27,1,102,1,167,1,217,1,254,1,17,2,20,2,8,2,240,1,216,1,206,1,210,1,222,1, +241,1,4,2,18,2,39,2,80,2,145,2,220,2,28,3,69,3,82,3,64,3,15,3,193,2,94,2,241,1,122,1, +252,0,125,0,248,255,95,255,172,254,236,253,59,253,182,252,99,252,48,252,254,251,200,251,159,251,139,251,122,251,81,251, +16,251,217,250,203,250,218,250,237,250,249,250,7,251,37,251,91,251,162,251,250,251,108,252,243,252,130,253,12,254,152,254, +49,255,220,255,155,0,117,1,98,2,75,3,31,4,217,4,119,5,254,5,120,6,214,6,246,6,197,6,86,6,190,5, +246,4,235,3,167,2,84,1,10,0,190,254,96,253,252,251,179,250,158,249,190,248,27,248,191,247,162,247,175,247,219,247, +32,248,112,248,189,248,0,249,81,249,210,249,147,250,126,251,105,252,64,253,4,254,177,254,59,255,161,255,230,255,24,0, +71,0,113,0,130,0,110,0,65,0,33,0,33,0,60,0,111,0,191,0,48,1,186,1,66,2,185,2,38,3,137,3, +216,3,17,4,52,4,74,4,105,4,152,4,200,4,223,4,217,4,194,4,170,4,154,4,139,4,124,4,116,4,123,4, +136,4,137,4,117,4,81,4,33,4,227,3,159,3,104,3,72,3,62,3,69,3,91,3,126,3,172,3,229,3,37,4, +91,4,125,4,150,4,173,4,179,4,151,4,79,4,225,3,99,3,233,2,133,2,65,2,25,2,8,2,9,2,15,2, +20,2,26,2,33,2,44,2,64,2,89,2,102,2,78,2,18,2,193,1,100,1,250,0,138,0,35,0,198,255,95,255, +227,254,100,254,243,253,147,253,58,253,224,252,132,252,39,252,199,251,98,251,2,251,180,250,130,250,105,250,95,250,94,250, +96,250,98,250,97,250,93,250,82,250,54,250,5,250,207,249,164,249,137,249,123,249,125,249,158,249,245,249,141,250,98,251, +113,252,178,253,15,255,101,0,156,1,187,2,201,3,170,4,61,5,122,5,114,5,55,5,194,4,1,4,4,3,245,1, +246,0,17,0,69,255,152,254,28,254,212,253,183,253,196,253,246,253,57,254,118,254,163,254,198,254,233,254,8,255,18,255, +4,255,240,254,244,254,27,255,100,255,198,255,53,0,163,0,1,1,61,1,74,1,35,1,201,0,65,0,147,255,209,254, +24,254,124,253,6,253,192,252,183,252,241,252,95,253,223,253,84,254,181,254,14,255,114,255,233,255,103,0,225,0,85,1, +202,1,61,2,162,2,239,2,40,3,90,3,148,3,221,3,55,4,165,4,33,5,160,5,30,6,147,6,243,6,56,7, +88,7,74,7,13,7,173,6,61,6,191,5,39,5,121,4,210,3,72,3,223,2,139,2,57,2,223,1,116,1,242,0, +94,0,190,255,16,255,72,254,106,253,139,252,199,251,35,251,147,250,12,250,151,249,70,249,24,249,250,248,214,248,174,248, +156,248,179,248,232,248,37,249,99,249,170,249,255,249,96,250,199,250,65,251,221,251,154,252,112,253,94,254,96,255,87,0, +40,1,213,1,106,2,230,2,50,3,54,3,243,2,127,2,240,1,77,1,156,0,229,255,56,255,155,254,247,253,49,253, +73,252,82,251,104,250,152,249,225,248,56,248,135,247,197,246,10,246,116,245,26,245,8,245,66,245,199,245,150,246,172,247, +0,249,129,250,14,252,141,253,247,254,71,0,105,1,81,2,7,3,167,3,55,4,175,4,10,5,83,5,159,5,6,6, +147,6,68,7,8,8,195,8,96,9,213,9,30,10,63,10,64,10,41,10,0,10,201,9,140,9,73,9,0,9,182,8, +112,8,57,8,28,8,32,8,59,8,88,8,94,8,60,8,242,7,138,7,10,7,124,6,228,5,64,5,144,4,224,3, +65,3,189,2,82,2,244,1,151,1,52,1,198,0,75,0,188,255,23,255,102,254,194,253,55,253,190,252,79,252,228,251, +110,251,238,250,117,250,24,250,224,249,197,249,185,249,190,249,222,249,21,250,90,250,167,250,248,250,82,251,186,251,37,252, +127,252,180,252,197,252,192,252,176,252,148,252,103,252,44,252,224,251,124,251,5,251,143,250,39,250,212,249,154,249,114,249, +72,249,15,249,200,248,130,248,84,248,84,248,131,248,211,248,57,249,175,249,48,250,204,250,149,251,141,252,170,253,219,254, +17,0,58,1,77,2,73,3,51,4,16,5,226,5,173,6,120,7,78,8,56,9,53,10,58,11,64,12,73,13,82,14, +69,15,6,16,132,16,184,16,159,16,68,16,171,15,225,14,249,13,239,12,181,11,86,10,244,8,181,7,177,6,228,5, +58,5,159,4,11,4,129,3,2,3,136,2,18,2,163,1,53,1,186,0,39,0,122,255,180,254,225,253,34,253,148,252, +57,252,243,251,155,251,26,251,112,250,181,249,253,248,76,248,150,247,218,246,23,246,74,245,123,244,192,243,70,243,50,243, +123,243,241,243,100,244,185,244,233,244,2,245,25,245,62,245,113,245,165,245,210,245,252,245,36,246,75,246,127,246,208,246, +57,247,162,247,245,247,50,248,97,248,140,248,184,248,237,248,43,249,98,249,137,249,169,249,207,249,255,249,60,250,142,250, +255,250,150,251,96,252,98,253,144,254,210,255,32,1,119,2,203,3,13,5,71,6,132,7,178,8,176,9,100,10,210,10, +19,11,73,11,137,11,191,11,212,11,203,11,184,11,168,11,161,11,169,11,196,11,232,11,3,12,11,12,248,11,205,11, +148,11,92,11,53,11,33,11,23,11,16,11,15,11,26,11,56,11,102,11,158,11,212,11,237,11,197,11,77,11,146,10, +166,9,149,8,104,7,38,6,207,4,81,3,171,1,238,255,50,254,132,252,233,250,105,249,6,248,185,246,129,245,93,244, +65,243,35,242,17,241,35,240,100,239,207,238,104,238,70,238,135,238,45,239,25,240,37,241,65,242,110,243,163,244,210,245, +238,246,235,247,185,248,77,249,156,249,158,249,87,249,225,248,92,248,212,247,67,247,172,246,34,246,186,245,130,245,125,245, +159,245,205,245,239,245,2,246,22,246,70,246,170,246,76,247,38,248,43,249,74,250,115,251,160,252,225,253,75,255,212,0, +86,2,189,3,30,5,148,6,34,8,198,9,134,11,101,13,81,15,52,17,254,18,155,20,243,21,247,22,170,23,16,24, +54,24,52,24,22,24,206,23,76,23,147,22,183,21,197,20,211,19,253,18,81,18,191,17,39,17,120,16,170,15,190,14, +194,13,205,12,228,11,238,10,195,9,83,8,172,6,239,4,65,3,203,1,163,0,186,255,218,254,215,253,162,252,68,251, +205,249,92,248,10,247,210,245,149,244,54,243,179,241,39,240,195,238,194,237,69,237,54,237,96,237,150,237,191,237,213,237, +222,237,252,237,91,238,9,239,217,239,136,240,240,240,33,241,72,241,135,241,233,241,104,242,240,242,97,243,157,243,149,243, +80,243,231,242,122,242,45,242,10,242,246,241,217,241,184,241,177,241,212,241,24,242,118,242,242,242,142,243,67,244,2,245, +196,245,132,246,78,247,51,248,63,249,113,250,199,251,75,253,18,255,42,1,144,3,51,6,7,9,3,12,12,15,239,17, +126,20,162,22,93,24,181,25,184,26,129,27,45,28,191,28,46,29,117,29,143,29,104,29,250,28,100,28,211,27,77,27, +174,26,209,25,173,24,85,23,229,21,117,20,9,19,152,17,34,16,172,14,54,13,185,11,57,10,189,8,74,7,222,5, +126,4,53,3,7,2,236,0,220,255,208,254,189,253,147,252,80,251,2,250,185,248,108,247,4,246,123,244,231,242,110,241, +50,240,67,239,152,238,29,238,205,237,180,237,212,237,30,238,139,238,27,239,204,239,139,240,72,241,251,241,155,242,32,243, +140,243,230,243,45,244,75,244,56,244,10,244,230,243,221,243,232,243,255,243,38,244,93,244,146,244,165,244,131,244,52,244, +208,243,102,243,247,242,125,242,248,241,117,241,17,241,241,240,43,241,189,241,163,242,227,243,114,245,42,247,234,248,185,250, +187,252,0,255,133,1,60,4,13,7,211,9,117,12,240,14,65,17,92,19,51,21,201,22,40,24,88,25,91,26,51,27, +221,27,70,28,97,28,59,28,242,27,143,27,252,26,46,26,50,25,18,24,193,22,57,21,142,19,220,17,57,16,166,14, +24,13,132,11,241,9,128,8,79,7,90,6,133,5,193,4,18,4,119,3,226,2,66,2,142,1,193,0,214,255,210,254, +183,253,120,252,7,251,100,249,166,247,234,245,72,244,207,242,129,241,79,240,51,239,58,238,122,237,253,236,199,236,219,236, +55,237,203,237,124,238,53,239,244,239,187,240,129,241,48,242,189,242,49,243,147,243,218,243,247,243,227,243,154,243,36,243, +150,242,5,242,126,241,1,241,139,240,20,240,147,239,12,239,148,238,68,238,34,238,26,238,23,238,22,238,45,238,106,238, +209,238,115,239,108,240,203,241,131,243,130,245,189,247,41,250,188,252,116,255,77,2,57,5,45,8,46,11,63,14,80,17, +71,20,12,23,148,25,213,27,197,29,87,31,130,32,64,33,128,33,55,33,121,32,113,31,63,30,233,28,112,27,228,25, +94,24,235,22,140,21,69,20,34,19,48,18,109,17,191,16,6,16,43,15,43,14,22,13,251,11,218,10,171,9,110,8, +33,7,185,5,51,4,163,2,36,1,193,255,115,254,46,253,220,251,99,250,187,248,243,246,34,245,95,243,187,241,61,240, +231,238,194,237,238,236,135,236,155,236,38,237,19,238,65,239,143,240,213,241,251,242,253,243,231,244,181,245,76,246,159,246, +175,246,127,246,18,246,126,245,225,244,76,244,193,243,56,243,149,242,190,241,177,240,146,239,130,238,152,237,232,236,122,236, +73,236,80,236,153,236,48,237,21,238,63,239,159,240,32,242,174,243,58,245,190,246,69,248,239,249,211,251,241,253,61,0, +183,2,99,5,57,8,39,11,18,14,227,16,128,19,204,21,177,23,36,25,39,26,190,26,232,26,179,26,63,26,171,25, +1,25,56,24,78,23,71,22,36,21,228,19,143,18,54,17,229,15,154,14,82,13,16,12,207,10,133,9,53,8,244,6, +221,5,250,4,74,4,203,3,116,3,65,3,50,3,66,3,89,3,89,3,54,3,235,2,107,2,185,1,232,0,12,0, +40,255,61,254,84,253,107,252,126,251,141,250,170,249,218,248,32,248,125,247,242,246,114,246,235,245,86,245,184,244,24,244, +120,243,210,242,35,242,110,241,185,240,7,240,91,239,183,238,29,238,153,237,56,237,246,236,195,236,156,236,153,236,196,236, +18,237,118,237,245,237,147,238,66,239,253,239,202,240,177,241,174,242,200,243,23,245,168,246,122,248,148,250,254,252,183,255, +163,2,160,5,146,8,102,11,23,14,158,16,224,18,190,20,47,22,71,23,14,24,128,24,157,24,111,24,1,24,99,23, +174,22,254,21,91,21,181,20,255,19,59,19,118,18,183,17,241,16,18,16,7,15,199,13,82,12,177,10,236,8,17,7, +57,5,137,3,22,2,218,0,192,255,192,254,223,253,34,253,131,252,253,251,147,251,76,251,43,251,43,251,66,251,99,251, +130,251,154,251,176,251,194,251,193,251,160,251,91,251,245,250,111,250,208,249,34,249,96,248,119,247,90,246,20,245,197,243, +144,242,145,241,210,240,75,240,228,239,129,239,14,239,142,238,14,238,160,237,82,237,51,237,67,237,116,237,191,237,59,238, +5,239,46,240,185,241,154,243,178,245,219,247,4,250,50,252,104,254,151,0,177,2,181,4,163,6,120,8,50,10,222,11, +141,13,69,15,255,16,174,18,71,20,189,21,249,22,232,23,136,24,228,24,13,25,21,25,2,25,194,24,61,24,111,23, +106,22,66,21,252,19,152,18,10,17,61,15,37,13,215,10,114,8,2,6,132,3,253,0,130,254,41,252,249,249,244,247, +36,246,141,244,38,243,221,241,165,240,116,239,70,238,48,237,87,236,215,235,182,235,242,235,143,236,140,237,228,238,143,240, +134,242,198,244,84,247,42,250,39,253,19,0,191,2,23,5,10,7,122,8,62,9,50,9,88,8,210,6,199,4,72,2, +103,255,67,252,4,249,196,245,152,242,160,239,9,237,250,234,146,233,220,232,191,232,1,233,121,233,52,234,78,235,192,236, +98,238,23,240,233,241,235,243,25,246,84,248,120,250,128,252,144,254,217,0,124,3,133,6,238,9,159,13,109,17,38,21, +155,24,167,27,51,30,52,32,164,33,129,34,198,34,128,34,211,33,239,32,243,31,225,30,191,29,167,28,170,27,200,26, +239,25,12,25,12,24,215,22,88,21,128,19,68,17,177,14,228,11,252,8,251,5,220,2,166,255,122,252,117,249,151,246, +201,243,1,241,85,238,247,235,20,234,195,232,249,231,157,231,149,231,214,231,91,232,23,233,242,233,206,234,152,235,70,236, +212,236,68,237,161,237,2,238,122,238,21,239,217,239,191,240,181,241,171,242,156,243,130,244,69,245,195,245,233,245,186,245, +67,245,147,244,181,243,177,242,150,241,125,240,134,239,196,238,54,238,231,237,235,237,82,238,32,239,89,240,9,242,51,244, +200,246,163,249,146,252,110,255,56,2,5,5,230,7,216,10,212,13,219,16,246,19,53,23,146,26,248,29,93,33,194,36, +21,40,42,43,203,45,200,47,255,48,103,49,33,49,86,48,20,47,83,45,13,43,80,40,66,37,14,34,210,30,159,27, +125,24,107,21,89,18,45,15,221,11,108,8,245,4,157,1,128,254,162,251,246,248,112,246,1,244,153,241,62,239,3,237, +244,234,16,233,81,231,177,229,53,228,237,226,239,225,72,225,1,225,28,225,150,225,104,226,148,227,21,229,201,230,135,232, +64,234,249,235,171,237,50,239,103,240,69,241,231,241,121,242,27,243,218,243,189,244,200,245,251,246,78,248,178,249,20,251, +104,252,157,253,162,254,96,255,200,255,220,255,175,255,87,255,235,254,137,254,72,254,39,254,34,254,67,254,146,254,5,255, +143,255,41,0,210,0,141,1,109,2,125,3,187,4,39,6,214,7,207,9,248,11,38,14,55,16,17,18,158,19,208,20, +152,21,233,21,215,21,126,21,224,20,229,19,136,18,236,16,64,15,164,13,39,12,197,10,107,9,10,8,159,6,42,5, +168,3,9,2,68,0,85,254,72,252,36,250,236,247,173,245,139,243,173,241,44,240,18,239,95,238,18,238,48,238,188,238, +170,239,231,240,97,242,11,244,219,245,191,247,158,249,97,251,254,252,125,254,241,255,98,1,207,2,53,4,146,5,232,6, +44,8,85,9,93,10,66,11,253,11,144,12,250,12,50,13,44,13,240,12,152,12,58,12,229,11,156,11,91,11,19,11, +183,10,57,10,134,9,140,8,70,7,193,5,17,4,78,2,139,0,217,254,76,253,246,251,223,250,6,250,98,249,227,248, +120,248,25,248,191,247,89,247,222,246,87,246,216,245,99,245,238,244,120,244,12,244,179,243,109,243,49,243,246,242,176,242, +68,242,156,241,192,240,210,239,232,238,9,238,65,237,160,236,50,236,255,235,24,236,134,236,55,237,5,238,204,238,122,239, +18,240,158,240,38,241,167,241,36,242,184,242,140,243,189,244,71,246,20,248,25,250,92,252,230,254,180,1,170,4,157,7, +111,10,31,13,177,15,27,18,92,20,134,22,158,24,146,26,76,28,212,29,61,31,138,32,180,33,193,34,186,35,147,36, +53,37,161,37,245,37,64,38,100,38,75,38,2,38,165,37,51,37,148,36,176,35,118,34,210,32,189,30,71,28,134,25, +143,22,115,19,71,16,33,13,13,10,6,7,14,4,58,1,160,254,55,252,231,249,155,247,69,245,225,242,112,240,248,237, +132,235,32,233,215,230,173,228,169,226,225,224,101,223,50,222,67,221,170,220,119,220,163,220,16,221,165,221,83,222,20,223, +226,223,174,224,97,225,228,225,42,226,55,226,25,226,231,225,181,225,147,225,130,225,138,225,211,225,147,226,227,227,177,229, +225,231,111,234,104,237,198,240,103,244,26,248,182,251,33,255,73,2,32,5,168,7,238,9,5,12,252,13,222,15,182,17, +132,19,69,21,240,22,124,24,232,25,63,27,141,28,217,29,37,31,99,32,114,33,56,34,173,34,214,34,183,34,81,34, +158,33,149,32,64,31,184,29,32,28,142,26,16,25,163,23,63,22,220,20,113,19,242,17,87,16,161,14,213,12,240,10, +238,8,205,6,136,4,47,2,230,255,199,253,207,251,244,249,58,248,164,246,41,245,197,243,121,242,58,241,252,239,191,238, +153,237,145,236,152,235,166,234,199,233,18,233,149,232,82,232,84,232,178,232,132,233,197,234,81,236,0,238,196,239,157,241, +124,243,79,245,16,247,199,248,123,250,47,252,232,253,158,255,68,1,228,2,147,4,92,6,54,8,16,10,212,11,102,13, +186,14,215,15,201,16,147,17,61,18,203,18,62,19,144,19,190,19,202,19,192,19,172,19,138,19,72,19,219,18,81,18, +185,17,26,17,125,16,222,15,51,15,118,14,174,13,217,12,216,11,138,10,224,8,218,6,120,4,178,1,148,254,67,251, +239,247,192,244,212,241,80,239,81,237,225,235,240,234,94,234,13,234,233,233,220,233,203,233,149,233,52,233,186,232,57,232, +184,231,61,231,212,230,143,230,125,230,170,230,32,231,228,231,235,232,21,234,65,235,85,236,73,237,32,238,222,238,133,239, +22,240,153,240,29,241,173,241,94,242,76,243,134,244,4,246,194,247,197,249,14,252,141,254,42,1,202,3,79,6,169,8, +218,10,224,12,186,14,113,16,23,18,184,19,94,21,23,23,228,24,178,26,107,28,251,29,77,31,79,32,241,32,40,33, +246,32,117,32,194,31,237,30,251,29,240,28,223,27,205,26,166,25,74,24,178,22,235,20,4,19,245,16,186,14,89,12, +233,9,133,7,70,5,53,3,74,1,126,255,207,253,59,252,184,250,55,249,165,247,246,245,39,244,54,242,24,240,204,237, +111,235,43,233,29,231,70,229,157,227,31,226,217,224,223,223,60,223,234,222,202,222,197,222,220,222,18,223,74,223,88,223, +54,223,2,223,222,222,225,222,46,223,223,223,0,225,143,226,138,228,227,230,114,233,16,236,167,238,42,241,160,243,17,246, +140,248,39,251,4,254,54,1,183,4,117,8,103,12,118,16,112,20,29,24,86,27,247,29,216,31,231,32,51,33,232,32, +59,32,103,31,180,30,97,30,147,30,76,31,125,32,18,34,237,35,226,37,180,39,46,41,48,42,169,42,142,42,224,41, +187,40,67,39,148,37,199,35,246,33,47,32,104,30,148,28,181,26,195,24,173,22,99,20,220,17,13,15,244,11,168,8, +73,5,238,1,166,254,132,251,150,248,224,245,85,243,235,240,160,238,114,236,91,234,84,232,97,230,143,228,226,226,98,225, +33,224,46,223,138,222,34,222,227,221,189,221,159,221,113,221,22,221,124,220,170,219,176,218,157,217,121,216,79,215,64,214, +117,213,16,213,27,213,153,213,147,214,0,216,205,217,252,219,155,222,151,225,191,228,254,231,95,235,233,238,147,242,85,246, +38,250,242,253,167,1,65,5,177,8,212,11,134,14,197,16,161,18,45,20,122,21,158,22,183,23,231,24,78,26,251,27, +206,29,151,31,65,33,218,34,95,36,174,37,170,38,86,39,195,39,244,39,214,39,97,39,156,38,163,37,135,36,67,35, +201,33,20,32,36,30,245,27,133,25,220,22,22,20,84,17,187,14,104,12,105,10,180,8,42,7,161,5,255,3,57,2, +61,0,245,253,84,251,105,248,88,245,70,242,70,239,84,236,109,233,165,230,34,228,8,226,102,224,51,223,89,222,193,221, +91,221,24,221,229,220,185,220,148,220,120,220,108,220,127,220,190,220,46,221,211,221,178,222,207,223,52,225,230,226,230,228, +50,231,209,233,194,236,247,239,89,243,210,246,65,250,127,253,121,0,61,3,221,5,85,8,146,10,134,12,51,14,159,15, +214,16,235,17,253,18,28,20,67,21,88,22,74,23,17,24,181,24,70,25,211,25,95,26,230,26,103,27,232,27,110,28, +253,28,145,29,35,30,167,30,11,31,64,31,58,31,243,30,95,30,119,29,61,28,191,26,23,25,103,23,189,21,22,20, +123,18,253,16,153,15,49,14,187,12,58,11,160,9,220,7,249,5,19,4,58,2,107,0,169,254,241,252,59,251,135,249, +227,247,73,246,155,244,183,242,143,240,40,238,137,235,178,232,170,229,138,226,125,223,173,220,66,218,97,216,45,215,180,214, +221,214,114,215,66,216,53,217,55,218,49,219,25,220,7,221,27,222,98,223,221,224,158,226,201,228,125,231,195,234,139,238, +177,242,255,246,62,251,66,255,237,2,35,6,202,8,219,10,104,12,145,13,121,14,66,15,3,16,199,16,147,17,97,18, +30,19,175,19,9,20,48,20,39,20,250,19,201,19,179,19,196,19,244,19,52,20,122,20,190,20,254,20,57,21,113,21, +161,21,179,21,147,21,53,21,146,20,160,19,95,18,233,16,85,15,179,13,27,12,180,10,150,9,190,8,18,8,114,7, +196,6,254,5,40,5,64,4,54,3,247,1,120,0,181,254,173,252,104,250,247,247,109,245,227,242,128,240,106,238,178,236, +87,235,77,234,128,233,203,232,21,232,95,231,187,230,48,230,178,229,56,229,194,228,93,228,24,228,246,227,242,227,15,228, +88,228,215,228,142,229,143,230,232,231,153,233,138,235,154,237,168,239,172,241,190,243,251,245,101,248,240,250,163,253,149,0, +204,3,59,7,208,10,117,14,15,18,135,21,200,24,177,27,32,30,1,32,79,33,6,34,32,34,171,33,214,32,213,31, +204,30,189,29,154,28,94,27,17,26,188,24,88,23,204,21,17,20,51,18,65,16,77,14,123,12,252,10,226,9,30,9, +161,8,97,8,79,8,89,8,113,8,127,8,99,8,11,8,137,7,242,6,84,6,187,5,56,5,208,4,114,4,16,4, +167,3,50,3,156,2,208,1,194,0,103,255,176,253,149,251,26,249,74,246,47,243,231,239,154,236,106,233,101,230,139,227, +218,224,92,222,29,220,31,218,109,216,34,215,93,214,28,214,77,214,235,214,249,215,102,217,29,219,22,221,67,223,124,225, +154,227,147,229,111,231,56,233,244,234,175,236,113,238,70,240,68,242,146,244,87,247,172,250,152,254,21,3,16,8,87,13, +161,18,156,23,16,28,221,31,251,34,110,37,67,39,135,40,66,41,132,41,111,41,43,41,205,40,94,40,231,39,103,39, +194,38,215,37,163,36,45,35,105,33,64,31,180,28,227,25,236,22,228,19,216,16,200,13,183,10,182,7,224,4,64,2, +209,255,148,253,141,251,186,249,19,248,156,246,104,245,122,244,188,243,5,243,59,242,88,241,96,240,92,239,84,238,76,237, +80,236,110,235,178,234,24,234,147,233,24,233,168,232,75,232,9,232,219,231,186,231,151,231,93,231,244,230,82,230,132,229, +152,228,150,227,134,226,121,225,137,224,203,223,83,223,48,223,108,223,11,224,15,225,116,226,52,228,68,230,142,232,8,235, +194,237,212,240,59,244,229,247,207,251,16,0,188,4,209,9,69,15,15,21,36,27,104,33,170,39,179,45,77,51,72,56, +127,60,217,63,75,66,203,67,82,68,225,67,144,66,139,64,2,62,26,59,238,55,147,52,29,49,158,45,36,42,191,38, +130,35,117,32,147,29,207,26,33,24,135,21,246,18,80,16,128,13,140,10,128,7,83,4,244,0,106,253,204,249,42,246, +132,242,217,238,53,235,181,231,115,228,125,225,212,222,126,220,133,218,239,216,188,215,220,214,53,214,168,213,34,213,154,212, +2,212,76,211,126,210,176,209,245,208,76,208,184,207,90,207,102,207,2,208,40,209,195,210,188,212,249,214,83,217,162,219, +202,221,189,223,119,225,249,226,65,228,83,229,69,230,55,231,79,232,176,233,127,235,224,237,239,240,176,244,10,249,219,253, +3,3,112,8,14,14,192,19,101,25,219,30,0,36,180,40,236,44,175,48,10,52,10,55,181,57,8,60,244,61,97,63, +67,64,159,64,118,64,204,63,178,62,66,61,142,59,146,57,75,55,200,52,29,50,72,47,54,44,216,40,51,37,75,33, +22,29,137,24,175,19,155,14,96,9,28,4,246,254,18,250,122,245,44,241,43,237,118,233,9,230,225,226,247,223,55,221, +138,218,233,215,94,213,255,210,237,208,72,207,32,206,104,205,11,205,3,205,93,205,29,206,45,207,111,208,211,209,78,211, +193,212,251,213,214,214,81,215,137,215,165,215,202,215,20,216,158,216,126,217,196,218,120,220,151,222,18,225,220,227,232,230, +37,234,127,237,217,240,35,244,88,247,132,250,178,253,237,0,70,4,208,7,155,11,167,15,225,19,45,24,111,28,149,32, +158,36,137,40,76,44,213,47,29,51,40,54,5,57,200,59,111,62,217,64,225,66,118,68,155,69,67,70,92,70,219,69, +200,68,39,67,2,65,115,62,161,59,165,56,142,53,99,50,43,47,224,43,107,40,184,36,194,32,140,28,24,24,102,19, +124,14,110,9,77,4,31,255,229,249,176,244,160,239,205,234,65,230,6,226,40,222,172,218,138,215,184,212,58,210,34,208, +128,206,88,205,148,204,17,204,186,203,137,203,118,203,112,203,105,203,91,203,63,203,19,203,221,202,163,202,114,202,87,202, +95,202,140,202,216,202,70,203,232,203,208,204,10,206,159,207,153,209,254,211,209,214,15,218,167,221,126,225,133,229,178,233, +250,237,80,242,175,246,17,251,87,255,102,3,70,7,20,11,219,14,152,18,84,22,30,26,1,30,7,34,63,38,166,42, +28,47,121,51,153,55,74,59,79,62,135,64,255,65,217,66,41,67,244,66,70,66,61,65,255,63,167,62,60,61,186,59, +29,58,91,56,96,54,21,52,109,49,87,46,186,42,135,38,215,33,213,28,176,23,144,18,157,13,236,8,121,4,57,0, +36,252,49,248,84,244,130,240,170,236,195,232,219,228,16,225,119,221,16,218,218,214,222,211,46,209,224,206,6,205,161,203, +151,202,195,201,14,201,117,200,1,200,186,199,159,199,158,199,171,199,213,199,63,200,250,200,251,201,53,203,162,204,64,206, +8,208,247,209,18,212,109,214,38,217,84,220,237,223,209,227,230,231,25,236,88,240,155,244,230,248,51,253,101,1,87,5, +253,8,89,12,119,15,113,18,114,21,157,24,0,28,158,31,110,35,96,39,99,43,130,47,199,51,29,56,86,60,63,64, +169,67,104,70,104,72,181,73,103,74,138,74,40,74,83,73,29,72,130,70,113,68,229,65,237,62,152,59,240,55,252,51, +202,47,109,43,238,38,87,34,187,29,40,25,162,20,39,16,187,11,100,7,30,3,226,254,189,250,194,246,242,242,71,239, +202,235,145,232,171,229,21,227,193,224,154,222,133,220,108,218,67,216,251,213,123,211,181,208,176,205,134,202,91,199,95,196, +200,193,185,191,55,190,47,189,143,188,84,188,135,188,37,189,24,190,77,191,198,192,137,194,150,196,234,198,140,201,152,204, +41,208,85,212,22,217,80,222,221,227,164,233,143,239,116,245,19,251,51,0,178,4,140,8,213,11,178,14,70,17,174,19, +2,22,92,24,201,26,78,29,236,31,166,34,123,37,107,40,118,43,157,46,213,49,8,53,21,56,219,58,67,61,64,63, +208,64,244,65,167,66,226,66,158,66,218,65,150,64,207,62,123,60,152,57,38,54,38,50,165,45,207,40,215,35,224,30, +241,25,22,21,96,16,216,11,112,7,22,3,194,254,122,250,75,246,66,242,81,238,93,234,97,230,123,226,202,222,96,219, +85,216,211,213,1,212,224,210,77,210,28,210,31,210,58,210,102,210,162,210,229,210,20,211,21,211,218,210,100,210,204,209, +53,209,180,208,92,208,73,208,144,208,52,209,34,210,81,211,201,212,151,214,179,216,4,219,109,221,233,223,135,226,89,229, +106,232,194,235,118,239,141,243,247,247,146,252,57,1,201,5,39,10,81,14,79,18,29,22,175,25,12,29,70,32,103,35, +109,38,95,41,76,44,52,47,1,50,152,52,230,54,214,56,85,58,69,59,146,59,62,59,98,58,22,57,110,55,142,53, +170,51,232,49,78,48,220,46,157,45,151,44,185,43,215,42,186,41,50,40,40,38,159,35,157,32,44,29,101,25,118,21, +127,17,142,13,177,9,1,6,133,2,61,255,46,252,93,249,174,246,245,243,29,241,39,238,14,235,207,231,116,228,16,225, +181,221,106,218,62,215,67,212,130,209,11,207,237,204,46,203,202,201,186,200,255,199,155,199,150,199,235,199,130,200,59,201, +13,202,249,202,248,203,246,204,238,205,234,206,244,207,12,209,49,210,110,211,211,212,126,214,148,216,45,219,80,222,1,226, +69,230,26,235,98,240,232,245,102,251,158,0,99,5,162,9,91,13,158,16,123,19,253,21,44,24,40,26,38,28,80,30, +176,32,74,35,45,38,82,41,151,44,219,47,16,51,32,54,220,56,24,59,191,60,196,61,22,62,177,61,167,60,13,59, +250,56,137,54,224,51,30,49,89,46,159,43,245,40,91,38,206,35,77,33,202,30,40,28,73,25,24,22,150,18,203,14, +195,10,138,6,42,2,182,253,61,249,202,244,104,240,52,236,72,232,171,228,83,225,59,222,96,219,199,216,125,214,146,212, +5,211,197,209,199,208,15,208,157,207,87,207,35,207,240,206,189,206,134,206,79,206,36,206,20,206,39,206,104,206,232,206, +176,207,188,208,15,210,197,211,250,213,176,216,212,219,95,223,84,227,170,231,63,236,248,240,206,245,194,250,197,255,184,4, +126,9,255,13,45,18,3,22,127,25,151,28,63,31,121,33,84,35,227,36,54,38,87,39,83,40,50,41,255,41,190,42, +107,43,249,43,104,44,201,44,48,45,162,45,17,46,112,46,177,46,199,46,163,46,72,46,192,45,18,45,54,44,43,43, +253,41,177,40,61,39,143,37,158,35,110,33,251,30,64,28,58,25,235,21,90,18,146,14,160,10,143,6,103,2,47,254, +237,249,167,245,99,241,50,237,43,233,95,229,213,225,140,222,135,219,197,216,83,214,74,212,186,210,153,209,202,208,57,208, +231,207,214,207,236,207,3,208,6,208,5,208,22,208,57,208,97,208,138,208,194,208,27,209,163,209,108,210,138,211,17,213, +10,215,123,217,96,220,174,223,97,227,114,231,210,235,93,240,235,244,81,249,106,253,32,1,114,4,109,7,36,10,166,12, +0,15,55,17,68,19,38,21,231,22,136,24,3,26,89,27,146,28,172,29,144,30,57,31,191,31,66,32,207,32,98,33, +245,33,124,34,232,34,46,35,71,35,43,35,201,34,15,34,253,32,158,31,3,30,56,28,78,26,97,24,138,22,211,20, +59,19,188,17,85,16,252,14,158,13,44,12,162,10,14,9,133,7,16,6,154,4,3,3,60,1,88,255,111,253,133,251, +152,249,171,247,189,245,191,243,161,241,92,239,237,236,81,234,149,231,213,228,48,226,180,223,118,221,140,219,9,218,242,216, +68,216,248,215,7,216,103,216,4,217,199,217,155,218,122,219,109,220,133,221,219,222,134,224,154,226,34,229,42,232,188,235, +205,239,64,244,246,248,212,253,177,2,97,7,188,11,167,15,14,19,249,21,135,24,210,26,210,28,120,30,209,31,248,32, +235,33,148,34,230,34,236,34,184,34,89,34,227,33,109,33,17,33,228,32,238,32,40,33,124,33,203,33,246,33,235,33, +156,33,246,32,225,31,90,30,119,28,79,26,235,23,86,21,174,18,30,16,196,13,172,11,220,9,83,8,4,7,217,5, +188,4,159,3,127,2,91,1,43,0,228,254,134,253,21,252,143,250,235,248,48,247,102,245,140,243,157,241,168,239,197,237, +250,235,56,234,106,232,133,230,136,228,125,226,113,224,100,222,85,220,83,218,125,216,233,214,157,213,162,212,7,212,213,211, +9,212,161,212,148,213,208,214,64,216,218,217,156,219,129,221,132,223,180,225,39,228,232,230,249,233,93,237,22,241,26,245, +88,249,189,253,56,2,174,6,3,11,26,15,218,18,46,22,4,25,95,27,78,29,225,30,27,32,250,32,133,33,206,33, +224,33,193,33,117,33,1,33,100,32,160,31,190,30,204,29,210,28,205,27,184,26,149,25,101,24,30,23,184,21,53,20, +160,18,8,17,114,15,215,13,45,12,116,10,180,8,241,6,40,5,89,3,144,1,220,255,70,254,201,252,92,251,246,249, +143,248,42,247,208,245,133,244,63,243,247,241,189,240,171,239,201,238,7,238,86,237,178,236,24,236,132,235,248,234,123,234, +4,234,123,233,205,232,248,231,7,231,7,230,15,229,63,228,175,227,96,227,72,227,97,227,170,227,38,228,215,228,186,229, +190,230,202,231,217,232,250,233,58,235,166,236,93,238,151,240,120,243,250,246,0,251,116,255,75,4,119,9,225,14,106,20, +236,25,63,31,62,36,195,40,164,44,203,47,64,50,24,52,97,53,46,54,153,54,177,54,110,54,193,53,172,52,64,51, +133,49,126,47,49,45,178,42,18,40,93,37,150,34,190,31,228,28,16,26,61,23,96,20,121,17,150,14,181,11,197,8, +182,5,142,2,86,255,28,252,240,248,227,245,2,243,78,240,205,237,141,235,162,233,16,232,199,230,168,229,144,228,102,227, +20,226,140,224,219,222,31,221,119,219,235,217,116,216,22,215,233,213,17,213,164,212,159,212,246,212,155,213,129,214,145,215, +184,216,239,217,47,219,111,220,174,221,247,222,85,224,200,225,85,227,0,229,202,230,161,232,116,234,53,236,226,237,140,239, +86,241,86,243,134,245,229,247,137,250,143,253,243,0,157,4,132,8,165,12,235,16,45,21,73,25,50,29,240,32,131,36, +225,39,240,42,158,45,231,47,218,49,134,51,244,52,38,54,26,55,205,55,53,56,65,56,210,55,200,54,13,53,156,50, +130,47,214,43,177,39,39,35,83,30,85,25,77,20,83,15,123,10,218,5,124,1,103,253,164,249,49,246,244,242,200,239, +149,236,99,233,69,230,84,227,171,224,99,222,139,220,47,219,81,218,233,217,220,217,17,218,122,218,9,219,165,219,50,220, +151,220,197,220,189,220,155,220,143,220,197,220,75,221,25,222,31,223,94,224,228,225,191,227,227,229,45,232,117,234,170,236, +205,238,232,240,2,243,26,245,48,247,72,249,98,251,126,253,149,255,153,1,123,3,50,5,199,6,66,8,158,9,217,10, +5,12,65,13,159,14,30,16,186,17,128,19,134,21,212,23,90,26,251,28,150,31,15,34,68,36,21,38,119,39,111,40, +253,40,27,41,206,40,51,40,106,39,136,38,166,37,225,36,76,36,221,35,116,35,237,34,42,34,19,33,149,31,155,29, +28,27,41,24,227,20,102,17,189,13,246,9,52,6,165,2,99,255,114,252,194,249,63,247,211,244,115,242,28,240,211,237, +155,235,118,233,115,231,165,229,34,228,245,226,26,226,141,225,74,225,72,225,113,225,170,225,220,225,253,225,2,226,229,225, +173,225,113,225,74,225,66,225,93,225,166,225,35,226,205,226,159,227,153,228,190,229,250,230,58,232,127,233,218,234,80,236, +223,237,142,239,103,241,108,243,151,245,227,247,65,250,150,252,202,254,203,0,135,2,229,3,223,4,134,5,241,5,40,6, +58,6,71,6,115,6,213,6,126,7,127,8,224,9,147,11,124,13,132,15,150,17,160,19,146,21,96,23,251,24,78,26, +72,27,238,27,81,28,127,28,127,28,84,28,255,27,126,27,205,26,233,25,205,24,124,23,250,21,69,20,84,18,38,16, +202,13,89,11,230,8,124,6,39,4,244,1,231,255,249,253,36,252,105,250,207,248,93,247,18,246,234,244,230,243,11,243, +93,242,219,241,134,241,98,241,116,241,173,241,248,241,61,242,107,242,121,242,102,242,52,242,224,241,100,241,199,240,32,240, +138,239,29,239,237,238,12,239,137,239,110,240,174,241,44,243,193,244,88,246,232,247,99,249,177,250,196,251,153,252,63,253, +201,253,79,254,229,254,149,255,96,0,71,1,75,2,107,3,154,4,200,5,228,6,229,7,193,8,111,9,234,9,61,10, +117,10,148,10,145,10,96,10,252,9,110,9,204,8,41,8,140,7,240,6,88,6,216,5,123,5,69,5,57,5,89,5, +159,5,247,5,76,6,140,6,173,6,171,6,138,6,82,6,13,6,192,5,104,5,5,5,169,4,116,4,121,4,179,4, +18,5,146,5,40,6,186,6,41,7,97,7,87,7,12,7,144,6,248,5,81,5,164,4,4,4,131,3,48,3,19,3, +50,3,145,3,33,4,204,4,121,5,10,6,100,6,121,6,68,6,189,5,222,4,172,3,61,2,164,0,240,254,51,253, +127,251,230,249,117,248,51,247,28,246,45,245,100,244,188,243,44,243,177,242,86,242,34,242,16,242,24,242,59,242,128,242, +229,242,95,243,226,243,105,244,237,244,101,245,193,245,249,245,26,246,60,246,112,246,187,246,20,247,115,247,198,247,255,247, +27,248,34,248,27,248,13,248,250,247,230,247,207,247,182,247,158,247,139,247,126,247,127,247,140,247,147,247,129,247,86,247, +36,247,254,246,235,246,243,246,32,247,125,247,19,248,242,248,39,250,174,251,114,253,92,255,101,1,130,3,167,5,200,7, +228,9,248,11,247,13,202,15,95,17,181,18,218,19,222,20,191,21,115,22,239,22,61,23,114,23,167,23,231,23,56,24, +156,24,13,25,126,25,221,25,28,26,53,26,37,26,225,25,91,25,129,24,77,23,202,21,18,20,55,18,67,16,62,14, +53,12,43,10,19,8,228,5,154,3,60,1,202,254,74,252,197,249,68,247,199,244,85,242,2,240,241,237,58,236,228,234, +230,233,48,233,193,232,166,232,224,232,96,233,21,234,244,234,236,235,216,236,150,237,37,238,145,238,220,238,250,238,228,238, +148,238,9,238,82,237,137,236,196,235,10,235,91,234,179,233,3,233,72,232,149,231,4,231,160,230,106,230,112,230,210,230, +162,231,225,232,141,234,160,236,10,239,184,241,157,244,180,247,233,250,33,254,73,1,102,4,140,7,193,10,254,13,70,17, +171,20,53,24,216,27,124,31,14,35,119,38,157,41,113,44,229,46,228,48,91,50,81,51,215,51,238,51,139,51,186,50, +152,49,50,48,131,46,131,44,52,42,154,39,190,36,192,33,198,30,225,27,15,25,74,22,151,19,1,17,137,14,45,12, +222,9,142,7,41,5,154,2,210,255,202,252,135,249,21,246,130,242,228,238,80,235,224,231,171,228,193,225,26,223,164,220, +88,218,61,216,85,214,155,212,23,211,216,209,219,208,9,208,89,207,226,206,201,206,36,207,238,207,19,209,127,210,32,212, +223,213,157,215,63,217,185,218,0,220,6,221,190,221,47,222,109,222,148,222,195,222,26,223,183,223,192,224,91,226,150,228, +87,231,128,234,16,238,15,242,103,246,240,250,148,255,69,4,232,8,91,13,156,17,188,21,191,25,145,29,38,33,127,36, +167,39,175,42,173,45,174,48,172,51,154,54,119,57,69,60,247,62,113,65,150,67,75,69,120,70,255,70,202,70,212,69, +38,68,194,65,170,62,236,58,173,54,20,50,56,45,39,40,248,34,204,29,183,24,179,19,169,14,145,9,114,4,89,255, +76,250,81,245,116,240,198,235,87,231,53,227,111,223,21,220,52,217,214,214,246,212,138,211,136,210,223,209,110,209,20,209, +197,208,136,208,92,208,42,208,228,207,153,207,98,207,77,207,89,207,135,207,212,207,63,208,210,208,155,209,161,210,223,211, +77,213,232,214,176,216,177,218,5,221,198,223,242,226,107,230,32,234,22,238,76,242,175,246,33,251,136,255,206,3,220,7, +164,11,40,15,106,18,97,21,4,24,96,26,146,28,173,30,175,32,146,34,95,36,41,38,252,39,210,41,158,43,95,45, +20,47,172,48,12,50,29,51,213,51,48,52,49,52,232,51,108,51,208,50,27,50,87,49,136,48,166,47,162,46,109,45, +254,43,79,42,84,40,253,37,54,35,236,31,26,28,208,23,38,19,55,14,28,9,237,3,185,254,139,249,115,244,133,239, +210,234,104,230,79,226,143,222,43,219,30,216,110,213,51,211,131,209,100,208,196,207,141,207,173,207,13,208,147,208,37,209, +174,209,30,210,113,210,171,210,206,210,216,210,207,210,203,210,231,210,45,211,156,211,51,212,243,212,211,213,201,214,216,215, +27,217,180,218,189,220,63,223,66,226,215,229,15,234,233,238,70,244,227,249,117,255,190,4,155,9,2,14,227,17,43,21, +208,23,228,25,133,27,219,28,18,30,90,31,215,32,145,34,128,36,154,38,210,40,11,43,33,45,247,46,121,48,141,49, +22,50,8,50,125,49,158,48,136,47,77,46,7,45,210,43,190,42,197,41,224,40,6,40,36,39,23,38,188,36,1,35, +224,32,89,30,117,27,65,24,209,20,65,17,174,13,33,10,153,6,35,3,212,255,171,252,144,249,109,246,66,243,14,240, +192,236,77,233,198,229,75,226,240,222,187,219,167,216,187,213,18,211,214,208,35,207,246,205,45,205,174,204,114,204,126,204, +204,204,88,205,35,206,52,207,129,208,240,209,103,211,226,212,111,214,32,216,6,218,39,220,126,222,11,225,226,227,34,231, +217,234,250,238,109,243,29,248,252,252,2,2,27,7,31,12,213,16,20,21,201,24,241,27,138,30,155,32,52,34,103,35, +68,36,224,36,84,37,180,37,23,38,157,38,92,39,81,40,100,41,122,42,125,43,78,44,199,44,199,44,57,44,24,43, +100,41,33,39,86,36,34,33,183,29,73,26,253,22,241,19,55,17,208,14,177,12,211,10,57,9,220,7,162,6,111,5, +47,4,214,2,90,1,180,255,228,253,233,251,209,249,171,247,130,245,89,243,59,241,52,239,64,237,76,235,58,233,250,230, +151,228,43,226,207,223,137,221,78,219,22,217,238,214,244,212,70,211,243,209,245,208,69,208,222,207,193,207,229,207,65,208, +224,208,217,209,48,211,210,212,174,214,206,216,71,219,42,222,132,225,110,229,251,233,40,239,219,244,245,250,91,1,237,7, +119,14,188,20,141,26,215,31,140,36,146,40,204,43,48,46,203,47,185,48,16,49,218,48,37,48,20,47,207,45,96,44, +183,42,214,40,228,38,14,37,102,35,240,33,187,32,211,31,33,31,114,30,139,29,71,28,146,26,110,24,225,21,242,18, +163,15,6,12,62,8,120,4,223,0,156,253,203,250,114,248,131,246,235,244,152,243,120,242,114,241,119,240,131,239,151,238, +179,237,213,236,4,236,73,235,156,234,233,233,38,233,99,232,185,231,46,231,191,230,106,230,48,230,18,230,8,230,7,230, +5,230,249,229,225,229,187,229,128,229,35,229,162,228,9,228,113,227,249,226,194,226,229,226,104,227,64,228,101,229,221,230, +178,232,234,234,118,237,65,240,53,243,61,246,67,249,62,252,59,255,82,2,138,5,211,8,38,12,150,15,61,19,26,23, +33,27,72,31,142,35,230,39,52,44,91,48,68,52,210,55,221,58,59,61,197,62,107,63,43,63,11,62,19,60,85,57, +242,53,16,50,202,45,42,41,77,36,99,31,150,26,226,21,37,17,73,12,100,7,149,2,246,253,163,249,192,245,113,242, +189,239,146,237,216,235,131,234,141,233,246,232,169,232,125,232,62,232,211,231,52,231,105,230,126,229,145,228,195,227,40,227, +186,226,101,226,8,226,130,225,189,224,185,223,128,222,26,221,140,219,236,217,98,216,34,215,89,214,21,214,70,214,212,214, +169,215,184,216,245,217,86,219,210,220,90,222,221,223,87,225,216,226,121,228,80,230,110,232,224,234,175,237,217,240,89,244, +40,248,58,252,134,0,1,5,153,9,46,14,162,18,231,22,254,26,223,30,114,34,167,37,129,40,4,43,38,45,238,46, +137,48,56,50,20,52,8,54,255,55,243,57,222,59,164,61,39,63,79,64,245,64,240,64,36,64,145,62,67,60,73,57, +182,53,160,49,7,45,229,39,67,34,58,28,226,21,83,15,173,8,26,2,187,251,165,245,239,239,184,234,27,230,45,226, +246,222,118,220,163,218,99,217,151,216,42,216,19,216,73,216,177,216,37,217,132,217,191,217,219,217,232,217,238,217,221,217, +153,217,17,217,71,216,73,215,43,214,16,213,27,212,91,211,202,210,103,210,60,210,75,210,137,210,243,210,147,211,111,212, +126,213,184,214,43,216,249,217,45,220,184,222,132,225,140,228,215,231,105,235,67,239,111,243,246,247,219,252,27,2,186,7, +181,13,251,19,116,26,14,33,181,39,65,46,123,52,50,58,57,63,110,67,194,70,58,73,218,74,171,75,198,75,89,75, +142,74,127,73,72,72,5,71,191,69,84,68,154,66,120,64,235,61,247,58,160,55,249,51,26,48,12,44,204,39,94,35, +226,30,122,26,44,22,232,17,166,13,102,9,31,5,187,0,52,252,155,247,10,243,138,238,23,234,177,229,103,225,83,221, +141,217,22,214,213,210,178,207,175,204,225,201,95,199,56,197,127,195,60,194,106,193,0,193,255,192,120,193,119,194,246,195, +224,197,21,200,108,202,184,204,212,206,173,208,62,210,137,211,137,212,61,213,166,213,212,213,234,213,24,214,146,214,127,215, +3,217,58,219,36,222,159,225,140,229,227,233,163,238,187,243,15,249,138,254,36,4,216,9,168,15,153,21,164,27,172,33, +134,39,6,45,7,50,109,54,43,58,69,61,191,63,167,65,21,67,39,68,242,68,130,69,226,69,29,70,47,70,2,70, +111,69,86,68,170,66,114,64,183,61,105,58,125,54,2,50,43,45,43,40,42,35,80,30,198,25,164,21,219,17,65,14, +181,10,40,7,146,3,234,255,36,252,62,248,60,244,30,240,238,235,200,231,207,227,30,224,192,220,182,217,0,215,155,212, +124,210,147,208,206,206,34,205,148,203,38,202,209,200,153,199,148,198,225,197,140,197,144,197,233,197,140,198,102,199,102,200, +145,201,243,202,151,204,121,206,139,208,201,210,59,213,244,215,253,218,83,222,243,225,223,229,13,234,101,238,210,242,84,247, +233,251,119,0,224,4,29,9,64,13,91,17,118,21,146,25,180,29,225,33,29,38,92,42,131,46,108,50,246,53,13,57, +157,59,153,61,0,63,211,63,22,64,210,63,22,63,251,61,155,60,7,59,78,57,129,55,170,53,203,51,228,49,247,47, +247,45,199,43,71,41,113,38,76,35,217,31,26,28,26,24,231,19,133,15,247,10,84,6,195,1,93,253,43,249,53,245, +135,241,41,238,32,235,106,232,249,229,180,227,143,225,134,223,145,221,158,219,171,217,209,215,45,214,200,212,154,211,159,210, +216,209,64,209,207,208,128,208,89,208,95,208,136,208,199,208,21,209,119,209,250,209,160,210,104,211,79,212,87,213,124,214, +182,215,255,216,90,218,223,219,175,221,226,223,120,226,98,229,161,232,76,236,126,240,54,245,83,250,165,255,2,5,77,10, +109,15,75,20,214,24,15,29,239,32,95,36,70,39,167,41,169,43,122,45,40,47,171,48,246,49,10,51,230,51,135,52, +226,52,239,52,164,52,241,51,199,50,38,49,29,47,185,44,11,42,39,39,32,36,6,33,228,29,195,26,166,23,137,20, +106,17,92,14,117,11,188,8,36,6,165,3,67,1,8,255,245,252,3,251,31,249,62,247,99,245,156,243,233,241,61,240, +138,238,209,236,28,235,112,233,201,231,38,230,150,228,49,227,6,226,14,225,49,224,94,223,153,222,243,221,118,221,25,221, +205,220,132,220,60,220,240,219,159,219,81,219,27,219,15,219,40,219,89,219,161,219,14,220,170,220,121,221,133,222,221,223, +148,225,181,227,71,230,74,233,183,236,132,240,165,244,8,249,149,253,60,2,247,6,187,11,112,16,5,21,115,25,186,29, +205,33,160,37,45,41,120,44,124,47,42,50,111,52,64,54,152,55,117,56,216,56,199,56,75,56,99,55,7,54,56,52, +255,49,105,47,129,44,87,41,240,37,79,34,131,30,168,26,207,22,253,18,58,15,155,11,43,8,220,4,154,1,99,254, +67,251,64,248,99,245,191,242,105,240,95,238,148,236,7,235,191,233,194,232,5,232,123,231,29,231,233,230,214,230,203,230, +168,230,87,230,209,229,26,229,60,228,66,227,52,226,24,225,248,223,221,222,217,221,5,221,113,220,22,220,239,219,3,220, +94,220,245,220,180,221,148,222,145,223,148,224,131,225,93,226,60,227,52,228,71,229,126,230,233,231,154,233,158,235,253,237, +195,240,242,243,128,247,87,251,96,255,150,3,1,8,151,12,53,17,192,21,39,26,95,30,82,34,240,37,61,41,66,44, +252,46,91,49,78,51,206,52,235,53,192,54,88,55,161,55,137,55,16,55,74,54,53,53,186,51,196,49,76,47,82,44, +215,40,229,36,144,32,242,27,31,23,45,18,66,13,140,8,32,4,251,255,18,252,94,248,223,244,154,241,144,238,191,235, +37,233,196,230,160,228,180,226,250,224,118,223,59,222,79,221,169,220,63,220,17,220,34,220,119,220,14,221,223,221,211,222, +220,223,251,224,52,226,129,227,208,228,14,230,46,231,38,232,251,232,190,233,124,234,60,235,10,236,252,236,22,238,67,239, +108,240,151,241,221,242,60,244,139,245,168,246,158,247,152,248,179,249,236,250,51,252,131,253,232,254,113,0,37,2,251,3, +229,5,218,7,213,9,211,11,207,13,209,15,226,17,253,19,21,22,46,24,88,26,151,28,210,30,231,32,194,34,101,36, +218,37,39,39,75,40,71,41,24,42,175,42,252,42,248,42,171,42,31,42,78,41,26,40,90,38,254,35,31,33,227,29, +97,26,156,22,153,18,96,14,253,9,128,5,10,1,187,252,158,248,173,244,230,240,94,237,51,234,117,231,26,229,18,227, +84,225,222,223,161,222,133,221,131,220,163,219,231,218,70,218,186,217,73,217,4,217,1,217,75,217,215,217,140,218,92,219, +89,220,142,221,239,222,98,224,211,225,60,227,166,228,34,230,190,231,120,233,73,235,54,237,77,239,152,241,30,244,213,246, +163,249,97,252,240,254,59,1,54,3,222,4,58,6,77,7,19,8,153,8,253,8,92,9,196,9,58,10,201,10,125,11, +95,12,114,13,178,14,37,16,212,17,189,19,202,21,223,23,243,25,1,28,254,29,223,31,162,33,65,35,168,36,199,37, +163,38,73,39,185,39,226,39,174,39,16,39,18,38,205,36,79,35,143,33,133,31,57,29,187,26,25,24,93,21,138,18, +155,15,140,12,92,9,8,6,144,2,0,255,104,251,212,247,76,244,228,240,175,237,181,234,250,231,136,229,97,227,118,225, +183,223,40,222,206,220,163,219,167,218,227,217,86,217,244,216,189,216,196,216,20,217,160,217,87,218,47,219,42,220,78,221, +157,222,31,224,219,225,215,227,15,230,122,232,27,235,249,237,9,241,53,244,122,247,228,250,108,254,245,1,91,5,135,8, +106,11,240,13,8,16,168,17,214,18,166,19,41,20,94,20,61,20,218,19,102,19,9,19,199,18,150,18,133,18,180,18, +56,19,255,19,219,20,164,21,75,22,205,22,37,23,75,23,74,23,45,23,242,22,143,22,12,22,139,21,44,21,240,20, +193,20,143,20,95,20,48,20,240,19,140,19,9,19,107,18,161,17,144,16,56,15,167,13,233,11,245,9,196,7,87,5, +181,2,236,255,14,253,35,250,50,247,64,244,87,241,129,238,201,235,64,233,244,230,227,228,253,226,54,225,134,223,230,221, +90,220,237,218,175,217,170,216,234,215,127,215,116,215,202,215,126,216,143,217,4,219,224,220,26,223,156,225,74,228,11,231, +207,233,146,236,96,239,80,242,117,245,206,248,66,252,186,255,61,3,216,6,128,10,20,14,126,17,179,20,168,23,75,26, +139,28,91,30,172,31,126,32,220,32,203,32,64,32,62,31,226,29,76,28,126,26,119,24,82,22,58,20,85,18,194,16, +142,15,170,14,250,13,105,13,238,12,119,12,236,11,71,11,141,10,193,9,220,8,218,7,190,6,146,5,105,4,91,3, +122,2,219,1,147,1,162,1,243,1,110,2,4,3,167,3,65,4,189,4,10,5,22,5,202,4,19,4,234,2,88,1, +119,255,95,253,26,251,177,248,66,246,241,243,213,241,234,239,40,238,139,236,28,235,239,233,18,233,118,232,247,231,121,231, +244,230,102,230,211,229,64,229,174,228,33,228,160,227,53,227,224,226,174,226,192,226,62,227,66,228,221,229,37,232,30,235, +182,238,211,242,92,247,28,252,206,0,65,5,101,9,51,13,154,16,144,19,19,22,38,24,231,25,128,27,20,29,170,30, +59,32,182,33,248,34,217,35,75,36,82,36,221,35,211,34,45,33,253,30,92,28,109,25,89,22,63,19,42,16,35,13, +58,10,134,7,25,5,3,3,69,1,204,255,138,254,131,253,195,252,79,252,25,252,13,252,13,252,4,252,240,251,212,251, +172,251,117,251,71,251,56,251,69,251,90,251,118,251,170,251,253,251,91,252,158,252,170,252,115,252,248,251,57,251,54,250, +234,248,80,247,107,245,81,243,35,241,247,238,213,236,200,234,229,232,62,231,224,229,209,228,13,228,128,227,27,227,236,226, +8,227,108,227,1,228,179,228,123,229,92,230,94,231,137,232,227,233,124,235,109,237,199,239,142,242,198,245,135,249,217,253, +154,2,146,7,155,12,157,17,109,22,220,26,205,30,50,34,3,37,52,39,202,40,209,41,92,42,117,42,39,42,124,41, +137,40,107,39,60,38,7,37,203,35,131,34,34,33,149,31,205,29,192,27,94,25,146,22,76,19,147,15,122,11,39,7, +206,2,156,254,157,250,207,246,82,243,103,240,51,238,152,236,92,235,92,234,143,233,242,232,119,232,22,232,196,231,130,231, +94,231,111,231,182,231,40,232,183,232,98,233,30,234,207,234,98,235,217,235,81,236,227,236,148,237,81,238,4,239,168,239, +65,240,203,240,68,241,169,241,243,241,15,242,232,241,129,241,240,240,78,240,165,239,246,238,70,238,161,237,18,237,175,236, +143,236,199,236,89,237,66,238,142,239,85,241,152,243,70,246,95,249,241,252,250,0,91,5,241,9,166,14,95,19,2,24, +128,28,208,32,223,36,161,40,19,44,57,47,13,50,138,52,176,54,121,56,214,57,184,58,19,59,222,58,11,58,146,56, +106,54,143,51,19,48,26,44,186,39,255,34,10,30,6,25,11,20,24,15,56,10,139,5,39,1,6,253,31,249,110,245, +240,241,160,238,118,235,103,232,118,229,180,226,65,224,59,222,180,220,179,219,56,219,59,219,178,219,137,220,154,221,189,222, +218,223,230,224,204,225,112,226,188,226,178,226,118,226,63,226,47,226,61,226,84,226,117,226,163,226,203,226,214,226,195,226, +155,226,94,226,27,226,244,225,12,226,116,226,60,227,108,228,248,229,204,231,227,233,60,236,178,238,13,241,45,243,14,245, +184,246,73,248,2,250,47,252,249,254,100,2,92,6,209,10,187,15,20,21,182,26,87,32,174,37,136,42,192,46,40,50, +172,52,100,54,133,55,56,56,155,56,202,56,223,56,233,56,249,56,20,57,39,57,9,57,154,56,208,55,169,54,15,53, +224,50,11,48,154,44,150,40,6,36,254,30,168,25,41,20,144,14,230,8,75,3,226,253,184,248,199,243,13,239,146,234, +87,230,76,226,98,222,156,218,26,215,255,211,83,209,19,207,79,205,35,204,139,203,99,203,145,203,26,204,9,205,79,206, +217,207,154,209,133,211,144,213,184,215,244,217,37,220,40,222,244,223,136,225,208,226,179,227,56,228,115,228,106,228,43,228, +225,227,201,227,0,228,133,228,95,229,165,230,92,232,104,234,165,236,18,239,191,241,173,244,190,247,209,250,234,253,42,1, +171,4,105,8,90,12,136,16,251,20,169,25,126,30,113,35,120,40,121,45,75,50,204,54,237,58,167,62,250,65,218,68, +45,71,211,72,187,73,233,73,104,73,66,72,129,70,44,68,71,65,220,61,10,58,254,53,224,49,190,45,144,41,82,37, +11,33,203,28,147,24,80,20,229,15,72,11,138,6,201,1,21,253,117,248,236,243,131,239,67,235,53,231,109,227,8,224, +18,221,119,218,20,216,219,213,209,211,244,209,53,208,146,206,25,205,213,203,190,202,195,201,228,200,55,200,221,199,228,199, +58,200,194,200,112,201,71,202,65,203,73,204,84,205,108,206,159,207,251,208,140,210,91,212,111,214,210,216,138,219,148,222, +233,225,129,229,75,233,35,237,223,240,106,244,202,247,17,251,88,254,181,1,53,5,224,8,188,12,209,16,34,21,162,25, +41,30,140,34,186,38,188,42,137,46,248,49,230,52,100,55,159,57,177,59,148,61,66,63,182,64,234,65,220,66,146,67, +6,68,31,68,191,67,215,66,98,65,95,63,209,60,187,57,43,54,55,50,254,45,138,41,196,36,158,31,40,26,138,20, +232,14,87,9,219,3,111,254,30,249,6,244,63,239,196,234,129,230,118,226,175,222,49,219,243,215,242,212,50,210,184,207, +140,205,182,203,52,202,249,200,4,200,93,199,13,199,17,199,95,199,235,199,165,200,124,201,110,202,127,203,167,204,208,205, +228,206,232,207,239,208,249,209,0,211,11,212,57,213,168,214,105,216,135,218,16,221,6,224,105,227,61,231,126,235,19,240, +196,244,87,249,166,253,168,1,101,5,232,8,46,12,65,15,66,18,87,21,145,24,242,27,137,31,111,35,167,39,13,44, +121,48,213,52,24,57,43,61,220,64,243,67,80,70,250,71,1,73,93,73,2,73,9,72,162,70,234,68,224,66,142,64, +15,62,114,59,168,56,153,53,71,50,186,46,237,42,206,38,89,34,166,29,218,24,15,20,77,15,159,10,25,6,208,1, +191,253,211,249,13,246,121,242,18,239,187,235,92,232,0,229,193,225,175,222,215,219,65,217,233,214,186,212,161,210,156,208, +170,206,191,204,197,202,170,200,106,198,28,196,229,193,233,191,67,190,5,189,67,188,21,188,131,188,131,189,254,190,222,192, +15,195,115,197,235,199,101,202,239,204,180,207,220,210,119,214,118,218,201,222,111,227,111,232,195,237,75,243,221,248,89,254, +174,3,207,8,165,13,27,18,50,22,5,26,184,29,101,33,21,37,192,40,93,44,240,47,127,51,4,55,90,58,90,61, +243,63,45,66,15,68,146,69,162,70,47,71,56,71,202,70,253,69,214,68,80,67,106,65,63,63,230,60,87,58,126,55, +86,52,234,48,64,45,82,41,24,37,153,32,226,27,12,23,46,18,83,13,122,8,167,3,238,254,95,250,246,245,164,241, +100,237,55,233,35,229,50,225,112,221,227,217,136,214,108,211,170,208,83,206,91,204,169,202,45,201,229,199,207,198,224,197, +7,197,59,196,129,195,231,194,126,194,72,194,67,194,112,194,212,194,108,195,45,196,9,197,245,197,246,198,33,200,143,201, +81,203,115,205,10,208,50,211,246,214,71,219,255,223,245,228,4,234,15,239,8,244,238,248,193,253,121,2,19,7,152,11, +38,16,233,20,7,26,139,31,90,37,85,43,109,49,152,55,180,61,141,67,243,72,204,77,254,81,114,85,22,88,233,89, +227,90,244,90,18,90,74,88,190,85,149,82,231,78,194,74,63,70,130,65,171,60,202,55,237,50,44,46,160,41,78,37, +40,33,32,29,44,25,67,21,91,17,128,13,194,9,29,6,119,2,199,254,34,251,150,247,10,244,88,240,113,236,101,232, +77,228,60,224,62,220,81,216,111,212,150,208,209,204,41,201,173,197,109,194,115,191,194,188,94,186,97,184,222,182,207,181, +26,181,185,180,183,180,23,181,204,181,198,182,245,183,75,185,194,186,105,188,87,190,151,192,49,195,45,198,146,201,89,205, +122,209,0,214,249,218,103,224,59,230,86,236,145,242,203,248,243,254,15,5,33,11,31,17,5,23,218,28,167,34,96,40, +237,45,59,51,64,56,251,60,118,65,175,69,148,73,17,77,38,80,217,82,37,85,246,86,63,88,249,88,17,89,116,88, +38,87,57,85,180,82,154,79,250,75,232,71,105,67,115,62,18,57,111,51,177,45,225,39,241,33,218,27,166,21,117,15, +109,9,161,3,18,254,186,248,157,243,197,238,57,234,250,229,8,226,84,222,191,218,51,215,186,211,122,208,153,205,36,203, +13,201,58,199,150,197,15,196,148,194,24,193,166,191,88,190,57,189,65,188,118,187,250,186,235,186,66,187,225,187,179,188, +173,189,198,190,245,191,53,193,124,194,178,195,218,196,35,198,208,199,18,202,0,205,170,208,36,213,121,218,153,224,95,231, +161,238,65,246,33,254,13,6,198,13,38,21,59,28,40,35,241,41,128,48,198,54,201,60,137,66,236,71,207,76,21,81, +164,84,95,87,43,89,0,90,243,89,41,89,193,87,206,85,96,83,160,80,209,77,34,75,146,72,15,70,146,67,28,65, +155,62,233,59,242,56,178,53,32,50,34,46,165,41,169,36,53,31,87,25,39,19,192,12,58,6,174,255,56,249,242,242, +241,236,68,231,252,225,36,221,193,216,221,212,131,209,179,206,89,204,106,202,243,200,13,200,174,199,176,199,229,199,59,200, +179,200,74,201,236,201,134,202,11,203,128,203,240,203,104,204,238,204,137,205,61,206,13,207,236,207,203,208,165,209,126,210, +93,211,64,212,46,213,60,214,142,215,81,217,180,219,203,222,139,226,211,230,142,235,184,240,63,246,238,251,123,1,171,6, +102,11,172,15,138,19,13,23,70,26,80,29,66,32,45,35,25,38,17,41,32,44,68,47,93,50,57,53,175,55,176,57, +60,59,79,60,208,60,164,60,202,59,92,58,115,56,23,54,72,51,18,48,140,44,201,40,213,36,195,32,183,28,205,24, +5,21,77,17,157,13,250,9,105,6,224,2,84,255,200,251,70,248,215,244,127,241,78,238,96,235,201,232,134,230,143,228, +233,226,164,225,195,224,51,224,221,223,178,223,172,223,194,223,232,223,17,224,57,224,103,224,165,224,243,224,76,225,176,225, +46,226,207,226,140,227,85,228,49,229,51,230,103,231,194,232,43,234,136,235,192,236,196,237,150,238,65,239,203,239,50,240, +131,240,219,240,95,241,41,242,75,243,212,244,214,246,102,249,139,252,52,0,56,4,114,8,197,12,15,17,49,21,19,25, +167,28,222,31,163,34,242,36,212,38,70,40,50,41,144,41,123,41,28,41,132,40,182,39,190,38,177,37,159,36,136,35, +106,34,63,33,1,32,170,30,55,29,158,27,211,25,207,23,157,21,73,19,212,16,61,14,138,11,182,8,181,5,123,2, +17,255,143,251,5,248,124,244,249,240,145,237,102,234,160,231,98,229,182,227,148,226,241,225,192,225,230,225,67,226,193,226, +86,227,240,227,119,228,217,228,22,229,58,229,85,229,121,229,174,229,244,229,80,230,220,230,186,231,245,232,128,234,74,236, +82,238,148,240,2,243,138,245,27,248,157,250,241,252,251,254,174,0,18,2,58,3,61,4,50,5,44,6,55,7,91,8, +152,9,246,10,129,12,48,14,226,15,114,17,208,18,249,19,220,20,94,21,122,21,83,21,24,21,234,20,210,20,211,20, +234,20,10,21,32,21,34,21,12,21,216,20,116,20,199,19,195,18,107,17,209,15,13,14,60,12,121,10,212,8,74,7, +210,5,100,4,252,2,144,1,20,0,135,254,228,252,25,251,21,249,224,246,142,244,44,242,182,239,48,237,169,234,43,232, +194,229,126,227,110,225,139,223,203,221,69,220,41,219,147,218,123,218,211,218,167,219,9,221,248,222,93,225,33,228,51,231, +127,234,231,237,65,241,99,244,53,247,177,249,225,251,214,253,168,255,125,1,113,3,143,5,219,7,95,10,28,13,5,16, +3,19,249,21,194,24,44,27,8,29,71,30,244,30,45,31,16,31,183,30,47,30,139,29,236,28,122,28,69,28,57,28, +58,28,53,28,31,28,239,27,156,27,31,27,99,26,66,25,174,23,184,21,134,19,50,17,208,14,109,12,14,10,174,7, +75,5,242,2,186,0,167,254,172,252,178,250,176,248,178,246,209,244,30,243,160,241,92,240,86,239,142,238,244,237,117,237, +11,237,170,236,57,236,150,235,174,234,135,233,43,232,158,230,224,228,251,226,0,225,5,223,34,221,120,219,44,218,78,217, +210,216,164,216,198,216,78,217,71,218,169,219,99,221,106,223,180,225,57,228,245,230,218,233,202,236,162,239,90,242,3,245, +172,247,87,250,12,253,234,255,10,3,114,6,39,10,60,14,196,18,178,23,216,28,4,34,10,39,186,43,227,47,100,51, +57,54,106,56,250,57,232,58,62,59,27,59,163,58,228,57,214,56,116,55,195,53,200,51,125,49,221,46,246,43,218,40, +150,37,46,34,167,30,17,27,125,23,1,20,175,16,132,13,107,10,85,7,68,4,60,1,56,254,49,251,38,248,31,245, +34,242,57,239,112,236,197,233,51,231,189,228,113,226,79,224,63,222,41,220,8,218,224,215,181,213,149,211,150,209,197,207, +26,206,141,204,50,203,45,202,146,201,86,201,97,201,153,201,237,201,77,202,174,202,12,203,114,203,245,203,177,204,184,205, +20,207,212,208,13,211,213,213,44,217,246,220,14,225,104,229,11,234,242,238,243,243,217,248,139,253,31,2,196,6,165,11, +213,16,73,22,238,27,190,33,194,39,236,45,14,52,240,57,98,63,64,68,102,72,190,75,82,78,62,80,148,81,87,82, +134,82,51,82,130,81,149,80,123,79,26,78,63,76,197,73,169,70,2,67,224,62,70,58,57,53,199,47,254,41,234,35, +161,29,74,23,12,17,253,10,25,5,79,255,162,249,38,244,237,238,244,233,55,229,194,224,159,220,204,216,76,213,46,210, +115,207,11,205,238,202,43,201,203,199,187,198,229,197,78,197,3,197,239,196,237,196,237,196,247,196,19,197,58,197,89,197, +99,197,88,197,69,197,53,197,23,197,200,196,67,196,177,195,71,195,16,195,6,195,54,195,195,195,210,196,135,198,255,200, +69,204,76,208,6,213,109,218,105,224,206,230,132,237,148,244,5,252,188,3,141,11,87,19,29,27,237,34,207,42,184,50, +152,58,96,66,247,73,40,81,172,87,71,93,214,97,67,101,131,103,142,104,99,104,11,103,167,100,122,97,215,93,248,89, +244,85,224,81,224,77,13,74,96,70,199,66,56,63,157,59,205,55,163,51,20,47,30,42,186,36,247,30,243,24,194,18, +94,12,187,5,236,254,28,248,130,241,75,235,138,229,50,224,47,219,125,214,29,210,19,206,93,202,2,199,6,196,108,193, +50,191,87,189,214,187,178,186,247,185,159,185,134,185,131,185,137,185,165,185,222,185,49,186,170,186,93,187,71,188,84,189, +135,190,254,191,195,193,189,195,212,197,0,200,46,202,74,204,94,206,152,208,22,211,224,213,2,217,149,220,161,224,32,229, +35,234,187,239,210,245,49,252,165,2,4,9,31,15,227,20,108,26,227,31,79,37,167,42,251,47,114,53,36,59,6,65, +0,71,240,76,175,82,16,88,234,92,9,97,49,100,50,102,4,103,184,102,98,101,32,99,32,96,136,92,97,88,167,83, +98,78,151,72,68,66,119,59,87,52,4,45,143,37,16,30,172,22,135,15,182,8,71,2,59,252,137,246,62,241,115,236, +42,232,55,228,116,224,220,220,121,217,65,214,60,211,145,208,95,206,149,204,12,203,188,201,190,200,34,200,220,199,205,199, +209,199,185,199,83,199,141,198,116,197,30,196,161,194,20,193,150,191,63,190,39,189,96,188,244,187,225,187,32,188,165,188, +87,189,42,190,47,191,128,192,38,194,49,196,195,198,253,201,240,205,183,210,118,216,36,223,111,230,1,238,181,245,128,253, +81,5,25,13,208,20,98,28,181,35,200,42,186,49,150,56,66,63,157,69,151,75,30,81,4,86,30,90,98,93,212,95, +113,97,62,98,87,98,226,97,249,96,181,95,59,94,163,92,227,90,237,88,186,86,59,84,75,81,204,77,186,73,16,69, +202,63,236,57,133,51,161,44,87,37,215,29,76,22,194,14,66,7,240,255,238,248,65,242,225,235,214,229,61,224,45,219, +172,214,171,210,20,207,217,203,251,200,121,198,68,196,62,194,86,192,136,190,215,188,68,187,211,185,136,184,96,183,79,182, +83,181,118,180,191,179,48,179,202,178,154,178,155,178,190,178,1,179,110,179,255,179,171,180,131,181,179,182,91,184,127,186, +38,189,90,192,36,196,143,200,180,205,158,211,65,218,123,225,39,233,36,241,95,249,214,1,136,10,104,19,103,28,117,37, +118,46,66,55,188,63,209,71,98,79,68,86,85,92,137,97,212,101,33,105,110,107,213,108,125,109,116,109,183,108,92,107, +148,105,132,103,36,101,91,98,27,95,103,91,67,87,183,82,198,77,104,72,155,66,119,60,13,54,77,47,39,40,177,32, +30,25,140,17,2,10,138,2,53,251,19,244,49,237,159,230,124,224,236,218,255,213,163,209,178,205,32,202,241,198,29,196, +137,193,24,191,191,188,130,186,106,184,134,182,218,180,106,179,60,178,92,177,217,176,196,176,39,177,248,177,28,179,116,180, +234,181,114,183,14,185,193,186,126,188,46,190,196,191,58,193,146,194,217,195,46,197,180,198,139,200,212,202,179,205,76,209, +200,213,80,219,223,225,52,233,12,241,73,249,222,1,158,10,64,19,135,27,89,35,170,42,116,49,188,55,166,61,115,67, +81,73,59,79,8,85,162,90,4,96,17,101,138,105,45,109,211,111,103,113,219,113,33,113,60,111,68,108,98,104,186,99, +111,94,175,88,171,82,127,76,56,70,228,63,147,57,71,51,251,44,169,38,75,32,222,25,100,19,223,12,87,6,222,255, +141,249,109,243,114,237,156,231,5,226,198,220,226,215,82,211,25,207,69,203,225,199,234,196,83,194,31,192,102,190,53,189, +108,188,231,187,161,187,150,187,154,187,103,187,206,186,204,185,110,184,199,182,222,180,200,178,178,176,227,174,156,173,6,173, +55,173,64,174,44,176,243,178,109,182,94,186,145,190,229,194,71,199,165,203,0,208,113,212,25,217,28,222,164,227,217,233, +197,240,88,248,136,0,70,9,104,18,169,27,204,36,162,45,8,54,242,61,94,69,66,76,136,82,38,88,27,93,105,97, +10,101,0,104,76,106,241,107,244,108,85,109,20,109,56,108,203,106,201,104,35,102,222,98,23,95,230,90,77,86,63,81, +171,75,140,69,235,62,226,55,140,48,252,40,76,33,142,25,208,17,30,10,141,2,55,251,55,244,170,237,175,231,82,226, +146,221,108,217,218,213,203,210,44,208,224,205,185,203,148,201,98,199,38,197,217,194,113,192,247,189,126,187,37,185,12,183, +69,181,204,179,159,178,208,177,108,177,92,177,119,177,166,177,228,177,35,178,81,178,113,178,157,178,236,178,98,179,250,179, +195,180,235,181,154,183,203,185,109,188,132,191,50,195,167,199,5,205,97,211,191,218,21,227,83,236,95,246,16,1,65,12, +192,23,62,35,100,46,254,56,250,66,60,76,154,84,252,91,101,98,218,103,85,108,198,111,45,114,155,115,38,116,213,115, +158,114,141,112,205,109,150,106,14,103,71,99,66,95,247,90,115,86,213,81,47,77,116,72,141,67,105,62,246,56,43,51, +17,45,183,38,35,32,95,25,134,18,173,11,212,4,246,253,35,247,119,240,8,234,224,227,12,222,153,216,147,211,244,206, +169,202,173,198,12,195,206,191,229,188,70,186,245,183,250,181,79,180,232,178,190,177,211,176,41,176,183,175,100,175,36,175, +16,175,74,175,202,175,111,176,54,177,68,178,180,179,136,181,174,183,26,186,198,188,177,191,206,194,2,198,54,201,110,204, +198,207,93,211,76,215,161,219,105,224,188,229,193,235,139,242,6,250,19,2,151,10,108,19,78,28,238,36,26,45,194,52, +246,59,205,66,74,73,93,79,240,84,5,90,176,94,5,99,10,103,165,106,171,109,246,111,104,113,225,113,72,113,162,111, +255,108,112,105,251,100,173,95,157,89,245,82,240,75,181,68,64,61,139,53,183,45,240,37,74,30,204,22,126,15,100,8, +120,1,189,250,75,244,56,238,149,232,116,227,235,222,246,218,123,215,98,212,162,209,62,207,56,205,130,203,254,201,146,200, +47,199,206,197,106,196,251,194,119,193,224,191,74,190,195,188,58,187,153,185,233,183,83,182,236,180,179,179,164,178,197,177, +36,177,208,176,211,176,40,177,218,177,1,179,170,180,191,182,43,185,1,188,104,191,112,195,26,200,100,205,83,211,241,217, +69,225,75,233,240,241,26,251,177,4,138,14,107,24,29,34,117,43,73,52,109,60,184,67,11,74,82,79,147,83,238,86, +136,89,132,91,9,93,64,94,75,95,59,96,17,97,209,97,136,98,55,99,190,99,233,99,141,99,132,98,159,96,197,93, +4,90,117,85,25,80,235,73,2,67,123,59,113,51,9,43,134,34,36,26,0,18,33,10,135,2,62,251,103,244,45,238, +153,232,138,227,222,222,147,218,167,214,4,211,154,207,123,204,190,201,93,199,60,197,72,195,140,193,14,192,195,190,145,189, +103,188,61,187,11,186,211,184,171,183,172,182,224,181,73,181,223,180,149,180,102,180,100,180,170,180,62,181,24,182,45,183, +104,184,172,185,245,186,109,188,66,190,140,192,74,195,116,198,2,202,250,205,123,210,159,215,114,221,3,228,102,235,145,243, +87,252,142,5,32,15,246,24,236,34,214,44,130,54,188,63,94,72,87,80,155,87,14,94,147,99,23,104,168,107,96,110, +77,112,102,113,157,113,241,112,113,111,56,109,93,106,240,102,252,98,147,94,206,89,186,84,89,79,192,73,14,68,78,62, +133,56,195,50,12,45,62,39,57,33,2,27,169,20,31,14,96,7,151,0,2,250,185,243,186,237,9,232,188,226,228,221, +139,217,180,213,95,210,137,207,33,205,250,202,218,200,158,198,74,196,229,193,95,191,166,188,194,185,215,182,6,180,89,177, +215,174,161,172,219,170,147,169,198,168,130,168,210,168,170,169,240,170,137,172,93,174,94,176,151,178,28,181,230,183,223,186, +1,190,79,193,203,196,126,200,142,204,42,209,109,214,107,220,46,227,177,234,235,242,209,251,70,5,17,15,251,24,215,34, +115,44,143,53,253,61,174,69,154,76,189,82,41,88,6,93,118,97,128,101,25,105,62,108,235,110,22,113,168,114,135,115, +155,115,199,114,240,112,9,110,25,106,37,101,56,95,114,88,2,81,15,73,194,64,84,56,249,47,209,39,241,31,106,24, +62,17,99,10,233,3,237,253,101,248,41,243,39,238,103,233,232,228,149,224,95,220,56,216,13,212,217,207,180,203,175,199, +203,195,6,192,125,188,88,185,171,182,115,180,169,178,78,177,86,176,156,175,241,174,65,174,148,173,250,172,127,172,48,172, +24,172,74,172,223,172,236,173,116,175,111,177,224,179,197,182,4,186,125,189,33,193,233,196,205,200,219,204,59,209,18,214, +135,219,204,225,22,233,120,241,229,250,67,5,101,16,2,28,205,39,126,51,187,62,22,73,57,82,247,89,70,96,47,101, +202,104,58,107,171,108,96,109,162,109,163,109,113,109,20,109,148,108,239,107,13,107,210,105,53,104,42,102,149,99,79,96, +76,92,152,87,54,82,21,76,62,69,213,61,249,53,171,45,243,36,250,27,246,18,23,10,140,1,119,249,236,241,247,234, +178,228,34,223,46,218,186,213,179,209,2,206,132,202,49,199,21,196,40,193,75,190,116,187,182,184,51,182,21,180,134,178, +154,177,66,177,87,177,190,177,103,178,66,179,46,180,11,181,203,181,113,182,5,183,135,183,254,183,125,184,20,185,215,185, +226,186,81,188,47,190,135,192,109,195,232,198,226,202,59,207,230,211,221,216,22,222,136,227,38,233,215,238,132,244,38,250, +202,255,138,5,140,11,230,17,143,24,113,31,134,38,202,45,36,53,114,60,157,67,134,74,238,80,143,86,63,91,238,94, +160,97,103,99,93,100,148,100,19,100,225,98,12,97,166,94,195,91,112,88,173,84,116,80,191,75,141,70,232,64,225,58, +131,52,219,45,5,39,33,32,65,25,128,18,7,12,235,5,30,0,150,250,93,245,115,240,196,235,70,231,13,227,46,223, +169,219,139,216,238,213,224,211,88,210,76,209,171,208,82,208,21,208,206,207,93,207,163,206,138,205,5,204,22,202,219,199, +139,197,86,195,89,193,181,191,158,190,62,190,156,190,152,191,6,193,195,194,186,196,194,198,154,200,9,202,5,203,178,203, +63,204,222,204,186,205,250,206,192,208,68,211,191,214,71,219,198,224,27,231,49,238,242,245,45,254,162,6,18,15,94,23, +115,31,54,39,127,46,51,53,77,59,211,64,202,69,50,74,14,78,95,81,57,84,191,86,5,89,12,91,211,92,86,94, +134,95,75,96,145,96,77,96,110,95,212,93,100,91,14,88,213,83,197,78,237,72,102,66,106,59,49,52,219,44,118,37, +33,30,0,23,38,16,153,9,105,3,169,253,82,248,80,243,150,238,29,234,228,229,236,225,41,222,129,218,231,214,118,211, +89,208,165,205,84,203,93,201,183,199,84,198,43,197,58,196,121,195,210,194,35,194,69,193,27,192,157,190,213,188,217,186, +197,184,177,182,172,180,203,178,64,177,64,176,209,175,215,175,75,176,82,177,12,179,116,181,114,184,250,187,15,192,180,196, +234,201,173,207,245,213,184,220,241,227,155,235,160,243,221,251,45,4,126,12,204,20,4,29,250,36,126,44,112,51,202,57, +140,63,169,68,2,73,128,76,45,79,53,81,198,82,8,84,25,85,1,86,186,86,77,87,221,87,123,88,3,89,50,89, +201,88,162,87,170,85,222,82,60,79,194,74,134,69,177,63,99,57,170,50,162,43,123,36,97,29,105,22,161,15,32,9, +250,2,52,253,204,247,191,242,10,238,171,233,156,229,199,225,26,222,146,218,52,215,250,211,224,208,255,205,126,203,113,201, +202,199,113,198,99,197,173,196,84,196,61,196,62,196,71,196,95,196,137,196,193,196,10,197,118,197,17,198,204,198,146,199, +102,200,104,201,172,202,40,204,184,205,73,207,232,208,178,210,179,212,222,214,40,217,144,219,33,222,232,224,246,227,86,231, +4,235,244,238,45,243,207,247,251,252,191,2,23,9,234,15,13,23,74,30,123,37,137,44,80,51,161,57,81,63,66,68, +78,72,86,75,111,77,214,78,192,79,64,80,92,80,44,80,213,79,113,79,255,78,104,78,146,77,112,76,242,74,255,72, +126,70,99,67,161,63,38,59,246,53,61,48,49,42,241,35,150,29,69,23,33,17,61,11,164,5,103,0,148,251,42,247, +25,243,79,239,196,235,121,232,112,229,155,226,233,223,88,221,254,218,236,216,18,215,76,213,135,211,206,209,51,208,185,206, +83,205,248,203,177,202,130,201,106,200,107,199,155,198,16,198,202,197,177,197,177,197,198,197,239,197,39,198,97,198,150,198, +214,198,64,199,240,199,233,200,43,202,202,203,242,205,189,208,31,212,248,215,50,220,200,224,175,229,197,234,222,239,217,244, +180,249,126,254,62,3,231,7,100,12,181,16,236,20,33,25,95,29,158,33,201,37,212,41,199,45,164,49,89,53,203,56, +229,59,156,62,229,64,188,66,42,68,44,69,174,69,153,69,231,68,154,67,178,65,59,63,80,60,6,57,102,53,126,49, +106,45,76,41,54,37,53,33,83,29,151,25,4,22,149,18,51,15,196,11,56,8,142,4,193,0,209,252,209,248,217,244, +241,240,24,237,107,233,22,230,46,227,172,224,135,222,195,220,98,219,89,218,145,217,245,216,126,216,47,216,6,216,244,215, +232,215,221,215,214,215,211,215,216,215,242,215,48,216,162,216,85,217,84,218,152,219,14,221,161,222,74,224,7,226,205,227, +149,229,95,231,53,233,22,235,254,236,245,238,12,241,77,243,185,245,81,248,25,251,16,254,41,1,87,4,136,7,169,10, +180,13,172,16,154,19,123,22,70,25,238,27,99,30,151,32,130,34,40,36,141,37,181,38,161,39,78,40,184,40,216,40, +178,40,89,40,240,39,142,39,50,39,205,38,87,38,205,37,39,37,83,36,65,35,222,33,24,32,216,29,20,27,213,23, +56,20,98,16,101,12,84,8,91,4,171,0,89,253,87,250,147,247,1,245,155,242,99,240,90,238,118,236,157,234,196,232, +248,230,68,229,164,227,39,226,240,224,20,224,142,223,90,223,132,223,21,224,0,225,48,226,146,227,9,229,114,230,190,231, +236,232,248,233,211,234,119,235,237,235,74,236,158,236,249,236,110,237,14,238,220,238,217,239,8,241,120,242,61,244,98,246, +220,248,143,251,103,254,87,1,73,4,19,7,143,9,167,11,65,13,67,14,175,14,171,14,82,14,167,13,192,12,219,11, +50,11,216,10,191,10,229,10,87,11,36,12,62,13,122,14,169,15,179,16,145,17,54,18,139,18,124,18,3,18,34,17, +223,15,75,14,134,12,177,10,237,8,75,7,209,5,122,4,62,3,14,2,217,0,146,255,57,254,204,252,69,251,159,249, +230,247,47,246,138,244,242,242,95,241,222,239,146,238,140,237,204,236,96,236,100,236,222,236,183,237,215,238,50,240,185,241, +85,243,250,244,160,246,46,248,137,249,182,250,210,251,243,252,24,254,67,255,124,0,194,1,7,3,64,4,109,5,144,6, +164,7,168,8,165,9,170,10,188,11,228,12,51,14,174,15,66,17,215,18,102,20,235,21,79,23,113,24,62,25,171,25, +165,25,24,25,10,24,148,22,210,20,207,18,150,16,55,14,206,11,110,9,31,7,230,4,203,2,207,0,237,254,33,253, +111,251,214,249,74,248,206,246,125,245,111,244,169,243,35,243,209,242,175,242,184,242,229,242,40,243,106,243,153,243,175,243, +174,243,159,243,130,243,82,243,12,243,189,242,121,242,76,242,56,242,61,242,98,242,178,242,56,243,241,243,201,244,159,245, +107,246,56,247,10,248,217,248,155,249,78,250,253,250,180,251,119,252,64,253,9,254,213,254,178,255,153,0,123,1,80,2, +42,3,23,4,16,5,8,6,1,7,17,8,70,9,149,10,228,11,31,13,66,14,68,15,27,16,188,16,33,17,68,17, +50,17,251,16,175,16,88,16,5,16,190,15,126,15,68,15,28,15,11,15,251,14,213,14,144,14,26,14,71,13,239,11, +21,10,213,7,73,5,132,2,154,255,169,252,204,249,39,247,216,244,238,242,96,241,24,240,8,239,46,238,130,237,238,236, +94,236,205,235,67,235,201,234,93,234,239,233,112,233,230,232,95,232,224,231,101,231,247,230,180,230,181,230,255,230,139,231, +96,232,157,233,92,235,148,237,15,240,151,242,22,245,150,247,8,250,63,252,16,254,104,255,63,0,155,0,157,0,123,0, +97,0,111,0,190,0,96,1,86,2,155,3,49,5,15,7,25,9,46,11,46,13,10,15,193,16,99,18,0,20,151,21, +24,23,128,24,226,25,78,27,203,28,78,30,203,31,48,33,102,34,84,35,246,35,87,36,129,36,105,36,7,36,89,35, +93,34,12,33,111,31,152,29,140,27,63,25,177,22,252,19,61,17,137,14,234,11,110,9,37,7,18,5,36,3,67,1, +96,255,121,253,136,251,130,249,102,247,62,245,14,243,206,240,119,238,19,236,185,233,117,231,70,229,38,227,29,225,70,223, +179,221,95,220,55,219,47,218,62,217,84,216,98,215,108,214,139,213,210,212,54,212,163,211,34,211,227,210,8,211,145,211, +112,212,177,213,117,215,200,217,150,220,187,223,24,227,152,230,44,234,189,237,47,241,114,244,132,247,100,250,15,253,148,255, +16,2,145,4,15,7,146,9,57,12,33,15,84,18,194,21,82,25,238,28,139,32,20,36,90,39,44,42,125,44,85,46, +178,47,140,48,247,48,28,49,18,49,215,48,116,48,2,48,150,47,55,47,222,46,122,46,240,45,26,45,214,43,20,42, +212,39,40,37,42,34,234,30,129,27,20,24,201,20,178,17,201,14,2,12,82,9,161,6,206,3,197,0,136,253,40,250, +179,246,52,243,174,239,40,236,182,232,131,229,170,226,32,224,199,221,147,219,141,217,187,215,23,214,156,212,69,211,15,210, +7,209,73,208,238,207,255,207,117,208,68,209,88,210,156,211,247,212,77,214,138,215,165,216,155,217,108,218,36,219,234,219, +236,220,66,222,244,223,3,226,113,228,64,231,103,234,205,237,76,241,207,244,80,248,204,251,61,255,168,2,25,6,149,9, +27,13,171,16,62,20,201,23,76,27,211,30,79,34,145,37,109,40,227,42,6,45,231,46,132,48,216,49,217,50,129,51, +216,51,232,51,179,51,64,51,157,50,204,49,188,48,100,47,210,45,21,44,41,42,9,40,192,37,99,35,2,33,171,30, +115,28,100,26,117,24,143,22,153,20,130,18,61,16,188,13,239,10,206,7,97,4,186,0,233,252,250,248,4,245,42,241, +145,237,67,234,52,231,86,228,158,225,8,223,145,220,48,218,218,215,141,213,86,211,70,209,103,207,200,205,139,204,195,203, +96,203,69,203,105,203,202,203,98,204,46,205,50,206,108,207,213,208,117,210,86,212,119,214,206,216,91,219,33,222,34,225, +99,228,224,231,129,235,48,239,243,242,227,246,5,251,64,255,127,3,184,7,230,11,240,15,173,19,240,22,168,25,235,27, +221,29,137,31,231,32,253,33,225,34,149,35,23,36,128,36,250,36,151,37,83,38,27,39,206,39,50,40,39,40,194,39, +43,39,102,38,89,37,255,35,117,34,228,32,104,31,16,30,218,28,184,27,151,26,112,25,65,24,255,22,151,21,252,19, +44,18,35,16,221,13,99,11,207,8,58,6,171,3,30,1,139,254,242,251,91,249,219,246,132,244,79,242,26,240,203,237, +113,235,49,233,26,231,38,229,90,227,206,225,145,224,165,223,8,223,181,222,162,222,193,222,248,222,33,223,33,223,255,222, +202,222,123,222,21,222,188,221,152,221,180,221,7,222,155,222,122,223,172,224,59,226,52,228,142,230,56,233,44,236,104,239, +217,242,103,246,8,250,168,253,28,1,66,4,31,7,193,9,30,12,42,14,241,15,130,17,223,18,13,20,41,21,68,22, +88,23,93,24,88,25,83,26,90,27,125,28,183,29,227,30,221,31,152,32,23,33,86,33,86,33,39,33,209,32,74,32, +132,31,137,30,120,29,110,28,123,27,161,26,201,25,212,24,196,23,178,22,172,21,158,20,111,19,26,18,158,16,234,14, +238,12,182,10,77,8,179,5,235,2,11,0,49,253,113,250,202,247,50,245,169,242,59,240,244,237,220,235,246,233,47,232, +93,230,99,228,63,226,250,223,150,221,35,219,214,216,235,214,126,213,150,212,45,212,50,212,137,212,25,213,210,213,171,214, +158,215,158,216,153,217,141,218,149,219,217,220,107,222,89,224,189,226,181,229,55,233,26,237,48,241,88,245,122,249,145,253, +154,1,130,5,37,9,114,12,118,15,52,18,168,20,223,22,249,24,250,26,203,28,81,30,128,31,77,32,187,32,230,32, +238,32,230,32,222,32,238,32,39,33,143,33,35,34,203,34,94,35,185,35,198,35,114,35,175,34,136,33,23,32,99,30, +103,28,58,26,21,24,43,22,129,20,1,19,157,17,84,16,33,15,1,14,248,12,7,12,21,11,5,10,197,8,73,7, +126,5,92,3,237,0,55,254,65,251,35,248,7,245,10,242,54,239,151,236,58,234,33,232,68,230,156,228,33,227,193,225, +109,224,36,223,252,221,12,221,92,220,218,219,111,219,24,219,232,218,235,218,18,219,77,219,174,219,98,220,129,221,255,222, +212,224,5,227,148,229,120,232,159,235,239,238,71,242,149,245,218,248,12,252,2,255,134,1,137,3,47,5,166,6,246,7, +9,9,212,9,110,10,251,10,152,11,85,12,45,13,13,14,252,14,21,16,93,17,182,18,12,20,100,21,195,22,18,24, +51,25,24,26,194,26,53,27,110,27,82,27,185,26,153,25,21,24,98,22,168,20,2,19,132,17,66,16,70,15,163,14, +106,14,136,14,192,14,222,14,212,14,172,14,105,14,21,14,191,13,109,13,17,13,160,12,20,12,110,11,184,10,253,9, +30,9,224,7,36,6,10,4,191,1,81,255,181,252,239,249,18,247,48,244,95,241,177,238,44,236,211,233,174,231,199,229, +28,228,149,226,52,225,22,224,90,223,253,222,239,222,45,223,187,223,140,224,134,225,146,226,152,227,132,228,80,229,5,230, +170,230,75,231,5,232,5,233,106,234,59,236,113,238,4,241,235,243,21,247,99,250,176,253,206,0,138,3,202,5,145,7, +234,8,220,9,126,10,247,10,111,11,249,11,155,12,84,13,31,14,0,15,248,15,235,16,164,17,253,17,4,18,215,17, +113,17,170,16,119,15,0,14,128,12,19,11,196,9,168,8,223,7,124,7,131,7,242,7,188,8,193,9,218,10,237,11, +232,12,194,13,123,14,21,15,144,15,255,15,120,16,2,17,136,17,237,17,36,18,39,18,236,17,94,17,106,16,19,15, +122,13,200,11,18,10,96,8,194,6,80,5,16,4,230,2,180,1,122,0,71,255,13,254,167,252,0,251,23,249,244,246, +169,244,83,242,12,240,225,237,232,235,63,234,251,232,28,232,156,231,122,231,166,231,10,232,143,232,50,233,251,233,250,234, +56,236,186,237,132,239,142,241,198,243,21,246,91,248,117,250,73,252,206,253,6,255,234,255,116,0,173,0,166,0,112,0, +38,0,222,255,161,255,99,255,34,255,240,254,222,254,229,254,237,254,242,254,11,255,70,255,155,255,1,0,125,0,13,1, +163,1,47,2,172,2,38,3,182,3,113,4,81,5,78,6,112,7,183,8,8,10,78,11,158,12,16,14,150,15,3,17, +63,18,85,19,76,20,24,21,163,21,227,21,229,21,184,21,95,21,210,20,26,20,77,19,119,18,135,17,105,16,34,15, +191,13,58,12,116,10,91,8,250,5,115,3,220,0,56,254,126,251,175,248,225,245,40,243,123,240,192,237,240,234,33,232, +118,229,15,227,251,224,62,223,220,221,223,220,79,220,56,220,179,220,214,221,152,223,218,225,125,228,94,231,84,234,61,237, +15,240,196,242,83,245,174,247,197,249,144,251,30,253,147,254,12,0,140,1,14,3,149,4,37,6,185,7,58,9,131,10, +112,11,240,11,5,12,181,11,11,11,42,10,56,9,78,8,115,7,181,6,48,6,254,5,43,6,165,6,73,7,238,7, +127,8,12,9,174,9,95,10,255,10,120,11,206,11,29,12,128,12,254,12,136,13,14,14,155,14,70,15,25,16,19,17, +44,18,76,19,84,20,52,21,235,21,118,22,195,22,198,22,117,22,201,21,183,20,53,19,64,17,237,14,96,12,167,9, +184,6,148,3,101,0,92,253,149,250,22,248,226,245,247,243,80,242,220,240,130,239,43,238,197,236,66,235,164,233,3,232, +132,230,68,229,87,228,196,227,132,227,140,227,220,227,131,228,137,229,219,230,83,232,221,233,128,235,73,237,53,239,48,241, +44,243,30,245,251,246,182,248,67,250,154,251,195,252,205,253,195,254,167,255,130,0,98,1,89,2,115,3,188,4,43,6, +168,7,25,9,113,10,162,11,148,12,46,13,87,13,252,12,36,12,230,10,89,9,141,7,162,5,213,3,107,2,146,1, +74,1,131,1,54,2,96,3,226,4,132,6,32,8,172,9,34,11,112,12,136,13,104,14,20,15,157,15,40,16,203,16, +125,17,45,18,220,18,151,19,94,20,16,21,122,21,116,21,243,20,7,20,186,18,6,17,225,14,87,12,139,9,168,6, +205,3,16,1,120,254,253,251,148,249,51,247,205,244,100,242,20,240,0,238,48,236,159,234,78,233,70,232,128,231,242,230, +146,230,60,230,203,229,52,229,148,228,1,228,126,227,10,227,165,226,85,226,55,226,117,226,43,227,90,228,247,229,240,231, +45,234,147,236,19,239,169,241,63,244,175,246,225,248,218,250,183,252,143,254,99,0,43,2,231,3,169,5,134,7,135,9, +156,11,169,13,144,15,62,17,157,18,153,19,34,20,57,20,241,19,93,19,136,18,125,17,90,16,73,15,109,14,222,13, +179,13,241,13,138,14,103,15,129,16,213,17,90,19,253,20,156,22,32,24,143,25,255,26,110,28,189,29,218,30,202,31, +141,32,3,33,0,33,108,32,73,31,173,29,170,27,67,25,130,22,121,19,56,16,205,12,83,9,240,5,184,2,147,255, +87,252,245,248,133,245,47,242,14,239,40,236,114,233,215,230,80,228,244,225,232,223,63,222,254,220,34,220,162,219,107,219, +117,219,198,219,94,220,39,221,13,222,5,223,7,224,15,225,41,226,107,227,225,228,127,230,58,232,16,234,10,236,42,238, +94,240,151,242,202,244,229,246,206,248,117,250,227,251,41,253,77,254,64,255,244,255,124,0,5,1,181,1,153,2,160,3, +177,4,175,5,146,6,100,7,46,8,228,8,117,9,229,9,76,10,196,10,99,11,45,12,16,13,240,13,197,14,166,15, +172,16,217,17,7,19,15,20,230,20,157,21,66,22,211,22,75,23,171,23,7,24,125,24,26,25,200,25,100,26,211,26, +0,27,210,26,52,26,35,25,169,23,213,21,184,19,101,17,242,14,115,12,250,9,151,7,86,5,51,3,10,1,176,254, +17,252,60,249,67,246,45,243,8,240,233,236,232,233,22,231,137,228,93,226,163,224,78,223,78,222,164,221,92,221,111,221, +192,221,57,222,217,222,161,223,150,224,199,225,69,227,16,229,16,231,42,233,78,235,126,237,192,239,12,242,72,244,95,246, +81,248,36,250,214,251,87,253,159,254,195,255,223,0,6,2,60,3,130,4,216,5,48,7,115,8,139,9,98,10,244,10, +88,11,173,11,253,11,64,12,121,12,186,12,9,13,103,13,230,13,157,14,151,15,206,16,55,18,202,19,129,21,72,23, +10,25,180,26,65,28,165,29,205,30,171,31,67,32,157,32,180,32,130,32,15,32,112,31,171,30,169,29,76,28,143,26, +141,24,113,22,93,20,88,18,84,16,64,14,19,12,194,9,66,7,147,4,198,1,239,254,21,252,46,249,48,246,35,243, +45,240,107,237,222,234,125,232,70,230,54,228,62,226,89,224,135,222,189,220,242,218,56,217,185,215,142,214,185,213,47,213, +229,212,233,212,95,213,88,214,189,215,117,217,145,219,26,222,234,224,201,227,160,230,125,233,103,236,82,239,51,242,14,245, +230,247,171,250,71,253,179,255,249,1,26,4,11,6,195,7,66,9,143,10,173,11,163,12,115,13,32,14,178,14,49,15, +162,15,8,16,103,16,183,16,236,16,251,16,239,16,227,16,240,16,29,17,101,17,203,17,95,18,43,19,37,20,52,21, +74,22,113,23,173,24,223,25,223,26,162,27,60,28,173,28,227,28,228,28,205,28,172,28,107,28,241,27,56,27,55,26, +220,24,12,23,186,20,255,17,5,15,226,11,142,8,6,5,101,1,208,253,97,250,37,247,35,244,86,241,183,238,65,236, +241,233,191,231,161,229,148,227,162,225,225,223,110,222,89,221,156,220,32,220,213,219,182,219,193,219,238,219,33,220,63,220, +76,220,106,220,190,220,71,221,242,221,190,222,203,223,74,225,78,227,194,229,122,232,85,235,68,238,59,241,50,244,48,247, +68,250,108,253,144,0,156,3,128,6,52,9,189,11,45,14,134,16,173,18,141,20,36,22,103,23,67,24,192,24,250,24, +11,25,1,25,234,24,219,24,235,24,50,25,186,25,113,26,62,27,20,28,233,28,166,29,54,30,140,30,165,30,134,30, +70,30,3,30,208,29,189,29,209,29,10,30,90,30,182,30,17,31,84,31,98,31,39,31,151,30,174,29,103,28,172,26, +105,24,164,21,127,18,29,15,148,11,237,7,51,4,101,0,124,252,119,248,95,244,63,240,37,236,34,232,75,228,174,224, +76,221,36,218,62,215,180,212,167,210,36,209,29,208,122,207,52,207,74,207,173,207,66,208,0,209,240,209,21,211,114,212, +14,214,234,215,254,217,64,220,169,222,32,225,148,227,3,230,115,232,213,234,27,237,75,239,108,241,117,243,101,245,82,247, +88,249,123,251,177,253,235,255,21,2,36,4,34,6,31,8,34,10,48,12,66,14,74,16,56,18,7,20,188,21,98,23, +7,25,182,26,103,28,1,30,114,31,180,32,189,33,124,34,236,34,24,35,9,35,193,34,63,34,142,33,195,32,242,31, +41,31,104,30,169,29,230,28,34,28,98,27,164,26,220,25,1,25,28,24,62,23,105,22,138,21,145,20,119,19,52,18, +186,16,252,14,226,12,87,10,98,7,37,4,188,0,51,253,154,249,8,246,135,242,23,239,189,235,133,232,117,229,149,226, +238,223,122,221,43,219,1,217,15,215,103,213,23,212,33,211,128,210,45,210,42,210,127,210,46,211,52,212,149,213,91,215, +135,217,4,220,175,222,110,225,70,228,72,231,114,234,164,237,186,240,169,243,117,246,40,249,199,251,75,254,168,0,216,2, +225,4,217,6,212,8,219,10,237,12,5,15,22,17,255,18,156,20,220,21,199,22,114,23,247,23,88,24,131,24,110,24, +67,24,72,24,168,24,89,25,50,26,24,27,10,28,11,29,11,30,246,30,208,31,175,32,139,33,54,34,142,34,161,34, +145,34,113,34,56,34,203,33,27,33,45,32,8,31,161,29,231,27,228,25,170,23,47,21,92,18,51,15,218,11,115,8, +6,5,152,1,58,254,250,250,211,247,182,244,162,241,169,238,209,235,5,233,43,230,84,227,180,224,104,222,102,220,158,218, +35,217,17,216,98,215,239,214,153,214,92,214,66,214,76,214,98,214,97,214,64,214,29,214,26,214,65,214,144,214,36,215, +46,216,206,217,255,219,173,222,196,225,51,229,242,232,249,236,47,241,102,245,112,249,43,253,138,0,168,3,170,6,145,9, +55,12,137,14,152,16,112,18,9,20,101,21,154,22,181,23,170,24,108,25,244,25,66,26,98,26,109,26,116,26,124,26, +138,26,167,26,217,26,30,27,116,27,203,27,10,28,35,28,20,28,224,27,147,27,69,27,7,27,217,26,186,26,175,26, +175,26,165,26,134,26,81,26,250,25,96,25,107,24,18,23,83,21,48,19,176,16,228,13,229,10,193,7,115,4,243,0, +89,253,214,249,145,246,137,243,169,240,219,237,17,235,73,232,131,229,198,226,39,224,198,221,182,219,236,217,94,216,26,215, +67,214,245,213,56,214,0,215,43,216,139,217,4,219,149,220,63,222,243,223,144,225,0,227,71,228,120,229,170,230,237,231, +72,233,189,234,95,236,75,238,148,240,56,243,33,246,57,249,116,252,201,255,33,3,82,6,66,9,254,11,157,14,27,17, +104,19,127,21,108,23,43,25,153,26,143,27,12,28,47,28,18,28,188,27,48,27,132,26,211,25,45,25,163,24,91,24, +109,24,199,24,62,25,179,25,31,26,133,26,230,26,62,27,126,27,158,27,151,27,94,27,239,26,103,26,0,26,217,25, +220,25,219,25,186,25,118,25,24,25,144,24,170,23,54,22,44,20,159,17,149,14,27,11,98,7,164,3,241,255,71,252, +180,248,83,245,51,242,86,239,187,236,82,234,6,232,206,229,162,227,114,225,52,223,251,220,231,218,18,217,146,215,114,214, +176,213,69,213,50,213,121,213,9,214,204,214,175,215,167,216,174,217,196,218,246,219,91,221,8,223,15,225,105,227,253,229, +169,232,92,235,19,238,200,240,98,243,196,245,211,247,137,249,251,250,94,252,230,253,161,255,118,1,84,3,72,5,105,7, +183,9,30,12,130,14,196,16,196,18,107,20,178,21,171,22,119,23,50,24,224,24,125,25,3,26,122,26,234,26,89,27, +189,27,0,28,17,28,241,27,169,27,64,27,194,26,70,26,227,25,163,25,132,25,124,25,122,25,116,25,93,25,39,25, +211,24,119,24,32,24,191,23,49,23,96,22,63,21,197,19,245,17,226,15,137,13,203,10,145,7,254,3,71,0,138,252, +197,248,248,244,48,241,128,237,5,234,222,230,22,228,156,225,92,223,86,221,146,219,21,218,222,216,237,215,55,215,172,214, +59,214,214,213,121,213,57,213,66,213,173,213,117,214,144,215,250,216,175,218,168,220,236,222,148,225,174,228,50,232,4,236, +11,240,56,244,118,248,164,252,165,0,116,4,23,8,132,11,158,14,88,17,182,19,192,21,125,23,248,24,51,26,36,27, +195,27,18,28,22,28,219,27,125,27,24,27,186,26,103,26,32,26,211,25,112,25,254,24,157,24,90,24,50,24,41,24, +75,24,165,24,69,25,60,26,121,27,204,28,7,30,22,31,235,31,107,32,126,32,21,32,47,31,207,29,252,27,198,25, +74,23,162,20,221,17,253,14,14,12,35,9,62,6,89,3,124,0,189,253,30,251,135,248,228,245,57,243,160,240,49,238, +245,235,232,233,12,232,107,230,253,228,160,227,62,226,216,224,117,223,21,222,181,220,91,219,13,218,212,216,201,215,10,215, +164,214,144,214,202,214,81,215,29,216,32,217,91,218,220,219,171,221,198,223,42,226,217,228,197,231,206,234,224,237,2,241, +67,244,152,247,213,250,216,253,166,0,85,3,231,5,80,8,129,10,108,12,3,14,69,15,77,16,64,17,53,18,44,19, +17,20,206,20,85,21,169,21,199,21,177,21,127,21,86,21,55,21,249,20,141,20,16,20,153,19,37,19,170,18,45,18, +175,17,48,17,196,16,132,16,114,16,137,16,198,16,36,17,144,17,253,17,105,18,206,18,26,19,57,19,38,19,231,18, +127,18,225,17,246,16,179,15,30,14,71,12,52,10,224,7,72,5,114,2,117,255,107,252,94,249,82,246,75,243,73,240, +74,237,91,234,166,231,85,229,120,227,13,226,6,225,84,224,238,223,219,223,34,224,166,224,64,225,219,225,122,226,32,227, +208,227,149,228,114,229,93,230,86,231,111,232,187,233,58,235,226,236,176,238,176,240,232,242,81,245,219,247,116,250,13,253, +159,255,33,2,138,4,217,6,29,9,97,11,169,13,244,15,73,18,172,20,16,23,83,25,89,27,17,29,103,30,77,31, +197,31,223,31,153,31,226,30,171,29,12,28,52,26,78,24,107,22,136,20,166,18,206,16,20,15,143,13,71,12,61,11, +113,10,232,9,149,9,100,9,74,9,92,9,177,9,83,10,66,11,111,12,186,13,253,14,33,16,27,17,211,17,47,18, +31,18,150,17,125,16,205,14,157,12,24,10,89,7,109,4,93,1,56,254,9,251,211,247,149,244,84,241,21,238,217,234, +170,231,160,228,215,225,93,223,57,221,110,219,248,217,214,216,26,216,215,215,10,216,149,216,100,217,119,218,202,219,67,221, +202,222,91,224,3,226,213,227,219,229,13,232,86,234,173,236,23,239,159,241,65,244,233,246,134,249,17,252,139,254,236,0, +32,3,19,5,201,6,91,8,224,9,80,11,145,12,144,13,87,14,244,14,111,15,212,15,51,16,151,16,248,16,69,17, +116,17,138,17,147,17,154,17,162,17,161,17,137,17,85,17,3,17,148,16,19,16,142,15,11,15,131,14,243,13,92,13, +190,12,37,12,164,11,72,11,10,11,223,10,194,10,186,10,211,10,33,11,171,11,87,12,248,12,106,13,169,13,180,13, +123,13,229,12,229,11,125,10,187,8,176,6,114,4,19,2,157,255,23,253,128,250,219,247,52,245,163,242,58,240,2,238, +249,235,28,234,97,232,194,230,58,229,196,227,96,226,25,225,4,224,41,223,133,222,30,222,6,222,85,222,33,223,116,224, +61,226,88,228,171,230,57,233,15,236,51,239,161,242,69,246,247,249,147,253,7,1,83,4,115,7,99,10,39,13,194,15, +42,18,84,20,73,22,35,24,237,25,141,27,220,28,205,29,104,30,174,30,137,30,230,29,210,28,105,27,189,25,209,23, +174,21,110,19,56,17,42,15,87,13,204,11,134,10,119,9,151,8,235,7,122,7,50,7,245,6,178,6,104,6,26,6, +207,5,142,5,88,5,48,5,38,5,73,5,154,5,6,6,122,6,228,6,52,7,96,7,94,7,41,7,193,6,35,6, +73,5,48,4,225,2,102,1,189,255,216,253,181,251,95,249,229,246,101,244,2,242,216,239,240,237,65,236,186,234,86,233, +33,232,38,231,85,230,142,229,192,228,228,227,238,226,232,225,253,224,81,224,225,223,163,223,168,223,14,224,231,224,61,226, +25,228,126,230,103,233,199,236,134,240,125,244,146,248,181,252,196,0,137,4,222,7,190,10,57,13,92,15,44,17,177,18, +249,19,26,21,41,22,39,23,254,23,137,24,177,24,112,24,206,23,204,22,104,21,165,19,152,17,91,15,8,13,180,10, +107,8,42,6,243,3,218,1,252,255,109,254,47,253,59,252,138,251,25,251,231,250,232,250,23,251,130,251,59,252,51,253, +63,254,81,255,118,0,182,1,4,3,91,4,182,5,255,6,26,8,11,9,233,9,187,10,117,11,17,12,133,12,192,12, +176,12,80,12,158,11,148,10,62,9,179,7,254,5,22,4,253,1,197,255,133,253,84,251,73,249,102,247,160,245,241,243, +101,242,252,240,170,239,98,238,36,237,251,235,239,234,8,234,73,233,181,232,79,232,31,232,59,232,192,232,181,233,16,235, +200,236,242,238,151,241,159,244,221,247,48,251,127,254,172,1,167,4,108,7,240,9,39,12,29,14,232,15,131,17,228,18, +25,20,73,21,123,22,135,23,70,24,176,24,218,24,215,24,157,24,20,24,42,23,221,21,45,20,30,18,195,15,58,13, +152,10,234,7,74,5,209,2,146,0,157,254,3,253,201,251,236,250,102,250,43,250,44,250,87,250,161,250,8,251,143,251, +63,252,31,253,43,254,80,255,128,0,178,1,228,2,19,4,63,5,99,6,120,7,119,8,82,9,250,9,98,10,130,10, +81,10,192,9,190,8,71,7,109,5,73,3,225,0,57,254,95,251,96,248,63,245,13,242,246,238,32,236,137,233,39,231, +9,229,68,227,216,225,195,224,12,224,187,223,203,223,54,224,243,224,247,225,72,227,254,228,41,231,177,233,109,236,73,239, +63,242,70,245,71,248,49,251,251,253,165,0,50,3,161,5,240,7,36,10,65,12,69,14,48,16,252,17,144,19,205,20, +167,21,24,22,26,22,180,21,2,21,26,20,252,18,173,17,66,16,200,14,64,13,167,11,12,10,115,8,205,6,7,5, +37,3,63,1,111,255,193,253,48,252,181,250,84,249,36,248,58,247,154,246,63,246,39,246,88,246,213,246,161,247,196,248, +64,250,255,251,223,253,207,255,209,1,223,3,226,5,200,7,148,9,62,11,178,12,216,13,167,14,34,15,86,15,80,15, +13,15,120,14,133,13,64,12,187,10,252,8,3,7,217,4,146,2,65,0,236,253,152,251,75,249,9,247,213,244,177,242, +162,240,172,238,212,236,35,235,162,233,98,232,124,231,8,231,8,231,116,231,80,232,170,233,131,235,201,237,99,240,54,243, +42,246,40,249,37,252,20,255,229,1,156,4,78,7,7,10,188,12,90,15,217,17,53,20,91,22,54,24,190,25,237,26, +177,27,243,27,167,27,218,26,161,25,26,24,94,22,122,20,114,18,83,16,41,14,248,11,193,9,144,7,107,5,78,3, +60,1,77,255,151,253,35,252,248,250,27,250,123,249,253,248,161,248,129,248,164,248,241,248,82,249,198,249,83,250,248,250, +171,251,92,252,3,253,169,253,94,254,38,255,248,255,210,0,186,1,176,2,172,3,167,4,152,5,114,6,32,7,136,7, +142,7,47,7,122,6,126,5,53,4,145,2,147,0,77,254,209,251,46,249,120,246,194,243,23,241,122,238,247,235,168,233, +167,231,249,229,152,228,130,227,191,226,94,226,112,226,246,226,228,227,54,229,244,230,27,233,147,235,61,238,13,241,250,243, +247,246,245,249,237,252,217,255,189,2,158,5,122,8,71,11,250,13,139,16,227,18,227,20,116,22,151,23,89,24,186,24, +178,24,58,24,91,23,47,22,196,20,27,19,49,17,10,15,170,12,27,10,105,7,155,4,184,1,204,254,239,251,56,249, +183,246,126,244,163,242,63,241,103,240,36,240,96,240,251,240,218,241,234,242,28,244,96,245,174,246,252,247,69,249,148,250, +253,251,140,253,57,255,3,1,242,2,3,5,29,7,23,9,216,10,88,12,146,13,121,14,11,15,93,15,133,15,121,15, +38,15,146,14,214,13,2,13,17,12,244,10,155,9,254,7,31,6,6,4,183,1,57,255,163,252,20,250,168,247,116,245, +132,243,223,241,129,240,100,239,135,238,236,237,147,237,113,237,135,237,237,237,187,238,242,239,131,241,112,243,190,245,97,248, +64,251,67,254,77,1,59,4,253,6,129,9,173,11,103,13,180,14,172,15,99,16,238,16,104,17,213,17,44,18,117,18, +200,18,42,19,126,19,163,19,125,19,234,18,205,17,45,16,33,14,188,11,6,9,19,6,6,3,13,0,76,253,211,250, +156,248,161,246,235,244,140,243,143,242,242,241,169,241,182,241,48,242,25,243,82,244,182,245,65,247,248,248,199,250,140,252, +63,254,231,255,127,1,5,3,125,4,234,5,60,7,100,8,103,9,82,10,39,11,219,11,100,12,194,12,230,12,189,12, +63,12,117,11,98,10,242,8,24,7,225,4,100,2,171,255,185,252,164,249,147,246,172,243,8,241,174,238,156,236,211,234, +87,233,42,232,68,231,163,230,85,230,99,230,201,230,124,231,119,232,181,233,48,235,226,236,198,238,210,240,250,242,48,245, +108,247,167,249,225,251,29,254,91,0,141,2,167,4,175,6,173,8,156,10,105,12,14,14,145,15,243,16,34,18,1,19, +121,19,135,19,49,19,119,18,85,17,207,15,246,13,216,11,130,9,254,6,80,4,119,1,119,254,96,251,74,248,88,245, +188,242,148,240,234,238,199,237,61,237,64,237,177,237,119,238,145,239,252,240,168,242,136,244,152,246,210,248,55,251,210,253, +161,0,142,3,140,6,150,9,152,12,110,15,3,18,87,20,100,22,29,24,112,25,77,26,160,26,89,26,117,25,7,24, +41,22,242,19,122,17,218,14,48,12,149,9,23,7,186,4,111,2,40,0,231,253,190,251,179,249,182,247,192,245,219,243, +17,242,105,240,243,238,197,237,219,236,48,236,214,235,235,235,121,236,109,237,177,238,56,240,1,242,8,244,51,246,90,248, +95,250,68,252,25,254,234,255,184,1,124,3,36,5,169,6,25,8,131,9,230,10,46,12,69,13,27,14,177,14,27,15, +105,15,153,15,154,15,87,15,198,14,234,13,197,12,93,11,182,9,219,7,216,5,175,3,112,1,56,255,31,253,40,251, +76,249,143,247,0,246,178,244,188,243,44,243,252,242,26,243,113,243,253,243,195,244,201,245,13,247,127,248,18,250,193,251, +146,253,144,255,190,1,11,4,91,6,150,8,182,10,178,12,127,14,24,16,128,17,169,18,121,19,219,19,199,19,60,19, +55,18,184,16,191,14,84,12,145,9,149,6,121,3,78,0,35,253,0,250,227,246,208,243,216,240,18,238,141,235,83,233, +104,231,207,229,134,228,149,227,6,227,216,226,6,227,148,227,143,228,254,229,223,231,33,234,188,236,166,239,209,242,33,246, +130,249,228,252,44,0,58,3,1,6,140,8,230,10,6,13,230,14,129,16,212,17,216,18,140,19,238,19,245,19,157,19, +238,18,244,17,169,16,4,15,12,13,216,10,125,8,14,6,158,3,55,1,222,254,152,252,107,250,86,248,88,246,128,244, +235,242,177,241,214,240,92,240,73,240,159,240,75,241,57,242,102,243,231,244,202,246,5,249,120,251,3,254,137,0,254,2, +106,5,214,7,58,10,132,12,180,14,216,16,240,18,229,20,161,22,13,24,11,25,131,25,122,25,1,25,37,24,243,22, +124,21,198,19,210,17,173,15,108,13,16,11,137,8,218,5,25,3,91,0,181,253,63,251,251,248,212,246,180,244,158,242, +156,240,179,238,220,236,28,235,141,233,84,232,138,231,47,231,64,231,193,231,176,232,5,234,187,235,214,237,67,240,229,242, +166,245,117,248,59,251,230,253,115,0,219,2,1,5,215,6,102,8,191,9,223,10,193,11,111,12,243,12,81,13,129,13, +120,13,49,13,167,12,217,11,199,10,123,9,9,8,126,6,217,4,13,3,30,1,27,255,15,253,4,251,14,249,81,247, +229,245,191,244,209,243,47,243,250,242,56,243,211,243,191,244,242,245,86,247,219,248,137,250,95,252,74,254,70,0,114,2, +221,4,112,7,4,10,132,12,225,14,1,17,212,18,98,20,182,21,208,22,170,23,61,24,124,24,84,24,181,23,151,22, +248,20,212,18,40,16,253,12,101,9,115,5,64,1,240,252,175,248,157,244,219,240,136,237,185,234,108,232,153,230,68,229, +114,228,20,228,7,228,47,228,124,228,232,228,115,229,32,230,253,230,21,232,122,233,53,235,60,237,123,239,225,241,101,244, +250,246,150,249,55,252,227,254,145,1,39,4,146,6,203,8,200,10,123,12,224,13,255,14,223,15,136,16,254,16,59,17, +52,17,232,16,91,16,123,15,42,14,102,12,73,10,240,7,101,5,185,2,12,0,125,253,26,251,241,248,19,247,137,245, +74,244,80,243,153,242,43,242,8,242,50,242,169,242,114,243,146,244,25,246,11,248,92,250,239,252,179,255,166,2,199,5, +6,9,67,12,89,15,48,18,193,20,7,23,236,24,74,26,21,27,107,27,112,27,48,27,163,26,200,25,167,24,61,23, +129,21,116,19,38,17,169,14,12,12,84,9,126,6,140,3,154,0,195,253,12,251,101,248,214,245,121,243,87,241,95,239, +133,237,214,235,99,234,52,233,71,232,169,231,105,231,150,231,42,232,12,233,36,234,123,235,44,237,58,239,131,241,225,243, +70,246,167,248,236,250,247,252,183,254,51,0,115,1,127,2,90,3,19,4,194,4,119,5,40,6,187,6,40,7,130,7, +217,7,38,8,79,8,72,8,25,8,201,7,77,7,148,6,160,5,128,4,63,3,224,1,101,0,218,254,82,253,225,251, +153,250,131,249,163,248,4,248,188,247,209,247,45,248,196,248,181,249,40,251,25,253,84,255,177,1,43,4,199,6,127,9, +65,12,245,14,134,17,226,19,247,21,176,23,15,25,36,26,241,26,90,27,70,27,186,26,191,25,81,24,114,22,48,20, +152,17,183,14,162,11,104,8,255,4,92,1,143,253,170,249,170,245,149,241,147,237,219,233,141,230,180,227,87,225,123,223, +36,222,97,221,63,221,186,221,184,222,35,224,236,225,254,227,68,230,178,232,66,235,231,237,146,240,59,243,217,245,90,248, +165,250,180,252,157,254,120,0,79,2,24,4,186,5,37,7,93,8,114,9,93,10,17,11,148,11,250,11,74,12,118,12, +117,12,66,12,208,11,12,11,253,9,180,8,59,7,144,5,180,3,178,1,150,255,112,253,77,251,61,249,76,247,141,245, +26,244,15,243,122,242,89,242,159,242,76,243,100,244,210,245,120,247,79,249,90,251,145,253,236,255,107,2,20,5,229,7, +223,10,0,14,44,17,53,20,6,23,154,25,222,27,184,29,30,31,17,32,127,32,90,32,165,31,106,30,177,28,139,26, +7,24,45,21,2,18,156,14,18,11,114,7,195,3,26,0,136,252,23,249,211,245,205,242,15,240,148,237,86,235,94,233, +189,231,118,230,120,229,173,228,16,228,180,227,176,227,9,228,193,228,223,229,111,231,120,233,243,235,197,238,198,241,215,244, +228,247,211,250,130,253,219,255,222,1,148,3,9,5,72,6,88,7,49,8,203,8,65,9,189,9,72,10,200,10,45,11, +134,11,218,11,18,12,9,12,183,11,33,11,69,10,30,9,176,7,0,6,18,4,250,1,219,255,220,253,16,252,130,250, +68,249,102,248,241,247,230,247,65,248,241,248,232,249,42,251,193,252,162,254,178,0,220,2,21,5,89,7,164,9,243,11, +48,14,66,16,35,18,213,19,76,21,113,22,60,23,183,23,232,23,208,23,111,23,186,22,156,21,13,20,29,18,223,15, +96,13,167,10,183,7,146,4,63,1,205,253,71,250,187,246,58,243,218,239,176,236,201,233,30,231,153,228,51,226,9,224, +62,222,215,220,207,219,42,219,237,218,30,219,212,219,39,221,14,223,96,225,15,228,38,231,153,234,62,238,237,241,144,245, +18,249,111,252,183,255,252,2,55,6,87,9,95,12,80,15,29,18,171,20,228,22,184,24,14,26,208,26,240,26,119,26, +110,25,213,23,173,21,6,19,254,15,186,12,95,9,14,6,221,2,216,255,7,253,111,250,25,248,19,246,108,244,46,243, +83,242,212,241,171,241,213,241,81,242,35,243,66,244,151,245,10,247,152,248,72,250,27,252,3,254,246,255,241,1,245,3, +250,5,241,7,223,9,206,11,186,13,129,15,7,17,71,18,69,19,247,19,76,20,65,20,208,19,236,18,136,17,171,15, +106,13,222,10,40,8,110,5,212,2,110,0,70,254,97,252,182,250,56,249,220,247,152,246,91,245,12,244,160,242,26,241, +134,239,248,237,120,236,14,235,199,233,194,232,40,232,33,232,196,232,10,234,210,235,253,237,135,240,122,243,204,246,89,250, +249,253,132,1,223,4,254,7,217,10,94,13,124,15,48,17,135,18,139,19,64,20,170,20,213,20,205,20,156,20,66,20, +178,19,227,18,213,17,137,16,1,15,61,13,66,11,21,9,190,6,75,4,202,1,68,255,190,252,66,250,221,247,161,245, +162,243,249,241,185,240,245,239,175,239,231,239,157,240,215,241,139,243,156,245,242,247,133,250,60,253,238,255,133,2,20,5, +174,7,67,10,179,12,230,14,209,16,114,18,202,19,216,20,157,21,27,22,73,22,20,22,109,21,88,20,232,18,35,17, +1,15,122,12,144,9,84,6,215,2,46,255,115,251,200,247,69,244,247,240,246,237,97,235,66,233,147,231,78,230,104,229, +201,228,92,228,37,228,53,228,141,228,49,229,46,230,139,231,65,233,70,235,147,237,28,240,209,242,161,245,121,248,58,251, +206,253,49,0,107,2,135,4,140,6,118,8,63,10,245,11,166,13,81,15,228,16,84,18,141,19,103,20,192,20,145,20, +232,19,214,18,110,17,184,15,169,13,68,11,167,8,242,5,39,3,61,0,59,253,56,250,70,247,119,244,220,241,133,239, +126,237,209,235,141,234,194,233,113,233,142,233,13,234,247,234,98,236,85,238,188,240,115,243,98,246,114,249,146,252,179,255, +199,2,192,5,146,8,55,11,163,13,200,15,168,17,77,19,169,20,154,21,11,22,1,22,134,21,146,20,31,19,52,17, +232,14,80,12,134,9,171,6,232,3,90,1,16,255,5,253,51,251,150,249,39,248,225,246,192,245,193,244,216,243,235,242, +225,241,185,240,136,239,109,238,122,237,194,236,99,236,132,236,51,237,103,238,13,240,26,242,135,244,70,247,72,250,121,253, +191,0,4,4,63,7,105,10,116,13,76,16,218,18,3,21,174,22,218,23,159,24,11,25,33,25,227,24,96,24,164,23, +183,22,154,21,73,20,186,18,226,16,190,14,83,12,164,9,187,6,172,3,145,0,130,253,145,250,210,247,89,245,61,243, +146,241,96,240,174,239,115,239,159,239,27,240,214,240,196,241,224,242,35,244,135,245,2,247,157,248,107,250,119,252,183,254, +21,1,116,3,187,5,218,7,201,9,136,11,19,13,102,14,102,15,239,15,244,15,146,15,246,14,52,14,70,13,39,12, +217,10,89,9,161,7,169,5,98,3,203,0,244,253,238,250,193,247,127,244,82,241,96,238,184,235,104,233,138,231,56,230, +122,229,77,229,160,229,84,230,75,231,123,232,220,233,96,235,4,237,215,238,229,240,46,243,178,245,127,248,151,251,227,254, +62,2,148,5,224,8,31,12,59,15,22,18,153,20,194,22,147,24,0,26,231,26,49,27,245,26,92,26,118,25,62,24, +188,22,8,21,40,19,8,17,153,14,230,11,15,9,48,6,88,3,129,0,176,253,247,250,96,248,231,245,124,243,24,241, +185,238,98,236,32,234,11,232,56,230,196,228,204,227,101,227,150,227,104,228,230,229,14,232,194,234,218,237,48,241,165,244, +39,248,160,251,232,254,205,1,57,4,55,6,215,7,36,9,38,10,225,10,91,11,157,11,185,11,187,11,167,11,118,11, +28,11,146,10,219,9,252,8,244,7,187,6,90,5,231,3,110,2,237,0,108,255,251,253,172,252,135,251,136,250,155,249, +177,248,207,247,15,247,132,246,44,246,5,246,34,246,164,246,149,247,219,248,91,250,24,252,38,254,126,0,251,2,131,5, +13,8,158,10,44,13,160,15,222,17,216,19,134,21,219,22,207,23,103,24,171,24,152,24,39,24,87,23,43,22,156,20, +168,18,102,16,253,13,137,11,12,9,132,6,252,3,123,1,3,255,147,252,31,250,154,247,16,245,178,242,169,240,8,239, +207,237,0,237,155,236,148,236,218,236,107,237,72,238,107,239,193,240,40,242,134,243,223,244,85,246,4,248,229,249,223,251, +241,253,41,0,140,2,14,5,153,7,7,10,48,12,6,14,128,15,128,16,233,16,193,16,43,16,62,15,250,13,101,12, +159,10,203,8,248,6,25,5,21,3,230,0,150,254,56,252,220,249,140,247,70,245,10,243,230,240,247,238,89,237,31,236, +82,235,244,234,0,235,110,235,55,236,77,237,152,238,8,240,164,241,122,243,141,245,206,247,46,250,166,252,47,255,194,1, +99,4,27,7,225,9,160,12,76,15,218,17,50,20,58,22,235,23,64,25,41,26,159,26,181,26,129,26,8,26,78,25, +91,24,38,23,157,21,182,19,127,17,253,14,37,12,232,8,75,5,86,1,31,253,213,248,174,244,206,240,70,237,30,234, +89,231,253,228,26,227,183,225,197,224,51,224,250,223,27,224,147,224,97,225,140,226,23,228,254,229,62,232,204,234,148,237, +128,240,117,243,90,246,22,249,149,251,199,253,157,255,10,1,24,2,224,2,112,3,210,3,24,4,96,4,194,4,44,5, +111,5,108,5,48,5,196,4,22,4,1,3,119,1,145,255,116,253,67,251,52,249,132,247,75,246,128,245,37,245,78,245, +252,245,8,247,67,248,144,249,216,250,13,252,53,253,87,254,110,255,139,0,207,1,75,3,252,4,241,6,59,9,223,11, +208,14,239,17,26,21,43,24,5,27,165,29,17,32,56,34,247,35,60,37,22,38,157,38,225,38,225,38,139,38,208,37, +184,36,82,35,148,33,106,31,204,28,190,25,87,22,179,18,235,14,30,11,116,7,251,3,185,0,195,253,52,251,19,249, +64,247,138,245,222,243,75,242,218,240,134,239,86,238,100,237,197,236,131,236,168,236,81,237,145,238,94,240,150,242,18,245, +160,247,14,250,42,252,202,253,217,254,102,255,135,255,72,255,174,254,214,253,254,252,85,252,220,251,127,251,55,251,255,250, +193,250,91,250,171,249,157,248,60,247,150,245,171,243,127,241,43,239,214,236,163,234,181,232,36,231,252,229,80,229,50,229, +152,229,105,230,148,231,9,233,177,234,120,236,74,238,18,240,197,241,96,243,229,244,95,246,210,247,55,249,138,250,220,251, +81,253,14,255,14,1,47,3,103,5,200,7,86,10,240,12,108,15,183,17,218,19,206,21,123,23,201,24,165,25,10,26, +253,25,133,25,161,24,83,23,149,21,106,19,243,16,93,14,197,11,59,9,194,6,87,4,0,2,202,255,184,253,190,251, +207,249,231,247,2,246,21,244,40,242,93,240,194,238,86,237,50,236,142,235,148,235,62,236,108,237,23,239,66,241,212,243, +157,246,111,249,37,252,152,254,163,0,44,2,53,3,191,3,202,3,108,3,201,2,249,1,34,1,125,0,46,0,47,0, +95,0,157,0,211,0,244,0,233,0,165,0,41,0,120,255,154,254,150,253,124,252,113,251,163,250,57,250,63,250,161,250, +55,251,239,251,204,252,216,253,23,255,115,0,214,1,59,3,169,4,38,6,204,7,180,9,225,11,72,14,225,16,152,19, +70,22,194,24,239,26,191,28,45,30,60,31,254,31,121,32,188,32,231,32,21,33,71,33,111,33,122,33,80,33,215,32, +3,32,219,30,95,29,126,27,41,25,109,22,101,19,46,16,245,12,235,9,36,7,143,4,13,2,154,255,66,253,249,250, +170,248,82,246,241,243,132,241,12,239,139,236,21,234,208,231,220,229,77,228,44,227,107,226,247,225,217,225,43,226,224,226, +189,227,155,228,131,229,118,230,101,231,85,232,101,233,154,234,225,235,38,237,84,238,106,239,106,240,70,241,229,241,62,242, +79,242,29,242,187,241,67,241,214,240,139,240,90,240,44,240,3,240,224,239,156,239,4,239,2,238,164,236,5,235,68,233, +132,231,230,229,145,228,190,227,164,227,99,228,4,230,108,232,110,235,231,238,183,242,186,246,204,250,210,254,176,2,65,6, +118,9,89,12,6,15,150,17,44,20,224,22,168,25,103,28,0,31,93,33,114,35,44,37,89,38,193,38,100,38,104,37, +6,36,107,34,168,32,192,30,194,28,204,26,20,25,207,23,248,22,82,22,164,21,208,20,207,19,166,18,94,17,4,16, +168,14,82,13,254,11,164,10,61,9,193,7,41,6,87,4,40,2,146,255,182,252,195,249,220,246,25,244,155,241,137,239, +13,238,74,237,65,237,227,237,26,239,181,240,112,242,33,244,175,245,240,246,173,247,194,247,48,247,31,246,189,244,65,243, +233,241,232,240,73,240,18,240,77,240,250,240,241,241,245,242,224,243,158,244,20,245,47,245,247,244,120,244,188,243,222,242, +250,241,46,241,168,240,140,240,229,240,185,241,245,242,107,244,1,246,195,247,207,249,51,252,236,254,234,1,52,5,217,8, +206,12,237,16,33,21,106,25,169,29,160,33,33,37,21,40,91,42,211,43,129,44,118,44,191,43,99,42,139,40,119,38, +90,36,59,34,9,32,182,29,54,27,136,24,168,21,143,18,56,15,173,11,247,7,40,4,99,0,225,252,220,249,102,247, +104,245,211,243,177,242,246,241,121,241,13,241,146,240,250,239,58,239,67,238,13,237,163,235,24,234,134,232,253,230,142,229, +97,228,156,227,70,227,76,227,150,227,29,228,221,228,186,229,145,230,91,231,35,232,222,232,121,233,243,233,102,234,252,234, +208,235,200,236,177,237,131,238,90,239,66,240,47,241,14,242,212,242,134,243,52,244,236,244,166,245,96,246,35,247,229,247, +139,248,249,248,35,249,20,249,226,248,147,248,45,248,210,247,167,247,206,247,101,248,133,249,62,251,147,253,126,0,232,3, +182,7,204,11,23,16,124,20,201,24,193,28,60,32,51,35,172,37,165,39,27,41,32,42,207,42,56,43,99,43,86,43, +18,43,143,42,178,41,95,40,167,38,180,36,150,34,66,32,181,29,253,26,47,24,98,21,158,18,237,15,84,13,205,10, +96,8,32,6,2,4,241,1,248,255,61,254,194,252,104,251,32,250,252,248,11,248,55,247,103,246,156,245,239,244,105,244, +243,243,111,243,212,242,22,242,45,241,43,240,41,239,54,238,90,237,153,236,241,235,117,235,55,235,38,235,36,235,41,235, +59,235,82,235,88,235,63,235,6,235,174,234,52,234,158,233,3,233,128,232,18,232,158,231,28,231,157,230,37,230,189,229, +125,229,115,229,162,229,17,230,181,230,121,231,97,232,147,233,61,235,105,237,235,239,161,242,155,245,240,248,129,252,21,0, +128,3,178,6,171,9,109,12,243,14,53,17,37,19,181,20,229,21,212,22,171,23,109,24,249,24,57,25,66,25,53,25, +26,25,222,24,128,24,34,24,215,23,135,23,14,23,96,22,127,21,100,20,3,19,93,17,140,15,160,13,143,11,88,9, +24,7,242,4,249,2,29,1,82,255,181,253,109,252,127,251,202,250,40,250,141,249,9,249,169,248,102,248,50,248,12,248, +13,248,88,248,231,248,158,249,144,250,221,251,126,253,85,255,86,1,109,3,112,5,40,7,112,8,72,9,183,9,195,9, +115,9,208,8,228,7,202,6,158,5,114,4,103,3,166,2,47,2,210,1,103,1,242,0,120,0,230,255,41,255,70,254, +75,253,68,252,55,251,54,250,111,249,18,249,39,249,143,249,36,250,220,250,205,251,255,252,75,254,139,255,184,0,205,1, +187,2,128,3,38,4,188,4,79,5,217,5,68,6,134,6,166,6,177,6,176,6,157,6,100,6,238,5,69,5,159,4, +62,4,48,4,79,4,105,4,106,4,102,4,91,4,14,4,64,3,219,1,243,255,169,253,15,251,59,248,104,245,221,242, +189,240,26,239,17,238,178,237,236,237,163,238,179,239,233,240,23,242,38,243,17,244,204,244,80,245,167,245,228,245,24,246, +90,246,189,246,92,247,82,248,155,249,15,251,125,252,197,253,224,254,190,255,50,0,31,0,160,255,223,254,8,254,82,253, +230,252,202,252,243,252,88,253,252,253,223,254,221,255,189,0,80,1,135,1,96,1,226,0,27,0,33,255,11,254,250,252, +25,252,140,251,82,251,86,251,130,251,203,251,46,252,145,252,198,252,186,252,120,252,249,251,48,251,67,250,125,249,44,249, +125,249,118,250,24,252,90,254,20,1,6,4,246,6,186,9,49,12,69,14,226,15,255,16,171,17,14,18,82,18,144,18, +215,18,57,19,167,19,1,20,52,20,49,20,219,19,34,19,14,18,178,16,31,15,91,13,108,11,108,9,126,7,199,5, +107,4,128,3,10,3,1,3,75,3,201,3,101,4,11,5,154,5,230,5,205,5,75,5,131,4,145,3,125,2,85,1, +39,0,252,254,227,253,241,252,61,252,203,251,123,251,40,251,187,250,45,250,137,249,234,248,99,248,250,247,179,247,146,247, +167,247,247,247,109,248,252,248,182,249,160,250,138,251,55,252,131,252,109,252,2,252,76,251,83,250,38,249,211,247,113,246, +34,245,7,244,34,243,92,242,177,241,41,241,197,240,127,240,91,240,109,240,220,240,209,241,72,243,36,245,98,247,28,250, +80,253,198,0,48,4,96,7,66,10,147,12,238,13,54,14,161,13,95,12,130,10,46,8,175,5,86,3,74,1,164,255, +144,254,41,254,76,254,185,254,79,255,12,0,218,0,114,1,150,1,68,1,156,0,167,255,103,254,251,252,166,251,173,250, +58,250,84,250,226,250,190,251,209,252,11,254,55,255,6,0,90,0,60,0,152,255,69,254,91,252,55,250,46,248,93,246, +208,244,173,243,37,243,69,243,230,243,207,244,218,245,2,247,80,248,197,249,75,251,214,252,124,254,73,0,31,2,226,3, +131,5,236,6,254,7,163,8,219,8,193,8,106,8,200,7,221,6,212,5,211,4,237,3,41,3,143,2,49,2,32,2, +85,2,187,2,74,3,252,3,184,4,88,5,193,5,238,5,240,5,232,5,250,5,54,6,167,6,88,7,74,8,103,9, +155,10,213,11,251,12,243,13,200,14,145,15,72,16,202,16,19,17,73,17,121,17,131,17,86,17,15,17,201,16,133,16, +50,16,211,15,117,15,28,15,201,14,133,14,93,14,94,14,140,14,215,14,27,15,48,15,252,14,114,14,143,13,78,12, +152,10,94,8,181,5,223,2,10,0,57,253,120,250,255,247,251,245,117,244,106,243,209,242,156,242,173,242,212,242,244,242, +9,243,4,243,184,242,22,242,63,241,100,240,168,239,23,239,199,238,212,238,63,239,212,239,89,240,197,240,43,241,137,241, +194,241,193,241,136,241,56,241,234,240,144,240,1,240,77,239,190,238,147,238,215,238,104,239,38,240,21,241,60,242,132,243, +214,244,72,246,11,248,29,250,66,252,73,254,65,0,46,2,192,3,141,4,94,4,44,3,247,0,218,253,50,250,118,246, +244,242,220,239,107,237,235,235,131,235,40,236,193,237,63,240,112,243,226,246,33,250,247,252,69,255,207,0,101,1,10,1, +248,255,131,254,255,252,185,251,233,250,154,250,187,250,67,251,32,252,36,253,32,254,0,255,167,255,226,255,141,255,180,254, +121,253,235,251,29,250,73,248,195,246,195,245,82,245,96,245,222,245,189,246,237,247,107,249,63,251,95,253,189,255,86,2, +35,5,16,8,4,11,231,13,165,16,53,19,157,21,226,23,239,25,156,27,214,28,165,29,25,30,69,30,64,30,16,30, +176,29,46,29,192,28,154,28,190,28,2,29,71,29,121,29,125,29,49,29,120,28,84,27,226,25,67,24,144,22,226,20, +85,19,4,18,7,17,89,16,228,15,161,15,136,15,133,15,122,15,76,15,226,14,42,14,16,13,121,11,99,9,1,7, +144,4,40,2,200,255,129,253,135,251,1,250,232,248,40,248,196,247,188,247,231,247,2,248,218,247,108,247,210,246,27,246, +64,245,63,244,60,243,93,242,179,241,63,241,246,240,194,240,152,240,126,240,129,240,167,240,232,240,43,241,84,241,84,241, +42,241,223,240,124,240,250,239,71,239,111,238,151,237,219,236,52,236,144,235,255,234,174,234,179,234,251,234,106,235,12,236, +13,237,126,238,81,240,128,242,9,245,204,247,155,250,82,253,222,255,46,2,39,4,171,5,169,6,28,7,10,7,135,6, +195,5,239,4,38,4,109,3,194,2,31,2,135,1,17,1,220,0,233,0,18,1,44,1,42,1,11,1,205,0,115,0, +15,0,162,255,29,255,129,254,242,253,140,253,81,253,63,253,106,253,231,253,154,254,72,255,207,255,49,0,107,0,111,0, +52,0,189,255,18,255,61,254,69,253,46,252,5,251,216,249,175,248,158,247,189,246,19,246,160,245,110,245,141,245,1,246, +206,246,252,247,132,249,53,251,201,252,31,254,56,255,29,0,183,0,230,0,164,0,16,0,78,255,105,254,91,253,41,252, +246,250,234,249,22,249,119,248,15,248,230,247,4,248,92,248,224,248,147,249,145,250,241,251,167,253,144,255,151,1,211,3, +105,6,80,9,78,12,46,15,225,17,95,20,139,22,62,24,97,25,230,25,197,25,6,25,219,23,143,22,79,21,18,20, +207,18,161,17,164,16,216,15,51,15,177,14,79,14,254,13,170,13,65,13,192,12,45,12,135,11,204,10,245,9,249,8, +223,7,210,6,244,5,73,5,197,4,99,4,23,4,204,3,121,3,29,3,165,2,239,1,229,0,149,255,36,254,177,252, +67,251,215,249,125,248,97,247,177,246,122,246,165,246,45,247,39,248,156,249,122,251,171,253,30,0,164,2,247,4,233,6, +121,8,151,9,13,10,186,9,180,8,22,7,217,4,28,2,78,255,221,252,222,250,52,249,231,247,26,247,211,246,238,246, +71,247,206,247,112,248,1,249,92,249,120,249,73,249,199,248,14,248,79,247,152,246,218,245,41,245,189,244,190,244,32,245, +189,245,125,246,84,247,32,248,176,248,229,248,190,248,64,248,109,247,74,246,226,244,78,243,184,241,81,240,54,239,104,238, +215,237,133,237,130,237,208,237,89,238,4,239,192,239,132,240,86,241,62,242,49,243,13,244,192,244,87,245,235,245,120,246, +211,246,230,246,214,246,216,246,8,247,101,247,238,247,170,248,156,249,182,250,218,251,254,252,50,254,132,255,239,0,99,2, +211,3,55,5,148,6,255,7,134,9,49,11,1,13,232,14,207,16,162,18,81,20,191,21,194,22,50,23,3,23,72,22, +31,21,153,19,228,17,79,16,18,15,42,14,131,13,44,13,69,13,197,13,126,14,65,15,254,15,157,16,242,16,228,16, +135,16,3,16,117,15,236,14,119,14,36,14,255,13,15,14,91,14,224,14,135,15,37,16,150,16,192,16,133,16,215,15, +200,14,120,13,12,12,171,10,116,9,118,8,173,7,29,7,212,6,222,6,51,7,177,7,57,8,174,8,247,8,13,9, +251,8,203,8,117,8,253,7,107,7,188,6,229,5,234,4,209,3,145,2,44,1,179,255,54,254,190,252,71,251,208,249, +96,248,6,247,212,245,217,244,19,244,108,243,207,242,54,242,162,241,10,241,95,240,150,239,188,238,240,237,67,237,180,236, +63,236,231,235,176,235,148,235,138,235,139,235,137,235,118,235,64,235,208,234,20,234,7,233,185,231,76,230,227,228,147,227, +115,226,156,225,36,225,29,225,143,225,112,226,177,227,86,229,94,231,168,233,6,236,85,238,137,240,163,242,159,244,100,246, +208,247,232,248,213,249,173,250,99,251,224,251,34,252,53,252,38,252,14,252,20,252,78,252,179,252,77,253,73,254,196,255, +158,1,187,3,38,6,214,8,136,11,8,14,103,16,179,18,170,20,237,21,101,22,61,22,128,21,26,20,25,18,198,15, +110,13,53,11,39,9,80,7,187,5,81,4,228,2,117,1,70,0,129,255,238,254,51,254,50,253,23,252,11,251,2,250, +231,248,208,247,235,246,99,246,71,246,148,246,62,247,78,248,207,249,143,251,62,253,185,254,8,0,16,1,156,1,173,1, +114,1,255,0,65,0,63,255,61,254,136,253,54,253,45,253,89,253,194,253,117,254,122,255,210,0,133,2,156,4,13,7, +171,9,74,12,214,14,73,17,144,19,140,21,28,23,53,24,226,24,52,25,48,25,233,24,150,24,107,24,98,24,75,24, +30,24,23,24,114,24,48,25,43,26,86,27,170,28,4,30,44,31,2,32,140,32,226,32,15,33,5,33,206,32,157,32, +157,32,199,32,1,33,54,33,78,33,42,33,205,32,88,32,222,31,52,31,22,30,102,28,65,26,200,23,0,21,251,17, +232,14,233,11,6,9,61,6,149,3,16,1,185,254,154,252,171,250,208,248,221,246,195,244,144,242,84,240,255,237,117,235, +199,232,40,230,180,227,84,225,242,222,175,220,204,218,90,217,44,216,36,215,91,214,230,213,184,213,181,213,222,213,76,214, +255,214,219,215,194,216,170,217,137,218,87,219,19,220,199,220,118,221,35,222,213,222,158,223,152,224,192,225,229,226,217,227, +159,228,89,229,25,230,208,230,85,231,125,231,70,231,227,230,124,230,12,230,128,229,249,228,196,228,34,229,21,230,132,231, +119,233,11,236,51,239,200,242,180,246,236,250,43,255,11,3,78,6,246,8,237,10,234,11,195,11,172,10,223,8,99,6, +83,3,49,0,150,253,200,251,188,250,99,250,187,250,178,251,52,253,59,255,172,1,67,4,184,6,231,8,190,10,37,12, +22,13,151,13,167,13,71,13,153,12,217,11,54,11,186,10,80,10,231,9,123,9,252,8,77,8,101,7,87,6,40,5, +203,3,72,2,189,0,65,255,221,253,159,252,180,251,80,251,143,251,89,252,139,253,8,255,196,0,194,2,8,5,136,7, +29,10,180,12,80,15,236,17,101,20,153,22,124,24,28,26,118,27,115,28,1,29,49,29,33,29,226,28,136,28,57,28, +33,28,81,28,190,28,98,29,74,30,127,31,240,32,136,34,52,36,215,37,74,39,114,40,74,41,212,41,253,41,169,41, +231,40,250,39,32,39,87,38,124,37,124,36,94,35,56,34,34,33,32,32,40,31,41,30,13,29,198,27,88,26,204,24, +23,23,43,21,28,19,5,17,245,14,240,12,9,11,92,9,245,7,195,6,181,5,194,4,211,3,186,2,79,1,136,255, +91,253,173,250,112,247,178,243,140,239,34,235,157,230,43,226,244,221,18,218,131,214,57,211,55,208,149,205,99,203,157,201, +44,200,247,198,230,197,238,196,21,196,108,195,236,194,127,194,35,194,245,193,15,194,113,194,14,195,223,195,250,196,126,198, +115,200,187,202,58,205,234,207,210,210,244,213,73,217,189,220,48,224,138,227,202,230,249,233,8,237,194,239,0,242,211,243, +88,245,138,246,90,247,225,247,73,248,177,248,54,249,242,249,232,250,27,252,167,253,162,255,244,1,98,4,192,6,0,9, +31,11,13,13,196,14,66,16,105,17,26,18,108,18,161,18,207,18,232,18,250,18,63,19,212,19,152,20,93,21,20,22, +201,22,126,23,32,24,144,24,179,24,128,24,9,24,119,23,233,22,80,22,135,21,127,20,86,19,39,18,230,16,130,15, +16,14,183,12,151,11,201,10,95,10,78,10,128,10,238,10,157,11,119,12,69,13,220,13,52,14,64,14,221,13,243,12, +151,11,254,9,74,8,148,6,237,4,108,3,49,2,100,1,21,1,61,1,212,1,218,2,58,4,205,5,114,7,13,9, +130,10,197,11,207,12,157,13,57,14,202,14,133,15,118,16,134,17,158,18,194,19,240,20,10,22,232,22,128,23,216,23, +241,23,192,23,53,23,66,22,232,20,58,19,100,17,150,15,233,13,100,12,253,10,171,9,108,8,84,7,116,6,205,5, +79,5,215,4,62,4,122,3,157,2,181,1,193,0,205,255,228,254,3,254,34,253,68,252,111,251,160,250,220,249,49,249, +165,248,34,248,145,247,246,246,99,246,210,245,52,245,146,244,255,243,107,243,192,242,13,242,118,241,20,241,238,240,246,240, +2,241,224,240,133,240,17,240,145,239,225,238,211,237,104,236,186,234,215,232,213,230,247,228,128,227,123,226,206,225,111,225, +111,225,204,225,93,226,1,227,182,227,117,228,21,229,116,229,160,229,183,229,194,229,182,229,153,229,133,229,145,229,198,229, +46,230,229,230,241,231,59,233,164,234,39,236,194,237,103,239,253,240,112,242,178,243,204,244,203,245,180,246,128,247,55,248, +240,248,209,249,245,250,85,252,205,253,76,255,209,0,91,2,220,3,64,5,115,6,120,7,101,8,68,9,15,10,193,10, +93,11,233,11,95,12,182,12,234,12,8,13,41,13,98,13,196,13,95,14,36,15,242,15,181,16,115,17,60,18,18,19, +233,19,180,20,111,21,31,22,199,22,108,23,22,24,197,24,109,25,12,26,179,26,120,27,94,28,76,29,28,30,187,30, +19,31,6,31,125,30,125,29,33,28,129,26,186,24,227,22,9,21,65,19,166,17,88,16,102,15,205,14,127,14,102,14, +96,14,68,14,1,14,181,13,126,13,87,13,53,13,28,13,28,13,58,13,120,13,215,13,86,14,227,14,91,15,161,15, +182,15,166,15,116,15,23,15,134,14,191,13,212,12,215,11,192,10,116,9,249,7,118,6,5,5,168,3,87,2,6,1, +168,255,54,254,191,252,86,251,244,249,145,248,58,247,0,246,214,244,165,243,116,242,90,241,89,240,108,239,151,238,222,237, +53,237,142,236,239,235,91,235,198,234,32,234,108,233,173,232,224,231,253,230,5,230,251,228,227,227,193,226,162,225,162,224, +221,223,81,223,217,222,92,222,229,221,141,221,85,221,47,221,24,221,13,221,12,221,21,221,46,221,85,221,130,221,182,221, +1,222,114,222,6,223,178,223,121,224,109,225,154,226,252,227,139,229,69,231,40,233,41,235,55,237,70,239,88,241,111,243, +133,245,143,247,122,249,58,251,213,252,93,254,212,255,30,1,34,2,236,2,139,3,255,3,77,4,144,4,225,4,73,5, +210,5,143,6,139,7,192,8,33,10,165,11,67,13,238,14,161,16,89,18,12,20,160,21,0,23,39,24,10,25,150,25, +193,25,153,25,54,25,163,24,231,23,10,23,25,22,37,21,31,20,233,18,128,17,19,16,207,14,195,13,227,12,37,12, +137,11,21,11,197,10,142,10,105,10,85,10,82,10,94,10,107,10,107,10,108,10,152,10,6,11,166,11,89,12,10,13, +177,13,75,14,204,14,31,15,44,15,230,14,80,14,136,13,181,12,234,11,38,11,98,10,164,9,248,8,102,8,240,7, +154,7,111,7,113,7,154,7,226,7,68,8,187,8,71,9,233,9,150,10,59,11,203,11,69,12,169,12,251,12,69,13, +136,13,196,13,253,13,57,14,119,14,177,14,225,14,1,15,17,15,16,15,246,14,190,14,108,14,1,14,129,13,234,12, +58,12,111,11,149,10,176,9,195,8,220,7,18,7,107,6,223,5,112,5,37,5,247,4,214,4,177,4,118,4,22,4, +144,3,231,2,25,2,37,1,8,0,192,254,69,253,145,251,172,249,169,247,141,245,84,243,11,241,199,238,138,236,76,234, +29,232,21,230,62,228,149,226,30,225,220,223,192,222,187,221,215,220,41,220,178,219,103,219,70,219,101,219,212,219,142,220, +117,221,116,222,139,223,206,224,71,226,225,227,116,229,232,230,60,232,129,233,197,234,255,235,29,237,34,238,41,239,67,240, +100,241,119,242,120,243,118,244,114,245,87,246,20,247,171,247,25,248,86,248,113,248,145,248,210,248,48,249,169,249,77,250, +58,251,118,252,232,253,111,255,10,1,186,2,110,4,19,6,158,7,253,8,34,10,18,11,213,11,91,12,152,12,167,12, +181,12,211,12,239,12,1,13,20,13,58,13,116,13,190,13,6,14,39,14,16,14,233,13,226,13,243,13,237,13,197,13, +151,13,113,13,81,13,48,13,6,13,192,12,78,12,183,11,13,11,87,10,149,9,212,8,44,8,157,7,11,7,96,6, +161,5,215,4,245,3,243,2,216,1,179,0,134,255,83,254,49,253,61,252,131,251,14,251,245,250,63,251,211,251,147,252, +118,253,126,254,153,255,167,0,140,1,63,2,197,2,39,3,112,3,161,3,186,3,197,3,210,3,235,3,14,4,56,4, +110,4,176,4,253,4,75,5,139,5,183,5,223,5,16,6,62,6,95,6,139,6,214,6,46,7,125,7,202,7,49,8, +175,8,30,9,90,9,105,9,105,9,103,9,95,9,74,9,48,9,23,9,4,9,249,8,241,8,239,8,244,8,245,8, +231,8,206,8,169,8,102,8,253,7,116,7,213,6,32,6,95,5,162,4,245,3,90,3,202,2,70,2,209,1,93,1, +209,0,26,0,57,255,49,254,244,252,111,251,161,249,158,247,123,245,72,243,25,241,22,239,80,237,179,235,36,234,179,232, +132,231,162,230,1,230,155,229,103,229,79,229,60,229,53,229,71,229,105,229,134,229,158,229,183,229,197,229,189,229,178,229, +201,229,19,230,149,230,92,231,111,232,198,233,70,235,228,236,167,238,142,240,130,242,106,244,74,246,61,248,70,250,67,252, +2,254,121,255,199,0,2,2,33,3,25,4,241,4,174,5,82,6,239,6,151,7,64,8,228,8,150,9,103,10,62,11, +246,11,136,12,10,13,142,13,20,14,165,14,90,15,55,16,29,17,248,17,211,18,192,19,185,20,179,21,165,22,136,23, +79,24,232,24,74,25,118,25,122,25,90,25,28,25,187,24,44,24,106,23,136,22,162,21,184,20,187,19,176,18,172,17, +184,16,192,15,182,14,159,13,134,12,109,11,78,10,44,9,7,8,229,6,216,5,238,4,36,4,109,3,195,2,36,2, +134,1,219,0,18,0,36,255,23,254,249,252,219,251,199,250,189,249,195,248,218,247,251,246,27,246,68,245,146,244,19,244, +195,243,160,243,172,243,225,243,46,244,125,244,187,244,236,244,36,245,115,245,206,245,37,246,117,246,194,246,21,247,108,247, +200,247,53,248,187,248,75,249,206,249,62,250,151,250,214,250,246,250,252,250,234,250,197,250,150,250,92,250,12,250,170,249, +77,249,13,249,1,249,44,249,134,249,12,250,190,250,157,251,164,252,204,253,12,255,81,0,122,1,96,2,237,2,49,3, +79,3,92,3,84,3,54,3,11,3,222,2,180,2,136,2,93,2,69,2,81,2,121,2,161,2,175,2,155,2,106,2, +45,2,244,1,201,1,155,1,86,1,244,0,136,0,42,0,223,255,156,255,83,255,253,254,157,254,66,254,246,253,188,253, +149,253,124,253,108,253,96,253,84,253,64,253,29,253,234,252,168,252,81,252,231,251,121,251,29,251,218,250,173,250,144,250, +138,250,161,250,213,250,42,251,164,251,51,252,188,252,53,253,161,253,254,253,71,254,128,254,169,254,195,254,203,254,195,254, +177,254,164,254,171,254,205,254,15,255,110,255,221,255,77,0,186,0,37,1,145,1,1,2,114,2,223,2,66,3,159,3, +254,3,103,4,217,4,77,5,184,5,27,6,118,6,200,6,13,7,63,7,87,7,94,7,99,7,107,7,105,7,96,7, +96,7,116,7,144,7,168,7,190,7,218,7,244,7,4,8,22,8,62,8,118,8,164,8,189,8,201,8,212,8,215,8, +200,8,166,8,121,8,58,8,222,7,102,7,222,6,68,6,148,5,204,4,238,3,244,2,223,1,197,0,203,255,4,255, +103,254,219,253,94,253,249,252,166,252,84,252,6,252,205,251,175,251,165,251,165,251,171,251,184,251,209,251,248,251,47,252, +115,252,178,252,221,252,241,252,239,252,219,252,189,252,155,252,113,252,62,252,9,252,200,251,116,251,27,251,212,250,159,250, +111,250,61,250,12,250,221,249,183,249,167,249,174,249,192,249,206,249,211,249,209,249,204,249,200,249,204,249,215,249,223,249, +229,249,250,249,41,250,108,250,185,250,5,251,69,251,118,251,163,251,209,251,248,251,15,252,32,252,46,252,44,252,17,252, +234,251,192,251,153,251,127,251,121,251,119,251,98,251,68,251,58,251,79,251,111,251,140,251,169,251,204,251,243,251,32,252, +86,252,140,252,180,252,203,252,225,252,255,252,15,253,0,253,217,252,170,252,123,252,84,252,61,252,54,252,55,252,62,252, +84,252,137,252,224,252,71,253,177,253,30,254,137,254,228,254,46,255,115,255,184,255,245,255,33,0,65,0,100,0,147,0, +214,0,44,1,157,1,39,2,188,2,79,3,227,3,120,4,9,5,137,5,236,5,46,6,90,6,125,6,150,6,155,6, +145,6,131,6,119,6,104,6,82,6,59,6,46,6,46,6,53,6,59,6,54,6,22,6,213,5,135,5,68,5,16,5, +227,4,183,4,134,4,79,4,20,4,227,3,206,3,219,3,254,3,40,4,81,4,116,4,142,4,164,4,194,4,227,4, +246,4,237,4,203,4,157,4,103,4,35,4,208,3,115,3,14,3,159,2,42,2,192,1,110,1,51,1,9,1,236,0, +211,0,189,0,167,0,143,0,116,0,88,0,57,0,22,0,237,255,188,255,134,255,85,255,38,255,244,254,193,254,146,254, +119,254,124,254,160,254,215,254,21,255,88,255,155,255,211,255,254,255,32,0,55,0,60,0,50,0,28,0,4,0,254,255, +15,0,55,0,112,0,184,0,11,1,101,1,189,1,10,2,71,2,118,2,150,2,168,2,173,2,165,2,146,2,127,2, +121,2,127,2,134,2,140,2,151,2,169,2,190,2,204,2,210,2,209,2,197,2,163,2,111,2,49,2,236,1,154,1, +66,1,240,0,172,0,124,0,103,0,103,0,112,0,116,0,112,0,96,0,65,0,17,0,213,255,145,255,67,255,242,254, +171,254,120,254,82,254,47,254,12,254,238,253,215,253,196,253,175,253,151,253,121,253,79,253,25,253,227,252,186,252,155,252, +129,252,104,252,84,252,76,252,74,252,70,252,67,252,64,252,55,252,35,252,0,252,210,251,161,251,122,251,94,251,74,251, +60,251,61,251,83,251,128,251,188,251,254,251,59,252,113,252,161,252,200,252,232,252,2,253,21,253,41,253,73,253,118,253, +175,253,247,253,76,254,167,254,0,255,81,255,154,255,215,255,13,0,68,0,124,0,175,0,216,0,253,0,32,1,61,1, +85,1,109,1,129,1,142,1,146,1,144,1,141,1,132,1,115,1,89,1,53,1,6,1,208,0,147,0,83,0,25,0, +227,255,171,255,116,255,73,255,45,255,26,255,8,255,251,254,251,254,4,255,10,255,11,255,12,255,7,255,254,254,249,254, +255,254,1,255,236,254,198,254,159,254,120,254,74,254,19,254,212,253,142,253,71,253,12,253,229,252,207,252,192,252,180,252, +172,252,168,252,174,252,191,252,217,252,249,252,27,253,63,253,96,253,133,253,182,253,245,253,59,254,126,254,186,254,240,254, +39,255,102,255,175,255,254,255,76,0,146,0,209,0,12,1,67,1,124,1,192,1,13,2,89,2,156,2,211,2,1,3, +37,3,67,3,93,3,122,3,155,3,184,3,199,3,203,3,207,3,215,3,221,3,223,3,230,3,244,3,4,4,19,4, +32,4,45,4,51,4,47,4,37,4,29,4,23,4,10,4,239,3,196,3,144,3,84,3,16,3,202,2,143,2,92,2, +40,2,234,1,162,1,91,1,29,1,233,0,194,0,170,0,149,0,123,0,99,0,86,0,87,0,91,0,87,0,79,0, +62,0,32,0,249,255,211,255,180,255,160,255,150,255,152,255,164,255,176,255,182,255,187,255,196,255,198,255,188,255,165,255, +136,255,105,255,73,255,35,255,245,254,194,254,146,254,105,254,76,254,61,254,57,254,64,254,89,254,130,254,184,254,246,254, +59,255,133,255,199,255,247,255,27,0,52,0,66,0,76,0,86,0,96,0,107,0,122,0,145,0,176,0,213,0,4,1, +61,1,117,1,165,1,206,1,240,1,4,2,6,2,254,1,249,1,245,1,233,1,210,1,174,1,132,1,92,1,57,1, +31,1,15,1,3,1,252,0,255,0,6,1,14,1,25,1,38,1,48,1,49,1,38,1,13,1,227,0,167,0,92,0, +9,0,171,255,68,255,217,254,115,254,25,254,204,253,142,253,95,253,68,253,59,253,65,253,82,253,97,253,99,253,82,253, +49,253,255,252,197,252,136,252,75,252,16,252,218,251,170,251,130,251,98,251,76,251,75,251,98,251,132,251,164,251,193,251, +228,251,13,252,52,252,85,252,111,252,124,252,120,252,108,252,96,252,91,252,92,252,97,252,109,252,132,252,164,252,199,252, +245,252,55,253,137,253,224,253,54,254,139,254,224,254,52,255,136,255,229,255,77,0,179,0,11,1,86,1,149,1,199,1, +236,1,9,2,31,2,54,2,85,2,118,2,153,2,189,2,226,2,11,3,55,3,93,3,127,3,159,3,183,3,194,3, +189,3,176,3,159,3,138,3,113,3,89,3,71,3,60,3,56,3,65,3,87,3,115,3,141,3,159,3,162,3,146,3, +114,3,68,3,12,3,205,2,132,2,52,2,233,1,171,1,117,1,73,1,45,1,34,1,33,1,39,1,54,1,70,1, +78,1,75,1,63,1,45,1,21,1,248,0,223,0,205,0,181,0,150,0,116,0,80,0,44,0,13,0,242,255,222,255, +206,255,185,255,153,255,111,255,61,255,11,255,227,254,202,254,191,254,184,254,173,254,159,254,145,254,136,254,138,254,151,254, +167,254,179,254,186,254,194,254,205,254,221,254,242,254,14,255,48,255,81,255,110,255,135,255,160,255,181,255,193,255,197,255, +201,255,200,255,194,255,192,255,198,255,201,255,198,255,198,255,205,255,215,255,226,255,236,255,251,255,15,0,35,0,51,0, +65,0,79,0,94,0,106,0,110,0,110,0,116,0,128,0,142,0,165,0,200,0,240,0,20,1,46,1,55,1,44,1, +16,1,239,0,206,0,171,0,134,0,98,0,68,0,44,0,20,0,253,255,239,255,235,255,233,255,228,255,220,255,209,255, +198,255,188,255,184,255,186,255,192,255,197,255,199,255,193,255,179,255,163,255,150,255,143,255,136,255,119,255,92,255,63,255, +41,255,30,255,26,255,25,255,21,255,13,255,2,255,246,254,235,254,226,254,222,254,218,254,208,254,187,254,157,254,126,254, +99,254,77,254,62,254,49,254,35,254,25,254,25,254,36,254,54,254,72,254,86,254,94,254,101,254,108,254,117,254,127,254, +135,254,137,254,136,254,134,254,132,254,129,254,137,254,163,254,203,254,247,254,33,255,71,255,109,255,148,255,188,255,225,255, +255,255,20,0,30,0,32,0,31,0,23,0,11,0,8,0,18,0,32,0,40,0,38,0,33,0,29,0,25,0,22,0, +27,0,32,0,32,0,29,0,31,0,45,0,68,0,92,0,116,0,140,0,159,0,173,0,182,0,190,0,199,0,205,0, +202,0,191,0,177,0,164,0,151,0,137,0,122,0,106,0,88,0,69,0,55,0,47,0,43,0,39,0,35,0,33,0, +31,0,27,0,25,0,22,0,21,0,20,0,18,0,15,0,16,0,19,0,25,0,32,0,40,0,44,0,41,0,32,0, +21,0,10,0,2,0,253,255,246,255,241,255,238,255,234,255,231,255,230,255,232,255,237,255,243,255,250,255,6,0,21,0, +35,0,48,0,58,0,65,0,70,0,75,0,78,0,85,0,95,0,106,0,115,0,120,0,122,0,125,0,129,0,132,0, +135,0,137,0,140,0,147,0,153,0,161,0,172,0,185,0,195,0,204,0,208,0,205,0,197,0,193,0,191,0,191,0, +190,0,184,0,176,0,170,0,168,0,170,0,174,0,175,0,175,0,176,0,174,0,168,0,162,0,155,0,144,0,131,0, +122,0,115,0,110,0,110,0,113,0,118,0,120,0,120,0,120,0,120,0,119,0,116,0,111,0,104,0,97,0,90,0, +80,0,68,0,59,0,54,0,52,0,50,0,52,0,55,0,53,0,48,0,41,0,35,0,28,0,19,0,6,0,249,255, +240,255,232,255,220,255,209,255,203,255,198,255,192,255,188,255,187,255,190,255,195,255,197,255,195,255,190,255,182,255,173,255, +168,255,164,255,161,255,160,255,161,255,163,255,167,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/creeper1.pcm b/src/client/sound/data/creeper1.pcm new file mode 100755 index 0000000..39f6b93 --- /dev/null +++ b/src/client/sound/data/creeper1.pcm @@ -0,0 +1,1274 @@ +unsigned char PCM_creeper1[40692] = { +1,0,0,0,2,0,0,0,68,172,0,0,114,79,0,0,50,5,120,22,247,23,4,7,249,242,11,226,42,224,152,251, +16,32,122,43,230,29,200,8,64,244,96,231,218,226,217,226,173,241,77,17,40,38,68,29,58,5,183,242,223,236,24,238, +126,232,118,224,132,241,74,23,232,36,237,11,254,239,231,244,36,22,121,39,18,17,140,241,150,228,145,236,5,6,3,23, +255,15,211,8,169,3,247,243,172,239,57,0,240,15,204,16,192,2,180,250,48,6,189,8,105,249,148,245,44,255,92,5, +81,4,241,251,166,245,126,247,40,250,104,255,174,2,123,244,133,221,197,206,110,204,70,224,64,8,248,35,172,29,141,6, +22,246,143,236,75,230,147,233,235,246,56,9,184,23,113,20,108,3,1,246,238,240,14,249,87,13,25,22,108,10,133,250, +166,238,74,237,219,255,7,26,81,31,68,8,126,243,19,251,69,9,193,5,164,1,77,11,111,18,72,7,90,240,76,230, +115,245,180,7,215,10,165,11,89,14,155,1,106,230,2,213,70,223,250,1,76,30,59,21,218,249,180,245,207,11,118,38, +187,45,48,22,47,3,57,16,128,20,165,246,65,212,250,191,109,199,60,245,23,37,120,45,23,17,115,243,19,251,253,21, +50,19,50,3,156,7,252,13,120,7,162,249,34,243,200,11,111,43,111,37,186,10,43,250,124,251,19,16,211,24,213,1, +42,232,32,217,232,219,183,249,75,1,4,217,76,194,103,222,143,3,81,14,125,255,66,245,23,254,54,251,115,227,26,218, +237,240,237,16,183,18,70,244,43,232,216,0,225,18,43,6,49,244,26,251,111,24,5,47,77,45,233,21,203,247,207,238, +225,250,101,251,227,245,159,8,85,36,39,38,81,11,149,235,201,226,81,247,137,14,38,11,25,246,47,242,48,0,87,254, +68,234,71,230,31,2,120,33,203,24,56,239,222,220,55,236,201,243,126,235,193,233,78,244,131,7,232,26,202,27,47,3, +8,231,86,231,75,8,119,43,116,51,231,30,155,3,29,246,168,246,228,251,52,1,48,8,5,23,37,35,30,21,89,250, +4,249,220,15,194,23,224,250,195,221,5,245,120,34,81,34,244,8,12,6,159,6,212,249,205,239,52,233,185,225,158,216, +107,203,229,200,172,218,134,244,146,12,66,20,140,2,182,235,45,219,81,206,188,211,226,235,161,3,230,20,41,25,120,18, +128,18,119,18,233,13,217,23,203,34,67,31,241,37,175,51,151,45,81,28,35,12,194,253,24,243,69,224,21,206,227,222, +199,13,75,53,5,52,153,2,83,216,167,224,56,237,6,229,67,243,147,25,146,47,96,32,204,243,38,218,252,237,36,0, +118,248,194,239,32,233,36,242,154,29,254,61,106,45,185,14,47,254,39,239,51,216,221,195,183,195,221,214,231,238,114,7, +104,19,94,6,221,247,129,246,102,234,11,209,249,203,0,233,136,10,74,18,184,16,153,27,186,27,89,7,24,250,166,247, +148,252,100,27,20,72,237,87,116,55,57,252,12,218,123,231,91,252,6,249,249,227,38,206,96,225,170,40,8,85,154,57, +187,17,100,255,14,230,244,200,158,205,236,252,49,51,43,67,203,40,31,6,132,239,10,223,161,210,200,217,5,251,188,29, +205,44,30,48,150,44,149,26,60,241,79,171,0,128,203,151,45,254,108,66,178,68,16,48,215,25,204,243,191,184,200,146, +112,184,236,14,3,67,187,62,11,43,189,31,127,6,114,197,246,139,143,172,94,13,225,70,115,66,207,50,41,56,133,75, +242,65,70,9,73,218,103,217,51,229,239,236,242,246,133,251,199,1,233,11,129,6,99,252,195,251,232,238,123,219,187,228, +56,6,161,31,253,31,0,16,244,2,52,243,107,218,99,217,148,251,48,28,18,42,165,43,247,33,79,20,222,0,181,224, +203,200,35,203,185,223,33,252,142,15,211,16,69,18,149,24,128,16,147,244,132,215,119,220,207,5,166,28,197,17,220,18, +167,29,205,15,20,242,232,219,48,227,64,6,145,10,71,225,17,213,139,1,4,52,95,70,147,49,110,13,138,247,69,224, +145,196,70,209,73,4,53,37,61,28,110,252,21,232,155,241,112,254,247,242,149,223,223,221,132,237,206,252,222,2,218,9, +209,19,168,20,175,10,206,249,32,234,94,238,49,6,79,25,78,20,143,245,227,223,110,252,253,42,67,40,22,248,230,214, +252,232,171,21,98,38,60,21,60,8,130,0,194,235,22,220,84,233,5,15,148,47,21,41,146,255,172,215,97,203,220,226, +232,9,3,24,138,9,121,246,138,227,133,218,70,238,133,17,35,37,59,31,69,17,208,11,216,253,171,220,146,208,170,242, +203,29,223,42,35,27,100,8,27,0,118,240,238,219,52,233,9,17,102,31,71,13,22,255,242,9,110,28,217,13,15,220, +14,191,63,220,213,25,53,64,139,45,254,253,85,230,86,231,44,230,103,231,53,248,151,15,181,24,63,8,102,240,192,234, +103,240,112,242,204,251,232,17,139,28,157,10,13,241,246,237,171,254,212,8,176,254,230,233,212,223,130,238,140,11,2,24, +120,1,39,230,10,245,161,26,1,26,237,251,229,247,169,10,150,13,104,3,193,5,152,17,131,13,111,248,122,241,181,4, +59,27,30,36,188,31,101,15,107,247,152,231,196,243,175,19,129,34,103,25,212,13,211,249,117,217,17,200,92,208,235,236, +123,24,56,49,143,30,77,250,110,220,241,203,224,211,51,234,223,255,54,26,38,42,141,24,86,249,78,233,50,230,101,228, +244,229,69,248,145,19,85,21,29,254,33,242,132,242,6,238,161,241,254,5,232,21,45,14,230,248,239,247,155,19,245,34, +30,16,153,251,24,249,67,246,96,240,66,252,31,22,161,31,134,19,171,7,25,252,251,232,21,228,188,245,116,3,84,7, +19,14,172,15,100,6,238,247,94,226,105,212,139,230,54,9,5,28,12,27,149,13,216,252,197,247,198,250,52,249,95,252, +226,11,132,21,237,10,27,251,218,253,194,11,6,3,50,227,204,214,196,242,20,31,116,55,234,38,190,253,35,229,252,236, +66,2,45,10,152,250,152,240,117,8,200,29,8,10,216,242,10,252,31,8,129,2,23,0,120,7,50,10,210,5,181,0, +139,253,66,253,251,251,182,245,143,244,156,1,43,14,171,10,95,255,126,249,48,251,12,254,49,249,86,242,109,244,167,244, +158,237,232,244,14,15,202,35,146,34,40,12,37,241,57,230,174,233,184,243,6,9,248,32,8,42,95,34,177,12,248,240, +51,226,133,230,176,246,177,12,93,28,96,29,144,22,144,8,249,237,162,214,87,221,101,253,85,18,235,13,219,5,179,3, +45,254,83,245,134,235,16,229,43,235,20,247,187,1,129,14,141,12,37,246,57,236,221,245,15,254,57,7,38,14,205,9, +109,14,234,25,151,12,213,242,169,237,227,247,65,255,246,255,125,0,60,5,69,5,135,1,83,8,42,15,36,6,177,250, +160,249,238,2,227,19,55,24,98,2,85,235,7,235,150,248,196,2,191,6,13,14,133,25,22,25,100,8,98,248,226,242, +236,242,48,245,245,250,85,1,15,5,115,12,79,21,246,10,225,239,243,225,48,229,191,236,97,254,218,20,135,24,44,8, +29,247,99,241,151,244,98,247,61,251,129,7,110,18,80,14,125,254,228,240,85,243,182,1,88,6,234,255,70,1,4,10, +38,12,239,3,191,242,68,222,193,214,36,232,152,4,30,17,226,11,128,6,106,1,147,246,176,236,110,235,199,249,55,15, +138,14,137,255,147,7,30,23,99,10,195,240,205,228,94,237,208,7,232,24,29,15,169,6,251,14,98,15,172,250,225,227, +111,231,194,2,81,13,246,255,186,3,143,25,162,23,226,251,159,233,227,237,240,245,119,245,152,252,76,18,137,29,122,21, +239,12,160,3,17,240,10,228,51,243,50,14,216,20,71,6,181,2,38,18,157,22,251,0,202,226,52,213,215,228,45,255, +145,6,10,2,110,7,118,11,27,253,173,234,159,235,49,1,252,20,184,19,57,7,40,2,184,255,115,246,174,241,167,249, +157,255,163,250,221,250,61,10,211,22,68,15,102,252,31,243,224,251,250,9,217,11,53,6,21,9,85,11,161,251,78,236, +58,248,13,15,221,16,145,1,214,247,221,248,179,254,208,5,148,7,92,253,135,239,195,238,76,248,90,249,174,243,24,249, +160,3,21,0,127,242,70,233,27,232,1,242,68,5,220,15,15,6,25,246,29,242,159,248,61,255,117,3,76,5,29,2, +209,253,15,254,131,252,171,244,19,243,13,0,85,15,252,20,223,18,101,10,113,249,28,232,243,229,11,247,71,12,1,19, +9,13,197,10,30,11,154,255,183,237,150,231,0,241,4,3,106,18,71,20,152,14,240,12,182,8,15,252,81,244,199,251, +44,9,70,12,182,3,40,0,236,6,198,7,58,254,196,247,154,249,2,1,33,9,87,6,93,246,216,232,217,234,217,250, +41,11,71,14,126,10,237,11,86,9,110,251,188,242,126,247,203,254,159,6,186,15,33,13,148,251,240,235,207,234,237,248, +8,14,148,21,21,7,82,249,202,251,132,253,8,244,81,238,61,245,65,0,34,6,10,4,216,255,2,3,181,7,153,253, +186,232,50,225,116,241,21,11,73,25,79,19,46,4,35,254,160,2,210,4,167,0,156,253,16,1,87,8,204,12,147,10, +19,1,201,243,203,237,25,244,101,253,26,7,166,18,83,17,199,254,176,240,148,240,8,245,189,249,250,251,204,253,32,10, +105,26,218,23,157,252,109,220,113,213,246,237,81,5,157,8,181,11,112,19,107,15,120,5,145,3,106,5,26,4,250,255, +117,252,2,254,110,5,6,14,194,13,189,0,91,247,66,251,241,249,103,239,250,243,135,7,30,13,106,1,189,0,80,18, +157,22,213,255,89,239,193,248,69,3,160,255,16,251,221,253,245,3,60,6,52,0,146,246,208,240,58,243,217,254,16,13, +97,23,201,23,60,1,84,223,62,217,174,239,27,0,21,7,151,16,227,19,149,12,245,0,160,243,187,235,169,237,61,243, +179,252,106,13,97,28,124,27,34,7,114,241,56,243,3,6,206,12,240,3,32,1,140,11,57,19,75,13,92,2,32,249, +157,238,54,235,184,246,221,0,184,254,204,253,250,2,205,3,3,0,81,255,4,3,90,8,127,13,176,14,123,5,61,246, +112,241,100,248,25,254,215,3,4,12,231,10,178,1,156,252,220,250,122,251,107,255,194,253,184,249,18,1,174,11,252,11, +61,7,2,1,189,246,128,239,102,243,114,0,13,11,189,6,172,250,11,250,193,0,172,251,157,237,157,233,250,243,169,254, +106,0,155,0,171,3,164,1,44,251,19,248,75,246,248,248,205,8,208,23,232,19,74,8,156,3,30,255,34,245,219,237, +42,243,206,5,159,23,62,24,160,11,226,1,76,254,37,249,170,242,183,245,224,5,240,19,206,17,143,8,165,5,179,1, +131,244,31,235,115,239,81,247,249,253,54,7,245,7,129,251,22,248,225,1,222,254,223,241,22,247,44,7,41,9,62,4, +52,6,65,4,196,247,28,241,250,249,15,2,131,252,0,250,132,9,210,24,98,19,142,255,12,235,46,225,123,239,109,15, +196,33,146,23,189,3,135,250,174,250,61,252,189,255,244,4,155,4,118,254,70,251,202,250,163,245,110,240,197,245,246,0, +250,3,92,255,76,255,160,2,37,252,16,238,255,236,51,1,147,21,248,18,25,2,127,250,116,250,3,243,12,236,250,245, +11,10,59,21,41,17,44,4,185,247,75,246,0,5,101,22,131,20,112,0,96,242,191,247,141,6,108,16,16,20,114,19, +247,2,185,228,194,221,11,249,66,12,151,7,117,6,230,9,197,2,249,248,128,240,104,234,210,247,80,18,96,24,21,7, +16,250,8,252,151,254,254,246,164,242,147,255,144,11,48,2,77,245,73,251,41,6,212,255,76,242,24,247,201,11,10,20, +144,5,203,245,24,250,134,11,169,16,231,2,215,244,8,239,130,237,221,244,149,1,67,7,221,10,23,13,143,255,88,239, +114,245,75,3,50,2,74,254,189,6,37,15,215,6,235,247,236,249,112,7,208,6,191,251,46,252,240,4,99,7,234,2, +151,251,95,246,168,250,242,4,193,6,135,251,83,241,246,244,68,255,226,4,242,7,148,7,66,252,183,240,57,248,207,12, +11,23,70,13,14,251,87,241,204,242,128,246,206,252,81,9,184,16,244,10,251,3,241,4,28,7,37,4,248,254,109,255, +105,6,217,5,230,248,117,245,37,5,36,15,15,6,180,252,197,253,209,253,101,247,211,242,223,245,119,253,185,3,130,4, +219,254,107,247,29,246,49,251,176,253,183,250,243,249,247,252,122,252,216,251,8,3,32,5,41,248,177,244,178,5,106,9, +18,247,37,242,99,254,38,2,196,1,113,6,8,4,38,254,151,2,102,10,40,13,78,11,121,3,4,254,36,4,50,12, +199,14,24,14,11,5,23,248,99,247,210,255,20,7,155,13,29,11,250,252,206,246,130,250,196,249,26,255,135,14,112,14, +184,254,22,250,240,254,120,253,147,249,179,248,31,248,232,247,205,249,165,0,26,9,238,4,47,246,149,241,54,245,200,241, +43,243,43,4,150,14,117,5,62,251,64,249,87,246,152,244,43,253,210,9,217,11,148,0,247,245,43,249,247,3,121,9, +149,9,24,5,172,250,15,247,176,255,71,2,190,254,91,9,172,20,9,7,112,243,149,244,147,254,22,2,44,5,75,11, +214,12,99,4,34,249,174,248,249,254,235,252,226,249,5,3,17,12,217,10,73,7,248,255,21,243,143,240,122,251,129,2, +146,2,108,5,26,9,176,4,170,247,209,238,233,246,41,5,167,6,75,3,248,6,154,2,85,241,201,236,235,251,137,5, +45,254,133,242,90,238,3,246,105,3,112,7,5,2,140,2,176,8,203,6,105,253,242,248,63,255,145,7,93,4,60,252, +35,0,10,6,94,255,133,253,57,9,47,12,33,2,157,251,222,249,188,250,82,0,101,2,111,255,4,0,6,1,174,1, +31,9,89,13,23,6,212,2,21,7,212,2,137,248,8,247,158,252,34,0,41,1,107,4,249,8,31,5,123,247,199,239, +132,246,73,2,254,10,214,12,218,3,147,247,167,244,255,248,128,252,132,255,122,1,99,253,140,246,33,246,190,250,232,251, +130,251,147,255,180,2,139,0,57,255,16,254,255,248,169,249,124,4,14,12,159,9,58,2,7,251,61,254,240,13,3,21, +76,8,155,251,218,253,226,2,10,252,138,240,226,242,195,0,191,5,114,1,159,1,125,1,204,252,143,255,43,6,31,2, +165,251,95,253,133,253,59,250,188,0,228,11,109,6,66,244,139,242,83,4,87,9,81,248,188,239,23,254,51,14,90,14, +248,1,101,245,130,244,72,0,194,11,128,11,36,3,148,254,54,254,174,248,2,246,101,4,190,16,77,4,105,246,53,0, +2,12,39,4,36,247,20,245,188,251,138,2,181,1,242,251,57,254,179,10,136,19,123,13,27,254,81,246,36,251,41,1, +230,6,2,17,246,15,213,251,4,240,60,252,92,10,240,11,123,7,79,253,43,241,199,242,180,0,203,7,130,3,222,253, +255,250,96,250,247,252,106,0,26,0,202,252,68,250,169,247,130,245,246,251,169,8,137,8,126,250,95,245,97,250,66,247, +98,244,173,0,32,10,176,2,171,251,249,252,182,251,233,250,56,2,71,7,177,1,173,252,218,1,26,7,164,3,167,2, +128,6,211,253,74,242,55,0,50,20,47,12,226,253,3,1,39,255,203,244,59,251,93,8,246,3,61,250,39,252,182,255, +197,249,90,244,83,253,40,8,199,255,144,245,35,2,48,13,167,0,217,247,146,255,232,0,180,252,213,1,114,5,181,0, +65,255,58,0,106,253,146,254,21,5,103,4,81,252,125,253,73,11,96,16,180,1,88,245,215,252,52,7,127,4,61,0, +179,2,130,3,205,3,19,9,174,6,53,249,153,248,96,6,253,4,197,249,6,2,118,12,230,254,135,244,102,2,4,12, +45,3,91,252,122,253,3,253,69,253,158,2,219,4,11,252,66,243,153,249,174,1,74,250,11,246,236,255,155,254,132,244, +201,255,180,14,121,0,44,237,37,242,61,253,72,255,63,4,36,10,123,2,76,248,155,1,105,17,146,7,139,236,97,231, +180,250,250,6,141,4,42,4,38,7,85,2,96,249,157,248,191,253,89,1,228,8,97,17,214,9,166,251,141,253,10,1, +130,247,80,251,161,17,104,22,120,5,103,252,41,255,158,254,145,248,53,245,190,250,11,3,234,5,169,8,74,7,135,247, +126,240,181,0,143,3,234,244,39,2,205,25,172,7,253,234,64,244,129,5,43,0,74,251,177,3,45,10,157,6,141,252, +87,245,185,245,245,247,153,254,171,9,186,4,81,244,233,249,128,11,25,8,54,255,74,3,245,0,92,249,162,255,27,6, +188,0,241,253,50,255,237,254,83,3,35,6,189,255,227,251,207,252,118,252,77,2,137,6,154,248,96,238,79,254,255,13, +117,6,236,250,12,255,245,11,164,13,236,252,66,241,158,252,28,8,19,4,220,4,228,11,178,3,145,246,70,250,52,3, +36,3,188,2,216,2,167,249,238,240,33,249,224,6,180,4,241,250,26,255,124,9,69,5,177,250,102,253,178,4,146,0, +109,252,208,2,254,2,143,249,100,253,243,8,201,1,60,247,156,0,234,4,178,246,51,247,82,9,65,8,43,245,100,240, +129,252,135,5,93,4,86,255,248,250,229,247,241,250,112,2,90,254,187,242,11,248,26,3,39,251,198,246,237,6,116,10, +249,248,200,242,59,249,137,250,139,254,4,9,91,10,250,0,85,251,102,254,146,1,36,1,98,6,200,15,59,12,10,0, +149,254,190,255,7,247,86,246,7,7,196,18,138,13,24,4,196,253,36,248,75,249,142,6,227,16,240,8,123,251,56,250, +134,254,167,253,135,251,94,254,191,6,152,13,193,8,159,251,170,241,40,239,209,247,112,6,244,6,230,252,84,1,25,12, +209,5,100,250,233,250,49,254,128,253,252,255,159,8,225,13,130,1,184,237,133,242,208,10,201,14,104,252,220,241,165,244, +119,250,151,254,211,251,27,249,112,2,165,10,127,3,117,250,97,249,239,249,171,252,197,2,212,6,68,7,84,0,47,245, +72,251,3,16,16,17,137,255,249,250,120,254,35,248,103,246,109,2,190,11,168,10,34,5,175,255,5,253,149,252,99,254, +185,3,40,6,122,4,5,7,231,6,242,252,184,249,19,1,55,2,120,2,123,11,214,12,238,1,128,252,219,254,51,255, +124,251,208,245,66,245,93,255,67,11,248,11,235,253,86,238,36,244,99,7,168,6,134,250,30,1,75,6,156,245,58,240, +236,1,234,7,143,253,165,250,49,254,109,255,164,0,243,253,248,246,206,246,28,253,253,254,64,253,18,1,60,10,168,12, +31,3,49,252,248,255,88,254,77,245,17,251,213,10,231,9,167,254,193,252,161,252,125,249,159,254,191,6,157,6,129,3, +201,255,8,250,235,250,49,1,95,0,167,252,4,1,20,10,161,16,110,15,0,4,103,249,195,251,205,5,85,12,199,8, +77,252,201,247,61,4,124,11,39,1,57,251,153,0,188,254,91,249,28,255,134,3,99,251,131,245,164,250,252,255,171,252, +74,244,150,244,243,2,64,12,156,3,111,249,30,247,202,244,58,248,228,4,103,9,246,2,12,0,20,254,113,248,242,251, +235,9,115,14,110,0,152,241,135,245,169,1,220,255,232,248,255,253,232,2,154,255,11,3,3,11,35,8,241,255,202,252, +98,252,229,251,167,251,153,0,43,12,177,12,60,251,35,242,88,251,204,1,139,4,229,13,33,14,171,253,127,244,197,255, +64,14,7,13,57,1,57,255,193,4,79,251,228,236,109,246,175,9,200,10,59,4,39,0,228,244,125,237,15,248,135,4, +136,7,116,7,98,0,146,242,14,240,168,253,153,10,41,8,6,251,11,250,82,9,70,11,39,251,138,248,254,2,155,1, +133,249,231,244,163,242,89,255,168,20,97,17,213,251,195,243,215,244,27,246,242,1,232,14,138,13,220,5,95,253,35,245, +94,248,230,2,113,5,228,4,80,7,178,5,118,3,71,5,180,1,229,249,177,250,255,0,243,1,161,255,13,1,237,4, +204,2,196,248,151,244,150,254,173,7,148,4,253,1,20,7,23,5,147,246,68,238,173,247,184,4,116,6,207,254,100,245, +133,243,98,0,158,13,73,7,41,250,226,250,132,254,176,251,110,1,122,13,94,9,11,249,255,244,248,254,213,4,241,2, +184,3,195,2,86,246,141,238,145,248,189,254,55,250,24,5,77,23,248,11,170,238,51,233,134,252,210,11,234,11,28,5, +48,253,245,244,181,244,171,0,177,7,156,0,13,254,18,5,151,2,226,246,40,244,81,251,97,1,111,4,141,6,162,2, +186,249,117,254,108,16,66,13,59,244,86,240,49,2,161,6,26,2,227,5,135,6,189,253,37,245,209,245,98,3,78,12, +230,1,175,250,0,1,72,255,69,251,61,3,181,3,55,250,41,252,176,2,76,4,17,12,140,18,15,8,178,246,43,239, +58,245,209,0,128,6,188,8,95,10,255,254,211,236,48,237,125,252,184,6,126,12,178,15,169,7,180,247,40,239,22,246, +200,3,28,9,121,7,32,9,37,6,82,246,224,235,82,245,26,1,22,255,13,253,159,5,199,7,68,252,225,246,205,252, +0,255,168,254,177,2,220,1,248,250,208,252,215,8,219,12,42,254,30,240,246,251,163,17,166,16,252,3,42,3,82,2, +219,250,2,254,115,6,208,1,194,249,18,251,128,252,34,252,116,5,241,16,123,11,49,252,46,248,232,251,49,250,213,250, +10,5,171,10,245,1,28,247,29,249,232,4,168,9,120,1,226,249,57,253,210,6,183,13,102,10,249,253,17,246,157,249, +150,0,53,6,234,10,68,9,222,253,168,241,61,242,56,1,59,14,176,11,60,2,87,253,17,247,29,237,81,239,2,3, +59,19,91,15,134,255,190,242,213,241,207,254,70,14,51,18,237,11,202,0,192,243,102,240,134,251,128,8,148,14,84,11, +19,255,15,248,131,253,52,2,60,3,87,3,200,250,192,245,179,1,9,4,70,243,10,244,123,9,101,14,18,255,148,244, +98,247,139,254,165,255,167,252,70,254,183,254,243,247,100,245,248,251,209,1,7,2,1,255,119,252,2,250,64,244,183,243, +242,253,163,1,29,252,27,2,91,11,68,2,188,246,31,251,50,2,13,3,186,5,88,10,27,8,44,254,31,249,54,1, +94,10,242,8,234,2,35,254,38,251,104,253,10,3,196,5,91,5,148,3,54,1,109,0,251,3,73,11,114,11,187,0, +255,255,197,10,133,2,7,241,18,251,177,12,223,7,135,3,15,8,92,253,156,237,32,241,245,254,154,5,242,0,134,249, +16,252,88,1,69,254,63,253,78,253,95,244,47,246,73,9,157,12,194,252,246,247,204,254,70,0,254,250,68,245,87,251, +57,13,169,15,196,252,161,242,241,247,241,251,85,2,233,14,128,17,221,4,43,246,193,242,169,0,191,18,90,18,209,4, +205,0,189,2,251,251,144,245,77,250,219,255,49,254,112,251,195,249,172,246,138,246,184,252,89,2,225,255,181,248,225,247, +138,255,34,3,162,253,200,251,132,255,12,251,98,244,255,252,150,8,111,2,129,246,120,247,55,254,236,254,170,252,51,255, +142,7,60,13,213,8,250,0,41,254,115,252,156,249,54,254,106,11,230,17,146,8,94,254,56,0,231,0,253,250,167,2, +26,20,218,17,188,2,225,1,190,5,31,255,46,253,182,5,108,6,162,251,196,246,51,0,145,10,20,7,1,253,88,251, +41,254,176,252,155,253,205,4,77,5,21,248,40,239,242,252,219,16,86,12,242,245,229,238,196,255,175,17,86,15,19,255, +224,248,33,254,195,251,140,246,215,253,124,7,106,9,139,5,198,245,10,230,150,241,78,7,81,5,125,251,15,0,234,1, +250,245,115,235,232,239,83,4,95,20,185,6,58,237,221,238,43,4,82,11,178,1,172,248,34,249,220,2,49,12,220,12, +157,10,112,7,49,253,184,244,235,250,231,8,88,17,255,12,222,253,224,247,224,2,59,4,172,247,31,254,50,17,82,12, +121,252,17,0,208,9,9,9,196,5,210,2,63,0,53,2,237,255,34,245,175,241,150,251,230,5,203,6,112,253,235,243, +252,246,99,253,73,250,198,252,212,9,181,6,134,245,22,248,102,7,16,5,17,251,221,249,242,243,224,232,52,235,244,248, +109,4,142,7,192,255,70,246,68,247,208,251,213,254,43,7,56,11,226,0,110,250,138,2,255,6,176,2,177,6,10,16, +72,8,81,245,173,246,195,11,173,19,114,7,156,251,162,248,204,251,90,1,51,4,178,7,223,11,111,5,129,251,6,253, +137,254,85,251,46,5,151,20,18,19,102,7,125,0,80,254,7,254,100,251,223,246,19,249,254,255,203,4,75,8,138,2, +152,240,108,234,169,248,66,0,240,249,15,253,99,8,103,4,198,247,144,249,3,255,246,245,16,243,205,6,176,19,146,3, +99,238,98,237,169,248,235,254,92,1,24,6,171,0,133,238,51,237,45,2,106,10,171,0,45,252,149,249,76,244,137,250, +156,6,255,8,91,5,132,0,17,251,3,248,180,247,191,1,1,21,200,18,137,246,161,236,179,0,93,13,238,6,170,1, +89,4,99,7,81,6,44,2,20,254,146,253,172,4,246,13,88,11,155,0,75,254,105,1,8,2,125,8,17,19,253,15, +130,255,73,247,83,255,57,4,119,249,54,240,13,243,163,246,108,252,142,5,42,253,87,235,44,243,209,5,187,253,208,238, +51,251,55,13,21,4,96,242,111,247,221,1,57,249,228,248,142,14,213,12,105,239,170,239,204,12,81,19,125,5,246,254, +99,251,246,250,81,6,140,13,220,4,55,252,208,254,22,3,178,0,64,1,141,13,245,17,168,254,30,241,24,253,187,2, +191,250,61,8,180,27,94,7,25,231,4,240,210,11,150,15,75,9,28,13,181,8,40,248,227,249,171,15,31,19,25,252, +44,239,246,253,131,17,14,19,232,7,193,2,135,2,191,247,35,238,134,252,218,17,226,17,162,4,41,251,179,246,109,247, +230,251,20,253,64,247,134,239,225,243,66,4,15,7,214,246,84,238,169,242,182,243,170,242,33,246,99,253,145,4,66,0, +138,244,179,247,96,2,111,254,25,249,118,1,147,9,185,9,2,6,188,253,137,248,104,0,43,12,182,12,17,4,209,255, +24,1,85,253,187,250,209,2,31,3,108,246,107,251,69,15,6,13,12,254,183,255,175,2,249,249,117,250,61,6,143,11, +106,9,181,2,117,249,164,249,72,1,135,0,112,249,55,245,49,244,22,249,245,254,240,251,104,251,244,3,49,3,111,251, +112,255,163,2,114,249,180,247,113,1,93,6,153,7,176,4,62,245,16,237,202,252,73,6,114,250,178,253,64,20,249,15, +44,242,220,236,151,3,132,17,116,14,100,7,115,254,171,245,173,247,150,6,26,18,78,14,95,5,196,251,144,235,66,233, +177,4,49,26,142,16,164,0,85,244,99,227,70,229,80,5,61,28,254,18,212,4,235,4,81,3,127,248,181,247,0,6, +111,12,220,4,187,2,69,3,133,243,49,232,157,255,119,24,251,8,248,243,105,250,85,248,211,233,47,250,36,17,56,4, +212,252,60,20,125,21,68,247,140,240,13,10,117,26,71,16,158,252,121,243,189,246,206,252,236,5,201,18,49,17,18,251, +53,238,209,246,196,249,90,248,9,8,53,10,119,240,126,246,64,27,23,14,52,221,150,219,78,0,32,20,180,14,233,249, +75,233,29,243,188,4,141,5,5,3,125,7,229,8,182,4,95,254,156,247,98,245,206,251,91,6,158,10,120,10,59,17, +120,21,161,8,138,245,174,230,103,226,9,249,15,21,36,9,170,235,46,239,74,2,198,0,237,246,32,251,142,7,74,7, +92,247,7,241,84,250,235,250,150,249,192,11,86,23,214,7,110,252,242,0,67,252,121,239,195,237,83,243,85,245,199,247, +175,5,101,27,137,31,180,9,103,245,48,242,85,244,102,248,138,1,22,10,47,12,171,7,237,5,217,7,15,249,195,229, +212,246,60,23,86,25,172,10,155,247,241,222,196,232,141,17,50,22,226,254,8,2,53,12,49,1,229,252,57,14,137,20, +215,245,147,217,213,244,197,29,104,23,70,8,242,8,152,235,27,201,205,225,231,20,123,35,88,17,113,4,43,9,74,0, +32,234,29,0,121,40,128,16,238,234,73,0,55,10,153,236,33,249,191,30,196,16,216,241,101,245,123,255,205,248,72,236, +180,230,116,242,41,2,6,2,172,3,12,19,153,25,91,17,77,3,188,243,27,246,137,7,131,7,67,1,184,5,109,250, +163,240,186,4,46,3,242,232,47,252,215,22,64,248,218,228,58,3,6,11,187,241,223,235,84,247,47,253,65,0,50,3, +45,2,97,254,30,1,25,9,125,4,39,249,182,252,63,7,142,11,82,8,29,250,199,240,186,247,59,252,118,2,244,16, +238,8,252,242,100,245,171,2,38,6,245,249,8,223,170,237,197,41,40,35,88,225,50,231,144,25,140,23,60,6,174,2, +216,238,193,235,229,9,19,18,136,252,98,241,98,251,46,8,112,254,92,237,205,254,9,20,18,255,229,238,24,1,68,2, +176,237,243,237,66,255,6,11,238,4,103,238,149,236,176,3,53,6,24,6,8,30,184,16,129,225,31,234,163,14,255,7, +167,5,156,27,171,14,88,244,220,0,226,15,99,253,147,236,51,2,77,31,49,8,95,220,88,238,192,24,144,11,82,240, +34,248,25,254,252,246,72,251,60,4,120,7,9,5,25,253,126,248,154,248,75,255,130,18,210,22,7,254,247,241,250,248, +73,236,128,221,148,242,58,16,134,15,7,254,48,247,187,250,249,6,210,29,175,26,220,239,126,235,128,32,200,36,211,244, +67,252,68,29,103,3,204,236,84,10,31,19,213,253,27,9,255,22,28,242,250,209,37,239,185,20,0,12,191,245,42,244, +27,245,12,245,169,6,190,19,84,254,0,232,189,246,150,7,52,251,247,247,245,10,183,5,218,237,239,243,21,4,103,251, +10,255,219,30,90,34,54,1,4,244,14,252,52,249,137,255,248,16,43,4,240,239,254,255,172,17,191,13,255,11,161,254, +97,229,102,234,84,3,81,21,200,34,246,11,224,215,77,217,221,6,233,19,193,14,32,12,161,242,48,226,180,241,4,240, +154,231,112,14,207,52,82,23,235,232,204,236,58,1,6,255,184,2,250,17,90,16,150,9,105,4,56,242,30,243,204,13, +210,7,121,238,255,252,145,21,36,14,199,250,212,234,100,232,244,253,148,13,238,1,231,247,171,5,4,21,5,5,235,235, +58,252,32,20,33,0,26,244,82,6,177,250,32,236,40,11,100,22,171,245,112,233,114,244,171,254,120,11,227,1,243,229, +181,223,211,224,152,237,25,33,93,41,32,224,66,201,161,253,241,5,50,254,201,35,224,20,186,210,48,233,37,49,157,43, +184,2,244,248,152,248,3,6,13,33,78,29,86,0,28,238,137,238,144,5,248,22,95,254,10,234,77,0,148,10,200,251, +147,3,16,9,18,238,253,238,83,26,60,32,252,247,130,236,129,6,5,18,219,4,228,246,241,241,79,243,85,251,137,9, +91,6,91,227,152,213,53,0,80,28,94,255,111,232,218,242,249,250,173,253,232,2,228,1,148,254,226,253,156,4,150,19, +17,17,72,252,9,248,143,254,239,251,167,253,29,0,196,247,116,250,120,17,68,30,144,5,110,226,80,235,184,11,18,14, +63,12,86,15,44,241,161,229,176,11,255,11,255,237,9,0,179,16,46,254,210,8,185,32,68,10,127,230,174,240,62,23, +47,13,26,220,254,234,253,23,135,4,26,255,188,26,138,233,173,201,250,23,78,36,58,215,136,233,41,37,126,4,241,220, +199,244,22,14,5,6,158,248,231,6,13,16,62,234,59,224,190,18,22,25,70,248,248,2,51,4,28,232,138,253,141,32, +76,15,19,251,175,1,10,10,253,17,73,18,150,4,83,251,22,253,6,3,110,0,177,243,243,251,189,15,120,255,184,236, +26,1,56,8,19,247,198,0,47,11,31,248,138,244,60,255,135,243,205,240,23,6,84,8,58,255,94,6,188,254,195,232, +108,243,77,11,40,10,197,6,172,4,13,245,126,247,187,9,163,7,65,9,204,13,212,237,73,227,214,15,68,20,168,242, +77,2,82,12,29,234,21,253,250,45,52,13,126,217,5,241,74,17,41,2,21,250,182,14,164,17,78,255,176,254,63,3, +90,245,59,250,151,17,122,7,250,248,210,5,89,249,96,230,197,0,208,8,172,240,171,252,0,0,133,227,161,1,69,43, +25,249,174,206,165,5,251,43,47,248,156,211,94,1,192,26,235,236,186,237,254,25,197,242,217,214,152,37,90,45,93,219, +178,233,207,17,184,237,181,251,253,48,24,25,78,244,210,244,220,245,60,5,219,15,152,252,162,237,143,228,110,248,88,44, +171,22,119,226,179,10,110,17,191,204,110,245,21,60,229,1,73,229,197,29,117,9,247,213,73,246,47,30,89,9,72,230, +99,239,231,21,199,12,223,228,105,244,152,27,109,28,192,5,114,232,198,231,61,12,182,16,11,1,14,11,59,252,103,236, +182,14,126,6,213,210,101,231,4,19,211,1,7,227,200,223,221,1,2,38,69,11,18,249,77,35,134,17,205,215,192,247, +116,31,16,14,4,32,66,47,4,246,154,212,251,247,229,15,5,246,66,213,243,237,41,34,87,16,92,224,88,235,123,255, +215,253,110,12,62,5,51,226,181,234,189,10,75,15,72,15,18,11,199,246,132,244,153,4,206,5,73,254,17,254,72,254, +253,251,216,3,40,22,177,20,12,251,154,245,25,3,152,246,177,228,13,245,252,9,111,9,244,7,65,6,151,245,102,233, +76,247,176,13,252,24,104,29,52,16,31,238,108,237,233,25,196,28,180,237,86,246,209,45,179,32,235,228,239,232,42,17, +244,7,127,246,38,16,250,18,140,235,189,235,43,10,174,1,221,243,245,252,38,244,234,240,79,14,55,21,150,2,52,1, +250,0,164,2,2,16,210,249,107,212,91,234,93,19,32,14,212,248,105,240,202,239,251,246,186,253,79,5,221,11,24,252, +168,236,87,255,251,26,170,33,32,9,110,232,107,250,5,18,108,227,72,215,249,22,25,9,227,210,168,1,24,31,27,230, +14,233,185,21,14,1,249,238,47,10,188,16,226,243,250,225,82,5,189,35,119,234,98,207,95,33,40,42,139,222,63,253, +170,53,26,3,216,221,223,250,105,20,177,32,191,5,34,224,245,0,245,23,62,245,43,3,101,21,81,229,116,239,190,44, +197,11,70,208,229,236,80,30,241,31,13,6,102,242,179,243,114,249,141,3,252,26,240,17,33,227,38,216,61,249,100,17, +25,18,43,3,87,243,89,238,131,236,90,245,30,7,190,7,240,3,22,2,232,240,108,1,68,53,132,30,96,214,203,225, +225,20,217,17,138,13,251,24,121,249,152,223,147,6,75,32,247,250,112,230,58,3,62,11,45,241,157,236,102,249,174,244, +239,245,212,11,78,13,136,252,236,8,125,19,0,233,73,207,153,255,167,32,23,8,185,0,143,4,244,232,236,229,8,9, +142,17,180,0,100,243,20,238,47,255,59,15,88,7,224,6,244,253,181,230,92,9,19,52,15,3,90,219,55,2,208,8, +65,248,67,27,98,25,198,224,109,234,92,18,226,242,61,213,232,247,253,10,28,253,19,12,127,18,164,229,12,217,200,4, +223,12,95,254,222,19,106,13,250,228,18,244,121,15,65,249,116,254,199,29,205,253,109,213,143,245,160,27,117,15,220,252, +52,251,186,247,177,251,58,18,162,19,245,239,106,234,75,23,231,38,189,6,113,240,230,235,207,244,218,20,60,31,246,0, +56,249,102,18,67,12,34,227,255,222,245,19,16,39,163,237,60,220,6,23,54,18,1,218,184,254,48,46,163,243,39,217, +177,30,229,43,24,243,10,230,242,244,62,248,70,14,111,28,136,252,80,229,167,255,108,23,61,1,224,225,223,232,207,11, +240,34,82,20,114,239,239,241,158,27,218,16,214,223,143,243,18,28,50,2,47,244,168,13,171,250,124,232,130,13,29,11, +77,226,74,247,122,21,14,2,194,14,104,47,62,3,136,204,31,232,100,12,151,7,132,15,5,15,83,229,53,226,76,18, +157,22,243,249,61,251,2,250,174,237,61,254,90,11,126,249,57,244,107,9,64,25,94,9,174,227,238,227,177,13,130,15, +66,240,126,249,97,12,76,252,80,244,115,4,192,10,232,0,248,242,28,240,88,5,214,27,122,14,249,234,236,229,240,252, +143,1,21,11,110,41,86,14,237,216,23,255,236,41,134,247,225,230,5,14,181,250,209,243,127,38,81,11,134,192,216,213, +52,25,40,43,75,20,179,238,25,229,174,7,169,26,168,4,196,230,167,222,34,251,79,17,25,246,71,225,143,246,55,9, +224,15,190,11,251,237,152,222,202,241,77,4,209,19,71,17,242,234,125,234,240,31,185,37,137,2,66,5,3,9,144,245, +139,255,116,7,7,230,142,232,75,30,94,36,101,251,195,241,98,245,164,237,34,11,230,48,197,14,189,216,85,229,116,11, +220,17,117,11,146,8,241,3,64,255,1,250,46,254,42,15,166,11,253,240,55,241,68,10,202,7,106,243,60,249,48,9, +208,1,143,243,240,249,187,13,169,19,199,4,253,250,62,250,150,232,230,227,116,15,59,36,211,254,208,248,69,15,186,235, +61,210,225,10,253,36,232,247,43,242,165,9,189,242,123,234,91,18,176,19,101,244,43,7,160,32,208,252,57,222,75,245, +182,254,115,234,234,245,120,14,244,249,19,227,130,3,105,35,47,7,107,236,237,8,126,22,120,241,211,236,202,20,7,22, +242,249,36,250,53,248,125,226,15,241,51,33,193,32,206,227,125,207,232,10,8,38,51,247,219,241,33,26,232,5,136,234, +71,19,89,32,22,247,121,250,3,19,245,252,14,240,67,6,4,1,208,232,173,249,59,27,86,15,17,234,154,232,180,3, +179,14,174,4,167,244,245,241,128,5,122,6,39,240,78,1,116,25,186,250,49,251,156,38,252,242,129,174,84,5,35,92, +169,14,117,202,70,244,10,3,0,236,241,1,148,24,102,18,47,18,24,254,96,217,105,234,72,29,237,34,158,2,41,239, +71,241,240,249,157,1,236,9,76,15,2,8,128,250,123,243,224,242,203,254,4,21,91,17,168,238,191,231,118,10,117,20, +250,249,217,246,77,2,9,242,91,243,97,24,132,16,141,229,38,245,189,21,70,244,143,216,240,5,43,38,79,254,0,221, +157,245,102,15,61,15,189,22,124,15,77,228,99,221,211,10,6,29,233,18,7,15,119,249,217,234,230,250,68,238,249,223, +80,20,161,48,199,252,211,231,12,7,51,7,14,249,177,1,144,254,72,241,3,252,87,9,151,253,4,247,93,9,187,9, +146,237,20,237,203,9,132,18,93,12,228,7,170,0,3,3,137,0,100,240,241,254,19,22,92,0,226,236,136,235,227,218, +164,243,66,40,239,15,67,234,88,1,252,246,159,218,217,6,168,36,94,5,51,1,57,8,14,249,131,7,215,20,200,248, +151,247,204,26,76,25,235,238,231,221,151,10,41,41,202,241,177,215,44,31,225,37,139,223,184,247,85,37,203,243,167,238, +98,33,131,248,217,217,23,39,138,44,74,202,128,195,191,14,6,22,123,246,174,9,20,34,77,3,88,229,26,250,94,4, +239,241,25,9,169,34,104,244,227,216,190,2,185,6,119,231,200,254,82,23,141,248,69,233,241,7,10,26,235,0,65,229, +49,247,218,10,88,233,110,224,197,23,79,32,113,244,210,250,65,11,112,240,29,246,217,24,2,11,66,244,185,3,221,6, +90,244,185,251,220,18,197,15,197,248,144,243,123,6,209,14,139,254,186,242,170,242,103,234,95,240,110,25,79,38,22,246, +98,225,171,3,164,2,160,236,194,13,219,31,33,245,250,242,226,19,44,249,183,224,66,13,178,36,87,1,169,243,162,15, +213,22,242,240,123,220,179,2,172,22,218,244,213,248,243,24,183,248,95,219,184,1,231,9,121,235,217,0,88,27,251,253, +198,231,46,245,223,3,248,17,230,24,106,7,51,240,105,234,58,245,8,0,178,0,157,7,242,17,244,4,23,244,208,242, +243,233,155,240,224,27,22,39,219,1,65,242,109,244,141,239,16,10,132,36,184,251,21,212,151,250,66,32,94,0,116,232, +103,12,209,27,208,243,81,235,221,19,179,23,156,246,248,243,117,4,73,8,78,16,127,20,134,248,139,219,105,241,6,22, +213,248,81,203,139,248,93,42,2,239,86,203,5,16,218,29,66,238,116,13,223,37,31,227,225,217,8,30,208,32,143,5, +88,24,75,12,154,221,222,234,29,24,159,23,105,0,4,247,186,238,52,236,253,3,183,30,234,21,122,251,118,247,193,253, +171,247,43,248,153,4,43,4,19,250,17,249,192,251,72,250,129,246,50,244,150,255,79,22,222,24,69,255,106,240,182,2, +34,20,32,6,254,249,14,12,225,9,56,226,233,228,96,18,89,15,58,251,214,19,86,4,183,203,89,245,40,65,57,15, +108,206,219,0,189,34,103,236,135,221,22,14,107,25,144,255,191,2,207,14,237,240,4,224,213,22,200,44,195,227,146,213, +71,32,177,19,231,220,206,20,69,48,154,211,190,203,28,44,57,38,220,223,150,237,56,12,232,240,107,224,187,249,16,10, +88,249,73,239,148,19,112,47,161,1,241,212,89,242,182,12,202,250,15,3,246,28,29,6,60,226,49,234,140,255,117,254, +139,247,171,253,215,5,90,254,13,247,223,11,244,30,55,6,15,237,12,2,70,16,49,246,58,244,14,23,116,14,53,219, +70,222,172,25,164,36,34,247,148,246,246,26,62,255,181,210,33,255,50,47,110,7,8,240,169,18,4,9,183,232,167,254, +215,12,197,243,199,239,229,245,243,242,37,6,47,18,228,0,194,254,199,254,16,236,79,247,140,16,115,1,238,242,76,6, +239,22,242,20,64,255,90,230,49,245,209,13,232,0,14,255,154,17,124,253,2,232,186,0,55,13,72,253,41,2,167,12, +236,251,219,234,167,250,148,21,0,7,142,232,227,3,173,30,120,239,241,226,237,32,222,26,242,226,198,253,140,30,42,235, +70,204,12,246,109,24,56,17,202,253,197,252,136,6,134,246,127,237,240,18,135,31,87,254,125,253,173,5,78,238,9,251, +248,28,5,9,104,240,45,245,94,241,25,1,10,25,86,251,192,237,33,22,35,11,111,231,142,11,202,33,226,250,105,248, +0,6,155,231,91,235,89,33,69,42,231,254,201,219,203,223,73,2,39,8,223,236,237,254,236,29,0,250,44,229,200,14, +160,7,79,219,201,244,192,17,217,236,106,231,215,20,122,15,100,230,30,234,43,254,209,249,183,5,130,33,110,11,86,222, +60,244,169,31,95,2,132,227,66,18,62,45,5,250,162,219,89,251,185,24,3,21,232,250,182,228,163,238,1,2,235,7, +219,19,227,15,127,233,241,226,102,9,183,19,162,6,33,13,141,8,216,238,12,237,221,7,155,26,102,10,44,236,247,246, +215,18,247,252,202,234,167,17,237,25,17,239,209,239,203,10,200,253,233,242,166,3,195,9,114,3,42,252,51,251,187,11, +108,15,79,0,251,7,113,6,135,227,141,235,30,17,108,254,135,231,167,1,253,12,30,0,226,248,42,238,75,1,99,37, +13,9,103,229,165,4,171,13,209,243,76,11,70,28,98,255,197,5,21,22,208,240,135,214,79,239,84,15,177,17,103,237, +244,223,146,9,218,7,177,225,21,7,85,36,46,239,91,238,141,22,117,244,160,237,5,39,82,22,59,233,252,252,244,253, +186,237,69,15,251,25,254,251,10,252,210,250,218,233,132,0,137,26,130,3,38,230,172,244,54,35,246,37,95,234,100,229, +35,28,173,4,40,219,246,17,119,34,211,220,147,233,43,44,131,18,75,228,123,250,44,13,17,245,245,238,172,21,30,28, +60,219,64,217,7,59,160,53,31,208,52,234,211,39,85,231,225,223,70,59,179,25,173,201,46,2,74,44,20,240,54,230, +243,10,127,0,147,252,153,13,80,245,84,221,72,255,100,40,11,24,155,227,26,218,58,2,59,9,122,246,128,15,212,21, +217,223,140,226,214,30,113,22,0,248,116,15,102,6,198,227,145,2,103,15,5,220,83,231,240,25,10,253,213,229,116,23, +154,24,77,219,45,220,234,24,206,43,177,2,186,229,239,249,98,4,165,245,147,17,131,39,183,233,249,206,101,16,215,22, +254,230,118,3,81,29,85,235,104,234,78,37,147,25,223,221,190,223,83,12,193,18,63,252,63,5,200,16,164,233,172,218, +199,16,48,29,121,238,245,241,216,19,231,12,39,254,244,245,159,235,242,254,74,18,145,255,131,248,131,253,86,229,1,228, +159,12,160,20,252,255,231,0,106,250,88,230,224,249,235,28,138,12,65,236,40,251,178,11,70,245,218,251,134,33,225,255, +128,189,42,225,42,49,7,30,253,214,229,216,192,18,73,42,107,21,230,4,88,250,118,227,84,236,161,33,124,44,175,252, +206,241,199,15,35,5,165,233,214,4,218,38,161,8,144,230,119,254,62,9,21,234,9,246,125,26,125,5,210,243,85,16, +89,9,77,237,30,254,117,6,88,246,165,4,236,18,95,10,242,9,117,252,96,242,38,19,248,12,31,210,238,225,178,31, +77,22,176,253,43,12,156,5,121,240,192,243,96,249,39,255,13,7,44,0,227,1,232,7,167,238,210,228,97,7,122,17, +10,255,40,2,182,254,46,240,100,7,206,30,28,7,168,240,141,243,243,250,120,16,164,25,155,244,232,225,16,1,114,11, +67,1,166,11,3,0,98,230,179,252,94,10,131,233,103,243,2,27,218,5,93,237,179,12,206,27,186,3,193,241,155,237, +227,0,204,28,177,11,109,236,251,244,182,249,189,237,61,4,103,30,238,6,38,228,244,225,233,246,244,16,186,27,60,6, +179,230,9,235,241,12,131,16,202,250,114,4,255,8,179,228,28,234,119,22,161,2,84,230,45,18,41,34,162,247,92,247, +16,8,84,241,228,246,192,29,160,21,41,240,123,236,110,0,76,7,228,255,45,4,208,15,147,254,149,229,49,244,4,13, +171,11,202,5,195,2,59,253,14,4,81,14,217,8,5,254,54,253,154,8,210,12,160,249,4,242,255,6,38,9,110,249, +206,255,40,0,110,236,228,243,15,13,140,8,98,241,101,232,181,243,210,255,52,252,0,2,97,23,241,13,202,238,140,234, +86,241,183,246,47,14,239,26,246,7,228,242,55,234,195,249,91,26,226,16,101,232,247,235,242,5,19,9,173,17,222,21, +58,247,148,227,188,248,194,15,252,13,187,254,209,249,182,253,195,245,13,249,38,16,6,4,139,230,160,249,68,15,238,254, +35,253,136,255,14,233,21,244,33,29,34,26,79,251,246,239,129,240,31,248,130,4,139,9,223,6,143,245,120,230,5,0, +197,29,146,12,222,249,241,4,145,1,215,243,128,5,71,26,169,6,85,235,214,248,81,21,58,16,161,249,12,244,167,255, +252,19,159,14,172,221,61,213,199,19,191,35,144,249,96,255,172,11,161,228,169,233,153,27,46,15,158,241,217,11,33,25, +109,0,38,0,99,11,173,246,202,229,74,3,78,35,43,3,7,208,90,235,156,38,198,22,106,238,83,251,182,255,21,230, +184,253,3,40,93,12,11,229,164,250,32,11,209,246,0,1,18,29,101,12,21,243,35,250,130,253,92,247,135,1,234,8, +149,254,138,246,223,250,253,2,178,252,1,239,164,254,138,18,18,252,166,238,122,2,39,247,119,238,92,25,146,21,133,223, +10,251,81,48,64,5,213,218,238,0,70,14,161,224,46,218,223,17,206,46,58,4,98,224,243,245,179,249,134,228,186,10, +174,45,32,250,131,224,245,14,45,10,99,224,175,249,47,30,123,7,107,239,91,253,192,9,17,247,36,227,164,251,37,33, +122,22,196,251,156,252,236,251,168,250,191,13,45,15,237,247,236,241,178,247,249,251,83,9,191,11,116,250,5,238,223,234, +86,250,42,27,150,21,215,238,11,244,186,15,88,3,20,242,205,245,69,251,86,21,209,39,98,249,4,213,71,252,150,18, +206,249,203,4,63,25,167,250,81,235,246,16,231,32,106,254,176,229,176,254,159,31,241,12,102,234,137,250,4,19,3,5, +247,254,188,4,63,243,244,242,64,17,232,21,236,1,5,241,142,227,104,242,1,20,197,20,204,8,68,5,56,233,11,223, +74,16,75,37,138,252,125,239,220,11,234,19,169,255,231,231,107,232,103,13,178,37,187,11,68,237,14,237,219,239,171,241, +118,13,131,40,210,15,244,226,185,228,244,4,34,17,99,5,205,238,145,231,11,1,31,11,85,247,97,1,112,16,197,241, +78,237,79,20,161,11,192,239,95,4,155,10,17,241,192,251,51,14,215,251,68,247,224,13,83,12,200,243,81,237,115,254, +225,11,63,3,231,241,65,240,90,255,221,9,23,7,93,5,36,255,156,235,98,246,220,28,4,10,30,224,31,3,1,29, +100,229,72,225,87,30,29,15,91,226,248,255,213,24,244,249,94,231,213,246,254,17,250,32,56,10,40,236,124,240,254,8, +164,30,136,21,242,234,34,230,57,12,151,9,142,245,252,7,238,6,153,235,138,247,211,8,93,252,34,4,102,21,21,2, +197,236,47,247,63,7,5,1,30,237,188,248,25,32,172,18,46,224,214,241,8,30,26,1,206,224,222,255,95,11,41,240, +13,251,163,18,45,251,247,231,186,255,155,10,221,249,5,255,241,11,159,243,169,229,27,17,246,37,118,242,175,221,157,20, +236,40,227,249,59,232,57,2,3,3,19,246,250,11,114,30,156,253,25,226,25,0,231,23,109,6,152,7,5,11,78,225, +164,218,167,17,105,25,20,249,14,1,32,6,222,244,50,255,238,1,237,234,56,241,144,4,91,10,225,19,70,4,178,233, +214,253,161,10,13,242,147,254,3,25,114,9,15,252,49,245,119,233,42,0,33,14,245,246,79,1,205,9,187,230,87,251, +22,38,130,248,141,219,252,8,99,8,107,242,40,16,37,15,119,234,169,243,53,9,3,6,85,254,228,240,229,252,211,33, +170,13,82,227,134,253,23,18,218,243,184,5,193,43,246,252,201,205,77,248,145,24,116,255,245,5,1,28,167,243,151,211, +61,1,255,30,23,249,24,230,57,5,220,24,190,7,189,240,250,246,143,15,219,14,226,255,26,253,115,236,9,232,73,26, +81,42,178,238,95,222,15,4,49,0,127,250,143,27,158,23,90,240,240,227,6,236,247,6,15,33,42,254,132,217,52,5, +108,38,167,1,209,244,206,13,21,7,100,247,77,5,71,18,93,4,176,233,238,237,239,24,24,31,253,243,155,241,240,6, +8,236,32,234,166,35,93,29,39,217,7,222,142,15,213,4,41,239,161,9,129,19,130,245,247,242,132,10,68,3,85,242, +68,254,254,5,122,250,196,252,162,9,3,14,137,12,142,0,180,247,138,1,131,252,118,241,51,20,98,45,222,253,96,214, +146,235,19,255,187,1,113,12,198,8,165,247,21,249,223,0,220,249,18,250,161,17,134,25,53,247,246,225,34,249,125,6, +250,6,64,26,227,15,55,234,185,241,165,252,214,228,51,250,103,36,44,8,48,232,169,3,110,18,245,247,73,229,213,247, +83,32,48,27,122,221,179,207,186,7,182,34,195,16,15,6,16,252,179,228,91,224,140,4,186,35,145,10,175,235,20,255, +42,11,194,251,205,7,66,14,30,246,79,4,163,31,190,0,63,227,117,245,234,2,4,0,40,4,93,7,206,0,142,243, +252,241,218,3,145,9,13,254,182,246,51,239,156,253,55,37,20,27,172,231,153,230,150,8,75,23,23,18,162,243,254,224, +64,252,156,5,253,253,24,30,116,28,48,224,100,215,249,251,139,13,20,29,78,11,138,212,238,219,232,14,213,20,128,8, +81,254,140,239,239,5,77,30,204,253,44,231,245,0,37,14,13,6,110,8,125,9,149,243,128,221,120,250,27,39,167,10, +73,224,24,252,252,7,19,236,34,2,145,21,161,244,87,252,79,29,190,10,127,246,93,243,60,236,125,7,138,26,148,247, +252,243,64,7,77,231,195,231,75,30,246,21,10,237,136,242,163,249,170,3,155,30,182,11,232,239,170,4,2,0,112,235, +67,18,145,28,208,224,216,221,55,17,228,14,213,242,107,245,23,1,81,6,60,254,119,242,18,255,167,6,70,248,36,2, +15,15,64,250,125,246,155,2,26,247,55,1,218,24,2,0,16,236,153,1,111,8,83,11,1,21,210,255,231,249,7,16, +212,252,119,241,132,21,107,9,171,231,242,6,148,17,180,233,136,243,192,17,86,3,54,248,131,246,85,232,225,249,184,29, +232,18,224,245,60,255,231,13,222,246,39,233,48,11,183,28,104,3,141,250,149,245,91,228,105,5,186,37,243,247,24,230, +178,14,81,254,45,227,251,3,1,10,178,249,144,11,250,0,246,233,214,10,222,30,50,5,206,247,150,246,225,255,160,12, +138,248,28,252,243,35,209,2,155,205,39,248,58,30,73,0,116,245,131,248,14,245,246,13,200,16,157,243,170,252,199,4, +87,241,85,3,184,18,40,246,195,250,82,17,124,250,142,241,65,6,68,254,229,250,174,18,176,12,219,242,27,241,123,247, +207,0,26,17,2,10,164,245,165,249,137,250,85,231,18,248,86,33,58,14,99,226,50,247,236,18,43,255,188,8,52,35, +133,249,165,215,176,2,67,24,195,255,118,1,215,4,133,244,186,248,14,253,184,249,155,9,229,254,215,228,65,7,117,25, +16,228,72,230,166,24,82,2,157,242,34,27,177,255,251,206,100,1,6,40,35,249,231,230,116,4,180,10,92,0,248,251, +84,255,67,3,153,244,121,243,120,15,27,4,255,226,23,254,29,28,0,255,84,237,93,3,247,16,191,11,182,254,34,248, +82,253,193,251,135,2,94,18,179,251,55,231,163,10,212,22,149,247,228,253,7,12,183,246,7,243,166,253,102,249,208,254, +220,3,58,6,202,23,209,7,195,226,61,248,169,19,208,253,240,254,146,19,29,0,241,239,137,254,129,7,36,7,137,1, +200,253,214,7,33,4,166,247,45,3,220,2,108,243,202,5,212,15,85,246,34,251,139,11,202,243,216,238,149,16,123,21, +101,255,89,251,192,1,68,254,19,247,68,251,9,8,163,11,24,5,163,253,107,252,213,5,57,4,250,244,138,0,63,18, +108,253,162,239,210,251,84,247,239,1,118,35,140,13,139,222,194,239,54,21,21,10,214,233,45,232,174,9,137,25,227,2, +185,249,195,251,151,237,170,252,18,21,123,252,44,247,154,20,182,251,184,225,167,8,246,18,191,241,78,242,93,253,11,255, +54,12,160,2,241,239,108,5,37,17,18,247,11,245,73,10,68,5,53,244,214,248,253,6,1,2,204,246,141,4,93,16, +96,253,190,244,206,2,138,1,63,253,32,8,38,8,141,254,222,251,57,249,163,251,11,3,29,2,82,5,181,11,15,254, +215,242,23,4,27,15,88,254,169,244,127,255,80,2,27,254,42,7,123,3,232,234,126,244,38,20,131,5,4,241,182,10, +77,15,172,238,71,244,246,17,179,15,30,2,165,251,57,245,79,255,16,17,107,8,108,245,119,252,175,9,192,250,67,238, +190,3,239,12,59,246,93,244,24,4,224,1,216,1,128,253,13,232,122,245,178,23,100,14,11,253,62,251,25,234,109,246, +97,32,49,18,156,242,44,0,240,249,62,231,27,10,222,29,30,249,210,236,17,253,226,250,22,4,242,23,206,2,137,230, +217,254,144,24,238,252,205,236,112,9,10,6,220,235,243,5,32,22,64,239,68,244,31,25,24,253,67,232,34,16,237,11, +212,227,94,250,108,24,83,253,76,237,120,2,177,8,172,0,156,3,251,2,180,250,227,254,184,7,10,255,206,241,135,247, +35,8,195,12,191,253,150,241,46,1,99,15,251,252,103,241,7,254,193,251,133,248,155,9,114,8,209,253,155,6,84,251, +247,232,99,5,124,25,80,254,147,246,145,2,14,246,51,247,227,14,35,7,26,240,236,248,202,11,190,5,183,246,162,252, +162,8,93,255,147,253,110,17,122,6,20,233,21,250,218,14,142,247,179,244,45,14,69,2,123,241,150,7,46,15,184,251, +118,250,107,0,127,253,72,2,173,2,198,251,158,0,63,252,0,241,0,6,69,18,188,242,162,242,81,20,134,1,185,231, +160,7,179,14,148,237,123,253,231,20,161,244,102,238,65,23,102,20,203,241,112,243,236,3,47,8,214,11,194,4,151,247, +170,255,55,11,132,2,192,251,11,254,138,248,215,249,40,9,238,7,172,249,33,254,196,4,119,250,129,252,224,11,194,6, +248,251,97,3,114,3,8,249,178,1,49,10,221,248,76,240,235,254,159,1,6,253,25,5,198,255,206,242,225,2,104,13, +234,247,60,248,99,11,196,254,190,246,244,10,183,8,233,251,60,3,245,251,6,244,245,10,79,13,248,245,166,250,146,2, +143,251,79,10,241,16,228,245,143,240,185,3,104,4,107,2,122,8,110,3,183,254,80,2,84,1,197,254,130,254,55,254, +167,254,95,252,17,254,252,5,142,1,140,249,173,2,129,8,69,0,63,252,240,250,199,252,111,7,223,6,169,251,121,252, +240,255,191,254,35,3,179,2,163,250,182,248,229,251,140,4,202,10,168,253,189,245,210,3,62,5,232,252,19,5,190,3, +74,246,204,253,28,7,166,255,115,255,74,1,147,248,81,250,85,6,239,6,96,254,172,252,56,4,101,1,106,242,230,249, +16,13,125,0,81,244,189,6,149,7,35,247,92,254,106,255,251,241,75,1,151,17,163,255,66,245,213,255,43,2,64,0, +246,254,142,251,27,3,173,8,255,252,91,250,172,3,219,254,237,249,152,3,30,4,36,251,239,254,193,4,225,254,137,254, +155,7,230,4,110,249,138,251,184,4,163,2,183,253,59,1,220,5,192,4,83,253,22,247,92,255,187,10,96,3,42,249, +191,254,223,1,193,253,196,2,252,4,56,251,1,253,4,8,67,0,33,243,233,249,180,1,165,253,44,3,101,11,98,253, +116,241,8,1,255,10,173,252,198,246,16,1,115,3,40,255,117,255,237,255,118,255,216,255,42,255,9,0,239,0,21,254, +8,254,86,1,55,0,194,254,220,0,182,0,100,0,211,2,242,1,222,254,0,255,33,0,112,1,101,3,158,2,118,255, +229,252,192,253,192,3,114,4,82,249,198,246,244,4,63,7,216,247,31,247,163,6,245,7,129,253,237,253,99,2,191,254, +198,254,250,5,138,5,238,253,92,252,18,0,199,0,231,254,132,255,96,1,245,254,155,252,12,0,29,255,123,249,214,255, +234,7,48,0,136,252,0,4,1,0,195,250,249,3,86,5,41,252,97,252,191,254,1,255,25,4,126,1,253,249,117,254, +123,1,9,254,247,3,151,5,234,250,125,252,195,5,55,1,103,251,127,254,107,255,49,254,112,0,119,3,65,2,133,251, +88,250,214,3,193,6,242,255,55,255,21,0,12,252,125,255,15,6,155,255,28,247,30,254,27,9,210,5,84,253,122,254, +207,255,243,252,137,2,87,6,10,253,240,251,152,3,145,254,189,251,27,5,211,2,175,249,168,253,216,2,139,0,195,253, +55,253,196,2,236,5,22,253,250,250,10,3,212,0,230,253,192,2,253,254,37,252,33,4,151,3,126,254,225,1,210,0, +58,253,117,0,3,0,110,254,166,1,226,255,29,254,146,0,134,253,156,253,204,3,242,0,112,252,100,253,46,251,155,255, +57,8,6,1,179,249,250,254,192,254,129,255,157,7,177,2,175,250,243,255,184,0,199,253,186,2,213,1,10,254,86,2, +45,1,199,253,177,3,113,3,229,252,200,255,190,1,8,253,119,254,64,2,135,0,22,255,185,255,136,255,25,255,106,0, +44,2,128,254,47,251,20,3,186,7,13,254,78,250,190,0,6,1,207,255,65,1,158,253,196,252,196,1,218,1,84,0, +75,0,119,253,234,254,31,3,66,0,142,254,242,0,41,255,140,255,179,1,110,253,144,255,71,8,146,2,216,248,227,254, +18,5,156,255,177,252,11,1,54,2,14,254,90,254,147,3,3,1,40,252,250,1,213,2,105,251,100,2,218,7,78,250, +44,252,202,10,203,254,70,245,254,7,38,9,215,247,49,253,153,4,139,252,155,0,176,7,105,254,241,249,132,255,139,1, +255,2,95,0,7,250,202,254,212,4,67,0,53,0,78,3,237,253,206,251,169,255,132,255,30,0,165,1,185,254,238,253, +222,255,196,255,213,255,6,255,118,255,245,2,253,255,159,252,164,2,32,1,244,249,54,1,97,5,52,253,155,255,119,2, +252,250,156,0,70,7,191,251,219,251,138,7,200,0,90,251,174,3,131,255,197,249,238,3,3,4,20,248,106,252,196,7, +122,3,156,251,57,255,135,2,1,253,53,252,206,2,211,2,144,0,121,2,158,253,172,250,58,5,181,6,10,252,47,254, +46,3,81,253,71,254,109,3,1,255,80,253,180,0,255,255,97,1,62,2,70,253,143,254,130,2,214,252,17,251,68,3, +46,4,110,253,71,252,227,254,74,255,131,0,241,2,24,1,26,254,33,1,64,2,238,252,164,254,195,3,140,254,180,253, +234,5,47,1,171,249,71,2,115,4,114,250,45,254,128,6,30,0,97,251,185,255,9,0,111,255,12,2,184,255,133,252, +27,0,21,2,15,254,207,253,179,2,3,3,170,254,1,254,128,1,41,3,122,0,35,253,119,254,254,1,152,1,131,0, +112,1,216,254,227,251,153,255,29,3,216,0,245,254,76,255,149,254,157,254,150,1,41,3,80,255,96,253,114,2,138,2, +204,252,57,0,181,3,20,252,98,252,191,4,179,1,0,255,45,3,241,253,97,250,74,1,93,255,216,251,189,3,133,3, +10,252,194,254,247,0,232,254,61,2,84,2,198,253,144,253,111,254,182,1,251,4,28,254,176,251,98,4,190,1,195,250, +0,1,185,2,148,254,148,3,98,2,26,250,133,255,235,5,48,0,82,253,128,254,127,254,177,1,117,1,115,253,15,255, +185,254,146,252,217,3,185,5,194,250,215,250,12,5,60,3,88,253,207,255,88,0,83,253,200,255,58,3,200,0,169,253, +69,255,30,2,80,1,219,254,28,255,41,0,50,255,171,255,52,2,151,1,84,255,10,0,1,0,83,254,114,0,185,2, +183,0,254,255,73,0,185,254,213,0,140,2,59,253,106,252,54,2,248,0,148,253,159,255,82,255,142,0,75,5,97,255, +181,248,175,1,28,6,28,253,254,252,245,2,173,0,233,0,15,4,234,254,107,252,133,1,246,0,220,254,46,2,16,0, +87,251,29,0,78,4,194,255,223,253,252,0,65,1,133,255,176,254,132,255,143,1,54,0,180,254,22,3,138,2,82,250, +206,252,59,6,47,2,13,250,26,254,66,4,84,2,79,254,137,255,92,3,70,0,34,251,254,255,238,2,138,252,217,254, +83,4,95,253,51,253,74,5,224,253,19,249,241,5,202,4,161,247,132,254,223,8,148,0,25,249,85,253,152,2,67,3, +193,254,249,251,86,255,247,254,63,253,232,3,13,5,188,251,246,252,163,5,245,1,48,252,22,0,69,0,223,251,156,255, +4,4,1,0,122,253,54,0,104,1,2,1,30,255,31,252,152,254,123,3,51,3,246,1,215,255,45,251,115,254,47,5, +62,0,169,250,65,255,30,2,181,0,79,255,136,252,48,254,45,1,66,254,121,1,49,6,31,253,4,252,127,7,120,0, +88,246,241,1,48,6,139,253,123,1,237,3,202,251,25,253,237,1,191,255,5,255,72,254,131,255,14,5,116,0,145,250, +235,2,204,3,204,250,2,0,33,5,68,253,138,253,189,2,183,255,152,0,125,2,25,252,152,252,90,4,207,2,234,253, +90,255,112,1,67,1,184,255,43,254,35,0,14,2,190,255,12,255,166,1,103,0,113,252,101,254,236,3,188,2,194,253, +45,255,138,2,126,0,224,254,162,0,119,0,41,254,72,253,39,0,248,3,241,0,123,251,124,254,106,2,167,255,245,254, +207,255,33,253,41,255,59,4,172,1,187,253,93,255,185,0,234,255,255,254,232,254,45,1,12,2,164,255,83,255,247,255, +47,255,155,0,67,0,195,252,3,0,187,5,228,2,243,254,71,254,228,251,79,255,250,6,130,1,178,247,136,253,212,5, +181,1,205,253,230,255,97,0,188,0,36,1,131,254,33,255,39,2,177,255,147,254,239,1,141,255,172,252,105,1,93,2, +213,253,155,254,196,0,80,0,243,0,59,255,62,254,132,3,83,3,7,252,178,252,24,2,178,2,35,2,146,255,83,252, +37,0,96,3,136,255,55,254,73,255,209,253,93,255,38,2,94,1,178,0,234,254,63,253,183,1,87,3,212,253,218,254, +168,3,96,0,223,253,38,1,220,0,254,254,251,0,189,2,137,2,89,0,212,252,55,254,95,2,28,0,236,252,220,0, +102,3,229,255,116,255,152,1,81,254,179,251,245,255,250,1,112,255,163,0,168,1,41,254,82,255,74,3,134,255,253,251, +204,0,92,3,244,255,2,255,181,255,2,254,44,254,151,1,131,2,108,255,99,253,109,254,233,255,127,1,132,2,154,255, +76,252,214,254,143,2,222,1,40,0,47,255,217,254,229,1,224,3,87,254,197,249,38,255,56,4,18,0,194,253,159,2, +183,1,96,251,127,254,42,5,221,0,202,250,111,254,136,3,81,2,205,254,69,254,54,0,177,0,7,1,241,1,154,253, +20,251,201,3,76,6,241,251,89,252,246,3,229,254,241,252,165,4,24,0,191,248,33,1,26,6,66,254,3,252,225,0, +42,1,177,253,203,253,133,2,163,2,67,252,18,253,211,2,106,255,137,252,118,2,29,3,68,254,151,254,240,255,58,0, +65,1,197,254,126,253,181,0,184,255,110,254,172,2,206,1,36,254,4,2,141,2,105,252,196,253,80,2,162,0,104,0, +136,1,46,254,240,253,167,1,187,0,26,255,156,0,89,255,24,254,98,1,212,1,54,254,244,254,43,2,2,1,152,254, +211,255,114,2,248,1,194,254,175,254,29,2,254,0,192,252,1,255,8,3,103,0,212,254,68,2,152,1,65,254,202,255, +144,0,78,253,71,254,17,3,11,3,89,255,71,254,23,0,82,1,80,255,247,252,92,0,201,4,185,0,28,251,146,254, +117,3,215,1,180,255,193,255,46,255,236,254,25,255,122,0,117,3,215,0,200,250,115,254,219,4,78,0,12,252,137,0, +169,2,191,0,116,0,187,255,221,254,84,254,157,253,129,1,143,4,186,254,54,252,125,1,123,0,84,253,165,1,34,3, +197,255,61,0,207,0,23,255,248,254,129,255,114,1,71,2,204,253,126,253,126,2,124,0,74,255,181,4,103,0,110,249, +198,0,140,4,19,253,153,254,41,4,158,0,222,255,121,2,133,253,225,250,172,0,50,2,141,253,49,253,25,2,150,3, +9,255,160,253,17,1,194,254,3,252,196,3,137,6,237,251,147,250,254,4,204,3,222,250,146,252,113,1,42,255,74,254, +220,2,167,3,29,253,179,248,255,253,142,4,240,1,133,253,183,255,107,1,148,0,235,2,99,1,165,249,61,251,87,4, +253,2,183,253,117,0,31,0,189,251,39,0,125,4,177,255,23,255,64,3,65,0,141,253,178,1,114,2,53,255,230,254, +246,254,194,254,145,0,59,1,17,1,148,1,233,255,90,255,43,2,185,0,118,252,135,254,19,2,95,0,4,255,215,0, +227,1,190,0,115,254,255,253,31,0,50,0,244,254,189,0,143,1,139,255,251,255,16,1,46,255,85,254,94,255,213,255, +153,0,108,0,246,254,135,255,140,0,99,0,110,1,221,0,18,254,21,255,173,0,98,254,182,255,94,3,124,255,187,251, +243,0,125,3,78,254,185,253,230,1,67,0,173,253,242,1,158,3,253,253,84,253,39,2,119,0,59,253,72,1,213,2, +192,253,214,253,138,3,56,4,161,255,242,252,165,254,32,1,161,0,62,255,141,255,197,255,45,0,84,1,56,0,27,254, +210,254,229,0,209,1,124,0,29,254,131,255,108,2,58,0,45,254,235,0,112,1,182,255,194,0,79,0,147,253,208,253, +42,0,151,2,42,3,178,255,133,254,178,1,131,0,192,253,194,255,28,255,177,252,71,0,218,1,232,254,199,1,25,5, +162,0,121,253,185,255,152,1,174,1,148,254,30,251,42,255,253,3,228,255,118,252,215,255,244,0,60,0,247,2,213,1, +245,251,192,252,12,2,18,1,235,253,40,255,93,0,156,0,64,2,48,1,159,254,203,255,191,255,89,253,99,0,152,3, +33,255,181,252,35,1,74,2,247,254,111,254,155,0,8,1,39,254,189,252,46,1,253,3,130,0,15,0,225,1,23,253, +63,251,1,3,140,4,187,252,8,252,144,2,243,3,184,0,150,254,60,254,98,0,216,2,72,0,251,251,32,254,218,2, +45,1,0,254,176,0,252,1,252,253,165,254,116,3,24,1,46,252,253,254,134,2,90,0,192,255,21,1,4,254,135,252, +176,1,123,3,204,254,63,254,200,1,142,0,254,253,96,0,249,1,130,254,139,252,224,255,2,3,57,2,67,0,233,254, +65,254,241,255,221,1,38,0,75,254,13,255,37,255,140,0,97,3,241,255,72,252,155,2,119,5,22,253,168,251,63,3, +130,2,85,252,176,252,176,0,171,2,146,0,192,252,225,254,29,3,17,0,254,253,61,2,174,0,106,251,169,255,201,4, +135,255,141,251,218,0,35,4,51,0,228,253,83,0,105,1,99,255,62,254,183,255,7,1,45,255,112,253,53,0,189,1, +147,254,167,255,150,3,86,0,248,253,245,1,156,255,143,251,10,2,48,4,224,251,107,252,240,3,101,2,61,254,172,255, +13,1,93,0,202,255,87,0,200,0,145,253,37,252,164,1,98,2,110,252,186,254,116,4,131,0,136,252,106,0,227,2, +234,255,74,253,185,255,65,3,239,255,168,252,50,2,201,3,222,252,69,253,123,2,155,0,228,254,99,0,153,255,75,1, +190,3,227,255,219,253,178,0,92,255,42,253,175,255,8,1,79,0,87,1,127,2,190,1,203,254,79,253,39,1,204,1, +83,251,225,252,115,6,133,4,62,252,113,255,224,3,12,254,26,252,51,2,219,0,159,250,93,254,163,4,220,0,174,252, +165,0,79,3,62,0,81,254,64,255,194,255,69,255,113,255,244,0,210,0,117,254,113,255,131,2,127,0,101,253,106,255, +101,1,104,0,25,0,7,0,240,255,133,1,150,1,230,254,54,254,20,0,128,0,121,255,153,255,175,255,28,254,45,255, +173,3,35,2,159,251,252,254,14,8,100,4,65,250,143,251,84,2,85,1,6,254,183,0,198,2,219,253,248,251,207,3, +189,6,94,253,105,249,78,1,196,3,48,253,249,251,7,1,51,1,86,253,241,254,181,3,16,2,39,254,214,0,7,3, +99,254,176,252,28,1,122,1,82,253,6,254,46,3,42,3,96,253,156,252,242,1,185,2,228,255,128,0,9,0,31,254, +191,0,148,1,92,253,156,253,123,1,207,1,40,0,215,253,50,254,211,3,86,3,168,251,91,253,117,3,168,255,197,252, +205,0,191,0,130,255,242,1,33,1,139,255,155,0,193,254,197,254,12,3,55,0,164,251,212,1,204,5,162,254,91,251, +48,255,172,0,37,2,25,3,208,253,150,251,142,1,231,2,2,255,220,255,209,255,57,252,127,255,128,4,70,0,75,252, +166,255,102,1,226,255,162,255,149,254,3,254,119,1,54,3,14,255,190,252,96,1,58,4,212,255,86,254,209,2,236,0, +187,250,221,253,217,3,30,1,170,252,246,253,159,1,82,2,233,254,133,254,220,2,119,1,163,253,233,0,18,0,111,249, +43,254,200,6,37,3,151,253,143,254,249,0,78,3,142,1,50,253,53,255,85,0,47,252,6,0,228,5,145,0,1,253, +137,0,101,255,77,254,20,2,66,1,16,254,43,0,237,1,145,254,239,251,239,255,17,5,7,2,217,253,162,1,75,3, +46,255,83,255,171,255,235,251,226,253,48,3,200,1,87,254,151,255,16,3,136,2,45,253,0,253,226,1,33,255,103,252, +196,2,30,2,39,252,181,1,61,4,66,252,171,254,87,4,138,252,194,249,17,3,250,4,44,0,44,255,147,254,227,253, +108,255,114,1,188,3,185,1,83,251,155,253,0,6,52,3,212,251,206,254,59,2,31,254,115,254,134,4,1,3,166,251, +133,252,241,3,43,4,167,254,100,255,145,2,118,254,196,250,225,254,177,1,211,255,127,0,116,1,188,254,13,255,0,3, +113,1,72,252,47,254,232,3,2,1,182,249,230,251,241,1,54,0,180,255,4,5,178,2,86,252,220,255,129,3,172,254, +130,252,87,254,4,255,125,2,78,3,215,252,205,252,66,3,169,1,150,254,147,1,175,255,116,251,252,254,252,1,218,0, +155,1,171,255,130,253,187,2,65,2,159,249,122,253,184,6,206,0,192,250,140,1,83,4,174,255,178,255,106,1,119,255, +112,254,116,1,37,5,41,2,145,250,157,251,108,2,85,0,114,251,58,255,65,3,156,0,64,255,128,2,93,2,234,252, +130,252,26,2,189,1,34,254,91,0,254,0,116,255,78,3,186,2,151,252,235,254,29,1,248,251,213,254,87,4,7,255, +178,252,237,0,231,254,105,253,182,1,148,1,149,254,192,255,182,2,110,3,43,255,167,251,16,0,4,2,143,253,115,0, +41,4,117,252,31,251,14,6,73,5,75,250,63,252,161,4,15,2,31,253,133,255,20,0,139,252,215,254,117,4,177,2, +69,252,234,251,186,2,16,6,15,0,14,252,220,0,103,1,64,251,228,252,90,3,32,2,207,253,56,253,164,254,189,0, +28,1,201,255,199,0,156,1,194,255,77,255,60,0,30,0,92,255,233,253,155,254,55,2,216,2,59,1,11,1,59,255, +100,254,22,1,127,0,151,254,106,0,120,0,178,0,95,3,64,255,223,250,138,0,152,2,133,254,125,1,197,2,187,252, +241,253,64,3,21,1,211,253,59,254,2,1,218,4,44,2,85,252,78,254,26,0,225,253,58,2,173,4,138,253,24,253, +130,3,25,2,37,255,103,0,83,254,182,252,224,0,16,3,134,255,159,252,52,0,120,5,170,1,41,251,61,255,78,3, +96,253,116,251,165,0,243,255,204,252,150,0,27,5,61,2,49,252,180,252,2,3,93,4,135,0,83,255,227,255,169,0, +220,1,18,255,196,251,231,253,27,255,130,255,142,5,244,6,55,254,31,251,207,1,45,4,188,254,146,251,24,255,254,0, +56,253,38,255,107,7,161,4,220,249,31,251,6,3,95,1,124,253,251,0,176,2,67,254,109,254,5,4,105,3,48,254, +146,254,129,0,102,253,188,251,135,255,68,2,129,0,102,255,70,2,209,2,198,254,151,255,202,2,29,253,2,250,72,3, +82,5,98,251,83,251,230,3,185,3,8,255,53,255,77,1,31,3,66,3,161,254,246,250,82,255,90,4,134,1,136,253, +209,253,11,253,172,252,155,0,98,2,238,0,94,0,141,253,34,253,199,3,195,3,121,252,196,253,230,0,108,253,23,255, +30,3,180,255,198,253,164,255,234,0,209,6,192,8,189,252,204,245,117,254,45,4,247,255,253,251,197,251,204,254,141,3, +242,5,23,5,166,0,126,250,58,251,97,1,224,255,112,250,10,255,9,6,183,2,124,254,38,1,45,1,30,253,36,253, +168,254,183,253,10,255,147,2,249,3,127,4,48,3,88,252,83,248,66,0,0,6,26,252,115,245,209,255,210,5,236,254, +251,254,168,5,233,2,221,251,251,251,157,0,208,0,160,250,195,249,57,1,114,1,220,253,31,5,137,9,106,2,52,255, +191,254,158,252,40,2,28,4,181,249,148,248,23,2,28,2,185,254,161,1,71,2,242,0,225,2,207,2,92,254,15,251, +158,253,98,3,239,3,114,255,44,254,246,255,223,0,182,2,109,4,42,1,230,251,108,253,144,3,178,2,208,252,132,253, +71,2,179,3,51,2,162,253,206,250,232,255,40,4,77,2,27,2,49,2,131,255,176,254,161,253,7,253,8,1,95,0, +181,250,229,253,187,3,140,255,247,249,115,252,58,2,4,3,41,0,193,3,243,7,253,255,118,250,23,1,116,0,215,248, +29,251,74,0,72,2,218,5,213,4,210,0,145,2,102,2,26,253,111,251,163,252,204,253,8,0,153,1,118,2,106,1, +128,254,48,0,99,2,82,254,200,253,89,2,234,1,22,0,164,255,220,254,57,4,195,5,193,247,55,243,72,4,2,11, +228,253,241,247,220,255,28,5,117,2,27,0,108,0,28,253,151,249,224,254,61,4,158,255,103,251,186,254,182,1,77,1, +173,0,144,0,156,1,23,3,134,1,194,253,89,254,54,2,113,254,100,247,147,253,56,7,11,2,134,252,141,2,109,3, +4,253,19,253,20,0,171,0,109,2,8,3,197,0,6,254,179,252,190,1,90,7,61,0,199,247,88,254,171,5,112,1, +70,254,68,0,139,254,160,252,204,1,235,6,154,2,233,250,118,251,244,0,165,0,83,253,24,255,50,0,177,249,188,247, +46,4,176,11,37,0,68,249,186,3,249,5,90,251,242,252,86,6,96,2,21,251,115,0,42,7,35,1,200,247,178,251, +141,6,255,4,184,251,81,253,180,4,218,2,128,253,142,255,5,2,81,252,134,249,123,2,156,6,82,254,170,253,215,4, +42,0,148,250,184,2,118,5,18,253,114,253,84,2,149,253,169,252,68,7,228,8,216,251,19,247,60,0,54,3,85,254, +85,255,223,254,235,247,230,251,15,7,0,4,168,253,247,2,23,3,93,251,30,255,161,5,158,254,82,250,140,2,104,4, +249,252,53,254,44,6,143,4,166,252,44,253,171,2,156,255,195,250,206,1,49,7,146,252,165,246,22,4,91,13,79,2, +224,244,32,247,134,1,241,1,153,251,164,254,105,2,49,253,37,0,100,6,21,252,163,249,120,11,234,10,94,249,133,252, +97,5,14,252,87,247,82,2,3,8,129,0,142,249,26,255,77,7,204,1,138,249,53,253,117,0,9,254,121,1,64,5, +142,255,226,250,67,0,142,5,54,0,91,249,70,254,135,5,101,1,188,251,4,255,27,2,60,255,132,255,230,4,204,0, +236,242,124,245,111,9,179,11,131,252,209,252,24,5,61,254,28,250,78,6,54,8,126,246,146,242,241,6,72,14,116,253, +180,248,224,5,74,6,166,250,1,248,16,253,20,1,234,2,5,4,118,4,164,0,43,254,28,4,97,4,9,251,75,251, +11,2,229,1,75,1,19,255,120,250,145,0,51,7,12,2,185,0,151,2,78,254,176,0,176,2,168,246,18,245,174,4, +221,7,58,255,143,254,107,0,92,254,8,0,194,4,207,1,188,247,127,246,100,0,20,4,249,255,144,254,223,252,227,251, +93,1,48,5,218,4,109,3,174,249,102,242,26,255,168,8,199,251,132,247,91,9,102,13,117,251,56,248,22,9,25,12, +11,253,178,247,200,255,250,3,85,2,164,1,165,0,43,253,146,251,42,1,137,7,169,2,205,249,51,253,100,5,54,2, +67,250,99,251,218,255,26,252,236,249,172,6,90,15,183,255,169,240,215,249,133,4,164,0,166,254,32,1,215,255,60,2, +241,4,212,252,31,250,208,5,121,6,88,250,212,252,196,5,196,255,11,251,182,0,245,253,52,248,62,0,148,6,192,254, +229,250,240,3,176,9,251,1,111,248,213,250,192,1,247,254,205,250,61,1,41,5,125,254,145,255,56,10,78,7,219,250, +61,252,164,3,70,1,87,254,94,254,89,251,51,253,199,3,43,3,25,0,162,0,195,255,204,0,140,4,96,3,68,1, +53,1,208,253,21,253,3,1,2,254,228,248,108,254,253,5,212,4,127,1,211,1,85,1,129,254,206,253,171,253,81,250, +163,249,123,255,72,5,96,5,240,253,214,246,107,254,242,9,46,4,242,249,180,252,173,1,108,1,5,1,131,3,59,7, +222,254,168,239,244,249,168,14,93,3,118,243,36,0,156,6,138,252,165,1,197,10,93,3,12,253,14,254,153,252,124,254, +14,3,234,255,204,251,121,255,210,3,77,4,148,3,35,255,248,249,181,254,51,5,214,253,3,247,143,1,5,8,63,249, +81,240,186,0,52,13,110,0,4,248,69,4,151,5,65,248,42,253,242,8,14,0,225,248,51,2,14,3,34,251,54,255, +191,6,9,2,144,250,116,254,218,6,19,3,100,248,131,251,236,6,53,3,208,247,94,254,84,11,173,2,253,246,171,1, +42,5,254,244,229,250,122,15,104,4,81,242,5,254,176,7,169,252,107,249,59,3,173,6,10,0,250,249,125,252,247,1, +4,4,193,6,101,4,178,247,125,245,84,5,162,11,223,255,8,249,215,252,22,255,129,2,17,9,242,3,32,247,77,249, +3,5,134,7,23,3,127,252,192,249,120,1,243,2,141,250,51,254,134,2,108,251,36,1,64,8,42,251,165,250,159,8, +133,0,248,246,24,2,143,5,104,254,34,254,116,254,58,253,162,252,161,252,173,5,55,11,241,253,33,248,133,5,10,6, +107,247,222,249,8,8,65,2,5,245,237,0,43,15,114,1,221,247,136,3,72,3,248,249,80,254,211,1,110,254,147,253, +239,252,186,3,229,11,69,255,109,244,128,3,136,12,53,0,20,249,106,253,137,255,221,251,52,250,225,1,49,7,202,254, +112,248,89,254,74,3,59,1,101,255,194,255,164,251,218,246,171,0,223,11,39,0,75,244,238,254,55,8,245,4,43,0, +6,253,189,3,53,9,141,250,217,245,226,5,156,1,167,245,210,3,88,12,171,0,181,253,139,255,60,252,86,253,165,253, +224,253,242,5,140,6,170,251,31,250,0,2,192,0,251,248,81,253,74,8,159,4,95,253,75,3,245,2,62,250,60,0, +151,5,6,250,204,247,9,5,151,8,252,255,25,252,242,2,144,6,160,251,154,246,93,4,164,9,85,253,74,249,187,1, +14,4,184,252,105,249,58,0,113,3,246,254,172,1,254,5,195,255,75,254,108,5,69,3,185,250,69,248,194,251,23,3, +172,7,65,3,101,252,77,251,36,1,37,6,173,1,57,252,111,252,145,250,64,253,217,7,192,5,76,250,211,252,122,4, +9,2,91,255,61,2,62,2,178,252,102,251,195,2,136,4,141,253,43,255,20,6,54,3,253,252,86,250,117,251,116,2, +94,5,65,0,154,254,73,254,177,253,12,4,47,5,233,251,118,249,120,253,9,0,205,3,193,1,228,250,78,253,2,3, +139,1,219,253,100,252,103,255,116,2,126,255,109,1,170,7,198,1,112,251,221,0,42,1,45,251,166,250,124,252,129,2, +208,8,13,1,97,248,103,255,158,6,32,3,27,255,152,0,222,1,220,251,90,248,11,2,61,6,185,252,56,253,245,5, +225,2,4,254,50,0,89,255,25,253,42,254,63,0,158,3,79,2,45,251,43,253,247,5,171,2,173,250,48,0,35,6, +53,252,216,245,113,0,36,3,100,249,188,254,254,7,42,252,131,246,176,6,42,8,163,247,121,249,239,8,12,9,174,254, +103,252,114,0,4,0,211,252,23,0,134,4,74,255,25,251,253,2,76,7,70,255,8,251,221,254,212,0,59,1,78,255, +65,250,96,254,211,8,121,6,160,252,65,251,60,255,192,1,213,255,251,252,21,3,101,6,150,251,4,251,115,6,125,0, +148,248,161,3,41,5,232,249,188,254,109,7,110,0,70,250,134,254,225,0,96,252,22,251,88,2,108,4,148,253,150,255, +162,6,94,2,189,252,88,253,20,253,128,254,142,0,44,0,47,3,195,2,255,252,200,0,86,5,12,255,147,253,37,1, +73,0,10,2,138,255,5,248,202,255,169,7,210,253,219,254,191,8,138,251,185,240,101,2,53,12,195,254,254,249,65,3, +13,4,178,251,3,252,177,6,98,7,88,249,206,247,23,8,160,7,252,245,187,249,41,8,3,254,132,245,113,7,91,13, +121,252,94,250,113,4,210,2,5,255,240,255,49,255,232,255,121,254,91,248,136,251,212,5,255,4,57,252,108,250,25,0, +143,4,194,1,19,251,47,251,15,3,193,5,20,0,251,255,21,5,203,255,117,249,74,1,113,5,244,253,23,254,73,1, +34,253,69,0,240,5,136,254,167,250,60,2,91,3,27,255,43,255,233,254,104,254,75,0,135,1,29,2,132,0,15,254, +15,2,114,5,181,255,231,252,136,255,109,251,240,249,106,4,38,6,53,249,251,247,90,4,175,4,14,253,60,2,189,7, +197,252,238,244,10,0,242,7,194,252,26,245,120,0,153,7,233,254,157,254,170,7,89,1,63,248,222,0,123,4,100,251, +162,0,6,11,158,1,150,249,240,1,133,1,151,248,116,254,167,5,97,254,140,253,140,7,51,6,227,254,103,1,72,2, +50,252,47,253,226,3,233,2,26,251,205,248,246,0,51,7,77,2,24,254,189,255,214,253,110,254,81,6,34,4,242,247, +15,248,30,2,50,3,16,254,121,254,102,1,54,1,212,0,2,1,24,255,41,253,101,253,79,0,223,3,173,255,94,250, +42,4,52,9,166,249,133,250,219,13,20,4,125,240,197,253,148,9,174,251,158,245,18,254,81,3,62,3,201,252,6,249, +85,1,6,5,201,254,35,254,185,0,15,255,62,254,106,1,71,5,166,0,244,246,98,252,227,8,230,4,165,252,183,254, +159,2,242,5,117,4,160,252,231,252,217,255,155,252,94,3,96,10,122,255,121,250,7,255,102,247,159,246,38,6,181,7, +223,252,193,252,232,3,161,7,67,2,42,250,233,254,13,3,225,247,8,248,236,8,228,8,166,251,160,253,179,6,201,4, +125,254,87,254,188,1,21,1,179,252,86,252,34,1,158,3,14,1,19,255,143,255,94,253,32,251,55,0,58,5,172,1, +95,254,206,255,138,254,208,252,207,0,27,4,50,0,0,252,149,255,0,5,74,4,13,2,78,0,248,250,147,249,234,0, +34,5,36,1,149,252,208,253,219,4,114,6,153,254,255,252,105,0,114,251,126,251,24,5,189,2,153,249,218,251,223,1, +28,4,26,1,22,249,134,252,109,7,98,0,233,248,98,6,234,9,210,250,240,249,15,4,162,2,179,251,82,248,102,250, +255,1,244,4,115,3,66,5,130,255,60,245,223,253,92,11,162,1,225,244,6,253,132,5,174,254,90,252,15,7,31,7, +248,247,210,247,59,6,46,3,236,249,36,2,98,3,249,247,235,254,245,9,139,254,5,245,218,253,215,7,190,9,38,4, +142,255,136,0,112,249,148,246,146,9,62,11,203,241,69,245,171,13,122,8,48,251,150,0,14,4,35,0,6,252,36,251, +106,4,44,6,165,246,96,245,107,4,30,5,8,254,118,1,105,7,247,4,159,251,146,250,211,4,152,3,20,249,69,251, +39,0,132,254,183,253,184,249,211,253,75,14,75,8,99,244,96,252,162,7,174,252,109,251,217,5,186,3,21,254,8,253, +252,253,41,4,82,5,231,252,30,249,25,251,67,254,189,3,231,3,193,254,211,254,185,1,116,2,198,2,44,1,220,252, +180,248,238,249,169,1,243,3,12,255,186,0,120,3,46,0,119,4,108,9,138,255,93,249,201,0,88,2,185,252,96,252, +232,254,179,255,104,255,162,255,1,2,74,3,5,1,219,254,162,255,33,2,212,0,89,251,104,252,194,2,254,0,34,252, +26,255,127,3,189,2,57,0,197,1,237,5,18,1,26,248,205,252,159,2,204,251,175,252,53,5,247,255,21,252,36,7, +60,8,68,250,193,247,191,2,45,4,69,251,81,253,196,6,63,2,81,250,198,255,24,3,147,254,105,0,86,4,95,3, +79,1,74,253,228,252,128,2,153,0,28,251,189,255,133,4,32,1,217,253,228,255,251,4,151,2,53,249,19,253,148,7, +71,1,89,249,211,254,78,1,233,254,253,254,202,253,160,255,130,1,211,251,92,253,230,5,81,1,136,249,9,253,232,0, +251,0,88,1,229,2,57,6,209,1,98,248,121,253,162,5,126,255,77,253,108,2,161,255,69,255,101,4,62,2,66,0, +152,0,43,251,146,251,243,2,16,2,8,255,61,1,130,1,170,1,138,2,214,255,121,254,66,254,32,254,63,4,199,4, +236,248,59,249,231,5,63,2,5,246,4,248,166,255,98,2,209,2,65,1,51,0,16,0,76,254,71,255,245,0,79,255, +14,2,107,3,244,250,60,252,226,8,17,6,164,251,47,254,211,0,90,253,174,253,212,255,115,2,143,2,215,252,176,255, +223,5,109,251,53,248,171,8,40,7,133,248,248,254,231,5,27,253,151,252,107,1,155,252,64,251,241,2,221,6,255,1, +65,253,203,1,134,5,185,254,212,251,48,0,164,255,87,0,151,3,117,255,221,252,220,255,97,255,146,254,90,253,92,253, +47,7,221,6,153,246,27,252,117,13,46,2,232,244,64,255,172,2,19,251,136,253,171,2,220,2,90,1,18,254,238,255, +219,4,234,254,218,245,223,249,74,3,69,4,148,1,180,4,186,6,187,0,49,252,69,251,218,249,82,255,146,4,42,255, +56,1,171,9,70,2,220,251,49,2,64,254,217,247,4,254,61,255,42,255,197,6,157,2,228,251,181,5,193,7,107,251, +110,251,168,2,247,255,94,253,113,1,103,3,84,1,168,255,110,252,20,248,189,253,88,8,26,4,56,252,210,1,82,2, +218,249,4,251,74,253,186,252,175,4,43,5,201,251,255,1,103,12,38,6,80,253,65,249,210,247,28,253,59,255,152,252, +250,0,248,2,143,0,62,8,193,11,69,255,105,248,121,251,60,251,130,253,195,2,15,255,253,249,99,0,209,6,3,1, +178,252,174,2,82,2,131,251,244,255,233,4,99,255,81,0,207,3,89,251,215,248,45,2,138,3,193,0,120,4,243,5, +204,1,222,251,43,249,140,255,226,3,186,253,41,252,159,0,236,255,240,1,181,5,141,254,237,249,56,2,129,4,85,252, +193,250,189,0,54,2,234,253,66,253,21,3,83,4,10,253,207,250,51,1,197,1,230,250,249,252,23,9,214,9,175,251, +217,247,226,1,213,1,110,251,222,0,12,4,106,252,74,254,210,6,136,2,184,251,115,255,130,3,189,0,218,251,138,253, +68,6,4,4,97,248,207,255,6,13,94,0,135,245,0,3,83,6,16,251,43,254,100,5,99,2,18,0,132,253,192,250, +99,254,8,253,93,248,9,1,117,9,225,2,191,252,189,254,94,0,93,253,205,248,164,253,23,7,155,0,61,248,252,4, +194,13,135,0,1,248,147,253,180,255,145,252,83,253,54,3,147,5,14,255,163,251,46,0,11,0,84,253,234,254,14,254, +77,255,250,4,139,1,223,253,213,4,252,2,106,249,121,252,157,0,40,253,84,0,173,5,225,4,221,3,1,0,143,252, +137,2,96,4,222,251,73,249,127,253,235,0,148,3,40,0,50,251,214,254,95,1,59,0,5,3,98,255,22,250,107,3, +91,6,9,251,144,254,63,5,106,249,90,249,182,8,11,5,184,250,36,254,105,255,78,0,30,6,101,0,143,250,245,3, +22,6,183,253,197,255,246,3,151,255,57,253,186,255,1,3,178,1,2,248,93,246,152,4,66,10,161,0,36,253,113,2, +170,2,168,250,185,244,145,251,82,5,194,3,127,1,204,5,99,5,35,0,223,252,226,254,12,7,134,4,173,244,39,247, +78,8,106,7,114,0,153,1,113,252,222,250,152,2,158,0,196,255,149,5,50,251,182,244,235,6,14,11,5,250,6,249, +232,255,21,251,11,251,153,3,103,7,13,6,159,1,192,252,74,252,130,253,155,254,196,0,126,1,123,1,115,1,7,255, +176,253,37,255,6,255,134,253,67,252,174,252,19,2,54,6,227,1,172,253,64,0,82,2,204,255,93,253,245,253,148,254, +138,253,63,255,92,2,136,0,3,0,255,4,255,2,11,250,16,250,205,1,213,4,12,3,221,1,148,1,108,255,69,252, +128,253,56,1,35,0,143,253,105,0,160,4,24,3,12,255,201,0,237,2,191,251,198,248,252,2,78,4,34,251,115,255, +8,7,107,1,37,255,89,2,160,255,3,0,209,0,113,249,15,251,94,6,182,6,140,0,156,253,112,251,66,253,156,254, +58,253,179,4,183,7,57,250,121,249,47,7,204,2,146,249,21,0,144,0,140,249,145,254,118,4,22,1,130,255,225,0, +178,0,235,255,216,254,121,0,27,4,116,3,57,255,60,251,210,251,128,2,74,2,168,249,250,252,229,6,221,2,125,253, +252,2,254,4,103,255,156,250,168,251,110,3,190,3,84,248,35,250,84,9,118,8,139,251,62,250,116,1,198,2,94,252, +84,250,183,2,235,3,2,251,163,255,148,9,52,1,184,248,4,255,239,1,224,0,200,5,90,5,183,252,175,249,41,254, +56,1,89,254,23,251,236,254,24,3,8,0,211,255,157,6,54,7,246,254,102,249,127,250,29,254,179,0,119,255,86,253, +81,1,226,5,164,1,66,255,192,4,234,255,33,245,78,254,213,11,97,3,227,250,164,2,129,3,225,249,189,250,174,4, +192,6,218,254,198,250,251,0,72,3,225,251,246,251,249,4,99,4,246,251,155,251,126,1,148,1,13,253,254,254,110,4, +88,0,106,250,174,0,135,6,89,0,240,251,104,0,41,3,249,255,143,253,240,0,158,3,193,254,185,252,83,2,134,1, +233,253,147,3,11,3,229,247,178,248,95,1,159,0,232,255,233,2,21,1,240,255,29,255,34,252,63,2,169,6,30,252, +83,252,100,9,92,3,182,248,214,0,202,2,27,249,202,250,132,1,129,3,199,3,7,254,250,252,152,7,43,6,82,250, +253,252,89,2,140,252,91,251,20,2,169,5,137,2,192,251,201,252,198,4,205,2,155,253,4,3,185,4,176,252,133,251, +127,2,216,2,240,250,222,251,167,8,1,8,137,250,229,253,62,6,92,253,181,249,181,1,168,0,30,252,32,251,180,252, +22,8,234,10,45,251,175,250,89,6,243,254,39,249,11,1,143,252,24,246,5,255,39,4,215,0,12,255,168,253,40,1, +85,5,161,255,71,253,196,2,105,0,248,252,195,0,60,254,86,250,4,3,78,8,122,255,200,251,231,1,51,1,226,252, +36,0,48,1,76,253,142,0,121,4,200,0,25,255,126,254,144,252,19,3,201,6,244,252,25,251,133,3,71,1,219,252, +22,1,193,1,171,254,4,254,147,253,163,1,138,6,93,1,51,252,55,0,189,2,95,1,132,1,147,255,101,252,125,254, +168,1,74,254,31,251,76,2,21,9,45,2,184,251,15,0,74,255,183,248,236,251,237,1,90,0,41,255,136,1,74,3, +236,2,210,254,180,252,233,0,131,0,171,250,61,253,93,3,184,0,234,253,135,2,24,4,47,254,92,252,101,3,95,6, +43,255,19,252,151,1,241,0,232,250,125,252,157,255,111,253,165,255,138,5,63,4,97,255,153,254,211,255,222,255,156,254, +253,254,74,1,115,254,107,250,148,1,118,9,221,3,114,254,145,1,180,0,180,252,238,254,197,2,198,1,78,252,114,249, +94,1,55,9,163,3,219,253,165,0,124,255,255,251,131,255,138,2,108,0,112,253,111,251,251,254,12,5,160,2,20,254, +86,0,107,0,3,253,164,253,206,254,3,0,207,2,165,255,114,251,161,255,135,1,107,254,67,2,131,5,239,254,171,250, +7,254,14,2,86,3,229,254,139,250,148,255,152,3,197,255,233,0,124,4,13,255,146,250,98,254,31,1,250,255,83,255, +194,0,205,2,98,1,109,254,192,254,153,255,103,0,202,1,125,255,229,254,11,4,50,4,94,0,99,0,48,254,210,252, +39,2,242,1,226,252,217,254,73,1,110,1,210,3,251,1,26,254,198,253,110,252,82,255,142,4,12,255,179,251,231,1, +222,255,243,252,12,2,80,255,4,254,223,5,95,0,78,248,35,0,133,0,182,250,35,3,126,5,233,251,9,254,134,3, +59,0,177,0,166,3,44,1,43,254,216,252,125,254,96,3,34,4,67,0,135,254,202,255,49,0,184,253,90,254,7,4, +41,3,119,253,207,254,94,255,193,252,163,1,219,3,210,253,227,253,194,255,37,254,128,3,181,5,37,253,33,252,241,0, +224,254,131,255,115,2,201,254,85,254,196,1,251,254,103,252,206,253,112,254,116,2,225,5,147,255,4,251,121,0,205,2, +239,254,57,254,186,254,237,254,160,3,125,5,203,254,158,251,150,255,106,0,15,255,196,255,228,254,3,255,159,1,103,0, +92,255,116,3,111,3,255,253,132,253,151,0,208,255,73,254,229,0,212,2,126,255,102,254,19,3,253,1,162,251,100,254, +148,4,213,0,194,251,58,255,136,3,206,0,169,252,194,255,24,3,136,253,217,251,157,3,146,3,195,253,202,255,165,0, +227,253,175,0,147,1,67,0,233,4,67,3,244,250,117,254,218,3,82,253,204,251,51,3,0,2,196,252,135,1,213,6, +80,1,150,251,165,254,253,0,228,254,77,255,23,255,196,252,94,255,224,0,156,253,54,1,188,5,135,254,207,249,81,0, +239,2,131,254,148,253,204,0,209,1,110,254,230,252,120,1,39,4,223,1,214,0,72,255,237,252,202,255,104,2,68,255, +65,253,153,254,12,0,42,1,238,0,184,1,25,4,141,1,188,253,97,0,174,1,209,252,102,250,133,253,48,2,81,3, +85,255,43,255,144,4,151,3,95,254,191,254,151,255,247,253,110,254,32,255,239,255,81,1,193,254,247,252,71,1,253,3, +233,1,37,255,190,253,211,0,17,3,68,253,232,250,208,0,111,1,0,255,113,1,8,1,229,254,2,1,0,1,242,255, +188,1,132,0,47,255,50,0,2,253,174,252,94,2,206,0,162,253,163,3,163,5,59,255,140,252,17,255,27,3,106,3, +235,252,42,252,156,2,222,255,149,250,189,255,211,2,115,255,47,0,245,1,242,0,71,0,158,253,85,252,137,1,151,3, +227,253,241,251,196,0,96,2,99,255,169,255,221,1,146,255,147,253,30,0,225,0,78,255,124,255,217,255,89,1,166,2, +143,254,136,252,160,1,97,3,69,1,225,1,250,0,206,254,24,255,92,254,146,254,210,0,35,255,51,254,23,2,231,1, +59,254,168,255,110,3,22,3,244,254,216,252,73,255,125,0,36,0,32,1,28,254,154,251,201,0,204,1,111,254,130,2, +65,2,25,251,96,255,72,5,18,255,249,252,227,1,50,0,221,251,58,253,180,2,147,4,72,254,68,251,101,0,10,2, +82,2,114,2,91,250,42,250,189,5,62,2,103,250,20,4,227,6,35,253,76,255,75,4,78,0,184,254,45,254,41,253, +48,1,223,1,160,254,236,255,184,0,32,0,244,1,64,1,218,255,191,255,61,253,105,255,251,3,95,254,8,251,15,3, +7,4,31,254,158,0,101,2,115,252,143,252,82,3,225,1,24,250,86,251,233,2,8,2,16,254,114,1,35,2,184,252, +75,253,108,2,36,4,200,2,74,254,218,251,104,0,46,2,121,254,180,254,17,0,1,255,3,1,163,2,103,0,150,255, +80,255,21,255,177,1,160,0,63,252,194,254,45,2,67,255,125,255,223,1,129,254,98,254,238,2,225,0,103,255,86,4, +206,1,227,251,238,0,40,4,134,254,185,255,234,2,24,252,36,250,95,2,110,3,79,253,197,252,247,0,51,3,217,0, +161,253,201,255,136,2,136,255,90,254,110,2,67,2,93,252,141,251,120,3,164,6,119,252,242,246,186,1,113,7,223,255, +240,254,255,2,234,253,70,251,238,1,177,2,212,252,248,252,50,1,186,1,166,255,247,254,159,0,158,2,147,2,2,1, +40,0,190,255,31,254,6,254,11,1,20,0,96,251,231,254,118,5,143,0,189,251,104,2,167,3,48,251,200,251,13,4, +38,4,87,253,240,249,196,254,219,5,19,3,239,251,195,254,186,2,152,254,147,254,217,2,224,255,156,252,26,0,124,3, +11,4,234,0,38,252,171,255,85,5,69,0,156,252,150,1,219,255,134,249,177,251,22,0,133,1,109,2,150,255,72,254, +220,3,99,4,154,253,196,251,215,254,58,2,221,3,176,254,74,251,248,1,90,2,18,251,47,1,188,8,148,253,42,246, +39,0,51,5,126,1,17,1,239,254,0,252,17,0,2,3,61,1,23,1,229,254,84,252,18,1,47,3,77,253,120,253, +170,3,177,3,203,0,170,0,58,0,2,0,175,0,179,254,84,252,95,254,27,1,112,255,34,254,100,1,188,2,165,0, +209,1,223,2,205,255,182,254,208,253,18,251,177,254,116,2,191,254,218,0,241,5,245,255,99,254,36,6,103,1,156,249, +70,0,150,1,186,248,96,252,80,6,70,3,208,251,8,253,194,1,71,1,71,254,116,255,201,0,228,254,104,1,117,5, +197,0,177,250,182,251,240,254,167,2,2,4,104,254,50,252,215,1,181,1,19,254,153,2,88,4,196,252,147,251,204,1, +194,1,27,255,168,0,197,255,216,252,245,254,148,1,208,255,108,254,21,255,183,255,85,1,152,2,206,0,113,255,164,1, +122,2,248,254,64,254,178,2,214,2,66,254,82,254,49,0,51,255,215,0,75,2,51,254,247,251,81,254,39,1,98,3, +86,255,100,249,9,0,75,7,254,255,203,251,200,1,234,1,13,254,159,254,144,1,181,4,6,0,94,247,72,254,41,8, +53,0,71,251,225,2,250,1,112,252,155,253,249,253,53,255,175,1,88,254,101,254,201,2,37,0,16,0,136,5,41,1, +145,251,199,1,171,6,236,2,137,253,25,251,13,254,206,255,62,253,38,2,205,7,77,255,104,250,207,3,162,5,195,253, +6,253,58,255,2,253,95,252,69,0,163,4,250,2,241,252,179,254,117,5,71,2,59,250,110,251,85,3,47,6,232,254, +31,249,198,255,82,3,183,251,197,252,82,3,246,254,231,255,212,7,197,254,189,244,213,254,126,4,69,253,131,253,26,2, +134,3,187,5,118,2,141,252,119,254,158,255,227,254,172,4,6,3,162,247,156,250,237,7,95,8,248,0,218,253,193,252, +170,253,54,0,132,0,86,0,244,254,217,251,62,0,66,8,224,2,181,248,74,252,48,2,88,255,57,0,119,4,255,0, +117,252,112,252,91,253,24,1,13,3,108,254,59,254,30,3,12,2,49,0,209,1,55,0,6,254,195,253,198,252,142,254, +10,1,180,0,30,2,96,1,170,253,192,0,32,3,188,254,91,255,81,255,142,250,220,1,10,10,7,1,112,250,39,252, +154,248,70,252,43,8,45,6,249,252,150,253,119,2,215,4,96,3,82,255,194,253,115,252,84,251,114,0,29,5,232,2, +145,255,154,253,209,255,176,4,126,0,219,250,234,0,152,2,191,250,255,252,75,4,225,1,29,255,101,0,254,253,121,252, +195,1,200,5,156,1,6,254,72,3,85,5,151,251,203,245,20,253,103,6,9,9,41,3,204,251,68,254,211,2,16,255, +137,253,192,255,137,250,74,247,201,0,59,8,170,1,211,249,23,254,131,4,29,0,105,252,226,2,15,4,158,251,181,250, +104,3,119,6,139,253,134,246,224,0,168,11,114,0,158,246,18,3,216,9,10,254,101,248,120,255,131,6,127,6,125,254, +117,250,173,255,94,254,229,250,213,4,167,8,225,251,131,249,11,3,30,3,147,255,118,254,200,250,77,0,237,10,90,2, +28,245,1,253,130,6,162,0,18,253,148,1,229,1,148,253,21,253,67,3,97,6,125,253,68,246,75,253,10,5,192,3, +206,0,62,255,122,254,2,255,1,0,165,2,145,2,82,252,117,251,224,1,105,2,232,255,25,1,133,0,17,0,5,1, +2,254,55,254,110,3,36,1,245,250,10,251,253,252,255,253,131,255,30,1,136,3,99,2,58,254,128,0,23,3,99,254, +87,254,248,2,63,0,93,253,164,0,58,1,252,254,222,255,230,1,159,1,225,255,153,0,247,2,136,1,125,254,37,253, +34,252,120,255,26,5,4,3,120,253,146,251,244,251,149,1,1,6,39,0,35,255,219,5,57,0,208,248,231,1,242,7, +154,255,190,250,111,254,201,0,160,254,254,253,62,4,30,6,30,251,214,247,117,5,4,9,218,250,134,246,37,2,214,5, +37,254,223,254,218,5,215,1,231,250,37,254,146,1,226,255,176,255,2,255,23,254,19,0,232,254,101,253,78,3,254,5, +182,254,105,249,173,250,192,254,84,5,177,7,206,0,138,251,73,254,15,0,58,255,240,1,164,2,215,253,187,253,30,2, +69,2,237,1,184,0,247,249,165,250,235,4,141,4,49,252,249,252,82,1,244,1,147,1,241,254,61,254,252,1,118,1, +245,254,142,0,85,255,138,253,213,1,238,2,79,255,159,0,71,2,45,255,255,253,44,255,50,255,251,254,33,253,52,252, +125,1,93,4,65,255,135,0,152,7,147,0,83,246,13,255,35,6,252,250,237,248,44,5,46,4,205,251,226,0,144,7, +96,2,16,251,126,251,0,1,236,2,181,255,13,255,70,1,147,0,40,255,163,0,42,2,141,255,20,251,18,253,138,3, +186,4,48,3,136,0,238,249,146,252,148,7,55,3,81,249,87,255,138,1,250,247,11,252,236,8,145,6,20,252,164,250, +98,0,70,3,180,1,235,255,227,251,188,248,198,0,180,8,247,2,101,254,6,0,226,252,36,254,208,5,190,3,118,253, +57,253,252,253,51,2,247,5,147,254,42,251,175,4,91,5,167,250,42,248,210,252,186,254,188,255,207,0,16,1,104,3, +73,5,18,0,34,249,18,252,95,3,143,1,44,251,101,251,235,0,173,5,118,5,3,1,222,254,219,254,234,253,108,0, +135,3,124,0,105,254,249,0,237,0,224,255,29,1,131,0,149,255,234,0,156,0,149,254,75,254,210,255,201,0,199,254, +25,253,201,0,39,4,150,1,205,0,140,4,191,1,67,249,44,251,26,4,28,1,147,249,198,254,126,4,54,1,5,3, +127,6,76,254,243,246,119,251,220,1,87,3,196,0,148,253,159,253,202,253,149,255,98,7,27,9,87,255,109,249,136,250, +122,252,71,1,133,2,243,252,32,254,23,4,123,1,255,253,175,1,83,3,127,0,76,0,195,1,150,254,199,248,118,250, +232,2,181,3,31,253,151,255,230,8,254,6,209,252,103,251,93,254,218,249,79,249,115,3,72,5,249,253,50,2,113,9, +132,1,148,249,147,254,17,2,228,253,245,251,28,255,115,2,97,2,168,0,184,1,19,3,136,0,178,254,55,0,200,255, +87,253,236,253,239,255,67,255,3,254,219,255,238,2,79,2,194,254,52,255,109,2,14,255,215,249,203,253,111,1,73,253, +237,254,120,4,211,255,217,252,229,3,109,4,74,255,131,0,35,0,123,252,194,253,192,254,33,0,15,6,203,2,52,248, +42,251,225,3,103,2,147,1,88,3,248,252,15,251,171,5,199,7,169,253,45,252,141,2,159,3,126,2,169,255,0,250, +2,254,148,6,169,0,187,249,235,0,247,2,220,252,46,0,184,2,21,252,50,253,92,3,193,255,96,250,246,251,91,2, +41,9,16,4,225,246,216,250,227,8,203,3,183,246,163,250,78,5,32,6,235,254,126,248,29,253,154,6,187,1,235,249, +152,3,55,8,31,250,185,249,179,7,241,0,100,243,123,253,16,9,114,2,199,254,79,4,133,2,175,252,2,0,220,5, +182,1,87,251,102,0,23,6,123,253,48,246,215,255,137,7,0,254,185,247,4,4,97,11,37,252,8,243,149,3,204,11, +163,251,48,247,64,5,71,5,115,249,218,249,123,3,204,8,199,3,209,248,211,248,102,3,118,4,140,254,176,254,251,253, +165,252,205,4,41,10,219,255,28,246,9,252,226,4,78,1,146,250,249,253,113,2,205,0,9,3,167,4,48,252,135,250, +255,4,214,3,252,247,154,248,82,2,13,5,37,1,117,254,230,0,133,3,132,0,138,254,221,0,106,255,136,252,250,254, +75,1,207,0,129,1,170,1,161,255,166,254,20,1,202,3,126,0,216,251,52,255,28,2,77,254,181,255,119,3,179,254, +0,253,254,1,127,0,33,255,98,4,200,1,219,249,113,252,189,2,221,2,9,2,115,0,51,252,20,253,126,2,90,1, +2,253,109,255,208,1,65,0,246,3,93,5,122,251,234,248,51,1,126,255,197,251,1,3,97,3,243,252,114,0,41,2, +41,253,125,0,124,2,123,250,152,251,159,5,94,5,140,254,220,252,102,255,98,2,190,1,214,254,10,1,136,3,27,253, +65,247,115,253,106,5,12,3,6,255,135,1,103,1,197,254,249,3,255,3,248,245,23,246,72,8,91,7,92,249,146,0, +14,9,192,252,232,249,80,6,198,3,209,251,181,2,169,4,147,249,250,247,243,1,109,5,248,254,68,250,142,254,67,2, +168,253,240,253,22,6,108,4,246,252,135,255,223,1,141,252,254,252,175,2,29,2,93,254,65,254,105,1,94,3,83,255, +147,251,41,0,97,2,55,252,186,253,71,7,211,4,113,250,247,250,65,2,7,6,113,5,112,252,117,244,156,0,11,15, +170,3,41,244,64,251,12,6,188,3,124,255,12,254,24,253,16,1,131,5,210,255,19,248,210,253,103,7,148,2,49,250, +213,253,178,2,72,2,88,3,97,0,93,250,250,253,229,2,49,255,240,253,219,0,98,1,189,3,97,4,118,252,146,247, +72,255,48,7,165,1,33,249,58,255,25,8,180,2,216,252,36,253,173,249,5,254,241,8,13,2,84,248,159,0,170,3, +99,253,18,1,209,0,213,246,88,250,104,6,186,5,147,253,182,251,189,0,203,2,211,252,44,250,70,0,78,4,136,3, +187,2,215,1,43,1,225,255,48,255,34,2,155,0,233,250,151,0,187,7,213,253,69,246,183,0,166,7,54,2,172,255, +219,255,187,252,67,0,11,8,247,0,171,245,242,254,142,9,142,255,55,250,209,1,202,254,55,252,189,6,116,5,59,250, +118,252,15,0,6,253,199,0,63,3,197,254,64,0,208,0,207,250,1,255,205,6,91,255,208,249,42,4,231,6,38,251, +128,250,132,5,207,3,191,248,231,248,93,1,82,5,153,3,168,254,253,251,230,0,74,5,198,0,39,250,24,250,199,0, +202,6,108,3,18,253,122,255,109,2,240,254,237,0,222,5,115,255,167,247,58,251,73,1,151,3,53,2,207,252,25,253, +251,2,110,1,48,0,84,3,103,251,50,249,150,11,188,10,79,243,193,247,171,9,34,1,62,251,219,5,191,0,192,248, +253,3,64,7,18,253,226,254,74,3,54,252,35,251,30,3,33,2,237,250,221,251,32,2,151,3,32,255,28,253,120,3, +151,5,213,250,0,250,95,8,58,4,8,244,91,253,239,9,75,252,70,245,104,2,116,5,67,254,240,252,3,255,8,3, +246,3,153,253,139,252,48,1,197,0,113,0,219,0,148,253,49,255,110,3,212,0,60,255,164,2,68,3,131,255,137,251, +50,254,159,4,250,1,115,253,31,1,207,0,127,254,142,3,52,2,2,252,17,255,218,0,12,0,16,4,218,255,173,250, +188,3,234,4,203,250,194,253,23,3,230,254,214,255,156,1,36,254,129,0,21,2,231,251,205,250,10,1,158,5,27,3, +7,252,2,255,54,8,33,2,195,249,73,1,134,3,31,251,85,252,17,0,133,253,166,0,207,4,219,0,198,254,47,0, +246,252,121,250,60,0,89,6,164,0,90,247,52,253,40,7,173,0,115,250,173,1,78,1,39,251,53,3,155,7,251,250, +169,248,211,4,67,4,178,250,219,252,218,3,100,3,146,0,28,0,134,0,56,1,100,0,110,254,240,254,244,255,59,0, +62,3,29,2,206,249,217,252,52,9,77,2,25,244,193,253,239,9,151,2,204,254,137,1,155,251,180,252,70,6,64,1, +174,248,34,255,115,7,190,7,121,1,237,247,157,249,30,5,140,5,202,253,146,251,252,251,37,254,126,1,181,0,50,1, +104,3,216,254,166,250,95,254,230,2,99,3,242,254,48,252,1,4,55,7,180,251,43,248,93,0,125,1,155,1,186,4, +210,254,124,250,76,1,207,3,178,254,122,251,46,253,172,5,14,9,64,251,163,242,239,255,241,10,115,4,128,251,152,250, +81,255,186,2,146,0,81,0,93,4,91,1,20,250,22,252,162,1,131,1,159,1,71,2,64,0,24,2,237,2,155,250, +167,249,209,3,29,2,115,252,190,5,82,7,85,250,111,251,226,2,172,254,148,1,154,7,4,252,84,246,160,2,67,3, +226,250,243,0,240,6,53,255,79,251,249,1,105,3,131,250,42,248,16,4,50,9,121,254,18,250,227,255,95,255,54,255, +240,4,57,0,17,247,234,253,41,8,204,2,79,249,205,250,8,3,148,6,65,1,212,252,15,2,212,4,181,251,253,247, +165,2,40,7,166,253,108,249,95,1,82,7,104,3,226,252,52,253,235,255,58,251,220,250,24,9,214,12,177,250,83,243, +114,0,105,6,87,0,243,251,215,252,104,5,19,11,233,254,50,245,14,255,107,3,42,252,216,0,147,6,104,252,5,250, +7,6,222,3,255,247,100,253,45,7,146,0,173,251,71,4,92,5,166,251,56,251,178,1,222,0,106,253,249,254,40,3, +64,4,250,253,156,249,158,1,218,6,60,254,255,249,51,0,169,2,210,1,157,1,59,254,230,253,170,2,129,1,9,253, +185,255,48,3,96,254,203,249,49,1,96,9,225,255,35,245,193,0,55,11,118,254,65,246,57,0,60,4,246,255,196,0, +15,1,177,255,31,2,242,255,24,250,103,254,237,4,109,255,105,251,119,3,143,5,195,252,179,252,48,3,99,0,200,253, +99,2,160,1,177,254,56,1,225,255,235,253,95,2,181,0,222,251,230,0,36,2,38,252,193,0,95,6,208,255,97,252, +103,254,187,252,203,255,251,3,171,253,223,251,104,3,64,0,94,250,251,2,152,5,235,250,25,255,233,9,151,254,136,246, +207,5,208,5,206,244,75,253,90,11,73,254,38,249,30,7,50,4,161,251,163,2,179,1,139,249,204,255,154,4,102,254, +166,254,167,2,211,255,67,253,205,0,2,5,134,255,215,246,82,0,81,11,21,252,155,243,239,5,199,6,153,247,43,1, +127,9,197,249,39,249,177,7,238,2,43,250,219,254,155,0,222,255,20,3,24,0,168,251,175,255,86,3,62,1,229,252, +60,250,195,0,248,7,204,255,87,249,170,2,243,1,170,247,86,2,243,12,119,252,61,245,83,5,234,6,82,252,192,252, +211,253,34,2,48,12,236,255,245,238,239,0,226,16,20,0,162,248,122,1,225,252,29,251,123,5,104,4,173,253,71,254, +43,255,152,2,9,3,249,248,136,250,172,6,123,0,189,248,84,3,171,4,204,251,63,1,20,4,69,251,129,0,54,10, +46,255,206,243,229,251,21,5,196,3,20,1,34,255,104,252,19,255,78,5,148,2,141,249,140,250,161,2,131,2,175,255, +111,4,30,5,200,250,48,247,98,2,13,9,31,1,16,250,80,251,25,253,236,1,121,8,208,0,241,244,249,253,38,11, +235,3,233,250,19,254,56,255,5,255,152,2,230,255,33,253,185,4,188,6,3,253,14,250,169,255,56,1,193,255,104,255, +24,255,107,0,124,2,213,1,52,0,66,255,218,253,48,253,68,254,202,0,42,4,233,2,96,251,50,250,106,3,90,5, +150,253,160,0,81,9,121,0,86,244,58,253,74,8,87,1,15,250,54,254,30,2,112,2,156,1,214,252,144,250,164,1, +93,6,17,255,1,249,65,255,176,3,16,253,62,253,98,7,29,3,232,245,98,253,9,13,167,6,19,247,84,248,151,5, +57,10,28,255,67,246,44,254,20,4,150,253,167,255,242,7,78,2,179,251,177,255,157,255,182,253,56,2,160,0,93,250, +80,254,83,5,169,3,124,254,208,253,108,1,183,0,111,251,237,255,137,8,226,0,43,246,17,253,157,5,236,1,244,253, +175,254,53,255,12,255,29,255,50,2,107,4,218,252,125,248,2,5,134,10,131,251,116,247,108,5,227,3,49,247,97,253, +222,5,94,253,205,253,243,7,200,254,7,247,68,6,145,6,23,244,160,250,25,10,70,0,35,249,91,2,35,2,166,254, +47,3,143,1,178,255,252,3,99,254,63,249,213,2,115,4,81,253,197,3,19,5,70,247,43,253,41,13,180,254,55,240, +17,4,197,12,70,249,218,250,253,9,156,254,246,246,111,6,233,3,137,245,60,255,120,8,248,254,176,252,200,255,98,253, +36,2,46,4,7,251,128,253,11,6,110,0,66,255,79,7,191,0,192,246,192,253,192,4,65,0,222,253,186,0,53,0, +236,252,254,253,131,2,84,2,230,253,145,252,246,254,174,2,3,3,241,251,81,250,88,5,163,7,109,252,116,251,160,2, +18,0,185,252,68,1,85,3,39,1,102,0,175,255,170,255,67,2,130,1,104,251,185,251,205,4,39,4,224,250,30,0, +89,7,70,252,148,251,229,9,56,255,135,241,46,6,202,13,2,247,41,251,191,12,113,253,80,245,225,7,16,4,188,244, +229,0,153,9,18,253,113,252,241,3,255,254,254,253,121,3,7,255,242,251,127,0,179,253,208,251,54,4,26,4,172,251, +154,253,230,1,231,254,58,253,255,253,170,1,154,6,46,255,36,248,75,4,192,6,174,246,12,251,221,8,238,255,44,252, +0,6,212,253,139,246,190,4,65,7,114,250,122,250,58,1,155,3,28,4,118,254,104,250,104,255,143,1,86,2,120,5, +164,254,20,249,204,1,109,2,58,250,151,0,7,7,100,255,2,254,95,3,248,1,192,1,150,1,167,251,126,254,197,5, +42,255,188,250,11,3,135,2,201,253,18,5,45,4,110,248,237,252,244,4,51,252,240,249,107,3,84,2,148,254,109,1, +219,254,152,252,101,0,105,0,72,1,208,1,207,249,172,252,59,8,49,254,113,245,166,6,85,9,228,247,197,251,9,6, +228,254,233,254,114,4,232,251,135,249,33,4,46,4,155,253,118,255,124,2,171,0,87,253,153,252,40,2,161,5,146,254, +100,251,118,4,46,6,82,251,207,250,135,5,210,3,155,250,211,255,117,8,45,2,241,249,231,251,172,255,36,1,117,1, +117,255,71,254,245,253,144,252,156,255,214,3,207,255,79,252,182,0,249,1,162,255,249,0,125,254,92,250,157,1,174,6, +58,252,43,249,198,5,115,7,155,253,193,253,74,1,95,255,160,1,91,2,192,251,91,253,243,4,79,2,234,253,93,0, +87,1,8,1,92,1,73,255,60,0,180,2,253,254,144,253,100,2,93,2,218,254,56,255,79,0,217,0,7,2,250,1, +191,255,54,252,166,254,169,6,181,1,77,245,66,252,88,7,232,254,197,250,38,4,146,1,24,250,181,0,140,5,65,254, +204,249,237,254,45,4,241,0,124,252,174,1,185,5,251,254,69,251,44,255,253,0,101,1,231,0,154,254,92,0,178,1, +175,254,19,0,198,255,125,248,83,253,113,10,243,4,121,248,193,253,35,6,165,0,61,251,225,0,221,5,179,1,180,253, +62,255,109,255,239,254,137,0,20,254,132,252,221,2,117,3,205,251,179,253,7,5,21,2,34,252,159,253,120,1,70,1, +78,255,238,0,179,1,142,253,127,255,99,4,91,253,48,251,91,6,1,2,184,247,197,4,196,9,171,246,102,246,103,6, +86,3,48,252,188,255,184,0,70,2,83,3,58,252,0,253,158,5,230,2,2,254,68,255,36,253,155,254,246,3,248,255, +238,253,233,3,140,1,43,253,172,1,236,1,62,253,251,253,85,0,117,2,203,2,3,253,5,252,157,2,123,1,17,253, +154,0,149,1,46,253,209,253,171,0,39,0,142,254,48,253,19,255,148,3,170,1,200,251,74,255,55,7,79,2,95,248, +42,254,110,7,44,0,223,250,113,2,244,0,44,252,70,4,188,2,178,247,95,0,0,9,217,252,83,251,249,5,19,0, +3,251,17,5,131,2,226,245,120,252,215,9,222,4,102,251,27,254,224,0,216,254,162,1,166,0,158,249,135,0,199,8, +229,251,144,247,51,7,192,4,217,248,184,0,35,3,213,249,65,0,38,6,93,253,145,253,46,2,50,254,110,0,72,2, +56,249,252,251,156,8,27,3,183,247,116,254,17,8,177,2,242,250,89,254,119,4,192,3,95,0,115,253,232,251,238,255, +101,3,68,0,146,255,6,1,119,254,195,0,56,3,16,251,212,252,120,10,193,2,99,243,94,255,180,10,99,253,189,249, +144,5,36,2,113,250,115,1,237,2,189,250,7,253,207,2,134,0,254,255,130,0,102,253,81,255,64,2,80,255,149,255, +172,1,155,0,170,1,203,253,142,249,20,6,161,8,38,244,253,248,120,15,145,2,235,243,242,4,166,5,122,246,220,0, +60,9,47,253,94,253,148,3,213,253,53,254,77,3,253,255,204,255,125,1,58,251,35,251,3,5,104,5,99,251,71,249, +189,1,101,6,148,1,196,251,172,251,178,0,120,4,18,0,90,251,185,0,206,4,118,254,119,250,168,255,226,5,226,4, +113,252,76,250,41,3,170,4,248,253,57,255,119,1,123,254,227,255,167,1,1,1,175,2,71,254,132,249,164,0,240,1, +48,252,175,2,201,3,129,250,156,2,49,8,196,247,178,249,79,11,201,1,115,245,53,1,114,5,26,254,179,0,46,1, +45,252,122,0,195,3,101,254,231,253,219,1,118,0,217,252,183,254,203,5,186,5,164,250,247,248,207,4,125,5,175,251, +134,252,179,2,131,2,48,0,174,254,172,255,111,0,40,251,243,252,238,7,168,2,163,247,131,1,95,6,6,251,94,255, +19,5,65,248,104,252,206,11,125,255,194,245,75,5,121,6,148,250,50,255,39,3,138,253,27,0,100,3,50,255,170,253, +82,254,168,255,245,2,8,0,178,251,211,0,192,3,22,254,149,254,238,4,39,2,117,250,32,252,11,2,103,0,218,253, +56,1,32,2,197,0,61,2,148,254,196,249,190,255,109,3,101,253,146,254,173,4,11,2,146,254,154,255,236,255,170,0, +44,255,205,251,2,1,36,7,55,0,219,249,17,1,25,7,134,0,48,250,218,255,44,5,59,254,191,250,32,3,103,3, +95,251,226,254,200,4,0,0,129,254,5,2,235,254,189,253,22,2,195,254,187,250,55,3,59,8,79,254,37,250,105,4, +49,6,26,250,91,249,31,6,241,4,72,248,127,252,210,6,169,252,73,245,242,6,244,13,217,249,108,242,110,1,19,7, +55,255,36,251,17,255,52,5,119,3,190,253,59,1,162,1,181,249,7,0,233,6,244,248,11,249,170,11,168,4,105,247, +53,3,88,3,51,246,87,1,228,9,56,251,156,252,130,9,8,0,243,246,180,0,100,4,114,255,10,0,210,255,88,255, +95,4,232,1,215,248,241,252,170,5,22,0,193,250,146,1,228,3,236,254,49,255,106,0,198,254,71,0,221,0,65,254, +151,254,188,255,157,0,194,2,210,254,248,249,226,0,6,6,66,254,16,251,87,1,190,3,86,3,252,1,9,250,64,246, +215,1,89,12,106,4,107,247,91,250,138,6,60,7,51,254,140,252,153,0,192,253,223,250,185,1,85,4,102,252,234,253, +233,7,181,3,114,250,176,253,206,255,46,252,251,254,108,1,239,255,145,2,35,2,45,255,209,2,171,255,130,247,200,0, +186,9,98,253,206,247,94,3,86,4,236,251,235,253,195,2,54,0,45,0,40,5,160,1,236,248,23,253,17,5,123,0, +253,253,251,1,183,253,148,254,38,9,11,3,34,247,228,253,179,3,189,0,74,2,56,254,222,250,42,6,46,4,38,244, +129,251,45,8,132,254,60,252,50,7,71,2,118,249,120,0,115,6,44,0,164,248,253,250,86,5,14,7,76,253,142,251, +47,2,224,1,100,255,43,0,42,254,106,254,45,2,105,255,177,253,30,4,107,2,189,248,215,250,88,3,57,3,115,255, +204,253,173,255,90,4,226,255,196,247,199,1,52,12,170,254,151,246,195,4,220,7,209,252,115,254,44,3,68,252,237,249, +229,1,30,5,145,0,56,254,53,1,187,2,206,255,24,254,118,254,124,253,91,254,245,1,55,3,84,2,252,0,229,253, +172,251,141,253,218,0,245,0,21,254,214,253,204,1,94,4,91,2,170,253,149,252,161,2,50,3,226,249,194,251,172,6, +186,2,95,253,36,4,193,255,39,247,96,2,184,7,80,250,10,251,184,6,234,2,10,253,189,0,185,255,151,252,132,1, +175,3,178,252,12,251,25,3,204,3,39,252,198,254,194,5,85,0,155,250,189,254,155,2,236,4,223,3,77,251,3,251, +237,4,164,3,242,251,175,252,143,255,222,3,36,7,63,254,201,248,211,1,245,1,149,250,196,0,131,3,164,248,13,251, +24,9,105,6,221,249,228,249,94,1,179,3,224,2,233,1,77,255,187,253,166,255,118,1,140,0,64,253,165,250,62,255, +207,6,153,4,229,253,182,253,87,253,6,253,158,4,248,4,230,247,118,248,46,9,231,10,12,253,24,248,235,252,237,1, +161,5,53,2,57,250,70,252,189,2,211,0,56,1,82,4,207,250,97,246,133,6,130,10,223,249,252,249,42,7,126,2, +181,249,94,255,120,4,203,1,2,255,20,254,55,1,215,4,244,255,150,250,119,255,23,4,95,0,48,254,227,0,145,0, +142,254,116,0,195,0,39,252,14,252,19,3,135,5,173,255,25,253,128,1,216,0,210,251,253,0,109,5,142,249,222,245, +166,4,203,5,110,252,17,1,28,1,177,250,110,5,158,8,152,248,152,251,213,6,224,253,25,253,202,6,202,254,163,250, +0,5,4,2,116,251,93,1,165,1,217,253,122,1,167,0,87,251,213,254,195,6,116,4,53,247,8,246,147,6,144,6, +220,246,89,253,223,8,90,255,91,253,99,4,129,253,231,253,144,6,31,252,191,246,103,6,3,7,47,250,103,252,174,1, +107,0,107,2,109,1,255,252,104,255,215,1,26,255,248,253,5,255,127,1,215,2,216,253,187,251,163,2,52,5,31,1, +35,255,175,252,221,252,34,3,214,1,173,251,71,0,141,3,208,253,188,254,167,1,215,255,85,5,140,5,202,248,73,252, +65,7,64,252,248,248,13,8,70,1,93,247,1,9,196,9,149,243,67,250,20,9,144,251,105,248,230,7,46,0,161,244, +129,5,78,13,0,251,162,249,208,10,15,7,60,247,227,250,62,7,181,4,110,248,225,247,146,5,10,5,63,243,136,249, +32,15,113,4,23,246,142,4,192,1,86,241,155,3,90,14,69,245,67,246,221,12,98,3,109,247,76,3,92,5,25,253, +39,254,4,0,108,255,81,255,63,255,65,3,223,2,81,252,165,255,218,3,48,254,95,255,98,2,73,253,218,2,26,9, +252,251,215,247,201,4,69,3,205,250,238,254,165,1,83,0,7,3,185,1,203,253,142,254,97,0,2,3,219,1,156,249, +39,252,100,7,91,0,161,245,215,1,243,9,95,251,13,247,249,5,43,9,66,253,153,250,239,2,237,2,40,250,181,252, +187,6,141,0,6,247,4,2,41,9,172,251,42,249,240,4,54,2,86,251,17,0,194,255,136,252,4,4,207,5,242,251, +230,251,192,4,170,2,110,249,49,251,199,4,190,3,146,251,236,253,147,3,91,0,92,255,103,2,157,255,40,255,83,3, +162,0,109,253,91,255,254,252,121,252,159,4,156,6,12,0,221,254,96,1,55,0,50,254,219,252,43,252,163,255,60,5, +248,4,43,255,211,252,26,255,178,0,255,1,134,1,31,253,61,252,71,255,253,255,225,2,102,2,255,247,90,251,15,12, +138,5,252,246,245,0,152,5,0,249,88,253,225,6,3,254,145,249,205,255,56,2,85,4,92,255,133,245,237,255,192,11, +188,253,228,246,64,3,5,2,25,253,203,4,229,0,26,249,96,3,158,4,10,248,206,255,31,11,19,254,208,247,183,5, +90,7,141,253,34,254,84,1,8,0,110,255,236,253,55,0,82,5,145,254,132,248,102,3,78,5,32,248,73,253,144,10, +76,1,39,248,76,1,144,3,103,252,40,254,31,1,10,255,28,2,82,5,47,0,106,252,164,255,2,2,199,255,60,252, +24,252,66,1,241,4,112,1,252,252,120,252,148,254,237,4,118,7,120,251,65,245,21,5,214,10,34,249,97,246,223,4, +25,3,198,253,242,5,172,2,189,247,185,255,161,5,122,250,43,253,116,10,17,2,115,246,93,1,212,9,145,0,40,251, +72,254,193,253,118,252,234,254,123,1,125,1,60,253,109,251,130,3,221,7,233,255,118,252,89,0,68,255,16,255,119,1, +94,253,65,252,255,1,44,1,220,255,201,4,95,2,237,252,157,255,218,254,168,250,54,255,191,3,156,1,137,0,74,1, +140,3,227,3,63,251,219,248,106,6,195,8,253,249,193,248,133,3,33,2,144,253,41,2,61,1,158,250,229,0,150,8, +208,253,36,247,221,2,146,2,230,248,81,4,137,9,141,245,212,247,41,14,42,5,199,243,246,253,179,4,228,253,157,255, +182,255,83,252,226,3,112,5,48,252,183,254,237,3,3,254,249,253,207,2,81,254,85,253,153,4,1,3,39,252,169,254, +8,4,124,2,15,255,13,0,82,1,171,253,247,252,109,4,106,4,168,249,107,251,48,7,235,2,155,248,39,253,240,1, +212,254,254,1,237,4,82,253,42,250,115,1,112,4,244,254,179,251,205,0,211,4,3,255,166,252,243,3,223,0,115,246, +181,253,41,9,219,0,109,247,103,254,196,4,236,255,192,252,52,2,230,4,174,254,252,251,166,0,44,1,12,0,46,2, +81,254,9,251,68,3,164,5,68,252,80,252,155,3,156,1,54,254,35,1,180,0,143,251,231,251,140,3,187,7,255,1, +18,253,138,1,100,4,143,254,47,251,73,255,84,2,223,1,49,1,60,254,211,251,64,1,171,5,68,255,231,250,164,254, +18,255,254,255,198,4,147,0,110,251,39,1,109,1,6,253,232,2,112,2,248,248,215,254,198,6,192,254,59,253,47,4, +182,255,127,252,22,3,184,1,90,252,244,0,201,3,223,252,72,250,11,1,189,3,194,254,235,254,193,3,9,0,240,250, +19,0,141,1,65,250,95,253,243,6,93,1,35,249,73,2,187,7,21,250,39,247,211,7,115,8,138,248,158,250,205,5, +232,0,227,251,98,1,94,0,90,253,37,4,69,4,43,250,206,252,236,6,81,1,105,250,243,3,246,6,68,251,41,251, +249,3,129,2,81,1,247,2,178,252,1,253,144,5,110,1,235,251,204,0,44,253,5,249,114,5,186,9,159,252,228,248, +138,0,124,4,76,3,33,253,255,249,65,2,200,6,117,255,186,250,163,251,72,255,113,7,244,5,237,247,229,248,230,7, +121,5,111,249,62,253,79,3,150,254,17,254,73,2,83,0,157,254,63,1,254,1,82,0,128,253,220,252,107,1,142,2, +193,254,84,255,171,255,249,253,78,2,210,2,62,252,96,254,115,2,84,255,216,0,136,0,4,250,152,255,180,5,26,254, +25,0,5,6,119,250,236,248,48,9,134,7,235,249,175,251,130,3,11,4,208,254,68,250,47,254,43,3,78,2,18,3, +45,0,99,250,22,2,154,6,139,249,30,249,27,5,99,0,108,252,215,5,152,2,113,249,238,254,111,2,64,253,207,253, +46,1,97,1,153,255,201,251,3,255,115,8,153,5,74,252,106,253,39,254,114,252,93,5,75,7,81,248,140,247,62,6, +153,4,104,251,201,254,255,0,181,255,89,5,243,4,149,251,183,250,99,255,147,255,112,0,244,1,242,0,120,1,235,1, +217,255,233,255,83,1,250,254,143,251,124,253,146,2,157,2,99,255,52,255,81,254,113,253,66,1,186,1,43,0,4,4, +172,254,231,244,53,1,47,13,142,254,127,246,188,1,178,4,131,2,95,2,4,252,162,253,233,4,184,251,2,248,234,7, +204,6,118,246,12,253,139,11,114,4,209,249,44,252,254,254,161,255,54,3,58,1,213,251,76,0,45,3,105,251,122,254, +198,8,135,0,32,248,9,2,118,4,205,252,4,255,83,1,246,255,74,3,1,0,55,252,132,5,160,4,192,247,154,253, +100,7,162,253,236,249,240,3,30,2,183,251,24,2,120,5,36,254,124,252,122,0,132,255,248,254,12,0,64,253,165,0, +171,7,224,253,135,244,235,3,10,12,228,250,24,247,228,4,9,3,203,250,141,255,9,2,205,253,171,255,61,2,77,255, +45,255,46,1,136,254,58,254,179,4,164,4,61,250,24,248,169,3,93,8,156,254,48,250,116,2,236,3,169,252,160,1, +64,8,166,250,72,243,28,4,105,9,173,252,154,252,184,1,229,254,187,1,42,3,111,251,176,252,80,4,35,3,197,254, +144,251,66,252,144,3,115,3,31,253,224,0,225,2,76,252,5,254,226,1,14,255,36,1,251,0,184,249,146,254,102,7, +175,0,160,251,183,1,215,0,243,251,152,1,58,6,136,253,64,247,123,0,136,7,78,255,253,250,154,4,128,8,210,255, +209,250,219,254,175,1,179,255,62,255,18,0,151,253,25,255,105,6,207,3,151,249,191,251,203,5,145,5,207,251,230,246, +94,255,212,7,51,1,170,251,144,1,235,255,105,251,169,4,96,7,135,249,88,246,60,4,23,10,160,253,18,246,29,4, +151,8,188,244,159,248,111,19,16,8,175,237,146,252,206,12,230,252,143,247,178,4,238,3,224,250,185,252,167,5,71,8, +18,255,119,248,117,254,111,2,44,1,75,3,178,255,186,249,252,1,24,7,233,250,45,249,186,4,62,255,3,247,109,6, +180,13,197,249,187,244,108,7,148,7,234,247,164,250,215,3,44,254,152,252,209,7,6,5,124,244,116,250,146,15,229,7, +128,242,152,250,194,9,155,1,203,251,182,3,201,2,93,249,214,247,72,3,19,14,44,1,145,239,158,254,126,15,95,255, +56,247,17,6,140,0,129,240,105,254,121,17,146,4,26,242,221,252,192,12,44,2,177,246,52,1,50,4,50,248,226,251, +22,8,90,3,88,250,95,253,171,2,39,0,165,252,146,1,185,4,103,253,144,253,49,6,52,1,150,250,144,2,146,4, +150,253,99,254,122,255,54,254,97,2,21,1,109,251,241,255,40,3,87,252,133,252,49,5,33,4,148,250,143,252,139,8, +217,4,146,245,17,250,38,8,80,2,152,249,82,1,232,5,72,255,109,252,145,255,138,1,8,0,45,254,209,0,235,2, +100,254,51,252,144,1,122,3,179,253,117,251,123,1,67,3,164,251,140,251,62,6,60,5,34,250,21,254,35,8,41,0, +130,246,47,0,153,7,9,253,59,249,187,4,199,6,105,254,14,254,229,255,23,253,40,255,173,3,203,3,121,2,16,254, +68,250,165,0,20,6,28,255,231,249,27,0,21,6,150,2,218,252,113,255,196,3,216,255,138,253,5,1,198,254,184,251, +123,255,138,1,108,2,214,2,135,251,47,250,223,4,228,2,61,247,33,253,43,9,45,4,149,250,78,254,160,5,38,0, +120,248,181,255,127,5,250,252,185,252,43,6,87,2,234,250,40,255,0,3,235,1,253,0,150,254,176,253,143,255,59,1, +65,3,129,0,19,252,5,2,6,5,240,251,194,253,119,6,126,254,43,249,241,3,83,3,109,248,70,253,31,7,58,3, +173,252,21,254,165,1,164,1,245,253,108,251,138,254,5,2,166,0,86,0,168,1,217,253,231,252,136,4,250,3,106,250, +33,252,178,2,80,255,115,254,245,3,54,2,137,253,6,0,39,4,199,0,209,246,7,247,218,5,245,7,90,251,47,255, +44,8,206,253,62,250,164,6,79,2,25,245,118,252,91,7,13,2,189,253,31,3,12,3,248,251,149,253,97,6,244,3, +4,249,95,250,10,6,61,7,193,252,20,250,126,4,253,7,178,252,112,248,166,1,152,3,120,254,181,0,1,1,123,250, +196,252,209,3,147,0,67,253,54,2,231,2,154,255,145,0,229,253,171,250,246,2,12,6,58,251,247,251,70,5,113,0, +90,254,156,5,104,254,177,247,133,3,151,5,69,251,17,254,183,3,75,2,80,2,29,252,190,246,208,2,155,9,67,254, +223,250,155,1,205,1,114,0,42,1,23,255,203,252,191,252,177,0,145,5,137,1,145,251,187,255,211,2,23,254,205,253, +107,1,221,254,154,251,78,1,112,8,122,2,87,247,4,251,53,5,98,3,131,254,59,255,59,253,133,252,129,3,175,6, +115,0,211,251,211,255,211,4,179,1,148,253,221,255,24,254,231,249,189,1,97,7,81,253,173,250,252,4,194,3,222,251, +231,255,219,2,179,250,226,249,109,5,181,7,26,252,50,249,92,3,149,4,1,252,195,253,76,5,77,2,163,253,143,1, +140,2,12,252,18,251,7,2,164,4,251,255,238,253,6,2,150,3,188,254,91,252,175,255,139,0,214,255,28,3,103,2, +7,252,64,252,98,0,61,0,213,2,61,5,93,253,126,247,219,253,133,4,202,3,180,254,200,250,222,253,49,3,170,4, +35,4,101,253,249,245,43,254,111,7,77,0,136,252,202,1,126,0,203,0,87,3,208,251,71,251,215,6,195,5,69,253, +3,253,183,251,11,253,192,5,176,3,34,251,15,255,52,4,212,0,253,0,83,3,138,253,161,247,193,253,121,7,93,4, +71,251,88,253,111,3,78,2,72,1,221,0,58,252,176,251,5,0,130,1,93,3,197,3,169,252,255,249,228,2,123,7, +78,0,70,250,149,253,237,2,166,1,155,253,158,254,164,1,88,1,22,0,10,255,82,253,138,254,98,2,37,1,43,252, +12,255,200,5,70,0,93,248,133,1,123,8,8,251,217,247,71,9,204,6,253,242,67,250,102,12,68,2,42,246,123,1, +134,6,242,252,123,253,246,2,208,255,206,253,41,255,238,255,0,3,196,0,245,249,4,255,181,6,4,1,118,252,68,255, +61,254,39,255,158,2,251,253,186,252,160,4,245,2,2,252,60,2,178,7,138,253,1,247,56,0,134,5,220,253,151,251, +113,2,206,2,39,0,252,2,106,1,116,253,35,1,20,1,135,251,36,0,35,6,178,0,245,252,78,0,72,1,251,255, +39,255,39,0,175,3,151,1,225,250,194,252,74,1,6,253,222,251,254,3,88,5,109,252,168,249,37,2,203,7,189,1, +109,250,227,252,21,2,69,0,85,254,103,3,68,4,3,252,130,252,9,7,114,4,236,249,214,253,53,3,236,252,43,254, +194,6,246,2,200,252,42,0,58,255,103,250,173,0,125,8,1,2,149,249,187,255,29,7,145,254,74,247,232,2,40,10, +56,252,44,244,239,255,187,6,125,0,7,255,69,2,131,254,196,250,156,0,247,5,110,0,98,249,93,252,146,2,137,1, +129,254,75,0,99,0,49,252,69,253,216,3,38,4,210,253,29,253,157,3,176,3,234,250,32,251,120,5,185,3,212,250, +75,1,0,7,246,250,128,248,252,6,70,6,182,248,10,251,30,5,170,2,84,253,179,0,123,2,202,253,67,255,7,5, +118,255,22,249,28,1,48,5,147,253,203,254,105,4,99,255,13,253,243,1,10,1,212,254,216,0,133,0,13,0,138,1, +199,255,182,252,8,252,134,254,221,3,180,3,247,251,238,249,101,0,24,4,117,1,211,253,241,254,87,2,202,255,253,252, +46,2,77,4,33,255,118,254,196,255,102,253,230,255,75,4,231,255,64,251,192,255,131,4,7,2,142,254,126,255,153,255, +49,253,38,0,172,3,28,253,208,250,67,6,240,6,86,249,201,251,8,9,28,4,75,249,211,252,198,0,207,254,33,2, +164,3,154,252,134,251,110,2,74,2,11,253,175,254,108,2,97,255,4,253,239,1,204,2,244,251,213,252,253,3,107,1, +6,253,205,0,14,1,98,254,208,0,128,254,182,250,48,2,173,6,127,0,238,255,12,3,116,0,81,255,121,255,58,254, +111,1,202,1,176,250,13,251,80,3,192,4,136,0,216,254,67,0,149,2,119,2,187,255,78,254,128,255,11,1,37,255, +21,253,16,2,35,4,39,252,141,253,101,8,2,3,141,247,33,253,72,4,211,0,243,254,110,255,210,254,119,0,214,0, +90,0,99,2,137,0,0,253,78,255,221,255,221,252,190,255,75,3,244,255,0,253,153,254,53,1,30,3,46,2,250,254, +253,253,223,254,20,0,41,2,235,0,45,252,135,253,175,3,139,2,218,253,212,255,228,1,82,255,187,255,168,0,152,252, +70,252,227,1,22,3,227,255,27,255,207,0,182,2,155,1,40,253,174,252,103,1,159,2,97,255,202,254,242,0,41,0, +25,253,188,253,42,1,229,1,252,0,39,0,57,254,188,254,180,1,221,0,61,254,69,254,67,255,19,2,98,4,91,0, +188,251,44,253,6,2,218,6,44,3,59,247,165,248,14,7,200,7,111,254,207,253,204,254,61,253,248,255,177,0,19,254, +87,0,158,2,211,255,72,254,147,0,49,3,29,2,57,254,104,254,167,0,236,254,156,255,112,2,173,253,244,250,160,3, +155,6,189,253,178,251,212,1,46,1,44,254,52,2,41,3,246,252,251,252,188,1,41,255,95,253,164,2,27,1,62,250, +108,254,46,6,40,2,68,251,182,253,221,2,117,2,78,0,16,0,0,255,232,254,196,1,23,0,147,250,45,253,109,3, +78,1,63,254,158,1,76,2,10,254,76,254,109,2,101,0,126,250,54,253,61,4,30,1,252,250,124,254,92,3,120,3, +179,3,104,1,198,252,114,253,208,1,164,4,68,3,186,252,2,251,6,2,245,2,158,253,175,255,136,2,98,254,102,253, +121,1,21,3,28,2,160,255,131,253,112,255,132,1,64,0,148,255,200,255,243,254,152,255,219,0,134,255,11,255,165,1, +86,1,202,253,90,255,103,3,117,0,182,252,210,255,27,1,14,254,126,255,93,2,250,255,49,254,40,1,240,2,197,255, +71,253,155,0,162,2,71,254,24,253,160,0,168,0,248,1,117,4,75,253,49,248,200,0,176,3,240,252,63,0,210,4, +231,252,167,252,89,8,223,4,100,246,164,249,203,5,164,2,96,251,153,255,223,2,110,254,50,254,222,2,201,1,133,251, +58,251,140,3,217,6,72,255,30,252,109,0,33,255,233,254,97,6,238,3,232,248,155,251,88,5,133,3,73,253,196,253, +137,0,186,255,146,254,93,2,173,4,142,254,140,251,81,1,145,1,114,252,188,254,255,1,254,254,158,255,160,4,225,2, +160,252,91,252,252,255,166,255,78,254,152,0,36,1,15,255,93,1,192,4,6,2,224,253,145,253,47,255,6,1,48,1, +167,254,217,253,147,1,111,4,209,0,96,252,124,255,225,2,104,254,17,253,160,2,103,1,241,252,45,1,147,3,12,254, +13,254,140,2,68,0,60,254,106,2,76,1,139,250,251,252,11,4,206,255,75,250,213,1,34,7,221,255,89,252,154,0, +151,0,106,254,190,255,32,0,205,254,98,255,170,1,196,2,26,0,29,253,200,254,25,1,124,0,145,255,29,254,95,254, +78,3,231,3,80,253,81,252,179,0,168,255,169,253,78,0,220,1,207,1,180,1,162,254,51,254,32,3,31,1,5,250, +50,254,131,5,255,0,65,253,79,1,35,0,5,253,10,0,21,0,163,254,208,2,13,2,68,253,44,1,199,3,213,253, +73,253,217,0,249,254,6,0,54,4,195,255,138,250,173,0,123,6,246,0,117,252,255,0,176,1,139,252,178,255,236,4, +32,255,100,251,13,1,121,1,47,254,172,0,144,0,195,253,238,1,79,4,68,254,244,251,97,255,248,255,127,1,246,4, +135,255,113,248,8,1,211,9,20,255,150,247,164,1,30,3,136,251,121,1,90,5,28,251,141,251,104,5,115,2,201,252, +245,254,4,255,76,255,5,3,103,1,168,253,207,254,246,0,68,2,186,0,54,251,39,252,106,3,187,1,75,252,201,1, +51,6,126,253,204,248,40,2,153,6,157,253,58,250,24,3,83,5,102,252,106,250,129,1,88,2,8,254,213,255,103,3, +25,1,77,254,159,255,190,0,67,255,99,254,193,255,6,0,155,254,14,1,11,5,228,1,76,254,186,2,134,3,69,253, +155,254,109,3,151,254,155,250,90,0,73,3,44,254,162,251,190,255,151,2,27,1,54,2,20,3,135,251,47,249,44,4, +48,5,222,249,69,252,111,5,11,2,101,255,29,3,76,255,96,250,79,255,180,4,122,2,247,252,187,251,63,0,112,2, +80,0,107,0,157,0,23,255,133,0,93,0,242,252,85,255,170,3,169,1,29,0,229,1,67,1,137,255,126,254,193,253, +2,0,224,1,65,255,129,254,35,1,135,255,168,252,137,0,189,3,21,254,28,251,43,2,71,4,110,253,68,253,217,1, +154,0,174,1,164,4,24,254,136,250,225,2,237,3,83,252,230,253,7,2,71,254,245,252,225,0,24,2,215,0,25,255, +162,254,162,1,92,1,99,252,173,253,193,2,36,1,46,255,64,1,186,255,113,254,143,2,247,1,214,251,40,252,26,1, +112,1,249,254,59,255,12,2,178,2,166,255,61,255,89,2,139,1,54,255,8,1,5,1,251,253,133,255,94,2,49,255, +171,251,243,255,248,5,108,1,215,248,248,253,126,7,162,1,91,250,74,0,31,2,137,252,63,0,223,4,222,254,51,253, +167,3,52,2,15,251,54,252,59,2,65,3,178,0,12,254,154,251,199,253,49,4,34,4,56,254,4,254,122,0,155,255, +45,1,140,1,123,251,239,251,248,3,243,2,15,253,65,255,131,2,31,1,252,255,176,254,123,254,70,2,126,2,225,252, +106,252,179,1,137,2,50,0,163,0,177,255,60,253,102,1,29,6,119,255,80,248,154,253,47,3,19,0,122,254,184,0, +216,0,113,1,164,2,237,255,201,253,123,0,56,2,191,255,129,253,104,254,135,0,100,1,193,0,17,255,234,253,170,0, +64,4,113,0,2,250,28,253,50,4,200,2,247,253,165,254,239,0,158,0,134,255,11,255,144,0,163,2,18,0,28,252, +238,254,215,3,20,2,50,254,18,255,110,1,120,0,206,253,11,254,35,1,50,1,5,254,202,254,61,2,167,0,72,253, +184,255,156,3,96,1,255,253,114,1,25,4,251,252,100,249,195,2,224,5,81,252,76,252,18,5,144,2,159,253,68,2, +113,1,126,249,80,252,249,4,103,3,52,253,223,252,83,255,68,0,115,1,161,3,245,2,169,253,162,250,208,254,120,2, +47,0,98,255,58,2,231,0,25,253,130,254,130,1,253,0,184,0,172,1,253,0,193,255,231,254,80,255,153,1,36,0, +76,252,146,0,181,5,142,255,92,251,239,0,36,1,29,253,188,0,18,3,73,254,19,253,213,0,64,3,111,2,126,254, +27,253,19,0,203,254,105,252,27,2,5,6,114,0,164,252,254,254,229,255,4,254,35,254,251,0,144,0,189,252,238,255, +41,6,62,1,211,251,202,1,107,2,130,250,108,253,151,5,248,1,157,251,182,254,165,4,82,4,70,255,179,253,61,0, +131,255,43,254,131,1,248,1,231,253,180,254,38,2,169,0,1,254,39,255,172,1,79,1,18,255,97,0,30,2,212,253, +51,252,12,2,116,1,73,251,53,255,92,5,217,0,81,253,2,1,18,1,102,254,125,255,36,255,102,253,239,0,224,3, +250,255,209,253,47,1,242,0,118,252,26,253,107,2,168,3,116,0,214,255,50,2,209,0,163,251,187,250,58,255,185,1, +52,1,224,2,163,4,208,0,202,251,54,253,26,1,97,0,53,254,172,254,25,0,130,2,224,3,182,255,88,252,143,0, +70,3,191,254,152,252,232,0,43,4,217,1,121,253,238,252,235,255,42,1,94,0,131,255,222,254,168,0,59,2,69,255, +171,254,230,1,247,254,17,251,133,255,211,2,121,1,108,2,202,255,217,249,108,254,77,7,128,4,157,252,152,251,96,255, +120,3,175,4,101,255,41,249,245,252,109,6,156,5,181,252,56,252,223,1,8,1,205,253,64,255,86,1,37,1,66,255, +211,252,170,252,170,254,119,2,187,6,33,4,210,253,231,253,48,252,162,247,118,1,7,11,208,253,75,246,65,5,43,7, +24,250,191,255,142,8,182,250,169,243,189,4,193,10,156,251,107,248,56,4,114,4,87,253,210,0,228,3,86,253,155,252, +88,4,129,4,128,253,119,252,168,0,43,1,228,254,163,255,221,0,197,254,79,255,6,4,227,2,185,252,80,253,200,1, +70,0,177,253,57,0,105,1,38,254,251,253,33,2,9,2,113,253,138,253,247,1,155,2,128,0,255,255,129,254,5,253, +215,0,103,4,144,255,149,250,49,255,251,3,62,0,18,254,226,2,13,4,37,255,78,253,121,255,50,0,2,255,245,254, +43,1,158,1,160,254,187,255,165,4,29,1,62,249,213,252,140,5,147,3,47,252,37,252,190,1,244,3,82,1,175,255, +94,255,132,252,224,252,125,3,208,3,125,252,146,253,169,4,48,2,74,252,245,254,120,2,26,0,94,255,255,1,17,1, +253,253,174,254,189,255,171,253,219,254,76,3,26,1,90,252,180,0,234,5,9,1,162,251,211,252,117,254,40,0,152,2, +155,0,210,253,78,0,190,2,59,1,228,254,128,253,129,254,62,0,147,254,162,253,45,1,129,3,99,2,120,255,30,252, +213,254,37,4,167,255,223,250,159,1,109,4,94,254,225,254,135,1,34,254,183,255,179,4,199,0,74,251,252,254,159,5, +203,3,50,250,28,249,14,4,48,5,26,251,79,253,196,5,76,1,3,253,247,2,243,2,177,251,124,252,43,2,242,0, +219,253,96,1,20,4,140,255,77,253,65,0,108,255,33,254,94,1,194,0,11,254,205,0,89,1,160,254,83,0,135,255, +142,252,167,2,90,5,75,251,130,250,166,5,14,4,230,250,216,254,37,4,20,253,255,250,115,5,217,5,81,249,96,250, +18,7,97,4,180,249,150,253,69,4,137,255,105,252,155,1,207,4,165,1,255,252,108,253,250,1,132,1,73,254,111,0, +38,0,239,251,103,1,119,7,53,254,238,247,115,1,157,5,22,255,98,254,73,0,89,253,83,255,183,5,207,3,164,252, +17,252,13,1,131,2,33,255,6,254,246,0,101,2,162,1,23,0,134,252,199,251,237,0,165,3,63,1,120,255,82,254, +93,254,40,1,60,1,42,255,19,0,122,255,0,254,205,1,63,3,206,254,134,254,127,0,218,254,155,255,93,1,12,255, +225,255,218,3,66,1,84,252,0,254,110,1,95,0,62,255,98,1,112,0,68,252,188,255,124,6,205,1,122,250,68,254, +198,2,188,0,21,0,141,0,214,254,55,254,48,255,145,1,82,3,248,254,199,250,59,255,122,3,16,1,26,255,125,255, +8,0,54,1,9,0,94,253,28,255,24,2,24,1,26,0,230,0,192,255,137,254,83,0,188,0,23,254,172,254,27,2, +144,1,126,255,51,0,203,255,35,254,63,254,81,254,5,0,138,3,212,1,146,253,94,254,231,0,218,2,22,3,86,253, +175,250,45,1,242,1,177,252,242,255,88,3,52,254,55,253,50,2,172,2,162,255,191,254,74,1,164,3,177,0,227,252, +175,253,14,255,178,0,76,3,108,1,31,254,32,255,65,1,45,3,1,2,148,251,242,251,81,3,61,1,179,252,134,1, +129,2,176,254,211,1,221,1,14,251,236,252,221,3,39,2,3,253,111,253,51,2,203,4,105,0,157,251,54,254,145,1, +2,0,115,255,13,1,212,255,78,254,12,1,0,3,28,255,38,252,71,255,111,1,190,255,27,0,119,1,133,255,144,253, +208,254,204,0,96,0,218,254,46,0,164,1,235,254,87,254,40,2,10,1,143,252,219,253,27,1,161,0,67,255,3,0, +116,3,219,4,136,255,193,251,160,255,27,2,35,0,92,0,143,1,246,255,69,254,75,255,174,1,182,1,57,255,14,254, +134,254,79,0,90,3,1,2,112,253,123,254,234,0,36,255,41,0,42,2,254,254,101,254,68,2,123,2,76,0,138,254, +199,252,68,254,130,0,154,255,50,0,33,2,135,1,192,0,35,255,93,253,119,0,145,1,111,252,211,253,142,4,194,1, +99,252,147,0,211,3,167,254,184,252,189,1,15,2,131,252,204,252,197,2,170,3,150,255,85,254,207,0,240,1,60,255, +9,254,110,1,125,1,60,254,93,1,241,3,179,253,135,251,57,1,189,1,159,253,231,252,206,255,66,4,86,3,0,252, +179,251,25,2,154,1,209,254,140,1,226,1,13,254,241,253,51,1,59,1,99,253,44,253,49,2,222,2,243,255,18,2, +118,2,16,253,104,253,251,1,8,0,125,252,52,254,247,1,6,4,95,2,21,255,133,254,138,255,145,0,154,0,16,253, +129,251,145,0,198,3,216,1,42,0,169,254,207,254,80,1,137,255,22,253,9,1,184,2,51,255,212,255,132,1,133,254, +77,254,58,2,32,1,134,252,236,254,11,5,19,2,39,251,130,253,245,1,92,0,175,0,22,2,58,255,0,255,204,0, +201,255,67,1,28,1,203,251,131,254,44,5,243,0,93,253,20,2,42,2,186,254,219,253,218,251,99,254,158,5,64,3, +237,251,244,253,14,2,9,0,179,255,184,2,13,0,189,249,233,252,50,6,243,3,189,250,173,252,167,3,232,2,99,0, +81,0,45,255,179,254,90,255,105,255,46,0,184,0,188,0,54,1,33,255,220,252,164,255,9,2,136,0,173,255,179,254, +65,254,246,1,205,2,29,254,146,254,14,3,46,1,77,253,91,255,158,2,83,1,8,254,45,253,102,254,66,255,41,1, +59,4,156,2,190,252,156,252,225,2,228,3,96,253,204,250,5,0,23,3,209,255,4,255,0,4,175,4,130,253,253,250, +157,1,99,3,91,253,249,253,91,3,211,255,84,251,30,1,237,4,197,254,194,251,115,1,221,4,4,1,82,253,23,254, +193,254,125,254,144,1,39,3,249,253,201,251,46,2,130,5,99,0,204,251,162,252,148,255,225,0,176,255,236,254,74,0, +155,0,7,255,176,255,73,2,62,1,66,254,44,0,111,2,98,254,71,253,90,3,10,3,137,252,70,254,84,3,147,0, +123,253,54,0,20,2,28,0,120,254,35,0,59,2,10,0,182,253,68,0,104,1,162,254,150,254,111,0,247,0,126,2, +12,2,237,253,201,253,184,1,181,1,136,255,187,0,161,1,180,254,245,253,233,1,27,1,60,251,38,254,70,5,87,0, +84,250,206,0,250,3,193,253,217,253,219,1,77,255,170,253,161,0,88,1,170,0,143,0,141,254,70,253,145,255,195,1, +165,0,154,254,168,255,190,1,29,0,135,254,234,0,235,0,105,253,130,254,130,2,204,1,90,255,3,0,183,0,225,255, +133,0,11,2,67,1,17,255,44,254,121,255,42,2,243,1,95,253,182,252,114,1,22,1,132,254,53,2,118,1,133,250, +233,254,246,6,157,255,184,248,166,0,96,4,237,253,58,254,35,3,24,0,242,251,129,255,143,2,0,255,140,253,254,1, +192,2,69,254,0,254,162,1,69,2,171,0,116,255,21,255,61,0,158,0,67,255,102,255,80,0,57,0,25,1,184,1, +196,0,233,0,166,0,73,254,223,253,14,255,63,255,16,1,89,2,77,255,168,254,144,2,185,1,171,253,182,255,236,1, +186,252,171,250,23,2,158,5,203,255,76,253,0,1,76,1,15,255,219,255,85,0,240,254,18,255,27,0,17,1,35,2, +194,0,76,254,7,255,45,0,26,255,249,255,112,2,244,0,89,253,203,253,22,1,94,1,161,254,155,254,19,2,130,2, +255,254,51,255,65,2,241,254,186,250,219,0,255,5,220,254,189,251,81,3,50,3,219,252,144,255,198,1,105,252,166,252, +49,1,49,1,248,1,23,2,38,254,211,255,110,3,91,254,192,251,167,0,169,0,168,254,102,1,108,1,81,255,35,0, +120,255,43,255,48,2,125,1,230,254,81,1,136,2,219,254,27,253,236,254,184,0,145,0,3,255,70,255,15,1,57,1, +255,0,159,0,255,254,248,254,117,255,92,254,122,255,97,0,94,254,175,0,32,3,176,253,130,253,214,4,107,1,104,250, +224,255,121,4,156,0,216,255,174,255,119,252,155,254,70,2,28,0,23,254,190,254,41,0,95,3,42,3,206,253,119,252, +177,255,158,0,134,0,238,0,132,255,82,254,3,0,48,2,13,1,143,254,99,0,133,2,34,255,38,255,200,3,194,255, +251,250,206,1,102,3,96,251,234,253,134,4,172,255,244,252,50,2,44,2,30,255,34,0,234,0,12,0,134,254,129,253, +110,0,25,2,188,254,138,255,133,3,177,0,121,253,252,0,91,2,203,253,248,251,19,1,232,4,129,255,194,250,138,1, +128,5,186,252,33,250,82,3,66,4,147,252,209,253,50,4,48,1,48,251,95,255,196,4,164,254,56,250,108,2,80,5, +187,252,189,252,112,4,192,1,127,251,187,254,59,3,73,1,187,253,15,253,22,0,61,3,208,1,129,255,69,0,68,255, +192,252,175,255,191,3,97,0,26,252,161,255,42,4,14,2,90,254,8,254,198,254,225,255,104,2,60,3,242,255,149,252, +193,253,243,0,28,1,137,255,179,255,220,255,52,255,182,0,59,2,206,255,138,253,77,255,152,0,65,255,172,255,173,1, +233,0,88,255,85,0,99,0,144,254,175,255,155,1,64,255,96,253,52,0,165,2,211,1,57,0,44,255,226,254,187,254, +247,254,212,0,20,1,36,255,83,1,198,3,154,254,57,251,42,0,73,2,174,255,53,0,70,1,136,0,89,0,143,254, +210,253,135,1,200,1,19,254,101,0,90,4,142,0,172,252,138,0,9,3,69,253,187,250,72,2,177,4,68,253,69,254, +121,5,17,1,34,252,150,1,104,0,217,249,21,255,101,4,29,255,26,254,198,1,135,255,37,255,8,3,64,0,54,251, +255,253,9,3,226,2,252,254,94,252,24,255,45,3,95,1,246,253,139,255,87,1,79,0,198,0,246,0,207,253,46,253, +46,1,82,2,221,254,6,254,209,1,125,3,13,0,243,253,57,0,230,0,82,255,208,0,96,2,136,255,99,253,42,255, +253,0,7,1,210,255,128,254,157,255,203,1,57,1,140,255,172,255,56,0,172,0,219,1,216,0,221,252,205,252,239,1, +173,2,154,254,50,255,133,1,61,255,32,255,40,2,31,0,198,252,91,254,53,0,33,0,199,255,135,254,237,254,154,1, +201,1,197,255,11,255,128,255,73,0,136,0,127,0,53,0,254,252,145,251,56,2,64,6,44,0,251,252,49,1,12,3, +203,1,9,0,137,253,37,254,183,0,53,0,160,255,155,0,41,0,88,0,205,1,215,0,218,254,12,255,240,255,184,255, +241,255,247,0,147,255,46,254,8,2,227,2,198,251,144,251,226,2,248,0,152,252,22,1,244,1,75,253,196,254,250,0, +243,254,236,254,167,255,136,0,87,3,235,0,17,252,6,0,31,4,122,254,220,251,135,2,15,4,248,252,168,252,169,4, +156,3,223,250,179,253,184,5,150,0,162,250,112,1,240,4,161,254,164,253,115,1,215,255,88,254,106,1,41,2,139,0, +250,0,120,0,156,254,74,255,8,0,250,254,31,255,231,254,167,254,165,2,255,3,170,253,1,252,200,1,174,1,130,253, +74,255,153,1,109,255,183,254,231,0,3,2,234,0,213,254,91,254,233,255,86,0,171,255,43,0,69,0,49,255,206,255, +205,1,16,1,238,253,19,254,182,1,154,1,139,253,199,253,152,1,49,1,209,254,87,0,96,2,148,1,119,0,119,255, +192,254,59,0,225,0,165,254,110,254,137,0,225,0,144,1,207,2,120,0,10,254,98,255,92,0,217,255,66,255,172,253, +238,254,131,3,27,3,38,255,118,255,108,0,69,255,236,255,172,255,218,253,196,255,72,1,23,255,181,0,177,3,108,255, +115,251,29,255,68,2,69,1,134,0,113,254,241,251,0,0,87,6,201,3,206,251,98,250,105,255,112,2,24,2,4,1, +34,254,89,252,146,1,150,6,253,0,231,249,224,252,244,1,248,0,171,254,60,254,34,255,135,1,132,2,216,0,72,255, +229,254,232,0,152,3,49,0,251,250,177,254,22,4,85,0,70,252,21,0,167,3,114,1,135,254,4,255,219,0,5,0, +121,253,108,254,213,1,189,1,58,0,40,2,225,1,111,252,194,252,147,3,182,1,43,250,166,253,70,5,10,3,85,255, +117,0,105,254,17,252,128,0,180,3,58,0,74,253,236,253,154,255,231,1,254,1,148,254,246,253,18,1,211,0,194,254, +186,0,103,2,156,255,31,253,167,254,7,2,213,1,75,253,125,253,60,3,197,2,30,255,157,1,49,1,189,251,255,253, +9,3,131,0,220,253,179,255,33,2,236,2,145,254,170,250,140,0,43,5,200,255,203,253,195,1,154,0,222,253,42,0, +228,1,253,254,91,252,155,255,205,3,85,0,177,252,93,1,234,2,24,253,103,253,181,2,10,1,83,252,157,253,209,2, +188,4,120,0,74,252,180,254,182,1,84,255,142,254,214,1,47,0,40,252,205,0,31,6,81,0,25,251,79,255,19,1, +92,254,235,255,211,1,143,0,87,0,193,255,126,255,55,2,53,1,211,252,145,254,19,2,63,0,157,255,236,1,240,255, +88,252,184,255,93,5,186,1,113,250,202,253,242,4,86,2,178,253,59,255,119,255,129,253,59,0,55,4,71,2,122,253, +57,254,195,2,141,1,158,253,97,255,56,0,181,252,36,255,72,5,175,3,212,253,178,252,119,0,87,3,2,0,110,251, +174,253,13,1,76,255,24,255,61,2,227,0,10,252,64,253,143,3,156,3,28,254,178,254,94,2,40,0,184,254,54,1, +68,255,165,252,159,0,146,3,211,0,224,254,47,0,123,1,206,0,109,255,76,255,21,255,177,254,107,0,13,1,210,254, +147,255,160,2,109,1,173,254,103,255,211,0,65,0,181,255,159,0,52,1,251,255,76,255,170,0,50,1,180,255,102,254, +42,254,35,255,54,1,26,2,142,0,18,255,172,255,124,0,182,255,215,254,139,254,85,254,191,255,176,1,246,0,153,255, +41,255,246,253,172,254,30,1,242,255,215,254,248,1,84,2,150,255,119,1,251,3,199,255,173,250,138,253,135,4,29,4, +237,252,81,251,20,0,108,2,71,2,86,1,70,254,239,252,40,255,199,1,77,3,133,0,26,251,247,252,234,2,87,1, +198,253,82,0,225,1,235,254,143,254,47,2,168,2,230,253,40,252,211,0,29,3,145,0,186,255,148,255,49,254,80,255, +105,0,231,254,13,255,118,255,147,254,128,1,46,4,160,0,231,254,18,1,209,254,84,253,65,2,175,2,201,253,134,255, +215,2,69,255,197,254,168,3,85,1,53,251,241,253,107,3,144,1,72,254,81,255,189,255,90,254,185,255,150,1,24,0, +133,255,25,1,255,255,153,254,238,255,207,255,180,255,250,1,87,0,81,253,185,0,194,2,38,254,215,252,25,0,154,0, +196,255,2,0,100,255,160,254,144,255,191,1,27,2,6,255,163,253,128,0,219,1,55,0,207,254,154,253,36,254,85,1, +41,2,115,255,53,254,56,0,203,2,130,2,185,255,239,254,211,0,11,2,36,1,42,254,178,252,206,0,96,4,161,0, +163,252,36,255,116,1,228,254,136,254,100,2,96,1,169,252,74,255,254,3,33,0,253,251,163,254,13,1,87,1,129,1, +35,0,115,255,222,255,163,255,77,1,191,1,162,253,70,253,6,2,239,2,82,0,177,254,217,254,181,0,188,0,119,255, +219,0,23,0,6,254,218,1,19,3,234,253,220,254,57,2,41,255,11,255,75,2,31,0,215,254,233,1,102,1,192,253, +246,252,197,255,232,1,181,255,154,254,180,1,39,1,142,254,167,0,84,0,214,252,84,255,222,1,110,254,151,253,130,0, +205,1,101,2,195,0,71,253,187,254,167,1,41,255,212,253,171,0,42,0,205,254,49,2,189,2,104,254,149,255,128,4, +166,2,6,253,46,252,185,255,244,1,44,0,143,255,109,2,22,1,22,254,93,2,193,3,163,252,117,252,122,2,51,1, +232,253,14,254,4,254,216,0,233,3,153,0,164,253,28,255,158,0,231,1,2,0,246,250,133,252,79,2,149,1,239,253, +189,253,25,255,250,255,246,255,121,0,231,0,72,254,174,254,245,4,129,4,189,252,103,252,193,1,111,1,223,253,142,254, +159,1,209,255,207,252,175,2,106,7,180,254,101,249,51,1,163,3,82,254,112,255,121,2,38,255,78,252,74,0,237,5, +72,3,89,251,228,252,237,4,150,3,25,253,138,253,119,0,21,255,84,253,33,0,27,3,234,254,168,250,11,1,146,6, +78,255,190,249,194,255,21,3,128,254,136,254,233,2,40,0,179,251,174,0,107,5,5,0,224,251,184,255,95,2,141,0, +19,254,185,253,58,1,99,2,116,253,41,253,111,2,119,1,243,254,86,2,49,2,188,253,201,254,232,1,192,1,50,1, +31,255,252,252,226,0,123,4,255,255,54,252,141,255,45,2,137,0,190,255,168,0,58,0,248,254,192,255,158,1,87,0, +146,253,72,255,223,2,235,1,77,255,134,255,55,0,110,255,210,254,185,255,205,0,131,255,109,254,236,0,138,1,215,253, +145,253,220,0,200,0,11,255,29,255,111,255,178,255,13,0,212,0,49,2,150,0,145,253,141,255,25,2,98,255,51,254, +67,1,145,1,69,255,237,255,197,1,24,0,182,253,203,255,32,2,200,255,36,254,16,0,179,1,49,2,73,255,79,251, +209,0,90,7,15,255,23,248,250,0,184,5,99,254,92,252,6,1,100,1,98,254,103,254,34,2,226,2,37,254,161,253, +187,2,38,2,144,253,50,254,136,0,174,255,57,255,196,1,109,3,80,255,40,251,231,255,168,4,152,255,106,252,230,0, +241,0,112,253,101,0,110,3,58,255,39,252,34,0,179,3,178,0,1,253,102,255,89,2,231,255,72,255,61,3,29,1, +246,250,210,254,186,5,254,0,49,251,168,255,173,2,79,255,108,255,83,1,248,254,87,254,247,1,160,2,214,254,186,252, +15,255,246,1,123,1,24,255,61,254,112,255,178,0,95,0,56,0,86,1,47,0,0,254,25,0,177,1,110,254,112,254, +92,2,199,0,78,253,202,255,241,1,133,255,204,255,204,2,180,0,68,253,166,0,180,3,5,255,127,252,212,0,67,1, +151,253,96,255,189,2,61,0,118,253,26,0,151,2,227,255,149,253,16,0,49,1,206,254,200,254,191,255,171,254,24,0, +215,2,148,1,54,255,169,254,99,255,85,1,132,0,54,253,172,254,81,1,116,254,147,253,101,2,183,3,154,255,0,254, +61,1,190,2,48,255,250,253,165,1,237,0,1,253,191,255,197,3,31,1,9,254,241,254,206,0,190,1,46,0,23,254, +100,255,123,0,64,255,124,0,233,1,85,255,65,254,166,0,31,1,239,255,128,255,1,255,42,255,68,255,124,254,116,0, +71,2,74,254,245,252,169,2,245,2,33,254,193,255,165,1,229,253,79,254,12,2,158,0,226,254,172,0,17,1,229,255, +162,255,9,0,253,255,166,254,88,255,157,2,22,1,60,253,9,0,197,2,39,255,53,254,117,1,141,1,16,0,188,255, +189,254,175,254,94,0,120,0,7,255,106,255,23,1,116,0,6,255,14,1,69,3,24,1,5,254,97,253,133,254,128,0, +109,0,142,254,14,255,50,0,2,0,30,1,140,1,171,0,251,1,181,1,187,254,51,255,172,255,22,253,192,254,40,2, +56,0,26,255,229,1,95,2,196,0,7,0,228,254,56,254,234,255,120,1,144,255,82,253,199,255,48,2,73,255,154,253, +230,255,160,0,248,0,120,1,76,254,0,253,247,0,137,2,253,0,218,255,165,253,32,254,128,2,176,1,22,253,200,254, +218,2,21,1,237,253,57,255,140,1,205,0,131,255,252,255,199,255,33,255,137,0,239,0,138,254,98,254,81,1,119,2, +149,1,244,0,182,255,173,254,107,0,248,1,158,255,110,253,1,255,235,0,89,1,225,0,193,254,30,254,13,1,9,2, +193,255,142,254,253,253,21,254,134,0,184,1,168,0,36,0,173,254,7,254,231,1,95,3,55,254,75,252,203,0,135,1, +228,253,169,255,234,2,5,254,143,251,240,3,193,5,152,252,141,252,76,3,92,0,243,251,64,255,253,1,145,1,132,0, +53,255,218,0,23,2,254,254,192,255,233,3,59,1,89,253,235,255,106,1,72,255,148,255,95,1,222,0,57,255,168,255, +75,2,242,1,133,253,211,252,67,1,132,2,79,255,212,253,84,255,236,0,235,0,155,255,27,255,78,255,14,254,105,254, +23,2,164,1,190,252,143,253,195,1,106,0,111,254,229,255,200,255,178,255,70,1,181,255,9,254,216,0,157,2,33,0, +246,253,169,255,190,2,114,1,154,254,199,0,186,1,28,254,32,255,136,2,2,1,178,255,144,255,242,254,120,2,168,3, +119,253,41,252,182,0,129,1,182,1,162,1,177,253,33,253,117,0,51,1,153,1,159,0,169,252,175,253,145,2,163,2, +184,255,216,253,224,253,190,255,98,255,8,254,237,255,109,0,178,255,108,2,83,1,202,251,15,254,243,3,17,1,175,251, +208,253,112,2,209,1,98,255,197,0,44,1,238,253,237,254,151,2,37,0,38,253,182,255,100,1,87,0,130,0,2,1, +107,0,149,255,129,0,2,3,188,1,33,254,0,0,67,2,107,254,95,253,215,1,132,2,25,0,54,0,49,0,40,255, +115,0,5,2,37,0,157,253,54,254,209,255,88,0,40,1,39,1,185,255,219,255,30,0,124,254,218,254,12,0,0,254, +19,254,57,2,255,1,170,253,221,253,231,0,54,0,12,255,27,1,229,255,231,250,91,253,193,4,225,2,208,252,20,255, +2,3,224,0,172,254,32,0,236,1,101,1,93,0,118,2,21,3,72,253,253,250,163,1,179,4,171,255,151,252,239,254, +237,1,81,2,243,0,95,0,87,255,105,253,28,255,87,2,191,0,29,254,82,255,82,0,170,254,190,253,99,255,178,0, +80,255,20,255,116,1,150,0,197,253,29,255,72,0,197,254,59,0,135,1,203,254,118,255,234,2,59,0,198,252,101,0, +89,2,131,253,248,252,136,2,7,2,155,253,91,0,79,3,207,254,159,253,31,2,198,0,183,252,135,255,15,3,13,1, +43,255,71,0,210,0,250,255,122,255,189,255,66,0,30,0,52,255,178,255,137,1,62,0,223,252,108,254,126,2,115,1, +238,254,76,0,25,1,115,255,222,255,184,1,150,0,144,253,159,253,181,0,141,1,239,255,44,0,38,1,213,0,198,1, +195,2,81,0,217,253,62,255,6,1,73,255,116,253,195,255,85,1,81,254,94,254,56,2,216,255,13,252,223,0,172,4, +59,0,196,253,52,0,245,0,206,255,145,254,202,254,255,1,11,3,247,255,221,255,57,1,159,253,88,252,16,2,33,3, +10,253,218,252,12,3,202,3,238,255,239,255,28,1,28,254,84,252,160,0,99,3,57,255,153,253,39,3,23,4,181,253, +175,252,118,1,224,1,27,255,156,254,193,255,252,0,91,0,164,254,40,0,155,1,60,254,181,252,236,0,40,3,77,0, +145,254,168,0,8,1,136,253,20,254,32,3,128,1,89,252,47,255,31,3,217,0,149,255,119,255,75,253,59,255,82,3, +81,1,118,253,76,254,84,1,69,2,44,0,134,254,167,255,205,255,135,254,126,255,245,0,180,0,247,255,141,255,33,1, +214,2,7,0,169,253,119,0,33,1,138,254,249,255,208,1,188,254,22,253,43,0,159,1,71,255,122,254,155,0,241,0, +143,255,130,0,128,1,173,255,75,254,18,255,142,0,219,0,205,254,56,255,154,3,114,2,9,253,35,255,125,3,245,0, +49,254,175,254,82,255,223,0,108,0,18,254,104,0,198,1,244,252,53,253,183,2,17,1,36,253,230,255,105,2,91,0, +194,255,4,2,172,1,117,253,41,252,31,0,109,1,178,254,103,255,89,2,199,1,129,255,14,255,197,0,196,1,234,254, +1,253,52,0,190,1,184,255,52,0,206,0,144,254,184,254,21,1,251,0,175,255,102,255,240,255,71,0,110,255,215,255, +128,1,185,255,199,253,129,0,139,1,121,255,234,0,8,2,186,254,22,254,199,0,199,0,166,255,208,255,18,0,255,0, +106,1,203,255,253,254,228,255,71,0,29,0,141,255,235,254,172,255,144,0,80,0,63,0,24,0,197,255,82,0,105,255, +21,253,239,253,140,0,250,0,70,1,110,1,33,255,50,254,113,0,2,1,118,255,148,255,27,1,129,1,66,0,133,255, +143,0,176,0,86,255,66,255,82,255,76,255,253,1,74,3,238,255,97,254,75,0,6,1,188,0,51,255,23,253,15,255, +10,1,246,254,93,0,253,2,218,254,85,253,159,1,163,255,133,252,144,1,120,3,181,254,114,254,212,0,139,255,0,255, +223,0,231,0,179,254,46,254,155,1,188,3,183,255,198,252,143,0,226,2,50,255,142,253,180,1,240,3,228,255,56,253, +174,0,41,2,73,254,14,253,100,255,162,255,77,255,185,0,122,1,118,0,139,254,126,254,209,1,126,2,212,253,115,252, +0,1,244,2,68,0,1,255,53,0,30,0,248,254,66,0,100,2,235,0,136,254,159,255,186,0,98,255,62,255,94,0, +209,255,217,254,121,255,39,1,66,2,226,0,99,254,81,254,158,255,26,0,85,1,42,2,11,0,186,254,168,0,46,1, +50,255,205,254,22,0,130,0,206,255,237,254,254,254,197,255,243,255,94,0,84,1,175,0,239,254,198,254,57,0,232,0, +74,255,64,254,158,0,148,1,253,254,107,255,161,1,156,255,94,254,97,0,249,255,54,255,90,0,231,255,174,0,139,2, +191,255,30,254,137,1,109,1,32,255,92,0,200,255,66,254,82,0,165,255,173,253,104,2,214,4,208,253,223,250,209,1, +178,4,164,254,13,252,114,0,34,1,3,254,111,0,134,3,153,255,57,253,69,1,187,2,129,255,246,253,45,255,210,0, +49,1,75,255,196,253,43,255,238,0,171,0,51,0,129,0,18,0,139,255,155,0,144,1,196,0,116,255,128,254,172,254, +245,255,174,255,168,254,230,255,63,0,168,254,33,0,23,2,121,255,223,253,245,0,58,2,43,255,175,253,90,0,207,1, +115,255,27,255,116,1,7,0,38,254,88,1,133,2,242,254,149,254,37,1,240,0,134,255,200,255,240,0,191,0,190,254, +249,254,255,1,60,2,58,0,78,0,85,0,237,254,216,254,226,255,79,0,237,255,135,255,57,0,63,0,166,254,105,255, +197,1,91,0,234,253,103,255,157,1,30,1,121,255,157,254,6,255,148,255,83,255,114,255,60,0,123,0,65,0,59,0, +161,0,247,0,98,0,141,255,57,255,4,255,18,0,240,1,247,0,171,254,141,255,236,0,191,255,170,255,45,1,135,0, +118,255,183,0,6,1,71,255,60,255,12,0,205,254,229,254,221,1,32,2,85,255,60,255,211,0,253,255,62,255,121,0, +203,255,37,253,5,254,48,2,235,2,111,255,89,254,9,1,112,1,74,254,164,253,159,0,250,0,90,254,95,255,90,2, +55,0,8,253,206,255,254,2,182,0,73,254,226,255,181,1,236,0,54,255,224,254,62,0,59,1,63,0,110,255,178,0, +22,1,69,255,132,255,151,1,160,0,248,254,22,0,41,0,33,255,112,0,195,0,245,254,125,255,216,0,7,0,53,255, +50,255,186,255,163,0,184,255,225,254,19,1,192,1,40,255,192,254,102,0,7,0,26,255,47,0,97,1,22,0,222,254, +254,0,140,1,188,253,181,253,38,2,241,1,41,255,239,255,81,0,249,254,205,255,20,1,47,0,147,254,82,254,106,0, +15,2,65,0,179,254,34,0,193,0,128,255,120,255,100,0,25,0,168,255,148,0,181,0,64,255,187,255,31,1,76,255, +47,254,206,0,62,1,74,255,68,0,88,1,254,255,233,255,6,0,98,254,44,255,221,1,194,0,53,254,148,255,64,1, +218,255,31,0,236,1,183,255,174,253,179,0,206,1,154,254,237,253,87,255,144,255,162,0,86,1,232,255,170,255,197,0, +145,0,185,255,62,255,121,255,66,0,27,0,236,255,161,0,195,255,122,254,47,0,235,1,11,0,212,253,66,255,179,1, +126,0,75,254,173,255,203,0,40,255,173,255,67,1,159,255,142,254,50,0,226,0,65,0,146,255,195,255,191,1,228,1, +254,254,214,254,68,1,221,0,19,255,56,255,32,0,77,0,212,255,243,255,176,0,65,0,200,255,55,0,29,255,95,254, +178,0,82,1,168,254,58,254,82,0,8,1,88,0,185,255,202,255,138,0,210,0,7,0,238,254,253,254,132,0,236,0, +120,255,115,255,19,1,94,1,36,0,28,255,189,255,35,1,61,0,199,254,236,255,26,0,193,254,171,0,81,2,102,255, +18,254,148,0,57,1,227,255,187,255,62,0,127,0,211,255,174,254,198,255,156,1,3,0,35,254,122,0,63,2,131,255, +83,254,14,1,201,0,164,253,218,254,224,1,173,0,20,255,26,0,45,0,203,255,197,0,68,0,30,255,134,0,47,1, +79,255,139,255,93,1,30,0,123,254,198,255,108,0,131,255,30,0,140,0,24,255,230,254,137,0,36,1,33,0,66,255, +74,0,102,1,109,255,104,254,131,1,147,1,178,253,17,255,222,2,72,0,38,253,34,0,133,2,246,255,101,254,185,0, +140,1,188,254,96,254,127,1,19,1,25,254,80,255,118,1,131,255,194,253,111,255,42,1,148,0,120,255,23,0,222,0, +185,255,137,255,46,1,107,0,118,254,162,255,56,1,71,0,65,255,85,255,155,255,31,0,220,0,74,1,85,0,119,254, +240,254,120,1,145,1,87,255,180,254,4,0,222,0,50,0,152,255,147,0,249,0,148,255,128,255,188,0,4,0,190,254, +86,255,239,255,147,255,161,255,46,0,167,0,137,0,87,255,144,254,217,255,37,1,15,0,199,254,174,255,89,0,150,255, +114,0,213,1,217,255,249,253,61,0,213,1,202,255,131,254,56,255,202,255,180,0,0,1,104,255,63,255,53,1,92,1, +104,0,130,0,115,255,145,254,232,0,197,1,178,254,14,254,192,0,60,1,2,0,202,255,159,255,171,255,81,0,43,0, +203,255,226,255,66,255,207,254,36,0,131,1,144,0,149,254,236,254,43,1,114,1,192,255,17,255,69,255,167,255,157,0, +16,1,174,0,226,255,171,254,107,255,174,1,173,0,189,254,122,0,80,1,105,255,22,0,201,1,125,0,19,255,94,255, +226,255,96,0,53,0,111,255,62,255,72,255,251,255,53,1,49,0,54,254,14,255,243,0,237,0,7,0,147,255,154,255, +176,255,228,255,169,0,98,0,203,254,74,255,91,1,35,1,140,255,240,254,125,255,0,1,38,1,62,255,249,254,22,0, +209,255,54,0,167,1,254,0,74,255,104,255,183,0,219,0,42,255,212,254,13,1,14,1,169,254,58,255,53,1,136,0, +134,255,23,0,135,0,2,0,108,255,74,0,43,1,42,255,207,253,57,0,248,0,198,254,135,255,178,1,70,0,170,254, +121,0,184,1,155,255,9,254,133,255,109,0,76,255,196,255,79,1,135,0,89,255,159,255,93,255,117,255,44,1,67,1, +29,255,146,254,254,255,226,0,254,0,78,0,192,254,204,254,195,0,24,1,232,255,214,255,196,255,150,255,255,0,94,1, +132,255,253,254,158,255,184,255,134,0,206,0,169,255,200,255,211,0,248,0,182,0,162,255,253,254,118,0,167,0,14,255, +191,255,225,0,175,255,1,255,238,255,174,0,54,0,40,255,70,0,169,1,232,254,97,253,3,1,206,1,144,254,188,254, +240,0,194,0,171,255,156,255,202,0,133,0,183,253,100,254,20,2,118,0,56,253,207,255,84,2,252,255,16,254,159,255, +191,1,202,0,77,254,108,255,210,1,126,0,86,255,210,0,189,0,151,255,248,255,40,0,179,255,253,255,196,0,185,0, +84,255,17,255,205,0,114,0,200,254,76,0,130,1,65,255,40,254,97,255,33,0,227,0,75,1,198,255,47,254,231,254, +30,1,169,1,113,255,15,254,99,255,198,0,14,1,147,0,99,255,46,255,10,0,26,0,26,0,133,0,15,0,189,255, +94,0,105,0,218,255,194,255,248,255,22,0,37,0,82,0,22,0,116,255,37,0,29,1,181,255,187,254,107,0,218,0, +132,255,232,255,178,0,183,255,14,255,59,0,60,1,253,255,186,254,48,0,4,1,68,255,103,255,243,0,224,255,60,255, +243,0,203,0,225,254,30,255,56,1,198,1,161,255,120,254,78,0,182,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/creeper2.pcm b/src/client/sound/data/creeper2.pcm new file mode 100755 index 0000000..81acef9 --- /dev/null +++ b/src/client/sound/data/creeper2.pcm @@ -0,0 +1,1341 @@ +unsigned char PCM_creeper2[42832] = { +1,0,0,0,2,0,0,0,68,172,0,0,160,83,0,0,239,255,190,255,155,255,131,255,150,255,229,255,48,0,109,0, +178,0,191,0,91,0,166,255,253,254,234,254,81,255,121,255,116,255,205,255,76,0,166,0,223,0,188,0,62,0,203,255, +119,255,76,255,124,255,181,255,154,255,170,255,30,0,101,0,73,0,226,255,92,255,75,255,166,255,206,255,177,255,141,255, +182,255,38,0,81,0,50,0,4,0,188,255,157,255,141,255,40,255,186,254,152,254,143,254,150,254,253,254,118,255,106,255, +136,255,71,0,197,0,227,0,196,0,67,0,52,0,134,0,64,0,218,255,171,255,128,255,194,255,78,0,177,0,227,0, +221,0,173,0,134,0,171,0,189,0,48,0,174,255,142,255,124,255,185,255,245,255,255,255,99,0,175,0,208,0,53,1, +91,1,67,1,30,1,188,0,152,0,154,0,82,0,10,0,226,255,9,0,111,0,167,0,218,0,12,1,33,1,34,1, +221,0,184,0,162,0,16,0,178,255,175,255,163,255,10,0,130,0,169,0,243,0,9,1,197,0,123,0,55,0,31,0, +223,255,105,255,64,255,21,255,225,254,6,255,91,255,218,255,84,0,188,0,68,1,120,1,121,1,77,1,50,0,237,254, +111,254,78,254,59,254,25,254,130,254,250,255,71,1,245,1,140,2,118,2,151,1,164,0,215,255,14,255,56,254,221,253, +215,253,189,253,216,254,189,0,122,1,240,1,119,2,27,2,208,1,53,1,161,255,202,254,124,254,201,253,201,253,116,254, +224,254,0,255,67,255,224,255,42,0,97,0,245,0,218,0,168,0,49,1,238,0,83,255,134,253,29,253,17,254,110,254, +4,255,157,0,44,1,61,1,134,1,89,1,129,1,161,0,161,254,52,254,250,253,96,253,183,253,117,253,217,253,4,0, +211,0,178,0,250,1,5,3,130,1,246,254,196,254,104,255,151,254,224,254,251,255,2,0,90,0,181,0,161,0,141,0, +56,0,241,0,136,1,168,0,114,0,255,255,252,254,191,254,169,253,239,253,15,0,104,255,47,255,194,1,54,2,206,1, +179,2,115,2,189,1,206,0,109,254,83,252,149,251,189,251,170,252,174,253,114,254,142,255,25,1,141,2,129,3,51,3, +184,1,170,0,155,255,216,253,185,252,212,251,165,251,128,253,47,255,157,0,151,2,75,3,178,4,17,7,61,6,5,3, +230,255,204,253,21,254,12,0,243,2,87,5,209,4,10,2,173,254,36,254,33,0,253,253,154,251,29,255,104,1,68,0, +252,255,243,0,10,4,126,5,89,2,216,254,55,252,241,252,242,255,124,253,11,252,42,1,163,2,109,0,181,0,21,2, +233,3,137,3,217,255,220,252,244,251,8,254,251,254,140,250,210,249,30,0,136,4,85,4,7,1,6,255,212,1,29,3, +95,1,235,0,180,255,215,254,105,0,2,0,146,252,250,247,159,245,207,250,72,3,96,5,180,0,64,253,252,255,242,1, +193,254,252,254,17,1,64,254,238,255,229,6,86,8,230,6,131,3,180,253,10,0,62,5,202,0,211,250,216,249,38,251, +16,255,179,1,22,1,16,1,144,2,42,5,24,5,118,1,139,0,227,0,33,0,105,0,84,254,25,254,11,3,54,1, +220,250,98,250,143,249,35,249,234,254,250,0,236,249,201,244,22,252,181,5,6,255,190,245,29,255,165,8,144,1,54,247, +202,244,93,255,55,13,146,3,80,237,250,243,138,15,189,17,199,250,30,244,18,1,223,4,52,1,135,254,104,245,151,246, +169,9,26,12,173,250,136,249,158,9,106,13,250,254,84,249,17,8,58,10,254,247,239,249,236,11,143,6,144,248,245,253, +74,5,193,0,67,252,201,247,138,240,112,244,113,255,110,255,43,0,227,6,62,254,29,243,213,245,58,241,148,242,45,11, +44,13,131,244,107,245,216,2,44,0,44,6,186,14,213,255,15,249,92,11,121,11,67,246,192,249,229,15,107,18,142,6, +41,254,32,254,191,12,139,21,219,2,209,244,36,3,152,13,127,255,243,238,201,244,157,11,12,22,148,13,97,9,87,13, +113,11,148,4,173,0,137,2,126,9,104,16,254,15,204,6,107,1,13,8,180,7,206,248,47,247,154,5,94,7,173,3, +207,9,68,255,31,235,56,0,72,32,171,7,163,228,249,243,141,2,107,247,236,1,14,11,242,237,15,230,226,11,80,26, +106,255,99,237,225,246,187,8,82,7,82,237,96,231,151,7,21,20,139,249,158,237,127,250,253,1,31,7,159,6,26,243, +67,236,138,2,115,10,180,249,158,248,143,6,234,3,13,250,205,1,128,13,202,5,9,248,25,251,61,4,198,2,37,253, +234,244,252,236,54,252,7,18,70,0,212,233,96,8,147,34,88,253,229,223,194,254,152,23,121,0,148,230,100,238,219,7, +149,11,45,243,105,238,129,7,253,7,43,245,241,2,151,21,178,7,159,251,213,247,239,232,165,238,109,5,177,254,124,249, +142,16,8,8,29,231,80,243,31,8,117,244,203,236,60,255,169,255,210,255,141,11,245,254,152,245,12,15,225,12,104,225, +89,222,57,2,125,3,176,239,60,248,123,9,70,6,62,246,79,231,7,237,147,9,246,17,219,248,159,243,15,16,199,20, +233,243,4,231,162,6,49,33,193,11,145,230,77,231,168,254,29,0,189,250,142,7,81,9,242,246,116,249,158,15,194,14, +66,251,198,245,62,253,229,3,101,3,116,242,237,226,189,250,175,31,248,15,21,230,80,240,249,19,86,7,184,231,88,241, +217,10,107,9,23,248,93,242,19,0,12,11,90,252,32,241,93,6,250,17,112,248,198,235,65,5,18,25,219,12,19,248, +254,244,198,0,111,6,152,1,198,255,9,2,194,1,208,255,38,254,162,1,24,6,56,252,238,244,138,7,11,17,195,251, +146,245,11,6,81,6,108,7,248,25,26,17,230,239,137,241,134,12,245,13,9,252,183,244,90,250,67,3,170,4,11,254, +156,255,200,9,131,11,8,7,14,4,174,254,6,1,139,11,87,1,233,239,215,0,192,18,123,0,114,252,207,17,223,8, +191,247,244,3,164,3,111,252,204,15,69,5,64,226,185,1,126,41,61,254,72,228,4,23,56,35,27,244,32,235,252,8, +84,19,247,3,223,239,144,243,206,16,29,25,180,0,203,240,207,248,254,9,215,16,88,254,243,236,223,251,160,12,191,5, +239,3,84,10,163,255,45,247,120,5,246,6,204,236,49,235,89,17,79,26,176,240,158,228,74,17,21,37,167,3,231,243, +2,9,72,11,232,248,1,249,111,248,238,235,71,4,64,37,245,254,28,217,233,12,122,41,221,238,73,231,254,27,252,5, +92,217,56,253,75,24,50,247,75,245,9,18,124,4,124,232,39,240,238,1,131,1,122,255,127,7,94,6,66,254,100,12, +183,22,211,246,251,231,134,19,93,37,112,247,107,221,129,251,127,27,181,22,166,249,171,237,226,3,18,22,123,9,193,243, +58,237,34,255,27,21,206,5,160,230,146,244,169,24,93,21,158,253,213,254,174,6,43,245,29,231,139,255,182,14,182,230, +83,206,23,253,108,34,17,8,170,239,204,254,24,12,248,255,93,240,101,244,51,2,83,6,20,10,110,10,187,246,204,246, +113,26,57,21,208,230,112,237,110,20,198,13,132,2,154,22,156,13,59,237,76,255,23,33,109,4,102,228,215,8,131,24, +54,226,168,225,2,33,65,22,255,232,52,1,231,3,242,216,48,254,158,48,254,241,86,198,158,13,15,49,79,246,31,220, +175,1,1,18,15,254,120,249,12,2,14,243,66,230,147,247,243,248,49,232,26,252,239,13,225,240,237,235,90,13,171,9, +29,249,41,13,233,9,43,224,8,229,0,22,120,19,148,226,229,232,114,34,107,34,206,234,153,224,145,2,246,16,91,12, +155,249,175,221,115,237,32,28,238,20,139,233,251,240,128,27,144,27,82,245,129,234,187,255,140,6,28,8,212,19,10,254, +36,222,39,250,135,21,55,242,162,226,193,0,142,6,8,2,142,10,156,251,132,239,173,2,207,2,54,241,244,253,105,19, +106,13,223,248,147,243,142,6,226,11,38,244,181,245,59,12,173,251,47,233,201,5,159,30,82,19,16,249,142,230,204,1, +104,45,130,15,86,215,14,237,62,21,185,2,228,237,138,253,142,16,38,21,113,2,94,227,199,235,174,26,159,35,190,246, +81,227,132,4,225,21,194,2,238,249,51,248,116,243,164,8,16,18,43,236,247,227,232,6,236,4,114,253,174,25,183,13, +166,231,6,1,74,30,232,247,102,221,231,255,36,24,50,254,16,231,125,251,220,16,65,5,125,254,229,2,123,254,46,15, +59,22,146,222,3,207,211,22,86,33,106,234,87,251,244,25,156,244,45,236,185,17,247,12,221,243,85,247,192,3,19,11, +112,4,39,251,53,18,176,31,148,245,220,221,82,0,227,14,222,248,197,250,163,10,186,1,191,251,181,6,19,250,161,232, +224,4,118,19,200,232,49,235,153,38,43,26,79,229,170,247,60,14,73,246,134,253,10,18,212,253,5,251,23,20,166,11, +79,243,44,245,214,6,2,15,174,250,240,229,198,251,7,20,176,6,225,250,84,255,225,5,195,19,190,12,84,234,212,231, +71,3,132,9,107,1,139,250,206,253,9,27,102,33,118,244,204,231,77,16,206,22,143,246,148,239,63,255,181,2,15,253, +203,2,216,5,92,239,24,240,50,34,229,34,91,223,245,215,82,12,145,19,60,8,98,15,105,250,101,232,200,4,105,10, +129,230,6,237,156,28,94,21,225,213,109,207,93,19,217,39,101,252,180,247,150,9,193,248,8,246,82,251,235,224,141,243, +171,42,101,8,18,201,216,236,50,35,105,21,166,252,140,242,79,232,121,239,243,244,190,228,43,235,192,10,68,10,238,248, +134,6,6,5,13,220,78,233,153,39,35,18,228,213,103,243,125,13,140,226,94,246,247,45,234,11,202,241,53,18,28,246, +93,216,189,21,232,40,157,236,51,229,181,6,153,15,131,29,32,26,186,234,254,218,242,5,158,35,28,11,93,228,176,241, +140,33,11,29,115,244,178,248,77,16,91,9,143,250,129,240,102,233,231,239,125,244,149,244,99,255,90,248,169,221,242,229, +244,2,57,248,47,219,89,222,237,245,226,7,241,18,236,12,153,247,250,255,139,33,251,17,168,236,30,10,92,37,245,247, +53,236,36,19,248,5,238,250,129,31,213,11,90,235,102,30,252,42,110,239,249,6,29,73,85,48,57,8,174,23,192,27, +108,8,30,5,248,9,250,8,166,6,121,11,205,13,208,250,178,245,168,18,212,16,247,247,212,13,245,16,219,209,195,197, +111,255,50,14,149,250,216,245,202,227,224,228,253,22,153,27,64,229,80,236,173,30,215,2,165,204,197,232,148,16,89,251, +7,239,59,247,127,230,15,245,137,27,251,246,180,215,52,26,219,44,148,228,4,229,99,27,57,21,141,11,94,15,254,230, +72,220,252,13,93,18,178,239,150,242,188,253,67,251,21,7,180,15,115,8,65,4,225,253,35,249,59,7,142,15,136,1, +21,5,27,32,55,14,93,209,2,219,91,41,199,42,45,234,163,238,96,11,156,236,6,235,43,29,94,27,18,250,115,251, +42,245,77,233,130,14,143,46,158,9,139,222,3,234,177,251,172,238,168,247,221,28,21,19,70,242,62,8,164,18,136,223, +85,218,46,9,47,250,13,212,187,235,161,7,136,254,9,245,144,238,189,236,2,250,39,0,95,3,135,15,244,5,250,246, +199,12,18,25,204,248,183,232,253,254,1,12,8,9,0,8,210,253,89,243,255,3,60,23,237,8,177,248,8,6,200,13, +68,0,31,0,91,15,247,19,204,6,159,242,26,252,75,33,122,18,165,217,118,226,138,13,248,2,44,248,104,253,58,219, +246,224,136,42,4,37,64,234,228,11,44,40,82,228,118,217,111,28,216,16,208,224,85,0,31,29,124,246,203,229,169,2, +97,9,195,3,111,24,66,30,13,255,191,242,112,251,169,228,209,220,245,28,174,62,248,245,89,192,163,240,177,27,67,8, +226,253,188,8,188,0,80,249,242,246,87,226,57,241,42,53,239,51,20,217,164,194,194,2,17,15,28,244,71,15,117,45, +106,21,34,1,171,14,13,21,151,2,164,242,162,254,136,13,5,5,195,12,146,34,101,4,65,225,108,0,226,12,211,233, +23,255,216,32,105,241,207,216,192,10,136,15,196,243,141,19,115,33,170,235,78,224,110,6,100,249,78,225,44,8,201,26, +101,232,86,222,144,20,40,23,190,233,89,246,246,29,59,9,40,228,121,233,179,244,226,247,63,12,100,17,234,244,198,242, +61,14,38,2,255,228,239,247,5,17,13,10,159,16,239,21,224,241,11,230,225,8,32,4,34,231,210,3,110,33,53,251, +165,219,160,246,112,16,114,15,212,17,219,11,170,240,253,233,121,255,228,1,197,248,146,7,226,11,61,243,166,240,52,254, +221,235,155,221,255,250,89,17,148,254,142,232,222,234,203,250,4,11,213,21,104,17,10,249,40,231,42,241,73,247,20,234, +33,242,26,10,156,2,163,246,117,15,234,28,159,1,93,252,65,27,12,22,181,239,92,244,110,15,55,253,112,229,94,249, +220,8,22,253,30,253,120,6,172,6,211,9,33,10,84,254,51,249,41,0,128,6,203,5,83,253,61,249,166,255,16,3, +176,5,22,9,163,252,195,244,243,7,165,15,219,0,221,6,25,25,233,19,127,8,141,13,218,24,241,23,202,4,52,248, +70,2,221,3,89,245,178,244,155,251,99,3,191,27,234,29,24,242,138,230,32,17,39,16,192,220,99,223,22,20,189,26, +11,246,18,232,208,243,36,7,137,27,184,13,100,229,163,238,85,26,135,8,43,216,3,237,110,31,137,23,155,242,43,233, +201,239,230,245,157,255,203,4,201,0,156,0,97,9,230,13,65,2,121,243,83,252,78,21,188,24,222,4,248,248,252,247, +249,248,205,8,39,27,44,10,139,232,6,235,122,2,72,255,152,243,3,0,118,6,168,245,179,245,155,5,103,253,242,245, +124,9,56,5,53,231,143,245,43,24,57,4,240,226,108,244,145,14,61,6,120,247,146,245,139,249,199,4,246,8,36,243, +177,227,31,255,255,26,146,4,193,229,53,245,210,17,22,11,18,244,220,242,19,2,170,4,185,250,221,250,154,254,203,248, +114,254,28,14,75,10,11,4,14,10,155,250,116,229,88,246,106,6,139,244,1,241,243,5,41,5,196,245,155,254,162,19, +18,16,83,249,94,242,135,249,225,247,54,251,7,5,41,247,26,236,224,4,2,13,107,244,132,250,246,17,180,4,56,248, +150,8,160,8,3,249,12,254,79,6,165,1,21,4,21,9,48,2,194,254,185,2,187,252,119,243,38,248,179,2,208,4, +239,252,254,240,219,238,66,251,36,7,123,14,11,22,82,15,153,250,45,243,192,247,57,248,32,0,119,9,176,251,78,238, +234,252,33,8,2,0,210,7,119,27,209,12,220,233,13,235,71,5,63,4,225,245,230,1,165,13,40,252,123,240,181,252, +134,4,130,7,208,16,29,9,79,241,103,240,190,5,79,16,133,12,33,4,172,249,105,247,218,250,59,244,122,240,240,253, +77,4,39,252,193,0,193,11,146,4,161,251,242,255,152,255,81,251,31,2,255,3,128,243,64,233,239,245,141,4,13,5, +244,4,7,11,32,8,83,252,82,251,120,5,209,10,155,9,115,5,88,250,184,237,180,239,177,255,55,9,159,7,7,11, +145,13,34,254,188,242,240,255,111,10,190,7,215,10,140,2,48,236,151,248,230,21,66,0,105,224,245,251,90,26,25,6, +155,250,109,15,245,14,57,255,66,8,93,13,38,247,197,240,67,5,25,6,58,241,164,240,127,1,69,7,178,9,30,16, +243,8,126,254,134,5,138,4,9,240,64,243,39,13,38,6,249,233,196,241,81,12,123,10,57,252,66,253,3,2,125,4, +29,9,121,0,64,237,27,243,8,15,22,18,2,250,175,244,166,10,191,20,141,2,11,245,159,3,163,12,30,247,252,239, +34,15,59,29,102,4,92,243,56,246,64,249,163,2,45,12,215,2,160,248,170,252,167,251,168,245,43,0,112,17,57,12, +116,242,59,229,13,244,161,8,205,13,108,7,105,255,81,254,207,5,22,6,172,250,43,250,153,7,34,7,47,246,160,241, +175,252,138,1,92,4,32,15,88,11,7,248,165,249,207,7,199,0,222,250,177,7,14,5,20,245,63,254,28,19,71,14, +178,247,185,240,42,0,169,8,112,252,17,249,212,6,134,8,251,255,118,255,17,253,84,250,109,3,198,5,134,250,15,253, +86,12,177,9,3,248,42,244,45,255,225,5,147,6,47,3,180,246,47,242,98,1,67,6,57,248,191,247,241,1,211,255, +23,254,56,4,11,5,219,0,58,249,137,244,88,3,154,18,102,4,173,240,38,246,177,2,24,253,33,238,242,239,107,2, +83,6,218,248,110,249,144,6,226,4,148,246,8,242,250,254,156,11,33,5,96,251,166,0,234,4,112,1,79,2,91,2, +112,255,28,0,180,254,45,1,246,11,94,8,225,248,22,249,33,4,26,11,121,8,176,246,11,239,42,2,204,6,16,245, +71,251,133,16,147,12,192,251,173,246,204,253,204,7,53,4,70,246,173,245,113,0,167,6,37,7,103,0,202,246,63,246, +135,250,137,255,189,8,46,9,89,253,98,250,171,254,203,247,144,241,159,249,112,254,178,250,141,1,141,9,176,252,25,244, +155,5,168,13,252,255,95,255,187,3,176,245,198,241,116,254,150,251,36,249,153,11,93,14,22,250,25,247,85,1,180,254, +108,0,149,14,57,12,145,252,197,253,72,1,87,240,132,234,32,2,16,14,49,1,226,0,63,14,247,9,123,251,139,253, +48,11,219,15,159,7,93,252,227,245,214,245,177,251,121,3,171,5,169,0,198,252,69,0,10,4,243,255,178,252,248,3, +249,10,215,3,60,244,202,238,175,250,83,4,53,254,149,253,90,7,127,0,10,243,176,251,180,7,222,3,224,254,180,251, +66,247,124,247,145,247,136,249,144,1,27,2,176,3,245,16,157,10,162,244,55,250,214,5,114,250,117,253,142,18,178,15, +200,255,245,0,9,7,160,2,244,252,80,4,181,15,145,6,184,247,132,3,169,18,110,7,155,248,113,246,95,247,15,252, +60,255,122,251,210,1,35,15,16,8,203,246,231,250,121,9,10,8,0,3,201,6,124,252,105,232,230,238,6,0,60,252, +153,254,212,13,141,4,80,245,34,2,68,10,244,250,152,244,2,254,27,6,242,9,9,7,33,254,195,250,89,0,15,6, +27,4,252,255,52,2,13,1,49,249,214,252,246,8,238,11,175,10,120,5,16,248,143,247,224,7,92,14,184,4,224,244, +10,235,165,248,2,12,150,5,205,252,65,10,34,16,232,0,183,245,161,248,165,4,240,13,206,1,7,239,191,247,42,12, +154,7,229,249,5,1,219,10,106,255,181,239,249,239,244,249,148,1,39,255,133,245,41,247,138,5,141,7,0,249,4,242, +17,250,195,255,75,251,14,253,133,10,93,11,206,254,191,2,87,11,147,253,112,244,5,0,9,2,19,251,8,255,184,2, +143,1,36,255,143,244,165,243,207,5,122,8,228,249,222,251,155,5,215,4,176,2,6,252,71,244,183,255,10,12,15,255, +1,241,182,247,230,0,129,0,235,255,147,3,250,4,24,0,18,251,15,250,119,249,177,251,49,1,158,0,100,255,70,8, +46,12,241,0,31,251,216,3,51,9,22,3,10,252,199,252,66,4,41,10,115,5,84,248,103,244,136,3,149,15,149,3, +244,246,186,1,248,10,31,255,84,248,122,1,61,2,201,250,90,253,11,254,167,247,63,4,146,22,176,4,18,237,109,1, +175,21,33,255,66,241,176,1,105,254,100,238,149,252,173,13,224,1,221,246,226,253,102,2,241,254,55,255,43,5,62,7, +151,0,33,252,78,0,84,5,42,9,213,5,198,245,193,244,24,11,205,9,109,239,45,241,207,7,82,12,207,6,68,0, +46,249,117,3,223,15,229,1,148,243,142,251,204,0,24,249,145,246,117,2,137,16,81,8,139,243,186,249,114,11,102,255, +187,240,236,255,238,12,154,4,127,255,234,2,207,255,246,248,222,249,87,254,123,252,66,252,37,4,139,2,230,246,52,252, +180,12,137,10,6,252,66,247,20,251,74,255,116,255,60,249,232,245,245,254,76,8,44,1,167,246,112,255,131,10,120,254, +53,243,172,255,141,8,21,255,17,250,211,254,171,2,31,6,149,5,50,254,28,252,181,2,190,4,135,254,109,251,109,254, +140,252,80,248,52,1,155,13,6,10,62,1,105,254,61,249,16,249,24,5,222,9,114,2,239,253,173,249,249,245,13,0, +29,10,172,1,112,249,245,254,33,0,218,248,75,248,8,255,68,8,198,19,29,23,219,11,240,253,241,246,249,247,31,0, +72,5,10,1,76,253,52,254,233,253,35,254,175,2,173,11,6,20,40,13,38,249,211,240,100,246,207,250,117,3,125,13, +83,5,106,247,189,252,73,7,242,0,123,245,34,249,46,4,40,1,162,246,105,252,175,9,195,7,225,255,112,253,30,247, +253,241,246,248,234,253,209,248,144,249,229,1,232,2,216,254,134,0,171,3,176,2,90,1,57,255,247,250,143,250,40,254, +47,0,131,0,228,253,59,250,186,255,251,7,121,1,239,245,39,250,202,7,43,12,122,4,131,253,64,0,172,3,42,0, +64,254,166,255,137,254,162,255,10,4,197,6,33,10,5,10,19,0,54,246,148,245,207,253,139,9,193,8,11,253,24,255, +112,6,170,250,235,239,181,250,81,5,73,0,168,246,243,244,162,253,68,5,22,5,159,5,110,3,56,248,220,242,53,248, +106,252,101,2,98,12,24,12,75,254,81,244,26,252,20,9,80,6,118,254,73,1,48,255,104,246,223,250,206,3,102,5, +249,9,223,10,208,0,232,252,73,1,85,2,9,2,184,1,58,3,210,9,204,9,30,1,167,254,234,255,44,252,207,247, +173,245,37,248,247,254,229,3,245,9,73,12,134,254,120,245,171,0,220,3,255,249,47,251,241,255,249,253,122,254,45,253, +219,251,76,6,109,13,122,4,218,251,25,253,118,0,69,254,223,248,220,252,150,6,134,5,88,1,171,3,199,2,99,2, +211,5,187,253,249,241,233,247,81,7,167,15,65,11,90,252,100,244,247,249,32,253,25,253,157,1,138,3,157,2,15,2, +41,253,125,251,102,255,226,249,51,244,173,0,119,12,210,5,121,252,39,250,79,248,147,249,217,1,76,8,232,5,233,255, +70,251,101,248,158,253,203,9,47,9,26,251,241,249,39,4,30,1,171,249,239,255,165,4,152,254,196,253,95,0,121,251, +237,252,32,8,144,5,134,248,140,250,88,4,219,4,236,3,116,1,217,246,54,245,182,1,143,3,205,247,18,246,197,0, +25,5,166,254,96,252,71,4,116,8,222,2,61,253,12,249,16,246,112,253,252,10,15,15,114,8,172,0,243,253,72,254, +81,252,124,252,253,0,128,0,122,255,231,3,194,254,188,245,238,255,173,12,41,6,126,252,101,249,66,249,73,1,51,6, +136,252,55,249,234,4,94,9,48,1,61,252,208,254,103,255,235,249,200,245,248,245,254,248,66,4,233,12,68,0,213,243, +108,253,123,3,211,253,216,2,251,5,35,249,153,244,66,252,48,252,26,250,34,255,144,2,73,2,0,1,204,253,64,254, +226,4,77,6,29,252,144,244,21,253,68,8,162,5,94,1,160,7,122,11,62,6,203,0,68,252,131,249,99,254,139,2, +160,252,207,249,159,4,174,12,45,4,110,250,44,1,237,13,137,11,130,251,53,242,96,248,99,3,85,9,110,7,185,252, +213,244,231,254,150,12,226,6,131,250,26,250,78,250,249,245,199,251,211,7,20,10,20,5,166,254,189,245,160,243,156,253, +30,4,109,0,82,255,227,0,110,251,168,246,155,252,26,6,6,10,66,7,92,0,192,251,178,253,147,1,81,1,86,254, +195,254,8,2,140,0,215,251,81,253,130,4,49,10,229,9,169,1,5,248,252,245,85,249,91,255,98,8,251,11,17,7, +33,3,231,1,189,255,222,254,146,255,42,1,130,2,204,253,80,247,234,249,223,255,223,0,156,1,243,1,180,255,12,2, +239,5,166,254,159,244,44,252,4,13,233,10,123,247,250,239,126,249,17,1,130,3,190,5,61,3,177,255,208,1,69,0, +222,248,49,252,132,10,46,14,205,1,141,245,103,242,200,246,151,0,137,7,108,5,149,3,241,6,128,6,87,2,132,0, +114,254,35,254,64,2,116,1,202,252,192,0,119,6,249,0,117,248,187,246,233,247,142,251,160,5,37,14,30,10,10,1, +119,254,115,250,42,242,22,247,201,4,90,2,184,248,75,254,42,6,179,1,222,252,52,254,3,1,33,4,222,2,182,251, +114,248,19,254,237,6,40,8,169,252,132,245,119,0,149,9,112,3,126,253,37,251,169,247,211,253,45,10,156,10,239,2, +191,1,37,7,165,7,200,251,221,241,69,249,20,4,197,6,96,8,228,3,46,251,92,0,104,8,214,1,113,253,60,1, +86,253,255,247,246,252,146,2,38,0,147,251,242,252,243,255,17,253,81,254,83,6,21,3,152,251,2,2,179,4,43,251, +139,251,66,2,208,253,11,248,94,250,150,253,209,254,199,1,57,6,6,3,250,246,77,244,126,254,102,4,58,5,130,3, +18,250,3,249,108,7,223,8,225,247,235,241,244,255,111,16,52,17,2,0,21,242,173,247,182,3,146,5,109,0,33,255, +36,0,204,250,220,247,52,2,211,9,105,4,172,0,118,0,182,253,167,0,126,4,107,253,3,250,105,4,74,8,148,253, +55,249,127,0,42,0,81,250,138,1,44,9,205,0,195,251,11,0,210,250,211,247,87,5,222,10,108,0,165,252,157,253, +13,247,135,247,104,6,87,13,65,2,245,249,116,254,247,0,50,0,226,5,3,7,148,253,199,251,223,2,13,2,176,253, +231,255,206,255,232,250,164,253,115,5,117,3,111,252,58,255,187,6,0,7,7,1,138,250,15,252,173,6,94,6,245,246, +236,243,100,1,83,8,22,7,120,5,168,255,242,249,179,251,223,255,90,1,120,2,113,6,226,7,135,255,152,250,197,2, +11,2,199,247,87,2,145,17,77,3,65,244,71,0,104,7,27,251,18,247,5,255,208,1,192,2,127,7,38,5,77,250, +218,248,78,4,9,7,225,253,212,255,88,8,231,255,191,245,105,253,40,0,115,246,224,249,176,4,80,2,92,0,110,6, +116,3,41,250,6,251,154,2,11,4,251,253,119,250,62,253,88,253,226,251,232,0,68,4,115,2,230,3,72,1,184,247, +199,248,113,2,63,3,215,254,177,253,211,252,1,252,11,254,202,1,231,1,99,252,34,249,53,249,132,246,92,251,124,11, +105,16,78,4,129,249,100,246,85,249,124,0,116,4,23,6,36,8,131,2,138,245,10,237,189,241,60,4,56,18,107,9, +80,249,208,245,93,249,74,255,247,7,248,11,130,10,81,5,36,248,101,236,186,241,178,2,195,14,162,14,38,5,88,251, +83,248,189,249,227,249,179,249,147,254,59,6,37,6,170,253,75,250,205,255,160,0,7,251,45,255,107,9,170,4,238,248, +199,252,61,8,147,10,223,5,152,254,253,249,195,253,31,0,224,250,195,252,222,10,139,18,140,7,202,247,190,246,237,255, +65,3,104,1,115,0,83,254,212,251,147,251,80,255,230,7,90,12,162,7,231,2,175,0,9,0,87,3,160,255,126,242, +123,241,221,0,92,13,32,10,10,250,12,243,135,255,126,5,157,251,204,246,148,249,212,255,120,5,24,249,147,236,185,254, +48,15,124,2,241,250,131,5,227,10,39,7,97,1,163,253,183,252,8,252,44,3,100,10,74,253,192,244,130,4,122,6, +23,250,92,4,166,11,92,249,89,246,37,7,115,6,91,254,145,7,138,13,253,252,136,239,205,250,152,5,39,255,220,0, +108,10,228,255,73,244,162,1,221,8,81,248,207,244,231,8,220,14,180,252,115,241,98,245,55,247,150,251,243,8,29,10, +249,251,128,248,215,0,102,2,219,254,160,254,111,254,213,252,135,255,198,5,74,4,185,250,26,249,221,255,73,1,127,2, +227,8,139,4,86,245,110,243,235,1,66,10,188,4,62,0,240,2,231,1,165,251,184,251,183,2,129,7,74,7,42,4, +176,1,166,1,235,253,213,244,41,245,246,4,50,12,225,251,88,241,252,255,218,5,86,242,87,236,41,2,225,17,112,12, +179,253,67,240,11,242,243,3,247,13,81,7,90,1,228,2,15,4,109,1,13,253,163,252,33,2,224,2,104,252,178,253, +226,5,178,6,48,6,52,7,73,252,187,244,111,3,25,10,11,248,179,241,1,1,146,6,123,254,115,253,198,4,236,6, +66,2,185,0,203,255,52,249,249,250,238,5,22,3,141,249,66,252,166,252,128,249,100,4,194,8,123,244,143,231,33,245, +198,3,234,3,0,2,71,3,75,0,168,254,200,4,117,3,31,249,181,252,109,9,155,7,68,254,247,254,76,6,34,6, +227,249,189,242,6,251,9,1,169,0,33,4,184,3,140,3,184,10,129,3,128,246,172,2,206,13,148,255,174,245,10,248, +77,248,131,253,162,5,176,9,229,12,115,6,192,253,86,7,59,12,251,247,166,234,70,246,41,5,160,8,50,3,185,254, +154,255,170,253,233,250,176,255,84,5,92,9,99,13,191,5,192,247,35,250,223,5,5,6,61,0,168,254,63,254,44,2, +13,10,54,5,228,246,186,250,241,10,244,6,109,246,232,245,99,254,63,1,68,4,204,5,251,0,18,1,64,6,41,0, +177,246,176,255,143,11,89,0,205,242,254,249,204,255,157,251,13,5,234,17,189,4,131,238,36,241,86,2,73,3,84,251, +215,3,146,11,145,253,86,249,196,9,146,7,247,248,193,1,204,13,214,6,45,2,215,2,30,248,44,237,223,244,146,4, +139,4,165,251,255,1,242,7,76,248,118,242,36,5,9,11,236,1,133,4,204,1,66,237,234,234,57,5,224,16,244,253, +114,245,139,6,147,8,206,244,8,246,80,9,234,8,168,254,100,255,206,251,51,244,51,254,149,12,123,4,242,242,149,243, +59,2,183,8,93,1,176,246,183,239,246,238,27,250,86,10,46,10,75,0,115,8,63,17,187,252,204,236,252,255,78,14, +99,0,174,246,110,250,130,249,112,251,109,8,26,11,2,255,148,2,38,18,246,4,192,235,182,245,124,8,132,1,22,0, +76,10,55,1,128,246,216,255,243,1,128,243,204,243,4,11,163,20,148,254,206,240,149,255,99,6,63,1,229,6,191,4, +177,249,119,254,186,254,54,241,164,245,73,5,46,8,79,5,192,1,108,253,42,246,237,233,4,241,227,10,241,13,97,2, +224,2,78,253,112,249,6,6,114,2,125,246,52,3,175,8,146,247,105,246,249,4,182,9,26,6,191,2,162,3,154,1, +100,246,190,244,119,0,250,4,102,5,247,6,92,1,156,255,27,3,91,253,230,253,29,11,220,6,167,243,77,243,217,0, +3,1,37,250,255,255,16,8,65,4,7,0,77,254,175,252,179,10,193,23,167,3,153,239,24,251,211,0,124,246,75,252, +91,5,30,250,1,241,161,250,172,6,155,13,231,20,63,16,193,250,194,244,162,3,144,255,209,239,21,247,72,0,56,250, +195,249,214,254,205,6,161,19,157,14,160,253,132,252,65,255,76,1,122,11,164,5,174,245,65,255,40,13,87,255,236,233, +152,235,157,4,216,15,84,253,154,250,76,15,198,12,16,251,56,247,71,254,187,19,94,28,231,250,99,231,167,252,79,2, +104,248,148,254,163,3,123,4,209,1,147,238,239,233,181,1,0,14,153,9,104,2,119,246,252,247,175,4,99,1,216,250, +75,255,119,3,113,5,241,250,206,233,105,247,30,18,208,13,216,254,42,252,185,251,215,254,0,255,23,251,54,10,245,26, +72,12,168,244,18,239,227,247,164,4,218,2,109,248,89,3,81,21,215,14,162,249,109,233,92,235,159,255,247,10,53,9, +135,12,139,5,56,244,177,246,120,255,66,1,0,18,246,23,25,246,88,222,203,239,76,7,213,17,57,16,39,3,118,250, +178,247,101,244,133,0,102,19,106,15,231,1,144,255,163,254,2,253,219,250,120,242,31,243,218,0,30,4,158,253,234,0, +129,9,151,4,81,242,107,245,48,27,9,37,8,248,42,228,82,2,207,11,103,1,240,13,40,13,209,237,85,231,58,253, +33,3,37,3,1,18,231,15,92,241,138,231,182,2,82,15,137,252,101,247,88,8,213,8,40,247,69,244,180,2,141,5, +90,244,64,233,150,242,167,0,228,10,155,12,183,248,146,229,208,242,183,3,111,2,227,15,247,28,138,251,70,217,15,236, +34,4,53,254,77,255,162,14,79,16,94,0,173,233,176,230,34,7,130,28,181,6,232,243,173,254,121,9,189,5,248,249, +6,247,14,13,249,28,163,7,43,240,59,245,105,5,24,14,169,5,44,247,194,253,78,10,75,1,56,245,38,248,160,5, +167,19,89,10,199,241,151,243,168,5,76,9,193,6,149,252,114,238,188,250,53,11,134,247,194,228,253,248,27,13,127,253, +68,238,13,5,231,24,223,4,220,248,197,2,13,244,225,234,92,7,85,12,163,247,68,254,129,255,92,235,92,244,238,9, +134,6,4,3,169,7,228,4,98,1,105,0,83,1,4,2,208,250,188,250,22,3,71,248,99,238,3,0,220,8,223,2, +126,16,141,24,122,1,234,242,185,252,180,1,14,252,173,248,120,252,38,8,41,17,195,10,122,254,97,252,22,0,52,1, +9,5,119,7,241,250,125,238,189,246,225,253,135,244,6,249,182,12,46,9,143,250,240,0,31,0,130,237,218,247,169,17, +150,4,16,241,115,1,242,9,66,250,20,2,113,21,238,3,218,237,5,1,97,14,86,244,228,245,114,28,48,16,155,232, +44,252,60,17,74,248,221,255,214,23,135,248,60,231,206,10,83,19,113,2,79,8,39,9,198,252,128,253,183,1,145,1, +194,0,67,253,171,255,25,2,222,250,197,249,47,252,122,252,152,13,110,22,62,250,128,237,119,7,191,11,39,245,122,249, +49,9,4,250,72,241,86,12,78,14,28,238,151,248,152,20,78,251,232,236,75,14,105,10,255,236,83,253,71,11,5,250, +30,254,129,6,26,246,160,245,241,4,191,2,37,254,224,252,89,243,62,249,228,12,174,5,162,243,98,253,102,4,4,245, +53,252,36,18,109,2,61,238,76,2,210,13,15,248,190,246,7,18,200,22,252,251,181,232,221,239,35,2,121,16,144,13, +43,244,228,235,11,11,219,22,209,249,35,242,193,8,246,14,155,253,110,234,108,242,177,16,109,14,151,248,154,4,237,6, +92,238,205,255,36,27,255,255,167,235,243,254,202,4,186,254,53,1,232,251,243,249,208,5,255,3,242,246,46,255,75,12, +146,251,15,243,59,18,87,19,206,232,71,237,188,13,250,4,246,1,244,3,2,226,56,240,149,39,161,12,81,231,224,14, +12,16,93,229,221,248,79,13,5,246,30,3,236,22,193,245,181,233,182,12,168,13,191,237,106,246,70,22,224,8,175,235, +124,251,109,14,84,255,123,255,140,13,147,251,150,234,172,250,21,6,24,1,36,4,113,9,11,253,95,233,213,239,125,12, +49,17,182,253,84,248,10,252,61,252,192,2,70,4,104,255,141,6,30,9,246,252,163,250,35,254,156,252,240,4,233,8, +107,249,235,247,245,8,202,4,163,243,66,250,139,11,226,9,112,252,107,245,131,246,187,253,52,10,207,15,179,2,28,243, +34,249,249,4,181,252,221,246,118,8,52,15,36,251,174,240,24,251,239,6,35,14,19,7,235,243,218,244,79,8,197,12, +201,1,89,244,197,242,144,15,79,31,143,243,218,215,83,6,119,34,254,250,74,231,142,5,207,18,255,252,190,237,58,248, +46,8,27,5,166,249,222,255,6,13,115,8,89,248,112,240,134,251,129,16,72,15,27,244,243,235,243,1,120,8,31,248, +103,249,125,8,107,6,117,3,3,10,196,253,119,241,133,5,152,14,11,249,188,243,98,248,182,244,74,7,10,18,136,243, +118,239,97,14,126,11,7,254,240,2,74,248,225,246,213,10,142,0,246,244,66,9,205,2,157,240,44,13,128,30,229,253, +45,235,134,245,82,249,6,254,55,13,233,13,143,249,69,242,186,2,106,6,82,253,240,6,160,11,26,250,32,246,148,252, +184,249,21,3,76,17,120,8,195,245,119,240,122,6,99,32,63,8,141,226,29,246,38,14,133,252,227,250,110,12,49,5, +243,245,161,240,156,246,116,11,66,12,177,241,187,241,50,12,178,14,185,249,4,240,40,251,85,7,237,8,203,7,155,250, +210,234,83,1,160,22,188,248,176,246,245,31,195,1,142,204,83,2,28,57,174,254,98,214,213,4,9,13,107,233,239,254, +27,25,255,250,221,251,207,26,90,249,114,220,197,13,30,30,9,239,63,237,201,11,110,6,69,253,176,0,37,250,68,254, +167,16,157,13,225,244,210,236,230,7,194,29,249,4,157,233,59,251,228,9,24,244,229,239,31,16,86,25,26,249,6,228, +118,241,66,9,38,26,90,13,166,228,128,229,111,17,150,10,80,230,45,253,131,29,196,10,233,244,200,243,69,250,213,7, +49,5,96,247,249,252,195,255,234,252,67,11,10,3,29,232,100,252,152,22,57,254,3,246,23,16,128,3,112,233,137,2, +70,22,182,247,53,244,93,24,143,7,99,225,24,4,21,34,138,247,141,238,93,18,84,254,62,233,190,14,73,11,166,226, +82,0,114,33,72,243,249,229,91,32,147,26,75,220,226,235,225,25,114,0,64,237,184,11,38,4,101,240,201,19,247,23, +96,228,109,236,56,27,206,9,9,235,211,252,69,8,241,252,251,253,184,254,185,251,216,4,135,0,223,242,112,3,129,15, +59,246,152,241,228,9,209,4,199,248,186,6,137,2,248,239,118,253,60,13,221,1,211,252,13,2,141,251,86,249,8,6, +58,10,116,255,224,249,32,251,242,246,184,252,140,17,36,13,227,241,215,246,186,13,189,5,162,249,24,4,99,6,110,252, +22,251,224,249,92,249,132,7,138,11,108,244,231,241,230,17,172,11,209,222,34,235,176,28,116,17,235,240,76,253,242,3, +122,246,15,3,51,14,12,253,55,248,181,5,226,7,130,255,106,247,191,245,70,253,250,3,32,5,61,3,113,254,192,254, +63,4,118,2,251,253,39,0,248,2,16,1,224,248,159,241,174,252,94,15,137,9,116,244,77,245,104,5,136,3,215,251, +197,6,66,8,191,246,3,254,101,13,153,246,219,234,242,9,192,15,195,247,1,254,18,12,80,1,138,252,113,254,109,245, +213,251,23,18,196,14,189,246,206,242,170,0,240,3,151,1,47,7,30,6,143,251,252,250,77,1,59,3,168,3,196,252, +1,244,232,253,55,8,227,251,236,246,80,8,180,11,247,250,248,248,252,4,113,2,82,250,15,1,13,3,158,248,145,253, +170,5,235,247,60,247,78,12,171,7,162,247,157,3,204,9,100,247,171,241,92,253,95,10,236,18,18,1,14,228,229,242, +251,22,11,16,112,246,73,250,96,4,26,0,75,1,130,3,12,250,144,249,253,2,217,252,217,248,168,13,226,19,80,249, +6,240,176,0,102,0,115,250,248,9,23,13,123,246,119,243,20,6,30,4,184,248,189,4,199,12,255,246,116,238,198,6, +15,10,91,243,28,254,85,22,255,0,145,233,68,0,248,16,121,0,205,248,167,254,150,253,47,0,55,8,220,2,181,242, +102,243,129,12,40,22,189,253,78,243,200,2,57,254,183,243,209,5,198,14,118,255,197,255,214,4,49,245,254,243,209,12, +104,15,209,246,199,243,112,5,90,3,137,250,6,5,84,8,241,253,116,255,253,253,77,247,43,8,172,15,140,243,4,238, +247,9,131,14,92,255,130,250,219,247,102,251,169,10,42,12,92,250,50,242,220,254,117,8,110,255,180,249,167,3,100,6, +212,253,66,252,72,0,110,3,95,4,134,254,217,248,236,249,155,254,187,6,87,4,250,243,196,248,46,14,88,5,155,241, +23,254,109,14,205,4,212,249,246,252,25,255,14,252,221,253,243,0,130,255,58,4,253,7,171,251,27,250,41,10,229,2, +237,243,246,0,96,4,167,245,19,1,146,15,156,255,71,244,0,253,133,3,75,5,115,4,132,0,220,255,224,0,196,254, +104,250,90,252,23,7,72,3,148,242,143,250,80,10,119,1,96,0,247,10,209,255,168,247,148,254,216,247,208,249,83,14, +108,8,23,244,143,250,36,7,29,3,213,253,92,255,104,255,70,253,226,2,103,5,206,245,54,246,112,15,70,7,158,236, +93,253,112,14,161,251,117,250,76,6,123,250,226,249,199,8,254,253,104,239,68,253,117,11,192,3,70,251,108,1,248,4, +118,254,119,1,123,6,39,251,190,248,102,5,39,1,134,249,97,4,207,6,52,252,45,252,35,1,74,2,38,3,35,1, +93,0,16,3,42,1,212,252,194,250,4,252,255,2,25,5,127,253,130,252,157,1,134,255,115,253,13,3,196,9,147,8, +37,251,104,240,91,249,78,8,146,9,223,254,163,246,35,255,51,11,187,1,105,246,172,0,39,5,162,250,29,255,110,9, +157,252,222,237,251,250,104,14,116,9,116,251,102,252,237,254,250,249,187,254,37,8,205,5,87,2,158,0,95,246,240,242, +92,0,30,9,243,3,238,253,11,254,67,3,183,6,247,255,175,246,98,250,99,7,156,10,174,255,248,248,59,0,224,5, +180,0,41,252,250,251,151,252,223,4,149,12,183,254,6,241,115,3,188,17,224,250,129,240,227,8,251,11,233,246,173,251, +223,7,48,252,179,251,208,11,157,0,152,238,37,2,202,17,90,249,152,239,18,7,86,7,227,247,9,4,241,8,99,245, +70,252,67,16,84,1,159,241,94,254,16,5,156,0,233,2,180,255,176,248,120,255,131,7,202,1,248,251,46,2,42,8, +253,0,27,248,250,249,51,254,54,1,240,4,61,0,64,250,236,0,239,4,71,0,155,2,75,2,56,250,0,0,250,6, +75,249,151,245,159,8,14,10,168,249,189,253,188,9,105,0,27,248,192,1,214,2,112,250,248,1,153,7,78,247,181,243, +106,8,50,11,141,250,19,251,105,4,49,1,139,254,202,0,48,255,149,0,58,1,112,250,79,254,150,8,142,255,38,246, +49,1,106,5,159,253,245,0,47,3,79,250,39,251,49,3,82,1,153,252,245,253,76,2,77,3,46,254,53,253,89,2, +186,255,204,251,204,0,47,1,64,253,243,255,53,0,125,254,192,2,44,2,118,254,225,1,166,0,242,249,128,251,230,254, +124,255,25,5,35,9,123,2,61,248,180,247,154,2,3,7,87,254,97,251,107,255,125,255,95,3,118,6,51,254,226,251, +235,1,246,254,194,252,120,1,164,0,76,1,151,4,179,253,182,250,206,2,103,1,220,251,137,1,46,3,23,252,179,253, +101,4,121,1,46,251,250,253,216,4,178,3,91,253,108,252,9,0,65,2,119,1,163,253,4,252,15,1,181,4,32,1, +149,253,98,254,83,0,172,1,163,0,123,253,203,254,151,3,173,0,174,250,245,0,222,8,212,1,44,252,233,2,161,2, +113,251,42,255,81,3,196,253,236,253,237,2,138,254,88,251,254,2,107,5,112,254,133,254,83,3,255,255,145,253,203,0, +213,252,187,250,34,6,247,6,117,248,189,250,239,7,149,3,234,252,240,2,249,1,83,250,125,254,14,4,137,254,79,253, +64,4,238,0,135,248,169,254,55,6,237,255,142,254,195,5,70,0,107,247,177,254,245,6,230,2,1,254,205,253,220,254, +253,1,116,4,230,0,81,252,115,255,52,4,210,0,221,253,92,1,14,1,13,255,200,1,136,255,19,252,127,2,124,4, +97,252,169,251,23,2,77,4,89,2,230,253,149,251,96,254,136,0,55,2,66,2,144,252,47,253,248,4,47,2,243,252, +50,1,18,1,70,253,238,254,43,253,254,251,111,2,205,2,121,254,41,1,10,3,60,1,198,0,113,254,66,254,144,1, +116,254,101,250,240,253,58,1,94,2,103,3,66,255,18,251,246,253,54,1,220,0,239,0,102,1,104,254,239,248,127,250, +2,4,109,6,248,0,131,0,193,255,61,250,83,252,87,3,7,4,170,2,114,255,193,248,145,250,36,2,8,1,166,255, +254,3,53,1,250,253,7,5,207,4,159,251,250,254,158,5,175,255,106,253,28,3,139,1,78,253,229,252,206,251,216,254, +87,4,149,1,112,252,227,252,47,0,165,3,28,1,39,251,126,254,64,2,222,252,220,253,196,3,89,0,250,254,227,2, +64,254,190,250,32,2,237,4,146,254,172,252,247,0,118,0,36,252,0,1,240,7,237,0,94,251,74,2,17,1,106,251, +156,3,178,7,70,254,23,251,43,255,216,1,34,2,51,252,52,250,65,3,32,4,181,252,197,254,33,1,148,254,35,3, +248,4,246,251,169,249,249,2,55,9,129,4,147,250,209,248,235,255,158,1,36,255,173,2,168,4,0,0,16,255,198,1, +255,255,21,255,80,2,52,255,26,249,110,254,160,4,34,254,112,251,6,3,192,3,0,1,227,3,254,0,91,251,101,255, +192,1,253,252,128,253,44,0,157,254,246,0,31,5,50,1,44,252,99,255,196,3,9,2,73,254,250,251,185,251,202,255, +180,3,54,2,88,1,121,1,131,252,115,251,249,1,193,1,216,252,98,254,155,254,191,251,78,255,142,2,51,255,230,254, +71,3,157,3,18,255,132,252,186,255,9,3,172,0,15,253,51,252,222,252,221,255,44,2,119,255,61,254,163,2,182,3, +145,255,31,0,40,3,86,254,155,250,100,2,26,6,250,254,222,254,139,3,84,0,208,0,146,5,212,255,101,251,79,2, +72,4,251,254,187,253,112,255,252,0,38,1,232,255,11,1,238,0,175,254,108,1,37,2,252,253,188,1,93,4,161,250, +134,248,186,2,28,4,167,253,0,253,120,0,73,2,53,2,255,1,143,255,12,252,113,1,177,6,165,251,9,247,3,5, +251,3,57,247,43,255,66,7,51,253,187,252,163,5,88,2,168,254,63,3,159,2,33,253,226,252,176,0,39,1,152,253, +169,253,17,1,102,0,170,255,114,1,205,255,32,0,221,3,15,255,88,249,178,255,192,3,115,254,124,254,18,2,13,0, +134,255,159,0,102,253,58,255,212,6,51,4,172,250,96,250,183,255,56,1,182,0,26,0,74,255,21,255,12,255,43,0, +177,1,123,1,183,1,135,0,136,252,243,254,54,5,174,2,127,254,153,255,255,253,32,254,90,3,88,2,186,254,221,255, +201,254,175,254,172,2,134,0,231,252,69,0,30,2,166,0,32,0,62,254,233,253,4,0,89,0,11,1,89,0,33,254, +9,1,210,0,140,251,162,1,213,7,154,253,158,248,27,0,181,0,103,255,74,3,155,1,123,253,167,253,56,255,97,3, +246,4,148,254,130,250,111,251,199,251,107,255,238,2,165,255,50,254,171,1,69,2,14,1,162,0,47,255,193,255,249,2, +30,2,231,252,174,252,105,2,49,2,31,252,131,253,231,2,122,1,86,255,51,0,76,255,132,0,15,3,139,255,191,252, +200,0,154,2,145,254,220,251,166,254,87,3,247,2,228,254,235,254,47,1,249,0,155,1,39,2,54,254,146,251,204,255, +74,4,31,3,214,255,11,254,64,254,3,1,109,1,175,252,155,253,149,4,63,1,203,250,85,2,152,7,85,255,181,252, +205,255,133,252,125,254,102,5,70,0,102,250,210,1,182,5,155,254,101,252,234,0,149,1,206,255,212,255,53,255,22,255, +240,0,223,255,6,253,34,255,8,3,33,2,246,253,177,251,244,254,94,3,168,0,134,252,73,255,243,1,229,0,201,0, +42,0,93,0,179,2,58,0,10,253,80,0,41,1,109,254,197,255,151,255,145,253,3,1,196,2,49,255,248,254,84,1, +190,1,72,1,85,255,141,253,97,254,58,255,66,255,125,255,183,0,57,3,150,2,106,255,81,255,191,254,131,254,0,3, +7,1,64,250,97,254,4,1,198,251,231,2,61,9,106,252,237,248,32,4,39,1,71,251,69,2,53,2,99,252,192,0, +109,2,118,252,8,254,212,2,108,0,127,254,100,0,13,255,133,253,254,1,195,4,16,255,206,250,254,254,98,2,161,0, +210,0,36,2,119,255,67,254,100,1,184,0,0,253,172,254,74,0,4,252,58,252,13,3,177,4,241,1,190,1,135,0, +5,254,236,254,35,0,215,254,235,254,249,0,174,0,132,254,214,255,141,2,221,0,176,255,159,1,137,0,197,0,106,3, +255,253,112,250,10,2,10,2,235,251,90,0,232,0,228,251,246,3,220,8,177,1,47,4,152,3,155,242,206,240,147,255, +94,0,124,252,66,2,32,3,164,0,149,6,152,8,169,253,154,247,5,1,41,6,162,251,37,246,207,253,160,1,218,0, +204,2,107,2,249,2,52,6,106,1,233,251,110,1,49,4,120,252,40,248,172,252,19,2,198,2,228,0,215,0,32,1, +158,1,122,4,80,2,106,251,195,253,18,4,119,0,225,252,159,1,172,4,87,3,215,1,214,255,81,255,30,0,47,254, +215,252,145,255,246,0,55,255,13,0,233,2,245,1,46,0,150,2,214,2,110,253,237,250,53,253,53,254,106,255,198,2, +2,3,213,254,229,252,72,1,53,5,89,1,241,252,219,254,103,254,193,249,133,252,221,4,106,5,104,254,179,251,36,0, +70,2,164,255,246,255,48,0,55,251,238,251,63,3,170,2,135,254,46,1,212,1,179,254,145,1,81,4,21,255,125,251, +114,254,158,255,152,254,147,1,167,3,176,255,46,254,147,1,129,0,159,253,128,0,109,2,194,255,17,255,254,255,138,255, +139,255,168,255,244,255,17,2,244,2,153,0,2,255,141,0,243,0,139,253,26,253,37,2,83,3,219,0,6,2,135,0, +163,251,189,253,246,0,184,254,130,255,184,0,235,252,251,252,164,0,103,1,103,2,185,1,10,254,105,254,106,0,164,0, +255,1,67,255,190,250,163,254,217,1,110,254,15,0,254,2,197,255,55,0,36,3,178,255,2,253,28,255,136,0,9,1, +228,255,71,253,78,254,76,1,130,2,243,2,161,0,181,253,134,0,118,3,226,0,192,255,24,1,73,255,219,253,9,0, +186,0,219,254,42,255,153,1,17,1,207,253,84,254,174,1,79,0,89,253,109,255,174,1,178,1,138,2,38,255,226,249, +203,254,70,5,34,0,233,251,42,0,105,1,23,0,100,1,60,0,15,255,106,1,107,0,52,253,231,253,145,254,136,252, +64,252,226,0,94,6,250,3,133,254,51,1,46,2,243,251,128,254,156,4,52,255,62,252,127,0,59,253,50,251,74,3, +145,6,62,2,72,255,206,253,138,255,76,3,68,2,74,255,244,253,188,252,116,254,70,1,48,0,184,255,59,2,160,2, +47,0,232,254,50,1,155,2,199,254,64,253,247,255,159,253,43,252,52,2,64,3,5,0,238,2,135,2,147,252,203,253, +218,1,139,1,218,1,204,0,8,253,72,253,146,255,109,255,80,255,205,255,3,1,194,2,240,0,97,253,25,254,40,1, +225,1,69,0,176,254,233,254,112,255,189,254,137,255,67,2,7,2,240,253,227,252,218,1,129,4,125,0,145,253,28,254, +29,254,126,255,130,0,9,254,57,255,253,2,172,0,175,255,56,4,237,2,227,253,98,254,56,255,132,253,209,253,213,254, +28,255,43,0,164,1,195,2,93,2,101,1,147,1,130,255,219,252,94,255,135,0,207,252,84,254,113,3,231,1,165,253, +211,253,119,1,218,3,97,0,240,252,217,0,142,2,1,254,28,255,187,2,173,254,59,252,238,0,201,2,30,1,16,1, +227,255,143,254,90,0,131,0,159,254,199,0,238,2,54,255,156,252,52,255,228,0,252,0,169,1,191,0,30,0,250,0, +216,254,52,252,138,253,27,255,206,0,4,4,180,2,160,254,76,255,40,0,35,254,238,255,12,3,159,0,252,253,211,255, +34,0,102,253,192,254,40,3,143,1,170,252,111,254,56,3,225,2,77,0,205,254,241,253,137,255,247,0,105,254,164,253, +203,1,79,3,100,0,212,255,92,1,151,255,88,253,107,255,38,1,84,255,226,255,178,2,26,1,52,254,143,255,187,0, +147,254,134,253,118,255,173,0,52,255,137,255,201,3,19,4,112,254,154,253,176,1,36,0,130,252,57,255,122,2,184,0, +124,254,105,254,202,255,31,2,245,1,4,255,22,255,113,1,93,0,134,254,97,255,95,255,54,255,89,1,49,1,62,255, +40,1,204,2,38,0,202,254,236,255,214,255,32,255,127,254,54,254,109,255,20,0,146,255,145,0,216,1,66,1,200,255, +74,254,2,254,195,254,149,254,11,255,152,0,40,0,82,255,11,0,147,0,47,2,61,3,100,255,238,252,186,0,149,2, +27,0,164,255,179,0,41,0,215,254,101,254,177,0,100,3,149,1,160,254,55,0,7,3,40,2,62,255,14,254,225,254, +113,255,155,255,192,255,94,254,76,254,19,2,146,2,17,254,35,255,12,5,54,4,19,255,73,254,67,255,10,255,127,255, +117,255,122,255,3,1,201,255,196,253,185,1,6,4,170,254,165,253,43,2,255,255,72,252,123,255,109,1,152,255,53,0, +89,1,154,0,228,255,184,255,157,0,113,0,118,254,67,0,205,2,245,254,20,252,215,254,3,0,219,255,224,0,222,255, +41,255,91,0,76,0,134,0,101,0,235,253,29,254,82,0,141,255,164,255,16,2,43,3,205,2,254,254,51,250,200,252, +131,1,214,255,66,254,123,0,69,1,179,0,88,1,237,2,52,2,174,252,215,249,182,254,19,2,168,0,170,255,104,254, +55,255,205,3,219,3,95,255,12,253,13,252,255,254,162,4,82,1,245,250,254,254,219,3,41,1,123,255,196,0,209,0, +250,255,25,255,15,0,212,1,107,0,244,254,108,255,95,254,30,255,186,2,127,2,48,0,31,0,102,255,232,254,222,255, +21,255,106,254,234,254,107,254,116,0,125,3,44,1,71,255,108,1,235,255,127,253,32,0,199,0,117,254,156,255,93,0, +84,255,172,1,228,1,143,253,35,255,186,3,171,255,12,251,194,255,169,3,112,0,119,254,3,0,30,0,45,255,188,255, +44,1,113,1,223,255,95,255,17,1,120,0,244,253,68,255,162,1,28,0,172,255,202,1,243,255,255,252,202,255,218,2, +66,0,0,253,216,253,248,0,250,1,114,255,204,254,255,1,233,1,180,254,94,255,8,1,119,0,169,1,217,1,223,253, +86,252,21,255,54,1,40,1,86,254,5,252,73,255,101,2,54,0,224,254,103,255,166,254,133,0,72,3,91,0,185,252, +49,254,181,255,180,254,143,255,35,2,222,1,159,255,159,255,129,0,7,0,232,255,232,254,52,253,18,0,111,3,113,0, +146,254,199,1,28,2,188,0,115,2,79,2,224,254,180,252,125,253,27,1,242,2,174,255,152,254,196,1,113,1,31,255, +125,255,220,254,10,254,109,0,44,1,58,255,28,0,188,1,203,255,105,254,5,0,216,255,214,253,36,255,254,1,199,1, +117,0,155,255,205,253,117,253,113,255,37,0,57,0,127,1,108,1,106,0,242,0,243,0,187,255,106,0,248,1,159,0, +71,254,60,255,202,1,42,2,22,1,153,255,38,254,105,255,130,1,254,255,212,254,250,0,55,0,192,252,25,254,14,2, +205,1,133,255,58,255,200,254,241,253,230,255,198,0,82,253,122,254,207,4,211,2,40,252,241,253,86,1,227,255,13,0, +163,255,230,252,166,254,192,1,97,2,219,3,191,1,147,252,16,254,47,1,196,254,188,253,162,255,31,1,144,3,58,3, +122,255,129,255,215,0,103,254,148,253,147,0,196,1,219,254,2,253,213,0,71,3,228,254,0,254,15,2,37,0,71,254, +70,2,159,0,188,252,136,1,163,3,6,254,231,253,160,1,102,0,33,255,74,0,233,255,248,254,46,254,166,253,34,0, +146,2,111,0,104,254,67,0,18,2,224,1,245,255,125,252,135,252,231,0,122,1,223,255,147,3,21,5,65,255,25,253, +98,0,0,1,196,0,174,0,151,253,1,253,227,0,33,2,129,0,161,255,221,255,23,2,188,2,116,254,86,252,230,254, +16,255,17,255,247,3,92,5,130,254,8,251,210,0,95,4,29,255,39,251,30,255,80,3,187,1,231,254,159,255,48,1, +230,255,149,255,163,2,226,1,48,253,230,253,254,0,69,255,68,254,189,255,92,255,221,0,123,3,225,0,10,254,244,254, +85,255,219,0,234,2,135,255,51,252,156,254,165,0,4,1,32,2,240,0,160,255,173,1,146,2,202,0,105,255,142,255, +243,1,45,2,26,253,7,253,22,4,250,3,72,254,140,255,11,2,241,254,228,252,211,253,161,255,114,2,58,2,68,255, +100,255,225,255,190,253,185,253,241,255,216,0,172,0,2,0,107,255,233,254,92,254,104,0,34,2,27,255,155,254,252,1, +223,255,88,253,23,0,255,254,39,253,238,1,67,3,17,0,203,0,54,0,70,254,154,0,132,255,119,252,9,1,124,3, +124,254,204,254,180,3,78,2,7,253,69,252,36,1,211,3,247,255,143,253,149,254,128,253,128,255,198,3,200,255,114,252, +245,2,163,4,247,253,68,253,20,1,252,0,96,0,191,0,95,254,3,252,129,254,213,1,33,0,141,254,210,1,160,2, +129,255,82,255,39,255,3,253,240,254,131,1,182,0,1,2,121,2,182,253,26,252,186,255,126,1,224,1,252,1,100,255, +136,253,102,255,94,1,187,0,19,255,59,255,3,1,17,1,3,255,161,253,201,254,35,2,219,2,206,254,148,253,207,0, +207,255,178,252,64,255,153,1,244,254,36,255,198,3,244,4,142,1,244,254,88,255,58,1,201,1,52,255,62,252,211,253, +251,2,150,4,212,255,167,251,141,254,203,2,99,255,84,250,234,254,22,6,4,3,147,252,221,253,1,1,75,255,58,254, +170,0,94,1,197,255,137,0,212,1,52,255,211,253,111,1,188,0,117,250,177,251,216,2,234,2,144,255,51,0,77,0, +204,255,132,1,223,0,175,254,96,255,37,0,208,0,181,1,105,254,238,252,121,2,185,2,168,252,234,254,154,4,77,1, +216,251,54,252,179,255,150,1,182,254,207,252,116,1,34,3,176,254,131,254,153,0,176,255,255,1,17,5,180,1,143,253, +114,253,165,255,253,1,159,255,35,252,31,1,6,7,109,3,2,254,198,253,53,0,83,2,201,255,197,250,135,251,71,254, +90,253,8,255,227,2,226,1,193,0,250,2,195,1,104,255,21,3,252,4,169,254,132,251,55,255,8,254,61,251,51,0, +121,1,159,251,220,254,190,5,59,1,176,253,83,2,194,0,155,251,96,254,196,1,15,1,241,1,52,2,50,0,190,0, +49,2,14,1,176,255,101,255,212,255,5,1,157,0,228,253,31,252,205,252,130,254,108,255,221,254,171,255,109,3,251,4, +143,1,160,254,33,255,153,255,254,253,148,252,163,254,78,2,90,2,240,1,179,4,119,2,64,252,63,255,8,5,93,0, +245,250,111,253,22,0,10,255,224,251,184,251,41,3,128,6,194,0,31,2,6,6,63,253,102,248,179,0,150,3,13,1, +92,1,213,253,107,252,239,2,173,2,197,251,135,252,168,1,226,3,224,2,123,253,102,250,25,0,50,5,221,1,124,253, +218,255,135,3,145,255,216,250,147,255,10,4,203,255,79,252,126,253,206,255,251,2,106,1,89,251,141,252,234,2,172,3, +90,0,87,253,213,253,37,2,127,0,183,250,28,255,241,5,64,2,31,254,123,254,62,253,230,255,174,5,167,2,145,252, +125,255,3,4,78,0,247,250,126,253,161,3,85,3,26,254,175,251,115,253,0,2,219,4,5,1,146,254,214,2,141,1, +42,251,138,253,195,1,9,0,188,2,109,5,97,254,197,251,30,2,35,2,121,254,11,0,172,0,253,255,78,1,86,255, +94,252,93,254,188,1,220,3,191,2,122,253,212,253,194,3,113,1,12,252,173,254,68,0,104,254,189,1,90,3,253,253, +128,252,239,0,60,2,73,255,189,253,35,255,20,255,147,253,171,0,96,4,104,1,194,254,176,0,33,0,228,253,84,254, +165,255,172,1,142,2,96,0,159,255,164,254,65,251,248,253,168,3,63,1,6,254,209,0,253,2,72,2,37,254,167,250, +114,1,55,6,238,252,91,251,93,6,167,4,210,251,137,254,49,1,202,253,222,254,85,1,116,0,100,0,133,1,227,2, +16,2,244,253,111,254,187,1,170,253,124,251,218,2,211,3,22,251,50,250,218,2,252,6,182,2,96,254,143,255,251,0, +214,253,136,251,172,254,45,4,57,6,196,0,39,250,233,252,197,3,209,3,227,255,48,253,117,251,226,252,205,1,6,5, +163,3,251,255,91,253,131,251,182,250,5,255,206,4,37,4,49,2,19,3,109,255,238,250,140,253,72,0,87,0,97,1, +0,255,109,253,143,2,112,1,179,250,224,255,172,6,175,0,80,253,97,0,103,253,75,253,211,3,151,0,87,249,117,253, +14,3,79,3,85,4,107,1,242,251,169,254,151,1,14,254,59,255,147,2,161,255,103,255,71,2,6,255,149,252,222,255, +177,1,25,1,146,254,53,252,28,1,99,5,101,0,109,254,118,1,76,255,39,255,36,3,24,1,116,255,173,1,226,253, +168,251,28,2,247,3,128,0,150,1,220,1,30,254,18,253,61,254,252,254,226,0,13,2,51,0,245,254,122,1,49,3, +13,0,82,253,154,253,208,252,32,254,65,4,70,7,5,4,136,255,158,254,13,2,20,255,238,242,88,242,128,255,10,5, +74,5,124,7,170,1,156,251,157,252,36,245,125,238,43,253,178,12,145,8,130,255,126,254,200,2,125,6,120,5,146,1, +25,252,84,248,162,254,152,5,70,255,99,250,96,2,224,7,153,3,61,254,161,254,166,3,113,2,3,252,124,255,1,5, +162,255,210,253,229,3,168,3,174,255,130,253,235,250,233,252,87,1,108,0,107,255,47,1,83,2,80,4,174,3,131,254, +111,252,9,253,13,252,58,252,53,253,240,254,253,2,66,4,198,1,243,254,117,251,202,251,4,0,47,0,139,1,228,6, +57,4,149,253,149,253,212,253,113,253,159,255,112,254,246,253,87,1,191,254,99,251,92,1,77,6,145,2,211,253,175,0, +211,9,108,8,37,247,218,237,88,248,128,6,91,9,120,254,176,246,226,1,240,10,108,2,54,255,178,5,11,5,207,255, +129,248,74,244,163,1,183,13,205,4,19,0,251,4,34,253,179,246,196,254,160,0,0,253,19,2,95,4,23,255,219,254, +139,1,146,255,67,255,194,2,27,0,96,249,112,252,26,4,14,2,158,253,203,255,233,1,126,1,153,254,88,249,200,251, +52,3,8,1,125,253,200,2,13,5,233,255,51,251,12,251,236,0,123,3,134,252,157,251,240,2,76,2,75,255,227,2, +15,3,163,255,118,255,48,255,61,255,213,0,31,0,254,255,223,1,104,1,153,0,133,1,168,1,49,0,166,252,78,251, +136,0,78,3,184,254,101,253,184,1,198,3,82,3,66,3,4,1,71,251,248,249,172,1,20,4,91,251,215,250,134,3, +156,2,39,254,62,0,194,255,111,253,196,253,212,252,200,0,172,7,11,3,29,252,218,254,193,255,140,253,3,1,186,3, +170,0,194,252,149,252,137,1,163,3,148,254,156,253,247,1,100,1,143,254,42,255,206,1,124,3,213,254,1,249,181,253, +116,4,116,2,16,0,4,1,82,0,77,254,144,252,66,254,52,2,47,1,174,0,165,4,172,1,241,251,152,254,125,0, +131,254,162,254,50,254,177,1,209,6,90,255,168,249,175,2,188,3,114,252,32,0,188,2,249,254,178,1,11,1,218,250, +109,255,234,4,255,254,176,251,173,0,111,4,45,2,178,252,7,254,95,5,236,2,175,250,97,253,89,3,147,0,34,254, +226,1,147,2,206,254,233,255,235,2,107,254,179,250,15,0,107,4,91,3,204,0,154,252,239,253,209,3,95,255,218,250, +26,3,246,3,250,251,240,255,86,4,81,253,31,250,0,254,209,3,222,7,36,0,134,249,191,2,17,4,81,249,196,253, +57,6,248,255,58,253,210,0,39,253,196,251,187,0,106,0,35,253,146,254,87,2,13,2,100,252,0,252,74,4,116,4, +112,250,114,250,19,5,54,7,245,254,137,251,196,0,232,2,122,254,202,252,100,0,209,4,238,5,63,0,0,252,237,0, +35,1,20,249,100,251,97,4,57,3,61,255,49,1,166,3,220,2,135,253,44,250,185,0,203,4,29,254,136,251,23,1, +126,4,144,3,145,255,211,253,217,1,30,0,97,249,154,253,87,4,64,0,173,253,253,1,108,3,195,1,29,255,25,253, +230,0,30,4,61,255,151,251,167,255,11,4,39,2,30,252,180,251,222,2,43,4,90,253,7,251,105,252,225,252,124,2, +80,7,5,1,200,251,141,0,173,1,177,252,84,254,83,2,70,255,255,253,181,2,194,2,188,254,255,254,131,255,3,254, +41,1,88,4,197,254,214,249,25,0,114,6,113,1,84,251,14,254,82,1,249,254,54,253,175,255,144,3,127,2,85,250, +96,249,244,5,98,9,21,253,220,249,65,2,69,4,189,1,29,1,30,1,42,3,209,0,183,248,113,251,102,5,181,2, +166,252,115,1,17,5,1,1,213,253,124,253,44,255,162,2,107,2,196,253,202,251,180,254,80,1,12,2,230,3,127,3, +224,253,186,251,55,255,242,254,33,253,17,0,11,3,204,3,235,0,117,249,18,250,34,3,2,2,103,252,171,0,82,2, +175,253,240,254,129,0,153,254,62,1,198,2,236,253,62,250,72,251,49,1,33,6,77,1,41,253,9,2,238,1,214,252, +252,254,11,2,59,2,40,4,13,2,167,253,171,254,232,255,164,1,194,5,243,1,46,252,130,0,208,1,22,252,23,254, +190,2,203,1,204,2,217,2,255,253,148,253,137,255,35,253,112,253,3,1,173,0,90,255,231,255,92,0,208,1,179,1, +168,253,119,252,13,0,134,1,25,0,99,255,64,255,235,254,248,254,16,1,25,4,22,1,189,249,172,251,118,4,29,3, +172,251,227,253,152,3,222,0,178,252,240,254,2,2,81,1,72,0,206,0,56,0,180,254,143,255,230,0,134,255,44,255, +125,1,120,1,146,255,88,0,188,1,53,0,162,253,98,253,15,0,209,2,197,2,65,0,184,253,31,254,90,0,205,255, +5,255,77,1,66,0,132,253,218,1,29,5,241,0,16,0,58,0,117,250,89,251,40,3,20,2,254,253,85,0,223,0, +183,255,37,1,221,254,243,251,102,255,255,1,105,0,189,255,220,254,117,254,98,1,146,1,213,253,58,255,54,3,102,255, +167,250,81,0,182,5,162,255,92,251,170,1,52,5,242,0,210,253,225,253,2,0,192,2,199,0,136,253,198,255,21,2, +1,1,129,0,101,255,117,254,15,1,228,1,116,255,96,0,228,1,63,254,41,251,201,254,149,4,25,4,57,254,53,253, +152,1,251,0,243,252,240,254,233,2,126,1,240,254,80,255,50,255,8,254,28,255,55,1,15,2,23,3,205,2,222,254, +203,252,246,255,114,2,11,1,85,254,105,253,49,0,102,2,122,0,21,0,100,1,115,255,9,255,17,0,57,252,215,251, +218,2,119,4,227,0,199,0,77,0,0,255,132,0,147,255,53,252,103,253,109,1,103,1,149,252,82,252,87,4,66,4, +56,249,7,250,186,3,30,1,191,252,86,1,72,1,151,254,239,1,174,1,94,254,49,1,192,2,150,254,243,252,152,255, +115,2,137,2,16,255,210,253,66,2,147,4,192,255,59,252,70,0,219,2,7,255,60,255,165,2,55,255,132,254,32,5, +69,3,87,253,160,0,192,1,207,253,27,255,171,254,106,253,5,5,98,6,219,252,61,253,208,2,110,254,241,251,209,255, +47,254,16,252,234,1,253,5,194,0,41,252,116,0,182,2,125,251,219,249,60,2,44,4,57,0,129,0,249,255,71,255, +218,1,233,253,22,249,38,1,26,7,24,0,50,253,70,1,87,1,119,1,66,2,86,254,147,253,245,0,202,254,233,252, +254,0,59,2,226,0,213,0,214,253,165,253,45,3,20,2,44,254,104,1,130,0,67,252,101,1,79,3,145,252,199,253, +243,0,214,252,180,254,21,3,129,255,136,255,193,2,196,254,249,252,109,0,11,0,183,254,151,254,147,254,170,1,133,1, +201,253,59,1,18,3,152,252,130,254,74,5,142,255,153,249,238,254,0,1,224,251,80,253,202,5,155,6,79,253,13,249, +15,254,125,1,184,0,242,253,222,252,44,4,3,7,81,251,51,250,189,7,2,7,80,255,238,1,8,0,147,252,163,2, +253,1,28,253,204,1,224,1,170,252,123,255,0,1,79,0,36,4,92,1,135,252,97,0,39,0,136,253,46,2,15,1, +6,253,27,2,58,2,135,253,157,1,201,1,237,251,76,255,13,2,236,253,179,255,146,1,12,254,216,0,157,4,154,255, +199,252,68,0,4,1,79,255,178,255,243,0,99,0,214,253,101,253,246,0,37,3,24,1,9,255,213,255,35,1,3,0, +135,254,9,0,135,1,246,255,190,254,209,255,62,1,234,1,137,0,181,253,159,253,147,0,169,1,225,254,24,252,172,253, +239,1,68,3,81,0,174,252,195,252,143,1,143,4,141,0,133,252,245,254,254,1,104,0,241,253,246,254,212,2,232,3, +236,254,185,251,16,0,78,2,19,254,14,255,68,5,26,3,185,252,83,254,241,0,153,254,51,0,15,4,140,0,143,251, +150,253,228,1,91,2,245,255,222,254,193,255,167,254,84,253,216,0,221,3,148,0,251,252,204,254,185,2,225,1,170,252, +16,253,85,2,215,0,220,253,39,1,159,0,14,254,45,3,119,4,249,254,142,255,14,255,206,249,99,254,91,4,214,254, +42,253,128,2,32,1,109,255,222,2,162,1,240,254,94,1,232,1,27,0,189,0,255,254,163,252,191,1,61,5,6,255, +115,254,80,6,102,2,67,249,161,255,31,5,4,251,122,247,223,0,114,4,203,0,13,254,37,255,11,3,39,255,198,248, +246,1,158,8,10,252,9,249,88,4,89,2,139,252,100,0,70,255,22,254,121,3,89,0,157,252,164,3,113,3,196,252, +153,255,220,0,196,252,181,0,181,3,34,254,116,254,20,3,183,255,50,253,8,2,44,2,66,252,161,252,26,2,81,2, +177,254,53,253,77,253,127,254,249,255,124,255,154,0,69,3,69,0,101,252,85,255,160,0,129,253,46,255,217,1,190,255, +27,0,1,2,67,255,197,254,98,2,218,0,67,253,183,255,35,2,118,255,21,254,254,255,240,0,71,1,132,1,211,255, +63,255,25,1,94,0,174,254,203,0,201,1,216,255,185,0,44,1,234,253,179,254,90,2,28,0,181,253,203,1,70,4, +54,1,116,255,234,0,209,1,43,1,36,0,47,255,91,254,67,254,224,254,166,255,221,0,35,0,52,252,92,253,150,4, +114,2,176,249,102,254,215,6,135,0,60,252,53,3,212,1,32,252,254,0,150,1,77,251,151,0,197,5,83,253,226,251, +96,4,236,1,72,251,57,254,9,1,58,0,127,1,27,0,180,253,103,2,216,5,243,255,86,252,74,1,237,2,150,253, +65,252,84,0,92,1,181,255,77,255,100,255,249,0,161,2,53,0,246,253,33,255,107,255,152,255,180,255,61,253,35,255, +181,3,217,255,140,253,101,3,205,0,121,251,182,2,49,4,176,250,44,253,97,4,141,255,30,253,209,1,112,0,53,253, +255,254,64,0,16,0,65,1,166,2,100,1,49,253,226,252,98,1,189,0,221,253,65,1,210,2,200,255,9,0,83,255, +99,252,137,255,57,3,52,1,225,255,44,255,182,253,181,0,135,3,130,0,236,254,124,2,92,4,185,255,191,250,24,255, +165,4,165,254,38,250,206,0,181,2,73,255,251,1,214,1,250,253,48,1,48,1,206,250,166,253,85,3,1,1,127,0, +20,1,138,253,68,255,88,2,167,254,166,255,225,3,242,253,11,249,2,0,32,6,129,4,77,0,102,253,133,255,233,2, +249,255,7,252,253,253,88,2,250,4,222,2,128,253,39,254,197,2,25,0,181,251,245,254,29,2,66,0,218,255,254,0, +97,0,220,255,6,255,242,253,46,1,66,4,94,254,131,248,98,254,207,4,166,1,85,255,118,1,84,0,199,254,66,255, +193,253,86,255,10,4,60,1,15,252,103,254,73,1,247,0,63,0,15,253,146,253,26,4,203,1,87,250,131,255,102,5, +173,254,25,252,99,2,173,1,71,252,209,252,248,255,90,2,27,3,100,255,218,253,17,3,119,2,192,250,65,254,150,8, +122,4,7,251,151,253,71,1,34,0,125,2,223,0,28,251,125,1,107,8,149,254,7,248,197,255,120,2,237,254,212,255, +83,255,66,253,126,255,210,255,165,254,143,2,129,3,16,254,158,253,83,1,119,0,211,255,24,2,63,0,222,253,143,1, +216,2,23,254,35,254,30,2,25,0,53,253,255,255,215,1,68,0,180,255,242,255,100,0,253,0,140,255,40,254,49,255, +4,0,139,0,175,0,174,253,147,252,63,1,107,2,164,253,175,253,34,2,156,1,221,254,187,255,39,0,38,254,44,254, +26,0,11,1,101,1,136,0,191,254,10,0,108,2,70,0,59,253,96,254,25,1,18,3,71,2,10,253,99,251,0,2, +82,4,237,252,114,250,248,1,6,5,176,254,218,251,178,0,72,2,255,254,248,255,91,3,4,2,21,255,142,254,87,255, +176,0,92,0,218,254,174,0,86,2,160,255,229,254,16,1,31,0,3,255,121,0,185,0,94,0,141,255,74,253,187,255, +11,5,1,2,85,251,235,252,118,2,180,3,202,0,120,253,213,254,89,2,79,0,164,254,230,2,212,1,4,252,99,255, +62,4,166,255,40,254,195,3,40,3,130,253,32,252,191,253,236,255,184,1,125,1,200,0,120,255,212,253,92,255,147,0, +187,254,102,255,220,0,73,0,186,1,251,255,121,251,129,0,44,4,67,252,208,253,116,6,230,254,97,248,30,2,203,4, +231,253,48,254,124,0,128,0,11,1,15,255,128,255,121,2,151,255,212,254,100,2,77,255,128,254,214,3,179,0,68,253, +183,1,2,255,121,251,88,2,93,2,118,252,210,1,32,5,175,253,195,253,237,3,94,0,125,251,108,0,33,3,147,252, +215,251,245,3,246,3,200,253,154,254,154,255,57,254,133,1,43,0,214,250,129,0,139,5,254,254,15,253,149,0,65,255, +77,255,227,0,188,0,34,3,216,0,222,250,4,0,168,5,206,0,207,0,119,3,123,253,54,252,140,1,7,0,3,254, +212,1,26,4,220,2,166,254,112,251,184,255,235,2,219,254,60,254,169,1,211,1,7,1,194,254,153,251,42,254,41,1, +88,0,89,3,134,4,26,253,72,251,212,1,165,1,108,253,191,254,233,255,110,255,114,1,173,255,134,250,106,253,158,3, +185,1,90,254,219,254,21,254,246,255,25,4,213,254,196,248,246,255,32,6,140,1,192,254,14,255,201,254,249,2,94,4, +175,253,3,252,159,255,19,255,1,1,54,5,165,0,196,250,66,253,9,1,211,2,140,3,48,0,108,254,26,2,36,2, +169,254,203,254,116,254,21,254,253,1,173,0,123,251,254,0,5,6,234,253,170,251,189,2,103,255,81,250,141,1,106,5, +12,0,29,255,56,2,217,1,201,254,228,252,127,255,55,2,111,255,30,253,83,254,67,0,108,4,232,3,93,251,17,251, +75,3,77,3,102,255,248,254,154,254,133,2,74,5,207,253,136,251,21,3,18,3,9,255,154,0,198,0,219,254,203,253, +238,253,98,2,147,2,201,251,247,253,37,3,244,253,6,254,1,5,112,1,27,252,230,254,38,0,83,255,247,255,115,0, +76,1,144,255,127,253,45,255,134,253,21,254,47,6,125,2,138,249,246,1,168,5,131,250,138,252,59,4,244,0,114,1, +17,2,197,252,242,255,120,1,185,250,81,254,101,2,182,252,9,0,19,5,223,254,22,254,234,1,132,0,109,2,99,2, +19,253,93,0,184,3,137,253,25,253,110,2,71,2,150,0,145,255,226,254,211,255,213,254,132,255,253,2,211,0,89,255, +227,1,239,252,198,250,151,3,213,2,250,251,17,2,154,4,159,250,42,251,92,5,57,3,174,250,34,254,252,4,169,255, +254,250,43,2,241,3,39,254,117,0,251,1,52,253,38,255,19,1,245,254,208,3,222,2,36,249,173,253,59,5,10,254, +222,251,104,1,78,0,86,1,144,3,247,253,218,252,89,1,154,0,128,0,140,2,51,1,72,0,39,255,250,253,90,2, +2,5,75,1,88,255,251,254,18,254,231,254,166,254,102,255,31,2,144,255,62,254,90,3,254,0,110,250,164,254,234,2, +184,253,92,251,101,0,152,3,209,255,56,252,134,1,104,5,73,254,166,251,37,2,253,1,209,254,227,1,110,1,27,252, +250,251,193,255,250,1,106,1,108,255,15,0,225,1,18,0,153,253,197,254,209,1,229,1,150,253,158,252,15,2,27,3, +146,254,4,255,27,2,47,1,15,0,171,0,91,0,122,255,247,255,216,1,230,0,189,252,50,253,106,1,250,1,212,1, +140,1,133,253,164,253,205,2,127,1,27,253,222,253,134,255,49,1,82,3,190,0,148,253,220,255,235,1,10,0,4,254, +24,255,88,2,72,1,196,251,115,252,252,1,29,0,62,251,61,255,195,5,33,3,150,252,139,252,143,255,144,255,119,0, +159,2,19,1,84,255,147,0,238,0,91,0,82,255,65,253,34,255,221,2,138,0,198,253,66,0,209,0,193,254,107,0, +51,3,161,1,30,254,60,254,188,255,214,253,156,255,5,6,239,1,45,250,131,1,9,7,80,253,18,252,30,5,142,1, +190,249,180,253,60,3,34,2,92,255,1,255,86,1,184,1,232,254,82,254,91,255,252,255,21,2,245,1,235,254,106,254, +230,254,80,0,198,3,211,255,64,248,191,253,166,5,37,255,78,250,252,1,200,3,63,252,159,253,92,5,57,2,240,250, +100,254,27,3,73,0,183,255,33,0,81,252,35,0,83,7,113,0,86,249,53,0,198,3,107,255,85,255,129,0,187,1, +242,4,4,1,59,252,180,1,97,2,132,251,15,255,1,3,23,251,56,251,78,6,124,6,7,254,231,251,241,254,234,1, +229,0,198,251,45,253,231,5,33,6,238,252,38,251,55,2,22,3,209,253,78,0,230,5,31,1,22,252,213,0,159,2, +47,255,70,0,190,0,28,255,225,0,139,254,177,250,77,0,146,3,47,255,185,255,133,255,95,252,117,2,210,4,234,251, +134,253,184,4,123,255,236,251,78,255,180,254,53,0,8,2,227,253,196,0,80,5,25,253,210,249,36,1,167,0,127,255, +195,4,4,2,51,253,131,0,160,0,140,254,93,0,78,253,122,252,165,5,138,4,119,249,14,254,136,7,55,0,228,249, +34,0,248,1,134,255,126,1,230,255,231,253,211,3,163,4,164,253,229,253,54,1,254,254,91,254,171,255,204,255,208,0, +84,254,203,251,188,1,238,4,46,0,123,255,6,255,102,251,149,255,202,3,166,254,196,253,253,1,26,0,134,254,201,1, +103,2,103,255,26,253,156,254,144,1,10,0,185,254,236,1,36,2,5,0,190,255,157,253,4,254,122,1,33,255,12,255, +11,4,155,255,165,251,198,2,145,1,240,249,142,254,166,3,191,0,192,0,76,1,10,255,205,253,179,252,137,0,114,6, +100,1,69,252,245,1,29,2,150,251,66,253,249,2,157,4,167,0,200,249,65,252,38,4,45,1,147,253,210,1,158,255, +250,251,174,1,19,3,245,253,214,254,1,2,234,1,35,1,214,255,134,255,148,255,142,254,16,1,167,2,172,253,254,253, +161,4,244,1,252,250,236,253,93,4,88,3,233,252,167,251,30,3,140,5,205,253,41,252,134,1,130,255,57,252,20,1, +101,4,146,1,171,255,37,0,198,0,51,0,26,253,30,251,168,254,169,3,198,3,154,0,34,255,252,254,15,254,91,253, +53,253,235,254,182,3,236,3,202,252,234,251,62,2,52,0,28,251,162,0,114,5,141,0,213,253,139,255,70,254,221,253, +129,0,37,0,84,254,87,0,145,3,32,3,27,255,159,252,201,255,105,3,146,0,219,252,90,0,226,4,218,1,78,253, +102,255,100,2,177,255,200,253,185,1,35,4,69,1,2,0,100,1,221,255,67,254,116,255,209,252,236,249,223,1,213,8, +74,0,202,249,70,1,33,3,209,251,158,253,145,4,206,3,109,0,82,255,159,255,106,0,251,252,4,251,25,3,104,7, +161,0,156,254,56,1,22,255,166,254,231,254,24,253,211,1,153,3,152,251,23,254,219,5,166,254,195,251,57,5,237,2, +119,253,254,2,142,255,29,247,95,254,180,4,62,255,127,255,103,3,51,0,153,253,55,254,13,254,147,255,211,0,232,255, +170,0,101,0,40,254,65,0,111,2,77,255,49,255,49,2,102,255,7,253,134,255,218,253,30,253,138,3,171,1,170,249, +234,255,146,7,23,0,187,252,197,2,97,0,215,250,130,252,228,255,0,4,138,4,212,253,164,254,171,5,225,255,77,248, +180,254,21,4,65,1,78,0,66,0,1,255,13,0,108,1,88,2,157,2,255,254,225,252,122,1,132,3,44,254,67,252, +49,1,238,1,161,253,183,254,171,1,48,255,99,255,102,2,193,254,199,252,146,1,239,0,190,253,55,0,151,0,76,255, +134,0,170,253,190,252,65,3,57,2,105,251,63,0,24,8,100,3,99,250,75,250,95,1,98,4,155,0,230,254,126,0, +158,0,248,0,196,0,174,255,237,1,43,2,251,253,247,254,104,2,25,0,106,253,96,254,131,1,170,3,103,255,54,252, +10,1,152,1,184,253,6,0,104,0,2,254,150,1,232,1,202,254,239,1,250,0,124,251,212,254,215,2,109,0,158,254, +154,254,249,2,125,5,66,251,12,248,146,4,215,4,176,251,65,254,215,0,178,255,57,2,233,254,219,252,169,3,231,0, +19,250,183,255,14,3,255,255,52,1,129,0,87,255,168,1,28,255,242,254,224,3,28,255,115,250,22,1,125,3,118,1, +121,2,58,254,146,251,185,1,142,1,120,252,68,0,233,4,5,2,227,253,41,253,220,255,159,2,33,2,56,0,89,254, +9,253,18,253,22,255,185,4,204,5,9,252,133,249,128,3,186,3,155,253,22,0,86,255,93,252,153,1,108,0,76,251, +29,3,180,6,42,253,52,251,135,255,137,255,0,1,65,1,139,254,137,1,254,3,251,254,145,252,83,0,15,3,126,1, +11,254,119,254,161,1,78,0,76,254,133,1,48,3,212,254,232,250,196,252,197,1,133,3,211,0,80,254,205,254,209,0, +104,255,80,251,212,254,228,6,196,4,156,253,84,252,188,252,168,255,204,4,241,1,111,253,178,255,205,254,29,253,244,1, +244,1,172,253,11,0,216,1,2,255,112,253,112,253,133,2,187,7,221,255,177,248,139,0,254,4,69,255,99,253,151,254, +55,0,82,3,82,0,22,252,143,0,177,3,152,0,228,255,51,0,176,255,151,0,107,254,197,252,178,1,172,2,182,253, +135,255,187,3,83,1,204,255,113,0,206,254,156,1,138,5,81,255,43,250,232,255,191,1,83,253,132,255,134,2,8,0, +177,0,189,1,46,253,172,252,94,2,51,3,110,253,79,250,16,0,206,5,16,0,10,251,212,1,208,3,217,253,127,0, +133,3,62,252,247,249,158,0,218,3,229,2,141,0,89,254,81,0,110,2,159,255,115,252,232,253,61,2,117,1,156,252, +223,0,45,6,99,253,55,250,148,4,79,2,125,250,7,1,200,1,242,249,107,255,57,4,230,252,94,253,147,3,67,1, +204,253,56,254,217,0,92,4,126,1,127,253,158,1,35,2,240,252,171,255,180,3,254,0,32,0,238,255,215,253,64,0, +85,1,77,254,112,2,13,7,80,255,0,249,130,255,47,5,27,1,221,251,152,253,121,3,60,3,9,252,207,251,159,3, +248,2,228,251,211,253,100,2,52,0,85,255,71,255,65,252,68,0,112,5,98,254,47,251,139,3,11,2,91,249,91,252, +240,1,192,0,44,0,144,254,72,251,66,254,9,3,199,1,244,254,219,255,219,2,37,2,63,253,36,253,18,1,185,255, +58,255,75,4,224,2,203,252,87,255,224,3,38,1,129,254,128,255,125,0,234,1,110,1,99,253,192,253,114,3,137,3, +208,254,157,254,146,255,32,254,123,255,223,255,184,252,5,0,37,5,58,0,139,252,114,0,63,255,95,253,86,3,90,4, +213,253,212,251,104,254,168,2,22,5,186,254,196,250,99,3,220,5,167,251,73,250,82,3,121,4,145,253,62,251,175,0, +80,5,230,1,100,253,132,255,115,1,112,255,121,0,210,2,77,255,5,251,65,253,255,0,58,0,226,254,160,0,171,1, +42,0,185,255,50,1,17,1,118,254,233,253,237,0,252,0,0,254,251,0,0,5,202,254,76,249,70,0,175,5,6,0, +36,252,157,255,56,1,166,255,235,0,4,2,20,255,100,255,123,3,100,0,70,251,30,0,102,4,231,255,81,254,7,1, +174,0,0,0,27,255,129,253,21,0,195,1,96,255,173,0,113,1,195,252,196,252,47,1,63,2,158,2,253,0,120,253, +224,255,166,1,192,253,151,255,170,2,157,253,82,253,180,2,176,255,246,251,197,0,64,4,222,1,238,253,128,252,144,0, +4,3,52,255,97,255,41,3,39,0,107,253,245,1,100,3,118,254,26,252,129,254,85,1,134,2,86,2,116,0,37,254, +154,255,125,1,74,253,59,252,226,2,248,0,49,250,53,2,0,9,94,253,181,247,159,1,147,4,175,255,125,254,0,254, +11,0,108,4,62,1,71,253,0,1,121,1,104,254,75,1,252,2,196,255,11,255,226,253,134,251,142,255,37,4,105,1, +222,254,231,0,226,1,51,0,174,254,112,255,50,2,151,2,166,254,13,252,202,254,4,2,65,1,163,255,90,255,91,254, +107,254,250,0,196,1,61,0,232,255,32,1,102,2,46,0,237,251,22,255,85,4,43,255,207,250,31,255,46,255,255,254, +107,4,235,255,82,249,36,2,247,5,57,252,192,252,93,4,194,2,117,255,85,254,187,253,221,1,201,2,143,253,69,255, +161,3,120,255,80,252,204,255,59,1,196,255,107,0,66,1,5,254,119,250,125,253,212,1,175,0,81,1,174,4,233,0, +154,250,243,251,255,0,105,2,10,0,86,0,223,4,101,2,172,250,91,254,169,5,92,1,95,253,96,0,54,0,255,254, +47,0,213,255,224,0,144,1,144,253,194,253,136,3,218,3,228,255,174,254,204,255,237,0,243,254,219,251,252,254,31,4, +81,2,117,254,120,255,241,1,233,1,175,0,165,255,92,254,17,254,33,255,45,254,163,253,226,1,173,2,121,252,190,251, +181,1,58,3,7,0,233,253,45,0,152,3,202,254,115,249,161,0,215,4,181,253,78,254,134,3,157,255,11,254,251,255, +153,252,161,254,142,3,149,254,4,253,136,2,34,0,216,254,205,4,217,0,25,249,85,255,194,6,117,1,185,250,46,253, +28,3,54,3,112,0,227,2,248,3,24,253,119,250,226,0,107,3,93,0,175,0,92,3,245,2,45,255,139,252,213,255, +46,3,210,254,124,251,106,0,104,3,175,0,73,255,101,254,105,254,210,2,216,2,14,252,90,252,169,2,165,1,102,253, +124,254,86,0,105,255,108,255,29,2,36,3,77,255,42,253,61,0,6,0,246,252,239,254,228,0,123,0,72,3,242,2, +13,253,99,252,37,0,45,2,59,3,6,0,96,252,171,0,50,2,46,252,228,253,63,4,170,1,158,253,166,254,165,255, +82,1,222,2,145,0,44,255,110,0,17,255,211,252,37,255,109,3,165,2,155,253,201,252,226,0,166,2,60,1,136,255, +154,254,193,255,5,0,7,254,202,255,142,2,97,255,185,253,164,1,244,1,159,254,166,254,88,0,254,255,92,254,92,255, +188,3,238,2,65,252,227,253,47,6,24,3,132,248,63,250,232,4,31,5,68,253,25,255,194,5,253,0,147,250,15,255, +201,0,131,251,240,254,235,6,191,4,34,255,4,255,142,255,151,254,113,254,1,255,146,0,146,1,9,0,253,254,244,254, +167,253,47,255,253,2,186,0,207,253,129,2,100,2,138,249,211,250,75,5,34,5,204,253,131,253,226,0,124,0,172,254, +168,0,127,3,214,255,145,252,18,1,52,0,28,250,172,0,98,8,156,1,88,253,132,0,86,255,106,255,66,255,91,250, +239,0,122,10,82,255,38,246,217,1,178,6,136,253,238,250,201,253,96,0,230,3,214,0,33,251,88,255,249,4,232,1, +109,254,142,255,70,1,124,1,221,254,59,252,86,255,175,3,96,2,31,0,193,255,232,252,224,251,242,0,239,2,11,255, +203,254,35,2,104,1,18,253,126,251,179,255,206,2,255,254,255,253,249,2,144,1,223,253,255,1,206,2,146,253,208,254, +172,2,56,2,215,0,83,253,224,251,138,2,139,5,86,255,133,252,165,0,255,3,73,0,232,248,112,252,112,7,68,5, +208,252,16,255,112,2,117,0,214,255,87,254,247,252,221,255,233,0,124,255,189,255,128,255,29,0,206,0,22,254,129,255, +103,4,201,0,121,251,135,254,72,1,14,0,77,0,6,1,124,0,134,255,254,255,241,2,160,1,195,250,228,250,37,3, +248,5,69,1,155,254,0,0,156,254,26,252,2,1,51,4,163,252,88,252,176,5,188,1,149,249,181,255,113,3,247,254, +45,0,253,0,125,254,250,0,25,1,160,253,24,255,98,255,111,254,121,2,29,2,229,253,78,0,139,1,40,254,45,255, +28,1,37,0,0,0,3,255,180,254,141,0,236,255,43,1,79,4,10,255,237,250,252,1,82,3,17,252,136,253,112,3, +192,2,73,0,49,254,102,253,59,1,206,1,18,253,137,255,24,6,88,3,191,253,67,255,115,1,126,0,27,1,183,0, +7,252,2,251,169,1,9,5,97,255,152,251,19,255,251,0,91,0,10,3,22,2,247,250,197,251,143,2,63,255,136,250, +245,1,78,7,45,1,28,252,219,252,72,255,12,2,119,0,198,252,238,255,79,3,144,255,243,254,10,3,103,1,113,253, +87,254,202,0,17,2,183,0,209,253,140,0,30,4,49,254,188,250,61,3,88,6,91,254,46,252,56,1,156,1,220,253, +204,253,231,2,42,4,58,252,88,249,249,1,17,4,5,254,215,255,208,2,69,254,227,253,34,2,57,2,236,1,201,1, +208,254,49,254,48,255,24,254,127,255,65,2,245,0,241,254,151,255,118,1,237,1,246,254,45,253,215,255,192,0,134,255, +206,0,35,1,250,255,232,0,107,0,187,253,228,252,189,253,168,0,254,3,81,2,248,254,131,255,130,0,154,255,230,254, +226,255,78,1,211,254,92,252,48,1,223,3,164,254,34,254,176,1,113,255,243,253,25,0,246,255,177,0,51,2,3,0, +44,254,220,254,27,1,151,3,156,0,45,253,26,1,16,2,244,253,204,254,188,254,153,253,253,3,78,5,227,253,192,253, +178,255,106,253,222,0,169,2,235,253,84,0,127,3,28,254,118,253,126,1,104,0,244,255,90,0,2,254,176,255,237,2, +112,1,175,0,90,1,197,255,189,254,51,254,131,253,99,255,228,0,169,255,151,254,80,254,46,0,218,3,22,2,196,251, +136,251,187,0,211,1,111,255,22,0,251,1,172,0,127,254,113,253,121,253,96,1,100,4,200,255,27,254,20,4,207,1, +40,250,20,255,229,5,4,0,110,251,44,0,235,2,231,1,210,1,44,255,51,251,64,254,138,4,94,2,88,252,189,254, +182,3,28,1,43,253,205,254,28,2,199,1,164,253,93,253,201,3,102,4,56,253,0,253,210,1,8,0,249,252,99,254, +125,0,147,2,165,2,246,254,224,253,205,0,120,1,64,255,141,254,145,1,46,4,227,0,103,253,190,255,220,255,249,251, +16,254,85,3,20,3,139,1,16,2,19,0,244,252,149,253,16,0,164,0,180,255,168,254,160,254,85,0,138,0,201,253, +171,254,89,3,23,2,38,253,204,253,65,0,130,0,65,1,224,255,199,253,179,0,245,1,215,253,58,254,197,2,123,2, +143,255,238,254,143,255,187,255,251,253,239,252,232,0,166,4,253,1,97,254,158,254,73,255,209,255,154,1,169,0,79,253, +184,254,149,2,73,1,38,255,99,0,217,255,4,255,46,1,201,0,187,254,224,255,254,255,36,255,148,0,190,255,16,255, +61,3,244,2,172,252,111,252,96,1,99,2,126,255,216,253,138,0,209,2,39,0,178,255,252,1,195,254,16,253,250,1, +200,1,242,253,66,0,92,2,174,0,64,0,95,255,229,254,238,0,12,0,19,254,38,0,185,0,227,254,92,0,177,1, +160,255,52,255,227,0,118,255,38,252,227,253,216,2,107,1,241,252,211,255,150,3,154,255,105,252,188,255,207,2,130,1, +247,253,146,253,32,2,233,2,74,253,195,252,3,2,58,1,43,253,78,0,37,4,14,255,151,250,236,255,209,3,124,255, +38,254,65,1,53,0,40,0,197,3,144,0,60,251,206,255,229,3,216,254,185,253,130,3,105,3,212,253,217,251,49,254, +185,1,213,1,93,254,150,0,95,5,110,255,4,249,36,255,195,2,91,254,50,0,121,3,222,255,193,254,243,255,119,254, +125,0,253,2,81,0,86,255,44,0,84,255,122,0,129,0,166,254,105,1,117,2,34,254,136,254,35,1,223,255,94,1, +204,3,8,1,5,254,224,252,54,253,191,0,43,2,12,0,11,0,81,0,66,0,208,2,83,2,197,253,100,253,216,0, +246,1,117,0,39,0,245,0,101,253,200,250,45,2,38,5,56,252,106,253,127,6,123,0,136,248,3,255,121,4,215,1, +148,254,40,253,250,255,170,1,241,253,173,255,109,3,199,254,141,255,86,6,199,255,57,248,32,1,187,6,150,253,92,249, +43,1,192,4,22,254,94,251,19,2,126,4,9,255,121,252,18,254,9,0,70,1,93,254,32,251,112,254,160,3,33,5, +116,1,86,250,229,251,169,5,233,3,27,251,106,255,81,6,228,255,15,249,208,253,81,4,207,2,146,255,213,1,214,1, +51,252,35,253,17,3,179,0,247,252,125,1,48,4,126,255,46,252,213,254,164,2,115,1,118,253,36,254,113,1,51,1, +10,0,141,0,17,0,228,254,43,255,129,255,184,254,16,0,132,3,141,1,74,252,235,254,44,3,17,255,79,253,67,1, +2,0,65,254,237,0,208,255,5,255,22,3,44,1,126,251,11,254,108,3,239,2,195,255,34,255,29,1,187,0,60,254, +131,255,90,0,167,253,4,0,212,3,200,255,224,252,108,0,196,1,169,255,104,253,114,254,72,5,96,5,229,250,107,251, +87,5,173,1,54,251,238,0,184,1,210,251,169,255,1,4,77,255,186,253,232,255,136,254,68,255,189,2,16,3,199,1, +67,254,66,250,233,254,167,4,193,254,63,251,80,4,241,6,48,253,37,250,112,0,160,1,253,253,230,254,76,2,160,2, +165,1,108,0,202,254,98,0,85,2,240,254,182,253,29,2,211,0,222,251,33,255,132,4,188,2,16,254,128,252,35,0, +140,3,119,255,163,251,101,255,249,2,13,3,208,0,18,252,150,253,240,3,197,0,76,251,195,255,167,4,94,3,249,253, +44,249,201,255,137,7,147,255,223,251,215,4,170,0,8,248,203,0,44,6,91,254,19,253,154,0,23,255,13,254,231,255, +234,2,78,3,198,253,36,252,165,1,58,1,106,252,32,255,140,4,107,2,71,252,135,253,50,4,152,2,87,254,183,2, +140,1,5,249,118,253,29,5,77,255,133,252,135,2,155,2,88,255,48,255,232,254,252,254,209,254,98,254,57,1,11,3, +94,1,87,0,18,254,215,252,249,1,253,3,22,254,218,252,250,2,75,4,231,253,113,252,231,4,4,6,231,250,157,251, +200,7,12,3,138,245,114,251,227,8,161,5,240,250,168,251,235,2,66,2,221,252,15,254,53,2,231,0,66,253,14,254, +128,2,10,2,139,252,179,254,83,4,6,255,40,251,252,1,196,1,163,251,33,254,58,0,166,254,162,1,222,0,24,252, +203,255,100,4,213,0,151,253,222,254,199,1,137,2,25,254,167,252,221,2,42,4,248,253,39,253,203,1,179,1,178,254, +71,1,35,4,187,253,25,249,168,0,163,4,72,254,94,253,143,1,68,0,141,254,235,255,225,255,247,254,233,254,103,0, +113,2,77,1,121,255,246,255,113,255,46,255,204,255,119,254,113,0,224,3,57,255,194,251,63,1,10,3,213,255,198,0, +83,2,227,1,82,1,136,254,223,252,135,255,202,1,127,1,67,255,104,253,193,255,97,1,114,254,223,254,186,3,238,3, +206,253,250,249,209,255,236,5,220,255,127,250,119,0,131,3,39,2,224,3,104,255,236,249,185,0,158,5,161,0,54,254, +120,254,170,255,218,2,180,254,26,249,144,255,87,5,31,0,108,252,79,0,212,4,39,2,60,250,185,250,127,2,45,3, +153,0,229,0,111,254,37,254,31,3,230,2,10,254,186,252,104,255,88,2,213,254,23,250,72,1,248,6,2,254,173,251, +169,4,58,2,8,250,104,253,177,2,243,0,1,255,230,255,44,1,244,0,86,255,181,254,153,255,128,0,155,0,244,0, +242,2,245,1,32,252,153,252,48,4,216,3,90,253,107,253,113,0,82,0,148,255,73,255,96,0,148,1,37,255,16,254, +188,1,69,2,219,254,169,254,240,255,233,254,242,254,69,1,45,2,16,1,65,0,11,255,143,253,102,255,228,1,77,0, +177,255,134,1,86,255,202,252,161,254,148,255,200,0,202,3,91,0,136,250,18,254,237,3,90,1,155,252,237,254,16,4, +45,1,186,250,142,254,152,4,108,0,1,255,209,3,14,255,196,249,49,2,203,6,175,254,247,251,224,1,23,3,153,254, +220,252,44,0,179,1,53,254,167,254,22,4,71,2,237,252,100,0,191,2,220,251,34,252,205,5,70,4,113,250,1,253, +86,5,48,2,46,252,15,255,69,2,7,0,204,254,177,255,248,255,97,0,73,255,145,253,240,255,121,1,85,254,31,255, +164,1,17,254,7,0,232,7,247,1,158,248,183,255,119,4,126,252,140,252,244,3,29,4,22,1,197,254,1,254,177,0, +53,255,193,252,77,2,5,2,148,250,189,255,86,6,65,254,51,250,158,0,193,1,131,255,235,0,241,1,200,0,76,255, +94,0,155,1,64,253,0,252,70,2,96,1,254,252,107,2,246,3,117,252,186,252,71,1,103,255,191,254,115,2,217,3, +212,0,138,253,229,255,151,2,175,254,157,254,38,4,176,1,34,252,252,252,183,254,27,1,247,2,62,255,146,255,41,4, +189,255,131,251,189,0,109,2,58,255,204,254,62,255,109,2,183,4,53,254,54,251,68,1,144,0,209,252,254,1,22,3, +44,251,212,250,188,1,11,2,187,254,191,0,155,3,115,1,84,254,169,253,34,254,255,255,192,1,36,1,136,1,135,2, +210,254,20,251,4,254,17,2,139,1,9,0,63,0,15,255,194,252,213,255,74,5,114,1,54,250,140,253,68,3,222,0, +219,254,102,1,252,1,165,255,139,253,102,254,140,1,245,1,170,0,130,0,172,253,98,251,133,255,48,2,152,255,214,0, +214,4,168,1,96,250,237,250,125,2,61,4,22,255,160,253,192,0,23,4,206,4,28,254,159,249,35,2,246,4,214,250, +168,252,241,6,188,2,141,252,96,1,168,3,122,0,84,254,47,253,200,255,54,3,19,1,6,255,37,0,65,0,81,0, +73,255,69,253,75,0,102,2,184,252,41,252,110,5,153,6,143,251,224,247,133,1,40,6,227,254,20,251,118,255,116,1, +216,255,122,255,174,0,140,2,40,1,79,252,241,251,167,0,14,4,240,2,82,253,240,252,128,5,136,4,0,250,12,253, +16,5,210,255,146,252,250,1,48,2,154,255,126,254,223,251,87,254,28,3,72,0,227,255,70,5,217,255,145,245,10,252, +112,8,160,3,176,249,55,255,163,6,171,0,112,251,65,255,101,1,102,255,231,253,153,255,135,3,72,0,125,250,209,1, +169,6,137,251,11,251,199,6,7,2,8,249,127,255,150,3,235,254,168,253,240,254,202,1,215,3,43,254,126,251,187,2, +170,3,62,252,109,252,139,3,255,4,77,255,84,252,118,0,91,2,130,254,41,254,194,0,182,255,130,255,252,1,255,0, +15,254,255,254,205,1,132,1,52,0,25,1,216,255,201,253,125,2,49,4,106,251,47,251,175,5,170,3,172,250,137,254, +91,5,230,1,96,251,4,252,185,2,8,2,134,250,146,0,16,10,77,254,219,245,130,5,236,9,174,249,188,249,203,6, +122,2,162,248,52,254,207,4,64,0,198,253,118,2,197,2,105,253,194,250,45,253,167,2,158,4,54,255,48,253,152,1, +92,0,246,253,209,1,178,255,123,251,229,2,134,5,233,251,40,252,143,3,246,255,181,251,53,0,9,2,153,254,82,254, +240,1,2,2,225,252,44,254,167,6,109,3,166,247,88,251,116,7,118,4,208,250,128,254,95,7,210,1,92,246,240,252, +18,10,154,2,130,248,73,2,187,5,193,248,69,250,60,6,155,1,231,250,238,1,90,3,124,251,107,253,78,5,82,3, +141,253,81,255,72,2,193,254,126,251,244,254,199,3,222,3,174,0,207,254,67,255,169,254,207,254,112,3,229,2,145,249, +125,250,102,6,75,5,241,251,28,254,175,1,161,254,140,255,186,0,240,254,179,2,235,2,227,250,26,253,214,5,40,2, +0,252,188,254,40,1,187,0,20,0,179,254,72,1,94,4,7,0,69,253,137,1,179,1,155,253,186,254,243,1,145,0, +35,254,34,0,181,1,67,253,17,253,149,5,48,4,250,248,119,252,232,6,28,0,125,247,207,0,144,9,33,2,138,249, +223,252,109,3,79,2,143,254,41,0,203,0,124,251,82,251,107,4,0,7,194,253,175,250,41,2,229,1,22,252,115,1, +210,4,109,251,240,251,24,5,198,254,178,249,90,5,93,5,144,248,124,252,32,6,58,1,69,252,25,255,76,2,228,4, +232,0,40,249,141,254,95,6,124,254,93,250,197,3,115,3,48,251,242,253,178,2,92,1,30,2,220,0,15,252,18,255, +139,4,82,1,21,253,123,254,73,1,21,2,1,255,186,252,63,1,82,3,244,252,70,251,123,1,120,1,13,251,25,253, +151,6,72,5,77,250,151,252,72,8,143,3,58,248,159,254,119,7,198,255,112,248,101,255,89,6,26,1,82,250,152,254, +216,4,31,1,145,251,199,252,22,1,46,4,94,1,194,251,240,254,242,3,210,255,228,254,159,3,182,0,216,252,223,254, +245,254,46,1,104,5,250,255,30,251,78,0,155,0,5,253,246,1,237,3,20,253,132,252,77,2,185,2,55,255,130,253, +66,255,218,2,18,1,87,251,236,254,15,7,197,1,72,248,182,253,234,5,146,1,18,252,229,253,237,0,143,2,57,1, +135,253,194,254,12,3,136,2,238,255,23,255,246,254,158,255,26,255,222,253,230,0,12,5,228,2,113,252,184,250,244,0, +217,3,191,252,127,251,21,4,219,2,20,251,196,254,18,4,1,0,245,253,238,1,125,3,99,0,195,253,16,0,32,2, +162,254,202,253,126,2,202,2,13,254,42,252,20,0,33,5,242,1,195,250,202,252,154,1,146,1,218,3,174,2,176,250, +35,252,5,3,69,0,14,254,175,1,150,1,137,0,187,0,152,254,56,254,70,255,195,255,84,2,86,0,216,249,135,252, +50,4,253,3,25,0,172,254,177,255,203,0,230,253,31,253,169,2,178,2,186,253,92,255,208,1,142,0,34,1,247,255, +185,254,205,3,97,4,244,252,217,251,149,0,128,2,79,3,143,0,124,250,58,253,46,5,209,1,32,250,194,254,6,6, +217,0,66,250,211,254,200,3,12,0,42,253,69,1,41,4,51,0,123,252,150,255,109,2,127,254,155,252,198,1,71,3, +110,253,139,251,147,1,28,4,66,253,1,250,221,2,79,8,41,0,3,250,32,255,155,3,247,0,130,254,118,1,99,4, +158,255,191,249,82,254,112,5,91,3,114,255,95,255,159,253,169,253,124,2,141,1,65,251,164,252,24,2,25,1,43,255, +239,0,86,0,230,252,178,251,171,255,96,6,78,4,32,250,200,251,99,5,142,0,115,249,217,1,15,6,236,252,81,251, +233,2,142,3,127,254,124,254,232,2,48,2,65,252,215,252,45,2,94,0,141,253,119,1,40,2,243,253,215,254,178,1, +156,255,202,254,188,2,34,2,54,252,62,254,123,5,42,2,167,251,210,254,40,1,146,254,179,0,198,2,69,0,221,255, +185,255,134,254,57,1,236,2,210,255,113,253,168,253,53,0,143,2,11,0,62,254,69,1,123,1,157,254,82,254,152,255, +234,0,198,255,112,253,85,1,48,4,210,253,231,252,12,4,100,2,170,252,115,254,125,0,11,0,202,0,142,255,69,254, +41,1,180,3,110,1,112,252,26,252,19,3,250,5,200,255,52,253,72,1,4,1,167,252,252,252,161,1,239,3,201,1, +115,254,187,252,123,253,240,255,92,0,145,254,6,0,141,3,74,2,175,253,6,253,218,0,232,1,82,254,149,254,8,3, +37,1,196,250,176,250,212,0,146,5,242,2,85,253,190,255,183,3,24,254,174,250,130,0,39,4,111,3,52,0,214,251, +108,255,215,3,16,254,160,253,221,4,1,1,25,250,183,253,89,2,219,2,187,255,129,251,171,0,155,6,3,255,21,250, +0,1,38,3,229,254,199,253,159,255,121,2,218,1,110,253,178,253,13,1,216,1,25,2,182,255,132,253,175,2,143,4, +209,253,148,253,68,2,42,255,140,253,186,3,210,2,5,251,77,254,229,5,4,255,231,247,88,0,98,4,184,252,101,253, +173,4,26,5,85,0,193,250,16,254,230,7,102,0,244,244,248,2,2,12,251,250,178,247,56,7,94,6,29,251,121,252, +160,4,200,3,79,250,4,251,100,5,59,0,88,246,189,0,188,7,151,252,241,251,139,5,197,0,100,248,212,254,61,6, +170,255,6,250,48,2,221,5,218,253,166,254,147,4,90,255,72,252,108,1,140,0,66,252,213,252,87,1,49,6,228,1, +97,250,157,255,206,3,28,253,251,253,53,2,63,253,199,253,200,3,201,0,241,252,180,255,152,2,104,1,219,252,14,255, +16,7,130,1,69,248,78,0,110,5,106,253,183,254,180,3,103,254,42,254,98,3,105,255,39,252,2,2,98,4,64,0, +79,255,46,1,2,255,226,251,2,255,229,3,178,1,144,252,188,255,124,7,59,2,126,244,164,249,53,10,98,5,194,248, +153,255,166,4,156,250,14,251,183,5,137,3,245,251,5,255,165,3,136,0,100,255,177,3,58,0,16,248,154,253,193,7, +128,2,32,250,36,255,172,5,95,0,90,248,129,252,10,6,130,3,140,252,187,255,187,2,157,255,70,0,125,2,158,0, +210,253,125,253,29,2,104,3,77,252,158,254,58,6,164,252,38,248,192,7,220,6,87,246,178,250,129,7,219,4,23,253, +203,250,253,254,25,3,199,254,146,253,138,4,0,4,119,253,248,250,68,252,73,4,180,8,24,254,45,249,255,1,164,3, +187,254,37,253,209,252,173,1,100,4,178,250,109,248,105,5,189,8,137,254,72,251,127,2,9,4,19,250,247,248,92,7, +55,9,184,251,118,250,10,2,95,2,217,255,118,252,42,252,208,3,150,4,1,252,212,251,0,2,1,4,249,1,240,252, +203,253,206,5,250,2,254,248,23,252,5,5,99,3,255,249,243,246,6,2,182,9,208,254,136,248,47,4,32,8,81,252, +153,246,126,255,72,8,126,2,238,249,139,0,25,7,55,0,57,253,80,1,251,0,50,255,85,253,200,253,126,3,117,0, +79,249,253,255,155,2,225,251,137,3,194,8,14,252,47,250,217,0,117,252,198,253,130,4,94,1,60,1,195,3,231,253, +103,252,35,0,150,0,133,3,7,2,210,250,108,255,54,6,28,0,89,251,244,254,181,5,44,8,53,251,28,243,249,2, +155,7,49,248,38,252,33,9,43,3,226,252,143,252,36,250,119,1,97,7,130,253,112,252,87,7,243,3,105,250,131,253, +209,1,157,253,226,251,104,2,142,4,226,252,150,251,103,3,64,4,104,1,111,1,12,251,74,247,248,1,34,8,191,0, +68,253,195,1,173,2,242,251,167,247,130,0,40,9,230,1,114,251,196,1,233,3,134,253,45,252,5,2,166,5,3,0, +187,249,197,253,57,0,39,252,58,1,142,6,35,254,151,251,22,4,121,3,205,252,82,252,207,255,135,3,127,2,161,255, +84,2,34,0,135,250,39,2,199,5,196,250,105,253,255,6,23,254,9,250,249,4,163,3,186,251,94,254,26,1,145,0, +186,254,210,249,42,254,210,8,55,5,109,252,101,254,211,0,210,254,115,254,19,255,133,1,185,3,122,0,2,254,181,255, +19,255,104,253,182,254,82,1,27,3,162,0,165,253,242,1,28,4,65,253,143,252,91,3,30,1,53,251,9,0,114,6, +173,1,11,250,121,251,236,0,132,1,180,255,1,255,96,0,133,4,51,3,0,251,252,250,122,1,153,2,102,4,219,2, +82,248,115,252,225,10,41,1,88,243,219,0,37,12,102,0,114,246,50,252,183,6,138,5,207,250,79,254,66,9,36,1, +219,246,77,253,230,2,141,2,98,1,240,252,93,254,168,2,4,255,70,0,78,2,64,249,152,253,69,11,9,1,198,245, +93,0,114,3,223,251,14,255,217,4,173,2,234,252,148,252,23,4,176,1,253,248,143,3,105,10,248,248,106,246,222,5, +28,3,187,251,59,0,113,1,96,1,152,0,183,250,84,255,105,6,36,254,125,251,138,3,42,0,109,251,31,2,101,5, +191,0,86,252,93,253,214,3,65,3,36,251,162,253,220,4,88,255,169,248,203,254,219,6,14,4,234,251,82,252,240,2, +211,0,225,249,148,253,95,6,171,4,96,253,158,255,94,4,37,253,138,249,182,5,98,7,55,248,31,247,230,3,13,5, +40,253,10,252,97,2,205,3,175,251,197,252,166,8,244,2,158,245,233,255,144,11,93,0,123,247,152,254,195,5,32,4, +249,251,1,250,229,3,13,6,4,252,57,251,245,1,239,0,45,255,68,2,101,1,159,253,114,253,118,254,208,0,127,5, +60,3,178,251,85,255,228,6,116,0,15,250,33,0,170,2,160,254,27,254,110,255,149,3,157,6,141,254,74,250,230,2, +80,2,187,249,193,254,37,6,120,255,72,248,93,253,227,4,95,2,150,252,18,254,146,255,142,255,128,5,228,4,109,250, +67,251,40,3,230,0,172,253,213,255,190,1,178,3,118,1,109,252,117,254,73,0,62,252,187,253,57,4,149,4,144,253, +239,248,226,255,219,5,195,254,3,253,72,4,221,1,55,254,11,0,111,252,16,255,92,7,41,0,36,250,86,3,193,3, +178,250,88,249,255,253,1,5,4,5,235,251,31,254,218,4,143,252,35,249,209,2,252,3,24,255,0,255,3,1,128,4, +37,3,77,252,240,251,171,255,53,2,9,4,116,255,18,253,32,2,169,253,162,249,241,4,31,7,209,253,223,254,242,0, +164,255,157,2,83,0,26,255,208,4,152,255,115,249,23,1,146,3,72,0,140,0,16,252,85,253,62,6,254,0,106,249, +62,254,68,255,2,255,193,3,61,1,166,253,206,255,215,0,114,3,86,1,116,249,53,0,177,8,22,254,32,250,131,3, +118,1,136,252,238,0,42,3,143,1,191,253,117,250,125,1,100,7,118,255,76,250,51,255,5,1,57,255,221,0,22,3, +50,0,14,253,55,1,38,3,235,253,171,0,75,6,96,255,203,250,103,255,3,255,19,255,121,3,20,2,118,0,177,0, +180,252,158,253,7,2,237,255,18,0,178,1,20,252,177,250,120,0,175,3,236,4,215,255,141,247,5,254,147,7,177,255, +122,248,122,0,55,6,232,255,155,250,189,1,245,7,135,252,52,244,204,1,228,9,60,255,37,251,237,1,69,4,21,0, +208,249,132,251,56,5,252,3,243,253,49,4,61,2,140,245,172,254,120,12,213,254,14,245,12,1,156,2,169,251,99,0, +115,1,239,251,232,255,75,4,59,0,242,251,174,251,160,2,255,7,92,254,4,249,29,3,243,2,137,251,118,1,108,5, +92,1,134,1,199,253,100,249,69,0,233,3,150,0,199,255,102,252,147,253,241,4,130,255,150,251,128,7,232,5,160,248, +160,252,96,3,126,255,170,255,72,2,34,2,16,2,188,254,3,254,181,2,75,1,41,254,104,1,135,1,156,252,187,251, +33,1,58,4,52,253,177,250,104,4,132,1,204,246,194,0,165,9,87,254,153,250,73,2,79,4,134,2,129,253,124,252, +61,3,134,254,166,248,86,4,78,6,1,253,207,2,108,3,210,248,248,254,220,5,139,253,96,252,21,2,19,3,160,1, +51,252,102,253,140,6,58,1,50,249,214,1,25,5,97,254,32,254,168,254,27,1,36,5,193,251,105,246,66,4,127,8, +108,253,198,250,66,255,201,2,77,4,27,255,255,250,179,255,143,3,191,1,132,254,155,252,255,253,129,0,0,2,137,2, +198,0,147,1,175,3,50,252,107,247,184,3,202,9,132,252,200,245,23,0,78,7,208,0,254,249,131,255,35,6,63,1, +174,251,109,253,242,255,254,1,85,3,92,2,12,1,7,253,196,249,228,254,43,3,3,1,255,0,24,0,138,252,240,254, +195,2,172,2,18,3,61,2,41,0,42,255,217,253,85,0,1,2,207,252,223,0,215,9,102,255,49,245,13,0,221,5, +65,254,217,251,16,254,45,0,179,1,103,0,151,1,11,2,213,253,204,0,64,4,183,251,232,248,59,1,253,2,211,254, +66,253,74,0,146,4,191,254,166,247,62,255,55,4,186,253,206,252,89,0,95,3,129,5,104,255,0,255,79,7,0,254, +89,245,8,4,118,5,33,249,3,1,173,5,142,251,8,0,56,6,190,253,72,252,247,2,248,2,126,252,68,247,133,255, +58,10,167,0,32,247,85,1,182,7,132,255,90,247,49,250,43,6,168,5,64,250,29,0,224,4,111,247,228,251,129,10, +223,1,68,253,114,4,162,254,130,254,16,4,69,248,95,248,173,10,135,7,185,250,124,253,126,1,183,2,237,0,108,249, +181,254,159,9,104,1,117,248,67,254,32,2,89,2,87,1,124,251,137,252,69,2,108,254,231,252,47,4,122,4,183,255, +43,0,236,255,164,252,204,252,228,0,196,3,93,1,224,252,96,253,174,1,4,2,227,252,220,251,115,4,85,8,147,254, +228,249,50,2,221,3,40,252,227,252,31,5,226,4,218,251,42,251,5,6,175,5,47,248,241,250,239,7,117,0,6,246, +242,255,38,6,72,255,12,255,185,1,79,0,165,1,106,255,72,251,152,1,8,5,40,254,184,254,40,3,61,0,180,255, +18,255,224,249,195,255,146,9,157,2,99,249,13,253,80,0,64,254,79,254,67,255,83,255,119,0,16,1,182,254,118,253, +188,2,194,5,254,253,27,252,103,7,153,6,171,247,30,249,112,8,202,7,217,250,88,251,39,6,2,5,134,250,225,249, +195,1,40,5,108,1,22,251,51,252,69,5,192,3,21,249,247,251,247,5,126,4,191,254,201,253,239,255,0,2,45,254, +61,251,85,3,1,8,10,255,145,248,181,253,147,4,113,2,169,251,218,254,124,4,118,254,228,254,150,9,177,2,110,244, +210,250,35,5,177,1,28,254,0,1,31,1,4,251,58,251,193,6,80,5,193,244,232,248,2,11,37,6,79,248,226,251, +25,3,242,254,201,249,119,1,127,9,188,253,88,245,0,5,72,10,217,251,247,250,124,2,207,1,153,1,24,255,113,252, +20,2,104,1,96,252,3,1,184,2,129,1,32,3,212,250,7,251,191,13,110,9,189,243,142,249,187,7,17,1,46,249, +52,254,229,6,232,5,46,251,30,250,68,2,230,2,117,0,197,252,105,249,237,2,48,7,29,252,250,254,78,6,124,254, +187,1,238,6,94,248,201,249,54,9,166,255,152,246,37,2,184,4,211,254,77,253,245,250,127,0,64,8,222,254,209,246, +85,2,143,9,67,252,43,242,176,254,245,9,11,255,9,247,120,255,143,3,39,1,253,254,197,252,64,3,147,6,219,251, +23,254,99,7,172,252,182,249,237,4,164,254,149,253,144,11,183,1,30,246,234,5,104,6,16,244,35,250,241,9,99,5, +180,249,25,248,213,1,119,9,237,0,23,249,143,2,171,7,117,253,154,251,92,3,142,254,170,249,191,5,14,5,32,241, +71,247,133,15,73,8,108,245,213,252,38,7,1,1,223,251,153,255,254,3,45,1,53,251,28,254,194,2,167,254,0,253, +4,1,162,2,109,3,42,0,19,250,173,255,140,9,57,5,147,250,123,249,244,1,181,5,210,251,163,247,143,5,89,11, +113,253,99,245,188,254,180,7,109,0,47,246,183,255,150,11,87,1,233,248,212,1,48,4,191,253,72,253,80,255,124,1, +239,2,160,255,124,254,85,1,225,0,173,253,171,250,4,253,174,3,241,255,249,248,108,0,4,6,80,0,139,0,34,3, +38,255,60,252,85,251,27,255,253,5,157,1,65,253,96,4,142,1,37,250,86,2,75,4,50,249,234,250,206,4,136,6, +133,2,183,251,34,251,127,3,217,4,71,0,244,0,191,0,204,254,176,255,126,255,250,0,182,4,22,2,245,252,51,254, +248,2,164,3,103,254,143,252,50,0,252,253,90,252,161,2,149,0,184,251,81,4,73,5,80,249,99,251,181,3,103,0, +244,254,38,1,92,253,194,252,241,1,245,1,243,253,136,255,120,4,86,0,132,248,28,255,210,7,100,255,31,248,214,255, +162,6,161,4,228,253,35,250,136,0,141,3,170,252,10,255,190,5,202,255,16,253,15,3,218,255,33,251,225,1,198,6, +170,0,94,249,182,251,200,3,229,2,153,252,243,0,230,6,124,255,215,247,184,252,107,2,104,0,19,0,40,3,60,255, +128,250,158,255,76,1,221,251,194,0,230,7,178,0,88,249,192,252,110,1,77,1,28,253,231,254,123,8,102,4,150,247, +244,252,212,3,174,252,55,1,85,9,39,251,75,244,67,7,229,13,228,252,192,245,116,1,242,6,161,252,122,249,55,7, +161,9,34,249,240,247,168,8,163,7,48,249,59,252,249,3,246,251,54,250,101,5,36,3,69,251,50,2,52,5,11,253, +101,251,231,251,186,252,54,5,49,4,60,251,29,2,244,6,108,251,217,251,45,5,81,255,165,250,71,1,49,2,169,0, +71,4,53,2,245,250,91,251,106,2,239,3,155,254,110,254,63,3,122,0,27,250,48,252,137,3,210,5,162,254,49,249, +83,2,229,7,209,250,2,246,244,3,225,8,249,0,13,253,119,253,216,255,206,1,231,254,56,254,159,1,225,0,57,255, +172,0,218,1,227,2,148,0,122,250,184,250,65,1,36,5,165,3,242,253,141,253,188,4,254,1,115,249,140,255,50,6, +35,255,209,251,84,0,123,2,234,1,180,253,142,253,112,5,3,2,134,250,253,5,18,9,92,245,206,244,177,7,245,5, +164,249,19,253,121,5,70,4,203,252,112,250,174,0,225,2,189,254,154,255,180,1,3,255,82,253,96,255,173,4,41,4, +254,247,65,248,85,8,239,3,125,246,152,3,21,14,187,254,49,247,194,255,47,3,162,255,178,250,146,253,216,7,70,4, +227,250,27,2,140,5,1,251,16,251,152,1,55,255,156,253,162,255,107,0,10,0,20,253,137,255,114,6,145,0,65,248, +126,254,179,3,79,0,46,254,97,254,160,2,56,4,30,251,196,248,222,0,215,2,218,3,226,2,214,250,32,0,115,7, +219,249,96,248,6,9,57,5,141,251,45,0,19,0,234,255,244,0,23,249,223,0,19,14,99,253,20,244,200,6,51,6, +106,247,124,252,17,4,112,2,234,255,0,253,94,0,236,1,125,248,239,250,55,8,26,6,59,253,184,250,83,252,5,4, +37,4,211,249,202,253,161,7,150,1,216,250,243,253,127,3,85,5,10,253,229,249,160,4,239,1,127,248,110,1,216,2, +202,249,25,4,110,8,181,248,218,251,9,10,19,3,123,248,214,252,16,6,0,6,54,251,0,251,245,6,217,2,252,248, +77,1,217,6,167,253,122,248,28,254,187,7,174,5,93,248,189,252,110,8,158,253,195,249,225,7,39,1,36,247,139,5, +223,7,199,249,114,252,32,2,221,253,247,255,200,2,200,0,137,2,205,254,117,247,65,255,12,8,42,255,13,250,130,4, +82,6,89,251,1,250,199,0,233,1,121,3,2,5,213,253,157,250,52,1,11,2,35,255,179,0,239,254,108,253,131,1, +124,0,76,254,167,1,12,254,214,250,182,5,72,7,161,248,167,249,255,5,205,0,118,249,176,1,78,4,45,253,153,254, +114,1,31,254,169,0,5,3,250,252,225,253,114,3,135,255,116,255,208,5,228,255,238,248,121,0,137,4,129,254,46,254, +67,3,250,3,72,255,183,249,16,252,223,4,137,4,201,251,154,252,18,4,60,0,51,250,102,3,42,8,179,249,57,247, +41,8,92,7,14,248,133,251,233,6,15,3,165,249,239,250,183,5,120,7,215,250,184,250,179,8,80,4,182,247,187,254, +29,6,150,254,55,249,171,251,93,2,129,6,16,253,166,247,93,6,164,10,144,249,105,247,179,5,234,4,96,251,174,254, +70,5,149,1,105,251,212,252,195,2,195,2,229,251,199,252,90,7,19,6,200,248,81,249,46,4,89,3,237,253,47,255, +235,0,136,3,185,5,84,255,30,249,17,253,189,3,144,6,4,3,194,251,226,252,165,2,165,254,189,250,57,2,143,6, +214,255,67,251,166,254,68,1,106,255,251,254,129,0,54,255,120,253,61,254,83,0,157,3,131,2,148,252,254,254,80,4, +43,253,249,248,136,2,42,5,205,253,155,253,92,3,193,4,177,255,24,251,95,255,140,4,26,1,90,253,133,253,7,255, +34,2,15,0,95,252,90,2,145,4,248,252,38,253,188,0,27,255,75,1,105,1,235,254,252,3,96,0,7,247,96,2, +191,9,32,249,234,246,66,6,31,5,219,252,86,255,157,3,18,3,254,252,2,250,1,2,133,4,80,253,139,254,252,2, +178,0,69,255,175,252,11,252,161,6,215,8,226,248,189,244,188,4,194,10,127,253,6,247,178,1,82,4,145,250,24,0, +245,9,107,253,41,246,90,5,204,7,6,250,48,249,46,1,213,2,145,0,21,0,96,3,191,1,158,249,208,252,89,5, +225,255,16,253,75,5,89,2,200,250,184,255,59,3,102,0,236,0,163,255,231,252,96,0,39,3,210,255,53,252,209,253, +247,3,43,4,246,252,143,254,46,6,236,1,39,250,139,253,240,3,178,2,149,251,110,250,48,4,162,6,43,252,252,250, +129,1,126,254,172,252,171,1,181,0,54,254,134,0,11,2,35,2,153,253,86,249,58,3,221,7,56,248,151,248,1,13, +55,8,221,244,148,251,194,8,199,1,33,251,15,1,247,1,154,251,65,254,31,5,199,255,239,249,38,1,165,3,6,252, +250,253,241,5,221,3,53,254,154,254,123,1,132,0,198,253,255,0,248,1,77,249,136,252,229,10,113,3,229,244,248,255, +35,10,164,253,31,247,112,1,196,7,199,1,148,250,189,253,226,2,18,254,52,252,57,2,88,0,152,252,26,1,248,0, +68,254,238,4,149,7,122,253,187,247,195,255,172,6,135,255,155,249,85,3,71,6,115,247,191,246,21,9,208,9,113,248, +178,248,184,9,2,9,110,247,128,247,167,5,74,2,129,248,235,0,68,10,47,3,162,249,240,250,196,2,4,3,26,252, +66,0,169,7,28,254,182,246,14,0,246,2,241,251,121,253,63,5,140,7,15,255,27,244,79,250,165,8,2,5,137,251, +118,0,113,5,98,255,161,250,68,254,59,2,31,0,163,255,16,4,237,0,76,250,5,0,151,5,203,254,74,253,234,4, +31,3,240,249,207,250,195,3,241,4,207,254,31,254,6,0,15,254,102,255,90,1,238,253,37,0,245,4,119,255,74,253, +136,4,45,3,135,252,210,254,124,3,232,2,203,254,197,252,44,1,180,1,180,251,61,0,101,7,77,253,114,245,90,0, +188,6,222,254,213,251,82,2,180,4,1,254,172,249,141,0,51,7,176,1,73,250,160,253,137,4,235,1,42,250,247,252, +24,6,48,2,122,248,221,253,167,6,213,0,61,251,52,0,190,0,235,252,96,0,100,2,231,254,112,1,162,2,186,250, +46,252,88,7,112,4,56,249,226,251,92,6,58,6,248,251,173,250,138,7,161,7,233,246,166,250,39,12,176,1,247,242, +70,4,108,14,183,249,176,243,80,5,55,6,237,250,250,254,31,4,6,254,57,254,52,3,30,255,42,252,75,0,247,0, +65,255,27,255,220,253,200,254,1,2,222,3,118,3,95,251,240,245,67,4,251,11,149,248,210,243,196,10,76,12,16,246, +24,247,174,11,81,9,36,244,101,246,182,11,128,8,23,247,247,253,14,9,38,0,134,250,123,254,30,254,146,255,180,2, +226,0,54,0,180,255,241,254,143,1,7,253,235,247,154,3,239,9,7,253,56,250,157,2,212,254,108,251,154,2,9,2, +241,252,94,2,115,3,156,248,188,250,173,9,50,6,65,248,254,253,72,7,186,253,164,246,242,0,117,9,73,2,25,248, +114,253,176,6,84,253,89,246,184,4,230,7,245,249,146,252,3,5,197,253,108,251,230,3,67,5,110,0,18,253,223,253, +227,1,110,1,19,0,111,2,111,254,80,251,71,3,217,2,173,249,16,255,166,6,178,255,31,252,66,1,198,1,76,0, +48,0,33,254,58,255,81,2,153,255,246,253,87,2,3,2,240,253,202,255,41,255,149,249,241,254,246,7,220,1,172,250, +6,0,134,3,105,0,104,254,172,253,148,0,110,4,197,0,180,253,132,1,49,2,167,255,237,254,173,253,42,0,216,4, +169,0,12,251,112,255,159,3,61,255,134,251,171,255,233,2,215,252,139,250,197,3,59,4,117,251,207,0,251,6,138,251, +173,248,11,6,88,6,97,253,146,255,139,1,209,253,171,0,195,2,244,253,216,255,125,4,88,255,153,252,212,1,182,1, +160,254,173,253,126,250,135,254,238,7,242,2,56,251,31,255,196,253,126,253,231,8,232,3,116,246,51,3,110,11,179,248, +197,247,143,10,138,6,22,248,165,251,24,4,228,3,142,255,160,252,214,254,41,2,155,0,27,253,233,250,53,252,158,2, +22,5,160,253,244,249,108,2,161,6,73,253,13,249,37,2,75,4,21,252,201,253,126,5,221,1,117,253,160,3,42,4, +166,249,147,249,5,6,76,6,211,251,134,254,176,6,251,0,52,250,105,254,177,2,181,1,240,253,77,251,91,255,208,1, +16,253,38,254,78,3,99,2,254,2,174,0,57,246,46,251,40,11,146,4,144,247,7,1,77,8,61,252,110,247,28,3, +150,8,30,255,223,247,38,254,95,4,111,255,53,252,179,1,142,2,61,253,217,254,125,4,175,2,207,253,140,253,152,255, +211,1,195,1,43,254,164,255,19,5,147,1,76,252,141,255,101,0,172,254,44,2,12,1,249,252,214,0,70,2,9,255, +179,0,174,255,86,253,184,1,73,255,38,249,95,0,64,5,59,255,82,255,61,255,139,250,184,2,29,10,77,253,181,246, +2,4,183,6,173,249,197,250,148,7,9,4,236,248,58,254,14,6,124,0,178,252,56,0,17,0,99,254,77,0,106,2, +162,0,235,251,104,254,247,5,77,0,16,248,129,2,175,9,68,253,213,248,206,3,10,5,172,251,89,251,90,3,41,4, +204,254,108,254,91,255,188,255,251,4,35,2,11,247,37,253,154,8,226,0,214,251,240,1,154,254,122,251,211,255,232,254, +12,2,47,7,184,253,68,249,58,1,1,254,81,252,219,8,218,7,151,251,171,253,39,1,184,250,213,251,219,4,245,5, +6,0,173,252,128,253,158,255,181,0,190,255,70,0,169,3,85,1,4,251,122,254,89,3,43,254,136,255,107,7,47,1, +177,249,27,0,124,2,51,254,55,0,4,2,42,1,255,2,162,0,47,252,121,255,173,2,129,254,34,252,209,0,157,3, +238,253,36,251,248,3,49,7,231,251,169,247,100,1,65,5,128,254,40,251,164,255,34,2,248,253,204,253,221,3,148,1, +211,250,216,255,109,5,112,254,217,249,163,255,107,4,241,3,235,255,15,251,113,253,20,5,68,5,80,254,154,251,62,0, +203,4,234,1,204,252,148,255,154,3,217,255,166,254,228,2,86,255,177,249,20,255,232,4,202,1,209,253,10,254,191,1, +37,3,33,252,163,249,245,3,78,7,229,254,177,252,234,254,41,255,16,3,233,1,145,248,60,251,215,6,95,3,160,249, +53,255,66,7,175,255,232,247,158,255,129,6,241,255,18,251,104,0,222,3,58,255,181,251,66,1,5,6,34,255,209,251, +210,4,2,4,148,249,193,253,99,6,13,2,56,254,182,0,100,1,73,1,222,254,92,251,158,0,20,8,126,3,138,249, +182,250,99,4,65,2,251,247,249,255,89,12,46,0,69,245,204,0,32,6,118,254,165,252,4,255,221,1,219,1,215,250, +40,252,244,3,72,254,101,251,221,5,84,4,1,252,124,255,48,255,8,251,168,1,196,3,118,253,41,1,242,4,70,252, +93,250,196,3,92,3,56,252,192,255,123,3,208,253,253,254,161,5,125,0,122,250,195,255,112,4,45,3,161,253,238,247, +32,255,48,8,188,255,151,250,49,4,206,3,228,251,143,254,178,2,155,1,183,254,221,251,231,0,2,6,4,254,57,250, +107,2,215,2,21,253,145,253,166,255,100,1,231,1,14,254,96,253,138,1,84,3,155,2,115,255,11,253,130,0,79,1, +168,253,39,255,100,0,61,255,108,2,144,0,163,251,219,1,38,4,212,251,203,254,198,4,59,253,170,251,34,3,152,0, +237,252,223,0,203,0,149,255,216,1,137,255,230,254,177,3,192,255,1,250,234,1,21,6,192,252,251,251,53,4,255,2, +183,254,229,254,223,253,70,1,147,5,226,251,102,245,173,3,100,11,174,253,187,246,240,0,163,6,41,255,13,249,152,0, +113,9,214,0,84,247,131,2,155,8,11,250,48,250,72,9,39,1,224,245,199,4,80,9,105,248,139,249,71,5,117,1, +90,253,68,255,207,255,194,2,7,254,23,247,170,4,98,11,36,248,216,246,238,8,87,5,188,251,188,0,17,1,246,253, +55,1,157,1,107,255,173,253,67,253,218,2,104,2,215,249,158,254,55,7,28,0,51,251,72,0,161,0,76,255,213,0, +72,0,244,254,232,253,227,255,72,4,222,0,140,253,216,3,5,2,123,250,215,1,166,6,71,252,96,252,202,6,146,2, +153,247,65,250,30,4,134,5,137,255,202,252,220,254,186,0,51,0,225,253,206,254,191,2,228,0,124,253,2,0,133,1, +210,2,93,3,189,249,15,249,79,9,63,5,91,243,127,252,109,10,177,3,131,255,65,255,207,251,88,1,146,2,24,250, +54,255,160,7,159,1,227,252,57,254,239,255,33,2,44,253,220,251,28,8,51,5,157,244,249,251,110,10,195,0,96,247, +109,0,221,6,36,0,75,250,192,0,6,7,69,254,111,247,45,1,240,7,219,0,225,250,29,254,76,3,164,1,243,253, +209,0,113,0,200,251,114,2,146,6,47,250,126,248,248,5,180,5,195,252,84,253,67,0,11,0,197,254,152,254,218,1, +177,0,184,252,223,1,198,2,47,250,191,255,244,8,137,254,164,248,166,3,140,5,212,253,172,252,17,255,160,1,207,2, +159,255,125,254,221,0,7,1,223,255,187,253,218,252,46,1,212,2,122,0,43,2,37,0,86,250,215,255,162,5,163,254, +170,252,64,3,52,2,210,253,39,254,28,255,144,0,248,0,112,255,159,1,93,2,248,252,117,252,166,0,139,255,119,254, +174,0,248,255,5,0,65,2,119,255,44,253,126,2,103,5,100,0,184,253,222,1,208,3,220,252,74,247,132,1,139,12, +247,255,220,242,151,1,205,9,102,247,119,247,127,11,39,5,91,246,91,254,67,2,168,253,255,3,162,2,188,249,227,0, +212,4,152,251,90,254,3,5,159,0,81,0,89,2,68,254,249,253,73,255,78,255,239,3,76,2,77,250,250,253,9,5, +220,0,190,251,63,254,180,3,113,2,148,249,15,252,100,8,32,3,150,247,213,255,223,6,89,253,235,250,135,3,123,3, +135,252,158,253,74,3,63,1,169,254,73,3,112,0,237,248,66,0,252,5,123,252,67,252,168,4,244,0,32,252,193,254, +74,1,148,3,13,0,255,250,80,1,200,1,161,249,59,2,66,8,70,250,25,252,233,9,186,1,132,249,121,1,48,2, +4,254,218,254,151,253,190,255,162,3,58,255,238,253,115,1,41,254,196,253,207,2,106,0,239,254,22,4,69,1,255,250, +249,255,174,4,198,253,173,250,42,3,248,4,107,252,199,252,113,3,169,0,123,253,8,1,183,0,182,254,193,255,92,254, +144,255,182,3,194,255,136,252,160,2,235,2,110,252,186,253,221,2,208,2,125,255,244,252,107,255,5,3,242,255,174,254, +201,4,66,4,245,252,179,253,28,1,14,254,88,254,173,2,47,0,110,254,248,3,123,1,255,248,46,255,216,7,26,254, +204,246,67,2,105,8,123,254,120,248,125,254,33,5,148,2,49,251,113,252,56,3,241,0,228,252,77,1,184,1,178,252, +109,0,11,5,18,255,250,251,209,1,99,2,105,253,182,255,193,5,115,2,165,249,75,251,194,5,172,5,175,251,23,253, +7,6,156,1,71,249,185,253,248,1,48,254,209,254,51,2,88,0,184,255,123,2,113,2,23,255,15,252,177,254,87,4, +82,1,232,251,45,1,141,4,53,254,43,253,84,1,46,1,204,0,246,254,137,251,85,0,19,4,119,252,75,252,95,7, +204,5,255,249,70,250,134,2,23,3,218,254,221,254,234,1,145,1,183,252,99,251,18,2,119,4,125,252,159,252,229,6, +76,3,136,249,113,0,249,4,116,251,88,252,130,3,206,255,25,0,161,3,87,252,58,251,47,3,92,0,100,253,3,4, +235,2,44,252,232,253,23,3,44,4,119,255,17,251,130,0,216,3,249,251,95,252,29,5,192,1,124,252,119,1,57,2, +107,254,103,0,114,0,93,253,232,0,187,3,180,254,22,254,218,3,65,2,24,253,196,255,8,2,46,255,108,255,172,254, +1,252,116,1,12,4,217,251,217,252,235,4,53,0,140,251,223,1,23,3,121,254,133,254,116,0,174,1,27,0,123,251, +9,254,140,5,61,3,241,251,200,253,122,4,115,2,244,249,29,252,1,6,128,2,27,250,184,255,33,4,114,254,240,254, +90,2,244,254,103,254,192,1,203,1,90,1,7,0,122,252,95,253,6,3,78,5,24,0,61,250,114,254,91,6,236,2, +169,250,187,252,215,4,94,4,121,250,92,249,71,6,248,7,25,250,111,250,144,6,196,2,151,248,61,253,69,5,167,1, +195,251,115,255,123,3,41,254,190,252,162,3,167,1,21,251,155,255,4,4,51,255,17,253,204,1,225,4,196,255,216,249, +214,255,115,5,195,253,138,252,187,4,227,0,77,251,0,1,52,2,67,254,163,254,144,254,53,0,76,3,105,255,141,252, +84,0,80,2,210,1,158,254,250,250,112,0,206,4,40,254,133,252,230,1,228,1,225,0,198,255,32,252,175,254,121,3, +46,1,241,253,180,254,56,3,112,5,89,253,77,250,140,4,36,3,89,248,198,253,94,6,113,2,192,253,147,251,83,253, +38,4,107,2,111,252,26,0,7,3,25,1,130,0,138,252,93,252,191,3,0,2,241,252,86,1,150,1,200,253,231,255, +63,255,49,255,124,4,172,0,140,251,254,1,57,2,91,251,190,254,138,3,98,2,189,1,131,253,187,250,158,1,212,3, +28,255,172,0,125,0,56,252,120,1,43,5,114,253,98,253,187,4,17,1,33,251,123,254,167,2,95,3,224,255,248,250, +127,0,76,6,64,252,214,248,213,5,4,5,31,250,56,255,130,4,229,253,146,253,154,1,99,0,6,1,207,0,207,253, +84,1,83,3,140,252,21,252,219,2,191,1,145,253,141,0,76,2,172,254,1,0,71,3,207,253,119,251,154,3,2,3, +116,251,92,0,124,4,2,254,113,255,42,3,99,252,34,252,186,2,171,255,171,252,54,1,207,2,126,0,75,253,163,252, +104,2,133,3,126,253,200,255,130,4,64,255,53,252,188,0,182,2,95,1,136,255,1,255,131,1,74,1,72,254,135,255, +3,1,90,255,189,255,177,0,25,0,126,0,160,255,41,254,14,0,216,0,102,254,181,254,199,0,155,255,38,255,133,2, +64,2,181,252,255,252,194,2,58,1,29,252,54,255,110,4,250,1,22,253,224,254,184,3,230,0,168,251,64,255,252,1, +202,254,114,1,126,2,217,251,6,255,176,5,83,255,170,251,20,0,90,0,124,1,232,0,153,251,63,1,66,6,84,251, +67,250,122,5,36,3,31,253,103,254,71,253,104,255,132,3,1,0,31,0,150,3,216,254,210,252,168,1,45,2,73,255, +173,252,15,254,201,3,137,0,105,250,181,2,132,7,69,253,252,250,151,2,58,3,228,254,74,252,237,254,89,5,61,3, +17,251,3,253,180,4,32,3,63,251,84,252,146,5,73,3,77,249,84,254,43,6,24,0,250,253,241,1,159,254,230,253, +95,0,245,253,198,1,17,6,229,252,115,248,117,1,149,4,34,254,13,251,182,0,188,5,118,255,30,250,89,0,71,3, +124,255,40,254,135,253,218,1,166,7,66,0,58,250,198,0,94,1,0,255,25,2,101,254,214,252,170,3,206,0,234,252, +229,2,82,2,34,254,93,254,48,252,127,0,4,7,103,254,60,250,143,4,104,4,239,251,255,251,114,0,40,4,250,1, +162,251,96,254,136,3,51,1,188,255,141,254,60,254,213,2,227,255,136,251,97,2,227,1,89,253,198,3,189,255,85,249, +9,6,114,4,112,246,140,2,124,9,52,249,224,251,114,6,142,254,137,253,197,2,9,254,69,255,171,2,181,253,204,255, +203,3,158,254,92,254,26,2,83,0,237,0,1,2,187,253,112,253,22,1,12,0,153,254,161,0,43,0,142,253,66,255, +91,1,193,254,115,255,54,3,101,0,90,255,144,3,21,255,128,251,144,3,114,2,129,249,166,254,218,4,159,0,216,0, +45,2,231,252,76,253,112,2,83,0,127,252,128,255,91,3,165,0,53,253,254,255,5,2,20,0,47,0,116,255,197,254, +85,3,175,1,100,250,92,255,197,5,163,254,215,250,195,0,142,2,169,255,40,254,91,255,64,1,197,255,242,254,237,0, +98,255,173,254,36,1,237,254,51,254,0,2,109,0,100,255,253,1,178,255,85,0,227,2,152,252,6,253,13,5,206,255, +132,251,63,3,153,1,115,251,38,0,132,3,97,1,154,254,83,251,80,0,169,6,148,254,138,248,181,0,169,4,133,255, +199,252,8,255,196,2,138,2,176,255,24,255,242,252,234,253,168,5,212,2,249,249,37,1,165,6,3,252,61,251,67,5, +75,3,113,253,164,254,141,255,238,0,102,2,63,254,58,253,88,3,216,2,52,252,236,253,141,2,185,254,27,253,144,2, +104,0,92,250,60,255,96,4,47,0,169,254,38,1,111,255,250,253,159,0,99,2,42,0,70,253,185,255,252,2,235,254, +247,252,133,2,39,2,180,253,19,1,136,3,50,255,211,253,128,255,229,255,127,1,186,1,95,254,12,254,49,2,247,2, +68,254,193,251,233,254,119,2,70,3,88,1,101,254,95,0,102,3,131,253,83,249,14,1,47,5,81,0,124,255,134,0, +72,254,14,255,254,0,76,0,223,0,185,0,60,254,247,254,162,1,251,0,43,255,59,0,103,2,97,1,100,255,88,0, +170,255,174,253,238,0,170,1,94,251,89,252,12,4,17,3,40,253,140,252,159,255,16,3,93,2,26,253,1,253,106,2, +192,2,255,253,73,252,86,0,219,3,190,255,6,252,189,1,64,4,34,253,251,252,149,4,1,3,210,252,95,255,72,2, +220,253,147,253,219,3,54,3,106,253,138,254,215,0,220,253,97,254,21,2,19,1,176,255,61,0,198,254,175,254,24,0, +130,255,52,1,54,2,246,252,69,253,160,5,98,4,177,251,95,253,235,4,125,3,51,252,23,252,95,2,41,1,35,251, +148,255,158,4,45,254,11,254,117,5,255,255,33,250,243,1,203,3,192,253,58,254,215,254,148,0,29,6,224,254,197,246, +249,2,53,8,160,250,177,250,2,5,151,1,170,252,209,254,45,255,89,0,229,0,75,254,71,1,196,3,65,254,6,254, +150,2,234,255,129,254,67,2,254,0,29,255,104,1,251,255,120,253,46,255,135,255,173,0,208,4,11,1,149,250,35,0, +108,3,174,250,28,252,88,6,64,2,139,252,133,2,196,1,51,252,118,0,144,2,171,254,244,254,3,255,42,0,132,4, +111,255,132,249,218,0,119,4,86,255,63,255,37,255,200,254,85,3,132,255,158,249,10,2,234,4,254,251,94,0,48,7, +88,252,140,248,125,5,46,5,221,248,67,253,16,8,35,1,245,248,166,255,121,3,18,0,45,1,37,0,146,253,101,2, +114,1,129,250,242,254,30,3,109,254,220,0,155,3,201,253,160,254,148,1,147,252,115,253,211,2,134,1,162,0,243,255, +193,253,142,2,62,3,110,249,203,251,205,7,160,3,134,249,111,254,184,5,200,1,80,253,240,254,118,254,161,252,226,0, +23,4,64,0,61,254,109,255,156,255,230,1,163,1,208,252,15,255,6,3,248,253,200,253,44,5,212,2,194,251,78,253, +14,2,208,3,135,0,3,250,66,252,141,5,105,4,58,252,61,253,87,3,15,3,142,255,10,255,40,255,168,254,102,0, +158,1,38,0,163,0,200,0,175,253,171,255,189,3,0,255,239,251,10,2,184,2,26,253,251,253,200,1,193,0,143,254, +86,0,203,3,198,1,250,253,159,0,107,0,151,251,145,0,27,4,53,251,225,252,223,6,233,0,240,250,77,1,68,1, +71,254,170,255,211,252,198,255,1,6,28,253,19,250,5,6,43,2,53,250,10,4,50,4,176,250,245,255,8,1,213,250, +240,3,30,7,195,249,156,251,132,6,22,2,36,253,24,0,130,255,145,254,30,0,118,0,135,1,65,0,87,253,83,1, +45,4,77,253,171,250,131,1,34,4,67,1,247,255,216,253,166,253,77,4,118,4,126,249,19,250,158,6,78,4,23,250, +46,254,103,3,158,255,105,255,6,0,2,254,114,2,73,4,137,252,164,251,175,2,165,2,93,253,62,252,130,0,41,3, +233,253,97,251,117,2,37,3,112,252,148,254,197,2,177,255,55,255,89,1,198,255,246,254,93,255,230,255,235,2,239,2, +55,255,233,254,41,255,217,254,230,1,210,0,155,252,45,1,209,4,76,254,227,252,156,1,40,0,145,255,109,1,72,253, +30,254,246,4,86,0,249,250,164,1,246,1,147,253,22,4,40,4,24,250,73,253,197,3,214,254,226,255,84,4,101,253, +127,251,93,3,10,2,213,252,41,255,47,0,89,255,217,1,95,0,226,252,119,1,164,4,95,253,152,251,1,4,19,2, +77,249,16,255,89,6,155,255,232,252,166,1,146,255,253,254,133,2,111,254,136,252,238,2,24,3,134,254,112,254,5,255, +244,255,162,1,208,0,150,255,80,253,116,252,44,3,198,5,133,254,236,253,239,1,91,255,31,0,51,3,140,254,19,253, +140,1,126,0,102,254,229,255,30,0,30,1,69,2,43,0,33,255,55,255,211,254,141,0,67,0,73,254,65,1,235,1, +88,253,162,255,31,4,206,255,40,253,24,1,246,0,59,255,235,1,17,1,74,252,79,253,43,1,163,0,27,255,221,254, +74,255,220,2,64,4,31,254,170,251,74,1,69,1,81,252,226,255,106,5,44,0,219,249,162,255,236,6,189,1,54,251, +37,255,187,1,167,254,173,0,188,2,118,255,162,0,146,2,84,254,233,253,203,0,25,255,62,255,28,1,141,255,120,0, +245,0,15,253,104,255,219,3,138,255,191,253,53,1,191,254,50,254,252,2,65,0,7,253,249,1,79,1,85,253,187,2, +75,3,149,250,76,253,57,5,126,0,7,252,68,255,144,255,190,0,2,3,171,254,192,253,145,0,78,253,204,0,93,7, +126,253,54,249,204,5,20,4,171,250,253,255,218,0,63,252,254,1,191,1,22,252,252,1,5,4,135,254,173,0,132,0, +237,252,31,2,93,3,77,253,157,254,58,1,142,255,204,0,119,0,227,252,12,254,81,2,103,3,43,0,6,254,105,0, +122,255,121,253,174,2,131,1,55,250,121,0,85,5,241,252,235,254,206,4,172,253,216,253,170,3,61,253,173,252,212,4, +4,2,88,254,42,1,4,0,121,255,178,255,135,252,92,255,151,2,82,254,92,255,20,3,191,255,70,255,32,1,27,255, +15,0,251,255,124,253,102,2,149,3,114,252,20,255,182,3,80,254,194,254,60,2,12,253,14,254,75,3,58,254,96,254, +128,6,161,1,71,250,165,0,179,3,34,253,136,252,172,0,93,0,11,0,27,2,134,0,212,252,103,254,31,2,186,0, +201,254,119,0,14,0,236,254,147,1,27,1,119,253,62,0,188,3,90,255,190,252,119,1,203,2,204,253,61,253,227,2, +10,3,14,253,212,253,30,3,6,1,182,253,27,0,138,0,164,255,104,1,148,254,178,250,40,0,52,5,241,255,102,251, +187,255,111,4,189,1,43,253,245,254,21,3,252,1,37,254,179,252,95,255,234,3,18,3,248,253,226,253,112,0,235,255, +123,255,103,255,202,255,227,1,179,255,233,252,104,2,62,4,30,253,202,253,209,3,230,0,204,252,80,254,33,255,255,255, +223,1,97,0,160,254,202,0,240,1,244,253,152,251,231,0,99,4,75,255,34,253,61,1,94,1,58,255,178,255,110,255, +167,255,189,0,45,0,74,1,85,1,67,253,176,254,160,3,145,0,127,253,112,1,205,1,228,253,178,254,175,1,237,0, +254,254,229,255,55,1,88,0,130,0,230,0,149,254,16,255,96,1,93,254,156,253,182,2,211,1,107,253,165,255,171,2, +220,0,19,254,126,254,219,1,133,0,64,252,133,0,35,3,49,251,3,253,117,7,251,1,43,249,70,0,134,4,11,254, +18,255,204,3,11,254,177,250,105,3,144,5,20,253,100,253,150,2,150,255,66,255,254,1,113,253,155,253,65,3,202,255, +48,254,79,3,60,0,90,253,88,2,190,1,188,253,173,253,27,255,83,3,248,1,171,250,168,0,196,7,112,253,188,249, +126,2,160,1,178,254,80,1,176,255,213,254,21,0,111,255,38,2,27,1,45,252,165,0,94,2,165,252,119,0,80,2, +166,252,147,2,223,5,41,252,144,253,151,3,116,254,117,253,32,0,208,254,7,2,37,2,227,251,94,253,159,1,48,2, +126,1,87,251,121,252,17,8,214,2,121,247,211,255,239,4,233,255,202,2,146,254,254,247,142,5,139,9,220,248,77,250, +10,6,90,1,170,254,13,2,209,253,228,254,138,4,48,255,33,252,201,1,255,255,236,252,124,2,3,2,227,251,124,0, +134,5,179,253,187,249,232,1,6,4,116,253,15,254,14,3,109,0,35,253,30,1,94,2,121,253,155,254,52,3,145,254, +29,251,5,3,105,4,61,251,46,253,49,6,195,1,83,250,6,0,228,5,254,255,176,250,193,255,173,4,84,1,190,253, +105,254,80,255,198,0,123,0,165,252,246,254,132,4,166,255,192,251,215,2,79,3,208,252,37,255,71,1,108,253,55,0, +56,4,245,255,140,253,182,0,124,2,42,1,199,253,212,253,75,2,155,0,157,252,60,1,71,3,59,254,157,255,160,2, +46,255,99,254,112,255,165,254,194,1,196,1,191,252,201,255,226,2,15,254,68,0,231,3,78,253,37,253,161,2,72,254, +174,253,159,3,106,255,146,252,189,3,231,3,102,254,155,253,243,253,217,0,206,3,155,255,114,253,77,0,202,255,176,0, +91,2,248,253,144,253,14,2,20,0,181,253,86,255,206,255,32,2,19,2,58,253,74,0,194,3,164,252,166,253,147,5, +194,255,46,251,109,2,171,1,9,253,104,1,27,2,24,254,69,255,27,0,121,0,39,2,201,253,213,251,162,2,78,2, +77,253,129,1,143,2,192,252,156,255,82,3,95,254,8,254,60,1,155,254,0,255,71,2,170,255,244,254,225,1,236,255, +128,254,37,0,207,254,241,255,251,2,136,254,28,252,237,2,18,4,205,253,120,254,231,2,120,0,208,252,170,255,11,3, +196,0,26,254,244,254,232,255,147,0,96,0,222,253,2,255,217,2,156,0,97,254,4,1,106,255,34,254,1,3,114,1, +69,252,138,0,170,3,241,254,203,253,50,0,119,0,240,255,25,255,193,0,203,2,250,253,169,251,143,2,47,3,36,252, +98,253,125,3,243,1,71,252,65,253,30,4,50,3,48,251,2,254,192,5,120,1,75,253,104,0,16,254,146,253,50,4, +209,0,215,250,188,2,56,6,131,253,27,253,219,1,123,254,40,254,82,3,155,0,31,252,60,0,78,3,253,255,203,254, +16,1,141,1,201,255,190,253,64,254,37,2,132,3,76,255,203,252,59,0,52,2,152,254,177,253,76,2,20,2,233,252, +14,254,17,2,131,0,70,255,188,0,85,0,174,0,195,0,225,253,176,254,14,1,30,255,132,1,105,5,132,254,77,250, +114,2,198,3,42,252,172,253,41,3,242,255,155,252,25,0,57,2,167,0,125,0,185,254,79,251,199,255,143,5,84,255, +231,250,171,2,236,3,216,252,8,255,157,3,218,255,68,254,108,1,244,255,147,252,240,255,209,4,134,255,92,249,146,1, +176,6,125,252,248,252,173,7,51,1,210,249,202,2,192,3,112,252,181,255,99,1,237,253,43,2,56,3,158,252,21,254, +132,3,79,1,95,253,109,253,167,255,146,0,53,255,118,0,221,1,186,253,130,253,243,2,127,0,68,252,56,1,188,2, +198,253,142,255,222,2,147,255,37,254,97,255,86,254,64,0,46,3,29,0,14,254,184,0,193,0,102,255,61,255,225,253, +124,0,82,4,232,254,68,252,125,4,111,3,5,251,50,0,16,5,48,253,52,253,159,3,213,253,68,250,156,3,130,4, +32,251,143,253,114,6,114,1,180,248,65,254,52,6,28,3,140,254,196,253,224,253,18,2,196,3,174,252,1,252,103,4, +78,3,25,252,55,254,12,3,35,1,219,253,75,254,167,255,168,255,4,1,136,1,75,253,12,254,146,4,14,0,170,249, +50,2,122,5,159,252,44,254,212,2,50,254,127,255,74,3,105,254,233,253,108,2,189,1,26,0,11,253,111,251,90,3, +42,5,197,251,112,253,5,5,96,1,79,254,114,0,203,254,108,254,247,0,112,1,73,1,128,254,144,252,228,2,110,5, +136,253,98,251,54,1,6,2,9,254,179,252,121,0,22,4,53,0,242,251,244,255,197,2,107,255,133,254,236,255,210,255, +115,1,158,2,27,255,208,252,36,0,67,2,35,255,225,253,5,1,203,0,190,253,225,255,174,2,57,255,195,253,188,2, +117,2,148,252,254,255,139,5,127,252,96,247,50,4,136,6,169,251,244,0,104,7,67,252,12,251,105,4,25,0,251,252, +108,2,206,255,82,255,188,3,220,252,119,250,236,4,149,3,236,251,246,0,115,3,228,252,194,253,204,2,189,255,192,252, +252,1,246,3,20,254,121,254,223,2,209,254,25,254,127,3,66,255,251,252,193,3,39,0,53,252,80,3,240,255,195,250, +213,3,219,2,16,251,238,1,42,3,173,251,23,0,175,2,209,253,109,255,232,254,238,253,187,4,194,1,1,250,82,0, +130,3,116,253,86,255,100,2,29,0,97,0,243,254,110,252,20,0,6,3,20,1,162,254,120,254,34,2,73,2,202,252, +159,254,117,3,101,255,127,253,63,1,241,255,115,254,137,0,102,0,120,0,79,1,165,0,202,0,180,254,193,252,216,1, +184,2,81,251,101,253,170,5,215,1,135,251,189,0,248,3,197,252,237,251,55,4,199,2,45,252,55,0,175,2,161,254, +157,1,15,1,237,248,205,254,240,6,219,253,1,251,92,4,134,2,249,252,25,0,59,0,214,253,75,0,100,1,8,0, +26,1,108,2,37,1,187,255,197,0,115,0,100,253,33,255,66,3,5,1,140,254,159,255,36,255,82,0,66,1,192,253, +109,255,200,3,227,255,253,252,71,0,24,2,179,1,80,253,147,250,202,2,198,4,137,251,134,255,56,7,59,254,105,249, +97,1,47,3,252,254,45,253,56,255,188,3,237,1,14,253,14,255,104,0,113,0,238,2,13,254,253,250,245,2,239,1, +190,251,187,1,220,2,144,252,12,0,57,2,3,254,156,255,20,1,61,255,70,255,7,255,39,2,245,2,154,249,134,250, +53,6,254,2,112,253,50,3,31,1,140,252,244,1,174,1,177,252,188,255,159,2,184,0,20,255,47,255,38,1,136,0, +192,254,34,1,219,255,177,252,10,1,130,1,132,253,102,1,87,1,91,252,176,1,247,3,76,253,229,254,245,1,162,254, +204,254,5,255,214,254,100,2,145,255,21,253,190,3,114,1,235,250,214,1,29,3,66,250,3,255,173,6,95,255,32,251, +212,2,116,4,51,252,49,251,209,3,129,4,192,253,192,255,24,4,143,255,198,251,155,254,84,2,53,2,94,254,95,255, +108,3,227,254,245,251,202,0,81,255,152,255,135,6,73,1,7,252,8,3,198,255,0,251,234,2,49,255,21,251,30,9, +113,5,149,245,0,1,241,8,26,249,74,250,26,8,136,1,20,248,219,254,110,5,108,0,76,251,86,0,120,3,108,253, +117,254,189,3,124,254,215,252,174,2,96,0,3,255,154,2,72,254,62,253,152,3,70,0,3,252,57,1,59,2,248,254, +188,254,203,254,229,1,234,3,80,254,185,252,102,0,65,255,1,0,93,2,47,254,48,254,229,2,106,255,123,253,10,3, +58,2,196,254,31,1,241,255,229,252,94,0,217,1,2,255,120,0,3,2,87,255,188,254,75,255,125,254,205,0,148,2, +47,255,129,254,129,1,130,255,144,252,28,0,118,3,155,0,118,253,54,255,232,1,46,1,104,255,80,254,25,254,22,2, +194,4,206,254,159,252,254,2,174,1,177,252,110,255,234,254,165,254,138,6,19,2,49,247,22,1,25,9,217,251,230,247, +174,2,10,4,127,254,38,253,124,0,159,3,84,254,107,251,215,3,151,2,245,249,229,0,86,6,33,254,130,253,235,0, +250,254,80,2,48,1,93,249,248,0,84,9,6,254,36,249,202,2,47,2,199,251,21,255,45,3,244,0,6,254,70,254, +33,1,174,2,169,0,66,254,223,254,115,1,89,1,230,254,158,255,166,0,39,254,105,254,29,1,80,0,182,255,232,255, +50,254,28,0,175,2,212,254,150,253,239,1,109,1,222,254,65,0,26,0,238,254,180,0,134,1,154,0,135,0,209,255, +131,254,189,254,160,0,26,2,254,255,166,252,88,254,228,2,95,3,176,255,211,252,210,254,137,2,231,0,104,253,91,255, +130,2,104,2,211,0,175,253,21,253,203,1,221,1,242,252,139,255,171,3,15,255,76,253,109,2,147,1,225,253,146,0, +95,1,40,253,108,254,124,3,108,2,147,254,6,255,212,0,120,0,107,255,113,254,132,254,69,0,206,0,125,0,80,1, +154,255,61,254,199,2,54,2,161,250,47,254,182,5,112,255,253,251,243,2,77,1,102,253,83,1,93,255,16,253,211,2, +128,0,137,252,13,4,70,3,193,250,124,255,80,4,139,255,79,255,169,255,236,253,231,2,202,2,78,251,65,255,186,5, +206,254,137,250,145,1,102,3,62,253,144,253,36,3,59,0,163,251,57,2,47,5,107,252,184,251,220,2,252,1,232,254, +50,254,207,253,172,2,124,3,44,252,80,254,153,3,211,254,204,255,210,3,112,252,243,251,135,4,5,0,121,250,48,2, +253,4,139,254,236,252,6,0,249,0,40,255,170,254,90,1,25,2,194,255,162,254,142,255,13,2,191,1,147,253,41,255, +189,1,121,252,203,254,187,6,64,255,55,249,74,3,115,5,43,254,177,253,0,254,96,255,16,3,46,255,135,254,87,4, +26,255,219,251,252,4,86,2,149,249,210,255,7,4,145,254,203,254,111,0,236,254,233,0,111,1,196,254,76,0,1,3, +119,0,76,252,17,255,164,5,44,1,39,248,144,254,109,7,238,255,6,249,194,255,184,5,121,1,34,251,57,254,105,5, +92,1,9,252,209,2,127,3,86,250,234,252,171,3,117,255,53,253,216,0,5,1,207,0,199,1,171,1,123,1,117,253, +244,250,99,2,168,4,219,251,3,253,143,5,157,1,24,251,61,255,234,2,224,255,22,253,114,254,14,2,116,1,143,253, +64,0,197,3,109,254,203,252,172,2,49,1,205,253,41,1,32,255,161,251,38,2,232,3,178,253,148,255,21,2,140,253, +128,254,118,1,63,254,131,254,197,1,121,0,61,0,222,1,202,0,240,255,244,255,21,0,34,1,174,255,84,253,189,254, +0,1,249,1,62,0,144,252,68,0,254,5,166,255,184,250,193,1,128,3,159,254,188,254,99,255,203,0,172,3,222,254, +113,251,10,2,16,3,140,253,208,254,224,1,48,1,160,255,126,253,143,255,161,3,162,255,204,251,116,0,50,2,226,254, +114,255,205,1,233,1,152,0,219,254,104,255,50,1,51,0,88,254,254,254,56,1,55,1,137,254,152,255,152,2,18,255, +113,252,149,0,49,1,216,255,91,1,214,253,253,252,246,4,201,2,51,250,132,255,100,4,130,253,121,252,3,2,157,2, +228,0,212,254,28,254,66,1,59,1,32,254,244,254,217,255,15,0,71,2,61,0,255,252,46,0,193,1,194,254,118,255, +224,1,63,1,138,255,222,254,91,1,189,2,145,253,36,252,41,3,42,3,118,251,136,252,90,3,244,1,17,253,107,255, +203,2,175,254,84,252,231,1,16,3,249,253,213,254,69,2,185,0,233,254,210,253,88,254,111,3,18,3,124,252,6,255, +115,4,235,255,67,253,77,1,3,1,50,254,58,254,254,255,217,2,203,1,171,254,199,1,29,2,247,251,150,254,134,3, +58,254,249,253,36,4,181,0,30,253,53,1,77,1,81,255,33,255,199,252,23,0,113,5,187,254,91,250,100,2,170,2, +158,251,26,255,23,4,93,255,152,251,121,255,132,3,170,0,121,252,41,0,60,3,195,253,194,253,97,4,197,0,144,250, +244,255,106,4,5,0,117,253,75,255,195,0,236,0,207,255,199,255,37,1,13,0,63,255,242,1,188,1,143,253,227,253, +14,2,187,1,119,254,97,255,236,1,47,0,84,254,237,0,31,2,215,254,159,253,117,0,204,1,19,0,78,255,231,0, +48,1,6,255,242,254,80,1,220,0,66,254,152,254,12,1,59,1,231,254,129,254,78,1,38,1,112,253,191,254,253,2, +182,0,114,253,166,0,190,2,195,255,57,254,131,255,228,0,48,1,30,255,183,253,30,0,131,1,255,255,4,0,46,0, +195,254,2,0,113,1,156,254,162,254,142,3,66,2,23,252,193,253,222,2,146,0,174,253,148,0,40,1,75,254,30,0, +208,3,97,1,251,251,35,252,196,1,144,3,48,255,160,254,70,2,120,0,253,253,225,0,163,0,210,254,151,1,82,255, +5,251,182,1,156,5,220,253,218,252,24,2,36,0,192,254,106,0,143,254,140,0,95,4,100,255,53,252,233,1,63,3, +5,254,48,252,177,255,152,3,139,1,83,252,124,254,182,3,126,1,46,254,45,0,252,0,238,254,109,255,89,1,236,255, +104,254,58,1,100,1,204,252,208,254,246,3,55,0,119,253,194,1,96,0,164,252,81,0,63,2,179,254,13,254,231,0, +110,2,68,255,56,252,38,1,248,3,190,253,26,254,196,3,68,0,68,254,188,2,201,255,142,251,13,0,105,3,173,0, +2,253,189,253,100,3,186,2,1,252,88,254,105,2,80,254,154,255,192,3,177,254,35,253,96,2,233,0,85,254,73,1, +178,1,98,255,125,254,125,254,38,0,1,1,60,255,37,255,193,0,153,0,14,255,120,254,169,0,164,2,202,0,151,254, +60,254,96,255,44,2,173,0,117,252,75,255,187,1,224,254,12,2,134,3,29,252,202,253,49,4,224,254,189,252,177,2, +185,1,152,255,197,0,16,255,170,0,100,2,176,253,46,255,134,3,19,254,184,252,215,2,175,0,130,252,254,254,75,0, +214,0,97,2,222,255,180,253,47,0,181,1,184,255,170,253,92,255,3,3,4,2,88,254,190,254,184,0,176,0,131,0, +152,0,222,255,153,254,33,255,229,1,18,2,222,255,160,255,136,254,207,253,99,1,26,1,247,252,14,0,196,3,185,255, +216,252,224,254,235,1,6,3,233,254,231,252,104,1,150,0,229,252,185,0,28,2,216,254,111,0,116,0,122,254,135,2, +228,2,124,253,32,255,160,2,91,255,239,252,115,255,6,2,210,0,98,254,136,0,58,2,73,254,144,254,100,3,20,1, +78,252,116,254,139,2,149,1,116,253,191,254,33,4,92,1,175,252,221,0,53,1,163,252,124,0,146,2,229,253,8,0, +201,2,37,255,216,254,140,255,158,254,236,0,201,255,196,253,207,2,163,1,35,250,232,253,162,4,132,1,186,253,198,254, +150,1,46,2,252,253,153,253,40,3,53,2,235,252,183,253,69,1,38,3,244,1,85,254,209,254,31,1,138,255,38,255, +185,255,248,254,71,1,43,1,23,254,23,2,10,3,120,251,197,253,125,4,119,255,163,252,174,1,136,1,207,255,1,1, +201,255,206,254,31,255,235,254,255,0,105,1,17,255,205,0,24,1,149,252,205,254,83,4,81,0,94,251,204,255,173,3, +46,0,117,254,91,1,209,255,196,251,191,254,172,2,30,0,22,255,254,1,135,1,182,254,42,254,233,255,117,1,181,255, +0,254,64,0,207,0,57,255,53,1,223,1,198,254,134,255,173,2,248,1,107,255,5,254,209,254,246,0,155,0,158,254, +222,254,183,0,239,1,156,0,154,254,21,1,127,3,77,255,94,252,102,0,105,3,176,0,244,252,77,254,72,3,136,2, +36,253,33,254,13,2,251,255,170,253,212,255,82,0,247,253,247,254,99,2,186,0,204,253,6,2,154,3,102,252,203,252, +208,4,96,2,209,251,150,254,189,2,194,0,203,252,125,254,95,5,85,2,147,248,115,254,63,7,210,254,240,250,29,3, +158,1,11,253,147,0,54,0,231,253,134,0,222,0,151,0,113,1,26,254,162,253,124,1,169,255,172,253,9,1,22,1, +26,255,211,0,79,1,208,255,44,0,202,255,3,254,228,254,36,1,136,0,218,255,24,2,61,1,11,253,189,254,190,2, +163,0,205,254,175,0,2,1,102,0,163,254,179,252,117,0,221,2,98,254,245,254,43,3,239,255,175,253,15,1,242,0, +85,255,29,0,42,0,2,1,136,1,72,255,85,255,252,0,213,255,74,255,180,255,241,254,207,255,139,0,135,254,126,254, +190,1,18,3,37,0,45,253,80,255,151,2,166,0,221,253,237,254,223,0,135,1,252,255,70,254,105,0,188,1,231,254, +46,254,151,255,24,0,196,1,97,1,163,254,179,255,170,0,160,254,100,255,170,0,249,255,80,0,15,255,200,254,213,2, +21,2,48,254,76,0,240,0,156,254,50,1,158,1,219,253,132,255,74,2,9,0,198,253,238,254,222,2,5,3,238,252, +126,253,251,3,119,1,83,253,25,0,153,255,22,254,202,1,243,1,133,254,125,254,59,0,168,1,90,0,21,254,147,0, +123,0,218,252,19,2,220,4,123,251,212,251,69,5,60,1,217,250,59,0,118,3,187,255,13,254,213,255,66,1,28,255, +213,253,110,1,185,0,147,252,125,0,136,3,81,254,161,254,182,3,200,0,175,252,58,0,49,3,37,255,240,251,71,0, +18,3,161,254,134,254,225,2,6,0,50,253,86,1,246,1,10,255,90,255,180,255,135,0,253,1,47,255,165,253,10,1, +142,1,87,255,20,255,193,255,65,1,152,0,98,253,241,255,199,3,11,255,118,252,9,2,32,2,210,252,145,254,114,3, +105,1,170,252,104,254,7,3,188,0,148,252,76,0,200,3,144,255,149,253,59,1,84,1,36,254,202,254,221,1,153,1, +105,254,84,254,2,2,14,2,27,254,173,254,70,2,142,0,236,253,207,0,204,1,234,253,58,254,166,1,123,0,174,254, +131,255,71,255,226,255,95,1,127,255,168,254,201,0,45,0,158,255,70,1,31,0,6,0,143,2,7,0,109,253,101,0, +59,0,155,254,83,1,183,255,86,252,72,1,95,3,84,253,18,254,148,3,188,0,97,252,199,255,24,4,247,1,209,252, +62,253,219,2,56,2,210,251,199,253,223,4,27,2,252,251,148,255,217,3,174,255,167,252,83,255,151,0,226,255,212,255, +183,255,125,1,15,3,96,255,253,252,165,0,165,1,71,255,244,255,211,255,153,254,85,1,3,2,60,255,6,1,253,1, +102,253,28,254,250,2,164,0,128,252,136,254,253,1,67,2,5,255,164,252,183,0,228,3,14,255,93,252,68,0,191,1, +127,0,98,0,168,255,186,255,130,0,200,254,234,254,180,2,84,2,82,253,106,252,78,1,145,3,252,254,249,252,4,2, +35,2,141,252,135,254,173,3,165,1,204,254,222,254,176,254,160,0,149,2,140,0,198,254,6,255,202,255,216,0,98,255, +139,254,213,1,200,0,237,252,6,1,239,3,80,254,75,253,180,1,190,0,177,253,66,254,181,0,4,2,181,255,138,254, +5,2,142,1,72,253,9,255,27,2,247,255,224,254,228,0,143,1,216,255,236,253,43,255,82,1,0,0,151,255,194,0, +55,254,172,253,216,1,62,1,168,253,32,255,131,1,144,0,91,254,220,253,230,0,6,2,137,254,176,254,147,1,108,0, +169,0,72,2,113,254,167,252,200,1,204,3,9,0,143,253,176,255,179,2,7,0,107,252,175,0,144,3,138,254,234,253, +34,2,238,0,179,254,85,255,142,254,227,254,245,0,165,0,192,0,231,1,71,0,71,255,226,0,149,0,95,255,42,0, +85,0,67,255,81,255,170,255,202,255,60,1,192,1,5,255,231,253,210,0,38,1,242,253,84,254,35,1,20,1,167,0, +106,1,153,0,131,255,149,255,16,255,41,255,252,0,50,1,16,255,66,254,176,255,59,1,154,1,232,255,17,254,41,0, +112,2,80,255,249,253,215,1,88,0,67,252,186,0,220,3,107,254,156,253,211,1,106,0,82,254,50,0,213,0,12,0, +38,255,143,254,139,0,120,1,202,255,130,0,145,0,106,254,211,0,58,2,61,253,46,254,149,4,114,1,90,251,106,255, +56,4,116,0,182,252,89,255,61,2,127,0,250,253,181,254,168,0,255,0,93,0,32,0,151,255,124,254,153,255,177,2, +96,2,112,255,20,255,186,255,42,0,232,0,224,253,20,252,207,2,18,5,164,252,62,251,73,2,142,2,66,255,167,255, +48,0,193,0,42,0,253,252,116,254,198,2,56,1,47,255,58,0,91,254,249,253,132,2,154,2,21,254,36,254,137,1, +187,1,187,254,205,253,41,1,130,2,209,254,228,253,152,1,32,2,209,254,211,253,148,0,170,2,107,0,20,254,63,0, +82,1,214,254,14,255,72,0,204,254,216,255,255,1,174,255,142,254,4,1,218,0,63,255,126,255,100,0,202,1,136,0, +114,253,224,0,236,3,226,252,250,250,156,3,86,3,213,252,255,255,212,2,114,254,227,254,203,1,96,254,94,252,187,0, +129,3,63,0,127,252,44,255,218,3,245,0,147,252,119,0,218,3,190,255,230,253,224,0,86,0,85,254,101,0,169,0, +111,253,133,255,175,3,200,255,117,252,204,1,163,2,62,252,137,253,210,3,102,2,29,254,229,254,252,0,30,0,171,254, +114,0,2,2,50,255,201,254,246,1,108,255,245,252,246,1,247,1,65,252,243,254,173,3,92,0,103,253,30,255,16,1, +40,1,171,254,132,254,29,2,136,0,128,253,154,1,106,2,201,253,66,0,218,2,213,253,118,254,210,3,67,0,227,251, +97,0,61,3,101,255,92,253,160,255,137,1,235,0,6,255,52,255,27,2,210,1,61,253,166,253,244,2,140,1,226,252, +244,255,246,2,235,254,226,253,237,0,241,255,63,255,6,2,32,1,170,253,242,254,114,2,89,1,93,253,47,254,131,2, +158,0,236,251,127,255,212,3,28,255,125,252,190,1,115,2,122,253,196,253,41,1,92,0,140,255,14,2,169,1,238,253, +25,255,82,3,2,1,216,252,59,0,226,2,180,253,179,252,65,3,60,3,77,253,170,254,45,3,252,0,244,253,168,255, +246,0,69,0,175,0,253,0,172,255,33,255,19,0,0,0,45,255,15,0,162,0,203,254,133,254,133,0,94,0,235,255, +132,1,244,0,16,255,203,255,83,0,168,255,177,255,247,254,128,255,223,1,41,0,247,253,63,1,193,1,173,253,67,254, +165,0,19,0,159,0,32,0,97,254,172,1,115,3,101,254,194,253,42,2,218,0,223,253,174,255,176,0,17,255,66,255, +53,1,214,1,247,255,93,254,159,255,103,0,71,255,16,0,244,0,106,255,146,0,250,2,9,255,57,251,17,0,121,3, +215,254,14,254,255,2,86,1,180,252,27,0,196,3,177,255,237,252,9,0,207,1,235,255,148,254,196,255,208,0,118,255, +173,255,94,2,138,0,195,252,79,255,187,1,72,255,80,0,46,2,236,253,205,252,236,1,160,2,143,255,30,255,102,255, +72,0,235,1,57,0,152,253,229,254,52,1,244,0,89,255,111,255,127,1,177,0,138,253,4,255,174,1,125,255,235,254, +101,1,44,0,62,255,117,1,18,0,248,253,96,0,231,0,236,254,2,0,158,0,12,255,230,255,57,1,113,0,43,0, +6,0,169,255,173,0,37,0,43,254,30,0,139,2,129,255,156,253,89,1,131,2,82,255,254,254,239,255,219,254,137,0, +112,2,169,254,107,253,64,2,184,1,101,253,246,255,205,2,95,255,136,254,195,1,216,0,12,253,129,253,215,1,166,2, +136,254,182,254,10,3,220,255,96,250,188,254,49,3,180,255,33,255,76,2,109,0,2,254,29,0,57,1,34,255,70,254, +175,0,197,1,68,254,142,253,127,2,24,2,26,253,119,255,24,3,110,255,28,254,167,1,39,1,4,255,228,255,100,0, +112,0,162,0,56,255,22,255,137,0,153,255,87,255,207,1,30,1,20,254,66,255,1,2,184,0,52,254,254,254,28,1, +168,0,119,255,200,0,74,1,195,254,132,254,53,1,228,0,186,254,112,255,171,0,222,255,83,255,24,0,240,0,196,0, +172,255,134,255,68,0,195,255,80,255,64,0,27,0,56,255,217,255,65,0,241,255,110,0,17,0,161,255,150,1,139,1, +36,254,150,254,177,1,111,0,231,254,16,1,44,1,235,254,250,254,186,255,231,255,110,0,144,255,95,255,231,1,237,1, +181,255,23,0,87,255,151,253,188,0,28,2,31,254,144,255,62,3,173,254,3,252,78,1,63,2,188,254,77,255,51,0, +86,255,81,0,17,1,99,0,109,255,84,254,125,0,52,3,76,255,103,252,17,1,58,2,99,254,216,255,65,2,131,255, +29,254,207,255,215,0,96,1,188,0,136,255,12,0,235,255,58,255,161,0,126,0,98,254,26,255,88,0,25,0,11,1, +76,0,9,254,59,0,60,2,51,255,217,254,142,1,33,0,177,254,126,0,185,255,78,254,156,0,61,1,225,254,85,255, +242,0,190,255,39,255,228,0,252,0,250,254,102,254,241,255,125,1,111,1,243,255,77,255,65,0,239,255,225,254,9,1, +174,2,222,254,245,252,103,1,42,2,121,253,91,254,235,2,53,1,194,253,92,255,179,0,75,255,232,255,142,1,100,0, +104,254,129,254,249,255,190,0,217,255,120,255,13,1,234,0,163,254,97,255,21,1,202,254,67,254,122,2,143,2,90,254, +216,254,81,1,221,255,245,254,85,0,3,0,48,255,127,255,188,255,41,1,115,2,20,0,242,253,3,0,144,1,220,255, +160,254,79,255,75,0,215,0,139,0,138,255,8,255,172,255,136,0,89,0,216,255,49,0,45,0,165,255,118,0,237,0, +52,255,202,254,222,0,136,1,95,0,210,255,12,0,220,0,33,1,102,255,187,254,206,0,202,0,109,254,104,255,170,1, +209,255,14,254,110,0,27,1,141,253,76,252,253,254,124,0,109,0,51,1,27,1,182,255,214,255,252,0,234,0,71,0, +236,255,184,255,242,255,251,255,128,255,179,255,98,0,172,0,230,0,80,0,234,254,72,255,201,0,122,0,32,0,76,1, +189,0,237,254,20,0,13,2,165,0,181,254,150,255,204,0,19,0,254,254,126,255,66,1,143,1,54,255,27,254,42,0, +195,0,242,254,148,255,164,1,184,0,39,255,162,255,254,255,240,255,56,0,120,255,202,254,187,255,58,0,201,255,227,255, +255,255,41,0,127,0,164,255,67,255,183,0,158,0,253,254,86,255,52,0,21,0,117,0,241,255,221,254,245,255,32,0, +111,254,30,0,43,2,129,255,146,254,114,1,197,0,165,254,110,0,47,1,11,255,20,255,153,0,204,0,128,0,164,255, +37,255,99,0,148,0,129,255,116,0,48,1,125,255,63,255,201,0,156,0,209,255,250,255,207,255,152,255,2,0,102,0, +111,0,166,255,36,255,154,0,31,1,220,254,129,254,195,0,163,0,30,255,208,255,139,0,191,255,167,255,130,0,127,0, +90,255,250,254,137,0,38,1,60,255,250,254,11,1,152,0,180,254,125,255,180,0,22,0,219,255,108,0,50,0,56,255, +183,254,196,255,232,0,18,0,168,255,59,1,24,1,242,254,226,254,119,0,221,0,87,0,223,255,239,255,80,0,252,255, +187,255,31,0,146,255,0,255,2,0,173,0,204,0,42,1,160,255,58,254,126,0,155,1,98,255,211,255,140,1,139,255, +143,254,251,0,25,1,95,255,213,255,105,0,147,255,18,255,53,255,25,0,242,0,244,255,21,255,6,0,13,0,46,255, +199,255,91,0,23,0,34,0,115,255,7,255,220,0,77,1,255,254,18,255,1,1,22,0,153,254,165,255,206,0,163,0, +202,255,10,255,70,0,232,1,252,255,155,253,162,255,61,2,231,0,212,254,135,255,45,1,7,1,188,255,123,255,249,255, +1,0,86,0,203,0,59,0,229,255,12,0,96,255,158,255,228,0,224,255,147,254,112,0,156,1,221,255,41,255,40,0, +137,0,110,0,66,0,57,0,73,0,90,255,246,254,105,0,101,0,16,255,252,255,131,0,240,254,208,255,190,1,53,0, +235,254,93,0,72,0,199,254,113,255,0,1,190,0,66,255,236,254,76,0,185,0,155,255,232,255,208,0,178,255,19,255, +145,0,28,1,79,0,54,0,35,0,111,255,106,255,41,0,42,0,85,255,186,255,39,1,96,0,136,254,183,255,67,1, +178,255,63,255,70,1,158,0,91,254,124,255,79,1,50,0,126,255,198,0,70,0,137,254,208,255,178,1,224,255,84,254, +100,0,78,1,196,255,207,255,100,0,154,255,157,255,236,255,112,255,62,0,26,1,1,0,136,255,247,255,121,255,177,255, +71,0,128,255,201,255,244,0,18,0,130,255,73,0,90,255,231,254,219,0,240,0,103,255,207,255,8,0,96,255,116,0, +5,1,116,255,16,255,182,255,106,255,251,255,20,1,20,0,230,254,211,255,181,0,86,0,13,0,31,0,28,0,251,255, +157,255,161,255,105,0,172,0,246,255,184,255,61,0,113,0,44,0,251,255,243,255,178,255,90,255,236,255,235,0,58,0, +230,254,183,255,245,0,61,0,98,255,123,255,200,255,130,0,88,0,249,254,204,255,119,1,182,255,128,254,237,0,28,1, +174,254,148,255,110,1,13,0,22,255,37,0,31,0,111,255,235,255,134,0,35,0,54,255,20,255,36,0,119,0,127,255, +133,255,108,0,18,0,124,255,44,0,106,0,140,255,182,255,160,0,11,0,109,255,186,0,22,1,71,255,35,255,223,0, +211,0,138,255,115,255,40,0,164,0,29,0,44,255,0,0,4,1,166,255,37,255,218,0,145,0,39,255,21,0,178,0, +172,255,254,255,178,0,217,255,159,255,149,0,137,0,107,255,15,255,244,255,100,0,184,255,44,0,90,1,59,0,201,254, +206,255,99,0,182,255,125,0,227,0,77,255,39,255,141,0,62,0,102,255,31,0,181,0,241,255,83,255,242,255,183,0, +57,0,119,255,12,0,182,0,6,0,120,255,18,0,85,0,207,255,233,255,122,0,24,0,138,255,26,0,92,0,150,255, +182,255,145,0,54,0,111,255,144,255,253,255,81,0,100,0,13,0,242,255,211,255,117,255,53,0,3,1,226,255,68,255, +126,0,130,0,139,255,0,0,87,0,183,255,199,255,46,0,76,0,84,0,135,255,27,255,128,0,252,0,124,255,57,255, +89,0,119,0,231,255,168,255,202,255,63,0,13,0,111,255,239,255,110,0,205,255,235,255,166,0,20,0,110,255,229,255, +40,0,15,0,6,0,195,255,28,0,188,0,224,255,18,255,27,0,150,0,205,255,2,0,66,0,91,255,141,255,154,0, +66,0,218,255,58,0,183,255,112,255,141,0,166,0,147,255,153,255,14,0,1,0,54,0,41,0,213,255,61,0,54,0, +110,255,202,255,106,0,223,255,230,255,140,0,246,255,78,255,219,255,77,0,38,0,217,255,170,255,67,0,215,0,232,255, +11,255,235,255,171,0,12,0,172,255,33,0,40,0,197,255,32,0,134,0,175,255,48,255,61,0,117,0,109,255,205,255, +151,0,176,255,119,255,189,0,128,0,90,255,219,255,110,0,188,255,170,255,71,0,251,255,167,255,78,0,143,0,228,255, +191,255,48,0,250,255,121,255,174,255,46,0,68,0,5,0,221,255,16,0,18,0,163,255,232,255,146,0,225,255,27,255, +16,0,177,0,226,255,211,255,123,0,35,0,170,255,5,0,58,0,234,255,174,255,239,255,121,0,111,0,205,255,191,255, +37,0,251,255,185,255,4,0,48,0,224,255,193,255,10,0,28,0,213,255,219,255,39,0,23,0,239,255,26,0,30,0, +221,255,217,255,4,0,30,0,32,0,226,255,173,255,20,0,159,0,79,0,145,255,180,255,112,0,78,0,164,255,198,255, +48,0,10,0,211,255,190,255,209,255,64,0,50,0,160,255,21,0,191,0,245,255,88,255,22,0,101,0,234,255,233,255, +42,0,12,0,193,255,179,255,49,0,137,0,13,0,179,255,248,255,1,0,235,255,27,0,14,0,250,255,63,0,52,0, +199,255,192,255,34,0,65,0,241,255,222,255,56,0,13,0,151,255,8,0,115,0,229,255,220,255,116,0,22,0,145,255, +3,0,64,0,219,255,197,255,21,0,74,0,17,0,179,255,234,255,59,0,239,255,236,255,80,0,15,0,191,255,6,0, +1,0,205,255,251,255,234,255,198,255,23,0,14,0,189,255,4,0,41,0,187,255,199,255,61,0,46,0,211,255,204,255, +21,0,66,0,14,0,233,255,5,0,223,255,203,255,67,0,86,0,206,255,204,255,32,0,6,0,242,255,2,0,238,255, +255,255,3,0,216,255,24,0,67,0,204,255,207,255,80,0,21,0,215,255,54,0,22,0,186,255,10,0,42,0,229,255, +13,0,35,0,221,255,236,255,9,0,214,255,212,255,232,255,209,255,231,255,245,255,213,255,3,0,49,0,234,255,206,255, +14,0,249,255,187,255,244,255,52,0,232,255,168,255,245,255,43,0,239,255,225,255,20,0,8,0,225,255,217,255,227,255, +20,0,49,0,1,0,2,0,58,0,26,0,237,255,14,0,13,0,237,255,4,0,12,0,243,255,2,0,29,0,27,0, +255,255,216,255,222,255,2,0,10,0,24,0,43,0,7,0,255,255,52,0,25,0,186,255,206,255,59,0,76,0,251,255, +226,255,15,0,15,0,242,255,6,0,16,0,248,255,247,255,248,255,245,255,24,0,22,0,223,255,229,255,24,0,29,0, +7,0,230,255,215,255,249,255,248,255,208,255,242,255,34,0,11,0,17,0,56,0,13,0,207,255,237,255,39,0,30,0, +250,255,8,0,35,0,4,0,228,255,255,255,33,0,36,0,11,0,248,255,29,0,51,0,4,0,14,0,57,0,239,255, +196,255,41,0,59,0,232,255,247,255,27,0,248,255,3,0,42,0,19,0,245,255,246,255,245,255,237,255,249,255,43,0, +49,0,216,255,201,255,46,0,35,0,187,255,230,255,59,0,247,255,188,255,15,0,52,0,232,255,240,255,75,0,51,0, +225,255,240,255,0,0,227,255,12,0,41,0,233,255,231,255,18,0,225,255,212,255,32,0,20,0,220,255,7,0,33,0, +223,255,207,255,20,0,48,0,253,255,235,255,29,0,35,0,248,255,7,0,31,0,245,255,238,255,25,0,12,0,239,255, +8,0,21,0,251,255,246,255,12,0,3,0,216,255,232,255,47,0,31,0,218,255,244,255,11,0,211,255,242,255,66,0, +4,0,197,255,11,0,10,0,180,255,235,255,72,0,3,0,191,255,2,0,23,0,204,255,203,255,12,0,15,0,238,255, +250,255,30,0,28,0,230,255,206,255,25,0,74,0,247,255,192,255,17,0,54,0,238,255,223,255,7,0,242,255,229,255, +19,0,17,0,240,255,13,0,22,0,232,255,244,255,15,0,225,255,224,255,23,0,250,255,214,255,15,0,28,0,238,255, +1,0,26,0,246,255,233,255,248,255,246,255,250,255,241,255,218,255,242,255,12,0,245,255,237,255,1,0,1,0,251,255, +248,255,248,255,9,0,5,0,230,255,251,255,36,0,15,0,248,255,11,0,4,0,228,255,244,255,28,0,20,0,231,255, +221,255,8,0,34,0,6,0,233,255,232,255,241,255,9,0,28,0,253,255,228,255,8,0,26,0,249,255,247,255,4,0, +229,255,220,255,13,0,30,0,5,0,10,0,29,0,18,0,245,255,227,255,246,255,28,0,27,0,11,0,26,0,11,0, +224,255,255,255,55,0,19,0,223,255,244,255,5,0,235,255,226,255,252,255,19,0,7,0,237,255,0,0,22,0,248,255, +253,255,47,0,10,0,216,255,33,0,67,0,238,255,235,255,40,0,1,0,242,255,49,0,6,0,198,255,20,0,60,0, +233,255,228,255,32,0,2,0,227,255,28,0,56,0,254,255,213,255,3,0,59,0,26,0,221,255,248,255,40,0,255,255, +222,255,25,0,42,0,221,255,216,255,41,0,13,0,182,255,239,255,53,0,233,255,211,255,42,0,7,0,191,255,26,0, +79,0,227,255,203,255,42,0,29,0,208,255,238,255,45,0,11,0,213,255,242,255,25,0,250,255,227,255,10,0,21,0, +245,255,252,255,6,0,217,255,212,255,20,0,24,0,212,255,219,255,28,0,4,0,210,255,12,0,54,0,226,255,196,255, +29,0,34,0,207,255,228,255,36,0,250,255,214,255,13,0,22,0,226,255,250,255,43,0,4,0,220,255,254,255,15,0, +245,255,240,255,243,255,241,255,252,255,251,255,243,255,255,255,245,255,224,255,7,0,32,0,227,255,209,255,20,0,43,0, +12,0,4,0,239,255,210,255,239,255,26,0,16,0,255,255,250,255,222,255,209,255,246,255,14,0,250,255,242,255,9,0, +14,0,251,255,254,255,15,0,0,0,244,255,15,0,18,0,234,255,233,255,11,0,5,0,235,255,237,255,253,255,5,0, +255,255,242,255,253,255,17,0,8,0,7,0,34,0,29,0,250,255,251,255,14,0,254,255,245,255,17,0,14,0,230,255, +245,255,25,0,247,255,226,255,14,0,5,0,226,255,15,0,34,0,239,255,251,255,35,0,2,0,239,255,11,0,10,0, +254,255,252,255,249,255,1,0,0,0,2,0,32,0,12,0,210,255,249,255,45,0,253,255,241,255,43,0,27,0,230,255, +249,255,24,0,13,0,9,0,39,0,47,0,9,0,1,0,26,0,1,0,250,255,61,0,45,0,215,255,243,255,37,0, +246,255,248,255,52,0,32,0,242,255,248,255,253,255,244,255,242,255,249,255,21,0,41,0,25,0,246,255,228,255,3,0, +31,0,251,255,250,255,53,0,15,0,195,255,244,255,42,0,6,0,249,255,7,0,253,255,3,0,2,0,239,255,254,255, +255,255,228,255,246,255,22,0,6,0,234,255,228,255,7,0,39,0,255,255,229,255,20,0,21,0,243,255,19,0,22,0, +224,255,241,255,33,0,16,0,245,255,249,255,253,255,252,255,252,255,13,0,24,0,244,255,226,255,10,0,23,0,4,0, +7,0,3,0,245,255,2,0,3,0,241,255,250,255,14,0,10,0,244,255,237,255,11,0,19,0,238,255,250,255,26,0, +229,255,198,255,16,0,46,0,251,255,240,255,5,0,10,0,14,0,249,255,223,255,248,255,13,0,245,255,247,255,10,0, +242,255,238,255,13,0,250,255,219,255,246,255,252,255,221,255,3,0,47,0,248,255,210,255,3,0,16,0,231,255,224,255, +247,255,1,0,249,255,241,255,10,0,24,0,242,255,238,255,25,0,10,0,235,255,6,0,12,0,233,255,238,255,2,0, +253,255,249,255,255,255,1,0,236,255,203,255,222,255,11,0,242,255,208,255,253,255,23,0,238,255,232,255,11,0,17,0, +10,0,16,0,7,0,245,255,243,255,237,255,216,255,224,255,3,0,253,255,223,255,241,255,14,0,251,255,230,255,245,255, +254,255,240,255,228,255,244,255,19,0,12,0,237,255,0,0,44,0,32,0,255,255,16,0,49,0,31,0,247,255,253,255, +18,0,255,255,253,255,39,0,37,0,254,255,2,0,18,0,251,255,242,255,13,0,19,0,236,255,209,255,240,255,7,0, +229,255,238,255,47,0,30,0,229,255,15,0,50,0,240,255,225,255,38,0,29,0,234,255,11,0,48,0,9,0,251,255, +27,0,15,0,245,255,255,255,245,255,216,255,232,255,254,255,246,255,249,255,254,255,255,255,24,0,28,0,250,255,247,255, +7,0,252,255,3,0,28,0,12,0,247,255,5,0,6,0,242,255,250,255,18,0,17,0,252,255,252,255,2,0,239,255, +236,255,17,0,27,0,255,255,249,255,6,0,5,0,255,255,6,0,16,0,254,255,231,255,254,255,22,0,249,255,244,255, +18,0,254,255,237,255,24,0,25,0,242,255,254,255,14,0,243,255,231,255,250,255,13,0,9,0,236,255,238,255,12,0, +1,0,247,255,27,0,30,0,1,0,1,0,251,255,247,255,19,0,15,0,242,255,11,0,27,0,245,255,238,255,10,0, +3,0,239,255,251,255,16,0,5,0,229,255,236,255,19,0,21,0,249,255,247,255,0,0,250,255,244,255,252,255,10,0, +7,0,246,255,252,255,13,0,252,255,238,255,3,0,9,0,248,255,248,255,7,0,13,0,3,0,251,255,12,0,28,0, +8,0,244,255,254,255,10,0,7,0,2,0,6,0,7,0,244,255,234,255,7,0,15,0,233,255,232,255,12,0,255,255, +222,255,235,255,0,0,0,0,3,0,0,0,247,255,252,255,0,0,243,255,233,255,238,255,238,255,236,255,255,255,17,0, +250,255,226,255,252,255,14,0,241,255,236,255,19,0,21,0,247,255,3,0,24,0,251,255,223,255,249,255,13,0,241,255, +226,255,245,255,246,255,232,255,249,255,17,0,11,0,254,255,1,0,5,0,251,255,242,255,2,0,22,0,16,0,9,0, +14,0,0,0,244,255,9,0,17,0,249,255,248,255,7,0,251,255,246,255,2,0,252,255,250,255,3,0,246,255,242,255, +17,0,13,0,238,255,250,255,13,0,244,255,236,255,9,0,17,0,8,0,9,0,7,0,5,0,9,0,253,255,241,255, +6,0,21,0,253,255,240,255,9,0,21,0,4,0,3,0,15,0,13,0,5,0,255,255,247,255,0,0,15,0,2,0, +251,255,15,0,14,0,245,255,251,255,9,0,254,255,250,255,10,0,20,0,19,0,8,0,243,255,244,255,15,0,28,0, +15,0,3,0,6,0,7,0,254,255,252,255,6,0,5,0,254,255,4,0,11,0,4,0,251,255,240,255,239,255,2,0, +6,0,241,255,238,255,255,255,6,0,9,0,10,0,1,0,7,0,22,0,11,0,251,255,2,0,6,0,1,0,2,0, +3,0,4,0,8,0,1,0,252,255,5,0,0,0,245,255,2,0,9,0,246,255,244,255,8,0,12,0,1,0,254,255, +5,0,12,0,5,0,251,255,252,255,250,255,250,255,10,0,15,0,253,255,251,255,5,0,250,255,245,255,6,0,9,0, +252,255,244,255,240,255,253,255,15,0,2,0,241,255,251,255,254,255,245,255,253,255,250,255,233,255,244,255,7,0,1,0, +249,255,251,255,248,255,248,255,253,255,249,255,247,255,250,255,250,255,253,255,1,0,3,0,13,0,11,0,248,255,247,255, +7,0,5,0,255,255,3,0,252,255,241,255,252,255,12,0,14,0,8,0,0,0,0,0,3,0,252,255,250,255,10,0, +13,0,255,255,0,0,6,0,250,255,242,255,1,0,9,0,250,255,238,255,246,255,252,255,243,255,250,255,14,0,6,0, +239,255,251,255,14,0,255,255,236,255,247,255,13,0,16,0,0,0,249,255,5,0,4,0,236,255,241,255,15,0,13,0, +246,255,251,255,2,0,241,255,234,255,255,255,13,0,6,0,252,255,246,255,242,255,249,255,6,0,5,0,253,255,0,0, +1,0,242,255,238,255,5,0,21,0,7,0,251,255,253,255,245,255,234,255,252,255,18,0,5,0,244,255,1,0,4,0, +243,255,3,0,24,0,253,255,236,255,14,0,18,0,232,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/creeper3.pcm b/src/client/sound/data/creeper3.pcm new file mode 100755 index 0000000..ce4c30d --- /dev/null +++ b/src/client/sound/data/creeper3.pcm @@ -0,0 +1,1274 @@ +unsigned char PCM_creeper3[40692] = { +1,0,0,0,2,0,0,0,68,172,0,0,114,79,0,0,1,0,252,255,254,255,253,255,254,255,2,0,2,0,255,255, +253,255,251,255,252,255,251,255,246,255,247,255,0,0,1,0,252,255,254,255,1,0,253,255,251,255,0,0,0,0,251,255, +249,255,252,255,254,255,0,0,255,255,253,255,0,0,1,0,253,255,255,255,2,0,252,255,245,255,248,255,254,255,254,255, +253,255,254,255,254,255,2,0,2,0,252,255,249,255,252,255,254,255,254,255,0,0,0,0,254,255,255,255,3,0,3,0, +4,0,3,0,255,255,253,255,255,255,1,0,2,0,5,0,5,0,1,0,2,0,4,0,2,0,255,255,255,255,255,255, +255,255,4,0,5,0,2,0,2,0,4,0,6,0,8,0,8,0,2,0,255,255,4,0,6,0,3,0,2,0,3,0, +4,0,7,0,8,0,5,0,3,0,3,0,0,0,0,0,3,0,2,0,255,255,3,0,7,0,5,0,4,0,5,0, +3,0,2,0,2,0,0,0,255,255,0,0,1,0,3,0,4,0,3,0,3,0,7,0,7,0,0,0,252,255,0,0, +0,0,0,0,2,0,3,0,1,0,1,0,2,0,4,0,5,0,3,0,0,0,0,0,2,0,2,0,2,0,3,0, +0,0,255,255,3,0,4,0,3,0,3,0,2,0,254,255,254,255,2,0,3,0,2,0,0,0,254,255,1,0,5,0, +5,0,4,0,5,0,4,0,2,0,2,0,1,0,0,0,3,0,5,0,3,0,4,0,8,0,8,0,5,0,2,0, +0,0,0,0,1,0,0,0,1,0,5,0,6,0,4,0,4,0,4,0,0,0,254,255,255,255,253,255,251,255,252,255, +253,255,0,0,4,0,5,0,3,0,2,0,1,0,1,0,2,0,1,0,252,255,253,255,1,0,2,0,3,0,4,0, +4,0,5,0,6,0,4,0,3,0,5,0,1,0,249,255,248,255,252,255,255,255,3,0,7,0,6,0,5,0,3,0, +0,0,254,255,254,255,251,255,248,255,250,255,253,255,254,255,1,0,1,0,0,0,0,0,254,255,248,255,247,255,249,255, +247,255,247,255,250,255,252,255,253,255,254,255,0,0,1,0,0,0,253,255,251,255,253,255,252,255,247,255,247,255,252,255, +253,255,253,255,2,0,5,0,3,0,1,0,0,0,254,255,251,255,248,255,247,255,253,255,3,0,3,0,1,0,1,0, +255,255,255,255,0,0,253,255,246,255,244,255,244,255,246,255,255,255,5,0,3,0,255,255,255,255,0,0,0,0,255,255, +250,255,247,255,249,255,250,255,251,255,254,255,0,0,0,0,1,0,2,0,0,0,253,255,251,255,245,255,243,255,247,255, +248,255,245,255,247,255,253,255,254,255,254,255,255,255,1,0,0,0,252,255,248,255,249,255,251,255,247,255,244,255,250,255, +0,0,0,0,255,255,255,255,255,255,254,255,251,255,249,255,251,255,250,255,248,255,249,255,252,255,251,255,251,255,255,255, +0,0,253,255,251,255,250,255,247,255,248,255,252,255,252,255,252,255,2,0,7,0,6,0,0,0,253,255,253,255,255,255, +0,0,255,255,254,255,255,255,5,0,11,0,13,0,11,0,9,0,5,0,255,255,254,255,1,0,2,0,0,0,0,0, +1,0,4,0,9,0,13,0,13,0,11,0,7,0,4,0,1,0,1,0,0,0,254,255,254,255,1,0,3,0,3,0, +4,0,4,0,2,0,2,0,5,0,6,0,1,0,252,255,252,255,254,255,255,255,1,0,3,0,4,0,5,0,9,0, +11,0,9,0,6,0,2,0,253,255,251,255,252,255,255,255,0,0,1,0,3,0,6,0,10,0,12,0,11,0,9,0, +7,0,6,0,4,0,1,0,0,0,255,255,0,0,3,0,4,0,3,0,2,0,5,0,3,0,251,255,247,255,248,255, +250,255,252,255,0,0,4,0,1,0,254,255,254,255,0,0,0,0,253,255,250,255,249,255,249,255,248,255,249,255,255,255, +5,0,5,0,2,0,0,0,254,255,249,255,247,255,252,255,2,0,6,0,5,0,3,0,3,0,5,0,4,0,1,0, +254,255,0,0,5,0,8,0,5,0,253,255,251,255,1,0,7,0,8,0,10,0,11,0,11,0,12,0,16,0,16,0, +13,0,9,0,3,0,250,255,246,255,248,255,252,255,2,0,10,0,12,0,7,0,2,0,0,0,254,255,254,255,2,0, +3,0,254,255,248,255,248,255,251,255,254,255,253,255,247,255,244,255,247,255,250,255,248,255,244,255,242,255,243,255,241,255, +240,255,244,255,250,255,251,255,246,255,246,255,249,255,251,255,251,255,253,255,250,255,245,255,246,255,252,255,254,255,255,255, +3,0,3,0,1,0,2,0,0,0,251,255,255,255,9,0,11,0,7,0,9,0,6,0,250,255,245,255,250,255,252,255, +253,255,3,0,5,0,5,0,6,0,2,0,250,255,251,255,3,0,2,0,252,255,250,255,254,255,7,0,15,0,9,0, +252,255,253,255,3,0,253,255,242,255,244,255,249,255,244,255,239,255,249,255,11,0,19,0,14,0,9,0,9,0,8,0, +5,0,1,0,253,255,0,0,9,0,10,0,0,0,0,0,7,0,6,0,2,0,8,0,13,0,11,0,8,0,5,0, +6,0,17,0,10,0,234,255,221,255,251,255,25,0,30,0,17,0,5,0,14,0,38,0,36,0,10,0,5,0,11,0, +252,255,251,255,2,0,189,255,83,255,100,255,238,255,79,0,75,0,37,0,16,0,28,0,55,0,54,0,35,0,32,0, +247,255,138,255,94,255,207,255,91,0,107,0,42,0,10,0,35,0,73,0,86,0,71,0,45,0,8,0,223,255,218,255, +8,0,52,0,68,0,85,0,114,0,131,0,120,0,80,0,33,0,14,0,23,0,24,0,18,0,25,0,35,0,28,0, +11,0,251,255,245,255,4,0,21,0,18,0,8,0,3,0,245,255,228,255,223,255,225,255,236,255,253,255,238,255,195,255, +191,255,226,255,232,255,225,255,255,255,21,0,248,255,223,255,225,255,222,255,225,255,239,255,214,255,172,255,189,255,240,255, +251,255,241,255,242,255,232,255,216,255,224,255,229,255,215,255,211,255,228,255,243,255,247,255,244,255,229,255,209,255,197,255, +190,255,195,255,216,255,232,255,238,255,237,255,221,255,198,255,197,255,213,255,225,255,231,255,235,255,229,255,218,255,219,255, +234,255,251,255,6,0,7,0,255,255,243,255,231,255,225,255,235,255,252,255,251,255,234,255,221,255,222,255,217,255,199,255, +192,255,213,255,236,255,238,255,232,255,233,255,236,255,229,255,220,255,216,255,198,255,128,255,43,255,51,255,165,255,251,255, +234,255,195,255,215,255,21,0,62,0,48,0,13,0,13,0,13,0,201,255,135,255,188,255,43,0,70,0,18,0,244,255, +18,0,69,0,85,0,56,0,36,0,50,0,51,0,29,0,43,0,94,0,120,0,110,0,104,0,117,0,141,0,158,0, +142,0,120,0,130,0,137,0,129,0,129,0,114,0,97,0,107,0,101,0,72,0,52,0,57,0,86,0,73,0,36,0, +65,0,61,0,237,255,248,255,55,0,9,0,214,255,26,0,89,0,6,0,201,255,74,0,137,0,236,255,174,255,14,0, +32,0,245,255,234,255,0,0,48,0,56,0,17,0,252,255,251,255,251,255,231,255,226,255,239,255,220,255,35,0,107,0, +244,255,21,0,138,0,147,255,92,255,97,0,164,255,74,255,203,0,112,0,154,255,187,0,135,0,90,255,227,255,3,0, +78,255,163,255,9,0,234,255,1,0,16,0,1,0,246,255,221,255,173,255,109,255,159,255,22,0,32,0,232,255,138,255, +197,255,218,0,69,0,113,254,41,255,216,0,226,255,136,254,184,255,99,1,181,0,171,255,244,0,127,1,211,255,206,255, +155,0,150,255,91,255,62,0,33,0,178,255,87,255,184,255,167,0,186,255,3,255,82,0,42,0,146,255,122,0,210,255, +221,254,76,255,229,254,115,255,156,0,51,255,51,255,93,1,182,0,136,255,199,255,208,254,227,254,51,0,235,254,228,253, +60,255,75,254,54,252,162,254,160,1,113,255,252,253,162,0,68,0,28,254,37,0,83,1,194,255,243,255,78,255,183,253, +123,254,38,254,181,252,10,253,75,253,176,254,169,0,15,255,75,253,179,253,59,253,194,252,115,253,210,254,238,253,247,249, +239,253,186,6,132,1,228,251,147,7,130,13,53,4,114,0,203,4,217,7,10,5,196,253,205,253,18,2,239,255,109,1, +29,4,77,253,84,254,30,9,180,7,195,0,211,2,122,6,113,5,220,2,36,4,160,6,222,3,169,4,179,8,191,2, +197,0,27,9,63,5,235,254,122,6,61,5,66,250,250,251,125,1,52,1,77,2,252,0,207,253,169,255,75,255,41,251, +150,252,74,255,125,251,155,247,55,249,43,252,108,254,163,0,184,255,116,252,45,253,225,0,190,0,136,253,74,253,43,255, +146,253,59,250,47,250,171,251,187,252,50,253,56,251,243,250,1,254,111,252,94,249,99,251,192,250,252,248,32,254,13,0, +172,250,184,249,143,253,145,255,95,254,92,251,176,251,26,254,145,253,109,255,137,2,113,255,38,254,244,1,194,1,107,1, +31,4,246,1,114,255,218,2,169,3,32,0,196,0,218,4,191,5,120,3,88,2,185,3,12,5,205,3,117,1,154,1, +129,2,175,0,49,0,95,2,48,1,62,255,173,1,247,2,30,1,161,0,16,1,132,1,127,1,185,255,168,255,139,1, +182,0,74,255,82,0,48,1,5,1,221,0,107,0,67,255,197,254,245,0,211,1,93,254,178,253,19,0,16,254,109,252, +172,254,14,254,23,253,149,255,157,255,219,253,155,254,203,254,172,253,63,254,206,255,230,255,250,254,228,255,78,1,155,255, +96,254,189,0,40,2,214,0,92,255,186,254,219,254,213,254,96,255,37,1,194,0,60,255,131,0,121,1,32,1,43,2, +220,1,188,0,185,1,252,0,111,255,22,1,66,1,80,255,165,0,65,2,187,0,179,255,57,0,237,0,30,2,104,2, +144,0,118,255,47,1,99,2,4,1,102,0,46,1,198,0,20,0,112,255,59,254,98,255,245,1,173,1,83,0,210,255, +118,255,30,1,189,2,133,0,162,254,190,255,49,0,157,255,82,255,88,255,95,0,94,0,189,254,76,255,192,0,153,255, +178,254,221,255,193,0,20,1,42,1,83,0,197,255,92,0,5,0,44,254,229,253,235,255,4,1,160,0,136,0,218,255, +59,255,254,0,197,1,146,255,76,255,149,0,164,255,87,255,199,0,147,0,171,254,126,253,77,254,254,254,160,254,214,255, +152,255,211,252,194,255,179,5,177,3,208,253,14,254,30,2,163,1,191,253,248,253,40,0,134,255,104,255,204,255,210,253, +187,253,55,3,51,8,109,4,19,253,39,254,229,4,206,5,143,0,215,254,45,3,61,4,251,255,230,253,208,254,102,1, +228,3,79,2,33,0,150,255,174,254,176,255,127,0,186,254,160,252,66,250,77,252,6,2,88,1,112,253,232,251,113,250, +99,252,147,0,133,1,107,1,187,0,23,255,227,254,130,254,149,252,57,252,39,0,157,3,117,0,200,251,91,251,128,253, +251,255,150,255,238,253,110,254,76,253,51,252,176,254,137,0,139,0,174,254,19,253,66,255,67,255,139,254,171,2,7,2, +90,253,123,254,70,0,136,1,125,5,249,5,187,2,16,1,122,1,46,3,147,3,167,0,152,255,105,4,39,6,177,255, +201,252,18,0,52,2,44,5,34,6,3,3,44,2,198,255,114,254,213,3,74,2,179,252,162,0,186,1,243,252,31,254, +150,255,196,254,228,1,74,2,81,253,130,253,142,0,246,254,12,1,219,3,85,253,253,252,0,4,94,255,171,250,36,255, +177,254,213,251,126,251,15,250,118,251,40,255,221,1,184,2,181,254,248,247,34,244,24,251,91,11,78,16,108,5,56,252, +213,250,179,254,13,3,196,2,102,3,101,7,182,5,239,253,91,254,231,9,68,13,243,3,72,255,121,0,104,255,177,253, +118,251,86,250,197,254,64,4,201,3,221,255,225,252,70,251,25,2,13,14,225,9,243,253,218,255,46,1,188,251,252,253, +138,2,113,3,80,4,198,4,128,2,4,248,219,239,149,248,52,1,96,252,48,247,92,250,146,0,75,255,28,251,105,255, +65,0,118,246,164,240,254,245,168,255,248,254,182,246,33,251,18,2,119,252,158,248,88,247,31,244,162,251,223,7,15,8, +6,255,182,247,193,249,214,1,204,1,26,250,36,252,173,5,166,2,220,247,221,245,216,247,107,250,57,1,18,3,188,252, +207,250,178,0,47,1,54,248,249,244,77,251,248,0,174,4,206,2,28,251,8,251,9,2,201,5,53,5,152,2,44,2, +117,3,99,7,36,15,145,9,254,249,220,251,193,6,141,11,63,16,0,14,239,7,177,11,156,13,166,6,162,3,205,7, +16,8,76,0,91,255,132,8,22,12,221,10,243,6,239,251,193,249,83,4,228,6,226,1,192,3,144,7,111,3,225,255, +86,4,182,2,84,250,135,255,96,10,23,5,250,248,183,245,200,249,239,0,160,4,57,1,212,3,162,16,82,20,146,12, +191,8,106,5,51,0,222,1,219,3,196,2,217,7,189,11,109,3,247,250,249,1,28,15,234,11,3,251,232,245,156,254, +93,250,229,231,19,234,89,3,125,14,222,8,51,4,11,248,43,238,71,249,176,254,52,242,243,242,149,252,41,247,224,244, +114,252,53,245,104,237,74,254,225,13,61,8,167,254,85,244,203,232,28,234,41,241,150,241,132,242,199,238,162,226,237,228, +243,243,213,239,227,220,55,219,2,239,215,1,94,254,248,232,120,225,233,241,253,253,21,249,186,242,121,241,60,244,105,253, +213,6,75,9,164,10,166,17,224,24,225,21,67,11,255,7,56,14,169,20,213,28,84,36,85,30,211,17,147,13,251,13, +216,20,200,35,64,36,99,21,126,20,103,27,195,20,254,13,98,9,173,251,211,254,31,24,121,23,159,251,196,244,164,255, +144,1,53,7,107,18,72,12,50,254,113,1,61,13,138,8,129,243,55,236,240,2,64,21,107,4,66,241,19,254,118,18, +60,20,6,12,223,252,230,227,132,211,187,219,168,239,228,246,49,236,162,229,118,242,19,255,200,250,6,243,170,235,60,220, +115,215,122,234,160,247,79,239,252,234,249,241,196,243,59,246,34,4,40,13,181,2,31,243,54,245,189,4,68,1,65,230, +78,225,208,254,224,9,94,243,253,234,119,251,253,6,202,10,198,9,208,252,84,246,179,1,138,7,222,4,83,11,246,19, +205,23,195,23,199,5,114,239,47,248,52,10,3,3,67,254,15,8,44,253,211,234,204,250,130,22,67,21,45,0,223,235, +71,222,187,225,159,246,222,3,188,250,174,243,84,4,134,18,108,4,151,246,37,5,15,23,119,17,171,3,111,4,209,8, +83,246,252,222,220,239,222,14,108,1,169,236,108,8,198,34,14,17,92,3,82,13,219,14,1,12,233,19,103,25,207,21, +125,14,160,14,211,31,214,39,63,18,229,7,232,28,144,35,166,13,212,253,209,255,101,13,39,31,210,31,141,12,235,254, +65,255,119,0,13,253,83,251,170,0,199,3,126,254,146,2,165,15,171,10,164,255,212,7,119,6,158,234,69,219,8,227, +208,230,71,233,139,247,2,6,138,5,94,244,109,233,83,253,119,17,47,254,99,230,172,240,252,251,67,242,108,239,99,244, +150,235,169,230,181,251,166,18,122,13,130,248,211,242,249,253,48,254,251,233,220,221,245,237,71,2,212,0,121,249,215,0, +84,8,188,1,76,251,248,253,250,0,92,3,235,6,113,2,231,246,170,246,219,5,189,15,190,8,178,1,96,8,23,14, +224,3,101,247,242,252,245,11,93,6,142,234,135,226,131,253,45,12,238,247,246,236,229,0,118,19,16,19,112,9,131,254, +148,250,79,254,170,0,148,2,186,255,92,238,117,229,54,248,138,4,175,246,202,241,57,2,38,8,47,248,7,232,166,235, +30,255,145,8,136,254,201,246,230,248,157,248,220,252,55,11,162,14,137,2,145,254,38,6,232,5,131,251,18,246,117,251, +95,5,193,14,210,18,255,8,45,246,255,239,115,251,64,7,85,11,103,7,57,250,48,244,98,0,234,5,226,250,66,252, +20,10,21,6,39,247,133,246,11,1,128,11,37,15,246,8,120,7,79,11,122,253,154,239,174,2,57,20,121,2,96,245, +168,2,249,8,208,1,128,254,9,255,67,6,91,15,113,8,153,255,84,6,221,6,204,252,180,253,161,1,162,2,137,13, +138,13,236,248,171,253,78,32,245,41,115,22,226,8,56,0,31,248,185,249,29,248,150,242,199,0,187,17,4,6,82,249, +189,6,212,12,207,252,179,250,183,11,151,17,111,9,12,254,22,238,9,227,254,231,229,244,233,1,249,8,242,2,55,255, +166,8,177,5,42,243,58,246,8,13,221,16,210,255,250,240,118,235,236,238,103,245,130,246,53,250,211,6,166,14,253,9, +18,1,131,251,17,255,129,10,20,15,131,7,99,3,173,8,85,6,185,245,115,234,31,241,136,255,218,9,117,6,150,245, +241,244,193,14,182,19,27,246,197,237,163,2,151,255,146,228,79,218,164,225,249,232,109,239,96,248,153,2,64,2,74,243, +114,239,113,0,149,8,32,253,124,240,173,235,248,240,147,248,159,242,239,236,239,248,75,2,64,1,117,6,12,7,134,251, +235,251,191,7,225,8,86,1,201,248,39,243,161,249,166,255,12,243,197,231,227,242,206,0,135,254,253,253,198,16,58,29, +180,8,160,245,123,8,196,30,138,24,28,14,109,9,4,254,77,249,50,5,240,21,213,34,253,34,103,30,229,42,42,49, +141,23,204,6,62,17,5,14,203,0,72,7,59,13,208,4,246,0,94,6,52,19,46,27,75,9,158,252,193,20,223,28, +101,249,224,232,102,252,0,5,11,1,254,2,243,255,228,251,42,3,143,8,125,6,88,8,31,10,85,1,44,245,199,244, +181,254,124,255,234,242,4,237,50,241,196,238,198,232,56,237,120,247,150,254,17,0,129,244,101,220,2,206,246,217,178,240, +48,249,46,243,7,238,216,237,254,237,72,240,124,251,138,11,217,12,10,253,239,248,150,0,7,238,251,208,220,223,116,3, +114,2,222,241,238,246,220,252,97,248,171,255,125,15,82,18,229,6,233,249,174,248,51,4,104,13,194,14,19,14,238,9, +250,8,87,21,126,27,126,10,136,251,119,0,247,4,174,255,177,253,152,255,149,0,36,4,134,4,91,250,159,242,163,250, +228,7,158,9,193,255,71,246,128,245,138,250,249,251,63,246,12,242,133,247,136,255,121,0,139,252,136,243,101,231,167,238, +129,10,155,16,34,251,24,248,129,8,217,8,244,1,143,3,239,255,121,253,23,5,169,1,99,246,153,249,82,255,103,0, +174,9,204,11,47,255,36,1,207,15,85,12,154,252,233,246,231,251,61,3,74,4,174,255,10,1,195,8,53,18,123,27, +177,22,115,7,146,11,49,29,132,30,120,23,178,21,160,17,99,16,217,20,154,18,251,11,200,4,30,255,58,14,190,35, +148,21,143,251,54,2,39,14,0,4,253,248,183,243,162,242,231,254,224,5,75,250,110,244,89,249,208,253,35,11,76,21, +107,4,228,242,61,253,41,9,224,254,204,238,3,234,204,237,111,241,177,241,23,242,85,245,183,248,180,247,13,245,42,249, +85,251,47,238,172,231,157,247,49,251,139,233,210,234,218,250,99,250,130,247,100,250,38,243,51,241,22,254,12,4,233,3, +158,1,180,242,78,239,9,3,220,3,149,241,237,245,46,3,219,254,222,247,105,242,150,239,98,1,196,18,89,4,250,241, +82,247,101,255,79,254,114,253,146,249,3,244,103,249,143,2,112,254,38,244,206,245,224,3,137,19,88,24,196,8,180,246, +70,255,100,15,23,3,230,238,38,241,100,251,90,2,140,6,216,250,84,235,8,241,236,251,179,255,132,10,132,13,224,253, +97,251,213,7,216,4,222,251,122,253,200,251,90,249,205,2,114,6,114,247,136,235,183,246,154,14,75,24,166,9,222,247, +162,249,159,6,35,7,36,249,185,241,23,251,186,8,44,14,80,7,33,248,102,244,195,5,159,21,251,20,118,14,62,5, +114,250,121,250,83,1,147,0,219,252,89,254,36,2,220,3,70,255,171,248,142,250,214,254,181,254,209,5,173,16,32,12, +88,0,60,255,155,0,193,252,181,254,247,6,155,5,3,250,197,247,148,1,225,1,203,248,194,255,70,18,61,18,204,1, +224,250,202,255,135,3,67,5,197,5,229,254,190,247,145,255,192,10,207,2,164,245,72,252,150,11,179,15,201,10,116,3, +205,254,41,255,229,252,194,250,154,1,28,3,179,249,62,251,7,3,4,253,4,252,23,10,81,9,199,251,172,1,225,14, +247,7,81,252,41,253,224,252,0,248,99,252,36,3,165,254,130,252,91,6,137,9,205,2,190,4,127,10,131,6,252,0, +178,253,255,249,43,255,128,9,57,11,93,8,252,1,3,249,35,0,111,10,180,249,126,238,12,7,103,21,242,4,82,251, +141,250,172,245,228,251,102,4,194,255,245,253,103,253,202,247,64,2,164,13,103,252,131,242,164,7,130,16,189,1,252,249, +79,249,122,248,54,254,131,2,235,255,44,254,12,253,115,253,14,0,15,251,96,244,63,250,140,1,113,255,244,253,98,255, +202,253,251,250,169,247,239,245,129,253,52,9,93,8,6,252,69,250,12,8,69,10,17,248,199,241,161,4,252,18,123,11, +27,254,202,253,92,8,119,8,101,252,17,254,225,7,206,254,88,247,136,7,34,12,232,245,24,239,233,4,28,17,3,5, +105,254,230,9,90,11,171,252,156,253,58,11,194,6,37,251,221,252,61,0,208,255,239,254,145,251,49,0,217,9,79,6, +66,4,176,11,113,1,48,241,233,248,174,3,191,3,202,6,232,0,127,244,42,250,196,0,232,250,161,0,14,9,251,1, +116,0,25,4,22,252,235,250,73,3,116,0,189,254,78,4,99,253,149,248,177,7,117,13,175,253,3,247,241,0,138,4, +38,253,25,252,40,6,68,8,41,251,184,246,7,3,28,5,201,247,70,246,64,3,181,8,97,4,250,0,55,0,81,2, +179,3,16,253,169,247,106,253,115,0,34,252,171,254,252,255,35,247,62,250,221,7,55,1,127,242,189,249,253,5,87,2, +63,251,73,250,118,254,93,4,49,0,135,246,236,250,181,4,190,2,5,255,146,253,77,247,23,250,128,8,44,8,116,251, +210,253,98,6,26,255,167,245,19,251,246,3,164,2,163,251,178,251,243,2,155,1,130,249,118,0,133,12,181,2,167,245, +187,254,251,5,244,251,191,250,168,5,117,2,7,246,17,251,86,9,17,3,33,243,37,253,70,17,214,6,100,241,85,246, +214,4,63,7,182,5,150,2,15,0,20,2,8,252,230,244,254,255,91,6,80,250,67,252,232,8,222,1,26,249,199,254, +3,255,52,253,186,3,67,2,183,249,152,248,212,250,2,1,25,8,100,254,242,243,62,2,26,13,6,254,210,243,234,251, +77,2,51,4,82,3,73,251,155,250,26,6,248,5,82,248,81,245,207,253,66,2,126,0,112,251,154,246,253,247,253,251, +194,252,131,0,231,8,221,9,30,1,240,252,140,0,124,253,237,245,125,254,129,14,82,10,144,252,139,251,252,251,133,249, +190,0,157,5,72,255,158,253,165,255,242,254,221,2,144,0,1,247,99,1,239,15,193,0,184,241,36,252,6,1,79,251, +61,1,150,7,46,2,179,252,155,254,179,6,15,7,220,246,222,243,117,10,201,15,87,250,24,243,163,252,140,254,101,254, +131,3,117,5,105,4,119,3,189,1,137,1,168,255,60,249,116,250,25,8,82,14,25,3,207,250,49,0,8,1,46,250, +148,255,138,12,57,11,45,1,195,254,7,1,5,0,49,253,236,255,230,8,192,8,99,250,114,243,92,252,176,3,93,3, +73,2,89,1,27,1,154,1,92,0,155,254,201,251,139,250,237,3,226,12,202,1,141,242,241,246,179,1,70,2,171,0, +35,1,231,255,147,1,56,5,109,1,131,251,193,253,194,0,221,0,153,6,77,7,47,249,127,245,129,3,99,3,119,247, +84,252,2,5,248,255,19,253,196,0,97,2,116,3,209,254,44,247,155,253,51,6,84,253,20,245,245,251,99,4,14,7, +5,4,212,253,34,255,127,3,159,255,153,252,78,252,44,247,204,253,91,17,167,13,91,244,250,240,224,2,87,6,246,251, +174,251,99,5,43,8,88,0,150,251,138,255,63,254,50,248,85,2,10,17,238,4,12,241,115,246,47,1,214,253,233,253, +154,1,186,253,225,252,217,255,56,254,196,253,4,252,75,248,240,254,41,3,20,251,139,254,54,7,2,254,201,249,248,2, +248,1,130,2,91,10,50,2,253,250,138,7,241,12,248,2,160,247,45,244,21,7,230,19,192,247,83,235,35,11,192,12, +39,242,200,253,123,13,3,255,171,255,75,12,197,4,191,252,107,251,175,250,57,5,69,5,245,243,164,251,225,12,222,252, +159,244,221,13,239,13,167,236,38,233,2,6,134,11,31,245,132,240,210,2,88,3,38,240,90,240,166,1,95,1,54,248, +70,1,30,8,224,247,122,245,201,15,242,15,200,239,100,240,236,11,206,8,223,248,186,253,107,2,252,0,254,3,225,2, +21,4,229,8,133,1,209,0,239,10,247,252,64,241,163,10,9,18,44,247,189,248,65,12,123,2,146,247,240,2,200,10, +99,6,186,254,164,254,101,10,64,7,186,243,36,252,59,18,220,5,198,246,74,4,198,4,197,245,61,254,241,8,160,255, +201,254,16,4,2,253,178,254,111,5,61,251,8,252,98,11,95,0,245,242,95,3,19,6,176,248,35,5,243,9,183,244, +42,250,87,11,226,252,114,245,163,2,40,255,12,251,237,4,197,2,188,253,176,0,164,252,112,0,41,11,186,0,244,250, +119,10,31,5,210,243,48,252,81,2,58,248,43,253,3,8,192,3,210,254,73,255,243,0,188,4,33,1,235,249,245,255, +104,7,115,1,189,252,195,1,19,6,45,5,184,1,96,254,221,254,14,4,207,6,17,0,71,249,245,253,180,3,53,4, +0,8,33,5,244,247,174,250,58,9,51,5,201,249,248,251,70,1,160,3,235,2,110,252,207,253,99,5,71,254,54,248, +201,5,80,11,237,253,216,248,230,254,203,255,231,253,104,255,225,0,246,254,145,252,150,254,35,0,161,252,209,253,213,4, +244,4,43,255,55,251,219,249,137,254,203,4,169,1,25,253,252,255,217,0,249,254,8,2,143,3,116,255,182,254,136,3, +211,4,143,254,252,250,10,1,179,3,162,253,240,253,40,2,150,253,72,252,24,2,188,253,41,248,48,1,167,5,34,252, +226,249,46,0,32,255,90,252,39,0,41,1,176,252,120,252,149,0,20,1,38,254,169,252,172,253,182,255,183,255,222,252, +225,251,170,253,105,254,153,255,84,1,118,255,222,253,3,0,144,0,191,255,106,255,114,252,171,252,73,2,112,1,120,253, +209,0,100,1,204,253,225,1,206,3,230,254,174,3,31,9,68,255,96,250,240,2,190,2,93,252,218,255,185,2,2,255, +243,255,178,0,175,250,15,252,100,5,36,3,110,250,243,254,167,5,14,255,95,250,62,255,35,255,240,252,214,1,27,2, +46,252,35,254,73,2,132,254,163,252,216,0,170,1,98,254,12,253,46,254,100,255,252,254,119,253,107,253,138,255,201,0, +43,254,37,251,152,252,45,254,177,253,209,1,96,5,116,255,163,251,224,255,32,255,32,252,167,0,53,2,36,253,79,252, +201,253,75,254,193,1,15,2,215,253,142,255,216,2,194,254,236,251,140,255,22,2,120,1,45,1,26,2,103,2,55,0, +152,255,115,2,247,0,26,253,243,0,126,3,191,251,120,249,165,2,160,5,178,255,67,254,21,1,23,1,225,255,41,0, +225,0,71,0,144,254,159,255,87,3,157,2,11,254,76,254,94,2,242,2,238,255,64,252,187,250,168,254,216,3,66,3, +152,255,119,254,248,255,131,1,175,255,229,252,42,255,207,0,77,253,21,255,19,4,197,255,208,252,245,3,86,5,92,0, +91,2,134,3,194,254,248,254,109,1,69,255,102,254,36,0,180,1,144,2,105,255,108,253,213,2,244,4,162,0,59,0, +92,0,55,254,141,0,178,0,253,252,73,1,245,4,43,255,16,255,52,3,245,254,130,254,209,4,249,1,66,253,204,1, +113,3,91,254,252,251,104,253,44,1,117,3,159,254,16,251,105,0,166,4,112,2,210,255,15,254,18,254,199,1,195,2, +200,253,36,251,184,254,177,1,2,0,94,254,110,0,0,2,227,255,25,255,156,2,251,3,155,255,55,253,188,0,9,1, +180,252,53,255,141,4,110,0,0,253,248,1,225,0,48,252,190,1,43,4,179,252,137,254,21,6,56,3,195,0,23,3, +149,254,76,252,100,2,134,1,37,253,72,1,205,1,199,251,97,254,225,3,29,1,209,255,118,2,209,255,160,253,235,1, +156,2,137,253,243,252,1,0,199,255,116,255,176,0,63,254,86,252,248,1,83,6,151,1,115,253,93,255,4,0,161,254, +159,254,104,253,88,253,54,2,84,3,26,253,46,252,19,2,19,1,249,251,133,0,216,6,216,0,114,249,240,253,167,2, +119,253,153,250,59,1,44,5,104,0,66,253,129,0,215,1,216,254,38,255,48,2,105,0,236,252,93,254,3,1,180,0, +25,255,197,253,233,255,92,5,48,5,33,255,136,254,59,2,116,0,66,253,244,255,224,2,150,0,157,254,200,0,79,1, +56,254,198,254,163,2,251,1,159,255,178,0,239,0,107,0,153,1,46,0,14,255,200,1,11,255,149,249,33,254,192,2, +60,254,141,254,200,4,169,3,230,254,202,253,26,255,50,3,5,4,11,253,216,250,133,1,170,3,96,255,215,253,160,1, +227,5,237,2,32,253,137,0,174,3,79,253,35,255,65,8,48,2,0,250,118,2,199,6,140,253,98,250,157,255,210,3, +92,5,162,1,69,254,113,1,100,0,62,252,227,1,84,5,23,254,85,253,96,1,210,252,162,250,33,255,58,255,162,0, +73,5,38,1,160,252,143,1,48,2,27,254,155,1,151,2,254,250,113,250,225,255,23,253,95,248,241,251,243,1,251,3, +254,1,56,255,13,1,21,4,121,0,59,252,67,254,178,255,189,254,155,0,159,1,220,0,133,2,177,0,25,252,8,0, +143,4,176,255,54,255,26,5,211,2,190,254,128,255,204,250,214,247,204,0,158,5,131,0,16,255,47,0,221,255,193,2, +24,3,122,254,136,255,72,3,48,255,166,249,2,251,201,253,219,252,151,253,219,2,23,3,70,252,132,252,146,2,250,255, +209,252,147,2,234,2,132,251,143,251,140,1,34,4,222,2,199,254,229,251,246,251,247,249,238,249,88,0,89,4,196,3, +40,3,80,0,186,255,10,4,32,2,36,253,51,0,8,2,66,255,7,2,74,3,171,253,167,253,20,2,61,1,61,0, +24,2,45,2,42,1,137,0,28,1,84,2,104,255,70,253,40,3,97,5,67,254,150,252,77,0,90,254,131,254,88,4, +210,2,246,252,125,255,217,3,229,1,238,255,134,255,26,253,151,252,96,254,153,253,227,253,86,0,141,253,189,250,120,0, +172,3,108,254,207,253,172,1,117,255,2,254,38,3,230,3,87,253,76,250,147,254,153,2,197,255,81,250,146,250,179,254, +108,0,254,255,148,255,238,0,147,3,25,2,159,254,99,0,52,1,44,253,198,254,93,3,212,255,232,251,128,254,252,255, +231,255,135,1,199,1,2,1,52,255,104,252,140,255,74,4,114,0,140,253,190,0,53,255,196,255,52,8,220,5,253,251, +176,0,146,7,99,0,164,251,4,0,47,1,181,0,217,2,2,3,69,2,151,2,252,1,44,1,90,255,24,253,174,254, +234,255,184,252,164,252,3,1,183,2,227,1,63,0,235,254,212,1,220,3,190,255,213,254,148,2,67,0,239,251,100,253, +45,254,41,253,227,255,155,1,122,255,2,255,78,255,188,253,100,253,69,253,202,251,63,254,181,3,181,3,74,0,204,1, +75,5,81,3,211,253,179,251,242,254,58,2,169,0,140,255,30,3,17,3,36,254,194,254,144,1,144,254,247,253,192,1, +76,0,252,253,42,1,39,3,5,3,8,3,172,255,26,254,250,1,10,2,191,255,131,2,11,2,59,252,226,252,165,2, +26,4,184,1,130,255,157,0,60,3,49,0,63,252,134,0,216,3,87,255,94,254,14,2,141,255,202,251,183,0,141,6, +26,3,191,252,85,253,187,0,10,255,106,252,238,254,255,1,223,0,148,254,68,254,53,255,218,254,65,252,74,251,23,254, +113,255,39,253,202,252,153,255,179,255,216,251,160,249,0,252,45,0,228,2,209,2,147,0,85,255,108,0,184,0,4,0, +124,1,100,2,86,255,157,253,141,255,108,254,2,251,107,253,111,2,123,2,173,1,184,3,151,3,193,1,217,2,1,4, +110,2,44,0,223,253,7,254,143,2,52,5,102,3,158,2,217,1,8,255,159,255,148,2,114,2,108,2,168,3,144,2, +86,2,197,3,215,1,232,255,81,1,27,0,13,253,87,254,58,0,68,255,55,255,253,254,22,253,25,254,206,255,77,253, +34,253,48,1,120,255,48,251,152,254,115,0,210,249,190,248,35,255,114,254,151,249,138,251,106,255,194,255,209,255,160,0, +127,1,108,1,166,255,123,0,10,3,89,255,67,250,111,253,27,1,169,253,118,251,152,254,191,0,51,0,132,255,182,255, +147,1,151,3,203,2,132,0,208,255,166,0,55,2,23,3,199,0,228,253,133,255,27,2,158,0,149,255,19,1,177,0, +251,0,49,4,242,3,231,0,175,0,221,255,226,253,109,255,65,0,0,254,105,254,249,255,5,0,53,2,54,3,37,0, +118,0,169,3,15,2,208,254,76,254,39,254,220,254,217,255,9,254,142,253,46,1,164,2,138,0,245,255,101,0,179,255, +232,255,95,0,136,254,83,253,195,255,94,2,200,1,119,255,188,253,26,254,7,0,249,255,154,253,176,252,125,253,92,254, +207,255,155,0,239,255,207,255,125,255,202,254,226,0,170,2,228,255,98,254,218,0,148,0,225,253,126,254,70,0,46,0, +63,0,111,0,206,255,49,0,32,1,156,0,70,0,95,1,152,1,121,0,16,0,27,0,204,255,1,0,122,0,3,1, +71,2,14,2,189,255,0,0,167,2,81,2,85,0,147,0,21,1,105,0,211,255,241,254,47,254,248,254,177,0,44,2, +234,1,118,255,18,254,232,254,0,255,68,255,255,1,12,3,156,255,77,253,197,255,224,1,120,0,83,0,116,2,129,1, +21,255,108,0,151,1,87,255,221,254,134,0,216,255,141,254,28,255,13,0,228,0,228,0,234,255,218,0,113,2,219,0, +66,255,131,0,102,0,118,254,241,254,49,0,80,255,48,255,95,0,170,255,12,255,18,1,206,1,240,255,95,255,122,255, +34,254,172,253,150,254,129,255,191,0,142,0,85,255,9,1,71,2,86,255,139,254,51,0,191,253,171,252,118,1,93,2, +234,253,240,253,107,1,8,2,40,1,58,0,18,255,166,255,141,0,145,255,106,255,60,0,39,255,58,255,24,2,69,1, +240,252,223,253,128,2,152,2,5,0,40,255,186,254,251,254,189,255,83,255,215,0,117,3,33,1,129,254,116,1,150,2, +118,255,253,254,140,255,153,254,95,0,72,2,46,0,106,254,0,254,255,252,211,254,203,1,93,0,155,254,11,0,232,255, +26,255,152,1,98,2,19,255,15,254,163,255,41,255,199,254,83,0,209,0,208,0,38,1,217,255,91,255,209,0,186,255, +60,254,151,0,182,1,2,0,88,0,239,0,180,0,170,2,185,2,214,255,152,0,218,1,65,255,83,255,16,1,90,254, +124,253,1,1,23,1,120,255,185,0,158,0,173,255,87,1,117,1,180,255,79,0,157,0,196,255,157,1,103,2,72,255, +186,254,163,0,64,255,99,254,192,0,222,0,230,255,245,0,207,255,86,254,7,1,156,1,231,254,195,255,120,0,78,254, +4,0,213,1,89,254,136,253,79,255,33,253,190,253,71,2,11,1,46,254,171,255,68,255,192,254,94,2,246,1,208,253, +58,255,183,1,124,255,58,254,249,254,206,254,240,255,192,0,158,254,20,254,126,255,231,254,154,255,50,2,204,0,193,254, +14,1,56,1,72,254,165,255,210,1,181,255,232,254,18,0,113,255,87,0,201,1,145,255,10,255,136,1,148,0,39,255, +178,0,236,255,60,254,113,255,72,255,114,254,140,0,241,0,25,255,233,255,191,0,191,255,98,0,231,0,201,255,62,0, +171,0,217,254,82,254,164,255,98,0,232,0,47,0,65,254,145,255,72,2,39,0,106,253,194,255,34,1,135,254,168,254, +48,1,142,0,101,255,157,0,60,1,148,0,116,255,100,254,43,0,107,2,237,255,83,253,51,255,82,0,153,255,138,0, +167,0,96,255,231,255,126,0,157,0,25,2,84,1,5,254,63,254,157,0,249,255,249,254,91,0,131,1,118,1,38,1, +122,0,62,0,253,0,231,0,206,255,47,0,236,0,251,254,151,253,251,255,81,1,154,255,122,255,63,0,91,255,219,255, +52,1,98,0,140,0,245,1,72,0,89,254,156,255,19,0,227,254,90,255,86,0,96,0,72,0,17,255,236,253,251,255, +220,1,158,255,55,254,178,0,170,1,249,255,118,255,0,255,39,254,115,255,244,255,205,254,206,0,53,2,162,254,255,253, +99,1,89,0,96,254,76,0,72,0,107,255,141,1,202,0,32,254,244,255,233,0,229,254,180,0,108,2,40,255,61,254, +170,0,59,0,148,255,161,0,153,255,70,255,177,1,115,1,200,255,50,1,112,1,113,255,20,0,97,0,95,254,34,0, +44,3,10,1,189,254,48,255,115,254,42,255,139,1,31,0,59,255,164,1,205,255,199,252,158,255,5,1,194,254,4,0, +37,1,215,254,82,255,24,1,29,0,6,0,54,0,4,255,149,0,84,2,17,0,82,255,32,1,142,0,116,0,37,2, +184,0,242,254,156,0,98,0,217,253,191,254,156,0,208,255,199,255,95,0,79,255,225,255,131,1,34,0,102,255,252,0, +214,255,187,254,52,1,209,0,52,254,22,0,74,1,189,254,120,255,43,1,32,255,97,255,230,1,94,1,135,1,103,2, +40,255,179,253,18,1,101,1,152,255,23,1,126,1,195,255,77,0,100,0,38,255,188,0,72,1,57,254,186,254,163,1, +171,255,205,253,22,0,253,255,206,254,73,1,82,1,138,254,124,0,204,2,87,0,67,255,196,255,89,254,73,255,29,1, +211,254,15,254,145,0,231,255,182,254,132,0,130,0,90,255,51,0,182,255,137,254,178,255,165,255,80,254,185,255,219,0, +155,255,140,0,165,2,191,0,149,253,176,253,221,254,16,255,169,255,226,255,17,255,166,255,99,1,229,1,196,1,168,0, +230,253,154,253,76,0,145,0,77,255,39,0,153,0,31,0,220,0,122,0,41,255,238,255,35,0,144,254,196,254,177,255, +80,255,176,255,66,0,224,255,126,0,9,1,31,0,127,0,126,1,64,0,112,255,113,0,177,255,222,253,119,254,238,255, +31,0,67,0,91,0,243,255,55,0,85,0,160,255,81,0,66,1,146,255,181,254,237,0,65,1,213,254,87,254,215,255, +14,1,163,1,255,0,100,0,26,1,101,0,117,254,43,255,182,0,199,255,199,254,66,255,184,255,79,0,182,0,41,0, +185,0,67,2,16,1,194,254,70,0,142,2,150,0,174,254,63,0,39,0,245,253,163,254,58,0,42,0,245,0,54,1, +207,255,96,0,48,1,206,255,7,0,164,0,233,254,114,255,248,0,208,254,226,254,80,2,42,1,170,254,135,0,91,1, +209,255,127,255,219,254,82,255,36,2,58,1,22,254,190,255,96,1,247,254,241,254,225,0,152,255,218,254,149,0,66,0, +70,255,154,0,35,1,78,0,123,0,79,0,192,255,110,0,166,255,81,253,62,254,197,0,83,0,208,255,127,1,200,1, +44,0,22,255,135,254,127,254,10,255,84,255,253,255,184,0,239,255,111,255,168,0,210,0,135,255,132,255,31,0,197,255, +227,255,190,0,169,0,73,0,171,0,10,0,76,254,161,254,148,0,192,0,14,0,37,0,82,255,135,254,72,0,103,2, +101,2,8,1,44,255,67,254,98,255,130,0,96,0,8,0,214,255,252,255,253,255,238,254,232,254,193,0,64,1,139,0, +177,0,231,255,151,254,100,255,71,0,141,255,44,255,117,255,11,0,192,0,5,0,88,255,246,0,143,1,103,255,141,254, +34,0,3,1,234,255,128,254,210,254,229,255,124,255,127,255,60,1,41,1,79,255,165,255,47,1,36,1,62,0,91,255, +4,255,211,255,66,0,216,255,42,0,145,0,248,255,112,255,93,255,178,255,193,0,120,1,91,1,213,0,41,255,9,254, +235,255,8,1,242,254,3,255,174,1,36,1,31,255,190,255,82,0,69,0,136,1,50,1,18,255,63,255,65,0,212,255, +90,0,83,1,125,0,42,255,113,254,178,254,215,255,124,255,207,254,198,0,90,1,204,254,197,254,153,0,10,0,186,255, +139,0,23,0,197,255,71,255,6,254,209,255,132,2,244,0,56,255,54,0,58,0,246,255,74,0,219,254,147,254,167,0, +98,0,75,255,103,0,204,255,175,253,32,254,112,255,130,0,12,2,56,1,55,255,239,255,35,0,153,254,23,0,5,2, +34,0,106,255,236,0,78,255,170,253,31,0,70,1,175,255,2,0,93,0,4,255,253,255,119,1,183,255,8,255,199,0, +177,0,126,0,178,1,34,0,187,253,76,255,113,1,25,1,140,0,24,0,150,255,164,255,253,254,167,255,247,2,66,2, +77,253,144,253,55,1,107,0,118,255,250,0,181,255,36,255,189,2,140,2,52,254,8,254,49,0,120,0,236,0,61,0, +67,254,110,255,14,1,226,255,65,0,59,1,143,255,4,0,51,2,92,0,88,254,125,255,122,255,101,255,102,1,145,1, +103,0,180,0,127,0,77,0,237,0,114,255,57,254,48,0,184,0,87,255,92,0,82,1,247,255,139,255,255,255,124,255, +80,255,237,255,125,0,121,0,116,255,245,254,204,255,246,255,132,255,174,255,207,255,91,0,172,0,68,255,150,255,242,1, +86,0,155,253,229,255,97,1,78,255,86,0,244,1,20,255,204,253,12,0,62,0,154,255,43,0,178,255,7,0,166,1, +127,0,141,254,91,255,109,0,202,0,179,0,186,254,127,254,160,1,79,1,71,254,225,255,232,1,114,255,49,255,253,1, +158,0,131,253,123,254,57,0,153,255,0,255,131,255,86,0,230,0,75,0,159,255,178,0,17,1,136,254,64,253,183,255, +219,0,4,255,136,255,220,1,184,0,183,254,224,255,216,0,51,0,160,0,194,0,72,255,145,254,196,254,32,255,67,0, +122,0,172,255,250,0,57,2,164,255,114,253,81,255,246,0,243,255,114,255,44,0,60,0,84,0,49,1,212,0,34,255, +34,255,239,0,123,1,39,0,196,254,170,254,156,255,226,255,26,0,29,2,44,2,39,254,54,253,185,0,15,1,245,255, +12,2,143,1,69,254,0,255,208,255,136,253,253,254,101,2,154,1,243,0,92,1,128,254,61,253,69,0,100,1,193,0, +24,1,173,255,79,254,205,255,72,0,174,255,236,0,72,1,63,0,15,0,222,254,196,253,179,255,45,1,232,0,113,1, +51,0,176,253,109,255,75,2,63,1,180,255,96,255,217,254,116,255,247,255,97,255,183,0,131,1,104,254,19,253,201,255, +7,1,152,0,223,0,177,0,184,0,238,0,82,255,143,254,31,0,85,0,19,0,135,1,29,1,46,255,21,0,62,1, +185,255,65,255,246,0,118,1,68,0,233,254,73,254,78,255,223,0,162,0,233,255,5,1,99,1,42,255,171,254,229,0, +132,0,195,254,158,0,134,1,101,254,110,254,138,1,58,0,178,253,80,255,233,0,76,0,109,255,79,254,68,255,58,2, +108,1,248,254,153,0,162,1,138,255,118,255,159,255,147,253,99,254,23,1,226,0,44,0,162,255,218,253,196,254,10,1, +178,255,155,255,183,2,151,1,80,254,75,255,14,0,211,254,82,0,124,1,165,255,140,255,61,0,247,254,30,0,154,2, +183,0,199,254,17,1,248,1,199,255,33,255,80,0,56,1,79,0,73,253,160,253,251,2,233,3,96,255,153,255,62,2, +223,255,152,254,203,0,147,255,229,253,135,255,38,255,156,254,41,1,217,0,248,255,230,2,175,0,96,251,219,254,222,1, +10,253,192,253,250,1,171,254,5,254,134,2,32,0,7,254,87,2,8,1,113,253,1,0,42,255,177,252,52,1,181,1, +194,253,169,1,223,2,250,251,207,253,186,3,81,0,50,255,241,2,1,0,2,254,99,1,244,255,212,254,44,2,172,255, +28,253,198,1,175,0,229,251,121,0,51,3,59,254,27,0,49,4,14,255,108,252,17,1,154,1,191,255,211,0,37,0, +114,255,44,2,135,2,225,255,222,254,87,254,138,254,55,0,134,254,157,251,142,254,63,2,231,0,108,0,192,1,123,255, +128,253,1,0,180,1,126,0,122,255,209,254,43,255,121,0,222,254,249,252,108,0,119,3,234,0,225,254,97,254,133,251, +125,251,243,255,124,0,102,253,11,254,73,1,238,2,62,2,103,0,102,1,33,4,182,1,37,254,37,1,209,3,78,1, +147,1,158,4,226,3,136,2,236,2,212,0,210,253,99,254,152,1,237,3,36,2,151,254,44,0,186,3,55,1,234,253, +88,0,61,2,182,0,232,0,93,1,96,254,41,252,106,254,136,1,166,1,125,0,15,1,193,1,64,0,114,254,193,253, +250,253,12,0,114,1,123,255,231,254,164,0,82,254,142,251,69,255,55,2,62,255,234,253,115,255,241,254,176,254,185,255, +17,255,246,254,29,0,235,254,203,253,81,255,140,255,164,254,163,255,11,0,212,255,159,1,74,1,239,253,167,254,131,1, +165,255,8,254,74,0,232,255,90,254,132,0,9,0,232,252,12,0,67,3,61,255,97,254,250,1,181,255,235,253,74,2, +14,2,176,254,188,0,222,0,78,254,154,0,3,0,234,251,48,0,157,3,35,254,248,254,105,3,107,254,217,253,188,4, +243,0,161,251,109,1,135,2,53,254,13,1,214,0,181,251,2,255,17,2,108,254,122,0,200,2,28,253,87,252,16,0, +106,254,66,255,230,1,212,253,216,253,244,2,135,255,87,253,177,3,175,1,19,251,184,255,58,3,230,253,125,253,148,0, +229,255,19,1,130,1,28,254,58,0,3,4,75,0,187,254,246,1,161,255,28,253,77,0,221,0,249,255,143,1,100,255, +105,254,132,3,240,1,117,252,49,1,123,3,59,252,56,254,244,4,222,255,4,253,145,2,44,0,7,252,28,0,41,0, +28,254,132,2,193,1,252,253,115,2,49,1,208,249,236,255,24,6,58,254,182,253,57,4,53,255,98,253,172,4,48,1, +176,252,27,4,183,3,108,252,245,255,144,1,130,252,205,0,180,3,73,252,194,253,78,4,194,255,249,253,8,3,252,255, +34,254,15,4,197,1,238,252,174,1,160,1,100,252,213,0,46,3,134,252,73,254,124,3,13,254,126,252,100,3,220,1, +156,253,58,2,47,3,178,253,254,254,117,2,201,255,52,255,49,2,96,1,238,255,181,0,161,255,101,255,134,1,202,255, +41,253,146,255,43,0,112,253,188,255,132,2,110,255,201,254,122,1,5,0,141,255,247,1,72,255,130,253,102,2,29,2, +9,253,238,254,216,0,72,253,213,254,181,2,195,255,10,254,27,1,2,1,165,255,89,0,143,255,183,255,139,1,127,255, +7,254,166,1,16,2,242,254,179,0,127,2,229,254,68,254,58,2,7,2,217,254,1,255,77,0,39,0,42,0,205,255, +211,254,23,255,186,255,252,255,217,0,114,0,139,254,167,254,125,255,10,255,176,0,176,2,137,0,201,254,219,255,38,255, +163,254,12,0,242,254,248,254,166,2,247,0,47,252,192,254,206,1,41,255,143,255,30,2,146,255,125,253,111,255,96,0, +41,0,240,255,89,255,64,0,2,0,71,253,194,254,193,2,106,1,76,255,174,0,78,0,135,255,133,1,108,1,167,255, +94,0,140,0,93,255,131,255,80,255,59,255,186,0,79,0,80,255,25,1,232,0,225,254,143,0,204,0,245,252,179,253, +128,1,250,0,182,0,56,2,50,0,136,254,208,255,73,255,176,255,2,2,121,255,21,253,242,0,67,1,7,253,250,254, +75,2,41,0,44,0,69,2,237,255,65,254,153,255,220,254,13,255,58,1,226,254,71,252,238,255,165,1,254,253,190,254, +241,2,47,1,190,253,90,255,36,0,123,254,119,0,251,1,224,254,240,254,84,1,173,254,110,254,21,3,32,1,166,253, +32,2,22,3,148,254,71,0,63,1,11,253,51,255,54,2,156,254,224,255,77,2,206,252,38,254,70,5,18,0,186,251, +152,3,182,3,232,252,207,255,123,1,215,252,128,255,104,2,239,253,245,254,207,2,101,255,200,254,46,2,214,255,71,0, +132,5,253,0,16,250,103,254,211,1,209,254,95,0,220,1,71,254,154,255,96,2,147,254,8,254,196,1,226,255,149,254, +227,0,5,254,242,252,224,2,175,2,240,254,13,2,123,1,47,252,147,255,63,3,142,254,23,254,228,1,115,0,90,255, +109,0,96,255,199,0,56,2,188,254,55,255,189,2,83,255,120,253,26,2,78,1,175,253,251,255,12,1,42,255,244,255, +23,0,128,0,148,3,86,1,28,253,130,0,205,1,100,253,202,255,248,2,36,254,44,254,193,2,153,255,144,254,178,3, +202,0,227,252,21,2,145,1,167,251,102,255,230,2,7,255,89,0,68,2,166,253,186,254,157,2,178,254,105,254,30,3, +248,255,221,253,189,2,153,0,187,251,194,255,134,2,248,255,54,0,66,0,66,255,53,1,17,0,110,253,93,1,153,2, +206,252,159,253,237,2,88,0,22,253,174,0,212,2,177,0,237,255,160,0,21,0,189,254,212,254,87,1,174,2,225,255, +193,253,38,0,130,1,30,254,96,252,230,255,221,1,32,255,66,254,172,0,170,0,53,255,79,0,195,0,95,254,113,253, +89,255,224,0,204,0,221,255,62,255,31,0,10,1,68,0,222,255,151,0,168,255,148,254,99,0,238,0,41,254,30,254, +14,1,116,1,95,0,171,255,193,254,108,0,54,2,17,255,177,253,154,0,75,255,252,253,69,2,200,1,84,254,61,2, +200,2,77,252,76,254,124,3,127,255,56,253,136,0,102,0,161,0,21,2,64,255,200,255,221,3,170,0,191,253,24,2, +172,1,33,253,22,255,89,1,51,255,94,255,160,0,91,255,218,254,98,255,216,255,37,1,224,0,36,255,212,255,222,0, +32,255,218,253,70,255,18,1,80,1,70,0,93,255,176,254,235,253,60,255,33,2,172,1,180,254,238,254,42,1,185,0, +240,254,87,255,51,1,77,1,102,255,241,254,37,0,32,255,140,253,172,255,147,1,245,255,201,255,241,0,232,254,3,254, +215,0,236,0,11,255,90,0,22,1,14,0,44,1,136,1,79,0,35,1,72,0,58,254,90,1,190,2,108,254,168,255, +57,3,193,254,223,252,30,2,208,1,183,254,210,0,110,1,223,255,87,0,39,255,1,255,35,2,161,0,49,254,225,1, +77,2,93,254,219,255,110,1,133,254,185,254,161,0,133,0,106,1,216,255,226,252,214,0,124,3,118,253,102,252,73,2, +138,1,2,254,191,255,81,0,222,254,169,255,253,254,41,254,235,0,107,0,216,252,69,255,31,2,152,254,46,254,253,1, +113,0,118,254,56,1,118,0,175,253,192,255,160,0,171,255,107,2,232,1,187,253,83,0,253,2,153,254,106,254,25,2, +41,0,17,255,200,0,96,254,13,254,152,1,137,0,5,0,151,2,89,255,151,253,114,3,193,2,49,253,50,0,108,2, +248,253,190,254,243,1,23,0,107,0,38,2,142,255,94,255,47,1,103,254,44,254,55,2,17,1,197,254,94,0,203,254, +163,253,10,2,222,0,184,251,186,255,67,3,6,254,39,254,240,2,119,0,224,254,97,1,202,254,34,254,73,2,63,255, +32,252,37,1,167,0,51,253,79,2,76,2,136,251,188,255,13,5,107,255,37,254,239,1,84,255,161,254,11,1,199,253, +159,253,35,2,78,255,8,253,179,2,204,2,122,253,133,254,193,0,49,255,56,255,250,255,27,0,175,1,14,1,118,254, +107,255,175,0,113,255,55,0,209,0,80,254,24,255,150,2,94,1,65,255,158,0,235,255,30,254,44,0,221,0,183,254, +27,0,91,1,34,254,232,253,112,1,5,2,179,1,150,1,6,255,60,255,241,1,78,255,20,253,244,0,76,1,186,253, +225,254,61,0,221,254,251,0,248,2,123,0,209,255,36,1,227,255,12,255,159,255,46,255,177,255,138,0,77,255,33,255, +123,0,203,255,5,255,64,0,224,0,206,0,172,0,14,255,255,254,180,2,195,3,229,255,155,254,191,0,33,0,205,254, +121,0,202,0,16,255,166,255,149,0,241,255,135,0,213,0,135,255,244,255,160,0,89,255,144,255,85,0,5,255,46,255, +126,0,172,255,201,255,39,1,74,0,140,255,22,0,166,255,215,255,54,0,226,254,23,255,77,0,142,255,232,255,142,0, +211,254,173,255,194,1,85,255,99,254,189,0,137,255,52,255,42,2,50,0,182,253,235,0,203,0,178,253,23,0,193,1, +95,255,227,255,192,0,135,255,201,0,213,0,96,254,50,0,177,1,103,254,64,255,210,2,134,0,39,255,113,2,201,1, +24,255,241,255,134,255,135,254,227,0,3,1,13,255,29,1,224,1,93,254,91,254,167,0,5,0,93,0,93,1,161,255, +91,255,39,0,224,254,65,0,20,2,213,254,126,254,234,1,65,255,226,252,231,0,15,1,167,254,21,1,10,1,103,254, +167,255,215,254,152,253,94,2,110,2,69,253,23,0,127,2,101,253,93,254,12,2,224,253,143,253,208,2,161,0,87,253, +65,0,26,1,152,0,101,2,212,0,197,254,70,1,140,1,146,254,163,254,172,255,35,255,148,255,95,0,92,0,73,0, +169,255,121,255,128,0,194,0,213,0,189,1,252,0,66,255,66,255,37,255,139,254,234,255,195,0,240,254,152,254,180,0, +85,1,191,0,213,0,97,0,246,255,165,0,103,0,233,255,42,1,73,1,153,255,102,255,30,255,243,253,247,255,115,2, +96,0,132,254,116,0,195,1,227,0,211,255,91,255,176,255,68,255,164,254,174,0,104,1,78,254,193,254,34,2,118,0, +109,254,251,0,102,1,40,255,78,255,226,255,198,255,201,255,128,254,31,255,43,2,224,0,14,254,122,0,245,1,187,254, +162,253,133,255,140,0,191,0,165,255,83,254,100,255,7,0,228,254,148,255,103,0,230,254,31,255,52,1,197,0,167,255, +95,0,46,0,90,255,103,0,19,1,122,0,42,1,7,1,163,254,236,254,230,0,15,255,222,253,241,0,137,1,102,255, +176,255,169,255,151,255,92,2,115,1,116,253,211,255,183,2,80,255,143,254,179,0,169,254,135,254,203,1,189,0,11,255, +91,0,6,0,149,0,140,2,184,255,188,253,55,1,226,0,146,253,148,255,102,1,194,255,190,0,145,1,13,255,35,255, +60,1,165,0,227,255,192,255,202,254,255,255,208,1,216,255,95,254,45,0,238,255,58,254,240,255,33,2,91,1,181,255, +131,254,8,255,164,1,194,1,15,255,40,255,170,0,237,255,149,255,114,255,123,254,184,0,7,3,242,255,40,254,96,0, +206,255,41,255,165,1,193,0,189,254,223,0,152,0,231,253,223,255,80,1,210,254,26,255,96,0,252,254,38,0,96,2, +254,255,212,253,190,255,55,1,219,0,134,0,145,255,99,254,0,255,129,0,76,0,130,255,193,0,91,1,70,255,58,255, +92,1,156,0,208,255,131,1,126,0,102,254,48,0,30,1,90,255,190,255,114,0,71,255,143,255,76,0,190,255,44,0, +112,0,113,255,169,255,243,255,97,255,95,0,232,0,41,255,221,254,50,0,136,0,162,0,254,255,143,254,141,255,50,1, +10,0,79,255,2,0,43,255,98,255,147,1,141,0,87,254,109,0,40,2,136,255,236,253,92,255,152,0,18,1,26,0, +75,254,217,255,9,2,116,255,228,253,3,1,126,1,101,255,77,0,172,0,88,255,176,0,143,1,185,255,81,255,119,255, +64,255,197,0,73,0,65,254,140,0,180,1,63,254,24,255,31,2,177,255,7,255,90,2,7,1,37,254,71,255,7,0, +185,255,245,255,242,254,94,255,94,1,15,0,188,254,114,0,255,255,157,254,65,0,145,0,12,255,215,255,84,0,214,254, +195,254,4,0,185,0,96,0,6,255,124,255,235,1,137,1,92,255,231,255,180,0,98,255,192,254,93,255,214,255,54,0, +24,0,249,255,164,0,108,0,105,255,14,0,38,1,107,0,186,255,153,0,209,0,106,255,231,254,39,0,159,0,177,255, +159,255,139,0,161,0,210,255,132,255,111,0,48,1,64,0,148,255,117,0,34,0,64,255,213,0,103,1,178,254,8,254, +40,0,124,0,241,255,93,0,3,0,229,255,20,1,221,0,103,255,132,255,126,0,136,0,34,0,3,0,249,255,206,255, +190,255,193,255,124,255,199,255,216,0,152,0,106,255,215,255,134,0,228,255,8,0,191,0,62,0,251,255,53,0,140,255, +133,255,32,0,75,255,80,255,113,1,30,1,103,254,235,254,73,1,102,0,255,254,161,0,78,1,109,255,88,255,75,0, +206,254,67,254,172,0,113,1,54,0,86,0,119,0,247,255,249,0,169,1,55,0,51,255,162,255,78,0,220,0,112,0, +91,255,138,255,82,0,255,255,64,255,13,255,157,255,89,0,43,0,13,0,201,0,75,0,215,254,0,255,240,255,115,0, +247,0,61,0,232,254,116,255,27,0,139,255,4,0,55,0,249,254,228,255,140,1,148,255,251,253,6,0,209,0,181,255, +138,0,7,1,41,255,208,254,137,0,245,0,15,0,85,255,100,255,124,0,158,0,53,255,134,255,142,0,12,255,194,254, +61,1,164,0,65,254,167,255,39,1,28,0,162,0,56,1,56,255,116,254,100,255,144,255,50,0,78,0,4,255,229,255, +111,1,237,255,228,254,231,255,249,255,58,0,208,0,163,255,104,255,186,0,70,0,213,255,200,0,49,0,103,255,68,0, +80,0,214,255,11,0,119,255,111,255,199,0,151,0,135,255,206,255,13,0,60,0,218,0,3,0,247,254,33,0,26,1, +24,0,97,255,244,255,92,0,230,255,131,255,193,255,183,255,157,255,63,0,4,0,232,254,133,255,187,0,112,0,120,0, +250,0,40,0,130,255,17,0,57,0,199,255,140,255,239,255,153,0,25,0,107,255,129,0,176,0,242,254,102,255,70,1, +137,0,94,255,27,0,66,0,137,255,209,255,119,0,149,0,160,0,129,0,222,255,73,255,61,255,59,255,114,255,113,0, +143,0,130,255,13,0,246,0,178,255,137,255,23,1,98,0,135,255,156,0,255,255,73,255,65,1,116,1,127,255,137,255, +18,0,225,255,56,0,221,255,254,255,146,1,219,0,209,254,59,255,25,0,81,0,89,0,13,255,125,255,206,1,121,0, +236,254,234,0,17,0,113,254,150,1,138,1,137,253,43,255,197,1,123,255,226,254,14,0,132,255,140,0,40,1,40,255, +141,255,131,0,221,254,209,255,209,1,160,255,118,254,128,0,78,0,39,255,50,0,236,0,62,0,144,255,225,255,64,1, +41,1,81,255,56,255,44,0,193,255,169,255,3,0,136,255,252,255,3,1,60,0,34,255,82,255,167,255,209,255,9,0, +15,0,252,255,188,255,183,255,64,0,26,0,137,255,64,0,22,1,141,0,180,255,15,255,198,254,190,255,223,0,140,0, +175,255,93,255,118,255,241,255,104,0,102,0,50,0,221,255,116,255,147,255,246,255,209,255,157,255,2,0,127,0,185,0, +154,0,168,255,191,254,81,255,62,0,82,0,160,0,159,0,112,255,40,255,145,255,177,254,34,255,94,1,229,0,16,255, +178,255,57,0,213,255,190,0,162,0,91,255,49,0,160,0,247,254,25,255,71,0,203,255,229,255,161,0,32,0,35,0, +154,0,215,255,163,255,74,0,231,255,148,255,42,0,123,0,124,0,13,0,136,255,156,0,210,1,198,0,150,255,219,255, +175,255,46,255,180,255,88,0,125,0,129,0,253,255,111,255,254,255,195,0,125,0,217,255,122,255,92,255,217,255,100,0, +51,0,34,0,44,0,99,255,95,255,144,0,133,0,234,255,35,0,66,255,165,254,159,0,57,1,88,255,134,255,215,0, +135,0,53,0,179,255,0,255,60,0,204,0,84,255,178,255,98,0,3,255,151,255,45,1,239,255,144,255,14,1,57,0, +15,255,14,0,148,0,51,0,197,255,12,255,99,255,110,0,151,0,210,0,221,0,14,0,227,255,166,255,4,255,246,255, +104,0,26,255,140,255,177,0,46,0,124,0,158,0,18,255,134,255,186,0,139,255,163,255,2,1,14,0,135,255,70,0, +135,255,114,255,153,0,106,0,91,0,96,0,31,255,121,255,134,0,114,255,172,255,25,1,14,0,189,255,203,0,85,255, +178,254,172,0,137,0,195,255,203,0,62,0,131,255,215,0,77,0,200,254,246,255,188,0,9,0,169,0,179,0,66,255, +97,255,68,0,41,0,57,0,247,255,16,255,147,255,199,0,171,0,70,0,46,0,152,255,140,255,89,0,34,0,85,255, +8,0,34,1,171,0,195,255,189,255,1,0,77,0,111,0,194,255,65,255,243,255,141,0,42,0,146,255,88,255,239,255, +243,0,173,0,102,255,57,255,248,255,84,0,94,0,8,0,94,255,98,255,244,255,5,0,219,255,6,0,22,0,226,255, +221,255,17,0,37,0,217,255,80,255,68,255,46,0,20,1,159,0,91,255,24,255,253,255,85,0,188,255,210,255,155,0, +57,0,58,255,156,255,67,0,207,255,164,255,204,255,53,255,67,255,81,0,135,0,62,0,53,0,176,255,144,255,53,0, +237,255,141,255,92,0,119,0,167,255,183,255,201,255,55,255,141,255,135,0,119,0,139,255,71,255,72,0,41,1,190,0, +226,255,76,255,75,255,88,0,189,0,124,255,94,255,184,0,186,0,228,255,226,255,81,0,193,0,33,0,226,254,221,255, +74,1,29,0,124,255,71,0,140,255,173,255,117,1,174,0,80,255,83,0,75,0,99,255,2,0,218,255,122,255,178,0, +126,0,137,255,105,0,1,0,202,254,115,0,77,1,103,255,98,255,180,0,126,0,83,0,22,0,41,255,159,255,93,0, +200,255,22,0,196,0,200,255,89,255,39,0,216,255,97,255,30,0,69,0,167,255,187,255,219,255,147,255,240,255,146,0, +87,0,169,255,74,255,138,255,136,0,208,0,127,255,29,255,119,0,134,0,194,255,168,0,244,0,175,255,238,255,142,0, +76,255,9,255,82,0,92,0,31,0,98,0,171,255,151,255,212,0,152,0,169,255,249,255,199,255,117,255,176,0,203,0, +16,255,77,255,234,0,104,0,62,255,183,255,63,0,2,0,38,0,109,0,50,0,233,255,212,255,4,0,81,0,8,0, +201,255,114,0,116,0,121,255,201,255,197,0,82,0,203,255,9,0,184,255,147,255,18,0,232,255,9,0,253,0,116,0, +203,254,76,254,142,254,61,255,173,0,54,1,63,0,118,255,140,255,60,0,186,0,42,0,209,255,171,0,206,0,101,255, +255,253,206,253,79,255,62,1,32,1,219,255,241,255,140,0,96,0,58,0,72,0,30,0,203,255,48,255,254,254,4,0, +249,0,194,0,114,0,161,0,130,0,28,0,37,0,89,0,53,0,49,0,117,0,47,0,165,255,216,255,59,0,18,0, +216,255,189,255,218,255,94,0,103,0,221,255,236,255,21,0,185,255,1,0,145,0,1,0,95,255,221,255,94,0,9,0, +173,255,14,0,111,0,220,255,101,255,242,255,7,0,122,255,247,255,193,0,94,0,155,255,84,255,175,255,113,0,93,0, +164,255,198,255,234,255,107,255,231,255,202,0,81,0,195,255,32,0,18,0,138,255,160,255,46,0,69,0,185,255,181,255, +125,0,61,0,30,255,108,255,61,0,209,255,234,255,239,0,114,0,25,255,76,255,60,0,74,0,250,255,18,0,64,0, +250,255,136,255,191,255,75,0,52,0,7,0,103,0,91,0,192,255,178,255,239,255,239,255,53,0,69,0,146,255,110,255, +7,0,25,0,48,0,169,0,66,0,153,255,166,255,102,255,118,255,160,0,130,0,54,255,176,255,154,0,230,255,158,255, +31,0,228,255,243,255,83,0,189,255,193,255,188,0,61,0,38,255,204,255,145,0,251,255,178,255,68,0,86,0,205,255, +164,255,4,0,113,0,126,0,12,0,190,255,246,255,200,255,82,255,8,0,193,0,225,255,137,255,131,0,76,0,174,255, +146,0,219,0,226,255,214,255,37,0,216,255,229,255,234,255,174,255,11,0,31,0,207,255,111,0,208,0,21,0,234,255, +29,0,190,255,222,255,58,0,224,255,217,255,73,0,72,0,71,0,77,0,207,255,133,255,160,255,123,255,140,255,14,0, +255,255,94,255,144,255,169,0,206,0,215,255,211,255,117,0,251,255,111,255,168,255,109,255,125,255,144,0,155,0,153,255, +141,255,30,0,117,0,133,0,18,0,253,255,84,0,192,255,121,255,83,0,31,0,155,255,119,0,103,0,125,255,15,0, +67,0,148,255,93,0,186,0,148,255,222,255,135,0,183,255,238,255,200,0,77,0,104,0,196,0,200,255,14,0,48,1, +220,255,96,254,163,254,56,254,60,254,48,0,0,1,67,0,81,0,163,0,205,0,10,1,106,0,10,0,188,0,73,0, +249,254,149,254,15,254,8,254,236,255,246,0,99,0,247,0,144,1,137,0,25,0,157,0,127,0,200,255,139,254,49,254, +61,0,98,1,239,255,253,255,142,1,8,1,2,0,23,0,124,255,84,255,185,0,241,0,234,255,242,255,89,0,47,0, +255,255,168,255,128,255,246,255,35,0,220,255,180,255,113,255,119,255,17,0,42,0,198,255,233,255,11,0,152,255,107,255, +218,255,42,0,254,255,183,255,172,255,220,255,82,0,136,0,195,255,41,255,225,255,75,0,187,255,205,255,253,255,124,255, +235,255,171,0,229,255,104,255,66,0,104,0,223,255,196,255,147,255,153,255,22,0,28,0,38,0,137,0,52,0,196,255, +17,0,16,0,203,255,239,255,8,0,67,0,112,0,199,255,174,255,175,0,184,0,24,0,20,0,125,255,253,254,12,0, +121,0,174,255,5,0,165,0,71,0,93,0,112,0,187,255,8,0,183,0,246,255,117,255,220,255,144,255,114,255,57,0, +92,0,56,0,152,0,75,0,188,255,7,0,13,0,186,255,29,0,64,0,221,255,42,0,69,0,127,255,143,255,118,0, +143,0,46,0,18,0,219,255,208,255,72,0,129,0,247,255,74,255,100,255,254,255,246,255,187,255,50,0,45,0,89,255, +148,255,99,0,8,0,160,255,215,255,124,255,110,255,119,0,176,0,211,255,171,255,36,0,78,0,4,0,140,255,202,255, +107,0,231,255,90,255,42,0,72,0,87,255,213,255,190,0,17,0,193,255,122,0,27,0,81,255,226,255,151,0,103,0, +69,0,81,0,246,255,167,255,224,255,16,0,205,255,169,255,254,255,78,0,79,0,18,0,195,255,233,255,57,0,230,255, +211,255,139,0,108,0,180,255,39,0,99,0,76,255,41,255,62,0,134,0,44,0,214,255,107,255,179,255,90,0,73,0, +50,0,27,0,143,255,247,255,185,0,192,255,16,255,83,0,202,0,211,255,109,255,147,255,12,0,151,0,226,255,75,255, +83,0,125,0,111,255,186,255,42,0,136,255,232,255,150,0,223,255,174,255,61,0,181,255,129,255,132,0,124,0,143,255, +166,255,31,0,7,0,233,255,227,255,228,255,70,0,177,0,114,0,204,255,162,255,14,0,77,0,18,0,199,255,192,255, +27,0,108,0,6,0,153,255,4,0,109,0,79,0,68,0,9,0,185,255,54,0,130,0,183,255,123,255,66,0,96,0, +221,255,183,255,220,255,60,0,141,0,70,0,245,255,243,255,228,255,50,0,157,0,29,0,168,255,32,0,29,0,148,255, +250,255,120,0,250,255,164,255,249,255,32,0,10,0,254,255,233,255,218,255,191,255,147,255,175,255,14,0,71,0,59,0, +36,0,58,0,58,0,232,255,214,255,12,0,195,255,144,255,36,0,67,0,183,255,221,255,58,0,246,255,2,0,88,0, +36,0,0,0,11,0,223,255,37,0,120,0,2,0,238,255,80,0,187,255,122,255,121,0,106,0,102,255,185,255,58,0, +180,255,222,255,134,0,55,0,239,255,5,0,133,255,124,255,121,0,202,0,74,0,241,255,131,255,126,255,96,0,171,0, +15,0,236,255,231,255,141,255,205,255,30,0,196,255,249,255,176,0,129,0,226,255,168,255,173,255,29,0,117,0,250,255, +176,255,4,0,6,0,6,0,56,0,212,255,171,255,65,0,37,0,111,255,111,255,210,255,21,0,58,0,9,0,9,0, +74,0,29,0,66,0,188,0,6,0,40,255,140,255,209,255,226,255,121,0,10,0,57,255,10,0,157,0,225,255,225,255, +29,0,187,255,13,0,45,0,94,255,164,255,98,0,245,255,227,255,63,0,191,255,175,255,46,0,220,255,208,255,80,0, +8,0,233,255,57,0,181,255,151,255,105,0,52,0,149,255,1,0,55,0,235,255,17,0,20,0,212,255,243,255,248,255, +207,255,225,255,212,255,179,255,185,255,212,255,112,0,240,0,31,0,80,255,234,255,138,0,87,0,23,0,243,255,233,255, +253,255,3,0,110,0,171,0,194,255,128,255,166,0,137,0,91,255,167,255,56,0,185,255,206,255,73,0,245,255,211,255, +52,0,55,0,13,0,209,255,178,255,66,0,100,0,130,255,123,255,62,0,1,0,183,255,82,0,62,0,113,255,115,255, +228,255,239,255,241,255,8,0,7,0,20,0,235,255,113,255,133,255,111,0,238,0,106,0,204,255,132,255,136,255,52,0, +153,0,178,255,87,255,137,0,194,0,141,255,60,255,156,255,167,255,36,0,157,0,40,0,201,255,2,0,72,0,110,0, +249,255,83,255,182,255,26,0,130,255,116,255,29,0,74,0,93,0,79,0,211,255,1,0,109,0,4,0,249,255,65,0, +171,255,144,255,49,0,218,255,168,255,122,0,104,0,203,255,8,0,30,0,0,0,76,0,12,0,222,255,146,0,98,0, +151,255,35,0,138,0,209,255,247,255,145,0,254,255,135,255,9,0,59,0,217,255,178,255,248,255,71,0,37,0,226,255, +16,0,53,0,253,255,240,255,253,255,221,255,235,255,32,0,10,0,185,255,166,255,43,0,169,0,60,0,189,255,49,0, +92,0,142,255,89,255,0,0,16,0,202,255,46,0,99,0,194,255,148,255,48,0,28,0,160,255,70,0,238,0,29,0, +101,255,187,255,207,255,190,255,35,0,17,0,183,255,238,255,248,255,225,255,117,0,152,0,227,255,203,255,27,0,229,255, +221,255,38,0,251,255,163,255,157,255,234,255,78,0,38,0,204,255,78,0,205,0,56,0,180,255,241,255,22,0,21,0, +27,0,191,255,120,255,211,255,39,0,12,0,26,0,134,0,132,0,169,255,48,255,3,0,166,0,31,0,230,255,81,0, +9,0,156,255,22,0,59,0,145,255,187,255,158,0,95,0,121,255,199,255,177,0,141,0,212,255,178,255,242,255,16,0, +18,0,25,0,32,0,222,255,111,255,166,255,73,0,73,0,3,0,25,0,29,0,55,0,109,0,227,255,102,255,252,255, +62,0,193,255,197,255,209,255,158,255,40,0,139,0,6,0,240,255,81,0,107,0,102,0,171,255,240,254,254,255,196,0, +161,255,159,255,201,0,59,0,189,255,159,0,41,0,45,255,233,255,111,0,2,0,247,255,155,255,65,255,241,255,17,0, +163,255,53,0,61,0,114,255,8,0,122,0,66,255,39,255,127,0,160,0,235,255,150,255,86,255,162,255,66,0,41,0, +10,0,52,0,210,255,204,255,117,0,33,0,112,255,0,0,124,0,233,255,155,255,177,255,157,255,2,0,140,0,75,0, +242,255,6,0,241,255,14,0,127,0,42,0,136,255,238,255,92,0,252,255,29,0,182,0,124,0,7,0,243,255,184,255, +223,255,151,0,140,0,235,255,225,255,13,0,22,0,56,0,0,0,198,255,48,0,57,0,173,255,217,255,71,0,243,255, +165,255,178,255,163,255,234,255,104,0,63,0,218,255,244,255,34,0,251,255,208,255,9,0,91,0,38,0,202,255,197,255, +138,255,82,255,251,255,137,0,37,0,250,255,45,0,240,255,242,255,89,0,47,0,242,255,24,0,226,255,155,255,195,255, +176,255,178,255,75,0,87,0,179,255,189,255,67,0,95,0,93,0,74,0,229,255,199,255,10,0,247,255,175,255,187,255, +251,255,57,0,62,0,182,255,64,255,200,255,163,0,170,0,31,0,184,255,188,255,44,0,49,0,118,255,110,255,86,0, +98,0,184,255,188,255,194,255,123,255,255,255,159,0,70,0,230,255,237,255,213,255,236,255,39,0,249,255,192,255,213,255, +18,0,71,0,247,255,134,255,237,255,96,0,54,0,85,0,67,0,137,255,188,255,103,0,226,255,136,255,234,255,143,255, +128,255,77,0,251,255,88,255,9,0,110,0,28,0,75,0,55,0,238,255,72,0,20,0,146,255,9,0,0,0,101,255, +248,255,44,0,93,255,7,0,9,1,59,0,197,255,102,0,52,0,207,255,232,255,176,255,233,255,179,0,156,0,25,0, +234,255,184,255,36,0,209,0,66,0,123,255,180,255,249,255,41,0,101,0,223,255,117,255,249,255,15,0,209,255,82,0, +98,0,149,255,116,255,7,0,108,0,143,0,72,0,242,255,55,0,73,0,110,255,180,254,64,255,172,0,45,1,11,0, +69,255,9,0,152,0,51,0,234,255,247,255,87,0,171,0,227,255,0,255,109,255,231,255,24,0,208,0,110,0,39,255, +210,255,221,0,240,255,201,255,225,0,59,0,56,255,218,255,36,0,243,255,120,0,72,0,175,255,49,0,24,0,18,255, +99,255,20,0,187,255,244,255,115,0,192,255,91,255,242,255,5,0,217,255,10,0,5,0,52,0,118,0,181,255,56,255, +49,0,168,0,242,255,209,255,28,0,181,255,93,255,193,255,83,0,134,0,60,0,246,255,9,0,215,255,156,255,67,0, +188,0,241,255,97,255,211,255,23,0,41,0,144,0,124,0,218,255,184,255,50,0,153,0,97,0,182,255,180,255,101,0, +85,0,204,255,47,0,164,0,44,0,210,255,237,255,214,255,224,255,21,0,252,255,7,0,64,0,239,255,122,255,142,255, +208,255,253,255,5,0,208,255,214,255,26,0,31,0,73,0,140,0,20,0,163,255,4,0,7,0,137,255,197,255,51,0, +13,0,238,255,220,255,219,255,123,0,193,0,254,255,180,255,31,0,1,0,223,255,42,0,225,255,118,255,227,255,61,0, +254,255,7,0,84,0,35,0,174,255,211,255,129,0,132,0,177,255,111,255,227,255,252,255,3,0,69,0,18,0,229,255, +77,0,64,0,196,255,199,255,196,255,159,255,25,0,101,0,240,255,179,255,149,255,77,255,236,255,229,0,139,0,184,255, +211,255,43,0,11,0,188,255,172,255,31,0,93,0,182,255,120,255,63,0,60,0,128,255,250,255,164,0,216,255,96,255, +59,0,80,0,120,255,136,255,254,255,208,255,225,255,100,0,118,0,43,0,210,255,159,255,6,0,89,0,221,255,163,255, +13,0,12,0,237,255,60,0,67,0,13,0,211,255,62,255,104,255,146,0,166,0,235,255,15,0,4,0,176,255,117,0, +144,0,85,255,156,255,194,0,76,0,186,255,214,255,102,255,145,255,109,0,23,0,219,255,174,0,109,0,170,255,28,0, +73,0,6,0,149,0,145,0,188,255,245,255,81,0,191,255,186,255,25,0,199,255,159,255,238,255,9,0,19,0,13,0, +181,255,112,255,158,255,20,0,98,0,35,0,158,255,197,255,108,0,100,0,17,0,13,0,170,255,144,255,84,0,199,0, +186,0,90,0,211,255,39,0,112,0,221,255,2,0,91,0,158,255,52,255,213,255,85,0,35,0,13,0,127,0,81,0, +185,255,239,255,37,0,2,0,27,0,32,0,14,0,189,255,98,255,210,255,83,0,96,0,58,0,198,255,229,255,45,0, +163,255,168,255,244,255,147,255,212,255,90,0,62,0,230,255,90,255,60,255,125,255,170,255,35,0,254,255,167,255,54,0, +15,0,192,255,50,0,212,255,231,255,205,0,100,0,169,255,121,255,154,255,32,0,186,255,119,255,104,0,78,0,210,255, +41,0,239,255,235,255,78,0,250,255,33,0,189,0,94,0,151,255,145,255,249,255,215,255,195,255,26,0,4,0,88,0, +220,0,88,0,80,0,92,0,86,255,62,255,226,255,48,0,69,0,127,255,243,255,137,1,163,0,169,255,121,0,86,0, +255,255,104,255,54,254,119,255,16,1,85,0,73,0,176,0,199,255,69,255,159,255,249,255,252,255,178,255,218,255,67,0, +32,0,183,255,231,255,158,0,158,0,27,0,229,255,182,255,6,0,34,0,98,255,187,255,52,0,173,255,54,0,56,0, +70,255,78,0,245,0,8,0,13,0,237,255,146,255,246,255,200,255,199,255,36,0,237,255,14,0,212,255,125,255,116,0, +193,0,96,0,156,0,205,255,28,255,216,255,117,255,233,254,72,0,226,0,6,0,27,0,40,0,94,255,225,255,160,0, +201,255,115,255,152,255,97,255,129,0,240,0,99,255,128,255,157,0,111,0,104,0,1,0,67,255,226,255,56,0,249,255, +81,0,205,255,112,255,180,0,215,0,192,255,255,255,122,0,51,0,108,0,125,0,242,255,40,0,85,0,189,255,27,0, +154,0,149,255,78,255,72,0,22,0,187,255,162,0,223,0,0,0,148,255,158,255,177,255,203,255,122,255,29,255,167,255, +91,0,27,0,186,255,37,0,132,0,48,0,228,255,223,255,194,255,28,0,181,0,15,0,245,254,59,255,213,255,153,255, +171,255,94,0,208,0,168,0,178,255,228,254,181,255,193,0,73,0,198,255,23,0,234,255,60,255,35,255,236,255,248,0, +226,0,224,255,163,255,231,255,21,0,100,0,228,255,78,255,68,0,182,0,153,255,86,255,3,0,140,0,10,1,79,0, +223,254,86,255,118,0,227,255,106,255,94,0,233,0,130,0,34,0,232,255,43,0,132,0,149,255,222,254,249,255,131,0, +0,0,119,0,115,0,87,255,196,255,204,0,74,0,207,255,253,255,219,255,13,0,77,0,169,255,104,255,40,0,166,0, +130,0,216,255,81,255,228,255,54,0,194,255,27,0,216,255,198,254,5,0,56,1,236,255,13,0,3,1,169,255,8,255, +228,255,222,255,37,0,163,0,31,0,248,255,77,0,60,0,224,255,142,255,223,255,55,0,235,255,156,255,254,254,32,255, +206,0,239,0,246,255,178,0,205,0,28,0,159,0,231,255,132,254,94,255,77,0,252,255,211,255,9,0,169,0,197,0, +16,0,61,0,126,0,163,255,39,255,53,255,40,255,163,255,136,0,193,0,248,255,117,255,135,255,228,254,15,255,210,0, +233,0,204,255,30,0,115,0,95,0,127,0,241,255,183,255,10,0,198,255,226,255,33,0,207,255,209,255,173,255,198,255, +136,0,42,0,31,0,146,1,113,1,139,0,22,1,235,0,113,255,245,253,36,253,6,254,104,255,231,255,99,0,82,0, +248,255,243,0,181,1,3,1,110,0,204,0,59,1,154,255,165,252,179,252,247,254,135,255,215,255,40,1,159,1,185,1, +199,1,188,0,145,255,93,254,141,252,141,252,230,254,147,0,76,1,0,2,137,1,215,0,115,1,100,1,254,255,63,255, +254,254,153,254,7,255,20,0,131,0,42,0,19,0,203,0,249,0,49,0,142,0,12,2,225,1,250,255,245,254,17,255, +191,254,200,254,29,0,161,0,153,255,101,255,76,0,171,0,135,0,172,0,54,1,97,1,113,0,84,255,224,254,151,254, +116,254,163,254,39,255,59,0,254,0,201,0,195,0,5,1,171,0,19,0,95,255,170,254,203,254,42,255,102,255,171,0, +162,1,126,0,179,255,114,0,46,0,42,255,19,255,201,254,151,254,245,255,10,1,128,0,251,255,38,0,146,0,9,1, +186,0,233,255,229,255,98,0,138,0,60,0,79,255,197,254,146,255,47,0,164,255,83,255,195,255,136,0,82,1,17,1, +1,0,8,0,192,0,111,0,158,255,63,255,15,255,52,255,232,255,131,0,134,0,125,0,1,1,49,1,52,0,142,255, +246,255,112,255,52,254,80,254,230,254,56,255,83,0,192,0,184,255,28,0,181,1,177,1,234,0,80,0,10,255,142,254, +252,254,26,254,204,253,22,0,150,1,199,0,27,0,49,0,240,0,19,2,123,1,238,255,5,0,227,255,91,254,63,254, +252,254,169,254,142,255,123,1,58,1,94,0,29,1,87,1,130,0,80,0,73,0,206,255,47,255,94,254,119,254,214,255, +44,0,134,255,56,0,42,1,208,0,186,0,220,0,196,255,50,255,57,0,75,0,231,254,108,254,254,254,120,255,56,0, +238,0,173,0,130,0,70,1,165,1,7,1,53,0,119,255,71,255,177,255,79,255,77,254,125,254,101,255,252,255,208,0, +53,1,182,0,16,1,202,1,250,0,207,255,75,255,191,254,23,255,220,255,32,255,25,255,46,1,131,1,185,255,188,255, +22,1,97,1,8,1,59,0,9,255,155,254,167,254,129,254,194,254,128,255,121,0,51,1,243,0,220,0,150,1,15,1, +201,255,249,255,199,255,85,254,68,254,229,254,214,254,0,0,98,1,188,0,90,0,65,1,99,1,251,0,43,0,172,254, +255,254,188,0,32,0,69,254,17,254,177,254,197,255,76,1,175,1,94,1,46,1,74,0,223,255,85,0,121,255,143,254, +90,255,60,255,123,254,225,255,40,1,156,0,161,0,249,0,210,0,82,1,215,0,237,254,210,254,92,255,54,254,122,254, +35,0,154,255,88,255,88,1,125,1,28,0,229,0,101,1,223,255,212,255,189,0,99,255,247,253,196,254,118,255,35,255, +88,255,249,255,150,0,85,1,48,1,53,0,48,0,180,0,74,0,1,0,57,0,123,255,185,254,124,255,77,0,73,0, +125,0,142,0,51,0,142,0,50,1,236,0,69,0,190,255,23,255,151,254,139,254,4,255,214,255,87,0,191,0,161,1, +227,1,199,0,83,255,68,254,58,254,117,255,35,0,119,255,3,255,1,255,110,255,2,1,189,1,105,0,8,0,45,1, +128,1,94,1,204,0,32,255,198,254,158,255,170,254,50,254,4,0,62,0,77,255,132,0,30,1,16,0,13,1,120,2, +35,1,181,255,212,255,212,255,138,255,241,254,50,254,180,254,149,255,147,255,51,0,68,1,19,1,216,0,101,1,93,1, +188,0,195,255,107,254,3,254,107,254,71,254,107,254,60,255,161,255,26,0,202,0,201,0,43,1,42,2,244,1,11,1, +95,0,13,255,39,254,193,254,3,255,175,254,228,254,244,254,136,255,78,1,160,1,128,0,46,1,113,2,170,1,108,0, +200,255,231,254,92,254,110,254,142,254,250,254,59,255,41,255,69,0,245,1,43,2,172,1,131,1,18,1,224,0,32,1, +39,0,52,254,110,253,53,254,93,255,212,255,45,255,63,254,81,254,121,255,148,0,141,0,64,0,16,1,172,1,214,0, +107,0,217,0,97,0,219,255,245,255,1,255,64,254,120,255,4,0,67,255,233,255,155,0,212,255,103,0,237,1,81,1, +135,0,56,1,152,0,224,254,234,254,136,255,198,254,205,253,11,254,195,255,161,1,113,1,49,0,160,0,176,1,80,1, +186,0,170,0,245,255,45,255,138,255,245,255,33,255,247,253,46,254,182,255,203,0,164,0,38,0,225,255,223,255,93,0, +206,0,113,0,236,255,246,255,30,0,14,0,240,255,167,255,46,255,43,255,12,0,203,0,71,0,171,255,73,0,237,0, +196,0,175,0,90,0,178,255,41,0,201,0,159,255,78,254,148,254,149,255,190,0,28,1,192,255,4,255,79,0,28,1, +231,0,239,0,27,0,15,255,217,255,112,0,94,255,33,255,207,255,204,255,46,0,228,0,99,0,199,255,245,255,189,255, +91,255,163,255,213,255,134,255,91,255,239,255,162,0,9,0,28,255,245,255,12,1,185,0,135,0,44,0,179,254,121,254, +101,255,9,255,60,255,210,0,198,0,236,255,35,0,185,255,200,255,141,1,90,1,158,255,3,0,220,255,33,254,11,255, +197,0,33,0,95,0,67,1,251,255,217,255,84,1,130,0,244,255,51,1,190,255,1,254,81,0,124,1,220,255,192,0, +171,1,8,255,16,254,205,255,158,255,75,255,205,0,233,0,104,0,91,1,218,0,45,255,129,255,223,255,32,255,202,255, +105,0,148,255,78,0,143,1,37,0,229,254,174,255,204,255,129,255,190,255,10,255,1,255,169,0,140,0,77,255,47,0, +213,0,43,0,247,0,69,1,73,255,194,254,204,255,114,255,57,255,178,255,37,255,108,255,210,0,157,0,128,0,220,1, +64,1,33,255,246,254,128,255,152,255,86,0,54,0,57,255,60,0,144,1,130,0,179,255,72,0,152,255,101,254,227,254, +65,255,111,254,241,254,1,1,172,1,161,0,53,0,178,0,160,0,234,255,113,255,156,255,4,0,225,255,165,255,16,0, +197,255,196,254,248,255,79,2,184,1,207,255,236,255,98,0,237,255,240,255,48,0,100,0,205,0,91,0,214,255,142,0, +125,0,96,255,146,255,254,255,198,255,173,0,24,1,187,255,181,255,166,0,226,255,136,255,48,0,64,255,184,254,177,0, +216,1,158,0,80,255,17,255,138,255,183,255,64,255,141,255,19,0,81,255,49,255,82,0,48,0,101,255,106,255,84,255, +238,255,15,1,66,0,149,255,199,0,48,0,217,254,114,0,44,1,131,255,20,0,232,0,206,254,74,254,56,0,140,0, +81,0,144,0,183,255,182,255,196,0,50,0,57,0,165,1,46,0,241,253,104,255,155,0,88,255,240,255,143,1,187,0, +204,255,74,0,62,0,41,0,144,0,211,255,209,254,46,255,211,255,253,255,184,255,114,254,224,253,21,0,40,2,250,0, +62,255,242,255,96,1,31,1,118,255,110,254,112,255,239,0,142,0,12,255,42,254,40,254,125,255,128,1,153,1,51,0, +22,0,200,0,168,0,54,0,203,255,169,255,54,0,6,0,227,254,35,255,108,0,184,0,192,0,33,1,17,1,128,0, +29,255,2,254,184,255,159,1,221,255,83,254,58,0,86,1,107,0,178,0,41,1,36,0,120,255,98,255,227,254,205,254, +98,255,49,0,7,1,151,0,230,254,141,254,37,0,158,1,207,1,234,0,195,255,11,255,153,254,194,254,234,255,170,0, +58,0,5,0,73,0,188,255,175,254,227,254,178,0,220,1,142,0,191,254,222,254,143,255,52,255,53,255,134,0,56,1, +180,255,80,254,235,255,196,1,127,0,132,255,225,0,147,0,51,255,120,0,82,1,169,255,67,255,24,0,3,0,67,0, +36,0,32,255,240,255,192,0,2,255,252,254,88,1,68,1,14,0,117,0,65,0,73,255,219,254,97,254,88,255,133,1, +63,1,211,255,54,0,135,0,109,0,1,1,83,0,52,255,40,0,248,0,12,0,237,254,26,254,208,254,247,0,20,1, +22,0,238,0,218,0,112,255,43,0,236,0,227,255,6,0,43,0,224,254,133,255,14,1,254,255,164,254,207,254,88,255, +46,0,236,255,172,254,211,255,161,1,189,0,7,0,52,0,250,254,248,254,164,0,70,0,77,255,165,255,147,255,18,0, +210,0,49,255,176,254,76,1,172,1,7,0,119,0,96,0,168,254,224,254,62,0,131,0,9,0,1,255,53,255,27,1, +233,0,72,255,253,255,195,0,20,0,101,0,65,0,49,255,117,0,205,1,86,0,81,255,102,255,16,255,56,0,153,1, +138,0,30,0,80,1,24,1,104,0,30,0,144,254,191,253,49,255,56,0,57,0,252,255,47,255,154,255,125,1,157,1, +68,0,223,255,231,255,46,0,186,0,231,255,219,254,196,255,255,0,7,1,123,0,186,255,217,255,194,0,52,0,84,255, +64,0,97,0,19,255,157,255,174,0,128,255,177,254,247,255,218,0,133,0,241,255,71,255,23,255,173,255,41,0,93,0, +110,0,200,255,42,255,236,255,126,0,0,255,236,253,132,255,232,0,59,0,225,255,35,0,195,255,32,0,192,0,253,255, +53,0,120,1,57,0,218,254,35,0,210,255,227,253,254,254,146,0,203,255,207,255,58,0,116,255,8,0,229,0,62,0, +41,1,251,1,125,255,253,254,120,1,50,0,198,253,214,255,107,1,175,255,39,255,196,255,162,255,69,0,196,0,1,0, +30,0,203,0,89,0,219,255,153,255,6,255,79,255,78,0,146,0,31,0,127,255,132,255,136,0,196,0,224,255,4,0, +30,1,157,1,251,0,245,254,186,253,119,255,143,0,13,255,142,255,241,1,125,1,12,0,162,0,223,0,241,255,66,255, +249,254,197,255,77,0,147,254,101,254,253,0,135,0,90,254,37,0,169,1,181,255,197,255,116,1,47,0,121,254,68,254, +38,254,135,255,29,1,229,255,76,255,144,0,194,255,46,255,40,1,197,0,154,254,125,255,154,0,32,0,34,1,58,1, +221,254,192,254,41,0,219,255,241,0,207,2,216,0,49,254,153,254,128,255,126,0,116,1,112,255,127,253,173,255,89,1, +102,0,83,1,107,2,252,255,126,254,151,0,181,1,95,0,89,255,79,255,180,255,250,255,104,255,75,255,109,0,132,0, +158,255,108,0,56,1,178,255,103,255,121,1,248,0,105,254,225,254,103,0,126,255,23,255,67,0,118,0,166,0,50,1, +235,255,171,254,76,255,197,255,191,0,113,2,244,0,70,254,110,255,198,0,36,255,143,254,36,255,122,254,179,254,194,255, +198,255,105,0,215,0,98,255,139,255,55,1,131,0,253,255,57,1,31,0,66,254,53,255,203,255,252,254,113,255,59,0, +34,1,174,2,141,1,159,254,224,254,136,0,102,0,82,0,6,0,191,254,72,255,191,0,22,0,93,255,49,0,109,0, +4,0,132,0,136,1,91,1,91,255,129,254,9,1,160,2,117,0,154,254,148,254,144,254,157,255,14,1,128,0,202,255, +9,0,246,255,223,0,246,1,131,0,122,255,160,0,79,0,96,255,41,0,216,255,210,254,198,255,235,255,102,254,89,254, +225,254,32,255,143,0,83,1,207,0,1,1,29,0,55,254,44,255,244,0,128,0,99,0,82,0,173,254,148,254,165,255, +252,254,106,255,125,1,127,1,161,0,7,0,20,254,243,253,199,0,104,1,101,0,69,1,53,1,149,255,156,255,169,255, +173,254,26,255,114,255,90,254,4,255,111,1,81,2,127,1,143,0,115,0,14,1,20,1,238,0,38,1,11,0,252,254, +116,0,253,0,21,255,95,255,129,1,90,1,11,0,76,255,209,254,148,255,73,0,109,255,182,255,169,0,99,255,0,255, +189,0,63,0,228,254,40,0,241,0,161,255,134,254,243,253,178,254,122,0,211,255,109,254,231,255,192,0,147,255,33,0, +245,0,98,0,232,0,126,0,6,254,30,254,83,255,117,254,172,255,231,1,101,0,9,0,100,2,29,1,86,255,38,1, +148,0,190,254,251,0,60,1,227,253,109,254,68,0,54,255,18,0,114,1,240,255,244,0,34,3,132,0,11,255,118,1, +152,0,195,254,153,0,67,0,192,253,201,254,208,255,198,254,9,0,99,1,119,0,24,1,210,1,209,255,191,254,204,254, +218,253,52,255,216,1,110,0,241,253,184,254,207,255,185,255,13,0,5,0,159,255,209,255,160,255,99,255,97,0,75,1, +78,1,89,1,39,1,132,0,170,0,140,1,58,1,83,255,162,254,4,0,242,255,32,254,82,254,92,255,202,254,68,255, +139,0,213,255,198,255,245,0,55,0,26,0,93,1,132,255,26,254,198,0,177,0,166,253,143,254,90,0,206,255,130,0, +106,0,193,254,152,0,72,2,227,255,147,255,200,0,25,255,255,255,56,3,188,1,209,255,239,0,170,255,97,254,148,0, +235,0,198,255,134,0,204,255,224,254,211,0,241,0,86,255,202,255,8,255,42,254,197,0,210,0,146,254,159,1,221,3, +173,255,249,253,30,0,140,255,187,254,89,255,2,255,240,255,187,0,195,254,104,255,248,1,57,0,115,255,187,2,237,1, +27,254,42,254,217,254,255,253,205,254,181,255,226,255,189,0,155,255,160,253,144,255,57,2,173,1,10,1,46,1,128,0, +136,0,10,1,76,0,196,255,42,0,68,0,61,0,205,255,164,254,217,254,144,0,149,0,37,255,25,0,130,2,155,1, +213,254,67,255,200,0,30,0,177,0,81,2,110,0,40,254,30,255,159,255,177,255,133,1,128,1,206,255,217,255,52,255, +123,254,171,0,195,0,99,254,230,255,248,0,43,254,28,255,162,1,53,255,36,255,247,2,104,1,199,253,137,254,1,255, +129,254,213,255,200,255,11,255,21,0,184,255,72,255,255,0,58,0,168,254,0,1,155,1,239,254,133,255,236,0,96,255, +25,255,164,255,128,254,211,254,1,0,250,255,120,1,154,2,115,0,96,255,53,0,217,255,134,0,181,1,222,255,168,254, +11,0,234,255,44,255,188,255,170,255,194,0,10,3,101,1,111,254,140,255,206,0,175,255,171,255,122,0,223,0,71,1, +224,255,106,254,103,0,141,1,146,255,158,255,87,0,23,254,1,254,208,0,36,0,41,254,26,255,74,255,220,254,26,1, +238,1,2,0,101,0,79,1,171,255,203,255,101,1,31,0,110,255,10,1,29,0,154,254,232,255,93,255,255,252,1,254, +37,0,81,1,56,3,66,2,222,254,35,0,48,2,36,255,132,254,12,2,64,1,119,254,16,255,242,254,34,254,255,255, +96,1,90,1,87,1,151,255,40,255,202,1,206,0,6,254,111,0,224,1,206,254,239,254,205,0,148,255,224,255,235,0, +176,254,22,254,76,255,238,253,156,254,230,1,27,1,30,255,164,255,17,255,35,255,199,0,230,254,108,253,219,0,34,2, +89,0,1,1,229,0,169,255,210,1,63,2,143,254,7,254,183,255,60,255,150,255,245,255,186,254,171,0,100,3,105,1, +187,255,107,0,98,255,225,255,79,2,91,0,245,253,254,255,250,255,233,253,21,0,8,2,108,0,102,0,63,0,29,253, +70,253,13,1,147,1,65,0,183,0,207,0,19,1,185,2,38,2,132,255,98,254,69,253,53,252,167,254,233,0,197,254, +8,254,70,1,1,2,243,255,25,0,220,0,144,0,69,1,187,0,168,253,226,252,184,254,100,255,240,255,136,0,67,255, +78,255,104,1,210,0,57,255,71,0,113,0,110,255,248,0,221,1,39,0,94,0,186,1,40,1,44,1,90,1,143,255, +89,255,120,0,145,254,22,253,39,255,110,0,179,0,216,1,120,0,101,254,216,0,40,3,31,1,213,255,73,0,55,255, +200,254,109,255,69,254,255,253,104,0,27,1,195,255,204,255,56,0,210,255,189,255,177,255,253,255,202,0,96,255,231,252, +48,254,11,1,121,0,2,255,8,0,74,1,74,1,69,1,241,0,154,255,201,254,23,0,146,1,235,255,60,253,69,254, +206,0,77,0,134,255,118,1,188,2,149,1,104,0,27,0,101,0,224,0,105,0,140,255,110,255,131,255,127,0,166,2, +123,2,68,255,79,253,38,254,3,0,199,1,244,1,62,0,231,254,171,254,44,255,207,0,175,1,41,0,169,254,109,254, +31,254,111,254,242,255,59,1,165,1,229,0,123,255,127,255,43,0,176,255,64,0,201,1,119,0,15,254,98,254,65,255, +59,255,56,0,20,1,72,0,40,255,92,254,88,254,153,255,153,0,58,1,113,2,51,2,58,0,117,255,137,255,87,255, +12,0,48,0,193,254,217,254,51,0,229,255,122,255,40,0,85,0,137,0,181,0,188,255,248,255,192,1,113,1,22,0, +79,0,187,255,233,253,166,253,30,254,109,254,85,0,132,2,90,2,242,0,32,0,51,0,221,0,169,0,252,254,241,253, +176,254,89,255,167,254,72,254,157,255,221,0,236,0,168,1,117,2,223,0,84,255,59,0,46,0,253,253,67,253,154,254, +62,0,127,1,89,1,113,0,52,0,245,254,43,253,107,254,199,0,210,0,254,0,0,2,22,1,201,255,29,0,118,0, +125,0,98,0,100,255,2,255,152,255,107,255,30,0,98,2,138,2,152,0,140,255,253,254,244,254,5,0,224,255,10,255, +23,0,161,0,71,255,228,254,47,255,140,255,205,1,11,3,158,0,250,254,129,255,239,254,251,254,229,0,33,1,28,0, +73,0,19,0,106,255,143,255,243,254,128,254,41,0,61,1,222,0,19,1,244,255,178,253,145,254,71,0,19,255,179,254, +37,0,207,255,214,255,168,1,15,1,42,255,6,0,69,1,202,0,153,255,138,253,81,253,161,0,109,1,141,254,227,254, +22,1,74,0,46,0,142,1,89,0,214,255,249,1,40,1,49,254,16,254,254,254,10,0,24,2,240,0,32,253,168,253, +222,0,245,0,56,0,13,1,75,1,79,1,207,1,23,1,236,255,225,255,224,255,159,255,252,255,92,0,133,0,13,1, +46,1,79,0,226,255,157,0,217,0,38,0,20,0,202,255,71,254,181,254,41,1,150,0,91,254,55,255,191,255,200,253, +143,254,108,1,119,1,159,0,155,0,172,255,114,255,18,0,108,255,183,255,134,0,115,254,190,253,112,0,238,255,243,253, +154,0,102,2,23,0,194,255,82,0,89,254,77,254,248,255,248,254,133,254,30,0,248,255,51,0,62,2,13,1,87,254, +99,255,61,0,122,254,85,255,182,1,243,0,159,0,210,2,177,2,159,0,39,0,107,255,241,254,74,1,168,1,103,254, +117,254,216,0,27,0,83,0,52,2,27,0,255,254,150,2,200,1,92,253,245,254,180,1,159,255,175,254,120,255,225,254, +51,0,174,1,8,0,61,0,120,1,217,254,27,254,8,1,93,0,181,254,155,0,145,0,157,254,217,255,53,1,191,0, +249,0,241,255,192,253,91,254,234,255,213,255,237,255,254,255,101,255,50,255,106,254,230,253,251,255,166,1,162,0,38,0, +168,0,252,255,52,255,156,255,148,0,241,0,3,0,97,255,190,255,18,255,154,254,15,0,76,0,145,255,219,0,213,0, +164,254,90,255,74,1,251,0,70,1,112,1,95,255,254,254,227,255,186,254,1,255,192,0,168,255,46,255,4,1,47,0, +240,254,182,0,2,1,9,0,52,1,225,0,48,255,40,1,57,3,39,1,124,255,34,0,177,255,89,254,103,254,89,255, +66,255,63,254,3,255,109,1,138,1,221,255,59,0,78,1,85,0,191,254,51,254,131,254,7,255,95,255,134,0,255,1, +121,1,175,0,182,1,38,1,221,254,135,255,83,1,1,0,21,254,51,254,38,255,46,0,112,0,201,255,35,0,219,0, +111,0,134,0,21,1,51,0,47,255,230,254,80,254,224,254,178,0,111,0,93,254,209,253,225,254,10,0,65,1,129,2, +229,2,182,1,20,0,23,0,102,1,194,1,37,0,146,253,220,252,210,254,173,255,129,254,86,255,151,1,176,1,173,0, +88,255,167,253,25,255,138,2,109,2,172,0,12,0,187,253,123,252,113,255,239,255,56,253,58,255,236,2,88,1,22,255, +188,255,194,255,105,255,6,0,236,255,64,0,158,1,45,1,215,255,66,0,231,0,237,0,53,1,130,0,49,255,167,255, +151,0,210,255,80,255,200,0,15,2,82,1,50,0,89,0,82,0,54,255,23,255,35,0,58,0,38,0,234,0,146,0, +169,255,74,0,39,0,26,254,221,253,199,255,138,0,77,0,83,0,15,0,20,0,143,0,93,0,43,0,9,0,150,254, +5,254,51,0,68,1,139,255,192,254,142,255,191,255,163,255,232,255,136,0,153,1,80,1,54,255,95,254,254,254,25,255, +111,0,3,3,35,3,148,1,208,0,92,255,251,253,244,254,183,255,107,255,185,0,50,1,239,254,235,254,156,1,201,1, +116,0,112,0,115,255,179,253,207,253,88,254,202,254,125,0,178,0,129,254,84,254,47,0,227,0,178,1,40,2,113,255, +111,253,104,255,65,0,146,254,0,255,111,0,63,0,169,0,224,0,241,254,149,254,131,0,112,0,73,255,201,255,101,0, +246,0,215,1,233,0,128,255,5,0,91,0,63,0,48,1,197,0,104,255,155,0,181,1,154,0,0,1,227,1,35,0, +109,255,251,0,194,0,172,255,23,0,63,0,5,0,211,255,105,254,96,254,113,1,97,2,128,255,137,254,241,0,106,2, +110,1,176,255,64,254,87,253,118,253,216,254,16,0,96,255,153,253,29,253,3,255,199,1,98,2,255,0,212,0,24,1, +90,255,66,254,39,255,16,255,25,255,171,0,201,255,67,253,109,254,36,1,212,1,75,2,85,1,196,253,75,253,0,1, +29,2,163,255,66,254,17,255,125,0,228,0,179,255,96,255,182,0,153,0,102,255,60,0,155,1,47,1,144,0,164,0, +206,0,142,1,207,1,223,255,56,254,121,255,72,1,26,1,2,0,192,255,194,0,154,1,94,0,234,254,15,0,74,1, +173,0,65,1,6,2,100,255,72,253,237,254,188,255,67,255,5,1,15,2,176,0,202,0,97,1,44,0,238,255,228,255, +210,253,52,253,32,254,87,253,40,254,68,1,224,0,6,255,87,0,29,0,54,253,228,253,105,0,179,255,243,254,90,0, +169,0,206,255,94,255,177,254,190,254,202,255,235,254,114,253,194,255,224,2,113,1,168,254,11,255,98,0,240,0,109,1, +255,255,119,253,113,254,158,1,189,2,144,2,104,1,26,255,120,255,101,1,208,255,135,254,224,0,238,0,227,254,218,255, +242,255,252,253,4,0,224,2,159,1,56,1,181,1,216,254,27,254,201,1,233,2,250,1,35,2,161,255,224,252,58,255, +252,0,44,255,254,255,26,2,24,1,220,0,183,1,237,255,84,255,240,0,245,254,118,252,137,254,89,255,83,253,189,254, +236,0,170,255,199,255,254,0,174,254,116,253,222,255,16,0,245,254,49,0,162,255,72,253,47,254,220,255,172,255,129,0, +59,1,107,0,218,0,199,0,61,254,193,253,145,255,187,255,225,255,187,0,239,255,196,255,5,1,99,0,201,255,82,1, +110,1,36,0,26,0,253,255,62,0,74,2,10,3,171,1,201,0,235,255,36,255,213,255,16,0,3,0,247,1,168,2, +242,255,32,254,141,254,115,255,97,1,143,2,147,0,146,254,199,254,0,255,236,254,131,255,64,0,65,1,19,2,126,1, +139,0,18,0,107,255,112,255,238,255,190,254,115,253,233,254,237,0,181,0,149,255,50,255,143,255,64,0,42,0,9,255, +83,254,111,254,160,254,118,255,225,0,251,0,246,255,236,255,34,0,38,255,196,254,212,255,68,0,231,255,8,0,98,0, +249,0,148,1,160,0,76,255,238,255,223,0,170,0,142,0,221,255,144,254,82,255,1,1,217,0,168,0,76,1,169,0, +136,255,55,255,46,255,165,0,48,3,40,3,243,0,140,255,123,254,217,253,60,255,241,0,34,1,205,0,14,0,182,254, +89,254,92,255,137,0,53,1,42,1,222,0,210,0,217,255,155,253,183,252,153,254,50,1,97,2,201,1,147,255,239,252, +90,252,34,254,90,255,252,254,246,254,81,255,46,255,7,0,136,1,159,0,160,253,34,252,192,253,195,0,249,1,18,1, +55,1,249,1,108,0,13,255,88,0,68,1,19,1,80,1,55,0,129,254,3,255,115,255,188,254,197,255,2,1,163,0, +60,1,144,1,240,255,102,0,89,2,48,1,235,255,48,1,21,1,7,0,175,0,57,0,189,254,212,255,53,1,95,0, +26,0,210,0,189,0,204,0,245,0,68,0,51,0,217,255,219,252,58,251,149,254,81,1,168,255,195,254,42,0,171,255, +167,254,224,255,50,0,129,255,72,1,183,2,63,1,81,0,101,255,165,252,2,253,254,0,73,2,89,1,51,1,36,0, +17,0,80,2,110,1,237,254,95,1,233,3,104,1,57,255,37,254,210,251,184,253,245,2,158,2,162,255,203,0,150,1, +117,0,229,1,135,2,94,0,34,1,140,2,185,255,170,254,227,0,113,255,79,253,51,255,65,255,129,253,106,255,196,255, +129,252,185,253,8,1,96,255,218,253,211,254,209,253,184,253,18,255,136,252,1,251,139,254,62,255,177,253,126,0,188,1, +233,254,174,255,173,1,8,0,249,255,78,1,183,255,61,255,60,0,72,254,92,253,206,255,201,0,55,1,192,2,173,1, +216,255,125,0,84,0,254,255,32,2,72,2,4,0,214,0,216,2,107,2,80,2,183,2,136,1,37,1,102,2,136,2, +12,1,228,254,193,253,43,0,145,3,167,2,61,255,104,254,138,255,208,255,89,255,81,255,69,0,238,1,131,2,135,0, +191,253,191,253,175,0,120,2,9,1,54,255,54,255,148,255,26,255,141,254,116,254,226,254,253,255,244,0,194,0,50,0, +50,0,134,255,140,253,215,252,37,255,165,1,26,1,253,254,180,254,8,0,132,0,25,0,2,0,198,255,42,255,26,255, +100,255,242,255,226,1,112,3,227,0,163,251,136,249,141,252,184,0,148,2,10,3,252,2,28,1,20,255,192,255,97,0, +99,254,70,253,92,254,234,254,112,255,235,0,17,2,31,3,4,3,13,0,11,254,199,254,53,254,161,253,143,255,66,255, +222,252,248,253,227,255,125,255,83,0,231,1,31,2,189,2,226,1,9,255,216,254,248,254,201,252,116,254,187,1,3,255, +234,252,15,0,102,0,211,254,224,0,158,1,176,0,180,2,217,2,11,0,93,0,185,0,36,255,71,1,238,2,78,255, +131,254,74,1,129,0,83,0,243,2,121,1,43,255,80,1,101,1,3,255,106,0,83,1,2,255,184,255,163,1,201,255, +228,254,218,0,79,1,34,1,85,1,160,255,149,254,33,0,119,0,97,255,34,255,151,254,210,254,53,1,15,2,171,0, +38,0,110,255,78,254,103,255,107,0,87,255,243,254,189,254,178,253,200,254,73,0,250,254,95,254,93,255,253,254,125,255, +162,0,124,254,111,253,171,0,122,1,33,255,204,254,96,254,23,253,154,254,230,255,194,254,132,255,236,0,122,255,210,254, +150,0,202,1,79,2,34,2,134,0,99,255,37,255,133,255,37,2,83,4,191,2,47,1,64,1,105,255,99,253,125,254, +181,0,83,2,124,2,67,0,225,254,212,255,192,255,19,0,86,3,170,4,14,2,27,0,96,255,186,254,226,255,36,1, +88,0,109,0,201,1,232,0,91,254,2,253,25,253,230,253,223,254,150,255,157,255,51,254,233,252,44,254,138,255,221,254, +201,255,2,2,240,255,233,251,69,252,145,254,38,255,147,0,92,2,184,0,192,253,150,253,96,255,154,0,163,0,167,0, +181,1,95,1,2,254,141,252,123,255,44,1,32,0,150,0,243,0,164,254,13,254,0,1,113,3,231,3,195,2,82,0, +175,255,154,1,196,1,148,255,38,255,124,1,186,3,96,3,78,1,193,0,129,1,201,0,163,255,181,255,145,255,35,255, +2,255,188,254,205,255,96,1,245,255,187,254,47,1,249,1,195,255,186,255,188,255,156,253,157,254,53,1,161,255,225,253, +94,255,43,0,54,0,19,1,180,0,73,0,7,1,201,255,213,253,97,254,191,254,160,254,218,0,190,1,8,255,120,254, +176,0,45,0,35,254,192,254,149,0,166,1,25,2,2,1,55,255,126,255,150,0,152,255,38,254,211,254,210,0,100,2, +3,2,179,255,255,254,241,0,134,1,207,0,210,1,111,1,14,254,145,253,196,0,59,2,184,1,196,0,119,254,225,252, +137,253,149,254,158,0,23,3,88,2,184,0,13,1,34,255,74,252,164,254,214,1,181,0,187,255,86,255,133,252,85,252, +94,0,183,1,87,0,219,0,130,1,203,0,224,255,64,253,162,250,147,252,91,0,196,1,65,2,242,0,238,252,154,252, +34,1,91,2,96,0,170,1,1,3,62,0,117,254,250,255,24,1,9,1,45,0,175,254,25,255,158,0,58,0,111,0, +129,2,204,2,9,2,162,1,179,254,252,251,2,254,126,0,238,0,23,2,134,1,253,254,217,255,45,1,31,255,235,255, +102,3,213,1,103,254,139,254,88,254,67,253,174,254,51,0,189,0,17,2,98,1,77,254,87,253,215,253,180,253,172,255, +135,2,127,1,49,255,6,0,159,0,52,254,108,253,154,0,184,2,238,0,207,254,220,254,131,255,143,255,217,255,99,1, +218,2,57,1,135,253,159,252,165,254,227,255,85,0,38,1,106,1,41,1,105,0,0,255,240,254,192,255,196,254,234,254, +107,2,116,3,245,255,36,254,18,0,220,1,117,1,29,0,46,0,24,1,216,255,43,254,205,254,165,254,51,254,235,1, +152,4,179,0,177,253,224,255,5,1,72,0,19,1,75,1,25,0,153,255,193,254,1,254,208,255,169,1,226,0,224,255, +195,255,157,255,21,0,51,0,76,254,189,252,160,253,75,255,149,0,12,1,243,255,93,255,163,0,174,0,165,255,112,1, +48,3,59,0,12,253,242,253,72,255,105,255,116,0,57,1,163,0,5,0,12,255,85,254,199,255,130,1,197,1,246,1, +34,1,94,254,100,253,219,255,75,2,37,2,25,0,231,254,5,0,193,0,167,255,57,255,155,255,149,255,88,0,83,1, +199,1,56,3,10,3,40,255,51,253,176,254,165,254,93,254,20,0,152,0,17,1,247,2,175,1,247,254,56,0,20,1, +91,254,26,253,23,254,241,254,39,0,66,0,92,255,142,0,45,1,52,255,94,255,27,1,51,0,40,255,26,255,249,253, +167,254,55,1,31,1,98,0,29,1,245,255,11,255,6,1,176,0,45,254,1,255,47,0,65,255,221,0,245,2,187,0, +193,254,147,255,225,254,234,253,197,255,69,1,45,1,52,1,179,255,211,253,208,255,211,2,76,2,87,0,114,254,65,252, +29,253,235,0,131,2,59,2,163,2,243,1,51,1,86,2,7,1,198,252,184,251,60,253,61,253,231,253,217,255,148,0, +225,1,203,3,124,2,6,0,146,0,241,1,154,1,38,0,204,253,46,252,63,253,238,254,52,255,165,255,57,1,134,2, +108,2,111,1,169,0,225,255,133,254,220,253,212,254,56,0,141,0,68,255,190,253,74,254,215,255,44,0,101,0,147,0, +70,255,137,254,255,254,63,254,117,254,99,1,132,2,218,0,61,255,251,252,15,252,125,255,8,2,38,1,91,2,9,4, +25,1,227,253,10,254,20,255,28,1,82,3,49,2,117,255,175,253,63,252,137,253,252,1,62,4,192,3,35,3,49,0, +26,252,94,252,98,255,3,1,28,2,149,2,54,2,0,4,200,5,125,2,55,254,118,254,36,255,102,253,107,253,40,255, +44,255,202,255,113,2,197,2,203,0,214,0,66,1,251,254,246,252,75,253,176,253,59,253,32,253,138,254,151,1,66,3, +242,0,124,253,101,252,3,254,165,1,36,4,38,2,216,254,73,254,85,254,113,253,140,253,165,254,112,0,44,3,163,3, +236,255,94,252,243,252,139,0,192,3,224,3,131,1,136,255,23,254,75,252,76,252,23,255,199,1,225,2,100,3,163,2, +72,0,153,255,201,1,46,2,247,254,98,253,140,255,77,1,49,1,169,0,111,255,219,254,138,0,153,1,221,0,69,1, +169,1,44,255,221,252,255,253,99,0,88,1,247,0,101,0,239,255,37,255,245,254,45,0,171,0,203,255,247,255,155,0, +205,255,254,254,194,254,54,254,203,254,115,0,11,1,56,1,122,1,253,0,106,1,30,2,170,255,45,253,214,254,252,255, +163,253,23,253,255,255,3,2,153,1,230,255,235,253,115,253,189,254,203,255,46,0,149,0,128,0,220,0,49,3,46,4, +38,0,225,251,234,252,18,255,78,254,124,254,125,0,207,0,181,0,67,1,82,0,249,255,21,1,124,255,228,253,148,0, +73,1,2,254,108,254,232,0,158,255,175,255,33,3,203,2,62,255,90,254,52,255,197,255,77,0,27,0,105,0,128,1, +8,0,20,254,83,0,98,2,32,0,189,254,247,255,123,255,185,254,134,0,153,1,232,0,111,1,38,2,15,1,168,255, +33,254,66,252,144,252,229,254,184,0,181,2,14,4,177,1,27,255,233,0,189,2,112,0,100,253,96,252,81,253,179,255, +191,0,230,255,195,0,121,2,93,1,72,255,193,254,33,255,60,0,201,0,211,255,209,255,190,255,24,253,229,252,123,0, +67,0,13,254,80,1,72,4,90,1,60,255,87,255,24,253,119,252,201,255,35,1,227,0,184,2,108,2,242,254,75,254, +156,255,218,254,117,255,174,2,89,3,64,1,160,255,66,254,125,254,239,0,175,0,145,254,135,0,88,2,229,255,212,0, +219,4,116,2,9,254,11,255,14,255,128,252,236,253,254,255,17,255,192,255,5,1,93,0,72,1,223,1,11,0,121,1, +165,3,252,255,100,253,135,255,120,254,14,252,111,254,162,0,193,0,102,2,145,2,255,0,118,1,246,255,93,252,37,254, +111,1,157,255,93,255,20,3,16,3,243,255,156,254,142,253,14,253,153,254,74,255,250,254,63,255,31,254,129,253,194,0, +18,3,118,1,172,0,14,1,74,0,130,1,27,5,162,6,43,4,36,252,52,241,20,239,82,248,90,0,197,2,96,4, +167,2,123,253,225,252,221,0,247,3,36,6,7,6,41,2,238,253,217,248,108,243,6,246,203,254,232,2,188,4,111,7, +97,3,221,252,4,255,196,3,54,4,143,4,217,2,235,253,116,254,201,2,82,2,157,1,167,4,87,5,85,3,140,1, +103,254,81,253,251,1,54,6,39,6,133,5,125,4,52,1,143,253,79,251,254,251,20,1,129,6,38,6,223,0,68,252, +74,250,237,248,131,248,9,252,169,1,70,3,37,0,19,253,145,252,6,254,178,0,186,3,127,5,246,3,164,255,38,252, +29,250,198,247,108,248,159,254,17,4,172,3,9,1,118,255,111,254,114,254,102,255,38,255,183,253,47,253,157,253,116,253, +68,253,1,255,193,1,235,2,159,2,215,1,94,0,67,255,229,254,229,253,87,254,250,1,186,3,241,0,231,254,210,255, +17,1,113,2,3,3,180,0,245,254,226,0,99,2,10,1,11,0,233,255,24,255,135,255,96,1,247,0,49,255,16,0, +98,1,18,0,132,255,193,0,32,0,165,255,46,2,180,2,76,255,159,253,148,254,255,254,95,255,202,255,156,255,98,0, +202,0,102,255,233,255,220,1,77,0,76,254,122,0,99,2,237,0,166,255,81,255,131,254,225,254,126,0,30,0,64,253, +142,251,29,253,103,255,127,0,2,2,111,3,50,2,230,255,72,255,93,255,241,254,225,253,189,252,59,254,179,1,2,2, +252,255,107,0,109,1,103,0,235,255,39,0,81,255,9,255,220,255,244,255,48,255,230,253,6,253,218,254,242,1,140,2, +100,1,163,0,142,255,113,254,16,255,58,0,160,255,216,254,190,0,209,2,50,1,134,255,246,1,51,3,76,255,128,252, +230,254,181,2,169,4,178,3,3,0,183,252,162,251,20,252,92,254,165,0,219,255,143,254,186,255,25,1,20,2,159,3, +98,3,109,1,251,255,67,253,52,250,35,252,3,1,43,3,193,3,208,2,167,253,137,250,154,255,231,4,199,3,90,2, +253,2,60,0,41,252,176,252,106,255,144,0,24,1,11,1,40,0,132,255,78,254,175,253,158,0,69,3,252,1,207,1, +81,3,76,0,39,252,238,253,86,1,8,1,120,255,201,254,89,255,60,1,124,1,122,255,215,254,68,255,163,254,224,254, +34,0,244,255,94,255,165,255,111,255,137,255,115,1,49,3,177,2,29,1,129,0,55,1,132,1,158,255,51,252,136,250, +46,253,176,1,169,2,54,0,123,255,92,1,110,2,146,1,202,255,139,254,203,255,152,2,186,2,222,254,175,250,21,250, +16,253,119,0,188,1,3,1,37,0,133,0,2,1,210,255,248,253,228,252,154,252,59,254,228,0,54,1,53,1,76,3, +65,2,195,253,7,253,126,254,174,253,158,254,240,0,11,0,40,0,224,2,136,2,36,1,87,1,26,255,167,253,188,0, +198,1,156,0,241,1,126,0,170,252,198,254,115,1,5,255,214,255,160,3,78,2,250,255,237,255,237,253,131,253,104,1, +102,3,40,3,39,3,60,0,29,253,146,254,10,0,185,255,213,0,163,255,172,251,149,252,206,0,116,1,250,0,69,1, +20,255,240,252,228,253,202,254,230,255,141,3,191,5,216,3,165,0,111,253,84,252,179,255,197,1,229,254,211,254,143,2, +50,1,129,253,80,255,106,1,111,255,215,253,140,252,165,251,213,255,17,4,204,1,236,255,133,1,78,0,218,254,225,0, +94,0,186,253,84,255,193,1,209,255,168,251,110,249,70,253,188,4,211,5,110,1,189,0,142,0,158,252,117,252,157,0, +108,1,191,0,233,1,255,0,143,254,189,254,79,0,102,1,33,2,168,1,82,0,135,255,165,255,227,0,103,2,202,2, +24,2,228,255,55,253,3,254,44,1,121,1,243,255,204,255,186,255,140,255,11,0,224,255,12,0,127,1,115,1,239,255, +201,254,255,252,176,252,54,0,83,2,134,0,134,255,149,255,23,255,182,0,180,2,67,1,207,255,70,0,222,254,83,252, +76,252,101,254,57,1,204,2,176,0,236,253,231,254,98,1,253,1,97,1,85,0,210,255,110,1,189,2,112,0,87,253, +77,253,156,254,107,255,15,1,33,2,15,0,214,253,179,254,145,0,27,2,250,2,19,0,187,251,9,253,56,1,66,1, +253,255,83,0,39,255,120,254,208,0,94,1,142,255,148,255,78,255,183,253,215,254,92,0,22,255,168,255,42,2,242,0, +119,254,63,255,247,255,34,255,255,255,113,1,155,0,51,255,83,255,90,0,41,1,227,0,105,255,88,254,82,255,75,1, +196,1,178,0,8,0,198,255,115,255,74,0,115,1,0,1,241,0,55,2,90,1,239,254,61,255,10,1,62,1,163,0, +100,255,167,253,2,254,169,255,203,255,27,0,69,1,136,0,82,255,164,255,244,254,110,254,177,1,164,4,199,2,176,255, +108,254,6,254,84,254,183,254,57,255,160,1,237,2,14,0,111,254,125,0,197,0,49,0,33,2,223,1,25,255,45,255, +236,254,240,252,27,0,52,4,156,0,157,252,209,253,185,253,101,254,149,3,205,3,52,254,195,253,147,255,10,253,204,252, +201,255,93,255,41,255,230,1,44,2,197,1,234,2,33,0,47,253,169,0,240,1,78,253,70,253,132,0,87,254,146,252, +236,255,119,1,188,0,220,1,122,2,35,2,255,1,158,255,88,254,60,1,62,0,231,250,33,252,69,1,93,1,76,1, +107,3,137,1,107,255,150,1,129,1,205,254,192,254,84,254,143,253,238,0,139,2,6,255,31,255,165,2,117,1,229,254, +172,255,221,255,42,255,253,255,89,0,130,0,133,1,160,0,69,255,110,0,27,0,190,253,99,255,252,2,63,2,57,0, +219,0,181,0,248,254,164,255,252,1,213,1,110,255,191,253,155,253,143,254,201,255,229,255,177,255,51,1,72,2,42,0, +249,253,209,254,110,0,54,1,144,1,92,0,47,254,159,253,79,254,250,254,191,255,219,255,166,255,132,0,106,0,237,253, +163,252,103,254,207,0,122,2,239,2,110,1,75,255,66,254,18,254,87,254,11,255,191,255,145,0,212,1,59,2,76,0, +118,254,72,0,51,2,34,255,129,252,103,255,146,0,87,253,253,253,176,1,83,1,64,0,164,1,9,1,245,254,3,255, +78,0,227,1,167,1,43,254,95,253,151,0,103,0,220,254,156,1,170,2,191,255,212,254,169,254,176,254,159,2,248,3, +54,255,146,254,66,2,175,1,236,0,252,2,69,1,22,254,156,254,249,254,131,255,170,2,150,2,23,255,178,254,69,255, +232,254,208,1,249,3,136,0,98,254,172,255,226,253,17,252,75,255,121,0,155,252,227,251,46,255,135,0,12,1,39,2, +10,1,0,0,220,0,64,255,53,253,169,255,6,1,204,254,181,255,45,1,53,254,253,253,192,1,169,1,139,0,242,1, +157,0,194,254,52,0,132,255,44,254,138,0,51,0,45,254,188,1,15,3,220,254,67,0,111,3,42,255,225,252,89,0, +226,0,14,1,229,2,55,0,33,255,3,4,65,3,21,254,70,0,38,3,211,255,95,255,49,2,236,0,159,255,37,1, +81,0,54,254,244,253,55,253,13,253,144,255,200,0,185,255,53,0,180,0,181,254,82,254,80,1,177,2,216,0,94,255, +57,255,232,254,38,254,89,253,247,253,154,0,160,1,87,255,229,253,108,254,100,254,32,255,242,0,192,0,246,255,123,0, +138,255,26,254,16,255,232,255,50,0,195,1,11,1,31,254,175,254,204,0,182,0,47,1,2,1,16,254,207,253,73,0, +239,255,71,0,203,3,120,4,42,3,193,3,146,1,241,252,65,253,91,0,128,0,212,255,49,0,77,0,98,0,210,255, +22,255,174,0,217,1,130,255,99,254,76,0,46,0,234,254,142,0,244,1,186,0,72,0,137,0,25,255,52,254,58,255, +189,255,102,255,16,255,112,254,45,255,114,1,137,1,231,255,241,255,121,255,230,253,150,255,120,1,134,254,25,253,154,0, +56,1,167,254,24,255,154,255,14,254,88,255,103,1,250,255,72,255,196,0,35,1,249,1,207,2,218,255,76,253,253,254, +226,255,43,255,132,0,58,1,79,0,118,1,39,2,195,255,176,254,123,255,231,255,87,2,236,3,245,254,120,250,129,253, +163,0,190,255,193,0,243,2,208,1,212,255,242,254,113,254,241,255,7,2,123,1,182,0,225,0,143,255,79,255,144,1, +89,1,1,255,32,255,183,255,187,254,157,254,50,255,216,255,5,1,207,255,212,252,110,253,198,255,205,255,103,0,140,1, +12,0,53,255,83,0,92,255,85,254,33,0,58,1,25,1,51,1,33,255,1,253,230,254,213,0,74,0,199,0,56,1, +234,255,8,0,144,0,36,255,113,255,111,1,147,0,64,255,163,0,88,1,172,0,7,1,224,0,232,255,95,0,39,0, +5,254,118,254,155,1,190,1,167,254,51,253,196,254,83,1,149,2,181,1,201,0,200,0,208,255,86,255,45,1,23,1, +144,254,104,255,17,1,71,254,73,253,25,1,238,1,216,255,20,0,218,255,75,255,162,1,66,1,103,253,101,254,70,1, +85,255,71,254,94,0,72,0,25,0,196,1,41,1,177,255,65,0,162,0,217,0,219,0,221,254,70,254,228,255,248,254, +35,254,160,0,248,0,52,255,46,0,219,0,190,255,54,0,87,0,96,255,245,255,184,255,7,255,68,1,114,1,22,254, +160,254,212,0,87,255,142,255,157,1,174,255,51,254,242,255,78,255,116,254,45,1,41,2,146,0,160,0,117,0,98,255, +15,0,95,0,90,255,163,255,209,255,220,254,48,255,151,255,26,255,124,0,240,1,144,0,232,255,242,0,27,0,50,255, +107,0,30,0,115,254,108,255,208,0,59,0,233,0,31,2,121,0,52,255,12,0,17,255,85,254,77,1,103,2,231,255, +222,255,213,0,130,255,93,0,62,2,60,0,249,254,234,255,217,253,49,253,251,0,27,1,196,254,158,0,71,1,85,255, +178,0,225,0,240,253,88,255,189,1,114,0,138,1,50,2,159,253,33,253,252,0,240,255,12,255,194,0,222,253,90,253, +58,3,51,2,214,252,3,0,214,3,188,1,41,1,250,255,137,252,176,254,41,1,113,253,120,253,146,1,86,0,145,255, +155,2,200,0,40,254,50,1,76,1,210,253,104,255,96,1,68,255,153,255,228,0,133,254,61,254,150,0,131,255,192,254, +93,1,121,1,47,0,25,2,42,2,224,254,232,254,235,0,238,255,248,254,126,255,234,254,78,255,1,1,248,255,115,254, +19,0,104,1,113,1,109,2,55,1,157,253,168,253,2,0,148,255,53,255,172,0,102,0,96,255,174,255,32,255,167,254, +39,0,122,0,70,255,209,255,140,0,138,255,56,255,23,0,160,0,7,1,245,0,6,0,176,255,113,0,54,1,84,1, +232,0,191,0,67,0,36,254,10,253,115,255,158,1,150,0,228,254,112,254,26,255,98,0,204,0,211,0,205,1,180,1, +15,0,132,255,137,255,48,255,216,255,212,255,56,254,156,254,150,0,186,0,162,0,89,1,94,0,183,254,115,254,98,254, +35,255,157,1,32,2,134,255,247,254,172,1,88,2,1,0,42,255,5,0,136,255,208,254,180,255,167,0,173,0,85,0, +77,0,116,1,235,1,42,255,118,252,75,253,253,254,102,255,93,255,6,255,120,255,253,0,55,1,19,1,70,2,234,1, +36,0,91,0,180,0,239,255,200,0,90,1,59,255,197,253,83,254,99,255,241,0,49,1,239,255,190,0,126,1,252,254, +170,254,124,1,111,0,42,254,176,0,15,2,49,255,95,255,197,1,91,255,180,251,228,252,183,255,95,0,75,0,34,1, +131,2,118,2,15,0,104,254,90,255,202,255,184,254,196,254,181,255,223,255,253,255,150,0,12,1,248,0,57,0,50,0, +128,1,221,0,9,254,174,254,121,2,61,2,119,254,156,253,35,255,118,255,209,255,203,0,148,0,29,0,140,0,165,0, +121,0,110,0,195,255,226,255,125,1,97,1,41,255,117,254,123,255,169,255,177,254,57,254,143,255,78,1,82,1,72,1, +15,2,223,0,44,255,236,255,69,0,144,255,100,0,58,0,208,254,18,0,212,0,132,254,5,254,251,254,36,255,164,1, +183,2,45,254,21,253,203,1,56,2,111,255,155,255,235,254,99,253,116,255,72,1,194,0,58,1,233,0,38,255,144,255, +84,0,244,255,96,1,226,1,28,255,85,254,219,255,95,255,32,255,64,0,190,255,168,255,234,0,240,255,27,255,247,0, +71,1,117,0,75,1,40,0,1,254,130,255,119,0,249,254,76,0,239,1,99,0,103,0,77,1,156,255,161,255,121,1, +125,0,48,255,39,255,77,254,26,255,200,0,163,255,135,255,96,1,116,0,41,0,101,2,135,0,13,253,227,254,250,0, +20,255,1,254,234,254,88,255,192,255,118,0,213,0,146,0,194,255,255,255,71,1,1,1,214,255,16,0,12,0,100,254, +117,253,200,254,101,0,58,0,138,255,31,0,169,0,69,0,8,0,129,255,22,255,84,0,179,0,180,254,127,254,200,0, +143,1,128,0,172,255,210,255,232,0,29,1,141,255,92,254,122,254,183,255,194,1,227,1,37,0,87,0,88,1,165,0, +122,0,168,0,138,255,109,255,208,255,205,254,10,255,199,255,178,254,20,0,21,3,64,1,11,255,87,1,115,1,11,255, +78,0,34,1,235,254,95,255,210,255,152,252,98,253,86,2,5,2,25,255,247,255,108,0,146,255,93,1,59,2,39,0, +172,255,5,0,234,254,61,255,246,255,165,254,1,255,46,1,238,0,146,0,203,1,16,0,114,253,176,255,67,2,114,0, +85,255,75,0,191,254,144,253,128,0,255,1,206,255,78,255,74,0,174,255,119,255,174,255,41,255,132,0,254,1,68,0, +145,255,139,0,199,254,27,254,107,0,130,255,159,254,102,2,61,2,148,253,168,254,164,1,233,255,39,0,128,2,248,255, +83,253,4,255,168,255,105,255,97,1,134,1,105,255,73,255,170,255,138,255,249,0,233,0,202,254,16,0,60,2,159,0, +107,0,249,1,63,255,118,253,142,0,26,0,41,253,186,255,227,1,44,255,195,254,199,0,234,0,64,1,170,1,19,1, +36,1,89,255,183,252,245,254,54,1,209,254,210,254,30,1,233,255,140,255,87,1,50,0,93,255,226,0,215,255,96,254, +199,255,3,0,190,254,215,254,67,255,110,0,218,2,254,2,141,0,44,255,81,255,69,255,59,255,117,0,167,1,68,0, +234,254,174,0,255,0,62,254,114,254,170,0,232,255,95,255,192,0,95,0,10,0,71,1,50,0,26,254,83,254,70,254, +54,254,189,0,193,1,161,255,145,255,235,0,58,0,130,0,85,1,144,254,16,253,127,0,186,1,119,255,142,255,244,255, +210,254,39,0,93,1,169,255,0,0,132,1,11,0,249,254,188,254,113,253,174,255,51,3,49,1,184,255,91,2,66,1, +216,254,89,1,24,2,67,255,112,255,180,255,97,253,136,254,235,1,97,1,122,255,203,255,130,0,176,0,158,0,244,255, +123,255,249,255,224,0,71,1,154,0,111,255,3,255,218,255,36,1,205,0,5,255,84,255,59,1,111,0,191,254,190,255, +88,0,128,255,189,0,186,1,182,255,16,255,119,0,246,255,120,255,126,0,178,255,120,254,109,255,227,255,212,255,78,0, +88,254,190,252,44,0,150,2,67,0,132,255,193,0,48,0,88,0,63,1,242,255,237,254,240,254,242,253,235,254,37,2, +83,2,4,0,112,255,6,0,52,0,119,0,51,1,118,1,169,255,218,253,165,255,214,1,121,0,53,255,252,255,168,255, +4,255,35,0,229,0,61,0,228,255,144,0,26,1,234,255,95,254,102,255,33,1,126,0,85,255,249,254,138,254,130,255, +110,1,214,0,66,255,12,0,154,0,251,254,126,254,183,255,198,255,79,255,10,0,207,0,238,0,74,0,202,254,219,254, +77,0,80,255,154,254,133,1,245,1,238,254,93,255,129,0,197,254,227,255,172,1,209,254,22,254,33,1,232,0,176,255, +121,0,90,0,8,1,189,1,72,255,31,255,96,1,140,255,144,254,148,0,165,254,183,253,97,1,95,0,35,254,250,1, +193,2,166,255,87,1,253,1,198,254,149,255,201,0,74,254,97,254,117,255,118,254,120,0,72,2,75,255,205,254,227,1, +165,1,52,0,183,0,126,0,235,255,108,255,66,254,102,255,50,1,177,254,193,252,8,0,69,2,200,0,64,0,216,0, +176,0,179,0,124,0,177,255,40,255,115,254,6,255,127,1,220,0,26,253,126,253,19,1,176,1,24,1,114,1,117,0, +66,255,93,255,60,255,49,255,35,255,104,254,139,255,149,1,5,1,253,0,160,2,250,0,79,254,93,255,134,0,234,255, +42,0,20,0,46,255,85,255,137,255,156,255,238,255,236,254,24,255,71,2,227,2,35,0,167,255,62,0,95,255,172,255, +42,0,64,255,50,0,191,1,49,0,45,255,23,1,100,1,50,255,118,254,227,255,44,1,203,0,94,255,0,255,154,255, +116,255,117,255,121,0,160,0,235,255,47,0,149,0,247,255,119,255,147,255,152,255,128,255,3,0,48,1,202,0,237,253, +255,252,127,255,12,0,131,254,229,255,219,1,127,0,239,254,75,255,36,0,202,0,101,0,231,255,156,0,200,255,129,254, +0,1,161,2,0,0,119,255,107,1,28,1,33,0,2,255,73,254,235,1,12,4,25,255,14,253,106,0,173,255,47,254, +206,0,142,0,169,254,250,0,12,2,157,255,241,254,223,255,226,0,181,1,21,0,121,254,226,255,87,0,3,255,106,255, +69,0,79,0,169,0,31,0,39,255,193,255,54,0,169,255,199,255,29,0,250,255,221,255,122,255,84,255,28,0,237,0, +44,1,130,0,0,255,146,254,168,255,40,0,186,255,129,255,212,255,139,0,167,0,210,255,160,255,95,0,194,0,126,0, +189,255,16,255,116,255,80,0,137,0,219,255,89,254,228,253,240,255,145,1,178,0,5,0,27,1,236,1,151,0,11,254, +167,253,66,0,24,2,72,1,137,255,11,254,29,254,249,255,179,0,8,0,173,0,155,1,65,1,67,1,18,1,22,255, +194,253,9,255,178,0,203,0,13,0,193,255,1,0,15,0,242,255,124,0,24,1,38,0,184,254,171,255,119,1,83,0, +166,254,30,0,84,1,7,0,232,255,191,0,135,255,172,254,29,0,193,0,87,255,100,254,227,255,40,2,68,1,121,254, +25,255,151,1,9,1,47,255,188,254,217,254,196,255,236,0,114,0,171,255,121,255,159,254,158,254,230,255,167,255,239,254, +54,0,49,1,83,0,132,255,146,255,83,0,66,1,19,1,97,0,245,255,157,254,186,253,116,255,67,1,40,1,179,0, +39,0,246,255,217,0,113,0,138,255,47,1,77,1,162,254,190,255,148,1,97,254,37,254,112,2,232,0,52,253,80,255, +208,0,171,255,218,0,24,1,182,255,93,0,173,255,86,254,66,0,20,0,35,254,199,0,209,1,118,254,76,255,146,1, +203,255,253,255,137,1,102,255,67,254,142,255,188,255,64,0,71,0,180,254,71,255,145,0,127,0,220,1,100,1,251,253, +7,255,221,1,108,0,112,0,49,2,43,0,115,255,220,1,116,1,75,0,43,0,55,254,61,254,69,0,157,254,245,253, +26,1,177,0,29,255,70,1,108,0,236,253,178,1,70,4,215,255,177,253,115,255,243,254,181,254,225,255,31,255,103,255, +24,1,173,255,198,254,163,0,83,255,92,253,235,255,247,0,109,255,38,1,244,1,86,255,231,255,195,1,45,0,132,255, +118,0,32,0,171,0,169,0,136,254,73,255,113,1,55,0,147,255,176,0,62,0,157,0,79,1,91,255,201,254,36,0, +203,255,17,0,37,0,177,253,217,254,117,2,100,0,33,254,168,0,241,0,211,255,75,1,7,0,226,253,133,0,54,1, +222,253,119,254,188,0,85,255,252,254,158,0,207,255,9,255,101,0,226,255,217,253,101,254,87,0,223,0,154,0,77,0, +49,0,235,0,33,1,226,255,165,255,172,0,39,0,79,255,98,0,21,1,162,0,251,0,23,1,133,0,30,1,58,1, +174,255,137,255,9,0,94,254,20,254,2,1,187,1,141,255,166,255,41,1,97,0,86,255,19,0,117,0,173,255,65,255, +206,255,37,0,172,254,67,253,76,255,225,1,1,1,221,255,93,0,179,255,33,255,26,0,218,255,9,255,95,255,56,255, +167,255,10,1,118,0,37,0,77,1,159,255,102,254,133,1,244,1,253,254,178,255,76,1,107,0,131,0,51,0,183,254, +71,255,225,254,54,253,158,255,189,1,64,255,12,255,198,1,131,1,120,0,205,0,244,255,111,255,162,0,206,0,40,255, +146,253,35,254,135,0,238,0,56,255,111,255,223,0,10,1,225,0,118,0,201,255,249,255,194,255,98,255,151,0,131,0, +106,254,243,254,60,1,67,1,215,0,1,1,255,255,197,255,3,1,175,0,240,255,130,0,110,255,96,254,244,1,100,4, +25,0,98,253,97,0,150,0,209,253,5,255,27,1,192,0,18,1,91,0,4,254,200,254,252,255,113,254,91,255,170,1, +210,255,214,253,88,255,1,1,61,1,36,0,73,255,226,0,210,0,195,253,152,254,160,1,127,0,96,255,223,255,224,253, +3,254,25,2,68,2,116,255,175,255,21,0,20,255,232,255,12,1,72,0,120,255,167,255,32,0,119,0,195,0,12,1, +107,0,159,255,179,0,236,1,28,1,249,255,37,255,43,254,106,254,71,255,191,255,24,1,221,1,81,0,71,255,181,255, +165,255,181,255,17,0,141,255,63,255,141,255,136,255,176,255,181,255,57,255,219,255,64,1,156,1,6,1,162,255,131,254, +133,255,100,0,62,255,31,255,37,0,202,255,29,0,128,1,21,0,133,253,48,254,71,0,249,0,157,0,66,255,160,254, +235,0,80,2,134,255,212,253,61,0,95,1,23,0,232,0,117,2,119,1,134,0,210,0,253,255,215,254,182,254,206,254, +244,255,37,1,34,255,77,253,37,0,60,2,179,255,68,255,195,2,250,2,230,255,60,255,160,255,187,254,254,254,175,255, +21,255,183,255,161,0,105,255,226,255,200,1,205,255,22,254,136,0,14,0,49,253,191,255,119,2,167,255,185,254,40,1, +141,0,16,255,3,0,51,0,92,255,59,255,28,255,60,0,215,2,39,3,82,0,99,253,212,252,24,255,19,1,92,0, +249,255,204,0,221,255,47,255,214,0,182,0,252,254,45,0,142,1,200,255,217,254,16,0,28,0,216,255,7,1,140,1, +130,0,108,255,80,255,52,0,54,0,227,254,202,255,77,2,53,1,98,254,173,254,203,255,232,255,223,0,28,1,25,0, +63,0,253,255,19,255,63,0,71,0,37,254,184,255,3,2,62,255,31,254,86,1,63,1,55,255,37,0,44,0,198,254, +49,255,93,255,128,255,52,1,225,0,95,255,74,0,74,0,111,255,118,1,157,1,179,254,8,0,117,2,177,255,73,254, +207,0,106,0,224,254,141,0,91,1,46,0,163,255,136,254,182,254,0,2,16,2,123,254,71,255,179,1,111,255,42,254, +6,0,45,255,218,254,229,1,252,0,214,253,31,0,53,2,167,255,207,254,178,255,146,255,26,1,7,1,3,254,7,0, +53,3,162,254,212,251,120,0,4,1,204,253,18,0,142,2,185,0,121,0,27,1,60,255,138,254,165,255,156,255,199,255, +226,0,227,0,27,0,37,0,192,0,60,0,101,254,67,254,108,0,152,0,160,254,248,254,226,0,199,0,180,255,176,255, +10,0,16,0,247,255,52,0,198,0,80,0,191,254,189,254,83,0,68,0,49,255,36,0,72,1,111,0,204,255,91,255, +187,253,6,254,129,0,208,0,79,0,139,1,87,1,48,0,26,1,14,1,113,255,192,255,46,0,187,255,212,0,200,0, +213,254,90,255,34,0,159,254,86,255,43,1,221,255,29,255,78,0,218,255,148,255,251,0,37,1,159,0,139,0,171,255, +141,255,157,0,25,0,0,255,127,255,40,0,33,0,7,0,217,255,192,255,176,255,53,0,179,1,116,1,58,255,99,255, +159,0,251,254,156,254,98,1,62,1,84,255,22,1,5,2,227,254,233,253,153,255,78,255,196,255,22,2,235,0,44,254, +221,254,198,255,188,255,164,1,210,1,44,255,127,255,175,0,194,254,20,255,184,1,178,0,34,255,13,0,94,255,83,254, +170,255,125,0,209,0,85,1,212,255,123,255,218,1,213,0,5,254,190,255,35,1,101,254,6,254,183,0,149,0,242,254, +226,255,74,1,48,0,117,254,8,255,181,0,196,0,184,255,222,254,96,254,169,255,42,2,220,1,66,255,20,255,85,0, +133,255,62,255,62,1,254,0,127,254,41,255,28,1,50,0,38,0,185,1,78,0,64,255,241,1,65,2,199,255,4,0, +9,0,200,253,208,253,2,255,41,255,242,0,91,2,51,1,12,1,38,1,159,255,236,255,199,0,94,255,160,255,51,1, +225,255,99,254,64,254,223,253,34,0,204,2,30,0,51,254,144,1,218,1,144,254,77,255,188,0,26,255,144,255,20,1, +100,255,142,254,178,255,84,255,117,0,255,2,172,0,129,253,151,255,184,0,38,255,35,1,200,2,212,255,3,255,177,0, +30,255,156,253,92,255,241,0,80,1,129,0,14,255,2,0,225,0,191,254,234,254,68,1,244,255,200,254,208,0,166,0, +228,254,24,255,156,255,241,0,199,1,171,254,235,253,235,1,148,0,62,252,89,255,193,2,162,255,179,254,207,0,21,255, +139,253,111,255,151,255,232,254,165,0,206,0,43,255,240,0,198,3,218,2,3,1,235,0,174,0,222,255,123,254,252,252, +158,254,54,1,103,255,230,253,4,1,45,2,238,0,108,2,126,1,235,252,104,253,111,0,155,255,238,255,102,1,255,254, +81,254,106,1,37,1,0,255,45,255,28,255,37,0,201,2,6,1,154,253,59,255,33,1,255,255,108,0,242,0,46,255, +76,255,149,0,216,255,39,0,198,0,107,254,136,254,80,2,140,1,126,254,71,0,110,1,78,255,52,0,47,1,73,254, +238,253,224,255,16,255,197,255,177,1,238,254,121,253,120,1,78,2,20,255,112,254,66,255,181,255,180,0,125,0,254,255, +204,0,28,0,170,254,45,255,3,0,30,1,119,2,26,1,146,255,209,0,187,0,70,255,0,0,120,0,228,255,45,0, +92,255,199,254,102,0,131,255,224,253,120,1,185,3,66,0,78,255,16,1,236,255,8,0,209,1,103,255,35,253,30,255, +59,255,34,254,163,0,136,1,150,255,52,1,50,2,105,254,197,254,204,2,95,0,102,253,238,0,116,1,245,253,177,255, +186,1,4,255,37,255,49,1,51,255,54,254,33,0,188,0,5,2,245,2,179,255,82,254,205,0,174,255,254,253,27,1, +150,1,35,254,18,255,70,1,220,254,205,253,124,0,61,1,228,0,222,1,178,0,120,254,121,255,200,0,53,0,133,0, +219,255,39,253,225,253,3,1,173,0,116,255,211,255,251,254,2,255,40,1,4,1,235,255,107,0,252,254,115,253,141,255, +92,0,201,254,179,255,134,0,240,254,73,255,211,0,93,0,42,0,245,0,93,1,41,2,39,2,73,0,142,255,97,0, +229,255,230,254,200,255,15,1,86,0,97,255,179,0,150,1,13,0,58,0,113,2,249,1,81,0,42,0,247,254,37,254, +199,255,112,255,51,254,200,0,185,1,150,254,101,255,145,2,159,0,188,254,6,1,207,0,83,254,52,255,216,255,201,253, +44,254,252,255,35,255,80,255,88,1,40,0,121,254,117,0,210,0,176,254,72,0,94,2,142,255,196,253,217,255,193,255, +76,254,231,255,126,0,247,253,117,254,242,1,210,1,168,255,159,0,109,1,172,255,53,0,11,2,229,255,153,253,16,255, +233,255,96,255,239,255,148,255,48,255,251,0,100,1,141,0,150,1,8,1,226,254,210,255,126,0,11,255,20,0,171,0, +106,254,106,255,221,1,182,0,205,0,71,2,236,255,84,254,53,0,165,255,153,253,61,254,36,255,134,255,170,0,209,0, +188,0,247,1,184,1,114,255,143,254,138,255,255,255,43,255,198,254,2,0,3,1,134,0,124,0,6,1,4,0,162,254, +57,255,32,0,95,255,18,255,170,0,20,1,24,255,82,254,237,255,102,1,166,1,166,0,151,255,98,0,148,0,148,254, +228,254,14,1,10,0,28,255,90,1,164,1,116,255,225,254,77,255,210,255,254,255,121,254,184,254,181,1,75,1,233,254, +168,0,68,2,224,255,183,254,253,255,36,0,166,255,100,255,222,254,65,255,71,0,105,0,212,0,243,1,42,1,37,255, +176,255,85,1,39,0,190,254,21,0,205,0,173,255,129,255,190,255,146,255,56,0,214,0,247,0,207,0,55,255,199,254, +239,0,73,0,213,253,221,255,255,1,210,255,180,254,157,255,40,0,132,1,200,0,191,253,235,254,57,1,100,255,77,255, +172,0,253,253,181,253,194,1,107,1,155,255,185,1,21,1,98,254,205,0,122,2,232,254,232,253,126,0,162,0,11,0, +35,1,247,0,10,0,192,0,10,1,221,255,108,255,221,255,36,0,118,0,25,0,198,254,129,254,99,255,132,255,15,0, +71,2,194,2,244,255,132,254,39,0,129,0,56,255,247,255,209,0,4,255,89,254,60,0,210,0,123,0,171,0,21,255, +150,253,77,255,181,0,136,0,79,1,128,0,64,254,216,255,12,2,252,255,223,254,153,0,75,0,31,255,59,255,177,254, +24,255,187,0,154,255,29,254,54,0,220,1,13,1,184,0,238,255,101,254,105,255,105,1,224,0,167,255,200,255,95,0, +19,1,7,1,22,255,165,253,84,255,186,1,182,1,116,0,153,255,215,254,99,255,92,1,195,0,229,253,157,254,166,1, +30,1,43,255,60,255,216,254,196,254,95,1,67,2,200,255,77,255,190,0,240,255,212,254,80,255,165,254,125,253,187,254, +208,0,228,1,81,2,38,1,15,255,204,254,77,255,253,254,169,255,109,0,133,255,210,255,162,1,170,1,17,1,242,0, +198,255,195,255,152,0,42,254,230,252,218,0,102,2,101,255,140,254,208,254,31,254,111,0,220,2,238,0,207,255,81,1, +179,0,109,255,9,0,110,255,91,254,77,0,208,1,130,255,170,253,177,254,54,255,87,255,59,1,2,2,86,0,134,255, +151,255,154,255,17,1,87,1,234,254,93,255,73,2,0,1,241,253,178,254,117,0,51,0,71,0,224,1,231,1,167,254, +81,253,211,0,227,1,158,254,251,254,107,1,248,255,70,255,196,0,193,255,21,255,24,0,42,255,184,255,242,1,155,255, +191,253,94,1,196,1,58,254,133,255,8,2,31,0,26,255,85,0,5,0,5,0,192,0,105,255,200,254,124,0,68,0, +33,255,166,0,218,0,160,254,225,255,144,2,160,0,80,254,231,255,64,1,1,1,41,1,137,0,85,255,239,254,147,254, +150,255,70,2,18,2,35,255,3,255,221,0,33,0,75,254,178,254,166,255,252,254,13,255,247,0,73,1,218,255,230,255, +24,0,90,255,81,0,235,0,3,255,105,255,255,1,48,1,11,255,10,255,13,255,177,255,178,1,107,1,195,255,84,0, +22,1,49,0,23,255,71,254,211,254,182,0,150,0,29,255,30,0,105,1,5,0,101,255,93,1,222,1,44,255,8,253, +132,254,115,1,180,1,205,255,190,255,9,1,163,255,241,252,193,253,121,0,104,0,104,255,7,1,123,2,7,1,162,255, +239,255,144,255,162,254,93,255,149,0,32,0,44,255,68,255,218,255,169,0,150,1,103,1,84,0,215,255,82,255,224,254, +107,0,143,1,87,255,65,254,229,0,93,1,109,254,223,253,9,0,163,1,82,2,125,1,151,255,29,255,32,255,138,254, +109,255,159,0,13,0,186,255,183,255,210,254,29,255,224,255,233,254,47,255,86,1,30,1,83,255,145,255,162,0,163,0, +140,0,165,0,149,255,242,253,176,254,195,0,242,255,122,254,6,0,130,0,214,254,34,0,88,2,255,0,63,255,23,255, +222,254,81,255,23,0,17,0,244,0,92,2,198,1,134,255,197,253,183,254,137,1,234,1,10,0,183,255,64,0,88,0, +61,0,157,254,201,253,173,0,197,2,145,1,158,0,208,255,162,254,126,255,149,0,238,255,172,255,219,255,251,255,231,0, +216,0,0,0,224,0,225,0,96,254,190,253,226,255,19,1,117,0,157,255,186,255,128,0,88,0,123,255,122,255,255,255, +240,255,112,255,246,255,205,1,121,1,75,254,226,253,136,0,164,0,114,255,233,255,68,255,180,254,81,1,47,2,43,255, +197,254,112,1,108,1,194,255,16,0,145,0,238,255,156,255,63,255,182,254,204,255,76,1,130,0,66,255,51,0,154,1, +86,1,69,0,170,255,203,255,100,0,93,0,60,255,177,254,166,255,51,0,237,255,228,0,217,1,65,0,174,254,72,255, +107,255,231,254,193,255,106,0,57,0,209,0,204,0,116,255,139,255,153,0,197,255,155,254,176,255,224,0,213,255,24,255, +115,0,226,0,140,255,55,255,254,255,9,1,171,1,119,255,74,253,12,0,100,2,70,0,183,255,61,0,234,253,33,254, +234,0,210,255,210,254,56,1,50,1,110,255,0,0,44,0,99,255,50,0,32,1,152,0,123,255,31,255,175,255,239,254, +187,253,187,255,30,2,118,1,233,0,196,0,53,255,25,255,116,0,51,0,6,255,208,253,180,253,109,0,69,2,233,0, +94,0,102,0,203,254,168,254,214,255,93,255,151,255,144,1,58,2,71,1,251,255,248,254,22,255,118,255,88,255,185,255, +55,0,83,0,149,0,38,0,16,255,52,255,70,0,188,0,161,0,177,0,62,1,103,1,47,0,221,254,203,254,53,255, +154,255,68,0,206,0,159,0,24,0,63,0,100,0,53,255,240,254,213,0,195,0,137,254,44,255,111,1,102,1,239,0, +178,0,212,254,250,253,185,255,147,0,47,0,176,0,122,0,101,255,67,0,46,1,172,255,69,255,94,0,48,255,171,254, +191,0,165,255,74,253,42,0,129,2,221,255,39,255,250,0,84,0,108,255,225,255,172,255,190,255,62,0,27,0,61,0, +249,255,71,255,21,0,202,0,15,0,15,0,185,0,235,0,165,0,74,255,131,254,176,255,79,0,235,255,155,255,31,255, +93,0,29,2,133,0,118,255,4,1,236,255,145,254,69,0,127,255,220,253,162,0,129,2,120,1,229,1,107,1,15,255, +210,254,88,255,232,254,95,255,229,255,165,255,200,255,7,0,89,0,7,1,59,1,108,0,22,255,153,255,189,1,131,0, +175,253,25,255,137,0,24,255,207,255,159,0,37,255,239,255,128,0,253,254,234,0,227,1,254,253,153,254,165,2,235,0, +114,254,162,255,156,255,142,255,27,1,167,0,68,255,17,255,176,254,226,254,58,0,192,0,4,0,210,255,77,1,119,1, +76,254,198,253,156,1,227,1,215,254,52,255,226,0,182,0,83,0,163,255,146,255,242,0,156,0,78,255,105,0,198,1, +9,1,144,255,235,254,175,255,117,0,72,0,32,0,19,255,81,254,228,0,70,2,123,255,191,254,135,0,166,0,231,0, +161,0,168,254,115,255,212,0,217,254,246,254,5,1,75,255,245,253,44,0,12,1,253,255,54,255,203,254,109,255,183,255, +143,254,201,254,90,0,195,0,141,0,132,0,125,0,227,255,83,254,119,254,115,0,81,0,214,255,98,1,20,1,204,255, +155,0,238,255,115,254,9,0,189,0,250,254,1,255,39,0,157,0,63,1,51,1,194,0,169,0,173,255,54,255,19,0, +194,255,88,255,131,0,65,1,53,1,159,0,53,255,24,255,18,0,49,0,163,0,130,0,21,255,233,255,22,1,52,255, +35,255,99,1,125,0,76,255,22,1,151,1,210,255,194,254,21,255,249,255,122,255,88,254,188,255,34,1,30,0,102,0, +161,1,203,0,20,0,169,255,119,254,160,255,67,1,29,255,193,253,51,0,84,1,86,0,165,0,223,0,25,255,245,253, +126,255,36,1,55,0,213,254,222,255,157,1,13,1,238,254,216,254,94,1,250,1,155,255,35,255,92,0,69,255,41,254, +76,255,17,0,53,0,95,0,8,0,180,0,70,1,107,255,213,254,187,0,204,0,4,0,92,0,95,255,117,254,181,255, +93,0,80,0,183,0,241,255,184,255,80,1,232,0,42,255,248,255,217,0,102,255,142,254,97,255,230,255,222,255,47,0, +175,0,208,0,141,0,236,255,57,255,157,255,137,0,48,0,175,255,232,255,75,255,35,255,110,0,42,0,42,255,28,0, +96,0,105,255,15,0,247,0,245,0,33,1,143,0,216,255,190,255,206,254,108,255,152,1,187,255,153,253,204,0,149,1, +221,253,153,254,132,1,62,0,110,255,73,1,123,1,27,0,120,255,139,255,128,255,73,255,46,0,198,0,234,254,136,254, +239,0,242,0,172,255,86,0,197,255,249,254,242,0,109,1,96,255,233,254,200,255,226,0,157,1,99,0,154,255,82,0, +146,255,50,255,157,0,153,0,69,0,158,0,207,255,125,0,37,1,105,253,105,252,0,1,153,1,159,255,145,1,158,1, +204,254,155,255,0,1,205,255,27,0,22,1,162,255,152,254,237,255,70,0,37,254,252,253,247,0,88,1,186,255,39,1, +149,1,51,255,181,255,114,0,136,254,151,255,45,1,233,254,98,254,148,255,115,255,126,1,202,1,151,253,145,254,164,2, +27,0,229,253,88,0,243,255,9,255,28,1,150,0,239,254,25,0,52,0,67,255,62,0,120,0,72,255,164,255,250,0, +66,1,122,0,189,255,239,255,154,0,213,0,70,0,142,255,20,0,169,0,99,255,198,254,223,255,143,255,220,254,6,0, +226,0,23,1,149,1,241,0,94,0,234,0,203,255,10,254,194,254,197,255,149,255,55,0,18,1,40,0,147,254,191,254, +117,0,14,1,90,0,43,0,135,255,180,254,131,0,80,2,113,0,233,254,92,0,180,0,77,255,113,255,26,0,78,255, +89,255,19,1,70,1,196,255,139,255,253,255,154,255,249,255,221,0,143,0,23,0,233,255,35,255,2,255,84,0,66,1, +36,0,84,254,229,254,151,0,238,255,111,255,153,0,92,255,114,254,136,1,241,1,253,254,237,255,70,1,42,255,106,255, +50,1,185,255,107,254,1,255,41,255,198,255,137,0,41,0,123,0,132,1,97,1,50,0,71,255,180,255,253,255,239,254, +251,255,122,2,13,1,170,254,146,255,176,255,217,254,78,0,161,0,250,254,46,255,198,255,77,255,238,255,138,0,180,255, +28,255,83,255,29,0,243,0,88,0,108,255,39,0,184,0,172,255,68,255,141,0,15,1,210,255,132,255,162,0,75,0, +225,254,12,255,100,0,106,1,241,0,255,254,245,254,17,1,207,0,69,255,254,255,134,0,4,0,158,0,129,0,120,255, +41,0,236,0,139,0,196,0,103,0,93,255,59,0,254,0,126,255,25,255,134,0,86,0,62,255,193,255,57,0,118,255, +121,255,6,0,218,255,203,0,14,2,145,0,99,255,187,0,6,0,17,254,38,255,208,255,179,254,194,255,125,0,236,254, +40,255,30,0,222,255,102,1,96,2,213,255,99,254,52,255,118,255,80,0,255,0,132,255,216,254,212,255,0,0,11,0, +90,0,217,255,209,255,226,0,104,1,138,0,76,255,110,255,4,0,108,255,46,0,6,2,115,0,138,254,97,0,170,0, +152,254,243,255,191,1,221,255,216,254,21,0,63,0,29,0,195,0,160,0,7,0,26,0,56,0,14,0,78,0,101,0, +108,255,67,255,230,0,16,1,66,255,197,254,130,255,134,0,176,1,88,0,244,253,253,254,49,0,206,254,37,255,174,0, +7,0,81,255,130,255,220,255,254,0,187,0,200,254,217,254,162,0,242,1,169,1,173,254,24,253,163,255,141,0,135,255, +186,0,81,0,89,254,50,0,144,1,122,255,181,255,77,1,81,0,166,255,73,0,69,0,32,0,48,0,88,0,106,0, +8,0,102,0,146,0,224,254,118,254,13,0,114,0,163,0,213,0,95,255,89,255,155,0,91,255,219,254,195,0,84,0, +232,254,65,0,73,1,157,255,54,254,174,255,174,1,194,0,117,255,53,0,190,255,220,254,244,255,124,255,223,254,89,1, +50,1,129,254,184,255,58,1,26,0,26,0,162,255,181,254,71,0,68,0,214,254,180,0,52,1,202,254,188,255,210,1, +215,0,173,255,73,255,65,255,6,0,80,0,227,0,108,1,193,255,98,255,199,0,38,255,95,254,254,0,104,0,115,254, +232,255,27,0,53,255,176,0,205,0,248,255,237,0,24,0,238,254,11,1,38,2,43,1,227,0,166,255,141,254,191,255, +17,0,92,255,179,255,198,255,17,0,145,0,118,255,103,255,169,0,202,255,202,255,244,1,106,1,198,255,234,255,13,255, +128,254,242,255,38,0,203,255,242,255,242,254,189,255,217,1,43,0,191,254,179,0,20,0,39,254,116,255,72,0,40,0, +53,1,33,0,83,254,157,255,34,0,101,254,82,254,228,255,84,1,171,1,74,0,133,255,224,255,37,255,101,255,175,1, +36,2,209,0,123,0,23,0,235,254,243,254,145,0,198,0,149,254,255,254,117,2,111,1,153,253,201,254,226,0,183,255, +114,0,255,1,166,0,37,0,112,0,197,254,200,254,234,0,175,0,62,255,193,255,126,0,107,255,252,254,58,1,63,2, +66,0,235,255,114,0,105,254,32,254,31,0,214,255,57,0,200,1,4,0,235,254,91,0,55,255,164,254,244,0,151,0, +113,255,143,0,154,255,46,254,232,255,41,1,221,0,112,0,51,255,249,254,255,255,10,0,126,0,221,0,74,255,56,255, +255,0,95,0,181,254,21,255,116,0,45,1,169,0,17,0,248,255,180,254,67,254,113,0,176,0,56,255,199,0,173,1, +30,255,201,254,11,1,239,0,100,255,150,255,222,0,234,0,133,255,225,254,110,255,8,0,190,0,119,0,83,255,104,0, +185,1,19,0,115,255,227,0,36,0,204,254,100,255,201,255,215,255,30,0,199,255,225,255,51,0,199,255,245,255,203,255, +232,254,57,0,94,1,78,255,174,254,109,0,50,0,190,255,199,0,73,0,57,255,184,255,8,0,37,0,189,0,87,0, +162,255,242,255,232,255,70,255,150,255,144,0,143,0,137,255,113,255,150,0,179,0,242,255,55,0,75,0,164,255,43,0, +173,0,153,255,13,255,133,255,187,255,87,0,185,0,229,255,238,255,7,1,253,0,101,0,15,0,147,255,249,255,144,0, +105,255,192,254,21,0,13,0,90,254,174,254,54,0,177,255,27,255,220,0,132,1,167,255,246,255,48,2,28,1,180,254, +103,255,171,0,92,0,22,0,217,255,177,255,33,0,72,0,237,0,1,2,40,1,223,255,196,255,199,254,102,254,241,255, +163,255,189,254,155,0,237,0,175,254,57,255,193,0,118,255,91,255,225,1,212,1,131,255,79,0,3,2,75,255,249,252, +8,0,115,1,103,254,152,254,99,1,160,0,84,255,10,0,239,255,251,255,220,0,104,0,16,0,186,0,119,0,236,255, +222,255,233,255,211,0,220,0,126,254,151,253,178,255,195,0,186,255,97,255,64,0,71,0,112,255,63,0,110,1,89,255, +175,253,165,0,57,2,251,254,191,253,76,0,27,1,201,255,90,255,46,0,103,1,10,1,213,254,159,254,132,0,88,0, +71,255,41,0,148,0,167,255,164,255,27,0,39,0,201,255,241,254,243,255,58,2,247,0,183,254,30,0,150,0,189,254, +172,255,72,1,157,0,75,0,127,255,46,254,129,255,67,0,141,254,38,255,231,0,26,0,155,255,219,0,125,1,167,0, +89,255,162,255,10,0,222,253,217,253,125,1,102,1,222,254,196,255,101,0,183,255,252,0,5,1,201,255,158,0,93,0, +225,254,116,255,116,255,209,254,242,255,160,255,125,254,114,0,244,1,124,0,192,255,210,0,115,1,16,0,87,254,123,255, +209,0,170,255,74,0,221,1,196,255,76,254,201,255,202,255,227,255,179,1,135,1,106,0,32,0,68,255,24,0,237,1, +68,0,138,254,6,0,74,0,44,255,213,255,166,0,225,0,50,1,62,0,255,254,227,254,244,254,199,255,215,0,244,255, +115,255,187,0,91,0,61,255,23,0,37,0,54,255,83,0,52,1,49,0,13,0,109,0,134,0,184,1,88,1,87,254, +14,254,200,0,100,1,46,0,117,255,157,254,55,254,49,255,133,0,250,0,235,255,229,254,234,255,231,0,109,0,174,0, +219,0,129,255,65,255,6,0,165,255,209,255,119,0,124,255,89,255,162,0,161,255,67,254,249,255,55,1,1,0,188,255, +156,0,152,0,42,0,202,255,237,255,46,1,125,1,81,0,54,0,65,0,59,255,196,255,159,0,75,255,70,255,187,0, +200,255,74,255,226,0,51,0,41,255,209,0,134,0,86,254,172,255,8,2,162,0,66,254,237,254,163,0,193,255,200,254, +190,0,215,0,32,254,84,255,237,1,43,0,45,255,92,0,31,255,15,255,66,1,71,0,21,255,155,0,58,0,60,255, +71,0,142,255,86,254,67,0,138,1,40,0,109,255,199,255,107,255,172,254,143,255,154,1,196,0,64,254,194,255,135,2, +88,1,244,255,116,0,161,255,38,255,110,0,233,255,113,254,122,255,234,0,31,0,208,254,92,255,43,1,48,1,129,255, +6,0,161,1,40,0,159,254,101,0,43,1,85,255,186,254,51,255,53,255,245,255,170,0,99,0,63,0,153,255,245,254, +0,0,15,0,193,254,203,255,132,0,162,254,50,255,78,1,148,0,188,0,203,1,146,254,28,252,162,255,80,2,93,0, +248,254,16,0,213,0,51,0,15,0,102,1,149,1,238,255,171,255,82,0,205,255,46,0,28,1,39,0,205,255,221,0, +55,0,186,255,57,1,228,0,22,255,99,255,224,255,184,255,225,0,138,0,102,254,143,255,145,1,176,255,128,254,56,0, +170,0,113,0,170,0,119,255,31,255,115,0,87,0,34,0,106,0,218,254,184,254,33,1,225,0,219,254,25,255,198,0, +62,2,255,0,167,253,150,254,122,1,164,255,220,254,244,1,51,1,114,254,96,255,18,0,33,255,43,255,26,255,39,255, +230,255,44,0,231,0,184,0,130,254,217,254,235,0,8,0,187,255,62,1,191,255,26,254,27,0,98,1,68,0,9,0, +24,1,69,1,195,255,58,255,244,0,173,0,7,254,101,254,170,0,158,0,56,0,225,0,74,0,181,254,181,254,172,0, +172,1,78,0,218,255,199,0,231,255,44,255,136,0,109,0,3,255,111,255,88,0,122,0,120,0,249,255,160,255,155,255, +139,255,151,0,248,0,90,255,16,0,245,1,132,255,136,253,111,0,120,1,207,254,101,254,7,0,63,0,106,255,5,255, +233,255,37,1,246,0,80,0,46,0,202,255,131,255,139,255,220,255,68,1,138,1,29,255,39,254,206,255,246,255,193,254, +159,254,54,255,48,0,160,0,248,255,91,0,1,1,16,0,102,0,141,1,234,255,183,254,25,0,48,0,226,255,236,0, +199,255,173,253,219,254,22,1,100,1,161,0,70,0,204,0,81,0,214,254,193,255,244,0,74,255,13,255,156,0,232,255, +225,255,128,1,224,0,91,0,1,1,134,255,224,254,1,0,171,254,255,253,94,0,241,0,65,0,90,0,228,254,51,254, +66,0,10,1,125,0,188,0,134,0,99,0,172,0,25,0,76,0,83,1,226,0,255,255,97,255,200,254,167,255,50,0, +227,254,84,255,32,1,164,0,246,255,232,0,84,1,220,0,9,0,96,255,38,0,195,0,157,255,212,254,240,254,213,254, +140,255,147,0,23,0,182,255,230,0,86,1,249,255,71,255,3,0,242,255,8,255,89,255,109,0,208,0,158,0,215,255, +63,255,10,0,186,0,57,0,9,0,28,0,133,255,53,255,124,255,219,255,123,0,214,0,72,0,146,255,212,255,230,0, +5,1,12,0,48,0,157,0,63,255,83,254,0,255,253,254,246,254,7,0,59,0,211,255,140,0,70,1,193,0,185,255, +142,255,133,0,234,0,92,0,22,0,101,255,252,254,143,0,164,0,20,254,157,254,83,1,26,0,93,254,242,0,184,2, +12,0,9,254,211,255,122,1,77,0,86,255,33,0,231,255,33,255,83,0,206,0,20,255,46,255,228,0,111,0,153,255, +77,0,25,0,115,255,51,0,158,0,99,0,80,0,17,255,101,254,8,0,252,255,160,254,128,0,217,1,196,255,174,255, +237,0,119,255,77,255,97,1,244,0,13,255,32,254,81,254,70,0,214,0,207,254,145,255,102,1,134,255,44,255,203,1, +78,1,148,255,207,255,88,255,125,255,90,1,88,1,223,255,205,254,57,254,210,255,3,1,203,254,219,254,251,1,209,0, +28,254,199,255,204,0,16,255,6,0,150,2,30,2,51,0,198,255,8,0,96,255,199,254,6,0,44,1,12,0,133,255, +168,0,33,0,44,255,129,0,219,0,38,255,37,255,71,0,93,0,123,0,102,0,45,0,84,1,117,1,112,255,206,254, +100,255,170,255,2,1,2,1,172,254,11,255,180,0,21,255,66,254,46,0,151,0,0,0,56,0,90,0,10,1,79,1, +244,255,108,255,164,255,162,255,174,0,82,0,95,254,109,255,157,0,212,254,248,254,13,0,33,255,117,0,172,1,217,254, +217,254,168,1,66,0,125,254,234,254,158,253,34,254,127,1,159,1,197,0,25,2,91,1,138,255,158,255,65,255,55,255, +48,0,249,254,31,254,142,0,178,1,135,0,187,0,94,1,164,0,146,255,15,255,199,255,153,0,35,0,84,0,210,0, +108,255,145,255,31,2,92,1,97,254,156,254,255,255,11,0,39,0,201,255,50,255,217,255,121,0,191,0,232,0,213,255, +118,255,83,0,82,255,50,255,32,2,185,1,3,254,8,254,42,0,91,0,13,0,150,255,153,255,31,1,62,1,66,0, +226,0,30,0,145,253,2,254,38,0,74,0,139,255,63,255,9,0,180,1,135,1,206,255,166,255,118,0,127,0,247,255, +121,255,209,255,6,0,222,254,221,254,106,0,250,255,239,254,151,0,15,2,150,0,3,255,145,255,83,0,145,255,25,255, +51,0,184,0,18,0,179,255,20,255,214,254,90,0,254,0,202,255,245,255,59,1,42,1,43,0,46,255,40,255,70,0, +68,0,114,255,68,0,32,1,87,0,111,255,221,254,85,255,110,1,163,1,3,255,111,254,71,0,79,0,40,255,143,255, +147,0,232,0,141,0,148,255,108,255,116,0,54,0,23,255,230,255,197,0,86,255,145,254,37,0,138,1,20,1,42,255, +73,254,3,0,188,0,85,255,249,255,227,0,202,254,124,254,6,1,28,1,187,255,153,255,93,255,231,255,18,1,130,0, +66,0,4,1,28,0,117,255,73,0,226,255,147,255,120,0,233,255,112,255,255,0,77,1,185,255,250,254,85,255,67,0, +208,0,44,0,57,0,217,0,155,255,127,254,180,255,141,0,1,0,191,255,3,0,9,1,9,2,220,0,5,255,227,254, +40,255,165,255,148,0,128,255,222,253,9,255,34,0,152,255,154,0,142,1,28,0,98,255,1,0,96,0,4,1,104,0, +29,255,166,0,72,1,148,254,57,255,61,2,153,0,48,254,137,255,232,0,198,0,158,255,55,254,215,255,207,1,173,255, +95,254,45,0,126,0,132,0,70,1,138,255,164,254,10,1,48,1,253,254,63,255,134,0,48,0,89,255,130,255,228,0, +15,1,222,254,111,254,150,0,145,0,157,254,162,254,16,0,214,0,149,0,156,255,169,255,45,1,107,1,20,0,5,0, +247,0,134,0,91,255,133,255,151,0,128,0,66,255,170,255,157,1,157,0,90,253,208,253,186,0,156,0,113,255,80,0, +7,1,226,0,158,0,152,255,94,255,138,0,100,0,28,255,224,254,160,255,161,0,41,0,30,254,130,254,237,0,224,0, +249,255,162,0,149,0,34,0,92,0,209,255,243,255,8,1,214,255,47,254,226,254,89,255,125,255,6,1,71,1,195,255, +108,255,48,0,41,1,132,1,163,255,128,254,214,0,171,1,109,255,110,255,81,0,155,254,217,254,128,1,218,0,79,255, +144,0,147,0,153,255,25,1,96,1,99,255,126,255,23,0,99,255,19,0,127,0,91,255,213,255,57,0,218,254,169,255, +49,1,194,255,237,254,159,255,202,254,254,254,238,0,74,0,196,254,177,255,43,0,151,255,184,0,126,1,5,0,143,255, +183,0,121,0,169,255,133,0,33,1,201,255,141,254,6,255,52,0,135,0,146,255,205,254,139,255,185,0,60,1,80,1, +196,0,0,0,99,0,246,0,236,255,234,254,140,255,140,255,165,254,28,0,246,1,190,255,142,253,221,255,135,1,190,255, +252,254,217,255,220,255,54,255,146,254,148,255,253,1,104,1,31,255,253,255,222,0,147,255,232,255,94,0,28,255,166,255, +163,0,123,255,93,255,91,0,38,0,74,0,240,0,62,1,126,1,205,255,181,253,116,255,112,1,247,255,85,255,106,0, +2,0,145,255,12,0,202,255,225,255,222,0,249,0,122,0,73,0,3,0,250,255,237,255,225,254,94,254,139,255,171,255, +118,254,238,255,178,2,180,1,54,255,90,255,32,0,13,0,238,255,113,255,253,255,47,1,189,255,182,254,16,1,72,1, +69,255,138,0,99,1,188,254,80,254,92,0,158,0,114,0,158,0,231,255,208,255,30,0,133,255,91,255,80,255,200,254, +155,255,160,0,19,0,88,0,25,1,173,255,43,255,203,1,117,2,5,255,185,252,101,254,193,0,8,1,59,0,179,255, +88,255,137,255,71,0,24,0,158,255,172,0,46,1,180,255,149,255,73,1,41,1,64,255,73,254,239,254,68,0,196,0, +126,0,210,0,121,0,35,255,163,255,174,0,190,255,126,255,109,0,251,255,134,255,211,255,157,255,39,0,179,0,106,255, +224,254,236,255,116,0,215,0,197,0,229,255,3,0,212,255,51,255,99,1,213,2,204,255,62,254,94,0,56,1,71,0, +29,255,183,254,144,0,94,1,66,255,36,255,145,0,112,255,205,254,24,0,247,255,236,255,160,1,213,1,219,255,187,254, +225,255,80,1,50,0,78,254,101,255,60,1,91,0,13,255,103,255,97,255,85,254,170,254,84,0,255,255,163,254,127,0, +188,2,221,0,82,255,249,0,224,0,194,254,197,254,245,255,95,0,112,0,13,0,241,255,121,0,86,0,105,0,250,0, +185,255,158,254,55,0,132,0,171,254,128,255,61,1,243,255,2,255,6,0,52,0,82,0,151,0,116,255,144,255,226,0, +203,255,82,255,13,1,191,255,200,253,77,0,9,2,23,0,45,255,135,255,221,255,166,0,177,255,159,254,124,0,180,0, +170,254,45,0,243,1,132,255,97,254,43,0,136,0,132,0,41,1,241,255,93,254,25,255,189,0,162,1,60,1,214,255, +166,255,164,0,195,255,7,254,1,255,186,0,221,255,232,254,245,255,123,0,44,0,245,0,66,1,243,255,95,255,176,255, +62,255,249,254,221,255,222,0,75,1,247,0,78,0,177,0,121,1,201,0,224,255,232,255,254,254,33,254,234,255,36,1, +111,255,214,254,9,0,32,0,129,0,80,1,68,0,213,255,189,0,137,255,142,254,163,0,195,1,75,0,167,254,205,253, +234,254,207,0,56,0,94,255,70,0,14,0,179,255,6,1,208,0,115,255,175,255,49,255,238,253,86,255,101,1,167,0, +253,254,30,255,138,0,222,0,42,255,232,253,21,255,171,0,125,0,207,255,114,0,110,1,42,1,23,0,38,255,83,255, +221,0,19,1,118,255,15,0,171,1,7,0,144,254,16,0,121,0,133,255,118,255,19,255,46,255,110,0,79,0,65,0, +127,1,186,0,159,255,5,1,206,0,204,254,168,255,2,1,196,255,33,255,211,255,171,255,126,255,198,255,161,255,234,255, +172,0,143,0,57,0,74,0,228,255,206,255,94,0,119,255,96,254,29,0,99,1,104,255,242,254,73,1,124,1,20,0, +114,0,157,0,71,255,210,254,142,255,24,0,30,0,157,255,22,255,25,255,60,255,135,255,100,0,23,1,8,1,250,0, +14,1,22,0,142,254,175,254,26,0,168,0,223,0,127,1,1,1,212,255,30,0,46,1,247,0,31,255,109,253,184,254, +175,1,58,1,158,254,117,255,116,1,51,0,85,255,239,0,193,0,86,255,0,0,46,0,232,254,232,255,194,1,97,0, +197,253,8,254,229,0,3,2,37,255,170,253,230,0,15,2,244,254,149,254,135,0,167,255,185,254,23,0,171,0,19,0, +206,255,165,255,141,255,172,255,78,0,229,0,212,255,228,254,46,0,208,0,12,0,105,0,120,0,143,255,226,255,66,0, +246,255,145,0,132,0,109,255,171,255,79,0,102,0,199,0,18,0,218,254,154,255,130,0,249,255,222,255,83,0,114,0, +40,0,47,255,23,255,206,0,67,1,108,255,197,254,120,0,117,1,218,255,97,254,187,255,31,1,7,0,104,255,127,0, +110,0,69,255,66,255,216,255,206,255,246,255,244,0,38,1,196,255,96,255,158,0,76,0,162,254,230,254,117,0,197,0, +228,255,127,255,101,0,160,0,37,255,83,255,70,1,154,0,211,254,174,255,193,0,205,0,94,1,127,0,92,254,126,254, +190,255,39,0,207,0,103,0,220,254,168,255,91,1,158,0,197,255,23,0,181,255,156,255,63,0,44,0,149,0,31,1, +62,255,153,253,72,255,13,1,103,0,125,255,219,255,141,0,73,0,217,255,147,0,199,0,189,255,244,255,172,0,245,255, +145,255,62,255,39,254,24,255,187,0,9,0,38,0,92,1,93,0,107,255,37,255,165,253,181,254,212,1,78,1,107,0, +22,2,37,1,213,254,154,255,127,0,236,255,19,255,114,253,209,253,251,0,215,1,242,0,163,1,13,1,58,255,192,255, +61,0,214,254,150,254,125,255,213,255,77,0,201,0,208,0,174,0,253,255,195,255,207,0,132,0,195,254,239,254,231,255, +64,255,117,255,228,0,55,0,185,254,142,255,6,1,3,1,115,0,81,0,105,0,9,0,124,255,43,0,29,1,61,0, +205,254,167,254,78,255,254,255,250,255,186,255,223,0,177,1,68,0,136,255,142,0,111,0,74,255,230,254,78,255,43,0, +101,0,134,0,1,2,151,1,201,254,145,255,11,2,44,0,136,254,101,0,109,0,64,255,72,0,67,0,230,254,107,255, +46,0,19,0,157,0,187,0,67,0,155,0,93,0,97,255,241,255,196,0,172,255,178,254,101,255,254,255,248,255,70,0, +33,0,95,255,146,255,17,0,148,255,186,255,177,0,95,0,193,255,21,0,187,255,95,255,80,0,33,0,215,254,143,255, +228,0,78,0,160,255,200,255,124,255,58,255,167,255,20,0,63,0,228,255,67,255,96,255,179,255,159,255,10,0,92,0, +218,255,6,0,133,0,241,255,230,255,149,0,20,0,179,255,76,0,237,255,109,255,224,255,127,255,25,255,64,0,20,1, +29,1,62,1,124,0,185,255,60,0,63,0,175,255,210,255,121,255,254,254,178,255,242,255,187,255,201,0,86,1,55,0, +189,255,92,0,179,0,189,0,138,0,238,255,101,255,68,255,146,255,17,0,255,255,50,255,181,254,123,255,186,0,241,0, +165,0,238,0,199,0,242,255,205,255,215,255,112,255,207,255,124,0,41,0,204,255,242,255,227,255,255,255,56,0,205,255, +104,255,136,255,182,255,45,0,114,0,177,255,150,255,191,0,115,0,213,254,248,254,34,0,75,0,82,0,66,0,173,255, +250,255,106,0,171,255,168,255,75,0,230,255,121,0,224,1,241,0,134,255,175,255,125,255,217,255,34,1,44,0,9,255, +118,0,122,0,226,254,167,255,150,0,195,255,192,255,248,255,191,255,15,1,212,1,20,0,35,255,249,255,31,0,3,0, +169,0,155,0,99,255,25,255,132,0,210,0,219,254,103,254,99,0,168,0,15,255,231,254,11,0,244,0,209,0,104,255, +34,255,121,0,67,0,155,255,169,0,77,0,248,254,90,0,19,1,3,255,234,254,146,0,110,0,174,255,187,254,206,253, +167,255,110,1,172,255,39,255,79,1,88,1,73,0,127,0,246,255,149,255,126,0,51,0,118,255,228,255,162,255,144,255, +18,1,46,1,190,255,196,255,41,0,114,255,106,255,78,0,117,0,211,255,151,255,0,0,10,0,169,255,13,0,128,0, +228,255,127,255,4,0,171,0,48,1,172,0,16,255,190,254,194,255,243,255,198,255,241,255,225,255,68,0,142,0,119,255, +48,255,137,0,126,0,130,255,18,0,122,0,179,255,219,255,163,0,129,0,2,0,114,255,224,254,69,255,48,0,118,0, +79,0,238,255,186,255,126,0,250,0,14,0,139,255,236,255,87,255,149,254,108,255,120,0,96,0,17,0,3,0,8,0, +61,0,53,0,7,0,147,0,228,0,218,255,103,255,103,0,70,0,40,255,158,255,21,0,241,254,33,255,199,0,197,0, +80,0,7,1,210,0,223,255,192,255,141,255,174,255,94,0,124,255,173,254,31,0,105,0,45,255,66,0,163,1,143,0, +184,255,154,255,36,255,226,255,144,0,162,255,182,255,47,0,6,255,135,255,137,1,159,0,127,255,22,1,7,1,77,255, +13,0,216,0,145,255,177,255,254,0,141,0,140,255,36,255,231,254,164,255,119,0,0,0,58,0,60,1,92,0,65,255, +42,0,91,0,76,255,237,255,215,0,10,0,3,0,195,0,178,255,217,254,248,255,67,0,193,255,161,0,239,0,196,255, +222,255,197,0,86,0,196,255,191,255,136,255,226,255,105,0,170,255,7,255,207,255,158,0,164,0,58,0,173,255,181,255, +44,0,44,0,31,0,78,0,39,0,252,255,1,0,231,255,41,0,91,0,210,255,1,0,234,0,90,0,18,255,25,255, +148,255,162,255,163,255,150,255,4,0,202,0,137,0,1,0,44,0,192,255,103,255,92,0,125,0,199,255,129,0,107,0, +90,254,123,254,162,0,239,0,137,0,143,0,86,255,0,255,206,0,228,0,100,255,156,255,248,255,94,255,230,255,144,0, +70,0,132,0,32,0,197,254,157,255,44,1,40,0,78,255,230,255,81,255,46,255,190,0,192,0,212,255,87,0,61,0, +208,255,224,0,98,0,80,254,3,255,173,0,15,0,125,255,157,255,87,255,27,0,153,0,29,255,202,254,231,255,151,255, +156,255,208,0,161,0,59,0,135,0,153,255,134,255,252,0,206,255,235,253,103,255,75,0,17,255,246,255,27,1,129,255, +191,254,206,255,29,0,133,0,42,1,166,0,166,0,48,1,235,255,201,254,204,255,20,0,219,254,251,254,64,0,122,0, +241,255,211,255,31,0,133,0,189,0,78,0,78,255,237,254,230,255,15,1,31,1,120,0,24,0,65,0,96,0,232,255, +141,255,7,0,98,0,20,0,36,0,157,0,183,0,180,0,130,0,167,255,34,255,173,255,35,0,34,0,135,0,220,0, +74,0,229,255,97,0,122,0,236,255,223,255,6,0,239,255,115,0,184,0,133,255,226,254,254,255,146,0,24,0,29,0, +78,0,22,0,190,255,54,255,85,255,30,0,114,255,94,254,180,255,41,1,98,0,243,255,75,0,106,255,31,255,174,0, +84,1,107,0,9,0,38,0,178,255,20,255,33,255,204,255,235,255,225,254,68,254,156,255,99,1,18,1,157,255,228,255, +235,0,51,0,191,255,201,0,249,255,41,254,135,255,150,1,230,0,3,0,252,255,201,255,116,0,117,0,167,254,45,255, +158,1,243,0,66,255,188,255,183,255,123,255,214,0,215,0,117,255,207,255,81,0,183,255,12,0,157,0,76,0,43,0, +175,255,232,254,163,255,156,0,22,0,120,255,118,255,198,255,177,0,19,1,32,0,98,255,158,255,81,0,205,0,68,0, +183,255,72,0,35,0,236,254,8,255,28,0,120,0,137,0,111,0,58,0,122,0,39,0,101,255,200,255,254,255,117,255, +56,0,205,0,164,255,136,255,85,0,202,255,2,0,26,1,55,0,80,255,42,0,48,0,149,255,188,255,138,255,253,255, +46,1,2,0,88,254,181,255,22,1,164,0,160,0,77,0,135,255,122,0,247,0,81,255,232,254,220,255,195,255,211,255, +253,255,254,254,114,255,109,1,227,0,222,254,8,255,93,0,35,1,60,1,49,0,73,255,169,255,129,255,18,255,101,0, +93,1,39,0,88,255,160,255,79,255,38,255,183,255,249,255,78,0,124,0,124,255,32,255,115,0,181,0,134,255,151,255, +101,0,238,255,105,255,63,0,250,0,83,0,138,255,212,255,61,0,16,0,46,0,129,0,72,0,34,0,9,0,80,255, +53,255,242,255,189,255,79,255,227,255,241,255,167,255,43,0,181,255,221,254,72,0,43,1,103,255,93,255,176,1,207,1, +30,0,153,255,190,255,191,255,133,255,23,255,180,255,173,0,39,0,242,255,188,0,187,255,124,254,240,255,225,0,117,255, +99,255,53,1,185,1,150,0,158,255,178,255,43,0,211,255,64,255,177,255,115,0,172,0,93,0,158,255,184,255,236,0, +210,0,109,255,27,255,73,255,240,254,59,255,252,255,50,0,31,0,217,255,230,255,174,0,145,0,139,255,134,255,179,255, +109,255,69,0,241,0,193,255,239,254,109,255,244,255,175,0,241,0,24,0,32,0,154,0,145,255,77,255,169,0,114,0, +111,255,22,0,108,0,208,255,110,0,6,1,185,255,124,254,68,255,239,0,20,1,161,255,116,255,214,0,182,0,159,255, +33,0,223,0,93,0,170,255,14,255,253,254,245,255,42,0,136,255,33,0,248,0,186,0,165,0,147,0,40,0,148,0, +205,0,178,255,41,255,151,255,194,255,24,0,89,0,10,0,81,0,153,0,224,255,160,255,165,255,187,254,230,254,134,0, +209,0,30,0,46,0,34,0,175,255,164,255,248,255,185,0,248,0,113,255,46,254,40,255,137,0,241,0,223,0,48,0, +170,255,18,0,241,255,91,255,18,0,174,0,160,255,14,255,3,0,154,0,74,0,250,255,193,255,109,255,93,255,5,0, +196,0,129,0,15,0,114,0,61,0,98,255,224,255,147,0,195,255,92,255,250,255,248,255,28,0,228,0,192,0,52,0, +254,255,64,255,41,255,88,0,126,0,16,0,184,0,56,0,178,254,221,255,181,1,247,255,160,253,137,254,69,0,97,0, +49,0,186,0,29,1,76,0,237,254,75,255,233,0,66,0,15,254,89,254, +}; \ No newline at end of file diff --git a/src/client/sound/data/creeper4.pcm b/src/client/sound/data/creeper4.pcm new file mode 100755 index 0000000..e60657b --- /dev/null +++ b/src/client/sound/data/creeper4.pcm @@ -0,0 +1,1425 @@ +unsigned char PCM_creeper4[45508] = { +1,0,0,0,2,0,0,0,68,172,0,0,218,88,0,0,99,255,239,254,8,0,125,0,90,0,45,0,155,255,121,255, +184,255,140,255,177,255,66,0,74,0,212,255,148,255,228,255,101,0,23,0,60,255,120,255,29,0,178,255,224,255,242,0, +243,0,48,0,99,255,186,255,59,1,140,0,16,255,255,255,151,0,75,0,145,0,102,0,125,0,72,0,58,255,117,255, +113,255,180,254,166,255,27,0,68,255,100,255,116,255,107,255,63,0,91,0,127,0,132,1,209,0,218,255,153,1,170,2, +64,1,126,0,129,1,188,2,165,1,67,255,2,255,9,255,138,255,237,1,163,0,113,252,57,249,68,245,22,248,81,3, +11,6,175,254,207,251,215,253,98,252,173,247,241,249,2,6,169,10,45,2,7,255,22,2,61,1,75,2,222,254,243,246, +28,3,26,18,104,6,61,251,240,252,125,248,69,249,198,2,97,3,250,255,59,255,136,252,210,252,38,5,248,10,169,4, +175,252,103,251,93,254,8,7,15,10,169,1,83,254,242,251,171,246,27,253,162,3,49,2,56,4,76,0,220,247,218,254, +182,10,10,7,15,253,77,250,142,248,185,251,58,12,60,17,148,1,31,250,13,251,5,245,142,242,41,249,83,251,117,243, +170,239,125,239,87,230,86,233,200,250,82,247,118,234,70,238,8,247,122,247,85,235,10,230,151,247,152,6,125,12,244,14, +166,3,136,252,131,254,146,251,151,6,168,24,154,21,204,11,9,8,77,5,8,9,34,12,175,253,226,237,172,249,175,15, +60,19,99,12,225,3,138,0,175,3,114,252,51,0,4,29,142,33,239,12,236,15,20,32,88,29,41,17,98,14,31,12, +38,6,181,15,121,24,181,11,195,8,222,19,193,19,187,16,88,13,86,5,188,5,144,11,4,11,204,8,145,12,110,10, +144,249,51,248,197,11,74,7,163,243,248,252,63,12,62,1,217,247,83,1,233,2,96,251,196,253,187,251,158,244,0,253, +70,0,147,244,68,249,45,4,63,247,147,236,189,253,32,6,36,240,84,235,113,4,57,3,244,234,77,240,149,255,165,246, +139,242,115,254,17,251,253,234,103,238,225,1,167,255,219,233,134,243,100,16,6,254,21,223,70,249,42,20,121,249,203,231, +142,253,232,6,200,245,177,239,197,251,249,247,181,229,122,238,164,2,147,248,130,236,239,243,123,242,217,239,229,249,37,250, +64,244,96,246,27,248,66,250,33,249,81,243,94,251,30,4,6,252,125,248,179,246,98,241,222,2,222,15,165,247,162,237, +226,7,67,19,54,0,126,239,213,253,200,25,172,14,19,237,183,242,54,9,62,5,72,251,152,250,44,255,131,7,3,5, +246,253,10,2,177,2,196,1,59,8,176,2,242,252,146,12,216,16,78,252,21,244,1,0,117,7,56,7,215,10,19,6, +212,243,105,1,163,37,99,7,127,210,89,3,85,69,156,22,188,222,11,3,48,39,207,12,213,244,96,3,194,14,199,3, +155,4,62,12,6,249,204,243,2,18,80,10,5,228,197,242,154,20,56,6,21,236,213,238,14,2,205,13,60,4,44,254, +209,6,209,249,225,240,77,18,6,17,38,222,14,238,113,35,231,1,175,213,195,2,144,31,52,242,35,227,211,3,237,9, +112,252,218,250,218,251,238,1,217,3,59,241,201,238,12,9,79,9,254,241,102,248,86,7,57,250,140,244,37,6,192,9, +114,0,224,2,38,7,130,8,199,12,121,7,1,4,228,19,95,20,176,253,205,1,109,21,29,10,10,251,225,2,14,7, +1,5,5,3,114,243,49,235,200,249,19,250,215,231,40,233,15,247,99,244,157,233,58,234,194,241,126,240,135,235,237,241, +162,245,68,240,250,250,106,5,14,244,51,241,177,7,237,0,47,241,207,2,247,6,220,245,146,4,166,20,12,255,105,242, +37,254,118,2,147,1,37,254,215,250,216,11,150,20,225,251,139,247,14,16,181,8,11,246,72,7,255,17,197,1,251,3, +140,17,217,11,115,9,94,15,54,6,234,1,235,15,183,15,214,4,166,11,59,14,229,1,50,8,23,22,217,14,30,12, +53,16,33,254,206,245,75,9,238,6,148,247,29,3,39,6,17,254,112,19,2,20,93,235,62,245,65,37,8,26,134,246, +6,249,61,3,23,12,122,16,201,244,76,234,83,12,174,10,72,234,22,248,0,15,216,9,163,13,53,2,38,229,23,1, +100,41,132,6,103,228,249,0,55,16,139,252,65,248,117,255,110,1,127,2,206,253,70,252,187,4,245,6,84,5,150,5, +109,253,119,251,0,8,37,7,224,250,64,251,122,254,234,254,216,3,25,255,220,245,1,255,202,5,11,249,174,248,110,7, +245,1,226,243,214,252,26,9,224,0,78,246,116,248,130,0,147,4,165,251,126,245,0,6,73,9,65,240,167,247,69,19, +154,251,188,230,140,8,48,11,54,238,165,5,3,22,120,242,105,244,228,13,242,248,156,238,158,0,137,250,132,251,55,7, +121,243,30,244,6,16,8,254,137,237,55,11,250,7,13,241,167,7,91,15,40,245,82,249,37,1,239,242,184,251,179,5, +222,245,76,251,20,11,98,251,140,245,190,10,49,8,28,243,61,244,87,255,205,0,88,0,143,252,102,246,136,252,63,3, +119,250,74,252,69,13,20,4,126,239,239,251,167,7,80,248,79,248,156,4,34,255,115,255,104,4,147,248,38,251,4,11, +206,2,227,251,243,3,252,251,106,250,124,11,189,2,19,241,128,253,202,5,61,250,235,247,77,253,73,2,71,6,185,255, +77,252,145,3,163,0,177,253,55,6,198,0,230,246,115,0,2,4,219,251,149,1,228,6,222,254,177,255,244,8,121,9, +219,2,255,249,160,247,34,5,26,16,65,4,112,247,92,2,219,10,210,249,3,244,71,7,93,5,58,245,136,3,184,17, +226,3,48,253,12,254,229,250,62,5,4,1,248,233,34,253,200,24,69,254,52,239,45,3,67,247,243,235,240,5,5,8, +203,253,184,17,78,11,201,232,100,242,78,16,207,13,3,252,13,238,120,241,196,9,252,12,244,246,182,246,120,2,92,254, +108,0,15,7,229,251,97,249,119,10,109,4,248,235,100,246,156,18,104,7,91,237,187,246,159,8,157,3,188,254,237,3, +10,6,56,2,100,247,33,244,163,2,179,4,108,249,146,1,103,6,6,250,232,1,69,7,232,238,196,241,119,13,211,2, +52,243,251,4,201,8,1,247,207,242,83,249,8,3,232,4,155,245,55,248,129,13,211,4,116,245,222,6,121,14,202,250, +69,245,62,255,138,2,252,255,121,253,66,2,105,5,29,249,225,248,107,12,41,6,109,240,181,252,89,14,16,0,28,247, +56,7,8,14,95,1,43,247,9,249,125,1,255,7,110,6,220,0,154,0,251,2,150,255,255,253,149,3,136,0,240,245, +118,250,13,7,145,6,158,0,213,254,240,253,156,255,207,255,39,252,189,0,78,8,31,4,25,0,120,2,223,253,133,251, +155,5,237,5,89,248,30,249,184,6,221,6,161,255,171,0,249,252,63,245,94,255,35,11,237,1,93,255,206,11,179,4, +123,246,35,0,25,5,95,245,195,244,59,5,191,6,137,251,80,250,72,3,13,3,5,248,84,251,12,10,131,7,227,1, +127,10,62,5,13,248,131,3,135,9,253,243,87,239,211,0,23,255,107,244,209,253,39,9,193,2,188,250,88,254,99,0, +49,252,133,3,189,14,70,1,190,238,26,253,80,18,72,4,142,235,222,242,208,8,55,8,75,1,188,10,62,7,96,243, +156,251,48,15,142,2,255,244,88,252,88,252,114,255,169,10,180,252,23,240,137,5,194,13,137,251,59,252,21,8,46,3, +78,251,110,254,141,8,241,8,26,249,23,248,38,7,100,255,244,245,31,5,50,1,183,238,127,253,189,10,183,249,51,249, +82,10,172,7,226,254,22,1,185,4,96,7,59,6,20,0,98,251,66,249,190,255,48,8,218,250,117,236,181,250,199,0, +165,237,146,241,116,12,197,14,149,255,116,1,58,12,55,5,63,244,202,247,179,6,113,0,142,246,152,0,13,4,136,253, +24,5,87,6,48,249,67,1,253,15,13,255,74,238,245,255,63,17,175,5,192,247,87,252,177,0,177,249,223,248,43,255, +125,254,249,3,44,19,124,12,11,246,246,249,146,11,15,3,66,243,186,254,125,16,34,8,54,245,102,243,200,250,144,251, +193,253,95,8,161,14,175,5,177,248,13,250,48,3,161,2,147,1,41,5,50,252,96,246,75,7,11,10,194,245,155,249, +95,9,118,252,180,242,38,4,12,13,231,3,16,253,126,251,246,255,241,5,8,2,148,253,32,1,174,3,197,5,73,6, +131,250,56,239,157,247,82,5,46,4,84,254,172,0,205,254,74,246,137,254,255,15,253,10,89,254,145,0,37,253,240,244, +231,253,192,6,251,3,40,4,60,0,136,248,66,254,146,5,92,3,145,255,41,250,214,254,243,13,113,9,13,255,201,5, +49,251,166,234,144,1,199,17,24,252,102,247,172,2,176,253,59,2,0,12,105,0,204,249,112,2,77,6,201,3,96,247, +136,243,93,13,163,19,234,246,115,245,102,2,215,245,119,251,72,18,231,7,139,248,251,252,60,252,103,1,150,13,67,6, +152,253,236,254,223,250,7,255,187,3,242,245,118,248,182,11,54,3,104,245,240,253,86,255,149,251,239,3,99,3,23,252, +103,2,153,7,80,254,252,244,244,250,232,6,243,255,206,244,139,3,35,13,137,252,4,248,187,253,142,250,85,7,210,15, +244,245,41,239,159,7,204,6,122,251,8,3,64,1,54,252,131,6,97,7,123,255,217,255,61,255,182,0,74,3,78,251, +88,253,250,9,28,3,155,249,181,0,2,4,252,4,140,4,31,245,85,243,120,7,167,5,55,244,224,243,163,247,235,249, +16,0,154,0,122,5,101,9,119,247,255,243,167,14,20,16,172,252,157,0,225,0,131,242,102,253,118,16,209,5,216,242, +218,242,215,254,2,4,192,252,155,250,38,1,126,255,149,254,162,5,167,1,237,251,89,4,237,5,15,255,219,1,106,1, +231,248,102,248,212,250,127,251,168,0,142,3,255,4,150,8,169,1,115,249,223,2,235,9,106,255,194,249,88,4,66,17, +25,16,73,253,5,239,12,245,25,252,223,251,18,2,252,6,55,3,199,4,75,4,166,245,4,242,246,0,44,3,167,254, +229,12,150,16,119,248,83,241,7,255,113,249,48,245,5,11,164,17,204,255,180,252,96,3,188,254,221,247,207,244,197,251, +207,10,8,7,202,252,243,11,255,14,81,239,43,230,163,253,56,5,81,1,82,6,87,5,53,255,197,254,212,254,150,1, +24,4,226,251,70,246,218,251,167,255,216,4,186,12,248,5,159,250,12,254,190,255,39,249,92,253,29,4,225,254,161,252, +167,0,91,255,9,255,162,0,226,255,42,6,86,5,81,242,254,246,172,19,53,12,16,245,17,2,99,8,158,244,154,250, +100,8,119,247,166,239,0,255,11,5,96,6,59,7,28,255,82,255,12,5,27,0,218,0,76,7,59,3,148,255,195,252, +29,247,229,253,151,0,228,242,55,247,108,6,103,254,6,249,78,7,241,14,231,13,157,5,113,243,196,241,197,253,220,250, +200,250,27,8,242,6,246,251,89,251,69,255,197,2,191,255,180,245,220,250,11,11,80,10,155,0,15,255,85,0,251,0, +114,254,246,251,37,4,221,7,234,251,192,248,136,255,120,251,241,250,143,6,87,3,136,241,142,245,122,19,215,28,138,255, +181,242,116,12,108,13,16,236,56,234,59,2,112,3,136,254,125,6,113,5,6,250,10,245,26,251,186,6,229,9,71,7, +87,12,51,9,22,251,27,255,191,4,216,239,4,232,224,0,84,11,183,0,176,0,90,0,85,248,22,2,49,18,131,10, +189,252,82,253,127,252,32,251,189,8,209,16,241,255,120,239,3,244,41,254,181,0,175,255,56,253,241,248,42,249,90,1, +56,7,101,5,177,4,31,1,67,247,27,254,112,15,187,5,14,246,152,1,29,3,62,243,196,255,136,13,124,245,137,236, +158,7,157,13,57,252,109,253,6,8,167,2,33,249,49,2,128,17,120,4,93,239,37,0,41,15,239,243,9,238,64,12, +136,3,202,234,138,2,237,20,232,253,118,248,12,5,23,254,25,254,14,11,21,3,122,243,41,242,34,248,179,4,2,9, +19,252,62,255,94,12,230,253,104,244,124,7,120,9,58,251,127,252,157,251,38,251,129,8,144,1,179,239,190,251,54,4, +169,246,23,253,191,8,115,252,228,251,254,10,190,4,140,249,72,3,104,8,7,249,37,244,12,7,50,9,82,241,19,245, +217,15,29,8,76,245,242,252,24,252,77,244,52,5,78,14,86,0,198,252,38,2,215,2,18,255,81,247,138,0,97,13, +97,247,1,239,151,15,57,10,65,235,179,254,36,15,249,248,205,252,195,11,12,1,186,3,161,9,142,248,196,248,218,6, +169,3,186,2,117,254,203,240,97,0,112,19,104,253,183,239,26,3,55,7,192,250,226,249,73,1,112,11,106,13,218,0, +128,252,161,1,183,253,88,252,181,0,177,254,158,5,57,16,165,0,192,241,159,2,64,10,216,246,32,246,253,8,236,7, +25,254,246,2,12,4,237,249,148,248,77,0,149,2,157,255,58,1,177,6,253,0,1,246,122,0,250,12,97,250,109,239, +243,5,146,11,47,250,130,251,147,1,79,254,123,3,80,254,159,238,126,254,156,22,89,7,81,240,130,247,95,8,19,9, +215,253,245,250,100,255,57,249,185,249,57,12,85,12,178,254,113,7,241,10,57,250,249,255,225,15,72,1,202,239,146,248, +135,5,85,3,41,250,62,250,60,254,129,249,244,0,124,17,106,0,152,237,239,7,219,16,231,241,75,249,35,20,13,254, +178,235,164,3,144,9,244,248,48,253,250,3,185,250,242,248,227,255,1,254,49,247,237,247,107,1,148,7,19,2,154,253, +140,1,2,255,238,246,65,252,65,7,33,5,74,0,83,4,231,4,250,253,6,251,130,252,94,251,237,247,219,248,174,2, +174,10,37,5,242,254,178,0,119,251,171,244,13,0,224,13,67,9,10,1,15,3,80,5,145,0,80,251,22,253,85,4, +97,9,157,6,150,251,170,243,5,250,112,0,246,251,225,255,14,13,123,10,181,253,139,251,57,255,243,254,15,252,237,253, +178,6,203,6,121,255,84,6,217,7,73,242,185,239,119,3,103,255,79,249,72,13,182,13,218,245,86,246,83,4,36,3, +224,1,92,3,231,252,149,251,176,3,192,3,123,248,22,243,217,252,1,7,118,5,18,4,79,5,132,251,188,242,222,252, +255,4,59,250,80,245,76,255,235,254,96,251,164,10,108,13,247,246,146,250,113,14,134,250,174,233,134,7,56,19,44,252, +32,253,163,8,64,255,64,251,189,255,31,254,185,255,111,1,212,4,74,14,197,4,156,244,61,254,160,254,157,238,90,1, +215,23,60,3,216,246,72,5,204,0,144,246,165,255,55,4,72,3,220,9,238,5,16,246,138,243,251,0,71,9,132,1, +27,247,34,249,136,0,204,3,219,6,208,8,238,3,215,252,189,251,164,252,24,246,155,242,7,0,176,9,65,1,106,255, +79,4,16,250,19,246,134,6,135,7,250,241,140,235,71,253,7,10,247,1,191,250,221,3,134,5,15,252,15,2,62,7, +226,249,40,251,246,9,19,5,96,253,1,2,183,0,255,253,127,255,18,255,125,5,66,7,63,251,43,255,50,8,64,248, +153,244,74,7,16,3,231,250,108,8,116,5,120,248,90,2,147,5,82,250,222,0,138,8,240,254,46,252,119,2,72,3, +75,1,35,253,224,251,206,255,197,249,92,247,134,10,228,11,175,244,201,253,50,18,161,249,251,234,29,11,16,14,240,239, +112,249,196,13,8,253,89,242,57,252,139,250,227,247,117,253,66,255,250,3,228,4,34,255,112,10,47,17,5,251,125,245, +121,7,101,3,72,250,253,0,57,252,210,246,184,1,28,2,135,249,79,250,83,252,46,2,178,7,115,0,188,4,122,17, +196,2,57,247,38,8,56,6,168,245,244,255,50,6,185,248,34,252,140,1,124,246,1,254,42,13,29,255,164,248,220,14, +244,13,90,247,17,252,87,5,254,248,249,252,140,11,88,1,60,254,106,11,246,255,151,243,92,254,75,251,129,247,0,5, +113,250,19,243,177,18,37,19,201,244,150,0,1,11,216,246,109,0,82,10,6,245,24,255,130,16,231,246,182,240,37,5, +227,254,81,251,127,1,2,248,69,5,46,23,157,253,2,248,159,17,14,255,31,236,58,6,191,5,103,244,100,7,194,7, +78,241,55,3,208,18,175,252,126,252,161,10,238,249,113,241,60,2,127,1,156,247,80,0,236,7,252,1,121,251,164,249, +88,255,76,7,104,2,127,249,76,254,248,4,199,1,189,2,32,10,217,4,27,245,160,244,16,3,206,3,177,248,89,255, +165,13,26,4,187,242,207,245,164,0,3,4,56,4,71,2,34,0,243,252,187,244,140,248,36,10,235,6,31,247,236,255, +136,6,109,244,246,245,44,11,127,4,17,246,138,2,65,11,170,255,148,252,145,5,77,3,165,243,60,240,187,5,198,16, +140,250,56,240,54,3,117,2,238,243,230,4,32,21,114,3,96,249,6,3,94,1,26,253,177,3,160,6,242,2,163,250, +252,243,44,254,30,5,105,247,156,247,117,6,191,0,122,251,223,5,150,3,222,2,129,13,221,0,30,243,150,2,69,4, +33,245,99,253,73,8,171,4,111,2,158,246,8,238,160,0,77,11,192,3,242,5,126,255,249,242,213,1,232,11,103,253, +29,252,175,255,249,248,166,255,21,4,135,252,196,4,29,4,220,237,216,246,210,16,130,6,96,246,202,253,207,2,31,1, +44,1,63,255,174,0,88,3,36,2,190,0,180,248,157,244,41,8,214,20,209,1,74,245,48,2,20,8,139,250,245,242, +116,0,73,11,253,1,54,254,4,3,139,249,170,252,63,17,160,2,89,236,123,2,135,10,55,241,125,253,22,22,19,0, +80,238,171,255,70,8,247,3,176,3,177,255,237,252,191,255,206,255,94,254,200,249,95,247,62,4,188,8,178,244,25,242, +96,11,247,14,153,248,127,242,248,255,0,9,105,8,59,2,95,251,17,253,177,3,21,0,206,246,187,250,108,6,128,3, +3,244,179,241,188,3,127,14,255,1,10,249,219,0,130,1,44,253,101,2,128,253,142,246,93,9,208,14,126,243,16,246, +251,17,25,4,150,234,93,249,115,8,120,255,127,253,158,1,174,253,192,253,214,3,84,7,145,7,205,1,154,250,145,254, +125,7,85,5,240,252,43,253,0,1,227,252,136,252,160,6,54,3,111,242,114,247,72,11,130,8,209,250,136,255,204,7, +122,0,69,249,132,255,194,5,142,2,133,255,37,254,42,249,53,252,175,7,118,5,121,251,18,254,167,255,60,249,225,251, +148,0,161,254,15,2,161,1,3,248,30,253,25,8,18,1,150,252,212,2,127,255,234,255,227,9,249,1,174,247,137,4, +12,7,103,244,69,244,6,2,156,1,133,2,11,9,64,254,194,242,160,0,40,14,152,4,6,254,107,8,140,8,34,248, +90,246,235,6,63,10,217,253,217,250,59,0,76,255,144,252,105,253,5,0,201,5,201,5,176,248,129,243,19,1,227,5, +107,249,120,248,186,5,15,7,43,255,145,1,29,6,107,255,109,249,192,254,231,3,233,255,182,252,11,2,231,3,107,249, +76,244,18,1,121,9,66,255,71,249,204,2,156,7,84,0,40,251,33,254,177,3,11,6,205,2,220,252,85,250,201,253, +106,1,118,1,68,6,58,12,148,2,163,248,23,3,221,6,20,249,7,251,108,4,226,251,116,250,29,4,141,254,248,252, +159,8,51,4,193,251,188,255,139,252,251,254,119,12,61,0,33,242,167,6,158,10,226,241,185,247,45,9,96,252,84,248, +232,7,248,2,56,248,68,2,166,7,121,253,29,252,95,5,4,5,36,252,145,252,36,2,51,253,118,249,59,3,56,8, +181,0,105,252,139,253,65,254,214,254,24,253,203,254,205,10,180,15,203,254,117,239,218,251,178,13,72,1,74,240,200,2, +88,18,210,250,98,237,13,254,76,2,175,0,98,9,163,254,31,241,18,1,167,7,73,250,51,1,250,9,89,255,107,1, +150,6,86,247,49,247,22,7,255,252,153,241,1,5,215,14,103,254,44,249,181,255,202,253,77,1,151,8,185,253,86,247, +181,8,241,8,250,240,8,244,70,10,84,6,64,249,100,249,233,249,62,3,157,16,54,4,86,248,73,7,54,6,19,243, +247,253,193,17,163,7,19,249,29,250,86,254,204,0,245,255,1,0,19,2,17,248,249,242,27,7,215,10,25,244,37,251, +163,17,232,5,166,252,97,11,169,5,2,246,171,253,70,4,254,2,70,8,2,0,238,242,72,0,238,9,34,252,119,0, +139,14,156,247,150,224,41,253,102,26,160,3,201,236,112,1,97,14,222,250,162,250,112,12,155,255,25,241,19,6,200,13, +160,248,43,252,10,13,11,253,153,235,99,250,157,8,12,4,180,255,228,253,131,251,68,1,184,6,233,253,131,247,69,4, +59,12,47,252,89,240,238,252,39,12,46,13,157,254,65,234,206,245,193,26,123,16,246,230,231,245,28,22,181,255,220,241, +100,9,144,4,194,251,91,15,184,254,65,231,28,16,161,27,91,227,209,233,84,30,134,8,89,234,118,5,102,2,38,232, +209,2,239,20,74,245,215,242,103,17,9,13,233,241,147,241,244,11,191,21,20,246,140,228,143,8,82,24,116,248,144,245, +109,7,76,249,149,245,78,3,140,244,4,245,252,18,74,7,220,241,160,7,108,8,239,247,208,14,142,8,200,222,233,250, +51,32,107,245,122,232,87,19,213,1,112,228,99,6,61,12,135,242,9,12,139,21,163,236,226,246,209,24,125,253,147,241, +42,20,167,5,244,228,147,2,201,21,224,247,152,249,92,12,125,244,8,236,81,10,143,7,84,244,231,5,220,13,147,250, +71,254,105,7,66,251,227,252,99,4,91,251,14,5,74,19,92,250,167,235,215,3,104,5,168,242,116,253,45,9,1,251, +174,247,53,8,252,12,170,252,151,240,42,0,184,15,21,255,85,247,70,14,224,10,100,240,207,248,218,6,115,248,28,250, +26,8,88,250,234,245,27,12,111,7,133,242,37,254,214,12,16,2,106,252,120,253,165,245,93,251,54,7,254,245,43,231, +56,255,27,15,217,251,62,246,216,6,40,5,39,251,201,2,171,6,196,252,254,251,207,1,117,255,54,255,38,2,244,251, +99,250,119,5,27,3,179,245,190,253,42,11,160,0,230,250,113,11,31,14,121,252,211,245,160,253,214,3,42,1,40,252, +243,3,162,9,60,250,111,249,68,12,15,255,201,241,157,18,136,20,43,234,162,247,23,22,171,245,2,241,196,31,158,13, +21,224,210,250,65,22,144,0,100,248,215,250,203,248,8,18,57,23,215,233,219,229,205,19,83,17,222,242,134,0,13,14, +246,245,97,238,74,7,54,17,108,1,32,248,86,1,153,5,88,247,134,243,250,8,167,13,194,244,72,242,15,10,104,9, +34,251,22,2,123,5,138,250,34,251,2,254,109,254,220,11,37,8,9,240,120,249,134,11,237,248,144,248,27,16,236,255, +209,241,34,13,108,16,180,254,14,3,169,251,5,246,43,12,198,255,169,233,162,10,35,12,2,227,81,254,45,26,116,241, +85,251,85,30,18,241,245,232,193,33,35,5,212,217,160,10,138,19,22,225,136,239,127,14,75,4,88,6,24,0,247,237, +78,5,243,11,206,237,75,255,247,17,42,243,239,251,128,15,172,230,248,236,119,36,244,6,164,226,32,19,61,26,108,235, +226,248,98,15,72,252,227,0,75,8,14,248,141,6,182,14,145,238,212,244,233,9,205,235,243,238,109,29,197,11,167,237, +204,10,120,12,26,241,39,4,98,12,226,242,106,1,69,19,9,251,158,248,39,6,89,244,3,239,233,255,206,0,154,2, +213,255,210,239,34,6,48,29,130,241,103,224,81,18,193,14,67,229,221,252,14,21,225,249,13,247,81,7,249,249,189,247, +75,10,0,8,14,0,83,6,134,7,44,1,147,255,176,5,127,6,35,245,120,241,9,10,70,7,191,239,173,1,241,15, +101,240,88,238,89,16,87,15,12,0,42,1,200,253,173,5,168,14,41,247,19,246,152,21,190,2,78,226,26,255,115,17, +141,247,250,246,4,2,1,249,117,2,41,13,143,251,168,252,98,14,229,2,33,248,212,3,213,2,38,250,150,252,213,251, +60,255,126,10,206,1,180,243,99,255,146,8,135,252,100,249,232,253,252,247,149,252,142,7,59,248,128,239,68,14,0,23, +65,242,12,237,19,14,172,13,43,246,69,250,233,10,61,12,80,255,90,244,218,0,39,15,213,254,33,245,142,4,220,254, +200,242,238,4,23,12,207,0,91,8,162,6,193,245,149,2,133,14,14,251,195,246,96,1,148,253,172,255,58,2,124,252, +147,7,233,2,13,229,129,248,215,26,64,253,84,241,17,24,95,8,184,229,103,7,150,23,224,242,46,246,42,12,168,249, +4,245,182,8,235,255,151,244,108,4,245,10,136,0,201,252,41,254,255,1,102,8,104,5,35,252,4,251,122,255,174,3, +97,9,199,7,7,248,159,240,250,255,186,5,44,243,88,240,188,3,224,4,60,249,156,253,232,2,100,253,192,251,147,255, +115,5,177,5,230,245,215,242,146,11,30,11,180,238,79,250,6,23,4,255,30,226,103,253,138,22,198,0,223,242,90,6, +59,11,134,246,23,245,190,11,221,12,156,242,73,238,119,12,73,23,204,250,77,240,246,8,84,9,202,244,110,5,6,23, +89,252,228,245,208,16,168,3,135,235,105,1,90,13,233,253,51,3,194,255,28,234,234,251,11,15,203,243,187,242,230,16, +103,253,226,229,72,9,156,22,36,241,40,246,231,26,151,4,71,226,127,4,51,29,148,239,197,226,150,20,63,21,80,238, +70,251,112,15,77,253,113,250,87,0,207,245,111,0,207,9,103,249,237,7,155,22,224,236,21,230,51,23,164,14,53,235, +198,1,133,16,153,251,118,0,13,9,115,250,139,252,117,7,110,255,48,248,123,254,62,11,33,11,81,242,113,238,241,13, +171,13,3,244,45,255,215,12,190,252,36,250,201,3,163,1,229,1,197,254,164,249,41,6,102,8,157,252,110,9,48,15, +8,243,111,233,19,249,18,4,227,15,54,5,125,232,174,250,29,20,77,243,87,234,148,22,127,18,102,238,27,253,20,16, +142,250,137,237,173,253,202,14,134,7,111,237,20,240,126,11,119,254,193,230,15,6,78,27,37,245,59,232,16,13,223,21, +211,253,0,246,58,253,1,5,240,3,79,241,216,242,223,22,4,18,93,226,98,239,67,27,123,252,237,221,199,13,91,30, +71,242,239,242,239,6,204,246,40,0,147,18,170,244,59,238,5,12,100,253,94,239,120,11,64,6,102,244,216,13,178,11, +83,236,35,0,215,19,57,248,86,246,7,13,37,5,115,253,249,1,216,248,216,1,242,24,158,4,48,234,95,5,107,25, +234,247,248,232,238,7,4,13,138,245,79,255,149,16,18,255,199,246,7,2,38,252,12,0,76,13,10,244,135,236,6,25, +42,17,156,226,234,1,187,33,35,235,84,220,171,23,157,22,229,233,1,249,6,19,255,254,181,244,173,4,179,1,174,246, +164,2,184,9,254,245,221,234,155,251,171,13,46,15,55,2,230,249,81,10,169,13,191,235,137,238,41,26,85,10,106,227, +184,253,139,13,213,240,88,250,224,8,175,244,107,3,163,15,133,233,69,248,100,37,95,255,127,230,241,17,44,2,214,221, +72,8,145,23,172,242,114,5,196,22,251,239,19,246,216,22,135,248,63,230,164,13,154,17,105,242,129,250,232,12,62,2, +237,252,230,255,236,244,39,248,12,11,105,1,64,247,175,17,74,16,254,234,194,249,167,22,120,244,95,234,168,23,236,9, +59,224,94,1,48,26,78,237,192,227,240,16,88,23,109,248,62,245,169,9,16,9,95,247,153,251,151,8,12,254,14,250, +58,4,57,247,132,244,50,18,253,15,72,247,114,253,245,253,130,247,100,12,38,6,68,237,220,9,248,19,195,228,49,237, +26,23,214,255,0,239,112,10,17,3,233,243,104,7,23,5,45,247,239,6,42,8,172,245,237,250,162,4,179,0,223,2, +222,3,153,250,191,245,24,252,223,8,211,12,74,2,124,253,10,0,226,254,212,4,146,8,238,251,174,248,114,0,86,253, +167,255,118,4,198,246,77,248,0,16,109,9,181,238,35,244,42,15,120,20,99,253,157,243,83,9,33,8,5,239,127,0, +63,18,206,241,201,243,4,23,65,255,197,232,53,8,22,12,69,255,20,10,170,246,80,236,193,20,155,11,201,230,231,7, +162,17,84,227,174,244,108,21,170,245,164,242,51,18,168,5,103,250,179,5,236,251,100,254,29,17,20,4,189,246,176,255, +130,253,26,248,208,246,41,245,197,8,49,17,69,244,240,244,155,16,203,3,71,248,4,13,170,6,219,244,105,1,216,4, +183,251,121,4,144,4,173,247,167,253,228,6,99,252,49,240,105,249,118,14,32,10,75,246,222,2,246,15,131,249,177,253, +13,24,16,251,158,221,49,3,222,25,219,250,76,239,86,6,185,17,97,0,50,239,179,2,128,20,30,246,31,232,26,6, +184,5,60,247,191,8,214,3,72,241,24,4,181,3,233,237,16,3,215,12,18,245,194,2,57,10,224,238,143,4,76,24, +2,233,48,234,242,22,124,250,250,233,23,23,94,4,160,222,213,8,84,22,74,240,229,254,179,14,163,252,222,15,44,11, +25,215,234,246,121,48,43,254,162,219,233,14,30,16,225,236,130,253,8,4,14,247,183,6,199,254,183,235,73,11,47,20, +122,240,127,250,175,20,60,5,40,247,82,243,62,252,81,28,188,8,107,220,60,7,235,32,40,225,180,237,46,41,193,248, +192,222,207,24,203,2,136,217,162,11,146,22,210,239,62,254,207,6,34,1,95,19,0,243,0,222,90,33,45,26,126,210, +65,1,80,43,22,235,96,236,199,19,222,239,205,242,105,19,141,242,253,251,214,34,153,242,89,229,0,30,223,7,146,233, +150,15,187,3,94,236,102,22,91,16,91,232,182,6,10,21,129,235,154,232,141,1,159,8,215,6,94,250,78,1,7,23, +113,252,170,231,185,10,252,11,0,243,11,3,41,2,99,248,244,21,214,7,203,229,59,13,90,16,6,216,159,247,225,35, +157,247,187,245,180,28,175,253,215,235,95,7,92,249,211,243,30,16,110,2,196,243,205,1,60,248,62,7,33,37,198,237, +145,203,179,25,141,41,149,223,74,238,137,36,173,1,30,225,180,254,35,7,126,248,254,4,247,15,132,0,171,247,43,6, +113,14,60,252,175,237,184,252,142,11,32,2,228,249,178,4,217,14,152,5,152,244,109,243,239,252,175,251,245,246,150,254, +3,9,162,8,103,254,99,249,103,4,61,9,24,251,186,248,72,3,37,1,28,6,183,16,168,251,196,237,199,8,46,10, +30,236,215,242,147,4,149,252,104,0,154,3,24,245,22,3,41,13,24,233,211,236,72,27,63,7,2,226,79,2,31,22, +162,250,188,245,95,252,130,255,12,19,117,6,63,233,109,8,52,27,226,236,126,232,52,11,28,6,207,8,83,13,142,230, +118,240,169,29,203,250,30,231,210,25,190,7,141,227,89,17,70,15,6,230,153,16,159,23,251,222,223,2,29,38,176,236, +174,244,143,33,25,247,18,235,182,17,86,251,2,243,21,14,220,242,43,240,194,23,62,255,87,244,186,26,209,251,118,227, +198,22,34,13,189,232,210,10,236,7,209,236,192,17,142,10,71,227,21,14,57,22,167,226,38,2,43,22,97,220,162,245, +192,39,211,241,183,232,115,37,31,9,105,224,143,14,19,26,9,235,32,239,190,20,73,12,216,235,2,248,222,26,39,6, +26,230,33,7,157,21,156,235,169,241,39,15,30,249,179,246,205,11,84,245,87,241,209,14,173,254,205,236,50,4,108,4, +180,246,19,2,17,8,117,8,119,9,211,253,60,1,88,6,231,242,238,251,135,14,70,244,74,250,5,30,16,248,245,215, +192,4,24,11,80,237,212,0,241,11,100,254,82,7,62,255,4,246,200,18,231,12,163,240,19,5,164,10,4,248,15,11, +129,4,63,229,42,5,82,19,174,223,211,226,109,16,38,13,176,249,62,238,133,249,26,41,43,18,249,198,238,252,113,77, +42,254,25,194,193,15,13,39,161,240,60,242,82,3,175,249,23,5,194,8,221,242,167,244,35,5,129,7,39,3,208,248, +52,250,108,17,21,19,63,249,15,246,199,11,174,15,120,246,253,232,65,6,38,24,40,242,222,223,1,9,241,21,99,242, +86,237,63,9,93,15,231,253,23,240,52,246,164,6,8,1,161,238,109,252,190,25,33,17,115,244,166,246,134,5,101,250, +29,239,115,252,99,5,1,5,113,11,98,0,134,235,12,253,34,21,127,255,227,233,235,253,141,17,89,3,88,239,99,0, +19,32,79,9,239,222,64,248,21,25,8,250,132,237,64,13,0,10,63,247,68,254,138,251,137,251,136,14,160,5,225,245, +108,9,142,12,107,243,97,249,2,14,202,254,160,233,57,255,38,27,160,253,49,221,63,7,120,32,189,235,67,231,133,25, +88,6,245,233,15,11,223,12,21,246,16,4,38,255,194,246,227,17,172,0,220,227,213,12,241,19,147,231,197,252,94,23, +129,249,119,252,64,15,49,255,170,255,217,253,231,238,141,13,195,24,227,239,228,248,20,13,35,242,215,0,166,16,5,227, +192,243,95,38,203,250,171,228,62,22,206,10,7,239,138,6,146,1,198,249,100,14,75,249,146,240,120,20,99,3,172,239, +11,15,3,250,140,226,127,24,156,22,17,226,126,255,111,23,197,241,229,245,135,6,82,248,116,3,227,0,73,233,94,9, +220,24,244,234,95,243,169,26,11,4,174,240,140,253,10,255,117,9,149,6,249,229,169,247,117,30,186,1,234,231,70,3, +108,14,108,4,96,255,82,245,212,253,169,15,123,0,4,243,183,1,110,10,161,7,5,249,253,232,229,2,7,26,119,243, +250,228,171,18,159,21,129,240,112,245,150,9,91,5,37,0,90,0,60,1,245,1,37,252,78,254,253,6,177,254,212,249, +102,5,69,1,79,249,156,9,244,17,170,1,46,249,113,1,121,8,78,4,186,250,51,251,8,2,58,0,246,253,82,3, +42,5,73,253,240,245,195,254,182,8,26,250,4,246,112,12,21,1,251,235,86,9,29,10,47,227,11,3,202,31,191,231, +152,236,90,39,249,255,241,223,110,21,254,12,31,232,87,11,69,10,98,233,79,8,72,11,163,233,107,5,36,14,43,239, +141,9,82,14,97,229,24,7,63,31,168,232,33,242,76,23,134,241,14,245,212,25,150,243,233,238,233,28,62,251,12,225, +196,15,243,8,166,235,128,6,36,7,41,249,213,15,55,3,59,241,127,17,14,8,62,234,19,10,40,7,68,223,91,3, +245,24,211,231,182,245,156,29,227,245,195,231,10,18,76,7,224,240,184,8,107,8,73,246,53,1,241,255,154,248,78,10, +3,3,5,239,181,6,219,12,19,238,185,1,236,26,72,239,17,232,27,26,182,3,86,222,6,15,38,24,8,225,233,249, +135,28,33,234,170,236,93,32,227,250,152,225,72,23,63,13,30,232,145,13,241,14,215,231,246,5,136,19,185,236,221,0, +4,22,202,242,38,255,228,18,87,231,201,241,24,34,122,252,75,226,133,16,191,12,77,236,1,1,88,9,143,249,209,1, +54,0,98,251,95,11,194,255,212,245,240,20,110,10,47,232,239,10,99,29,98,239,184,245,10,23,230,248,242,239,127,19, +78,3,68,234,187,0,196,0,31,244,88,10,209,4,116,232,88,254,74,16,150,245,8,247,138,13,184,3,2,251,115,255, +133,255,174,13,78,9,208,232,254,253,89,28,149,235,157,227,35,39,47,13,133,210,108,13,216,37,68,221,167,238,78,38, +135,247,31,230,184,24,141,7,45,235,48,6,62,0,68,243,74,11,48,251,91,234,254,15,83,9,4,234,220,13,41,26, +254,242,104,254,44,13,183,241,23,255,87,18,139,243,149,247,108,19,2,250,118,238,29,11,200,4,211,244,213,0,229,253, +142,245,34,254,70,253,25,0,229,10,176,255,53,255,136,18,118,1,253,237,91,9,45,16,187,241,171,246,137,14,242,4, +93,247,82,255,10,7,132,1,126,245,77,246,191,5,113,5,178,247,64,252,2,7,55,2,53,252,202,253,92,1,108,2, +26,251,131,248,95,5,57,8,138,250,152,248,122,2,21,6,243,0,124,246,168,247,160,7,0,5,180,244,18,251,142,2, +241,248,72,255,1,9,122,250,148,251,93,18,141,10,37,245,134,0,105,14,209,254,18,242,214,255,88,12,51,254,204,238, +22,254,138,14,236,252,122,237,231,253,16,7,33,250,171,252,244,11,91,6,6,251,229,4,237,13,138,3,152,254,149,7, +46,5,85,249,250,251,143,3,7,254,201,250,18,3,86,2,57,248,102,253,170,9,123,2,2,249,133,3,249,5,192,246, +6,252,108,11,102,252,123,240,252,5,58,10,94,245,221,251,164,10,86,255,78,0,243,14,153,2,227,248,189,7,110,4, +151,247,168,0,100,2,134,252,42,7,124,2,131,243,67,3,252,9,165,244,110,248,141,3,181,249,166,2,44,6,238,236, +158,252,81,23,37,242,93,230,192,20,195,11,16,236,165,9,125,18,80,241,222,250,147,13,150,253,239,251,150,1,8,248, +111,1,195,11,243,250,94,246,145,4,221,5,181,252,6,246,43,254,161,11,17,253,227,243,113,15,39,10,7,233,18,1, +35,25,237,248,234,248,37,18,231,253,208,253,107,23,128,249,67,233,223,15,152,3,254,227,152,4,153,13,25,236,45,250, +46,11,167,246,85,253,114,7,148,244,17,253,249,10,244,250,159,1,112,11,139,247,56,3,215,19,86,243,24,245,81,25, +6,2,112,238,78,13,208,0,212,228,142,3,156,13,193,240,214,253,21,16,92,251,134,248,179,8,194,3,75,253,173,0, +83,1,127,3,189,4,71,5,112,7,51,254,236,247,125,1,60,253,77,245,75,4,207,3,218,246,2,12,192,17,91,238, +204,245,123,22,240,252,216,232,239,9,6,8,188,233,14,255,161,17,38,244,98,240,188,6,66,252,59,245,140,7,230,1, +59,245,23,3,177,3,74,248,14,6,231,9,53,249,95,5,172,18,201,249,97,243,158,11,206,6,202,246,208,1,45,6, +185,252,224,0,185,3,148,255,73,5,210,4,101,250,69,251,55,253,104,251,8,4,67,3,248,245,200,253,189,7,188,247, +183,244,156,7,66,5,141,249,209,1,145,6,4,0,253,1,119,2,244,252,138,2,102,4,7,245,75,244,3,7,29,5, +160,246,232,255,84,6,169,243,10,247,41,17,252,6,132,240,205,2,210,16,5,252,121,249,248,11,134,7,53,252,66,0, +27,255,38,249,58,0,144,8,85,2,255,249,19,255,2,3,17,250,237,252,0,8,241,249,135,244,134,16,26,11,132,236, +151,3,58,24,248,242,42,239,163,16,107,255,25,238,131,10,226,8,216,242,117,0,35,3,245,243,64,1,63,6,86,245, +231,255,216,12,251,253,217,252,163,7,113,0,88,251,40,254,10,253,105,1,250,0,251,249,211,3,159,6,105,244,141,250, +5,10,182,248,166,245,195,13,105,4,90,243,91,6,185,7,91,243,110,2,206,14,73,245,78,247,246,20,234,7,50,240, +215,4,88,16,91,244,103,240,205,12,140,12,9,248,218,254,1,11,231,254,228,247,138,1,37,2,210,254,51,5,53,4, +130,250,196,251,231,0,38,250,201,243,17,253,251,7,7,1,51,248,65,2,247,6,50,248,253,248,237,8,229,2,7,250, +27,7,230,8,54,251,29,254,61,3,136,251,141,252,235,255,131,250,157,1,2,9,18,249,201,245,131,11,191,7,40,241, +27,251,132,13,82,2,180,250,141,5,211,2,220,250,127,2,255,3,56,252,14,0,37,3,212,254,1,5,128,7,63,249, +212,247,178,5,40,4,150,251,168,255,229,1,78,252,51,253,102,2,3,1,231,252,41,0,206,7,23,5,4,251,56,253, +188,4,253,255,60,253,188,2,252,253,227,250,211,6,246,3,81,243,187,250,203,8,108,0,130,251,160,1,33,255,250,255, +181,3,202,250,237,250,58,4,53,252,224,250,179,9,157,4,193,252,232,5,105,253,85,244,213,7,227,8,208,245,113,254, +127,7,161,253,50,2,72,3,10,246,55,0,60,11,143,250,28,248,212,5,10,1,238,253,42,7,113,4,194,254,77,2, +157,0,41,251,54,253,53,1,70,254,218,249,135,0,122,7,230,253,21,250,17,7,0,6,134,251,225,0,238,2,77,252, +183,0,201,0,124,249,112,2,118,8,192,251,131,250,234,2,221,252,115,250,0,4,62,1,128,249,5,1,197,5,201,251, +130,249,202,2,198,3,161,255,3,1,94,0,0,255,155,2,129,1,26,254,32,1,102,0,212,252,200,255,76,255,95,253, +41,3,237,1,116,252,84,3,110,5,214,252,147,254,219,2,5,254,166,252,14,255,75,0,97,1,206,253,79,254,242,4, +129,255,156,251,227,7,183,7,181,253,206,3,229,3,237,248,29,0,26,8,144,253,92,248,16,252,147,254,58,4,18,2, +91,247,122,249,44,2,112,2,248,0,42,255,4,254,207,1,22,0,224,250,196,254,58,0,172,252,57,3,174,5,33,249, +148,248,184,6,157,6,187,253,161,0,165,2,190,251,161,253,154,5,174,2,92,254,103,1,59,0,116,253,250,0,12,2, +134,1,157,3,36,254,203,248,175,1,95,7,123,255,11,252,237,255,247,255,124,254,79,0,204,2,156,1,41,254,19,0, +150,4,169,2,32,255,188,254,107,254,26,0,161,0,246,252,152,254,44,1,91,251,91,252,159,5,182,1,149,248,171,253, +23,5,73,1,57,251,250,252,245,1,110,0,186,253,248,1,62,2,67,253,171,1,189,5,102,253,85,250,75,1,80,1, +189,253,159,2,9,8,139,2,41,250,82,255,63,9,11,2,177,247,139,0,168,8,201,0,190,253,43,2,249,253,83,251, +160,3,111,3,173,247,213,248,14,3,20,255,183,251,234,6,174,4,250,246,18,255,57,9,22,254,84,252,2,6,216,254, +183,247,151,255,112,2,181,0,19,2,31,254,61,252,189,1,114,1,245,254,110,2,150,1,69,253,108,1,38,6,136,254, +52,247,208,0,24,10,121,0,227,249,138,1,107,1,67,255,3,6,2,254,23,242,223,1,7,13,218,251,81,248,84,7, +227,3,141,250,5,2,67,5,119,252,193,252,152,3,153,255,194,249,227,254,67,2,250,253,228,255,101,4,197,255,120,252, +247,255,184,0,53,1,158,2,17,253,140,249,241,0,178,4,175,254,120,253,238,1,169,254,146,249,226,0,77,7,182,254, +147,250,45,3,241,2,111,252,48,1,193,5,224,0,95,254,168,0,174,2,138,2,242,255,248,0,47,1,20,248,167,248, +74,8,74,8,151,252,107,0,25,3,125,250,26,255,31,7,190,253,193,249,35,1,21,251,117,246,54,7,70,13,28,252, +73,247,164,255,249,252,101,254,195,9,234,3,167,247,204,254,148,3,166,250,49,255,250,11,10,5,189,247,158,252,198,5, +128,0,204,250,158,0,234,1,49,252,155,255,32,3,135,253,104,255,254,4,15,0,98,253,92,254,1,250,44,254,242,6, +195,1,9,253,43,1,86,255,205,252,14,1,130,5,240,7,52,0,105,244,207,253,204,10,204,255,246,248,108,2,253,254, +54,248,170,3,1,11,47,1,189,250,243,254,13,1,52,254,79,255,69,2,207,255,192,254,147,255,97,251,149,253,62,5, +244,0,130,254,175,5,9,0,167,249,50,4,5,5,208,249,116,251,181,1,76,3,145,3,236,253,178,253,206,4,55,254, +8,249,81,5,149,5,95,249,137,252,150,3,209,1,118,1,75,0,118,253,126,255,134,2,31,3,224,254,42,249,116,254, +87,4,9,254,237,252,202,255,140,248,231,251,99,9,27,2,116,247,53,3,78,9,41,252,157,249,16,6,36,7,220,253, +9,255,156,1,80,250,196,254,64,10,181,255,240,246,218,3,239,2,59,248,236,1,54,6,7,251,87,252,199,0,209,254, +118,2,91,255,176,249,83,3,80,3,142,247,245,1,194,13,252,255,184,247,24,1,41,4,255,254,194,252,32,0,40,4, +192,255,58,250,178,255,15,4,119,253,23,250,215,2,219,9,91,1,203,247,73,0,242,7,235,252,14,248,52,4,63,7, +99,252,252,248,61,2,214,7,170,255,135,250,214,3,226,4,94,249,96,252,100,6,241,255,187,249,200,1,226,5,53,0, +101,254,192,2,86,3,52,254,109,253,97,1,193,254,145,250,123,0,79,6,81,1,85,252,15,255,64,255,194,250,146,255, +50,7,220,253,14,247,219,5,64,8,66,247,101,251,122,8,95,255,159,250,49,4,251,2,45,0,67,3,57,253,8,251, +219,2,152,255,186,250,110,2,166,2,140,251,170,1,91,8,245,255,165,250,89,2,100,3,42,250,53,253,16,9,163,4, +18,251,4,2,217,6,119,253,48,252,148,3,182,255,203,250,82,3,44,6,70,250,169,248,29,3,242,255,17,250,61,5, +225,7,229,249,224,250,63,5,91,1,244,251,60,253,5,255,136,3,169,0,202,247,97,255,231,7,237,254,120,255,116,7, +95,253,145,249,123,6,206,2,209,246,92,253,63,5,146,1,225,254,176,254,69,254,212,255,40,0,116,254,69,255,226,3, +1,7,18,3,47,255,151,1,160,255,254,249,40,254,59,3,140,0,10,2,91,4,218,255,233,0,99,2,127,247,201,244, +213,0,87,1,145,251,148,2,11,4,226,250,179,254,71,6,213,0,120,0,8,5,123,251,99,246,72,2,168,3,138,250, +86,254,125,1,50,249,248,250,215,4,192,2,31,254,105,2,26,4,145,0,160,1,138,4,220,1,213,253,203,254,54,2, +123,2,45,255,49,253,127,255,243,1,86,2,52,4,161,3,197,253,162,254,232,4,164,0,110,252,80,3,213,255,57,243, +129,248,45,4,110,2,153,0,111,0,192,249,54,250,66,1,48,254,249,249,246,254,177,0,149,252,71,254,172,4,29,4, +162,252,45,252,85,3,200,1,30,251,124,255,23,4,251,252,125,251,178,5,40,7,162,254,149,254,238,2,54,255,169,254, +49,5,144,2,58,253,104,2,145,3,19,0,140,4,84,1,28,249,72,4,165,10,192,250,50,250,135,6,11,254,111,247, +168,3,203,4,197,251,101,0,128,7,163,0,8,249,186,255,107,4,47,248,39,248,92,12,37,7,178,241,90,255,66,17, +224,254,73,243,142,2,190,5,244,250,83,253,236,6,238,3,29,251,86,255,138,5,82,252,185,248,200,3,237,2,241,250, +28,255,127,1,113,254,213,255,148,254,207,253,6,2,127,255,235,252,103,2,212,1,128,252,68,254,246,2,216,2,196,250, +243,247,130,4,47,5,54,248,194,1,164,11,83,250,117,248,60,8,202,255,43,245,60,254,11,2,63,1,17,4,148,2, +158,2,177,255,171,248,188,1,247,8,177,251,152,251,133,7,232,0,201,253,143,7,109,2,41,251,237,2,226,4,254,253, +250,252,41,0,139,1,109,253,209,248,146,254,149,5,139,3,169,1,196,255,192,250,92,254,246,4,176,254,114,248,74,255, +226,3,163,255,207,0,155,5,253,255,232,248,221,253,242,1,173,252,159,252,79,2,157,0,182,253,23,2,233,3,92,255, +79,254,255,0,237,255,200,254,83,2,185,2,89,254,66,255,255,2,139,0,49,253,28,254,240,254,25,0,214,3,215,4, +176,255,78,252,197,0,237,0,5,248,22,252,99,11,79,6,115,248,12,0,168,6,19,252,150,254,74,11,217,1,93,244, +46,255,255,6,43,249,13,249,15,11,3,4,69,241,218,254,214,12,130,251,163,246,192,7,223,6,183,255,147,5,52,0, +238,244,201,253,131,7,127,253,161,244,12,253,103,6,1,3,78,255,88,2,39,255,26,250,28,1,197,5,140,253,110,250, +129,1,35,3,171,252,149,250,174,255,203,255,137,251,36,0,185,4,10,0,45,1,246,5,41,2,134,0,207,255,167,250, +150,1,39,9,163,254,217,251,167,3,215,252,34,250,150,4,142,255,137,246,244,0,203,9,176,3,68,253,249,254,48,4, +38,2,219,253,199,3,218,1,40,243,70,250,211,13,224,4,183,245,149,0,153,8,121,253,121,251,120,3,210,253,136,247, +241,3,167,9,244,249,241,246,43,7,170,6,147,250,128,0,64,7,101,253,135,253,25,10,108,1,48,240,76,252,5,12, +44,254,210,246,141,6,172,5,138,250,237,3,10,8,112,249,140,246,38,254,144,254,253,253,182,253,74,253,81,1,63,2, +179,1,204,4,64,255,127,248,37,255,144,0,251,249,2,255,104,4,182,2,185,4,170,253,231,243,123,2,98,12,204,250, +194,249,166,10,77,1,157,245,78,6,8,11,56,246,118,243,173,6,90,10,43,251,242,248,214,7,251,6,93,249,78,3, +166,15,224,254,160,249,96,9,91,254,22,241,35,6,121,12,68,249,14,251,219,1,249,249,229,0,61,11,196,254,46,246, +35,1,9,8,74,0,143,249,221,0,135,4,58,248,173,251,34,14,252,2,242,239,16,254,49,10,90,1,250,1,21,5, +219,253,242,252,14,254,115,252,235,2,107,3,87,250,113,255,199,6,235,249,9,243,154,4,179,13,147,252,181,242,151,1, +194,8,139,253,45,0,96,10,138,251,200,239,144,5,77,14,192,244,170,243,29,15,179,6,79,237,30,1,195,22,27,251, +86,236,127,10,49,16,108,243,69,244,107,11,62,7,194,248,143,255,141,5,52,252,204,252,88,6,30,255,132,245,50,253, +130,0,86,251,28,2,159,6,204,253,71,254,199,2,12,250,239,250,68,9,218,2,183,242,93,254,72,13,0,253,162,242, +154,7,102,11,118,245,119,252,119,17,15,2,72,242,228,1,125,3,109,244,76,253,117,5,80,245,13,248,173,16,244,11, +207,247,247,3,89,18,178,254,170,246,200,10,124,2,77,235,234,0,219,21,225,248,147,236,29,8,40,6,14,242,195,2, +172,15,2,250,169,246,163,9,58,2,166,241,189,251,59,5,115,250,75,250,54,10,38,7,233,245,52,254,95,15,29,255, +235,236,252,253,91,9,221,253,30,2,38,10,211,253,51,252,14,7,45,2,1,253,63,255,30,249,52,249,193,2,113,2, +145,2,201,7,211,2,124,253,239,254,33,254,93,0,2,3,154,255,245,1,197,4,192,255,12,2,24,5,129,253,230,252, +56,0,8,253,139,3,141,9,54,254,31,251,99,4,80,0,234,247,169,251,117,1,127,254,128,246,246,250,45,9,156,3, +152,247,8,3,96,8,127,251,79,0,140,9,147,255,131,254,105,5,33,252,55,248,107,3,174,3,246,250,244,252,51,6, +1,7,8,254,29,253,43,3,148,251,138,245,45,0,169,255,178,248,93,4,173,4,176,245,2,2,55,16,215,254,86,249, +131,6,32,255,36,249,84,7,226,4,212,244,246,248,0,3,65,253,23,247,138,254,99,6,118,0,239,251,193,5,232,4, +206,245,208,250,20,6,200,248,138,244,164,6,55,4,71,248,184,5,108,12,223,249,30,244,139,0,209,3,46,253,246,250, +132,3,39,10,169,254,185,249,174,12,139,11,76,243,212,252,82,16,176,249,179,238,104,15,59,18,176,238,77,241,210,18, +156,15,30,244,172,249,179,14,18,254,220,235,66,13,184,29,107,239,57,230,116,23,50,20,194,234,80,247,194,14,9,252, +81,243,255,7,94,16,130,1,28,243,253,249,25,5,187,248,159,242,204,6,36,8,80,247,22,255,42,9,78,255,165,254, +82,6,21,3,106,253,200,251,135,3,98,16,34,6,45,242,9,252,178,10,175,255,56,249,113,3,26,5,233,253,145,254, +252,7,77,9,58,248,203,240,249,2,169,4,202,239,84,249,0,19,117,6,180,242,189,1,253,12,135,252,86,244,54,254, +18,0,172,248,142,249,143,0,154,255,67,249,61,250,29,0,197,1,11,1,55,0,106,254,233,254,207,1,34,4,136,3, +251,252,175,250,131,6,101,10,48,250,41,246,30,6,108,6,228,248,231,254,182,10,224,253,179,241,197,1,173,10,4,249, +80,247,87,7,188,254,14,242,71,0,173,5,176,247,174,250,118,7,34,5,75,255,84,1,92,5,49,3,30,250,179,249, +84,5,86,9,19,2,204,250,145,250,82,3,13,4,130,248,244,252,56,8,56,253,27,248,231,7,115,6,42,247,82,251, +250,5,48,1,119,249,215,0,63,10,162,253,179,243,34,8,127,13,48,243,7,248,236,21,223,10,129,239,162,250,80,13, +80,255,147,241,228,3,199,11,18,241,137,242,118,23,62,15,134,236,235,251,49,18,95,255,235,248,211,10,133,6,221,246, +145,253,152,12,66,8,42,247,86,246,241,3,144,4,203,253,17,1,115,2,233,252,222,253,97,6,215,11,166,3,100,245, +24,249,66,5,251,252,88,241,252,249,192,0,94,251,98,255,220,6,87,1,118,0,237,6,71,252,76,243,170,3,214,6, +101,246,10,3,95,19,175,250,199,239,167,12,77,14,218,242,143,246,200,9,115,0,127,243,83,1,89,9,53,247,251,245, +166,10,112,3,203,246,107,12,30,11,219,231,70,243,69,20,193,253,204,230,216,3,84,17,250,247,126,246,157,13,212,8, +202,242,144,247,102,9,136,5,194,251,221,2,183,6,49,252,227,251,224,7,133,5,252,249,147,252,241,0,57,252,29,1, +9,7,148,252,118,251,161,6,233,255,107,249,134,5,41,4,220,244,197,246,79,3,21,7,68,2,158,255,18,3,227,253, +68,249,193,10,225,12,174,242,15,249,58,17,55,0,76,242,117,6,31,7,184,247,6,0,93,8,29,251,221,242,165,1, +142,14,64,0,78,246,87,9,19,12,162,246,125,251,83,12,250,0,22,242,85,251,119,11,118,6,65,244,229,252,205,15, +72,253,191,237,0,4,162,6,40,243,16,0,182,16,34,251,177,230,218,249,122,19,178,5,43,241,79,5,239,16,116,249, +57,254,230,13,45,245,135,239,219,8,120,253,212,240,61,11,37,14,62,246,229,252,239,13,224,2,208,242,36,249,55,5, +168,254,189,247,255,2,149,4,2,250,29,1,240,5,141,249,186,255,244,13,254,0,19,249,174,8,24,5,77,244,76,1, +164,15,137,251,127,238,221,253,34,0,16,243,95,247,191,5,82,9,180,0,44,251,163,10,80,19,231,250,233,245,235,20, +78,18,105,241,59,242,182,6,58,7,172,252,126,252,103,9,105,9,55,247,150,251,42,13,170,0,116,242,234,252,16,4, +94,5,74,4,212,247,3,247,9,3,236,2,39,6,132,12,131,252,196,242,241,4,32,12,243,252,188,247,164,2,181,5, +113,250,151,247,126,0,250,253,224,247,117,255,130,3,221,255,94,3,245,5,136,1,173,254,7,254,75,253,44,249,53,245, +36,254,80,8,32,2,43,252,180,3,218,10,42,7,247,254,144,255,149,3,47,252,182,247,218,253,20,254,169,1,164,8, +1,253,155,247,130,6,18,4,14,248,143,253,168,1,169,254,114,251,10,248,196,1,122,5,133,245,48,250,166,4,204,244, +156,251,17,18,129,2,72,248,117,6,198,0,24,253,170,4,255,249,161,247,42,254,176,246,12,5,137,23,94,255,215,241, +161,6,194,6,56,247,144,248,75,3,120,6,155,247,6,246,102,22,64,25,238,245,1,246,194,7,247,253,96,250,83,1, +118,255,230,3,141,0,144,245,58,7,130,15,213,236,134,230,161,11,178,12,205,241,28,254,107,20,13,1,1,238,241,0, +143,12,18,249,219,239,203,0,78,14,188,7,231,251,169,253,124,4,170,255,44,247,160,242,85,243,48,1,206,11,186,5, +105,5,165,6,134,252,20,1,111,6,119,242,6,245,104,19,75,14,42,248,199,0,3,10,65,0,47,252,132,0,13,1, +199,251,245,248,186,0,163,7,109,6,12,7,208,4,120,253,129,255,230,3,249,251,198,244,237,253,203,12,154,10,223,250, +57,247,170,252,39,251,152,252,252,2,92,4,117,4,210,0,68,251,108,254,217,253,173,248,41,253,5,252,247,251,172,15, +114,14,216,245,113,253,185,9,84,246,215,247,124,13,7,255,104,235,145,254,69,17,100,5,133,250,68,3,95,4,209,245, +82,247,23,7,206,3,239,245,233,248,150,6,4,8,55,250,169,250,110,13,212,4,224,235,249,249,70,15,52,1,226,249, +81,7,112,4,5,246,8,245,155,0,24,6,33,250,60,244,81,3,214,11,36,3,146,248,14,247,23,2,135,0,83,239, +3,253,177,18,216,253,198,243,74,12,247,8,36,246,96,254,215,6,183,0,40,250,232,251,145,7,187,2,11,246,255,10, +12,21,175,245,198,243,33,11,229,1,221,251,158,8,105,1,194,248,119,253,65,252,185,0,117,9,224,2,33,251,142,253, +113,0,149,252,18,247,202,1,54,12,175,251,108,248,235,13,5,4,18,241,176,3,186,11,23,247,230,244,122,4,161,13, +136,8,224,248,63,253,57,13,132,253,154,240,6,7,42,8,182,241,250,253,146,15,148,252,171,243,194,7,198,9,147,250, +23,255,20,10,56,4,173,254,185,4,235,6,238,253,234,245,140,251,115,4,235,1,207,1,43,6,30,253,65,251,165,9, +228,2,74,244,63,254,19,1,50,248,238,1,5,6,79,249,178,250,45,3,228,1,54,253,31,249,217,253,56,2,146,247, +124,247,4,6,40,7,126,1,244,249,179,246,37,11,228,8,2,229,122,247,239,31,246,0,221,230,159,7,201,14,144,250, +146,1,87,13,188,8,36,252,215,246,191,6,103,7,78,237,36,243,115,14,209,7,139,248,93,0,241,10,243,5,2,249, +53,254,147,9,173,249,92,245,87,12,48,3,207,243,36,10,76,8,212,237,119,248,146,7,233,254,253,250,186,250,169,255, +183,4,119,246,65,251,39,18,34,254,136,238,1,16,186,13,92,233,73,251,30,21,59,247,25,231,162,9,190,22,31,247, +222,236,173,7,66,13,102,250,183,253,219,10,75,2,153,247,189,254,29,7,68,255,60,249,169,9,139,13,205,241,207,238, +208,11,11,15,16,0,234,254,156,1,34,5,88,255,1,239,123,254,143,23,220,252,23,228,113,5,147,25,212,248,61,234, +102,9,169,16,183,236,179,239,141,25,188,5,26,220,60,1,129,28,255,234,28,232,58,32,245,18,174,225,138,245,186,23, +157,1,203,237,21,5,90,14,28,249,238,250,227,9,90,251,177,245,250,14,192,14,61,247,167,253,0,12,138,255,191,246, +104,2,6,8,172,1,86,1,247,4,253,253,31,247,84,0,134,5,129,249,152,251,167,13,104,4,155,239,160,0,38,19, +128,252,77,241,79,5,50,3,15,250,28,10,108,5,212,239,209,254,84,13,12,251,173,250,96,10,237,0,67,248,63,3, +153,255,141,236,141,242,45,15,178,12,116,236,55,245,135,25,178,6,76,225,211,248,65,20,79,246,187,230,136,17,251,32, +222,240,211,229,234,21,199,15,164,223,216,243,73,21,43,250,182,246,39,23,62,6,105,232,66,249,33,13,149,9,161,1, +146,255,153,7,40,6,139,245,234,249,73,10,63,3,47,252,107,3,58,254,38,247,165,3,51,12,254,0,70,248,57,252, +176,253,54,253,24,3,244,0,91,247,200,250,241,255,133,254,7,6,119,3,25,241,21,249,93,12,20,255,135,242,191,1, +118,8,102,253,59,251,0,5,234,4,77,246,54,250,38,16,184,2,147,229,223,248,139,18,215,255,18,247,166,12,134,12, +231,250,46,252,125,1,7,251,201,253,74,11,47,7,254,246,148,252,24,13,115,6,8,246,238,247,90,2,195,3,204,1, +219,3,87,2,30,254,128,2,33,2,162,246,120,254,65,12,178,248,77,240,48,17,28,21,251,244,4,249,238,13,238,253, +178,237,158,255,230,12,61,255,91,251,51,14,173,10,197,236,48,238,50,9,223,2,155,237,44,253,42,23,151,12,0,246, +190,254,14,13,204,250,60,236,247,254,238,8,177,252,197,253,150,11,163,14,49,3,65,247,153,252,255,2,123,247,75,249, +43,11,241,4,248,248,155,3,43,7,225,251,105,251,95,4,162,3,105,243,168,238,18,4,229,8,23,251,67,7,126,9, +73,234,171,239,210,17,5,13,120,253,248,2,85,2,91,253,155,255,150,0,145,253,193,244,80,246,79,9,115,10,11,255, +237,6,111,6,85,247,21,252,165,3,97,254,211,253,45,253,245,1,96,12,75,253,154,238,32,3,210,11,108,248,12,244, +42,254,238,3,127,4,79,0,8,2,187,255,103,240,145,251,64,21,17,0,114,228,131,253,8,19,237,253,212,244,0,10, +142,10,34,240,135,243,85,17,72,8,45,237,231,250,209,9,0,254,116,4,142,14,249,251,165,244,137,3,9,7,56,3, +177,2,71,1,184,1,87,254,8,250,206,254,2,253,209,247,103,5,185,10,104,246,203,244,67,9,68,6,205,249,1,4, +242,6,70,247,0,252,223,11,3,5,249,254,243,5,9,0,206,252,105,9,148,4,177,244,12,249,200,2,185,4,154,4, +144,0,44,2,146,4,100,248,56,249,223,10,151,4,111,249,233,3,31,254,49,239,106,0,79,15,226,255,173,252,64,15, +167,15,22,253,5,252,220,9,125,1,68,239,179,251,30,13,37,255,88,243,186,0,206,8,70,2,11,1,34,4,17,252, +162,242,110,254,181,10,100,250,133,239,194,255,164,4,183,255,25,9,55,6,66,250,113,4,125,6,224,245,248,254,223,13, +215,248,134,234,63,3,251,16,181,250,254,240,206,6,110,10,111,242,52,245,78,13,197,5,33,245,208,2,219,10,244,248, +159,244,8,3,108,3,132,250,71,255,24,4,13,250,242,250,42,13,163,7,183,239,210,247,174,11,181,0,108,250,215,8, +35,0,150,243,83,7,30,10,142,242,32,0,16,24,66,1,100,242,35,10,147,9,48,245,94,0,144,11,215,249,249,243, +102,1,55,254,172,240,217,247,119,9,48,5,254,246,240,0,130,11,24,246,31,236,218,6,14,11,120,240,172,247,225,16, +20,1,20,240,115,6,199,7,163,234,18,249,100,23,169,253,25,232,33,8,98,17,127,245,14,250,20,15,124,6,91,250, +187,254,94,1,233,250,32,243,125,250,196,15,248,16,70,252,70,249,57,7,97,3,33,243,236,246,138,7,97,2,48,244, +188,2,93,20,199,1,129,238,138,253,189,11,89,254,66,245,62,8,13,18,77,246,185,233,177,7,124,11,43,241,142,3, +156,27,73,249,81,235,98,20,216,20,221,240,143,254,159,23,148,253,53,232,86,254,222,10,208,250,54,248,81,9,115,12, +40,255,34,254,245,7,187,255,220,241,225,255,108,13,115,249,18,241,191,10,222,16,240,253,86,254,40,5,196,250,59,247, +67,1,163,4,246,2,247,3,175,1,112,251,54,250,46,255,56,0,51,254,110,2,68,4,202,255,150,2,196,3,66,250, +208,251,215,3,232,250,3,248,182,10,213,14,181,253,62,252,224,6,105,252,126,238,92,254,234,10,25,247,81,243,72,14, +100,16,53,252,157,252,73,3,36,253,92,247,78,248,193,254,31,254,98,245,10,1,144,14,52,253,159,248,151,6,63,247, +126,246,255,21,101,4,35,229,237,4,116,17,119,234,212,240,62,15,52,253,221,243,36,17,252,17,4,249,48,253,19,11, +236,253,251,240,232,252,221,4,58,250,227,250,212,12,172,14,17,252,42,248,103,7,35,6,208,247,161,254,167,4,212,243, +127,248,188,12,173,250,187,239,7,20,229,22,3,238,114,244,217,19,5,5,90,247,12,13,98,10,91,242,163,253,25,10, +236,240,121,237,5,13,81,10,222,243,160,2,160,18,164,2,2,246,166,249,118,255,146,255,26,246,9,248,98,7,171,3, +118,253,200,8,22,5,216,252,138,4,73,250,242,241,158,7,255,1,33,234,204,254,225,12,143,244,161,250,212,16,138,252, +17,236,245,4,105,15,94,245,181,240,42,15,218,14,22,238,226,245,148,17,37,2,15,242,53,2,165,5,145,253,175,4, +231,9,161,3,208,249,154,248,226,4,133,1,240,246,173,12,164,19,232,242,227,244,180,10,32,248,238,241,241,4,9,253, +229,252,243,13,91,254,92,245,64,10,189,2,138,241,221,254,131,3,92,251,67,4,148,10,28,2,147,249,164,247,145,255, +117,0,76,244,150,253,202,17,54,6,224,246,5,3,159,9,175,253,224,245,74,247,84,254,193,5,134,5,65,1,65,254, +75,254,240,0,91,255,103,255,229,5,106,1,33,250,221,3,213,4,171,250,32,7,153,12,126,245,19,251,79,20,137,255, +4,231,93,1,44,20,201,253,89,244,73,8,19,15,163,253,0,248,83,7,215,3,38,240,226,252,85,17,70,254,54,243, +133,10,163,7,194,238,192,249,42,14,105,1,23,243,72,253,121,6,72,254,58,250,117,5,129,6,173,252,81,4,200,6, +113,242,150,250,139,21,200,1,125,233,19,0,192,9,190,249,217,3,12,12,110,249,215,251,129,16,31,12,250,250,84,247, +85,253,104,255,104,250,10,0,194,12,29,2,180,245,8,8,235,15,28,250,239,245,76,2,110,251,158,243,180,254,155,4, +57,250,222,245,171,2,72,11,40,2,215,251,82,2,96,7,162,6,42,252,134,238,238,251,6,17,108,255,168,238,64,6, +140,12,222,242,88,248,220,14,160,254,168,235,111,3,51,22,251,253,59,239,83,4,245,4,84,237,156,249,142,18,182,0, +36,239,175,4,76,16,57,253,23,246,159,6,225,12,221,253,175,248,185,4,7,3,52,252,234,6,181,3,128,242,249,254, +160,12,41,252,148,252,217,13,58,3,139,247,195,0,38,254,57,247,220,0,225,1,182,248,104,2,191,15,112,1,102,239, +97,255,253,19,62,255,6,229,148,247,55,16,104,3,232,245,171,3,61,9,145,249,215,249,226,11,225,8,52,249,99,253, +35,4,43,255,252,255,139,253,200,245,30,0,181,6,62,249,95,254,225,13,159,1,62,246,0,1,24,2,200,246,186,249, +25,11,2,14,79,248,135,246,227,18,204,12,54,238,164,248,161,6,52,248,9,0,165,11,222,247,233,246,156,7,13,255, +25,253,68,9,211,254,122,246,138,3,92,6,242,253,100,252,118,0,65,4,67,255,148,251,182,3,12,252,216,235,151,0, +191,24,251,255,143,231,86,255,63,21,38,1,220,241,227,5,54,9,89,239,210,246,114,15,91,253,97,238,142,4,227,7, +27,253,52,9,54,12,137,0,115,0,46,254,90,254,153,9,35,2,112,245,225,0,182,6,116,251,29,248,220,253,0,6, +124,5,26,251,231,2,196,11,43,248,244,247,84,14,103,253,122,236,143,9,89,16,141,245,28,251,229,13,179,0,65,239, +49,249,183,11,128,3,119,240,84,2,124,24,175,255,165,239,242,6,145,2,168,235,6,0,117,20,84,253,34,244,130,13, +62,13,106,240,234,243,253,14,67,7,200,241,210,253,163,9,29,251,148,249,56,7,99,2,212,248,210,0,195,6,248,249, +47,241,63,1,3,12,194,249,170,243,204,6,100,5,208,248,103,2,32,5,32,249,194,252,47,2,17,254,240,1,196,255, +151,242,68,248,64,9,99,7,152,251,250,253,233,9,73,5,207,246,231,2,76,19,135,253,158,238,67,8,60,14,136,243, +130,244,215,12,225,10,241,246,237,248,148,11,240,6,187,242,79,251,203,10,194,250,40,245,205,9,89,3,243,240,254,255, +208,9,134,249,43,251,207,7,30,254,194,246,198,2,140,6,189,252,195,248,128,252,17,2,204,6,145,4,78,255,194,1, +88,3,46,250,221,246,167,1,224,5,170,0,230,5,208,12,40,0,68,244,150,2,126,14,113,252,231,240,214,3,93,9, +186,246,209,253,155,20,114,5,55,236,126,252,95,18,168,1,95,237,61,249,143,6,6,252,19,250,130,11,209,5,201,240, +237,252,166,10,111,244,205,243,73,20,179,15,165,247,63,1,191,3,9,243,203,254,174,9,183,246,99,253,82,24,234,9, +140,241,218,254,228,10,183,251,243,243,33,1,168,6,210,249,175,250,161,15,220,9,240,240,20,254,177,15,138,246,202,241, +191,16,156,3,178,228,35,254,35,21,183,247,138,236,22,9,166,13,13,248,19,247,168,3,150,255,183,248,120,2,108,5, +249,244,100,242,63,4,52,8,0,0,73,2,135,3,115,254,43,2,36,3,88,248,182,251,216,11,20,5,147,242,8,251, +191,10,106,0,64,249,220,8,157,7,70,244,252,251,38,13,87,0,34,246,116,2,172,251,28,236,47,2,232,21,184,251, +20,240,53,14,247,13,206,237,53,247,249,18,16,5,168,244,228,2,225,3,93,244,144,252,176,12,93,4,19,248,93,1, +119,12,193,1,133,247,243,2,0,5,107,243,252,247,198,12,30,8,111,252,11,2,112,3,229,253,86,254,245,254,102,1, +105,2,46,247,136,242,17,255,54,7,68,6,107,2,0,253,33,0,249,2,149,252,85,2,7,8,27,248,140,249,135,13, +183,2,100,247,144,11,213,9,162,243,176,253,126,10,18,251,217,246,145,6,240,10,19,2,29,251,191,252,41,2,32,0, +18,251,94,253,93,2,166,4,147,3,62,1,146,2,115,255,207,245,173,251,234,10,17,3,191,243,225,253,12,10,75,253, +26,244,176,2,9,10,19,254,214,252,111,3,176,248,164,243,93,5,8,10,82,251,244,249,85,3,183,3,171,253,39,251, +189,0,91,2,141,249,130,253,71,9,212,255,67,248,8,3,68,0,126,250,71,5,173,0,14,246,231,2,116,3,125,245, +104,4,35,18,78,254,89,243,131,255,171,4,196,255,161,252,100,1,8,7,214,253,3,249,114,8,160,6,238,242,210,251, +142,12,32,255,96,246,9,5,159,8,35,254,46,251,60,254,85,1,128,1,223,252,223,254,2,8,198,5,209,251,254,251, +23,255,186,252,91,255,88,3,207,254,136,255,172,8,213,5,62,253,126,2,226,5,221,251,123,251,5,6,59,2,216,247, +115,253,99,5,241,254,106,250,186,255,124,254,58,251,214,4,5,8,154,248,162,245,98,5,93,4,112,247,118,0,19,12, +244,251,151,240,250,4,246,15,119,249,102,237,5,1,48,13,242,1,43,253,104,6,233,5,59,251,201,253,196,8,8,1, +216,241,215,249,71,7,190,0,79,252,98,4,204,5,77,5,209,5,219,251,118,250,105,4,183,250,58,244,13,11,165,11, +234,239,52,250,163,22,184,6,5,239,88,252,65,10,47,1,252,249,111,253,27,255,18,252,100,252,30,4,107,8,192,1, +242,252,45,1,185,2,137,254,46,255,95,5,121,5,250,251,109,247,108,0,197,4,160,250,219,249,211,8,173,10,154,255, +136,1,42,3,156,243,178,240,72,2,181,3,23,250,15,5,122,12,162,248,50,243,218,13,120,18,157,241,195,233,35,10, +97,15,7,240,205,241,102,14,35,4,77,242,155,11,60,21,210,243,54,241,75,12,251,0,57,237,159,2,92,17,197,251, +28,242,156,2,70,7,31,252,223,255,154,15,209,8,171,242,209,246,144,9,38,4,125,249,244,255,18,0,39,250,51,1, +22,5,15,0,181,0,218,253,37,249,198,1,89,4,0,250,149,251,9,255,192,247,81,255,128,13,254,2,246,245,184,253, +54,1,236,247,29,251,91,11,196,12,229,252,171,248,227,0,55,252,28,249,24,9,156,9,82,246,180,250,73,9,173,254, +168,246,243,1,157,2,80,251,176,2,229,9,238,255,19,246,116,254,237,7,217,252,210,245,114,7,128,10,53,246,198,253, +66,18,50,255,12,238,15,7,119,15,221,244,106,243,54,6,62,0,89,250,133,9,90,7,3,246,27,255,199,13,239,254, +203,243,176,1,91,3,157,247,245,1,141,13,244,251,93,243,199,8,18,11,165,242,0,246,65,15,242,8,9,244,75,254, +213,13,121,255,149,243,21,4,4,13,48,251,223,244,77,8,178,13,194,252,206,251,149,6,236,249,230,236,19,0,69,13, +125,251,222,246,201,8,244,6,58,248,250,251,67,2,240,254,69,1,53,2,43,252,96,255,190,3,133,253,4,253,254,0, +193,253,224,255,191,4,204,255,132,255,20,3,19,252,97,252,229,6,145,2,215,248,208,251,104,1,14,5,231,4,56,255, +232,1,85,5,142,250,226,248,220,2,9,253,80,249,179,8,196,10,8,251,237,246,68,254,186,1,229,254,13,255,234,8, +42,9,62,248,84,246,139,4,238,2,97,251,199,0,139,3,20,0,34,3,45,8,107,4,208,249,86,247,245,0,82,4, +109,0,22,2,122,254,224,247,198,1,201,10,141,3,234,255,185,255,213,248,180,248,233,0,24,6,253,5,105,0,237,253, +60,0,72,250,27,248,178,2,39,2,94,252,198,3,8,4,194,254,3,4,190,253,193,243,105,1,114,7,45,250,140,253, +103,5,227,253,19,255,229,4,61,254,222,253,243,3,64,255,144,253,165,5,128,4,21,251,227,250,49,1,233,255,113,250, +38,252,126,255,203,252,215,251,239,0,51,4,121,255,71,250,168,2,239,10,104,253,137,246,179,9,123,11,109,248,133,253, +195,7,219,250,211,249,197,7,21,0,240,243,60,1,177,13,191,255,93,245,198,6,100,11,247,240,159,242,30,17,35,6, +195,236,58,2,24,19,93,252,239,245,189,5,177,2,153,247,68,253,121,10,182,10,76,252,95,247,147,0,50,255,213,249, +199,2,69,6,1,253,68,253,154,3,189,254,225,247,179,253,8,6,27,1,165,250,195,255,154,1,46,255,27,5,55,3, +14,249,200,254,201,3,152,250,237,253,153,5,117,252,52,250,224,4,224,6,113,3,173,0,53,254,198,255,194,252,151,250, +197,6,36,9,144,250,142,252,216,7,158,0,62,247,247,252,228,6,37,8,16,255,127,250,194,254,23,252,155,250,90,4, +204,3,96,250,250,253,130,5,37,6,135,3,9,253,124,250,227,253,157,254,248,2,80,6,39,0,16,4,64,10,167,252, +53,249,49,4,46,250,128,244,247,5,84,4,155,247,20,2,56,11,154,4,203,255,149,254,83,0,243,253,219,244,45,252, +212,7,213,253,228,252,37,8,133,252,9,247,161,7,142,1,38,244,193,1,140,7,227,250,226,249,224,0,46,4,71,0, +153,246,36,254,246,11,6,255,175,247,125,9,127,3,168,238,246,250,231,9,178,255,94,254,72,7,201,2,169,255,156,5, +77,3,152,254,164,2,219,255,146,244,127,248,195,4,16,0,80,252,61,11,133,12,229,249,64,251,28,10,117,1,169,241, +236,248,38,6,114,2,197,251,244,3,214,10,236,255,47,249,145,2,208,2,89,251,162,3,82,10,210,254,250,249,14,2, +115,1,170,250,82,252,237,1,199,1,106,254,200,255,130,1,237,252,50,254,79,6,59,1,117,250,71,5,167,5,66,243, +12,245,250,4,73,2,145,254,115,4,24,255,251,251,71,6,124,2,240,247,226,1,42,9,107,253,72,250,255,3,26,5, +70,253,121,248,178,252,196,3,28,2,188,255,160,4,149,3,55,0,15,4,240,253,91,244,106,255,28,7,93,251,104,252, +44,8,91,3,108,253,180,2,199,2,118,255,137,1,197,1,177,252,173,248,240,254,74,8,8,255,155,243,242,2,106,12, +222,248,175,245,154,8,106,3,254,243,197,254,69,10,26,254,140,244,255,254,19,8,202,255,31,248,30,0,165,4,146,252, +199,254,7,9,27,3,178,251,118,4,168,4,18,249,17,255,246,8,130,253,203,246,152,1,193,2,194,253,119,2,96,1, +45,250,120,252,94,1,223,4,159,5,241,249,210,244,7,3,57,6,172,253,8,2,70,3,203,251,75,0,171,4,38,0, +157,255,110,251,70,250,38,9,153,8,126,246,99,251,185,6,180,252,117,249,213,3,131,3,67,252,254,249,91,255,124,7, +225,2,55,252,103,5,196,5,176,247,38,251,59,4,152,253,45,254,55,4,169,251,187,250,213,5,68,0,24,249,59,3, +19,2,239,246,140,0,87,9,7,253,47,252,183,7,184,0,241,247,69,0,202,3,130,254,106,254,160,0,248,1,236,255, +221,252,34,4,154,6,28,251,152,254,222,6,194,249,167,250,78,12,177,2,44,248,41,5,21,2,164,248,51,4,240,4, +152,248,246,251,119,3,93,3,1,0,23,254,179,6,225,5,112,244,38,251,1,9,238,246,76,245,3,13,14,3,238,244, +30,8,19,10,107,247,98,252,14,8,52,0,110,246,42,0,35,15,45,1,234,238,54,4,115,17,77,248,70,246,191,8, +210,255,97,249,195,3,40,1,206,253,52,1,102,255,185,3,25,6,100,253,138,254,192,2,96,255,95,1,99,254,50,250, +94,5,157,2,110,245,127,3,171,11,22,251,41,254,94,9,146,255,209,250,67,255,240,252,75,251,161,251,190,0,231,6, +241,251,207,247,182,9,1,6,22,244,46,255,165,9,36,253,87,251,191,4,241,3,225,253,84,252,4,1,229,255,57,247, +12,0,97,13,98,255,218,245,192,5,24,7,210,247,111,249,36,5,196,4,30,250,52,249,218,6,244,6,196,248,56,252, +127,4,78,254,230,255,224,4,216,251,151,249,137,1,248,1,102,0,176,255,72,253,91,254,92,254,200,255,26,6,70,3, +101,255,11,5,214,255,181,248,188,1,92,255,126,244,213,0,87,12,93,3,123,255,189,1,46,254,114,252,160,253,170,255, +58,0,15,253,155,1,32,5,42,248,226,247,1,9,24,3,118,246,223,2,125,8,117,253,199,255,59,5,181,253,57,251, +214,2,174,5,196,255,197,251,207,1,112,6,201,0,71,253,147,254,39,253,57,254,127,0,50,254,69,255,83,2,3,255, +109,253,86,1,29,1,129,251,158,249,141,1,41,8,177,255,161,248,46,2,58,7,40,255,31,252,121,253,120,252,65,0, +17,5,99,2,131,252,132,250,148,255,190,3,81,254,8,253,164,5,164,3,148,249,182,252,16,4,233,0,21,253,241,0, +245,5,70,2,152,249,205,253,63,8,184,0,168,247,190,2,213,6,47,251,13,255,0,9,94,255,113,249,163,3,108,3, +119,251,70,0,67,5,231,254,21,251,171,255,110,4,218,4,22,2,90,255,208,253,33,254,91,1,130,1,247,252,20,254, +215,1,146,253,91,252,66,5,220,6,143,253,19,250,58,254,165,255,0,255,182,1,147,2,82,253,65,253,62,5,208,3, +169,249,243,249,61,1,78,3,75,3,81,2,30,0,157,0,58,0,5,255,235,0,220,254,209,250,182,0,165,8,194,5, +2,254,216,251,132,254,113,252,19,249,234,1,101,7,47,251,249,249,98,7,11,3,69,250,154,1,81,2,99,253,137,3, +188,2,145,249,62,253,90,5,113,4,240,255,78,254,49,2,124,2,54,251,228,252,147,2,241,252,185,253,59,7,201,2, +200,252,207,2,247,0,89,248,78,253,54,7,252,1,11,246,66,251,27,7,242,254,104,249,126,9,237,8,177,247,140,254, +245,8,225,254,238,251,146,0,13,254,36,2,155,7,66,1,231,250,42,249,231,250,79,0,111,0,145,0,55,4,72,255, +153,254,175,6,217,254,32,247,234,2,59,3,14,249,167,255,168,4,246,253,19,254,120,2,63,4,53,1,47,250,19,0, +50,8,215,252,197,250,95,8,151,0,152,246,127,5,243,10,251,254,46,254,204,2,116,0,166,254,118,0,249,1,208,253, +150,249,29,255,79,2,87,254,179,1,38,5,188,0,199,255,91,255,210,253,29,1,34,255,182,252,93,2,146,254,57,251, +167,7,159,5,242,248,225,0,133,3,226,246,131,252,141,6,229,254,197,249,48,254,14,4,211,4,119,251,73,252,34,7, +86,252,112,242,27,3,235,5,11,248,21,255,182,8,198,1,87,254,125,1,103,3,250,254,198,245,248,253,239,10,21,252, +63,244,11,8,147,5,134,244,206,1,149,13,124,254,137,247,21,0,93,4,4,2,252,251,192,251,154,3,168,1,26,250, +15,0,143,6,116,0,179,253,10,3,8,3,88,255,19,1,116,2,121,254,173,254,45,5,129,5,7,254,33,251,187,1, +61,8,243,2,134,248,159,250,85,3,28,1,145,252,171,2,198,6,136,254,48,249,13,2,62,6,197,249,92,246,8,4, +69,5,2,253,232,1,232,3,75,252,181,255,100,5,215,255,248,251,220,253,12,2,44,4,181,251,124,248,185,2,91,255, +65,246,197,0,28,5,243,250,38,255,220,4,117,252,53,252,100,3,58,1,190,251,36,252,117,3,238,4,39,249,4,250, +50,8,188,2,148,249,196,1,225,1,236,254,157,7,117,2,90,248,154,0,41,3,244,254,108,4,250,255,125,248,175,0, +125,0,120,250,197,2,220,3,191,254,166,4,189,0,178,250,193,7,107,7,100,247,176,253,104,7,136,253,180,249,29,255, +49,254,249,253,57,1,89,2,35,0,87,252,19,1,214,7,170,253,134,245,172,1,42,6,147,251,107,252,136,5,186,5, +200,0,145,254,234,1,80,4,125,254,193,253,116,5,41,1,218,248,215,1,114,8,100,253,82,250,66,4,129,0,150,244, +233,251,7,10,100,3,182,247,14,255,153,7,176,254,166,246,78,255,255,7,66,255,50,246,13,2,41,10,88,249,242,244, +209,8,196,7,77,248,252,0,64,8,180,251,26,252,117,4,223,253,123,252,154,5,110,4,228,254,159,255,162,0,227,0, +112,1,138,2,226,3,175,255,220,251,254,255,103,0,119,253,236,1,49,2,23,253,251,1,203,5,13,255,186,252,148,254, +119,253,209,255,249,2,124,1,205,254,30,252,209,253,164,1,133,253,211,253,195,6,84,0,149,247,7,6,98,11,74,250, +103,251,83,7,250,251,154,244,182,4,235,6,99,247,47,251,48,8,9,0,27,249,246,6,214,8,94,248,133,250,7,7, +0,254,116,245,95,3,82,10,147,253,115,250,145,6,52,6,66,249,156,251,84,6,121,254,15,246,151,3,233,10,204,253, +254,249,111,2,91,255,195,248,133,0,210,7,80,0,113,252,110,4,247,2,30,252,120,3,184,5,178,250,155,252,42,0, +164,245,253,249,248,7,8,1,191,250,152,4,120,7,22,1,29,251,155,250,231,2,91,0,88,244,67,254,42,11,199,0, +95,251,60,1,131,1,161,3,184,255,235,246,125,1,227,8,167,253,247,255,29,4,125,249,71,255,70,9,120,254,177,249, +126,253,52,255,86,9,200,4,174,242,208,253,63,11,111,253,21,253,78,5,244,249,231,248,163,3,218,0,82,255,18,1, +162,255,38,7,198,5,113,247,255,252,162,5,86,250,42,251,100,7,195,0,250,248,228,1,15,8,118,0,76,248,30,254, +189,5,75,253,247,249,212,5,138,2,48,249,5,6,118,12,116,252,112,248,120,2,108,1,50,252,68,255,157,2,131,1, +242,0,128,1,85,0,135,0,47,2,103,254,135,251,226,1,132,3,129,252,34,255,141,7,114,3,125,250,3,253,204,4, +85,1,228,248,152,255,88,7,209,250,226,246,237,8,215,6,75,244,102,253,180,10,246,250,150,243,18,5,246,7,74,252, +119,0,55,6,95,253,75,253,134,5,46,253,80,246,5,4,94,7,180,248,76,250,51,8,143,5,38,251,162,252,137,3, +146,2,6,253,26,254,157,255,3,248,129,247,129,3,41,3,36,249,96,255,5,10,115,3,216,251,195,1,7,4,212,251, +217,252,0,6,124,1,58,251,69,5,222,5,252,245,124,249,12,10,99,4,17,248,220,254,166,6,107,255,88,250,6,3, +17,7,225,252,137,251,33,6,169,1,67,247,50,0,249,7,241,252,179,248,211,5,228,9,46,251,141,245,181,3,108,6, +40,250,96,254,77,5,252,249,2,251,10,8,193,0,75,251,40,7,200,3,14,248,36,255,30,5,194,251,70,248,122,1, +45,5,218,253,148,255,19,9,242,253,186,241,235,4,83,13,81,245,212,244,181,11,13,6,100,247,201,2,155,11,80,253, +65,245,65,3,143,9,247,250,107,251,79,14,252,7,229,243,198,251,42,9,205,255,125,247,255,254,59,5,192,255,132,250, +106,2,110,7,93,251,128,246,131,3,173,8,194,254,7,248,232,255,70,9,129,253,194,242,136,6,30,14,162,245,189,247, +228,15,10,6,227,244,44,0,12,8,85,254,188,248,83,255,82,7,102,0,79,247,6,4,24,12,166,252,135,250,84,7, +8,1,250,245,81,252,121,3,91,0,218,251,221,253,182,2,121,255,225,249,249,253,251,2,122,1,131,255,47,0,210,3, +210,2,41,251,70,255,175,7,30,253,235,247,187,5,31,4,173,250,19,5,101,7,149,248,189,250,68,5,49,0,119,252, +154,1,9,255,148,249,68,254,231,1,117,251,128,251,60,5,109,2,79,249,173,0,71,8,116,2,108,1,64,2,198,252, +113,0,2,4,13,249,215,246,39,2,199,5,1,5,248,2,17,251,23,251,133,2,18,3,33,2,70,255,128,249,3,1, +255,7,143,251,136,249,142,6,215,254,59,245,225,6,92,13,134,248,183,245,229,7,86,5,21,246,242,251,3,5,228,250, +192,250,37,10,161,2,152,244,132,5,232,14,56,249,67,246,229,7,145,3,21,252,171,6,156,3,200,243,220,250,180,9, +150,253,198,239,55,3,156,18,9,252,218,242,117,12,95,9,85,237,220,249,92,16,162,252,130,238,25,5,43,14,130,252, +63,251,167,10,35,4,235,244,34,5,99,19,153,247,97,234,85,8,153,12,157,243,222,250,5,11,0,253,183,246,49,8, +149,11,241,251,2,249,235,5,83,4,35,245,84,250,56,7,78,253,165,249,42,11,183,10,131,250,116,251,96,3,111,0, +232,248,190,247,190,0,32,5,127,254,49,255,52,2,1,251,92,252,216,4,141,1,84,255,41,3,149,1,40,1,186,255, +132,251,17,3,245,5,8,248,156,249,209,7,140,2,165,250,238,1,146,4,68,253,183,250,131,2,223,7,225,253,140,249, +150,7,38,6,246,245,175,253,213,10,10,255,56,246,108,3,213,12,45,0,250,242,155,0,33,13,96,249,32,244,63,13, +192,4,190,234,134,253,154,14,20,249,50,247,239,10,8,4,87,248,0,2,118,5,107,251,248,249,79,1,124,2,108,253, +56,253,214,0,87,255,131,254,156,3,32,3,57,252,1,254,125,6,51,4,14,250,66,252,244,4,168,254,106,248,16,4, +105,6,58,249,201,253,125,8,77,254,147,250,229,6,188,2,191,248,104,1,112,4,200,249,13,252,100,3,136,253,105,252, +111,4,142,0,193,249,92,2,49,8,17,0,161,255,113,7,1,3,38,252,157,1,71,2,172,248,127,249,112,2,205,0, +13,252,3,2,172,7,133,1,74,252,167,2,54,4,148,248,165,247,81,4,63,1,210,246,240,0,35,10,38,0,82,253, +93,3,19,255,67,255,224,8,103,4,115,248,101,250,134,0,228,254,192,254,101,4,192,4,243,253,214,254,189,4,116,254, +159,250,198,6,83,5,149,244,142,251,170,13,32,5,101,246,92,253,136,5,128,254,22,252,86,6,255,4,187,247,160,251, +129,4,40,252,56,0,37,15,44,254,97,236,189,0,141,10,185,249,149,253,216,10,80,255,80,245,151,2,118,10,32,251, +116,243,91,6,127,11,201,245,92,248,227,12,49,255,87,238,88,3,248,17,85,0,192,244,205,254,65,5,28,252,65,248, +125,2,7,2,54,251,185,6,31,10,111,248,8,250,221,6,27,253,157,247,137,4,8,4,182,248,24,252,13,6,42,2, +253,249,186,5,60,18,211,255,134,241,4,3,208,7,35,249,87,254,250,7,214,254,217,247,85,253,192,5,11,4,6,246, +232,247,69,9,115,3,122,246,220,1,21,7,186,249,196,249,215,4,92,4,3,253,52,253,86,3,149,1,67,252,6,1, +181,2,175,254,250,5,130,6,182,248,60,252,96,6,182,254,72,252,230,1,140,253,18,253,55,2,93,0,91,254,151,250, +145,248,82,5,215,9,108,251,56,250,32,4,194,1,131,255,209,3,78,0,212,247,25,248,22,2,64,6,214,254,150,254, +104,5,138,2,161,0,176,3,245,254,96,254,32,3,20,253,86,251,81,3,0,2,80,0,100,3,75,254,6,253,165,2, +209,0,186,1,104,5,60,254,187,250,160,255,253,254,147,254,74,255,60,252,207,255,187,4,6,2,126,2,104,2,48,252, +60,253,81,1,180,253,236,251,216,255,39,3,20,2,43,255,142,3,115,5,108,250,167,250,145,5,118,254,91,249,11,4, +197,255,186,249,210,7,83,9,195,252,135,0,253,6,33,2,4,254,166,253,227,1,121,3,44,250,93,250,209,5,36,1, +241,247,136,0,15,8,158,1,208,252,254,1,73,5,49,253,179,249,198,1,244,253,184,245,94,1,87,8,9,254,114,253, +49,2,21,2,233,5,218,255,176,246,150,3,94,7,108,243,95,246,219,10,142,5,47,246,117,249,201,5,3,9,9,0, +71,252,187,4,85,5,147,254,105,0,48,2,188,254,110,253,2,253,239,253,36,251,206,244,180,1,125,18,87,1,247,240, +47,5,213,15,124,250,130,240,236,255,111,8,245,249,216,241,57,6,51,15,25,249,230,246,143,10,1,4,113,248,199,4, +191,7,73,252,145,255,191,7,146,255,191,242,71,248,162,7,74,2,181,247,176,6,70,13,78,251,46,254,72,9,62,248, +201,244,160,11,216,6,94,241,212,251,46,15,103,4,23,245,152,3,93,15,214,246,168,235,123,9,39,16,28,246,33,247, +197,4,94,252,172,251,46,8,8,5,93,250,247,251,72,7,137,10,102,253,138,249,193,4,137,255,191,247,144,4,147,4, +174,246,160,253,179,6,190,0,122,0,161,2,221,254,55,253,212,251,25,254,71,2,61,252,81,252,18,7,255,1,234,248, +166,255,35,3,141,0,25,0,230,251,236,254,145,6,34,255,220,249,56,0,151,253,102,250,47,1,85,4,91,3,83,255, +149,251,129,2,225,1,56,248,242,1,142,7,14,248,237,252,12,10,171,253,182,250,196,5,31,254,144,249,24,3,204,1, +190,253,190,0,203,2,210,4,250,255,87,250,170,4,142,8,171,251,170,250,10,2,233,0,172,0,28,2,218,0,63,254, +178,252,167,7,247,13,176,249,152,242,218,3,108,255,229,248,123,8,241,1,77,242,174,0,232,5,52,249,15,0,27,6, +136,250,18,249,33,3,213,6,115,254,120,245,38,1,180,13,10,0,75,249,36,6,5,2,113,246,208,254,173,7,249,255, +236,246,154,255,183,13,24,2,149,243,47,4,75,9,181,243,67,249,64,12,64,2,250,249,158,3,47,5,84,255,95,251, +139,254,197,8,168,3,101,247,25,1,52,8,174,251,83,251,179,4,140,255,135,248,255,253,124,7,47,5,68,248,115,252, +102,12,33,2,184,241,77,254,122,7,169,249,123,248,165,8,128,7,35,245,77,247,235,12,243,6,17,239,229,250,134,16, +83,3,212,249,212,5,110,0,0,245,191,255,202,7,8,254,130,247,220,253,120,6,157,5,164,255,28,0,175,1,67,0, +162,2,48,1,233,248,23,251,143,5,77,5,112,255,26,2,153,4,200,252,31,250,31,5,38,5,40,246,34,248,209,6, +207,3,248,251,26,2,206,4,106,253,86,250,217,253,119,2,12,4,136,0,160,254,46,1,179,254,208,247,40,252,86,8, +210,3,89,245,147,252,107,11,166,2,15,249,222,1,215,0,64,246,150,255,45,13,100,2,174,243,56,253,138,12,25,6, +38,250,61,253,164,254,100,250,47,2,224,8,27,1,225,253,192,2,50,3,54,1,148,254,76,253,134,255,220,252,241,250, +139,1,207,0,182,251,5,3,16,7,113,255,179,252,36,254,6,0,33,4,225,255,253,248,225,254,60,5,98,1,63,254, +201,255,251,254,71,251,59,0,125,10,4,1,170,243,195,3,227,11,160,245,66,248,254,13,146,0,196,241,31,4,84,12, +18,254,58,249,49,0,139,3,48,255,112,254,122,6,146,3,208,248,221,254,248,4,182,252,159,253,91,3,163,253,37,252, +34,1,68,0,204,254,7,0,0,2,78,3,118,1,152,2,31,1,190,246,220,251,13,10,11,254,67,244,161,6,89,10, +210,251,246,254,253,5,71,1,99,253,40,251,72,252,28,0,142,254,79,1,118,5,200,253,150,253,123,6,7,0,41,250, +164,1,223,255,51,251,241,1,133,2,196,251,22,254,165,3,26,0,76,250,23,1,34,9,104,253,87,246,239,6,232,8, +218,247,236,249,193,2,10,0,96,3,77,5,124,253,22,253,155,254,225,253,123,4,193,1,34,247,154,254,134,7,0,1, +165,255,44,1,185,250,72,253,174,6,189,2,237,249,49,252,84,0,177,251,185,252,15,10,166,8,117,247,66,250,92,6, +48,253,39,247,89,3,237,5,133,254,250,254,186,2,96,2,120,251,208,246,58,1,205,6,84,251,32,253,187,9,234,1, +115,248,177,1,76,4,161,251,248,253,50,5,148,1,102,253,168,2,48,3,75,250,66,253,184,8,194,0,17,244,157,254, +228,7,42,253,251,250,150,6,132,5,249,251,152,254,50,5,16,255,67,247,34,0,177,9,35,255,58,247,20,3,27,8, +141,254,63,251,0,254,207,0,134,4,40,2,35,254,124,0,175,0,159,254,69,0,46,1,164,1,112,1,237,254,238,1, +144,4,13,252,63,247,56,0,199,7,121,3,165,252,86,0,188,6,53,2,186,254,35,2,58,253,53,247,109,253,227,2, +44,1,39,1,7,3,42,3,42,2,238,0,247,253,172,250,134,253,40,2,39,0,223,254,82,1,252,0,99,1,88,2, +227,254,105,252,228,251,60,250,153,252,179,3,47,7,213,0,114,248,116,251,35,2,1,1,155,255,225,254,41,254,12,5, +199,6,0,253,35,253,211,4,186,0,47,249,147,251,91,2,129,2,140,253,141,255,101,4,77,1,115,254,215,255,29,0, +8,1,103,255,49,252,88,0,215,4,55,3,72,0,169,251,234,250,176,255,229,252,19,249,240,1,86,9,30,3,223,251, +134,255,36,5,166,0,43,253,174,1,131,255,9,252,107,1,74,255,219,249,254,2,25,9,73,0,19,252,94,1,162,1, +56,252,17,254,216,3,161,255,175,252,229,4,244,4,165,252,122,254,17,3,120,1,92,0,108,0,238,254,121,251,200,251, +246,3,221,4,188,251,64,252,86,1,104,254,104,255,118,5,254,3,226,253,201,252,60,1,86,2,215,254,55,0,65,0, +91,249,0,252,44,6,111,4,135,253,28,254,168,255,85,254,218,255,40,3,102,0,157,252,232,1,236,3,184,251,198,252, +214,4,132,0,170,250,178,254,14,1,155,0,90,2,6,1,166,254,120,0,147,0,204,254,132,2,93,4,79,253,243,250, +154,0,25,0,187,253,241,1,76,2,120,254,141,255,26,0,193,253,78,255,13,3,101,3,90,255,236,251,229,254,87,2, +56,0,41,255,236,0,227,0,67,0,76,255,60,255,136,2,92,1,79,251,8,254,245,4,26,2,98,253,12,255,40,0, +199,255,136,0,15,0,247,255,200,0,203,255,58,255,155,255,188,255,37,1,68,0,145,253,106,0,158,2,195,254,166,255, +181,2,66,254,18,253,127,1,112,255,222,253,233,1,83,0,250,253,211,1,218,1,141,255,104,0,23,254,36,254,213,3, +71,1,112,251,255,254,48,0,223,252,222,2,205,7,22,0,126,252,65,2,93,1,220,252,182,255,121,1,228,254,29,0, +222,0,180,254,6,1,177,1,78,252,178,254,226,5,29,0,234,248,3,1,29,6,176,253,113,252,35,3,66,1,116,255, +130,3,185,255,143,250,126,0,189,3,38,254,96,254,10,3,175,0,151,253,170,255,137,255,108,254,117,1,12,1,212,252, +97,254,1,1,149,255,234,1,55,4,96,254,39,252,24,2,42,1,234,252,198,1,139,2,190,251,34,255,199,3,192,253, +72,254,9,4,64,0,113,254,133,2,192,0,10,253,207,252,100,254,81,0,196,254,11,255,78,4,168,1,157,250,240,255, +80,7,71,0,101,249,234,0,210,3,114,250,195,252,166,5,29,255,197,250,60,1,167,0,25,0,223,3,135,1,253,0, +81,0,43,250,250,253,167,3,100,252,214,250,141,3,158,4,181,255,208,255,118,2,237,255,125,253,140,1,177,0,17,252, +138,0,247,1,173,251,19,253,23,1,159,255,167,254,92,0,90,4,248,2,142,251,63,254,107,4,122,1,140,1,105,2, +192,253,159,254,226,255,89,254,246,1,75,255,254,249,192,2,219,5,30,251,187,254,28,9,205,254,99,246,240,1,63,254, +189,236,12,251,143,17,116,2,90,244,118,10,109,24,77,1,208,240,9,3,176,9,174,244,50,248,20,7,132,247,46,246, +141,13,243,12,106,6,102,6,52,246,118,248,15,19,75,13,16,245,185,255,155,20,254,7,69,252,239,12,156,2,206,225, +55,239,35,1,138,242,50,1,11,20,67,255,70,255,213,18,171,12,27,2,46,248,171,238,64,238,146,232,197,251,31,23, +144,242,220,227,200,33,174,25,217,215,48,239,131,24,32,1,193,246,183,248,105,238,101,28,144,62,52,221,43,167,153,47, +212,92,154,178,175,160,230,79,82,65,59,192,181,239,253,42,151,243,124,245,197,21,64,242,108,240,116,20,49,2,152,234, +227,252,33,11,215,8,206,255,25,237,243,252,41,57,74,34,121,176,194,208,238,102,195,40,116,135,93,227,106,107,137,8, +184,186,173,17,31,39,142,234,94,246,41,15,53,237,121,232,3,13,214,10,133,255,183,16,255,2,166,241,45,14,139,254, +96,212,2,1,4,31,78,235,165,241,4,28,181,4,6,254,86,19,55,254,82,253,71,21,142,0,17,246,242,10,66,3, +28,248,4,251,141,243,214,251,174,13,111,7,80,253,101,255,39,4,52,251,68,233,21,246,155,9,197,250,115,251,250,16, +123,7,55,240,84,229,209,241,113,16,140,10,149,241,208,252,157,252,204,235,67,6,15,23,243,245,205,243,244,19,107,14, +138,252,239,6,2,17,166,3,93,223,216,216,200,18,119,30,34,230,211,248,191,40,156,1,192,224,224,247,75,4,210,5, +145,1,94,245,215,247,94,255,158,5,222,7,41,254,128,3,124,14,150,255,56,249,14,8,53,6,101,249,188,252,192,10, +8,16,96,7,154,0,67,6,129,13,63,10,93,254,123,255,66,23,111,25,252,244,8,237,94,9,78,6,170,243,118,247, +61,249,178,251,128,1,131,247,134,243,108,249,20,253,182,7,91,2,241,240,118,248,3,3,241,1,99,2,143,253,222,0, +84,12,5,8,137,0,250,3,250,12,239,18,152,13,74,0,130,236,37,235,63,2,114,242,65,217,60,2,127,28,115,254, +239,248,134,255,48,240,126,234,117,237,16,243,232,1,82,13,173,16,75,14,108,12,249,10,69,255,162,245,104,244,25,241, +156,246,240,6,188,11,218,251,77,242,241,5,67,13,58,251,153,12,201,40,241,13,106,235,86,236,105,239,181,238,45,247, +178,252,125,252,18,3,237,14,75,18,13,13,29,9,80,4,130,248,191,238,91,243,241,253,186,6,5,20,208,19,158,253, +148,249,177,8,236,1,224,245,109,2,85,15,20,9,63,255,212,252,23,248,71,237,211,242,173,10,39,14,216,1,181,8, +215,2,233,227,47,231,226,253,122,252,190,8,34,25,151,4,135,248,54,2,80,253,128,252,170,4,182,255,23,251,78,254, +31,1,195,254,29,248,65,253,139,2,234,245,4,246,245,3,84,0,222,251,159,254,203,249,139,254,139,9,217,5,48,2, +131,0,40,248,125,251,123,5,204,1,188,253,137,2,84,5,150,3,245,0,120,5,72,15,43,8,60,245,9,246,92,255, +151,248,1,248,18,3,255,251,100,244,63,3,174,7,170,253,248,255,2,1,73,253,213,0,169,252,219,251,215,10,251,9, +219,0,59,8,56,7,38,1,94,7,111,254,194,243,121,6,193,15,99,3,237,8,18,14,3,251,111,248,192,9,99,1, +31,242,143,3,49,17,6,253,136,239,0,252,111,1,8,242,35,232,65,245,210,0,163,252,156,2,194,10,193,254,185,253, +29,7,159,247,51,239,200,254,117,253,61,248,60,4,18,4,165,255,33,10,35,7,92,244,213,240,200,250,156,253,233,248, +118,250,51,3,76,8,59,10,201,9,80,6,85,13,196,22,38,9,76,248,23,0,47,8,31,254,131,250,107,5,67,7, +244,252,253,249,208,253,18,253,125,253,222,254,27,246,71,237,48,242,145,250,63,255,80,5,254,7,87,6,230,10,253,15, +49,12,255,11,233,16,2,11,70,4,99,10,229,11,106,4,207,5,71,9,242,0,142,248,54,250,198,253,169,250,234,245, +12,252,156,4,168,250,244,235,124,239,116,244,139,239,118,242,49,247,252,240,59,242,49,251,162,245,58,237,173,241,70,242, +69,238,20,248,227,4,180,3,139,0,117,4,114,4,75,254,105,254,232,6,81,10,15,7,22,12,232,24,108,31,61,26, +135,12,79,7,228,15,123,8,156,243,254,249,171,9,255,249,167,235,26,255,39,10,205,247,45,244,247,4,29,4,17,248, +140,246,101,245,197,240,203,242,39,250,247,253,102,255,49,5,141,7,214,4,52,9,248,11,69,4,228,251,245,247,168,253, +137,6,122,3,181,254,241,1,94,6,68,4,224,249,231,252,56,15,88,15,64,2,170,251,25,245,222,243,18,248,11,245, +137,243,208,255,30,13,118,6,30,254,5,10,158,10,202,255,104,6,181,1,10,245,243,3,164,12,227,0,200,255,245,255, +210,251,178,2,100,8,53,6,77,8,212,4,56,252,235,7,252,8,1,234,7,239,72,2,58,221,28,216,41,12,104,8, +11,237,189,254,56,9,231,0,154,249,222,237,27,248,200,16,91,11,247,253,146,13,40,22,242,1,217,1,17,13,43,246, +238,244,155,27,67,24,103,251,183,2,189,11,186,3,110,8,184,10,126,246,170,234,194,247,125,5,55,7,42,251,34,249, +12,24,135,13,153,209,4,230,156,27,171,250,228,231,184,13,15,9,173,242,32,246,214,249,117,9,193,24,248,10,186,252, +235,253,42,2,71,11,226,15,144,0,142,239,28,246,38,9,17,10,219,244,51,248,186,23,87,253,68,203,3,239,155,12, +130,237,240,0,31,13,108,229,102,12,151,59,121,0,13,222,165,6,240,16,245,244,118,238,243,255,117,1,13,254,178,13, +134,7,254,254,121,24,249,9,111,230,80,6,215,26,112,240,208,231,242,12,174,26,15,13,164,255,121,251,190,250,124,244, +231,237,39,243,23,252,82,241,140,230,188,4,36,36,73,15,17,234,95,218,22,227,247,251,129,250,227,238,174,13,153,29, +69,5,17,6,171,9,102,246,222,235,62,222,156,231,30,21,78,28,156,12,175,11,212,248,147,3,29,38,8,0,212,224, +219,21,171,41,202,1,164,240,74,246,1,22,141,60,154,15,55,200,24,231,200,31,54,13,142,233,246,230,138,1,24,19, +26,236,75,222,110,23,57,27,180,242,106,253,212,6,159,8,6,24,101,250,240,234,17,18,87,14,231,239,231,233,184,241, +52,35,98,53,2,238,1,211,160,248,42,5,75,18,130,13,252,230,227,249,192,28,26,239,185,200,194,247,25,28,53,249, +56,239,165,21,74,8,209,235,132,255,61,243,149,228,96,16,105,14,71,239,39,6,146,253,29,225,119,4,88,16,98,237, +216,244,254,9,153,1,49,253,205,252,204,244,30,247,1,250,167,238,29,247,34,15,192,251,111,233,164,21,123,39,12,5, +167,11,224,23,133,248,243,247,93,10,156,242,162,233,137,5,206,4,137,245,1,5,216,13,117,4,177,18,131,25,75,251, +83,245,52,9,8,251,31,232,26,246,143,0,103,250,27,251,199,5,68,17,58,25,222,24,162,9,210,249,15,254,12,2, +214,244,55,239,13,249,170,2,210,2,174,250,177,0,170,19,12,17,21,4,16,5,15,2,200,252,158,0,34,251,160,242, +181,247,124,249,159,251,244,12,161,11,156,239,126,243,178,20,207,12,88,233,69,234,232,252,28,251,154,250,37,6,8,6, +47,254,175,4,247,11,83,254,135,240,63,244,19,247,235,250,105,7,156,3,58,250,214,7,16,9,174,242,169,245,5,5, +150,252,163,247,84,255,179,4,178,19,186,27,159,11,65,3,179,4,211,1,59,14,47,22,32,254,136,236,139,246,135,6, +86,11,194,241,231,217,22,251,38,31,16,12,202,250,4,0,204,245,213,242,63,3,133,3,152,248,15,249,171,5,216,20, +86,14,133,249,147,250,24,5,34,4,255,6,244,13,248,14,142,2,3,235,222,244,191,21,200,254,142,221,181,5,133,37, +74,7,66,250,3,1,189,241,146,234,136,239,117,243,123,5,186,10,139,250,203,1,190,17,83,7,22,246,123,236,35,243, +58,4,224,245,129,228,194,3,164,15,179,235,228,242,148,21,228,2,113,239,7,9,2,15,21,246,99,239,28,242,153,233, +60,235,119,251,105,253,137,237,48,237,183,2,153,15,96,23,110,44,139,47,165,24,138,22,26,29,60,1,132,230,101,234, +223,236,17,239,187,254,64,10,212,26,131,47,153,40,86,27,66,20,109,244,157,230,45,3,0,252,67,222,116,236,42,242, +220,230,194,3,206,11,37,230,53,235,197,5,6,250,213,240,143,242,123,238,58,246,196,242,42,236,139,10,192,21,229,253, +52,14,203,40,242,25,166,7,172,239,57,219,64,251,127,17,215,247,164,253,201,12,177,241,50,245,6,18,87,249,48,223, +153,246,200,5,109,249,142,242,166,246,205,249,100,244,9,244,80,1,40,3,0,254,135,7,36,3,152,239,59,250,62,16, +80,8,111,252,197,7,251,20,251,14,70,6,185,20,5,35,169,16,144,254,218,3,23,1,252,254,97,16,10,10,188,237, +87,250,195,25,74,12,30,244,216,2,28,17,176,1,111,251,96,5,131,254,137,242,191,245,139,243,142,235,240,244,181,2, +223,255,85,249,251,0,172,14,106,12,170,253,18,250,138,254,194,1,70,10,199,7,182,247,11,255,124,15,63,1,140,244, +122,2,138,7,121,253,254,252,81,5,151,4,208,242,236,234,112,253,133,254,180,235,106,249,185,11,212,254,19,2,195,15, +161,0,142,254,168,15,8,6,108,251,1,255,30,243,149,245,142,15,65,11,199,250,89,10,27,22,48,8,70,2,19,8, +8,255,23,235,9,239,215,9,178,8,170,238,26,248,229,20,142,12,106,249,242,254,185,2,179,254,0,6,22,4,27,238, +160,235,67,2,98,4,44,247,126,0,213,7,61,251,48,255,32,5,151,241,199,239,177,249,37,227,19,224,199,1,5,0, +20,244,106,11,184,9,182,244,132,4,119,10,11,249,201,2,205,7,232,250,251,9,212,14,168,242,204,245,25,9,8,253, +146,249,56,8,163,5,79,0,124,2,131,3,113,10,98,6,218,246,118,254,253,6,163,245,62,240,25,249,181,246,146,254, +158,12,229,6,39,5,110,12,234,5,155,6,70,21,117,18,163,4,167,0,228,255,168,253,93,247,35,242,38,255,23,14, +178,8,232,4,10,8,201,252,161,247,109,9,13,13,155,245,226,232,148,243,87,252,91,249,54,250,124,3,29,5,18,252, +68,252,241,11,125,22,130,13,169,252,118,246,14,252,94,255,188,250,187,250,185,4,225,8,84,5,58,12,14,19,118,4, +206,246,171,253,215,0,222,245,83,237,87,238,242,249,237,3,253,253,168,252,59,4,191,245,20,231,249,251,80,10,102,245, +70,231,182,241,226,255,191,5,179,254,211,249,252,5,242,10,156,0,240,3,227,12,209,0,181,246,175,5,119,14,87,251, +130,240,95,2,158,11,171,2,80,7,182,12,29,4,191,17,62,37,142,9,14,234,55,250,233,7,1,248,144,244,43,253, +130,249,232,251,158,10,51,12,91,2,31,1,232,1,192,247,251,238,40,247,177,5,36,5,138,248,93,247,91,2,53,3, +239,250,149,250,8,1,237,11,105,22,102,12,26,248,187,248,172,3,81,6,5,6,93,253,155,242,116,248,183,255,164,1, +30,8,72,254,211,238,73,252,129,4,163,249,28,6,65,12,214,241,243,242,28,9,21,255,6,245,72,253,103,250,38,252, +92,7,8,4,9,0,1,0,183,251,13,4,20,9,32,251,242,251,67,3,207,248,37,252,213,3,111,241,171,240,171,6, +8,0,242,245,0,5,227,7,36,3,101,12,241,9,189,1,210,7,101,1,7,242,246,247,47,0,28,1,155,11,209,9, +71,249,102,0,145,12,86,254,52,247,149,0,25,255,30,1,114,7,41,248,109,241,156,5,173,6,204,246,209,252,247,5, +21,3,221,7,19,12,196,6,10,5,53,0,221,244,3,244,248,250,65,254,244,255,105,255,116,254,83,3,152,7,243,4, +218,1,130,1,226,254,90,252,15,1,78,1,85,244,240,245,239,10,67,8,238,244,56,254,0,14,84,3,46,250,232,0, +185,2,127,253,78,251,23,254,241,0,246,1,240,8,68,12,207,0,168,255,105,11,50,9,34,7,232,7,100,246,84,246, +84,10,100,247,49,228,141,4,231,17,76,249,141,251,237,4,239,245,164,242,53,251,47,249,178,246,108,247,154,253,64,5, +77,248,22,235,18,250,65,3,198,246,192,246,227,3,218,9,72,14,111,18,205,10,8,1,53,9,237,16,233,251,184,237, +109,4,151,14,243,254,79,3,209,13,254,7,251,7,159,3,32,249,207,255,235,251,242,243,12,16,220,18,21,233,76,240, +44,11,238,238,132,230,74,7,212,0,216,240,1,2,118,4,185,253,217,8,163,5,140,251,111,6,104,12,170,5,199,3, +40,255,254,251,45,4,52,4,66,248,37,245,143,250,121,255,32,9,237,17,211,8,145,247,107,244,233,244,19,239,187,245, +151,255,0,247,126,246,245,6,74,7,224,3,27,17,74,13,8,246,37,244,141,3,138,6,103,251,64,245,253,2,84,14, +7,254,182,242,217,0,115,2,159,245,207,252,103,11,168,8,90,255,134,254,73,4,31,1,34,243,179,241,44,251,179,250, +148,250,213,254,154,252,254,3,84,15,25,5,82,255,197,9,25,4,184,255,84,11,111,254,202,235,70,254,24,13,107,3, +221,4,35,8,19,3,136,10,54,9,32,247,118,255,211,21,254,10,98,243,54,244,198,1,216,3,70,249,55,245,55,255, +177,3,244,255,215,6,147,11,131,249,25,237,133,1,27,18,238,254,27,239,76,252,214,1,219,251,51,5,227,6,9,252, +189,7,56,13,34,245,208,250,197,24,207,7,37,231,44,244,15,11,41,5,113,250,163,253,176,255,53,246,156,246,133,7, +191,3,36,239,28,247,40,7,1,254,83,251,94,4,42,252,142,245,10,0,224,3,184,253,230,249,29,250,82,255,239,3, +169,4,93,6,100,6,204,7,59,10,7,252,111,237,182,253,100,14,117,0,64,245,112,254,230,2,169,1,194,6,20,4, +239,248,69,1,106,20,41,10,50,243,182,248,253,2,107,249,171,244,64,244,38,239,223,249,234,1,22,242,97,247,53,23, +252,23,122,0,23,255,31,10,53,8,135,254,120,248,77,249,40,0,42,8,208,6,185,251,18,248,40,250,142,245,202,252, +115,14,226,7,227,251,231,10,28,19,142,1,111,247,209,252,69,0,67,251,149,244,79,252,101,8,83,1,6,251,8,5, +203,7,167,6,143,12,29,4,128,247,172,2,51,12,166,253,114,244,100,253,252,253,150,244,54,252,239,10,249,1,90,244, +25,254,7,11,237,9,38,255,69,240,122,245,109,9,173,254,217,236,87,2,239,18,14,3,192,253,14,5,12,9,89,18, +12,9,247,236,188,241,112,10,118,7,249,252,152,255,227,253,49,253,97,4,211,3,170,254,74,253,86,247,217,243,173,250, +246,247,152,237,199,248,232,9,167,2,122,251,203,1,105,250,33,245,52,7,31,10,131,251,11,5,155,14,131,252,71,247, +226,3,27,253,11,241,229,244,18,252,136,9,4,21,152,3,112,246,64,16,213,25,13,250,10,240,116,1,158,1,127,1, +60,6,237,242,49,237,80,11,221,17,230,0,199,9,51,20,22,10,179,9,251,13,55,0,14,239,152,237,58,249,133,253, +186,244,169,247,80,4,145,5,204,7,44,9,11,254,171,0,106,8,134,247,166,240,27,255,243,255,213,0,125,4,112,247, +74,253,220,15,210,0,184,252,69,19,249,3,50,242,48,15,147,18,81,239,141,240,167,9,193,10,122,0,78,250,66,253, +86,8,181,1,224,236,51,239,99,254,111,247,161,235,95,245,111,253,16,242,48,234,125,237,211,242,200,1,199,12,184,0, +20,255,194,20,92,19,185,251,91,249,209,3,106,0,143,246,161,246,95,4,33,14,121,6,92,1,125,3,124,250,100,249, +44,16,216,25,63,4,192,239,119,245,9,12,131,19,93,253,212,235,43,253,66,23,193,20,211,253,249,246,245,7,52,17, +156,1,63,236,23,231,39,248,71,11,152,4,210,248,200,7,200,15,66,248,35,239,193,255,110,255,43,248,220,9,197,21, +37,0,135,235,222,244,111,8,216,10,118,252,20,245,250,3,253,21,113,16,201,252,201,248,44,6,40,12,188,0,87,241, +139,237,52,252,172,14,54,10,253,250,235,2,191,14,145,254,37,237,210,241,23,248,101,247,122,245,1,244,77,251,26,2, +217,251,221,251,70,0,7,244,32,241,164,4,191,10,156,6,225,13,142,10,61,250,248,247,237,254,206,3,18,10,1,10, +14,5,207,9,64,12,22,252,51,243,81,6,203,15,193,252,168,251,47,14,14,6,36,252,68,10,70,3,128,239,0,246, +159,244,9,235,59,0,119,10,241,243,185,241,172,1,36,8,153,16,235,16,82,5,169,3,103,255,86,245,132,247,0,245, +133,241,165,3,50,12,159,255,113,254,193,0,201,255,203,13,159,18,176,253,245,241,154,253,137,12,80,11,85,248,204,239, +246,248,36,246,22,239,230,251,78,11,113,20,222,28,52,20,198,255,93,248,16,245,7,236,115,236,90,247,37,0,217,5, +5,10,42,7,230,253,128,252,177,6,75,11,18,7,143,4,214,253,170,245,157,253,99,7,237,252,202,240,70,244,39,249, +71,250,7,0,122,5,107,10,148,24,231,29,179,4,125,235,160,239,79,245,151,239,244,246,255,0,18,253,218,1,0,12, +218,0,224,243,17,252,223,6,225,6,132,0,112,249,142,253,165,7,253,255,8,238,157,238,84,255,186,10,85,12,238,10, +232,10,167,13,150,15,235,10,204,0,211,248,26,247,206,247,15,247,112,248,98,254,162,3,203,5,83,3,229,248,189,246, +27,9,1,15,213,248,13,241,88,255,92,255,68,249,84,255,18,2,17,4,17,8,215,252,220,245,194,4,236,11,89,7, +107,7,143,255,220,249,240,7,169,13,109,4,169,4,214,3,68,251,205,250,223,250,144,249,60,0,1,255,32,248,73,0, +57,5,226,250,214,249,90,2,101,1,37,249,93,245,58,254,81,7,44,251,64,240,181,1,130,16,136,7,5,2,214,5, +65,2,225,253,215,3,29,12,51,8,73,251,8,250,146,0,232,249,169,244,102,255,92,2,25,251,57,0,64,8,156,3, +164,252,235,249,238,246,132,242,186,242,150,254,89,8,16,255,238,245,122,0,211,12,219,10,193,2,192,0,52,6,80,6, +38,0,130,4,133,9,121,253,69,247,50,3,145,4,128,247,241,245,38,255,126,255,245,247,76,248,194,254,34,253,221,250, +74,2,8,3,16,250,180,252,41,7,72,6,201,254,173,254,226,4,34,4,209,253,15,6,17,18,154,3,104,240,105,251, +45,16,81,18,199,7,245,0,126,2,138,252,180,237,85,243,128,5,42,2,123,250,165,0,215,255,193,251,41,0,147,254, +15,251,244,255,70,2,133,1,100,254,62,245,176,248,127,9,178,9,13,253,209,255,70,12,110,7,22,244,143,246,129,16, +59,18,65,252,7,253,241,9,227,3,86,251,188,251,53,251,247,250,33,251,186,252,84,3,159,5,35,1,251,249,152,240, +11,244,57,0,137,248,41,239,36,252,218,0,57,250,202,3,157,9,6,1,217,3,241,7,150,255,236,0,213,9,23,6, +225,253,186,250,45,249,30,251,198,255,38,2,40,3,31,3,195,0,175,1,29,9,25,10,59,253,227,245,8,252,127,251, +86,247,65,1,166,7,158,254,163,252,68,3,102,3,231,5,2,11,93,2,216,248,95,1,238,8,28,0,146,250,4,0, +244,0,50,254,133,253,208,250,173,254,63,7,49,0,156,246,10,251,212,248,204,246,115,6,93,6,152,246,56,0,68,8, +59,245,126,243,248,1,140,252,162,250,221,4,255,253,60,249,123,9,5,13,100,255,234,255,132,6,31,253,134,247,175,6, +188,12,238,252,233,250,153,6,4,254,217,246,114,8,186,11,231,250,200,252,97,5,173,0,147,3,28,7,44,249,152,244, +162,255,161,252,158,247,214,4,21,8,119,252,249,3,25,15,24,254,66,241,33,0,90,7,62,253,196,251,229,1,141,4, +82,4,2,1,124,2,226,9,182,11,173,14,116,17,181,3,233,252,143,10,33,4,160,239,202,248,181,8,77,5,149,3, +178,252,221,235,243,240,70,0,39,253,76,252,59,0,1,243,16,234,15,245,28,249,91,240,160,237,192,244,130,1,105,12, +130,13,165,10,123,9,15,4,157,249,94,244,129,252,25,9,75,8,135,254,160,253,212,3,57,11,156,22,66,30,117,28, +243,21,211,6,199,245,233,246,137,255,31,251,141,243,172,238,64,233,7,241,52,0,7,1,152,2,136,15,170,13,189,255, +215,253,37,251,187,239,6,240,199,248,19,252,236,1,62,8,143,2,56,252,182,6,27,26,112,31,8,19,212,9,226,6, +242,249,201,239,132,248,217,255,126,252,69,250,168,246,167,248,94,6,127,6,128,250,215,251,255,250,225,244,64,1,49,4, +194,236,113,232,247,246,192,245,206,244,146,248,82,241,174,247,251,11,156,10,81,0,228,2,70,3,26,0,219,253,81,245, +1,242,171,249,210,253,45,254,12,255,64,3,48,18,43,26,84,13,16,7,99,13,33,8,64,255,74,255,204,254,216,255, +232,255,143,248,254,252,15,8,178,252,245,245,244,15,58,28,29,4,187,246,97,0,127,1,28,251,102,251,118,249,191,244, +102,248,227,254,214,255,54,0,173,1,160,1,158,2,231,0,172,247,60,244,231,253,194,1,192,252,182,5,250,17,180,1, +22,235,138,244,88,5,117,0,43,0,103,12,141,5,55,244,143,249,131,8,95,7,29,255,205,253,198,0,65,2,207,1, +19,3,134,2,187,250,176,249,165,5,100,5,31,248,46,253,54,10,217,2,129,252,201,7,153,8,10,248,108,238,65,244, +5,2,13,9,13,2,20,254,66,1,199,253,35,1,106,15,89,11,65,253,122,0,41,3,113,253,219,3,72,9,209,253, +136,246,57,253,25,4,138,4,156,1,123,0,95,255,203,252,3,2,107,7,101,253,164,245,126,253,221,1,147,254,96,252, +39,250,38,0,106,12,27,10,53,0,120,2,142,6,124,255,69,247,33,250,143,1,246,255,145,253,241,2,46,255,158,246, +239,254,230,4,105,249,130,244,115,247,248,245,135,250,118,255,109,249,248,247,194,254,113,255,66,251,103,253,91,9,167,15, +122,4,3,1,33,16,29,18,41,6,27,3,171,252,53,241,126,248,182,8,206,8,66,253,57,248,85,254,133,2,232,0, +203,4,117,5,14,251,182,249,59,0,79,252,162,248,79,251,232,249,143,248,40,249,222,251,116,7,191,14,126,11,124,13, +207,12,1,4,93,5,18,4,179,243,134,241,103,255,185,2,44,2,88,10,130,18,3,17,23,4,156,252,214,5,57,7, +80,249,154,246,137,253,201,253,59,253,245,249,114,241,221,245,201,4,210,7,152,3,157,4,152,3,29,0,219,255,117,250, +111,244,128,253,107,4,81,248,186,243,220,255,62,1,214,249,252,250,252,250,136,246,109,247,148,251,200,0,181,4,122,4, +229,8,115,12,56,255,41,241,189,244,101,252,127,253,27,253,140,254,27,3,210,7,42,8,20,4,103,255,191,2,36,9, +84,4,90,0,60,4,46,253,192,247,69,2,217,255,233,245,143,255,72,2,174,250,95,9,203,17,93,253,70,249,96,10, +240,7,60,249,27,251,87,7,214,8,95,255,126,252,14,2,78,6,4,9,116,1,17,242,227,247,13,8,24,1,51,247, +91,251,8,248,129,243,59,252,72,4,251,5,105,1,48,249,72,255,123,11,208,7,95,3,196,7,89,5,144,254,134,251, +58,253,219,5,182,5,169,246,55,244,61,2,192,6,101,254,164,246,3,249,83,4,125,6,95,252,8,249,218,250,5,247, +78,247,16,255,176,2,176,0,234,254,18,254,111,252,235,251,47,0,132,3,2,254,150,249,127,2,249,11,112,4,54,249, +68,0,184,8,235,248,126,232,173,244,233,6,176,5,4,253,249,250,99,253,201,253,252,250,9,252,143,255,93,254,124,1, +52,11,85,11,68,4,110,2,29,1,207,0,68,6,145,5,97,250,213,243,176,250,187,8,8,17,59,12,65,3,79,2, +160,6,26,5,10,254,242,252,228,255,38,252,207,250,151,1,98,255,233,248,153,2,79,13,123,7,31,1,210,1,123,255, +91,251,106,250,85,253,169,2,248,0,240,247,29,248,181,3,123,10,71,7,95,3,99,5,144,8,2,4,27,253,205,254, +169,255,105,247,21,248,50,5,183,6,85,0,42,6,219,6,25,247,45,245,99,4,20,4,108,247,106,249,18,7,251,13, +20,9,22,255,18,247,34,241,58,240,154,248,211,254,115,252,249,255,239,9,200,9,2,1,112,252,113,254,156,1,228,254, +245,247,205,247,188,253,62,253,61,245,30,243,154,253,83,7,9,4,74,255,174,3,245,5,210,0,181,254,215,255,109,251, +15,246,59,251,211,4,64,4,53,0,255,3,150,4,203,254,92,1,139,6,139,1,62,253,242,0,143,4,185,5,128,5, +39,5,37,6,100,3,235,0,222,8,179,13,122,3,159,254,132,8,64,11,176,0,25,251,100,253,196,248,34,236,209,229, +145,235,252,246,193,0,70,4,7,3,106,1,195,255,65,1,23,7,124,6,83,255,51,255,128,1,54,252,38,250,6,2, +248,7,30,4,247,254,18,6,196,16,44,8,201,248,67,253,12,5,183,253,222,246,118,241,169,232,131,241,167,5,67,5, +163,253,8,5,66,6,145,250,239,248,129,252,177,247,82,248,84,1,208,2,7,0,233,3,100,9,234,8,85,2,137,254, +53,8,11,20,242,14,4,3,141,2,179,6,84,3,238,252,52,254,255,5,100,6,96,253,207,250,162,2,139,8,45,5, +179,251,100,248,157,255,232,0,186,248,194,248,162,255,247,0,90,254,183,248,179,246,213,1,201,6,222,249,116,246,217,255, +160,251,34,242,22,245,90,247,194,245,17,253,249,5,17,7,133,7,92,9,143,8,209,4,115,252,111,246,65,254,108,7, +215,1,130,250,21,254,161,6,76,12,23,4,96,246,66,0,182,14,78,255,163,245,14,5,110,0,7,240,238,246,59,248, +25,240,123,255,23,13,5,6,147,6,67,8,4,0,52,2,113,6,156,1,112,3,40,5,23,1,94,4,0,3,244,250, +230,0,136,5,89,252,186,253,210,6,165,4,231,1,34,4,230,3,103,3,31,2,211,255,8,255,204,251,150,252,104,4, +200,1,163,250,62,3,41,10,49,2,24,0,56,3,149,253,194,252,106,3,187,254,137,247,27,0,56,8,53,1,157,252, +251,0,60,253,30,245,197,248,91,253,227,248,43,251,225,4,123,3,67,252,102,254,137,2,190,1,124,2,93,2,208,253, +123,254,71,4,168,2,251,253,94,1,218,2,107,249,101,244,151,253,95,4,240,254,159,253,161,5,119,3,208,247,75,248, +35,254,91,249,238,248,149,3,21,6,241,0,155,1,20,3,132,1,206,0,35,255,160,254,198,0,139,255,130,253,22,254, +252,251,38,250,243,250,51,249,253,251,133,3,198,255,172,250,52,3,66,4,253,249,222,252,97,0,168,245,147,248,20,8, +165,5,44,2,222,13,163,11,247,254,77,5,151,12,185,2,169,252,60,255,55,0,206,2,141,3,152,1,134,5,238,5, +107,255,189,1,66,6,167,2,76,2,70,0,216,246,247,248,188,1,187,253,58,249,104,250,64,247,59,250,245,3,74,2, +248,252,246,0,183,4,173,3,240,0,25,255,231,3,86,5,121,249,210,245,20,3,225,6,54,254,229,254,1,5,176,2, +107,255,188,1,73,1,125,253,92,0,137,4,79,252,101,243,60,251,204,4,169,0,195,253,62,3,160,3,85,254,17,251, +8,249,249,251,253,3,165,1,60,247,151,251,130,7,148,3,238,254,236,9,207,10,69,251,23,251,232,5,21,0,17,249, +159,2,145,6,229,251,78,247,13,254,203,3,208,3,199,1,97,0,117,253,253,248,167,247,59,248,182,249,171,255,229,1, +138,253,232,3,183,13,56,2,132,245,108,0,107,8,208,255,175,254,96,2,88,252,101,251,81,2,80,0,237,251,112,0, +9,5,104,6,6,8,54,5,37,0,136,1,136,5,174,3,172,253,197,250,228,252,113,253,186,250,124,253,74,3,121,1, +94,0,17,7,157,5,23,251,141,250,37,255,12,253,53,255,12,5,118,0,17,252,179,2,204,4,237,253,130,253,236,3, +170,4,28,255,185,253,97,2,225,0,149,248,86,249,113,0,3,0,148,255,235,3,232,2,134,1,50,4,97,0,85,252, +236,255,127,253,230,247,146,253,178,2,181,255,233,0,15,4,45,2,59,0,126,254,130,254,17,3,235,1,202,251,137,254, +194,2,120,254,139,253,195,3,43,6,110,2,152,253,173,252,55,255,194,254,49,254,24,1,184,254,8,251,40,0,85,0, +127,247,60,250,194,3,63,1,100,254,203,4,8,5,61,253,38,252,171,1,44,2,128,252,77,251,110,1,3,4,15,1, +236,1,131,4,58,2,153,255,110,255,179,253,226,249,107,248,7,254,138,4,246,255,123,250,7,3,105,7,122,251,59,249, +132,6,65,8,173,0,216,3,67,7,39,0,241,252,225,0,147,0,43,255,157,1,138,0,192,253,250,0,138,1,242,250, +252,252,11,8,150,7,153,253,29,253,47,3,60,4,239,2,130,0,57,250,224,245,124,247,116,252,94,3,88,6,203,0, +92,253,55,2,178,3,3,255,197,254,83,2,129,2,119,1,134,2,137,2,102,253,118,247,47,252,15,7,63,5,11,252, +75,254,121,3,189,0,214,0,87,2,56,252,250,247,208,248,139,249,38,1,218,8,122,1,6,250,99,255,35,3,1,3, +193,5,17,5,108,2,118,1,180,252,104,250,220,252,181,249,162,250,117,5,23,7,204,3,107,8,29,4,172,250,193,0, +164,2,65,246,61,247,138,0,180,251,99,247,23,254,116,2,183,1,62,255,79,254,247,3,128,6,146,255,24,253,195,1, +119,3,250,0,161,250,84,247,17,255,202,1,216,248,101,250,160,3,193,1,79,0,8,3,83,251,40,246,205,253,50,0, +22,0,21,9,101,9,67,254,2,255,95,7,205,4,88,254,90,254,206,0,185,2,154,3,128,2,170,0,206,253,126,252, +55,2,169,6,162,253,174,243,208,250,62,7,20,6,84,254,154,252,27,253,227,251,62,253,80,1,73,4,170,5,132,5, +141,3,87,2,249,3,226,4,103,0,197,250,196,252,21,3,86,3,34,1,9,5,139,7,91,1,118,252,49,254,238,253, +181,251,187,254,46,3,53,4,95,5,67,7,192,7,58,6,251,255,53,249,246,249,7,251,226,246,190,248,109,254,254,252, +215,254,21,6,241,1,174,250,10,254,120,252,86,244,40,248,146,0,249,0,185,0,209,0,104,0,120,4,125,3,86,251, +28,254,224,8,252,8,30,0,41,248,243,248,152,4,247,7,10,252,136,250,84,5,101,4,165,254,248,1,152,1,229,251, +142,252,82,253,234,248,11,248,115,252,197,1,62,5,0,3,121,254,144,255,191,2,252,0,52,254,239,0,128,5,27,2, +214,248,153,249,239,5,50,10,122,1,247,252,178,0,90,1,166,255,240,1,114,3,189,0,74,254,224,253,118,255,217,0, +21,252,248,247,236,255,254,5,92,253,35,250,187,3,240,2,189,249,80,254,54,7,241,2,244,251,158,253,237,2,7,6, +77,4,164,255,153,255,104,4,207,4,209,254,62,252,180,1,44,5,135,0,189,253,22,1,11,1,184,252,67,251,226,251, +202,252,191,254,233,254,0,254,49,255,36,255,201,252,101,252,181,253,162,255,227,2,55,4,178,2,219,1,225,0,13,255, +246,255,125,2,31,2,239,255,11,0,215,2,36,4,148,1,107,255,63,0,175,0,237,0,180,2,222,1,14,255,32,1, +253,3,124,254,53,247,139,249,29,255,142,252,152,248,87,254,170,6,43,6,155,0,119,253,188,253,56,1,112,3,254,254, +13,252,105,2,216,5,146,254,145,251,149,2,57,4,33,254,122,253,157,0,101,255,215,0,119,7,177,5,162,250,38,246, +19,250,120,251,204,250,46,253,196,255,108,3,156,9,194,6,187,250,58,252,254,8,138,3,132,243,231,246,92,1,55,254, +77,252,8,2,199,3,182,5,74,7,41,0,153,254,27,6,56,1,43,248,184,254,108,3,196,253,209,1,162,9,142,3, +6,253,22,1,107,2,204,252,155,251,124,1,74,4,107,255,188,252,59,1,107,3,235,0,81,255,182,252,11,252,51,2, +5,2,137,247,249,247,56,3,146,1,123,248,200,252,179,4,33,1,164,253,201,2,207,4,181,255,111,253,212,255,69,0, +149,253,108,252,51,0,111,4,246,1,187,254,146,3,55,6,183,253,141,248,48,0,3,7,140,2,252,249,233,248,153,255, +219,1,162,252,98,252,80,1,130,0,216,255,175,6,44,9,123,2,31,255,238,1,153,1,194,252,119,250,107,254,231,4, +54,6,112,255,121,249,6,254,181,4,209,255,56,248,203,251,50,1,86,255,246,254,136,2,89,4,75,5,148,5,0,6, +10,9,249,5,69,251,176,249,52,255,16,252,31,250,230,1,185,3,208,255,99,3,243,4,105,252,154,247,6,252,6,255, +145,251,87,248,53,253,249,3,110,0,5,251,195,0,157,5,174,255,117,251,245,253,22,1,208,4,38,4,98,252,96,252, +195,5,49,6,222,255,243,255,110,255,41,251,202,252,218,255,99,254,228,255,26,3,7,2,4,2,17,3,99,0,143,255, +81,1,204,255,12,255,205,255,167,252,172,252,2,2,163,255,201,249,205,254,179,3,63,253,219,251,161,5,126,6,102,253, +164,255,185,8,15,4,218,250,185,253,209,1,43,255,254,254,215,255,12,254,129,0,142,3,140,0,147,254,124,255,10,255, +201,255,148,255,70,253,139,255,204,0,132,252,210,254,41,4,115,0,41,255,197,3,187,0,152,253,245,1,182,0,41,252, +176,254,255,0,79,1,7,3,163,0,191,255,131,4,57,1,140,250,54,255,18,1,209,249,134,253,220,6,104,1,196,249, +198,255,39,5,104,254,129,247,201,251,198,4,251,5,54,0,195,254,245,2,97,2,194,250,96,247,106,253,23,2,16,255, +164,253,65,2,8,6,242,6,129,5,38,0,101,253,15,1,203,0,234,250,159,251,28,2,113,3,247,255,168,253,19,255, +200,3,116,4,3,254,187,252,248,3,177,4,190,253,82,252,233,253,0,252,53,253,56,1,192,0,152,255,123,0,255,255, +43,1,208,2,246,254,29,253,176,1,116,1,154,252,131,253,42,1,4,2,56,1,57,255,246,255,95,3,241,0,25,254, +211,3,57,5,114,253,199,252,100,1,203,254,72,252,175,253,58,251,167,250,169,255,180,254,97,250,68,255,254,5,91,4, +119,1,155,1,40,0,15,254,70,253,74,253,68,1,194,5,73,2,29,255,62,6,32,10,170,1,127,251,239,253,191,255, +254,254,203,253,93,253,136,1,145,4,26,255,139,252,241,3,83,6,204,254,98,252,172,2,171,4,70,254,27,251,122,0, +237,2,56,254,220,253,178,1,92,255,92,252,130,0,102,3,139,255,238,251,254,253,29,3,76,3,97,252,70,249,69,255, +15,3,139,254,155,251,49,1,226,6,169,2,118,251,88,254,107,5,1,3,243,251,232,251,215,255,251,255,26,255,51,2, +121,3,28,254,136,252,2,3,102,3,180,252,99,253,73,2,156,1,137,255,64,253,113,250,103,254,190,3,55,0,29,253, +64,1,254,2,9,0,108,254,211,254,117,255,43,254,203,251,188,252,38,254,144,252,228,252,57,254,61,253,141,0,120,6, +169,4,102,0,9,2,57,3,55,0,230,253,48,254,148,0,15,3,252,2,134,3,140,7,104,9,130,4,190,254,95,255, +195,1,99,254,90,251,188,254,237,0,74,0,185,2,163,2,78,253,180,251,10,254,111,0,228,2,77,255,120,250,255,1, +236,6,58,251,216,247,196,3,157,2,241,247,187,251,174,3,96,1,239,253,243,253,178,254,178,255,20,253,39,251,112,1, +11,4,76,252,54,251,162,2,124,2,171,254,68,0,50,0,226,254,66,1,172,255,12,253,52,3,204,5,198,254,115,255, +149,5,118,2,34,0,111,3,61,255,200,250,181,0,11,3,62,253,203,251,220,254,86,1,138,1,154,252,132,250,180,1, +180,4,183,255,192,255,43,2,110,255,80,254,235,255,234,255,196,1,195,3,222,1,171,1,202,3,13,3,25,2,185,1, +62,255,242,255,68,4,93,3,237,255,218,1,2,3,1,255,114,254,201,1,91,0,158,253,242,255,85,1,59,0,217,1, +104,0,23,251,171,254,78,5,214,255,106,250,137,255,184,255,205,250,31,0,167,5,122,255,129,252,20,2,72,0,37,248, +16,249,168,254,133,252,110,250,49,0,174,1,85,253,211,1,160,7,157,0,102,252,118,3,60,3,70,252,105,253,224,254, +205,250,174,251,165,0,51,3,197,4,208,3,190,1,49,3,222,1,182,252,65,253,31,255,190,251,150,251,107,255,210,255, +14,0,159,1,53,1,80,2,148,3,202,0,204,0,113,3,53,255,101,250,122,253,84,0,142,255,31,0,90,0,15,1, +133,4,8,4,36,0,102,0,218,255,3,253,5,1,136,4,1,254,92,251,87,1,81,1,21,255,243,3,185,3,188,252, +119,254,96,4,59,2,115,254,95,254,51,255,171,1,35,1,211,250,53,251,147,3,116,3,18,252,242,251,160,0,195,1, +202,0,137,255,175,254,142,255,228,255,203,255,249,1,172,2,141,255,134,254,163,0,198,255,213,251,98,251,151,0,124,4, +217,1,101,0,135,4,147,2,17,250,59,251,192,1,202,253,61,249,202,254,243,1,207,255,163,1,252,2,122,1,30,3, +78,2,249,253,29,1,179,5,55,1,178,253,107,255,169,253,11,252,93,255,162,1,135,2,34,3,0,0,66,254,110,1, +227,0,140,251,131,250,229,254,103,2,102,1,57,255,183,0,88,1,176,253,238,253,219,1,132,0,185,254,87,1,38,1, +205,255,208,1,227,255,127,251,229,253,106,1,82,0,66,1,36,3,63,255,252,251,138,0,191,3,216,253,103,250,158,0, +115,2,223,252,232,254,40,4,5,1,66,0,31,4,110,0,75,253,115,0,150,252,205,248,205,1,110,6,32,255,132,253, +138,2,195,2,202,255,146,254,181,0,172,2,197,253,77,250,204,1,183,5,39,254,184,252,200,4,20,5,246,252,174,251, +125,2,72,4,116,255,247,255,173,4,104,2,143,253,123,253,140,253,119,254,105,2,51,2,130,254,76,252,164,248,3,249, +210,1,7,4,105,252,150,252,232,4,61,6,179,255,138,252,166,1,130,4,71,253,124,250,166,2,228,3,47,254,33,0, +120,1,219,253,200,0,190,1,118,250,31,253,159,6,230,2,179,250,209,250,64,252,198,254,167,3,34,1,75,251,164,254, +71,4,216,1,89,253,200,253,203,0,236,1,114,255,177,252,173,254,224,2,189,2,186,255,232,254,44,255,153,255,67,2, +235,3,223,1,40,1,83,2,155,0,135,254,13,255,193,254,220,253,29,255,22,1,163,2,94,3,41,3,68,4,3,5, +83,2,157,0,255,1,28,2,70,1,122,0,196,254,91,0,140,4,128,4,140,2,20,1,229,252,117,251,40,254,178,251, +180,249,156,0,4,4,139,255,26,255,162,0,4,254,234,252,168,252,248,249,41,251,24,0,158,1,181,0,34,1,194,2, +235,2,64,255,159,253,102,2,247,2,24,252,35,251,240,255,170,255,197,254,185,2,139,4,109,1,178,252,91,249,102,252, +113,2,180,0,15,252,91,255,68,2,21,254,83,255,190,6,19,4,108,251,80,254,211,5,8,2,136,250,200,252,96,3, +122,2,106,251,182,250,8,3,155,5,191,254,7,255,187,5,153,0,77,246,165,249,135,2,225,2,69,1,174,3,181,3, +249,255,254,254,197,1,72,2,215,254,181,252,121,253,211,253,191,253,72,254,43,255,42,2,57,5,139,3,89,1,181,2, +223,0,150,251,36,252,239,255,77,254,6,252,97,255,121,2,112,1,161,1,196,3,180,2,8,1,134,4,120,7,43,3, +162,255,82,3,107,4,43,254,159,251,59,255,200,254,229,251,143,255,70,4,70,2,106,255,120,255,7,254,111,252,66,253, +197,252,205,251,191,253,112,254,46,253,227,255,40,3,185,0,76,255,204,3,146,4,227,253,82,252,207,3,217,4,189,250, +32,248,77,2,151,5,4,255,57,0,234,5,9,2,167,253,102,0,43,255,93,251,47,254,164,254,200,249,0,252,14,1, +50,255,195,254,111,1,121,255,189,255,77,4,39,1,8,251,148,253,29,1,243,255,199,0,44,3,143,3,234,2,132,0, +15,255,199,2,203,6,151,5,7,0,49,250,45,251,200,0,132,255,250,251,173,255,169,0,232,251,120,253,231,0,126,254, +111,254,26,0,118,253,6,253,7,254,228,250,117,251,56,0,114,0,143,0,236,2,195,1,197,1,135,3,250,254,33,252, +165,2,156,5,129,255,178,251,77,255,100,4,254,2,96,252,4,252,192,1,75,2,104,255,26,255,39,254,116,253,202,255, +43,1,189,0,17,0,10,255,248,0,86,4,252,2,16,1,14,3,26,3,8,0,156,255,73,2,234,2,158,254,255,251, +145,0,225,2,241,254,23,255,252,0,43,254,94,255,66,3,27,0,112,253,52,255,111,254,111,255,105,2,248,255,174,255, +3,4,175,2,109,1,184,5,58,5,207,1,212,1,108,255,210,253,41,1,243,255,55,253,221,1,81,4,58,1,49,2, +216,2,144,253,223,251,127,0,196,1,158,253,65,252,96,0,197,1,223,253,73,253,29,0,52,0,183,1,51,4,150,255, +240,251,170,1,148,3,20,253,181,252,173,1,250,254,29,250,107,254,47,4,105,1,42,253,100,253,64,252,109,251,4,0, +6,1,20,253,8,1,12,6,154,255,70,252,109,2,2,0,152,248,63,253,253,2,183,253,212,250,140,1,57,6,50,3, +92,0,166,2,38,3,236,254,68,255,166,3,101,1,206,252,136,253,206,254,211,0,126,4,190,1,156,253,136,1,38,3, +70,254,239,253,185,254,13,251,61,252,25,1,92,255,105,251,120,252,106,0,215,3,210,3,92,1,102,1,207,1,64,255, +119,254,197,0,234,1,141,1,199,255,115,253,233,255,207,4,103,2,133,252,87,255,195,5,150,2,248,251,160,254,119,3, +156,0,62,254,221,0,207,254,221,249,142,253,151,3,8,255,22,248,8,252,175,2,117,0,155,253,145,2,81,6,6,3, +111,0,181,1,195,1,103,254,221,249,103,249,227,254,212,0,202,250,172,250,204,4,71,6,11,251,123,248,148,1,91,2, +98,251,192,252,148,1,207,255,185,255,78,4,221,2,169,252,243,252,35,3,124,5,29,1,145,253,0,0,223,1,226,254, +215,253,225,0,219,1,138,255,127,253,223,254,129,3,90,4,205,254,211,251,64,254,205,255,234,0,130,2,228,255,23,253, +28,1,204,4,148,0,226,251,19,254,160,2,80,3,121,0,207,254,17,1,196,2,223,255,59,254,223,0,103,0,201,253, +80,1,217,4,145,0,87,253,183,0,31,3,21,1,213,253,127,253,155,1,104,2,95,252,251,251,124,3,26,4,247,254, +83,1,122,6,84,4,236,255,236,254,247,253,89,252,32,253,173,254,27,255,71,1,13,4,180,2,80,1,95,4,162,4, +51,0,61,0,147,2,83,254,204,249,34,253,83,1,67,255,49,251,243,250,196,253,155,255,170,0,3,3,210,2,235,253, +213,250,126,252,63,255,122,1,254,255,130,250,51,251,248,1,128,1,153,253,250,0,2,3,120,255,188,255,119,0,152,253, +130,255,83,2,67,254,163,252,224,255,52,255,248,253,150,255,115,255,55,0,155,2,120,1,74,1,241,3,74,1,97,252, +160,253,201,0,196,0,217,255,100,0,171,2,95,3,169,0,54,0,253,2,217,1,221,253,80,254,36,2,84,3,115,0, +70,253,109,253,109,255,212,255,132,254,194,253,130,255,128,2,69,3,38,2,102,1,202,0,152,0,107,0,213,254,77,254, +169,255,90,0,87,2,113,4,135,1,161,0,118,6,47,6,120,254,37,254,65,3,249,2,65,0,158,254,23,253,74,254, +33,0,8,255,4,0,185,3,144,3,6,1,135,0,83,0,189,255,174,254,245,251,18,252,81,0,117,0,247,252,221,254, +194,2,43,1,173,254,82,255,165,255,222,254,95,254,16,254,187,253,72,252,166,251,248,254,209,0,159,253,227,253,180,2, +0,2,211,253,249,254,41,1,171,254,31,253,77,0,238,2,167,1,104,255,101,254,159,254,237,0,177,3,232,2,240,255, +143,255,38,1,198,0,121,254,167,253,22,254,156,252,150,252,54,1,211,1,118,252,255,253,189,4,36,3,31,254,5,255, +150,0,219,255,141,255,145,255,232,0,253,1,92,0,204,0,8,3,98,1,178,255,104,0,216,255,137,0,94,1,110,254, +203,254,7,2,144,255,249,254,65,3,24,0,68,251,129,255,171,1,75,254,140,255,88,1,240,254,69,255,118,1,35,0, +244,253,255,253,177,0,237,3,196,2,245,254,109,254,191,255,63,0,130,0,239,254,198,252,57,254,5,0,2,254,154,253, +251,1,5,3,29,253,226,250,100,1,229,4,167,0,236,255,197,3,7,2,195,253,203,254,204,0,243,255,82,254,138,252, +230,253,248,2,18,3,9,254,168,253,65,0,72,255,21,254,52,255,13,0,162,255,208,253,154,253,224,1,40,4,127,0, +146,254,158,1,107,4,234,3,162,0,75,255,93,2,251,1,182,252,21,253,95,1,229,255,75,253,124,255,154,0,252,253, +222,252,106,255,154,1,216,255,88,253,159,254,30,1,1,1,186,255,137,0,55,3,96,2,133,253,251,253,104,3,16,3, +159,0,203,3,47,5,139,2,148,3,48,5,212,1,10,254,99,253,134,254,231,254,140,253,31,255,60,4,220,4,253,0, +0,0,103,1,14,2,177,1,160,254,125,250,80,250,206,253,90,0,68,255,30,253,132,254,213,0,20,255,222,253,100,1, +224,2,142,254,177,251,24,254,82,255,211,252,254,252,195,255,28,255,236,254,51,3,134,4,123,1,207,0,59,1,11,0, +34,255,26,254,82,254,84,0,225,254,206,252,21,0,34,2,197,0,188,2,150,3,217,255,244,255,45,2,89,255,6,254, +90,1,193,0,104,252,164,252,56,1,229,2,56,255,129,252,108,0,206,5,225,4,1,0,35,254,157,255,198,255,219,253, +170,253,236,254,243,253,101,253,147,0,23,2,226,255,180,0,138,3,177,1,140,255,113,1,117,0,69,253,139,0,63,4, +73,255,238,250,101,255,158,3,217,0,252,252,2,254,160,2,124,4,241,255,9,251,168,252,28,0,129,253,32,249,28,252, +171,1,28,255,18,251,12,1,93,7,206,2,89,254,61,1,148,0,43,252,245,254,67,3,103,255,72,252,182,0,114,3, +248,0,215,255,138,0,174,0,63,1,4,1,214,255,106,0,37,0,234,252,94,252,234,255,47,1,23,255,177,254,253,0, +160,1,41,255,232,254,198,2,51,3,200,253,184,251,252,255,65,2,160,0,103,1,242,2,13,0,202,254,217,2,77,2, +42,253,29,255,98,3,195,0,73,255,138,1,154,255,115,253,74,255,49,255,78,254,222,255,25,0,5,0,23,1,144,255, +143,254,237,1,36,4,19,2,45,255,110,254,101,0,40,2,203,1,182,0,185,254,121,254,56,2,213,1,172,252,151,254, +141,3,32,1,55,255,42,1,236,253,183,250,98,0,174,5,76,2,187,254,129,2,33,5,71,255,7,252,5,1,74,0, +180,249,74,252,44,2,14,0,83,255,3,5,122,7,230,3,183,255,131,255,215,1,226,254,162,248,99,250,100,0,113,255, +237,251,129,253,49,0,55,255,34,253,96,253,9,254,19,253,28,254,153,0,71,254,90,251,41,255,172,1,232,251,238,247, +35,253,173,3,122,3,234,255,156,0,107,4,234,3,29,0,232,255,244,1,53,1,137,255,57,0,148,1,219,1,90,2, +47,3,107,2,139,0,154,255,34,255,174,254,80,255,254,255,77,255,25,254,54,253,251,253,235,255,201,253,123,249,51,253, +14,5,1,4,23,255,42,1,90,4,174,2,40,1,109,1,176,1,242,2,25,4,107,3,129,2,83,3,203,5,145,5, +10,0,146,252,247,254,49,0,211,255,200,1,107,2,187,1,219,1,21,255,190,253,50,2,106,2,165,253,25,253,230,252, +128,252,159,0,231,254,128,248,178,253,7,3,159,250,139,248,53,3,251,4,9,254,94,254,102,2,56,0,28,251,61,251, +118,255,80,255,34,253,9,2,115,7,31,4,89,0,27,2,229,1,147,254,123,254,0,0,149,254,252,253,232,1,19,5, +184,3,115,1,42,0,12,0,78,1,182,255,191,252,209,255,15,3,177,255,240,254,63,2,23,1,190,255,225,0,93,254, +250,252,21,0,219,255,229,253,166,254,4,254,108,254,158,1,17,0,81,253,189,0,17,2,150,253,161,252,221,255,12,1, +104,0,165,0,206,2,177,4,212,1,26,253,188,253,45,1,209,0,173,254,57,255,12,1,20,1,111,255,196,254,4,0, +237,255,106,253,225,252,189,254,239,254,27,255,169,0,70,255,68,253,200,255,45,1,245,253,196,252,115,255,232,2,167,4, +43,1,44,254,138,3,180,5,30,253,25,250,105,0,180,1,114,0,220,2,0,1,94,253,116,0,134,2,128,255,105,255, +155,0,152,254,148,254,32,1,250,0,137,254,80,252,144,252,45,0,197,1,174,255,120,255,93,255,226,252,74,254,229,0, +222,253,146,253,63,2,96,0,5,253,167,2,213,6,173,2,85,255,112,255,135,0,255,1,106,255,155,251,248,254,141,3, +26,2,52,1,168,2,103,1,108,0,128,1,155,255,209,251,205,251,150,255,160,2,206,0,44,252,193,252,187,2,160,3, +188,253,53,252,51,1,44,2,104,253,38,252,231,255,179,1,207,255,145,254,249,255,121,1,190,0,56,255,85,255,77,1, +229,2,74,1,200,254,138,0,45,3,221,0,54,254,27,255,159,255,85,0,193,2,121,1,17,253,117,253,194,1,228,1, +22,253,33,251,101,255,59,2,209,254,149,252,167,0,250,4,33,3,175,253,157,253,181,3,135,4,134,254,18,253,35,0, +182,0,171,0,64,0,19,254,106,255,138,3,13,4,206,1,142,254,227,251,160,254,12,2,140,254,149,251,48,255,243,0, +201,253,170,253,135,2,8,5,150,1,30,254,113,255,209,1,160,1,35,0,59,255,68,0,162,1,230,0,59,1,5,3, +190,0,81,253,172,254,153,0,10,0,77,255,5,254,117,254,74,2,19,3,248,255,89,255,88,0,164,0,58,1,95,255, +65,252,127,253,58,0,90,0,50,0,19,0,152,0,178,2,255,0,50,253,198,255,178,1,253,251,253,250,65,0,46,254, +157,250,65,0,28,4,5,0,165,253,99,254,210,254,105,0,207,255,104,251,197,250,145,255,3,3,152,2,156,1,235,2, +157,3,118,0,118,255,14,3,216,2,81,0,67,2,115,1,6,253,9,0,48,4,152,255,237,252,97,0,178,255,81,253, +8,0,127,2,202,1,106,0,191,253,44,252,195,254,178,0,21,254,197,250,102,251,133,0,75,5,122,4,167,1,211,1, +85,1,90,255,220,0,142,2,236,0,254,1,121,4,11,2,229,0,151,3,64,2,194,0,1,4,116,3,117,0,197,1, +138,255,65,251,232,255,181,2,210,251,191,251,61,3,0,2,216,252,0,254,152,254,49,252,107,253,215,255,213,253,46,251, +72,253,159,0,148,255,236,253,71,0,158,0,34,252,62,252,194,2,1,4,211,253,186,251,14,0,168,1,41,0,230,0, +175,255,245,251,13,255,169,4,228,1,237,255,173,5,222,4,64,252,142,251,193,255,21,254,178,252,135,254,157,253,20,255, +141,5,52,5,156,254,226,255,68,6,36,5,7,255,127,252,67,253,215,253,140,253,178,253,249,254,3,0,219,0,4,2, +45,1,122,255,156,0,157,1,244,0,67,3,10,5,15,0,71,251,17,253,217,255,73,0,224,255,230,253,163,253,28,3, +230,6,101,2,143,254,240,1,51,3,114,254,160,252,27,254,115,253,218,254,187,1,69,254,105,251,167,1,25,6,53,2, +145,255,127,0,55,0,143,0,173,1,243,255,174,253,233,253,113,254,255,254,240,1,155,4,22,3,22,1,116,2,85,2, +17,254,14,251,218,251,89,255,165,3,138,2,133,252,125,252,201,1,234,1,44,255,118,255,44,255,159,253,12,254,201,254, +106,254,168,253,187,252,162,253,36,0,222,0,105,0,24,0,225,254,228,254,193,0,91,0,73,254,234,253,238,253,19,254, +253,255,139,1,74,1,68,1,124,2,201,3,92,2,118,254,156,254,243,2,132,2,152,254,58,255,76,0,11,254,11,255, +170,1,54,255,39,253,204,255,8,1,179,255,168,255,5,0,138,255,208,254,71,254,105,255,250,0,13,0,198,254,99,255, +62,0,23,1,91,1,54,0,245,0,248,2,79,1,253,255,120,3,17,4,242,254,140,253,8,1,3,1,17,254,39,254, +164,255,138,0,104,4,234,8,120,6,190,255,88,253,226,254,128,255,4,254,122,251,135,251,95,255,135,0,57,253,180,252, +189,255,231,0,103,0,224,255,190,254,201,254,74,0,212,255,91,253,121,252,103,254,23,1,86,2,111,2,237,2,180,3, +182,3,120,2,234,0,112,1,82,3,155,2,96,0,168,0,132,1,108,0,181,255,127,255,75,254,122,254,65,0,44,0, +113,255,240,0,56,2,27,1,130,255,246,254,126,255,255,255,243,254,92,254,52,0,71,0,179,252,208,251,222,255,129,2, +27,1,37,0,161,1,214,1,1,255,106,253,157,254,106,254,195,253,6,0,8,0,56,252,57,253,12,2,131,1,228,254, +103,0,135,1,66,0,62,0,1,0,122,254,233,254,215,255,187,254,106,255,7,2,229,255,29,251,27,253,250,2,251,2, +156,0,173,2,100,3,39,255,172,253,114,0,250,255,168,252,157,253,84,1,226,255,93,251,141,253,185,3,141,2,129,253, +13,255,2,3,90,2,210,0,103,0,233,254,88,254,91,254,119,252,190,253,16,4,170,5,110,0,95,255,132,3,216,2, +19,255,101,0,99,1,116,252,122,251,125,2,51,5,96,0,153,254,117,1,52,2,238,0,137,0,70,0,50,0,149,1, +115,3,47,3,190,255,127,252,57,253,89,255,162,254,45,252,142,250,119,251,234,255,244,2,188,255,37,253,230,0,225,2, +197,255,68,0,237,2,198,254,236,249,18,253,30,0,102,253,160,253,215,1,104,1,79,255,214,2,176,5,162,1,23,254, +166,0,239,2,206,255,219,251,90,252,136,255,103,1,182,0,0,254,71,253,99,2,225,5,25,0,251,251,229,1,119,4, +252,254,42,255,183,2,237,253,233,249,170,254,83,0,167,252,187,254,94,3,248,1,100,0,209,3,104,5,113,1,208,253, +154,254,123,0,169,255,9,254,241,254,128,1,113,3,93,3,26,0,115,253,193,0,45,4,65,0,214,252,82,0,250,1, +91,255,255,254,188,253,94,250,80,253,70,2,119,255,136,252,240,255,205,1,69,0,58,0,209,0,188,0,116,255,177,252, +81,253,53,1,53,1,199,255,155,1,26,1,96,254,248,255,36,2,132,0,68,255,122,255,48,255,238,254,165,254,66,255, +62,1,216,1,110,2,18,5,96,5,199,2,112,0,238,252,102,251,169,254,94,254,199,251,93,1,114,6,101,2,69,1, +152,3,51,255,119,253,188,2,104,0,199,249,255,252,184,2,8,2,46,0,170,254,208,253,30,1,109,2,207,253,136,253, +194,2,176,1,135,252,198,253,115,0,213,253,160,253,250,1,16,1,235,252,92,255,242,2,95,0,163,254,9,1,181,1, +163,0,187,255,95,254,213,255,193,2,17,0,84,252,224,255,69,4,219,1,167,253,189,253,151,0,44,1,132,254,80,254, +113,1,234,0,42,254,129,255,217,255,96,252,233,253,171,2,77,0,219,252,48,1,15,4,193,255,34,254,239,0,223,0, +137,0,63,2,20,0,175,253,188,1,79,3,89,254,111,254,144,2,64,0,155,253,183,0,38,1,150,254,178,255,215,255, +121,252,219,252,31,1,255,2,41,1,5,254,220,253,110,1,137,1,7,253,186,252,16,1,150,2,96,1,18,1,162,1, +160,2,142,2,245,255,58,254,213,255,39,1,226,255,171,254,58,255,13,0,13,0,58,0,171,0,22,0,12,0,18,2, +221,1,227,253,114,253,208,1,196,1,10,253,62,253,71,1,230,0,149,254,189,255,78,1,68,1,33,1,25,255,36,253, +168,0,59,4,215,0,64,253,227,254,134,0,245,0,246,1,107,0,53,254,63,0,229,1,52,255,61,254,106,1,139,2, +46,255,184,252,68,255,44,2,185,255,133,252,85,254,200,0,25,0,68,255,14,255,19,255,124,0,243,0,172,255,45,0, +18,1,61,0,85,1,216,2,232,255,160,253,164,0,113,2,203,255,79,254,90,255,184,254,146,252,98,253,203,0,33,1, +136,254,246,254,9,1,78,255,162,252,110,253,221,255,236,1,250,1,40,255,139,254,191,1,228,1,190,255,221,1,206,3, +63,1,197,0,222,2,108,1,168,255,70,1,51,1,220,254,97,255,101,1,113,0,127,253,172,252,57,255,0,1,159,254, +96,252,140,254,211,1,31,2,25,0,91,255,172,1,149,1,52,252,131,251,95,2,15,4,67,0,183,1,172,3,218,0, +5,1,45,2,104,254,24,254,7,2,73,0,154,253,215,255,108,255,19,253,189,254,222,254,194,252,6,255,213,0,99,253, +217,251,170,254,72,0,48,255,158,253,40,254,9,1,244,1,11,0,45,0,255,2,92,4,54,2,104,254,116,253,253,255, +228,0,156,255,35,0,217,1,202,2,49,2,237,254,137,253,55,1,136,1,66,252,153,251,23,255,81,255,164,255,249,0, +89,254,75,253,168,1,62,2,22,254,136,254,236,1,94,1,132,255,82,0,7,2,146,2,128,1,169,255,105,255,11,1, +10,2,101,1,161,0,6,1,199,1,136,0,154,253,22,253,22,255,7,255,25,254,160,255,76,255,85,253,8,2,19,8, +215,3,9,254,186,0,6,2,101,254,160,255,235,2,36,1,163,255,223,0,57,1,42,2,81,3,67,2,76,2,27,3, +203,0,1,255,55,0,65,0,201,254,57,253,105,251,6,252,252,253,125,253,178,254,124,2,54,1,126,253,3,255,230,0, +7,255,30,254,242,253,85,252,93,252,245,253,192,254,252,255,114,1,46,2,118,3,124,3,32,1,3,1,16,3,168,1, +6,255,78,0,202,1,79,0,177,255,113,255,94,252,39,251,170,254,233,0,196,0,199,1,15,1,197,254,208,0,213,2, +155,254,142,251,9,254,186,254,150,252,158,252,87,254,190,0,197,3,123,4,250,2,33,2,207,1,0,2,101,2,52,0, +143,253,39,255,135,1,76,0,254,254,173,255,128,255,98,255,53,1,183,1,91,0,96,1,135,2,114,255,82,254,67,2, +225,0,22,250,246,250,227,255,105,253,216,250,250,253,116,254,147,254,10,4,3,5,131,255,216,254,22,1,176,255,8,255, +84,255,214,253,209,254,117,0,25,254,235,253,209,1,111,2,194,0,48,1,252,1,52,3,229,3,26,0,80,252,195,253, +93,255,48,255,214,0,254,0,42,254,23,255,255,2,51,2,240,254,45,0,70,3,45,2,16,255,132,255,169,1,156,255, +201,251,63,253,255,0,173,255,229,252,146,254,232,0,11,1,139,1,127,1,233,0,139,2,2,2,217,252,159,251,169,255, +205,0,76,0,152,1,8,0,81,253,196,255,225,2,61,1,76,255,194,0,160,2,88,1,184,254,207,255,36,2,254,254, +136,251,188,254,163,0,152,252,228,251,177,255,166,0,175,0,10,2,179,0,149,255,83,2,156,2,191,254,59,253,69,254, +8,255,215,255,211,254,87,253,250,0,181,5,103,4,228,0,102,255,35,255,34,1,225,1,120,253,116,252,32,2,213,2, +102,254,134,255,106,2,114,0,191,255,224,1,223,0,222,254,231,255,112,0,250,254,81,255,183,0,250,254,31,253,174,0, +179,3,6,255,88,251,124,255,193,1,66,255,188,255,171,255,132,252,164,255,22,5,200,1,129,254,107,2,95,3,115,0, +133,0,244,255,111,254,238,0,113,2,146,255,118,254,120,0,214,1,239,0,158,254,229,254,195,0,36,254,55,252,192,0, +159,1,120,252,52,253,151,1,135,0,110,254,164,254,213,254,94,1,53,4,243,1,7,255,245,255,146,1,85,2,161,1, +217,254,87,254,61,1,57,2,109,0,166,254,246,253,216,255,44,2,137,0,211,254,26,1,10,1,254,252,18,253,70,0, +204,254,9,252,42,254,142,0,68,255,183,254,161,0,229,1,74,2,134,2,37,1,62,255,176,255,13,1,126,0,201,255, +186,0,125,0,60,255,171,1,134,4,193,0,209,252,28,0,102,1,72,252,13,252,162,0,152,255,167,252,153,253,169,253, +122,253,195,255,6,255,142,252,119,254,178,255,126,253,202,254,24,2,0,1,171,254,66,255,215,0,12,1,211,255,237,255, +21,2,175,1,98,255,188,0,122,2,113,0,251,255,101,2,212,1,237,254,90,254,1,0,134,1,94,1,72,0,135,0, +42,1,101,0,245,255,177,0,21,1,241,0,118,0,85,0,149,1,195,1,195,255,28,0,96,2,64,0,112,252,189,254, +104,3,49,2,56,254,113,254,99,0,155,255,179,255,238,2,18,3,120,254,204,252,146,255,105,0,10,255,92,255,83,0, +233,255,190,254,139,254,28,1,105,3,134,0,87,253,114,0,217,3,197,1,157,255,196,0,149,1,47,0,98,254,37,255, +252,1,192,1,24,255,0,0,211,1,171,255,83,254,90,0,130,0,175,254,169,254,44,255,140,254,3,254,225,253,68,254, +101,255,165,255,228,254,155,255,52,1,205,0,64,255,204,254,238,254,66,255,162,255,227,254,198,254,205,0,244,0,173,254, +62,255,52,1,73,0,41,0,15,2,196,0,77,254,228,255,30,1,210,253,228,251,204,254,172,0,31,255,147,255,161,2, +196,2,100,0,199,255,224,255,200,254,3,254,52,254,67,255,228,0,221,0,161,255,201,0,44,3,188,2,190,0,166,0, +132,1,235,0,149,255,42,255,150,255,126,0,120,1,202,1,40,2,70,2,74,0,46,255,208,1,39,2,205,253,198,252, +163,255,24,255,75,253,242,254,3,0,202,254,111,255,96,1,54,1,240,255,158,255,247,255,143,0,239,0,5,0,188,254, +2,255,109,255,120,254,191,254,142,0,80,0,118,255,211,1,68,4,142,2,75,255,134,254,74,0,234,1,214,0,11,254, +22,253,81,254,26,255,28,255,94,255,101,255,184,255,79,1,145,1,54,255,162,254,167,0,40,0,218,253,171,254,179,0, +16,0,111,254,64,254,151,255,49,1,196,0,236,254,75,255,72,1,8,1,69,255,67,255,28,0,119,255,212,254,235,255, +151,0,163,255,92,255,95,0,212,0,89,0,246,255,184,0,5,2,94,1,217,255,47,1,188,2,106,0,136,254,139,0, +179,1,43,0,237,255,216,0,48,0,128,255,60,0,75,0,166,255,117,0,71,1,30,0,171,255,126,1,231,1,102,255, +166,253,141,254,231,255,21,0,200,255,196,255,227,255,22,0,121,0,180,0,170,0,237,0,92,1,198,0,78,255,52,255, +201,0,5,1,149,255,124,255,3,0,40,255,115,255,43,1,116,0,162,254,66,255,58,0,254,255,120,0,172,0,29,255, +52,254,60,255,233,255,50,255,229,254,177,255,228,255,124,255,93,0,110,1,153,0,191,255,239,0,31,2,212,0,131,254, +184,254,226,0,239,0,171,255,106,0,201,0,81,255,240,255,176,1,222,255,9,253,25,254,234,0,128,0,87,253,210,252, +122,255,88,255,133,252,13,253,165,255,174,255,210,254,55,255,18,0,205,0,143,0,116,0,42,2,61,2,161,255,196,255, +62,2,99,2,6,2,159,2,152,1,82,0,215,0,93,1,238,0,93,255,166,253,181,254,58,0,64,254,192,252,236,253, +36,253,9,252,229,254,56,1,231,255,59,255,11,0,182,255,58,255,210,255,11,0,86,255,24,255,13,0,5,1,60,1, +192,1,195,2,43,3,4,3,152,2,120,1,78,0,142,0,181,1,47,1,224,254,154,254,172,0,88,0,195,253,17,253, +150,253,5,254,109,255,211,255,217,254,223,255,7,1,80,255,100,254,135,255,89,255,217,254,231,255,112,0,88,0,87,1, +93,2,97,2,120,2,250,2,30,3,126,2,33,1,184,255,161,255,135,0,46,0,60,255,134,0,68,2,129,1,6,1, +197,2,74,3,107,1,100,255,226,253,99,253,51,254,202,254,26,255,158,255,169,254,126,253,91,255,242,0,92,254,220,252, +247,255,70,1,166,254,82,254,56,0,101,255,190,253,94,254,34,255,237,254,1,255,185,255,168,0,154,0,31,0,109,1, +237,1,41,255,58,254,235,0,205,1,7,1,17,2,136,2,237,0,229,255,12,0,97,0,76,0,86,255,219,254,253,255, +12,1,191,0,9,0,79,0,132,1,133,1,187,255,238,254,146,255,26,255,34,254,195,254,117,255,244,254,119,255,205,0, +182,255,55,254,114,0,96,2,241,255,93,254,189,255,22,255,171,253,34,255,179,255,146,253,6,253,218,254,79,0,146,0, +101,0,179,0,22,1,182,0,220,0,154,1,185,0,60,255,89,255,146,255,243,254,59,255,79,0,139,0,103,0,27,1, +205,1,113,1,34,1,77,1,135,0,95,255,27,255,155,254,1,254,159,254,159,254,79,253,167,253,172,255,163,0,136,0, +58,0,180,255,142,255,207,255,191,255,160,255,183,255,212,255,53,0,184,0,193,0,138,0,227,0,245,1,134,2,94,1, +242,255,111,0,95,1,151,0,177,255,17,0,49,0,11,0,196,0,86,1,111,1,239,1,123,1,212,255,181,255,246,0, +66,1,8,1,244,0,111,0,59,0,128,0,17,0,157,255,81,0,69,1,94,1,201,0,89,0,69,0,132,255,207,253, +204,252,90,253,21,254,235,253,2,254,83,255,133,0,200,0,236,0,121,0,100,255,75,255,31,255,243,253,169,254,178,0, +143,0,37,0,67,1,23,1,215,255,254,255,213,0,101,1,140,1,52,1,55,1,221,0,186,255,77,0,27,1,141,254, +84,252,175,253,168,254,255,253,116,254,128,255,229,255,34,0,109,0,248,0,232,0,106,255,198,254,206,255,163,255,140,254, +50,255,126,0,195,0,228,0,243,0,143,0,187,0,253,0,5,0,179,255,29,1,203,0,93,254,91,254,63,0,228,255, +219,254,238,255,14,1,138,0,148,255,105,255,21,0,61,0,231,255,207,0,50,1,93,255,33,255,108,1,196,1,117,0, +103,0,54,0,92,255,143,255,15,0,47,0,179,0,251,0,202,0,2,1,253,0,230,255,219,254,244,254,80,255,240,254, +11,255,101,0,243,0,96,0,228,0,146,1,83,0,4,255,126,255,87,0,214,255,226,253,152,252,198,253,78,255,56,255, +48,255,230,255,78,0,122,0,63,0,228,255,98,0,124,0,221,255,117,0,211,0,80,255,1,255,145,0,241,0,144,0, +68,1,25,2,246,1,73,1,95,1,9,2,198,0,106,254,89,254,42,255,228,254,91,255,12,0,188,255,39,0,136,0, +187,255,26,0,214,0,150,255,127,254,130,254,124,254,124,255,164,0,59,0,72,0,240,0,247,255,238,254,145,255,119,0, +234,0,51,1,133,1,229,1,92,1,132,0,243,0,225,0,220,254,172,253,206,254,19,0,12,0,195,255,228,255,39,255, +67,254,231,255,66,1,175,254,63,253,197,255,70,0,159,254,201,255,31,1,217,255,103,255,86,0,35,0,246,254,15,254, +179,254,156,0,242,0,3,0,228,0,34,2,58,1,77,0,172,0,115,0,193,255,242,255,44,0,24,0,169,0,209,0, +242,255,34,0,52,1,11,1,193,0,25,1,82,0,108,255,210,255,190,255,78,255,207,255,134,255,139,254,103,255,228,0, +160,0,173,255,166,255,34,0,10,0,127,255,160,255,218,255,54,255,56,255,56,0,23,0,94,255,252,255,185,0,14,0, +56,255,126,255,29,0,245,255,159,255,10,0,91,0,228,255,161,255,205,255,158,255,137,255,24,0,243,255,160,254,208,254, +75,1,13,2,59,0,20,0,5,1,110,255,46,254,245,255,185,0,74,255,102,255,146,0,243,255,57,255,157,0,155,1, +249,255,165,254,174,255,6,0,200,254,63,255,3,1,3,1,44,0,76,0,89,0,197,255,246,255,58,1,139,1,31,0, +194,255,132,1,20,2,134,0,168,255,7,0,107,0,166,0,75,0,132,255,156,255,33,0,159,255,201,254,51,255,59,0, +14,0,5,255,214,254,80,255,135,255,186,255,224,255,222,255,36,0,44,0,191,255,236,255,24,0,43,255,209,254,15,0, +171,0,156,255,32,255,95,0,114,1,66,1,248,0,189,0,234,255,109,255,230,255,137,0,165,0,237,255,139,255,13,1, +12,2,1,0,98,254,16,0,169,1,167,0,122,255,254,255,155,0,8,0,162,255,246,255,150,255,33,255,211,255,21,0, +111,255,163,255,80,0,49,0,176,255,167,255,159,0,54,1,234,255,25,255,1,0,236,255,84,255,46,0,154,0,138,0, +141,1,159,1,64,0,197,255,212,255,185,255,3,0,18,0,225,255,1,0,27,0,79,0,27,0,91,255,17,0,250,0, +98,255,103,254,161,255,65,255,200,253,227,253,21,254,83,254,136,255,185,255,12,255,57,255,107,255,140,255,218,255,79,255, +28,255,4,0,253,255,186,255,213,0,47,1,133,0,104,1,136,2,74,1,190,255,203,0,182,2,94,2,199,0,168,0, +29,1,76,0,126,255,10,0,171,0,73,0,218,255,45,0,232,255,96,254,3,254,80,255,76,255,95,254,21,255,168,255, +203,254,2,255,241,255,52,255,82,254,2,255,214,255,34,0,134,0,216,0,247,0,7,1,216,0,157,0,199,0,13,1, +215,0,76,0,37,0,88,0,47,0,184,255,118,255,89,255,56,255,57,255,174,255,93,0,241,255,162,254,221,254,18,0, +107,255,128,254,195,255,177,0,212,255,164,255,136,0,5,1,250,0,94,0,216,255,155,0,95,1,194,0,76,0,206,0, +251,0,143,0,94,0,135,0,147,0,81,0,12,0,232,255,189,255,153,255,144,255,207,255,53,0,186,255,200,254,31,255, +203,255,51,255,225,254,165,255,37,0,87,0,116,0,76,0,133,0,140,0,170,255,102,255,21,0,136,0,222,0,225,0, +183,0,92,1,77,1,24,0,104,0,8,1,174,255,68,255,101,0,209,255,143,254,203,254,97,255,197,255,239,255,187,255, +0,0,204,255,117,254,118,254,120,255,205,254,20,254,245,254,120,255,88,255,191,255,42,0,105,0,201,0,248,0,65,1, +214,1,220,1,82,1,79,1,168,1,6,1,3,0,127,0,68,1,128,0,31,0,211,0,67,0,59,255,138,255,132,255, +183,254,174,254,214,254,159,254,184,254,237,254,75,255,195,255,105,255,11,255,196,255,94,0,103,0,162,0,183,0,196,0, +96,1,143,1,237,0,170,0,251,0,244,0,101,0,26,0,114,0,150,0,16,0,146,255,109,255,134,255,147,255,224,254, +89,254,88,255,248,255,196,254,34,254,250,254,142,255,204,255,248,255,137,255,129,255,49,0,55,0,22,0,166,0,180,0, +95,0,202,0,237,0,92,0,140,0,50,1,41,1,231,0,158,0,237,255,115,255,75,255,228,254,246,254,189,255,158,255, +136,254,122,254,87,255,74,255,183,254,251,254,105,255,64,255,80,255,192,255,253,255,84,0,193,0,161,0,124,0,251,0, +92,1,1,1,100,0,45,0,83,0,54,0,2,0,131,0,238,0,115,0,92,0,239,0,172,0,223,255,168,255,180,255, +184,255,140,255,4,255,0,255,140,255,146,255,160,255,37,0,0,0,171,255,45,0,122,0,62,0,90,0,73,0,215,255, +20,0,184,0,184,0,102,0,133,0,242,0,225,0,75,0,44,0,100,0,244,255,139,255,220,255,190,255,4,255,225,254, +5,255,197,254,215,254,82,255,118,255,107,255,171,255,33,0,158,0,155,0,0,0,10,0,19,1,120,1,185,0,93,0, +228,0,69,1,3,1,152,0,132,0,158,0,93,0,245,255,241,255,0,0,194,255,146,255,116,255,24,255,205,254,195,254, +138,254,91,254,228,254,154,255,134,255,70,255,196,255,116,0,179,0,180,0,153,0,187,0,98,1,193,1,115,1,36,1, +221,0,115,0,77,0,10,0,150,255,227,255,46,0,100,255,58,255,83,0,61,0,237,254,220,254,136,255,12,255,106,254, +216,254,59,255,34,255,144,255,42,0,241,255,164,255,34,0,162,0,106,0,25,0,92,0,209,0,234,0,251,0,60,1, +2,1,116,0,152,0,247,0,134,0,237,255,241,255,19,0,8,0,244,255,160,255,39,255,27,255,68,255,215,254,65,254, +168,254,106,255,23,255,97,254,199,254,213,255,65,0,229,255,202,255,170,0,125,1,51,1,219,0,89,1,210,1,190,1, +79,1,201,0,193,0,238,0,101,0,195,255,196,255,163,255,60,255,62,255,74,255,1,255,248,254,75,255,84,255,247,254, +223,254,46,255,38,255,205,254,252,254,142,255,217,255,15,0,120,0,242,0,102,1,171,1,161,1,132,1,129,1,144,1, +129,1,30,1,162,0,103,0,78,0,21,0,184,255,116,255,124,255,98,255,194,254,110,254,246,254,85,255,225,254,151,254, +23,255,116,255,23,255,216,254,75,255,204,255,213,255,177,255,224,255,114,0,217,0,201,0,184,0,205,0,253,0,135,1, +211,1,80,1,12,1,89,1,0,1,56,0,5,0,248,255,198,255,234,255,250,255,124,255,15,255,15,255,255,254,205,254, +199,254,165,254,79,254,93,254,157,254,142,254,215,254,127,255,143,255,152,255,92,0,234,0,4,1,95,1,208,1,20,2, +6,2,141,1,128,1,223,1,90,1,111,0,100,0,137,0,250,255,60,255,18,255,95,255,73,255,12,255,140,255,170,255, +194,254,142,254,248,254,168,254,122,254,188,254,182,254,74,255,46,0,243,255,193,255,157,0,31,1,221,0,195,0,10,1, +88,1,69,1,30,1,93,1,87,1,227,0,189,0,158,0,85,0,51,0,181,255,34,255,64,255,93,255,81,255,135,255, +59,255,206,254,49,255,74,255,212,254,191,254,143,254,161,254,184,255,29,0,94,255,110,255,33,0,90,0,115,0,133,0, +179,0,57,1,67,1,5,1,101,1,93,1,166,0,196,0,54,1,176,0,38,0,100,0,167,0,97,0,182,255,71,255, +137,255,167,255,252,254,119,254,164,254,217,254,227,254,5,255,38,255,36,255,3,255,240,254,69,255,165,255,124,255,111,255, +27,0,184,0,234,0,78,1,205,1,221,1,167,1,156,1,189,1,164,1,66,1,13,1,242,0,145,0,40,0,224,255, +182,255,184,255,89,255,204,254,55,255,151,255,164,254,71,254,59,255,54,255,70,254,65,254,190,254,249,254,66,255,127,255, +192,255,79,0,191,0,213,0,1,1,120,1,197,1,121,1,49,1,126,1,123,1,242,0,230,0,244,0,103,0,239,255, +191,255,145,255,123,255,37,255,238,254,132,255,142,255,146,254,132,254,76,255,14,255,87,254,91,254,201,254,66,255,155,255, +174,255,200,255,12,0,126,0,22,1,46,1,209,0,253,0,85,1,13,1,238,0,50,1,218,0,114,0,214,0,217,0, +25,0,10,0,86,0,212,255,143,255,2,0,192,255,13,255,16,255,8,255,156,254,175,254,0,255,253,254,247,254,10,255, +57,255,150,255,179,255,158,255,212,255,43,0,127,0,237,0,32,1,32,1,95,1,144,1,86,1,60,1,139,1,141,1, +239,0,136,0,190,0,177,0,250,255,78,255,32,255,39,255,232,254,126,254,153,254,8,255,10,255,11,255,63,255,8,255, +1,255,132,255,102,255,9,255,112,255,183,255,189,255,107,0,242,0,215,0,5,1,70,1,45,1,58,1,88,1,89,1, +117,1,96,1,234,0,102,0,28,0,37,0,200,255,174,254,87,254,23,255,40,255,173,254,17,255,152,255,62,255,188,254, +226,254,94,255,61,255,182,254,30,255,242,255,222,255,228,255,185,0,12,1,224,0,51,1,146,1,134,1,76,1,2,1, +252,0,254,0,107,0,26,0,151,0,149,0,210,255,152,255,1,0,45,0,218,255,103,255,80,255,127,255,126,255,93,255, +72,255,34,255,29,255,60,255,54,255,58,255,104,255,125,255,149,255,227,255,65,0,108,0,46,0,3,0,120,0,173,0, +57,0,71,0,173,0,115,0,107,0,226,0,228,0,196,0,226,0,183,0,138,0,128,0,82,0,113,0,46,0,1,255, +13,255,47,0,141,255,142,254,144,255,16,0,207,254,89,254,254,254,91,255,122,255,79,255,244,254,68,255,242,255,39,0, +22,0,49,0,149,0,229,0,179,0,140,0,241,0,45,1,215,0,143,0,195,0,235,0,111,0,21,0,150,0,178,0, +236,255,208,255,33,0,152,255,56,255,165,255,164,255,35,255,225,254,203,254,231,254,49,255,88,255,110,255,123,255,148,255, +14,0,109,0,67,0,50,0,103,0,151,0,202,0,170,0,81,0,167,0,50,1,226,0,114,0,178,0,243,0,178,0, +76,0,29,0,25,0,239,255,173,255,162,255,134,255,36,255,14,255,81,255,53,255,241,254,66,255,149,255,62,255,49,255, +199,255,178,255,32,255,138,255,78,0,46,0,21,0,190,0,41,1,225,0,169,0,228,0,17,1,238,0,235,0,8,1, +209,0,165,0,178,0,107,0,49,0,90,0,5,0,105,255,133,255,141,255,224,254,125,254,166,254,200,254,174,254,64,254, +15,254,193,254,127,255,130,255,115,255,199,255,69,0,174,0,200,0,216,0,43,1,79,1,65,1,130,1,181,1,123,1, +50,1,1,1,219,0,192,0,103,0,251,255,226,255,202,255,166,255,219,255,196,255,220,254,71,254,153,254,182,254,106,254, +155,254,243,254,192,254,196,254,104,255,206,255,216,255,18,0,76,0,148,0,34,1,71,1,3,1,84,1,215,1,166,1, +78,1,80,1,64,1,5,1,184,0,98,0,57,0,16,0,184,255,136,255,104,255,32,255,37,255,56,255,189,254,139,254, +28,255,56,255,186,254,226,254,134,255,142,255,63,255,98,255,191,255,215,255,245,255,121,0,224,0,208,0,230,0,58,1, +28,1,208,0,232,0,223,0,131,0,135,0,191,0,104,0,218,255,1,0,158,0,83,0,50,255,89,255,153,0,247,255, +34,254,155,254,249,255,0,255,200,253,166,254,115,255,43,255,113,255,18,0,22,0,35,0,148,0,198,0,148,0,98,0, +138,0,247,0,19,1,199,0,177,0,223,0,178,0,84,0,118,0,168,0,61,0,229,255,253,255,192,255,116,255,166,255, +140,255,54,255,130,255,180,255,93,255,109,255,173,255,144,255,167,255,209,255,168,255,185,255,252,255,0,0,36,0,84,0, +21,0,228,255,39,0,92,0,74,0,79,0,110,0,70,0,23,0,74,0,115,0,111,0,134,0,54,0,244,255,174,0, +203,0,161,255,137,255,2,0,7,255,153,254,179,255,218,255,62,255,111,255,157,255,156,255,213,255,165,255,161,255,66,0, +74,0,207,255,244,255,98,0,116,0,72,0,71,0,131,0,106,0,42,0,101,0,132,0,120,0,177,0,76,0,223,255, +144,0,68,0,214,254,86,255,65,0,10,255,116,254,127,255,174,255,142,255,50,0,89,0,42,0,74,0,50,0,54,0, +106,0,49,0,42,0,121,0,40,0,202,255,45,0,101,0,243,255,186,255,10,0,44,0,243,255,253,255,53,0,5,0, +218,255,32,0,58,0,246,255,200,255,201,255,235,255,255,255,229,255,224,255,227,255,202,255,231,255,247,255,172,255,175,255, +232,255,178,255,157,255,229,255,207,255,169,255,238,255,39,0,35,0,254,255,207,255,25,0,162,0,137,0,45,0,73,0, +120,0,121,0,114,0,36,0,202,255,252,255,45,0,185,255,115,255,210,255,210,255,94,255,147,255,16,0,194,255,99,255, +187,255,253,255,210,255,214,255,252,255,247,255,233,255,229,255,16,0,108,0,107,0,28,0,79,0,172,0,108,0,52,0, +135,0,147,0,60,0,55,0,64,0,253,255,203,255,158,255,120,255,179,255,172,255,15,255,15,255,177,255,184,255,121,255, +187,255,247,255,19,0,74,0,26,0,213,255,48,0,93,0,243,255,242,255,82,0,64,0,21,0,77,0,111,0,56,0, +10,0,28,0,61,0,55,0,33,0,31,0,13,0,241,255,11,0,39,0,227,255,123,255,131,255,233,255,5,0,198,255, +198,255,253,255,241,255,241,255,55,0,67,0,11,0,250,255,20,0,67,0,83,0,22,0,255,255,65,0,81,0,50,0, +51,0,5,0,198,255,247,255,65,0,20,0,180,255,187,255,17,0,23,0,235,255,245,255,180,255,95,255,243,255,87,0, +125,255,57,255,54,0,124,0,235,255,217,255,22,0,46,0,57,0,15,0,227,255,7,0,51,0,34,0,5,0,28,0, +68,0,30,0,251,255,43,0,37,0,248,255,22,0,40,0,20,0,251,255,247,255,161,0,172,0,198,254,166,254,138,1, +62,1,149,253,189,253,118,0,22,0,209,254,67,255,123,255,138,255,3,0,208,255,222,255,161,0,133,0,38,0,138,0, +135,0,58,0,130,0,144,0,67,0,96,0,114,0,51,0,67,0,118,0,62,0,232,255,235,255,7,0,227,255,211,255, +7,0,252,255,203,255,247,255,14,0,191,255,176,255,229,255,213,255,185,255,224,255,247,255,216,255,199,255,238,255,40,0, +59,0,35,0,4,0,11,0,60,0,45,0,218,255,236,255,55,0,9,0,229,255,53,0,55,0,250,255,36,0,82,0, +58,0,47,0,27,0,21,0,69,0,52,0,254,255,53,0,122,0,84,0,244,255,174,255,235,255,91,0,16,0,139,255, +185,255,233,255,184,255,202,255,224,255,177,255,205,255,20,0,8,0,245,255,24,0,39,0,7,0,3,0,41,0,12,0, +208,255,18,0,77,0,234,255,202,255,47,0,61,0,26,0,53,0,75,0,68,0,244,255,146,255,237,255,84,0,210,255, +136,255,235,255,231,255,206,255,12,0,235,255,202,255,38,0,55,0,4,0,39,0,73,0,55,0,17,0,231,255,19,0, +71,0,231,255,174,255,22,0,37,0,189,255,190,255,11,0,28,0,13,0,22,0,55,0,61,0,5,0,238,255,55,0, +78,0,237,255,198,255,253,255,213,255,126,255,169,255,208,255,126,255,96,255,146,255,160,255,186,255,216,255,198,255,221,255, +248,255,196,255,215,255,39,0,12,0,0,0,71,0,49,0,21,0,114,0,112,0,255,255,39,0,128,0,24,0,166,255, +241,255,59,0,253,255,207,255,239,255,249,255,236,255,235,255,210,255,208,255,27,0,44,0,191,255,164,255,33,0,64,0, +201,255,177,255,3,0,3,0,236,255,33,0,59,0,54,0,84,0,73,0,51,0,91,0,79,0,25,0,55,0,36,0, +184,255,215,255,50,0,246,255,203,255,4,0,254,255,15,0,80,0,236,255,166,255,83,0,71,0,47,255,85,255,80,0, +218,255,11,255,159,255,56,0,244,255,230,255,24,0,9,0,49,0,132,0,114,0,72,0,99,0,113,0,96,0,99,0, +74,0,13,0,25,0,85,0,60,0,247,255,235,255,239,255,239,255,0,0,242,255,216,255,218,255,209,255,227,255,13,0, +227,255,208,255,54,0,58,0,210,255,245,255,81,0,65,0,40,0,42,0,38,0,67,0,61,0,5,0,28,0,55,0, +248,255,247,255,40,0,238,255,194,255,2,0,246,255,169,255,242,255,84,0,245,255,144,255,232,255,61,0,242,255,144,255, +160,255,1,0,30,0,218,255,248,255,97,0,12,0,181,255,129,0,223,0,179,255,31,255,41,0,169,0,203,255,76,255, +186,255,220,255,130,255,130,255,207,255,246,255,3,0,218,255,158,255,231,255,65,0,232,255,154,255,248,255,39,0,215,255, +185,255,240,255,17,0,251,255,226,255,231,255,231,255,253,255,123,0,200,0,38,0,136,255,24,0,233,0,144,0,155,255, +103,255,216,255,238,255,154,255,136,255,200,255,236,255,210,255,199,255,247,255,10,0,197,255,172,255,254,255,12,0,168,255, +162,255,7,0,253,255,188,255,6,0,78,0,14,0,252,255,55,0,22,0,236,255,8,0,250,255,227,255,2,0,251,255, +236,255,254,255,225,255,220,255,16,0,225,255,161,255,222,255,244,255,189,255,212,255,239,255,201,255,210,255,239,255,219,255, +207,255,206,255,211,255,6,0,48,0,32,0,25,0,47,0,62,0,80,0,99,0,100,0,99,0,94,0,56,0,27,0, +66,0,92,0,24,0,210,255,220,255,240,255,240,255,0,0,251,255,219,255,232,255,18,0,33,0,18,0,250,255,2,0, +61,0,68,0,241,255,221,255,57,0,90,0,7,0,200,255,233,255,63,0,83,0,229,255,176,255,59,0,126,0,236,255, +192,255,78,0,93,0,229,255,220,255,37,0,36,0,17,0,56,0,49,0,238,255,42,0,154,0,13,0,98,255,32,0, +213,0,247,255,70,255,250,255,133,0,27,0,179,255,195,255,8,0,50,0,18,0,230,255,6,0,75,0,97,0,53,0, +2,0,32,0,124,0,127,0,23,0,0,0,99,0,130,0,74,0,75,0,76,0,9,0,12,0,77,0,27,0,183,255, +206,255,26,0,243,255,142,255,160,255,248,255,210,255,126,255,157,255,195,255,181,255,214,255,194,255,31,255,149,254,116,254, +94,254,36,254,231,253,21,254,195,254,55,255,61,255,112,255,206,255,2,0,45,0,49,0,248,255,10,0,116,0,128,0, +39,0,35,0,110,0,81,0,247,255,32,0,121,0,98,0,78,0,130,0,92,0,3,0,44,0,104,0,20,0,210,255, +33,0,77,0,8,0,20,0,130,0,130,0,49,0,89,0,182,0,142,0,54,0,82,0,144,0,120,0,87,0,107,0, +109,0,82,0,55,0,15,0,15,0,67,0,54,0,11,0,55,0,75,0,253,255,218,255,249,255,249,255,228,255,231,255, +250,255,13,0,31,0,87,0,139,0,99,0,56,0,112,0,144,0,74,0,13,0,29,0,65,0,50,0,13,0,43,0, +95,0,99,0,156,0,253,0,242,0,226,0,65,1,94,1,9,1,246,0,33,1,20,1,239,0,233,0,227,0,193,0, +155,0,137,0,122,0,86,0,47,0,17,0,7,0,24,0,28,0,238,255,208,255,244,255,11,0,204,255,141,255,174,255, +210,255,154,255,98,255,112,255,112,255,74,255,63,255,62,255,31,255,10,255,25,255,40,255,16,255,222,254,207,254,232,254, +232,254,225,254,18,255,62,255,70,255,149,255,244,255,211,255,170,255,241,255,26,0,4,0,17,0,12,0,233,255,243,255, +241,255,219,255,246,255,222,255,146,255,185,255,245,255,167,255,104,255,144,255,156,255,106,255,53,255,28,255,57,255,95,255, +76,255,47,255,79,255,143,255,182,255,202,255,224,255,229,255,228,255,9,0,53,0,54,0,40,0,28,0,22,0,25,0, +252,255,225,255,27,0,62,0,244,255,204,255,222,255,205,255,220,255,16,0,237,255,185,255,234,255,12,0,199,255,159,255, +229,255,8,0,210,255,236,255,65,0,22,0,225,255,54,0,72,0,227,255,245,255,75,0,32,0,225,255,27,0,98,0, +81,0,55,0,97,0,127,0,88,0,83,0,138,0,135,0,88,0,81,0,74,0,41,0,20,0,17,0,7,0,235,255, +219,255,252,255,11,0,230,255,244,255,45,0,32,0,250,255,254,255,1,0,15,0,43,0,16,0,235,255,18,0,57,0, +37,0,40,0,71,0,68,0,73,0,114,0,112,0,60,0,57,0,91,0,63,0,1,0,3,0,23,0,231,255,192,255, +235,255,248,255,192,255,212,255,29,0,10,0,237,255,16,0,254,255,219,255,18,0,21,0,182,255,176,255,246,255,232,255, +204,255,0,0,32,0,255,255,246,255,24,0,27,0,248,255,250,255,24,0,4,0,219,255,229,255,239,255,220,255,230,255, +250,255,234,255,245,255,29,0,24,0,14,0,31,0,15,0,6,0,47,0,47,0,13,0,35,0,67,0,69,0,87,0, +99,0,93,0,92,0,73,0,64,0,87,0,66,0,41,0,72,0,38,0,198,255,208,255,252,255,208,255,191,255,246,255, +253,255,196,255,185,255,248,255,5,0,178,255,173,255,7,0,239,255,161,255,213,255,3,0,203,255,207,255,5,0,231,255, +193,255,233,255,16,0,247,255,223,255,1,0,31,0,6,0,254,255,18,0,8,0,11,0,46,0,32,0,15,0,59,0, +76,0,45,0,53,0,70,0,45,0,26,0,20,0,252,255,237,255,245,255,248,255,254,255,5,0,237,255,224,255,8,0, +31,0,3,0,249,255,13,0,27,0,36,0,23,0,4,0,46,0,89,0,47,0,2,0,22,0,44,0,49,0,50,0, +34,0,31,0,45,0,31,0,16,0,28,0,9,0,232,255,248,255,4,0,224,255,204,255,224,255,230,255,227,255,236,255, +228,255,222,255,1,0,31,0,21,0,26,0,42,0,35,0,43,0,69,0,59,0,49,0,71,0,81,0,83,0,96,0, +84,0,58,0,60,0,60,0,41,0,30,0,17,0,255,255,241,255,216,255,195,255,216,255,242,255,243,255,241,255,229,255, +220,255,2,0,33,0,10,0,8,0,25,0,249,255,229,255,252,255,232,255,206,255,232,255,229,255,201,255,228,255,250,255, +225,255,220,255,233,255,224,255,218,255,221,255,228,255,230,255,199,255,184,255,226,255,252,255,231,255,226,255,226,255,217,255, +236,255,5,0,252,255,238,255,239,255,237,255,225,255,193,255,171,255,198,255,228,255,208,255,190,255,223,255,5,0,1,0, +234,255,226,255,232,255,233,255,219,255,204,255,208,255,220,255,215,255,209,255,225,255,238,255,227,255,222,255,240,255,250,255, +238,255,236,255,243,255,231,255,226,255,253,255,2,0,233,255,245,255,15,0,250,255,240,255,21,0,28,0,255,255,254,255, +6,0,245,255,237,255,251,255,255,255,250,255,253,255,3,0,2,0,2,0,6,0,9,0,0,0,238,255,232,255,248,255, +1,0,238,255,222,255,234,255,255,255,5,0,247,255,226,255,228,255,254,255,1,0,230,255,224,255,251,255,4,0,241,255, +244,255,9,0,6,0,254,255,14,0,21,0,7,0,8,0,25,0,32,0,23,0,22,0,39,0,36,0,6,0,4,0, +26,0,17,0,5,0,21,0,17,0,255,255,10,0,20,0,1,0,249,255,3,0,3,0,240,255,219,255,224,255,252,255, +3,0,238,255,238,255,7,0,17,0,6,0,0,0,8,0,11,0,3,0,3,0,15,0,22,0,20,0,21,0,22,0, +22,0,31,0,41,0,31,0,8,0,8,0,22,0,3,0,227,255,231,255,235,255,212,255,207,255,218,255,213,255,218,255, +236,255,224,255,215,255,245,255,8,0,5,0,16,0,23,0,15,0,23,0,29,0,18,0,22,0,39,0,37,0,31,0, +36,0,42,0,45,0,37,0,22,0,17,0,11,0,254,255,255,255,0,0,240,255,236,255,247,255,247,255,247,255,255,255, +0,0,4,0,16,0,18,0,19,0,24,0,10,0,254,255,8,0,11,0,255,255,3,0,8,0,248,255,244,255,4,0, +252,255,231,255,245,255,15,0,7,0,250,255,4,0,9,0,255,255,2,0,15,0,12,0,3,0,3,0,3,0,1,0, +14,0,27,0,16,0,1,0,4,0,252,255,231,255,233,255,245,255,247,255,252,255,0,0,247,255,255,255,18,0,3,0, +241,255,2,0,10,0,252,255,2,0,13,0,3,0,255,255,5,0,2,0,5,0,13,0,3,0,247,255,0,0,9,0, +255,255,240,255,239,255,246,255,239,255,225,255,227,255,232,255,228,255,228,255,227,255,227,255,243,255,255,255,248,255,252,255, +17,0,30,0,35,0,35,0,25,0,21,0,30,0,32,0,26,0,16,0,8,0,10,0,4,0,246,255,248,255,249,255, +234,255,233,255,237,255,220,255,218,255,237,255,227,255,209,255,217,255,226,255,233,255,252,255,8,0,11,0,15,0,15,0, +20,0,32,0,27,0,23,0,31,0,20,0,8,0,21,0,25,0,16,0,26,0,32,0,19,0,11,0,6,0,2,0, +7,0,250,255,221,255,222,255,228,255,216,255,219,255,228,255,223,255,238,255,7,0,9,0,10,0,21,0,16,0,14,0, +26,0,19,0,6,0,21,0,35,0,23,0,15,0,25,0,32,0,32,0,37,0,37,0,25,0,20,0,23,0,16,0, +10,0,15,0,10,0,253,255,253,255,0,0,249,255,247,255,244,255,244,255,6,0,16,0,4,0,2,0,8,0,4,0, +13,0,21,0,0,0,242,255,6,0,23,0,16,0,2,0,250,255,1,0,2,0,242,255,239,255,251,255,251,255,249,255, +253,255,243,255,234,255,236,255,229,255,225,255,234,255,234,255,234,255,255,255,5,0,246,255,244,255,250,255,251,255,252,255, +252,255,255,255,8,0,3,0,250,255,7,0,18,0,8,0,7,0,17,0,17,0,21,0,24,0,11,0,3,0,16,0, +16,0,253,255,249,255,254,255,245,255,244,255,4,0,6,0,251,255,8,0,24,0,13,0,10,0,25,0,17,0,0,0, +8,0,10,0,244,255,237,255,244,255,241,255,240,255,249,255,249,255,249,255,2,0,2,0,247,255,246,255,3,0,5,0, +250,255,244,255,244,255,244,255,250,255,1,0,253,255,2,0,20,0,25,0,22,0,32,0,32,0,13,0,4,0,1,0, +246,255,235,255,229,255,222,255,219,255,222,255,228,255,239,255,240,255,230,255,231,255,241,255,243,255,244,255,250,255,253,255, +4,0,13,0,14,0,12,0,17,0,20,0,14,0,7,0,12,0,20,0,11,0,250,255,251,255,3,0,254,255,250,255, +252,255,252,255,249,255,245,255,239,255,233,255,227,255,222,255,225,255,232,255,240,255,254,255,4,0,255,255,2,0,13,0, +15,0,18,0,25,0,22,0,16,0,10,0,5,0,5,0,5,0,255,255,2,0,2,0,247,255,249,255,3,0,249,255, +240,255,245,255,243,255,241,255,248,255,241,255,234,255,243,255,242,255,239,255,254,255,1,0,243,255,251,255,11,0,6,0, +8,0,21,0,19,0,16,0,23,0,22,0,11,0,8,0,8,0,1,0,255,255,4,0,4,0,249,255,242,255,248,255, +250,255,242,255,229,255,220,255,221,255,228,255,226,255,224,255,236,255,242,255,239,255,242,255,241,255,234,255,244,255,3,0, +252,255,247,255,254,255,2,0,5,0,7,0,2,0,1,0,3,0,252,255,4,0,21,0,11,0,0,0,16,0,19,0, +2,0,8,0,26,0,16,0,6,0,19,0,30,0,21,0,13,0,17,0,21,0,18,0,18,0,24,0,28,0,23,0, +10,0,251,255,238,255,224,255,210,255,213,255,224,255,225,255,228,255,238,255,235,255,227,255,237,255,248,255,245,255,246,255, +253,255,254,255,1,0,10,0,10,0,6,0,8,0,6,0,2,0,6,0,8,0,3,0,2,0,3,0,254,255,247,255, +247,255,250,255,249,255,246,255,248,255,255,255,4,0,7,0,7,0,254,255,251,255,4,0,8,0,7,0,17,0,28,0, +26,0,21,0,18,0,11,0,9,0,15,0,9,0,253,255,250,255,250,255,247,255,249,255,250,255,245,255,246,255,1,0, +3,0,253,255,2,0,8,0,0,0,252,255,4,0,3,0,0,0,16,0,32,0,30,0,26,0,31,0,33,0,26,0, +18,0,14,0,14,0,16,0,18,0,26,0,35,0,36,0,30,0,27,0,28,0,23,0,6,0,249,255,246,255,244,255, +247,255,3,0,1,0,246,255,247,255,253,255,248,255,240,255,234,255,232,255,235,255,235,255,227,255,230,255,244,255,247,255, +245,255,248,255,245,255,238,255,241,255,244,255,243,255,252,255,4,0,2,0,3,0,9,0,4,0,248,255,246,255,253,255, +1,0,254,255,249,255,255,255,4,0,253,255,252,255,4,0,3,0,252,255,251,255,251,255,246,255,238,255,233,255,230,255, +223,255,217,255,224,255,242,255,254,255,4,0,8,0,6,0,4,0,5,0,0,0,246,255,242,255,246,255,250,255,250,255, +2,0,15,0,17,0,13,0,21,0,29,0,25,0,22,0,21,0,15,0,12,0,15,0,18,0,16,0,13,0,10,0, +8,0,7,0,6,0,4,0,3,0,255,255,247,255,242,255,246,255,252,255,249,255,248,255,255,255,2,0,3,0,7,0, +6,0,7,0,15,0,16,0,10,0,20,0,32,0,20,0,6,0,10,0,15,0,9,0,1,0,249,255,242,255,236,255, +236,255,240,255,241,255,232,255,231,255,237,255,234,255,227,255,229,255,223,255,218,255,226,255,225,255,212,255,224,255,246,255, +245,255,247,255,8,0,6,0,251,255,6,0,13,0,2,0,4,0,21,0,23,0,12,0,6,0,5,0,5,0,9,0, +12,0,4,0,250,255,252,255,251,255,242,255,239,255,242,255,243,255,244,255,241,255,240,255,246,255,247,255,249,255,12,0, +20,0,7,0,8,0,25,0,21,0,10,0,17,0,23,0,21,0,18,0,10,0,4,0,8,0,11,0,5,0,0,0, +1,0,4,0,5,0,254,255,247,255,250,255,253,255,250,255,252,255,252,255,243,255,251,255,18,0,10,0,244,255,1,0, +20,0,6,0,249,255,5,0,9,0,1,0,4,0,7,0,2,0,5,0,13,0,10,0,4,0,9,0,11,0,0,0, +251,255,6,0,3,0,246,255,252,255,17,0,24,0,22,0,21,0,16,0,10,0,8,0,6,0,1,0,253,255,253,255, +252,255,248,255,243,255,246,255,250,255,247,255,249,255,4,0,7,0,1,0,1,0,1,0,248,255,246,255,254,255,252,255, +246,255,1,0,15,0,17,0,14,0,11,0,5,0,1,0,3,0,7,0,10,0,8,0,7,0,9,0,2,0,249,255, +253,255,252,255,242,255,246,255,1,0,253,255,248,255,250,255,245,255,241,255,246,255,251,255,250,255,253,255,0,0,0,0, +253,255,253,255,3,0,10,0,7,0,255,255,253,255,2,0,1,0,252,255,253,255,0,0,253,255,254,255,8,0,13,0, +9,0,1,0,251,255,250,255,251,255,243,255,234,255,237,255,244,255,241,255,238,255,248,255,0,0,252,255,0,0,13,0, +9,0,250,255,252,255,6,0,7,0,8,0,10,0,7,0,8,0,15,0,20,0,22,0,23,0,17,0,14,0,17,0, +21,0,16,0,6,0,3,0,8,0,7,0,0,0,255,255,1,0,1,0,251,255,244,255,245,255,249,255,244,255,242,255, +250,255,255,255,251,255,247,255,241,255,236,255,234,255,234,255,237,255,241,255,236,255,233,255,245,255,255,255,255,255,254,255, +5,0,12,0,14,0,10,0,8,0,10,0,7,0,255,255,252,255,254,255,254,255,251,255,0,0,4,0,255,255,251,255, +251,255,242,255,231,255,231,255,235,255,236,255,237,255,237,255,236,255,239,255,245,255,251,255,253,255,252,255,255,255,3,0, +2,0,4,0,9,0,10,0,10,0,15,0,19,0,17,0,15,0,14,0,17,0,19,0,19,0,17,0,14,0,13,0, +16,0,15,0,11,0,12,0,11,0,8,0,9,0,9,0,2,0,4,0,7,0,0,0,250,255,1,0,6,0,1,0, +251,255,251,255,252,255,253,255,254,255,252,255,244,255,241,255,247,255,250,255,251,255,253,255,253,255,253,255,255,255,253,255, +251,255,254,255,255,255,252,255,252,255,249,255,248,255,255,255,3,0,255,255,1,0,8,0,6,0,254,255,251,255,254,255, +255,255,1,0,255,255,247,255,244,255,252,255,255,255,254,255,0,0,3,0,0,0,254,255,254,255,253,255,254,255,253,255, +250,255,249,255,251,255,251,255,252,255,253,255,254,255,255,255,251,255,248,255,247,255,248,255,253,255,1,0,254,255,253,255, +254,255,247,255,244,255,252,255,4,0,7,0,8,0,5,0,5,0,12,0,11,0,5,0,7,0,7,0,3,0,6,0, +12,0,5,0,253,255,255,255,255,255,245,255,241,255,247,255,246,255,240,255,244,255,252,255,255,255,2,0,4,0,3,0, +8,0,13,0,12,0,12,0,15,0,18,0,19,0,17,0,14,0,13,0,13,0,11,0,11,0,12,0,11,0,9,0, +7,0,3,0,252,255,248,255,251,255,249,255,239,255,238,255,246,255,252,255,252,255,249,255,246,255,251,255,1,0,255,255, +253,255,1,0,7,0,12,0,15,0,13,0,10,0,13,0,20,0,20,0,12,0,12,0,25,0,24,0,6,0,2,0, +13,0,13,0,4,0,254,255,253,255,254,255,251,255,247,255,247,255,244,255,234,255,228,255,232,255,237,255,238,255,232,255, +229,255,234,255,238,255,237,255,239,255,240,255,238,255,237,255,241,255,239,255,233,255,234,255,245,255,0,0,3,0,5,0, +9,0,15,0,22,0,25,0,24,0,25,0,24,0,20,0,21,0,22,0,20,0,18,0,13,0,4,0,0,0,4,0, +6,0,2,0,250,255,245,255,244,255,242,255,239,255,241,255,249,255,253,255,252,255,247,255,247,255,254,255,2,0,1,0, +2,0,7,0,11,0,14,0,15,0,13,0,9,0,7,0,13,0,15,0,9,0,10,0,15,0,9,0,252,255,244,255, +246,255,250,255,249,255,243,255,244,255,251,255,253,255,250,255,244,255,241,255,243,255,247,255,251,255,0,0,0,0,2,0, +13,0,18,0,12,0,10,0,10,0,11,0,16,0,17,0,10,0,10,0,13,0,8,0,254,255,249,255,248,255,252,255, +253,255,250,255,246,255,243,255,243,255,248,255,247,255,240,255,240,255,244,255,244,255,238,255,234,255,236,255,241,255,242,255, +246,255,252,255,251,255,243,255,241,255,247,255,254,255,0,0,251,255,249,255,251,255,253,255,253,255,0,0,1,0,3,0, +12,0,19,0,14,0,8,0,11,0,11,0,4,0,5,0,6,0,251,255,246,255,253,255,0,0,252,255,251,255,251,255, +250,255,250,255,249,255,252,255,253,255,247,255,244,255,249,255,250,255,248,255,255,255,6,0,7,0,6,0,9,0,17,0, +14,0,2,0,0,0,5,0,2,0,4,0,11,0,4,0,250,255,254,255,3,0,2,0,2,0,254,255,251,255,252,255, +252,255,253,255,2,0,253,255,245,255,247,255,251,255,253,255,254,255,254,255,252,255,251,255,252,255,254,255,254,255,255,255, +1,0,4,0,3,0,0,0,1,0,6,0,6,0,1,0,3,0,7,0,6,0,8,0,16,0,21,0,20,0,20,0, +24,0,23,0,13,0,7,0,15,0,19,0,14,0,13,0,14,0,6,0,255,255,255,255,253,255,249,255,246,255,247,255, +248,255,246,255,246,255,252,255,253,255,248,255,246,255,244,255,242,255,248,255,252,255,249,255,251,255,254,255,247,255,241,255, +245,255,253,255,0,0,0,0,255,255,254,255,252,255,253,255,0,0,2,0,2,0,1,0,0,0,2,0,11,0,13,0, +11,0,15,0,22,0,24,0,23,0,22,0,21,0,15,0,8,0,6,0,4,0,254,255,250,255,255,255,1,0,248,255, +242,255,246,255,248,255,240,255,235,255,240,255,241,255,241,255,246,255,248,255,247,255,251,255,0,0,2,0,5,0,5,0, +7,0,15,0,20,0,20,0,23,0,24,0,17,0,9,0,5,0,3,0,255,255,248,255,246,255,250,255,251,255,246,255, +243,255,246,255,245,255,237,255,234,255,241,255,247,255,246,255,249,255,254,255,254,255,255,255,5,0,6,0,0,0,253,255, +255,255,0,0,254,255,254,255,251,255,248,255,252,255,252,255,245,255,253,255,16,0,13,0,2,0,12,0,25,0,22,0, +18,0,20,0,24,0,27,0,25,0,20,0,19,0,18,0,13,0,7,0,0,0,254,255,255,255,248,255,239,255,234,255, +233,255,235,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/creeperdeath.pcm b/src/client/sound/data/creeperdeath.pcm new file mode 100755 index 0000000..cdd107f --- /dev/null +++ b/src/client/sound/data/creeperdeath.pcm @@ -0,0 +1,3362 @@ +unsigned char PCM_creeperdeath[107510] = { +1,0,0,0,2,0,0,0,68,172,0,0,243,209,0,0,246,1,143,2,88,3,115,2,24,2,246,1,158,1,40,2, +164,2,131,2,236,1,243,0,135,0,99,0,153,255,99,254,127,253,109,253,195,253,93,254,27,255,148,254,109,253,29,254, +29,0,215,0,240,255,60,255,250,254,215,254,204,255,99,0,243,255,249,0,160,1,22,0,128,255,57,0,212,0,56,1, +210,0,157,0,190,0,130,0,11,1,59,1,171,0,6,1,112,0,69,255,19,0,248,0,72,1,103,1,248,255,31,255, +74,0,71,1,176,1,60,1,199,255,48,255,245,254,55,254,191,254,240,255,237,255,114,255,214,254,79,254,122,254,123,253, +29,251,65,250,160,250,13,251,38,252,182,252,216,252,168,254,179,0,248,0,122,0,54,0,94,0,166,0,246,255,95,254, +147,253,228,253,201,253,103,253,8,254,225,254,245,254,236,254,137,255,163,0,7,1,73,0,89,255,6,255,66,0,12,2, +153,1,44,0,76,0,143,0,20,0,232,255,37,0,241,0,69,2,231,2,35,2,82,1,209,1,40,2,78,1,64,1, +253,1,180,1,66,1,160,1,50,2,115,2,7,2,132,1,122,1,25,1,56,0,22,255,128,253,96,252,217,252,110,254, +108,255,50,255,18,255,57,255,209,254,6,255,97,0,174,1,59,2,121,1,143,0,116,1,7,2,50,0,181,254,117,255, +116,0,81,0,21,0,93,0,108,0,175,0,191,1,113,2,81,2,173,1,119,0,110,255,230,254,29,255,166,0,12,2, +92,2,111,2,239,1,15,1,153,0,229,255,242,254,79,254,89,254,20,255,245,254,24,254,54,254,90,254,123,253,102,252, +251,251,32,253,180,254,148,254,3,254,52,255,80,1,46,2,60,1,140,255,80,254,73,254,36,255,133,0,191,2,38,4, +66,3,223,1,193,0,210,255,58,0,4,1,246,0,226,0,190,0,41,0,101,255,171,254,100,254,74,254,40,254,146,254, +75,255,203,255,254,255,30,0,236,0,228,1,155,1,202,0,251,0,221,1,117,2,132,2,50,2,218,1,125,1,188,0, +0,0,203,255,233,255,54,0,21,0,68,255,173,254,59,254,16,254,0,255,176,255,80,255,151,255,48,1,150,2,33,2, +210,0,179,0,209,0,232,0,205,1,113,1,9,0,40,0,132,0,238,255,192,255,23,0,71,0,15,0,217,255,42,0, +76,0,213,255,76,255,215,254,133,254,73,254,25,254,46,254,136,254,0,255,41,255,37,255,180,255,41,0,34,0,102,0, +41,0,28,255,134,254,139,254,53,255,215,255,145,254,200,252,31,253,127,254,98,255,35,0,197,0,251,0,232,0,117,0, +132,255,190,254,190,254,31,255,179,254,10,253,140,252,190,254,125,0,115,0,252,0,202,1,226,1,248,1,241,1,246,1, +229,1,57,1,20,1,203,1,103,2,130,2,53,2,167,1,96,0,138,255,19,0,108,255,151,254,131,255,215,254,3,254, +33,0,32,1,103,0,122,0,13,0,176,255,28,0,141,255,85,254,105,253,238,252,104,253,182,254,196,255,238,255,18,0, +134,0,203,0,6,1,243,0,58,1,17,2,128,1,170,0,215,0,114,0,127,0,11,1,233,0,158,1,24,2,85,1, +195,0,192,255,69,255,252,255,248,255,25,0,116,0,84,0,66,1,200,1,173,0,207,255,195,255,99,0,98,0,71,255, +93,255,66,0,146,0,121,0,110,255,156,254,53,255,204,255,161,255,60,255,117,255,244,255,112,255,233,254,147,255,191,0, +4,2,239,3,254,5,130,5,126,3,196,3,69,4,158,3,146,3,18,2,79,0,51,0,15,254,169,251,181,251,122,250, +125,248,206,247,194,246,46,246,165,247,179,249,223,249,142,248,105,248,177,248,179,248,55,250,236,251,2,253,221,254,96,0, +141,0,245,255,248,255,244,1,174,3,48,3,181,2,118,3,169,3,119,2,254,1,120,3,75,5,2,6,38,4,9,1, +210,0,254,1,67,2,184,3,213,4,126,4,152,4,197,3,157,2,192,2,110,2,220,2,102,4,181,3,151,1,81,0, +222,255,67,0,182,0,87,0,149,255,56,255,87,255,24,255,13,255,231,255,24,0,202,255,19,0,226,255,79,255,122,255, +3,0,65,0,90,0,200,0,254,0,137,0,154,0,54,1,239,0,180,255,177,254,208,254,93,255,68,255,144,254,147,253, +70,253,134,253,73,253,253,253,253,254,35,254,247,253,192,254,1,254,135,253,238,253,13,254,27,254,248,252,78,252,153,254, +236,0,149,1,197,1,150,1,130,1,73,1,189,0,215,0,177,0,209,255,223,255,11,1,197,1,198,1,28,2,189,1, +229,255,80,255,241,255,108,255,28,255,63,255,139,254,8,255,3,1,151,1,217,0,210,0,248,0,190,0,57,1,30,1, +85,255,89,254,187,254,112,255,173,0,250,0,60,0,70,0,171,0,44,1,71,1,79,0,39,0,135,0,20,0,64,0, +177,0,73,0,157,255,58,255,20,0,17,1,216,0,14,1,29,1,14,0,155,255,187,255,34,0,197,0,111,0,65,0, +24,1,161,1,45,1,142,255,150,254,91,255,127,255,41,255,126,255,96,255,117,255,248,255,217,255,185,255,133,255,49,255, +159,255,64,0,147,0,150,0,92,0,154,0,186,0,54,0,127,0,61,2,149,3,188,2,14,1,96,0,44,0,70,0, +242,255,136,254,15,254,247,253,142,252,195,251,91,251,27,250,188,249,229,249,83,249,65,249,251,250,88,253,109,253,40,252, +83,252,143,252,197,252,44,254,237,254,107,255,190,0,107,1,59,1,91,0,34,0,29,2,90,3,167,2,201,2,45,3, +73,2,141,1,31,2,97,3,191,4,194,5,228,4,97,2,223,0,200,0,125,1,223,2,170,3,185,3,58,3,6,2, +125,1,105,1,94,1,134,2,53,3,55,2,12,1,202,255,35,255,3,0,142,0,167,255,167,254,35,255,77,0,204,255, +209,254,137,255,39,0,146,255,125,255,243,255,238,255,57,0,22,1,234,0,227,255,163,255,218,255,254,255,147,0,125,1, +137,1,198,255,41,254,211,254,46,0,211,0,221,0,107,0,161,0,224,0,56,0,48,0,234,255,167,254,219,254,162,255, +108,255,163,255,150,255,232,254,43,255,104,255,254,254,110,255,143,0,35,1,228,0,85,0,10,0,252,255,241,255,218,255, +235,255,196,255,123,254,132,253,72,254,179,254,64,254,8,254,54,253,239,252,210,253,151,253,144,253,177,254,159,254,161,254, +247,254,66,253,57,252,142,253,48,254,234,253,109,254,166,255,99,0,30,0,106,0,7,1,46,0,128,255,250,255,84,0, +223,0,33,1,184,0,102,1,45,2,14,1,34,0,47,1,246,1,217,0,24,0,91,1,113,2,4,2,149,1,129,1, +81,1,161,1,73,2,85,2,205,1,249,0,49,0,158,0,194,1,243,0,172,254,55,254,155,255,184,0,191,0,201,255, +15,255,56,255,52,255,15,255,115,255,4,0,115,0,17,0,35,255,77,255,204,255,129,255,181,255,85,0,63,0,14,0, +100,0,113,0,131,255,115,255,15,1,27,1,24,0,243,0,238,0,120,255,164,255,220,255,134,255,93,0,15,1,61,1, +114,1,42,1,129,0,80,255,234,254,23,0,166,0,151,0,71,0,49,255,0,255,187,254,27,254,223,255,108,1,197,0, +157,0,102,0,146,255,2,255,56,254,54,254,5,255,201,255,141,0,204,255,224,254,189,255,65,255,232,253,6,255,4,0, +146,255,122,0,238,0,7,255,36,255,52,1,42,0,206,254,32,0,115,0,84,0,235,0,31,0,88,255,176,254,40,254, +229,255,120,0,244,254,74,255,197,255,160,255,74,0,22,0,222,255,51,0,197,255,175,255,130,255,180,254,131,254,222,254, +74,0,8,2,71,2,108,1,124,255,61,254,179,255,44,1,42,1,105,0,143,255,21,0,132,0,40,0,159,0,56,0, +115,255,171,255,225,254,252,254,68,0,162,255,56,0,164,2,72,2,220,255,207,253,67,253,251,254,159,0,138,0,151,255, +226,254,58,255,185,255,78,0,113,1,49,1,62,0,196,0,131,0,199,254,197,254,252,255,194,255,223,255,116,1,117,1, +122,0,213,0,221,0,221,0,148,1,253,0,96,0,254,0,90,1,186,1,37,1,180,254,243,252,32,253,42,255,64,2, +87,3,43,2,146,1,254,1,239,1,78,1,142,0,231,255,248,0,163,2,241,0,32,254,238,253,154,254,202,255,177,1, +62,2,47,1,34,255,34,254,108,255,25,0,11,0,187,0,159,0,20,0,206,255,74,255,220,254,64,254,225,254,129,1, +203,2,200,1,126,1,45,4,221,6,53,5,39,3,186,3,226,2,144,1,26,0,68,251,58,247,132,246,148,246,211,248, +103,252,31,254,139,254,137,254,140,254,146,254,26,255,219,1,103,4,221,3,23,2,70,0,17,255,120,255,124,255,13,254, +145,252,197,250,208,248,138,248,120,249,73,251,15,1,255,10,224,20,247,25,138,21,150,9,170,254,196,247,202,244,159,245, +137,245,253,243,162,244,36,245,219,243,104,243,159,245,12,251,253,0,12,4,75,4,88,3,72,3,137,3,143,2,72,2, +117,2,223,1,186,1,118,0,215,254,165,255,6,255,2,251,25,248,64,249,164,253,128,1,48,3,218,4,87,6,124,6, +196,5,215,5,22,8,145,9,206,8,92,8,238,6,37,4,248,2,193,2,49,2,194,0,19,255,49,255,246,254,231,253, +244,254,206,255,42,0,193,1,88,1,28,0,25,0,179,254,76,254,38,0,157,0,193,255,233,253,106,252,40,254,33,0, +213,0,148,2,81,3,34,2,243,0,12,0,50,0,205,0,50,1,212,2,182,3,210,2,16,3,233,2,22,1,192,0, +110,0,240,253,18,252,180,250,156,248,118,248,132,249,132,248,7,247,9,247,153,247,156,248,135,250,34,252,146,252,156,253, +24,0,247,1,120,3,248,5,150,7,47,8,112,9,56,10,238,9,57,9,188,7,240,5,180,4,102,3,153,0,193,252, +16,250,77,248,99,246,136,244,110,242,207,241,228,242,196,242,230,243,9,247,6,247,211,245,204,246,38,248,197,250,15,253, +248,251,193,251,106,254,2,0,99,255,175,254,56,255,176,255,109,255,183,255,242,255,33,0,100,1,108,2,49,3,92,5, +109,8,249,9,27,9,159,9,149,12,127,13,37,13,200,13,27,13,189,11,185,10,237,8,136,7,248,6,57,6,177,4, +90,2,238,0,107,0,188,255,83,255,105,254,190,253,214,254,121,255,153,254,208,253,209,253,72,253,93,251,148,251,209,253, +251,252,33,251,114,251,231,251,92,252,12,252,121,251,10,254,102,0,51,255,96,254,29,255,181,255,157,0,30,1,225,0, +199,2,56,6,55,6,117,3,7,2,17,1,151,0,114,2,221,4,235,5,213,4,10,2,221,255,244,254,169,255,128,1, +245,1,220,2,128,5,146,5,141,3,234,2,235,1,131,0,58,1,227,1,199,0,229,0,74,2,213,1,14,0,56,255, +13,255,189,253,34,251,85,249,143,248,170,247,93,247,73,247,24,247,67,248,41,249,176,247,238,246,95,249,31,252,115,253, +201,254,102,254,174,252,193,254,220,1,194,0,134,254,174,253,230,254,161,1,236,1,21,1,66,1,178,0,238,0,183,0, +184,254,156,255,251,1,69,2,220,1,217,0,58,1,163,2,96,0,131,253,186,253,86,254,226,254,122,255,146,255,215,0, +71,3,193,4,224,3,24,1,146,254,188,254,42,1,80,1,1,255,24,255,25,0,75,255,25,255,173,255,26,255,20,253, +22,252,28,254,212,255,23,1,166,3,167,2,27,255,210,254,197,255,238,255,11,0,177,0,158,2,98,3,14,3,124,3, +216,2,33,2,209,1,102,1,226,2,238,1,131,254,188,255,55,0,85,253,54,255,33,2,25,1,0,1,0,1,155,254, +23,254,227,0,117,2,60,1,65,0,122,255,161,254,53,0,52,1,190,254,128,253,64,255,234,0,125,1,222,1,224,2, +246,3,59,4,212,3,1,4,72,6,29,8,25,6,2,2,144,254,158,253,31,255,103,0,191,1,62,2,251,255,14,0, +242,2,41,2,161,254,111,251,21,249,174,249,57,252,67,254,10,0,172,1,60,2,35,0,102,253,42,253,138,252,214,251, +126,254,79,255,253,251,209,250,42,252,60,252,108,251,39,251,196,251,118,253,64,255,40,255,97,254,61,255,47,255,190,253, +34,254,134,253,7,250,106,248,47,250,151,253,186,0,176,1,175,2,153,4,216,3,125,1,215,0,92,0,38,255,15,255, +155,254,155,252,207,253,134,2,44,4,55,3,17,4,150,5,151,5,254,2,239,255,103,0,248,1,54,2,156,2,199,1, +35,1,171,2,175,1,154,254,133,255,68,3,161,4,148,2,121,255,183,253,211,254,14,1,170,255,216,252,20,254,138,255, +113,254,112,255,49,3,59,6,179,5,103,2,235,255,226,252,176,249,142,251,57,255,77,255,232,253,123,252,118,252,86,0, +251,3,7,3,63,2,219,4,10,5,147,2,54,4,234,7,62,8,92,5,38,1,48,255,182,255,201,254,159,253,238,254, +76,2,213,4,249,2,40,0,84,0,224,1,174,3,200,0,69,250,214,251,11,1,34,0,252,255,245,0,40,253,116,250, +76,250,241,245,100,239,232,237,75,242,108,248,166,252,70,253,168,252,225,252,17,251,200,247,98,246,217,246,11,250,200,253, +34,254,70,253,121,252,201,252,95,255,63,255,230,252,163,252,196,252,79,254,151,0,28,0,237,255,115,255,13,252,223,250, +15,254,10,2,108,4,224,4,238,3,62,2,19,2,66,2,175,0,242,1,183,4,241,4,82,7,129,8,172,3,59,1, +79,3,131,4,245,3,225,1,156,0,96,1,133,2,129,4,38,6,235,5,224,4,73,4,224,4,38,4,214,1,4,1, +184,0,52,2,162,5,190,5,129,4,8,4,11,2,153,1,229,1,242,0,99,3,104,7,97,7,133,4,127,4,153,9, +116,12,229,9,92,8,240,7,15,7,204,6,115,4,162,1,28,2,232,3,251,3,167,1,214,0,48,3,43,3,205,255, +157,253,57,255,84,2,4,1,105,253,29,253,161,253,50,253,196,251,165,249,1,250,90,250,223,248,65,248,93,246,34,245, +177,247,106,249,242,249,67,249,54,245,35,243,52,244,29,244,14,245,34,249,69,253,140,253,31,251,150,250,92,251,228,252, +109,254,35,251,82,248,209,251,46,253,200,251,171,254,94,0,234,252,213,250,142,250,75,246,153,240,64,241,233,247,149,254, +177,1,40,1,80,0,172,0,40,0,50,254,149,251,140,251,146,255,172,2,51,4,130,5,8,4,6,4,202,6,160,5, +221,3,159,5,174,7,238,10,162,12,192,8,113,5,111,5,34,5,237,5,189,9,104,13,251,12,12,10,179,8,56,8, +12,7,119,5,103,4,189,5,244,6,38,6,219,6,116,6,86,2,160,0,43,2,245,2,190,2,200,1,171,1,226,2, +31,3,125,3,110,4,44,3,144,0,94,255,243,254,36,253,203,250,115,250,69,252,121,255,198,1,11,1,236,255,217,254, +21,252,225,250,188,251,94,252,136,254,192,1,75,2,24,255,134,252,35,255,56,1,87,254,35,253,153,254,141,254,203,253, +104,252,24,252,202,254,41,0,194,254,26,254,90,255,131,0,136,254,17,251,144,251,255,0,1,6,33,4,182,254,141,255, +197,4,92,5,192,0,188,252,137,252,134,252,114,249,151,246,233,246,214,249,182,252,105,254,85,1,97,2,246,254,28,254, +234,255,236,254,243,254,51,1,140,1,80,1,137,0,152,251,214,245,255,245,233,248,41,249,7,251,156,254,68,254,57,254, +46,1,82,2,100,2,134,1,92,253,235,249,254,249,204,251,45,254,106,255,165,255,107,1,93,3,209,2,84,2,219,3, +14,4,157,1,141,253,15,249,190,249,71,255,152,0,3,255,220,0,49,2,44,1,68,2,180,4,131,4,76,1,211,253, +66,252,152,252,212,255,234,5,57,9,34,7,125,5,83,5,109,2,105,0,200,0,140,254,187,253,202,0,12,1,87,0, +194,1,204,1,8,3,204,5,65,5,206,4,62,6,72,4,63,0,2,0,110,3,255,4,165,1,70,253,73,252,116,253, +203,253,220,253,99,0,154,3,203,2,75,0,101,0,191,255,78,253,77,253,116,254,90,0,37,4,192,2,140,253,209,254, +23,1,242,253,105,251,99,250,66,251,130,255,1,1,68,0,37,1,178,255,125,253,41,254,193,254,58,255,26,1,46,2, +245,255,148,252,75,254,29,3,130,3,139,1,194,0,199,255,2,0,147,1,77,2,58,3,42,4,247,2,202,0,92,0, +99,1,224,0,85,254,116,253,41,255,209,255,183,255,129,1,113,2,235,0,125,255,23,254,81,253,125,254,36,255,5,254, +25,251,148,248,164,252,251,3,119,5,83,3,99,2,172,1,65,0,116,253,48,251,119,252,25,254,69,252,72,249,3,249, +155,251,228,254,120,2,63,5,16,4,6,0,19,254,104,255,180,0,35,1,188,3,0,7,253,6,11,5,153,1,210,252, +111,252,37,0,82,1,171,0,152,0,99,255,84,254,104,255,111,1,38,3,199,2,25,255,88,250,244,247,84,250,165,255, +227,1,117,0,10,0,54,0,254,254,14,255,157,1,175,3,255,2,124,255,210,250,247,249,77,254,78,0,73,255,12,2, +51,3,5,0,166,2,51,7,126,4,29,0,12,252,154,247,35,248,128,252,127,2,123,8,195,7,177,3,236,1,85,254, +127,252,11,255,215,253,101,252,246,255,218,0,47,255,220,254,24,253,236,253,70,2,170,2,220,1,183,2,164,255,12,251, +69,250,72,252,63,254,6,252,28,248,98,250,52,255,199,254,144,252,40,254,156,0,220,255,113,255,1,1,249,255,215,253, +42,253,95,252,72,255,112,3,80,0,61,253,83,0,2,0,165,251,114,250,154,251,103,254,85,2,70,3,50,2,55,1, +98,254,139,252,84,255,144,2,153,4,214,7,113,7,60,1,125,254,243,1,212,3,100,2,50,0,221,253,179,254,128,1, +136,0,165,255,2,2,40,2,159,1,203,2,2,1,103,254,133,254,54,255,110,1,87,4,176,4,107,4,195,4,52,4, +45,2,117,0,228,1,142,3,11,3,198,2,85,254,92,246,194,247,142,1,28,7,149,5,226,255,218,250,21,251,98,254, +74,1,177,1,233,254,78,252,214,249,209,246,68,249,192,255,69,1,181,255,106,1,130,4,142,4,82,1,114,255,250,0, +212,1,209,0,108,254,212,250,37,252,122,2,38,5,98,4,84,3,175,255,21,251,24,248,40,247,145,250,112,1,89,6, +62,5,100,1,134,1,42,2,96,254,25,253,8,0,138,0,178,0,156,2,56,2,214,2,31,6,137,3,165,254,179,2, +21,7,186,2,177,254,67,253,51,251,80,254,228,3,89,3,252,0,117,1,243,0,74,255,18,255,111,255,0,2,167,6, +107,5,16,0,165,0,76,3,201,3,45,6,55,6,123,2,238,0,30,0,84,255,166,255,176,254,255,253,210,252,172,249, +247,250,52,1,64,5,68,5,6,3,149,255,229,251,200,249,53,249,197,248,88,251,198,254,168,252,241,250,30,254,249,255, +34,0,141,255,151,253,116,253,75,252,253,248,125,250,126,254,56,254,202,251,248,251,80,255,100,0,173,252,235,249,121,249, +22,250,47,254,123,2,121,4,82,7,24,8,130,5,188,3,236,0,16,254,225,255,52,2,18,2,54,1,147,254,120,252, +169,252,5,252,234,250,91,250,127,251,206,0,23,5,248,3,250,1,137,1,125,1,239,254,106,248,29,246,27,252,24,1, +254,1,212,4,16,9,201,9,87,7,249,4,136,3,170,2,243,0,140,252,122,249,207,252,15,3,159,8,176,14,84,17, +220,10,169,255,207,248,19,248,46,249,36,250,83,253,93,3,147,6,98,3,163,0,49,4,202,7,17,5,3,1,20,1, +48,2,110,1,64,0,226,0,43,4,176,4,82,255,4,253,25,1,43,4,159,3,59,0,222,253,62,0,150,0,117,253, +2,254,182,255,139,255,178,254,66,251,181,248,205,249,55,249,82,246,131,245,169,249,66,3,246,12,37,15,185,8,36,0, +99,250,220,246,76,246,143,248,23,250,16,251,66,253,162,1,66,6,165,4,204,255,215,254,32,253,151,250,175,252,133,254, +201,253,219,254,44,1,232,0,100,252,247,249,127,255,236,4,152,3,50,0,87,254,190,254,74,0,237,0,101,2,199,3, +250,0,88,253,123,255,61,5,180,5,73,254,132,246,17,245,102,250,116,1,92,1,158,251,41,253,136,6,153,11,125,8, +244,1,203,254,188,2,188,5,49,0,17,250,61,251,237,254,100,0,194,1,143,3,27,3,111,2,240,4,238,6,120,5, +133,3,35,2,246,255,247,252,152,251,191,255,56,7,157,10,62,8,63,4,228,1,127,0,1,254,120,252,194,253,169,253, +27,251,105,252,116,1,107,2,23,0,29,0,91,1,110,3,178,4,115,0,193,253,6,1,147,0,42,255,199,2,211,255, +25,245,51,240,28,244,245,251,240,0,155,0,106,3,41,9,52,8,87,1,96,248,22,242,28,246,253,252,164,253,220,255, +118,5,120,7,120,5,185,0,75,254,244,0,100,255,210,249,246,249,193,252,194,254,182,2,106,3,158,253,36,250,172,254, +183,3,175,1,49,253,110,253,176,0,105,1,167,255,46,255,71,254,248,250,229,249,122,252,96,0,169,3,246,2,36,1, +70,1,55,255,115,253,248,253,218,251,102,251,31,255,168,254,197,249,211,248,220,254,236,5,186,7,184,5,125,1,103,252, +219,251,43,0,167,4,62,5,174,2,67,2,213,0,94,252,158,253,9,2,231,2,186,3,147,2,241,254,132,253,245,251, +227,253,121,8,138,16,119,11,182,254,201,246,122,247,244,249,187,252,136,2,230,6,165,5,172,0,198,251,81,249,7,250, +57,254,252,2,126,4,137,2,51,255,202,255,46,4,213,3,222,255,92,254,230,252,233,251,191,253,54,255,239,254,43,254, +94,254,56,255,10,255,51,2,48,9,151,9,120,2,58,253,101,252,3,255,222,2,173,2,250,0,1,3,196,3,62,1, +163,1,151,3,184,2,135,0,10,253,68,249,61,249,155,252,219,1,67,7,98,8,49,5,72,2,225,2,164,5,251,2, +38,250,148,247,86,253,124,0,97,2,7,7,134,5,175,254,145,253,78,0,126,1,40,1,88,254,114,252,132,253,251,251, +205,248,234,249,124,253,14,255,96,255,75,0,38,0,193,255,140,0,56,254,49,251,124,252,190,251,58,249,32,251,54,253, +38,255,113,2,177,1,227,254,150,253,79,253,103,0,236,3,118,3,43,255,239,247,42,247,54,1,251,6,228,2,86,1, +171,4,67,4,197,254,187,250,158,252,97,1,37,3,0,4,176,9,52,14,248,9,17,3,151,255,163,255,170,2,165,3, +26,1,131,255,134,254,199,254,102,2,179,5,45,6,66,3,226,252,69,248,167,250,8,2,147,5,53,1,82,253,18,254, +41,254,3,253,83,252,58,253,4,1,163,3,28,4,235,5,157,5,177,0,245,250,133,247,206,249,139,0,234,3,179,2, +227,0,11,255,71,254,187,254,23,253,38,250,60,249,246,249,166,251,149,253,228,253,112,254,232,1,198,4,235,1,238,250, +143,246,237,247,222,251,157,254,119,254,130,252,75,253,6,2,131,4,231,0,47,252,239,250,80,250,168,248,53,250,114,255, +113,3,57,4,119,2,203,254,157,251,226,250,30,253,15,2,137,4,95,0,69,251,139,249,182,249,166,254,63,7,198,11, +151,12,72,12,202,8,114,3,245,253,221,249,224,250,116,254,168,0,186,3,11,7,146,7,79,7,124,6,53,1,160,251, +244,253,179,3,100,5,46,5,50,4,13,3,40,4,148,3,217,255,195,252,137,251,199,253,66,1,113,2,68,4,178,5, +129,4,46,2,195,253,170,252,112,1,83,2,101,255,234,253,193,252,96,254,247,0,61,1,97,2,42,1,32,252,43,248, +116,245,27,246,59,249,162,249,63,251,85,255,12,2,180,3,33,2,124,255,138,0,19,1,90,0,178,0,63,0,237,255, +167,254,28,252,223,252,81,255,24,1,249,2,47,3,216,2,73,1,235,252,241,251,94,254,101,254,146,254,18,0,228,255, +44,255,63,0,128,3,20,5,208,1,112,255,193,1,166,3,243,1,77,254,174,251,25,253,247,0,101,2,111,1,83,1, +93,1,118,0,236,0,253,2,79,4,108,4,191,3,49,2,146,0,228,255,127,255,144,255,242,1,192,4,10,5,65,4, +130,2,86,255,200,253,42,254,115,254,211,253,4,252,213,251,86,254,168,0,63,3,131,5,228,3,29,0,255,253,201,253, +11,254,105,254,113,255,148,255,0,255,58,0,3,1,180,255,50,254,98,252,200,251,236,252,168,252,221,251,200,251,10,252, +139,254,218,0,146,255,52,254,15,255,24,255,233,252,163,252,210,0,233,3,103,2,2,0,158,254,28,253,139,251,68,252, +231,255,20,2,101,2,252,3,135,4,61,3,52,2,15,1,183,0,233,0,180,0,67,1,224,0,225,0,167,3,15,3, +77,255,223,255,146,1,35,0,63,255,196,255,18,0,155,0,233,0,200,255,91,254,68,254,231,253,207,252,57,254,57,1, +142,1,246,255,244,254,87,253,211,250,189,250,146,253,252,255,126,1,199,2,98,3,1,5,116,7,182,7,194,5,78,2, +167,254,78,254,2,0,4,0,181,255,145,0,215,1,131,3,125,3,119,0,28,254,233,253,27,254,82,255,240,0,188,0, +226,255,87,255,125,254,93,254,131,254,134,253,73,253,199,254,69,255,207,253,218,252,19,254,148,0,172,1,33,0,233,254, +24,255,200,253,160,252,249,254,57,2,110,3,244,2,215,1,203,0,207,255,232,255,131,0,138,254,41,252,181,252,168,253, +157,253,4,254,72,0,136,4,222,5,47,2,255,255,212,1,198,2,135,1,221,0,250,255,150,253,28,253,215,254,1,255, +204,254,161,255,205,255,252,255,58,0,13,0,21,1,48,2,111,1,33,0,250,255,243,0,204,1,244,1,59,1,230,255, +240,255,136,0,237,255,42,0,244,0,122,0,16,0,168,255,212,254,157,254,86,254,63,253,112,252,135,253,167,255,194,0, +35,1,95,255,128,251,94,250,27,251,97,251,213,252,105,252,203,250,64,253,101,0,172,1,52,3,16,4,54,4,147,2, +139,254,179,252,105,253,59,254,249,255,26,1,188,0,216,0,28,1,138,1,250,2,134,3,123,1,214,254,64,254,73,255, +196,0,176,1,100,0,88,254,225,253,202,254,79,1,74,3,172,1,177,255,194,0,181,2,121,2,140,255,47,253,103,254, +239,0,119,1,235,0,29,2,7,4,252,2,170,0,53,1,202,2,250,2,168,2,221,0,159,254,211,255,218,1,103,1, +150,1,143,2,8,3,51,4,169,2,106,253,44,250,251,250,211,254,143,2,188,1,8,255,154,254,131,0,202,3,116,3, +32,254,228,250,148,251,94,252,203,252,78,254,139,0,36,1,23,0,201,254,185,252,109,251,182,251,102,252,194,254,196,0, +231,255,88,255,187,255,102,0,205,1,89,0,186,252,27,253,47,0,12,0,225,253,145,254,185,0,56,1,16,1,61,0, +121,255,234,255,190,254,40,253,20,254,197,255,130,2,45,5,42,5,138,4,118,3,141,2,148,3,255,2,16,1,173,0, +190,0,238,1,1,2,157,255,16,1,64,5,165,5,222,2,193,255,31,255,255,0,134,1,234,0,55,1,217,1,134,1, +231,255,205,255,220,1,88,2,203,0,4,255,26,253,251,250,93,250,65,253,254,255,18,255,159,254,199,255,99,0,65,2, +50,3,74,255,190,250,217,250,37,253,242,252,50,252,33,254,68,0,97,1,223,1,79,0,46,254,16,253,29,253,121,255, +214,0,31,255,31,255,115,0,106,254,56,251,202,250,113,252,171,254,158,0,160,0,94,254,164,252,0,254,158,1,21,4, +46,3,114,0,153,254,104,254,84,254,164,253,99,255,84,3,231,3,1,1,190,254,233,253,54,254,24,254,169,252,134,252, +205,253,87,254,37,254,24,254,8,0,38,3,100,3,61,2,169,3,199,5,39,6,122,5,183,3,31,1,62,0,71,1, +172,0,74,254,246,253,7,0,204,1,245,1,132,1,152,3,237,7,17,9,248,5,247,2,101,1,142,0,129,0,107,0, +225,255,247,254,195,253,72,253,20,253,213,252,53,254,48,255,242,252,183,250,215,251,143,254,218,255,100,255,44,255,145,255, +146,255,79,255,87,255,5,0,192,255,57,254,40,255,250,0,242,255,212,255,72,1,4,1,61,1,73,2,64,1,114,254, +190,251,8,251,171,251,86,252,10,254,192,254,36,254,49,0,75,3,96,4,201,3,75,1,243,254,13,254,49,253,240,253, +56,0,201,1,106,2,161,0,172,253,205,253,107,255,211,254,85,252,5,251,186,253,84,1,79,1,177,0,167,2,70,4, +74,3,241,0,41,255,71,254,225,252,196,251,66,253,37,0,108,2,129,3,22,2,203,255,150,255,163,255,55,254,158,252, +106,252,15,255,213,1,111,1,232,0,77,1,90,0,252,255,113,1,195,2,188,2,170,1,249,1,154,3,91,3,208,2, +227,4,131,6,7,4,61,0,255,255,158,1,190,1,22,2,98,2,80,1,142,1,218,1,125,255,243,253,167,254,125,255, +71,1,124,3,6,4,234,3,127,2,123,254,40,252,31,253,76,253,90,253,237,254,1,255,242,253,205,253,146,253,116,253, +105,253,74,252,112,251,127,252,127,254,130,255,126,0,94,2,248,0,85,252,151,250,248,251,172,253,96,254,35,253,77,253, +36,255,24,255,90,0,149,3,243,3,105,2,28,1,93,0,69,0,127,255,29,0,233,1,211,0,192,255,15,0,54,255, +116,0,164,2,19,2,237,1,48,1,43,254,230,253,104,0,162,1,166,0,249,254,242,255,13,2,70,0,215,252,216,252, +97,255,186,255,126,253,212,253,237,0,198,2,0,4,170,4,131,3,125,2,161,1,167,0,28,2,69,5,116,6,86,4, +165,1,34,2,254,3,30,2,63,253,143,250,5,251,251,250,22,250,220,251,209,255,200,1,61,1,178,0,140,0,104,1, +102,4,62,5,234,1,73,255,60,253,67,252,85,0,126,2,41,255,252,252,104,250,43,249,136,254,143,1,42,255,154,253, +223,250,4,249,213,251,151,253,42,252,38,251,187,252,193,255,34,0,188,254,86,254,187,254,114,1,81,4,227,3,211,2, +229,1,231,0,194,1,238,2,33,3,94,2,191,0,64,0,66,0,119,0,140,2,80,2,156,252,151,247,46,249,158,254, +199,1,116,2,52,3,128,3,85,3,190,2,188,1,160,1,118,0,34,253,36,251,78,252,99,255,30,1,193,0,139,1, +230,2,204,3,87,4,166,1,157,254,159,254,123,254,184,0,245,5,26,6,51,1,37,254,211,254,163,255,61,253,45,251, +130,252,6,255,228,0,156,255,184,253,39,0,176,2,116,4,242,6,156,3,110,254,176,255,109,1,83,0,112,254,184,251, +32,252,113,254,39,253,192,251,111,252,215,251,181,250,167,250,189,251,24,255,115,3,151,4,204,1,205,255,246,1,252,5, +103,5,184,252,235,244,35,247,9,253,225,0,140,4,232,5,88,6,45,9,71,9,255,5,148,2,210,252,75,248,26,250, +59,254,176,255,43,252,179,247,206,249,220,254,17,1,33,2,154,1,34,1,38,4,160,6,210,5,111,3,8,2,247,3, +122,4,52,1,59,0,44,0,207,253,250,252,60,253,39,253,51,254,42,254,248,252,28,255,62,5,71,9,150,6,217,2, +96,3,159,4,119,5,121,6,166,4,254,0,193,254,56,254,77,255,188,0,53,0,74,255,192,1,161,5,65,6,207,3, +125,254,198,248,220,249,105,254,109,254,113,252,191,251,194,253,213,1,194,0,64,251,143,248,254,247,174,247,233,246,99,245, +121,246,132,250,43,255,4,2,123,1,225,0,235,255,168,252,182,251,38,253,84,255,91,2,56,1,240,254,199,0,229,0, +238,254,172,253,152,252,73,255,144,1,138,254,129,253,232,254,5,254,74,253,220,253,190,254,45,255,71,255,111,255,181,253, +14,253,212,255,235,1,216,4,154,7,159,4,201,0,235,254,150,253,222,0,195,5,113,7,181,7,249,4,219,0,128,1, +125,5,109,7,82,5,59,1,174,253,91,253,176,2,188,7,96,7,185,5,175,3,8,3,146,5,177,4,239,1,113,1, +34,255,62,254,140,255,92,255,95,2,77,5,73,5,220,8,252,9,227,5,58,3,206,253,150,248,188,250,168,252,40,252, +225,252,139,253,27,255,92,255,177,252,208,250,171,249,193,250,199,253,114,252,123,249,110,249,9,249,237,247,244,247,234,250, +160,255,248,254,120,251,215,253,139,2,255,4,189,5,100,2,102,254,115,255,211,255,148,252,24,253,90,0,247,255,235,254, +123,254,135,252,189,253,118,0,168,253,162,250,155,252,214,255,177,2,220,2,240,254,235,251,181,251,117,253,166,1,132,4, +61,3,158,1,53,3,243,6,39,9,46,8,132,5,96,2,154,255,0,254,9,254,245,255,20,2,42,3,89,4,148,5, +74,5,39,2,142,254,176,255,17,3,115,3,172,3,105,3,184,254,151,251,213,255,167,5,148,4,18,252,175,245,8,249, +41,1,131,5,82,3,30,254,203,251,109,252,85,252,120,251,52,251,176,252,107,255,106,255,143,252,146,251,169,252,100,251, +153,246,22,244,168,248,219,254,240,0,58,2,172,4,31,6,226,5,161,2,29,255,238,0,116,3,131,1,96,0,36,1, +231,0,61,2,209,3,148,2,66,2,210,3,204,4,126,5,239,3,80,255,200,253,105,1,136,3,209,1,180,0,207,0, +252,255,22,253,231,247,6,247,13,253,181,255,117,255,212,3,68,4,98,254,99,253,88,0,22,1,252,255,54,255,115,1, +79,2,83,254,122,253,186,0,45,2,69,3,32,3,253,255,17,255,37,2,133,4,31,2,93,253,89,253,34,2,140,4, +232,0,125,251,67,252,12,3,19,8,199,7,172,1,154,248,10,245,245,248,210,252,153,252,29,252,69,254,7,0,221,255, +183,255,167,255,226,255,25,255,88,252,45,253,239,0,137,0,110,255,216,0,162,0,249,0,157,2,213,255,231,250,255,249, +153,252,100,0,160,2,185,255,243,250,164,250,192,252,2,254,252,0,47,4,155,3,123,1,198,0,165,1,25,3,55,3, +156,2,201,2,147,2,191,0,166,253,142,251,41,252,14,254,221,0,229,3,80,4,0,4,200,5,73,6,187,3,141,1, +37,1,228,0,98,255,160,252,26,252,102,0,183,3,138,1,234,255,115,1,210,0,103,254,21,254,242,254,119,255,229,255, +102,255,106,253,109,252,237,253,223,255,77,1,143,1,179,0,110,2,70,5,48,4,119,1,239,255,215,255,52,1,100,0, +211,253,186,252,244,250,154,250,78,254,225,0,97,0,101,253,98,249,113,251,88,2,145,4,252,2,237,2,2,2,166,254, +152,253,4,0,210,1,212,2,225,2,94,0,150,255,213,0,183,254,70,251,76,249,32,249,126,253,159,2,131,3,133,3, +109,4,92,4,105,2,118,255,116,255,25,1,244,254,80,252,173,252,196,251,170,249,184,250,195,253,91,255,35,255,117,254, +2,255,67,1,243,1,134,255,98,255,194,2,99,3,55,2,114,3,179,3,184,1,93,255,233,252,74,254,143,1,232,255, +66,255,184,2,10,2,226,255,133,1,128,2,29,1,218,253,184,252,124,2,219,5,112,2,191,2,102,6,64,7,109,6, +52,3,158,255,234,255,40,2,121,3,148,0,186,250,89,251,246,1,61,3,87,253,76,249,34,253,84,4,99,7,136,4, +247,252,151,245,171,245,199,252,223,2,31,2,65,254,177,254,51,2,96,3,70,1,9,255,86,0,131,0,83,252,235,252, +55,1,107,0,7,0,200,1,204,0,215,0,220,0,191,253,115,251,235,249,214,250,219,255,215,0,225,252,215,250,22,251, +60,253,83,0,135,1,218,1,93,1,167,255,165,254,136,253,39,253,247,255,244,1,82,1,43,2,250,1,34,254,98,253, +140,0,253,1,190,3,43,6,41,6,192,7,32,10,202,6,122,1,229,255,214,255,22,254,143,251,116,252,213,0,60,3, +17,1,39,253,25,253,52,1,159,2,245,0,38,1,66,2,155,1,76,255,167,253,203,253,124,253,237,253,155,0,88,1, +37,255,144,253,224,253,12,254,57,252,87,251,113,253,215,255,192,0,56,255,2,254,89,0,175,1,69,1,64,2,145,1, +47,255,250,252,81,252,135,0,67,3,44,1,2,2,28,1,189,250,216,249,36,254,198,255,73,255,108,253,47,252,112,255, +160,3,21,2,197,252,78,251,8,254,141,0,36,2,57,2,128,1,132,1,95,255,221,251,240,252,132,2,154,6,230,4, +73,0,255,254,234,255,25,255,192,255,43,3,168,2,182,254,229,255,174,4,131,6,225,6,253,7,16,7,55,0,148,248, +113,251,43,2,42,0,243,252,241,254,225,0,117,0,237,253,78,253,188,255,3,0,165,254,3,251,158,246,202,249,247,253, +50,253,20,0,92,2,101,254,123,251,69,250,2,251,214,255,73,0,194,249,8,249,191,2,199,7,225,255,56,248,152,248, +132,252,19,1,247,1,126,255,151,254,22,253,64,252,71,0,5,4,106,3,163,0,106,254,97,254,19,254,79,252,163,253, +237,2,176,5,26,3,82,0,4,0,20,1,248,2,233,1,83,255,65,1,210,2,135,1,140,3,77,6,119,6,76,5, +188,1,203,0,93,4,127,4,94,3,32,6,72,6,164,2,73,1,251,1,104,3,237,4,199,2,212,254,146,254,223,255, +226,254,211,253,253,255,202,2,31,1,233,253,45,254,107,0,235,3,242,4,17,255,168,250,90,252,42,254,187,255,247,255, +134,254,66,0,175,0,139,253,22,254,239,255,17,255,63,255,3,0,239,254,183,253,58,255,246,2,134,3,123,255,203,252, +189,254,125,1,170,0,127,254,111,255,126,1,104,0,111,254,91,0,234,2,230,0,60,254,34,254,8,255,114,1,246,1, +176,254,80,254,29,1,246,1,153,1,21,1,246,255,97,254,195,252,124,253,247,255,242,255,114,254,249,254,48,254,83,250, +36,250,22,253,74,252,42,251,57,252,111,252,38,254,12,0,84,255,235,255,3,0,134,252,165,250,144,253,117,2,237,4, +159,4,125,4,150,3,201,1,119,1,35,2,81,3,36,4,64,4,108,4,126,2,167,1,169,6,53,9,197,3,55,255, +195,255,94,0,250,0,138,3,226,3,11,2,140,1,219,255,88,255,109,2,114,1,108,253,241,252,69,254,176,255,100,254, +178,251,134,254,217,0,61,252,9,248,34,249,67,253,152,255,91,255,164,255,85,254,116,253,83,0,198,0,136,254,58,253, +34,252,97,253,63,255,11,255,41,254,211,252,173,254,209,1,209,1,112,4,152,5,57,0,61,255,224,2,17,4,178,2, +240,254,20,255,242,1,159,254,237,251,190,253,29,254,24,254,198,252,124,250,208,250,142,251,228,253,155,0,223,254,29,254, +166,255,147,254,15,254,63,255,54,255,84,254,19,254,182,255,29,1,6,1,97,1,206,255,31,254,58,1,116,3,250,1, +254,0,254,255,116,0,205,1,128,255,205,254,143,0,118,254,233,253,219,255,180,254,187,255,46,2,219,1,95,4,179,7, +157,7,13,6,236,1,94,255,155,0,11,0,120,255,3,0,80,1,133,5,148,5,196,1,172,1,180,0,210,255,89,2, +42,2,221,1,104,3,135,2,89,2,12,3,71,2,216,0,168,253,15,252,85,254,244,255,37,254,102,250,201,251,111,2, +23,4,28,2,132,1,45,0,182,255,40,254,186,250,60,252,211,254,69,252,4,249,186,248,108,251,87,255,232,2,235,4, +84,2,151,254,147,254,94,255,148,255,129,255,103,255,108,1,2,3,136,2,223,1,3,0,96,255,61,2,92,2,4,252, +236,246,209,249,137,252,195,250,79,255,42,6,169,3,168,255,169,254,50,253,111,255,120,3,190,5,121,7,255,3,38,254, +121,253,138,252,246,250,201,255,164,4,181,2,22,0,140,0,206,1,68,3,199,2,70,255,94,253,70,253,43,252,177,253, +129,1,214,1,46,0,143,255,176,254,129,253,220,252,227,253,141,0,176,1,136,0,126,255,68,0,243,2,191,4,24,4, +68,2,31,255,88,254,160,3,14,7,142,3,252,0,94,2,94,3,97,3,117,2,193,0,117,1,249,2,157,0,67,254, +54,255,60,252,104,245,149,245,199,252,199,1,95,1,53,255,233,255,186,0,233,252,30,250,192,252,178,254,84,252,14,250, +74,251,183,252,195,252,163,254,145,0,82,1,232,1,57,254,110,250,189,252,151,254,133,0,192,5,77,6,233,2,106,0, +163,254,83,3,190,9,173,4,247,251,187,251,106,254,89,0,222,3,152,3,117,255,58,255,87,254,86,251,64,255,163,1, +109,252,171,252,104,0,29,1,101,4,57,6,169,4,1,5,81,3,68,1,142,3,141,4,253,3,161,4,124,2,118,254, +138,254,14,2,181,2,184,255,179,253,204,253,161,255,232,0,74,254,4,253,102,0,182,0,10,252,209,248,251,248,114,250, +255,251,203,253,233,255,221,0,201,0,171,2,141,4,233,0,4,252,126,252,144,254,18,255,152,254,123,253,53,255,164,1, +52,1,157,2,140,3,236,255,244,254,22,2,70,4,115,4,76,1,126,253,138,254,76,2,93,3,14,2,20,2,212,2, +170,2,66,3,37,3,240,1,42,2,24,1,118,255,219,0,148,0,161,253,92,253,206,254,63,254,185,251,111,250,46,251, +19,250,70,248,240,249,104,251,26,250,213,251,35,1,156,1,139,252,183,250,146,255,8,7,193,10,239,7,84,3,111,1, +247,1,146,1,75,254,5,254,17,1,12,0,60,255,251,1,115,2,177,1,240,0,79,0,140,1,5,0,44,254,246,0, +195,1,32,1,62,3,243,2,101,255,186,252,92,254,223,2,157,3,206,1,128,0,163,254,52,254,104,251,46,246,235,248, +109,255,207,255,35,254,94,254,20,0,57,2,27,2,229,0,206,0,232,254,246,249,175,248,156,253,177,0,215,255,180,253, +199,250,54,254,246,4,25,2,78,253,75,255,79,0,27,255,79,254,209,254,94,2,178,3,53,2,213,2,229,1,191,255, +51,1,20,2,219,255,246,253,151,253,165,254,76,0,86,1,182,2,13,4,38,2,36,254,40,254,19,2,223,2,238,254, +106,251,110,251,178,253,207,255,74,0,86,0,217,1,14,2,229,255,57,0,130,0,105,251,184,248,90,254,154,3,163,2, +220,0,213,2,150,5,82,4,1,0,224,254,60,2,75,3,111,1,59,2,33,3,30,2,127,2,39,2,89,1,59,2, +182,0,216,254,159,0,77,2,47,4,197,6,123,5,143,2,201,1,16,1,70,2,242,6,117,6,79,255,233,252,127,255, +66,1,254,4,194,6,96,3,65,1,131,254,15,252,243,254,172,254,83,251,126,253,167,255,142,255,12,0,166,254,39,254, +204,254,33,253,129,253,119,255,150,254,30,254,188,253,229,249,188,247,34,251,127,254,1,254,242,251,48,251,23,253,19,254, +131,251,245,251,87,1,196,3,180,0,118,252,46,251,134,252,24,253,96,254,104,1,1,3,185,3,241,3,187,1,114,254, +186,252,240,252,171,252,144,252,59,254,240,252,106,250,57,252,237,253,171,255,51,3,39,2,65,255,3,0,207,2,239,6, +216,6,185,0,111,254,60,2,108,5,160,4,67,2,159,1,10,0,49,254,133,0,181,2,184,1,119,255,142,252,217,252, +89,255,244,254,168,255,52,3,45,3,19,255,151,253,90,0,182,0,211,253,11,254,89,255,123,253,137,252,129,255,76,2, +53,255,179,248,56,249,44,2,32,8,26,5,105,0,61,0,251,0,137,254,158,250,227,250,136,0,113,3,9,2,204,2, +228,3,212,2,162,1,95,0,247,255,76,254,15,252,77,255,240,1,114,255,215,255,172,1,189,255,15,253,92,253,247,1, +33,5,136,2,15,255,4,254,72,0,85,0,158,249,80,249,120,1,204,2,45,0,176,0,119,0,129,0,212,0,198,255, +1,0,54,0,244,253,1,252,50,254,28,2,216,1,233,254,56,253,163,254,106,3,243,3,145,255,91,255,175,0,51,255, +163,253,234,253,236,2,17,6,189,1,128,1,82,5,84,4,128,3,27,2,100,253,120,252,163,254,160,255,66,255,164,253, +223,254,85,2,6,2,110,254,181,251,134,253,95,0,136,253,86,251,107,253,40,253,151,254,247,3,108,5,44,5,219,6, +131,7,111,8,36,8,38,4,121,2,252,4,189,6,85,6,113,4,44,3,95,4,48,4,60,1,20,0,144,255,72,253, +61,254,142,1,57,1,53,0,204,255,246,252,79,251,48,251,76,250,64,251,147,251,73,251,25,254,135,253,100,249,218,248, +55,249,167,249,237,249,90,248,123,251,107,255,74,253,50,253,74,254,223,253,88,1,191,1,29,255,126,1,187,0,48,253, +86,255,73,1,230,0,173,0,20,0,225,1,186,2,7,0,176,255,252,0,194,0,118,255,197,252,240,251,72,254,251,255, +245,255,53,255,245,254,96,255,109,0,190,2,218,2,74,1,232,2,175,3,82,2,14,3,125,2,147,0,64,0,25,255, +196,255,242,1,81,255,171,252,92,0,173,6,10,10,12,7,111,1,151,0,127,2,52,1,100,254,185,254,14,1,72,2, +152,2,123,1,231,0,53,3,116,2,56,255,230,255,64,255,249,252,101,254,196,254,186,254,197,255,254,253,63,0,13,5, +214,1,34,255,58,2,253,0,23,252,237,250,250,253,154,2,31,6,36,5,29,255,32,252,43,255,77,0,44,0,183,1, +63,2,26,3,66,1,43,253,127,255,85,3,202,1,12,253,144,248,29,252,63,2,243,255,193,253,28,253,71,249,167,249, +66,251,89,250,71,252,35,255,189,2,150,3,40,252,103,247,242,250,184,255,49,2,78,1,206,1,110,2,74,253,82,253, +22,5,52,8,67,7,13,5,15,2,150,0,237,253,65,253,135,255,246,255,185,3,207,7,24,5,17,2,55,253,242,248, +88,1,78,8,124,1,23,253,232,253,37,251,95,250,57,253,178,255,22,2,9,0,135,249,39,248,58,254,166,5,104,6, +71,254,39,249,201,252,205,255,249,255,113,255,36,254,109,0,101,3,92,2,238,2,156,3,246,255,119,253,17,252,128,250, +44,255,246,5,195,5,191,1,25,253,55,250,92,255,121,5,97,4,203,2,155,0,99,253,2,0,143,1,182,0,72,3, +199,254,244,247,69,251,41,251,201,245,222,247,199,253,159,3,226,6,163,3,31,255,156,252,12,252,49,253,214,253,46,255, +95,0,63,1,206,2,173,0,151,254,132,255,51,254,109,255,126,2,127,0,172,255,58,1,254,1,148,2,126,255,65,253, +183,255,122,0,103,255,17,255,66,0,248,255,167,251,222,253,15,4,46,2,219,2,252,7,36,6,36,2,230,1,9,6, +66,7,133,254,41,251,114,0,208,0,68,1,45,2,92,254,181,252,225,252,134,254,50,2,212,1,94,1,134,2,185,1, +205,2,175,3,128,3,146,4,189,2,244,2,185,6,232,3,87,255,107,1,197,4,17,4,119,0,29,255,112,0,106,255, +41,253,13,252,162,251,159,254,212,2,154,254,73,245,140,246,191,254,61,255,58,252,39,251,98,251,180,0,166,4,202,2, +43,1,251,252,24,250,36,255,79,1,171,254,240,254,208,0,206,2,71,2,176,255,209,254,61,252,113,251,48,255,65,254, +227,251,120,254,157,0,110,2,9,4,89,2,33,0,162,253,109,251,211,252,219,255,253,2,50,5,5,4,88,1,106,253, +177,248,222,249,125,255,147,0,104,254,193,254,128,0,147,0,144,255,39,1,212,4,8,5,174,2,94,1,47,0,244,0, +106,2,180,255,104,253,189,254,32,0,7,2,80,2,84,254,73,251,210,251,53,254,167,1,158,4,54,6,54,6,60,4, +233,0,228,255,245,3,60,5,228,255,134,254,45,0,80,253,191,253,76,3,11,5,38,3,69,0,247,252,134,251,186,250, +151,249,195,251,153,1,17,5,176,1,215,249,45,244,194,246,125,255,211,4,48,4,50,3,221,2,95,0,92,254,250,0, +146,4,253,4,245,3,180,1,34,0,71,1,35,0,142,254,72,1,20,2,104,255,161,252,22,249,86,249,71,254,52,1, +18,2,72,3,7,4,69,3,110,0,183,253,182,253,243,255,47,1,124,255,208,253,235,252,172,252,48,255,191,0,132,0, +121,1,59,255,49,251,59,251,62,253,136,255,58,0,213,254,68,255,117,0,201,1,129,1,94,252,242,251,59,2,178,2, +76,0,87,4,131,10,178,9,151,0,241,249,113,251,103,253,75,251,239,248,46,251,64,253,117,249,104,249,235,255,84,4, +131,6,181,4,10,0,25,255,172,252,105,250,111,0,47,8,60,12,74,10,101,1,242,251,168,254,52,3,60,4,159,2, +218,3,196,2,63,252,73,252,76,2,79,5,147,3,241,251,41,248,100,254,218,2,148,2,124,1,236,254,8,253,70,252, +8,254,2,2,202,1,39,254,79,251,102,251,96,254,155,254,151,254,94,0,124,252,182,250,62,1,105,3,190,254,34,249, +130,247,184,255,71,7,78,2,129,250,196,249,191,252,115,254,126,255,26,2,154,4,215,4,35,1,237,250,124,250,242,0, +193,4,146,2,15,0,146,0,136,1,49,3,72,7,59,8,63,5,201,3,171,1,170,254,23,255,227,1,15,4,61,2, +31,255,153,0,67,0,126,252,35,255,101,4,150,3,115,255,239,252,125,254,82,0,158,252,226,247,117,249,187,255,171,2, +63,0,19,2,88,9,47,8,66,254,94,251,201,1,7,6,208,3,186,254,115,252,107,255,150,255,239,250,164,251,19,254, +119,250,169,247,70,246,146,244,227,247,224,250,167,251,240,0,209,2,159,252,100,248,124,249,123,255,170,8,178,12,138,8, +80,0,27,251,146,255,43,7,199,7,10,5,150,3,94,2,121,4,182,8,227,5,143,255,7,3,14,10,2,4,23,248, +223,249,25,7,186,12,39,4,84,251,27,254,189,3,199,2,13,3,174,7,247,5,244,252,47,248,46,253,64,5,231,5, +91,255,139,251,157,253,111,0,10,0,255,253,30,254,202,254,195,254,66,0,166,254,16,250,109,252,188,1,147,0,7,254, +29,254,247,254,27,255,222,248,172,239,177,242,79,255,87,2,220,249,10,246,206,253,123,7,241,8,55,4,205,0,132,0, +0,1,7,254,35,246,156,243,170,252,224,5,181,8,19,10,30,9,237,2,152,254,155,7,184,21,21,16,6,252,237,245, +216,253,237,5,132,13,165,18,238,14,113,0,248,241,52,244,86,2,79,11,132,11,219,5,98,255,5,253,76,252,180,250, +69,247,63,243,188,244,137,250,40,254,42,255,8,254,61,250,217,246,4,250,161,3,170,7,118,1,74,252,171,253,175,254, +225,249,51,244,196,245,82,251,70,252,255,248,154,248,23,254,154,0,92,250,87,247,159,254,233,5,172,5,124,1,183,255, +185,0,103,1,20,2,132,0,46,252,94,251,137,251,190,246,50,243,146,246,194,253,248,1,3,0,247,0,168,8,225,8, +232,255,255,252,182,254,69,251,32,248,119,250,94,255,163,4,74,5,5,1,64,1,245,6,243,9,219,7,175,4,65,4, +223,4,119,4,179,5,136,5,149,255,133,252,112,3,44,11,214,10,188,5,41,1,149,1,157,9,223,15,90,12,5,5, +238,253,88,251,32,1,25,3,39,253,12,251,10,252,251,252,107,0,222,1,15,0,138,254,120,255,78,4,232,7,58,7, +138,5,153,2,113,255,247,253,158,254,173,1,151,0,73,251,15,251,110,253,118,253,209,252,196,251,80,252,226,251,245,247, +208,248,104,253,54,252,90,248,207,248,192,253,88,2,35,2,188,255,156,255,33,3,236,6,19,4,254,252,195,249,74,250, +135,252,82,255,113,254,131,249,16,248,94,255,235,5,99,0,79,247,99,248,109,2,1,13,43,16,210,9,128,3,174,4, +15,7,181,6,42,9,70,10,12,3,43,253,161,253,54,253,80,255,189,5,145,7,75,4,243,254,162,248,123,246,23,249, +228,253,180,2,124,2,13,255,197,253,134,255,145,4,119,4,184,250,14,246,38,249,28,249,101,248,220,247,45,246,151,248, +120,248,156,242,196,241,115,245,173,250,175,1,109,2,129,255,90,1,183,2,66,2,60,3,180,1,108,255,101,1,163,3, +77,3,27,4,69,3,53,251,46,247,130,1,6,9,187,255,179,245,207,249,10,2,138,1,156,254,255,1,171,5,247,5, +170,7,215,10,30,12,129,8,84,2,205,1,18,5,130,3,22,0,15,3,0,10,109,10,30,2,55,250,32,251,106,5, +174,13,86,8,0,253,210,248,180,253,86,6,190,8,247,1,20,250,104,246,50,248,118,251,226,249,33,248,242,251,157,0, +150,255,145,248,173,244,166,249,82,255,224,255,219,255,137,2,207,2,167,252,11,248,244,248,204,249,145,253,208,3,19,3, +205,255,74,2,120,6,165,7,4,5,253,255,100,253,81,0,195,4,160,5,134,5,96,5,1,2,16,2,160,8,8,11, +149,5,187,254,194,253,169,3,244,4,170,254,182,253,164,2,154,4,242,4,152,4,63,0,251,250,241,247,168,246,44,250, +48,1,58,4,173,3,244,0,72,251,68,250,210,252,147,249,89,247,102,250,228,249,36,246,79,242,225,241,20,253,92,9, +77,6,11,0,4,4,42,6,194,255,219,251,10,253,162,253,35,254,114,253,20,252,245,255,91,3,41,1,144,2,219,4, +192,255,78,252,85,254,179,255,39,1,157,0,211,252,69,251,10,250,120,249,59,255,125,4,49,3,193,0,44,1,196,5, +55,10,175,9,129,9,248,7,152,0,47,254,117,1,63,0,69,255,174,255,68,252,28,253,218,2,185,2,182,254,57,252, +30,251,134,254,96,4,188,4,30,1,12,1,174,4,196,5,200,2,25,1,144,1,175,0,152,255,156,255,88,0,147,1, +61,0,109,253,26,253,159,252,226,251,91,252,247,249,26,248,41,252,63,1,143,3,93,2,242,254,183,255,148,4,5,8, +245,8,140,6,4,2,95,0,17,3,36,6,84,4,40,0,136,0,63,2,154,255,75,250,159,245,43,246,115,252,3,1, +145,1,37,1,103,255,108,252,161,249,220,250,139,2,89,6,207,0,228,253,1,0,134,1,49,6,213,10,5,9,202,2, +225,248,98,242,111,244,157,245,67,247,139,253,155,254,23,250,93,248,55,255,62,9,149,4,178,251,199,1,240,4,61,2, +82,8,21,10,56,6,112,6,96,1,243,249,120,247,50,246,16,250,13,0,189,254,94,250,155,250,131,255,88,1,253,252, +161,249,25,251,171,0,67,2,170,251,157,251,93,255,199,249,40,252,34,8,49,5,209,248,201,244,237,249,3,2,172,2, +12,253,52,252,214,254,227,0,21,3,95,4,65,4,250,0,29,252,146,252,193,255,239,254,196,254,11,4,21,9,66,7, +87,255,15,250,57,0,234,13,147,20,148,12,208,0,203,0,124,8,66,11,99,10,101,9,45,8,55,9,20,9,180,5, +206,4,148,7,114,13,10,18,54,12,30,2,182,0,237,5,1,9,22,6,167,1,178,1,74,2,186,254,206,249,229,245, +155,244,83,248,132,252,165,250,157,248,109,251,7,251,147,247,221,246,254,245,19,247,173,249,216,247,224,248,206,253,20,251, +236,243,65,245,122,0,169,5,22,253,90,249,105,255,73,1,65,0,116,255,54,255,48,2,159,2,180,0,43,253,143,244, +84,241,107,243,227,242,238,248,125,3,17,9,44,9,231,0,72,252,108,4,189,8,218,5,138,4,249,4,161,6,163,1, +144,247,169,250,127,8,225,13,159,5,164,251,67,251,74,253,181,249,207,246,169,248,136,252,6,252,121,249,228,0,117,8, +255,4,115,5,206,7,20,255,105,248,61,250,93,251,61,253,38,255,70,251,124,246,45,247,193,250,63,253,100,254,216,251, +6,247,222,251,38,8,141,9,118,4,231,5,47,4,227,255,37,4,78,3,238,251,76,2,12,9,111,254,59,247,165,254, +75,6,143,5,209,252,59,245,136,247,107,255,156,6,13,8,253,4,163,6,151,7,67,1,29,0,36,5,64,3,227,252, +30,252,5,0,8,1,53,255,162,0,75,3,235,3,83,3,83,0,40,0,163,4,232,4,240,4,2,9,70,6,41,254, +179,249,151,249,25,0,102,7,146,6,92,3,114,255,110,249,169,250,237,0,10,2,212,1,16,3,15,3,216,4,66,8, +98,10,23,10,211,4,176,1,226,5,245,1,146,244,64,241,96,246,171,250,49,255,255,253,242,250,158,0,212,5,30,5, +224,2,161,254,118,253,126,253,205,248,240,249,88,1,170,4,170,4,243,253,226,243,89,245,223,251,68,250,125,245,110,246, +121,254,97,4,5,3,201,1,74,255,214,249,240,249,99,252,0,254,236,3,236,4,112,253,73,251,81,253,41,253,106,1, +124,7,105,7,255,3,176,0,30,0,39,2,47,1,255,254,66,253,208,249,133,252,155,5,58,8,84,1,101,247,215,246, +251,0,241,2,228,255,135,5,134,5,105,0,251,4,147,6,100,1,88,2,38,5,79,5,142,4,115,0,26,254,209,2, +16,7,139,4,190,2,84,6,4,5,81,254,121,253,244,255,170,1,24,5,117,6,134,3,185,253,158,249,247,253,41,3, +93,1,60,255,199,253,131,251,71,252,15,255,239,1,27,2,125,254,237,254,63,6,45,13,188,11,191,3,106,1,117,0, +148,246,14,243,60,251,81,254,138,251,187,247,3,244,119,248,147,1,18,4,75,1,144,0,54,4,233,5,174,2,53,255, +172,249,78,244,191,246,235,250,133,249,94,244,250,241,174,248,59,255,206,254,96,1,226,4,231,3,93,3,212,1,158,2, +158,6,65,2,226,253,139,4,59,7,246,254,203,247,110,249,148,253,93,250,81,248,55,1,20,8,199,3,202,252,182,252, +111,2,126,2,43,253,202,251,206,251,73,254,201,3,17,1,118,252,136,0,77,2,251,0,139,5,87,9,70,8,156,5, +123,1,138,1,39,6,31,5,21,2,89,3,185,255,78,251,190,0,93,1,7,249,230,249,243,253,120,250,76,251,180,254, +195,250,116,246,109,247,210,254,167,6,205,1,15,252,193,2,141,4,1,0,208,1,198,255,246,249,91,251,118,253,239,253, +222,254,183,255,238,4,193,7,221,4,97,5,85,3,176,255,103,6,185,12,245,9,43,4,72,255,235,2,164,11,20,13, +173,8,207,1,77,254,69,3,80,5,99,0,21,252,250,248,222,248,150,253,192,2,24,1,121,249,129,251,48,5,242,4, +98,1,194,1,125,1,136,3,251,1,80,251,25,251,194,251,208,248,51,249,11,249,146,246,210,245,47,247,172,249,146,248, +117,246,98,251,79,3,208,5,101,0,65,251,210,254,214,1,76,0,17,2,220,3,91,4,114,5,232,1,154,253,110,253, +52,254,26,0,154,1,12,3,171,7,63,8,73,2,168,0,129,4,18,3,88,252,138,251,208,254,230,252,115,253,16,5, +29,7,150,2,252,255,215,254,87,1,74,6,163,1,185,246,123,243,133,248,248,0,215,2,196,252,12,2,194,9,45,0, +170,254,181,9,167,5,196,255,143,4,118,7,234,8,71,4,241,252,151,1,72,7,79,8,210,8,67,3,212,0,83,3, +59,1,223,0,36,0,20,253,155,253,33,251,138,250,193,254,214,250,194,247,214,253,109,0,252,252,61,253,209,4,240,3, +102,248,150,252,131,7,200,1,220,249,10,246,227,244,194,253,2,7,10,10,93,5,94,250,194,247,115,247,121,245,132,254, +144,255,169,245,239,253,184,10,11,6,66,0,72,3,232,3,206,253,253,251,242,2,2,9,173,6,164,255,150,3,250,11, +253,2,17,254,210,4,70,250,43,240,247,240,92,232,215,233,134,240,39,230,73,234,156,255,54,6,207,254,150,244,105,247, +71,0,48,241,11,229,149,250,165,10,2,0,159,252,69,11,8,15,68,2,249,251,117,251,72,249,232,255,128,11,37,16, +143,11,210,0,126,251,43,254,94,4,105,14,134,13,69,254,52,254,26,18,248,24,72,9,195,254,96,8,225,18,40,9, +126,243,217,238,165,250,7,251,176,249,230,6,22,13,114,7,107,1,242,251,151,250,191,247,59,249,49,4,212,255,78,252, +150,15,183,20,47,13,40,16,25,12,163,7,94,7,172,255,167,3,110,10,127,253,227,243,192,249,47,3,139,7,102,255, +79,245,166,249,85,7,147,11,198,3,172,4,45,14,94,15,103,11,139,6,104,3,246,255,144,245,35,246,58,254,201,244, +225,236,10,240,8,240,213,244,128,248,4,249,91,1,114,1,70,253,173,2,12,2,149,254,210,251,85,239,57,234,207,247, +201,9,69,15,33,2,52,248,147,3,98,21,130,20,195,252,96,245,206,13,26,17,97,245,186,238,145,2,10,14,98,8, +143,254,4,241,53,226,218,235,189,9,68,24,197,21,52,12,164,251,195,241,200,245,93,255,228,1,173,252,130,1,19,9, +85,2,160,255,220,7,126,8,243,250,130,234,91,239,13,2,124,253,133,235,72,236,1,252,102,8,89,5,102,252,155,254, +171,1,39,255,220,254,182,249,79,243,226,249,198,1,185,255,191,255,236,5,231,9,35,9,108,2,182,251,76,0,142,7, +162,8,172,10,172,8,104,3,37,9,38,14,35,6,158,255,15,1,42,2,176,253,44,248,137,250,216,1,131,5,216,2, +249,254,82,3,92,10,232,12,223,14,9,8,210,251,162,252,146,0,206,255,37,4,126,6,137,2,91,254,191,251,90,253, +252,251,60,245,208,243,10,244,195,245,184,254,247,1,17,253,194,251,2,255,207,4,45,7,167,4,184,4,221,0,99,248, +66,250,87,0,55,253,82,247,115,244,137,243,147,248,60,2,233,3,158,252,103,250,57,252,249,247,130,245,171,253,39,7, +118,6,222,255,9,254,216,253,33,251,103,250,245,246,207,241,200,246,163,255,25,5,107,8,122,2,210,252,179,4,91,9, +0,5,38,5,228,7,64,10,153,10,47,5,107,7,154,18,202,15,56,2,186,0,43,7,15,6,131,0,242,254,54,0, +80,0,187,253,58,252,146,0,36,3,67,252,222,243,171,240,245,241,213,244,59,243,236,238,30,236,222,234,210,242,254,255, +112,0,239,247,180,245,70,251,11,0,82,253,253,252,225,3,248,3,61,0,11,3,132,5,80,4,89,255,140,250,202,254, +140,0,239,249,173,252,63,4,40,0,16,251,240,1,196,11,138,13,106,12,100,14,43,15,143,14,248,12,26,8,0,7, +126,12,223,16,211,14,177,3,247,245,94,242,41,248,233,252,122,253,220,0,161,6,98,3,229,252,200,255,230,3,232,4, +206,8,146,9,132,4,120,4,170,9,225,7,20,2,127,4,228,7,38,6,157,9,38,14,149,8,194,254,244,251,121,3, +75,7,170,252,80,243,176,242,190,242,36,246,211,249,16,247,14,244,241,243,145,247,177,255,88,2,247,250,87,245,28,251, +140,6,79,11,175,2,2,243,59,241,186,0,47,5,184,248,109,243,21,249,58,254,176,254,95,252,63,252,108,252,213,250, +86,250,26,250,252,252,92,2,106,4,98,6,85,5,24,1,252,4,100,6,90,253,74,252,178,3,38,6,40,4,21,1, +55,255,0,255,99,1,50,7,114,8,150,5,128,6,224,7,139,9,36,12,208,8,6,3,192,2,145,6,111,5,13,251, +81,246,123,253,80,254,39,247,229,246,176,251,80,252,220,249,64,251,233,254,180,252,170,249,96,254,33,3,140,255,31,250, +167,252,143,5,240,10,142,8,67,4,125,3,178,2,52,1,75,2,146,254,42,249,99,255,87,4,10,0,183,255,51,255, +217,255,185,6,255,255,204,244,131,254,123,9,239,3,116,248,76,242,224,248,48,1,99,0,65,252,38,241,97,234,148,249, +35,7,60,7,32,10,1,6,255,248,18,248,177,254,86,255,231,252,249,251,42,253,95,253,122,253,181,0,37,255,122,247, +148,244,61,245,134,246,154,251,190,250,127,242,20,247,13,7,31,10,81,0,196,252,152,2,90,7,213,6,195,4,135,2, +115,0,112,2,142,7,60,10,174,8,70,3,152,254,61,0,96,3,28,1,113,252,33,252,79,0,87,0,231,249,37,249, +46,2,121,7,111,2,218,253,177,0,39,4,109,4,108,4,33,4,103,5,211,9,7,12,144,10,201,9,237,11,102,15, +56,12,2,0,201,247,195,249,161,252,191,253,23,2,105,5,128,3,63,4,30,9,161,8,9,4,75,0,241,249,62,246, +224,252,39,3,2,255,16,249,93,249,16,251,108,249,145,247,197,248,15,249,53,245,233,245,155,254,149,1,159,253,100,255, +130,3,92,4,47,6,119,6,35,3,88,0,151,0,24,2,183,252,174,245,244,251,203,3,89,1,218,1,223,4,82,2, +39,1,112,1,102,0,228,2,118,6,36,7,80,7,13,7,134,4,145,1,149,0,77,254,251,249,102,250,165,253,124,252, +174,250,169,253,145,4,242,8,197,3,97,253,180,0,228,4,18,1,60,251,164,249,211,250,181,248,209,244,143,248,246,255, +96,255,133,249,171,246,162,247,85,249,132,251,20,0,68,0,212,248,202,249,148,6,0,12,89,6,163,0,121,255,142,1, +42,0,152,252,229,255,58,4,89,3,80,3,87,5,118,7,83,5,216,253,7,0,155,10,106,8,146,0,66,3,36,5, +240,254,191,251,148,255,253,2,234,0,195,252,50,250,171,248,185,249,187,252,177,252,213,251,238,0,212,8,50,8,118,253, +240,245,47,248,218,251,72,254,39,3,20,6,57,3,27,255,37,254,75,255,29,255,2,0,127,4,153,4,121,255,129,255, +54,2,227,1,223,3,45,7,151,6,166,4,153,4,172,5,238,3,127,1,74,6,114,10,207,2,1,250,46,249,39,250, +179,250,114,251,231,248,97,244,180,244,207,250,152,253,38,248,208,242,138,243,93,248,215,0,228,3,95,248,31,243,118,2, +103,9,132,252,5,247,227,253,91,2,180,2,56,1,62,1,218,2,7,1,36,255,127,255,129,0,229,4,48,9,226,9, +110,8,73,4,121,3,158,5,207,1,63,0,4,5,130,5,252,4,166,5,224,0,160,252,81,253,99,254,26,255,96,254, +218,252,38,254,155,255,216,253,167,251,187,253,170,3,119,3,31,248,74,240,12,248,60,2,139,0,197,252,235,2,50,10, +165,7,203,1,231,255,178,251,152,245,129,247,194,250,181,244,139,238,168,240,122,247,8,254,227,253,0,250,246,251,232,254, +143,255,206,3,253,4,178,0,116,1,106,4,147,3,19,1,99,252,50,251,70,254,132,250,251,247,209,1,149,10,3,8, +192,255,131,254,44,10,34,18,145,14,252,10,139,6,150,3,93,8,0,10,214,8,55,10,187,4,83,254,181,0,197,4, +93,8,156,9,11,5,36,4,116,12,42,20,118,17,26,11,253,12,184,12,150,1,117,252,60,0,241,253,197,249,39,252, +63,252,245,245,246,243,118,248,125,249,236,247,108,250,221,251,232,248,90,248,190,252,135,0,235,255,82,253,153,251,61,252, +136,255,67,0,167,253,135,255,204,3,247,2,209,0,80,1,62,2,140,3,31,4,62,0,3,250,167,247,2,249,131,249, +9,249,43,249,35,249,156,249,249,251,102,254,39,255,249,254,207,252,115,249,97,250,233,253,124,254,54,255,97,1,248,1, +213,2,35,4,101,4,250,2,52,253,47,248,116,251,253,1,96,5,107,6,0,7,86,7,242,5,73,3,248,0,227,254, +212,253,81,253,199,252,251,252,175,250,163,246,118,247,117,250,193,248,176,245,138,247,47,252,197,255,159,3,211,4,179,1, +145,2,96,6,113,6,187,6,222,5,220,2,14,5,228,5,197,255,226,252,69,254,255,254,196,0,4,3,72,4,110,4, +58,3,34,1,101,255,149,2,128,7,53,4,22,255,97,1,63,5,86,7,61,7,68,3,183,1,58,5,74,8,247,9, +68,10,218,5,51,253,236,248,212,255,5,8,250,4,161,252,19,249,114,249,80,250,154,251,38,253,137,252,135,250,5,251, +213,251,97,250,211,249,182,250,233,252,12,1,180,2,153,0,29,0,253,3,88,8,181,6,57,0,213,250,45,246,124,242, +16,241,170,238,53,237,15,240,133,244,67,248,169,248,207,247,56,252,230,0,163,255,68,253,168,253,20,1,198,3,204,1, +47,1,114,3,239,1,242,255,159,1,138,3,246,5,169,9,47,11,132,8,155,3,7,2,97,6,138,11,128,12,234,9, +32,6,73,3,4,4,197,6,183,5,169,0,57,254,241,1,24,7,66,6,187,0,140,253,113,252,4,250,173,246,56,244, +193,245,160,250,118,253,53,253,188,251,104,251,113,255,41,4,161,3,219,0,240,255,232,254,216,252,227,251,23,252,18,252, +142,252,143,253,218,252,52,251,15,252,80,254,121,253,153,250,65,251,65,255,239,1,238,2,74,3,204,1,59,0,181,0, +61,0,119,254,223,254,129,255,214,254,255,0,250,4,81,6,37,6,171,6,35,7,202,5,78,3,213,2,182,3,201,3, +205,3,238,3,210,4,79,5,130,2,117,0,129,1,146,0,147,254,103,0,205,4,93,6,5,3,199,0,133,2,220,2, +116,1,73,1,138,1,164,1,173,1,57,2,82,2,25,0,55,254,57,254,111,255,61,1,201,255,193,253,10,0,36,0, +241,252,117,252,152,252,21,253,12,0,169,1,11,0,185,253,125,253,86,254,110,254,31,1,85,4,54,3,198,2,123,3, +39,1,69,0,206,0,73,254,133,252,8,254,5,0,28,1,198,255,134,250,238,244,51,246,187,253,78,1,104,254,53,253, +105,255,41,0,68,0,88,2,91,4,120,4,34,2,227,253,37,251,240,249,48,248,52,248,243,249,88,251,88,252,62,250, +91,248,215,254,32,7,1,7,79,3,8,2,190,0,84,254,149,253,202,254,241,255,55,2,173,5,126,5,199,1,154,0, +94,2,230,2,213,0,59,252,18,248,103,249,162,252,32,253,149,0,99,5,204,2,32,255,188,1,23,5,3,7,229,8, +60,8,189,3,203,252,73,248,241,249,223,252,7,252,44,249,12,247,228,246,27,249,229,251,85,252,11,251,206,252,66,3, +232,8,5,8,183,3,216,2,205,3,61,2,229,255,68,255,186,1,34,6,54,7,82,4,222,1,17,3,152,7,205,8, +23,5,150,4,59,6,39,3,79,255,251,255,65,2,132,1,176,254,162,254,162,0,36,1,11,1,3,255,5,250,105,248, +88,251,124,251,31,249,240,249,63,251,212,249,97,250,77,253,65,253,30,252,90,253,134,252,95,249,74,251,116,0,1,1, +54,255,216,254,196,253,120,252,161,251,232,250,66,251,36,250,55,249,189,252,220,254,43,254,248,255,139,255,92,252,204,254, +91,5,83,9,238,8,211,6,211,5,236,3,115,3,197,8,220,12,173,11,159,9,242,7,198,9,109,13,137,11,42,10, +101,13,95,12,1,9,72,9,105,8,241,4,29,3,150,3,126,3,253,1,127,1,46,255,152,248,31,245,10,247,19,249, +81,250,242,250,35,252,154,254,25,255,185,254,223,255,165,1,208,2,73,255,51,250,186,250,177,250,39,248,164,249,132,250, +135,248,100,248,242,248,131,250,132,253,23,255,37,255,177,253,17,253,200,254,15,254,40,252,172,253,252,255,105,1,112,3, +178,6,221,9,94,9,16,5,114,1,128,2,41,6,106,5,196,0,9,254,164,253,105,253,152,249,147,243,36,243,84,246, +22,249,179,252,116,252,72,249,1,250,139,251,29,251,16,249,135,245,59,246,219,251,103,0,236,1,97,0,208,254,49,1, +19,5,230,5,221,1,15,253,255,253,83,2,166,3,227,2,30,4,39,5,75,2,40,1,97,5,186,6,237,1,18,253, +14,252,234,253,167,254,144,254,106,0,182,0,65,254,96,252,149,251,190,251,172,251,101,252,25,1,37,5,10,5,148,5, +138,7,113,8,41,9,124,10,89,10,76,6,13,1,188,254,247,254,232,0,57,2,49,255,111,250,173,249,208,252,242,254, +171,254,22,254,236,252,56,252,74,252,126,250,123,251,209,0,114,2,250,1,162,3,160,3,188,2,107,2,224,0,29,255, +176,254,121,0,131,0,73,253,219,254,160,1,128,254,31,255,116,3,21,3,177,3,138,5,135,3,112,2,158,2,65,1, +215,1,153,4,129,5,252,2,242,255,161,0,78,4,73,7,67,7,241,4,123,3,11,2,0,255,22,254,91,255,170,254, +151,253,225,255,15,3,124,1,190,253,202,254,192,0,22,255,95,255,45,2,6,3,29,2,156,0,122,1,45,4,36,2, +11,254,117,253,51,253,124,252,69,251,204,248,60,250,209,253,120,253,48,252,205,250,209,249,222,253,213,0,202,253,203,251, +32,250,33,246,125,246,128,249,227,248,95,248,37,250,2,252,94,253,209,251,144,249,218,250,175,250,74,248,64,249,130,250, +172,249,49,249,67,249,75,251,244,252,244,252,44,1,122,5,50,5,67,6,12,5,196,0,165,3,223,8,139,8,84,5, +130,255,249,251,52,255,80,2,172,3,175,6,58,9,114,9,86,6,1,2,227,1,250,3,117,3,97,2,250,2,183,3, +211,4,110,8,224,12,60,14,43,13,192,12,133,11,157,6,209,1,206,1,115,2,237,255,27,254,12,255,104,0,13,0, +86,254,90,254,133,255,94,255,82,0,253,1,199,0,37,255,32,0,184,1,172,1,44,1,179,2,178,3,55,0,171,251, +114,250,51,251,145,251,16,251,201,250,109,251,62,251,236,250,44,254,145,2,77,1,155,251,175,249,158,253,122,0,7,255, +14,255,207,1,20,2,20,1,178,1,68,2,191,2,24,2,237,255,5,1,77,5,166,7,30,7,249,5,246,5,116,5, +224,3,79,4,15,4,241,255,222,252,181,252,236,251,252,249,170,249,62,252,178,253,164,251,219,249,238,250,211,254,17,2, +193,255,190,250,255,247,38,247,157,246,184,245,64,246,97,248,202,248,253,247,184,246,33,245,65,246,53,248,132,249,113,253, +73,1,153,2,212,2,241,0,156,255,255,0,155,1,231,1,245,2,83,2,96,0,244,254,106,255,208,0,172,255,100,253, +136,253,55,255,119,0,146,255,52,254,26,1,31,5,200,4,1,4,79,5,148,5,154,5,162,5,107,3,28,1,247,255, +162,253,12,251,214,250,29,253,197,255,47,1,252,2,114,4,80,2,211,0,119,3,223,3,208,0,180,0,232,2,188,2, +13,1,2,1,73,2,200,2,165,3,84,6,238,8,177,10,17,10,173,4,179,0,42,4,250,8,222,8,20,4,116,253, +68,251,232,254,197,1,141,2,14,5,56,8,170,7,201,1,237,251,253,251,116,253,158,250,87,247,59,246,246,244,157,244, +123,247,155,252,235,255,67,254,234,251,157,252,66,252,102,250,205,250,185,252,156,254,1,0,221,0,3,1,41,255,116,254, +41,0,117,254,240,251,98,254,57,0,52,254,110,252,172,252,149,254,150,255,118,254,200,254,240,0,18,2,36,2,79,2, +198,3,79,6,27,7,33,6,0,6,23,6,131,6,239,9,145,12,156,8,218,1,230,254,66,255,240,254,11,254,1,255, +99,255,62,253,26,251,72,249,76,248,196,247,242,243,193,240,42,244,153,250,136,254,183,253,57,251,172,251,21,253,252,253, +187,254,125,253,116,252,167,253,176,254,62,253,120,250,65,252,149,0,166,255,49,254,153,0,84,3,28,6,27,6,13,3, +234,2,132,4,177,4,168,3,144,3,161,7,160,10,92,8,158,5,156,3,141,3,253,5,59,6,205,4,86,2,62,255, +113,0,38,2,150,0,75,1,163,3,82,4,115,4,50,4,73,4,105,5,44,7,91,7,67,4,220,2,116,3,145,0, +149,254,180,255,17,254,13,253,104,0,8,1,142,253,148,253,243,255,205,253,45,251,170,253,199,0,176,1,45,3,239,5, +246,7,15,8,249,6,210,4,12,3,31,4,130,5,251,4,107,2,58,253,218,249,115,249,231,247,212,247,8,250,57,251, +233,252,242,254,124,255,100,255,17,0,183,1,138,1,83,255,33,253,61,251,231,251,248,251,19,248,112,248,111,254,10,2, +155,1,178,255,151,255,205,255,89,254,86,255,18,0,249,254,97,0,56,255,14,252,63,254,33,1,239,255,15,252,165,249, +75,251,56,250,193,246,53,247,166,246,215,244,164,245,179,245,124,246,110,248,47,247,202,245,7,247,80,248,108,249,235,250, +230,251,167,252,131,253,29,254,129,255,247,0,193,1,147,4,49,6,140,4,160,5,15,6,147,4,38,8,18,9,99,4, +79,4,91,6,17,7,116,6,186,2,224,3,112,8,11,6,236,2,243,3,15,6,138,9,127,9,89,6,180,8,36,12, +174,8,145,3,21,3,34,5,177,5,201,2,173,254,206,254,185,0,169,254,104,251,130,248,163,246,224,248,35,250,108,249, +190,250,105,249,95,248,36,252,198,252,89,251,132,252,44,252,74,251,135,252,46,0,37,4,101,2,151,254,124,254,183,253, +235,252,14,1,127,7,111,9,3,6,147,5,115,9,168,9,21,6,78,3,112,3,166,3,198,254,26,251,233,253,119,255, +135,254,225,255,203,2,225,3,99,0,193,253,130,0,250,0,244,253,27,255,180,3,190,5,82,3,37,0,250,255,9,2, +48,4,135,4,217,3,54,4,225,3,137,2,110,1,189,0,123,1,49,0,36,252,0,252,185,254,193,255,150,254,170,250, +225,249,20,254,130,254,2,253,23,255,173,255,248,252,84,250,123,250,114,253,220,253,18,252,26,252,218,250,123,250,241,254, +179,0,151,252,77,249,246,249,157,252,75,254,10,255,244,254,205,251,194,249,254,251,218,252,20,252,113,253,149,255,126,0, +183,254,38,253,172,255,2,1,46,254,92,252,145,254,204,3,43,6,81,3,194,2,41,5,228,4,147,4,255,6,192,8, +63,7,123,4,194,3,8,4,221,3,221,4,204,6,101,8,6,9,234,8,112,9,3,9,111,6,175,3,79,1,5,1, +149,2,101,0,1,251,73,248,211,249,238,252,210,251,172,246,171,245,135,248,157,248,155,247,13,249,101,250,133,250,102,252, +88,254,202,251,239,247,120,248,197,251,14,253,241,251,102,252,5,254,16,253,0,253,227,255,151,0,173,255,129,0,50,3, +151,8,202,12,81,11,192,8,252,8,231,9,220,9,87,9,106,9,183,8,181,5,83,3,107,3,132,3,164,1,49,254, +221,251,15,252,197,251,111,250,62,251,223,252,169,252,212,252,57,254,91,254,120,253,139,253,153,253,41,251,39,248,139,248, +64,250,237,250,40,252,121,251,193,248,16,249,70,250,24,250,210,251,192,253,124,254,121,255,225,254,205,254,94,1,156,1, +99,255,111,254,10,254,30,255,35,1,114,255,64,253,192,255,1,2,123,1,94,2,183,3,63,3,184,1,89,0,123,2, +229,5,200,4,201,2,195,2,162,2,188,4,153,6,57,3,36,255,35,255,38,2,107,4,111,4,178,4,66,2,139,252, +158,252,185,0,24,1,22,1,233,2,121,4,112,4,193,1,232,0,254,2,25,2,243,255,193,1,22,6,197,7,203,4, +71,3,96,5,200,4,124,2,189,2,252,3,35,4,188,0,168,251,33,251,169,253,9,254,158,252,128,252,106,253,225,251, +162,249,156,249,219,248,185,247,11,248,37,249,127,252,31,254,67,250,251,247,77,251,107,0,36,2,136,254,89,252,178,254, +206,255,104,255,104,0,247,0,157,255,164,255,140,2,213,1,182,252,195,250,6,252,82,254,242,0,206,1,90,3,176,3, +229,0,172,1,206,2,133,255,197,253,25,254,128,0,194,4,247,3,160,255,8,253,185,253,107,2,26,4,218,0,48,255, +123,253,45,253,191,2,104,6,49,3,125,255,175,255,76,1,186,1,250,2,48,5,183,5,174,4,221,1,162,254,107,254, +68,255,141,254,233,253,51,254,184,254,130,255,171,0,186,1,242,2,108,4,80,5,16,5,227,1,254,253,15,255,63,0, +138,253,55,255,142,4,60,5,108,3,63,3,75,2,36,254,181,251,147,254,140,255,234,253,254,254,188,254,210,254,22,3, +53,4,114,2,223,2,217,2,65,3,220,5,110,7,218,5,170,2,213,1,218,2,218,2,109,3,184,3,73,2,166,1, +188,0,242,253,215,251,203,251,193,252,115,253,2,254,168,254,189,254,93,254,194,252,184,249,78,247,4,247,10,249,252,250, +218,251,180,253,78,254,250,252,123,252,114,251,227,251,86,254,16,253,146,251,191,253,57,254,229,251,13,249,168,247,56,248, +8,248,189,248,19,250,177,248,251,248,174,251,169,253,168,0,67,1,158,254,169,254,168,255,114,255,16,0,80,0,25,0, +137,0,236,1,134,4,29,7,38,9,143,8,130,4,171,3,143,7,149,9,13,9,72,8,228,7,145,9,63,11,59,9, +237,5,2,4,141,1,26,255,121,255,5,0,97,253,123,250,116,250,243,251,216,252,226,252,47,253,2,254,97,254,38,254, +114,253,97,252,192,252,54,255,126,0,104,255,69,255,9,0,205,254,184,252,53,251,22,250,161,251,251,255,142,3,34,5, +30,5,51,4,154,3,166,2,244,2,231,5,184,4,198,254,243,254,109,4,94,4,164,255,94,253,243,253,12,255,240,0, +171,2,26,1,141,254,101,255,199,2,19,7,183,7,127,1,27,253,29,254,15,254,171,254,21,1,111,0,27,253,125,248, +181,246,185,252,238,1,117,253,97,244,3,239,204,241,121,248,151,250,103,250,94,253,71,0,71,1,106,5,63,12,44,11, +125,0,217,249,75,253,137,5,233,12,255,9,133,254,76,255,253,14,47,23,30,17,9,9,86,3,210,252,102,246,51,246, +195,255,100,7,230,254,155,242,253,248,45,12,183,19,239,8,206,252,39,250,4,247,90,242,146,249,70,6,148,7,11,0, +30,251,155,252,248,253,118,248,82,242,150,241,175,245,23,255,14,5,145,2,51,4,147,9,29,8,137,6,127,8,68,3, +54,245,22,236,17,243,57,0,217,3,41,2,123,4,68,11,42,18,113,12,115,249,104,240,102,248,6,255,150,254,28,0, +175,2,166,0,4,253,35,249,150,242,128,242,139,1,182,19,187,22,88,7,141,246,197,245,104,248,111,238,36,237,8,5, +31,29,246,31,236,19,45,2,184,242,68,240,245,250,183,6,250,9,43,7,128,4,91,0,175,250,58,251,214,0,68,3, +94,3,175,4,73,8,173,14,38,17,124,9,156,253,18,246,199,243,13,243,42,244,156,249,80,255,57,3,116,8,121,11, +0,10,120,6,5,254,89,243,182,239,4,243,57,248,100,252,60,254,139,254,66,254,254,0,176,6,16,5,92,249,105,237, +35,233,255,239,177,251,82,254,186,248,152,248,136,255,156,3,10,2,51,255,110,252,231,250,211,252,254,255,94,2,93,5, +219,8,172,10,185,9,165,7,53,7,210,9,225,13,135,13,189,6,230,0,102,1,217,5,173,9,26,10,188,8,144,7, +22,6,206,5,94,7,134,7,171,4,248,0,174,255,171,1,44,4,163,3,236,254,219,248,69,246,180,248,150,251,210,251, +67,253,232,254,14,252,149,249,142,249,150,247,25,246,68,245,21,244,101,247,192,251,53,252,5,252,176,250,53,247,107,244, +182,243,251,244,100,246,22,249,176,252,70,251,154,248,17,250,197,250,217,250,216,252,58,255,202,1,95,1,151,254,242,254, +192,0,106,2,190,4,220,5,153,5,179,2,66,253,132,249,100,248,8,250,250,253,61,1,176,3,85,4,204,2,49,3, +56,5,184,4,218,0,42,254,134,1,80,6,120,7,47,7,132,5,224,3,253,3,117,2,112,1,96,2,121,0,190,254, +92,255,4,253,121,250,239,251,41,252,99,250,195,253,51,6,230,11,96,11,205,6,144,2,127,1,98,0,198,253,208,253, +187,255,223,254,1,252,204,251,27,254,168,253,21,252,174,254,153,1,160,1,7,2,192,3,4,6,200,6,44,5,87,6, +127,11,214,13,132,10,96,6,119,5,95,6,12,7,219,6,235,5,27,6,8,6,142,4,34,6,199,8,216,6,183,3, +78,2,74,1,12,2,26,4,114,3,91,0,150,255,145,0,158,255,243,254,17,255,21,254,98,254,100,255,235,255,194,255, +90,251,218,246,159,247,102,249,62,251,63,253,66,253,253,253,177,254,155,252,227,250,161,251,81,251,112,247,80,248,153,1, +98,4,67,253,236,249,23,253,135,255,156,252,128,250,84,255,181,1,153,255,203,255,161,255,217,254,44,251,64,246,222,252, +184,4,255,255,12,251,179,252,48,3,110,8,173,4,197,0,126,251,157,240,109,241,241,248,32,249,158,251,178,254,14,255, +118,3,60,6,57,6,173,6,200,3,84,0,112,1,219,7,234,11,230,6,125,4,110,7,186,3,144,253,220,253,12,3, +244,4,231,254,184,250,126,251,29,252,35,255,144,255,138,253,24,1,46,2,183,0,60,3,28,2,146,255,0,254,51,248, +253,246,92,251,211,252,144,254,238,0,219,3,92,9,53,10,42,6,245,2,151,253,59,247,244,245,211,248,41,253,213,1, +155,3,33,2,91,1,33,1,60,0,56,255,150,249,74,241,8,241,182,247,225,253,177,1,34,2,187,1,250,1,123,255, +155,253,66,0,224,1,113,255,206,253,244,255,16,4,186,7,60,8,52,5,106,3,31,5,31,8,129,10,8,9,6,4, +47,0,114,254,237,254,88,1,240,2,192,3,59,3,62,0,113,253,138,251,12,250,117,249,154,248,114,248,35,250,206,251, +172,251,212,247,194,242,75,243,83,248,247,250,87,251,60,253,141,254,160,252,1,251,182,251,129,252,26,253,141,254,138,1, +177,5,57,9,230,10,91,9,47,6,160,4,25,3,19,2,152,4,203,8,29,12,140,11,184,7,205,7,56,10,202,8, +50,6,235,5,63,7,52,5,58,255,24,255,39,3,218,1,206,255,149,0,58,1,241,1,47,0,249,252,113,252,182,251, +133,251,231,254,137,0,57,253,139,250,125,253,136,1,87,254,13,246,154,241,234,242,28,245,138,245,93,246,135,248,43,250, +169,250,248,250,31,252,182,252,18,252,39,253,213,254,168,254,52,254,124,252,53,251,46,255,119,5,40,10,0,11,130,5, +177,255,71,254,126,252,212,249,179,249,246,250,34,251,84,250,10,251,53,253,104,254,217,255,21,3,24,6,180,7,54,9, +25,11,171,11,187,9,31,6,196,3,46,5,176,6,206,3,139,255,242,253,127,255,45,2,227,2,4,3,192,3,192,2, +163,2,71,5,77,6,160,4,96,2,31,1,243,1,195,2,128,1,233,254,124,252,209,251,227,251,114,251,248,251,64,252, +139,251,240,253,201,2,15,4,98,1,6,255,122,254,73,0,150,4,84,6,169,3,15,4,25,7,80,4,45,0,213,0, +123,254,238,247,245,247,108,254,61,0,147,251,157,250,71,0,185,2,140,0,160,1,88,4,125,4,221,3,108,3,86,3, +253,0,215,250,190,248,163,252,154,253,99,250,2,249,131,252,145,2,241,5,161,5,4,2,156,251,232,248,3,252,88,255, +64,1,149,2,205,4,34,9,183,11,254,10,69,9,203,5,203,2,239,4,185,8,194,6,170,255,221,251,140,253,102,252, +36,248,116,250,132,255,230,252,97,248,37,248,95,248,104,251,124,0,203,255,76,253,125,253,15,253,201,253,98,255,202,255, +133,0,229,253,203,249,235,251,53,0,94,2,198,4,28,8,118,12,250,12,90,7,5,3,246,255,22,250,157,245,170,245, +169,249,149,253,102,252,20,250,228,250,251,251,237,251,148,250,183,247,42,245,93,245,183,249,97,255,205,2,235,3,150,2, +102,0,206,254,83,253,186,254,211,255,32,251,167,249,138,255,157,2,60,2,121,2,156,1,176,1,207,3,110,5,180,5, +195,2,123,254,187,253,186,254,191,254,18,255,197,0,54,3,51,3,176,0,12,0,42,1,68,2,133,3,67,3,211,1, +142,0,159,254,163,253,155,254,215,255,206,1,175,3,75,2,136,255,162,0,249,3,209,3,226,1,248,1,231,2,112,5, +50,9,240,10,53,12,118,13,75,13,35,13,132,11,120,8,171,5,162,0,85,253,172,255,32,1,79,0,245,255,3,255, +80,255,178,255,48,253,211,250,69,248,179,244,203,244,71,247,179,246,192,243,12,242,152,242,210,243,116,245,45,248,51,250, +154,250,76,250,220,249,6,251,47,252,170,248,239,243,247,244,107,249,180,250,55,247,234,243,166,246,102,251,37,251,163,249, +48,251,109,253,184,255,230,1,101,2,9,1,26,255,33,255,113,255,243,254,22,3,148,6,116,0,75,251,92,255,254,2, +91,1,62,0,249,2,225,5,31,6,223,5,80,4,128,2,104,5,64,8,86,6,205,4,151,5,217,6,151,6,172,4, +62,5,220,6,110,6,132,6,184,5,79,4,46,6,15,8,200,7,25,6,117,1,242,252,97,251,132,251,134,253,221,255, +252,1,154,4,81,3,134,255,112,2,76,9,58,9,31,5,193,5,116,8,65,9,95,8,184,4,143,3,44,7,147,5, +199,255,206,255,153,3,92,6,51,6,18,3,217,1,177,0,159,251,125,249,124,252,225,253,102,253,146,254,98,255,210,253, +51,254,251,0,44,0,156,254,8,1,151,1,95,254,168,252,30,254,205,0,80,1,195,0,100,3,194,5,230,2,44,253, +241,249,118,250,184,249,27,248,7,251,234,253,32,253,236,253,236,0,96,4,70,7,211,6,160,4,51,3,138,2,163,2, +110,1,22,0,68,1,122,1,221,254,162,251,180,249,102,250,4,252,123,253,205,253,31,251,45,251,26,255,189,253,209,249, +162,251,250,254,107,254,137,251,11,250,219,249,205,246,74,242,197,242,220,248,247,253,231,253,147,253,26,0,7,2,167,2, +112,1,34,255,203,255,151,0,117,255,134,255,10,0,198,2,141,6,13,4,105,255,107,254,15,253,132,250,7,249,130,249, +188,250,222,250,209,252,62,254,168,250,22,249,253,251,124,253,208,253,93,254,23,255,96,255,89,255,114,3,4,8,47,6, +77,4,12,6,252,5,44,4,183,3,39,4,198,2,173,0,149,2,2,6,102,7,121,9,45,10,219,6,78,4,4,5, +166,6,240,7,190,8,167,7,6,5,72,5,122,7,44,6,208,3,14,3,2,1,201,254,124,253,60,251,221,249,232,249, +210,248,184,247,183,247,55,247,5,247,119,248,9,250,71,250,86,249,76,249,221,251,2,254,139,253,216,252,63,252,184,251, +190,252,189,253,68,254,67,255,115,254,62,252,156,251,0,252,101,252,136,252,230,251,37,252,103,254,132,0,137,1,106,3, +87,6,237,7,236,6,195,4,225,3,92,3,17,1,226,255,69,1,84,1,132,255,86,254,3,255,145,1,253,3,9,6, +17,8,35,8,190,7,105,8,80,8,13,7,238,3,204,1,228,4,152,6,220,1,26,253,204,251,100,252,170,253,163,254, +160,255,75,0,249,0,214,1,237,255,26,253,241,253,90,255,235,253,237,252,66,255,124,0,121,251,115,246,68,248,172,250, +69,249,151,249,178,253,169,1,94,2,44,0,247,254,187,1,183,5,67,6,171,3,137,1,214,0,198,255,108,253,150,250, +220,247,88,246,50,247,43,248,246,247,187,248,105,250,242,252,22,255,73,252,135,248,101,250,146,253,158,254,142,255,152,1, +182,4,254,3,226,255,175,1,70,6,106,5,168,3,94,4,91,5,14,6,248,4,140,4,45,8,45,10,110,6,209,1, +6,1,58,4,39,7,220,5,163,3,149,3,135,2,4,0,246,254,233,254,71,255,182,0,160,1,41,1,252,0,90,1, +243,0,218,0,203,2,234,3,226,1,219,0,187,2,24,3,19,1,137,0,107,2,158,4,251,4,40,2,55,254,233,252, +7,253,151,251,126,250,191,251,178,253,224,254,225,255,151,1,114,2,10,1,238,255,53,0,152,255,73,254,14,254,58,254, +81,253,67,252,205,251,34,250,201,248,119,250,171,252,249,253,207,254,33,255,157,1,33,4,99,2,232,0,88,2,87,3, +159,2,8,0,242,253,240,252,137,249,50,247,71,249,118,251,163,252,168,253,181,254,68,1,198,1,250,253,53,251,34,252, +202,254,102,0,46,255,153,254,83,1,73,3,236,1,214,255,181,255,69,1,106,1,165,0,87,3,201,6,83,7,253,8, +211,9,97,6,10,6,210,8,255,6,207,3,131,3,178,3,45,3,230,2,72,4,210,3,173,254,121,252,57,0,102,3, +23,4,206,2,180,255,70,253,99,253,125,255,35,0,151,255,50,1,6,1,47,254,190,254,208,0,220,0,145,1,93,3, +138,3,223,1,139,1,120,1,45,254,60,252,245,252,124,251,199,249,75,248,139,246,190,248,181,250,78,249,209,249,146,249, +151,246,50,247,136,250,71,251,169,250,200,251,14,253,172,252,212,252,196,253,130,254,166,255,55,255,239,254,201,2,128,6, +112,6,51,5,21,5,213,5,53,5,121,5,0,8,96,6,237,2,111,3,70,2,32,255,210,253,147,251,38,250,192,250, +196,249,18,249,166,249,129,249,4,250,187,251,50,253,149,252,43,250,130,249,208,250,202,251,127,251,24,250,141,250,19,252, +161,251,44,252,226,252,169,252,134,0,33,3,124,255,5,254,160,254,178,252,167,252,189,254,107,0,61,1,125,0,137,1, +190,2,142,0,15,2,136,6,117,5,150,3,147,5,217,6,75,5,50,2,68,1,17,3,230,2,118,2,60,4,255,3, +233,2,147,4,113,6,24,8,74,10,37,10,16,9,178,9,230,8,72,7,154,7,208,5,60,2,179,1,133,1,156,255, +36,254,237,253,230,255,148,1,234,0,225,0,219,0,109,0,31,1,156,0,91,0,229,1,167,2,83,4,190,5,210,3, +226,1,134,1,120,2,119,2,223,254,97,253,156,254,162,254,50,2,29,6,98,3,228,254,77,251,243,248,220,249,84,251, +162,251,110,250,60,250,115,253,40,253,160,250,28,253,175,253,176,250,68,250,201,249,135,249,188,250,91,250,25,250,136,249, +132,246,53,244,91,245,106,249,42,252,121,252,217,253,7,254,83,253,66,255,255,254,164,253,57,1,139,4,194,3,104,2, +146,2,0,4,36,4,191,3,52,5,196,4,135,2,200,2,23,3,223,2,155,5,125,8,211,8,84,9,206,8,211,4, +97,2,235,3,209,3,33,1,230,255,0,0,203,0,226,2,241,3,244,2,180,2,134,3,138,3,195,3,176,4,214,4, +195,4,242,4,202,5,212,7,251,7,218,5,172,4,33,3,53,1,104,1,95,1,164,255,88,254,167,254,20,0,142,0, +10,0,225,255,4,255,204,252,115,249,10,247,201,247,13,248,211,246,38,247,61,246,93,243,144,241,6,241,168,243,105,247, +115,247,222,247,172,250,193,251,84,252,114,253,223,252,61,251,22,249,195,245,19,244,237,246,24,250,51,249,28,248,104,249, +22,252,164,0,180,2,68,0,118,0,76,3,168,2,190,255,247,253,151,254,5,1,182,1,177,255,233,254,121,1,14,3, +37,0,5,253,234,252,59,254,59,1,75,4,31,5,212,6,21,9,124,8,9,8,171,8,191,6,2,5,161,6,225,7, +142,7,134,7,30,6,133,3,203,2,99,3,169,3,12,4,160,4,94,5,103,6,11,7,208,6,130,6,155,6,59,6, +254,5,243,6,84,7,212,6,57,7,130,7,99,6,153,4,60,3,190,2,65,2,255,1,175,2,52,3,234,3,11,5, +62,5,167,5,33,6,146,4,135,2,214,1,94,1,46,255,119,251,95,249,189,248,237,246,160,244,68,242,90,241,30,244, +136,246,27,246,49,246,158,247,108,249,178,250,105,251,45,253,100,253,45,251,14,251,12,251,37,249,214,249,132,250,182,247, +12,247,161,249,189,250,82,250,138,250,208,251,197,252,227,252,31,254,77,255,55,254,95,253,202,253,226,254,2,1,222,0, +58,254,79,253,180,252,202,251,217,252,6,253,207,251,184,252,80,255,251,0,92,0,216,0,205,4,75,6,12,5,30,6, +3,6,34,4,23,4,105,3,241,2,40,5,77,7,77,9,28,11,174,9,24,6,102,4,233,4,64,3,90,255,1,255, +1,1,150,1,158,3,104,6,219,5,88,3,178,1,212,1,193,3,208,5,125,5,230,3,68,5,47,7,124,5,205,4, +140,5,62,2,170,254,223,254,52,255,64,254,28,253,124,252,118,252,4,251,211,248,89,249,241,251,85,253,44,253,54,253, +36,253,240,251,220,250,227,250,18,252,107,254,56,0,81,0,51,0,34,1,76,2,98,2,145,2,226,3,180,3,155,1, +187,0,14,1,74,1,101,2,170,3,68,3,45,2,255,0,119,254,147,252,76,253,97,253,143,251,108,250,104,250,7,251, +186,251,6,252,195,252,255,252,31,252,222,251,19,252,69,252,96,252,12,252,137,253,142,0,163,1,13,1,167,255,206,253, +122,253,24,254,209,253,61,252,46,250,90,250,5,253,42,255,59,255,86,254,61,255,120,0,172,254,230,253,180,255,146,255, +67,0,77,3,159,2,40,255,7,254,147,255,172,2,53,4,13,3,127,3,141,5,18,6,246,6,41,8,86,6,2,4, +160,3,4,2,176,0,169,3,161,6,221,4,22,2,33,4,70,10,135,12,173,7,149,3,220,4,238,5,252,2,40,0, +209,1,27,5,123,5,199,3,29,3,241,5,243,8,127,4,45,252,105,248,142,247,214,248,22,252,120,252,245,252,116,255, +4,254,128,251,136,251,171,249,56,247,184,247,129,249,174,250,142,250,121,250,90,250,245,248,2,250,171,253,82,255,48,0, +123,1,145,1,110,0,218,253,242,252,163,255,4,1,240,0,159,1,139,0,203,255,151,1,229,2,186,3,117,3,248,0, +227,0,119,3,56,3,209,255,112,253,152,255,10,3,217,0,60,253,2,255,138,0,42,254,171,252,66,253,181,254,12,0, +146,255,178,254,48,255,135,0,188,1,174,0,82,254,197,254,61,1,20,2,241,1,4,4,148,6,84,5,176,3,28,4, +150,1,135,255,161,2,41,4,106,3,206,4,26,5,161,3,115,2,215,0,178,0,11,2,194,1,18,1,103,1,52,0, +27,254,90,255,104,1,5,255,85,252,15,253,231,252,124,250,86,248,12,248,191,249,106,251,34,251,232,248,240,248,213,252, +17,253,42,251,97,254,38,0,91,255,19,1,181,255,202,252,60,252,36,250,75,250,201,251,72,249,225,248,78,250,14,250, +87,251,25,251,185,249,156,251,14,253,192,252,122,252,219,253,50,1,75,1,86,0,136,2,168,2,192,1,29,2,217,1, +221,3,206,3,202,254,112,254,45,2,201,2,227,0,190,254,83,255,24,1,141,0,33,1,123,2,190,1,104,1,158,1, +104,1,88,1,143,1,113,2,149,2,175,2,128,4,121,5,122,5,22,5,152,3,44,4,163,5,89,4,176,2,159,2, +86,5,1,9,125,8,49,7,54,8,224,7,26,8,59,9,80,7,11,5,254,3,47,2,32,1,251,0,158,0,98,0, +168,255,165,255,176,1,153,2,205,0,113,255,251,255,30,1,181,1,144,0,110,254,75,254,163,255,233,254,120,252,106,251, +75,251,250,249,165,248,166,248,123,249,150,251,127,253,253,252,6,253,114,255,232,0,8,0,193,254,99,254,185,253,17,252, +11,252,80,253,169,252,123,251,133,251,13,251,159,249,235,248,119,249,134,249,145,249,210,251,41,254,254,254,166,255,53,255, +26,254,116,253,57,253,160,255,113,2,211,1,71,1,165,1,108,0,11,0,159,1,154,3,207,4,211,3,63,2,12,2, +118,2,61,3,60,3,172,1,81,1,45,3,64,4,36,3,26,2,239,2,190,4,213,5,197,5,24,6,105,6,70,4, +165,2,28,4,144,4,166,3,20,3,181,0,241,254,36,0,145,0,114,255,252,253,207,251,206,250,145,251,236,251,210,251, +82,252,162,252,98,252,136,252,15,252,164,250,49,251,175,252,167,252,60,253,163,253,72,252,8,252,246,251,21,251,111,252, +127,253,181,252,120,254,105,0,252,254,32,255,232,1,221,2,76,2,40,2,130,2,154,2,251,0,121,255,198,0,188,2, +128,2,170,255,59,253,37,255,197,1,42,1,70,1,57,3,64,5,93,7,54,7,168,5,111,5,192,4,168,4,10,6, +104,5,205,3,200,3,123,4,80,4,139,1,188,254,241,254,29,255,129,254,63,255,78,0,53,1,231,1,5,2,106,2, +83,2,59,1,234,0,241,1,121,2,16,0,157,252,40,253,70,0,88,0,145,253,54,252,217,252,125,252,69,251,123,251, +160,251,76,250,95,249,33,249,218,248,7,250,44,252,19,252,95,251,182,253,213,255,83,255,243,254,105,254,173,254,145,1, +20,2,36,255,152,253,98,254,88,1,140,3,10,2,142,1,185,2,127,2,21,4,66,6,158,5,234,4,82,4,171,3, +12,4,241,2,88,1,125,0,78,254,173,253,103,254,86,252,151,250,64,250,57,249,26,250,149,250,214,247,185,247,11,251, +113,252,86,252,8,253,36,254,97,254,137,253,44,254,226,0,152,2,152,2,239,1,36,1,15,1,177,0,91,255,19,255, +19,0,246,0,247,1,27,3,174,3,7,3,145,1,80,1,37,2,148,2,18,3,162,2,235,0,78,1,201,3,40,5, +52,5,179,4,205,3,65,2,155,0,163,1,30,4,242,3,216,2,247,2,21,3,114,3,172,3,175,3,218,4,197,4, +50,2,186,0,9,1,25,1,145,0,181,255,54,0,225,2,158,3,246,0,46,0,94,1,11,0,29,255,115,0,57,0, +149,255,213,255,0,0,48,2,149,3,8,1,215,254,235,253,63,253,190,253,176,253,38,254,218,254,89,252,102,251,187,254, +206,255,69,253,55,251,27,251,139,250,120,248,46,249,104,251,50,250,85,249,248,249,125,248,172,247,170,248,197,248,25,248, +144,247,161,248,57,251,4,253,199,253,4,254,252,253,159,253,240,252,172,253,70,254,245,252,25,253,33,255,132,1,122,3, +76,2,104,1,138,3,123,2,177,255,113,0,237,0,212,0,146,2,207,2,133,1,100,1,203,1,164,2,98,3,239,1, +221,255,146,0,89,2,177,1,151,1,75,5,201,6,207,1,200,253,2,0,112,3,74,4,235,3,123,3,134,3,10,3, +207,1,24,3,200,5,25,5,90,3,106,4,220,4,150,2,229,1,188,2,193,0,253,254,6,0,179,255,75,0,101,4, +139,5,203,1,28,253,164,251,217,255,24,3,167,1,181,1,68,2,139,0,208,255,113,255,106,255,11,0,33,254,160,252, +193,253,142,253,77,253,132,254,77,254,45,254,183,0,226,2,175,1,38,0,236,1,139,3,232,0,65,253,166,252,241,253, +241,254,104,255,199,254,27,253,132,252,103,253,59,254,112,254,89,254,118,254,213,254,42,1,135,4,77,1,237,250,17,254, +68,5,17,6,146,4,155,3,140,2,39,3,35,4,42,4,64,3,21,2,136,1,29,0,234,255,103,1,198,255,193,254, +160,0,115,255,219,254,178,1,92,1,110,254,127,253,8,255,5,1,192,0,221,0,99,2,156,1,130,1,25,3,200,1, +109,0,223,0,117,255,55,254,211,254,151,254,19,254,62,254,110,254,29,255,241,254,34,253,196,251,83,250,104,249,176,251, +246,252,175,250,35,250,113,251,97,251,113,250,164,249,24,251,89,253,223,252,154,252,193,252,48,251,150,251,114,252,119,250, +208,249,99,251,222,252,33,254,173,254,179,255,248,0,226,255,190,253,2,253,167,253,83,254,185,254,247,255,198,255,114,254, +138,1,226,4,228,1,136,255,86,2,153,4,72,5,155,6,88,7,114,7,212,6,234,4,17,5,165,6,12,5,230,3, +235,4,101,3,158,2,79,4,189,3,51,3,155,3,192,2,8,3,12,3,72,2,39,3,86,2,52,1,88,3,83,4, +105,2,98,255,254,253,0,1,169,2,8,1,13,2,25,3,223,1,97,1,218,255,203,253,14,253,3,252,179,252,117,255, +62,0,201,254,252,252,151,252,29,254,225,254,66,254,203,254,206,255,55,254,203,251,32,253,42,0,27,0,238,253,90,252, +172,252,43,254,31,254,213,253,111,255,142,0,111,1,87,3,51,3,39,1,252,0,39,2,254,1,3,1,52,1,12,2, +78,1,167,255,195,255,174,0,83,255,231,252,180,252,15,254,209,254,119,254,53,253,190,252,190,253,128,253,216,251,229,251, +133,253,183,254,119,255,219,255,196,255,65,0,217,1,31,3,181,2,9,2,95,2,92,1,254,254,191,254,65,255,75,254, +123,254,138,255,25,255,163,254,12,255,24,0,140,1,167,1,183,1,116,3,138,3,77,1,82,0,250,0,124,1,228,0, +210,255,16,0,2,1,24,1,209,0,220,255,49,254,129,254,252,0,109,2,51,2,248,1,80,2,123,2,238,0,127,254, +205,253,176,253,119,252,138,251,126,250,209,248,245,248,63,251,0,253,198,252,127,252,83,254,237,255,116,255,42,255,51,0, +233,1,9,2,50,255,245,253,104,255,177,254,118,253,94,254,159,254,41,254,82,254,70,255,87,1,78,2,147,1,169,1, +179,2,208,3,188,3,97,2,29,3,127,5,200,5,81,4,245,2,10,3,201,3,196,2,144,2,118,4,104,4,98,3, +239,2,236,0,6,0,97,1,248,1,91,3,132,5,13,5,159,3,230,3,227,4,149,4,50,3,13,3,142,2,37,255, +171,252,167,253,158,254,14,253,82,250,13,249,242,248,128,248,189,248,21,249,213,248,2,250,175,251,248,251,91,251,161,250, +139,251,66,253,99,253,177,253,170,254,35,255,20,0,220,0,106,1,226,1,93,0,48,255,188,0,51,2,22,2,242,0, +79,0,27,1,178,0,190,254,183,253,54,254,217,255,36,0,70,254,115,253,158,253,138,253,218,253,51,254,43,255,181,255, +121,254,243,254,7,1,34,1,81,1,253,2,157,3,27,3,73,3,122,4,134,5,122,5,1,5,143,5,17,6,133,3, +66,0,58,0,175,0,71,0,18,1,29,2,206,2,206,1,199,254,74,254,40,255,196,253,117,253,159,254,178,254,36,254, +234,253,149,255,41,1,160,0,163,1,242,2,234,1,209,0,87,254,150,252,174,255,43,2,162,1,208,0,92,255,1,0, +216,1,133,255,97,253,156,0,236,4,172,5,129,3,82,2,58,3,152,3,111,3,159,3,56,3,106,2,168,1,66,1, +107,1,45,1,142,0,56,0,245,255,189,255,66,255,34,255,133,0,224,1,4,2,82,1,228,254,138,252,161,253,191,255, +113,255,230,253,199,253,225,255,106,0,123,252,253,248,252,248,149,249,113,250,109,251,71,251,129,251,64,252,34,252,221,250, +112,249,58,251,205,254,69,254,203,251,196,252,156,255,51,0,208,253,108,252,38,254,89,255,247,254,237,254,45,255,231,255, +140,0,22,0,207,255,43,0,21,0,186,255,26,0,109,0,138,255,1,0,78,2,5,2,152,255,208,254,231,255,191,1, +10,3,249,3,192,4,156,3,95,2,54,2,41,1,22,1,194,1,56,1,206,1,90,2,57,1,95,0,105,255,140,255, +180,0,1,0,120,0,108,2,40,2,46,2,25,3,81,2,32,0,39,253,250,251,22,253,84,253,161,253,237,253,165,252, +178,252,109,254,198,254,77,253,76,252,189,253,184,254,124,253,143,253,32,254,43,253,80,253,150,254,165,254,37,253,204,251, +181,252,169,254,167,255,182,255,133,255,228,0,235,2,214,2,42,2,153,2,19,3,48,2,45,0,112,0,19,3,178,4, +94,5,220,4,11,4,53,5,73,4,232,0,151,1,153,4,68,4,18,1,202,254,155,255,103,0,70,255,43,255,152,255, +83,255,32,255,45,254,91,254,167,0,100,1,226,0,99,1,153,1,84,1,240,1,175,3,239,4,121,4,168,4,79,5, +99,3,1,2,241,3,4,5,213,3,18,3,166,3,100,5,130,5,222,1,41,255,42,0,33,1,149,1,237,2,213,2, +163,1,248,1,161,1,165,254,224,252,127,254,176,255,68,254,222,252,146,253,24,255,104,254,133,251,141,250,60,252,75,253, +31,253,243,252,129,253,92,254,125,253,214,251,112,252,163,253,140,252,22,251,60,251,38,251,249,250,246,252,7,254,11,251, +1,248,75,248,105,250,244,251,20,252,140,252,132,253,42,253,238,252,200,253,78,254,209,254,242,255,95,1,69,2,9,2, +97,1,230,0,153,1,189,2,155,1,57,1,198,3,126,4,29,4,192,5,189,6,116,6,12,5,116,2,59,2,17,4, +161,4,108,4,207,3,93,2,154,1,110,2,123,2,233,255,172,254,116,0,35,0,7,254,92,254,245,254,38,254,50,255, +6,2,77,2,240,255,83,255,141,0,160,0,184,255,54,255,209,255,169,0,50,0,18,0,14,1,246,0,3,0,230,254, +167,253,45,254,48,0,145,0,60,255,25,255,6,0,208,254,91,252,40,252,137,253,102,254,236,253,10,252,126,251,110,253, +221,253,48,252,200,252,237,254,10,255,247,254,24,0,215,255,26,254,251,252,127,253,135,254,190,253,213,252,26,254,126,255, +138,0,252,1,155,2,173,1,209,254,106,253,48,1,253,4,220,4,82,4,107,4,11,5,32,7,86,7,157,3,243,0, +65,2,157,2,95,0,209,255,33,0,8,255,168,254,43,255,118,255,168,255,170,255,228,255,216,255,220,255,104,0,122,255, +232,254,212,0,33,2,138,2,159,2,28,1,188,255,219,254,91,254,114,255,132,255,94,253,152,251,151,251,78,253,142,254, +96,254,194,254,41,255,141,253,61,250,153,248,90,250,128,251,157,251,165,253,25,255,208,255,165,1,187,1,175,0,212,0, +27,0,82,254,69,254,99,0,6,1,170,254,138,253,206,254,9,0,63,1,48,1,205,254,210,253,13,1,204,3,135,0, +162,252,69,254,159,0,134,1,192,3,157,4,34,2,114,255,150,255,93,1,51,2,22,4,56,6,60,5,196,4,218,4, +246,1,122,0,242,1,90,2,183,0,43,254,93,254,176,1,66,3,46,3,97,3,88,2,37,0,14,255,196,0,244,2, +182,2,49,2,114,2,245,1,234,0,241,255,156,0,45,2,144,1,140,0,35,1,11,2,102,3,61,4,81,3,79,2, +183,1,58,1,203,1,175,2,78,2,42,1,185,255,239,253,85,253,51,253,127,251,209,250,141,252,251,253,59,254,174,253, +16,254,202,255,70,255,180,253,84,254,41,255,115,255,31,255,217,253,167,253,214,253,119,253,197,252,248,250,217,250,137,252, +41,252,50,251,191,250,192,250,130,252,52,252,102,249,130,249,29,252,132,254,20,255,206,252,174,251,9,254,57,0,206,0, +165,1,209,1,238,255,208,255,177,2,84,3,151,2,42,4,175,4,170,3,49,5,192,7,131,7,120,5,163,4,239,4, +139,5,96,6,96,5,105,3,157,3,216,3,76,2,189,0,107,255,251,253,36,252,78,250,128,249,75,249,212,249,57,250, +70,249,112,249,187,250,112,251,29,252,62,251,60,250,54,252,106,254,251,255,244,0,61,255,229,254,116,1,208,1,219,0, +122,1,130,2,56,3,163,3,124,4,13,5,205,3,206,2,31,2,169,0,132,1,217,2,124,1,189,1,64,3,222,2, +91,4,143,6,69,5,41,3,28,1,146,255,235,1,244,4,84,4,34,2,183,0,53,0,146,0,145,2,80,3,185,254, +211,251,127,255,116,0,222,253,238,254,119,0,107,255,166,254,81,255,192,0,209,0,199,255,35,0,150,0,65,255,197,253, +150,254,215,255,50,254,72,253,29,255,182,255,13,0,137,0,244,254,19,254,183,253,76,252,235,252,167,254,5,254,100,251, +226,249,190,251,34,254,245,254,73,255,11,255,243,255,180,0,122,253,156,250,92,251,118,252,158,253,31,255,189,255,200,255, +37,0,245,0,190,0,251,255,24,0,198,255,149,255,115,0,194,1,191,2,142,0,136,254,152,1,184,3,169,3,54,5, +1,4,132,0,42,255,37,0,213,3,94,4,59,255,39,254,191,1,207,2,36,2,17,2,59,2,62,1,191,254,172,253, +100,254,187,254,215,254,117,255,169,0,174,1,245,1,43,1,134,254,203,252,59,254,37,255,253,253,115,253,189,254,98,1, +100,3,140,3,221,2,252,0,105,253,236,250,88,252,106,255,33,0,131,255,169,255,51,255,105,253,118,251,2,251,81,252, +139,252,61,251,32,251,211,251,126,252,254,253,74,255,102,255,92,254,21,253,149,254,63,1,189,0,166,0,76,2,16,1, +202,0,214,2,196,0,210,254,110,1,99,3,70,4,179,4,79,4,22,5,224,3,23,1,19,1,77,1,90,1,5,1, +144,254,236,254,47,1,33,1,241,0,25,255,14,254,143,1,111,2,30,1,82,2,113,2,145,2,75,2,16,255,136,254, +11,1,51,3,194,3,240,254,146,251,3,1,105,5,79,4,164,3,36,3,101,2,27,3,208,3,72,3,219,1,243,0, +225,0,236,255,50,255,109,0,87,1,156,0,10,0,99,0,250,0,49,1,127,0,24,255,186,253,239,252,164,252,124,252, +116,253,24,255,251,253,242,251,160,253,9,255,139,252,168,251,13,254,162,254,182,253,92,254,131,254,166,253,8,254,3,254, +236,253,198,255,83,0,134,255,215,255,218,255,18,1,195,2,58,1,168,0,28,2,112,1,136,1,133,3,37,4,242,3, +12,4,112,4,121,4,194,3,26,2,139,254,176,253,34,2,219,3,144,1,169,1,65,3,78,3,164,1,222,255,136,255, +111,254,34,252,246,250,200,251,159,254,41,0,249,254,156,254,117,255,196,0,143,0,183,252,27,251,112,253,82,254,178,254, +25,255,38,255,174,0,183,255,148,252,102,252,109,252,170,252,126,255,238,255,135,253,206,252,15,253,165,252,9,252,224,251, +60,253,83,0,173,2,131,1,157,254,186,253,51,254,114,253,126,252,62,254,62,1,31,2,114,2,61,3,214,2,173,2, +27,2,189,255,148,255,248,0,33,0,178,255,75,0,119,0,86,2,8,4,76,2,216,255,136,255,218,0,69,1,162,255, +208,254,53,255,226,254,71,255,169,255,157,254,22,255,123,0,134,0,179,0,56,0,116,255,199,1,193,4,233,3,61,0, +126,254,43,1,144,3,140,2,126,1,111,0,164,254,221,254,35,0,45,0,33,0,21,1,204,1,191,0,72,255,237,253, +162,251,135,251,6,254,122,254,99,253,165,253,36,255,227,0,117,2,156,4,99,5,94,3,234,1,9,0,178,253,160,255, +25,1,148,254,81,254,51,255,25,254,109,254,246,255,150,0,79,255,218,251,235,250,219,254,48,2,65,1,93,255,66,255, +51,254,14,252,172,252,168,254,244,255,150,1,64,1,215,254,118,254,176,255,12,0,197,255,197,255,214,0,63,2,243,2, +36,4,114,5,251,4,181,4,22,6,166,6,89,6,147,5,144,2,247,255,185,255,24,255,23,255,3,0,101,255,170,255, +50,0,4,254,190,253,230,255,14,255,211,252,144,251,90,250,71,251,242,253,7,255,98,255,145,254,67,250,222,247,251,251, +86,0,198,0,123,255,28,252,44,249,237,250,148,253,190,253,35,253,140,251,130,250,126,252,98,254,64,254,104,254,101,255, +163,0,75,1,172,0,119,0,154,0,238,255,197,0,22,2,52,1,102,1,168,2,242,1,186,1,74,2,31,3,146,5, +21,5,161,2,190,4,248,5,6,3,252,1,211,1,26,1,107,1,135,0,160,0,21,3,142,2,90,0,62,0,250,255, +194,255,120,1,226,2,240,1,217,0,164,1,119,1,103,0,104,2,74,3,230,255,121,255,8,2,29,1,243,255,67,1, +16,1,148,0,85,2,53,3,100,2,30,2,253,1,199,0,131,253,62,250,0,253,77,3,235,3,80,1,223,1,72,3, +102,4,156,4,180,1,77,0,223,1,47,1,153,255,236,254,189,253,8,255,224,1,97,1,102,255,36,255,98,0,50,2, +54,2,247,254,76,251,83,251,183,253,19,254,130,253,137,253,170,252,58,253,220,254,35,253,118,250,183,249,148,249,35,251, +13,254,34,255,216,253,68,252,87,252,235,252,204,252,69,253,67,253,189,252,118,254,236,0,149,1,152,0,195,254,64,254, +164,254,224,253,140,253,48,254,93,255,244,1,169,3,118,3,231,3,69,4,32,3,233,1,56,1,89,0,110,255,16,255, +244,254,77,255,115,0,100,0,108,255,133,0,166,1,169,0,87,0,48,1,200,1,110,2,226,2,218,2,69,2,131,1, +246,1,175,2,124,2,133,2,83,2,92,1,18,1,18,1,153,0,101,0,75,0,84,0,58,1,45,2,48,2,78,1, +83,255,121,253,119,254,231,0,226,0,39,255,192,253,71,252,202,251,249,252,229,253,196,253,92,253,148,253,88,254,145,254, +146,254,59,254,160,252,127,251,130,251,253,251,76,254,128,0,116,255,188,253,67,254,113,0,198,2,84,4,174,5,65,6, +10,5,179,3,30,2,47,0,102,1,98,4,103,4,94,3,59,4,5,5,208,3,38,2,32,3,160,5,229,4,108,1, +181,254,254,252,218,253,10,2,26,4,146,1,131,255,63,0,81,255,7,251,201,249,7,254,53,1,251,1,235,2,146,1, +255,254,57,254,154,253,91,253,35,253,140,251,26,251,20,251,138,250,223,251,124,252,143,251,143,251,72,251,201,252,192,255, +38,255,200,254,245,0,5,1,25,0,140,254,107,251,2,251,46,253,98,255,143,1,58,1,236,254,166,253,227,252,1,254, +183,0,233,254,28,249,48,247,191,249,167,251,157,252,22,253,232,251,66,251,219,250,109,249,252,251,174,1,144,3,56,2, +34,255,191,251,175,253,96,2,13,4,170,4,166,4,252,3,103,5,18,7,100,7,120,7,42,7,254,7,118,8,122,5, +239,3,188,5,38,5,76,3,19,4,103,5,191,5,92,5,41,4,237,2,26,2,204,1,126,1,232,0,241,1,171,3, +183,2,225,0,24,1,249,1,112,2,213,2,205,2,162,2,113,2,56,1,119,0,31,2,141,2,213,255,220,254,151,255, +243,253,228,252,120,254,91,254,204,251,129,250,54,251,114,251,58,251,170,252,224,253,252,252,204,252,118,253,193,252,138,251, +110,250,196,249,221,250,68,253,135,255,164,255,90,253,162,252,9,254,28,254,197,253,236,253,252,252,201,252,12,254,50,255, +36,1,43,2,108,0,133,0,113,3,79,4,34,3,116,2,179,1,171,255,60,253,139,252,237,252,246,252,238,253,244,254, +138,254,196,253,140,252,126,252,149,254,162,254,205,252,86,252,16,252,178,252,4,255,130,0,19,2,30,4,6,4,102,3, +119,4,27,5,38,4,226,2,161,1,202,0,75,1,117,1,82,0,156,0,113,2,101,3,141,3,117,3,30,3,55,2, +114,0,230,255,35,1,230,1,120,2,95,3,6,3,186,1,109,1,30,2,160,1,238,255,169,255,129,0,111,0,161,255, +223,254,33,255,141,0,23,1,234,255,15,255,14,0,48,1,253,0,40,1,159,1,32,1,23,1,181,0,67,254,214,252, +254,254,197,1,74,1,229,254,26,254,123,254,150,255,251,0,249,255,44,255,177,1,80,3,181,2,167,2,51,3,223,3, +244,3,112,3,217,2,159,0,80,254,86,254,141,254,137,254,34,255,92,255,147,255,132,255,116,255,81,1,61,3,164,2, +88,0,25,254,106,253,82,253,212,252,187,253,42,255,81,255,252,254,178,253,6,252,198,251,15,252,221,252,37,254,59,254, +160,254,0,0,224,255,242,254,87,255,174,0,207,0,224,254,144,254,19,1,73,2,102,2,7,2,211,254,120,252,135,253, +115,254,166,255,187,0,162,254,243,252,65,254,13,255,83,254,75,253,2,253,64,253,115,251,131,249,249,250,26,252,247,250, +108,251,240,252,80,253,145,253,131,253,130,253,179,254,105,255,57,255,111,255,12,0,190,1,40,3,232,1,160,0,249,0, +7,1,106,1,22,2,123,1,200,0,11,1,191,1,34,2,244,1,130,2,18,3,65,2,102,2,4,3,241,0,86,255, +184,1,194,3,189,1,27,255,24,255,116,0,122,1,76,1,228,0,246,1,83,2,243,0,202,0,111,1,54,1,149,0, +195,255,159,0,147,3,206,5,103,6,88,5,96,4,235,5,135,6,100,4,34,3,19,3,228,2,72,2,74,1,164,1, +154,2,93,2,100,1,232,255,67,0,171,2,103,2,156,0,43,0,237,254,223,253,238,253,2,253,205,251,30,251,38,252, +32,255,241,255,171,255,251,0,2,0,255,254,12,2,236,2,3,0,227,254,146,254,208,252,139,251,44,252,91,254,222,255, +136,255,124,254,76,253,96,253,170,254,87,254,114,253,144,253,194,252,220,251,154,252,31,254,106,255,149,255,229,255,218,0, +243,255,97,255,137,0,25,255,94,252,15,251,226,249,46,251,6,254,24,254,33,254,66,255,209,254,40,254,201,253,157,253, +220,254,244,255,107,0,204,0,213,255,204,254,192,254,176,254,122,255,139,0,219,255,68,254,101,253,190,253,155,254,60,255, +136,0,231,1,196,1,167,1,122,2,237,1,123,255,204,254,219,1,134,4,232,3,215,2,109,2,212,1,239,1,206,1, +91,0,202,254,6,254,71,255,80,1,47,0,2,254,10,255,102,0,156,255,66,255,199,255,85,255,117,254,64,254,228,253, +168,253,83,255,80,1,24,1,189,0,242,1,210,2,121,3,60,5,203,6,3,7,40,6,130,4,218,2,169,1,9,1, +173,1,210,2,9,3,178,2,191,1,183,255,22,254,242,253,34,254,85,253,150,252,153,253,117,254,122,253,78,253,87,254, +135,254,191,254,44,255,188,254,252,253,151,253,188,254,196,0,38,1,23,1,154,0,149,253,96,252,3,255,48,0,40,0, +119,1,32,1,177,255,242,0,69,3,196,3,190,2,18,2,7,4,201,6,155,5,194,2,86,3,255,4,195,4,126,4, +64,5,45,6,189,5,195,3,163,2,125,2,47,2,89,2,57,2,231,1,191,1,2,0,39,255,24,0,128,253,238,249, +47,251,200,252,137,251,167,250,31,250,251,248,228,248,241,249,51,250,185,249,116,250,176,251,209,251,81,252,57,253,28,252, +56,250,159,250,20,252,133,251,205,249,148,249,194,250,200,251,216,251,140,251,220,251,207,251,82,251,131,251,232,250,139,249, +78,249,207,249,176,251,179,254,186,0,121,2,223,2,67,1,51,2,192,4,199,4,20,4,163,3,104,3,30,4,248,3, +154,3,89,4,220,4,24,5,180,3,163,1,109,3,175,5,176,4,82,4,59,4,104,2,68,1,79,1,69,1,45,0, +149,255,62,2,49,4,93,3,125,4,176,5,213,4,115,6,104,8,185,6,162,4,79,3,130,1,110,0,138,0,153,1, +154,3,144,5,170,5,159,3,213,2,166,4,69,5,73,4,156,4,49,5,34,4,33,2,16,1,23,2,194,2,17,1, +159,255,101,255,33,255,74,255,236,254,246,252,129,250,213,247,225,246,250,248,209,249,12,249,27,251,2,253,96,251,182,250, +48,252,109,252,252,252,181,255,85,1,176,0,82,0,238,255,244,254,224,255,240,1,202,1,202,255,223,253,221,253,43,0, +82,1,124,0,207,0,89,1,177,0,4,1,1,1,28,254,197,251,73,253,144,255,91,255,67,254,208,253,6,253,81,252, +39,253,103,254,85,253,125,250,67,250,204,252,237,252,237,250,107,251,191,253,154,254,187,253,99,253,132,254,34,254,214,251, +93,251,191,251,166,251,161,253,38,255,29,254,186,254,35,0,33,0,86,2,86,5,54,5,94,4,132,3,94,1,211,255, +54,255,236,254,177,255,104,1,201,3,159,4,116,2,147,1,52,3,45,3,215,1,179,1,156,2,175,3,235,3,38,4, +119,4,198,2,50,1,228,1,99,2,47,2,192,1,235,0,244,0,139,0,173,255,249,0,137,1,4,0,118,0,177,1, +213,1,238,2,182,3,246,2,110,2,96,2,137,2,0,2,18,0,75,255,22,0,167,255,13,254,136,252,9,252,116,253, +98,254,80,253,156,252,201,251,199,249,139,249,182,251,181,254,48,2,135,3,153,1,243,255,112,0,132,2,59,4,55,2, +57,254,144,253,238,255,120,1,87,1,189,0,152,255,173,254,160,0,12,3,105,1,92,255,163,0,143,1,48,1,54,2, +218,2,85,0,160,253,237,254,180,1,63,2,205,1,136,0,47,255,155,0,138,1,108,255,247,253,112,253,201,252,250,252, +105,252,235,250,218,250,18,253,137,255,9,254,129,250,148,250,79,252,137,253,246,254,93,254,200,253,118,255,222,254,103,252, +159,252,84,254,9,255,79,255,243,255,201,254,186,251,153,252,188,0,190,2,70,5,133,6,167,0,210,251,80,254,1,1, +145,1,48,2,84,1,42,0,117,0,151,0,155,0,88,1,244,1,194,1,187,255,44,252,155,250,204,251,197,252,9,253, +47,253,178,253,224,255,115,0,105,253,87,253,131,0,39,255,18,252,181,253,93,255,111,253,59,253,160,0,242,2,95,2, +9,1,135,0,85,1,229,1,81,1,111,2,100,4,20,3,43,1,230,1,204,2,94,3,95,4,64,4,40,3,136,2, +216,2,254,2,69,1,10,0,13,2,27,4,23,4,226,3,205,2,168,0,125,0,168,1,44,1,111,0,91,1,27,2, +64,1,61,0,124,0,73,1,32,2,4,4,48,5,245,2,47,0,73,255,76,254,35,254,12,0,204,1,226,3,198,6, +52,7,224,4,84,2,95,0,149,255,216,255,114,255,132,254,11,255,39,0,62,255,221,253,156,254,201,255,205,255,101,255, +164,254,8,254,162,254,253,255,197,0,196,0,22,1,234,0,30,255,123,254,248,254,152,253,22,254,250,1,182,2,193,0, +207,0,79,0,229,254,33,255,150,253,44,250,129,250,154,252,134,251,45,250,143,251,31,253,227,252,29,252,55,253,171,255, +125,255,10,253,64,253,61,0,251,1,127,1,40,1,63,2,181,2,150,1,112,1,250,1,39,0,89,253,39,253,238,254, +150,255,132,254,117,253,87,253,238,253,124,254,25,254,161,253,16,254,118,253,100,251,37,251,43,253,236,253,42,253,197,254, +7,2,16,1,170,252,77,252,63,0,149,2,118,2,70,2,167,2,112,3,167,3,50,3,100,3,133,3,29,3,7,3, +31,2,81,1,68,3,72,5,148,4,85,3,214,2,149,2,203,2,84,3,95,3,74,2,252,0,111,0,106,255,190,253, +102,253,44,255,145,1,7,2,44,1,244,1,178,2,65,1,190,0,120,2,46,3,224,0,207,253,145,253,115,255,188,0, +140,1,202,1,170,0,98,255,212,255,117,2,133,4,34,4,195,3,99,3,70,1,254,255,182,0,92,1,237,0,2,255, +239,252,213,252,46,254,11,255,66,254,75,253,141,253,16,253,58,252,202,252,127,252,204,251,225,252,34,253,16,252,227,251, +70,251,5,250,171,250,194,252,43,254,231,254,153,254,106,252,62,251,243,252,33,254,148,254,33,0,225,255,173,254,86,0, +60,1,130,254,152,252,207,253,27,255,137,254,107,254,252,255,162,255,73,252,178,250,174,253,203,1,2,3,27,4,106,7, +211,5,229,253,125,250,198,253,219,255,232,255,110,0,45,0,164,255,28,0,56,0,240,255,138,0,62,1,71,1,105,0, +129,254,210,253,230,254,8,255,36,255,90,0,212,0,39,2,211,3,217,1,63,0,238,2,46,4,108,2,98,2,239,2, +104,1,170,0,0,2,115,2,104,1,112,0,56,0,103,1,37,2,208,0,37,1,98,3,224,2,26,1,5,1,53,1, +107,1,105,1,156,0,101,0,116,0,155,0,94,1,28,0,195,253,36,255,233,1,218,1,150,1,251,1,202,0,122,0, +233,1,203,1,162,1,22,3,30,3,188,1,155,0,186,255,43,0,21,1,120,1,170,2,246,2,34,1,22,255,252,252, +15,252,114,253,198,254,43,0,196,2,81,4,136,3,154,1,144,0,233,0,203,0,228,255,184,254,255,253,119,255,211,0, +165,255,7,255,144,255,67,255,210,254,109,253,236,250,136,250,60,252,54,253,15,253,187,252,230,251,60,250,66,249,253,248, +190,247,154,247,77,250,191,252,207,253,68,254,247,252,148,251,25,252,144,251,209,249,215,250,40,253,239,252,149,251,151,251, +163,252,65,253,6,253,14,254,109,0,135,0,173,254,145,254,144,0,166,2,213,2,119,1,46,1,101,1,41,1,153,2, +248,3,15,2,153,255,202,255,247,1,230,3,155,3,93,2,218,2,137,4,18,6,76,7,176,7,251,6,170,5,112,4, +18,4,201,4,101,5,149,4,167,4,145,7,123,7,206,0,84,251,103,252,24,0,140,2,141,2,43,1,146,0,204,255, +155,254,246,254,152,255,144,254,164,252,67,251,153,251,42,253,120,255,184,2,198,3,54,1,188,255,37,1,170,2,119,3, +152,3,123,2,184,0,248,255,162,0,184,0,247,255,52,0,82,0,188,255,170,0,172,1,56,0,137,254,33,255,229,0, +27,1,60,255,250,253,16,254,187,253,93,253,141,253,195,253,116,254,200,255,218,1,254,3,213,3,113,2,77,2,134,1, +181,255,141,255,84,0,49,0,235,255,139,0,80,1,123,0,181,254,83,254,105,255,171,0,168,0,41,255,64,254,204,253, +247,252,15,254,39,0,74,0,11,0,151,255,73,253,113,252,9,255,42,1,17,1,167,0,253,255,202,254,201,254,35,0, +13,1,144,0,28,255,198,254,28,0,83,0,86,255,85,255,103,255,63,255,209,255,181,255,199,254,99,254,30,254,56,254, +47,255,171,255,154,255,55,0,5,1,99,1,39,2,0,3,114,2,216,0,122,255,179,254,16,255,169,0,233,1,245,1, +199,1,100,1,220,255,86,254,107,254,61,255,194,255,161,255,104,254,114,253,239,253,101,254,188,253,145,252,232,251,12,252, +11,252,17,252,40,253,100,254,186,254,150,254,36,254,86,253,26,253,235,254,237,1,36,3,234,1,249,255,240,254,48,255, +193,254,109,253,42,254,113,0,138,1,131,1,6,1,35,1,182,2,26,4,170,4,30,5,130,4,49,3,54,3,248,3, +101,3,192,1,180,0,135,0,145,0,151,0,133,0,225,0,13,2,185,2,109,2,95,2,65,2,133,1,44,1,19,1, +161,0,6,1,71,2,149,2,198,1,240,0,97,0,116,0,24,1,70,1,18,1,66,1,248,0,91,255,236,253,76,254, +114,255,104,255,147,254,118,254,155,254,32,254,48,254,167,255,156,1,49,3,230,3,186,3,117,3,36,3,51,2,228,0, +199,255,190,254,146,253,43,253,52,254,56,255,123,255,233,255,239,255,40,255,158,254,240,253,200,252,138,252,201,253,147,255, +88,0,100,255,17,254,203,253,101,254,21,255,42,255,105,254,94,253,222,252,139,252,77,251,67,250,133,251,95,254,150,0, +39,1,195,0,187,0,24,1,208,0,190,255,14,255,94,255,112,255,222,254,211,254,63,255,19,0,142,1,212,1,89,0, +154,255,162,0,27,2,176,2,129,2,161,2,80,3,228,3,87,3,179,1,244,0,0,1,142,255,105,253,231,252,17,254, +226,254,158,253,20,252,206,252,43,254,52,254,197,253,200,253,59,254,187,254,42,255,13,0,7,1,229,0,165,255,200,254, +252,254,234,254,57,254,103,254,91,255,193,255,119,255,181,254,113,253,67,252,70,252,105,253,9,254,244,253,191,254,109,255, +33,254,3,253,36,254,58,255,39,255,159,255,37,0,134,255,164,254,16,254,33,254,53,255,180,255,99,254,1,253,156,253, +146,255,138,0,246,255,80,255,2,255,192,254,34,255,22,0,210,0,100,1,220,1,209,1,143,1,116,1,45,1,65,1, +15,2,27,2,62,1,49,1,88,1,101,0,202,255,176,0,214,1,115,2,110,3,189,4,20,5,164,4,46,4,45,3, +57,2,97,2,159,2,228,2,89,4,116,5,159,4,60,3,98,2,36,2,124,2,119,2,87,2,29,3,40,3,157,1, +180,0,228,0,203,0,135,0,220,0,191,1,59,2,226,1,208,1,242,1,233,0,189,255,22,0,140,0,169,255,237,254, +134,255,76,0,133,0,117,0,51,0,24,0,251,255,60,255,18,254,204,252,236,251,11,252,29,252,127,251,148,251,198,252, +192,253,157,253,18,253,124,253,120,254,171,254,119,254,235,254,7,0,61,1,211,1,102,1,142,0,65,0,157,0,229,0, +227,0,55,1,218,1,189,1,157,0,197,255,51,0,155,1,189,2,67,2,190,0,254,255,65,0,252,0,205,1,35,2, +70,2,121,2,254,1,209,0,148,255,211,254,8,255,184,255,221,255,103,255,184,255,50,1,189,0,50,253,250,250,14,252, +173,253,209,254,165,255,152,255,95,255,101,255,26,255,236,254,38,255,13,255,93,254,69,253,75,252,107,252,138,253,121,254, +236,254,115,255,247,255,156,255,138,254,141,254,205,255,85,0,215,255,48,255,104,254,199,253,127,253,111,253,169,253,114,253, +184,252,230,252,15,254,15,255,156,255,44,0,237,0,2,1,42,0,243,255,250,0,226,1,143,1,62,0,35,255,232,254, +249,254,168,254,2,254,207,253,49,254,41,254,16,254,75,255,82,1,137,2,118,2,131,1,41,0,170,254,125,253,84,253, +51,254,78,255,207,255,195,255,81,0,194,1,160,2,66,2,174,1,152,1,67,2,180,3,201,4,198,4,108,4,70,4, +53,4,22,4,35,4,168,4,204,4,44,4,156,3,58,2,209,255,53,255,236,0,97,2,115,2,174,1,248,0,154,0, +43,0,60,0,73,1,71,2,28,2,23,1,223,0,195,1,229,1,22,1,93,0,139,255,77,255,246,255,139,255,221,253, +5,253,70,253,119,253,49,253,173,252,175,252,195,253,247,254,89,255,135,255,179,255,230,254,130,253,218,252,227,252,61,253, +62,254,120,255,253,255,218,255,69,255,83,254,204,253,25,254,204,254,173,255,82,0,32,0,91,255,235,254,45,255,41,255, +51,254,166,253,75,254,217,254,187,254,215,254,192,255,169,0,116,0,212,255,10,0,102,0,213,255,242,254,109,255,197,1, +213,3,198,3,95,2,178,0,20,255,161,253,203,251,55,250,224,250,53,253,78,254,88,253,110,252,121,253,167,255,215,0, +218,0,251,0,66,1,41,1,58,1,191,1,250,1,114,1,148,0,5,0,9,0,154,0,98,1,227,1,54,2,228,2, +221,3,139,4,194,4,149,4,218,3,206,2,39,2,204,1,112,1,165,1,74,2,160,2,210,2,186,2,177,1,87,0, +190,255,229,255,51,0,94,0,158,0,252,0,211,0,177,255,101,254,80,254,29,255,9,255,118,254,75,255,89,0,93,255, +17,254,196,254,36,0,32,1,90,2,33,3,26,3,1,3,125,2,252,1,93,2,29,2,89,0,141,254,102,253,140,252, +90,252,71,253,181,254,98,255,3,255,108,254,89,254,127,254,191,253,114,252,149,252,74,254,222,255,124,0,10,0,236,254, +69,254,153,254,150,255,211,0,87,1,119,0,111,255,102,255,136,255,8,255,97,254,96,254,161,255,158,1,21,3,175,3, +123,3,222,2,181,2,94,2,176,0,233,254,246,254,11,0,1,0,17,255,170,254,102,254,4,254,86,254,176,254,73,254, +19,254,231,254,126,0,166,1,129,1,204,0,152,0,44,1,228,1,142,1,187,0,14,1,130,1,61,0,253,253,81,252, +253,251,68,253,150,254,219,253,34,252,212,251,186,252,166,253,83,254,81,254,146,253,245,252,235,252,84,253,10,254,203,254, +254,254,37,254,232,252,110,252,226,252,219,253,228,254,120,255,168,255,197,255,140,255,148,254,31,253,60,252,176,252,7,254, +107,255,87,0,141,0,151,0,247,0,222,0,8,0,44,0,223,1,61,3,149,3,221,3,193,3,198,2,207,1,58,1, +208,0,4,1,198,1,232,1,214,0,207,255,71,0,135,1,255,1,156,1,227,0,55,0,64,0,217,0,77,1,184,1, +66,2,219,2,102,3,46,3,87,2,251,1,243,1,214,1,10,2,239,1,248,0,19,0,155,255,23,255,146,254,76,254, +183,254,22,0,68,1,98,1,107,1,253,1,231,1,62,0,236,253,125,252,100,252,221,252,38,253,136,253,211,254,143,0, +64,1,187,0,253,255,150,255,198,255,46,0,22,0,77,0,146,1,91,2,139,1,103,0,35,0,127,0,21,1,206,1, +18,2,220,1,78,2,31,3,217,2,233,1,149,1,202,1,10,2,36,2,93,2,10,3,75,3,69,2,68,1,167,1, +100,2,66,2,54,2,5,3,84,3,67,2,217,0,227,255,62,255,218,254,126,254,222,253,187,253,227,254,63,0,52,0, +6,255,77,254,231,254,155,255,194,254,142,253,12,254,44,255,80,255,104,255,238,255,89,255,172,253,31,253,27,254,196,254, +108,254,231,253,196,253,31,254,125,254,44,254,156,253,165,253,63,254,14,255,134,255,19,255,82,254,99,254,9,255,99,255, +86,255,33,255,248,254,29,255,165,255,117,0,31,1,241,0,42,0,36,0,82,1,89,2,24,2,51,1,163,0,122,0, +185,0,100,1,250,1,253,1,143,1,131,1,46,2,0,2,0,0,117,254,66,255,148,0,90,0,24,255,213,253,2,253, +246,252,54,253,36,253,54,253,161,253,206,253,157,253,43,253,138,252,100,252,82,253,198,254,110,255,241,254,157,254,29,255, +138,255,222,255,184,0,57,1,182,0,92,0,12,1,188,1,81,1,161,0,7,1,29,2,225,2,31,3,126,2,183,0, +245,254,142,254,1,255,186,254,126,253,184,252,247,252,28,253,178,252,192,252,244,253,126,255,227,255,140,254,199,252,151,252, +23,254,141,255,82,0,237,0,195,0,71,255,249,253,65,254,130,255,93,0,54,0,168,255,171,255,92,0,35,1,76,1, +162,0,23,0,124,0,220,0,2,0,200,254,45,255,95,1,35,3,228,2,164,1,4,1,15,1,174,0,88,255,75,254, +0,255,158,0,155,1,179,2,127,4,248,4,44,3,3,1,128,255,36,254,147,253,141,254,28,0,251,0,55,1,175,1, +148,2,41,3,26,3,232,2,13,3,181,3,164,4,255,4,32,4,214,2,174,2,199,3,174,4,122,4,132,3,80,2, +30,1,72,0,18,0,65,0,103,0,171,0,115,1,77,2,135,2,159,2,9,3,213,2,174,1,226,0,35,1,181,1, +193,1,243,0,195,255,50,255,99,255,131,255,72,255,21,255,173,254,141,253,51,252,111,251,84,251,181,251,72,252,104,252, +6,252,195,251,217,251,233,251,162,251,37,251,30,251,37,252,168,253,131,254,177,254,227,254,27,255,23,255,6,255,44,255, +153,255,19,0,72,0,66,0,111,0,240,0,28,1,139,0,248,255,47,0,5,1,123,1,205,0,181,255,109,255,139,255, +37,255,170,254,223,254,177,255,123,0,162,0,27,0,108,255,35,255,78,255,128,255,121,255,92,255,69,255,74,255,119,255, +165,255,173,255,151,255,154,255,223,255,18,0,231,255,193,255,254,255,60,0,26,0,236,255,45,0,150,0,184,0,238,0, +108,1,142,1,19,1,163,0,247,0,241,1,36,2,118,0,23,254,2,253,193,253,168,255,141,1,119,2,122,2,88,2, +148,2,14,3,26,3,70,2,220,0,145,255,30,255,140,255,226,255,148,255,82,255,172,255,97,0,38,1,202,1,250,1, +162,1,13,1,95,0,120,255,159,254,149,254,96,255,21,0,82,0,187,0,176,1,122,2,19,2,153,0,93,255,77,255, +217,255,209,255,220,254,151,253,150,252,235,251,141,251,200,251,224,252,111,254,223,255,226,0,9,1,3,0,109,254,102,253, +100,253,250,253,178,254,105,255,214,255,182,255,36,255,70,254,58,253,59,252,172,251,35,252,110,253,51,254,238,253,191,253, +89,254,255,254,11,255,200,254,177,254,3,255,194,255,188,0,194,1,148,2,215,2,143,2,252,1,46,1,115,0,90,0, +237,0,132,1,188,1,4,2,143,2,170,2,250,1,35,1,208,0,248,0,24,1,197,0,66,0,87,0,74,1,51,2, +41,2,144,1,95,1,205,1,78,2,101,2,39,2,224,1,151,1,65,1,255,0,230,0,249,0,90,1,219,1,186,1, +163,0,80,255,168,254,202,254,27,255,37,255,80,255,22,0,247,0,10,1,126,0,119,0,61,1,164,1,252,0,15,0, +225,255,104,0,230,0,18,1,35,1,217,0,16,0,143,255,13,0,9,1,16,1,123,255,113,253,85,252,71,252,194,252, +42,253,34,253,60,253,83,254,9,0,177,0,49,255,133,252,222,250,148,251,39,254,238,0,152,2,20,3,23,3,240,2, +25,2,27,0,146,253,199,251,106,251,37,252,67,253,122,254,178,255,131,0,170,0,153,0,215,0,59,1,90,1,63,1, +44,1,7,1,157,0,46,0,56,0,186,0,39,1,78,1,135,1,222,1,235,1,165,1,142,1,221,1,66,2,115,2, +125,2,152,2,225,2,37,3,220,2,161,1,230,255,193,254,189,254,80,255,193,255,238,255,15,0,108,0,45,1,255,1, +40,2,65,1,172,255,84,254,1,254,175,254,149,255,10,0,32,0,106,0,56,1,37,2,137,2,65,2,143,1,151,0, +144,255,247,254,0,255,36,255,218,254,98,254,86,254,172,254,223,254,209,254,231,254,89,255,214,255,237,255,165,255,101,255, +88,255,105,255,174,255,57,0,181,0,196,0,140,0,94,0,41,0,173,255,242,254,84,254,247,253,141,253,221,252,80,252, +112,252,23,253,180,253,246,253,241,253,0,254,97,254,216,254,1,255,232,254,206,254,148,254,248,253,55,253,217,252,38,253, +11,254,60,255,54,0,146,0,118,0,104,0,134,0,94,0,180,255,253,254,242,254,193,255,221,0,165,1,1,2,29,2, +7,2,193,1,107,1,72,1,98,1,97,1,22,1,220,0,20,1,113,1,92,1,250,0,238,0,64,1,115,1,116,1, +143,1,187,1,149,1,5,1,91,0,243,255,12,0,149,0,27,1,62,1,253,0,139,0,26,0,224,255,249,255,52,0, +61,0,10,0,232,255,26,0,132,0,188,0,81,0,66,255,66,254,42,254,228,254,116,255,78,255,249,254,24,255,117,255, +126,255,64,255,27,255,25,255,67,255,230,255,250,0,213,1,11,2,226,1,164,1,89,1,64,1,147,1,34,2,163,2, +3,3,57,3,38,3,198,2,56,2,130,1,166,0,243,255,208,255,60,0,178,0,167,0,8,0,49,255,136,254,46,254, +246,253,166,253,95,253,113,253,167,253,108,253,216,252,205,252,186,253,227,254,86,255,0,255,129,254,115,254,7,255,1,0, +229,0,67,1,249,0,65,0,130,255,43,255,120,255,24,0,103,0,63,0,3,0,2,0,51,0,82,0,44,0,247,255, +71,0,98,1,185,2,97,3,241,2,170,1,73,0,152,255,205,255,123,0,12,1,50,1,250,0,99,0,50,255,147,253, +84,252,32,252,204,252,153,253,0,254,219,253,63,253,196,252,38,253,59,254,8,255,213,254,228,253,4,253,181,252,4,253, +185,253,74,254,46,254,130,253,74,253,132,254,183,0,53,2,23,2,17,1,99,0,137,0,11,1,44,1,130,0,84,255, +140,254,220,254,231,255,194,0,86,1,111,2,25,4,7,5,117,4,64,3,91,2,124,1,21,0,203,254,192,254,216,255, +196,0,197,0,112,0,153,0,68,1,255,1,145,2,232,2,237,2,200,2,198,2,1,3,73,3,58,3,122,2,52,1, +16,0,145,255,169,255,241,255,26,0,4,0,149,255,201,254,233,253,76,253,5,253,239,252,21,253,178,253,159,254,83,255, +178,255,36,0,179,0,229,0,149,0,81,0,138,0,6,1,73,1,18,1,106,0,171,255,103,255,241,255,251,0,206,1, +253,1,163,1,254,0,51,0,125,255,40,255,71,255,160,255,4,0,83,0,84,0,231,255,70,255,223,254,236,254,54,255, +112,255,151,255,216,255,77,0,209,0,23,1,1,1,179,0,82,0,237,255,186,255,253,255,143,0,223,0,148,0,240,255, +143,255,215,255,147,0,27,1,19,1,223,0,17,1,169,1,37,2,16,2,101,1,141,0,247,255,185,255,178,255,202,255, +43,0,15,1,66,2,33,3,56,3,161,2,206,1,17,1,149,0,127,0,157,0,110,0,220,255,111,255,148,255,250,255, +251,255,105,255,178,254,67,254,25,254,220,253,104,253,4,253,220,252,188,252,114,252,35,252,24,252,78,252,139,252,192,252, +23,253,131,253,173,253,126,253,114,253,238,253,183,254,35,255,178,254,144,253,151,252,139,252,131,253,236,254,36,0,246,0, +120,1,191,1,216,1,226,1,238,1,192,1,242,0,156,255,121,254,52,254,172,254,9,255,169,254,228,253,151,253,6,254, +161,254,214,254,187,254,171,254,174,254,134,254,28,254,140,253,47,253,148,253,208,254,19,0,123,0,53,0,62,0,25,1, +14,2,6,2,33,1,148,0,21,1,42,2,242,2,250,2,100,2,143,1,189,0,7,0,196,255,115,0,4,2,182,3, +228,4,103,5,39,5,3,4,75,2,202,0,52,0,126,0,10,1,115,1,208,1,30,2,2,2,80,1,90,0,124,255, +161,254,167,253,236,252,236,252,118,253,197,253,105,253,230,252,252,252,159,253,43,254,100,254,152,254,245,254,75,255,146,255, +22,0,219,0,116,1,149,1,87,1,228,0,72,0,175,255,132,255,12,0,233,0,89,1,39,1,245,0,59,1,138,1, +40,1,246,255,164,254,0,254,65,254,8,255,187,255,24,0,113,0,24,1,231,1,114,2,126,2,72,2,53,2,80,2, +103,2,101,2,93,2,111,2,147,2,162,2,128,2,63,2,40,2,124,2,3,3,70,3,244,2,3,2,198,0,230,255, +217,255,66,0,79,0,222,255,191,255,150,0,212,1,81,2,198,1,24,1,10,1,67,1,232,0,4,0,163,255,95,0, +138,1,38,2,255,1,134,1,17,1,156,0,63,0,69,0,165,0,229,0,175,0,27,0,82,255,114,254,207,253,201,253, +41,254,71,254,6,254,25,254,18,255,125,0,29,1,49,0,73,254,209,252,221,252,87,254,57,0,155,1,101,2,232,2, +70,3,31,3,222,1,122,255,181,252,157,250,225,249,103,250,124,251,137,252,114,253,77,254,13,255,149,255,221,255,195,255, +28,255,33,254,109,253,107,253,223,253,47,254,18,254,214,253,243,253,104,254,188,254,149,254,27,254,194,253,208,253,20,254, +69,254,137,254,50,255,52,0,24,1,126,1,144,1,198,1,42,2,47,2,81,1,186,255,83,254,242,253,166,254,181,255, +75,0,75,0,79,0,213,0,175,1,50,2,217,1,204,0,180,255,239,254,95,254,250,253,6,254,175,254,159,255,41,0, +245,255,112,255,96,255,21,0,52,1,36,2,148,2,149,2,66,2,131,1,67,0,205,254,215,253,227,253,161,254,22,255, +141,254,101,253,181,252,40,253,87,254,84,255,153,255,123,255,167,255,87,0,22,1,71,1,193,0,240,255,97,255,80,255, +162,255,51,0,0,1,4,2,20,3,228,3,45,4,235,3,96,3,221,2,120,2,7,2,117,1,212,0,28,0,63,255, +104,254,253,253,97,254,135,255,233,0,246,1,102,2,55,2,152,1,215,0,86,0,104,0,253,0,158,1,207,1,147,1, +93,1,109,1,99,1,196,0,179,255,207,254,127,254,171,254,29,255,186,255,95,0,203,0,207,0,110,0,212,255,36,255, +88,254,107,253,127,252,205,251,129,251,167,251,32,252,182,252,81,253,0,254,207,254,143,255,220,255,99,255,87,254,93,253, +244,252,10,253,69,253,140,253,0,254,139,254,218,254,198,254,124,254,87,254,176,254,133,255,104,0,216,0,171,0,50,0, +234,255,254,255,48,0,30,0,166,255,4,255,141,254,112,254,183,254,84,255,48,0,32,1,218,1,24,2,221,1,112,1, +45,1,52,1,96,1,116,1,70,1,226,0,124,0,60,0,65,0,175,0,106,1,255,1,255,1,109,1,223,0,249,0, +190,1,117,2,84,2,89,1,89,0,51,0,9,1,41,2,169,2,35,2,252,0,19,0,15,0,208,0,182,1,59,2, +66,2,5,2,166,1,18,1,80,0,178,255,146,255,213,255,233,255,107,255,161,254,67,254,200,254,233,255,230,0,56,1, +223,0,49,0,153,255,85,255,83,255,102,255,134,255,207,255,92,0,33,1,235,1,122,2,185,2,199,2,184,2,127,2, +30,2,189,1,128,1,101,1,71,1,30,1,29,1,139,1,105,2,72,3,137,3,216,2,120,1,13,0,19,255,138,254, +76,254,100,254,238,254,198,255,124,0,178,0,90,0,172,255,238,254,80,254,206,253,77,253,194,252,80,252,59,252,158,252, +51,253,130,253,94,253,26,253,66,253,19,254,74,255,122,0,97,1,1,2,90,2,78,2,216,1,50,1,195,0,208,0, +43,1,92,1,37,1,174,0,76,0,45,0,52,0,48,0,1,0,170,255,66,255,236,254,202,254,232,254,42,255,94,255, +103,255,95,255,123,255,195,255,246,255,197,255,51,255,159,254,96,254,107,254,82,254,178,253,165,252,205,251,202,251,171,252, +254,253,72,255,83,0,14,1,86,1,9,1,77,0,145,255,70,255,124,255,228,255,45,0,75,0,97,0,117,0,105,0, +59,0,62,0,187,0,129,1,1,2,222,1,76,1,221,0,249,0,134,1,26,2,95,2,89,2,75,2,94,2,124,2, +103,2,242,1,53,1,137,0,56,0,58,0,66,0,33,0,245,255,230,255,230,255,185,255,71,255,212,254,183,254,241,254, +39,255,252,254,119,254,0,254,233,253,29,254,69,254,59,254,48,254,101,254,212,254,54,255,82,255,53,255,26,255,35,255, +63,255,85,255,125,255,230,255,133,0,252,0,238,0,96,0,194,255,127,255,146,255,147,255,48,255,120,254,194,253,93,253, +88,253,158,253,21,254,175,254,85,255,205,255,208,255,74,255,127,254,231,253,211,253,49,254,166,254,241,254,20,255,50,255, +98,255,160,255,222,255,9,0,9,0,210,255,118,255,40,255,18,255,41,255,77,255,122,255,203,255,86,0,249,0,91,1, +55,1,158,0,230,255,110,255,99,255,185,255,62,0,180,0,230,0,196,0,114,0,73,0,156,0,117,1,122,2,18,3, +208,2,220,1,229,0,170,0,90,1,108,2,40,3,80,3,55,3,69,3,105,3,62,3,144,2,161,1,238,0,192,0, +245,0,49,1,45,1,224,0,131,0,109,0,210,0,129,1,249,1,194,1,197,0,83,255,246,253,28,253,228,252,33,253, +138,253,237,253,78,254,205,254,105,255,242,255,34,0,228,255,121,255,60,255,99,255,222,255,96,0,153,0,104,0,245,255, +168,255,213,255,104,0,242,0,19,1,203,0,79,0,195,255,51,255,205,254,219,254,97,255,226,255,196,255,240,254,224,253, +29,253,208,252,205,252,241,252,72,253,230,253,175,254,90,255,165,255,128,255,14,255,127,254,247,253,125,253,28,253,239,252, +13,253,121,253,30,254,204,254,82,255,159,255,195,255,243,255,99,0,25,1,227,1,116,2,160,2,128,2,93,2,122,2, +214,2,48,3,54,3,209,2,58,2,203,1,184,1,227,1,250,1,172,1,225,0,192,255,150,254,181,253,91,253,141,253, +34,254,224,254,154,255,73,0,244,0,145,1,2,2,33,2,231,1,131,1,73,1,130,1,44,2,247,2,120,3,110,3, +245,2,113,2,48,2,55,2,86,2,95,2,85,2,81,2,80,2,30,2,143,1,179,0,217,255,79,255,42,255,70,255, +117,255,183,255,42,0,209,0,137,1,27,2,105,2,128,2,125,2,96,2,27,2,168,1,22,1,124,0,240,255,129,255, +61,255,44,255,73,255,124,255,170,255,195,255,190,255,152,255,91,255,28,255,246,254,252,254,44,255,133,255,10,0,170,0, +45,1,65,1,178,0,168,255,146,254,221,253,170,253,208,253,16,254,68,254,104,254,132,254,142,254,109,254,28,254,186,253, +130,253,169,253,46,254,217,254,97,255,153,255,136,255,91,255,57,255,48,255,58,255,77,255,108,255,166,255,9,0,152,0, +60,1,192,1,248,1,225,1,175,1,157,1,178,1,186,1,129,1,24,1,222,0,33,1,208,1,131,2,204,2,142,2, +247,1,69,1,138,0,189,255,231,254,75,254,57,254,201,254,182,255,109,0,111,0,175,255,160,254,228,253,216,253,76,254, +178,254,144,254,213,253,219,252,26,252,219,251,37,252,205,252,136,253,8,254,21,254,179,253,39,253,200,252,187,252,218,252, +241,252,250,252,20,253,96,253,215,253,84,254,191,254,29,255,117,255,191,255,234,255,236,255,207,255,161,255,85,255,224,254, +79,254,220,253,199,253,38,254,219,254,177,255,136,0,88,1,19,2,152,2,186,2,100,2,182,1,3,1,140,0,85,0, +42,0,222,255,134,255,104,255,178,255,75,0,233,0,82,1,130,1,153,1,188,1,249,1,58,2,88,2,42,2,160,1, +225,0,57,0,233,255,17,0,155,0,63,1,172,1,179,1,115,1,58,1,61,1,106,1,119,1,47,1,170,0,59,0, +42,0,129,0,7,1,117,1,184,1,221,1,245,1,250,1,233,1,229,1,37,2,188,2,111,3,204,3,127,3,156,2, +145,1,215,0,155,0,186,0,248,0,56,1,127,1,217,1,39,2,51,2,225,1,61,1,118,0,188,255,40,255,175,254, +48,254,147,253,232,252,102,252,61,252,119,252,230,252,79,253,143,253,154,253,118,253,50,253,215,252,108,252,0,252,186,251, +206,251,75,252,14,253,206,253,68,254,91,254,63,254,60,254,125,254,240,254,90,255,162,255,217,255,37,0,160,0,68,1, +235,1,114,2,206,2,23,3,106,3,192,3,227,3,159,3,243,2,25,2,107,1,30,1,46,1,97,1,112,1,62,1, +220,0,116,0,39,0,243,255,184,255,89,255,211,254,73,254,236,253,229,253,67,254,236,254,159,255,10,0,254,255,145,255, +18,255,189,254,143,254,99,254,33,254,231,253,232,253,60,254,199,254,77,255,164,255,193,255,169,255,101,255,21,255,225,254, +234,254,47,255,147,255,9,0,148,0,35,1,137,1,171,1,162,1,158,1,170,1,162,1,93,1,234,0,126,0,60,0, +21,0,243,255,218,255,226,255,16,0,72,0,100,0,85,0,45,0,6,0,240,255,246,255,32,0,114,0,220,0,64,1, +118,1,96,1,3,1,129,0,16,0,204,255,164,255,112,255,29,255,192,254,131,254,120,254,134,254,136,254,126,254,148,254, +237,254,118,255,247,255,58,0,55,0,26,0,19,0,55,0,123,0,203,0,31,1,121,1,226,1,89,2,200,2,33,3, +100,3,154,3,210,3,25,4,108,4,177,4,182,4,80,4,142,3,191,2,60,2,32,2,47,2,5,2,97,1,80,0, +27,255,16,254,95,253,3,253,213,252,179,252,148,252,128,252,134,252,155,252,167,252,154,252,120,252,74,252,20,252,209,251, +131,251,56,251,15,251,30,251,96,251,184,251,25,252,143,252,50,253,1,254,219,254,129,255,197,255,168,255,78,255,235,254, +172,254,163,254,197,254,7,255,97,255,204,255,64,0,173,0,3,1,54,1,66,1,51,1,26,1,253,0,217,0,163,0, +97,0,40,0,249,255,200,255,133,255,56,255,8,255,22,255,101,255,215,255,56,0,84,0,23,0,164,255,72,255,74,255, +172,255,56,0,177,0,0,1,55,1,96,1,105,1,79,1,40,1,14,1,244,0,167,0,16,0,89,255,219,254,216,254, +68,255,217,255,95,0,201,0,44,1,152,1,243,1,37,2,49,2,52,2,71,2,105,2,124,2,110,2,68,2,32,2, +45,2,119,2,244,2,137,3,31,4,168,4,18,5,67,5,33,5,154,4,180,3,150,2,119,1,147,0,24,0,17,0, +107,0,251,0,139,1,236,1,4,2,205,1,88,1,192,0,44,0,189,255,140,255,156,255,208,255,249,255,235,255,151,255, +26,255,151,254,32,254,185,253,109,253,95,253,177,253,90,254,33,255,187,255,14,0,65,0,131,0,210,0,9,1,19,1, +255,0,234,0,220,0,195,0,141,0,69,0,10,0,241,255,3,0,55,0,119,0,173,0,202,0,208,0,206,0,200,0, +181,0,144,0,110,0,124,0,220,0,126,1,42,2,152,2,154,2,56,2,161,1,12,1,152,0,61,0,223,255,111,255, +238,254,104,254,232,253,114,253,21,253,223,252,220,252,2,253,51,253,81,253,71,253,21,253,207,252,143,252,108,252,124,252, +201,252,71,253,202,253,34,254,51,254,5,254,192,253,147,253,134,253,134,253,127,253,104,253,77,253,59,253,47,253,33,253, +16,253,8,253,47,253,159,253,89,254,66,255,30,0,172,0,205,0,155,0,89,0,61,0,84,0,143,0,205,0,6,1, +67,1,131,1,186,1,215,1,201,1,142,1,46,1,187,0,87,0,25,0,13,0,48,0,104,0,159,0,200,0,226,0, +238,0,227,0,183,0,109,0,18,0,184,255,102,255,17,255,187,254,125,254,114,254,172,254,24,255,138,255,219,255,250,255, +235,255,196,255,159,255,153,255,207,255,70,0,229,0,124,1,206,1,181,1,60,1,161,0,60,0,79,0,214,0,144,1, +39,2,94,2,36,2,148,1,226,0,84,0,33,0,82,0,194,0,59,1,156,1,228,1,18,2,11,2,183,1,29,1, +104,0,202,255,85,255,248,254,151,254,37,254,180,253,100,253,74,253,102,253,152,253,183,253,176,253,137,253,96,253,80,253, +96,253,136,253,182,253,227,253,21,254,77,254,136,254,199,254,10,255,79,255,150,255,213,255,0,0,8,0,223,255,141,255, +42,255,223,254,209,254,9,255,122,255,17,0,186,0,107,1,25,2,190,2,84,3,214,3,54,4,88,4,30,4,131,3, +176,2,235,1,121,1,119,1,198,1,38,2,94,2,93,2,56,2,10,2,224,1,177,1,108,1,14,1,161,0,60,0, +238,255,192,255,180,255,188,255,208,255,241,255,31,0,86,0,146,0,191,0,204,0,186,0,147,0,110,0,81,0,56,0, +24,0,233,255,171,255,113,255,75,255,62,255,63,255,60,255,44,255,16,255,244,254,242,254,26,255,117,255,255,255,151,0, +20,1,79,1,59,1,239,0,146,0,72,0,43,0,62,0,113,0,173,0,206,0,184,0,108,0,11,0,206,255,217,255, +41,0,152,0,233,0,247,0,193,0,87,0,218,255,109,255,46,255,55,255,141,255,11,0,134,0,209,0,220,0,183,0, +128,0,70,0,11,0,200,255,120,255,27,255,192,254,125,254,89,254,81,254,88,254,98,254,113,254,139,254,180,254,232,254, +21,255,34,255,255,254,173,254,62,254,209,253,135,253,122,253,182,253,49,254,205,254,85,255,157,255,152,255,89,255,18,255, +236,254,233,254,244,254,231,254,175,254,97,254,26,254,248,253,6,254,54,254,127,254,220,254,67,255,174,255,6,0,53,0, +53,0,21,0,241,255,229,255,250,255,45,0,103,0,136,0,130,0,83,0,12,0,209,255,180,255,193,255,246,255,60,0, +131,0,177,0,168,0,97,0,237,255,118,255,55,255,74,255,162,255,22,0,115,0,160,0,166,0,156,0,160,0,188,0, +229,0,14,1,39,1,40,1,37,1,47,1,79,1,119,1,133,1,93,1,249,0,114,0,253,255,193,255,200,255,3,0, +78,0,146,0,207,0,9,1,65,1,103,1,105,1,70,1,8,1,195,0,128,0,58,0,243,255,181,255,150,255,166,255, +218,255,26,0,81,0,113,0,124,0,123,0,120,0,127,0,157,0,220,0,51,1,129,1,164,1,133,1,40,1,178,0, +88,0,67,0,133,0,9,1,152,1,239,1,215,1,80,1,149,0,250,255,194,255,250,255,130,0,37,1,184,1,41,2, +113,2,135,2,101,2,8,2,126,1,226,0,79,0,210,255,111,255,39,255,6,255,26,255,98,255,198,255,31,0,70,0, +47,0,243,255,186,255,163,255,175,255,204,255,230,255,249,255,14,0,51,0,102,0,151,0,192,0,228,0,16,1,70,1, +107,1,84,1,227,0,28,0,53,255,121,254,28,254,34,254,103,254,186,254,8,255,84,255,170,255,17,0,123,0,210,0, +2,1,243,0,144,0,211,255,210,254,202,253,12,253,206,252,18,253,162,253,56,254,161,254,208,254,216,254,212,254,206,254, +199,254,183,254,151,254,113,254,84,254,75,254,93,254,127,254,164,254,206,254,8,255,100,255,219,255,79,0,165,0,207,0, +221,0,243,0,25,1,61,1,68,1,32,1,230,0,184,0,167,0,173,0,174,0,151,0,105,0,49,0,2,0,243,255, +12,0,75,0,158,0,235,0,22,1,16,1,219,0,139,0,49,0,215,255,135,255,72,255,35,255,15,255,245,254,190,254, +102,254,11,254,220,253,248,253,91,254,223,254,78,255,135,255,128,255,66,255,235,254,152,254,114,254,155,254,17,255,180,255, +81,0,183,0,223,0,227,0,229,0,252,0,28,1,55,1,70,1,73,1,78,1,94,1,118,1,149,1,178,1,202,1, +229,1,12,2,78,2,171,2,255,2,33,3,242,2,117,2,221,1,101,1,49,1,67,1,120,1,174,1,208,1,209,1, +174,1,103,1,4,1,168,0,103,0,64,0,33,0,223,255,113,255,240,254,130,254,78,254,92,254,145,254,212,254,18,255, +61,255,88,255,90,255,65,255,17,255,210,254,151,254,115,254,110,254,134,254,169,254,183,254,160,254,95,254,12,254,204,253, +178,253,191,253,220,253,239,253,235,253,204,253,150,253,85,253,18,253,231,252,245,252,70,253,205,253,102,254,227,254,43,255, +56,255,28,255,246,254,218,254,221,254,5,255,65,255,129,255,186,255,233,255,26,0,74,0,112,0,116,0,69,0,245,255, +169,255,123,255,117,255,139,255,175,255,231,255,55,0,155,0,253,0,56,1,58,1,8,1,187,0,113,0,47,0,246,255, +201,255,174,255,178,255,214,255,9,0,54,0,66,0,33,0,224,255,150,255,97,255,94,255,142,255,223,255,45,0,75,0, +41,0,213,255,109,255,23,255,238,254,255,254,72,255,178,255,15,0,49,0,250,255,116,255,214,254,101,254,82,254,154,254, +22,255,154,255,7,0,84,0,130,0,140,0,102,0,22,0,170,255,52,255,202,254,117,254,55,254,23,254,31,254,85,254, +182,254,44,255,159,255,245,255,34,0,52,0,68,0,102,0,161,0,228,0,32,1,82,1,132,1,202,1,33,2,121,2, +205,2,30,3,122,3,223,3,33,4,13,4,137,3,181,2,228,1,105,1,94,1,175,1,36,2,146,2,243,2,79,3, +175,3,16,4,97,4,145,4,141,4,63,4,155,3,170,2,149,1,156,0,253,255,211,255,9,0,108,0,197,0,244,0, +245,0,218,0,180,0,135,0,77,0,253,255,156,255,57,255,236,254,204,254,221,254,22,255,100,255,188,255,31,0,133,0, +222,0,25,1,43,1,28,1,15,1,29,1,70,1,111,1,120,1,85,1,28,1,241,0,240,0,18,1,56,1,70,1, +48,1,245,0,174,0,122,0,112,0,149,0,214,0,19,1,40,1,4,1,181,0,82,0,236,255,147,255,67,255,255,254, +196,254,127,254,33,254,164,253,19,253,152,252,92,252,105,252,182,252,21,253,85,253,90,253,20,253,148,252,3,252,145,251, +122,251,203,251,97,252,5,253,118,253,156,253,148,253,133,253,148,253,201,253,8,254,60,254,81,254,71,254,61,254,73,254, +118,254,196,254,18,255,82,255,129,255,166,255,217,255,25,0,80,0,100,0,61,0,231,255,131,255,48,255,12,255,36,255, +115,255,237,255,111,0,203,0,220,0,150,0,27,0,161,255,76,255,37,255,10,255,210,254,124,254,29,254,225,253,232,253, +47,254,158,254,29,255,146,255,244,255,60,0,97,0,97,0,61,0,2,0,194,255,149,255,139,255,170,255,224,255,20,0, +46,0,35,0,5,0,239,255,247,255,38,0,106,0,166,0,194,0,166,0,84,0,226,255,114,255,49,255,65,255,155,255, +33,0,161,0,246,0,23,1,12,1,243,0,227,0,229,0,3,1,47,1,90,1,126,1,150,1,173,1,206,1,233,1, +237,1,198,1,115,1,32,1,249,0,16,1,95,1,193,1,26,2,99,2,156,2,207,2,250,2,11,3,255,2,216,2, +163,2,105,2,42,2,244,1,211,1,213,1,6,2,80,2,147,2,182,2,163,2,90,2,238,1,120,1,30,1,246,0, +8,1,71,1,137,1,163,1,129,1,35,1,170,0,61,0,255,255,4,0,63,0,139,0,183,0,138,0,250,255,37,255, +79,254,202,253,185,253,19,254,170,254,64,255,177,255,239,255,243,255,196,255,98,255,224,254,86,254,213,253,113,253,38,253, +236,252,205,252,216,252,27,253,147,253,30,254,152,254,231,254,11,255,35,255,74,255,140,255,216,255,19,0,50,0,62,0, +75,0,111,0,168,0,239,0,67,1,162,1,15,2,108,2,132,2,57,2,143,1,192,0,35,0,226,255,252,255,67,0, +128,0,169,0,203,0,252,0,82,1,183,1,21,2,80,2,65,2,216,1,20,1,19,0,30,255,114,254,49,254,87,254, +170,254,244,254,25,255,18,255,246,254,213,254,182,254,160,254,135,254,106,254,73,254,32,254,253,253,233,253,223,253,231,253, +254,253,42,254,117,254,211,254,53,255,134,255,182,255,204,255,221,255,248,255,33,0,67,0,74,0,51,0,9,0,222,255, +193,255,175,255,159,255,133,255,93,255,49,255,24,255,48,255,135,255,24,0,190,0,71,1,136,1,106,1,252,0,98,0, +192,255,60,255,229,254,192,254,196,254,210,254,204,254,166,254,104,254,52,254,45,254,91,254,178,254,13,255,69,255,67,255, +255,254,147,254,34,254,215,253,211,253,15,254,106,254,187,254,226,254,225,254,212,254,212,254,236,254,11,255,27,255,25,255, +8,255,251,254,6,255,47,255,118,255,199,255,14,0,65,0,97,0,134,0,196,0,23,1,104,1,141,1,109,1,27,1, +186,0,121,0,117,0,162,0,236,0,51,1,86,1,73,1,15,1,197,0,151,0,157,0,216,0,26,1,36,1,227,0, +96,0,208,255,113,255,94,255,151,255,9,0,147,0,33,1,151,1,217,1,226,1,186,1,129,1,87,1,74,1,81,1, +87,1,71,1,29,1,225,0,154,0,87,0,35,0,14,0,35,0,92,0,167,0,229,0,248,0,212,0,130,0,30,0, +201,255,154,255,151,255,173,255,193,255,188,255,157,255,119,255,102,255,134,255,212,255,60,0,172,0,23,1,121,1,204,1, +248,1,235,1,156,1,21,1,129,0,5,0,185,255,166,255,181,255,202,255,210,255,185,255,137,255,83,255,52,255,75,255, +152,255,11,0,134,0,217,0,234,0,182,0,86,0,3,0,227,255,4,0,89,0,169,0,200,0,167,0,78,0,227,255, +129,255,54,255,6,255,232,254,226,254,243,254,10,255,35,255,53,255,68,255,107,255,170,255,241,255,34,0,35,0,254,255, +199,255,145,255,97,255,39,255,222,254,161,254,141,254,195,254,53,255,178,255,22,0,68,0,66,0,32,0,228,255,153,255, +75,255,12,255,1,255,41,255,114,255,209,255,62,0,208,0,143,1,78,2,196,2,155,2,187,1,104,0,10,255,7,254, +130,253,89,253,97,253,125,253,174,253,12,254,131,254,242,254,54,255,66,255,57,255,70,255,125,255,222,255,67,0,146,0, +198,0,222,0,235,0,240,0,237,0,236,0,234,0,230,0,219,0,191,0,151,0,107,0,61,0,19,0,231,255,180,255, +129,255,82,255,51,255,37,255,40,255,74,255,145,255,250,255,122,0,239,0,69,1,119,1,137,1,140,1,123,1,76,1, +6,1,169,0,72,0,237,255,147,255,67,255,9,255,250,254,46,255,147,255,10,0,119,0,205,0,24,1,89,1,130,1, +132,1,78,1,238,0,142,0,70,0,29,0,7,0,238,255,217,255,205,255,210,255,235,255,18,0,67,0,129,0,190,0, +232,0,237,0,204,0,159,0,129,0,124,0,127,0,106,0,51,0,239,255,189,255,175,255,188,255,200,255,192,255,167,255, +137,255,112,255,89,255,63,255,41,255,44,255,92,255,196,255,87,0,245,0,123,1,204,1,222,1,188,1,122,1,50,1, +239,0,168,0,90,0,7,0,190,255,154,255,163,255,204,255,248,255,9,0,3,0,246,255,237,255,243,255,252,255,243,255, +205,255,129,255,22,255,164,254,67,254,23,254,36,254,79,254,109,254,86,254,10,254,178,253,122,253,128,253,188,253,17,254, +106,254,187,254,5,255,71,255,121,255,158,255,196,255,253,255,92,0,211,0,73,1,168,1,224,1,247,1,245,1,214,1, +156,1,79,1,8,1,232,0,244,0,27,1,52,1,20,1,185,0,66,0,232,255,221,255,39,0,165,0,28,1,82,1, +54,1,220,0,109,0,23,0,234,255,224,255,226,255,206,255,152,255,74,255,248,254,194,254,184,254,213,254,2,255,40,255, +63,255,83,255,120,255,181,255,0,0,69,0,117,0,142,0,156,0,179,0,222,0,30,1,106,1,175,1,215,1,203,1, +129,1,4,1,122,0,14,0,221,255,237,255,40,0,107,0,157,0,167,0,141,0,93,0,44,0,31,0,73,0,166,0, +35,1,149,1,217,1,228,1,183,1,114,1,53,1,22,1,41,1,89,1,131,1,138,1,79,1,229,0,113,0,20,0, +239,255,1,0,48,0,110,0,157,0,178,0,169,0,129,0,87,0,74,0,101,0,162,0,210,0,193,0,92,0,179,255, +3,255,131,254,70,254,69,254,93,254,111,254,123,254,127,254,135,254,164,254,216,254,35,255,115,255,169,255,165,255,68,255, +140,254,168,253,211,252,83,252,71,252,174,252,106,253,70,254,17,255,175,255,9,0,43,0,46,0,45,0,69,0,111,0, +144,0,128,0,25,0,100,255,140,254,213,253,139,253,202,253,127,254,108,255,58,0,176,0,187,0,111,0,0,0,144,255, +46,255,222,254,150,254,94,254,68,254,81,254,136,254,211,254,30,255,108,255,197,255,60,0,216,0,120,1,246,1,42,2, +251,1,124,1,216,0,71,0,252,255,2,0,73,0,170,0,252,0,40,1,41,1,9,1,220,0,171,0,129,0,96,0, +70,0,51,0,26,0,236,255,168,255,78,255,232,254,139,254,66,254,24,254,9,254,9,254,8,254,244,253,209,253,169,253, +141,253,146,253,187,253,5,254,114,254,249,254,144,255,29,0,117,0,126,0,60,0,219,255,148,255,142,255,199,255,33,0, +111,0,149,0,144,0,106,0,50,0,243,255,182,255,136,255,119,255,138,255,190,255,3,0,64,0,88,0,52,0,211,255, +75,255,197,254,114,254,110,254,177,254,33,255,149,255,233,255,17,0,8,0,216,255,160,255,124,255,140,255,221,255,93,0, +238,0,117,1,227,1,65,2,145,2,202,2,226,2,201,2,134,2,41,2,194,1,97,1,4,1,163,0,66,0,222,255, +130,255,61,255,17,255,8,255,35,255,85,255,157,255,243,255,83,0,193,0,43,1,119,1,146,1,113,1,44,1,233,0, +194,0,192,0,211,0,231,0,250,0,17,1,60,1,121,1,181,1,224,1,239,1,232,1,226,1,237,1,16,2,70,2, +122,2,149,2,127,2,40,2,150,1,222,0,36,0,141,255,54,255,45,255,109,255,225,255,107,0,223,0,13,1,216,0, +64,0,109,255,158,254,18,254,238,253,42,254,163,254,40,255,148,255,212,255,236,255,242,255,252,255,26,0,79,0,147,0, +208,0,243,0,242,0,218,0,183,0,144,0,99,0,29,0,183,255,62,255,207,254,131,254,100,254,93,254,77,254,29,254, +206,253,128,253,83,253,96,253,164,253,0,254,84,254,132,254,143,254,131,254,112,254,103,254,105,254,107,254,111,254,121,254, +146,254,198,254,20,255,112,255,209,255,45,0,138,0,240,0,95,1,201,1,19,2,42,2,12,2,191,1,99,1,18,1, +222,0,220,0,12,1,98,1,206,1,36,2,66,2,24,2,168,1,30,1,174,0,117,0,120,0,149,0,157,0,118,0, +30,0,181,255,105,255,81,255,120,255,193,255,254,255,21,0,246,255,184,255,134,255,132,255,204,255,90,0,7,1,169,1, +17,2,33,2,224,1,99,1,209,0,81,0,244,255,193,255,180,255,195,255,228,255,10,0,44,0,57,0,34,0,233,255, +149,255,56,255,231,254,173,254,141,254,133,254,136,254,134,254,122,254,108,254,110,254,150,254,234,254,88,255,188,255,251,255, +12,0,0,0,239,255,227,255,224,255,231,255,253,255,49,0,130,0,223,0,43,1,73,1,60,1,33,1,22,1,48,1, +108,1,170,1,201,1,176,1,87,1,202,0,42,0,168,255,116,255,158,255,21,0,164,0,10,1,37,1,242,0,137,0, +23,0,186,255,126,255,94,255,74,255,58,255,44,255,32,255,34,255,57,255,96,255,144,255,190,255,233,255,18,0,50,0, +64,0,38,0,212,255,92,255,234,254,175,254,210,254,70,255,222,255,97,0,162,0,165,0,137,0,108,0,100,0,103,0, +97,0,68,0,13,0,201,255,133,255,63,255,245,254,164,254,83,254,20,254,236,253,219,253,210,253,190,253,171,253,171,253, +205,253,24,254,124,254,224,254,51,255,111,255,159,255,207,255,5,0,71,0,144,0,210,0,1,1,10,1,236,0,184,0, +131,0,99,0,85,0,75,0,57,0,25,0,251,255,240,255,242,255,247,255,238,255,212,255,192,255,199,255,245,255,70,0, +161,0,238,0,29,1,30,1,244,0,162,0,52,0,191,255,86,255,10,255,226,254,214,254,219,254,226,254,223,254,211,254, +196,254,192,254,220,254,26,255,115,255,212,255,34,0,65,0,33,0,192,255,47,255,148,254,31,254,249,253,37,254,129,254, +218,254,9,255,20,255,39,255,103,255,222,255,108,0,221,0,17,1,11,1,226,0,177,0,133,0,89,0,42,0,250,255, +212,255,195,255,198,255,218,255,1,0,53,0,114,0,170,0,205,0,215,0,208,0,200,0,203,0,214,0,229,0,242,0, +249,0,6,1,26,1,45,1,57,1,52,1,31,1,7,1,238,0,210,0,173,0,122,0,61,0,1,0,206,255,161,255, +107,255,41,255,226,254,168,254,147,254,167,254,212,254,2,255,31,255,43,255,51,255,64,255,83,255,97,255,97,255,91,255, +96,255,124,255,179,255,245,255,37,0,55,0,47,0,28,0,19,0,40,0,89,0,148,0,196,0,215,0,202,0,175,0, +165,0,194,0,253,0,54,1,76,1,48,1,245,0,185,0,147,0,131,0,127,0,131,0,150,0,197,0,13,1,84,1, +121,1,106,1,51,1,248,0,214,0,205,0,207,0,193,0,151,0,90,0,26,0,234,255,216,255,235,255,38,0,130,0, +241,0,100,1,202,1,29,2,83,2,99,2,79,2,21,2,189,1,96,1,11,1,195,0,136,0,87,0,55,0,44,0, +56,0,83,0,107,0,116,0,119,0,118,0,120,0,114,0,79,0,5,0,158,255,58,255,5,255,21,255,103,255,223,255, +83,0,162,0,184,0,158,0,116,0,78,0,49,0,14,0,201,255,91,255,208,254,71,254,230,253,187,253,199,253,3,254, +104,254,238,254,134,255,16,0,109,0,136,0,99,0,29,0,212,255,160,255,136,255,138,255,172,255,229,255,40,0,92,0, +97,0,48,0,220,255,135,255,83,255,66,255,58,255,35,255,235,254,160,254,93,254,60,254,68,254,101,254,141,254,179,254, +204,254,222,254,235,254,242,254,0,255,24,255,59,255,106,255,149,255,183,255,214,255,253,255,62,0,158,0,13,1,119,1, +192,1,230,1,244,1,248,1,249,1,240,1,206,1,146,1,68,1,252,0,217,0,226,0,13,1,65,1,94,1,90,1, +57,1,15,1,242,0,226,0,212,0,178,0,111,0,26,0,205,255,160,255,154,255,169,255,181,255,173,255,147,255,117,255, +95,255,82,255,71,255,55,255,37,255,25,255,30,255,53,255,85,255,116,255,141,255,157,255,165,255,165,255,152,255,117,255, +55,255,234,254,165,254,126,254,132,254,182,254,255,254,70,255,117,255,134,255,122,255,87,255,42,255,254,254,220,254,201,254, +194,254,183,254,155,254,109,254,68,254,63,254,114,254,218,254,76,255,146,255,144,255,76,255,232,254,145,254,99,254,101,254, +145,254,228,254,90,255,229,255,101,0,179,0,184,0,131,0,61,0,27,0,62,0,159,0,33,1,161,1,7,2,78,2, +117,2,120,2,91,2,32,2,216,1,146,1,84,1,15,1,167,0,11,0,67,255,110,254,184,253,66,253,23,253,47,253, +110,253,182,253,243,253,25,254,51,254,80,254,123,254,186,254,254,254,49,255,68,255,51,255,14,255,233,254,216,254,227,254, +12,255,76,255,152,255,226,255,35,0,90,0,146,0,220,0,58,1,158,1,238,1,13,2,250,1,200,1,148,1,123,1, +122,1,117,1,81,1,4,1,162,0,86,0,70,0,132,0,2,1,156,1,45,2,155,2,221,2,245,2,235,2,205,2, +163,2,127,2,115,2,129,2,165,2,200,2,201,2,147,2,38,2,152,1,14,1,172,0,130,0,141,0,186,0,242,0, +27,1,37,1,11,1,208,0,133,0,65,0,20,0,4,0,2,0,240,255,176,255,43,255,99,254,114,253,131,252,196,251, +89,251,78,251,152,251,22,252,170,252,62,253,193,253,50,254,142,254,213,254,11,255,58,255,110,255,172,255,240,255,49,0, +94,0,115,0,130,0,154,0,198,0,7,1,76,1,140,1,195,1,242,1,16,2,10,2,202,1,76,1,167,0,15,0, +182,255,172,255,223,255,36,0,85,0,101,0,99,0,106,0,130,0,162,0,183,0,169,0,112,0,12,0,127,255,213,254, +35,254,133,253,32,253,12,253,76,253,203,253,102,254,2,255,142,255,253,255,74,0,109,0,106,0,76,0,41,0,19,0, +10,0,0,0,237,255,207,255,173,255,147,255,123,255,91,255,41,255,237,254,192,254,183,254,215,254,13,255,65,255,102,255, +128,255,155,255,193,255,234,255,13,0,30,0,32,0,29,0,23,0,5,0,223,255,161,255,86,255,18,255,226,254,202,254, +199,254,209,254,235,254,24,255,91,255,179,255,30,0,145,0,0,1,85,1,128,1,116,1,57,1,237,0,176,0,156,0, +184,0,245,0,69,1,151,1,221,1,19,2,56,2,79,2,92,2,95,2,89,2,61,2,6,2,189,1,120,1,85,1, +101,1,161,1,235,1,29,2,36,2,2,2,198,1,133,1,72,1,9,1,200,0,126,0,43,0,207,255,107,255,8,255, +178,254,122,254,112,254,150,254,217,254,30,255,74,255,83,255,65,255,33,255,3,255,242,254,241,254,1,255,31,255,79,255, +140,255,200,255,248,255,11,0,253,255,219,255,178,255,141,255,112,255,84,255,53,255,26,255,15,255,35,255,85,255,156,255, +232,255,37,0,80,0,114,0,154,0,208,0,8,1,43,1,35,1,224,0,108,0,229,255,110,255,34,255,10,255,32,255, +81,255,137,255,189,255,232,255,6,0,26,0,30,0,16,0,239,255,192,255,141,255,96,255,70,255,71,255,95,255,132,255, +167,255,177,255,156,255,105,255,32,255,216,254,158,254,130,254,139,254,181,254,246,254,62,255,124,255,167,255,193,255,216,255, +248,255,32,0,73,0,102,0,112,0,107,0,96,0,91,0,96,0,106,0,120,0,136,0,156,0,183,0,212,0,233,0, +238,0,223,0,192,0,157,0,129,0,117,0,123,0,147,0,177,0,199,0,206,0,194,0,167,0,139,0,121,0,117,0, +119,0,114,0,96,0,63,0,23,0,246,255,225,255,218,255,233,255,18,0,84,0,163,0,235,0,29,1,45,1,30,1, +0,1,216,0,163,0,85,0,233,255,112,255,4,255,197,254,188,254,214,254,252,254,27,255,52,255,85,255,129,255,172,255, +196,255,182,255,133,255,73,255,24,255,245,254,213,254,170,254,116,254,64,254,35,254,41,254,74,254,127,254,183,254,229,254, +6,255,14,255,242,254,176,254,82,254,240,253,164,253,127,253,136,253,182,253,255,253,84,254,159,254,209,254,222,254,205,254, +183,254,191,254,249,254,100,255,224,255,75,0,136,0,145,0,122,0,83,0,46,0,21,0,17,0,43,0,105,0,197,0, +47,1,133,1,173,1,154,1,81,1,236,0,140,0,73,0,43,0,44,0,63,0,84,0,96,0,96,0,83,0,63,0, +49,0,51,0,77,0,123,0,167,0,183,0,150,0,65,0,210,255,113,255,65,255,80,255,140,255,216,255,24,0,63,0, +85,0,98,0,109,0,119,0,128,0,142,0,162,0,188,0,210,0,203,0,160,0,97,0,42,0,27,0,66,0,144,0, +231,0,43,1,83,1,103,1,114,1,126,1,136,1,134,1,124,1,117,1,126,1,154,1,183,1,194,1,168,1,116,1, +68,1,52,1,83,1,151,1,217,1,247,1,222,1,153,1,70,1,254,0,209,0,190,0,181,0,173,0,168,0,172,0, +191,0,222,0,3,1,36,1,58,1,72,1,82,1,92,1,108,1,132,1,164,1,194,1,206,1,189,1,138,1,61,1, +241,0,186,0,163,0,165,0,169,0,150,0,95,0,10,0,178,255,114,255,91,255,117,255,177,255,246,255,44,0,62,0, +38,0,234,255,158,255,89,255,33,255,249,254,218,254,182,254,139,254,93,254,53,254,26,254,13,254,17,254,42,254,85,254, +142,254,193,254,219,254,205,254,160,254,112,254,88,254,101,254,142,254,180,254,191,254,169,254,121,254,71,254,35,254,17,254, +20,254,46,254,94,254,164,254,243,254,49,255,75,255,60,255,16,255,222,254,186,254,180,254,203,254,255,254,74,255,161,255, +242,255,48,0,83,0,100,0,116,0,156,0,222,0,40,1,101,1,134,1,138,1,132,1,134,1,149,1,171,1,190,1, +205,1,215,1,225,1,231,1,228,1,215,1,193,1,164,1,123,1,51,1,191,0,37,0,128,255,251,254,182,254,177,254, +215,254,6,255,42,255,68,255,86,255,93,255,83,255,47,255,248,254,191,254,147,254,120,254,94,254,57,254,12,254,225,253, +202,253,209,253,241,253,32,254,82,254,130,254,174,254,200,254,198,254,163,254,110,254,71,254,73,254,125,254,213,254,55,255, +146,255,222,255,29,0,81,0,112,0,116,0,99,0,75,0,65,0,80,0,112,0,145,0,168,0,178,0,189,0,210,0, +242,0,12,1,15,1,248,0,212,0,186,0,187,0,208,0,234,0,242,0,221,0,186,0,160,0,165,0,204,0,253,0, +22,1,0,1,185,0,93,0,15,0,241,255,16,0,94,0,195,0,36,1,101,1,114,1,68,1,222,0,95,0,242,255, +194,255,226,255,60,0,151,0,180,0,117,0,239,255,86,255,224,254,169,254,163,254,169,254,152,254,101,254,37,254,240,253, +217,253,224,253,249,253,30,254,77,254,139,254,216,254,42,255,116,255,167,255,190,255,185,255,155,255,108,255,55,255,7,255, +235,254,234,254,6,255,59,255,117,255,164,255,189,255,187,255,170,255,154,255,153,255,177,255,221,255,11,0,43,0,44,0, +13,0,221,255,176,255,152,255,151,255,170,255,191,255,200,255,189,255,166,255,146,255,154,255,207,255,51,0,186,0,68,1, +178,1,244,1,9,2,0,2,237,1,224,1,223,1,239,1,19,2,74,2,138,2,194,2,215,2,186,2,111,2,19,2, +207,1,189,1,223,1,27,2,68,2,48,2,215,1,77,1,193,0,99,0,74,0,112,0,178,0,226,0,228,0,173,0, +78,0,223,255,117,255,30,255,221,254,179,254,165,254,180,254,218,254,7,255,35,255,29,255,239,254,165,254,91,254,46,254, +49,254,98,254,170,254,236,254,24,255,44,255,56,255,75,255,105,255,135,255,150,255,143,255,125,255,116,255,129,255,160,255, +192,255,203,255,187,255,160,255,143,255,156,255,202,255,13,0,84,0,145,0,190,0,215,0,215,0,182,0,116,0,22,0, +178,255,102,255,73,255,110,255,207,255,88,0,234,0,100,1,179,1,214,1,221,1,221,1,228,1,236,1,227,1,181,1, +92,1,227,0,97,0,243,255,175,255,155,255,179,255,231,255,33,0,84,0,123,0,154,0,189,0,230,0,8,1,19,1, +246,0,173,0,66,0,200,255,76,255,214,254,110,254,30,254,246,253,2,254,68,254,174,254,39,255,150,255,236,255,33,0, +56,0,59,0,59,0,77,0,126,0,204,0,38,1,111,1,147,1,148,1,128,1,113,1,112,1,126,1,146,1,166,1, +182,1,192,1,177,1,112,1,240,0,59,0,121,255,220,254,134,254,125,254,168,254,221,254,255,254,6,255,253,254,241,254, +232,254,219,254,194,254,152,254,104,254,67,254,54,254,72,254,115,254,172,254,229,254,23,255,64,255,97,255,125,255,149,255, +170,255,188,255,204,255,219,255,228,255,223,255,202,255,164,255,119,255,84,255,70,255,84,255,123,255,179,255,242,255,52,0, +117,0,171,0,204,0,209,0,192,0,163,0,144,0,149,0,181,0,233,0,31,1,73,1,94,1,85,1,50,1,249,0, +179,0,113,0,64,0,35,0,24,0,17,0,5,0,251,255,250,255,10,0,46,0,93,0,139,0,178,0,210,0,232,0, +237,0,218,0,168,0,96,0,18,0,209,255,168,255,144,255,124,255,100,255,73,255,55,255,58,255,87,255,137,255,200,255, +15,0,85,0,139,0,161,0,136,0,60,0,212,255,107,255,28,255,238,254,214,254,194,254,163,254,121,254,85,254,73,254, +88,254,125,254,170,254,208,254,232,254,241,254,242,254,243,254,246,254,252,254,2,255,4,255,5,255,10,255,21,255,40,255, +59,255,69,255,66,255,48,255,23,255,3,255,252,254,7,255,33,255,71,255,113,255,160,255,205,255,245,255,21,0,38,0, +37,0,19,0,246,255,222,255,217,255,237,255,22,0,72,0,109,0,121,0,107,0,82,0,57,0,45,0,56,0,88,0, +134,0,185,0,224,0,239,0,230,0,201,0,174,0,165,0,178,0,202,0,216,0,201,0,156,0,95,0,39,0,8,0, +6,0,26,0,54,0,71,0,66,0,40,0,254,255,209,255,173,255,148,255,128,255,104,255,69,255,27,255,246,254,225,254, +225,254,241,254,8,255,31,255,52,255,69,255,76,255,65,255,31,255,238,254,197,254,188,254,225,254,47,255,152,255,1,0, +90,0,159,0,211,0,252,0,33,1,69,1,107,1,145,1,175,1,189,1,184,1,164,1,142,1,134,1,147,1,179,1, +216,1,240,1,241,1,215,1,171,1,117,1,58,1,0,1,203,0,157,0,116,0,76,0,30,0,229,255,165,255,105,255, +60,255,33,255,25,255,30,255,39,255,49,255,62,255,79,255,95,255,105,255,105,255,98,255,88,255,84,255,90,255,102,255, +110,255,105,255,85,255,59,255,32,255,12,255,2,255,0,255,6,255,23,255,53,255,96,255,148,255,202,255,253,255,43,0, +80,0,112,0,140,0,162,0,177,0,188,0,192,0,196,0,199,0,199,0,189,0,163,0,120,0,66,0,16,0,239,255, +227,255,227,255,223,255,196,255,145,255,87,255,46,255,42,255,77,255,135,255,196,255,243,255,14,0,29,0,41,0,52,0, +62,0,71,0,85,0,110,0,143,0,181,0,216,0,236,0,236,0,219,0,185,0,141,0,99,0,73,0,74,0,101,0, +143,0,180,0,193,0,182,0,163,0,159,0,185,0,237,0,34,1,58,1,35,1,223,0,131,0,40,0,229,255,195,255, +189,255,197,255,202,255,190,255,158,255,119,255,87,255,74,255,85,255,114,255,148,255,180,255,209,255,232,255,249,255,1,0, +251,255,234,255,215,255,204,255,208,255,223,255,239,255,246,255,240,255,218,255,175,255,117,255,50,255,244,254,211,254,223,254, +24,255,105,255,174,255,210,255,210,255,188,255,174,255,188,255,229,255,28,0,78,0,108,0,113,0,101,0,78,0,57,0, +45,0,43,0,50,0,59,0,68,0,77,0,88,0,102,0,115,0,120,0,113,0,93,0,66,0,33,0,244,255,181,255, +104,255,30,255,241,254,243,254,35,255,104,255,154,255,161,255,132,255,93,255,72,255,82,255,115,255,153,255,184,255,205,255, +217,255,224,255,221,255,208,255,195,255,197,255,224,255,19,0,77,0,124,0,144,0,146,0,148,0,158,0,181,0,213,0, +246,0,18,1,39,1,50,1,46,1,25,1,245,0,201,0,150,0,96,0,39,0,235,255,180,255,141,255,123,255,128,255, +149,255,175,255,201,255,222,255,238,255,242,255,229,255,198,255,158,255,119,255,94,255,86,255,88,255,98,255,113,255,136,255, +171,255,214,255,255,255,29,0,40,0,33,0,8,0,219,255,162,255,109,255,72,255,62,255,75,255,92,255,98,255,90,255, +80,255,92,255,140,255,213,255,27,0,71,0,85,0,81,0,76,0,78,0,80,0,75,0,66,0,69,0,99,0,158,0, +228,0,27,1,50,1,43,1,25,1,15,1,18,1,32,1,48,1,63,1,79,1,90,1,90,1,71,1,25,1,209,0, +131,0,66,0,28,0,29,0,65,0,125,0,192,0,246,0,13,1,252,0,200,0,132,0,66,0,12,0,229,255,199,255, +177,255,167,255,177,255,207,255,243,255,18,0,35,0,45,0,60,0,90,0,128,0,161,0,177,0,169,0,145,0,114,0, +77,0,34,0,238,255,182,255,130,255,97,255,92,255,112,255,144,255,173,255,187,255,178,255,152,255,120,255,89,255,65,255, +46,255,20,255,238,254,187,254,131,254,88,254,71,254,88,254,140,254,219,254,50,255,131,255,190,255,220,255,224,255,210,255, +183,255,150,255,102,255,34,255,206,254,124,254,70,254,65,254,109,254,186,254,12,255,75,255,110,255,125,255,133,255,149,255, +174,255,210,255,254,255,45,0,88,0,122,0,143,0,158,0,184,0,238,0,66,1,156,1,217,1,208,1,110,1,198,0, +4,0,90,255,248,254,235,254,39,255,143,255,0,0,95,0,158,0,192,0,208,0,220,0,240,0,18,1,58,1,93,1, +104,1,79,1,12,1,173,0,71,0,243,255,188,255,160,255,139,255,106,255,55,255,2,255,225,254,227,254,5,255,54,255, +99,255,137,255,180,255,245,255,81,0,179,0,251,0,16,1,246,0,196,0,151,0,134,0,147,0,175,0,206,0,234,0, +2,1,17,1,18,1,2,1,232,0,207,0,200,0,217,0,248,0,19,1,28,1,6,1,212,0,144,0,74,0,19,0, +253,255,16,0,70,0,142,0,205,0,240,0,248,0,242,0,239,0,245,0,249,0,236,0,204,0,160,0,119,0,87,0, +59,0,29,0,254,255,234,255,237,255,14,0,65,0,117,0,153,0,167,0,159,0,129,0,77,0,2,0,172,255,100,255, +59,255,54,255,68,255,72,255,51,255,8,255,217,254,192,254,200,254,238,254,39,255,103,255,170,255,232,255,16,0,19,0, +239,255,180,255,130,255,112,255,129,255,168,255,204,255,229,255,244,255,251,255,247,255,218,255,157,255,79,255,12,255,246,254, +19,255,77,255,129,255,150,255,143,255,128,255,127,255,146,255,172,255,183,255,172,255,137,255,85,255,18,255,193,254,109,254, +38,254,2,254,13,254,62,254,127,254,189,254,239,254,24,255,57,255,78,255,84,255,71,255,50,255,42,255,51,255,68,255, +73,255,48,255,1,255,217,254,211,254,248,254,50,255,93,255,102,255,78,255,40,255,11,255,249,254,236,254,224,254,217,254, +228,254,9,255,66,255,130,255,185,255,226,255,1,0,21,0,20,0,244,255,185,255,127,255,98,255,115,255,169,255,229,255, +12,0,24,0,24,0,30,0,47,0,61,0,61,0,55,0,61,0,101,0,180,0,20,1,98,1,130,1,105,1,41,1, +218,0,141,0,77,0,27,0,244,255,222,255,210,255,194,255,163,255,115,255,62,255,36,255,62,255,150,255,34,0,194,0, +91,1,209,1,19,2,29,2,239,1,146,1,27,1,162,0,50,0,213,255,142,255,103,255,110,255,170,255,17,0,131,0, +208,0,222,0,176,0,103,0,46,0,27,0,44,0,81,0,121,0,159,0,198,0,234,0,250,0,234,0,184,0,125,0, +92,0,105,0,161,0,231,0,34,1,74,1,96,1,109,1,108,1,79,1,26,1,216,0,154,0,110,0,82,0,54,0, +20,0,234,255,199,255,181,255,178,255,190,255,213,255,0,0,74,0,177,0,32,1,115,1,142,1,111,1,45,1,229,0, +177,0,141,0,114,0,90,0,74,0,82,0,114,0,153,0,182,0,184,0,165,0,141,0,125,0,126,0,143,0,185,0, +6,1,113,1,232,1,55,2,39,2,170,1,223,0,12,0,127,255,84,255,124,255,205,255,25,0,78,0,109,0,113,0, +84,0,13,0,165,255,64,255,2,255,2,255,53,255,114,255,158,255,173,255,177,255,205,255,14,0,113,0,220,0,49,1, +96,1,93,1,34,1,182,0,28,0,114,255,222,254,121,254,80,254,82,254,101,254,122,254,140,254,169,254,218,254,21,255, +78,255,124,255,156,255,187,255,224,255,5,0,38,0,63,0,85,0,113,0,146,0,171,0,170,0,143,0,104,0,72,0, +54,0,35,0,245,255,162,255,59,255,231,254,198,254,219,254,17,255,71,255,109,255,132,255,148,255,155,255,140,255,88,255, +3,255,163,254,87,254,48,254,35,254,29,254,14,254,243,253,225,253,233,253,11,254,63,254,117,254,165,254,211,254,0,255, +45,255,80,255,100,255,117,255,144,255,181,255,224,255,246,255,228,255,175,255,104,255,39,255,253,254,235,254,246,254,35,255, +111,255,209,255,55,0,132,0,167,0,161,0,133,0,104,0,82,0,62,0,32,0,231,255,152,255,65,255,244,254,195,254, +187,254,221,254,34,255,119,255,193,255,236,255,239,255,212,255,179,255,155,255,143,255,134,255,115,255,89,255,74,255,79,255, +112,255,160,255,203,255,232,255,243,255,241,255,235,255,226,255,210,255,198,255,200,255,228,255,21,0,80,0,128,0,146,0, +139,0,124,0,118,0,133,0,165,0,200,0,226,0,236,0,230,0,209,0,177,0,140,0,100,0,67,0,50,0,42,0, +38,0,33,0,28,0,34,0,62,0,119,0,199,0,28,1,98,1,144,1,163,1,168,1,171,1,175,1,182,1,186,1, +186,1,190,1,200,1,213,1,221,1,203,1,153,1,79,1,251,0,180,0,123,0,78,0,33,0,232,255,159,255,84,255, +21,255,246,254,255,254,42,255,101,255,149,255,170,255,163,255,146,255,139,255,145,255,148,255,121,255,48,255,198,254,84,254, +251,253,210,253,218,253,15,254,105,254,219,254,83,255,193,255,18,0,63,0,80,0,78,0,69,0,64,0,74,0,101,0, +139,0,168,0,168,0,126,0,44,0,190,255,72,255,225,254,153,254,117,254,115,254,133,254,153,254,163,254,165,254,167,254, +181,254,208,254,243,254,27,255,70,255,119,255,179,255,248,255,69,0,147,0,224,0,46,1,121,1,188,1,242,1,16,2, +20,2,249,1,193,1,121,1,44,1,234,0,193,0,179,0,189,0,214,0,244,0,21,1,60,1,107,1,164,1,225,1, +26,2,72,2,96,2,92,2,59,2,3,2,189,1,110,1,24,1,187,0,86,0,244,255,162,255,109,255,91,255,93,255, +93,255,66,255,3,255,175,254,97,254,67,254,116,254,237,254,149,255,70,0,213,0,53,1,96,1,86,1,35,1,212,0, +126,0,56,0,5,0,225,255,191,255,152,255,123,255,124,255,168,255,247,255,77,0,142,0,174,0,176,0,166,0,156,0, +154,0,164,0,178,0,189,0,186,0,155,0,104,0,42,0,242,255,208,255,191,255,185,255,186,255,194,255,225,255,18,0, +77,0,135,0,173,0,195,0,221,0,0,1,51,1,101,1,117,1,83,1,247,0,117,0,245,255,143,255,81,255,49,255, +21,255,246,254,208,254,168,254,143,254,131,254,144,254,184,254,236,254,40,255,94,255,130,255,156,255,166,255,164,255,155,255, +132,255,109,255,105,255,121,255,163,255,217,255,4,0,30,0,28,0,254,255,203,255,144,255,101,255,95,255,128,255,189,255, +250,255,22,0,1,0,186,255,86,255,244,254,177,254,163,254,196,254,253,254,38,255,41,255,12,255,231,254,215,254,227,254, +249,254,7,255,6,255,245,254,228,254,211,254,184,254,149,254,113,254,100,254,136,254,224,254,93,255,216,255,43,0,68,0, +44,0,1,0,217,255,189,255,168,255,135,255,82,255,13,255,198,254,142,254,112,254,113,254,154,254,225,254,53,255,140,255, +208,255,250,255,16,0,24,0,36,0,55,0,76,0,100,0,121,0,138,0,158,0,177,0,198,0,221,0,241,0,9,1, +35,1,52,1,52,1,34,1,12,1,6,1,17,1,33,1,31,1,0,1,210,0,170,0,159,0,176,0,205,0,239,0, +19,1,61,1,114,1,164,1,190,1,184,1,137,1,50,1,191,0,55,0,165,255,27,255,180,254,136,254,160,254,243,254, +98,255,200,255,13,0,44,0,50,0,46,0,46,0,52,0,64,0,89,0,129,0,182,0,253,0,72,1,132,1,164,1, +144,1,64,1,198,0,67,0,225,255,187,255,192,255,203,255,180,255,108,255,12,255,184,254,142,254,154,254,208,254,25,255, +103,255,168,255,208,255,217,255,199,255,164,255,127,255,101,255,91,255,102,255,133,255,168,255,186,255,169,255,115,255,53,255, +20,255,38,255,104,255,191,255,22,0,98,0,163,0,220,0,9,1,35,1,48,1,46,1,22,1,227,0,152,0,71,0, +15,0,240,255,219,255,183,255,118,255,43,255,242,254,227,254,254,254,45,255,98,255,151,255,206,255,19,0,102,0,194,0, +39,1,132,1,209,1,6,2,23,2,9,2,231,1,180,1,123,1,57,1,239,0,170,0,111,0,66,0,37,0,14,0, +1,0,11,0,37,0,65,0,57,0,237,255,110,255,225,254,116,254,72,254,83,254,125,254,178,254,228,254,17,255,48,255, +49,255,24,255,243,254,221,254,234,254,9,255,24,255,248,254,173,254,103,254,86,254,143,254,249,254,99,255,181,255,241,255, +31,0,71,0,95,0,88,0,70,0,57,0,66,0,97,0,124,0,129,0,114,0,88,0,82,0,111,0,170,0,240,0, +28,1,16,1,212,0,120,0,25,0,211,255,175,255,174,255,203,255,245,255,23,0,33,0,15,0,242,255,222,255,211,255, +201,255,183,255,153,255,119,255,92,255,74,255,72,255,92,255,128,255,170,255,198,255,202,255,196,255,202,255,233,255,25,0, +66,0,89,0,96,0,84,0,56,0,2,0,193,255,153,255,163,255,228,255,59,0,117,0,125,0,89,0,44,0,27,0, +29,0,28,0,18,0,253,255,254,255,35,0,82,0,109,0,87,0,22,0,213,255,172,255,171,255,218,255,39,0,148,0, +13,1,97,1,113,1,56,1,220,0,167,0,184,0,251,0,66,1,85,1,30,1,179,0,60,0,227,255,192,255,209,255, +251,255,23,0,1,0,180,255,88,255,39,255,73,255,187,255,53,0,83,0,222,255,233,254,223,253,60,253,56,253,198,253, +157,254,123,255,67,0,223,0,62,1,87,1,33,1,181,0,64,0,215,255,138,255,97,255,104,255,173,255,36,0,174,0, +39,1,116,1,161,1,195,1,222,1,230,1,173,1,21,1,52,0,60,255,115,254,1,254,227,253,5,254,61,254,108,254, +141,254,151,254,143,254,141,254,159,254,212,254,54,255,182,255,58,0,168,0,238,0,20,1,47,1,82,1,128,1,175,1, +201,1,182,1,118,1,19,1,155,0,34,0,180,255,111,255,112,255,177,255,28,0,138,0,219,0,17,1,59,1,117,1, +217,1,94,2,228,2,53,3,31,3,151,2,181,1,174,0,197,255,44,255,0,255,58,255,184,255,79,0,196,0,241,0, +217,0,144,0,79,0,65,0,93,0,137,0,147,0,86,0,242,255,151,255,118,255,157,255,220,255,10,0,33,0,49,0, +77,0,97,0,62,0,212,255,64,255,207,254,201,254,60,255,254,255,189,0,53,1,77,1,253,0,73,0,84,255,78,254, +132,253,52,253,93,253,214,253,96,254,192,254,231,254,234,254,232,254,245,254,14,255,35,255,49,255,60,255,79,255,131,255, +229,255,101,0,215,0,16,1,8,1,217,0,164,0,123,0,93,0,72,0,63,0,61,0,55,0,37,0,255,255,225,255, +245,255,78,0,214,0,93,1,173,1,179,1,111,1,240,0,94,0,219,255,114,255,27,255,183,254,62,254,208,253,155,253, +199,253,76,254,241,254,143,255,15,0,108,0,167,0,157,0,55,0,144,255,216,254,85,254,58,254,112,254,199,254,21,255, +75,255,139,255,235,255,71,0,92,0,232,255,239,254,206,253,244,252,172,252,254,252,170,253,96,254,235,254,69,255,138,255, +211,255,40,0,125,0,181,0,210,0,223,0,229,0,240,0,229,0,164,0,61,0,214,255,164,255,180,255,211,255,220,255, +201,255,182,255,210,255,22,0,80,0,83,0,24,0,199,255,148,255,139,255,154,255,156,255,142,255,152,255,202,255,40,0, +162,0,9,1,64,1,50,1,207,0,58,0,167,255,70,255,46,255,73,255,135,255,231,255,86,0,195,0,19,1,36,1, +246,0,158,0,50,0,182,255,42,255,162,254,61,254,35,254,104,254,234,254,132,255,31,0,160,0,4,1,69,1,98,1, +115,1,120,1,108,1,81,1,29,1,217,0,155,0,106,0,88,0,113,0,163,0,205,0,222,0,219,0,215,0,221,0, +236,0,241,0,220,0,179,0,124,0,65,0,5,0,196,255,130,255,71,255,24,255,247,254,227,254,238,254,40,255,138,255, +7,0,134,0,236,0,44,1,68,1,76,1,93,1,111,1,103,1,37,1,161,0,247,255,85,255,218,254,140,254,91,254, +56,254,39,254,43,254,54,254,64,254,93,254,163,254,20,255,154,255,15,0,103,0,164,0,195,0,216,0,245,0,34,1, +100,1,160,1,186,1,167,1,103,1,31,1,245,0,237,0,4,1,39,1,76,1,125,1,159,1,170,1,185,1,201,1, +210,1,191,1,110,1,247,0,139,0,71,0,72,0,147,0,8,1,133,1,217,1,226,1,174,1,106,1,65,1,63,1, +77,1,64,1,13,1,201,0,136,0,83,0,50,0,32,0,39,0,69,0,78,0,38,0,218,255,147,255,133,255,188,255, +9,0,63,0,66,0,5,0,164,255,78,255,47,255,98,255,198,255,25,0,46,0,245,255,139,255,48,255,19,255,54,255, +120,255,158,255,144,255,97,255,36,255,247,254,243,254,13,255,48,255,68,255,47,255,250,254,187,254,122,254,63,254,17,254, +241,253,225,253,240,253,34,254,111,254,199,254,1,255,1,255,212,254,153,254,120,254,126,254,149,254,187,254,239,254,25,255, +51,255,57,255,52,255,75,255,128,255,181,255,207,255,180,255,118,255,71,255,77,255,149,255,249,255,83,0,164,0,227,0, +10,1,14,1,208,0,93,0,225,255,124,255,69,255,37,255,253,254,208,254,173,254,176,254,225,254,44,255,126,255,177,255, +173,255,141,255,98,255,55,255,25,255,9,255,26,255,87,255,158,255,210,255,227,255,211,255,201,255,223,255,9,0,47,0, +57,0,50,0,54,0,73,0,84,0,73,0,47,0,24,0,23,0,47,0,77,0,86,0,54,0,224,255,99,255,221,254, +101,254,31,254,35,254,110,254,223,254,73,255,137,255,155,255,150,255,156,255,191,255,255,255,77,0,129,0,123,0,65,0, +234,255,162,255,136,255,154,255,201,255,2,0,46,0,85,0,144,0,235,0,90,1,195,1,20,2,71,2,90,2,78,2, +36,2,238,1,188,1,151,1,137,1,130,1,116,1,92,1,54,1,8,1,226,0,197,0,188,0,205,0,233,0,11,1, +58,1,106,1,146,1,192,1,248,1,49,2,77,2,30,2,133,1,148,0,132,255,161,254,54,254,88,254,214,254,96,255, +180,255,187,255,160,255,157,255,199,255,1,0,16,0,223,255,138,255,54,255,255,254,240,254,9,255,68,255,143,255,204,255, +237,255,248,255,252,255,245,255,210,255,149,255,68,255,241,254,191,254,187,254,237,254,85,255,209,255,63,0,147,0,190,0, +197,0,192,0,180,0,171,0,157,0,117,0,37,0,156,255,232,254,65,254,235,253,254,253,88,254,187,254,254,254,35,255, +63,255,103,255,159,255,213,255,246,255,5,0,27,0,87,0,185,0,46,1,160,1,234,1,234,1,160,1,31,1,138,0, +2,0,144,255,60,255,17,255,241,254,196,254,137,254,83,254,68,254,103,254,163,254,237,254,56,255,113,255,140,255,133,255, +110,255,106,255,133,255,187,255,248,255,44,0,83,0,102,0,121,0,161,0,216,0,30,1,111,1,179,1,219,1,214,1, +175,1,153,1,166,1,199,1,215,1,181,1,108,1,40,1,11,1,30,1,53,1,26,1,198,0,84,0,241,255,186,255, +172,255,205,255,33,0,137,0,234,0,45,1,70,1,79,1,88,1,73,1,12,1,155,0,9,0,147,255,89,255,96,255, +160,255,241,255,47,0,83,0,79,0,46,0,16,0,255,255,8,0,50,0,90,0,97,0,74,0,51,0,72,0,141,0, +215,0,248,0,227,0,180,0,145,0,123,0,115,0,125,0,133,0,117,0,68,0,255,255,210,255,216,255,11,0,76,0, +114,0,100,0,46,0,215,255,101,255,236,254,136,254,106,254,176,254,61,255,223,255,115,0,254,0,149,1,30,2,91,2, +29,2,92,1,95,0,141,255,17,255,230,254,233,254,242,254,252,254,19,255,65,255,125,255,152,255,137,255,89,255,253,254, +152,254,70,254,21,254,37,254,110,254,215,254,79,255,170,255,223,255,245,255,217,255,173,255,137,255,126,255,196,255,18,0, +226,255,61,255,140,254,78,254,192,254,135,255,47,0,142,0,169,0,167,0,163,0,155,0,132,0,73,0,234,255,149,255, +110,255,99,255,89,255,72,255,56,255,37,255,247,254,132,254,206,253,21,253,151,252,125,252,207,252,105,253,35,254,212,254, +103,255,226,255,61,0,91,0,49,0,199,255,60,255,205,254,191,254,45,255,246,255,208,0,119,1,213,1,2,2,16,2, +225,1,50,1,246,255,156,254,177,253,132,253,0,254,171,254,41,255,136,255,226,255,75,0,205,0,51,1,59,1,220,0, +64,0,171,255,67,255,22,255,29,255,54,255,93,255,141,255,179,255,191,255,161,255,97,255,26,255,223,254,207,254,248,254, +74,255,179,255,12,0,69,0,138,0,231,0,62,1,111,1,88,1,16,1,202,0,171,0,191,0,226,0,230,0,200,0, +151,0,112,0,116,0,185,0,51,1,173,1,1,2,38,2,2,2,133,1,211,0,31,0,151,255,87,255,89,255,126,255, +162,255,167,255,140,255,129,255,183,255,12,0,61,0,64,0,51,0,50,0,65,0,87,0,76,0,248,255,145,255,94,255, +105,255,159,255,210,255,220,255,222,255,239,255,8,0,28,0,19,0,240,255,196,255,146,255,112,255,97,255,94,255,132,255, +195,255,228,255,229,255,213,255,195,255,186,255,183,255,194,255,203,255,186,255,171,255,182,255,196,255,199,255,188,255,175,255, +183,255,171,255,107,255,54,255,72,255,167,255,34,0,98,0,106,0,130,0,185,0,12,1,88,1,105,1,95,1,101,1, +106,1,104,1,78,1,25,1,237,0,206,0,202,0,224,0,240,0,17,1,91,1,193,1,68,2,190,2,1,3,19,3, +214,2,52,2,79,1,88,0,161,255,80,255,74,255,123,255,191,255,253,255,57,0,91,0,73,0,5,0,158,255,65,255, +9,255,255,254,42,255,110,255,198,255,64,0,196,0,66,1,167,1,209,1,226,1,13,2,62,2,79,2,64,2,32,2, +251,1,202,1,113,1,15,1,227,0,214,0,179,0,118,0,48,0,32,0,78,0,87,0,13,0,134,255,240,254,152,254, +153,254,194,254,225,254,220,254,211,254,245,254,63,255,144,255,181,255,157,255,104,255,47,255,12,255,12,255,23,255,50,255, +91,255,113,255,109,255,74,255,10,255,193,254,114,254,40,254,242,253,196,253,170,253,183,253,239,253,77,254,175,254,234,254, +241,254,210,254,177,254,162,254,163,254,173,254,197,254,235,254,21,255,70,255,107,255,97,255,65,255,61,255,101,255,181,255, +237,255,217,255,175,255,172,255,231,255,74,0,143,0,171,0,196,0,232,0,34,1,95,1,135,1,142,1,84,1,208,0, +49,0,161,255,69,255,28,255,15,255,31,255,42,255,21,255,2,255,4,255,37,255,78,255,77,255,32,255,244,254,230,254, +1,255,72,255,166,255,234,255,255,255,5,0,25,0,58,0,88,0,111,0,125,0,102,0,34,0,210,255,135,255,89,255, +88,255,117,255,171,255,224,255,253,255,38,0,99,0,141,0,154,0,157,0,176,0,185,0,172,0,201,0,5,1,20,1, +9,1,33,1,96,1,155,1,151,1,95,1,31,1,238,0,218,0,222,0,247,0,29,1,55,1,81,1,126,1,156,1, +142,1,101,1,71,1,76,1,101,1,127,1,127,1,78,1,5,1,199,0,153,0,149,0,215,0,46,1,67,1,9,1, +171,0,92,0,59,0,44,0,3,0,177,255,50,255,181,254,130,254,155,254,222,254,33,255,60,255,67,255,50,255,229,254, +130,254,61,254,33,254,64,254,148,254,240,254,59,255,134,255,236,255,84,0,146,0,168,0,166,0,153,0,135,0,98,0, +51,0,50,0,90,0,113,0,122,0,127,0,66,0,196,255,78,255,9,255,33,255,135,255,225,255,2,0,234,255,220,255, +37,0,119,0,109,0,13,0,113,255,233,254,181,254,146,254,91,254,30,254,232,253,228,253,17,254,49,254,38,254,5,254, +13,254,87,254,179,254,237,254,233,254,194,254,185,254,200,254,188,254,131,254,53,254,11,254,40,254,123,254,214,254,31,255, +76,255,69,255,19,255,237,254,208,254,195,254,13,255,159,255,18,0,53,0,11,0,151,255,13,255,181,254,158,254,202,254, +77,255,10,0,199,0,90,1,146,1,139,1,120,1,84,1,37,1,4,1,248,0,25,1,85,1,144,1,201,1,247,1, +20,2,10,2,194,1,68,1,161,0,50,0,56,0,99,0,140,0,198,0,218,0,191,0,162,0,133,0,125,0,150,0, +178,0,197,0,214,0,248,0,29,1,32,1,13,1,246,0,219,0,189,0,152,0,114,0,78,0,64,0,95,0,110,0, +39,0,165,255,42,255,241,254,19,255,92,255,150,255,175,255,200,255,251,255,14,0,207,255,82,255,199,254,130,254,186,254, +78,255,255,255,154,0,238,0,240,0,212,0,200,0,179,0,114,0,29,0,233,255,244,255,34,0,91,0,149,0,174,0, +171,0,175,0,171,0,161,0,168,0,192,0,235,0,245,0,178,0,70,0,237,255,222,255,27,0,90,0,121,0,128,0, +118,0,101,0,66,0,10,0,221,255,205,255,220,255,8,0,62,0,128,0,219,0,101,1,11,2,121,2,113,2,6,2, +116,1,249,0,171,0,125,0,107,0,128,0,207,0,69,1,157,1,160,1,67,1,194,0,80,0,238,255,176,255,165,255, +198,255,11,0,46,0,23,0,10,0,254,255,189,255,68,255,161,254,10,254,184,253,154,253,164,253,215,253,25,254,89,254, +133,254,173,254,237,254,54,255,127,255,198,255,241,255,27,0,115,0,235,0,75,1,100,1,61,1,41,1,66,1,69,1, +254,0,107,0,183,255,83,255,120,255,230,255,90,0,171,0,186,0,121,0,14,0,204,255,204,255,201,255,151,255,88,255, +69,255,97,255,112,255,97,255,82,255,90,255,134,255,154,255,104,255,49,255,42,255,76,255,121,255,125,255,98,255,89,255, +89,255,66,255,29,255,30,255,79,255,137,255,187,255,168,255,23,255,91,254,226,253,213,253,55,254,208,254,136,255,99,0, +53,1,230,1,95,2,125,2,90,2,19,2,187,1,97,1,255,0,203,0,212,0,221,0,203,0,139,0,51,0,255,255, +226,255,218,255,249,255,0,0,254,255,46,0,113,0,166,0,191,0,171,0,158,0,187,0,204,0,161,0,91,0,56,0, +67,0,97,0,110,0,69,0,242,255,199,255,251,255,83,0,99,0,36,0,216,255,163,255,133,255,108,255,85,255,76,255, +68,255,59,255,71,255,94,255,89,255,40,255,230,254,179,254,153,254,163,254,190,254,230,254,63,255,154,255,162,255,83,255, +200,254,76,254,62,254,135,254,218,254,18,255,42,255,68,255,102,255,98,255,56,255,22,255,27,255,69,255,134,255,204,255, +238,255,219,255,167,255,138,255,187,255,0,0,2,0,213,255,173,255,175,255,222,255,229,255,153,255,49,255,238,254,242,254, +20,255,19,255,248,254,211,254,167,254,130,254,101,254,116,254,190,254,14,255,110,255,250,255,130,0,213,0,242,0,240,0, +239,0,243,0,242,0,242,0,3,1,10,1,248,0,224,0,150,0,252,255,100,255,253,254,206,254,253,254,109,255,225,255, +66,0,96,0,54,0,13,0,9,0,255,255,203,255,174,255,225,255,58,0,162,0,31,1,109,1,114,1,120,1,187,1, +40,2,95,2,23,2,105,1,160,0,50,0,116,0,27,1,177,1,237,1,145,1,216,0,46,0,139,255,3,255,217,254, +252,254,75,255,163,255,227,255,59,0,179,0,213,0,120,0,8,0,221,255,219,255,238,255,19,0,12,0,200,255,86,255, +190,254,151,254,32,255,144,255,149,255,106,255,48,255,69,255,148,255,152,255,122,255,130,255,159,255,194,255,184,255,141,255, +136,255,140,255,143,255,207,255,67,0,224,0,145,1,243,1,225,1,165,1,106,1,56,1,32,1,24,1,14,1,250,0, +181,0,80,0,34,0,40,0,20,0,209,255,124,255,70,255,75,255,134,255,220,255,52,0,142,0,169,0,76,0,244,255, +254,255,26,0,48,0,83,0,142,0,237,0,46,1,37,1,239,0,181,0,215,0,86,1,176,1,175,1,88,1,231,0, +219,0,49,1,134,1,147,1,43,1,153,0,77,0,80,0,132,0,155,0,71,0,193,255,60,255,184,254,103,254,66,254, +1,254,178,253,140,253,174,253,31,254,133,254,130,254,110,254,185,254,54,255,165,255,249,255,36,0,43,0,35,0,6,0, +204,255,141,255,126,255,187,255,50,0,158,0,204,0,214,0,213,0,229,0,49,1,151,1,244,1,55,2,31,2,209,1, +192,1,246,1,69,2,92,2,245,1,35,1,37,0,95,255,160,254,20,253,60,251,97,250,154,250,120,251,136,252,98,253, +106,254,191,255,215,0,106,1,83,1,4,1,78,1,249,1,122,2,181,2,164,2,157,2,197,2,172,2,54,2,148,1, +252,0,167,0,110,0,41,0,239,255,166,255,76,255,248,254,171,254,116,254,88,254,127,254,7,255,120,255,123,255,84,255, +75,255,130,255,211,255,247,255,237,255,187,255,131,255,133,255,106,255,226,254,82,254,7,254,8,254,37,254,240,253,123,253, +44,253,39,253,114,253,223,253,56,254,137,254,216,254,61,255,197,255,46,0,82,0,65,0,44,0,88,0,163,0,204,0, +240,0,38,1,93,1,158,1,2,2,84,2,1,2,6,1,7,0,117,255,120,255,178,255,154,255,137,255,220,255,65,0, +148,0,197,0,162,0,90,0,60,0,91,0,109,0,11,0,106,255,245,254,171,254,150,254,200,254,35,255,140,255,235,255, +54,0,92,0,75,0,59,0,106,0,175,0,238,0,69,1,152,1,172,1,96,1,184,0,45,0,73,0,206,0,57,1, +99,1,78,1,38,1,251,0,144,0,237,255,113,255,95,255,177,255,45,0,166,0,247,0,248,0,201,0,147,0,94,0, +71,0,72,0,81,0,117,0,144,0,126,0,78,0,237,255,106,255,31,255,72,255,187,255,13,0,229,255,54,255,148,254, +161,254,246,254,11,255,16,255,14,255,255,254,20,255,44,255,63,255,111,255,155,255,203,255,5,0,51,0,87,0,48,0, +154,255,249,254,151,254,144,254,212,254,1,255,238,254,210,254,247,254,128,255,27,0,73,0,253,255,139,255,75,255,98,255, +181,255,249,255,15,0,31,0,76,0,168,0,70,1,201,1,169,1,28,1,193,0,180,0,198,0,249,0,56,1,84,1, +96,1,97,1,65,1,56,1,77,1,51,1,249,0,184,0,61,0,150,255,41,255,41,255,78,255,85,255,89,255,84,255, +44,255,44,255,129,255,8,0,129,0,147,0,68,0,253,255,234,255,10,0,11,0,129,255,210,254,164,254,234,254,118,255, +17,0,88,0,101,0,146,0,226,0,61,1,140,1,157,1,100,1,17,1,230,0,9,1,76,1,47,1,149,0,4,0, +217,255,239,255,2,0,221,255,169,255,196,255,26,0,77,0,32,0,171,255,93,255,109,255,161,255,210,255,230,255,246,255, +59,0,147,0,186,0,122,0,211,255,79,255,45,255,41,255,50,255,63,255,96,255,191,255,246,255,175,255,48,255,156,254, +31,254,225,253,179,253,153,253,188,253,12,254,117,254,207,254,249,254,14,255,34,255,55,255,81,255,109,255,137,255,181,255, +244,255,25,0,26,0,29,0,9,0,202,255,134,255,86,255,117,255,240,255,110,0,189,0,223,0,1,1,69,1,69,1, +199,0,47,0,212,255,215,255,26,0,84,0,133,0,171,0,147,0,66,0,231,255,178,255,194,255,238,255,10,0,78,0, +253,0,198,1,26,2,193,1,225,0,28,0,235,255,219,255,161,255,119,255,95,255,125,255,205,255,237,255,220,255,193,255, +166,255,182,255,231,255,11,0,20,0,2,0,1,0,39,0,99,0,129,0,59,0,247,255,66,0,216,0,95,1,176,1, +203,1,252,1,2,2,137,1,21,1,8,1,55,1,103,1,80,1,34,1,64,1,140,1,154,1,57,1,176,0,68,0, +221,255,134,255,75,255,11,255,221,254,241,254,77,255,198,255,16,0,14,0,192,255,63,255,214,254,140,254,93,254,88,254, +83,254,113,254,248,254,160,255,68,0,235,0,101,1,184,1,10,2,107,2,222,2,29,3,250,2,144,2,238,1,38,1, +17,0,139,254,79,253,16,253,190,253,0,255,39,0,173,0,212,0,171,0,23,0,145,255,104,255,126,255,208,255,106,0, +7,1,244,0,21,0,76,255,229,254,155,254,118,254,87,254,115,254,32,255,172,255,149,255,31,255,128,254,64,254,108,254, +61,254,177,253,81,253,71,253,158,253,39,254,173,254,251,254,244,254,48,255,205,255,8,0,200,255,94,255,17,255,93,255, +228,255,240,255,226,255,34,0,80,0,39,0,165,255,234,254,94,254,61,254,79,254,120,254,190,254,212,254,180,254,201,254, +251,254,250,254,223,254,170,254,111,254,181,254,145,255,130,0,81,1,230,1,8,2,207,1,84,1,210,0,228,0,95,1, +138,1,140,1,184,1,32,2,188,2,200,2,242,1,59,1,61,1,216,1,142,2,200,2,10,3,201,3,20,4,129,3, +176,2,238,1,101,1,41,1,15,1,15,1,241,0,110,0,223,255,196,255,8,0,20,0,172,255,73,255,40,255,12,255, +20,255,150,255,93,0,234,0,235,0,92,0,149,255,243,254,130,254,65,254,63,254,102,254,121,254,95,254,40,254,212,253, +123,253,119,253,220,253,120,254,25,255,94,255,67,255,36,255,31,255,79,255,144,255,110,255,39,255,26,255,24,255,12,255, +230,254,200,254,29,255,227,255,193,0,23,1,154,0,52,0,87,0,149,0,236,0,236,0,79,0,12,0,47,0,2,0, +214,255,251,255,52,0,108,0,122,0,88,0,55,0,9,0,151,255,32,255,33,255,91,255,93,255,63,255,14,255,45,255, +238,255,103,0,37,0,2,0,81,0,231,0,141,1,212,1,156,1,34,1,206,0,213,0,198,0,82,0,156,255,236,254, +158,254,168,254,209,254,24,255,70,255,155,255,86,0,151,0,61,0,47,0,102,0,150,0,156,0,34,0,188,255,54,0, +255,0,64,1,7,1,153,0,16,0,144,255,70,255,124,255,110,0,180,1,142,2,160,2,250,1,15,1,56,0,117,255, +35,255,141,255,87,0,47,1,51,1,199,255,157,254,21,255,43,0,1,1,94,1,11,1,141,0,42,0,175,255,91,255, +97,255,18,0,88,1,142,1,66,0,111,255,138,255,74,255,192,254,167,254,54,255,91,0,32,1,0,1,19,1,173,1, +250,1,252,1,19,2,50,2,101,2,138,2,76,2,202,1,73,1,227,0,112,0,151,255,152,254,98,254,13,255,179,255, +54,0,231,0,31,1,112,0,120,255,176,254,79,254,106,254,120,254,110,254,211,254,80,255,85,255,222,254,23,254,198,253, +71,254,144,254,113,254,185,254,69,255,221,255,84,0,28,0,246,255,134,0,182,0,71,0,229,255,198,255,93,0,42,1, +213,0,193,255,12,255,214,254,247,254,49,255,46,255,220,254,123,254,101,254,131,254,156,254,195,254,216,254,216,254,245,254, +23,255,57,255,101,255,125,255,129,255,99,255,57,255,8,255,111,254,245,253,94,254,195,254,96,254,10,254,77,254,231,254, +146,255,213,255,160,255,184,255,36,0,36,0,9,0,99,0,237,0,93,1,67,1,175,0,192,0,121,1,224,1,234,1, +183,1,106,1,103,1,86,1,198,0,236,255,108,255,221,255,164,0,210,0,185,0,209,0,226,0,181,0,134,0,160,0, +100,0,164,255,164,255,63,0,0,0,31,255,124,254,66,254,128,254,210,254,216,254,224,254,24,255,104,255,161,255,107,255, +14,255,80,255,247,255,65,0,121,0,255,0,47,1,219,0,201,0,21,1,30,1,220,0,211,0,17,1,96,1,191,1, +23,2,71,2,11,2,206,0,19,255,62,254,46,254,25,254,34,254,90,254,217,254,216,255,169,0,182,0,113,0,60,0, +49,0,140,0,54,1,121,1,203,0,232,255,176,255,184,255,209,255,144,0,134,1,244,1,253,1,225,1,30,2,251,2, +93,3,163,2,200,1,102,1,118,1,191,1,156,1,41,1,59,1,194,1,28,2,13,2,165,1,13,1,131,0,74,0, +49,0,254,255,4,0,71,0,136,0,213,0,204,0,22,0,72,255,230,254,36,255,176,255,119,255,151,254,112,254,27,255, +150,255,116,255,241,254,178,254,11,255,33,255,141,254,130,254,44,255,80,255,237,254,146,254,30,254,213,253,184,253,107,253, +89,253,99,253,220,252,36,252,209,251,12,252,204,252,70,253,240,252,137,252,195,252,115,253,67,254,28,255,234,255,143,0, +214,0,137,0,26,0,48,0,135,0,203,0,20,1,56,1,88,1,159,1,135,1,224,0,45,0,246,255,104,0,2,1, +93,1,193,1,6,2,170,1,235,0,64,0,200,255,169,255,230,255,35,0,53,0,93,0,166,0,204,0,185,0,120,0, +27,0,194,255,124,255,79,255,67,255,43,255,240,254,232,254,81,255,203,255,3,0,36,0,51,0,250,255,226,255,124,0, +84,1,198,1,241,1,252,1,200,1,101,1,231,0,132,0,130,0,223,0,127,1,209,1,78,1,236,0,126,1,43,2, +68,2,197,1,221,0,97,0,155,0,220,0,218,0,164,0,153,0,57,1,231,1,208,1,84,1,29,1,61,1,138,1, +239,1,110,2,233,2,243,2,93,2,225,1,6,2,6,2,105,1,164,0,25,0,49,0,120,0,220,255,5,255,226,254, +190,254,90,254,47,254,13,254,213,253,160,253,106,253,120,253,238,253,96,254,115,254,121,254,199,254,36,255,93,255,100,255, +26,255,146,254,4,254,180,253,204,253,16,254,85,254,144,254,230,254,149,255,11,0,246,255,92,0,76,1,173,1,92,1, +195,0,100,0,145,0,143,0,4,0,172,255,190,255,240,255,20,0,234,255,160,255,165,255,145,255,237,254,121,254,175,254, +191,254,127,254,163,254,253,254,46,255,80,255,51,255,231,254,198,254,194,254,199,254,2,255,121,255,227,255,227,255,157,255, +111,255,77,255,29,255,25,255,93,255,186,255,12,0,36,0,177,255,1,255,240,254,116,255,215,255,2,0,240,255,100,255, +181,254,78,254,52,254,117,254,224,254,25,255,42,255,20,255,250,254,79,255,154,255,36,255,179,254,231,254,63,255,180,255, +117,0,51,1,160,1,101,1,161,0,41,0,63,0,134,0,184,0,163,0,128,0,147,0,149,0,91,0,17,0,231,255, +21,0,144,0,39,1,189,1,35,2,91,2,129,2,99,2,20,2,7,2,42,2,254,1,117,1,235,0,158,0,159,0, +206,0,221,0,201,0,216,0,248,0,6,1,45,1,90,1,109,1,151,1,163,1,56,1,169,0,90,0,100,0,146,0, +87,0,254,255,43,0,48,0,148,255,12,255,204,254,207,254,41,255,35,255,135,254,18,254,255,253,44,254,115,254,177,254, +87,255,96,0,194,0,51,0,126,255,61,255,129,255,241,255,50,0,65,0,46,0,57,0,130,0,144,0,92,0,121,0, +184,0,172,0,107,0,243,255,184,255,64,0,160,0,55,0,255,255,101,0,138,0,254,255,92,255,60,255,149,255,15,0, +68,0,51,0,244,255,229,254,99,253,64,253,102,254,55,255,113,255,58,255,213,254,242,254,7,255,208,254,96,255,39,0, +165,255,109,254,192,253,172,253,225,253,58,254,143,254,254,254,132,255,145,255,91,255,239,255,14,1,118,1,167,0,28,255, +28,254,94,254,225,254,243,254,48,255,120,255,19,255,115,254,134,254,22,255,100,255,115,255,179,255,10,0,60,0,127,0, +224,0,19,1,30,1,30,1,2,1,32,1,110,1,73,1,247,0,47,1,188,1,51,2,101,2,113,2,205,2,100,3, +207,3,7,4,232,3,132,3,88,3,97,3,82,3,5,3,99,2,161,1,17,1,210,0,203,0,175,0,129,0,118,0, +89,0,12,0,167,255,15,255,104,254,32,254,44,254,61,254,68,254,70,254,108,254,11,255,64,0,190,1,196,2,120,2, +217,0,166,254,183,252,188,251,160,251,232,251,222,252,105,254,115,255,192,255,245,255,102,0,16,1,93,1,216,0,104,0, +214,0,111,1,156,1,158,1,99,1,173,0,208,255,36,255,246,254,171,255,127,0,60,0,141,255,131,255,86,255,154,254, +92,254,178,254,194,254,147,254,100,254,111,254,253,254,56,255,136,254,63,254,241,254,147,255,231,255,16,0,215,255,172,255, +220,255,26,0,137,0,22,1,53,1,226,0,78,0,164,255,95,255,93,255,247,254,84,254,19,254,85,254,228,254,105,255, +195,255,14,0,52,0,32,0,221,255,87,255,13,255,199,255,3,1,188,1,253,1,246,1,97,1,123,0,232,255,28,0, +38,1,22,2,223,1,61,1,73,1,117,1,62,1,64,1,159,1,175,1,73,1,10,1,29,1,234,0,110,0,26,0, +147,255,201,254,195,254,128,255,162,255,25,255,15,255,76,255,239,254,138,254,232,254,176,255,85,0,122,0,46,0,47,0, +206,0,114,1,172,1,139,1,46,1,181,0,86,0,74,0,167,0,1,1,199,0,69,0,36,0,99,0,175,0,189,0, +116,0,11,0,177,255,194,255,68,0,20,0,232,254,4,254,230,253,101,254,29,255,34,255,230,254,78,255,102,255,196,254, +169,254,101,255,72,0,195,0,98,0,143,255,83,255,183,255,41,0,204,0,160,1,238,1,108,1,133,0,223,255,13,0, +222,0,188,1,134,2,233,2,128,2,156,1,215,0,198,0,157,1,160,2,255,2,46,2,218,255,63,253,108,252,105,253, +179,254,126,255,90,255,221,253,163,251,249,249,228,249,151,251,184,253,205,254,68,255,35,0,83,1,72,2,158,2,33,2, +33,1,48,0,197,255,10,0,155,0,170,0,22,0,200,255,24,0,51,0,243,255,47,0,175,0,141,0,62,0,210,0, +53,2,114,3,150,3,122,2,27,1,62,0,175,255,53,255,209,254,194,254,60,255,155,255,142,255,1,0,32,1,49,2, +199,2,102,2,211,1,187,2,253,3,74,3,47,1,15,255,60,253,45,252,241,251,241,251,196,251,124,251,208,251,4,253, +68,254,74,255,70,0,197,0,153,0,78,0,126,0,52,1,235,1,63,2,166,1,224,255,53,254,196,253,74,254,79,255, +251,255,164,255,230,254,98,254,67,254,155,254,30,255,89,255,203,254,196,253,115,253,216,253,88,254,49,255,35,0,177,0, +228,0,147,0,56,0,135,0,246,0,209,0,32,0,110,255,142,255,119,0,89,1,174,1,84,1,198,0,190,0,248,0, +226,0,205,0,8,1,36,1,243,0,188,0,125,0,51,0,53,0,190,0,101,1,84,1,128,0,156,255,224,254,91,254, +54,254,85,254,221,254,106,255,3,255,9,254,115,253,92,253,190,253,51,254,60,254,60,254,87,254,60,254,81,254,240,254, +157,255,202,255,181,255,216,255,225,255,142,255,158,255,63,0,198,0,5,1,218,0,17,0,63,255,188,254,87,254,129,254, +59,255,137,255,90,255,63,255,25,255,254,254,25,255,17,255,34,255,172,255,54,0,96,0,37,0,151,255,88,255,182,255, +30,0,106,0,26,1,253,1,56,2,143,1,173,0,59,0,62,0,126,0,193,0,216,0,228,0,211,0,101,0,237,255, +198,255,3,0,195,0,174,1,66,2,67,2,135,1,152,0,22,0,184,255,129,255,172,255,217,255,240,255,11,0,41,0, +78,0,53,0,39,0,198,0,124,1,144,1,34,1,120,0,234,255,152,255,115,255,121,255,74,255,236,254,244,254,57,255, +80,255,89,255,173,255,108,0,62,1,188,1,183,1,30,1,115,0,77,0,122,0,197,0,48,1,146,1,231,1,57,2, +89,2,99,2,188,2,66,3,89,3,253,2,142,2,251,1,82,1,179,0,235,255,60,255,46,255,167,255,15,0,215,255, +51,255,228,254,223,254,190,254,204,254,13,255,0,255,215,254,232,254,247,254,59,255,236,255,113,0,168,0,204,0,113,0, +183,255,100,255,140,255,244,255,90,0,56,0,159,255,86,255,151,255,203,255,209,255,244,255,217,255,92,255,59,255,137,255, +195,255,49,0,230,0,226,0,238,255,86,255,166,255,49,0,139,0,80,0,175,255,248,255,249,0,51,1,206,0,102,0, +235,255,194,255,9,0,82,0,144,0,193,0,179,0,105,0,38,0,29,0,104,0,62,1,62,2,66,2,30,1,223,255, +56,255,73,255,233,255,189,0,55,1,242,0,134,0,186,0,58,1,102,1,7,1,76,0,231,255,250,255,200,255,135,255, +18,0,244,0,66,1,16,1,192,0,99,0,1,0,159,255,93,255,79,255,65,255,19,255,251,254,34,255,63,255,234,254, +95,254,24,254,25,254,131,254,74,255,190,255,226,255,65,0,141,0,109,0,7,0,84,255,146,254,97,254,147,254,105,254, +248,253,225,253,46,254,171,254,85,255,198,255,124,255,230,254,205,254,230,254,143,254,78,254,143,254,194,254,182,254,187,254, +8,255,197,255,162,0,47,1,108,1,71,1,218,0,140,0,73,0,21,0,90,0,244,0,79,1,88,1,136,1,251,1, +65,2,22,2,145,1,4,1,172,0,12,0,9,255,183,254,58,255,106,255,22,255,4,255,154,255,183,0,171,1,176,1, +4,1,150,0,169,0,228,0,46,1,119,1,117,1,24,1,142,0,50,0,81,0,174,0,188,0,74,0,137,255,202,254, +115,254,158,254,188,254,73,254,191,253,214,253,87,254,156,254,127,254,40,254,199,253,156,253,160,253,186,253,38,254,186,254, +224,254,188,254,195,254,237,254,55,255,141,255,228,255,137,0,84,1,211,1,9,2,206,1,93,1,124,1,175,1,254,0, +227,255,62,255,26,255,15,255,190,254,13,254,23,253,70,252,61,252,236,252,102,253,17,253,56,252,158,251,185,251,87,252, +2,253,142,253,29,254,178,254,61,255,205,255,77,0,161,0,27,1,210,1,78,2,108,2,133,2,205,2,41,3,92,3, +30,3,84,2,65,1,71,0,137,255,24,255,193,254,22,254,97,253,73,253,186,253,102,254,4,255,73,255,120,255,169,255, +114,255,50,255,200,255,38,1,109,2,40,3,147,3,104,3,54,2,40,1,44,1,21,1,86,0,232,255,249,255,10,0, +12,0,251,255,3,0,136,0,117,1,45,2,86,2,32,2,183,1,69,1,110,1,93,2,49,3,73,3,229,2,116,2, +77,2,152,2,36,3,76,3,190,2,253,1,71,1,87,0,159,255,130,255,67,255,109,254,183,253,148,253,119,253,69,253, +178,253,66,254,229,253,85,253,140,253,242,253,41,254,194,254,153,255,252,255,94,0,126,1,131,2,159,2,139,2,229,2, +136,3,31,4,124,4,212,4,252,4,198,4,227,4,32,5,156,4,176,3,6,3,241,2,138,3,5,4,145,3,81,2, +34,1,235,0,133,1,36,2,207,1,247,255,19,254,169,253,217,253,229,253,52,254,157,254,209,254,213,254,230,254,7,255, +183,254,55,254,38,254,3,254,105,253,156,252,173,251,230,250,227,250,148,251,40,252,62,252,102,252,202,252,22,253,114,253, +14,254,175,254,243,254,176,254,49,254,128,253,124,252,162,251,103,251,168,251,3,252,18,252,17,252,164,252,118,253,153,253, +50,253,23,253,56,253,67,253,147,253,61,254,235,254,114,255,203,255,35,0,63,0,0,0,79,0,83,1,78,2,71,3, +11,4,35,4,136,3,254,1,93,0,64,0,91,1,91,2,172,2,86,2,28,2,119,2,182,2,88,2,220,1,156,1, +96,1,50,1,14,1,171,0,114,0,191,0,45,1,142,1,15,2,214,2,122,3,31,3,16,2,53,1,225,0,43,1, +46,1,70,0,159,255,211,255,96,0,225,0,175,0,244,255,171,255,6,0,174,0,196,0,213,255,252,254,201,254,210,254, +33,255,140,255,244,255,166,0,53,1,19,1,165,0,83,0,45,0,93,0,172,0,175,0,191,0,248,0,215,0,127,0, +20,0,163,255,187,255,25,0,65,0,126,0,123,0,229,255,38,255,148,254,139,254,241,254,76,255,115,255,9,255,77,254, +22,254,87,254,234,254,187,255,104,0,244,0,89,1,212,1,222,2,29,4,33,5,64,5,249,3,125,2,98,1,22,0, +225,254,211,253,25,253,93,253,227,253,229,253,167,253,84,253,26,253,202,252,61,252,218,251,214,251,147,252,251,253,36,255, +226,255,57,0,41,0,86,0,203,0,94,1,78,1,80,255,15,253,54,253,16,255,111,0,175,255,16,253,51,251,82,251, +170,252,94,254,5,255,157,254,170,254,242,254,232,254,102,255,119,0,0,1,118,0,143,255,96,255,245,255,179,0,68,1, +71,1,194,0,85,0,42,0,9,0,22,0,60,0,74,0,146,0,38,1,183,1,29,2,48,2,3,2,232,1,236,1, +33,2,79,2,27,2,10,2,124,2,247,2,92,3,190,3,10,4,62,4,53,4,245,3,117,3,142,2,210,1,118,1, +208,0,62,0,143,0,88,1,212,1,229,1,187,1,53,1,88,0,242,255,26,0,199,255,248,254,144,254,166,254,219,254, +2,255,36,255,93,255,162,255,238,255,23,0,218,255,69,255,152,254,91,254,204,254,241,254,67,254,163,253,133,253,169,253, +6,254,126,254,214,254,237,254,219,254,221,254,205,254,153,254,150,254,183,254,177,254,115,254,9,254,159,253,31,253,103,252, +236,251,234,251,22,252,80,252,152,252,42,253,39,254,33,255,2,0,191,0,157,0,183,255,39,255,60,255,158,255,241,255, +194,255,48,255,208,254,153,254,117,254,162,254,224,254,236,254,242,254,25,255,113,255,200,255,209,255,204,255,222,255,226,255, +255,255,27,0,239,255,159,255,87,255,77,255,146,255,4,0,185,0,97,1,148,1,160,1,201,1,59,2,17,3,157,3, +102,3,184,2,9,2,232,1,56,2,114,2,163,2,150,2,27,2,163,1,107,1,157,1,55,2,167,2,192,2,128,2, +223,1,155,1,28,2,212,2,59,3,32,3,170,2,36,2,225,1,25,2,87,2,19,2,136,1,2,1,199,0,212,0, +171,0,72,0,224,255,78,255,220,254,19,255,200,255,55,0,222,255,0,255,73,254,87,254,25,255,139,255,45,255,129,254, +6,254,213,253,179,253,126,253,45,253,180,252,5,253,114,254,47,255,166,254,0,254,177,253,7,254,187,254,199,254,100,254, +21,254,0,254,155,254,141,255,252,255,174,255,9,255,38,255,51,0,7,1,96,1,163,1,224,1,36,2,74,2,88,2, +120,2,124,2,66,2,186,1,30,1,235,0,1,1,46,1,103,1,38,1,140,0,75,0,78,0,91,0,101,0,28,0, +130,255,24,255,85,255,15,0,162,0,217,0,214,0,173,0,171,0,221,0,224,0,217,0,59,1,183,1,188,1,72,1, +147,0,233,255,188,255,203,255,125,255,250,254,159,254,112,254,154,254,21,255,81,255,8,255,127,254,11,254,220,253,242,253, +12,254,227,253,145,253,95,253,88,253,119,253,209,253,66,254,89,254,237,253,110,253,86,253,136,253,179,253,235,253,77,254, +201,254,97,255,184,255,150,255,147,255,228,255,3,0,232,255,224,255,245,255,44,0,141,0,20,1,97,1,31,1,187,0, +153,0,202,0,87,1,157,1,57,1,206,0,180,0,233,0,93,1,156,1,170,1,185,1,129,1,85,1,163,1,17,2, +66,2,241,1,74,1,254,0,2,1,245,0,188,0,2,0,31,255,239,254,67,255,162,255,250,255,251,255,162,255,83,255, +91,255,222,255,74,0,26,0,203,255,164,255,118,255,64,255,222,254,126,254,131,254,201,254,20,255,32,255,255,254,101,255, +52,0,160,0,117,0,217,255,128,255,25,0,224,0,229,0,80,0,190,255,202,255,114,0,29,1,60,1,167,0,24,0, +68,0,176,0,218,0,246,0,238,0,124,0,231,255,133,255,72,255,65,255,162,255,26,0,77,0,29,0,72,255,247,253, +10,253,1,253,134,253,24,254,123,254,159,254,129,254,97,254,152,254,30,255,162,255,10,0,53,0,186,255,26,255,138,255, +6,1,136,2,30,3,105,2,85,1,197,0,109,0,81,0,121,0,92,0,47,0,82,0,137,0,161,0,91,0,191,255, +55,255,183,254,94,254,142,254,203,254,134,254,41,254,44,254,139,254,80,255,55,0,228,0,199,1,243,2,139,3,81,3, +184,2,91,2,146,2,201,2,156,2,72,2,186,1,36,1,131,0,124,255,249,254,150,255,99,0,214,0,214,0,91,0, +247,255,243,255,20,0,63,0,41,0,141,255,224,254,242,254,208,255,199,0,107,1,143,1,63,1,30,1,123,1,230,1, +224,1,67,1,117,0,248,255,187,255,120,255,75,255,84,255,49,255,155,254,8,254,203,253,213,253,66,254,202,254,252,254, +8,255,41,255,67,255,26,255,133,254,220,253,149,253,173,253,231,253,51,254,173,254,83,255,228,255,68,0,152,0,8,1, +140,1,252,1,17,2,212,1,166,1,74,1,105,0,188,255,152,255,81,255,197,254,72,254,245,253,200,253,197,253,49,254, +188,254,201,254,179,254,227,254,112,255,56,0,129,0,81,0,108,0,14,1,53,2,246,2,122,2,153,1,234,0,195,0, +132,1,246,1,142,1,7,1,49,0,114,255,59,255,229,254,152,254,116,254,125,254,64,255,193,255,86,255,34,255,74,255, +122,255,160,255,89,255,96,255,89,0,116,1,13,2,214,1,37,1,23,1,164,1,247,1,205,1,73,1,213,0,174,0, +202,0,42,1,130,1,156,1,115,1,225,0,82,0,65,0,76,0,253,255,94,255,245,254,55,255,192,255,37,0,143,0, +227,0,125,0,153,255,152,255,130,0,235,0,173,0,88,0,63,0,188,0,237,0,76,0,31,0,138,0,156,0,222,255, +39,254,193,252,223,252,160,253,20,254,189,253,236,252,48,253,125,254,127,255,229,255,171,255,92,255,150,255,7,0,128,0, +179,0,69,0,156,255,252,254,196,254,49,255,154,255,205,255,238,255,10,0,135,0,248,0,233,0,237,0,100,1,88,2, +222,2,185,1,224,255,248,254,69,255,81,0,78,1,161,1,12,1,46,0,132,0,118,1,61,1,48,0,22,255,125,254, +254,254,129,255,82,255,104,255,238,255,110,0,187,0,190,0,220,0,68,1,113,1,81,1,123,1,65,2,72,3,26,4, +132,4,190,4,67,5,190,5,97,5,99,4,120,3,30,3,38,3,117,2,114,0,181,253,82,251,50,250,254,249,226,249, +1,250,70,250,7,250,128,249,172,249,228,250,82,252,251,252,16,253,127,253,172,254,30,0,0,1,203,0,249,255,217,255, +170,0,118,1,240,1,31,2,192,1,31,1,173,0,182,0,30,1,49,1,3,1,209,0,10,0,10,255,171,254,237,254, +152,255,245,255,93,255,90,254,156,253,124,253,239,253,64,254,32,254,244,253,26,254,176,254,20,255,178,254,59,254,71,254, +149,254,237,254,243,254,172,254,2,255,226,255,75,0,30,0,166,255,109,255,4,0,192,0,244,0,234,0,228,0,77,1, +222,1,141,1,203,0,95,0,71,0,165,0,219,0,115,0,75,0,114,0,137,0,216,0,45,1,86,1,99,1,73,1, +101,1,217,1,71,2,96,2,223,1,15,1,87,0,140,255,196,254,47,254,172,253,98,253,108,253,142,253,188,253,215,253, +162,253,143,253,76,254,102,255,1,0,4,0,213,255,77,0,180,1,218,2,242,2,60,2,71,1,245,0,73,1,101,1, +65,1,49,1,109,1,31,2,214,2,31,3,171,2,143,1,180,0,42,0,79,255,157,254,140,254,5,255,220,255,114,0, +91,0,173,255,173,254,253,253,215,253,246,253,94,254,241,254,94,255,128,255,108,255,121,255,208,255,55,0,108,0,84,0, +6,0,160,255,113,255,203,255,80,0,150,0,132,0,251,255,96,255,34,255,78,255,19,0,0,1,83,1,13,1,113,0, +57,0,239,0,199,1,9,2,122,1,76,0,154,255,171,255,220,255,245,255,164,255,71,255,151,255,239,255,19,0,118,0, +224,0,117,1,234,1,93,1,49,0,245,254,252,253,221,253,57,254,108,254,59,254,173,253,189,253,150,254,41,255,120,255, +200,255,6,0,99,0,140,0,103,0,89,0,113,0,237,0,116,1,50,1,148,0,57,0,14,0,234,255,200,255,197,255, +118,255,198,254,169,254,5,255,36,255,166,254,26,253,38,252,110,253,246,254,35,255,121,254,130,253,123,253,138,254,54,255, +133,255,55,0,48,1,28,2,116,2,101,2,209,2,161,3,23,4,8,4,209,3,137,3,28,3,231,2,6,3,45,3, +28,3,60,2,233,0,166,0,79,1,107,1,180,0,215,255,108,255,186,255,183,0,31,2,90,3,211,3,85,3,60,2, +110,1,159,1,178,2,150,3,51,3,241,1,254,0,209,0,87,1,217,1,163,1,42,1,230,0,186,0,178,0,187,0, +153,0,53,0,179,255,109,255,9,255,17,254,31,253,144,252,88,252,162,252,253,252,228,252,82,252,81,251,180,250,22,251, +190,251,89,252,181,252,42,252,98,251,119,251,67,252,69,253,14,254,118,254,119,254,14,254,246,253,93,254,118,254,40,254, +148,253,255,252,91,253,124,254,105,255,172,255,38,255,163,254,190,254,226,254,223,254,164,254,66,254,148,254,128,255,32,0, +75,0,54,0,74,0,166,0,221,0,242,0,26,1,106,1,252,1,152,2,239,2,205,2,89,2,33,2,89,2,214,2, +35,3,205,2,104,2,126,2,215,2,84,3,80,3,118,2,145,1,250,0,233,0,145,1,18,2,208,1,245,0,251,255, +200,255,71,0,112,0,11,0,99,255,213,254,240,254,205,255,165,0,148,0,177,255,201,254,120,254,214,254,18,255,160,254, +63,254,50,254,245,253,152,253,78,253,62,253,142,253,220,253,224,253,247,253,52,254,55,254,27,254,52,254,143,254,112,255, +113,0,128,0,48,0,104,0,117,0,79,0,178,0,105,1,11,2,2,2,243,0,33,0,183,0,211,1,21,2,80,1, +71,0,11,0,173,0,211,0,50,0,5,0,84,0,125,0,109,0,35,0,146,0,244,1,117,2,203,1,119,1,3,2, +26,3,172,3,207,2,240,0,249,254,37,254,246,254,20,0,126,0,119,0,96,0,179,0,91,1,118,1,199,0,233,255, +81,255,41,255,120,255,217,255,25,0,79,0,252,255,131,255,49,0,65,1,90,1,251,0,197,0,240,0,71,1,249,0, +13,0,2,255,72,254,99,254,203,254,202,254,124,254,235,253,89,253,11,253,253,252,120,253,31,254,97,254,128,254,147,254, +202,254,97,255,231,255,47,0,53,0,222,255,158,255,194,255,96,0,133,1,77,2,215,1,121,0,42,255,236,254,198,255, +129,0,87,0,217,255,150,255,108,255,154,255,85,0,167,0,6,0,97,255,121,255,253,255,42,0,156,255,201,254,109,254, +206,254,117,255,150,255,30,255,217,254,103,255,87,0,202,0,187,0,153,0,102,0,52,0,36,0,3,0,198,255,221,255, +115,0,201,0,102,0,253,255,15,0,83,0,67,0,156,255,45,255,186,255,159,0,31,1,25,1,204,0,226,0,134,1, +89,2,227,2,161,2,226,1,89,1,59,1,165,1,16,2,243,1,12,2,149,2,220,2,244,2,248,2,149,2,244,1, +123,1,95,1,125,1,154,1,234,1,27,2,82,1,33,0,218,255,45,0,41,0,248,255,196,255,85,255,236,254,179,254, +169,254,3,255,125,255,185,255,119,255,104,254,151,253,253,253,103,254,14,254,153,253,102,253,158,253,247,253,22,254,90,254, +175,254,167,254,56,254,113,253,19,253,78,253,136,253,85,254,113,255,152,255,120,255,182,255,51,0,109,1,76,2,181,1, +17,1,37,1,121,1,253,1,61,2,244,1,112,1,173,0,198,255,49,255,34,255,81,255,56,255,206,254,82,254,220,253, +204,253,91,254,248,254,202,254,118,253,194,251,26,251,206,251,212,252,79,253,31,253,167,252,168,252,134,253,210,254,194,255, +223,255,113,255,39,255,76,255,131,255,21,255,47,254,255,253,87,254,94,254,204,254,230,255,213,0,75,1,9,1,87,0, +102,0,87,1,45,2,50,2,152,1,18,1,247,0,169,1,22,3,208,3,236,2,201,0,190,254,166,254,68,0,237,1, +6,3,69,3,113,3,145,4,6,5,201,3,148,2,43,2,217,1,114,1,94,1,167,1,193,1,166,1,161,1,111,1, +65,1,148,1,239,1,149,1,211,0,145,0,184,0,176,0,162,0,148,0,90,0,72,0,142,0,1,1,45,1,241,0, +187,0,94,0,191,255,55,255,167,254,136,254,50,255,232,255,92,0,11,0,13,255,2,255,124,255,4,255,93,254,92,254, +36,255,84,0,147,0,177,255,139,254,224,253,98,254,100,255,228,255,245,255,138,255,240,254,213,254,51,255,175,255,168,255, +60,255,92,255,168,255,86,255,127,254,148,253,92,253,194,253,241,253,188,253,199,252,178,251,47,252,88,253,77,253,119,252, +151,251,8,251,88,251,78,252,89,253,67,254,218,254,60,255,193,255,161,0,124,1,150,1,92,1,219,1,181,2,28,3, +2,3,142,2,42,2,226,1,61,1,189,0,4,1,149,1,246,1,205,1,49,1,23,1,105,1,32,1,115,0,35,0, +53,0,81,0,33,0,199,255,167,255,181,255,126,255,243,254,138,254,126,254,183,254,18,255,42,255,32,255,117,255,235,255, +50,0,105,0,215,0,217,1,195,2,159,2,214,1,246,0,73,0,74,0,230,0,152,1,124,1,87,0,167,255,50,0, +39,1,243,1,34,2,225,1,1,2,77,2,86,2,251,1,60,1,45,1,215,1,152,1,129,0,195,255,138,255,178,255, +181,255,54,255,19,255,191,255,129,0,202,0,116,0,226,255,198,255,255,255,244,255,176,255,162,255,36,0,208,0,171,0, +149,255,88,254,228,253,164,254,142,255,134,255,168,254,133,253,65,253,84,254,125,255,235,255,119,255,145,254,244,254,105,0, +19,1,31,1,250,0,106,0,228,255,104,255,248,254,219,254,11,255,227,255,119,0,170,255,245,254,29,255,88,255,143,255, +59,255,134,254,219,254,247,255,207,0,244,0,53,0,159,255,46,0,4,1,35,1,190,0,107,0,27,0,149,255,61,255, +59,255,60,255,6,255,147,254,97,254,231,254,19,0,54,1,24,1,219,255,67,255,193,255,133,0,30,1,19,1,99,0, +173,255,83,255,176,255,189,0,110,1,4,1,253,255,32,255,236,254,154,255,123,0,222,0,77,1,216,1,180,1,83,1, +120,1,13,2,205,2,186,2,25,1,58,255,146,254,1,255,214,255,109,0,75,0,172,255,64,255,131,255,134,0,215,1, +199,2,245,2,66,2,234,0,201,255,117,255,181,255,52,0,188,0,44,1,102,1,101,1,114,1,149,1,120,1,2,1, +89,0,227,255,183,255,105,255,124,255,114,0,65,1,39,1,114,0,191,255,232,255,208,0,103,1,65,1,166,0,50,0, +80,0,178,0,244,0,223,0,135,0,126,0,225,0,38,1,221,0,216,255,164,254,68,254,191,254,54,255,49,255,2,255, +64,255,233,255,80,0,100,0,208,0,63,1,236,0,109,0,102,0,177,0,55,1,74,1,122,0,203,255,180,255,144,255, +56,255,172,254,21,254,21,254,114,254,82,254,34,254,72,254,249,253,116,253,199,253,171,254,133,255,163,255,74,254,249,252, +113,253,201,254,153,255,88,255,105,254,81,254,27,255,60,255,159,254,19,254,191,253,137,253,87,253,54,253,127,253,52,254, +137,254,42,254,22,254,166,254,41,255,155,255,230,255,224,255,226,255,180,255,165,255,162,0,244,1,119,2,237,1,158,0, +2,0,213,0,191,1,206,1,24,1,69,0,84,0,230,0,199,0,207,255,154,254,29,254,197,254,206,255,112,0,153,0, +157,0,240,0,124,1,203,1,242,1,86,2,143,2,14,2,126,1,119,1,91,1,188,0,174,255,172,254,187,254,120,255, +110,255,145,254,147,253,252,252,59,253,254,253,177,254,27,255,62,255,129,255,31,0,20,1,240,1,217,1,96,1,76,1, +142,0,16,255,11,254,196,253,73,254,253,254,217,254,117,254,118,254,211,254,129,255,143,255,198,254,108,254,210,254,141,255, +64,0,124,0,154,0,252,0,99,1,159,1,107,1,230,0,169,0,175,0,182,0,143,0,247,255,105,255,179,255,212,0, +230,1,214,1,180,0,213,255,8,0,220,0,147,1,152,1,246,0,177,0,100,1,137,2,189,3,181,4,231,4,90,4, +50,3,228,1,129,1,178,1,35,1,242,255,238,254,116,254,137,254,196,254,212,254,217,254,232,254,216,254,129,254,76,254, +143,254,223,254,247,254,241,254,240,254,33,255,56,255,229,254,118,254,27,254,228,253,229,253,39,254,134,254,125,254,38,254, +56,254,107,254,85,254,71,254,80,254,135,254,207,254,128,254,229,253,234,253,154,254,72,255,17,255,249,253,31,253,222,252, +215,252,252,252,10,253,19,253,138,253,11,254,35,254,40,254,162,254,18,0,200,1,2,2,28,1,8,1,242,1,241,2, +3,4,71,5,75,6,198,6,241,6,230,6,137,6,214,5,122,4,163,2,65,1,107,0,225,255,214,255,239,255,13,0, +179,0,216,1,45,3,40,4,9,4,54,3,175,2,161,2,127,2,210,1,223,0,182,255,251,253,56,252,47,251,226,250, +32,251,107,251,146,251,25,252,27,253,72,254,108,255,67,0,216,0,103,1,235,1,44,2,41,2,21,2,187,1,13,1, +222,0,76,1,119,1,74,1,34,1,0,1,4,1,80,1,193,1,21,2,232,1,243,0,231,255,20,0,81,1,233,1, +35,1,134,255,221,253,15,253,13,253,251,252,232,252,234,252,158,252,81,252,32,252,251,251,187,252,13,254,102,254,245,253, +208,253,91,254,136,255,112,0,94,0,183,255,9,255,242,254,106,255,171,255,206,255,214,255,55,255,128,254,104,254,218,254, +155,255,60,0,165,0,22,1,103,1,131,1,111,1,73,1,81,1,81,1,30,1,217,0,172,0,19,1,247,1,141,2, +112,2,194,1,62,1,112,1,206,1,35,2,176,2,69,3,160,3,141,3,15,3,71,2,108,1,32,1,96,1,165,1, +189,1,31,1,103,0,4,1,56,2,164,2,170,1,70,255,189,253,138,254,226,255,75,0,139,255,68,254,36,254,118,255, +35,1,46,2,234,1,32,1,212,0,202,0,212,0,209,0,171,0,210,0,5,1,161,0,230,255,109,255,9,255,24,254, +255,252,127,252,80,252,82,252,132,252,75,252,197,251,178,251,75,252,52,253,160,253,85,253,35,253,212,253,34,255,202,255, +110,255,8,255,212,254,153,254,119,254,72,254,99,254,50,255,233,255,4,0,252,255,87,0,122,1,221,2,56,3,172,2, +98,2,115,2,93,2,11,2,103,1,131,0,215,255,96,255,0,255,244,254,195,254,207,253,155,252,203,251,116,251,125,251, +135,251,170,251,122,252,223,253,72,255,121,0,69,1,152,1,138,1,57,1,43,1,182,1,50,2,24,2,203,1,181,1, +223,1,2,2,152,1,162,0,183,255,25,255,146,254,49,254,82,254,39,255,131,0,159,1,200,1,163,1,0,2,152,2, +30,3,115,3,38,3,89,2,186,1,137,1,91,1,207,0,88,0,108,0,158,0,118,0,181,255,142,254,233,253,15,254, +126,254,245,254,73,255,141,255,224,255,190,255,30,255,216,254,130,255,244,0,55,2,70,2,74,1,53,0,151,255,122,255, +192,255,243,255,109,255,70,254,48,253,185,252,35,253,222,253,48,254,102,254,197,254,20,255,78,255,54,255,216,254,221,254, +97,255,83,0,140,1,14,2,149,1,24,1,240,0,216,0,216,0,205,0,105,0,179,255,32,255,18,255,150,255,161,0, +142,1,64,1,249,255,32,255,55,255,178,255,227,255,145,255,39,255,59,255,218,255,103,0,146,0,203,0,241,0,142,0, +39,0,25,0,232,255,110,255,238,254,195,254,43,255,246,255,173,0,221,0,166,0,143,0,149,0,147,0,98,0,210,255, +123,255,188,255,76,0,17,1,77,1,161,0,43,0,51,0,36,0,197,255,230,254,72,254,186,254,56,255,249,254,149,254, +157,254,38,255,177,255,158,255,40,255,23,255,128,255,172,255,90,255,209,254,104,254,186,254,136,255,41,0,63,1,159,2, +170,2,76,1,170,255,164,254,136,254,126,254,225,253,18,253,129,252,194,252,224,253,0,255,209,255,66,0,38,0,244,255, +6,0,47,0,48,0,209,255,98,255,117,255,8,0,224,0,125,1,115,1,92,1,137,1,109,1,75,1,112,1,55,1, +196,0,169,0,197,0,57,1,204,1,177,1,85,1,92,1,55,1,207,0,189,0,251,0,71,1,105,1,13,1,205,0, +175,1,253,2,74,3,140,2,115,1,237,0,33,1,163,0,142,255,133,255,29,0,85,0,25,0,86,255,253,254,214,255, +253,0,145,1,39,1,38,0,219,255,123,0,110,1,24,2,215,1,44,1,206,0,202,0,83,1,12,2,71,2,215,1, +247,0,174,0,251,0,167,0,55,0,91,0,99,0,34,0,150,255,17,255,131,255,75,0,69,0,198,255,96,255,96,255, +236,255,219,0,231,1,65,2,105,1,60,0,159,255,97,255,231,254,27,254,168,253,255,253,165,254,252,254,31,255,73,255, +76,255,58,255,61,255,60,255,96,255,126,255,27,255,195,254,3,255,110,255,147,255,61,255,179,254,145,254,163,254,91,254, +148,253,156,252,121,252,101,253,7,254,183,253,252,252,155,252,99,253,179,254,255,254,189,254,50,255,201,255,178,255,84,255, +64,255,150,255,237,255,195,255,79,255,16,255,209,254,53,254,197,253,245,253,28,254,21,254,147,254,107,255,65,0,237,0, +235,0,215,0,123,1,9,2,51,2,43,2,154,1,77,1,199,1,202,1,56,1,230,0,176,0,156,0,233,0,90,1, +222,1,10,2,68,1,69,0,60,0,0,1,133,1,52,1,98,0,208,255,182,255,243,255,145,0,33,1,3,1,114,0, +253,255,197,255,201,255,40,0,0,1,29,2,13,3,140,3,59,3,223,1,39,0,229,254,115,254,219,254,136,255,3,0, +153,0,55,1,118,1,147,1,130,1,237,0,51,0,165,255,82,255,139,255,51,0,235,0,135,1,174,1,82,1,210,0, +110,0,61,0,17,0,42,0,0,1,138,1,218,0,233,255,114,255,131,255,49,0,224,0,18,1,181,0,0,0,253,255, +28,1,123,2,3,3,37,2,222,0,35,0,33,255,202,253,239,252,123,252,78,252,171,251,247,249,199,248,101,249,15,251, +164,252,122,253,222,253,107,254,16,255,127,255,104,255,17,255,24,255,98,255,229,255,139,0,250,0,64,1,168,0,37,255, +194,254,153,255,196,255,216,254,89,253,120,252,23,253,18,254,149,254,228,254,39,255,214,255,232,0,242,1,62,3,159,4, +163,5,84,6,192,6,254,6,167,6,112,5,20,4,199,2,60,1,128,255,156,253,125,252,180,252,221,252,145,252,249,252, +229,253,84,254,199,253,107,252,170,251,172,252,159,254,36,0,229,0,92,1,84,2,219,3,250,4,65,5,1,5,74,4, +70,3,101,2,217,1,170,1,202,1,29,2,37,2,107,1,159,0,101,0,78,0,19,0,142,255,187,254,16,254,230,253, +147,254,105,255,229,254,160,253,58,253,1,254,122,255,60,0,135,255,31,254,209,252,79,253,226,255,79,1,36,0,199,253, +236,251,124,252,126,254,28,255,79,254,101,253,234,253,83,0,24,2,81,2,103,2,99,2,98,2,119,2,54,2,103,2, +248,2,238,2,28,2,77,0,92,254,194,253,115,254,213,255,209,0,185,0,116,0,90,0,116,0,156,0,22,255,105,252, +187,251,43,253,173,254,113,255,105,255,74,255,249,255,245,0,78,1,205,0,200,255,229,254,70,254,113,253,174,252,166,252, +14,253,183,253,16,255,193,0,221,1,227,1,220,0,84,255,8,254,7,254,186,255,45,1,86,0,253,253,30,252,4,252, +172,253,165,255,185,0,159,0,125,255,111,254,100,254,205,254,114,255,92,0,106,0,86,255,68,254,216,253,99,254,135,255, +38,0,143,0,107,1,239,1,188,1,52,1,190,0,224,0,169,1,214,2,96,3,236,1,2,0,89,0,83,2,253,3, +153,4,174,3,114,1,179,254,213,251,183,249,165,249,29,251,125,252,239,253,218,255,38,1,131,1,243,0,113,255,208,254, +231,255,90,1,142,2,13,3,232,2,91,3,253,3,243,3,185,3,58,3,95,2,183,1,130,1,75,1,25,0,173,254, +175,254,105,255,240,255,229,0,61,2,18,3,188,2,120,1,157,255,5,253,55,251,254,251,41,254,254,255,251,0,236,0, +129,0,146,0,254,0,32,1,111,0,76,255,141,254,201,254,45,0,215,1,176,2,63,2,244,0,89,0,135,0,46,0, +200,255,35,0,223,0,168,1,87,2,8,3,98,3,113,3,203,4,75,6,1,5,249,1,26,255,158,252,124,251,183,251, +78,252,232,252,232,252,129,252,225,252,63,254,233,255,206,0,166,0,88,0,57,0,54,0,136,0,68,1,81,2,21,3, +19,3,79,2,181,0,46,255,221,254,239,254,165,254,216,254,154,255,197,255,53,255,221,254,224,254,30,255,162,255,172,255, +123,255,46,0,218,0,157,0,246,255,41,255,46,255,237,255,106,255,13,254,95,253,77,253,228,253,131,254,104,254,165,254, +65,255,250,254,255,253,66,253,149,253,251,254,2,0,156,255,53,254,187,252,253,251,143,252,64,254,173,255,168,255,118,254, +7,253,126,252,54,253,185,253,30,253,84,252,121,252,248,253,162,255,225,255,167,255,93,0,95,1,56,2,36,3,6,4, +205,4,2,5,71,4,102,3,236,2,111,2,236,1,189,1,189,1,155,1,62,1,191,0,121,0,161,0,233,0,202,0, +39,0,167,255,8,0,225,0,35,1,186,0,119,0,29,1,167,2,230,3,147,3,211,1,253,255,64,255,185,255,157,0, +13,1,246,0,6,1,159,1,236,2,253,4,109,6,201,5,232,3,13,2,137,0,162,255,16,255,165,254,30,255,99,0, +86,1,73,1,76,0,228,254,150,253,26,253,221,253,150,254,58,254,198,253,167,253,117,253,197,253,190,254,122,255,161,255, +104,255,22,255,233,254,204,254,230,254,70,255,34,255,146,254,166,254,239,254,142,254,52,254,140,254,147,255,255,0,250,1, +24,2,146,1,217,0,183,0,34,1,110,1,161,1,137,1,56,1,67,1,243,0,9,0,169,255,19,0,242,0,84,1, +200,255,123,253,207,252,137,253,59,254,97,254,70,254,166,254,168,255,99,0,94,0,48,0,204,255,235,254,185,254,194,255, +233,0,100,1,159,0,25,255,230,254,51,0,97,1,149,1,133,0,78,255,109,255,222,255,81,255,60,254,102,253,41,253, +87,253,134,253,141,253,102,253,110,253,217,253,99,254,21,255,203,255,5,0,193,255,90,255,72,255,200,255,84,0,73,0, +191,255,89,255,97,255,167,255,4,0,62,0,99,0,192,0,11,1,6,1,136,0,87,255,133,254,255,254,253,255,162,0, +99,0,142,255,142,255,198,0,63,2,183,2,176,1,148,0,140,0,22,1,221,1,114,2,85,2,191,1,236,0,42,0, +161,255,87,255,198,255,150,0,77,1,35,2,67,2,107,1,149,0,164,255,191,254,94,254,23,254,95,254,96,255,236,255, +223,255,190,255,196,255,86,0,58,1,141,1,18,1,136,0,103,0,83,0,79,0,45,0,75,255,48,254,151,253,189,253, +202,254,146,255,62,255,214,254,211,254,249,254,86,255,183,255,136,255,31,254,116,252,133,252,3,254,101,255,183,255,0,255, +85,255,111,1,21,3,230,2,173,0,17,254,39,254,198,255,246,255,163,255,12,0,202,0,165,1,29,2,57,2,98,2, +14,2,39,1,162,0,63,1,121,2,255,2,234,2,14,3,69,3,111,3,67,3,115,2,189,1,72,1,171,0,110,0, +155,0,127,0,250,255,75,255,208,254,163,254,133,254,150,254,30,255,232,255,47,0,135,255,157,254,82,254,75,255,238,0, +208,0,190,254,73,253,113,253,253,254,151,0,231,255,61,254,11,254,96,254,169,254,49,255,144,255,254,255,197,255,140,254, +212,253,203,253,174,254,185,0,25,1,34,255,197,253,249,253,16,255,160,255,73,254,223,252,85,253,10,255,18,1,252,1, +11,1,51,0,169,0,135,1,1,2,158,1,149,0,249,255,42,0,240,0,53,2,79,3,131,3,195,2,66,1,35,0, +179,0,8,2,176,2,149,2,217,1,60,1,124,1,201,1,140,1,250,0,75,0,28,0,18,0,57,255,4,254,5,253, +95,252,91,252,125,252,92,252,99,252,163,252,241,252,155,253,189,254,180,255,19,0,1,0,152,255,136,255,84,0,6,1, +24,1,240,0,201,0,74,1,75,2,228,2,69,3,115,3,52,3,153,2,69,1,25,0,66,0,55,1,89,2,123,2, +181,0,147,254,87,253,131,253,40,255,7,0,45,255,43,254,92,253,255,252,116,253,208,253,4,254,104,254,61,254,72,253, +92,252,34,252,74,252,155,252,124,253,61,254,55,254,247,253,189,253,56,254,183,255,151,0,73,0,253,255,70,0,26,1, +157,1,254,0,79,0,144,0,38,1,159,1,101,2,124,3,15,4,200,3,112,3,185,3,75,4,47,4,45,3,33,2, +176,1,159,1,2,1,78,255,35,253,98,251,183,250,34,251,116,251,61,251,125,251,206,252,226,254,140,0,0,1,193,0, +2,0,40,255,111,255,214,0,171,2,171,4,84,6,83,7,182,7,204,7,200,7,43,7,243,5,153,4,133,3,76,3, +190,2,61,0,139,253,114,252,118,252,41,253,139,253,225,252,146,252,102,253,136,254,140,255,57,0,29,0,135,255,110,255, +249,255,124,0,204,0,193,0,20,0,82,255,1,255,4,255,25,255,233,254,156,254,154,254,180,254,183,254,167,254,84,254, +251,253,38,254,199,254,107,255,243,255,85,0,78,0,228,255,137,255,154,255,154,255,137,254,69,253,92,253,227,253,165,253, +73,253,102,253,37,254,49,255,182,255,182,255,142,255,199,255,12,1,73,2,20,2,12,1,82,0,94,0,198,0,152,0, +213,255,62,255,55,255,150,255,217,255,216,255,165,255,102,255,110,255,138,255,182,255,65,0,152,0,169,0,239,0,230,0, +186,0,73,1,13,2,238,1,192,0,146,255,99,255,253,255,208,0,26,1,185,0,223,0,86,1,67,1,89,1,97,1, +222,0,1,1,238,1,128,2,36,2,19,1,26,0,96,255,190,254,147,254,174,254,29,255,235,255,14,0,154,255,69,255, +13,255,57,255,2,255,134,253,52,252,53,252,68,253,185,254,121,255,139,255,177,255,249,255,147,0,19,1,196,0,255,255, +69,255,142,255,20,1,14,2,216,1,45,1,229,0,74,2,6,4,179,3,159,2,123,2,39,3,12,4,64,3,164,0, +247,254,176,254,192,254,72,255,234,255,116,0,247,0,110,0,88,255,121,255,144,0,187,1,100,2,147,1,85,0,62,0, +253,255,243,254,182,254,63,255,125,255,101,255,43,255,19,255,240,254,106,254,230,253,186,253,210,253,221,253,152,253,161,253, +225,253,108,253,239,252,79,253,100,254,192,255,48,0,119,255,3,255,81,255,254,255,132,0,76,0,187,255,76,255,19,255, +101,255,205,255,132,255,255,254,48,255,71,0,94,1,167,1,54,1,150,0,139,0,18,1,228,1,216,2,250,1,228,254, +19,253,242,253,218,255,58,1,158,0,213,254,39,254,162,254,172,255,204,0,2,1,71,0,101,255,102,255,158,0,251,1, +199,2,192,2,55,2,57,2,45,2,121,1,22,1,245,0,5,1,121,1,75,1,136,0,18,0,39,0,206,0,42,1, +169,0,192,255,223,254,35,255,81,0,179,0,210,0,109,1,189,1,161,1,243,0,201,255,23,255,25,255,104,255,131,255, +94,255,30,255,6,254,183,252,192,252,64,253,6,253,84,252,230,251,180,252,25,254,120,254,9,254,192,253,41,254,83,255, +158,0,97,1,237,0,130,255,206,254,90,255,74,0,250,0,15,1,103,0,21,255,222,253,119,253,124,253,4,254,21,255, +153,255,185,255,19,0,58,0,253,255,25,255,214,253,166,253,208,254,22,0,57,0,190,255,88,0,95,1,87,1,133,0, +100,255,75,255,243,0,61,2,81,2,7,2,140,1,221,1,219,2,238,2,183,2,52,3,180,3,189,3,62,3,110,2, +201,1,86,1,182,0,177,255,190,254,116,254,227,254,16,0,58,1,67,1,161,0,78,0,123,0,15,1,92,1,166,0, +144,255,75,255,173,255,146,255,238,254,175,254,50,255,241,255,249,255,26,255,98,254,173,254,226,255,5,1,37,1,197,0, +170,0,198,0,42,1,225,1,138,2,136,2,152,1,145,0,243,255,109,255,54,255,251,254,52,254,210,253,107,254,70,255, +219,255,3,0,210,255,162,255,175,255,144,255,172,254,225,253,55,254,16,255,160,255,95,255,134,254,141,254,63,255,46,255, +7,255,116,255,145,255,24,255,166,254,218,254,193,255,222,0,196,1,189,1,164,0,161,255,89,255,156,255,34,0,24,0, +164,255,17,0,216,0,153,0,226,255,104,255,36,255,87,255,83,255,130,254,89,254,67,255,225,255,227,255,99,255,241,254, +234,255,157,1,98,2,21,2,0,1,143,0,205,1,128,2,216,1,44,2,162,3,153,4,46,4,196,1,66,255,125,255, +40,1,217,1,166,1,231,0,40,0,46,0,89,0,53,0,210,255,210,254,166,253,12,253,76,253,150,254,227,255,247,255, +61,255,125,254,246,253,215,253,168,254,35,0,63,0,184,254,195,253,37,254,237,255,233,1,33,1,86,255,71,0,35,2, +122,2,133,1,216,255,83,255,82,0,145,0,158,255,126,254,245,253,98,254,196,254,71,254,85,253,154,252,240,252,30,254, +42,255,231,255,32,0,17,0,137,0,24,1,76,1,88,1,7,1,251,0,144,1,28,1,33,255,116,253,217,252,210,252, +127,253,197,254,195,255,62,0,157,0,244,0,38,1,17,1,204,0,179,0,219,0,18,1,237,0,61,0,195,255,49,0, +14,1,102,1,238,0,67,0,19,0,103,0,11,1,204,1,68,2,48,2,224,1,241,1,44,2,197,1,234,0,82,0, +39,0,121,0,18,1,252,0,234,255,207,254,38,254,7,254,245,254,87,0,56,1,25,2,142,2,146,1,67,0,134,255, +7,255,4,255,31,255,236,254,239,254,176,254,167,253,201,252,223,252,107,253,186,253,117,254,54,0,155,1,232,1,16,2, +209,2,175,4,195,6,239,6,103,4,172,255,68,251,199,249,51,249,142,247,46,247,41,249,121,252,79,0,165,2,169,2, +41,2,215,1,138,1,181,1,226,1,110,1,176,0,249,255,15,0,236,1,57,4,176,4,222,3,114,3,30,3,27,2, +208,0,186,255,22,255,238,254,205,254,159,254,24,255,23,0,145,0,24,0,39,255,219,254,183,255,114,0,37,0,99,255, +69,254,215,252,248,251,30,252,227,252,94,253,101,253,168,253,136,253,39,253,181,254,37,1,47,1,133,255,55,254,169,253, +149,254,135,0,124,1,55,1,255,255,190,253,160,252,81,254,228,0,66,2,219,1,45,0,81,255,95,0,11,2,89,3, +253,3,204,3,51,3,222,2,96,3,8,4,185,3,112,3,178,3,240,2,77,0,6,252,93,248,164,248,174,251,166,253, +175,253,249,252,122,253,119,0,123,4,34,8,43,11,88,12,243,10,222,7,78,4,176,1,239,255,189,252,181,247,157,243, +151,242,177,244,98,248,35,251,123,252,44,254,117,0,113,2,228,3,88,4,158,3,170,2,181,2,218,3,167,4,69,4, +71,3,232,1,102,0,115,255,59,255,125,255,161,255,131,255,111,255,25,255,110,255,88,1,62,2,107,0,125,254,210,254, +237,0,157,2,38,2,16,0,28,254,196,253,74,255,18,1,71,1,51,255,173,251,95,249,198,249,138,251,73,253,133,254, +162,254,234,253,165,253,3,254,81,254,202,254,152,255,91,0,140,1,163,2,5,2,136,0,40,0,71,1,1,3,61,3, +25,1,3,255,55,255,87,1,174,3,162,4,86,4,21,4,68,4,138,4,84,4,119,3,224,2,237,2,120,2,202,0, +124,254,118,252,118,251,173,251,12,253,19,0,220,3,75,5,239,2,121,254,119,250,173,248,88,248,63,247,83,245,30,244, +199,244,227,247,156,252,209,0,189,2,70,2,38,1,194,0,223,0,189,0,2,0,116,255,232,255,2,1,89,2,85,3, +186,3,215,4,81,6,47,6,152,4,92,2,45,0,82,255,57,255,122,254,50,253,1,252,174,251,68,252,219,252,63,253, +159,253,131,254,71,0,238,0,76,255,232,253,161,254,86,0,93,1,21,1,112,0,155,0,21,1,229,0,81,0,15,0, +96,0,60,1,254,1,19,2,32,2,96,2,29,2,163,1,101,1,65,1,173,1,146,2,70,3,205,3,232,3,145,3, +41,3,97,2,129,1,252,0,87,0,194,255,110,255,245,254,198,254,196,254,60,254,183,253,180,253,11,254,139,254,209,254, +215,254,193,254,210,254,166,255,212,0,140,1,195,1,70,1,179,0,2,1,60,1,140,0,157,255,237,254,247,254,196,255, +105,0,111,0,0,0,185,255,104,0,128,1,157,1,108,0,246,254,165,254,134,255,84,0,109,0,248,255,102,255,73,255, +94,255,40,255,49,255,175,255,197,255,12,255,253,253,143,253,106,254,185,255,54,0,199,255,43,255,65,255,205,255,170,255, +255,254,128,254,50,254,160,254,162,255,22,0,6,0,146,255,229,254,36,255,3,0,92,0,77,0,1,0,189,255,232,255, +25,0,18,0,216,255,195,255,107,0,218,0,39,0,124,255,244,255,155,1,85,3,81,3,190,1,114,0,45,0,198,0, +16,2,70,3,247,2,8,1,59,255,156,254,253,254,177,255,115,255,167,254,201,254,134,255,48,0,148,0,65,0,166,255, +117,255,227,255,173,0,7,1,67,1,252,1,143,2,170,2,239,1,105,0,122,255,101,255,217,255,97,0,37,255,25,253, +0,253,20,254,241,254,96,255,7,255,71,255,216,0,231,1,180,1,218,0,36,0,80,0,143,0,239,255,20,255,184,254, +4,255,167,255,167,255,216,254,93,254,178,254,31,255,28,255,169,254,94,254,248,254,179,255,167,255,157,255,18,0,199,0, +86,1,230,0,22,0,47,0,154,0,158,0,51,0,102,255,235,254,223,254,202,254,172,254,79,254,8,254,117,254,2,255, +69,255,105,255,141,255,57,0,79,1,227,1,173,1,250,0,67,0,195,255,73,255,225,254,168,254,153,254,174,254,216,254, +56,255,175,255,225,255,42,0,242,0,172,1,107,1,77,0,96,255,16,255,125,255,152,0,48,1,231,0,168,0,166,0, +76,1,134,2,179,2,165,1,97,0,91,255,39,255,134,255,191,255,222,255,173,255,92,255,129,255,185,255,222,255,240,255, +196,255,31,0,220,0,241,0,166,0,150,0,238,0,138,1,144,1,0,1,131,0,30,0,32,0,91,0,14,0,212,255, +76,0,16,1,186,1,31,1,251,254,132,253,202,253,143,254,209,254,41,254,64,253,131,253,253,254,120,0,122,0,169,254, +135,253,230,254,8,1,217,1,214,0,81,255,152,255,17,1,137,1,69,1,51,1,94,1,139,1,64,1,211,0,143,0, +17,0,7,0,147,0,128,0,225,255,106,255,71,255,121,255,107,255,16,255,22,255,88,255,133,255,105,255,215,254,135,254, +241,254,191,255,205,0,166,1,238,1,42,2,119,2,128,2,72,2,217,1,89,1,218,0,58,0,194,255,128,255,60,255, +96,255,210,255,25,0,129,0,194,0,151,0,184,0,202,0,97,0,55,0,20,0,200,255,171,255,40,255,161,254,240,254, +125,255,230,255,186,255,166,254,51,254,193,254,202,254,65,254,2,254,120,254,132,255,23,0,180,255,39,255,60,255,159,255, +118,255,40,255,32,255,209,254,217,254,184,255,147,0,74,1,133,1,213,0,87,0,82,0,12,0,152,255,41,255,101,255, +177,0,150,1,20,1,45,0,227,255,11,0,57,0,94,0,115,0,196,0,21,1,65,0,179,255,173,1,37,4,68,4, +241,1,163,254,128,253,103,255,233,0,147,0,238,255,174,255,224,255,43,0,61,0,47,0,208,255,176,255,120,0,108,1, +171,1,155,0,7,255,52,255,148,0,217,0,121,0,140,0,3,1,188,1,183,1,147,0,199,255,135,255,204,254,12,254, +253,253,28,254,57,254,186,254,237,254,233,253,243,252,163,253,41,255,79,0,222,0,165,0,63,0,27,0,50,255,201,253, +42,253,236,252,155,252,194,252,150,253,238,254,68,0,75,1,17,2,101,2,150,2,142,2,71,2,110,3,58,5,122,4, +196,1,80,255,226,253,84,254,171,255,68,0,159,0,4,1,69,1,92,1,186,0,23,0,38,0,123,0,78,1,185,1, +236,0,177,0,28,1,152,0,180,255,246,254,113,254,218,254,179,255,80,0,171,0,59,0,63,255,129,254,224,253,165,253, +87,254,64,255,156,255,166,255,208,255,37,0,110,0,155,0,199,0,194,0,28,0,250,254,13,254,185,253,210,253,14,254, +133,254,81,255,220,255,192,255,139,255,174,255,17,0,83,0,62,0,97,0,46,1,68,2,38,3,240,2,111,1,150,0, +104,1,139,2,248,2,71,2,200,0,192,255,219,254,55,253,0,252,26,252,61,253,18,255,69,0,55,0,68,0,52,1, +186,2,164,3,122,2,72,0,224,254,12,254,226,253,149,254,14,255,250,254,162,254,68,254,164,254,126,255,232,255,146,255, +72,254,130,253,30,255,158,1,161,2,208,1,71,0,60,0,56,2,8,4,111,4,190,3,162,2,11,2,149,1,37,0, +78,253,62,249,158,246,33,248,91,251,8,253,207,253,189,254,196,255,13,1,42,2,125,2,38,2,179,1,167,1,183,1, +127,1,92,1,14,1,58,0,133,255,13,255,219,254,121,255,198,255,184,254,237,253,90,254,218,254,6,255,111,255,64,0, +13,1,85,1,105,1,105,1,170,0,219,255,245,255,254,255,94,255,187,254,101,254,181,254,121,255,186,255,180,255,47,0, +246,0,179,1,29,2,19,2,29,2,106,2,86,2,147,1,201,0,145,0,190,0,65,1,228,1,163,1,113,0,53,255, +111,254,224,254,75,0,202,0,39,0,211,255,9,0,95,0,84,0,122,255,103,254,194,253,179,253,90,254,0,255,242,254, +221,254,88,255,10,0,121,0,67,0,151,255,66,255,109,255,149,255,162,255,223,255,72,0,126,0,139,0,230,0,120,1, +127,1,233,0,136,0,174,0,183,0,69,0,224,255,203,255,140,255,93,255,235,255,202,0,43,1,148,0,251,254,161,253, +148,253,49,254,252,254,240,255,227,0,93,2,5,4,74,4,27,3,90,1,217,255,157,255,32,0,44,0,21,0,27,0, +34,0,135,0,199,0,123,0,103,0,195,0,44,1,29,1,55,0,136,255,243,255,106,0,68,0,220,255,8,255,249,253, +151,253,12,254,155,254,146,254,25,254,253,253,159,254,125,255,203,255,144,255,117,255,122,255,123,255,211,255,66,0,92,0, +115,0,128,0,92,0,109,0,155,0,123,0,54,0,0,0,246,255,25,0,248,255,135,255,82,255,147,255,58,0,211,0, +150,0,197,255,88,255,121,255,252,255,181,0,227,0,76,0,240,255,55,0,82,0,218,255,110,255,108,255,111,255,82,255, +98,255,106,255,42,255,16,255,92,255,219,255,90,0,128,0,45,0,214,255,189,255,184,255,225,255,128,0,55,1,74,1, +191,0,39,0,215,255,236,255,43,0,56,0,26,0,186,255,3,255,97,254,52,254,174,254,165,255,53,0,245,255,127,255, +120,255,248,255,96,0,58,0,37,0,108,0,155,0,152,0,59,0,130,255,58,255,143,255,184,255,160,255,192,255,1,0, +63,0,171,0,19,1,41,1,47,1,51,1,249,0,179,0,130,0,82,0,90,0,189,0,30,1,22,1,224,0,239,0, +37,1,76,1,50,1,165,0,108,0,198,0,134,0,182,255,55,255,208,254,189,254,103,255,253,255,16,0,237,255,178,255, +154,255,217,255,46,0,97,0,148,0,151,0,236,255,35,255,11,255,70,255,149,255,227,255,173,255,77,255,39,255,238,254, +226,254,24,255,84,255,216,255,89,0,101,0,52,0,9,0,92,0,69,1,220,1,134,1,192,0,136,0,224,0,231,0, +163,0,69,0,140,255,7,255,234,254,231,254,59,255,119,255,77,255,95,255,116,255,29,255,174,254,146,254,7,255,144,255, +232,255,129,0,216,0,103,0,135,255,121,254,19,254,123,254,124,254,79,254,209,254,130,255,175,255,60,255,219,254,28,255, +112,255,80,255,202,254,178,254,213,255,246,0,15,1,233,0,226,0,62,1,166,1,245,0,44,0,64,0,39,0,1,0, +39,0,3,0,209,255,216,255,51,0,183,0,174,0,163,0,9,1,21,1,136,0,94,255,124,254,65,255,131,0,242,0, +2,1,186,0,102,0,135,0,205,0,18,1,156,0,97,255,3,255,108,255,137,255,152,255,173,255,250,255,184,0,64,1, +154,1,233,1,204,1,172,1,207,1,223,1,205,1,144,1,78,1,77,1,90,1,241,0,218,255,0,255,79,255,25,0, +130,0,104,0,240,255,143,255,99,255,102,255,147,255,79,255,175,254,155,254,0,255,83,255,95,255,100,255,1,0,2,1, +202,1,255,1,238,0,8,255,222,253,172,253,39,254,58,255,239,255,172,255,63,255,132,255,75,0,173,0,111,0,41,0, +83,0,231,0,32,1,109,0,147,255,113,255,231,255,58,0,189,255,206,254,110,254,201,254,77,255,105,255,37,255,87,255, +85,0,80,1,134,1,247,0,20,0,130,255,117,255,122,255,145,255,17,0,89,0,197,255,244,254,194,254,154,255,32,1, +239,1,99,1,84,0,132,255,100,255,3,0,129,0,49,0,153,255,162,255,32,0,14,0,130,255,105,255,153,255,179,255, +24,0,158,0,135,0,236,255,143,255,155,255,129,255,93,255,212,255,158,0,232,0,32,0,121,254,225,253,130,255,47,1, +12,1,246,255,27,255,76,255,120,0,56,1,59,1,223,0,236,255,47,255,82,255,255,255,82,1,80,2,216,1,189,0, +108,255,161,254,150,255,204,0,226,0,90,0,38,255,61,254,135,254,240,254,67,255,81,255,122,254,217,253,228,253,38,254, +185,254,12,255,101,255,64,0,102,0,25,0,102,0,211,0,67,1,47,1,213,255,144,254,100,254,135,254,183,254,118,255, +76,0,121,0,4,1,141,2,195,3,174,3,149,1,163,255,195,2,125,8,92,9,192,3,129,250,111,244,73,247,98,253, +161,255,212,254,166,252,85,251,182,252,148,254,248,255,243,0,210,0,192,0,111,0,35,255,6,255,113,0,186,1,6,2, +13,1,182,255,180,254,116,254,145,255,107,0,34,0,81,0,67,1,91,2,216,2,33,2,28,1,118,0,100,1,81,4, +150,5,147,3,108,0,211,253,144,254,184,1,70,1,53,253,51,250,254,249,157,252,173,255,119,0,27,0,246,255,15,0, +148,0,37,1,150,1,186,1,16,1,64,0,89,0,99,1,37,2,134,1,76,0,113,255,127,255,181,0,152,1,116,1, +54,1,206,0,136,0,89,0,240,255,224,1,127,5,246,4,14,0,245,251,194,250,195,251,167,253,51,255,14,0,60,0, +77,0,163,0,124,0,138,255,31,254,126,252,88,251,55,251,24,252,193,253,155,255,197,0,12,1,114,1,227,1,236,0, +52,255,164,254,132,255,68,1,127,2,15,2,227,0,13,0,10,0,197,0,215,0,71,0,112,0,232,0,20,1,243,0, +81,0,243,255,45,0,52,0,0,0,159,255,70,255,230,255,237,0,185,0,113,255,142,254,192,254,148,255,45,0,28,0, +166,255,46,255,196,254,167,254,254,254,119,255,183,255,68,255,81,254,27,254,206,254,222,255,254,0,251,0,229,255,195,255, +145,0,252,0,242,0,149,0,78,0,123,0,114,0,37,0,108,0,27,1,77,1,243,0,177,0,179,0,222,0,61,1, +113,1,57,1,41,1,166,1,61,2,103,2,21,2,104,1,183,0,138,0,142,0,68,0,51,0,111,0,138,0,180,0, +214,0,247,0,50,1,245,0,184,0,22,1,65,1,83,1,67,1,238,255,127,254,229,254,103,0,76,1,179,0,55,255, +159,254,96,255,9,0,225,255,191,255,3,0,33,0,31,0,70,0,186,0,87,1,248,0,103,255,47,254,49,254,115,255, +167,0,116,255,209,252,249,251,67,253,241,254,156,255,215,254,140,253,20,253,18,254,80,255,1,255,237,253,169,253,37,254, +253,254,93,255,184,254,32,254,54,254,158,254,249,254,212,254,102,254,48,254,69,254,213,254,107,255,119,255,127,255,237,255, +181,0,86,1,246,0,30,0,214,255,16,0,155,0,19,1,36,1,42,1,252,0,169,0,252,0,124,1,118,1,85,1, +37,1,186,0,122,0,144,0,200,0,235,0,233,0,225,0,171,0,57,0,13,0,32,0,227,255,224,255,200,0,141,1, +9,1,202,255,227,254,26,255,15,0,29,0,64,255,16,255,153,255,39,0,172,0,244,0,229,0,166,0,108,0,105,0, +45,0,227,255,73,0,202,0,9,1,187,1,138,2,184,2,80,2,196,1,92,1,157,0,183,255,180,255,219,255,250,254, +187,253,42,253,167,253,147,254,194,254,48,254,152,253,168,253,166,254,145,255,144,255,78,255,162,255,138,0,98,1,190,1, +164,1,13,1,133,0,167,0,54,1,248,1,57,2,112,1,231,0,106,1,50,2,119,2,136,1,243,255,50,255,86,255, +238,255,96,0,224,255,119,255,39,0,15,1,156,1,178,1,59,1,160,0,111,255,52,253,111,251,115,251,125,252,151,253, +166,254,58,255,237,254,102,254,79,254,188,254,151,255,45,0,241,255,140,255,206,255,205,0,230,1,2,2,230,0,141,255, +0,255,113,255,24,0,12,0,81,255,162,254,141,254,17,255,167,255,184,255,115,255,108,255,125,255,128,255,200,255,235,255, +101,255,224,254,250,254,134,255,54,0,165,0,115,0,180,255,251,254,187,254,215,254,65,255,213,255,3,0,208,255,184,255, +178,255,209,255,76,0,166,0,114,0,4,0,203,255,249,255,109,0,168,0,123,0,72,0,77,0,142,0,223,0,230,0, +193,0,205,0,243,0,11,1,8,1,198,0,122,0,71,0,1,0,202,255,192,255,180,255,162,255,134,255,109,255,193,255, +79,0,79,0,13,0,91,0,229,0,0,1,125,0,160,255,119,255,54,0,103,0,146,255,170,254,58,254,53,254,107,254, +197,254,19,255,238,254,160,254,184,254,55,255,225,255,16,0,171,255,158,255,235,255,243,255,181,255,92,255,137,255,81,0, +135,0,224,255,9,255,164,254,32,255,215,255,29,0,72,0,145,0,231,0,28,1,30,1,36,1,204,0,16,0,184,255, +183,255,242,255,116,0,133,0,93,0,191,0,49,1,102,1,173,1,234,1,186,1,47,1,238,0,3,1,11,1,46,1, +56,1,34,1,69,1,32,1,218,0,13,1,101,1,30,2,105,2,171,0,255,254,167,255,17,1,189,1,88,1,64,0, +41,0,6,1,39,1,165,0,103,0,141,0,159,0,55,0,204,255,150,255,62,255,4,255,255,254,30,255,87,255,247,254, +44,254,32,254,193,254,122,255,15,0,3,0,142,255,127,255,236,255,27,0,116,255,160,254,151,254,55,255,243,255,69,0, +34,0,79,0,195,0,207,0,147,0,100,0,97,0,104,0,47,0,246,255,151,255,230,254,238,254,198,255,45,0,239,255, +120,255,43,255,110,255,233,255,18,0,204,255,101,255,134,255,28,0,122,0,86,0,137,255,161,254,166,254,92,255,213,255, +241,255,245,255,184,255,75,255,111,255,41,0,147,0,52,0,56,255,158,254,76,255,93,0,194,0,182,0,140,0,140,0, +141,0,20,0,175,255,249,255,169,0,78,1,72,1,112,0,140,255,91,255,27,0,64,1,210,1,95,1,230,255,12,254, +223,252,219,252,199,253,213,254,92,255,128,255,152,255,11,0,226,0,62,1,199,0,25,0,191,255,229,255,88,0,228,0, +43,1,12,1,143,1,144,2,106,2,83,1,77,0,182,255,248,255,4,0,3,255,84,254,138,254,97,255,129,0,113,0, +175,255,22,0,202,0,181,0,92,0,43,0,190,0,203,1,2,2,89,1,76,0,188,255,195,0,176,1,80,0,177,253, +161,251,77,251,231,252,103,254,196,254,28,255,144,255,225,255,69,0,117,0,212,0,143,1,183,1,68,1,206,0,177,0, +69,1,212,1,143,1,1,1,183,0,183,0,218,0,174,0,63,0,13,0,46,0,94,0,130,0,231,0,132,1,169,1, +40,1,138,0,83,0,126,0,62,0,113,255,24,255,70,255,5,255,57,254,163,253,179,253,67,254,229,254,54,255,55,255, +24,255,202,254,123,254,144,254,32,255,25,0,174,0,62,0,21,0,236,0,90,1,244,0,152,0,113,0,40,0,118,255, +140,254,10,254,38,254,150,254,4,255,112,255,219,255,218,255,177,255,7,0,122,0,188,0,237,0,184,0,89,0,27,0, +132,255,218,254,203,254,128,255,228,0,200,1,243,0,191,255,3,0,245,0,59,1,48,1,81,1,67,1,205,0,11,0, +86,255,35,255,34,255,212,254,192,254,98,255,93,0,254,0,163,0,178,255,78,255,127,255,132,255,33,255,141,254,125,254, +36,255,135,255,93,255,45,255,255,254,3,255,92,255,163,255,239,255,78,0,60,0,220,255,174,255,197,255,19,0,144,0, +24,1,100,1,101,1,110,1,141,1,174,1,193,1,113,1,249,0,231,0,10,1,21,1,208,0,49,0,204,255,198,255, +201,255,228,255,219,255,92,255,182,254,106,254,202,254,104,255,126,255,48,255,13,255,95,255,250,255,61,0,249,255,152,255, +121,255,216,255,63,0,231,255,23,255,135,254,88,254,119,254,207,254,74,255,195,255,26,0,119,0,224,0,2,1,228,0, +220,0,208,0,184,0,200,0,200,0,143,0,70,0,177,255,24,255,66,255,232,255,109,0,147,0,75,0,44,0,126,0, +183,0,144,0,219,255,1,255,0,255,120,255,152,255,165,255,185,255,184,255,196,255,201,255,206,255,21,0,169,0,33,1, +236,0,11,0,221,254,242,253,26,254,38,255,243,255,3,0,214,255,250,255,63,0,85,0,122,0,181,0,251,0,54,1, +222,0,76,0,97,0,226,0,30,1,164,0,14,0,132,0,148,1,38,2,144,1,128,255,238,253,126,254,69,255,14,255, +162,254,59,254,94,254,30,255,127,255,219,255,175,0,27,1,216,0,115,0,41,0,252,255,241,255,0,0,238,255,136,255, +24,255,22,255,135,255,2,0,73,0,122,0,161,0,174,0,134,0,51,0,242,255,219,255,9,0,95,0,90,0,32,0, +37,0,39,0,61,0,179,0,14,1,252,0,166,0,83,0,109,0,201,0,215,0,127,0,243,255,189,255,82,0,24,1, +56,1,221,0,130,0,57,0,41,0,137,0,240,0,211,0,77,0,157,255,48,255,106,255,174,255,116,255,76,255,150,255, +33,0,136,0,140,0,179,0,40,1,107,1,157,1,181,1,117,1,130,1,227,1,243,1,191,1,61,1,146,0,88,0, +61,0,225,255,144,255,89,255,26,255,195,254,168,254,31,255,116,255,61,255,242,254,181,254,173,254,208,254,192,254,243,254, +127,255,232,255,90,0,125,0,11,0,147,255,53,255,47,255,178,255,2,0,237,255,198,255,189,255,50,0,187,0,225,0, +20,1,75,1,30,1,114,0,60,255,207,253,166,252,31,252,66,252,155,252,221,252,206,252,151,252,30,253,53,254,208,254, +205,254,113,254,64,254,188,254,143,255,63,0,60,0,131,255,107,255,81,0,43,1,90,1,206,0,108,0,31,1,13,2, +25,2,76,1,101,0,64,0,174,0,235,0,232,0,192,0,144,0,172,0,23,1,136,1,218,1,39,2,90,2,58,2, +240,1,186,1,160,1,150,1,86,1,243,0,175,0,44,0,86,255,214,254,5,255,147,255,9,0,44,0,224,255,98,255, +117,255,57,0,26,1,143,1,22,1,25,0,150,255,160,255,255,255,85,0,12,0,157,255,149,255,204,255,40,0,33,0, +178,255,191,255,34,0,95,0,94,0,188,255,1,255,3,255,56,255,50,255,54,255,63,255,46,255,2,255,232,254,8,255, +35,255,23,255,239,254,118,254,245,253,60,254,64,255,42,0,147,0,97,0,206,255,154,255,252,255,127,0,219,0,223,0, +190,0,199,0,165,0,135,0,231,0,76,1,90,1,234,0,227,255,70,255,150,255,215,255,167,255,81,255,249,254,247,254, +85,255,204,255,93,0,193,0,193,0,195,0,200,0,134,0,89,0,122,0,120,0,55,0,208,255,18,255,55,254,206,253, +238,253,108,254,10,255,104,255,124,255,119,255,119,255,178,255,29,0,65,0,18,0,195,255,116,255,116,255,184,255,14,0, +181,0,34,1,160,0,247,255,204,255,225,255,35,0,43,0,222,255,226,255,50,0,167,0,64,1,118,1,80,1,75,1, +131,1,242,1,241,1,47,1,167,0,198,0,26,1,40,1,69,0,208,254,24,254,71,254,165,254,194,254,132,254,55,254, +83,254,188,254,236,254,210,254,170,254,130,254,128,254,167,254,216,254,59,255,134,255,96,255,105,255,252,255,152,0,223,0, +220,0,152,0,245,255,82,255,56,255,67,255,39,255,79,255,197,255,98,0,246,0,79,1,135,1,90,1,218,0,184,0, +161,0,64,0,36,0,65,0,101,0,156,0,170,0,139,0,78,0,61,0,169,0,54,1,177,1,221,1,75,1,158,0, +87,0,43,0,54,0,60,0,15,0,51,0,113,0,93,0,44,0,48,0,205,0,134,1,94,1,124,0,156,255,74,255, +168,255,40,0,122,0,199,0,32,1,114,1,112,1,1,1,102,0,225,255,201,255,8,0,48,0,96,0,182,0,237,0, +171,0,2,0,217,255,98,0,174,0,106,0,213,255,118,255,198,255,227,255,24,255,47,254,231,253,85,254,32,255,195,255, +75,0,224,0,49,1,229,0,62,0,248,255,28,0,40,0,233,255,72,255,234,254,103,255,8,0,114,0,161,0,26,0, +137,255,137,255,176,255,70,0,210,0,15,0,161,254,189,253,170,253,99,254,42,255,75,255,66,255,135,255,232,255,36,0, +32,0,178,255,3,255,208,254,102,255,66,0,223,0,246,0,182,0,137,0,77,0,255,255,227,255,213,255,212,255,36,0, +108,0,41,0,198,255,233,255,19,0,202,255,174,255,179,255,86,255,35,255,91,255,188,255,59,0,117,0,103,0,132,0, +181,0,34,1,208,1,254,1,145,1,8,1,161,0,147,0,168,0,160,0,154,0,156,0,190,0,217,0,125,0,44,0, +102,0,135,0,35,0,136,255,11,255,169,254,76,254,92,254,225,254,40,255,25,255,214,254,46,254,163,253,215,253,131,254, +57,255,179,255,185,255,144,255,208,255,68,0,6,0,92,255,80,255,215,255,113,0,184,0,83,0,232,255,29,0,151,0, +242,0,197,0,41,0,8,0,97,0,157,0,131,0,1,0,210,255,73,0,95,0,13,0,237,255,222,255,36,0,175,0, +220,0,203,0,201,0,234,0,50,1,56,1,211,0,97,0,77,0,168,0,198,0,82,0,190,255,68,255,55,255,184,255, +55,0,110,0,42,0,172,255,224,255,75,0,25,0,1,0,56,0,79,0,120,0,138,0,73,0,239,255,115,255,4,255, +15,255,111,255,153,255,81,255,3,255,49,255,150,255,192,255,154,255,63,255,240,254,217,254,251,254,54,255,88,255,121,255, +160,255,128,255,47,255,7,255,13,255,21,255,255,254,208,254,158,254,105,254,116,254,248,254,111,255,166,255,66,0,250,0, +235,0,111,0,67,0,118,0,244,0,68,1,251,0,188,0,234,0,17,1,255,0,214,0,203,0,35,1,138,1,78,1, +120,0,180,255,114,255,178,255,25,0,64,0,80,0,135,0,144,0,156,0,9,1,250,0,246,255,215,254,73,254,171,254, +183,255,87,0,86,0,55,0,26,0,41,0,66,0,37,0,37,0,111,0,240,0,121,1,147,1,156,1,65,2,21,3, +116,3,212,2,237,0,205,254,188,253,234,253,182,254,36,255,24,255,59,255,93,255,49,255,37,255,101,255,201,255,241,255, +107,255,199,254,199,254,51,255,199,255,66,0,49,0,215,255,210,255,67,0,198,0,184,0,26,0,181,255,253,255,181,0, +27,1,172,0,8,0,201,255,188,255,195,255,172,255,75,255,18,255,57,255,133,255,196,255,168,255,69,255,22,255,33,255, +74,255,128,255,168,255,237,255,59,0,35,0,193,255,149,255,235,255,142,0,204,0,142,0,119,0,158,0,151,0,82,0, +14,0,10,0,65,0,132,0,183,0,166,0,67,0,235,255,213,255,224,255,208,255,108,255,14,255,79,255,215,255,15,0, +38,0,73,0,96,0,107,0,65,0,16,0,77,0,134,0,45,0,187,255,171,255,229,255,36,0,66,0,81,0,94,0, +112,0,191,0,247,0,127,0,157,255,242,254,192,254,22,255,153,255,193,255,154,255,133,255,180,255,63,0,238,0,0,1, +38,0,121,255,197,255,52,0,14,0,148,255,62,255,149,255,134,0,29,1,168,0,104,255,91,254,65,254,207,254,87,255, +77,255,179,254,101,254,202,254,115,255,6,0,56,0,25,0,32,0,91,0,156,0,182,0,149,0,147,0,185,0,193,0, +161,0,51,0,215,255,254,255,249,255,158,255,141,255,168,255,230,255,101,0,172,0,138,0,39,0,186,255,131,255,54,255, +207,254,14,255,225,255,126,0,133,0,36,0,255,255,116,0,7,1,92,1,101,1,17,1,179,0,106,0,189,255,220,254, +117,254,178,254,102,255,219,255,130,255,31,255,97,255,205,255,207,255,97,255,29,255,140,255,90,0,17,1,99,1,62,1, +23,1,11,1,28,1,127,1,188,1,114,1,216,0,30,0,191,255,185,255,114,255,255,254,166,254,215,254,202,255,118,0, +101,0,248,255,93,255,93,255,194,255,115,255,26,255,104,255,77,0,149,1,149,1,236,255,177,254,180,254,177,255,26,1, +176,1,130,1,92,1,80,1,127,1,143,1,0,1,9,0,44,255,51,255,226,255,255,255,162,255,118,255,141,255,228,255, +224,255,59,255,163,254,117,254,223,254,155,255,194,255,103,255,39,255,7,255,49,255,146,255,218,255,65,0,162,0,119,0, +3,0,189,255,245,255,221,0,165,1,98,1,115,0,144,255,88,255,34,0,9,1,57,1,11,1,246,0,54,1,41,1, +30,0,102,255,0,0,190,0,181,0,183,255,72,254,193,253,40,254,192,254,149,255,81,0,193,0,45,1,7,1,57,0, +177,255,159,255,151,255,105,255,65,255,149,255,105,0,17,1,237,0,248,255,220,254,83,254,147,254,74,255,254,255,97,0, +117,0,99,0,11,0,102,255,25,255,110,255,179,255,129,255,31,255,202,254,175,254,244,254,105,255,136,255,51,255,236,254, +224,254,6,255,90,255,103,255,22,255,5,255,103,255,230,255,52,0,95,0,182,0,72,1,222,1,255,1,92,1,178,0, +156,0,185,0,200,0,160,0,88,0,129,0,217,0,215,0,143,0,36,0,253,255,55,0,32,0,181,255,155,255,4,0, +177,0,33,1,55,1,25,1,135,0,0,0,104,0,72,1,189,1,116,1,182,0,155,0,113,1,30,2,239,1,242,0, +212,255,247,255,116,1,235,2,185,3,181,3,183,2,37,1,79,255,230,253,56,254,171,255,5,0,233,254,181,253,75,253, +239,253,122,255,7,1,171,1,42,1,220,255,183,254,181,254,149,255,107,0,182,0,97,0,177,255,40,255,100,255,127,0, +52,1,194,0,29,0,209,255,200,255,235,255,190,255,156,255,70,0,86,1,22,2,185,1,150,0,142,0,94,1,63,1, +86,0,95,255,254,254,179,255,71,0,171,255,149,254,138,253,108,252,252,251,35,253,144,254,104,254,129,253,47,253,82,253, +187,253,10,254,36,254,164,254,177,255,39,1,189,1,0,0,223,253,181,253,198,254,202,255,224,255,246,254,78,254,83,254, +181,254,128,255,53,0,91,0,29,0,243,255,32,0,40,0,219,255,172,255,227,255,208,0,241,1,11,2,220,0,232,254, +70,253,23,253,33,254,164,255,214,0,249,0,152,0,120,0,154,0,181,0,34,0,254,254,65,254,53,254,215,254,221,255, +130,0,152,0,112,0,97,0,115,0,99,0,134,0,242,0,33,1,43,1,2,1,116,0,26,0,32,0,86,0,190,0, +217,0,118,0,25,0,63,0,241,0,80,1,212,0,79,0,53,0,52,0,59,0,93,0,110,0,57,0,29,0,113,0, +186,0,205,0,240,0,33,1,115,1,145,1,8,1,106,0,92,0,226,0,101,1,7,1,45,0,0,0,128,0,241,0, +244,0,193,0,155,0,90,0,57,0,134,0,194,0,160,0,52,0,158,255,108,255,192,255,13,0,248,255,127,255,29,255, +49,255,76,255,79,255,132,255,159,255,113,255,59,255,9,255,16,255,99,255,128,255,77,255,25,255,226,254,249,254,112,255, +124,255,13,255,178,254,127,254,182,254,60,255,125,255,158,255,215,255,72,0,240,0,208,0,0,0,240,255,68,0,243,255, +48,255,131,254,168,254,168,255,148,0,1,1,195,0,9,0,216,255,94,0,223,0,212,0,33,0,141,255,182,255,10,0, +56,0,135,0,223,0,243,0,180,0,83,0,11,0,242,255,244,255,253,255,228,255,181,255,13,0,232,0,27,1,167,0, +148,0,164,0,145,0,136,0,35,0,181,255,168,255,92,255,222,254,185,254,250,254,200,255,184,0,7,1,155,0,192,255, +89,255,234,255,156,0,207,0,160,0,102,0,194,0,81,1,16,1,154,0,214,0,66,1,68,1,221,0,76,0,248,255, +248,255,22,0,23,0,202,255,181,255,87,0,197,0,97,0,255,255,212,255,101,255,14,255,11,255,20,255,46,255,72,255, +31,255,227,254,246,254,94,255,156,255,54,255,176,254,250,254,189,255,251,255,219,255,250,255,97,0,175,0,102,0,184,255, +98,255,163,255,137,0,217,1,137,2,35,2,28,1,0,0,73,255,1,255,236,254,5,255,83,255,234,255,115,0,75,0, +192,255,145,255,10,0,193,0,188,0,3,0,128,255,156,255,89,0,220,0,72,0,135,255,111,255,197,255,92,0,150,0, +46,0,216,255,235,255,88,0,191,0,137,0,232,255,86,255,19,255,61,255,143,255,173,255,76,255,188,254,241,254,192,255, +80,0,140,0,104,0,25,0,35,0,122,0,248,0,59,1,215,0,71,0,251,255,253,255,70,0,132,0,213,0,101,1, +180,1,178,1,97,1,149,0,30,0,84,0,100,0,103,0,215,0,74,1,90,1,155,0,219,254,104,253,131,253,157,254, +188,255,79,0,58,0,61,0,186,0,21,1,198,0,222,255,17,255,250,254,75,255,172,255,245,255,3,0,17,0,247,255, +123,255,31,255,20,255,49,255,89,255,75,255,33,255,255,254,18,255,184,255,36,0,127,255,155,254,83,254,179,254,80,255, +174,255,251,255,48,0,244,255,160,255,106,255,86,255,106,255,43,255,0,255,177,255,136,0,201,0,167,0,98,0,51,0, +8,0,192,255,140,255,102,255,59,255,19,255,229,254,224,254,241,254,0,255,132,255,55,0,80,0,59,0,160,0,47,1, +69,1,108,0,10,255,78,254,145,254,50,255,179,255,184,255,135,255,235,255,225,0,175,1,232,1,203,1,14,2,236,2, +2,4,235,4,36,5,122,4,48,3,62,1,131,254,101,251,172,248,11,247,12,247,9,249,14,252,120,254,15,0,25,1, +179,1,96,2,147,2,194,1,228,0,122,0,198,0,210,1,114,2,151,2,215,2,203,2,195,2,232,2,126,2,170,1, +203,0,111,0,196,0,132,0,210,255,7,0,151,0,209,0,243,0,242,0,248,0,240,0,138,0,42,0,12,0,237,255, +171,255,106,255,132,255,219,255,214,255,83,255,154,254,246,253,231,253,182,254,168,255,228,255,199,255,199,255,192,255,174,255, +121,255,17,255,230,254,45,255,172,255,225,255,91,255,138,254,255,253,232,253,123,254,108,255,67,0,221,0,244,0,173,0, +120,0,77,0,26,0,244,255,69,0,15,1,39,1,86,0,206,255,4,0,206,0,180,1,204,1,244,0,193,255,212,254, +172,254,9,255,149,255,56,0,142,0,158,0,135,0,221,255,249,254,147,254,156,254,9,255,190,255,33,0,9,0,212,255, +244,255,159,0,75,1,51,1,92,0,125,255,42,255,79,255,138,255,161,255,90,255,237,254,16,255,226,255,209,0,65,1, +1,1,111,0,227,255,133,255,157,255,233,255,217,255,141,255,67,255,24,255,82,255,240,255,158,0,246,0,182,0,20,0, +117,255,52,255,112,255,219,255,102,0,43,1,200,1,196,1,1,1,243,255,87,255,91,255,216,255,105,0,129,0,113,0, +170,0,201,0,138,0,203,255,195,254,87,254,197,254,128,255,17,0,23,0,191,255,143,255,173,255,214,255,184,255,150,255, +166,255,148,255,162,255,218,255,132,255,30,255,149,255,170,0,175,1,157,1,25,0,131,254,219,253,27,254,232,254,90,255, +47,255,4,255,36,255,233,255,38,1,210,1,197,1,58,1,16,0,253,254,195,254,84,255,69,0,158,0,237,255,47,255, +34,255,141,255,233,255,217,255,119,255,223,254,83,254,107,254,20,255,220,255,77,0,227,255,106,255,208,255,94,0,166,0, +229,0,232,0,225,0,28,1,105,1,132,1,64,1,254,0,25,1,31,1,229,0,137,0,19,0,221,255,11,0,140,0, +31,1,37,1,213,0,230,0,90,1,159,1,232,0,133,255,235,254,95,255,43,0,197,0,207,0,159,0,140,0,137,0, +170,0,113,0,175,255,68,255,84,255,130,255,181,255,184,255,206,255,19,0,2,0,168,255,108,255,91,255,65,255,4,255, +1,255,61,255,72,255,75,255,89,255,75,255,105,255,169,255,8,0,178,0,249,0,115,0,207,255,136,255,157,255,223,255, +20,0,50,0,11,0,170,255,145,255,177,255,148,255,53,255,202,254,207,254,122,255,247,255,207,255,135,255,97,255,122,255, +245,255,81,0,49,0,233,255,178,255,168,255,225,255,4,0,238,255,245,255,14,0,250,255,238,255,13,0,59,0,116,0, +161,0,190,0,233,0,235,0,186,0,160,0,150,0,150,0,172,0,162,0,114,0,57,0,1,0,241,255,36,0,123,0, +130,0,15,0,235,255,130,0,53,1,84,1,196,0,109,0,224,0,34,1,196,0,57,0,195,255,225,255,60,0,215,255, +26,255,168,254,174,254,105,255,72,0,156,0,113,0,45,0,130,0,63,1,104,1,234,0,37,0,103,255,12,255,14,255, +123,255,78,0,11,1,111,1,88,1,200,0,55,0,202,255,116,255,94,255,104,255,81,255,39,255,36,255,93,255,177,255, +245,255,250,255,228,255,12,0,76,0,79,0,24,0,15,0,110,0,138,0,17,0,168,255,157,255,239,255,90,0,65,0, +240,255,232,255,28,0,98,0,28,0,125,255,162,255,101,0,37,1,84,1,94,0,77,255,52,255,140,255,197,255,150,255, +101,255,243,255,216,0,123,1,119,1,97,0,42,255,224,254,101,255,82,0,205,0,85,0,199,255,221,255,89,0,197,0, +222,0,116,0,172,255,47,255,77,255,13,0,36,1,53,1,250,255,8,255,77,255,143,0,70,1,15,0,163,254,198,254, +140,255,71,0,207,0,165,0,239,255,60,255,1,255,55,255,125,255,174,255,118,255,20,255,65,255,143,255,152,255,174,255, +210,255,252,255,235,255,119,255,25,255,252,254,45,255,152,255,210,255,229,255,139,255,228,254,31,255,224,255,31,0,254,255, +133,255,74,255,204,255,12,0,215,255,221,255,7,0,62,0,101,0,76,0,17,0,197,255,178,255,15,0,135,0,152,0, +231,255,168,254,122,253,71,253,196,254,144,0,208,0,53,0,1,0,60,0,173,0,12,1,2,1,98,0,218,255,99,0, +66,1,126,1,93,1,231,0,103,0,116,0,168,0,162,0,72,0,186,255,172,255,204,255,112,255,36,255,53,255,126,255, +9,0,106,0,83,0,15,0,254,255,57,0,112,0,119,0,127,0,160,0,198,0,162,0,45,0,227,255,227,255,225,255, +167,255,71,255,43,255,120,255,3,0,170,0,228,0,44,0,39,255,250,254,168,255,53,0,72,0,42,0,233,255,184,255, +167,255,135,255,128,255,119,255,24,255,172,254,147,254,232,254,116,255,224,255,39,0,13,0,142,255,102,255,167,255,231,255, +76,0,196,0,254,0,252,0,200,0,149,0,170,0,239,0,210,0,37,0,196,255,6,0,89,0,148,0,115,0,243,255, +8,0,198,0,108,1,157,1,58,1,210,0,201,0,151,0,59,0,251,255,235,255,89,0,224,0,242,0,207,0,163,0, +140,0,153,0,120,0,37,0,224,255,2,0,159,0,222,0,76,0,162,255,118,255,206,255,62,0,67,0,239,255,90,255, +172,254,90,254,114,254,192,254,11,255,253,254,147,254,37,254,40,254,150,254,193,254,188,254,31,255,232,255,207,0,42,1, +203,0,170,0,21,1,136,1,74,1,142,255,174,253,192,253,208,254,23,255,123,254,107,253,181,252,15,253,39,254,38,255, +96,255,10,255,10,255,219,255,28,1,185,1,98,1,252,0,16,1,156,1,83,2,150,2,78,2,181,1,35,1,41,1, +74,1,206,0,75,0,31,0,2,0,216,255,135,255,64,255,77,255,163,255,40,0,101,0,22,0,210,255,222,255,225,255, +203,255,190,255,183,255,169,255,171,255,210,255,23,0,92,0,104,0,54,0,12,0,15,0,109,0,228,0,168,0,195,255, +7,255,33,255,20,0,197,0,106,0,170,255,54,255,63,255,207,255,147,0,29,1,43,1,23,1,120,1,3,2,33,2, +171,1,183,0,200,255,114,255,3,0,227,0,213,0,51,0,21,0,27,0,3,0,211,255,27,255,143,254,184,254,249,254, +59,255,115,255,158,255,4,0,19,0,213,255,243,255,24,0,112,0,198,0,154,255,178,253,51,253,24,254,94,255,248,255, +87,255,138,254,92,254,141,254,64,255,56,0,128,0,247,255,56,255,217,254,108,255,234,0,29,2,28,2,132,1,211,0, +186,255,90,254,2,253,145,252,33,254,47,0,170,0,150,0,2,1,68,1,31,1,154,0,6,0,249,255,64,0,174,0, +5,1,194,0,174,0,73,1,141,1,40,1,161,0,96,0,149,0,198,0,153,0,55,0,158,255,89,255,222,255,114,0, +146,0,118,0,54,0,249,255,249,255,29,0,20,0,216,255,188,255,206,255,206,255,184,255,172,255,176,255,205,255,235,255, +226,255,183,255,131,255,108,255,166,255,22,0,134,0,4,1,91,1,40,1,145,0,224,255,106,255,132,255,213,255,2,0, +15,0,255,255,50,0,153,0,112,0,5,0,26,0,169,0,121,1,230,1,117,1,196,0,100,0,95,0,162,0,199,0, +113,0,150,255,158,254,53,254,116,254,253,254,94,255,118,255,206,255,94,0,107,0,251,255,86,255,233,254,53,255,158,255, +174,255,215,255,230,255,196,255,224,255,12,0,49,0,106,0,123,0,90,0,5,0,108,255,232,254,219,254,124,255,113,0, +214,0,136,0,240,255,125,255,176,255,251,255,129,255,228,254,194,254,210,254,57,255,1,0,145,0,142,0,27,0,184,255, +167,255,168,255,215,255,70,0,55,0,149,255,80,255,192,255,114,0,200,0,88,0,166,255,146,255,227,255,19,0,69,0, +104,0,56,0,239,255,215,255,231,255,223,255,154,255,87,255,40,255,234,254,254,254,145,255,254,255,11,0,40,0,132,0, +206,0,111,0,123,255,20,255,173,255,67,0,69,0,55,0,74,0,74,0,83,0,95,0,53,0,23,0,83,0,148,0, +130,0,55,0,209,255,145,255,204,255,49,0,74,0,97,0,175,0,213,0,167,0,95,0,73,0,141,0,242,0,255,0, +145,0,15,0,221,255,244,255,75,0,202,0,240,0,131,0,9,0,223,255,205,255,201,255,249,255,12,0,210,255,172,255, +175,255,231,255,131,0,194,0,16,0,81,255,51,255,136,255,246,255,1,0,220,255,46,0,155,0,143,0,9,0,65,255, +30,255,253,255,145,0,14,0,40,255,205,254,103,255,33,0,241,255,143,255,201,255,11,0,19,0,63,0,131,0,174,0, +186,0,150,0,71,0,30,0,84,0,155,0,190,0,181,0,76,0,205,255,179,255,203,255,244,255,244,255,96,255,246,254, +115,255,246,255,240,255,244,255,21,0,203,255,13,255,141,254,229,254,169,255,9,0,243,255,210,255,219,255,244,255,0,0, +17,0,24,0,220,255,129,255,96,255,168,255,54,0,107,0,16,0,205,255,221,255,254,255,46,0,72,0,70,0,74,0, +60,0,60,0,28,0,191,255,20,0,232,0,199,0,232,255,80,255,106,255,84,0,24,1,224,0,50,0,174,255,190,255, +89,0,206,0,225,0,189,0,124,0,108,0,167,0,5,1,50,1,217,0,81,0,15,0,36,0,125,0,158,0,56,0, +173,255,83,255,88,255,198,255,29,0,14,0,204,255,149,255,153,255,232,255,35,0,241,255,150,255,117,255,171,255,32,0, +44,0,146,255,111,255,2,0,38,0,179,255,107,255,131,255,188,255,188,255,116,255,87,255,185,255,62,0,113,0,92,0, +243,255,74,255,55,255,234,255,99,0,41,0,160,255,73,255,78,255,91,255,98,255,171,255,20,0,70,0,14,0,184,255, +206,255,3,0,217,255,176,255,216,255,38,0,81,0,57,0,42,0,89,0,123,0,115,0,115,0,109,0,20,0,98,255, +237,254,8,255,99,255,210,255,31,0,255,255,205,255,246,255,62,0,109,0,112,0,64,0,19,0,20,0,55,0,62,0, +241,255,152,255,116,255,108,255,152,255,228,255,233,255,181,255,135,255,130,255,213,255,15,0,182,255,92,255,135,255,207,255, +243,255,250,255,178,255,47,255,204,254,180,254,240,254,83,255,169,255,5,0,246,255,102,255,142,255,150,0,56,1,12,1, +57,0,89,255,129,255,105,0,0,1,242,0,117,0,71,0,164,0,220,0,219,0,217,0,200,0,184,0,154,0,122,0, +122,0,109,0,103,0,100,0,46,0,10,0,42,0,82,0,61,0,233,255,198,255,237,255,237,255,199,255,171,255,175,255, +233,255,21,0,26,0,63,0,99,0,74,0,8,0,188,255,161,255,204,255,245,255,252,255,26,0,72,0,77,0,54,0, +17,0,3,0,42,0,29,0,223,255,5,0,96,0,148,0,180,0,170,0,160,0,207,0,223,0,147,0,240,255,40,255, +180,254,168,254,226,254,98,255,220,255,244,255,181,255,123,255,146,255,206,255,220,255,179,255,113,255,75,255,107,255,182,255, +19,0,100,0,99,0,41,0,40,0,113,0,196,0,206,0,62,0,149,255,172,255,39,0,72,0,26,0,206,255,116,255, +20,255,249,254,94,255,168,255,111,255,40,255,16,255,84,255,209,255,247,255,249,255,39,0,109,0,189,0,117,0,220,255, +71,0,78,1,205,1,133,1,112,0,136,255,167,255,225,255,159,255,103,255,131,255,6,0,142,0,116,0,10,0,5,0, +55,0,67,0,50,0,2,0,238,255,48,0,87,0,23,0,192,255,162,255,230,255,60,0,64,0,48,0,80,0,138,0, +149,0,63,0,235,255,209,255,217,255,56,0,173,0,183,0,55,0,91,255,28,255,192,255,36,0,254,255,185,255,104,255, +111,255,186,255,198,255,179,255,178,255,224,255,59,0,125,0,172,0,208,0,178,0,89,0,67,0,192,0,222,0,233,255, +249,254,225,254,131,255,90,0,71,0,130,255,87,255,154,255,216,255,8,0,219,255,183,255,236,255,16,0,4,0,192,255, +137,255,193,255,206,255,104,255,88,255,215,255,120,0,203,0,105,0,188,255,188,255,44,0,42,0,255,255,29,0,50,0, +35,0,243,255,161,255,141,255,203,255,50,0,131,0,47,0,115,255,54,255,137,255,249,255,22,0,205,255,179,255,234,255, +15,0,69,0,189,0,18,1,209,0,104,0,98,0,69,0,248,255,41,0,178,0,48,1,72,1,88,0,67,255,92,255, +238,255,6,0,207,255,130,255,126,255,228,255,20,0,228,255,209,255,222,255,189,255,156,255,192,255,11,0,80,0,114,0, +104,0,96,0,101,0,108,0,60,0,165,255,159,255,168,0,63,1,200,0,35,0,146,255,131,255,6,0,27,0,206,255, +185,255,213,255,70,0,138,0,247,255,42,255,218,254,55,255,242,255,67,0,35,0,232,255,197,255,29,0,155,0,167,0, +98,0,238,255,186,255,13,0,59,0,47,0,79,0,100,0,107,0,106,0,37,0,223,255,247,255,116,0,240,0,197,0, +5,0,104,255,71,255,116,255,167,255,197,255,161,255,82,255,92,255,162,255,168,255,125,255,52,255,7,255,115,255,49,0, +159,0,148,0,69,0,25,0,14,0,216,255,167,255,160,255,143,255,129,255,170,255,255,255,50,0,12,0,247,255,52,0, +82,0,81,0,141,0,203,0,198,0,170,0,147,0,125,0,114,0,98,0,25,0,144,255,54,255,90,255,170,255,219,255, +228,255,203,255,150,255,63,255,39,255,149,255,186,255,67,255,18,255,74,255,107,255,128,255,161,255,163,255,119,255,123,255, +241,255,66,0,8,0,141,255,46,255,95,255,242,255,33,0,26,0,58,0,73,0,53,0,210,255,109,255,212,255,97,0, +38,0,189,255,188,255,241,255,53,0,89,0,79,0,40,0,226,255,217,255,73,0,175,0,194,0,190,0,156,0,124,0, +170,0,238,0,33,1,37,1,165,0,6,0,228,255,30,0,158,0,10,1,214,0,97,0,37,0,36,0,76,0,44,0, +199,255,199,255,22,0,94,0,133,0,77,0,246,255,235,255,23,0,81,0,76,0,247,255,211,255,252,255,53,0,48,0, +164,255,74,255,210,255,71,0,235,255,103,255,52,255,69,255,126,255,154,255,169,255,1,0,80,0,34,0,185,255,130,255, +172,255,40,0,116,0,74,0,14,0,238,255,232,255,69,0,219,0,248,0,109,0,198,255,138,255,199,255,46,0,107,0, +99,0,82,0,115,0,182,0,211,0,154,0,82,0,37,0,200,255,144,255,234,255,20,0,145,255,25,255,39,255,120,255, +192,255,8,0,88,0,111,0,56,0,208,255,105,255,101,255,171,255,180,255,136,255,94,255,62,255,59,255,19,255,170,254, +123,254,192,254,86,255,254,255,77,0,24,0,173,255,170,255,59,0,151,0,122,0,172,0,171,0,101,255,23,254,54,254, +243,254,115,255,198,255,224,255,23,0,158,0,216,0,163,0,103,0,95,0,173,0,2,1,15,1,31,1,52,1,7,1, +196,0,182,0,218,0,218,0,116,0,233,255,157,255,172,255,10,0,125,0,136,0,51,0,85,0,255,0,66,1,12,1, +229,0,181,0,111,0,94,0,110,0,51,0,158,255,42,255,22,255,77,255,174,255,195,255,127,255,110,255,145,255,192,255, +254,255,11,0,219,255,145,255,112,255,179,255,218,255,141,255,24,255,183,254,195,254,38,255,70,255,90,255,161,255,186,255, +184,255,203,255,225,255,1,0,39,0,64,0,42,0,241,255,215,255,211,255,233,255,17,0,239,255,186,255,197,255,201,255, +213,255,219,255,145,255,133,255,255,255,67,0,29,0,10,0,35,0,32,0,198,255,62,255,33,255,151,255,23,0,78,0, +74,0,54,0,101,0,171,0,146,0,59,0,252,255,27,0,148,0,188,0,79,0,214,255,222,255,143,0,22,1,161,0, +223,255,178,255,249,255,55,0,16,0,179,255,112,255,96,255,187,255,70,0,130,0,101,0,251,255,168,255,235,255,81,0, +94,0,44,0,255,255,66,0,189,0,177,0,66,0,255,255,243,255,242,255,213,255,198,255,12,0,89,0,66,0,240,255, +189,255,218,255,39,0,61,0,254,255,213,255,247,255,3,0,190,255,141,255,190,255,241,255,229,255,225,255,219,255,172,255, +202,255,75,0,126,0,53,0,229,255,209,255,254,255,44,0,16,0,229,255,246,255,68,0,140,0,73,0,195,255,211,255, +65,0,132,0,145,0,38,0,189,255,14,0,115,0,112,0,61,0,212,255,171,255,235,255,251,255,247,255,247,255,193,255, +195,255,9,0,18,0,252,255,35,0,103,0,117,0,79,0,55,0,76,0,130,0,152,0,147,0,195,0,198,0,108,0, +81,0,132,0,175,0,126,0,179,255,32,255,95,255,217,255,59,0,79,0,243,255,164,255,163,255,239,255,61,0,245,255, +138,255,149,255,174,255,170,255,181,255,179,255,158,255,133,255,149,255,189,255,186,255,195,255,238,255,4,0,17,0,24,0, +40,0,78,0,53,0,208,255,137,255,159,255,218,255,194,255,109,255,90,255,132,255,204,255,56,0,89,0,235,255,101,255, +64,255,125,255,231,255,38,0,234,255,117,255,69,255,144,255,60,0,160,0,101,0,53,0,39,0,220,255,193,255,4,0, +139,0,18,1,154,0,116,255,50,255,175,255,18,0,65,0,28,0,61,0,29,1,177,1,95,1,178,0,102,0,7,1, +236,1,244,1,217,0,203,254,210,252,92,252,102,253,237,254,230,255,210,255,119,255,94,255,22,255,226,254,55,255,144,255, +118,255,52,255,73,255,176,255,19,0,95,0,174,0,238,0,225,0,137,0,106,0,158,0,202,0,198,0,108,0,236,255, +135,255,27,255,3,255,99,255,175,255,231,255,8,0,30,0,194,0,100,1,39,1,66,0,12,255,124,254,8,255,115,255, +122,255,186,255,6,0,95,0,136,0,69,0,50,0,60,0,45,0,73,0,45,0,246,255,38,0,61,0,23,0,14,0, +30,0,155,0,91,1,60,1,87,0,235,255,12,0,19,0,59,0,146,0,132,0,38,0,192,255,101,255,114,255,251,255, +201,0,56,1,77,0,50,255,249,255,193,1,141,2,208,1,14,0,221,254,179,254,54,254,133,253,154,253,39,254,220,254, +102,255,91,255,77,255,170,255,75,0,217,0,148,0,208,255,218,255,106,0,145,0,112,0,74,0,67,0,101,0,86,0, +35,0,48,0,126,0,212,0,225,0,118,0,234,255,169,255,177,255,201,255,251,255,68,0,55,0,201,255,128,255,153,255, +255,255,79,0,14,0,176,255,205,255,227,255,165,255,164,255,9,0,133,0,209,0,191,0,114,0,44,0,10,0,37,0, +60,0,230,255,98,255,48,255,118,255,23,0,147,0,132,0,39,0,233,255,248,255,44,0,68,0,92,0,112,0,66,0, +1,0,224,255,227,255,46,0,101,0,41,0,226,255,214,255,226,255,251,255,3,0,255,255,17,0,254,255,197,255,197,255, +5,0,91,0,155,0,120,0,25,0,254,255,6,0,228,255,171,255,98,255,75,255,154,255,219,255,180,255,78,255,16,255, +103,255,12,0,94,0,79,0,254,255,216,255,75,0,151,0,50,0,210,255,219,255,1,0,34,0,83,0,96,0,242,255, +157,255,250,255,116,0,153,0,83,0,210,255,46,0,51,1,91,1,209,0,106,0,90,0,180,0,134,0,22,255,118,253, +184,252,24,253,52,254,22,255,80,255,38,255,60,255,20,0,213,0,135,0,186,255,68,255,127,255,44,0,120,0,105,0, +158,0,226,0,232,0,186,0,92,0,69,0,166,0,173,0,22,0,153,255,106,255,110,255,158,255,164,255,160,255,3,0, +112,0,135,0,47,0,143,255,170,255,154,0,28,1,193,0,211,255,37,255,191,255,119,0,252,255,136,255,194,255,224,255, +218,255,234,255,9,0,37,0,3,0,173,255,112,255,147,255,228,255,216,255,212,255,22,0,239,255,189,255,24,0,124,0, +151,0,61,0,143,255,105,255,206,255,43,0,93,0,72,0,50,0,91,0,111,0,66,0,154,255,207,254,15,255,110,0, +205,1,29,2,253,0,138,255,39,255,34,0,234,1,208,2,183,1,168,255,11,254,188,253,191,254,193,255,11,0,237,255, +183,255,232,255,49,0,253,255,23,0,178,0,245,0,175,0,231,255,59,255,163,255,122,0,183,0,104,0,209,255,106,255, +148,255,7,0,110,0,107,0,219,255,129,255,185,255,234,255,252,255,60,0,81,0,15,0,1,0,84,0,172,0,199,0, +115,0,235,255,202,255,241,255,251,255,26,0,85,0,97,0,63,0,41,0,71,0,91,0,13,0,134,255,31,255,17,255, +107,255,210,255,251,255,248,255,222,255,212,255,4,0,84,0,142,0,98,0,199,255,69,255,66,255,128,255,180,255,241,255, +83,0,140,0,93,0,2,0,219,255,13,0,51,0,221,255,163,255,6,0,60,0,212,255,88,255,52,255,142,255,236,255, +162,255,28,255,241,254,43,255,219,255,99,0,64,0,73,0,176,0,166,0,40,0,139,255,52,255,154,255,23,0,250,255, +174,255,127,255,109,255,174,255,30,0,103,0,77,0,254,255,14,0,90,0,79,0,42,0,66,0,88,0,66,0,252,255, +177,255,185,255,249,255,246,255,199,255,212,255,3,0,255,255,214,255,201,255,12,0,102,0,86,0,7,0,241,255,252,255, +23,0,82,0,108,0,75,0,34,0,33,0,63,0,42,0,247,255,10,0,61,0,92,0,66,0,239,255,16,0,155,0, +128,0,220,255,134,255,144,255,205,255,229,255,149,255,84,255,142,255,6,0,58,0,8,0,233,255,33,0,90,0,127,0, +150,0,113,0,91,0,157,0,211,0,196,0,185,0,181,0,137,0,103,0,84,0,39,0,29,0,73,0,97,0,99,0, +80,0,33,0,3,0,232,255,197,255,197,255,182,255,120,255,85,255,98,255,124,255,126,255,100,255,108,255,146,255,175,255, +230,255,12,0,235,255,187,255,150,255,117,255,123,255,175,255,233,255,242,255,201,255,198,255,8,0,94,0,144,0,94,0, +17,0,72,0,208,0,40,1,58,1,240,0,94,0,178,255,229,254,100,254,169,254,71,255,172,255,179,255,143,255,200,255, +72,0,102,0,34,0,225,255,225,255,48,0,75,0,239,255,190,255,5,0,148,0,251,0,119,0,135,255,144,255,55,0, +94,0,7,0,135,255,95,255,219,255,51,0,241,255,155,255,137,255,206,255,22,0,214,255,142,255,221,255,79,0,119,0, +61,0,186,255,167,255,49,0,177,0,223,0,154,0,11,0,230,255,32,0,47,0,34,0,41,0,94,0,161,0,118,0, +252,255,201,255,229,255,4,0,213,255,109,255,107,255,244,255,144,0,205,0,130,0,40,0,62,0,156,0,241,0,226,0, +81,0,212,255,191,255,224,255,3,0,209,255,111,255,112,255,189,255,9,0,31,0,217,255,155,255,170,255,181,255,157,255, +121,255,101,255,138,255,202,255,4,0,47,0,56,0,66,0,63,0,12,0,235,255,250,255,20,0,42,0,24,0,240,255, +248,255,31,0,75,0,110,0,93,0,33,0,239,255,243,255,31,0,41,0,6,0,220,255,185,255,181,255,195,255,192,255, +188,255,175,255,181,255,255,255,36,0,230,255,204,255,7,0,70,0,91,0,75,0,54,0,30,0,254,255,241,255,0,0, +34,0,56,0,23,0,223,255,184,255,170,255,217,255,17,0,26,0,34,0,42,0,45,0,42,0,217,255,126,255,112,255, +120,255,159,255,193,255,148,255,159,255,42,0,170,0,173,0,27,0,164,255,232,255,65,0,61,0,44,0,14,0,239,255, +250,255,21,0,29,0,244,255,213,255,8,0,67,0,84,0,55,0,231,255,216,255,26,0,43,0,2,0,196,255,153,255, +172,255,160,255,105,255,125,255,193,255,234,255,234,255,182,255,154,255,191,255,202,255,170,255,178,255,251,255,69,0,65,0, +249,255,159,255,78,255,71,255,150,255,207,255,191,255,160,255,174,255,10,0,133,0,161,0,79,0,13,0,249,255,194,255, +147,255,202,255,46,0,102,0,109,0,87,0,35,0,233,255,227,255,25,0,61,0,73,0,88,0,79,0,54,0,14,0, +225,255,18,0,113,0,88,0,239,255,157,255,132,255,193,255,1,0,231,255,174,255,156,255,189,255,235,255,4,0,26,0, +26,0,14,0,26,0,9,0,233,255,0,0,36,0,74,0,135,0,132,0,36,0,190,255,153,255,185,255,239,255,0,0, +184,255,84,255,94,255,199,255,32,0,77,0,65,0,253,255,178,255,135,255,155,255,223,255,27,0,53,0,37,0,3,0, +238,255,246,255,31,0,52,0,16,0,231,255,197,255,186,255,238,255,60,0,113,0,97,0,5,0,200,255,217,255,4,0, +40,0,30,0,5,0,56,0,133,0,141,0,101,0,85,0,117,0,152,0,140,0,90,0,79,0,149,0,180,0,83,0, +211,255,140,255,150,255,222,255,235,255,156,255,84,255,66,255,113,255,211,255,38,0,51,0,252,255,192,255,171,255,158,255, +152,255,180,255,239,255,26,0,16,0,23,0,94,0,162,0,201,0,186,0,95,0,27,0,27,0,74,0,160,0,146,0, +239,255,110,255,88,255,167,255,54,0,96,0,41,0,44,0,109,0,182,0,174,0,61,0,25,0,92,0,108,0,59,0, +202,255,101,255,167,255,21,0,12,0,206,255,152,255,144,255,194,255,225,255,207,255,127,255,29,255,56,255,158,255,182,255, +168,255,173,255,164,255,173,255,0,0,116,0,146,0,65,0,226,255,187,255,240,255,67,0,63,0,33,0,60,0,105,0, +126,0,73,0,3,0,74,0,178,0,128,0,255,255,153,255,115,255,178,255,12,0,42,0,22,0,240,255,220,255,251,255, +54,0,89,0,57,0,222,255,167,255,208,255,6,0,1,0,249,255,17,0,51,0,84,0,88,0,53,0,225,255,93,255, +62,255,178,255,236,255,213,255,232,255,229,255,172,255,141,255,139,255,167,255,236,255,29,0,27,0,31,0,85,0,149,0, +168,0,148,0,113,0,82,0,55,0,28,0,46,0,100,0,112,0,92,0,70,0,31,0,9,0,39,0,101,0,141,0, +94,0,247,255,175,255,174,255,216,255,227,255,187,255,163,255,165,255,183,255,227,255,242,255,213,255,210,255,234,255,248,255, +0,0,0,0,246,255,249,255,1,0,232,255,180,255,156,255,176,255,209,255,222,255,217,255,237,255,37,0,65,0,50,0, +26,0,250,255,233,255,5,0,9,0,236,255,10,0,54,0,45,0,29,0,239,255,156,255,133,255,165,255,191,255,210,255, +221,255,247,255,27,0,20,0,228,255,174,255,141,255,128,255,127,255,179,255,227,255,198,255,235,255,96,0,122,0,74,0, +3,0,196,255,253,255,98,0,128,0,154,0,182,0,181,0,167,0,115,0,67,0,63,0,17,0,198,255,207,255,39,0, +107,0,85,0,234,255,126,255,97,255,151,255,247,255,48,0,253,255,174,255,173,255,207,255,243,255,40,0,43,0,217,255, +165,255,238,255,62,0,245,255,133,255,161,255,24,0,107,0,81,0,240,255,225,255,31,0,50,0,42,0,39,0,55,0, +112,0,126,0,78,0,82,0,131,0,146,0,147,0,110,0,0,0,175,255,172,255,205,255,8,0,54,0,79,0,122,0, +135,0,111,0,79,0,232,255,95,255,37,255,81,255,185,255,238,255,246,255,244,255,103,255,238,254,174,255,249,0,198,1, +57,1,24,255,179,253,127,254,154,255,201,255,122,255,21,255,13,255,115,255,242,255,79,0,75,0,13,0,210,255,182,255, +235,255,36,0,24,0,16,0,248,255,173,255,146,255,187,255,235,255,37,0,114,0,167,0,163,0,100,0,244,255,174,255, +228,255,6,0,175,255,111,255,137,255,210,255,36,0,3,0,162,255,221,255,89,0,65,0,200,255,87,255,64,255,166,255, +240,255,196,255,123,255,105,255,211,255,117,0,158,0,122,0,110,0,105,0,126,0,135,0,85,0,28,0,222,255,193,255, +234,255,17,0,19,0,247,255,245,255,84,0,141,0,84,0,13,0,219,255,0,0,102,0,102,0,33,0,235,255,205,255, +2,0,55,0,27,0,254,255,248,255,22,0,100,0,156,0,149,0,63,0,225,255,222,255,236,255,219,255,198,255,164,255, +181,255,242,255,249,255,235,255,229,255,209,255,189,255,182,255,230,255,60,0,100,0,128,0,168,0,160,0,138,0,179,0, +15,1,83,1,43,1,157,0,29,0,252,255,4,0,242,255,215,255,187,255,172,255,204,255,246,255,17,0,59,0,84,0, +61,0,11,0,215,255,184,255,210,255,39,0,93,0,55,0,9,0,30,0,88,0,124,0,93,0,28,0,241,255,214,255, +225,255,20,0,30,0,219,255,130,255,78,255,81,255,118,255,160,255,174,255,160,255,142,255,130,255,163,255,237,255,5,0, +191,255,75,255,7,255,52,255,153,255,195,255,138,255,51,255,54,255,131,255,205,255,5,0,19,0,20,0,52,0,50,0, +6,0,251,255,30,0,97,0,140,0,103,0,20,0,222,255,1,0,80,0,97,0,39,0,178,255,67,255,72,255,157,255, +216,255,240,255,244,255,238,255,233,255,228,255,2,0,36,0,5,0,206,255,190,255,220,255,40,0,112,0,98,0,23,0, +231,255,216,255,207,255,230,255,25,0,51,0,36,0,247,255,190,255,165,255,209,255,242,255,194,255,138,255,135,255,173,255, +254,255,60,0,64,0,72,0,94,0,120,0,159,0,167,0,136,0,83,0,11,0,237,255,11,0,44,0,50,0,5,0, +193,255,181,255,228,255,59,0,131,0,107,0,35,0,3,0,15,0,57,0,57,0,227,255,179,255,236,255,18,0,244,255, +219,255,208,255,223,255,1,0,230,255,200,255,240,255,246,255,205,255,175,255,138,255,188,255,79,0,129,0,54,0,200,255, +103,255,113,255,213,255,20,0,44,0,29,0,200,255,155,255,220,255,63,0,129,0,117,0,37,0,34,0,145,0,194,0, +126,0,54,0,57,0,151,0,214,0,87,0,143,255,76,255,89,255,110,255,190,255,19,0,18,0,239,255,242,255,46,0, +127,0,129,0,41,0,208,255,170,255,216,255,74,0,147,0,128,0,61,0,15,0,34,0,78,0,99,0,91,0,47,0, +12,0,45,0,103,0,106,0,40,0,213,255,167,255,171,255,214,255,8,0,29,0,19,0,1,0,3,0,12,0,3,0, +251,255,242,255,227,255,234,255,216,255,166,255,163,255,206,255,17,0,78,0,36,0,184,255,152,255,221,255,58,0,64,0, +236,255,213,255,44,0,116,0,89,0,8,0,226,255,21,0,110,0,139,0,63,0,221,255,201,255,240,255,15,0,8,0, +235,255,208,255,180,255,149,255,135,255,169,255,239,255,254,255,190,255,139,255,165,255,246,255,39,0,234,255,132,255,112,255, +157,255,189,255,201,255,210,255,212,255,218,255,236,255,251,255,16,0,38,0,39,0,46,0,65,0,48,0,237,255,156,255, +133,255,217,255,80,0,129,0,72,0,222,255,185,255,254,255,82,0,92,0,30,0,228,255,229,255,22,0,52,0,16,0, +209,255,181,255,196,255,226,255,244,255,13,0,52,0,68,0,73,0,84,0,111,0,208,0,18,1,163,0,209,255,37,255, +255,254,115,255,219,255,209,255,189,255,225,255,37,0,87,0,79,0,50,0,23,0,16,0,37,0,12,0,190,255,139,255, +117,255,127,255,173,255,191,255,183,255,211,255,252,255,8,0,18,0,26,0,250,255,204,255,191,255,221,255,31,0,58,0, +255,255,196,255,186,255,200,255,230,255,225,255,181,255,218,255,78,0,127,0,89,0,67,0,68,0,44,0,252,255,204,255, +187,255,207,255,226,255,7,0,94,0,178,0,203,0,169,0,109,0,74,0,81,0,86,0,70,0,93,0,119,0,12,0, +97,255,39,255,85,255,181,255,31,0,80,0,99,0,77,0,3,0,240,255,16,0,136,0,146,1,204,1,85,0,195,254, +83,254,216,254,191,255,24,0,159,255,53,255,92,255,227,255,144,0,251,0,174,0,217,255,44,255,22,255,175,255,128,0, +187,0,87,0,226,255,164,255,182,255,228,255,229,255,219,255,239,255,31,0,87,0,90,0,66,0,85,0,113,0,97,0, +25,0,204,255,186,255,206,255,11,0,113,0,123,0,13,0,155,255,129,255,249,255,137,0,138,0,98,0,105,0,86,0, +49,0,19,0,22,0,101,0,141,0,42,0,140,255,38,255,75,255,195,255,13,0,33,0,9,0,225,255,4,0,66,0, +57,0,245,255,149,255,103,255,183,255,63,0,133,0,66,0,181,255,138,255,226,255,100,0,156,0,46,0,154,255,129,255, +141,255,123,255,108,255,85,255,94,255,158,255,233,255,47,0,83,0,65,0,30,0,3,0,236,255,157,255,48,255,97,255, +23,0,83,0,232,255,106,255,95,255,213,255,45,0,21,0,230,255,222,255,4,0,30,0,211,255,100,255,65,255,82,255, +102,255,137,255,212,255,53,0,127,0,135,0,67,0,21,0,27,0,225,255,131,255,108,255,104,255,97,255,81,255,44,255, +107,255,225,255,253,255,17,0,53,0,72,0,139,0,141,0,18,0,211,255,245,255,64,0,145,0,126,0,48,0,40,0, +73,0,102,0,119,0,102,0,77,0,61,0,83,0,158,0,177,0,81,0,254,255,7,0,73,0,146,0,159,0,96,0, +27,0,255,255,242,255,186,255,81,255,24,255,57,255,125,255,0,0,158,0,182,0,82,0,213,255,109,255,122,255,251,255, +112,0,184,0,217,0,210,0,173,0,112,0,56,0,0,0,202,255,226,255,45,0,64,0,7,0,159,255,112,255,194,255, +35,0,37,0,218,255,160,255,211,255,39,0,43,0,4,0,233,255,253,255,62,0,71,0,13,0,226,255,212,255,6,0, +99,0,85,0,219,255,118,255,93,255,167,255,3,0,3,0,8,0,93,0,128,0,84,0,56,0,45,0,19,0,225,255, +167,255,170,255,244,255,55,0,87,0,84,0,36,0,0,0,27,0,62,0,50,0,18,0,243,255,210,255,187,255,166,255, +152,255,131,255,67,255,39,255,130,255,251,255,61,0,87,0,73,0,44,0,31,0,25,0,32,0,62,0,92,0,104,0, +87,0,27,0,222,255,218,255,236,255,236,255,255,255,41,0,81,0,99,0,60,0,254,255,207,255,156,255,107,255,42,255, +227,254,15,255,161,255,248,255,234,255,182,255,151,255,156,255,199,255,21,0,88,0,92,0,11,0,138,255,96,255,164,255, +232,255,243,255,181,255,139,255,226,255,78,0,103,0,56,0,191,255,114,255,158,255,237,255,66,0,108,0,77,0,67,0, +36,0,196,255,167,255,232,255,41,0,55,0,251,255,190,255,227,255,50,0,48,0,238,255,215,255,250,255,25,0,9,0, +221,255,18,0,148,0,166,0,127,0,189,0,248,0,225,0,155,0,44,0,210,255,195,255,231,255,53,0,109,0,83,0, +52,0,36,0,243,255,247,255,87,0,149,0,115,0,4,0,160,255,204,255,71,0,90,0,244,255,122,255,107,255,243,255, +151,0,209,0,115,0,213,255,148,255,192,255,249,255,27,0,21,0,233,255,185,255,175,255,208,255,217,255,184,255,182,255, +241,255,105,0,215,0,224,0,162,0,83,0,50,0,91,0,86,0,3,0,157,255,69,255,108,255,201,255,150,255,89,255, +137,255,185,255,240,255,47,0,39,0,244,255,200,255,180,255,203,255,237,255,229,255,191,255,186,255,203,255,214,255,226,255, +170,255,77,255,91,255,164,255,203,255,235,255,230,255,221,255,4,0,7,0,206,255,171,255,200,255,27,0,77,0,25,0, +231,255,36,0,108,0,94,0,69,0,57,0,34,0,19,0,216,255,173,255,28,0,181,0,248,0,249,0,184,0,127,0, +114,0,59,0,3,0,5,0,65,0,183,0,232,0,142,0,55,0,27,0,240,255,192,255,244,255,128,0,193,0,132,0, +37,0,244,255,16,0,35,0,233,255,202,255,17,0,122,0,161,0,97,0,250,255,176,255,146,255,148,255,156,255,188,255, +15,0,93,0,98,0,8,0,162,255,129,255,123,255,153,255,233,255,9,0,240,255,203,255,162,255,167,255,213,255,240,255, +224,255,165,255,137,255,175,255,232,255,24,0,0,0,162,255,106,255,118,255,183,255,236,255,189,255,121,255,128,255,163,255, +196,255,3,0,92,0,104,0,252,255,172,255,186,255,220,255,202,255,93,255,10,255,43,255,75,255,80,255,96,255,98,255, +126,255,188,255,247,255,62,0,93,0,66,0,47,0,41,0,66,0,102,0,70,0,13,0,21,0,100,0,173,0,145,0, +52,0,18,0,45,0,74,0,117,0,158,0,121,0,39,0,16,0,44,0,90,0,108,0,16,0,146,255,136,255,247,255, +127,0,139,0,29,0,250,255,96,0,226,0,3,1,148,0,27,0,243,255,239,255,245,255,190,255,78,255,58,255,134,255, +231,255,28,0,208,255,124,255,158,255,215,255,252,255,227,255,108,255,99,255,241,255,61,0,23,0,191,255,110,255,155,255, +41,0,133,0,126,0,24,0,126,255,29,255,58,255,176,255,18,0,11,0,174,255,80,255,80,255,193,255,61,0,88,0, +51,0,55,0,125,0,208,0,255,0,228,0,119,0,232,255,115,255,65,255,105,255,203,255,8,0,249,255,226,255,230,255, +236,255,2,0,51,0,127,0,211,0,176,0,36,0,248,255,18,0,233,255,189,255,201,255,250,255,23,0,212,255,134,255, +151,255,16,0,247,0,124,1,189,0,136,255,242,254,75,255,97,0,223,0,15,0,52,255,7,255,28,255,118,255,244,255, +64,0,102,0,56,0,180,255,107,255,141,255,23,0,225,0,10,1,127,0,29,0,25,0,122,0,8,1,33,1,32,1, +77,1,255,0,108,0,45,0,131,0,180,1,186,2,39,2,69,0,40,254,221,252,255,252,245,253,219,254,81,255,85,255, +69,255,98,255,195,255,50,0,42,0,167,255,15,255,191,254,23,255,245,255,190,0,1,1,182,0,92,0,80,0,91,0, +40,0,134,255,200,254,128,254,174,254,32,255,154,255,253,255,181,0,252,1,141,3,251,4,147,5,13,5,187,3,237,1, +3,0,73,254,253,252,130,252,169,252,2,253,145,253,91,254,39,255,148,255,89,255,185,254,37,254,246,253,102,254,75,255, +62,0,166,0,90,0,42,0,142,0,33,1,129,1,123,1,44,1,237,0,205,0,174,0,98,0,227,255,137,255,143,255, +238,255,94,0,129,0,84,0,239,255,123,255,93,255,174,255,44,0,118,0,60,0,241,255,2,0,240,255,148,255,97,255, +133,255,247,255,89,0,86,0,85,0,184,0,40,1,67,1,241,0,50,0,59,255,145,254,144,254,208,254,187,254,159,254, +8,255,148,255,217,255,38,0,112,0,84,0,17,0,249,255,9,0,57,0,90,0,77,0,60,0,69,0,89,0,106,0, +123,0,129,0,96,0,34,0,238,255,217,255,231,255,245,255,241,255,9,0,62,0,106,0,130,0,107,0,48,0,15,0, +12,0,14,0,232,255,122,255,58,255,104,255,121,255,99,255,147,255,235,255,46,0,64,0,11,0,12,0,138,0,239,0, +231,0,172,0,98,0,51,0,35,0,243,255,185,255,180,255,183,255,145,255,117,255,133,255,154,255,164,255,158,255,155,255, +207,255,18,0,0,0,187,255,166,255,218,255,46,0,80,0,29,0,200,255,149,255,161,255,206,255,236,255,244,255,246,255, +242,255,227,255,204,255,193,255,241,255,90,0,158,0,157,0,151,0,155,0,146,0,126,0,83,0,4,0,178,255,140,255, +163,255,219,255,10,0,27,0,9,0,245,255,2,0,32,0,26,0,222,255,194,255,10,0,79,0,50,0,219,255,145,255, +135,255,161,255,143,255,86,255,64,255,108,255,173,255,199,255,187,255,168,255,168,255,191,255,203,255,217,255,6,0,43,0, +40,0,4,0,234,255,14,0,61,0,73,0,80,0,68,0,21,0,214,255,164,255,165,255,177,255,182,255,245,255,77,0, +119,0,110,0,62,0,52,0,113,0,167,0,172,0,127,0,68,0,55,0,42,0,235,255,182,255,193,255,244,255,17,0, +7,0,232,255,214,255,253,255,68,0,139,0,229,0,244,0,118,0,239,255,179,255,192,255,15,0,42,0,224,255,158,255, +165,255,15,0,201,0,77,1,74,1,229,0,60,0,142,255,55,255,46,255,40,255,32,255,75,255,169,255,7,0,83,0, +137,0,151,0,112,0,22,0,207,255,14,0,181,0,28,1,206,0,192,255,169,254,114,254,231,254,83,255,96,255,17,255, +16,255,176,255,81,0,174,0,205,0,143,0,78,0,62,0,86,0,214,0,109,1,90,1,143,0,151,255,5,255,44,255, +216,255,120,0,163,0,107,0,29,0,246,255,240,255,200,255,137,255,118,255,132,255,157,255,176,255,185,255,254,255,89,0, +90,0,4,0,147,255,94,255,173,255,42,0,108,0,89,0,11,0,199,255,168,255,166,255,175,255,149,255,124,255,136,255, +142,255,153,255,200,255,13,0,118,0,193,0,139,0,7,0,151,255,107,255,132,255,166,255,150,255,118,255,131,255,183,255, +226,255,235,255,239,255,27,0,69,0,31,0,200,255,137,255,159,255,32,0,157,0,177,0,122,0,36,0,246,255,37,0, +88,0,45,0,180,255,79,255,102,255,212,255,36,0,82,0,129,0,160,0,152,0,104,0,49,0,23,0,38,0,79,0, +100,0,86,0,81,0,89,0,94,0,107,0,109,0,77,0,50,0,47,0,48,0,62,0,85,0,94,0,84,0,55,0, +8,0,225,255,201,255,182,255,168,255,161,255,176,255,222,255,4,0,255,255,229,255,230,255,26,0,89,0,78,0,226,255, +119,255,122,255,237,255,99,0,120,0,72,0,28,0,249,255,250,255,51,0,93,0,71,0,10,0,199,255,163,255,167,255, +168,255,152,255,147,255,161,255,156,255,132,255,132,255,156,255,187,255,244,255,78,0,137,0,83,0,228,255,188,255,223,255, +13,0,40,0,27,0,0,0,247,255,241,255,237,255,232,255,210,255,172,255,111,255,57,255,54,255,98,255,172,255,3,0, +81,0,142,0,163,0,135,0,87,0,35,0,241,255,229,255,28,0,92,0,77,0,232,255,113,255,59,255,89,255,102,255, +69,255,75,255,147,255,21,0,161,0,201,0,161,0,130,0,121,0,117,0,61,0,213,255,172,255,199,255,204,255,178,255, +161,255,186,255,238,255,253,255,224,255,190,255,188,255,220,255,240,255,217,255,184,255,182,255,241,255,128,0,239,0,177,0, +63,0,57,0,103,0,131,0,75,0,179,255,112,255,152,255,166,255,177,255,217,255,65,0,251,0,86,1,9,1,102,0, +186,255,154,255,233,255,241,255,197,255,151,255,162,255,60,0,203,0,198,0,97,0,212,255,190,255,30,0,15,0,185,255, +202,255,25,0,81,0,75,0,26,0,244,255,233,255,10,0,63,0,72,0,32,0,219,255,157,255,154,255,190,255,234,255, +26,0,57,0,74,0,92,0,123,0,167,0,149,0,64,0,28,0,73,0,145,0,180,0,112,0,255,255,215,255,208,255, +161,255,117,255,102,255,101,255,135,255,182,255,218,255,27,0,87,0,62,0,250,255,220,255,14,0,113,0,109,0,180,255, +248,254,214,254,45,255,134,255,113,255,46,255,99,255,232,255,67,0,114,0,124,0,137,0,170,0,146,0,106,0,137,0, +156,0,106,0,47,0,10,0,12,0,25,0,247,255,184,255,137,255,118,255,138,255,185,255,212,255,194,255,172,255,197,255, +240,255,0,0,7,0,32,0,69,0,113,0,136,0,98,0,29,0,237,255,218,255,233,255,248,255,224,255,194,255,183,255, +201,255,7,0,54,0,34,0,221,255,143,255,134,255,208,255,29,0,71,0,74,0,86,0,126,0,106,0,57,0,82,0, +133,0,151,0,62,0,105,255,252,254,98,255,228,255,21,0,253,255,205,255,214,255,24,0,101,0,113,0,5,0,152,255, +147,255,194,255,234,255,226,255,174,255,140,255,157,255,224,255,18,0,229,255,147,255,133,255,200,255,28,0,22,0,190,255, +163,255,232,255,59,0,125,0,171,0,159,0,78,0,252,255,234,255,251,255,254,255,251,255,250,255,236,255,208,255,181,255, +195,255,14,0,69,0,35,0,207,255,145,255,163,255,245,255,30,0,249,255,203,255,202,255,248,255,30,0,15,0,236,255, +216,255,219,255,243,255,248,255,218,255,203,255,226,255,10,0,40,0,39,0,17,0,4,0,252,255,241,255,236,255,231,255, +223,255,225,255,235,255,246,255,16,0,50,0,61,0,27,0,214,255,176,255,201,255,242,255,251,255,228,255,214,255,242,255, +21,0,33,0,46,0,57,0,54,0,50,0,43,0,23,0,252,255,235,255,246,255,28,0,59,0,58,0,42,0,35,0, +42,0,52,0,56,0,65,0,62,0,13,0,202,255,174,255,187,255,226,255,8,0,20,0,28,0,31,0,4,0,227,255, +210,255,213,255,239,255,13,0,31,0,42,0,48,0,71,0,104,0,104,0,56,0,244,255,197,255,194,255,218,255,223,255, +198,255,180,255,189,255,216,255,251,255,8,0,238,255,205,255,193,255,204,255,229,255,240,255,226,255,219,255,245,255,19,0, +13,0,255,255,17,0,57,0,81,0,56,0,242,255,208,255,244,255,40,0,62,0,52,0,44,0,67,0,102,0,121,0, +113,0,73,0,21,0,236,255,204,255,199,255,229,255,248,255,226,255,200,255,213,255,12,0,76,0,96,0,65,0,37,0, +42,0,63,0,79,0,75,0,53,0,28,0,23,0,39,0,50,0,41,0,16,0,5,0,32,0,41,0,247,255,204,255, +207,255,235,255,12,0,25,0,28,0,46,0,62,0,59,0,42,0,25,0,32,0,56,0,55,0,9,0,204,255,169,255, +159,255,147,255,137,255,150,255,194,255,245,255,4,0,250,255,239,255,232,255,237,255,244,255,242,255,239,255,230,255,214,255, +198,255,177,255,165,255,171,255,191,255,239,255,43,0,66,0,50,0,18,0,251,255,8,0,33,0,31,0,12,0,1,0, +1,0,17,0,38,0,40,0,17,0,234,255,203,255,194,255,197,255,206,255,212,255,211,255,230,255,255,255,10,0,11,0, +230,255,186,255,218,255,32,0,65,0,40,0,206,255,141,255,174,255,221,255,229,255,214,255,186,255,185,255,193,255,163,255, +152,255,197,255,6,0,57,0,61,0,36,0,27,0,36,0,53,0,61,0,48,0,27,0,250,255,239,255,26,0,65,0, +66,0,45,0,10,0,0,0,27,0,53,0,58,0,33,0,9,0,25,0,46,0,45,0,23,0,247,255,11,0,46,0, +3,0,215,255,253,255,86,0,174,0,172,0,65,0,239,255,231,255,254,255,16,0,244,255,203,255,210,255,244,255,17,0, +17,0,241,255,233,255,0,0,10,0,250,255,209,255,189,255,228,255,7,0,246,255,212,255,187,255,199,255,5,0,44,0, +45,0,61,0,63,0,16,0,214,255,177,255,179,255,224,255,250,255,239,255,249,255,4,0,227,255,177,255,142,255,149,255, +191,255,204,255,184,255,182,255,220,255,35,0,97,0,101,0,58,0,10,0,252,255,32,0,66,0,60,0,31,0,4,0, +17,0,71,0,78,0,27,0,4,0,20,0,34,0,32,0,5,0,225,255,210,255,224,255,0,0,24,0,13,0,234,255, +232,255,22,0,46,0,252,255,174,255,137,255,175,255,254,255,26,0,241,255,209,255,221,255,251,255,251,255,193,255,135,255, +139,255,191,255,243,255,9,0,8,0,16,0,47,0,94,0,116,0,68,0,237,255,180,255,201,255,27,0,83,0,60,0, +4,0,229,255,239,255,253,255,223,255,190,255,200,255,226,255,245,255,2,0,7,0,3,0,2,0,24,0,55,0,53,0, +14,0,214,255,181,255,202,255,234,255,232,255,214,255,208,255,253,255,79,0,99,0,35,0,209,255,173,255,229,255,58,0, +65,0,22,0,3,0,13,0,47,0,75,0,62,0,26,0,246,255,218,255,213,255,227,255,229,255,216,255,225,255,19,0, +68,0,80,0,49,0,253,255,235,255,4,0,33,0,45,0,35,0,9,0,254,255,10,0,28,0,42,0,35,0,4,0, +231,255,234,255,255,255,253,255,237,255,242,255,3,0,22,0,26,0,3,0,247,255,6,0,18,0,27,0,15,0,231,255, +226,255,254,255,255,255,1,0,26,0,43,0,44,0,28,0,8,0,23,0,56,0,40,0,236,255,195,255,209,255,1,0, +23,0,248,255,210,255,201,255,208,255,220,255,224,255,234,255,31,0,72,0,34,0,233,255,211,255,217,255,243,255,241,255, +208,255,233,255,49,0,83,0,59,0,5,0,223,255,223,255,220,255,201,255,201,255,226,255,1,0,13,0,9,0,12,0, +14,0,8,0,9,0,9,0,6,0,4,0,254,255,253,255,12,0,31,0,27,0,253,255,229,255,235,255,12,0,49,0, +41,0,247,255,212,255,206,255,210,255,229,255,249,255,254,255,240,255,229,255,6,0,63,0,77,0,44,0,3,0,248,255, +23,0,55,0,58,0,42,0,14,0,229,255,191,255,184,255,202,255,216,255,241,255,20,0,31,0,26,0,6,0,222,255, +207,255,215,255,210,255,211,255,227,255,0,0,42,0,39,0,234,255,182,255,168,255,183,255,199,255,191,255,191,255,229,255, +19,0,47,0,53,0,28,0,249,255,227,255,209,255,199,255,220,255,7,0,39,0,45,0,24,0,13,0,41,0,66,0, +54,0,27,0,255,255,243,255,7,0,37,0,51,0,56,0,68,0,93,0,95,0,57,0,24,0,32,0,67,0,94,0, +99,0,108,0,136,0,161,0,171,0,171,0,157,0,100,0,3,0,178,255,151,255,176,255,208,255,190,255,158,255,189,255, +3,0,52,0,34,0,207,255,150,255,166,255,214,255,7,0,32,0,26,0,15,0,249,255,228,255,225,255,216,255,205,255, +201,255,203,255,221,255,223,255,195,255,202,255,2,0,61,0,82,0,33,0,204,255,149,255,152,255,208,255,12,0,33,0, +32,0,11,0,218,255,162,255,115,255,91,255,89,255,84,255,75,255,66,255,60,255,84,255,149,255,234,255,41,0,48,0, +25,0,18,0,16,0,5,0,3,0,28,0,58,0,75,0,85,0,86,0,71,0,55,0,33,0,10,0,0,0,242,255, +228,255,247,255,26,0,48,0,50,0,43,0,28,0,253,255,219,255,208,255,226,255,6,0,31,0,25,0,10,0,6,0, +21,0,51,0,53,0,25,0,10,0,18,0,36,0,40,0,16,0,0,0,24,0,56,0,63,0,44,0,7,0,224,255, +209,255,214,255,223,255,1,0,48,0,54,0,41,0,55,0,93,0,140,0,156,0,114,0,55,0,17,0,10,0,34,0, +51,0,43,0,27,0,9,0,3,0,12,0,15,0,8,0,234,255,195,255,192,255,225,255,5,0,31,0,54,0,75,0, +72,0,36,0,0,0,250,255,18,0,50,0,58,0,40,0,1,0,225,255,240,255,4,0,242,255,223,255,239,255,34,0, +85,0,60,0,235,255,181,255,165,255,175,255,207,255,227,255,213,255,186,255,175,255,195,255,234,255,254,255,232,255,189,255, +167,255,179,255,220,255,7,0,11,0,234,255,199,255,202,255,254,255,47,0,60,0,44,0,14,0,11,0,46,0,60,0, +52,0,56,0,54,0,44,0,30,0,5,0,9,0,44,0,49,0,28,0,6,0,241,255,225,255,201,255,174,255,177,255, +198,255,224,255,250,255,250,255,227,255,201,255,186,255,200,255,232,255,246,255,240,255,225,255,210,255,206,255,210,255,212,255, +205,255,195,255,206,255,234,255,5,0,28,0,38,0,26,0,250,255,225,255,242,255,26,0,35,0,9,0,242,255,247,255, +4,0,255,255,253,255,19,0,32,0,20,0,249,255,232,255,254,255,40,0,55,0,42,0,29,0,35,0,57,0,68,0, +60,0,54,0,62,0,74,0,69,0,26,0,228,255,208,255,213,255,211,255,210,255,226,255,254,255,14,0,254,255,228,255, +227,255,248,255,253,255,224,255,194,255,181,255,160,255,164,255,219,255,253,255,231,255,203,255,201,255,224,255,239,255,210,255, +176,255,182,255,203,255,206,255,192,255,186,255,215,255,7,0,39,0,33,0,229,255,169,255,187,255,239,255,244,255,224,255, +219,255,233,255,3,0,5,0,235,255,222,255,232,255,253,255,12,0,2,0,252,255,9,0,14,0,7,0,237,255,223,255, +11,0,55,0,40,0,253,255,209,255,197,255,236,255,16,0,25,0,14,0,8,0,56,0,104,0,71,0,24,0,25,0, +32,0,9,0,221,255,204,255,247,255,48,0,82,0,94,0,82,0,60,0,51,0,49,0,45,0,36,0,14,0,17,0, +64,0,76,0,40,0,36,0,66,0,87,0,86,0,49,0,3,0,252,255,25,0,60,0,72,0,53,0,25,0,12,0, +29,0,51,0,45,0,31,0,27,0,32,0,30,0,245,255,198,255,193,255,227,255,41,0,87,0,44,0,235,255,211,255, +213,255,236,255,249,255,245,255,25,0,91,0,119,0,89,0,40,0,250,255,211,255,220,255,12,0,17,0,222,255,157,255, +133,255,217,255,82,0,116,0,79,0,23,0,245,255,236,255,201,255,161,255,156,255,188,255,20,0,95,0,65,0,249,255, +213,255,230,255,36,0,71,0,46,0,15,0,251,255,244,255,250,255,244,255,233,255,237,255,243,255,234,255,206,255,174,255, +171,255,204,255,238,255,235,255,207,255,192,255,204,255,242,255,30,0,51,0,46,0,19,0,248,255,10,0,54,0,62,0, +30,0,237,255,206,255,234,255,31,0,57,0,60,0,54,0,55,0,60,0,29,0,242,255,237,255,18,0,67,0,25,0, +137,255,79,255,165,255,251,255,25,0,22,0,2,0,16,0,41,0,12,0,234,255,247,255,255,255,226,255,192,255,176,255, +186,255,214,255,227,255,221,255,220,255,236,255,11,0,252,255,186,255,181,255,242,255,4,0,224,255,168,255,150,255,213,255, +19,0,21,0,10,0,18,0,55,0,77,0,30,0,229,255,200,255,203,255,254,255,38,0,34,0,25,0,12,0,14,0, +36,0,31,0,9,0,236,255,212,255,251,255,46,0,35,0,11,0,14,0,36,0,70,0,75,0,29,0,215,255,177,255, +212,255,16,0,40,0,35,0,15,0,11,0,34,0,40,0,23,0,255,255,208,255,159,255,151,255,194,255,5,0,45,0, +37,0,23,0,18,0,14,0,8,0,242,255,212,255,192,255,175,255,174,255,206,255,9,0,56,0,25,0,194,255,165,255, +219,255,35,0,52,0,242,255,195,255,235,255,20,0,24,0,16,0,1,0,6,0,18,0,2,0,244,255,237,255,222,255, +227,255,254,255,38,0,66,0,45,0,254,255,220,255,204,255,209,255,218,255,233,255,7,0,17,0,18,0,22,0,21,0, +43,0,62,0,19,0,222,255,221,255,0,0,45,0,66,0,43,0,3,0,230,255,217,255,219,255,251,255,44,0,67,0, +63,0,59,0,44,0,20,0,14,0,23,0,29,0,12,0,231,255,222,255,3,0,48,0,62,0,56,0,49,0,34,0, +6,0,240,255,225,255,220,255,236,255,235,255,195,255,175,255,203,255,246,255,29,0,46,0,33,0,25,0,27,0,21,0, +11,0,1,0,243,255,235,255,237,255,240,255,238,255,239,255,0,0,18,0,7,0,216,255,197,255,245,255,34,0,24,0, +5,0,247,255,243,255,255,255,237,255,199,255,190,255,202,255,217,255,214,255,191,255,201,255,247,255,23,0,24,0,252,255, +231,255,248,255,18,0,34,0,34,0,8,0,245,255,255,255,26,0,50,0,38,0,8,0,4,0,15,0,20,0,5,0, +234,255,232,255,1,0,40,0,67,0,24,0,200,255,174,255,193,255,213,255,223,255,224,255,255,255,50,0,59,0,20,0, +226,255,209,255,251,255,40,0,31,0,4,0,7,0,38,0,75,0,78,0,40,0,24,0,55,0,83,0,73,0,37,0, +255,255,247,255,18,0,38,0,23,0,0,0,16,0,48,0,38,0,4,0,249,255,8,0,22,0,252,255,189,255,176,255, +223,255,245,255,230,255,218,255,220,255,245,255,21,0,27,0,13,0,0,0,249,255,249,255,1,0,12,0,22,0,24,0, +8,0,242,255,241,255,255,255,4,0,244,255,209,255,197,255,232,255,13,0,17,0,1,0,241,255,243,255,255,255,252,255, +239,255,231,255,242,255,3,0,243,255,219,255,233,255,2,0,6,0,246,255,223,255,224,255,247,255,23,0,61,0,78,0, +62,0,26,0,243,255,232,255,232,255,198,255,170,255,191,255,237,255,16,0,24,0,12,0,246,255,216,255,198,255,198,255, +201,255,203,255,193,255,184,255,209,255,248,255,5,0,247,255,239,255,2,0,34,0,49,0,20,0,223,255,217,255,255,255, +13,0,253,255,230,255,204,255,198,255,214,255,228,255,235,255,235,255,225,255,222,255,18,0,101,0,119,0,69,0,21,0, +1,0,17,0,47,0,51,0,51,0,73,0,85,0,70,0,45,0,30,0,22,0,21,0,36,0,41,0,20,0,13,0, +17,0,248,255,212,255,200,255,218,255,252,255,11,0,252,255,251,255,26,0,47,0,39,0,29,0,32,0,26,0,13,0, +13,0,21,0,15,0,255,255,248,255,242,255,228,255,238,255,11,0,25,0,30,0,39,0,45,0,57,0,65,0,43,0, +255,255,221,255,226,255,9,0,27,0,250,255,205,255,195,255,243,255,47,0,48,0,26,0,32,0,14,0,222,255,210,255, +227,255,232,255,222,255,215,255,214,255,216,255,223,255,224,255,209,255,198,255,190,255,188,255,220,255,2,0,14,0,20,0, +26,0,48,0,94,0,106,0,50,0,202,255,108,255,105,255,171,255,205,255,196,255,190,255,208,255,251,255,47,0,80,0, +76,0,32,0,231,255,200,255,237,255,61,0,104,0,92,0,58,0,21,0,10,0,28,0,31,0,16,0,243,255,187,255, +161,255,220,255,21,0,255,255,209,255,202,255,240,255,43,0,57,0,14,0,241,255,246,255,3,0,18,0,31,0,28,0, +10,0,253,255,242,255,214,255,195,255,208,255,221,255,221,255,235,255,35,0,91,0,79,0,37,0,27,0,13,0,242,255, +227,255,223,255,241,255,252,255,214,255,190,255,224,255,7,0,13,0,255,255,250,255,254,255,249,255,243,255,243,255,244,255, +3,0,29,0,22,0,235,255,215,255,232,255,9,0,32,0,0,0,213,255,246,255,35,0,28,0,13,0,255,255,16,0, +69,0,55,0,248,255,239,255,1,0,10,0,33,0,57,0,46,0,243,255,199,255,219,255,17,0,47,0,5,0,196,255, +217,255,29,0,66,0,68,0,32,0,0,0,10,0,16,0,10,0,251,255,230,255,250,255,25,0,4,0,231,255,241,255, +4,0,250,255,228,255,227,255,241,255,5,0,38,0,58,0,52,0,33,0,15,0,32,0,66,0,45,0,239,255,211,255, +227,255,253,255,28,0,67,0,86,0,69,0,49,0,53,0,59,0,38,0,8,0,249,255,243,255,237,255,224,255,232,255, +31,0,55,0,5,0,217,255,202,255,207,255,237,255,238,255,214,255,217,255,232,255,254,255,13,0,245,255,248,255,49,0, +72,0,39,0,246,255,193,255,155,255,171,255,230,255,25,0,44,0,7,0,194,255,220,255,73,0,98,0,29,0,226,255, +216,255,17,0,79,0,66,0,16,0,246,255,240,255,247,255,255,255,255,255,247,255,237,255,229,255,227,255,242,255,252,255, +245,255,8,0,55,0,74,0,49,0,253,255,216,255,232,255,3,0,4,0,245,255,227,255,229,255,250,255,0,0,245,255, +218,255,197,255,235,255,22,0,235,255,175,255,177,255,219,255,8,0,5,0,209,255,192,255,211,255,211,255,230,255,15,0, +20,0,246,255,218,255,215,255,239,255,6,0,21,0,26,0,17,0,12,0,10,0,16,0,38,0,32,0,245,255,222,255, +233,255,2,0,21,0,8,0,241,255,251,255,23,0,28,0,4,0,235,255,239,255,3,0,1,0,247,255,9,0,34,0, +25,0,247,255,235,255,1,0,21,0,24,0,20,0,242,255,206,255,223,255,3,0,19,0,6,0,210,255,178,255,206,255, +240,255,255,255,1,0,252,255,242,255,217,255,204,255,207,255,188,255,189,255,233,255,11,0,12,0,226,255,172,255,183,255, +247,255,49,0,67,0,17,0,203,255,172,255,186,255,215,255,197,255,138,255,108,255,133,255,218,255,54,0,81,0,64,0, +35,0,10,0,10,0,2,0,230,255,218,255,229,255,253,255,25,0,46,0,52,0,34,0,26,0,43,0,38,0,9,0, +233,255,215,255,237,255,244,255,198,255,173,255,213,255,28,0,76,0,69,0,42,0,11,0,251,255,27,0,65,0,78,0, +61,0,0,0,234,255,37,0,82,0,90,0,61,0,11,0,25,0,70,0,63,0,40,0,27,0,22,0,43,0,46,0, +31,0,49,0,73,0,65,0,32,0,254,255,252,255,22,0,23,0,249,255,224,255,222,255,246,255,14,0,249,255,227,255, +19,0,96,0,123,0,75,0,244,255,207,255,239,255,9,0,3,0,245,255,239,255,10,0,37,0,7,0,216,255,205,255, +215,255,234,255,252,255,248,255,6,0,27,0,237,255,181,255,216,255,24,0,42,0,18,0,218,255,197,255,238,255,254,255, +236,255,254,255,22,0,2,0,232,255,246,255,11,0,7,0,1,0,253,255,253,255,14,0,5,0,221,255,224,255,250,255, +229,255,195,255,192,255,213,255,249,255,20,0,15,0,236,255,207,255,229,255,24,0,51,0,41,0,8,0,243,255,7,0, +35,0,37,0,29,0,19,0,5,0,252,255,252,255,243,255,231,255,233,255,245,255,6,0,10,0,242,255,221,255,243,255, +17,0,7,0,218,255,168,255,150,255,181,255,228,255,254,255,7,0,11,0,9,0,11,0,18,0,7,0,229,255,193,255, +173,255,196,255,251,255,16,0,248,255,229,255,233,255,5,0,33,0,13,0,234,255,228,255,246,255,24,0,37,0,1,0, +228,255,237,255,6,0,25,0,12,0,255,255,25,0,40,0,25,0,18,0,25,0,47,0,75,0,74,0,34,0,238,255, +205,255,208,255,237,255,16,0,24,0,3,0,2,0,26,0,30,0,11,0,235,255,214,255,243,255,36,0,38,0,4,0, +251,255,31,0,86,0,118,0,107,0,74,0,28,0,232,255,215,255,251,255,44,0,65,0,43,0,255,255,248,255,15,0, +6,0,229,255,222,255,233,255,234,255,223,255,209,255,213,255,247,255,13,0,7,0,11,0,16,0,3,0,6,0,27,0, +49,0,80,0,97,0,83,0,51,0,9,0,233,255,221,255,202,255,186,255,186,255,192,255,206,255,224,255,226,255,215,255, +203,255,197,255,220,255,37,0,101,0,85,0,44,0,49,0,65,0,64,0,43,0,10,0,16,0,55,0,60,0,28,0, +247,255,212,255,195,255,208,255,235,255,236,255,207,255,205,255,5,0,68,0,81,0,43,0,255,255,249,255,6,0,251,255, +210,255,164,255,147,255,163,255,179,255,187,255,220,255,14,0,46,0,58,0,51,0,25,0,3,0,248,255,250,255,25,0, +61,0,71,0,56,0,25,0,254,255,237,255,227,255,227,255,224,255,215,255,228,255,255,255,12,0,7,0,244,255,230,255, +231,255,235,255,235,255,238,255,246,255,5,0,21,0,22,0,8,0,2,0,19,0,33,0,25,0,253,255,212,255,190,255, +194,255,194,255,209,255,0,0,50,0,68,0,29,0,227,255,224,255,249,255,246,255,211,255,153,255,130,255,171,255,205,255, +217,255,243,255,8,0,18,0,28,0,32,0,43,0,60,0,66,0,62,0,43,0,18,0,246,255,224,255,227,255,233,255, +208,255,196,255,218,255,229,255,222,255,221,255,240,255,27,0,54,0,27,0,243,255,254,255,39,0,59,0,65,0,76,0, +88,0,92,0,64,0,13,0,250,255,4,0,5,0,247,255,218,255,198,255,218,255,16,0,69,0,57,0,244,255,220,255, +6,0,58,0,70,0,14,0,213,255,229,255,4,0,6,0,252,255,233,255,228,255,232,255,220,255,212,255,225,255,21,0, +102,0,125,0,61,0,245,255,226,255,5,0,51,0,54,0,28,0,17,0,5,0,224,255,221,255,31,0,67,0,26,0, +231,255,200,255,190,255,197,255,187,255,181,255,221,255,30,0,74,0,89,0,79,0,35,0,228,255,200,255,214,255,220,255, +225,255,2,0,19,0,246,255,211,255,216,255,2,0,46,0,48,0,4,0,239,255,251,255,243,255,244,255,30,0,52,0, +26,0,231,255,184,255,175,255,188,255,182,255,163,255,146,255,149,255,186,255,232,255,1,0,3,0,252,255,2,0,14,0, +11,0,5,0,29,0,74,0,96,0,85,0,69,0,60,0,56,0,55,0,48,0,43,0,32,0,10,0,252,255,247,255, +3,0,42,0,59,0,41,0,22,0,15,0,24,0,41,0,25,0,247,255,236,255,245,255,5,0,17,0,8,0,245,255, +235,255,217,255,195,255,209,255,246,255,254,255,244,255,237,255,224,255,215,255,216,255,219,255,225,255,235,255,1,0,27,0, +29,0,20,0,14,0,12,0,33,0,50,0,27,0,252,255,235,255,221,255,217,255,221,255,229,255,249,255,4,0,242,255, +214,255,198,255,208,255,239,255,11,0,15,0,7,0,1,0,5,0,21,0,33,0,30,0,18,0,250,255,224,255,223,255, +229,255,211,255,196,255,216,255,7,0,45,0,48,0,33,0,18,0,254,255,222,255,197,255,214,255,4,0,11,0,237,255, +239,255,13,0,36,0,46,0,36,0,8,0,235,255,214,255,213,255,232,255,250,255,7,0,19,0,24,0,18,0,3,0, +248,255,247,255,251,255,6,0,20,0,22,0,1,0,241,255,252,255,10,0,255,255,223,255,190,255,201,255,1,0,29,0, +10,0,249,255,242,255,234,255,235,255,239,255,238,255,234,255,241,255,8,0,28,0,27,0,9,0,245,255,251,255,18,0, +18,0,250,255,224,255,228,255,30,0,83,0,65,0,12,0,234,255,231,255,1,0,29,0,43,0,59,0,63,0,41,0, +20,0,17,0,20,0,21,0,8,0,247,255,254,255,24,0,40,0,41,0,28,0,5,0,247,255,250,255,252,255,247,255, +246,255,245,255,235,255,226,255,230,255,239,255,253,255,18,0,25,0,1,0,222,255,210,255,221,255,235,255,237,255,223,255, +212,255,226,255,245,255,242,255,221,255,214,255,238,255,3,0,252,255,245,255,248,255,254,255,4,0,247,255,231,255,248,255, +11,0,11,0,10,0,13,0,17,0,17,0,5,0,250,255,238,255,228,255,233,255,251,255,14,0,27,0,24,0,21,0, +30,0,34,0,30,0,42,0,61,0,47,0,15,0,4,0,1,0,241,255,234,255,250,255,15,0,23,0,23,0,28,0, +35,0,32,0,16,0,0,0,5,0,7,0,236,255,220,255,240,255,5,0,11,0,0,0,244,255,2,0,21,0,0,0, +223,255,209,255,208,255,208,255,204,255,198,255,202,255,217,255,232,255,238,255,240,255,242,255,233,255,215,255,213,255,219,255, +213,255,213,255,225,255,222,255,211,255,219,255,235,255,247,255,254,255,1,0,2,0,9,0,19,0,30,0,36,0,24,0, +237,255,195,255,199,255,232,255,245,255,247,255,2,0,16,0,25,0,26,0,24,0,35,0,56,0,51,0,30,0,36,0, +54,0,57,0,44,0,25,0,20,0,31,0,43,0,50,0,37,0,13,0,6,0,5,0,2,0,12,0,9,0,255,255, +12,0,26,0,25,0,19,0,8,0,0,0,1,0,12,0,21,0,4,0,230,255,219,255,235,255,5,0,9,0,247,255, +246,255,14,0,24,0,9,0,12,0,47,0,76,0,83,0,68,0,44,0,46,0,46,0,19,0,14,0,28,0,20,0, +251,255,225,255,216,255,237,255,12,0,27,0,4,0,224,255,217,255,237,255,57,0,139,0,90,0,212,255,129,255,125,255, +201,255,21,0,251,255,207,255,231,255,16,0,33,0,35,0,32,0,17,0,1,0,2,0,4,0,251,255,236,255,211,255, +220,255,14,0,25,0,1,0,252,255,2,0,254,255,223,255,169,255,163,255,228,255,12,0,244,255,216,255,219,255,248,255, +15,0,240,255,189,255,192,255,229,255,247,255,244,255,233,255,236,255,246,255,251,255,255,255,235,255,217,255,3,0,50,0, +51,0,35,0,25,0,44,0,85,0,79,0,32,0,8,0,23,0,47,0,50,0,30,0,8,0,246,255,242,255,249,255, +1,0,13,0,15,0,247,255,217,255,215,255,1,0,43,0,48,0,10,0,204,255,189,255,245,255,21,0,246,255,206,255, +194,255,226,255,5,0,240,255,200,255,200,255,225,255,245,255,251,255,3,0,16,0,16,0,0,0,243,255,5,0,42,0, +52,0,31,0,9,0,5,0,20,0,25,0,2,0,245,255,2,0,24,0,27,0,3,0,249,255,29,0,64,0,51,0, +246,255,182,255,170,255,211,255,246,255,246,255,236,255,242,255,10,0,44,0,51,0,22,0,252,255,235,255,210,255,201,255, +209,255,220,255,240,255,244,255,218,255,213,255,240,255,2,0,14,0,27,0,21,0,1,0,234,255,212,255,215,255,232,255, +225,255,202,255,171,255,165,255,218,255,13,0,7,0,249,255,254,255,17,0,49,0,84,0,99,0,65,0,5,0,236,255, +249,255,12,0,15,0,244,255,236,255,17,0,54,0,61,0,31,0,250,255,254,255,43,0,100,0,111,0,49,0,251,255, +2,0,37,0,68,0,46,0,245,255,228,255,241,255,1,0,16,0,3,0,231,255,217,255,221,255,233,255,220,255,192,255, +188,255,205,255,243,255,17,0,255,255,228,255,227,255,223,255,217,255,211,255,200,255,204,255,222,255,246,255,15,0,29,0, +29,0,18,0,1,0,238,255,229,255,237,255,249,255,2,0,0,0,246,255,2,0,33,0,45,0,21,0,227,255,202,255, +226,255,254,255,1,0,244,255,222,255,214,255,224,255,240,255,254,255,246,255,227,255,237,255,10,0,28,0,32,0,21,0, +5,0,3,0,18,0,33,0,29,0,22,0,34,0,53,0,64,0,60,0,42,0,25,0,8,0,251,255,253,255,7,0, +4,0,246,255,242,255,7,0,24,0,12,0,240,255,233,255,11,0,53,0,61,0,48,0,45,0,56,0,63,0,52,0, +26,0,3,0,252,255,2,0,7,0,8,0,4,0,254,255,1,0,18,0,36,0,41,0,33,0,22,0,8,0,247,255, +227,255,218,255,245,255,26,0,14,0,224,255,197,255,211,255,252,255,6,0,225,255,215,255,254,255,41,0,67,0,68,0, +45,0,17,0,3,0,12,0,12,0,232,255,208,255,234,255,7,0,9,0,249,255,238,255,251,255,4,0,236,255,225,255, +246,255,250,255,242,255,5,0,39,0,53,0,40,0,12,0,245,255,235,255,231,255,227,255,226,255,228,255,217,255,218,255, +6,0,49,0,40,0,4,0,234,255,239,255,17,0,28,0,255,255,236,255,244,255,14,0,44,0,48,0,36,0,31,0, +15,0,240,255,201,255,159,255,148,255,171,255,201,255,226,255,233,255,233,255,247,255,1,0,247,255,220,255,187,255,183,255, +209,255,225,255,225,255,211,255,196,255,212,255,239,255,246,255,253,255,8,0,12,0,3,0,235,255,222,255,245,255,21,0, +25,0,254,255,221,255,218,255,255,255,27,0,25,0,27,0,36,0,43,0,52,0,47,0,24,0,5,0,247,255,247,255, +4,0,12,0,21,0,32,0,25,0,12,0,12,0,16,0,16,0,16,0,21,0,37,0,54,0,48,0,29,0,36,0, +48,0,13,0,218,255,206,255,224,255,241,255,252,255,11,0,27,0,32,0,27,0,16,0,14,0,29,0,26,0,3,0, +0,0,254,255,237,255,226,255,209,255,188,255,192,255,210,255,233,255,2,0,15,0,20,0,22,0,24,0,37,0,38,0, +3,0,223,255,222,255,251,255,19,0,20,0,1,0,238,255,234,255,241,255,250,255,10,0,21,0,6,0,237,255,234,255, +249,255,6,0,19,0,26,0,5,0,219,255,197,255,216,255,6,0,45,0,40,0,10,0,2,0,6,0,6,0,4,0, +254,255,14,0,54,0,66,0,42,0,13,0,246,255,234,255,223,255,206,255,212,255,246,255,18,0,22,0,20,0,32,0, +48,0,50,0,26,0,238,255,212,255,221,255,248,255,17,0,17,0,255,255,2,0,23,0,22,0,248,255,221,255,222,255, +231,255,226,255,218,255,215,255,224,255,246,255,7,0,19,0,36,0,40,0,25,0,255,255,233,255,222,255,223,255,253,255, +42,0,64,0,55,0,24,0,14,0,51,0,71,0,37,0,250,255,230,255,241,255,3,0,245,255,232,255,254,255,5,0, +229,255,207,255,231,255,24,0,47,0,18,0,231,255,223,255,245,255,22,0,35,0,3,0,226,255,232,255,251,255,12,0, +14,0,2,0,12,0,25,0,254,255,214,255,186,255,187,255,221,255,239,255,220,255,200,255,200,255,226,255,11,0,30,0, +6,0,225,255,219,255,247,255,14,0,11,0,254,255,255,255,251,255,223,255,199,255,188,255,197,255,233,255,2,0,255,255, +248,255,238,255,234,255,244,255,3,0,7,0,253,255,250,255,245,255,211,255,191,255,220,255,253,255,253,255,216,255,187,255, +210,255,3,0,33,0,26,0,252,255,252,255,34,0,51,0,33,0,10,0,2,0,7,0,16,0,28,0,31,0,29,0, +35,0,43,0,56,0,68,0,44,0,255,255,229,255,232,255,0,0,16,0,11,0,253,255,238,255,232,255,241,255,253,255, +7,0,1,0,236,255,233,255,244,255,237,255,229,255,241,255,255,255,9,0,29,0,37,0,25,0,15,0,2,0,242,255, +237,255,235,255,241,255,1,0,8,0,10,0,15,0,19,0,20,0,5,0,248,255,5,0,15,0,7,0,254,255,252,255, +11,0,31,0,25,0,255,255,235,255,224,255,228,255,241,255,235,255,217,255,222,255,245,255,13,0,30,0,24,0,10,0, +4,0,245,255,235,255,248,255,10,0,26,0,16,0,227,255,209,255,236,255,5,0,10,0,251,255,227,255,223,255,236,255, +247,255,250,255,238,255,235,255,4,0,31,0,44,0,55,0,59,0,46,0,33,0,29,0,31,0,40,0,30,0,4,0, +255,255,13,0,36,0,55,0,46,0,12,0,239,255,233,255,251,255,10,0,6,0,253,255,251,255,6,0,28,0,33,0, +8,0,231,255,218,255,231,255,0,0,21,0,19,0,253,255,240,255,251,255,14,0,27,0,27,0,6,0,231,255,232,255, +16,0,43,0,36,0,23,0,17,0,18,0,23,0,24,0,23,0,25,0,24,0,12,0,7,0,23,0,33,0,28,0, +34,0,42,0,34,0,13,0,245,255,227,255,211,255,209,255,238,255,13,0,24,0,29,0,24,0,3,0,240,255,243,255, +255,255,248,255,241,255,248,255,250,255,254,255,250,255,232,255,244,255,11,0,12,0,22,0,14,0,234,255,219,255,214,255, +218,255,255,255,40,0,62,0,47,0,249,255,216,255,231,255,0,0,11,0,252,255,228,255,221,255,233,255,2,0,23,0, +29,0,19,0,249,255,236,255,247,255,5,0,17,0,26,0,27,0,30,0,25,0,8,0,251,255,238,255,230,255,236,255, +246,255,5,0,22,0,24,0,25,0,38,0,34,0,11,0,248,255,240,255,245,255,6,0,19,0,14,0,255,255,246,255, +241,255,236,255,224,255,198,255,179,255,182,255,189,255,199,255,211,255,210,255,219,255,246,255,255,255,253,255,7,0,10,0, +255,255,227,255,186,255,165,255,170,255,176,255,187,255,205,255,220,255,232,255,242,255,1,0,19,0,15,0,250,255,244,255, +0,0,16,0,25,0,11,0,242,255,232,255,244,255,18,0,46,0,43,0,8,0,232,255,228,255,238,255,248,255,9,0, +25,0,24,0,14,0,14,0,43,0,86,0,77,0,19,0,0,0,29,0,52,0,49,0,16,0,242,255,6,0,30,0, +8,0,230,255,211,255,217,255,252,255,12,0,243,255,213,255,208,255,242,255,26,0,22,0,251,255,235,255,228,255,237,255, +249,255,255,255,20,0,44,0,31,0,1,0,1,0,11,0,238,255,219,255,248,255,23,0,33,0,10,0,244,255,82,0, +206,0,155,0,227,255,78,255,54,255,155,255,242,255,223,255,187,255,211,255,32,0,110,0,129,0,75,0,245,255,192,255, +203,255,248,255,41,0,57,0,24,0,8,0,34,0,49,0,33,0,3,0,234,255,233,255,254,255,33,0,58,0,55,0, +33,0,11,0,19,0,52,0,48,0,7,0,236,255,237,255,9,0,26,0,2,0,232,255,240,255,14,0,37,0,11,0, +210,255,206,255,248,255,4,0,243,255,235,255,239,255,1,0,17,0,12,0,18,0,38,0,48,0,46,0,32,0,20,0, +35,0,52,0,52,0,25,0,234,255,223,255,255,255,9,0,247,255,222,255,200,255,218,255,5,0,16,0,8,0,8,0, +249,255,211,255,198,255,231,255,12,0,21,0,9,0,243,255,231,255,240,255,0,0,1,0,245,255,240,255,243,255,245,255, +249,255,248,255,247,255,6,0,9,0,240,255,224,255,233,255,235,255,228,255,226,255,233,255,248,255,5,0,254,255,243,255, +238,255,237,255,249,255,9,0,13,0,14,0,13,0,10,0,4,0,244,255,231,255,229,255,238,255,6,0,7,0,230,255, +217,255,243,255,18,0,30,0,14,0,244,255,234,255,242,255,13,0,34,0,22,0,5,0,252,255,239,255,232,255,226,255, +225,255,0,0,31,0,10,0,214,255,187,255,213,255,24,0,61,0,27,0,227,255,205,255,230,255,15,0,7,0,219,255, +207,255,232,255,13,0,32,0,9,0,224,255,198,255,203,255,233,255,7,0,24,0,22,0,12,0,28,0,33,0,249,255, +225,255,255,255,44,0,66,0,55,0,32,0,14,0,255,255,239,255,218,255,211,255,231,255,252,255,17,0,37,0,16,0, +228,255,224,255,4,0,33,0,26,0,252,255,231,255,243,255,12,0,13,0,6,0,22,0,38,0,37,0,25,0,1,0, +239,255,239,255,248,255,254,255,244,255,234,255,243,255,255,255,252,255,242,255,244,255,0,0,3,0,255,255,6,0,20,0, +14,0,240,255,229,255,250,255,252,255,235,255,238,255,4,0,29,0,41,0,36,0,18,0,246,255,231,255,237,255,245,255, +252,255,249,255,244,255,3,0,20,0,15,0,10,0,13,0,17,0,17,0,9,0,252,255,248,255,0,0,246,255,221,255, +224,255,251,255,10,0,17,0,20,0,18,0,9,0,246,255,233,255,243,255,5,0,13,0,3,0,241,255,219,255,197,255, +197,255,221,255,249,255,18,0,31,0,35,0,27,0,23,0,54,0,94,0,95,0,51,0,230,255,175,255,187,255,227,255, +247,255,230,255,203,255,228,255,33,0,69,0,65,0,40,0,26,0,32,0,34,0,32,0,22,0,2,0,248,255,250,255, +255,255,11,0,18,0,10,0,241,255,223,255,233,255,252,255,255,255,230,255,187,255,185,255,225,255,249,255,255,255,254,255, +249,255,249,255,246,255,242,255,243,255,239,255,244,255,6,0,17,0,33,0,52,0,40,0,2,0,228,255,223,255,241,255, +9,0,7,0,244,255,1,0,35,0,35,0,6,0,241,255,243,255,20,0,48,0,33,0,6,0,252,255,4,0,25,0, +23,0,242,255,212,255,217,255,247,255,19,0,25,0,9,0,246,255,245,255,4,0,15,0,15,0,13,0,11,0,19,0, +37,0,43,0,36,0,19,0,248,255,231,255,223,255,221,255,251,255,25,0,8,0,225,255,205,255,211,255,227,255,230,255, +224,255,227,255,239,255,252,255,2,0,7,0,18,0,18,0,10,0,11,0,18,0,17,0,247,255,201,255,186,255,222,255, +15,0,27,0,244,255,210,255,239,255,40,0,60,0,35,0,247,255,222,255,235,255,14,0,43,0,48,0,29,0,8,0, +6,0,20,0,15,0,235,255,217,255,240,255,2,0,245,255,220,255,204,255,223,255,18,0,52,0,48,0,28,0,249,255, +220,255,235,255,18,0,31,0,15,0,1,0,251,255,253,255,5,0,7,0,1,0,244,255,229,255,229,255,244,255,12,0, +48,0,72,0,52,0,255,255,206,255,189,255,206,255,226,255,230,255,225,255,217,255,214,255,229,255,9,0,34,0,23,0, +245,255,227,255,250,255,38,0,52,0,38,0,34,0,37,0,32,0,21,0,7,0,5,0,14,0,4,0,238,255,244,255, +9,0,8,0,3,0,11,0,25,0,44,0,37,0,238,255,205,255,239,255,31,0,49,0,38,0,5,0,229,255,234,255, +19,0,41,0,9,0,225,255,224,255,254,255,26,0,14,0,240,255,250,255,29,0,33,0,8,0,235,255,214,255,225,255, +8,0,36,0,35,0,11,0,245,255,242,255,241,255,237,255,246,255,6,0,5,0,246,255,239,255,246,255,1,0,4,0, +0,0,4,0,12,0,17,0,19,0,13,0,245,255,226,255,238,255,11,0,26,0,16,0,241,255,227,255,2,0,26,0, +255,255,216,255,210,255,236,255,7,0,7,0,242,255,216,255,208,255,231,255,1,0,3,0,239,255,214,255,225,255,5,0, +14,0,6,0,2,0,0,0,15,0,30,0,23,0,16,0,11,0,8,0,12,0,255,255,237,255,230,255,226,255,253,255, +33,0,34,0,26,0,18,0,9,0,17,0,11,0,246,255,239,255,231,255,218,255,220,255,232,255,241,255,239,255,235,255, +242,255,7,0,26,0,6,0,226,255,240,255,20,0,34,0,43,0,44,0,31,0,15,0,253,255,247,255,243,255,230,255, +229,255,235,255,243,255,245,255,231,255,234,255,15,0,46,0,49,0,26,0,249,255,247,255,14,0,25,0,14,0,247,255, +242,255,8,0,19,0,5,0,249,255,248,255,237,255,227,255,240,255,254,255,249,255,242,255,247,255,13,0,32,0,17,0, +245,255,237,255,251,255,26,0,42,0,15,0,248,255,10,0,26,0,255,255,204,255,169,255,176,255,214,255,241,255,255,255, +6,0,0,0,251,255,248,255,243,255,24,0,89,0,102,0,53,0,233,255,176,255,176,255,204,255,225,255,239,255,246,255, +241,255,236,255,246,255,3,0,246,255,224,255,225,255,243,255,9,0,17,0,8,0,8,0,20,0,42,0,64,0,48,0, +17,0,17,0,22,0,17,0,5,0,236,255,223,255,226,255,236,255,255,255,14,0,22,0,35,0,52,0,69,0,66,0, +30,0,2,0,8,0,29,0,46,0,47,0,33,0,29,0,33,0,32,0,29,0,25,0,9,0,242,255,243,255,14,0, +18,0,248,255,236,255,244,255,7,0,24,0,22,0,30,0,60,0,57,0,20,0,253,255,252,255,15,0,40,0,38,0, +15,0,248,255,230,255,225,255,229,255,231,255,224,255,219,255,233,255,244,255,236,255,228,255,233,255,242,255,243,255,242,255, +255,255,0,0,239,255,227,255,219,255,215,255,208,255,179,255,180,255,226,255,248,255,243,255,237,255,235,255,244,255,247,255, +236,255,229,255,228,255,236,255,251,255,12,0,26,0,20,0,1,0,244,255,225,255,224,255,255,255,34,0,55,0,40,0, +3,0,249,255,254,255,252,255,247,255,234,255,232,255,242,255,240,255,244,255,0,0,13,0,29,0,15,0,233,255,230,255, +4,0,40,0,57,0,28,0,237,255,222,255,243,255,17,0,45,0,63,0,53,0,28,0,31,0,34,0,249,255,201,255, +192,255,218,255,3,0,17,0,246,255,226,255,233,255,237,255,245,255,10,0,21,0,8,0,237,255,220,255,243,255,17,0, +9,0,231,255,201,255,212,255,21,0,92,0,132,0,119,0,55,0,5,0,1,0,244,255,204,255,168,255,164,255,199,255, +255,255,49,0,60,0,29,0,243,255,211,255,217,255,0,0,4,0,229,255,217,255,234,255,19,0,20,0,205,255,160,255, +203,255,37,0,99,0,66,0,225,255,151,255,137,255,187,255,239,255,233,255,206,255,194,255,209,255,249,255,16,0,18,0, +33,0,61,0,95,0,106,0,73,0,43,0,45,0,68,0,96,0,89,0,46,0,13,0,10,0,26,0,23,0,237,255, +191,255,172,255,147,255,97,255,64,255,85,255,159,255,2,0,60,0,65,0,77,0,85,0,55,0,36,0,34,0,26,0, +29,0,31,0,45,0,103,0,136,0,82,0,233,255,142,255,150,255,249,255,34,0,237,255,205,255,226,255,4,0,28,0, +18,0,250,255,0,0,19,0,21,0,14,0,5,0,1,0,7,0,25,0,29,0,239,255,199,255,219,255,254,255,20,0, +13,0,216,255,202,255,247,255,253,255,239,255,16,0,51,0,49,0,36,0,21,0,234,255,167,255,130,255,154,255,222,255, +29,0,36,0,32,0,72,0,103,0,84,0,35,0,232,255,186,255,189,255,10,0,99,0,87,0,4,0,218,255,250,255, +78,0,138,0,121,0,88,0,72,0,53,0,25,0,234,255,196,255,192,255,185,255,166,255,150,255,139,255,171,255,231,255, +244,255,229,255,243,255,14,0,38,0,56,0,50,0,20,0,3,0,14,0,36,0,52,0,46,0,4,0,217,255,220,255, +250,255,251,255,225,255,212,255,222,255,250,255,15,0,6,0,243,255,241,255,251,255,4,0,2,0,8,0,38,0,55,0, +38,0,13,0,255,255,1,0,4,0,249,255,239,255,236,255,230,255,220,255,222,255,248,255,18,0,16,0,7,0,11,0, +22,0,36,0,28,0,250,255,213,255,196,255,214,255,255,255,22,0,20,0,10,0,1,0,245,255,223,255,208,255,224,255, +2,0,20,0,14,0,12,0,38,0,76,0,90,0,63,0,20,0,244,255,229,255,230,255,236,255,236,255,235,255,228,255, +215,255,219,255,229,255,223,255,210,255,211,255,231,255,2,0,26,0,44,0,38,0,254,255,215,255,201,255,220,255,249,255, +246,255,216,255,198,255,201,255,216,255,234,255,248,255,255,255,253,255,1,0,12,0,2,0,235,255,236,255,9,0,41,0, +45,0,13,0,249,255,11,0,23,0,6,0,254,255,9,0,14,0,3,0,241,255,231,255,233,255,238,255,243,255,247,255, +250,255,7,0,13,0,7,0,9,0,24,0,40,0,47,0,31,0,9,0,9,0,33,0,49,0,35,0,9,0,244,255, +224,255,224,255,244,255,248,255,228,255,211,255,231,255,16,0,37,0,29,0,7,0,5,0,37,0,41,0,4,0,246,255, +0,0,14,0,25,0,7,0,241,255,247,255,255,255,5,0,11,0,3,0,248,255,251,255,7,0,11,0,252,255,230,255, +223,255,241,255,21,0,44,0,47,0,32,0,9,0,16,0,41,0,46,0,37,0,5,0,209,255,174,255,164,255,184,255, +234,255,18,0,26,0,27,0,50,0,78,0,70,0,27,0,231,255,209,255,234,255,249,255,229,255,221,255,229,255,246,255, +13,0,16,0,16,0,27,0,21,0,5,0,237,255,216,255,231,255,1,0,255,255,234,255,212,255,229,255,25,0,45,0, +18,0,236,255,211,255,233,255,31,0,48,0,18,0,245,255,240,255,251,255,10,0,10,0,251,255,237,255,233,255,245,255, +11,0,24,0,29,0,24,0,3,0,247,255,248,255,251,255,0,0,246,255,232,255,251,255,29,0,43,0,37,0,16,0, +255,255,250,255,252,255,9,0,18,0,2,0,224,255,201,255,213,255,242,255,0,0,8,0,24,0,43,0,50,0,26,0, +243,255,230,255,243,255,250,255,233,255,226,255,248,255,7,0,4,0,0,0,250,255,242,255,238,255,236,255,242,255,246,255, +236,255,232,255,247,255,4,0,255,255,1,0,26,0,31,0,4,0,248,255,3,0,29,0,56,0,47,0,11,0,247,255, +251,255,7,0,14,0,5,0,247,255,241,255,246,255,255,255,251,255,245,255,1,0,15,0,15,0,13,0,15,0,14,0, +11,0,10,0,6,0,248,255,233,255,235,255,251,255,5,0,15,0,24,0,14,0,255,255,247,255,232,255,219,255,224,255, +235,255,0,0,24,0,20,0,252,255,232,255,228,255,242,255,2,0,9,0,14,0,3,0,235,255,223,255,229,255,251,255, +16,0,10,0,250,255,239,255,224,255,215,255,218,255,220,255,225,255,224,255,218,255,231,255,251,255,8,0,22,0,24,0, +12,0,3,0,251,255,251,255,253,255,237,255,219,255,224,255,244,255,7,0,17,0,18,0,16,0,17,0,26,0,37,0, +37,0,31,0,17,0,3,0,254,255,1,0,11,0,22,0,27,0,26,0,16,0,9,0,16,0,18,0,12,0,8,0, +2,0,1,0,2,0,253,255,248,255,246,255,254,255,11,0,9,0,1,0,4,0,21,0,53,0,62,0,26,0,248,255, +249,255,8,0,6,0,232,255,210,255,230,255,5,0,15,0,4,0,242,255,237,255,245,255,251,255,248,255,240,255,240,255, +3,0,24,0,33,0,26,0,8,0,3,0,11,0,10,0,1,0,250,255,245,255,242,255,238,255,232,255,231,255,229,255, +230,255,245,255,8,0,20,0,23,0,15,0,14,0,18,0,8,0,251,255,248,255,246,255,250,255,7,0,8,0,4,0, +0,0,239,255,228,255,254,255,39,0,46,0,19,0,243,255,224,255,230,255,246,255,243,255,232,255,231,255,233,255,236,255, +241,255,245,255,244,255,240,255,241,255,248,255,251,255,6,0,17,0,14,0,4,0,0,0,5,0,17,0,11,0,240,255, +223,255,230,255,252,255,15,0,13,0,254,255,242,255,236,255,241,255,253,255,4,0,7,0,10,0,13,0,14,0,21,0, +27,0,11,0,245,255,254,255,21,0,22,0,0,0,232,255,229,255,249,255,8,0,4,0,1,0,12,0,28,0,33,0, +24,0,7,0,247,255,246,255,254,255,250,255,232,255,228,255,242,255,2,0,10,0,8,0,255,255,250,255,3,0,22,0, +35,0,30,0,10,0,248,255,240,255,235,255,229,255,230,255,237,255,248,255,2,0,6,0,5,0,3,0,0,0,1,0, +6,0,3,0,245,255,237,255,241,255,3,0,27,0,35,0,27,0,17,0,4,0,252,255,5,0,15,0,12,0,6,0, +6,0,12,0,19,0,21,0,4,0,245,255,251,255,254,255,243,255,237,255,244,255,2,0,8,0,252,255,245,255,255,255, +5,0,1,0,255,255,255,255,5,0,9,0,1,0,246,255,246,255,253,255,2,0,8,0,14,0,19,0,25,0,17,0, +250,255,242,255,0,0,6,0,252,255,240,255,235,255,235,255,238,255,245,255,255,255,9,0,9,0,1,0,2,0,9,0, +251,255,237,255,248,255,4,0,254,255,238,255,227,255,239,255,12,0,19,0,5,0,2,0,8,0,10,0,11,0,9,0, +4,0,1,0,250,255,239,255,242,255,250,255,245,255,244,255,254,255,6,0,0,0,245,255,253,255,7,0,255,255,252,255, +4,0,12,0,12,0,239,255,207,255,223,255,4,0,11,0,249,255,222,255,216,255,237,255,249,255,244,255,240,255,250,255, +19,0,38,0,27,0,4,0,252,255,254,255,250,255,235,255,223,255,228,255,245,255,255,255,4,0,15,0,27,0,36,0, +43,0,46,0,54,0,63,0,53,0,28,0,9,0,253,255,242,255,235,255,238,255,235,255,218,255,229,255,13,0,28,0, +13,0,251,255,239,255,248,255,8,0,1,0,251,255,8,0,9,0,250,255,250,255,5,0,8,0,7,0,5,0,4,0, +12,0,10,0,242,255,223,255,225,255,239,255,249,255,243,255,233,255,236,255,251,255,16,0,27,0,19,0,11,0,13,0, +13,0,9,0,5,0,3,0,255,255,248,255,251,255,7,0,16,0,11,0,1,0,2,0,6,0,3,0,254,255,249,255, +249,255,3,0,2,0,239,255,224,255,233,255,3,0,25,0,26,0,9,0,252,255,0,0,3,0,252,255,244,255,246,255, +252,255,2,0,6,0,8,0,5,0,2,0,1,0,251,255,250,255,6,0,14,0,12,0,10,0,11,0,16,0,11,0, +249,255,236,255,239,255,244,255,244,255,241,255,240,255,248,255,5,0,4,0,238,255,221,255,234,255,4,0,19,0,10,0, +244,255,239,255,0,0,19,0,25,0,17,0,7,0,11,0,28,0,36,0,18,0,245,255,236,255,251,255,8,0,7,0, +253,255,253,255,5,0,7,0,255,255,245,255,240,255,250,255,7,0,9,0,254,255,237,255,236,255,1,0,17,0,11,0, +6,0,12,0,13,0,5,0,249,255,242,255,245,255,248,255,235,255,227,255,237,255,250,255,2,0,3,0,248,255,238,255, +235,255,235,255,236,255,242,255,253,255,10,0,12,0,4,0,255,255,255,255,255,255,255,255,255,255,2,0,13,0,23,0, +23,0,19,0,16,0,15,0,17,0,14,0,254,255,236,255,231,255,241,255,1,0,0,0,249,255,254,255,8,0,11,0, +12,0,9,0,255,255,241,255,232,255,234,255,252,255,13,0,9,0,248,255,233,255,231,255,242,255,244,255,235,255,246,255, +8,0,5,0,247,255,233,255,235,255,8,0,31,0,27,0,16,0,11,0,16,0,29,0,26,0,9,0,0,0,0,0, +6,0,12,0,6,0,251,255,248,255,247,255,244,255,248,255,252,255,248,255,246,255,248,255,249,255,2,0,9,0,7,0, +1,0,247,255,243,255,252,255,255,255,252,255,254,255,5,0,16,0,24,0,20,0,12,0,3,0,249,255,246,255,1,0, +14,0,14,0,2,0,253,255,0,0,3,0,7,0,6,0,0,0,248,255,242,255,243,255,249,255,250,255,249,255,250,255, +253,255,0,0,5,0,10,0,10,0,4,0,253,255,250,255,252,255,252,255,253,255,5,0,7,0,0,0,4,0,20,0, +30,0,20,0,244,255,215,255,222,255,247,255,251,255,243,255,243,255,249,255,4,0,13,0,13,0,16,0,26,0,23,0, +11,0,1,0,249,255,252,255,16,0,28,0,21,0,8,0,7,0,20,0,31,0,25,0,2,0,238,255,236,255,243,255, +247,255,242,255,238,255,246,255,12,0,29,0,33,0,31,0,17,0,242,255,217,255,222,255,244,255,253,255,249,255,244,255, +249,255,12,0,33,0,44,0,38,0,13,0,241,255,224,255,224,255,231,255,228,255,227,255,240,255,251,255,2,0,14,0, +23,0,26,0,12,0,235,255,214,255,218,255,235,255,1,0,4,0,243,255,232,255,237,255,253,255,16,0,24,0,19,0, +15,0,15,0,12,0,3,0,246,255,236,255,233,255,236,255,246,255,6,0,11,0,4,0,255,255,0,0,9,0,21,0, +11,0,241,255,234,255,247,255,3,0,3,0,251,255,251,255,3,0,8,0,11,0,4,0,245,255,236,255,237,255,255,255, +28,0,33,0,13,0,3,0,9,0,27,0,44,0,35,0,9,0,247,255,233,255,228,255,240,255,251,255,248,255,244,255, +248,255,5,0,22,0,30,0,25,0,13,0,253,255,241,255,238,255,244,255,248,255,240,255,234,255,244,255,250,255,243,255, +235,255,236,255,247,255,255,255,246,255,241,255,3,0,29,0,41,0,27,0,250,255,238,255,5,0,22,0,9,0,242,255, +232,255,243,255,10,0,19,0,16,0,13,0,4,0,247,255,249,255,7,0,11,0,1,0,248,255,243,255,233,255,233,255, +250,255,1,0,247,255,244,255,252,255,251,255,240,255,244,255,8,0,16,0,16,0,21,0,20,0,17,0,18,0,14,0, +10,0,2,0,235,255,225,255,239,255,2,0,6,0,253,255,244,255,241,255,247,255,11,0,30,0,25,0,5,0,0,0, +10,0,17,0,18,0,19,0,11,0,254,255,247,255,248,255,5,0,9,0,244,255,217,255,214,255,233,255,249,255,249,255, +246,255,246,255,250,255,11,0,25,0,12,0,244,255,231,255,233,255,255,255,16,0,6,0,247,255,246,255,255,255,8,0, +4,0,246,255,236,255,233,255,235,255,244,255,253,255,4,0,10,0,255,255,231,255,232,255,1,0,11,0,14,0,22,0, +26,0,21,0,14,0,6,0,6,0,11,0,17,0,24,0,27,0,20,0,8,0,255,255,1,0,252,255,238,255,243,255, +8,0,11,0,252,255,237,255,229,255,239,255,0,0,7,0,20,0,43,0,40,0,13,0,0,0,6,0,16,0,17,0, +1,0,245,255,249,255,1,0,5,0,255,255,248,255,250,255,249,255,239,255,235,255,240,255,255,255,9,0,250,255,225,255, +224,255,245,255,11,0,19,0,11,0,1,0,0,0,1,0,254,255,1,0,1,0,245,255,236,255,237,255,241,255,245,255, +249,255,249,255,243,255,241,255,252,255,14,0,25,0,27,0,18,0,7,0,8,0,14,0,13,0,13,0,16,0,15,0, +3,0,246,255,248,255,252,255,250,255,0,0,2,0,251,255,242,255,231,255,230,255,250,255,3,0,246,255,243,255,5,0, +18,0,10,0,253,255,0,0,22,0,45,0,55,0,45,0,16,0,246,255,240,255,238,255,232,255,233,255,235,255,231,255, +237,255,253,255,4,0,247,255,230,255,229,255,250,255,11,0,7,0,250,255,246,255,252,255,6,0,14,0,14,0,8,0, +254,255,250,255,2,0,17,0,22,0,16,0,6,0,4,0,12,0,15,0,11,0,9,0,7,0,253,255,240,255,229,255, +226,255,229,255,232,255,233,255,237,255,232,255,219,255,223,255,247,255,14,0,22,0,14,0,2,0,4,0,16,0,23,0, +23,0,18,0,10,0,6,0,4,0,6,0,7,0,5,0,8,0,11,0,15,0,23,0,20,0,13,0,19,0,20,0, +7,0,252,255,238,255,226,255,232,255,254,255,17,0,19,0,5,0,242,255,237,255,250,255,4,0,0,0,247,255,236,255, +232,255,244,255,2,0,10,0,16,0,17,0,14,0,14,0,15,0,13,0,8,0,9,0,14,0,15,0,10,0,6,0, +5,0,1,0,251,255,1,0,12,0,15,0,22,0,27,0,16,0,3,0,0,0,5,0,15,0,14,0,253,255,241,255, +240,255,245,255,252,255,246,255,234,255,235,255,244,255,249,255,249,255,246,255,241,255,242,255,254,255,10,0,8,0,251,255, +243,255,248,255,4,0,10,0,6,0,253,255,251,255,5,0,16,0,23,0,19,0,6,0,251,255,249,255,245,255,238,255, +241,255,252,255,2,0,255,255,253,255,254,255,251,255,244,255,241,255,247,255,0,0,255,255,243,255,228,255,226,255,245,255, +11,0,10,0,249,255,240,255,243,255,245,255,242,255,238,255,241,255,252,255,5,0,0,0,245,255,241,255,247,255,4,0, +16,0,17,0,7,0,254,255,2,0,11,0,11,0,5,0,1,0,254,255,248,255,237,255,230,255,241,255,1,0,5,0, +2,0,253,255,245,255,243,255,252,255,1,0,250,255,246,255,249,255,255,255,10,0,13,0,7,0,6,0,7,0,0,0, +244,255,237,255,246,255,9,0,18,0,14,0,2,0,254,255,12,0,26,0,16,0,252,255,240,255,242,255,0,0,7,0, +248,255,229,255,234,255,1,0,13,0,6,0,253,255,2,0,15,0,18,0,10,0,3,0,9,0,22,0,27,0,20,0, +16,0,15,0,12,0,6,0,1,0,3,0,6,0,2,0,251,255,251,255,1,0,1,0,251,255,243,255,238,255,235,255, +238,255,245,255,249,255,253,255,12,0,24,0,14,0,246,255,229,255,233,255,0,0,18,0,20,0,18,0,18,0,12,0, +3,0,3,0,9,0,8,0,3,0,0,0,250,255,244,255,242,255,241,255,253,255,19,0,19,0,255,255,244,255,249,255, +3,0,11,0,8,0,254,255,246,255,244,255,247,255,251,255,245,255,232,255,227,255,240,255,3,0,14,0,13,0,1,0, +255,255,13,0,28,0,35,0,23,0,253,255,238,255,242,255,243,255,233,255,222,255,228,255,250,255,15,0,23,0,17,0, +6,0,1,0,0,0,11,0,22,0,13,0,0,0,253,255,253,255,254,255,255,255,253,255,255,255,3,0,7,0,9,0, +6,0,6,0,14,0,20,0,19,0,14,0,11,0,18,0,22,0,13,0,252,255,234,255,225,255,235,255,6,0,24,0, +17,0,3,0,251,255,248,255,253,255,8,0,16,0,13,0,248,255,234,255,250,255,8,0,0,0,240,255,227,255,234,255, +250,255,244,255,227,255,227,255,238,255,252,255,15,0,24,0,16,0,7,0,254,255,246,255,3,0,23,0,18,0,3,0, +4,0,4,0,254,255,248,255,242,255,245,255,0,0,1,0,252,255,251,255,251,255,253,255,1,0,14,0,28,0,25,0, +11,0,6,0,9,0,11,0,7,0,253,255,246,255,248,255,255,255,1,0,252,255,246,255,242,255,245,255,253,255,253,255, +246,255,245,255,253,255,9,0,17,0,15,0,3,0,243,255,237,255,246,255,253,255,249,255,241,255,236,255,243,255,252,255, +244,255,233,255,234,255,249,255,15,0,21,0,6,0,246,255,245,255,255,255,7,0,2,0,250,255,249,255,253,255,253,255, +241,255,229,255,236,255,249,255,249,255,240,255,241,255,2,0,16,0,12,0,3,0,5,0,11,0,4,0,252,255,11,0, +24,0,7,0,248,255,1,0,21,0,38,0,31,0,7,0,3,0,14,0,8,0,2,0,15,0,23,0,9,0,246,255, +236,255,243,255,4,0,6,0,253,255,1,0,6,0,252,255,242,255,244,255,252,255,2,0,254,255,250,255,246,255,237,255, +237,255,241,255,244,255,241,255,228,255,229,255,254,255,8,0,250,255,241,255,242,255,254,255,11,0,2,0,238,255,240,255, +2,0,16,0,22,0,19,0,13,0,13,0,8,0,246,255,238,255,243,255,243,255,244,255,0,0,10,0,11,0,8,0, +5,0,9,0,16,0,16,0,14,0,15,0,14,0,6,0,0,0,6,0,17,0,18,0,8,0,249,255,239,255,247,255, +8,0,17,0,9,0,2,0,9,0,15,0,9,0,254,255,246,255,250,255,5,0,4,0,254,255,0,0,5,0,12,0, +17,0,13,0,255,255,245,255,245,255,249,255,254,255,2,0,250,255,238,255,244,255,255,255,0,0,3,0,5,0,2,0, +3,0,5,0,1,0,255,255,3,0,8,0,12,0,18,0,21,0,15,0,8,0,6,0,7,0,11,0,18,0,19,0, +7,0,248,255,245,255,251,255,251,255,249,255,252,255,254,255,250,255,252,255,3,0,2,0,248,255,243,255,252,255,12,0, +16,0,3,0,242,255,241,255,249,255,252,255,254,255,4,0,8,0,4,0,252,255,246,255,240,255,245,255,4,0,7,0, +253,255,246,255,244,255,248,255,2,0,8,0,3,0,242,255,230,255,246,255,11,0,9,0,1,0,0,0,0,0,5,0, +11,0,9,0,6,0,4,0,3,0,10,0,19,0,10,0,247,255,243,255,250,255,244,255,231,255,240,255,0,0,253,255, +242,255,241,255,247,255,7,0,18,0,9,0,254,255,251,255,245,255,242,255,241,255,237,255,239,255,240,255,237,255,244,255, +8,0,22,0,20,0,252,255,231,255,241,255,254,255,237,255,222,255,239,255,5,0,8,0,254,255,246,255,249,255,5,0, +13,0,15,0,11,0,0,0,250,255,255,255,11,0,13,0,1,0,244,255,243,255,246,255,250,255,8,0,25,0,24,0, +10,0,1,0,254,255,4,0,17,0,25,0,23,0,15,0,252,255,243,255,2,0,15,0,15,0,9,0,255,255,7,0, +27,0,18,0,250,255,251,255,5,0,1,0,251,255,252,255,1,0,5,0,255,255,244,255,253,255,18,0,15,0,242,255, +221,255,222,255,235,255,252,255,4,0,255,255,246,255,247,255,6,0,20,0,15,0,253,255,238,255,235,255,241,255,249,255, +2,0,13,0,13,0,254,255,239,255,238,255,250,255,13,0,26,0,25,0,15,0,254,255,237,255,234,255,245,255,253,255, +3,0,5,0,8,0,23,0,38,0,32,0,19,0,18,0,21,0,13,0,247,255,228,255,222,255,223,255,230,255,239,255, +243,255,242,255,240,255,248,255,15,0,25,0,8,0,248,255,250,255,7,0,18,0,15,0,0,0,239,255,235,255,251,255, +17,0,27,0,28,0,22,0,18,0,15,0,255,255,234,255,232,255,245,255,251,255,250,255,245,255,243,255,248,255,253,255, +254,255,255,255,3,0,6,0,6,0,254,255,240,255,239,255,252,255,15,0,27,0,19,0,253,255,240,255,236,255,241,255, +1,0,13,0,13,0,3,0,244,255,237,255,242,255,248,255,251,255,253,255,1,0,3,0,252,255,247,255,250,255,255,255, +6,0,6,0,0,0,255,255,0,0,255,255,253,255,246,255,238,255,238,255,242,255,250,255,8,0,15,0,14,0,16,0, +21,0,18,0,10,0,6,0,255,255,245,255,246,255,3,0,16,0,23,0,15,0,249,255,239,255,243,255,248,255,255,255, +9,0,18,0,18,0,11,0,5,0,255,255,250,255,251,255,0,0,252,255,240,255,241,255,2,0,14,0,12,0,4,0, +251,255,254,255,8,0,6,0,252,255,246,255,247,255,254,255,1,0,2,0,8,0,19,0,33,0,32,0,8,0,255,255, +16,0,22,0,15,0,6,0,0,0,254,255,0,0,9,0,23,0,25,0,12,0,1,0,0,0,4,0,254,255,237,255, +230,255,235,255,246,255,0,0,4,0,7,0,9,0,7,0,3,0,251,255,246,255,254,255,5,0,248,255,235,255,242,255, +252,255,0,0,5,0,5,0,253,255,249,255,249,255,255,255,22,0,28,0,1,0,233,255,234,255,245,255,0,0,2,0, +245,255,233,255,239,255,253,255,254,255,244,255,241,255,243,255,254,255,14,0,9,0,247,255,242,255,241,255,244,255,0,0, +10,0,8,0,251,255,240,255,241,255,242,255,248,255,5,0,7,0,255,255,251,255,250,255,0,0,9,0,14,0,16,0, +14,0,8,0,4,0,255,255,244,255,237,255,243,255,252,255,3,0,7,0,7,0,9,0,13,0,6,0,252,255,0,0, +6,0,2,0,251,255,247,255,249,255,254,255,251,255,245,255,247,255,255,255,4,0,4,0,6,0,7,0,0,0,249,255, +252,255,2,0,4,0,0,0,251,255,254,255,1,0,253,255,251,255,255,255,1,0,1,0,1,0,5,0,10,0,10,0, +5,0,254,255,254,255,255,255,245,255,241,255,1,0,19,0,25,0,6,0,232,255,230,255,251,255,5,0,2,0,249,255, +241,255,241,255,239,255,236,255,247,255,9,0,21,0,20,0,9,0,5,0,10,0,9,0,255,255,245,255,243,255,253,255, +8,0,13,0,14,0,10,0,255,255,250,255,254,255,1,0,10,0,18,0,4,0,242,255,252,255,16,0,16,0,3,0, +254,255,2,0,2,0,8,0,20,0,16,0,3,0,1,0,7,0,13,0,7,0,236,255,218,255,226,255,240,255,254,255, +14,0,20,0,5,0,233,255,228,255,249,255,3,0,5,0,14,0,7,0,244,255,235,255,236,255,248,255,8,0,6,0, +253,255,4,0,20,0,31,0,20,0,244,255,228,255,244,255,22,0,43,0,22,0,242,255,246,255,10,0,0,0,242,255, +253,255,16,0,27,0,18,0,1,0,2,0,11,0,3,0,247,255,242,255,246,255,2,0,12,0,9,0,251,255,241,255, +0,0,25,0,22,0,254,255,241,255,239,255,243,255,249,255,251,255,246,255,240,255,239,255,244,255,254,255,6,0,2,0, +247,255,246,255,241,255,230,255,237,255,2,0,7,0,0,0,0,0,7,0,17,0,16,0,255,255,249,255,8,0,8,0, +250,255,2,0,24,0,22,0,8,0,12,0,21,0,15,0,2,0,253,255,1,0,11,0,11,0,1,0,2,0,7,0, +252,255,242,255,252,255,8,0,2,0,247,255,245,255,249,255,253,255,255,255,255,255,0,0,8,0,13,0,0,0,241,255, +234,255,230,255,236,255,254,255,7,0,254,255,242,255,244,255,5,0,12,0,1,0,252,255,5,0,10,0,7,0,254,255, +246,255,250,255,5,0,6,0,252,255,240,255,234,255,243,255,2,0,4,0,248,255,229,255,224,255,242,255,0,0,253,255, +251,255,251,255,248,255,250,255,255,255,6,0,14,0,12,0,4,0,4,0,8,0,14,0,16,0,4,0,252,255,2,0, +1,0,245,255,245,255,247,255,243,255,240,255,236,255,245,255,17,0,26,0,6,0,248,255,0,0,15,0,22,0,18,0, +10,0,2,0,2,0,15,0,16,0,251,255,241,255,246,255,254,255,8,0,3,0,241,255,242,255,255,255,3,0,6,0, +11,0,7,0,4,0,6,0,9,0,18,0,22,0,8,0,251,255,255,255,0,0,250,255,251,255,5,0,18,0,21,0, +4,0,244,255,0,0,17,0,6,0,251,255,1,0,2,0,250,255,255,255,5,0,6,0,6,0,251,255,240,255,246,255, +251,255,248,255,254,255,7,0,7,0,2,0,2,0,5,0,255,255,249,255,2,0,13,0,11,0,5,0,255,255,249,255, +250,255,2,0,12,0,16,0,8,0,249,255,252,255,17,0,23,0,3,0,245,255,248,255,254,255,5,0,7,0,253,255, +245,255,253,255,8,0,5,0,252,255,254,255,6,0,0,0,245,255,251,255,11,0,13,0,6,0,254,255,244,255,246,255, +2,0,9,0,16,0,17,0,251,255,231,255,233,255,239,255,240,255,232,255,222,255,228,255,242,255,250,255,253,255,2,0, +8,0,3,0,244,255,235,255,245,255,8,0,15,0,4,0,248,255,249,255,251,255,253,255,5,0,5,0,247,255,235,255, +239,255,254,255,8,0,8,0,6,0,5,0,5,0,8,0,9,0,8,0,9,0,11,0,6,0,254,255,246,255,242,255, +255,255,17,0,10,0,244,255,237,255,239,255,240,255,246,255,252,255,4,0,6,0,254,255,250,255,255,255,7,0,15,0, +12,0,254,255,243,255,239,255,246,255,1,0,251,255,237,255,248,255,10,0,3,0,243,255,247,255,4,0,9,0,7,0, +5,0,7,0,9,0,5,0,5,0,14,0,21,0,22,0,18,0,15,0,8,0,250,255,242,255,253,255,7,0,2,0, +253,255,255,255,6,0,6,0,253,255,253,255,7,0,7,0,2,0,5,0,10,0,8,0,3,0,3,0,1,0,250,255, +248,255,2,0,8,0,4,0,254,255,251,255,252,255,3,0,7,0,11,0,24,0,24,0,255,255,237,255,242,255,245,255, +243,255,238,255,237,255,250,255,8,0,7,0,3,0,0,0,248,255,243,255,246,255,254,255,0,0,250,255,248,255,0,0, +9,0,13,0,6,0,1,0,9,0,16,0,12,0,4,0,0,0,3,0,5,0,255,255,251,255,254,255,3,0,2,0, +249,255,244,255,253,255,5,0,3,0,0,0,5,0,4,0,252,255,247,255,247,255,250,255,251,255,250,255,252,255,4,0, +13,0,19,0,16,0,2,0,249,255,251,255,253,255,249,255,250,255,0,0,254,255,242,255,246,255,4,0,1,0,250,255, +253,255,1,0,1,0,250,255,240,255,250,255,13,0,9,0,253,255,2,0,11,0,7,0,251,255,247,255,250,255,254,255, +1,0,1,0,254,255,255,255,5,0,11,0,12,0,7,0,251,255,248,255,2,0,6,0,255,255,254,255,1,0,2,0, +252,255,241,255,242,255,4,0,20,0,24,0,8,0,240,255,244,255,7,0,11,0,7,0,1,0,250,255,254,255,6,0, +2,0,252,255,247,255,246,255,254,255,1,0,255,255,4,0,9,0,3,0,254,255,252,255,250,255,248,255,245,255,251,255, +17,0,29,0,16,0,254,255,251,255,2,0,9,0,6,0,0,0,251,255,244,255,249,255,7,0,6,0,255,255,252,255, +251,255,255,255,254,255,242,255,241,255,253,255,0,0,249,255,241,255,238,255,247,255,5,0,10,0,8,0,5,0,254,255, +248,255,248,255,253,255,1,0,6,0,6,0,254,255,246,255,242,255,243,255,252,255,4,0,7,0,7,0,6,0,6,0, +11,0,18,0,20,0,15,0,8,0,0,0,254,255,13,0,26,0,13,0,244,255,230,255,232,255,240,255,249,255,0,0, +255,255,252,255,255,255,5,0,3,0,251,255,243,255,244,255,4,0,17,0,13,0,5,0,253,255,242,255,239,255,4,0, +22,0,6,0,240,255,241,255,0,0,16,0,21,0,10,0,255,255,255,255,0,0,253,255,252,255,251,255,253,255,0,0, +6,0,14,0,15,0,6,0,250,255,243,255,243,255,252,255,2,0,250,255,241,255,243,255,252,255,255,255,253,255,0,0, +13,0,24,0,26,0,19,0,3,0,253,255,6,0,9,0,6,0,7,0,2,0,253,255,5,0,4,0,247,255,238,255, +234,255,236,255,249,255,4,0,1,0,247,255,243,255,249,255,255,255,255,255,252,255,250,255,0,0,3,0,250,255,245,255, +0,0,8,0,6,0,2,0,255,255,254,255,255,255,251,255,249,255,6,0,22,0,20,0,3,0,241,255,238,255,253,255, +5,0,0,0,251,255,252,255,5,0,8,0,254,255,247,255,247,255,251,255,1,0,253,255,246,255,250,255,3,0,9,0, +15,0,10,0,4,0,5,0,2,0,254,255,12,0,30,0,27,0,7,0,242,255,242,255,6,0,13,0,0,0,245,255, +240,255,233,255,234,255,248,255,3,0,6,0,0,0,247,255,242,255,240,255,246,255,255,255,1,0,1,0,2,0,255,255, +254,255,255,255,252,255,253,255,2,0,2,0,0,0,0,0,5,0,14,0,16,0,7,0,5,0,18,0,25,0,11,0, +244,255,234,255,245,255,11,0,20,0,10,0,254,255,251,255,0,0,2,0,253,255,254,255,6,0,7,0,2,0,246,255, +240,255,0,0,20,0,15,0,252,255,243,255,252,255,7,0,7,0,253,255,242,255,241,255,248,255,0,0,6,0,12,0, +10,0,254,255,245,255,245,255,248,255,254,255,9,0,16,0,13,0,6,0,251,255,248,255,253,255,254,255,2,0,14,0, +10,0,252,255,252,255,5,0,9,0,9,0,3,0,253,255,253,255,255,255,1,0,254,255,253,255,3,0,8,0,5,0, +3,0,5,0,6,0,4,0,5,0,3,0,253,255,253,255,1,0,1,0,1,0,0,0,255,255,0,0,4,0,5,0, +6,0,8,0,5,0,251,255,244,255,245,255,252,255,5,0,10,0,5,0,255,255,252,255,248,255,247,255,240,255,236,255, +248,255,7,0,7,0,252,255,240,255,237,255,248,255,253,255,245,255,243,255,249,255,0,0,4,0,6,0,0,0,248,255, +251,255,5,0,6,0,254,255,251,255,252,255,255,255,1,0,2,0,2,0,10,0,20,0,16,0,2,0,253,255,254,255, +0,0,2,0,4,0,4,0,1,0,253,255,0,0,8,0,6,0,243,255,227,255,236,255,0,0,3,0,250,255,244,255, +0,0,19,0,18,0,0,0,248,255,248,255,249,255,4,0,10,0,5,0,5,0,11,0,11,0,0,0,243,255,241,255, +246,255,245,255,248,255,5,0,3,0,245,255,244,255,253,255,9,0,16,0,3,0,248,255,2,0,8,0,255,255,251,255, +255,255,5,0,11,0,4,0,249,255,254,255,0,0,245,255,244,255,3,0,5,0,250,255,244,255,243,255,248,255,2,0, +1,0,248,255,250,255,1,0,254,255,250,255,252,255,0,0,5,0,7,0,0,0,247,255,250,255,2,0,2,0,252,255, +250,255,253,255,1,0,4,0,3,0,255,255,251,255,251,255,253,255,3,0,9,0,8,0,4,0,5,0,9,0,9,0, +7,0,10,0,13,0,8,0,251,255,242,255,243,255,251,255,2,0,2,0,3,0,10,0,11,0,6,0,5,0,6,0, +4,0,6,0,12,0,9,0,252,255,248,255,255,255,3,0,254,255,255,255,5,0,7,0,6,0,5,0,6,0,9,0, +9,0,6,0,6,0,8,0,11,0,13,0,12,0,6,0,252,255,246,255,251,255,1,0,0,0,255,255,4,0,4,0, +253,255,250,255,254,255,5,0,7,0,251,255,239,255,241,255,251,255,0,0,255,255,251,255,247,255,250,255,2,0,8,0, +8,0,6,0,5,0,6,0,8,0,8,0,5,0,5,0,10,0,10,0,5,0,1,0,3,0,10,0,11,0,255,255, +245,255,246,255,248,255,244,255,246,255,255,255,2,0,254,255,254,255,252,255,247,255,248,255,248,255,248,255,252,255,252,255, +246,255,248,255,255,255,255,255,253,255,7,0,18,0,19,0,10,0,3,0,255,255,254,255,1,0,4,0,1,0,250,255, +247,255,247,255,250,255,2,0,1,0,247,255,247,255,253,255,253,255,253,255,254,255,1,0,5,0,5,0,3,0,1,0, +249,255,246,255,248,255,247,255,250,255,5,0,5,0,249,255,244,255,248,255,252,255,253,255,249,255,247,255,5,0,15,0, +4,0,255,255,12,0,19,0,11,0,255,255,0,0,11,0,15,0,3,0,247,255,245,255,254,255,7,0,5,0,255,255, +254,255,3,0,8,0,4,0,252,255,246,255,248,255,254,255,253,255,248,255,248,255,252,255,255,255,253,255,247,255,246,255, +247,255,244,255,247,255,254,255,2,0,254,255,247,255,244,255,247,255,253,255,0,0,254,255,251,255,253,255,254,255,253,255, +249,255,246,255,250,255,255,255,0,0,5,0,11,0,8,0,0,0,250,255,254,255,7,0,4,0,248,255,244,255,1,0, +11,0,7,0,254,255,248,255,248,255,2,0,9,0,6,0,1,0,251,255,246,255,249,255,0,0,4,0,4,0,0,0, +252,255,0,0,6,0,7,0,4,0,8,0,13,0,9,0,0,0,248,255,252,255,5,0,5,0,1,0,5,0,9,0, +10,0,10,0,3,0,253,255,251,255,251,255,0,0,6,0,5,0,2,0,5,0,15,0,14,0,0,0,247,255,247,255, +246,255,247,255,255,255,6,0,3,0,254,255,254,255,4,0,11,0,12,0,1,0,250,255,3,0,11,0,15,0,15,0, +7,0,253,255,252,255,3,0,7,0,0,0,250,255,255,255,11,0,22,0,16,0,255,255,248,255,254,255,3,0,255,255, +244,255,238,255,245,255,0,0,9,0,12,0,2,0,250,255,248,255,250,255,252,255,255,255,1,0,2,0,3,0,3,0, +3,0,5,0,8,0,8,0,11,0,12,0,6,0,251,255,243,255,246,255,2,0,8,0,9,0,2,0,251,255,4,0, +17,0,14,0,5,0,255,255,251,255,253,255,0,0,251,255,247,255,248,255,247,255,250,255,1,0,3,0,252,255,249,255, +253,255,0,0,0,0,251,255,247,255,252,255,2,0,0,0,253,255,255,255,2,0,1,0,0,0,1,0,1,0,255,255, +250,255,245,255,244,255,251,255,3,0,5,0,253,255,242,255,240,255,248,255,3,0,6,0,2,0,1,0,5,0,5,0, +6,0,5,0,1,0,254,255,255,255,3,0,5,0,254,255,251,255,2,0,4,0,254,255,249,255,249,255,251,255,252,255, +250,255,248,255,247,255,244,255,244,255,254,255,11,0,10,0,2,0,251,255,250,255,255,255,3,0,6,0,6,0,1,0, +252,255,252,255,251,255,254,255,3,0,4,0,0,0,251,255,244,255,241,255,245,255,250,255,254,255,3,0,7,0,6,0, +1,0,255,255,0,0,3,0,5,0,0,0,249,255,249,255,255,255,4,0,1,0,248,255,248,255,4,0,16,0,21,0, +18,0,12,0,6,0,2,0,253,255,248,255,246,255,248,255,251,255,252,255,253,255,254,255,0,0,1,0,5,0,8,0, +8,0,9,0,5,0,254,255,5,0,14,0,6,0,250,255,248,255,251,255,0,0,1,0,254,255,253,255,2,0,5,0, +3,0,1,0,255,255,254,255,3,0,7,0,3,0,254,255,254,255,1,0,3,0,2,0,0,0,253,255,250,255,251,255, +255,255,3,0,4,0,255,255,253,255,0,0,4,0,10,0,13,0,6,0,253,255,248,255,244,255,248,255,0,0,4,0, +4,0,2,0,4,0,10,0,7,0,253,255,247,255,252,255,4,0,10,0,11,0,7,0,1,0,253,255,251,255,255,255, +3,0,1,0,253,255,251,255,250,255,0,0,5,0,254,255,249,255,250,255,254,255,1,0,1,0,1,0,1,0,254,255, +253,255,0,0,3,0,3,0,3,0,5,0,4,0,0,0,252,255,249,255,248,255,252,255,1,0,9,0,11,0,1,0, +252,255,2,0,1,0,248,255,247,255,252,255,255,255,254,255,254,255,254,255,252,255,252,255,3,0,2,0,252,255,253,255, +3,0,3,0,2,0,4,0,3,0,0,0,255,255,250,255,249,255,0,0,0,0,252,255,255,255,4,0,3,0,255,255, +253,255,254,255,255,255,2,0,5,0,254,255,247,255,255,255,11,0,13,0,4,0,251,255,252,255,7,0,13,0,12,0, +7,0,2,0,252,255,254,255,3,0,3,0,254,255,250,255,248,255,249,255,250,255,251,255,252,255,252,255,253,255,1,0, +6,0,9,0,0,0,239,255,239,255,253,255,0,0,251,255,254,255,2,0,5,0,4,0,0,0,254,255,0,0,4,0, +4,0,254,255,248,255,245,255,244,255,247,255,251,255,252,255,251,255,254,255,1,0,1,0,1,0,0,0,0,0,7,0, +12,0,9,0,9,0,6,0,255,255,251,255,250,255,247,255,248,255,249,255,247,255,252,255,3,0,7,0,8,0,6,0, +1,0,253,255,254,255,1,0,1,0,0,0,2,0,5,0,5,0,2,0,0,0,254,255,248,255,242,255,244,255,254,255, +14,0,23,0,17,0,4,0,252,255,0,0,10,0,12,0,6,0,3,0,1,0,255,255,255,255,0,0,3,0,5,0, +5,0,2,0,0,0,254,255,251,255,253,255,6,0,9,0,6,0,255,255,247,255,248,255,255,255,2,0,1,0,254,255, +253,255,0,0,5,0,8,0,6,0,1,0,4,0,9,0,5,0,253,255,248,255,250,255,7,0,20,0,20,0,12,0, +4,0,1,0,255,255,253,255,246,255,241,255,247,255,254,255,1,0,3,0,8,0,13,0,11,0,1,0,253,255,2,0, +4,0,3,0,255,255,250,255,252,255,255,255,252,255,253,255,2,0,3,0,1,0,254,255,249,255,247,255,249,255,252,255, +0,0,5,0,5,0,254,255,245,255,241,255,245,255,254,255,1,0,254,255,253,255,253,255,252,255,254,255,3,0,1,0, +246,255,242,255,248,255,250,255,249,255,253,255,0,0,0,0,253,255,247,255,249,255,3,0,14,0,14,0,0,0,243,255, +247,255,3,0,7,0,1,0,248,255,246,255,254,255,1,0,249,255,249,255,3,0,1,0,245,255,245,255,249,255,248,255, +249,255,255,255,4,0,7,0,8,0,6,0,4,0,4,0,8,0,9,0,6,0,1,0,253,255,252,255,255,255,255,255, +251,255,245,255,246,255,251,255,255,255,0,0,253,255,249,255,251,255,254,255,2,0,7,0,7,0,6,0,8,0,6,0, +254,255,251,255,1,0,9,0,10,0,11,0,12,0,5,0,250,255,245,255,249,255,0,0,1,0,250,255,249,255,4,0, +13,0,9,0,1,0,255,255,255,255,1,0,8,0,12,0,9,0,255,255,246,255,249,255,3,0,8,0,10,0,2,0, +251,255,2,0,13,0,12,0,9,0,8,0,10,0,16,0,14,0,3,0,249,255,246,255,248,255,247,255,242,255,240,255, +250,255,6,0,5,0,254,255,250,255,250,255,254,255,4,0,6,0,10,0,11,0,6,0,1,0,0,0,4,0,11,0, +14,0,10,0,253,255,238,255,243,255,1,0,2,0,250,255,247,255,252,255,6,0,10,0,4,0,253,255,252,255,1,0, +2,0,0,0,253,255,254,255,3,0,4,0,0,0,254,255,255,255,255,255,1,0,2,0,2,0,2,0,255,255,254,255, +255,255,253,255,250,255,251,255,1,0,5,0,0,0,251,255,253,255,255,255,0,0,2,0,5,0,5,0,1,0,252,255, +248,255,249,255,254,255,0,0,254,255,254,255,0,0,0,0,0,0,254,255,253,255,254,255,0,0,0,0,254,255,249,255, +244,255,241,255,243,255,250,255,254,255,251,255,247,255,250,255,254,255,255,255,3,0,9,0,11,0,6,0,250,255,244,255, +252,255,4,0,3,0,255,255,0,0,5,0,8,0,5,0,0,0,252,255,250,255,252,255,255,255,4,0,15,0,22,0, +16,0,1,0,249,255,253,255,0,0,254,255,253,255,253,255,253,255,0,0,9,0,16,0,12,0,2,0,254,255,0,0, +1,0,255,255,253,255,0,0,2,0,254,255,251,255,252,255,1,0,5,0,6,0,2,0,253,255,252,255,1,0,2,0, +250,255,245,255,250,255,3,0,5,0,1,0,0,0,0,0,0,0,2,0,1,0,253,255,255,255,2,0,3,0,4,0, +1,0,251,255,249,255,252,255,254,255,255,255,252,255,250,255,4,0,11,0,254,255,249,255,7,0,14,0,10,0,2,0, +245,255,241,255,246,255,246,255,249,255,1,0,4,0,7,0,12,0,14,0,8,0,254,255,249,255,252,255,253,255,248,255, +245,255,249,255,0,0,1,0,2,0,0,0,253,255,2,0,7,0,1,0,249,255,247,255,253,255,5,0,8,0,7,0, +3,0,252,255,246,255,244,255,251,255,11,0,20,0,19,0,13,0,5,0,0,0,253,255,248,255,247,255,251,255,253,255, +254,255,1,0,0,0,250,255,248,255,255,255,255,255,246,255,243,255,248,255,255,255,4,0,4,0,3,0,5,0,4,0, +1,0,255,255,1,0,8,0,18,0,20,0,13,0,4,0,253,255,248,255,245,255,249,255,254,255,252,255,246,255,245,255, +253,255,6,0,4,0,250,255,247,255,254,255,5,0,5,0,1,0,0,0,0,0,2,0,1,0,254,255,252,255,250,255, +251,255,0,0,2,0,4,0,6,0,1,0,249,255,246,255,252,255,4,0,6,0,0,0,249,255,252,255,5,0,11,0, +6,0,1,0,2,0,5,0,4,0,255,255,253,255,1,0,5,0,7,0,4,0,1,0,0,0,1,0,3,0,2,0, +254,255,252,255,255,255,2,0,5,0,5,0,2,0,3,0,6,0,6,0,3,0,2,0,2,0,2,0,254,255,247,255, +247,255,253,255,2,0,1,0,253,255,252,255,253,255,252,255,0,0,3,0,2,0,1,0,0,0,255,255,0,0,255,255, +255,255,5,0,10,0,5,0,251,255,251,255,4,0,10,0,8,0,1,0,252,255,254,255,0,0,248,255,242,255,245,255, +251,255,255,255,2,0,255,255,255,255,3,0,8,0,9,0,5,0,1,0,2,0,4,0,1,0,249,255,243,255,250,255, +7,0,8,0,1,0,252,255,254,255,1,0,0,0,253,255,253,255,255,255,6,0,8,0,0,0,247,255,245,255,251,255, +255,255,253,255,253,255,1,0,3,0,3,0,1,0,253,255,253,255,252,255,249,255,251,255,2,0,12,0,11,0,252,255, +243,255,250,255,6,0,11,0,6,0,252,255,248,255,252,255,254,255,249,255,243,255,244,255,253,255,12,0,15,0,2,0, +245,255,247,255,3,0,13,0,15,0,7,0,255,255,254,255,4,0,8,0,1,0,246,255,244,255,252,255,4,0,7,0, +7,0,4,0,0,0,255,255,1,0,4,0,6,0,253,255,246,255,252,255,255,255,250,255,248,255,254,255,5,0,6,0, +253,255,246,255,1,0,15,0,11,0,0,0,254,255,2,0,5,0,7,0,3,0,2,0,8,0,4,0,253,255,3,0, +7,0,5,0,0,0,246,255,245,255,1,0,2,0,247,255,241,255,242,255,246,255,252,255,2,0,4,0,5,0,4,0, +254,255,250,255,252,255,254,255,255,255,1,0,254,255,254,255,3,0,3,0,0,0,0,0,1,0,4,0,5,0,2,0, +1,0,2,0,2,0,4,0,3,0,5,0,8,0,2,0,244,255,241,255,251,255,5,0,7,0,4,0,2,0,4,0, +4,0,1,0,253,255,253,255,252,255,248,255,250,255,2,0,8,0,9,0,4,0,255,255,255,255,1,0,3,0,0,0, +249,255,248,255,252,255,251,255,251,255,2,0,8,0,4,0,248,255,238,255,241,255,252,255,2,0,0,0,255,255,2,0, +2,0,253,255,249,255,248,255,250,255,4,0,13,0,15,0,10,0,1,0,250,255,249,255,255,255,9,0,14,0,6,0, +251,255,246,255,245,255,249,255,254,255,254,255,252,255,253,255,0,0,5,0,11,0,16,0,14,0,8,0,3,0,252,255, +249,255,0,0,4,0,254,255,249,255,255,255,9,0,11,0,5,0,252,255,244,255,247,255,5,0,21,0,20,0,2,0, +239,255,238,255,254,255,13,0,11,0,255,255,253,255,6,0,16,0,14,0,1,0,249,255,254,255,5,0,9,0,6,0, +252,255,245,255,245,255,252,255,4,0,9,0,2,0,247,255,248,255,2,0,5,0,2,0,254,255,250,255,253,255,3,0, +2,0,1,0,2,0,4,0,6,0,255,255,242,255,238,255,246,255,1,0,3,0,251,255,245,255,249,255,4,0,11,0, +5,0,248,255,244,255,248,255,255,255,8,0,12,0,10,0,6,0,0,0,254,255,254,255,253,255,253,255,0,0,8,0, +12,0,3,0,252,255,254,255,1,0,2,0,255,255,251,255,251,255,255,255,4,0,6,0,253,255,245,255,248,255,0,0, +2,0,253,255,246,255,246,255,253,255,5,0,7,0,2,0,254,255,255,255,2,0,2,0,1,0,1,0,3,0,5,0, +8,0,5,0,247,255,238,255,248,255,2,0,254,255,248,255,251,255,3,0,9,0,9,0,4,0,1,0,0,0,0,0, +1,0,6,0,3,0,246,255,240,255,247,255,1,0,5,0,3,0,253,255,253,255,0,0,4,0,3,0,252,255,248,255, +252,255,254,255,254,255,1,0,3,0,2,0,5,0,8,0,6,0,3,0,0,0,0,0,3,0,5,0,2,0,255,255, +251,255,251,255,5,0,13,0,7,0,251,255,245,255,249,255,3,0,2,0,246,255,243,255,251,255,1,0,5,0,9,0, +5,0,252,255,248,255,251,255,2,0,5,0,255,255,247,255,248,255,254,255,3,0,4,0,6,0,9,0,4,0,250,255, +250,255,255,255,2,0,2,0,1,0,2,0,1,0,251,255,252,255,9,0,14,0,6,0,253,255,254,255,11,0,22,0, +15,0,255,255,248,255,250,255,1,0,5,0,2,0,254,255,0,0,2,0,255,255,1,0,7,0,7,0,6,0,6,0, +0,0,253,255,254,255,249,255,246,255,251,255,1,0,3,0,4,0,2,0,255,255,250,255,250,255,254,255,4,0,14,0, +19,0,12,0,2,0,250,255,251,255,2,0,3,0,251,255,241,255,236,255,244,255,1,0,5,0,3,0,255,255,252,255, +255,255,3,0,3,0,1,0,255,255,253,255,252,255,255,255,9,0,19,0,21,0,13,0,1,0,251,255,254,255,6,0, +9,0,252,255,239,255,240,255,247,255,247,255,245,255,245,255,0,0,13,0,5,0,247,255,254,255,9,0,4,0,250,255, +247,255,244,255,243,255,247,255,249,255,245,255,244,255,248,255,0,0,9,0,7,0,252,255,247,255,254,255,3,0,255,255, +253,255,1,0,6,0,6,0,2,0,254,255,252,255,254,255,0,0,4,0,10,0,9,0,1,0,254,255,0,0,1,0, +255,255,251,255,250,255,253,255,254,255,253,255,3,0,10,0,10,0,6,0,2,0,255,255,0,0,1,0,2,0,5,0, +8,0,8,0,8,0,7,0,3,0,253,255,247,255,247,255,248,255,246,255,248,255,254,255,2,0,6,0,6,0,3,0, +3,0,5,0,7,0,6,0,253,255,244,255,248,255,2,0,2,0,251,255,250,255,255,255,4,0,4,0,255,255,252,255, +255,255,0,0,253,255,253,255,0,0,6,0,14,0,14,0,10,0,5,0,249,255,241,255,246,255,255,255,5,0,5,0, +255,255,254,255,4,0,7,0,7,0,2,0,252,255,249,255,251,255,255,255,1,0,4,0,3,0,252,255,250,255,3,0, +7,0,0,0,251,255,248,255,252,255,1,0,254,255,250,255,250,255,252,255,0,0,3,0,2,0,0,0,0,0,0,0, +4,0,8,0,7,0,1,0,253,255,251,255,252,255,255,255,253,255,245,255,247,255,1,0,4,0,3,0,5,0,5,0, +9,0,13,0,12,0,6,0,254,255,251,255,0,0,4,0,4,0,2,0,0,0,3,0,10,0,12,0,3,0,245,255, +237,255,245,255,4,0,12,0,7,0,0,0,254,255,2,0,6,0,2,0,251,255,254,255,8,0,11,0,4,0,248,255, +239,255,245,255,4,0,9,0,4,0,255,255,251,255,251,255,255,255,1,0,2,0,6,0,4,0,254,255,252,255,255,255, +255,255,251,255,244,255,241,255,246,255,254,255,5,0,4,0,253,255,249,255,255,255,4,0,253,255,241,255,240,255,252,255, +5,0,3,0,251,255,245,255,248,255,0,0,5,0,5,0,5,0,4,0,2,0,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,5,0,8,0,7,0,7,0,2,0,253,255,253,255,252,255,252,255,1,0,3,0,254,255,253,255,4,0, +6,0,0,0,251,255,249,255,246,255,248,255,252,255,254,255,2,0,1,0,252,255,251,255,0,0,6,0,9,0,7,0, +4,0,3,0,3,0,6,0,5,0,253,255,252,255,2,0,5,0,5,0,4,0,0,0,253,255,255,255,5,0,13,0, +13,0,251,255,229,255,229,255,249,255,9,0,10,0,0,0,250,255,1,0,7,0,1,0,253,255,2,0,6,0,1,0, +250,255,247,255,250,255,1,0,9,0,13,0,9,0,5,0,3,0,5,0,7,0,3,0,254,255,255,255,1,0,2,0, +1,0,251,255,248,255,255,255,3,0,0,0,253,255,0,0,7,0,14,0,8,0,252,255,244,255,244,255,242,255,244,255, +254,255,8,0,10,0,13,0,14,0,10,0,3,0,254,255,249,255,249,255,255,255,8,0,10,0,6,0,2,0,1,0, +8,0,14,0,9,0,0,0,252,255,251,255,249,255,245,255,240,255,242,255,251,255,255,255,254,255,1,0,10,0,15,0, +10,0,4,0,3,0,3,0,0,0,254,255,255,255,253,255,255,255,4,0,0,0,251,255,254,255,3,0,6,0,5,0, +0,0,0,0,3,0,4,0,1,0,248,255,240,255,241,255,247,255,252,255,255,255,254,255,252,255,255,255,3,0,2,0, +253,255,251,255,0,0,7,0,6,0,251,255,246,255,248,255,249,255,252,255,1,0,2,0,1,0,3,0,4,0,1,0, +252,255,250,255,254,255,2,0,0,0,250,255,242,255,241,255,250,255,255,255,252,255,248,255,248,255,254,255,3,0,3,0, +4,0,6,0,5,0,1,0,253,255,253,255,1,0,1,0,1,0,3,0,2,0,255,255,254,255,255,255,2,0,5,0, +4,0,3,0,5,0,9,0,8,0,6,0,3,0,254,255,251,255,251,255,253,255,2,0,255,255,242,255,239,255,253,255, +8,0,12,0,10,0,1,0,251,255,252,255,255,255,2,0,3,0,1,0,0,0,255,255,252,255,246,255,244,255,252,255, +5,0,7,0,7,0,7,0,6,0,7,0,11,0,15,0,17,0,12,0,5,0,2,0,2,0,3,0,3,0,255,255, +252,255,252,255,254,255,0,0,4,0,2,0,248,255,243,255,250,255,5,0,9,0,4,0,255,255,0,0,1,0,2,0, +0,0,252,255,249,255,245,255,243,255,247,255,255,255,4,0,9,0,12,0,9,0,6,0,6,0,5,0,1,0,251,255, +249,255,254,255,3,0,5,0,3,0,3,0,4,0,4,0,2,0,0,0,2,0,3,0,254,255,249,255,251,255,0,0, +255,255,250,255,244,255,246,255,255,255,4,0,3,0,5,0,7,0,3,0,1,0,7,0,10,0,3,0,250,255,244,255, +247,255,253,255,0,0,254,255,252,255,253,255,0,0,3,0,1,0,250,255,246,255,249,255,254,255,253,255,255,255,6,0, +10,0,7,0,2,0,0,0,4,0,11,0,7,0,249,255,238,255,240,255,251,255,1,0,3,0,0,0,250,255,253,255, +7,0,8,0,3,0,2,0,2,0,0,0,255,255,254,255,0,0,0,0,250,255,248,255,250,255,255,255,8,0,10,0, +4,0,2,0,1,0,254,255,250,255,248,255,251,255,251,255,249,255,252,255,3,0,2,0,253,255,253,255,2,0,11,0, +13,0,3,0,250,255,251,255,1,0,4,0,4,0,3,0,4,0,3,0,251,255,243,255,241,255,244,255,251,255,3,0, +4,0,1,0,254,255,253,255,253,255,253,255,255,255,2,0,255,255,249,255,246,255,249,255,254,255,5,0,10,0,9,0, +2,0,250,255,251,255,1,0,4,0,2,0,255,255,255,255,7,0,16,0,15,0,7,0,254,255,250,255,253,255,2,0, +1,0,253,255,253,255,255,255,255,255,252,255,249,255,248,255,250,255,253,255,253,255,254,255,2,0,6,0,7,0,7,0, +8,0,7,0,5,0,0,0,249,255,249,255,255,255,5,0,7,0,8,0,7,0,2,0,254,255,252,255,254,255,253,255, +249,255,249,255,0,0,3,0,1,0,254,255,251,255,252,255,255,255,2,0,5,0,7,0,3,0,254,255,252,255,254,255, +254,255,252,255,250,255,251,255,252,255,0,0,6,0,6,0,1,0,255,255,4,0,13,0,18,0,12,0,5,0,5,0, +7,0,5,0,254,255,244,255,244,255,252,255,3,0,5,0,2,0,253,255,251,255,253,255,0,0,5,0,6,0,4,0, +2,0,255,255,255,255,6,0,12,0,12,0,7,0,255,255,255,255,6,0,6,0,0,0,252,255,254,255,3,0,8,0, +5,0,1,0,2,0,8,0,11,0,2,0,247,255,249,255,7,0,13,0,7,0,251,255,245,255,249,255,254,255,254,255, +0,0,4,0,3,0,255,255,250,255,250,255,254,255,254,255,251,255,250,255,251,255,0,0,6,0,7,0,1,0,246,255, +242,255,249,255,1,0,254,255,249,255,247,255,248,255,252,255,252,255,252,255,254,255,2,0,3,0,4,0,2,0,255,255, +0,0,1,0,1,0,253,255,246,255,246,255,253,255,1,0,0,0,254,255,0,0,5,0,7,0,0,0,247,255,246,255, +252,255,3,0,7,0,2,0,249,255,248,255,255,255,6,0,8,0,4,0,252,255,247,255,248,255,249,255,250,255,254,255, +0,0,255,255,254,255,251,255,248,255,248,255,251,255,1,0,3,0,255,255,248,255,246,255,250,255,2,0,4,0,255,255, +251,255,255,255,8,0,11,0,5,0,251,255,249,255,255,255,5,0,6,0,5,0,5,0,1,0,255,255,2,0,5,0, +5,0,1,0,254,255,0,0,2,0,255,255,249,255,248,255,251,255,2,0,7,0,5,0,255,255,252,255,252,255,0,0, +5,0,6,0,5,0,4,0,2,0,2,0,1,0,0,0,1,0,255,255,254,255,2,0,9,0,10,0,5,0,0,0, +2,0,5,0,4,0,3,0,1,0,253,255,252,255,0,0,1,0,0,0,254,255,251,255,250,255,253,255,1,0,4,0, +3,0,0,0,253,255,252,255,254,255,0,0,0,0,3,0,5,0,2,0,252,255,249,255,252,255,5,0,8,0,255,255, +247,255,250,255,1,0,6,0,2,0,252,255,255,255,4,0,3,0,2,0,5,0,5,0,2,0,0,0,5,0,12,0, +15,0,10,0,5,0,5,0,7,0,6,0,1,0,251,255,246,255,245,255,248,255,0,0,8,0,9,0,3,0,254,255, +254,255,2,0,5,0,4,0,1,0,2,0,6,0,8,0,5,0,251,255,246,255,251,255,0,0,254,255,254,255,0,0, +0,0,255,255,0,0,1,0,254,255,250,255,251,255,255,255,4,0,5,0,255,255,250,255,253,255,0,0,2,0,3,0, +254,255,248,255,249,255,254,255,2,0,5,0,2,0,1,0,5,0,7,0,4,0,0,0,253,255,251,255,248,255,247,255, +252,255,2,0,1,0,253,255,249,255,251,255,1,0,1,0,250,255,251,255,2,0,7,0,8,0,255,255,248,255,1,0, +10,0,11,0,6,0,0,0,255,255,5,0,11,0,12,0,11,0,3,0,253,255,253,255,0,0,2,0,1,0,254,255, +251,255,250,255,250,255,252,255,252,255,247,255,244,255,248,255,3,0,14,0,10,0,252,255,245,255,247,255,254,255,1,0, +252,255,251,255,255,255,255,255,0,0,5,0,4,0,251,255,245,255,248,255,255,255,4,0,0,0,252,255,254,255,2,0, +3,0,2,0,1,0,252,255,245,255,244,255,246,255,246,255,243,255,248,255,2,0,7,0,5,0,253,255,249,255,253,255, +1,0,3,0,6,0,9,0,6,0,1,0,0,0,4,0,6,0,4,0,252,255,249,255,253,255,2,0,2,0,255,255, +253,255,3,0,8,0,4,0,251,255,248,255,251,255,0,0,2,0,253,255,252,255,0,0,1,0,252,255,249,255,251,255, +0,0,4,0,5,0,3,0,3,0,11,0,16,0,7,0,248,255,245,255,253,255,4,0,1,0,248,255,244,255,248,255, +254,255,255,255,252,255,252,255,0,0,3,0,254,255,247,255,249,255,2,0,9,0,7,0,255,255,250,255,254,255,6,0, +8,0,2,0,252,255,254,255,7,0,16,0,16,0,9,0,4,0,5,0,7,0,6,0,3,0,255,255,253,255,1,0, +5,0,6,0,2,0,251,255,247,255,252,255,1,0,253,255,249,255,252,255,0,0,4,0,6,0,2,0,252,255,250,255, +254,255,4,0,8,0,3,0,250,255,247,255,253,255,4,0,6,0,4,0,5,0,6,0,5,0,3,0,254,255,248,255, +250,255,3,0,11,0,16,0,14,0,6,0,1,0,0,0,1,0,4,0,1,0,249,255,246,255,250,255,1,0,3,0, +0,0,2,0,8,0,6,0,1,0,254,255,253,255,3,0,9,0,3,0,255,255,5,0,9,0,5,0,254,255,248,255, +249,255,254,255,0,0,254,255,249,255,249,255,0,0,5,0,5,0,4,0,0,0,253,255,254,255,253,255,252,255,254,255, +0,0,4,0,6,0,1,0,254,255,1,0,255,255,249,255,247,255,248,255,252,255,2,0,6,0,5,0,252,255,246,255, +251,255,0,0,254,255,253,255,255,255,1,0,4,0,5,0,1,0,255,255,252,255,251,255,252,255,252,255,251,255,253,255, +3,0,8,0,12,0,12,0,7,0,2,0,0,0,0,0,254,255,252,255,251,255,251,255,251,255,253,255,0,0,4,0, +5,0,3,0,4,0,8,0,3,0,249,255,245,255,250,255,255,255,254,255,249,255,248,255,253,255,1,0,0,0,1,0, +7,0,10,0,4,0,250,255,243,255,244,255,248,255,249,255,248,255,254,255,4,0,1,0,254,255,1,0,4,0,3,0, +255,255,251,255,252,255,0,0,0,0,254,255,255,255,2,0,3,0,1,0,0,0,2,0,3,0,0,0,255,255,2,0, +5,0,2,0,251,255,248,255,250,255,254,255,254,255,250,255,249,255,0,0,5,0,5,0,3,0,0,0,255,255,0,0, +254,255,0,0,6,0,9,0,7,0,3,0,254,255,252,255,253,255,255,255,2,0,4,0,1,0,250,255,248,255,250,255, +253,255,252,255,249,255,248,255,251,255,255,255,2,0,0,0,249,255,248,255,252,255,254,255,255,255,2,0,3,0,3,0, +6,0,6,0,2,0,254,255,255,255,1,0,4,0,6,0,7,0,7,0,4,0,255,255,251,255,249,255,252,255,1,0, +3,0,1,0,0,0,4,0,9,0,12,0,9,0,3,0,1,0,4,0,6,0,2,0,251,255,250,255,254,255,5,0, +9,0,7,0,254,255,245,255,243,255,250,255,2,0,255,255,249,255,251,255,4,0,11,0,11,0,7,0,0,0,251,255, +249,255,251,255,253,255,253,255,1,0,9,0,9,0,4,0,3,0,6,0,9,0,7,0,5,0,4,0,4,0,1,0, +253,255,250,255,250,255,255,255,4,0,1,0,253,255,254,255,4,0,7,0,2,0,249,255,244,255,248,255,255,255,6,0, +7,0,4,0,1,0,3,0,5,0,5,0,3,0,255,255,251,255,253,255,2,0,6,0,5,0,255,255,255,255,7,0, +8,0,2,0,255,255,254,255,0,0,1,0,251,255,246,255,251,255,1,0,3,0,2,0,0,0,0,0,4,0,5,0, +1,0,252,255,249,255,251,255,255,255,2,0,4,0,2,0,2,0,6,0,4,0,251,255,246,255,245,255,246,255,246,255, +244,255,248,255,4,0,7,0,0,0,0,0,4,0,4,0,1,0,254,255,255,255,5,0,4,0,254,255,248,255,245,255, +250,255,2,0,2,0,255,255,255,255,1,0,5,0,4,0,254,255,252,255,0,0,3,0,3,0,1,0,1,0,5,0, +5,0,0,0,251,255,245,255,243,255,249,255,254,255,2,0,4,0,2,0,1,0,2,0,0,0,254,255,0,0,0,0, +254,255,254,255,254,255,1,0,6,0,8,0,4,0,254,255,252,255,255,255,2,0,2,0,254,255,250,255,252,255,2,0, +0,0,251,255,249,255,250,255,252,255,254,255,252,255,253,255,3,0,7,0,7,0,6,0,9,0,10,0,6,0,1,0, +255,255,253,255,251,255,253,255,252,255,250,255,254,255,4,0,8,0,8,0,2,0,253,255,253,255,252,255,252,255,2,0, +7,0,2,0,251,255,249,255,251,255,253,255,254,255,254,255,251,255,250,255,254,255,4,0,6,0,2,0,0,0,0,0, +2,0,2,0,255,255,255,255,2,0,5,0,7,0,6,0,2,0,255,255,1,0,255,255,250,255,251,255,254,255,254,255, +0,0,3,0,2,0,253,255,250,255,250,255,253,255,0,0,1,0,255,255,253,255,254,255,255,255,0,0,0,0,0,0, +0,0,1,0,2,0,6,0,11,0,12,0,10,0,9,0,5,0,2,0,252,255,242,255,242,255,255,255,9,0,7,0, +255,255,248,255,248,255,0,0,4,0,3,0,253,255,250,255,254,255,7,0,11,0,6,0,255,255,254,255,3,0,3,0, +1,0,3,0,4,0,2,0,255,255,253,255,255,255,5,0,8,0,3,0,255,255,255,255,2,0,3,0,255,255,253,255, +255,255,4,0,7,0,5,0,254,255,250,255,251,255,250,255,252,255,1,0,3,0,2,0,0,0,0,0,1,0,4,0, +5,0,3,0,255,255,0,0,4,0,7,0,6,0,2,0,252,255,252,255,0,0,254,255,252,255,253,255,254,255,252,255, +252,255,252,255,253,255,0,0,2,0,0,0,1,0,2,0,4,0,5,0,7,0,5,0,3,0,1,0,254,255,249,255, +246,255,247,255,249,255,247,255,246,255,251,255,1,0,1,0,1,0,255,255,253,255,250,255,248,255,248,255,1,0,9,0, +11,0,7,0,0,0,254,255,4,0,9,0,6,0,253,255,244,255,246,255,0,0,2,0,1,0,4,0,4,0,2,0, +255,255,250,255,248,255,252,255,0,0,3,0,5,0,5,0,7,0,8,0,1,0,253,255,254,255,0,0,255,255,252,255, +250,255,254,255,6,0,11,0,6,0,253,255,252,255,5,0,10,0,5,0,253,255,249,255,252,255,0,0,255,255,253,255, +1,0,5,0,5,0,2,0,0,0,253,255,252,255,251,255,253,255,3,0,4,0,254,255,251,255,2,0,6,0,1,0, +252,255,251,255,252,255,254,255,255,255,255,255,3,0,6,0,1,0,251,255,251,255,252,255,251,255,1,0,9,0,7,0, +1,0,255,255,0,0,1,0,255,255,247,255,245,255,254,255,1,0,251,255,252,255,2,0,6,0,5,0,255,255,250,255, +254,255,0,0,255,255,254,255,253,255,0,0,6,0,4,0,254,255,251,255,251,255,1,0,7,0,5,0,1,0,2,0, +1,0,0,0,2,0,1,0,255,255,253,255,252,255,253,255,0,0,4,0,5,0,0,0,250,255,252,255,0,0,1,0, +0,0,252,255,249,255,253,255,2,0,4,0,3,0,255,255,252,255,255,255,1,0,1,0,1,0,0,0,253,255,254,255, +0,0,0,0,1,0,6,0,11,0,7,0,253,255,250,255,255,255,8,0,12,0,6,0,255,255,0,0,2,0,254,255, +251,255,252,255,255,255,3,0,1,0,250,255,247,255,248,255,252,255,3,0,7,0,4,0,0,0,253,255,252,255,253,255, +255,255,0,0,255,255,0,0,6,0,13,0,12,0,3,0,253,255,253,255,253,255,253,255,253,255,252,255,252,255,255,255, +2,0,3,0,3,0,4,0,5,0,9,0,10,0,4,0,255,255,255,255,2,0,2,0,1,0,0,0,254,255,254,255, +254,255,254,255,0,0,3,0,3,0,3,0,2,0,0,0,253,255,253,255,255,255,254,255,254,255,4,0,6,0,0,0, +254,255,1,0,1,0,1,0,2,0,2,0,2,0,255,255,254,255,1,0,3,0,1,0,255,255,251,255,248,255,252,255, +255,255,254,255,255,255,1,0,2,0,4,0,1,0,254,255,2,0,9,0,9,0,5,0,4,0,2,0,253,255,250,255, +252,255,252,255,248,255,245,255,246,255,253,255,6,0,11,0,10,0,10,0,5,0,0,0,255,255,254,255,254,255,0,0, +252,255,249,255,254,255,5,0,7,0,4,0,253,255,250,255,252,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0, +1,0,1,0,0,0,1,0,3,0,4,0,2,0,255,255,0,0,3,0,255,255,250,255,250,255,252,255,255,255,255,255, +253,255,252,255,0,0,2,0,2,0,0,0,252,255,250,255,250,255,250,255,250,255,249,255,250,255,255,255,1,0,0,0, +0,0,1,0,2,0,1,0,254,255,254,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,252,255,250,255,252,255, +255,255,2,0,2,0,2,0,1,0,0,0,0,0,254,255,248,255,246,255,251,255,5,0,13,0,10,0,253,255,248,255, +253,255,2,0,2,0,255,255,254,255,0,0,1,0,1,0,254,255,254,255,0,0,3,0,5,0,6,0,1,0,249,255, +250,255,1,0,6,0,8,0,4,0,254,255,253,255,253,255,252,255,253,255,255,255,254,255,254,255,1,0,4,0,5,0, +0,0,250,255,252,255,0,0,0,0,253,255,252,255,254,255,3,0,4,0,0,0,0,0,4,0,5,0,3,0,1,0, +2,0,1,0,254,255,254,255,2,0,8,0,11,0,8,0,2,0,254,255,253,255,253,255,3,0,6,0,0,0,249,255, +250,255,255,255,2,0,4,0,1,0,254,255,254,255,0,0,0,0,2,0,3,0,3,0,5,0,7,0,3,0,254,255, +254,255,5,0,6,0,1,0,254,255,255,255,1,0,3,0,5,0,3,0,1,0,2,0,1,0,2,0,0,0,248,255, +246,255,253,255,3,0,8,0,7,0,1,0,254,255,254,255,254,255,0,0,2,0,3,0,3,0,5,0,7,0,9,0, +6,0,2,0,2,0,1,0,254,255,253,255,1,0,6,0,7,0,1,0,253,255,0,0,1,0,255,255,254,255,253,255, +254,255,0,0,1,0,0,0,3,0,5,0,1,0,253,255,253,255,253,255,250,255,249,255,252,255,253,255,254,255,255,255, +1,0,4,0,5,0,2,0,1,0,3,0,4,0,3,0,254,255,247,255,245,255,252,255,4,0,6,0,4,0,0,0, +254,255,253,255,255,255,3,0,5,0,255,255,249,255,249,255,252,255,0,0,2,0,1,0,1,0,2,0,255,255,251,255, +254,255,1,0,0,0,1,0,255,255,249,255,248,255,254,255,1,0,1,0,255,255,0,0,3,0,2,0,252,255,250,255, +249,255,249,255,252,255,255,255,253,255,251,255,251,255,253,255,0,0,2,0,1,0,252,255,250,255,253,255,1,0,3,0, +2,0,0,0,255,255,1,0,2,0,1,0,255,255,250,255,249,255,253,255,2,0,7,0,6,0,254,255,249,255,251,255, +254,255,254,255,252,255,252,255,2,0,6,0,2,0,1,0,1,0,255,255,255,255,0,0,1,0,6,0,6,0,254,255, +253,255,0,0,1,0,4,0,7,0,7,0,3,0,251,255,246,255,249,255,255,255,2,0,1,0,254,255,255,255,1,0, +4,0,7,0,7,0,3,0,1,0,3,0,5,0,5,0,3,0,3,0,10,0,13,0,6,0,253,255,253,255,0,0, +2,0,2,0,0,0,251,255,247,255,250,255,253,255,249,255,248,255,252,255,253,255,252,255,251,255,252,255,3,0,10,0, +6,0,253,255,255,255,6,0,8,0,4,0,255,255,254,255,3,0,8,0,7,0,3,0,1,0,253,255,252,255,1,0, +4,0,0,0,251,255,252,255,255,255,255,255,253,255,253,255,254,255,255,255,253,255,252,255,251,255,250,255,250,255,255,255, +4,0,4,0,0,0,252,255,250,255,254,255,7,0,10,0,5,0,2,0,3,0,7,0,9,0,6,0,0,0,252,255, +248,255,246,255,246,255,247,255,247,255,252,255,6,0,9,0,3,0,252,255,250,255,252,255,254,255,253,255,250,255,248,255, +251,255,1,0,8,0,12,0,10,0,4,0,254,255,253,255,254,255,1,0,6,0,7,0,2,0,254,255,254,255,255,255, +1,0,5,0,5,0,0,0,250,255,247,255,250,255,0,0,1,0,255,255,0,0,5,0,5,0,1,0,255,255,253,255, +251,255,252,255,254,255,0,0,4,0,7,0,6,0,7,0,10,0,10,0,6,0,254,255,248,255,252,255,1,0,2,0, +3,0,3,0,0,0,253,255,2,0,10,0,10,0,2,0,253,255,251,255,248,255,251,255,4,0,7,0,3,0,254,255, +250,255,254,255,3,0,2,0,2,0,6,0,6,0,3,0,1,0,1,0,3,0,1,0,251,255,244,255,243,255,247,255, +1,0,4,0,255,255,250,255,253,255,3,0,5,0,4,0,3,0,3,0,3,0,3,0,1,0,253,255,250,255,251,255, +2,0,10,0,11,0,5,0,1,0,2,0,4,0,4,0,252,255,248,255,251,255,251,255,251,255,0,0,6,0,7,0, +3,0,249,255,244,255,248,255,254,255,2,0,3,0,255,255,254,255,4,0,12,0,12,0,2,0,245,255,243,255,248,255, +249,255,253,255,4,0,4,0,1,0,1,0,4,0,7,0,6,0,254,255,248,255,249,255,252,255,253,255,255,255,1,0, +1,0,0,0,2,0,3,0,1,0,254,255,254,255,253,255,249,255,246,255,248,255,253,255,1,0,3,0,3,0,4,0, +4,0,0,0,255,255,0,0,252,255,244,255,242,255,247,255,254,255,2,0,255,255,254,255,4,0,7,0,1,0,254,255, +254,255,251,255,251,255,255,255,3,0,6,0,6,0,1,0,255,255,3,0,4,0,2,0,255,255,255,255,1,0,2,0, +1,0,1,0,1,0,255,255,251,255,250,255,252,255,1,0,3,0,2,0,3,0,2,0,1,0,4,0,8,0,5,0, +255,255,249,255,249,255,0,0,8,0,9,0,6,0,3,0,0,0,254,255,1,0,3,0,0,0,253,255,250,255,251,255, +255,255,3,0,5,0,5,0,4,0,1,0,253,255,251,255,255,255,5,0,6,0,0,0,254,255,1,0,3,0,0,0, +253,255,250,255,252,255,255,255,2,0,1,0,254,255,252,255,254,255,254,255,0,0,2,0,255,255,250,255,249,255,252,255, +255,255,1,0,253,255,250,255,253,255,2,0,4,0,4,0,1,0,255,255,255,255,255,255,254,255,252,255,253,255,0,0, +3,0,2,0,0,0,0,0,2,0,5,0,5,0,1,0,252,255,251,255,0,0,7,0,6,0,1,0,255,255,2,0, +4,0,3,0,0,0,255,255,2,0,1,0,253,255,0,0,6,0,6,0,1,0,0,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,0,0,0,0,1,0,2,0,4,0,5,0,2,0,255,255,254,255,253,255,250,255,249,255,250,255, +252,255,255,255,1,0,3,0,2,0,254,255,253,255,1,0,6,0,6,0,0,0,253,255,1,0,6,0,3,0,0,0, +255,255,254,255,252,255,253,255,0,0,1,0,255,255,254,255,253,255,254,255,0,0,1,0,1,0,1,0,255,255,255,255, +0,0,1,0,255,255,254,255,0,0,1,0,3,0,5,0,2,0,0,0,2,0,3,0,0,0,254,255,0,0,2,0, +1,0,254,255,252,255,255,255,6,0,8,0,3,0,255,255,252,255,253,255,1,0,3,0,2,0,0,0,251,255,249,255, +252,255,1,0,4,0,5,0,5,0,3,0,1,0,254,255,253,255,254,255,254,255,255,255,255,255,253,255,255,255,2,0, +0,0,252,255,250,255,250,255,255,255,2,0,255,255,251,255,253,255,2,0,5,0,4,0,255,255,252,255,253,255,255,255, +0,0,2,0,2,0,1,0,255,255,254,255,254,255,253,255,254,255,0,0,254,255,251,255,252,255,255,255,1,0,2,0, +1,0,255,255,254,255,255,255,0,0,0,0,255,255,1,0,4,0,3,0,255,255,252,255,255,255,3,0,3,0,2,0, +2,0,255,255,255,255,2,0,1,0,254,255,250,255,250,255,254,255,4,0,3,0,0,0,254,255,254,255,0,0,2,0, +255,255,250,255,251,255,0,0,4,0,3,0,3,0,4,0,1,0,253,255,255,255,3,0,2,0,255,255,252,255,252,255, +2,0,6,0,3,0,254,255,254,255,254,255,254,255,255,255,1,0,1,0,2,0,3,0,0,0,254,255,254,255,0,0, +255,255,254,255,0,0,3,0,4,0,2,0,2,0,6,0,7,0,1,0,252,255,254,255,4,0,5,0,1,0,253,255, +252,255,254,255,2,0,3,0,0,0,254,255,253,255,255,255,1,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,2,0,2,0,1,0,2,0,1,0,255,255,254,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,254,255,0,0,3,0,2,0,0,0,254,255,252,255,253,255,1,0,3,0, +1,0,0,0,0,0,3,0,5,0,3,0,1,0,0,0,254,255,0,0,2,0,2,0,2,0,0,0,254,255,0,0, +2,0,2,0,255,255,253,255,252,255,254,255,1,0,0,0,1,0,4,0,4,0,0,0,253,255,253,255,255,255,2,0, +2,0,254,255,251,255,254,255,1,0,2,0,4,0,3,0,0,0,0,0,2,0,3,0,3,0,0,0,254,255,0,0, +2,0,255,255,250,255,249,255,253,255,1,0,255,255,255,255,255,255,254,255,254,255,1,0,3,0,2,0,0,0,254,255, +1,0,2,0,0,0,254,255,254,255,255,255,1,0,255,255,252,255,255,255,4,0,3,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,254,255,255,255,1,0,2,0,1,0,255,255,253,255,254,255,1,0,2,0,0,0, +254,255,0,0,2,0,1,0,253,255,252,255,255,255,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0, +255,255,254,255,254,255,0,0,1,0,2,0,1,0,255,255,253,255,254,255,255,255,255,255,1,0,2,0,0,0,255,255, +1,0,2,0,3,0,1,0,254,255,254,255,1,0,2,0,1,0,1,0,254,255,253,255,0,0,2,0,1,0,0,0, +255,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,254,255, +0,0,2,0,0,0,254,255,254,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0, +255,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,3,0,3,0,0,0,255,255, +1,0,3,0,5,0,3,0,254,255,253,255,0,0,2,0,1,0,0,0,254,255,254,255,0,0,1,0,2,0,1,0, +0,0,255,255,253,255,255,255,3,0,3,0,1,0,2,0,0,0,254,255,0,0,2,0,0,0,0,0,0,0,254,255, +255,255,1,0,3,0,3,0,2,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,254,255,255,255,1,0,2,0,2,0,255,255,255,255,1,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,253,255,254,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,2,0,3,0,2,0,2,0,1,0,255,255,255,255,0,0,254,255,253,255,254,255,0,0,2,0, +3,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255, +1,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,2,0,1,0,255,255,254,255,253,255,253,255,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,0,0,254,255,255,255,0,0,255,255,1,0,1,0,254,255,254,255,0,0,1,0, +1,0,255,255,253,255,255,255,0,0,0,0,0,0,254,255,253,255,255,255,0,0,255,255,255,255,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,2,0,3,0,1,0,254,255,253,255,254,255,0,0,1,0,0,0,0,0,2,0,3,0, +255,255,254,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,253,255,254,255,0,0,2,0,2,0,0,0,254,255,255,255,2,0,2,0,0,0,254,255, +254,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,0,0,2,0,1,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0, +2,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,1,0,2,0,1,0,255,255,255,255,0,0,2,0,2,0, +0,0,254,255,255,255,1,0,2,0,1,0,0,0,254,255,255,255,1,0,2,0,2,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,255,255,254,255,0,0,0,0,255,255,0,0,1,0,1,0,2,0,255,255,254,255,0,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +1,0,1,0,1,0,1,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,254,255,255,255,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +0,0,254,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,2,0,1,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,2,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,1,0,1,0,255,255, +255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +254,255,255,255,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/door_close.pcm b/src/client/sound/data/door_close.pcm new file mode 100755 index 0000000..ec7dcbc --- /dev/null +++ b/src/client/sound/data/door_close.pcm @@ -0,0 +1,2875 @@ +unsigned char PCM_door_close[34470] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x4b,0x43,0x0,0x0,0xa1,0x0,0xf,0x0,0x5a,0x0,0x1d,0x1, +0xd3,0x0,0x5,0x0,0xc2,0xff,0x7b,0xff,0x7b,0xff,0xd1,0xff, +0x70,0xff,0x11,0xff,0xb7,0xff,0x7b,0x0,0xae,0x0,0xfe,0x0, +0x77,0x1,0x66,0x1,0x96,0x1,0xd6,0x1,0xee,0xff,0xf3,0xfc, +0x7a,0xfb,0xe9,0xfa,0x36,0xfa,0xfd,0xf8,0x33,0xf8,0xf2,0xfa, +0x9e,0x0,0xdb,0x4,0xa5,0x7,0xe5,0xa,0x87,0xb,0x19,0x7, +0x70,0x1,0x7b,0xfe,0x6d,0xfc,0x7e,0xf8,0xe3,0xf5,0x25,0xf6, +0x86,0xf3,0x3b,0xf0,0xf4,0xf1,0xeb,0xf1,0x88,0xef,0x14,0xf3, +0x54,0xf9,0x3f,0xff,0x1b,0x8,0x2f,0x12,0xec,0x19,0xd3,0x1b, +0x31,0x19,0x97,0x16,0x95,0x11,0x73,0xa,0xe2,0x1,0x79,0xf2, +0xc5,0xe2,0x4a,0xdb,0x84,0xd6,0x57,0xd6,0x84,0xe4,0xbb,0xfa, +0x4,0xb,0x6f,0x16,0x8a,0x21,0x6,0x28,0x76,0x2b,0x89,0x2c, +0xb1,0x27,0xd4,0x20,0x7f,0x10,0xfb,0xf3,0x62,0xe0,0x9a,0xd6, +0xe6,0xcd,0x3e,0xcd,0x55,0xd0,0x97,0xd7,0x2b,0xe8,0x1b,0xf9, +0xa5,0xb,0x3b,0x1b,0xd6,0x1f,0x82,0x26,0xe7,0x2b,0xab,0x2c, +0x99,0x35,0x33,0x37,0xb6,0x2a,0x9a,0x1e,0xd7,0x8,0x11,0xe9, +0x31,0xd0,0x82,0xc2,0x70,0xc1,0x48,0xc2,0x92,0xc1,0xba,0xd6, +0x66,0xff,0x3d,0x20,0x2,0x33,0xad,0x3b,0xec,0x38,0x1f,0x29, +0x22,0x13,0x6c,0x4,0xde,0xf5,0x68,0xdb,0x33,0xcb,0x3b,0xd5, +0x4c,0xe4,0x9a,0xf1,0xe5,0x9,0xf9,0x23,0x47,0x2e,0x9,0x28, +0x63,0x1f,0x69,0x1c,0xa8,0x13,0x28,0x8,0x3a,0x2,0xf0,0xef, +0xa8,0xdd,0xb7,0xe7,0x21,0xf8,0x37,0x3,0xd9,0x14,0x22,0x1d, +0x5e,0x14,0x44,0x4,0xe4,0xf6,0x8d,0xf7,0x64,0xfd,0x35,0x2, +0x4d,0x5,0x27,0xf9,0x12,0xe7,0x4a,0xd7,0xe5,0xc6,0x83,0xca, +0xc4,0xdc,0x10,0xea,0x43,0xfa,0xa5,0x1,0x8c,0xf6,0x5a,0xe4, +0x5e,0xcb,0xad,0xbc,0xf7,0xca,0xc3,0xe9,0x62,0x6,0x4d,0x1b, +0x8a,0x34,0x41,0x47,0xd6,0x42,0xa8,0x46,0x30,0x48,0xf9,0x1d, +0x16,0xef,0x92,0xd9,0xb4,0xc6,0xa7,0xb6,0x85,0xb3,0x98,0xc9, +0xc6,0xf3,0x41,0x16,0x2f,0x35,0xc5,0x4c,0xe2,0x4a,0xa5,0x40, +0x74,0x30,0x25,0xf,0x6f,0xe5,0xeb,0xc0,0x1a,0xba,0x7,0xce, +0xff,0xdf,0x5f,0xe8,0xb3,0xdb,0xfc,0xc2,0xa6,0xbd,0xee,0xcf, +0x11,0xfa,0xff,0x1d,0x52,0x1d,0x5b,0x1d,0xf6,0x21,0xb9,0x21, +0x69,0x38,0xba,0x3f,0x6e,0x31,0x5e,0x42,0x97,0x49,0x4a,0x26, +0x61,0xf4,0x65,0xc6,0x9d,0xb6,0xe4,0xa6,0xf5,0x9d,0x88,0xe5, +0xc2,0x23,0x42,0x1e,0xc5,0x3c,0xab,0x53,0xe5,0x35,0x9,0x3f, +0x16,0x55,0x74,0x40,0xf8,0xc,0xda,0xcd,0xd2,0xb9,0xa0,0xb3, +0x97,0xa6,0x8e,0xde,0x18,0x15,0xba,0x18,0x79,0x3c,0xc0,0x53, +0xe8,0x54,0x93,0x67,0xb1,0x4b,0x20,0x41,0x28,0x5e,0xed,0x25, +0x39,0xeb,0xa3,0xf0,0xb,0xdc,0x28,0xdc,0xbe,0x2,0x84,0x14, +0xb0,0x2c,0xb8,0x40,0x7b,0x47,0xed,0x48,0x97,0x29,0x4e,0x23, +0xbc,0x3a,0xd2,0x28,0xd3,0x13,0xf4,0xfb,0x75,0xcd,0x6e,0xbd, +0x50,0xb3,0xf5,0xb5,0xea,0xe5,0xb9,0xf9,0xbf,0x1,0x6f,0x1d, +0xd9,0x11,0xe4,0x12,0xbc,0x37,0x16,0x2f,0xbd,0xff,0x67,0xd0, +0xf4,0xd2,0x13,0x14,0xe4,0x2e,0xd8,0x22,0x28,0x2b,0x74,0x32, +0xac,0x4b,0xd,0x4c,0xb1,0x1,0xbb,0xe0,0xbe,0xe7,0x76,0xb9, +0x3c,0x95,0x9d,0x8c,0x15,0x86,0x1f,0xb2,0xf2,0xed,0x58,0x6, +0x5d,0xf,0xc9,0xe,0xf8,0x15,0xbb,0x2f,0xc,0x46,0x4,0x44, +0x98,0x1c,0x82,0xfd,0xe1,0x1,0x3,0xf5,0xa6,0xda,0xda,0xc7, +0xa4,0xb7,0x81,0xd1,0x57,0xf2,0x11,0xe4,0x7b,0xe4,0x9f,0xf2, +0xf7,0xe4,0x74,0xe0,0x9f,0xd0,0x3,0xb2,0x3b,0xcf,0x68,0x2, +0xff,0xa,0x5a,0xf,0xdd,0x27,0xe,0x45,0xf2,0x3f,0x99,0x9, +0x32,0xf7,0x58,0x24,0x3b,0x35,0x3a,0x14,0xf,0xf8,0xae,0x2, +0x6,0x25,0x59,0x24,0x42,0x6,0xc0,0x2,0x14,0x10,0x66,0x1b, +0x55,0x21,0x81,0x13,0xc8,0x1,0xba,0xee,0xd,0xd7,0x1c,0xe0, +0x8a,0xf9,0xa1,0xef,0xfd,0xda,0xac,0xe0,0xbc,0xe9,0xf1,0xe4, +0xd5,0xe7,0x60,0xf1,0xfb,0xf9,0x8e,0x13,0xd2,0x1f,0xe9,0xa, +0xea,0x3,0x57,0xfb,0x8f,0xe2,0xe9,0xee,0xc9,0x2,0x57,0xf3, +0xc0,0xe7,0x18,0xeb,0xc7,0xec,0x29,0xec,0x6c,0xfd,0x3a,0x21, +0x4f,0x15,0x80,0xe6,0x8b,0xe5,0xe4,0xee,0xc,0xde,0xfa,0xcc, +0x75,0xb9,0x41,0xbc,0xbe,0xdc,0x4e,0xf1,0xaa,0xf2,0xd9,0xda, +0x62,0xbf,0xb5,0xcc,0xd1,0xe1,0x7,0xe2,0xaa,0xdb,0x41,0xd3, +0xa4,0xde,0xd6,0xf6,0x1f,0x4,0x2b,0x14,0xcf,0x19,0x68,0x11, +0x82,0xf,0xab,0xfc,0x99,0xe3,0xae,0xe4,0x6c,0xe3,0xec,0xd7, +0x36,0xd2,0xdb,0xcd,0x58,0xd5,0x4a,0xdb,0x44,0xca,0x8a,0xc5, +0xc,0xd9,0x5,0xe3,0x22,0xe5,0x8c,0xeb,0x14,0xeb,0x82,0xe3, +0x34,0xe1,0x5b,0xe8,0xe6,0xe7,0x8e,0xd4,0xd6,0xcf,0x8e,0xe9, +0xe,0xfc,0x19,0xfe,0x90,0x0,0x53,0x3,0x2d,0x12,0x41,0x29, +0xf3,0x2d,0x31,0x27,0x36,0x1e,0x23,0xb,0x90,0xf4,0x1e,0xdf, +0xde,0xd3,0xcf,0xe0,0x65,0xfb,0x94,0x17,0x77,0x2e,0x1e,0x38, +0x46,0x41,0x1d,0x4f,0x42,0x4c,0x8f,0x32,0xfa,0x1b,0xbe,0x1c, +0xd9,0x1d,0x92,0x9,0x7d,0xf9,0x52,0xff,0xef,0xd,0x57,0x1a, +0xa5,0x1c,0xb5,0x1b,0x76,0x21,0x9b,0x20,0x4f,0x18,0x45,0x14, +0xdf,0xd,0x6b,0x7,0x49,0xb,0xa9,0x10,0x94,0xf,0x56,0x9, +0x3f,0xfd,0xa6,0xee,0xa2,0xe0,0x8a,0xd6,0x16,0xd9,0x1b,0xe1, +0xcc,0xe5,0xb5,0xf4,0x6b,0x7,0xc6,0xd,0x7,0x19,0x94,0x27, +0xe,0x25,0x99,0x1a,0x87,0x9,0x23,0xf5,0x45,0xf2,0x23,0xf3, +0xb0,0xeb,0xc3,0xea,0xfb,0xec,0x98,0xef,0x83,0xf0,0x54,0xe8, +0x13,0xe5,0x4c,0xe5,0x2b,0xdf,0x40,0xe2,0x32,0xed,0xe6,0xf7, +0xfb,0x1,0xdf,0xfd,0xc0,0xf5,0x4a,0xfa,0xb9,0x0,0xd5,0x7, +0xd2,0xb,0xb6,0x4,0x56,0x0,0x7f,0xfc,0x45,0xed,0x12,0xdd, +0x29,0xd4,0xda,0xcf,0x5e,0xc6,0x7d,0xb5,0xbd,0xac,0x50,0xab, +0x1d,0xaa,0x24,0xb5,0x8f,0xcf,0x26,0xee,0xf5,0xfc,0x31,0xf2, +0xb1,0xe7,0x7b,0xe6,0x6b,0xde,0x6a,0xdb,0x88,0xdf,0xf3,0xdc, +0xce,0xe2,0xdb,0xf5,0xc0,0xd,0xae,0x2f,0xaf,0x4b,0x9f,0x54, +0x50,0x5a,0x8b,0x5a,0xb8,0x49,0x58,0x30,0x50,0x1a,0xc0,0xd, +0x3d,0x7,0x4f,0x4,0x3a,0x7,0xe7,0x4,0xa3,0x0,0x67,0xb, +0x3a,0x11,0x33,0x1,0xa5,0xf2,0xdb,0xec,0x48,0xe4,0xa2,0xde, +0xc7,0xdf,0x10,0xe0,0x65,0xde,0xc9,0xdc,0x2b,0xd8,0x66,0xd6, +0x46,0xe1,0xf0,0xeb,0xd6,0xec,0xb9,0xf3,0xdc,0xfd,0x99,0xfc, +0xbc,0xf9,0x3c,0xf9,0x3b,0xf5,0x20,0xf8,0xdd,0x3,0xf4,0x5, +0x4,0xf8,0xb3,0xec,0xa4,0xee,0xa9,0xf0,0xd0,0xf3,0x1d,0x1, +0xcd,0x8,0x7c,0x8,0xfd,0xc,0xc7,0xd,0x7f,0xe,0x54,0x1c, +0x1a,0x27,0x5d,0x22,0xf9,0x17,0x3,0x15,0xba,0x21,0x4c,0x31, +0x9a,0x34,0xef,0x33,0x7e,0x33,0x2e,0x2d,0x7c,0x22,0x20,0x17, +0xb3,0xe,0xcc,0xa,0xe1,0xb,0x2b,0x12,0x8a,0x14,0x75,0x10, +0x98,0x10,0xc2,0x16,0xe9,0x1c,0x7e,0x17,0x2b,0x0,0x36,0xeb, +0xde,0xe7,0xa7,0xec,0xcb,0xf1,0x7e,0xf3,0xc4,0xf2,0xbe,0xf3, +0x5a,0xf7,0x87,0x7,0x33,0x1f,0x3c,0x29,0x71,0x2b,0x7f,0x2c, +0x91,0x27,0x4b,0x27,0x9b,0x27,0x1a,0x1d,0x66,0x13,0x7d,0x11, +0xaa,0x17,0x83,0x22,0xb3,0x26,0x17,0x28,0x8c,0x29,0x75,0x26, +0x80,0x28,0xce,0x2f,0xac,0x30,0x1,0x29,0xcd,0x1c,0xdc,0x15, +0xcb,0x10,0x4,0x1,0xc3,0xf2,0x9d,0xf1,0x6a,0xf3,0xa2,0xf0, +0xa7,0xeb,0x61,0xed,0x7c,0xf6,0x49,0xfb,0x33,0xf9,0x8,0xf7, +0xef,0xfa,0x19,0xff,0x62,0xf6,0xbc,0xe7,0x9,0xdc,0x33,0xd2, +0x47,0xd4,0x39,0xdd,0xe5,0xdb,0x29,0xda,0xc9,0xe7,0xe1,0x2, +0x95,0x1b,0xa0,0x25,0x0,0x28,0x54,0x22,0xb3,0x11,0xee,0x6, +0x61,0x5,0x4c,0x4,0xe8,0x5,0x29,0xb,0xf5,0x14,0x96,0x20, +0x3a,0x29,0xa7,0x32,0x9c,0x39,0x9e,0x3a,0xc4,0x36,0x11,0x28, +0xe5,0x14,0xe5,0x6,0x5c,0xfb,0xef,0xf3,0xb9,0xed,0x22,0xe4, +0x53,0xd9,0xa3,0xcb,0xa8,0xc3,0xf1,0xc5,0x90,0xc7,0x48,0xcf, +0xf6,0xe0,0x3a,0xea,0x8e,0xe4,0x9a,0xdb,0x57,0xe0,0xa9,0xf1, +0x63,0xfa,0xb3,0xfb,0x3a,0x3,0x9,0xc,0x9b,0xf,0x12,0xf, +0x1b,0x11,0xe9,0x19,0x56,0x24,0x19,0x2f,0xed,0x35,0x85,0x31, +0x2f,0x2a,0x81,0x28,0x70,0x28,0x6c,0x23,0xfe,0x1a,0x7b,0x16, +0xad,0xf,0x96,0x4,0xc4,0x4,0xdc,0xa,0xf5,0x6,0x1,0xfe, +0x76,0xf9,0x96,0xfe,0xcc,0x7,0xdf,0xa,0x69,0xd,0x75,0x11, +0xba,0x12,0xc5,0x14,0xe8,0x15,0xa0,0x18,0x39,0x20,0x90,0x21, +0x4f,0x1f,0x78,0x24,0x86,0x28,0x8d,0x22,0x2a,0x15,0xd6,0x8, +0xad,0x4,0x7d,0x3,0x64,0x0,0x2e,0xfd,0x2f,0xf8,0xc,0xf3, +0xa,0xf1,0xa,0xf1,0x34,0xf7,0x0,0x4,0xc7,0x9,0x3e,0x3, +0x2b,0xfe,0xdd,0x1,0xc9,0x4,0xbe,0x2,0x1d,0x3,0x34,0x6, +0x77,0x6,0x10,0x7,0xb,0xa,0xcc,0x9,0xd6,0x7,0x70,0x9, +0x70,0xe,0xd5,0x13,0x2a,0xf,0x69,0xff,0x7c,0xf8,0xcd,0xff, +0x6e,0x8,0x3,0xe,0x57,0x11,0xff,0x15,0xd5,0x1b,0x7b,0x1a, +0x58,0x14,0xf0,0xe,0x24,0xb,0x81,0xd,0x25,0xf,0xdb,0x9, +0x66,0x6,0x2b,0x4,0x17,0x1,0xe8,0x3,0xd1,0xa,0x56,0xe, +0x85,0x5,0xdd,0xf1,0xc0,0xe6,0x37,0xe7,0x43,0xe4,0x79,0xdf, +0x9a,0xe2,0xe,0xea,0x77,0xee,0x5f,0xf2,0xb6,0xf8,0xa0,0xfd, +0xff,0x2,0xab,0xa,0x5a,0xd,0xf9,0x9,0xf4,0x6,0xc4,0x4, +0xb7,0xfe,0x54,0xf6,0xa,0xf1,0xd1,0xec,0xc,0xee,0xd1,0xf9, +0x7e,0xff,0xe1,0xfb,0xfd,0xfd,0xe6,0xfe,0xaa,0xfa,0x9d,0xfa, +0x13,0xf8,0x72,0xee,0xe7,0xe6,0xd7,0xe5,0xb7,0xe5,0x7b,0xe5, +0xad,0xee,0x87,0xfa,0xe8,0xfd,0x9f,0x2,0x42,0x4,0xf5,0xfb, +0xec,0xf7,0xb9,0xf5,0xc5,0xf0,0x7e,0xee,0x17,0xe8,0x1d,0xe2, +0x1c,0xe4,0xee,0xe8,0x44,0xf0,0xc5,0xf4,0xa0,0xfa,0x87,0x9, +0xb7,0xf,0xfa,0xd,0x88,0xf,0xe6,0x5,0x2b,0xf6,0x3f,0xf0, +0xeb,0xef,0xe3,0xf1,0xe9,0xf2,0x1,0xf5,0x5c,0xf8,0xe,0xf0, +0x6d,0xe3,0x4a,0xdf,0x1c,0xe0,0x58,0xe7,0x5c,0xf0,0xb2,0xf7, +0x8d,0x1,0x8,0x3,0x84,0xfd,0x68,0xfe,0xde,0xff,0x88,0xfe, +0xa7,0xfc,0xb1,0xf9,0xfb,0xf7,0x0,0xf4,0x90,0xf1,0x9,0xf8, +0x8f,0x0,0x23,0x9,0x44,0xf,0x69,0xc,0xa8,0x7,0xc7,0x3, +0x0,0x0,0x9b,0x0,0xf1,0x0,0x4c,0x3,0xaf,0x9,0xf8,0x3, +0xd2,0xf2,0x15,0xe6,0x96,0xdd,0x9e,0xd6,0x77,0xd3,0x7b,0xd4, +0x31,0xda,0xb1,0xe0,0xb8,0xe2,0x7e,0xe1,0x91,0xe0,0x20,0xe1, +0x1c,0xe0,0xb8,0xdb,0x45,0xda,0x68,0xde,0x51,0xdf,0x34,0xdb, +0x9,0xdc,0x2a,0xe1,0xac,0xe0,0xc7,0xdd,0x81,0xe1,0x4d,0xe7, +0x58,0xe8,0xd5,0xe8,0x54,0xea,0xc9,0xea,0x79,0xee,0x65,0xf1, +0x28,0xee,0x20,0xef,0x32,0xf2,0xc6,0xee,0xca,0xf4,0x7a,0x4, +0x34,0x5,0x96,0xfd,0x2e,0x5,0x77,0x14,0x9c,0x18,0x14,0x18, +0x51,0x20,0xc8,0x26,0xdf,0x24,0xa0,0x29,0xea,0x30,0x36,0x29, +0x64,0x18,0xc6,0x9,0x99,0xfd,0xc3,0xf3,0xe,0xee,0xce,0xed, +0xaf,0xf0,0x17,0xf5,0x5c,0xfd,0x4f,0x7,0x38,0x12,0x51,0x20, +0x45,0x29,0xea,0x25,0xf5,0x1b,0x4f,0x11,0xc5,0xb,0x1c,0x11, +0x9f,0x18,0x8f,0x16,0x26,0x11,0xeb,0x12,0x9f,0x1b,0xbf,0x26, +0xc7,0x2f,0x15,0x34,0x98,0x31,0x47,0x28,0x93,0x23,0xfd,0x29, +0xe0,0x2c,0x0,0x24,0x2,0x1d,0xcc,0x21,0xff,0x26,0x1a,0x1f, +0x6f,0x11,0x9d,0x8,0x93,0x3,0xbf,0x4,0x2,0xb,0x5e,0xc, +0xd1,0x5,0x42,0xfa,0x8,0xf2,0xa8,0xf1,0xaa,0xf0,0x86,0xf2, +0x74,0xfd,0x6f,0x4,0x86,0x5,0x51,0x8,0xa8,0x5,0x17,0xfc, +0x31,0xf5,0x4f,0xf4,0xb5,0xf5,0x17,0xf3,0x7c,0xeb,0x3e,0xe5, +0x8b,0xe6,0xfa,0xef,0xa,0xfc,0x85,0x5,0x6d,0x8,0x8b,0x4, +0x5f,0x2,0x88,0x4,0xf8,0x6,0x4a,0xb,0x8d,0xd,0xd1,0x9, +0x50,0x9,0x3f,0xd,0xe4,0xa,0x49,0x2,0x1c,0xfb,0xc0,0xf5, +0xe8,0xf2,0x84,0xf7,0xd9,0xfc,0xfb,0xf9,0x2d,0xf8,0x94,0xfe, +0x80,0x3,0x86,0xff,0x54,0xf7,0x75,0xf2,0x60,0xee,0xb6,0xe6, +0xc1,0xe1,0x7b,0xe0,0x2d,0xdf,0xf3,0xe2,0x66,0xed,0x90,0xfa, +0x89,0x5,0xd6,0x8,0x92,0x9,0x87,0xe,0x73,0x14,0x23,0x17, +0xbc,0x15,0x93,0x14,0x86,0x15,0xa2,0x14,0xaf,0x14,0x63,0x13, +0x8b,0x9,0x1c,0x0,0x8,0xfd,0x0,0xfb,0xc0,0xfc,0x24,0x2, +0x37,0x2,0x57,0xfa,0x4,0xf0,0xd6,0xe8,0x75,0xe6,0x38,0xe9, +0xb3,0xec,0x34,0xea,0x8d,0xe5,0xb4,0xe4,0x94,0xe8,0x60,0xf0, +0x6,0xf7,0x40,0xfe,0x48,0x7,0x56,0x8,0x1d,0x7,0x4e,0xc, +0xcd,0xd,0x66,0xc,0xe0,0xe,0x24,0xe,0xc0,0x7,0xdf,0x0, +0xc2,0xff,0xef,0x5,0x45,0x9,0x3a,0x5,0x6b,0x1,0x78,0x2, +0x44,0x6,0x13,0xc,0x54,0x17,0xbe,0x20,0xf9,0x1c,0x5b,0x13, +0x87,0xb,0xb4,0x4,0xac,0x2,0x75,0x3,0x5e,0x6,0xc9,0xd, +0x6c,0xe,0x52,0x5,0x76,0xfd,0xe8,0xf7,0xcf,0xf2,0xd9,0xef, +0x6d,0xee,0x7f,0xea,0x69,0xe0,0xea,0xd8,0x15,0xdd,0x5f,0xe8, +0x75,0xf6,0xba,0x2,0xcf,0x8,0xf7,0xd,0xd5,0x14,0xb3,0x1a, +0x38,0x1e,0xa1,0x1d,0x27,0x1b,0x41,0x1a,0x19,0x19,0xce,0x13, +0x9,0xa,0x9a,0x1,0x9f,0xfe,0xa0,0x0,0x2d,0x4,0x8a,0x3, +0x79,0x5,0xe0,0xe,0x82,0xf,0x79,0x5,0x57,0xfe,0xeb,0xf7, +0xd6,0xf0,0xe0,0xeb,0x5d,0xe6,0xb1,0xe1,0xce,0xdc,0xf4,0xd8, +0xcb,0xda,0xff,0xdd,0xea,0xe6,0x3a,0xfa,0x40,0x8,0xfb,0x8, +0xcf,0x2,0x91,0xfa,0x11,0xf5,0x33,0xf0,0xb0,0xe8,0xe2,0xe6, +0xb1,0xf0,0x28,0xfc,0x15,0xfe,0x8,0xfd,0x13,0xfb,0xc9,0xee, +0x14,0xeb,0xa2,0xfe,0x57,0xb,0x70,0x3,0x1f,0xf7,0xc1,0xeb, +0xa6,0xe6,0xd3,0xe8,0xee,0xe8,0x76,0xe7,0x4e,0xe6,0xbb,0xe6, +0x21,0xee,0x92,0xfa,0xdc,0x6,0x9b,0xb,0x25,0x6,0x42,0x2, +0xe1,0x3,0x53,0x4,0xdf,0x0,0x73,0xf9,0x88,0xf8,0x17,0x3, +0x29,0x8,0xab,0x0,0x6c,0xf7,0x69,0xf4,0x98,0xf9,0xa5,0xff, +0xa,0xfd,0xed,0xf4,0x44,0xf4,0xa8,0xff,0xd1,0x8,0x5f,0x7, +0x7d,0x2,0x63,0xfa,0x1e,0xf4,0x6b,0xf8,0x85,0xfa,0xac,0xf1, +0x80,0xe7,0x72,0xe3,0x99,0xe8,0xcc,0xf0,0xe1,0xf4,0x90,0xf7, +0x5e,0xf6,0x77,0xf5,0xd7,0x0,0x95,0xf,0x22,0x16,0x2,0x16, +0x80,0x10,0xaa,0xd,0xe5,0x11,0x4f,0x13,0x7,0xf,0xc,0x9, +0x2b,0x4,0xdc,0x5,0xa,0xb,0xe,0x9,0xdd,0x0,0x20,0xfc, +0x5,0xfd,0xb1,0x0,0x73,0x5,0x98,0x4,0xc3,0xfb,0xdc,0xf5, +0x9b,0xf6,0xa0,0xf8,0x4f,0xfb,0x4,0xfb,0x81,0xf7,0x5d,0xf9, +0x3b,0xfe,0xcf,0xff,0x7b,0x2,0x56,0x6,0x13,0x6,0x3b,0x4, +0x8c,0x6,0x6e,0xd,0xcb,0x11,0xb6,0x9,0x7d,0xf8,0x6c,0xee, +0x19,0xee,0xad,0xeb,0xf3,0xe6,0xb5,0xe6,0xc7,0xe9,0xd9,0xee, +0xd4,0xf5,0x60,0xfa,0xa3,0xfa,0x75,0xfd,0xc4,0x5,0x9,0x7, +0x88,0xfe,0x53,0xfd,0xef,0x4,0xf4,0xb,0x18,0x14,0x29,0x17, +0xf0,0xe,0x8d,0x4,0xa9,0xfb,0xec,0xf6,0x9b,0xfd,0x8d,0x8, +0x9a,0xb,0x72,0x5,0xa9,0xfc,0x5a,0xf9,0xd1,0xf9,0xca,0xf6, +0x76,0xf1,0x76,0xef,0xf8,0xf2,0xe4,0xf7,0x56,0xf8,0xf,0xf6, +0xfb,0xf5,0x4f,0xf9,0xb2,0x0,0xac,0xa,0xe5,0xf,0x91,0xc, +0x74,0x9,0xc2,0xb,0x88,0xc,0x3b,0xd,0x8c,0x12,0x2d,0x15, +0x76,0x15,0x46,0x18,0xba,0x14,0xca,0x9,0xd0,0x2,0x58,0xff, +0xf0,0xfa,0x96,0xfa,0xf6,0xff,0x6e,0x5,0x13,0xa,0x63,0x11, +0xab,0x1a,0x1a,0x23,0x4d,0x28,0x84,0x26,0xf4,0x1d,0x58,0x16, +0x3c,0x15,0x16,0x14,0x38,0xb,0x84,0x0,0x4b,0xfa,0x27,0xf7, +0x87,0xf9,0x89,0xff,0xab,0x1,0xa3,0x2,0x4c,0x4,0xc6,0x2, +0xdb,0x0,0x0,0xff,0xdf,0xfa,0x9e,0xf8,0xed,0xf8,0xa3,0xf7, +0x6e,0xf4,0x59,0xf3,0xb1,0xf7,0xe5,0xfc,0xc1,0xff,0xcf,0x4, +0x65,0x9,0x58,0x9,0x83,0x9,0x54,0x9,0x6,0x6,0xd4,0x4, +0xce,0x5,0xaf,0x3,0xab,0xff,0x8,0xfd,0x6f,0xfc,0x40,0xfe, +0xc4,0x0,0xde,0x0,0xdf,0xff,0x4f,0xff,0x78,0xfb,0xc2,0xf6, +0x76,0xf8,0x5e,0xfb,0xe4,0xf8,0x48,0xf6,0x86,0xf4,0xfe,0xf0, +0xad,0xf1,0xf9,0xf7,0xe5,0xfa,0x77,0xf7,0x3,0xf5,0x66,0xf7, +0x98,0xf8,0xc0,0xf4,0x3,0xf0,0x10,0xed,0x91,0xec,0xd,0xef, +0x6,0xf0,0x6a,0xec,0x82,0xe8,0x27,0xe9,0x56,0xf0,0x39,0xfb, +0x98,0x2,0xb2,0x4,0x21,0x5,0xca,0x3,0xc5,0x0,0x2c,0xff, +0x6a,0xfd,0x59,0xf9,0x26,0xf7,0x96,0xf8,0x87,0xfb,0x6b,0x1, +0xd1,0x9,0xf2,0xf,0x1a,0x12,0x2c,0x10,0x41,0xa,0xa5,0x3, +0x26,0xff,0x29,0xfe,0x67,0x2,0x80,0x9,0xab,0xe,0x2b,0x11, +0xfe,0x10,0x5a,0xd,0x5,0xb,0x3f,0xe,0x47,0x10,0x28,0xb, +0xac,0x5,0x65,0x5,0x57,0x5,0xa4,0x3,0xfb,0x4,0x12,0x6, +0x63,0x1,0x1f,0xff,0x58,0x4,0xdd,0x6,0xd2,0x4,0x1c,0x6, +0xe,0x9,0x2e,0xa,0xb2,0xb,0xc4,0xd,0x8c,0xd,0xe2,0x7, +0xd,0xff,0xa3,0xfa,0xaa,0xfb,0x1b,0xfd,0x74,0xfd,0x76,0xfe, +0xb5,0x0,0x58,0x2,0x5d,0x1,0x7a,0xfc,0xc2,0xf5,0x67,0xf4, +0x8f,0xf6,0x8e,0xf0,0xfe,0xe4,0xca,0xe0,0x76,0xe4,0xe3,0xe9, +0x50,0xf1,0x3e,0xfc,0x40,0x6,0xef,0xa,0x68,0xc,0xd5,0xc, +0xed,0xb,0x58,0xa,0x61,0x7,0x3e,0x3,0x2f,0xff,0xd0,0xfa, +0x8d,0xfa,0xba,0x1,0xf3,0x8,0xf3,0xb,0x3a,0x10,0xb9,0x16, +0x50,0x19,0x77,0x16,0x63,0x12,0xb9,0xd,0x33,0x6,0xd,0xfe, +0xa2,0xf9,0x12,0xf9,0xc4,0xf8,0x81,0xf7,0xff,0xf6,0x5a,0xf7, +0xff,0xf9,0x71,0xff,0x33,0x2,0xc,0x1,0xa5,0xff,0xf9,0xfd, +0xfd,0xfd,0xe7,0x0,0xd2,0x1,0x63,0xff,0x50,0xfd,0xe9,0xfd, +0x80,0xff,0x93,0xff,0x6a,0x0,0x5b,0x2,0x3,0x2,0x48,0x0, +0x1a,0xfd,0xb4,0xf7,0x28,0xf4,0x8e,0xf4,0xd9,0xf7,0x8,0xfa, +0x40,0xf7,0xad,0xf4,0xb8,0xf5,0xc9,0xf6,0x81,0xf8,0x8e,0xfa, +0x54,0xfa,0x7e,0xf9,0xd7,0xf8,0xc3,0xf7,0xd8,0xf5,0x82,0xf3, +0xd0,0xf2,0xb0,0xf0,0xbe,0xec,0x8d,0xef,0x3b,0xf8,0x4c,0xfe, +0xac,0x1,0xcc,0x3,0x40,0x3,0xd4,0x0,0x40,0xfd,0xca,0xf7, +0x42,0xf1,0x1,0xed,0x14,0xed,0x79,0xf0,0xc5,0xf5,0x23,0xfb, +0x4,0x0,0xec,0x4,0x3d,0x7,0x46,0x6,0x3b,0x5,0x32,0x3, +0x78,0xfe,0x5,0xfc,0xcb,0xff,0x1d,0x4,0xbd,0x3,0x52,0x3, +0xa6,0x5,0x0,0x8,0x48,0xb,0x41,0xd,0x5e,0x8,0x3f,0x0, +0xb9,0xfa,0x54,0xf7,0x40,0xf6,0xe7,0xf9,0x5e,0x0,0x2f,0x4, +0x23,0x6,0x2c,0xa,0xf,0xc,0x48,0x8,0x1d,0x3,0x3c,0xff, +0x2f,0xfd,0x69,0xfd,0x8c,0xfe,0x76,0xff,0xec,0xff,0xd5,0x1, +0xfd,0x4,0x94,0x4,0x50,0x2,0xdc,0x2,0x31,0x4,0xd4,0x5, +0xea,0x7,0x75,0x8,0xcf,0x9,0x3d,0xb,0xe6,0x8,0x10,0x6, +0x9b,0x5,0xa5,0x4,0xcd,0x0,0xa8,0xfb,0x7d,0xfa,0xcb,0xfe, +0x53,0x4,0x3c,0x9,0xf2,0xe,0xb6,0x16,0x59,0x1e,0x4f,0x20, +0x22,0x1c,0x6f,0x16,0xbc,0x11,0xa2,0xe,0x53,0xd,0x4a,0xe, +0xfb,0xf,0x3c,0xe,0xed,0xa,0xe8,0xa,0x61,0xc,0xf3,0xc, +0x1c,0xc,0xe6,0x8,0x7e,0x6,0xb8,0x7,0xe2,0x9,0x3c,0xb, +0xfe,0xc,0xde,0xe,0xad,0xd,0x6,0x8,0x42,0x1,0xc1,0xfb, +0xce,0xf7,0x23,0xf6,0xda,0xf4,0x3d,0xf3,0x5d,0xf4,0xe1,0xf6, +0x47,0xf6,0x41,0xf2,0x88,0xed,0xdc,0xea,0x64,0xea,0xc6,0xe9, +0xc6,0xe9,0xdd,0xed,0x27,0xf5,0x65,0xfb,0x8e,0xff,0xb5,0x1, +0x3c,0x0,0x7f,0xfd,0x56,0xfd,0x9f,0xfd,0x93,0xfb,0xec,0xf8, +0x8b,0xf8,0x8a,0xfb,0x52,0x0,0x25,0x5,0x1a,0x9,0xf8,0xa, +0x39,0xc,0x12,0xe,0x7e,0xd,0x6f,0xa,0xe8,0x8,0x13,0xa, +0x13,0xc,0x82,0xc,0x1c,0xb,0xe0,0x9,0xe5,0x9,0xc3,0xb, +0x17,0xf,0x54,0x11,0x6f,0x11,0xc0,0x10,0xb6,0xf,0xbb,0xc, +0xc2,0x7,0x9d,0x4,0xdd,0x4,0x23,0x6,0x3d,0x8,0xf0,0xa, +0x4d,0xc,0x5,0xd,0xd,0xe,0x92,0xf,0x21,0x13,0xe0,0x17, +0x27,0x1a,0xf0,0x18,0x8f,0x16,0x48,0x14,0x5a,0x11,0x17,0xf, +0xae,0xf,0x51,0x11,0xe8,0x10,0xb0,0xe,0x43,0xd,0x6a,0xd, +0xa0,0xc,0xde,0x9,0x42,0x6,0x3a,0x1,0x75,0xfc,0xf7,0xfb, +0x94,0xfd,0x72,0xfc,0x1c,0xfa,0x48,0xfa,0x1d,0xfd,0x8b,0x1, +0xe8,0x5,0x95,0x7,0x83,0x6,0x4b,0x4,0x9d,0x0,0xc2,0xfc, +0x24,0xfd,0x77,0x2,0xcf,0x7,0x22,0x9,0x1d,0x7,0xd6,0x4, +0xd6,0x3,0xcb,0x2,0xcd,0x0,0xf0,0xfe,0x4a,0xfc,0x34,0xf7, +0x95,0xf2,0x1d,0xf1,0xf8,0xf0,0xfd,0xf0,0x93,0xf1,0xe5,0xf2, +0xbe,0xf5,0x73,0xf9,0x43,0xfc,0x7b,0xfe,0xfa,0x0,0xe5,0x3, +0x1e,0x7,0xd3,0x9,0xd9,0xa,0x9f,0x9,0x7c,0x7,0xab,0x6, +0x2,0x7,0x73,0x6,0xe0,0x3,0x5c,0x0,0x69,0xfe,0xaa,0xfe, +0x4d,0xff,0x1c,0x0,0xb2,0x2,0x6f,0x6,0x21,0x9,0x6f,0xa, +0x29,0xa,0xc2,0x7,0x37,0x5,0x61,0x3,0xb6,0xff,0xc1,0xfa, +0x50,0xf8,0xd2,0xf8,0x34,0xf9,0xfa,0xf7,0xce,0xf6,0x53,0xf6, +0x55,0xf5,0x65,0xf4,0x44,0xf4,0xb7,0xf3,0x56,0xf1,0x1,0xed, +0x19,0xe9,0x67,0xe7,0xf7,0xe5,0x4d,0xe4,0xab,0xe4,0xee,0xe5, +0x5f,0xe4,0xbd,0xe0,0x1b,0xe0,0x65,0xe3,0xa4,0xe6,0x6c,0xe8, +0x11,0xea,0x5c,0xec,0x1e,0xee,0x96,0xec,0xb4,0xe8,0x4a,0xe5, +0xd3,0xe1,0xdd,0xde,0x5,0xde,0xbf,0xde,0xc1,0xe0,0xfa,0xe2, +0xb2,0xe4,0xcf,0xe6,0x4b,0xe8,0xf1,0xe8,0xd1,0xe9,0x7a,0xea, +0xfa,0xeb,0xaf,0xed,0xe3,0xec,0x7e,0xeb,0x75,0xeb,0x7b,0xeb, +0x88,0xeb,0x64,0xec,0xcf,0xee,0x28,0xf2,0x55,0xf4,0x9f,0xf5, +0xf3,0xf5,0xda,0xf3,0x32,0xf1,0xe7,0xef,0x38,0xef,0x29,0xef, +0x25,0xf0,0x7c,0xf1,0xc6,0xf2,0x5c,0xf4,0x14,0xf5,0x27,0xf3, +0xd3,0xf0,0x4d,0xf1,0x5c,0xf3,0x2c,0xf4,0xc7,0xf1,0xb1,0xec, +0x33,0xe9,0xb8,0xe9,0xe8,0xeb,0x19,0xed,0x59,0xec,0x2d,0xea, +0xe,0xe9,0xbf,0xeb,0xa7,0xf1,0xa7,0xf7,0x3a,0xfc,0x15,0xfe, +0xd3,0xfb,0xbf,0xf7,0x98,0xf4,0xad,0xf2,0xc6,0xf2,0xe0,0xf4, +0x0,0xf7,0x8,0xf8,0x20,0xf8,0x32,0xf8,0x5e,0xf9,0x76,0xfb, +0x3e,0xfd,0xd,0xfe,0x62,0xfe,0x5e,0xfe,0x2f,0xfd,0xe,0xfa, +0xe3,0xf4,0x89,0xf0,0xe9,0xf0,0x2f,0xf4,0xa7,0xf5,0xca,0xf4, +0x2b,0xf3,0xd2,0xf1,0xce,0xf1,0x32,0xf3,0xa6,0xf5,0xf1,0xf8, +0x83,0xfb,0x9e,0xfb,0xa5,0xf9,0x2f,0xf7,0xb7,0xf5,0x93,0xf6, +0x37,0xf9,0xbe,0xfb,0x1d,0xfe,0x33,0x0,0xd2,0x0,0x5b,0x1, +0x27,0x3,0xa0,0x4,0x98,0x5,0x89,0x7,0xe0,0x9,0x42,0xb, +0x85,0xb,0x38,0xa,0xde,0x6,0x20,0x3,0x1f,0x1,0x34,0x1, +0x5f,0x3,0x91,0x6,0xea,0x8,0xa4,0xa,0xae,0xb,0x48,0xb, +0x25,0xb,0x9f,0xb,0x34,0xb,0x9d,0xb,0xe2,0xe,0x51,0x13, +0x19,0x16,0x13,0x16,0x1c,0x14,0xac,0x11,0x62,0x10,0xc4,0x11, +0xcc,0x14,0x17,0x16,0x19,0x13,0xa3,0xc,0x99,0x6,0xbf,0x3, +0xa9,0x4,0xad,0x9,0x6b,0x10,0xf8,0x14,0x93,0x16,0xf2,0x15, +0xc3,0x13,0x5e,0x11,0x17,0xf,0x96,0xc,0xfe,0x9,0xf4,0x7, +0x4a,0x7,0xed,0x6,0xac,0x5,0x74,0x5,0xa9,0x7,0x43,0xa, +0xff,0xa,0x74,0xa,0x52,0xa,0x30,0x9,0x4c,0x5,0x41,0x0, +0x4d,0xfa,0x3e,0xf3,0xf7,0xee,0xe6,0xef,0x1a,0xf4,0xa9,0xf8, +0x62,0xfb,0x16,0xfd,0x5f,0xff,0xf4,0x0,0x26,0x1,0xf,0x1, +0x4d,0x1,0x68,0x2,0xae,0x4,0xb5,0x7,0xfb,0x9,0xa9,0xa, +0x74,0xb,0x4e,0xc,0x3d,0xb,0xc9,0x8,0x57,0x5,0x40,0x1, +0xba,0xfe,0x9d,0xfd,0x8f,0xfc,0x0,0xfc,0x4a,0xfc,0x6f,0xfd, +0xdf,0xfe,0xaa,0x0,0x47,0x3,0x16,0x4,0xfa,0x1,0xf5,0xff, +0xaf,0xff,0xc5,0x1,0xb2,0x4,0x63,0x4,0x96,0x1,0x16,0x0, +0x3d,0x1,0x6d,0x4,0x46,0x6,0x79,0x5,0xa1,0x5,0xe4,0x7, +0x6c,0xa,0xd0,0xb,0x9d,0xa,0x6,0x7,0x15,0x3,0x64,0x1, +0xce,0x2,0x5f,0x4,0x44,0x5,0x21,0x8,0x1d,0xc,0x5f,0xe, +0x7c,0xe,0xc1,0xd,0xa5,0xd,0x2f,0xe,0xe3,0xe,0x68,0xf, +0x95,0xe,0x3e,0xd,0xaf,0xd,0xa8,0xf,0xdf,0x11,0xd1,0x13, +0x83,0x15,0xbc,0x17,0x34,0x1a,0x1d,0x1b,0x45,0x19,0x16,0x15, +0x60,0x10,0x2f,0xd,0x8a,0xc,0xb7,0xd,0x9c,0xe,0x5a,0xe, +0x58,0xe,0x58,0x10,0xc9,0x14,0x8d,0x19,0x23,0x1b,0x32,0x18, +0xde,0x12,0xf1,0xe,0x18,0xe,0x73,0xe,0x59,0xe,0x79,0xe, +0x6b,0xf,0x8f,0x10,0x47,0x11,0xff,0x11,0x44,0x13,0x75,0x14, +0x7c,0x15,0x26,0x17,0x8,0x19,0xe2,0x1a,0xf1,0x1c,0xb4,0x1d, +0xcf,0x1c,0x84,0x1b,0x8d,0x19,0x6d,0x17,0xcb,0x15,0x3a,0x13, +0x3,0x11,0x4,0x11,0xd3,0x10,0x79,0xf,0x41,0xe,0xa5,0xc, +0x51,0xb,0xcb,0xb,0x18,0xd,0xac,0xd,0x8a,0xd,0xdb,0xd, +0xa7,0xe,0x94,0xe,0xad,0xd,0xd9,0xc,0xcd,0xc,0x4,0xe, +0xf3,0xe,0xec,0xd,0x3b,0xb,0xde,0x6,0x89,0x1,0x1a,0xfe, +0xa0,0xfd,0xd1,0xfd,0x78,0xfd,0xa7,0xfd,0xca,0xfd,0xa,0xfd, +0xe,0xfd,0x3,0xfe,0x92,0xfe,0x91,0xfe,0x76,0xfd,0x63,0xfc, +0xaa,0xfd,0x77,0xff,0x47,0xff,0x69,0xfe,0xf2,0xfe,0xf9,0x0, +0xba,0x2,0x24,0x3,0x9,0x3,0x45,0x3,0x37,0x4,0x8c,0x4, +0x52,0x2,0x4a,0xff,0x80,0xfe,0x5a,0xff,0xf4,0xfe,0x65,0xfc, +0x70,0xfa,0x7a,0xfb,0x34,0xfe,0x5b,0x0,0x84,0x1,0xac,0x2, +0xb8,0x3,0x4a,0x3,0xaf,0x1,0x7c,0xff,0x81,0xfc,0x7,0xfa, +0xcf,0xf8,0xed,0xf7,0x80,0xf6,0x96,0xf4,0x96,0xf4,0x7c,0xf7, +0x32,0xfa,0x87,0xfb,0x41,0xfc,0x46,0xfb,0xd9,0xf8,0x81,0xf7, +0x69,0xf8,0x15,0xfa,0x73,0xfa,0x50,0xf9,0xe4,0xf6,0x30,0xf3, +0x3b,0xef,0x5,0xec,0xdd,0xea,0x1a,0xed,0xe7,0xf1,0x4f,0xf7, +0x64,0xfb,0x26,0xfd,0xa2,0xfd,0xd4,0xfd,0xfe,0xfd,0x35,0xfe, +0x36,0xfd,0x5b,0xfa,0x6e,0xf7,0xf2,0xf5,0x7b,0xf5,0xcf,0xf5, +0x6e,0xf7,0xab,0xf8,0xd3,0xf7,0xec,0xf6,0x8c,0xf7,0xbe,0xf8, +0x9e,0xf9,0x3b,0xf9,0x99,0xf7,0xc5,0xf5,0xe,0xf4,0x2d,0xf3, +0x2a,0xf3,0x86,0xf2,0xad,0xf0,0xe7,0xed,0x89,0xeb,0xe3,0xea, +0x47,0xeb,0x64,0xec,0x91,0xed,0xa6,0xec,0x78,0xea,0x51,0xea, +0xf2,0xec,0x1b,0xf0,0x15,0xf2,0xdb,0xf3,0x58,0xf5,0x95,0xf4, +0x76,0xf2,0x87,0xf1,0x67,0xf2,0x32,0xf4,0x2e,0xf5,0x7e,0xf4, +0x74,0xf3,0xf8,0xf3,0x19,0xf5,0x60,0xf3,0x1a,0xef,0xc2,0xeb, +0xa6,0xea,0xa,0xec,0xcc,0xee,0xdb,0xf0,0xf6,0xf2,0x4,0xf5, +0x89,0xf5,0x7d,0xf5,0x5,0xf5,0x98,0xf3,0x12,0xf2,0x40,0xf0, +0xff,0xed,0x19,0xec,0x35,0xeb,0xb6,0xeb,0x36,0xec,0x8f,0xeb, +0x6d,0xea,0xf0,0xe8,0xa1,0xe7,0x48,0xe7,0xaa,0xe7,0x3e,0xe9, +0x3f,0xec,0x3f,0xf0,0x78,0xf4,0xc5,0xf6,0x99,0xf6,0x86,0xf5, +0x5c,0xf4,0xa0,0xf3,0xa,0xf3,0x1e,0xf2,0xe0,0xf1,0xa9,0xf2, +0x42,0xf4,0xf5,0xf6,0xab,0xf9,0xd,0xfb,0xc,0xfb,0xc5,0xf9, +0xba,0xf7,0x35,0xf6,0xf6,0xf5,0xc6,0xf6,0x64,0xf9,0x5,0xfe, +0xd0,0x0,0x15,0xff,0xf,0xfc,0xba,0xfa,0x70,0xfa,0xa8,0xfa, +0xa8,0xfb,0x70,0xfc,0xea,0xfb,0xa8,0xfb,0x28,0xfd,0xe,0xff, +0xe9,0x0,0x61,0x3,0x95,0x5,0x9d,0x6,0xb3,0x5,0xc,0x3, +0xcd,0x0,0x9d,0xff,0x38,0xff,0x6c,0x0,0x7e,0x2,0x9d,0x3, +0x1d,0x3,0xd3,0x1,0x28,0x2,0x4b,0x5,0x9c,0x9,0xa6,0xd, +0x3d,0x11,0x93,0x13,0x3b,0x13,0x79,0x10,0xd0,0xc,0x27,0x9, +0xc,0x7,0x4a,0x7,0x8a,0x7,0x43,0x6,0xa4,0x4,0xe1,0x3, +0x9e,0x4,0x80,0x6,0x3,0x8,0xcb,0x8,0x7,0xa,0xbd,0xb, +0x9,0xc,0x8e,0xa,0x4d,0x9,0x8a,0x8,0xe5,0x6,0x30,0x4, +0x2c,0x1,0x2e,0xff,0xec,0xfe,0x41,0xff,0x75,0xff,0x3b,0x0, +0xca,0x1,0x35,0x3,0x36,0x4,0x2,0x6,0x23,0x8,0x46,0x8, +0x71,0x6,0x3c,0x4,0x85,0x2,0x4f,0x2,0xca,0x3,0xe5,0x5, +0xa9,0x7,0xa3,0x8,0x6e,0x9,0x3b,0xa,0xbc,0x9,0xd,0x8, +0xf3,0x6,0x42,0x7,0x85,0x8,0x9d,0x9,0xfe,0x9,0x49,0xa, +0xd2,0xa,0x1c,0xb,0xd6,0xa,0xa5,0xa,0x65,0xb,0x79,0xc, +0xf9,0xc,0x6e,0xd,0x4e,0xe,0x42,0xf,0xf0,0xf,0x86,0x10, +0xab,0x11,0x68,0x12,0xef,0x10,0x4f,0xe,0x87,0xc,0x4c,0xb, +0x67,0xa,0xfd,0xa,0x45,0xd,0x40,0xf,0xa6,0xe,0xe5,0xb, +0x26,0x9,0x4d,0x8,0x64,0xa,0x3c,0xd,0x95,0xd,0x8,0xc, +0x29,0xa,0x7e,0x8,0x87,0x8,0x39,0xa,0xad,0xb,0xfd,0xb, +0x2c,0xb,0x88,0xa,0x6,0xb,0x25,0xb,0xaf,0xa,0x6c,0xb, +0xef,0xc,0xbc,0xc,0xca,0x9,0x8e,0x6,0x8f,0x5,0xbd,0x5, +0x1e,0x6,0x90,0x7,0x18,0x9,0xb8,0x8,0x58,0x6,0x43,0x3, +0x94,0x0,0xf5,0xfe,0x3e,0xff,0xc4,0x0,0x5c,0x1,0xfe,0x0, +0xd8,0x0,0xa2,0x0,0x19,0x0,0x73,0xff,0x32,0xff,0x1c,0x0, +0xc8,0x1,0xf8,0x2,0x7b,0x2,0x48,0x0,0x4b,0xfe,0xee,0xfc, +0xa3,0xfa,0xf8,0xf7,0x89,0xf6,0x72,0xf6,0xeb,0xf6,0x85,0xf7, +0x28,0xf9,0xa4,0xfb,0xc7,0xfc,0x1f,0xfc,0x4c,0xfa,0xb8,0xf7, +0x6b,0xf6,0x2e,0xf7,0x44,0xf8,0x71,0xf8,0x2b,0xf7,0xb8,0xf5, +0x78,0xf6,0xaa,0xf8,0x84,0xfa,0x20,0xfc,0x6f,0xfd,0x4f,0xfe, +0xec,0xfe,0x80,0xff,0xa0,0x0,0x7c,0x1,0x79,0x1,0x56,0x2, +0x34,0x4,0x51,0x5,0x90,0x5,0x51,0x5,0xc5,0x4,0x75,0x4, +0x47,0x4,0x47,0x4,0x50,0x4,0x15,0x3,0x83,0x0,0x77,0xfe, +0xad,0xfe,0x20,0x1,0xaf,0x3,0x89,0x4,0xa2,0x3,0x13,0x1, +0x79,0xfd,0xbf,0xfa,0x64,0xfa,0x8e,0xfc,0xc0,0xff,0xb5,0x1, +0x68,0x2,0x7e,0x3,0xb9,0x4,0xee,0x4,0x60,0x4,0x4b,0x3, +0x2,0x1,0xdb,0xfd,0x16,0xfb,0x3e,0xf9,0x8c,0xf8,0x44,0xf9, +0xd7,0xfa,0xbb,0xfb,0xc0,0xfa,0x1f,0xf9,0x9a,0xf9,0x36,0xfc, +0x61,0xfe,0x48,0xff,0x33,0xff,0xae,0xfd,0x30,0xfc,0xb9,0xfc, +0x8b,0xfd,0xb8,0xfc,0x1f,0xfc,0x29,0xfd,0x30,0xfe,0x17,0xfe, +0x73,0xfd,0x6a,0xfc,0xd8,0xfa,0xbf,0xf9,0xdf,0xf9,0x21,0xfa, +0x98,0xf9,0xc8,0xf8,0x4b,0xf8,0x62,0xf8,0x29,0xf9,0xa5,0xfa, +0xf8,0xfc,0x4c,0xff,0x2f,0x0,0x8a,0xff,0xf9,0xfd,0xf9,0xfb, +0xc9,0xfa,0xe5,0xfa,0x90,0xfa,0xa2,0xf8,0xd0,0xf6,0x9,0xf7, +0x67,0xf8,0xc,0xf9,0xa3,0xf8,0x2b,0xf7,0x77,0xf4,0xcc,0xf1, +0xe1,0xf0,0x9e,0xf1,0x9b,0xf2,0x5,0xf3,0xad,0xf2,0x9e,0xf1, +0xd0,0xf0,0x5a,0xf1,0xb2,0xf2,0x7,0xf4,0x8d,0xf5,0x26,0xf7, +0xf4,0xf7,0x43,0xf7,0x67,0xf5,0x2b,0xf4,0x2a,0xf5,0xda,0xf7, +0x19,0xfa,0x82,0xfa,0xcb,0xf9,0xc,0xf9,0xf1,0xf7,0x28,0xf6, +0x96,0xf4,0xa,0xf4,0x51,0xf4,0xce,0xf4,0x35,0xf5,0x39,0xf5, +0x8f,0xf4,0x4b,0xf4,0x24,0xf6,0x62,0xf9,0x49,0xfb,0x1d,0xfb, +0x82,0xfa,0x8f,0xf9,0x14,0xf7,0x4b,0xf4,0xdc,0xf2,0xf2,0xf1, +0x35,0xf1,0xc2,0xf1,0x88,0xf3,0xa1,0xf5,0xb4,0xf7,0x74,0xf9, +0x83,0xfa,0x2b,0xfb,0xff,0xfb,0xaa,0xfc,0x82,0xfc,0xde,0xfb, +0x54,0xfb,0xdd,0xfa,0x4d,0xfa,0xcd,0xf9,0xe7,0xf9,0xa4,0xfa, +0x2a,0xfb,0xcb,0xfa,0xce,0xf9,0x66,0xf9,0x9b,0xfa,0x24,0xfd, +0xc3,0xff,0x2f,0x1,0x8d,0x1,0xf,0x2,0x92,0x2,0xc7,0x2, +0x63,0x3,0x3,0x4,0x26,0x4,0x5a,0x4,0x58,0x4,0x63,0x3, +0x76,0x1,0xa0,0xff,0x84,0xff,0xf8,0x0,0xd0,0x2,0xba,0x4, +0xf8,0x5,0x46,0x6,0x88,0x6,0xd2,0x6,0xdb,0x6,0xd,0x7, +0x4d,0x8,0xcf,0xa,0xce,0xc,0x30,0xd,0x7b,0xc,0x7a,0xa, +0x20,0x8,0x8a,0x7,0x9e,0x8,0x56,0xa,0xf4,0xb,0xec,0xb, +0xce,0x9,0x76,0x7,0xe8,0x6,0xdc,0x7,0x89,0x8,0xa2,0x8, +0xfa,0x8,0xab,0x9,0x20,0xa,0x8d,0x9,0x59,0x8,0xed,0x7, +0x84,0x8,0xac,0x9,0xb7,0xa,0x6e,0xa,0x50,0x9,0x51,0x9, +0xa6,0xa,0xc7,0xb,0xd3,0xb,0x57,0xb,0x3e,0xb,0x96,0xb, +0x2e,0xb,0xe,0x9,0x91,0x6,0xac,0x5,0x5c,0x6,0xc3,0x7, +0xd9,0x8,0xab,0x8,0x89,0x7,0xdf,0x5,0xe9,0x3,0xd4,0x2, +0xd1,0x2,0x96,0x2,0x4b,0x2,0x39,0x3,0xc2,0x4,0x41,0x5, +0x29,0x5,0x53,0x5,0x6c,0x5,0x70,0x6,0x79,0x8,0xaf,0x8, +0x50,0x6,0xb6,0x3,0xb7,0x2,0x5c,0x3,0xfd,0x3,0x0,0x4, +0xbd,0x4,0x11,0x6,0xca,0x6,0x98,0x6,0x6a,0x5,0xc3,0x3, +0x93,0x2,0x4c,0x2,0x48,0x2,0x48,0x1,0xa,0x0,0xce,0xff, +0xa5,0xff,0x69,0xff,0xd4,0xff,0x79,0x0,0xea,0x1,0x6e,0x4, +0x1a,0x6,0x13,0x6,0x53,0x5,0x8a,0x4,0x9f,0x3,0x81,0x2, +0xbe,0x1,0x87,0x1,0x48,0x1,0x69,0x0,0xdc,0xfe,0xfa,0xfd, +0x86,0xfe,0x68,0xff,0x67,0x0,0x45,0x1,0xa4,0x0,0x7f,0xff, +0xf6,0xff,0xd2,0x1,0x50,0x3,0x17,0x3,0xbb,0x1,0x5b,0x0, +0xe0,0xfe,0xa7,0xfd,0xe5,0xfc,0xe3,0xfb,0x5c,0xfb,0xfb,0xfb, +0x99,0xfc,0xc,0xfc,0xc,0xfa,0xd1,0xf7,0xea,0xf6,0xe3,0xf6, +0x5a,0xf7,0xa4,0xf8,0x6c,0xf9,0xae,0xf8,0xa7,0xf7,0xa1,0xf7, +0x9b,0xf8,0x5d,0xf9,0x89,0xf8,0x5d,0xf6,0x50,0xf4,0x2e,0xf3, +0x2d,0xf3,0x86,0xf4,0x8c,0xf6,0xd9,0xf7,0x3,0xf8,0xf5,0xf7, +0x93,0xf8,0x76,0xf9,0x98,0xf9,0x23,0xf9,0xea,0xf8,0xff,0xf8, +0xf4,0xf8,0x7c,0xf8,0x4,0xf8,0x1a,0xf8,0x26,0xf8,0xd3,0xf7, +0x57,0xf7,0xef,0xf5,0x1,0xf4,0xab,0xf3,0x30,0xf5,0xe3,0xf6, +0xe8,0xf7,0xc5,0xf8,0xed,0xf9,0xaf,0xfa,0xd5,0xfa,0x56,0xfb, +0x3b,0xfc,0xd1,0xfc,0x3f,0xfd,0xb0,0xfd,0xad,0xfd,0x2a,0xfd, +0xe2,0xfc,0x46,0xfd,0xd6,0xfd,0x14,0xfe,0xdd,0xfd,0x2a,0xfd, +0xac,0xfc,0x4c,0xfd,0xd5,0xfe,0x34,0x0,0xd3,0x0,0xe6,0x0, +0x48,0x0,0xbe,0xfe,0xf4,0xfc,0x46,0xfb,0x7d,0xf9,0xd2,0xf7, +0x53,0xf6,0x4f,0xf5,0xa1,0xf5,0x3a,0xf7,0x34,0xf9,0x89,0xfa, +0xde,0xfa,0x92,0xfb,0x99,0xfd,0xec,0xff,0x76,0x1,0x89,0x1, +0xdf,0xff,0x3d,0xfd,0xc7,0xfa,0xf7,0xf9,0x32,0xfb,0x69,0xfc, +0x8d,0xfc,0xfd,0xfc,0x45,0xfe,0x53,0xff,0x49,0xff,0xd3,0xfe, +0xf8,0xfe,0xe8,0xfe,0xeb,0xfd,0x5d,0xfd,0x28,0xfe,0x99,0xff, +0x97,0x0,0x83,0x0,0x5,0x0,0x12,0x0,0xa5,0x0,0x6c,0x1, +0x3a,0x2,0xa4,0x2,0xff,0x1,0xaa,0x0,0xa0,0x0,0xb2,0x2, +0x65,0x5,0x91,0x7,0x1,0x9,0x6b,0x9,0x28,0x9,0x49,0x9, +0x34,0xa,0xd7,0xa,0x22,0xa,0x7b,0x8,0xc3,0x6,0x65,0x5, +0x9f,0x4,0x98,0x4,0x25,0x5,0x6d,0x5,0xe7,0x4,0x5f,0x4, +0x68,0x4,0xbd,0x4,0x5a,0x5,0xc,0x6,0x1a,0x6,0x20,0x5, +0xfd,0x3,0xf5,0x3,0x9a,0x4,0xe,0x5,0x8d,0x5,0xd6,0x5, +0xe4,0x5,0xc2,0x6,0x58,0x8,0xa8,0x9,0x32,0xa,0x3,0xa, +0xa4,0x9,0x1,0x9,0xc8,0x7,0x58,0x6,0xc6,0x4,0x5e,0x3, +0xb7,0x2,0x9,0x2,0xb0,0x0,0x70,0xff,0x9e,0xfe,0xb6,0xfd, +0x74,0xfc,0x5f,0xfb,0x44,0xfb,0x66,0xfc,0x48,0xfe,0xc3,0xff, +0x13,0x0,0x5f,0xff,0x2,0xfe,0x2f,0xfd,0x1a,0xfe,0x9b,0xff, +0x8d,0xff,0x4a,0xfd,0xe,0xfa,0xc2,0xf7,0xc4,0xf6,0x92,0xf6, +0x55,0xf7,0xad,0xf8,0xac,0xf9,0xe2,0xf9,0x92,0xf9,0xa8,0xf9, +0x24,0xfa,0x73,0xfa,0x1d,0xfb,0xce,0xfb,0x69,0xfb,0xad,0xfa, +0xae,0xfa,0x4b,0xfb,0x15,0xfc,0x70,0xfc,0x5a,0xfc,0xdd,0xfc, +0x67,0xfe,0x5b,0x0,0x3d,0x2,0x7d,0x3,0xe,0x3,0xf2,0x0, +0xc3,0xfe,0xe2,0xfd,0x8a,0xfe,0xd7,0xff,0x64,0x0,0x13,0x0, +0xee,0xff,0x92,0x0,0xf4,0x1,0x30,0x3,0x3e,0x3,0x84,0x2, +0x55,0x2,0x22,0x3,0xa9,0x3,0xc3,0x2,0x53,0x1,0x3d,0x0, +0x57,0xff,0x14,0xff,0xb4,0xff,0x80,0x0,0x56,0x1,0x57,0x2, +0x44,0x3,0xfd,0x3,0x5d,0x4,0x8e,0x4,0xb,0x5,0xac,0x5, +0xbe,0x5,0xed,0x4,0x88,0x3,0xc,0x2,0xf6,0x0,0xb9,0x0, +0x4f,0x1,0x3c,0x2,0x4b,0x3,0x84,0x4,0xba,0x5,0x7e,0x6, +0xb5,0x6,0xda,0x6,0xd,0x7,0xed,0x6,0x75,0x6,0xc3,0x5, +0xf7,0x4,0x41,0x4,0x44,0x3,0x6,0x2,0x5a,0x1,0x42,0x1, +0x5c,0x1,0xf3,0x1,0x4e,0x3,0x4a,0x5,0x14,0x7,0xb5,0x7, +0x8d,0x7,0x9e,0x7,0x47,0x8,0xfd,0x8,0xbc,0x8,0xe,0x8, +0x94,0x8,0xfa,0x9,0xf2,0xa,0x1e,0xb,0xd4,0xa,0xef,0xa, +0x37,0xb,0xa0,0xa,0xba,0x9,0x2b,0x9,0x5f,0x8,0x8b,0x7, +0x40,0x7,0x5d,0x7,0x76,0x7,0x36,0x7,0xd,0x7,0x5f,0x7, +0x89,0x7,0x5e,0x7,0x58,0x7,0x78,0x7,0x7f,0x7,0x34,0x7, +0x8e,0x6,0x5,0x6,0x60,0x6,0xcc,0x7,0xfb,0x8,0xf5,0x8, +0xd6,0x8,0x74,0x9,0xf0,0x9,0x9d,0x9,0xe6,0x8,0x86,0x8, +0xc9,0x8,0x72,0x9,0x2a,0xa,0xa1,0xa,0x70,0xa,0x19,0x9, +0xb3,0x6,0x6a,0x4,0x35,0x3,0x21,0x3,0xf3,0x3,0xa7,0x4, +0x2a,0x4,0x8,0x3,0x10,0x2,0x2f,0x1,0x9b,0x0,0xa5,0x0, +0xef,0x0,0x50,0x1,0x28,0x2,0xaf,0x3,0xa4,0x5,0xe2,0x6, +0x3d,0x6,0x62,0x4,0xd2,0x2,0xc5,0x1,0x9,0x1,0xb3,0x0, +0x73,0x0,0x32,0x0,0x43,0x0,0x83,0x0,0x64,0x0,0xb3,0xff, +0xaa,0xfe,0x9d,0xfd,0xc,0xfd,0x37,0xfd,0x71,0xfd,0x45,0xfd, +0x1e,0xfd,0xea,0xfc,0x59,0xfc,0xcd,0xfb,0xad,0xfb,0xdd,0xfb, +0xd5,0xfb,0x2e,0xfb,0xf4,0xf9,0x73,0xf8,0xb0,0xf7,0x78,0xf8, +0xf0,0xf9,0xc2,0xfa,0x7d,0xfa,0xa,0xfa,0x83,0xfa,0xbc,0xfa, +0x1d,0xf9,0xca,0xf6,0x82,0xf5,0x46,0xf5,0xea,0xf4,0xf3,0xf3, +0x7e,0xf3,0x64,0xf3,0x3b,0xf2,0x43,0xf1,0xf,0xf2,0x51,0xf3, +0xec,0xf3,0x4,0xf4,0x72,0xf3,0x70,0xf2,0x9f,0xf1,0x6d,0xf1, +0xcd,0xf1,0xe0,0xf1,0x14,0xf1,0xeb,0xef,0x3,0xef,0xad,0xee, +0xe1,0xee,0x32,0xef,0x80,0xef,0x2b,0xf0,0x4f,0xf1,0x8e,0xf2, +0x45,0xf3,0x25,0xf3,0xcb,0xf2,0xe7,0xf2,0x35,0xf3,0x24,0xf3, +0xb8,0xf2,0x5a,0xf2,0x68,0xf2,0xc1,0xf2,0xec,0xf2,0xc9,0xf2, +0x3,0xf3,0x7b,0xf4,0xdb,0xf6,0xb7,0xf8,0x99,0xf9,0x17,0xfa, +0x18,0xfa,0x69,0xf9,0x97,0xf8,0xc4,0xf7,0x5,0xf7,0x69,0xf7, +0xb8,0xf8,0x25,0xf9,0x81,0xf8,0xf8,0xf7,0xe1,0xf7,0x8d,0xf8, +0x71,0xfa,0x1a,0xfd,0x98,0xff,0xc,0x1,0xbc,0x0,0x7a,0xfe, +0x1d,0xfb,0x2a,0xf8,0x7a,0xf6,0x3c,0xf6,0x97,0xf7,0xf3,0xf9, +0x62,0xfc,0xbf,0xfe,0x6,0x1,0xea,0x2,0x4e,0x4,0x68,0x5, +0x3f,0x6,0xd0,0x5,0x48,0x3,0xfa,0xff,0xd9,0xfd,0x60,0xfd, +0xdd,0xfd,0x45,0xfe,0x15,0xfe,0xac,0xfd,0x71,0xfd,0x5b,0xfd, +0x4e,0xfd,0x4a,0xfd,0x53,0xfd,0xab,0xfd,0x85,0xfe,0x6c,0xff, +0xea,0xff,0xe2,0xff,0xe3,0xfe,0xe6,0xfc,0xf7,0xfa,0x2a,0xfa, +0x9e,0xfa,0x96,0xfb,0x89,0xfc,0x75,0xfd,0x35,0xfe,0xe0,0xfe, +0xe2,0xff,0x1c,0x1,0x13,0x2,0xa8,0x2,0x37,0x3,0xd5,0x3, +0xc5,0x3,0x3d,0x3,0x88,0x3,0x78,0x4,0xc5,0x4,0xa,0x4, +0xc2,0x2,0xc7,0x1,0x6c,0x1,0x68,0x1,0xcf,0x1,0xc4,0x2, +0xfa,0x3,0x28,0x5,0xef,0x5,0xb,0x6,0xe9,0x5,0x32,0x6, +0xb9,0x6,0xba,0x6,0x7b,0x6,0xd2,0x6,0x79,0x7,0xb,0x8, +0xb1,0x8,0x1a,0x9,0x25,0x9,0x1d,0x9,0x8c,0x8,0x3e,0x7, +0x32,0x6,0xfa,0x5,0xe9,0x5,0x47,0x5,0x64,0x4,0x2f,0x4, +0xdb,0x4,0x7f,0x5,0x41,0x5,0x5b,0x4,0xd2,0x3,0x1d,0x4, +0xb5,0x4,0x11,0x5,0xd1,0x4,0x97,0x3,0xde,0x1,0xba,0x0, +0xcb,0x0,0xfd,0x1,0x93,0x3,0xe6,0x4,0xf4,0x5,0x66,0x6, +0xc6,0x5,0x96,0x4,0xaa,0x3,0x2f,0x3,0xe7,0x2,0xa9,0x2, +0x87,0x2,0x83,0x2,0x9f,0x2,0xc3,0x2,0x8b,0x2,0x21,0x2, +0x13,0x2,0x30,0x2,0x23,0x2,0xa,0x2,0xf8,0x1,0xbf,0x1, +0x2f,0x1,0xc7,0x0,0x33,0x1,0xfa,0x1,0x68,0x2,0x32,0x2, +0xe7,0x0,0x58,0xff,0x3f,0xff,0x60,0x0,0x36,0x1,0x76,0x1, +0xda,0x1,0xc9,0x2,0xd2,0x3,0x3a,0x4,0x9c,0x3,0xee,0x1, +0x12,0x0,0xbb,0xff,0x73,0x1,0xe1,0x3,0x6b,0x5,0xa5,0x5, +0x42,0x5,0xeb,0x4,0xc9,0x4,0x1e,0x5,0xd7,0x5,0x60,0x6, +0xc0,0x6,0x34,0x7,0x31,0x7,0x8c,0x6,0x9,0x6,0xe4,0x5, +0xad,0x5,0xb1,0x5,0x6d,0x6,0x5,0x7,0x86,0x6,0x4c,0x5, +0x4,0x4,0x31,0x3,0x10,0x3,0x5c,0x3,0xf,0x4,0xc5,0x4, +0xb4,0x4,0x49,0x4,0x1e,0x4,0xde,0x3,0x7e,0x3,0x49,0x3, +0x68,0x3,0x6d,0x3,0x5e,0x2,0xa3,0x0,0x66,0xff,0xde,0xfe, +0x77,0xff,0x1c,0x1,0x79,0x2,0xd2,0x2,0x8,0x2,0x7b,0x0, +0x3a,0xff,0x9f,0xfe,0x7f,0xfe,0x80,0xfe,0xf0,0xfd,0x6,0xfd, +0x4e,0xfc,0xc3,0xfb,0x9d,0xfb,0xa8,0xfb,0x93,0xfb,0xe8,0xfb, +0xaa,0xfc,0x27,0xfd,0x61,0xfd,0xe0,0xfd,0xe7,0xfe,0x2c,0x0, +0x63,0x1,0x5c,0x2,0xa7,0x2,0x3c,0x2,0x8e,0x1,0xc8,0x0, +0xcf,0xff,0x52,0xfe,0x99,0xfc,0xdb,0xfb,0x4c,0xfc,0xe2,0xfc, +0x56,0xfd,0xfb,0xfd,0x7d,0xfe,0x9a,0xfe,0x9,0xff,0x24,0x0, +0x1b,0x1,0x8a,0x1,0x92,0x1,0xca,0x0,0x59,0xff,0x24,0xfe, +0x82,0xfd,0x49,0xfd,0x4b,0xfd,0x98,0xfd,0x6e,0xfe,0x71,0xff, +0x2b,0x0,0x8,0x1,0x55,0x2,0x7b,0x3,0xea,0x3,0xa5,0x3, +0x5,0x3,0x73,0x2,0xfa,0x1,0x5b,0x1,0xab,0x0,0x32,0x0, +0xec,0xff,0xb2,0xff,0x99,0xff,0xe4,0xff,0x93,0x0,0x75,0x1, +0x62,0x2,0xd2,0x2,0x4e,0x2,0x7d,0x1,0x39,0x1,0x9f,0x1, +0x65,0x2,0x5,0x3,0x67,0x3,0xe0,0x3,0x29,0x4,0x2b,0x4, +0x67,0x4,0xbb,0x4,0xe6,0x4,0x28,0x5,0x7a,0x5,0xbf,0x5, +0x0,0x6,0x1a,0x6,0xed,0x5,0x6b,0x5,0x91,0x4,0xa4,0x3, +0x24,0x3,0x2c,0x3,0x37,0x3,0xd7,0x2,0x47,0x2,0xf1,0x1, +0xfc,0x1,0xc,0x2,0xa6,0x1,0xf,0x1,0xa6,0x0,0x1b,0x0, +0x5a,0xff,0xc9,0xfe,0x95,0xfe,0xd8,0xfe,0x9d,0xff,0x8c,0x0, +0x49,0x1,0xa6,0x1,0x82,0x1,0xf3,0x0,0x1b,0x0,0xf,0xff, +0x55,0xfe,0xb2,0xfe,0x3,0x0,0x51,0x1,0x4d,0x2,0x39,0x3, +0x78,0x3,0x71,0x2,0x24,0x1,0x9d,0x0,0x7d,0x0,0x7,0x0, +0x4,0xff,0xec,0xfd,0x79,0xfd,0x91,0xfd,0xde,0xfd,0xe3,0xfe, +0xc3,0x0,0x6f,0x2,0xe6,0x2,0x43,0x2,0x45,0x1,0x5e,0x0, +0x9a,0xff,0x14,0xff,0xe1,0xfe,0xc1,0xfe,0x46,0xfe,0x58,0xfd, +0x6a,0xfc,0xcd,0xfb,0x56,0xfb,0xfe,0xfa,0xf2,0xfa,0x2e,0xfb, +0x80,0xfb,0xba,0xfb,0xf1,0xfb,0x5e,0xfc,0xf3,0xfc,0x67,0xfd, +0x5b,0xfd,0x8c,0xfc,0x5f,0xfb,0xac,0xfa,0xba,0xfa,0x1f,0xfb, +0x7e,0xfb,0xd2,0xfb,0x1,0xfc,0xd6,0xfb,0x82,0xfb,0x87,0xfb, +0xc5,0xfb,0xb8,0xfb,0x69,0xfb,0x34,0xfb,0x56,0xfb,0x2b,0xfc, +0x8b,0xfd,0x64,0xfe,0xc,0xfe,0x10,0xfd,0xe1,0xfb,0x64,0xfa, +0x46,0xf9,0x6b,0xf9,0x48,0xfa,0xcf,0xfa,0xf1,0xfa,0xe7,0xfa, +0x77,0xfa,0xb4,0xf9,0x77,0xf9,0x8,0xfa,0x81,0xfa,0x97,0xfa, +0xde,0xfa,0x4d,0xfb,0x76,0xfb,0x42,0xfb,0xe7,0xfa,0xd6,0xfa, +0x3d,0xfb,0x6,0xfc,0xe4,0xfc,0x3a,0xfd,0x3d,0xfd,0xab,0xfd, +0x4c,0xfe,0xf9,0xfe,0xe4,0xff,0x90,0x0,0xd3,0x0,0x19,0x1, +0x5b,0x1,0x85,0x1,0xaa,0x1,0x7c,0x1,0xb3,0x0,0x9e,0xff, +0xfb,0xfe,0x49,0xff,0x28,0x0,0x7,0x1,0xe3,0x1,0x9f,0x2, +0x81,0x2,0x3c,0x1,0x9c,0xff,0xc2,0xfe,0x1b,0xff,0xf5,0xff, +0x48,0x0,0xc3,0xff,0xe2,0xfe,0xbf,0xfe,0x29,0x0,0x3f,0x2, +0x74,0x3,0x98,0x3,0x7c,0x3,0xa1,0x3,0xf9,0x3,0x55,0x4, +0x6f,0x4,0xda,0x3,0xf1,0x2,0xd3,0x2,0x84,0x3,0xf3,0x3, +0xc9,0x3,0x74,0x3,0x2,0x3,0xed,0x1,0x1a,0x0,0x67,0xfe, +0xdc,0xfd,0xba,0xfe,0x54,0x0,0x79,0x1,0x64,0x1,0x8b,0x0, +0x1f,0x0,0x7b,0x0,0xe5,0x0,0x1,0x1,0xc,0x1,0x2,0x1, +0xaa,0x0,0xeb,0xff,0x16,0xff,0x85,0xfe,0xff,0xfd,0x94,0xfd, +0xcc,0xfd,0x2a,0xfe,0xbb,0xfd,0xb0,0xfc,0x7,0xfc,0x4e,0xfc, +0x47,0xfd,0xad,0xfe,0x47,0x0,0x41,0x1,0xf5,0x0,0xab,0xff, +0xfb,0xfd,0x6f,0xfc,0x1e,0xfb,0xbd,0xf9,0xb4,0xf8,0x9a,0xf8, +0xe,0xf9,0x89,0xf9,0x17,0xfa,0x86,0xfa,0x5c,0xfa,0xe3,0xf9, +0xd0,0xf9,0xf7,0xf9,0xc,0xfa,0x90,0xfa,0x9e,0xfb,0x7d,0xfc, +0x0,0xfd,0x93,0xfd,0x14,0xfe,0x1,0xfe,0x90,0xfd,0x76,0xfd, +0xbd,0xfd,0xed,0xfd,0xe4,0xfd,0xca,0xfd,0xd7,0xfd,0x13,0xfe, +0x4,0xfe,0x48,0xfd,0x31,0xfc,0x74,0xfb,0xb7,0xfb,0xca,0xfc, +0x69,0xfd,0xfd,0xfc,0xb9,0xfc,0xa3,0xfd,0xca,0xfe,0xad,0xfe, +0x48,0xfd,0xdb,0xfb,0x5d,0xfb,0xd2,0xfb,0xb2,0xfc,0x9a,0xfd, +0x65,0xfe,0x86,0xfe,0x73,0xfd,0xa7,0xfb,0xf4,0xf9,0xcc,0xf8, +0x9c,0xf8,0x4b,0xf9,0x13,0xfa,0x84,0xfa,0x9a,0xfa,0x5a,0xfa, +0xfb,0xf9,0xc,0xfa,0x19,0xfb,0xbc,0xfc,0xe5,0xfd,0x58,0xfe, +0x32,0xfe,0x3b,0xfd,0x6,0xfc,0x6f,0xfb,0x45,0xfb,0x40,0xfb, +0xa7,0xfb,0x40,0xfc,0x48,0xfc,0xb2,0xfb,0x4c,0xfb,0x6e,0xfb, +0xc6,0xfb,0x15,0xfc,0x26,0xfc,0xd9,0xfb,0x5d,0xfb,0x8,0xfb, +0x31,0xfb,0xac,0xfb,0xbe,0xfb,0x5f,0xfb,0x59,0xfb,0x1,0xfc, +0xf6,0xfc,0xf9,0xfd,0x22,0xff,0x39,0x0,0xa8,0x0,0x37,0x0, +0x3b,0xff,0x63,0xfe,0x53,0xfe,0xd3,0xfe,0x5d,0xff,0x24,0x0, +0x24,0x1,0x9c,0x1,0x52,0x1,0x14,0x1,0x8f,0x1,0x63,0x2, +0xa5,0x2,0x26,0x2,0x8f,0x1,0x65,0x1,0xa7,0x1,0x19,0x2, +0x80,0x2,0xe5,0x2,0x77,0x3,0xfe,0x3,0x47,0x4,0xa4,0x4, +0x2b,0x5,0x78,0x5,0x74,0x5,0x66,0x5,0x77,0x5,0x7e,0x5, +0x65,0x5,0x97,0x5,0x63,0x6,0x5c,0x7,0xde,0x7,0xca,0x7, +0x9d,0x7,0xa7,0x7,0xc3,0x7,0x13,0x8,0x92,0x8,0x99,0x8, +0xf9,0x7,0x35,0x7,0xba,0x6,0x80,0x6,0xd,0x6,0x5e,0x5, +0xec,0x4,0x91,0x4,0xf3,0x3,0x2c,0x3,0x84,0x2,0x52,0x2, +0xa0,0x2,0x5,0x3,0x16,0x3,0xbd,0x2,0x3f,0x2,0xb1,0x1, +0x20,0x1,0xfe,0x0,0x1e,0x1,0x2a,0x1,0x92,0x1,0x1d,0x2, +0x66,0x2,0xde,0x2,0x37,0x3,0xf8,0x2,0xdc,0x2,0x53,0x3, +0x10,0x4,0xd5,0x4,0x6d,0x5,0xcd,0x5,0x1a,0x6,0xa4,0x6, +0x6a,0x7,0x99,0x7,0xed,0x6,0x26,0x6,0x84,0x5,0xc0,0x4, +0x1a,0x4,0xfa,0x3,0x2c,0x4,0x43,0x4,0x5d,0x4,0xc1,0x4, +0x42,0x5,0xbf,0x5,0x4f,0x6,0xbf,0x6,0xaf,0x6,0x36,0x6, +0xc5,0x5,0x3e,0x5,0x26,0x4,0x96,0x2,0xf1,0x0,0x78,0xff, +0x87,0xfe,0x48,0xfe,0x87,0xfe,0x12,0xff,0xd1,0xff,0xc4,0x0, +0xc6,0x1,0x77,0x2,0xb2,0x2,0xd5,0x2,0x2b,0x3,0x59,0x3, +0xfa,0x2,0x78,0x2,0x69,0x2,0xb9,0x2,0xe6,0x2,0xcf,0x2, +0xd3,0x2,0xef,0x2,0xe0,0x2,0xfd,0x2,0x8d,0x3,0x27,0x4, +0x43,0x4,0xad,0x3,0xdc,0x2,0x73,0x2,0x4c,0x2,0x12,0x2, +0x6,0x2,0x75,0x2,0xfe,0x2,0xf7,0x2,0x6c,0x2,0x9f,0x1, +0x7b,0x0,0x8c,0xff,0x67,0xff,0x9b,0xff,0xa7,0xff,0x84,0xff, +0x8d,0xff,0x9,0x0,0x71,0x0,0x85,0x0,0xc5,0x0,0x2f,0x1, +0x9f,0x1,0x27,0x2,0x66,0x2,0x45,0x2,0x4a,0x2,0x84,0x2, +0x7e,0x2,0x1e,0x2,0xe0,0x1,0xf7,0x1,0x0,0x2,0x15,0x2, +0x96,0x2,0x27,0x3,0x4c,0x3,0x4,0x3,0x89,0x2,0x21,0x2, +0xee,0x1,0x0,0x2,0x78,0x2,0x26,0x3,0x7d,0x3,0x35,0x3, +0xb9,0x2,0x89,0x2,0x83,0x2,0x5c,0x2,0x28,0x2,0xa,0x2, +0x34,0x2,0xac,0x2,0xdf,0x2,0x60,0x2,0x8c,0x1,0xd6,0x0, +0x47,0x0,0xe2,0xff,0xe6,0xff,0x3c,0x0,0x5e,0x0,0x75,0x0, +0xc,0x1,0xc7,0x1,0xfc,0x1,0x6e,0x1,0x33,0x0,0xb,0xff, +0xa2,0xfe,0xe0,0xfe,0x75,0xff,0xf1,0xff,0x19,0x0,0x49,0x0, +0x9a,0x0,0xc1,0x0,0x97,0x0,0x39,0x0,0xff,0xff,0xdb,0xff, +0xbd,0xff,0x2d,0x0,0xfa,0x0,0x4c,0x1,0x36,0x1,0xb,0x1, +0xad,0x0,0x21,0x0,0x8b,0xff,0xff,0xfe,0x82,0xfe,0x34,0xfe, +0x52,0xfe,0xce,0xfe,0x50,0xff,0x6e,0xff,0xde,0xfe,0xd3,0xfd, +0xb5,0xfc,0xdc,0xfb,0x93,0xfb,0xba,0xfb,0x3,0xfc,0x6f,0xfc, +0x1e,0xfd,0x4,0xfe,0x9f,0xfe,0xcc,0xfe,0xe,0xff,0xff,0xfe, +0xf3,0xfd,0xac,0xfc,0x21,0xfc,0x3d,0xfc,0x81,0xfc,0xae,0xfc, +0xe1,0xfc,0x3b,0xfd,0xc4,0xfd,0x45,0xfe,0x3d,0xfe,0xca,0xfd, +0x8a,0xfd,0x73,0xfd,0x4a,0xfd,0x29,0xfd,0x26,0xfd,0x6b,0xfd, +0xdd,0xfd,0x9,0xfe,0xe8,0xfd,0xe5,0xfd,0x14,0xfe,0x38,0xfe, +0x56,0xfe,0x6c,0xfe,0x3e,0xfe,0x23,0xfe,0x93,0xfe,0x2f,0xff, +0x8a,0xff,0xa0,0xff,0x75,0xff,0x3d,0xff,0x70,0xff,0x3e,0x0, +0xdd,0x0,0xa5,0x0,0x70,0x0,0xab,0x0,0x89,0x0,0x3c,0x0, +0x89,0x0,0x3c,0x1,0xb2,0x1,0x8f,0x1,0x27,0x1,0x27,0x1, +0xa1,0x1,0x4c,0x2,0xa8,0x2,0x69,0x2,0x10,0x2,0xea,0x1, +0xae,0x1,0x82,0x1,0xca,0x1,0x7d,0x2,0x45,0x3,0xd9,0x3, +0x29,0x4,0x25,0x4,0xc8,0x3,0x19,0x3,0x30,0x2,0x73,0x1, +0x2d,0x1,0x2c,0x1,0x31,0x1,0x19,0x1,0xee,0x0,0xe7,0x0, +0x7,0x1,0x33,0x1,0x3e,0x1,0x28,0x1,0x73,0x1,0x3b,0x2, +0xee,0x2,0x38,0x3,0x1b,0x3,0xd5,0x2,0x9f,0x2,0x57,0x2, +0xf1,0x1,0x7d,0x1,0xe4,0x0,0x2d,0x0,0x57,0xff,0x72,0xfe, +0xe8,0xfd,0xe2,0xfd,0x34,0xfe,0x83,0xfe,0x62,0xfe,0xe,0xfe, +0x1b,0xfe,0x4f,0xfe,0x29,0xfe,0xd2,0xfd,0x6e,0xfd,0xc1,0xfc, +0xe9,0xfb,0x68,0xfb,0x78,0xfb,0xf6,0xfb,0xb1,0xfc,0x66,0xfd, +0xd1,0xfd,0xd2,0xfd,0x75,0xfd,0xd3,0xfc,0x1a,0xfc,0x9c,0xfb, +0x66,0xfb,0x4c,0xfb,0x56,0xfb,0x48,0xfb,0xcd,0xfa,0x51,0xfa, +0x43,0xfa,0x75,0xfa,0xce,0xfa,0x3b,0xfb,0x6d,0xfb,0x63,0xfb, +0x34,0xfb,0xc5,0xfa,0x2f,0xfa,0xa1,0xf9,0x20,0xf9,0xc0,0xf8, +0x7c,0xf8,0x42,0xf8,0x4b,0xf8,0xc0,0xf8,0x85,0xf9,0x7f,0xfa, +0x6b,0xfb,0x13,0xfc,0x8f,0xfc,0xa2,0xfc,0x8,0xfc,0x21,0xfb, +0x59,0xfa,0xef,0xf9,0xa,0xfa,0x84,0xfa,0x19,0xfb,0x7c,0xfb, +0x79,0xfb,0x45,0xfb,0xef,0xfa,0x81,0xfa,0x64,0xfa,0x97,0xfa, +0xce,0xfa,0x35,0xfb,0xc4,0xfb,0x11,0xfc,0x7,0xfc,0xdf,0xfb, +0xdb,0xfb,0x4,0xfc,0x44,0xfc,0xc7,0xfc,0x80,0xfd,0xce,0xfd, +0x63,0xfd,0xb5,0xfc,0x4c,0xfc,0x26,0xfc,0x5,0xfc,0xfb,0xfb, +0x13,0xfc,0x12,0xfc,0xf1,0xfb,0xde,0xfb,0x1b,0xfc,0xdc,0xfc, +0xf8,0xfd,0x22,0xff,0xf8,0xff,0x17,0x0,0xbe,0xff,0x7b,0xff, +0x67,0xff,0x59,0xff,0x17,0xff,0xd1,0xfe,0x2d,0xff,0x20,0x0, +0x10,0x1,0xd0,0x1,0x72,0x2,0xe3,0x2,0xef,0x2,0x92,0x2, +0x2b,0x2,0xd6,0x1,0x61,0x1,0xcb,0x0,0x2b,0x0,0xcb,0xff, +0xe4,0xff,0x45,0x0,0xe6,0x0,0xd8,0x1,0xcf,0x2,0x8c,0x3, +0xfc,0x3,0x2f,0x4,0x6a,0x4,0xd3,0x4,0x6c,0x5,0x13,0x6, +0x76,0x6,0x5e,0x6,0xc5,0x5,0x1,0x5,0x8e,0x4,0x40,0x4, +0xdd,0x3,0xc7,0x3,0xd2,0x3,0x73,0x3,0x9,0x3,0x42,0x3, +0xdd,0x3,0x33,0x4,0x39,0x4,0x56,0x4,0x98,0x4,0xc1,0x4, +0x9d,0x4,0x0,0x4,0xf2,0x2,0x7,0x2,0xb7,0x1,0x81,0x1, +0xca,0x0,0xfc,0xff,0xd3,0xff,0x59,0x0,0x5,0x1,0x78,0x1, +0xd2,0x1,0x2d,0x2,0x77,0x2,0xc5,0x2,0xee,0x2,0xb4,0x2, +0x3f,0x2,0xa9,0x1,0xf1,0x0,0x43,0x0,0xb3,0xff,0x40,0xff, +0xfc,0xfe,0x3,0xff,0x41,0xff,0x4c,0xff,0xd,0xff,0xef,0xfe, +0xfb,0xfe,0xff,0xfe,0xfe,0xfe,0xe2,0xfe,0x75,0xfe,0xc9,0xfd, +0x2d,0xfd,0xc3,0xfc,0x7e,0xfc,0x70,0xfc,0x96,0xfc,0xc1,0xfc, +0xe4,0xfc,0xf7,0xfc,0x7,0xfd,0x3b,0xfd,0x5c,0xfd,0x2d,0xfd, +0xe5,0xfc,0xb4,0xfc,0x7f,0xfc,0x4b,0xfc,0x53,0xfc,0x8d,0xfc, +0xaf,0xfc,0xb5,0xfc,0xad,0xfc,0x86,0xfc,0x97,0xfc,0x11,0xfd, +0x55,0xfd,0x7,0xfd,0xa0,0xfc,0x6a,0xfc,0x5d,0xfc,0xb2,0xfc, +0x79,0xfd,0x5b,0xfe,0x17,0xff,0x73,0xff,0x3d,0xff,0xb8,0xfe, +0x3b,0xfe,0xc5,0xfd,0x4e,0xfd,0x12,0xfd,0x65,0xfd,0x38,0xfe, +0x27,0xff,0xee,0xff,0x53,0x0,0x45,0x0,0xf3,0xff,0x7f,0xff, +0x5,0xff,0xa2,0xfe,0x54,0xfe,0x7b,0xfe,0x46,0xff,0x27,0x0, +0xae,0x0,0xd6,0x0,0xae,0x0,0x5a,0x0,0xff,0xff,0xc1,0xff, +0x96,0xff,0x70,0xff,0xa9,0xff,0x58,0x0,0x2,0x1,0x83,0x1, +0xc,0x2,0x72,0x2,0x67,0x2,0xf6,0x1,0x5b,0x1,0xa0,0x0, +0xdc,0xff,0x5c,0xff,0x4d,0xff,0xbd,0xff,0x93,0x0,0xa1,0x1, +0xae,0x2,0x4d,0x3,0x6e,0x3,0x5a,0x3,0x5,0x3,0xa9,0x2, +0xd4,0x2,0x52,0x3,0xaa,0x3,0xc2,0x3,0xc6,0x3,0xed,0x3, +0x1f,0x4,0x51,0x4,0x7d,0x4,0x58,0x4,0x5,0x4,0xea,0x3, +0x2,0x4,0x50,0x4,0xcd,0x4,0x26,0x5,0x46,0x5,0x58,0x5, +0x63,0x5,0x40,0x5,0x6,0x5,0x17,0x5,0x63,0x5,0x9e,0x5, +0xd2,0x5,0x6,0x6,0x27,0x6,0x28,0x6,0xef,0x5,0xaf,0x5, +0x8f,0x5,0x4d,0x5,0xdd,0x4,0x8c,0x4,0x79,0x4,0x6a,0x4, +0x35,0x4,0xff,0x3,0xc0,0x3,0x5a,0x3,0x8,0x3,0xca,0x2, +0x79,0x2,0x4d,0x2,0x54,0x2,0x3a,0x2,0xed,0x1,0xc6,0x1, +0xe3,0x1,0xf2,0x1,0xed,0x1,0xff,0x1,0xfe,0x1,0xf5,0x1, +0x31,0x2,0xb0,0x2,0x50,0x3,0xdf,0x3,0xda,0x3,0x14,0x3, +0xe,0x2,0x2a,0x1,0x45,0x0,0x84,0xff,0x34,0xff,0x4,0xff, +0xb8,0xfe,0x85,0xfe,0x6e,0xfe,0x57,0xfe,0x3d,0xfe,0x34,0xfe, +0x61,0xfe,0x87,0xfe,0x5e,0xfe,0x9,0xfe,0x91,0xfd,0x9,0xfd, +0xd5,0xfc,0x15,0xfd,0x6c,0xfd,0x86,0xfd,0x68,0xfd,0x37,0xfd, +0x7,0xfd,0xe9,0xfc,0xee,0xfc,0xd,0xfd,0x24,0xfd,0xb,0xfd, +0xf6,0xfc,0x1c,0xfd,0x26,0xfd,0xe9,0xfc,0xba,0xfc,0xcd,0xfc, +0x1,0xfd,0xa,0xfd,0xc4,0xfc,0x68,0xfc,0x41,0xfc,0x83,0xfc, +0xd,0xfd,0x7d,0xfd,0xc6,0xfd,0x1d,0xfe,0x7c,0xfe,0xc3,0xfe, +0xbc,0xfe,0x4a,0xfe,0xb3,0xfd,0x61,0xfd,0x82,0xfd,0xed,0xfd, +0x3a,0xfe,0xe,0xfe,0x8d,0xfd,0x41,0xfd,0x5f,0xfd,0xac,0xfd, +0x6,0xfe,0x55,0xfe,0x78,0xfe,0x7e,0xfe,0x89,0xfe,0xa1,0xfe, +0x9c,0xfe,0x35,0xfe,0x75,0xfd,0x97,0xfc,0xd8,0xfb,0xb4,0xfb, +0x5d,0xfc,0x1f,0xfd,0x5f,0xfd,0x7d,0xfd,0xf6,0xfd,0x90,0xfe, +0xe3,0xfe,0x4,0xff,0x2f,0xff,0x66,0xff,0x85,0xff,0xa3,0xff, +0xeb,0xff,0x46,0x0,0xa4,0x0,0x1d,0x1,0x7f,0x1,0x87,0x1, +0x6c,0x1,0x6a,0x1,0x61,0x1,0x34,0x1,0xfb,0x0,0xcd,0x0, +0xbb,0x0,0xd6,0x0,0xec,0x0,0xaa,0x0,0x25,0x0,0xb0,0xff, +0x68,0xff,0x65,0xff,0xb3,0xff,0x4,0x0,0xf7,0xff,0xa0,0xff, +0x3e,0xff,0xd8,0xfe,0x98,0xfe,0xb8,0xfe,0x3,0xff,0x14,0xff, +0xed,0xfe,0xf4,0xfe,0x4a,0xff,0xa2,0xff,0xe7,0xff,0x2e,0x0, +0x51,0x0,0x59,0x0,0x76,0x0,0x84,0x0,0x3e,0x0,0xba,0xff, +0x73,0xff,0xc3,0xff,0x5d,0x0,0xc7,0x0,0xe6,0x0,0xc8,0x0, +0x7f,0x0,0x33,0x0,0x6,0x0,0xe3,0xff,0xa6,0xff,0x8d,0xff, +0xf3,0xff,0x98,0x0,0xf5,0x0,0x8,0x1,0x27,0x1,0x43,0x1, +0x26,0x1,0xdb,0x0,0x55,0x0,0x9b,0xff,0x2b,0xff,0x49,0xff, +0xca,0xff,0x98,0x0,0x8b,0x1,0x64,0x2,0x10,0x3,0x92,0x3, +0xde,0x3,0xd8,0x3,0x90,0x3,0x2b,0x3,0xb1,0x2,0x5d,0x2, +0x5c,0x2,0x74,0x2,0x56,0x2,0xd7,0x1,0x28,0x1,0xc3,0x0, +0xd7,0x0,0x4e,0x1,0xdd,0x1,0x0,0x2,0xc9,0x1,0xac,0x1, +0xb0,0x1,0xc8,0x1,0xf3,0x1,0xc,0x2,0x1e,0x2,0x2b,0x2, +0xe,0x2,0xc3,0x1,0x77,0x1,0x4c,0x1,0x20,0x1,0xc3,0x0, +0x6b,0x0,0x3f,0x0,0xe,0x0,0xca,0xff,0x8d,0xff,0x5f,0xff, +0x46,0xff,0x3c,0xff,0x43,0xff,0x5f,0xff,0x7d,0xff,0x70,0xff, +0x25,0xff,0xc9,0xfe,0x82,0xfe,0x59,0xfe,0x4a,0xfe,0x26,0xfe, +0xc7,0xfd,0x70,0xfd,0x8b,0xfd,0x36,0xfe,0x1b,0xff,0xbd,0xff, +0x11,0x0,0x59,0x0,0x96,0x0,0xa6,0x0,0xa8,0x0,0xb4,0x0, +0xac,0x0,0x83,0x0,0x65,0x0,0x6e,0x0,0xba,0x0,0x49,0x1, +0xdd,0x1,0x4f,0x2,0x9c,0x2,0xa9,0x2,0xa4,0x2,0xda,0x2, +0x7,0x3,0xe6,0x2,0xb3,0x2,0x81,0x2,0x1f,0x2,0xaa,0x1, +0x6a,0x1,0x73,0x1,0xbc,0x1,0x2c,0x2,0x7a,0x2,0x82,0x2, +0x8e,0x2,0xc2,0x2,0xd9,0x2,0xab,0x2,0x43,0x2,0xa9,0x1, +0x26,0x1,0xd,0x1,0x31,0x1,0x52,0x1,0x8c,0x1,0xe2,0x1, +0x1b,0x2,0x14,0x2,0xc4,0x1,0x3b,0x1,0xb1,0x0,0x48,0x0, +0x13,0x0,0x1c,0x0,0x46,0x0,0x6a,0x0,0x88,0x0,0x80,0x0, +0x28,0x0,0xb9,0xff,0x96,0xff,0xc1,0xff,0xe2,0xff,0xba,0xff, +0x54,0xff,0xd2,0xfe,0x6b,0xfe,0x55,0xfe,0x81,0xfe,0xbb,0xfe, +0xe8,0xfe,0xf1,0xfe,0xd3,0xfe,0xa9,0xfe,0x93,0xfe,0x96,0xfe, +0xb2,0xfe,0xef,0xfe,0x30,0xff,0x38,0xff,0x11,0xff,0xf1,0xfe, +0xdb,0xfe,0xc3,0xfe,0xa3,0xfe,0x6a,0xfe,0x2b,0xfe,0x2,0xfe, +0xe9,0xfd,0xd2,0xfd,0xb0,0xfd,0x78,0xfd,0x2e,0xfd,0x2,0xfd, +0x19,0xfd,0x56,0xfd,0x9d,0xfd,0xfd,0xfd,0x63,0xfe,0xbe,0xfe, +0x35,0xff,0xd1,0xff,0x6b,0x0,0xdd,0x0,0xf1,0x0,0x8a,0x0, +0xe3,0xff,0x5f,0xff,0x3c,0xff,0x74,0xff,0xd5,0xff,0x39,0x0, +0x72,0x0,0x55,0x0,0xf0,0xff,0x78,0xff,0x16,0xff,0xe4,0xfe, +0xe8,0xfe,0x1a,0xff,0x65,0xff,0xac,0xff,0xec,0xff,0x35,0x0, +0x7f,0x0,0xc3,0x0,0xff,0x0,0x2f,0x1,0x69,0x1,0x9b,0x1, +0x73,0x1,0x4,0x1,0xb2,0x0,0x8d,0x0,0x6a,0x0,0x47,0x0, +0x38,0x0,0x49,0x0,0x7d,0x0,0xa9,0x0,0x96,0x0,0x51,0x0, +0x1c,0x0,0x1c,0x0,0x52,0x0,0xb3,0x0,0x13,0x1,0x41,0x1, +0x41,0x1,0x28,0x1,0xed,0x0,0xad,0x0,0xad,0x0,0xd4,0x0, +0xd7,0x0,0xc2,0x0,0xcf,0x0,0xf1,0x0,0xf3,0x0,0xe7,0x0, +0x26,0x1,0x95,0x1,0xb5,0x1,0x79,0x1,0x38,0x1,0x37,0x1, +0x79,0x1,0xc5,0x1,0xeb,0x1,0xeb,0x1,0xc7,0x1,0x9a,0x1, +0x8b,0x1,0x74,0x1,0x39,0x1,0x17,0x1,0x35,0x1,0x61,0x1, +0x71,0x1,0x5f,0x1,0x15,0x1,0x98,0x0,0x34,0x0,0x17,0x0, +0x16,0x0,0x14,0x0,0x11,0x0,0xfd,0xff,0xc8,0xff,0x7e,0xff, +0x49,0xff,0x3f,0xff,0x32,0xff,0xf5,0xfe,0x9a,0xfe,0x63,0xfe, +0x85,0xfe,0xdf,0xfe,0x11,0xff,0xeb,0xfe,0xa9,0xfe,0x9e,0xfe, +0xdf,0xfe,0x40,0xff,0x7a,0xff,0x5a,0xff,0xf1,0xfe,0x6c,0xfe, +0xd3,0xfd,0x46,0xfd,0x24,0xfd,0x7a,0xfd,0xc9,0xfd,0xc0,0xfd, +0xa1,0xfd,0x92,0xfd,0x70,0xfd,0x3c,0xfd,0x3,0xfd,0xc3,0xfc, +0x87,0xfc,0x56,0xfc,0x37,0xfc,0x4b,0xfc,0x9d,0xfc,0x1a,0xfd, +0xa0,0xfd,0xa,0xfe,0x38,0xfe,0x26,0xfe,0xc,0xfe,0x18,0xfe, +0x25,0xfe,0xa,0xfe,0xc6,0xfd,0x64,0xfd,0x18,0xfd,0x11,0xfd, +0x23,0xfd,0x2f,0xfd,0x62,0xfd,0xd4,0xfd,0x54,0xfe,0xb6,0xfe, +0xed,0xfe,0xf3,0xfe,0xde,0xfe,0xdd,0xfe,0xf6,0xfe,0xc,0xff, +0xfd,0xfe,0xbf,0xfe,0x7d,0xfe,0x61,0xfe,0x5b,0xfe,0x6e,0xfe, +0x9d,0xfe,0xb1,0xfe,0x87,0xfe,0x4c,0xfe,0x2f,0xfe,0x2e,0xfe, +0x41,0xfe,0x73,0xfe,0xd3,0xfe,0x5b,0xff,0xe9,0xff,0x5d,0x0, +0xa7,0x0,0x9e,0x0,0x32,0x0,0xaf,0xff,0x6e,0xff,0x79,0xff, +0xac,0xff,0xe8,0xff,0x1a,0x0,0x33,0x0,0x39,0x0,0x45,0x0, +0x37,0x0,0xe7,0xff,0x83,0xff,0x6a,0xff,0xb2,0xff,0x3,0x0, +0x15,0x0,0x4,0x0,0xef,0xff,0xd8,0xff,0xcd,0xff,0xbd,0xff, +0x8d,0xff,0x5a,0xff,0x49,0xff,0x67,0xff,0x9e,0xff,0xc6,0xff, +0xd0,0xff,0xd5,0xff,0xf6,0xff,0x3a,0x0,0x8d,0x0,0xe5,0x0, +0x27,0x1,0x2f,0x1,0x15,0x1,0xf9,0x0,0xdc,0x0,0xee,0x0, +0x4b,0x1,0xab,0x1,0xae,0x1,0x4a,0x1,0xd1,0x0,0x96,0x0, +0xa9,0x0,0xed,0x0,0x33,0x1,0x66,0x1,0x95,0x1,0xd5,0x1, +0x32,0x2,0x94,0x2,0xcf,0x2,0xd1,0x2,0x9d,0x2,0x48,0x2, +0x11,0x2,0x28,0x2,0x68,0x2,0x7e,0x2,0x6f,0x2,0x65,0x2, +0x34,0x2,0xdc,0x1,0xb8,0x1,0xd4,0x1,0xeb,0x1,0xe0,0x1, +0xd2,0x1,0xdc,0x1,0xe7,0x1,0xe8,0x1,0x8,0x2,0x4e,0x2, +0x7d,0x2,0x84,0x2,0x96,0x2,0xb4,0x2,0xa5,0x2,0x89,0x2, +0xa3,0x2,0xc0,0x2,0x7f,0x2,0xe8,0x1,0x46,0x1,0xc0,0x0, +0x58,0x0,0x24,0x0,0x26,0x0,0x26,0x0,0x1c,0x0,0x31,0x0, +0x67,0x0,0xb1,0x0,0x10,0x1,0x7e,0x1,0xde,0x1,0xf8,0x1, +0xbf,0x1,0x58,0x1,0xd8,0x0,0x64,0x0,0x2e,0x0,0x31,0x0, +0x3a,0x0,0x2b,0x0,0x21,0x0,0x33,0x0,0x52,0x0,0x6e,0x0, +0x7a,0x0,0x64,0x0,0x2d,0x0,0xf3,0xff,0xd7,0xff,0xd7,0xff, +0xda,0xff,0xd0,0xff,0xad,0xff,0x8a,0xff,0x8e,0xff,0x9c,0xff, +0xab,0xff,0xea,0xff,0x4d,0x0,0x99,0x0,0xb6,0x0,0x9c,0x0, +0x51,0x0,0x2,0x0,0xd3,0xff,0xa7,0xff,0x50,0xff,0xe3,0xfe, +0x85,0xfe,0x41,0xfe,0x14,0xfe,0xff,0xfd,0x11,0xfe,0x55,0xfe, +0xac,0xfe,0xdd,0xfe,0xd8,0xfe,0xc4,0xfe,0xb1,0xfe,0x93,0xfe, +0xab,0xfe,0x1a,0xff,0x80,0xff,0x97,0xff,0x6b,0xff,0x21,0xff, +0xf7,0xfe,0xff,0xfe,0xb,0xff,0xf0,0xfe,0x9e,0xfe,0x38,0xfe, +0xf9,0xfd,0xec,0xfd,0xe8,0xfd,0xd1,0xfd,0xce,0xfd,0x9,0xfe, +0x60,0xfe,0xa9,0xfe,0xd9,0xfe,0xdf,0xfe,0xbe,0xfe,0x9d,0xfe, +0x98,0xfe,0x8d,0xfe,0x66,0xfe,0x60,0xfe,0x9c,0xfe,0xf5,0xfe, +0x47,0xff,0x67,0xff,0x42,0xff,0x0,0xff,0xba,0xfe,0x87,0xfe, +0x87,0xfe,0xa7,0xfe,0xae,0xfe,0x79,0xfe,0x2f,0xfe,0xc,0xfe, +0x5,0xfe,0xfe,0xfd,0xfe,0xfd,0x18,0xfe,0x48,0xfe,0x75,0xfe, +0xa4,0xfe,0xed,0xfe,0x41,0xff,0x80,0xff,0x9f,0xff,0xa9,0xff, +0xad,0xff,0xa2,0xff,0x8c,0xff,0x97,0xff,0xc8,0xff,0xfd,0xff, +0x1d,0x0,0x29,0x0,0x2a,0x0,0xa,0x0,0xdd,0xff,0xc8,0xff, +0xa8,0xff,0x6a,0xff,0x51,0xff,0x8a,0xff,0xe7,0xff,0xc,0x0, +0xf3,0xff,0xe0,0xff,0xf1,0xff,0x12,0x0,0x1a,0x0,0xf9,0xff, +0xcd,0xff,0xb3,0xff,0xc0,0xff,0xe2,0xff,0xc9,0xff,0x67,0xff, +0x2,0xff,0xd9,0xfe,0xf,0xff,0x6a,0xff,0xa0,0xff,0xba,0xff, +0xc1,0xff,0xad,0xff,0x71,0xff,0xf8,0xfe,0x7c,0xfe,0x41,0xfe, +0x30,0xfe,0x21,0xfe,0x1b,0xfe,0x37,0xfe,0x7d,0xfe,0xd5,0xfe, +0x38,0xff,0x90,0xff,0xba,0xff,0xbc,0xff,0xa5,0xff,0x98,0xff, +0xc6,0xff,0x1e,0x0,0x79,0x0,0xd0,0x0,0x2a,0x1,0x7f,0x1, +0xa9,0x1,0x92,0x1,0x59,0x1,0x1e,0x1,0xf4,0x0,0xdc,0x0, +0xd9,0x0,0xda,0x0,0xbe,0x0,0x9e,0x0,0x9f,0x0,0xc4,0x0, +0x1d,0x1,0x93,0x1,0xe4,0x1,0x11,0x2,0x30,0x2,0x50,0x2, +0x74,0x2,0x79,0x2,0x56,0x2,0x2c,0x2,0x9,0x2,0xed,0x1, +0xd2,0x1,0xcd,0x1,0xf0,0x1,0xe,0x2,0x27,0x2,0x4c,0x2, +0x54,0x2,0x50,0x2,0x6b,0x2,0x8e,0x2,0xbb,0x2,0xfb,0x2, +0x34,0x3,0x5e,0x3,0x85,0x3,0xa4,0x3,0x97,0x3,0x59,0x3, +0x1b,0x3,0xe0,0x2,0x90,0x2,0x2e,0x2,0xc3,0x1,0x6f,0x1, +0x4b,0x1,0x4c,0x1,0x5b,0x1,0x71,0x1,0xa3,0x1,0xee,0x1, +0x24,0x2,0x35,0x2,0x1d,0x2,0xef,0x1,0xe8,0x1,0x1c,0x2, +0x58,0x2,0x65,0x2,0x2a,0x2,0xc8,0x1,0x6c,0x1,0x35,0x1, +0x3d,0x1,0x6c,0x1,0xa5,0x1,0xdf,0x1,0x3,0x2,0x6,0x2, +0xec,0x1,0xc9,0x1,0xc8,0x1,0xe0,0x1,0xfa,0x1,0xf,0x2, +0x10,0x2,0x15,0x2,0x33,0x2,0x3f,0x2,0x2c,0x2,0xe,0x2, +0xe6,0x1,0xc1,0x1,0xa5,0x1,0x87,0x1,0x59,0x1,0x2a,0x1, +0x2b,0x1,0x63,0x1,0xa8,0x1,0xd9,0x1,0xf0,0x1,0xf6,0x1, +0xe3,0x1,0xb9,0x1,0x92,0x1,0x6a,0x1,0x32,0x1,0xf3,0x0, +0xa9,0x0,0x60,0x0,0x38,0x0,0x2e,0x0,0x3d,0x0,0x62,0x0, +0x97,0x0,0xc6,0x0,0xd9,0x0,0xfe,0x0,0x48,0x1,0x7c,0x1, +0x93,0x1,0x94,0x1,0x77,0x1,0x6a,0x1,0x5a,0x1,0x6,0x1, +0x85,0x0,0x11,0x0,0xc6,0xff,0xb0,0xff,0xc1,0xff,0xde,0xff, +0xf2,0xff,0xfd,0xff,0xc,0x0,0x19,0x0,0x25,0x0,0x2e,0x0, +0x36,0x0,0x61,0x0,0xa3,0x0,0x9f,0x0,0x41,0x0,0xdb,0xff, +0xa4,0xff,0x96,0xff,0x9b,0xff,0xa3,0xff,0xa5,0xff,0x96,0xff, +0x79,0xff,0x51,0xff,0x2a,0xff,0x28,0xff,0x5e,0xff,0xa6,0xff, +0xbf,0xff,0x9b,0xff,0x5d,0xff,0x33,0xff,0x42,0xff,0x7a,0xff, +0x99,0xff,0x75,0xff,0x1e,0xff,0xb6,0xfe,0x55,0xfe,0x9,0xfe, +0xdb,0xfd,0xca,0xfd,0xde,0xfd,0x15,0xfe,0x4e,0xfe,0x6d,0xfe, +0x77,0xfe,0x6c,0xfe,0x51,0xfe,0x3f,0xfe,0x49,0xfe,0x6a,0xfe, +0x9e,0xfe,0xcf,0xfe,0xe0,0xfe,0xd7,0xfe,0xde,0xfe,0xf7,0xfe, +0xef,0xfe,0xab,0xfe,0x56,0xfe,0x37,0xfe,0x67,0xfe,0xcb,0xfe, +0xf,0xff,0x2,0xff,0xc9,0xfe,0x8e,0xfe,0x52,0xfe,0x26,0xfe, +0x17,0xfe,0x1e,0xfe,0x30,0xfe,0x42,0xfe,0x61,0xfe,0x8b,0xfe, +0xa2,0xfe,0xb1,0xfe,0xbe,0xfe,0xb6,0xfe,0x99,0xfe,0x6a,0xfe, +0x4d,0xfe,0x66,0xfe,0x8f,0xfe,0x91,0xfe,0x5c,0xfe,0xd,0xfe, +0xe2,0xfd,0xf0,0xfd,0x26,0xfe,0x81,0xfe,0xf1,0xfe,0x54,0xff, +0x8c,0xff,0xa7,0xff,0xd1,0xff,0xf8,0xff,0x6,0x0,0xe,0x0, +0x14,0x0,0x1c,0x0,0x2a,0x0,0x32,0x0,0x2a,0x0,0xfd,0xff, +0xbc,0xff,0x9c,0xff,0x8c,0xff,0x7f,0xff,0x8c,0xff,0x93,0xff, +0x67,0xff,0x7,0xff,0x95,0xfe,0x49,0xfe,0x2e,0xfe,0x2a,0xfe, +0x11,0xfe,0xba,0xfd,0x47,0xfd,0xf9,0xfc,0xd9,0xfc,0xf0,0xfc, +0x31,0xfd,0x5a,0xfd,0x3e,0xfd,0x2,0xfd,0xf6,0xfc,0x39,0xfd, +0x98,0xfd,0xc8,0xfd,0xb9,0xfd,0x95,0xfd,0x72,0xfd,0x40,0xfd, +0x20,0xfd,0x34,0xfd,0x4f,0xfd,0x44,0xfd,0x1e,0xfd,0xff,0xfc, +0xf9,0xfc,0xf8,0xfc,0xf6,0xfc,0x10,0xfd,0x3b,0xfd,0x4c,0xfd, +0x26,0xfd,0xd2,0xfc,0x74,0xfc,0x22,0xfc,0xe1,0xfb,0xba,0xfb, +0x9e,0xfb,0x75,0xfb,0x57,0xfb,0x81,0xfb,0xe6,0xfb,0x43,0xfc, +0x91,0xfc,0xe5,0xfc,0x2c,0xfd,0x67,0xfd,0xa9,0xfd,0xe5,0xfd, +0xb,0xfe,0x38,0xfe,0x8d,0xfe,0xf4,0xfe,0x3a,0xff,0x5a,0xff, +0x6e,0xff,0x8a,0xff,0xca,0xff,0x30,0x0,0x8a,0x0,0xac,0x0, +0xa4,0x0,0x96,0x0,0x90,0x0,0x83,0x0,0x5d,0x0,0x1e,0x0, +0xe3,0xff,0xdd,0xff,0x2f,0x0,0xae,0x0,0x4,0x1,0x2b,0x1, +0x3e,0x1,0x40,0x1,0x3e,0x1,0x3f,0x1,0x28,0x1,0xef,0x0, +0xae,0x0,0x95,0x0,0xb4,0x0,0xf0,0x0,0x3b,0x1,0x91,0x1, +0xcc,0x1,0xcb,0x1,0xa4,0x1,0x86,0x1,0x86,0x1,0x94,0x1, +0xa2,0x1,0xac,0x1,0xb8,0x1,0xd4,0x1,0xa,0x2,0x50,0x2, +0x8f,0x2,0xc6,0x2,0xef,0x2,0xee,0x2,0xd8,0x2,0xdb,0x2, +0xf3,0x2,0x7,0x3,0xfb,0x2,0xc2,0x2,0x96,0x2,0xac,0x2, +0xd8,0x2,0xee,0x2,0xff,0x2,0x16,0x3,0x1e,0x3,0x17,0x3, +0x1b,0x3,0x3e,0x3,0x8c,0x3,0xe0,0x3,0xee,0x3,0xac,0x3, +0x5c,0x3,0x2c,0x3,0x2e,0x3,0x55,0x3,0x76,0x3,0x7b,0x3, +0x78,0x3,0x77,0x3,0x6e,0x3,0x5b,0x3,0x3c,0x3,0x8,0x3, +0xc0,0x2,0x69,0x2,0x5,0x2,0xa1,0x1,0x54,0x1,0x3d,0x1, +0x67,0x1,0xbf,0x1,0x25,0x2,0x71,0x2,0x86,0x2,0x4d,0x2, +0xc9,0x1,0x3a,0x1,0xe1,0x0,0xc4,0x0,0xd8,0x0,0xff,0x0, +0xf,0x1,0xfc,0x0,0xc2,0x0,0x87,0x0,0x7b,0x0,0x92,0x0, +0xae,0x0,0xb2,0x0,0x73,0x0,0xb,0x0,0xb5,0xff,0x84,0xff, +0x86,0xff,0xb4,0xff,0xeb,0xff,0xa,0x0,0xee,0xff,0x97,0xff, +0x28,0xff,0xc9,0xfe,0x95,0xfe,0x7a,0xfe,0x61,0xfe,0x4a,0xfe, +0x38,0xfe,0x35,0xfe,0x49,0xfe,0x70,0xfe,0x9c,0xfe,0xd1,0xfe, +0x1b,0xff,0x70,0xff,0xb3,0xff,0xd2,0xff,0xd1,0xff,0xc0,0xff, +0xa7,0xff,0x79,0xff,0x48,0xff,0x31,0xff,0x23,0xff,0x6,0xff, +0xdd,0xfe,0xb5,0xfe,0x94,0xfe,0x92,0xfe,0xdb,0xfe,0x55,0xff, +0xad,0xff,0xbd,0xff,0x8e,0xff,0x30,0xff,0xc7,0xfe,0x8d,0xfe, +0xb1,0xfe,0x12,0xff,0x62,0xff,0x8a,0xff,0x96,0xff,0x94,0xff, +0x9e,0xff,0xc3,0xff,0xfc,0xff,0x33,0x0,0x53,0x0,0x54,0x0, +0x2f,0x0,0xea,0xff,0xa0,0xff,0x6b,0xff,0x63,0xff,0x86,0xff, +0xa3,0xff,0xa2,0xff,0x86,0xff,0x5b,0xff,0x3c,0xff,0x35,0xff, +0x45,0xff,0x62,0xff,0x6f,0xff,0x60,0xff,0x36,0xff,0x5,0xff, +0xfb,0xfe,0x20,0xff,0x5c,0xff,0x9f,0xff,0xb9,0xff,0x8d,0xff, +0x37,0xff,0xde,0xfe,0x9e,0xfe,0x80,0xfe,0x7e,0xfe,0x84,0xfe, +0x61,0xfe,0x7,0xfe,0xbf,0xfd,0xbc,0xfd,0xe3,0xfd,0xf,0xfe, +0x40,0xfe,0x72,0xfe,0x88,0xfe,0x70,0xfe,0x34,0xfe,0xe9,0xfd, +0xb2,0xfd,0xa9,0xfd,0xbf,0xfd,0xd7,0xfd,0xed,0xfd,0x16,0xfe, +0x4f,0xfe,0x81,0xfe,0xad,0xfe,0xda,0xfe,0xf9,0xfe,0xfe,0xfe, +0xeb,0xfe,0xcf,0xfe,0xac,0xfe,0x83,0xfe,0x67,0xfe,0x64,0xfe, +0x72,0xfe,0x96,0xfe,0xd4,0xfe,0x1a,0xff,0x56,0xff,0x95,0xff, +0xd5,0xff,0xff,0xff,0xa,0x0,0x5,0x0,0xf9,0xff,0xe8,0xff, +0xcc,0xff,0xa7,0xff,0x82,0xff,0x69,0xff,0x67,0xff,0x77,0xff, +0x7f,0xff,0x84,0xff,0x9b,0xff,0xa8,0xff,0x88,0xff,0x44,0xff, +0xfb,0xfe,0xba,0xfe,0x8a,0xfe,0x77,0xfe,0x7d,0xfe,0x90,0xfe, +0xa7,0xfe,0xc4,0xfe,0xf9,0xfe,0x49,0xff,0x8b,0xff,0x9d,0xff, +0x85,0xff,0x59,0xff,0x2e,0xff,0x14,0xff,0x1c,0xff,0x4f,0xff, +0x97,0xff,0xd8,0xff,0x9,0x0,0x25,0x0,0x2d,0x0,0x38,0x0, +0x4e,0x0,0x5a,0x0,0x52,0x0,0x34,0x0,0xf9,0xff,0xab,0xff, +0x74,0xff,0x79,0xff,0xba,0xff,0x9,0x0,0x35,0x0,0x30,0x0, +0x3,0x0,0xc9,0xff,0x9a,0xff,0x8a,0xff,0x97,0xff,0xb2,0xff, +0xc5,0xff,0xcf,0xff,0xd7,0xff,0xea,0xff,0x10,0x0,0x40,0x0, +0x79,0x0,0xbe,0x0,0xf9,0x0,0x13,0x1,0x8,0x1,0xe5,0x0, +0xb2,0x0,0x78,0x0,0x45,0x0,0x23,0x0,0xa,0x0,0xf5,0xff, +0xfe,0xff,0x2d,0x0,0x57,0x0,0x66,0x0,0x76,0x0,0x94,0x0, +0xb9,0x0,0xe6,0x0,0x19,0x1,0x47,0x1,0x68,0x1,0x77,0x1, +0x83,0x1,0x9e,0x1,0xc7,0x1,0xf9,0x1,0x1e,0x2,0xd,0x2, +0xcb,0x1,0x87,0x1,0x63,0x1,0x63,0x1,0x6e,0x1,0x74,0x1, +0x7d,0x1,0x8d,0x1,0xa1,0x1,0xc0,0x1,0xe1,0x1,0xed,0x1, +0xdf,0x1,0xb7,0x1,0x73,0x1,0x21,0x1,0xd3,0x0,0x9a,0x0, +0x88,0x0,0xae,0x0,0x2,0x1,0x59,0x1,0x92,0x1,0xab,0x1, +0xaf,0x1,0xa9,0x1,0xae,0x1,0xc5,0x1,0xdb,0x1,0xe6,0x1, +0xf8,0x1,0x1b,0x2,0x3a,0x2,0x51,0x2,0x6e,0x2,0x89,0x2, +0x83,0x2,0x4e,0x2,0x9,0x2,0xe0,0x1,0xe3,0x1,0x8,0x2, +0x2b,0x2,0x25,0x2,0xef,0x1,0x9a,0x1,0x3d,0x1,0x12,0x1, +0x3a,0x1,0x94,0x1,0xe5,0x1,0xff,0x1,0xde,0x1,0xa5,0x1, +0x6b,0x1,0x43,0x1,0x34,0x1,0x26,0x1,0x5,0x1,0xb9,0x0, +0x3a,0x0,0xc4,0xff,0x8e,0xff,0x90,0xff,0xb2,0xff,0xd2,0xff, +0xe2,0xff,0xeb,0xff,0xe3,0xff,0xc3,0xff,0xa3,0xff,0x89,0xff, +0x7c,0xff,0x7c,0xff,0x66,0xff,0x26,0xff,0xdb,0xfe,0xae,0xfe, +0xbb,0xfe,0x8,0xff,0x6d,0xff,0xae,0xff,0xb1,0xff,0x7a,0xff, +0x17,0xff,0xa5,0xfe,0x48,0xfe,0x7,0xfe,0xe7,0xfd,0xe2,0xfd, +0xde,0xfd,0xdf,0xfd,0xf1,0xfd,0xfe,0xfd,0xb,0xfe,0x35,0xfe, +0x76,0xfe,0xb6,0xfe,0xe4,0xfe,0xff,0xfe,0x15,0xff,0x23,0xff, +0x26,0xff,0x26,0xff,0x7,0xff,0xad,0xfe,0x3b,0xfe,0xf3,0xfd, +0xf9,0xfd,0x44,0xfe,0x9b,0xfe,0xca,0xfe,0xc2,0xfe,0xa2,0xfe, +0xaf,0xfe,0xb,0xff,0x96,0xff,0x18,0x0,0x65,0x0,0x70,0x0, +0x5a,0x0,0x54,0x0,0x77,0x0,0xc8,0x0,0x2d,0x1,0x5d,0x1, +0x32,0x1,0xe3,0x0,0xb6,0x0,0xcd,0x0,0x31,0x1,0xaf,0x1, +0x7,0x2,0x30,0x2,0x2c,0x2,0x6,0x2,0xe7,0x1,0xe2,0x1, +0xf6,0x1,0x19,0x2,0x29,0x2,0x28,0x2,0x30,0x2,0x2c,0x2, +0xd,0x2,0xfd,0x1,0x20,0x2,0x74,0x2,0xdc,0x2,0x30,0x3, +0x56,0x3,0x33,0x3,0xcb,0x2,0x69,0x2,0x58,0x2,0x8b,0x2, +0xb5,0x2,0xa4,0x2,0x7e,0x2,0x71,0x2,0x61,0x2,0x27,0x2, +0xbd,0x1,0x36,0x1,0xc0,0x0,0x7b,0x0,0x5c,0x0,0x57,0x0, +0x60,0x0,0x68,0x0,0x6b,0x0,0x63,0x0,0x4f,0x0,0x2c,0x0, +0xf0,0xff,0xa8,0xff,0x76,0xff,0x67,0xff,0x6c,0xff,0x66,0xff, +0x4a,0xff,0x2e,0xff,0x22,0xff,0x29,0xff,0x36,0xff,0x32,0xff, +0x32,0xff,0x3d,0xff,0x2c,0xff,0x1f,0xff,0x5c,0xff,0xd4,0xff, +0x62,0x0,0xef,0x0,0x47,0x1,0x59,0x1,0x38,0x1,0x2,0x1, +0xe1,0x0,0xd5,0x0,0xb6,0x0,0x84,0x0,0x57,0x0,0x43,0x0, +0x3d,0x0,0x23,0x0,0xe9,0xff,0x7a,0xff,0xb9,0xfe,0xe3,0xfd, +0x3c,0xfd,0xc1,0xfc,0x9e,0xfc,0xf1,0xfc,0x54,0xfd,0x6f,0xfd, +0x53,0xfd,0x3d,0xfd,0x52,0xfd,0x89,0xfd,0xc8,0xfd,0xfe,0xfd, +0x1a,0xfe,0xfe,0xfd,0xa2,0xfd,0x2c,0xfd,0xe5,0xfc,0xda,0xfc, +0xf0,0xfc,0x2f,0xfd,0xa0,0xfd,0x28,0xfe,0x9f,0xfe,0xe0,0xfe, +0xf3,0xfe,0xa,0xff,0x2a,0xff,0x20,0xff,0xcc,0xfe,0x48,0xfe, +0xb9,0xfd,0x33,0xfd,0xc8,0xfc,0x96,0xfc,0x98,0xfc,0xb6,0xfc, +0xeb,0xfc,0x17,0xfd,0x27,0xfd,0x2c,0xfd,0x20,0xfd,0x9,0xfd, +0xf,0xfd,0x44,0xfd,0x9a,0xfd,0xf4,0xfd,0x47,0xfe,0xac,0xfe, +0xb,0xff,0x16,0xff,0xd0,0xfe,0x80,0xfe,0x3d,0xfe,0xfb,0xfd, +0xd2,0xfd,0xdc,0xfd,0xd,0xfe,0x44,0xfe,0x64,0xfe,0x71,0xfe, +0x8b,0xfe,0xb2,0xfe,0xc0,0xfe,0x8b,0xfe,0x23,0xfe,0xdc,0xfd, +0xda,0xfd,0xfa,0xfd,0x32,0xfe,0x8f,0xfe,0x0,0xff,0x6a,0xff, +0xb1,0xff,0xd2,0xff,0xf6,0xff,0x27,0x0,0x5c,0x0,0x8f,0x0, +0xb8,0x0,0xd0,0x0,0xdb,0x0,0xd3,0x0,0xb3,0x0,0x88,0x0, +0x7e,0x0,0x92,0x0,0x8b,0x0,0x58,0x0,0x2a,0x0,0x2a,0x0, +0x4b,0x0,0x65,0x0,0x74,0x0,0x9f,0x0,0xf1,0x0,0x4f,0x1, +0xac,0x1,0x5,0x2,0x53,0x2,0x99,0x2,0xe0,0x2,0x6,0x3, +0xe4,0x2,0x8c,0x2,0x2a,0x2,0xd8,0x1,0xaf,0x1,0xd4,0x1, +0x50,0x2,0xe3,0x2,0x40,0x3,0x62,0x3,0x56,0x3,0x23,0x3, +0xf6,0x2,0xf0,0x2,0x3,0x3,0x23,0x3,0x50,0x3,0x99,0x3, +0xfc,0x3,0x59,0x4,0x92,0x4,0x9f,0x4,0x87,0x4,0x5b,0x4, +0x38,0x4,0x3f,0x4,0x67,0x4,0x73,0x4,0x3e,0x4,0xe3,0x3, +0x89,0x3,0x51,0x3,0x51,0x3,0x7f,0x3,0xaf,0x3,0xbe,0x3, +0xad,0x3,0x8a,0x3,0x5f,0x3,0x27,0x3,0xd4,0x2,0x76,0x2, +0x35,0x2,0x1e,0x2,0x17,0x2,0xfe,0x1,0xd6,0x1,0xc0,0x1, +0xcb,0x1,0xf0,0x1,0x13,0x2,0x14,0x2,0xef,0x1,0xcc,0x1, +0xcd,0x1,0xec,0x1,0x2,0x2,0xeb,0x1,0x97,0x1,0x18,0x1, +0x97,0x0,0x37,0x0,0xf8,0xff,0xca,0xff,0xbd,0xff,0xec,0xff, +0x3b,0x0,0x7b,0x0,0x9b,0x0,0x9f,0x0,0x90,0x0,0x6c,0x0, +0x28,0x0,0xd6,0xff,0x77,0xff,0x16,0xff,0xf5,0xfe,0x24,0xff, +0x48,0xff,0x1a,0xff,0xa4,0xfe,0x14,0xfe,0x92,0xfd,0x3f,0xfd, +0x26,0xfd,0x1f,0xfd,0x21,0xfd,0x62,0xfd,0xee,0xfd,0x98,0xfe, +0x4d,0xff,0xc,0x0,0xbb,0x0,0x1f,0x1,0x18,0x1,0xb8,0x0, +0xe,0x0,0x3d,0xff,0x8f,0xfe,0xd,0xfe,0x7b,0xfd,0xd2,0xfc, +0x4e,0xfc,0x1e,0xfc,0x35,0xfc,0x77,0xfc,0xe6,0xfc,0x7d,0xfd, +0x3a,0xfe,0x3c,0xff,0x7e,0x0,0xae,0x1,0x70,0x2,0xbb,0x2, +0xd0,0x2,0xae,0x2,0x1e,0x2,0x2e,0x1,0x5,0x0,0xbf,0xfe, +0x8f,0xfd,0x9b,0xfc,0xdc,0xfb,0x59,0xfb,0x5b,0xfb,0x17,0xfc, +0x39,0xfd,0x40,0xfe,0x22,0xff,0x1e,0x0,0x59,0x1,0xce,0x2, +0x4f,0x4,0x9b,0x5,0x5e,0x6,0x38,0x6,0x12,0x5,0x2c,0x3, +0xed,0x0,0xa4,0xfe,0x5d,0xfc,0x23,0xfa,0x1c,0xf8,0xad,0xf6, +0x6c,0xf6,0x52,0xf7,0xc9,0xf8,0x98,0xfa,0xb8,0xfc,0x41,0xff, +0x85,0x2,0x30,0x6,0x2b,0x9,0xd2,0xa,0x35,0xb,0x26,0xa, +0x56,0x7,0x59,0x3,0x18,0xff,0xe2,0xfa,0xf5,0xf6,0xa0,0xf3, +0x70,0xf1,0xb2,0xf1,0xec,0xf4,0x64,0xf9,0xb9,0xfc,0x6f,0xfe, +0x5,0x0,0x1c,0x2,0xc,0x4,0x5d,0x6,0x60,0x9,0x89,0xb, +0xe8,0xb,0x5b,0xa,0xd2,0x6,0x35,0x2,0x78,0xfd,0x64,0xf9, +0x77,0xf6,0x66,0xf3,0xd0,0xef,0xef,0xed,0x2b,0xef,0xf4,0xf2, +0x73,0xf7,0xf2,0xfa,0x58,0xfe,0xf2,0x2,0x7e,0x7,0x9,0xa, +0x50,0xa,0x27,0xa,0x59,0xa,0x5b,0x9,0xac,0x6,0xa4,0x2, +0xa4,0xfd,0xbe,0xf8,0xfe,0xf3,0x56,0xf0,0x2d,0xef,0xe0,0xee, +0x85,0xef,0x8a,0xf2,0x20,0xf6,0xdc,0xf9,0x73,0xfe,0x4b,0x3, +0xae,0x8,0xcf,0xc,0x1f,0xe,0xf,0xe,0xd7,0xb,0x6b,0x7, +0xac,0x2,0xa6,0xfd,0xdd,0xf9,0x1e,0xf7,0xd2,0xf2,0x66,0xef, +0xd8,0xee,0x86,0xef,0x97,0xf1,0x1c,0xf5,0xca,0xf9,0x13,0xff, +0x54,0x3,0x31,0x7,0x88,0xa,0xf5,0xb,0xa4,0xc,0x18,0xc, +0xe5,0x9,0xe6,0x7,0x5d,0x4,0x4a,0xfe,0x48,0xf8,0x1e,0xf3, +0xf0,0xef,0xa7,0xef,0x42,0xf0,0x8f,0xf1,0x1e,0xf5,0xd9,0xfa, +0x7d,0x0,0xf7,0x3,0xe7,0x7,0xbf,0xd,0xf7,0x10,0x2,0x11, +0x7c,0x10,0x77,0xd,0xdd,0x7,0x7,0x2,0x5a,0xfc,0xf3,0xf8, +0x26,0xf7,0x2a,0xf3,0x29,0xf0,0x19,0xf1,0x7a,0xf2,0x64,0xf4, +0xf3,0xf8,0x2b,0xff,0xa1,0x5,0x76,0x9,0xa8,0xa,0x80,0xc, +0x14,0xd,0x34,0xb,0xc4,0x9,0xd,0x8,0x81,0x5,0x4e,0x2, +0xd4,0xfc,0x1a,0xf8,0xab,0xf6,0xdf,0xf5,0x84,0xf5,0x3e,0xf6, +0xbf,0xf7,0x1,0xfb,0x79,0xfe,0xdc,0x0,0x14,0x3,0xdc,0x4, +0xe6,0x7,0x34,0xc,0xb7,0xd,0x43,0xd,0xf9,0xb,0xb9,0x6, +0xb5,0xff,0xe1,0xfa,0xc4,0xf7,0x54,0xf6,0xb6,0xf5,0x5c,0xf5, +0x6a,0xf7,0x12,0xfa,0x22,0xfb,0xc0,0xfd,0x1,0x3,0xef,0x7, +0xc6,0x9,0xeb,0x8,0x34,0x9,0x3,0xa,0xf1,0x7,0x3c,0x5, +0xe6,0x2,0x2c,0xff,0x47,0xfb,0x77,0xf7,0x4a,0xf5,0x7,0xf7, +0xf1,0xf8,0xb5,0xf9,0x24,0xfc,0x78,0xff,0x69,0x3,0x24,0x7, +0x36,0x8,0x80,0x8,0x5a,0x9,0xbb,0x9,0xd2,0x9,0x3f,0x8, +0xcf,0x4,0x2d,0x1,0xc2,0xfc,0xf9,0xf7,0xbc,0xf4,0x8b,0xf4, +0xe9,0xf7,0xdc,0xfb,0x8b,0xfe,0x6a,0x1,0x1,0x4,0xa6,0x5, +0x22,0x7,0xe2,0x8,0xac,0xa,0x6c,0xa,0xe3,0x7,0xbe,0x5, +0xae,0x3,0x1a,0x0,0xd2,0xfb,0x8f,0xf8,0x70,0xf7,0x66,0xf7, +0x9,0xf8,0x25,0xfb,0xcb,0xff,0x5d,0x3,0x87,0x5,0x2a,0x7, +0xa5,0x8,0xa0,0x8,0x6e,0x6,0xae,0x3,0xfa,0x0,0xd1,0xfe, +0x2,0xfe,0xf9,0xfc,0x57,0xfb,0x20,0xfb,0x55,0xfc,0x62,0xfd, +0xf1,0xfd,0x2f,0xff,0x97,0x1,0xc9,0x3,0xfb,0x4,0x62,0x5, +0x41,0x5,0x1a,0x5,0x2b,0x4,0xc3,0x1,0x30,0xff,0xd9,0xfc, +0x4e,0xfa,0x8f,0xf8,0xb5,0xf8,0x9c,0xfa,0x2b,0xfd,0xde,0xff, +0x29,0x3,0x28,0x6,0x65,0x7,0x19,0x7,0x6,0x6,0x9e,0x4, +0xcb,0x2,0x4d,0x0,0x8,0xfe,0x74,0xfc,0x86,0xfa,0x61,0xf8, +0xba,0xf7,0x9,0xf9,0xd2,0xfa,0x6d,0xfc,0xbd,0xfe,0x63,0x1, +0xa1,0x3,0x93,0x5,0xbe,0x5,0x96,0x3,0x92,0x1,0x5f,0x0, +0xb9,0xfe,0xed,0xfc,0xe3,0xfb,0xef,0xfb,0xd2,0xfc,0x7d,0xfe, +0x63,0x1,0x39,0x4,0x20,0x5,0x26,0x4,0xf0,0x1,0x9b,0xff, +0xd3,0xfd,0xc4,0xfb,0x3c,0xfa,0x21,0xfa,0xf1,0xf9,0x9a,0xf9, +0x1f,0xfa,0xae,0xfb,0x38,0xfe,0x13,0x0,0x20,0x1,0xbe,0x3, +0x7,0x7,0x51,0x9,0xb6,0xa,0xf3,0x9,0x60,0x7,0x81,0x4, +0xeb,0x0,0x86,0xfd,0xdd,0xfa,0x38,0xf8,0xf7,0xf6,0x57,0xf7, +0x99,0xf8,0x3d,0xfb,0xcd,0xfd,0x4,0xff,0x42,0xff,0xb8,0xfe, +0x9b,0xff,0xef,0x2,0x51,0x6,0x59,0x8,0xe,0x8,0x26,0x5, +0x2a,0x1,0x31,0xfd,0x53,0xfb,0xed,0xfb,0x0,0xfc,0x4e,0xfc, +0xf1,0xfe,0x1d,0x2,0x5c,0x3,0xe7,0x0,0xce,0xfc,0xa3,0xfb, +0x70,0xfc,0x53,0xfc,0xd2,0xfb,0x1f,0xfd,0x2a,0x2,0x56,0x8, +0xe4,0xb,0x30,0xc,0x94,0x7,0xa8,0x0,0x99,0xfd,0xd4,0xfd, +0xf2,0xff,0xf5,0x2,0xac,0x2,0xa1,0x0,0x0,0x0,0x9f,0xff, +0xa7,0xff,0x40,0xff,0x1f,0xff,0x32,0x1,0xb7,0x0,0x8d,0xfc, +0x5d,0xf8,0xe8,0xf4,0x3f,0xf6,0x1d,0xfa,0xf,0xf9,0x73,0xf9, +0x58,0xfe,0x6c,0x1,0x71,0x5,0x34,0x9,0xc3,0x6,0xef,0x2, +0x9e,0x1,0xf,0x3,0x7f,0x6,0xde,0x5,0x46,0x1,0x2a,0xfd, +0x34,0xfa,0x17,0xfb,0xba,0xfd,0x3b,0xfd,0x93,0xfb,0xa4,0xf8, +0x35,0xf6,0x65,0xf9,0x77,0xfe,0x78,0x3,0xf6,0x9,0x37,0xd, +0x67,0xd,0x8,0xd,0xe,0xa,0xae,0x6,0xc5,0x3,0xf8,0xff, +0xed,0xfd,0x40,0xfc,0x18,0xfa,0xd1,0xf9,0xa8,0xf6,0x4d,0xf0, +0x16,0xef,0x59,0xf1,0x85,0xf0,0xf2,0xf0,0x7c,0xf7,0xe3,0xfe, +0x0,0x5,0xe7,0xd,0xe1,0x14,0x5b,0x14,0xe2,0x10,0xe7,0xc, +0xab,0x8,0xcb,0x4,0x64,0xfe,0x0,0xf9,0xea,0xf6,0x90,0xf1, +0xb,0xec,0x14,0xec,0xde,0xee,0x93,0xf4,0x2e,0xfc,0x65,0x4, +0x1b,0xe,0x7,0x13,0x8a,0x13,0x42,0x16,0x47,0x17,0xdd,0x13, +0xa5,0xc,0xd4,0x2,0x51,0xfb,0xee,0xf3,0xd,0xee,0xd8,0xee, +0xb4,0xf2,0x55,0xff,0x5,0xb,0x3f,0xfc,0x5a,0xef,0x3e,0xff, +0x30,0x4,0x89,0xff,0x77,0x24,0x12,0x4d,0xf1,0x28,0xc4,0xe4, +0xe3,0xde,0x2a,0xee,0x18,0xd4,0xb3,0xd6,0xe8,0x13,0x14,0x31, +0x2d,0x15,0xb,0xf8,0xab,0xe0,0x42,0xb8,0x48,0xa3,0x9d,0xd2, +0x2e,0x12,0x69,0x20,0x9b,0x1a,0x40,0xa,0x1,0xe7,0x46,0xe7, +0x11,0xb,0xaf,0x20,0x1e,0x25,0xf4,0xf,0x36,0xeb,0xf6,0xdc, +0xb2,0xdb,0x17,0xe1,0xd9,0xf1,0xe8,0xfd,0x11,0xa,0x18,0x4, +0x5e,0xe7,0xf1,0xfa,0xb7,0x33,0xcb,0x41,0x41,0x38,0x29,0x30, +0xec,0x13,0xca,0x1,0x8b,0xe,0xc0,0xe,0x4d,0xf2,0x33,0xd9, +0x3a,0xcf,0x36,0xd2,0x6a,0xf4,0xae,0x1f,0x6e,0x1f,0xbf,0xc, +0xdd,0xd,0x7d,0x9,0x74,0x5,0x54,0x17,0x8e,0x1d,0x5,0x5, +0xc0,0xe3,0xb7,0xd6,0xae,0xf0,0x8d,0x1b,0xbc,0x39,0x5e,0x45, +0x61,0x33,0x43,0xd,0xf,0xe9,0xfc,0xc3,0x73,0xb8,0x87,0xda, +0x84,0xef,0xf,0xde,0x53,0xda,0xae,0xf3,0xf9,0xf,0x1f,0x1f, +0x61,0x17,0x62,0xfd,0xdb,0xe7,0x1d,0xf7,0x35,0x28,0x21,0x32, +0x99,0xfe,0x7,0xe7,0x9,0xe,0xbf,0x2d,0xb2,0x20,0x6b,0x4, +0x35,0xf6,0x42,0xf2,0x9a,0xeb,0x74,0xe3,0xc7,0xdc,0xfc,0xe0, +0x81,0xf3,0x46,0xfe,0x7b,0x0,0x6d,0x8,0x8a,0xf,0x7,0x14, +0xcb,0x7,0x86,0xee,0x30,0xf5,0x46,0x2,0x24,0xf9,0xb2,0xa, +0x5b,0x15,0x43,0xf4,0xaf,0xf6,0x81,0x12,0x38,0xfd,0xe6,0xdf, +0xe4,0xed,0x66,0x10,0x31,0x2a,0x11,0x38,0xa3,0x20,0x1f,0xd2, +0x15,0xbb,0x97,0x4,0xb4,0x10,0x0,0xeb,0xb5,0x4,0xf0,0xf7, +0x64,0xc5,0xfe,0xec,0xb1,0x20,0x6d,0x2a,0x99,0x3e,0xee,0x2d, +0x4,0x8,0xc,0x14,0x79,0x1d,0x29,0x7,0x39,0x1,0x36,0x10, +0xd5,0x11,0xf5,0x1,0x6d,0x7,0xf8,0x1,0x12,0xc1,0xfe,0xac, +0xb0,0xe4,0xbe,0xf3,0x26,0xf7,0x98,0x18,0xff,0x11,0x6c,0x6, +0x4a,0x16,0xb8,0x17,0x91,0x2c,0x40,0x4a,0xca,0x2c,0x4,0xf4, +0x17,0xd9,0x28,0xd6,0x43,0xd4,0x1e,0xf0,0x57,0x2a,0x85,0x1a, +0x40,0xda,0x7e,0xe6,0xbf,0xf2,0x77,0xc6,0x2b,0xcd,0x46,0x2, +0x45,0x27,0xfe,0x40,0x1a,0x42,0x85,0x22,0x57,0xf1,0xe6,0xd3, +0xf4,0xef,0x5d,0x1b,0x5f,0x27,0x3d,0x13,0xcd,0xe8,0x54,0xdc, +0x75,0xe9,0x8b,0xd2,0x9b,0xd0,0x61,0x3,0xb9,0xa,0xa5,0xf4, +0xba,0x7,0xbb,0x12,0xa5,0xa,0x45,0x1c,0x51,0x27,0x53,0x1c, +0x12,0xe,0xe3,0xee,0xd7,0xd2,0xca,0xcc,0xe0,0xc8,0x61,0xcd, +0xaa,0xd9,0xbd,0xe2,0x27,0xe8,0xd0,0xe2,0xc7,0xe6,0x64,0xed, +0x65,0xe6,0xee,0x2,0xef,0x2e,0xec,0x37,0xa6,0x32,0xd5,0x6, +0x1a,0xd2,0x98,0xe5,0x70,0x2,0xa5,0xfa,0xff,0xf4,0x6b,0xf3, +0x56,0xf7,0x8a,0xef,0xc6,0xe8,0xc9,0xfd,0xc7,0xfe,0xb6,0x13, +0x20,0x4d,0xa5,0x46,0x24,0x37,0x96,0x40,0xc7,0x25,0xee,0x28, +0xa2,0x24,0x7d,0xeb,0x10,0xee,0x5c,0xf6,0x50,0xdf,0x32,0xf8, +0xb8,0xf1,0x98,0xdb,0x47,0x2,0xfc,0x7,0x70,0xf9,0xf7,0x9, +0xa4,0xa,0xa2,0x8,0x84,0xfa,0x51,0xf1,0x91,0x21,0xa2,0x32, +0xe6,0x1e,0x75,0x45,0x3b,0x5a,0x95,0x30,0xd2,0x29,0xd6,0x39, +0xd6,0x1b,0x99,0x5,0x4,0x10,0x5a,0xe9,0x14,0xbe,0x52,0xdf, +0x89,0xe6,0xf9,0xc7,0xa5,0xde,0xd3,0xdb,0x7e,0xc2,0x66,0xfa, +0x2b,0x1e,0x47,0xf8,0x5e,0xfa,0x5c,0xd,0x20,0xf0,0x25,0xe7, +0x5c,0xa,0x26,0x11,0x96,0xf7,0x4,0xfb,0x3a,0x12,0x57,0xd, +0x4a,0xfb,0x4e,0xf8,0xfe,0xf8,0xd8,0xfe,0x73,0x10,0xe3,0x6, +0x84,0xe5,0xb0,0xef,0xae,0xe,0x2f,0x12,0x28,0x18,0xdf,0x5, +0x93,0xdb,0x88,0xee,0x49,0x6,0xe,0xea,0x95,0xf2,0x76,0x10, +0x59,0x8,0xb4,0x5,0xea,0xc,0xdc,0x5,0xa8,0xf7,0xcc,0xee, +0x9,0xf8,0xe8,0xfa,0xa7,0xfa,0xdf,0xb,0x79,0xfb,0x98,0xe0, +0x77,0xf6,0x2a,0xfa,0xd0,0xe7,0x4a,0x6,0x5d,0x2b,0x1e,0x2b, +0xc8,0x1c,0x7b,0x9,0x27,0xf2,0x97,0xdf,0x50,0xe4,0xde,0xf3, +0xc5,0xf1,0xfa,0xfb,0x7e,0xf,0x0,0xa,0x40,0x11,0xcf,0x18, +0xae,0xfa,0x1c,0xf4,0xfd,0x2,0xf8,0xf5,0x59,0x4,0x61,0x33, +0xb7,0x38,0x46,0x20,0xb8,0x15,0x5e,0xe,0x2c,0x3,0x83,0x8, +0xbf,0x18,0x95,0x13,0xf0,0x6,0x86,0xf,0xe9,0x17,0xdf,0x1a, +0x25,0x23,0xe3,0x18,0x55,0x1,0x0,0xf6,0x9b,0xeb,0xb2,0xdd, +0x27,0xd3,0x45,0xc5,0x80,0xb9,0xb6,0xbf,0x1a,0xd5,0x3e,0xdf, +0x34,0xdc,0x6d,0xea,0x9d,0xf6,0xdd,0xeb,0xda,0xfc,0x2a,0x1f, +0xd9,0x19,0x6a,0x1a,0xf1,0x31,0x48,0x22,0x55,0x12,0x96,0x2b, +0x99,0x23,0xbb,0xf6,0xc3,0xe7,0x32,0xe7,0xcf,0xe6,0xab,0xf7, +0xa2,0xf4,0x6a,0xd8,0x2e,0xd6,0xec,0xdf,0xfb,0xda,0xd8,0xe8, +0x5c,0x0,0x91,0xfa,0xbd,0xf3,0xf2,0xfc,0x5f,0xf5,0x7d,0xe5, +0xd5,0xe9,0x63,0xfc,0x57,0x14,0xce,0x28,0xb,0x22,0xd5,0xf8, +0x22,0xd3,0x14,0xd1,0xfd,0xd4,0xb4,0xd5,0xd9,0xf3,0x36,0xf, +0x9c,0x8,0xa9,0x2,0x91,0xfe,0x9d,0xfb,0x6a,0x16,0xe5,0x32, +0xa4,0x2d,0x2f,0x1b,0x60,0x15,0x69,0x1a,0xdc,0x19,0x33,0x18, +0x9d,0x1c,0x10,0x1a,0x6f,0x13,0xb,0xb,0x37,0x1,0xd0,0xf9, +0xfa,0xe0,0xdd,0xcc,0x6f,0xd8,0xc9,0xda,0xc9,0xd3,0xbf,0xca, +0xbe,0xaf,0x37,0xb8,0xb3,0xda,0x35,0xe1,0xaa,0xf6,0x7,0xd, +0xfe,0xfe,0x76,0xfd,0x57,0x3,0xb9,0x3,0x9c,0x14,0xf3,0x1b, +0x1d,0x19,0xd7,0x16,0x59,0x9,0x2a,0x0,0x1c,0xfa,0x52,0xfc, +0xe,0xc,0x1f,0x9,0x22,0xc,0x6d,0x1e,0x80,0x8,0x7b,0xec, +0xb7,0xfa,0x20,0x6,0xe5,0xfa,0xc9,0xf7,0xf0,0xfa,0x5e,0xe9, +0x4e,0xd1,0x82,0xcb,0xa9,0xd1,0xd5,0xee,0x58,0x15,0xa4,0x2a, +0x49,0x45,0x7,0x3c,0x9b,0xfa,0xd2,0xdd,0x3,0xe0,0x83,0xe3, +0xdf,0x15,0xa5,0x3d,0x1,0x2b,0x65,0xb,0xed,0xe3,0xac,0xc4, +0xb5,0xb9,0x7a,0xa7,0x60,0x9d,0x47,0xa0,0x98,0x9c,0x18,0xa0, +0x6a,0xb9,0x43,0xe3,0x20,0xe,0x14,0x36,0x7c,0x48,0xed,0x33, +0x19,0x27,0xe,0x18,0xd1,0xdb,0xb0,0xb1,0xb7,0xb8,0x56,0xe9, +0x7d,0x2a,0xfe,0x13,0xa5,0xe6,0x3b,0x16,0x3,0x34,0x8f,0x37, +0x5d,0x68,0x14,0x5d,0x54,0xa,0xa6,0xd4,0xd9,0xd3,0x8,0xf4, +0x2a,0xeb,0x85,0xb7,0x9f,0xbe,0x2d,0xfa,0x3f,0x28,0xdf,0x3b, +0xa3,0x2d,0x4c,0xfa,0x98,0xd4,0x25,0xf4,0xf3,0xfd,0xc5,0xaf, +0x6e,0x9d,0x10,0xda,0x5e,0xdf,0xbf,0xc9,0x26,0xbf,0x9e,0xb6, +0xfb,0xdf,0xfd,0x13,0xed,0x12,0x1a,0xfe,0xcb,0x7,0x99,0x32, +0x27,0x38,0x8b,0xc,0x1f,0xf6,0x99,0xe1,0x6e,0xcd,0x57,0xf5, +0xdd,0x25,0xe7,0x2e,0x66,0x40,0x70,0x52,0x43,0x31,0xa8,0x9, +0x28,0x1e,0x76,0x32,0x5,0x21,0xce,0x29,0xfc,0x2b,0xbe,0xb, +0x7f,0x1c,0x59,0x40,0x63,0x20,0xf5,0xe3,0xf7,0xda,0x9b,0x9, +0xfc,0x1c,0x5c,0xfb,0xeb,0xdb,0x54,0xb9,0x1e,0xa8,0x54,0xc5, +0x4e,0xc2,0x89,0xa0,0xc7,0xb1,0xa9,0xee,0x15,0x33,0x9,0x52, +0xd2,0x34,0x65,0x16,0xd6,0x1b,0x18,0x27,0xfc,0x17,0x3e,0x16, +0x89,0x47,0x62,0x46,0x1a,0xfc,0xea,0xeb,0x22,0x1,0xac,0xfb, +0x48,0xd,0x93,0xd,0x77,0xde,0xbc,0xdc,0xe5,0x7,0xd1,0x17, +0x6a,0xf,0xc4,0x4,0xbe,0x1,0xc9,0x14,0xdc,0x1e,0xe,0xf5, +0x91,0xd5,0x6a,0x5,0xce,0x3e,0xef,0x4a,0x26,0x50,0xd6,0x4a, +0x68,0x2a,0x8f,0xe,0x6a,0x17,0xe,0x3e,0x76,0x4a,0x2b,0x35, +0x8f,0x29,0x19,0xf,0xee,0xe9,0xf1,0xe7,0x7,0xe6,0xaa,0xe7, +0xdd,0xfa,0x1e,0xda,0xf,0xba,0x48,0xda,0xe,0xd6,0x3f,0xc7, +0x20,0x0,0x79,0x1d,0xf3,0x19,0x80,0x42,0xdf,0x52,0x1c,0x46, +0x2b,0x5f,0xdd,0x75,0x58,0x71,0xb2,0x5c,0xd6,0x33,0x3e,0x1b, +0xda,0xf,0xa9,0xe8,0x7a,0xbb,0x4d,0xa0,0x3f,0x96,0x4e,0xa6, +0x1a,0xd0,0xb5,0xb,0xfc,0x3f,0xb,0x4e,0xdf,0x42,0xa1,0x3a, +0xbb,0x35,0x85,0x36,0x14,0x49,0x67,0x4c,0xbd,0x1f,0xe4,0xfe, +0x42,0x6,0x41,0xf5,0xea,0xd4,0x62,0xd1,0x75,0xd7,0x86,0xe4, +0xc0,0xe7,0x3d,0xc4,0x28,0xa8,0xef,0xae,0x4d,0xb7,0x47,0xba, +0x2b,0xc9,0xe0,0xe4,0x71,0xfd,0x57,0x1b,0x8e,0x44,0xd0,0x51, +0x25,0x4b,0xae,0x52,0x87,0x56,0x2d,0x5b,0xf8,0x58,0xa1,0x33, +0x33,0xa,0x31,0xdc,0xb5,0xb5,0xa1,0xdd,0x3,0x17,0x5d,0x8, +0xf4,0xde,0x51,0xbd,0xb5,0xa7,0x80,0xa6,0x80,0xb3,0xb5,0xe3, +0xa5,0x16,0x6c,0x19,0xee,0x17,0xd1,0xb,0x5f,0xd5,0x12,0xc0, +0x50,0xd9,0xe9,0xde,0x51,0xd9,0xd9,0xd6,0x2c,0xc6,0x89,0xc2, +0xb4,0xeb,0xd8,0x24,0x96,0x44,0x56,0x4e,0xe5,0x4b,0xaa,0x44, +0x93,0x4b,0x3b,0x3d,0x86,0xfd,0xbf,0xcc,0x52,0xbd,0xd7,0xa1, +0x28,0x89,0x9b,0x87,0xf7,0x8a,0x6e,0x8d,0x5,0xa2,0x44,0xdc, +0x4,0x16,0x94,0x31,0x40,0x53,0xb7,0x55,0x92,0x12,0xd9,0xe2, +0xf7,0xe0,0x84,0xdd,0x29,0xe0,0x1a,0xdc,0x46,0xcb,0xfc,0xc0, +0x93,0xad,0xdf,0xb1,0x8b,0xe6,0x8c,0x14,0x7a,0x2b,0x57,0x2a, +0x36,0x12,0xf8,0xd,0x9f,0x13,0xfc,0x11,0x31,0x22,0x4d,0x40, +0x6c,0x6d,0xff,0x7f,0x2d,0x53,0xd,0x2d,0x79,0x47,0xde,0x5b, +0x44,0x54,0x31,0x43,0xf7,0x3a,0x70,0x3e,0x4c,0x20,0x9b,0xf5, +0xc8,0xec,0x44,0xeb,0xa6,0xf3,0x9c,0xfb,0xb9,0xe6,0x0,0xed, +0x1e,0x0,0x52,0xda,0x26,0xb5,0x3a,0xbd,0xea,0xe0,0xba,0x1e, +0x19,0x2a,0xc6,0xe0,0xa5,0xb2,0xc7,0xbc,0x27,0xc0,0xf5,0xc2, +0x9f,0xce,0x50,0xd4,0xae,0xd8,0x1,0xd9,0xba,0xe2,0x64,0x6, +0x79,0x2b,0x8c,0x3e,0xf8,0x3f,0x59,0x3f,0xf8,0x52,0xea,0x60, +0x67,0x55,0xa1,0x4e,0x3a,0x47,0xf1,0x2f,0xb,0x22,0x65,0x1c, +0x9,0x7,0xeb,0xe6,0x6b,0xcc,0xd6,0xb3,0x1e,0x96,0x4b,0x83, +0x2f,0x83,0xd1,0x9a,0x74,0xd0,0xf3,0xee,0xa7,0xe6,0x5f,0xfa, +0x66,0x17,0x8,0x1a,0x2e,0x29,0xed,0x23,0x53,0xf6,0x80,0xef, +0xc7,0x2,0x11,0xe9,0xc6,0xc0,0xe6,0xba,0xbc,0xc6,0xc8,0xc9, +0xc7,0xc2,0x1c,0xb9,0xa,0xc6,0x5c,0xf1,0xac,0x8,0x82,0xc, +0xf0,0x28,0x19,0x3b,0x74,0x3a,0xf2,0x40,0xdc,0x24,0xa0,0x0, +0x8f,0xe,0x1c,0x22,0x7,0x2f,0x92,0x3c,0x56,0x2c,0x68,0x2d, +0x98,0x53,0x39,0x54,0x5c,0x2f,0x89,0x20,0xe,0x2e,0xf3,0x2c, +0x3,0x8,0xbd,0xf8,0xab,0xf,0xe1,0x9,0xcd,0xfe,0x23,0x17, +0x3b,0xc,0x84,0xe2,0xea,0xe6,0xf,0xf5,0x1f,0xf1,0x50,0xe, +0x63,0x36,0x8d,0x3c,0xfb,0x3c,0x8b,0x47,0x62,0x43,0xdb,0x1d, +0xca,0xe7,0x2,0xcc,0x6d,0xcc,0xdf,0xd4,0x3,0xec,0x7a,0x1, +0x56,0xa,0x49,0x1e,0x56,0x23,0xe5,0x9,0x48,0x9,0xa9,0x18, +0xf,0x12,0x4c,0x1c,0xa3,0x24,0xee,0x0,0x9b,0x0,0xc9,0x2a, +0x77,0x16,0x9a,0xdc,0x77,0xca,0x7d,0xd3,0xf1,0xd7,0x7d,0xc2, +0x37,0xb0,0x67,0xc7,0x10,0xee,0x7a,0x1e,0x8d,0x30,0xdf,0xfd, +0x18,0xfe,0x2b,0x36,0x1,0x1d,0x65,0xea,0xf3,0xd5,0xb1,0xc1, +0xcc,0xf2,0x39,0x28,0xac,0xe6,0x9,0xb2,0xab,0xe8,0x9f,0xb, +0xca,0xdc,0x12,0xb7,0xa9,0xd1,0x10,0xee,0x0,0xf4,0x64,0x4, +0xcf,0xf3,0xe8,0xc9,0x0,0xdc,0x7c,0x2,0xc9,0xfd,0xf6,0xfa, +0xcb,0xa,0x48,0xd,0xab,0xd,0x36,0x1e,0xa8,0x35,0x55,0x51, +0x4c,0x59,0x2b,0x34,0xfd,0x16,0xce,0x15,0x18,0x0,0x92,0xfe, +0xae,0x1e,0xb8,0xff,0x46,0xc0,0x7f,0xca,0x51,0xf0,0x7a,0xdf, +0x3f,0xba,0xb0,0xb9,0xc,0xd7,0xc6,0x1,0x79,0x20,0x7f,0x14, +0xfa,0xf,0x15,0x29,0xf0,0x1f,0x10,0x6,0xd4,0xf9,0xf,0xe8, +0xe8,0xeb,0x3,0xf0,0xae,0xd2,0xee,0xb6,0xbd,0xa2,0xdf,0xba, +0x16,0xfb,0x98,0xfe,0xa9,0x0,0x95,0x44,0x6e,0x58,0xa7,0x34, +0x1c,0x26,0xc4,0x1c,0x96,0x9,0xd4,0xf0,0x7e,0xde,0x6f,0xd8, +0xdc,0xcf,0xfe,0xd7,0xf6,0xeb,0xc,0xf5,0xb6,0x2,0x27,0x3, +0x90,0xf3,0x93,0xeb,0x3c,0xd6,0xf7,0xc3,0xbc,0xd5,0xe4,0xf5, +0x92,0x2,0xfa,0xf0,0x55,0xf1,0x40,0xff,0x4b,0xdf,0xa4,0xdc, +0x49,0x2,0xc,0xe5,0x90,0xd7,0xd5,0x12,0xca,0x28,0xf5,0x2c, +0x3e,0x43,0x70,0x3e,0x5a,0x44,0xb8,0x54,0xff,0x3b,0x21,0x20, +0x9a,0x1b,0x4,0x17,0xb0,0xa,0x0,0xf9,0xa9,0xf7,0xb5,0x8, +0xf3,0x9,0xd,0xf9,0xad,0xdc,0xa7,0xba,0x3,0xbf,0x8a,0xd9, +0xbe,0xc7,0x8a,0xb9,0xd7,0xe1,0xf7,0xfa,0xc7,0xfb,0xb3,0x13, +0x91,0x21,0xb3,0x1c,0x73,0x21,0xc6,0x18,0x6a,0xff,0xf7,0xed, +0x48,0xe4,0xb7,0xe1,0xf4,0xe4,0x76,0xe8,0x65,0xe7,0x42,0xdc, +0x25,0xcb,0x21,0xb4,0x55,0xa4,0x41,0xb1,0x54,0xc1,0xd9,0xc3, +0x69,0xd3,0x1,0xe6,0x26,0xe8,0x10,0xf2,0x4c,0xc,0x23,0x1c, +0x95,0x16,0x54,0xd,0x35,0xb,0x6,0x9,0xb7,0x4,0xf8,0x3, +0xa6,0xf,0x7f,0x20,0x34,0x16,0x1,0xff,0xeb,0x12,0x49,0x3c, +0x47,0x3d,0x39,0x2b,0xe3,0x2f,0xa1,0x32,0xa8,0x18,0xef,0xee, +0x69,0xcc,0x6b,0xc4,0x1e,0xce,0xf3,0xd3,0xb0,0xd5,0x14,0xc5, +0xae,0xac,0xa4,0xc2,0x4b,0xea,0xf8,0xec,0xf5,0xf0,0xee,0x9, +0x7a,0x23,0xd5,0x32,0x17,0x18,0xd6,0xfc,0x9d,0x28,0x5e,0x52, +0xad,0x3d,0xa1,0x2e,0xf6,0x39,0x6d,0x41,0x4b,0x49,0x63,0x4a, +0x8d,0x40,0x4c,0x3e,0x1a,0x3e,0x50,0x33,0x56,0x1b,0xca,0xf2, +0x77,0xd7,0x13,0xe1,0x53,0xe0,0x4e,0xc7,0x3a,0xcd,0xa1,0xde, +0xf8,0xcf,0x80,0xcf,0x16,0xe4,0xae,0xe0,0x36,0xe7,0xbc,0x7, +0x48,0xd,0x3b,0xb,0x5b,0x29,0x84,0x36,0x26,0x1e,0xaa,0x10, +0x36,0x8,0x97,0xeb,0x92,0xe2,0x1a,0xf0,0xdd,0xdb,0x77,0xb5, +0x27,0xad,0xb1,0xb8,0xd2,0xd0,0x9d,0xec,0xd1,0xef,0x8e,0xf3, +0x21,0xc,0x5c,0x1c,0xef,0x22,0x9e,0x19,0x5b,0xfc,0x40,0xfc, +0xbd,0x14,0x36,0x1d,0xa,0x25,0x94,0x1f,0x6,0xf4,0xc2,0xc5, +0xaf,0xb6,0x3,0xcc,0xdf,0xe7,0x31,0xee,0x11,0xfa,0x69,0x7, +0xd2,0x2,0x42,0xf,0xe0,0x1b,0x2c,0x9,0xcf,0x2,0xe0,0x6, +0xcf,0xf3,0xb3,0xf1,0x63,0x11,0x14,0x21,0xa0,0x22,0xf2,0x3d, +0x6a,0x52,0x1,0x40,0x74,0x2b,0xf9,0x15,0xa1,0xfa,0xae,0xfb, +0x12,0x2,0xa4,0x0,0x60,0x13,0x50,0x16,0x2,0xfd,0xd,0xf6, +0x7,0x8,0xe8,0x1b,0xf,0x19,0xca,0x15,0x14,0x2a,0xc7,0x19, +0x3,0xf6,0x43,0x1,0x79,0xfd,0x80,0xe3,0xa2,0xef,0x82,0xf4, +0xa8,0xeb,0x7f,0xfa,0xe6,0xfb,0x3d,0xee,0x9f,0xf0,0xc7,0xf7, +0x87,0xf5,0x7e,0xe7,0xb1,0xe0,0x9b,0xe8,0xaf,0xe9,0xfc,0xf0, +0x5b,0x4,0x0,0x7,0x39,0x2,0x34,0xa,0x9c,0x19,0xf3,0x2b, +0x67,0x3a,0xcf,0x39,0xef,0x1d,0xe6,0xf5,0x39,0xef,0xaf,0xfe, +0xda,0xf4,0x3e,0xe2,0x68,0xe2,0x16,0xe9,0xa3,0xf1,0x20,0xf8, +0x29,0xf8,0x2,0xff,0xf7,0x2,0x51,0xfa,0x55,0x1,0xc9,0x14, +0x96,0x16,0x5b,0x15,0xbe,0x21,0x7,0x2a,0x42,0x25,0x4e,0x1e, +0xcc,0x15,0x9e,0xff,0x45,0xe9,0x3e,0xde,0x54,0xcb,0x81,0xcb, +0x4f,0xef,0x6d,0xf4,0xf8,0xdf,0xb8,0xe9,0xcb,0xf4,0xbd,0xf8, +0xd4,0x5,0x78,0x2,0x4f,0x0,0xd8,0x10,0xa6,0x15,0xd7,0xd, +0x53,0x7,0x26,0xf,0xf9,0x23,0x4e,0x20,0x84,0xc,0x32,0xa, +0xbb,0xa,0xd9,0xa,0xf0,0x10,0x3,0xe,0x27,0x4,0xfd,0xf7, +0xc5,0xe7,0xd2,0xe0,0x1,0xe8,0x58,0xec,0xfd,0xe5,0x6,0xe4, +0x4f,0xe2,0x8d,0xd1,0xd9,0xcc,0xcb,0xe3,0x34,0xfe,0xce,0x18, +0x25,0x35,0xfb,0x48,0x42,0x50,0xdd,0x4a,0x5b,0x46,0x75,0x3b, +0x92,0x20,0x45,0x19,0x4b,0x15,0x78,0xf1,0x68,0xe5,0x7f,0xf7, +0xa3,0xf1,0xbc,0xf3,0x6c,0xf,0x6a,0x18,0x44,0x18,0xe4,0x1e, +0x8a,0x10,0xbc,0xf0,0xe2,0xdd,0xfa,0xd6,0xa9,0xcb,0x74,0xc1, +0x2d,0xc4,0xa4,0xd0,0x1d,0xe0,0x0,0xee,0xa,0xf7,0x4,0xfc, +0x60,0x3,0xd9,0x12,0xbb,0x1a,0x69,0xd,0xe5,0xfc,0x1,0xf2, +0x93,0xea,0xe2,0xed,0x76,0xeb,0x2e,0xde,0xc,0xe5,0x31,0xfa, +0x60,0x2,0xfb,0x5,0x3,0x12,0x55,0x20,0x5f,0x1e,0xa6,0xb, +0xc1,0x5,0x3c,0xb,0x5a,0x8,0x6b,0x8,0x7,0x5,0xbe,0xf5, +0xf3,0xf2,0x34,0xf5,0xc9,0xf0,0xa1,0xfe,0xd8,0x16,0x34,0x22, +0xa8,0x23,0xb5,0x16,0x3,0x3,0x3e,0xfb,0x1,0xf6,0x75,0xef, +0x40,0xf1,0xd6,0xf4,0xd3,0xf3,0xf4,0xee,0x78,0xe8,0x93,0xe7, +0xd0,0xed,0xad,0xf7,0x7e,0x0,0xf6,0xfb,0xa2,0xe7,0x49,0xda, +0x12,0xe5,0xe8,0xf9,0xfd,0x4,0x17,0x0,0x44,0xf2,0xff,0xf3, +0xb1,0x7,0x30,0xb,0x25,0xfb,0x81,0xef,0xf0,0xe7,0xa1,0xe6, +0x49,0xf4,0xbf,0x3,0xb,0xe,0x96,0x1b,0xc6,0x24,0x29,0x21, +0xec,0x22,0xe6,0x2c,0xb1,0x23,0x31,0xf,0xf1,0x7,0x3f,0x4, +0x76,0x7,0x63,0x14,0xcc,0x11,0x93,0xa,0x5b,0xe,0x26,0x9, +0x86,0x3,0xd2,0xd,0x71,0x17,0xb6,0x18,0x4e,0x19,0x34,0x18, +0x60,0x9,0x1b,0xf3,0xe1,0xee,0x8f,0xed,0x4c,0xdb,0x5,0xd6, +0x25,0xe1,0xed,0xe6,0xc5,0xf4,0xea,0x8,0xb8,0xf,0xfa,0xf, +0xbb,0x9,0x1d,0xf5,0x77,0xe4,0x71,0xea,0xad,0xfe,0x31,0xf, +0xaa,0x12,0x86,0xb,0x52,0x4,0xa5,0x4,0x9a,0xd,0x8a,0x17, +0x9e,0x12,0x22,0x5,0x6c,0x3,0xf9,0x5,0x19,0x6,0x5e,0xc, +0x7f,0x14,0xbf,0x1e,0xfa,0x27,0x85,0x23,0xa9,0x1b,0x97,0x14, +0xa4,0x8,0xda,0x5,0xdf,0x9,0x80,0x8,0x1a,0x6,0xed,0x1, +0xb9,0xfc,0x89,0xf4,0x2d,0xe6,0xeb,0xe1,0xba,0xe7,0xeb,0xeb, +0xfa,0xf3,0xac,0xf7,0xa2,0xf1,0x30,0xf1,0x70,0xfb,0x3,0xd, +0x51,0x16,0x92,0x9,0x5e,0xf7,0xe5,0xe9,0x27,0xdd,0x43,0xd8, +0x34,0xdd,0x16,0xe5,0x82,0xe5,0x95,0xe0,0x81,0xeb,0xc3,0xfd, +0xbc,0x0,0x46,0x3,0x9f,0xf,0x86,0x17,0x20,0x16,0x5a,0xe, +0x8b,0x4,0xa7,0xfd,0xa8,0xff,0x18,0xc,0x3e,0x10,0x4b,0x5, +0x92,0x0,0xf0,0x3,0xe2,0x7,0xeb,0x15,0xc4,0x23,0xf4,0x1f, +0xfa,0x16,0xb3,0x10,0x64,0x6,0x9b,0x2,0xa7,0xb,0x58,0x11, +0xf4,0xc,0xc4,0x6,0x23,0x3,0xaa,0x4,0x29,0xe,0xce,0x19, +0x62,0x1b,0x27,0x12,0x6a,0x9,0x9a,0x3,0x75,0xfd,0x7d,0xf9, +0xf4,0xfa,0x68,0x3,0x76,0x9,0x40,0x3,0x1b,0xfb,0xf8,0xf4, +0x59,0xee,0xb8,0xf6,0x30,0xb,0x6,0x14,0x8d,0xd,0xdd,0xfd, +0x95,0xeb,0x55,0xe1,0x9b,0xe5,0xa1,0xf8,0xf3,0x7,0x8,0x3, +0x53,0xf9,0x23,0xf8,0x3,0xfe,0xd6,0xc,0x49,0x1b,0xa1,0x1c, +0x9d,0x11,0x6a,0x0,0x2e,0xf2,0x39,0xec,0x4d,0xef,0xc7,0xfa, +0xd6,0x5,0xbf,0xa,0xf8,0x8,0x50,0xfe,0xf2,0xf3,0xd4,0xf3, +0x0,0xf9,0x6d,0xfc,0x38,0xfc,0x44,0xfb,0x92,0xfc,0x3a,0x2, +0xae,0xc,0x5d,0xe,0x64,0x4,0x65,0x3,0xf,0x8,0x1f,0x4, +0xb0,0x3,0x67,0x8,0xc6,0x5,0xec,0xfd,0x3c,0xf3,0x86,0xe8, +0x8,0xe7,0x23,0xed,0x1f,0xf3,0xea,0xf8,0x89,0x0,0xca,0x5, +0x5,0x5,0xf6,0x3,0x62,0x5,0xa3,0x4,0xf5,0x1,0xf1,0xfc, +0x33,0xf4,0x35,0xef,0x4,0xf3,0x45,0xfb,0x91,0x0,0x72,0xfc, +0x64,0xf3,0xa6,0xef,0xd4,0xed,0xa1,0xe7,0x56,0xe2,0xd9,0xdf, +0x2e,0xde,0xee,0xe2,0xbf,0xed,0xb7,0xf5,0x74,0xf7,0x36,0xf4, +0x36,0xf4,0x4d,0xfd,0xd6,0x3,0x38,0x6,0xd9,0xe,0xbe,0x12, +0x77,0xb,0x2e,0x6,0xed,0x2,0x87,0xfe,0xc1,0xfa,0xaf,0xf3, +0x1,0xf2,0x23,0xfc,0xca,0x3,0xd5,0x5,0x6c,0x9,0xd5,0xc, +0x92,0x10,0xf9,0x14,0x2a,0x17,0xa5,0x16,0x93,0x13,0x39,0x15, +0xe4,0x1d,0xb9,0x1f,0x2d,0x17,0x1a,0xd,0xe0,0x3,0x93,0xfe, +0x54,0xff,0xb8,0xff,0xbc,0xfa,0xbb,0xf2,0xeb,0xed,0x82,0xed, +0x2f,0xf0,0x73,0xfa,0x50,0x7,0x6c,0x9,0x61,0x4,0x90,0x3, +0x7b,0x6,0x4d,0x6,0xaa,0x0,0xe3,0xfc,0x48,0x1,0x2f,0x8, +0xf9,0x8,0x84,0x3,0x7b,0x2,0x7b,0x8,0xe,0x6,0x72,0xfa, +0x96,0xf3,0x90,0xed,0x3,0xe6,0x38,0xe8,0xb7,0xf1,0xcf,0xf6, +0x5d,0xf6,0x34,0xf9,0x30,0x2,0xfa,0x4,0x4d,0xff,0x70,0xfc, +0xb6,0xf8,0x58,0xf1,0xe2,0xef,0xff,0xef,0x2f,0xea,0x44,0xe5, +0xd4,0xe6,0xe2,0xed,0x71,0xf6,0x17,0xfe,0x2f,0xa,0xb9,0x1a, +0x71,0x24,0x33,0x23,0xe2,0x1c,0xf4,0x14,0x54,0xe,0x68,0xd, +0x6d,0xf,0x4e,0xf,0x14,0xd,0x53,0x5,0xa7,0xf7,0x45,0xf0, +0x31,0xf4,0xff,0xfb,0x27,0x4,0x40,0xa,0xa,0xb,0xff,0x7, +0x73,0x2,0x2c,0xfc,0x0,0xf9,0x1a,0xf9,0xdc,0xf8,0xdb,0xf4, +0x34,0xef,0x37,0xed,0x61,0xee,0xf,0xf2,0xd6,0xf9,0x19,0x0, +0xa3,0xff,0x1,0xfc,0x13,0xfa,0x30,0xfb,0xe7,0xfd,0x47,0x3, +0xaf,0xb,0xa5,0xd,0xc8,0x5,0x34,0x0,0x8d,0x2,0x86,0x8, +0xf3,0xf,0xd2,0x18,0xf6,0x24,0x7a,0x30,0xfb,0x30,0x1e,0x27, +0x52,0x1c,0xcc,0x12,0x15,0x6,0x46,0xf7,0x76,0xf0,0x29,0xee, +0x95,0xe1,0xee,0xd6,0xd7,0xdd,0x41,0xe5,0x2b,0xe6,0x17,0xef, +0x30,0xfe,0xfb,0xb,0x65,0x16,0x86,0x18,0xf6,0x15,0x7a,0x12, +0x7e,0x9,0x1a,0xff,0x81,0xf9,0xb2,0xf4,0xf6,0xec,0x92,0xe6, +0xb3,0xe9,0xb2,0xf2,0x1d,0xf3,0xe9,0xeb,0xa7,0xe9,0x7b,0xf0, +0x2f,0x0,0xe8,0x10,0x48,0x13,0x6c,0x8,0xcb,0xff,0xc0,0xfd, +0xe7,0xfe,0xee,0x4,0x16,0xd,0x71,0xe,0x6,0x8,0x6c,0xff, +0x29,0xfb,0x11,0x1,0xd5,0x9,0x47,0x8,0x28,0xfe,0x93,0xf1, +0xf8,0xe5,0x77,0xe6,0xc4,0xf6,0x6d,0x7,0xae,0xd,0x5f,0x11, +0x37,0x17,0xf7,0x16,0x80,0x12,0xa1,0x12,0x26,0x13,0xac,0x14, +0x79,0x1a,0x50,0x17,0x5c,0xb,0x92,0x5,0xd1,0x2,0x64,0x0, +0x93,0x2,0x50,0x2,0x91,0xff,0x69,0x1,0x2a,0x5,0xc0,0xb, +0xfe,0x18,0x5a,0x28,0x72,0x34,0x34,0x39,0xab,0x33,0xae,0x27, +0x61,0x1e,0x25,0x1b,0x9c,0x16,0xe0,0xd,0x57,0x6,0x1e,0xff, +0xbf,0xf7,0x6c,0xf3,0x19,0xee,0x86,0xe9,0x4,0xed,0x50,0xf0, +0x8a,0xea,0xbd,0xe2,0x5f,0xde,0x1a,0xdd,0x7c,0xe1,0x8e,0xea, +0xc4,0xf1,0x21,0xf3,0xb9,0xf1,0x4,0xf5,0xc0,0xfb,0xa8,0xfd, +0xcf,0xfe,0x1f,0x3,0x2a,0x2,0xcc,0xfd,0xab,0xfa,0x66,0xf3, +0xdc,0xec,0x42,0xec,0x4c,0xf0,0x2a,0xfd,0x62,0x7,0x3b,0x5, +0x19,0x7,0xd4,0xb,0x3d,0x9,0x91,0xc,0x75,0x14,0x46,0x12, +0x7f,0xa,0x58,0x6,0xaf,0x4,0xd0,0xfb,0x95,0xef,0x12,0xf0, +0xf1,0xf1,0xaa,0xe8,0x2e,0xe4,0xa9,0xeb,0xf8,0xf8,0x8a,0x1, +0xfb,0x2,0x19,0x15,0x4,0x33,0xaa,0x38,0x51,0x27,0x3b,0x12, +0x95,0x8,0x9,0xd,0xf0,0x2,0xb4,0xf1,0x41,0xfc,0xe8,0xd, +0x28,0x10,0xc2,0xc,0xe3,0xa,0x6b,0x12,0x72,0xf,0x98,0xf2, +0x99,0xe0,0x14,0xdf,0xac,0xd7,0x90,0xdb,0x85,0xef,0x56,0xfc, +0x47,0xf8,0xc2,0xee,0x1a,0xf2,0xe,0xf9,0xc0,0xfa,0xab,0x1, +0x64,0xfd,0xc5,0xed,0xe1,0xea,0x82,0xe9,0xeb,0xea,0xa5,0xf3, +0xa5,0xed,0x50,0xea,0x85,0xee,0x59,0xe0,0x80,0xda,0x71,0xe2, +0xd0,0xda,0xe1,0xda,0x25,0xf1,0xe0,0xd,0x77,0x29,0x39,0x31, +0xbc,0x29,0xb1,0x24,0x94,0x16,0x91,0x1,0xa5,0xf2,0x6a,0xf2, +0xcb,0x3,0x5e,0x6,0x50,0xf5,0x42,0xf1,0x78,0xeb,0xfc,0xda, +0xcc,0xd6,0x73,0xd7,0x7c,0xd8,0xfe,0xda,0x5f,0xd5,0xb6,0xd8, +0x26,0xe8,0xaf,0xf0,0xeb,0xfa,0x70,0x8,0x42,0xc,0x97,0xa, +0x34,0xb,0xb7,0x10,0x8b,0x10,0xac,0x7,0x69,0xb,0x6b,0x13, +0xb8,0xb,0x7f,0x2,0x95,0xf5,0x7c,0xdc,0xa9,0xcc,0x39,0xcb, +0xad,0xcd,0x37,0xd2,0x9,0xd6,0x8e,0xe1,0xc8,0xf8,0xe3,0xa, +0x5c,0x10,0x8c,0xc,0xb9,0x5,0xbf,0x5,0x28,0x9,0xee,0x8, +0x9c,0x4,0x1c,0xfb,0x6c,0xf6,0x87,0xfc,0xc0,0x0,0x72,0x0, +0xa9,0xfd,0x5b,0xf2,0x8d,0xe8,0xff,0xea,0x21,0xec,0xcc,0xe0, +0x17,0xd1,0x2f,0xca,0x3c,0xd3,0x92,0xe7,0x55,0xf9,0xe1,0xfe, +0x58,0xfc,0x81,0xf9,0xcc,0xf3,0xc4,0xe8,0xb2,0xdf,0xc7,0xe0, +0x80,0xed,0xe0,0xf9,0x18,0xfb,0xaf,0xfa,0x1b,0xfc,0x63,0xfa, +0x97,0x0,0x7c,0x8,0x32,0x0,0xa0,0xf8,0x3d,0xfa,0x37,0xf5, +0xc0,0xf0,0xa5,0xf1,0x8e,0xf0,0x78,0xf6,0x35,0x1,0xc0,0x7, +0x73,0xe,0x31,0xd,0x5d,0x2,0x24,0xfe,0x42,0xff,0x7a,0x2, +0xe,0xe,0xce,0x19,0x60,0x1a,0x1a,0x11,0x5f,0x8,0xde,0x5, +0xbc,0x1,0x6a,0xfb,0xdf,0xf8,0x5,0xf7,0xa3,0xf7,0x41,0xfa, +0x6a,0xf9,0x1b,0xfa,0xbb,0xf7,0x20,0xef,0x41,0xf1,0x47,0xf9, +0xeb,0xf6,0xab,0xf4,0x3e,0xf9,0x68,0xfe,0xd5,0x2,0x5d,0x3, +0xf7,0xfe,0xc6,0xf6,0x53,0xee,0xb1,0xef,0xf6,0xf5,0x16,0xf5, +0x4a,0xf1,0x65,0xed,0x86,0xeb,0x69,0xf2,0x3,0xfb,0xe8,0x0, +0xb6,0x7,0xd1,0x6,0xdc,0xfe,0x87,0xfc,0xc2,0xfc,0xdb,0xfb, +0xa5,0xfe,0xba,0x3,0x21,0xa,0x30,0xd,0xa2,0x2,0xb7,0xf2, +0x21,0xec,0xeb,0xea,0x4b,0xea,0x8d,0xeb,0xf5,0xea,0xa5,0xea, +0xe7,0xf0,0x9f,0xf9,0x58,0x1,0x2e,0xc,0x20,0x17,0x5c,0x19, +0x49,0x15,0xde,0x14,0x36,0x18,0xec,0x18,0x28,0x15,0xba,0xe, +0x37,0xb,0xf8,0xe,0x51,0x18,0x85,0x25,0x52,0x2e,0x8b,0x28, +0x6a,0x1b,0x90,0x10,0x63,0xa,0x1c,0xb,0x42,0x7,0x52,0xfa, +0x66,0xf7,0x3b,0xfe,0x77,0x0,0x6d,0x2,0xbb,0x6,0xb4,0xb, +0x3b,0x12,0x9e,0x15,0x34,0x19,0x88,0x1e,0xa5,0x1d,0x13,0x1d, +0x85,0x20,0xa2,0x1f,0x9f,0x1d,0x70,0x19,0xac,0xd,0xb1,0x5, +0x45,0x7,0x53,0x9,0x70,0x8,0xa2,0x8,0x23,0xb,0x85,0xd, +0x14,0x12,0x4,0x15,0x1d,0xb,0x3e,0x1,0x52,0x5,0xfc,0x6, +0x12,0x3,0x8d,0x4,0x83,0x4,0xa,0x2,0x62,0x1,0x21,0xff, +0xf0,0xfe,0x4c,0xff,0x83,0xfe,0x1e,0x6,0x28,0x10,0x11,0x14, +0x91,0x17,0x3b,0x16,0x8b,0xe,0x78,0xa,0x64,0x7,0x8b,0x3, +0x88,0x3,0x7f,0x0,0xee,0xf8,0x7,0xf6,0x1a,0xf7,0xe7,0xf8, +0xed,0xfd,0x7a,0x1,0x2b,0xfc,0x4b,0xf2,0x85,0xec,0x68,0xeb, +0x63,0xea,0x4f,0xea,0x3a,0xf1,0x6e,0xfd,0xbc,0x7,0x38,0x10, +0xc5,0x16,0xa9,0x19,0x92,0x1d,0x40,0x21,0x74,0x1f,0x34,0x1c, +0x68,0x1a,0x31,0x1b,0x5e,0x20,0xa9,0x23,0xfb,0x21,0x1a,0x1e, +0xb8,0x18,0xc3,0x17,0xb2,0x1a,0x1d,0x18,0xcb,0x13,0xc6,0x11, +0xa2,0xb,0x1e,0x2,0xdd,0xf9,0x65,0xf6,0x48,0xfb,0x94,0x3, +0xb,0x8,0x9d,0x7,0x67,0x4,0x48,0x2,0x89,0x3,0x43,0x9, +0x36,0x11,0xf9,0x14,0xfb,0x15,0xbe,0x15,0x8c,0xf,0x1a,0xa, +0x9e,0xb,0xe5,0xe,0x49,0x14,0xf8,0x17,0xc7,0x13,0x7b,0x10, +0x87,0xd,0x1b,0x3,0xb2,0xfb,0xe2,0xf8,0x80,0xf0,0x82,0xec, +0xed,0xf3,0x44,0xf9,0x80,0xf8,0xd2,0xf9,0x84,0xff,0x5,0x6, +0xa2,0x8,0x47,0x8,0xf,0xa,0xd3,0xc,0x2d,0xe,0x6b,0xc, +0x9,0x2,0x21,0xf4,0x64,0xee,0x45,0xed,0x6f,0xec,0xcf,0xef, +0x5e,0xf2,0xb6,0xf1,0xb8,0xf4,0xd5,0xf7,0x74,0xf7,0xf2,0xf9, +0x5b,0xfc,0xfe,0xf8,0xe5,0xf6,0xf9,0xf9,0xb2,0xfc,0xd1,0xfd, +0x7a,0x0,0x80,0x6,0x1b,0x10,0x1b,0x19,0x2f,0x1d,0x4b,0x1f, +0x58,0x22,0xf6,0x22,0xa6,0x1d,0xbc,0x13,0xa4,0xb,0xfa,0x8, +0x7e,0x8,0x70,0xa,0x60,0xd,0xf9,0x7,0x20,0xfe,0xeb,0xfc, +0x9,0x1,0xcb,0x2,0xd1,0x3,0x2,0x3,0x2e,0xfd,0xda,0xf6, +0xe3,0xf7,0x8a,0xfe,0x8,0x1,0xfe,0xfd,0xed,0xf9,0x5,0xf5, +0x51,0xf1,0x99,0xf0,0x88,0xf0,0x76,0xf1,0xc3,0xf3,0x7a,0xf7, +0xca,0xfe,0xd3,0x7,0x56,0x10,0x60,0x18,0x7f,0x1d,0x7e,0x1f, +0xee,0x1e,0xea,0x19,0x52,0x12,0x8a,0x9,0x97,0xfe,0x7f,0xf5, +0xf,0xf2,0x71,0xf1,0x3c,0xef,0x85,0xec,0xe7,0xed,0x28,0xf1, +0x4d,0xf1,0xf7,0xf0,0x32,0xf4,0x9,0xfc,0x22,0x7,0xca,0xf, +0x4d,0x12,0xa1,0xf,0x20,0xb,0x4,0xa,0xb9,0x9,0x80,0x3, +0xd9,0xfc,0xfe,0xfc,0xa,0x0,0x17,0x2,0xf4,0x3,0x85,0x5, +0x76,0x5,0x6e,0x3,0x6e,0x1,0xf7,0x0,0x2e,0x0,0x4,0xff, +0x4e,0x1,0xd6,0x6,0x97,0x9,0xfd,0x6,0xe8,0x2,0xb0,0x1, +0xe5,0x2,0x79,0x0,0x1d,0xf9,0x23,0xf5,0x4d,0xf6,0x78,0xf6, +0x2c,0xf6,0x79,0xf6,0xfb,0xf5,0xe1,0xf7,0xc3,0xf9,0x7c,0xf7, +0xa6,0xf9,0xba,0x2,0x34,0x6,0x4c,0x2,0xd,0xff,0x39,0xfb, +0x90,0xf5,0x53,0xf1,0x87,0xea,0x6d,0xdf,0x8c,0xd8,0x51,0xd9, +0x38,0xdc,0x9d,0xdd,0x97,0xdf,0xae,0xe4,0x9d,0xe9,0x51,0xed, +0xa7,0xf4,0xb1,0xfd,0x62,0x5,0x54,0xc,0xcd,0xa,0xf7,0xff, +0x9d,0xf8,0x90,0xf6,0x5d,0xf6,0x67,0xf9,0xf3,0xf9,0xfd,0xf5, +0x94,0xf4,0xec,0xf5,0xde,0xf6,0x5b,0xf7,0x3b,0xf7,0x12,0xf7, +0x7f,0xf6,0xd4,0xf4,0x4b,0xf2,0x7c,0xee,0xc9,0xeb,0x4f,0xec, +0x3e,0xee,0x2,0xf0,0xc6,0xef,0xf4,0xee,0xa0,0xf2,0xb3,0xf7, +0xa8,0xf7,0xab,0xf3,0xd6,0xef,0xd4,0xef,0x3d,0xf4,0x44,0xf9, +0x8f,0xfd,0x46,0x1,0xae,0x3,0x26,0x5,0xd5,0x3,0x3d,0xff, +0x84,0xfb,0x1c,0xfa,0xca,0xfa,0xd5,0xfc,0x38,0xfc,0x9,0xfb, +0xae,0xff,0xdd,0x5,0xf6,0x5,0xe6,0x1,0x92,0xfe,0x5c,0xfd, +0x1a,0xfc,0x57,0xf7,0x8,0xf1,0x7c,0xee,0xf5,0xf0,0x23,0xf8, +0x34,0x1,0x0,0x5,0x9,0x2,0xfd,0xfc,0x1,0xf9,0x2f,0xf8, +0x91,0xf8,0x94,0xf7,0x82,0xf9,0xef,0xfc,0x32,0xfc,0xf3,0xfc, +0x35,0x0,0xba,0xfc,0xfb,0xf4,0xb6,0xf0,0xb0,0xef,0xbf,0xf0, +0x30,0xf1,0x7c,0xee,0xe2,0xeb,0x23,0xeb,0xe7,0xeb,0x6,0xf0, +0xd1,0xf5,0xc5,0xf7,0x8,0xf4,0x97,0xee,0xc6,0xeb,0x30,0xec, +0x41,0xef,0x82,0xf3,0xd4,0xf7,0xe5,0xfd,0xb9,0x3,0xd6,0x4, +0x44,0x2,0x7e,0xfd,0x31,0xf8,0x12,0xf7,0x6f,0xf9,0x45,0xfc, +0xa9,0x0,0x9b,0x5,0x39,0x9,0x2b,0xb,0xd,0xa,0xd9,0x6, +0xeb,0x2,0xef,0xfc,0xde,0xf5,0x16,0xf0,0xd1,0xec,0xe4,0xec, +0x90,0xef,0x6b,0xf4,0x76,0xfa,0xdb,0xfd,0x34,0xfe,0xcc,0xfd, +0x72,0xfb,0xc4,0xf8,0xba,0xfb,0xe6,0x3,0xe4,0xa,0xca,0xd, +0x47,0xd,0x56,0xa,0xdb,0x6,0xd1,0x4,0x15,0x5,0x5a,0x7, +0xec,0x8,0x0,0x7,0x2,0x2,0x3c,0xfc,0x8b,0xf8,0x6e,0xf8, +0x64,0xf9,0x97,0xf8,0x46,0xf6,0xc3,0xf2,0x3e,0xee,0x4f,0xec, +0x43,0xf0,0xef,0xf7,0xc2,0x0,0x79,0x9,0x35,0xd,0x82,0xa, +0x80,0x6,0x9a,0x2,0x21,0xfe,0x20,0xfb,0xf,0xfb,0x2c,0xff, +0x8b,0x4,0x7a,0x5,0x9e,0x3,0x84,0x0,0x9a,0xfa,0x3c,0xf7, +0x92,0xf8,0xa7,0xf8,0x1e,0xf7,0x38,0xf7,0xd6,0xf9,0x29,0xff, +0x78,0x4,0x50,0x7,0x70,0x8,0xb2,0x7,0xc6,0x4,0x4,0x0, +0xa1,0xfa,0x6b,0xf8,0xbf,0xfa,0x22,0xff,0x49,0x5,0xe2,0xb, +0xf0,0xc,0x5f,0x7,0x86,0x1,0xe8,0xfd,0xe6,0xfa,0xc,0xfa, +0x45,0xfc,0x8b,0xff,0xb0,0x2,0x26,0x4,0x4c,0x3,0x3b,0x2, +0x2f,0x1,0x58,0xff,0x36,0xfe,0x8c,0xfe,0x1b,0x0,0xb4,0x3, +0xb,0x8,0x27,0xa,0xea,0xa,0xc7,0xb,0x5b,0xa,0xea,0x6, +0xe4,0x3,0xeb,0xff,0xfa,0xfb,0x49,0xfb,0x7e,0xfc,0xd0,0xfe, +0x7e,0x2,0xac,0x4,0x41,0x4,0xee,0x1,0x3f,0xfe,0xb9,0xfb, +0x3f,0xfc,0x4f,0xff,0x71,0x2,0x9c,0x3,0xf6,0x5,0x9,0xc, +0xef,0x11,0x10,0x14,0xa2,0x12,0x40,0xf,0xe6,0xa,0x6b,0x6, +0x0,0x5,0x51,0x6,0x23,0x5,0xa5,0x1,0xa2,0xfe,0x8b,0xfb, +0x69,0xfa,0xd8,0xfc,0x82,0xff,0x40,0x1,0x9a,0x3,0x5a,0x5, +0xcf,0x4,0x80,0x3,0xde,0x3,0x7c,0x6,0x2c,0xb,0x22,0x10, +0xfc,0x10,0xb1,0xb,0x20,0x3,0x3a,0xfc,0x32,0xfa,0x34,0xfc, +0x2c,0x1,0xa,0x9,0x9a,0xf,0xe5,0x10,0x48,0xf,0xa5,0xc, +0xff,0x7,0x88,0x3,0x42,0x2,0x2e,0x3,0x7a,0x4,0x37,0x5, +0xf7,0x3,0xf8,0x0,0x88,0xfe,0xec,0xfd,0xeb,0xfe,0xc1,0x0, +0x44,0x3,0xbe,0x6,0x8b,0x9,0x7,0xa,0xe0,0x8,0x94,0x6, +0x6c,0x4,0x6e,0x5,0x80,0x9,0xbf,0xc,0x71,0xd,0x25,0xe, +0x15,0x10,0x99,0x10,0xd2,0xe,0x74,0xb,0x6d,0x5,0x76,0xfe, +0x58,0xfa,0xf2,0xf8,0x3d,0xf8,0x72,0xf7,0xce,0xf6,0xa,0xf7, +0xf0,0xf8,0xb,0xfd,0x5e,0x1,0x88,0x3,0x6b,0x5,0xc7,0x8, +0x7f,0xd,0x80,0x14,0xb3,0x1a,0xf,0x1b,0x67,0x17,0x49,0x13, +0x7d,0xe,0xbb,0x9,0xca,0x6,0xdb,0x4,0x8e,0x2,0xe2,0x0, +0x8,0x1,0xe7,0x1,0xc0,0x1,0x9b,0xff,0xa8,0xfb,0xe1,0xf7, +0xd3,0xf6,0x2c,0xfa,0x35,0x1,0x48,0x8,0xd9,0xc,0x16,0x10, +0x31,0x13,0x30,0x15,0x1,0x16,0x2b,0x17,0x44,0x17,0x22,0x13, +0x85,0xc,0xb,0x8,0xad,0x6,0x58,0x6,0x21,0x6,0xb0,0x7, +0x8,0xc,0x4a,0x11,0xb7,0x15,0x4f,0x18,0xfb,0x17,0xc3,0x15, +0xe3,0x13,0xd4,0x12,0x95,0x11,0xc1,0xf,0x31,0xe,0x67,0xc, +0x95,0x8,0x0,0x3,0x14,0xfd,0xf5,0xf7,0x68,0xf4,0x22,0xf1, +0x9c,0xed,0x5f,0xec,0x15,0xee,0xa9,0xf0,0xb1,0xf3,0x39,0xf8, +0xfe,0xfd,0x5c,0x3,0xcf,0x6,0x86,0x8,0x11,0xb,0xba,0xf, +0xf0,0x12,0xc7,0x11,0x6a,0xe,0x6f,0xa,0x19,0x5,0x9b,0xff, +0x26,0xfc,0xf0,0xfa,0xf9,0xfa,0x44,0xfc,0xab,0xff,0x72,0x4, +0x7a,0x8,0x78,0xa,0x25,0xa,0x45,0x8,0x6e,0x6,0xab,0x4, +0xb9,0x1,0xfe,0xfe,0x1b,0xff,0x8f,0x0,0xfb,0x0,0x39,0x1, +0x5,0x2,0x61,0x3,0x69,0x4,0x82,0x2,0x99,0xff,0x78,0x1, +0xce,0x7,0xb2,0xc,0x8b,0xc,0xfb,0x8,0xdd,0x5,0xb2,0x4, +0xf0,0x4,0xfe,0x4,0x7,0x2,0x4a,0xfc,0xac,0xf7,0xa5,0xf5, +0x89,0xf4,0x25,0xf4,0xe5,0xf5,0x3,0xf8,0x28,0xf7,0x38,0xf4, +0xbe,0xf1,0x31,0xf1,0xc,0xf4,0x28,0xf9,0xc0,0xfd,0x7f,0x0, +0xaf,0x0,0x56,0xff,0xff,0xfd,0xf0,0xfc,0xe4,0xfc,0x31,0xfc, +0x93,0xf7,0x1e,0xf0,0x7d,0xe9,0x77,0xe6,0x68,0xe7,0xe2,0xe9, +0x16,0xed,0x50,0xf2,0x81,0xf9,0x2b,0x0,0xf8,0x1,0x73,0xfe, +0xb4,0xfa,0x9e,0xf9,0x82,0xfa,0x8f,0xfb,0x68,0xf9,0xba,0xf3, +0xa8,0xef,0xe9,0xf0,0x11,0xf5,0x36,0xf8,0x98,0xf9,0xf,0xfa, +0x2a,0xfb,0xc4,0xfd,0x47,0xff,0x64,0xfe,0x21,0xfd,0x14,0xfc, +0x69,0xfb,0x71,0xfb,0xd,0xfb,0xd5,0xf9,0xf3,0xf7,0xc3,0xf6, +0xdd,0xf7,0x7a,0xf8,0x13,0xf6,0xf9,0xf1,0x76,0xed,0x5b,0xeb, +0x7f,0xed,0xe9,0xef,0xb0,0xef,0x1,0xef,0xfb,0xef,0xda,0xf1, +0xca,0xf2,0x23,0xf3,0xf0,0xf3,0x7f,0xf4,0xf4,0xf4,0x1c,0xf6, +0x1d,0xf7,0x63,0xf7,0x0,0xf8,0x29,0xfa,0xbe,0xfd,0xfe,0x0, +0x8,0x1,0xc1,0xfc,0xb2,0xf6,0x11,0xf1,0x88,0xed,0xd2,0xee, +0xfb,0xf1,0xfc,0xf0,0xab,0xec,0x51,0xe8,0x65,0xe5,0xc9,0xe4, +0x6f,0xe5,0x7,0xe8,0x4a,0xee,0xc6,0xf5,0x9c,0xfb,0xcc,0xfe, +0x7e,0x0,0x8f,0x3,0x8d,0x6,0xa6,0x6,0x1b,0x5,0xed,0x2, +0x4d,0x0,0x61,0xfd,0x6b,0xf9,0x66,0xf5,0x7d,0xf2,0x84,0xf1, +0xba,0xf3,0x9d,0xf7,0x55,0xfb,0x9f,0xfd,0x4,0xfc,0x75,0xf8, +0x7a,0xf7,0x6c,0xf9,0xce,0xfc,0xd1,0xff,0x43,0x1,0xba,0x1, +0xcf,0x0,0xef,0xfe,0x41,0xfd,0x66,0xfa,0x4d,0xf7,0xdd,0xf6, +0x5e,0xf7,0x9e,0xf6,0x96,0xf6,0x1,0xf9,0x31,0xfd,0x7b,0x2, +0xb3,0x7,0x53,0xa,0x75,0xa,0x5f,0xa,0x70,0x9,0x5a,0x7, +0x84,0x6,0xcd,0x5,0xf4,0x1,0xa1,0xfc,0x52,0xfa,0x4a,0xfc, +0x19,0xff,0xb3,0xfe,0xc2,0xfb,0xff,0xf9,0x7b,0xfa,0x4d,0xfb, +0xab,0xfa,0x7e,0xf8,0xcf,0xf6,0x23,0xf8,0xd7,0xfc,0x94,0x2, +0xcd,0x5,0x30,0x5,0x9,0x3,0x8d,0x1,0x46,0x1,0xa5,0x2, +0x1e,0x5,0x1,0x7,0xf8,0x6,0x7b,0x4,0xe8,0xff,0x1,0xfa, +0xa6,0xf4,0x2d,0xf2,0xcb,0xf1,0xbc,0xf1,0x96,0xf2,0x3f,0xf5, +0x2b,0xfa,0x8f,0xff,0xce,0x1,0x82,0x1,0xae,0x0,0x63,0xfe, +0x5f,0xfb,0x54,0xf9,0x48,0xf8,0x76,0xf8,0xce,0xf8,0x49,0xf8, +0x6e,0xf8,0xf2,0xf9,0x22,0xfc,0x44,0xfe,0x35,0xff,0xcd,0xfe, +0xe4,0xfd,0x6b,0xfd,0x18,0xfe,0x22,0xff,0xc3,0xff,0x7d,0x0, +0xc2,0x0,0xc3,0xff,0x9,0xff,0x52,0x0,0x82,0x2,0x27,0x4, +0x4a,0x6,0xa6,0x8,0x1a,0x8,0x6c,0x4,0x9f,0x1,0x49,0x2, +0x37,0x5,0x96,0x7,0x36,0x7,0x1,0x5,0x35,0x5,0x24,0x9, +0xcc,0xc,0x26,0xe,0xbe,0xe,0x95,0xe,0xf4,0xc,0x7f,0xa, +0x17,0x8,0x0,0x6,0xcb,0x3,0xd5,0x1,0xd8,0x0,0x4a,0x0, +0xc4,0xff,0x60,0xfe,0x68,0xfb,0x7c,0xf9,0x11,0xfa,0x7,0xfb, +0x87,0xfc,0xba,0xff,0xd3,0x2,0x55,0x4,0x56,0x4,0x48,0x3, +0x88,0x2,0xb4,0x2,0xe1,0x2,0xdc,0x2,0xc2,0x2,0xc,0x2, +0x7e,0x1,0x5b,0x2,0x24,0x4,0xad,0x5,0xe,0x6,0x58,0x5, +0xb5,0x4,0x82,0x4,0x27,0x5,0x27,0x7,0x2f,0x9,0x63,0xa, +0x6b,0xa,0x51,0x8,0x5e,0x6,0xf2,0x6,0x4c,0x8,0x98,0x9, +0xf3,0xa,0x91,0xa,0x76,0x8,0xf9,0x6,0x60,0x7,0x90,0x8, +0x6c,0x8,0xe6,0x6,0x30,0x6,0x36,0x8,0xfe,0xb,0xd7,0xd, +0x73,0xc,0xe3,0x9,0xeb,0x7,0xdf,0x7,0xc0,0x9,0x59,0xb, +0xb3,0xa,0xf8,0x7,0x9e,0x6,0x3c,0x9,0xf7,0xc,0x9,0xf, +0xee,0xf,0x63,0x10,0xb3,0x10,0xc7,0xf,0x17,0xd,0x23,0xa, +0xa8,0x6,0xc7,0x2,0x82,0x0,0xc3,0xff,0x3f,0x0,0x9a,0x1, +0xc7,0x1,0xda,0x0,0x3f,0x0,0x64,0x0,0xb8,0x1,0xa,0x3, +0x56,0x3,0x14,0x4,0xe,0x6,0x53,0x8,0xb6,0x8,0xd1,0x5, +0xbf,0x2,0xd0,0x2,0x31,0x4,0x86,0x4,0xd7,0x4,0xbb,0x5, +0x5a,0x5,0x3b,0x3,0xf,0x1,0x62,0xff,0xfa,0xfd,0xd4,0xfc, +0x5e,0xfb,0xa8,0xf9,0xc9,0xf8,0x3a,0xf9,0xb8,0xf9,0x6f,0xf8, +0xab,0xf6,0x49,0xf7,0xde,0xf9,0xf,0xfd,0x46,0x1,0xd1,0x5, +0xa2,0x8,0x5a,0x9,0xe1,0x9,0x2c,0xb,0x7b,0xb,0xd3,0x9, +0x5d,0x7,0xa3,0x4,0xd,0x2,0xa,0x1,0xe9,0x1,0x71,0x3, +0xcd,0x4,0xf6,0x4,0x15,0x3,0x47,0x1,0x64,0x1,0xf4,0x1, +0xa6,0x3,0x2f,0x8,0x92,0xc,0xcd,0xe,0xf3,0xf,0xac,0xe, +0x20,0xb,0x15,0x9,0x21,0x9,0xa7,0x8,0x8c,0x6,0xa5,0x3, +0x45,0x1,0x1c,0x0,0x39,0x0,0x74,0x1,0x55,0x3,0x4,0x5, +0x4e,0x5,0xf4,0x3,0x2b,0x2,0xe0,0x0,0x1b,0x1,0x94,0x3, +0x33,0x5,0x87,0x2,0x16,0xfe,0xbc,0xfb,0x32,0xfb,0xcb,0xfb, +0x53,0xfd,0xbc,0xfd,0x81,0xfc,0x66,0xfb,0x5a,0xfa,0x1a,0xf9, +0xdd,0xf9,0x18,0xfd,0x50,0xff,0x94,0xfe,0xe1,0xfc,0x7a,0xfb, +0x51,0xfa,0x4,0xfa,0xbc,0xf9,0x3c,0xf9,0x1c,0xfb,0x38,0xff, +0x1,0x3,0xb,0x6,0x28,0x7,0xeb,0x4,0x6f,0x1,0xf7,0xfe, +0x2f,0xfd,0x4e,0xfb,0x9e,0xf9,0xfd,0xf8,0x42,0xf9,0xe5,0xf9, +0x7e,0xfb,0x64,0xfe,0x1c,0x1,0x6f,0x1,0xb7,0xff,0xd9,0xfe, +0x4e,0xff,0x61,0xff,0xae,0xfe,0x5,0xfd,0xe5,0xfa,0x3a,0xfa, +0xe3,0xfa,0x74,0xfb,0x43,0xfc,0x6d,0xfd,0x39,0xfe,0xaf,0xff, +0x71,0x3,0xac,0x8,0x2c,0xd,0xd6,0xf,0x2d,0x10,0x52,0xe, +0xfa,0xb,0x86,0xa,0x42,0x9,0xa4,0x6,0x8c,0x2,0xa9,0xfe, +0x30,0xfc,0xef,0xfa,0x46,0xfa,0x2d,0xf9,0x39,0xf8,0xf8,0xf9, +0xd9,0xfd,0xcd,0x0,0xf9,0x2,0xa4,0x5,0x49,0x7,0x4d,0x6, +0xc,0x3,0x2b,0xfe,0x48,0xf8,0xbd,0xf2,0x90,0xee,0xee,0xeb, +0xc,0xeb,0x33,0xeb,0xb1,0xea,0x38,0xea,0xfd,0xeb,0xe3,0xee, +0xb1,0xf0,0x5,0xf2,0x43,0xf3,0xf5,0xf3,0x84,0xf5,0x13,0xf8, +0x4e,0xf9,0x6b,0xf9,0xa1,0xfa,0xd6,0xfc,0xbb,0xfe,0x4,0x0, +0xbe,0x0,0x22,0x1,0x63,0x1,0x4a,0x0,0xb2,0xfc,0x57,0xf8, +0x52,0xf5,0xde,0xf3,0xb7,0xf4,0xab,0xf7,0x53,0xfa,0x32,0xfc, +0xf3,0xfd,0x17,0xff,0x9f,0x0,0x86,0x3,0xfa,0x5,0xdb,0x6, +0x32,0x7,0x84,0x7,0xf9,0x6,0x46,0x5,0xb5,0x3,0x4b,0x2, +0x5b,0xff,0x9a,0xfb,0xbf,0xf9,0xac,0xfa,0x2,0xfd,0xe3,0xfe, +0x9c,0xff,0x86,0xff,0x3c,0xff,0x29,0x0,0x95,0x2,0x73,0x4, +0x45,0x5,0xa3,0x6,0x12,0x8,0x92,0x7,0xf1,0x4,0x8a,0x1, +0xff,0xfe,0x77,0xfe,0x7,0xff,0xc4,0xfe,0xf7,0xfd,0x8b,0xfd, +0x9,0xfd,0xb,0xfd,0xa2,0xfd,0x45,0xfc,0xee,0xf8,0x22,0xf7, +0x8b,0xf8,0xc4,0xfb,0x32,0xfe,0x4f,0xfe,0x46,0xfd,0xe4,0xfc, +0xec,0xfd,0x44,0xff,0x86,0xfe,0x8e,0xfc,0xa4,0xfc,0x8a,0xfe, +0x84,0xff,0x29,0xfe,0x62,0xfb,0x77,0xf9,0xe6,0xf8,0x39,0xf9, +0x95,0xfa,0x15,0xfb,0x33,0xfa,0x72,0xfa,0xbc,0xfa,0x4a,0xf9, +0x8a,0xf8,0x66,0xf9,0xa9,0xfa,0x3e,0xfc,0xc5,0xfd,0xbe,0xff, +0xe3,0x2,0x97,0x5,0xb3,0x6,0x69,0x6,0xb8,0x4,0xc1,0x2, +0x1d,0x2,0x1c,0x3,0xec,0x4,0xf1,0x5,0x76,0x5,0xe,0x4, +0x10,0x2,0x28,0x0,0x33,0xff,0x8f,0xfe,0x9e,0xfd,0x81,0xfd, +0x17,0xff,0xde,0x1,0x60,0x5,0xed,0x8,0x16,0xb,0x92,0xb, +0x39,0xb,0x5c,0xa,0xfa,0x8,0x31,0x7,0xf6,0x5,0x3e,0x6, +0x5a,0x6,0xc2,0x4,0x1e,0x3,0x42,0x2,0x5a,0x1,0x11,0x1, +0x1f,0x2,0xf2,0x3,0xaf,0x5,0x49,0x6,0xaa,0x5,0x53,0x5, +0x2d,0x6,0x71,0x7,0x10,0x8,0x83,0x7,0x6b,0x5,0x80,0x2, +0x9b,0x0,0xda,0xff,0x25,0xff,0xd7,0xfe,0x16,0xff,0xf0,0xfe, +0xe7,0xfd,0xab,0xfb,0xb8,0xf8,0xd1,0xf6,0xd0,0xf6,0x2,0xf8, +0x5f,0xf9,0x2c,0xfa,0x8d,0xfa,0x73,0xfb,0xac,0xfd,0x70,0x0, +0x48,0x2,0x17,0x4,0xd,0x7,0x3c,0x9,0x70,0x9,0xce,0x8, +0xe4,0x6,0x29,0x3,0xf,0x0,0x6a,0xff,0x21,0x0,0x3,0x1, +0xb7,0x1,0xfc,0x1,0x63,0x2,0xb8,0x2,0xb6,0x0,0x76,0xfc, +0x7e,0xf9,0x42,0xf9,0x6c,0xfa,0xde,0xfb,0xbf,0xfc,0xc2,0xfc, +0x66,0xfc,0x4b,0xfc,0x3d,0xfd,0xe6,0xfe,0xd3,0xff,0x63,0x0, +0xd6,0x1,0x5f,0x3,0xb7,0x3,0x60,0x3,0x36,0x3,0x4,0x3, +0xa6,0x2,0xc5,0x1,0x5e,0xff,0x5a,0xfc,0x94,0xfa,0x3f,0xf9, +0xd7,0xf7,0x5f,0xf8,0x1d,0xfb,0x83,0xfd,0x97,0xfd,0xdd,0xfb, +0x46,0xfa,0x95,0xf9,0x4a,0xf9,0xf6,0xf8,0xd1,0xf7,0xa6,0xf5, +0xdd,0xf3,0x70,0xf3,0xea,0xf3,0x4b,0xf4,0xf8,0xf3,0xff,0xf3, +0x3c,0xf6,0x32,0xfa,0xfb,0xfd,0xbf,0x1,0xe9,0x5,0xdb,0x8, +0x2e,0xa,0xb7,0xb,0xcd,0xd,0x83,0xe,0x48,0xc,0x4,0x8, +0x3d,0x4,0x4f,0x2,0x35,0x2,0x24,0x3,0x3f,0x3,0x8,0x2, +0x4,0x1,0xc7,0x0,0xe3,0x0,0xcf,0x0,0x11,0x0,0xb2,0xff, +0x28,0x1,0xcd,0x3,0x1,0x6,0x48,0x7,0xf7,0x7,0x41,0x8, +0x36,0x8,0xbf,0x7,0x82,0x6,0xc6,0x4,0x4a,0x3,0x61,0x2, +0x1,0x2,0x43,0x1,0x1,0xff,0xd1,0xfb,0xb7,0xf8,0x15,0xf6, +0xcc,0xf4,0x2b,0xf5,0x2c,0xf6,0xef,0xf6,0xca,0xf7,0x15,0xfa, +0xa9,0xfd,0x37,0x0,0x7d,0x1,0x88,0x3,0xf3,0x5,0x58,0x6, +0x5c,0x4,0xc1,0x1,0x6,0x0,0xa9,0xff,0x47,0x0,0x0,0x1, +0x6f,0x1,0xda,0x1,0xa8,0x2,0x22,0x4,0xe9,0x5,0xd6,0x6, +0x37,0x6,0xf,0x5,0xf,0x5,0x3f,0x6,0x97,0x7,0xe6,0x8, +0xfc,0x9,0x96,0xa,0x33,0xb,0x3,0xb,0x4e,0x8,0x19,0x4, +0x42,0x1,0xb,0x0,0x4f,0xfe,0xf2,0xfb,0x14,0xfb,0xfb,0xfb, +0x3d,0xfd,0x4f,0xfe,0x1d,0xff,0x7d,0xff,0xff,0xff,0xbf,0x1, +0xd9,0x4,0xb5,0x7,0x35,0x9,0x71,0x9,0x21,0x8,0x88,0x5, +0x11,0x3,0xc3,0x1,0x93,0x1,0x5f,0x1,0x41,0x0,0xb0,0xfe, +0x66,0xfd,0x3b,0xfd,0x63,0xfe,0x2f,0xff,0x63,0xfe,0x91,0xfc, +0xdd,0xfa,0xb0,0xfa,0x38,0xfc,0xf1,0xfd,0x58,0xff,0x59,0x1, +0x98,0x3,0x55,0x4,0xf6,0x3,0x92,0x4,0xd5,0x5,0x9d,0x6, +0x5b,0x7,0x75,0x7,0x2d,0x6,0x3,0x5,0x77,0x5,0x25,0x7, +0x32,0x8,0x87,0x7,0x33,0x6,0xa6,0x4,0x7a,0x2,0x9e,0x0, +0x9,0x0,0xdb,0x0,0x40,0x2,0x5c,0x2,0x42,0x1,0x1f,0x1, +0x49,0x2,0x2,0x3,0x8d,0x2,0xdf,0x1,0x3b,0x1,0xe,0x0, +0x36,0xff,0x58,0xff,0x67,0xff,0x7,0xff,0x5c,0xfe,0x54,0xfd, +0xe5,0xfc,0x58,0xfd,0x95,0xfd,0xde,0xfd,0x6c,0xff,0x2c,0x2, +0x5,0x5,0xf1,0x6,0x45,0x7,0x42,0x6,0x35,0x5,0xf4,0x4, +0xc5,0x4,0x47,0x3,0x8,0x0,0x80,0xfc,0x1f,0xfb,0x74,0xfc, +0x3f,0xfe,0x3c,0xfe,0xc8,0xfc,0x57,0xfb,0x3,0xfa,0xee,0xf8, +0x15,0xf9,0x2a,0xfa,0x32,0xfb,0x96,0xfc,0xe4,0xfe,0x8b,0x1, +0xd6,0x3,0x5,0x5,0x52,0x4,0x9b,0x2,0x9a,0x1,0xf,0x1, +0x36,0x0,0x1b,0x0,0x1c,0x1,0x7c,0x1,0x39,0x0,0x63,0xfe, +0x31,0xfd,0x5c,0xfc,0x90,0xfb,0x6a,0xfb,0x6f,0xfb,0xa2,0xfa, +0x95,0xf9,0x53,0xf9,0x51,0xfa,0xa5,0xfb,0x3a,0xfb,0x74,0xf9, +0xaf,0xf8,0xf1,0xf8,0xb,0xf9,0xc0,0xf8,0x10,0xf8,0x8f,0xf7, +0x15,0xf8,0x4f,0xf9,0x27,0xfa,0x1c,0xfa,0xd8,0xf9,0x20,0xfa, +0xbf,0xfa,0x3e,0xfb,0xa4,0xfb,0xf4,0xfb,0xaf,0xfb,0xae,0xfa, +0xe3,0xf9,0xd1,0xf9,0xa1,0xf9,0xdf,0xf8,0xe4,0xf7,0xc9,0xf6, +0x4a,0xf5,0xdd,0xf3,0x50,0xf4,0x18,0xf7,0xd0,0xf9,0xf1,0xfa, +0x67,0xfb,0xc9,0xfb,0xe,0xfc,0xb6,0xfc,0x4,0xfe,0x46,0xff, +0x9c,0xff,0x62,0xff,0x8c,0xff,0xc4,0xff,0x75,0xff,0x8b,0xff, +0xe5,0x0,0x9a,0x2,0x59,0x3,0x57,0x3,0x82,0x3,0xe3,0x3, +0x43,0x4,0xb4,0x4,0x8,0x5,0x15,0x5,0x55,0x4,0xca,0x1, +0x7,0xfe,0x2b,0xfb,0xd9,0xf9,0xd9,0xf8,0xbd,0xf7,0x48,0xf7, +0xa6,0xf7,0x47,0xf8,0xbc,0xf8,0x2d,0xf9,0x83,0xfa,0xa0,0xfc, +0xed,0xfd,0x84,0xfe,0x44,0xff,0x89,0xfe,0x58,0xfb,0x81,0xf7, +0x39,0xf4,0x43,0xf2,0xe6,0xf2,0xea,0xf4,0x54,0xf5,0xd0,0xf3, +0x82,0xf2,0x62,0xf2,0x2,0xf3,0x5c,0xf4,0x30,0xf6,0x19,0xf8, +0xda,0xfa,0x71,0xfe,0x96,0x1,0x1e,0x4,0xc2,0x5,0x9d,0x5, +0x83,0x4,0xcb,0x3,0x60,0x3,0xd1,0x2,0x1,0x2,0xf4,0x0, +0x87,0xff,0x4b,0xfe,0xa3,0xfe,0xc9,0xff,0xbf,0xff,0x19,0xff, +0xd9,0xfe,0xcf,0xfe,0x77,0xff,0x1,0x1,0xd5,0x2,0xa2,0x4, +0xa9,0x5,0x92,0x5,0x3b,0x5,0xd8,0x4,0xb5,0x3,0x30,0x2, +0xa8,0x1,0x48,0x2,0x6,0x3,0x66,0x3,0xe4,0x2,0xf,0x1, +0x2d,0xff,0x58,0xfe,0x4a,0xfe,0xcb,0xfe,0x24,0xff,0x7e,0xfe, +0x85,0xfd,0x96,0xfd,0x88,0xff,0x8b,0x2,0x64,0x4,0x43,0x4, +0x1c,0x3,0xc8,0x1,0x9e,0x0,0x3c,0xff,0x78,0xfd,0x66,0xfc, +0xdb,0xfc,0x6a,0xfe,0xec,0xff,0x47,0x0,0x3d,0xff,0x3f,0xfd, +0x81,0xfb,0xb1,0xfb,0xfd,0xfd,0xe5,0x0,0xd2,0x2,0xb1,0x2, +0x6,0x1,0xcb,0xff,0x0,0x0,0xda,0x0,0x2c,0x1,0xb6,0x0, +0xeb,0xff,0xf6,0xfe,0xfa,0xfd,0x67,0xfd,0x40,0xfd,0x10,0xfd, +0xa7,0xfc,0x8e,0xfc,0x46,0xfd,0x0,0xfe,0xe4,0xfd,0xdc,0xfd, +0xe5,0xfe,0xba,0x0,0xb,0x3,0x8f,0x5,0x7a,0x7,0x75,0x8, +0xcb,0x8,0xb2,0x8,0x62,0x8,0x9d,0x7,0xcc,0x5,0xcd,0x3, +0xf2,0x2,0x6f,0x2,0x18,0x1,0x50,0xff,0x8b,0xfd,0x30,0xfc, +0x8,0xfc,0xa5,0xfc,0xf9,0xfc,0x57,0xfd,0x21,0xfe,0xba,0xfe, +0x29,0xff,0xf,0x0,0x79,0x1,0x50,0x3,0x5b,0x5,0xe9,0x6, +0x6e,0x7,0x12,0x7,0xe8,0x6,0x7a,0x7,0x2d,0x7,0xd0,0x4, +0x29,0x2,0x73,0x1,0xbf,0x2,0x75,0x4,0x41,0x5,0xe,0x5, +0x20,0x4,0x3,0x3,0xcc,0x2,0x8c,0x3,0xff,0x3,0xf0,0x2, +0xac,0x0,0x23,0xff,0xa,0xff,0xba,0xfe,0x4d,0xfd,0x8a,0xfb, +0x6b,0xfa,0xac,0xfa,0x3d,0xfc,0x64,0xfe,0x4f,0x0,0x3a,0x1, +0xfc,0x0,0xa,0x0,0x4e,0xff,0x5c,0xff,0x18,0xff,0xa0,0xfd, +0x1d,0xfc,0x84,0xfb,0xe3,0xfb,0x92,0xfd,0x21,0x0,0x23,0x2, +0xc,0x3,0x62,0x3,0x53,0x3,0xf0,0x2,0xf9,0x2,0x45,0x3, +0xcd,0x2,0x3,0x2,0x55,0x1,0xe3,0xff,0x42,0xfe,0xbe,0xfd, +0x94,0xfd,0xb9,0xfc,0xeb,0xfb,0x3,0xfc,0xbf,0xfc,0xeb,0xfd, +0xa8,0xff,0xe8,0x1,0xbc,0x4,0x73,0x7,0xa9,0x8,0xe5,0x8, +0x64,0x9,0x77,0x9,0x96,0x8,0x50,0x7,0xfc,0x5,0xff,0x4, +0x43,0x4,0xbd,0x2,0x87,0x0,0x50,0xff,0x9c,0xff,0x3a,0x0, +0xa5,0x0,0xc8,0x0,0x3,0x0,0xbd,0xfe,0x52,0xfd,0xe7,0xfa, +0xa3,0xf8,0xdf,0xf8,0xb,0xfb,0x9,0xfd,0x3c,0xfe,0x16,0xff, +0x4c,0xff,0x90,0xfe,0x48,0xfe,0x16,0xff,0x7,0x0,0x5c,0x1, +0x79,0x2,0x54,0x1,0xb6,0xfe,0xe4,0xfc,0xa4,0xfc,0x4c,0xfd, +0xef,0xfc,0x20,0xfb,0xac,0xf9,0x3e,0xf9,0x91,0xf9,0x8c,0xfa, +0xb2,0xfb,0xc9,0xfc,0x65,0xfd,0x15,0xfd,0x74,0xfc,0xee,0xfb, +0x9d,0xfb,0xcb,0xfb,0x37,0xfc,0xbe,0xfc,0x87,0xfd,0x37,0xfe, +0xa6,0xfe,0x3a,0xff,0x3d,0x0,0xf7,0x0,0x92,0x0,0x16,0x0, +0x4f,0x0,0x9e,0x0,0xb3,0x1,0xdb,0x3,0x26,0x5,0x2,0x5, +0x82,0x4,0xf5,0x3,0x77,0x3,0xf4,0x2,0x18,0x2,0x56,0x1, +0x2a,0x1,0x5,0x1,0x16,0x0,0x92,0xfe,0x18,0xfd,0x72,0xfb, +0xe0,0xf9,0x5b,0xf9,0x7c,0xf9,0x76,0xf9,0xbd,0xf9,0x97,0xfa, +0xf3,0xfb,0x0,0xfe,0x4c,0x0,0xce,0x1,0x8d,0x1,0x86,0xff, +0x6b,0xfd,0xa1,0xfc,0xfa,0xfc,0x6a,0xfe,0xc0,0x0,0x8d,0x2, +0x8,0x3,0xd8,0x2,0x67,0x2,0x77,0x1,0x42,0x0,0x9b,0xff, +0xd2,0xff,0x4e,0x0,0x31,0x0,0xf4,0xfe,0xf,0xfd,0xa0,0xfb, +0xda,0xfa,0x8b,0xfa,0xcc,0xfa,0xa2,0xfa,0xfc,0xf8,0xd3,0xf6, +0x87,0xf5,0x38,0xf5,0x97,0xf5,0x2b,0xf6,0xb1,0xf6,0xcb,0xf7, +0xa5,0xf9,0x34,0xfb,0x60,0xfc,0xf0,0xfd,0x28,0xff,0x1f,0xff, +0xc5,0xfe,0xf,0xff,0x7,0x0,0x7e,0x1,0x4f,0x2,0x6c,0x1, +0xbe,0xff,0x9a,0xfe,0x4c,0xfe,0xb7,0xfe,0x28,0xff,0x9,0xff, +0x1f,0xff,0xad,0xff,0x2b,0xff,0x83,0xfd,0x1a,0xfd,0xe9,0xfe, +0x3b,0x1,0x75,0x2,0x83,0x2,0x3b,0x2,0x41,0x2,0x79,0x2, +0xbf,0x2,0xf9,0x2,0xda,0x2,0xa2,0x2,0x7e,0x2,0xf7,0x1, +0x40,0x1,0xd6,0x0,0x2a,0x0,0xdb,0xfe,0x77,0xfd,0x4b,0xfc, +0x55,0xfb,0xe8,0xfa,0xfa,0xfa,0xd2,0xfa,0x45,0xfa,0xf2,0xf9, +0x25,0xfa,0xd9,0xfa,0x30,0xfc,0x2d,0xfe,0x95,0x0,0xfe,0x2, +0xca,0x4,0x6f,0x5,0xff,0x4,0x39,0x4,0x92,0x3,0x97,0x2, +0xd2,0x0,0x91,0xfe,0xbf,0xfc,0xe0,0xfb,0x40,0xfb,0x1d,0xfa, +0xcc,0xf8,0xe,0xf8,0x7c,0xf8,0xfb,0xf9,0xa1,0xfb,0x10,0xfd, +0xb7,0xfe,0xc6,0x0,0xea,0x2,0x3a,0x4,0x1b,0x4,0x7d,0x3, +0x80,0x3,0xd9,0x3,0xea,0x3,0xb8,0x3,0x58,0x3,0xda,0x2, +0x8a,0x2,0xb8,0x2,0x2e,0x3,0xf2,0x2,0xaa,0x1,0xa3,0x0, +0x78,0x0,0x59,0x0,0xab,0x0,0xf0,0x1,0x10,0x3,0x9f,0x3, +0x3f,0x4,0x4d,0x5,0xef,0x6,0x97,0x8,0xb8,0x9,0x80,0xa, +0xf2,0xa,0x8b,0xb,0x92,0xc,0x83,0xc,0x67,0xa,0xf7,0x6, +0x32,0x3,0x16,0x0,0x78,0xfd,0x56,0xfa,0x40,0xf7,0x6e,0xf5, +0x16,0xf5,0x39,0xf6,0xd1,0xf8,0x41,0xfc,0x82,0xff,0x6,0x2, +0x4,0x4,0x9f,0x5,0x8f,0x6,0x81,0x6,0x88,0x5,0x3f,0x4, +0xe,0x3,0xf4,0x1,0x75,0x0,0xda,0xfd,0xd5,0xfa,0xe7,0xf8, +0xc,0xf8,0x89,0xf7,0x57,0xf7,0xe3,0xf7,0x75,0xf9,0x81,0xfb, +0x2a,0xfd,0x32,0xfe,0x4,0xff,0x77,0x0,0x93,0x2,0x3f,0x4, +0x13,0x5,0x75,0x5,0xeb,0x5,0xd6,0x6,0x95,0x7,0x6c,0x7, +0x96,0x6,0xa,0x5,0xc5,0x2,0xb8,0x0,0x3e,0xff,0x95,0xfd, +0xa0,0xfb,0x41,0xfa,0x2c,0xfa,0x86,0xfb,0xe3,0xfd,0x1b,0x0, +0x42,0x1,0x9c,0x1,0xee,0x1,0xdb,0x2,0xcd,0x4,0x20,0x7, +0xfe,0x7,0x8b,0x6,0x1c,0x4,0x4b,0x2,0x85,0x1,0x6a,0x1, +0x3f,0x1,0x29,0x1,0xb7,0x1,0xb3,0x1,0xd4,0xff,0x23,0xfd, +0x60,0xfb,0x6f,0xfb,0x16,0xfd,0x3f,0xff,0xe6,0x0,0x55,0x1, +0x92,0x0,0x7c,0xff,0x3,0xff,0xb9,0xff,0x6,0x1,0x8e,0x1, +0x22,0x1,0x31,0x0,0xf,0xff,0x9c,0xfe,0x2,0xff,0xf2,0xfe, +0x78,0xfd,0x99,0xfb,0x27,0xfb,0x2,0xfc,0x5c,0xfc,0x5b,0xfb, +0xac,0xf9,0xc2,0xf8,0x94,0xf9,0xcf,0xfb,0x88,0xfe,0xae,0x0, +0x9f,0x1,0xd0,0x1,0x3f,0x2,0xb8,0x3,0x8b,0x5,0xf5,0x5, +0x8f,0x4,0xdb,0x1,0xd3,0xfe,0x18,0xfd,0x92,0xfc,0x2c,0xfc, +0x2f,0xfc,0x9e,0xfc,0xfc,0xfc,0x67,0xfd,0xa4,0xfd,0x4b,0xfd, +0x6b,0xfc,0x66,0xfb,0xe8,0xfa,0x66,0xfb,0xaa,0xfc,0x15,0xfe, +0x50,0xff,0x3a,0x0,0xa4,0x0,0xf5,0x0,0x84,0x1,0x1e,0x2, +0xe4,0x2,0x75,0x3,0x3b,0x3,0xec,0x2,0xd,0x3,0x7e,0x3, +0x6,0x4,0x15,0x4,0xc3,0x3,0x7a,0x3,0x82,0x3,0x22,0x4, +0xf2,0x3,0x51,0x2,0x22,0x1,0x63,0x0,0x11,0xff,0xb0,0xfe, +0xe1,0x0,0x3e,0x5,0x79,0x9,0x55,0xb,0x4d,0xb,0x79,0xb, +0x61,0xd,0x42,0xf,0x8b,0xc,0x0,0x5,0xc5,0xfd,0x59,0xfa, +0x8c,0xfa,0x4f,0xfd,0xe,0x2,0x96,0x7,0xb7,0xc,0xb2,0x10, +0xa9,0xf,0xa5,0x7,0xe4,0xff,0xf,0xfe,0x58,0xff,0x9d,0x1, +0x63,0x4,0xc9,0x5,0x93,0x5,0xca,0x4,0x53,0x3,0x75,0x0, +0x5f,0xfd,0xe4,0xfc,0x86,0xfe,0xa3,0xff,0x6c,0x0,0x53,0x2, +0x53,0x6,0x76,0xb,0x1,0xe,0x19,0xd,0x63,0xb,0xb8,0x9, +0xf2,0x7,0x33,0x6,0x4a,0x4,0x28,0x3,0xd9,0x3,0xb2,0x5, +0x37,0x7,0x72,0x7,0xaa,0x6,0x82,0x5,0xef,0x3,0x4,0x2, +0x4e,0x0,0xf7,0xff,0x22,0x2,0xb5,0x5,0x57,0x8,0x5c,0x9, +0xc,0x9,0xa9,0x7,0x12,0x6,0xf,0x5,0xbf,0x4,0xce,0x4, +0xd5,0x4,0x47,0x5,0xe9,0x5,0x15,0x5,0x2f,0x3,0xf5,0x1, +0x7d,0x1,0x8,0x2,0xa0,0x3,0x8a,0x4,0x26,0x4,0x7d,0x3, +0x2b,0x3,0x39,0x3,0x3f,0x3,0xb7,0x2,0xaa,0x1,0xb0,0x0, +0xef,0xff,0x95,0xfe,0x2b,0xfd,0x49,0xfd,0xa5,0xfe,0xba,0x0, +0xc5,0x2,0xa7,0x2,0xc5,0x0,0xf2,0xfe,0xde,0xfc,0xf1,0xfa, +0x2b,0xfa,0xe0,0xf9,0xdb,0xf9,0xa,0xfb,0x90,0xfd,0xc0,0xff, +0x10,0x0,0x46,0xff,0xea,0xfd,0x19,0xfc,0xdc,0xfb,0xda,0xfd, +0xbf,0xff,0xcd,0xff,0x77,0xfe,0x96,0xfd,0xdb,0xfd,0x4d,0xfe, +0xd5,0xfe,0x48,0xff,0xbc,0xfe,0xc8,0xfd,0x48,0xfd,0xdd,0xfc, +0x2,0xfc,0x6d,0xfa,0x92,0xf8,0xa3,0xf7,0xea,0xf7,0x1c,0xf8, +0x15,0xf7,0xd6,0xf5,0xd2,0xf6,0x34,0xfb,0x55,0x1,0x0,0x6, +0x71,0x7,0xd3,0x5,0xe5,0x1,0x62,0xfd,0x60,0xfa,0x6a,0xf9, +0x83,0xf9,0x5a,0xf9,0x18,0xf9,0x36,0xfa,0x4b,0xfc,0xad,0xfd, +0x7d,0xfe,0x87,0xff,0x30,0x1,0xbe,0x3,0xb1,0x5,0xa9,0x4, +0xc6,0x0,0x35,0xfc,0xfc,0xf8,0x47,0xf8,0x6d,0xf9,0xa5,0xfa, +0xe5,0xfa,0xa7,0xf9,0x73,0xf7,0xd,0xf6,0x1f,0xf6,0xf6,0xf6, +0xa2,0xf7,0xbd,0xf7,0x24,0xf8,0x50,0xf8,0x38,0xf6,0xc9,0xf2, +0x9a,0xf0,0x74,0xf0,0xc5,0xf1,0xfd,0xf2,0x37,0xf3,0xe6,0xf2, +0x2a,0xf2,0x8a,0xf1,0x96,0xf1,0x20,0xf2,0x94,0xf3,0x99,0xf5, +0x5a,0xf7,0x5c,0xf9,0x6,0xfb,0x3f,0xfb,0x7,0xfb,0xf6,0xfa, +0x51,0xfa,0xca,0xf8,0xa5,0xf6,0xb6,0xf4,0x5,0xf4,0x2f,0xf5, +0xd3,0xf7,0x42,0xfa,0x83,0xfb,0x55,0xfc,0x95,0xfd,0x44,0xff, +0xb0,0x0,0x26,0x1,0xef,0xff,0x73,0xfc,0x26,0xf8,0xbb,0xf5, +0xf7,0xf5,0x3,0xf8,0xa7,0xfa,0x37,0xfc,0xd6,0xfb,0xdc,0xfa, +0x16,0xfb,0xf1,0xfb,0xec,0xfb,0x5d,0xfb,0x2e,0xfb,0xdd,0xfb, +0xb0,0xfd,0xf3,0xff,0xf1,0x1,0x35,0x3,0x63,0x2,0x7c,0xff, +0xde,0xfc,0xc4,0xfb,0x64,0xfb,0x9d,0xfb,0xbc,0xfc,0x41,0xfd, +0xba,0xfb,0x99,0xf9,0xaf,0xf8,0xde,0xf8,0xb9,0xf9,0xcd,0xfa, +0x4e,0xfb,0xd,0xfb,0x60,0xfa,0xdc,0xf9,0x48,0xfa,0xdb,0xfb, +0xf6,0xfd,0xcf,0xff,0xbb,0x0,0x2a,0x0,0xcc,0xfe,0x1e,0xfe, +0xf,0xfe,0x1b,0xfe,0x93,0xfe,0x78,0xfe,0x96,0xfc,0x38,0xfa, +0xf,0xf9,0x60,0xf9,0x93,0xfa,0x94,0xfb,0xcf,0xfb,0x78,0xfb, +0xf3,0xfa,0x94,0xfa,0x7f,0xfa,0x2e,0xfb,0xdc,0xfc,0xb4,0xfe, +0xcc,0x0,0xac,0x3,0xb3,0x5,0xd7,0x5,0x43,0x5,0x21,0x4, +0x25,0x2,0x53,0x0,0xe,0xff,0x20,0xfe,0xf2,0xfd,0xa6,0xfe, +0xc5,0xff,0xbd,0x0,0x3a,0x1,0xb2,0x1,0x6c,0x2,0xc2,0x2, +0x3a,0x2,0x5a,0x1,0x5,0x1,0x4e,0x1,0x6f,0x1,0xf4,0x0, +0x35,0x0,0x1c,0x0,0x62,0x1,0x60,0x3,0xb8,0x4,0xaf,0x4, +0x6a,0x3,0xe5,0x1,0x16,0x1,0xfe,0x0,0xe4,0x0,0xe,0x0, +0xf5,0xfe,0xad,0xfe,0xc,0xff,0xb3,0xff,0xbd,0x0,0x9d,0x1, +0xc,0x2,0x60,0x2,0x8a,0x2,0xb4,0x2,0x3e,0x3,0x37,0x4, +0xb2,0x5,0x7e,0x7,0x1c,0x9,0x2,0xa,0xbf,0x9,0xb1,0x8, +0xc9,0x7,0x5b,0x7,0xf9,0x6,0x53,0x6,0xe3,0x5,0xbe,0x5, +0xd,0x5,0xc,0x4,0xb6,0x3,0x2,0x4,0xa3,0x4,0x60,0x5, +0xd8,0x5,0x39,0x6,0xf4,0x6,0x3c,0x8,0xfb,0x9,0xc2,0xb, +0x4b,0xd,0x64,0xe,0x8d,0xe,0xef,0xd,0x57,0xd,0x44,0xd, +0xa2,0xd,0xae,0xd,0xd1,0xc,0xa6,0xb,0xff,0xa,0x1,0xb, +0x66,0xb,0xf3,0xb,0xd4,0xc,0xfa,0xd,0x7e,0xe,0x9f,0xd, +0xa4,0xb,0x9e,0x9,0x48,0x8,0x6d,0x7,0x36,0x7,0xd,0x8, +0xda,0x8,0x61,0x8,0xf1,0x6,0x45,0x5,0x13,0x4,0xed,0x3, +0xa1,0x4,0xd8,0x5,0x4c,0x7,0x92,0x8,0xc9,0x9,0x4c,0xb, +0x94,0xc,0x96,0xc,0x72,0xb,0xac,0xa,0xea,0xa,0xa0,0xb, +0xbf,0xc,0x1f,0xe,0xfb,0xe,0x8,0xf,0x30,0xe,0xb8,0xc, +0xa9,0xb,0x4c,0xb,0xe7,0xa,0x27,0xa,0x1f,0x9,0x1c,0x8, +0xe6,0x7,0x9f,0x8,0x29,0x9,0x21,0x9,0x60,0x9,0x8c,0x9, +0xf4,0x8,0xa7,0x8,0x14,0x9,0x33,0x9,0x23,0x9,0x49,0x9, +0xb5,0x8,0x3b,0x7,0xe8,0x5,0xcc,0x4,0x7b,0x3,0xb8,0x2, +0xef,0x2,0xd,0x3,0x87,0x2,0xf3,0x1,0x6d,0x1,0xc1,0x0, +0x78,0x0,0x2c,0x1,0x71,0x2,0x69,0x3,0xe0,0x3,0x2a,0x4, +0xb5,0x4,0xbc,0x5,0xd5,0x6,0x98,0x7,0x16,0x8,0x10,0x8, +0x7a,0x7,0xc,0x7,0x11,0x7,0xf1,0x6,0x74,0x6,0x23,0x6, +0x1e,0x6,0xe,0x6,0x17,0x6,0x17,0x6,0x66,0x5,0x2,0x4, +0x81,0x2,0x76,0x1,0x3b,0x1,0x83,0x1,0xd,0x2,0xf3,0x2, +0xf8,0x3,0x7e,0x4,0xf1,0x3,0x6f,0x2,0xde,0x0,0xbf,0xff, +0x26,0xff,0x4e,0xff,0x18,0x0,0x4e,0x1,0xcf,0x2,0x11,0x4, +0xc4,0x4,0xd,0x5,0xc7,0x4,0xd9,0x3,0xd0,0x2,0x48,0x2, +0x27,0x2,0xd0,0x1,0xdb,0x0,0x91,0xff,0xc0,0xfe,0xd3,0xfe, +0x5e,0xff,0xcd,0xff,0xe,0x0,0x4f,0x0,0x40,0x0,0x83,0xff, +0x87,0xfe,0xa1,0xfd,0xc2,0xfc,0x69,0xfc,0xc8,0xfc,0x43,0xfd, +0x9e,0xfd,0xba,0xfd,0x34,0xfd,0x42,0xfc,0xbe,0xfb,0x20,0xfc, +0xf7,0xfc,0xe4,0xfd,0x44,0xff,0xe9,0x0,0xf6,0x1,0xc,0x2, +0x43,0x1,0xc6,0xff,0x8,0xfe,0x10,0xfd,0xb2,0xfd,0x10,0xff, +0x9f,0xff,0x58,0xff,0xf7,0xfe,0x78,0xfe,0x7d,0xfd,0x42,0xfc, +0x4d,0xfb,0x87,0xfa,0xfb,0xf9,0x52,0xfa,0x33,0xfb,0x70,0xfb, +0xe3,0xfa,0x37,0xfa,0xdc,0xf9,0x0,0xfa,0xe0,0xfa,0x53,0xfc, +0x50,0xfd,0x3e,0xfd,0xe5,0xfc,0xc8,0xfc,0x5a,0xfc,0x42,0xfb, +0xef,0xf9,0xfe,0xf8,0xcc,0xf8,0x77,0xf9,0x7d,0xfa,0xf5,0xfa, +0xd2,0xfa,0xa1,0xfa,0x7a,0xfa,0x73,0xfa,0xb4,0xfa,0xd1,0xfa, +0x4c,0xfa,0x3d,0xf9,0x27,0xf8,0x87,0xf7,0x93,0xf7,0x42,0xf8, +0x19,0xf9,0x8c,0xf9,0xdd,0xf9,0x88,0xfa,0x32,0xfb,0x42,0xfb, +0xd4,0xfa,0x66,0xfa,0x66,0xfa,0x13,0xfb,0x2f,0xfc,0x9,0xfd, +0xc,0xfd,0xee,0xfb,0xf8,0xf9,0x5e,0xf8,0x50,0xf8,0x80,0xf9, +0x80,0xfa,0x77,0xfa,0xf0,0xf9,0xc2,0xf9,0xd4,0xf9,0xa6,0xf9, +0x56,0xf9,0x1c,0xf9,0xae,0xf8,0xec,0xf7,0x28,0xf7,0x8d,0xf6, +0x31,0xf6,0x37,0xf6,0x6c,0xf6,0x5d,0xf6,0xf6,0xf5,0xae,0xf5, +0xa,0xf6,0x18,0xf7,0x75,0xf8,0xb8,0xf9,0xaa,0xfa,0x27,0xfb, +0x1a,0xfb,0x9b,0xfa,0x8e,0xf9,0xd0,0xf7,0x17,0xf6,0x40,0xf5, +0x39,0xf5,0x85,0xf5,0xd3,0xf5,0x1c,0xf6,0x8b,0xf6,0xf3,0xf6, +0xe0,0xf6,0x22,0xf6,0x52,0xf5,0x88,0xf5,0xa8,0xf6,0xa2,0xf7, +0x57,0xf8,0xe2,0xf8,0xe3,0xf8,0xaf,0xf8,0xcd,0xf8,0x10,0xf9, +0xdf,0xf8,0xd7,0xf7,0xe8,0xf6,0x42,0xf7,0x5c,0xf8,0x6e,0xf9, +0xa4,0xfa,0xd2,0xfb,0x76,0xfc,0x87,0xfc,0x41,0xfc,0xc8,0xfb, +0x11,0xfb,0x46,0xfa,0xab,0xf9,0x40,0xf9,0x6b,0xf9,0x99,0xfa, +0xd9,0xfb,0x1b,0xfc,0x98,0xfb,0xa2,0xfa,0x70,0xf9,0xf1,0xf8, +0xc2,0xf9,0x58,0xfb,0xf6,0xfc,0x30,0xfe,0xd1,0xfe,0xef,0xfe, +0xa5,0xfe,0xe,0xfe,0x81,0xfd,0x42,0xfd,0x27,0xfd,0xe8,0xfc, +0xb6,0xfc,0xe0,0xfc,0x13,0xfd,0x3c,0xfd,0xcd,0xfd,0x36,0xfe, +0xb9,0xfd,0x8,0xfd,0xb6,0xfc,0x7a,0xfc,0x79,0xfc,0xf2,0xfc, +0xda,0xfd,0x4f,0xff,0x1c,0x1,0x89,0x2,0x21,0x3,0x8,0x3, +0xa2,0x2,0xe8,0x1,0xbf,0x0,0xbb,0xff,0x8f,0xff,0x6c,0x0, +0xed,0x1,0x54,0x3,0x76,0x4,0x44,0x5,0x1d,0x5,0x30,0x4, +0x42,0x3,0x51,0x2,0x96,0x1,0x48,0x1,0xdd,0x0,0x36,0x0, +0x5b,0xff,0x2f,0xfe,0x6d,0xfd,0x7f,0xfd,0xbb,0xfd,0xde,0xfd, +0x50,0xfe,0x4c,0xff,0x84,0x0,0x6d,0x1,0xff,0x1,0x6b,0x2, +0x86,0x2,0x20,0x2,0x32,0x1,0xe4,0xff,0xe8,0xfe,0xee,0xfe, +0xe9,0xff,0x39,0x1,0x35,0x2,0x83,0x2,0x40,0x2,0xaa,0x1, +0xe4,0x0,0x55,0x0,0x7b,0x0,0x37,0x1,0x4,0x2,0x96,0x2, +0xc,0x3,0xb6,0x3,0xad,0x4,0xcf,0x5,0xa1,0x6,0x78,0x6, +0x71,0x5,0x9,0x4,0x5b,0x2,0x0,0x1,0xb3,0x0,0x15,0x1, +0x45,0x1,0xd8,0x0,0xd,0x0,0x71,0xff,0x3c,0xff,0x68,0xff, +0xc6,0xff,0x2e,0x0,0xf9,0x0,0x6c,0x2,0x64,0x4,0x94,0x6, +0x7,0x8,0x14,0x8,0x61,0x7,0xb4,0x6,0x39,0x6,0xaa,0x5, +0xbc,0x4,0xc6,0x3,0x53,0x3,0xae,0x3,0xcc,0x4,0xd5,0x5, +0xf5,0x5,0x58,0x5,0x7a,0x4,0xbd,0x3,0x5f,0x3,0x32,0x3, +0xcf,0x2,0x1d,0x2,0x8e,0x1,0x90,0x1,0x1f,0x2,0x3d,0x3, +0xac,0x4,0x80,0x5,0x2c,0x5,0x11,0x4,0xc9,0x2,0xe3,0x1, +0xa7,0x1,0xcb,0x1,0xdc,0x1,0xb6,0x1,0x7d,0x1,0x64,0x1, +0x54,0x1,0x8,0x1,0xc3,0x0,0xf1,0x0,0x88,0x1,0x83,0x2, +0xc8,0x3,0x14,0x5,0xad,0x6,0x7d,0x8,0x88,0x9,0x7e,0x9, +0xcc,0x8,0xb4,0x7,0x7b,0x6,0x2b,0x5,0xe3,0x3,0x7a,0x3, +0x50,0x4,0xab,0x5,0x9e,0x6,0x90,0x6,0xce,0x5,0x4d,0x5, +0x41,0x5,0x11,0x5,0x8c,0x4,0xf0,0x3,0x6a,0x3,0x4e,0x3, +0xb5,0x3,0xed,0x3,0x6c,0x3,0xbf,0x2,0xa8,0x2,0x44,0x3, +0x48,0x4,0x29,0x5,0x89,0x5,0xba,0x5,0x23,0x6,0x7a,0x6, +0x31,0x6,0x2c,0x5,0xdd,0x3,0xa3,0x2,0xa6,0x1,0x63,0x1, +0x25,0x2,0x29,0x3,0x96,0x3,0x51,0x3,0xbc,0x2,0x88,0x2, +0xc9,0x2,0xc7,0x2,0x98,0x2,0xc7,0x2,0x16,0x3,0x51,0x3, +0x9a,0x3,0xda,0x3,0xed,0x3,0xb5,0x3,0x4f,0x3,0xf3,0x2, +0x57,0x2,0x64,0x1,0xbf,0x0,0xb4,0x0,0x23,0x1,0x12,0x2, +0x19,0x3,0x8f,0x3,0x9c,0x3,0xc8,0x3,0xe8,0x3,0x81,0x3, +0xbf,0x2,0x36,0x2,0xfa,0x1,0xa6,0x1,0x45,0x1,0x3d,0x1, +0x80,0x1,0xca,0x1,0x16,0x2,0x68,0x2,0xb4,0x2,0xe9,0x2, +0xf,0x3,0x3f,0x3,0x48,0x3,0x2c,0x3,0x5d,0x3,0xf2,0x3, +0x91,0x4,0xe3,0x4,0xf6,0x4,0x56,0x5,0xe6,0x5,0xd5,0x5, +0x3e,0x5,0xe6,0x4,0xd1,0x4,0x82,0x4,0xce,0x3,0xec,0x2, +0xfa,0x1,0x12,0x1,0x8d,0x0,0x77,0x0,0x8c,0x0,0xc7,0x0, +0x56,0x1,0x87,0x2,0x32,0x4,0x69,0x5,0xc2,0x5,0x63,0x5, +0x62,0x4,0x6a,0x3,0xa,0x3,0xf0,0x2,0xe6,0x2,0xf6,0x2, +0x21,0x3,0xcd,0x3,0x2a,0x5,0x9c,0x6,0x22,0x7,0x58,0x6, +0x0,0x5,0xe3,0x3,0xdf,0x2,0xe3,0x1,0x5e,0x1,0x65,0x1, +0x65,0x1,0xe5,0x0,0x2f,0x0,0xe3,0xff,0x3f,0x0,0x1c,0x1, +0x1b,0x2,0xba,0x2,0x9f,0x2,0xe7,0x1,0x4c,0x1,0x7e,0x1, +0x4f,0x2,0xd9,0x2,0x7c,0x2,0x7b,0x1,0x90,0x0,0x16,0x0, +0x1f,0x0,0x66,0x0,0x52,0x0,0xcc,0xff,0x44,0xff,0xf0,0xfe, +0xe2,0xfe,0xd9,0xfe,0x73,0xfe,0xed,0xfd,0xab,0xfd,0xc4,0xfd, +0x44,0xfe,0xe1,0xfe,0x6b,0xff,0xa,0x0,0x88,0x0,0xcb,0x0, +0x1,0x1,0xb4,0x0,0xb6,0xff,0xec,0xfe,0xd9,0xfe,0xf,0xff, +0x1a,0xff,0xbf,0xfe,0x2c,0xfe,0xfb,0xfd,0x57,0xfe,0xbf,0xfe, +0xd1,0xfe,0x80,0xfe,0x3e,0xfe,0xda,0xfe,0xf5,0xff,0x6b,0x0, +0x5d,0x0,0x27,0x0,0x50,0xff,0x2d,0xfe,0x92,0xfd,0x5c,0xfd, +0x16,0xfd,0xc9,0xfc,0xa4,0xfc,0x94,0xfc,0x61,0xfc,0xf4,0xfb, +0x65,0xfb,0xe4,0xfa,0x85,0xfa,0x28,0xfa,0xe8,0xf9,0x4,0xfa, +0x73,0xfa,0x15,0xfb,0xcf,0xfb,0x61,0xfc,0x89,0xfc,0x53,0xfc, +0x4a,0xfc,0xba,0xfc,0x19,0xfd,0x38,0xfd,0x92,0xfd,0x11,0xfe, +0x40,0xfe,0x1f,0xfe,0xaa,0xfd,0xdf,0xfc,0x3a,0xfc,0x5,0xfc, +0xec,0xfb,0xcd,0xfb,0xb5,0xfb,0x5a,0xfb,0xbf,0xfa,0x60,0xfa, +0x8a,0xfa,0x6d,0xfb,0x93,0xfc,0xa8,0xfc,0x5e,0xfb,0xf5,0xf9, +0x5c,0xf9,0x50,0xf9,0x31,0xf9,0xe9,0xf8,0xd0,0xf8,0xe9,0xf8, +0x12,0xf9,0x96,0xf9,0x69,0xfa,0xd4,0xfa,0xaf,0xfa,0x74,0xfa, +0x45,0xfa,0xfb,0xf9,0x8c,0xf9,0x2c,0xf9,0x48,0xf9,0xd5,0xf9, +0x48,0xfa,0x7c,0xfa,0x94,0xfa,0xae,0xfa,0x2b,0xfb,0x28,0xfc, +0x1d,0xfd,0x5f,0xfd,0xb5,0xfc,0xa1,0xfb,0xc1,0xfa,0x17,0xfa, +0x79,0xf9,0xce,0xf8,0xeb,0xf7,0x1b,0xf7,0xe3,0xf6,0x16,0xf7, +0x57,0xf7,0xb3,0xf7,0x37,0xf8,0xde,0xf8,0xb4,0xf9,0xb2,0xfa, +0xc7,0xfb,0xad,0xfc,0xef,0xfc,0xcb,0xfc,0xe7,0xfc,0x12,0xfd, +0xf8,0xfc,0xd5,0xfc,0xad,0xfc,0x44,0xfc,0xd1,0xfb,0xba,0xfb, +0xa,0xfc,0x6f,0xfc,0xb2,0xfc,0xdb,0xfc,0xf4,0xfc,0x12,0xfd, +0x46,0xfd,0x50,0xfd,0x1e,0xfd,0x23,0xfd,0x7b,0xfd,0x6f,0xfd, +0x95,0xfc,0x67,0xfb,0x6f,0xfa,0xfc,0xf9,0x2d,0xfa,0x7e,0xfa, +0x98,0xfa,0xcd,0xfa,0x11,0xfb,0x4d,0xfb,0xc1,0xfb,0xc,0xfc, +0xc1,0xfb,0x61,0xfb,0x6a,0xfb,0xb6,0xfb,0xf7,0xfb,0xc,0xfc, +0x1d,0xfc,0x5b,0xfc,0xbe,0xfc,0x57,0xfd,0x28,0xfe,0xcd,0xfe, +0xe8,0xfe,0x92,0xfe,0x2b,0xfe,0x21,0xfe,0x8d,0xfe,0xf8,0xfe, +0xf8,0xfe,0x82,0xfe,0xcc,0xfd,0x32,0xfd,0xb4,0xfc,0x38,0xfc, +0x52,0xfc,0x32,0xfd,0x13,0xfe,0xb9,0xfe,0x92,0xff,0x73,0x0, +0xe5,0x0,0xf2,0x0,0xcc,0x0,0x62,0x0,0xb8,0xff,0x16,0xff, +0x9a,0xfe,0x42,0xfe,0x24,0xfe,0x1b,0xfe,0xdc,0xfd,0x80,0xfd, +0x5a,0xfd,0x67,0xfd,0x58,0xfd,0x32,0xfd,0x4a,0xfd,0xb5,0xfd, +0x41,0xfe,0xda,0xfe,0x7e,0xff,0x19,0x0,0x84,0x0,0x8b,0x0, +0x20,0x0,0x90,0xff,0x19,0xff,0xbf,0xfe,0x9e,0xfe,0xdb,0xfe, +0x30,0xff,0x47,0xff,0x42,0xff,0x73,0xff,0xdb,0xff,0x2c,0x0, +0x45,0x0,0x4f,0x0,0x85,0x0,0x11,0x1,0xe5,0x1,0x95,0x2, +0xc1,0x2,0x86,0x2,0x36,0x2,0xfe,0x1,0xf1,0x1,0x20,0x2, +0x74,0x2,0xbb,0x2,0xe4,0x2,0xdd,0x2,0x8c,0x2,0xfa,0x1, +0x4c,0x1,0xb6,0x0,0x53,0x0,0x2,0x0,0xcc,0xff,0xe5,0xff, +0x4c,0x0,0xf5,0x0,0xb0,0x1,0xe,0x2,0xdd,0x1,0x86,0x1, +0x88,0x1,0xeb,0x1,0x63,0x2,0xd1,0x2,0x29,0x3,0x51,0x3, +0x4a,0x3,0x9,0x3,0x8b,0x2,0xf9,0x1,0x78,0x1,0x2d,0x1, +0x1e,0x1,0x3,0x1,0xce,0x0,0xb7,0x0,0xc3,0x0,0xe8,0x0, +0x1a,0x1,0x3f,0x1,0x58,0x1,0x50,0x1,0x24,0x1,0x3,0x1, +0xc5,0x0,0x4b,0x0,0x21,0x0,0x9e,0x0,0x46,0x1,0xa4,0x1, +0xe8,0x1,0x40,0x2,0x5e,0x2,0x1f,0x2,0xce,0x1,0xa5,0x1, +0xa7,0x1,0xb6,0x1,0xcb,0x1,0x1a,0x2,0x76,0x2,0x8b,0x2, +0xb7,0x2,0x4b,0x3,0xf6,0x3,0x5a,0x4,0x3f,0x4,0xb2,0x3, +0x28,0x3,0xfd,0x2,0x26,0x3,0x6a,0x3,0xc8,0x3,0x4f,0x4, +0x88,0x4,0x21,0x4,0x82,0x3,0x0,0x3,0xc3,0x2,0xe0,0x2, +0xcc,0x2,0x2f,0x2,0xa0,0x1,0x84,0x1,0x9d,0x1,0xc2,0x1, +0x1,0x2,0x84,0x2,0x51,0x3,0x19,0x4,0x7c,0x4,0x54,0x4, +0xd3,0x3,0x31,0x3,0x6f,0x2,0x93,0x1,0xcf,0x0,0x37,0x0, +0xc0,0xff,0x60,0xff,0xc,0xff,0xce,0xfe,0xc7,0xfe,0xe1,0xfe, +0x1,0xff,0x4a,0xff,0xd0,0xff,0x64,0x0,0xda,0x0,0x25,0x1, +0x5f,0x1,0x85,0x1,0x7e,0x1,0x84,0x1,0xc5,0x1,0xee,0x1, +0xce,0x1,0xa5,0x1,0x8c,0x1,0x3a,0x1,0x81,0x0,0xc2,0xff, +0x64,0xff,0x12,0xff,0x7a,0xfe,0x2d,0xfe,0xf0,0xfe,0x9d,0x0, +0x46,0x2,0x46,0x3,0xcd,0x3,0x3a,0x4,0x7e,0x4,0x32,0x4, +0x24,0x3,0xb8,0x1,0x95,0x0,0x21,0x0,0x5e,0x0,0xf8,0x0, +0x6a,0x1,0x81,0x1,0xa3,0x1,0xe1,0x1,0xa9,0x1,0x72,0x1, +0x5c,0x2,0xaa,0x3,0xbc,0x3,0x9e,0x2,0x3d,0x1,0x3,0x0, +0x41,0xff,0x94,0xff,0xc,0x1,0x81,0x2,0x3b,0x3,0xcf,0x3, +0xf2,0x3,0x16,0x3,0x8f,0x2,0x1,0x3,0x24,0x3,0xd9,0x2, +0xac,0x2,0xc0,0x1,0xa4,0xff,0x7b,0xfd,0x31,0xfc,0xc2,0xfb, +0x43,0xfc,0xd5,0xfd,0xa7,0xff,0xac,0x0,0xbb,0x0,0x70,0x0, +0xa9,0x0,0x42,0x1,0xb,0x1,0x1d,0x0,0xd0,0xff,0x9b,0x0, +0xfd,0x1,0xe9,0x2,0xa2,0x2,0x9f,0x1,0x87,0x0,0xa3,0xff, +0x39,0xff,0x8,0xff,0x72,0xfe,0x43,0xfd,0x23,0xfc,0x15,0xfc, +0xaf,0xfc,0x14,0xfd,0xa4,0xfd,0xa,0xfe,0xb0,0xfd,0xc3,0xfd, +0xd0,0xfe,0xe6,0xff,0x99,0x0,0xe1,0x0,0xe3,0x0,0xb8,0x0, +0xd,0x0,0x19,0xff,0xe,0xfe,0xd0,0xfc,0xf,0xfc,0x10,0xfc, +0x7d,0xfc,0x8b,0xfd,0xd5,0xfe,0xb9,0xff,0x3e,0x0,0xc,0x0, +0x1c,0xff,0x52,0xfe,0x2e,0xfe,0xd3,0xfe,0x3a,0x0,0xc5,0x1, +0x96,0x2,0x2b,0x2,0x58,0x1,0x42,0x1,0x8b,0x1,0xb3,0x1, +0x99,0x1,0xa4,0x0,0x5b,0xff,0xe3,0xfe,0xf2,0xfe,0x25,0xff, +0x76,0xff,0x76,0xff,0x4e,0xff,0x8c,0xff,0xff,0xff,0x23,0x0, +0xf7,0xff,0x4,0x0,0x39,0x0,0xfd,0xff,0xad,0xff,0xbf,0xff, +0xc8,0xff,0xa2,0xff,0x67,0xff,0xf5,0xfe,0x83,0xfe,0x73,0xfe, +0xe2,0xfe,0x69,0xff,0x74,0xff,0x3b,0xff,0x1a,0xff,0xde,0xfe, +0xb8,0xfe,0xde,0xfe,0xdf,0xfe,0x7e,0xfe,0x2e,0xfe,0xaa,0xfe, +0xf3,0xff,0x13,0x1,0x9b,0x1,0xb3,0x1,0x39,0x1,0x88,0x0, +0x1d,0x0,0x96,0xff,0xc9,0xfe,0x22,0xfe,0xdc,0xfd,0xe,0xfe, +0x8e,0xfe,0xee,0xfe,0xeb,0xfe,0x6d,0xfe,0xc1,0xfd,0x5b,0xfd, +0x38,0xfd,0x44,0xfd,0x9d,0xfd,0x0,0xfe,0x3,0xfe,0xc3,0xfd, +0xcd,0xfd,0x8c,0xfe,0x4,0x0,0xdc,0x1,0x9c,0x3,0xc5,0x4, +0xbc,0x4,0x51,0x3,0x6d,0x1,0x7,0x0,0x29,0xff,0x96,0xfe, +0x49,0xfe,0x38,0xfe,0x5d,0xfe,0xc0,0xfe,0x6f,0xff,0x60,0x0, +0x6b,0x1,0x74,0x2,0x32,0x3,0x36,0x3,0x6c,0x2,0xea,0x0, +0xd,0xff,0xca,0xfd,0x97,0xfd,0xf2,0xfd,0x6b,0xfe,0xdc,0xfe, +0x3b,0xff,0xc0,0xff,0x7e,0x0,0x24,0x1,0x53,0x1,0xe7,0x0, +0x33,0x0,0xb6,0xff,0x78,0xff,0x2c,0xff,0xd8,0xfe,0xc7,0xfe, +0xe9,0xfe,0xf,0xff,0x6c,0xff,0xf1,0xff,0x3d,0x0,0x5b,0x0, +0x6d,0x0,0x70,0x0,0xb5,0x0,0x42,0x1,0x83,0x1,0x36,0x1, +0xb0,0x0,0x4b,0x0,0x46,0x0,0x96,0x0,0xb6,0x0,0x4a,0x0, +0xc9,0xff,0xd0,0xff,0x44,0x0,0xda,0x0,0x52,0x1,0x35,0x1, +0x9b,0x0,0x58,0x0,0xaf,0x0,0xf,0x1,0x41,0x1,0xc5,0x1, +0xa9,0x2,0xe,0x3,0x93,0x2,0xeb,0x1,0x8b,0x1,0x73,0x1, +0xc1,0x1,0x2c,0x2,0x1f,0x2,0xd4,0x1,0xd5,0x1,0x9,0x2, +0x1b,0x2,0x16,0x2,0x2c,0x2,0x4a,0x2,0x3a,0x2,0xf3,0x1, +0xa1,0x1,0x82,0x1,0x88,0x1,0x5a,0x1,0xf7,0x0,0xc6,0x0, +0xf4,0x0,0x5b,0x1,0xa9,0x1,0x7f,0x1,0xe6,0x0,0x45,0x0, +0xdd,0xff,0xc5,0xff,0x20,0x0,0xc8,0x0,0x4c,0x1,0x3a,0x1, +0x7a,0x0,0x73,0xff,0xb0,0xfe,0x84,0xfe,0xfc,0xfe,0xbd,0xff, +0x5b,0x0,0xc0,0x0,0xdc,0x0,0xb9,0x0,0xdb,0x0,0x85,0x1, +0x31,0x2,0x5e,0x2,0x11,0x2,0x85,0x1,0x7,0x1,0xf0,0x0, +0x37,0x1,0x6c,0x1,0x5f,0x1,0x34,0x1,0x1,0x1,0xdb,0x0, +0xcc,0x0,0xbf,0x0,0xed,0x0,0xa6,0x1,0xa5,0x2,0x65,0x3, +0xc3,0x3,0xe2,0x3,0xcd,0x3,0x80,0x3,0x33,0x3,0xfc,0x2, +0xa7,0x2,0x49,0x2,0x14,0x2,0xe0,0x1,0xa4,0x1,0x76,0x1, +0x40,0x1,0x28,0x1,0x5e,0x1,0xb4,0x1,0xe7,0x1,0xe1,0x1, +0xcd,0x1,0xd7,0x1,0xc8,0x1,0x81,0x1,0x30,0x1,0x0,0x1, +0x3f,0x1,0xb,0x2,0xe4,0x2,0x6e,0x3,0xc6,0x3,0xed,0x3, +0xc6,0x3,0x54,0x3,0xbc,0x2,0x24,0x2,0xb7,0x1,0xb0,0x1, +0x8,0x2,0x59,0x2,0x7e,0x2,0x9d,0x2,0x99,0x2,0x5c,0x2, +0x26,0x2,0x30,0x2,0x5e,0x2,0x78,0x2,0x80,0x2,0x86,0x2, +0x76,0x2,0x49,0x2,0x13,0x2,0x6,0x2,0x48,0x2,0x9a,0x2, +0xd6,0x2,0x4c,0x3,0xd3,0x3,0xce,0x3,0x46,0x3,0xb9,0x2, +0x77,0x2,0x7d,0x2,0x7e,0x2,0x3e,0x2,0xde,0x1,0x80,0x1, +0x40,0x1,0x48,0x1,0x79,0x1,0x9f,0x1,0xd0,0x1,0xa,0x2, +0x21,0x2,0x3a,0x2,0x62,0x2,0x40,0x2,0xe4,0x1,0xd7,0x1, +0x24,0x2,0x58,0x2,0x42,0x2,0x5,0x2,0xd9,0x1,0xed,0x1, +0x34,0x2,0x67,0x2,0x5b,0x2,0x32,0x2,0x19,0x2,0x4,0x2, +0xeb,0x1,0xcb,0x1,0x8e,0x1,0x39,0x1,0xe3,0x0,0x82,0x0, +0x12,0x0,0xc8,0xff,0xe2,0xff,0x42,0x0,0x90,0x0,0xc2,0x0, +0x6,0x1,0x57,0x1,0x97,0x1,0xb3,0x1,0x9b,0x1,0x64,0x1, +0x3f,0x1,0x3b,0x1,0x3e,0x1,0x3d,0x1,0x5b,0x1,0x9b,0x1, +0xc0,0x1,0xa5,0x1,0x60,0x1,0x18,0x1,0xe2,0x0,0xa4,0x0, +0x5a,0x0,0x4d,0x0,0x8b,0x0,0xc1,0x0,0xc2,0x0,0x91,0x0, +0x3d,0x0,0xb,0x0,0x8,0x0,0xf7,0xff,0xde,0xff,0xde,0xff, +0xd3,0xff,0x95,0xff,0x46,0xff,0x23,0xff,0x19,0xff,0xcf,0xfe, +0x4f,0xfe,0xf3,0xfd,0xbd,0xfd,0x98,0xfd,0xad,0xfd,0x11,0xfe, +0xb5,0xfe,0x76,0xff,0xf8,0xff,0xe1,0xff,0x53,0xff,0xbc,0xfe, +0x42,0xfe,0xe1,0xfd,0xa5,0xfd,0x6c,0xfd,0x2d,0xfd,0x37,0xfd, +0x9f,0xfd,0x25,0xfe,0xb8,0xfe,0x54,0xff,0xd9,0xff,0x2e,0x0, +0x3e,0x0,0xa,0x0,0xb9,0xff,0x72,0xff,0x59,0xff,0x51,0xff, +0x1a,0xff,0xc8,0xfe,0x76,0xfe,0x29,0xfe,0x12,0xfe,0xb,0xfe, +0xc5,0xfd,0x76,0xfd,0x5e,0xfd,0x75,0xfd,0xac,0xfd,0xe0,0xfd, +0xfd,0xfd,0x14,0xfe,0xff,0xfd,0xb1,0xfd,0x68,0xfd,0x49,0xfd, +0x5b,0xfd,0x81,0xfd,0xb1,0xfd,0x1a,0xfe,0x9b,0xfe,0xc3,0xfe, +0x8c,0xfe,0x37,0xfe,0xd3,0xfd,0x56,0xfd,0xe8,0xfc,0xba,0xfc, +0xa5,0xfc,0x66,0xfc,0x19,0xfc,0xef,0xfb,0xf2,0xfb,0x2d,0xfc, +0x8f,0xfc,0xfc,0xfc,0x7c,0xfd,0xde,0xfd,0xce,0xfd,0x69,0xfd, +0xc,0xfd,0xd9,0xfc,0xbe,0xfc,0x98,0xfc,0x64,0xfc,0x42,0xfc, +0x4c,0xfc,0x89,0xfc,0xfa,0xfc,0x75,0xfd,0xc0,0xfd,0xe1,0xfd, +0x2,0xfe,0x5,0xfe,0xc8,0xfd,0x83,0xfd,0x70,0xfd,0x7a,0xfd, +0x85,0xfd,0x8b,0xfd,0x8b,0xfd,0x93,0xfd,0xaa,0xfd,0xb5,0xfd, +0xa2,0xfd,0x84,0xfd,0x69,0xfd,0x3c,0xfd,0x1b,0xfd,0x46,0xfd, +0xb6,0xfd,0x18,0xfe,0x32,0xfe,0x1e,0xfe,0x21,0xfe,0x47,0xfe, +0x5d,0xfe,0x55,0xfe,0x3c,0xfe,0x15,0xfe,0xf8,0xfd,0xfc,0xfd, +0x1,0xfe,0xd1,0xfd,0x5f,0xfd,0xcc,0xfc,0x53,0xfc,0x20,0xfc, +0x42,0xfc,0xa9,0xfc,0x16,0xfd,0x4b,0xfd,0x64,0xfd,0x8f,0xfd, +0x9e,0xfd,0x83,0xfd,0x8e,0xfd,0xc5,0xfd,0xdf,0xfd,0xd8,0xfd, +0xb4,0xfd,0x55,0xfd,0xcc,0xfc,0x60,0xfc,0x3a,0xfc,0x40,0xfc, +0x46,0xfc,0x44,0xfc,0x42,0xfc,0x5b,0xfc,0xa7,0xfc,0xfb,0xfc, +0x3b,0xfd,0x98,0xfd,0x1a,0xfe,0x88,0xfe,0xc7,0xfe,0xcc,0xfe, +0x8e,0xfe,0x29,0xfe,0xcd,0xfd,0x9e,0xfd,0xad,0xfd,0xea,0xfd, +0x29,0xfe,0x43,0xfe,0x59,0xfe,0xa0,0xfe,0xd7,0xfe,0xc7,0xfe, +0xbe,0xfe,0xd7,0xfe,0xd7,0xfe,0xcd,0xfe,0xca,0xfe,0xb2,0xfe, +0x96,0xfe,0x7f,0xfe,0x67,0xfe,0x58,0xfe,0x35,0xfe,0xfb,0xfd, +0xe7,0xfd,0xf8,0xfd,0x10,0xfe,0x36,0xfe,0x73,0xfe,0xc2,0xfe, +0xe,0xff,0x34,0xff,0x35,0xff,0x1e,0xff,0xfb,0xfe,0xe5,0xfe, +0xfe,0xfe,0x47,0xff,0x86,0xff,0x71,0xff,0x13,0xff,0xbe,0xfe, +0x8f,0xfe,0x6e,0xfe,0x49,0xfe,0x34,0xfe,0x49,0xfe,0x81,0xfe, +0xbd,0xfe,0xf6,0xfe,0x32,0xff,0x73,0xff,0xba,0xff,0x4,0x0, +0x43,0x0,0x74,0x0,0x9b,0x0,0xa4,0x0,0x74,0x0,0x24,0x0, +0xdb,0xff,0x83,0xff,0x18,0xff,0xd2,0xfe,0xbd,0xfe,0xb3,0xfe, +0xa0,0xfe,0x7d,0xfe,0x50,0xfe,0x36,0xfe,0x66,0xfe,0xf7,0xfe, +0xa5,0xff,0x27,0x0,0x7b,0x0,0xc3,0x0,0x15,0x1,0x5d,0x1, +0x5d,0x1,0xc,0x1,0xaf,0x0,0x65,0x0,0x1d,0x0,0xe7,0xff, +0xed,0xff,0x20,0x0,0x52,0x0,0x83,0x0,0xbd,0x0,0xe8,0x0, +0x12,0x1,0x5e,0x1,0xb5,0x1,0xe4,0x1,0xe5,0x1,0xe0,0x1, +0xe4,0x1,0xd1,0x1,0x9b,0x1,0x52,0x1,0xfd,0x0,0xc7,0x0, +0xcc,0x0,0xc1,0x0,0x78,0x0,0x54,0x0,0x86,0x0,0xb9,0x0, +0xcd,0x0,0xf6,0x0,0x31,0x1,0x5b,0x1,0x71,0x1,0x7d,0x1, +0x9d,0x1,0xd8,0x1,0xff,0x1,0x19,0x2,0x56,0x2,0x8a,0x2, +0x5f,0x2,0xe0,0x1,0x6b,0x1,0x38,0x1,0x26,0x1,0x13,0x1, +0xd,0x1,0x1d,0x1,0x3b,0x1,0x57,0x1,0x5e,0x1,0x69,0x1, +0x8e,0x1,0xad,0x1,0xc8,0x1,0xeb,0x1,0xe5,0x1,0xbb,0x1, +0xad,0x1,0xaa,0x1,0x8a,0x1,0x74,0x1,0x8b,0x1,0xa3,0x1, +0x6e,0x1,0xf7,0x0,0x96,0x0,0x5f,0x0,0x2c,0x0,0x8,0x0, +0xc,0x0,0x2e,0x0,0x63,0x0,0xa2,0x0,0xde,0x0,0x18,0x1, +0x62,0x1,0xb2,0x1,0xcd,0x1,0x9e,0x1,0x57,0x1,0x2a,0x1, +0x2f,0x1,0x4f,0x1,0x59,0x1,0x42,0x1,0x14,0x1,0xd2,0x0, +0xa2,0x0,0x9c,0x0,0x82,0x0,0x3d,0x0,0x13,0x0,0x2d,0x0, +0x70,0x0,0xce,0x0,0x45,0x1,0xb7,0x1,0xb,0x2,0x3f,0x2, +0x5b,0x2,0x5b,0x2,0x31,0x2,0xfe,0x1,0xf6,0x1,0x0,0x2, +0xde,0x1,0x9c,0x1,0x66,0x1,0x4b,0x1,0x4f,0x1,0x70,0x1, +0x9f,0x1,0xc7,0x1,0xd5,0x1,0xc9,0x1,0xc3,0x1,0xda,0x1, +0xf8,0x1,0xeb,0x1,0x9d,0x1,0x30,0x1,0xe3,0x0,0xd5,0x0, +0xf4,0x0,0x10,0x1,0xb,0x1,0xfe,0x0,0x5,0x1,0x11,0x1, +0x9,0x1,0xec,0x0,0xd5,0x0,0xe4,0x0,0x8,0x1,0x29,0x1, +0x4e,0x1,0x71,0x1,0x7c,0x1,0x75,0x1,0x76,0x1,0x7c,0x1, +0x6a,0x1,0x38,0x1,0xfa,0x0,0xbd,0x0,0x89,0x0,0x7a,0x0, +0x9d,0x0,0xd2,0x0,0xf1,0x0,0xfd,0x0,0x1,0x1,0xf4,0x0, +0xd7,0x0,0xb8,0x0,0x9e,0x0,0x90,0x0,0x8f,0x0,0x93,0x0, +0xa1,0x0,0xb7,0x0,0xba,0x0,0xa7,0x0,0x94,0x0,0x88,0x0, +0x7f,0x0,0x91,0x0,0xb4,0x0,0xc5,0x0,0xd1,0x0,0xeb,0x0, +0xfe,0x0,0x2,0x1,0xc,0x1,0xc,0x1,0xe9,0x0,0xb6,0x0, +0xa1,0x0,0xbf,0x0,0xee,0x0,0xfa,0x0,0xdc,0x0,0xa7,0x0, +0x69,0x0,0x3d,0x0,0x33,0x0,0x2f,0x0,0x2c,0x0,0x45,0x0, +0x5f,0x0,0x5d,0x0,0x4c,0x0,0x3c,0x0,0x25,0x0,0xfa,0xff, +0xd7,0xff,0xe7,0xff,0x13,0x0,0x2d,0x0,0x3c,0x0,0x66,0x0, +0xc2,0x0,0x24,0x1,0x42,0x1,0x24,0x1,0xfe,0x0,0xe1,0x0, +0xd7,0x0,0xd8,0x0,0xbe,0x0,0x73,0x0,0x1,0x0,0x8c,0xff, +0x51,0xff,0x6a,0xff,0x9e,0xff,0xb1,0xff,0xb0,0xff,0xaf,0xff, +0xb7,0xff,0xcd,0xff,0xd5,0xff,0xba,0xff,0x9a,0xff,0x99,0xff, +0xa9,0xff,0x9d,0xff,0x67,0xff,0x3c,0xff,0x3a,0xff,0x47,0xff, +0x54,0xff,0x64,0xff,0x7c,0xff,0x9e,0xff,0xb7,0xff,0xb4,0xff, +0x96,0xff,0x72,0xff,0x63,0xff,0x70,0xff,0x87,0xff,0x9b,0xff, +0xab,0xff,0xc5,0xff,0xe8,0xff,0xf4,0xff,0xdb,0xff,0xb7,0xff, +0xa4,0xff,0xa0,0xff,0xa3,0xff,0xa4,0xff,0x96,0xff,0x79,0xff, +0x64,0xff,0x81,0xff,0xd4,0xff,0x24,0x0,0x45,0x0,0x42,0x0, +0x34,0x0,0x36,0x0,0x45,0x0,0x42,0x0,0x3c,0x0,0x46,0x0, +0x3f,0x0,0x9,0x0,0xaf,0xff,0x5c,0xff,0x30,0xff,0x27,0xff, +0x2f,0xff,0x41,0xff,0x61,0xff,0x8b,0xff,0xa3,0xff,0xac,0xff, +0xc8,0xff,0xeb,0xff,0xf3,0xff,0xde,0xff,0xbb,0xff,0x9d,0xff, +0x88,0xff,0x81,0xff,0x90,0xff,0x9d,0xff,0x9c,0xff,0xa8,0xff, +0xc6,0xff,0xe0,0xff,0xdb,0xff,0xb7,0xff,0x95,0xff,0x85,0xff, +0x72,0xff,0x60,0xff,0x61,0xff,0x67,0xff,0x6b,0xff,0x7c,0xff, +0x96,0xff,0xaf,0xff,0xc2,0xff,0xd3,0xff,0xe8,0xff,0xf3,0xff, +0xde,0xff,0xb8,0xff,0x9b,0xff,0x8c,0xff,0x99,0xff,0xbb,0xff, +0xcc,0xff,0xb0,0xff,0x72,0xff,0x39,0xff,0x1a,0xff,0xa,0xff, +0x1a,0xff,0x57,0xff,0xa5,0xff,0xdf,0xff,0xdd,0xff,0x9a,0xff, +0x4b,0xff,0x25,0xff,0x2d,0xff,0x45,0xff,0x47,0xff,0x39,0xff, +0x2b,0xff,0x28,0xff,0x39,0xff,0x52,0xff,0x62,0xff,0x6e,0xff, +0x73,0xff,0x62,0xff,0x48,0xff,0x3b,0xff,0x31,0xff,0x1d,0xff, +0x9,0xff,0xf0,0xfe,0xbd,0xfe,0x80,0xfe,0x5e,0xfe,0x60,0xfe, +0x74,0xfe,0x94,0xfe,0xcb,0xfe,0x6,0xff,0x30,0xff,0x4f,0xff, +0x72,0xff,0x92,0xff,0x9e,0xff,0x99,0xff,0x8f,0xff,0x8a,0xff, +0x96,0xff,0xb8,0xff,0xd4,0xff,0xd2,0xff,0xac,0xff,0x6f,0xff, +0x3f,0xff,0x2f,0xff,0x36,0xff,0x47,0xff,0x53,0xff,0x57,0xff, +0x57,0xff,0x4d,0xff,0x34,0xff,0x14,0xff,0xf9,0xfe,0xec,0xfe, +0xe4,0xfe,0xcd,0xfe,0xa2,0xfe,0x74,0xfe,0x63,0xfe,0x69,0xfe, +0x6a,0xfe,0x7b,0xfe,0xb6,0xfe,0x12,0xff,0x77,0xff,0xc6,0xff, +0xe3,0xff,0xd4,0xff,0xb9,0xff,0xa6,0xff,0x96,0xff,0x7c,0xff, +0x4c,0xff,0x19,0xff,0xff,0xfe,0xfd,0xfe,0x4,0xff,0xc,0xff, +0x4,0xff,0xf1,0xfe,0xeb,0xfe,0xf0,0xfe,0xf6,0xfe,0x8,0xff, +0x26,0xff,0x48,0xff,0x6a,0xff,0x87,0xff,0x97,0xff,0x94,0xff, +0x8e,0xff,0x9e,0xff,0xbd,0xff,0xcf,0xff,0xc2,0xff,0xa4,0xff, +0x94,0xff,0x92,0xff,0x81,0xff,0x57,0xff,0x29,0xff,0x11,0xff, +0x12,0xff,0x24,0xff,0x42,0xff,0x6c,0xff,0xa7,0xff,0xe9,0xff, +0x19,0x0,0x25,0x0,0x17,0x0,0x11,0x0,0x1c,0x0,0x1b,0x0, +0xff,0xff,0xdc,0xff,0xc5,0xff,0xd3,0xff,0xff,0xff,0x1d,0x0, +0x11,0x0,0xe8,0xff,0xc5,0xff,0xb8,0xff,0xbc,0xff,0xc7,0xff, +0xce,0xff,0xbf,0xff,0xa2,0xff,0x91,0xff,0x90,0xff,0x92,0xff, +0x93,0xff,0x9f,0xff,0xba,0xff,0xe6,0xff,0x10,0x0,0x1a,0x0, +0x5,0x0,0xe6,0xff,0xd2,0xff,0xdc,0xff,0xec,0xff,0xde,0xff, +0xbf,0xff,0xae,0xff,0xbc,0xff,0xea,0xff,0x28,0x0,0x63,0x0, +0x8d,0x0,0xa1,0x0,0xa3,0x0,0x96,0x0,0x80,0x0,0x6c,0x0, +0x5a,0x0,0x48,0x0,0x38,0x0,0x2c,0x0,0x25,0x0,0x2b,0x0, +0x3e,0x0,0x3c,0x0,0xe,0x0,0xd3,0xff,0xb5,0xff,0xba,0xff, +0xd2,0xff,0xef,0xff,0x10,0x0,0x3b,0x0,0x63,0x0,0x75,0x0, +0x72,0x0,0x65,0x0,0x5e,0x0,0x5e,0x0,0x59,0x0,0x43,0x0, +0x18,0x0,0xee,0xff,0xd3,0xff,0xc3,0xff,0xb1,0xff,0x93,0xff, +0x6c,0xff,0x50,0xff,0x56,0xff,0x81,0xff,0xb9,0xff,0xf1,0xff, +0x2a,0x0,0x5d,0x0,0x8c,0x0,0xb3,0x0,0xbe,0x0,0xa4,0x0, +0x7a,0x0,0x60,0x0,0x57,0x0,0x49,0x0,0x34,0x0,0x27,0x0, +0x29,0x0,0x3b,0x0,0x48,0x0,0x41,0x0,0x2e,0x0,0x13,0x0, +0xe8,0xff,0xb5,0xff,0x89,0xff,0x79,0xff,0x8a,0xff,0xad,0xff, +0xd8,0xff,0xff,0xff,0xd,0x0,0x6,0x0,0xf9,0xff,0xf0,0xff, +0xeb,0xff,0xeb,0xff,0xf5,0xff,0x9,0x0,0x1e,0x0,0x22,0x0, +0x3,0x0,0xd1,0xff,0xab,0xff,0xa8,0xff,0xbf,0xff,0xde,0xff, +0xfd,0xff,0x14,0x0,0x1a,0x0,0xe,0x0,0xef,0xff,0xdc,0xff, +0xf5,0xff,0x37,0x0,0x91,0x0,0xe7,0x0,0xe,0x1,0xf9,0x0, +0xc3,0x0,0x86,0x0,0x54,0x0,0x2a,0x0,0x7,0x0,0xed,0xff, +0xdb,0xff,0xd6,0xff,0xdb,0xff,0xee,0xff,0x12,0x0,0x41,0x0, +0x66,0x0,0x74,0x0,0x6d,0x0,0x59,0x0,0x44,0x0,0x46,0x0, +0x6e,0x0,0xa0,0x0,0xbe,0x0,0xbd,0x0,0xa9,0x0,0xa0,0x0, +0xae,0x0,0xc7,0x0,0xe1,0x0,0xee,0x0,0xe3,0x0,0xd4,0x0, +0xc7,0x0,0xab,0x0,0x7a,0x0,0x4e,0x0,0x46,0x0,0x63,0x0, +0x88,0x0,0x96,0x0,0x87,0x0,0x76,0x0,0x78,0x0,0x8a,0x0, +0x96,0x0,0x8a,0x0,0x71,0x0,0x54,0x0,0x3e,0x0,0x32,0x0, +0x23,0x0,0x10,0x0,0xe,0x0,0x19,0x0,0x1e,0x0,0x13,0x0, +0xf5,0xff,0xd7,0xff,0xd3,0xff,0xec,0xff,0x17,0x0,0x37,0x0, +0x46,0x0,0x51,0x0,0x65,0x0,0x8c,0x0,0xb8,0x0,0xc8,0x0, +0xc3,0x0,0xc0,0x0,0xc0,0x0,0xbe,0x0,0xb2,0x0,0x91,0x0, +0x5c,0x0,0x2d,0x0,0x1a,0x0,0x25,0x0,0x45,0x0,0x66,0x0, +0x72,0x0,0x6e,0x0,0x70,0x0,0x85,0x0,0xa0,0x0,0xa9,0x0, +0x9e,0x0,0x8c,0x0,0x7d,0x0,0x73,0x0,0x68,0x0,0x57,0x0, +0x4a,0x0,0x46,0x0,0x44,0x0,0x36,0x0,0x19,0x0,0xf6,0xff, +0xe0,0xff,0xe2,0xff,0xeb,0xff,0xea,0xff,0xf4,0xff,0x22,0x0, +0x67,0x0,0xa2,0x0,0xb5,0x0,0x99,0x0,0x6b,0x0,0x47,0x0, +0x3a,0x0,0x3b,0x0,0x34,0x0,0x24,0x0,0x1b,0x0,0x18,0x0, +0x11,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xd,0x0,0x1c,0x0, +0x34,0x0,0x3a,0x0,0x2a,0x0,0x14,0x0,0x7,0x0,0x7,0x0, +0x10,0x0,0x20,0x0,0x36,0x0,0x4a,0x0,0x5c,0x0,0x71,0x0, +0x82,0x0,0x86,0x0,0x84,0x0,0x7e,0x0,0x70,0x0,0x5f,0x0, +0x5a,0x0,0x5f,0x0,0x65,0x0,0x75,0x0,0x9a,0x0,0xcf,0x0, +0xfa,0x0,0x6,0x1,0xfa,0x0,0xe1,0x0,0xc5,0x0,0xa5,0x0, +0x7c,0x0,0x50,0x0,0x29,0x0,0x14,0x0,0x11,0x0,0xe,0x0, +0x3,0x0,0xf8,0xff,0xf5,0xff,0xfe,0xff,0x1,0x0,0xf4,0xff, +0xec,0xff,0xec,0xff,0xe6,0xff,0xde,0xff,0xdb,0xff,0xda,0xff, +0xd8,0xff,0xd1,0xff,0xcb,0xff,0xca,0xff,0xca,0xff,0xc7,0xff, +0xc6,0xff,0xce,0xff,0xd8,0xff,0xdb,0xff,0xe1,0xff,0xf7,0xff, +0xe,0x0,0x10,0x0,0xfc,0xff,0xe5,0xff,0xdf,0xff,0xee,0xff, +0x9,0x0,0x1c,0x0,0x29,0x0,0x40,0x0,0x58,0x0,0x60,0x0, +0x57,0x0,0x47,0x0,0x3e,0x0,0x44,0x0,0x53,0x0,0x59,0x0, +0x56,0x0,0x60,0x0,0x78,0x0,0x8e,0x0,0x96,0x0,0x8e,0x0, +0x7c,0x0,0x6f,0x0,0x6c,0x0,0x76,0x0,0x84,0x0,0x83,0x0, +0x71,0x0,0x55,0x0,0x31,0x0,0x4,0x0,0xcf,0xff,0xa4,0xff, +0x94,0xff,0x9f,0xff,0xc8,0xff,0xfe,0xff,0x22,0x0,0x29,0x0, +0x23,0x0,0x2a,0x0,0x3c,0x0,0x51,0x0,0x6f,0x0,0x94,0x0, +0xb5,0x0,0xc9,0x0,0xcc,0x0,0xc5,0x0,0xb9,0x0,0xa5,0x0, +0x88,0x0,0x69,0x0,0x52,0x0,0x4a,0x0,0x50,0x0,0x5c,0x0, +0x63,0x0,0x61,0x0,0x61,0x0,0x66,0x0,0x66,0x0,0x5e,0x0, +0x55,0x0,0x4c,0x0,0x4c,0x0,0x57,0x0,0x5b,0x0,0x40,0x0, +0x11,0x0,0xef,0xff,0xe6,0xff,0xf1,0xff,0x5,0x0,0x20,0x0, +0x3b,0x0,0x49,0x0,0x51,0x0,0x62,0x0,0x78,0x0,0x8f,0x0, +0xa0,0x0,0x9f,0x0,0x8c,0x0,0x70,0x0,0x56,0x0,0x44,0x0, +0x2c,0x0,0x4,0x0,0xdb,0xff,0xbe,0xff,0xb3,0xff,0xc1,0xff, +0xd8,0xff,0xe0,0xff,0xda,0xff,0xde,0xff,0xf3,0xff,0x2,0x0, +0xfb,0xff,0xe0,0xff,0xc2,0xff,0xb6,0xff,0xcc,0xff,0xfa,0xff, +0x20,0x0,0x2e,0x0,0x33,0x0,0x34,0x0,0x26,0x0,0x8,0x0, +0xdd,0xff,0xb1,0xff,0x90,0xff,0x81,0xff,0x84,0xff,0x8e,0xff, +0x93,0xff,0x93,0xff,0x98,0xff,0xb1,0xff,0xce,0xff,0xdd,0xff, +0xed,0xff,0x11,0x0,0x35,0x0,0x47,0x0,0x4e,0x0,0x54,0x0, +0x51,0x0,0x45,0x0,0x41,0x0,0x43,0x0,0x42,0x0,0x41,0x0, +0x40,0x0,0x3a,0x0,0x25,0x0,0x3,0x0,0xf5,0xff,0x5,0x0, +0x1f,0x0,0x37,0x0,0x40,0x0,0x35,0x0,0x28,0x0,0x22,0x0, +0x1b,0x0,0x6,0x0,0xe6,0xff,0xcb,0xff,0xbd,0xff,0xb4,0xff, +0xae,0xff,0xa7,0xff,0xa4,0xff,0xb6,0xff,0xdc,0xff,0x5,0x0, +0x2b,0x0,0x4c,0x0,0x5e,0x0,0x63,0x0,0x61,0x0,0x55,0x0, +0x42,0x0,0x32,0x0,0x26,0x0,0x1e,0x0,0x10,0x0,0xfd,0xff, +0xf7,0xff,0xf7,0xff,0xf0,0xff,0xe4,0xff,0xdb,0xff,0xdc,0xff, +0xe1,0xff,0xd7,0xff,0xc1,0xff,0xa9,0xff,0x92,0xff,0x7d,0xff, +0x6a,0xff,0x67,0xff,0x83,0xff,0xb2,0xff,0xe9,0xff,0x1a,0x0, +0x3b,0x0,0x4d,0x0,0x53,0x0,0x57,0x0,0x68,0x0,0x77,0x0, +0x79,0x0,0x6d,0x0,0x4f,0x0,0x27,0x0,0xf,0x0,0x12,0x0, +0x12,0x0,0xf8,0xff,0xd8,0xff,0xc5,0xff,0xc6,0xff,0xe2,0xff, +0xc,0x0,0x2c,0x0,0x40,0x0,0x5a,0x0,0x7b,0x0,0x8f,0x0, +0x8c,0x0,0x80,0x0,0x72,0x0,0x5a,0x0,0x36,0x0,0xe,0x0, +0xe6,0xff,0xc8,0xff,0xbc,0xff,0xb8,0xff,0xb2,0xff,0xa7,0xff, +0x96,0xff,0x8d,0xff,0x97,0xff,0xb2,0xff,0xdb,0xff,0x2,0x0, +0xf,0x0,0xe,0x0,0x17,0x0,0x2c,0x0,0x43,0x0,0x4c,0x0, +0x3f,0x0,0x1e,0x0,0xea,0xff,0xb2,0xff,0x8a,0xff,0x7c,0xff, +0x8e,0xff,0xb3,0xff,0xd4,0xff,0xee,0xff,0xfa,0xff,0xf3,0xff, +0xe3,0xff,0xd5,0xff,0xcf,0xff,0xd0,0xff,0xce,0xff,0xca,0xff, +0xce,0xff,0xe1,0xff,0x1,0x0,0x29,0x0,0x4a,0x0,0x5a,0x0, +0x59,0x0,0x4c,0x0,0x35,0x0,0x1a,0x0,0xfa,0xff,0xd1,0xff, +0xa5,0xff,0x81,0xff,0x74,0xff,0x82,0xff,0x99,0xff,0xaa,0xff, +0xb9,0xff,0xc9,0xff,0xe0,0xff,0x3,0x0,0x29,0x0,0x4b,0x0, +0x61,0x0,0x65,0x0,0x51,0x0,0x2f,0x0,0x10,0x0,0xfd,0xff, +0xfd,0xff,0xb,0x0,0x14,0x0,0x18,0x0,0x1f,0x0,0x29,0x0, +0x33,0x0,0x2f,0x0,0x18,0x0,0xfd,0xff,0xe6,0xff,0xdc,0xff, +0xe4,0xff,0xf0,0xff,0xfa,0xff,0x1,0x0,0xff,0xff,0xff,0xff, +0xd,0x0,0x1e,0x0,0x26,0x0,0x24,0x0,0x1c,0x0,0x15,0x0, +0x13,0x0,0x13,0x0,0xf,0x0,0x4,0x0,0xf1,0xff,0xda,0xff, +0xc4,0xff,0xba,0xff,0xbe,0xff,0xc6,0xff,0xca,0xff,0xcf,0xff, +0xd8,0xff,0xe0,0xff,0xed,0xff,0xfc,0xff,0xa,0x0,0x17,0x0, +0x24,0x0,0x34,0x0,0x48,0x0,0x53,0x0,0x55,0x0,0x49,0x0, +0x31,0x0,0x1b,0x0,0xc,0x0,0xa,0x0,0x10,0x0,0xf,0x0, +0xc,0x0,0xb,0x0,0x4,0x0,0xfa,0xff,0xec,0xff,0xe0,0xff, +0xdc,0xff,0xdb,0xff,0xe7,0xff,0x5,0x0,0x22,0x0,0x31,0x0, +0x2a,0x0,0x16,0x0,0x8,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0xf9,0xff,0xe7,0xff,0xe4,0xff,0xf2,0xff,0x6,0x0,0x13,0x0, +0x16,0x0,0x19,0x0,0x22,0x0,0x30,0x0,0x44,0x0,0x56,0x0, +0x5c,0x0,0x56,0x0,0x47,0x0,0x36,0x0,0x27,0x0,0xf,0x0, +0xe9,0xff,0xc7,0xff,0xbd,0xff,0xc7,0xff,0xce,0xff,0xc5,0xff, +0xb9,0xff,0xb6,0xff,0xbe,0xff,0xcf,0xff,0xd5,0xff,0xcd,0xff, +0xd1,0xff,0xe8,0xff,0x1,0x0,0xc,0x0,0x5,0x0,0xff,0xff, +0x0,0x0,0xf6,0xff,0xdc,0xff,0xb9,0xff,0x9c,0xff,0x9a,0xff, +0xaf,0xff,0xd0,0xff,0xf1,0xff,0x1,0x0,0x3,0x0,0xff,0xff, +0xf9,0xff,0xfb,0xff,0x1,0x0,0x7,0x0,0x12,0x0,0x15,0x0, +0xc,0x0,0x2,0x0,0xfd,0xff,0xff,0xff,0x3,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0xfd,0xff,0xf7,0xff,0xfa,0xff,0x2,0x0, +0xd,0x0,0x14,0x0,0x18,0x0,0x1f,0x0,0x22,0x0,0x1c,0x0, +0xb,0x0,0xf9,0xff,0xef,0xff,0xef,0xff,0xf5,0xff,0xfe,0xff, +0x7,0x0,0x13,0x0,0x1d,0x0,0x15,0x0,0x0,0x0,0xfc,0xff, +0xd,0x0,0x23,0x0,0x38,0x0,0x43,0x0,0x42,0x0,0x44,0x0, +0x4c,0x0,0x50,0x0,0x4e,0x0,0x41,0x0,0x2a,0x0,0x16,0x0, +0x12,0x0,0x17,0x0,0x17,0x0,0x1b,0x0,0x2e,0x0,0x49,0x0, +0x63,0x0,0x6f,0x0,0x6d,0x0,0x6a,0x0,0x6b,0x0,0x6d,0x0, +0x6a,0x0,0x57,0x0,0x34,0x0,0x13,0x0,0x7,0x0,0x16,0x0, +0x35,0x0,0x56,0x0,0x75,0x0,0x8e,0x0,0xa6,0x0,0xb8,0x0, +0xb2,0x0,0x9c,0x0,0x81,0x0,0x68,0x0,0x57,0x0,0x55,0x0, +0x55,0x0,0x4e,0x0,0x46,0x0,0x45,0x0,0x4b,0x0,0x55,0x0, +0x62,0x0,0x6c,0x0,0x71,0x0,0x6d,0x0,0x66,0x0,0x61,0x0, +0x55,0x0,0x46,0x0,0x44,0x0,0x4e,0x0,0x57,0x0,0x59,0x0, +0x54,0x0,0x4a,0x0,0x3a,0x0,0x2a,0x0,0x1f,0x0,0x15,0x0, +0x8,0x0,0x2,0x0,0x3,0x0,0x6,0x0,0x5,0x0,0x3,0x0, +0xc,0x0,0x20,0x0,0x3a,0x0,0x54,0x0,0x63,0x0,0x64,0x0, +0x60,0x0,0x5a,0x0,0x57,0x0,0x57,0x0,0x5c,0x0,0x63,0x0, +0x69,0x0,0x62,0x0,0x4f,0x0,0x3b,0x0,0x2c,0x0,0x26,0x0, +0x27,0x0,0x2b,0x0,0x31,0x0,0x35,0x0,0x2d,0x0,0x1a,0x0, +0x6,0x0,0xfa,0xff,0xfb,0xff,0x9,0x0,0x1b,0x0,0x2a,0x0, +0x33,0x0,0x3e,0x0,0x47,0x0,0x48,0x0,0x4a,0x0,0x56,0x0, +0x6a,0x0,0x7a,0x0,0x7e,0x0,0x78,0x0,0x6c,0x0,0x5d,0x0, +0x51,0x0,0x48,0x0,0x43,0x0,0x45,0x0,0x46,0x0,0x44,0x0, +0x43,0x0,0x3f,0x0,0x40,0x0,0x4e,0x0,0x55,0x0,0x53,0x0, +0x51,0x0,0x4c,0x0,0x41,0x0,0x34,0x0,0x29,0x0,0x23,0x0, +0x1d,0x0,0x15,0x0,0x11,0x0,0xe,0x0,0xb,0x0,0x9,0x0, +0x5,0x0,0xfb,0xff,0xf2,0xff,0xf2,0xff,0xfb,0xff,0xff,0xff, +0xf7,0xff,0xee,0xff,0xed,0xff,0xf6,0xff,0x3,0x0,0xe,0x0, +0x1b,0x0,0x29,0x0,0x34,0x0,0x3c,0x0,0x3f,0x0,0x32,0x0, +0x19,0x0,0x1,0x0,0xee,0xff,0xe4,0xff,0xe2,0xff,0xe9,0xff, +0xf8,0xff,0xb,0x0,0x1b,0x0,0x20,0x0,0x15,0x0,0x4,0x0, +0xf7,0xff,0xf3,0xff,0xf9,0xff,0xff,0xff,0x0,0x0,0xf7,0xff, +0xda,0xff,0xb5,0xff,0x9d,0xff,0x92,0xff,0x8e,0xff,0x8d,0xff, +0x8d,0xff,0x93,0xff,0xa4,0xff,0xc0,0xff,0xdb,0xff,0xe2,0xff, +0xdb,0xff,0xd6,0xff,0xd3,0xff,0xd2,0xff,0xd4,0xff,0xd5,0xff, +0xd2,0xff,0xd4,0xff,0xe0,0xff,0xe8,0xff,0xe3,0xff,0xd7,0xff, +0xc9,0xff,0xbe,0xff,0xbb,0xff,0xba,0xff,0xb8,0xff,0xb6,0xff, +0xb3,0xff,0xb7,0xff,0xc5,0xff,0xc5,0xff,0xb1,0xff,0x9e,0xff, +0x99,0xff,0xa5,0xff,0xb5,0xff,0xba,0xff,0xb7,0xff,0xb4,0xff, +0xaf,0xff,0xa5,0xff,0x99,0xff,0x8d,0xff,0x88,0xff,0x8c,0xff, +0x8e,0xff,0x85,0xff,0x72,0xff,0x5c,0xff,0x4e,0xff,0x4b,0xff, +0x49,0xff,0x43,0xff,0x41,0xff,0x4d,0xff,0x65,0xff,0x7f,0xff, +0x98,0xff,0xaa,0xff,0xb2,0xff,0xb6,0xff,0xbb,0xff,0xc2,0xff, +0xc0,0xff,0xba,0xff,0xb7,0xff,0xad,0xff,0x9a,0xff,0x88,0xff, +0x7a,0xff,0x6d,0xff,0x5d,0xff,0x48,0xff,0x3a,0xff,0x32,0xff, +0x2b,0xff,0x2d,0xff,0x3d,0xff,0x58,0xff,0x7e,0xff,0xa5,0xff, +0xc3,0xff,0xd4,0xff,0xd5,0xff,0xd1,0xff,0xd0,0xff,0xc7,0xff, +0xb4,0xff,0x9a,0xff,0x81,0xff,0x74,0xff,0x74,0xff,0x84,0xff, +0x9c,0xff,0xab,0xff,0xae,0xff,0xad,0xff,0xaa,0xff,0xa8,0xff, +0xa6,0xff,0xa1,0xff,0x99,0xff,0x8b,0xff,0x7a,0xff,0x6c,0xff, +0x61,0xff,0x59,0xff,0x5d,0xff,0x6b,0xff,0x79,0xff,0x83,0xff, +0x91,0xff,0xa6,0xff,0xbb,0xff,0xbe,0xff,0xad,0xff,0x94,0xff, +0x7f,0xff,0x70,0xff,0x65,0xff,0x5c,0xff,0x56,0xff,0x54,0xff, +0x5b,0xff,0x66,0xff,0x6b,0xff,0x6c,0xff,0x75,0xff,0x89,0xff, +0xa2,0xff,0xb5,0xff,0xba,0xff,0xb3,0xff,0xa6,0xff,0xa0,0xff, +0xa2,0xff,0xa6,0xff,0xa9,0xff,0xa5,0xff,0x9d,0xff,0x9e,0xff, +0xa9,0xff,0xc0,0xff,0xdc,0xff,0xea,0xff,0xe3,0xff,0xd6,0xff, +0xcb,0xff,0xc6,0xff,0xca,0xff,0xcd,0xff,0xd2,0xff,0xd7,0xff, +0xd8,0xff,0xdf,0xff,0xee,0xff,0xf6,0xff,0xf4,0xff,0xf0,0xff, +0xe9,0xff,0xde,0xff,0xd6,0xff,0xd0,0xff,0xca,0xff,0xca,0xff, +0xd2,0xff,0xda,0xff,0xe0,0xff,0xe9,0xff,0xef,0xff,0xef,0xff, +0xf2,0xff,0xf4,0xff,0xed,0xff,0xe4,0xff,0xe1,0xff,0xdf,0xff, +0xe1,0xff,0xe9,0xff,0xf6,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff, +0xf5,0xff,0xed,0xff,0xec,0xff,0xec,0xff,0xe5,0xff,0xdc,0xff, +0xcf,0xff,0xbf,0xff,0xb3,0xff,0xb4,0xff,0xc2,0xff,0xd0,0xff, +0xdb,0xff,0xeb,0xff,0xf6,0xff,0xfd,0xff,0x8,0x0,0xc,0x0, +0xff,0xff,0xf2,0xff,0xec,0xff,0xe9,0xff,0xeb,0xff,0xef,0xff, +0xf0,0xff,0xef,0xff,0xf3,0xff,0xfb,0xff,0xf9,0xff,0xef,0xff, +0xed,0xff,0xf2,0xff,0xf6,0xff,0xfc,0xff,0x1,0x0,0x1,0x0, +0x2,0x0,0x7,0x0,0xb,0x0,0xd,0x0,0xc,0x0,0xc,0x0, +0xd,0x0,0x8,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xf9,0xff, +0xf3,0xff,0xee,0xff,0xe3,0xff,0xd7,0xff,0xd1,0xff,0xcd,0xff, +0xcc,0xff,0xd4,0xff,0xd7,0xff,0xd2,0xff,0xd1,0xff,0xd5,0xff, +0xda,0xff,0xdd,0xff,0xde,0xff,0xea,0xff,0x6,0x0,0x1e,0x0, +0x27,0x0,0x1f,0x0,0xf,0x0,0xc,0x0,0x14,0x0,0x13,0x0, +0x5,0x0,0xf4,0xff,0xe9,0xff,0xea,0xff,0xfb,0xff,0xd,0x0, +0x6,0x0,0xee,0xff,0xdd,0xff,0xd5,0xff,0xd7,0xff,0xe6,0xff, +0xf5,0xff,0xf7,0xff,0xf6,0xff,0xfa,0xff,0x9,0x0,0x16,0x0, +0x11,0x0,0xfe,0xff,0xe3,0xff,0xc5,0xff,0xad,0xff,0xa1,0xff, +0x98,0xff,0x88,0xff,0x74,0xff,0x78,0xff,0xaa,0xff,0xf8,0xff, +0x3c,0x0,0x57,0x0,0x50,0x0,0x4d,0x0,0x5c,0x0,0x5e,0x0, +0x2f,0x0,0xe1,0xff,0xa7,0xff,0xa0,0xff,0xc4,0xff,0xf0,0xff, +0x4,0x0,0x7,0x0,0x1b,0x0,0x3f,0x0,0x68,0x0,0x86,0x0, +0x78,0x0,0x40,0x0,0x4,0x0,0xd1,0xff,0x94,0xff,0x5e,0xff, +0x66,0xff,0xb5,0xff,0x0,0x0,0x24,0x0,0x2f,0x0,0x14,0x0, +0xe9,0xff,0xef,0xff,0x12,0x0,0x1d,0x0,0x16,0x0,0x3,0x0, +0xd1,0xff,0x8f,0xff,0x67,0xff,0x67,0xff,0x81,0xff,0xb3,0xff, +0xf6,0xff,0x29,0x0,0x3e,0x0,0x3f,0x0,0x47,0x0,0x69,0x0, +0x74,0x0,0x3a,0x0,0xec,0xff,0xca,0xff,0xd4,0xff,0xf0,0xff, +0x8,0x0,0xf,0x0,0xa,0x0,0xff,0xff,0xf6,0xff,0xee,0xff, +0xe0,0xff,0xcf,0xff,0xc0,0xff,0xbf,0xff,0xd3,0xff,0xdf,0xff, +0xe5,0xff,0xef,0xff,0xde,0xff,0xb2,0xff,0xaa,0xff,0xd5,0xff, +0x8,0x0,0x1c,0x0,0x10,0x0,0xf3,0xff,0xd0,0xff,0xbb,0xff, +0xc1,0xff,0xc3,0xff,0xba,0xff,0xc7,0xff,0xe8,0xff,0xd,0x0, +0x2c,0x0,0x36,0x0,0x31,0x0,0x26,0x0,0xc,0x0,0xea,0xff, +0xd1,0xff,0xc8,0xff,0xdd,0xff,0xf,0x0,0x44,0x0,0x58,0x0, +0x47,0x0,0x3e,0x0,0x53,0x0,0x69,0x0,0x73,0x0,0x62,0x0, +0x35,0x0,0x13,0x0,0xc,0x0,0xe,0x0,0xf,0x0,0x6,0x0, +0xf9,0xff,0xfa,0xff,0x6,0x0,0x9,0x0,0xf3,0xff,0xd6,0xff, +0xc8,0xff,0xbb,0xff,0xab,0xff,0xb1,0xff,0xbe,0xff,0xc5,0xff, +0xcf,0xff,0xd5,0xff,0xd5,0xff,0xe3,0xff,0xfc,0xff,0x12,0x0, +0x17,0x0,0x11,0x0,0x14,0x0,0x19,0x0,0x10,0x0,0x3,0x0, +0xf8,0xff,0xe6,0xff,0xd3,0xff,0xd0,0xff,0xe4,0xff,0xfc,0xff, +0xff,0xff,0xfd,0xff,0xfb,0xff,0xf5,0xff,0xf4,0xff,0xf1,0xff, +0xdc,0xff,0xc1,0xff,0xaf,0xff,0xb9,0xff,0xe7,0xff,0x13,0x0, +0x25,0x0,0x2c,0x0,0x33,0x0,0x3e,0x0,0x47,0x0,0x42,0x0, +0x35,0x0,0x2b,0x0,0x2a,0x0,0x2a,0x0,0x23,0x0,0x1d,0x0, +0x20,0x0,0x24,0x0,0x2c,0x0,0x3f,0x0,0x48,0x0,0x40,0x0, +0x2d,0x0,0x1a,0x0,0xe,0x0,0x4,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0x1,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0x14,0x0, +0x23,0x0,0x2c,0x0,0x2b,0x0,0x23,0x0,0x16,0x0,0x7,0x0, +0x6,0x0,0x17,0x0,0x26,0x0,0x2e,0x0,0x36,0x0,0x39,0x0, +0x3f,0x0,0x49,0x0,0x3f,0x0,0x20,0x0,0x2,0x0,0xf6,0xff, +0x0,0x0,0xe,0x0,0x15,0x0,0x1d,0x0,0x28,0x0,0x32,0x0, +0x40,0x0,0x53,0x0,0x5f,0x0,0x5f,0x0,0x56,0x0,0x4a,0x0, +0x41,0x0,0x3f,0x0,0x3f,0x0,0x38,0x0,0x2c,0x0,0x23,0x0, +0x1d,0x0,0x14,0x0,0x9,0x0,0x3,0x0,0x4,0x0,0x8,0x0, +0x11,0x0,0x1e,0x0,0x2b,0x0,0x39,0x0,0x45,0x0,0x47,0x0, +0x3b,0x0,0x30,0x0,0x2f,0x0,0x34,0x0,0x37,0x0,0x34,0x0, +0x2e,0x0,0x25,0x0,0x1c,0x0,0x14,0x0,0xb,0x0,0x6,0x0, +0xb,0x0,0x1d,0x0,0x33,0x0,0x46,0x0,0x51,0x0,0x54,0x0, +0x59,0x0,0x5e,0x0,0x61,0x0,0x6b,0x0,0x74,0x0,0x70,0x0, +0x6a,0x0,0x68,0x0,0x65,0x0,0x64,0x0,0x64,0x0,0x59,0x0, +0x4a,0x0,0x3a,0x0,0x2a,0x0,0x16,0x0,0x4,0x0,0xf7,0xff, +0xf1,0xff,0xf8,0xff,0xa,0x0,0x1c,0x0,0x27,0x0,0x31,0x0, +0x32,0x0,0x2f,0x0,0x2f,0x0,0x31,0x0,0x36,0x0,0x3e,0x0, +0x3e,0x0,0x34,0x0,0x27,0x0,0x22,0x0,0x28,0x0,0x29,0x0, +0x1f,0x0,0x1b,0x0,0x24,0x0,0x37,0x0,0x4e,0x0,0x58,0x0, +0x53,0x0,0x4c,0x0,0x4a,0x0,0x4b,0x0,0x48,0x0,0x3d,0x0, +0x30,0x0,0x2a,0x0,0x2d,0x0,0x32,0x0,0x33,0x0,0x30,0x0, +0x31,0x0,0x36,0x0,0x3e,0x0,0x42,0x0,0x3b,0x0,0x31,0x0, +0x2b,0x0,0x26,0x0,0x25,0x0,0x25,0x0,0x26,0x0,0x29,0x0, +0x2e,0x0,0x2e,0x0,0x26,0x0,0x18,0x0,0x16,0x0,0x22,0x0, +0x30,0x0,0x3c,0x0,0x42,0x0,0x3d,0x0,0x3b,0x0,0x44,0x0, +0x57,0x0,0x63,0x0,0x60,0x0,0x55,0x0,0x4a,0x0,0x3c,0x0, +0x2f,0x0,0x28,0x0,0x25,0x0,0x26,0x0,0x2a,0x0,0x2f,0x0, +0x30,0x0,0x30,0x0,0x38,0x0,0x4a,0x0,0x5a,0x0,0x62,0x0, +0x61,0x0,0x57,0x0,0x4b,0x0,0x44,0x0,0x41,0x0,0x40,0x0, +0x3f,0x0,0x3c,0x0,0x3e,0x0,0x40,0x0,0x3b,0x0,0x2f,0x0, +0x25,0x0,0x1e,0x0,0x1f,0x0,0x27,0x0,0x2a,0x0,0x2a,0x0, +0x35,0x0,0x46,0x0,0x4a,0x0,0x41,0x0,0x35,0x0,0x2d,0x0, +0x2d,0x0,0x2d,0x0,0x26,0x0,0x20,0x0,0x21,0x0,0x26,0x0, +0x2f,0x0,0x3b,0x0,0x45,0x0,0x51,0x0,0x5d,0x0,0x68,0x0, +0x6f,0x0,0x6d,0x0,0x64,0x0,0x5c,0x0,0x53,0x0,0x4a,0x0, +0x3e,0x0,0x2a,0x0,0x19,0x0,0x18,0x0,0x22,0x0,0x2d,0x0, +0x3e,0x0,0x4d,0x0,0x55,0x0,0x56,0x0,0x4d,0x0,0x3b,0x0, +0x31,0x0,0x39,0x0,0x46,0x0,0x4a,0x0,0x44,0x0,0x40,0x0, +0x45,0x0,0x4b,0x0,0x4a,0x0,0x44,0x0,0x3e,0x0,0x3a,0x0, +0x38,0x0,0x36,0x0,0x30,0x0,0x28,0x0,0x24,0x0,0x27,0x0, +0x24,0x0,0x1c,0x0,0x18,0x0,0x1a,0x0,0x20,0x0,0x28,0x0, +0x30,0x0,0x32,0x0,0x2d,0x0,0x2b,0x0,0x2f,0x0,0x31,0x0, +0x2c,0x0,0x24,0x0,0x1b,0x0,0x18,0x0,0x1b,0x0,0x1c,0x0, +0x1a,0x0,0x14,0x0,0xc,0x0,0x9,0x0,0xd,0x0,0x14,0x0, +0x1d,0x0,0x24,0x0,0x28,0x0,0x30,0x0,0x3a,0x0,0x41,0x0, +0x3c,0x0,0x2e,0x0,0x20,0x0,0x17,0x0,0x15,0x0,0x17,0x0, +0x12,0x0,0x5,0x0,0xfa,0xff,0xfa,0xff,0x4,0x0,0x9,0x0, +0x5,0x0,0x3,0x0,0x7,0x0,0x11,0x0,0x22,0x0,0x2f,0x0, +0x2f,0x0,0x28,0x0,0x27,0x0,0x2c,0x0,0x2c,0x0,0x24,0x0, +0x1c,0x0,0x13,0x0,0x8,0x0,0x3,0x0,0xfe,0xff,0xf4,0xff, +0xea,0xff,0xe4,0xff,0xe4,0xff,0xee,0xff,0xf8,0xff,0xfb,0xff, +0xfc,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x4,0x0,0x8,0x0,0x10,0x0,0x14,0x0,0x13,0x0,0x10,0x0, +0xd,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0x9,0x0,0x4,0x0, +0xfc,0xff,0xf5,0xff,0xef,0xff,0xea,0xff,0xe2,0xff,0xdc,0xff, +0xdd,0xff,0xe0,0xff,0xe3,0xff,0xe3,0xff,0xde,0xff,0xd6,0xff, +0xd1,0xff,0xcd,0xff,0xc9,0xff,0xc9,0xff,0xcc,0xff,0xd0,0xff, +0xd7,0xff,0xe2,0xff,0xec,0xff,0xf0,0xff,0xed,0xff,0xe2,0xff, +0xd3,0xff,0xc8,0xff,0xc5,0xff,0xc6,0xff,0xc4,0xff,0xbd,0xff, +0xb8,0xff,0xbc,0xff,0xc9,0xff,0xd7,0xff,0xdf,0xff,0xe0,0xff, +0xdc,0xff,0xd6,0xff,0xd5,0xff,0xd6,0xff,0xd6,0xff,0xd4,0xff, +0xcf,0xff,0xc4,0xff,0xb7,0xff,0xab,0xff,0xa2,0xff,0xa4,0xff, +0xb1,0xff,0xc1,0xff,0xcd,0xff,0xd3,0xff,0xd4,0xff,0xcd,0xff, +0xc0,0xff,0xb5,0xff,0xad,0xff,0xa8,0xff,0xa9,0xff,0xaf,0xff, +0xb5,0xff,0xbb,0xff,0xc4,0xff,0xca,0xff,0xcb,0xff,0xc7,0xff, +0xbf,0xff,0xb5,0xff,0xab,0xff,0x9f,0xff,0x91,0xff,0x85,0xff, +0x7d,0xff,0x7f,0xff,0x8a,0xff,0x94,0xff,0x9a,0xff,0xa1,0xff, +0xa7,0xff,0xab,0xff,0xb0,0xff,0xb6,0xff,0xb7,0xff,0xb4,0xff, +0xac,0xff,0xa4,0xff,0xa2,0xff,0x9e,0xff,0x97,0xff,0x90,0xff, +0x8e,0xff,0x8f,0xff,0x95,0xff,0x99,0xff,0x9a,0xff,0x99,0xff, +0x95,0xff,0x90,0xff,0x8e,0xff,0x93,0xff,0x9a,0xff,0xa1,0xff, +0xab,0xff,0xb5,0xff,0xb7,0xff,0xb4,0xff,0xaf,0xff,0xac,0xff, +0xab,0xff,0xae,0xff,0xb2,0xff,0xb6,0xff,0xb5,0xff,0xb3,0xff, +0xb6,0xff,0xbb,0xff,0xc0,0xff,0xc2,0xff,0xc1,0xff,0xbb,0xff, +0xb5,0xff,0xb7,0xff,0xc3,0xff,0xd0,0xff,0xd9,0xff,0xe2,0xff, +0xe6,0xff,0xe2,0xff,0xdc,0xff,0xd9,0xff,0xd8,0xff,0xd9,0xff, +0xdb,0xff,0xd7,0xff,0xcc,0xff,0xc3,0xff,0xc1,0xff,0xbf,0xff, +0xbe,0xff,0xbd,0xff,0xb8,0xff,0xb6,0xff,0xb9,0xff,0xba,0xff, +0xbb,0xff,0xbf,0xff,0xc2,0xff,0xc6,0xff,0xc8,0xff,0xc8,0xff, +0xca,0xff,0xcd,0xff,0xd1,0xff,0xd7,0xff,0xdc,0xff,0xde,0xff, +0xdc,0xff,0xd7,0xff,0xd8,0xff,0xde,0xff,0xe1,0xff,0xe3,0xff, +0xe9,0xff,0xef,0xff,0xf2,0xff,0xf7,0xff,0xfb,0xff,0xf9,0xff, +0xf1,0xff,0xe9,0xff,0xe3,0xff,0xe2,0xff,0xe7,0xff,0xef,0xff, +0xf5,0xff,0xf7,0xff,0xf4,0xff,0xf1,0xff,0xee,0xff,0xec,0xff, +0xea,0xff,0xeb,0xff,0xee,0xff,0xf3,0xff,0xfa,0xff,0x2,0x0, +0x8,0x0,0x9,0x0,0x9,0x0,0xb,0x0,0xc,0x0,0xf,0x0, +0x11,0x0,0xb,0x0,0x3,0x0,0xff,0xff,0x1,0x0,0x7,0x0, +0xd,0x0,0xf,0x0,0x10,0x0,0x13,0x0,0x17,0x0,0x1b,0x0, +0x1a,0x0,0x12,0x0,0xc,0x0,0xb,0x0,0xd,0x0,0x10,0x0, +0x12,0x0,0x10,0x0,0xb,0x0,0x6,0x0,0x2,0x0,0xfe,0xff, +0xfe,0xff,0x2,0x0,0x9,0x0,0x10,0x0,0x14,0x0,0x14,0x0, +0x16,0x0,0x1a,0x0,0x20,0x0,0x25,0x0,0x26,0x0,0x21,0x0, +0x1b,0x0,0x1b,0x0,0x1e,0x0,0x21,0x0,0x24,0x0,0x27,0x0, +0x28,0x0,0x26,0x0,0x21,0x0,0x1a,0x0,0x16,0x0,0x1b,0x0, +0x25,0x0,0x2d,0x0,0x2f,0x0,0x2c,0x0,0x26,0x0,0x23,0x0, +0x21,0x0,0x1d,0x0,0x1a,0x0,0x1a,0x0,0x1c,0x0,0x22,0x0, +0x28,0x0,0x2d,0x0,0x32,0x0,0x33,0x0,0x2f,0x0,0x29,0x0, +0x27,0x0,0x2b,0x0,0x31,0x0,0x36,0x0,0x39,0x0,0x38,0x0, +0x32,0x0,0x2b,0x0,0x26,0x0,0x21,0x0,0x1c,0x0,0x19,0x0, +0x17,0x0,0x16,0x0,0x16,0x0,0x18,0x0,0x1d,0x0,0x22,0x0, +0x25,0x0,0x28,0x0,0x2b,0x0,0x2e,0x0,0x32,0x0,0x33,0x0, +0x31,0x0,0x2e,0x0,0x2a,0x0,0x26,0x0,0x22,0x0,0x21,0x0, +0x22,0x0,0x25,0x0,0x2b,0x0,0x2d,0x0,0x2a,0x0,0x24,0x0, +0x1d,0x0,0x17,0x0,0x14,0x0,0x14,0x0,0x15,0x0,0x17,0x0, +0x18,0x0,0x1a,0x0,0x1e,0x0,0x20,0x0,0x23,0x0,0x26,0x0, +0x24,0x0,0x21,0x0,0x1d,0x0,0x1b,0x0,0x1a,0x0,0x1b,0x0, +0x1b,0x0,0x1c,0x0,0x1c,0x0,0x1b,0x0,0x19,0x0,0x19,0x0, +0x1d,0x0,0x22,0x0,0x25,0x0,0x27,0x0,0x2a,0x0,0x2f,0x0, +0x34,0x0,0x36,0x0,0x36,0x0,0x34,0x0,0x31,0x0,0x2f,0x0, +0x2e,0x0,0x2c,0x0,0x29,0x0,0x26,0x0,0x1e,0x0,0x16,0x0, +0xf,0x0,0xb,0x0,0x9,0x0,0xc,0x0,0x11,0x0,0x16,0x0, +0x1a,0x0,0x20,0x0,0x27,0x0,0x2a,0x0,0x2c,0x0,0x2d,0x0, +0x2b,0x0,0x28,0x0,0x25,0x0,0x25,0x0,0x26,0x0,0x28,0x0, +0x29,0x0,0x29,0x0,0x29,0x0,0x2a,0x0,0x2b,0x0,0x2a,0x0, +0x2b,0x0,0x2b,0x0,0x26,0x0,0x20,0x0,0x1b,0x0,0x17,0x0, +0x15,0x0,0x14,0x0,0x12,0x0,0x12,0x0,0x14,0x0,0x16,0x0, +0x19,0x0,0x1b,0x0,0x1c,0x0,0x1b,0x0,0x19,0x0,0x15,0x0, +0x10,0x0,0xa,0x0,0x6,0x0,0x6,0x0,0x9,0x0,0xc,0x0, +0xe,0x0,0x10,0x0,0x10,0x0,0xe,0x0,0xe,0x0,0xd,0x0, +0x8,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x8,0x0,0xe,0x0, +0x12,0x0,0x16,0x0,0x1c,0x0,0x22,0x0,0x26,0x0,0x24,0x0, +0x1b,0x0,0x11,0x0,0xb,0x0,0x9,0x0,0x8,0x0,0x5,0x0, +0x3,0x0,0x3,0x0,0x5,0x0,0x8,0x0,0x9,0x0,0xa,0x0, +0xe,0x0,0x11,0x0,0x10,0x0,0xc,0x0,0x4,0x0,0xfe,0xff, +0xfb,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x4,0x0,0x6,0x0, +0xa,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xb,0x0, +0xa,0x0,0x6,0x0,0x1,0x0,0xff,0xff,0x2,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0xfd,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff,0xfd,0xff, +0x1,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0xfb,0xff,0xf3,0xff, +0xf2,0xff,0xf4,0xff,0xf8,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xf9,0xff,0xfd,0xff,0x1,0x0,0x6,0x0,0xa,0x0,0xe,0x0, +0xe,0x0,0xb,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x0,0x0, +0xfb,0xff,0xf7,0xff,0xf3,0xff,0xef,0xff,0xee,0xff,0xee,0xff, +0xed,0xff,0xec,0xff,0xee,0xff,0xee,0xff,0xee,0xff,0xee,0xff, +0xee,0xff,0xee,0xff,0xee,0xff,0xf0,0xff,0xf2,0xff,0xf5,0xff, +0xf9,0xff,0xfb,0xff,0xfb,0xff,0xf8,0xff,0xf2,0xff,0xed,0xff, +0xeb,0xff,0xeb,0xff,0xee,0xff,0xf1,0xff,0xf4,0xff,0xf5,0xff, +0xf3,0xff,0xf1,0xff,0xef,0xff,0xeb,0xff,0xe6,0xff,0xe4,0xff, +0xe4,0xff,0xe6,0xff,0xea,0xff,0xee,0xff,0xf0,0xff,0xf1,0xff, +0xf1,0xff,0xf0,0xff,0xee,0xff,0xea,0xff,0xe6,0xff,0xe5,0xff, +0xe5,0xff,0xe6,0xff,0xe5,0xff,0xe3,0xff,0xe2,0xff,0xe3,0xff, +0xe3,0xff,0xe4,0xff,0xe2,0xff,0xde,0xff,0xde,0xff,0xdf,0xff, +0xdf,0xff,0xde,0xff,0xdc,0xff,0xdb,0xff,0xdc,0xff,0xdf,0xff, +0xe1,0xff,0xe2,0xff,0xe2,0xff,0xe4,0xff,0xe6,0xff,0xe9,0xff, +0xea,0xff,0xeb,0xff,0xeb,0xff,0xec,0xff,0xeb,0xff,0xe9,0xff, +0xe6,0xff,0xe1,0xff,0xdc,0xff,0xda,0xff,0xda,0xff,0xdc,0xff, +0xdc,0xff,0xdc,0xff,0xdb,0xff,0xd9,0xff,0xd8,0xff,0xd8,0xff, +0xd8,0xff,0xda,0xff,0xdc,0xff,0xde,0xff,0xe1,0xff,0xe2,0xff, +0xe3,0xff,0xe5,0xff,0xe6,0xff,0xe5,0xff,0xe3,0xff,0xde,0xff, +0xdb,0xff,0xdb,0xff,0xda,0xff,0xda,0xff,0xd8,0xff,0xd5,0xff, +0xd5,0xff,0xd6,0xff,0xd6,0xff,0xd8,0xff,0xda,0xff,0xda,0xff, +0xda,0xff,0xd8,0xff,0xd7,0xff,0xd8,0xff,0xd7,0xff,0xd4,0xff, +0xd2,0xff,0xcf,0xff,0xcd,0xff,0xcd,0xff,0xd0,0xff,0xd5,0xff, +0xdc,0xff,0xe0,0xff,0xe1,0xff,0xde,0xff,0xdb,0xff,0xd8,0xff, +0xd8,0xff,0xdd,0xff,0xe0,0xff,0xe1,0xff,0xe3,0xff,0xe4,0xff, +0xe2,0xff,0xe3,0xff,0xe3,0xff,0xe3,0xff,0xe3,0xff,0xe2,0xff, +0xe4,0xff,0xe7,0xff,0xe9,0xff,0xec,0xff,0xed,0xff,0xec,0xff, +0xeb,0xff,0xea,0xff,0xea,0xff,0xea,0xff,0xea,0xff,0xeb,0xff, +0xee,0xff,0xef,0xff,0xee,0xff,0xee,0xff,0xee,0xff,0xee,0xff, +0xf1,0xff,0xf4,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xf5,0xff,0xf1,0xff,0xeb,0xff,0xe6,0xff,0xe2,0xff, +0xe0,0xff,0xe1,0xff,0xe4,0xff,0xe5,0xff,0xe6,0xff,0xe9,0xff, +0xeb,0xff,0xeb,0xff,0xec,0xff,0xef,0xff,0xf1,0xff,0xf2,0xff, +0xf0,0xff,0xed,0xff,0xe9,0xff,0xe8,0xff,0xe6,0xff,0xe4,0xff, +0xe6,0xff,0xe9,0xff,0xed,0xff,0xf3,0xff,0xf9,0xff,0xfc,0xff, +0xff,0xff,0xfe,0xff,0xfa,0xff,0xf6,0xff,0xf1,0xff,0xed,0xff, +0xed,0xff,0xee,0xff,0xf0,0xff,0xf1,0xff,0xf1,0xff,0xf0,0xff, +0xf0,0xff,0xf0,0xff,0xf2,0xff,0xf4,0xff,0xf5,0xff,0xf8,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff, +0xf8,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff, +0xf8,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0x1,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x1,0x0,0xfe,0xff,0xfb,0xff,0xf6,0xff,0xf2,0xff,0xf0,0xff, +0xf0,0xff,0xf3,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff,0x0,0x0, +0x4,0x0,0xb,0x0,0x12,0x0,0x13,0x0,0x10,0x0,0xe,0x0, +0xd,0x0,0xf,0x0,0x10,0x0,0x10,0x0,0xe,0x0,0xc,0x0, +0xb,0x0,0x9,0x0,0x6,0x0,0x4,0x0,0x4,0x0,0x6,0x0, +0xa,0x0,0xd,0x0,0xe,0x0,0xe,0x0,0xd,0x0,0xc,0x0, +0xb,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x6,0x0,0x9,0x0,0xb,0x0,0xb,0x0,0xa,0x0, +0x9,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x5,0x0,0x3,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x5,0x0,0x7,0x0, +0x8,0x0,0x9,0x0,0x8,0x0,0x7,0x0,0xa,0x0,0xc,0x0, +0xf,0x0,0x12,0x0,0x12,0x0,0xf,0x0,0xe,0x0,0xb,0x0, +0x9,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0x2,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x6,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x6,0x0, +0x4,0x0,0x0,0x0,0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0x1,0x0, +0x3,0x0,0x5,0x0,0x8,0x0,0x9,0x0,0xa,0x0,0x9,0x0, +0x9,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x7,0x0,0x9,0x0, +0x9,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x7,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x8,0x0,0x8,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x8,0x0, +0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x8,0x0,0x5,0x0, +0x1,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x6,0x0, +0x7,0x0,0x7,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x4,0x0,0x6,0x0,0x9,0x0,0xa,0x0,0xa,0x0, +0x8,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x7,0x0, +0x5,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x8,0x0,0x8,0x0, +0x7,0x0,0x6,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x7,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x8,0x0, +0x7,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfc,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfb,0xff,0xf7,0xff,0xf6,0xff, +0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf6,0xff, +0xf5,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xf8,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xf8,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff, +0xf5,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf6,0xff,0xf7,0xff, +0xf8,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff, +0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff, +0xf8,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf4,0xff,0xf4,0xff, +0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff, +0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff, +0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/door_open.pcm b/src/client/sound/data/door_open.pcm new file mode 100755 index 0000000..f438be3 --- /dev/null +++ b/src/client/sound/data/door_open.pcm @@ -0,0 +1,3679 @@ +unsigned char PCM_door_open[44116] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x22,0x56,0x0,0x0,0x4,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0x1,0x0,0x6,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x3,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfa,0xff, +0xf6,0xff,0xf3,0xff,0xf0,0xff,0xee,0xff,0xee,0xff,0xef,0xff, +0xee,0xff,0xed,0xff,0xec,0xff,0xe8,0xff,0xe5,0xff,0xdb,0xff, +0xc7,0xff,0xb7,0xff,0xab,0xff,0xa1,0xff,0xa3,0xff,0xad,0xff, +0xc7,0xff,0xee,0xff,0xd,0x0,0x1f,0x0,0x26,0x0,0x21,0x0, +0x12,0x0,0xfb,0xff,0xe7,0xff,0xd8,0xff,0xcb,0xff,0xc8,0xff, +0xd1,0xff,0xe6,0xff,0xfc,0xff,0xb,0x0,0x1a,0x0,0x1e,0x0, +0x6,0x0,0xdd,0xff,0xa8,0xff,0x75,0xff,0x5d,0xff,0x62,0xff, +0x81,0xff,0xa4,0xff,0xb0,0xff,0xbb,0xff,0xd5,0xff,0xf2,0xff, +0xe,0x0,0x29,0x0,0x33,0x0,0x25,0x0,0x19,0x0,0x19,0x0, +0x15,0x0,0x13,0x0,0xf,0x0,0xf8,0xff,0xdc,0xff,0xbe,0xff, +0x93,0xff,0x64,0xff,0x30,0xff,0xf,0xff,0x22,0xff,0x67,0xff, +0xd0,0xff,0x36,0x0,0x72,0x0,0xa2,0x0,0xd1,0x0,0xf1,0x0, +0xd,0x1,0x2d,0x1,0x54,0x1,0x72,0x1,0x70,0x1,0x50,0x1, +0xe,0x1,0xb7,0x0,0x62,0x0,0x16,0x0,0xe3,0xff,0xc6,0xff, +0xb0,0xff,0xb5,0xff,0xd6,0xff,0xfc,0xff,0x2e,0x0,0x6a,0x0, +0x8f,0x0,0x96,0x0,0xcb,0x0,0x41,0x1,0x9b,0x1,0xc9,0x1, +0xe5,0x1,0xc4,0x1,0x65,0x1,0xe9,0x0,0x55,0x0,0xc6,0xff, +0x56,0xff,0x8,0xff,0xce,0xfe,0xad,0xfe,0xb6,0xfe,0xc8,0xfe, +0xd8,0xfe,0xe,0xff,0x47,0xff,0x79,0xff,0xb7,0xff,0xcf,0xff, +0xcc,0xff,0xcf,0xff,0xbf,0xff,0xb8,0xff,0xaf,0xff,0x67,0xff, +0x7,0xff,0xb9,0xfe,0x62,0xfe,0x0,0xfe,0x80,0xfd,0xde,0xfc, +0x56,0xfc,0xf4,0xfb,0x83,0xfb,0x30,0xfb,0x42,0xfb,0x7c,0xfb, +0xaa,0xfb,0xd8,0xfb,0xf5,0xfb,0x30,0xfc,0xb1,0xfc,0x57,0xfd, +0x20,0xfe,0xcb,0xfe,0x49,0xff,0xe8,0xff,0x3c,0x0,0x1b,0x0, +0x22,0x0,0x3c,0x0,0x4a,0x0,0x83,0x0,0xa4,0x0,0x91,0x0, +0x59,0x0,0x22,0x0,0x47,0x0,0x55,0x0,0x1c,0x0,0x2f,0x0, +0x34,0x0,0xd7,0xff,0x70,0xff,0xd6,0xfe,0x33,0xfe,0xf5,0xfd, +0xdd,0xfd,0xc8,0xfd,0xc2,0xfd,0xce,0xfd,0xe4,0xfd,0xbe,0xfd, +0x93,0xfd,0xcc,0xfd,0x3b,0xfe,0xcd,0xfe,0x90,0xff,0x8b,0x0, +0xc5,0x1,0xad,0x2,0x12,0x3,0x69,0x3,0x97,0x3,0x93,0x3, +0xa0,0x3,0xb6,0x3,0xfd,0x3,0x65,0x4,0x8e,0x4,0x98,0x4, +0x92,0x4,0x4f,0x4,0xcc,0x3,0xc,0x3,0x4b,0x2,0xb4,0x1, +0x23,0x1,0xa5,0x0,0x65,0x0,0x75,0x0,0x9a,0x0,0x90,0x0, +0x8a,0x0,0xa9,0x0,0xc8,0x0,0xe0,0x0,0xb8,0x0,0x65,0x0, +0x57,0x0,0x5b,0x0,0x3d,0x0,0x27,0x0,0xe4,0xff,0x75,0xff, +0x37,0xff,0x36,0xff,0x57,0xff,0x8f,0xff,0xdb,0xff,0xf,0x0, +0x15,0x0,0x39,0x0,0x86,0x0,0xd8,0x0,0x53,0x1,0xbc,0x1, +0xc4,0x1,0x72,0x1,0xce,0x0,0x20,0x0,0xa7,0xff,0x39,0xff, +0xdc,0xfe,0xa0,0xfe,0x61,0xfe,0x3,0xfe,0x87,0xfd,0x49,0xfd, +0x7c,0xfd,0xdb,0xfd,0x3f,0xfe,0x94,0xfe,0xfc,0xfe,0xd5,0xff, +0xce,0x0,0x77,0x1,0x13,0x2,0xca,0x2,0x6d,0x3,0x4,0x4, +0xb2,0x4,0x37,0x5,0x55,0x5,0x65,0x5,0x78,0x5,0x1f,0x5, +0xa2,0x4,0x59,0x4,0xa,0x4,0xd2,0x3,0xc9,0x3,0xc3,0x3, +0xdf,0x3,0xfa,0x3,0xda,0x3,0xc0,0x3,0xb3,0x3,0x85,0x3, +0x50,0x3,0x21,0x3,0xf8,0x2,0xdf,0x2,0xc0,0x2,0xa1,0x2, +0x8c,0x2,0x39,0x2,0x8b,0x1,0xda,0x0,0x3e,0x0,0x8c,0xff, +0xd3,0xfe,0x1a,0xfe,0x50,0xfd,0x9d,0xfc,0x27,0xfc,0xc2,0xfb, +0x50,0xfb,0x16,0xfb,0x22,0xfb,0x19,0xfb,0xf5,0xfa,0xfd,0xfa, +0x33,0xfb,0xab,0xfb,0x65,0xfc,0x24,0xfd,0xdd,0xfd,0x82,0xfe, +0xdb,0xfe,0x3,0xff,0xb,0xff,0xe0,0xfe,0xc2,0xfe,0xd7,0xfe, +0xf2,0xfe,0x25,0xff,0x91,0xff,0x11,0x0,0x87,0x0,0xc1,0x0, +0x84,0x0,0xa,0x0,0xb3,0xff,0x88,0xff,0x9a,0xff,0xef,0xff, +0x3d,0x0,0x8c,0x0,0x41,0x1,0x36,0x2,0xd6,0x2,0x19,0x3, +0x66,0x3,0xc0,0x3,0xf8,0x3,0x37,0x4,0x98,0x4,0xf5,0x4, +0x47,0x5,0x71,0x5,0x54,0x5,0x43,0x5,0x5c,0x5,0x49,0x5, +0x40,0x5,0xb8,0x5,0x4e,0x6,0x87,0x6,0x9e,0x6,0xcf,0x6, +0xef,0x6,0xd3,0x6,0x93,0x6,0x79,0x6,0x99,0x6,0xb4,0x6, +0xa8,0x6,0x81,0x6,0x3d,0x6,0xd8,0x5,0x63,0x5,0xf,0x5, +0xf1,0x4,0xe2,0x4,0xc4,0x4,0x85,0x4,0x19,0x4,0xc2,0x3, +0xad,0x3,0xa7,0x3,0x88,0x3,0x4d,0x3,0xef,0x2,0x7e,0x2, +0xfd,0x1,0x73,0x1,0x1b,0x1,0xe8,0x0,0x9d,0x0,0x56,0x0, +0x10,0x0,0x99,0xff,0x29,0xff,0xf1,0xfe,0xc8,0xfe,0xa9,0xfe, +0xb2,0xfe,0xfa,0xfe,0x7f,0xff,0xf4,0xff,0x16,0x0,0xf8,0xff, +0xb4,0xff,0x55,0xff,0xe9,0xfe,0x59,0xfe,0x9c,0xfd,0xd3,0xfc, +0x27,0xfc,0xbc,0xfb,0x90,0xfb,0x89,0xfb,0x98,0xfb,0x90,0xfb, +0x4f,0xfb,0xfb,0xfa,0xb7,0xfa,0x85,0xfa,0x78,0xfa,0x84,0xfa, +0x8b,0xfa,0xb2,0xfa,0x32,0xfb,0xf9,0xfb,0xcc,0xfc,0x97,0xfd, +0x66,0xfe,0x1c,0xff,0x89,0xff,0xcc,0xff,0x23,0x0,0x78,0x0, +0xc4,0x0,0x2f,0x1,0x7d,0x1,0x92,0x1,0xa5,0x1,0x77,0x1, +0xf,0x1,0xd,0x1,0x24,0x1,0xc5,0x0,0x5d,0x0,0x16,0x0, +0xb4,0xff,0x68,0xff,0x14,0xff,0x9c,0xfe,0x6d,0xfe,0x7d,0xfe, +0x73,0xfe,0x63,0xfe,0x5b,0xfe,0x4b,0xfe,0x2f,0xfe,0x33,0xfe, +0x8b,0xfe,0xce,0xfe,0xa0,0xfe,0x73,0xfe,0x70,0xfe,0x62,0xfe, +0x71,0xfe,0xa7,0xfe,0xcb,0xfe,0xcf,0xfe,0xb8,0xfe,0xaa,0xfe, +0xae,0xfe,0xaa,0xfe,0xc9,0xfe,0x9,0xff,0xb,0xff,0xca,0xfe, +0x6e,0xfe,0xf8,0xfd,0x93,0xfd,0x74,0xfd,0x91,0xfd,0xb1,0xfd, +0xac,0xfd,0x8d,0xfd,0x77,0xfd,0x7a,0xfd,0x55,0xfd,0xea,0xfc, +0xb4,0xfc,0xc2,0xfc,0x7d,0xfc,0xfd,0xfb,0xd9,0xfb,0xd,0xfc, +0x3a,0xfc,0x41,0xfc,0x6e,0xfc,0xc1,0xfc,0xb8,0xfc,0x9d,0xfc, +0xec,0xfc,0x20,0xfd,0x28,0xfd,0x64,0xfd,0x6a,0xfd,0x43,0xfd, +0x51,0xfd,0x47,0xfd,0x44,0xfd,0x63,0xfd,0x32,0xfd,0x2,0xfd, +0xff,0xfc,0xb4,0xfc,0x79,0xfc,0x5a,0xfc,0xd5,0xfb,0x6a,0xfb, +0x59,0xfb,0x1d,0xfb,0xe7,0xfa,0xec,0xfa,0xe8,0xfa,0x28,0xfb, +0xe1,0xfb,0xa3,0xfc,0x5e,0xfd,0x53,0xfe,0x49,0xff,0xd3,0xff, +0x1b,0x0,0x81,0x0,0xe5,0x0,0xf6,0x0,0xc3,0x0,0x93,0x0, +0x6c,0x0,0xf,0x0,0xb4,0xff,0xb4,0xff,0xad,0xff,0x59,0xff, +0x4,0xff,0xb6,0xfe,0x6b,0xfe,0x2f,0xfe,0xdd,0xfd,0xa7,0xfd, +0xa2,0xfd,0xa5,0xfd,0xde,0xfd,0xa,0xfe,0xd3,0xfd,0xd2,0xfd, +0x37,0xfe,0x75,0xfe,0x76,0xfe,0x7f,0xfe,0xc6,0xfe,0x36,0xff, +0x89,0xff,0xb5,0xff,0xb4,0xff,0xb3,0xff,0xc6,0xff,0x7d,0xff, +0x2a,0xff,0x3c,0xff,0xc,0xff,0xc4,0xfe,0xfc,0xfe,0x10,0xff, +0xac,0xfe,0x16,0xfe,0x72,0xfd,0x17,0xfd,0xfe,0xfc,0xe2,0xfc, +0x97,0xfc,0x7,0xfc,0xd7,0xfb,0x8,0xfc,0xa2,0xfb,0x3b,0xfb, +0x83,0xfb,0xc2,0xfb,0xde,0xfb,0xf7,0xfb,0xe8,0xfb,0x14,0xfc, +0x3e,0xfc,0x10,0xfc,0x41,0xfc,0xf1,0xfc,0x8a,0xfd,0xda,0xfd, +0xfd,0xfd,0x53,0xfe,0xeb,0xfe,0x49,0xff,0x4b,0xff,0x2a,0xff, +0xe,0xff,0xf,0xff,0xf8,0xfe,0x83,0xfe,0xfc,0xfd,0x4,0xfe, +0x59,0xfe,0x55,0xfe,0x55,0xfe,0x94,0xfe,0x92,0xfe,0x93,0xfe, +0xac,0xfe,0x65,0xfe,0x49,0xfe,0x93,0xfe,0x8f,0xfe,0x73,0xfe, +0x9f,0xfe,0xd0,0xfe,0x25,0xff,0xa5,0xff,0xf9,0xff,0x48,0x0, +0xbb,0x0,0x9,0x1,0x3d,0x1,0xa2,0x1,0xdd,0x1,0xb1,0x1, +0xb3,0x1,0xef,0x1,0xb8,0x1,0x25,0x1,0xcb,0x0,0xb8,0x0, +0x8f,0x0,0x35,0x0,0x2,0x0,0xfe,0xff,0xef,0xff,0xde,0xff, +0x88,0xff,0x1a,0xff,0x5d,0xff,0xa5,0xff,0x43,0xff,0x34,0xff, +0x8f,0xff,0x79,0xff,0x42,0xff,0x52,0xff,0x70,0xff,0x86,0xff, +0xa4,0xff,0xdb,0xff,0xf,0x0,0x3d,0x0,0x69,0x0,0x56,0x0, +0x60,0x0,0xbf,0x0,0xa1,0x0,0x57,0x0,0xb6,0x0,0xf6,0x0, +0xcf,0x0,0xef,0x0,0x8,0x1,0xe,0x1,0x91,0x1,0x4a,0x2, +0x9d,0x2,0x64,0x2,0x8,0x2,0xea,0x1,0xaf,0x1,0x55,0x1, +0x33,0x1,0xdd,0x0,0x38,0x0,0xc0,0xff,0x38,0xff,0x6a,0xfe, +0x4,0xfe,0x45,0xfe,0x6c,0xfe,0x59,0xfe,0xac,0xfe,0xe0,0xfe, +0x86,0xfe,0x95,0xfe,0x20,0xff,0x82,0xff,0x14,0x0,0xd1,0x0, +0x58,0x1,0xd6,0x1,0x30,0x2,0x45,0x2,0x49,0x2,0x6f,0x2, +0xb2,0x2,0x91,0x2,0x3f,0x2,0x61,0x2,0x79,0x2,0x71,0x2, +0x59,0x2,0x88,0x1,0x8,0x1,0x85,0x1,0x49,0x1,0x78,0x0, +0x72,0x0,0xba,0x0,0xc9,0x0,0x9b,0x0,0x4d,0x0,0xca,0xff, +0xa8,0xfe,0x5e,0xff,0xaa,0x3,0x49,0x6,0xc5,0x3,0xac,0x0, +0x2e,0x0,0x4e,0x1,0xc3,0x2,0x17,0x2,0xc4,0xff,0x93,0x0, +0x7,0x4,0xf2,0x4,0x80,0x2,0x46,0xfe,0xe0,0xfa,0xf9,0xfc, +0x47,0x2,0xf5,0x2,0x31,0x0,0x3,0x0,0x98,0x1,0x27,0x2, +0xca,0x1,0xf9,0x0,0xb4,0x0,0x8d,0x1,0x55,0x2,0x1f,0x2, +0x1d,0x1,0x3d,0x0,0x52,0x0,0x3,0x1,0xa5,0x1,0x26,0x2, +0xf9,0x2,0x68,0x4,0xc,0x5,0x65,0x3,0x27,0x1,0xf1,0x0, +0xfd,0x1,0x4a,0x2,0xac,0x2,0x6a,0x4,0x5e,0x6,0x46,0x7, +0xa8,0x6,0xba,0x4,0xcd,0x3,0xf2,0x4,0xdc,0x5,0xa0,0x5, +0xb9,0x5,0xc2,0x6,0x22,0x8,0xc7,0x8,0x2,0x8,0x58,0x6, +0x43,0x5,0xf,0x6,0x9f,0x7,0xce,0x7,0xfc,0x6,0x20,0x6, +0xf,0x5,0x2f,0x4,0x62,0x3,0x84,0x2,0xd2,0x2,0x35,0x4, +0x20,0x5,0xba,0x4,0xff,0x2,0x61,0x1,0x3e,0x1,0xe0,0x1, +0x3d,0x2,0xf6,0x1,0x90,0x1,0x4,0x2,0x9,0x2,0x6a,0x0, +0x2b,0xff,0x8f,0xff,0x83,0x0,0x5a,0x1,0x24,0x2,0x60,0x3, +0xce,0x4,0xb7,0x4,0xd2,0x2,0x1d,0x1,0x39,0x1,0x38,0x3, +0xfb,0x5,0x4e,0x8,0xd6,0x9,0x9f,0xa,0x6b,0xa,0xec,0x8, +0xf7,0x6,0x21,0x6,0x6a,0x6,0xa2,0x6,0x64,0x6,0xc6,0x5, +0xdf,0x4,0xb9,0x3,0x79,0x2,0xb9,0x1,0x63,0x1,0xb3,0x0, +0x56,0x0,0x34,0x1,0xf6,0x1,0x2e,0x1,0xc6,0xff,0x2,0xff, +0x3,0xff,0xfc,0xff,0x65,0x1,0x86,0x1,0x88,0x0,0x2b,0x0, +0x94,0x0,0x11,0x1,0x44,0x1,0x46,0x1,0xb8,0x1,0x8f,0x1, +0xd8,0xff,0x9d,0xfe,0xb6,0xfe,0x25,0xff,0x6e,0x0,0x75,0x2, +0x76,0x4,0xc,0x6,0xea,0x5,0x95,0x4,0x78,0x3,0x8,0x2, +0xde,0x0,0xd6,0x0,0xa7,0x1,0xcd,0x3,0xa9,0x5,0x4c,0x5, +0x5a,0x4,0x76,0x3,0x20,0x2,0x32,0x1,0x99,0x0,0x3a,0x0, +0x27,0x0,0xe6,0xff,0xe8,0xff,0xeb,0xff,0xc6,0xff,0x68,0x0, +0xd9,0x0,0xac,0x0,0xc4,0x0,0x15,0x0,0xaa,0xfe,0xc7,0xfd, +0x41,0xfd,0xb8,0xfd,0x14,0xff,0xa2,0xff,0x71,0xff,0x70,0xff, +0xc4,0xff,0xf3,0xff,0x7b,0xff,0x8,0xff,0xbe,0xfe,0x33,0xfe, +0x62,0xfe,0x51,0xff,0xb5,0xff,0x35,0xff,0xf5,0xfd,0x67,0xfc, +0x23,0xfb,0x6c,0xfa,0x59,0xfa,0x4d,0xfa,0x13,0xfa,0x3d,0xfa, +0x53,0xfa,0xe7,0xf9,0x9d,0xf9,0xec,0xf9,0x8b,0xfa,0x91,0xfa, +0x20,0xfa,0x39,0xfa,0x7c,0xfa,0x86,0xfa,0xaa,0xfa,0xed,0xfa, +0xc6,0xfb,0xe1,0xfc,0x2e,0xfd,0x50,0xfd,0xa1,0xfd,0x38,0xfd, +0x5e,0xfc,0xc0,0xfb,0x8e,0xfb,0xe6,0xfb,0x65,0xfc,0xc0,0xfc, +0xf9,0xfc,0x12,0xfd,0x62,0xfd,0xef,0xfd,0x5b,0xfe,0xfa,0xfe, +0x2b,0x0,0x50,0x1,0xa0,0x1,0x1b,0x1,0xc,0x0,0xd1,0xfe, +0x32,0xfe,0x55,0xfe,0x84,0xfe,0x5c,0xfe,0xcb,0xfd,0x12,0xfd, +0x5c,0xfc,0x4b,0xfb,0x6c,0xfa,0x6a,0xfa,0x95,0xfa,0x97,0xfa, +0x9f,0xfa,0xaa,0xfa,0x18,0xfb,0xbb,0xfb,0x16,0xfc,0x84,0xfc, +0x1a,0xfd,0x77,0xfd,0x41,0xfd,0x9c,0xfc,0xbc,0xfc,0xd9,0xfd, +0xb6,0xfe,0x2f,0xff,0xec,0xff,0xd2,0x0,0x4c,0x1,0xfb,0x0, +0x37,0x0,0x47,0xff,0x14,0xfe,0xf3,0xfc,0x13,0xfc,0x54,0xfb, +0x87,0xfa,0x78,0xf9,0xd9,0xf8,0xed,0xf8,0xb3,0xf8,0x53,0xf8, +0x73,0xf8,0xce,0xf8,0x98,0xf9,0x95,0xfa,0xf0,0xfa,0x4d,0xfb, +0x17,0xfc,0x85,0xfc,0x9a,0xfc,0x7e,0xfc,0xf4,0xfb,0x57,0xfb, +0xd5,0xfa,0x96,0xfa,0x70,0xfb,0x1e,0xfd,0x7a,0xfe,0xa3,0xff, +0xc3,0x0,0x23,0x1,0x1,0x1,0xf4,0x0,0x8a,0x0,0xc3,0xff, +0x9f,0xff,0x28,0x0,0x6f,0x0,0x96,0x0,0x51,0x1,0x1b,0x2, +0x14,0x2,0x2e,0x1,0x96,0xff,0xb0,0xfd,0x92,0xfc,0x14,0xfd, +0xa,0xfe,0xef,0xfd,0x95,0xfd,0xc3,0xfd,0xdd,0xfd,0x25,0xfe, +0x70,0xfe,0xa9,0xfd,0x85,0xfc,0x26,0xfc,0x52,0xfc,0xcd,0xfc, +0x8f,0xfd,0x34,0xfe,0x5d,0xfe,0x10,0xfe,0x72,0xfd,0xb8,0xfc, +0x8b,0xfc,0x10,0xfd,0xb9,0xfd,0x5a,0xfe,0xbf,0xfe,0xeb,0xfe, +0x6,0xff,0xb1,0xfe,0x83,0xfe,0xf8,0xfe,0xe4,0xfe,0xd8,0xfd, +0x72,0xfc,0x3e,0xfb,0x38,0xfa,0x6e,0xf8,0xe,0xf7,0xad,0xf7, +0x35,0xf8,0xdb,0xf8,0x64,0xfd,0x7f,0x4,0x8a,0x8,0x42,0x7, +0x28,0x3,0x7,0xfe,0xde,0xf6,0xfa,0xef,0xdf,0xed,0x54,0xf0, +0x1f,0xf5,0x18,0xfb,0x39,0x1,0xd5,0x6,0x28,0xa,0xd0,0xa, +0xbc,0x9,0x95,0x4,0xe2,0xfc,0xef,0xf8,0xb4,0xf8,0x24,0xfb, +0xe2,0x2,0x7,0xc,0x94,0xe,0x52,0x9,0x12,0x1,0x3e,0xfa, +0xa3,0xf6,0x7,0xf7,0xd2,0xf9,0x1d,0xfc,0xa9,0xfd,0xdf,0xfd, +0x58,0xfc,0x1f,0xfb,0x61,0xfa,0xb3,0xfb,0xd0,0x0,0xc0,0x3, +0xa1,0x1,0xee,0xff,0x80,0x0,0xef,0x1,0x43,0x3,0x9b,0x2, +0xd6,0x0,0x4e,0x1,0xf,0x5,0x4a,0x8,0xd9,0x6,0x11,0x3, +0x7,0x0,0xd6,0xfd,0xd5,0xfe,0x81,0x3,0xa9,0x8,0x13,0xc, +0xc0,0xb,0xb7,0x7,0xb5,0x2,0x1e,0xff,0xdb,0xfd,0xda,0xfb, +0xca,0xf7,0x52,0xf7,0x98,0xfd,0xa6,0x7,0x33,0x10,0x97,0x12, +0xb,0x10,0xa3,0xb,0x5c,0x6,0x69,0x3,0x53,0x4,0xed,0x6, +0xed,0x9,0xef,0xc,0x34,0x10,0x7f,0x12,0x1,0x11,0xbc,0xb, +0x99,0x3,0xdf,0xfa,0x8d,0xf6,0xc0,0xf7,0x4,0xfc,0x17,0x1, +0xa0,0x4,0xfa,0x5,0x7,0x5,0x6d,0x2,0xf9,0x0,0x82,0x0, +0xda,0xfe,0xe8,0xfc,0x6a,0xfc,0x56,0xfd,0x51,0xfe,0x53,0xff, +0x62,0x1,0xcd,0x2,0x12,0x2,0xe9,0x0,0xe3,0x1,0x55,0x5, +0xea,0x6,0x62,0x4,0xa,0x2,0x8,0x2,0xa9,0x3,0x46,0x6, +0x9c,0x6,0xac,0x4,0xf8,0x3,0x45,0x3,0xd1,0x0,0xf8,0xfe, +0x8f,0xff,0x70,0x1,0xe,0x3,0x9d,0x5,0x53,0xa,0x2b,0x10, +0xed,0x17,0x4d,0x21,0x50,0x27,0x58,0x26,0xb7,0x1b,0x12,0x5, +0xf6,0xeb,0x92,0xe1,0x36,0xe9,0x51,0xf8,0xd1,0x6,0xc9,0x10, +0xf3,0xf,0x31,0x3,0xa6,0xf7,0xdd,0xf7,0xc3,0xfe,0xfb,0x7, +0xe5,0xd,0xc6,0x4,0x28,0xf7,0x79,0xf9,0xba,0x4,0x3c,0xb, +0xac,0xc,0x11,0xb,0xbe,0x8,0xe4,0x4,0x65,0x1,0xda,0x2, +0xdf,0xff,0x59,0xf5,0xaa,0xf1,0x39,0xf7,0xe9,0x1,0x6f,0x16, +0x3f,0x31,0x6f,0x3b,0xee,0x20,0xe3,0xf8,0x3e,0xe7,0x4b,0xe0, +0x86,0xdb,0xb,0xef,0x66,0xa,0x11,0x13,0x78,0x1b,0xd9,0x2a, +0x5,0x2b,0x11,0x15,0x58,0xf4,0x4a,0xd8,0xa2,0xc9,0xd1,0xc8, +0x35,0xda,0x1b,0xf8,0x3b,0xc,0x28,0x10,0x15,0xf,0x21,0xa, +0xfa,0xfd,0xb3,0xef,0xae,0xe2,0xb9,0xd7,0x65,0xd5,0x29,0xe1, +0x27,0xf7,0x4,0xf,0x8f,0x21,0xbe,0x26,0xe,0x18,0xe7,0xfe, +0xf4,0xf1,0xe7,0xf8,0xc2,0x6,0x12,0x11,0xe5,0x15,0x82,0x12, +0x1a,0x6,0x5b,0xf6,0x1e,0xec,0x55,0xf0,0xc,0x3,0x4d,0x12, +0x6c,0xd,0xe3,0xfb,0x47,0xee,0x59,0xea,0xec,0xec,0xb1,0xee, +0xe7,0xeb,0xb6,0xe8,0x1a,0xe9,0x85,0xeb,0x62,0xeb,0x72,0xea, +0xf2,0xef,0xdd,0xf8,0xec,0xff,0x2e,0x8,0x40,0xc,0xd,0x4, +0x58,0xf6,0xec,0xee,0x1c,0xf7,0x5d,0xf,0x57,0x28,0x8a,0x31, +0x61,0x25,0x5c,0xb,0x5f,0xf3,0xf1,0xe5,0x41,0xe5,0x58,0xf1, +0x99,0xff,0x7,0x4,0x47,0xfc,0x89,0xee,0x92,0xe7,0x93,0xed, +0x59,0xfd,0x8b,0x11,0x28,0x1c,0x2b,0x12,0x36,0xfb,0x1b,0xe3, +0xcc,0xd3,0xbd,0xd8,0x9a,0xf1,0x6,0xe,0xb8,0x1d,0x18,0x1e, +0xe2,0x15,0xf5,0xb,0x98,0x6,0x9b,0x5,0xc0,0x2,0xa5,0xff, +0xe0,0x0,0x4a,0x2,0x71,0xfe,0xac,0xf5,0x2d,0xec,0x2f,0xe7, +0xa2,0xeb,0xaf,0xfa,0x11,0xc,0x7d,0x15,0x1d,0x14,0xc7,0x7, +0x91,0xf6,0x39,0xef,0xbb,0xf5,0x13,0xff,0x86,0x5,0x1c,0xb, +0x7,0xc,0x21,0x5,0x69,0xfe,0x6b,0xfb,0x47,0xf5,0xc2,0xec, +0x72,0xe7,0x3b,0xe4,0x50,0xe3,0x5a,0xe7,0x33,0xef,0xfa,0xf7, +0xa6,0xff,0x3a,0x6,0x16,0xc,0xfb,0x10,0xa0,0x16,0x6e,0x1b, +0x85,0x19,0x7a,0x11,0xe9,0x9,0x78,0x6,0xef,0x5,0x6f,0x4, +0x24,0xff,0xf,0xf7,0xf8,0xef,0xfa,0xec,0xb6,0xed,0x5a,0xf0, +0x70,0xf4,0x7b,0xf9,0x2a,0xfd,0x51,0xfd,0xd4,0xfb,0xa4,0xfc, +0xae,0xff,0x80,0x2,0x3,0x3,0xca,0xfd,0x1a,0xf2,0x7c,0xe5, +0x78,0xde,0xd0,0xe0,0xb1,0xec,0xa3,0xfb,0x48,0x4,0xfc,0x4, +0x9f,0x3,0xb1,0x3,0x1b,0x5,0xd1,0x7,0xa9,0xb,0x87,0x10, +0x43,0x15,0x18,0x17,0xfb,0x14,0xa6,0xf,0x3e,0x8,0xcf,0x0, +0x57,0xfb,0x22,0xf8,0x79,0xf4,0x8e,0xef,0x7,0xef,0xf5,0xf4, +0x7a,0xfd,0x7,0x9,0x7a,0x16,0xfa,0x1d,0x90,0x1a,0x19,0xd, +0xa7,0xfc,0x51,0xf2,0xd0,0xee,0xac,0xef,0x34,0xf4,0x20,0xf9, +0xd6,0xfd,0xd8,0x2,0x9f,0x3,0x5e,0xfe,0x91,0xf6,0x25,0xf3, +0xbb,0xfa,0x7,0x7,0xbe,0xc,0xd0,0xc,0xe9,0xa,0xc5,0x7, +0x72,0x8,0x6d,0xd,0xb7,0xd,0xe3,0x3,0xa4,0xf3,0x97,0xe5, +0x9d,0xe2,0xd9,0xeb,0xe7,0xf9,0xca,0x6,0xc1,0xe,0x27,0xe, +0x5a,0x8,0xfa,0x2,0x6a,0xfd,0x77,0xf7,0x45,0xf1,0x1,0xe9, +0xf7,0xe2,0xd1,0xe4,0xdb,0xed,0xbd,0xfb,0x6d,0xa,0x37,0x15, +0x3a,0x1b,0x79,0x1c,0xb9,0x1a,0x7f,0x19,0x28,0x18,0xdb,0x14, +0x60,0xf,0x94,0x6,0xd3,0xfb,0x4,0xf3,0x85,0xec,0xe7,0xe6, +0xde,0xe3,0x4f,0xe5,0xca,0xe8,0x59,0xeb,0x3,0xee,0xcc,0xf2, +0xab,0xf9,0x79,0x0,0x19,0x4,0x36,0x4,0x99,0x3,0x27,0x4, +0x8c,0x5,0xd0,0x5,0x90,0x3,0x10,0x0,0x92,0xfc,0x49,0xf9, +0x23,0xf7,0x6a,0xf6,0xd7,0xf6,0x7a,0xf9,0xc2,0xfe,0x87,0x5, +0x35,0xc,0xa0,0x10,0xbe,0x11,0x2c,0x11,0x54,0x11,0xdd,0x13, +0x87,0x17,0x4b,0x18,0x64,0x15,0x87,0x12,0x7f,0x11,0xb5,0x10, +0x78,0xf,0xf8,0xe,0x64,0xf,0x30,0xf,0xf1,0xc,0xfb,0x7, +0x71,0x1,0xbf,0xfc,0x78,0xfc,0xcd,0x0,0x6a,0x8,0x1f,0x10, +0x48,0x14,0x40,0x14,0xf9,0x11,0xc1,0xd,0xf9,0x6,0x3,0x0, +0x78,0xfa,0xc2,0xf5,0x6b,0xf3,0x97,0xf2,0x25,0xf0,0x56,0xee, +0x59,0xef,0xc6,0xf1,0x9,0xf6,0xf0,0xfb,0x1c,0x2,0x4,0x8, +0xc1,0xb,0x16,0xd,0xe8,0xd,0x64,0xe,0xf3,0xd,0x5a,0xb, +0x2a,0x6,0x51,0x1,0xbf,0xff,0x6c,0x1,0x57,0x3,0x4d,0x3, +0x57,0x3,0x7d,0x4,0x55,0x4,0x8b,0x1,0x1a,0xfd,0x6f,0xf9, +0x4e,0xf8,0x2b,0xfa,0xe,0xfe,0xa9,0x0,0xdf,0x2,0xf8,0x8, +0x18,0x10,0xdc,0x12,0xda,0xf,0x53,0x8,0x5e,0x2,0xb5,0x1, +0xab,0x2,0xb3,0x2,0xd7,0x0,0x6e,0xfd,0xe4,0xfc,0xfd,0x0, +0x33,0x6,0x3,0x8,0x25,0x5,0x9d,0x1,0x57,0x0,0x60,0x0, +0x54,0x1,0x8b,0x2,0x87,0x2,0x4e,0x1,0x3e,0x0,0x49,0xfe, +0x22,0xf7,0x99,0xec,0x66,0xe6,0x7e,0xe6,0xad,0xeb,0x5d,0xf5, +0x2a,0x0,0x4b,0x9,0xa,0xf,0xef,0x10,0x89,0x12,0xfc,0x14, +0xd8,0x14,0x55,0x10,0x6d,0x9,0xb7,0x3,0xda,0xff,0x3c,0xfd, +0xfe,0xfc,0x91,0xfd,0xa9,0xfd,0x4a,0xff,0xac,0x2,0xa4,0x7, +0x7e,0xd,0x92,0x10,0x9e,0xe,0x6f,0x7,0x46,0xfe,0x72,0xf9, +0xa1,0xf9,0xd9,0xfa,0x52,0xfa,0x3f,0xf7,0xf3,0xf4,0x11,0xf4, +0x95,0xee,0x9,0xe6,0xfb,0xe3,0x8f,0xe9,0x8f,0xf0,0x24,0xf6, +0xcc,0xf9,0xeb,0xfa,0x30,0xfa,0x20,0xf8,0xec,0xf6,0x57,0xfa, +0x4a,0x0,0x8,0x5,0xdd,0x8,0xbc,0x7,0x65,0xff,0x3a,0xfa, +0x16,0xff,0xf2,0x6,0xa2,0x9,0xa9,0x5,0xa2,0xff,0x72,0xfc, +0x7,0xfc,0x8d,0xff,0x79,0x6,0xad,0x5,0x1d,0xf9,0x93,0xee, +0x83,0xee,0xdf,0xf3,0x3c,0xf9,0x52,0xfc,0xe3,0xff,0xad,0x7, +0x31,0xf,0x9b,0x10,0xaf,0xb,0x9a,0x4,0x4a,0x1,0xb,0x1, +0xdd,0x1,0x4f,0x6,0x1a,0x9,0x6,0x4,0xef,0xfa,0xb7,0xf0, +0xe3,0xe8,0xee,0xe9,0xd7,0xf2,0x92,0xfc,0x9a,0xff,0xfb,0xfb, +0x1d,0xfa,0xf8,0xfa,0xa0,0xfc,0xa2,0x2,0xdf,0x8,0x5b,0x9, +0xfb,0x7,0xb7,0x8,0x7e,0xa,0x60,0xa,0x75,0x7,0x31,0x4, +0x55,0x0,0x12,0xfb,0x41,0xf8,0xd7,0xf9,0xe1,0xfb,0xca,0xfa, +0xd,0xf8,0x91,0xf6,0xa5,0xf6,0x7b,0xf4,0x45,0xeb,0x50,0xe5, +0x2e,0xf6,0x60,0x18,0x8c,0x32,0x9e,0x38,0xcd,0x2f,0x90,0x24, +0x5b,0x1c,0x8a,0xe,0x7b,0xf6,0xf1,0xdd,0xfd,0xd3,0xc,0xe0, +0x36,0xf8,0xf2,0x9,0x3f,0x9,0xf1,0xf8,0x33,0xea,0xe6,0xe7, +0x11,0xee,0x1b,0xf8,0x56,0x1,0x9c,0x4,0x27,0x1,0x25,0xf7, +0xf0,0xeb,0xe5,0xe8,0x82,0xef,0x18,0xf9,0xeb,0xfc,0x2d,0xfb, +0x61,0xfd,0x64,0x1,0xbb,0xfc,0xb8,0xf2,0x55,0xed,0x59,0xef, +0xeb,0xf6,0xe1,0xfd,0x36,0xfc,0x2b,0xf4,0x10,0xf1,0xe1,0xf6, +0x2b,0x2,0x77,0x11,0xc7,0x20,0x1,0x28,0x58,0x21,0xf9,0xd, +0xe9,0xf9,0x3b,0xf1,0xa6,0xf2,0xdb,0xf7,0xad,0xfc,0xf5,0xfb, +0x6d,0xf3,0xbf,0xe7,0x16,0xe2,0x78,0xe8,0xd0,0xf7,0x13,0x9, +0xd5,0x15,0xe,0x17,0xa,0xc,0x32,0xff,0xe8,0xf9,0xa5,0xfc, +0xf3,0x4,0x48,0xc,0xc0,0x9,0xea,0xff,0x49,0xf8,0xd9,0xf5, +0xff,0xf7,0x13,0xfc,0x1,0xff,0x4a,0x2,0x36,0x5,0xef,0x3, +0xa6,0xfe,0x3e,0xf8,0xfb,0xf5,0xdb,0xfc,0x77,0xa,0x55,0x16, +0x5d,0x18,0xf6,0x10,0xbb,0x7,0xe8,0xff,0x23,0xfa,0xa,0xf9, +0xa2,0xfa,0x83,0xfa,0x7c,0xf8,0x8d,0xf5,0x3b,0xf1,0xb8,0xec, +0x5d,0xec,0x1b,0xf3,0x22,0xff,0x71,0xa,0x44,0xe,0x9b,0xa, +0xe5,0x4,0xaa,0xff,0x99,0xfb,0xf3,0xf8,0xdf,0xf6,0x6e,0xf5, +0x9d,0xf4,0x2,0xf6,0xce,0xfa,0x5,0xff,0xfb,0x1,0xc6,0x6, +0x8c,0xa,0x7e,0xa,0x9,0x8,0x40,0x4,0xf,0x1,0xbc,0x0, +0xb5,0x4,0xa9,0xc,0xff,0x13,0x74,0x16,0xa3,0x13,0x13,0xc, +0x7e,0x2,0x80,0xfc,0x5d,0xfc,0xe1,0xfd,0xa6,0xfd,0x16,0xfd, +0xdc,0xfc,0x9c,0xfc,0xd8,0xfc,0xdb,0xfd,0x21,0x1,0xbf,0x5, +0x70,0x8,0x39,0x9,0x1c,0x7,0x38,0x2,0xc5,0xff,0x12,0x0, +0x4,0x0,0x72,0xfe,0xef,0xf8,0x1f,0xf2,0xc6,0xef,0x9d,0xf1, +0xbd,0xf6,0x11,0xff,0x37,0x9,0xa9,0x13,0x40,0x19,0x6,0x17, +0xce,0x11,0xbb,0xd,0x72,0xb,0xe9,0xa,0x24,0xb,0xa4,0xa, +0x4f,0x7,0x82,0x0,0x31,0xf8,0x87,0xf0,0xd3,0xeb,0xb5,0xeb, +0x24,0xef,0xb6,0xf2,0x9,0xf4,0x2a,0xf5,0xef,0xf7,0x6c,0xfb, +0x66,0x0,0x5c,0x6,0xc7,0x9,0xa5,0x9,0xee,0x7,0xf5,0x6, +0xec,0x5,0x6b,0x2,0xae,0xfe,0xb4,0xfb,0xf,0xf6,0x92,0xee, +0xbc,0xe8,0x6d,0xe6,0x9f,0xe8,0x49,0xed,0x2d,0xf3,0x4f,0xfb, +0xce,0x2,0xb6,0x6,0x57,0x8,0x82,0x8,0xc7,0x7,0x59,0x8, +0x57,0xa,0x51,0xb,0x4b,0x9,0x54,0x3,0xc0,0xfa,0x69,0xf4, +0xb5,0xf4,0x54,0xfb,0x2e,0x3,0xaf,0x6,0xad,0x6,0x42,0x7, +0x80,0x7,0x7c,0x5,0x3b,0x2,0x7d,0xfe,0xa4,0xfb,0xf1,0xf9, +0xfe,0xf6,0x61,0xf3,0x75,0xf1,0xad,0xf0,0x14,0xf1,0x26,0xf4, +0xc5,0xf8,0x7d,0xfc,0xfe,0xfe,0x6d,0x0,0x82,0x0,0x69,0x0, +0xa3,0x0,0x90,0x0,0x2,0x1,0x9e,0x1,0xef,0x0,0x7a,0xff, +0xd5,0xfd,0x52,0xfd,0x27,0x0,0xbf,0x4,0xc3,0x7,0x1b,0x8, +0x1b,0x6,0x3f,0x3,0xcd,0x0,0x19,0xff,0x8b,0xff,0x1e,0x3, +0x4,0x8,0x92,0xb,0x71,0xc,0x66,0xa,0x29,0x6,0xcb,0x1, +0x45,0xff,0x7d,0xff,0x4b,0x2,0x3f,0x5,0x9d,0x5,0xb7,0x3, +0xea,0x0,0x7f,0xfc,0x15,0xf5,0x74,0xed,0xc7,0xea,0x83,0xec, +0xe8,0xef,0x34,0xf6,0xd2,0xfd,0x23,0x2,0xaa,0x2,0x38,0x1, +0xa9,0xff,0xee,0xfe,0xc6,0xfd,0xc4,0xfb,0xe1,0xf8,0x55,0xf5, +0xb7,0xf3,0x71,0xf3,0x3e,0xf1,0x3,0xef,0x4e,0xf0,0xeb,0xf5, +0x56,0xff,0xaf,0x9,0x5a,0x12,0x53,0x18,0x99,0x18,0x18,0x13, +0x46,0xd,0xc9,0x9,0xb3,0x7,0xd8,0x6,0x3b,0x6,0x7f,0x4, +0x44,0x1,0xcc,0xfc,0xbc,0xf9,0x9b,0xfa,0x94,0xfe,0x20,0x4, +0x62,0x9,0xc2,0xb,0xbc,0xa,0xc5,0x7,0xde,0x4,0x8c,0x3, +0xad,0x3,0x21,0x5,0xa,0x8,0x3b,0xb,0x92,0xc,0xc6,0x9, +0x46,0x3,0x1b,0xfd,0xbf,0xfa,0xb,0xfd,0x82,0x1,0xc8,0x3, +0xf6,0x2,0xa5,0x0,0x48,0xfe,0x4f,0xfe,0xdc,0x0,0x79,0x3, +0x70,0x5,0x7d,0x6,0x98,0x5,0x4b,0x2,0x2f,0xfd,0x39,0xf8, +0x7a,0xf4,0x20,0xf2,0xca,0xf1,0x12,0xf2,0xd2,0xf2,0xaa,0xf6, +0x83,0xfc,0x92,0x2,0x48,0x9,0x61,0xd,0xee,0xb,0xc8,0x6, +0x6a,0x0,0x58,0xfc,0xd3,0xfc,0xa9,0xff,0xab,0x3,0xa6,0x8, +0x17,0xc,0x25,0xc,0x6c,0x8,0x76,0x2,0x6c,0xfe,0xc6,0xfe, +0x14,0x2,0x70,0x4,0xde,0x2,0x12,0xff,0xcc,0xfb,0x9e,0xf9, +0xe5,0xf9,0x5b,0xfd,0xc,0x2,0x25,0x6,0x22,0x8,0x6c,0x6, +0x7e,0x1,0x1a,0xfc,0xdf,0xf8,0x7e,0xf8,0x8,0xfa,0xf5,0xfb, +0xa0,0xfd,0xb1,0xff,0x85,0x1,0xe6,0x1,0xd,0x2,0x23,0x3, +0xa2,0x4,0x60,0x6,0xdd,0x8,0x6d,0xc,0xac,0xf,0xf8,0xf, +0xaa,0xc,0xd4,0x7,0xbd,0x4,0xf9,0x3,0x29,0x3,0x5,0x3, +0x66,0x4,0xea,0x3,0xc4,0x0,0x7d,0xfd,0xa,0xfc,0xf3,0xfd, +0x6f,0x1,0x5f,0x3,0x52,0x3,0x79,0x1,0x11,0x0,0x56,0x1, +0x72,0x2,0x18,0x1,0xcb,0xfe,0xa,0xfd,0xf7,0xfb,0xbd,0xfa, +0x8e,0xf9,0x5f,0xf8,0xc2,0xf5,0x79,0xf3,0x65,0xf3,0xa6,0xf4, +0xce,0xf8,0xb0,0xff,0xe4,0x4,0xb4,0x7,0x78,0x9,0x37,0x9, +0xd0,0x6,0xf8,0x3,0xc8,0x2,0x59,0x3,0xff,0x2,0x9d,0xff, +0xdb,0xf8,0xaf,0xf0,0xfb,0xeb,0x61,0xee,0xa8,0xf6,0xe8,0xff, +0x5c,0x5,0x28,0x6,0xe0,0x4,0xd8,0x4,0xfd,0x7,0x81,0xc, +0x6f,0xe,0x52,0xc,0x9,0x8,0x3c,0x4,0x3b,0x2,0x57,0x1, +0x2b,0x0,0xb9,0xfe,0x77,0xfe,0x4a,0x0,0x6b,0x3,0xba,0x6, +0xdc,0x9,0x8,0xc,0x85,0xb,0x1a,0x8,0x65,0x3,0xc9,0xfe, +0x5d,0xfb,0xc3,0xf9,0xfb,0xf8,0x20,0xf7,0x79,0xf3,0x2b,0xf0, +0x4d,0xf0,0xc5,0xf3,0xff,0xf7,0xb,0xfb,0xa4,0xfb,0x60,0xf9, +0x6b,0xf6,0x73,0xf6,0x8a,0xfa,0x4c,0x0,0xa0,0x4,0x32,0x5, +0x56,0x2,0x9,0xff,0xc8,0xfc,0x7e,0xfb,0x82,0xfa,0xa5,0xf7, +0xa1,0xf3,0xa3,0xf2,0xda,0xf5,0x1e,0xfb,0xa4,0xff,0xc2,0x1, +0xda,0x2,0x47,0x4,0x1f,0x5,0xa1,0x4,0x27,0x3,0xe2,0x1, +0x28,0x1,0x39,0xff,0x9b,0xfb,0x2c,0xf8,0xd8,0xf5,0xcc,0xf3, +0xdc,0xf1,0x5d,0xf1,0xc7,0xf2,0x49,0xf5,0x12,0xf9,0x48,0xfe, +0xab,0x3,0x23,0x8,0xfe,0xa,0xf3,0xb,0x55,0xc,0x92,0xd, +0xf0,0xd,0xe7,0xa,0x35,0x6,0x9d,0x2,0xe0,0xff,0x2b,0xfe, +0x19,0xfe,0x4e,0xfe,0x3f,0xfe,0x13,0xff,0x55,0x1,0x2c,0x4, +0xff,0x5,0x1,0x6,0x9b,0x4,0x18,0x3,0xf8,0x1,0xb9,0xff, +0x98,0xfc,0xa,0xfa,0x3d,0xf7,0xe9,0xf5,0x1c,0xf9,0x6f,0xfd, +0xed,0xfd,0x4f,0xfa,0xf1,0xf4,0xae,0xf1,0x68,0xf3,0xc8,0xf8, +0xce,0xfd,0x3d,0x0,0xda,0x1,0xcf,0x4,0xdc,0x8,0xc,0xd, +0x73,0xf,0xbf,0xe,0x5f,0xc,0xfb,0x8,0x44,0x4,0xeb,0xff, +0x30,0xfd,0xea,0xfb,0xbd,0xfc,0xa9,0xff,0x30,0x2,0x12,0x2, +0x84,0x0,0x6b,0x0,0x2,0x3,0xc2,0x6,0xf,0x8,0x80,0x5, +0x78,0x2,0x13,0x2,0xe3,0x3,0xfc,0x5,0x60,0x6,0x69,0x4, +0x3c,0x1,0x25,0xfe,0xcc,0xfb,0xb1,0xf9,0xe0,0xf6,0x13,0xf4, +0x52,0xf3,0x34,0xf6,0x73,0xfc,0x77,0x3,0xe6,0x8,0xca,0xb, +0x94,0xb,0xcf,0x9,0x2,0x9,0x8c,0x8,0xf3,0x6,0x69,0x5, +0xca,0x4,0xf2,0x2,0x65,0xfd,0x4c,0xf5,0xbf,0xee,0xf3,0xeb, +0xf,0xec,0x7a,0xed,0x61,0xef,0xc8,0xf2,0x70,0xf8,0xd2,0xfd, +0xc6,0xff,0xff,0xfd,0xcb,0xfa,0xf0,0xf8,0x31,0xf9,0xc7,0xfa, +0xab,0xfc,0x2b,0xfd,0x8f,0xfb,0x3c,0xf9,0x42,0xf8,0xb7,0xf9, +0x8e,0xfb,0x23,0xfb,0x5b,0xfa,0xfc,0xfb,0x5a,0xff,0x58,0x3, +0x5a,0x7,0x31,0xa,0x64,0xb,0xaa,0xa,0xe3,0x7,0x0,0x5, +0x13,0x4,0xa2,0x4,0xe1,0x4,0x20,0x3,0xe4,0xfe,0x45,0xfa, +0x74,0xf7,0xc6,0xf6,0x54,0xf8,0xe4,0xfa,0x91,0xfc,0x18,0xfe, +0xed,0xff,0xd0,0x0,0x20,0x1,0x93,0x1,0x93,0x2,0x8d,0x4, +0x6,0x6,0x78,0x6,0x3a,0x7,0x56,0x8,0xf5,0x9,0x55,0xb, +0x2d,0xa,0xbb,0x7,0xd1,0x5,0x3d,0x3,0x31,0x0,0xeb,0xfd, +0x18,0xfd,0x7c,0xfe,0xe8,0x0,0x6c,0x3,0x5d,0x6,0xe2,0x7, +0xc1,0x6,0x84,0x4,0xd7,0x2,0xde,0x2,0x98,0x3,0xae,0x3, +0x98,0x4,0x20,0x6,0x7a,0x6,0x92,0x6,0xdb,0x6,0x7b,0x6, +0x4f,0x5,0xf4,0x2,0xaf,0xff,0xcb,0xfb,0x6a,0xf7,0xf6,0xf4, +0xdd,0xf5,0x56,0xf9,0xcb,0xfe,0xf8,0x3,0x46,0x7,0x79,0x9, +0xd2,0x8,0x28,0x4,0x8a,0xfe,0x9f,0xfa,0x62,0xf9,0x4a,0xfa, +0x26,0xfb,0x3f,0xfb,0xcd,0xfa,0x8d,0xf9,0xe8,0xf7,0x59,0xf6, +0xfe,0xf5,0x5,0xf8,0xe9,0xfa,0x90,0xfc,0xf6,0xfc,0xc9,0xfc, +0x1b,0xfd,0xca,0xfe,0xee,0x0,0x1f,0x2,0x31,0x2,0xe5,0x0, +0xb2,0xfd,0x4,0xfa,0xdd,0xf7,0x3f,0xf7,0xf0,0xf7,0x8c,0xfa, +0xf1,0xfe,0xeb,0x3,0xb8,0x7,0x1e,0x9,0xfe,0x7,0x63,0x5, +0xa2,0x3,0xb5,0x3,0x27,0x4,0x2f,0x4,0xf7,0x3,0xa4,0x3, +0xb5,0x3,0xeb,0x3,0xa8,0x3,0x5a,0x3,0xfd,0x3,0x53,0x6, +0xf4,0x8,0xd8,0x8,0x71,0x6,0x25,0x5,0x63,0x5,0xb3,0x4, +0x94,0x2,0x49,0x1,0xc8,0x1,0xe6,0x1,0x27,0x0,0xd,0xfe, +0x15,0xfd,0x1,0xfd,0x41,0xfd,0x74,0xfd,0xd8,0xfd,0x46,0xff, +0x19,0x1,0x16,0x2,0xdd,0x2,0xc0,0x3,0x71,0x3,0xb3,0x1, +0xae,0xff,0xe1,0xfd,0xda,0xfb,0x9,0xfa,0xc0,0xf9,0xc8,0xfa, +0xc2,0xfb,0x38,0xfc,0xa6,0xfc,0xf1,0xfd,0x3e,0x0,0xd4,0x2, +0x36,0x5,0x53,0x6,0x64,0x5,0x85,0x3,0xa,0x2,0xa3,0x1, +0x82,0x1,0x79,0xff,0x9c,0xfb,0x58,0xf8,0x92,0xf7,0x2a,0xf9, +0x97,0xfa,0xae,0xfa,0xf7,0xfa,0xcb,0xfb,0xc9,0xfc,0x1b,0xfe, +0x59,0xff,0x40,0x0,0x9a,0x0,0x74,0x0,0xcc,0xff,0x7b,0xfd, +0x45,0xfa,0x92,0xf8,0x66,0xf8,0x1a,0xf9,0x7e,0xfa,0xd3,0xfb, +0xad,0xfc,0x17,0xfd,0xd,0xfe,0xe9,0xff,0xd1,0x0,0x90,0x0, +0xb6,0x0,0x69,0x1,0x96,0x2,0xa8,0x3,0x82,0x3,0xc1,0x2, +0xa7,0x2,0x75,0x3,0x21,0x4,0x30,0x3,0xa5,0x0,0xa6,0xfd, +0xe1,0xfb,0x74,0xfc,0x2d,0xfe,0xdc,0xff,0x2a,0x1,0x75,0x1, +0xc3,0x1,0x9d,0x3,0x9a,0x6,0xe0,0x9,0x4d,0xc,0x17,0xc, +0xae,0x8,0x9c,0x3,0xf4,0xfe,0x52,0xfb,0xe,0xf9,0x15,0xf9, +0xa1,0xfa,0x22,0xfc,0x5c,0xfd,0x89,0xfe,0xc4,0xff,0xf1,0x0, +0x5d,0x2,0x8d,0x4,0x70,0x6,0x82,0x6,0x15,0x4,0x6a,0xff, +0xe3,0xfa,0x4f,0xf8,0xf4,0xf6,0x67,0xf6,0x99,0xf6,0x4a,0xf7, +0x39,0xf8,0x28,0xf8,0x36,0xf7,0x6,0xf7,0xb6,0xf7,0x79,0xf9, +0xd5,0xfc,0x9b,0x0,0x8b,0x3,0x3c,0x5,0xae,0x5,0x71,0x5, +0xbe,0x4,0x94,0x3,0x6e,0x2,0xae,0x1,0x1b,0x1,0x48,0x0, +0x27,0xff,0xa4,0xfd,0x15,0xfc,0x11,0xfc,0xec,0xfd,0x2a,0x0, +0x2a,0x2,0xd0,0x3,0x26,0x5,0xb2,0x6,0x8a,0x7,0xa0,0x6, +0x60,0x5,0x85,0x5,0x6a,0x6,0x2,0x6,0xc8,0x3,0x30,0x1, +0xd,0xff,0x67,0xfd,0xbe,0xfc,0xd4,0xfc,0x6f,0xfc,0x50,0xfb, +0x7d,0xfa,0x74,0xfa,0xca,0xfa,0xc9,0xfb,0xd7,0xfd,0x3c,0x0, +0x71,0x2,0xfb,0x3,0xdf,0x3,0xf3,0x2,0x30,0x3,0xc2,0x4, +0x8c,0x6,0x42,0x7,0xef,0x5,0x70,0x3,0x83,0x1,0xae,0x0, +0x94,0x0,0xb0,0x0,0x90,0x0,0x28,0x0,0x54,0xff,0x27,0xfe, +0x92,0xfd,0xc3,0xfd,0xfc,0xfd,0xa5,0xfe,0x5b,0x0,0x20,0x2, +0xf9,0x2,0x2,0x3,0x7e,0x2,0x9c,0x1,0x56,0x0,0x89,0xfe, +0x91,0xfc,0xd1,0xfa,0x4e,0xf9,0x5b,0xf8,0x64,0xf8,0x6a,0xf9, +0x47,0xfb,0x94,0xfd,0x86,0xff,0x9d,0x0,0x1e,0x1,0xb0,0x1, +0x96,0x2,0x4f,0x3,0xb6,0x2,0x40,0x0,0x19,0xfd,0xb5,0xfa, +0x46,0xf9,0x9e,0xf8,0xbc,0xf8,0xa8,0xf9,0x6a,0xfb,0x44,0xfd, +0x89,0xfe,0xaa,0xff,0x86,0x0,0x88,0x0,0x56,0x0,0x93,0x0, +0xe9,0x0,0x27,0x1,0x99,0x1,0xb0,0x2,0x3a,0x4,0xef,0x4, +0x24,0x4,0xf0,0x2,0x74,0x2,0x97,0x2,0x24,0x3,0x74,0x4, +0x6d,0x6,0x59,0x8,0xad,0x9,0xea,0x9,0x97,0x8,0xec,0x5, +0x4c,0x3,0x1d,0x2,0x21,0x2,0x89,0x2,0xde,0x2,0x1,0x2, +0xd6,0xff,0x2c,0xfe,0xc6,0xfd,0x30,0xfe,0x7d,0xff,0x36,0x1, +0x39,0x2,0x7f,0x2,0xaf,0x2,0xc7,0x2,0x86,0x2,0x56,0x2, +0xbd,0x2,0xeb,0x3,0x8f,0x5,0x40,0x6,0xf3,0x4,0xae,0x2, +0xd5,0x0,0xbc,0xff,0x27,0xff,0x85,0xfe,0x8f,0xfd,0xdf,0xfc, +0x2a,0xfd,0x4b,0xfe,0x6e,0xff,0x7,0x0,0xd8,0xff,0xe2,0xfe, +0xe1,0xfd,0x5a,0xfd,0xf3,0xfc,0xc7,0xfc,0x8b,0xfd,0x85,0xff, +0xd2,0x1,0x86,0x2,0xa6,0x0,0x85,0xfd,0x35,0xfb,0x16,0xfb, +0x54,0xfd,0x54,0x0,0xb9,0x1,0xdd,0x0,0x52,0xff,0x91,0xfe, +0x8c,0xfe,0x9a,0xfe,0x78,0xfe,0x48,0xfe,0x20,0xfe,0x2f,0xfe, +0x67,0xfe,0xc,0xfe,0x64,0xfd,0xb7,0xfd,0x82,0xfe,0xc2,0xfe, +0xce,0xfe,0x50,0xfe,0x1e,0xfd,0xd7,0xfc,0x36,0xfe,0xf2,0xff, +0xd9,0x0,0x2a,0x1,0xbc,0x1,0x38,0x2,0xb,0x2,0x89,0x1, +0xe9,0x0,0x87,0x0,0x95,0x0,0x2d,0x0,0x19,0xff,0x5d,0xfe, +0xa8,0xfe,0xe7,0xff,0x47,0x1,0x76,0x2,0x1c,0x4,0x1e,0x6, +0xd2,0x7,0xd7,0x8,0xb5,0x8,0x9e,0x7,0x39,0x6,0xa0,0x4, +0xb7,0x2,0x4b,0x0,0x95,0xfd,0x85,0xfb,0x70,0xfa,0x2e,0xfa, +0x53,0xfb,0x49,0xfe,0xf4,0x1,0x88,0x4,0x59,0x5,0x11,0x5, +0xaf,0x4,0xe7,0x4,0x5e,0x5,0x20,0x5,0x2a,0x4,0xb5,0x2, +0x76,0x0,0xa,0xfe,0x79,0xfc,0xe3,0xfb,0x37,0xfc,0x8b,0xfd, +0x2a,0xff,0x27,0x0,0xac,0x0,0x27,0x1,0x20,0x1,0x53,0x0, +0x29,0xff,0xbb,0xfd,0x49,0xfc,0x8b,0xfb,0x64,0xfb,0xfe,0xfa, +0x45,0xfa,0xe7,0xf9,0xf7,0xf9,0xf3,0xf9,0xf4,0xf9,0xed,0xf9, +0x1,0xf9,0xb0,0xf7,0xfa,0xf7,0x36,0xfa,0xe9,0xfc,0x21,0xff, +0x7e,0x0,0x79,0x0,0x2a,0xff,0x7d,0xfd,0x5d,0xfc,0x3e,0xfc, +0x12,0xfd,0x7a,0xfe,0xfa,0xff,0xa,0x1,0xa2,0x1,0x36,0x2, +0x9a,0x2,0x5b,0x2,0xcf,0x1,0xa5,0x1,0x47,0x2,0x66,0x3, +0x1e,0x4,0x6f,0x4,0x7,0x5,0xbc,0x5,0x21,0x6,0xf0,0x5, +0xbf,0x4,0xd1,0x2,0xcc,0x0,0x4,0xff,0x12,0xfe,0x37,0xfe, +0xb5,0xfe,0x2,0xff,0x31,0xff,0x8c,0xff,0x6a,0x0,0x86,0x1, +0x25,0x2,0xf7,0x1,0x0,0x1,0x79,0xff,0xe9,0xfd,0xbb,0xfc, +0xe4,0xfb,0x40,0xfb,0x11,0xfb,0x8c,0xfb,0x57,0xfc,0x40,0xfd, +0x55,0xfe,0x24,0xff,0x56,0xff,0x32,0xff,0xec,0xfe,0xd4,0xfe, +0x83,0xff,0xba,0x0,0xa7,0x1,0x29,0x2,0x64,0x2,0x5f,0x2, +0x84,0x2,0xfa,0x2,0x22,0x3,0xb0,0x2,0x67,0x2,0x2e,0x3, +0x9b,0x4,0x37,0x5,0x5f,0x4,0xec,0x2,0x2,0x2,0xd2,0x1, +0x83,0x1,0x51,0x0,0x70,0xfe,0xdf,0xfc,0xca,0xfc,0x33,0xfe, +0x9a,0xff,0xe9,0xff,0x96,0xff,0xa8,0xff,0x71,0x0,0x29,0x1, +0xfa,0x0,0x26,0x0,0x97,0xff,0xc1,0xff,0x31,0x0,0x3c,0x0, +0xe1,0xff,0x56,0xff,0x87,0xfe,0xd2,0xfd,0xc5,0xfd,0xb,0xfe, +0x44,0xfe,0xd,0xff,0x7f,0x0,0x70,0x1,0x63,0x1,0x9a,0x0, +0xf,0xff,0xc7,0xfd,0x38,0xfe,0xee,0xff,0x60,0x1,0x9f,0x1, +0xb7,0x0,0xf2,0xff,0x6f,0x0,0xaa,0x1,0x61,0x2,0xb3,0x1, +0xd7,0xff,0x7,0xfe,0x40,0xfd,0xa7,0xfd,0xaf,0xfe,0x1f,0xff, +0x46,0xfe,0xfb,0xfc,0x1d,0xfc,0x90,0xfb,0x5d,0xfb,0x93,0xfb, +0xb6,0xfb,0xe8,0xfb,0xbe,0xfc,0x8,0xfe,0x25,0xff,0x82,0xff, +0x34,0xff,0x55,0xff,0x8e,0x0,0xb4,0x2,0x5d,0x5,0x61,0x7, +0x92,0x7,0x10,0x6,0xb9,0x3,0x56,0x1,0xae,0xff,0xac,0xff, +0x55,0x1,0x38,0x3,0x27,0x4,0xf2,0x3,0xb5,0x2,0x1b,0x1, +0xaf,0xff,0x83,0xfe,0x63,0xfe,0xb1,0xff,0x63,0x1,0xc2,0x2, +0xcb,0x3,0x49,0x4,0xf6,0x3,0xe1,0x2,0x93,0x1,0xaa,0x0, +0x4a,0x0,0x87,0x0,0x31,0x1,0x65,0x1,0x78,0x0,0xb,0xff, +0x62,0xfe,0xcb,0xfe,0x8e,0xff,0xfc,0xff,0xea,0xff,0xaa,0xff, +0xec,0xff,0x0,0x1,0x3f,0x2,0x81,0x2,0x83,0x1,0x70,0x0, +0x6e,0x0,0x8f,0x1,0x6a,0x3,0x3f,0x5,0x0,0x6,0x7d,0x5, +0x81,0x4,0x7d,0x3,0x7e,0x2,0xbf,0x1,0x75,0x1,0xb9,0x1, +0x29,0x2,0x17,0x2,0xc0,0x1,0xb8,0x1,0x23,0x2,0x1b,0x3, +0x20,0x4,0x71,0x4,0x46,0x4,0xce,0x3,0xfa,0x2,0x2f,0x2, +0x8f,0x1,0x1,0x1,0x6d,0x0,0xd3,0xff,0xb5,0xff,0xe4,0xff, +0x6f,0xff,0x43,0xfe,0xda,0xfc,0xd9,0xfb,0xde,0xfb,0x91,0xfc, +0x71,0xfd,0x2,0xfe,0x98,0xfd,0xd2,0xfc,0x66,0xfc,0xd6,0xfb, +0x1d,0xfb,0x3e,0xfa,0xa,0xf9,0x42,0xf8,0x11,0xf8,0xf9,0xf7, +0xa9,0xf8,0x93,0xfa,0xbd,0xfc,0xfc,0xfd,0xd8,0xfd,0xeb,0xfc, +0x2d,0xfc,0xb6,0xfb,0x4a,0xfb,0x4d,0xfb,0x50,0xfc,0x4d,0xfe, +0xcc,0x0,0xe,0x3,0x2f,0x4,0xf7,0x3,0xe,0x3,0x25,0x2, +0xc3,0x1,0xff,0x1,0x3f,0x2,0x9,0x2,0x39,0x1,0xaa,0xff, +0xd4,0xfd,0xda,0xfc,0x1a,0xfd,0xbc,0xfd,0xf9,0xfd,0xbd,0xfd, +0x11,0xfd,0x1a,0xfc,0x36,0xfb,0x8a,0xfa,0x2b,0xfa,0x4,0xfa, +0xea,0xf9,0x43,0xfa,0x1e,0xfb,0xb8,0xfb,0xe8,0xfb,0x1d,0xfc, +0xc5,0xfc,0x2c,0xfe,0xbd,0xff,0x77,0x0,0x16,0x0,0xee,0xfe, +0x7,0xfe,0x5f,0xfe,0xbe,0xff,0x6f,0x1,0xb4,0x2,0xcd,0x2, +0xf7,0x1,0x13,0x1,0xb0,0x0,0x1f,0x1,0x1b,0x2,0xf4,0x2, +0x8a,0x3,0x26,0x4,0xa4,0x4,0xb3,0x4,0x5e,0x4,0xba,0x3, +0x97,0x2,0x10,0x1,0x8d,0xff,0x31,0xfe,0x17,0xfd,0x84,0xfc, +0x6b,0xfc,0x86,0xfc,0x1e,0xfd,0xa2,0xfe,0x6e,0x0,0x4c,0x1, +0xee,0x0,0x7,0x0,0xab,0xff,0x4a,0x0,0x10,0x1,0x2e,0x1, +0xbd,0x0,0x21,0x0,0xc5,0xff,0xe6,0xff,0x6d,0x0,0x45,0x1, +0x5a,0x2,0x79,0x3,0x79,0x4,0x45,0x5,0xbd,0x5,0x9e,0x5, +0xf9,0x4,0x34,0x4,0x87,0x3,0x18,0x3,0x82,0x2,0xe1,0x0, +0x6d,0xfe,0x63,0xfc,0xca,0xfb,0xc5,0xfc,0x2a,0xfe,0xc3,0xfe, +0x4f,0xfe,0x14,0xfd,0x48,0xfc,0xca,0xfc,0xdb,0xfd,0xd3,0xfe, +0x89,0xff,0xce,0xff,0xff,0xff,0x49,0x0,0xad,0x0,0x96,0x1, +0xc4,0x2,0x9b,0x3,0x2,0x4,0x22,0x4,0x47,0x4,0x94,0x4, +0xf9,0x4,0x88,0x5,0x14,0x6,0x47,0x6,0xdd,0x5,0xa5,0x4, +0xe7,0x2,0x21,0x1,0xc0,0xff,0x15,0xff,0x3a,0xff,0x37,0x0, +0x81,0x1,0x77,0x2,0x4d,0x3,0x98,0x3,0xdc,0x2,0x1c,0x2, +0xcc,0x1,0x83,0x1,0x69,0x1,0x58,0x1,0xa,0x1,0x90,0x0, +0x9c,0xff,0x24,0xfe,0x93,0xfc,0x5c,0xfb,0xbe,0xfa,0x7c,0xfa, +0xa7,0xfa,0x62,0xfb,0x16,0xfc,0x92,0xfc,0x6,0xfd,0x23,0xfd, +0x18,0xfd,0x91,0xfd,0x99,0xfe,0xc0,0xff,0xcf,0x0,0xa6,0x1, +0xec,0x1,0xa6,0x1,0x3a,0x1,0xcc,0x0,0xa0,0x0,0xc3,0x0, +0xaf,0x0,0x46,0x0,0x8c,0xff,0x51,0xfe,0x6,0xfd,0x38,0xfc, +0x28,0xfc,0xcd,0xfc,0x8a,0xfd,0xc6,0xfd,0x38,0xfd,0x2,0xfc, +0xc2,0xfa,0xf0,0xf9,0xa,0xfa,0x74,0xfb,0xab,0xfd,0x6,0x0, +0xd5,0x1,0x65,0x2,0xd7,0x1,0x94,0x0,0x4e,0xff,0x5,0xff, +0x82,0xff,0x42,0x0,0x66,0x1,0x9f,0x2,0xbb,0x3,0xb4,0x4, +0xf8,0x4,0x76,0x4,0xbb,0x3,0x24,0x3,0x14,0x3,0x98,0x3, +0x2c,0x4,0x57,0x4,0xe9,0x3,0xf2,0x2,0xc2,0x1,0xb8,0x0, +0xae,0xff,0x2e,0xfe,0xa2,0xfc,0xe1,0xfb,0xe9,0xfb,0x43,0xfc, +0xab,0xfc,0xf8,0xfc,0x43,0xfd,0xfa,0xfd,0x3c,0xff,0x6a,0x0, +0xf0,0x0,0xd1,0x0,0x4e,0x0,0xd2,0xff,0xac,0xff,0x15,0x0, +0x15,0x1,0xf4,0x1,0x23,0x2,0xd,0x2,0x14,0x2,0x5e,0x2, +0xaf,0x2,0x52,0x2,0x61,0x1,0x5c,0x0,0x63,0xff,0xcf,0xfe, +0x89,0xfe,0x17,0xfe,0xc5,0xfd,0xeb,0xfd,0x34,0xfe,0xf8,0xfd, +0x95,0xfc,0x42,0xfa,0x69,0xf8,0x66,0xf8,0xf4,0xf9,0xb6,0xfb, +0xee,0xfc,0x66,0xfd,0x1c,0xfd,0xb4,0xfc,0xb8,0xfc,0xb,0xfd, +0x69,0xfd,0xbd,0xfd,0x5a,0xfe,0x2a,0xff,0x79,0xff,0x64,0xff, +0x72,0xff,0xc5,0xff,0x9a,0x0,0xcb,0x1,0xbf,0x2,0x62,0x3, +0xbd,0x3,0x95,0x3,0xe4,0x2,0xa,0x2,0x79,0x1,0x5d,0x1, +0x9a,0x1,0xcc,0x1,0x9b,0x1,0x4b,0x1,0xf5,0x0,0xdb,0xff, +0xa0,0xfd,0x5e,0xfb,0x8a,0xfa,0x3a,0xfb,0x7d,0xfc,0xaa,0xfd, +0x91,0xfe,0x8c,0xff,0xf2,0x0,0xef,0x1,0xb6,0x1,0xf0,0x0, +0x6f,0x0,0x4d,0x0,0x86,0x0,0xfd,0x0,0x49,0x1,0x33,0x1, +0x9,0x1,0x3b,0x1,0xcd,0x1,0x9b,0x2,0x81,0x3,0xfd,0x3, +0xe0,0x3,0xa1,0x3,0x2c,0x3,0x1c,0x2,0xd1,0x0,0xa4,0xff, +0x6d,0xfe,0x5e,0xfd,0xa0,0xfc,0xec,0xfb,0x5e,0xfb,0x23,0xfb, +0x11,0xfb,0x69,0xfb,0x32,0xfc,0xc0,0xfc,0x36,0xfd,0x29,0xfe, +0x1a,0xff,0x15,0xff,0x13,0xfe,0x12,0xfd,0xc4,0xfc,0xca,0xfc, +0xf4,0xfc,0x6e,0xfd,0xb9,0xfd,0x58,0xfd,0x95,0xfc,0x42,0xfc, +0xc7,0xfc,0xa2,0xfd,0x64,0xfe,0x5a,0xff,0xd4,0x0,0x5e,0x2, +0x52,0x3,0x41,0x4,0x21,0x5,0x46,0x4,0x47,0x2,0x6b,0x1, +0x85,0x1,0x6f,0x1,0xb4,0x0,0x1c,0xff,0x5d,0xfd,0x97,0xfc, +0x1e,0xfd,0x41,0xfe,0x3a,0xff,0x1d,0x0,0x56,0x0,0x8b,0xff, +0xe3,0xfe,0x62,0xfe,0xe8,0xfd,0x93,0xfe,0xff,0xff,0x2a,0x1, +0x94,0x1,0xca,0x0,0xff,0xff,0x2b,0x0,0x33,0x0,0x95,0xff, +0xe9,0xfe,0xa1,0xfe,0xe3,0xfe,0x86,0xff,0x6c,0x0,0x85,0x1, +0xd0,0x2,0xf1,0x3,0x32,0x4,0x2,0x4,0x1,0x4,0x14,0x4, +0x4e,0x4,0x58,0x4,0x83,0x4,0xac,0x5,0x62,0x6,0x81,0x5, +0x23,0x4,0xdd,0x2,0xad,0x1,0x7a,0x0,0x94,0xff,0xfd,0xff, +0xde,0x0,0xde,0x0,0xbf,0x0,0xdc,0x0,0x83,0x0,0xc0,0xff, +0xf7,0xfe,0x55,0xfe,0x13,0xfe,0x7b,0xfe,0x19,0xff,0x34,0xff, +0x39,0xff,0xa8,0xff,0x2d,0x0,0x62,0x0,0x64,0x0,0xc0,0x0, +0x28,0x1,0x18,0x1,0x43,0x1,0xe4,0x1,0x8f,0x2,0xf2,0x2, +0xb6,0x2,0xa1,0x2,0x14,0x3,0x26,0x3,0x93,0x2,0xe,0x1, +0x3,0xff,0xfe,0xfd,0x19,0xfe,0x3e,0xff,0x8f,0x1,0x6d,0x4, +0xc1,0x7,0xf5,0xa,0xf0,0xc,0x6a,0xd,0x62,0xc,0x46,0x8, +0x29,0xfd,0xa9,0xee,0x16,0xe8,0x71,0xe9,0x79,0xec,0x24,0xf1, +0x59,0xf2,0x57,0xed,0x1d,0xeb,0x5a,0xec,0xcc,0xea,0x73,0xea, +0xc7,0xf0,0xd1,0xfa,0xd9,0x1,0xf2,0x0,0x18,0xf9,0x92,0xf2, +0xe9,0xf5,0xcc,0x1,0xca,0xf,0xf1,0x1d,0xdd,0x27,0xbe,0x23, +0xa2,0x11,0xae,0x2,0xf7,0x2,0xb9,0x7,0x11,0xa,0x96,0x13, +0x90,0x1d,0x61,0x17,0x7f,0x7,0x41,0xfe,0x3a,0xfd,0x6a,0xf7, +0xb2,0xe8,0x20,0xe1,0xea,0xe3,0xcd,0xe4,0xa6,0xe7,0x19,0xf0, +0x18,0xf6,0x38,0xf8,0x78,0xf9,0xd9,0x1,0x5a,0x12,0xe2,0x17, +0x6b,0x10,0x7e,0xc,0x66,0xa,0xa1,0x7,0x3f,0x8,0xcc,0x6, +0x95,0x6,0x2e,0xf,0xcf,0x1b,0xb1,0x2b,0xc4,0x3d,0xe3,0x46, +0x7c,0x42,0x17,0x34,0x5a,0x21,0xb6,0x10,0xb1,0x1,0xd3,0xf3, +0x44,0xec,0xb1,0xea,0xc8,0xec,0x2d,0xf3,0xee,0xf8,0x7b,0xf8, +0xae,0xf3,0xfd,0xed,0x1,0xea,0xe4,0xe9,0x78,0xec,0x5c,0xee, +0xcf,0xeb,0xb,0xe4,0xaf,0xde,0x60,0xe2,0x12,0xeb,0x2b,0xf6, +0x1c,0x3,0xca,0x7,0x1c,0x1,0x92,0xfa,0xe3,0xf8,0xca,0xfa, +0x71,0xff,0x5,0x1,0x17,0x1,0x87,0x4,0x82,0x2,0xe7,0xf8, +0x47,0xf4,0x1a,0xf9,0x1e,0x4,0xd2,0x10,0x2a,0x19,0xdc,0x1a, +0x43,0x13,0xee,0x3,0xd1,0xf7,0xff,0xf0,0x10,0xec,0xfc,0xed, +0xc8,0xf3,0x2b,0xf3,0x80,0xec,0x65,0xe5,0x9e,0xe1,0x30,0xe2, +0x21,0xe7,0xdc,0xf3,0xc1,0x3,0x5b,0xb,0x94,0xc,0x7a,0xd, +0x98,0xc,0x8d,0xd,0x28,0x15,0x7f,0x1f,0x0,0x26,0x94,0x23, +0x39,0x19,0x95,0xe,0x77,0x7,0xd,0x2,0x26,0xfd,0xb1,0xfa, +0xa1,0xfc,0x1b,0xff,0xc6,0xfe,0x6a,0xfe,0x76,0xfc,0xdd,0xf5, +0xd7,0xf0,0xac,0xf2,0xa0,0xf9,0xb0,0x3,0xf2,0xb,0x37,0xb, +0x22,0x2,0xea,0xf8,0x4b,0xf4,0xf9,0xf1,0x71,0xf1,0x93,0xf4, +0x6b,0xf6,0xae,0xf1,0x73,0xe9,0x75,0xe1,0xc8,0xdc,0x2e,0xe0, +0x49,0xea,0x84,0xf6,0xfc,0x3,0xe8,0xe,0xe8,0x12,0x64,0x14, +0x53,0x18,0x68,0x1b,0x63,0x1a,0xf9,0x17,0x3a,0x17,0xc,0x19, +0xcf,0x1d,0x70,0x22,0xf7,0x20,0x66,0x18,0x3d,0xd,0xf7,0x2, +0x61,0xfb,0x3,0xf8,0xc5,0xf8,0x21,0xfc,0xc8,0xff,0xb,0x1, +0x8f,0xff,0x9b,0xfd,0x7,0xfb,0x18,0xf5,0x43,0xee,0xc5,0xeb, +0xd0,0xea,0x5e,0xe6,0xb2,0xe1,0x75,0xe0,0x49,0xe0,0x78,0xdf, +0xdc,0xdf,0x40,0xe4,0x3d,0xed,0x10,0xf8,0xfa,0x1,0x18,0xa, +0x29,0x10,0x4b,0x13,0x4b,0x12,0x7d,0xf,0xfb,0xe,0xb3,0x10, +0xc8,0x13,0x74,0x18,0x70,0x1c,0x67,0x1e,0x1f,0x1e,0xe3,0x18, +0xa9,0xe,0xdb,0x3,0x44,0xfb,0xa2,0xf4,0xe9,0xef,0x10,0xef, +0xd6,0xf2,0xfa,0xf8,0xa9,0xff,0xe7,0x4,0x3b,0x6,0x6b,0x4, +0x85,0x0,0x51,0xfa,0x99,0xf4,0xbb,0xf1,0x9e,0xf0,0x55,0xf1, +0x6d,0xf4,0xa,0xf8,0x84,0xfb,0xc4,0x0,0xe6,0x7,0x7e,0xe, +0x62,0x13,0x1c,0x16,0x75,0x14,0x50,0xe,0x2f,0x7,0x35,0x0, +0xb8,0xf7,0x5,0xef,0x29,0xea,0x2e,0xeb,0x76,0xf0,0x70,0xf6, +0xde,0xfa,0x2a,0xff,0x1,0x5,0x9b,0x9,0x72,0x9,0x76,0x5, +0xda,0xff,0x26,0xfa,0x4f,0xf7,0x75,0xf8,0xa0,0xfa,0x2a,0xfb, +0xb4,0xf9,0xc3,0xf6,0xe6,0xf2,0x43,0xee,0x9b,0xe9,0x5a,0xe6, +0x53,0xe5,0x17,0xe7,0x1a,0xeb,0xa5,0xef,0x36,0xf4,0xa2,0xf8, +0xe5,0xfc,0x53,0x2,0x58,0x8,0x8e,0xc,0x6,0xf,0xd4,0x10, +0xfd,0x11,0x95,0x12,0xde,0x12,0xc9,0x13,0xdd,0x16,0xa9,0x1c, +0xe6,0x23,0xa0,0x29,0x47,0x2b,0xa6,0x27,0xad,0x1d,0xe8,0xe, +0xe,0x0,0x90,0xf3,0xd,0xe9,0x72,0xe1,0xab,0xde,0x66,0xe1, +0xf8,0xe8,0xd5,0xf3,0xba,0xff,0x9a,0xa,0xca,0x13,0x11,0x1b, +0x49,0x1f,0x49,0x1f,0x26,0x1b,0x61,0x14,0x19,0xd,0x6c,0x6, +0x5d,0x0,0x54,0xfb,0x25,0xf8,0x39,0xf7,0xca,0xf8,0x9b,0xfc, +0xa0,0x0,0xea,0x1,0x6c,0xff,0xc2,0xfa,0x86,0xf6,0x1c,0xf4, +0xf9,0xf2,0x47,0xf2,0x6,0xf2,0x37,0xf2,0xaf,0xf2,0xe6,0xf3, +0x35,0xf6,0xa1,0xf8,0x4f,0xfa,0xdb,0xfb,0x91,0xfd,0xed,0xfe, +0x7b,0xff,0x3a,0xfe,0xd2,0xfa,0xdd,0xf6,0xc1,0xf3,0xe4,0xf1, +0xd6,0xf1,0x19,0xf4,0x26,0xf9,0xf2,0x0,0xc1,0x9,0xa0,0x10, +0x64,0x13,0x7a,0x12,0x95,0xf,0xf8,0xa,0xc0,0x4,0x98,0xfe, +0x47,0xfa,0xc1,0xf8,0xdc,0xf9,0x4a,0xfc,0xdc,0xfe,0xcf,0x0, +0xbe,0x1,0x54,0x2,0x5c,0x3,0x5c,0x4,0x71,0x4,0xdc,0x3, +0xd2,0x3,0xe4,0x4,0xc8,0x6,0x3e,0x9,0xa6,0xb,0x3f,0xd, +0xb8,0xe,0xf3,0x10,0xe4,0x12,0x5a,0x13,0xd3,0x12,0xc3,0x11, +0x7e,0xf,0x6,0xc,0xc0,0x8,0x5b,0x6,0xed,0x3,0xef,0x0, +0xa8,0xfd,0xf3,0xf9,0x8,0xf6,0xa3,0xf2,0x6e,0xef,0x19,0xec, +0xe7,0xe9,0x24,0xea,0x7,0xed,0x62,0xf2,0x66,0xf9,0xbb,0x0, +0x7f,0x7,0x8a,0xc,0x5e,0xe,0x8c,0xd,0xdf,0xb,0x7a,0x9, +0xa4,0x5,0x6e,0x0,0x15,0xfb,0x7f,0xf7,0x30,0xf6,0x31,0xf6, +0xb,0xf6,0xf9,0xf3,0xa8,0xf0,0x47,0xef,0x9,0xf1,0x81,0xf4, +0x72,0xf7,0x48,0xf8,0xfa,0xf7,0xf1,0xf7,0x9e,0xf7,0xe4,0xf5, +0x89,0xf2,0xda,0xef,0x22,0xf1,0xca,0xf5,0x26,0xfb,0xa5,0x0, +0x59,0x6,0xfc,0xb,0x57,0x11,0x11,0x15,0x63,0x15,0x4b,0x12, +0xd4,0xd,0x18,0xa,0x6e,0x7,0x1f,0x5,0xec,0x2,0xb0,0x1, +0xfb,0x2,0xfa,0x6,0xc4,0xb,0x6c,0xf,0x18,0x11,0xb6,0x10, +0x41,0xf,0x0,0xe,0x11,0xd,0xf9,0xb,0xee,0xa,0x79,0xa, +0xc1,0xa,0x86,0xb,0xa,0xc,0xb5,0xb,0xb8,0xa,0x6c,0x9, +0xa4,0x7,0xdf,0x4,0xa7,0x0,0xf9,0xfa,0x63,0xf4,0xdc,0xed, +0x6f,0xe8,0xc5,0xe4,0x57,0xe3,0x75,0xe4,0x57,0xe7,0x92,0xea, +0xca,0xed,0x2f,0xf1,0x21,0xf4,0x3b,0xf6,0x65,0xf8,0x9b,0xfb, +0xcc,0xff,0x25,0x4,0xa6,0x7,0x59,0x9,0xcf,0x8,0x44,0x7, +0x92,0x6,0xf9,0x6,0xba,0x7,0xd,0x8,0xf5,0x6,0x3c,0x4, +0xa4,0x0,0x41,0xfd,0x50,0xfb,0xfc,0xfa,0xa0,0xfb,0xd0,0xfd, +0x30,0x2,0x42,0x7,0xd1,0xa,0x95,0xc,0xb5,0xd,0xd8,0xd, +0x51,0xb,0x2,0x6,0x20,0xff,0xad,0xf7,0xa6,0xf0,0x57,0xeb, +0x33,0xe9,0xbb,0xea,0xbf,0xee,0x8,0xf4,0x23,0xfa,0xe0,0xff, +0xe2,0x3,0x63,0x6,0x7,0x8,0x99,0x8,0x34,0x8,0x25,0x7, +0x3c,0x5,0x19,0x3,0x3,0x2,0x1a,0x2,0xba,0x2,0xba,0x3, +0x3a,0x5,0x52,0x6,0x41,0x5,0xae,0x1,0xed,0xfc,0x86,0xf8, +0x5a,0xf6,0x86,0xf7,0xa5,0xfa,0x2f,0xfd,0x85,0xfd,0xe3,0xfb, +0x1b,0xfa,0xec,0xf9,0x6,0xfc,0xc6,0xff,0x5d,0x3,0x64,0x5, +0xe1,0x5,0x87,0x5,0xbe,0x4,0x51,0x3,0x20,0x1,0xc9,0xfe, +0x2,0xfd,0x8e,0xfb,0x99,0xf9,0x78,0xf7,0x6a,0xf6,0x7b,0xf6, +0x7,0xf7,0x14,0xf8,0x7c,0xf9,0xd4,0xfa,0xf8,0xfb,0x86,0xfc, +0x36,0xfc,0x9e,0xfb,0x92,0xfb,0x86,0xfc,0x69,0xfe,0x5a,0x0, +0x9f,0x1,0x8c,0x2,0x4f,0x3,0x6f,0x3,0xd3,0x2,0xeb,0x1, +0x4c,0x1,0xd5,0x0,0x35,0xff,0xdf,0xfb,0x2,0xf8,0xd1,0xf4, +0xa4,0xf2,0xa0,0xf1,0x33,0xf2,0x68,0xf4,0xb3,0xf6,0x77,0xf7, +0xde,0xf6,0xa9,0xf5,0x9a,0xf4,0xe5,0xf4,0x13,0xf7,0x7d,0xfa, +0xff,0xfd,0x59,0x0,0xc0,0x0,0x7f,0xff,0x4c,0xfd,0x74,0xfa, +0x45,0xf7,0xde,0xf4,0x75,0xf4,0xcd,0xf5,0x46,0xf7,0xe2,0xf7, +0x3b,0xf8,0x8,0xf9,0x3a,0xfa,0xd5,0xfb,0xff,0xfd,0x80,0x0, +0x1e,0x3,0xe0,0x5,0xa8,0x8,0x34,0xb,0x8b,0xd,0x5a,0xf, +0xb1,0xf,0x5a,0xe,0x2d,0xc,0x20,0xa,0x8e,0x8,0xda,0x6, +0xc5,0x4,0x6e,0x3,0x21,0x3,0x87,0x2,0xc,0x1,0x81,0xff, +0x3c,0xfe,0xae,0xfc,0x4a,0xfb,0x66,0xfb,0xa2,0xfc,0x26,0xfd, +0x22,0xfc,0x6e,0xfa,0x66,0xf9,0x65,0xf9,0xa,0xfa,0x9b,0xfb, +0x30,0xfe,0x98,0x0,0x99,0x1,0x39,0x1,0x67,0x0,0xea,0xff, +0x67,0x0,0x35,0x2,0x32,0x4,0x1b,0x5,0x83,0x5,0x23,0x6, +0x88,0x6,0x63,0x6,0x34,0x6,0x50,0x6,0xee,0x5,0x59,0x4, +0x40,0x2,0x48,0x0,0x55,0xfe,0x90,0xfc,0x3a,0xfb,0x38,0xfa, +0x56,0xf9,0x5a,0xf8,0x36,0xf7,0x1d,0xf6,0x68,0xf5,0x91,0xf5, +0xed,0xf6,0x65,0xf9,0x2b,0xfc,0xe2,0xfd,0xff,0xfd,0xf8,0xfc, +0xc9,0xfa,0xd1,0xf7,0xdd,0xf5,0xae,0xf5,0x3d,0xf6,0xe6,0xf6, +0x57,0xf7,0x56,0xf7,0xcd,0xf7,0xac,0xf9,0xa1,0xfc,0x93,0xff, +0x83,0x1,0xc4,0x2,0x58,0x4,0x76,0x6,0xe9,0x8,0xc6,0xa, +0xc4,0xa,0x3c,0x9,0xb7,0x7,0x20,0x7,0x42,0x7,0x2a,0x7, +0x76,0x6,0x7f,0x5,0x56,0x4,0x17,0x3,0x7,0x2,0x4b,0x1, +0x37,0x1,0xd6,0x1,0x91,0x2,0xa4,0x2,0xb4,0x1,0x47,0x0, +0x18,0xff,0x85,0xfe,0xc4,0xfe,0x75,0xff,0x1,0x0,0x62,0x0, +0xb2,0x0,0x25,0x1,0xd7,0x1,0x56,0x2,0xb9,0x2,0x6f,0x3, +0xad,0x3,0x82,0x2,0x4f,0x0,0x4f,0xfe,0xdd,0xfd,0x18,0xff, +0x7e,0x0,0x68,0x1,0x8c,0x2,0xdb,0x3,0xb4,0x4,0x20,0x5, +0x66,0x5,0x6f,0x5,0x8c,0x4,0x40,0x2,0x51,0xff,0x1d,0xfd, +0x53,0xfc,0x76,0xfc,0x4a,0xfc,0x57,0xfb,0x21,0xfa,0x54,0xf9, +0xe1,0xf9,0x3,0xfc,0x5e,0xfe,0x88,0xff,0x80,0xff,0x4f,0xff, +0xce,0xff,0x14,0x1,0x1,0x3,0x2,0x5,0x4,0x6,0xb9,0x5, +0xcd,0x4,0x9,0x4,0xad,0x3,0x98,0x3,0xe,0x4,0x7,0x5, +0xbc,0x5,0xf9,0x5,0xeb,0x5,0x4a,0x5,0x16,0x4,0xb0,0x2, +0x54,0x1,0xfb,0xff,0x47,0xfe,0x17,0xfc,0xf2,0xf9,0x72,0xf8, +0xa3,0xf7,0x6f,0xf7,0x92,0xf8,0x8f,0xfb,0x3f,0xff,0x3b,0x2, +0x34,0x4,0x4b,0x5,0x83,0x5,0xdc,0x4,0xab,0x3,0x7c,0x2, +0x70,0x1,0x9d,0x0,0x86,0x0,0x50,0x1,0x44,0x2,0x9b,0x2, +0x67,0x2,0x5a,0x2,0xe0,0x2,0xe5,0x3,0x30,0x5,0x6a,0x6, +0xfc,0x6,0x77,0x6,0x14,0x5,0x2e,0x3,0xf7,0x0,0xec,0xfe, +0x42,0xfd,0x7a,0xfb,0x7d,0xf9,0x48,0xf8,0xc4,0xf8,0x78,0xfa, +0x87,0xfc,0xe2,0xfe,0x15,0x1,0x44,0x2,0x73,0x2,0xff,0x1, +0x3f,0x1,0xc5,0x0,0xc3,0x0,0x2b,0x1,0x1,0x2,0xcc,0x2, +0xe1,0x2,0x2f,0x2,0x5b,0x1,0x1a,0x1,0x79,0x1,0x41,0x2, +0x18,0x3,0x11,0x3,0xe1,0x1,0x8d,0x0,0xb6,0xff,0x8b,0xff, +0x74,0x0,0xb0,0x1,0xfe,0x1,0xd7,0x1,0x4a,0x2,0xb,0x3, +0xff,0x2,0xa9,0x1,0x51,0x0,0x78,0x0,0xc8,0x1,0x63,0x3, +0xcd,0x4,0x88,0x5,0x8,0x6,0xb9,0x6,0x93,0x6,0xb1,0x4, +0x39,0x1,0xdf,0xfc,0xa3,0xf8,0x38,0xf5,0xfa,0xf2,0x18,0xf2, +0x86,0xf2,0x4,0xf4,0xb6,0xf5,0xe0,0xf6,0x30,0xf8,0x63,0xfa, +0xce,0xfc,0x92,0xfe,0xe5,0xff,0x2f,0x1,0xa,0x2,0x61,0x2, +0xd6,0x2,0x6b,0x3,0xb3,0x3,0xaa,0x3,0x54,0x3,0x87,0x2, +0x11,0x1,0x4c,0xff,0x49,0xfe,0x48,0xfe,0x45,0xfe,0x84,0xfd, +0x51,0xfc,0x7a,0xfb,0xa2,0xfb,0x18,0xfd,0xbc,0xff,0x87,0x2, +0x41,0x4,0xdf,0x4,0x28,0x5,0x25,0x5,0x13,0x4,0x27,0x2, +0x72,0x0,0xef,0xfe,0x34,0xfd,0x9c,0xfb,0x25,0xfa,0x9f,0xf8, +0x1a,0xf8,0xe5,0xf9,0x74,0xfd,0x71,0x0,0xf0,0x0,0xf0,0xfe, +0x6,0xfc,0x45,0xfa,0xb1,0xfa,0x4e,0xfc,0x4f,0xfd,0xfa,0xfc, +0x21,0xfc,0x8f,0xfb,0xfc,0xfa,0x68,0xfa,0xb8,0xfa,0x7e,0xfc, +0x14,0xff,0x37,0x1,0x88,0x2,0x5e,0x3,0x86,0x3,0x2c,0x3, +0x65,0x3,0xb7,0x4,0xaf,0x6,0x5e,0x8,0xd0,0x8,0xe3,0x7, +0x4c,0x6,0x27,0x5,0x64,0x5,0xc7,0x6,0x32,0x8,0x73,0x8, +0x63,0x6,0x83,0x2,0x6c,0xff,0x77,0xfe,0x55,0xfe,0xbe,0xfd, +0xbe,0xfc,0x9a,0xfb,0x5d,0xfa,0x4a,0xf9,0xdb,0xf8,0xe2,0xf8, +0x12,0xf9,0xee,0xf9,0x19,0xfb,0x17,0xfb,0x89,0xf9,0x53,0xf7, +0xd4,0xf5,0x23,0xf6,0xd9,0xf7,0x42,0xfa,0x4a,0xfd,0x33,0x0, +0x33,0x2,0x86,0x3,0x85,0x4,0xcd,0x4,0xa7,0x3,0xb8,0x1, +0xb4,0x0,0x16,0x1,0x87,0x2,0xd7,0x4,0x4c,0x7,0x15,0x9, +0xfe,0x9,0x6d,0xa,0xeb,0xa,0x6d,0xb,0x8a,0xb,0x8a,0xa, +0xa7,0x7,0x6b,0x3,0x38,0xff,0x1c,0xfc,0xd2,0xfa,0x9,0xfb, +0xaa,0xfb,0x17,0xfc,0x3,0xfc,0xaf,0xfb,0xf0,0xfb,0x2c,0xfd, +0x3,0xff,0x79,0x0,0x5,0x1,0x6,0x1,0x42,0x0,0x4e,0xfe, +0xd,0xfc,0xa4,0xfa,0x73,0xfa,0x82,0xfb,0xa6,0xfd,0x6b,0x0, +0x6,0x3,0x8c,0x4,0xb0,0x4,0x1c,0x4,0xa3,0x3,0x6f,0x3, +0x6d,0x3,0x5f,0x3,0x41,0x2,0xa6,0xff,0xcf,0xfc,0xbb,0xfa, +0x41,0xf9,0x9a,0xf8,0x50,0xf9,0xdd,0xfa,0xf,0xfc,0x84,0xfc, +0xe5,0xfc,0xb1,0xfd,0x7d,0xfe,0xfb,0xfe,0xb8,0xff,0x18,0x1, +0xc8,0x2,0x37,0x4,0xd2,0x4,0xa4,0x4,0x87,0x4,0x34,0x5, +0xbf,0x6,0x38,0x8,0x33,0x8,0x61,0x6,0x57,0x3,0x8d,0xff, +0xf6,0xfb,0x99,0xf9,0x68,0xf8,0xef,0xf7,0xf7,0xf7,0x7,0xf8, +0x7a,0xf7,0x7b,0xf6,0x91,0xf6,0x76,0xf9,0xd2,0xfe,0x7e,0x4, +0xb,0x9,0x0,0xc,0xf,0xd,0x2a,0xd,0x13,0xe,0x13,0x10, +0xce,0x11,0xd0,0x11,0x45,0x10,0xb3,0xe,0x9b,0xd,0x21,0xc, +0xa3,0x9,0x45,0x6,0xd6,0x2,0x11,0x0,0x51,0xfe,0xdc,0xfd, +0x1f,0xfe,0x4b,0xfe,0x98,0xfe,0x64,0xff,0x61,0x0,0xb5,0x0, +0xc4,0xff,0x1c,0xfe,0x3b,0xfc,0x13,0xfa,0x6c,0xf8,0x7,0xf8, +0xa1,0xf8,0x7a,0xf9,0xd5,0xf9,0xa3,0xf9,0x37,0xf9,0xa7,0xf8, +0x78,0xf8,0x55,0xf9,0x2f,0xfb,0x33,0xfd,0x7d,0xfe,0x66,0xff, +0xf2,0x0,0xed,0x2,0x8d,0x4,0xcb,0x5,0x1,0x7,0x17,0x8, +0xcf,0x8,0x8c,0x9,0x92,0xa,0x68,0xb,0x96,0xb,0xcd,0xa, +0x3d,0x9,0x4c,0x7,0xe2,0x4,0xa7,0x2,0xb3,0x1,0x7f,0x1, +0x9,0x1,0x16,0x0,0x39,0xff,0xf8,0xff,0xac,0x2,0xab,0x5, +0xcf,0x7,0x15,0x9,0xa2,0x9,0x65,0x9,0x31,0x8,0x1f,0x6, +0x32,0x3,0xae,0xff,0x36,0xfd,0xe9,0xfc,0xb7,0xfd,0x4c,0xfe, +0x73,0xfe,0xb6,0xfe,0xb4,0xff,0x3a,0x1,0xa5,0x2,0xce,0x3, +0x82,0x4,0x45,0x4,0x77,0x3,0x26,0x3,0x66,0x3,0x23,0x3, +0x1a,0x2,0x24,0x1,0x3d,0x0,0xb4,0xfe,0x2,0xfd,0x6,0xfc, +0xdd,0xfb,0x84,0xfc,0xf7,0xfd,0x19,0x0,0x5,0x3,0x22,0x6, +0xd,0x8,0x5e,0x8,0xf8,0x7,0xa9,0x7,0x9f,0x7,0x75,0x7, +0x76,0x6,0x92,0x4,0x60,0x2,0x5e,0x0,0xb,0xff,0xac,0xfe, +0xf0,0xfe,0xcf,0xff,0x2a,0x1,0x29,0x2,0x5f,0x2,0xd6,0x1, +0xc8,0x0,0x1b,0x0,0x30,0x0,0xd4,0x0,0x4b,0x2,0x13,0x4, +0x22,0x5,0x89,0x5,0xa5,0x5,0x7d,0x5,0xc8,0x4,0x3c,0x3, +0x6b,0x1,0xd3,0xff,0x51,0xfe,0x9,0xfd,0xf0,0xfb,0xda,0xfa, +0x43,0xfa,0xa0,0xfa,0x14,0xfc,0x61,0xfe,0xef,0x0,0x90,0x3, +0x27,0x6,0x3c,0x8,0x8b,0x9,0xa7,0x9,0x59,0x8,0x5a,0x6, +0x3a,0x4,0xcf,0x1,0x25,0xff,0xfa,0xfc,0x35,0xfc,0xdf,0xfc, +0x23,0xfe,0x25,0xff,0xa2,0xff,0x7,0x0,0x8b,0x0,0x4f,0x0, +0xa4,0xfe,0x40,0xfc,0x17,0xfa,0x7f,0xf8,0xeb,0xf7,0x84,0xf8, +0xd3,0xf9,0xf0,0xfb,0x4,0xff,0xa,0x2,0xf6,0x3,0xbe,0x4, +0x1e,0x5,0xec,0x5,0xe1,0x6,0x2c,0x7,0xae,0x6,0x32,0x5, +0xaf,0x2,0x2e,0x0,0x17,0xfe,0xca,0xfb,0x55,0xf9,0x63,0xf7, +0x57,0xf6,0x4e,0xf6,0x1f,0xf7,0x6c,0xf8,0xe3,0xf9,0x4f,0xfb, +0xcc,0xfc,0xd9,0xfe,0x80,0x1,0xa7,0x3,0xf,0x4,0x92,0x2, +0x8,0x0,0x5f,0xfd,0x3a,0xfb,0x15,0xfa,0xeb,0xf9,0xea,0xf9, +0xd5,0xf9,0x24,0xfa,0x3b,0xfa,0x18,0xf9,0x60,0xf7,0x64,0xf6, +0xd1,0xf6,0xc3,0xf8,0x6c,0xfb,0x5b,0xfd,0xc8,0xfd,0x34,0xfd, +0xe3,0xfc,0xa1,0xfd,0x2b,0xff,0xd3,0x0,0x8,0x2,0x9f,0x2, +0xf6,0x2,0x79,0x3,0xb,0x4,0x1c,0x4,0x87,0x3,0xda,0x2, +0x44,0x2,0x78,0x1,0x81,0x0,0x32,0xff,0x10,0xfd,0xc3,0xfa, +0xe4,0xf9,0x14,0xfb,0x10,0xfd,0xfe,0xfd,0xa1,0xfd,0x23,0xfd, +0x2e,0xfd,0xb1,0xfd,0x77,0xfe,0x1,0xff,0x91,0xfe,0xb,0xfd, +0x51,0xfb,0x13,0xfa,0xfe,0xf8,0xe0,0xf7,0x6,0xf7,0x8e,0xf6, +0x5e,0xf6,0x25,0xf6,0xcf,0xf5,0x26,0xf6,0x82,0xf7,0xff,0xf8, +0x4,0xfa,0xd5,0xfa,0xa7,0xfb,0x71,0xfc,0x47,0xfd,0xe,0xfe, +0x1,0xfe,0xb4,0xfc,0x3c,0xfb,0xc2,0xfa,0xf6,0xfa,0x20,0xfb, +0x21,0xfb,0xe7,0xfa,0x6b,0xfa,0x2,0xfa,0xf3,0xf9,0x36,0xfa, +0xd8,0xfa,0x1a,0xfc,0xea,0xfd,0x9a,0xff,0x75,0x0,0x50,0x0, +0x66,0xff,0x1b,0xfe,0xd0,0xfc,0x98,0xfb,0x76,0xfa,0xc9,0xf9, +0xcf,0xf9,0xa,0xfa,0xd4,0xf9,0x48,0xf9,0x57,0xf9,0xdf,0xfa, +0x7e,0xfd,0xc8,0xff,0xf6,0x0,0x5a,0x1,0x7f,0x1,0xc1,0x1, +0x52,0x2,0xe6,0x2,0xb2,0x2,0x81,0x1,0x61,0x0,0xf,0x0, +0xd9,0xff,0x15,0xff,0x2b,0xfe,0xc9,0xfd,0x5,0xfe,0x80,0xfe, +0xd,0xff,0xb2,0xff,0x53,0x0,0x21,0x1,0x52,0x2,0x87,0x3, +0x6a,0x4,0xff,0x4,0x2c,0x5,0x91,0x4,0xe8,0x2,0x7f,0x0, +0xd2,0xfd,0x0,0xfb,0x7a,0xf8,0xcb,0xf6,0xb1,0xf5,0xc8,0xf4, +0x25,0xf4,0xa,0xf4,0x9b,0xf4,0x78,0xf5,0x32,0xf6,0x8,0xf7, +0x4c,0xf8,0xc4,0xf9,0xfe,0xfa,0xaf,0xfb,0x4,0xfc,0x72,0xfc, +0x2,0xfd,0x64,0xfd,0xe2,0xfd,0x3,0xff,0x57,0x0,0x60,0x1, +0xaa,0x2,0x6d,0x4,0xde,0x5,0x7b,0x6,0x5b,0x6,0xb2,0x5, +0xc7,0x4,0xee,0x3,0x58,0x3,0xe3,0x2,0x6d,0x2,0x26,0x2, +0x22,0x2,0x23,0x2,0xee,0x1,0x53,0x1,0x61,0x0,0x75,0xff, +0xce,0xfe,0x4c,0xfe,0x87,0xfd,0x53,0xfc,0x18,0xfb,0x37,0xfa, +0x97,0xf9,0x9,0xf9,0xa9,0xf8,0xe2,0xf8,0x9b,0xf9,0xea,0xf9, +0x9c,0xf9,0x81,0xf9,0x0,0xfa,0x1c,0xfb,0xd1,0xfc,0xa2,0xfe, +0x7,0x0,0xf7,0x0,0xad,0x1,0x9a,0x2,0xbd,0x3,0x45,0x4, +0xe9,0x3,0x3a,0x3,0x77,0x2,0x7f,0x1,0x4a,0x0,0xf2,0xfe, +0xeb,0xfd,0xa6,0xfd,0x1a,0xfe,0x3c,0xff,0x2e,0x1,0xa5,0x3, +0xe3,0x5,0x23,0x7,0xf5,0x6,0xac,0x5,0xfd,0x3,0x76,0x2, +0x9e,0x1,0x88,0x1,0xbf,0x1,0xfd,0x1,0x23,0x2,0x17,0x2, +0xee,0x1,0x87,0x1,0xe3,0x0,0x95,0x0,0xc7,0x0,0xd,0x1, +0x33,0x1,0x32,0x1,0xf7,0x0,0x8e,0x0,0x4b,0x0,0x3c,0x0, +0x6,0x0,0xaa,0xff,0x76,0xff,0x6e,0xff,0x83,0xff,0x99,0xff, +0x8e,0xff,0xa3,0xff,0x4,0x0,0x7f,0x0,0xe3,0x0,0x18,0x1, +0x37,0x1,0x3c,0x1,0xf9,0x0,0x8c,0x0,0x11,0x0,0x90,0xff, +0x7f,0xff,0x11,0x0,0xcd,0x0,0x66,0x1,0xe4,0x1,0x3b,0x2, +0x87,0x2,0x21,0x3,0xb,0x4,0xc5,0x4,0xed,0x4,0xa0,0x4, +0x33,0x4,0xba,0x3,0xd6,0x2,0x4e,0x1,0x9c,0xff,0x89,0xfe, +0x90,0xfe,0x79,0xff,0x87,0x0,0x54,0x1,0xef,0x1,0x8c,0x2, +0x6d,0x3,0x71,0x4,0xed,0x4,0xa3,0x4,0x47,0x4,0xa7,0x4, +0x95,0x5,0x26,0x6,0x0,0x6,0xb8,0x5,0xba,0x5,0xe6,0x5, +0x46,0x6,0xa2,0x6,0x4a,0x6,0x5c,0x5,0xba,0x4,0x96,0x4, +0x74,0x4,0xf2,0x3,0x35,0x3,0xb3,0x2,0x2f,0x2,0x1a,0x1, +0xda,0xff,0x3f,0xff,0x5d,0xff,0xd,0x0,0x87,0x1,0x9b,0x3, +0x49,0x5,0xed,0x5,0xd3,0x5,0x6b,0x5,0x3,0x5,0xa9,0x4, +0x43,0x4,0x12,0x4,0x2c,0x4,0x48,0x4,0x66,0x4,0x5d,0x4, +0xd5,0x3,0x2c,0x3,0xd1,0x2,0x7b,0x2,0xe1,0x1,0x36,0x1, +0xcb,0x0,0xc9,0x0,0x31,0x1,0xa9,0x1,0xb8,0x1,0x7e,0x1, +0x80,0x1,0xce,0x1,0x14,0x2,0x34,0x2,0x5a,0x2,0xa3,0x2, +0xec,0x2,0x24,0x3,0x47,0x3,0x3d,0x3,0x20,0x3,0x22,0x3, +0x64,0x3,0xd7,0x3,0x3,0x4,0x7a,0x3,0x56,0x2,0x4,0x1, +0xfb,0xff,0x88,0xff,0x85,0xff,0x94,0xff,0xa1,0xff,0xca,0xff, +0xa,0x0,0x6a,0x0,0xe8,0x0,0xf6,0x0,0x5f,0x0,0xfe,0xff, +0x46,0x0,0xb4,0x0,0xe9,0x0,0xf6,0x0,0xee,0x0,0xe3,0x0, +0xf3,0x0,0x5,0x1,0xd7,0x0,0x84,0x0,0x53,0x0,0x3d,0x0, +0x32,0x0,0xfd,0xff,0x3a,0xff,0x1e,0xfe,0x22,0xfd,0x62,0xfc, +0x13,0xfc,0x70,0xfc,0x2f,0xfd,0xec,0xfd,0xb2,0xfe,0xb7,0xff, +0xd7,0x0,0xac,0x1,0x15,0x2,0x56,0x2,0xc8,0x2,0x91,0x3, +0x91,0x4,0x3e,0x5,0xee,0x4,0xbc,0x3,0x80,0x2,0x8c,0x1, +0xbb,0x0,0x4b,0x0,0x6b,0x0,0xae,0x0,0xbf,0x0,0xa8,0x0, +0x54,0x0,0xc2,0xff,0x64,0xff,0x9b,0xff,0x51,0x0,0x44,0x1, +0x10,0x2,0x5a,0x2,0x1e,0x2,0xaa,0x1,0x82,0x1,0xff,0x1, +0xce,0x2,0x52,0x3,0x4a,0x3,0xe3,0x2,0x3e,0x2,0x5d,0x1, +0x86,0x0,0xf7,0xff,0x75,0xff,0xc0,0xfe,0xe,0xfe,0xcc,0xfd, +0x6,0xfe,0x49,0xfe,0x5e,0xfe,0x77,0xfe,0xa9,0xfe,0xcf,0xfe, +0xd7,0xfe,0xf8,0xfe,0x56,0xff,0x94,0xff,0x71,0xff,0x5c,0xff, +0xb2,0xff,0x1e,0x0,0x12,0x0,0x59,0xff,0x2a,0xfe,0x25,0xfd, +0xea,0xfc,0x48,0xfd,0x74,0xfd,0x16,0xfd,0x5d,0xfc,0x97,0xfb, +0x32,0xfb,0x7c,0xfb,0x4f,0xfc,0x12,0xfd,0x49,0xfd,0x3a,0xfd, +0x3f,0xfd,0x39,0xfd,0x36,0xfd,0x7e,0xfd,0x1d,0xfe,0xef,0xfe, +0xac,0xff,0x2a,0x0,0x8c,0x0,0x1a,0x1,0x2,0x2,0x4c,0x3, +0xdc,0x4,0x3b,0x6,0xc7,0x6,0x54,0x6,0x23,0x5,0xaf,0x3, +0xa7,0x2,0x49,0x2,0x1c,0x2,0xab,0x1,0x9,0x1,0x9d,0x0, +0x6f,0x0,0x5e,0x0,0xa9,0x0,0x3e,0x1,0xb9,0x1,0xf9,0x1, +0xc6,0x1,0x10,0x1,0x35,0x0,0x3f,0xff,0xfb,0xfd,0x81,0xfc, +0x17,0xfb,0x15,0xfa,0x8c,0xf9,0x76,0xf9,0xe0,0xf9,0x4c,0xfa, +0x5f,0xfa,0x87,0xfa,0x19,0xfb,0x7,0xfc,0xa,0xfd,0xae,0xfd, +0xc1,0xfd,0x5c,0xfd,0xd3,0xfc,0xa3,0xfc,0xda,0xfc,0x59,0xfd, +0xe,0xfe,0xa2,0xfe,0xd6,0xfe,0xc8,0xfe,0xba,0xfe,0x9,0xff, +0xad,0xff,0x38,0x0,0x7f,0x0,0x82,0x0,0x1e,0x0,0x72,0xff, +0x16,0xff,0x6e,0xff,0xf7,0xff,0xfe,0xff,0xa0,0xff,0x4c,0xff, +0x34,0xff,0x6d,0xff,0xe5,0xff,0x46,0x0,0x43,0x0,0xb,0x0, +0x17,0x0,0x7a,0x0,0xd6,0x0,0xf0,0x0,0xb7,0x0,0xe2,0xff, +0x3d,0xfe,0x5b,0xfc,0x3a,0xfb,0x1,0xfb,0xb,0xfb,0x1c,0xfb, +0x6b,0xfb,0xe9,0xfb,0x63,0xfc,0xe5,0xfc,0xa2,0xfd,0x79,0xfe, +0x2,0xff,0x20,0xff,0xb,0xff,0xee,0xfe,0xd9,0xfe,0xda,0xfe, +0xfd,0xfe,0x4b,0xff,0xa3,0xff,0xc2,0xff,0xa7,0xff,0x83,0xff, +0x59,0xff,0xe,0xff,0x9b,0xfe,0xf6,0xfd,0x3d,0xfd,0xd7,0xfc, +0x5,0xfd,0x89,0xfd,0xfd,0xfd,0x59,0xfe,0xb0,0xfe,0xc1,0xfe, +0x91,0xfe,0x93,0xfe,0xe8,0xfe,0x4f,0xff,0x94,0xff,0xb4,0xff, +0xd6,0xff,0xd,0x0,0x2f,0x0,0x1c,0x0,0x9c,0xff,0x85,0xfe, +0x62,0xfd,0xd5,0xfc,0xc4,0xfc,0xce,0xfc,0xdd,0xfc,0xe8,0xfc, +0xc2,0xfc,0x5b,0xfc,0xf2,0xfb,0xab,0xfb,0x7a,0xfb,0x9d,0xfb, +0x37,0xfc,0xdf,0xfc,0x17,0xfd,0xbf,0xfc,0x69,0xfc,0xf7,0xfc, +0x3c,0xfe,0x1f,0xff,0x50,0xff,0x6f,0xff,0xf4,0xff,0xc5,0x0, +0x97,0x1,0x48,0x2,0xd0,0x2,0x24,0x3,0x35,0x3,0xdb,0x2, +0xe8,0x1,0x8c,0x0,0x7a,0xff,0x4b,0xff,0xc2,0xff,0x2f,0x0, +0x51,0x0,0x43,0x0,0x2f,0x0,0x22,0x0,0xf6,0xff,0xa7,0xff, +0x56,0xff,0xeb,0xfe,0x40,0xfe,0x6a,0xfd,0x9a,0xfc,0x2,0xfc, +0xab,0xfb,0x75,0xfb,0x34,0xfb,0xd6,0xfa,0x9c,0xfa,0xe6,0xfa, +0xb3,0xfb,0xa8,0xfc,0x4e,0xfd,0x74,0xfd,0x8a,0xfd,0xf5,0xfd, +0xa7,0xfe,0x8d,0xff,0x81,0x0,0x29,0x1,0x8f,0x1,0xfc,0x1, +0x5f,0x2,0xa0,0x2,0xdb,0x2,0xe5,0x2,0x54,0x2,0x46,0x1, +0x6d,0x0,0x3e,0x0,0x87,0x0,0xd8,0x0,0xc,0x1,0x3a,0x1, +0x50,0x1,0x1b,0x1,0x9b,0x0,0xeb,0xff,0x2a,0xff,0xae,0xfe, +0xc5,0xfe,0x4e,0xff,0xd9,0xff,0x1,0x0,0xc8,0xff,0x6b,0xff, +0xec,0xfe,0x65,0xfe,0x39,0xfe,0x86,0xfe,0x5,0xff,0x66,0xff, +0x93,0xff,0xa4,0xff,0xa7,0xff,0xcb,0xff,0x46,0x0,0xe1,0x0, +0x58,0x1,0xbe,0x1,0x23,0x2,0x99,0x2,0x34,0x3,0xe7,0x3, +0x99,0x4,0x2e,0x5,0xab,0x5,0x31,0x6,0xb4,0x6,0x34,0x7, +0xb2,0x7,0xe7,0x7,0xa7,0x7,0xf8,0x6,0x5,0x6,0x1e,0x5, +0x4f,0x4,0x6e,0x3,0x95,0x2,0xe9,0x1,0x7d,0x1,0x5b,0x1, +0x51,0x1,0x26,0x1,0xbe,0x0,0x15,0x0,0x6e,0xff,0x37,0xff, +0x86,0xff,0xe2,0xff,0x99,0xff,0x90,0xfe,0x77,0xfd,0x1e,0xfd, +0xc9,0xfd,0xff,0xfe,0xf,0x0,0xd3,0x0,0x7a,0x1,0x17,0x2, +0xa6,0x2,0x22,0x3,0x82,0x3,0xcd,0x3,0x2,0x4,0x15,0x4, +0xb,0x4,0xfe,0x3,0xef,0x3,0xd7,0x3,0xd2,0x3,0xdc,0x3, +0xe2,0x3,0x18,0x4,0x86,0x4,0xd9,0x4,0xfa,0x4,0xfb,0x4, +0xcc,0x4,0x8d,0x4,0x61,0x4,0x32,0x4,0x15,0x4,0x36,0x4, +0x71,0x4,0x70,0x4,0xd,0x4,0x85,0x3,0x33,0x3,0x56,0x3, +0x4,0x4,0xcb,0x4,0xdd,0x4,0x7,0x4,0xc5,0x2,0xce,0x1, +0x9b,0x1,0xd7,0x1,0xfe,0x1,0x11,0x2,0xe7,0x1,0x2d,0x1, +0x37,0x0,0xb1,0xff,0xe7,0xff,0x99,0x0,0x63,0x1,0x35,0x2, +0xe3,0x2,0x1,0x3,0xb1,0x2,0x7b,0x2,0x75,0x2,0x6f,0x2, +0x69,0x2,0x7e,0x2,0x9f,0x2,0xb5,0x2,0xd6,0x2,0xef,0x2, +0xcc,0x2,0x91,0x2,0x6d,0x2,0x66,0x2,0xa6,0x2,0x1f,0x3, +0x78,0x3,0xa3,0x3,0xd6,0x3,0x1f,0x4,0x73,0x4,0xb6,0x4, +0xa8,0x4,0x4c,0x4,0x1e,0x4,0x75,0x4,0xfb,0x4,0x13,0x5, +0x70,0x4,0x7b,0x3,0xe5,0x2,0xa3,0x2,0x4a,0x2,0x13,0x2, +0x39,0x2,0x70,0x2,0x9a,0x2,0xc7,0x2,0xe7,0x2,0xec,0x2, +0xe8,0x2,0xea,0x2,0xfa,0x2,0x30,0x3,0xc8,0x3,0xa6,0x4, +0x39,0x5,0x2e,0x5,0xa6,0x4,0xe3,0x3,0x1b,0x3,0x6e,0x2, +0xe6,0x1,0x79,0x1,0x17,0x1,0xd1,0x0,0xad,0x0,0x86,0x0, +0x4d,0x0,0x2d,0x0,0x5f,0x0,0xcd,0x0,0xfc,0x0,0xb3,0x0, +0x44,0x0,0xd1,0xff,0x32,0xff,0x85,0xfe,0x19,0xfe,0xf1,0xfd, +0xb8,0xfd,0x4c,0xfd,0xdb,0xfc,0x75,0xfc,0x1d,0xfc,0xc,0xfc, +0x47,0xfc,0x8e,0xfc,0xba,0xfc,0xef,0xfc,0x80,0xfd,0x68,0xfe, +0x44,0xff,0xf2,0xff,0x87,0x0,0xfa,0x0,0x44,0x1,0x6e,0x1, +0xb0,0x1,0x53,0x2,0x18,0x3,0x73,0x3,0x5c,0x3,0x20,0x3, +0xf5,0x2,0x5,0x3,0x40,0x3,0x62,0x3,0x71,0x3,0x97,0x3, +0xaf,0x3,0x7f,0x3,0xf5,0x2,0xc,0x2,0xe7,0x0,0xcb,0xff, +0xea,0xfe,0x63,0xfe,0x27,0xfe,0xf3,0xfd,0xc6,0xfd,0xd2,0xfd, +0x9,0xfe,0x2d,0xfe,0x26,0xfe,0x2a,0xfe,0x79,0xfe,0x22,0xff, +0xef,0xff,0x71,0x0,0x6b,0x0,0x6,0x0,0x7d,0xff,0x10,0xff, +0xe7,0xfe,0xc9,0xfe,0x62,0xfe,0x95,0xfd,0x9f,0xfc,0x5,0xfc, +0xcc,0xfb,0x96,0xfb,0x78,0xfb,0xa1,0xfb,0xf7,0xfb,0x4b,0xfc, +0x61,0xfc,0x33,0xfc,0xf1,0xfb,0xb7,0xfb,0xb8,0xfb,0x18,0xfc, +0x8c,0xfc,0xbb,0xfc,0xb3,0xfc,0xdf,0xfc,0x8f,0xfd,0x94,0xfe, +0x8e,0xff,0x33,0x0,0x52,0x0,0xe1,0xff,0xfc,0xfe,0xf8,0xfd, +0x2a,0xfd,0x78,0xfc,0xc4,0xfb,0x44,0xfb,0xe,0xfb,0x8,0xfb, +0x1e,0xfb,0x4b,0xfb,0xb1,0xfb,0x4f,0xfc,0xe4,0xfc,0x48,0xfd, +0x88,0xfd,0x9f,0xfd,0x70,0xfd,0x2,0xfd,0x81,0xfc,0xfc,0xfb, +0x78,0xfb,0xd,0xfb,0xb6,0xfa,0x59,0xfa,0xff,0xf9,0xd1,0xf9, +0xe6,0xf9,0x4c,0xfa,0x2,0xfb,0xbf,0xfb,0x28,0xfc,0x59,0xfc, +0x76,0xfc,0x6b,0xfc,0x64,0xfc,0x89,0xfc,0xa0,0xfc,0x84,0xfc, +0x6a,0xfc,0x7d,0xfc,0xae,0xfc,0xd2,0xfc,0xe8,0xfc,0xcc,0xfc, +0x36,0xfc,0x7e,0xfb,0x3e,0xfb,0x4f,0xfb,0x57,0xfb,0x95,0xfb, +0x4b,0xfc,0x48,0xfd,0x38,0xfe,0xe5,0xfe,0x48,0xff,0x67,0xff, +0x50,0xff,0x1d,0xff,0xf1,0xfe,0xc3,0xfe,0x72,0xfe,0x4,0xfe, +0x7d,0xfd,0xcd,0xfc,0x1d,0xfc,0xa5,0xfb,0x65,0xfb,0x58,0xfb, +0xa4,0xfb,0x55,0xfc,0xa,0xfd,0x1f,0xfd,0x76,0xfc,0xa1,0xfb, +0x52,0xfb,0xcf,0xfb,0xa4,0xfc,0x26,0xfd,0x46,0xfd,0x3e,0xfd, +0xb,0xfd,0xcb,0xfc,0xb9,0xfc,0xd2,0xfc,0x19,0xfd,0x87,0xfd, +0xc2,0xfd,0x7d,0xfd,0xf2,0xfc,0x9b,0xfc,0xb2,0xfc,0xa,0xfd, +0x76,0xfd,0xf5,0xfd,0x6b,0xfe,0xb5,0xfe,0xc5,0xfe,0x8b,0xfe, +0x16,0xfe,0x96,0xfd,0x45,0xfd,0x48,0xfd,0x75,0xfd,0x89,0xfd, +0x82,0xfd,0x69,0xfd,0x35,0xfd,0xf2,0xfc,0xae,0xfc,0xa1,0xfc, +0xf1,0xfc,0x4a,0xfd,0x87,0xfd,0xef,0xfd,0x80,0xfe,0x4,0xff, +0x6f,0xff,0xcc,0xff,0x22,0x0,0x62,0x0,0x58,0x0,0xc2,0xff, +0x8b,0xfe,0x19,0xfd,0xf7,0xfb,0x32,0xfb,0x94,0xfa,0xd,0xfa, +0xd9,0xf9,0x35,0xfa,0xe3,0xfa,0x89,0xfb,0x3f,0xfc,0x32,0xfd, +0x3d,0xfe,0xb,0xff,0x93,0xff,0x1e,0x0,0xb6,0x0,0x16,0x1, +0x16,0x1,0xd5,0x0,0x9b,0x0,0x7e,0x0,0x52,0x0,0x7,0x0, +0x8b,0xff,0xd9,0xfe,0x4c,0xfe,0x4c,0xfe,0xbd,0xfe,0xf,0xff, +0xf6,0xfe,0xc0,0xfe,0xb5,0xfe,0xbf,0xfe,0xda,0xfe,0x5,0xff, +0x2e,0xff,0x5e,0xff,0x7d,0xff,0x85,0xff,0xc3,0xff,0x6d,0x0, +0x6a,0x1,0x67,0x2,0xb,0x3,0x4b,0x3,0x43,0x3,0xdf,0x2, +0x38,0x2,0xc9,0x1,0xe1,0x1,0x1a,0x2,0xc8,0x1,0xf1,0x0, +0x46,0x0,0x27,0x0,0x64,0x0,0xc9,0x0,0x45,0x1,0xaf,0x1, +0xfb,0x1,0x50,0x2,0xa8,0x2,0xb6,0x2,0x48,0x2,0x9f,0x1, +0x35,0x1,0x2e,0x1,0x35,0x1,0x9,0x1,0xee,0x0,0x29,0x1, +0x98,0x1,0x17,0x2,0xb2,0x2,0x67,0x3,0x2,0x4,0x28,0x4, +0xd1,0x3,0x32,0x3,0x44,0x2,0x26,0x1,0x5f,0x0,0x1e,0x0, +0x36,0x0,0x82,0x0,0xdf,0x0,0x32,0x1,0x65,0x1,0x95,0x1, +0xe9,0x1,0x33,0x2,0x64,0x2,0xb6,0x2,0x1e,0x3,0x76,0x3, +0x9a,0x3,0x4a,0x3,0xa0,0x2,0xe8,0x1,0x39,0x1,0xb6,0x0, +0x7f,0x0,0x99,0x0,0x14,0x1,0xc8,0x1,0x45,0x2,0x41,0x2, +0xf7,0x1,0xec,0x1,0x4c,0x2,0xd1,0x2,0x26,0x3,0x17,0x3, +0xa5,0x2,0x11,0x2,0xab,0x1,0x98,0x1,0xcf,0x1,0x33,0x2, +0xad,0x2,0xc,0x3,0x13,0x3,0xcf,0x2,0x8c,0x2,0x68,0x2, +0x52,0x2,0x35,0x2,0xf3,0x1,0x8d,0x1,0x11,0x1,0x9a,0x0, +0x5d,0x0,0x55,0x0,0x5c,0x0,0x97,0x0,0xfa,0x0,0x23,0x1, +0x3,0x1,0xd0,0x0,0xb2,0x0,0xcd,0x0,0x44,0x1,0xb,0x2, +0xd1,0x2,0x61,0x3,0xbf,0x3,0xee,0x3,0x15,0x4,0x52,0x4, +0x80,0x4,0xa8,0x4,0xe0,0x4,0x12,0x5,0x41,0x5,0x59,0x5, +0x42,0x5,0x19,0x5,0xbc,0x4,0x0,0x4,0x1,0x3,0xdb,0x1, +0xbd,0x0,0xed,0xff,0x83,0xff,0x7f,0xff,0xa6,0xff,0xd0,0xff, +0x12,0x0,0x64,0x0,0xbb,0x0,0x1c,0x1,0x6b,0x1,0x8a,0x1, +0x6f,0x1,0x26,0x1,0xed,0x0,0xf6,0x0,0x3f,0x1,0x93,0x1, +0xa2,0x1,0x82,0x1,0xa7,0x1,0x23,0x2,0xa7,0x2,0xfe,0x2, +0x1c,0x3,0x3,0x3,0xca,0x2,0x70,0x2,0xee,0x1,0x73,0x1, +0x45,0x1,0x71,0x1,0xe5,0x1,0x6a,0x2,0xb1,0x2,0xb0,0x2, +0xa1,0x2,0x98,0x2,0x81,0x2,0x6d,0x2,0x66,0x2,0x45,0x2, +0x1,0x2,0xa8,0x1,0x48,0x1,0xfe,0x0,0xe7,0x0,0xd,0x1, +0x48,0x1,0x3a,0x1,0xd2,0x0,0x5f,0x0,0x3,0x0,0xc4,0xff, +0xb8,0xff,0xce,0xff,0xd6,0xff,0xb5,0xff,0x7d,0xff,0x3f,0xff, +0xf4,0xfe,0xd3,0xfe,0x18,0xff,0xaa,0xff,0x5d,0x0,0xfe,0x0, +0x5b,0x1,0x75,0x1,0x71,0x1,0xa1,0x1,0x2b,0x2,0xc7,0x2, +0x34,0x3,0x51,0x3,0x1,0x3,0x56,0x2,0x7e,0x1,0xd9,0x0, +0xac,0x0,0xae,0x0,0xa9,0x0,0xbd,0x0,0xde,0x0,0xfc,0x0, +0x15,0x1,0x17,0x1,0x1c,0x1,0x41,0x1,0x76,0x1,0xa6,0x1, +0xaf,0x1,0x88,0x1,0x6b,0x1,0x71,0x1,0x7d,0x1,0x8d,0x1, +0x8e,0x1,0x4f,0x1,0xc8,0x0,0x9,0x0,0x10,0xff,0xa,0xfe, +0x40,0xfd,0xbe,0xfc,0x68,0xfc,0x22,0xfc,0xf7,0xfb,0x10,0xfc, +0x62,0xfc,0xd2,0xfc,0x5c,0xfd,0xd9,0xfd,0x31,0xfe,0x68,0xfe, +0x77,0xfe,0x62,0xfe,0x2f,0xfe,0xf6,0xfd,0xfa,0xfd,0x50,0xfe, +0xb9,0xfe,0xe1,0xfe,0x94,0xfe,0xf1,0xfd,0x5f,0xfd,0x2c,0xfd, +0x5b,0xfd,0xc4,0xfd,0x55,0xfe,0xe5,0xfe,0x21,0xff,0xa,0xff, +0xdc,0xfe,0xa8,0xfe,0x79,0xfe,0x4b,0xfe,0xe,0xfe,0xdf,0xfd, +0xd3,0xfd,0xd9,0xfd,0xf2,0xfd,0x19,0xfe,0x31,0xfe,0x36,0xfe, +0x4a,0xfe,0x8f,0xfe,0x19,0xff,0xbd,0xff,0x1f,0x0,0x21,0x0, +0xe9,0xff,0xb6,0xff,0xbe,0xff,0xe0,0xff,0xe9,0xff,0xdf,0xff, +0xb3,0xff,0x69,0xff,0x2c,0xff,0xfb,0xfe,0xd0,0xfe,0xb4,0xfe, +0x99,0xfe,0x77,0xfe,0x5b,0xfe,0x71,0xfe,0xc4,0xfe,0x1b,0xff, +0x5c,0xff,0x98,0xff,0xcd,0xff,0x1,0x0,0x23,0x0,0x24,0x0, +0xa,0x0,0xa9,0xff,0x4,0xff,0x68,0xfe,0xe7,0xfd,0x82,0xfd, +0x49,0xfd,0x16,0xfd,0xc6,0xfc,0x61,0xfc,0x21,0xfc,0x58,0xfc, +0xef,0xfc,0x9f,0xfd,0x34,0xfe,0x6c,0xfe,0x49,0xfe,0x13,0xfe, +0xf0,0xfd,0xe2,0xfd,0xde,0xfd,0xd6,0xfd,0xd8,0xfd,0xec,0xfd, +0x1f,0xfe,0x82,0xfe,0xf0,0xfe,0x3a,0xff,0x6a,0xff,0x91,0xff, +0x9f,0xff,0x71,0xff,0xf6,0xfe,0x77,0xfe,0x4e,0xfe,0x71,0xfe, +0xb9,0xfe,0x11,0xff,0x4f,0xff,0x80,0xff,0xab,0xff,0x94,0xff, +0x48,0xff,0xb,0xff,0xef,0xfe,0xfb,0xfe,0x6,0xff,0xc3,0xfe, +0x42,0xfe,0xd5,0xfd,0xab,0xfd,0xc3,0xfd,0x5,0xfe,0x5f,0xfe, +0x93,0xfe,0x7a,0xfe,0x4b,0xfe,0x1f,0xfe,0xd0,0xfd,0x7f,0xfd, +0x64,0xfd,0x72,0xfd,0x84,0xfd,0x95,0xfd,0x9d,0xfd,0x90,0xfd, +0x99,0xfd,0xe0,0xfd,0x31,0xfe,0x57,0xfe,0x58,0xfe,0x57,0xfe, +0x79,0xfe,0xa2,0xfe,0xa6,0xfe,0xa5,0xfe,0xb6,0xfe,0xbc,0xfe, +0xa1,0xfe,0x67,0xfe,0x21,0xfe,0xd8,0xfd,0x82,0xfd,0x3c,0xfd, +0x12,0xfd,0xfb,0xfc,0x21,0xfd,0x8f,0xfd,0xfb,0xfd,0x26,0xfe, +0x3,0xfe,0xad,0xfd,0x5e,0xfd,0x41,0xfd,0x50,0xfd,0x73,0xfd, +0x9a,0xfd,0xbd,0xfd,0xf6,0xfd,0x62,0xfe,0xeb,0xfe,0x5b,0xff, +0x98,0xff,0xbd,0xff,0xe3,0xff,0xe7,0xff,0xb6,0xff,0x6f,0xff, +0xd,0xff,0x64,0xfe,0x9b,0xfd,0x18,0xfd,0xd8,0xfc,0x88,0xfc, +0x32,0xfc,0x16,0xfc,0x45,0xfc,0xbc,0xfc,0x58,0xfd,0xec,0xfd, +0x95,0xfe,0x7f,0xff,0x93,0x0,0x80,0x1,0xf3,0x1,0xf7,0x1, +0xd2,0x1,0x97,0x1,0x43,0x1,0xde,0x0,0x55,0x0,0x9f,0xff, +0xfb,0xfe,0xc8,0xfe,0x5,0xff,0x57,0xff,0x7a,0xff,0x5d,0xff, +0x1a,0xff,0xe2,0xfe,0xce,0xfe,0xeb,0xfe,0x24,0xff,0x3e,0xff, +0x1f,0xff,0xe8,0xfe,0xd9,0xfe,0x2f,0xff,0xcd,0xff,0x68,0x0, +0xf1,0x0,0x6a,0x1,0x9e,0x1,0x72,0x1,0x21,0x1,0xd8,0x0, +0x6e,0x0,0xf8,0xff,0xbd,0xff,0x8f,0xff,0x29,0xff,0xb5,0xfe, +0x6b,0xfe,0x63,0xfe,0xa1,0xfe,0x6,0xff,0x7e,0xff,0xfa,0xff, +0x4d,0x0,0x69,0x0,0x7e,0x0,0xa7,0x0,0xdd,0x0,0x1f,0x1, +0x6c,0x1,0xab,0x1,0xba,0x1,0x97,0x1,0x5e,0x1,0x33,0x1, +0x29,0x1,0x2e,0x1,0x2f,0x1,0x2e,0x1,0x3b,0x1,0x5c,0x1, +0x84,0x1,0x91,0x1,0x80,0x1,0x69,0x1,0x47,0x1,0x25,0x1, +0x29,0x1,0x5c,0x1,0xba,0x1,0x31,0x2,0x85,0x2,0xb6,0x2, +0xfa,0x2,0x4d,0x3,0x8d,0x3,0xb8,0x3,0xe1,0x3,0x13,0x4, +0x32,0x4,0x1a,0x4,0xe0,0x3,0xb0,0x3,0x95,0x3,0x79,0x3, +0x46,0x3,0x1b,0x3,0x17,0x3,0xf,0x3,0xf1,0x2,0xe3,0x2, +0xc5,0x2,0x55,0x2,0x96,0x1,0xb8,0x0,0x8,0x0,0xca,0xff, +0xfe,0xff,0x77,0x0,0xff,0x0,0x63,0x1,0x90,0x1,0x88,0x1, +0x5b,0x1,0x3f,0x1,0x4c,0x1,0x6f,0x1,0xa1,0x1,0xbf,0x1, +0x9e,0x1,0x48,0x1,0xe8,0x0,0xc6,0x0,0x26,0x1,0xce,0x1, +0x44,0x2,0x73,0x2,0x96,0x2,0xce,0x2,0xf5,0x2,0xd5,0x2, +0x80,0x2,0x26,0x2,0xdd,0x1,0xb3,0x1,0xba,0x1,0xee,0x1, +0x21,0x2,0x2a,0x2,0x28,0x2,0x44,0x2,0x70,0x2,0x90,0x2, +0xb0,0x2,0xe5,0x2,0x17,0x3,0x1d,0x3,0xf,0x3,0x6,0x3, +0xdb,0x2,0x87,0x2,0x2a,0x2,0xc3,0x1,0x4f,0x1,0xec,0x0, +0xca,0x0,0xf4,0x0,0x2c,0x1,0x46,0x1,0x5b,0x1,0x74,0x1, +0x90,0x1,0xc0,0x1,0xe6,0x1,0xe1,0x1,0xb3,0x1,0x76,0x1, +0x51,0x1,0x62,0x1,0x95,0x1,0xcf,0x1,0x7,0x2,0x3c,0x2, +0x69,0x2,0x82,0x2,0x88,0x2,0x9b,0x2,0xc0,0x2,0xda,0x2, +0xd6,0x2,0xa3,0x2,0x48,0x2,0x7,0x2,0xee,0x1,0xb8,0x1, +0x5d,0x1,0x5,0x1,0xb5,0x0,0x90,0x0,0xb0,0x0,0xe7,0x0, +0xc,0x1,0xc,0x1,0x5,0x1,0x15,0x1,0xc,0x1,0xd0,0x0, +0xac,0x0,0xaf,0x0,0xac,0x0,0x93,0x0,0x6d,0x0,0x66,0x0, +0x81,0x0,0x75,0x0,0x3e,0x0,0x16,0x0,0x1,0x0,0xde,0xff, +0x9d,0xff,0x52,0xff,0x2f,0xff,0x38,0xff,0x56,0xff,0xa5,0xff, +0x1f,0x0,0x7b,0x0,0x99,0x0,0x93,0x0,0x7f,0x0,0x66,0x0, +0x51,0x0,0x58,0x0,0x85,0x0,0xac,0x0,0xae,0x0,0x9c,0x0, +0x7b,0x0,0x3d,0x0,0xe7,0xff,0xa2,0xff,0x7e,0xff,0x5d,0xff, +0x42,0xff,0x4d,0xff,0x64,0xff,0x61,0xff,0x56,0xff,0x5e,0xff, +0x8a,0xff,0xd6,0xff,0x29,0x0,0x85,0x0,0xdf,0x0,0x1,0x1, +0xe1,0x0,0xaa,0x0,0x74,0x0,0x52,0x0,0x53,0x0,0x58,0x0, +0x39,0x0,0xfa,0xff,0xb8,0xff,0x8a,0xff,0x7d,0xff,0x87,0xff, +0x89,0xff,0x73,0xff,0x79,0xff,0xdf,0xff,0x82,0x0,0xfc,0x0, +0x19,0x1,0xce,0x0,0x42,0x0,0xc2,0xff,0x70,0xff,0x4c,0xff, +0x58,0xff,0x83,0xff,0xb8,0xff,0xdd,0xff,0xb9,0xff,0x30,0xff, +0x7d,0xfe,0xc,0xfe,0xf,0xfe,0x66,0xfe,0xcc,0xfe,0x10,0xff, +0x2f,0xff,0x3d,0xff,0x30,0xff,0xc,0xff,0xdc,0xfe,0x96,0xfe, +0x4c,0xfe,0x24,0xfe,0x17,0xfe,0xf1,0xfd,0x7f,0xfd,0xe3,0xfc, +0x89,0xfc,0xae,0xfc,0x33,0xfd,0xd0,0xfd,0x3c,0xfe,0x57,0xfe, +0x3c,0xfe,0x38,0xfe,0x71,0xfe,0xbb,0xfe,0xef,0xfe,0x15,0xff, +0x31,0xff,0x39,0xff,0x1a,0xff,0xe3,0xfe,0xc2,0xfe,0xa5,0xfe, +0x78,0xfe,0x54,0xfe,0x23,0xfe,0xb4,0xfd,0x10,0xfd,0x71,0xfc, +0x21,0xfc,0x24,0xfc,0x50,0xfc,0xa4,0xfc,0x10,0xfd,0x61,0xfd, +0xa4,0xfd,0xd,0xfe,0xa4,0xfe,0x3a,0xff,0x91,0xff,0xa2,0xff, +0x95,0xff,0x75,0xff,0x45,0xff,0x14,0xff,0xd9,0xfe,0x86,0xfe, +0x20,0xfe,0xbd,0xfd,0xa2,0xfd,0xf1,0xfd,0x58,0xfe,0x9a,0xfe, +0xdc,0xfe,0x35,0xff,0x8d,0xff,0xe1,0xff,0x3f,0x0,0x9c,0x0, +0xec,0x0,0x3f,0x1,0x94,0x1,0xcb,0x1,0xdd,0x1,0xbc,0x1, +0x6c,0x1,0x1d,0x1,0xbd,0x0,0x1f,0x0,0x7c,0xff,0x13,0xff, +0xfb,0xfe,0x1a,0xff,0x1c,0xff,0xe4,0xfe,0xc4,0xfe,0xf7,0xfe, +0x70,0xff,0xc,0x0,0x90,0x0,0xb9,0x0,0x70,0x0,0xcf,0xff, +0x11,0xff,0x84,0xfe,0x3b,0xfe,0x19,0xfe,0xb,0xfe,0xfa,0xfd, +0xd6,0xfd,0xa1,0xfd,0x59,0xfd,0x24,0xfd,0x15,0xfd,0x7,0xfd, +0x1d,0xfd,0x7f,0xfd,0xf2,0xfd,0x46,0xfe,0x66,0xfe,0x6f,0xfe, +0xd0,0xfe,0x77,0xff,0xe7,0xff,0x9,0x0,0x18,0x0,0x4f,0x0, +0x90,0x0,0x6d,0x0,0xc9,0xff,0xeb,0xfe,0x34,0xfe,0xeb,0xfd, +0xf3,0xfd,0x8,0xfe,0x24,0xfe,0x53,0xfe,0xa2,0xfe,0x1f,0xff, +0xdf,0xff,0xdd,0x0,0xc6,0x1,0x4d,0x2,0x6a,0x2,0x2e,0x2, +0xcb,0x1,0x66,0x1,0xee,0x0,0x6b,0x0,0xd9,0xff,0xb,0xff, +0x1d,0xfe,0x70,0xfd,0x41,0xfd,0x8d,0xfd,0x19,0xfe,0xc0,0xfe, +0x75,0xff,0x5,0x0,0x64,0x0,0xb0,0x0,0xe1,0x0,0xfc,0x0, +0x2a,0x1,0x78,0x1,0xe5,0x1,0x3d,0x2,0x2a,0x2,0xa6,0x1, +0xf4,0x0,0x66,0x0,0x43,0x0,0x67,0x0,0x78,0x0,0x53,0x0, +0xa,0x0,0xd3,0xff,0xc5,0xff,0xb2,0xff,0x92,0xff,0x76,0xff, +0x77,0xff,0xcc,0xff,0x64,0x0,0xd3,0x0,0xe9,0x0,0xc4,0x0, +0x95,0x0,0x78,0x0,0x84,0x0,0xde,0x0,0x68,0x1,0xd6,0x1, +0x18,0x2,0x1a,0x2,0xcf,0x1,0x69,0x1,0x17,0x1,0xe8,0x0, +0xca,0x0,0xcd,0x0,0x26,0x1,0xb2,0x1,0x26,0x2,0x81,0x2, +0xaa,0x2,0x9d,0x2,0xb5,0x2,0xd,0x3,0x74,0x3,0xb2,0x3, +0x93,0x3,0x13,0x3,0x4b,0x2,0x4f,0x1,0x4b,0x0,0x77,0xff, +0xf8,0xfe,0xc8,0xfe,0xb9,0xfe,0xbb,0xfe,0xce,0xfe,0xe0,0xfe, +0x3,0xff,0x5c,0xff,0xdf,0xff,0x60,0x0,0xdd,0x0,0x72,0x1, +0xe,0x2,0x6f,0x2,0x8a,0x2,0x8f,0x2,0xa4,0x2,0xc7,0x2, +0xd1,0x2,0xb6,0x2,0xaf,0x2,0xce,0x2,0xd9,0x2,0xc9,0x2, +0xb0,0x2,0x77,0x2,0x1e,0x2,0xdc,0x1,0xf0,0x1,0x55,0x2, +0xaf,0x2,0xdb,0x2,0xf6,0x2,0xe7,0x2,0xad,0x2,0x65,0x2, +0xed,0x1,0x6d,0x1,0x3e,0x1,0x4d,0x1,0x5f,0x1,0x4b,0x1, +0x2,0x1,0xba,0x0,0xaa,0x0,0xda,0x0,0x48,0x1,0xc4,0x1, +0x2a,0x2,0x84,0x2,0xbc,0x2,0xa5,0x2,0x41,0x2,0xbf,0x1, +0x4f,0x1,0xf4,0x0,0x95,0x0,0x1c,0x0,0x82,0xff,0xde,0xfe, +0x5b,0xfe,0x10,0xfe,0xf8,0xfd,0x12,0xfe,0x77,0xfe,0x22,0xff, +0x5,0x0,0x2c,0x1,0x69,0x2,0x82,0x3,0x8c,0x4,0xa4,0x5, +0xb3,0x6,0x9e,0x7,0x3a,0x8,0x59,0x8,0xfd,0x7,0x4d,0x7, +0x6d,0x6,0x76,0x5,0x7a,0x4,0x7c,0x3,0x89,0x2,0xca,0x1, +0x3f,0x1,0xcd,0x0,0xa1,0x0,0xec,0x0,0x76,0x1,0xf1,0x1, +0x4d,0x2,0x95,0x2,0xd5,0x2,0x0,0x3,0xf7,0x2,0xb4,0x2, +0x53,0x2,0xee,0x1,0xa6,0x1,0x98,0x1,0xb4,0x1,0xdf,0x1, +0x7,0x2,0x19,0x2,0xe,0x2,0xf5,0x1,0xda,0x1,0xbb,0x1, +0x95,0x1,0x7f,0x1,0x8c,0x1,0xae,0x1,0xe1,0x1,0x23,0x2, +0x56,0x2,0x77,0x2,0x91,0x2,0x8a,0x2,0x4b,0x2,0xdd,0x1, +0x61,0x1,0xf5,0x0,0x9b,0x0,0x3b,0x0,0xaf,0xff,0xee,0xfe, +0x40,0xfe,0xfb,0xfd,0x20,0xfe,0x83,0xfe,0xfe,0xfe,0x66,0xff, +0xbb,0xff,0x1e,0x0,0x8e,0x0,0x1b,0x1,0xcf,0x1,0x52,0x2, +0x5e,0x2,0x28,0x2,0xf2,0x1,0xd8,0x1,0xd5,0x1,0xb8,0x1, +0x71,0x1,0x25,0x1,0xe1,0x0,0x90,0x0,0x29,0x0,0xbc,0xff, +0x54,0xff,0xf2,0xfe,0xa7,0xfe,0x85,0xfe,0x8e,0xfe,0xcb,0xfe, +0x39,0xff,0xcb,0xff,0x6b,0x0,0xe8,0x0,0x2e,0x1,0x54,0x1, +0x75,0x1,0xa2,0x1,0xe7,0x1,0x3f,0x2,0x90,0x2,0xc1,0x2, +0xd0,0x2,0xc9,0x2,0x9f,0x2,0x4c,0x2,0xff,0x1,0xeb,0x1, +0x9,0x2,0x28,0x2,0x38,0x2,0x4b,0x2,0x66,0x2,0x64,0x2, +0x2f,0x2,0xd3,0x1,0x6a,0x1,0x1e,0x1,0xf4,0x0,0xbd,0x0, +0x70,0x0,0x18,0x0,0xab,0xff,0x47,0xff,0x1e,0xff,0x1c,0xff, +0x10,0xff,0xd7,0xfe,0x77,0xfe,0x26,0xfe,0xe8,0xfd,0xa3,0xfd, +0x55,0xfd,0xe7,0xfc,0x72,0xfc,0x49,0xfc,0x5c,0xfc,0x61,0xfc, +0x5a,0xfc,0x7b,0xfc,0xd8,0xfc,0x41,0xfd,0x84,0xfd,0xb5,0xfd, +0xe4,0xfd,0xea,0xfd,0xa8,0xfd,0x4d,0xfd,0x20,0xfd,0x10,0xfd, +0xe0,0xfc,0x8b,0xfc,0x1b,0xfc,0xb8,0xfb,0xc5,0xfb,0x3e,0xfc, +0xbc,0xfc,0x20,0xfd,0x5c,0xfd,0x59,0xfd,0x33,0xfd,0x1c,0xfd, +0x2e,0xfd,0x60,0xfd,0x8c,0xfd,0xb0,0xfd,0xf4,0xfd,0x45,0xfe, +0x5a,0xfe,0x23,0xfe,0xf8,0xfd,0x1f,0xfe,0x67,0xfe,0x8e,0xfe, +0x99,0xfe,0x91,0xfe,0x80,0xfe,0x7a,0xfe,0x72,0xfe,0x52,0xfe, +0x11,0xfe,0xb4,0xfd,0x59,0xfd,0x2,0xfd,0xa4,0xfc,0x6f,0xfc, +0x69,0xfc,0x56,0xfc,0x3c,0xfc,0x44,0xfc,0x63,0xfc,0x7e,0xfc, +0x8f,0xfc,0xac,0xfc,0xe7,0xfc,0x39,0xfd,0x99,0xfd,0xec,0xfd, +0x13,0xfe,0x22,0xfe,0x47,0xfe,0x90,0xfe,0xe8,0xfe,0x18,0xff, +0x8,0xff,0xc8,0xfe,0x5c,0xfe,0xcd,0xfd,0x3a,0xfd,0xc3,0xfc, +0x87,0xfc,0x81,0xfc,0x87,0xfc,0x7b,0xfc,0x55,0xfc,0x1b,0xfc, +0xd6,0xfb,0x98,0xfb,0x86,0xfb,0xa6,0xfb,0xe8,0xfb,0x4e,0xfc, +0xb4,0xfc,0xea,0xfc,0x6,0xfd,0x23,0xfd,0x55,0xfd,0xba,0xfd, +0x2d,0xfe,0x64,0xfe,0x47,0xfe,0xce,0xfd,0x16,0xfd,0x7c,0xfc, +0x3c,0xfc,0x4c,0xfc,0x74,0xfc,0x83,0xfc,0x7d,0xfc,0x80,0xfc, +0xa9,0xfc,0xfe,0xfc,0x60,0xfd,0x9e,0xfd,0xae,0xfd,0xb2,0xfd, +0xce,0xfd,0xfe,0xfd,0x26,0xfe,0x33,0xfe,0x24,0xfe,0x16,0xfe, +0xfa,0xfd,0xa4,0xfd,0x34,0xfd,0xd1,0xfc,0x8d,0xfc,0x89,0xfc, +0xa1,0xfc,0x97,0xfc,0x77,0xfc,0x4b,0xfc,0x23,0xfc,0x26,0xfc, +0x40,0xfc,0x54,0xfc,0x52,0xfc,0x22,0xfc,0xe3,0xfb,0xd7,0xfb, +0x16,0xfc,0x6b,0xfc,0x75,0xfc,0x45,0xfc,0x5c,0xfc,0xd6,0xfc, +0x87,0xfd,0x31,0xfe,0x7d,0xfe,0x74,0xfe,0x7a,0xfe,0xb1,0xfe, +0xdf,0xfe,0xbf,0xfe,0x60,0xfe,0x0,0xfe,0xb1,0xfd,0x83,0xfd, +0x78,0xfd,0x6d,0xfd,0x77,0xfd,0xa7,0xfd,0xd0,0xfd,0xee,0xfd, +0x11,0xfe,0x3a,0xfe,0x6d,0xfe,0x8d,0xfe,0xa5,0xfe,0xe1,0xfe, +0xfe,0xfe,0xb6,0xfe,0x35,0xfe,0xb1,0xfd,0x5a,0xfd,0x4b,0xfd, +0x45,0xfd,0x2,0xfd,0x84,0xfc,0xea,0xfb,0x66,0xfb,0x3b,0xfb, +0x92,0xfb,0x48,0xfc,0xb,0xfd,0x95,0xfd,0xcc,0xfd,0xc2,0xfd, +0xb3,0xfd,0xd6,0xfd,0x4d,0xfe,0x4,0xff,0x8c,0xff,0xa7,0xff, +0x88,0xff,0x4f,0xff,0xc,0xff,0xe7,0xfe,0xce,0xfe,0xa5,0xfe, +0x8a,0xfe,0x98,0xfe,0xd1,0xfe,0x10,0xff,0xb,0xff,0xc7,0xfe, +0x89,0xfe,0x75,0xfe,0x93,0xfe,0xd3,0xfe,0x17,0xff,0x4c,0xff, +0x6b,0xff,0x8e,0xff,0xcd,0xff,0x4,0x0,0xb,0x0,0xf3,0xff, +0xbf,0xff,0x70,0xff,0x16,0xff,0xb1,0xfe,0x4a,0xfe,0xff,0xfd, +0xc7,0xfd,0x8c,0xfd,0x6f,0xfd,0x8d,0xfd,0xd3,0xfd,0x24,0xfe, +0x72,0xfe,0xc7,0xfe,0x2f,0xff,0xad,0xff,0x51,0x0,0x23,0x1, +0xd6,0x1,0x2b,0x2,0x4a,0x2,0x53,0x2,0x32,0x2,0xeb,0x1, +0x9b,0x1,0x6d,0x1,0x6a,0x1,0x5a,0x1,0x25,0x1,0xd3,0x0, +0x61,0x0,0x12,0x0,0x1b,0x0,0x41,0x0,0x47,0x0,0x27,0x0, +0xe0,0xff,0x81,0xff,0x1a,0xff,0xc0,0xfe,0xa6,0xfe,0xd7,0xfe, +0x37,0xff,0xb4,0xff,0x39,0x0,0xa0,0x0,0xce,0x0,0xe3,0x0, +0x33,0x1,0xcb,0x1,0x5c,0x2,0xaf,0x2,0xa8,0x2,0x43,0x2, +0xb9,0x1,0x47,0x1,0xfc,0x0,0xd8,0x0,0xbc,0x0,0x8c,0x0, +0x59,0x0,0x26,0x0,0xde,0xff,0x8b,0xff,0x53,0xff,0x59,0xff, +0xb7,0xff,0x58,0x0,0x11,0x1,0xaa,0x1,0xe3,0x1,0xc3,0x1, +0x9d,0x1,0x99,0x1,0xa1,0x1,0xa5,0x1,0xbd,0x1,0xfe,0x1, +0x37,0x2,0x2a,0x2,0xf7,0x1,0xd7,0x1,0xe2,0x1,0x27,0x2, +0x92,0x2,0xf1,0x2,0x12,0x3,0xda,0x2,0x75,0x2,0x32,0x2, +0x31,0x2,0x72,0x2,0xd2,0x2,0x33,0x3,0x8d,0x3,0xbf,0x3, +0xd3,0x3,0xfb,0x3,0x9,0x4,0xd5,0x3,0x98,0x3,0x73,0x3, +0x5a,0x3,0x4d,0x3,0x35,0x3,0x2,0x3,0xcb,0x2,0x91,0x2, +0x28,0x2,0x9a,0x1,0x4b,0x1,0x70,0x1,0xcd,0x1,0x2c,0x2, +0x8b,0x2,0xe9,0x2,0x4d,0x3,0xb6,0x3,0x2,0x4,0x14,0x4, +0xf9,0x3,0xc4,0x3,0x71,0x3,0xf6,0x2,0x47,0x2,0x78,0x1, +0xd3,0x0,0x8a,0x0,0x90,0x0,0xbc,0x0,0xca,0x0,0xa2,0x0, +0x70,0x0,0x48,0x0,0x3d,0x0,0x70,0x0,0xc5,0x0,0x48,0x1, +0xc,0x2,0x9e,0x2,0xa2,0x2,0x4f,0x2,0xf3,0x1,0xa1,0x1, +0x47,0x1,0xed,0x0,0xb2,0x0,0x8a,0x0,0x7f,0x0,0xb3,0x0, +0xe9,0x0,0xfc,0x0,0x17,0x1,0x4c,0x1,0xa4,0x1,0x1b,0x2, +0x71,0x2,0xa1,0x2,0xd9,0x2,0xf4,0x2,0xe2,0x2,0xf9,0x2, +0x62,0x3,0xe1,0x3,0x58,0x4,0xba,0x4,0xda,0x4,0xb2,0x4, +0x65,0x4,0x22,0x4,0x19,0x4,0x46,0x4,0x8a,0x4,0xcf,0x4, +0xde,0x4,0x8d,0x4,0x6,0x4,0x81,0x3,0x25,0x3,0xfd,0x2, +0xdf,0x2,0xd6,0x2,0x9,0x3,0x55,0x3,0x85,0x3,0x88,0x3, +0x6e,0x3,0x60,0x3,0x68,0x3,0x84,0x3,0xb3,0x3,0xd8,0x3, +0xea,0x3,0xda,0x3,0x76,0x3,0xc8,0x2,0x1f,0x2,0xbb,0x1, +0xab,0x1,0xd3,0x1,0x6,0x2,0x1e,0x2,0x20,0x2,0x31,0x2, +0x4a,0x2,0x4b,0x2,0x10,0x2,0x8b,0x1,0xf3,0x0,0x81,0x0, +0x33,0x0,0x21,0x0,0x3a,0x0,0x41,0x0,0x40,0x0,0x63,0x0, +0x9a,0x0,0xc0,0x0,0xcd,0x0,0xe7,0x0,0x1d,0x1,0x64,0x1, +0xaa,0x1,0xc1,0x1,0xa0,0x1,0x77,0x1,0x41,0x1,0x11,0x1, +0x1f,0x1,0x51,0x1,0x82,0x1,0xac,0x1,0xc8,0x1,0xe5,0x1, +0xf4,0x1,0xea,0x1,0xf7,0x1,0xf6,0x1,0xaf,0x1,0x59,0x1, +0x11,0x1,0xdb,0x0,0xd6,0x0,0xfa,0x0,0x41,0x1,0xab,0x1, +0x19,0x2,0x73,0x2,0xa9,0x2,0xb6,0x2,0x9e,0x2,0x72,0x2, +0x66,0x2,0x67,0x2,0x31,0x2,0xee,0x1,0xc2,0x1,0x7d,0x1, +0xe,0x1,0x92,0x0,0x39,0x0,0x26,0x0,0x30,0x0,0x3f,0x0, +0x42,0x0,0x2e,0x0,0x2c,0x0,0x31,0x0,0x1c,0x0,0x31,0x0, +0x7f,0x0,0xdb,0x0,0x3d,0x1,0x74,0x1,0x7f,0x1,0xb0,0x1, +0xf7,0x1,0xc,0x2,0xee,0x1,0xb5,0x1,0x75,0x1,0x35,0x1, +0xf1,0x0,0xa4,0x0,0x48,0x0,0xdf,0xff,0x6c,0xff,0x0,0xff, +0xc6,0xfe,0xc7,0xfe,0xd5,0xfe,0xdb,0xfe,0xf1,0xfe,0x15,0xff, +0x1b,0xff,0xfa,0xfe,0xd6,0xfe,0xb6,0xfe,0xa5,0xfe,0xba,0xfe, +0xdd,0xfe,0x10,0xff,0x62,0xff,0xac,0xff,0xe5,0xff,0x12,0x0, +0x2a,0x0,0x4c,0x0,0x84,0x0,0xba,0x0,0xea,0x0,0xf3,0x0, +0xc8,0x0,0x95,0x0,0x60,0x0,0x2e,0x0,0x32,0x0,0x69,0x0, +0x9e,0x0,0xbd,0x0,0xcf,0x0,0xd0,0x0,0xbb,0x0,0xab,0x0, +0xb0,0x0,0xb9,0x0,0xbc,0x0,0xc5,0x0,0xdd,0x0,0xe2,0x0, +0xb6,0x0,0x7a,0x0,0x3d,0x0,0xfb,0xff,0xd9,0xff,0xbd,0xff, +0x58,0xff,0xcf,0xfe,0x74,0xfe,0x6c,0xfe,0xc1,0xfe,0x44,0xff, +0xb6,0xff,0xe5,0xff,0xcb,0xff,0xb0,0xff,0xa9,0xff,0x88,0xff, +0x64,0xff,0x4d,0xff,0x34,0xff,0x30,0xff,0x32,0xff,0x29,0xff, +0x22,0xff,0xf,0xff,0x2,0xff,0x1a,0xff,0x2e,0xff,0x18,0xff, +0xed,0xfe,0xd7,0xfe,0xd7,0xfe,0xbb,0xfe,0x72,0xfe,0x1,0xfe, +0x80,0xfd,0x33,0xfd,0x1e,0xfd,0x2,0xfd,0xdb,0xfc,0xa0,0xfc, +0x6a,0xfc,0x87,0xfc,0xdb,0xfc,0x35,0xfd,0xa9,0xfd,0x2d,0xfe, +0xcd,0xfe,0x7b,0xff,0xbd,0xff,0x8b,0xff,0x45,0xff,0xfd,0xfe, +0xb5,0xfe,0x70,0xfe,0x25,0xfe,0xe8,0xfd,0xbc,0xfd,0xac,0xfd, +0xdb,0xfd,0x1d,0xfe,0x4a,0xfe,0x83,0xfe,0xd7,0xfe,0x2b,0xff, +0x54,0xff,0x31,0xff,0xec,0xfe,0xc2,0xfe,0xc3,0xfe,0xf6,0xfe, +0x48,0xff,0x95,0xff,0xcb,0xff,0xd5,0xff,0xa2,0xff,0x39,0xff, +0xc7,0xfe,0x94,0xfe,0xae,0xfe,0xd8,0xfe,0xf3,0xfe,0xe3,0xfe, +0x93,0xfe,0x44,0xfe,0x2c,0xfe,0x1e,0xfe,0xc,0xfe,0x21,0xfe, +0x5d,0xfe,0x91,0xfe,0xa2,0xfe,0x9c,0xfe,0x7c,0xfe,0x28,0xfe, +0xe0,0xfd,0xf7,0xfd,0x4a,0xfe,0xa4,0xfe,0x7,0xff,0x51,0xff, +0x57,0xff,0x1d,0xff,0xca,0xfe,0x9b,0xfe,0x8f,0xfe,0x75,0xfe, +0x5d,0xfe,0x55,0xfe,0x38,0xfe,0x19,0xfe,0x16,0xfe,0x9,0xfe, +0xc9,0xfd,0x68,0xfd,0x2d,0xfd,0x3a,0xfd,0x53,0xfd,0x5c,0xfd, +0x7d,0xfd,0xb0,0xfd,0xd3,0xfd,0xf8,0xfd,0x43,0xfe,0xa2,0xfe, +0xf2,0xfe,0x28,0xff,0x35,0xff,0x0,0xff,0xac,0xfe,0x6c,0xfe, +0x2c,0xfe,0xd8,0xfd,0x96,0xfd,0x87,0xfd,0x90,0xfd,0x78,0xfd, +0x43,0xfd,0x35,0xfd,0x75,0xfd,0x3,0xfe,0xb6,0xfe,0x4a,0xff, +0xa3,0xff,0xce,0xff,0xf4,0xff,0x3f,0x0,0x8b,0x0,0xa5,0x0, +0xbf,0x0,0xfe,0x0,0x3d,0x1,0x79,0x1,0xa5,0x1,0x8c,0x1, +0x2e,0x1,0xb8,0x0,0x44,0x0,0xeb,0xff,0xae,0xff,0x77,0xff, +0x3e,0xff,0x10,0xff,0xfc,0xfe,0x4,0xff,0x1a,0xff,0x32,0xff, +0x43,0xff,0x53,0xff,0x82,0xff,0xd4,0xff,0xe,0x0,0x3,0x0, +0xbc,0xff,0x55,0xff,0xe7,0xfe,0x89,0xfe,0x42,0xfe,0x17,0xfe, +0x9,0xfe,0xc,0xfe,0x17,0xfe,0x23,0xfe,0x14,0xfe,0xff,0xfd, +0x27,0xfe,0x84,0xfe,0xef,0xfe,0x71,0xff,0xeb,0xff,0x3a,0x0, +0x73,0x0,0x9e,0x0,0xb0,0x0,0xb6,0x0,0xb4,0x0,0xba,0x0, +0xeb,0x0,0x28,0x1,0x44,0x1,0x41,0x1,0x34,0x1,0x39,0x1, +0x5b,0x1,0x76,0x1,0x69,0x1,0x2e,0x1,0xd0,0x0,0x79,0x0, +0x4a,0x0,0x2c,0x0,0xfb,0xff,0xcb,0xff,0xc4,0xff,0xe3,0xff, +0xed,0xff,0xcf,0xff,0xbc,0xff,0xc9,0xff,0xe0,0xff,0x20,0x0, +0x83,0x0,0xcd,0x0,0x14,0x1,0x73,0x1,0xc9,0x1,0x13,0x2, +0x48,0x2,0x40,0x2,0x23,0x2,0x17,0x2,0xeb,0x1,0x9a,0x1, +0x48,0x1,0xf2,0x0,0x85,0x0,0x21,0x0,0x0,0x0,0xb,0x0, +0x7,0x0,0x4,0x0,0x21,0x0,0x58,0x0,0x98,0x0,0xca,0x0, +0x4,0x1,0x65,0x1,0xcb,0x1,0x16,0x2,0x58,0x2,0x8a,0x2, +0x9c,0x2,0x87,0x2,0x55,0x2,0x1f,0x2,0xd1,0x1,0x3d,0x1, +0x8a,0x0,0xf8,0xff,0x90,0xff,0x74,0xff,0xa8,0xff,0xda,0xff, +0xf6,0xff,0x31,0x0,0x6f,0x0,0x77,0x0,0x56,0x0,0x2a,0x0, +0x3,0x0,0xf6,0xff,0x9,0x0,0x20,0x0,0x27,0x0,0x30,0x0, +0x50,0x0,0x74,0x0,0x6d,0x0,0x22,0x0,0xcb,0xff,0xaa,0xff, +0xb5,0xff,0xdb,0xff,0x21,0x0,0x87,0x0,0xf2,0x0,0x27,0x1, +0x1a,0x1,0xf9,0x0,0xdc,0x0,0xe4,0x0,0xa,0x1,0xc,0x1, +0xd8,0x0,0x73,0x0,0xf6,0xff,0xa5,0xff,0x6f,0xff,0x29,0xff, +0xe5,0xfe,0xa0,0xfe,0x70,0xfe,0x81,0xfe,0xac,0xfe,0xc3,0xfe, +0xd5,0xfe,0xfa,0xfe,0x34,0xff,0x72,0xff,0xad,0xff,0xd9,0xff, +0xed,0xff,0x3,0x0,0x2d,0x0,0x73,0x0,0xc4,0x0,0xe3,0x0, +0xbb,0x0,0x5d,0x0,0xeb,0xff,0xa3,0xff,0x96,0xff,0xa9,0xff, +0xca,0xff,0xe9,0xff,0x14,0x0,0x44,0x0,0x57,0x0,0x5a,0x0, +0x59,0x0,0x64,0x0,0xa4,0x0,0xf9,0x0,0x2c,0x1,0x3e,0x1, +0x42,0x1,0x3e,0x1,0x29,0x1,0xfa,0x0,0xb5,0x0,0x62,0x0, +0x3e,0x0,0x6b,0x0,0xab,0x0,0xca,0x0,0xc7,0x0,0xc4,0x0, +0xf2,0x0,0x3e,0x1,0x7e,0x1,0xa8,0x1,0xaf,0x1,0x92,0x1, +0x5f,0x1,0x23,0x1,0xf6,0x0,0xce,0x0,0x8b,0x0,0x2d,0x0, +0xea,0xff,0xec,0xff,0xf7,0xff,0xbb,0xff,0x41,0xff,0xa8,0xfe, +0x31,0xfe,0x27,0xfe,0x6c,0xfe,0xcd,0xfe,0x33,0xff,0x8a,0xff, +0xca,0xff,0xe1,0xff,0xc9,0xff,0x9d,0xff,0x6c,0xff,0x5a,0xff, +0x6d,0xff,0x63,0xff,0x3f,0xff,0x18,0xff,0xd6,0xfe,0x9d,0xfe, +0x75,0xfe,0x2b,0xfe,0xdb,0xfd,0xc0,0xfd,0xd1,0xfd,0xe5,0xfd, +0xe4,0xfd,0xda,0xfd,0xcc,0xfd,0xce,0xfd,0x6,0xfe,0x68,0xfe, +0xc7,0xfe,0xfd,0xfe,0x15,0xff,0x45,0xff,0x7b,0xff,0x8e,0xff, +0x92,0xff,0x82,0xff,0x52,0xff,0x19,0xff,0xdd,0xfe,0xb2,0xfe, +0x90,0xfe,0x71,0xfe,0x7c,0xfe,0xa1,0xfe,0xb2,0xfe,0xab,0xfe, +0x78,0xfe,0x40,0xfe,0x43,0xfe,0x6a,0xfe,0xa9,0xfe,0x0,0xff, +0x54,0xff,0xa6,0xff,0xef,0xff,0x2b,0x0,0x58,0x0,0x60,0x0, +0x56,0x0,0x5e,0x0,0x6e,0x0,0x83,0x0,0x8e,0x0,0x97,0x0, +0xb9,0x0,0xd6,0x0,0xe3,0x0,0xda,0x0,0x95,0x0,0x2f,0x0, +0xd2,0xff,0x82,0xff,0x36,0xff,0xcd,0xfe,0x5e,0xfe,0x20,0xfe, +0x10,0xfe,0xb,0xfe,0xe2,0xfd,0x99,0xfd,0x66,0xfd,0x47,0xfd, +0x3b,0xfd,0x48,0xfd,0x3c,0xfd,0x1b,0xfd,0x1,0xfd,0xdb,0xfc, +0xc6,0xfc,0xd4,0xfc,0xed,0xfc,0xe,0xfd,0x43,0xfd,0x94,0xfd, +0xd5,0xfd,0xd6,0xfd,0xc5,0xfd,0xc5,0xfd,0xd8,0xfd,0x1,0xfe, +0x19,0xfe,0x15,0xfe,0x13,0xfe,0x21,0xfe,0x43,0xfe,0x5d,0xfe, +0x4b,0xfe,0x10,0xfe,0xb2,0xfd,0x6b,0xfd,0x77,0xfd,0xa0,0xfd, +0xad,0xfd,0x9a,0xfd,0x75,0xfd,0x6f,0xfd,0xa7,0xfd,0x9,0xfe, +0x6c,0xfe,0xa3,0xfe,0x9e,0xfe,0x79,0xfe,0x67,0xfe,0x76,0xfe, +0x83,0xfe,0xa0,0xfe,0xe9,0xfe,0x38,0xff,0x87,0xff,0xdd,0xff, +0x5,0x0,0xee,0xff,0xb9,0xff,0x70,0xff,0x22,0xff,0xe9,0xfe, +0xc8,0xfe,0xb6,0xfe,0xaa,0xfe,0x99,0xfe,0x79,0xfe,0x6f,0xfe, +0x89,0xfe,0x97,0xfe,0x97,0xfe,0xa9,0xfe,0xc2,0xfe,0xdb,0xfe, +0xea,0xfe,0xdb,0xfe,0xcb,0xfe,0xc3,0xfe,0xaf,0xfe,0xa9,0xfe, +0xc0,0xfe,0xcb,0xfe,0xbc,0xfe,0xb3,0xfe,0xbc,0xfe,0xc9,0xfe, +0xce,0xfe,0xe0,0xfe,0x1a,0xff,0x69,0xff,0xb1,0xff,0x8,0x0, +0x69,0x0,0x96,0x0,0x7f,0x0,0x4e,0x0,0x1d,0x0,0xdc,0xff, +0x8e,0xff,0x67,0xff,0x6c,0xff,0x65,0xff,0x56,0xff,0x5a,0xff, +0x5c,0xff,0x61,0xff,0x8e,0xff,0xca,0xff,0xe6,0xff,0xda,0xff, +0xab,0xff,0x61,0xff,0x24,0xff,0x1c,0xff,0x34,0xff,0x30,0xff, +0x0,0xff,0xce,0xfe,0xbe,0xfe,0xe9,0xfe,0x47,0xff,0x97,0xff, +0xb7,0xff,0xcb,0xff,0xef,0xff,0x32,0x0,0x86,0x0,0xc2,0x0, +0xe3,0x0,0xf7,0x0,0xfa,0x0,0x8,0x1,0x22,0x1,0x6,0x1, +0xb6,0x0,0x6a,0x0,0x34,0x0,0x25,0x0,0x40,0x0,0x55,0x0, +0x51,0x0,0x40,0x0,0x17,0x0,0xdc,0xff,0x9f,0xff,0x76,0xff, +0x86,0xff,0xc9,0xff,0x23,0x0,0xb4,0x0,0x75,0x1,0x19,0x2, +0x8c,0x2,0xf4,0x2,0x45,0x3,0x55,0x3,0x15,0x3,0x91,0x2, +0xed,0x1,0x55,0x1,0xeb,0x0,0xbb,0x0,0xbb,0x0,0xdb,0x0, +0x2,0x1,0x20,0x1,0x4e,0x1,0x8a,0x1,0x92,0x1,0x57,0x1, +0x2e,0x1,0x3e,0x1,0x5a,0x1,0x5f,0x1,0x50,0x1,0x35,0x1, +0x18,0x1,0x12,0x1,0x33,0x1,0x66,0x1,0x89,0x1,0x92,0x1, +0x90,0x1,0x91,0x1,0x79,0x1,0x37,0x1,0x3,0x1,0x1,0x1, +0xd,0x1,0x21,0x1,0x37,0x1,0x29,0x1,0xb,0x1,0xf3,0x0, +0xce,0x0,0xb7,0x0,0xbb,0x0,0xb4,0x0,0xb9,0x0,0xdd,0x0, +0xdf,0x0,0xb1,0x0,0x88,0x0,0x68,0x0,0x49,0x0,0x2f,0x0, +0x13,0x0,0xc,0x0,0x3b,0x0,0x94,0x0,0xde,0x0,0xf1,0x0, +0xf2,0x0,0xe,0x1,0x20,0x1,0xc,0x1,0x8,0x1,0x19,0x1, +0xf,0x1,0x1,0x1,0x10,0x1,0x25,0x1,0x30,0x1,0x31,0x1, +0x20,0x1,0xa,0x1,0xee,0x0,0xad,0x0,0x4a,0x0,0xeb,0xff, +0xa4,0xff,0x77,0xff,0x65,0xff,0x74,0xff,0x9b,0xff,0xc2,0xff, +0xec,0xff,0x19,0x0,0x27,0x0,0x28,0x0,0x47,0x0,0x7c,0x0, +0xcd,0x0,0x25,0x1,0x47,0x1,0x47,0x1,0x5a,0x1,0x70,0x1, +0x82,0x1,0xa0,0x1,0xc2,0x1,0xd2,0x1,0xb9,0x1,0x79,0x1, +0x3d,0x1,0x1e,0x1,0x31,0x1,0x5a,0x1,0x51,0x1,0x41,0x1, +0x65,0x1,0x85,0x1,0xb5,0x1,0x39,0x2,0xba,0x2,0xfa,0x2, +0x2b,0x3,0x61,0x3,0x98,0x3,0xbe,0x3,0xb1,0x3,0x91,0x3, +0x74,0x3,0x2c,0x3,0xb7,0x2,0x42,0x2,0xeb,0x1,0xa9,0x1, +0x51,0x1,0x2,0x1,0xe4,0x0,0xbc,0x0,0x87,0x0,0x7e,0x0, +0x85,0x0,0x9e,0x0,0xf8,0x0,0x6c,0x1,0xd7,0x1,0x3f,0x2, +0x80,0x2,0x81,0x2,0x49,0x2,0xe0,0x1,0x71,0x1,0x2d,0x1, +0x27,0x1,0x50,0x1,0x6e,0x1,0x5b,0x1,0x33,0x1,0x14,0x1, +0x6,0x1,0x0,0x1,0xf7,0x0,0x5,0x1,0x31,0x1,0x49,0x1, +0x3e,0x1,0x35,0x1,0x34,0x1,0x31,0x1,0x36,0x1,0x50,0x1, +0x84,0x1,0xbd,0x1,0xd0,0x1,0x9d,0x1,0x44,0x1,0xf6,0x0, +0xad,0x0,0x59,0x0,0x23,0x0,0x14,0x0,0x3,0x0,0xd8,0xff, +0x99,0xff,0x79,0xff,0xa3,0xff,0xe5,0xff,0x1e,0x0,0x76,0x0, +0xc7,0x0,0xd2,0x0,0xc5,0x0,0xcb,0x0,0xc2,0x0,0xad,0x0, +0xd1,0x0,0x4f,0x1,0xd7,0x1,0x18,0x2,0x1f,0x2,0x9,0x2, +0xe0,0x1,0xc3,0x1,0xb8,0x1,0xa4,0x1,0x89,0x1,0x6a,0x1, +0x57,0x1,0x6a,0x1,0x79,0x1,0x68,0x1,0x60,0x1,0x62,0x1, +0x4b,0x1,0x18,0x1,0xcb,0x0,0x79,0x0,0x4f,0x0,0x47,0x0, +0x50,0x0,0x55,0x0,0x34,0x0,0x0,0x0,0xda,0xff,0xb9,0xff, +0xaf,0xff,0xd6,0xff,0x5,0x0,0x18,0x0,0xf,0x0,0xea,0xff, +0xc8,0xff,0xc4,0xff,0xcb,0xff,0xeb,0xff,0x3d,0x0,0x88,0x0, +0xad,0x0,0xcb,0x0,0xc4,0x0,0x7f,0x0,0x60,0x0,0x8e,0x0, +0xb4,0x0,0xc1,0x0,0xcb,0x0,0xc6,0x0,0xc1,0x0,0xb2,0x0, +0x78,0x0,0x50,0x0,0x5f,0x0,0x83,0x0,0xcc,0x0,0x2b,0x1, +0x55,0x1,0x50,0x1,0x48,0x1,0x53,0x1,0x83,0x1,0xae,0x1, +0xb0,0x1,0xa5,0x1,0x80,0x1,0x3a,0x1,0xfb,0x0,0xb3,0x0, +0x64,0x0,0x53,0x0,0x71,0x0,0x80,0x0,0x74,0x0,0x43,0x0, +0x5,0x0,0xe3,0xff,0xc9,0xff,0x88,0xff,0x26,0xff,0xc3,0xfe, +0x77,0xfe,0x61,0xfe,0x92,0xfe,0xdd,0xfe,0xff,0xfe,0x3,0xff, +0x7,0xff,0xfb,0xfe,0xec,0xfe,0xfd,0xfe,0x24,0xff,0x45,0xff, +0x65,0xff,0x8f,0xff,0xa8,0xff,0xaa,0xff,0xa9,0xff,0xa5,0xff, +0x84,0xff,0x47,0xff,0x1b,0xff,0x1a,0xff,0x1e,0xff,0x11,0xff, +0xfc,0xfe,0xe9,0xfe,0xea,0xfe,0xfb,0xfe,0x1d,0xff,0x57,0xff, +0x93,0xff,0xc7,0xff,0xe0,0xff,0xcd,0xff,0xbc,0xff,0xa5,0xff, +0x67,0xff,0x2d,0xff,0xf4,0xfe,0xc2,0xfe,0xcf,0xfe,0x0,0xff, +0x13,0xff,0xfe,0xfe,0xe4,0xfe,0xd9,0xfe,0xbb,0xfe,0xa2,0xfe, +0xbd,0xfe,0xb7,0xfe,0x77,0xfe,0x57,0xfe,0x62,0xfe,0x5c,0xfe, +0x35,0xfe,0x7,0xfe,0xd6,0xfd,0x98,0xfd,0x76,0xfd,0x81,0xfd, +0xa2,0xfd,0xdc,0xfd,0x32,0xfe,0xa5,0xfe,0x19,0xff,0x6b,0xff, +0x9c,0xff,0x93,0xff,0x68,0xff,0x4a,0xff,0x1b,0xff,0xf3,0xfe, +0xd5,0xfe,0xa8,0xfe,0xc5,0xfe,0xd,0xff,0x25,0xff,0x4b,0xff, +0x6b,0xff,0x5a,0xff,0x44,0xff,0x14,0xff,0xc7,0xfe,0x70,0xfe, +0x2b,0xfe,0x2a,0xfe,0x1c,0xfe,0xeb,0xfd,0xdf,0xfd,0xc9,0xfd, +0xd6,0xfd,0x2e,0xfe,0x51,0xfe,0x60,0xfe,0x9b,0xfe,0xc9,0xfe, +0xe7,0xfe,0xee,0xfe,0xe5,0xfe,0xd7,0xfe,0x8c,0xfe,0x47,0xfe, +0x66,0xfe,0xa7,0xfe,0xbb,0xfe,0x9a,0xfe,0x82,0xfe,0x9e,0xfe, +0xf3,0xfe,0x81,0xff,0xc4,0xff,0x5f,0xff,0xf4,0xfe,0xf7,0xfe, +0x74,0xff,0x88,0x0,0x79,0x1,0x64,0x1,0xc4,0x0,0x76,0x0, +0x8a,0x0,0x7,0x1,0xa1,0x1,0x21,0x1,0x8d,0xff,0x68,0xfe, +0xf7,0xfd,0x32,0xfe,0x5b,0xff,0xd9,0xff,0xbd,0xfe,0xd0,0xfd, +0xdd,0xfd,0x58,0xfe,0x90,0xff,0xc8,0x0,0x2e,0x0,0x9f,0xfe, +0x58,0xfe,0xf7,0xfe,0xaf,0xff,0xc0,0x0,0x91,0x0,0x9a,0xfe, +0x8b,0xfd,0xf5,0xfd,0xac,0xfe,0xfd,0xff,0xa5,0x0,0x30,0xff, +0xee,0xfd,0xad,0xfe,0x24,0x0,0x90,0x1,0x66,0x2,0x1d,0x1, +0xaa,0xfe,0xaf,0xfd,0x25,0xfe,0x23,0xff,0x33,0x0,0x70,0xff, +0xbe,0xfc,0x2b,0xfb,0xb5,0xfb,0x21,0xfd,0xa7,0xfe,0x96,0xfe, +0x36,0xfc,0x60,0xfa,0x24,0xfb,0x99,0xfd,0x85,0x0,0x12,0x2, +0x2a,0x1,0xc5,0xff,0xe4,0xfe,0x19,0xfe,0x6b,0xfe,0xa3,0xfe, +0xc4,0xfc,0x4d,0xfb,0xe7,0xfb,0x6c,0xfd,0x73,0x0,0xbb,0x3, +0x70,0x3,0x56,0x0,0xa1,0xfe,0x64,0xff,0x5c,0x1,0xe4,0x3, +0x5,0x5,0x88,0x2,0xaa,0xfe,0x9c,0xfc,0x86,0xfc,0x87,0xfe, +0xc6,0x0,0x91,0xff,0xbf,0xfc,0x64,0xfc,0x18,0xfe,0xfb,0x0, +0x7e,0x4,0x7d,0x5,0x26,0x3,0x83,0x1,0xae,0x2,0x4e,0x4, +0x30,0x5,0xcf,0x4,0xdc,0x0,0x9c,0xfb,0x56,0xfa,0x1d,0xfc, +0x66,0xfe,0xb6,0x0,0xcc,0xff,0xd1,0xfb,0xa3,0xfa,0xe9,0xfc, +0xc,0xff,0x5c,0x0,0xc1,0xff,0xf2,0xfb,0x98,0xf8,0x5d,0xfa, +0xa8,0xff,0xaf,0x3,0xee,0x4,0xcf,0x2,0xf6,0xfd,0x3a,0xfc, +0x43,0xff,0xf3,0x0,0xae,0x0,0x2,0x1,0xc2,0xff,0xb,0xff, +0x69,0x2,0x7e,0x5,0xa,0x6,0x94,0x5,0x5c,0x1,0x69,0xfb, +0x3d,0xfb,0xb,0xff,0x78,0x0,0x74,0xff,0xd0,0xfc,0x7a,0xf9, +0xbe,0xf9,0xef,0xfd,0x60,0x1,0xb1,0x1,0xe3,0xfe,0x1e,0xfb, +0x62,0xfb,0x19,0x1,0x38,0x8,0xfa,0xc,0x8,0xd,0xe1,0x7, +0xf,0x2,0x47,0x1,0xa3,0x4,0xc4,0x6,0x15,0x5,0x14,0x0, +0xd6,0xfa,0x6f,0xfa,0x5e,0xfe,0x96,0x0,0x3,0xff,0xeb,0xfa, +0x4,0xf7,0xb6,0xf8,0x53,0xff,0x0,0x4,0x4d,0x5,0x7a,0x3, +0xa1,0xfd,0xa1,0xfa,0x38,0x0,0x7c,0x7,0x71,0xa,0x53,0xa, +0x3c,0x5,0x53,0xfd,0xe3,0xfc,0xc1,0x2,0x43,0x6,0x5,0x9, +0xd2,0x8,0x1b,0x1,0x7c,0xfe,0x10,0x5,0x7d,0x5,0xdf,0xff, +0xf4,0xfb,0x3,0xf5,0x51,0xf0,0xc4,0xf6,0xc5,0xfe,0x18,0x1, +0xd7,0x0,0x57,0xfc,0x3c,0xf7,0x15,0xfc,0x83,0x6,0x48,0x9, +0xc,0x5,0x47,0x0,0x6d,0xfb,0xd2,0xfb,0x48,0x5,0x92,0xc, +0xec,0xa,0xa8,0x5,0x6c,0xfe,0x85,0xfa,0xf,0x1,0xda,0x8, +0x8d,0x8,0x97,0x3,0x9d,0xfc,0xc2,0xf8,0x4d,0xfe,0x13,0x6, +0x45,0x7,0x5e,0x2,0xe0,0xf8,0x8f,0xf1,0xde,0xf5,0x48,0x0, +0x25,0x6,0x5f,0x8,0xa1,0x6,0xdc,0xfe,0xf5,0xfb,0xc1,0x2, +0x60,0x7,0xa0,0x7,0x8b,0x6,0xa5,0xfe,0xf7,0xf8,0xdc,0x0, +0xc,0x8,0x86,0x6,0x72,0x4,0xf5,0xfc,0x2a,0xf3,0xb3,0xf9, +0x2d,0x9,0x71,0xe,0x44,0xd,0x92,0x8,0x93,0xfd,0xc7,0xfa, +0x23,0x6,0xc9,0xc,0xad,0x8,0xda,0x2,0xe9,0xf8,0x9b,0xef, +0x8f,0xf5,0x59,0x0,0x2a,0xff,0x5d,0xf9,0xfe,0xf3,0x5d,0xee, +0xc3,0xf4,0x71,0x4,0x31,0x9,0xd2,0x4,0xc0,0x2,0xbe,0x0, +0x9b,0x2,0xf,0xd,0xf4,0x12,0xed,0xc,0x9c,0x4,0x1d,0xff, +0x55,0xfe,0x26,0x5,0xee,0x9,0x41,0x4,0xd5,0xfb,0x2b,0xf5, +0x6a,0xf1,0xf8,0xf7,0xf1,0x2,0x4f,0x6,0xc6,0x4,0x4e,0xfe, +0xe0,0xf4,0x39,0xf8,0xde,0x2,0x9,0x3,0x23,0x0,0x49,0xfd, +0x73,0xf5,0xb6,0xf9,0x64,0x9,0x2e,0xb,0x40,0x4,0x34,0xff, +0x2e,0xf3,0x3e,0xf0,0x81,0x3,0x15,0x10,0xb4,0xb,0xd5,0x7, +0x2,0xff,0x1f,0xf4,0xca,0xfd,0x23,0xd,0xc6,0x9,0x76,0x2, +0x46,0xfe,0x25,0xf4,0x48,0xf4,0x2a,0x3,0x99,0x6,0x5e,0xfe, +0x3b,0xfa,0x69,0xf4,0xd1,0xf3,0xe7,0x5,0xef,0x12,0x3,0xa, +0x32,0x1,0x77,0x0,0xc3,0xff,0x2e,0x7,0xe7,0x10,0x63,0xa, +0xb3,0xfe,0x3e,0xfc,0xa7,0xfc,0xdc,0x2,0x8e,0xe,0x5b,0xd, +0xa7,0x0,0xf9,0xf7,0x65,0xf4,0xb,0xf9,0xf0,0x3,0x84,0x4, +0x6e,0xfd,0x7a,0xf9,0x19,0xf5,0xc5,0xf9,0xe5,0xa,0xb,0x10, +0x9c,0x7,0x33,0x0,0x80,0xf4,0x21,0xf1,0xf5,0x2,0xcb,0xb, +0xde,0x2,0xd3,0xfe,0xdd,0xf6,0x10,0xed,0x59,0xfc,0x6e,0xf, +0xca,0xa,0xdb,0x2,0x4,0xfc,0xba,0xef,0xe3,0xf7,0xb,0xf, +0x68,0xe,0xb5,0xfe,0xa6,0xf6,0x84,0xed,0x53,0xed,0x99,0x2, +0x7f,0xe,0x7c,0x3,0x6c,0xf9,0xea,0xf1,0xfa,0xed,0xd0,0x0, +0x98,0x16,0xe7,0x11,0x88,0x4,0xaf,0xfb,0x60,0xf3,0x6,0xfd, +0x41,0x13,0x3d,0x15,0x6e,0x8,0xa1,0xfe,0x8d,0xf4,0xe7,0xf5, +0x43,0x6,0xb8,0xa,0x17,0x0,0x5f,0xf6,0x3a,0xed,0xce,0xee, +0x1,0x2,0xa5,0xc,0xc2,0x4,0x99,0xfa,0x11,0xef,0xd1,0xea, +0x59,0xfe,0x5f,0x13,0xb6,0x13,0xae,0xc,0x76,0x0,0x9a,0xf2, +0x20,0xfd,0xe,0x13,0xb2,0x12,0xf4,0x6,0xdd,0xf9,0xc6,0xe8, +0xc1,0xee,0xd2,0x9,0x4a,0x10,0x67,0x5,0x24,0xfb,0x3f,0xea, +0xfb,0xe8,0x3a,0x5,0x38,0x15,0x63,0xa,0x6d,0xfc,0xdb,0xeb, +0x1a,0xe3,0x2c,0xf7,0xa8,0xe,0xc4,0xe,0x8,0x6,0x70,0xfc, +0x4f,0xf4,0xe9,0xff,0xf8,0x15,0x22,0x17,0x93,0x5,0xd3,0xf2, +0x14,0xe5,0xc1,0xeb,0xc5,0x6,0xf6,0x13,0x2d,0x8,0x3b,0xf6, +0x99,0xe6,0xbc,0xe6,0x65,0xfe,0xef,0x11,0x72,0x11,0x2d,0x8, +0x60,0xf9,0xb1,0xf2,0x93,0x2,0x8,0x13,0x14,0x13,0xa8,0xa, +0x95,0xf9,0x39,0xeb,0x40,0xf6,0x93,0xb,0x95,0xf,0x39,0x6, +0x0,0xf5,0x4e,0xdf,0x16,0xe0,0x2e,0xfa,0xcb,0x7,0x6d,0x1, +0xcb,0xf6,0xf2,0xe5,0x63,0xe4,0x32,0x4,0x2d,0x1c,0xbe,0x16, +0x60,0xb,0x0,0xf9,0x36,0xea,0xc7,0xfd,0x12,0x19,0xb6,0x19, +0x50,0xf,0xf0,0xfd,0x77,0xe8,0x1,0xef,0xf1,0x8,0xc8,0xe, +0xc9,0x3,0xd,0xf7,0x13,0xeb,0x6d,0xf2,0xb7,0xe,0xac,0x1f, +0xbe,0x17,0x15,0x3,0xa1,0xee,0x48,0xec,0x39,0x2,0x1c,0x17, +0x74,0x14,0x95,0x1,0x4a,0xee,0x56,0xe9,0x2,0xfd,0xcd,0x15, +0xa9,0x16,0xd7,0x2,0x6d,0xea,0x30,0xde,0xf4,0xf0,0xe1,0xe, +0xa3,0x14,0xf0,0x6,0x1e,0xf0,0x61,0xda,0xc6,0xe2,0xc9,0xfe, +0xe5,0xa,0xa5,0xb,0xd1,0x5,0x3b,0xf6,0x16,0xf7,0xbf,0xc, +0x0,0x18,0x26,0x13,0x39,0x8,0x85,0xf6,0x50,0xee,0xcf,0x2, +0x78,0x1d,0x42,0x21,0x19,0x17,0x6a,0x6,0x51,0xf2,0x50,0xf9, +0xc4,0x16,0x7c,0x1d,0x2a,0x10,0xf3,0xfe,0xc0,0xe5,0x3f,0xe5, +0xfe,0x5,0x35,0x15,0x74,0xc,0x2,0x0,0x3d,0xea,0xf,0xe3, +0x31,0xfb,0xc6,0xd,0xe1,0xb,0x80,0x0,0xfa,0xea,0x87,0xdf, +0xbb,0xf0,0x65,0x8,0xf8,0x11,0x7e,0xd,0x2b,0xfc,0xc9,0xea, +0x32,0xec,0x75,0xfa,0x2f,0x1,0xc3,0xfb,0xc7,0xec,0xd7,0xd9, +0xe2,0xd9,0x4a,0xf3,0x26,0xa,0x52,0x12,0xcb,0x10,0x4e,0x7, +0xb0,0xc,0x9a,0x27,0x4d,0x34,0xc8,0x2c,0x5d,0x21,0x42,0xa, +0x66,0xf7,0x57,0xfb,0x23,0xf8,0xad,0xe6,0xa5,0xdd,0xef,0xd2, +0x43,0xca,0xc9,0xdb,0xa,0xf3,0x17,0xfb,0x64,0x3,0x8e,0xa, +0x65,0xa,0x28,0x17,0x78,0x30,0x78,0x3a,0xa8,0x32,0x67,0x24, +0x78,0xb,0x27,0xf7,0xf9,0xfa,0x5f,0xfa,0x82,0xe5,0x38,0xd5, +0x23,0xc5,0xb4,0xbb,0x63,0xdb,0x60,0x5,0x31,0x15,0x18,0x20, +0x2,0x20,0xdb,0x15,0x5e,0x28,0x2d,0x42,0x1,0x41,0xfe,0x32, +0x65,0x13,0xf1,0xe7,0x15,0xd7,0xd8,0xdc,0x3d,0xe1,0x48,0xe2, +0xdb,0xd8,0x62,0xc5,0x35,0xc2,0x79,0xe0,0x13,0xb,0x75,0x24, +0xa6,0x27,0x30,0x16,0xd2,0x5,0x25,0x1c,0x12,0x40,0x45,0x44, +0xa5,0x30,0x36,0x5,0x3,0xd1,0x9d,0xc9,0xc8,0xdc,0x44,0xde, +0x6c,0xdb,0xb1,0xcf,0x76,0xbe,0x77,0xd0,0x95,0xf6,0x60,0x11, +0xd6,0x26,0x1a,0x2b,0x40,0x1e,0x44,0x1c,0x0,0x24,0xee,0x2a, +0x29,0x2d,0x34,0x1c,0xf2,0xf8,0x7,0xd9,0xaa,0xcf,0x20,0xdc, +0xcb,0xe9,0x4a,0xed,0x62,0xe4,0xc7,0xd4,0x8a,0xdd,0x7b,0x2, +0xe0,0x1e,0xb5,0x2a,0xe3,0x27,0x8,0x16,0x48,0x16,0x7a,0x26, +0xe8,0x20,0xe6,0x10,0x15,0xfb,0x1d,0xd7,0x31,0xcc,0xaa,0xd9, +0xad,0xdb,0x86,0xe3,0x52,0xee,0x84,0xe9,0xa4,0xf3,0x9b,0xa, +0xd7,0x16,0x8b,0x27,0xf6,0x33,0xcb,0x29,0x33,0x16,0x6d,0x3, +0x97,0xfc,0x32,0x0,0xc5,0xfa,0xf3,0xea,0xd7,0xd3,0xe0,0xcb, +0xe9,0xeb,0x70,0xd,0x75,0x16,0x53,0x16,0x7d,0x8,0x1b,0x7, +0xce,0x1d,0xfa,0x1c,0x28,0x10,0xde,0x7,0xe7,0xeb,0xc3,0xe2, +0x78,0xf1,0x4e,0xeb,0xec,0xec,0x63,0xf9,0xb8,0xf8,0xb,0x5, +0xc3,0x8,0xd4,0xfc,0xad,0x10,0xb2,0x26,0x91,0x25,0xf,0x20, +0x75,0x6,0xfe,0xf6,0xec,0xa,0x4b,0xf,0x2d,0xfa,0x9a,0xd8, +0x72,0xbf,0x65,0xdd,0xdb,0x6,0x6c,0xa,0x9f,0x6,0xe5,0xf6, +0xa7,0xf0,0xaf,0x10,0xae,0x18,0x54,0xe,0xaa,0xf,0x4a,0xf2, +0xe4,0xe6,0xe8,0x2,0xa7,0xf8,0xcc,0xed,0x90,0xfd,0xaf,0xf6, +0xc4,0xfc,0x85,0x8,0xd3,0xf7,0x5c,0x1,0x9c,0x13,0xb4,0xc, +0x37,0x8,0xf8,0xee,0x10,0xe1,0x69,0x8,0x9b,0x19,0xa6,0xe, +0x59,0x3,0xf7,0xe0,0xd7,0xe3,0xec,0x9,0x12,0x4,0x31,0xf8, +0x46,0xef,0x2b,0xdb,0xb8,0xf6,0xcc,0xf,0x9a,0xfc,0x16,0xff, +0x57,0xfc,0x1a,0xee,0xac,0x1,0xc,0x1,0x74,0xf6,0xac,0xa, +0x79,0xb,0xec,0xb,0x47,0x11,0xc,0xf5,0x75,0xf9,0xcf,0x16, +0xf4,0xe,0xa6,0x9,0x26,0xf3,0x95,0xd4,0xb3,0xf8,0x52,0xe, +0xe,0xf7,0xc8,0xf5,0xc7,0xda,0x48,0xd0,0x7d,0xc,0xb4,0x17, +0xfc,0xff,0x77,0xe,0x3c,0xe,0x28,0x19,0xbc,0x2a,0x9f,0x12, +0xef,0x18,0xb0,0x1a,0x75,0xeb,0x79,0xf7,0x24,0x6,0x2a,0xcf, +0xff,0xc2,0x8c,0xd3,0xa8,0xca,0x8d,0xcf,0xf0,0xc0,0xbc,0xbb, +0xbd,0xfc,0xe6,0x2e,0x69,0x2e,0xae,0x24,0xba,0x18,0x94,0x18, +0xd,0x16,0xbb,0x1c,0x99,0x31,0xbc,0x7,0x6a,0xe9,0x13,0x1e, +0xb7,0x10,0x24,0xdc,0x15,0xeb,0x25,0xe3,0xe2,0xe5,0x39,0x9, +0x1c,0xe5,0xf1,0xe2,0x6b,0x1f,0x86,0x24,0xd9,0x38,0x4d,0x50, +0xe8,0x2c,0x74,0x2f,0x3e,0x3e,0x9f,0x3a,0xcd,0x3c,0x12,0xf1, +0x59,0xb1,0xdc,0xdf,0x3e,0xfd,0xcf,0x3,0x2a,0xfa,0x4b,0xba, +0x54,0xce,0xcb,0x1f,0x23,0x28,0x1b,0x2a,0xcf,0x1c,0xd2,0xf0, +0xb,0x12,0xa6,0x35,0xab,0x15,0x4,0x9,0x89,0xf4,0xa9,0xcf, +0x28,0xde,0xf5,0xe9,0x10,0xe3,0x78,0xf5,0x46,0xfb,0x40,0xfd, +0x49,0x7,0x98,0xf1,0xee,0xe8,0x95,0xf1,0x57,0xe4,0x1a,0xeb, +0x7e,0xd9,0x53,0x9e,0x2,0xa3,0x67,0xbd,0xdc,0xd3,0x95,0x16, +0xd4,0x12,0xf2,0xe6,0x37,0x22,0x7d,0x63,0xb9,0x6a,0xec,0x44, +0x8c,0xec,0x3c,0xdf,0x5f,0x9,0x1d,0xf8,0x41,0xfe,0x56,0x7, +0x3d,0xeb,0x16,0xb,0x8c,0x18,0x9f,0xfe,0xd4,0x28,0xff,0x2e, +0x35,0x1,0xca,0xd,0x82,0x8,0xb9,0xe9,0xd,0xf0,0xb5,0xdc, +0xcc,0xc2,0x5,0xcc,0x9f,0xc7,0x30,0xc6,0x3c,0xde,0xa1,0x8, +0xe5,0x3f,0xb2,0x3d,0x93,0x16,0x77,0x2c,0x5b,0x4c,0xd3,0x4d, +0x41,0x49,0xc8,0x13,0x85,0xe3,0x5,0xf0,0xbd,0xde,0xf6,0xbd, +0xf7,0xb9,0x2c,0xb4,0xbf,0xe3,0x91,0x21,0xb1,0x19,0x7f,0x1e, +0x8d,0x28,0xbf,0x1b,0xbe,0x3d,0xe5,0x40,0xbf,0x16,0xe4,0x16, +0xe7,0xff,0xea,0xeb,0xd0,0xc,0x7b,0x3,0xb6,0xf9,0x23,0x8, +0xad,0xf6,0xf5,0x14,0x46,0x37,0xac,0x12,0x60,0x8,0x5d,0x0, +0x74,0xef,0xd2,0xb,0xc,0xed,0xc9,0xc2,0x28,0xf8,0xfb,0x6, +0x5d,0xe6,0x9c,0xe4,0x5c,0xd2,0xac,0xd9,0x9d,0xf3,0xd6,0xdf, +0xaa,0xeb,0xb3,0xfa,0x29,0xd8,0xa1,0xe0,0x63,0xef,0x59,0xe0, +0xa9,0xf2,0x73,0xee,0xb5,0xe7,0xa4,0x13,0x87,0xd,0xb3,0xfd, +0x59,0x24,0x48,0x26,0xf5,0x2f,0x43,0x50,0xeb,0x24,0xe6,0xfc, +0xc7,0xff,0x36,0xf3,0x2b,0xf9,0x53,0xe5,0x9a,0xb4,0x17,0xcf, +0x83,0xf5,0xfa,0xfd,0x40,0x16,0x46,0xc,0xae,0x7,0xf6,0x23, +0x98,0x9,0x52,0xf6,0xb6,0x3,0x2e,0xeb,0x90,0xf1,0x66,0xfd, +0x86,0xcf,0x86,0xd0,0xfe,0xe7,0x39,0xdf,0x4e,0xfa,0x1b,0x5, +0xb4,0xf5,0xbc,0x8,0xc8,0xff,0x4c,0xfc,0xb8,0x1e,0x46,0xe, +0xb6,0x4,0xf5,0x13,0xf9,0xfc,0x75,0x11,0xa1,0x20,0x15,0xe7, +0x38,0xec,0x6a,0xd,0xc5,0x6,0x52,0x24,0x53,0x23,0x1e,0xb, +0x8a,0x33,0xc8,0x32,0xc0,0xb,0xa,0x1,0x88,0xdd,0x82,0xeb, +0x17,0x24,0xb5,0xd,0x29,0x0,0x6f,0xf,0xe2,0xfe,0x1,0x1c, +0x6,0x2a,0xb3,0xf6,0xb3,0xf4,0xa1,0xf9,0x3a,0xea,0x5c,0x3, +0x6d,0xf8,0xba,0xde,0x6c,0xf3,0x2,0xeb,0x61,0xee,0x84,0x6, +0xd4,0xd9,0x33,0xc4,0x6c,0xe7,0x6f,0xf2,0x18,0x6,0xe1,0x0, +0xa1,0xd5,0x12,0xea,0x50,0x8,0xa3,0xfe,0x23,0xf8,0xd2,0xd2, +0x4f,0xce,0xcd,0x12,0x8f,0x22,0xf2,0x15,0xab,0x22,0x17,0x15, +0x5,0x29,0x3d,0x52,0xde,0x3e,0x8,0x34,0xb2,0x32,0x6,0x1b, +0xf2,0x22,0xc6,0x16,0xce,0xef,0x36,0xef,0x7,0xe3,0xcb,0xe5, +0x7e,0xc,0x2d,0xf3,0x22,0xd7,0x4d,0xef,0x60,0xef,0xee,0xff, +0x71,0x11,0x90,0xeb,0x93,0xf4,0xeb,0x1b,0x24,0x15,0x4b,0x11, +0xf6,0xf7,0x29,0xe2,0x27,0x11,0xc9,0x18,0x6,0xf4,0xbf,0xed, +0xa0,0xd7,0x63,0xe7,0xca,0x21,0xbc,0xe,0x2c,0xf0,0x75,0xef, +0xc0,0xd3,0xc6,0xe0,0x40,0xf7,0xc9,0xd8,0x5d,0xda,0x12,0xe7, +0xa5,0xea,0xb8,0x16,0x69,0x1c,0x78,0x7,0x2b,0x21,0xf,0x2b, +0x27,0x39,0x51,0x4e,0x7b,0x22,0x64,0x15,0x99,0x35,0x30,0x20, +0x5,0xc,0xfb,0xf1,0x7a,0xbe,0xe5,0xd6,0xbb,0xf8,0x19,0xdc, +0xdd,0xcd,0xba,0xb9,0xa,0xb0,0x6c,0xe0,0xb5,0xed,0xad,0xde, +0x64,0xe7,0xf5,0xd9,0xd,0xe0,0x13,0xfb,0xa8,0xea,0x37,0xe8, +0x45,0xf6,0x42,0xf8,0xa4,0x1d,0x5e,0x2c,0x42,0x11,0xb7,0x1a, +0xd4,0x1f,0x18,0x1a,0x4c,0x29,0x34,0xe,0x26,0xf5,0x4e,0x10, +0xca,0x12,0x5,0xc,0x53,0xc,0x2,0xf0,0xd4,0xf3,0x11,0xf, +0x5a,0xb,0x4b,0x12,0x80,0xf,0xdb,0xf8,0x58,0x4,0x94,0x4, +0x76,0xf3,0x65,0xff,0x48,0xfe,0x3b,0xff,0xe1,0x15,0xb6,0xc, +0x87,0x8,0x80,0x12,0xdf,0xfc,0xc6,0xfd,0x4c,0xb,0x68,0xfa, +0x5a,0x6,0xb6,0x17,0x53,0xd,0x65,0x13,0x68,0x2,0xa3,0xe6, +0x35,0xfd,0x19,0x1,0x28,0xeb,0x82,0xe9,0x36,0xd9,0xbe,0xdf, +0xff,0x3,0xd0,0xfc,0x23,0xf6,0x47,0xfd,0xaf,0xec,0x41,0xfd, +0x27,0x14,0xc6,0x3,0x3c,0x7,0xed,0x6,0x2f,0xf8,0xa7,0xb, +0xd1,0xd,0x92,0x2,0xb1,0xe,0x65,0xfb,0xc5,0xec,0x6c,0x0, +0xd4,0xf9,0xcc,0xfe,0xa1,0x12,0xca,0x6,0x95,0xf,0x99,0x17, +0xed,0x2,0xbf,0x15,0x57,0x24,0x13,0x11,0x1d,0x15,0xef,0x8, +0x2a,0xf4,0x75,0x1,0x51,0xf6,0xa9,0xe4,0x97,0xe5,0xa0,0xcd, +0xfa,0xcb,0x64,0xdc,0x16,0xc9,0x35,0xca,0xe8,0xd7,0x2e,0xd8, +0xb6,0xfc,0x5,0x14,0x1c,0xe,0x49,0x25,0xad,0x29,0xc4,0x23, +0xea,0x3c,0xb8,0x32,0x3c,0x1d,0x91,0x22,0x32,0xd,0x8d,0x0, +0x50,0x5,0xfa,0xee,0x36,0xf6,0x6,0xd,0x92,0xfc,0xa6,0xf6, +0xb1,0xf5,0x5d,0xf4,0x8a,0x19,0x1b,0x24,0x8e,0x6,0xa2,0xfd, +0x71,0xf7,0x9f,0x6,0xdf,0x28,0x2b,0x14,0x65,0xf8,0xd7,0xfe, +0xf,0xfc,0x88,0xb,0x0,0x15,0xfb,0xee,0x7,0xe8,0x15,0xfc, +0x8d,0xf9,0xd7,0x1,0xa,0xfb,0xec,0xe5,0x8d,0xf9,0x2a,0x5, +0xf4,0xfa,0xfe,0xfb,0x5a,0xeb,0x51,0xed,0xcc,0xf,0x25,0xe, +0x74,0x0,0x1d,0xf5,0xb9,0xdb,0x6b,0xee,0x40,0x9,0x43,0xf3, +0xbf,0xe4,0xe5,0xda,0x52,0xdb,0xa9,0x8,0xdc,0x10,0x89,0xf2, +0x26,0xf7,0x50,0xfd,0xb4,0xf,0x98,0x2c,0x9e,0xf,0xe2,0xf8, +0x4c,0xb,0xd3,0xb,0xa2,0x16,0x9a,0x16,0x56,0xf1,0x25,0xf5, +0x75,0x6,0x40,0xfc,0x52,0xfd,0xa1,0xe8,0x62,0xd8,0xc2,0xfb, +0xae,0x7,0x3,0xff,0x36,0xfc,0x5a,0xe2,0xd3,0xf0,0x5a,0x17, +0x5c,0x3,0x77,0xec,0x27,0xe0,0x7b,0xd7,0xd8,0x2,0x9f,0x12, +0xe4,0xe8,0xce,0xdc,0xbf,0xdf,0xaf,0xf7,0xb,0x23,0x44,0x8, +0xb2,0xdf,0x69,0xeb,0x56,0xf5,0xfc,0xe,0x43,0x1f,0x7,0xfb, +0x7a,0xfa,0xb4,0x18,0x32,0x1f,0x66,0x29,0x72,0x13,0xfb,0xf3, +0x78,0x10,0xc3,0x22,0xb5,0x19,0x64,0x13,0x55,0xef,0x42,0xef, +0xb8,0x21,0x99,0x21,0x52,0x3,0x74,0xe4,0x98,0xca,0x72,0xf7, +0x54,0x28,0x1e,0xf,0x14,0xf2,0xd2,0xe3,0x97,0xf0,0xbd,0x2c, +0x0,0x39,0xcf,0x10,0x63,0x3,0x36,0x0,0x22,0x11,0x6d,0x2b, +0xc8,0xc,0x1,0xed,0x6f,0xf8,0x3c,0x3,0x1,0x11,0xd2,0x9, +0x74,0xe6,0x76,0xec,0xf3,0x5,0xb6,0x8,0xc2,0x5,0x20,0xec, +0xdb,0xe2,0x20,0x12,0x7e,0x2f,0x31,0x28,0x2b,0x16,0x89,0xf8, +0x8e,0xa,0x99,0x3a,0xcf,0x2e,0x81,0x9,0xce,0xed,0x69,0xdc, +0x9e,0xfd,0xdc,0x16,0xf1,0xf1,0x42,0xd2,0x26,0xc9,0xce,0xd9, +0xc3,0xd,0x28,0x17,0xbb,0xf9,0xe7,0xfb,0x36,0x7,0xa2,0x18, +0x72,0x28,0x6d,0xa,0xf2,0xf5,0x16,0x3,0xd9,0xfe,0xb1,0xfa, +0x59,0xea,0xb6,0xc7,0x60,0xdd,0x9d,0x6,0x18,0x0,0x82,0xee, +0xdf,0xd7,0xda,0xd5,0xad,0x9,0x4,0x1e,0x1a,0xfb,0x3a,0xe1, +0xf9,0xd3,0xb8,0xe9,0x25,0x1b,0x27,0x15,0x19,0xe7,0x83,0xcf, +0x5,0xd8,0x19,0x3,0x12,0x1b,0x60,0xf6,0xa0,0xd1,0x31,0xcf, +0xa2,0xe4,0xba,0x3,0x4b,0xff,0x4a,0xe5,0xa5,0xee,0x47,0xb, +0xeb,0x1b,0xb5,0x15,0xfe,0xf8,0xbb,0xf2,0xb3,0x11,0x46,0x28, +0x17,0x1e,0x70,0xfe,0xdd,0xf1,0xa,0x11,0xcf,0x2f,0x88,0x27, +0xf4,0x0,0xd0,0xdd,0xdb,0xec,0x3d,0x1a,0x48,0x25,0x30,0xe, +0xd1,0xef,0x7,0xe8,0x55,0xf,0x33,0x2d,0x1,0x18,0xcd,0xfd, +0xce,0xf2,0x4a,0xf8,0x30,0xb,0x48,0x0,0x42,0xe7,0xc4,0xec, +0xac,0xf9,0x91,0x4,0x3d,0x8,0xce,0xf4,0x10,0xfa,0xea,0x1a, +0x4,0x1d,0x96,0xa,0x92,0xf3,0x40,0xe7,0xd1,0xb,0xba,0x2a, +0xbd,0x15,0xcb,0xfc,0xd7,0xe7,0x95,0xe5,0x19,0xc,0xe5,0x15, +0xcb,0xf7,0xf1,0xe8,0xae,0xe2,0x45,0xf3,0xaa,0x16,0x61,0x14, +0xda,0x7,0xf8,0x8,0x80,0xfc,0x54,0xfd,0xf0,0x4,0x1d,0xfa, +0x45,0x0,0xb0,0x8,0x17,0xff,0x51,0x1,0xef,0x2,0xd9,0x9, +0x7e,0x23,0x41,0x20,0xd2,0x7,0x29,0xfa,0x5d,0xec,0x44,0xf9, +0x2,0x17,0xc5,0xf,0xa7,0xf8,0xda,0xe8,0xc7,0xe5,0x86,0x4, +0xdf,0x1d,0x9a,0x14,0x8f,0x9,0x69,0x5,0xe6,0xf,0x48,0x27, +0x87,0x28,0xc4,0x1d,0x85,0x16,0x5f,0x8,0xf7,0x4,0x27,0x7, +0x48,0xff,0x89,0xff,0x2b,0xfc,0xd4,0xed,0x38,0xee,0x9,0xf6, +0xc3,0xff,0xde,0xf,0x32,0xf,0x36,0x0,0xfc,0xf7,0x66,0xf8, +0xb9,0x4,0xc6,0xf,0x55,0x8,0x87,0xf9,0xe9,0xee,0x4c,0xf3, +0x69,0x8,0x91,0x14,0xb7,0xe,0xbd,0x2,0xf1,0xf9,0xd2,0x0, +0x91,0xc,0x12,0x9,0x54,0x2,0x4e,0x1,0x31,0xff,0x61,0xfd, +0x80,0xf9,0x85,0xf4,0x27,0xf7,0x21,0xfa,0x7d,0xf3,0x90,0xe9, +0xfc,0xe4,0xe2,0xe7,0x73,0xf0,0x3b,0xf7,0x34,0xf3,0xf4,0xe8, +0x54,0xe6,0xfc,0xee,0x19,0xff,0x84,0xa,0xa6,0x0,0x4a,0xec, +0x64,0xe8,0xd2,0xf7,0xa3,0x7,0xb5,0x2,0x90,0xea,0x9f,0xda, +0x24,0xe0,0x9b,0xee,0x88,0xf2,0xa9,0xe5,0xb8,0xdd,0x58,0xe7, +0x47,0xf4,0x79,0xff,0xbf,0x4,0x92,0x1,0x27,0x5,0x21,0x8, +0x53,0xfd,0x6e,0xf6,0x4d,0xf6,0x25,0xf5,0x6e,0xf8,0x29,0xf4, +0xb5,0xe3,0xdb,0xda,0xf5,0xde,0x93,0xec,0x69,0xfc,0x26,0xfe, +0x35,0xf4,0x45,0xef,0xbd,0xf7,0x3c,0x8,0x54,0xd,0xd4,0xff, +0x9c,0xef,0xef,0xec,0x87,0xfa,0xe1,0x5,0xc1,0xff,0x1c,0xf6, +0x69,0xf5,0x14,0xfc,0x29,0x7,0x17,0xd,0x6d,0xd,0xa5,0x10, +0x91,0x12,0x32,0x10,0x41,0xb,0xcd,0x3,0xa5,0x0,0xaf,0x2, +0xb2,0x2,0x24,0xfd,0x31,0xf1,0x85,0xe8,0x90,0xeb,0xc9,0xf2, +0x98,0xf5,0x6d,0xec,0xf8,0xdd,0xc5,0xe1,0xed,0xf2,0x79,0xfa, +0xa9,0xf3,0x77,0xe2,0x44,0xdc,0x9a,0xef,0x12,0x1,0x20,0x1, +0x5c,0xfb,0xfb,0xf4,0x7e,0xfa,0x63,0xb,0x69,0x10,0x79,0x9, +0x24,0x3,0xd5,0x2,0xe2,0xa,0xd2,0xc,0xa2,0x3,0x81,0xfe, +0xcd,0xfe,0xcd,0x2,0x64,0x6,0xb6,0xfd,0xdc,0xf5,0xe5,0xfa, +0xfe,0xff,0xa,0x3,0x7d,0xff,0x57,0xef,0xa9,0xeb,0x96,0xfd, +0x5d,0xb,0x3b,0xb,0x18,0x2,0xc5,0xf9,0xc6,0x3,0x26,0x18, +0xe8,0x1d,0x6b,0x15,0x41,0xc,0x72,0x8,0x9b,0xa,0x1e,0xb, +0xc2,0x5,0x83,0x1,0x30,0xff,0x59,0xfc,0x7e,0xfc,0x8f,0xfd, +0x8d,0xfe,0x4e,0x2,0x20,0x0,0x15,0xf6,0x1d,0xf3,0xf,0xfb, +0x69,0x6,0xd8,0xd,0x38,0xa,0x40,0x1,0x8a,0xfd,0xa,0xff, +0xdd,0x3,0x84,0x6,0xb,0x2,0x6a,0xfd,0x53,0xfc,0x18,0xfd, +0xb2,0xff,0x4d,0xff,0xb7,0xfc,0x3a,0xfc,0x16,0xfa,0x54,0xf9, +0x9c,0xfe,0x65,0x4,0xa6,0x7,0xc2,0x7,0x52,0x7,0x3e,0xa, +0x9,0xb,0x2f,0xb,0x46,0xd,0xa7,0x5,0x4b,0xfa,0x48,0xf9, +0xa2,0xfa,0x78,0xfc,0xd,0x1,0x8,0x0,0x48,0xfe,0x8,0xff, +0xb3,0xfb,0x61,0xfd,0x8d,0x7,0xd6,0xd,0x96,0xc,0x99,0x5, +0xc8,0xff,0x6e,0x2,0x3c,0x4,0x7c,0x0,0x6a,0xfe,0x94,0xfc, +0x2b,0xfd,0x57,0x4,0xaf,0x6,0xc7,0x1,0x77,0x1,0xd7,0x3, +0xc0,0x2,0xe2,0x1,0x3e,0x4,0xe8,0xb,0x4f,0x14,0x78,0x11, +0x8a,0x7,0x70,0x1,0x3c,0xfd,0x9f,0xfd,0x1e,0x3,0x53,0x2, +0x80,0xfd,0xf8,0xfa,0xb4,0xf9,0xc9,0xff,0x45,0x6,0x7d,0x2, +0x7b,0x1,0xcc,0x4,0x42,0x5,0x63,0xc,0x7e,0x12,0xbf,0xc, +0x54,0x9,0x17,0xc,0x8c,0xf,0x35,0x13,0x37,0x12,0xff,0x11, +0xe0,0x16,0xec,0x17,0xb9,0x14,0x18,0xf,0x47,0xd,0xbc,0x16, +0x7,0x19,0x82,0xe,0x2a,0xa,0xb3,0x8,0x4d,0xa,0x53,0x14, +0xbc,0x10,0xa6,0xff,0xe7,0xf6,0x53,0xf6,0x24,0x0,0xd7,0xc, +0xf4,0x5,0x6e,0xf8,0xd5,0xf7,0xf0,0xfd,0x3a,0x8,0x3e,0xe, +0x9,0x7,0xa3,0x3,0xf7,0xb,0xc7,0x10,0x68,0xc,0x7,0x5, +0x23,0x2,0x90,0x7,0x9f,0xe,0xa6,0xf,0x9d,0xb,0xf8,0x6, +0xa0,0x6,0x16,0xa,0xbb,0x7,0xe7,0xff,0x1f,0xff,0x17,0x3, +0x2d,0x5,0xbb,0x9,0x59,0xa,0x94,0x5,0x44,0x9,0x93,0xe, +0xfc,0xe,0x30,0x15,0xe7,0x18,0xc5,0x15,0xf6,0x16,0x3c,0x17, +0x75,0x18,0x85,0x1e,0xec,0x1b,0x54,0x19,0xc7,0x1d,0xf0,0x16, +0x72,0xc,0x56,0xa,0x28,0x6,0xb4,0x5,0x81,0xc,0x0,0xe, +0x56,0xc,0xa3,0xb,0x3e,0xb,0x12,0xf,0xd9,0x11,0x44,0xd, +0xed,0x6,0x84,0x5,0x29,0x9,0x7e,0xc,0x66,0xb,0x99,0x4, +0xe9,0xfb,0x2d,0xfb,0xf9,0xff,0xf2,0x0,0xb9,0xfe,0x7c,0xf9, +0x20,0xf7,0xc2,0xfc,0x60,0xfe,0xb3,0xfd,0x3,0x2,0xf9,0x1, +0xf3,0x3,0xdd,0x9,0x57,0x6,0x49,0x6,0x8e,0xc,0x50,0xa, +0xdb,0xa,0x9e,0xc,0xd8,0x3,0x92,0xff,0xf2,0x1,0xcb,0x3, +0x3c,0x6,0xc6,0x0,0x35,0xfb,0x58,0x0,0x43,0x4,0xe4,0x6, +0x67,0x8,0xb3,0x3,0xc4,0x5,0x4c,0xb,0x0,0xa,0x10,0xa, +0x8b,0x5,0x3e,0xfc,0x76,0xfc,0x2,0xfd,0x69,0xf7,0x73,0xf3, +0x35,0xf1,0x3c,0xf3,0x25,0xf7,0xca,0xf8,0x96,0xfc,0xa7,0xfc, +0xa1,0xf8,0xd,0xf9,0x28,0xfa,0x59,0xfd,0xc5,0xff,0x8d,0xf9, +0x6b,0xf9,0xd1,0xfe,0xfc,0xf9,0xaf,0xf5,0xb7,0xf5,0x74,0xf6, +0x62,0xff,0xf6,0x3,0x97,0xfe,0xb1,0xfd,0x7c,0xfd,0xf6,0xfe, +0xc,0x8,0xe6,0x9,0x42,0x2,0x46,0xfc,0xa3,0xfa,0x55,0xff, +0xcf,0x3,0x99,0x1,0x1c,0xfd,0x8e,0xf7,0x8a,0xf6,0x75,0xfc, +0xb2,0xfd,0x70,0xf9,0x0,0xf5,0x1c,0xf2,0xf4,0xf5,0xf1,0xf9, +0xf2,0xf8,0xce,0xfb,0x7a,0xfe,0x14,0xfc,0x12,0xfb,0xbf,0xf8, +0xd5,0xf5,0x7,0xfa,0x4,0x0,0x5b,0xfe,0xe,0xf5,0x15,0xee, +0x7b,0xef,0x8c,0xf1,0xae,0xf2,0x20,0xf4,0x8,0xee,0x2a,0xe7, +0xb4,0xea,0xf2,0xf0,0xf2,0xf3,0x53,0xf3,0x81,0xee,0x99,0xed, +0xf2,0xf3,0xaf,0xfa,0x5,0xfd,0xe,0xfb,0x4,0xfd,0x1c,0x7, +0xa1,0xe,0x35,0xc,0x55,0x2,0x45,0xf9,0xdc,0xfb,0x40,0x4, +0x2b,0x2,0xd4,0xf7,0xa4,0xf3,0x7a,0xf9,0x32,0xff,0x70,0xfc, +0xfb,0xf6,0x1c,0xf6,0xfc,0xfa,0xf4,0x3,0x81,0x6,0xe9,0xfd, +0xe4,0xf8,0x2b,0xff,0x52,0x7,0xf5,0x9,0xbd,0x5,0x85,0xfe, +0x4f,0xfb,0x48,0xfc,0x3,0xfc,0xb7,0xf6,0x17,0xef,0x68,0xee, +0x8,0xf6,0x89,0xfb,0x62,0xfa,0xfe,0xf6,0xee,0xf5,0x9f,0xfb, +0x40,0x6,0x6,0xb,0xf9,0x5,0x62,0x0,0x99,0x2,0x43,0x8, +0xb9,0x5,0x4f,0xfa,0xa5,0xf2,0x88,0xf4,0xb3,0xf9,0x26,0xfb, +0x80,0xf6,0xf7,0xf0,0x9a,0xf1,0xbe,0xf7,0xc,0xfe,0x91,0xfe, +0x4a,0xfa,0xf8,0xfc,0x4,0x9,0x6a,0x13,0x3a,0x15,0x8f,0xc, +0x1d,0x1,0x5,0x0,0x2d,0x3,0x2b,0xfe,0xae,0xf4,0xd8,0xed, +0x88,0xee,0xa8,0xf4,0x5b,0xf4,0x3c,0xee,0x71,0xeb,0x9c,0xeb, +0x0,0xef,0xef,0xf1,0xf9,0xe9,0x6,0xde,0xea,0xde,0x29,0xeb, +0xfa,0xf2,0x8,0xf0,0x85,0xed,0xcc,0xf3,0x3d,0xfd,0xeb,0x3, +0x10,0x3,0xf5,0xf9,0x16,0xf5,0xe4,0xfa,0x3f,0x1,0xa4,0x1, +0xdc,0xfe,0xe3,0xfc,0x78,0xfe,0xe9,0x1,0x5,0x1,0x97,0xf9, +0xab,0xf3,0x20,0xf6,0x35,0xfb,0x31,0xfc,0x6f,0xf8,0xe1,0xf0, +0x54,0xec,0x6b,0xf1,0x46,0xfa,0xea,0xfb,0xd4,0xf4,0xed,0xef, +0x91,0xf4,0x63,0xfb,0x19,0xfd,0xd8,0xf8,0x4,0xf1,0x4a,0xef, +0x14,0xf6,0x73,0xf9,0x82,0xf4,0x74,0xed,0x4a,0xea,0x7,0xec, +0xfb,0xed,0xa8,0xec,0xda,0xe8,0xb9,0xe8,0x10,0xf2,0x7a,0xf9, +0xdf,0xf3,0x5e,0xeb,0xfd,0xe8,0x3b,0xef,0xa4,0xfb,0x1c,0xfe, +0xac,0xf5,0xd9,0xf2,0x1b,0xf8,0xbe,0x2,0xd0,0x9,0xe5,0xff, +0xf,0xf2,0x7c,0xf0,0xca,0xf6,0xdf,0xfe,0x34,0xfc,0x96,0xed, +0x89,0xea,0xc2,0xf5,0x60,0xfe,0x26,0xff,0xb6,0xf8,0x11,0xf5, +0x2c,0xfc,0x3,0x5,0x29,0x9,0x80,0x5,0x5d,0xfe,0xae,0x3, +0x36,0xf,0xf8,0xf,0x86,0x8,0xd0,0xfe,0x67,0xfc,0x7e,0x5, +0x84,0x8,0xec,0xff,0x48,0xf7,0x7f,0xf5,0x11,0xff,0xf9,0x7, +0x3a,0x1,0xbf,0xf5,0x8e,0xf1,0xb5,0xf7,0xe7,0x4,0xc3,0x7, +0xc,0xff,0x48,0xfa,0x64,0xfd,0x40,0x8,0x1f,0xe,0xc6,0x1, +0xf0,0xf6,0x81,0xfa,0xeb,0x0,0x8f,0x6,0xc7,0x4,0xf2,0xfb, +0x87,0xfe,0x82,0x8,0xf0,0xa,0x51,0x8,0x7,0x3,0x9b,0x1, +0x3b,0xa,0xe3,0xf,0x95,0x9,0x88,0xfd,0x4d,0xf5,0x4d,0xf9, +0x33,0x2,0xd4,0x0,0x21,0xf7,0x7b,0xf0,0xc2,0xf3,0x18,0xfe, +0xbe,0x2,0x3b,0xfd,0x3b,0xf8,0x25,0xfd,0x22,0x9,0x5f,0x10, +0x80,0xb,0x79,0x0,0x1,0xfc,0xa4,0x2,0xc6,0x8,0x15,0x5, +0xc8,0xff,0xc2,0x0,0x1a,0x6,0x92,0xa,0x2b,0x7,0xad,0xfe, +0xf0,0xfb,0xd0,0xff,0x97,0x5,0x3f,0x7,0xa2,0xff,0xe5,0xf9, +0x54,0x0,0xfd,0x6,0x5b,0x4,0x55,0xfd,0xcf,0xf7,0x9e,0xf9, +0xb9,0xff,0x93,0xfd,0xf2,0xf4,0xb3,0xf1,0x3f,0xf5,0xf2,0xfc, +0xf0,0x3,0x43,0x1,0xa7,0xf9,0x8d,0xfa,0x3d,0x2,0xb5,0x6, +0x6c,0x4,0x9d,0xfe,0xb9,0xfc,0xf1,0xff,0x39,0x3,0x73,0x5, +0x50,0x4,0x5c,0x0,0x84,0x1,0x8b,0x5,0x3b,0x6,0xd9,0x6, +0x67,0x7,0x5d,0x8,0x7b,0xb,0x44,0x8,0xdf,0xff,0xd9,0xfd, +0x91,0x0,0x44,0x4,0xfc,0x5,0x54,0xff,0xd6,0xf8,0x1,0xfc, +0x41,0x2,0xd8,0x6,0x59,0x6,0xb6,0xff,0xb5,0xfe,0x97,0x6, +0x32,0xc,0x6d,0x9,0xae,0xff,0x1,0xf8,0xa3,0xfa,0x76,0x1, +0xa9,0x3,0x77,0xff,0xc2,0xf9,0xf5,0xfb,0xab,0x3,0x38,0x6, +0x2d,0x4,0x47,0x2,0x9c,0x3,0xbe,0x9,0xff,0xb,0x22,0x5, +0x3c,0xff,0x28,0x2,0xe7,0xa,0x56,0x10,0x96,0xb,0x6d,0x3, +0x67,0x2,0x2d,0x8,0x3f,0xe,0x5b,0xd,0x19,0x5,0x1e,0x1, +0xb5,0x8,0x3b,0x14,0x34,0x18,0xfb,0x10,0xd3,0x7,0xb8,0x8, +0x4a,0x10,0xe7,0x11,0xbd,0xa,0xee,0x2,0xe6,0x2,0x36,0xa, +0xaf,0xf,0xd3,0xd,0x52,0x9,0x50,0x9,0x39,0xf,0x85,0x14, +0xb4,0x11,0x6,0xa,0xe2,0x7,0x67,0xd,0x7c,0x11,0xd9,0xb, +0x2f,0x0,0x5c,0xfa,0x64,0xff,0x64,0x8,0xb9,0xa,0x6b,0x2, +0x1f,0xf9,0x26,0xfc,0x3a,0x9,0x2f,0x12,0x96,0x10,0x9e,0xa, +0xe2,0x8,0x9b,0xc,0xa4,0xf,0x33,0xc,0x42,0x3,0x22,0xfd, +0xfa,0xff,0xfb,0x5,0x9a,0x5,0x33,0xff,0xb6,0xfb,0x20,0x1, +0xb6,0x9,0x6f,0xb,0x88,0x7,0x77,0x7,0x74,0xe,0x65,0x16, +0xa8,0x16,0xb6,0xd,0x83,0x4,0x7,0x5,0xe7,0xe,0x41,0x16, +0xa0,0x10,0x4d,0x3,0xa6,0xfc,0xbd,0x1,0xfc,0x9,0x8d,0xa, +0x6e,0x3,0x83,0xfe,0x8d,0x2,0x30,0xc,0xad,0x11,0xfc,0xd, +0x77,0x8,0x89,0x9,0xd9,0xd,0x61,0xd,0x80,0x6,0x90,0xff, +0x79,0x0,0xd8,0x7,0x37,0xb,0x9b,0x5,0xb,0xff,0x7e,0x1, +0xe6,0xa,0xa8,0x10,0xf7,0xc,0xf0,0x3,0x4b,0x0,0x11,0x8, +0x2e,0x12,0x57,0x11,0xe0,0x5,0x3b,0xfc,0x1c,0xfe,0x86,0x6, +0x2a,0x8,0x75,0x0,0xb3,0xf8,0x49,0xf8,0x22,0xff,0x99,0x5, +0xcd,0x3,0xa4,0xfd,0xba,0xfc,0xfa,0x0,0xa7,0x2,0xbd,0xfe, +0xd4,0xfa,0xd7,0xfd,0x9f,0x6,0x1c,0xc,0x46,0x8,0x9d,0x0, +0x79,0xff,0xff,0x5,0x1f,0xb,0x14,0x7,0x4c,0xfc,0xc,0xf6, +0xca,0xfb,0xb8,0x6,0x2d,0xa,0x3c,0x2,0xb3,0xf6,0x10,0xf4, +0x22,0xfd,0xc9,0x4,0x65,0x0,0xcc,0xf6,0x3b,0xf3,0xd4,0xf7, +0xf5,0xfe,0x14,0x0,0xc0,0xf9,0x51,0xf5,0x2,0xf8,0xb0,0xfb, +0x20,0xfa,0xce,0xf4,0x26,0xf3,0x3d,0xf9,0x1d,0xff,0x5f,0xfb, +0xa9,0xf2,0xfa,0xf0,0x2c,0xfa,0xa4,0x6,0xb7,0xa,0xa7,0x2, +0xaf,0xf8,0x35,0xfa,0x2,0x6,0xd,0xd,0x73,0x6,0xfa,0xf8, +0xbd,0xf1,0x6b,0xf7,0x40,0x2,0x16,0x4,0x16,0xfc,0x4c,0xf6, +0x93,0xf9,0x6a,0x1,0xe7,0x4,0xc6,0x0,0xc8,0xfb,0xed,0xfc, +0xae,0x1,0xb3,0x2,0xe0,0xfd,0xcd,0xf9,0x60,0xfd,0x4f,0x4, +0x78,0x3,0xb3,0xf8,0xd9,0xee,0xb1,0xf0,0xfd,0xfb,0x29,0x4, +0x84,0x0,0x72,0xf6,0xfd,0xf3,0xf3,0xfd,0x32,0x9,0xc6,0x9, +0xe9,0x0,0x1f,0xfa,0x36,0xfe,0x28,0x8,0xee,0xa,0x6c,0x2, +0xfd,0xf6,0xae,0xf2,0xc6,0xf6,0x63,0xfa,0xb3,0xf6,0x1d,0xf1, +0x69,0xf2,0x6a,0xfa,0x7,0x1,0x4e,0x0,0x7d,0xfc,0x69,0xfe, +0x1b,0x6,0xd7,0xa,0xba,0x7,0xad,0x1,0x7b,0x1,0x76,0x9, +0xc9,0x10,0xce,0xc,0xd3,0xff,0x14,0xf7,0x5e,0xf9,0x85,0x0, +0x76,0x2,0x25,0xfa,0xbf,0xed,0xde,0xea,0xa3,0xf3,0x92,0xfa, +0xd3,0xf7,0x21,0xf2,0xec,0xf1,0xa2,0xf8,0x9f,0x0,0x9,0x2, +0xcb,0xfc,0x51,0xf9,0x9,0xfc,0x9b,0xff,0x41,0xfe,0x4c,0xfa, +0xd1,0xf9,0xbe,0xfd,0xbb,0x0,0xdb,0xfd,0xf6,0xf6,0x4f,0xf3, +0x63,0xf7,0x9,0xff,0xc2,0x0,0x46,0xf9,0x26,0xf2,0x94,0xf5, +0xbf,0xff,0x5a,0x5,0x69,0x1,0x21,0xf8,0xf2,0xf2,0x31,0xf7, +0xdc,0xfe,0x55,0x0,0xe6,0xf9,0x4a,0xf2,0x66,0xf1,0x56,0xf7, +0x4,0xfc,0x1a,0xfb,0x60,0xf9,0x6c,0xfa,0x80,0xfa,0x70,0xf6, +0x5d,0xf1,0x20,0xf0,0x6d,0xf4,0xf7,0xfa,0x7f,0xfc,0xd3,0xf6, +0xf0,0xf1,0x4a,0xf5,0x51,0xfe,0xb,0x4,0xc2,0xff,0x78,0xf5, +0x19,0xf1,0x9d,0xf6,0x38,0xfe,0x58,0x0,0x26,0xfc,0xf2,0xf6, +0x1c,0xf8,0xbc,0xff,0x86,0x5,0x9b,0x4,0x81,0x1,0x1a,0x2, +0x58,0x5,0x21,0x6,0xd,0x3,0xc1,0xff,0xdc,0xff,0x82,0x2, +0x62,0x3,0xd9,0xff,0x7,0xfa,0xe6,0xf6,0x19,0xf8,0xca,0xf7, +0xe7,0xf0,0xf3,0xe8,0xa9,0xe8,0x66,0xf0,0x6d,0xf9,0x57,0xfc, +0xc8,0xf7,0x32,0xf3,0x96,0xf5,0xee,0xfc,0x2f,0x2,0xc9,0x0, +0x3b,0xfb,0x2e,0xf9,0x11,0xfd,0x86,0x0,0x7f,0xfe,0x69,0xf9, +0x22,0xf6,0xd,0xf7,0x83,0xfa,0x62,0xfb,0x3c,0xf8,0x7b,0xf7, +0x8c,0xfc,0x55,0x1,0x6c,0x1,0x69,0xff,0x84,0xfe,0x45,0x1, +0x78,0x7,0xee,0xa,0xef,0x7,0x84,0x3,0xc8,0x3,0x3d,0x8, +0x38,0xa,0xf8,0x4,0x58,0xfd,0x2a,0xfb,0x81,0xfe,0x1f,0x2, +0x31,0x2,0xd2,0xfe,0x8a,0xfc,0x10,0x0,0xf,0x8,0xf1,0xd, +0x95,0xd,0x4d,0xa,0xdb,0x9,0x75,0xc,0x8e,0xd,0xe7,0xa, +0xb2,0x7,0x60,0x8,0xb2,0xc,0x4,0x10,0xac,0xe,0xd9,0x9, +0x1,0x7,0x22,0x9,0x9f,0xb,0xc4,0x8,0xdf,0x1,0x13,0xfd, +0x2d,0xfe,0x21,0x2,0x67,0x2,0x2b,0xfe,0x6,0xfb,0xa8,0xfc, +0x32,0x1,0xfa,0x3,0xd8,0x1,0x71,0xfc,0xca,0xf8,0xfc,0xf9, +0xef,0xfd,0xee,0xff,0xa8,0xfe,0x8d,0xfd,0x7f,0xff,0x8a,0x2, +0xb9,0x2,0x6c,0x0,0x26,0x0,0xb2,0x3,0x34,0x8,0x7c,0x9, +0xda,0x5,0x25,0x2,0xb5,0x4,0x85,0xa,0x23,0xb,0xb1,0x4, +0x85,0xfc,0x1c,0xf9,0x22,0xfc,0xb9,0xff,0xe1,0xfd,0x8c,0xf8, +0x42,0xf6,0xb,0xfa,0x1b,0x0,0xe1,0x2,0x1e,0x2,0xdc,0x0, +0xf9,0xff,0xec,0xfe,0xbd,0xfd,0x67,0xfd,0x42,0xff,0x24,0x2, +0xb0,0x2,0xe4,0xff,0x9,0xfc,0x30,0xfa,0xbf,0xfb,0xa5,0xfe, +0xe9,0xfe,0x86,0xfb,0xc2,0xf8,0x84,0xfb,0x42,0x2,0x5d,0x6, +0x77,0x4,0x29,0xff,0x46,0xfb,0xdf,0xfb,0x73,0xff,0x42,0x1, +0x80,0xff,0x56,0xfd,0x2d,0xfd,0xb1,0xfd,0xf4,0xfd,0xe9,0xfe, +0x4c,0x0,0x29,0x1,0x8d,0x1,0xbd,0x1,0xd4,0x2,0xc5,0x5, +0x33,0x8,0x4d,0x7,0x23,0x4,0x64,0x1,0xf7,0x0,0x81,0x3, +0x75,0x6,0x84,0x5,0x61,0x0,0xcf,0xfb,0x7b,0xfb,0x3c,0xfe, +0x4f,0x1,0x7b,0x2,0x41,0x0,0x92,0xfd,0x82,0xff,0xa4,0x4, +0xa7,0x7,0x2,0x7,0x5e,0x3,0xc5,0xfe,0x2b,0xfd,0xd5,0xfe, +0x64,0x0,0xf8,0x0,0x3,0x1,0xa6,0xff,0x4b,0xfd,0x53,0xfc, +0x5e,0xfe,0x8d,0x2,0x6,0x6,0x15,0x6,0xc2,0x2,0xfb,0xff, +0xe7,0x1,0x1a,0x7,0xd8,0x9,0xa,0x7,0x35,0x1,0xcc,0xfd, +0xfc,0xff,0xb0,0x4,0x40,0x6,0xf9,0x3,0xd4,0x1,0x90,0x2, +0xb2,0x5,0xab,0x8,0x33,0x9,0x17,0x8,0x6a,0x7,0x5,0x7, +0x14,0x6,0xde,0x4,0x9,0x4,0x22,0x4,0xf8,0x3,0xeb,0x1, +0x8d,0x0,0x22,0x3,0x96,0x7,0x73,0xa,0xd9,0x9,0x2e,0x4, +0xe6,0xfc,0x82,0xfb,0x83,0x0,0x8e,0x5,0x8f,0x6,0x62,0x3, +0x79,0xff,0xac,0xff,0x25,0x3,0x11,0x5,0xec,0x3,0x94,0x0, +0xcd,0xfc,0x8,0xfc,0xce,0xfe,0xd0,0x1,0xa9,0x3,0xb9,0x4, +0xdf,0x3,0x5e,0x1,0x10,0x0,0xb6,0x0,0x50,0x1,0xe2,0x0, +0x25,0xff,0xc9,0xfb,0xf5,0xf8,0x6,0xfa,0xfc,0xfe,0xc7,0x3, +0xda,0x3,0x4e,0xff,0xb7,0xfb,0xc0,0xfc,0x7,0x0,0x33,0x2, +0x74,0x1,0x4d,0xfd,0x88,0xf9,0xab,0xfa,0x9f,0xfe,0x90,0x0, +0x2e,0xff,0xba,0xfb,0xa7,0xf9,0xc7,0xfb,0x8d,0xff,0x15,0x2, +0x49,0x4,0x60,0x5,0xe3,0x3,0x47,0x2,0x5e,0x2,0x94,0x3, +0x99,0x5,0xcd,0x5,0xb0,0x1,0xf2,0xfc,0xcd,0xfb,0x93,0xfd, +0x9d,0x0,0x3e,0x2,0x68,0xff,0x71,0xfb,0x89,0xfc,0xbb,0x1, +0x41,0x5,0x11,0x4,0x43,0xff,0x0,0xfb,0x3d,0xfb,0x68,0xff, +0x96,0x3,0x9b,0x4,0x3,0x2,0x60,0xfe,0xbf,0xfc,0x61,0xfd, +0xef,0xfe,0x40,0x0,0xad,0xff,0xbd,0xfc,0xf3,0xf9,0xf0,0xf9, +0xbd,0xfc,0x8f,0x0,0xa9,0x2,0xb0,0x0,0x4b,0xfc,0x89,0xfa, +0xf3,0xfc,0x95,0x0,0xf6,0x2,0xc6,0x1,0xa2,0xfc,0x6b,0xf9, +0x21,0xfc,0x17,0x0,0xc2,0x0,0xa8,0xfe,0xc4,0xfb,0x68,0xfb, +0xb8,0xff,0x92,0x5,0x2d,0x8,0x2a,0x6,0x1c,0x2,0x52,0x0, +0x5b,0x2,0xc8,0x5,0xf4,0x7,0xf4,0x7,0xd0,0x5,0x9f,0x2, +0x64,0x0,0xe5,0x0,0xcf,0x3,0x18,0x6,0x4f,0x5,0x53,0x2, +0xc8,0xff,0x3d,0x0,0x8a,0x3,0x1d,0x5,0xe2,0x1,0x2a,0xfd, +0xa6,0xfb,0xd6,0xfe,0x33,0x5,0x38,0xa,0x3,0xa,0x62,0x6, +0xee,0x3,0x93,0x4,0xe7,0x7,0xbb,0xb,0x33,0xc,0xa3,0x8, +0xc9,0x4,0x35,0x3,0xff,0x3,0x4,0x6,0x62,0x6,0x2f,0x4, +0x32,0x2,0x2d,0x2,0xae,0x3,0x97,0x5,0x90,0x6,0xfc,0x5, +0xa5,0x3,0xc5,0x0,0xd3,0x0,0x11,0x4,0x9e,0x6,0x7b,0x6, +0xf0,0x3,0x1f,0x0,0xd9,0xfd,0xdc,0xfe,0xdd,0x1,0xcd,0x3, +0xa,0x2,0x3d,0xfe,0x6,0xfd,0xcc,0xff,0x74,0x4,0xc2,0x7, +0xcd,0x6,0xf9,0x2,0xf8,0x0,0x8d,0x2,0x70,0x5,0x25,0x6, +0xaa,0x3,0x4b,0x1,0x63,0x1,0x34,0x2,0x19,0x2,0xcc,0x0, +0x98,0xfe,0xe7,0xfc,0x1c,0xfc,0x89,0xfb,0x37,0xfc,0x1a,0xff, +0xa6,0x2,0x56,0x4,0x16,0x3,0xd0,0x0,0x8a,0x0,0x51,0x2, +0x6f,0x3,0x1c,0x2,0x24,0xff,0xc9,0xfc,0x2,0xfd,0x91,0xff, +0x70,0x1,0xfb,0xff,0x3c,0xfc,0x46,0xf9,0xd,0xf9,0xeb,0xfa, +0x63,0xfc,0x8b,0xfc,0x44,0xfc,0x49,0xfb,0x51,0xfa,0xac,0xfb, +0x4d,0xfe,0xd0,0xff,0xf1,0x0,0xf4,0x1,0x1b,0x2,0x88,0x2, +0x52,0x3,0x2c,0x3,0x56,0x2,0x3a,0x1,0x45,0x0,0xe3,0x0, +0x52,0x3,0xa1,0x5,0x32,0x5,0xf2,0x1,0x12,0xff,0xd3,0xfd, +0x69,0xfd,0x61,0xfe,0x6a,0xff,0xb4,0xfe,0xed,0xfd,0x7e,0xfd, +0x8b,0xfc,0xb7,0xfc,0x98,0xfd,0x3b,0xfd,0xc7,0xfc,0xe4,0xfc, +0xcd,0xfc,0x47,0xfd,0xdd,0xfd,0x79,0xfc,0xbf,0xf9,0x59,0xf8, +0x64,0xf9,0x33,0xfc,0x2b,0xff,0x75,0x0,0xfa,0xff,0x75,0xff, +0xb3,0xff,0xfe,0xff,0x97,0xff,0xc4,0xfd,0xb9,0xfa,0x9c,0xf8, +0x8b,0xf8,0xd6,0xf8,0x7f,0xf8,0x6a,0xf8,0xbf,0xf8,0x3c,0xf9, +0xd5,0xf9,0xd9,0xf9,0x88,0xf9,0xfa,0xf9,0xa0,0xfa,0xa0,0xfa, +0xa9,0xfa,0xed,0xfb,0xe3,0xfe,0xf1,0x1,0x47,0x2,0x34,0xff, +0xf8,0xfa,0x9a,0xf8,0x81,0xf9,0x6c,0xfc,0x17,0xfe,0x15,0xfc, +0x6,0xf9,0xa5,0xf9,0xe,0xfd,0x97,0xff,0x59,0x0,0x3b,0xff, +0x7,0xfe,0xcb,0xff,0x5c,0x2,0x1d,0x2,0x69,0x0,0x3e,0xff, +0xab,0xfe,0x42,0xfe,0xbc,0xfc,0x80,0xfa,0x11,0xfa,0x99,0xfb, +0x19,0xfd,0x75,0xfd,0xf,0xfd,0xd5,0xfd,0x9a,0x0,0xc4,0x2, +0x1,0x2,0x65,0xff,0x9c,0xfd,0x75,0xfe,0xd,0x1,0x30,0x2, +0xcc,0xff,0x41,0xfb,0x19,0xf8,0x14,0xf8,0x77,0xf9,0x4c,0xfa, +0x51,0xfa,0x4a,0xfa,0x86,0xfb,0x55,0xfd,0x51,0xfd,0x21,0xfc, +0x30,0xfc,0x2f,0xfd,0x6f,0xfd,0x3f,0xfc,0x87,0xfa,0x8e,0xfa, +0x6c,0xfc,0x2,0xfd,0x2f,0xfb,0x7a,0xf9,0xab,0xf9,0x17,0xfb, +0x73,0xfc,0xae,0xfc,0xe7,0xfb,0xe3,0xfb,0x7c,0xfd,0x3b,0xff, +0xae,0xff,0xfe,0xfe,0xa1,0xfe,0x15,0x0,0x4d,0x2,0x81,0x2, +0xb2,0x0,0x5,0xff,0xd6,0xfd,0xb6,0xfc,0x83,0xfb,0xd3,0xf9, +0x96,0xf8,0x86,0xf8,0x1b,0xf8,0x7,0xf7,0x80,0xf6,0xd9,0xf6, +0xdd,0xf8,0x64,0xfc,0x8e,0xfe,0xd4,0xfd,0x23,0xfc,0xe5,0xfb, +0xf3,0xfc,0x3c,0xfd,0x2a,0xfc,0x96,0xfa,0x7a,0xf9,0xb,0xfa, +0x21,0xfb,0x77,0xfa,0x67,0xf9,0xbb,0xf9,0xa5,0xfa,0xee,0xfb, +0x73,0xfd,0xea,0xfd,0x9a,0xfd,0x24,0xfe,0x6e,0xff,0xc1,0xff, +0xc8,0xfe,0x3b,0xfe,0x3,0xff,0xd1,0xff,0x7,0xff,0xa0,0xfc, +0x5d,0xfa,0x6e,0xfa,0x26,0xfd,0x99,0xff,0x67,0xfe,0xc9,0xfa, +0x32,0xf9,0xcf,0xfa,0xe0,0xfc,0x29,0xfd,0xda,0xfb,0xcd,0xfa, +0xf5,0xfb,0xcf,0xfe,0x1f,0x0,0x38,0xfe,0x76,0xfb,0x7d,0xfa, +0xe0,0xfa,0xed,0xfa,0x56,0xfa,0xf2,0xf9,0xb0,0xfa,0x1a,0xfd, +0x5e,0xff,0x55,0xfe,0x88,0xfb,0xc1,0xfb,0xc,0xff,0x59,0x1, +0x4,0x0,0xd5,0xfb,0xb4,0xf8,0x66,0xf9,0x4c,0xfc,0x8,0xfe, +0xcf,0xfc,0x90,0xfa,0xd,0xfb,0x27,0xfe,0x75,0x0,0xca,0xff, +0x2,0xfd,0x9,0xfc,0xe0,0xfe,0x13,0x2,0x77,0x2,0xf1,0x0, +0xed,0xff,0x31,0x1,0x5b,0x3,0x42,0x3,0x62,0x1,0x9e,0x0, +0x99,0x1,0xb,0x3,0x2b,0x3,0x55,0x1,0x52,0x0,0x1f,0x3, +0x78,0x7,0x58,0x8,0xf1,0x4,0xd2,0x0,0x1c,0xff,0xa4,0x0, +0x82,0x3,0x10,0x4,0x47,0x2,0x1e,0x2,0xe4,0x4,0xe4,0x7, +0xb1,0x7,0x5a,0x3,0x1f,0xff,0x28,0xff,0x75,0x1,0xd0,0x2, +0xbb,0x2,0xdc,0x1,0x1e,0x2,0xa1,0x3,0x29,0x3,0x3,0x0, +0x88,0xfd,0x78,0xfe,0xd7,0x1,0x86,0x3,0x72,0x1,0xac,0xfe, +0x57,0xff,0xd0,0x3,0x73,0x7,0xd2,0x5,0x70,0x1,0x98,0xff, +0x2e,0x1,0x2c,0x4,0x5c,0x5,0xc,0x2,0x53,0xfd,0x8e,0xfc, +0xf,0xff,0xdf,0x0,0x9d,0x0,0x29,0xff,0x83,0xfe,0xb4,0xff, +0x8c,0x0,0xf7,0xfe,0x9c,0xfc,0xbc,0xfc,0xa8,0xff,0x2c,0x2, +0xda,0x1,0xdd,0xff,0x4e,0xff,0xb7,0x1,0x72,0x4,0xd8,0x3, +0x6f,0x0,0xb3,0xfd,0xad,0xfe,0x4d,0x2,0xde,0x2,0xf7,0xfe, +0xdc,0xfb,0x5a,0xfc,0x80,0xff,0x99,0x2,0x53,0x1,0xf9,0xfc, +0x4,0xfc,0x8f,0xff,0x73,0x3,0xd7,0x4,0x1e,0x4,0xba,0x3, +0x86,0x4,0xa4,0x4,0xb1,0x2,0x7d,0xff,0x7d,0xfd,0x46,0xfe, +0x27,0x0,0x4a,0x0,0x5f,0xfe,0x93,0xfd,0xc1,0x0,0x48,0x5, +0xd0,0x5,0x6,0x2,0x13,0xff,0x5,0x1,0x12,0x6,0xde,0x8, +0x46,0x7,0x51,0x4,0xb8,0x3,0x65,0x6,0x84,0x9,0x8a,0x8, +0xea,0x3,0xab,0x1,0xa,0x4,0x19,0x7,0x6e,0x7,0x94,0x4, +0xc2,0x0,0xcc,0xff,0x35,0x2,0xf,0x4,0x33,0x3,0xd9,0x2, +0xf9,0x5,0x97,0x9,0xb7,0x9,0x4e,0x7,0x5f,0x5,0xe,0x6, +0x16,0x9,0x29,0xa,0xba,0x6,0x40,0x2,0xd1,0x0,0xe6,0x2, +0x28,0x5,0x4f,0x3,0x9f,0xfe,0xb1,0xfc,0x55,0xff,0xb1,0x3, +0x1f,0x6,0x87,0x4,0x1c,0x1,0x4a,0x0,0x37,0x2,0x36,0x3, +0xb7,0x1,0x6c,0xff,0x94,0xfe,0xf5,0xff,0xb3,0x1,0xd,0x1, +0x88,0xfe,0xa5,0xfd,0x5a,0xff,0x8e,0x0,0x4f,0xff,0xac,0xfd, +0x80,0xfe,0xa4,0x1,0x11,0x4,0x78,0x3,0xca,0x0,0x2f,0xff, +0xff,0x0,0x53,0x4,0x99,0x4,0x47,0x1,0x56,0xfe,0x68,0xfe, +0x9a,0x0,0x8b,0x1,0xae,0xfe,0x7a,0xfa,0xc1,0xf9,0x46,0xfd, +0x90,0x1,0x2d,0x3,0x1e,0x2,0x91,0x1,0x3a,0x3,0xda,0x4, +0x45,0x4,0x53,0x2,0x40,0x1,0xac,0x2,0x4a,0x5,0x2c,0x5, +0x87,0x1,0x59,0xfe,0xb0,0xfe,0x78,0x1,0xf9,0x2,0x5b,0x1, +0x98,0xff,0x7e,0x0,0x8f,0x2,0x50,0x3,0xa4,0x1,0xb5,0xfe, +0x31,0xfe,0x87,0x1,0xc4,0x4,0xd9,0x3,0x58,0x0,0xb6,0xfe, +0xfb,0xff,0xb9,0x1,0x68,0x1,0x7e,0xfe,0x0,0xfc,0x2b,0xfd, +0xa4,0x0,0xf2,0x2,0x71,0x2,0x3c,0x0,0x82,0xff,0x23,0x1, +0xfd,0x1,0x60,0x0,0x86,0xfe,0xa5,0xfe,0x24,0x0,0xde,0x0, +0xe0,0xff,0xae,0xfe,0x63,0xff,0x8d,0x1,0xc5,0x2,0x34,0x2, +0x1d,0x1,0x23,0x1,0xf0,0x2,0xde,0x4,0x58,0x4,0x55,0x1, +0xca,0xfe,0x44,0xff,0x95,0x1,0x2e,0x2,0xe0,0xff,0x68,0xfd, +0xff,0xfd,0x13,0x1,0x3c,0x3,0x8,0x3,0x60,0x1,0x3,0x0, +0xf0,0x0,0x7,0x3,0xff,0x2,0x17,0x1,0x92,0xff,0xd0,0xfe, +0x5e,0xfe,0x4f,0xfd,0x4a,0xfb,0xb7,0xfa,0x22,0xfd,0x60,0xff, +0x37,0xfe,0x54,0xfb,0x1a,0xfa,0xb3,0xfb,0x42,0xff,0xaa,0x1, +0x47,0x0,0xc6,0xfd,0x32,0xfe,0xab,0x0,0x37,0x2,0x70,0x1, +0x9e,0xfe,0xbe,0xfc,0x70,0xfe,0x8,0x1,0xad,0x0,0x4a,0xfe, +0xc8,0xfc,0x51,0xfd,0x6f,0xff,0x19,0x1,0xd1,0x0,0x1e,0x0, +0x5a,0x0,0x1e,0x0,0x71,0xfe,0x7e,0xfc,0xa2,0xfb,0x61,0xfc, +0xe6,0xfd,0x26,0xfe,0x83,0xfc,0x39,0xfb,0x60,0xfc,0x5,0xff, +0x40,0x0,0xae,0xfe,0x74,0xfc,0xd0,0xfc,0x1b,0x0,0x8a,0x3, +0x2a,0x4,0xe6,0x1,0xcd,0xff,0x38,0x0,0xd8,0x1,0x2b,0x2, +0xf8,0x0,0xd4,0xff,0xb0,0xff,0x60,0x0,0x1f,0x1,0x68,0x1, +0xf,0x2,0xc3,0x3,0x4a,0x5,0x60,0x5,0x27,0x4,0x14,0x3, +0xa,0x4,0xf1,0x5,0x75,0x5,0x8a,0x2,0x3f,0x0,0x6f,0x0, +0x9d,0x2,0x95,0x4,0xea,0x3,0xa8,0x0,0x50,0xfe,0xa,0x0, +0x38,0x4,0xa4,0x6,0xe9,0x5,0x23,0x4,0xe9,0x3,0x79,0x5, +0xa8,0x6,0xb3,0x5,0x31,0x3,0x57,0x1,0x6d,0x1,0xe1,0x1, +0xc9,0x0,0x71,0xff,0x2e,0x0,0xbd,0x1,0x68,0x1,0xeb,0xff, +0x67,0xff,0x1d,0x0,0xa4,0x1,0x4b,0x2,0x10,0x0,0x16,0xfd, +0xf,0xfd,0xc9,0xff,0x4b,0x2,0x20,0x2,0x6d,0xff,0x21,0xfd, +0x90,0xfd,0x9a,0xff,0x65,0x0,0xd,0xff,0xce,0xfc,0x4,0xfb, +0xfa,0xfa,0x3c,0xfc,0x75,0xfc,0xdc,0xfb,0x31,0xfc,0xe6,0xfc, +0x34,0xfd,0x45,0xfd,0x65,0xfd,0x5b,0xfe,0x40,0xff,0x38,0xfe, +0x48,0xfc,0xb8,0xfb,0x24,0xfd,0x93,0xff,0x75,0x0,0xeb,0xfd, +0x26,0xfa,0x55,0xf9,0x84,0xfc,0x80,0x0,0x6d,0x1,0xb7,0xfe, +0xaf,0xfb,0x99,0xfb,0xdb,0xfd,0xb3,0xff,0xa5,0xff,0x6,0xfe, +0x6f,0xfc,0xa8,0xfc,0xb7,0xfe,0xe2,0x0,0xd7,0x1,0xf0,0x1, +0xe4,0x1,0x6c,0x1,0x8c,0x0,0x91,0x0,0xd,0x2,0x36,0x3, +0x55,0x2,0xe6,0xff,0x76,0xfd,0x1f,0xfd,0x3f,0x0,0x17,0x4, +0x97,0x4,0x99,0x2,0xb9,0x1,0x2a,0x3,0x97,0x5,0x2b,0x6, +0xee,0x2,0x15,0xfe,0x94,0xfb,0x2e,0xfc,0x1,0xfe,0x50,0xff, +0x14,0xff,0xb7,0xfd,0x8,0xfd,0x87,0xfd,0x36,0xfe,0x29,0xff, +0xc1,0x0,0xe3,0x1,0xd2,0x1,0x44,0x1,0xe7,0x0,0x8f,0x1, +0x97,0x3,0x83,0x4,0xfd,0x1,0x4f,0xfe,0xf7,0xfc,0x2e,0xfe, +0xdf,0xff,0x6c,0xff,0x3c,0xfc,0x8b,0xf9,0x6b,0xfa,0xad,0xfd, +0xe9,0xff,0x53,0xff,0x16,0xfd,0x9,0xfc,0x68,0xfd,0x4f,0xff, +0x8f,0xff,0x1c,0xfe,0x11,0xfc,0xf5,0xfa,0x8f,0xfb,0x57,0xfc, +0x1f,0xfc,0xc0,0xfb,0xaa,0xfb,0xba,0xfb,0x16,0xfc,0xc3,0xfc, +0x3e,0xfe,0xc1,0x0,0xd8,0x2,0x79,0x2,0x4e,0xff,0x47,0xfc, +0xe0,0xfc,0x32,0x0,0x16,0x2,0xa7,0x0,0x3,0xfe,0x1d,0xfd, +0xa5,0xfe,0x34,0x1,0x18,0x2,0xe9,0xff,0xb2,0xfd,0x8e,0xfe, +0xfe,0x0,0xa3,0x2,0xc8,0x2,0xa3,0x1,0xad,0x0,0xbd,0x0, +0x62,0x1,0x73,0x2,0x13,0x3,0x51,0x2,0xfa,0x0,0xbc,0xff, +0x55,0xfe,0x4c,0xfd,0x97,0xfd,0xce,0xfe,0x5a,0xff,0x62,0xfe, +0x3,0xfd,0x51,0xfd,0xcd,0xff,0x49,0x2,0x52,0x2,0xf1,0xff, +0xac,0xfd,0xfd,0xfd,0x2b,0x0,0xee,0x0,0x22,0xff,0xfa,0xfc, +0x55,0xfc,0xf,0xfd,0xd5,0xfe,0xee,0x0,0xa2,0x1,0x53,0x1, +0x24,0x2,0x97,0x3,0x51,0x4,0xb0,0x4,0x8c,0x4,0xe9,0x3, +0xb8,0x3,0x6d,0x3,0x38,0x2,0xeb,0x0,0x5c,0x0,0x43,0x0, +0x91,0xff,0xca,0xfd,0x47,0xfc,0xe3,0xfc,0x43,0xff,0x8b,0x0, +0x24,0xff,0x11,0xfd,0x89,0xfc,0xca,0xfd,0x5,0x0,0x15,0x1, +0xab,0xff,0xa3,0xfd,0x2a,0xfd,0x8f,0xfe,0x8b,0x0,0xea,0x0, +0x75,0xff,0x2e,0xfe,0x9,0xfe,0x45,0xff,0x82,0x1,0x61,0x2, +0x25,0x1,0xed,0xff,0x3a,0xff,0x77,0xfe,0x75,0xfe,0x48,0xff, +0x11,0x0,0x81,0x0,0x11,0x0,0xaf,0xfe,0xe7,0xfd,0xcf,0xfe, +0x83,0x0,0xd5,0x1,0x70,0x2,0x7a,0x2,0x13,0x3,0x2c,0x5, +0xf2,0x6,0x4b,0x6,0x10,0x4,0xb9,0x1,0x4f,0x0,0x9c,0x0, +0x34,0x1,0x3a,0x0,0xe,0xfe,0x7f,0xfb,0x6e,0xf9,0x6f,0xf9, +0x68,0xfb,0x67,0xfd,0x82,0xfe,0x32,0xff,0xa4,0xff,0xdd,0xff, +0x62,0x0,0x72,0x1,0x65,0x2,0x54,0x2,0x21,0x1,0xd3,0xff, +0x9b,0xff,0x72,0x0,0x4e,0x1,0x52,0x1,0x8c,0x0,0xd2,0xff, +0xf5,0xff,0xbf,0x0,0xb,0x1,0xa6,0x0,0x33,0x0,0xb1,0xff, +0xd3,0xff,0x4a,0x1,0x76,0x2,0x1a,0x2,0xd3,0x0,0xd4,0xfe, +0x8,0xfd,0xeb,0xfc,0x9d,0xfd,0x9c,0xfd,0x50,0xfd,0x96,0xfd, +0xa6,0xfe,0x2d,0x0,0xa,0x1,0x85,0x0,0xd8,0xff,0xfd,0xff, +0xcf,0xff,0x10,0xff,0x11,0xff,0xe4,0xff,0xf3,0x0,0x81,0x1, +0x80,0x0,0xe4,0xfe,0x5b,0xfe,0xb1,0xfe,0x82,0xff,0x4f,0x0, +0xd8,0xff,0x1d,0xff,0xb9,0x0,0x9,0x4,0x9c,0x5,0x49,0x4, +0xed,0x1,0x73,0x0,0xc6,0x0,0x42,0x2,0xc7,0x2,0xd8,0x1, +0x53,0x1,0x33,0x2,0x9a,0x3,0x57,0x4,0xfe,0x3,0x19,0x3, +0x6d,0x2,0x6b,0x2,0xed,0x2,0x5c,0x3,0xc6,0x3,0x83,0x4, +0xf2,0x4,0x7d,0x4,0xa4,0x3,0x28,0x3,0x5a,0x3,0xde,0x3, +0xe8,0x3,0x2d,0x3,0x3,0x2,0x56,0x1,0x2e,0x2,0xb8,0x3, +0xd3,0x3,0x6f,0x2,0x18,0x1,0x9c,0x0,0x25,0x1,0xe6,0x1, +0x7d,0x1,0x2e,0x0,0x49,0xff,0x41,0xff,0xe0,0xff,0x5a,0x0, +0xee,0xff,0x31,0xff,0xd6,0xfe,0x7a,0xfe,0xa,0xfe,0x4a,0xfe, +0x7d,0xff,0x3e,0x1,0xb4,0x2,0x8d,0x2,0xe1,0x0,0x95,0xff, +0x5b,0xff,0x68,0xff,0x15,0xff,0xcc,0xfd,0x48,0xfc,0xc2,0xfc, +0x9,0xff,0x4a,0x0,0x5b,0xff,0xa5,0xfd,0x2b,0xfd,0xe6,0xfe, +0x16,0x1,0x16,0x1,0x96,0xff,0x38,0xff,0x57,0x0,0xa4,0x1, +0xe0,0x1,0xa7,0x0,0x95,0xff,0x17,0x0,0x29,0x1,0x8a,0x1, +0x64,0x1,0xb6,0x1,0xe,0x3,0x40,0x4,0xb6,0x3,0xdb,0x1, +0xd0,0x0,0xd4,0x1,0x87,0x3,0xe3,0x3,0x6a,0x2,0x16,0x0, +0x64,0xff,0x68,0x1,0xff,0x2,0x84,0x1,0x95,0xfe,0x3,0xfd, +0xb3,0xfd,0x35,0xff,0x9f,0xff,0xb8,0xfe,0xbb,0xfd,0xf5,0xfd, +0xe5,0xfe,0xd5,0xfe,0xe6,0xfd,0x3a,0xfd,0x1f,0xfd,0x91,0xfd, +0x9f,0xfd,0xb7,0xfc,0x51,0xfc,0x2a,0xfd,0x2d,0xfe,0x3b,0xfe, +0xfd,0xfc,0xdb,0xfb,0xd1,0xfc,0x1c,0xff,0x1c,0x0,0xd5,0xfe, +0xa6,0xfc,0xbd,0xfb,0x34,0xfd,0x55,0xff,0xf,0xff,0x5d,0xfc, +0x3c,0xfa,0x64,0xfa,0xec,0xfb,0xe1,0xfc,0x23,0xfc,0x7a,0xfa, +0x59,0xf9,0x5e,0xf9,0x1d,0xfa,0xb5,0xfa,0x28,0xfb,0x44,0xfc, +0xea,0xfd,0xda,0xfe,0x6c,0xfe,0xdc,0xfd,0x88,0xfe,0xfd,0xff, +0x35,0x1,0x56,0x1,0xf8,0xff,0xba,0xfe,0x65,0xff,0xf3,0x0, +0xf6,0x0,0xc3,0xfe,0xc3,0xfc,0x8c,0xfd,0xe7,0xff,0xff,0x0, +0x1b,0x0,0x64,0xfe,0xe8,0xfd,0x9e,0xff,0x99,0x1,0x6e,0x1, +0x32,0xff,0xec,0xfc,0x48,0xfc,0xff,0xfc,0x91,0xfd,0x0,0xfd, +0xb1,0xfb,0x8,0xfb,0xa9,0xfb,0xcc,0xfc,0xfa,0xfd,0x85,0xff, +0xf5,0x0,0x22,0x1,0xcd,0xff,0x8,0xfe,0x77,0xfd,0xf8,0xfe, +0x55,0x1,0xea,0x1,0xd6,0xff,0xc8,0xfd,0xd2,0xfe,0x4e,0x2, +0xce,0x4,0xe9,0x3,0x61,0x0,0x61,0xfd,0x12,0xfd,0x66,0xfe, +0xe5,0xfe,0x5a,0xfd,0x41,0xfb,0x31,0xfb,0xe9,0xfc,0x35,0xfe, +0xc7,0xfe,0x18,0xff,0xe5,0xfe,0x9f,0xfe,0xe9,0xfe,0x79,0xff, +0x25,0x0,0xfd,0x0,0x44,0x1,0x56,0x0,0xd7,0xfe,0x12,0xfe, +0xce,0xfe,0x73,0x0,0xeb,0x0,0xfd,0xfe,0x63,0xfc,0xab,0xfb, +0x53,0xfd,0x9a,0xff,0xf2,0xff,0x71,0xfd,0x8b,0xfa,0x48,0xfa, +0x7c,0xfc,0xc9,0xfe,0x63,0xff,0xe,0xfe,0xac,0xfc,0x43,0xfd, +0xd,0xff,0x6c,0x0,0xf0,0x0,0x54,0x0,0x32,0xff,0xec,0xfe, +0xde,0xff,0xb8,0x1,0xaa,0x3,0x75,0x4,0xe6,0x3,0xa1,0x2, +0x91,0x1,0xb3,0x1,0x8c,0x2,0x51,0x2,0x27,0x0,0x49,0xfd, +0x18,0xfc,0x81,0xfd,0xec,0xff,0xe3,0x0,0x37,0xff,0x8a,0xfc, +0xe8,0xfb,0x4,0xfe,0xc7,0x0,0x3,0x2,0x2b,0x1,0x6d,0xff, +0x40,0xfe,0xba,0xfd,0x61,0xfd,0x7b,0xfd,0xdc,0xfd,0xa1,0xfd, +0xe7,0xfc,0xac,0xfc,0x89,0xfd,0x8f,0xff,0xac,0x1,0x28,0x2, +0x21,0x1,0xa8,0x0,0x26,0x2,0xd6,0x4,0x7c,0x6,0x4a,0x5, +0xba,0x1,0x9,0xff,0xd6,0xff,0x5f,0x2,0x1b,0x3,0xfa,0x0, +0x74,0xfd,0x49,0xfb,0xf9,0xfb,0xa8,0xfd,0xfd,0xfd,0xa,0xfd, +0x5c,0xfc,0x4e,0xfd,0x84,0xff,0x51,0x1,0x15,0x2,0x5c,0x2, +0x8c,0x2,0xdf,0x2,0x49,0x3,0x6d,0x3,0x60,0x3,0x3b,0x3, +0x3f,0x2,0x17,0x0,0xd2,0xfd,0xb1,0xfc,0x2f,0xfd,0x65,0xfe, +0x28,0xfe,0xea,0xfb,0x25,0xfa,0x30,0xfb,0x77,0xfe,0x32,0x1, +0x34,0x1,0x54,0xff,0xa7,0xfe,0xad,0x0,0x3b,0x3,0x6d,0x3, +0xf8,0x0,0xf6,0xfd,0xdf,0xfc,0xf8,0xfd,0x45,0xff,0xad,0xff, +0x64,0xff,0xe0,0xfe,0xcf,0xfe,0xae,0xfe,0xfe,0xfd,0x77,0xfe, +0xaa,0x0,0x9d,0x2,0x24,0x3,0xb8,0x2,0xc7,0x2,0x8d,0x4, +0xe3,0x6,0xc,0x7,0x10,0x4,0x3c,0x0,0xb0,0xfe,0xc0,0xff, +0x14,0x1,0x38,0x0,0x1a,0xfd,0xd9,0xfa,0x21,0xfc,0x85,0xff, +0xa2,0x1,0x6,0x1,0x70,0xff,0x7a,0xff,0x2c,0x1,0x9c,0x2, +0xcc,0x2,0x4b,0x2,0x28,0x2,0xac,0x2,0xed,0x2,0x5b,0x2, +0x0,0x2,0xc2,0x2,0xbf,0x3,0xb7,0x3,0x69,0x2,0xdc,0x0, +0xfa,0x0,0xb6,0x2,0x8a,0x3,0x3a,0x2,0xfa,0xff,0x1,0xff, +0xbc,0x0,0x99,0x3,0x70,0x4,0xd,0x2,0xba,0xfe,0x6d,0xfe, +0x98,0x1,0x8e,0x4,0xc8,0x4,0x99,0x2,0x44,0x0,0x46,0x0, +0xdc,0x1,0x7c,0x2,0xbc,0x1,0xb0,0x0,0xa3,0x0,0xc1,0x1, +0x55,0x2,0xcb,0x1,0xaa,0x1,0xa3,0x2,0xa2,0x3,0x9b,0x3, +0xcf,0x2,0x4c,0x2,0xca,0x2,0xb2,0x3,0xf8,0x2,0xe3,0xff, +0xdd,0xfc,0x3c,0xfc,0x9f,0xfd,0xf6,0xfe,0x5d,0xfe,0x53,0xfc, +0xad,0xfb,0xd6,0xfd,0xe4,0x0,0xe9,0x1,0x3d,0x0,0x6d,0xfe, +0x46,0xff,0xd5,0x1,0xf9,0x2,0xe2,0x1,0x2,0x0,0x2,0xff, +0xd8,0xff,0x33,0x1,0x25,0x1,0xaa,0x0,0x55,0x1,0x4c,0x2, +0x29,0x2,0x7,0x1,0x39,0x0,0xe9,0x0,0xb7,0x2,0xfd,0x3, +0x57,0x3,0x5d,0x1,0x50,0x0,0x27,0x1,0x4d,0x2,0xaa,0x1, +0x70,0xff,0x39,0xfe,0x67,0xff,0x81,0x1,0x83,0x2,0x77,0x1, +0xad,0xff,0xee,0xff,0x4e,0x2,0x4a,0x4,0x95,0x4,0x9f,0x3, +0xf4,0x2,0xc,0x4,0xe7,0x5,0xa5,0x6,0x91,0x6,0x96,0x6, +0x60,0x6,0x46,0x5,0x3d,0x3,0x1a,0x1,0x24,0x0,0xa5,0x0, +0x1e,0x1,0xae,0xff,0xc8,0xfc,0x3e,0xfb,0xc9,0xfc,0x10,0x0, +0x34,0x2,0xd0,0x1,0xb6,0x0,0x72,0x1,0xef,0x3,0x42,0x6, +0x74,0x6,0x2e,0x4,0x29,0x2,0xa1,0x2,0x8,0x4,0x5b,0x4, +0x5d,0x3,0xde,0x1,0xb0,0x1,0x53,0x3,0x71,0x4,0x9c,0x3, +0x74,0x2,0xc4,0x2,0x19,0x4,0xa2,0x4,0xa5,0x3,0x7d,0x2, +0xf6,0x2,0xe9,0x4,0x59,0x6,0x24,0x6,0x5c,0x5,0x73,0x5, +0x9c,0x6,0x6a,0x7,0xdb,0x5,0x82,0x2,0xb6,0x0,0x98,0x1, +0xe9,0x2,0xb9,0x2,0xe4,0x0,0x28,0xff,0xb,0x0,0x2d,0x3, +0xaf,0x5,0x4b,0x6,0xda,0x5,0xec,0x5,0x2b,0x7,0xf0,0x7, +0x95,0x6,0xde,0x3,0x7e,0x1,0x33,0x0,0x57,0xff,0xdb,0xfd, +0x3f,0xfc,0x61,0xfc,0x69,0xfe,0xe0,0xff,0x2d,0xff,0xb9,0xfd, +0x48,0xfd,0x3b,0xfe,0xdd,0xff,0x36,0x0,0x78,0xfe,0xf5,0xfc, +0x8b,0xfd,0x4,0xff,0x55,0xff,0xf3,0xfd,0x43,0xfc,0x13,0xfc, +0x5c,0xfd,0x88,0xfe,0x91,0xfe,0xa3,0xfd,0xcc,0xfc,0x43,0xfd, +0x89,0xfe,0xbc,0xfe,0xa9,0xfd,0xdd,0xfc,0x1a,0xfd,0xc6,0xfd, +0xb8,0xfd,0xf3,0xfc,0x77,0xfd,0x33,0x0,0xe7,0x2,0x40,0x3, +0xb3,0x1,0x62,0x0,0xde,0x0,0xca,0x2,0xa7,0x3,0x8d,0x1, +0x52,0xfe,0x18,0xfd,0x3e,0xfe,0xaf,0xff,0x11,0xff,0x86,0xfc, +0x40,0xfb,0xf4,0xfc,0xc8,0xff,0x72,0x1,0xa,0x1,0xc1,0xff, +0xd7,0xff,0x5f,0x1,0x87,0x2,0x94,0x2,0x62,0x2,0xf2,0x2, +0xf2,0x3,0xee,0x3,0x1e,0x2,0xd1,0xff,0x66,0xff,0xe5,0x0, +0xa2,0x1,0x40,0x0,0x68,0xfe,0x87,0xfe,0xfa,0x0,0x16,0x3, +0x43,0x2,0x8e,0xff,0xa,0xfe,0x8,0xff,0x38,0x1,0x4a,0x2, +0x59,0x1,0x16,0x0,0x55,0x0,0x3b,0x1,0xa,0x1,0x7f,0xff, +0x63,0xfd,0x6b,0xfc,0x8b,0xfd,0xdd,0xfe,0x8d,0xfe,0x96,0xfd, +0x90,0xfd,0x8e,0xfe,0x3b,0xff,0xa3,0xfe,0xb4,0xfd,0x12,0xfe, +0xd6,0xff,0xf6,0x0,0xc6,0xff,0x7d,0xfd,0x53,0xfc,0x42,0xfd, +0x81,0xff,0x43,0x0,0x42,0xfe,0x2a,0xfc,0x2c,0xfc,0x5e,0xfd, +0x19,0xfe,0x7c,0xfd,0x51,0xfc,0xa5,0xfc,0xea,0xfe,0x7,0x1, +0x1e,0x1,0xd7,0xff,0x24,0xff,0xd3,0xff,0xfd,0x0,0x50,0x1, +0xd6,0x0,0xf3,0x0,0x33,0x2,0x5a,0x3,0xb3,0x2,0x77,0x0, +0x58,0xff,0xd8,0x0,0xff,0x2,0x28,0x3,0x4,0x1,0xd5,0xfe, +0x1d,0xff,0x67,0x1,0x86,0x2,0xc0,0x0,0x44,0xfe,0x3d,0xfe, +0xb9,0x0,0xf4,0x2,0x6d,0x2,0x55,0xff,0xae,0xfc,0xc0,0xfc, +0x78,0xfe,0x3a,0xff,0xe7,0xfd,0x6b,0xfc,0x67,0xfd,0xe6,0xff, +0xe0,0x0,0xfb,0xff,0x61,0xff,0x62,0x0,0x11,0x2,0x88,0x2, +0x10,0x1,0x3c,0xff,0x81,0xff,0x9e,0x1,0x96,0x2,0x5,0x1, +0x7a,0xfe,0x1d,0xfd,0xa6,0xfd,0x78,0xfe,0x82,0xfd,0x27,0xfb, +0xf0,0xf9,0xa9,0xfb,0xb5,0xfe,0x87,0xff,0x72,0xfd,0x38,0xfb, +0xea,0xfa,0xcd,0xfb,0xea,0xfb,0x8b,0xfa,0x24,0xf9,0x99,0xf9, +0xdd,0xfb,0xc5,0xfd,0x74,0xfd,0xa6,0xfb,0xbe,0xfa,0xa2,0xfb, +0xae,0xfc,0x35,0xfc,0xe3,0xfa,0xd2,0xfa,0xe5,0xfc,0x6e,0xff, +0x1b,0x0,0x7,0xff,0x3f,0xfe,0xff,0xfe,0x70,0x0,0x7c,0x0, +0x88,0xfe,0xa8,0xfc,0xd9,0xfc,0x9f,0xfe,0xd6,0xff,0x1b,0xff, +0x94,0xfd,0x73,0xfd,0x12,0xff,0x7e,0x0,0xb2,0xff,0x82,0xfd, +0xf2,0xfc,0xf4,0xfe,0x39,0x1,0x82,0x1,0x12,0x0,0x11,0xff, +0xfa,0xff,0xcc,0x1,0x4a,0x2,0xf8,0x0,0x13,0x0,0x8f,0x1, +0xf9,0x3,0x73,0x4,0x9d,0x2,0x8f,0x0,0x4c,0x0,0xe0,0x1, +0xfd,0x2,0xb4,0x1,0x86,0xff,0x53,0xff,0x3b,0x1,0x9f,0x2, +0x59,0x1,0x42,0xfe,0x7a,0xfc,0x7e,0xfd,0x56,0xff,0x60,0xff, +0x6b,0xfd,0xc8,0xfb,0xb9,0xfc,0x5f,0xff,0x9c,0x0,0x64,0xff, +0xd8,0xfd,0x24,0xfe,0x13,0x0,0x96,0x1,0x1a,0x1,0x86,0xff, +0x38,0xff,0xbc,0x0,0x33,0x2,0xfa,0x1,0x97,0x0,0xdd,0xff, +0x93,0x0,0x50,0x1,0x56,0x0,0x43,0xfe,0x69,0xfd,0xac,0xfe, +0x93,0x0,0x2c,0x1,0x6,0x0,0xf3,0xfe,0x1b,0x0,0xd8,0x2, +0x6a,0x4,0xc0,0x3,0x57,0x2,0xf4,0x1,0xc9,0x2,0x3e,0x3, +0xb7,0x1,0xfc,0xfe,0xb6,0xfd,0xea,0xfe,0x9a,0x0,0x85,0x0, +0xb0,0xfe,0x10,0xfd,0x2f,0xfd,0x56,0xfe,0xa8,0xfe,0xbb,0xfd, +0xd,0xfd,0xfc,0xfd,0xe6,0xff,0x4,0x1,0xbd,0x0,0x15,0x0, +0x68,0x0,0xc7,0x1,0xb9,0x2,0x35,0x2,0x29,0x1,0x85,0x1, +0x84,0x3,0xa3,0x4,0x37,0x3,0x12,0x1,0x6d,0x0,0x49,0x1, +0x41,0x2,0xac,0x1,0x92,0xff,0x55,0xfe,0x7f,0xff,0x6d,0x1, +0xb1,0x1,0x50,0x0,0x47,0xff,0xeb,0xff,0x94,0x1,0x6e,0x2, +0x7d,0x1,0xcd,0xff,0x67,0xff,0xd9,0x0,0x10,0x2,0x3c,0x1, +0xd3,0xff,0x0,0x0,0x6c,0x1,0x63,0x2,0xaf,0x1,0xd6,0xff, +0x3,0xff,0x29,0x0,0x8b,0x1,0x3c,0x1,0x9d,0xff,0xa4,0xfe, +0x5c,0xff,0xdb,0x0,0x2c,0x1,0x92,0xff,0xdf,0xfd,0xf2,0xfd, +0x4d,0xff,0x5d,0x0,0xe4,0xff,0x51,0xfe,0xd,0xfe,0xe1,0xff, +0x81,0x1,0x33,0x1,0xa4,0xff,0x41,0xfe,0xf7,0xfd,0xa2,0xfe, +0x1b,0xff,0xbc,0xfe,0x78,0xfe,0x12,0xff,0xa2,0xff,0xf,0xff, +0x74,0xfd,0x3a,0xfc,0xad,0xfc,0xf9,0xfd,0x8e,0xfe,0x61,0xfe, +0x6f,0xfe,0xce,0xff,0x37,0x2,0x71,0x3,0x14,0x2,0x71,0xff, +0xed,0xfd,0x79,0xfe,0xb6,0xff,0xd6,0xff,0xaa,0xfe,0xaa,0xfd, +0x5d,0xfe,0x45,0x0,0x95,0x1,0xae,0x1,0x3b,0x1,0x3d,0x1, +0xd5,0x1,0xb1,0x1,0x7c,0x0,0x0,0x0,0x1b,0x1,0x7e,0x2, +0xff,0x2,0xbb,0x2,0xf,0x2,0x90,0x1,0xd7,0x1,0x3,0x2, +0x2,0x1,0xeb,0xff,0x22,0x0,0x2e,0x1,0x9e,0x1,0x82,0x0, +0xab,0xfe,0xf,0xfe,0x49,0xff,0xe2,0x0,0x2d,0x1,0x3b,0x0, +0x8f,0xff,0x2b,0x0,0x87,0x1,0xef,0x1,0x7c,0x0,0xaf,0xfe, +0x44,0xfe,0x6,0xff,0x9d,0xff,0x1,0xff,0xd5,0xfd,0xaa,0xfd, +0x5f,0xfe,0xb8,0xfe,0x80,0xfe,0x3c,0xfe,0x53,0xfe,0xd3,0xfe, +0x39,0xff,0xca,0xfe,0xd2,0xfd,0xb9,0xfd,0xfc,0xfe,0x66,0x0, +0x8c,0x0,0xf9,0xfe,0xce,0xfc,0xe5,0xfb,0x7c,0xfc,0x1f,0xfd, +0x98,0xfc,0x57,0xfb,0x4,0xfb,0x3a,0xfc,0xf2,0xfd,0xf3,0xfe, +0xc4,0xfe,0x33,0xfe,0x36,0xfe,0x4f,0xfe,0xe1,0xfd,0x73,0xfd, +0x74,0xfd,0xb9,0xfd,0xed,0xfd,0xb2,0xfd,0x15,0xfd,0xf8,0xfc, +0x5,0xfe,0x71,0xff,0xf3,0xff,0x67,0xff,0xab,0xfe,0xb9,0xfe, +0xa0,0xff,0x1f,0x0,0x4f,0xff,0xc1,0xfd,0xae,0xfc,0xe6,0xfc, +0x11,0xfe,0xdc,0xfe,0x7c,0xfe,0x97,0xfd,0x3b,0xfd,0x5e,0xfd, +0x31,0xfd,0x88,0xfc,0xec,0xfb,0xd2,0xfb,0xf8,0xfb,0xc6,0xfb, +0x83,0xfb,0xde,0xfb,0xda,0xfc,0x1e,0xfe,0xed,0xfe,0xd9,0xfe, +0xda,0xfe,0x86,0xff,0x10,0x0,0x32,0x0,0x52,0x0,0x71,0x0, +0x82,0x0,0x6b,0x0,0xe0,0xff,0xfa,0xfe,0x3f,0xfe,0x37,0xfe, +0x8,0xff,0xd,0x0,0x57,0x0,0xe1,0xff,0x7e,0xff,0xa3,0xff, +0xff,0xff,0xe6,0xff,0xf1,0xfe,0xc0,0xfd,0x66,0xfd,0xe5,0xfd, +0x5c,0xfe,0x73,0xfe,0x56,0xfe,0x29,0xfe,0x4b,0xfe,0xd4,0xfe, +0x5,0xff,0xcc,0xfe,0xe8,0xfe,0xe,0xff,0x99,0xfe,0x18,0xfe, +0x15,0xfe,0x7e,0xfe,0x51,0xff,0x34,0x0,0x92,0x0,0x6c,0x0, +0x19,0x0,0x3,0x0,0x88,0x0,0x56,0x1,0x90,0x1,0x5,0x1, +0xab,0x0,0x55,0x1,0x8f,0x2,0x3c,0x3,0xdb,0x2,0xe4,0x1, +0x28,0x1,0xde,0x0,0xf3,0x0,0x86,0x1,0x21,0x2,0xf,0x2, +0x9c,0x1,0x45,0x1,0xfd,0x0,0xf2,0x0,0x48,0x1,0xac,0x1, +0xfe,0x1,0x35,0x2,0x18,0x2,0xe2,0x1,0xfa,0x1,0x9,0x2, +0xc4,0x1,0x97,0x1,0x90,0x1,0x74,0x1,0x95,0x1,0xd9,0x1, +0xab,0x1,0x70,0x1,0xc1,0x1,0x7a,0x2,0x80,0x3,0x42,0x4, +0xf2,0x3,0x16,0x3,0xa0,0x2,0x94,0x2,0x98,0x2,0x17,0x2, +0xc0,0x0,0x84,0xff,0x51,0xff,0xc6,0xff,0x31,0x0,0x27,0x0, +0x60,0xff,0x5a,0xfe,0x47,0xfe,0x84,0xff,0x1e,0x1,0x31,0x2, +0xb9,0x2,0x6,0x3,0x21,0x3,0x13,0x3,0x2e,0x3,0x7d,0x3, +0x6b,0x3,0xb2,0x2,0xd4,0x1,0x32,0x1,0xc0,0x0,0xa3,0x0, +0xb1,0x0,0x46,0x0,0xb6,0xff,0xeb,0xff,0x9b,0x0,0x11,0x1, +0xf0,0x0,0xc5,0xff,0x4b,0xfe,0x1b,0xfe,0x27,0xff,0x46,0x0, +0xd7,0x0,0xa1,0x0,0x1a,0x0,0x15,0x0,0xb2,0x0,0x78,0x1, +0xff,0x1,0x2c,0x2,0xfc,0x1,0x67,0x1,0xac,0x0,0x34,0x0, +0x42,0x0,0xbd,0x0,0xf0,0x0,0x62,0x0,0x9d,0xff,0x51,0xff, +0xe2,0xff,0x32,0x1,0xff,0x1,0x38,0x1,0xe6,0xff,0xd9,0xff, +0x40,0x1,0xd2,0x2,0x66,0x3,0xc4,0x2,0xbc,0x1,0x3a,0x1, +0x3a,0x1,0x17,0x1,0x66,0x0,0x6b,0xff,0x13,0xff,0xba,0xff, +0x91,0x0,0xe1,0x0,0xfc,0x0,0x82,0x1,0x31,0x2,0x53,0x2, +0x15,0x2,0x2a,0x2,0xf0,0x2,0xd,0x4,0x4a,0x4,0x2b,0x3, +0xca,0x1,0x33,0x1,0x96,0x1,0x27,0x2,0x76,0x1,0x9a,0xff, +0x3c,0xfe,0x52,0xfe,0x8f,0xff,0x8d,0x0,0x14,0x0,0xcc,0xfe, +0x43,0xfe,0xd9,0xfe,0xad,0xff,0xc6,0xff,0x5,0xff,0x22,0xfe, +0xf3,0xfd,0x6b,0xfe,0x86,0xfe,0xed,0xfd,0x43,0xfd,0xe7,0xfc, +0xe2,0xfc,0x1,0xfd,0x16,0xfd,0x64,0xfd,0xe0,0xfd,0x1c,0xfe, +0xe,0xfe,0xdf,0xfd,0xe0,0xfd,0x98,0xfe,0xe3,0xff,0xe1,0x0, +0x13,0x1,0xe,0x1,0xc6,0x1,0x4b,0x3,0xa2,0x4,0xc5,0x4, +0xb9,0x3,0x98,0x2,0x60,0x2,0xf8,0x2,0x3f,0x3,0x40,0x2, +0x88,0x0,0x7e,0xff,0xa0,0xff,0x1f,0x0,0x19,0x0,0xc6,0xff, +0xad,0xff,0x9b,0xff,0x34,0xff,0x7a,0xfe,0xf7,0xfd,0x43,0xfe, +0xe6,0xfe,0x29,0xff,0xea,0xfe,0x31,0xfe,0xd2,0xfd,0x85,0xfe, +0x28,0xff,0x94,0xfe,0x45,0xfd,0x76,0xfc,0x27,0xfd,0xc4,0xfe, +0x8e,0xff,0x13,0xff,0x69,0xfe,0x9e,0xfe,0xcd,0xff,0x15,0x1, +0x89,0x1,0x27,0x1,0xb2,0x0,0x9d,0x0,0x8a,0x0,0x37,0x0, +0xe7,0xff,0xc7,0xff,0xd4,0xff,0xa8,0xff,0xa0,0xfe,0x31,0xfd, +0xe1,0xfc,0xd5,0xfd,0x5d,0xfe,0xd2,0xfd,0x2b,0xfd,0x16,0xfd, +0xf6,0xfd,0x83,0xff,0x17,0x0,0x2d,0xff,0x39,0xfe,0x34,0xfe, +0x0,0xff,0xe5,0xff,0xcc,0xff,0x91,0xfe,0x5f,0xfd,0x17,0xfd, +0x43,0xfd,0xa,0xfd,0x55,0xfc,0xa8,0xfb,0x9e,0xfb,0x2e,0xfc, +0x87,0xfc,0xaf,0xfc,0x54,0xfd,0x1b,0xfe,0x78,0xfe,0x79,0xfe, +0x2d,0xfe,0x2b,0xfe,0xf5,0xfe,0xa7,0xff,0x59,0xff,0x76,0xfe, +0x11,0xfe,0xf7,0xfe,0xcf,0x0,0xfd,0x1,0x6b,0x1,0xfc,0xff, +0x42,0xff,0x91,0xff,0xf,0x0,0xe9,0xff,0x37,0xff,0xfc,0xfe, +0xb5,0xff,0xa1,0x0,0x2,0x1,0xf0,0x0,0xab,0x0,0x76,0x0, +0x75,0x0,0x22,0x0,0x6b,0xff,0x4d,0xff,0xd0,0xff,0xca,0xff, +0xf1,0xfe,0x2,0xfe,0x24,0xfe,0xf6,0xff,0x6,0x2,0x3a,0x2, +0x94,0x0,0x9,0xff,0x52,0xff,0x18,0x1,0x65,0x2,0x1c,0x2, +0x2,0x1,0x99,0x0,0x76,0x1,0x98,0x2,0xd6,0x2,0x29,0x2, +0x60,0x1,0x5e,0x1,0xef,0x1,0x2f,0x2,0x22,0x2,0x57,0x2, +0xe3,0x2,0x50,0x3,0xd4,0x2,0x9f,0x1,0x3e,0x1,0x2c,0x2, +0xd,0x3,0xa8,0x2,0x4,0x1,0x81,0xff,0x9d,0xff,0xd8,0x0, +0x46,0x1,0x57,0x0,0x60,0xff,0xf3,0xff,0x2a,0x2,0x48,0x4, +0x8d,0x4,0x14,0x3,0xa3,0x1,0xd9,0x1,0x26,0x3,0x97,0x3, +0x90,0x2,0x23,0x1,0x8b,0x0,0xce,0x0,0xbe,0x0,0x2,0x0, +0x7e,0xff,0x8c,0xff,0xee,0xff,0x31,0x0,0xc2,0xff,0x52,0xff, +0x21,0x0,0xba,0x1,0x9d,0x2,0x36,0x2,0x5b,0x1,0x76,0x1, +0x9d,0x2,0x20,0x3,0xef,0x1,0x33,0x0,0xc4,0xff,0xf9,0x0, +0x5c,0x2,0x2f,0x2,0x59,0x0,0xaa,0xfe,0xe3,0xfe,0xc3,0x0, +0x43,0x2,0x10,0x2,0x1d,0x1,0xdb,0x0,0x62,0x1,0x5,0x2, +0x45,0x2,0x2c,0x2,0x1f,0x2,0x44,0x2,0x24,0x2,0x27,0x1, +0xf3,0xff,0xe6,0xff,0x95,0x0,0x7e,0x0,0x79,0xff,0x6a,0xfe, +0x5b,0xfe,0xac,0xff,0x12,0x1,0xf8,0x0,0x85,0xff,0x54,0xfe, +0xaf,0xfe,0xa,0x0,0x97,0x0,0x70,0xff,0xa3,0xfd,0xf4,0xfc, +0xb2,0xfd,0x8f,0xfe,0x87,0xfe,0xd3,0xfd,0x8a,0xfd,0x66,0xfe, +0x9b,0xff,0x0,0x0,0xc0,0xff,0xac,0xff,0xb,0x0,0x99,0x0, +0xf3,0x0,0x16,0x1,0x8b,0x1,0x93,0x2,0x7b,0x3,0x41,0x3, +0xe0,0x1,0xcc,0x0,0x5d,0x1,0xd4,0x2,0x51,0x3,0x47,0x2, +0xf5,0x0,0x0,0x1,0x83,0x2,0xae,0x3,0x21,0x3,0x56,0x1, +0xe1,0xff,0xd6,0xff,0x6c,0x0,0x1c,0x0,0xf3,0xfe,0x1d,0xfe, +0x4a,0xfe,0xfe,0xfe,0x31,0xff,0xdb,0xfe,0x9d,0xfe,0xa3,0xfe, +0xd0,0xfe,0xb5,0xfe,0x1f,0xfe,0xf7,0xfd,0xdc,0xfe,0xfd,0xff, +0x20,0x0,0x2f,0xff,0x9d,0xfe,0x76,0xff,0xcf,0x0,0x43,0x1, +0x7f,0x0,0x5f,0xff,0x66,0xff,0x2,0x1,0xa8,0x2,0xd8,0x2, +0xe7,0x1,0x2c,0x1,0x84,0x1,0xa1,0x2,0x46,0x3,0xd7,0x2, +0x3e,0x2,0x6a,0x2,0x6,0x3,0x63,0x3,0x69,0x3,0x3c,0x3, +0xca,0x2,0x21,0x2,0x71,0x1,0xc0,0x0,0x71,0x0,0xfe,0x0, +0x9d,0x1,0x31,0x1,0x12,0x0,0x68,0xff,0xc0,0xff,0xc1,0x0, +0x74,0x1,0x7,0x1,0xde,0xff,0x68,0xff,0x3f,0x0,0x4f,0x1, +0x60,0x1,0x6a,0x0,0x57,0xff,0xd,0xff,0x88,0xff,0xc1,0xff, +0xc6,0xfe,0x28,0xfd,0x7a,0xfc,0x21,0xfd,0x27,0xfe,0xda,0xfe, +0x39,0xff,0x7e,0xff,0xc9,0xff,0x8,0x0,0x2f,0x0,0x4b,0x0, +0x6c,0x0,0x7c,0x0,0x4,0x0,0xe2,0xfe,0xf2,0xfd,0x4,0xfe, +0xba,0xfe,0xc,0xff,0x80,0xfe,0x9b,0xfd,0x65,0xfd,0x74,0xfe, +0x26,0x0,0x1f,0x1,0xd8,0x0,0x32,0x0,0x50,0x0,0x27,0x1, +0xa8,0x1,0x22,0x1,0xe2,0xff,0xc2,0xfe,0x5d,0xfe,0x48,0xfe, +0xc0,0xfd,0xea,0xfc,0x37,0xfc,0x9a,0xfb,0xfe,0xfa,0xac,0xfa, +0x4,0xfb,0xf7,0xfb,0x4,0xfd,0xa6,0xfd,0xb0,0xfd,0xa0,0xfd, +0x41,0xfe,0x6c,0xff,0x32,0x0,0x2f,0x0,0xb2,0xff,0x4e,0xff, +0x93,0xff,0x52,0x0,0x6e,0x0,0x5a,0xff,0xfc,0xfd,0x66,0xfd, +0x9f,0xfd,0x1,0xfe,0x8,0xfe,0xa2,0xfd,0x2d,0xfd,0x26,0xfd, +0x9b,0xfd,0x21,0xfe,0x6f,0xfe,0x7e,0xfe,0x52,0xfe,0xf9,0xfd, +0x9a,0xfd,0x75,0xfd,0xbc,0xfd,0x3a,0xfe,0x7f,0xfe,0x32,0xfe, +0x9f,0xfd,0xc2,0xfd,0xc0,0xfe,0x8e,0xff,0x83,0xff,0xa8,0xfe, +0xaa,0xfd,0x9e,0xfd,0x70,0xfe,0xff,0xfe,0xc8,0xfe,0x15,0xfe, +0xaa,0xfd,0x2b,0xfe,0x13,0xff,0x5c,0xff,0xdd,0xfe,0x3e,0xfe, +0x11,0xfe,0x55,0xfe,0xb8,0xfe,0xba,0xfe,0x28,0xfe,0xab,0xfd, +0xc0,0xfd,0xe,0xfe,0x9b,0xfe,0xa7,0xff,0xb3,0x0,0x30,0x1, +0x17,0x1,0x9a,0x0,0x55,0x0,0xd5,0x0,0x87,0x1,0x5f,0x1, +0x3f,0x0,0xb,0xff,0xaa,0xfe,0x18,0xff,0x81,0xff,0x3a,0xff, +0x60,0xfe,0xce,0xfd,0x60,0xfe,0xe5,0xff,0x49,0x1,0xad,0x1, +0x34,0x1,0xe6,0x0,0x5e,0x1,0x1d,0x2,0x69,0x2,0xfe,0x1, +0x52,0x1,0xf9,0x0,0xdb,0x0,0xe8,0x0,0x33,0x1,0x43,0x1, +0x1,0x1,0xb7,0x0,0x3c,0x0,0xda,0xff,0x33,0x0,0xeb,0x0, +0x33,0x1,0xbf,0x0,0xe0,0xff,0x64,0xff,0xeb,0xff,0x18,0x1, +0xb0,0x1,0x8,0x1,0x0,0x0,0xd2,0xff,0x83,0x0,0x44,0x1, +0x47,0x1,0x4e,0x0,0x4a,0xff,0x5e,0xff,0x3b,0x0,0xec,0x0, +0x13,0x1,0xab,0x0,0x29,0x0,0x1f,0x0,0x5e,0x0,0xad,0x0, +0xf1,0x0,0xa8,0x0,0xde,0xff,0x2c,0xff,0xde,0xfe,0x4a,0xff, +0x4f,0x0,0xd9,0x0,0x5a,0x0,0x79,0xff,0x35,0xff,0x16,0x0, +0x96,0x1,0x86,0x2,0x5a,0x2,0xb9,0x1,0x9c,0x1,0x4a,0x2, +0x57,0x3,0xf9,0x3,0x91,0x3,0x8f,0x2,0xfe,0x1,0xd,0x2, +0x45,0x2,0x4e,0x2,0xb1,0x1,0x42,0x0,0xe9,0xfe,0xc0,0xfe, +0xc2,0xff,0xf0,0x0,0x32,0x1,0x54,0x0,0x62,0xff,0x6c,0xff, +0x71,0x0,0xb1,0x1,0x59,0x2,0x10,0x2,0x4f,0x1,0x13,0x1, +0xd3,0x1,0xc7,0x2,0xf3,0x2,0x5b,0x2,0xaa,0x1,0x70,0x1, +0xad,0x1,0x24,0x2,0xbc,0x2,0xce,0x2,0xcd,0x1,0xac,0x0, +0x7b,0x0,0x1c,0x1,0x6,0x2,0x71,0x2,0xd8,0x1,0xad,0x0, +0xd1,0xff,0x4,0x0,0xd,0x1,0x87,0x1,0xdb,0x0,0xe4,0xff, +0x78,0xff,0xc2,0xff,0x4e,0x0,0x3d,0x0,0x3d,0xff,0x1a,0xfe, +0x6,0xfe,0x1f,0xff,0x3f,0x0,0x8c,0x0,0x22,0x0,0x7b,0xff, +0x3b,0xff,0xb0,0xff,0x5a,0x0,0xec,0x0,0x82,0x1,0xbf,0x1, +0x71,0x1,0x15,0x1,0x7,0x1,0x6c,0x1,0x2a,0x2,0x8c,0x2, +0x2d,0x2,0x7d,0x1,0x34,0x1,0xcd,0x1,0xa9,0x2,0x5e,0x2, +0xe5,0x0,0xef,0xff,0x71,0x0,0x8b,0x1,0x7,0x2,0x78,0x1, +0x48,0x0,0xb3,0xff,0x60,0x0,0x2f,0x1,0x4,0x1,0xa,0x0, +0xe5,0xfe,0x73,0xfe,0x8,0xff,0xc8,0xff,0x36,0x0,0x9d,0x0, +0xc2,0x0,0x43,0x0,0x78,0xff,0x0,0xff,0x4a,0xff,0x49,0x0, +0xfc,0x0,0x5c,0x0,0x3,0xff,0x66,0xfe,0xf6,0xfe,0xf0,0xff, +0x1a,0x0,0xfa,0xfe,0xd9,0xfd,0x39,0xfe,0xdb,0xff,0x69,0x1, +0xde,0x1,0x29,0x1,0x66,0x0,0xba,0x0,0x9a,0x1,0xa8,0x1, +0xcb,0x0,0xc6,0xff,0x11,0xff,0x14,0xff,0xc1,0xff,0x4b,0x0, +0x48,0x0,0xc4,0xff,0xc8,0xfe,0xcb,0xfd,0x6d,0xfd,0xc6,0xfd, +0x8e,0xfe,0x1e,0xff,0x94,0xfe,0x1e,0xfd,0x54,0xfc,0x21,0xfd, +0x75,0xfe,0xdc,0xfe,0x4,0xfe,0xba,0xfc,0x2c,0xfc,0xb3,0xfc, +0x80,0xfd,0x7e,0xfd,0x5f,0xfc,0x3a,0xfb,0x79,0xfb,0xf1,0xfc, +0x1e,0xfe,0xb,0xfe,0xfa,0xfc,0xbc,0xfb,0x14,0xfb,0x29,0xfb, +0x76,0xfb,0xb4,0xfb,0xf8,0xfb,0xf6,0xfb,0x89,0xfb,0x41,0xfb, +0x8a,0xfb,0x2b,0xfc,0xb3,0xfc,0xbc,0xfc,0x3b,0xfc,0xf2,0xfb, +0xc7,0xfc,0x45,0xfe,0xa,0xff,0x98,0xfe,0x88,0xfd,0x0,0xfd, +0xc9,0xfd,0xfc,0xfe,0x2f,0xff,0x4a,0xfe,0x0,0xfd,0x6f,0xfc, +0x45,0xfd,0x4f,0xfe,0x26,0xfe,0x3e,0xfd,0x8e,0xfc,0x42,0xfc, +0x51,0xfc,0xbf,0xfc,0x4d,0xfd,0xb7,0xfd,0xff,0xfd,0x25,0xfe, +0x27,0xfe,0x51,0xfe,0xd1,0xfe,0x56,0xff,0x5a,0xff,0x8b,0xfe, +0x67,0xfd,0x1e,0xfd,0xfd,0xfd,0xe0,0xfe,0xbc,0xfe,0xc4,0xfd, +0x13,0xfd,0x8d,0xfd,0xc4,0xfe,0x5e,0xff,0xc0,0xfe,0x94,0xfd, +0xf1,0xfc,0x78,0xfd,0x94,0xfe,0xff,0xfe,0x6d,0xfe,0xc9,0xfd, +0xc8,0xfd,0x2b,0xfe,0x72,0xfe,0x7f,0xfe,0x5f,0xfe,0x36,0xfe, +0x1c,0xfe,0xe5,0xfd,0xbc,0xfd,0xb,0xfe,0xa4,0xfe,0x14,0xff, +0xb,0xff,0x9c,0xfe,0xbb,0xfe,0xec,0xff,0x18,0x1,0xff,0x0, +0xc0,0xff,0xa2,0xfe,0xc5,0xfe,0xf1,0xff,0xdb,0x0,0x73,0x0, +0xf5,0xfe,0xa6,0xfd,0x4c,0xfd,0x8f,0xfd,0xb4,0xfd,0x4c,0xfd, +0xb3,0xfc,0xa6,0xfc,0x28,0xfd,0xc9,0xfd,0x58,0xfe,0xb7,0xfe, +0xff,0xfe,0x72,0xff,0xd3,0xff,0xf4,0xff,0x36,0x0,0x78,0x0, +0xd,0x0,0xb,0xff,0x14,0xfe,0x9a,0xfd,0xfa,0xfd,0xe0,0xfe, +0x49,0xff,0xee,0xfe,0x95,0xfe,0x3,0xff,0x2d,0x0,0x42,0x1, +0x8a,0x1,0x1e,0x1,0xa6,0x0,0xa5,0x0,0x23,0x1,0xbf,0x1, +0xf6,0x1,0xac,0x1,0x62,0x1,0x59,0x1,0x4f,0x1,0x33,0x1, +0x8,0x1,0xb5,0x0,0x72,0x0,0x7e,0x0,0xc6,0x0,0x42,0x1, +0xe2,0x1,0x4b,0x2,0x4f,0x2,0x3f,0x2,0x81,0x2,0x34,0x3, +0x4,0x4,0x3a,0x4,0x96,0x3,0x8f,0x2,0xa8,0x1,0x43,0x1, +0x4d,0x1,0x16,0x1,0x6e,0x0,0xd7,0xff,0x9d,0xff,0xa7,0xff, +0xb2,0xff,0x95,0xff,0x81,0xff,0x9d,0xff,0xd6,0xff,0x31,0x0, +0xbb,0x0,0x4c,0x1,0xb2,0x1,0xf4,0x1,0x28,0x2,0x73,0x2, +0xf,0x3,0xaf,0x3,0xa5,0x3,0xd8,0x2,0xcb,0x1,0x2d,0x1, +0x5e,0x1,0xe9,0x1,0x0,0x2,0x6e,0x1,0xa9,0x0,0x66,0x0, +0xda,0x0,0x6d,0x1,0x68,0x1,0xc2,0x0,0xf,0x0,0xc0,0xff, +0xa7,0xff,0x8b,0xff,0x86,0xff,0xb4,0xff,0x1e,0x0,0x93,0x0, +0xf1,0x0,0x97,0x1,0x9e,0x2,0x54,0x3,0x5b,0x3,0xf9,0x2, +0x68,0x2,0x17,0x2,0x3f,0x2,0x36,0x2,0x8e,0x1,0xe2,0x0, +0xba,0x0,0xe,0x1,0x90,0x1,0xc9,0x1,0x9c,0x1,0x95,0x1, +0x3f,0x2,0x5b,0x3,0x17,0x4,0xfc,0x3,0x52,0x3,0xf6,0x2, +0x80,0x3,0x53,0x4,0x8d,0x4,0x2d,0x4,0x7a,0x3,0xdd,0x2, +0xd5,0x2,0x12,0x3,0x16,0x3,0xb,0x3,0xff,0x2,0xc5,0x2, +0x83,0x2,0x7c,0x2,0xa8,0x2,0xca,0x2,0xbb,0x2,0x6f,0x2, +0x0,0x2,0xd2,0x1,0x3,0x2,0x5,0x2,0x68,0x1,0x5c,0x0, +0x89,0xff,0x8d,0xff,0x48,0x0,0xf,0x1,0x3b,0x1,0x85,0x0, +0xa8,0xff,0xd8,0xff,0x5,0x1,0x7,0x2,0x32,0x2,0xa4,0x1, +0x12,0x1,0x45,0x1,0x9,0x2,0x92,0x2,0xa3,0x2,0x68,0x2, +0x2b,0x2,0x1a,0x2,0xfb,0x1,0xcd,0x1,0xc7,0x1,0x99,0x1, +0x1d,0x1,0xb2,0x0,0x9b,0x0,0xec,0x0,0x78,0x1,0xd4,0x1, +0xb4,0x1,0x24,0x1,0xbe,0x0,0x23,0x1,0x8,0x2,0x98,0x2, +0x3d,0x2,0x41,0x1,0xa5,0x0,0xb7,0x0,0xf9,0x0,0xfc,0x0, +0x76,0x0,0xa7,0xff,0x72,0xff,0xb,0x0,0xa2,0x0,0xb0,0x0, +0x7d,0x0,0x79,0x0,0xa3,0x0,0xc4,0x0,0xf0,0x0,0x4e,0x1, +0xaa,0x1,0xb0,0x1,0x54,0x1,0xe6,0x0,0xde,0x0,0x43,0x1, +0x6b,0x1,0xf5,0x0,0x2b,0x0,0x7d,0xff,0x63,0xff,0xde,0xff, +0x48,0x0,0x35,0x0,0xcb,0xff,0xbe,0xff,0xbc,0x0,0x2f,0x2, +0xf1,0x2,0xd0,0x2,0x53,0x2,0x1f,0x2,0x5d,0x2,0xa1,0x2, +0x92,0x2,0xda,0x1,0x8e,0x0,0x8b,0xff,0x5,0xff,0xa5,0xfe, +0xd1,0xfe,0x7b,0xff,0xc4,0xff,0x89,0xff,0x62,0xff,0xb5,0xff, +0x64,0x0,0xc2,0x0,0x58,0x0,0x6f,0xff,0xb8,0xfe,0xf0,0xfe, +0x5,0x0,0xb9,0x0,0x36,0x0,0xef,0xfe,0xc3,0xfd,0x60,0xfd, +0xcb,0xfd,0x2f,0xfe,0xf9,0xfd,0x61,0xfd,0xf1,0xfc,0x3d,0xfd, +0x30,0xfe,0xef,0xfe,0xf,0xff,0xcb,0xfe,0x7d,0xfe,0x51,0xfe, +0x49,0xfe,0x8a,0xfe,0x3,0xff,0x30,0xff,0xe9,0xfe,0x98,0xfe, +0xc4,0xfe,0x9f,0xff,0x8a,0x0,0xaf,0x0,0x4,0x0,0x22,0xff, +0xda,0xfe,0x74,0xff,0x3b,0x0,0x69,0x0,0xf4,0xff,0x76,0xff, +0xa1,0xff,0x60,0x0,0x16,0x1,0x52,0x1,0xe1,0x0,0x29,0x0, +0xea,0xff,0x25,0x0,0x6d,0x0,0x93,0x0,0x7b,0x0,0x33,0x0, +0xec,0xff,0xa8,0xff,0x80,0xff,0x91,0xff,0x89,0xff,0x28,0xff, +0xa6,0xfe,0x6e,0xfe,0xc1,0xfe,0x4e,0xff,0x59,0xff,0xba,0xfe, +0x14,0xfe,0x16,0xfe,0xd3,0xfe,0xb1,0xff,0xfe,0xff,0xaf,0xff, +0x6d,0xff,0xdc,0xff,0xcb,0x0,0x8d,0x1,0xeb,0x1,0xfb,0x1, +0xc3,0x1,0x96,0x1,0xc4,0x1,0x21,0x2,0x5f,0x2,0x31,0x2, +0x75,0x1,0x88,0x0,0xcf,0xff,0x64,0xff,0x4c,0xff,0x30,0xff, +0x9a,0xfe,0xd8,0xfd,0xaf,0xfd,0x69,0xfe,0x9a,0xff,0x60,0x0, +0x3f,0x0,0xca,0xff,0xdd,0xff,0x94,0x0,0x52,0x1,0x61,0x1, +0xaf,0x0,0xd0,0xff,0x36,0xff,0xe9,0xfe,0xba,0xfe,0x77,0xfe, +0x21,0xfe,0xf0,0xfd,0xf4,0xfd,0xa,0xfe,0x51,0xfe,0x5,0xff, +0xe5,0xff,0x74,0x0,0xa6,0x0,0xca,0x0,0x23,0x1,0xae,0x1, +0xfa,0x1,0x8b,0x1,0x79,0x0,0x6f,0xff,0xf8,0xfe,0x10,0xff, +0x54,0xff,0x65,0xff,0x49,0xff,0x75,0xff,0x19,0x0,0xc3,0x0, +0x5,0x1,0xff,0x0,0x25,0x1,0xa8,0x1,0x1a,0x2,0xfe,0x1, +0x6d,0x1,0xc7,0x0,0x39,0x0,0xc2,0xff,0x55,0xff,0xd8,0xfe, +0x70,0xfe,0x66,0xfe,0x93,0xfe,0x9c,0xfe,0x77,0xfe,0x68,0xfe, +0xb6,0xfe,0x2e,0xff,0x3c,0xff,0xf4,0xfe,0xed,0xfe,0x5d,0xff, +0x14,0x0,0xaf,0x0,0xb6,0x0,0x27,0x0,0xa8,0xff,0xb4,0xff, +0xf0,0xff,0xd4,0xff,0x6a,0xff,0x5,0xff,0xec,0xfe,0x1d,0xff, +0x2e,0xff,0x12,0xff,0x43,0xff,0xe5,0xff,0xab,0x0,0x29,0x1, +0x27,0x1,0xf1,0x0,0xde,0x0,0xd2,0x0,0x82,0x0,0xd3,0xff, +0x27,0xff,0x8,0xff,0x61,0xff,0x90,0xff,0x20,0xff,0x63,0xfe, +0x1b,0xfe,0x79,0xfe,0xff,0xfe,0x2e,0xff,0xf5,0xfe,0xd0,0xfe, +0x51,0xff,0x59,0x0,0x21,0x1,0x1f,0x1,0xa5,0x0,0x5e,0x0, +0x6b,0x0,0x54,0x0,0xe3,0xff,0x74,0xff,0x57,0xff,0x75,0xff, +0x8b,0xff,0x5a,0xff,0xf,0xff,0x2a,0xff,0x93,0xff,0xa7,0xff, +0x51,0xff,0x18,0xff,0x70,0xff,0x61,0x0,0x79,0x1,0x3,0x2, +0xd0,0x1,0x81,0x1,0x82,0x1,0x78,0x1,0xf1,0x0,0xe2,0xff, +0xc9,0xfe,0x64,0xfe,0xcd,0xfe,0x5d,0xff,0x89,0xff,0x43,0xff, +0x3,0xff,0x29,0xff,0x67,0xff,0x6c,0xff,0x54,0xff,0x45,0xff, +0x61,0xff,0x84,0xff,0x43,0xff,0xc0,0xfe,0x8c,0xfe,0xb3,0xfe, +0xc0,0xfe,0x7f,0xfe,0x2f,0xfe,0x1d,0xfe,0x65,0xfe,0xda,0xfe, +0x18,0xff,0x9,0xff,0x19,0xff,0xa0,0xff,0x74,0x0,0x10,0x1, +0xf8,0x0,0x50,0x0,0xc5,0xff,0x8c,0xff,0x5d,0xff,0x1f,0xff, +0xe3,0xfe,0xbd,0xfe,0xeb,0xfe,0x3e,0xff,0x38,0xff,0xef,0xfe, +0xd2,0xfe,0x12,0xff,0x94,0xff,0xe0,0xff,0xb6,0xff,0x86,0xff, +0xa6,0xff,0xd7,0xff,0xc8,0xff,0x7b,0xff,0x45,0xff,0x78,0xff, +0xda,0xff,0xd8,0xff,0x44,0xff,0x92,0xfe,0x4d,0xfe,0x87,0xfe, +0xde,0xfe,0xda,0xfe,0x63,0xfe,0x4,0xfe,0x2b,0xfe,0x89,0xfe, +0xb5,0xfe,0xa1,0xfe,0x72,0xfe,0x83,0xfe,0xe6,0xfe,0x21,0xff, +0x11,0xff,0x27,0xff,0x92,0xff,0x14,0x0,0x4f,0x0,0x12,0x0, +0xdc,0xff,0x52,0x0,0x30,0x1,0xa7,0x1,0x65,0x1,0xc5,0x0, +0x6c,0x0,0xaa,0x0,0x18,0x1,0x15,0x1,0x8e,0x0,0xfa,0xff, +0xb3,0xff,0xb5,0xff,0xad,0xff,0x3c,0xff,0x9b,0xfe,0x4c,0xfe, +0x36,0xfe,0xfa,0xfd,0x8b,0xfd,0x10,0xfd,0xe7,0xfc,0x41,0xfd, +0xa3,0xfd,0xa4,0xfd,0x71,0xfd,0x5d,0xfd,0x8e,0xfd,0xd6,0xfd, +0xc3,0xfd,0x59,0xfd,0x44,0xfd,0xcc,0xfd,0x50,0xfe,0x57,0xfe, +0x2c,0xfe,0x51,0xfe,0xf9,0xfe,0xda,0xff,0x42,0x0,0xe3,0xff, +0x2d,0xff,0xbc,0xfe,0xd0,0xfe,0x29,0xff,0x34,0xff,0xd1,0xfe, +0x6d,0xfe,0x59,0xfe,0x92,0xfe,0xde,0xfe,0xe8,0xfe,0xcd,0xfe, +0xf5,0xfe,0x3e,0xff,0x5a,0xff,0x8a,0xff,0xfd,0xff,0x89,0x0, +0xf2,0x0,0xdf,0x0,0x46,0x0,0xc4,0xff,0xcc,0xff,0xf,0x0, +0x6,0x0,0x99,0xff,0x2a,0xff,0x3d,0xff,0xda,0xff,0x4f,0x0, +0x14,0x0,0x87,0xff,0x49,0xff,0x8b,0xff,0x27,0x0,0xa5,0x0, +0xbf,0x0,0xc6,0x0,0xf7,0x0,0x45,0x1,0x98,0x1,0xa8,0x1, +0x60,0x1,0x10,0x1,0xde,0x0,0xa7,0x0,0x6a,0x0,0x4f,0x0, +0x79,0x0,0xc5,0x0,0xdf,0x0,0xbc,0x0,0xbf,0x0,0x2c,0x1, +0xb3,0x1,0xc6,0x1,0x44,0x1,0x99,0x0,0x66,0x0,0xdc,0x0, +0x5e,0x1,0x3d,0x1,0x94,0x0,0xfb,0xff,0xe6,0xff,0x49,0x0, +0x8e,0x0,0x43,0x0,0xb1,0xff,0x5d,0xff,0x73,0xff,0xd3,0xff, +0x19,0x0,0xa,0x0,0xef,0xff,0xfd,0xff,0x9,0x0,0x7,0x0, +0xb,0x0,0x17,0x0,0x1e,0x0,0xf5,0xff,0x9a,0xff,0x53,0xff, +0x65,0xff,0xdd,0xff,0x4f,0x0,0x38,0x0,0xcd,0xff,0x9c,0xff, +0xe7,0xff,0x73,0x0,0xa4,0x0,0x4b,0x0,0xf9,0xff,0xc,0x0, +0x81,0x0,0x15,0x1,0x2a,0x1,0x95,0x0,0xeb,0xff,0xb7,0xff, +0xd,0x0,0x8a,0x0,0xc3,0x0,0xc6,0x0,0xc8,0x0,0xd7,0x0, +0xef,0x0,0xf3,0x0,0xe7,0x0,0xe6,0x0,0xc9,0x0,0x80,0x0, +0x49,0x0,0x49,0x0,0x83,0x0,0xd3,0x0,0xc8,0x0,0x55,0x0, +0xd,0x0,0x40,0x0,0xad,0x0,0xf9,0x0,0xe3,0x0,0x8c,0x0, +0x69,0x0,0xbb,0x0,0x58,0x1,0xc1,0x1,0x94,0x1,0xe,0x1, +0xaa,0x0,0xa3,0x0,0xe6,0x0,0x8,0x1,0xde,0x0,0xb1,0x0, +0x8e,0x0,0x86,0x0,0xbd,0x0,0x2,0x1,0x33,0x1,0x5b,0x1, +0x53,0x1,0x2b,0x1,0x34,0x1,0x8b,0x1,0xfa,0x1,0x7,0x2, +0x86,0x1,0xeb,0x0,0xbc,0x0,0x9,0x1,0x4f,0x1,0xf9,0x0, +0x1e,0x0,0x4e,0xff,0xf2,0xfe,0x22,0xff,0x80,0xff,0x9a,0xff, +0x65,0xff,0x25,0xff,0x32,0xff,0xaf,0xff,0x33,0x0,0x5c,0x0, +0x5f,0x0,0x6c,0x0,0x57,0x0,0x32,0x0,0x38,0x0,0x56,0x0, +0x58,0x0,0x16,0x0,0x9c,0xff,0x54,0xff,0x89,0xff,0x15,0x0, +0x9e,0x0,0xab,0x0,0x2b,0x0,0xd4,0xff,0x36,0x0,0xf0,0x0, +0x41,0x1,0xe9,0x0,0x40,0x0,0xcb,0xff,0xde,0xff,0x48,0x0, +0x6f,0x0,0x1c,0x0,0xa1,0xff,0x61,0xff,0x93,0xff,0xeb,0xff, +0xfc,0xff,0xe2,0xff,0xc9,0xff,0xba,0xff,0xe8,0xff,0x46,0x0, +0xa3,0x0,0xfc,0x0,0x10,0x1,0xb6,0x0,0x57,0x0,0x69,0x0, +0xfd,0x0,0xa5,0x1,0xcb,0x1,0x5a,0x1,0xe6,0x0,0xfe,0x0, +0x98,0x1,0x1d,0x2,0x9,0x2,0x67,0x1,0xc4,0x0,0xba,0x0, +0x4c,0x1,0xe7,0x1,0xfc,0x1,0x7b,0x1,0xd4,0x0,0x7d,0x0, +0x81,0x0,0x9d,0x0,0x94,0x0,0x52,0x0,0xe3,0xff,0x64,0xff, +0x5,0xff,0xe8,0xfe,0x5,0xff,0x1b,0xff,0xfb,0xfe,0xd7,0xfe, +0xfa,0xfe,0x77,0xff,0x1d,0x0,0x58,0x0,0xeb,0xff,0x6c,0xff, +0x64,0xff,0xd5,0xff,0x6c,0x0,0x9e,0x0,0x41,0x0,0xcd,0xff, +0xb3,0xff,0xf2,0xff,0x41,0x0,0x58,0x0,0x1b,0x0,0xa7,0xff, +0x5f,0xff,0x74,0xff,0x99,0xff,0x99,0xff,0x71,0xff,0x12,0xff, +0xb6,0xfe,0xa1,0xfe,0xd0,0xfe,0x3a,0xff,0xb3,0xff,0xd0,0xff, +0x98,0xff,0x99,0xff,0xe,0x0,0xa1,0x0,0xe5,0x0,0x99,0x0, +0xdb,0xff,0x47,0xff,0x3d,0xff,0x72,0xff,0x74,0xff,0x18,0xff, +0x89,0xfe,0x38,0xfe,0x58,0xfe,0xa9,0xfe,0xeb,0xfe,0x9,0xff, +0xd,0xff,0x22,0xff,0x6a,0xff,0xc7,0xff,0x3,0x0,0x14,0x0, +0xf8,0xff,0xb7,0xff,0x8b,0xff,0x8b,0xff,0xa3,0xff,0xbd,0xff, +0xaf,0xff,0x60,0xff,0x16,0xff,0x1f,0xff,0x80,0xff,0xf6,0xff, +0x2a,0x0,0xa,0x0,0xd1,0xff,0xbc,0xff,0xd2,0xff,0xde,0xff, +0xbb,0xff,0x6e,0xff,0x15,0xff,0xf8,0xfe,0x28,0xff,0x63,0xff, +0x7b,0xff,0x65,0xff,0x3b,0xff,0x39,0xff,0x5e,0xff,0x6e,0xff, +0x54,0xff,0x22,0xff,0xf1,0xfe,0xeb,0xfe,0x22,0xff,0x6a,0xff, +0x91,0xff,0x92,0xff,0x76,0xff,0x5a,0xff,0x72,0xff,0xac,0xff, +0xcc,0xff,0xcb,0xff,0xa9,0xff,0x6d,0xff,0x49,0xff,0x46,0xff, +0x3f,0xff,0x33,0xff,0x17,0xff,0xd7,0xfe,0xa4,0xfe,0xbe,0xfe, +0x1d,0xff,0x8d,0xff,0xd2,0xff,0xc3,0xff,0x97,0xff,0xb5,0xff, +0xc,0x0,0x3c,0x0,0x2f,0x0,0x2,0x0,0xd7,0xff,0xcc,0xff, +0xd7,0xff,0xd6,0xff,0xbb,0xff,0x92,0xff,0x8a,0xff,0xcd,0xff, +0x3a,0x0,0x95,0x0,0xc6,0x0,0xcd,0x0,0xb4,0x0,0x97,0x0, +0x80,0x0,0x62,0x0,0x4e,0x0,0x46,0x0,0x34,0x0,0x1e,0x0, +0x18,0x0,0x1f,0x0,0x32,0x0,0x30,0x0,0xfd,0xff,0xce,0xff, +0xe6,0xff,0x4c,0x0,0xbd,0x0,0xea,0x0,0xe5,0x0,0xfd,0x0, +0x58,0x1,0xd2,0x1,0xc,0x2,0xdf,0x1,0x8c,0x1,0x39,0x1, +0xf0,0x0,0xdd,0x0,0xdd,0x0,0xa9,0x0,0x54,0x0,0xb,0x0, +0xdf,0xff,0xed,0xff,0x32,0x0,0x83,0x0,0xb5,0x0,0xa9,0x0, +0x76,0x0,0x5f,0x0,0x72,0x0,0x8e,0x0,0x88,0x0,0x34,0x0, +0xb5,0xff,0x77,0xff,0x97,0xff,0xc4,0xff,0xb9,0xff,0x7f,0xff, +0x50,0xff,0x60,0xff,0xb7,0xff,0xfe,0xff,0xdf,0xff,0x96,0xff, +0x88,0xff,0xb3,0xff,0xf6,0xff,0x2e,0x0,0x30,0x0,0x19,0x0, +0xf,0x0,0xa,0x0,0x1d,0x0,0x4a,0x0,0x71,0x0,0x8b,0x0, +0x82,0x0,0x41,0x0,0xfd,0xff,0xea,0xff,0xf2,0xff,0xe9,0xff, +0xab,0xff,0x4d,0xff,0x29,0xff,0x68,0xff,0xd8,0xff,0x23,0x0, +0xd,0x0,0xd4,0xff,0xef,0xff,0x6b,0x0,0xed,0x0,0x1c,0x1, +0xe0,0x0,0x7f,0x0,0x52,0x0,0x56,0x0,0x58,0x0,0x37,0x0, +0xfd,0xff,0xe1,0xff,0x2,0x0,0x45,0x0,0x83,0x0,0xa4,0x0, +0xa3,0x0,0x97,0x0,0x90,0x0,0x86,0x0,0x83,0x0,0xa2,0x0, +0xc8,0x0,0xb4,0x0,0x6a,0x0,0x29,0x0,0x13,0x0,0x2c,0x0, +0x5c,0x0,0x6b,0x0,0x4d,0x0,0x34,0x0,0x59,0x0,0xaa,0x0, +0xd7,0x0,0xaf,0x0,0x65,0x0,0x4b,0x0,0x74,0x0,0xb0,0x0, +0xd4,0x0,0xd1,0x0,0xa2,0x0,0x62,0x0,0x35,0x0,0x13,0x0, +0xe3,0xff,0xc3,0xff,0xd8,0xff,0x9,0x0,0x34,0x0,0x5e,0x0, +0x7b,0x0,0x7d,0x0,0x7a,0x0,0x7b,0x0,0x76,0x0,0x7e,0x0, +0xa5,0x0,0xc1,0x0,0xab,0x0,0x72,0x0,0x42,0x0,0x44,0x0, +0x7e,0x0,0xb6,0x0,0xaf,0x0,0x81,0x0,0x66,0x0,0x7d,0x0, +0xbd,0x0,0xf2,0x0,0x9,0x1,0x15,0x1,0x1b,0x1,0x1d,0x1, +0x15,0x1,0xf8,0x0,0xf5,0x0,0x22,0x1,0x3b,0x1,0x22,0x1, +0xea,0x0,0xa7,0x0,0x80,0x0,0x84,0x0,0x85,0x0,0x62,0x0, +0x3f,0x0,0x49,0x0,0x6c,0x0,0x7f,0x0,0x7b,0x0,0x66,0x0, +0x5e,0x0,0x95,0x0,0xe8,0x0,0xfd,0x0,0xc8,0x0,0x8f,0x0, +0x81,0x0,0x85,0x0,0x73,0x0,0x44,0x0,0x16,0x0,0xd,0x0, +0x25,0x0,0x3b,0x0,0x2f,0x0,0x14,0x0,0x23,0x0,0x64,0x0, +0x92,0x0,0x80,0x0,0x57,0x0,0x57,0x0,0x8a,0x0,0xbb,0x0, +0xc0,0x0,0xb4,0x0,0xc0,0x0,0xf3,0x0,0x26,0x1,0x26,0x1, +0xee,0x0,0xb1,0x0,0xb7,0x0,0xfd,0x0,0x28,0x1,0x8,0x1, +0xb8,0x0,0x6d,0x0,0x61,0x0,0x77,0x0,0x72,0x0,0x63,0x0, +0x65,0x0,0x75,0x0,0x93,0x0,0x8f,0x0,0x53,0x0,0x23,0x0, +0x17,0x0,0xfc,0xff,0xc6,0xff,0x8a,0xff,0x67,0xff,0x73,0xff, +0x94,0xff,0x8c,0xff,0x4d,0xff,0x1d,0xff,0x35,0xff,0x72,0xff, +0x89,0xff,0x65,0xff,0x45,0xff,0x6c,0xff,0xc5,0xff,0x1,0x0, +0xf8,0xff,0xbb,0xff,0x88,0xff,0x91,0xff,0xb3,0xff,0xb5,0xff, +0x92,0xff,0x5f,0xff,0x3e,0xff,0x56,0xff,0x83,0xff,0x8d,0xff, +0x87,0xff,0x8c,0xff,0x7d,0xff,0x59,0xff,0x3d,0xff,0x44,0xff, +0x84,0xff,0xc6,0xff,0xb1,0xff,0x50,0xff,0x1,0xff,0xd,0xff, +0x66,0xff,0xa6,0xff,0x82,0xff,0x23,0xff,0xee,0xfe,0xf,0xff, +0x45,0xff,0x31,0xff,0xdf,0xfe,0xb1,0xfe,0xe4,0xfe,0x49,0xff, +0x81,0xff,0x7f,0xff,0x75,0xff,0x88,0xff,0xbe,0xff,0xfa,0xff, +0x16,0x0,0x1f,0x0,0x27,0x0,0x23,0x0,0x3,0x0,0xcb,0xff, +0xa2,0xff,0xb1,0xff,0xe3,0xff,0xef,0xff,0xaf,0xff,0x63,0xff, +0x69,0xff,0xc6,0xff,0x20,0x0,0x14,0x0,0xaf,0xff,0x72,0xff, +0xa4,0xff,0x0,0x0,0x18,0x0,0xbd,0xff,0x3d,0xff,0x25,0xff, +0x87,0xff,0xf5,0xff,0x16,0x0,0xf9,0xff,0xdf,0xff,0xec,0xff, +0x10,0x0,0x26,0x0,0x2c,0x0,0x42,0x0,0x63,0x0,0x5c,0x0, +0x23,0x0,0xe6,0xff,0xda,0xff,0xfb,0xff,0xf,0x0,0xdf,0xff, +0x77,0xff,0x29,0xff,0x44,0xff,0xa5,0xff,0xda,0xff,0xb2,0xff, +0x7b,0xff,0x98,0xff,0xf9,0xff,0x43,0x0,0x35,0x0,0xd6,0xff, +0x87,0xff,0x9f,0xff,0xe1,0xff,0xe9,0xff,0xb4,0xff,0x72,0xff, +0x58,0xff,0x6d,0xff,0x83,0xff,0x82,0xff,0x6a,0xff,0x4b,0xff, +0x32,0xff,0x11,0xff,0x4,0xff,0x3f,0xff,0xab,0xff,0xf,0x0, +0x35,0x0,0x7,0x0,0xcb,0xff,0xdc,0xff,0x2b,0x0,0x5a,0x0, +0x2b,0x0,0xc3,0xff,0x87,0xff,0xaa,0xff,0xfc,0xff,0x1c,0x0, +0xe8,0xff,0x9e,0xff,0x8f,0xff,0xcd,0xff,0x1d,0x0,0x4d,0x0, +0x67,0x0,0x79,0x0,0x86,0x0,0x7a,0x0,0x46,0x0,0xe,0x0, +0xe6,0xff,0xad,0xff,0x57,0xff,0x1,0xff,0xd8,0xfe,0x0,0xff, +0x48,0xff,0x60,0xff,0x33,0xff,0xf2,0xfe,0xfc,0xfe,0x67,0xff, +0xe1,0xff,0x18,0x0,0xff,0xff,0xdd,0xff,0x6,0x0,0x5f,0x0, +0x8a,0x0,0x5b,0x0,0x1,0x0,0xd3,0xff,0xee,0xff,0x1f,0x0, +0x21,0x0,0xe6,0xff,0x9f,0xff,0x71,0xff,0x47,0xff,0x1c,0xff, +0x9,0xff,0x1d,0xff,0x45,0xff,0x61,0xff,0x68,0xff,0x7c,0xff, +0xc0,0xff,0x2b,0x0,0x70,0x0,0x5c,0x0,0x1c,0x0,0xf8,0xff, +0x16,0x0,0x5d,0x0,0x67,0x0,0xb,0x0,0x97,0xff,0x68,0xff, +0x8d,0xff,0xce,0xff,0xed,0xff,0xce,0xff,0xa2,0xff,0xbe,0xff, +0x17,0x0,0x5e,0x0,0x7e,0x0,0x8c,0x0,0x99,0x0,0xb5,0x0, +0xd6,0x0,0xea,0x0,0xf7,0x0,0xf6,0x0,0xd5,0x0,0x9c,0x0, +0x79,0x0,0x84,0x0,0xa1,0x0,0xba,0x0,0xb7,0x0,0x9a,0x0, +0xa7,0x0,0xf9,0x0,0x4d,0x1,0x69,0x1,0x41,0x1,0xf7,0x0, +0xc9,0x0,0xcc,0x0,0xdc,0x0,0xcb,0x0,0x88,0x0,0x31,0x0, +0xf1,0xff,0xdb,0xff,0xeb,0xff,0xff,0xff,0xf9,0xff,0xdd,0xff, +0xc5,0xff,0xbf,0xff,0xd1,0xff,0xf6,0xff,0x1c,0x0,0x2d,0x0, +0x22,0x0,0x13,0x0,0x2b,0x0,0x6b,0x0,0x94,0x0,0x79,0x0, +0x35,0x0,0x6,0x0,0x1c,0x0,0x54,0x0,0x68,0x0,0x50,0x0, +0x27,0x0,0x11,0x0,0x24,0x0,0x42,0x0,0x3a,0x0,0x13,0x0, +0xef,0xff,0xdf,0xff,0xe2,0xff,0xea,0xff,0xd9,0xff,0xb0,0xff, +0x8f,0xff,0x76,0xff,0x57,0xff,0x56,0xff,0x7d,0xff,0x9e,0xff, +0xa3,0xff,0x94,0xff,0x80,0xff,0x8c,0xff,0xbf,0xff,0xfe,0xff, +0x29,0x0,0x2b,0x0,0x17,0x0,0x23,0x0,0x59,0x0,0x8d,0x0, +0x9c,0x0,0x94,0x0,0x9c,0x0,0xc7,0x0,0xff,0x0,0x19,0x1, +0x9,0x1,0xea,0x0,0xe1,0x0,0xf7,0x0,0x10,0x1,0x1c,0x1, +0x19,0x1,0x7,0x1,0xeb,0x0,0xc7,0x0,0xa4,0x0,0x93,0x0, +0x91,0x0,0x81,0x0,0x4e,0x0,0x6,0x0,0xca,0xff,0xaf,0xff, +0xa6,0xff,0x8a,0xff,0x4a,0xff,0x9,0xff,0xfe,0xfe,0x19,0xff, +0x29,0xff,0x1a,0xff,0x0,0xff,0x4,0xff,0x36,0xff,0x7f,0xff, +0xc5,0xff,0xec,0xff,0xeb,0xff,0xdc,0xff,0xd0,0xff,0xc7,0xff, +0xbd,0xff,0xaf,0xff,0xa1,0xff,0x99,0xff,0x7b,0xff,0x45,0xff, +0x1c,0xff,0x13,0xff,0x16,0xff,0xa,0xff,0xf5,0xfe,0xf7,0xfe, +0x25,0xff,0x60,0xff,0x81,0xff,0x74,0xff,0x47,0xff,0x32,0xff, +0x5d,0xff,0xa3,0xff,0xc9,0xff,0xc7,0xff,0xbe,0xff,0xd5,0xff, +0xc,0x0,0x42,0x0,0x61,0x0,0x6c,0x0,0x72,0x0,0x75,0x0, +0x6d,0x0,0x61,0x0,0x51,0x0,0x35,0x0,0xe,0x0,0xdd,0xff, +0xaf,0xff,0x9b,0xff,0xa4,0xff,0xb4,0xff,0xba,0xff,0xb2,0xff, +0xb5,0xff,0xd4,0xff,0x8,0x0,0x3e,0x0,0x50,0x0,0x3c,0x0, +0x34,0x0,0x4f,0x0,0x75,0x0,0x8d,0x0,0x86,0x0,0x69,0x0, +0x58,0x0,0x56,0x0,0x51,0x0,0x4d,0x0,0x41,0x0,0x23,0x0, +0xf,0x0,0x16,0x0,0x24,0x0,0x27,0x0,0x17,0x0,0xf3,0xff, +0xc5,0xff,0x9e,0xff,0x82,0xff,0x7c,0xff,0x80,0xff,0x7c,0xff, +0x6c,0xff,0x64,0xff,0x7e,0xff,0xb4,0xff,0xe2,0xff,0xe7,0xff, +0xce,0xff,0xb7,0xff,0xad,0xff,0xa8,0xff,0x9c,0xff,0x76,0xff, +0x33,0xff,0x0,0xff,0x1,0xff,0x2c,0xff,0x53,0xff,0x61,0xff, +0x62,0xff,0x5e,0xff,0x68,0xff,0x9b,0xff,0xdb,0xff,0xfa,0xff, +0xf6,0xff,0xd9,0xff,0xb4,0xff,0xa4,0xff,0xa6,0xff,0xa5,0xff, +0x9b,0xff,0x91,0xff,0x95,0xff,0xa6,0xff,0xc2,0xff,0xe0,0xff, +0xf1,0xff,0xe7,0xff,0xd7,0xff,0xe5,0xff,0x10,0x0,0x40,0x0, +0x57,0x0,0x46,0x0,0x22,0x0,0xd,0x0,0xf,0x0,0x1f,0x0, +0x2c,0x0,0x20,0x0,0x5,0x0,0xf4,0xff,0xfa,0xff,0x1b,0x0, +0x43,0x0,0x57,0x0,0x55,0x0,0x50,0x0,0x5e,0x0,0x7c,0x0, +0x89,0x0,0x6c,0x0,0x2f,0x0,0xf2,0xff,0xd5,0xff,0xe2,0xff, +0xfd,0xff,0xfd,0xff,0xdd,0xff,0xb5,0xff,0xa2,0xff,0xb2,0xff, +0xd6,0xff,0xeb,0xff,0xeb,0xff,0xe8,0xff,0xe1,0xff,0xe2,0xff, +0xfa,0xff,0x12,0x0,0x16,0x0,0xc,0x0,0xf8,0xff,0xd6,0xff, +0xbb,0xff,0xb1,0xff,0xa7,0xff,0x90,0xff,0x77,0xff,0x67,0xff, +0x70,0xff,0x8e,0xff,0x9f,0xff,0x98,0xff,0x92,0xff,0xa2,0xff, +0xd5,0xff,0x18,0x0,0x41,0x0,0x34,0x0,0x3,0x0,0xd5,0xff, +0xc1,0xff,0xb9,0xff,0xa8,0xff,0x8a,0xff,0x6a,0xff,0x55,0xff, +0x58,0xff,0x7a,0xff,0xa5,0xff,0xc3,0xff,0xd4,0xff,0xe1,0xff, +0xf4,0xff,0x1b,0x0,0x52,0x0,0x82,0x0,0x93,0x0,0x87,0x0, +0x73,0x0,0x6a,0x0,0x6c,0x0,0x6a,0x0,0x4d,0x0,0x1c,0x0, +0x1,0x0,0x10,0x0,0x32,0x0,0x48,0x0,0x3c,0x0,0x19,0x0, +0xfd,0xff,0xfe,0xff,0x17,0x0,0x35,0x0,0x42,0x0,0x41,0x0, +0x42,0x0,0x45,0x0,0x4a,0x0,0x53,0x0,0x4c,0x0,0x29,0x0, +0xfa,0xff,0xc8,0xff,0xad,0xff,0xc1,0xff,0xee,0xff,0x13,0x0, +0x24,0x0,0x20,0x0,0x25,0x0,0x4d,0x0,0x7e,0x0,0x9b,0x0, +0x9a,0x0,0x90,0x0,0xa8,0x0,0xe2,0x0,0x15,0x1,0x21,0x1, +0xfb,0x0,0xb7,0x0,0x8b,0x0,0x8b,0x0,0x8f,0x0,0x7b,0x0, +0x5d,0x0,0x49,0x0,0x44,0x0,0x4b,0x0,0x54,0x0,0x53,0x0, +0x49,0x0,0x37,0x0,0x1c,0x0,0xfc,0xff,0xe9,0xff,0xee,0xff, +0xfb,0xff,0xfb,0xff,0xf5,0xff,0xfe,0xff,0x27,0x0,0x68,0x0, +0xa1,0x0,0xb0,0x0,0x91,0x0,0x75,0x0,0x77,0x0,0x87,0x0, +0x8b,0x0,0x6f,0x0,0x41,0x0,0x30,0x0,0x40,0x0,0x4d,0x0, +0x49,0x0,0x2e,0x0,0x5,0x0,0xe6,0xff,0xd6,0xff,0xce,0xff, +0xca,0xff,0xc4,0xff,0xbb,0xff,0xad,0xff,0xa6,0xff,0xb4,0xff, +0xd7,0xff,0xfb,0xff,0x9,0x0,0xf8,0xff,0xe2,0xff,0xef,0xff, +0x1d,0x0,0x3e,0x0,0x31,0x0,0x7,0x0,0xeb,0xff,0xf9,0xff, +0x20,0x0,0x2d,0x0,0x6,0x0,0xc7,0xff,0xa0,0xff,0x9d,0xff, +0xa4,0xff,0xa3,0xff,0x98,0xff,0x8a,0xff,0x8a,0xff,0x9b,0xff, +0xb1,0xff,0xce,0xff,0xf6,0xff,0x17,0x0,0x1c,0x0,0xe,0x0, +0xe,0x0,0x2e,0x0,0x59,0x0,0x67,0x0,0x42,0x0,0x11,0x0, +0xf,0x0,0x37,0x0,0x64,0x0,0x72,0x0,0x51,0x0,0x2b,0x0, +0x31,0x0,0x57,0x0,0x76,0x0,0x74,0x0,0x50,0x0,0x2c,0x0, +0x26,0x0,0x3a,0x0,0x4d,0x0,0x4c,0x0,0x37,0x0,0x11,0x0, +0xef,0xff,0xe1,0xff,0xe2,0xff,0xee,0xff,0xfd,0xff,0xf1,0xff, +0xcf,0xff,0xc2,0xff,0xda,0xff,0x4,0x0,0x23,0x0,0x15,0x0, +0xe3,0xff,0xc7,0xff,0xd8,0xff,0xf8,0xff,0xfe,0xff,0xe3,0xff, +0xc7,0xff,0xce,0xff,0xf7,0xff,0x24,0x0,0x3b,0x0,0x34,0x0, +0x25,0x0,0x21,0x0,0x2c,0x0,0x41,0x0,0x56,0x0,0x63,0x0, +0x62,0x0,0x4c,0x0,0x33,0x0,0x37,0x0,0x5a,0x0,0x83,0x0, +0x91,0x0,0x7f,0x0,0x72,0x0,0x7f,0x0,0x9c,0x0,0xb7,0x0, +0xad,0x0,0x7a,0x0,0x50,0x0,0x52,0x0,0x6e,0x0,0x7e,0x0, +0x64,0x0,0x2f,0x0,0xb,0x0,0x15,0x0,0x35,0x0,0x43,0x0, +0x32,0x0,0x14,0x0,0x0,0x0,0x3,0x0,0xc,0x0,0x6,0x0, +0xfa,0xff,0xf0,0xff,0xe1,0xff,0xd8,0xff,0xe0,0xff,0xfa,0xff, +0x23,0x0,0x46,0x0,0x45,0x0,0x2e,0x0,0x30,0x0,0x51,0x0, +0x77,0x0,0x84,0x0,0x68,0x0,0x3e,0x0,0x37,0x0,0x58,0x0, +0x7f,0x0,0x89,0x0,0x71,0x0,0x4f,0x0,0x3d,0x0,0x45,0x0, +0x4f,0x0,0x41,0x0,0x27,0x0,0x11,0x0,0x6,0x0,0x18,0x0, +0x39,0x0,0x52,0x0,0x65,0x0,0x6b,0x0,0x61,0x0,0x5a,0x0, +0x62,0x0,0x79,0x0,0x87,0x0,0x72,0x0,0x44,0x0,0x1c,0x0, +0xa,0x0,0x8,0x0,0xf9,0xff,0xc7,0xff,0x88,0xff,0x63,0xff, +0x6a,0xff,0x93,0xff,0xb8,0xff,0xbf,0xff,0xbe,0xff,0xd4,0xff, +0xf4,0xff,0xf,0x0,0x28,0x0,0x37,0x0,0x3d,0x0,0x41,0x0, +0x3e,0x0,0x3b,0x0,0x3f,0x0,0x48,0x0,0x52,0x0,0x55,0x0, +0x4b,0x0,0x4f,0x0,0x70,0x0,0x9b,0x0,0xb0,0x0,0xa1,0x0, +0x83,0x0,0x74,0x0,0x78,0x0,0x7c,0x0,0x6e,0x0,0x4a,0x0, +0x1f,0x0,0x5,0x0,0x4,0x0,0xa,0x0,0xd,0x0,0x5,0x0, +0xf4,0xff,0xec,0xff,0xf0,0xff,0xf6,0xff,0xfe,0xff,0x8,0x0, +0x13,0x0,0x22,0x0,0x2d,0x0,0x2d,0x0,0x29,0x0,0x27,0x0, +0x2f,0x0,0x37,0x0,0x34,0x0,0x33,0x0,0x3a,0x0,0x3d,0x0, +0x31,0x0,0x18,0x0,0x8,0x0,0x9,0x0,0x12,0x0,0x20,0x0, +0x2a,0x0,0x27,0x0,0x25,0x0,0x2d,0x0,0x37,0x0,0x3e,0x0, +0x46,0x0,0x4c,0x0,0x4a,0x0,0x46,0x0,0x44,0x0,0x43,0x0, +0x3c,0x0,0x2a,0x0,0x11,0x0,0xf9,0xff,0xe6,0xff,0xdd,0xff, +0xe1,0xff,0xeb,0xff,0xf0,0xff,0xeb,0xff,0xe6,0xff,0xef,0xff, +0xff,0xff,0x9,0x0,0xc,0x0,0x5,0x0,0x0,0x0,0x8,0x0, +0x17,0x0,0x1f,0x0,0x1b,0x0,0x17,0x0,0x1a,0x0,0x19,0x0, +0xb,0x0,0xf9,0xff,0xed,0xff,0xed,0xff,0xf5,0xff,0xf9,0xff, +0xfa,0xff,0x6,0x0,0x1d,0x0,0x2c,0x0,0x28,0x0,0x1d,0x0, +0x16,0x0,0x18,0x0,0x21,0x0,0x20,0x0,0x9,0x0,0xe1,0xff, +0xbf,0xff,0xba,0xff,0xc4,0xff,0xbb,0xff,0xa4,0xff,0x94,0xff, +0x91,0xff,0x9f,0xff,0xb6,0xff,0xc2,0xff,0xc2,0xff,0xc7,0xff, +0xcd,0xff,0xce,0xff,0xd5,0xff,0xe7,0xff,0xf3,0xff,0xec,0xff, +0xd3,0xff,0xb8,0xff,0xae,0xff,0xb3,0xff,0xb8,0xff,0xb5,0xff, +0xa5,0xff,0x97,0xff,0xa1,0xff,0xbf,0xff,0xdc,0xff,0xe5,0xff, +0xdb,0xff,0xcb,0xff,0xc3,0xff,0xc4,0xff,0xc4,0xff,0xc5,0xff, +0xcc,0xff,0xd1,0xff,0xd3,0xff,0xdc,0xff,0xe9,0xff,0xf5,0xff, +0xfa,0xff,0xf5,0xff,0xe5,0xff,0xd3,0xff,0xd8,0xff,0xef,0xff, +0xfa,0xff,0xec,0xff,0xd7,0xff,0xd1,0xff,0xe4,0xff,0xf9,0xff, +0xf8,0xff,0xdc,0xff,0xb4,0xff,0x9e,0xff,0xa3,0xff,0xa6,0xff, +0x9b,0xff,0x90,0xff,0x89,0xff,0x90,0xff,0xa5,0xff,0xb8,0xff, +0xc1,0xff,0xc1,0xff,0xbb,0xff,0xb7,0xff,0xb5,0xff,0xb9,0xff, +0xc1,0xff,0xca,0xff,0xcf,0xff,0xd1,0xff,0xd2,0xff,0xd8,0xff, +0xe8,0xff,0xf8,0xff,0xf0,0xff,0xd7,0xff,0xc4,0xff,0xbf,0xff, +0xc3,0xff,0xc4,0xff,0xb6,0xff,0x9c,0xff,0x84,0xff,0x79,0xff, +0x78,0xff,0x7a,0xff,0x75,0xff,0x6a,0xff,0x64,0xff,0x6d,0xff, +0x7d,0xff,0x92,0xff,0xa3,0xff,0xa9,0xff,0xbb,0xff,0xdc,0xff, +0xf9,0xff,0xb,0x0,0xf,0x0,0x1,0x0,0xeb,0xff,0xde,0xff, +0xde,0xff,0xe2,0xff,0xdc,0xff,0xc3,0xff,0xa1,0xff,0x8a,0xff, +0x8f,0xff,0xa0,0xff,0xa8,0xff,0xa1,0xff,0x95,0xff,0x94,0xff, +0xab,0xff,0xcd,0xff,0xe1,0xff,0xdd,0xff,0xd0,0xff,0xc3,0xff, +0xbf,0xff,0xc9,0xff,0xd6,0xff,0xe0,0xff,0xe7,0xff,0xde,0xff, +0xce,0xff,0xc8,0xff,0xca,0xff,0xd0,0xff,0xd3,0xff,0xc9,0xff, +0xb9,0xff,0xb0,0xff,0xae,0xff,0xa8,0xff,0x93,0xff,0x70,0xff, +0x53,0xff,0x54,0xff,0x74,0xff,0x99,0xff,0xae,0xff,0xb5,0xff, +0xc2,0xff,0xe2,0xff,0xd,0x0,0x33,0x0,0x47,0x0,0x46,0x0, +0x3c,0x0,0x3b,0x0,0x3e,0x0,0x38,0x0,0x29,0x0,0x14,0x0, +0xfc,0xff,0xe9,0xff,0xea,0xff,0xf7,0xff,0xfe,0xff,0x0,0x0, +0xfb,0xff,0xee,0xff,0xf2,0xff,0xa,0x0,0x22,0x0,0x26,0x0, +0x14,0x0,0x0,0x0,0xfb,0xff,0xfe,0xff,0xfe,0xff,0xf2,0xff, +0xdb,0xff,0xcb,0xff,0xc4,0xff,0xc0,0xff,0xbd,0xff,0xb8,0xff, +0xb9,0xff,0xc1,0xff,0xc8,0xff,0xcf,0xff,0xe0,0xff,0xfb,0xff, +0xd,0x0,0x13,0x0,0x1d,0x0,0x34,0x0,0x56,0x0,0x72,0x0, +0x79,0x0,0x6b,0x0,0x54,0x0,0x44,0x0,0x43,0x0,0x43,0x0, +0x2b,0x0,0x0,0x0,0xd4,0xff,0xbf,0xff,0xc8,0xff,0xd6,0xff, +0xcf,0xff,0xb9,0xff,0xae,0xff,0xc1,0xff,0xe6,0xff,0x6,0x0, +0x11,0x0,0xf,0x0,0xd,0x0,0xe,0x0,0x10,0x0,0x11,0x0, +0xf,0x0,0x8,0x0,0xf9,0xff,0xe8,0xff,0xe6,0xff,0xf7,0xff, +0x11,0x0,0x27,0x0,0x27,0x0,0x1b,0x0,0x1c,0x0,0x2d,0x0, +0x45,0x0,0x54,0x0,0x49,0x0,0x30,0x0,0x20,0x0,0x23,0x0, +0x33,0x0,0x42,0x0,0x3d,0x0,0x28,0x0,0x1b,0x0,0x21,0x0, +0x2c,0x0,0x31,0x0,0x2d,0x0,0x24,0x0,0x20,0x0,0x27,0x0, +0x32,0x0,0x36,0x0,0x2e,0x0,0x18,0x0,0xff,0xff,0xf4,0xff, +0xf6,0xff,0xfe,0xff,0x1,0x0,0xf8,0xff,0xe7,0xff,0xe2,0xff, +0xf4,0xff,0x14,0x0,0x30,0x0,0x33,0x0,0x1b,0x0,0x6,0x0, +0x9,0x0,0x20,0x0,0x36,0x0,0x36,0x0,0x27,0x0,0x1a,0x0, +0x16,0x0,0x1c,0x0,0x1b,0x0,0xb,0x0,0xf5,0xff,0xe9,0xff, +0xe6,0xff,0xe0,0xff,0xdb,0xff,0xdf,0xff,0xe3,0xff,0xe2,0xff, +0xe7,0xff,0xf2,0xff,0x5,0x0,0x1c,0x0,0x24,0x0,0x1c,0x0, +0x13,0x0,0x17,0x0,0x30,0x0,0x4d,0x0,0x52,0x0,0x43,0x0, +0x34,0x0,0x30,0x0,0x3c,0x0,0x4b,0x0,0x43,0x0,0x23,0x0, +0xa,0x0,0xf,0x0,0x2a,0x0,0x39,0x0,0x2e,0x0,0x17,0x0, +0x7,0x0,0x6,0x0,0x12,0x0,0x1d,0x0,0x22,0x0,0x22,0x0, +0x17,0x0,0x9,0x0,0x3,0x0,0xc,0x0,0x1f,0x0,0x2a,0x0, +0x1b,0x0,0x2,0x0,0xf3,0xff,0xf9,0xff,0x8,0x0,0x2,0x0, +0xe6,0xff,0xcf,0xff,0xd0,0xff,0xe7,0xff,0x5,0x0,0x13,0x0, +0xe,0x0,0x5,0x0,0x5,0x0,0x1b,0x0,0x38,0x0,0x41,0x0, +0x36,0x0,0x23,0x0,0x11,0x0,0xb,0x0,0x13,0x0,0x24,0x0, +0x30,0x0,0x34,0x0,0x33,0x0,0x30,0x0,0x36,0x0,0x42,0x0, +0x41,0x0,0x2a,0x0,0x8,0x0,0xf1,0xff,0xf7,0xff,0x11,0x0, +0x20,0x0,0x11,0x0,0xfb,0xff,0xf5,0xff,0x7,0x0,0x28,0x0, +0x3c,0x0,0x31,0x0,0x14,0x0,0xfc,0xff,0xf2,0xff,0xf1,0xff, +0xec,0xff,0xdb,0xff,0xc2,0xff,0xb0,0xff,0xac,0xff,0xb0,0xff, +0xb9,0xff,0xc6,0xff,0xcb,0xff,0xc5,0xff,0xbd,0xff,0xc0,0xff, +0xd2,0xff,0xe5,0xff,0xe8,0xff,0xd8,0xff,0xc4,0xff,0xc2,0xff, +0xd8,0xff,0xe9,0xff,0xe1,0xff,0xcd,0xff,0xc5,0xff,0xdb,0xff, +0x5,0x0,0x26,0x0,0x32,0x0,0x2b,0x0,0x21,0x0,0x26,0x0, +0x38,0x0,0x44,0x0,0x40,0x0,0x34,0x0,0x2e,0x0,0x2c,0x0, +0x2a,0x0,0x27,0x0,0x23,0x0,0x17,0x0,0x4,0x0,0xed,0xff, +0xe1,0xff,0xec,0xff,0x0,0x0,0x5,0x0,0xf4,0xff,0xdd,0xff, +0xd5,0xff,0xe9,0xff,0x3,0x0,0x4,0x0,0xeb,0xff,0xd0,0xff, +0xcb,0xff,0xe2,0xff,0xf9,0xff,0xf5,0xff,0xdc,0xff,0xc9,0xff, +0xcf,0xff,0xe7,0xff,0xf8,0xff,0xfc,0xff,0xef,0xff,0xdc,0xff, +0xd0,0xff,0xcc,0xff,0xcc,0xff,0xcc,0xff,0xca,0xff,0xc5,0xff, +0xbe,0xff,0xba,0xff,0xc9,0xff,0xe8,0xff,0x1,0x0,0x4,0x0, +0xf5,0xff,0xe7,0xff,0xf1,0xff,0xd,0x0,0x1d,0x0,0xb,0x0, +0xe7,0xff,0xd7,0xff,0xe9,0xff,0x7,0x0,0x12,0x0,0x6,0x0, +0xf2,0xff,0xe8,0xff,0xf3,0xff,0xa,0x0,0x16,0x0,0x12,0x0, +0xb,0x0,0xe,0x0,0x13,0x0,0x13,0x0,0x12,0x0,0xb,0x0, +0xfc,0xff,0xef,0xff,0xe4,0xff,0xe5,0xff,0xf9,0xff,0xf,0x0, +0xc,0x0,0xf2,0xff,0xd7,0xff,0xd2,0xff,0xe6,0xff,0xfb,0xff, +0xf7,0xff,0xe2,0xff,0xd3,0xff,0xdc,0xff,0xf8,0xff,0xa,0x0, +0x5,0x0,0xf4,0xff,0xed,0xff,0xf9,0xff,0xd,0x0,0x13,0x0, +0x6,0x0,0xf5,0xff,0xf0,0xff,0xef,0xff,0xf5,0xff,0x2,0x0, +0xe,0x0,0x14,0x0,0x17,0x0,0x15,0x0,0x14,0x0,0x1c,0x0, +0x2c,0x0,0x35,0x0,0x2d,0x0,0x16,0x0,0xa,0x0,0x1a,0x0, +0x2e,0x0,0x2e,0x0,0x19,0x0,0xff,0xff,0xf8,0xff,0xc,0x0, +0x20,0x0,0x17,0x0,0xfa,0xff,0xe8,0xff,0xf2,0xff,0x10,0x0, +0x28,0x0,0x24,0x0,0xf,0x0,0x5,0x0,0xf,0x0,0x21,0x0, +0x2f,0x0,0x32,0x0,0x2d,0x0,0x29,0x0,0x25,0x0,0x1d,0x0, +0x18,0x0,0x1a,0x0,0x19,0x0,0xb,0x0,0xf1,0xff,0xdb,0xff, +0xde,0xff,0xf9,0xff,0xa,0x0,0xfd,0xff,0xe4,0xff,0xd9,0xff, +0xe8,0xff,0x3,0x0,0xf,0x0,0xfe,0xff,0xe4,0xff,0xdc,0xff, +0xec,0xff,0x1,0x0,0x5,0x0,0xf3,0xff,0xdf,0xff,0xd9,0xff, +0xdb,0xff,0xdc,0xff,0xd8,0xff,0xd4,0xff,0xd1,0xff,0xd3,0xff, +0xdb,0xff,0xec,0xff,0xfe,0xff,0xa,0x0,0x8,0x0,0xf6,0xff, +0xe7,0xff,0xee,0xff,0x4,0x0,0x12,0x0,0x6,0x0,0xe7,0xff, +0xd1,0xff,0xdb,0xff,0xfa,0xff,0x11,0x0,0x10,0x0,0xff,0xff, +0xf4,0xff,0xfd,0xff,0xe,0x0,0x13,0x0,0x9,0x0,0xfd,0xff, +0xf8,0xff,0xfc,0xff,0x2,0x0,0x3,0x0,0xff,0xff,0xf9,0xff, +0xf0,0xff,0xea,0xff,0xed,0xff,0xf9,0xff,0xa,0x0,0x15,0x0, +0x13,0x0,0x8,0x0,0x8,0x0,0x19,0x0,0x2c,0x0,0x2d,0x0, +0x18,0x0,0x2,0x0,0x1,0x0,0x13,0x0,0x20,0x0,0x13,0x0, +0xf1,0xff,0xd8,0xff,0xdf,0xff,0xfc,0xff,0x17,0x0,0x1e,0x0, +0x17,0x0,0x11,0x0,0x19,0x0,0x26,0x0,0x2c,0x0,0x2b,0x0, +0x2a,0x0,0x2b,0x0,0x29,0x0,0x26,0x0,0x26,0x0,0x26,0x0, +0x20,0x0,0x12,0x0,0x5,0x0,0x7,0x0,0x1a,0x0,0x2d,0x0, +0x2f,0x0,0x1f,0x0,0x6,0x0,0xfd,0xff,0x13,0x0,0x33,0x0, +0x3b,0x0,0x28,0x0,0x10,0x0,0x6,0x0,0x11,0x0,0x23,0x0, +0x2a,0x0,0x21,0x0,0x12,0x0,0x7,0x0,0x1,0x0,0x0,0x0, +0xfc,0xff,0xf4,0xff,0xe9,0xff,0xdf,0xff,0xe1,0xff,0xef,0xff, +0xfe,0xff,0x2,0x0,0xf5,0xff,0xe3,0xff,0xe0,0xff,0xf3,0xff, +0xf,0x0,0x1f,0x0,0x19,0x0,0x6,0x0,0xfc,0xff,0x6,0x0, +0x1a,0x0,0x20,0x0,0x10,0x0,0xf5,0xff,0xe2,0xff,0xdd,0xff, +0xe1,0xff,0xdf,0xff,0xd2,0xff,0xc5,0xff,0xc3,0xff,0xc9,0xff, +0xd3,0xff,0xdf,0xff,0xe6,0xff,0xe4,0xff,0xdd,0xff,0xdc,0xff, +0xeb,0xff,0x8,0x0,0x1f,0x0,0x1c,0x0,0x6,0x0,0xed,0xff, +0xe7,0xff,0xf9,0xff,0xd,0x0,0x10,0x0,0x9,0x0,0x5,0x0, +0xe,0x0,0x26,0x0,0x35,0x0,0x2a,0x0,0x15,0x0,0xb,0x0, +0x13,0x0,0x23,0x0,0x2a,0x0,0x23,0x0,0x16,0x0,0xf,0x0, +0xc,0x0,0xe,0x0,0x16,0x0,0x1c,0x0,0x1b,0x0,0x12,0x0, +0x7,0x0,0x3,0x0,0xc,0x0,0x19,0x0,0x18,0x0,0x9,0x0, +0xf9,0xff,0xf7,0xff,0x7,0x0,0x15,0x0,0xd,0x0,0xf7,0xff, +0xe9,0xff,0xf3,0xff,0xe,0x0,0x25,0x0,0x28,0x0,0x1b,0x0, +0xc,0x0,0x9,0x0,0x11,0x0,0x17,0x0,0x12,0x0,0x4,0x0, +0xf6,0xff,0xef,0xff,0xf3,0xff,0xff,0xff,0xf,0x0,0x15,0x0, +0xa,0x0,0xf9,0xff,0xf2,0xff,0x1,0x0,0x1b,0x0,0x26,0x0, +0x1a,0x0,0x9,0x0,0x6,0x0,0x15,0x0,0x25,0x0,0x21,0x0, +0xa,0x0,0xf4,0xff,0xf0,0xff,0x1,0x0,0x15,0x0,0x14,0x0, +0x2,0x0,0xf0,0xff,0xe9,0xff,0xf0,0xff,0xfa,0xff,0xfe,0xff, +0xfd,0xff,0xfa,0xff,0xf3,0xff,0xeb,0xff,0xe6,0xff,0xea,0xff, +0xef,0xff,0xed,0xff,0xe3,0xff,0xd9,0xff,0xe3,0xff,0x0,0x0, +0x14,0x0,0xe,0x0,0xfa,0xff,0xef,0xff,0xff,0xff,0x22,0x0, +0x36,0x0,0x2c,0x0,0x11,0x0,0x0,0x0,0x9,0x0,0x1c,0x0, +0x1e,0x0,0x11,0x0,0x0,0x0,0xf9,0xff,0x0,0x0,0x8,0x0, +0x8,0x0,0x4,0x0,0x1,0x0,0xfd,0xff,0xfa,0xff,0xf8,0xff, +0xfc,0xff,0x8,0x0,0x10,0x0,0xa,0x0,0xfc,0xff,0xf8,0xff, +0xa,0x0,0x21,0x0,0x2a,0x0,0x20,0x0,0x12,0x0,0x11,0x0, +0x1d,0x0,0x20,0x0,0xc,0x0,0xec,0xff,0xda,0xff,0xe3,0xff, +0xf8,0xff,0x5,0x0,0x4,0x0,0xfb,0xff,0xf9,0xff,0x5,0x0, +0x18,0x0,0x24,0x0,0x26,0x0,0x20,0x0,0x18,0x0,0x10,0x0, +0x6,0x0,0x1,0x0,0x1,0x0,0xf9,0xff,0xe4,0xff,0xc9,0xff, +0xb7,0xff,0xbd,0xff,0xd1,0xff,0xd7,0xff,0xca,0xff,0xba,0xff, +0xbc,0xff,0xd3,0xff,0xee,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff, +0x9,0x0,0x27,0x0,0x3a,0x0,0x37,0x0,0x26,0x0,0x15,0x0, +0x10,0x0,0x12,0x0,0xf,0x0,0x4,0x0,0xfa,0xff,0xf2,0xff, +0xea,0xff,0xde,0xff,0xd9,0xff,0xe4,0xff,0xf2,0xff,0xf5,0xff, +0xeb,0xff,0xe0,0xff,0xe4,0xff,0xf9,0xff,0xc,0x0,0xb,0x0, +0xf8,0xff,0xeb,0xff,0xf5,0xff,0x8,0x0,0xc,0x0,0xfa,0xff, +0xe0,0xff,0xd6,0xff,0xe4,0xff,0xf8,0xff,0x0,0x0,0xfb,0xff, +0xf3,0xff,0xf6,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf7,0xff,0xf3,0xff,0xe9,0xff,0xe7,0xff,0xf0,0xff, +0xf7,0xff,0xf3,0xff,0xe3,0xff,0xd8,0xff,0xdd,0xff,0xe6,0xff, +0xe4,0xff,0xd6,0xff,0xcc,0xff,0xd2,0xff,0xe4,0xff,0xf3,0xff, +0xf8,0xff,0xf2,0xff,0xea,0xff,0xef,0xff,0xfc,0xff,0x2,0x0, +0xfe,0xff,0xf6,0xff,0xf3,0xff,0xf3,0xff,0xf1,0xff,0xea,0xff, +0xe5,0xff,0xe7,0xff,0xed,0xff,0xf2,0xff,0xf3,0xff,0xf7,0xff, +0xfe,0xff,0x5,0x0,0x4,0x0,0xfc,0xff,0xf7,0xff,0xfb,0xff, +0xfd,0xff,0xfa,0xff,0xee,0xff,0xdb,0xff,0xd4,0xff,0xd9,0xff, +0xde,0xff,0xdb,0xff,0xd2,0xff,0xca,0xff,0xcf,0xff,0xdd,0xff, +0xe5,0xff,0xe3,0xff,0xe0,0xff,0xe1,0xff,0xe6,0xff,0xe4,0xff, +0xd9,0xff,0xce,0xff,0xca,0xff,0xcd,0xff,0xd0,0xff,0xcf,0xff, +0xd4,0xff,0xe2,0xff,0xf1,0xff,0xfa,0xff,0xf4,0xff,0xea,0xff, +0xec,0xff,0xf9,0xff,0x2,0x0,0x0,0x0,0xf5,0xff,0xee,0xff, +0xef,0xff,0xf5,0xff,0xf7,0xff,0xf1,0xff,0xe9,0xff,0xec,0xff, +0xf4,0xff,0xf5,0xff,0xef,0xff,0xe9,0xff,0xea,0xff,0xf4,0xff, +0xfc,0xff,0x0,0x0,0x3,0x0,0xb,0x0,0x1c,0x0,0x2d,0x0, +0x2f,0x0,0x29,0x0,0x25,0x0,0x23,0x0,0x1f,0x0,0x13,0x0, +0x3,0x0,0xf8,0xff,0xf4,0xff,0xf5,0xff,0xf7,0xff,0xf2,0xff, +0xeb,0xff,0xea,0xff,0xf0,0xff,0xf8,0xff,0xff,0xff,0x2,0x0, +0x5,0x0,0x5,0x0,0xfc,0xff,0xf1,0xff,0xe9,0xff,0xe7,0xff, +0xeb,0xff,0xee,0xff,0xe8,0xff,0xdf,0xff,0xd9,0xff,0xdc,0xff, +0xe4,0xff,0xe9,0xff,0xe6,0xff,0xe5,0xff,0xeb,0xff,0xf8,0xff, +0x6,0x0,0xf,0x0,0x16,0x0,0x19,0x0,0x1d,0x0,0x1f,0x0, +0x1d,0x0,0x1c,0x0,0x1c,0x0,0x17,0x0,0xf,0x0,0x7,0x0, +0x0,0x0,0x2,0x0,0x9,0x0,0x6,0x0,0xfb,0xff,0xf1,0xff, +0xef,0xff,0xfc,0xff,0xc,0x0,0xf,0x0,0xa,0x0,0x7,0x0, +0x8,0x0,0xe,0x0,0xc,0x0,0xfc,0xff,0xea,0xff,0xdc,0xff, +0xd5,0xff,0xd1,0xff,0xcb,0xff,0xc6,0xff,0xc9,0xff,0xd4,0xff, +0xdd,0xff,0xe4,0xff,0xf1,0xff,0x3,0x0,0x12,0x0,0x1d,0x0, +0x22,0x0,0x24,0x0,0x2b,0x0,0x36,0x0,0x36,0x0,0x2a,0x0, +0x1b,0x0,0x11,0x0,0x14,0x0,0x20,0x0,0x24,0x0,0x1e,0x0, +0x19,0x0,0x1b,0x0,0x26,0x0,0x30,0x0,0x2f,0x0,0x24,0x0, +0x18,0x0,0x12,0x0,0x12,0x0,0x14,0x0,0x13,0x0,0xe,0x0, +0x8,0x0,0x7,0x0,0x5,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0xfe,0xff,0xf8,0xff,0xf5,0xff,0xfa,0xff,0x4,0x0,0xb,0x0, +0xe,0x0,0xe,0x0,0xf,0x0,0x17,0x0,0x25,0x0,0x2a,0x0, +0x22,0x0,0x14,0x0,0xa,0x0,0x8,0x0,0xe,0x0,0xe,0x0, +0x5,0x0,0xf7,0xff,0xf0,0xff,0xf2,0xff,0xfb,0xff,0x4,0x0, +0x8,0x0,0x9,0x0,0x8,0x0,0x6,0x0,0x9,0x0,0x13,0x0, +0x18,0x0,0x12,0x0,0x4,0x0,0xf6,0xff,0xf5,0xff,0x3,0x0, +0x14,0x0,0x1c,0x0,0x1a,0x0,0x14,0x0,0x15,0x0,0x1f,0x0, +0x26,0x0,0x21,0x0,0x11,0x0,0x3,0x0,0x1,0x0,0x7,0x0, +0xc,0x0,0xb,0x0,0x8,0x0,0x5,0x0,0x4,0x0,0x8,0x0, +0xe,0x0,0x13,0x0,0x15,0x0,0x13,0x0,0xb,0x0,0x3,0x0, +0x4,0x0,0xb,0x0,0xc,0x0,0x5,0x0,0xf7,0xff,0xee,0xff, +0xf1,0xff,0xff,0xff,0x8,0x0,0x2,0x0,0xf6,0xff,0xee,0xff, +0xf1,0xff,0xfd,0xff,0x8,0x0,0x8,0x0,0x1,0x0,0xfc,0xff, +0xfd,0xff,0x2,0x0,0x6,0x0,0x5,0x0,0x3,0x0,0x4,0x0, +0x8,0x0,0xf,0x0,0x16,0x0,0x18,0x0,0x17,0x0,0x13,0x0, +0xe,0x0,0xe,0x0,0x12,0x0,0x16,0x0,0x13,0x0,0x8,0x0, +0xfa,0xff,0xf1,0xff,0xf0,0xff,0xf4,0xff,0xf6,0xff,0xf1,0xff, +0xea,0xff,0xeb,0xff,0xf5,0xff,0xff,0xff,0x2,0x0,0xfd,0xff, +0xf4,0xff,0xef,0xff,0xf0,0xff,0xf3,0xff,0xf5,0xff,0xf2,0xff, +0xec,0xff,0xe8,0xff,0xe7,0xff,0xe9,0xff,0xee,0xff,0xf1,0xff, +0xed,0xff,0xea,0xff,0xef,0xff,0xfa,0xff,0xa,0x0,0x16,0x0, +0x17,0x0,0x10,0x0,0xa,0x0,0xa,0x0,0x10,0x0,0x10,0x0, +0x7,0x0,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xff,0xff,0xff,0xff, +0xf8,0xff,0xed,0xff,0xe6,0xff,0xe5,0xff,0xea,0xff,0xf5,0xff, +0x1,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0xb,0x0,0x12,0x0, +0x1a,0x0,0x1c,0x0,0x14,0x0,0x8,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0xff,0xff,0xf0,0xff,0xe1,0xff,0xda,0xff,0xde,0xff, +0xe3,0xff,0xe2,0xff,0xda,0xff,0xd1,0xff,0xd2,0xff,0xe0,0xff, +0xf4,0xff,0x4,0x0,0xb,0x0,0x6,0x0,0xfc,0xff,0xf5,0xff, +0xf2,0xff,0xf1,0xff,0xef,0xff,0xe9,0xff,0xe3,0xff,0xdf,0xff, +0xde,0xff,0xe2,0xff,0xea,0xff,0xee,0xff,0xee,0xff,0xef,0xff, +0xf6,0xff,0x2,0x0,0xd,0x0,0xd,0x0,0x5,0x0,0xfc,0xff, +0xf9,0xff,0xfd,0xff,0x1,0x0,0xff,0xff,0xf4,0xff,0xe7,0xff, +0xe3,0xff,0xe7,0xff,0xef,0xff,0xf5,0xff,0xf6,0xff,0xf3,0xff, +0xf2,0xff,0xf6,0xff,0x0,0x0,0xa,0x0,0xd,0x0,0x9,0x0, +0x3,0x0,0x0,0x0,0x4,0x0,0x9,0x0,0x7,0x0,0x0,0x0, +0xfa,0xff,0xf8,0xff,0xfc,0xff,0x3,0x0,0x6,0x0,0x2,0x0, +0xfa,0xff,0xf7,0xff,0xf9,0xff,0xfe,0xff,0x3,0x0,0x5,0x0, +0x4,0x0,0x2,0x0,0x3,0x0,0x9,0x0,0x10,0x0,0x13,0x0, +0x10,0x0,0xc,0x0,0x9,0x0,0xb,0x0,0xf,0x0,0xf,0x0, +0x8,0x0,0xfe,0xff,0xf7,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff, +0xfc,0xff,0xf5,0xff,0xf2,0xff,0xf9,0xff,0x4,0x0,0xd,0x0, +0xc,0x0,0x4,0x0,0xfc,0xff,0xfd,0xff,0x3,0x0,0x9,0x0, +0xc,0x0,0xa,0x0,0x8,0x0,0x8,0x0,0xc,0x0,0x13,0x0, +0x13,0x0,0xc,0x0,0x4,0x0,0xfd,0xff,0xfc,0xff,0x0,0x0, +0x3,0x0,0x3,0x0,0xff,0xff,0xf9,0xff,0xf9,0xff,0xff,0xff, +0x7,0x0,0x9,0x0,0x3,0x0,0xfa,0xff,0xf9,0xff,0x0,0x0, +0x9,0x0,0xf,0x0,0xd,0x0,0x6,0x0,0x4,0x0,0xb,0x0, +0x16,0x0,0x1c,0x0,0x1a,0x0,0x15,0x0,0x12,0x0,0x13,0x0, +0x18,0x0,0x1b,0x0,0x18,0x0,0x10,0x0,0x7,0x0,0x4,0x0, +0x8,0x0,0xd,0x0,0x10,0x0,0xd,0x0,0x6,0x0,0x4,0x0, +0x8,0x0,0xe,0x0,0x12,0x0,0xc,0x0,0x0,0x0,0xf9,0xff, +0xf7,0xff,0xfb,0xff,0x3,0x0,0x5,0x0,0x2,0x0,0x1,0x0, +0x3,0x0,0x8,0x0,0x10,0x0,0x11,0x0,0xc,0x0,0x7,0x0, +0x3,0x0,0x5,0x0,0x8,0x0,0x7,0x0,0xff,0xff,0xf4,0xff, +0xec,0xff,0xec,0xff,0xf0,0xff,0xf5,0xff,0xf5,0xff,0xf1,0xff, +0xee,0xff,0xf0,0xff,0xf7,0xff,0x0,0x0,0x2,0x0,0xfe,0xff, +0xfa,0xff,0xfb,0xff,0x1,0x0,0x8,0x0,0x8,0x0,0x3,0x0, +0xff,0xff,0x0,0x0,0x5,0x0,0xc,0x0,0xe,0x0,0xa,0x0, +0x3,0x0,0xff,0xff,0x1,0x0,0x9,0x0,0xd,0x0,0xc,0x0, +0x7,0x0,0x3,0x0,0x1,0x0,0x4,0x0,0xa,0x0,0xd,0x0, +0xa,0x0,0x5,0x0,0x2,0x0,0x3,0x0,0x9,0x0,0xb,0x0, +0x4,0x0,0xfd,0xff,0xfb,0xff,0xfe,0xff,0x6,0x0,0xb,0x0, +0x7,0x0,0xff,0xff,0xf9,0xff,0xf8,0xff,0xfd,0xff,0x0,0x0, +0xfe,0xff,0xf9,0xff,0xf5,0xff,0xf6,0xff,0xfd,0xff,0x3,0x0, +0x5,0x0,0x1,0x0,0xfc,0xff,0xfa,0xff,0xfe,0xff,0x3,0x0, +0x5,0x0,0x1,0x0,0xf9,0xff,0xf4,0xff,0xf5,0xff,0xfc,0xff, +0x4,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x5,0x0,0xb,0x0, +0x13,0x0,0x17,0x0,0x14,0x0,0xd,0x0,0x8,0x0,0x8,0x0, +0x9,0x0,0x7,0x0,0x1,0x0,0xf7,0xff,0xf1,0xff,0xf2,0xff, +0xf8,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xff,0xff, +0x7,0x0,0x10,0x0,0x12,0x0,0xe,0x0,0xb,0x0,0xa,0x0, +0xc,0x0,0x10,0x0,0xe,0x0,0x5,0x0,0xfc,0xff,0xf4,0xff, +0xf3,0xff,0xf5,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff, +0xf5,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xf7,0xff, +0xf6,0xff,0xf9,0xff,0xfe,0xff,0x0,0x0,0xfc,0xff,0xf7,0xff, +0xf6,0xff,0xf9,0xff,0xfe,0xff,0x0,0x0,0xfc,0xff,0xf7,0xff, +0xf5,0xff,0xfa,0xff,0x2,0x0,0x6,0x0,0x5,0x0,0x1,0x0, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xf7,0xff,0xf2,0xff, +0xef,0xff,0xf0,0xff,0xf6,0xff,0xfe,0xff,0x4,0x0,0x7,0x0, +0x6,0x0,0x5,0x0,0x8,0x0,0xc,0x0,0xf,0x0,0xe,0x0, +0x9,0x0,0x4,0x0,0x4,0x0,0x8,0x0,0x9,0x0,0x4,0x0, +0xfe,0xff,0xf8,0xff,0xf9,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff, +0xf9,0xff,0xf5,0xff,0xf7,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfa,0xff,0xf8,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff, +0xfc,0xff,0xf7,0xff,0xf4,0xff,0xf4,0xff,0xf9,0xff,0x0,0x0, +0x5,0x0,0x7,0x0,0x8,0x0,0xc,0x0,0x14,0x0,0x1a,0x0, +0x18,0x0,0x10,0x0,0x7,0x0,0x1,0x0,0x1,0x0,0x4,0x0, +0x3,0x0,0xfe,0xff,0xfa,0xff,0xfb,0xff,0xff,0xff,0x3,0x0, +0x4,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x6,0x0,0xb,0x0, +0xe,0x0,0xe,0x0,0xd,0x0,0xb,0x0,0x7,0x0,0x7,0x0, +0xa,0x0,0x9,0x0,0x4,0x0,0xfc,0xff,0xf6,0xff,0xf6,0xff, +0xfa,0xff,0xfa,0xff,0xf6,0xff,0xf3,0xff,0xf3,0xff,0xfa,0xff, +0x3,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x8,0x0,0xf,0x0, +0x18,0x0,0x1d,0x0,0x1b,0x0,0x15,0x0,0x12,0x0,0x11,0x0, +0x11,0x0,0x14,0x0,0x13,0x0,0xe,0x0,0xb,0x0,0x8,0x0, +0x7,0x0,0xa,0x0,0xc,0x0,0xc,0x0,0x9,0x0,0x7,0x0, +0x9,0x0,0xf,0x0,0x12,0x0,0x10,0x0,0xd,0x0,0xc,0x0, +0xf,0x0,0x15,0x0,0x18,0x0,0x14,0x0,0xa,0x0,0x2,0x0, +0xff,0xff,0x0,0x0,0x3,0x0,0x4,0x0,0x0,0x0,0xfc,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xf6,0xff,0xf2,0xff, +0xf1,0xff,0xf3,0xff,0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf7,0xff, +0xf3,0xff,0xf4,0xff,0xf9,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfa,0xff,0xfd,0xff,0x4,0x0,0x9,0x0,0xb,0x0,0x7,0x0, +0x1,0x0,0xfe,0xff,0x1,0x0,0x6,0x0,0xa,0x0,0x8,0x0, +0x6,0x0,0x6,0x0,0x9,0x0,0xc,0x0,0xe,0x0,0xb,0x0, +0x8,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0xff,0xff, +0xf9,0xff,0xf3,0xff,0xf3,0xff,0xf7,0xff,0xfb,0xff,0xfc,0xff, +0xfa,0xff,0xf6,0xff,0xf7,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xf9,0xff,0xf8,0xff,0xfa,0xff,0xff,0xff,0x4,0x0, +0x4,0x0,0x0,0x0,0xfc,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff, +0xf8,0xff,0xf3,0xff,0xee,0xff,0xec,0xff,0xf0,0xff,0xf4,0xff, +0xf6,0xff,0xf4,0xff,0xf1,0xff,0xf2,0xff,0xf5,0xff,0xf8,0xff, +0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf8,0xff, +0xf9,0xff,0xf6,0xff,0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf4,0xff, +0xf7,0xff,0xf7,0xff,0xf5,0xff,0xf2,0xff,0xf1,0xff,0xf4,0xff, +0xf7,0xff,0xf8,0xff,0xf5,0xff,0xf0,0xff,0xec,0xff,0xee,0xff, +0xf2,0xff,0xf2,0xff,0xee,0xff,0xea,0xff,0xea,0xff,0xee,0xff, +0xf5,0xff,0xf8,0xff,0xf4,0xff,0xf0,0xff,0xf0,0xff,0xf2,0xff, +0xf6,0xff,0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff, +0xfa,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0x0,0x0,0x3,0x0,0x2,0x0,0xfd,0xff,0xf9,0xff, +0xfc,0xff,0x2,0x0,0x5,0x0,0x1,0x0,0xf9,0xff,0xf5,0xff, +0xf7,0xff,0xfc,0xff,0xff,0xff,0xfe,0xff,0xfa,0xff,0xfa,0xff, +0xfd,0xff,0x3,0x0,0x6,0x0,0x2,0x0,0xfd,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xfb,0xff, +0xf9,0xff,0xfa,0xff,0x0,0x0,0x6,0x0,0x8,0x0,0x3,0x0, +0xfe,0xff,0xfd,0xff,0x1,0x0,0x5,0x0,0x5,0x0,0xff,0xff, +0xf8,0xff,0xf7,0xff,0xfa,0xff,0xfd,0xff,0xfb,0xff,0xf4,0xff, +0xef,0xff,0xf0,0xff,0xf7,0xff,0xfd,0xff,0xff,0xff,0xfb,0xff, +0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfa,0xff,0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfd,0xff,0x1,0x0, +0x0,0x0,0xfb,0xff,0xfa,0xff,0xfe,0xff,0x3,0x0,0x5,0x0, +0xff,0xff,0xf8,0xff,0xf6,0xff,0xfa,0xff,0x2,0x0,0x6,0x0, +0x2,0x0,0xfd,0xff,0xfc,0xff,0xfe,0xff,0x3,0x0,0x6,0x0, +0x2,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfc,0xff,0xf7,0xff,0xf4,0xff,0xf5,0xff,0xf9,0xff, +0xfd,0xff,0xfd,0xff,0xf8,0xff,0xf3,0xff,0xf5,0xff,0xfd,0xff, +0x4,0x0,0x6,0x0,0x3,0x0,0x2,0x0,0x4,0x0,0xa,0x0, +0xd,0x0,0x9,0x0,0x2,0x0,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xff,0xff, +0x3,0x0,0x7,0x0,0xa,0x0,0xa,0x0,0x8,0x0,0x9,0x0, +0xc,0x0,0xf,0x0,0xe,0x0,0x8,0x0,0x3,0x0,0x2,0x0, +0x7,0x0,0xf,0x0,0x12,0x0,0xf,0x0,0xb,0x0,0x9,0x0, +0xc,0x0,0x11,0x0,0xe,0x0,0x9,0x0,0x6,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfc,0xff, +0xfa,0xff,0xfc,0xff,0x3,0x0,0x9,0x0,0xa,0x0,0x6,0x0, +0x6,0x0,0xb,0x0,0x12,0x0,0x14,0x0,0x10,0x0,0xb,0x0, +0xa,0x0,0xb,0x0,0xb,0x0,0x8,0x0,0x0,0x0,0xfb,0xff, +0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff, +0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfd,0xff,0x1,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x6,0x0,0xa,0x0,0xa,0x0, +0x6,0x0,0x3,0x0,0x3,0x0,0x9,0x0,0xd,0x0,0xa,0x0, +0x6,0x0,0x6,0x0,0xa,0x0,0xe,0x0,0xd,0x0,0x7,0x0, +0x2,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x3,0x0, +0x3,0x0,0xff,0xff,0xfb,0xff,0xfc,0xff,0x2,0x0,0x7,0x0, +0x6,0x0,0x1,0x0,0xfe,0xff,0x0,0x0,0x5,0x0,0x7,0x0, +0x2,0x0,0xfb,0xff,0xf9,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0, +0x3,0x0,0x6,0x0,0x8,0x0,0x7,0x0,0x3,0x0,0x4,0x0, +0x9,0x0,0xa,0x0,0x6,0x0,0xff,0xff,0xfb,0xff,0xfe,0xff, +0x3,0x0,0x3,0x0,0xff,0xff,0xfa,0xff,0xfa,0xff,0x1,0x0, +0x4,0x0,0x2,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0x1,0x0, +0x2,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0x2,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x0,0x0, +0x1,0x0,0x6,0x0,0x7,0x0,0x3,0x0,0xfd,0xff,0xf8,0xff, +0xf8,0xff,0xfa,0xff,0xfa,0xff,0xf5,0xff,0xee,0xff,0xed,0xff, +0xf2,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff, +0xfb,0xff,0xfa,0xff,0xfd,0xff,0x1,0x0,0x4,0x0,0x2,0x0, +0xfe,0xff,0xfe,0xff,0x3,0x0,0x7,0x0,0x7,0x0,0x3,0x0, +0xff,0xff,0x0,0x0,0x3,0x0,0x5,0x0,0x3,0x0,0xfc,0xff, +0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0x0,0x0,0xff,0xff,0x1,0x0,0x6,0x0,0x8,0x0, +0x8,0x0,0x6,0x0,0x5,0x0,0x7,0x0,0xb,0x0,0xc,0x0, +0x9,0x0,0x4,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xf9,0xff,0xf3,0xff,0xf1,0xff,0xf2,0xff,0xf4,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf9,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf8,0xff, +0xfb,0xff,0xfc,0xff,0xf9,0xff,0xf8,0xff,0xfc,0xff,0x0,0x0, +0x5,0x0,0xa,0x0,0x9,0x0,0x8,0x0,0x9,0x0,0xc,0x0, +0xd,0x0,0xa,0x0,0x5,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff, +0xfb,0xff,0x0,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x9,0x0,0x9,0x0,0x5,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x3,0x0,0x6,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x8,0x0, +0x9,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0x0,0x0,0x3,0x0,0x6,0x0,0x6,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x5,0x0,0x6,0x0,0x4,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x6,0x0,0x8,0x0,0x8,0x0, +0x8,0x0,0xa,0x0,0xc,0x0,0xd,0x0,0xf,0x0,0x11,0x0, +0x12,0x0,0x11,0x0,0xe,0x0,0xb,0x0,0x8,0x0,0x7,0x0, +0x8,0x0,0x7,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x3,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x5,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x4,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x4,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfa,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff, +0xf6,0xff,0xf9,0xff,0xf8,0xff,0xf5,0xff,0xf4,0xff,0xf6,0xff, +0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xfc,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf6,0xff, +0xf7,0xff,0xf8,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x3,0x0,0x4,0x0, +0x0,0x0,0xfb,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x3,0x0, +0x6,0x0,0x7,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x0,0x0, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x1,0x0, +0x3,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0x0,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x5,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x5,0x0, +0x5,0x0,0x4,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x4,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/eat1.pcm b/src/client/sound/data/eat1.pcm new file mode 100755 index 0000000..580702b --- /dev/null +++ b/src/client/sound/data/eat1.pcm @@ -0,0 +1,769 @@ +unsigned char PCM_eat1[24538] = { +1,0,0,0,2,0,0,0,68,172,0,0,229,47,0,0,255,254,49,254,167,253,238,253,235,254,14,0,171,0,109,0, +189,255,43,255,224,254,223,254,209,254,78,254,49,254,122,255,11,1,105,1,220,0,85,0,105,0,222,0,238,0,185,0, +171,0,156,0,155,0,145,0,131,0,0,1,167,1,160,1,252,0,247,255,210,254,11,254,232,253,63,254,152,254,196,254, +230,254,7,255,62,255,94,255,81,255,180,255,131,0,17,1,72,1,91,1,112,1,105,1,0,1,115,0,240,255,95,255, +254,254,235,254,37,255,135,255,104,255,220,254,210,254,32,255,190,254,247,253,8,254,245,254,223,255,120,0,191,0,2,1, +158,1,243,1,91,1,87,0,202,255,212,255,248,255,56,0,141,0,107,0,21,0,235,255,185,255,219,255,81,0,142,0, +202,0,4,1,195,0,253,255,1,255,142,254,12,255,15,0,251,0,44,1,206,0,128,0,26,0,255,255,167,0,31,1, +4,1,210,0,181,0,196,0,184,0,166,0,25,1,76,1,167,0,22,0,21,0,98,0,151,0,131,0,148,0,177,0, +114,0,133,0,35,1,254,0,150,255,68,254,44,254,18,255,98,0,130,1,222,1,176,1,103,1,7,1,238,0,106,1, +240,1,173,1,200,0,110,0,135,0,212,255,4,255,180,255,105,1,103,2,226,1,216,0,156,0,213,0,191,0,118,0, +10,0,123,255,202,254,101,254,119,255,184,1,51,3,248,2,81,1,100,255,191,254,85,255,208,255,211,255,241,255,133,0, +24,1,3,1,86,0,154,255,128,255,65,0,237,0,223,0,140,0,68,0,112,0,134,1,100,2,147,1,221,255,30,255, +245,255,133,1,44,2,93,1,155,0,7,1,177,1,66,1,209,255,194,254,205,254,60,255,154,255,215,255,227,255,45,0, +63,0,117,255,13,255,151,255,20,0,137,0,254,0,199,0,43,0,174,255,17,255,63,254,35,254,28,255,175,255,94,255, +126,255,220,255,136,255,241,254,187,254,66,255,57,0,194,0,209,0,107,0,95,255,137,254,170,254,97,255,206,255,135,255, +3,255,153,254,182,254,51,255,19,254,241,251,111,252,187,254,140,255,239,255,160,1,108,3,236,3,213,2,198,0,249,254, +9,254,130,253,22,253,52,253,164,253,171,253,115,253,24,253,140,252,162,252,162,253,11,255,93,0,164,0,22,0,69,0, +21,1,33,1,105,0,233,255,166,255,220,254,235,253,167,253,122,253,11,253,212,252,246,252,4,254,173,255,11,0,87,255, +62,255,145,255,235,255,131,0,74,1,70,2,154,2,21,1,175,254,88,253,140,253,48,254,12,254,210,253,192,254,66,0, +38,1,246,0,70,0,217,255,228,254,215,253,13,255,237,0,119,0,215,255,41,1,121,2,155,2,31,2,50,1,255,255, +249,254,156,254,190,254,163,254,78,254,2,254,202,253,11,254,163,254,60,255,71,0,205,1,207,2,137,2,123,1,238,0, +235,0,113,0,254,255,149,0,90,1,115,1,224,1,227,2,42,3,179,2,7,2,54,0,90,253,82,251,224,250,146,251, +255,252,176,254,82,0,138,1,177,1,217,0,52,0,129,0,46,1,172,1,206,1,67,1,38,0,113,254,35,252,211,250, +115,251,173,252,231,253,151,255,164,1,152,3,123,4,228,3,148,2,242,0,180,255,230,255,237,0,162,1,194,1,107,1, +210,0,234,255,53,255,235,255,111,1,213,1,64,1,235,0,132,0,131,255,172,254,145,254,66,255,171,0,138,1,14,1, +48,0,148,255,183,255,231,0,163,1,21,1,46,0,35,255,33,254,200,253,241,253,42,254,43,254,72,254,47,255,150,0, +252,1,183,2,255,1,217,0,117,0,68,0,249,255,177,255,73,255,85,255,112,0,223,1,212,1,234,255,90,254,117,254, +12,255,42,255,27,255,149,255,63,0,184,255,93,254,224,253,210,254,246,0,242,2,63,3,158,2,178,1,209,255,64,254, +186,254,39,0,245,0,11,1,174,0,56,0,245,255,240,255,93,0,242,0,17,1,247,0,170,0,2,0,224,255,106,0, +184,0,176,0,108,0,18,0,14,0,8,0,242,255,87,0,216,0,242,0,114,0,67,255,148,254,138,255,54,1,17,2, +205,1,63,1,25,1,21,1,191,0,40,0,165,255,114,255,127,255,172,255,242,255,225,255,14,255,108,254,55,255,60,0, +152,255,80,254,93,254,136,255,148,0,219,0,142,0,98,0,153,0,185,0,95,0,1,0,67,0,166,0,55,0,4,255, +26,254,91,254,28,255,64,255,43,255,52,255,250,254,203,254,236,254,82,255,29,0,182,0,225,0,110,1,13,2,187,1, +214,0,244,255,241,254,51,254,92,254,33,255,26,0,230,0,216,0,27,0,37,255,33,254,221,253,132,254,77,255,31,0, +187,0,180,0,127,0,82,0,64,0,109,0,102,0,126,0,37,1,120,1,31,1,170,0,91,0,149,0,60,1,104,1, +233,0,122,0,137,0,1,1,109,1,19,1,89,0,85,0,140,0,121,0,169,0,155,0,42,0,70,0,98,0,6,0, +198,255,115,255,64,255,134,255,196,255,23,0,110,0,12,0,7,255,210,253,39,253,128,253,1,254,105,254,77,255,21,0, +61,0,65,0,79,0,76,0,165,0,115,1,134,1,37,0,168,254,138,254,141,255,116,0,157,0,156,0,185,0,168,0, +129,0,76,0,68,0,170,0,166,0,12,0,73,0,132,1,68,2,68,2,138,2,186,2,171,1,49,0,140,255,38,255, +161,254,112,254,80,254,251,253,22,254,73,255,234,0,156,1,110,1,77,1,62,1,248,0,117,0,222,255,190,255,47,0, +90,0,216,255,83,255,93,255,251,255,184,0,190,0,53,0,14,0,3,0,201,255,48,0,8,1,29,1,69,0,126,255, +56,255,175,254,18,254,151,254,217,255,188,0,197,0,255,255,213,255,148,0,163,0,145,0,139,1,68,2,213,1,214,0, +251,255,189,255,225,255,40,0,156,0,208,0,118,0,153,255,91,254,79,253,67,253,125,254,17,0,199,0,147,0,245,255, +116,255,135,255,13,0,214,0,181,1,48,2,210,1,98,0,193,254,247,253,115,253,17,253,49,253,45,253,135,253,28,255, +129,0,150,0,25,0,254,255,49,0,212,255,242,254,87,254,106,254,104,255,104,0,77,0,186,255,51,255,143,254,61,254, +122,254,72,255,80,0,203,0,184,0,108,0,51,0,57,0,237,255,199,255,196,0,206,1,194,1,30,1,129,0,31,0, +154,255,211,254,185,254,103,255,198,255,98,255,235,254,30,255,213,255,139,0,208,0,146,0,182,0,19,1,73,0,251,254, +88,254,16,254,174,254,103,0,110,1,227,0,188,255,44,255,134,255,220,255,121,255,172,254,245,253,1,254,219,254,119,255, +126,255,176,255,63,0,140,0,59,0,206,255,235,255,88,0,85,0,199,255,70,255,26,255,35,255,146,255,102,0,246,0, +22,1,23,1,168,0,216,255,205,255,249,0,122,2,92,3,48,3,36,2,202,0,131,255,144,254,68,254,203,254,230,255, +198,0,11,1,252,0,116,0,165,255,114,255,138,255,94,255,123,255,217,255,246,255,20,0,35,0,201,255,134,255,253,255, +82,1,7,3,171,3,109,2,166,0,247,255,50,0,52,0,111,255,177,254,38,255,33,0,56,0,204,255,170,255,199,255, +25,0,30,0,100,255,235,254,145,255,110,0,45,0,18,255,131,254,136,254,159,254,115,255,122,0,32,0,55,255,120,255, +138,0,71,1,103,1,98,1,65,1,96,0,242,254,31,254,129,254,127,255,13,0,40,0,79,0,54,0,206,255,107,255, +246,254,192,254,39,255,178,255,15,0,83,0,98,0,121,0,56,1,129,2,20,3,84,2,65,1,182,0,141,0,123,0, +88,0,33,0,164,255,207,254,57,254,246,253,157,253,88,253,95,253,253,253,63,255,104,0,105,1,161,2,177,3,119,4, +237,4,195,4,230,3,97,2,217,0,45,0,14,0,219,255,89,255,153,254,15,254,192,253,166,253,19,254,186,254,84,255, +176,255,78,255,217,254,9,255,1,255,120,254,77,254,212,254,153,255,101,0,153,1,235,2,107,3,48,3,186,2,15,2, +144,1,168,1,223,1,34,1,65,255,202,253,224,253,177,254,45,255,83,255,85,255,253,254,187,254,99,255,99,0,244,0, +93,1,138,1,106,1,41,1,133,0,22,0,78,0,101,0,137,0,216,0,11,0,46,254,207,252,213,252,46,254,195,255, +63,0,145,255,219,254,29,255,16,0,165,0,128,0,49,0,65,0,131,0,141,0,104,0,59,0,9,0,237,255,57,0, +185,0,144,0,171,255,182,254,2,254,38,254,3,255,5,255,28,254,211,253,162,254,34,0,125,1,228,1,215,1,6,2, +85,2,87,2,78,1,247,254,115,252,218,250,10,250,213,249,148,250,12,252,130,253,164,254,154,255,204,0,222,1,4,2, +201,1,207,1,195,1,158,1,59,1,133,0,40,0,103,0,39,1,144,1,112,0,236,254,138,254,215,254,195,255,178,0, +238,255,36,254,106,253,240,253,68,254,251,253,181,254,160,0,203,1,26,2,186,1,198,255,236,253,54,254,31,255,234,254, +64,254,51,254,215,254,128,255,192,255,224,255,14,0,81,0,167,0,134,0,236,255,198,255,45,0,177,0,23,1,135,0, +24,255,95,254,132,254,156,254,158,254,186,254,23,255,198,255,192,0,28,2,236,2,48,2,186,0,135,255,6,255,166,255, +169,0,210,0,63,0,165,255,104,255,180,255,47,0,42,0,216,255,48,0,55,1,241,1,216,1,98,1,31,1,173,0, +214,255,98,255,15,255,90,254,115,254,213,255,55,1,154,1,4,1,28,0,22,255,253,253,167,253,135,254,94,0,119,2, +119,3,119,3,128,3,8,3,195,1,68,0,196,254,99,254,184,255,6,1,217,0,194,255,82,255,31,0,213,0,105,0, +122,255,208,254,241,254,240,255,176,0,105,0,239,255,234,255,21,0,78,0,107,0,62,0,20,0,38,0,204,0,200,1, +224,1,92,1,50,1,215,0,94,0,77,0,212,255,13,255,54,255,63,0,211,0,122,0,83,0,161,0,148,0,195,0, +101,1,109,1,227,0,14,0,32,255,167,254,74,254,232,253,25,254,185,254,151,255,122,0,210,0,122,0,75,255,210,253, +75,253,134,253,162,253,130,253,164,253,236,254,203,0,107,1,248,0,239,0,83,1,157,1,252,1,71,2,211,1,231,0, +157,0,35,1,102,1,176,0,173,255,67,255,121,255,126,255,87,254,215,252,232,252,76,254,235,255,57,1,103,1,68,1, +225,1,223,1,251,0,147,0,160,0,222,0,121,1,21,2,216,1,114,0,90,255,27,255,95,254,32,254,190,255,122,1, +221,1,1,1,76,255,207,253,0,253,179,252,130,253,66,255,76,0,11,0,246,255,240,0,8,2,62,2,141,1,198,0, +178,0,228,0,12,1,122,1,110,1,78,0,4,255,162,254,126,255,148,0,114,0,112,255,166,254,70,254,98,254,8,255, +174,255,169,255,1,255,111,254,151,254,105,255,57,0,175,0,75,1,234,1,125,1,21,0,210,254,21,254,224,253,131,254, +201,255,3,1,223,1,54,2,238,1,83,1,212,0,191,0,8,1,254,0,65,0,119,255,215,254,136,253,75,251,129,249, +217,249,28,252,97,254,2,0,222,1,61,3,157,2,94,1,222,1,130,3,148,4,193,4,214,3,48,2,105,1,86,1, +0,0,134,253,190,251,30,251,30,251,168,251,176,252,173,253,98,254,50,255,53,0,68,1,168,2,58,4,236,4,13,4, +50,2,203,0,186,0,174,1,12,3,44,4,154,4,116,4,42,3,124,0,87,254,134,253,8,253,243,253,62,0,180,255, +245,250,76,246,39,245,17,247,18,250,150,252,45,253,174,250,94,247,137,248,218,254,211,4,28,7,226,7,36,10,75,14, +237,17,206,17,34,14,201,10,115,9,56,8,173,6,152,5,169,2,174,251,104,243,63,238,71,237,182,238,114,241,62,246, +160,252,41,1,50,1,91,254,190,252,137,254,169,2,52,7,185,10,198,11,235,9,91,6,196,2,32,0,21,254,27,252, +134,250,36,249,213,247,173,247,206,248,92,250,100,252,141,254,234,255,209,0,223,1,242,2,148,3,22,3,135,1,176,255, +214,253,108,252,55,252,15,253,103,254,191,255,167,0,101,1,34,2,106,2,86,2,207,1,80,0,181,254,41,254,108,254, +244,254,107,255,169,255,252,255,38,0,0,0,70,0,119,0,103,255,230,253,12,253,198,252,19,253,235,253,248,254,242,255, +137,0,248,0,154,1,23,2,80,2,110,2,97,2,100,2,132,2,118,2,59,2,189,1,8,1,169,0,227,0,173,1, +149,2,184,2,214,1,35,0,44,254,244,252,23,252,16,251,172,251,148,254,94,1,87,2,28,2,212,1,154,1,91,1, +187,1,172,1,20,0,143,255,3,1,113,1,194,0,159,0,86,0,192,255,68,255,198,254,68,255,126,0,156,0,254,255, +4,0,83,0,53,0,123,255,130,254,24,254,29,254,186,253,84,253,227,253,220,254,53,255,106,255,56,0,227,0,155,0, +43,0,161,0,121,1,124,1,197,0,96,0,120,0,109,0,243,255,53,255,204,254,222,254,172,254,67,254,118,254,34,255, +240,255,217,0,132,1,195,1,71,1,116,0,246,0,32,2,143,1,237,255,229,254,201,254,111,255,119,255,156,254,139,254, +140,254,224,253,203,254,32,1,248,1,37,1,53,0,120,255,197,254,135,254,142,255,214,1,160,3,130,3,113,2,151,1, +148,0,63,255,8,254,65,253,156,253,15,255,73,0,143,0,57,0,24,0,220,0,48,2,5,3,157,2,111,1,181,0, +93,0,143,255,107,254,162,253,188,253,83,254,123,254,132,254,174,254,134,254,187,254,23,0,41,2,204,3,213,3,173,2, +173,1,18,1,210,0,212,0,128,0,182,255,194,254,47,254,110,254,231,254,53,255,155,255,229,255,247,255,8,0,59,0, +147,0,202,0,18,1,157,1,181,1,107,1,125,1,91,1,97,0,43,255,142,254,124,254,99,254,85,254,137,254,214,254, +70,255,108,255,51,255,180,255,126,0,105,0,63,0,137,0,193,0,181,0,68,0,75,0,113,1,61,2,209,1,189,0, +103,255,159,254,83,254,98,253,117,252,194,252,38,254,40,0,234,1,134,2,0,2,220,0,34,0,124,0,13,1,10,1, +184,0,60,0,134,255,253,254,93,255,198,0,32,2,101,2,236,1,18,1,160,255,82,254,68,254,126,255,75,1,231,1, +206,255,13,253,10,253,138,255,170,1,17,2,218,1,144,1,87,0,253,254,58,255,86,0,157,0,200,255,30,255,61,0, +76,2,15,3,222,2,24,3,16,3,167,1,102,255,115,253,26,252,86,251,90,251,2,252,186,252,42,253,68,254,227,0, +24,3,24,3,124,2,114,2,239,1,218,0,14,0,155,255,126,255,30,0,72,1,46,2,105,2,206,1,97,0,217,254, +158,253,116,252,230,251,253,252,0,255,178,255,252,254,232,254,140,255,209,255,237,255,42,0,128,0,144,0,248,255,129,255, +47,255,83,254,30,254,40,255,76,0,252,0,43,1,50,1,128,1,166,1,160,1,143,1,238,0,25,0,202,255,185,255, +161,255,251,255,203,0,24,1,89,0,224,254,93,253,16,253,249,253,114,254,104,254,227,254,122,255,124,255,189,255,32,1, +0,2,240,0,35,0,146,0,98,0,11,0,150,0,201,0,71,0,215,255,171,255,220,255,96,0,158,0,63,0,182,255, +92,255,78,255,40,0,108,1,168,1,89,1,176,1,55,2,35,2,120,1,197,0,125,0,69,0,162,255,220,254,150,254, +195,254,11,255,124,255,18,0,194,0,74,1,53,1,45,1,89,1,182,0,16,0,17,0,80,255,226,253,225,252,106,252, +175,252,172,253,50,255,247,0,248,1,219,1,255,0,16,0,94,0,124,1,83,1,215,255,138,254,196,253,69,253,184,253, +118,255,47,1,182,1,40,1,0,0,200,254,181,253,231,252,249,252,251,253,68,255,28,0,27,0,117,255,67,254,55,253, +208,253,155,255,204,0,10,1,54,1,228,1,75,2,196,1,47,1,154,0,160,255,55,255,154,255,242,255,244,255,6,0, +222,0,60,2,13,3,178,2,69,1,42,0,73,0,106,0,16,0,54,0,219,0,182,0,207,254,53,252,5,251,168,251, +196,252,56,253,132,253,86,254,210,254,182,254,210,254,24,255,173,255,195,0,157,1,246,1,8,2,23,2,24,2,11,1, +14,255,243,253,91,254,79,255,5,0,112,0,159,0,114,0,252,255,75,255,200,254,50,255,243,255,28,0,27,0,80,0, +154,0,12,1,154,1,17,2,46,2,0,2,191,1,87,1,53,1,141,1,158,1,95,1,226,0,204,255,240,254,253,254, +66,255,120,255,196,255,235,255,49,0,54,1,70,2,33,2,64,1,192,0,140,0,85,0,24,0,220,255,53,255,42,253, +190,250,127,250,48,252,2,254,153,255,142,0,107,0,207,255,27,255,93,254,193,253,52,253,67,253,89,254,132,255,197,0, +137,2,57,3,100,2,177,1,127,1,216,1,152,2,19,2,104,0,135,255,143,255,203,255,5,0,31,0,107,0,226,0, +245,0,166,0,103,0,158,0,44,1,147,1,161,1,74,1,213,0,22,1,80,2,51,3,34,2,248,255,34,255,232,255, +37,1,19,2,187,1,77,0,73,255,253,254,29,255,42,0,213,1,136,2,180,1,197,0,193,0,186,0,172,255,43,254, +66,253,18,253,105,253,92,254,131,255,161,0,194,1,7,2,31,1,25,0,143,255,236,255,16,1,109,1,216,0,144,0, +71,0,92,255,152,254,8,255,160,0,221,1,134,1,59,0,242,254,40,254,112,254,150,255,13,0,202,254,89,253,206,253, +13,255,64,255,147,255,240,0,12,2,147,2,22,3,149,3,250,3,86,3,33,1,84,255,42,255,24,255,36,254,223,252, +216,251,130,251,214,251,48,252,217,252,144,254,101,0,239,0,128,0,5,0,204,255,9,0,180,0,118,1,245,1,6,2, +39,2,170,2,165,2,92,1,171,255,215,254,56,255,225,255,79,255,177,253,76,253,159,254,72,255,106,254,210,253,235,254, +108,1,178,3,28,4,252,2,163,1,169,0,57,0,121,0,30,1,110,1,228,0,155,255,243,253,70,252,49,251,77,251, +5,252,88,252,226,252,124,254,62,0,101,1,90,2,238,2,21,2,237,255,177,254,147,255,95,0,146,255,251,254,17,0, +171,1,16,2,80,1,250,0,19,2,233,3,74,4,26,2,21,255,6,253,107,252,202,252,67,252,44,251,127,252,135,255, +30,1,135,1,251,2,220,5,88,8,99,8,86,5,60,0,227,251,156,250,13,252,149,254,131,0,244,0,78,0,253,254, +128,253,56,252,90,251,249,251,139,253,106,254,193,255,248,1,255,2,18,3,198,3,41,5,2,6,174,4,157,1,220,254, +109,253,51,253,207,252,140,251,123,251,153,253,241,255,56,1,6,2,244,2,64,3,250,1,244,255,163,254,112,254,251,254, +253,255,142,1,112,3,63,5,156,6,114,6,133,4,22,2,239,255,66,254,241,252,181,251,12,251,9,251,249,250,24,251, +48,252,131,254,12,1,68,2,163,2,79,3,69,3,190,1,66,0,7,0,3,0,81,255,253,254,163,255,102,0,254,0, +143,1,221,1,165,1,172,0,114,255,168,254,221,253,10,253,48,253,58,254,203,254,133,254,210,254,83,0,122,1,151,1, +107,1,132,0,102,254,122,252,232,251,25,252,147,252,149,253,208,254,190,255,16,0,19,255,33,253,77,252,81,253,69,254, +195,253,241,252,111,253,40,255,231,0,148,1,23,1,118,0,44,0,173,255,235,254,97,254,17,254,144,253,27,253,112,253, +14,254,170,254,117,0,194,2,106,3,119,2,7,1,20,0,83,0,211,0,137,0,224,255,59,255,118,254,127,253,24,253, +68,254,40,0,70,1,105,1,191,0,208,255,59,255,30,255,5,0,124,1,197,1,229,0,28,0,104,0,53,2,126,3, +189,2,95,2,126,3,105,3,243,0,39,254,74,253,152,254,49,0,60,0,243,254,58,254,223,254,2,0,202,0,182,255, +136,252,255,251,107,1,246,7,86,9,112,5,133,0,38,253,66,251,76,252,250,0,138,5,113,7,61,7,182,3,252,252, +233,247,56,248,91,252,218,0,212,3,110,4,94,2,27,255,56,253,115,254,147,2,24,7,221,8,128,6,25,1,117,251, +168,248,15,250,11,254,169,1,54,3,127,2,42,0,41,253,228,250,90,251,145,254,42,2,184,4,167,5,234,4,76,4, +60,5,99,7,125,9,191,9,195,7,107,4,74,0,235,252,173,251,119,251,217,250,237,249,132,249,94,250,37,252,126,253, +123,254,208,0,188,3,86,4,200,2,140,1,113,1,245,1,155,2,146,3,84,5,251,6,165,6,108,3,110,254,232,249, +72,247,130,246,174,246,161,247,136,249,214,250,244,250,193,251,10,254,13,2,231,6,14,9,151,7,224,4,148,2,236,1, +235,1,90,0,82,254,54,253,135,252,60,252,180,251,50,250,85,249,217,250,192,253,14,0,187,0,183,255,233,254,107,0, +4,3,168,4,203,4,198,3,37,3,244,2,146,1,177,255,17,255,93,0,148,2,24,3,38,1,55,254,82,252,222,252, +225,253,151,253,140,253,134,254,90,0,23,2,135,2,32,3,177,3,141,2,44,1,204,255,243,253,89,253,3,254,204,254, +146,254,78,253,156,253,152,255,19,1,226,1,109,2,168,3,122,4,13,2,176,254,44,253,223,251,123,250,43,250,35,251, +136,252,178,252,107,252,184,253,113,0,82,3,196,4,254,3,247,1,156,0,27,1,143,1,25,1,207,1,170,2,4,2, +236,0,224,254,44,252,242,250,25,251,45,252,165,253,38,254,126,254,156,255,124,0,251,0,162,1,70,2,99,3,183,4, +225,3,241,0,55,255,155,255,98,0,140,0,217,0,136,2,122,3,3,1,144,253,34,252,235,252,199,254,108,255,249,254, +225,255,101,2,71,5,189,6,190,5,156,3,120,1,241,255,205,254,120,252,247,249,109,249,126,250,35,252,197,253,185,255, +142,1,9,1,80,255,173,255,196,1,225,2,249,0,148,253,118,252,157,253,98,255,223,1,251,3,92,4,128,3,96,2, +48,1,6,255,27,252,101,250,180,250,154,252,180,254,177,254,93,253,29,254,179,0,116,2,176,2,252,0,229,253,80,252, +180,252,96,253,83,254,76,255,207,255,37,0,21,0,192,255,214,254,219,252,139,251,209,251,182,252,38,254,52,0,184,2, +170,5,66,8,33,9,202,7,116,6,45,6,96,4,26,1,99,254,86,251,148,247,163,244,95,244,125,247,109,251,68,254, +140,0,237,1,66,2,35,2,105,2,157,3,80,4,145,4,138,5,176,5,144,4,250,2,203,0,2,255,155,253,190,251, +215,249,182,247,195,246,214,248,82,252,137,255,72,1,31,1,159,1,123,3,206,4,121,4,94,1,84,253,42,252,126,253, +45,255,223,255,153,254,149,253,31,255,119,1,174,2,4,2,227,255,86,255,204,0,63,1,70,1,74,2,169,2,244,2, +96,4,144,5,238,5,232,4,95,2,235,0,10,1,217,0,78,0,133,255,149,254,88,254,134,254,140,255,74,2,170,4, +162,4,13,3,160,0,223,253,156,252,86,253,53,255,197,1,254,2,30,1,185,254,113,254,195,254,219,253,163,252,2,253, +39,255,214,0,74,0,72,255,75,0,59,2,162,2,246,1,172,2,247,4,69,5,239,1,89,254,159,252,245,251,41,252, +84,252,212,251,200,251,164,252,207,253,224,253,127,252,232,251,33,253,8,255,181,255,73,254,208,253,164,255,11,1,60,2, +77,4,222,5,231,5,11,4,176,1,85,0,46,0,173,1,105,2,105,1,5,2,74,2,122,255,3,253,189,252,51,254, +212,255,195,255,146,0,199,2,122,3,146,3,88,4,41,6,79,8,19,7,212,2,101,255,177,253,118,253,98,253,167,252, +82,252,55,252,207,252,33,254,195,254,109,0,107,3,146,4,246,3,156,2,117,0,42,255,186,255,103,1,91,2,137,0, +182,253,72,253,60,254,60,254,197,253,156,253,201,253,40,254,154,253,97,252,115,252,54,254,57,1,172,4,228,6,91,7, +126,5,46,2,233,1,164,4,95,4,227,255,175,251,127,250,235,251,235,254,248,1,156,3,73,4,66,4,74,3,1,3, +128,3,89,3,221,2,205,1,230,255,180,253,255,250,3,249,65,248,121,247,35,248,150,251,144,0,74,5,132,7,17,6, +213,1,243,254,63,1,32,4,155,2,71,255,225,252,191,253,17,1,248,255,253,250,247,248,98,250,8,253,207,254,251,254, +51,1,216,5,221,8,64,9,91,8,30,8,101,9,231,8,63,4,10,254,200,248,150,244,251,241,167,241,194,243,228,246, +213,247,146,247,157,250,213,0,92,7,68,11,7,10,219,6,111,5,225,3,242,0,144,253,18,252,35,254,26,255,6,252, +124,249,201,248,193,246,55,244,79,244,225,246,53,250,105,254,154,3,57,9,33,13,244,10,126,4,144,0,191,255,125,255, +229,254,113,254,122,0,5,3,103,2,127,0,167,254,28,253,223,252,82,252,153,251,124,252,250,253,91,254,186,252,76,251, +240,252,75,1,243,7,49,13,130,12,73,9,100,6,214,2,129,255,101,252,100,250,160,249,109,247,126,246,10,248,147,247, +132,247,223,251,115,1,97,4,42,3,38,0,121,255,189,0,14,2,98,3,123,4,197,4,254,3,110,2,140,0,130,255, +56,0,3,1,79,1,76,1,151,254,17,251,126,250,75,250,194,249,87,251,202,252,113,252,236,251,190,252,10,0,50,3, +27,3,183,1,222,255,61,253,140,251,215,249,251,248,74,253,238,3,235,6,202,5,85,2,202,255,97,0,113,1,137,0, +63,254,170,252,111,252,252,249,38,245,1,244,247,247,152,252,197,255,161,2,145,5,104,7,91,7,121,4,41,0,35,255, +182,0,53,1,93,2,247,4,14,7,235,6,27,3,123,255,225,254,81,253,196,250,46,249,188,247,228,247,192,248,214,248, +45,251,104,255,217,2,33,5,197,6,114,10,151,15,63,17,29,15,117,12,109,11,126,11,114,9,246,4,173,255,35,250, +9,247,147,247,253,249,209,253,200,0,195,0,185,255,173,253,93,250,61,249,39,250,70,250,129,250,193,251,176,253,74,0, +130,2,233,4,190,7,119,8,239,8,123,11,217,10,161,4,197,253,214,249,219,249,132,252,191,253,140,252,188,252,130,0, +157,4,165,5,7,5,29,5,138,5,201,4,242,2,225,1,217,1,128,2,78,4,225,5,246,5,133,4,88,2,170,2, +230,4,107,4,160,0,194,250,125,245,25,244,241,244,249,247,241,253,170,2,151,6,0,11,24,11,188,6,209,0,222,250, +162,248,46,249,129,248,83,247,101,246,9,247,137,251,142,0,212,1,28,0,143,254,244,255,192,2,149,2,139,255,249,252, +165,252,1,254,4,255,138,0,166,4,164,7,222,6,119,5,37,3,105,254,45,250,42,248,106,248,232,249,127,250,157,251, +105,254,253,0,96,3,126,5,168,6,135,7,147,7,235,6,201,6,226,6,196,6,111,6,10,6,8,4,228,254,87,250, +214,248,157,247,214,245,202,244,230,245,101,248,252,248,239,249,174,254,98,4,4,8,40,8,186,6,201,6,214,4,66,0, +91,253,77,251,71,250,148,251,246,252,106,254,42,0,246,1,172,3,20,2,251,253,135,251,17,251,4,252,89,252,207,251, +157,253,102,255,193,254,65,254,85,253,71,251,109,249,132,247,60,246,52,246,6,247,179,248,70,250,229,251,103,255,129,4, +16,8,154,8,165,8,63,8,57,5,83,1,87,253,75,249,149,247,65,246,136,243,39,243,213,245,0,249,164,251,198,253, +46,255,124,254,192,252,27,253,125,255,216,2,95,6,75,9,157,12,72,15,150,15,183,15,246,16,239,16,156,12,138,4, +29,254,171,251,57,249,72,244,54,239,27,237,18,238,236,240,12,246,250,252,158,3,247,7,117,9,156,11,31,17,234,20, +145,17,47,10,222,5,215,6,218,7,165,3,219,253,72,253,186,255,21,254,53,248,233,243,187,244,44,248,150,249,19,249, +65,249,241,249,148,250,11,252,85,255,34,4,184,8,173,12,84,15,122,14,34,11,43,8,115,6,205,4,144,0,207,250, +126,248,27,251,23,0,23,3,4,2,31,0,147,255,134,255,198,254,202,251,49,249,117,250,48,252,191,250,175,247,158,246, +198,249,72,255,59,4,188,6,126,6,255,7,176,12,163,14,252,11,141,7,219,2,31,0,247,255,158,255,97,252,213,245, +199,240,118,242,200,247,164,250,243,249,233,248,75,252,56,3,84,5,13,0,120,250,21,249,218,250,118,254,77,2,113,5, +8,10,101,16,239,18,36,14,161,5,129,252,202,244,99,242,167,243,60,243,175,241,4,243,127,249,69,2,223,6,191,6, +253,5,88,6,44,8,190,8,147,5,34,3,213,4,66,7,69,7,229,5,92,5,87,5,101,4,207,1,232,251,26,244, +88,239,231,237,212,237,72,240,126,245,132,253,232,8,115,18,231,19,213,15,51,12,27,9,187,2,32,249,174,242,111,243, +136,247,64,251,97,254,162,0,199,2,219,4,229,3,151,254,118,248,102,246,108,248,236,250,109,253,105,1,56,7,192,12, +230,13,178,11,94,10,1,9,79,5,64,0,57,253,212,252,66,250,232,245,137,245,190,249,10,255,181,255,245,250,4,248, +227,247,127,247,248,246,236,245,196,248,7,2,122,12,170,21,140,26,195,26,122,26,156,21,59,13,40,8,33,2,21,251, +93,246,215,241,180,241,242,243,19,241,41,238,153,237,24,238,244,244,90,255,113,4,176,3,67,2,40,4,198,9,253,16, +90,21,199,21,241,21,82,19,197,11,219,3,239,252,133,248,201,246,228,243,102,242,203,242,5,242,193,244,205,251,57,1, +212,1,249,254,54,255,85,3,126,5,230,4,30,3,97,5,97,13,200,15,13,10,47,5,107,3,73,4,62,4,111,254, +42,247,165,242,94,239,132,236,163,235,16,239,159,243,230,244,33,246,198,249,180,253,83,0,128,0,205,0,146,5,145,11, +221,11,220,6,42,2,4,1,169,2,193,2,224,255,95,254,221,253,63,252,108,252,84,253,114,253,212,253,160,250,94,244, +81,242,158,245,186,248,238,248,170,252,167,5,160,10,193,11,3,14,5,15,40,15,189,12,73,6,200,3,254,6,1,9, +238,5,225,0,193,0,133,1,133,251,54,244,11,242,88,243,171,241,136,236,32,237,139,242,71,248,118,1,9,9,55,14, +28,21,175,21,202,17,37,16,20,10,235,0,157,251,110,249,169,246,46,240,25,236,69,239,222,245,229,255,160,6,57,3, +219,253,50,249,11,245,102,246,102,249,220,251,86,2,54,12,211,19,236,18,33,14,186,15,37,19,137,13,145,0,78,249, +218,250,44,248,217,241,148,243,8,251,15,3,145,6,66,1,135,253,250,255,98,254,129,249,58,251,60,2,184,3,46,254, +82,252,205,2,51,11,81,13,191,9,200,8,238,9,99,8,243,3,34,250,190,240,124,241,35,247,191,251,129,255,120,1, +131,2,242,1,125,0,235,254,96,248,79,241,37,242,16,248,211,254,60,2,165,1,162,4,216,9,200,9,128,5,235,0, +182,254,200,253,228,249,92,245,186,245,28,249,178,249,12,249,242,251,203,253,14,251,144,250,47,254,185,1,8,6,28,10, +128,9,40,8,181,10,230,9,151,2,14,254,220,0,223,5,77,4,97,250,251,242,71,242,171,243,247,247,197,252,46,0, +138,5,246,9,93,14,179,21,229,23,210,16,245,5,99,255,71,0,251,254,144,248,8,247,102,250,125,250,99,245,241,242, +54,249,107,255,189,254,228,251,73,251,99,254,38,2,164,6,198,12,135,11,36,7,225,10,220,15,218,18,147,17,6,8, +244,4,229,6,84,253,45,244,218,245,169,250,221,255,124,3,98,8,23,17,69,20,99,15,116,7,130,0,93,254,34,253, +45,251,127,252,63,254,113,255,120,2,223,5,11,8,186,6,59,5,193,8,33,10,249,5,239,2,210,254,59,248,204,246, +68,249,188,248,227,247,216,249,44,249,127,244,208,243,135,248,239,249,241,246,97,246,44,247,51,245,125,243,195,245,233,251, +209,2,142,6,253,6,222,5,101,5,210,4,88,254,184,246,153,247,14,249,26,244,162,240,37,242,211,245,174,248,223,248, +6,249,64,250,171,251,101,251,86,246,221,242,120,247,12,254,187,2,199,5,111,5,152,4,29,6,128,7,38,6,41,2, +21,254,122,251,8,249,142,244,94,239,68,238,39,240,254,242,226,249,37,0,121,0,239,255,133,0,153,0,143,255,63,253, +146,253,169,254,229,251,112,251,181,255,36,2,200,255,15,250,216,245,222,244,23,243,29,240,85,238,240,240,217,247,1,251, +185,249,31,251,98,254,79,2,146,7,73,9,116,7,1,8,80,9,70,6,198,0,66,252,133,250,40,253,185,253,133,247, +51,244,255,245,125,245,61,246,201,250,210,254,13,2,193,2,164,1,113,3,162,5,106,6,103,8,201,8,202,5,104,4, +216,6,210,8,93,8,76,7,6,5,71,3,116,4,112,3,139,255,55,254,79,254,67,254,155,254,39,255,80,3,242,8, +169,9,138,9,214,11,79,10,53,4,174,255,81,254,101,253,46,253,181,255,42,2,174,1,230,1,109,5,199,9,214,11, +28,9,223,4,216,5,121,7,245,3,92,3,104,8,158,10,20,8,89,4,88,4,43,8,78,5,120,253,98,254,12,4, +60,4,218,0,97,255,120,4,176,11,154,11,9,9,31,11,200,13,234,13,14,12,155,9,173,8,225,7,193,6,52,8, +255,10,109,11,137,9,124,6,228,2,47,1,241,1,5,2,11,1,172,1,185,4,229,7,213,6,23,3,200,4,168,12, +82,19,36,19,63,12,97,6,157,7,85,10,225,8,0,7,227,6,6,5,56,2,242,0,145,254,163,251,99,249,152,245, +213,246,150,255,143,2,229,253,89,252,162,255,174,4,229,7,229,8,97,12,172,14,152,10,241,3,230,252,165,248,116,250, +243,250,102,247,113,249,211,0,58,2,54,255,62,1,37,3,211,253,122,248,247,248,189,252,232,255,182,1,27,7,246,14, +65,17,25,15,239,11,150,7,192,4,153,1,118,250,229,242,145,237,244,234,108,238,62,248,36,1,90,3,255,3,108,9, +6,16,50,16,84,8,168,1,116,3,191,6,64,7,66,8,114,7,157,3,95,255,176,251,31,250,191,248,254,245,9,245, +214,243,140,239,25,237,206,241,149,250,191,253,124,251,230,253,107,4,156,9,239,12,229,11,31,9,247,9,149,8,249,0, +191,251,188,253,113,255,37,251,63,245,67,241,103,237,48,235,177,237,153,240,131,238,60,239,97,250,232,3,131,4,147,6, +54,9,219,4,68,254,40,247,118,237,122,230,116,229,186,233,124,242,95,250,49,253,15,255,60,4,122,10,78,14,25,14, +18,9,184,0,169,247,192,240,238,238,254,240,105,243,13,246,209,249,179,252,169,251,250,247,89,246,92,248,42,251,188,249, +216,243,61,240,207,240,243,243,144,251,83,6,241,17,89,25,171,18,176,4,16,255,105,253,152,246,117,239,140,237,102,239, +191,242,182,245,206,245,37,246,215,248,190,246,224,241,2,244,119,251,64,4,217,8,103,4,127,0,136,1,99,3,239,7, +162,9,25,7,69,9,105,10,204,4,88,254,202,248,225,244,64,241,145,237,216,238,58,240,145,238,6,243,116,253,136,4, +204,4,43,4,224,8,187,12,1,11,74,8,228,3,40,254,72,252,49,253,157,252,161,249,71,248,102,250,138,250,115,247, +186,244,223,245,212,253,35,4,44,0,49,251,75,254,145,7,216,16,9,16,57,6,67,4,161,13,57,20,167,18,19,12, +187,2,132,252,128,249,32,243,239,236,111,237,82,244,4,251,77,246,54,236,28,238,54,247,255,251,162,253,169,255,211,7, +151,19,114,21,93,13,144,7,66,9,170,13,107,15,199,16,212,19,120,21,162,18,179,10,125,2,169,249,12,234,69,221, +111,220,130,220,61,218,7,224,40,237,240,247,186,254,139,7,135,20,206,33,99,41,36,40,242,34,116,29,216,21,164,11, +138,255,143,248,24,249,57,245,191,240,227,246,129,252,142,251,229,248,8,243,4,240,237,243,21,247,114,249,218,0,10,13, +124,23,227,28,112,33,207,34,60,29,11,22,219,15,95,12,113,12,59,9,173,0,255,247,129,245,27,251,16,254,110,247, +206,240,151,244,161,1,19,11,108,9,114,4,177,2,236,4,128,6,164,0,188,252,163,4,79,13,127,14,72,13,83,12, +15,10,249,5,1,2,18,1,209,2,23,3,167,2,203,5,60,6,134,1,205,1,232,2,176,255,41,3,85,7,231,255, +22,247,123,244,100,246,124,253,77,4,188,6,138,8,99,11,226,14,10,16,179,10,71,3,92,254,68,249,5,247,116,247, +57,238,99,224,64,224,142,233,122,238,114,239,25,247,54,9,228,22,171,26,142,30,217,29,0,25,3,23,247,13,223,3, +203,4,109,4,42,1,80,0,167,249,142,239,173,236,130,242,101,246,125,242,162,243,86,250,93,253,54,0,202,253,76,249, +213,255,97,6,248,9,84,13,33,4,83,252,0,0,60,252,107,244,111,238,86,229,79,230,218,240,146,246,19,250,160,254, +61,5,187,13,107,15,5,9,178,1,30,255,216,1,172,1,172,251,176,245,72,241,200,239,0,242,194,243,130,243,215,242, +120,244,83,249,237,250,61,246,26,242,199,242,154,247,173,253,96,255,47,252,67,249,83,249,209,249,133,247,31,249,121,2, +202,6,14,5,227,4,107,253,21,245,250,250,117,0,107,254,154,255,122,254,160,248,218,245,235,245,94,248,190,251,78,251, +19,248,150,246,9,248,14,249,176,248,164,247,220,248,170,4,187,15,42,9,23,2,125,6,17,9,62,6,246,255,254,250, +188,250,33,247,185,243,129,243,149,241,143,245,173,248,168,244,114,251,103,7,110,8,53,4,29,0,77,2,212,8,76,11, +186,12,81,2,189,237,213,239,125,3,186,13,206,20,103,27,239,20,221,6,236,255,212,250,237,235,41,225,226,228,213,232, +252,236,84,248,41,3,137,12,137,20,27,21,159,18,175,17,44,13,212,5,165,4,42,9,46,11,164,9,120,5,55,2, +105,4,165,2,68,250,44,247,32,248,92,248,52,249,125,247,82,244,33,243,50,245,36,252,20,3,229,6,83,9,24,9, +117,7,65,6,79,6,248,7,40,8,16,8,179,6,195,0,42,253,176,252,208,251,237,254,24,1,149,253,18,251,6,253, +137,2,82,4,173,255,156,254,222,255,147,254,171,255,135,1,207,3,41,11,134,19,105,20,92,12,1,7,126,9,181,9, +113,8,31,9,87,7,110,6,121,5,26,2,28,2,179,2,100,0,135,250,137,239,41,235,243,242,234,252,219,4,203,6, +67,4,202,8,241,17,57,21,171,15,81,5,185,0,94,1,41,250,227,236,197,232,219,241,183,253,32,4,87,7,155,11, +9,17,247,20,182,21,83,20,85,16,104,7,166,251,42,245,248,246,116,250,133,255,89,8,229,11,29,9,130,6,243,0, +156,250,17,250,207,249,208,244,214,241,156,246,249,251,122,254,15,7,18,18,162,22,85,24,178,22,98,18,45,14,178,3, +10,249,222,247,28,248,70,246,251,246,100,251,118,0,62,1,100,4,68,13,128,15,218,10,209,4,65,251,123,245,10,247, +20,248,152,251,190,6,188,14,114,11,95,7,18,8,253,5,70,4,38,7,41,6,136,254,74,245,4,241,246,244,124,249, +128,249,83,248,211,250,86,3,61,7,80,254,205,242,47,239,160,246,119,2,111,7,88,8,0,9,239,7,230,9,141,14, +200,19,170,24,155,21,224,13,229,8,189,0,206,246,176,244,49,249,5,254,94,1,134,2,200,254,162,249,29,248,106,244, +125,238,147,239,43,246,58,254,141,7,91,12,188,11,10,15,80,24,14,30,230,27,75,20,190,9,133,2,43,253,57,242, +236,233,231,233,242,235,226,240,34,245,44,244,66,245,195,249,92,253,142,252,252,247,223,249,201,1,254,6,168,11,209,17, +33,22,7,17,28,4,228,255,106,254,70,243,221,238,177,245,239,249,144,248,154,243,64,242,161,247,187,255,31,9,229,8, +160,255,164,254,28,0,160,251,38,252,75,5,90,14,161,11,230,0,126,254,64,2,238,2,180,252,129,241,149,242,87,253, +87,252,213,247,216,250,162,252,129,253,135,0,65,1,36,255,121,255,196,3,131,3,114,252,110,246,192,243,15,246,2,253, +81,1,135,2,107,5,147,11,11,17,148,13,125,3,207,250,165,243,59,242,58,250,127,0,126,254,126,252,207,253,237,254, +35,1,48,4,154,6,106,10,246,9,248,0,62,249,176,248,22,252,74,254,125,249,243,241,195,241,163,248,99,253,221,250, +52,248,168,249,228,249,159,250,5,252,9,250,142,250,251,252,194,251,119,254,8,6,2,8,165,5,143,5,179,0,87,241, +16,229,130,227,196,227,10,230,160,238,196,250,16,9,176,23,107,35,185,35,28,21,217,9,67,9,110,4,112,248,86,236, +15,232,161,238,19,243,172,242,66,252,20,14,95,19,184,4,91,243,213,234,191,231,141,231,188,226,171,223,84,238,76,252, +49,253,6,4,151,14,217,17,190,18,131,15,151,0,188,240,212,249,164,11,120,0,28,243,180,254,234,15,33,34,244,31, +53,254,203,239,227,248,190,243,148,232,159,223,194,220,4,238,99,4,105,15,205,21,112,30,145,37,123,37,134,36,236,30, +106,13,203,3,43,3,155,246,179,228,219,220,221,228,135,243,62,245,143,238,190,234,80,236,224,248,148,255,8,242,180,231, +169,238,95,250,47,5,179,14,0,13,249,4,17,14,126,27,33,17,216,253,76,241,116,238,103,249,60,250,85,235,156,231, +63,237,212,244,100,251,238,244,139,242,172,2,70,14,84,6,145,246,187,244,212,2,126,11,70,9,189,5,239,7,250,14, +206,14,103,10,94,7,126,251,125,241,224,244,240,247,152,244,17,235,47,229,171,243,114,5,218,4,27,252,92,251,104,11, +190,30,124,28,130,14,54,11,89,15,227,14,123,5,106,251,56,251,237,255,129,254,104,243,50,232,53,232,215,234,152,235, +141,245,96,1,165,8,121,16,148,9,199,249,208,255,200,10,93,0,131,240,184,238,12,4,155,27,9,17,228,253,134,3, +162,8,75,5,17,3,179,246,23,240,157,252,36,1,167,254,52,15,119,36,103,34,11,14,155,252,36,249,197,251,43,240, +194,215,225,205,91,217,51,237,20,3,134,10,198,254,253,1,5,28,76,35,51,10,116,239,46,232,200,239,213,245,79,241, +109,236,248,238,225,246,129,5,191,16,253,10,173,251,90,237,6,234,35,248,71,1,234,246,14,240,107,249,24,4,198,4, +244,4,12,20,138,40,9,40,138,12,214,239,1,236,234,242,234,234,83,219,240,212,153,225,8,252,60,6,249,250,78,245, +51,250,75,255,80,1,231,254,171,255,42,13,165,26,215,16,33,2,156,22,164,51,201,37,197,0,89,240,107,251,142,12, +192,5,228,236,19,231,65,250,240,13,228,16,140,7,64,7,156,19,35,21,134,9,167,7,94,12,197,8,255,6,177,11, +157,14,10,14,241,6,93,1,207,2,197,254,58,0,179,14,33,21,215,23,61,26,109,14,40,6,244,13,68,25,138,33, +194,28,134,14,146,9,82,14,69,20,53,17,189,6,119,10,184,25,140,25,73,5,64,248,62,5,188,12,155,246,130,229, +8,241,199,7,247,15,247,255,214,248,186,14,122,30,2,26,123,19,241,13,7,13,73,19,158,21,13,19,140,22,86,32, +138,33,93,17,41,252,121,247,253,9,114,29,184,26,24,10,233,254,21,255,77,254,89,237,14,222,149,234,195,5,107,23, +141,25,195,19,29,24,201,37,104,35,152,15,209,2,9,1,194,253,45,248,137,241,99,237,236,247,159,8,154,10,83,2, +171,252,59,252,253,253,215,249,165,244,230,250,61,6,126,11,224,7,251,253,56,249,187,254,197,5,242,4,248,248,83,236, +12,235,97,237,125,235,231,234,209,237,194,244,222,252,86,251,104,245,200,249,219,1,49,3,110,255,120,248,148,245,240,250, +124,252,180,243,2,232,228,224,116,225,191,230,41,234,227,231,138,230,127,241,110,2,84,9,207,3,54,252,207,254,244,2, +19,249,116,241,42,247,99,250,122,247,244,239,105,233,16,239,201,242,242,240,218,250,90,2,224,253,182,253,190,251,11,241, +220,235,71,238,125,238,157,234,44,232,179,235,94,244,186,251,185,252,227,253,230,0,218,253,125,250,138,246,244,234,1,234, +191,246,155,249,208,245,161,247,157,250,39,252,86,251,17,251,201,252,140,247,229,237,44,235,53,239,122,245,132,250,107,252, +199,254,252,5,196,14,38,19,54,23,216,24,44,10,29,245,61,237,53,235,114,231,191,233,107,242,159,247,14,246,129,247, +68,253,26,255,189,3,151,11,13,11,66,9,83,10,35,7,112,6,209,8,31,9,62,16,238,26,246,25,27,14,12,0, +112,247,28,249,149,250,219,239,149,229,183,235,128,248,142,1,146,10,97,15,160,12,185,8,128,4,160,1,175,3,23,7, +62,7,189,254,43,244,123,249,66,5,63,4,151,255,203,254,86,252,25,252,113,1,10,7,248,5,188,253,43,249,205,252, +65,255,14,252,198,249,67,255,222,7,52,11,14,13,145,15,187,13,128,10,11,8,31,7,218,14,193,24,64,23,85,17, +59,15,108,9,62,2,13,3,197,1,159,246,14,239,199,240,224,246,135,255,136,1,162,251,109,252,221,2,14,4,95,2, +44,3,127,7,214,11,22,11,19,8,197,6,87,6,100,7,60,11,40,19,236,30,56,39,191,34,21,19,213,5,84,2, +28,0,189,249,160,247,85,253,63,255,17,250,80,252,148,6,193,9,209,5,222,0,27,251,215,249,44,252,155,249,65,248, +88,2,126,14,229,14,165,7,111,2,7,3,2,9,125,10,187,7,101,14,209,17,111,5,57,253,217,251,96,245,208,242, +164,247,128,254,153,4,96,5,174,6,189,8,128,2,241,252,238,252,112,251,78,253,46,1,115,0,231,2,151,11,254,18, +197,19,207,11,149,2,192,3,14,9,1,3,130,247,129,244,201,243,185,240,180,242,66,246,58,246,37,246,204,246,33,248, +169,250,102,252,50,250,60,246,170,250,47,3,133,3,195,5,93,13,138,13,183,13,48,20,252,21,191,16,44,4,156,241, +212,229,173,227,59,226,108,223,77,222,50,224,171,229,162,238,107,247,101,253,45,1,236,1,178,4,56,12,84,13,157,9, +237,13,196,21,248,24,226,21,201,13,196,9,46,13,236,18,194,19,214,5,203,239,115,226,197,225,211,234,56,240,71,233, +90,231,55,241,126,250,243,254,170,252,80,249,58,254,102,2,151,253,135,247,46,253,84,15,47,24,134,16,230,8,42,3, +27,0,54,2,128,251,141,240,206,239,240,239,211,236,179,234,228,231,231,232,64,237,239,241,166,250,149,254,215,249,107,251, +84,2,13,3,27,1,225,252,147,244,183,245,219,2,11,10,53,6,123,254,169,247,167,249,39,255,51,249,104,238,23,233, +146,231,186,238,46,252,159,0,117,252,107,252,199,2,234,7,139,5,200,253,252,249,6,253,245,251,93,243,231,237,59,237, +200,242,237,2,197,11,157,4,71,3,134,11,2,14,35,8,203,251,73,239,132,237,16,246,54,0,29,5,184,7,61,15, +197,17,70,4,244,246,34,247,113,244,41,231,92,226,30,236,26,246,199,248,143,245,129,245,77,0,171,11,167,16,100,19, +18,16,200,11,1,17,137,19,30,10,211,255,53,254,196,7,92,16,67,7,49,249,198,247,173,249,154,247,99,244,150,242, +98,250,185,4,11,3,155,1,46,7,23,8,10,8,98,7,158,0,53,255,90,2,222,254,107,252,210,2,33,15,147,22, +220,14,42,4,253,2,253,2,230,1,131,3,95,3,86,0,76,0,52,8,232,20,200,30,242,33,228,27,118,16,19,7, +162,252,1,241,66,238,104,244,228,248,231,246,158,242,220,240,139,245,147,3,135,16,42,16,46,10,140,6,126,2,124,0, +28,2,255,3,236,6,35,9,134,3,208,248,144,247,67,1,202,5,194,255,162,247,252,243,46,246,191,247,122,245,47,248, +213,2,180,11,196,10,194,5,232,4,129,1,68,251,106,253,245,1,81,3,205,6,215,5,26,2,24,7,57,12,38,10, +133,8,103,5,90,251,207,241,237,238,187,238,166,242,18,253,34,3,212,2,245,6,44,12,207,9,141,0,221,246,138,244, +163,245,252,247,159,1,183,3,65,247,99,244,146,254,89,7,56,12,46,4,236,241,169,235,173,238,211,235,190,233,191,243, +116,9,135,28,149,28,247,18,248,19,49,26,32,23,70,14,105,5,170,249,40,237,103,229,114,226,105,227,79,230,233,231, +113,234,34,238,21,237,188,233,149,237,188,247,84,253,199,250,119,249,119,255,231,7,250,13,244,14,16,13,135,16,62,19, +113,7,14,245,228,235,238,237,138,245,212,249,26,248,55,248,198,249,184,245,234,240,67,241,74,241,171,239,206,242,146,249, +177,253,20,254,10,0,146,7,4,9,167,252,22,246,101,252,72,253,161,248,10,247,87,246,19,250,107,1,160,3,139,0, +164,252,147,254,0,8,250,14,4,14,122,6,46,254,173,254,4,5,99,10,212,14,178,11,129,0,13,250,253,251,66,1, +158,5,255,5,110,3,170,255,197,251,78,248,159,244,148,245,247,254,59,9,56,12,229,8,66,7,212,11,184,14,160,9, +24,3,157,1,3,3,174,1,36,255,107,3,52,11,194,13,17,15,158,14,33,4,215,247,161,244,96,246,18,249,140,249, +226,244,173,242,221,248,59,3,21,12,113,15,6,15,199,15,31,19,65,24,215,24,178,15,170,6,233,7,253,10,84,2, +167,243,212,238,26,241,160,241,163,245,184,253,17,3,89,4,51,1,61,252,55,250,116,253,50,6,110,11,30,9,234,10, +0,17,109,18,240,18,252,20,6,20,252,16,170,14,160,10,35,2,121,249,218,246,174,249,42,251,132,247,211,246,221,252, +16,0,252,1,51,7,136,8,15,10,175,15,76,15,105,10,212,6,75,2,187,255,46,2,93,8,24,15,215,18,23,21, +185,19,221,12,68,8,76,6,209,2,28,1,74,0,46,254,22,254,242,2,6,12,199,18,97,20,188,19,122,14,229,5, +215,255,254,251,137,251,211,254,181,0,29,1,157,2,8,6,194,11,160,15,135,14,131,11,70,8,50,2,167,247,61,238, +152,237,114,242,71,246,83,252,206,4,83,8,224,8,80,10,224,6,169,0,49,255,8,0,79,1,90,2,101,1,170,4, +188,11,117,12,73,8,108,6,114,7,222,8,201,6,158,0,98,251,128,251,144,255,180,2,139,4,73,5,128,2,209,255, +66,1,109,4,241,6,139,7,176,5,5,1,181,251,130,251,169,254,163,0,143,1,9,255,110,253,235,1,122,4,232,3, +221,2,219,253,61,252,149,1,235,5,72,8,98,6,225,0,251,0,150,3,82,2,14,0,186,253,231,251,80,251,9,251, +37,251,186,249,33,247,236,246,224,251,237,6,163,14,192,10,102,6,242,9,153,10,144,2,181,252,141,253,83,252,179,249, +244,250,137,250,195,248,68,250,114,251,211,252,13,0,197,2,254,5,121,8,160,9,22,9,193,0,205,246,160,246,125,249, +20,249,228,249,246,251,42,253,212,254,123,2,135,7,129,10,241,8,180,5,174,5,5,7,81,4,207,254,165,248,102,244, +138,248,227,255,99,0,144,253,230,249,118,244,144,242,216,242,163,240,7,238,25,234,122,229,4,231,227,237,153,243,181,248, +252,0,185,9,185,12,95,9,71,2,29,250,24,247,211,249,46,249,98,243,153,239,240,240,154,246,23,253,242,254,58,251, +158,246,4,246,223,245,192,239,131,234,182,236,59,239,52,240,24,243,205,247,163,1,140,12,208,14,114,11,85,5,166,252, +11,249,199,247,225,241,25,241,56,250,36,2,247,4,147,7,184,9,17,9,115,6,35,2,199,252,18,249,154,246,79,243, +5,240,233,238,42,242,206,247,247,249,93,247,245,243,52,245,240,251,198,255,39,253,127,250,53,249,171,247,138,248,5,251, +110,251,222,251,155,0,186,6,239,7,210,2,209,249,123,244,146,247,221,248,141,243,168,240,175,238,114,235,202,240,183,252, +224,3,210,5,205,6,193,8,109,10,86,7,150,0,88,253,131,253,23,251,95,252,38,9,29,17,60,6,43,249,180,249, +226,1,150,4,9,250,94,236,44,234,27,237,64,236,122,236,130,240,41,246,189,251,235,255,245,3,95,7,102,6,99,1, +203,253,139,253,38,251,85,247,207,250,233,1,178,2,225,254,139,252,1,1,250,9,180,8,95,251,172,241,131,241,120,246, +230,250,171,248,173,243,95,245,18,252,10,2,164,9,83,20,205,27,213,27,44,22,207,16,206,19,137,25,11,20,4,11, +89,12,195,14,132,9,72,6,142,9,205,8,249,254,193,246,52,247,41,251,133,0,2,4,43,253,123,243,122,247,202,5, +158,15,233,17,81,15,129,6,253,253,38,1,104,9,252,8,44,3,73,255,160,253,97,0,60,6,167,8,222,5,75,254, +14,245,11,241,230,240,29,241,117,244,175,245,249,240,26,242,63,251,112,1,246,3,126,4,121,0,97,252,77,253,173,1, +132,5,150,4,35,0,115,0,221,8,186,16,97,15,50,8,176,1,55,251,73,243,57,236,243,231,163,229,51,228,153,228, +54,232,124,238,244,243,81,246,58,247,134,244,0,239,59,242,84,252,249,254,132,253,149,0,232,5,144,11,13,14,154,11, +45,10,190,9,122,6,142,2,246,253,29,247,45,242,186,240,10,237,128,232,56,236,184,244,65,248,10,249,9,250,216,249, +14,251,225,252,185,250,21,247,50,247,31,249,140,249,195,251,225,255,133,2,39,8,7,15,176,13,143,8,230,5,33,5, +25,9,173,10,5,3,138,254,217,255,237,253,27,254,132,3,157,9,185,16,161,18,219,12,127,11,14,14,121,9,163,1, +102,255,139,1,193,2,27,4,71,9,82,11,112,7,140,8,130,12,79,10,250,6,40,4,131,0,114,0,88,0,63,253, +141,252,32,0,238,7,90,15,66,14,65,9,195,10,208,17,125,21,94,17,36,10,219,5,232,5,137,7,82,7,117,5, +49,2,8,0,94,2,187,1,196,253,188,1,226,7,163,8,130,7,118,1,7,253,6,3,164,6,16,3,172,0,7,0, +135,3,104,8,116,5,108,1,241,1,51,252,199,241,208,241,214,249,7,255,70,3,212,3,91,252,216,249,31,1,216,7, +189,11,205,10,31,4,88,0,120,0,133,255,207,253,237,251,243,249,214,246,105,242,5,239,0,238,15,243,14,252,118,254, +53,251,255,249,28,253,159,5,211,13,90,15,52,12,245,5,163,1,116,3,23,3,50,253,38,249,45,251,125,2,105,6, +17,1,210,252,139,254,185,254,195,253,9,252,225,244,194,239,5,244,124,250,148,255,190,5,58,9,222,7,180,5,57,7, +64,14,187,20,136,18,119,10,254,3,18,1,169,1,112,3,155,0,228,249,238,246,196,249,36,255,100,3,203,2,188,255, +226,253,153,250,90,247,235,247,214,249,5,253,249,2,215,9,194,16,161,21,31,23,147,22,117,18,92,11,206,5,2,4, +96,4,92,1,223,251,85,253,93,3,198,3,199,0,143,0,93,1,89,0,147,254,68,252,114,248,206,246,185,250,62,0, +238,2,75,3,190,4,79,8,103,9,23,7,62,7,12,11,50,13,121,10,196,5,11,2,128,252,150,245,2,244,241,247, +21,251,23,251,247,249,43,249,17,249,239,250,222,253,255,254,198,255,49,1,39,0,124,254,200,0,229,4,55,6,87,5, +119,5,193,6,118,7,133,7,48,8,27,9,83,7,62,3,34,0,8,252,198,247,225,249,33,255,41,1,153,2,120,3, +49,1,35,1,56,7,189,12,187,12,18,12,86,11,49,6,1,3,123,5,90,4,83,255,109,254,84,2,168,9,95,16, +111,15,163,9,158,6,66,5,96,1,213,252,139,250,36,249,204,248,43,252,56,2,185,8,82,14,185,15,96,12,0,9, +42,8,241,6,121,3,89,0,84,255,71,0,117,3,247,6,92,8,152,7,12,5,237,1,132,255,88,254,203,254,92,253, +48,248,195,245,156,249,173,255,62,3,135,1,195,255,75,5,1,13,209,14,179,11,95,8,42,8,216,8,187,5,54,0, +56,252,102,251,104,252,232,251,23,251,188,252,170,255,212,1,211,254,167,246,180,243,92,249,218,0,199,6,179,7,192,254, +185,236,1,218,182,210,251,216,170,229,49,247,246,9,214,19,245,19,123,17,146,16,196,17,28,17,231,8,77,251,57,242, +180,241,31,244,105,246,146,248,44,248,153,246,137,245,148,241,68,236,36,234,141,233,22,234,211,238,222,245,21,251,237,254, +112,3,63,7,64,8,167,7,53,6,153,2,159,255,86,0,91,0,185,252,0,249,85,247,60,248,23,250,147,248,246,244, +170,241,113,237,33,236,108,239,102,241,73,241,197,242,143,248,120,1,100,4,191,0,73,2,59,8,26,10,42,10,156,11, +12,13,33,13,233,8,138,1,220,253,205,254,117,255,2,254,84,251,166,249,34,251,107,252,50,250,44,249,219,252,83,0, +31,255,79,252,2,253,219,255,155,0,134,0,2,2,225,3,113,5,133,6,158,6,95,7,122,9,56,9,48,5,183,2, +250,3,193,4,144,4,21,5,230,3,123,0,191,254,59,1,96,5,124,6,95,4,64,2,116,1,129,1,119,1,189,1, +63,2,188,255,142,250,114,247,158,247,251,249,145,253,119,0,167,1,168,0,210,253,103,252,131,255,56,5,200,7,154,5, +176,3,156,4,112,4,8,1,119,254,199,254,71,254,46,252,107,251,50,252,225,252,144,252,219,252,80,254,129,252,141,248, +252,248,252,251,41,253,220,252,143,251,46,250,140,250,155,254,209,3,57,2,168,251,159,248,59,248,100,248,239,248,111,246, +88,242,195,240,80,241,190,242,162,244,232,247,163,252,190,255,26,255,186,251,212,248,36,248,29,249,219,251,170,252,223,249, +64,250,236,252,60,252,117,252,30,0,43,4,110,6,19,4,238,254,11,251,222,248,223,249,146,252,239,252,54,252,58,252, +206,252,127,253,7,253,128,251,4,249,62,246,154,245,32,247,55,251,78,2,248,7,229,9,68,10,21,10,240,9,177,10, +147,12,22,14,21,12,82,7,33,3,100,255,250,251,158,250,75,251,225,252,66,254,119,254,64,254,152,254,6,255,170,255, +167,255,222,252,221,250,158,253,206,255,244,253,220,252,218,253,250,253,190,252,229,251,116,253,125,0,62,2,137,2,70,1, +226,253,192,250,187,249,39,249,102,248,161,249,87,253,146,1,227,3,160,2,29,255,192,251,144,249,52,250,202,252,35,254, +119,255,78,2,43,5,130,7,153,7,144,4,17,2,163,1,78,1,109,0,206,254,121,252,50,251,212,251,93,252,138,251, +183,250,29,251,201,252,59,253,127,250,105,249,192,252,113,255,188,255,116,0,59,3,225,6,67,7,166,5,245,5,218,4, +140,2,33,3,81,3,42,2,214,2,12,4,130,5,149,6,222,3,76,0,242,0,20,3,73,2,151,255,160,253,57,253, +104,254,158,255,244,254,53,253,29,252,69,252,246,252,179,253,98,255,33,0,226,253,121,252,207,253,176,254,163,254,129,255, +163,1,193,3,250,4,195,5,87,5,158,4,146,5,9,6,151,6,64,9,103,10,125,10,156,11,203,9,20,6,176,4, +65,4,245,3,54,4,206,4,157,5,46,5,130,5,123,9,197,12,136,11,42,8,114,5,13,4,70,2,186,253,59,248, +84,246,226,248,127,252,173,254,108,255,156,255,177,0,102,2,209,2,155,2,175,2,70,1,233,254,248,254,118,1,247,2, +235,1,36,0,182,255,182,0,142,2,88,4,190,3,153,0,144,254,243,254,180,255,171,255,217,254,156,254,252,255,100,1, +219,1,30,1,71,255,118,254,80,253,254,248,45,245,254,244,214,245,118,245,10,244,196,243,72,246,48,250,23,254,188,0, +247,1,67,4,162,6,111,6,132,6,118,8,206,8,215,6,154,4,78,2,196,0,168,1,118,3,158,3,146,2,1,2, +237,1,142,0,113,254,163,255,254,3,229,6,34,7,146,5,206,2,29,1,155,1,219,2,159,3,211,3,121,3,195,1, +196,255,8,0,115,1,23,1,173,254,83,252,234,251,76,252,110,252,96,253,47,254,212,254,43,1,72,3,138,3,7,3, +44,1,189,254,56,254,235,254,33,255,51,255,70,255,221,254,212,255,114,4,96,10,11,14,116,14,128,10,227,2,217,251, +64,248,250,247,123,249,71,251,206,253,85,1,223,3,56,4,5,4,88,5,74,8,243,10,172,10,113,6,181,0,126,253, +62,254,251,255,219,255,124,255,151,0,12,2,41,3,41,4,104,5,74,6,179,4,70,1,179,254,134,253,178,253,111,254, +104,254,45,254,208,253,16,253,231,252,223,252,118,252,232,252,115,254,173,255,207,255,204,255,157,255,149,254,56,254,208,254, +53,255,142,255,67,255,125,255,45,1,105,0,217,253,193,253,178,253,220,251,116,250,129,249,173,248,65,248,223,248,147,250, +43,251,136,251,242,253,117,0,130,2,245,4,176,5,9,4,71,2,52,2,216,2,241,1,199,0,132,1,190,2,20,3, +232,2,178,2,75,2,239,0,208,255,47,1,88,4,33,7,82,8,85,7,187,4,120,2,200,2,250,5,113,9,28,10, +151,7,115,4,96,3,60,4,132,4,55,2,30,254,185,250,120,249,99,250,130,252,220,253,151,253,203,253,97,0,70,3, +166,3,29,2,213,255,21,253,79,251,67,251,225,251,77,252,70,252,54,252,234,252,4,254,68,254,138,253,214,252,97,252, +3,252,14,252,9,252,106,251,56,250,90,248,235,246,20,247,175,248,252,251,13,0,198,2,102,4,0,6,79,7,200,7, +201,6,226,3,13,0,137,253,250,252,54,253,93,254,246,255,229,0,42,2,229,2,197,1,22,1,199,0,36,255,185,253, +150,253,112,254,107,255,121,255,32,0,211,1,111,2,197,1,178,0,121,255,242,253,38,252,173,251,45,252,144,251,168,250, +206,250,13,252,245,253,67,255,213,255,240,255,200,255,197,0,254,1,167,1,253,0,183,0,10,0,63,255,117,255,223,0, +21,2,78,3,62,5,8,6,66,6,221,7,12,10,10,14,96,19,11,19,233,9,183,253,85,245,239,242,144,245,71,253, +82,8,165,16,128,18,40,16,30,14,174,13,60,12,22,9,180,5,147,1,149,252,159,248,137,247,140,249,232,251,60,252, +122,251,44,250,206,247,159,245,108,245,152,247,103,251,201,255,47,3,171,3,80,1,227,254,194,254,149,0,95,2,107,3, +68,4,247,3,201,1,87,255,167,253,181,252,181,252,114,252,202,250,197,248,59,247,19,246,147,245,91,246,235,247,223,247, +41,247,206,249,31,253,8,252,171,248,220,245,12,244,68,244,51,245,222,246,202,251,77,1,92,3,76,2,153,255,102,253, +92,252,243,249,95,246,37,244,79,243,146,243,32,245,54,247,236,249,18,253,238,253,101,251,123,248,112,247,218,247,199,249, +35,253,238,255,200,0,222,0,176,0,170,254,70,252,213,253,196,2,9,6,243,4,20,1,200,253,150,252,44,253,67,255, +255,0,224,0,106,0,23,0,75,255,146,255,170,1,214,3,204,4,217,4,221,4,171,5,80,7,220,7,216,5,123,3, +179,2,145,2,205,2,210,3,48,5,246,5,91,5,53,4,25,3,85,1,214,255,46,255,119,254,98,254,213,254,228,254, +22,0,158,2,28,4,118,3,237,0,92,254,248,253,158,254,21,255,199,0,206,2,147,2,127,1,73,2,30,4,14,5, +122,4,134,2,92,0,171,254,160,252,97,250,244,248,175,248,158,249,0,251,30,252,195,253,57,0,249,2,124,5,247,5, +45,4,146,2,45,1,245,254,172,253,11,254,240,254,242,255,133,255,94,252,203,248,204,247,203,249,49,253,246,255,234,0, +246,255,180,254,106,255,131,1,212,2,14,3,100,2,209,0,170,254,28,252,137,250,219,250,146,250,97,248,236,246,251,247, +98,250,240,251,16,252,191,252,68,255,246,2,30,7,183,9,224,8,129,6,217,4,134,3,191,2,206,2,23,2,132,0, +254,255,141,0,59,1,243,1,94,2,22,3,82,5,107,7,233,6,227,3,238,255,117,253,18,254,98,0,76,2,198,2, +202,1,9,1,239,1,186,3,2,5,2,5,255,3,6,3,171,2,174,2,166,2,207,2,175,3,165,4,179,4,165,3, +180,1,195,255,239,254,111,255,173,0,130,1,122,1,89,1,175,0,204,254,100,253,136,253,215,253,213,253,14,254,71,254, +102,254,156,254,183,254,124,254,4,254,85,254,21,0,162,1,145,1,3,1,156,1,118,3,16,5,128,5,89,5,47,4, +212,1,11,0,21,255,125,254,182,255,110,2,38,4,209,3,47,2,137,0,209,254,165,252,40,252,100,254,158,0,238,0, +73,0,80,0,107,1,34,2,106,1,3,0,162,254,243,253,123,254,78,255,203,255,136,0,150,1,36,3,144,5,222,6, +36,5,100,2,5,1,88,0,134,255,194,254,235,253,243,253,84,0,171,3,176,5,147,6,39,7,203,7,107,8,15,7, +137,2,74,253,49,250,146,249,180,249,8,249,70,248,122,248,49,249,23,250,75,251,13,253,205,254,59,254,238,250,180,247, +49,246,203,245,169,245,7,246,196,248,77,254,177,3,114,6,255,6,206,6,244,6,244,7,125,9,96,10,191,8,45,4, +80,0,186,0,197,2,69,2,64,0,142,255,5,1,55,4,53,7,246,7,191,7,253,8,108,10,229,9,245,8,182,8, +48,7,150,3,55,255,152,252,237,253,253,1,130,6,254,9,87,10,65,8,183,6,7,6,91,5,211,4,28,5,104,6, +193,6,83,5,155,3,72,1,43,254,67,252,40,252,211,252,229,252,113,251,143,249,172,248,168,248,255,248,105,249,224,249, +197,250,85,252,197,253,63,254,197,254,1,0,65,0,160,254,28,252,156,249,140,247,197,245,104,244,142,244,241,245,146,246, +26,246,246,245,56,246,38,246,241,245,9,245,25,243,227,241,131,241,219,240,68,241,19,243,187,244,136,246,142,248,134,249, +157,249,108,249,121,248,233,246,216,245,39,245,123,243,246,240,47,239,34,239,210,240,84,243,159,245,94,247,110,248,176,248, +163,247,199,245,107,245,168,246,179,247,220,248,21,250,95,250,127,250,60,251,128,252,177,253,213,253,97,253,196,252,239,251, +92,252,215,253,16,254,43,253,54,253,205,254,189,255,139,254,7,254,170,255,191,0,13,0,176,254,128,254,94,0,20,1, +109,254,186,251,141,251,50,253,13,0,65,3,112,5,183,6,250,7,189,8,118,8,218,7,69,7,4,7,143,7,16,8, +44,8,163,8,105,9,66,10,224,10,40,11,146,11,53,11,206,9,37,9,51,9,90,9,8,10,44,10,98,9,50,9, +190,9,240,9,145,9,162,9,171,10,43,11,84,10,82,9,141,8,183,7,49,7,67,7,122,7,35,7,30,6,185,4, +75,3,173,2,66,3,227,3,158,3,82,3,199,3,207,3,217,2,187,2,77,4,157,5,49,5,138,4,172,5,121,7, +240,7,106,7,118,6,28,5,50,4,61,4,247,4,103,5,131,4,201,2,26,1,1,0,233,255,23,0,59,0,198,0, +175,0,124,255,71,254,75,253,143,252,116,252,202,252,90,253,30,254,35,255,54,0,110,0,159,255,230,254,241,254,217,254, +207,253,32,253,202,253,136,254,198,254,125,254,208,252,212,250,41,250,220,249,129,249,241,249,162,250,252,250,35,251,6,251, +8,251,204,250,63,249,222,247,107,248,109,249,252,249,105,251,186,253,194,255,33,1,117,2,52,4,94,5,140,5,245,5, +210,5,122,3,162,0,122,255,31,255,54,254,255,252,81,252,229,252,47,254,55,254,226,252,191,252,214,254,115,1,23,3, +189,3,193,3,230,2,128,1,48,1,91,2,150,3,63,4,150,4,116,4,188,3,253,2,213,2,231,2,207,2,242,2, +121,3,148,4,253,5,182,6,101,7,99,8,90,7,6,4,74,1,94,0,69,0,122,0,243,1,183,4,151,6,227,6, +137,6,176,5,93,5,255,5,106,6,219,6,224,6,46,5,135,3,214,2,12,1,71,254,82,252,117,251,152,251,237,252, +180,254,170,255,243,255,96,0,196,0,247,0,192,0,231,255,207,255,72,1,233,2,91,3,124,2,119,1,143,1,127,2, +189,3,142,4,200,3,214,1,230,255,206,254,113,255,230,0,29,1,143,0,127,1,150,3,251,3,147,2,221,1,22,2, +173,2,154,3,78,3,60,2,22,3,145,4,200,3,209,1,223,0,77,1,130,2,1,3,190,1,234,255,194,254,166,253, +8,252,216,250,196,251,191,254,70,1,223,1,8,1,112,255,222,254,116,0,132,2,34,4,45,6,24,8,190,7,165,4, +129,1,240,255,128,254,60,253,251,252,69,252,158,250,166,249,57,250,123,251,251,251,120,251,189,250,78,250,232,249,166,248, +47,247,52,247,84,248,154,249,220,250,177,251,8,252,196,251,209,250,219,249,48,249,111,249,1,251,133,252,68,253,178,253, +227,253,52,254,176,254,68,255,241,255,175,255,136,254,20,254,180,254,219,255,216,0,23,1,7,1,30,1,225,0,251,255, +94,255,250,255,25,1,43,2,210,2,121,1,215,254,239,253,255,254,2,0,191,255,113,254,110,253,56,253,249,252,111,252, +29,252,203,251,185,250,183,249,16,250,212,250,239,250,35,251,37,252,151,253,76,254,8,254,19,254,143,254,182,254,174,254, +135,254,111,254,255,254,93,255,11,254,241,251,31,251,253,250,117,250,1,251,129,252,222,252,117,252,18,252,203,251,195,252, +129,254,81,255,138,255,214,255,209,255,26,255,148,253,208,251,142,250,65,250,149,251,209,253,135,254,141,253,33,253,201,253, +113,254,97,254,99,253,188,252,151,253,192,254,66,255,68,255,116,254,96,253,38,253,133,253,207,253,34,254,197,254,246,254, +67,254,23,254,217,254,162,255,12,1,241,2,83,3,230,1,107,0,15,0,31,0,214,255,2,0,11,1,65,2,9,3, +191,2,238,1,43,2,155,3,29,5,78,5,228,3,246,2,243,3,25,5,87,4,132,2,82,1,35,0,180,254,6,255, +15,1,178,2,117,3,201,3,250,3,231,3,176,2,248,0,141,0,52,1,159,1,213,1,25,2,170,1,121,0,235,255, +147,0,149,1,121,2,13,3,196,2,187,1,212,0,167,0,232,0,204,0,133,0,83,1,177,2,103,2,143,0,104,255, +100,255,69,255,180,254,127,254,233,254,37,255,224,254,52,254,210,252,107,251,89,251,48,252,137,252,168,252,234,253,161,255, +216,255,80,255,238,255,206,0,66,0,248,254,199,254,235,255,81,1,157,2,51,3,84,2,136,1,21,2,198,2,135,2, +110,1,72,0,163,255,237,254,38,254,219,253,30,254,84,255,156,0,5,0,65,254,236,252,4,252,226,251,199,252,90,253, +228,252,204,252,211,253,75,254,119,253,70,253,24,254,239,253,204,252,171,252,226,253,73,255,134,0,194,1,174,2,121,3, +233,4,170,6,216,7,48,8,60,7,111,5,147,4,110,4,134,3,55,2,131,0,50,254,60,253,79,254,133,255,93,0, +118,1,67,2,248,1,225,0,79,0,103,1,193,3,56,5,43,4,111,1,136,254,97,252,251,251,177,252,171,252,106,252, +206,253,157,0,238,2,59,4,104,5,155,5,152,3,126,1,170,1,218,2,222,2,20,2,137,2,46,4,194,4,59,4, +249,3,184,2,155,255,35,253,189,252,66,253,49,254,36,255,215,255,104,1,241,2,38,2,68,0,58,255,71,254,7,253, +186,252,116,254,93,1,195,3,224,5,95,7,72,6,252,3,36,3,82,2,209,255,231,252,161,250,131,249,81,250,227,251, +105,253,214,0,37,5,156,6,154,6,113,7,42,6,2,2,219,255,188,1,100,4,122,5,185,4,219,1,29,255,60,255, +94,0,123,0,252,255,251,254,201,255,14,4,192,7,250,7,29,6,192,3,203,2,21,3,40,1,72,252,139,247,127,245, +229,246,200,249,196,249,53,246,189,244,7,248,197,251,66,253,5,253,183,250,191,248,30,251,251,254,57,254,112,250,194,250, +243,0,193,6,237,4,76,252,252,246,232,251,79,5,106,9,139,6,201,2,250,2,111,5,102,6,31,5,105,3,75,3, +111,4,36,5,75,5,123,4,238,1,254,255,71,1,61,4,175,6,229,8,207,9,175,7,129,5,118,6,238,8,187,11, +178,14,247,15,245,15,237,16,136,17,252,13,140,6,167,0,58,255,9,0,76,0,47,253,184,247,39,247,130,253,246,3, +187,5,159,3,142,0,245,254,27,254,32,251,208,245,224,242,16,246,142,251,218,252,228,248,199,243,205,242,3,248,234,254, +11,0,13,250,128,244,149,245,114,249,3,249,220,243,191,239,164,240,153,242,102,239,43,233,11,231,179,233,16,237,52,241, +2,247,29,250,36,247,1,242,8,241,221,245,105,252,187,255,192,254,184,251,117,249,12,249,49,249,151,248,229,247,153,248, +203,250,163,252,9,253,128,253,61,255,69,1,42,3,122,5,229,7,236,10,91,15,179,18,23,18,109,14,51,10,210,6, +185,3,152,0,140,0,3,5,57,9,197,8,169,5,32,5,28,8,55,10,183,9,47,9,235,8,77,7,225,4,153,3, +112,4,89,6,68,7,17,6,144,3,136,1,41,0,1,255,224,254,40,255,162,254,183,254,2,0,81,1,50,3,132,5, +242,5,182,4,102,4,82,5,51,6,190,6,21,7,18,7,40,6,202,3,4,1,48,255,153,253,246,251,21,252,111,254, +25,1,118,2,69,2,95,1,146,0,86,255,203,253,123,253,254,253,19,254,142,254,164,255,80,0,152,0,7,0,235,253, +39,251,27,249,216,248,4,250,155,250,86,250,194,250,252,251,32,253,240,253,136,254,15,255,200,255,183,0,91,1,44,1, +107,0,109,0,214,1,170,2,128,1,50,0,74,0,142,1,28,3,35,3,159,1,213,0,237,0,199,0,177,0,152,0, +169,255,41,254,193,252,80,251,126,250,231,250,135,250,145,248,187,247,107,248,175,248,190,248,6,249,165,248,100,247,44,246, +39,246,85,247,14,249,37,251,170,252,206,252,134,252,180,252,81,253,91,254,106,255,112,255,111,254,82,254,212,255,52,1, +207,1,147,2,128,3,235,3,129,3,23,3,38,4,73,6,161,7,111,7,155,6,118,6,223,6,196,6,82,6,248,5, +88,5,202,4,201,4,240,4,134,5,197,6,21,7,40,6,216,5,252,5,67,5,119,4,127,4,203,4,85,4,213,2, +32,2,178,3,133,5,57,5,228,3,137,3,126,3,197,2,120,2,163,2,25,2,177,1,48,2,171,2,212,2,251,2, +110,3,194,3,83,2,95,255,83,253,183,252,64,252,103,251,75,250,62,249,246,248,153,249,68,250,170,250,15,251,98,251, +57,252,23,253,223,251,207,249,31,250,250,251,5,253,68,253,68,253,255,252,113,252,219,251,95,251,182,250,29,250,6,250, +241,249,39,249,250,247,7,248,50,250,198,252,176,253,139,252,173,250,173,250,10,253,43,255,152,255,56,255,72,255,43,0, +30,1,178,1,10,2,199,1,77,1,87,1,152,1,189,1,67,1,255,255,119,255,12,0,29,0,55,255,106,254,21,255, +120,1,159,3,254,3,248,2,95,1,94,0,128,0,168,0,228,0,19,2,169,2,151,1,217,0,70,1,102,1,232,0, +124,0,109,0,211,0,19,1,221,0,35,1,188,1,69,1,218,255,10,255,208,255,90,1,7,2,188,1,53,1,76,0, +89,255,115,255,128,0,180,1,1,3,78,4,202,4,25,4,223,2,227,1,115,1,117,1,236,1,197,2,11,3,15,2, +185,0,237,255,188,255,73,0,55,1,185,1,234,1,59,2,107,2,67,2,190,1,241,0,81,0,211,255,248,254,101,254, +177,254,18,255,83,255,231,255,131,0,222,0,208,0,45,0,145,255,160,255,80,0,55,1,177,1,153,1,67,1,156,0, +155,255,187,254,147,254,50,255,246,255,105,0,116,0,45,0,242,255,172,255,2,255,81,254,25,254,122,254,44,255,184,255, +31,0,95,0,64,0,0,0,196,255,139,255,103,255,44,255,13,255,57,255,65,255,25,255,190,254,21,254,212,253,120,254, +110,255,179,255,59,255,148,255,242,0,63,1,118,0,148,0,97,1,87,1,202,0,1,1,166,1,98,1,83,0,169,255, +174,255,167,255,211,254,154,253,56,253,148,253,96,253,183,252,225,252,178,253,48,254,162,254,41,255,253,254,76,254,190,253, +67,253,182,252,80,252,151,252,131,253,65,254,213,254,162,255,89,0,220,0,177,0,120,255,119,254,120,254,186,254,201,254, +101,254,148,253,9,253,3,253,135,253,159,254,199,255,246,0,80,2,255,2,180,2,238,1,236,0,42,0,16,0,78,0, +141,0,140,0,92,0,129,0,241,0,88,1,166,1,92,1,17,0,95,254,170,253,246,254,217,0,139,0,80,254,94,253, +219,254,88,0,0,0,41,255,63,255,199,255,130,0,86,1,103,1,246,0,61,1,71,2,26,3,53,3,91,3,180,4, +209,6,199,7,215,6,85,5,107,4,240,3,96,3,114,2,196,1,66,2,0,3,166,2,146,1,48,0,25,255,162,255, +104,1,15,3,64,4,162,4,26,4,39,3,230,1,227,0,191,0,201,0,133,0,144,0,23,1,187,1,222,1,211,0, +67,255,185,254,37,255,80,255,49,255,101,255,195,255,3,0,73,0,161,0,26,1,12,2,97,3,23,4,124,3,36,2, +27,1,207,0,204,0,128,0,8,0,224,255,15,0,79,0,198,0,238,1,102,3,54,4,58,4,158,3,107,2,83,1, +211,0,106,0,172,255,175,254,10,254,47,254,134,254,184,254,35,255,118,255,86,255,20,255,190,254,52,254,129,253,2,253, +84,253,23,254,85,254,10,254,144,253,25,253,250,252,53,253,92,253,247,252,61,252,18,252,100,252,91,252,203,251,234,250, +94,250,150,250,189,250,176,250,13,251,64,251,16,251,37,251,88,251,150,251,45,252,197,252,8,253,15,253,34,253,122,253, +17,254,161,254,120,254,135,253,251,252,26,253,46,253,86,253,183,253,65,254,51,255,65,0,12,1,167,1,221,1,130,1, +209,0,25,0,123,255,235,254,166,254,193,254,211,254,246,254,74,255,102,255,127,255,218,255,9,0,230,255,160,255,123,255, +204,255,82,0,194,0,122,1,138,2,92,3,128,3,33,3,206,2,184,2,168,2,132,2,79,2,170,2,50,4,145,5, +75,5,21,4,214,2,214,1,117,1,252,0,229,255,83,255,143,255,144,255,32,255,220,254,64,255,67,0,95,1,54,2, +187,2,238,2,204,2,97,2,194,1,196,0,182,255,107,255,135,255,20,255,117,254,188,254,241,255,226,0,242,0,240,0, +80,1,228,1,106,2,116,2,167,2,231,3,101,5,91,6,233,6,201,6,243,5,187,4,83,3,8,2,244,0,254,255, +249,254,251,253,181,253,63,254,222,254,69,255,159,255,48,0,136,0,244,255,84,255,88,255,28,255,139,254,44,254,174,253, +254,252,130,252,91,252,51,252,216,251,194,251,31,252,183,252,112,253,235,253,68,254,0,255,161,255,210,255,21,0,96,0, +119,0,143,0,207,0,50,1,182,1,88,2,216,2,200,2,42,2,99,1,216,0,124,0,236,255,115,255,107,255,51,255, +145,254,20,254,240,253,64,254,63,255,157,0,174,1,62,2,99,2,16,2,139,1,72,1,54,1,50,1,9,1,100,0, +124,255,183,254,52,254,3,254,248,253,40,254,177,254,47,255,129,255,178,255,200,255,85,0,40,1,73,1,242,0,217,0, +215,0,52,0,151,254,223,252,244,251,127,251,27,251,20,251,180,251,192,252,195,253,214,254,30,0,97,1,133,2,52,3, +63,3,23,3,188,2,79,2,63,2,46,2,39,2,108,2,102,2,48,2,30,2,226,1,198,1,198,1,82,1,132,0, +149,255,23,255,35,255,135,254,154,253,109,253,10,253,127,252,24,253,248,253,26,254,218,253,44,253,104,252,105,252,199,252, +239,252,6,253,4,253,36,253,151,253,113,253,34,252,176,250,117,250,81,251,202,251,157,251,255,251,251,252,245,253,7,255, +245,255,143,0,240,0,160,0,179,255,229,254,118,254,147,254,78,255,66,0,1,1,69,1,55,1,66,1,177,1,110,2, +223,2,10,3,147,3,29,4,51,4,8,4,163,3,86,3,99,3,116,3,147,3,176,3,123,3,116,3,243,3,70,4, +193,3,182,2,181,1,183,0,249,255,241,255,50,0,129,0,46,1,217,1,235,1,98,1,231,0,23,1,130,1,211,1, +97,2,188,2,77,2,172,1,188,1,102,2,253,2,94,3,122,3,241,2,237,1,220,0,250,255,80,255,126,254,211,253, +202,253,140,253,2,253,113,253,249,254,164,0,209,1,184,2,215,3,7,5,6,6,178,6,216,6,154,6,162,5,168,3, +193,1,153,0,189,255,228,254,224,253,216,252,39,252,128,251,132,250,131,249,102,249,75,250,248,250,250,250,227,250,174,250, +113,250,156,250,22,251,156,251,235,251,208,251,131,251,54,251,201,250,58,250,37,250,7,251,44,252,195,252,242,252,33,253, +127,253,252,253,74,254,54,254,216,253,126,253,88,253,103,253,158,253,172,253,107,253,47,253,26,253,56,253,173,253,115,254, +121,255,64,0,66,0,2,0,243,255,184,255,100,255,99,255,139,255,99,255,228,254,101,254,31,254,41,254,111,254,159,254, +189,254,47,255,185,255,200,255,183,255,19,0,92,0,95,0,139,0,176,0,1,1,16,2,8,3,27,3,206,2,154,2, +154,2,168,2,166,2,180,2,123,2,4,2,229,1,227,1,228,1,44,2,62,2,248,1,183,1,165,1,240,1,44,2, +8,2,19,2,63,2,59,2,51,2,25,2,81,2,25,3,15,3,217,1,74,1,209,1,19,2,195,1,102,1,47,1, +65,1,98,1,87,1,73,1,250,0,166,0,19,1,148,1,121,1,96,1,57,1,219,0,232,0,38,1,21,1,23,1, +53,1,255,0,142,0,75,0,72,0,88,0,107,0,119,0,106,0,85,0,61,0,58,0,91,0,107,0,161,0,118,1, +163,2,126,3,169,3,63,3,211,2,162,2,52,2,77,1,111,0,25,0,22,0,243,255,199,255,159,255,70,255,16,255, +106,255,0,0,49,0,208,255,73,255,60,255,168,255,5,0,34,0,107,0,53,1,18,2,129,2,144,2,80,2,33,2, +111,2,123,2,206,1,69,1,53,1,94,1,148,1,47,1,87,0,70,0,202,0,210,0,150,0,183,0,12,1,45,1, +14,1,225,0,209,0,210,0,192,0,157,0,133,0,97,0,11,0,133,255,31,255,73,255,214,255,40,0,26,0,198,255, +76,255,30,255,92,255,168,255,230,255,31,0,32,0,232,255,179,255,146,255,124,255,134,255,175,255,187,255,141,255,92,255, +99,255,134,255,112,255,6,255,178,254,195,254,183,254,48,254,155,253,58,253,20,253,89,253,226,253,121,254,22,255,120,255, +156,255,175,255,122,255,6,255,173,254,100,254,41,254,54,254,110,254,167,254,229,254,252,254,236,254,12,255,60,255,71,255, +72,255,225,254,77,254,112,254,190,254,137,254,119,254,147,254,191,254,114,255,42,0,50,0,193,255,54,255,8,255,83,255, +99,255,222,254,109,254,156,254,229,254,199,254,166,254,159,254,153,254,173,254,129,254,31,254,5,254,51,254,215,254,212,255, +78,0,68,0,76,0,127,0,159,0,65,0,167,255,117,255,122,255,87,255,239,254,79,254,227,253,200,253,225,253,69,254, +146,254,152,254,192,254,241,254,17,255,99,255,151,255,93,255,8,255,9,255,99,255,138,255,52,255,247,254,47,255,130,255, +152,255,113,255,71,255,46,255,24,255,42,255,91,255,118,255,174,255,29,0,130,0,170,0,106,0,237,255,187,255,227,255, +42,0,121,0,179,0,9,1,145,1,203,1,147,1,84,1,43,1,10,1,253,0,245,0,189,0,93,0,46,0,61,0, +71,0,85,0,125,0,150,0,127,0,42,0,180,255,113,255,122,255,143,255,169,255,223,255,215,255,142,255,196,255,113,0, +202,0,244,0,69,1,77,1,226,0,120,0,77,0,64,0,18,0,172,255,122,255,195,255,223,255,149,255,196,255,125,0, +246,0,14,1,8,1,247,0,214,0,171,0,164,0,159,0,108,0,89,0,92,0,93,0,191,0,67,1,136,1,211,1, +57,2,168,2,34,3,119,3,126,3,41,3,174,2,123,2,103,2,29,2,229,1,243,1,240,1,168,1,65,1,231,0, +200,0,231,0,248,0,215,0,122,0,216,255,111,255,123,255,141,255,145,255,118,255,56,255,88,255,156,255,151,255,188,255, +5,0,40,0,89,0,78,0,233,255,149,255,67,255,243,254,210,254,166,254,128,254,158,254,193,254,196,254,212,254,20,255, +138,255,240,255,238,255,185,255,202,255,47,0,135,0,148,0,184,0,16,1,239,0,123,0,101,0,89,0,34,0,240,255, +130,255,42,255,48,255,40,255,43,255,41,255,230,254,241,254,79,255,134,255,165,255,164,255,155,255,213,255,67,0,182,0, +188,0,89,0,81,0,117,0,58,0,203,255,57,255,185,254,124,254,80,254,95,254,174,254,248,254,69,255,101,255,93,255, +113,255,120,255,193,255,106,0,123,0,230,255,135,255,88,255,13,255,237,254,26,255,52,255,54,255,137,255,193,255,126,255, +148,255,16,0,31,0,25,0,112,0,175,0,167,0,156,0,193,0,3,1,14,1,212,0,160,0,129,0,82,0,253,255, +169,255,145,255,173,255,215,255,248,255,229,255,155,255,91,255,70,255,84,255,111,255,94,255,44,255,34,255,56,255,95,255, +156,255,184,255,195,255,12,0,105,0,161,0,183,0,169,0,171,0,224,0,247,0,214,0,210,0,0,1,238,0,103,0, +22,0,74,0,107,0,122,0,184,0,200,0,203,0,245,0,240,0,253,0,75,1,94,1,60,1,253,0,157,0,124,0, +102,0,22,0,15,0,63,0,59,0,61,0,85,0,73,0,25,0,203,255,135,255,120,255,148,255,195,255,218,255,226,255, +24,0,71,0,67,0,102,0,195,0,6,1,20,1,25,1,47,1,67,1,86,1,117,1,143,1,159,1,170,1,180,1, +200,1,193,1,80,1,162,0,39,0,248,255,246,255,241,255,204,255,224,255,64,0,105,0,68,0,26,0,252,255,17,0, +82,0,106,0,105,0,121,0,136,0,143,0,140,0,118,0,75,0,53,0,127,0,183,0,93,0,248,255,248,255,39,0, +67,0,254,255,109,255,16,255,12,255,43,255,23,255,236,254,2,255,254,254,198,254,179,254,131,254,91,254,169,254,239,254, +232,254,202,254,135,254,51,254,216,253,131,253,90,253,60,253,83,253,162,253,149,253,111,253,163,253,190,253,177,253,225,253, +103,254,253,254,23,255,222,254,227,254,7,255,39,255,95,255,153,255,195,255,185,255,166,255,211,255,182,255,13,255,156,254, +191,254,28,255,94,255,87,255,31,255,231,254,174,254,110,254,67,254,67,254,93,254,101,254,86,254,78,254,67,254,76,254, +176,254,42,255,64,255,52,255,38,255,211,254,140,254,149,254,199,254,253,254,226,254,129,254,89,254,112,254,189,254,92,255, +237,255,44,0,101,0,206,0,29,1,59,1,111,1,125,1,57,1,14,1,210,0,83,0,3,0,227,255,255,255,74,0, +37,0,201,255,165,255,131,255,166,255,245,255,221,255,184,255,217,255,246,255,7,0,47,0,116,0,203,0,45,1,108,1, +110,1,153,1,233,1,241,1,30,2,129,2,130,2,92,2,84,2,73,2,68,2,34,2,225,1,186,1,155,1,121,1, +72,1,33,1,62,1,102,1,99,1,77,1,68,1,118,1,144,1,80,1,28,1,250,0,200,0,191,0,201,0,216,0, +251,0,249,0,206,0,152,0,85,0,24,0,2,0,22,0,36,0,68,0,172,0,239,0,213,0,191,0,235,0,104,1, +216,1,244,1,29,2,54,2,18,2,11,2,246,1,214,1,217,1,157,1,81,1,43,1,227,0,195,0,210,0,195,0, +162,0,41,0,155,255,149,255,157,255,162,255,33,0,142,0,116,0,85,0,148,0,241,0,5,1,234,0,219,0,201,0, +182,0,145,0,74,0,53,0,107,0,88,0,203,255,133,255,172,255,107,255,231,254,229,254,28,255,30,255,27,255,52,255, +74,255,58,255,76,255,167,255,215,255,205,255,169,255,58,255,182,254,82,254,18,254,38,254,60,254,48,254,101,254,143,254, +116,254,124,254,183,254,26,255,125,255,133,255,95,255,84,255,111,255,155,255,129,255,57,255,48,255,39,255,255,254,14,255, +44,255,25,255,6,255,29,255,76,255,103,255,74,255,15,255,216,254,194,254,210,254,199,254,155,254,185,254,15,255,15,255, +188,254,143,254,159,254,168,254,170,254,194,254,197,254,188,254,227,254,33,255,112,255,195,255,200,255,193,255,209,255,142,255, +94,255,143,255,176,255,237,255,46,0,240,255,186,255,223,255,23,0,122,0,179,0,146,0,174,0,243,0,250,0,229,0, +166,0,77,0,59,0,99,0,111,0,65,0,11,0,16,0,75,0,133,0,149,0,163,0,211,0,226,0,214,0,240,0, +17,1,61,1,121,1,139,1,170,1,213,1,175,1,109,1,60,1,7,1,3,1,2,1,198,0,162,0,195,0,5,1, +51,1,45,1,50,1,87,1,93,1,78,1,96,1,138,1,149,1,95,1,23,1,252,0,14,1,25,1,226,0,125,0, +45,0,1,0,6,0,89,0,222,0,56,1,70,1,60,1,24,1,222,0,215,0,208,0,169,0,184,0,185,0,142,0, +140,0,109,0,55,0,100,0,163,0,205,0,13,1,29,1,5,1,246,0,201,0,133,0,89,0,100,0,142,0,151,0, +124,0,83,0,41,0,3,0,219,255,7,0,83,0,24,0,204,255,194,255,100,255,253,254,245,254,0,255,28,255,38,255, +33,255,78,255,38,255,155,254,92,254,55,254,31,254,122,254,221,254,242,254,0,255,23,255,82,255,182,255,246,255,4,0, +5,0,232,255,164,255,97,255,84,255,99,255,57,255,248,254,231,254,220,254,235,254,42,255,19,255,184,254,162,254,151,254, +142,254,196,254,209,254,166,254,194,254,48,255,191,255,36,0,4,0,133,255,46,255,68,255,122,255,109,255,27,255,198,254, +222,254,28,255,186,254,57,254,68,254,99,254,159,254,21,255,49,255,54,255,116,255,139,255,173,255,233,255,216,255,168,255, +144,255,125,255,135,255,177,255,241,255,50,0,42,0,238,255,214,255,213,255,205,255,204,255,165,255,105,255,112,255,116,255, +81,255,121,255,196,255,221,255,223,255,185,255,155,255,197,255,236,255,252,255,230,255,160,255,169,255,237,255,224,255,198,255, +225,255,6,0,33,0,24,0,254,255,238,255,213,255,217,255,29,0,113,0,176,0,232,0,26,1,31,1,237,0,165,0, +77,0,17,0,3,0,249,255,255,255,249,255,180,255,122,255,108,255,79,255,40,255,39,255,116,255,241,255,60,0,53,0, +57,0,166,0,14,1,235,0,199,0,245,0,255,0,248,0,236,0,166,0,128,0,149,0,155,0,130,0,55,0,222,255, +211,255,29,0,102,0,107,0,112,0,158,0,161,0,204,0,132,1,21,2,35,2,25,2,249,1,160,1,62,1,1,1, +241,0,242,0,230,0,194,0,132,0,62,0,13,0,226,255,161,255,112,255,118,255,121,255,97,255,77,255,39,255,8,255, +39,255,115,255,183,255,157,255,41,255,229,254,20,255,85,255,65,255,33,255,122,255,230,255,201,255,95,255,19,255,24,255, +62,255,46,255,55,255,137,255,189,255,207,255,161,255,9,255,198,254,25,255,100,255,130,255,140,255,144,255,182,255,197,255, +172,255,190,255,229,255,246,255,27,0,40,0,230,255,167,255,153,255,137,255,151,255,202,255,172,255,71,255,40,255,73,255, +110,255,158,255,199,255,228,255,240,255,200,255,174,255,237,255,73,0,115,0,78,0,42,0,111,0,146,0,49,0,223,255, +132,255,7,255,60,255,223,255,41,0,58,0,245,255,146,255,215,255,91,0,143,0,182,0,219,0,243,0,2,1,238,0, +227,0,248,0,10,1,252,0,168,0,97,0,113,0,115,0,84,0,93,0,101,0,71,0,42,0,8,0,206,255,167,255, +171,255,181,255,192,255,192,255,178,255,215,255,27,0,65,0,104,0,110,0,103,0,166,0,176,0,130,0,160,0,176,0, +170,0,237,0,5,1,211,0,179,0,177,0,230,0,27,1,27,1,10,1,192,0,113,0,117,0,110,0,89,0,106,0, +133,0,222,0,61,1,38,1,251,0,237,0,180,0,151,0,202,0,8,1,40,1,28,1,218,0,140,0,104,0,114,0, +143,0,157,0,111,0,42,0,3,0,206,255,150,255,138,255,128,255,112,255,100,255,90,255,93,255,107,255,196,255,92,0, +142,0,126,0,160,0,154,0,98,0,78,0,83,0,105,0,100,0,18,0,204,255,205,255,238,255,253,255,206,255,141,255, +143,255,185,255,216,255,239,255,240,255,214,255,200,255,178,255,128,255,88,255,63,255,88,255,201,255,59,0,141,0,174,0, +86,0,230,255,174,255,128,255,112,255,26,255,118,254,105,254,184,254,221,254,60,255,114,255,44,255,253,254,4,255,33,255, +38,255,234,254,180,254,148,254,141,254,180,254,176,254,197,254,106,255,235,255,225,255,217,255,14,0,49,0,4,0,175,255, +115,255,70,255,30,255,23,255,87,255,177,255,187,255,154,255,206,255,128,0,83,1,171,1,173,1,235,1,13,2,164,1, +250,0,184,0,14,1,24,1,149,0,51,0,169,255,52,255,110,255,66,255,158,254,144,254,165,254,183,254,240,254,171,254, +99,254,165,254,29,255,205,255,1,0,128,255,139,255,224,255,205,255,4,0,92,0,71,0,36,0,27,0,69,0,142,0, +137,0,121,0,122,0,33,0,175,255,136,255,162,255,207,255,235,255,80,0,250,0,46,1,15,1,31,1,16,1,186,0, +104,0,54,0,35,0,44,0,80,0,112,0,150,0,247,0,33,1,162,0,22,0,18,0,118,0,9,1,95,1,23,1, +159,0,152,0,221,0,15,1,67,1,146,1,205,1,190,1,98,1,20,1,2,1,233,0,190,0,152,0,121,0,128,0, +133,0,99,0,88,0,126,0,190,0,251,0,11,1,240,0,226,0,252,0,213,0,25,0,94,255,254,254,205,254,249,254, +32,255,198,254,122,254,155,254,5,255,137,255,241,255,101,0,200,0,217,0,198,0,121,0,27,0,244,255,193,255,201,255, +40,0,109,0,222,0,74,1,96,1,179,1,235,1,199,1,211,1,194,1,136,1,119,1,73,1,69,1,124,1,109,1, +108,1,158,1,122,1,0,1,177,0,166,0,107,0,15,0,226,255,142,255,45,255,253,254,168,254,126,254,217,254,89,255, +195,255,14,0,103,0,182,0,155,0,89,0,9,0,170,255,131,255,0,255,66,254,109,254,31,255,179,255,13,0,225,255, +184,255,183,255,83,255,33,255,73,255,72,255,97,255,122,255,82,255,46,255,6,255,242,254,19,255,21,255,244,254,234,254, +23,255,86,255,71,255,10,255,245,254,33,255,146,255,183,255,46,255,180,254,193,254,238,254,197,254,49,254,207,253,247,253, +40,254,60,254,72,254,48,254,100,254,251,254,76,255,60,255,20,255,28,255,144,255,245,255,242,255,209,255,141,255,87,255, +129,255,144,255,59,255,240,254,7,255,85,255,62,255,225,254,232,254,13,255,30,255,83,255,74,255,37,255,103,255,159,255, +131,255,107,255,126,255,149,255,137,255,129,255,137,255,115,255,125,255,193,255,230,255,223,255,199,255,209,255,14,0,17,0, +220,255,212,255,203,255,144,255,111,255,151,255,208,255,225,255,221,255,193,255,135,255,131,255,198,255,226,255,182,255,124,255, +85,255,81,255,109,255,110,255,90,255,146,255,235,255,255,255,46,0,151,0,188,0,164,0,139,0,157,0,9,1,44,1, +147,0,239,255,142,255,87,255,178,255,69,0,33,0,147,255,72,255,49,255,90,255,185,255,231,255,254,255,55,0,62,0, +24,0,45,0,116,0,200,0,52,1,105,1,64,1,50,1,42,1,174,0,59,0,3,0,130,255,25,255,244,254,122,254, +4,254,6,254,13,254,227,253,230,253,113,254,17,255,34,255,16,255,5,255,165,254,144,254,217,254,198,254,160,254,171,254, +190,254,236,254,203,254,105,254,132,254,221,254,6,255,51,255,113,255,163,255,168,255,146,255,163,255,164,255,165,255,250,255, +19,0,199,255,190,255,214,255,228,255,17,0,248,255,170,255,177,255,211,255,235,255,86,0,243,0,111,1,200,1,9,2, +62,2,119,2,177,2,231,2,19,3,12,3,195,2,124,2,74,2,22,2,5,2,22,2,42,2,62,2,46,2,41,2, +106,2,146,2,127,2,103,2,105,2,177,2,210,2,97,2,243,1,200,1,155,1,88,1,232,0,163,0,161,0,108,0, +64,0,50,0,225,255,201,255,18,0,103,0,210,0,247,0,199,0,221,0,7,1,247,0,221,0,182,0,141,0,57,0, +140,255,1,255,188,254,121,254,86,254,80,254,76,254,120,254,200,254,24,255,140,255,4,0,39,0,36,0,80,0,123,0, +112,0,21,0,131,255,65,255,73,255,68,255,95,255,81,255,231,254,208,254,15,255,69,255,136,255,170,255,185,255,208,255, +161,255,132,255,169,255,139,255,58,255,5,255,252,254,15,255,12,255,34,255,70,255,17,255,249,254,72,255,137,255,153,255, +116,255,88,255,122,255,130,255,141,255,198,255,229,255,22,0,58,0,43,0,100,0,141,0,66,0,15,0,41,0,104,0, +126,0,102,0,161,0,242,0,41,1,152,1,176,1,95,1,73,1,64,1,78,1,125,1,96,1,57,1,11,1,182,0, +138,0,45,0,187,255,233,255,50,0,35,0,62,0,173,0,13,1,248,0,208,0,244,0,244,0,255,0,99,1,97,1, +4,1,13,1,35,1,202,0,103,0,69,0,44,0,38,0,67,0,45,0,252,255,219,255,173,255,210,255,44,0,43,0, +36,0,20,0,170,255,99,255,100,255,121,255,117,255,37,255,16,255,86,255,77,255,43,255,51,255,65,255,177,255,89,0, +139,0,116,0,154,0,242,0,31,1,36,1,21,1,208,0,162,0,160,0,91,0,15,0,1,0,238,255,10,0,125,0, +170,0,73,0,243,255,21,0,33,0,205,255,159,255,150,255,87,255,23,255,9,255,248,254,193,254,158,254,211,254,66,255, +160,255,185,255,177,255,235,255,67,0,116,0,150,0,128,0,22,0,178,255,127,255,129,255,162,255,179,255,214,255,25,0, +64,0,68,0,78,0,94,0,94,0,117,0,200,0,9,1,28,1,31,1,222,0,116,0,62,0,247,255,124,255,79,255, +121,255,131,255,120,255,127,255,97,255,80,255,162,255,224,255,205,255,216,255,9,0,64,0,97,0,2,0,130,255,124,255, +125,255,87,255,149,255,11,0,86,0,152,0,204,0,196,0,133,0,41,0,239,255,20,0,121,0,173,0,133,0,90,0, +86,0,80,0,76,0,63,0,6,0,180,255,136,255,189,255,236,255,191,255,142,255,50,255,162,254,162,254,20,255,176,255, +108,0,102,0,220,255,179,255,114,255,54,255,44,255,133,254,219,253,5,254,163,254,105,255,193,255,126,255,91,255,120,255, +191,255,16,0,46,0,85,0,90,0,65,0,94,0,16,0,151,255,219,255,69,0,127,0,194,0,206,0,204,0,194,0, +137,0,100,0,51,0,248,255,217,255,175,255,176,255,178,255,107,255,95,255,112,255,58,255,33,255,15,255,185,254,129,254, +165,254,253,254,76,255,104,255,85,255,62,255,85,255,117,255,107,255,58,255,252,254,245,254,16,255,233,254,183,254,155,254, +99,254,96,254,200,254,68,255,120,255,87,255,124,255,38,0,122,0,7,0,96,255,33,255,146,255,106,0,224,0,173,0, +81,0,29,0,47,0,154,0,206,0,118,0,33,0,250,255,243,255,67,0,119,0,59,0,22,0,60,0,112,0,140,0, +159,0,236,0,94,1,111,1,4,1,168,0,184,0,218,0,188,0,147,0,99,0,237,255,110,255,90,255,144,255,199,255, +8,0,26,0,226,255,207,255,223,255,0,0,103,0,149,0,81,0,5,0,172,255,127,255,177,255,198,255,200,255,229,255, +216,255,181,255,168,255,171,255,168,255,143,255,170,255,0,0,76,0,142,0,158,0,145,0,154,0,108,0,67,0,138,0, +213,0,231,0,237,0,244,0,237,0,180,0,131,0,154,0,166,0,159,0,201,0,242,0,181,0,42,0,204,255,145,255, +67,255,61,255,131,255,188,255,217,255,202,255,163,255,105,255,23,255,46,255,176,255,5,0,253,255,157,255,104,255,169,255, +160,255,93,255,121,255,149,255,185,255,52,0,118,0,92,0,71,0,75,0,86,0,53,0,0,0,56,0,185,0,227,0, +185,0,147,0,126,0,150,0,235,0,21,1,235,0,203,0,189,0,149,0,162,0,251,0,10,1,167,0,106,0,142,0, +196,0,188,0,120,0,106,0,191,0,6,1,252,0,177,0,121,0,140,0,130,0,70,0,22,0,183,255,113,255,139,255, +118,255,84,255,114,255,149,255,235,255,71,0,3,0,114,255,100,255,52,0,62,1,114,1,6,1,226,0,61,1,202,1, +213,1,56,1,165,0,71,0,19,0,61,0,117,0,135,0,134,0,48,0,138,255,0,255,223,254,71,255,240,255,103,0, +156,0,146,0,77,0,22,0,44,0,148,0,8,1,244,0,89,0,252,255,15,0,58,0,91,0,78,0,19,0,234,255, +214,255,190,255,159,255,105,255,53,255,56,255,125,255,188,255,153,255,62,255,20,255,35,255,95,255,135,255,72,255,217,254, +124,254,62,254,49,254,36,254,250,253,246,253,29,254,53,254,69,254,95,254,118,254,130,254,131,254,131,254,150,254,176,254, +200,254,229,254,219,254,184,254,222,254,30,255,15,255,243,254,34,255,135,255,251,255,85,0,107,0,60,0,31,0,45,0, +11,0,203,255,182,255,151,255,130,255,168,255,181,255,165,255,211,255,58,0,147,0,181,0,210,0,248,0,13,1,67,1, +89,1,6,1,232,0,16,1,227,0,164,0,181,0,253,0,39,1,210,0,109,0,138,0,209,0,242,0,215,0,136,0, +99,0,85,0,36,0,0,0,247,255,237,255,187,255,121,255,152,255,205,255,163,255,134,255,148,255,124,255,65,255,249,254, +211,254,215,254,205,254,180,254,166,254,190,254,236,254,238,254,231,254,253,254,26,255,59,255,38,255,2,255,42,255,33,255, +242,254,73,255,193,255,246,255,55,0,124,0,145,0,122,0,132,0,202,0,231,0,242,0,35,1,20,1,216,0,200,0, +187,0,188,0,224,0,244,0,251,0,245,0,218,0,218,0,250,0,247,0,240,0,80,1,216,1,5,2,237,1,204,1, +181,1,169,1,104,1,6,1,219,0,238,0,20,1,25,1,254,0,240,0,218,0,193,0,229,0,52,1,84,1,28,1, +241,0,3,1,233,0,172,0,108,0,9,0,231,255,240,255,194,255,192,255,212,255,138,255,30,255,168,254,87,254,91,254, +79,254,58,254,73,254,42,254,254,253,13,254,48,254,62,254,75,254,152,254,232,254,204,254,167,254,172,254,140,254,143,254, +222,254,18,255,36,255,56,255,85,255,169,255,32,0,93,0,93,0,70,0,54,0,94,0,160,0,212,0,10,1,29,1, +25,1,31,1,246,0,194,0,148,0,20,0,167,255,179,255,242,255,78,0,129,0,67,0,4,0,29,0,120,0,196,0, +215,0,239,0,202,0,65,0,10,0,63,0,138,0,201,0,136,0,230,255,164,255,220,255,38,0,64,0,39,0,175,255, +219,254,139,254,253,254,135,255,2,0,84,0,128,0,213,0,250,0,218,0,195,0,158,0,180,0,247,0,213,0,167,0, +160,0,126,0,113,0,68,0,191,255,85,255,58,255,93,255,120,255,110,255,146,255,169,255,90,255,54,255,120,255,184,255, +221,255,243,255,244,255,244,255,208,255,102,255,22,255,47,255,84,255,61,255,28,255,57,255,140,255,188,255,196,255,218,255, +180,255,84,255,57,255,72,255,55,255,44,255,60,255,109,255,177,255,211,255,190,255,160,255,191,255,59,0,212,0,26,1, +235,0,160,0,117,0,73,0,38,0,55,0,134,0,230,0,227,0,168,0,177,0,164,0,87,0,62,0,83,0,91,0, +58,0,253,255,210,255,127,255,13,255,229,254,187,254,112,254,115,254,112,254,37,254,20,254,95,254,145,254,122,254,117,254, +183,254,1,255,82,255,173,255,218,255,245,255,62,0,178,0,46,1,106,1,94,1,55,1,252,0,219,0,6,1,74,1, +86,1,27,1,250,0,35,1,57,1,56,1,69,1,52,1,41,1,73,1,108,1,141,1,134,1,79,1,83,1,119,1, +87,1,44,1,55,1,45,1,193,0,78,0,74,0,104,0,84,0,85,0,124,0,123,0,53,0,245,255,245,255,209,255, +126,255,158,255,5,0,7,0,195,255,137,255,90,255,46,255,13,255,18,255,43,255,17,255,213,254,173,254,167,254,205,254, +16,255,78,255,143,255,228,255,37,0,77,0,138,0,182,0,177,0,196,0,248,0,32,1,49,1,3,1,177,0,156,0, +169,0,135,0,65,0,11,0,249,255,228,255,177,255,151,255,185,255,226,255,246,255,17,0,19,0,235,255,240,255,24,0, +23,0,34,0,75,0,84,0,74,0,64,0,41,0,2,0,207,255,196,255,218,255,196,255,142,255,108,255,93,255,74,255, +55,255,73,255,122,255,154,255,156,255,139,255,138,255,160,255,180,255,226,255,16,0,23,0,33,0,25,0,242,255,216,255, +178,255,130,255,78,255,19,255,11,255,250,254,193,254,227,254,17,255,241,254,11,255,51,255,6,255,235,254,247,254,254,254, +26,255,72,255,135,255,195,255,181,255,157,255,211,255,234,255,189,255,214,255,29,0,46,0,60,0,76,0,73,0,81,0, +84,0,92,0,89,0,30,0,248,255,250,255,0,0,32,0,8,0,197,255,189,255,149,255,97,255,147,255,194,255,216,255, +32,0,77,0,60,0,47,0,59,0,55,0,35,0,43,0,57,0,65,0,92,0,89,0,51,0,18,0,237,255,223,255, +209,255,159,255,145,255,170,255,174,255,173,255,193,255,230,255,232,255,216,255,8,0,56,0,70,0,93,0,74,0,77,0, +150,0,157,0,125,0,146,0,169,0,191,0,209,0,193,0,162,0,128,0,136,0,194,0,236,0,11,1,16,1,215,0, +156,0,130,0,114,0,106,0,102,0,113,0,129,0,107,0,83,0,109,0,136,0,130,0,149,0,177,0,150,0,108,0, +79,0,50,0,39,0,15,0,225,255,207,255,175,255,117,255,108,255,133,255,172,255,241,255,37,0,42,0,33,0,27,0, +13,0,250,255,241,255,213,255,172,255,166,255,187,255,221,255,249,255,219,255,177,255,186,255,220,255,241,255,5,0,34,0, +34,0,23,0,70,0,73,0,254,255,253,255,18,0,237,255,225,255,230,255,5,0,64,0,74,0,87,0,103,0,52,0, +46,0,97,0,82,0,23,0,255,255,29,0,46,0,23,0,41,0,46,0,236,255,203,255,183,255,142,255,177,255,249,255, +253,255,202,255,179,255,228,255,254,255,213,255,193,255,190,255,177,255,184,255,157,255,107,255,125,255,152,255,134,255,136,255, +167,255,196,255,211,255,196,255,221,255,55,0,70,0,247,255,175,255,81,255,249,254,0,255,29,255,55,255,115,255,152,255, +179,255,239,255,14,0,18,0,10,0,226,255,225,255,32,0,84,0,119,0,128,0,93,0,79,0,74,0,40,0,64,0, +131,0,142,0,174,0,254,0,23,1,229,0,117,0,0,0,239,255,44,0,116,0,164,0,157,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/eat2.pcm b/src/client/sound/data/eat2.pcm new file mode 100755 index 0000000..719ac63 --- /dev/null +++ b/src/client/sound/data/eat2.pcm @@ -0,0 +1,769 @@ +unsigned char PCM_eat2[24538] = { +1,0,0,0,2,0,0,0,68,172,0,0,229,47,0,0,210,255,45,255,198,254,117,254,25,254,94,253,76,252,35,252, +20,253,106,253,184,252,83,252,91,252,201,251,56,251,232,251,23,253,10,254,225,255,223,2,128,5,250,6,68,8,137,10, +1,13,198,13,156,12,140,10,69,8,100,6,52,5,24,4,185,2,143,1,179,0,182,255,199,254,149,254,42,255,210,255, +25,0,142,0,203,1,29,3,71,3,218,1,117,255,94,253,249,251,163,250,189,249,35,250,136,251,54,253,28,254,158,253, +172,253,222,255,77,2,245,2,110,2,243,1,151,1,166,0,10,255,84,253,166,251,240,249,76,248,246,246,95,246,72,246, +75,246,109,247,28,250,158,252,34,254,190,255,124,1,66,2,19,2,228,1,120,2,213,3,166,4,87,3,15,0,137,252, +92,250,139,249,60,249,99,249,103,250,23,252,205,253,6,255,9,0,110,1,36,3,222,4,74,6,47,7,197,7,29,8, +252,7,114,7,1,7,199,6,131,5,167,2,246,255,100,254,58,253,119,252,117,252,19,253,190,253,178,253,79,253,126,253, +63,254,41,255,19,0,25,1,245,1,214,1,226,0,232,255,21,255,65,254,82,253,184,252,219,252,11,253,70,253,55,254, +77,255,10,0,144,0,226,0,144,1,169,2,46,3,246,2,172,2,130,2,27,2,87,1,192,0,126,0,19,0,147,255, +95,255,103,255,171,255,87,0,10,1,11,1,139,0,56,0,8,0,202,255,201,255,36,0,135,0,151,0,133,0,198,0, +62,1,126,1,97,1,34,1,17,1,19,1,198,0,17,0,59,255,190,254,162,254,102,254,22,254,97,254,78,255,6,0, +24,0,2,0,46,0,109,0,149,0,156,0,160,0,237,0,42,1,159,0,137,255,227,254,246,254,36,255,250,254,209,254, +42,255,217,255,106,0,215,0,48,1,93,1,95,1,8,1,82,0,213,255,192,255,230,255,138,0,121,1,12,2,27,2, +208,1,102,1,18,1,228,0,200,0,100,0,220,255,222,255,47,0,41,0,227,255,150,255,110,255,146,255,224,255,81,0, +227,0,76,1,72,1,224,0,131,0,138,0,203,0,24,1,76,1,81,1,84,1,11,1,62,0,153,255,115,255,93,255, +38,255,251,254,14,255,86,255,170,255,237,255,213,255,129,255,94,255,47,255,228,254,241,254,29,255,8,255,254,254,41,255, +72,255,31,255,210,254,218,254,87,255,205,255,206,255,155,255,138,255,115,255,72,255,69,255,115,255,169,255,170,255,115,255, +65,255,44,255,66,255,135,255,186,255,183,255,156,255,134,255,104,255,49,255,7,255,244,254,237,254,46,255,128,255,118,255, +98,255,147,255,228,255,41,0,64,0,49,0,236,255,129,255,118,255,148,255,64,255,214,254,155,254,105,254,106,254,131,254, +142,254,173,254,208,254,234,254,31,255,175,255,121,0,163,0,42,0,251,255,7,0,205,255,98,255,3,255,248,254,64,255, +141,255,186,255,175,255,130,255,113,255,114,255,174,255,61,0,173,0,244,0,85,1,160,1,210,1,25,2,91,2,107,2, +52,2,196,1,76,1,0,1,251,0,4,1,227,0,187,0,145,0,96,0,93,0,92,0,40,0,35,0,126,0,234,0, +53,1,95,1,113,1,95,1,20,1,187,0,123,0,90,0,82,0,49,0,20,0,79,0,159,0,169,0,149,0,120,0, +87,0,116,0,209,0,44,1,128,1,207,1,247,1,4,2,240,1,151,1,77,1,71,1,40,1,216,0,83,0,112,255, +157,254,29,254,175,253,98,253,66,253,53,253,109,253,217,253,40,254,56,254,59,254,171,254,100,255,191,255,192,255,176,255, +159,255,189,255,16,0,100,0,132,0,104,0,104,0,193,0,44,1,101,1,115,1,112,1,77,1,7,1,204,0,155,0, +78,0,239,255,164,255,169,255,236,255,7,0,14,0,253,255,150,255,107,255,200,255,2,0,4,0,34,0,67,0,134,0, +231,0,246,0,195,0,134,0,64,0,11,0,209,255,141,255,144,255,172,255,158,255,138,255,102,255,109,255,234,255,78,0, +66,0,15,0,241,255,25,0,76,0,90,0,176,0,16,1,254,0,213,0,187,0,160,0,136,0,57,0,221,255,145,255, +66,255,81,255,137,255,130,255,178,255,247,255,213,255,183,255,220,255,242,255,180,255,63,255,2,255,226,254,182,254,224,254, +44,255,41,255,31,255,70,255,107,255,94,255,33,255,253,254,73,255,2,0,136,0,107,0,58,0,77,0,84,0,102,0, +159,0,199,0,243,0,24,1,8,1,222,0,166,0,105,0,67,0,33,0,252,255,213,255,170,255,147,255,145,255,136,255, +118,255,105,255,95,255,100,255,161,255,243,255,242,255,181,255,134,255,87,255,96,255,180,255,194,255,185,255,24,0,44,0, +143,255,23,255,41,255,109,255,199,255,23,0,37,0,2,0,220,255,190,255,210,255,66,0,187,0,218,0,210,0,245,0, +52,1,103,1,139,1,168,1,154,1,61,1,181,0,24,0,149,255,168,255,38,0,70,0,207,255,61,255,19,255,34,255, +251,254,186,254,135,254,133,254,205,254,185,254,36,254,218,253,236,253,47,254,185,254,29,255,78,255,142,255,165,255,175,255, +210,255,210,255,214,255,215,255,165,255,143,255,179,255,238,255,70,0,151,0,230,0,86,1,150,1,139,1,154,1,205,1, +231,1,230,1,192,1,100,1,241,0,114,0,225,255,136,255,170,255,32,0,137,0,175,0,167,0,114,0,23,0,247,255, +52,0,137,0,216,0,31,1,71,1,53,1,245,0,219,0,12,1,63,1,83,1,67,1,211,0,254,255,70,255,31,255, +117,255,206,255,185,255,90,255,64,255,95,255,89,255,94,255,141,255,194,255,0,0,29,0,3,0,179,255,45,255,237,254, +28,255,32,255,240,254,186,254,94,254,68,254,207,254,164,255,90,0,208,0,243,0,117,0,130,255,58,255,211,255,17,0, +171,255,180,255,152,0,121,1,147,1,62,1,22,1,38,1,75,1,101,1,89,1,7,1,104,0,254,255,243,255,107,255, +102,254,5,254,55,254,56,254,31,254,13,254,253,253,73,254,193,254,219,254,175,254,158,254,242,254,175,255,69,0,76,0, +53,0,128,0,232,0,209,0,67,0,161,255,240,254,67,254,219,253,188,253,203,253,208,253,201,253,33,254,224,254,174,255, +121,0,39,1,150,1,239,1,82,2,186,2,240,2,187,2,63,2,211,1,112,1,202,0,19,0,194,255,176,255,198,255, +11,0,218,255,31,255,199,254,214,254,124,254,214,253,161,253,228,253,48,254,134,254,204,254,210,254,14,255,118,255,101,255, +39,255,85,255,213,255,107,0,233,0,104,1,214,1,120,1,118,0,2,0,96,0,232,0,56,1,106,1,154,1,140,1, +35,1,152,0,2,0,66,255,108,254,15,254,142,254,75,255,156,255,107,255,244,254,25,255,66,0,78,1,128,1,83,1, +69,1,110,1,68,1,99,0,134,255,58,255,52,255,47,255,33,255,27,255,11,255,196,254,204,254,89,255,193,255,245,255, +255,255,140,255,85,255,237,255,144,0,177,0,125,0,115,0,248,0,156,1,226,1,217,1,165,1,108,1,25,1,184,0, +192,0,244,0,224,0,231,0,41,1,127,1,243,1,89,2,161,2,200,2,180,2,158,2,125,2,26,2,231,1,71,2, +230,2,16,3,115,2,212,1,236,1,61,2,92,2,125,2,83,2,117,1,101,0,161,255,9,255,162,254,32,254,242,252, +193,251,88,251,31,251,186,250,191,250,97,251,245,251,237,251,171,251,146,251,129,251,198,251,48,252,216,251,53,251,15,251, +10,251,53,251,250,251,238,252,140,253,227,253,107,254,148,255,28,1,35,2,21,2,106,1,252,0,249,0,65,1,202,1, +106,2,9,3,84,3,216,2,0,2,146,1,147,1,187,1,5,2,165,2,236,3,160,5,227,6,8,7,28,6,32,5, +229,4,162,4,171,3,239,2,208,2,99,2,115,1,112,0,149,255,35,255,14,255,5,255,24,255,95,255,153,255,160,255, +107,255,13,255,0,255,133,255,36,0,164,0,28,1,64,1,33,1,65,1,151,1,254,1,64,2,238,1,74,1,232,0, +15,1,193,1,73,2,66,2,69,2,103,2,62,2,220,1,92,1,237,0,196,0,156,0,51,0,171,255,70,255,2,255, +115,254,127,253,189,252,156,252,17,253,241,253,198,254,233,254,52,254,43,253,109,252,74,252,141,252,195,252,208,252,198,252, +207,252,48,253,107,253,238,252,93,252,35,252,250,251,22,252,71,252,42,252,76,252,212,252,36,253,68,253,135,253,243,253, +137,254,20,255,56,255,16,255,37,255,148,255,223,255,254,255,66,0,118,0,130,0,136,0,101,0,114,0,2,1,133,1, +194,1,239,1,194,1,70,1,14,1,61,1,151,1,234,1,83,2,218,2,240,2,163,2,212,2,94,3,130,3,74,3, +202,2,230,1,25,1,190,0,99,0,233,255,207,255,78,0,27,1,159,1,130,1,74,1,85,1,53,1,192,0,32,0, +137,255,128,255,103,0,84,2,197,4,158,6,27,8,248,9,56,11,70,11,194,10,245,8,36,5,22,1,16,255,239,254, +58,255,39,255,96,254,12,253,49,252,58,252,169,252,243,252,220,252,61,253,156,254,40,0,205,1,178,3,245,4,135,5, +201,5,121,5,177,4,165,3,58,2,84,0,240,253,167,251,210,249,32,248,238,246,179,246,43,247,6,248,213,248,107,249, +26,250,214,250,140,251,56,252,109,252,58,252,81,252,203,252,42,253,147,253,165,254,2,0,138,0,231,255,212,254,84,254, +85,254,208,253,18,253,25,253,90,253,20,253,190,252,247,252,187,253,171,254,147,255,102,0,216,0,234,0,23,1,99,1, +148,1,237,1,147,2,6,3,20,3,7,3,156,2,142,1,174,0,153,0,181,0,99,0,186,255,4,255,16,254,179,252, +186,251,159,251,156,251,81,251,4,251,184,250,164,250,244,250,72,251,104,251,79,251,19,251,11,251,52,251,123,251,1,252, +99,252,50,252,170,251,54,251,15,251,69,251,198,251,80,252,133,252,157,252,244,252,45,253,59,253,88,253,38,253,195,252, +200,252,23,253,111,253,171,253,127,253,37,253,16,253,22,253,230,252,157,252,141,252,182,252,237,252,145,253,12,255,222,0, +54,2,32,3,221,3,27,4,202,3,117,3,112,3,227,3,188,4,108,5,135,5,253,4,1,4,61,3,64,3,231,3, +178,4,33,5,239,4,54,4,159,3,215,3,126,4,220,4,17,5,40,5,117,4,230,2,182,1,178,1,6,2,213,1, +64,1,221,0,13,1,26,1,82,0,186,255,255,255,80,0,73,0,22,0,224,255,235,255,14,0,248,255,161,255,25,255, +203,254,222,254,0,255,121,255,126,0,94,1,192,1,217,1,165,1,76,1,27,1,12,1,106,1,135,2,195,3,100,4, +93,4,202,3,252,2,128,2,129,2,187,2,236,2,14,3,41,3,49,3,114,3,45,4,19,5,190,5,221,5,78,5, +220,4,121,5,128,6,197,6,210,6,141,7,206,7,115,6,197,4,78,4,171,4,222,4,220,4,51,5,163,5,233,4, +161,2,153,0,58,0,61,0,124,255,247,254,100,255,9,0,193,255,253,253,216,251,16,251,204,251,197,252,230,252,197,252, +168,253,1,255,121,255,49,255,29,255,226,255,234,0,2,1,139,0,185,0,107,1,188,1,123,1,109,1,207,1,211,1, +170,1,83,2,150,3,182,4,118,5,221,5,225,5,98,5,187,4,102,4,71,4,49,4,224,3,61,3,7,3,147,3, +52,4,63,4,126,3,112,2,209,1,189,1,243,1,17,2,235,1,188,1,76,1,97,0,97,255,112,254,107,253,0,252, +68,250,114,251,73,4,105,18,110,26,188,21,93,12,225,8,2,11,120,13,228,14,85,16,57,17,163,14,41,7,62,255, +91,253,11,2,14,8,33,11,191,10,113,7,167,1,192,250,15,244,252,237,224,232,39,229,194,226,229,224,84,222,5,219, +120,216,119,215,171,215,22,217,220,219,26,224,10,230,231,235,91,238,78,237,93,236,231,237,45,241,173,244,201,247,95,250, +23,252,174,252,167,252,73,253,110,255,158,2,246,5,234,8,22,11,206,12,195,14,132,16,64,17,149,17,195,18,121,20, +244,20,181,19,248,17,99,16,209,14,135,13,191,12,36,12,2,11,21,9,148,7,249,6,82,5,35,2,183,255,238,254, +160,254,61,254,139,253,16,252,28,250,147,248,195,247,107,247,52,247,212,246,157,246,66,247,148,248,38,250,1,252,132,253, +48,254,8,255,168,0,39,2,153,2,29,2,230,1,187,2,136,3,253,2,106,1,198,255,112,254,154,253,169,253,84,254, +232,254,71,255,36,255,190,253,82,251,68,249,62,249,107,251,90,253,31,253,140,251,89,250,235,250,61,253,42,255,35,255, +82,254,201,254,99,0,4,1,96,0,199,255,43,255,126,254,87,254,119,254,96,254,146,253,28,252,16,251,91,250,143,249, +114,249,164,249,17,249,198,247,241,245,138,244,252,244,214,246,33,249,135,251,184,253,254,255,8,2,115,2,246,1,136,2, +205,3,204,4,205,5,46,6,175,4,35,2,205,0,56,1,129,1,76,0,159,254,212,253,225,253,222,253,50,253,29,252, +236,250,67,250,51,251,54,253,86,255,246,1,12,4,54,4,131,4,170,6,23,8,100,6,208,3,105,3,173,3,7,2, +229,255,70,255,150,255,13,0,89,0,4,0,164,255,130,0,228,1,184,1,40,1,42,3,254,6,21,10,38,11,126,9, +8,7,182,6,89,7,168,6,193,4,12,2,186,255,249,254,85,254,250,252,27,252,38,252,93,253,95,255,55,0,222,255, +234,255,36,0,182,255,142,254,122,253,154,253,73,254,107,254,144,254,71,255,84,0,88,1,37,2,12,3,48,3,235,0, +181,253,49,253,252,255,45,3,168,4,187,4,141,4,172,5,44,8,252,8,116,6,56,3,247,1,120,2,255,2,202,2, +186,2,92,3,189,3,218,2,109,1,143,0,210,255,102,255,55,0,102,1,160,1,207,0,134,0,63,2,11,4,224,4, +141,6,242,7,200,7,212,6,5,4,255,255,7,253,210,251,142,253,139,0,247,1,31,3,86,3,223,1,89,2,112,4, +190,5,118,6,63,4,30,255,123,252,168,253,27,0,128,3,18,7,230,7,230,5,37,4,174,3,182,3,76,3,90,1, +38,0,223,1,27,3,77,2,189,1,54,0,247,252,174,251,138,253,206,254,205,252,253,248,14,246,96,245,107,246,8,247, +127,246,111,246,171,247,159,249,90,251,190,252,216,254,216,0,200,0,91,255,95,254,105,254,152,255,234,1,47,4,186,3, +175,255,8,251,196,248,4,249,207,249,220,248,128,245,48,241,167,238,57,239,137,241,187,244,80,248,144,250,33,252,220,254, +155,1,31,3,251,3,27,4,229,2,50,1,223,0,48,2,64,3,17,3,38,3,86,4,228,3,221,255,206,251,49,251, +193,252,129,254,141,255,65,255,43,254,30,253,22,252,56,251,13,251,144,251,49,252,208,252,110,252,49,249,12,245,152,244, +181,247,52,250,122,250,81,250,237,250,228,251,95,253,140,255,46,1,83,1,53,0,101,254,223,252,133,252,104,253,110,254, +13,254,57,252,10,250,193,248,154,249,126,251,5,252,142,251,193,251,215,252,54,254,84,254,19,253,66,254,116,3,147,7, +18,7,56,5,190,4,226,3,224,1,16,0,140,254,144,253,19,255,232,2,154,5,242,5,205,5,169,4,23,1,85,253, +163,251,241,251,6,255,145,4,144,8,191,7,118,3,187,255,28,255,0,1,161,3,225,5,251,6,127,6,178,4,27,2, +158,255,233,254,140,0,240,2,190,4,46,5,50,3,37,255,115,251,204,251,107,0,129,2,244,254,72,252,41,254,180,1, +158,3,184,1,247,254,167,0,70,5,104,8,43,8,225,4,142,2,178,3,177,4,217,2,208,0,210,1,191,4,146,6, +88,7,237,7,147,7,250,5,133,3,41,2,180,3,25,6,26,7,133,7,6,8,96,7,38,4,117,255,95,252,237,252, +202,0,174,4,252,5,12,6,23,6,116,6,211,7,113,8,119,7,82,7,188,8,135,10,157,11,173,11,55,12,29,13, +112,11,91,6,142,0,174,252,159,250,186,249,185,250,138,252,221,252,155,251,107,249,121,247,63,248,136,252,80,2,179,6, +192,8,154,10,178,13,143,16,160,17,59,16,133,12,127,8,228,5,5,4,196,1,22,255,139,253,238,254,124,0,185,253, +8,249,12,248,85,251,147,255,198,1,250,1,152,2,3,4,139,4,108,3,194,1,35,1,178,0,13,255,208,253,239,253, +19,254,179,254,193,0,247,1,11,0,123,253,126,254,102,2,51,5,66,6,95,7,114,7,177,5,16,5,130,5,56,4, +85,3,53,4,169,3,127,2,191,3,53,6,133,6,43,2,62,251,103,247,53,248,101,251,218,254,230,0,83,2,214,3, +127,1,172,249,235,242,54,242,15,244,134,244,109,243,122,241,80,241,57,245,226,250,50,254,53,253,199,250,103,251,69,253, +47,253,187,252,151,251,56,249,230,249,16,254,250,0,111,1,215,255,145,251,62,247,119,245,197,244,130,244,87,245,102,247, +224,251,209,0,202,1,15,255,89,251,108,250,243,255,253,6,93,8,231,5,181,2,5,254,33,248,127,242,100,238,174,236, +138,237,0,240,216,241,71,243,171,246,179,250,203,252,137,255,195,5,13,11,205,10,59,8,181,6,18,6,213,7,104,11, +247,13,141,15,57,14,235,7,82,2,94,2,94,4,174,3,231,255,111,251,172,249,191,250,118,251,83,251,99,251,144,251, +196,253,43,2,214,4,77,5,136,5,50,5,66,4,44,3,71,3,64,6,75,9,147,8,52,5,246,2,94,3,104,3, +233,0,103,255,239,1,245,5,99,6,74,2,197,254,215,254,17,1,250,4,78,8,102,6,76,1,52,1,143,6,143,8, +74,5,230,1,191,254,195,252,183,253,55,253,13,251,81,251,93,251,18,250,167,251,152,255,210,1,71,1,114,0,50,2, +154,6,34,11,77,12,71,8,187,0,87,249,118,245,186,244,224,243,96,242,201,241,213,242,22,245,104,246,254,245,33,245, +105,244,132,245,149,249,184,253,122,255,93,0,141,2,110,4,79,2,101,252,217,245,197,241,53,243,22,249,219,254,157,2, +174,4,201,6,237,10,242,14,163,15,13,13,98,8,131,3,118,0,141,255,141,255,253,253,68,250,120,247,216,246,159,246, +159,246,141,247,141,249,172,252,148,255,33,1,140,2,42,5,179,8,68,11,119,11,187,10,132,10,67,10,188,8,71,4, +158,253,208,247,94,243,36,240,212,238,0,238,175,237,187,239,100,242,158,243,142,244,88,246,72,249,62,252,177,252,239,250, +20,250,103,251,193,253,151,255,165,0,119,1,159,0,147,252,111,247,40,243,89,239,115,237,185,238,80,240,141,239,206,237, +211,237,106,240,65,244,44,247,254,247,45,248,165,248,238,247,247,246,231,247,195,249,173,251,72,253,248,252,222,250,19,248, +97,245,25,244,228,243,169,243,33,244,245,245,40,248,40,249,194,248,184,247,107,246,104,246,67,248,162,249,209,249,89,249, +172,247,43,246,46,246,211,246,253,247,212,248,152,247,29,246,127,246,121,246,141,245,221,246,69,249,7,250,222,250,110,252, +201,253,51,0,174,2,86,3,101,3,7,3,108,1,26,0,119,0,104,1,225,0,146,254,98,251,225,247,116,245,63,245, +54,246,167,246,70,246,35,247,40,250,79,252,26,252,140,251,1,252,217,253,105,0,233,1,10,2,104,2,21,5,50,10, +35,14,242,13,189,11,158,10,16,10,245,8,36,7,249,3,47,1,186,0,121,0,200,255,253,255,211,255,217,255,6,2, +13,5,12,8,171,11,117,15,235,17,159,17,194,15,21,15,115,16,157,19,93,23,231,24,116,22,224,17,151,14,54,12, +253,8,110,6,51,5,67,5,129,7,71,9,73,8,111,6,104,5,132,6,196,9,155,12,248,13,214,13,212,12,106,13, +178,15,85,17,83,17,13,16,44,14,157,11,74,9,140,9,128,11,217,12,185,13,239,12,167,8,116,3,141,1,150,3, +228,6,20,9,243,9,51,10,108,10,135,11,33,14,44,17,127,18,2,18,52,18,255,18,211,16,249,11,4,9,104,9, +159,11,169,14,58,17,104,18,182,17,25,15,27,13,24,13,115,13,218,13,97,13,222,10,135,9,69,10,141,9,48,9, +15,12,213,13,27,13,191,14,123,17,150,16,108,14,37,14,241,13,180,12,144,11,147,11,253,12,115,14,51,14,127,12, +40,11,26,10,212,7,85,5,172,3,108,2,166,2,88,3,31,2,99,1,47,3,142,5,233,6,132,6,98,5,30,5, +79,4,95,2,81,1,2,2,62,3,90,2,245,254,200,252,160,253,120,255,111,0,116,0,216,0,8,2,87,2,169,0, +217,253,107,251,138,250,59,251,28,252,139,252,96,253,9,254,77,253,255,251,33,251,23,251,213,251,156,252,16,254,42,0, +122,0,133,255,161,255,227,255,184,254,99,252,140,250,174,250,92,251,97,250,142,248,243,247,37,248,143,246,29,243,206,240, +241,240,97,242,173,243,69,244,91,245,92,247,145,248,235,248,214,249,124,250,154,249,12,248,191,246,48,246,199,246,70,247, +183,246,35,246,248,245,24,246,161,246,255,246,82,247,240,247,10,248,24,248,21,249,129,249,203,247,159,245,40,245,118,245, +144,245,40,246,127,246,7,246,71,245,158,243,38,242,160,242,228,243,208,245,208,248,101,250,138,249,190,248,202,249,140,251, +100,252,117,252,225,251,68,250,14,248,143,245,98,243,165,242,142,243,158,245,68,247,88,247,40,247,136,247,245,247,123,248, +131,249,104,251,4,253,11,253,222,252,147,253,37,255,84,1,66,1,94,253,43,249,239,247,106,249,127,251,179,252,213,252, +129,251,164,249,26,249,148,249,246,250,25,253,30,254,20,255,165,1,69,3,127,3,236,4,124,6,206,5,191,2,245,253, +174,249,125,248,216,249,184,251,206,252,253,251,174,249,193,248,76,251,73,255,227,0,131,255,226,253,47,254,13,0,42,1, +174,255,70,252,218,249,228,250,19,254,177,255,87,255,175,255,181,0,218,255,97,253,175,251,195,250,200,249,124,249,174,250, +229,253,170,1,141,2,86,0,124,253,184,251,60,252,198,253,100,254,70,255,160,0,41,0,237,253,201,252,197,254,26,3, +8,8,123,11,202,10,2,7,16,4,169,2,246,1,228,1,166,1,130,0,156,254,252,252,203,252,67,254,88,1,133,4, +87,5,62,4,122,3,62,4,254,5,82,7,44,8,174,8,22,8,129,6,101,4,6,2,12,255,170,251,201,250,185,252, +178,253,45,253,217,252,171,252,147,252,194,252,143,253,111,254,122,254,244,254,96,0,175,1,236,2,174,3,152,3,45,3, +117,2,164,1,210,0,58,0,156,255,230,253,251,252,164,253,183,252,226,250,132,250,173,251,31,255,69,2,37,2,170,1, +154,2,161,3,225,3,107,2,140,255,246,251,92,249,173,250,85,253,29,253,50,252,176,252,241,252,44,252,147,250,1,249, +225,249,242,253,38,2,60,4,254,4,25,5,118,5,171,6,248,6,23,6,22,5,90,3,213,0,185,253,207,249,60,246, +71,244,92,244,73,245,145,245,201,246,45,250,120,254,43,3,45,7,246,8,73,9,50,9,52,9,40,10,173,11,153,11, +91,8,69,3,14,255,207,253,168,255,139,1,191,0,226,253,185,250,254,247,207,244,14,243,83,247,133,255,149,5,246,7, +63,7,149,5,243,4,49,4,222,3,58,5,254,6,135,7,128,4,28,255,191,251,63,249,33,246,142,245,158,247,17,250, +109,252,236,253,207,253,29,253,121,253,152,254,179,255,153,1,157,3,245,3,35,3,221,2,141,3,30,3,232,0,53,255, +156,253,16,252,181,252,68,253,157,252,154,253,97,255,228,0,38,3,167,5,61,8,78,9,234,6,9,4,49,3,212,2, +255,1,190,1,165,2,116,3,64,3,153,1,49,253,59,248,133,246,211,246,142,247,220,249,2,253,83,255,98,0,117,0, +181,0,123,1,6,2,157,2,1,3,13,2,173,0,40,0,41,0,24,1,82,2,117,1,165,255,157,255,176,0,118,1, +93,2,41,4,91,5,173,3,221,0,215,255,150,0,178,1,31,1,80,255,8,255,153,255,127,255,172,254,8,253,220,252, +204,254,142,255,106,254,249,252,222,252,227,254,62,1,70,3,87,5,100,6,117,6,60,6,76,7,25,10,227,10,69,9, +185,7,178,4,109,0,16,253,175,250,71,250,165,250,175,248,56,245,94,243,129,245,159,250,127,255,115,3,109,6,126,7, +194,5,176,1,114,255,117,0,150,1,1,2,23,1,188,255,70,1,104,3,110,3,150,2,16,1,95,1,174,4,101,6, +174,4,199,1,174,0,43,2,248,2,227,2,233,3,177,4,26,4,96,1,13,254,63,253,198,252,24,252,160,253,101,255, +9,1,5,3,101,4,29,8,41,13,184,14,147,13,48,11,206,8,98,7,84,4,201,0,41,255,244,253,125,254,0,1, +36,2,90,2,81,2,194,0,117,254,39,252,225,250,228,252,6,1,168,3,193,4,136,6,95,8,247,8,97,8,209,6, +75,6,104,7,119,7,147,6,65,5,183,2,26,1,76,255,139,250,0,247,6,247,251,247,141,249,133,250,63,249,193,247, +144,247,38,249,146,252,41,255,92,0,238,3,40,10,94,14,147,14,125,13,179,13,143,14,3,13,183,7,5,1,185,251, +24,249,210,248,190,249,176,251,82,253,128,252,35,251,81,251,120,251,1,251,180,251,51,0,98,8,247,13,41,13,188,10, +110,10,219,10,75,11,182,11,102,10,252,6,227,2,172,253,252,247,204,244,227,242,139,240,201,240,33,243,3,244,94,244, +230,245,99,249,25,255,115,3,240,4,90,7,84,10,92,9,166,4,24,0,188,253,93,252,248,248,73,244,245,243,179,248, +133,252,31,252,71,248,74,244,71,244,47,246,199,246,169,249,198,0,188,7,196,8,10,3,227,254,10,1,135,2,78,255, +169,250,131,249,76,254,200,1,174,254,27,252,45,253,9,254,92,253,20,251,34,251,134,0,184,6,72,12,126,17,233,16, +246,8,78,255,98,250,45,252,147,255,85,255,29,252,142,249,202,249,134,251,151,253,26,0,167,2,217,5,7,9,85,11, +169,13,119,12,1,7,105,4,146,5,62,7,237,8,33,8,41,6,178,6,7,8,240,8,68,8,214,4,56,2,102,1, +249,0,115,2,159,4,41,5,223,5,105,9,205,14,120,17,244,15,45,13,94,10,2,8,227,6,239,5,247,2,217,253, +145,251,147,255,232,5,120,9,244,7,148,5,2,9,193,13,205,13,212,11,154,8,83,4,0,0,65,251,89,251,194,0, +226,3,0,5,111,5,25,3,82,1,130,0,24,253,78,249,155,249,205,253,234,0,0,1,113,0,84,254,213,251,154,253, +105,1,236,1,168,253,216,246,222,242,41,245,143,251,51,255,170,251,19,247,138,247,145,249,126,249,250,247,114,247,129,249, +8,252,155,252,128,250,1,247,15,246,121,247,16,247,91,244,202,241,147,241,173,243,17,246,14,247,7,245,173,241,152,240, +7,241,168,242,190,246,6,251,135,252,206,249,61,245,92,243,17,243,20,242,113,241,177,241,157,243,147,245,157,244,35,243, +239,243,90,246,228,247,183,245,181,241,47,239,200,238,27,241,217,243,118,244,210,243,160,241,163,239,143,240,19,242,58,242, +161,240,196,237,112,236,175,236,36,238,102,242,144,247,229,250,122,251,124,250,243,250,144,251,77,250,91,249,21,249,118,249, +14,251,147,251,133,250,0,249,37,247,189,245,54,244,76,242,8,242,26,244,100,247,160,249,55,249,128,247,84,246,190,246, +240,247,71,248,117,249,42,252,216,252,211,249,255,245,154,245,53,248,77,249,150,248,254,248,166,251,21,255,244,255,213,254, +70,254,120,253,250,253,4,1,62,3,6,4,249,2,94,255,172,253,92,255,74,1,115,2,116,1,179,254,201,253,220,254, +16,0,107,2,249,7,17,15,15,19,90,19,14,18,245,14,38,11,126,8,117,6,156,4,115,2,232,255,138,254,147,254, +76,0,106,4,8,8,185,8,36,8,39,7,105,5,219,3,150,3,158,5,222,8,189,9,106,8,86,8,207,9,229,11, +14,13,200,10,161,7,150,7,236,8,101,9,207,8,25,8,118,9,54,11,210,10,9,11,171,12,99,13,32,13,66,11, +179,7,249,4,95,4,91,6,246,9,15,12,134,12,248,12,148,12,251,10,126,9,227,9,185,12,145,14,205,11,180,6, +56,4,129,5,106,8,141,11,81,14,160,15,50,15,2,13,71,9,53,6,46,5,192,5,149,7,177,8,79,8,227,8, +37,10,54,11,93,13,174,14,129,13,230,10,172,6,144,3,58,5,44,9,189,12,178,15,53,16,64,13,65,8,76,5, +100,8,117,14,236,16,247,13,90,7,141,0,212,253,178,0,77,7,168,14,152,19,130,19,217,14,93,9,210,5,191,4, +36,6,148,8,19,9,225,5,39,1,147,254,23,254,9,254,251,254,200,0,91,2,22,4,133,5,204,4,227,2,0,4, +51,8,99,10,49,10,135,11,90,13,222,11,122,6,46,255,77,248,125,244,66,246,215,250,217,252,29,253,165,252,88,250, +118,252,193,6,139,15,47,14,127,6,23,1,250,0,204,4,17,12,51,18,132,16,75,9,118,2,24,254,102,253,207,254, +79,254,159,250,56,245,113,241,249,240,8,241,235,239,109,239,148,240,84,242,197,243,183,245,59,249,99,254,199,3,84,5, +64,2,100,0,61,1,238,0,158,1,207,6,100,12,4,12,238,3,93,249,173,243,2,242,40,239,119,235,158,233,149,235, +133,241,157,246,102,248,98,250,52,252,155,250,11,248,96,249,154,254,192,3,161,6,39,7,157,5,68,4,222,3,87,2, +82,0,25,254,198,249,198,244,26,241,18,239,147,238,188,237,234,237,22,243,2,251,222,0,211,2,68,1,10,0,172,1, +10,3,5,2,145,0,211,255,138,253,33,248,78,243,184,242,127,243,189,242,207,242,141,244,45,245,103,244,8,244,188,244, +134,246,154,247,59,247,144,248,151,252,254,0,93,3,22,1,30,252,20,249,75,247,143,245,58,244,76,241,124,237,165,235, +6,236,74,239,47,245,126,250,127,253,96,255,235,1,188,4,202,5,154,5,190,5,18,6,123,6,148,6,149,5,189,2, +76,252,201,243,14,240,74,243,195,246,255,245,73,244,94,244,128,244,130,244,252,247,153,255,9,6,27,7,30,4,43,0, +158,253,130,253,163,255,119,3,36,6,104,4,186,255,22,251,18,247,73,244,37,244,209,246,253,249,91,251,213,251,205,252, +40,253,173,251,171,249,146,249,241,250,36,252,78,254,170,1,143,3,169,1,79,253,170,252,121,2,53,9,23,12,78,10, +29,5,114,0,156,254,97,255,19,1,83,0,221,253,22,252,122,249,43,247,91,248,152,251,157,253,52,253,39,252,29,252, +238,252,232,255,253,2,245,0,84,252,124,250,0,251,186,252,125,255,57,2,82,3,237,0,37,252,210,248,242,248,106,251, +110,253,53,253,120,251,130,249,107,247,123,245,68,245,92,246,188,247,206,251,225,0,226,1,146,1,0,3,108,3,177,2, +245,0,168,252,150,247,124,244,160,244,185,246,177,248,113,252,96,1,68,3,7,4,4,6,199,5,29,2,129,254,120,253, +118,252,218,248,8,247,65,249,220,249,39,248,181,249,89,254,26,1,29,1,75,1,25,2,133,2,38,4,143,7,207,9, +216,7,23,1,177,249,252,247,83,253,46,5,31,9,21,6,224,255,170,251,245,250,151,252,146,252,20,249,238,245,75,245, +13,247,28,251,181,254,122,2,39,8,43,9,242,3,156,0,189,0,60,2,67,5,124,7,116,9,128,12,191,12,2,10, +121,7,34,6,215,7,227,10,40,10,37,6,48,2,50,0,202,1,183,5,80,8,128,7,169,3,4,255,45,253,91,1, +42,9,108,13,77,12,191,9,27,7,187,4,211,4,6,6,80,4,237,0,36,0,198,1,134,3,69,5,56,7,47,9, +210,9,183,6,168,1,248,255,154,2,31,6,204,8,77,10,54,9,134,6,139,5,18,6,184,6,94,8,15,10,58,10, +219,9,230,8,41,6,9,3,108,2,251,3,38,5,29,8,54,14,158,15,244,8,56,3,225,4,15,12,8,20,92,22, +58,16,215,7,73,5,156,8,198,12,210,15,251,16,162,14,13,11,98,10,253,12,144,14,81,10,183,2,39,253,188,248, +51,246,47,250,79,2,93,9,18,13,151,10,51,4,51,2,70,6,18,10,41,10,68,9,194,8,102,6,51,4,50,7, +119,13,47,16,51,13,149,8,26,6,3,6,184,8,3,12,172,9,94,3,182,0,66,1,28,2,191,5,224,12,20,19, +161,20,233,20,28,25,234,29,231,30,33,29,102,24,116,18,121,15,54,13,33,9,103,6,34,6,221,4,105,0,55,252, +91,252,171,254,97,0,93,1,153,0,217,255,13,2,121,5,23,8,26,10,166,11,40,12,87,10,154,7,171,6,94,6, +12,5,43,2,219,252,61,247,19,243,33,239,246,236,44,238,172,240,60,243,50,244,201,241,31,240,92,243,39,249,205,254, +214,2,26,3,200,1,28,2,210,1,20,0,201,255,122,255,104,251,150,244,91,239,3,238,232,238,162,240,157,243,163,245, +141,243,102,238,133,234,64,236,210,243,139,251,116,253,141,250,118,249,221,252,83,1,5,4,153,3,222,0,126,255,129,254, +114,251,16,250,11,251,118,249,207,243,6,236,138,230,163,230,76,232,161,231,211,230,37,232,105,234,235,235,192,239,115,247, +150,250,126,246,131,244,82,246,47,247,86,248,208,250,246,252,56,253,190,249,177,243,110,237,77,232,8,232,195,237,129,243, +180,243,88,239,53,235,65,234,27,236,24,239,222,241,241,244,156,248,222,250,30,252,223,254,16,2,10,3,110,1,216,253, +132,248,69,243,35,241,161,240,85,239,224,240,213,244,27,244,174,239,103,238,76,241,182,245,217,248,232,247,138,243,28,242, +156,247,34,253,238,253,128,0,254,4,40,4,183,255,30,253,8,253,166,253,157,252,233,251,62,254,103,255,176,252,255,249, +86,250,52,252,166,251,24,249,255,249,194,253,202,254,125,254,64,2,18,8,143,8,167,3,48,2,3,8,103,14,44,14, +141,8,106,4,115,4,211,4,37,3,43,2,152,4,135,7,201,5,137,0,233,252,130,251,139,251,202,255,13,9,72,17, +245,16,83,8,50,0,197,0,200,8,244,14,147,13,153,7,191,1,192,255,140,3,67,8,143,7,85,3,222,0,179,0, +57,2,38,7,193,12,240,12,191,9,248,8,11,10,184,11,60,14,191,15,162,14,6,10,243,4,185,4,169,6,151,7, +43,10,131,11,72,8,87,2,163,249,101,244,132,250,56,4,149,9,52,14,50,18,215,18,126,17,61,16,218,17,134,22, +21,26,60,26,113,22,218,15,147,11,179,10,128,8,135,5,240,5,204,6,88,2,25,250,240,244,188,245,39,248,44,249, +24,251,95,252,177,250,14,252,140,2,20,8,177,12,144,18,117,21,51,19,84,15,253,13,91,15,127,15,42,13,37,10, +220,5,10,255,115,246,150,239,84,238,72,241,180,243,173,243,50,244,140,249,16,1,222,4,163,5,230,5,175,6,95,8, +41,9,204,11,67,19,244,23,189,20,235,13,130,7,85,5,69,7,58,7,9,4,39,0,231,252,173,252,20,255,141,1, +75,2,40,0,44,254,190,253,106,251,77,249,50,251,167,255,2,6,211,11,93,12,220,8,140,5,79,4,239,4,53,5, +107,3,190,254,155,248,85,246,222,247,58,247,251,246,107,253,230,4,8,5,18,1,158,254,85,252,16,250,140,250,238,252, +116,255,250,0,109,254,95,248,248,244,62,247,229,251,120,255,166,0,94,253,12,246,125,240,186,240,99,246,15,255,244,4, +24,5,14,4,34,5,63,6,162,3,138,252,230,246,138,245,212,242,252,239,12,245,156,254,178,1,60,253,175,248,183,247, +134,248,70,249,74,249,221,248,240,248,79,249,121,249,150,248,181,245,180,243,221,245,220,249,24,252,18,252,118,251,70,252, +55,253,45,251,74,247,96,245,42,246,130,247,24,248,243,247,209,247,218,248,144,250,220,252,68,1,220,4,211,3,216,255, +16,250,91,244,95,243,36,246,105,250,106,255,169,255,84,251,122,249,167,249,48,249,39,249,120,249,199,250,86,252,108,251, +56,249,82,247,141,245,193,244,102,246,135,252,25,4,95,5,172,0,51,252,93,250,20,251,25,253,183,255,7,2,195,0, +189,252,115,249,122,247,57,249,246,254,200,2,32,1,14,251,52,245,16,244,203,245,211,249,76,1,135,5,139,2,11,254, +149,252,94,254,254,255,89,254,192,253,125,1,13,5,114,5,141,4,142,4,147,5,238,4,23,1,202,252,221,250,137,250, +179,249,246,248,23,250,115,251,76,250,68,248,119,248,36,250,229,251,254,254,191,3,11,9,121,13,65,14,236,11,156,10, +161,9,98,6,176,2,228,255,246,253,51,254,39,0,104,1,230,0,63,255,58,253,34,251,208,250,44,254,222,1,15,1, +109,253,70,252,51,255,67,4,201,8,29,10,219,8,185,8,38,9,32,7,203,5,52,9,129,13,98,11,40,3,126,254, +136,1,52,4,194,2,226,2,202,5,65,6,244,1,95,253,247,253,252,1,47,4,225,3,75,4,191,7,68,11,41,11, +232,9,169,8,134,4,230,255,209,255,107,3,125,5,37,4,109,3,220,3,251,1,247,0,246,3,52,8,159,12,182,14, +129,11,198,7,118,6,241,3,248,255,226,253,50,0,72,6,249,10,121,10,70,6,246,1,6,0,109,255,174,254,24,255, +126,255,182,252,254,248,207,248,4,252,89,0,11,4,103,4,57,1,170,254,67,254,87,254,107,255,218,0,77,0,206,254, +136,253,78,252,31,252,100,252,181,252,19,254,44,254,244,251,150,250,233,249,185,247,194,245,91,246,104,247,2,246,220,245, +182,248,164,245,243,237,103,242,149,2,157,13,218,17,205,20,15,17,35,7,219,0,56,252,46,242,31,232,221,229,244,235, +198,245,130,252,209,0,230,6,237,9,216,6,202,1,127,252,198,248,107,246,211,241,251,238,254,242,196,251,139,6,123,13, +218,10,144,3,235,253,173,249,46,248,150,252,91,3,8,4,150,252,46,244,117,241,149,243,1,246,226,247,87,250,16,251, +223,248,24,246,39,244,227,243,4,246,64,250,177,254,110,255,56,252,128,248,208,245,118,246,156,250,152,253,0,254,143,251, +196,246,46,247,228,254,1,5,148,5,221,3,180,2,188,3,155,5,178,5,4,4,53,1,70,254,179,253,82,254,120,251, +36,246,172,243,120,245,226,250,70,2,80,7,22,8,250,5,102,3,47,3,211,3,149,2,177,1,0,2,80,2,207,4, +126,9,212,12,235,13,111,13,173,11,78,9,158,6,101,4,23,3,5,1,38,254,241,253,127,2,106,9,134,12,228,7, +191,0,137,254,236,0,75,4,230,5,228,3,27,2,130,4,89,6,214,4,8,6,5,11,192,13,55,14,214,15,30,16, +155,11,37,4,248,254,70,255,76,2,188,3,80,2,75,255,150,254,224,0,36,2,184,2,192,3,40,3,92,2,242,1, +88,1,7,4,194,7,15,7,61,4,116,2,187,3,153,8,171,9,197,4,59,4,80,11,146,15,131,9,222,0,199,1, +127,8,234,8,182,4,112,4,69,6,71,4,58,0,228,254,33,255,214,252,103,248,211,246,50,251,74,0,156,254,52,249, +146,247,142,249,171,253,205,3,202,7,199,8,52,10,26,10,144,6,184,2,112,0,177,0,160,2,90,1,81,252,82,247, +42,243,44,241,69,243,92,247,90,251,111,253,196,250,42,246,245,244,105,246,152,248,139,251,115,253,231,252,101,250,5,248, +159,249,135,254,28,1,95,255,160,251,131,248,239,246,3,246,78,247,247,251,185,255,86,255,132,251,4,246,29,243,178,245, +168,250,91,254,76,0,167,0,219,255,103,255,216,255,15,0,89,0,104,1,15,1,100,253,210,247,180,243,212,243,198,247, +157,252,96,0,57,3,134,4,108,1,198,251,2,250,146,251,191,251,223,250,168,250,185,251,241,252,99,251,124,249,160,251, +251,254,88,255,127,253,84,251,83,249,92,249,224,253,3,3,53,3,207,0,18,255,77,254,208,255,235,255,201,250,208,246, +57,249,124,254,59,2,22,2,64,255,71,253,165,252,74,253,148,255,193,1,18,3,220,3,175,4,121,6,173,6,116,4, +37,4,156,4,149,2,156,1,99,3,223,5,172,8,138,10,13,10,82,6,78,0,77,254,223,1,216,4,101,7,234,11, +5,13,131,7,186,255,174,250,236,250,180,255,238,4,78,6,49,3,178,255,133,255,24,1,175,1,13,2,197,3,176,6, +81,9,44,9,67,6,166,4,246,5,189,6,178,5,16,6,142,7,168,6,186,5,202,6,238,4,241,255,63,252,128,250, +210,252,1,3,76,6,175,5,103,5,186,6,6,9,4,9,121,5,54,3,176,3,24,4,187,4,171,6,255,7,227,6, +166,5,247,6,66,7,85,2,121,252,80,253,200,4,208,10,163,9,252,2,88,251,40,246,195,245,157,249,76,254,253,2, +116,8,125,11,151,10,53,7,192,0,39,252,9,0,136,8,110,16,247,20,99,19,238,14,158,8,200,255,28,253,218,2, +102,7,49,6,190,255,244,246,251,240,34,239,181,241,250,247,12,253,243,255,228,3,130,7,82,8,129,8,243,8,6,7, +120,3,80,1,139,2,243,7,92,12,16,10,248,2,95,251,11,249,135,254,110,4,191,5,20,3,212,252,139,247,22,246, +20,247,141,250,224,253,224,255,195,2,130,4,54,4,105,2,126,254,100,252,255,252,54,252,77,250,89,248,104,247,152,249, +152,252,215,253,118,254,98,254,121,251,53,247,42,248,19,255,204,4,226,6,205,6,227,4,209,2,69,1,206,0,44,3, +227,5,7,4,67,253,227,246,120,244,172,243,10,244,90,246,242,246,22,245,114,243,252,241,212,241,205,245,18,253,76,2, +119,1,152,253,64,251,123,251,29,254,98,1,33,4,243,6,124,8,172,7,145,4,44,255,48,250,160,247,250,246,77,248, +199,249,21,250,232,251,101,254,42,253,251,249,106,250,147,254,41,1,27,254,211,248,147,249,57,0,119,4,87,4,29,3, +110,2,249,2,117,0,176,247,76,240,22,241,106,248,144,2,206,10,179,13,237,9,7,255,26,242,116,233,148,230,1,235, +4,245,68,253,151,0,196,0,216,0,6,5,140,10,91,9,203,3,196,1,195,1,202,255,241,252,138,250,90,250,67,252, +177,250,197,244,100,242,86,248,231,0,207,2,47,254,167,250,162,249,239,248,23,250,253,253,14,4,242,9,35,11,69,7, +72,0,193,248,116,247,107,252,233,255,242,1,114,4,2,4,124,1,111,255,50,254,112,255,186,1,189,2,246,3,104,4, +14,3,136,2,80,2,6,1,42,0,44,255,99,253,51,253,160,255,241,2,3,4,204,255,80,248,94,243,169,242,43,245, +123,250,169,255,195,2,191,4,171,4,244,3,23,5,11,4,51,0,194,0,5,8,112,16,198,18,114,13,198,5,134,253, +74,243,212,235,145,237,206,246,29,254,79,255,17,0,221,0,45,253,10,249,168,249,122,252,168,253,198,252,253,250,21,248, +120,245,132,247,24,254,254,4,105,9,33,10,73,8,185,4,242,254,130,249,132,247,175,249,86,254,55,1,15,1,54,255, +94,251,150,247,240,245,142,245,9,248,253,253,24,4,113,7,117,4,145,251,181,245,185,247,121,253,230,2,54,5,61,4, +169,2,10,254,253,246,255,247,24,1,20,8,114,12,119,13,84,6,168,253,196,249,131,246,183,243,161,244,92,248,174,253, +91,2,53,4,92,5,196,6,211,5,208,2,199,0,243,255,82,254,99,253,167,0,35,5,165,5,118,5,184,7,112,7, +61,2,27,251,186,244,85,242,242,244,20,250,56,255,203,2,212,5,161,8,136,8,195,6,169,5,196,4,215,4,132,4, +239,2,90,3,85,3,12,0,179,254,244,0,221,3,153,6,238,5,212,255,68,250,189,250,211,254,112,2,107,4,172,3, +10,1,14,0,47,1,218,2,120,5,212,9,26,14,93,13,151,7,56,4,147,4,66,3,227,1,121,5,160,10,210,9, +30,3,80,254,92,0,34,5,157,5,4,2,232,253,77,248,112,244,152,248,171,255,224,3,56,9,28,16,67,20,84,20, +228,15,72,9,109,5,224,4,242,3,42,0,140,250,101,247,239,250,11,2,52,5,15,5,202,5,159,4,244,255,59,252, +45,252,234,253,111,254,255,253,153,255,72,4,61,9,80,10,133,8,224,8,235,10,61,10,18,6,65,2,253,0,233,253, +50,248,108,246,43,251,73,5,139,15,183,16,137,10,81,5,207,2,2,3,253,3,225,3,143,4,171,3,106,255,138,252, +154,253,90,1,162,4,227,5,123,8,2,12,209,11,60,8,153,4,63,1,193,252,201,250,65,255,63,3,175,0,140,252, +240,251,43,254,186,254,182,252,30,254,138,2,80,3,53,0,175,252,211,250,119,250,6,251,224,254,33,5,12,9,204,9, +73,9,228,8,232,6,230,0,247,250,161,249,33,252,198,0,131,4,4,5,153,3,88,2,118,3,154,6,25,9,22,10, +134,8,91,4,191,255,159,252,122,254,122,5,85,11,131,12,127,10,40,9,54,11,83,14,216,17,243,20,35,17,95,8, +19,3,200,255,97,252,53,250,161,245,185,240,24,243,86,250,128,1,38,8,181,10,21,8,128,4,109,2,74,5,92,12, +161,14,30,11,168,8,162,8,81,10,186,10,1,6,70,0,153,254,93,3,139,14,42,19,131,7,188,248,242,241,130,238, +43,237,171,240,34,247,163,253,3,1,142,0,253,0,112,4,40,7,84,6,245,1,129,250,254,241,171,237,232,240,204,247, +41,253,22,255,207,251,125,246,155,245,232,245,20,242,36,239,66,241,134,245,146,248,50,249,57,250,23,253,213,253,133,253, +45,255,174,254,240,251,209,250,166,248,214,244,13,242,10,240,47,243,73,253,165,2,34,253,227,245,220,242,213,241,54,242, +194,243,93,244,40,245,47,247,228,247,49,248,197,248,232,244,92,238,66,236,146,238,168,241,26,242,251,238,249,237,124,241, +114,244,147,244,251,243,251,244,149,246,36,245,231,242,6,245,246,248,81,250,69,251,113,254,220,0,161,254,200,247,222,240, +214,239,135,242,50,242,143,241,192,243,242,244,94,246,144,248,194,247,183,247,189,250,166,251,155,250,136,250,88,249,219,244, +151,239,59,238,115,241,133,246,132,250,230,251,73,254,183,2,123,2,192,253,152,251,165,251,29,250,44,248,220,248,140,251, +111,252,93,250,46,248,106,249,45,254,74,1,25,255,65,250,116,247,173,248,253,250,114,252,157,255,205,2,192,1,115,254, +127,253,182,0,6,4,23,2,241,255,116,3,237,5,201,1,183,251,62,248,89,248,220,251,217,255,184,1,63,2,36,1, +234,253,76,252,86,254,232,0,26,2,98,2,101,2,42,3,254,3,158,3,7,4,120,6,145,7,125,5,53,3,218,2, +18,4,158,5,98,5,79,3,39,1,13,0,96,1,17,4,41,5,131,4,34,2,26,254,32,251,163,251,247,0,246,7, +78,9,237,4,88,1,26,3,127,11,251,20,65,23,109,17,177,7,173,0,203,2,164,10,239,14,172,13,79,11,31,10, +124,8,170,5,211,3,84,3,96,1,228,254,20,1,204,7,177,13,121,16,216,15,202,11,143,7,37,7,66,11,136,16, +152,18,179,16,169,11,68,5,150,2,108,5,197,9,141,11,66,8,57,2,106,0,50,4,151,8,211,10,248,10,98,9, +10,7,198,5,157,7,34,12,176,15,136,15,236,11,140,7,154,6,199,9,254,12,15,13,27,9,125,3,107,1,248,1, +196,255,233,252,119,254,43,2,72,3,49,3,69,5,87,7,133,8,115,13,100,21,218,26,83,28,151,25,173,18,1,10, +192,2,237,254,191,252,115,249,32,246,20,245,45,247,53,250,194,250,67,250,227,250,194,251,203,254,204,5,149,12,1,15, +194,13,174,9,15,4,72,3,86,9,167,14,69,16,203,15,45,11,123,3,112,252,188,248,212,250,141,254,80,254,3,252, +202,249,141,247,53,246,182,247,161,252,144,255,81,254,19,255,118,2,12,5,170,6,49,6,124,5,230,6,82,7,201,6, +161,7,146,8,6,8,254,4,196,1,230,0,208,253,176,246,176,241,151,241,102,243,13,244,0,244,9,246,131,249,40,252, +79,254,108,255,6,254,201,251,113,251,26,253,197,255,22,3,25,5,215,1,48,248,79,239,132,241,209,251,7,1,127,0, +13,2,245,3,139,2,147,0,228,255,165,254,153,252,156,254,187,4,209,3,219,249,232,243,150,245,111,247,221,246,228,243, +201,237,233,230,83,228,24,233,5,240,38,241,91,239,84,244,19,2,121,16,79,22,135,18,219,10,194,3,37,255,4,254, +83,254,148,252,242,249,65,249,84,247,113,242,157,241,241,247,254,252,39,249,255,239,173,234,117,235,156,238,151,244,20,254, +169,5,85,7,3,5,207,1,200,254,147,252,169,253,80,2,4,5,58,1,79,249,179,242,10,242,31,249,34,1,86,255, +17,246,183,241,95,245,149,250,168,252,90,252,250,252,182,253,240,251,75,251,177,255,120,5,124,7,72,7,152,9,40,13, +53,13,234,9,15,6,233,1,20,252,121,245,128,241,165,239,86,237,197,236,170,239,86,244,64,249,25,252,16,252,10,252, +131,254,82,3,60,7,64,7,5,5,104,3,191,3,23,7,63,11,114,11,52,7,22,2,116,254,220,253,7,0,63,1, +201,0,134,255,5,251,169,246,131,249,191,0,249,4,194,3,251,255,97,254,120,254,235,253,168,254,146,0,83,0,177,252, +117,248,165,248,245,252,116,0,247,0,172,253,117,248,222,246,84,249,129,251,223,251,91,251,5,251,14,252,111,254,219,0, +89,4,88,9,70,11,105,9,210,8,89,10,82,12,115,13,103,12,216,11,28,13,94,13,105,12,37,11,100,9,147,6, +7,2,125,254,148,254,174,1,191,5,13,5,228,254,146,252,205,0,57,5,54,7,3,8,163,7,168,4,78,0,243,254, +109,1,137,4,114,5,248,3,41,3,138,4,96,6,38,8,118,10,133,12,33,12,69,9,226,6,107,5,74,4,148,4, +177,4,127,3,62,3,198,3,183,2,219,255,33,253,140,252,81,255,252,3,139,4,193,255,154,253,172,255,77,255,62,252, +114,252,220,1,244,4,77,255,168,248,56,249,40,253,153,253,140,247,89,240,255,239,43,245,235,251,67,1,110,0,103,251, +230,246,147,242,195,239,215,240,1,244,167,244,209,239,252,232,2,229,79,229,254,234,225,243,175,250,214,252,236,249,5,245, +89,243,167,244,46,245,117,244,89,245,118,249,159,253,213,253,114,250,187,246,11,246,229,248,59,252,114,254,133,0,57,1, +5,255,141,252,98,252,228,253,197,255,246,255,236,253,34,252,175,251,19,253,2,0,141,0,219,253,215,250,107,248,204,248, +157,252,115,254,176,251,172,247,39,246,251,248,208,253,67,0,134,1,104,6,77,12,79,11,151,5,233,4,118,9,109,11, +202,8,83,6,178,6,17,8,238,9,135,12,146,13,99,13,6,14,87,13,129,10,162,9,166,12,175,15,143,14,147,11, +204,12,25,17,245,15,57,8,30,3,56,4,51,6,216,6,213,6,124,5,196,2,200,254,133,251,190,252,212,1,64,6, +133,6,3,5,224,8,87,17,25,21,161,17,45,13,16,12,45,12,138,11,178,12,146,14,60,12,155,7,36,7,80,12, +76,17,117,15,54,8,239,1,54,1,97,7,160,15,52,19,247,15,13,7,236,253,7,251,102,254,118,3,184,3,80,253, +4,249,119,252,221,0,5,0,17,253,186,253,31,1,12,2,216,0,117,2,217,7,33,12,175,10,75,5,196,0,38,255, +25,255,16,253,44,249,14,248,155,249,61,250,41,250,247,250,234,252,52,255,136,0,162,0,5,0,208,255,173,0,177,0, +149,254,242,252,83,254,16,0,171,253,161,248,163,245,78,245,196,245,72,246,107,248,12,253,157,0,149,0,158,253,131,248, +148,245,170,247,52,250,158,250,79,250,169,249,25,249,223,247,68,247,215,250,106,255,125,0,112,254,63,248,195,240,8,240, +92,246,84,254,93,5,66,9,248,7,58,3,120,255,118,254,177,253,222,252,252,253,129,254,122,252,203,251,154,253,145,253, +56,250,142,247,137,249,33,254,99,255,193,252,5,251,126,251,42,251,194,248,163,246,103,246,60,246,188,245,115,246,111,247, +74,248,239,249,241,250,250,250,212,250,199,249,171,249,30,252,173,253,40,252,30,250,176,250,103,254,177,2,87,5,183,6, +128,7,201,6,64,2,241,250,96,247,176,250,150,255,156,255,7,251,76,248,0,251,115,0,96,6,159,10,165,9,222,4, +218,0,9,255,81,255,158,0,92,1,16,2,83,2,254,255,49,252,113,250,0,252,14,255,122,0,96,255,146,254,44,0, +67,2,72,2,168,1,65,3,210,4,19,2,172,253,68,253,14,0,36,2,135,2,200,1,237,0,75,0,245,254,196,253, +233,253,70,254,182,255,88,4,82,9,200,10,142,9,37,7,168,3,11,1,35,2,247,5,88,7,249,3,123,0,65,0, +109,0,197,254,223,252,155,253,55,2,70,6,136,5,198,4,63,9,36,15,147,15,41,9,66,2,109,1,158,4,163,6, +239,6,244,6,127,6,71,4,27,1,112,255,218,254,224,253,17,253,77,253,85,255,208,1,118,1,162,254,251,252,100,255, +138,4,51,6,224,2,253,255,5,255,54,255,20,2,64,5,74,5,221,3,7,3,37,2,187,0,233,255,236,0,6,3, +118,4,255,3,22,1,154,253,223,252,108,255,232,2,119,4,1,2,151,253,242,252,41,1,177,5,38,8,197,8,86,7, +242,4,25,3,90,1,21,255,129,253,169,254,140,1,116,2,56,1,191,0,107,1,22,2,148,2,57,3,103,4,1,5, +223,2,211,254,106,252,153,253,153,1,35,5,46,4,210,255,208,253,78,0,116,4,198,6,129,5,133,2,91,1,140,2, +177,3,37,3,171,1,174,255,114,253,190,253,66,0,27,1,91,1,250,1,76,255,186,250,206,249,232,252,31,0,217,0, +123,0,212,255,103,252,52,247,136,244,239,245,72,250,192,253,243,252,31,250,65,248,81,246,244,242,9,240,242,240,14,245, +198,247,199,247,231,247,74,249,6,250,103,249,149,249,217,250,217,250,149,249,137,248,19,248,65,249,197,251,33,253,58,253, +93,252,26,249,225,245,229,245,140,246,176,245,254,244,140,245,167,246,208,245,144,243,179,244,101,247,113,246,228,244,134,246, +224,249,113,253,133,0,148,2,226,1,229,253,217,250,238,249,84,249,212,250,251,251,141,249,157,249,5,254,164,255,37,253, +129,250,91,249,38,250,79,252,38,254,71,255,22,0,142,255,182,253,238,253,93,1,28,4,194,3,153,2,78,3,181,4, +57,4,253,2,29,3,155,3,244,2,73,1,158,0,98,2,207,3,23,3,127,3,10,7,174,11,21,14,33,12,61,8, +149,6,109,6,199,4,38,2,129,0,253,255,176,0,0,3,114,5,100,6,3,6,182,4,100,3,132,2,2,0,42,252, +158,251,233,254,37,1,238,0,157,1,19,4,130,5,155,5,56,7,134,9,90,8,40,4,39,2,186,4,233,8,146,11, +114,13,237,14,57,13,9,9,49,7,255,7,164,8,205,9,223,11,178,11,215,7,61,3,43,1,60,1,212,0,145,255, +61,254,120,252,119,251,44,253,44,0,219,1,119,1,156,255,27,253,236,249,192,247,235,249,57,254,63,255,208,253,1,254, +137,255,128,255,239,253,236,253,129,0,188,3,226,5,188,5,123,3,111,1,106,1,45,3,83,4,107,3,234,1,194,255, +20,253,40,253,52,255,212,255,245,0,24,4,15,6,209,4,27,1,138,252,140,249,241,249,115,251,87,250,183,248,104,249, +190,248,18,246,103,246,165,248,59,248,220,246,107,247,219,248,113,250,76,252,163,253,159,255,166,3,3,7,61,7,113,5, +65,3,64,2,68,3,208,4,143,5,119,5,17,4,251,0,248,253,247,253,122,0,149,2,108,4,193,6,198,7,123,6, +50,3,142,255,65,255,244,1,104,2,114,0,248,0,96,3,197,2,23,255,25,252,163,251,120,253,135,0,128,3,118,5, +78,5,34,3,36,2,36,4,162,5,64,4,188,3,139,6,236,8,31,7,133,2,82,0,127,3,196,7,83,7,12,1, +32,245,102,230,160,221,178,224,230,236,116,252,5,9,58,14,151,14,135,14,11,14,69,12,62,9,90,4,208,253,32,247, +245,242,176,243,176,247,203,250,199,250,185,248,220,246,191,243,81,237,69,232,162,234,74,243,205,251,85,255,139,255,5,0, +211,0,97,1,182,0,122,254,246,253,164,255,238,255,161,254,87,254,252,0,74,5,237,5,222,0,217,250,195,247,130,245, +91,241,63,238,51,239,63,242,84,245,25,247,127,247,62,250,146,255,210,2,170,2,214,0,40,255,107,255,150,1,60,4, +111,6,167,7,60,7,201,5,228,5,105,7,219,6,240,3,99,1,18,0,123,254,13,252,99,251,180,253,255,0,217,4, +190,8,90,9,88,5,123,1,72,3,210,7,11,10,117,12,149,15,245,14,86,10,128,4,58,2,5,7,51,14,84,18, +132,17,246,10,113,3,208,255,106,255,248,1,76,6,182,9,107,11,41,10,97,6,106,3,243,2,223,4,103,7,67,8, +132,7,161,5,159,2,60,255,98,253,113,254,198,254,2,252,205,251,74,0,23,4,32,5,156,4,95,2,61,254,222,249, +176,248,81,251,17,254,203,254,103,253,62,250,167,247,246,246,98,247,99,248,66,248,224,246,95,247,44,249,119,249,164,248, +225,246,126,244,88,243,150,243,198,244,120,245,128,244,235,244,84,246,114,244,62,242,213,243,180,246,149,248,48,249,140,247, +46,243,43,238,217,235,217,235,117,236,227,237,128,239,233,242,114,249,236,253,163,253,115,251,242,249,160,251,131,254,95,254, +227,253,26,0,195,2,7,4,136,4,74,5,16,4,41,255,81,252,122,255,61,4,232,6,23,7,103,4,35,0,54,253, +202,252,67,254,46,1,89,3,31,2,77,0,159,2,8,8,124,11,33,11,158,10,151,11,51,11,189,9,253,8,233,7, +184,6,109,7,87,11,79,16,247,17,216,16,115,15,213,13,8,14,14,16,36,15,160,9,115,2,246,253,14,255,118,4, +206,9,80,11,80,11,251,13,176,16,45,17,64,17,66,17,18,18,193,17,246,12,196,8,224,8,88,9,17,9,71,8, +233,5,209,2,161,255,235,252,7,250,220,244,73,240,248,240,23,246,52,252,178,0,90,2,244,1,175,1,240,2,35,4, +88,3,67,2,70,3,189,4,35,4,7,2,172,253,246,245,33,240,95,240,40,243,207,244,97,244,67,243,66,244,162,246, +221,249,85,254,244,254,124,249,247,243,47,242,120,242,128,242,16,241,56,239,189,239,228,242,118,245,12,247,16,250,116,253, +131,255,88,255,124,252,20,252,56,0,35,2,156,0,7,255,164,251,127,246,95,243,140,243,129,245,74,247,214,248,246,249, +211,249,109,250,116,252,183,253,47,254,198,253,51,252,33,252,15,254,86,255,168,255,27,255,18,253,119,252,75,255,174,1, +169,1,244,1,63,3,0,5,166,6,232,5,45,4,100,5,148,8,175,11,175,15,175,20,160,24,54,25,67,22,67,18, +49,15,148,13,61,14,125,16,98,17,167,15,62,12,173,7,123,3,209,2,243,6,75,13,202,16,0,15,203,11,160,11, +83,13,248,13,234,13,105,13,212,10,231,7,103,7,196,7,148,8,0,10,3,8,62,2,72,253,33,251,150,251,148,252, +218,251,211,250,233,250,6,252,178,253,39,254,6,254,15,255,192,255,98,255,87,255,32,0,251,0,9,0,10,253,229,250, +169,251,73,253,26,252,223,248,227,246,55,246,172,246,112,248,21,249,79,247,48,244,217,241,236,242,135,246,197,249,84,252, +93,254,45,255,215,254,96,254,135,254,109,254,89,252,178,247,98,243,114,243,69,246,208,247,249,247,187,247,174,247,58,248, +88,249,3,252,147,254,30,254,160,252,203,251,43,251,226,251,66,252,105,249,206,245,82,245,224,247,157,250,106,251,187,249, +221,246,91,246,28,248,92,248,248,248,0,254,26,5,144,8,155,5,47,0,33,254,44,255,139,1,59,5,44,7,40,5, +90,2,170,1,183,1,71,0,139,254,101,255,17,2,21,3,63,2,239,2,213,6,11,12,240,14,119,13,231,9,46,7, +167,5,113,5,176,5,201,5,32,8,223,11,133,12,215,9,24,7,126,6,211,7,209,9,103,12,222,13,33,12,0,10, +197,9,116,9,243,7,203,5,63,4,65,5,26,8,57,9,211,6,222,2,48,0,245,255,253,0,229,0,173,0,100,3, +94,7,99,9,103,9,188,7,28,5,235,2,126,1,155,1,184,3,84,6,105,7,198,5,143,1,198,251,229,246,30,246, +233,248,58,252,220,254,87,0,54,0,41,255,60,254,252,252,229,249,46,246,204,244,27,246,62,248,16,248,86,244,146,240, +21,240,156,242,12,245,211,244,113,244,59,245,78,244,167,242,191,241,191,239,54,237,192,235,194,236,154,240,35,243,88,242, +58,241,143,241,99,243,76,245,152,246,251,249,239,254,247,0,119,255,133,253,244,252,58,253,248,253,30,0,27,3,129,4, +236,2,204,255,93,254,92,255,81,0,203,255,186,254,245,253,179,252,65,251,227,251,24,254,147,255,191,0,194,2,23,5, +103,6,163,6,127,7,136,8,117,7,122,4,141,1,120,0,1,2,16,5,56,7,135,6,164,4,40,4,43,4,126,4, +231,6,245,10,143,14,222,14,122,11,28,8,255,6,234,7,107,9,231,8,25,7,217,5,65,4,30,3,43,4,98,6, +123,7,181,6,213,5,137,4,59,1,240,254,11,255,94,255,82,0,64,0,159,252,35,249,70,249,226,251,87,254,88,253, +20,249,24,246,190,245,82,245,182,244,54,246,166,249,14,253,49,254,117,251,153,247,239,245,79,245,163,245,122,248,178,251, +18,252,97,249,193,245,114,242,249,238,179,236,174,237,27,241,232,243,10,243,234,240,145,242,57,245,109,244,17,243,54,244, +20,247,123,249,26,249,14,247,42,246,38,246,165,246,105,250,240,1,63,6,46,1,41,247,222,239,20,238,86,242,245,250, +32,4,247,10,230,12,250,9,215,6,65,6,82,6,150,5,22,5,139,4,74,1,188,252,0,253,25,2,179,5,248,6, +154,9,42,12,94,10,30,5,104,1,57,1,251,2,120,6,238,11,145,16,165,17,31,16,101,14,11,13,135,11,164,10, +87,11,50,13,172,15,106,17,250,16,75,16,205,16,102,15,137,10,205,5,130,4,129,5,39,6,26,7,34,9,112,9, +115,7,192,5,136,4,125,4,183,6,157,7,136,5,173,3,142,2,31,3,61,8,164,13,18,13,59,9,68,8,228,10, +32,13,233,11,180,7,87,2,154,254,102,254,81,255,67,255,83,255,251,255,178,0,198,255,0,252,119,248,240,247,222,249, +136,253,174,0,13,2,55,4,38,6,67,3,191,252,33,248,138,247,223,248,125,249,202,248,133,247,19,246,159,245,183,247, +162,249,164,247,212,244,128,245,179,248,96,252,93,254,164,253,159,252,86,251,178,248,93,248,185,252,89,3,191,8,77,9, +118,4,142,254,250,251,17,254,249,2,145,6,75,6,127,4,178,4,82,6,1,7,184,5,81,2,193,254,91,253,206,253, +236,254,134,255,193,255,236,0,187,0,20,253,254,248,184,246,121,246,160,248,1,251,38,252,235,253,61,0,205,0,79,255, +193,253,171,253,65,254,247,254,26,1,230,3,59,4,254,1,4,0,96,255,204,255,99,1,183,2,81,2,42,2,138,3, +146,3,195,1,148,1,138,2,244,1,158,1,243,2,66,4,58,5,130,5,89,4,192,2,100,1,253,0,231,1,125,2, +36,3,125,4,30,4,187,2,137,2,26,1,109,253,42,251,188,251,32,252,97,250,196,248,61,249,92,250,156,250,118,249, +91,247,192,246,134,248,4,250,38,250,80,251,54,254,162,255,224,253,84,252,111,254,43,2,188,2,116,255,163,252,234,253, +152,1,225,1,235,252,133,248,69,248,204,248,180,248,91,250,231,253,97,1,28,3,208,2,24,2,209,2,51,5,74,7, +96,7,207,6,253,6,84,6,8,4,27,2,150,1,71,1,182,0,242,255,28,254,165,252,78,254,88,1,227,2,139,3, +84,3,24,2,185,1,239,1,253,1,84,3,107,4,230,2,227,0,93,0,168,0,123,0,217,254,246,253,182,0,131,4, +120,5,118,3,19,255,72,249,45,246,197,249,203,1,226,6,26,5,146,0,128,255,188,0,254,254,4,252,243,251,3,253, +154,253,121,253,155,251,42,251,236,253,249,255,16,0,216,254,194,252,172,253,132,2,187,6,220,7,152,6,30,4,205,0, +80,253,142,252,164,254,203,255,32,255,209,253,235,252,132,253,15,253,202,249,83,248,234,250,193,253,72,255,225,0,251,1, +236,0,221,253,113,251,37,252,202,254,50,0,38,255,155,252,153,250,177,250,167,251,228,251,62,252,231,252,254,252,141,252, +6,251,51,249,215,249,117,251,253,250,221,250,38,253,106,255,93,0,113,0,2,0,252,255,54,0,20,0,222,0,2,3, +82,4,34,3,7,0,246,252,29,252,167,253,4,255,217,254,87,254,101,253,169,251,117,251,151,254,32,3,161,4,233,1, +222,255,67,1,107,3,103,5,128,7,200,8,157,9,177,9,253,7,73,5,98,2,20,0,26,255,213,254,124,255,127,1, +134,3,65,4,195,3,47,3,114,2,132,0,18,255,230,255,220,1,87,3,217,2,250,0,63,0,0,0,36,255,76,255, +73,0,239,0,137,1,86,1,142,255,48,254,130,255,243,1,95,2,0,1,94,255,242,253,191,253,151,254,52,255,241,255, +161,0,193,255,254,252,153,249,24,248,110,249,246,250,122,251,221,252,111,254,180,253,201,251,254,250,4,251,4,251,236,250, +119,251,134,253,75,255,181,254,120,253,23,253,204,252,97,252,209,251,109,251,103,252,95,254,135,255,123,255,128,255,186,0, +136,2,157,2,101,0,48,255,250,0,252,2,118,3,121,3,58,3,136,2,254,0,191,254,38,254,234,255,95,2,67,4, +247,3,44,2,241,1,220,2,54,3,189,3,48,5,28,7,33,8,173,7,231,6,184,5,150,3,1,2,116,2,201,4, +7,7,16,7,199,5,180,5,113,7,190,8,252,6,158,3,153,2,122,3,39,2,131,254,38,253,193,255,155,2,10,2, +209,254,248,252,191,253,212,253,73,252,185,251,105,252,9,253,158,253,123,254,20,255,110,254,40,253,178,252,69,253,187,254, +32,0,34,1,77,3,239,4,192,3,22,3,7,5,146,6,100,5,196,1,90,254,208,253,231,254,248,254,242,253,117,253, +234,253,24,254,14,254,148,254,225,254,221,254,199,255,203,1,227,2,172,0,67,253,102,253,182,0,164,3,222,4,165,4, +26,4,246,3,6,3,111,0,102,253,136,252,183,254,207,0,121,0,101,255,199,254,2,254,40,253,190,252,232,252,158,253, +217,254,77,0,217,0,221,255,163,254,74,254,237,253,233,252,106,252,166,252,2,252,122,250,236,249,236,250,115,252,113,253, +67,253,238,251,110,250,47,250,144,251,140,253,237,254,99,255,146,255,244,255,229,0,245,2,65,4,87,2,106,255,48,254, +0,254,197,254,58,0,48,1,62,2,146,2,173,0,42,255,219,255,131,0,254,255,72,255,204,254,34,254,212,253,222,254, +167,255,115,254,88,253,71,254,108,255,115,254,150,252,79,253,255,255,109,0,100,254,182,252,196,251,25,251,133,251,120,253, +172,255,156,0,214,0,51,1,230,0,1,0,128,255,18,255,201,254,189,255,127,1,96,2,249,1,82,1,52,1,83,1, +41,1,252,0,105,1,95,2,73,3,178,3,158,3,253,3,101,5,39,6,207,4,8,3,157,2,239,2,237,2,146,2, +209,2,155,3,156,2,243,255,82,255,61,1,213,2,241,2,81,2,19,2,12,2,98,1,208,1,6,4,236,4,33,4, +38,4,107,4,130,3,169,2,71,3,251,3,116,2,156,255,24,254,76,254,96,255,156,0,96,1,27,2,247,2,76,3, +83,3,5,3,192,1,54,0,158,255,249,255,6,0,234,254,204,253,101,253,68,252,87,250,116,249,18,250,92,251,192,252, +63,254,153,255,81,255,208,252,42,250,199,249,167,251,40,253,220,252,97,253,197,255,191,0,5,255,230,252,192,251,241,250, +242,249,186,249,201,250,143,251,103,251,101,251,160,251,158,251,222,251,111,252,173,252,232,252,70,253,87,253,51,254,183,255, +213,255,15,0,240,1,177,2,142,1,145,0,110,0,37,1,84,1,225,255,109,254,37,254,3,255,106,0,180,0,221,255, +89,255,231,255,71,1,3,2,171,1,91,1,48,1,107,1,68,2,151,2,114,2,198,2,52,3,224,2,170,1,133,0, +54,0,175,0,53,2,184,4,244,6,243,6,19,4,95,1,32,2,74,5,95,7,3,7,136,6,204,6,99,5,60,3, +166,2,21,2,15,1,86,0,187,254,160,252,153,251,114,251,47,251,143,250,105,250,187,250,47,251,222,252,214,254,5,255, +44,254,151,253,108,254,239,0,31,2,138,0,4,255,29,255,193,254,192,252,67,252,26,255,113,1,122,1,150,1,233,1, +151,1,207,0,63,255,55,254,196,255,87,2,173,2,157,0,197,254,206,254,55,0,134,1,86,1,136,255,191,253,131,253, +110,254,95,255,89,0,12,1,57,0,163,254,83,254,29,255,205,255,120,0,154,1,191,2,191,2,44,1,64,255,200,254, +170,255,18,0,225,255,129,0,180,1,67,2,191,1,155,0,254,255,51,0,75,0,235,255,239,254,40,253,253,251,241,252, +225,254,199,255,133,255,240,254,132,254,199,254,158,255,165,0,101,2,98,4,243,4,116,4,56,4,10,4,137,3,110,3, +99,4,113,5,215,4,220,2,63,1,123,0,12,0,134,255,40,255,185,255,183,0,255,0,73,1,172,2,127,4,103,5, +81,5,185,5,207,6,70,6,55,3,173,255,247,253,156,254,79,255,221,253,14,252,230,251,75,252,217,252,144,254,220,0, +110,2,14,3,88,3,177,3,189,3,116,3,39,3,53,2,83,0,85,254,15,253,72,253,87,254,254,253,143,252,62,252, +248,252,229,253,237,254,128,255,98,255,35,255,132,255,123,0,111,0,241,254,229,253,216,253,164,253,223,252,251,251,144,251, +106,251,237,250,82,250,18,250,100,250,102,251,209,252,161,253,167,252,245,250,18,251,161,252,207,253,145,254,243,254,230,254, +22,255,104,255,110,255,127,255,162,255,28,255,250,253,115,253,218,253,107,254,16,255,189,255,58,0,198,0,233,0,46,0, +129,255,147,255,7,0,94,0,172,0,29,1,226,0,181,255,103,255,223,0,234,1,247,0,136,255,34,255,217,255,40,1, +173,1,219,0,230,255,84,255,108,255,116,0,26,1,229,0,171,0,143,0,22,1,240,1,131,1,71,0,254,255,234,0, +178,1,4,1,2,0,89,0,95,1,254,1,176,1,162,0,12,0,240,255,97,255,249,254,98,255,168,255,206,254,194,253, +245,253,178,254,189,254,106,254,27,254,116,253,98,252,176,251,26,252,241,252,247,252,55,252,46,252,216,253,213,255,173,0, +251,0,75,1,87,1,18,1,138,0,46,0,64,0,43,0,109,255,92,254,151,253,158,252,226,250,191,249,6,250,205,250, +228,251,102,253,205,254,106,255,45,255,160,255,52,1,13,2,48,2,19,3,86,4,198,4,236,3,141,2,179,1,50,1, +129,0,72,255,219,253,49,253,191,252,46,252,206,252,86,254,101,255,111,255,103,254,227,253,45,255,90,1,235,3,2,6, +54,6,140,5,241,4,212,3,162,2,195,1,97,1,20,2,103,2,117,0,182,253,95,252,73,252,26,253,39,255,247,0, +207,0,226,255,191,255,69,0,89,1,13,2,125,1,123,1,2,3,226,3,177,2,113,0,211,254,135,254,243,254,185,255, +157,0,221,0,170,0,233,0,91,1,38,1,82,0,211,255,55,0,54,1,64,2,197,2,189,2,233,1,224,255,70,254, +179,254,22,0,186,1,121,3,15,4,172,3,94,3,182,2,8,2,154,2,142,3,229,2,44,1,208,0,230,1,104,2, +214,1,237,0,3,0,92,255,19,255,80,255,156,0,115,2,55,3,253,1,81,255,86,253,25,254,135,0,254,1,175,2, +24,4,250,4,37,3,153,255,85,253,201,252,131,252,215,252,213,253,169,253,117,252,62,252,92,253,2,255,148,0,27,1, +248,255,247,254,217,0,65,4,221,4,98,2,66,0,75,0,129,1,186,1,15,0,24,254,150,253,31,254,42,254,108,253, +250,252,119,253,117,254,162,255,6,1,33,2,148,2,121,3,92,5,110,6,92,5,216,2,224,255,118,253,220,252,205,254, +13,2,64,3,165,0,141,252,77,250,45,251,36,254,0,1,14,2,40,1,76,0,239,1,227,4,157,5,2,4,183,2, +110,2,40,2,128,1,6,1,70,1,76,1,36,0,7,255,234,254,68,255,236,255,130,0,111,0,74,0,183,0,117,1, +153,1,232,0,255,0,39,2,80,2,22,1,135,255,65,254,227,253,236,253,57,253,65,252,76,252,132,253,126,254,78,254, +52,254,221,254,95,255,207,255,215,0,63,2,28,3,93,2,163,0,30,0,0,1,41,1,153,255,193,253,130,253,210,254, +235,255,214,255,150,255,57,0,221,0,40,0,58,255,10,0,144,1,137,1,252,255,85,254,31,254,185,255,31,1,21,1, +14,1,240,1,189,2,123,2,139,1,55,1,221,1,59,2,235,0,161,254,229,253,211,254,172,254,49,253,239,252,34,254, +15,254,129,251,170,248,185,247,145,248,65,250,203,251,93,252,61,252,113,252,120,253,15,255,161,0,31,1,218,255,14,254, +253,252,94,252,247,251,62,251,26,250,39,250,84,251,95,252,170,253,240,254,173,255,163,0,135,1,157,1,1,1,83,0, +31,1,55,3,224,3,1,2,40,255,68,253,251,252,156,253,209,254,47,0,102,0,125,255,194,254,166,254,89,255,62,1, +50,3,50,3,17,2,164,2,72,4,199,3,63,1,122,255,50,255,40,255,251,254,29,255,106,255,133,255,131,255,184,255, +92,0,11,1,78,1,75,1,34,1,223,0,134,0,208,255,33,255,69,255,203,255,214,255,16,255,240,253,85,254,248,0, +116,3,50,4,21,4,176,3,45,3,221,2,124,2,238,1,24,1,146,255,156,253,177,251,151,250,190,250,108,250,53,249, +223,249,181,252,231,254,150,255,223,255,193,0,130,2,35,4,200,3,168,0,68,253,100,253,106,0,132,2,223,2,131,2, +0,1,237,254,20,254,62,254,97,254,128,254,192,254,116,255,162,0,93,1,91,1,72,1,156,1,71,2,164,2,121,2, +69,2,229,1,17,1,91,0,74,0,167,0,204,0,153,0,161,0,118,1,202,2,44,3,21,2,236,0,71,0,206,255, +189,255,67,255,163,253,170,252,127,253,118,254,21,254,192,252,147,251,215,251,79,254,105,1,22,2,160,255,95,253,119,254, +15,1,49,2,175,2,45,3,235,2,7,3,201,3,189,3,247,2,210,1,99,0,158,255,152,255,239,255,207,0,184,1, +248,1,216,1,34,2,24,3,48,4,142,4,245,3,119,3,110,3,116,2,4,1,204,0,243,0,147,0,59,0,43,0, +151,0,244,0,85,0,191,255,149,0,119,2,138,3,230,1,164,254,233,253,91,1,119,4,226,2,208,255,167,255,68,0, +97,255,245,254,81,0,99,2,115,3,179,2,35,1,22,0,240,255,95,0,12,1,220,1,112,1,163,254,205,251,91,251, +197,251,92,251,100,251,112,252,232,252,172,252,231,252,46,253,38,253,104,253,128,253,170,252,51,251,44,250,161,250,242,251, +76,252,90,251,209,250,60,252,165,254,2,0,138,0,99,1,69,2,216,2,55,3,239,2,205,1,206,0,216,0,200,0, +4,255,141,252,153,251,159,252,35,254,71,254,113,253,186,253,150,254,46,254,216,253,79,255,34,1,167,1,60,1,129,0, +181,255,89,255,116,255,107,255,92,255,117,255,4,255,246,253,161,252,228,250,13,250,103,251,125,253,60,255,230,0,67,1, +78,0,165,0,183,2,120,4,195,4,182,3,154,2,128,2,18,2,119,0,205,255,170,1,200,4,129,6,115,5,158,3, +151,3,140,4,193,4,70,4,120,3,208,2,182,2,112,2,171,1,13,1,122,0,153,255,241,254,233,254,224,254,96,254, +191,254,80,1,95,4,104,5,121,4,192,2,35,1,196,0,184,1,84,2,161,1,135,0,243,255,181,255,93,255,218,254, +11,254,64,253,233,253,58,0,196,1,105,1,6,1,121,1,220,1,184,1,183,0,234,254,92,253,217,252,112,253,199,254, +130,0,69,2,247,2,236,1,31,0,69,255,171,0,239,2,175,2,79,0,110,255,142,0,255,0,144,255,71,254,18,255, +188,0,91,1,150,0,131,255,148,255,220,255,40,255,67,255,142,0,45,1,45,1,166,0,255,254,139,253,170,253,130,254, +213,254,86,255,235,0,55,2,100,2,94,2,104,2,221,2,233,3,86,4,217,3,227,2,69,1,45,255,241,252,79,251, +128,251,41,253,192,254,62,255,215,254,220,254,76,255,211,254,35,254,250,254,182,0,72,1,93,0,121,255,136,255,231,255, +139,255,175,254,31,255,229,0,33,1,255,254,255,252,70,252,27,252,121,252,140,253,80,255,212,1,124,3,143,2,238,0, +255,0,76,1,232,255,218,253,24,253,29,254,4,255,114,253,186,250,161,250,33,253,138,254,185,253,5,253,209,253,87,255, +206,0,206,1,163,1,166,0,133,0,75,1,143,1,88,1,200,0,40,255,249,252,52,251,105,250,17,251,14,252,124,251, +131,249,52,248,115,249,125,252,169,254,116,255,237,255,25,0,21,0,139,255,132,253,54,252,139,254,48,2,12,3,242,0, +18,254,113,251,16,249,121,248,143,251,52,0,157,2,209,2,161,2,206,1,190,255,217,253,141,253,254,253,62,254,159,254, +253,254,125,255,32,0,189,255,195,254,97,254,61,254,80,254,165,254,77,255,102,0,38,0,156,254,141,254,97,255,164,255, +140,0,255,1,231,2,101,3,2,4,238,4,145,4,68,2,19,1,221,1,88,1,203,254,245,252,64,253,10,255,75,1, +204,2,255,2,187,2,107,2,168,1,248,0,99,1,129,2,155,2,12,1,43,255,65,254,199,254,132,0,9,2,53,2, +98,1,77,0,189,255,26,0,16,1,38,2,235,2,118,3,66,4,7,5,254,4,4,4,33,3,25,3,44,3,181,2, +128,1,127,255,19,254,19,254,186,254,8,0,102,1,73,1,133,0,140,1,216,4,116,7,77,6,203,2,63,0,159,255, +126,0,179,1,170,1,13,0,10,254,175,253,47,255,195,255,141,254,18,254,150,255,233,1,12,3,180,1,70,255,83,254, +75,255,1,1,19,2,169,1,126,0,131,255,66,254,139,252,134,251,35,252,193,253,55,255,116,0,15,1,237,255,103,254, +185,254,30,0,186,0,99,0,79,0,203,0,83,0,88,255,196,255,63,0,117,255,222,254,236,254,78,255,14,0,128,0, +167,0,103,0,72,255,246,254,127,0,242,1,234,1,57,1,147,1,255,2,39,3,138,1,61,0,252,255,233,255,96,255, +245,254,12,0,3,2,114,2,156,0,46,254,205,253,173,255,169,0,213,255,75,255,77,255,58,255,187,255,205,0,100,1, +218,0,149,255,123,254,186,253,79,253,158,253,184,254,30,0,0,1,9,1,158,0,230,255,66,255,102,255,12,0,123,0, +141,0,131,0,156,0,248,0,201,1,147,2,6,2,36,0,139,254,71,254,255,254,203,255,242,255,209,254,44,253,80,253, +22,255,245,255,115,255,126,254,160,253,139,253,105,254,13,0,225,1,87,2,55,1,14,0,128,255,3,255,62,254,154,253, +153,253,27,254,188,254,27,255,20,255,234,254,172,254,33,254,163,253,74,254,58,0,93,1,169,0,94,0,162,1,102,2, +133,1,106,0,252,255,115,255,179,254,143,254,14,255,208,255,168,0,44,1,221,0,221,255,145,255,200,0,224,1,135,1, +239,0,161,1,10,3,59,3,103,2,105,2,233,2,162,2,77,1,88,255,155,254,122,255,116,255,35,254,172,253,183,254, +12,0,102,0,233,255,142,255,207,255,233,0,64,2,174,2,169,2,239,2,203,2,231,1,243,0,245,255,139,254,223,253, +37,255,97,0,118,255,61,254,100,254,93,254,222,253,146,254,9,0,211,0,160,0,103,255,40,254,123,254,52,0,221,1, +32,2,191,0,235,254,23,254,37,255,90,1,206,2,22,3,38,2,126,255,118,252,224,250,67,251,227,252,2,254,176,254, +217,255,84,0,77,255,76,253,231,251,242,252,227,254,181,255,216,255,218,254,133,253,214,253,65,254,4,254,7,255,116,0, +102,0,55,255,60,254,169,254,59,0,55,1,151,0,84,255,255,254,87,255,35,255,126,254,88,254,230,254,120,255,153,255, +96,255,158,254,196,253,58,254,46,0,254,1,14,2,7,1,223,0,88,1,125,1,125,2,46,4,121,3,218,255,103,253, +127,254,78,0,26,0,255,254,198,254,217,254,183,253,75,252,73,252,214,252,77,253,85,254,248,254,250,254,214,255,37,1, +150,1,81,1,57,1,48,2,231,3,135,4,227,2,249,255,212,253,126,253,44,254,45,254,26,253,72,252,73,252,154,252, +149,253,139,255,175,1,42,3,208,3,21,4,154,4,120,5,229,5,222,4,253,2,191,1,202,0,55,255,232,253,238,253, +240,254,42,0,87,1,25,2,1,2,36,1,214,255,235,254,92,255,137,0,253,0,122,0,233,255,51,0,4,1,98,1, +75,1,99,1,192,1,117,1,209,255,31,254,251,253,221,254,243,254,133,253,35,252,36,252,206,252,218,253,189,255,129,1, +235,1,23,1,113,0,93,1,230,2,178,2,201,0,220,255,198,0,17,1,184,255,165,254,6,255,65,0,232,0,69,0, +176,255,235,255,229,255,186,255,71,0,182,0,7,0,229,254,56,254,153,254,128,0,188,1,141,255,207,252,101,253,229,254, +85,254,131,253,41,254,75,255,132,0,61,2,55,3,254,2,174,3,168,5,180,6,142,5,186,2,254,255,201,254,171,254, +247,254,133,255,12,0,53,0,146,255,96,254,113,253,123,253,44,255,189,1,67,3,8,3,2,1,83,254,253,253,219,0, +240,3,74,4,16,2,162,255,145,254,168,254,84,255,26,0,67,0,49,255,102,253,80,252,181,252,64,254,198,255,39,0, +196,255,170,255,188,255,252,254,196,253,113,254,52,1,173,2,121,1,92,255,157,253,151,252,142,252,223,253,251,255,42,1, +119,1,112,1,248,255,66,254,203,254,71,0,94,0,151,255,117,255,59,0,246,0,139,0,26,255,131,254,185,255,8,1, +96,1,136,1,17,2,36,3,237,3,158,3,34,3,37,2,172,255,242,253,225,254,161,0,182,0,1,255,173,253,49,254, +124,255,18,0,244,255,162,0,151,2,187,3,19,3,245,1,239,0,30,0,181,255,32,255,204,254,238,255,154,1,186,1, +133,0,236,255,68,0,176,0,96,1,145,2,220,3,213,4,202,4,232,3,152,3,7,4,230,3,149,2,172,0,22,255, +131,254,52,255,183,0,65,2,80,3,77,3,167,1,5,255,178,253,76,255,247,1,40,3,163,3,69,4,171,3,86,1, +90,254,158,252,151,253,139,255,61,0,78,0,159,0,7,1,25,1,87,0,200,255,131,0,208,1,88,3,116,4,50,3, +55,0,168,254,78,255,24,0,105,255,212,253,152,252,203,251,64,251,78,251,234,251,112,252,159,252,2,253,210,253,7,254, +81,253,49,253,113,254,0,0,99,0,233,254,36,253,76,253,95,254,245,253,231,251,194,249,165,249,7,252,71,254,22,255, +174,255,233,255,163,255,37,0,23,1,57,1,219,0,192,0,251,0,16,1,141,0,244,255,229,255,243,255,179,255,150,255, +255,255,223,0,15,2,160,2,57,1,139,254,78,253,104,254,230,255,172,0,119,1,187,1,68,0,101,254,79,254,211,255, +36,1,114,1,149,1,212,1,29,1,212,255,184,255,170,0,153,1,132,2,3,3,63,2,197,0,153,255,0,255,237,254, +10,255,56,255,162,255,101,255,172,253,199,251,114,251,109,252,115,253,10,254,10,254,10,253,62,252,144,253,205,255,85,0, +250,254,243,252,85,251,223,250,55,251,225,251,61,253,28,255,92,0,119,0,219,255,167,254,222,252,194,251,219,252,156,255, +166,1,145,1,92,0,222,255,145,0,89,1,61,1,214,0,12,1,156,1,190,1,142,0,34,254,162,252,126,253,116,255, +0,1,169,1,178,1,207,1,243,1,163,1,45,1,45,1,200,1,99,2,133,2,21,3,67,4,29,4,167,1,131,254, +232,252,166,253,98,255,11,0,166,255,197,255,134,0,80,0,213,254,133,254,181,0,192,2,62,2,140,0,189,255,242,255, +179,0,213,1,180,2,109,2,101,1,19,1,225,1,179,2,111,2,47,1,254,255,181,255,96,0,232,0,15,0,214,254, +80,255,29,1,54,2,207,1,213,0,182,0,179,1,125,2,244,1,255,0,66,1,12,2,124,1,166,255,178,253,199,252, +206,253,173,255,150,0,83,0,106,255,218,254,115,255,95,0,164,0,55,0,108,255,78,255,1,0,179,255,189,253,242,251, +240,251,75,253,194,254,68,0,68,2,113,3,7,2,173,254,253,251,195,251,58,253,139,254,94,255,40,0,211,0,62,1, +234,0,113,255,21,254,56,254,100,255,122,0,235,0,104,0,250,254,204,253,228,253,97,254,142,254,54,255,237,255,91,255, +29,254,152,253,179,253,192,253,205,253,6,254,13,254,226,253,17,254,191,254,220,255,53,1,10,2,238,1,78,1,176,0, +136,0,45,1,245,1,219,1,47,1,59,0,160,254,167,253,110,254,29,255,83,254,92,253,241,253,89,0,75,2,156,1, +240,255,74,255,185,254,116,253,29,252,129,251,160,252,35,255,224,0,148,1,161,2,8,3,234,1,102,1,113,2,220,3, +37,5,108,5,211,3,117,1,133,255,113,254,31,255,86,1,246,2,255,2,123,2,154,1,177,255,191,253,64,253,213,253, +112,254,205,254,218,254,63,254,159,253,118,254,104,0,211,1,116,2,161,2,196,2,121,3,22,4,190,3,48,3,26,3, +30,3,238,2,249,2,151,3,219,3,248,2,166,1,142,0,218,255,226,255,117,0,245,0,221,0,16,0,126,255,13,0, +81,1,90,2,190,2,212,2,240,2,146,2,134,1,76,0,43,255,187,254,132,255,153,0,210,0,67,0,104,255,87,254, +28,253,121,252,30,253,58,254,207,254,4,255,229,254,163,254,153,255,31,2,201,3,246,2,51,2,55,4,248,6,146,6, +251,2,165,255,85,254,46,253,142,250,49,248,179,248,101,251,193,252,245,251,227,251,46,253,198,253,194,253,184,254,105,1, +99,5,65,8,61,8,57,7,6,7,74,6,239,3,227,0,236,253,120,251,217,249,178,248,10,248,2,248,155,247,192,246, +7,247,75,249,149,252,97,255,186,1,125,4,191,6,128,7,90,7,93,6,82,4,53,2,246,0,61,0,192,254,123,252, +64,251,118,251,122,251,236,250,28,251,133,252,39,254,155,255,94,1,52,3,134,4,211,4,129,3,138,1,175,0,128,0, +154,255,116,254,25,254,25,254,145,253,191,252,76,252,104,252,253,252,237,253,51,255,134,0,127,1,73,2,16,3,164,3, +205,3,243,2,235,0,19,255,201,254,192,255,223,0,140,1,133,1,194,0,253,255,177,255,99,255,230,254,166,254,20,255, +34,0,159,0,227,255,85,255,43,0,105,1,87,1,60,0,12,0,250,0,127,1,145,1,205,1,120,1,123,0,24,0, +116,0,248,0,237,1,176,2,216,1,250,255,124,254,223,253,6,254,209,253,231,252,145,252,232,252,30,253,34,253,175,252, +42,252,252,252,242,254,85,0,225,0,241,1,188,3,191,4,89,4,123,3,190,2,11,2,87,1,233,0,249,0,38,1, +152,0,60,255,93,254,239,254,237,255,67,0,202,0,90,2,181,3,60,3,115,1,37,0,15,0,166,0,203,0,242,255, +23,255,1,255,26,255,193,254,208,253,1,253,177,253,140,255,161,0,60,0,160,255,53,0,134,1,242,1,94,1,85,1, +74,2,252,2,240,2,35,3,175,3,173,3,197,2,254,0,121,255,235,255,99,1,171,1,20,1,169,0,209,255,52,254, +199,252,120,252,4,253,146,253,52,254,88,255,3,0,225,254,201,252,1,252,80,253,64,255,43,0,28,0,33,0,177,0, +84,1,139,1,160,1,223,1,158,1,174,0,24,0,26,0,57,0,135,0,246,0,161,1,7,2,87,0,29,254,192,254, +160,255,202,253,206,252,147,253,217,252,30,252,128,253,104,254,148,253,198,252,228,252,171,253,68,254,24,254,64,254,202,255, +82,1,65,1,122,0,226,255,37,255,21,255,63,0,240,0,117,0,67,0,154,0,69,0,183,255,96,0,240,0,70,255, +34,253,64,253,165,254,51,255,112,255,116,0,168,0,82,254,135,251,58,251,22,253,110,255,62,1,104,1,17,0,85,255, +235,255,71,0,164,255,203,254,16,255,226,0,108,2,148,2,227,2,151,3,128,3,202,2,245,1,87,1,249,0,80,0, +191,255,105,255,103,254,25,253,105,252,180,252,218,253,115,254,56,254,152,254,134,255,146,0,189,1,178,1,20,0,208,254, +54,255,153,0,56,1,59,0,213,254,102,254,189,254,240,254,182,254,109,254,150,254,127,255,209,0,202,1,26,2,188,1, +211,0,33,0,95,0,1,1,193,0,197,255,20,255,33,254,141,252,27,252,155,253,140,255,194,0,149,1,148,2,92,3, +115,3,53,3,203,2,76,2,64,2,88,2,195,1,166,0,175,255,62,255,51,255,57,255,57,255,65,255,82,255,36,255, +172,254,228,254,181,255,73,255,226,253,147,253,75,254,38,255,92,0,126,1,169,1,72,1,118,1,89,2,204,2,36,2, +56,1,162,0,1,0,67,255,117,254,171,253,149,253,55,254,175,254,22,255,218,255,55,0,183,255,28,255,15,255,142,255, +65,0,209,0,13,1,175,0,38,0,114,0,65,1,151,1,154,1,163,1,81,1,96,0,109,255,66,255,132,255,157,255, +248,255,186,0,94,1,113,1,213,0,69,0,56,0,45,0,25,0,231,255,75,255,245,254,12,255,247,254,251,254,61,255, +120,255,193,255,196,255,133,255,240,255,9,1,192,1,229,1,65,2,188,2,172,2,101,2,94,2,141,2,39,3,200,3, +91,3,175,1,222,255,86,255,6,0,110,0,15,0,93,255,116,254,31,254,54,255,179,0,52,1,25,1,41,1,38,1, +211,0,198,0,145,1,135,2,112,2,233,1,43,2,58,2,109,1,21,1,40,1,120,0,105,255,217,254,10,255,161,255, +169,255,238,254,110,254,161,254,251,254,50,255,150,255,230,255,131,255,239,254,51,255,93,0,103,1,88,1,152,0,89,0, +121,0,6,0,115,255,233,255,18,1,151,1,48,1,139,0,222,255,41,255,193,254,140,254,27,254,200,253,252,253,69,254, +64,254,221,253,34,253,186,252,9,253,108,253,204,253,150,254,131,255,57,0,90,0,150,255,19,255,195,255,251,255,241,254, +175,254,200,255,152,0,165,0,134,0,151,0,183,0,53,0,66,255,25,255,152,255,193,255,190,255,6,0,109,0,244,0, +69,1,131,0,86,255,74,255,236,255,21,0,217,255,92,255,182,254,26,254,147,253,199,253,204,254,144,255,237,255,125,0, +46,1,154,1,190,1,31,2,117,2,213,1,210,0,68,0,213,255,159,255,158,255,69,255,26,255,157,255,10,0,198,255, +243,254,44,254,63,254,79,255,158,0,91,1,9,1,199,255,151,254,53,254,73,254,122,254,144,254,67,254,31,254,148,254, +28,255,90,255,19,255,32,254,106,253,30,254,231,255,48,1,119,1,161,1,120,1,121,0,4,0,197,0,111,1,178,1, +37,2,14,2,166,0,50,255,51,255,210,255,102,255,249,253,12,253,156,253,153,254,147,254,3,254,205,253,6,254,159,254, +59,255,226,255,24,1,73,2,178,2,114,2,182,1,224,0,119,0,73,0,240,255,165,255,0,0,224,0,88,1,41,1, +232,0,230,0,35,1,69,1,30,1,103,1,143,2,205,3,224,3,70,2,28,0,200,254,82,254,28,254,118,253,12,252, +241,250,82,251,154,252,168,253,95,254,18,255,200,255,160,0,217,1,21,3,178,3,228,3,115,4,122,5,171,5,221,3, +93,1,65,0,77,0,206,255,65,254,168,252,228,251,251,251,139,252,249,252,67,253,18,254,203,254,160,254,211,254,54,0, +94,1,79,1,167,0,74,0,170,0,87,1,65,1,155,0,224,0,104,1,45,0,203,254,23,0,88,2,206,2,154,2, +48,3,127,3,240,2,6,2,214,0,87,0,9,1,210,0,110,255,14,255,53,255,152,254,212,253,233,252,134,252,18,254, +37,0,26,1,190,1,83,2,73,2,245,1,216,1,89,2,150,3,87,4,82,3,100,1,74,0,93,0,226,0,211,0, +170,255,49,254,8,253,211,251,35,251,53,252,179,254,221,0,120,1,238,0,124,0,144,0,172,0,128,0,72,0,33,0, +136,255,30,254,141,252,191,251,218,251,175,252,59,254,191,255,213,255,160,254,24,254,41,255,136,0,207,0,103,0,127,0, +1,1,246,0,252,255,131,254,148,253,249,253,68,255,131,0,237,0,29,0,226,254,63,254,225,253,119,253,168,253,173,254, +148,255,93,255,159,254,162,254,24,255,77,255,208,255,223,0,154,1,105,1,200,0,140,0,231,0,195,1,201,2,16,3, +126,2,190,1,202,0,215,255,92,255,68,255,215,255,183,0,120,0,147,255,184,255,113,0,140,0,153,0,113,1,93,2, +40,2,250,0,253,255,199,255,54,0,231,0,58,1,228,0,91,0,30,0,71,0,130,0,110,0,82,0,95,0,113,0, +211,0,38,1,210,0,77,0,182,255,101,255,178,255,24,255,215,253,49,254,46,255,60,255,203,254,238,253,125,253,38,254, +228,254,227,255,250,0,234,0,144,0,125,0,203,255,44,255,122,255,91,0,45,1,239,0,10,0,234,255,254,255,150,255, +146,255,13,0,177,0,105,1,119,1,14,1,8,1,191,0,48,0,93,0,25,1,66,2,87,3,193,2,8,1,228,255, +131,255,128,255,46,255,167,254,224,254,65,255,131,255,11,0,134,255,19,254,158,253,28,254,212,254,74,255,243,254,141,254, +189,254,98,255,66,0,84,0,161,255,159,255,255,255,230,255,237,255,70,0,179,0,72,1,114,1,2,1,234,0,59,1, +69,1,62,1,85,1,34,1,175,0,83,0,14,0,145,255,223,254,166,254,233,254,253,254,16,255,144,255,107,0,8,1, +152,0,237,255,60,0,138,0,21,0,186,255,226,255,126,0,218,0,193,255,225,253,221,252,190,252,250,252,119,253,201,253, +193,253,211,253,238,253,191,253,227,253,187,254,127,255,243,255,168,0,99,1,136,1,75,1,4,1,153,0,93,0,222,0, +143,1,82,1,78,0,217,255,94,0,179,0,31,0,147,255,83,0,11,2,248,2,141,2,245,1,169,1,137,1,180,1, +153,1,11,1,243,0,118,1,245,1,3,2,180,1,137,1,85,1,195,0,125,0,181,0,220,0,223,0,237,0,39,1, +82,1,185,0,111,255,91,254,254,253,52,254,148,254,206,254,180,254,103,254,104,254,217,254,84,255,211,255,125,0,33,1, +159,1,8,2,51,2,238,1,86,1,179,0,84,0,60,0,223,255,51,255,6,255,86,255,106,255,104,255,179,255,226,255, +219,255,132,0,12,2,237,2,8,2,35,0,231,254,62,255,42,0,58,0,202,255,159,255,146,255,211,255,90,0,118,0, +38,0,205,255,192,255,86,0,240,0,194,0,120,0,246,0,205,1,10,2,129,1,246,0,251,0,80,1,107,1,246,0, +5,0,244,254,255,253,75,253,57,253,242,253,179,254,206,254,254,254,247,255,235,0,25,1,19,1,51,1,20,1,218,0, +208,0,109,0,102,255,135,254,81,254,107,254,162,254,246,254,22,255,216,254,115,254,245,253,154,253,228,253,136,254,193,254, +186,254,9,255,143,255,172,255,17,255,166,254,112,255,162,0,210,0,24,0,79,255,228,254,205,254,241,254,46,255,27,255, +214,254,5,255,82,255,75,255,125,255,220,255,230,255,9,0,129,0,196,0,192,0,173,0,95,0,5,0,50,0,179,0, +223,0,150,0,20,0,203,255,226,255,176,255,13,255,191,254,226,254,6,255,40,255,86,255,103,255,104,255,112,255,54,255, +205,254,205,254,24,255,76,255,145,255,246,255,147,0,47,1,201,0,80,255,45,254,122,254,185,255,132,0,216,0,158,1, +6,2,56,1,45,0,100,255,141,254,71,254,31,255,51,0,149,0,216,0,110,1,105,1,148,0,252,255,47,0,232,0, +118,1,90,1,217,0,115,0,129,0,5,1,121,1,215,1,131,2,208,2,238,1,190,0,133,0,241,0,32,1,243,0, +148,0,79,0,90,0,64,0,162,255,225,254,142,254,184,254,214,254,230,254,118,255,85,0,21,1,116,1,221,0,190,255, +67,255,43,255,7,255,155,255,180,0,234,0,44,0,145,255,155,255,43,0,230,0,95,1,101,1,251,0,132,0,83,0, +29,0,4,0,98,0,150,0,89,0,44,0,212,255,57,255,39,255,172,255,251,255,3,0,135,0,162,1,139,2,201,2, +155,2,69,2,124,1,16,0,194,254,75,254,119,254,207,254,226,254,172,254,121,254,58,254,68,254,11,255,168,255,147,255, +19,0,143,1,77,2,204,1,189,1,8,2,19,1,4,0,94,0,171,0,205,255,210,254,114,254,73,254,43,254,118,254, +249,254,8,255,169,254,75,254,89,254,8,255,167,255,162,255,121,255,171,255,11,0,250,255,48,255,65,254,215,253,46,254, +233,254,71,255,89,255,170,255,68,0,246,0,114,1,119,1,248,0,20,0,133,255,177,255,235,255,238,255,247,255,167,255, +172,254,99,253,144,252,178,252,118,253,64,254,221,254,62,255,94,255,129,255,188,255,206,255,6,0,196,0,125,1,1,2, +151,2,181,2,233,1,180,0,249,255,43,0,133,0,72,0,240,255,188,255,151,255,200,255,245,255,235,255,108,0,116,1, +10,2,225,1,95,1,214,0,124,0,84,0,25,0,160,255,10,255,156,254,162,254,10,255,120,255,152,255,63,255,216,254, +208,254,221,254,222,254,16,255,109,255,206,255,205,255,60,255,164,254,134,254,12,255,197,255,193,255,61,255,45,255,163,255, +102,0,38,1,92,1,49,1,252,0,178,0,177,0,115,1,119,2,213,2,125,2,168,1,122,0,209,255,18,0,103,0, +136,0,196,0,220,0,132,0,233,255,130,255,151,255,1,0,148,0,240,0,231,0,31,1,141,1,99,1,177,0,233,255, +38,255,210,254,58,255,206,255,249,255,2,0,29,0,254,255,235,255,88,0,242,0,122,1,8,2,97,2,88,2,40,2, +234,1,99,1,165,0,52,0,20,0,223,255,174,255,166,255,142,255,86,255,59,255,121,255,242,255,57,0,63,0,109,0, +201,0,209,0,120,0,79,0,110,0,123,0,97,0,11,0,104,255,175,254,23,254,229,253,40,254,92,254,77,254,94,254, +161,254,208,254,224,254,252,254,79,255,231,255,152,0,26,1,86,1,79,1,7,1,224,0,52,1,80,1,130,0,149,255, +111,255,133,255,50,255,186,254,157,254,40,255,252,255,58,0,247,255,14,0,145,0,214,0,144,0,71,0,113,0,134,0, +27,0,187,255,191,255,234,255,4,0,231,255,174,255,158,255,173,255,201,255,21,0,147,0,1,1,49,1,76,1,95,1, +53,1,225,0,136,0,18,0,182,255,196,255,0,0,13,0,241,255,228,255,219,255,161,255,104,255,99,255,73,255,39,255, +63,255,98,255,153,255,11,0,84,0,41,0,155,255,1,255,252,254,163,255,93,0,179,0,107,0,229,255,207,255,226,255, +164,255,120,255,138,255,167,255,237,255,56,0,60,0,32,0,244,255,172,255,134,255,157,255,235,255,107,0,202,0,255,0, +80,1,143,1,160,1,157,1,105,1,61,1,65,1,38,1,14,1,25,1,229,0,104,0,209,255,73,255,30,255,60,255, +116,255,221,255,81,0,137,0,105,0,15,0,186,255,116,255,74,255,77,255,69,255,96,255,189,255,205,255,167,255,201,255, +225,255,174,255,109,255,52,255,25,255,46,255,103,255,197,255,21,0,50,0,59,0,39,0,3,0,55,0,204,0,33,1, +196,0,33,0,194,255,132,255,50,255,232,254,165,254,101,254,83,254,132,254,201,254,227,254,205,254,159,254,107,254,69,254, +94,254,245,254,208,255,72,0,98,0,143,0,173,0,152,0,128,0,95,0,85,0,150,0,206,0,164,0,57,0,198,255, +83,255,227,254,187,254,231,254,13,255,43,255,107,255,147,255,137,255,153,255,239,255,49,0,6,0,190,255,200,255,36,0, +117,0,73,0,231,255,209,255,189,255,175,255,249,255,5,0,179,255,190,255,27,0,90,0,126,0,166,0,202,0,211,0, +205,0,190,0,140,0,84,0,23,0,203,255,173,255,189,255,224,255,23,0,48,0,22,0,235,255,221,255,31,0,100,0, +108,0,113,0,68,0,199,255,97,255,37,255,30,255,101,255,166,255,186,255,213,255,219,255,154,255,97,255,135,255,201,255, +233,255,2,0,254,255,241,255,52,0,189,0,53,1,82,1,1,1,162,0,124,0,109,0,70,0,12,0,241,255,236,255, +196,255,146,255,148,255,196,255,233,255,3,0,54,0,56,0,1,0,18,0,54,0,59,0,137,0,190,0,119,0,74,0, +95,0,87,0,37,0,248,255,20,0,70,0,23,0,178,255,137,255,178,255,244,255,13,0,34,0,81,0,90,0,74,0, +69,0,7,0,163,255,175,255,28,0,87,0,100,0,115,0,97,0,66,0,41,0,250,255,220,255,12,0,104,0,108,0, +233,255,103,255,33,255,6,255,70,255,157,255,203,255,12,0,42,0,23,0,14,0,193,255,98,255,120,255,169,255,174,255, +158,255,107,255,88,255,177,255,61,0,155,0,171,0,145,0,100,0,50,0,32,0,27,0,33,0,81,0,117,0,99,0, +64,0,26,0,227,255,161,255,119,255,107,255,92,255,82,255,120,255,196,255,242,255,218,255,192,255,207,255,234,255,30,0, +53,0,229,255,173,255,245,255,92,0,129,0,62,0,204,255,153,255,160,255,179,255,212,255,199,255,108,255,16,255,22,255, +128,255,225,255,229,255,181,255,172,255,247,255,61,0,32,0,244,255,19,0,101,0,139,0,32,0,116,255,59,255,111,255, +232,255,132,0,181,0,126,0,88,0,48,0,234,255,141,255,73,255,149,255,47,0,98,0,65,0,54,0,119,0,212,0, +195,0,67,0,208,255,129,255,53,255,252,254,231,254,247,254,58,255,158,255,232,255,30,0,87,0,124,0,197,0,23,1, +0,1,191,0,134,0,57,0,44,0,57,0,26,0,41,0,66,0,33,0,1,0,223,255,210,255,1,0,43,0,46,0, +249,255,176,255,190,255,7,0,67,0,108,0,134,0,187,0,241,0,217,0,134,0,51,0,37,0,110,0,165,0,132,0, +40,0,240,255,31,0,90,0,116,0,151,0,139,0,77,0,52,0,90,0,142,0,120,0,79,0,132,0,178,0,144,0, +70,0,222,255,179,255,216,255,220,255,210,255,199,255,141,255,89,255,91,255,130,255,175,255,205,255,245,255,45,0,96,0, +148,0,181,0,187,0,178,0,139,0,81,0,34,0,36,0,88,0,117,0,113,0,89,0,2,0,165,255,144,255,137,255, +121,255,148,255,186,255,186,255,189,255,234,255,21,0,14,0,219,255,184,255,208,255,248,255,7,0,253,255,209,255,186,255, +237,255,15,0,7,0,29,0,43,0,6,0,212,255,168,255,132,255,124,255,137,255,138,255,132,255,157,255,192,255,170,255, +118,255,116,255,141,255,136,255,124,255,113,255,74,255,59,255,103,255,139,255,134,255,123,255,129,255,156,255,193,255,228,255, +243,255,244,255,247,255,235,255,211,255,188,255,150,255,157,255,220,255,235,255,222,255,228,255,190,255,159,255,201,255,225,255, +209,255,216,255,253,255,57,0,112,0,105,0,74,0,87,0,113,0,123,0,145,0,148,0,120,0,107,0,113,0,104,0, +53,0,253,255,18,0,53,0,31,0,28,0,51,0,61,0,66,0,48,0,42,0,68,0,80,0,111,0,141,0,116,0, +114,0,125,0,92,0,69,0,56,0,26,0,16,0,26,0,49,0,70,0,65,0,68,0,89,0,93,0,83,0,86,0, +106,0,106,0,73,0,49,0,38,0,2,0,227,255,243,255,16,0,9,0,245,255,235,255,228,255,246,255,34,0,63,0, +88,0,105,0,96,0,99,0,90,0,31,0,251,255,253,255,224,255,190,255,186,255,172,255,140,255,118,255,113,255,118,255, +122,255,127,255,159,255,205,255,218,255,210,255,236,255,31,0,53,0,49,0,42,0,18,0,255,255,246,255,214,255,199,255, +196,255,166,255,183,255,236,255,232,255,211,255,190,255,157,255,159,255,181,255,186,255,183,255,186,255,208,255,221,255,234,255, +5,0,241,255,209,255,204,255,160,255,128,255,158,255,196,255,244,255,254,255,209,255,209,255,216,255,183,255,184,255,216,255, +245,255,252,255,211,255,171,255,167,255,182,255,216,255,234,255,219,255,209,255,208,255,182,255,142,255,151,255,203,255,219,255, +202,255,194,255,192,255,184,255,174,255,183,255,210,255,235,255,13,0,32,0,38,0,70,0,76,0,60,0,81,0,74,0, +34,0,15,0,241,255,225,255,246,255,1,0,7,0,10,0,0,0,245,255,235,255,245,255,19,0,33,0,64,0,108,0, +103,0,71,0,61,0,56,0,50,0,56,0,52,0,33,0,37,0,54,0,45,0,23,0,18,0,46,0,69,0,60,0, +81,0,106,0,63,0,31,0,32,0,4,0,243,255,249,255,0,0,28,0,28,0,2,0,0,0,242,255,233,255,240,255, +215,255,206,255,235,255,238,255,242,255,252,255,221,255,208,255,239,255,251,255,253,255,17,0,35,0,52,0,76,0,88,0, +92,0,89,0,65,0,40,0,32,0,23,0,26,0,49,0,59,0,54,0,61,0,68,0,77,0,89,0,79,0,71,0, +84,0,75,0,53,0,59,0,69,0,69,0,77,0,85,0,83,0,74,0,77,0,92,0,87,0,64,0,36,0,12,0, +14,0,19,0,13,0,25,0,30,0,30,0,47,0,30,0,2,0,24,0,49,0,55,0,64,0,63,0,56,0,37,0, +17,0,22,0,30,0,24,0,32,0,43,0,46,0,50,0,47,0,50,0,75,0,88,0,72,0,63,0,61,0,55,0, +64,0,69,0,58,0,61,0,61,0,54,0,55,0,24,0,237,255,234,255,239,255,238,255,251,255,252,255,242,255,237,255, +224,255,217,255,229,255,234,255,228,255,230,255,225,255,214,255,222,255,215,255,191,255,204,255,219,255,212,255,228,255,240,255, +237,255,253,255,11,0,16,0,30,0,51,0,68,0,63,0,47,0,43,0,24,0,254,255,249,255,246,255,235,255,218,255, +209,255,217,255,221,255,224,255,213,255,180,255,186,255,194,255,147,255,121,255,130,255,135,255,153,255,160,255,154,255,164,255, +168,255,169,255,183,255,192,255,191,255,183,255,174,255,175,255,180,255,190,255,205,255,221,255,245,255,249,255,230,255,221,255, +206,255,186,255,187,255,185,255,174,255,183,255,187,255,165,255,153,255,158,255,156,255,155,255,157,255,143,255,128,255,127,255, +122,255,128,255,166,255,193,255,182,255,181,255,195,255,184,255,164,255,163,255,165,255,172,255,171,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/eat3.pcm b/src/client/sound/data/eat3.pcm new file mode 100755 index 0000000..f1f8b9d --- /dev/null +++ b/src/client/sound/data/eat3.pcm @@ -0,0 +1,769 @@ +unsigned char PCM_eat3[24538] = { +1,0,0,0,2,0,0,0,68,172,0,0,229,47,0,0,5,0,109,0,99,0,10,0,67,0,145,0,178,0,214,0, +160,0,158,0,208,0,136,0,131,0,229,0,3,1,24,1,37,1,233,0,150,0,96,0,70,0,64,0,115,0,173,0, +172,0,198,0,212,0,197,0,0,1,9,1,201,0,215,0,249,0,254,0,247,0,198,0,105,0,6,0,7,0,50,0, +42,0,130,0,235,0,199,0,130,0,80,0,105,0,160,0,107,0,92,0,108,0,43,0,47,0,74,0,30,0,243,255, +211,255,202,255,100,255,212,254,6,255,63,255,64,255,137,255,114,255,129,255,4,0,210,255,104,255,90,255,78,255,142,255, +205,255,203,255,222,255,190,255,113,255,61,255,27,255,24,255,248,254,184,254,187,254,244,254,34,255,52,255,78,255,100,255, +81,255,125,255,235,255,29,0,46,0,40,0,246,255,224,255,255,255,94,0,161,0,86,0,32,0,73,0,55,0,237,255, +172,255,124,255,145,255,183,255,151,255,138,255,173,255,133,255,68,255,73,255,42,255,241,254,248,254,241,254,238,254,56,255, +112,255,115,255,119,255,166,255,250,255,5,0,146,255,8,255,207,254,229,254,250,254,205,254,120,254,132,254,51,255,175,255, +96,255,196,254,75,254,36,254,243,253,61,253,185,252,190,252,208,252,45,253,146,253,139,253,161,253,183,253,141,253,128,253, +104,253,81,253,77,253,17,253,8,253,60,253,87,253,176,253,11,254,28,254,90,254,144,254,98,254,38,254,249,253,207,253, +242,253,92,254,193,254,25,255,95,255,134,255,185,255,186,255,90,255,49,255,97,255,143,255,212,255,49,0,98,0,109,0, +150,0,216,0,185,0,90,0,54,0,2,0,212,255,13,0,63,0,75,0,122,0,170,0,183,0,183,0,206,0,238,0, +229,0,188,0,148,0,182,0,57,1,135,1,84,1,5,1,6,1,62,1,27,1,188,0,173,0,179,0,202,0,53,1, +162,1,233,1,37,2,62,2,41,2,249,1,227,1,15,2,90,2,98,2,28,2,44,2,124,2,79,2,23,2,55,2, +62,2,29,2,207,1,166,1,7,2,93,2,121,2,146,2,94,2,43,2,60,2,108,2,212,2,214,2,79,2,39,2, +239,1,96,1,126,1,192,1,92,1,101,1,240,1,0,2,39,2,165,2,120,2,243,1,221,1,208,1,149,1,79,1, +53,1,65,1,230,0,173,0,10,1,237,0,173,0,15,1,17,1,201,0,251,0,49,1,112,1,227,1,60,2,157,2, +217,2,183,2,140,2,101,2,20,2,143,1,10,1,226,0,234,0,236,0,35,1,98,1,73,1,206,0,62,0,44,0, +169,0,2,1,243,0,244,0,20,1,73,1,184,1,151,1,145,0,199,255,87,255,211,254,177,254,161,254,87,254,151,254, +69,255,180,255,208,255,169,255,116,255,65,255,58,255,204,255,159,0,21,1,22,1,197,0,158,0,196,0,205,0,190,0, +167,0,124,0,127,0,100,0,221,255,174,255,23,0,104,0,152,0,200,0,160,0,90,0,49,0,232,255,28,0,31,1, +175,1,16,1,26,0,183,255,221,255,217,255,116,255,25,255,248,254,252,254,12,255,42,255,133,255,229,255,239,255,217,255, +195,255,122,255,21,255,227,254,99,255,148,0,107,1,117,1,205,1,249,2,34,4,8,5,80,6,191,7,31,8,79,7, +177,6,229,6,230,6,86,6,58,6,185,6,6,7,56,7,135,7,105,7,14,7,42,7,111,7,85,7,60,7,161,7, +71,8,139,8,67,8,181,7,220,6,8,6,22,6,233,6,14,7,170,5,243,3,54,3,244,1,2,255,13,253,36,255, +155,5,237,13,48,19,238,18,177,15,244,12,147,12,210,12,185,9,56,4,16,0,50,254,29,0,217,3,44,1,197,248, +71,244,197,244,54,246,53,248,232,248,119,247,245,246,147,248,109,252,123,0,163,255,175,251,143,250,3,251,48,250,68,248, +135,244,168,239,38,236,233,234,238,234,165,233,191,230,205,229,178,231,226,233,120,235,180,235,166,233,6,232,248,232,171,233, +132,232,81,231,6,230,255,227,29,227,96,228,118,229,113,228,22,227,155,227,101,229,48,231,183,231,112,230,164,229,110,230, +110,230,219,228,185,227,12,228,86,228,209,227,141,228,83,231,247,233,193,234,228,233,121,233,231,234,55,236,147,235,64,234, +177,234,10,237,231,237,76,236,48,236,8,239,151,241,172,241,158,240,179,240,217,241,105,242,207,241,234,240,76,241,9,243, +130,244,125,245,173,246,254,247,102,249,173,250,73,251,62,251,47,251,236,251,154,253,105,255,76,0,75,0,193,0,219,1, +183,2,81,3,101,3,117,3,32,5,180,7,135,9,88,10,52,10,13,10,164,10,252,10,232,10,170,11,121,13,255,14, +82,15,22,15,216,14,122,14,73,14,193,14,4,16,98,17,229,18,203,21,130,24,75,24,231,21,226,19,33,21,91,25, +247,26,139,24,26,23,235,24,223,27,158,28,193,27,236,29,120,33,24,33,242,30,157,30,88,30,147,27,47,22,165,16, +139,13,213,12,59,13,203,14,172,19,150,28,66,37,238,40,148,40,213,40,11,42,55,40,31,36,199,33,48,32,187,28, +203,23,145,20,163,22,147,26,9,25,243,18,246,15,94,20,194,26,114,25,7,20,160,24,190,38,104,44,239,30,118,11, +186,7,62,20,51,28,248,20,196,13,186,24,92,46,124,56,139,51,44,45,87,40,19,28,43,8,210,247,177,245,47,5, +242,27,87,38,70,30,70,15,138,5,143,5,106,7,116,1,3,253,196,6,208,24,175,38,21,40,47,32,191,31,68,39, +86,34,72,15,114,254,117,246,253,249,148,6,60,12,38,5,109,250,52,240,10,238,135,251,52,11,181,15,219,15,143,19, +2,25,49,25,225,17,177,12,23,13,105,8,91,251,177,238,2,232,93,229,231,229,220,237,42,252,246,7,53,11,242,5, +141,0,137,5,80,16,234,20,249,14,132,251,64,223,118,207,76,217,229,240,86,6,1,22,246,35,0,54,159,72,165,76, +190,62,37,44,226,27,30,13,162,253,137,234,120,219,60,219,151,232,10,0,144,24,224,32,2,27,156,23,164,23,188,19, +231,9,30,254,171,252,91,9,23,23,53,32,159,38,64,34,54,17,244,255,77,242,195,225,161,205,72,188,155,182,187,191, +152,207,67,223,183,239,160,0,133,14,142,22,93,21,218,8,146,244,181,222,231,202,101,189,180,185,231,187,226,192,224,201, +246,209,5,212,254,208,158,201,95,195,93,196,74,199,195,199,17,202,232,207,33,215,60,222,90,228,121,231,227,226,143,212, +198,194,18,183,147,179,182,179,245,183,224,192,188,198,153,200,14,205,245,209,10,211,105,209,117,206,34,205,228,207,199,212, +38,216,174,215,122,214,197,216,220,218,105,215,220,207,252,200,18,197,98,195,170,195,19,196,73,193,206,190,85,193,112,198, +174,205,49,216,5,226,52,234,137,241,70,242,134,233,34,222,248,215,148,216,99,218,144,215,250,208,138,201,24,197,252,201, +157,212,23,217,121,215,12,217,76,226,239,241,80,255,2,0,222,245,6,236,0,232,69,231,34,234,210,243,160,254,130,2, +8,1,37,254,22,253,181,255,57,0,108,251,70,247,20,247,175,250,213,0,89,2,208,251,124,245,13,246,12,251,27,255, +93,252,64,243,36,241,159,253,30,13,192,21,108,25,169,26,40,28,240,29,154,26,36,20,169,17,96,18,59,18,221,12, +46,0,220,245,44,246,171,251,74,3,21,13,37,19,8,22,212,25,189,25,148,20,50,16,29,14,62,15,167,22,235,34, +242,44,88,46,191,40,64,34,34,30,224,28,66,27,70,22,24,17,225,14,209,15,204,19,50,24,9,26,194,24,84,21, +149,18,87,18,193,19,16,20,37,16,92,11,113,13,94,23,9,36,44,47,149,55,32,60,21,57,129,46,78,34,192,25, +93,23,163,25,85,28,53,28,232,22,68,16,174,16,36,24,5,33,112,38,188,34,53,25,168,23,118,35,175,50,174,57, +185,54,98,47,194,41,223,41,2,46,99,48,123,46,68,40,51,31,155,24,58,24,144,26,70,25,235,19,120,16,49,18, +133,23,19,30,105,34,79,36,100,39,87,41,156,37,211,30,255,23,203,18,248,19,163,24,123,21,53,10,96,1,227,254, +39,0,10,4,206,8,148,12,149,17,158,25,142,33,213,37,173,35,48,25,235,11,184,4,121,4,5,7,1,8,9,3, +230,249,37,245,251,249,205,4,235,13,3,17,148,15,135,15,141,20,66,25,180,25,158,27,5,32,23,31,35,22,168,11, +132,7,227,9,187,11,24,7,95,252,49,245,181,248,32,254,88,254,113,255,148,3,184,6,59,7,15,5,55,2,147,0, +37,0,82,2,34,7,40,11,129,11,114,9,91,8,96,6,23,0,245,249,250,248,243,249,158,247,38,242,40,238,165,238, +63,243,154,249,52,252,0,247,52,238,254,234,153,241,225,251,71,1,131,0,150,253,152,254,173,5,75,10,187,5,248,253, +68,250,202,251,181,0,132,4,188,3,40,1,227,1,214,3,37,255,209,244,183,239,77,242,114,243,37,238,192,231,228,233, +23,248,229,8,126,16,36,14,101,8,220,4,28,4,248,3,134,5,13,6,214,254,251,246,187,249,160,0,221,1,102,254, +105,247,192,235,219,221,159,211,44,212,8,227,183,248,80,5,200,2,140,253,217,2,68,16,37,24,27,18,72,4,137,247, +17,237,75,230,29,231,145,237,230,240,107,236,143,232,182,238,205,251,145,8,9,14,242,6,98,250,208,241,216,234,83,228, +119,226,30,229,75,235,88,241,136,240,89,236,187,234,31,233,184,234,108,245,204,3,83,14,213,16,185,12,98,12,112,16, +225,13,133,5,253,253,234,245,150,236,68,228,190,222,185,222,5,229,138,238,82,247,38,252,52,250,159,244,36,245,90,252, +65,2,62,6,172,7,173,2,89,251,201,245,19,243,163,245,96,247,15,241,89,231,162,224,87,224,41,232,155,243,85,252, +204,254,90,250,244,242,97,238,168,240,250,248,147,255,101,254,165,248,167,244,151,244,3,246,16,246,97,244,96,240,52,235, +183,236,181,248,238,3,138,3,10,252,25,245,98,240,93,240,2,245,15,247,217,243,48,240,65,236,239,230,235,229,200,235, +94,243,23,247,78,244,121,239,26,239,161,239,96,236,71,233,135,233,204,235,46,238,233,241,85,251,95,7,188,12,68,8, +150,252,91,242,240,242,176,248,119,250,68,251,22,252,142,249,230,246,253,245,68,244,150,242,208,241,169,241,117,243,101,244, +102,241,209,239,207,242,229,244,74,244,113,244,203,246,64,253,116,7,214,11,28,4,12,250,73,247,122,247,52,246,100,246, +131,249,205,253,49,0,227,253,222,247,25,242,36,240,72,241,181,242,127,246,161,254,65,7,104,10,66,4,130,252,219,255, +219,9,150,14,96,13,197,9,223,4,120,252,50,241,19,235,75,233,103,229,3,228,184,230,179,234,3,244,186,254,175,2, +80,4,207,7,78,11,67,16,84,23,107,28,74,28,232,23,24,18,221,12,250,8,54,4,196,252,105,246,53,245,53,250, +247,2,142,6,249,1,1,0,170,4,238,6,227,4,172,4,128,6,245,7,62,10,8,12,210,8,145,1,117,252,156,251, +176,250,145,246,110,243,93,247,48,0,179,5,121,5,245,3,157,4,111,8,3,14,202,16,196,15,245,15,12,18,202,16, +109,11,54,4,63,251,73,245,103,248,51,1,61,9,28,13,157,12,23,14,153,19,251,22,186,23,104,21,52,12,106,0, +89,247,39,245,136,254,11,10,148,11,11,6,158,255,85,255,180,9,190,21,167,26,36,22,62,8,173,252,6,254,82,3, +123,1,6,252,176,252,206,4,189,10,191,8,152,3,39,0,166,255,231,0,61,2,201,7,118,18,73,21,85,11,22,3, +22,3,33,5,192,8,223,14,134,22,221,30,202,32,83,25,83,14,152,2,181,251,182,254,227,3,12,6,83,7,38,6, +1,3,173,0,189,255,90,255,213,249,220,238,225,232,105,235,145,242,183,250,119,253,194,252,94,2,142,12,24,21,87,27, +233,27,198,22,118,18,132,15,65,11,206,5,149,255,200,252,25,1,86,8,254,12,147,12,32,9,157,9,136,15,69,22, +165,27,49,29,64,25,171,18,181,10,222,1,178,251,152,249,80,249,97,249,226,249,255,249,203,249,103,254,205,9,32,19, +230,20,58,19,35,13,59,1,52,249,4,250,20,255,59,8,23,18,216,21,153,24,49,28,29,23,244,9,71,252,80,242, +183,241,22,249,249,0,82,8,85,15,87,21,34,25,243,21,92,14,4,9,47,2,227,245,32,232,110,223,33,225,62,232, +197,234,103,234,69,238,112,250,233,13,93,25,111,14,81,248,182,236,226,242,101,2,122,12,200,9,35,2,108,3,133,16, +106,27,216,23,20,10,143,251,125,242,125,239,48,237,120,238,205,249,108,6,12,11,226,11,120,14,98,18,47,18,47,12, +125,6,75,3,210,3,226,9,2,12,129,5,168,1,208,4,85,8,229,7,190,1,240,246,58,237,171,235,93,244,173,1, +37,12,107,16,140,16,51,15,112,11,168,7,66,6,200,2,11,255,136,254,59,249,50,238,9,231,154,229,61,231,27,234, +188,236,52,239,96,239,22,239,207,242,70,245,210,244,73,247,182,247,11,243,229,242,225,249,201,2,230,9,29,11,14,8, +48,6,80,4,6,1,144,255,214,255,7,254,13,250,88,249,72,254,179,3,145,6,134,7,98,3,9,249,199,236,185,224, +68,215,156,213,61,218,72,222,245,226,133,238,185,253,96,7,69,9,219,7,179,6,230,3,171,252,96,244,168,238,175,237, +19,245,53,252,28,245,129,233,128,236,20,251,129,6,189,6,141,249,21,228,54,212,94,211,20,221,142,233,247,244,70,251, +207,252,47,255,187,2,255,2,23,255,197,251,90,254,185,4,126,8,149,8,172,8,146,10,220,9,85,2,209,249,31,247, +241,246,234,243,58,239,208,237,218,240,14,244,3,245,67,245,112,247,183,254,9,10,36,20,99,26,131,26,16,17,33,1, +148,243,28,235,30,227,142,220,125,219,119,219,180,219,245,227,23,241,51,249,246,250,84,250,71,0,62,16,184,27,32,26, +138,20,129,19,89,27,163,38,82,38,43,24,12,3,94,236,243,223,184,224,243,228,57,237,204,251,139,9,71,18,204,21, +82,23,19,26,63,24,122,16,229,11,0,12,43,12,89,14,155,20,151,25,250,24,111,22,11,19,84,9,219,251,235,243, +25,242,205,242,29,246,198,247,239,243,185,243,85,253,122,8,218,18,191,33,175,49,229,58,225,54,121,37,144,18,92,6, +104,255,110,252,143,250,183,250,148,0,116,3,196,250,114,235,23,220,204,210,58,213,135,225,255,241,148,0,72,8,237,9, +204,8,186,5,154,3,130,8,234,18,162,24,174,22,195,17,35,10,132,0,114,250,7,248,128,242,54,232,164,223,90,220, +38,221,58,227,99,237,166,246,187,252,8,254,32,253,134,0,149,4,206,2,103,0,96,2,44,5,138,4,155,254,237,244, +197,236,127,233,35,233,13,232,186,230,137,233,156,240,215,245,70,247,113,250,69,3,108,16,137,27,148,28,85,21,136,14, +40,10,179,4,4,251,103,240,187,237,23,238,148,228,28,215,6,210,104,213,163,223,28,239,222,253,112,6,99,6,51,1, +224,252,159,251,128,0,155,10,219,13,198,3,190,244,255,233,249,231,119,238,97,244,96,242,102,240,20,248,6,3,197,5, +151,0,167,251,49,252,50,1,97,4,219,255,239,246,7,243,195,245,223,249,242,253,151,255,208,248,107,236,28,228,138,228, +62,239,68,2,214,18,194,23,32,19,225,10,67,5,26,9,130,17,210,16,13,9,204,5,146,4,161,255,153,249,0,245, +224,247,49,6,209,19,207,21,161,15,34,6,165,252,103,246,47,245,211,253,202,16,72,35,68,44,163,43,98,36,134,25, +110,12,244,252,169,237,214,227,115,226,250,232,207,243,232,250,125,249,17,246,18,249,18,2,20,9,36,7,83,1,127,2, +80,9,13,12,64,8,153,3,38,5,170,15,71,29,203,35,232,32,229,25,53,15,167,255,97,240,235,229,22,226,65,231, +224,245,76,10,210,25,21,28,164,23,205,18,47,12,253,7,122,8,87,9,23,11,239,12,174,10,170,5,154,255,219,250, +122,254,112,9,247,15,244,11,117,4,13,5,222,13,81,17,89,10,10,4,38,5,130,12,177,24,52,34,77,35,171,31, +112,22,162,6,180,249,224,244,181,245,26,250,7,254,130,0,104,5,119,12,51,19,150,21,163,12,71,252,236,243,7,249, +252,4,116,17,104,24,219,24,206,25,98,26,40,19,131,7,162,255,27,253,197,252,180,250,114,247,15,245,98,242,234,240, +254,243,89,252,166,9,223,23,202,30,163,24,111,11,55,6,34,11,148,15,59,16,149,12,255,2,173,246,253,234,244,229, +223,234,94,241,135,246,49,253,6,2,213,8,130,23,172,37,106,40,104,29,126,13,206,7,170,14,203,20,82,14,153,253, +127,239,96,233,140,233,42,243,62,2,41,10,121,10,156,10,251,8,70,3,69,1,155,7,228,14,70,17,69,14,162,5, +50,253,9,249,132,242,149,233,25,231,110,234,158,236,231,235,203,233,36,233,164,238,213,251,8,11,10,21,243,22,195,16, +219,5,138,251,143,243,106,236,84,228,80,222,69,224,192,229,172,231,18,234,73,238,217,240,127,244,228,250,175,4,188,15, +235,15,195,4,86,253,190,254,247,6,237,16,216,16,165,7,161,2,215,4,196,4,81,249,148,232,19,224,60,225,196,232, +173,241,181,244,190,248,245,1,64,4,144,2,140,8,145,14,62,11,177,0,38,245,172,240,84,245,178,252,177,254,29,247, +150,235,90,229,165,230,159,236,176,242,248,246,57,252,54,2,29,5,175,0,154,243,232,233,35,240,167,251,42,254,115,251, +151,248,229,245,109,243,176,238,63,239,230,250,171,253,134,237,238,221,179,217,175,224,236,241,48,1,252,8,230,16,61,26, +214,31,178,25,186,8,253,250,34,243,52,238,70,240,205,242,146,240,29,240,181,241,5,245,166,247,211,240,150,232,226,234, +157,240,67,243,18,239,185,223,126,214,35,230,100,255,65,14,156,22,11,28,195,26,59,21,117,12,19,2,179,252,149,249, +138,242,80,233,108,227,95,233,196,249,1,8,235,16,254,18,121,9,129,251,100,243,1,245,220,250,254,248,29,244,86,247, +175,253,220,5,212,19,240,32,135,35,71,22,10,4,166,254,97,255,205,250,56,249,249,253,40,1,219,254,233,249,245,249, +200,1,60,11,84,13,135,2,207,242,101,236,71,241,92,249,178,252,205,251,72,254,56,4,53,9,6,13,82,12,146,5, +176,254,158,248,45,241,51,239,195,248,127,4,219,6,9,5,19,8,169,13,242,18,137,24,142,28,188,29,58,27,18,21, +150,13,69,3,141,247,208,241,104,238,198,231,146,230,247,236,85,242,163,246,25,252,12,0,215,0,60,254,179,251,226,251, +125,253,138,3,31,11,5,9,112,2,143,6,26,19,7,27,44,27,109,23,240,13,208,254,18,242,12,234,201,230,186,233, +227,235,90,235,106,236,8,236,143,236,235,239,43,240,90,243,253,252,33,3,17,6,168,10,160,14,161,15,171,14,3,18, +6,24,46,23,209,17,47,11,188,2,55,251,153,238,208,221,198,214,13,216,248,220,140,233,234,249,137,9,96,22,169,27, +31,25,15,18,152,13,154,15,19,16,247,11,44,5,253,247,101,234,226,232,63,242,91,251,57,0,205,8,202,22,179,31, +116,31,249,24,79,16,182,10,156,7,188,6,248,10,28,16,157,15,238,4,184,241,61,228,177,228,244,234,153,239,61,242, +67,242,221,235,22,227,221,228,133,240,155,253,139,12,140,24,32,30,64,36,252,38,146,31,106,19,172,5,214,249,184,244, +202,238,39,226,94,215,87,215,165,227,16,248,65,11,64,22,161,25,250,22,230,15,91,11,116,13,255,19,161,29,19,34, +66,25,32,16,32,17,136,17,234,12,224,6,31,254,145,248,62,249,141,246,114,241,148,242,44,249,205,2,5,10,165,8, +3,8,173,16,133,26,152,31,165,30,207,20,55,9,149,2,184,248,12,233,39,222,159,221,166,230,205,244,3,254,45,254, +78,251,197,251,12,3,92,13,194,15,33,8,176,2,39,9,8,21,71,26,146,24,194,21,55,20,224,20,254,20,249,16, +243,8,70,253,97,243,245,239,133,235,32,227,157,222,122,225,49,233,148,240,140,247,108,2,6,14,216,25,73,39,151,46, +82,48,40,47,235,36,153,24,163,19,92,20,89,26,67,29,126,20,130,3,184,236,189,218,136,215,71,216,81,218,136,230, +9,249,77,9,227,16,233,16,247,16,145,18,152,27,249,43,33,49,61,41,8,32,153,18,148,2,68,248,174,241,107,237, +88,237,7,236,9,227,55,217,30,219,233,230,166,240,44,240,202,233,233,236,27,250,13,5,147,14,252,23,146,30,87,34, +122,26,216,9,128,1,205,253,109,247,247,243,178,242,188,243,189,249,100,255,8,255,123,245,245,230,141,223,146,229,178,248, +64,16,253,29,187,30,218,21,15,9,170,4,216,11,193,21,227,24,138,12,97,244,107,225,88,218,124,214,227,209,51,214, +202,230,54,245,241,247,125,242,184,234,243,236,128,251,189,0,67,247,121,245,122,1,163,14,185,22,239,19,111,3,48,244, +83,246,140,4,18,15,112,16,43,12,183,7,4,10,116,17,169,18,239,8,83,250,87,243,238,248,83,252,223,247,159,247, +41,250,189,253,206,7,15,12,113,5,19,3,141,7,166,13,240,18,29,16,128,3,171,246,1,246,247,2,15,18,140,26, +202,18,218,248,212,228,255,226,179,229,238,232,122,235,68,233,165,232,151,236,9,244,215,251,32,252,214,252,226,8,1,22, +164,26,65,21,152,6,218,252,82,0,157,3,4,4,27,12,172,17,85,8,109,252,34,246,121,244,142,253,66,10,62,14, +226,11,189,1,193,242,133,237,17,242,160,249,75,4,195,14,156,16,120,3,154,242,132,239,229,247,64,7,206,21,249,14, +108,248,169,229,80,212,243,199,99,202,138,216,133,239,47,6,21,17,101,19,251,14,188,4,231,254,214,0,74,6,198,10, +100,6,209,252,45,255,219,10,26,13,66,7,87,254,253,234,202,217,183,218,248,226,132,236,233,245,116,244,225,242,89,255, +175,11,196,11,134,2,79,247,2,245,120,248,142,245,80,241,216,242,214,242,111,237,97,230,206,225,127,232,22,251,77,10, +114,18,166,27,46,33,31,31,45,27,33,23,186,20,161,17,202,7,66,253,170,244,173,230,224,213,49,199,93,191,88,200, +85,220,144,236,186,249,106,6,233,13,13,17,87,22,158,32,128,42,157,44,49,39,136,33,250,32,78,28,148,5,27,231, +81,214,217,211,26,215,11,220,208,222,187,224,236,227,127,231,181,239,197,252,113,7,50,13,228,14,155,16,199,21,51,25, +147,27,218,33,8,36,94,27,171,10,229,246,166,233,65,230,111,228,51,224,75,222,83,229,188,241,83,247,169,246,235,246, +86,247,61,250,57,3,229,15,50,29,17,39,21,42,15,36,188,21,68,9,109,4,206,0,152,250,230,241,115,232,69,225, +21,220,248,220,82,231,111,241,102,246,235,254,153,13,140,26,197,32,57,34,157,33,101,32,10,30,95,24,2,20,75,21, +36,18,238,1,36,238,225,230,162,239,223,252,97,6,136,9,219,3,144,1,77,13,3,27,58,35,11,39,215,33,45,24, +110,17,74,12,109,10,201,12,196,13,239,6,109,249,48,240,242,235,32,229,24,225,243,225,138,227,106,237,89,255,229,10, +236,10,15,5,175,1,69,5,97,11,152,16,5,21,251,21,218,18,235,13,86,7,39,255,34,246,172,237,185,231,168,225, +248,217,142,213,5,211,139,211,107,227,215,250,142,8,170,20,63,33,205,34,111,32,191,31,29,29,17,29,95,29,237,25, +72,22,42,16,65,9,184,6,6,4,123,254,244,245,186,235,230,231,39,235,33,240,21,246,226,248,70,247,59,248,234,251, +40,254,141,2,224,10,210,15,224,14,121,13,4,13,253,12,154,13,78,13,220,12,53,10,116,2,146,251,29,248,47,246, +30,249,254,254,33,4,134,9,194,10,151,6,252,4,45,10,15,19,249,22,207,16,254,8,62,9,192,14,238,15,216,11, +225,10,54,14,185,18,253,23,246,20,223,6,80,253,136,250,237,242,73,235,155,235,178,239,104,244,231,244,76,236,246,229, +17,238,203,254,81,13,67,19,170,16,68,12,81,9,91,8,209,9,101,8,85,3,194,255,235,252,179,250,115,249,86,247, +95,249,72,254,55,252,108,246,39,242,55,237,176,236,213,242,251,248,23,254,185,2,228,4,136,4,209,1,156,0,126,2, +55,255,32,245,169,235,199,229,250,230,138,240,108,250,168,1,37,9,187,13,28,14,221,15,94,20,151,20,145,12,11,5, +252,4,124,4,187,253,122,245,167,239,128,240,135,248,111,251,163,243,75,237,51,239,236,243,133,248,182,251,149,249,225,245, +119,250,150,3,58,5,105,2,85,3,56,5,218,4,159,2,65,255,64,254,14,1,182,4,235,3,112,250,51,238,183,231, +20,228,248,222,23,220,120,223,85,231,172,239,148,248,102,1,176,3,176,254,46,249,183,244,207,242,40,248,149,253,97,253, +218,2,149,12,29,13,218,9,98,7,138,255,230,245,23,239,200,238,157,246,162,251,171,252,1,2,241,9,53,21,121,29, +150,22,228,10,23,4,25,253,106,248,250,247,242,251,4,9,202,23,185,26,16,16,244,0,73,249,113,249,147,248,182,246, +6,246,114,241,48,236,146,237,231,239,184,241,210,249,254,1,204,3,141,1,15,253,121,255,2,11,133,18,252,17,85,11, +57,3,24,2,251,255,252,246,174,242,100,245,137,248,143,246,192,239,12,239,186,245,238,254,235,9,116,10,242,0,195,1, +230,10,101,15,180,17,28,19,91,18,61,18,156,15,142,4,76,245,232,234,24,231,224,230,233,230,69,231,59,237,254,245, +20,252,179,3,166,10,79,13,35,16,144,12,212,255,164,250,137,2,11,11,168,11,47,4,77,249,218,243,47,250,116,7, +61,20,54,29,41,27,54,15,68,3,170,246,57,239,131,248,206,6,229,11,215,8,116,255,122,249,239,2,166,17,246,18, +114,7,138,250,76,240,229,235,148,240,51,251,17,13,92,36,144,49,120,44,57,25,141,2,2,249,227,252,132,255,28,253, +177,248,92,243,73,239,222,238,167,244,254,255,92,13,30,26,224,30,46,19,99,254,87,242,77,240,158,236,38,232,93,231, +144,234,244,247,38,9,182,11,104,0,187,242,89,230,250,220,136,218,227,225,135,239,159,2,43,28,46,45,55,47,32,47, +213,41,238,27,218,16,204,6,62,252,163,246,75,238,56,227,10,226,6,235,160,243,24,244,17,242,178,243,96,240,157,235, +65,244,159,4,140,16,175,19,188,13,214,9,65,15,238,20,199,19,235,14,163,12,126,10,221,254,225,237,220,228,141,230, +94,238,1,246,88,247,151,243,255,241,70,245,202,251,149,6,58,17,220,21,203,24,217,18,104,250,240,226,49,221,194,230, +178,252,117,15,108,18,174,12,99,3,44,254,79,1,239,3,23,7,205,11,172,13,79,15,14,10,11,254,217,250,169,2, +15,16,234,20,67,6,179,249,19,251,154,254,113,1,212,252,70,242,218,238,181,239,209,245,108,0,221,4,110,8,141,10, +121,6,178,3,101,254,6,250,191,254,45,2,165,3,195,3,92,3,36,16,17,29,65,27,52,19,204,1,73,241,85,239, +54,237,224,233,177,231,69,225,197,228,1,243,159,255,157,7,18,5,211,0,92,3,34,5,61,13,191,26,71,35,80,45, +196,45,137,25,252,7,182,6,162,13,229,17,45,9,169,250,233,241,204,235,150,233,116,238,243,245,77,2,40,18,207,22, +127,13,88,1,181,248,240,248,79,1,7,7,113,8,123,9,118,9,18,11,0,13,219,7,188,253,154,248,45,250,13,250, +154,248,111,251,59,251,179,247,62,249,153,251,116,0,35,12,104,18,57,13,197,2,228,253,52,8,103,21,131,23,193,20, +52,16,172,9,98,5,88,5,221,10,125,12,142,1,11,247,121,243,146,239,219,239,8,247,160,251,51,250,92,246,27,244, +189,245,3,248,26,248,67,245,45,236,248,224,136,218,20,214,145,218,215,241,49,10,192,16,184,8,66,248,219,230,106,221, +208,224,254,240,246,255,162,4,51,7,127,8,198,8,3,12,217,8,193,255,105,252,210,250,200,250,64,3,188,10,53,11, +190,11,8,7,146,248,147,240,126,243,72,242,32,238,212,239,91,243,73,247,100,252,163,254,120,253,15,252,27,254,40,1, +113,255,221,251,43,247,0,240,67,237,42,237,97,232,16,227,223,225,73,230,67,240,32,248,135,246,32,238,154,233,185,238, +58,248,62,3,85,15,67,23,92,24,209,17,235,5,97,254,178,255,81,4,167,4,149,255,211,254,140,5,126,8,248,3, +27,255,122,252,58,250,108,248,109,249,251,252,161,255,205,2,237,8,194,11,185,6,252,255,15,252,159,248,165,245,157,243, +102,239,80,235,40,238,215,244,12,247,0,246,146,245,206,244,121,245,138,248,63,251,224,255,120,6,1,10,113,13,15,19, +146,22,251,24,147,24,4,18,145,14,126,17,15,17,28,12,77,5,252,251,141,244,126,240,86,237,214,237,99,242,109,246, +111,247,106,245,53,243,147,243,232,246,2,253,158,1,253,2,91,8,209,17,22,23,75,24,209,24,8,25,110,25,44,21, +170,8,80,251,213,243,73,242,139,247,231,3,2,16,49,17,183,9,90,6,181,9,208,13,240,14,200,11,216,8,86,9, +205,9,108,12,207,18,119,21,255,17,52,11,196,2,42,254,17,0,7,3,150,2,165,0,229,0,25,1,160,254,57,0, +196,8,137,15,10,18,168,20,120,19,211,10,39,2,132,253,187,247,154,242,39,245,137,252,52,4,171,11,183,12,119,5, +106,255,228,255,84,6,34,13,21,10,219,2,37,6,146,16,100,24,132,27,154,25,86,20,36,15,61,14,146,15,238,9, +71,2,45,1,173,254,171,250,254,252,121,2,2,10,86,16,156,12,60,5,187,4,138,9,58,15,244,17,88,17,145,16, +139,14,26,10,102,6,25,6,68,9,212,12,217,12,60,11,57,12,93,11,99,3,241,249,158,244,114,244,146,250,244,0, +58,0,250,249,17,242,187,237,186,241,47,250,54,0,152,2,38,4,81,5,52,5,188,5,4,8,181,14,176,24,221,24, +255,13,3,4,146,250,129,241,209,235,52,230,94,228,164,230,40,232,117,238,241,247,36,253,227,253,123,248,225,243,204,249, +128,4,143,14,60,20,88,13,222,252,156,241,82,244,15,251,90,249,186,241,73,230,232,217,203,215,130,224,108,235,216,243, +202,250,139,3,83,8,6,5,12,2,207,3,112,9,192,16,17,19,156,13,50,6,38,4,63,2,205,248,250,240,4,237, +99,230,253,227,184,229,190,230,3,235,55,237,240,234,144,235,96,238,223,241,166,248,100,3,191,11,6,12,240,13,122,19, +172,18,132,16,86,17,18,18,58,16,188,4,81,247,189,242,154,238,43,233,247,228,182,223,86,222,252,223,33,227,111,236, +88,245,208,247,215,248,254,252,175,4,248,12,164,19,106,22,117,21,50,21,162,16,23,5,209,252,107,248,78,242,163,234, +234,225,104,220,20,221,249,225,184,233,53,241,253,245,209,245,35,243,229,247,203,0,25,5,240,8,65,11,107,8,80,5, +86,2,179,253,251,249,74,252,26,7,35,15,178,7,200,245,240,229,57,221,39,219,115,224,232,234,187,244,247,251,255,254, +32,254,235,250,199,242,196,238,52,247,14,254,62,252,198,248,45,249,167,3,84,14,142,10,242,255,184,246,68,240,94,237, +33,232,187,227,205,231,238,236,73,236,140,235,188,241,174,251,88,1,69,2,155,0,253,253,2,253,29,254,153,2,108,5, +98,254,80,245,160,244,63,249,40,255,89,7,23,16,187,19,153,17,219,10,246,0,101,250,133,244,31,241,230,246,221,244, +118,255,75,63,102,113,190,75,40,3,123,216,86,205,143,204,117,193,144,177,58,174,60,191,224,225,130,250,115,253,205,8, +80,47,168,95,0,120,124,114,244,108,66,107,55,93,71,74,162,60,194,52,137,42,101,19,36,249,146,229,235,210,254,201, +58,220,194,253,248,15,104,17,84,23,183,34,149,41,37,43,253,42,76,44,230,38,209,20,133,2,212,248,57,248,119,253, +51,254,130,250,147,248,216,244,103,237,155,230,10,231,94,241,25,0,26,15,63,27,178,32,210,31,68,26,111,19,207,8, +120,245,93,232,72,238,193,249,77,253,215,248,120,242,3,241,220,242,129,243,44,244,161,246,17,248,221,246,84,249,37,255, +107,255,187,253,1,254,67,250,200,244,40,243,78,247,189,0,173,7,18,9,205,8,156,8,103,12,41,18,18,19,183,18, +4,19,104,13,203,2,184,250,162,244,88,236,216,232,183,239,58,249,85,255,100,253,161,240,17,228,197,223,21,225,229,230, +70,238,107,244,29,248,196,247,38,250,6,3,66,10,143,12,186,11,19,8,182,1,167,246,29,236,175,236,19,245,91,252, +79,3,193,9,123,9,254,255,48,243,146,235,64,232,146,228,239,228,220,234,231,243,157,2,51,15,16,16,169,10,183,1, +94,249,107,250,116,253,71,252,206,251,142,249,91,245,64,245,210,250,255,1,247,2,245,0,192,3,2,4,250,253,178,249, +240,249,251,249,80,243,165,233,52,232,153,240,9,253,14,3,87,252,145,242,225,236,111,233,180,233,20,240,200,253,206,11, +99,15,15,13,88,11,91,6,40,253,108,243,30,237,242,235,169,239,112,246,134,248,166,246,129,250,233,255,24,2,243,5, +144,9,245,11,67,16,218,19,85,20,3,17,24,12,41,11,204,13,240,15,82,13,193,3,156,250,255,247,129,247,217,245, +204,245,111,249,189,253,159,255,147,255,151,253,153,252,148,255,22,1,122,254,166,251,151,249,195,249,86,253,164,2,197,9, +68,15,197,12,240,5,116,4,182,7,37,7,63,2,103,253,208,246,104,239,0,238,40,243,29,250,115,0,210,4,150,6, +17,8,143,10,35,12,44,13,98,14,30,14,41,13,169,10,198,5,35,4,75,5,126,2,204,250,133,240,62,235,94,239, +34,243,248,243,38,249,58,1,233,9,181,18,213,24,154,29,16,32,147,28,20,23,34,22,166,25,164,26,196,21,86,15, +37,9,239,4,48,6,99,9,15,11,230,9,167,2,102,249,1,244,109,240,97,238,126,241,91,250,204,4,96,11,18,14, +147,15,50,15,71,10,228,0,123,251,13,1,177,9,59,14,255,18,177,23,74,22,26,16,222,10,141,7,95,3,99,254, +230,251,9,253,36,0,119,3,27,6,200,8,218,11,208,11,36,6,243,255,198,253,102,251,216,245,31,242,48,245,122,254, +53,9,203,16,27,20,246,18,68,14,73,10,45,10,85,13,144,17,185,19,141,18,112,16,243,14,125,13,179,11,187,7, +149,254,141,241,106,230,24,226,255,228,17,235,158,241,55,250,198,2,28,5,161,1,39,254,39,254,153,2,1,9,133,12, +154,12,202,12,61,15,250,17,208,17,40,16,117,14,192,9,29,4,54,3,229,5,209,8,24,10,243,7,46,4,111,1, +220,255,128,253,126,246,122,237,39,235,119,240,152,248,76,0,193,4,151,6,74,8,235,7,224,2,151,251,9,247,53,246, +8,248,11,254,141,4,162,3,108,253,227,248,162,246,234,245,128,246,115,247,136,250,6,0,208,2,152,1,112,2,21,7, +16,10,134,9,187,7,128,4,40,255,247,249,50,248,25,249,108,249,83,251,229,0,230,4,183,5,67,6,126,2,143,248, +41,241,196,240,97,243,237,247,83,254,52,1,39,253,217,246,18,244,238,244,154,247,156,250,16,250,169,245,121,243,103,245, +12,249,20,254,89,2,92,3,44,2,82,255,236,250,77,247,237,247,124,253,48,3,182,7,216,13,156,15,5,9,183,4, +123,7,112,7,96,0,4,250,139,249,115,250,201,248,112,248,79,250,26,249,109,246,101,247,3,249,56,249,64,250,11,250, +251,249,250,254,128,3,82,1,21,253,76,252,120,255,193,3,111,6,234,6,184,3,203,254,37,251,144,244,58,236,89,234, +179,237,74,242,13,248,35,251,38,250,197,248,94,246,127,241,65,238,36,239,241,240,245,240,117,239,228,239,249,246,214,255, +124,0,133,250,172,244,146,239,254,233,25,230,242,232,181,239,134,240,145,237,215,238,253,241,255,242,206,243,249,246,5,249, +254,245,109,245,140,252,33,3,28,4,145,0,89,250,181,245,80,243,1,243,49,247,250,251,171,249,130,238,196,226,217,225, +101,235,68,247,17,1,142,6,77,7,63,4,209,255,116,254,64,255,94,255,2,1,66,5,185,10,184,13,63,10,24,4, +159,255,162,251,230,248,239,247,97,247,88,247,65,247,142,250,67,6,21,19,148,22,121,20,28,20,235,19,215,16,166,11, +16,7,195,4,19,1,170,250,12,247,157,245,222,242,186,243,231,250,20,3,83,6,231,2,141,253,140,250,157,248,81,247, +86,248,138,251,247,253,198,254,18,2,141,7,87,10,132,9,119,5,5,0,168,252,118,252,150,0,203,6,139,9,28,9, +89,8,196,8,144,9,128,6,234,255,244,249,182,247,238,250,144,254,48,255,108,255,162,252,105,247,16,246,17,249,218,255, +174,7,255,12,50,17,179,16,12,12,237,11,36,12,30,7,217,2,135,2,184,5,88,7,185,1,153,251,236,249,207,248, +5,249,138,251,8,254,117,0,60,4,224,10,70,16,58,12,42,1,60,250,175,251,231,0,82,4,188,3,203,1,211,2, +39,5,244,3,80,0,168,252,249,246,108,240,31,241,31,250,221,254,43,251,217,249,238,253,167,2,217,5,109,5,177,6, +158,15,116,23,192,22,116,17,152,10,91,2,143,250,180,247,246,251,204,1,196,2,196,254,164,251,165,253,194,0,40,1, +150,255,252,253,132,0,8,5,33,6,212,8,54,14,206,14,220,11,74,10,82,10,210,10,176,10,128,9,6,4,120,251, +17,249,0,251,81,250,131,250,177,250,68,248,142,249,188,254,9,3,195,6,52,9,91,9,13,8,66,6,228,6,232,9, +12,11,14,9,11,6,64,4,104,2,61,252,245,244,38,245,131,250,156,250,135,244,124,241,121,245,164,250,186,253,155,2, +212,8,41,10,131,7,40,8,220,10,122,8,223,3,25,3,210,1,163,253,177,251,203,250,248,248,189,251,126,2,221,4, +177,1,254,254,31,254,82,252,114,252,220,1,30,7,190,6,155,2,168,255,46,0,241,255,18,253,120,252,109,253,52,253, +67,254,196,254,99,252,148,249,15,247,115,248,53,1,92,10,186,13,252,12,122,9,235,3,84,254,0,251,20,252,6,1, +233,6,23,10,25,8,232,3,133,1,195,255,13,253,124,248,46,241,202,235,46,237,74,244,165,255,157,10,193,14,208,15, +80,18,40,16,2,5,138,244,57,230,72,227,196,238,232,255,191,8,156,5,47,2,178,5,47,11,27,16,12,17,195,8, +204,254,253,250,40,248,112,246,62,253,215,8,132,14,42,12,74,8,50,7,137,5,102,0,229,251,25,251,68,251,168,249, +177,245,229,240,93,239,2,244,104,253,105,6,225,10,4,11,28,7,81,1,110,1,16,10,37,21,253,29,101,34,61,34, +138,32,168,29,118,24,242,19,157,16,130,8,200,250,73,238,195,229,174,225,2,227,87,227,110,225,161,232,12,250,160,10, +70,19,137,18,73,15,72,17,212,19,189,16,205,7,167,249,10,237,204,235,11,245,188,255,252,6,152,10,188,10,140,10, +109,11,72,8,55,2,231,255,173,255,66,254,191,253,230,254,209,255,205,254,17,253,72,254,38,4,107,11,140,11,124,2, +7,252,123,255,187,6,183,10,10,11,47,12,213,12,161,7,143,1,195,255,81,255,127,0,187,2,213,4,41,11,182,18, +156,18,71,10,235,255,160,251,39,253,160,251,81,249,192,252,230,254,78,251,71,247,76,244,49,245,183,254,186,10,100,18, +222,22,247,20,180,10,168,0,1,252,166,250,235,250,48,249,14,242,140,232,178,227,238,230,193,237,183,243,161,249,248,253, +123,253,172,249,116,247,55,250,147,254,69,254,228,247,102,238,71,233,159,235,56,235,153,229,116,233,205,251,52,13,34,12, +64,252,247,247,139,10,254,28,24,27,216,11,20,2,109,9,171,23,83,21,71,0,232,237,190,233,40,238,229,243,244,246, +236,248,192,0,87,17,108,36,41,46,118,40,46,27,230,16,150,11,216,6,182,250,187,230,233,215,154,212,82,213,142,213, +151,213,127,214,254,220,173,232,242,240,122,244,102,251,63,8,157,22,51,36,55,46,58,47,122,39,49,28,225,15,114,3, +197,246,108,233,191,224,106,225,131,229,254,230,121,231,85,231,193,230,155,234,246,241,90,245,43,244,219,242,119,244,84,253, +150,12,171,23,234,23,148,18,131,16,174,18,30,17,136,8,139,254,250,246,104,243,186,243,75,243,135,242,99,245,87,248, +216,248,208,248,193,247,248,245,67,242,232,235,148,234,2,240,38,244,138,245,241,243,87,238,131,235,223,236,117,236,52,235, +244,235,20,238,245,240,88,244,155,248,32,251,161,249,111,248,188,248,235,248,167,252,165,2,77,4,157,0,22,250,114,245, +121,246,128,249,22,251,60,253,9,0,103,255,199,248,201,240,119,239,251,245,94,252,254,251,227,250,247,255,1,2,94,250, +152,244,111,248,124,255,169,2,241,1,231,3,38,12,52,21,47,26,127,27,199,26,103,26,80,27,211,26,210,23,188,21, +43,20,21,14,177,6,156,4,65,5,121,6,167,9,136,11,180,11,143,13,100,15,139,15,229,14,39,12,122,7,3,5, +169,7,100,12,232,13,206,11,228,8,99,7,170,8,169,10,44,10,29,8,123,7,15,10,87,14,62,16,65,15,199,13, +118,11,94,8,81,8,184,12,80,17,11,20,184,24,116,31,213,34,52,34,12,32,97,26,103,17,58,12,253,13,48,18, +52,21,252,19,187,12,225,5,74,3,133,255,26,251,159,250,167,251,72,251,179,248,182,245,21,246,88,246,59,244,172,243, +160,240,109,232,128,225,44,220,183,215,39,217,81,225,25,235,64,238,27,234,33,232,207,232,135,231,150,230,73,230,70,232, +146,237,100,238,39,236,157,239,82,245,209,246,28,242,40,232,88,224,129,224,242,230,153,237,38,241,154,247,136,1,201,5, +173,5,142,5,220,1,240,253,58,255,44,2,206,3,97,4,1,5,53,8,58,12,180,11,0,5,216,250,99,242,128,241, +231,248,115,0,142,0,72,253,100,254,56,3,251,7,62,11,45,8,81,251,178,238,63,239,103,250,253,4,118,9,156,8, +229,6,247,6,68,5,16,0,1,252,147,252,215,1,123,10,193,16,154,14,127,7,7,4,60,7,5,14,235,17,219,14, +163,9,170,8,97,10,26,10,125,7,98,5,243,4,152,5,200,7,28,11,34,14,236,16,118,18,194,17,248,16,32,16, +69,12,205,5,116,0,60,254,11,253,207,250,169,249,210,249,142,247,254,244,116,247,84,251,17,251,116,249,198,248,169,246, +18,245,234,249,144,7,174,25,107,38,153,38,83,28,120,15,87,6,65,0,200,249,236,244,209,244,123,248,21,253,16,254, +53,249,201,242,95,240,165,244,0,252,238,253,247,248,25,243,74,241,166,246,239,254,138,1,176,1,153,6,93,12,36,14, +199,12,175,8,106,2,194,252,90,252,126,2,101,9,79,14,249,18,177,19,39,14,9,7,209,1,204,255,111,0,127,1, +18,3,84,4,228,3,163,2,68,255,80,250,91,248,85,250,246,253,188,254,154,250,247,248,239,252,215,255,24,0,170,1, +199,8,166,20,218,26,11,24,80,21,130,21,92,20,96,15,87,9,117,10,211,18,0,23,148,16,234,5,117,2,14,7, +104,9,16,7,191,4,181,3,98,5,30,9,46,12,14,15,11,15,227,8,228,0,2,252,104,251,151,253,99,254,162,250, +70,243,13,239,70,244,223,253,230,2,56,2,120,254,37,251,107,250,9,249,114,245,14,244,80,245,92,243,95,237,208,234, +116,240,182,249,66,254,42,250,255,241,5,238,141,240,40,246,46,252,196,0,180,1,183,255,18,254,170,253,27,252,78,247, +69,241,49,239,57,241,58,242,132,243,138,250,217,2,189,2,208,250,92,245,164,248,178,255,82,1,248,251,215,246,251,245, +94,246,13,248,133,253,29,3,140,3,138,254,93,249,48,250,10,254,254,253,22,251,220,247,56,245,182,245,1,247,203,244, +49,241,180,240,205,244,126,249,108,250,32,250,97,250,199,248,12,246,139,243,165,242,154,246,190,252,44,0,62,3,135,8, +132,13,134,15,122,13,193,9,121,10,12,17,190,21,140,17,56,8,182,1,226,253,97,248,95,242,217,237,27,233,248,228, +103,228,237,230,38,234,125,237,222,242,2,250,206,253,50,253,235,252,80,252,40,246,28,236,67,231,4,236,201,242,156,243, +36,241,5,241,223,244,216,251,211,2,15,7,217,8,24,9,224,7,182,5,162,3,99,1,192,253,66,249,19,246,173,245, +246,246,164,246,233,243,125,241,137,240,221,239,134,240,243,245,197,254,133,4,182,6,126,10,82,15,176,16,6,15,188,14, +75,15,130,11,156,6,62,8,105,12,166,11,253,6,29,2,55,255,116,253,160,250,118,248,239,248,192,251,153,255,145,1, +186,2,171,5,82,7,109,6,105,4,70,0,219,250,215,243,232,234,142,230,180,231,24,231,58,229,217,229,201,230,50,231, +146,233,146,238,185,243,243,246,83,251,49,4,23,13,181,14,145,9,107,6,90,10,129,15,173,15,25,14,98,16,242,21, +6,26,169,26,132,26,189,27,83,30,114,34,53,39,186,42,15,44,230,43,161,44,51,45,86,40,7,30,39,19,171,10, +232,7,183,11,57,15,8,12,91,3,178,250,33,246,193,245,200,248,244,253,155,1,142,3,160,7,193,12,184,14,18,14, +160,14,227,17,189,20,75,18,79,11,152,6,225,6,142,7,24,5,8,0,176,250,26,250,185,0,62,8,163,10,237,10, +253,12,114,14,137,13,247,11,250,7,39,0,85,250,243,249,221,250,89,250,195,248,64,246,150,242,211,237,61,236,206,240, +242,243,162,240,37,238,20,240,135,241,225,240,149,239,80,238,186,238,165,241,31,245,131,246,100,245,160,243,43,242,130,242, +199,247,235,0,189,10,31,20,252,24,78,23,222,20,92,20,20,19,68,15,117,7,132,253,217,245,18,241,37,238,247,234, +163,229,214,225,36,227,48,232,88,237,212,238,168,240,246,251,194,14,250,29,66,35,247,32,117,28,147,22,23,16,199,12, +129,11,48,10,244,9,144,8,54,4,0,254,211,246,119,243,221,246,174,251,160,254,54,2,207,7,184,13,121,17,234,17, +33,14,111,7,126,3,115,2,148,254,211,250,148,253,201,2,197,3,20,1,155,254,245,254,145,0,67,255,197,252,198,254, +162,4,64,10,7,13,118,10,51,6,155,7,221,11,169,11,183,6,236,253,235,242,125,237,56,242,140,251,70,2,248,3, +229,1,175,255,48,0,10,2,107,1,191,252,73,247,105,245,26,247,159,249,245,250,149,250,199,249,132,248,30,246,16,244, +106,241,200,237,25,237,225,237,2,236,254,233,212,234,210,239,88,247,169,250,126,249,94,249,247,249,106,249,169,247,96,245, +157,245,104,249,5,255,161,3,100,4,153,3,157,1,185,250,184,244,160,245,114,247,106,246,155,244,222,241,89,238,115,235, +53,233,63,230,123,226,13,225,175,227,199,233,20,243,130,253,225,6,189,13,104,16,100,17,118,19,61,21,227,21,96,20, +58,18,9,21,87,26,210,26,49,23,41,19,25,16,15,14,89,12,186,11,25,12,58,13,11,17,185,21,71,25,229,29, +133,33,49,33,105,31,243,29,11,29,151,27,139,22,71,15,199,9,36,7,117,6,248,4,223,1,62,0,73,1,237,2, +85,1,83,251,199,245,104,242,104,238,205,235,34,236,205,235,233,232,78,229,105,227,43,226,38,224,201,225,5,233,129,241, +202,249,108,1,44,6,176,7,25,5,94,255,13,252,20,254,213,2,132,5,214,3,8,1,5,0,16,254,165,247,64,239, +149,234,65,234,243,235,221,238,206,240,33,242,203,245,31,248,156,244,231,238,22,237,74,239,50,238,4,232,74,230,164,235, +5,241,85,243,161,242,233,241,233,244,186,247,93,247,201,246,116,245,147,241,130,236,161,232,8,233,138,237,168,242,231,247, +147,254,49,7,137,17,123,27,134,35,159,40,166,39,72,34,227,32,53,38,99,43,112,41,216,32,191,23,220,16,102,10, +27,5,199,0,4,251,64,246,173,243,64,240,240,237,254,239,130,245,131,252,219,1,238,5,213,12,100,20,174,23,245,21, +87,16,234,9,45,5,136,1,164,254,209,252,248,252,83,255,105,1,70,2,140,2,121,2,164,3,112,5,53,7,142,13, +222,25,5,38,121,43,134,39,221,28,97,16,101,4,63,249,189,238,47,230,252,224,168,221,186,220,56,223,227,223,190,219, +117,216,113,218,46,223,252,226,251,229,101,233,241,235,231,236,37,238,62,240,69,240,49,236,13,231,127,228,17,229,74,233, +214,239,190,244,5,248,99,252,251,1,237,6,134,8,182,6,224,5,231,8,238,13,237,16,143,15,243,11,42,9,76,7, +130,5,95,3,39,1,216,255,98,254,148,250,93,245,203,241,74,241,51,241,113,237,92,232,210,231,179,234,109,237,225,240, +147,243,17,242,59,239,47,240,160,244,103,249,41,254,55,4,16,10,103,13,22,15,116,16,166,16,40,14,75,10,117,10, +219,17,131,28,45,35,226,33,47,29,71,29,210,33,3,37,248,37,85,38,16,38,33,36,85,32,95,29,38,28,136,24, +223,17,145,13,63,14,156,17,194,20,10,21,192,16,4,10,220,5,56,6,185,7,192,6,223,3,220,2,110,6,76,11, +242,10,239,5,104,2,40,1,243,255,237,255,6,1,217,0,19,255,42,252,3,248,37,244,209,242,225,242,59,241,64,239, +24,240,136,242,243,244,26,247,51,248,193,249,91,251,138,248,93,243,194,241,163,241,238,237,242,230,187,223,209,218,160,217, +218,219,218,223,91,228,103,232,64,235,216,238,245,243,191,245,198,242,219,240,160,242,152,245,218,247,231,248,240,248,216,247, +68,246,10,247,127,251,203,1,156,6,111,7,157,6,206,7,5,10,172,11,153,12,31,12,219,10,203,9,154,9,126,11, +132,14,180,16,74,17,250,15,64,15,130,17,76,20,225,20,190,18,18,15,148,13,247,14,70,15,255,12,136,10,50,10, +47,11,122,11,20,12,107,12,138,8,23,2,231,254,141,255,253,0,43,2,131,3,12,4,205,3,82,6,26,11,253,11, +230,8,229,7,143,10,205,13,64,15,134,14,166,12,190,11,148,13,2,17,164,18,108,16,188,10,54,3,125,252,180,250, +97,254,131,0,218,253,20,252,132,252,239,251,147,251,34,252,29,252,206,252,173,255,13,4,43,7,163,5,217,0,8,254, +216,254,78,0,137,0,161,0,30,0,12,254,199,252,75,252,77,249,254,244,125,243,139,245,208,248,131,251,61,254,26,1, +101,2,32,1,232,253,40,251,169,250,19,251,200,250,149,248,11,245,234,244,182,249,236,254,190,1,40,1,115,252,111,246, +145,243,50,245,175,247,253,246,47,244,248,241,94,241,34,243,79,246,160,247,118,244,64,239,172,237,158,238,38,237,205,235, +155,239,27,249,27,5,108,12,70,12,208,12,84,21,250,34,250,44,37,43,112,30,183,19,110,20,2,26,207,25,97,19, +179,13,37,15,241,19,119,14,153,251,240,232,85,225,255,226,208,229,119,228,8,226,33,228,62,235,55,244,74,251,25,254, +88,254,132,0,82,6,55,12,144,14,91,13,101,9,103,3,70,254,13,254,106,2,20,5,179,2,140,255,145,254,17,253, +170,249,30,247,85,246,150,244,32,243,105,247,177,1,56,12,48,17,123,13,148,2,157,246,212,240,100,242,103,243,26,238, +112,231,130,230,166,234,228,236,79,234,9,233,143,237,215,242,100,242,60,238,193,238,89,246,142,255,219,7,213,14,238,16, +147,13,113,8,182,3,173,254,231,247,155,241,146,239,64,240,132,241,209,245,5,253,186,2,159,4,215,3,66,3,162,4, +42,7,161,11,227,18,13,24,130,22,69,16,151,9,36,6,185,5,198,2,168,252,241,248,97,247,215,243,240,239,221,240, +80,248,165,1,249,6,31,9,95,12,49,15,70,13,125,9,219,9,97,12,171,11,255,8,19,8,125,8,183,7,21,4, +39,254,144,249,115,250,90,0,85,6,68,9,180,9,38,9,10,9,210,8,39,6,68,1,105,252,19,249,246,247,101,247, +81,245,249,243,110,246,132,251,62,0,207,2,157,2,43,0,185,253,13,254,148,0,149,2,58,5,140,10,210,14,42,14, +186,11,63,12,16,14,124,12,164,8,207,6,122,6,2,6,148,6,136,7,186,6,181,4,141,3,55,3,142,1,120,255, +5,0,222,0,230,254,220,253,95,0,74,2,12,1,210,254,169,252,148,250,128,250,184,252,222,254,195,255,180,255,25,0, +253,0,222,254,112,250,18,249,237,249,59,249,50,248,43,249,1,253,103,2,42,5,56,3,186,255,155,254,236,255,194,1, +186,3,71,5,167,5,91,5,142,3,86,0,89,254,253,252,200,250,77,250,62,252,131,253,73,253,73,253,176,253,101,253, +117,252,81,250,89,245,195,239,130,238,220,241,218,245,60,248,0,249,59,248,36,247,149,247,243,248,163,249,233,249,54,250, +69,250,35,251,68,254,170,1,73,2,246,1,243,2,10,3,174,1,209,0,239,0,116,2,251,3,118,3,23,3,32,4, +68,4,213,2,246,255,246,252,37,253,23,255,187,254,9,254,202,255,183,0,75,254,108,251,178,250,219,250,44,250,0,250, +63,252,134,254,208,253,197,251,223,250,197,250,40,250,116,249,136,250,39,252,64,252,117,253,38,0,55,0,139,253,130,250, +49,248,192,247,160,248,65,249,84,248,1,244,139,238,80,239,133,249,31,6,194,11,222,9,112,5,10,1,69,253,129,249, +25,246,90,246,197,250,52,255,5,0,120,254,100,255,99,2,100,2,65,255,115,251,60,249,184,251,40,1,110,5,39,8, +178,8,194,6,204,4,109,3,166,1,209,0,78,2,181,3,239,2,221,2,110,4,132,3,43,0,241,254,218,0,214,2, +174,1,1,253,51,247,119,243,52,244,227,247,213,250,203,252,15,254,185,252,71,249,186,246,223,246,19,249,202,249,213,246, +95,244,209,246,136,251,241,253,126,253,172,251,64,250,212,250,47,254,102,3,165,5,195,1,94,254,152,2,137,10,138,14, +8,13,122,9,39,7,205,5,213,3,135,1,55,0,230,0,6,3,124,4,76,5,36,7,16,8,195,4,73,255,104,252, +237,252,73,254,203,254,60,255,7,1,122,3,43,5,74,6,200,6,86,6,80,6,52,7,216,7,87,8,154,8,2,7, +246,3,247,1,232,1,250,2,1,5,53,8,66,11,163,12,12,13,137,13,161,14,196,16,178,17,70,15,25,12,15,11, +21,12,8,14,64,15,51,15,55,14,86,12,133,10,243,8,117,7,167,6,41,4,18,255,159,251,80,250,174,248,175,248, +133,252,219,1,79,4,196,2,52,0,139,254,164,254,210,0,129,2,219,2,1,4,48,6,59,8,42,8,129,5,173,3, +233,3,33,4,192,4,207,7,54,12,193,12,9,7,217,255,202,251,165,251,14,254,239,255,24,1,106,3,184,5,245,5, +12,3,174,254,44,253,213,254,209,1,141,5,50,7,194,5,16,4,246,2,13,2,241,0,62,255,43,254,52,254,19,255, +7,1,243,2,191,3,214,2,180,255,172,252,113,252,53,254,222,255,88,0,251,255,219,255,15,1,48,4,59,7,35,8, +159,8,52,9,125,7,171,4,30,4,150,5,169,7,210,9,111,10,246,8,23,6,47,1,21,253,75,255,157,5,246,8, +100,7,91,3,69,0,199,255,214,255,2,255,53,254,115,253,54,252,13,251,168,250,68,250,245,248,137,248,157,250,236,252, +93,253,52,252,23,249,139,244,188,241,163,241,182,241,143,242,240,246,234,251,253,252,28,252,44,253,209,255,19,1,164,0, +177,2,222,7,201,9,181,6,192,3,165,1,249,253,240,249,230,246,200,244,174,244,5,247,146,250,46,254,161,0,207,0, +6,255,145,252,72,250,123,248,234,247,88,249,188,251,101,252,8,250,167,246,6,245,189,245,191,247,70,249,9,249,240,247, +157,247,131,248,108,249,15,248,129,245,100,246,205,250,199,253,126,253,145,252,237,252,206,253,95,254,11,255,130,255,107,255, +100,255,108,255,24,0,113,2,210,4,87,5,232,4,180,4,165,4,114,4,185,3,89,2,117,1,74,2,251,3,80,5, +39,6,211,5,196,4,38,4,92,2,174,255,92,0,90,4,88,7,142,7,181,5,143,3,210,2,1,3,105,2,199,0, +105,0,43,3,240,6,3,9,249,8,198,6,28,4,134,3,237,4,15,8,0,12,19,13,135,10,61,7,75,5,26,6, +15,8,125,7,180,5,22,5,15,4,8,3,92,3,113,2,181,255,6,255,228,1,120,5,37,6,174,2,87,253,124,249, +117,248,46,249,249,249,40,250,132,249,38,248,60,247,62,247,182,247,6,249,89,250,161,249,1,247,199,243,106,241,111,241, +217,242,90,243,3,242,221,239,161,240,1,245,34,247,61,244,179,240,72,240,25,242,184,243,146,245,254,247,132,247,56,244, +232,242,157,244,162,247,223,249,218,248,73,246,203,245,3,248,237,251,174,254,78,254,201,252,90,252,88,254,243,1,14,3, +6,1,144,254,208,251,126,249,193,249,80,252,192,255,250,1,205,0,41,253,41,250,174,249,222,250,143,251,204,251,4,253, +74,254,137,253,127,251,41,251,134,252,118,252,7,251,28,251,232,252,26,254,232,252,204,249,80,247,47,247,64,249,83,252, +208,254,31,0,93,0,235,255,36,0,238,0,131,0,43,255,89,254,100,254,206,254,65,254,53,252,78,250,154,250,96,253, +58,0,44,1,146,1,130,2,167,2,210,1,192,1,35,3,228,4,60,6,8,7,194,6,29,6,224,5,104,4,227,1, +203,0,54,0,31,254,99,252,239,253,242,1,87,4,68,3,186,0,236,254,7,0,179,4,140,8,99,7,116,2,95,253, +90,251,214,252,103,254,95,254,68,255,97,2,226,5,109,8,58,10,206,10,138,8,144,4,94,3,222,5,112,8,226,9, +161,10,86,9,171,6,108,5,99,6,79,8,237,9,77,11,119,12,219,12,249,13,94,16,224,16,11,14,6,10,199,7, +51,8,221,7,8,5,79,3,19,4,126,5,195,6,31,7,110,6,1,5,123,2,179,255,191,253,11,253,227,253,17,255, +179,255,185,255,105,254,222,252,16,252,28,251,160,251,55,254,152,255,18,255,49,254,12,253,218,251,55,251,68,252,216,254, +142,255,116,253,30,251,250,248,251,246,151,246,22,248,202,250,255,252,176,252,26,251,230,250,82,252,216,253,181,253,23,252, +2,251,106,250,196,249,190,250,235,252,5,254,195,254,220,255,205,255,184,254,179,253,203,252,118,252,196,252,4,253,21,253, +32,252,223,249,161,248,59,249,197,249,232,249,134,250,208,250,3,250,204,249,103,252,15,1,189,4,39,6,149,6,146,7, +6,9,55,9,86,7,156,4,190,2,154,2,6,3,125,2,16,2,114,2,128,2,175,2,58,3,46,3,159,3,140,4, +141,3,148,1,91,2,239,5,53,8,27,7,87,5,204,4,87,4,221,3,11,4,183,4,240,5,77,7,32,8,178,8, +18,9,66,8,139,5,126,2,141,1,125,2,183,3,65,5,114,7,143,9,204,10,27,11,167,10,111,9,201,7,203,6, +31,8,140,11,111,13,12,12,255,9,238,8,130,7,65,4,118,1,60,3,236,6,165,6,145,3,29,2,193,3,41,6, +70,5,124,2,3,2,196,2,154,2,170,1,93,0,214,255,83,255,8,253,205,250,2,251,125,252,122,252,17,251,46,251, +127,252,150,252,192,252,202,254,115,1,223,2,72,2,74,0,86,254,134,253,83,253,161,252,137,252,130,253,38,253,114,251, +52,251,233,252,114,254,189,254,108,255,58,1,48,2,168,1,209,0,64,0,201,254,165,250,15,246,254,244,29,246,105,246, +44,246,54,246,15,246,155,245,30,246,253,247,218,249,83,251,14,252,96,251,192,250,50,251,51,252,90,253,70,253,199,251, +234,250,80,251,167,251,7,251,1,251,102,253,226,255,255,255,53,255,19,255,128,255,127,255,120,254,241,253,162,254,36,255, +102,255,20,0,126,0,59,0,60,0,219,0,251,0,138,0,48,0,217,254,165,252,144,251,198,250,233,248,235,247,99,248, +129,248,53,249,204,251,29,254,98,254,45,253,8,252,78,252,12,253,84,253,155,254,45,0,168,255,1,254,106,253,237,253, +127,254,249,254,35,0,238,1,168,3,188,4,118,4,59,3,79,2,63,2,187,2,152,2,231,1,251,1,147,1,86,255, +164,253,90,254,7,0,247,0,25,1,43,1,171,1,69,2,16,2,223,0,71,255,115,253,235,251,213,251,156,253,54,0, +149,1,216,1,98,2,116,1,163,254,42,253,2,254,129,0,146,3,206,4,251,4,222,5,10,6,240,5,89,7,15,9, +253,9,9,10,98,8,42,6,234,5,156,6,38,5,8,2,227,255,117,255,25,0,235,0,0,2,238,3,117,5,124,5, +26,5,151,5,185,6,114,6,207,3,16,1,244,255,231,255,216,255,119,255,20,255,45,254,136,252,22,251,234,249,101,249, +1,250,183,250,121,251,92,252,236,252,201,254,50,2,102,4,40,4,137,2,251,0,200,255,244,254,156,255,65,1,82,2, +135,2,89,1,113,255,152,254,115,254,0,254,35,253,49,252,145,251,205,250,192,249,229,248,170,248,76,249,248,248,13,247, +239,245,159,245,23,246,237,248,231,251,230,252,85,252,15,250,142,248,245,249,126,251,132,251,16,251,178,250,254,249,9,248, +209,246,200,248,28,251,132,251,2,252,191,252,218,251,14,250,245,249,239,251,187,253,229,254,7,1,87,3,130,3,18,1, +91,253,162,250,120,250,249,251,19,253,232,252,114,252,89,252,69,251,118,249,13,250,106,253,47,0,238,0,218,1,141,4, +176,6,174,5,133,3,148,2,112,1,134,255,46,255,12,1,178,2,163,2,144,1,24,0,150,255,193,1,184,4,179,5, +135,5,81,5,203,4,166,4,118,5,154,6,122,7,2,8,106,8,28,9,21,10,27,10,19,8,111,5,92,4,100,4, +168,4,75,6,90,8,150,7,16,5,102,4,37,5,64,5,37,4,39,2,169,0,225,255,93,255,118,0,128,2,42,3, +19,3,72,3,148,3,81,4,137,5,85,6,233,5,13,5,63,5,117,5,201,3,168,0,220,253,12,253,177,253,163,253, +35,253,203,253,213,254,99,254,192,252,204,251,223,251,50,252,160,252,218,252,43,253,58,254,37,255,99,255,2,255,131,253, +22,252,77,252,156,253,74,255,216,0,249,0,32,255,22,253,0,253,36,254,156,254,83,254,36,254,27,255,242,0,158,1, +255,0,103,0,186,255,243,254,29,254,195,252,156,251,171,251,40,253,87,255,138,0,75,0,91,255,226,253,130,252,247,251, +239,251,107,252,242,252,91,252,94,251,22,251,24,251,206,251,139,253,210,254,103,255,78,0,245,0,88,0,121,254,123,252, +150,252,19,255,195,1,208,3,146,5,101,6,183,5,214,3,221,1,210,0,27,0,119,255,251,255,97,1,187,2,206,3, +213,3,246,2,227,1,34,0,45,255,232,0,71,3,116,4,15,5,18,5,77,4,147,2,242,255,108,254,223,254,58,255, +169,254,124,254,15,255,45,255,26,254,186,252,60,252,207,252,31,254,47,0,208,2,199,4,39,5,120,4,212,3,20,4, +177,4,156,4,27,4,6,3,166,0,254,253,163,252,250,252,105,253,76,252,48,251,185,250,31,249,127,247,6,247,164,246, +132,247,92,250,127,252,6,252,65,250,90,250,166,252,48,254,117,254,196,254,128,255,125,1,25,4,73,5,59,5,188,4, +129,3,26,2,86,1,93,0,82,254,166,252,9,253,254,254,54,1,57,3,29,5,21,6,28,5,173,3,93,3,251,2, +226,1,219,0,168,0,44,2,25,4,246,3,178,2,125,2,173,2,212,1,181,0,151,0,248,0,232,1,247,4,23,10, +67,15,129,17,154,14,186,8,209,3,129,0,241,253,116,252,73,253,117,0,14,3,253,2,41,1,106,254,146,252,34,254, +99,1,203,2,30,2,206,0,156,255,62,254,112,252,148,251,72,252,237,252,68,253,243,253,44,254,34,254,139,254,191,254, +16,255,22,0,28,1,45,2,36,3,13,3,97,2,147,1,117,0,179,255,235,254,61,253,148,251,243,250,115,251,200,252, +73,254,136,255,206,255,132,254,131,252,232,250,2,250,124,249,0,249,211,248,129,248,208,247,248,247,52,248,248,246,31,246, +84,247,105,249,238,250,184,251,209,252,131,254,129,255,173,254,122,251,101,247,76,246,138,250,230,2,175,10,6,13,3,10, +142,4,170,254,254,249,108,247,24,248,124,252,108,1,52,4,244,4,129,3,134,0,252,253,117,252,120,251,23,251,194,251, +205,252,5,253,249,252,67,253,14,253,209,251,24,250,165,249,133,251,135,254,56,1,77,2,81,1,71,0,226,0,168,2, +113,4,134,5,34,6,33,6,65,5,121,4,2,4,175,3,47,4,34,5,207,5,137,6,91,7,170,7,60,7,25,7, +125,7,160,6,134,4,62,3,171,3,68,5,140,6,180,6,5,6,224,3,109,0,185,253,82,253,238,254,194,0,77,2, +35,4,241,4,97,4,156,3,122,2,111,1,238,0,29,0,43,255,97,254,233,253,98,254,18,255,80,255,101,255,8,255, +86,254,35,254,237,254,5,0,38,0,157,255,65,255,60,255,125,255,208,254,24,253,209,251,245,250,7,251,29,253,85,255, +242,255,7,0,199,0,92,1,95,0,217,254,79,254,135,254,117,255,57,0,190,255,80,255,162,255,158,255,229,254,107,254, +249,254,37,255,22,255,166,1,147,4,58,3,61,255,136,252,13,252,126,252,111,252,179,252,8,254,62,255,204,255,48,0, +201,0,30,1,112,0,122,255,16,255,161,255,186,1,56,4,4,6,137,7,5,8,198,6,255,4,42,4,222,4,196,5, +212,4,75,2,48,0,161,255,156,255,169,255,195,0,73,1,219,254,85,251,30,249,180,247,140,246,82,246,28,248,104,252, +167,1,57,5,226,5,95,4,87,2,55,1,50,1,107,1,46,1,16,0,143,254,3,254,232,253,19,253,240,252,219,254, +36,2,82,5,112,6,96,5,243,3,140,2,126,1,166,1,36,2,68,2,46,2,184,1,213,1,217,2,28,3,86,2, +78,1,247,255,145,254,61,253,216,251,240,250,189,250,247,250,109,251,252,251,225,252,211,253,74,254,131,254,234,253,44,252, +247,250,241,250,94,251,76,252,170,253,54,255,135,0,8,1,176,1,244,2,30,3,16,2,117,1,182,1,19,2,203,1, +39,1,73,0,8,254,220,251,247,252,91,255,69,255,69,254,239,254,33,0,75,0,233,255,51,0,255,0,238,0,7,0, +105,255,236,254,253,253,72,253,173,253,229,253,220,251,13,249,72,248,21,249,83,250,33,252,43,254,211,255,39,0,14,255, +13,254,111,253,104,253,179,255,115,3,149,5,117,5,131,4,118,3,142,1,132,254,60,252,114,252,99,254,36,0,215,0, +233,0,214,0,136,0,70,255,253,252,29,251,35,250,194,249,252,250,56,253,77,254,24,254,114,253,14,253,106,253,20,254, +37,255,160,0,118,1,186,1,196,1,124,1,226,1,227,2,254,2,100,2,61,2,119,2,97,2,225,1,151,1,56,2, +188,3,233,4,36,5,118,5,17,6,62,6,42,6,168,5,209,4,17,5,243,5,163,5,139,4,211,3,92,3,241,2, +70,2,76,1,23,1,232,1,164,2,14,3,39,3,106,2,159,1,77,2,47,4,80,5,230,4,12,4,36,3,203,1, +99,0,58,255,182,254,209,254,157,254,254,254,201,0,77,2,19,3,98,3,103,2,64,1,166,1,38,3,188,4,229,5, +179,6,250,6,11,6,24,4,198,1,229,255,48,255,183,254,191,253,34,253,47,253,100,253,111,253,165,253,103,254,0,255, +246,254,174,254,192,254,155,255,188,255,153,253,227,250,29,249,245,247,118,247,168,247,142,248,225,249,86,250,166,249,31,249, +196,249,20,251,37,252,150,253,93,255,26,0,139,0,171,1,59,2,190,1,13,1,173,0,98,0,111,255,57,254,30,254, +55,255,43,0,1,0,155,255,26,0,251,0,198,1,178,2,48,3,108,2,136,0,156,254,250,253,34,255,25,1,75,2, +168,2,162,2,124,1,171,255,197,254,15,255,77,0,194,1,96,2,77,2,146,1,15,0,15,255,124,255,169,0,104,1, +23,1,81,0,247,255,254,255,234,255,218,255,154,0,187,1,232,1,114,1,16,1,254,255,226,253,242,251,180,250,32,249, +189,247,73,248,189,249,35,250,223,249,23,250,89,251,166,252,167,252,170,252,156,253,58,254,233,254,137,0,188,1,90,1, +56,0,175,255,205,255,247,255,1,0,166,255,118,255,231,255,139,255,129,254,180,254,105,255,53,255,162,254,0,254,39,253, +100,252,247,251,175,251,230,250,197,249,163,249,119,250,197,250,69,250,156,249,83,249,89,250,83,252,79,253,98,253,231,253, +133,254,213,254,41,255,81,255,29,255,228,254,148,255,66,1,49,2,199,1,252,0,56,0,40,0,15,1,28,2,85,3, +85,4,39,4,113,3,237,2,123,2,15,2,128,1,64,1,195,1,82,2,195,2,131,3,95,4,84,5,102,6,2,7, +9,7,8,7,247,6,46,6,32,5,194,4,166,4,108,4,95,4,16,4,169,3,10,4,237,4,151,5,71,5,223,3, +239,2,228,2,199,2,126,3,161,5,158,7,205,8,89,9,252,8,41,8,100,7,193,6,195,6,157,7,157,8,190,8, +106,7,14,5,114,2,69,0,40,255,111,254,53,253,129,252,234,252,146,253,106,254,252,254,34,254,247,252,141,252,192,251, +118,250,136,249,6,249,152,249,32,251,138,251,87,250,161,249,176,250,28,252,34,252,71,251,175,250,67,250,229,249,152,249, +105,249,156,249,229,249,133,250,50,252,223,253,49,254,90,253,51,252,228,251,190,252,128,253,140,253,173,253,67,254,2,255, +53,0,246,1,237,2,166,2,76,2,241,1,185,1,118,2,206,2,97,1,106,255,237,253,190,252,203,251,250,250,118,250, +140,250,3,251,134,251,194,251,174,251,247,251,210,252,151,253,138,254,62,0,218,1,171,2,48,3,113,3,203,2,244,0, +239,254,91,254,47,255,117,0,245,1,123,3,228,4,178,5,83,5,243,4,245,4,191,3,150,1,32,0,211,255,92,0, +1,1,87,1,33,1,83,0,249,255,52,0,70,0,206,0,65,1,38,0,173,254,220,254,80,0,163,0,45,255,111,254, +2,255,241,254,93,254,55,254,100,254,188,254,181,254,89,254,87,254,84,254,11,254,254,253,6,254,184,253,184,253,251,254, +164,0,69,1,113,1,1,2,181,2,80,3,87,3,156,2,239,1,201,1,205,1,211,1,96,2,68,3,66,3,140,2, +35,2,161,1,18,1,11,1,27,1,61,1,221,1,137,2,214,2,0,3,74,3,42,3,87,2,207,1,135,1,149,0, +194,255,117,255,221,254,145,254,50,255,212,255,28,0,171,0,150,1,21,2,134,1,83,0,109,255,69,255,119,255,116,255, +93,255,119,255,93,255,185,254,28,254,108,254,147,255,186,0,200,1,137,2,100,2,55,2,213,2,47,3,237,2,102,3, +32,5,232,6,99,7,202,6,252,5,21,5,52,4,130,3,239,2,157,2,58,2,180,1,182,1,102,1,214,255,201,254, +122,255,110,0,220,0,134,1,236,1,245,0,134,255,162,254,42,254,10,255,39,1,47,2,195,1,4,1,249,255,210,254, +17,253,30,250,112,248,179,249,129,251,127,252,229,253,146,255,12,0,202,254,227,252,255,251,40,252,175,252,23,254,60,0, +162,1,131,1,4,0,213,253,133,251,59,249,44,248,249,248,97,250,214,251,231,252,212,252,106,252,239,251,8,251,109,250, +213,249,22,249,115,249,184,250,224,251,230,252,22,254,103,255,31,0,26,0,184,255,184,254,100,254,194,255,235,0,98,1, +73,2,38,3,205,3,116,4,143,4,105,4,76,4,138,3,116,2,111,2,111,3,239,3,219,3,59,4,176,4,159,4, +33,4,234,2,19,1,121,255,96,254,66,253,41,252,9,252,253,252,19,254,205,254,28,255,32,255,235,254,157,254,251,254, +44,0,207,1,181,3,115,4,156,3,233,2,57,2,207,0,171,255,5,255,156,254,154,254,213,254,132,255,49,0,206,255, +17,255,15,255,79,255,42,255,226,254,28,255,229,255,211,0,162,1,137,1,185,255,51,253,240,251,228,251,158,251,120,251, +46,252,152,252,55,252,10,252,112,252,15,253,130,253,243,253,144,254,143,254,218,253,98,253,105,253,195,253,202,253,36,253, +112,253,181,255,85,2,91,3,176,2,221,1,75,1,225,255,188,254,135,255,212,0,107,1,249,1,82,2,33,2,165,1, +186,0,181,255,44,255,228,254,146,254,2,254,72,253,55,253,234,253,140,254,42,255,100,0,196,1,2,2,63,1,83,1, +127,2,83,3,243,3,250,4,195,5,37,6,29,6,96,5,160,4,13,4,247,2,39,2,73,2,87,2,31,2,17,2, +144,1,209,0,129,0,3,0,88,255,25,255,5,255,95,255,61,0,196,0,84,1,73,2,145,2,248,1,86,1,253,0, +197,0,149,0,154,0,210,0,3,1,46,1,6,1,90,0,163,255,236,254,20,254,145,253,120,253,96,253,111,253,7,254, +141,254,105,254,93,254,113,254,148,253,66,252,170,251,195,251,46,252,156,252,147,252,251,251,84,251,57,251,133,251,207,251, +77,252,8,253,167,253,23,254,27,254,75,253,68,252,108,252,237,253,109,255,21,0,242,255,52,255,111,254,24,254,44,254, +147,254,245,254,230,254,117,254,133,254,174,255,171,0,110,0,245,255,181,255,122,255,4,0,255,0,254,0,67,0,178,255, +14,255,34,254,48,253,148,252,25,253,168,254,180,255,215,255,200,255,184,255,252,255,98,0,68,0,20,0,3,0,4,0, +144,0,8,1,41,1,167,1,37,2,123,2,151,2,198,1,175,0,46,0,84,0,10,1,70,1,7,1,71,1,138,1, +18,2,6,3,51,3,121,3,83,4,87,4,83,4,174,4,35,4,143,3,159,3,147,3,134,3,60,3,129,2,58,2, +65,2,217,1,52,1,127,0,227,255,221,255,51,0,73,0,43,0,231,255,85,255,9,255,147,255,178,0,21,2,54,3, +151,3,115,3,167,2,41,1,211,255,229,254,162,254,194,255,72,1,224,1,246,1,245,1,206,1,204,1,251,1,237,1, +40,1,12,0,133,255,118,255,173,255,46,0,44,0,53,0,89,1,17,2,152,1,69,1,245,0,161,0,81,1,235,1, +72,1,205,0,5,1,205,0,75,0,114,0,79,1,95,2,185,2,215,1,120,0,61,255,60,254,201,253,220,253,61,254, +253,254,36,0,178,1,166,2,49,2,184,1,201,1,37,1,55,0,26,0,185,0,203,1,236,2,238,3,164,4,113,4, +128,3,67,2,219,0,82,0,243,0,72,1,255,0,68,1,16,2,242,1,121,0,252,254,216,254,61,0,12,2,131,2, +76,1,212,255,247,254,68,254,145,253,78,253,84,253,30,253,217,252,246,252,135,253,71,254,163,254,70,254,142,253,23,253, +239,252,5,253,177,253,71,254,255,253,192,253,140,253,189,252,100,252,103,252,244,251,24,252,171,252,153,252,113,252,156,252, +1,253,122,253,100,253,212,252,63,252,237,251,57,252,211,252,98,253,8,254,102,254,57,254,8,254,79,254,149,254,99,254, +87,254,87,254,196,253,59,253,232,252,196,252,124,253,88,254,191,254,114,255,54,0,115,0,46,0,108,255,160,254,107,254, +12,255,184,255,154,255,112,255,111,255,125,255,156,0,179,1,76,1,188,0,67,0,64,255,139,254,94,254,188,254,206,255, +208,0,133,1,244,1,168,1,255,0,185,0,212,0,22,1,141,1,211,1,119,1,143,1,78,2,20,2,192,1,215,2, +195,3,171,3,153,3,138,3,55,3,214,2,122,2,49,2,233,1,189,1,232,1,40,2,49,2,36,2,224,1,24,1, +61,0,26,0,223,0,251,1,97,2,2,2,238,1,16,2,36,2,208,2,195,3,176,4,67,5,37,4,44,2,47,1, +225,0,19,1,142,1,178,1,100,2,173,3,234,4,138,6,55,7,95,5,15,2,146,254,192,251,241,249,211,248,64,249, +39,251,121,252,168,252,74,252,220,251,111,252,230,253,31,255,7,0,109,0,254,255,122,255,88,255,106,255,179,255,48,0, +206,0,233,0,227,255,197,254,119,254,59,254,196,253,155,253,70,254,215,255,219,0,131,0,95,0,219,0,201,0,18,0, +252,254,223,253,119,253,132,253,140,253,221,253,121,254,26,255,193,255,99,0,227,0,35,1,33,1,37,1,31,1,102,0, +13,255,59,254,4,254,174,253,199,253,100,254,167,254,59,255,75,0,93,0,127,255,136,254,175,253,164,253,73,254,192,254, +27,255,125,255,245,255,195,0,147,1,229,1,59,1,16,0,184,255,162,255,1,255,192,254,173,254,134,254,210,254,114,254, +90,253,19,253,77,253,160,253,248,253,138,253,21,253,73,253,87,253,145,253,55,254,164,254,32,255,140,255,119,255,152,255, +219,255,164,255,154,255,203,255,162,255,226,255,220,0,159,1,24,2,141,2,165,2,72,2,166,1,32,1,208,0,75,0, +41,0,21,1,32,2,95,2,210,1,73,1,153,1,28,2,74,2,64,2,169,1,37,1,237,0,82,0,96,0,54,1, +171,1,114,2,39,3,149,2,171,1,189,0,67,255,65,253,61,251,9,251,215,252,183,254,130,0,12,2,114,2,45,2, +48,1,210,255,64,255,199,254,132,254,252,255,50,2,158,3,54,4,231,3,254,2,254,1,253,0,66,0,125,255,94,254, +164,253,58,253,167,252,20,253,178,254,177,255,163,255,110,255,54,255,52,255,221,255,250,0,32,2,25,3,167,3,161,3, +52,3,172,2,248,1,31,1,128,0,243,255,13,255,69,254,101,254,10,255,70,255,111,255,13,0,121,0,92,0,236,255, +59,255,153,254,0,254,115,253,168,253,92,254,206,254,36,255,95,255,122,255,160,255,136,255,127,255,43,0,2,1,101,1, +196,1,85,2,145,2,109,2,42,2,162,1,57,1,105,1,187,1,225,1,172,1,217,0,3,0,150,255,30,255,189,254, +11,255,17,0,32,1,237,1,236,2,187,3,215,3,233,3,193,3,157,2,48,1,92,0,18,0,212,255,95,255,11,255, +211,254,85,254,198,253,118,253,178,253,106,254,3,255,185,255,192,0,225,0,196,255,147,254,232,253,171,253,192,253,5,254, +215,254,95,0,103,1,136,1,28,2,37,3,111,3,33,3,182,2,41,2,153,1,5,1,157,0,185,0,89,1,22,2, +41,2,150,1,241,0,19,0,108,255,108,255,82,255,134,255,94,0,156,0,45,0,190,255,199,255,157,0,0,1,162,0, +238,0,15,1,48,0,139,255,252,254,32,254,214,253,216,253,108,253,228,252,177,252,219,252,49,253,174,253,111,254,43,255, +133,255,180,255,204,255,116,255,231,254,228,254,147,255,146,0,19,1,144,0,165,255,208,254,45,254,18,254,21,254,19,254, +136,254,6,255,127,255,183,255,160,254,64,253,165,252,2,252,221,251,134,252,34,253,27,254,81,255,12,0,162,0,253,0, +248,0,173,0,26,0,1,0,52,0,202,255,45,255,128,254,166,253,30,253,168,252,27,252,214,251,36,252,127,253,29,255, +141,255,10,255,89,254,235,253,237,253,14,254,123,254,87,255,4,0,74,0,78,0,8,0,181,255,198,255,32,0,245,255, +102,255,145,255,54,0,112,0,116,0,94,0,232,255,116,255,107,255,98,255,66,255,178,255,37,0,150,255,172,254,47,254, +59,254,190,254,5,255,5,255,126,255,137,0,208,1,70,2,121,1,226,0,246,0,244,0,13,1,70,1,133,1,244,1, +87,2,202,2,66,3,85,3,96,3,182,3,17,4,244,3,73,3,181,2,73,2,224,1,241,1,250,1,148,1,65,1, +208,0,81,0,17,0,201,255,221,255,27,0,208,255,148,255,144,255,83,255,78,255,176,255,0,0,222,255,108,255,13,255, +169,254,123,254,204,254,33,255,118,255,119,255,159,254,248,253,229,253,10,254,177,254,245,254,149,254,212,254,77,255,126,255, +169,255,83,255,252,254,30,255,23,255,55,255,181,255,47,0,162,0,169,0,67,0,173,255,200,254,95,254,158,254,154,254, +141,254,157,254,116,254,85,254,44,254,222,253,120,253,252,252,33,253,205,253,31,254,110,254,228,254,12,255,75,255,7,0, +222,0,35,1,5,1,54,1,253,0,248,255,118,255,188,255,54,0,242,0,200,1,133,2,241,2,221,2,159,2,96,2, +55,2,43,2,196,1,81,1,85,1,118,1,139,1,163,1,139,1,11,1,156,0,52,1,183,1,254,0,253,0,251,1, +30,2,10,2,57,2,20,2,41,2,237,1,2,1,204,0,6,1,229,0,53,1,12,2,169,2,157,2,252,1,123,1, +70,1,23,1,62,1,140,1,155,1,226,1,55,2,233,1,150,1,250,1,144,2,206,2,154,2,247,1,6,1,8,0, +133,255,148,255,139,255,87,255,71,255,105,255,233,255,48,0,165,255,20,255,211,254,94,254,188,253,51,253,39,253,157,253, +39,254,251,254,47,0,191,0,212,255,244,253,158,252,200,252,87,254,97,0,115,1,192,1,162,2,36,3,152,1,198,254, +248,252,129,253,236,254,54,255,14,255,207,255,102,1,40,3,40,4,45,4,201,3,254,2,214,1,19,1,219,0,86,0, +129,255,97,255,222,255,82,0,1,1,89,1,130,0,93,255,215,254,194,254,151,254,203,253,183,252,101,252,94,253,110,255, +151,1,244,2,179,3,82,4,220,4,205,4,217,3,216,2,111,2,2,2,29,1,85,0,98,0,245,0,72,1,146,1, +255,1,251,1,195,1,182,1,131,1,150,1,2,2,207,1,53,1,228,0,172,0,145,0,124,0,84,0,67,0,192,255, +27,255,35,255,209,254,213,253,98,253,191,253,183,254,168,255,243,255,28,0,253,255,120,255,109,255,86,255,165,254,52,254, +37,254,16,254,183,253,109,253,239,253,135,254,182,254,104,255,49,0,44,0,186,255,30,255,138,254,90,254,85,254,232,253, +25,253,218,252,81,253,191,253,67,254,252,254,187,255,94,0,42,0,101,255,17,255,174,254,213,253,44,253,9,253,88,253, +171,253,193,253,235,253,46,254,45,254,152,253,164,252,208,251,14,251,138,250,180,250,61,251,191,251,77,252,49,253,29,254, +64,254,18,254,52,254,67,254,163,254,12,255,158,254,212,254,2,0,56,0,233,255,42,0,54,0,63,0,231,0,95,1, +78,1,99,1,133,1,107,1,109,1,56,1,165,0,124,0,131,0,106,0,170,0,172,0,63,0,50,0,48,0,250,255, +25,0,102,0,152,0,151,0,69,0,198,255,252,254,234,253,247,252,49,252,250,251,215,252,21,254,199,254,222,254,133,254, +61,254,174,254,109,255,142,255,249,254,77,254,123,254,134,255,18,0,248,255,141,0,159,1,210,1,54,1,245,0,92,1, +159,1,47,1,49,0,50,255,140,254,35,254,54,254,253,254,220,255,188,0,75,1,187,0,43,0,56,0,142,255,42,255, +48,0,138,0,212,255,223,255,46,0,1,0,60,0,200,0,50,1,213,1,55,2,14,2,69,2,201,2,247,2,30,3, +92,3,172,3,238,3,124,3,168,2,113,2,153,2,99,2,244,1,203,1,182,1,113,1,126,1,145,1,235,0,86,0, +111,0,133,0,88,0,62,0,96,0,203,0,178,1,168,2,25,2,249,255,115,254,140,254,179,255,222,0,19,1,210,0, +219,0,185,0,63,0,223,255,251,255,120,0,229,0,131,1,70,2,112,2,103,2,177,2,218,2,223,2,168,2,205,1, +212,0,113,0,121,0,118,0,65,0,44,0,75,0,11,0,89,255,136,254,151,253,16,253,32,253,253,252,43,253,33,254, +134,254,147,254,77,255,214,255,30,0,173,0,14,1,123,1,227,1,161,1,52,1,237,0,163,0,134,0,145,0,135,0, +235,255,217,254,109,254,171,254,203,254,153,254,250,253,113,253,161,253,70,254,229,254,33,255,94,255,73,0,251,0,182,0, +74,0,68,0,156,0,251,0,199,0,255,255,242,254,35,254,121,254,229,255,242,0,233,0,204,0,89,1,198,1,76,1, +110,0,23,0,42,0,0,0,167,255,16,255,75,254,72,254,239,254,87,255,155,255,150,255,63,255,132,255,109,0,5,1, +25,1,53,1,86,1,36,1,40,1,94,1,231,0,34,0,139,255,58,255,188,255,99,0,92,0,71,0,77,0,88,0, +149,0,170,0,138,0,109,0,121,0,180,0,164,0,120,0,144,0,143,0,176,0,225,0,109,0,183,255,40,255,178,254, +209,254,161,255,103,0,171,0,203,0,9,1,248,0,150,0,60,0,74,0,235,0,248,0,33,0,209,255,244,255,211,255, +200,255,186,255,172,255,214,255,175,255,12,255,126,254,109,254,168,254,65,255,103,0,3,1,181,0,100,0,253,255,34,0, +6,1,211,0,11,0,44,0,79,0,57,0,37,0,232,255,247,255,217,255,135,255,222,255,240,255,39,255,123,254,13,254, +114,253,254,252,94,253,34,254,167,254,213,255,55,1,46,1,128,0,246,255,55,255,222,254,230,254,148,254,88,254,180,254, +14,255,237,254,29,255,204,255,205,255,39,255,118,254,244,253,131,254,157,255,252,255,136,0,189,1,105,2,28,2,100,1, +57,1,200,1,2,2,157,1,28,1,113,0,162,255,250,254,69,254,109,253,17,253,111,253,205,253,205,253,213,253,66,254, +245,254,93,255,133,255,14,0,164,0,116,0,213,255,163,255,222,255,238,255,209,255,211,255,0,0,84,0,75,0,175,255, +123,255,211,255,178,255,47,255,23,255,130,255,29,0,134,0,194,0,14,1,27,1,180,0,82,0,49,0,56,0,122,0, +201,0,250,0,249,0,115,0,219,255,184,255,165,255,230,255,99,0,197,255,105,254,134,253,52,253,196,253,0,255,39,0, +25,1,55,1,92,0,117,255,226,254,211,254,55,255,186,255,107,0,211,0,203,0,8,1,137,1,3,2,8,2,147,1, +219,1,137,2,69,2,155,1,61,1,131,1,133,2,244,2,112,2,173,1,162,0,218,255,171,255,158,255,219,255,231,255, +75,255,6,255,22,255,235,254,22,255,131,255,212,255,103,0,252,0,53,1,69,1,222,0,14,0,165,255,208,255,88,0, +40,1,223,1,247,1,115,1,26,1,11,1,200,0,242,0,90,1,16,1,42,1,159,1,229,0,172,255,111,254,68,253, +140,253,132,254,58,255,100,0,251,0,202,0,76,1,240,1,248,1,119,1,131,0,34,0,96,0,63,0,255,255,26,0, +123,0,178,0,122,0,42,0,192,255,114,255,178,255,255,255,68,0,207,0,75,1,168,1,140,1,189,0,37,0,243,255, +186,255,199,255,228,255,63,255,20,254,156,253,14,254,131,254,250,254,182,255,52,0,230,255,192,254,233,253,90,254,113,255, +160,0,82,1,52,1,48,1,232,0,224,255,103,255,105,255,57,255,37,255,252,254,23,255,150,255,137,255,34,255,198,254, +125,254,172,254,218,254,196,254,206,254,199,254,219,254,217,254,86,254,81,254,238,254,2,255,165,254,137,254,169,254,192,254, +187,254,145,254,47,254,233,253,210,253,106,253,226,252,203,252,29,253,167,253,28,254,74,254,127,254,17,255,145,255,130,255, +148,255,56,0,234,0,181,1,43,2,114,1,107,0,185,255,220,254,10,254,172,253,29,254,38,255,132,255,33,255,231,254, +3,255,100,255,4,0,240,0,180,1,171,1,106,1,21,1,88,0,10,0,238,255,111,255,140,255,29,0,101,0,108,0, +212,255,17,255,224,254,2,255,116,255,223,255,225,255,4,0,53,0,53,0,48,0,4,0,16,0,90,0,49,0,219,255, +160,255,57,255,18,255,177,255,238,0,241,1,13,2,193,1,146,1,111,1,124,1,146,1,121,1,62,1,138,0,114,255, +183,254,137,254,205,254,188,255,30,1,37,2,99,2,61,2,21,2,180,1,58,1,97,1,19,2,95,2,36,2,226,1, +127,1,23,1,111,1,48,2,53,2,174,1,76,1,167,0,171,255,64,255,201,255,192,0,88,1,61,1,231,0,199,0, +240,0,46,1,14,1,236,0,33,1,209,0,38,0,25,0,31,0,4,0,116,0,249,0,43,1,85,1,50,1,183,0, +118,0,139,0,160,0,162,0,148,0,63,0,242,255,83,0,33,1,162,1,131,1,237,0,158,0,243,0,136,1,13,2, +65,2,56,2,38,2,133,1,141,0,61,0,87,0,128,0,234,0,60,1,103,1,93,1,159,0,241,255,81,0,43,1, +207,1,242,1,73,1,107,0,15,0,180,255,17,255,225,254,1,255,198,254,206,254,88,255,60,255,130,254,103,254,237,254, +86,255,129,255,148,255,171,255,195,255,171,255,88,255,9,255,205,254,122,254,86,254,195,254,84,255,132,255,122,255,70,255, +243,254,14,255,205,255,88,0,240,255,38,255,183,254,103,254,22,254,7,254,19,254,53,254,170,254,70,255,176,255,171,255, +102,255,107,255,189,255,215,255,122,255,251,254,223,254,8,255,41,255,94,255,94,255,253,254,220,254,39,255,139,255,247,255, +52,0,18,0,184,255,106,255,77,255,16,255,159,254,160,254,36,255,122,255,98,255,65,255,106,255,128,255,52,255,14,255, +90,255,190,255,255,255,4,0,221,255,186,255,113,255,251,254,201,254,223,254,221,254,186,254,176,254,195,254,227,254,77,255, +9,0,103,0,252,255,65,255,191,254,174,254,236,254,16,255,65,255,226,255,142,0,222,0,219,0,108,0,194,255,70,255, +249,254,250,254,94,255,214,255,51,0,94,0,60,0,7,0,0,0,29,0,3,0,138,255,62,255,118,255,227,255,84,0, +162,0,117,0,222,255,114,255,110,255,26,255,91,254,130,254,205,255,1,1,181,1,30,2,33,2,138,1,25,0,98,254, +150,253,208,253,88,254,228,254,125,255,44,0,162,0,143,0,68,0,24,0,253,255,55,0,227,0,77,1,6,1,144,0, +113,0,137,0,109,0,8,0,191,255,227,255,94,0,244,0,68,1,248,0,96,0,1,0,218,255,225,255,71,0,231,0, +71,1,24,1,127,0,228,255,103,255,29,255,127,255,137,0,75,1,71,1,5,1,235,0,147,0,206,255,47,255,14,255, +5,255,9,255,142,255,101,0,221,0,194,0,119,0,81,0,107,0,160,0,158,0,95,0,53,0,42,0,15,0,14,0, +139,0,119,1,243,1,85,1,78,0,245,255,63,0,79,0,244,255,242,255,132,0,242,0,233,0,160,0,6,0,29,255, +110,254,124,254,36,255,247,255,161,0,210,0,132,0,9,0,135,255,58,255,107,255,253,255,168,0,11,1,15,1,246,0, +140,0,176,255,23,255,69,255,1,0,194,0,14,1,231,0,112,0,208,255,116,255,146,255,4,0,153,0,233,0,169,0, +13,0,107,255,240,254,161,254,145,254,207,254,65,255,200,255,41,0,42,0,247,255,217,255,237,255,56,0,127,0,143,0, +172,0,12,1,93,1,88,1,12,1,116,0,191,255,155,255,38,0,180,0,193,0,96,0,23,0,30,0,16,0,225,255, +234,255,58,0,178,0,7,1,242,0,146,0,25,0,185,255,161,255,197,255,21,0,148,0,28,1,110,1,119,1,84,1, +13,1,169,0,108,0,110,0,116,0,67,0,226,255,151,255,90,255,2,255,230,254,59,255,182,255,23,0,51,0,23,0, +254,255,220,255,162,255,126,255,141,255,198,255,21,0,114,0,183,0,153,0,26,0,142,255,23,255,177,254,146,254,227,254, +94,255,151,255,106,255,18,255,14,255,123,255,235,255,72,0,166,0,204,0,207,0,231,0,237,0,160,0,15,0,179,255, +190,255,190,255,127,255,74,255,110,255,201,255,197,255,133,255,163,255,220,255,236,255,43,0,137,0,163,0,102,0,3,0, +198,255,215,255,43,0,107,0,86,0,65,0,57,0,225,255,100,255,48,255,97,255,168,255,182,255,204,255,252,255,248,255, +250,255,29,0,25,0,9,0,11,0,4,0,23,0,119,0,9,1,84,1,2,1,104,0,254,255,224,255,251,255,69,0, +145,0,120,0,31,0,17,0,35,0,17,0,5,0,213,255,160,255,233,255,131,0,246,0,245,0,116,0,8,0,254,255, +221,255,115,255,0,255,232,254,114,255,76,0,228,0,244,0,93,0,81,255,164,254,12,255,24,0,224,0,99,1,210,1, +159,1,104,0,166,254,46,253,185,252,107,253,182,254,242,255,207,0,85,1,140,1,89,1,196,0,45,0,238,255,241,255, +0,0,31,0,93,0,173,0,202,0,110,0,244,255,174,255,62,255,217,254,16,255,133,255,225,255,77,0,143,0,127,0, +117,0,162,0,194,0,121,0,10,0,240,255,0,0,233,255,171,255,84,255,55,255,131,255,191,255,151,255,113,255,153,255, +206,255,219,255,226,255,4,0,52,0,63,0,3,0,223,255,8,0,8,0,198,255,165,255,165,255,161,255,168,255,174,255, +183,255,225,255,251,255,180,255,69,255,15,255,6,255,30,255,103,255,143,255,107,255,96,255,169,255,254,255,14,0,250,255, +245,255,244,255,249,255,0,0,1,0,36,0,76,0,46,0,247,255,205,255,153,255,168,255,36,0,136,0,134,0,127,0, +124,0,20,0,127,255,76,255,139,255,39,0,215,0,11,1,226,0,222,0,211,0,122,0,6,0,166,255,113,255,119,255, +174,255,7,0,72,0,33,0,193,255,133,255,96,255,49,255,34,255,83,255,173,255,216,255,130,255,18,255,60,255,189,255, +202,255,155,255,228,255,106,0,134,0,60,0,242,255,185,255,124,255,127,255,241,255,104,0,147,0,168,0,199,0,206,0, +141,0,253,255,144,255,164,255,3,0,125,0,245,0,16,1,187,0,104,0,106,0,144,0,119,0,33,0,255,255,73,0, +128,0,46,0,174,255,130,255,144,255,175,255,234,255,236,255,116,255,29,255,111,255,229,255,231,255,176,255,182,255,6,0, +51,0,24,0,27,0,46,0,37,0,97,0,152,0,72,0,216,255,122,255,48,255,98,255,196,255,220,255,243,255,63,0, +134,0,149,0,156,0,226,0,252,0,165,0,107,0,70,0,213,255,146,255,180,255,184,255,133,255,82,255,34,255,20,255, +107,255,240,255,59,0,111,0,159,0,122,0,61,0,70,0,83,0,70,0,52,0,16,0,5,0,0,0,209,255,218,255, +14,0,202,255,70,255,66,255,194,255,48,0,51,0,255,255,215,255,207,255,239,255,245,255,163,255,78,255,75,255,125,255, +198,255,32,0,114,0,159,0,143,0,38,0,146,255,99,255,156,255,136,255,40,255,41,255,163,255,36,0,72,0,1,0, +219,255,53,0,155,0,159,0,126,0,94,0,33,0,0,0,10,0,214,255,141,255,170,255,243,255,250,255,187,255,157,255, +231,255,53,0,76,0,115,0,179,0,236,0,9,1,239,0,213,0,209,0,135,0,3,0,194,255,220,255,224,255,166,255, +120,255,72,255,9,255,32,255,116,255,163,255,171,255,170,255,222,255,53,0,44,0,215,255,180,255,222,255,25,0,232,255, +90,255,11,255,14,255,61,255,143,255,188,255,178,255,191,255,255,255,57,0,35,0,227,255,218,255,17,0,113,0,204,0, +225,0,205,0,181,0,127,0,75,0,58,0,41,0,253,255,230,255,36,0,146,0,197,0,189,0,171,0,125,0,40,0, +236,255,248,255,88,0,202,0,203,0,104,0,41,0,253,255,167,255,114,255,129,255,201,255,86,0,215,0,17,1,38,1, +15,1,203,0,146,0,132,0,125,0,58,0,249,255,43,0,106,0,71,0,2,0,155,255,4,255,169,254,148,254,123,254, +121,254,203,254,103,255,243,255,31,0,251,255,204,255,196,255,240,255,60,0,103,0,75,0,53,0,86,0,65,0,205,255, +106,255,92,255,151,255,215,255,208,255,208,255,40,0,119,0,130,0,128,0,110,0,38,0,202,255,147,255,144,255,184,255, +7,0,90,0,121,0,106,0,101,0,102,0,113,0,185,0,16,1,237,0,74,0,172,255,124,255,173,255,196,255,144,255, +121,255,160,255,151,255,51,255,188,254,124,254,110,254,125,254,206,254,103,255,13,0,137,0,177,0,148,0,146,0,209,0, +19,1,28,1,228,0,159,0,126,0,76,0,230,255,168,255,176,255,176,255,162,255,164,255,176,255,227,255,80,0,168,0, +135,0,250,255,136,255,131,255,216,255,92,0,178,0,169,0,130,0,105,0,83,0,52,0,14,0,9,0,32,0,32,0, +255,255,187,255,146,255,239,255,175,0,63,1,67,1,243,0,200,0,158,0,61,0,253,255,216,255,151,255,126,255,157,255, +178,255,140,255,65,255,56,255,138,255,229,255,45,0,94,0,125,0,122,0,36,0,159,255,70,255,42,255,53,255,73,255, +135,255,21,0,142,0,145,0,121,0,144,0,132,0,27,0,197,255,211,255,229,255,182,255,160,255,204,255,237,255,3,0, +52,0,44,0,193,255,108,255,92,255,101,255,137,255,184,255,242,255,83,0,188,0,22,1,55,1,228,0,87,0,214,255, +120,255,109,255,141,255,130,255,120,255,175,255,14,0,78,0,74,0,45,0,30,0,26,0,38,0,57,0,52,0,51,0, +85,0,96,0,34,0,219,255,211,255,225,255,199,255,144,255,94,255,105,255,202,255,22,0,247,255,196,255,185,255,176,255, +196,255,254,255,26,0,51,0,95,0,98,0,47,0,225,255,161,255,201,255,87,0,191,0,160,0,43,0,210,255,206,255, +244,255,250,255,244,255,33,0,83,0,41,0,187,255,117,255,114,255,129,255,198,255,97,0,206,0,179,0,97,0,247,255, +152,255,144,255,188,255,254,255,123,0,206,0,126,0,237,255,193,255,218,255,178,255,93,255,74,255,146,255,9,0,78,0, +79,0,124,0,203,0,197,0,134,0,131,0,215,0,7,1,164,0,48,0,62,0,95,0,29,0,171,255,87,255,101,255, +227,255,90,0,108,0,73,0,50,0,27,0,225,255,144,255,69,255,36,255,105,255,27,0,227,0,68,1,207,0,241,255, +179,255,220,255,117,255,147,254,231,253,224,253,111,254,252,254,68,255,126,255,211,255,74,0,162,0,175,0,134,0,255,255, +79,255,37,255,115,255,183,255,195,255,189,255,241,255,62,0,111,0,206,0,91,1,161,1,112,1,8,1,174,0,71,0, +202,255,130,255,67,255,198,254,129,254,205,254,56,255,103,255,147,255,216,255,7,0,28,0,249,255,110,255,231,254,234,254, +61,255,117,255,166,255,36,0,240,0,169,1,246,1,238,1,231,1,171,1,230,0,51,0,1,0,242,255,8,0,108,0, +235,0,86,1,83,1,215,0,120,0,141,0,205,0,169,0,14,0,154,255,100,255,255,254,141,254,102,254,157,254,232,254, +242,254,221,254,213,254,241,254,138,255,128,0,34,1,49,1,242,0,165,0,76,0,232,255,183,255,195,255,170,255,54,255, +225,254,38,255,157,255,250,255,166,0,134,1,252,1,234,1,138,1,34,1,246,0,213,0,92,0,173,255,45,255,173,254, +255,253,172,253,228,253,68,254,192,254,74,255,155,255,191,255,229,255,14,0,41,0,78,0,131,0,104,0,246,255,197,255, +233,255,222,255,106,255,195,254,91,254,72,254,54,254,67,254,161,254,24,255,177,255,145,0,52,1,53,1,17,1,64,1, +112,1,50,1,193,0,141,0,114,0,46,0,7,0,60,0,137,0,168,0,184,0,229,0,21,1,22,1,247,0,225,0, +226,0,219,0,154,0,82,0,89,0,88,0,211,255,13,255,193,254,3,255,249,254,44,254,105,253,158,253,158,254,119,255, +183,255,247,255,173,0,74,1,101,1,91,1,111,1,137,1,137,1,63,1,200,0,135,0,73,0,226,255,213,255,48,0, +93,0,57,0,250,255,226,255,250,255,209,255,77,255,252,254,50,255,166,255,220,255,207,255,229,255,56,0,187,0,52,1, +23,1,118,0,21,0,21,0,238,255,141,255,124,255,203,255,0,0,254,255,214,255,148,255,102,255,85,255,135,255,42,0, +178,0,139,0,228,255,100,255,160,255,59,0,101,0,49,0,209,255,63,255,243,254,50,255,154,255,187,255,129,255,73,255, +62,255,54,255,71,255,128,255,197,255,17,0,81,0,146,0,224,0,244,0,204,0,160,0,96,0,45,0,56,0,72,0, +50,0,17,0,13,0,46,0,42,0,245,255,246,255,36,0,47,0,58,0,69,0,241,255,113,255,108,255,206,255,247,255, +234,255,249,255,0,0,1,0,67,0,167,0,190,0,106,0,1,0,228,255,236,255,209,255,190,255,215,255,213,255,157,255, +133,255,147,255,141,255,185,255,50,0,74,0,218,255,157,255,226,255,50,0,42,0,11,0,32,0,25,0,204,255,161,255, +185,255,179,255,117,255,86,255,89,255,93,255,165,255,36,0,100,0,122,0,149,0,141,0,96,0,9,0,154,255,108,255, +128,255,148,255,160,255,164,255,144,255,147,255,230,255,61,0,37,0,233,255,229,255,235,255,235,255,240,255,212,255,174,255, +173,255,182,255,165,255,204,255,100,0,174,0,46,0,157,255,138,255,218,255,65,0,90,0,45,0,34,0,69,0,113,0, +143,0,114,0,251,255,111,255,86,255,176,255,2,0,68,0,162,0,17,1,121,1,169,1,134,1,43,1,205,0,191,0, +218,0,179,0,100,0,254,255,155,255,209,255,110,0,132,0,15,0,203,255,251,255,53,0,41,0,46,0,109,0,107,0, +0,0,161,255,139,255,104,255,8,255,167,254,73,254,228,253,218,253,78,254,249,254,198,255,123,0,171,0,121,0,59,0, +222,255,124,255,103,255,94,255,240,254,79,254,15,254,55,254,50,254,228,253,23,254,52,255,155,0,169,1,76,2,114,2, +233,1,253,0,75,0,174,255,247,254,232,254,119,255,131,255,66,255,170,255,141,0,129,1,102,2,228,2,208,2,85,2, +166,1,229,0,44,0,206,255,254,255,49,0,210,255,85,255,149,255,130,0,105,1,231,1,224,1,131,1,61,1,254,0, +168,0,149,0,176,0,127,0,74,0,105,0,56,0,39,255,251,253,184,253,50,254,191,254,81,255,57,0,107,1,79,2, +165,2,139,2,180,1,84,0,138,255,187,255,89,0,211,0,205,0,139,0,101,0,239,255,21,255,182,254,96,255,145,0, +94,1,141,1,99,1,192,0,168,255,135,254,141,253,44,253,146,253,166,253,10,253,239,252,138,253,213,253,102,253,170,252, +74,252,110,252,150,252,148,252,219,252,175,253,159,254,239,254,178,254,111,254,72,254,136,254,72,255,151,255,36,255,1,255, +135,255,1,0,111,0,52,1,209,1,202,1,106,1,207,0,240,255,80,255,89,255,213,255,52,0,8,0,160,255,179,255, +135,0,201,1,204,2,48,3,61,3,81,3,90,3,78,3,109,3,169,3,145,3,48,3,240,2,193,2,108,2,17,2, +192,1,92,1,1,1,240,0,0,1,203,0,95,0,238,255,115,255,54,255,106,255,203,255,34,0,78,0,40,0,195,255, +69,255,208,254,127,254,78,254,68,254,98,254,112,254,101,254,164,254,74,255,212,255,235,255,204,255,162,255,97,255,255,254, +158,254,151,254,233,254,42,255,73,255,139,255,4,0,116,0,108,0,8,0,229,255,14,0,40,0,55,0,59,0,6,0, +164,255,98,255,153,255,73,0,222,0,204,0,64,0,239,255,49,0,106,0,30,0,216,255,239,255,255,255,197,255,83,255, +251,254,252,254,28,255,69,255,182,255,68,0,170,0,3,1,84,1,110,1,78,1,54,1,58,1,25,1,211,0,152,0, +108,0,124,0,211,0,8,1,233,0,170,0,89,0,239,255,161,255,150,255,171,255,212,255,27,0,96,0,132,0,116,0, +50,0,7,0,36,0,123,0,198,0,149,0,249,255,137,255,133,255,195,255,204,255,58,255,134,254,94,254,201,254,102,255, +177,255,144,255,152,255,254,255,86,0,64,0,163,255,232,254,150,254,141,254,144,254,237,254,165,255,29,0,33,0,15,0, +250,255,169,255,76,255,45,255,41,255,45,255,51,255,0,255,212,254,35,255,159,255,230,255,50,0,148,0,212,0,228,0, +210,0,157,0,66,0,218,255,125,255,59,255,94,255,5,0,183,0,18,1,25,1,207,0,86,0,225,255,135,255,141,255, +40,0,198,0,178,0,46,0,236,255,36,0,136,0,157,0,71,0,239,255,199,255,168,255,143,255,112,255,23,255,158,254, +146,254,64,255,69,0,53,1,204,1,203,1,124,1,88,1,54,1,178,0,197,255,200,254,40,254,242,253,38,254,198,254, +137,255,73,0,247,0,56,1,229,0,64,0,175,255,134,255,174,255,211,255,236,255,17,0,43,0,10,0,211,255,17,0, +196,0,241,0,52,0,139,255,127,255,135,255,111,255,64,255,248,254,245,254,37,255,28,255,77,255,25,0,236,0,31,1, +187,0,75,0,9,0,172,255,35,255,211,254,18,255,151,255,239,255,45,0,14,0,137,255,209,255,166,0,43,0,212,254, +132,254,27,255,139,255,186,255,4,0,92,0,157,0,226,0,244,0,133,0,15,0,8,0,24,0,247,255,3,0,150,0, +80,1,163,1,124,1,5,1,110,0,4,0,231,255,247,255,16,0,70,0,187,0,54,1,112,1,123,1,99,1,47,1, +10,1,235,0,164,0,74,0,48,0,99,0,129,0,63,0,223,255,186,255,207,255,6,0,75,0,117,0,146,0,185,0, +180,0,170,0,251,0,44,1,182,0,6,0,101,255,203,254,102,254,8,254,108,253,28,253,144,253,67,254,149,254,182,254, +53,255,254,255,159,0,24,1,104,1,52,1,178,0,116,0,119,0,100,0,5,0,104,255,223,254,148,254,134,254,207,254, +84,255,212,255,67,0,144,0,181,0,192,0,141,0,30,0,228,255,47,0,187,0,13,1,18,1,39,1,103,1,112,1, +26,1,198,0,179,0,183,0,159,0,85,0,246,255,233,255,97,0,248,0,41,1,247,0,159,0,33,0,170,255,114,255, +67,255,35,255,103,255,200,255,222,255,227,255,7,0,20,0,254,255,225,255,191,255,184,255,12,0,117,0,83,0,208,255, +168,255,218,255,204,255,105,255,42,255,44,255,1,255,109,254,235,253,36,254,222,254,69,255,27,255,173,254,76,254,75,254, +164,254,232,254,223,254,176,254,148,254,168,254,232,254,84,255,189,255,218,255,198,255,191,255,175,255,98,255,231,254,136,254, +141,254,27,255,5,0,193,0,5,1,252,0,205,0,173,0,176,0,136,0,60,0,45,0,42,0,197,255,46,255,249,254, +104,255,32,0,192,0,33,1,250,0,100,0,2,0,11,0,75,0,193,0,62,1,84,1,254,0,194,0,7,1,115,1, +128,1,52,1,229,0,214,0,15,1,49,1,243,0,143,0,78,0,75,0,136,0,198,0,179,0,82,0,248,255,11,0, +146,0,8,1,41,1,49,1,17,1,207,0,221,0,234,0,65,0,106,255,37,255,31,255,227,254,169,254,198,254,226,254, +176,254,4,255,75,0,128,1,246,1,227,1,124,1,252,0,122,0,241,255,147,255,131,255,206,255,49,0,18,0,174,255, +181,255,235,255,234,255,208,255,159,255,70,255,228,254,134,254,37,254,236,253,32,254,143,254,211,254,254,254,44,255,100,255, +254,255,32,1,75,2,174,2,26,2,167,1,36,2,186,2,174,2,113,2,60,2,147,1,101,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/explode.pcm b/src/client/sound/data/explode.pcm new file mode 100755 index 0000000..5e94c1e --- /dev/null +++ b/src/client/sound/data/explode.pcm @@ -0,0 +1,2319 @@ +unsigned char PCM_explode[74128] = { +1,0,0,0,2,0,0,0,68,172,0,0,192,144,0,0,23,0,164,117,8,123,211,116,10,122,79,119,12,125,95,123, +95,127,99,124,193,125,108,123,231,121,60,118,219,113,71,119,215,115,81,117,155,116,230,111,221,105,171,99,210,90,49,79, +4,71,92,61,186,56,106,47,116,40,11,34,238,20,207,8,88,255,78,252,199,0,230,15,2,31,167,43,195,45,155,36, +219,21,113,1,120,242,163,229,245,216,46,204,46,196,63,193,231,194,3,196,24,189,31,181,98,174,228,175,210,183,238,193, +196,199,17,199,236,195,42,191,223,185,239,176,166,171,63,167,21,162,150,157,156,153,239,150,36,145,198,140,108,138,120,135, +252,129,0,128,0,128,0,128,228,128,18,128,92,128,0,128,5,128,56,128,0,128,174,128,117,129,146,130,217,131,64,134, +121,135,21,136,183,134,81,132,22,129,0,128,0,128,0,128,0,128,0,128,0,128,151,128,70,129,169,131,90,133,67,134, +200,134,236,135,92,136,55,136,212,136,101,138,56,139,252,138,196,137,222,133,61,129,0,128,0,128,0,128,0,128,0,128, +4,128,226,129,96,134,71,139,15,144,209,147,140,150,163,152,150,154,133,158,109,161,63,162,65,163,32,161,32,159,234,162, +88,168,62,173,247,177,70,183,125,192,43,204,42,216,89,228,199,237,150,242,206,242,40,239,172,234,65,232,244,231,133,233, +222,237,236,242,201,246,90,251,96,0,197,4,171,8,140,11,88,14,104,16,145,17,197,20,122,24,102,26,178,28,92,31, +219,32,112,34,17,37,149,39,2,42,166,44,197,46,131,49,62,52,95,53,219,54,177,56,246,58,73,63,182,67,20,72, +154,76,50,79,102,81,16,84,188,85,77,86,40,86,118,86,115,86,167,85,104,86,55,88,135,90,84,94,244,97,131,100, +159,102,253,103,102,104,101,104,110,104,22,104,197,103,195,103,69,104,235,106,125,110,124,114,254,119,66,123,125,124,26,126, +152,122,29,112,185,100,223,94,123,97,79,106,47,118,47,126,135,125,122,123,101,123,179,122,112,120,22,111,132,95,69,81, +98,70,47,64,162,60,190,56,169,53,162,49,206,44,25,40,215,33,190,27,64,21,168,13,229,6,245,255,207,249,86,244, +254,237,9,233,64,228,141,222,171,217,21,212,237,205,205,200,246,196,77,194,74,192,108,192,213,193,17,194,124,194,3,195, +51,195,214,195,8,196,228,196,140,199,216,201,160,202,226,203,234,206,1,211,147,215,75,219,158,221,139,224,218,227,215,229, +27,232,99,234,199,235,122,237,238,238,36,241,154,244,191,248,140,253,37,2,158,6,114,10,32,14,229,17,2,20,253,20, +103,23,130,26,26,29,127,32,221,35,26,38,240,39,81,43,179,45,216,46,220,48,88,48,79,48,93,48,157,47,97,49, +236,49,222,49,142,50,247,50,210,51,158,52,125,52,175,52,145,52,94,51,156,50,88,47,99,44,160,42,221,39,188,37, +112,34,161,31,7,29,62,27,49,25,73,21,97,18,22,15,216,11,103,7,46,3,123,0,107,253,112,250,168,247,232,245, +112,243,199,241,26,240,123,237,22,235,242,230,135,227,229,224,207,221,214,218,21,217,246,214,165,212,238,211,234,211,15,214, +123,215,120,216,99,215,78,212,115,210,93,207,225,206,121,206,224,205,253,205,157,205,195,207,134,207,216,206,137,206,14,206, +201,206,20,206,139,206,210,207,65,208,46,208,196,208,76,209,209,209,167,210,178,210,251,211,237,212,6,213,200,212,165,213, +144,214,116,214,189,215,166,215,35,216,241,217,190,219,200,220,31,221,25,223,223,224,210,226,3,228,95,230,155,232,112,233, +18,236,143,237,212,238,33,239,165,240,23,242,163,242,105,246,206,247,11,250,247,252,28,255,161,2,8,4,151,6,107,8, +243,8,96,11,140,13,89,15,185,17,0,21,33,24,68,25,60,26,3,28,232,28,130,30,228,29,25,29,108,29,127,27, +122,28,240,27,226,27,189,29,86,27,151,26,250,24,5,23,254,24,126,28,106,33,99,39,240,46,97,55,226,64,53,74, +191,80,200,82,79,78,74,65,226,45,56,26,171,7,74,251,195,247,98,249,2,254,53,1,115,3,70,6,23,7,143,6, +238,6,32,8,191,10,140,14,113,16,26,17,15,17,3,15,80,12,242,8,112,4,221,0,86,254,73,253,37,0,19,6, +250,14,155,23,113,27,94,25,8,12,32,245,231,219,151,196,16,184,11,186,245,196,157,211,201,225,250,236,9,246,183,251, +68,249,117,238,132,224,63,214,159,211,213,212,97,215,150,219,95,221,10,219,119,214,229,210,23,210,156,209,89,210,51,213, +206,216,97,222,219,230,232,241,41,251,164,254,22,249,23,229,88,202,173,180,174,167,161,166,157,171,226,176,38,185,120,192, +164,198,169,206,1,213,213,215,140,214,155,212,207,211,50,210,123,210,11,213,158,218,225,225,121,228,156,225,1,216,153,198, +157,181,221,172,224,172,120,179,15,187,128,192,62,196,133,197,175,198,211,200,172,205,53,211,68,213,173,215,130,216,187,216, +102,220,76,225,105,231,118,236,110,237,107,230,252,216,60,203,42,194,231,193,242,198,104,207,70,215,131,221,223,226,125,228, +76,232,192,234,246,234,45,236,250,233,73,233,78,234,90,235,50,237,79,239,17,242,192,242,106,242,121,241,199,240,183,239, +153,237,12,237,252,236,80,237,120,237,60,239,242,241,129,243,194,245,225,246,55,248,123,249,93,249,107,249,191,249,156,249, +88,248,47,249,163,249,202,248,217,248,59,248,188,248,55,248,142,247,255,247,188,247,133,249,23,252,65,255,255,1,188,1, +223,0,11,0,145,254,62,253,181,251,23,251,20,252,155,250,128,250,127,253,227,253,233,254,235,255,210,255,62,0,231,255, +12,1,25,2,181,2,89,4,254,5,132,7,72,9,69,11,214,12,177,14,213,14,205,14,148,14,112,10,77,4,246,250, +191,240,138,233,246,231,179,237,73,247,142,4,114,16,115,23,199,26,94,26,222,25,71,26,18,28,176,30,107,34,248,39, +112,46,240,54,233,59,112,55,45,41,71,18,8,250,252,232,59,226,246,229,57,239,107,251,252,10,150,23,69,32,113,37, +56,38,62,36,229,31,209,28,26,26,17,25,60,25,120,23,28,23,241,23,232,27,195,32,67,35,190,36,79,37,5,37, +124,35,203,34,240,31,143,29,128,29,22,29,131,31,107,33,2,35,248,35,122,36,13,37,72,35,200,33,248,30,195,29, +68,29,85,29,176,30,17,29,65,28,50,25,36,22,63,19,72,14,76,12,74,9,48,8,235,6,145,3,56,3,33,2, +149,1,240,1,176,1,76,0,76,252,220,245,62,237,185,227,207,219,172,217,103,221,111,230,114,241,214,249,226,0,148,5, +147,7,200,10,31,18,0,29,105,40,194,43,85,33,178,12,117,244,175,225,193,211,131,201,138,198,16,203,143,216,246,233, +248,249,226,5,71,13,164,17,97,21,57,29,208,39,54,54,233,68,14,78,139,75,177,51,27,12,44,227,130,203,195,202, +45,216,204,235,200,251,235,8,119,18,7,23,81,26,28,30,93,39,30,50,15,59,252,68,143,79,239,88,30,89,139,76, +203,50,175,15,26,239,129,212,41,195,39,189,25,191,78,198,191,209,130,224,254,237,244,251,175,7,12,15,244,20,87,22, +95,21,149,19,115,17,65,14,103,9,182,3,197,252,232,247,220,246,143,248,177,252,213,2,102,7,75,11,157,14,138,15, +100,14,189,11,225,8,195,5,138,6,173,7,111,9,56,12,47,12,72,12,26,9,2,6,215,2,253,254,89,252,154,249, +29,250,246,249,62,249,68,247,208,241,118,235,184,226,175,217,30,214,144,213,56,218,191,230,186,245,115,13,43,41,120,60, +10,57,195,21,64,226,196,182,58,172,107,185,224,202,151,220,196,234,213,246,33,252,109,251,85,248,240,245,13,245,177,242, +184,241,80,247,28,5,235,23,40,46,156,66,127,80,163,79,242,58,30,26,74,252,251,238,152,240,43,248,154,251,113,255, +176,6,17,15,176,24,83,26,53,22,253,14,150,5,8,252,20,243,62,237,99,233,147,232,214,235,210,242,107,250,183,5, +147,18,80,29,187,38,234,43,48,47,239,42,14,30,142,15,134,5,155,5,168,16,178,33,38,52,219,74,145,95,32,108, +86,107,7,87,175,53,250,23,13,13,130,24,231,50,28,80,124,108,251,123,38,124,213,114,72,90,109,64,174,44,114,30, +95,25,211,26,235,39,242,65,69,93,219,105,166,91,64,56,210,18,33,246,138,231,246,226,110,225,163,224,241,220,32,220, +64,220,251,219,14,222,170,221,29,220,88,217,93,212,32,205,229,195,198,188,61,183,44,176,90,170,7,165,65,159,216,154, +136,149,212,146,57,147,70,151,72,160,54,170,185,182,160,196,54,213,245,233,207,253,79,14,41,18,49,4,234,234,2,203, +219,176,99,167,228,170,189,179,216,183,54,180,228,172,194,167,70,170,129,176,31,186,117,198,73,209,124,223,39,240,6,255, +100,12,217,22,0,33,221,39,238,32,138,7,156,222,169,180,102,155,62,154,157,172,76,199,231,228,153,3,242,31,224,56, +112,75,232,82,104,77,101,59,212,34,17,13,129,252,150,240,97,236,76,236,146,234,115,233,241,233,214,235,172,239,159,242, +59,242,95,237,74,230,169,224,131,219,185,212,5,203,20,192,192,184,109,183,200,188,54,200,38,214,105,227,195,239,146,251, +77,8,18,25,183,42,173,52,134,47,3,24,181,245,241,212,76,190,220,181,193,183,58,190,105,198,51,208,130,220,101,231, +99,238,124,241,74,241,89,242,14,244,165,244,192,244,114,242,133,242,43,247,57,252,114,5,218,18,245,30,51,43,100,57, +62,72,74,82,36,76,255,47,250,6,63,229,97,220,17,234,208,251,147,5,67,7,108,6,175,10,36,21,152,30,70,31, +180,22,135,13,117,11,140,17,111,29,163,45,147,67,219,91,70,109,44,113,147,99,203,68,16,29,162,249,12,230,150,227, +121,233,162,239,2,246,186,1,211,22,12,53,52,85,148,106,184,105,16,79,133,37,223,255,163,233,138,229,171,237,83,246, +180,249,183,247,80,244,191,245,51,249,244,248,156,245,58,241,21,241,135,248,109,4,69,21,149,43,82,65,236,76,122,67, +140,35,49,249,117,212,78,194,176,195,53,206,199,217,173,229,202,245,83,12,176,38,129,62,50,77,48,78,221,59,159,22, +243,234,251,195,81,170,146,169,3,194,40,231,120,15,176,52,181,82,223,91,28,71,61,29,39,239,6,207,81,203,98,220, +195,249,64,29,0,64,54,83,239,78,141,51,221,11,111,224,151,190,116,172,11,170,104,177,124,190,1,202,99,213,233,224, +77,234,80,241,26,245,209,244,46,241,21,237,244,233,19,235,102,241,222,251,170,9,33,23,149,26,100,15,133,248,38,224, +108,207,61,204,97,213,97,225,215,235,235,243,33,253,143,4,18,13,141,15,169,13,9,5,197,252,135,249,195,253,251,3, +42,17,39,24,13,29,252,31,207,33,52,31,105,28,249,23,47,20,132,16,102,15,53,12,110,13,13,16,148,19,253,22, +126,24,77,23,109,20,247,17,17,16,85,15,170,15,164,18,55,24,161,26,64,29,28,29,98,26,121,22,99,17,129,10, +68,2,15,252,128,250,12,252,95,2,224,9,189,15,147,16,123,17,104,18,198,20,180,22,226,21,98,10,187,247,90,229, +98,216,204,215,104,223,223,232,89,243,121,252,94,3,221,4,228,4,10,1,146,253,125,251,19,249,180,246,84,244,234,241, +254,238,127,234,35,234,3,234,97,237,160,240,57,243,220,245,43,250,41,253,246,0,16,0,65,251,44,246,118,244,25,245, +207,245,241,247,157,249,204,250,29,254,174,0,82,1,26,255,119,250,145,249,192,248,1,250,74,251,70,254,170,253,157,0, +20,1,164,1,112,255,146,253,172,250,123,250,15,250,0,250,51,249,229,250,181,249,214,250,201,249,133,251,141,253,57,0, +149,1,32,2,133,3,192,3,69,3,207,254,94,250,149,249,0,249,49,250,45,251,21,253,144,252,143,248,231,247,24,248, +141,248,87,248,65,247,87,249,249,249,63,254,24,2,215,4,92,5,215,7,194,3,169,3,79,0,53,0,75,0,150,0, +19,0,106,0,138,0,86,1,71,1,65,3,56,2,157,2,11,1,40,3,87,4,94,4,137,4,143,2,2,1,122,255, +163,253,71,255,101,255,253,0,82,1,64,3,209,3,112,3,97,1,170,255,86,252,223,247,39,246,189,244,100,244,206,241, +250,240,37,242,94,240,87,240,67,239,54,240,183,239,226,241,232,241,178,243,50,241,81,241,153,239,248,238,9,239,18,239, +18,237,200,236,56,234,59,233,30,231,60,231,126,233,80,234,113,239,8,240,96,242,168,239,9,237,56,233,201,228,235,226, +61,225,79,227,2,228,102,228,233,226,199,225,30,225,195,227,239,231,243,238,37,243,75,246,114,248,172,248,105,246,37,245, +243,243,214,241,144,239,163,238,177,236,110,236,161,236,167,233,56,235,185,234,83,235,103,238,67,243,141,252,180,2,98,6, +197,4,8,0,222,248,52,245,120,244,81,241,24,242,250,240,96,238,54,235,235,232,128,230,47,230,158,228,23,229,238,229, +178,231,10,239,228,244,66,250,225,253,52,255,26,253,171,247,241,244,170,241,247,239,118,240,238,238,115,237,37,235,55,233, +113,230,182,228,149,226,144,223,29,224,119,225,165,226,186,227,143,228,66,228,114,228,128,229,180,230,50,229,26,227,228,226, +205,227,180,228,157,228,82,230,82,231,177,231,162,232,102,233,88,236,198,239,238,242,223,245,151,247,208,247,84,246,78,242, +34,237,87,233,105,231,10,230,251,230,128,234,119,237,53,241,230,241,117,240,219,240,233,241,83,242,59,240,106,236,110,230, +26,226,175,227,28,235,42,241,43,242,95,237,107,224,243,212,116,205,186,203,102,210,2,222,187,239,191,4,244,22,19,32, +187,30,145,22,59,17,29,21,27,28,150,27,120,7,194,230,217,200,153,184,29,184,203,184,34,185,64,186,205,189,241,199, +119,214,61,229,67,243,146,5,199,20,193,36,239,52,19,70,244,87,154,90,246,74,62,34,179,237,199,185,244,150,15,148, +5,167,202,199,163,235,136,20,213,61,169,96,57,110,17,97,42,69,121,33,78,0,191,228,176,214,67,211,7,214,223,217, +91,220,54,225,171,234,2,246,163,250,62,252,238,246,36,240,102,232,173,225,119,223,168,220,69,223,104,225,209,223,152,215, +255,202,170,186,251,172,172,169,11,169,215,172,227,179,243,189,215,200,216,211,236,224,52,240,172,2,192,21,44,42,125,64, +203,84,57,99,13,103,243,90,192,68,99,42,138,18,47,255,42,244,229,244,100,248,242,250,25,249,197,248,78,252,130,4, +231,16,249,32,176,52,244,64,189,67,57,56,26,33,105,6,240,243,129,239,72,241,196,247,186,255,210,9,51,22,152,36, +19,52,21,69,145,82,84,91,86,95,141,86,219,71,120,55,26,39,57,21,146,255,198,232,27,216,96,213,242,227,231,4, +237,41,175,69,165,71,140,40,195,247,37,207,192,194,197,208,30,239,165,15,197,46,150,78,95,107,236,120,181,109,32,77, +105,36,87,2,207,226,87,201,187,186,20,180,235,180,155,185,70,197,19,212,233,223,199,229,57,232,211,233,193,233,134,233, +90,228,191,221,16,215,225,212,19,216,59,219,194,229,234,240,62,250,189,255,151,250,138,236,130,213,32,190,217,177,143,180, +76,188,66,199,6,215,89,229,89,241,204,250,83,4,198,12,223,20,93,27,122,30,92,32,218,35,193,42,201,52,250,66, +113,83,48,106,213,121,223,114,15,86,235,43,51,7,21,242,174,252,186,37,70,91,87,127,255,127,118,127,29,119,55,99, +223,91,209,86,225,77,216,64,204,50,81,42,220,35,102,27,250,18,105,14,12,13,31,15,90,17,26,18,107,15,181,8, +190,255,159,247,23,243,50,237,14,231,179,223,222,217,149,214,162,207,193,199,100,191,48,187,183,188,216,191,214,193,121,194, +26,195,73,195,151,197,177,199,17,205,180,214,143,224,30,231,208,232,233,232,150,227,5,224,239,221,250,221,202,231,183,241, +106,250,83,2,50,11,130,19,250,27,111,38,227,44,207,54,163,66,128,81,181,98,239,105,173,99,217,72,165,33,92,1, +254,244,247,3,133,37,202,73,90,104,245,122,224,125,180,116,227,97,38,74,247,51,30,41,45,46,118,63,236,89,106,111, +236,114,30,96,210,61,51,24,181,251,165,244,243,250,28,6,147,18,22,28,228,36,29,47,164,59,194,69,6,77,221,78, +110,69,200,48,138,16,253,235,206,208,120,207,139,236,66,22,251,55,198,66,170,53,236,32,83,20,65,21,211,27,17,22, +173,252,191,218,87,191,28,178,104,180,13,194,167,210,114,231,223,5,196,37,33,54,187,42,242,4,37,214,108,179,39,166, +40,171,160,181,72,188,93,192,221,195,90,201,122,206,61,207,95,204,58,199,41,197,220,197,160,198,34,202,13,207,153,211, +166,214,122,217,74,219,238,217,78,219,33,222,173,223,7,225,82,223,249,220,92,221,105,225,207,232,51,242,123,250,99,254, +19,255,5,254,115,251,59,250,38,251,32,253,33,254,71,0,88,5,225,7,15,9,202,7,66,5,32,3,7,2,242,5, +229,11,188,18,199,22,45,21,39,17,234,12,105,9,48,8,157,10,71,14,252,14,23,14,25,14,67,14,181,15,208,17, +70,20,250,23,167,24,210,18,174,8,105,255,28,249,110,246,92,248,126,252,200,0,64,3,14,4,99,3,89,2,55,2, +31,2,129,2,193,2,252,1,89,254,175,250,186,248,148,245,70,245,228,245,90,244,131,243,189,243,80,241,175,237,110,236, +23,234,160,235,114,236,231,236,164,238,18,239,97,241,45,243,9,244,5,243,221,242,56,239,101,234,3,229,181,226,40,226, +141,226,189,227,67,226,29,230,87,232,225,236,252,240,157,242,149,243,172,244,111,246,153,247,137,251,37,1,36,10,253,18, +216,28,30,35,171,37,144,33,248,18,220,252,97,227,80,208,163,198,107,196,112,199,89,206,226,214,35,226,214,238,40,249, +31,1,165,6,178,8,39,9,237,5,190,1,207,253,224,251,61,251,22,251,147,252,202,252,243,251,167,245,243,236,200,228, +199,226,223,230,64,239,77,248,130,1,20,11,113,21,162,35,96,51,103,70,99,80,249,74,241,52,45,18,161,238,117,216, +55,209,63,214,150,221,91,224,68,225,248,222,139,224,115,227,251,232,61,237,68,243,236,249,42,254,215,255,145,254,135,252, +141,248,74,244,168,238,149,236,118,235,24,238,182,242,211,251,234,8,235,23,78,39,85,44,122,31,111,255,215,216,162,180, +31,157,0,152,11,164,107,183,73,203,250,224,87,248,19,14,64,31,32,39,62,30,130,4,8,226,108,196,15,182,95,185, +235,198,17,216,165,227,16,233,246,233,116,232,18,230,155,229,46,235,165,238,112,243,83,245,2,246,132,253,158,11,124,32, +53,44,217,37,163,8,179,217,190,171,144,143,221,146,248,168,159,196,22,223,69,241,169,1,157,15,233,26,2,37,125,46, +255,60,62,72,147,68,111,49,129,15,85,230,178,194,149,173,97,168,243,172,95,179,30,182,65,186,49,194,4,205,110,216, +175,222,28,225,207,221,107,215,88,207,81,199,113,196,184,194,185,193,8,192,250,191,197,193,153,195,84,195,43,191,160,190, +180,189,237,191,160,198,210,203,21,212,201,218,146,224,118,230,24,234,39,238,115,242,169,247,36,255,4,8,114,16,115,24, +224,28,45,28,163,21,245,9,137,254,210,248,30,254,231,11,126,28,229,43,222,57,95,72,170,89,165,108,57,120,78,115, +138,86,84,41,255,250,107,220,208,219,96,242,55,21,87,58,209,88,182,105,240,100,93,81,98,64,128,59,224,62,251,60, +77,47,177,31,104,21,65,18,144,18,52,13,19,4,122,252,106,249,140,249,22,247,200,240,107,233,108,227,151,222,62,219, +102,216,123,214,86,213,124,210,229,206,109,202,47,199,235,199,104,203,88,208,79,211,230,211,44,212,49,209,196,203,111,198, +105,193,16,190,235,185,227,183,239,187,149,194,185,201,47,207,240,211,49,218,33,228,86,241,174,253,206,11,169,23,74,29, +218,32,95,29,219,19,96,8,175,252,227,247,235,246,163,250,124,4,244,11,1,20,173,28,144,35,22,43,68,46,50,47, +113,48,84,48,95,48,157,45,214,41,233,37,184,31,28,27,88,22,191,16,130,13,33,13,238,15,155,20,98,29,96,41, +187,53,11,68,129,79,126,86,145,90,28,91,168,94,5,101,194,100,8,87,175,58,156,24,248,250,203,230,166,223,22,230, +240,246,142,13,11,38,41,61,212,79,123,92,35,100,182,104,238,108,58,114,13,114,255,101,107,80,255,54,153,30,103,8, +227,244,246,229,59,218,126,206,173,197,86,199,126,212,102,233,115,255,125,15,227,26,160,32,195,29,158,22,253,12,4,2, +16,248,89,239,70,233,187,229,86,227,71,228,9,235,194,242,156,243,230,235,67,222,19,206,155,192,169,185,248,184,188,193, +150,211,38,233,96,3,86,26,155,34,44,27,248,5,135,234,35,206,39,185,123,179,124,178,118,171,38,153,223,131,0,128, +0,128,49,135,151,151,94,168,142,184,16,199,24,210,91,218,244,225,46,234,4,242,158,245,21,238,10,218,190,182,60,144, +134,128,0,128,0,128,0,128,142,132,205,151,19,170,33,185,185,196,110,202,110,207,112,213,41,221,84,228,86,231,164,232, +215,230,216,224,0,215,98,203,150,193,118,188,191,192,6,203,6,214,132,221,1,224,104,228,242,232,213,236,244,241,186,244, +104,246,117,244,15,241,82,241,105,244,35,252,191,3,253,9,97,14,154,11,199,6,175,1,122,255,86,5,3,15,197,24, +117,26,202,16,140,0,78,237,48,223,157,216,98,215,210,218,239,225,4,237,52,249,214,5,45,17,228,22,234,24,132,24, +142,23,35,25,82,27,191,28,70,31,217,35,24,43,39,55,166,70,117,87,74,102,73,106,148,95,179,71,124,42,99,21, +197,15,115,26,80,46,179,68,25,87,230,90,227,80,238,62,108,47,61,42,197,39,88,38,254,36,10,34,57,33,42,32, +146,35,153,44,75,54,64,68,92,84,77,102,200,119,194,123,141,106,29,68,194,21,211,242,80,226,65,226,223,237,136,254, +148,14,36,29,187,38,107,39,51,34,143,25,29,19,224,19,171,26,181,38,183,52,156,64,131,71,31,74,213,75,94,78, +247,84,241,94,26,104,255,103,205,85,245,54,60,23,82,3,20,1,177,9,153,22,52,34,204,43,178,52,79,60,79,68, +192,72,126,74,48,79,48,87,234,100,146,116,32,125,59,121,56,102,238,70,247,35,15,9,67,251,118,248,92,252,113,1, +76,8,0,19,92,32,201,42,51,44,68,39,34,31,245,22,125,16,215,7,15,253,79,242,95,236,143,236,220,236,180,236, +26,236,47,234,61,233,79,236,125,242,109,245,167,244,3,242,70,238,135,236,56,237,89,240,49,244,245,247,52,255,215,10, +191,24,22,37,97,42,36,38,46,24,37,254,165,220,180,190,250,171,119,170,18,183,32,202,183,225,119,249,195,15,50,37, +254,49,104,48,110,30,13,255,188,224,111,203,98,193,15,194,153,196,148,200,8,205,156,208,211,216,186,224,52,228,252,230, +104,237,152,247,200,1,121,11,132,14,65,3,28,232,155,194,89,160,204,138,72,133,55,141,10,157,110,176,209,193,88,208, +105,220,156,227,3,229,34,228,63,228,193,226,244,222,178,215,208,207,44,206,8,206,185,206,9,210,162,211,197,214,91,219, +44,222,161,225,44,230,70,234,137,240,161,251,142,6,206,11,229,5,84,244,79,220,245,193,101,177,255,175,144,186,11,207, +103,230,31,252,157,11,4,18,135,16,80,11,15,8,39,5,162,0,9,249,26,240,134,234,41,232,99,230,120,226,246,219, +189,208,18,197,162,191,9,193,138,202,138,218,158,243,227,20,172,55,55,81,40,79,131,48,202,1,62,213,132,186,28,175, +75,173,190,173,77,173,130,175,148,181,190,193,162,207,150,218,46,229,39,237,88,243,158,252,76,5,228,13,163,22,39,25, +89,18,2,0,45,235,35,220,56,209,135,202,42,198,182,200,110,210,177,220,67,233,255,248,107,8,225,19,202,30,191,44, +244,59,88,73,60,76,161,64,65,42,45,15,111,249,116,238,10,236,229,239,65,246,39,0,194,17,241,37,237,59,26,80, +93,92,153,101,130,109,158,119,255,127,255,127,168,119,190,94,132,64,219,39,106,26,0,23,31,22,140,20,193,15,137,13, +111,17,29,25,117,35,215,44,11,53,218,59,25,66,205,67,119,61,0,50,191,31,98,11,92,253,95,250,37,3,92,17, +5,29,0,36,9,41,91,41,135,38,133,38,88,39,43,38,204,37,235,39,210,37,208,27,54,9,35,243,235,230,246,230, +43,240,1,254,181,9,144,16,161,19,116,21,104,20,93,18,245,17,111,16,240,13,110,12,50,11,104,8,173,6,247,5, +76,1,195,250,16,249,86,253,94,4,134,12,99,17,161,15,4,11,108,5,138,255,108,251,158,247,13,243,78,239,185,236, +121,234,248,229,5,225,186,224,157,228,175,234,8,239,214,241,78,244,2,242,126,237,17,233,228,229,161,231,231,233,51,231, +78,226,167,223,244,221,42,221,27,221,119,220,8,220,77,217,107,210,172,198,113,185,17,176,197,173,191,179,182,188,247,200, +101,217,231,231,192,239,36,238,120,230,170,222,99,218,223,216,71,215,204,212,50,208,104,201,38,194,118,188,124,183,47,182, +203,185,127,190,134,198,180,206,69,212,48,216,196,217,175,218,37,218,139,218,112,218,83,216,94,212,162,202,217,194,173,192, +80,194,196,203,38,219,158,234,201,242,110,242,90,238,188,232,72,227,77,224,201,225,231,230,50,237,108,242,17,246,78,248, +127,251,100,1,143,5,38,9,193,14,11,22,223,33,197,45,83,52,91,55,215,54,226,48,145,39,40,30,182,22,201,22, +224,31,98,44,245,55,157,64,186,70,146,73,16,72,64,68,202,64,7,61,230,55,245,52,183,50,73,48,149,48,15,48, +150,48,16,49,173,45,48,45,228,45,1,44,148,40,235,34,66,30,177,26,149,23,221,21,175,20,35,20,227,18,152,16, +79,13,48,8,195,2,221,253,55,248,72,242,224,235,66,228,140,222,9,220,46,219,61,218,14,217,51,216,31,213,24,210, +149,210,92,212,140,212,128,210,229,206,236,197,123,182,248,160,74,135,0,128,0,128,0,128,0,128,0,128,0,128,149,137, +73,155,61,171,192,180,244,180,115,176,255,173,234,177,69,183,232,182,98,166,84,138,0,128,94,129,46,131,144,135,212,134, +33,131,0,128,0,128,230,134,26,153,40,169,107,180,230,187,143,197,164,210,7,226,21,234,38,222,124,188,179,152,33,138, +139,150,168,183,79,224,186,8,107,41,146,51,158,35,139,8,232,242,197,229,216,221,198,214,189,209,101,216,234,232,68,247, +82,251,26,239,13,217,205,200,108,196,99,204,100,217,188,227,144,238,246,249,173,2,133,6,81,8,249,9,39,10,73,14, +203,21,103,31,130,45,45,59,45,62,248,45,148,16,187,241,10,221,101,218,218,225,66,233,132,237,30,242,123,252,143,11, +7,28,119,46,223,66,56,86,40,102,238,106,51,93,164,64,132,33,154,12,34,2,123,251,68,247,153,247,188,255,177,17, +253,37,38,52,67,61,171,64,225,63,161,63,17,68,23,79,128,90,224,97,105,92,90,68,130,32,105,249,227,224,63,224, +110,237,155,255,197,17,92,33,92,46,234,53,110,53,96,48,209,41,161,35,120,31,10,29,231,27,81,27,108,27,107,27, +163,28,39,30,159,30,45,31,39,30,0,33,4,38,115,39,211,40,233,42,102,46,155,47,0,45,47,38,109,27,240,19, +69,15,165,15,124,21,230,28,141,39,56,50,176,58,183,64,114,66,41,59,165,41,252,19,172,255,110,242,68,236,132,235, +91,239,41,243,133,244,8,248,113,2,18,13,113,16,113,9,104,250,222,233,161,218,205,209,247,206,120,204,230,200,5,199, +143,200,180,203,254,209,123,218,251,228,234,241,143,1,128,20,147,31,216,24,181,253,159,215,247,186,186,178,174,187,27,200, +169,212,120,228,99,245,182,6,60,18,16,24,92,29,11,35,172,46,119,63,93,77,214,82,148,71,34,44,162,15,184,250, +85,242,235,246,70,252,152,253,236,0,108,10,28,22,94,32,150,42,133,50,171,54,144,53,87,48,8,42,172,33,44,26, +37,23,196,24,125,27,230,29,31,34,125,37,53,40,108,44,245,49,224,55,120,58,129,56,173,51,223,46,149,40,66,29, +249,17,220,9,148,4,74,5,231,10,142,17,209,22,68,28,143,35,166,39,187,38,220,33,148,26,12,21,10,16,163,11, +222,11,201,15,181,20,149,25,131,30,34,35,58,36,147,31,225,22,202,12,29,5,100,0,97,251,229,244,124,235,48,224, +68,215,122,213,252,218,115,227,8,239,13,251,114,4,68,10,104,10,131,9,101,10,213,12,193,12,155,0,10,232,132,203, +106,183,200,180,245,192,58,212,185,235,214,5,53,30,42,50,32,56,13,39,16,7,31,233,205,217,188,215,236,218,203,222, +99,227,125,235,109,245,36,0,36,11,34,19,138,22,193,20,161,18,249,19,239,18,89,11,249,254,60,243,178,237,168,238, +168,243,16,249,255,251,103,253,171,0,121,6,165,11,99,16,67,21,254,23,119,26,43,29,242,27,193,24,214,21,3,16, +66,10,99,6,138,3,208,4,129,8,243,13,157,20,158,26,166,31,226,32,126,33,156,34,128,33,173,32,251,32,41,33, +227,30,214,26,115,24,202,24,38,27,212,30,237,34,251,37,95,41,87,42,38,40,29,39,210,36,15,32,208,23,18,14, +243,8,42,7,54,6,169,4,13,3,122,4,205,8,207,13,132,18,183,21,137,21,17,19,106,14,171,7,120,2,1,2, +241,4,149,5,157,1,148,251,164,245,23,240,27,237,3,237,61,235,39,231,156,229,155,233,6,237,219,238,252,242,6,244, +21,243,105,244,113,249,27,3,244,13,11,23,74,24,12,13,86,245,19,216,128,193,72,184,200,190,148,207,196,224,195,235, +84,240,114,239,100,233,147,227,200,223,206,223,185,225,113,224,98,221,229,215,188,212,245,213,134,215,149,218,37,221,179,221, +209,219,141,213,133,201,14,184,99,164,231,146,175,137,24,138,119,144,102,154,80,167,158,183,4,202,167,215,70,219,179,215, +2,206,47,193,71,184,211,181,142,184,195,190,189,198,20,204,34,209,73,216,120,222,166,227,187,229,93,231,21,231,19,224, +30,214,8,205,147,201,193,200,120,200,80,201,142,199,231,198,93,198,138,199,15,207,2,218,130,233,227,251,3,15,111,33, +134,49,73,63,167,67,100,58,189,35,245,4,0,232,37,209,14,199,235,201,145,209,11,219,220,226,176,234,164,243,182,249, +129,253,91,255,13,3,96,10,44,18,12,24,198,25,122,27,233,29,173,30,64,29,158,24,25,18,78,8,58,255,226,250, +83,250,91,0,186,8,14,14,253,19,205,27,2,34,34,39,98,42,48,43,145,44,188,42,232,37,26,33,191,28,140,28, +113,31,31,34,253,34,148,35,26,36,131,36,225,39,93,45,236,50,135,52,227,50,204,47,162,43,199,41,162,39,191,39, +144,41,95,40,119,37,97,32,89,29,57,26,227,20,171,17,14,15,121,13,45,14,147,18,83,24,3,29,194,32,255,30, +65,23,159,12,164,3,10,253,45,246,64,241,36,238,161,234,87,231,94,229,20,228,134,229,69,233,22,235,45,235,141,233, +138,232,91,231,12,227,225,222,35,219,75,216,45,214,231,210,106,206,6,201,11,198,218,196,45,196,6,198,239,199,156,201, +221,205,58,211,63,217,244,221,92,223,29,225,61,224,227,217,45,208,57,194,165,178,32,166,18,162,112,166,136,174,88,186, +207,199,180,212,177,225,83,239,246,251,32,5,17,10,206,11,213,12,133,10,169,3,95,250,179,239,158,230,224,225,122,229, +207,240,136,3,118,28,184,51,219,69,68,74,249,60,252,39,39,20,57,8,100,4,152,6,216,11,120,16,115,21,159,24, +226,24,144,24,150,22,221,17,187,14,103,15,242,16,7,19,243,20,113,21,95,19,122,15,18,12,163,9,92,9,28,9, +29,11,44,16,219,19,159,25,226,30,28,34,231,37,163,38,96,37,157,34,227,31,247,31,196,35,246,41,211,44,236,47, +164,51,169,52,238,55,18,60,83,64,66,69,103,72,181,75,192,78,210,80,28,83,216,82,45,80,119,79,59,80,152,82, +66,88,53,95,174,103,180,110,210,107,217,91,157,66,9,40,183,24,159,31,154,58,48,94,45,121,51,123,210,98,53,60, +141,23,139,254,244,244,108,247,209,254,43,10,204,18,40,18,31,8,241,245,83,230,83,223,220,220,179,221,129,224,231,226, +235,226,46,221,30,211,102,204,80,205,149,212,21,222,66,230,44,234,211,232,57,229,206,219,127,203,2,188,142,176,103,173, +106,179,211,188,130,199,61,209,20,218,148,227,213,236,82,245,244,248,78,249,0,251,10,251,51,253,118,4,201,14,82,30, +244,47,209,60,137,60,48,44,148,16,121,241,224,215,179,197,177,191,140,197,247,205,11,214,154,221,114,232,5,247,121,10, +30,35,102,57,31,73,151,71,86,46,211,5,82,220,64,191,226,178,183,178,159,179,140,180,26,184,58,188,72,192,169,192, +29,193,40,194,163,194,186,198,146,206,134,215,28,220,67,223,37,223,125,217,233,210,25,202,83,197,147,196,67,197,66,199, +167,199,88,202,86,204,49,208,46,216,136,223,83,232,105,240,93,246,173,249,171,250,3,250,252,247,186,246,94,244,10,243, +226,243,126,246,33,251,225,255,61,5,197,11,101,19,33,23,38,23,42,21,84,15,20,10,52,5,71,3,175,6,12,12, +162,18,229,22,240,24,71,26,46,29,193,34,214,38,71,41,180,41,8,39,14,36,27,38,31,45,242,50,131,52,164,49, +192,43,60,36,212,30,79,29,209,29,201,29,237,25,88,22,246,20,60,20,159,20,58,21,1,23,145,23,100,21,253,15, +81,9,64,4,23,253,116,246,114,241,109,236,72,233,247,229,224,226,120,223,115,221,41,224,233,226,129,226,72,224,214,220, +124,215,68,210,15,206,41,202,82,201,169,202,74,203,153,203,117,205,167,209,235,215,208,222,177,228,135,234,168,236,71,233, +196,228,190,224,21,225,9,230,28,236,182,244,154,253,217,2,241,5,127,7,112,6,154,4,109,0,46,248,145,240,139,234, +76,228,247,221,108,215,195,210,238,208,172,207,85,208,57,212,34,215,2,215,185,211,204,205,30,199,4,192,126,187,75,188, +58,193,81,196,127,195,235,194,212,191,217,188,194,188,181,187,152,187,65,185,117,181,250,179,49,178,110,178,204,179,206,179, +2,180,17,180,189,177,166,175,3,177,193,177,129,181,21,190,185,198,216,207,152,214,16,221,71,228,147,231,137,231,91,230, +21,231,173,231,124,233,0,240,190,247,184,0,145,8,63,13,5,15,57,13,163,11,185,11,233,13,88,18,221,24,151,32, +179,37,238,40,17,43,51,43,190,41,130,38,85,35,45,33,110,31,187,31,249,34,168,40,239,51,109,67,37,83,141,100, +207,112,17,113,253,101,187,82,138,66,173,58,103,55,189,53,13,52,164,50,162,48,141,46,150,45,113,45,228,42,42,37, +150,32,107,29,228,31,226,41,216,53,223,67,38,81,75,90,90,96,65,97,178,94,188,94,162,95,102,93,100,87,108,72, +203,49,138,25,242,2,249,246,205,248,164,4,172,20,140,33,173,41,212,46,13,49,134,46,252,42,143,39,36,34,243,29, +155,25,132,22,4,21,103,18,172,17,175,15,99,10,163,4,223,254,174,249,133,246,90,245,81,245,203,246,161,245,56,243, +79,243,184,240,231,236,164,236,214,239,78,243,163,245,191,245,35,236,10,215,146,185,70,155,21,136,71,133,192,148,108,174, +243,195,164,209,153,216,174,217,77,215,156,209,89,202,240,193,24,180,219,162,10,142,0,128,0,128,25,130,17,136,4,150, +124,158,226,165,13,172,237,173,198,181,230,190,40,197,233,200,185,197,118,189,203,177,75,164,41,150,26,134,0,128,0,128, +0,128,0,128,0,128,244,142,229,165,95,185,129,200,245,211,130,221,209,226,142,227,130,224,21,213,223,194,128,177,110,168, +116,168,164,176,138,192,109,209,26,224,11,235,105,241,28,246,97,249,77,252,4,2,190,8,207,13,67,19,64,21,2,20, +200,17,140,8,29,1,93,2,27,9,138,20,193,31,30,43,121,51,23,55,71,58,219,60,144,64,223,66,17,68,100,70, +137,73,97,80,196,89,7,101,220,111,64,118,203,115,27,99,50,74,65,53,212,42,116,42,127,47,194,51,246,53,23,56, +87,57,64,57,197,55,37,57,15,62,115,68,114,76,88,81,146,82,192,78,43,71,114,64,21,59,56,59,53,60,192,59, +64,62,129,64,236,64,74,63,36,61,190,59,37,60,66,62,201,63,243,65,8,68,187,68,209,66,30,65,216,65,79,67, +193,69,136,69,104,69,125,69,235,66,81,67,203,69,165,72,67,75,66,79,130,83,148,83,2,83,68,80,111,75,221,70, +134,67,35,65,40,60,13,58,44,57,55,55,100,55,22,54,182,53,85,54,90,54,7,55,159,54,122,52,63,47,106,40, +21,35,62,31,249,26,247,23,16,23,185,21,255,20,35,20,25,20,149,19,36,16,127,12,231,6,132,1,6,254,162,250, +20,248,179,243,255,237,95,233,11,230,58,227,35,226,38,228,96,230,24,233,249,235,2,237,7,236,110,233,86,230,205,226, +76,222,224,213,251,202,101,192,179,181,117,176,252,179,113,189,89,201,45,216,92,234,171,249,185,3,158,8,170,9,212,11, +134,14,217,14,159,10,209,253,164,231,192,203,50,177,190,161,73,160,150,168,10,184,199,205,145,231,215,255,127,20,73,36, +133,44,249,45,196,36,61,18,179,252,121,229,122,209,137,194,178,184,176,180,212,179,144,180,59,180,253,178,21,178,179,178, +49,183,145,187,217,190,142,196,53,203,102,209,133,214,44,217,164,218,123,220,191,222,116,227,4,237,151,248,177,254,155,249, +194,234,106,215,169,192,234,169,197,155,18,153,174,158,227,165,97,172,103,180,89,187,247,193,187,202,227,212,243,222,84,230, +95,233,179,229,156,219,226,205,58,192,9,182,107,175,247,170,126,167,131,168,6,172,42,176,111,184,149,191,110,197,76,202, +206,203,201,206,254,211,65,218,211,222,109,222,232,215,16,204,150,189,206,177,201,175,18,179,8,185,146,192,224,196,25,202, +102,207,73,212,210,215,29,216,102,218,121,221,96,226,253,231,103,234,195,235,47,233,246,225,239,217,181,212,191,212,13,217, +189,224,208,234,67,242,179,245,149,248,164,248,178,247,113,249,7,253,204,0,161,2,127,4,139,2,43,254,62,251,21,247, +79,247,68,249,65,252,50,4,150,10,54,14,237,15,23,15,116,12,151,12,73,14,51,15,85,20,125,26,98,34,70,41, +166,42,8,41,80,31,114,18,17,9,132,3,114,2,161,2,182,2,212,1,69,2,185,2,158,3,46,6,131,5,94,3, +0,0,246,252,149,251,183,252,80,2,152,7,98,14,135,19,24,20,248,20,38,20,41,18,37,15,193,12,33,11,254,6, +57,3,37,255,156,249,32,244,242,240,189,242,164,249,6,3,10,12,204,22,192,34,81,46,189,56,97,64,207,68,23,66, +171,56,195,41,190,24,131,14,171,12,55,19,0,29,79,37,181,46,25,54,238,59,132,64,186,66,216,69,228,69,48,68, +210,68,29,69,100,73,18,82,63,91,5,102,100,110,138,109,205,95,110,73,245,54,158,49,165,56,72,72,92,94,228,111, +204,117,149,117,62,109,111,96,102,91,122,88,120,81,187,74,245,65,181,57,218,53,117,49,5,45,101,39,201,32,160,29, +229,27,107,27,94,26,57,24,120,22,106,18,180,13,33,8,235,2,246,254,243,247,175,241,174,237,140,232,106,229,78,231, +240,235,223,240,227,243,59,242,70,238,244,232,229,226,90,224,70,223,22,222,223,222,51,224,142,224,51,226,74,229,108,231, +203,234,203,238,222,242,174,247,242,248,81,249,34,250,213,248,130,249,75,252,208,255,31,5,140,9,255,12,202,16,181,16, +154,13,253,11,153,10,102,9,39,9,83,12,203,18,226,24,95,30,231,31,137,31,200,30,38,28,155,26,130,22,49,18, +197,13,180,7,12,8,15,13,164,21,75,32,25,42,155,51,35,56,188,54,73,47,99,38,186,32,18,31,253,34,25,40, +7,47,223,53,144,57,195,58,65,54,209,46,34,38,81,30,107,23,19,14,111,6,17,3,63,4,31,9,91,16,197,23, +103,32,67,43,177,51,37,59,99,64,20,67,112,67,79,61,42,50,173,33,46,16,177,0,66,246,160,245,12,249,23,255, +75,5,34,10,30,13,11,13,101,13,92,11,66,12,171,16,16,18,143,18,90,15,23,8,117,253,28,244,215,238,133,233, +184,230,89,227,102,222,119,217,230,211,138,208,99,205,242,202,175,200,73,199,201,200,135,199,24,195,222,187,207,177,46,167, +10,153,63,138,135,131,87,132,198,133,157,133,239,132,225,131,3,129,0,128,0,128,0,128,0,128,0,128,0,128,0,128, +0,128,0,128,120,128,245,129,200,129,0,128,0,128,0,128,0,128,0,128,0,128,0,128,95,129,212,129,179,129,4,129, +123,128,0,128,0,128,0,128,0,128,0,128,237,129,153,133,163,132,0,128,0,128,0,128,0,128,0,128,0,128,231,131, +107,146,51,162,14,175,174,183,222,184,108,181,232,174,190,168,46,167,128,167,91,172,217,177,101,182,44,189,54,194,42,200, +70,205,233,210,230,218,196,225,241,233,250,239,82,245,231,248,101,248,211,248,127,249,182,254,135,7,10,16,191,24,5,29, +43,27,241,22,24,22,236,23,121,29,228,38,13,44,5,43,14,37,210,31,92,33,154,41,218,51,237,60,7,71,254,76, +241,79,143,83,50,83,207,81,143,80,7,79,182,77,115,76,101,79,110,85,196,92,199,100,182,107,193,114,231,120,4,126, +255,127,64,125,241,122,154,121,106,121,96,116,70,97,142,79,20,72,173,69,185,73,136,78,233,84,15,94,233,102,0,115, +193,123,2,126,255,127,255,127,163,123,250,117,243,110,249,102,87,98,11,95,209,91,201,90,82,91,218,92,162,95,115,99, +211,102,249,103,204,101,42,100,13,100,26,100,142,102,118,106,107,114,166,123,255,127,255,127,255,127,235,126,118,123,223,109, +169,92,89,78,73,70,74,67,240,66,169,67,172,67,133,65,202,59,160,54,251,50,96,49,252,49,212,49,94,47,154,39, +1,28,104,14,68,1,180,245,188,234,225,228,246,226,59,227,227,231,178,239,243,246,63,252,138,0,71,2,110,5,19,12, +88,20,125,30,87,37,56,39,143,33,168,14,38,244,100,222,251,213,141,219,144,234,172,253,9,16,57,27,122,26,41,17, +174,5,133,251,233,244,150,243,77,244,116,243,23,242,141,240,165,238,75,238,56,239,93,238,146,236,233,232,170,226,253,220, +8,215,16,211,173,208,19,206,83,205,34,203,224,200,40,198,126,192,70,188,169,186,178,187,228,190,83,197,136,205,188,212, +40,222,55,229,53,232,184,233,84,230,34,225,232,217,96,209,79,205,148,204,247,207,153,211,84,213,237,216,94,218,17,218, +76,218,118,220,167,223,15,225,199,228,136,229,106,227,199,229,92,231,139,232,180,235,25,238,134,239,180,240,88,239,85,236, +99,236,22,235,134,233,187,235,153,239,11,246,153,253,225,6,82,12,198,8,12,2,139,246,44,231,147,217,151,205,212,197, +125,195,174,191,108,185,104,180,73,177,61,180,40,185,212,189,208,198,92,206,66,210,8,209,127,202,63,196,137,190,122,186, +184,184,167,184,139,185,157,186,199,189,35,197,197,207,234,215,174,221,112,226,117,226,236,222,184,218,211,215,156,213,104,210, +38,209,249,209,185,209,14,210,132,211,104,211,248,210,206,210,29,210,215,209,43,212,165,217,77,222,254,225,57,229,151,229, +255,227,15,224,147,218,86,214,2,211,175,208,63,206,205,203,122,203,186,201,26,199,191,198,166,198,248,198,180,198,117,199, +159,200,121,201,184,207,96,213,34,217,9,223,220,227,168,232,174,234,224,234,153,235,99,234,21,233,139,233,239,237,54,244, +103,251,145,3,217,9,7,16,46,22,53,29,225,35,30,38,127,38,142,38,50,38,239,38,137,40,155,43,173,48,235,52, +16,57,36,61,206,61,35,60,175,57,3,57,153,58,83,63,210,70,128,75,52,79,172,81,82,82,22,82,118,80,96,82, +160,84,144,86,212,90,36,95,189,100,120,105,190,109,41,113,4,113,151,111,19,110,24,110,97,110,195,109,182,112,107,119, +237,122,20,124,114,127,255,127,255,127,203,123,76,98,212,74,114,61,84,57,78,62,123,70,237,81,43,94,138,101,216,105, +1,106,218,101,182,96,82,90,159,82,68,73,162,65,132,60,165,55,164,54,32,54,38,53,33,54,61,52,180,49,23,49, +33,47,77,44,119,44,50,45,94,41,188,34,105,26,182,18,246,12,121,8,189,8,166,12,58,19,247,29,84,40,203,43, +138,37,232,22,236,0,249,229,251,206,25,192,73,183,40,183,52,190,240,202,4,220,168,233,69,246,23,0,79,253,107,239, +92,217,165,188,164,161,161,147,156,144,119,146,195,152,167,157,108,162,114,169,199,172,99,173,34,175,187,177,11,179,167,177, +172,175,68,175,249,175,30,180,116,186,159,191,14,197,45,198,229,192,235,182,180,169,110,159,54,154,175,153,1,156,78,161, +238,168,181,175,71,184,100,193,115,199,25,199,59,192,114,182,233,173,128,174,53,180,64,186,58,191,29,189,219,185,134,184, +191,182,115,182,224,181,175,182,211,185,27,187,162,189,84,196,73,203,136,211,38,220,143,225,110,228,224,229,172,231,172,231, +197,230,233,230,32,232,74,236,130,238,67,241,238,245,128,246,246,247,118,250,58,252,54,1,192,6,115,10,76,15,9,20, +47,21,97,22,50,23,33,22,244,21,114,20,224,20,149,23,168,24,207,27,135,29,99,29,230,30,185,30,50,31,140,32, +237,34,74,38,0,41,0,48,91,54,53,57,86,56,157,46,168,34,232,23,157,16,243,13,130,13,109,16,206,18,21,23, +145,27,57,28,169,28,125,25,141,19,25,12,4,2,232,248,103,244,64,243,230,240,129,238,200,233,94,228,116,226,74,226, +58,230,164,235,248,241,62,249,178,253,219,0,33,2,140,1,14,255,166,252,237,252,66,253,73,251,92,244,215,233,4,223, +27,217,254,219,204,228,50,243,108,4,59,21,90,36,181,44,193,44,239,33,148,11,80,243,223,222,42,209,54,206,34,211, +177,221,212,235,122,250,26,6,161,11,74,14,187,11,36,5,14,0,84,250,87,246,17,244,214,242,30,242,95,239,124,237, +164,235,108,236,192,240,160,243,5,245,210,244,62,244,15,243,27,242,10,243,98,244,228,246,112,248,30,250,51,254,248,255, +11,255,241,251,204,244,109,236,203,227,104,220,79,218,107,218,120,219,113,223,4,228,7,231,72,231,253,229,133,228,102,226, +224,222,203,219,16,219,72,218,90,218,31,218,163,216,66,217,235,214,202,207,215,202,167,200,171,197,99,196,90,198,144,201, +22,208,16,218,177,229,97,240,240,247,53,253,27,255,217,1,213,10,147,22,150,34,33,46,120,50,45,45,161,34,219,19, +83,5,134,251,206,245,14,244,85,244,205,245,252,247,42,249,220,250,203,254,42,3,32,9,5,15,220,14,155,13,183,10, +63,4,76,1,52,0,40,1,45,4,110,7,72,10,10,10,146,7,41,1,31,251,75,247,139,244,130,247,166,252,230,3, +20,12,153,20,14,32,253,41,107,50,118,50,185,39,10,25,106,4,12,238,170,218,39,205,161,202,114,209,24,222,158,236, +228,252,131,14,90,28,49,38,86,43,197,42,159,38,183,32,193,28,68,24,192,15,162,3,232,241,110,224,77,212,159,205, +81,205,122,205,214,205,221,208,247,209,217,209,58,209,146,204,225,198,91,194,183,188,192,184,192,182,135,183,53,189,47,196, +65,205,125,213,177,216,178,217,197,215,127,211,17,209,18,210,113,212,67,215,161,218,87,222,199,227,138,235,132,245,57,0, +132,13,237,27,108,36,64,33,225,13,89,243,189,218,248,201,202,200,204,207,70,217,191,228,107,241,80,0,87,13,3,23, +57,29,126,31,165,29,35,24,224,17,240,12,17,11,41,12,148,16,215,23,252,31,43,39,67,45,185,51,13,56,82,55, +150,44,83,25,5,7,186,249,100,244,92,246,52,252,92,2,223,6,105,10,153,12,40,15,161,14,198,10,196,6,125,1, +203,254,243,253,175,254,174,2,96,7,165,14,183,22,40,27,222,28,116,29,225,26,138,21,105,17,156,13,239,10,232,10, +228,10,167,10,92,13,79,20,2,28,231,36,46,49,19,61,60,71,0,81,71,87,109,85,11,75,55,58,157,37,172,18, +4,7,90,6,234,15,176,30,0,49,0,67,0,79,218,86,139,89,147,85,73,79,19,72,62,65,39,59,116,52,142,46, +64,42,178,39,4,39,109,38,173,37,2,38,113,38,36,40,93,43,50,46,161,49,163,51,43,51,11,50,211,47,139,44, +174,41,174,39,104,36,111,33,231,31,42,29,239,24,231,19,184,15,220,12,127,12,22,14,104,15,15,18,193,21,69,25, +192,27,2,30,223,30,13,27,64,20,132,12,144,5,251,254,214,251,63,254,124,3,181,13,242,23,73,29,161,29,154,25, +222,20,36,14,58,8,201,4,187,0,139,249,238,240,25,238,211,237,61,240,230,248,72,3,108,14,54,26,141,37,26,44, +76,45,248,43,157,39,141,36,219,35,34,33,216,28,138,26,91,24,152,21,29,19,188,14,85,12,78,13,22,18,230,24, +212,28,3,33,95,35,152,35,19,38,117,42,49,46,203,46,224,47,183,46,14,40,124,30,160,16,141,0,89,242,207,235, +48,238,66,245,177,255,69,10,222,17,153,21,123,24,95,28,99,34,130,44,60,52,141,50,103,33,15,2,174,225,158,203, +24,201,46,216,150,238,243,4,213,18,66,21,46,11,172,247,166,229,139,217,82,214,201,220,77,229,146,236,151,242,147,244, +229,242,140,239,163,232,15,224,40,220,20,223,67,234,117,250,0,6,226,5,118,248,161,226,158,201,15,177,84,157,15,147, +49,147,251,148,61,148,41,148,70,148,100,148,183,149,142,153,5,158,211,159,177,158,156,155,169,152,23,149,95,146,58,147, +139,147,56,145,161,140,126,135,191,133,225,133,143,134,8,136,194,138,72,144,196,148,204,151,211,154,120,155,101,155,226,154, +87,154,47,155,177,157,148,162,192,167,164,172,130,175,120,176,82,178,156,180,150,183,36,186,198,189,123,195,213,202,19,213, +204,223,56,234,242,239,252,234,123,217,9,190,195,163,161,148,178,147,11,155,141,165,41,177,32,188,96,201,180,211,88,217, +170,221,17,223,132,223,131,222,50,221,76,221,185,221,165,221,250,220,115,221,156,219,53,216,169,213,230,212,86,217,105,223, +120,230,23,241,40,255,61,14,185,28,236,43,160,52,88,48,240,31,79,9,226,245,35,234,228,232,20,238,31,242,187,243, +196,243,174,244,174,245,47,247,167,251,251,254,107,0,207,1,34,2,233,3,61,6,16,8,61,11,48,12,44,11,10,10, +252,9,117,13,219,18,74,28,105,39,203,47,116,55,155,58,86,52,83,35,128,12,95,249,14,241,124,245,180,0,171,15, +46,31,21,43,132,52,109,57,187,59,21,63,173,64,203,64,41,65,147,63,7,61,180,61,190,64,152,67,58,69,66,71, +171,74,109,77,70,82,11,89,12,95,1,99,32,94,72,77,219,52,110,30,18,20,23,26,243,44,28,71,46,102,223,123, +16,127,181,115,70,87,180,52,61,26,163,10,73,9,84,16,49,24,148,29,95,28,243,19,55,7,98,248,146,233,150,224, +148,221,54,224,192,232,23,243,0,0,186,11,204,20,54,27,63,25,125,18,174,9,175,0,140,249,188,244,172,244,55,245, +71,246,86,246,197,240,43,231,189,220,123,217,135,221,249,231,113,249,29,7,157,15,61,22,209,24,50,26,120,27,47,27, +139,25,81,21,60,14,23,7,175,0,215,251,209,251,151,0,209,6,220,10,147,10,188,4,149,247,159,228,55,212,46,205, +56,209,155,224,42,247,120,19,30,50,20,71,195,74,157,59,238,32,53,6,222,240,87,225,203,211,60,200,238,192,184,189, +11,191,247,197,177,210,201,224,105,237,176,250,44,9,165,21,6,30,62,34,158,32,111,24,218,8,241,245,15,230,240,218, +38,214,77,212,92,212,94,214,77,215,196,217,103,220,31,222,26,224,200,225,209,229,73,236,57,244,182,250,119,254,225,0, +19,255,164,249,168,241,200,232,211,227,131,226,47,227,34,228,248,227,144,228,225,228,130,227,80,227,155,227,172,228,242,233, +40,240,19,245,154,250,46,0,75,3,116,4,171,6,171,8,158,11,107,15,223,17,197,20,184,22,64,26,181,29,1,29, +156,29,226,30,244,32,219,34,12,34,227,35,230,37,49,39,144,42,26,45,118,47,147,50,130,53,231,56,199,62,35,67, +155,65,144,61,150,54,170,46,178,42,11,42,230,44,62,49,79,52,50,54,112,54,194,52,5,50,20,47,113,43,29,39, +156,35,167,33,108,31,180,28,216,27,231,30,0,40,225,51,38,63,38,72,178,70,34,56,14,36,179,16,176,254,83,239, +76,230,21,226,159,223,88,221,92,219,208,218,203,218,17,220,88,220,121,218,93,218,19,217,134,212,167,208,62,207,97,207, +38,206,83,202,136,196,9,189,176,179,197,169,108,161,105,153,204,147,192,146,100,147,221,151,133,160,209,170,247,182,206,192, +196,197,173,199,100,200,173,200,58,201,154,204,156,210,35,221,41,238,0,3,179,25,91,44,66,52,118,44,135,21,93,250, +131,228,136,217,173,217,31,224,192,230,172,234,225,239,229,243,198,246,135,253,176,3,215,10,239,20,110,29,170,37,93,44, +186,46,131,46,202,44,248,41,17,39,32,37,37,36,210,34,146,34,76,38,11,44,170,50,156,60,128,73,95,85,138,95, +144,107,144,116,226,118,121,115,157,99,28,77,231,59,253,50,12,53,144,58,203,59,221,55,44,46,75,38,117,36,206,36, +36,37,244,36,58,36,173,33,250,29,213,26,217,23,16,21,28,18,84,16,223,18,35,24,86,28,201,30,73,28,161,16, +56,254,235,234,83,220,55,213,167,210,237,207,5,206,180,207,91,211,20,217,127,223,160,229,87,238,113,246,44,253,40,3, +163,5,161,5,36,1,1,249,33,240,87,232,91,231,49,236,113,245,31,1,192,10,111,20,242,29,111,40,139,53,241,67, +9,81,152,82,67,69,146,44,106,11,117,237,163,223,190,226,226,237,27,253,56,13,205,24,255,32,84,36,57,35,24,35, +165,36,104,38,98,39,187,38,99,34,213,27,164,19,74,9,185,1,129,251,141,246,0,246,15,248,226,253,105,4,131,7, +159,4,67,247,200,225,167,200,202,177,119,164,70,163,107,172,136,187,50,206,118,226,80,246,185,4,235,6,118,253,177,235, +198,216,95,203,112,194,212,189,139,187,172,187,77,192,109,196,239,197,197,194,102,185,223,175,11,170,186,169,128,174,28,181, +38,188,96,193,237,194,103,194,21,194,76,193,70,193,17,195,127,196,49,199,225,200,241,198,213,196,245,193,120,191,117,191, +250,191,211,191,39,190,168,188,217,188,159,190,138,194,22,199,243,200,192,198,42,194,49,189,141,187,88,190,239,194,9,201, +214,205,102,208,63,211,254,214,242,219,81,225,89,232,124,240,172,248,223,1,97,10,88,19,246,27,68,34,99,39,44,41, +13,38,120,31,98,23,223,13,144,3,80,250,209,242,161,238,104,238,236,240,24,243,21,246,143,252,237,4,255,13,105,20, +20,26,192,31,141,31,251,28,39,25,49,19,98,14,97,8,233,2,44,255,164,250,125,248,20,248,102,247,196,247,227,247, +60,248,74,248,139,247,98,248,58,249,208,249,76,250,70,249,250,247,44,246,200,244,208,244,234,244,113,244,5,243,175,240, +131,236,255,231,251,228,224,226,239,226,108,227,244,226,10,227,157,227,191,228,25,228,208,224,139,219,132,212,13,207,203,203, +135,203,76,207,192,213,56,222,237,229,94,233,214,228,190,215,206,197,172,181,19,174,63,174,115,180,107,189,249,195,38,200, +73,202,202,202,201,202,149,204,245,208,214,213,253,217,202,219,170,220,41,221,207,219,234,219,57,223,95,227,197,231,203,234, +66,235,118,236,166,236,216,233,43,231,65,230,223,231,146,233,50,238,233,246,170,252,184,1,220,6,189,9,18,13,35,16, +80,18,40,19,72,19,44,19,161,16,186,13,245,11,128,11,247,14,15,21,76,27,1,35,160,44,39,54,115,62,45,68, +200,69,177,67,130,62,27,57,3,55,16,54,228,53,205,55,198,55,25,55,117,57,15,61,98,66,198,72,200,77,252,80, +159,82,179,83,190,83,2,83,102,81,220,78,162,76,241,74,149,74,148,73,66,71,12,68,129,64,207,63,183,64,4,67, +101,70,154,72,160,73,73,73,100,72,186,70,206,70,170,73,98,78,183,84,125,89,52,93,87,94,150,93,50,93,115,91, +35,91,111,93,56,97,49,99,121,99,111,94,165,79,77,68,59,64,33,67,139,77,189,88,66,100,158,105,116,109,100,115, +240,114,120,113,238,109,192,105,136,103,168,98,47,94,148,87,224,81,215,79,189,77,105,78,224,79,236,80,20,82,151,81, +179,78,57,74,23,70,185,65,29,63,20,63,47,63,201,62,195,62,251,60,59,55,99,49,30,44,39,39,73,34,243,29, +253,27,177,25,100,24,207,22,193,19,251,16,214,12,119,9,200,5,13,3,36,3,185,2,152,1,120,255,222,253,3,251, +92,245,172,240,37,237,95,235,97,235,202,234,182,233,241,231,121,228,183,222,67,212,125,200,197,191,145,184,51,182,137,185, +150,190,144,193,0,193,64,192,101,189,133,185,128,184,233,182,226,178,16,172,255,163,194,156,54,149,153,143,166,141,91,141, +54,142,16,143,163,143,225,143,27,143,105,142,149,141,254,141,252,142,209,143,143,145,105,145,169,144,113,143,181,141,84,143, +8,147,217,150,143,153,152,154,37,153,63,148,157,146,15,151,40,152,71,149,132,146,147,138,0,128,0,128,0,128,0,128, +0,128,204,135,139,154,20,172,42,186,19,193,206,195,135,192,120,184,77,176,150,168,13,161,71,155,19,152,108,149,181,148, +182,151,128,154,14,154,227,154,158,156,56,159,128,164,184,167,168,172,37,178,228,180,159,183,53,184,148,185,187,186,88,187, +89,189,128,189,203,190,38,192,23,190,138,187,7,185,147,182,96,182,227,185,114,193,21,202,142,211,48,222,232,230,235,239, +95,249,144,2,86,10,123,15,243,20,87,24,44,27,50,32,238,37,12,42,232,44,152,50,151,53,59,53,56,52,134,48, +10,47,124,48,109,49,239,51,172,56,161,59,161,62,184,67,113,73,186,79,245,83,14,87,125,88,209,86,222,85,111,86, +77,86,93,88,193,91,85,91,7,91,42,86,213,77,61,74,74,70,197,68,206,68,245,68,58,71,245,71,49,72,79,71, +201,70,75,72,134,75,86,77,253,77,168,79,219,79,106,82,95,83,131,83,108,86,87,86,0,87,129,88,243,88,188,89, +16,92,171,95,169,99,31,107,183,116,29,124,25,125,188,124,79,123,234,111,211,93,69,72,248,52,148,42,170,38,32,38, +229,38,173,40,222,41,101,41,47,39,83,36,124,34,146,32,188,30,246,28,173,27,202,25,37,22,240,18,213,12,21,3, +244,249,73,241,14,235,254,231,57,232,31,235,250,237,243,241,194,243,109,244,2,244,231,242,102,249,204,2,96,14,225,27, +166,35,88,34,67,22,179,3,63,235,187,213,137,201,142,193,202,190,57,191,52,194,239,194,150,193,227,191,77,186,230,183, +129,184,130,188,120,196,33,205,59,213,82,216,161,215,226,209,68,203,130,198,31,193,38,194,210,197,222,199,216,202,248,202, +72,200,208,197,34,195,107,191,75,188,40,188,18,190,254,193,31,200,57,205,195,210,44,216,45,219,123,221,231,223,173,227, +169,228,149,230,65,236,239,238,63,244,65,252,161,2,9,9,233,12,246,11,195,5,215,251,68,239,213,227,166,221,98,220, +68,222,207,225,95,231,133,237,131,242,83,245,190,247,104,250,220,251,108,252,226,249,147,246,226,242,158,238,124,236,121,233, +189,231,8,231,44,230,202,230,196,228,67,226,115,223,218,218,176,214,175,208,122,204,240,203,229,204,20,209,160,213,248,217, +8,223,84,226,205,228,84,230,230,229,35,229,36,229,93,230,156,233,46,240,173,249,1,3,207,12,78,23,23,29,154,27, +196,17,29,2,214,243,240,235,105,235,48,239,16,246,118,251,227,254,251,3,171,6,39,9,213,9,254,6,13,6,142,3, +95,1,22,4,39,10,136,17,221,23,171,28,216,30,109,29,51,24,99,18,78,14,200,9,8,6,72,3,215,0,230,254, +74,252,25,251,12,251,149,250,45,252,138,254,8,0,205,0,17,1,34,3,40,8,80,14,136,17,80,20,105,24,101,26, +72,28,98,30,51,33,30,36,107,37,44,39,109,40,251,37,74,30,247,22,143,18,141,17,171,21,89,25,182,28,158,30, +193,28,248,26,0,26,109,27,196,30,226,33,7,36,238,36,231,36,18,37,98,38,105,37,156,32,147,21,169,2,94,238, +192,220,184,209,42,210,234,218,178,230,130,241,39,248,98,250,245,251,50,255,56,0,129,0,37,255,9,247,227,235,83,220, +246,198,101,176,171,155,97,143,226,144,151,153,60,162,248,172,155,182,235,193,147,207,248,213,118,216,190,213,253,203,114,190, +70,172,69,152,115,140,202,140,221,139,97,139,57,138,73,136,93,150,112,168,95,182,123,194,76,199,82,199,148,194,254,185, +109,174,19,160,43,144,102,135,136,136,44,137,71,137,49,137,249,136,66,137,135,135,33,132,8,128,0,128,0,128,0,128, +32,132,163,139,246,148,162,160,80,172,91,183,111,194,194,203,160,209,53,212,251,214,243,214,146,211,186,206,193,196,7,188, +65,181,216,177,94,179,60,182,157,189,223,195,90,203,131,213,207,222,229,234,69,247,224,5,199,20,45,34,82,47,50,56, +226,59,82,57,148,48,189,35,141,23,41,13,157,4,159,255,154,251,36,248,34,246,223,247,157,254,93,9,198,22,232,38, +109,57,253,75,181,93,161,105,91,110,122,107,145,93,18,71,145,44,140,19,88,2,222,253,21,4,185,18,216,39,111,62, +74,84,112,102,83,114,129,116,55,111,29,100,38,81,22,59,183,35,237,16,99,9,169,11,35,23,232,40,183,58,182,74, +120,86,173,90,182,91,201,90,234,90,221,91,110,90,21,91,52,90,244,88,55,86,207,78,0,69,219,53,102,38,82,25, +174,18,57,19,161,20,21,23,26,22,164,15,16,6,168,252,168,244,25,241,22,244,99,249,185,1,156,11,130,22,35,33, +74,42,64,49,120,51,76,51,127,43,152,26,73,3,88,231,34,206,104,190,64,187,33,193,59,207,96,224,176,239,119,254, +130,10,235,18,156,22,246,25,134,29,147,30,152,30,158,28,6,26,20,24,5,23,112,21,248,19,98,16,254,9,206,5, +170,2,201,1,225,255,114,250,119,243,5,236,218,234,201,238,185,246,225,2,133,13,48,21,251,26,25,30,87,29,166,26, +44,24,58,24,11,27,199,30,215,35,201,45,201,59,133,70,236,75,10,69,118,47,235,17,179,239,108,213,54,201,154,199, +248,205,234,215,24,231,85,249,247,9,157,25,158,37,15,44,142,48,199,53,85,60,203,66,53,71,35,72,145,64,37,47, +114,24,236,0,161,236,72,223,250,217,1,220,196,228,53,241,248,255,39,15,120,26,70,32,202,33,6,32,105,25,151,17, +157,10,15,5,87,4,40,6,13,10,152,15,59,22,174,28,151,31,231,31,20,29,225,24,13,22,178,20,163,22,147,26, +134,28,161,30,244,33,22,36,81,41,80,47,86,51,235,54,212,54,241,54,54,56,209,56,1,58,80,58,35,58,67,57, +102,56,175,56,33,58,47,60,237,62,123,66,213,68,21,70,118,71,78,74,132,77,52,80,185,81,248,79,122,75,182,66, +6,55,72,43,89,33,103,28,116,27,185,29,190,33,53,39,116,45,213,48,197,50,83,51,53,50,58,50,136,50,84,48, +20,45,104,43,27,40,112,35,102,30,3,23,83,17,152,13,212,11,218,12,56,13,174,14,191,16,218,19,86,25,38,29, +91,32,205,34,231,34,102,33,247,29,180,25,153,20,247,16,135,15,104,12,238,8,131,5,198,0,194,254,74,1,245,7, +234,16,148,24,129,30,160,34,119,37,252,34,79,25,139,11,108,248,14,230,76,218,70,213,24,216,239,222,58,229,170,234, +91,239,31,241,65,243,56,245,12,245,148,247,66,251,38,1,164,8,16,14,19,14,88,3,104,238,8,210,21,186,158,172, +128,167,32,171,119,177,8,186,210,196,12,207,193,215,48,223,222,228,151,228,59,224,144,217,100,211,0,209,85,210,26,216, +166,222,194,229,172,236,110,239,25,240,243,237,172,229,142,217,206,203,116,193,100,191,95,193,12,198,77,202,76,202,189,200, +148,197,43,194,94,191,147,190,144,192,8,196,26,203,106,212,204,221,87,231,182,238,84,240,48,236,58,226,63,211,117,195, +49,181,229,172,28,172,161,174,37,177,138,181,121,188,104,195,246,204,164,216,126,231,9,249,146,7,73,19,151,25,225,20, +218,2,119,231,107,201,129,179,8,175,184,184,174,204,94,229,170,253,38,19,84,33,207,40,159,42,151,36,168,25,44,14, +168,1,208,246,29,237,31,228,248,221,101,216,5,214,229,212,189,211,162,211,156,211,164,212,173,213,241,216,242,219,221,224, +224,230,102,232,127,233,227,229,24,222,100,211,26,196,121,182,251,172,74,168,139,168,100,174,22,184,111,197,50,212,244,224, +21,236,180,242,90,244,75,239,11,230,106,216,220,199,118,188,20,178,73,170,169,167,97,168,1,173,111,180,137,191,217,204, +72,219,229,232,225,245,221,0,74,8,51,12,194,11,125,11,171,8,250,2,85,253,138,247,45,243,20,240,77,241,125,244, +52,249,118,255,137,2,146,3,92,4,152,5,9,6,236,6,182,7,26,8,231,8,194,8,157,10,54,12,3,14,143,17, +55,19,148,18,245,15,91,12,149,6,31,255,81,247,213,239,247,234,79,232,150,230,50,231,232,234,83,238,106,241,30,244, +229,245,30,247,181,246,177,245,115,242,150,238,60,234,20,228,20,223,18,219,241,215,132,212,63,210,176,209,198,208,137,208, +43,208,206,207,217,208,20,209,254,205,25,203,138,200,139,198,196,198,190,196,111,195,141,195,58,193,67,190,84,188,69,188, +31,192,216,198,38,204,68,211,75,217,123,219,254,222,157,225,73,228,163,228,107,225,62,220,199,209,102,200,16,196,140,193, +245,193,119,197,215,200,231,204,176,210,200,217,209,225,83,233,167,241,14,248,227,252,215,255,40,254,47,250,29,244,2,242, +130,242,22,245,239,253,104,5,223,11,37,16,121,16,176,17,222,16,189,11,68,4,224,251,130,244,79,242,179,244,93,250, +85,3,105,13,113,23,199,31,185,38,105,42,77,45,254,48,95,49,100,50,51,50,186,47,179,48,249,49,97,50,29,55, +189,63,41,74,210,86,168,96,62,98,251,88,200,69,152,44,123,18,144,0,46,249,228,252,183,9,214,25,209,45,227,63, +184,76,214,84,189,84,170,79,169,71,129,62,238,53,201,44,22,39,233,37,67,37,141,35,60,34,198,32,36,29,118,26, +32,28,226,35,121,46,106,54,243,59,233,59,79,55,114,49,151,41,102,36,27,32,136,27,128,26,230,26,42,29,117,33, +244,37,153,43,118,50,68,55,72,57,6,58,88,55,78,50,78,45,236,41,61,40,182,36,221,32,66,30,251,28,211,30, +149,34,104,39,229,42,42,44,246,43,134,39,195,34,107,32,99,31,249,34,1,41,136,47,200,53,103,58,239,62,255,64, +184,64,243,62,203,57,143,47,105,32,190,15,69,255,62,245,13,245,118,250,115,3,142,13,203,22,57,29,113,33,78,36, +167,36,88,36,205,33,37,29,100,26,231,25,34,29,41,36,222,43,11,53,49,61,249,61,78,55,13,40,106,18,249,253, +59,236,128,227,159,231,160,239,86,246,33,250,248,247,58,239,7,229,112,223,94,221,63,223,171,230,156,240,131,250,113,4, +197,14,251,21,2,24,236,18,32,4,207,237,161,211,129,190,25,181,206,180,87,185,137,192,218,199,71,204,15,208,98,210, +85,212,177,217,31,225,46,236,255,248,137,5,8,13,41,10,138,255,224,236,205,216,107,201,133,190,51,187,8,191,137,201, +53,216,129,232,36,250,25,10,245,22,198,32,11,39,157,39,240,32,229,19,180,0,254,234,195,219,137,216,17,226,238,244, +193,11,80,35,111,54,126,67,136,73,56,69,176,55,37,36,104,15,60,252,195,237,233,231,167,234,185,240,51,244,150,245, +91,244,242,243,170,246,161,247,130,246,30,245,69,247,36,253,254,3,221,8,123,9,124,7,165,1,238,250,203,244,49,238, +201,234,252,233,10,236,105,241,108,247,186,252,153,255,101,252,181,243,106,233,187,222,143,215,157,214,242,218,12,224,187,223, +53,218,133,210,230,206,17,211,57,219,114,229,236,239,222,247,204,253,69,1,36,3,213,5,126,5,168,0,142,249,110,240, +178,231,24,222,204,209,132,196,237,180,150,165,129,156,124,152,202,153,50,163,177,177,59,195,77,211,76,220,109,222,135,218, +92,211,42,205,54,200,169,193,103,184,26,171,157,156,191,148,244,148,94,155,153,166,204,179,213,187,83,187,230,180,41,172, +203,168,93,170,221,174,42,181,253,184,87,188,144,189,185,189,85,189,151,186,68,185,6,183,233,181,41,184,21,188,65,195, +12,202,47,207,40,211,98,214,184,218,255,221,96,225,17,230,32,234,39,238,178,241,109,243,161,242,100,242,113,244,251,244, +150,246,159,249,147,251,212,254,247,2,69,9,83,18,172,29,106,41,79,51,198,60,241,65,128,66,246,63,23,59,40,56, +252,53,30,53,125,54,11,57,241,59,9,63,193,68,52,74,143,78,223,82,64,84,216,82,56,79,164,75,5,74,202,73, +219,77,3,85,108,91,29,98,75,103,0,106,77,107,84,107,226,107,171,107,86,108,136,110,164,112,127,117,123,121,51,123, +234,123,140,119,54,109,133,94,135,80,124,70,165,65,208,67,232,73,98,81,125,86,17,88,172,88,184,87,75,87,83,86, +66,83,223,78,83,69,161,56,185,43,96,31,140,24,172,24,70,30,49,38,29,45,169,48,78,46,175,38,110,26,127,11, +209,253,72,243,163,237,213,238,223,243,168,248,149,253,46,0,157,1,249,4,81,7,220,8,221,7,67,4,104,0,98,252, +106,251,154,249,42,243,76,231,71,211,28,187,104,159,226,134,0,128,0,128,0,128,31,138,31,159,211,179,200,198,70,213, +24,217,2,214,244,207,134,200,193,193,51,185,104,176,27,171,42,168,44,165,21,159,99,150,231,142,180,139,40,143,220,151, +84,162,233,172,13,182,222,188,220,193,0,196,162,195,232,194,191,193,232,192,59,192,57,191,121,192,111,194,50,196,214,199, +215,201,138,201,93,201,81,201,1,203,40,205,231,207,133,211,98,212,204,211,240,208,195,205,190,207,216,210,50,214,152,217, +235,217,148,215,42,210,248,203,207,197,81,192,190,189,78,189,56,191,199,193,101,197,146,202,203,207,200,214,241,220,137,226, +207,233,66,239,126,241,2,241,220,239,21,238,198,235,31,236,56,237,87,237,246,237,14,239,28,240,215,241,253,244,7,250, +43,1,0,7,213,11,100,18,55,24,61,29,221,33,23,38,227,42,74,46,92,48,230,50,161,53,181,55,195,57,225,60, +241,64,152,68,187,70,188,72,192,74,240,76,136,80,203,84,182,89,102,94,120,98,179,101,83,104,137,108,37,111,146,110, +47,108,204,103,69,99,10,94,231,88,208,84,47,81,70,79,234,78,146,83,233,92,41,102,85,110,82,114,211,114,213,111, +19,103,16,93,39,83,99,74,170,68,164,63,210,59,214,55,27,51,142,49,235,50,172,54,74,59,104,61,166,62,1,63, +48,61,248,58,119,56,253,52,37,48,216,42,252,38,218,35,116,31,61,27,235,25,67,25,164,24,178,24,27,23,13,21, +154,18,178,14,86,9,219,2,96,254,37,251,229,247,125,244,52,240,125,235,150,229,163,225,15,224,64,223,242,223,81,223, +207,222,199,221,57,219,202,217,115,214,94,210,113,205,156,197,33,190,239,182,219,175,122,169,42,165,244,162,78,161,32,160, +89,157,21,153,72,144,208,134,36,135,31,138,92,139,255,140,67,139,163,136,60,134,223,131,204,130,27,129,0,128,0,128, +0,128,0,128,0,128,166,129,205,131,195,132,5,133,142,132,114,132,79,133,23,134,99,134,194,134,235,135,189,138,7,142, +6,144,230,144,72,145,66,146,72,148,253,149,127,151,174,153,180,153,244,150,209,149,207,152,229,159,169,167,217,173,128,180, +61,185,54,186,235,186,189,187,51,188,183,190,85,194,192,197,2,203,70,208,198,211,241,214,170,217,161,219,132,220,81,221, +63,222,252,222,241,223,187,223,156,224,240,226,68,228,101,230,15,233,214,234,68,236,249,238,42,241,144,241,75,244,246,246, +174,248,245,251,75,253,73,253,247,253,232,255,173,3,105,8,239,13,79,19,123,25,233,29,17,30,250,30,83,33,30,35, +242,36,210,37,144,37,160,35,161,28,181,18,81,12,14,9,187,9,8,16,121,24,40,35,238,45,49,53,5,58,241,59, +41,59,155,57,251,55,117,54,217,54,185,57,163,60,113,62,160,61,132,59,112,58,81,56,24,55,172,57,179,62,111,70, +198,81,170,95,198,109,103,120,222,124,18,122,227,109,87,89,52,67,44,50,139,38,107,30,59,29,241,32,165,36,107,43, +227,51,94,58,226,61,120,59,42,52,163,42,139,32,131,24,24,19,96,16,56,17,209,18,213,19,80,24,52,29,52,31, +233,33,106,35,49,36,255,39,24,46,29,55,214,66,17,78,67,84,43,82,34,70,120,48,165,24,143,6,212,254,239,2, +161,12,166,22,236,31,86,37,129,38,185,38,57,39,170,41,163,47,239,55,199,64,205,71,193,77,190,83,195,86,112,84, +108,75,36,62,95,48,178,35,93,26,71,21,24,21,118,23,18,25,198,25,240,24,31,23,31,19,15,13,165,5,81,251, +130,242,168,237,244,236,240,241,221,250,113,6,131,18,57,31,172,43,108,49,178,43,20,27,89,5,108,238,156,221,39,216, +226,215,191,220,92,231,23,244,202,3,81,21,127,37,231,48,243,51,240,43,65,26,98,2,63,232,33,212,141,200,188,196, +146,200,90,209,169,222,194,236,100,252,13,15,125,29,175,40,241,49,24,54,64,53,184,44,190,30,1,17,24,4,152,248, +110,238,60,229,71,222,54,217,249,213,236,213,62,216,194,219,50,224,89,228,216,231,216,233,120,233,214,233,252,234,157,234, +99,234,123,232,171,229,39,229,255,227,159,227,65,228,88,227,60,226,65,223,41,219,120,215,98,211,96,208,168,207,204,209, +179,213,222,217,31,220,98,221,235,222,109,222,197,223,116,226,124,229,69,236,160,241,159,246,37,252,20,254,145,254,154,251, +34,248,10,248,125,246,17,246,163,248,207,249,204,250,207,252,159,254,39,1,192,3,10,7,117,12,95,17,88,21,141,25, +185,30,140,36,253,39,40,42,93,45,248,47,25,49,222,50,132,55,241,60,254,62,53,61,170,58,100,56,39,54,220,53, +234,55,172,58,136,61,49,65,119,68,14,71,74,74,52,77,192,79,29,79,112,74,158,68,130,60,151,53,8,49,102,45, +119,44,195,42,244,41,32,43,78,44,49,47,136,48,48,49,153,48,227,44,139,43,116,44,161,47,56,53,134,59,56,65, +220,64,177,56,182,39,122,17,73,251,216,228,247,212,110,205,219,201,9,202,97,204,169,209,10,217,74,225,92,232,45,234, +247,232,253,228,230,221,88,215,180,209,154,205,250,205,177,208,232,209,193,209,248,203,114,190,134,172,26,153,184,139,0,135, +152,137,151,144,96,151,216,158,209,164,16,171,36,178,150,181,85,184,72,184,45,182,34,180,115,174,245,169,215,167,241,165, +158,166,12,168,82,168,212,168,57,169,6,170,236,173,140,179,199,187,192,198,59,209,107,220,251,229,154,235,28,236,251,230, +135,222,70,211,174,202,247,196,139,191,9,189,187,188,70,192,83,198,158,206,109,218,173,230,21,245,143,2,190,11,164,17, +188,19,62,20,5,19,198,17,202,19,244,22,88,23,10,20,195,15,77,11,80,8,0,8,82,8,209,9,241,13,220,19, +142,26,103,34,69,41,224,46,79,51,58,51,105,49,156,46,121,41,176,36,224,32,99,32,52,35,230,38,12,42,22,43, +44,43,77,42,44,42,192,43,126,46,148,53,215,62,129,70,88,76,196,78,82,76,189,69,220,62,93,57,110,53,171,52, +239,53,30,56,221,57,232,58,221,60,148,62,52,64,26,65,237,64,4,66,131,66,43,67,170,69,204,71,191,73,254,73, +166,71,202,68,12,66,181,63,3,62,77,61,239,60,29,61,102,62,182,63,29,66,83,70,65,74,239,75,2,76,163,76, +133,78,96,80,48,81,11,81,48,79,111,76,72,72,79,66,60,62,222,59,198,59,206,62,121,66,55,71,231,75,215,79, +63,82,137,81,98,80,252,79,240,78,24,76,227,72,84,71,96,70,74,68,160,66,125,66,6,65,4,64,147,62,246,59, +31,59,138,54,141,49,10,47,146,43,89,42,198,38,186,34,202,32,14,27,236,20,209,14,227,8,12,4,203,253,68,248, +43,244,96,240,5,236,172,232,41,229,44,223,86,217,62,210,126,204,135,201,65,196,230,191,130,189,108,185,90,180,28,175, +63,169,78,162,214,155,32,151,177,147,234,145,28,145,71,143,113,140,88,137,232,133,185,131,48,131,31,131,70,132,233,133, +214,134,12,135,32,134,229,132,213,131,149,131,15,132,210,131,245,131,65,132,46,132,77,132,38,132,90,132,93,132,123,132, +28,132,166,130,112,129,0,128,0,128,0,128,0,128,0,128,53,128,162,130,214,132,128,134,212,136,54,138,102,139,6,140, +189,142,49,147,159,148,248,145,61,138,63,133,14,132,196,130,77,131,185,130,69,132,246,131,66,131,107,140,35,149,43,155, +183,161,3,167,212,174,232,180,244,182,81,183,38,182,207,179,166,177,148,176,95,176,15,179,97,183,241,189,113,197,242,201, +207,207,203,213,245,218,110,225,27,229,151,231,254,234,150,236,57,238,3,242,164,245,5,251,143,1,143,5,111,11,185,17, +86,22,214,27,194,31,12,35,67,38,172,41,65,45,75,47,28,50,27,53,59,56,150,59,89,62,114,65,228,67,147,71, +207,75,181,78,72,81,152,83,110,87,12,90,200,89,142,88,193,86,96,87,197,88,225,90,43,96,202,100,132,103,129,104, +210,104,211,104,108,103,123,102,216,101,55,103,238,104,21,106,128,109,44,111,255,114,105,119,17,119,122,120,157,121,249,123, +145,121,40,104,34,85,104,71,207,64,129,66,143,71,213,79,199,87,211,94,186,98,98,98,237,97,58,96,166,95,7,94, +167,89,21,84,99,75,109,66,205,57,52,53,178,53,214,55,89,61,32,66,229,69,231,72,2,72,146,70,80,70,191,73, +108,80,6,89,195,100,54,108,24,106,221,92,84,68,51,42,108,22,117,11,184,8,49,9,5,13,114,19,157,25,78,32, +40,36,200,38,133,42,85,43,76,43,136,44,115,47,107,51,48,56,160,65,42,78,118,89,253,92,27,83,185,61,45,33, +95,3,76,233,46,219,88,220,111,229,239,243,143,3,89,15,162,22,197,22,93,17,120,6,214,247,103,235,5,225,9,219, +198,217,72,218,110,220,94,220,20,220,202,221,230,222,86,224,160,224,141,225,172,226,214,225,51,225,61,223,39,224,218,226, +74,227,176,226,20,221,121,216,131,215,229,215,156,220,66,226,246,233,122,240,205,242,246,242,225,237,56,232,5,227,129,222, +112,221,102,220,188,221,74,226,35,230,3,232,26,234,233,234,40,232,149,229,34,226,183,224,200,226,138,227,165,229,53,230, +201,225,179,220,132,216,183,210,250,204,180,203,222,202,234,202,103,206,132,210,169,216,71,224,118,234,250,246,24,2,124,13, +5,24,79,29,82,26,216,15,9,0,76,236,200,216,36,200,124,191,135,193,12,200,76,210,127,225,59,241,245,0,4,17, +137,29,44,36,222,34,141,23,24,4,9,237,168,215,24,200,39,193,178,195,149,206,99,223,101,242,103,5,147,20,78,26, +253,19,186,1,82,233,171,209,236,188,170,175,105,173,147,179,41,192,246,207,16,224,70,240,214,251,124,254,149,248,47,236, +154,221,239,207,27,197,82,190,98,184,196,176,7,170,61,163,115,155,87,150,166,148,85,153,35,164,145,178,251,198,27,221, +79,243,188,7,119,20,13,25,30,17,74,252,77,224,187,194,17,168,100,147,126,139,92,141,113,147,74,158,245,169,109,180, +237,189,181,198,154,206,191,214,63,223,103,230,136,236,230,237,252,235,11,231,241,220,219,211,14,203,130,195,113,190,114,184, +195,179,15,176,161,174,140,175,56,178,52,185,47,195,141,206,60,215,1,221,77,225,184,226,105,226,89,222,118,217,103,215, +83,213,122,212,52,213,42,214,80,217,254,223,114,232,220,240,201,248,29,255,87,4,134,9,81,14,165,19,235,25,97,31, +193,35,197,36,83,32,211,25,222,17,244,10,221,7,159,6,60,9,87,13,193,16,101,20,172,20,38,19,40,18,245,17, +207,17,155,17,135,19,122,19,14,18,49,16,20,9,180,255,66,243,147,227,143,213,162,200,141,192,96,189,167,188,232,193, +98,202,55,212,101,221,254,226,68,232,202,235,211,236,119,236,247,234,31,234,40,232,61,231,67,232,177,233,172,237,157,243, +224,251,178,2,190,3,208,0,32,249,177,237,181,226,123,218,153,214,193,217,7,226,23,236,2,249,127,5,35,16,105,25, +180,31,231,35,193,36,169,35,153,33,99,29,120,24,27,20,246,17,125,16,25,17,19,21,28,24,31,27,26,31,139,33, +44,33,236,31,86,31,128,30,110,31,198,34,87,39,97,44,66,49,201,52,37,54,207,54,51,53,99,50,189,47,176,42, +76,38,185,35,28,33,54,31,222,30,70,32,188,34,233,37,174,40,255,41,129,40,213,37,22,36,222,32,49,30,68,28, +98,25,182,23,129,21,7,19,247,17,169,16,38,16,104,17,67,19,165,22,174,26,38,29,172,30,62,29,107,25,61,20, +4,13,207,8,78,7,218,7,223,11,45,17,12,24,104,28,183,29,168,30,86,28,137,24,32,21,124,17,20,14,0,12, +242,11,229,11,86,12,4,14,152,15,21,19,243,23,60,26,132,26,116,23,65,15,2,6,83,252,116,243,245,237,13,234, +89,233,239,236,10,243,202,250,14,3,30,10,206,14,36,19,128,22,195,24,242,28,82,32,88,32,33,28,165,19,161,8, +153,251,222,241,24,237,207,233,235,233,174,236,238,240,61,247,137,252,185,0,156,3,20,3,243,0,178,253,103,249,226,246, +55,247,254,250,226,0,250,5,92,10,179,13,114,14,8,13,134,9,117,4,207,255,187,249,248,242,135,238,231,233,4,230, +69,229,229,231,254,236,37,242,199,247,183,250,168,249,219,248,66,248,8,246,91,243,12,242,144,240,227,239,45,240,83,239, +172,237,155,233,8,229,64,224,170,219,169,217,132,216,67,217,67,217,211,216,102,217,79,216,194,215,194,212,39,207,36,199, +21,189,250,185,118,186,22,185,116,182,111,178,241,177,234,180,54,183,160,183,102,182,9,180,229,176,113,174,104,173,253,173, +253,174,126,175,251,176,77,181,245,187,230,195,39,207,24,218,82,224,51,225,234,217,58,204,127,185,198,167,82,159,65,155, +25,154,195,157,76,163,23,169,166,175,238,184,40,194,166,201,55,208,133,211,163,211,236,208,76,203,220,195,60,188,91,183, +42,181,114,180,43,182,76,186,67,192,117,197,226,200,165,204,100,207,206,209,162,213,99,219,128,225,102,229,224,233,223,236, +138,238,74,240,182,238,91,237,100,235,139,233,144,234,11,236,212,239,167,244,251,248,204,251,155,253,111,0,158,2,63,4, +9,4,241,2,138,2,37,2,18,2,187,1,249,1,169,1,77,1,72,2,246,3,215,6,41,10,13,15,18,21,187,26, +56,33,52,40,212,45,44,49,170,51,3,52,227,47,127,40,52,31,22,20,41,8,165,254,205,247,180,244,137,247,112,251, +159,255,242,6,23,15,196,23,159,32,179,39,195,44,103,48,118,51,161,52,127,51,156,49,237,47,74,46,33,44,29,41, +9,37,167,34,117,35,208,38,88,44,165,49,29,54,209,57,176,60,113,62,0,61,148,57,252,54,44,53,59,53,251,57, +120,65,155,72,178,78,192,81,112,80,93,74,198,64,229,55,221,49,191,46,170,48,23,53,201,58,49,68,14,75,207,78, +35,82,174,82,112,82,149,80,187,76,84,71,229,64,116,60,173,57,117,56,213,57,163,61,166,64,142,66,59,68,118,67, +161,65,222,63,197,63,200,64,126,65,46,68,51,71,13,73,199,73,26,73,160,71,156,68,51,63,215,55,248,46,184,37, +41,31,173,27,245,26,106,28,158,29,108,31,224,32,30,33,190,34,74,36,126,37,51,39,152,38,114,37,43,36,122,31, +254,24,4,19,80,14,219,10,60,10,102,12,157,15,213,19,89,24,62,32,86,41,70,47,107,49,142,42,0,26,152,4, +52,240,251,224,157,218,37,220,15,225,229,234,18,244,180,250,13,0,5,255,160,251,182,245,93,237,221,231,37,227,189,222, +135,218,198,213,175,208,101,202,241,196,110,193,241,191,200,193,219,196,248,200,55,207,55,213,116,218,41,222,58,223,16,223, +2,224,158,225,112,228,147,234,225,241,51,251,199,3,65,10,120,15,226,11,207,3,226,250,33,242,118,241,98,246,179,0, +3,14,255,24,69,35,16,43,129,48,252,49,187,47,87,44,14,37,166,28,69,22,61,19,147,18,128,17,195,15,137,9, +67,2,237,252,138,249,172,250,202,251,68,255,187,2,157,3,17,7,174,6,198,3,131,255,212,246,63,237,126,226,166,216, +212,209,61,206,69,203,42,201,100,200,177,196,71,192,211,186,79,181,73,176,54,171,27,172,59,177,81,184,17,193,7,202, +156,210,113,214,65,214,174,211,217,204,58,197,16,190,69,183,103,180,230,178,19,178,119,179,217,182,69,189,75,194,62,198, +9,203,23,207,42,211,56,215,138,220,104,227,92,237,135,250,253,8,194,20,137,27,220,32,21,34,102,33,159,31,167,25, +9,20,145,12,62,3,226,250,86,242,229,234,111,231,23,231,68,232,169,238,197,246,119,255,250,8,154,13,38,16,106,14, +8,7,246,255,228,248,51,241,153,231,252,219,217,208,1,198,89,188,109,180,140,172,27,165,158,159,172,157,87,159,171,162, +119,167,24,173,99,177,51,179,31,179,26,177,160,172,119,168,182,165,22,163,234,161,119,162,176,163,209,164,127,164,197,163, +59,163,180,163,236,165,110,166,212,165,229,166,54,170,100,173,45,176,10,183,196,190,37,198,99,206,5,216,163,227,119,236, +69,244,9,250,30,253,93,0,9,3,45,8,149,13,165,19,122,26,148,31,114,36,178,35,153,27,176,12,91,247,39,227, +98,216,110,217,87,226,116,239,152,251,18,5,48,14,190,19,216,20,30,21,108,20,228,17,44,14,123,9,90,6,250,6, +230,9,31,11,220,9,152,5,244,253,250,246,129,239,156,233,12,231,9,229,77,228,124,226,143,224,136,221,20,218,220,216, +76,216,201,218,226,221,225,225,146,230,130,233,172,235,50,234,44,231,31,228,79,224,45,217,41,208,103,201,206,191,88,182, +92,177,208,175,167,177,162,181,234,188,35,197,46,204,247,209,7,216,137,223,129,229,49,236,250,243,86,250,102,0,126,4, +214,7,223,11,119,15,43,21,235,27,221,36,251,47,56,56,155,64,171,72,223,77,67,80,43,79,100,78,245,77,162,77, +184,79,255,84,241,92,100,100,97,104,55,104,221,98,57,85,165,66,55,47,48,30,29,22,167,23,132,33,154,45,5,55, +43,63,162,67,200,67,17,63,17,52,240,36,248,19,241,1,253,240,84,228,146,220,219,217,140,218,152,220,26,222,217,219, +151,217,64,218,163,218,163,221,115,227,51,234,189,244,54,255,39,8,45,15,180,15,73,9,68,250,126,227,245,201,38,179, +34,164,242,160,13,168,15,180,191,196,7,214,56,229,55,243,12,255,237,8,87,15,22,19,118,21,85,25,130,29,159,32, +228,34,127,30,199,20,15,5,208,241,35,225,147,213,22,212,78,216,184,224,66,234,112,242,120,251,104,0,115,3,79,5, +11,7,250,9,30,13,33,19,162,23,112,28,191,34,108,38,121,42,77,46,55,48,146,49,102,49,145,46,62,43,188,39, +246,34,66,32,57,32,46,33,1,38,126,45,164,51,237,57,36,64,93,69,218,73,155,76,90,75,106,68,110,56,196,38, +170,20,6,5,104,246,186,236,3,232,67,231,28,233,58,239,170,249,77,2,107,11,158,20,99,26,8,31,43,33,92,31, +67,29,228,25,138,19,140,14,75,10,24,7,123,5,3,4,15,5,116,5,225,5,144,9,72,14,1,21,37,30,44,40, +192,49,120,57,230,61,36,63,6,63,196,61,30,60,43,58,177,54,213,50,239,46,16,43,88,40,148,39,108,40,233,40, +127,43,155,47,103,50,150,54,177,57,170,57,52,55,13,51,210,46,209,43,6,44,181,45,13,51,174,59,221,67,128,75, +169,79,91,78,9,70,107,56,162,36,211,13,7,252,150,238,134,231,87,229,44,231,198,235,247,239,96,246,31,251,180,254, +145,0,243,255,43,255,91,251,168,248,152,246,249,242,42,239,142,234,94,231,218,229,230,230,111,234,252,239,157,248,151,1, +68,9,35,16,226,19,4,21,62,19,203,11,177,2,187,247,21,236,255,227,220,221,95,221,154,227,209,236,120,246,203,1, +190,13,195,20,0,26,238,28,228,27,234,25,242,21,78,18,136,16,252,15,162,17,222,20,152,24,218,27,213,30,204,33, +255,34,45,36,141,38,241,38,98,39,223,40,145,41,109,41,19,41,73,41,199,41,19,45,76,49,103,54,146,62,233,69, +253,75,186,78,218,77,13,72,25,59,208,45,240,34,201,27,149,24,92,22,182,20,183,17,132,14,104,14,3,16,117,17, +214,19,37,21,240,18,42,16,218,12,190,8,101,6,69,4,214,2,130,1,123,253,6,251,177,249,6,248,140,249,145,251, +6,253,17,255,117,254,36,250,127,244,0,237,238,228,1,223,110,219,58,220,12,223,45,227,97,232,20,236,40,239,249,240, +162,243,101,245,180,246,34,247,121,241,209,235,240,229,151,222,82,217,52,214,214,214,172,218,70,225,112,232,243,240,232,247, +243,249,169,251,71,251,185,248,55,244,194,235,248,225,12,218,194,212,212,208,137,206,3,205,121,204,147,204,210,205,226,208, +241,210,121,213,155,217,77,221,181,221,232,218,101,214,249,207,22,200,240,190,29,183,45,176,190,171,36,172,106,174,68,179, +39,186,100,193,171,199,182,204,161,209,120,213,102,216,7,220,109,223,195,223,112,224,150,225,168,226,201,230,172,233,44,236, +164,238,0,239,134,240,227,241,180,242,45,244,58,246,63,248,8,249,213,249,145,249,7,248,215,248,169,250,235,252,93,1, +8,6,187,12,168,20,222,27,56,36,168,42,120,46,16,48,219,45,166,38,55,23,66,0,254,230,231,207,173,192,0,189, +222,191,126,199,189,211,247,223,210,235,186,244,161,248,2,247,229,237,223,223,96,206,167,187,203,172,21,164,138,162,19,167, +155,173,185,180,92,189,199,198,191,206,174,212,103,217,140,219,147,218,115,214,237,208,247,202,116,194,244,184,203,174,14,165, +98,159,86,159,66,162,2,167,207,174,46,182,219,190,33,197,70,198,39,198,99,193,102,188,103,182,227,175,173,174,114,175, +176,180,26,189,104,198,204,207,203,214,80,220,112,224,97,228,224,230,145,233,49,236,226,237,90,240,122,241,56,244,113,248, +181,252,147,1,142,5,135,9,124,12,230,14,26,18,218,21,53,27,154,34,2,43,56,52,2,60,78,64,220,65,51,63, +64,60,31,60,90,62,90,67,13,71,16,74,232,74,221,71,177,67,139,61,235,56,184,53,213,50,78,51,20,51,160,50, +50,52,240,51,160,51,76,50,54,43,242,31,210,17,156,1,138,240,224,225,21,217,45,212,40,209,204,207,172,207,181,206, +141,206,206,209,195,213,208,218,164,224,18,229,98,232,186,233,225,232,160,229,52,225,243,222,45,221,16,219,84,220,117,223, +204,226,53,231,129,237,15,246,219,254,130,9,110,21,227,31,165,39,218,42,189,40,196,30,100,16,247,2,136,251,158,255, +122,11,206,27,97,43,100,52,160,55,72,50,124,37,40,23,17,8,50,248,21,232,136,216,35,202,163,190,150,184,41,181, +109,180,247,182,253,185,96,191,54,198,134,206,196,215,121,221,11,222,41,218,162,212,239,203,53,194,192,186,176,182,47,185, +232,190,246,198,187,206,96,213,12,221,0,226,11,230,231,232,64,233,193,232,126,232,160,234,13,240,42,248,251,255,40,7, +32,12,234,11,104,6,48,255,71,248,129,239,47,234,75,232,114,230,125,230,101,230,193,229,159,229,84,231,115,234,128,239, +184,244,207,246,149,248,238,247,245,244,130,241,198,235,136,228,189,219,209,212,158,209,72,209,177,211,219,214,57,221,137,231, +251,242,141,255,20,12,15,24,96,35,221,46,217,59,171,73,14,90,240,103,90,110,232,108,6,95,229,69,119,38,95,12, +216,254,138,251,246,3,6,20,160,41,30,65,161,85,153,102,146,112,178,115,41,111,149,102,111,92,232,81,210,74,21,70, +12,72,150,79,108,90,12,102,16,108,84,108,156,95,143,71,176,45,185,21,219,8,136,8,248,15,16,28,39,40,59,52, +242,61,132,65,132,66,35,67,52,67,77,66,194,62,83,55,57,44,133,31,163,17,130,4,14,249,59,242,173,241,90,242, +23,246,103,251,160,255,65,4,111,8,193,12,93,16,226,21,113,28,149,34,19,41,18,45,199,46,44,46,75,45,229,41, +223,33,155,21,63,3,42,239,72,222,5,216,214,221,30,236,47,255,83,16,80,31,47,41,189,44,88,45,138,44,41,44, +97,44,229,44,32,45,74,45,99,42,153,36,11,29,136,20,171,15,114,12,42,11,231,12,78,17,205,23,102,30,28,38, +86,43,158,46,239,49,84,50,49,48,138,45,70,41,205,32,132,21,215,7,82,250,21,239,54,231,215,229,48,232,243,236, +111,242,220,246,36,251,54,0,99,6,246,8,232,5,240,251,197,235,174,217,30,200,212,187,251,182,111,184,242,191,88,203, +72,213,227,219,248,223,249,225,107,226,137,224,63,223,19,221,182,215,208,209,48,203,222,197,155,193,123,188,151,182,243,174, +22,165,189,154,37,147,119,141,190,137,42,137,60,138,5,139,226,138,66,138,61,136,191,133,191,130,59,131,203,136,72,140, +61,143,197,146,121,150,121,157,235,165,29,175,150,184,183,195,38,209,19,222,2,234,124,242,159,245,182,240,128,224,156,200, +55,175,114,155,87,147,5,152,44,166,126,184,38,204,89,224,45,243,58,1,237,10,72,17,8,18,4,15,53,9,58,255, +83,243,11,232,12,223,136,218,83,220,232,225,45,233,216,241,31,249,241,254,144,2,15,3,236,3,201,6,229,10,175,16, +70,24,143,31,250,36,43,41,1,46,123,51,229,56,236,61,131,64,191,64,107,61,192,55,99,51,192,47,220,48,219,55, +146,65,183,76,40,87,122,97,245,105,42,114,75,124,255,127,255,127,255,127,109,126,130,124,109,124,152,122,129,117,101,111, +34,107,17,109,189,113,226,119,170,124,180,124,227,123,38,115,173,100,230,86,54,72,167,61,194,51,251,40,190,28,115,13, +180,0,230,245,49,239,72,238,227,241,46,248,88,255,204,8,208,17,26,26,173,30,126,31,208,32,11,32,228,30,203,29, +245,28,54,28,191,24,105,20,28,15,83,9,210,2,15,252,214,245,233,237,97,231,52,226,74,221,201,219,74,220,43,223, +79,227,210,229,56,232,89,232,36,230,192,225,32,218,169,209,58,201,117,195,33,190,90,187,146,188,167,187,110,190,137,195, +222,200,52,209,9,218,199,228,132,236,209,241,227,245,184,243,83,235,217,223,154,213,137,203,11,199,34,200,234,202,96,211, +98,221,187,231,137,239,175,244,70,251,27,254,74,255,190,1,255,0,37,254,86,253,138,251,76,248,27,245,129,241,192,240, +82,238,39,235,49,237,198,240,57,245,133,251,174,1,5,6,102,8,6,8,142,7,119,8,46,10,136,14,231,18,69,25, +45,32,177,37,62,44,106,47,240,49,198,50,44,47,119,43,231,38,18,34,205,29,143,27,212,26,96,26,116,27,117,28, +200,31,102,36,17,39,182,42,83,45,114,44,180,41,68,37,108,31,25,25,244,20,226,20,176,23,64,28,172,34,3,42, +200,46,20,49,49,49,104,46,107,42,254,36,237,30,250,21,98,9,225,250,139,235,24,226,13,222,160,221,67,226,237,232, +17,240,224,247,61,255,60,2,217,3,231,4,96,1,103,253,246,250,117,249,161,249,218,251,72,253,153,254,28,2,158,3, +29,1,231,247,120,233,78,215,189,195,98,182,248,175,154,176,162,178,223,177,175,173,75,164,138,154,50,146,249,141,80,141, +61,142,109,144,194,145,35,146,177,141,52,136,186,133,126,133,109,134,111,134,101,135,29,134,203,134,232,141,99,149,111,154, +153,156,171,157,70,157,6,156,44,155,52,156,36,160,4,165,116,171,141,177,216,184,12,193,100,199,234,205,208,209,105,210, +48,211,119,213,73,216,133,221,183,227,136,232,226,239,5,247,71,253,147,1,2,5,243,11,252,16,239,21,129,23,39,18, +40,12,196,3,222,252,134,250,244,251,31,2,192,7,71,13,212,20,233,26,29,32,85,37,93,40,238,42,96,45,205,45, +19,45,120,42,127,38,20,33,255,27,89,28,209,29,251,29,85,32,32,33,137,30,164,27,216,25,171,24,140,22,254,19, +51,18,240,17,103,18,37,17,235,13,249,9,5,6,78,1,94,251,136,244,144,238,232,234,37,233,84,233,93,234,5,237, +47,240,253,241,212,242,116,242,31,243,208,242,85,243,234,246,111,249,64,252,110,255,8,4,106,8,11,11,235,12,32,10, +85,4,247,252,95,247,239,245,107,249,93,4,181,19,240,39,44,62,160,83,10,101,100,113,81,122,31,119,116,106,68,87, +143,63,122,42,18,28,254,25,116,29,212,36,28,47,238,55,129,64,213,67,124,69,105,69,147,66,119,63,177,56,48,48, +205,40,255,35,219,29,224,23,195,18,43,11,88,5,49,255,61,251,28,252,174,0,173,9,248,17,205,22,149,23,120,22, +242,17,138,10,195,4,190,0,113,1,142,5,28,13,5,22,12,28,158,33,178,36,157,37,23,37,197,33,228,29,181,26, +89,22,59,16,219,10,101,2,62,247,152,239,162,235,224,234,140,236,150,241,11,250,41,4,210,14,99,22,207,25,10,27, +165,26,239,21,84,13,5,3,90,244,41,228,105,214,147,205,178,204,119,209,36,220,11,233,58,244,231,254,116,5,10,7, +251,1,231,247,220,234,171,219,135,209,193,201,45,200,9,207,149,213,44,222,205,229,9,234,134,234,3,231,239,227,225,222, +115,219,44,220,146,221,228,223,33,228,65,232,8,235,236,240,5,246,49,248,99,250,42,250,124,248,36,246,55,244,127,242, +172,240,150,239,128,238,251,239,70,243,246,245,38,249,144,253,162,0,176,0,201,0,115,2,49,5,53,10,70,16,219,18, +74,16,137,5,152,243,32,223,140,203,147,193,32,192,194,197,84,209,227,219,242,230,146,239,183,246,24,253,78,0,188,2, +242,255,218,248,233,236,238,220,209,204,17,186,115,167,106,152,105,146,247,150,190,162,175,177,5,191,224,203,2,213,121,216, +122,215,158,210,196,203,94,196,173,191,186,187,102,185,215,185,89,186,190,188,214,191,243,194,28,197,246,197,89,200,136,201, +107,202,113,205,179,207,193,210,187,213,202,215,110,220,125,223,134,224,33,224,139,218,19,211,72,203,1,197,205,194,205,194, +91,197,144,203,56,211,49,219,15,230,204,240,15,249,100,0,81,4,26,5,18,5,223,4,68,4,139,3,82,1,41,252, +178,244,234,235,171,228,36,222,110,218,249,219,78,223,250,225,132,225,12,225,164,224,123,221,73,220,6,222,164,224,151,228, +132,233,133,237,121,240,11,243,84,244,248,241,16,238,89,235,18,231,41,230,209,232,245,235,25,243,118,250,23,2,224,9, +104,15,184,19,191,21,167,21,194,18,148,15,238,13,238,15,103,22,215,28,188,36,205,44,29,50,115,53,108,54,181,53, +198,52,71,53,94,55,112,59,178,64,89,70,159,76,113,83,20,91,123,97,222,102,12,108,214,112,114,117,13,121,14,124, +148,126,214,127,101,126,47,123,29,120,169,117,113,116,213,116,186,118,183,120,246,123,218,127,255,127,255,127,255,127,255,127, +255,127,255,127,255,127,255,127,255,127,135,125,193,121,29,122,251,121,100,122,54,125,152,127,255,127,255,127,255,127,255,127, +255,127,255,127,182,127,243,125,10,120,124,106,216,96,88,90,116,86,117,85,147,83,65,83,243,81,110,81,235,81,250,81, +208,81,126,80,213,78,241,74,197,72,189,70,179,68,109,69,225,69,247,71,175,71,215,70,244,69,34,67,73,66,5,64, +142,64,35,66,210,66,45,68,214,64,169,60,220,52,133,43,221,36,66,28,145,22,222,17,246,9,253,0,2,250,166,246, +174,243,151,242,36,243,236,242,79,243,142,242,240,239,94,237,88,233,35,227,26,220,44,212,255,204,87,199,165,194,35,191, +149,188,1,187,165,185,174,184,2,184,172,183,137,184,5,186,202,186,49,185,161,183,170,182,250,180,208,182,130,187,122,193, +238,202,171,211,107,217,107,220,171,217,173,210,88,200,222,188,61,181,107,177,174,178,77,183,30,187,175,187,231,181,73,171, +96,156,0,141,82,132,176,128,0,128,0,128,0,128,0,128,0,128,0,128,174,128,140,134,87,139,27,145,141,150,40,152, +251,152,50,154,176,154,146,156,126,161,24,168,107,175,162,182,66,188,194,192,131,196,110,200,27,206,234,210,209,214,46,221, +48,227,77,231,201,234,7,236,8,232,67,223,25,213,169,202,58,197,116,196,67,198,14,203,211,205,16,211,65,217,39,223, +62,230,126,232,79,235,182,235,183,233,132,233,197,231,239,231,14,231,82,232,19,235,80,234,118,232,193,225,197,217,105,210, +78,205,127,205,169,206,120,209,177,214,13,221,127,227,4,235,29,244,239,252,1,5,82,13,163,22,71,29,129,30,40,27, +54,21,95,12,246,2,177,251,211,245,157,243,155,242,97,243,191,245,83,246,139,247,93,248,104,250,226,252,68,254,63,0, +148,1,60,2,172,2,42,5,122,7,50,10,150,15,131,20,23,24,224,25,93,28,145,29,184,28,246,29,166,32,174,35, +33,39,126,44,127,50,171,58,229,67,121,75,165,84,72,90,61,91,45,90,81,86,154,82,8,78,170,71,230,63,6,54, +9,44,17,36,178,31,15,31,195,31,67,33,82,34,220,32,150,29,6,24,23,16,154,5,144,250,235,239,156,227,158,217, +9,212,33,210,29,212,52,216,55,219,45,219,171,216,251,212,217,209,133,207,46,209,98,213,22,217,151,221,193,224,116,228, +24,231,252,232,208,233,18,230,128,225,107,216,70,206,166,198,73,190,32,185,209,182,139,183,34,187,57,195,202,206,213,216, +203,226,201,235,113,243,20,249,224,252,85,0,203,3,175,8,31,12,207,12,73,11,96,5,21,250,207,235,140,221,252,210, +43,205,133,201,113,200,201,200,93,203,38,208,82,214,110,224,110,235,68,246,54,0,16,7,166,11,247,14,211,18,90,22, +209,22,157,19,175,12,185,255,139,239,22,225,211,216,51,217,187,221,219,229,182,236,194,241,205,246,183,246,250,245,253,241, +95,237,175,236,243,233,70,234,89,235,46,235,83,236,255,236,185,239,88,241,167,242,236,244,99,245,250,245,107,245,77,245, +91,247,38,248,117,248,87,250,223,251,202,251,93,251,175,250,133,250,240,250,187,251,203,255,66,5,34,8,68,9,237,8, +89,5,183,0,246,252,98,248,144,246,144,245,107,242,244,241,123,241,162,241,202,242,105,243,108,245,173,243,29,241,199,240, +238,239,192,239,49,239,111,237,33,233,6,227,16,220,81,214,204,211,84,211,141,215,155,222,14,230,254,237,104,243,60,244, +234,240,81,236,74,230,250,223,210,219,68,216,126,214,2,215,209,213,220,211,121,210,25,206,87,201,8,197,236,191,203,188, +6,187,114,188,82,193,223,200,74,212,41,224,163,234,223,243,158,250,225,252,10,252,184,250,72,249,185,248,36,247,190,241, +207,230,162,217,114,209,174,205,60,206,235,212,37,221,240,230,230,243,137,255,48,9,8,18,251,23,77,28,16,32,94,32, +197,31,141,33,237,36,64,41,96,44,248,47,134,50,121,47,242,40,32,34,122,29,110,26,160,25,149,27,175,31,190,37, +242,42,28,48,156,51,131,54,58,59,178,64,90,71,195,75,139,80,59,85,71,86,36,86,184,83,215,80,235,79,196,80, +37,83,203,86,202,88,213,89,153,90,111,86,95,82,228,77,133,73,39,74,18,75,3,79,119,87,15,99,24,111,131,120, +255,127,255,127,255,127,136,123,152,116,68,108,173,99,26,93,38,87,193,83,39,84,172,87,149,92,209,96,5,99,113,98, +47,97,181,94,155,90,155,85,184,78,94,69,227,58,52,48,188,39,210,35,243,32,9,31,226,27,231,21,142,16,152,10, +37,7,118,6,132,6,206,9,231,12,8,15,168,17,163,16,110,13,77,11,205,8,73,7,74,5,228,3,203,4,14,4, +47,4,36,4,113,2,152,1,8,1,109,2,103,3,10,3,222,3,3,2,72,253,136,249,34,245,170,241,188,238,85,233, +129,228,46,222,51,215,56,210,42,207,145,207,47,209,119,211,165,212,205,212,189,210,13,208,246,207,31,205,233,202,64,202, +118,202,44,204,89,205,163,208,189,209,235,209,165,208,60,202,116,193,68,181,52,170,197,162,143,159,119,162,47,169,132,176, +144,181,175,185,197,188,25,190,114,192,226,196,100,200,184,202,187,203,170,202,66,201,92,195,32,188,248,181,246,173,52,170, +185,169,91,171,86,177,160,183,37,189,1,195,170,198,86,200,244,202,59,205,114,209,233,215,53,221,25,226,51,228,123,229, +133,234,138,239,44,244,159,250,132,255,68,3,64,5,243,1,178,250,6,240,57,228,60,219,214,215,139,217,247,221,112,227, +178,230,127,233,18,235,221,233,200,233,223,233,26,233,249,233,66,235,15,235,17,236,225,235,236,233,255,230,244,223,121,218, +83,214,236,209,164,208,84,211,12,219,232,225,225,231,54,239,162,243,158,245,47,246,96,243,86,239,66,237,51,235,174,235, +1,239,50,243,174,250,74,3,163,10,23,16,6,20,115,18,43,10,228,254,121,241,110,232,66,229,156,230,87,236,179,242, +92,250,149,3,132,13,137,22,140,27,154,28,108,28,131,26,150,22,17,19,115,16,5,16,242,14,249,14,196,18,164,19, +172,18,24,17,141,13,150,11,44,11,142,12,222,16,177,21,237,25,215,29,135,33,229,35,62,32,82,22,44,8,54,246, +64,228,184,214,203,206,79,202,9,203,134,207,224,211,212,218,73,226,77,232,44,238,9,241,68,240,97,239,234,236,204,232, +154,231,215,230,31,230,62,230,156,228,72,225,87,222,110,221,63,222,82,227,194,234,210,244,39,3,140,16,112,29,242,40, +79,49,231,52,197,49,100,40,118,25,69,10,47,252,26,241,59,235,103,232,197,233,61,239,18,247,50,1,180,11,8,18, +147,21,220,22,78,21,185,19,150,15,169,10,239,7,14,7,154,6,36,6,139,7,250,6,190,3,237,254,26,248,230,239, +39,233,140,232,144,236,109,244,109,252,165,1,184,7,130,12,157,14,13,15,165,13,47,12,9,12,227,13,46,18,160,23, +217,28,229,32,232,35,21,38,250,37,27,38,176,39,92,40,87,39,112,38,254,37,95,34,141,31,105,30,143,27,21,27, +238,28,42,32,67,37,112,43,206,50,182,57,136,62,25,67,157,71,92,74,86,77,182,79,206,80,115,79,231,74,244,69, +91,64,78,60,27,56,61,52,21,53,194,55,108,59,40,64,239,68,129,71,255,70,188,68,63,67,9,69,168,72,26,78, +233,83,70,90,221,97,73,106,157,114,175,118,255,118,157,112,23,98,40,78,68,54,36,33,126,19,248,13,59,15,126,20, +118,23,63,23,76,23,84,21,232,19,238,18,175,17,231,17,229,16,37,14,28,9,198,1,245,248,62,242,17,238,143,234, +25,236,59,239,174,240,237,242,174,241,104,237,228,232,43,226,61,220,106,216,71,216,62,222,219,230,100,241,123,251,209,2, +13,5,41,0,62,244,184,223,65,200,165,172,21,151,26,150,222,149,27,150,113,163,157,177,21,193,32,211,243,224,63,237, +231,245,42,250,38,252,156,249,106,241,202,225,162,206,194,181,76,155,131,144,144,143,178,143,13,143,232,143,157,155,249,171, +89,185,78,194,81,198,112,197,175,192,216,185,8,176,248,166,127,159,215,154,173,153,109,152,88,152,108,153,242,155,200,159, +227,163,184,167,80,171,41,175,6,179,190,184,35,191,66,197,38,203,53,208,7,211,153,210,129,208,111,204,157,201,111,200, +162,199,246,201,13,207,59,215,136,225,20,237,95,249,131,4,218,13,100,20,93,23,252,21,168,16,40,9,180,1,25,252, +240,249,214,249,10,252,43,2,159,7,165,13,155,20,183,24,220,28,180,32,73,34,156,34,246,34,219,35,85,37,67,40, +153,44,166,48,200,50,24,51,11,51,33,51,152,49,183,48,35,49,97,49,41,51,24,52,79,52,8,52,66,50,161,48, +226,46,194,44,36,43,161,43,183,43,166,44,78,47,253,48,47,50,79,49,231,49,107,50,163,49,119,51,118,52,22,53, +31,52,31,50,166,48,53,44,245,37,185,31,238,26,179,21,84,15,122,11,93,9,116,7,84,7,90,7,54,7,208,7, +143,5,174,2,251,253,249,246,107,241,121,234,123,229,6,225,249,219,54,218,191,215,131,213,23,212,169,210,131,209,10,207, +128,205,90,206,182,207,128,208,0,210,20,212,242,213,39,215,15,216,228,218,19,223,145,226,223,229,115,232,250,231,124,229, +140,226,99,224,6,223,129,222,61,225,130,229,226,234,106,241,216,246,11,252,253,1,210,6,25,10,111,13,228,13,16,13, +143,12,220,10,92,12,97,15,127,18,74,23,127,27,52,29,5,29,232,27,154,24,173,21,220,18,160,15,106,15,92,17, +187,19,92,22,99,26,12,31,231,35,229,39,231,41,252,42,13,43,191,42,6,41,120,39,36,38,57,37,58,39,85,42, +118,47,148,52,182,57,231,63,234,67,154,70,23,71,43,70,22,69,65,67,4,66,224,65,204,65,145,65,106,65,20,64, +51,62,90,59,195,57,193,58,119,61,191,66,27,69,27,69,22,66,226,55,48,43,2,29,29,15,101,5,167,1,175,3, +204,8,75,16,192,23,101,29,135,33,228,34,121,33,213,30,9,27,46,22,143,17,125,13,129,10,199,9,64,10,224,10, +212,11,214,10,180,8,14,6,148,2,87,1,17,1,82,2,62,5,214,7,248,9,246,10,97,11,99,9,90,6,65,2, +139,252,20,247,76,241,3,238,185,235,98,235,168,237,231,238,121,240,89,240,175,238,252,236,222,235,107,235,44,234,62,233, +242,231,143,230,118,228,60,225,193,220,42,214,229,207,90,202,60,198,13,196,219,192,174,188,215,186,122,185,107,184,167,185, +117,185,255,184,178,184,29,183,50,182,255,180,76,179,233,177,195,176,37,176,23,177,8,177,149,176,35,177,117,175,47,174, +225,171,229,167,200,164,143,160,112,157,193,155,114,154,243,153,249,155,180,159,204,162,160,168,239,174,157,178,111,180,103,179, +245,177,33,177,5,177,11,179,1,182,87,187,230,194,20,201,242,204,74,203,72,195,213,182,83,168,75,158,228,154,8,154, +216,152,139,156,14,167,111,178,165,188,201,196,227,201,114,201,206,196,229,189,241,180,19,174,159,167,24,162,15,158,84,154, +81,154,109,156,238,158,39,162,133,166,175,170,115,174,23,180,118,184,203,186,71,190,184,193,168,196,234,200,48,203,60,205, +170,210,140,215,178,220,19,227,127,234,23,242,181,248,86,255,252,3,91,7,164,9,71,11,186,11,212,11,111,15,194,18, +164,22,126,27,120,30,86,34,246,38,94,43,75,46,252,48,161,51,93,50,110,47,161,44,191,40,7,37,203,33,48,31, +2,29,3,27,224,25,146,24,200,24,85,26,16,28,245,31,19,36,147,41,84,47,228,50,117,54,221,53,238,48,245,42, +88,35,204,27,117,22,191,19,90,19,201,20,193,21,163,21,244,21,71,22,26,22,190,22,120,24,234,26,198,30,212,33, +254,35,87,37,100,36,12,37,126,39,224,40,57,43,34,46,55,48,0,52,234,55,167,59,76,63,152,64,154,67,182,69, +34,70,180,69,58,64,20,57,126,46,217,37,50,36,71,36,237,41,231,49,240,57,151,67,71,76,148,84,142,87,162,85, +166,81,160,72,201,60,205,47,11,36,190,28,208,24,92,26,161,32,217,38,115,45,107,53,69,61,207,67,189,75,65,83, +34,85,36,82,242,72,21,58,222,38,238,17,223,1,17,247,245,241,139,242,204,246,7,253,33,4,148,11,36,17,182,21, +252,22,183,19,138,14,146,7,141,255,168,245,96,237,217,229,17,220,91,212,114,202,120,190,23,180,113,170,105,166,44,165, +100,167,251,174,127,180,153,187,26,195,131,199,212,204,241,208,41,213,21,217,212,219,190,221,15,221,10,220,228,216,124,211, +119,205,235,199,180,197,100,200,206,208,3,220,136,234,229,251,30,13,224,27,224,36,118,40,229,36,167,29,98,22,196,16, +136,17,153,21,97,29,45,39,42,47,155,54,22,58,26,59,176,56,1,49,247,39,179,29,16,22,49,17,16,14,26,15, +69,16,16,19,116,22,10,23,68,25,53,27,210,28,25,30,124,28,17,27,214,24,23,21,19,16,126,12,156,13,66,16, +73,21,199,28,57,37,204,46,26,54,106,58,171,61,190,62,32,62,217,62,11,63,192,62,184,63,141,64,144,66,148,68, +221,69,254,70,238,70,247,70,117,70,157,69,36,69,13,68,151,66,230,64,6,62,112,56,9,51,66,46,98,39,83,34, +28,31,39,28,56,26,216,22,73,19,3,15,151,9,239,4,199,255,61,251,200,246,35,243,34,239,185,232,202,227,109,221, +197,214,245,210,246,207,200,207,44,207,77,205,210,204,32,204,5,204,143,205,85,208,89,211,117,213,241,213,241,213,60,213, +195,210,192,207,122,203,20,199,131,195,155,191,164,189,141,191,69,195,163,198,126,201,224,201,49,201,85,200,230,195,209,191, +196,190,191,191,10,196,111,202,176,211,3,224,253,236,105,249,118,4,151,12,161,13,238,7,212,252,234,235,41,219,101,205, +174,195,239,191,80,192,4,196,232,199,211,202,194,205,119,208,152,211,224,213,238,216,5,220,99,221,95,222,46,221,249,218, +120,216,158,212,36,208,83,203,253,198,23,194,119,189,78,187,249,186,78,187,84,188,148,191,17,196,185,200,119,205,115,209, +238,213,109,217,133,217,147,215,46,213,134,210,141,205,112,200,123,199,94,199,3,199,137,201,252,205,3,211,58,216,239,221, +221,229,108,239,151,248,77,2,66,12,78,20,151,27,139,34,189,38,172,39,48,38,234,32,100,25,183,18,69,13,34,12, +115,15,197,21,115,29,74,34,123,38,43,42,98,44,72,47,133,50,132,55,147,60,127,65,230,69,47,71,145,73,21,75, +173,74,190,75,47,75,32,76,250,78,196,78,67,78,2,77,47,73,168,69,240,65,104,60,181,54,228,50,182,48,188,47, +73,49,180,52,102,56,40,61,61,65,72,67,72,69,235,69,18,68,248,63,95,59,82,57,180,54,206,50,61,47,128,41, +138,34,192,27,26,21,8,16,54,13,232,11,189,12,34,16,39,19,224,21,24,24,184,24,225,25,114,25,150,23,252,21, +65,18,241,13,109,9,141,3,153,254,182,250,229,245,244,240,202,238,158,239,227,242,13,249,84,1,245,9,88,17,250,22, +65,24,224,19,142,11,235,254,54,240,101,223,80,203,174,186,69,176,173,171,11,173,171,176,161,181,46,186,194,187,196,188, +92,189,197,187,150,185,112,184,71,183,47,181,5,178,116,173,174,167,81,159,61,149,17,142,226,136,73,133,131,134,6,138, +154,143,103,152,59,161,188,169,167,176,185,180,85,181,35,179,225,178,152,178,253,178,250,183,116,189,85,196,101,204,83,211, +80,219,25,226,56,232,54,238,252,241,205,243,129,242,86,239,53,234,142,227,87,221,96,215,78,212,118,209,69,205,214,201, +235,197,34,197,74,197,49,196,122,197,27,196,220,189,189,179,62,167,22,156,208,145,67,139,127,137,85,139,241,145,214,153, +24,161,162,168,41,176,199,180,125,182,33,185,142,186,61,189,226,195,11,203,99,213,187,225,149,238,199,252,196,7,205,15, +16,20,107,17,24,8,207,248,179,232,84,220,186,214,151,219,18,232,34,247,248,7,15,24,210,36,215,47,47,55,102,60, +172,67,61,73,197,78,89,85,109,88,103,88,201,83,97,74,47,61,176,45,90,32,142,22,133,18,33,18,245,17,12,20, +248,23,154,29,14,35,134,38,2,41,165,41,128,39,141,32,81,24,151,18,15,13,246,8,242,7,112,9,239,10,113,12, +41,15,223,15,84,15,136,13,255,11,129,14,77,18,146,24,65,33,4,40,168,43,50,44,79,43,147,40,55,38,74,38, +28,38,86,38,122,38,226,35,81,29,183,21,114,15,252,10,201,12,62,17,78,22,197,31,119,40,245,46,29,51,153,50, +29,47,127,41,139,36,37,33,133,31,188,33,29,39,224,45,188,51,233,55,87,56,184,52,210,45,157,33,185,20,25,10, +96,1,90,253,54,254,11,4,137,11,54,18,219,25,193,32,17,39,224,45,46,52,59,58,5,65,100,71,122,75,229,78, +137,81,110,84,198,88,110,90,46,90,83,88,68,81,98,71,253,60,119,49,104,39,164,33,98,31,63,33,171,38,10,45, +25,52,35,57,70,58,150,54,103,46,19,36,60,23,68,13,70,7,28,2,43,1,184,0,25,0,31,0,162,252,41,249, +27,245,70,240,68,237,21,234,213,233,158,237,150,242,25,248,89,254,71,3,105,5,242,6,100,4,188,254,166,250,48,245, +1,240,226,235,177,232,247,230,140,227,253,223,184,218,157,211,48,206,189,201,115,200,168,201,138,204,125,209,99,214,199,219, +154,224,67,230,175,235,116,237,113,238,111,237,144,233,87,226,121,215,231,205,31,197,145,189,1,186,119,186,39,191,182,198, +231,209,123,222,52,233,157,242,240,248,122,253,23,2,56,6,152,11,181,17,138,22,190,26,167,29,241,28,168,25,22,21, +162,16,192,13,87,12,98,14,27,17,42,19,244,24,17,32,64,38,252,42,99,44,158,41,253,33,84,24,112,14,105,6, +224,0,209,252,202,253,168,0,9,4,98,10,53,15,20,20,101,25,150,28,139,31,211,31,148,29,150,25,82,19,201,13, +105,7,69,0,154,249,118,241,234,234,43,232,11,233,0,238,231,244,27,252,28,3,35,10,234,15,10,19,42,22,41,24, +76,24,11,26,189,26,44,26,22,27,237,27,243,28,148,27,175,23,253,19,246,13,114,9,87,8,111,8,121,12,93,17, +131,21,123,26,130,30,217,32,122,32,217,31,111,31,84,30,89,31,187,32,80,35,64,40,165,43,238,45,94,44,207,34, +20,21,126,4,16,243,130,231,59,225,249,222,54,225,108,228,205,230,33,231,143,230,161,228,246,223,47,220,123,215,162,209, +214,204,5,199,26,192,93,183,186,174,242,165,208,155,136,149,191,147,127,149,102,154,216,160,34,168,248,175,185,184,9,191, +1,194,141,193,163,188,248,182,78,176,25,168,150,159,235,151,21,148,81,147,176,149,85,155,161,163,199,173,231,181,48,190, +205,199,151,207,233,215,199,224,16,233,186,241,220,248,226,254,129,4,57,9,144,15,238,20,103,22,100,23,153,21,65,16, +63,12,110,8,73,5,176,4,90,5,169,8,4,15,89,23,255,30,88,36,27,41,48,44,165,46,238,48,236,48,25,49, +45,48,242,45,27,46,54,46,3,45,143,42,37,37,170,29,71,21,116,13,9,6,114,254,204,249,69,247,248,243,0,241, +74,236,81,229,88,223,141,217,0,214,134,214,119,217,67,225,140,235,111,244,252,252,24,2,200,3,82,4,36,1,136,252, +177,247,91,241,93,236,124,230,26,223,50,215,187,202,173,189,66,180,237,173,158,172,34,175,206,180,10,188,130,192,67,194, +32,194,209,192,139,191,231,189,211,188,207,189,246,191,243,194,37,198,230,199,153,202,50,206,156,207,115,208,251,209,235,211, +227,213,221,215,196,218,196,220,226,220,199,220,189,221,20,223,213,223,171,226,170,230,130,232,82,234,122,236,116,238,121,241, +81,244,17,246,163,247,212,249,87,251,251,252,195,0,215,4,102,9,58,14,97,18,199,21,23,22,20,20,52,16,177,9, +32,0,98,244,54,234,255,224,219,218,185,219,21,225,197,231,160,240,216,252,123,5,9,11,32,17,215,17,214,15,12,12, +69,6,194,1,214,252,84,249,143,243,49,236,136,232,205,227,66,223,152,220,184,219,44,223,111,228,66,235,248,242,174,248, +68,253,102,0,168,0,55,254,229,249,5,246,112,242,149,239,107,239,143,238,224,238,222,240,153,239,192,238,195,236,155,231, +217,226,147,220,66,215,101,213,251,212,163,213,183,214,185,215,107,216,118,216,206,215,54,216,149,217,211,218,106,219,57,218, +15,217,82,214,139,210,167,208,75,205,21,202,54,201,226,202,11,208,253,213,10,222,21,232,161,241,36,253,213,9,95,20, +60,28,172,33,207,37,140,41,130,43,48,45,192,48,103,52,213,57,83,64,0,70,41,78,60,85,89,90,214,95,19,99, +79,103,56,109,237,117,255,127,255,127,255,127,145,126,240,123,239,122,224,121,127,122,182,123,85,120,178,111,170,100,221,90, +34,81,110,75,101,75,176,77,30,82,171,85,245,88,81,90,98,89,237,87,47,83,42,79,180,75,19,71,6,67,143,63, +221,60,175,56,40,54,45,52,22,49,205,48,153,49,15,52,112,54,232,56,154,60,85,64,14,71,77,76,175,80,2,84, +250,81,15,80,177,74,165,64,214,56,158,51,97,48,11,47,32,48,138,50,162,54,232,59,13,63,119,64,80,63,177,58, +136,50,165,39,100,28,231,18,89,14,142,14,211,18,103,25,210,30,30,34,186,33,106,30,128,25,248,18,96,12,141,8, +249,7,46,8,206,10,243,12,242,10,15,8,142,2,22,250,231,238,184,224,130,210,20,197,9,189,197,186,175,187,149,192, +132,198,81,203,207,204,244,204,62,204,29,199,54,193,98,187,49,181,84,174,58,167,140,161,206,153,94,147,48,143,188,139, +11,140,19,141,64,143,241,146,162,150,138,154,186,158,193,163,207,166,202,170,118,174,238,175,119,180,4,183,225,183,125,186, +192,187,164,188,165,189,210,192,122,198,205,204,97,211,187,217,153,223,179,227,72,232,144,237,33,243,165,249,129,255,194,5, +92,9,25,10,216,9,63,5,80,0,125,253,204,251,254,253,188,2,165,9,138,19,53,29,254,36,124,43,217,48,167,51, +150,51,205,51,202,51,146,50,250,50,186,51,174,52,153,55,40,59,196,63,152,68,48,72,51,74,170,72,36,69,109,64, +44,57,26,52,180,49,142,47,88,48,175,49,208,50,8,51,212,46,193,41,59,34,162,23,206,14,50,6,78,253,7,245, +58,237,50,230,75,225,112,223,4,224,100,227,247,230,169,233,43,235,27,234,10,232,243,228,207,225,247,223,98,223,83,223, +121,224,223,227,21,230,199,231,136,233,121,233,71,232,194,230,91,231,140,233,196,237,241,243,87,250,92,1,66,7,169,12, +64,14,40,12,218,10,55,6,228,0,205,253,229,251,137,253,7,2,222,8,42,16,194,22,212,28,52,34,57,39,95,41, +181,41,5,42,216,40,87,39,76,38,77,37,194,38,131,41,24,42,28,43,80,43,219,40,112,37,161,32,203,30,105,31, +73,32,23,37,187,42,17,47,115,51,119,54,226,55,65,56,84,54,185,50,89,47,53,41,180,32,232,23,166,13,160,4, +210,252,108,246,27,243,117,240,179,238,83,236,161,231,122,227,136,223,72,218,60,213,45,210,20,208,202,206,55,207,240,205, +44,203,222,199,187,193,132,187,148,180,143,172,205,166,56,163,108,164,37,168,19,172,139,179,9,187,243,192,5,199,66,204, +131,208,25,212,138,215,21,219,44,222,82,225,83,231,181,238,115,246,247,0,155,12,233,25,157,39,194,51,215,60,7,62, +222,55,236,39,36,15,40,246,74,227,42,220,76,222,90,231,29,245,137,2,118,15,19,25,240,30,193,32,51,30,18,25, +143,15,191,4,248,249,87,239,28,231,55,224,252,218,49,215,107,214,116,216,210,220,191,228,119,236,255,243,221,249,145,251, +47,249,243,238,223,222,76,204,42,185,107,168,130,155,176,148,234,147,97,154,150,164,206,174,3,187,92,196,109,203,104,210, +64,215,133,219,67,220,251,219,54,220,181,217,227,214,186,209,7,204,36,200,46,195,254,188,74,179,225,167,235,156,87,147, +236,143,253,146,56,156,104,170,45,185,133,198,154,209,233,216,70,220,180,220,231,216,235,209,133,203,223,196,12,189,178,183, +145,180,166,177,163,177,104,179,69,183,128,190,29,198,47,208,118,220,122,233,222,245,228,254,63,5,42,6,19,3,65,254, +31,247,93,239,133,230,154,223,158,217,33,212,76,210,142,210,84,215,38,223,250,231,142,242,191,251,123,3,139,10,87,17, +114,22,103,26,223,29,153,30,223,30,229,29,58,27,106,23,134,16,104,8,218,255,147,248,95,243,191,239,34,239,101,240, +80,244,133,250,226,255,82,5,187,10,61,14,199,17,209,20,105,21,106,22,168,23,0,24,208,24,107,25,94,25,7,26, +189,26,159,25,12,25,183,22,56,15,13,5,183,246,183,231,215,221,249,216,205,216,206,221,192,231,176,241,33,252,144,7, +62,17,72,27,76,35,145,43,58,52,246,57,11,64,165,65,175,61,169,53,237,39,33,25,243,10,71,0,248,250,133,248, +49,249,3,253,63,3,169,9,168,16,215,24,117,31,77,37,172,42,49,46,231,47,68,47,106,44,191,39,137,34,59,30, +134,26,245,24,226,25,171,27,35,32,96,39,183,46,1,53,79,58,135,62,187,63,56,61,57,55,47,44,26,29,108,15, +56,5,235,253,4,252,60,255,110,6,181,14,29,22,187,31,191,38,198,42,230,47,50,50,25,51,68,50,63,45,97,38, +37,29,66,17,234,3,42,247,28,237,244,231,90,232,124,236,149,244,67,255,78,10,207,19,121,25,222,27,196,26,23,22, +144,17,171,13,78,8,217,5,79,6,137,5,204,6,188,8,250,8,246,8,19,8,34,8,241,8,165,9,183,10,138,12, +253,14,71,16,158,18,205,20,250,21,3,26,224,28,151,30,56,34,126,34,6,32,219,28,88,23,80,19,48,18,174,18, +248,19,140,20,128,23,6,27,240,27,105,29,205,28,21,25,130,19,188,8,120,250,8,235,164,219,3,208,202,201,54,202, +16,209,195,218,95,229,251,239,9,248,54,254,70,2,162,0,107,252,162,246,174,237,154,231,51,229,168,228,5,231,41,235, +117,241,190,247,127,252,247,255,248,1,246,3,25,4,213,4,144,7,241,8,229,10,132,12,168,14,165,18,146,21,38,24, +132,25,55,26,121,27,75,28,63,29,230,28,187,26,49,23,3,19,177,16,214,16,102,19,8,26,64,35,163,43,193,53, +229,64,41,73,79,79,25,81,242,77,130,72,18,65,67,55,240,43,100,33,155,24,216,18,104,16,251,16,145,19,152,21, +232,23,50,26,168,27,18,29,26,30,144,29,246,25,174,20,6,13,123,3,100,251,159,243,62,237,129,234,253,233,138,234, +183,236,27,239,207,239,156,239,61,237,11,234,14,232,168,230,71,232,48,235,190,237,109,242,176,247,54,253,69,3,105,8, +222,14,179,21,139,27,253,34,230,41,0,48,227,52,145,55,216,58,56,60,90,60,177,59,139,57,97,56,71,54,143,54, +59,56,138,57,192,60,107,60,186,58,144,57,30,56,24,56,254,55,164,56,187,56,201,57,103,58,7,56,58,53,25,48, +177,42,126,35,134,26,189,18,229,6,41,251,132,242,218,233,124,227,162,224,139,223,61,222,130,221,244,218,79,213,50,206, +237,197,192,190,138,183,180,177,85,174,232,170,16,169,182,167,213,166,120,167,231,167,232,167,161,166,67,165,220,163,32,161, +24,159,65,157,149,154,171,151,93,148,117,145,193,142,192,141,207,142,174,143,9,147,37,152,81,156,109,160,138,162,137,162, +111,161,76,160,149,159,163,159,49,162,176,164,218,169,207,178,23,186,186,194,94,204,222,210,134,216,89,221,18,224,13,226, +6,226,194,222,39,219,15,216,188,213,57,213,219,213,10,215,234,216,89,221,38,227,161,233,167,240,231,244,205,247,50,250, +189,250,118,249,118,246,172,241,9,234,97,224,85,214,70,207,74,202,136,197,66,197,72,199,199,201,60,206,31,212,88,218, +11,223,75,228,28,232,21,235,149,241,117,247,58,251,59,253,113,252,102,249,143,244,248,237,24,229,237,220,170,214,68,209, +128,205,215,203,75,205,115,210,224,216,124,221,117,227,237,233,127,236,64,239,83,241,20,240,90,237,70,232,66,225,133,218, +247,213,139,210,204,207,129,207,51,208,203,209,217,213,156,219,69,227,22,237,7,246,72,254,237,6,48,13,250,17,88,19, +142,15,174,12,231,11,105,11,118,12,104,14,52,15,189,16,62,20,210,23,89,30,49,39,244,46,0,55,106,61,130,66, +190,71,91,74,35,76,63,78,233,79,142,83,27,87,70,88,221,88,6,87,96,83,197,78,234,70,207,64,139,61,209,58, +73,60,233,62,223,63,186,65,87,67,81,67,119,66,242,64,121,59,80,51,247,42,188,32,218,24,243,17,130,9,49,3, +19,251,213,241,91,235,68,231,63,229,25,228,14,229,221,229,242,230,38,233,110,233,128,235,168,238,109,242,185,247,97,250, +127,251,136,251,218,249,225,246,226,244,199,243,125,240,53,239,119,238,244,237,87,241,251,243,227,248,38,2,68,11,11,21, +90,31,254,40,195,49,115,57,118,64,174,70,230,74,247,77,29,81,100,82,40,82,57,81,244,77,104,72,205,67,15,65, +31,61,139,58,249,59,166,62,18,66,89,70,220,74,32,79,217,81,84,82,157,80,0,77,167,72,19,67,64,59,41,51, +234,42,118,34,34,26,9,18,187,12,190,9,54,9,179,10,181,10,184,8,117,4,85,254,216,246,140,238,142,230,119,223, +213,218,164,217,59,221,189,227,195,235,29,245,227,251,146,0,150,4,233,8,13,14,93,17,27,19,66,18,185,13,248,6, +9,255,19,248,214,244,77,245,144,246,177,248,27,250,124,249,30,249,137,247,39,245,183,243,77,244,34,247,153,249,24,252, +107,255,155,3,7,7,213,8,250,10,47,12,151,11,227,8,133,5,206,2,172,254,26,251,32,250,221,251,121,255,217,3, +131,9,196,13,203,14,69,12,119,6,225,254,1,244,208,231,217,221,127,214,191,211,57,213,2,218,29,227,254,238,119,251, +14,6,92,14,191,19,185,19,35,18,247,15,5,11,79,7,215,4,199,0,231,252,72,251,83,248,48,243,144,239,178,234, +99,230,2,229,233,227,13,229,18,232,182,236,232,241,66,247,251,252,145,255,171,1,68,2,231,0,57,1,228,0,116,1, +235,2,193,4,146,7,32,9,8,9,92,7,152,6,246,4,134,2,88,1,91,255,91,0,71,3,248,6,55,12,217,15, +164,19,72,21,205,20,189,20,241,18,255,16,190,15,128,15,191,15,89,15,249,14,230,13,102,11,50,7,36,1,97,250, +51,246,15,243,30,241,64,243,144,245,100,249,32,253,102,253,76,252,218,247,51,243,91,237,201,228,127,221,143,212,0,204, +60,197,25,189,165,180,191,170,160,157,61,145,245,136,124,131,39,131,10,133,187,133,128,135,28,133,212,129,140,130,219,130, +19,131,43,131,216,130,103,130,228,129,206,128,0,128,0,128,0,128,0,128,0,128,0,128,122,128,179,130,25,131,170,130, +115,130,231,130,95,132,29,137,79,142,187,149,246,159,58,171,171,183,105,194,197,203,120,208,34,205,128,194,48,180,245,168, +129,160,4,156,91,157,181,161,28,168,39,176,250,184,88,192,115,200,101,210,214,218,50,227,117,236,244,246,49,3,7,15, +57,23,199,25,235,21,72,10,193,249,211,232,11,219,187,212,100,213,72,217,236,222,50,228,98,229,213,228,90,229,202,229, +145,232,62,238,162,245,39,254,71,6,227,13,244,17,2,18,145,17,136,15,231,13,137,15,82,16,39,18,96,22,25,24, +39,26,166,28,173,29,253,31,255,34,102,39,101,44,212,48,99,53,176,57,197,61,156,63,123,65,220,67,141,67,155,67, +151,68,238,68,228,69,131,71,30,72,92,73,223,76,102,79,85,81,109,83,0,85,187,86,69,87,184,88,69,93,130,98, +13,103,203,107,42,110,207,107,182,104,129,102,42,101,124,100,58,98,81,96,187,97,32,101,2,105,219,111,5,119,114,121, +71,122,38,123,53,123,115,123,192,123,115,123,29,123,168,121,150,116,159,109,71,100,204,88,247,77,93,66,154,56,147,51, +218,50,33,53,101,56,63,60,126,62,187,62,10,61,214,57,220,53,226,47,210,42,38,37,132,29,216,23,30,18,49,12, +19,8,137,4,87,1,117,254,205,252,147,253,16,0,77,3,14,7,22,11,86,13,193,11,1,9,68,6,63,2,148,253, +1,246,77,236,245,226,118,216,215,206,133,200,64,197,87,197,62,199,223,199,70,201,240,203,238,203,67,203,2,203,239,201, +116,199,58,196,223,192,214,187,72,185,243,182,167,179,129,179,252,177,81,176,92,173,135,169,194,166,134,160,173,155,52,152, +255,151,91,155,126,156,11,161,5,166,23,169,60,173,42,177,52,180,55,180,1,180,67,179,211,179,206,182,155,185,220,190, +246,194,150,199,40,204,29,205,63,207,242,207,25,207,223,205,255,203,123,203,197,203,12,205,36,207,5,212,98,217,198,221, +94,226,248,229,236,234,2,239,37,243,0,248,252,249,205,251,69,253,68,253,250,253,163,1,153,5,255,8,31,13,217,16, +150,23,148,29,32,35,230,40,220,40,198,39,212,34,127,26,196,20,254,16,37,17,69,19,53,25,143,31,47,35,13,38, +247,36,33,36,134,34,244,33,228,35,17,35,52,35,114,32,203,27,21,25,233,21,139,20,231,17,190,13,60,8,7,1, +16,250,195,243,49,241,188,240,156,242,159,246,62,250,228,253,249,255,83,1,252,0,222,255,252,254,176,252,87,252,75,254, +163,2,62,8,234,12,179,17,214,20,129,21,35,20,2,18,169,15,91,13,244,12,132,14,5,18,141,21,170,25,123,31, +108,37,75,44,97,50,158,55,227,59,38,60,201,58,9,57,204,53,248,50,173,48,123,46,220,46,57,49,163,50,90,50, +66,49,120,48,149,46,207,46,138,50,104,53,140,58,13,64,48,66,184,68,218,69,211,68,131,66,1,63,94,60,33,57, +218,53,134,51,46,48,19,45,27,43,184,41,166,40,35,39,152,37,141,35,173,33,226,32,60,31,132,29,124,27,62,25, +233,23,226,20,9,19,251,17,191,13,135,9,218,4,180,255,252,250,240,244,18,239,22,233,115,226,158,219,30,215,134,214, +137,212,224,210,241,212,187,212,200,210,2,210,126,207,185,203,96,198,196,191,51,187,13,184,38,183,15,185,36,189,202,195, +199,201,230,205,242,206,201,202,140,195,91,186,185,176,162,169,135,166,118,167,85,171,101,176,75,180,8,183,238,184,180,183, +204,179,174,175,41,171,252,167,180,167,49,167,152,168,138,173,25,178,230,182,11,187,235,189,205,192,100,194,175,196,77,198, +106,197,245,195,42,193,29,189,242,183,27,181,172,182,218,184,211,188,145,194,5,200,106,205,91,209,56,211,224,210,91,211, +17,214,156,217,142,224,154,232,91,239,99,246,139,251,76,254,253,253,186,251,210,249,233,245,62,243,119,243,49,244,63,248, +128,253,252,1,73,7,168,11,82,14,160,14,171,12,236,8,203,4,118,3,187,2,48,0,70,255,203,0,31,1,13,1, +246,1,183,1,218,1,10,3,203,3,253,4,191,5,226,5,127,6,81,6,222,5,220,6,109,8,154,9,139,10,7,12, +29,13,210,12,224,12,146,13,179,15,248,18,154,21,78,24,51,26,15,28,80,30,74,31,49,33,188,35,67,37,29,40, +209,43,5,46,206,48,44,53,56,56,56,57,30,58,215,58,154,57,36,55,55,51,59,47,246,45,23,45,21,45,22,46, +20,47,152,49,239,51,253,53,21,56,147,57,154,57,20,54,0,48,235,39,4,30,199,20,63,14,4,10,149,7,93,7, +199,8,18,12,42,16,27,20,84,23,15,25,174,26,109,26,102,23,26,19,3,13,15,5,205,252,184,244,93,235,155,228, +183,225,114,224,149,227,162,232,60,238,168,244,180,248,184,250,207,250,19,251,9,251,64,249,255,247,7,245,244,240,61,237, +90,233,123,229,63,224,158,219,3,216,233,212,140,212,229,214,39,217,52,218,28,219,171,218,137,217,191,215,15,213,235,210, +98,207,144,203,197,199,183,195,188,192,145,190,130,190,249,190,61,193,51,198,176,202,65,207,57,211,146,214,89,216,57,215, +214,212,120,208,240,201,167,194,44,188,241,183,96,182,184,182,127,185,182,190,206,195,187,200,49,204,94,205,135,205,135,204, +98,203,114,201,116,200,59,202,245,204,122,209,203,213,80,216,37,219,115,221,195,222,118,222,236,219,226,216,20,214,195,211, +64,210,252,210,201,213,69,217,236,221,80,225,206,227,175,230,201,231,2,233,118,234,98,235,88,237,105,239,185,241,10,245, +46,248,125,251,89,0,96,5,19,10,72,14,246,15,134,14,142,9,17,2,71,250,200,243,66,239,83,237,241,237,234,239, +58,245,42,253,130,4,167,11,228,17,28,22,190,24,153,25,241,25,215,27,207,30,9,35,143,38,127,40,163,41,85,39, +118,36,236,31,5,26,189,22,215,18,94,18,179,20,30,24,127,31,58,39,29,48,55,57,24,65,213,71,228,76,245,79, +68,80,148,80,29,78,12,73,108,68,220,62,159,57,210,52,110,48,166,44,75,43,140,44,212,46,55,50,56,52,144,52, +124,52,209,51,43,50,141,48,204,46,163,45,87,46,122,45,218,43,108,41,175,37,86,33,92,27,211,22,16,19,229,16, +140,16,101,16,45,19,139,23,161,28,33,33,239,35,123,37,231,36,77,36,159,36,220,36,148,37,254,38,34,40,185,42, +26,45,137,45,236,46,174,47,178,47,178,46,20,44,255,40,25,38,160,37,61,39,122,42,78,45,43,49,65,53,172,54, +117,57,239,57,224,57,87,58,160,54,173,50,180,43,134,35,41,29,243,22,136,20,92,19,106,18,72,18,218,17,179,17, +166,16,46,15,102,12,33,8,229,2,126,252,19,247,137,242,86,238,193,234,74,233,218,233,237,233,214,234,232,235,199,236, +11,237,207,235,54,235,136,232,164,229,157,226,170,220,56,216,107,211,173,206,29,203,54,200,52,200,57,201,108,203,30,205, +216,206,55,209,161,210,41,211,4,210,63,211,190,211,93,211,41,213,77,213,165,214,60,215,100,214,207,213,19,211,106,207, +96,203,211,199,203,195,234,192,241,190,137,189,252,190,223,190,5,191,3,192,28,192,100,191,132,186,11,181,187,175,31,171, +52,169,18,168,44,169,134,170,19,171,52,171,90,169,75,167,1,166,21,165,166,164,75,166,75,169,167,172,96,177,138,182, +194,188,53,194,244,197,124,202,105,207,112,211,4,215,35,221,98,225,162,227,74,233,211,237,170,243,102,251,204,2,7,11, +53,16,76,20,239,21,200,19,148,15,194,8,197,1,226,249,250,242,234,238,130,237,182,238,17,243,59,250,29,1,67,9, +147,14,150,17,234,20,202,19,253,17,68,16,237,13,203,10,209,5,29,1,242,252,53,250,29,247,130,244,156,243,9,244, +227,245,118,249,50,255,124,3,227,8,78,15,88,20,216,24,8,27,122,28,88,29,107,31,204,34,47,39,76,44,219,46, +76,47,118,43,47,37,108,29,82,21,188,14,65,8,136,6,41,5,232,2,47,3,225,2,151,3,151,3,39,2,115,255, +72,250,175,243,109,236,137,230,50,226,148,223,150,222,169,222,33,223,176,221,72,219,66,220,240,221,130,221,180,223,118,226, +23,227,185,226,85,226,250,226,217,227,49,229,68,231,254,235,186,239,93,243,50,249,13,251,210,251,195,249,138,244,84,241, +123,239,207,239,26,241,223,244,161,249,148,254,67,4,8,8,66,11,188,13,171,17,146,21,253,23,25,27,5,30,242,32, +85,34,129,36,141,39,181,40,97,41,15,42,50,42,84,43,188,45,190,46,52,50,216,54,180,59,239,66,163,72,77,79, +252,83,138,86,6,88,93,84,163,78,5,71,176,64,75,59,112,54,67,53,157,52,87,52,56,52,63,53,5,55,238,56, +31,58,191,58,219,60,49,59,128,56,140,53,252,47,26,44,241,38,220,32,133,27,223,21,152,17,206,14,231,12,83,11, +28,11,121,13,226,16,8,20,217,22,39,23,77,21,90,17,126,11,97,6,117,0,61,253,158,252,238,250,130,250,237,249, +225,249,198,248,95,245,133,242,39,238,127,232,182,225,53,218,187,213,213,211,126,210,128,210,188,210,187,208,41,204,157,197, +3,190,242,180,44,172,0,166,79,162,94,160,110,158,40,158,214,160,29,164,63,167,56,171,218,174,12,179,117,185,61,190, +103,193,191,194,21,194,99,193,162,190,37,188,250,186,12,188,27,191,56,193,135,196,136,197,129,197,220,198,237,196,162,194, +91,191,237,186,220,183,179,180,211,179,79,179,156,179,192,181,183,180,253,178,167,176,245,172,106,170,77,168,46,167,149,166, +159,167,141,168,23,169,4,172,4,174,240,174,132,174,207,173,200,173,158,171,73,168,148,164,192,160,68,156,179,154,198,156, +104,161,82,171,101,181,183,191,235,201,224,207,163,212,54,215,195,214,46,214,24,214,210,212,193,211,178,212,12,215,228,217, +182,220,29,225,131,229,176,234,76,240,4,245,225,250,109,0,79,7,215,14,179,22,149,30,170,35,245,38,8,39,199,37, +178,34,239,28,254,23,9,20,241,17,156,18,14,22,134,26,45,33,129,40,191,45,108,50,47,53,40,55,17,56,94,57, +161,58,235,56,121,55,79,54,143,53,199,51,222,48,129,46,187,44,218,44,228,44,50,45,212,44,114,43,13,42,194,39, +54,37,124,34,36,32,240,29,166,29,105,29,33,29,48,30,125,28,129,26,4,25,150,23,188,21,45,20,210,20,152,20, +156,20,50,21,64,22,106,22,33,23,237,24,153,24,40,26,197,26,234,26,54,28,199,28,52,32,244,36,34,43,149,49, +68,55,29,60,221,62,174,62,112,60,236,58,113,54,56,53,117,56,110,59,200,66,242,73,63,79,30,84,171,88,241,91, +192,93,103,95,61,94,38,93,104,90,164,87,122,87,132,86,212,86,174,87,191,89,189,91,69,94,58,97,85,97,144,97, +106,96,72,95,53,94,124,92,24,93,116,93,86,93,104,93,0,95,71,97,189,96,96,94,174,91,159,86,106,78,207,70, +225,64,14,61,190,59,212,60,221,62,43,63,99,63,112,62,2,59,167,54,130,49,116,43,69,37,167,31,120,27,184,25, +63,24,115,23,13,23,144,23,1,25,245,24,136,26,153,26,18,26,101,25,77,21,133,19,205,17,141,16,111,15,111,13, +197,14,239,13,11,12,16,11,17,9,48,7,249,4,172,2,14,255,129,253,146,254,233,254,65,0,228,1,69,3,171,4, +128,4,147,3,111,3,57,3,39,2,147,1,31,2,92,1,245,255,175,0,168,1,240,1,141,1,144,0,180,254,190,252, +205,252,238,251,153,251,244,251,173,249,248,247,145,246,52,246,161,246,59,246,142,247,170,247,80,248,22,251,109,252,233,254, +205,0,255,1,221,3,219,2,172,0,167,253,186,250,83,247,125,242,94,239,111,234,157,229,103,226,95,223,82,223,36,223, +208,224,197,227,99,229,11,233,233,234,49,234,157,233,130,230,13,224,186,216,167,208,187,200,83,194,247,188,184,185,88,184, +216,184,54,185,79,185,233,185,236,184,182,184,130,183,19,181,200,179,48,178,87,177,208,177,159,178,151,178,122,178,167,175, +138,171,181,167,225,159,208,153,62,149,185,144,8,143,157,141,112,142,100,144,246,147,216,153,149,159,183,165,40,169,14,170, +10,171,76,170,62,169,131,170,111,171,115,172,120,174,26,176,166,178,57,181,187,182,6,183,112,184,163,186,71,189,216,194, +40,201,220,209,95,220,191,230,228,239,45,246,42,250,17,249,46,244,242,234,173,222,186,210,93,200,223,193,161,189,146,189, +255,189,168,192,66,198,246,199,126,202,214,202,124,202,117,202,7,199,84,196,253,191,239,187,143,184,213,181,122,181,247,182, +80,186,8,188,105,191,164,196,66,202,47,208,114,212,26,216,245,218,2,222,96,223,193,223,148,224,59,225,132,226,205,228, +234,233,106,239,39,246,92,254,157,6,131,14,10,21,62,29,25,36,96,41,70,45,143,46,208,46,88,45,76,46,244,47, +166,49,132,53,173,56,96,60,106,65,153,71,19,78,185,83,239,85,64,83,12,79,91,77,183,78,169,80,29,83,119,83, +249,82,217,82,181,79,139,75,52,72,38,70,254,67,218,67,150,68,254,68,245,71,207,72,11,75,203,77,210,77,40,79, +186,77,93,75,204,72,123,68,220,65,205,63,149,61,31,60,82,59,238,58,22,59,116,58,112,57,253,56,190,55,48,53, +23,50,8,46,12,40,51,35,183,29,118,24,230,22,204,21,67,22,57,23,58,25,26,27,202,26,1,28,163,27,80,26, +161,23,225,20,10,21,77,20,59,23,124,28,203,32,114,39,203,46,197,52,199,55,187,57,206,57,221,54,22,53,178,51, +148,49,245,46,102,43,194,39,203,34,2,29,185,23,95,17,117,11,87,7,207,2,206,253,155,250,215,248,138,245,139,242, +227,240,103,237,145,234,70,233,128,230,204,227,218,224,245,220,36,218,16,215,61,213,202,213,5,214,14,215,230,216,159,217, +53,217,13,218,153,219,155,220,73,222,96,223,161,226,64,231,7,235,235,239,153,244,132,250,108,0,199,5,212,11,60,17, +79,23,164,28,45,32,56,33,208,31,236,28,178,24,183,20,177,16,15,14,3,12,167,8,35,6,191,3,179,255,82,251, +227,246,219,240,181,233,72,226,194,219,110,212,190,204,92,200,52,196,64,192,122,188,48,182,77,176,203,172,79,170,65,170, +225,172,35,173,208,172,69,173,32,174,221,175,196,176,91,181,180,186,86,192,136,200,161,207,54,215,227,221,248,228,178,233, +67,234,237,232,146,225,213,215,93,205,40,195,221,189,120,189,117,191,175,196,225,205,250,212,153,219,73,225,181,227,241,229, +228,230,174,233,76,238,155,242,53,249,171,0,148,5,147,11,236,17,114,19,48,18,102,11,147,2,246,250,167,243,85,240, +217,237,92,238,113,239,139,239,181,240,202,238,20,236,160,230,73,223,96,215,21,207,149,200,26,195,199,193,196,194,174,197, +164,199,215,199,147,201,153,200,51,199,13,197,7,194,117,193,192,194,228,197,51,200,210,201,169,203,75,204,203,203,51,204, +81,204,97,204,63,206,110,208,108,213,191,218,52,223,92,227,32,228,218,227,85,227,184,226,103,226,47,228,126,231,227,235, +39,243,241,249,28,0,101,4,26,6,74,4,52,255,110,249,169,242,237,238,75,235,65,232,152,232,110,232,133,234,68,238, +29,243,85,250,29,2,79,8,197,13,203,17,188,18,11,18,55,12,105,6,147,1,137,252,213,253,1,0,45,4,143,11, +85,19,22,28,250,35,220,42,198,45,160,45,10,41,169,32,115,23,155,13,159,7,8,4,9,3,136,3,158,4,93,7, +247,9,6,15,97,19,191,23,26,29,73,32,4,35,226,35,131,35,177,33,142,30,116,27,54,23,236,18,140,16,150,15, +37,13,233,10,51,8,76,4,54,2,173,255,149,254,205,255,177,0,199,3,237,7,41,10,88,12,231,14,65,16,228,15, +213,13,133,10,158,5,111,1,207,254,43,253,211,254,209,0,94,0,135,254,131,252,89,250,99,248,17,248,101,246,49,246, +237,249,105,253,19,3,98,11,225,19,252,27,210,33,212,37,168,40,1,42,247,42,151,44,247,46,60,50,50,55,112,60, +166,63,18,67,84,71,85,74,178,76,239,78,59,82,228,86,191,91,214,95,120,99,59,102,16,102,243,99,132,94,20,87, +179,79,65,70,204,62,191,57,60,54,121,53,191,53,40,56,223,59,193,65,94,73,22,79,156,83,235,85,169,85,16,83, +229,77,42,71,176,61,21,52,96,44,228,35,181,29,63,28,234,27,126,28,177,30,226,31,226,30,109,29,144,27,136,23, +187,18,63,15,239,11,149,8,143,7,104,7,2,6,25,6,177,6,23,6,163,6,102,6,212,5,38,8,103,9,212,9, +144,12,15,14,32,14,200,13,84,11,248,6,163,1,134,250,74,242,46,237,122,234,144,234,71,239,39,245,56,253,143,6, +124,14,226,21,115,27,54,30,180,29,223,27,52,24,9,17,142,11,42,9,248,7,136,9,53,13,232,16,26,21,114,25, +211,27,97,29,37,31,54,30,235,27,135,26,139,24,159,23,214,23,91,25,67,28,146,29,231,31,5,34,178,34,25,38, +205,40,62,42,11,45,156,46,62,47,246,46,183,43,185,40,107,39,25,38,158,37,117,36,146,34,178,32,164,30,188,28, +179,25,252,22,112,18,75,12,57,8,1,3,96,253,253,247,188,242,227,239,199,236,112,233,20,231,8,228,235,224,180,221, +133,216,113,210,70,204,238,196,137,189,35,182,79,174,23,167,116,161,66,156,76,149,197,143,197,140,188,136,64,133,218,132, +112,134,46,137,95,140,170,142,176,144,7,148,251,151,198,154,53,158,113,162,228,163,72,166,96,169,119,168,28,168,139,167, +176,165,45,165,126,164,220,165,101,167,116,169,120,175,189,181,212,189,213,198,12,205,216,209,6,212,126,211,137,209,131,206, +125,203,106,202,109,203,1,206,217,209,255,212,55,217,216,221,63,224,149,226,136,229,143,231,32,232,50,232,196,231,210,232, +139,234,182,234,154,236,11,238,20,238,156,237,252,234,251,232,103,232,184,231,45,231,71,232,46,233,47,234,168,236,37,238, +127,240,160,241,117,242,214,245,249,247,202,250,110,254,160,1,248,4,128,8,146,11,209,12,47,14,157,13,156,10,247,5, +68,255,96,250,214,246,181,244,123,245,21,248,145,251,75,255,37,5,50,11,102,15,85,20,152,24,141,26,94,28,54,29, +3,28,19,27,127,25,114,23,167,23,132,23,237,24,82,31,157,37,197,43,61,51,123,57,102,61,152,61,54,59,184,53, +240,46,178,41,100,36,100,33,105,33,173,35,215,38,120,42,116,47,169,51,75,56,199,58,11,57,179,52,49,46,28,39, +214,30,188,23,216,17,105,13,42,11,32,8,248,6,86,7,32,8,175,8,147,6,132,3,254,0,104,254,20,251,36,250, +72,249,68,247,57,247,252,244,251,242,39,242,26,239,30,238,1,239,12,239,236,239,231,241,225,243,245,245,31,248,109,251, +35,255,154,2,102,7,72,12,244,16,97,20,62,21,156,19,52,16,150,12,153,9,89,10,183,12,137,14,43,18,190,22, +191,27,112,31,241,32,93,32,160,29,16,26,248,21,136,17,99,15,91,16,120,16,182,17,129,18,181,15,96,12,30,6, +114,0,97,252,106,248,0,247,250,244,136,245,69,249,208,252,244,255,17,2,58,4,252,4,47,4,2,3,26,2,68,0, +22,254,122,254,97,0,142,3,230,7,227,13,33,18,37,19,88,19,240,16,131,15,15,14,118,12,69,13,217,11,67,12, +64,15,248,17,242,21,99,24,7,24,169,19,40,11,156,255,41,243,247,232,152,224,142,220,59,220,142,220,121,223,147,226, +50,230,99,235,49,237,12,238,53,240,154,241,178,242,67,243,53,242,50,237,78,229,67,220,95,209,165,197,38,187,25,181, +237,178,130,179,152,182,235,184,51,186,120,187,153,187,196,186,95,184,112,177,112,168,190,158,16,147,25,138,85,133,106,133, +98,137,22,143,160,151,220,159,178,166,106,172,43,177,53,180,21,179,215,174,180,168,227,161,70,153,66,145,132,140,26,137, +17,136,14,137,104,141,238,148,51,157,191,165,190,174,187,184,20,193,99,202,204,212,42,222,239,231,78,239,239,244,131,246, +216,241,200,233,80,223,229,213,9,207,134,204,36,208,204,215,34,225,243,234,210,245,232,255,42,6,27,10,23,14,0,17, +245,19,179,21,33,21,210,21,95,20,136,17,74,16,128,14,133,13,99,13,44,15,251,17,35,20,127,23,13,26,36,27, +244,28,49,30,114,29,138,29,40,30,212,29,178,29,56,28,227,25,60,24,94,23,138,21,213,17,59,14,172,10,104,9, +74,10,46,10,212,10,214,11,144,11,163,10,55,8,240,5,31,5,181,3,162,2,109,1,154,0,133,255,94,250,132,245, +93,241,137,237,240,235,92,232,29,228,109,223,162,218,84,216,72,217,247,222,144,228,30,231,180,228,79,219,92,207,201,194, +132,182,31,173,110,167,177,164,29,165,41,168,86,172,142,178,166,185,219,190,89,193,52,194,84,193,229,190,14,190,73,189, +113,187,214,186,173,186,190,187,160,189,184,190,73,193,230,196,114,200,118,204,100,208,30,211,198,212,96,216,201,219,73,223, +168,230,63,237,210,242,16,249,191,254,122,4,45,11,6,19,28,25,210,30,221,34,136,36,145,37,81,34,175,28,138,20, +121,12,146,6,21,0,68,253,51,252,240,251,81,254,122,3,98,10,115,17,246,26,210,32,125,35,214,37,223,35,135,32, +157,27,58,22,94,18,64,16,150,16,79,19,156,24,179,29,240,34,119,36,195,33,146,31,29,26,86,18,14,11,57,5, +127,1,207,255,131,1,187,4,138,9,99,16,69,24,101,31,241,35,197,39,166,42,251,43,71,46,201,49,151,52,70,56, +22,61,179,64,141,67,46,68,41,66,42,63,52,60,237,59,149,63,187,70,228,79,50,89,74,98,80,107,79,115,61,121, +248,124,1,126,93,125,63,125,98,125,136,124,57,121,204,115,101,112,141,110,71,109,188,109,172,108,65,107,170,105,255,103, +136,105,187,106,67,107,68,106,193,100,81,93,242,84,16,75,245,65,119,59,241,52,247,49,104,50,103,49,201,50,185,51, +148,52,178,53,117,51,59,49,245,42,222,33,199,23,11,11,132,1,156,249,247,243,225,242,63,244,117,248,79,254,171,4, +59,8,163,10,120,13,170,12,177,11,59,10,225,9,131,13,121,15,61,20,239,25,46,28,82,30,102,28,165,25,66,21, +248,14,48,10,162,3,234,1,6,2,39,3,247,8,28,13,19,20,188,26,2,31,182,35,202,37,117,41,139,44,84,46, +253,47,5,47,11,46,26,45,165,42,10,38,146,34,175,32,101,29,239,26,6,24,219,19,100,17,115,16,121,16,129,17, +115,18,230,17,234,14,70,11,37,6,28,254,204,246,203,238,8,231,180,224,187,217,246,213,13,210,37,205,1,202,80,197, +76,192,61,187,43,182,86,177,70,172,195,167,206,164,173,164,237,165,122,169,4,175,205,180,242,184,70,186,157,187,56,187, +216,186,54,187,154,184,186,182,243,180,18,179,183,180,25,183,148,185,178,189,124,194,147,199,63,204,20,209,169,214,32,220, +135,226,110,231,213,233,248,235,85,235,167,234,147,236,198,238,16,245,154,254,229,6,133,16,51,25,166,30,92,35,24,37, +163,36,138,33,183,27,123,23,99,18,203,13,82,11,80,10,57,13,111,16,8,20,239,25,25,32,56,38,155,43,98,48, +138,51,246,53,53,57,242,57,169,57,126,58,168,57,132,57,132,58,110,59,34,62,75,64,67,68,111,74,49,79,143,84, +53,89,43,93,136,96,9,98,56,98,198,95,8,92,175,88,108,85,187,80,203,77,58,76,75,71,76,67,204,63,155,60, +162,58,42,55,120,53,73,52,48,51,171,51,201,51,168,50,149,46,253,39,227,31,176,23,98,14,171,3,94,251,126,243, +208,234,85,228,155,222,134,216,147,212,146,209,0,207,155,207,232,208,60,209,51,210,235,210,157,210,246,209,167,209,32,210, +51,209,72,206,62,204,169,200,91,195,212,190,7,185,63,179,85,174,249,169,251,167,60,168,19,169,1,170,64,172,68,176, +246,180,226,184,182,188,210,190,4,191,150,189,206,184,202,181,79,178,178,173,39,172,31,170,202,169,209,169,122,170,38,173, +20,175,50,179,5,181,162,180,180,179,140,177,55,178,45,178,201,178,19,180,120,179,168,179,216,180,223,183,129,185,53,188, +134,193,139,196,13,201,143,205,232,208,11,212,17,211,53,209,102,206,47,202,207,199,181,198,118,200,132,204,160,210,41,219, +117,228,112,237,5,244,153,249,106,251,243,247,19,242,35,233,116,226,191,221,226,218,43,222,111,226,2,233,130,242,142,250, +115,2,3,10,63,16,108,20,34,23,14,24,126,23,206,23,45,23,96,21,234,19,23,18,14,16,98,14,65,12,204,9, +60,8,43,6,225,4,95,7,242,9,218,10,134,12,240,12,253,11,175,10,165,8,197,7,247,7,209,8,72,9,172,11, +19,17,75,21,175,27,116,35,216,42,116,52,174,60,74,68,72,74,137,76,84,77,56,73,73,63,134,51,210,38,219,27, +57,22,47,18,46,14,185,10,243,6,5,5,13,4,154,5,215,8,166,11,155,16,102,20,27,22,170,22,95,21,51,18, +66,14,242,11,35,8,39,4,50,3,191,2,249,1,131,2,160,4,200,4,211,3,56,2,96,252,44,244,32,238,9,235, +191,232,178,233,88,237,215,239,145,242,93,244,74,245,79,247,214,249,114,253,27,2,142,6,106,10,69,12,106,11,69,10, +16,7,46,2,181,254,222,249,173,245,72,243,104,241,155,242,176,245,181,249,87,253,200,255,210,1,189,1,186,0,252,253, +1,248,67,242,241,236,117,230,177,224,68,221,155,218,18,217,168,217,29,218,36,220,122,224,10,229,78,234,178,238,96,242, +2,246,229,248,16,251,237,250,136,250,87,250,209,248,224,249,53,253,155,255,226,2,78,6,163,8,34,12,237,14,11,16, +108,16,137,16,119,18,231,19,93,21,255,23,182,24,31,24,151,22,225,20,252,18,52,17,238,16,144,15,237,11,88,6, +144,255,182,247,13,239,57,230,165,220,8,212,103,204,33,198,120,193,10,189,211,185,172,182,234,179,221,178,116,177,175,175, +14,176,213,177,185,178,223,178,59,177,117,174,30,173,249,171,7,169,11,166,59,164,74,163,195,165,238,168,206,170,200,173, +150,175,112,176,217,176,26,177,25,177,8,177,81,180,145,184,69,189,184,193,242,194,220,194,29,194,4,194,167,194,2,197, +74,201,55,205,143,211,36,218,165,222,1,228,145,232,209,235,180,239,108,242,112,243,180,244,194,244,97,244,106,245,181,246, +144,248,3,250,12,251,203,251,55,253,141,0,38,2,53,4,15,8,72,10,61,14,66,20,60,25,183,29,66,35,51,42, +202,48,23,54,96,57,20,59,206,60,3,62,100,62,80,62,74,60,36,56,4,53,46,51,103,51,74,55,211,59,214,64, +21,69,229,70,6,72,192,71,194,71,54,71,148,69,26,70,113,70,176,70,235,70,251,66,129,60,34,54,35,46,97,38, +24,33,173,28,234,26,31,26,54,25,161,25,178,23,160,21,218,18,158,13,26,9,19,2,162,249,78,242,87,236,4,234, +218,232,52,233,181,237,161,242,195,245,73,250,33,255,106,2,47,5,1,6,162,6,26,7,209,5,109,6,185,8,116,11, +129,15,2,18,78,18,187,18,56,17,11,14,130,11,163,7,204,3,165,1,132,1,90,4,3,8,54,11,37,14,63,18, +234,22,146,26,121,30,31,34,212,36,84,38,135,38,161,36,150,33,15,32,123,31,233,33,234,38,159,45,238,55,136,65, +253,73,118,81,106,85,8,87,255,85,130,84,59,83,156,81,55,82,220,82,203,83,237,86,29,89,137,91,197,96,216,102, +82,110,26,120,149,127,255,127,255,127,255,127,142,127,116,126,30,124,60,114,7,101,44,90,108,80,47,73,8,69,77,66, +42,64,178,63,178,64,152,65,95,66,237,66,171,67,190,66,247,65,55,66,191,63,0,62,2,59,149,53,84,48,174,39, +59,31,253,21,204,10,110,2,119,251,103,249,221,250,239,252,134,2,171,6,9,9,33,11,13,10,97,8,81,6,219,3, +31,4,152,3,79,1,148,0,148,255,102,255,186,254,84,251,154,249,92,246,102,240,185,236,134,233,95,230,157,229,202,230, +174,230,48,229,253,228,55,227,85,224,157,222,218,218,166,214,182,210,202,205,65,203,235,201,123,201,52,202,106,201,3,202, +86,202,222,200,51,200,1,197,246,192,255,189,126,186,55,183,78,179,21,176,31,173,96,170,170,169,240,167,70,167,86,169, +144,168,74,166,195,165,167,163,196,159,2,156,140,151,39,147,105,144,156,143,243,143,61,146,15,149,0,149,135,148,100,146, +140,141,255,136,51,132,195,130,209,131,9,132,249,132,218,132,128,132,33,132,143,131,16,132,80,132,4,133,20,133,138,132, +54,132,42,131,207,130,216,130,53,131,106,131,6,131,93,131,174,131,238,131,245,132,5,134,79,134,217,134,204,134,44,134, +186,134,114,135,56,138,151,141,112,145,183,152,176,158,106,165,174,173,203,179,70,186,181,191,140,197,131,203,114,207,254,212, +162,217,242,221,241,228,127,235,194,241,152,248,193,254,84,3,172,6,130,9,239,11,190,14,236,17,226,22,7,30,218,36, +161,44,251,52,28,60,99,68,29,76,32,81,172,85,111,89,123,90,66,89,196,87,202,85,102,83,172,80,12,76,214,71, +28,69,102,67,135,67,234,68,194,71,20,75,39,79,217,82,103,84,75,86,90,86,29,84,179,82,131,80,180,76,130,73, +131,71,24,69,55,68,245,67,4,66,191,64,142,62,174,59,246,56,182,53,96,51,176,49,162,49,97,49,38,49,164,50, +132,51,207,52,86,53,76,53,218,52,23,50,254,47,176,45,145,43,98,43,205,43,220,45,156,48,248,50,71,53,169,54, +220,53,171,52,7,52,168,49,12,47,137,43,71,39,49,36,135,32,234,29,189,27,142,25,197,23,48,20,94,17,129,15, +242,14,113,16,158,17,62,20,212,21,43,20,194,18,75,17,156,16,39,17,106,16,209,14,56,13,140,11,107,9,172,7, +171,6,55,4,11,2,57,1,32,0,23,0,227,255,14,255,165,254,49,253,38,251,225,248,210,246,29,246,245,246,39,248, +97,248,150,248,229,247,247,246,209,246,94,245,100,243,251,240,95,238,86,236,58,234,90,233,6,233,162,232,242,232,183,233, +87,235,36,237,42,238,250,238,247,239,165,240,218,240,117,240,74,240,227,240,83,241,150,241,74,240,214,237,153,234,74,229, +13,225,68,222,61,221,141,222,128,223,130,226,70,231,165,234,137,238,154,243,128,246,142,247,224,249,39,250,89,249,127,250, +118,250,5,251,235,253,189,1,171,4,26,7,87,10,44,12,15,15,113,18,123,20,108,23,250,24,155,26,91,28,26,29, +41,31,15,32,31,32,48,31,168,28,79,26,217,21,216,17,86,16,89,14,159,13,150,14,57,15,206,15,112,16,232,16, +245,15,33,13,143,10,94,9,110,9,30,10,213,10,19,12,68,14,147,16,197,17,249,18,217,20,249,22,242,25,86,29, +98,33,137,36,130,37,195,38,82,40,190,40,124,39,212,36,72,33,161,30,120,30,217,31,32,36,254,41,65,47,212,51, +0,54,97,55,112,54,8,51,48,48,252,43,253,39,24,36,91,31,14,27,98,22,49,19,88,16,42,14,26,15,156,15, +154,14,234,13,2,14,50,14,228,13,45,13,231,11,102,10,124,8,173,6,140,4,41,1,171,253,204,249,163,245,107,242, +42,240,41,240,80,243,203,247,40,253,110,3,29,9,157,14,221,19,209,23,214,26,87,29,207,31,93,34,32,37,109,39, +148,40,228,40,178,40,197,40,103,40,31,39,253,36,134,33,203,29,35,26,92,22,87,18,131,14,52,11,38,8,79,6, +165,4,113,3,203,3,37,4,229,4,90,5,199,4,29,4,157,3,16,3,172,0,85,254,162,252,133,249,113,247,190,244, +89,241,216,239,214,236,8,234,198,232,79,231,134,231,250,231,125,232,89,233,251,233,237,235,225,237,223,240,124,243,14,243, +210,242,97,242,197,241,117,241,118,240,29,240,199,238,78,236,145,232,21,227,45,222,20,217,55,212,147,208,178,205,219,203, +99,202,114,202,158,203,135,204,4,205,19,204,154,203,88,204,25,205,63,206,192,207,199,209,193,210,108,209,2,208,58,208, +9,209,237,208,91,208,49,207,235,204,169,202,175,201,7,202,163,203,221,207,2,213,7,218,26,224,171,228,145,232,124,236, +18,238,133,238,211,237,41,236,25,234,18,231,150,227,175,223,220,219,22,217,63,216,95,216,243,216,111,218,200,219,173,221, +118,224,78,227,179,228,184,228,43,228,253,224,183,221,29,220,218,217,50,215,124,212,228,208,84,203,98,197,238,190,77,183, +253,176,80,172,177,170,221,170,157,170,23,171,154,171,78,172,80,173,150,174,63,176,155,178,115,180,68,181,99,183,72,184, +173,185,177,187,119,186,195,185,151,183,178,180,52,179,99,176,111,176,68,178,211,181,203,189,168,198,211,207,152,217,133,228, +48,239,217,247,248,255,74,7,98,13,107,16,221,15,180,12,72,8,77,5,142,1,97,253,92,252,196,253,89,1,54,6, +158,11,180,17,53,23,187,27,85,31,162,35,25,40,115,43,131,47,186,50,19,52,210,51,79,50,173,49,39,49,220,48, +173,48,7,49,162,50,114,51,159,52,177,52,221,52,247,55,66,58,81,61,105,66,92,72,247,78,57,84,67,88,14,91, +67,92,108,90,122,86,239,81,42,77,139,75,84,75,196,76,124,81,210,86,51,92,122,96,25,100,37,101,242,99,211,98, +29,95,75,91,184,87,231,83,212,80,81,77,39,76,150,75,47,75,33,76,243,75,217,76,133,77,79,76,81,76,43,76, +182,73,62,70,124,65,55,59,41,54,24,50,188,46,197,45,7,46,148,46,41,48,28,51,230,53,62,55,173,54,163,52, +178,51,181,50,209,47,0,45,208,42,87,40,185,37,210,34,204,29,19,23,98,16,75,9,219,2,149,253,157,249,214,247, +255,245,97,244,210,244,181,244,62,244,234,245,220,247,41,248,212,247,78,246,98,242,191,238,60,235,194,229,162,225,44,222, +235,217,30,216,49,215,143,214,29,215,80,214,23,214,111,215,90,216,247,219,138,225,63,228,154,229,50,230,187,228,184,226, +3,224,87,221,218,219,147,218,50,218,30,219,210,219,249,219,133,220,159,221,209,223,14,227,74,230,89,233,117,234,168,234, +186,235,220,235,199,236,69,237,123,237,158,240,173,241,246,241,127,242,83,239,167,236,95,232,222,225,79,220,5,213,86,207, +175,203,157,201,204,202,132,203,117,204,171,205,110,206,41,208,200,209,243,212,143,217,253,221,202,225,240,226,45,227,137,227, +140,226,245,225,162,226,19,228,214,228,241,227,180,226,191,224,66,223,75,222,191,222,84,225,245,224,251,224,22,225,18,223, +23,224,77,224,70,227,1,232,9,233,216,235,245,235,210,236,136,240,38,242,19,245,185,245,225,246,104,249,4,250,163,252, +63,255,73,1,56,3,164,4,140,4,110,3,173,1,97,253,160,251,95,251,209,251,192,254,115,0,135,2,251,3,103,5, +157,7,93,7,234,5,169,3,252,255,33,252,156,249,177,245,54,242,40,241,209,238,170,237,237,235,230,232,249,229,98,227, +230,226,44,225,81,225,193,225,210,224,3,226,225,225,207,226,207,226,74,225,117,223,255,218,145,216,228,212,244,207,116,204, +214,200,58,200,208,201,231,204,84,209,232,215,24,223,199,228,185,234,213,237,206,239,55,241,133,241,201,243,82,245,106,248, +106,253,234,1,95,7,40,10,85,10,176,8,3,2,79,249,43,241,112,232,208,223,252,215,184,208,24,201,121,195,28,194, +34,196,31,202,159,208,244,214,135,220,191,222,210,225,239,227,196,228,119,228,168,225,89,224,79,221,93,218,181,216,61,214, +215,211,17,207,113,204,217,201,130,199,137,201,220,203,113,209,7,216,166,222,110,229,85,234,220,240,139,244,185,246,141,248, +110,246,170,242,55,236,99,228,102,219,54,208,30,198,72,192,30,189,172,187,9,191,49,195,20,199,29,202,243,202,108,206, +207,208,175,208,249,207,223,205,252,202,195,197,205,191,64,186,176,181,132,178,43,177,227,177,21,178,116,179,250,181,19,184, +204,184,71,184,56,183,116,179,182,176,60,174,207,171,27,173,168,173,179,175,219,179,127,183,68,188,164,193,34,201,60,209, +0,218,166,227,221,235,222,243,21,251,96,3,170,11,17,19,254,28,157,37,13,45,242,53,119,62,134,70,235,77,13,85, +123,91,202,95,120,97,75,98,144,99,48,98,78,96,123,96,79,95,63,93,31,92,82,91,200,88,166,84,195,81,143,78, +152,74,18,71,241,66,192,62,227,57,247,52,84,48,85,42,123,36,50,29,235,19,210,11,141,4,40,254,124,248,186,243, +185,240,188,238,169,239,210,243,232,249,193,1,56,9,136,14,98,18,65,23,211,29,76,37,56,45,82,53,197,61,201,68, +136,74,154,79,52,83,77,85,238,83,195,80,36,78,104,76,230,76,116,78,174,81,234,86,18,93,125,100,8,107,54,110, +232,110,19,109,130,101,24,91,135,80,26,69,241,59,192,51,232,44,247,40,114,37,196,33,65,30,2,28,239,23,145,19, +87,17,62,14,79,12,53,9,50,5,212,2,244,255,31,253,160,250,130,250,98,250,122,250,4,253,93,254,84,0,101,2, +4,5,174,8,167,11,229,15,27,20,18,25,243,28,119,30,31,31,100,29,195,26,240,23,45,22,49,20,61,19,169,20, +65,21,105,23,10,25,64,27,239,29,196,29,17,31,202,30,6,29,43,27,192,23,117,20,214,16,174,14,194,11,183,8, +53,7,212,5,129,5,229,3,195,2,139,2,228,2,190,3,243,3,158,4,250,2,132,2,197,1,13,255,106,255,131,253, +181,250,162,249,252,247,81,246,90,244,85,243,23,241,42,239,213,237,30,235,12,234,203,232,99,231,244,230,151,230,192,230, +207,229,154,226,211,222,116,219,15,215,251,211,207,209,105,207,252,206,206,205,131,205,48,206,165,205,85,206,133,205,30,204, +237,204,43,205,72,205,121,206,52,208,132,211,115,215,140,218,68,223,49,228,34,231,26,234,117,235,37,234,228,232,83,231, +72,228,26,227,103,229,86,234,99,241,33,248,187,254,152,4,22,9,3,14,46,18,128,21,104,23,43,23,248,20,100,16, +182,11,191,7,85,4,83,1,44,254,225,251,208,250,236,250,202,251,252,252,9,255,122,1,24,2,52,2,24,3,187,1, +253,255,128,255,84,254,166,253,248,253,12,255,200,1,195,5,9,9,94,11,104,13,173,15,144,18,68,21,217,24,193,28, +216,31,50,34,39,37,2,42,249,44,189,47,73,51,142,52,125,54,246,55,221,55,129,54,97,51,84,49,189,47,141,45, +124,44,47,44,79,41,208,36,150,31,237,23,235,16,26,10,30,4,98,0,61,253,143,252,84,252,163,252,80,255,57,2, +4,5,229,7,223,10,136,12,48,13,64,13,203,12,186,12,122,11,165,8,209,4,28,2,18,255,149,251,72,250,42,248, +240,249,132,255,212,2,183,6,12,10,69,13,111,17,79,21,130,25,216,28,148,32,170,35,183,37,0,40,4,41,87,40, +101,37,26,34,199,30,91,26,100,22,7,19,90,17,210,16,155,15,111,14,166,13,220,11,96,9,97,7,55,4,108,2, +228,2,100,2,30,3,93,4,241,4,235,4,253,3,133,4,57,3,20,1,67,0,142,252,7,248,29,244,26,242,7,243, +67,245,62,250,232,255,107,5,189,9,17,11,211,9,221,3,236,250,108,239,52,227,93,216,115,205,148,199,189,197,195,196, +11,197,98,198,142,201,150,202,240,203,127,206,215,207,38,211,206,213,18,216,60,218,180,219,156,221,16,221,161,219,134,217, +11,217,3,219,139,219,80,223,148,228,79,232,42,238,154,243,58,248,98,253,247,0,73,2,249,0,169,253,235,249,84,245, +139,240,112,236,82,232,103,229,198,227,61,226,90,224,75,223,220,223,188,223,131,224,95,226,36,227,69,228,179,227,246,225, +11,225,165,222,42,219,221,214,187,210,109,207,31,203,210,199,148,197,96,194,180,191,190,188,222,184,38,182,90,180,206,178, +55,178,183,178,55,179,153,179,153,180,42,181,1,180,143,177,174,175,121,175,156,177,84,181,14,185,153,190,110,197,202,202, +127,207,92,212,100,216,94,219,249,221,83,223,154,223,92,223,4,223,27,224,78,225,11,227,130,229,78,231,136,232,75,232, +229,232,74,233,72,232,73,233,73,233,229,230,33,228,81,225,147,223,187,221,173,219,54,219,18,220,60,221,83,223,160,227, +115,231,47,233,109,236,204,238,112,238,65,239,64,238,3,236,251,234,80,232,231,229,71,228,156,226,249,223,112,221,194,219, +1,216,76,214,30,215,218,216,64,219,130,219,204,221,100,225,17,227,29,229,210,231,125,233,27,235,54,239,113,243,121,249, +71,0,146,4,8,9,97,12,12,16,222,18,53,21,246,25,163,30,235,36,57,43,140,49,229,53,47,55,155,57,89,58, +44,61,189,64,107,67,183,71,37,73,138,74,123,73,22,72,244,72,78,71,141,71,117,70,202,68,76,68,6,66,94,65, +102,63,90,61,144,60,178,59,244,58,246,56,165,55,96,51,102,44,58,38,139,32,215,28,49,26,219,25,6,27,196,28, +31,32,232,34,183,37,53,38,246,36,120,38,12,39,147,38,201,39,177,39,251,39,151,41,155,41,219,41,57,41,81,40, +74,41,68,41,30,41,60,39,84,35,96,31,231,24,224,18,197,13,190,7,201,1,184,250,147,244,248,238,195,231,159,225, +165,221,65,219,73,218,10,218,123,217,37,216,20,214,61,211,30,209,51,208,195,206,215,204,187,202,215,199,65,197,14,196, +248,194,250,194,192,198,116,202,76,204,53,206,79,204,130,198,232,192,159,189,66,188,12,187,229,187,229,190,9,195,219,199, +38,205,53,211,104,215,164,219,119,223,63,225,161,228,38,232,13,236,201,239,39,241,20,242,57,242,42,242,79,242,200,243, +146,246,90,249,222,254,45,6,95,14,84,22,250,26,11,30,84,31,246,29,92,28,124,27,222,26,111,28,151,32,132,35, +41,38,219,41,23,44,250,44,178,44,228,43,11,43,18,41,15,39,157,37,187,36,22,37,2,38,172,39,183,41,124,42, +144,43,100,45,203,45,153,45,71,43,129,36,25,29,213,21,255,13,248,7,87,1,169,249,23,243,181,237,173,235,81,235, +108,234,28,234,81,233,36,232,25,231,148,229,16,228,6,227,27,227,192,228,9,231,223,233,218,236,123,238,78,240,47,242, +102,243,185,244,83,245,103,247,76,250,51,252,184,254,51,1,84,4,153,8,3,13,160,17,242,23,245,29,3,33,127,36, +125,37,221,35,56,36,91,36,207,36,27,36,214,34,198,34,112,33,50,33,213,33,168,34,243,34,184,33,55,33,57,32, +83,31,143,31,46,32,232,32,179,33,206,34,5,35,126,35,33,35,221,32,2,30,9,26,120,22,132,19,69,17,250,14, +89,12,188,10,179,7,19,6,213,6,161,6,175,7,35,9,86,10,84,11,134,9,172,6,125,3,196,255,72,253,189,250, +217,247,220,245,123,245,223,247,51,251,123,254,18,1,115,1,248,0,86,254,150,250,235,248,190,247,1,247,179,246,64,246, +191,245,2,245,5,245,115,244,191,242,62,242,188,242,123,242,89,242,61,243,238,243,151,243,142,242,160,241,53,239,142,235, +56,233,199,230,91,228,63,226,32,223,1,219,192,212,74,206,72,201,39,196,73,192,53,190,235,188,168,188,41,187,6,185, +25,186,218,187,103,188,193,188,55,188,170,187,1,186,253,183,223,182,128,180,83,179,176,179,179,179,169,180,22,182,147,183, +226,184,249,186,100,190,206,192,193,194,234,195,27,195,116,195,174,198,165,202,66,205,104,207,132,210,238,213,168,216,79,218, +243,219,174,221,166,223,25,226,42,227,73,229,169,232,189,234,187,239,59,246,78,250,106,254,80,1,84,2,35,3,109,2, +119,2,43,4,123,4,47,6,176,9,153,12,174,15,3,18,220,22,40,29,78,33,77,39,71,44,28,47,197,49,193,50, +225,51,10,50,224,45,240,42,215,38,255,34,212,32,35,32,81,31,216,30,115,32,227,32,96,34,67,38,156,41,93,44, +9,45,8,45,3,45,9,45,123,46,162,46,89,48,72,52,252,53,184,56,103,61,135,66,53,72,208,76,158,80,97,83, +156,85,155,87,79,88,57,89,186,90,34,92,91,93,71,95,148,97,78,99,14,102,100,104,33,106,7,109,3,110,153,108, +92,108,168,107,215,102,151,96,14,89,80,79,40,71,118,63,75,56,35,51,38,47,115,45,138,45,207,46,201,46,1,45, +118,43,41,40,216,35,57,32,67,29,114,25,13,21,30,18,57,14,139,10,15,7,204,1,116,253,72,249,184,246,9,247, +226,247,15,250,69,253,233,0,49,3,157,5,69,11,37,14,45,15,60,18,134,18,228,18,58,20,207,19,250,20,193,20, +137,18,221,17,170,16,94,14,94,12,151,10,200,6,92,2,88,254,128,248,168,244,239,242,253,240,115,240,136,240,26,239, +23,236,98,234,50,231,104,226,148,224,49,222,37,219,169,215,34,211,50,207,37,203,137,201,232,199,185,197,204,196,33,194, +234,191,191,189,174,189,31,192,136,192,178,194,206,196,112,199,193,204,125,207,38,211,168,214,176,216,51,222,119,227,4,233, +224,239,130,244,95,247,142,246,87,243,0,241,231,238,239,237,3,237,249,235,33,236,63,235,189,233,87,232,111,230,251,227, +77,223,254,218,36,217,244,214,115,212,152,209,225,206,23,206,130,206,132,207,65,208,70,208,234,206,114,204,197,202,40,200, +185,196,82,194,204,192,52,193,40,195,87,199,173,204,202,205,15,203,162,198,220,190,10,182,179,176,18,174,2,174,164,177, +190,181,255,185,123,190,185,192,248,194,61,198,13,201,207,203,153,205,130,206,46,208,157,209,88,212,47,218,135,222,176,225, +96,229,38,230,219,229,170,229,253,228,244,228,233,228,59,229,255,228,221,228,20,229,78,227,195,225,244,225,173,227,139,229, +185,230,136,234,158,240,104,248,104,2,104,11,45,18,71,23,99,25,243,24,139,24,131,22,195,19,252,18,237,16,151,16, +201,18,224,19,224,23,1,28,61,29,154,31,145,34,9,37,121,39,48,43,198,47,36,52,183,56,39,59,130,57,241,50, +250,40,77,30,250,18,253,8,137,2,118,255,160,253,44,252,230,250,209,248,151,247,55,245,170,242,140,242,144,240,68,238, +132,236,10,235,124,235,107,234,149,234,201,235,143,234,70,234,148,234,59,236,42,240,226,244,199,249,108,253,68,2,95,7, +50,10,11,13,224,14,113,14,137,12,145,9,227,6,206,5,158,5,78,5,41,5,0,3,200,255,22,254,190,251,100,251, +101,253,35,254,123,0,121,2,157,1,174,1,6,1,222,255,20,1,163,0,204,254,231,254,217,253,74,250,213,245,17,241, +57,236,237,230,221,225,250,220,79,216,247,213,209,213,166,214,186,215,115,215,125,214,39,214,29,213,233,212,212,214,103,215, +55,215,167,215,103,216,12,219,100,221,34,223,134,225,169,226,30,227,119,226,48,226,141,228,218,230,154,232,223,233,109,234, +202,234,212,233,171,232,163,232,116,232,132,230,145,228,209,228,171,229,15,232,55,236,118,239,13,242,222,242,211,242,234,244, +157,246,164,247,67,249,242,248,219,248,160,250,31,250,49,248,170,246,189,244,189,243,230,242,8,242,82,241,118,239,57,238, +38,238,209,239,145,242,118,243,182,244,131,245,112,244,178,243,179,240,200,236,60,235,137,235,203,237,224,239,227,242,136,247, +253,250,216,254,73,2,87,4,211,6,254,8,209,9,227,7,87,5,254,3,228,2,35,4,44,6,210,7,103,10,194,11, +31,12,108,12,114,12,30,13,12,15,30,18,163,22,155,29,29,37,213,44,19,53,137,59,41,65,210,68,43,70,255,71, +48,74,254,76,11,79,72,81,56,84,145,85,114,88,6,90,222,87,51,86,164,83,139,81,60,81,60,80,14,80,184,80, +238,80,150,81,200,81,223,78,59,74,118,69,154,63,1,59,9,57,168,56,85,56,165,55,114,55,30,53,81,49,103,46, +236,42,192,39,135,37,230,34,246,31,144,29,118,27,198,25,146,24,11,23,180,21,138,19,175,17,45,17,63,15,65,14, +127,14,123,14,222,14,195,13,219,12,1,12,231,11,34,14,155,14,100,14,156,13,60,13,198,13,174,10,105,8,160,6, +232,3,32,4,30,3,228,0,59,254,6,251,167,248,202,245,65,245,163,245,242,244,141,244,155,243,144,242,202,239,130,235, +68,230,20,224,240,218,5,213,114,207,49,204,80,202,96,201,214,199,122,198,242,196,235,194,20,194,124,192,54,190,165,187, +48,184,9,182,195,180,30,179,25,177,182,175,168,175,199,175,16,177,128,178,229,179,170,182,237,183,189,185,217,188,74,189, +13,189,71,187,106,182,95,177,243,171,126,167,123,165,77,165,15,168,129,172,46,177,6,181,36,184,17,188,94,190,217,190, +8,191,241,190,26,191,240,191,154,194,188,196,254,198,37,202,90,203,142,205,95,207,126,207,30,207,92,205,57,206,69,207, +95,207,150,209,68,211,149,215,235,221,91,226,183,232,78,239,93,243,45,248,16,253,211,255,111,2,193,4,199,6,247,10, +173,14,120,17,130,22,139,27,59,31,194,34,9,39,10,44,139,47,229,49,54,52,177,53,134,54,40,55,200,55,62,57, +188,59,62,62,20,65,86,68,244,71,228,75,24,79,255,82,95,87,89,91,179,95,201,99,128,104,172,108,15,113,216,118, +97,122,74,125,129,127,198,127,255,127,255,127,188,127,47,127,71,125,247,121,204,117,214,114,193,112,88,110,233,108,152,106, +215,102,208,98,226,93,37,89,7,85,233,81,232,79,100,76,88,73,137,72,19,71,234,69,25,68,206,65,54,66,136,65, +145,64,195,64,125,62,144,59,47,54,173,46,115,41,81,35,61,29,164,25,89,21,68,16,125,12,213,10,90,9,66,8, +169,9,101,11,121,13,17,15,84,14,218,12,226,8,24,3,143,252,156,244,113,238,25,234,68,231,212,229,53,230,18,233, +253,234,240,236,138,238,170,238,243,238,67,236,25,233,175,231,193,228,110,226,179,224,72,222,28,220,188,216,76,212,81,207, +49,202,73,196,240,188,181,183,213,179,144,176,70,176,0,176,210,173,127,170,169,167,76,165,168,161,78,158,80,156,164,155, +185,155,126,156,174,158,215,161,83,164,33,165,218,165,40,165,224,162,102,161,56,160,97,159,66,158,122,157,174,158,33,161, +161,163,193,167,3,175,87,182,217,189,244,197,66,203,122,205,156,206,53,207,157,206,20,206,239,205,130,205,107,205,72,206, +217,207,191,208,214,209,173,211,180,214,2,219,61,222,231,224,250,226,118,227,17,229,138,232,194,235,61,239,206,241,156,242, +0,245,109,247,223,247,209,247,132,246,183,243,7,242,138,241,216,240,15,242,110,243,152,243,3,244,228,243,67,243,78,241, +224,239,145,237,98,233,105,231,112,229,211,226,204,223,168,220,251,218,239,216,135,215,235,214,59,215,67,217,225,218,217,219, +184,220,239,221,245,223,204,225,242,226,147,228,131,232,45,237,228,239,193,243,204,246,105,246,149,247,72,248,3,249,163,250, +183,250,119,253,231,0,186,3,121,7,71,11,103,14,191,15,88,18,95,20,202,21,243,24,20,27,237,29,239,32,227,34, +199,36,211,37,110,39,55,40,58,40,94,41,115,40,135,38,5,37,227,33,47,32,40,32,117,32,249,33,178,35,217,36, +252,36,180,37,8,38,68,37,67,36,77,33,34,30,79,27,93,24,14,21,213,17,191,15,175,12,99,10,66,9,77,8, +49,9,94,10,85,12,124,16,12,19,187,20,216,24,250,26,225,28,77,32,138,33,231,35,253,37,216,39,146,42,208,42, +72,43,37,44,27,45,137,46,126,47,14,48,30,46,73,43,71,41,44,39,191,37,82,36,111,33,30,29,16,25,137,22, +225,20,99,20,162,20,215,20,16,21,177,19,160,17,182,15,222,13,240,9,250,1,76,251,170,244,206,237,207,234,170,231, +88,228,19,227,44,227,92,226,110,225,206,225,4,224,180,221,101,219,49,216,254,213,251,212,217,212,42,214,110,217,224,219, +70,222,34,225,219,227,251,231,171,235,85,240,68,245,34,247,194,245,164,242,120,239,74,234,118,228,173,224,6,223,7,223, +100,224,195,227,252,230,234,233,243,236,64,237,252,234,101,230,191,223,227,217,156,212,219,209,132,210,74,210,48,211,211,212, +248,213,241,216,74,219,231,220,133,222,80,224,254,225,1,227,221,226,67,225,95,223,188,219,133,217,253,216,4,217,27,220, +142,222,79,225,254,229,161,235,200,241,229,247,64,255,42,7,92,14,200,17,228,19,128,22,158,24,20,28,77,30,0,33, +182,35,57,37,242,39,196,41,80,44,186,47,57,50,145,52,160,55,58,58,29,58,56,57,7,55,10,51,73,48,103,46, +98,45,151,46,178,46,25,45,42,44,98,41,135,37,15,34,235,28,125,22,118,17,40,14,203,11,135,11,140,11,96,11, +219,10,3,11,246,12,27,13,159,12,212,10,19,8,9,6,169,3,180,2,179,0,88,254,102,252,165,250,220,249,15,247, +179,243,93,239,194,233,151,228,61,223,75,217,222,211,217,208,252,206,55,207,15,208,66,208,225,208,240,207,236,207,168,208, +44,208,64,207,179,206,44,206,39,204,242,202,126,202,16,201,228,198,252,196,239,195,201,195,146,196,225,195,209,195,99,197, +213,197,203,197,157,197,109,197,59,197,139,199,146,204,138,209,91,216,45,224,52,232,2,241,243,246,229,250,133,254,34,0, +12,1,197,0,219,255,242,255,61,0,7,1,56,0,221,253,217,249,51,244,183,239,179,236,45,236,142,234,97,233,4,236, +109,237,249,238,7,241,202,242,16,244,129,243,203,241,69,238,123,234,216,228,58,224,147,221,91,216,94,213,30,211,107,208, +165,206,170,204,160,205,4,207,32,210,54,215,188,218,120,221,45,222,134,223,243,223,193,222,27,223,57,222,184,221,168,220, +216,219,251,221,249,223,157,227,134,231,89,234,160,237,14,241,216,244,145,247,121,251,160,255,156,3,220,8,48,11,213,12, +229,13,193,12,84,12,19,12,248,11,218,10,217,10,82,13,243,13,219,14,201,15,180,13,172,11,29,10,205,7,108,6, +251,6,98,8,233,9,188,11,33,15,41,20,250,23,110,27,8,30,89,31,144,33,71,33,130,32,36,33,74,34,181,37, +149,39,55,40,1,40,15,39,108,38,218,36,33,37,16,37,75,37,218,38,11,40,124,42,39,44,205,46,134,49,129,51, +183,54,174,57,108,61,200,63,0,65,223,66,50,68,206,68,133,67,69,64,69,60,24,56,109,51,254,48,176,48,233,48, +229,49,182,49,39,49,53,47,55,45,249,43,236,41,129,41,112,41,171,41,7,42,92,41,10,40,103,38,102,37,0,35, +123,32,214,31,80,30,20,27,99,25,145,24,217,23,122,25,25,27,35,29,33,32,123,35,4,39,29,41,137,41,60,40, +131,38,237,34,73,33,177,33,187,32,214,33,191,32,112,31,225,30,106,28,28,28,65,28,15,28,149,27,125,27,133,25, +248,21,220,19,52,17,235,14,174,12,233,11,14,9,38,5,37,4,156,0,149,253,89,249,48,244,37,240,117,233,178,228, +190,224,90,220,118,217,160,214,168,211,162,209,106,207,118,203,159,199,96,195,124,191,91,188,36,186,249,183,255,180,60,179, +75,177,253,176,93,177,245,177,137,178,180,176,69,176,128,176,10,178,157,180,237,182,180,185,216,187,126,190,125,192,245,194, +158,196,38,198,148,200,254,200,215,201,69,202,100,203,41,207,226,212,254,218,216,226,140,236,252,242,193,249,93,254,202,255, +20,1,8,1,233,0,193,252,126,248,236,243,55,238,222,235,9,234,51,236,209,239,172,242,243,246,85,251,7,0,199,3, +168,7,157,10,48,12,229,11,144,10,202,9,26,8,135,7,140,7,32,8,71,9,37,10,104,10,98,10,36,11,144,10, +9,10,218,9,233,10,98,13,241,16,3,23,135,28,214,34,144,40,60,44,3,47,174,48,87,50,229,49,59,48,168,44, +23,40,43,35,244,28,168,24,84,21,194,19,152,20,194,24,0,30,106,34,108,40,103,44,239,46,55,47,65,46,162,45, +30,42,79,39,126,37,198,36,33,37,237,36,68,36,247,34,223,34,147,35,139,37,124,40,170,43,225,45,43,47,25,48, +8,46,85,43,114,39,217,34,68,31,116,27,134,24,165,21,11,21,117,21,3,23,120,25,28,24,22,23,81,20,236,14, +156,11,100,7,120,3,189,0,139,252,41,249,167,247,1,247,144,247,155,248,92,250,247,250,205,250,17,253,129,254,43,0, +25,4,43,7,61,8,157,8,223,8,137,7,219,6,50,6,179,5,19,7,91,8,74,10,126,10,132,11,208,13,183,14, +23,17,203,16,112,15,85,14,102,11,176,8,12,4,204,254,239,247,17,241,103,236,168,230,154,227,252,225,144,224,77,225, +251,225,113,227,239,227,36,228,152,228,211,225,228,222,194,219,139,214,144,209,254,204,8,201,248,196,206,192,99,189,175,186, +9,186,65,186,141,187,152,190,175,194,41,200,253,204,193,210,38,217,106,222,143,227,219,230,123,235,97,239,41,240,131,242, +228,243,32,245,244,247,16,252,6,2,14,8,123,15,243,22,63,30,103,37,21,43,150,47,72,49,128,50,242,49,221,46, +123,43,204,36,211,27,171,18,46,10,139,2,109,252,238,248,251,245,205,243,206,241,219,238,124,235,53,232,155,228,250,222, +130,216,101,210,226,204,235,199,222,195,139,193,36,192,18,192,125,192,17,193,223,195,106,198,153,199,109,202,63,204,5,206, +175,209,148,211,197,214,62,218,156,221,141,226,96,229,39,234,166,239,39,244,167,249,228,253,238,2,31,7,237,9,187,13, +155,17,179,20,116,23,139,26,150,28,246,29,134,30,46,30,118,28,158,25,251,21,15,15,10,7,58,254,149,244,145,235, +226,226,200,218,125,211,203,206,2,203,198,199,165,195,50,191,132,188,133,183,55,179,207,175,87,173,114,173,90,173,64,175, +213,176,165,176,63,176,90,175,222,173,132,172,111,172,159,172,180,174,59,177,69,180,19,185,196,189,65,194,100,197,135,200, +172,202,130,204,243,207,121,210,28,212,7,214,158,216,109,219,241,224,207,230,68,236,171,244,34,252,229,2,143,8,203,12, +101,16,232,18,233,20,66,20,14,19,188,17,124,16,2,16,237,15,200,16,167,17,10,19,95,18,41,18,181,18,245,17, +248,17,76,16,132,15,61,14,46,11,172,8,192,4,224,255,8,250,162,245,30,242,171,239,72,239,18,237,102,234,91,232, +70,230,105,227,249,223,41,221,1,219,253,216,16,214,144,211,52,210,3,209,31,207,26,206,86,205,31,205,240,206,182,206, +99,206,138,206,151,206,21,208,246,209,85,214,113,217,221,218,171,220,247,220,216,221,220,221,172,219,198,216,178,213,70,210, +236,208,72,210,101,212,231,216,254,221,12,227,19,232,116,235,135,237,234,237,158,238,180,239,18,241,0,244,91,247,92,250, +23,254,93,1,11,2,211,3,209,5,49,7,19,10,115,11,211,12,88,14,40,15,148,16,163,17,187,18,230,19,38,22, +19,24,193,25,70,29,230,31,146,34,167,37,187,39,151,41,215,42,57,45,50,47,89,47,67,49,221,51,70,54,223,56, +71,58,61,60,75,62,245,63,37,67,64,69,201,69,121,71,156,72,149,72,225,73,200,75,66,77,197,79,85,83,45,86, +3,88,113,90,220,92,219,93,21,94,164,93,227,91,36,89,53,87,30,85,160,81,94,79,71,77,112,74,126,73,61,73, +226,71,10,71,50,71,41,70,6,68,221,65,172,63,75,62,133,61,93,61,238,60,23,59,84,57,171,55,255,52,62,50, +177,48,184,46,93,43,176,39,29,36,100,33,76,31,250,29,117,29,252,28,36,28,103,26,240,23,237,20,9,18,111,14, +211,10,138,8,239,5,225,2,32,255,198,251,213,248,238,245,186,244,244,243,189,243,17,243,108,241,155,239,238,235,160,232, +117,230,227,226,56,223,214,220,150,218,67,217,196,215,201,213,220,213,65,213,131,213,88,215,142,215,100,216,16,217,173,217, +2,218,105,217,17,218,59,218,120,218,28,220,139,222,152,225,28,228,92,229,92,229,10,229,96,228,197,226,227,223,138,220, +90,218,32,217,67,216,128,215,211,214,250,213,176,212,168,211,44,211,106,210,160,209,233,207,119,203,222,199,50,197,39,193, +73,191,9,191,95,191,198,192,109,194,151,197,124,201,228,205,125,209,246,210,44,212,233,211,54,210,93,208,5,207,87,206, +80,206,132,208,194,211,29,215,22,218,194,220,122,223,143,225,196,227,227,228,182,230,121,232,249,232,143,235,184,237,14,240, +205,242,207,245,219,250,126,254,133,1,132,4,67,7,79,10,192,12,108,15,49,17,179,18,45,21,64,23,86,24,131,25, +156,25,118,24,254,24,118,25,67,26,51,28,55,29,81,30,67,31,6,32,52,32,178,31,162,31,62,31,41,31,100,30, +139,28,193,27,86,26,30,24,198,20,15,16,64,11,109,2,75,248,19,240,236,231,60,226,207,222,157,221,226,220,217,220, +219,221,2,221,1,221,47,221,178,221,68,222,231,222,16,224,3,223,41,223,153,223,66,225,7,228,108,229,145,231,2,232, +212,233,136,234,72,232,116,232,1,231,40,229,195,228,153,226,160,224,132,222,48,218,239,214,160,212,155,210,222,209,242,207, +7,207,226,206,86,205,187,201,7,198,184,196,108,194,253,192,241,192,248,194,179,199,67,205,72,213,83,221,0,229,56,235, +246,239,97,243,68,245,29,245,89,240,106,236,205,230,236,225,206,225,104,225,0,229,145,233,183,238,129,245,100,250,243,254, +159,1,233,3,127,5,32,6,87,6,180,5,80,7,41,10,21,13,79,16,138,19,245,22,224,25,207,26,51,26,145,24, +172,22,14,22,113,20,34,19,76,19,202,19,176,21,48,24,205,27,165,32,81,35,117,35,181,35,120,34,149,32,209,29, +193,24,193,19,238,12,238,6,208,2,249,255,75,255,72,255,218,1,213,3,89,5,31,8,180,10,45,12,218,11,151,11, +251,8,162,5,154,1,145,251,133,245,231,239,245,235,20,232,27,230,11,228,111,225,92,223,46,219,230,215,174,212,193,210, +254,210,29,213,183,214,125,214,186,216,126,217,96,218,131,220,146,221,198,220,227,218,166,218,154,216,249,216,107,217,95,216, +198,218,117,220,141,223,119,227,231,229,86,231,237,233,146,237,230,239,226,243,17,247,245,249,17,253,182,255,215,1,88,2, +52,4,55,5,9,6,113,6,75,6,81,7,174,6,185,6,135,7,40,7,168,6,110,7,220,7,78,8,174,9,81,9, +227,9,207,10,172,12,94,15,169,16,129,18,29,19,77,20,239,20,43,20,213,19,44,18,159,17,136,17,74,16,255,14, +252,14,111,14,132,12,239,11,34,11,212,9,127,8,132,7,241,6,159,6,216,5,152,3,195,1,139,255,93,254,92,254, +29,255,160,0,232,0,77,3,50,5,143,5,175,6,172,6,79,6,162,5,31,5,3,3,196,0,194,0,143,0,41,0, +124,255,85,255,4,255,21,255,161,255,98,255,36,0,28,0,21,0,97,0,19,255,184,253,67,252,33,250,126,248,116,248, +255,248,103,250,127,250,59,248,25,247,240,245,3,244,5,241,170,237,210,235,237,234,234,233,41,233,206,235,85,239,50,242, +136,245,14,248,211,250,54,252,157,251,161,249,134,247,150,245,29,243,91,243,0,244,125,244,6,247,201,249,127,252,45,253, +6,253,16,253,178,251,6,252,166,252,185,252,182,255,26,4,167,9,22,15,169,18,106,21,127,22,90,23,137,24,89,26, +32,28,39,30,242,32,221,33,13,36,4,38,231,38,58,39,62,38,24,39,115,37,8,37,34,39,190,40,238,43,232,45, +197,48,21,51,177,52,100,51,162,48,121,47,212,39,179,32,146,26,243,19,238,15,69,10,211,7,7,6,116,4,93,6, +187,8,43,9,198,8,84,9,213,8,43,10,235,9,220,9,241,11,52,12,110,14,246,14,125,16,140,19,39,22,220,26, +102,30,192,34,27,38,9,42,45,47,79,50,183,53,209,56,220,60,253,63,118,65,8,67,47,68,192,68,249,68,7,69, +77,67,75,66,50,65,162,61,230,57,181,54,85,52,182,50,5,49,13,48,118,48,53,47,191,45,119,44,182,41,45,38, +202,31,48,25,93,17,2,8,116,0,98,249,179,242,57,236,80,231,106,227,161,223,228,218,53,214,60,211,252,207,133,205, +67,203,160,202,136,200,47,198,232,199,134,199,17,201,169,203,110,204,171,206,81,208,82,211,109,213,41,212,119,209,209,205, +252,201,76,200,78,200,230,200,153,203,37,206,242,209,225,214,164,218,171,221,101,224,130,227,137,228,57,229,18,230,205,231, +81,234,184,236,245,241,222,245,138,250,165,255,202,0,252,1,41,3,202,3,196,3,251,4,175,6,51,6,48,6,135,5, +214,3,97,3,201,2,59,1,165,0,212,0,189,0,146,254,193,250,168,246,165,240,84,236,210,231,247,225,150,223,16,221, +199,218,225,217,38,216,16,216,129,217,206,218,150,220,27,220,145,217,198,215,186,212,88,211,37,211,246,209,19,210,225,209, +122,211,173,213,88,214,0,216,45,217,11,217,181,217,225,217,190,216,251,217,177,218,10,219,5,221,228,221,208,223,51,225, +107,225,219,223,159,221,144,221,13,220,92,220,193,222,222,223,249,225,99,229,191,232,19,234,18,234,189,233,170,232,246,230, +186,229,2,229,235,227,122,227,117,227,44,228,91,229,157,229,205,229,246,229,74,229,102,228,82,228,204,228,49,229,14,232, +196,237,27,242,58,247,94,251,243,251,226,254,63,1,86,3,120,6,150,7,85,10,117,13,31,17,90,21,219,23,77,26, +214,27,167,27,34,26,244,25,70,26,88,26,32,28,12,28,178,27,169,28,182,29,223,32,177,35,21,39,96,44,215,47, +91,50,113,50,58,47,122,44,73,40,240,34,248,31,83,29,199,25,7,23,255,20,29,19,178,17,10,18,124,18,114,17, +43,18,160,17,143,14,3,13,170,11,78,10,234,8,36,8,75,7,176,6,80,6,25,4,109,4,91,4,194,3,148,5, +188,5,182,5,198,4,65,3,20,2,173,0,147,254,162,252,223,252,159,252,56,255,159,1,57,2,83,5,2,7,48,10, +41,13,9,14,139,15,197,15,40,15,18,13,180,10,170,8,138,7,112,7,32,7,148,7,196,8,5,11,5,13,141,15, +4,18,230,18,96,20,171,21,39,22,46,22,58,22,121,21,117,20,171,19,126,18,115,19,60,21,250,22,95,24,40,25, +18,25,23,21,172,16,184,12,183,7,119,4,40,2,78,1,129,2,225,4,8,9,97,13,242,17,133,22,149,26,78,30, +15,32,159,33,80,33,230,30,114,29,84,26,249,23,165,22,145,19,15,16,214,13,141,12,56,9,116,7,42,7,88,7, +26,10,116,12,168,15,199,18,5,20,251,19,50,20,188,20,156,20,152,22,171,21,80,19,96,19,172,17,55,17,210,16, +154,15,109,15,110,14,117,14,169,14,20,14,148,15,52,17,1,17,251,16,38,16,39,14,169,11,49,9,53,6,254,1, +97,0,58,255,240,252,65,251,21,248,110,246,233,245,165,243,202,241,173,239,184,236,39,235,144,233,67,230,237,227,76,225, +50,220,35,216,88,213,21,209,63,205,65,203,230,202,0,204,243,204,103,207,87,211,178,214,73,218,180,221,21,224,229,225, +195,228,132,232,243,235,172,237,92,238,138,239,220,238,147,237,96,237,235,236,202,235,93,235,33,235,70,233,114,233,236,233, +210,233,159,235,190,235,6,235,169,234,29,234,179,233,147,234,33,236,157,236,36,238,188,238,23,239,168,239,41,238,190,237, +43,238,203,238,52,240,180,242,191,244,123,245,48,246,117,245,14,245,201,242,201,238,120,235,58,231,38,229,182,226,197,224, +152,224,139,224,77,227,73,230,72,235,212,239,152,241,120,243,194,243,23,244,175,242,146,240,61,238,142,234,253,232,15,234, +42,237,215,239,169,243,93,246,189,247,73,250,116,250,119,251,56,252,210,251,131,251,101,251,195,250,166,248,5,250,1,250, +118,249,72,251,20,251,244,250,12,251,13,252,126,252,26,253,21,253,13,251,64,249,29,245,234,241,9,240,147,238,62,237, +110,235,37,237,217,238,45,239,16,240,250,239,97,238,178,237,233,237,81,236,181,234,223,232,142,230,194,227,196,225,32,226, +145,225,110,225,38,227,142,228,54,229,141,230,183,232,98,234,210,236,104,239,5,242,17,246,76,249,230,252,163,0,161,1, +164,2,169,2,95,2,81,3,183,3,71,5,74,6,115,8,187,11,70,14,126,17,213,20,231,24,238,25,106,27,82,30, +213,31,205,34,160,35,167,35,62,34,184,32,237,31,246,28,164,28,60,28,236,27,83,28,235,27,188,28,41,30,79,33, +162,34,3,34,182,33,223,32,197,30,197,27,249,26,20,26,41,24,35,22,186,20,65,21,37,22,116,23,72,26,148,29, +28,29,112,27,142,26,130,23,207,20,88,18,93,16,75,14,220,11,159,11,14,12,44,13,45,14,190,15,180,17,180,16, +223,14,173,14,222,14,167,13,22,13,245,11,138,9,181,8,9,7,8,6,64,4,19,0,245,252,137,250,4,250,108,249, +232,248,116,249,17,251,148,255,192,2,151,5,146,8,14,10,143,11,204,11,152,12,254,12,44,12,98,12,81,12,152,11, +146,9,25,8,14,8,41,5,72,2,21,1,234,253,69,251,176,249,220,247,186,246,18,246,178,245,144,246,255,247,42,249, +85,252,78,255,85,0,214,254,75,252,220,249,154,244,30,241,88,237,233,232,48,229,37,224,218,222,217,219,64,217,63,217, +83,215,65,216,95,218,106,221,245,225,175,230,96,235,207,240,120,245,51,247,225,248,159,249,229,250,205,251,247,251,252,252, +112,254,250,0,203,1,4,4,49,6,117,7,82,10,57,12,220,14,243,16,197,18,11,20,252,19,232,19,117,19,51,19, +165,17,243,16,230,16,3,15,23,13,34,10,167,6,85,5,115,3,133,1,152,0,26,254,78,251,252,245,60,241,115,237, +5,233,167,231,90,228,68,227,26,228,125,226,203,225,66,224,0,223,177,220,81,217,160,213,131,210,181,208,84,207,109,207, +207,205,83,205,61,205,71,203,73,204,43,206,213,205,103,206,1,208,73,206,75,205,27,206,244,205,162,206,57,208,100,211, +162,214,78,217,241,219,255,222,217,225,155,228,158,231,179,233,81,236,98,238,31,241,232,243,56,245,14,247,1,249,178,249, +141,248,103,248,231,246,86,244,52,242,128,239,67,238,151,237,181,239,78,242,235,245,21,251,207,253,89,1,24,4,44,6, +38,7,83,6,3,7,112,6,253,4,205,4,142,4,187,5,17,8,149,9,42,13,37,15,87,15,113,18,181,19,136,21, +36,24,210,24,78,26,195,26,161,26,119,26,39,26,132,26,93,26,78,27,103,29,198,29,65,30,231,30,75,31,96,32, +101,31,26,29,68,25,112,19,23,12,90,4,220,254,51,250,138,246,143,243,69,242,208,243,31,247,70,250,145,252,97,255, +49,0,99,1,228,1,233,0,148,0,232,253,223,252,189,252,130,251,157,251,44,252,66,252,14,253,160,254,214,255,253,2, +47,6,31,9,41,12,95,15,254,17,26,18,38,19,45,19,253,20,60,23,44,24,167,27,10,29,149,30,60,30,148,28, +162,27,216,24,218,24,93,25,178,25,99,26,145,26,151,24,72,21,164,19,150,16,214,15,160,16,172,16,187,17,87,18, +159,19,182,19,99,19,69,18,67,14,7,9,10,1,76,247,32,239,116,233,145,229,122,227,118,228,96,231,137,234,45,237, +124,237,216,235,103,233,185,229,115,227,77,226,133,223,94,222,97,222,178,220,172,221,45,224,187,224,199,226,103,228,35,228, +203,229,13,232,125,233,34,236,243,238,229,241,175,246,143,250,3,255,58,5,142,8,15,11,44,14,113,15,252,16,38,20, +64,23,39,27,87,33,87,39,54,45,191,52,93,58,242,61,215,65,65,67,194,66,254,65,77,63,178,59,113,56,166,52, +198,48,189,44,146,39,105,35,129,30,220,24,214,21,227,16,128,10,168,4,173,253,50,247,129,240,193,235,186,232,255,227, +176,224,22,222,75,218,93,215,8,212,214,208,9,207,72,207,236,209,219,211,199,214,252,217,108,219,48,221,114,221,84,221, +65,221,91,221,91,223,244,224,230,226,35,230,179,234,68,240,194,244,212,249,94,0,122,5,39,9,84,12,87,13,132,13, +164,14,111,14,248,12,224,11,179,9,44,7,204,5,110,5,220,5,10,7,250,8,51,9,45,9,158,9,19,7,27,3, +80,0,68,254,252,251,117,251,220,250,12,249,71,248,114,247,246,246,2,246,93,244,108,241,130,238,5,234,177,226,198,221, +151,215,18,211,152,210,0,211,137,214,117,219,105,226,201,233,3,240,237,244,219,248,154,250,139,249,234,248,19,247,68,247, +87,248,232,248,33,249,156,248,47,249,212,244,43,241,255,238,141,235,201,233,147,231,152,231,108,230,214,229,17,231,18,231, +86,232,202,233,58,235,114,236,164,239,115,242,103,243,66,244,115,243,9,243,216,242,6,242,56,240,94,239,149,239,131,238, +196,238,74,240,223,239,67,239,77,239,33,237,140,236,239,235,177,234,169,235,134,235,52,236,54,237,140,240,155,243,42,244, +207,246,253,247,14,249,104,249,102,249,225,249,191,248,126,247,144,245,103,244,2,241,89,237,183,236,48,235,143,233,199,233, +92,233,102,230,205,228,220,226,141,225,187,226,225,226,172,227,188,228,198,230,101,232,173,232,235,233,176,235,90,236,30,236, +204,237,193,237,186,236,30,237,136,238,35,241,90,243,90,247,182,251,100,0,28,3,129,4,229,6,197,5,127,5,165,4, +223,1,65,255,94,251,177,248,227,245,144,244,95,243,235,242,136,245,28,247,60,250,37,253,60,255,231,2,22,4,12,4, +184,3,143,1,18,254,204,248,251,242,102,238,32,235,12,232,44,229,99,228,143,227,73,226,28,227,143,226,246,225,42,228, +237,228,38,228,140,228,42,231,61,234,229,236,75,241,89,245,14,248,224,248,50,248,159,248,60,245,185,239,36,237,115,233, +9,230,173,229,223,230,99,232,80,235,137,239,58,243,94,248,170,253,1,2,212,6,186,11,243,15,29,19,153,22,114,25, +11,28,123,30,110,33,145,37,122,38,216,38,133,40,22,42,195,44,251,47,3,52,100,55,45,59,247,63,142,67,10,71, +235,74,211,78,4,82,60,85,108,89,17,93,118,95,6,97,219,97,22,97,230,93,173,89,88,86,3,84,183,81,150,79, +65,79,40,79,75,79,212,79,153,79,87,80,11,79,123,77,212,75,61,72,155,70,149,67,186,64,10,62,180,57,248,52, +7,46,51,39,55,31,149,23,164,17,174,12,56,8,147,3,179,1,248,254,59,252,21,251,195,249,196,246,30,243,174,241, +205,237,22,235,97,233,221,230,203,230,106,230,236,229,52,229,197,229,139,228,33,227,187,226,21,224,61,225,250,225,67,226, +74,228,65,230,177,233,165,234,125,236,232,238,74,238,234,236,113,234,6,231,203,227,253,225,130,224,1,222,66,220,2,219, +29,217,154,217,69,218,235,217,109,219,56,219,157,217,126,215,33,212,239,209,10,210,22,210,244,209,28,211,37,210,248,208, +54,208,4,207,55,206,6,205,136,205,201,205,48,206,199,207,167,209,26,211,44,211,40,212,57,213,150,212,200,211,27,213, +66,214,144,216,71,220,38,223,168,227,179,230,252,234,231,239,177,241,217,244,171,247,240,247,83,247,169,247,72,248,151,249, +7,249,144,247,112,247,249,244,199,244,25,245,78,245,3,247,189,247,50,249,33,250,198,252,1,254,116,253,100,253,54,251, +243,248,48,246,241,243,167,242,27,243,192,243,117,244,233,246,122,248,94,251,124,253,176,254,155,255,62,254,131,250,107,243, +2,237,158,231,231,227,71,226,11,225,150,225,34,226,173,225,91,224,85,223,105,223,242,223,150,224,19,225,238,224,234,224, +173,226,168,228,161,229,151,230,191,233,142,237,156,241,176,246,154,251,125,1,32,5,132,8,192,11,32,13,164,16,192,17, +246,17,28,19,205,19,68,22,125,24,37,28,237,31,49,35,214,39,153,43,0,48,74,52,105,55,48,58,233,59,206,61, +158,62,110,62,201,62,185,62,177,62,11,61,237,57,19,54,61,48,147,42,105,37,185,33,216,30,115,27,225,25,242,22, +199,19,94,18,84,15,169,12,35,9,181,4,203,0,143,251,141,248,1,247,225,245,83,245,44,243,89,242,97,242,227,241, +156,241,133,242,77,244,54,246,244,248,71,250,71,252,3,255,5,1,114,2,232,2,175,4,157,4,213,4,93,5,139,4, +187,6,66,6,231,3,205,2,87,255,217,250,240,244,4,238,131,233,199,230,52,229,118,230,234,231,44,233,36,235,13,236, +229,237,34,240,89,240,32,239,185,237,222,236,2,236,186,234,107,233,94,232,57,231,238,228,212,227,233,229,23,230,117,228, +21,226,138,220,162,215,123,213,163,213,146,216,88,221,76,225,172,229,30,234,74,236,255,238,128,240,41,241,77,241,255,240, +182,241,240,240,74,241,186,241,7,242,7,244,96,246,58,249,84,252,179,255,176,1,108,4,205,5,95,5,114,7,55,7, +101,5,107,4,12,3,190,2,31,2,127,0,196,255,91,253,239,249,23,248,95,244,222,242,100,243,153,241,164,241,15,242, +11,241,196,240,45,241,241,240,15,240,199,237,93,233,132,230,168,229,153,227,141,227,134,229,7,229,21,229,233,228,39,229, +179,229,207,228,65,230,153,229,100,228,174,227,142,228,178,232,255,235,206,241,54,245,167,248,221,252,136,254,47,2,144,3, +21,6,109,8,111,10,132,13,40,15,53,20,254,22,159,22,151,21,0,20,1,19,62,16,209,13,182,13,90,14,223,14, +124,18,95,21,207,21,160,22,111,22,6,23,7,22,29,19,160,15,130,12,236,10,84,10,202,11,34,13,255,14,245,16, +167,18,12,21,232,22,7,26,163,29,201,31,102,32,164,32,90,32,248,30,110,29,187,27,163,25,135,22,40,20,110,19, +123,18,3,18,49,19,44,20,150,21,84,23,231,22,127,22,11,21,38,17,218,12,64,8,56,4,22,0,143,250,123,245, +136,241,222,237,237,235,104,234,248,232,53,232,93,230,29,229,164,227,117,225,166,223,165,221,72,219,117,216,197,213,140,211, +203,210,64,210,170,210,164,212,134,213,83,213,114,213,203,214,213,214,24,214,243,213,69,214,171,216,95,219,181,222,50,228, +17,234,83,240,143,247,77,254,153,4,65,8,156,11,34,16,51,17,194,19,88,22,150,24,147,28,189,31,108,37,219,41, +220,46,158,52,123,55,117,57,65,59,202,61,203,60,149,60,79,60,56,57,16,56,32,52,47,47,34,44,106,41,198,38, +158,36,194,34,48,34,29,34,252,31,210,30,112,26,94,21,241,17,236,11,213,6,157,255,212,247,231,241,164,236,146,233, +188,231,190,230,7,230,233,230,121,232,205,233,249,234,188,236,15,238,188,236,136,235,4,233,143,228,155,223,96,219,212,215, +47,212,76,211,37,211,142,211,115,214,38,218,37,223,166,229,160,234,198,238,230,243,84,247,119,250,61,252,101,252,191,252, +9,251,147,250,77,250,70,248,230,247,14,248,77,249,77,251,251,251,67,253,24,254,127,254,39,254,46,250,119,246,148,242, +163,237,67,234,194,231,90,230,164,227,79,225,16,223,217,219,151,218,188,215,139,212,191,210,178,208,225,206,72,205,76,205, +232,205,62,205,101,204,152,203,93,202,150,201,237,199,15,199,66,199,133,198,85,200,182,201,245,201,146,203,54,205,238,207, +171,210,126,213,2,216,41,218,8,220,178,221,63,225,46,228,189,230,103,234,189,236,230,237,245,239,28,242,53,243,23,244, +175,244,10,245,118,244,99,244,143,245,158,245,173,245,106,246,61,247,230,247,20,249,119,251,132,253,98,254,177,253,70,252, +19,251,248,249,208,249,243,250,136,252,215,253,245,254,112,255,22,0,5,1,114,0,200,0,180,1,71,2,93,4,77,6, +100,9,52,12,70,14,185,16,178,17,36,20,241,20,117,20,156,20,38,20,195,21,165,22,73,24,227,24,163,24,118,26, +142,26,237,26,19,27,119,28,156,28,220,26,250,26,147,25,67,25,202,24,37,25,76,25,233,21,63,19,125,16,81,13, +94,8,175,5,78,4,178,1,70,3,234,2,120,0,50,255,162,253,37,252,104,250,172,248,248,246,35,246,246,243,144,242, +71,242,114,241,75,242,68,243,185,245,238,248,87,252,80,0,130,2,244,4,130,7,181,7,91,7,149,7,98,6,145,4, +59,1,25,253,71,250,31,248,179,248,165,249,41,251,45,254,84,0,210,2,232,5,235,8,14,11,168,15,19,20,51,22, +120,26,61,29,85,31,132,34,139,37,206,40,127,43,210,46,190,48,140,49,45,51,234,51,218,52,197,54,198,55,159,56, +117,58,11,60,70,62,91,64,248,64,156,65,236,65,49,66,97,66,37,65,53,64,142,64,179,63,178,61,109,60,11,58, +160,53,198,49,76,46,190,42,15,40,107,36,238,32,252,29,227,25,176,22,2,19,173,15,26,15,101,13,76,12,28,13, +86,12,150,12,191,13,141,13,134,12,224,10,170,9,191,6,102,3,253,1,6,0,183,253,87,252,213,251,58,251,17,252, +230,253,123,254,203,255,69,1,106,1,125,0,213,254,45,252,239,249,7,248,117,245,133,244,36,243,76,241,242,239,203,237, +51,236,182,233,139,229,176,225,189,221,29,217,97,214,61,212,22,211,107,210,133,207,248,205,199,202,88,200,100,199,32,197, +62,199,174,201,14,205,100,209,37,213,73,219,209,223,63,228,186,231,190,234,165,239,227,242,100,245,103,248,2,251,38,253, +207,255,97,2,136,4,197,5,28,7,124,8,163,8,158,10,135,12,220,13,186,14,131,16,253,19,205,20,35,23,132,25, +65,27,4,30,88,29,9,28,212,24,143,20,233,15,12,9,117,4,95,255,44,250,30,247,114,244,210,242,215,239,111,236, +31,233,97,228,39,224,94,220,3,216,16,211,45,208,206,206,217,204,110,204,51,204,163,203,149,203,154,202,204,200,224,199, +41,200,235,200,33,202,117,201,221,199,59,198,38,195,192,191,206,186,137,181,26,176,210,169,22,166,16,165,240,165,61,169, +77,173,222,177,21,184,87,189,159,194,27,200,176,204,244,209,161,213,133,217,101,221,84,225,72,230,134,233,224,237,196,240, +45,241,146,241,89,241,166,241,170,241,38,242,0,243,85,244,95,246,65,248,31,250,250,251,47,254,40,255,21,1,110,3, +224,3,119,5,81,6,28,5,102,3,29,1,113,253,53,247,106,241,219,237,170,234,64,231,12,227,118,223,99,220,133,217, +139,217,232,218,149,221,172,225,250,229,50,235,211,238,102,241,119,244,22,246,173,246,195,248,50,250,173,250,47,252,211,251, +86,252,15,254,145,255,195,2,147,5,162,8,100,12,68,17,58,21,162,23,113,27,111,31,223,35,241,39,241,42,165,44, +106,45,56,45,240,42,146,40,194,36,221,32,220,29,73,25,111,22,17,22,109,21,186,20,55,20,35,19,41,18,208,17, +254,17,103,17,183,16,105,16,197,14,40,13,150,11,231,10,118,10,8,10,119,11,64,13,122,16,159,18,167,19,85,21, +4,21,253,21,246,23,221,23,196,23,71,25,211,27,210,30,87,33,252,35,215,38,22,40,91,42,30,44,90,43,39,42, +206,39,32,38,6,36,249,31,150,28,229,24,62,21,0,19,148,16,173,15,60,15,134,12,88,10,117,8,162,7,224,6, +101,4,162,2,229,254,111,250,245,246,64,243,99,240,219,237,249,236,76,236,16,235,195,233,112,230,53,227,48,224,154,221, +130,221,7,221,18,221,165,222,145,222,202,222,17,224,114,224,99,224,216,224,31,226,246,227,162,229,135,231,53,235,7,238, +181,240,130,245,157,249,115,252,213,252,79,253,1,255,203,253,170,252,238,253,210,253,65,252,190,251,214,250,114,249,219,247, +226,245,22,244,140,242,121,243,77,245,24,247,95,249,19,251,199,253,1,1,221,1,5,2,226,3,212,3,246,3,77,5, +243,4,229,4,32,5,129,6,160,6,180,6,59,8,158,8,181,10,125,12,223,12,133,12,73,12,207,10,171,6,107,4, +29,2,31,255,121,252,222,250,128,251,242,251,184,252,103,254,111,254,212,251,2,251,235,249,171,246,234,244,90,243,238,241, +63,240,39,239,16,238,101,237,114,237,43,237,140,238,211,237,117,238,124,240,67,240,94,240,121,238,249,237,89,237,94,236, +125,237,239,236,209,237,6,239,164,240,0,243,87,244,232,246,110,248,52,250,91,252,41,254,53,0,217,0,43,2,6,2, +215,1,61,3,28,3,24,4,192,3,99,2,154,2,216,1,8,2,74,2,204,1,193,1,90,1,34,1,197,0,36,0, +43,255,158,253,164,252,252,251,62,250,182,248,103,248,243,248,115,248,134,246,29,246,56,244,184,241,15,241,171,239,90,239, +78,239,161,239,165,240,136,241,153,243,147,244,175,244,103,244,159,243,180,243,197,242,245,241,169,243,92,244,85,244,254,244, +234,243,132,242,83,240,96,238,248,237,99,237,40,237,100,237,133,238,89,239,77,241,14,243,234,243,146,246,59,248,167,250, +162,251,114,251,223,252,69,252,131,252,137,252,172,252,208,254,148,255,140,0,78,2,159,4,70,8,87,11,224,13,112,17, +193,19,237,20,48,22,207,22,69,23,164,22,231,21,220,21,98,22,202,22,87,23,86,24,157,23,123,23,206,23,30,24, +29,24,193,22,50,23,171,22,160,20,143,19,70,17,71,14,122,12,241,10,15,9,17,8,204,6,28,5,113,3,244,0, +4,255,83,253,11,251,154,249,159,248,137,246,148,244,250,242,187,240,139,237,127,234,60,233,252,230,95,228,105,227,123,226, +19,226,117,224,108,223,54,224,189,222,173,222,188,223,111,223,118,224,145,223,90,221,205,218,235,214,10,211,106,206,44,204, +125,203,128,202,149,202,32,203,73,204,68,205,176,206,173,207,125,208,63,210,45,212,173,214,253,216,235,219,167,222,170,224, +121,226,67,228,207,229,35,230,246,230,208,230,251,229,224,230,255,232,35,235,119,237,108,241,224,245,24,251,194,255,202,3, +121,8,218,11,93,14,239,16,192,19,214,21,115,24,131,27,252,29,146,32,135,34,172,37,161,41,198,44,50,47,218,50, +171,54,129,57,171,60,193,61,156,63,94,64,240,62,92,63,161,63,70,64,223,63,238,62,212,62,120,63,171,63,158,62, +235,62,76,61,255,59,213,59,79,58,162,57,166,55,239,53,227,52,43,51,209,49,18,48,252,45,251,42,98,40,50,39, +106,37,220,35,1,35,167,33,178,33,250,33,178,33,111,33,90,32,247,31,49,30,10,28,167,26,145,24,175,22,238,19, +74,18,163,16,169,14,138,14,198,13,82,13,126,13,139,12,166,11,232,11,120,11,214,10,0,11,138,10,107,10,185,9, +210,8,73,8,65,6,106,4,177,3,4,2,253,254,138,253,10,253,143,250,220,247,43,246,243,244,67,244,11,243,220,241, +60,242,178,242,155,241,180,239,142,238,113,237,1,236,94,235,40,234,153,232,33,232,70,231,97,229,112,228,10,228,17,227, +157,226,96,226,172,226,167,227,61,228,44,228,169,228,31,230,10,230,166,228,90,228,90,228,105,227,73,227,97,227,95,227, +128,228,45,229,188,230,143,232,49,234,79,236,135,237,119,239,73,241,114,242,81,243,239,243,71,244,225,243,136,242,112,240, +45,241,164,241,167,240,231,240,35,240,208,239,114,239,15,239,170,238,154,237,74,238,49,237,162,234,81,235,232,235,26,236, +68,238,62,238,37,238,94,239,13,239,165,239,98,239,57,239,37,240,216,239,126,240,137,240,218,239,213,239,115,239,231,239, +204,240,47,241,70,241,95,241,1,243,217,243,72,243,130,244,214,244,73,245,107,246,96,246,73,247,49,247,119,247,68,247, +97,245,245,244,214,243,88,243,23,243,134,241,147,241,179,241,137,240,98,240,127,240,227,238,184,238,252,239,19,240,254,239, +84,240,181,241,176,242,39,243,47,244,68,244,14,244,23,244,59,244,81,244,238,243,73,244,7,244,187,242,124,242,129,241, +185,239,148,239,153,239,14,239,249,239,147,241,149,242,71,243,229,243,96,245,237,245,234,244,211,243,45,243,138,243,88,243, +66,243,145,243,238,243,220,243,36,242,168,241,84,241,158,241,31,243,32,243,179,244,210,246,132,247,225,247,194,247,106,248, +175,248,47,247,134,246,184,246,10,246,113,247,151,249,217,250,141,254,241,2,210,5,92,8,117,11,214,13,104,15,106,16, +87,17,62,19,196,19,132,21,42,23,116,22,30,23,181,21,125,20,166,19,30,16,44,15,14,14,243,12,250,12,129,10, +217,9,198,9,115,8,89,8,202,7,160,7,117,7,7,7,235,6,164,5,83,4,142,2,202,0,22,255,233,252,199,251, +4,250,21,250,228,251,171,251,187,251,182,251,158,251,51,252,148,253,126,0,95,2,108,4,170,7,226,9,176,11,194,13, +109,15,93,17,122,19,170,20,4,22,164,22,48,24,240,26,130,27,100,29,72,31,52,32,229,34,1,37,226,38,249,39, +199,40,72,42,191,42,230,42,199,43,66,45,111,46,193,47,143,48,1,49,23,49,190,47,122,47,127,47,228,47,173,49, +110,49,183,47,191,46,31,45,182,42,4,41,147,39,209,37,172,36,171,35,11,33,32,31,177,29,94,26,91,24,215,22, +107,21,146,20,91,18,151,15,54,13,5,12,53,9,218,5,173,3,153,0,210,253,133,250,156,247,24,245,254,241,23,239, +241,236,109,235,82,233,91,232,40,230,203,227,231,226,17,224,52,222,174,220,135,218,225,216,46,215,2,214,178,212,174,211, +149,210,132,210,137,210,3,209,246,209,74,211,113,210,251,210,146,211,225,210,245,210,117,211,45,211,216,209,236,207,162,205, +179,204,55,203,41,200,253,199,196,199,163,198,110,198,14,199,156,201,192,203,187,206,145,209,170,211,90,214,249,215,49,218, +158,219,244,219,243,219,8,219,160,218,75,218,196,218,172,220,128,221,205,221,188,224,157,226,161,226,110,227,38,228,76,229, +190,229,221,230,62,231,34,231,112,233,182,233,228,233,71,235,102,235,79,235,221,235,208,237,6,239,24,240,74,243,138,246, +190,248,234,249,14,250,168,250,213,250,232,251,71,254,103,254,193,254,97,255,82,255,190,254,153,254,89,0,177,0,252,1, +254,2,102,3,79,5,255,4,15,5,90,5,128,5,65,6,37,7,2,9,66,10,65,12,224,13,46,14,90,14,16,14, +47,14,26,15,193,14,92,14,44,16,240,15,239,15,11,16,129,14,23,15,181,13,223,11,222,11,113,11,79,11,208,11, +189,12,154,13,230,15,203,17,236,18,202,20,229,21,93,21,69,20,218,17,12,13,48,10,210,6,131,3,44,3,117,2, +26,3,14,4,143,5,54,7,83,8,78,9,230,9,40,12,51,12,239,12,42,15,183,15,45,17,48,19,73,22,250,23, +20,25,7,27,169,28,236,29,12,30,93,32,11,35,210,36,234,38,126,40,46,42,149,43,164,45,53,47,73,47,193,47, +10,49,11,50,128,51,161,52,84,52,105,52,238,51,94,52,227,52,186,51,129,50,83,49,63,48,136,44,137,41,197,40, +250,37,212,35,133,35,13,34,131,31,13,31,147,30,101,29,242,28,234,26,147,24,253,21,187,18,101,16,135,13,231,8, +169,5,146,1,17,251,66,247,11,243,124,238,112,234,228,229,107,227,48,224,60,222,55,221,188,218,89,216,106,213,246,211, +214,210,242,209,191,210,125,210,239,210,225,212,202,212,120,212,90,212,195,211,23,212,168,211,74,212,160,212,188,213,187,216, +231,216,33,219,49,222,32,225,128,230,159,234,173,238,42,241,196,242,251,244,217,246,189,248,224,249,157,251,71,252,125,252, +133,254,182,0,1,2,14,4,139,7,101,8,68,8,75,9,17,9,252,8,46,9,3,9,206,8,58,9,65,11,163,12, +116,14,249,16,24,17,164,17,191,18,46,19,64,19,170,18,207,17,109,16,114,15,240,11,119,10,7,11,66,8,104,8, +201,8,236,9,89,10,71,8,227,8,186,7,76,8,39,8,85,6,132,6,161,5,125,5,79,2,122,0,14,255,36,251, +240,250,57,249,75,247,206,246,4,246,163,245,231,244,220,244,254,244,204,244,204,242,158,241,115,241,131,239,196,237,61,236, +242,233,223,230,209,228,123,227,123,225,154,223,220,221,164,219,99,218,196,217,213,215,121,215,73,215,105,214,38,214,82,213, +100,213,204,213,96,214,227,213,179,212,124,211,71,209,37,207,64,203,61,200,184,199,43,198,230,196,8,198,86,198,231,197, +45,198,233,196,43,197,128,196,169,194,138,194,55,194,234,194,123,194,136,195,244,196,197,197,255,199,204,200,114,203,191,204, +145,205,183,207,225,208,79,211,108,213,78,216,227,217,161,220,7,225,164,227,39,232,210,234,31,237,83,240,66,241,33,242, +56,242,0,242,96,242,52,242,135,242,46,244,23,245,157,246,33,248,121,249,15,253,249,254,117,0,208,2,16,4,223,4, +255,6,106,9,40,9,226,9,8,11,20,11,77,11,166,11,22,13,243,13,146,15,48,17,104,18,94,20,96,20,43,20, +62,20,198,18,36,17,61,17,49,17,76,17,208,18,249,18,201,19,57,21,243,21,163,22,64,22,218,21,206,20,87,19, +169,19,57,20,75,19,223,17,108,17,201,17,78,17,134,17,127,17,230,15,235,15,11,16,241,15,193,15,75,15,62,15, +238,14,127,15,44,15,180,15,232,16,29,16,70,15,48,14,114,14,209,13,142,12,189,12,155,11,64,11,167,11,242,11, +14,12,72,13,42,15,179,15,26,16,216,16,239,18,244,19,88,20,249,19,159,19,16,21,188,20,120,21,190,21,236,20, +230,21,61,21,135,20,181,20,201,20,77,21,242,21,136,22,71,22,113,22,61,22,72,21,38,21,232,19,97,18,115,16, +12,13,122,11,133,9,172,7,19,8,65,7,186,7,155,7,28,6,30,6,194,6,183,8,160,8,198,8,247,9,39,9, +187,9,191,11,186,11,31,12,61,14,67,14,213,15,232,17,24,19,68,21,62,22,180,24,25,26,203,27,72,31,172,31, +111,32,240,33,174,35,42,38,179,40,201,42,149,43,228,45,242,46,176,45,215,44,56,45,193,44,145,42,91,42,111,42, +26,42,119,41,177,40,20,39,53,37,37,37,3,36,198,34,81,33,190,31,17,30,155,26,105,23,203,20,72,19,98,16, +124,11,169,8,199,6,125,4,220,1,49,255,179,251,166,248,63,246,193,242,6,240,2,237,66,235,252,233,70,232,54,231, +84,229,1,228,210,225,133,223,36,222,74,220,201,218,29,218,162,216,219,215,132,216,238,215,62,216,61,218,198,218,246,217, +12,219,242,218,85,217,83,217,220,216,2,217,70,217,209,217,193,218,54,219,189,220,92,221,190,222,102,223,179,222,159,223, +189,221,32,220,74,219,192,217,145,217,59,217,195,217,78,218,230,218,17,219,152,219,198,219,176,218,8,220,46,222,144,223, +229,225,240,227,189,228,135,229,214,230,218,231,53,232,128,232,30,232,192,232,186,231,186,228,186,226,177,222,242,218,106,215, +40,211,72,208,27,206,171,205,129,205,73,205,71,207,86,208,214,209,5,212,136,212,20,214,126,214,133,214,76,215,96,216, +89,218,16,219,122,220,30,223,141,224,209,226,209,228,159,229,30,231,104,231,85,231,200,231,190,232,35,233,198,235,153,239, +109,240,90,243,155,245,192,246,221,248,87,249,79,251,201,252,165,253,90,255,145,0,43,3,248,2,227,2,177,3,208,1, +60,2,11,2,66,1,197,1,4,2,43,2,33,2,127,2,155,2,58,1,74,1,209,1,131,0,128,0,83,254,172,252, +58,252,134,251,108,251,100,250,133,252,45,253,3,253,214,254,123,254,38,0,66,2,224,1,68,3,197,4,214,5,194,7, +48,9,199,9,22,10,172,10,252,11,219,12,17,12,37,12,221,11,105,11,241,11,24,12,109,11,253,10,19,11,59,10, +144,10,106,10,245,8,77,9,129,9,255,8,83,10,188,10,68,10,54,10,26,10,243,8,174,6,226,5,158,4,75,4, +102,4,60,4,163,4,164,4,241,4,197,4,130,2,114,0,250,0,231,0,92,1,199,2,207,4,21,5,129,3,63,3, +30,2,143,0,106,0,55,0,233,255,247,1,76,2,8,2,197,2,180,2,148,2,76,0,190,255,196,255,63,255,192,0, +80,0,148,0,129,0,230,255,83,1,52,1,208,1,40,0,161,254,134,254,165,252,17,252,0,251,215,250,153,250,39,250, +53,251,177,250,172,248,117,248,213,247,138,247,17,249,86,250,129,251,214,251,113,253,169,253,93,253,27,254,235,253,152,252, +168,250,199,250,110,251,58,250,128,249,85,250,237,249,12,251,184,252,216,254,87,1,113,2,168,4,83,6,168,7,30,9, +190,11,247,13,140,14,174,15,127,14,218,12,253,12,36,11,134,10,156,10,225,8,123,9,45,11,77,11,45,12,223,13, +244,14,92,16,28,17,154,18,45,20,168,21,114,22,53,23,132,24,70,24,46,24,37,24,1,25,29,24,47,23,124,22, +246,21,158,21,154,20,160,20,131,19,82,20,112,20,42,21,246,21,229,21,56,24,61,24,29,24,65,25,246,26,92,28, +204,27,205,27,169,26,23,25,121,23,224,18,178,15,220,11,34,7,206,3,194,0,231,254,6,253,86,251,137,249,6,249, +195,247,225,245,176,245,151,245,195,244,5,244,150,243,91,242,64,242,76,242,102,240,54,240,17,241,163,240,213,241,42,243, +27,244,206,243,178,244,234,244,103,243,58,244,216,242,223,241,25,242,85,243,8,245,94,246,24,247,34,246,50,245,237,243, +160,243,203,243,120,244,41,245,198,245,105,245,122,245,126,246,83,246,10,247,35,249,156,249,71,249,1,250,216,249,146,250, +144,250,116,249,12,249,147,248,29,248,6,248,255,248,195,250,14,251,188,250,187,250,205,248,144,247,101,247,205,246,191,244, +189,243,29,244,97,245,44,247,66,248,133,251,148,253,44,254,88,254,77,253,16,252,167,249,160,247,36,247,129,245,140,244, +176,242,13,240,170,238,201,235,107,233,52,230,192,228,203,228,182,228,43,229,68,230,240,231,220,232,219,233,73,233,151,233, +201,233,237,233,178,233,84,233,20,234,52,233,86,231,12,231,107,232,247,231,95,232,220,233,212,234,183,237,213,240,234,243, +23,247,61,248,132,250,53,252,2,254,104,0,154,0,127,1,176,0,175,0,74,0,78,0,25,2,238,1,143,2,252,1, +83,1,140,1,217,0,241,1,73,3,12,5,34,7,188,7,135,9,192,9,78,10,236,10,1,10,90,8,5,7,222,6, +121,4,205,3,129,1,215,255,202,255,77,253,63,253,127,254,81,254,13,254,63,253,133,250,168,249,124,248,8,247,219,246, +73,247,57,247,1,247,145,247,252,246,103,246,144,244,32,243,3,241,121,239,42,240,87,238,199,236,173,237,8,238,73,238, +57,239,242,238,118,238,185,239,124,239,216,239,235,241,36,242,182,244,251,246,58,249,34,252,47,254,216,0,156,2,178,2, +177,1,181,1,100,255,133,254,227,253,68,251,79,249,126,246,196,243,150,241,81,239,114,235,159,233,170,232,231,231,3,232, +98,231,9,232,221,232,29,233,21,235,53,235,130,234,186,235,203,235,39,236,34,235,30,235,86,236,91,238,41,240,83,241, +235,243,80,245,184,247,27,248,222,247,85,248,236,247,242,248,100,248,25,248,105,248,153,247,238,248,10,250,63,252,77,255, +253,255,3,1,61,2,202,3,241,4,70,6,245,6,106,8,68,9,122,9,73,10,169,10,238,12,116,13,76,13,63,12, +51,12,118,12,126,12,164,14,116,16,97,19,140,22,206,24,103,25,19,26,180,26,69,26,217,24,155,24,128,24,105,21, +140,18,47,16,133,13,176,10,76,7,247,5,173,5,90,3,113,2,13,2,206,2,64,4,117,5,6,7,28,8,10,11, +127,13,50,15,221,16,76,18,242,18,5,20,76,20,68,19,144,18,33,18,61,18,232,17,32,18,232,17,13,17,1,17, +229,17,17,18,215,18,37,19,118,19,95,19,106,18,25,18,132,15,46,14,10,12,142,9,122,8,76,6,199,4,9,3, +172,1,113,0,236,253,61,252,91,249,155,246,148,245,144,243,84,243,205,242,101,243,113,243,187,242,34,243,20,242,245,241, +80,241,139,240,21,240,68,240,203,239,239,238,226,238,112,240,208,241,150,241,32,242,137,242,236,242,64,243,18,245,138,246, +230,247,18,249,10,250,60,251,128,252,129,254,85,255,178,1,159,2,229,2,28,5,248,5,81,8,118,9,254,8,154,10, +46,10,76,10,207,10,44,11,61,12,151,12,23,13,102,13,92,15,116,15,84,15,132,14,101,14,231,15,161,15,31,16, +255,15,77,16,89,16,64,16,51,16,137,16,159,16,7,15,67,13,139,12,133,10,222,7,143,6,19,4,40,3,174,2, +202,1,249,0,106,1,65,1,126,0,127,0,136,255,152,255,155,254,111,254,177,253,219,251,112,251,202,249,93,247,247,246, +183,246,36,246,211,247,222,247,93,247,228,247,31,247,111,247,84,247,3,247,146,247,245,247,147,249,187,250,10,254,65,0, +133,1,43,3,177,2,12,3,91,2,201,2,46,2,80,2,76,3,10,3,3,4,53,5,114,4,149,3,68,3,105,254, +29,250,96,244,184,239,76,236,60,233,53,232,34,229,175,227,43,225,162,225,184,225,12,225,71,227,83,227,28,228,249,227, +55,228,160,229,115,230,244,230,159,231,231,232,156,233,28,236,248,237,115,241,21,245,72,245,205,248,82,250,152,251,186,253, +235,253,126,254,76,254,38,255,228,255,215,0,183,1,35,3,24,4,162,6,177,7,189,7,61,10,45,10,88,10,128,10, +79,11,88,11,206,11,97,13,191,13,120,13,199,12,101,11,31,10,119,9,4,7,185,6,124,5,154,4,223,4,203,4, +153,5,99,5,11,7,18,7,153,6,48,7,209,6,236,5,132,3,77,0,74,252,150,248,152,245,144,241,14,238,10,236, +23,234,61,232,48,231,172,229,131,229,209,229,142,229,175,230,7,231,102,233,57,234,6,235,22,237,165,237,234,238,198,239, +83,241,246,241,5,244,251,243,144,243,112,244,76,243,77,243,211,242,90,241,135,240,188,240,178,240,10,241,195,240,244,242, +216,243,229,243,79,245,200,244,133,245,84,244,110,244,35,244,192,242,74,242,169,240,103,240,171,239,164,239,8,240,0,240, +177,240,30,240,255,238,64,238,23,238,148,237,82,237,191,237,49,238,42,240,133,241,232,243,115,246,136,249,173,252,136,254, +184,0,248,0,253,0,232,0,201,2,141,2,74,2,225,2,152,1,47,1,218,0,128,2,137,2,111,2,60,0,149,254, +29,253,82,249,250,248,170,247,37,246,6,246,155,246,145,246,181,246,183,246,164,244,162,243,42,242,79,239,101,236,128,233, +233,231,236,228,76,226,65,226,60,226,4,227,25,227,163,226,182,226,190,227,251,228,195,229,39,229,28,229,221,229,186,228, +81,227,245,226,154,226,191,225,188,227,110,227,151,227,161,228,174,228,129,231,12,232,4,234,149,236,132,237,140,240,195,243, +106,244,182,246,248,248,4,250,58,253,90,254,136,254,237,254,24,255,147,255,90,255,209,254,167,254,148,254,11,255,45,254, +223,254,9,1,30,2,45,5,103,7,229,9,72,13,186,16,217,19,186,22,143,25,168,26,92,27,74,29,70,31,50,32, +74,33,164,33,176,33,3,35,117,36,83,36,228,36,128,36,222,34,250,33,103,32,125,29,97,27,177,26,16,25,100,25, +44,25,63,25,45,26,31,26,216,25,229,25,133,25,177,23,50,23,61,20,3,19,14,19,19,17,188,16,212,14,149,13, +180,13,241,13,164,16,87,17,128,17,234,19,146,20,158,20,41,20,0,20,42,20,45,20,90,19,244,18,12,19,121,18, +142,16,218,13,78,14,161,13,97,13,72,14,177,14,36,14,229,11,181,8,103,4,234,255,117,249,0,243,244,238,4,237, +60,234,205,233,129,233,181,232,253,233,147,233,5,234,68,233,108,232,166,231,246,229,233,228,241,228,141,229,172,228,232,229, +142,231,114,233,211,236,225,238,68,242,0,244,212,244,50,247,94,248,147,249,2,251,249,253,136,255,128,1,61,4,137,6, +144,8,232,9,44,13,233,14,135,17,184,19,59,21,217,22,55,23,76,23,3,22,0,20,34,18,224,16,47,15,208,14, +211,14,129,15,189,15,103,16,107,16,193,14,137,14,22,13,200,11,223,10,182,9,190,8,182,7,219,5,161,5,92,4, +30,1,18,255,45,252,27,250,188,247,142,246,77,246,178,244,155,243,144,243,210,242,116,241,64,241,131,239,100,237,191,237, +131,237,136,237,132,238,121,238,212,239,17,240,163,238,73,238,62,237,138,236,140,235,178,233,22,234,48,233,85,233,220,233, +154,232,72,233,40,231,25,231,227,230,97,230,41,232,30,232,146,232,245,231,202,231,60,232,247,233,93,234,147,234,80,234, +52,232,198,232,208,232,186,232,85,233,77,233,250,232,200,233,28,234,78,234,170,236,43,238,227,238,1,240,106,240,227,241, +178,243,237,244,248,245,55,246,151,247,163,248,63,249,227,249,17,251,218,251,112,250,242,249,69,251,142,251,70,252,26,254, +153,255,11,1,250,0,217,1,158,1,148,1,58,0,166,253,16,254,60,253,74,254,204,254,96,253,118,252,167,251,76,249, +164,247,152,247,93,245,87,245,41,245,34,245,159,246,71,246,198,246,209,246,28,246,15,246,120,245,100,245,128,245,209,244, +157,243,114,244,251,245,225,246,244,248,189,249,119,250,188,251,138,252,220,252,146,253,130,254,93,255,119,0,239,0,142,0, +253,254,39,254,70,253,173,251,72,250,131,249,91,248,195,247,202,247,136,247,116,247,16,248,153,248,175,248,167,250,222,250, +58,251,214,251,168,252,101,253,20,253,2,254,161,253,239,253,151,252,24,252,29,252,32,250,95,249,80,249,219,249,252,250, +173,253,18,0,198,2,80,5,247,7,116,11,100,14,127,17,160,20,51,23,48,25,218,26,14,27,34,27,185,25,193,22, +158,19,135,14,120,10,120,7,186,4,92,3,240,2,231,3,229,5,78,8,217,9,26,12,249,12,241,12,63,12,168,9, +224,8,211,6,207,5,43,4,204,2,151,3,51,3,192,3,121,3,179,4,38,6,211,7,144,10,56,13,254,14,217,14, +238,15,36,16,63,16,7,18,56,18,143,18,57,20,244,20,85,21,66,21,113,22,133,21,143,20,26,21,231,19,145,20, +120,19,120,19,38,20,191,19,88,20,214,19,15,20,217,19,184,18,133,17,82,16,253,13,106,13,156,12,96,10,85,9, +251,5,142,4,88,3,161,1,167,0,192,252,74,251,251,248,90,245,117,243,186,241,129,241,214,239,65,237,174,234,104,233, +58,232,206,231,176,232,198,231,29,231,95,228,7,226,196,224,88,221,233,219,136,220,137,220,153,220,214,220,95,221,174,221, +43,221,209,221,190,222,96,223,77,225,245,226,134,227,189,228,94,228,91,227,12,227,107,226,195,226,10,227,9,228,235,229, +216,231,72,233,201,234,56,236,110,237,196,238,0,239,128,239,95,241,246,241,11,242,126,243,71,243,119,243,175,244,37,246, +223,246,237,246,57,247,162,247,206,249,247,250,201,252,230,253,169,254,139,255,183,255,138,1,104,2,248,3,77,4,87,5, +179,6,116,6,85,8,216,8,100,9,182,9,171,9,207,9,59,8,66,8,155,7,214,5,118,6,133,6,41,6,116,7, +45,7,137,7,179,7,196,6,205,7,139,6,68,6,166,6,74,5,71,4,5,3,95,2,221,1,197,1,159,0,34,0, +221,254,43,254,134,254,205,252,229,252,14,253,87,253,123,253,26,254,54,255,10,255,135,255,119,255,171,255,4,255,127,253, +3,253,221,251,24,250,150,248,67,248,27,248,130,248,89,250,193,251,122,253,233,253,135,254,13,254,141,251,18,250,245,247, +108,249,25,250,118,250,30,253,131,253,115,255,236,0,11,2,60,3,87,4,120,5,169,5,171,6,53,8,45,9,34,9, +26,11,90,12,108,14,50,17,26,18,231,20,168,21,27,22,16,23,176,22,192,21,3,21,81,21,47,21,36,22,112,21, +166,20,57,20,218,18,41,18,222,17,50,18,106,16,12,16,12,16,224,14,94,14,156,12,66,11,187,9,92,8,214,7, +197,6,99,5,144,4,115,3,44,3,145,3,57,2,36,1,226,0,30,1,159,1,79,1,180,1,206,1,36,1,63,1, +228,255,209,255,222,255,210,253,192,253,194,253,167,253,182,253,143,253,208,253,25,254,128,254,213,254,183,254,203,254,74,254, +8,252,38,252,42,252,21,251,17,252,195,251,195,249,13,249,220,248,188,246,118,246,240,247,23,249,192,250,99,251,247,251, +168,252,206,251,24,250,174,248,216,245,50,243,163,239,58,236,129,235,99,233,204,232,238,231,40,231,216,231,232,230,146,231, +162,231,84,232,46,234,134,234,63,235,217,234,175,234,107,236,229,236,175,237,47,238,200,237,165,237,227,235,12,236,189,235, +60,235,250,234,54,233,88,233,139,232,124,232,57,232,231,231,62,232,43,232,239,233,15,235,30,237,37,239,176,239,240,240, +107,242,90,242,53,242,67,241,86,239,114,239,110,237,244,235,196,235,101,234,5,233,205,230,188,230,103,229,35,227,227,226, +87,226,106,226,70,226,172,226,184,226,242,225,144,225,249,223,138,222,87,219,213,214,106,211,221,207,255,203,185,200,76,201, +38,201,12,201,160,203,253,204,191,207,220,209,190,212,70,215,21,216,157,218,176,219,154,221,219,224,203,227,21,230,163,231, +96,233,78,235,37,238,96,241,94,244,174,246,190,247,41,248,167,250,70,251,14,252,214,255,252,0,29,4,196,7,131,9, +112,13,142,15,180,15,9,17,86,17,96,18,52,20,203,20,61,22,73,23,242,25,140,28,6,30,169,31,134,31,195,32, +171,33,92,34,128,35,89,35,253,34,220,34,146,35,90,35,170,34,155,35,175,37,223,38,190,38,3,39,141,40,202,40, +163,40,198,40,208,38,62,39,226,39,232,38,146,38,109,36,182,35,19,35,196,32,1,33,54,32,176,30,57,29,160,25, +85,24,177,21,129,18,33,16,169,11,160,9,104,8,139,7,17,6,199,4,72,3,232,255,142,253,40,250,61,248,7,247, +83,245,88,244,61,243,163,241,159,238,224,236,69,234,234,231,252,231,107,231,16,230,59,228,111,227,121,227,134,226,129,225, +239,224,146,224,39,224,215,222,141,222,236,222,37,223,128,225,21,228,89,229,37,231,34,232,194,231,97,232,103,232,188,232, +69,234,96,235,160,237,116,240,161,242,107,245,245,247,58,249,77,251,147,251,128,251,148,252,74,253,206,255,217,1,250,4, +234,7,61,9,251,10,253,12,72,14,94,14,47,15,157,14,51,16,86,18,66,19,124,21,178,22,163,24,229,24,221,24, +3,25,162,24,187,24,176,23,95,24,56,26,32,27,172,27,131,29,131,30,122,30,241,30,110,30,31,30,241,29,15,29, +161,27,46,27,141,27,56,26,61,24,59,24,224,23,202,22,26,22,93,20,153,19,162,18,39,17,165,16,108,16,244,15, +41,15,137,14,54,13,129,12,198,11,91,10,236,8,93,7,17,7,232,6,12,6,247,5,91,6,80,6,83,5,169,3, +70,3,124,3,139,3,27,3,183,2,19,2,48,0,163,255,139,255,190,255,176,255,81,255,187,255,74,255,168,254,105,253, +187,250,40,248,28,247,127,245,156,244,221,244,157,243,149,242,140,242,57,243,56,243,247,242,110,243,145,244,209,244,83,245, +89,245,35,243,243,242,246,240,18,238,213,235,20,233,224,231,165,229,52,229,6,229,213,227,203,228,114,229,3,230,81,231, +30,232,252,232,83,232,250,230,241,230,60,230,166,229,79,228,102,227,198,226,0,226,238,225,19,225,1,225,220,223,79,224, +243,224,253,224,204,226,215,226,23,227,225,226,50,227,199,226,194,226,190,228,254,228,190,230,118,232,50,234,126,235,229,235, +77,238,126,239,192,239,179,239,225,239,230,239,104,238,195,237,253,236,17,237,178,238,97,239,87,240,62,242,54,244,38,246, +125,249,5,253,72,255,222,0,10,2,242,2,64,3,86,3,163,1,83,1,192,0,174,254,116,255,132,255,235,255,138,0, +153,1,233,1,70,1,117,0,114,253,231,252,155,250,186,248,120,248,11,247,148,247,6,247,70,247,81,247,251,246,48,248, +186,249,188,249,4,249,108,249,97,248,145,247,126,247,190,247,239,246,26,246,214,246,130,247,252,247,202,248,242,250,115,252, +250,254,99,1,23,4,178,7,66,9,243,11,85,13,90,14,141,15,176,14,91,14,147,13,191,12,4,12,80,11,91,10, +242,8,129,8,27,7,201,5,79,5,196,4,35,6,82,7,207,8,196,11,121,13,25,14,9,15,233,15,197,14,46,14, +168,13,143,11,93,10,228,8,141,7,151,6,180,4,201,2,38,1,3,255,207,253,37,253,56,252,90,251,80,250,210,250, +115,250,7,249,28,249,100,249,231,248,178,248,27,248,108,247,172,247,20,246,246,244,93,244,236,242,99,241,86,240,76,240, +97,239,254,239,160,240,177,240,254,240,139,240,153,240,24,241,230,241,98,242,240,243,217,244,191,245,59,247,175,247,189,248, +249,248,130,248,105,248,130,248,26,248,161,247,152,247,3,248,194,247,109,247,125,247,125,246,211,247,60,249,105,249,37,250, +154,250,147,251,80,252,236,251,140,250,40,250,214,249,49,249,50,248,212,246,81,245,98,243,41,242,132,239,46,237,80,236, +117,235,182,234,10,235,89,235,130,234,148,234,6,234,120,234,24,235,125,234,213,234,215,234,45,235,95,235,117,235,104,236, +27,237,212,236,102,236,82,236,202,236,81,237,253,236,101,237,194,237,149,237,232,237,213,238,10,240,29,240,85,240,11,241, +184,240,17,240,52,240,183,240,75,240,66,240,120,239,95,237,225,236,64,236,246,236,164,237,80,237,213,238,222,238,96,239, +73,240,142,240,241,240,170,239,195,238,67,238,192,236,123,235,63,235,103,234,60,234,85,234,175,234,167,235,6,236,60,237, +29,238,32,240,136,241,223,242,54,245,203,246,102,249,40,250,116,250,98,251,224,252,178,254,242,255,86,2,214,4,88,6, +17,7,14,9,28,10,251,9,166,9,30,8,82,7,156,7,160,7,150,7,40,10,79,12,180,13,167,15,201,16,60,18, +216,19,173,21,183,22,9,24,191,24,206,25,93,28,26,30,110,32,21,34,153,36,185,39,145,40,214,41,137,43,170,44, +198,45,158,46,223,47,112,49,12,50,88,51,194,53,54,54,18,54,111,55,3,56,81,56,245,56,176,57,138,58,231,58, +58,59,96,59,143,59,241,57,138,55,68,53,170,51,245,50,46,49,163,48,79,46,226,43,108,42,40,40,102,39,254,36, +45,35,202,32,238,29,150,27,135,24,34,23,224,18,204,14,198,12,142,10,66,8,140,5,163,4,155,1,180,254,52,252, +199,247,75,245,33,242,129,240,186,239,57,237,250,236,71,237,243,235,38,235,121,235,139,233,73,232,79,231,49,229,245,228, +176,227,249,227,168,228,58,228,120,228,26,228,86,228,112,229,11,231,76,231,229,232,251,233,164,233,236,234,214,234,136,234, +97,234,222,233,137,233,211,233,224,233,140,235,38,237,167,237,248,239,119,239,184,239,116,239,93,238,172,238,80,237,157,237, +156,236,166,235,114,235,200,235,65,236,147,236,174,238,51,239,253,241,76,244,245,244,23,245,13,244,48,244,134,243,66,245, +181,245,180,245,162,247,48,248,206,248,232,247,236,247,171,247,10,247,148,246,162,246,185,248,129,248,59,249,53,250,148,251, +109,252,76,250,65,250,44,248,206,246,161,246,163,244,172,243,168,241,189,239,232,237,48,238,36,238,157,238,222,241,48,243, +100,246,44,249,145,251,6,255,57,1,217,0,108,252,109,249,243,244,63,240,146,237,126,232,177,229,56,228,70,226,68,226, +103,226,176,226,205,226,26,227,252,228,149,229,38,229,237,227,182,226,65,227,76,226,212,225,136,225,30,225,15,226,190,226, +43,229,222,229,255,229,135,231,44,231,190,230,250,229,176,230,158,232,29,235,11,240,138,244,208,248,1,254,187,3,58,7, +190,8,176,10,50,12,220,14,75,16,0,17,159,17,111,17,50,19,81,19,43,19,173,19,141,18,54,18,22,18,236,15, +63,13,124,12,174,10,223,9,167,10,156,8,8,7,139,5,179,1,249,253,89,250,9,246,19,242,80,239,17,237,55,234, +169,232,241,231,2,232,24,233,41,233,157,234,6,235,122,235,4,238,69,239,254,240,226,242,84,246,147,250,200,253,25,1, +85,4,167,7,169,10,182,13,80,16,76,20,13,23,71,24,148,27,255,28,100,30,33,32,63,33,35,36,4,37,111,38, +133,41,57,41,46,42,175,43,219,43,79,45,47,45,206,45,31,46,116,46,62,46,43,43,241,40,137,36,79,32,116,27, +94,22,61,19,131,14,71,12,21,10,70,8,135,6,56,6,21,7,129,4,138,5,83,5,92,6,126,8,225,5,93,6, +255,5,73,5,215,3,153,1,51,1,74,254,250,250,163,247,95,245,153,243,222,241,60,240,163,237,166,235,32,234,205,233, +119,233,218,233,215,234,184,236,101,238,67,239,124,242,132,244,71,245,60,246,100,247,226,247,73,248,219,248,102,248,211,248, +70,247,230,246,108,246,236,243,91,243,87,242,141,242,209,241,170,241,243,242,72,242,143,242,89,242,181,242,224,242,61,241, +22,241,77,241,239,240,209,240,88,240,32,240,60,240,194,239,188,239,44,240,42,240,34,239,136,239,26,241,250,239,67,239, +199,239,127,238,39,237,2,237,63,237,200,237,5,237,249,236,145,238,174,237,71,237,29,237,132,236,56,237,237,236,3,238, +219,238,224,239,59,242,65,242,31,243,151,244,62,245,112,247,160,249,161,251,161,254,98,0,142,1,51,3,65,3,17,4, +118,4,89,1,213,253,99,249,130,243,97,238,101,234,87,232,36,231,167,230,154,230,61,231,189,233,35,234,97,235,153,238, +184,239,98,242,77,244,126,245,138,248,80,250,233,251,141,253,96,254,89,255,168,0,234,0,211,1,0,4,208,5,34,8, +82,10,47,14,106,17,121,20,255,25,32,29,37,32,81,35,145,36,26,36,207,33,106,32,74,29,95,24,249,20,115,19, +32,19,175,18,22,19,39,20,234,21,55,23,232,22,188,24,64,27,134,28,195,29,42,30,65,31,61,32,173,33,17,35, +36,34,89,34,238,33,118,32,244,31,162,31,133,31,35,30,252,29,154,29,161,27,61,27,117,26,195,26,228,26,225,24, +149,24,36,24,85,23,31,22,2,20,39,19,41,16,33,13,177,11,61,9,191,6,132,2,88,254,30,251,243,247,174,244, +140,241,8,241,18,240,26,239,9,240,129,239,123,236,72,234,81,233,145,230,70,228,30,226,17,225,220,225,247,225,24,227, +176,227,82,228,15,229,241,228,4,229,55,228,142,228,226,228,23,229,106,230,14,230,96,229,40,229,226,228,245,228,182,228, +250,228,195,228,191,228,215,228,111,226,181,224,78,224,32,225,237,226,47,228,234,230,205,233,182,235,41,236,28,236,200,235, +70,236,6,238,81,238,147,240,119,241,134,242,153,245,223,245,22,248,155,248,212,247,54,248,28,247,11,247,26,246,113,246, +93,248,90,249,249,251,102,0,69,3,144,4,25,7,199,9,221,11,84,13,184,14,210,15,196,16,132,16,27,13,106,9, +47,5,161,255,20,250,31,247,38,246,5,244,181,243,156,244,139,244,82,245,22,247,76,247,191,246,10,247,18,246,238,245, +220,247,254,248,69,250,172,253,84,0,208,2,84,6,39,7,237,7,9,10,86,10,243,9,51,10,216,9,139,9,55,9, +190,7,194,7,174,7,47,7,73,8,127,8,178,8,11,10,12,11,98,12,21,14,27,13,145,11,43,11,39,9,65,6, +126,2,235,253,136,248,135,243,77,240,82,237,9,235,38,233,15,230,153,227,58,226,241,222,226,220,230,219,144,218,99,219, +110,219,225,219,114,220,60,220,175,220,75,221,54,222,248,221,7,222,180,221,115,221,238,221,46,222,75,223,81,224,148,225, +38,227,204,229,106,231,233,231,50,233,46,233,120,233,89,235,79,237,148,238,118,241,241,243,2,245,128,247,193,249,206,251, +204,252,81,253,9,254,99,255,83,0,248,255,50,1,73,1,95,2,127,3,185,2,162,2,21,1,70,0,90,254,121,252, +53,252,179,251,210,252,161,252,96,252,179,251,72,248,218,243,87,238,35,232,156,226,110,222,239,218,232,215,194,213,138,213, +63,213,101,213,62,214,212,214,151,216,133,216,53,217,183,218,1,220,79,222,168,222,204,223,133,224,137,225,67,228,138,229, +234,230,199,231,122,233,251,235,141,238,178,241,133,243,62,246,86,248,238,250,221,255,54,3,42,7,125,10,168,11,104,14, +125,18,220,20,162,22,227,25,241,27,159,30,161,34,95,38,130,42,158,45,178,48,135,50,41,51,220,52,195,53,138,53, +101,53,177,54,174,55,65,55,110,55,124,55,129,56,246,56,186,54,59,52,112,48,194,42,204,36,139,30,90,24,148,18, +191,13,241,10,13,8,185,5,100,4,202,1,154,1,212,1,192,255,11,254,16,252,177,249,61,248,135,248,27,249,128,249, +19,250,36,250,15,250,167,250,27,251,153,251,158,252,213,252,131,253,245,253,62,255,213,2,103,5,18,8,221,10,124,12, +42,15,150,17,34,19,105,20,180,20,233,21,145,23,70,24,106,25,27,28,14,31,110,33,183,35,209,38,138,42,247,44, +42,48,23,51,222,53,91,56,25,57,185,59,178,59,250,58,47,59,43,55,126,51,37,46,82,38,150,32,20,27,112,21, +130,16,1,12,93,8,132,6,52,5,105,3,155,2,142,2,253,1,76,1,15,1,136,255,200,253,26,252,171,250,244,250, +161,249,115,247,226,245,187,243,150,240,24,240,52,241,194,240,14,243,162,245,28,249,26,252,202,253,240,0,54,2,83,3, +220,4,100,6,16,6,238,6,122,8,87,7,52,8,133,9,11,12,75,15,8,17,109,18,87,20,175,20,127,19,145,19, +159,17,139,16,249,15,87,14,35,14,215,12,112,11,134,10,125,9,212,6,105,5,7,4,9,0,171,254,120,252,185,250, +167,248,165,245,189,245,120,244,61,244,167,243,183,242,20,242,6,240,67,238,42,236,19,235,208,232,255,231,100,230,216,227, +128,227,249,224,112,222,49,220,8,218,193,216,104,216,243,214,104,214,88,214,38,212,181,211,253,210,51,211,24,210,79,208, +117,208,72,208,147,210,37,211,1,211,162,212,206,212,108,213,168,213,83,212,76,212,79,212,151,210,238,209,21,209,214,208, +206,209,152,209,174,211,154,212,178,212,60,215,217,215,18,218,230,219,154,219,22,220,75,220,218,220,53,220,213,219,219,219, +148,219,7,220,9,219,139,216,21,215,106,214,213,213,252,212,5,213,5,215,196,215,30,217,111,219,57,222,8,224,175,224, +124,226,49,227,92,229,123,229,207,228,84,229,237,226,108,226,53,226,96,224,194,223,242,223,148,223,48,223,105,223,63,223, +151,223,70,225,84,227,31,229,75,230,32,232,147,234,213,235,238,236,253,235,157,232,102,229,154,225,23,221,42,218,188,215, +222,213,41,214,204,214,94,216,216,216,250,217,64,219,213,219,136,222,224,223,181,226,3,230,185,232,227,236,142,240,77,244, +131,247,246,250,147,254,7,1,149,3,200,6,168,9,28,12,167,14,167,18,37,22,130,23,56,26,147,29,29,32,119,34, +222,34,20,36,43,38,92,37,126,38,128,40,158,40,194,41,246,42,212,42,152,42,111,42,129,41,164,40,157,38,7,39, +132,39,162,39,177,41,142,41,172,42,61,42,86,40,241,36,140,31,37,27,151,21,167,15,233,9,124,7,177,5,113,3, +195,2,201,1,42,2,122,3,85,4,55,4,127,3,74,3,208,2,141,2,244,4,184,6,229,8,46,13,59,15,162,18, +119,23,204,26,140,31,58,36,190,39,234,43,32,47,203,49,194,52,145,55,124,58,175,60,153,61,137,63,99,65,60,65, +89,65,147,64,205,64,136,64,130,63,59,63,175,61,130,60,248,58,32,58,126,56,16,56,162,55,19,53,80,51,232,46, +191,42,16,38,206,31,154,26,12,20,115,14,45,10,155,5,45,3,250,0,16,0,3,0,85,254,224,254,24,254,208,252, +223,252,159,251,43,251,112,251,102,250,34,249,32,248,234,246,48,247,172,245,107,245,170,245,26,245,89,246,190,245,27,246, +202,245,150,245,4,246,185,246,231,247,174,247,248,248,158,248,75,248,224,247,55,246,13,246,155,245,240,245,16,246,193,246, +79,247,192,246,134,248,237,249,45,250,120,249,142,249,48,249,59,247,64,247,34,244,201,240,85,237,212,233,67,233,161,231, +156,231,105,231,69,231,125,231,70,232,239,232,94,233,214,234,35,235,157,237,18,239,70,239,255,239,79,240,105,240,242,239, +129,239,149,239,150,240,31,241,103,243,7,246,2,248,67,250,172,253,188,255,184,0,130,3,207,3,7,5,115,5,129,3, +110,3,98,3,14,3,154,2,29,2,209,1,65,1,132,255,243,252,51,250,133,247,220,245,44,244,98,240,159,237,185,235, +11,233,8,231,144,227,29,225,69,223,32,220,112,218,188,215,231,212,234,211,148,208,45,206,216,204,61,202,93,200,67,198, +172,196,127,193,101,191,149,188,225,184,117,182,81,178,5,177,11,176,47,175,24,175,148,176,231,179,5,182,94,186,243,191, +153,197,13,203,95,208,154,213,9,217,241,219,160,223,202,226,90,230,22,233,249,235,38,240,155,242,12,246,33,249,133,252, +27,0,51,3,120,5,165,6,228,9,89,11,21,13,98,15,125,17,255,19,185,21,212,24,104,26,206,27,47,31,240,31, +37,32,2,34,255,31,4,29,202,25,189,20,201,17,94,14,147,11,89,11,186,10,37,11,108,12,236,12,119,13,185,13, +209,14,241,14,39,15,201,15,226,15,248,15,242,14,202,16,76,17,31,17,28,19,147,19,252,19,214,20,64,21,135,20, +162,20,44,20,16,20,204,19,193,17,34,18,121,19,25,20,38,22,228,24,52,27,26,29,98,30,47,32,0,32,90,32, +178,32,157,30,158,30,155,30,7,29,87,28,18,28,1,25,88,23,7,21,202,16,198,13,175,8,138,5,112,2,17,255, +188,252,68,249,74,246,120,242,2,237,143,231,119,226,72,222,210,219,143,216,132,214,172,214,213,214,198,214,224,214,108,214, +203,213,20,213,38,211,249,210,104,210,198,209,15,210,87,210,192,211,80,212,147,212,79,213,242,214,99,215,211,215,213,218, +35,221,230,223,214,226,242,228,183,232,188,235,250,239,8,245,42,249,53,253,81,0,137,5,234,7,190,9,35,12,175,11, +222,12,58,14,252,14,196,16,75,19,10,20,40,23,241,26,227,30,242,35,5,39,91,43,233,45,163,48,128,49,221,49, +186,50,132,49,215,49,94,48,133,47,178,46,103,46,217,45,56,43,149,42,112,41,64,39,52,36,134,32,30,29,53,26, +3,23,113,19,25,18,161,15,95,11,196,8,108,5,211,1,158,253,68,250,58,248,149,245,110,244,214,241,32,240,145,238, +100,236,175,235,13,234,210,233,207,233,110,235,94,238,249,238,88,239,141,238,244,236,173,236,150,236,177,237,188,237,191,237, +83,238,216,238,172,241,16,242,191,243,194,244,35,245,69,247,143,247,106,249,252,249,205,252,214,254,17,255,149,0,208,255, +3,0,180,255,117,254,247,253,114,255,63,255,90,253,118,253,57,253,180,251,179,249,130,249,251,248,73,247,236,246,52,246, +50,245,162,243,83,240,244,238,181,236,235,233,206,233,81,233,241,233,1,235,205,236,195,237,12,237,120,237,231,236,38,235, +171,234,217,234,195,234,191,234,186,234,54,235,113,235,99,237,139,238,49,238,234,238,0,239,79,239,231,238,210,238,251,238, +109,238,83,238,67,238,117,237,224,237,210,238,153,239,108,241,199,241,249,242,118,244,113,245,145,244,194,242,236,243,89,244, +79,245,162,247,97,248,120,248,252,247,242,246,199,246,102,246,3,247,13,247,54,247,49,248,46,248,30,250,54,251,59,253, +244,253,252,253,30,255,37,255,36,1,27,1,117,2,54,4,124,4,177,5,124,5,199,6,42,8,21,8,128,9,247,10, +123,10,254,10,221,11,162,11,176,10,169,9,55,9,136,8,109,8,144,8,160,7,100,7,24,8,194,7,3,8,241,7, +132,7,49,7,53,8,214,10,60,12,127,13,197,14,66,16,236,15,243,15,73,17,87,17,153,17,143,17,163,16,180,14, +4,12,167,9,30,9,55,7,26,5,2,4,144,2,96,2,34,1,245,255,212,255,191,255,13,255,18,254,55,254,70,254, +173,252,94,251,139,250,186,249,153,248,5,247,244,245,200,243,250,243,36,244,186,244,183,246,254,247,95,250,153,250,34,251, +118,251,19,252,78,251,140,250,110,251,11,250,145,251,98,252,41,252,171,252,85,252,82,252,244,251,154,251,156,250,59,250, +149,250,91,250,89,250,36,252,45,253,31,255,254,2,18,4,94,6,251,8,151,8,252,8,100,8,149,7,48,7,210,5, +70,5,28,4,2,3,214,1,238,0,60,255,139,253,108,253,33,253,165,252,163,251,129,251,58,249,119,248,174,247,114,245, +214,245,30,244,232,242,134,242,230,242,131,242,101,242,191,241,90,239,245,238,151,237,175,236,243,233,194,231,119,231,168,229, +158,227,104,225,95,224,253,221,154,219,104,220,26,222,92,223,82,226,138,229,136,231,182,234,213,237,101,239,138,242,46,245, +176,245,16,248,174,249,126,252,235,255,253,1,18,5,79,6,7,8,152,9,186,9,146,11,20,13,190,14,28,17,65,19, +142,22,157,23,118,24,26,26,47,26,195,25,225,23,139,24,142,26,7,27,64,28,51,30,48,31,2,33,87,33,202,30, +177,30,62,29,243,25,214,23,196,23,0,23,3,21,250,19,220,18,200,18,2,17,87,15,93,13,50,9,213,6,228,5, +103,3,242,1,15,1,100,254,181,252,233,250,162,249,233,246,21,245,29,244,123,241,53,241,73,241,97,240,122,238,120,238, +126,237,96,235,136,235,232,233,77,233,241,234,111,235,122,235,245,235,40,236,243,235,243,235,24,236,167,235,212,236,217,236, +240,236,60,239,9,239,130,240,14,242,56,243,52,245,53,245,195,245,238,245,15,246,221,245,87,244,86,243,193,242,69,242, +60,241,234,240,226,241,174,241,243,241,237,241,165,242,118,244,159,244,44,245,33,245,225,245,124,247,219,248,242,248,56,249, +152,249,129,248,199,248,26,247,14,247,67,247,137,245,75,246,34,246,161,246,176,248,217,248,73,249,168,250,45,252,104,255, +174,0,132,2,38,4,65,4,241,6,90,7,101,6,38,7,71,9,28,11,173,12,33,14,77,15,223,15,64,15,165,14, +207,14,181,16,255,16,186,17,74,18,27,18,114,18,172,17,28,18,120,17,19,17,47,17,219,15,21,15,1,15,127,14, +146,14,142,14,75,14,75,15,7,15,87,15,39,15,75,12,11,9,19,5,1,0,252,250,237,247,80,246,35,245,201,245, +191,245,158,244,91,246,47,247,106,247,130,248,91,249,147,250,240,250,238,251,130,251,23,251,229,252,111,254,129,0,148,2, +1,4,255,5,9,8,200,9,21,11,162,13,119,16,101,18,203,21,213,23,119,25,10,27,217,28,7,29,67,28,119,30, +3,30,113,30,218,31,253,32,254,33,62,34,77,35,129,34,239,34,245,34,101,34,191,32,249,28,177,24,181,18,99,11, +143,3,174,252,103,245,186,238,11,235,64,233,200,230,173,229,105,228,2,226,42,224,165,221,45,221,89,219,74,218,138,218, +60,216,252,215,3,216,155,215,123,215,87,214,162,214,170,214,178,214,87,216,94,217,24,218,208,218,26,221,184,222,205,224, +87,228,225,230,40,235,86,238,74,241,36,244,117,247,213,250,236,251,128,255,161,1,119,2,248,5,21,8,74,9,202,10, +208,11,241,13,96,14,110,14,253,14,115,13,44,13,66,13,203,13,211,13,216,13,153,14,156,14,145,16,68,17,179,17, +92,19,46,19,148,18,205,16,156,14,8,12,130,8,63,6,65,3,58,1,146,255,24,254,216,253,44,252,89,252,147,252, +28,253,20,253,172,251,166,251,217,249,71,248,43,248,172,247,41,247,8,248,224,247,220,247,213,249,119,250,98,250,147,250, +129,250,113,250,71,251,86,251,175,252,5,254,6,255,177,1,43,2,46,2,88,3,233,3,47,4,90,6,230,5,51,4, +121,3,177,1,120,2,222,2,155,4,105,8,160,11,22,15,117,19,178,23,225,25,45,28,90,29,203,27,197,26,163,27, +173,26,189,25,179,25,211,25,159,25,74,23,225,22,63,21,154,19,88,18,214,14,20,14,2,12,149,9,7,9,15,7, +82,5,195,3,4,3,76,1,62,254,118,252,34,250,181,246,251,244,192,243,159,241,220,240,87,238,146,237,25,237,57,234, +59,233,51,229,250,227,194,226,39,223,148,222,56,220,89,220,182,221,34,222,149,222,201,223,73,226,174,226,32,228,73,230, +50,231,189,232,76,234,46,235,133,236,118,239,234,241,153,243,132,245,47,246,124,247,23,248,179,248,186,249,221,250,150,253, +57,254,10,1,183,2,87,4,19,8,218,8,97,11,242,11,193,11,48,12,202,12,108,13,44,12,95,11,211,10,190,10, +181,8,97,8,192,8,137,7,141,6,57,5,128,4,191,2,203,0,115,254,36,252,0,249,201,246,105,245,135,242,102,240, +217,237,116,235,142,232,221,229,26,227,133,224,203,222,246,221,75,222,104,220,50,220,41,219,49,217,67,216,246,212,151,210, +239,208,84,208,169,206,28,206,248,205,112,205,143,207,50,208,58,210,51,210,73,211,212,212,249,212,179,216,112,217,120,220, +36,223,17,224,122,225,21,226,64,227,133,227,157,230,214,232,208,235,211,237,165,239,126,243,215,246,156,251,31,254,171,1, +34,4,230,5,186,7,44,9,145,11,218,11,92,13,245,13,88,15,137,17,12,20,252,22,10,25,130,29,137,32,250,34, +38,38,32,41,149,44,239,47,118,51,0,54,109,54,244,53,255,53,149,52,58,50,251,47,109,46,21,46,21,46,76,46, +105,46,32,46,179,44,136,44,165,44,198,43,240,43,97,43,114,43,123,43,145,42,63,41,221,40,239,42,90,42,139,42, +199,42,229,39,247,37,74,34,43,31,139,26,11,21,108,18,63,14,220,11,22,10,35,8,122,7,87,5,25,3,212,1, +255,1,237,255,1,253,52,251,107,248,73,247,159,245,199,244,221,244,220,243,206,242,48,240,81,238,76,237,152,235,4,233, +254,232,26,233,18,232,48,234,31,235,192,236,69,238,69,239,80,241,87,241,173,242,208,244,8,245,191,244,104,244,49,242, +168,241,227,240,67,238,44,238,197,237,237,236,44,236,128,237,239,238,180,238,104,239,195,239,85,241,36,241,239,238,165,238, +137,238,161,237,51,237,232,237,97,238,105,239,179,240,178,240,132,242,93,242,151,240,241,242,57,243,92,243,213,243,140,243, +251,244,146,244,126,246,81,247,33,247,117,248,192,246,157,245,16,245,255,244,199,244,24,245,157,246,78,248,43,250,148,250, +43,252,60,253,93,253,110,253,41,253,124,252,83,251,103,252,141,253,58,254,37,253,5,252,234,251,26,251,160,251,113,251, +164,251,53,251,45,250,210,248,21,247,244,246,115,245,81,244,16,243,122,242,50,242,205,239,150,239,184,238,66,236,106,235, +181,233,163,233,131,235,99,235,247,236,210,238,84,240,159,242,251,242,149,243,163,243,230,243,142,243,89,243,7,245,158,244, +181,244,206,244,233,242,208,241,79,240,117,238,110,236,203,233,185,233,246,232,165,231,103,231,158,229,182,229,194,228,242,226, +200,225,63,224,162,223,186,222,212,222,64,223,93,224,123,223,234,222,238,223,130,223,55,224,160,223,80,224,53,225,59,226, +226,227,196,228,25,232,135,233,233,234,124,236,175,237,24,240,119,241,23,243,99,245,99,248,111,251,143,254,24,0,229,1, +235,2,30,3,246,5,147,6,197,6,41,8,131,10,55,12,254,13,87,17,96,18,49,21,27,23,252,22,249,24,81,26, +13,26,98,26,27,28,137,28,158,28,181,28,183,27,167,26,254,25,53,24,114,22,89,22,175,21,131,19,120,16,212,14, +107,11,187,8,207,7,55,4,207,2,71,1,161,255,216,254,31,252,59,250,215,248,67,247,252,246,105,247,249,246,61,247, +27,247,119,247,248,247,14,247,89,246,254,242,181,239,107,236,197,231,61,228,52,226,195,225,193,224,153,225,253,226,169,227, +26,230,16,233,218,235,244,237,228,240,107,243,24,246,9,250,141,252,69,0,39,3,163,3,37,6,193,8,17,10,240,9, +120,10,177,12,227,12,36,14,64,15,119,15,144,17,235,18,10,21,126,23,227,25,70,28,214,29,129,31,228,32,9,35, +151,36,160,37,90,38,253,37,251,36,143,35,43,35,70,34,236,32,45,31,221,28,159,27,162,25,199,23,89,22,131,19, +77,16,22,13,6,10,24,7,120,5,182,3,216,0,205,255,63,254,128,251,62,249,216,247,200,244,179,239,145,235,96,229, +36,224,227,219,212,215,247,213,89,211,107,210,153,209,79,209,141,208,210,206,22,207,110,206,105,206,242,205,114,205,56,206, +169,207,249,207,154,207,127,209,153,209,153,210,71,212,136,213,197,215,158,217,11,221,171,223,45,227,101,232,217,235,173,238, +3,243,38,246,112,248,195,251,209,252,196,254,23,1,109,2,104,4,232,5,120,7,187,8,69,11,83,13,140,13,58,15, +59,17,40,17,185,17,107,17,176,15,38,14,186,9,182,6,53,4,51,1,210,255,233,255,249,1,74,2,86,4,61,5, +216,4,216,6,249,5,44,5,127,4,11,2,53,0,80,254,151,251,140,250,77,250,168,250,147,251,197,251,19,255,155,0, +63,0,198,1,150,2,20,2,9,0,85,255,103,253,142,250,200,248,172,246,148,245,98,244,186,244,189,245,197,244,67,244, +122,244,121,244,54,247,213,249,96,251,168,255,207,2,84,6,225,9,252,10,16,12,7,13,13,14,161,13,227,13,229,15, +156,16,59,16,31,17,234,18,113,19,34,20,164,21,50,24,154,26,128,27,50,29,177,30,243,29,220,27,56,24,28,20, +27,16,218,11,204,7,237,3,114,2,88,1,138,0,240,1,129,1,176,0,153,0,68,255,32,255,123,255,229,254,122,255, +101,254,20,252,135,252,211,251,146,250,183,250,139,250,196,250,85,250,41,250,151,250,121,250,142,250,3,251,218,251,171,252, +190,253,175,254,144,254,166,255,149,1,57,2,159,3,55,4,29,4,205,3,24,3,52,4,109,4,26,5,192,4,161,3, +236,2,254,0,92,1,176,0,248,255,146,0,229,1,197,3,67,4,177,4,196,3,169,3,62,2,72,0,95,255,97,253, +73,253,241,252,20,253,194,252,234,252,38,254,235,253,134,254,235,253,199,253,255,252,247,251,171,251,180,249,0,248,49,244, +19,241,229,238,171,236,162,235,87,233,218,233,188,235,85,236,168,238,35,241,247,241,39,243,84,244,136,243,167,243,205,243, +23,244,76,244,107,243,148,244,59,244,215,245,44,248,51,249,198,252,16,255,57,2,59,4,51,6,165,8,178,9,16,12, +255,13,198,15,179,16,87,18,119,18,10,18,70,19,127,19,119,20,135,20,155,20,186,19,74,18,48,18,51,16,237,14, +238,13,189,11,80,10,239,8,22,7,107,5,168,3,117,1,218,255,143,253,178,252,20,252,251,249,226,249,53,250,162,250, +129,250,226,250,164,250,165,249,170,249,111,247,105,246,6,246,130,243,56,242,46,242,97,241,151,240,129,240,173,239,86,238, +83,237,123,235,124,233,119,232,212,230,82,229,235,227,237,226,32,226,233,225,12,227,128,226,69,226,170,225,123,225,136,226, +119,225,131,225,214,224,135,223,216,222,4,222,144,221,71,220,65,220,139,219,176,219,196,219,189,218,108,219,97,219,116,220, +7,222,157,223,145,225,182,227,164,229,62,230,111,232,149,234,191,234,67,235,151,236,78,237,144,237,122,238,216,238,135,238, +126,238,30,238,41,239,57,240,49,240,39,241,9,242,54,243,224,243,233,243,125,244,181,244,168,245,156,246,109,246,126,246, +130,245,225,244,75,244,230,242,107,243,237,243,70,244,86,245,85,246,244,246,125,247,135,247,161,248,224,248,111,247,58,248, +180,247,244,247,222,249,91,250,230,250,168,251,178,253,203,254,28,255,238,0,32,2,250,2,34,4,175,5,109,7,73,8, +166,8,201,9,6,12,11,13,216,13,75,14,245,13,109,13,172,12,121,12,215,12,175,13,179,13,168,15,118,17,142,18, +242,19,245,19,142,19,113,18,202,17,17,16,58,15,102,15,61,15,203,15,163,15,190,15,158,16,81,16,148,16,96,18, +175,18,40,19,30,20,207,20,179,21,235,22,42,23,58,23,193,23,17,23,242,23,143,24,58,24,32,24,180,23,131,23, +191,22,9,23,117,22,129,20,247,19,254,18,147,18,120,18,19,17,128,16,103,16,45,16,210,15,150,14,121,13,106,12, +75,10,138,7,157,4,221,3,153,3,48,3,183,3,228,3,150,5,9,6,153,5,131,6,35,7,27,7,63,8,37,10, +36,10,221,10,251,10,234,10,40,12,143,11,209,11,142,11,251,9,124,10,107,10,78,9,30,9,149,8,130,7,19,8, +206,7,201,7,3,8,242,7,133,9,247,8,55,8,47,8,25,9,216,8,15,8,57,7,182,5,16,5,118,2,50,0, +110,252,217,249,107,247,51,244,101,242,123,240,139,239,171,238,68,239,169,237,144,235,234,234,101,234,181,233,55,233,225,233, +92,234,136,234,172,234,154,235,214,235,109,236,6,236,133,236,39,238,106,238,209,239,97,240,75,240,76,241,4,241,238,240, +72,242,69,242,144,242,0,243,72,244,202,244,5,245,253,246,40,247,212,248,157,250,107,250,221,250,124,251,104,251,5,250, +148,248,186,248,247,248,234,247,92,247,185,246,237,245,155,245,133,245,141,247,102,248,133,249,120,252,216,252,156,253,101,253, +41,253,45,253,206,251,155,251,100,250,95,249,38,248,137,245,222,242,241,240,48,238,2,235,167,233,156,231,121,230,130,230, +54,230,43,230,230,228,181,228,114,229,64,229,255,228,3,229,164,228,56,228,11,228,193,226,76,226,229,224,207,224,61,225, +200,224,165,226,200,226,201,227,123,229,173,229,126,229,134,230,220,231,249,232,136,234,245,235,90,237,168,238,4,241,243,240, +98,242,152,244,164,245,210,247,119,249,56,251,148,252,0,254,232,254,9,0,230,0,44,1,187,0,236,1,51,2,139,1, +182,3,126,3,254,3,231,5,228,6,51,8,181,8,251,8,234,8,89,9,202,9,240,7,142,7,252,7,36,7,44,7, +210,6,253,6,33,7,182,6,115,6,238,5,232,5,39,5,69,3,114,2,224,1,29,1,147,255,106,255,181,255,79,255, +169,1,15,2,73,3,41,5,78,5,51,6,114,6,14,5,111,3,64,2,54,0,243,255,119,254,102,254,180,254,66,254, +114,255,145,255,87,1,222,1,73,2,106,2,245,0,192,0,219,0,128,0,221,0,110,2,178,2,234,2,228,2,149,2, +5,3,118,2,240,2,52,3,23,3,87,4,117,4,111,4,101,4,72,4,26,4,88,4,216,2,0,1,41,2,81,2, +73,2,77,2,100,2,31,2,252,1,121,2,143,2,95,3,205,3,21,4,65,3,151,2,108,2,103,2,78,4,183,4, +39,4,221,4,97,5,139,5,141,5,243,5,220,5,253,5,250,4,54,3,234,1,223,255,132,255,88,254,210,253,241,255, +190,1,175,2,202,3,90,4,52,5,19,7,185,8,209,10,94,11,27,12,27,13,151,13,148,13,74,13,76,13,112,12, +4,9,101,4,122,0,223,251,161,248,255,245,173,245,253,245,68,246,118,246,226,245,56,246,169,245,123,245,169,244,225,243, +33,244,45,245,44,245,124,245,50,245,201,244,35,245,136,244,171,244,192,244,26,245,159,244,129,246,159,246,159,246,196,248, +229,248,39,250,170,251,67,252,117,252,110,254,73,254,135,254,130,255,69,0,195,1,129,2,227,4,70,5,247,6,227,8, +62,9,96,9,222,8,106,10,112,10,105,9,199,9,14,10,148,9,168,9,194,9,114,9,237,10,57,12,181,12,197,12, +141,12,7,12,45,11,0,11,1,9,236,5,90,3,110,0,157,251,145,248,153,247,117,245,116,245,78,245,12,245,94,246, +115,247,141,247,89,247,247,246,164,246,166,246,175,244,246,241,106,238,33,235,56,233,212,229,157,228,36,228,194,225,240,225, +80,226,4,226,116,225,130,226,44,228,3,229,60,230,243,230,98,233,254,233,90,234,235,235,101,237,209,238,72,240,243,241, +135,243,251,245,67,248,225,250,160,253,244,0,83,2,92,5,59,8,141,9,243,11,10,14,175,16,160,17,3,20,177,20, +13,21,87,22,13,23,123,23,218,23,158,25,148,25,90,26,9,26,62,25,40,25,150,24,53,23,55,21,165,20,118,19, +95,19,236,18,195,16,188,16,105,15,208,13,24,13,244,10,215,11,52,11,129,9,156,8,5,6,157,3,234,0,40,255, +133,252,7,250,245,247,192,245,249,244,224,243,139,243,147,243,148,242,197,242,177,243,12,243,160,241,37,242,65,242,187,241, +8,242,61,242,107,242,85,240,231,239,73,240,102,241,218,242,126,242,151,242,11,242,225,242,190,243,188,244,114,244,254,244, +216,245,25,246,44,248,206,247,230,249,81,252,146,252,113,254,62,0,248,0,94,1,209,2,221,3,144,4,145,4,26,5, +208,6,188,6,218,6,48,7,198,6,101,5,38,4,250,2,61,1,107,1,26,1,6,2,69,3,117,4,48,6,70,7, +53,9,233,9,132,11,135,12,117,12,59,12,175,11,57,11,55,10,181,9,66,9,32,8,27,7,91,6,112,5,213,5, +127,5,194,5,246,5,103,5,188,5,187,4,43,5,87,5,51,3,1,3,95,3,156,2,61,2,228,1,198,0,217,255, +132,0,81,0,63,0,67,255,195,252,181,250,41,249,254,246,19,244,71,243,34,241,118,240,67,240,175,238,150,238,89,238, +210,236,54,236,196,236,238,235,59,236,167,234,235,233,82,233,239,231,79,231,189,230,181,230,0,229,180,228,164,228,193,229, +187,229,141,229,127,230,166,230,79,232,11,233,187,232,157,233,193,234,106,235,30,237,173,237,101,238,30,239,101,240,207,240, +25,241,37,243,27,243,122,244,215,244,40,245,4,246,221,246,127,249,213,250,151,253,219,255,70,0,38,1,38,2,119,3, +163,3,52,4,166,6,134,8,239,8,183,8,122,8,138,8,80,7,29,5,193,3,50,2,36,2,37,2,40,2,128,2, +27,1,253,0,172,0,226,0,107,2,84,2,161,2,165,4,59,5,48,5,246,6,216,8,16,10,83,10,2,10,232,9, +196,9,11,10,88,9,222,7,205,7,22,8,148,8,172,7,222,7,221,7,131,7,35,8,45,6,218,5,253,5,150,5, +230,4,251,4,119,3,151,2,224,2,1,1,67,1,79,0,53,0,14,254,0,252,85,251,132,248,128,246,50,245,164,245, +199,244,57,243,154,241,22,240,189,238,203,236,32,234,229,231,174,228,134,226,246,225,161,223,214,222,81,221,141,220,30,220, +225,218,101,219,189,220,170,220,56,221,45,224,130,224,185,225,155,229,71,232,154,235,20,237,215,236,195,238,84,239,171,240, +235,240,55,241,107,243,168,243,0,246,236,246,39,247,213,248,115,250,246,251,255,252,23,255,128,0,182,1,226,3,69,6, +203,7,121,9,234,9,70,8,22,9,219,8,119,6,158,5,121,4,55,4,223,3,108,3,191,3,61,4,128,4,153,4, +53,6,102,6,152,4,13,5,231,6,166,5,80,5,83,5,100,4,204,4,195,5,58,6,135,4,68,4,200,3,178,2, +206,1,44,1,30,2,106,3,60,5,21,7,109,8,113,10,100,13,136,13,176,13,93,15,153,15,151,15,7,16,100,16, +249,15,51,16,137,17,95,17,114,17,208,17,18,17,186,16,101,16,24,15,210,11,192,9,187,5,18,1,216,253,104,249, +205,247,25,246,181,244,30,245,38,244,69,242,123,241,77,240,171,239,243,239,142,239,251,240,28,243,238,243,197,244,109,244, +179,242,228,242,93,242,16,242,108,241,35,241,222,242,51,243,212,243,232,245,69,248,185,249,31,253,135,254,88,254,225,0, +6,2,105,2,33,4,29,6,152,7,241,8,191,10,64,12,147,13,178,14,74,14,29,16,67,17,16,17,94,17,75,17, +131,17,72,17,154,16,237,14,224,14,29,13,213,11,228,10,121,9,166,7,121,4,125,3,167,1,223,1,98,1,4,1, +85,0,150,254,194,254,140,252,147,251,105,251,89,251,78,252,181,252,113,252,153,252,154,252,31,252,49,252,103,251,18,251, +84,251,239,250,87,249,228,248,199,250,123,250,153,249,208,250,35,250,167,250,146,252,52,252,90,252,2,252,63,252,203,252, +82,252,74,251,30,251,255,251,165,251,54,252,0,252,154,252,146,252,36,252,200,251,155,250,65,251,109,248,230,247,109,247, +2,246,39,246,122,245,144,246,100,245,174,246,172,248,158,249,88,250,218,249,4,251,241,249,2,247,175,245,107,244,198,242, +216,241,46,240,136,238,230,236,107,236,203,235,144,235,228,235,42,235,35,235,25,235,34,235,243,234,81,235,133,235,180,235, +6,236,160,236,41,236,211,236,150,236,89,236,61,238,201,236,53,238,60,238,199,238,252,240,188,240,214,240,175,240,62,242, +150,241,169,241,176,241,10,242,155,242,206,242,235,244,131,243,52,243,193,243,233,243,158,245,183,246,122,248,83,249,46,252, +115,0,118,1,221,2,205,3,95,5,254,6,129,6,123,7,175,8,75,8,167,7,49,8,25,7,107,7,6,8,205,7, +43,10,9,11,182,12,163,12,39,12,6,12,169,8,119,6,181,3,66,1,113,253,137,250,100,250,21,249,100,249,166,249, +130,249,124,249,18,250,152,249,39,249,219,249,38,249,87,249,38,249,118,249,115,249,39,249,216,249,1,250,73,250,109,251, +42,252,69,251,17,252,130,251,251,251,36,255,76,0,1,3,183,3,55,3,217,3,146,3,125,5,26,6,25,5,101,5, +188,6,222,6,90,7,239,9,229,9,232,9,108,10,112,10,221,10,185,9,200,9,77,10,71,10,248,11,81,10,167,9, +219,11,63,11,151,12,70,12,144,11,229,11,11,11,20,11,16,10,200,8,59,7,76,5,129,2,222,255,111,253,151,251, +255,249,12,248,212,246,194,246,125,245,237,243,121,244,12,244,246,244,97,246,201,246,26,247,236,246,154,246,133,246,108,244, +159,243,152,243,144,241,194,241,184,241,96,243,88,244,81,245,175,246,105,248,123,251,235,252,132,255,98,1,28,2,122,2, +57,3,247,2,157,4,23,5,248,4,241,6,252,7,199,9,133,10,63,12,118,12,206,12,213,10,255,7,16,7,97,4, +236,1,67,255,23,254,107,252,125,252,43,252,165,251,66,252,200,251,95,253,52,253,227,252,128,254,132,254,68,253,79,253, +229,253,35,252,140,251,114,252,57,252,150,252,6,254,121,0,225,0,113,1,247,2,80,3,22,4,213,4,68,6,167,7, +83,9,53,10,254,9,120,9,146,10,220,10,200,9,134,11,95,11,253,11,44,14,87,14,134,15,68,16,29,16,198,15, +116,15,24,16,182,15,42,16,188,15,134,14,138,14,130,12,52,12,24,12,250,9,93,10,224,9,19,7,131,6,170,5, +126,4,252,1,81,0,203,255,91,252,161,251,135,251,90,251,240,249,99,249,165,249,148,248,222,246,129,242,22,239,43,234, +219,230,90,228,36,226,138,224,193,223,121,224,62,222,135,222,250,223,95,224,3,224,200,224,24,226,68,226,192,226,138,226, +57,228,50,229,114,229,46,229,218,228,172,230,245,230,182,230,194,231,7,234,150,234,38,235,112,238,26,240,21,243,243,245, +217,246,147,249,196,251,155,252,151,254,181,1,253,2,252,2,75,4,142,5,208,5,38,6,248,5,236,5,158,5,192,5, +148,5,173,4,254,4,221,3,185,2,41,3,97,3,197,3,33,4,167,3,228,3,172,1,143,0,140,0,32,254,188,253, +89,251,189,250,96,251,71,249,3,248,83,248,51,247,151,245,251,244,116,243,50,242,122,240,17,240,216,237,253,236,219,236, +172,236,155,236,222,234,101,236,57,236,192,236,163,237,158,237,51,239,0,240,253,239,15,242,75,243,161,244,36,247,32,248, +197,250,187,250,228,252,4,0,38,2,190,3,218,3,88,6,72,7,99,7,141,7,141,9,92,10,140,11,251,12,165,12, +253,12,203,12,108,14,188,14,247,13,63,14,161,13,246,13,57,14,149,12,204,11,82,10,43,9,235,6,101,4,121,3, +255,0,195,255,111,253,91,251,135,249,106,248,64,248,108,247,45,247,134,245,211,245,111,247,210,247,199,247,156,248,44,250, +153,251,209,251,206,251,53,252,153,251,238,251,104,252,175,252,134,252,221,252,131,254,31,255,187,255,132,0,23,2,229,2, +215,1,23,3,126,3,12,4,161,5,93,5,151,5,135,5,144,5,40,5,98,3,94,0,186,255,194,253,173,250,231,250, +64,249,48,249,95,249,55,249,171,249,225,249,163,251,220,252,179,252,14,252,193,251,239,250,36,251,88,250,246,249,157,250, +186,249,207,250,218,250,47,250,84,253,59,255,141,255,70,0,144,0,172,0,253,255,153,0,124,0,203,0,74,0,131,0, +24,2,3,1,51,2,255,0,33,0,253,0,233,255,190,0,85,0,98,255,177,255,37,255,8,254,64,254,220,253,217,251, +69,251,40,251,215,248,18,249,177,248,31,247,214,248,181,246,96,246,205,246,105,246,2,248,3,246,211,245,11,245,180,244, +225,244,93,242,239,242,206,242,222,241,204,241,170,241,175,241,90,241,149,241,164,241,206,241,119,242,177,242,146,242,103,243, +160,244,42,245,237,245,1,248,206,247,243,245,216,245,164,245,36,245,16,245,73,246,2,247,232,246,129,247,236,248,108,249, +108,249,114,249,82,248,42,248,59,248,118,248,212,248,191,248,244,248,2,251,141,251,232,250,1,252,180,253,96,0,12,2, +78,3,65,3,233,3,188,3,53,4,195,5,151,5,72,6,119,5,162,5,113,5,22,6,216,5,53,4,50,4,165,3, +178,3,252,3,168,5,80,6,208,5,250,5,54,6,137,4,153,4,188,4,1,3,180,3,132,2,12,1,188,254,106,252, +139,251,232,248,75,246,146,245,100,244,237,241,251,240,128,240,80,240,51,240,107,240,152,240,189,240,213,240,76,240,145,240, +50,241,128,241,35,241,128,241,146,242,162,243,69,244,28,245,55,247,212,247,217,247,94,249,202,250,15,252,5,254,242,0, +153,2,126,3,101,5,130,6,27,8,82,9,209,9,251,11,70,12,170,10,66,10,93,9,121,9,227,9,41,9,114,9, +231,8,143,8,36,8,197,5,206,5,96,5,78,4,125,5,61,4,55,4,243,3,160,2,212,1,129,0,98,255,12,254, +66,254,66,252,140,252,169,252,84,252,185,253,107,253,30,255,212,255,220,255,64,255,59,255,3,254,102,253,115,252,59,250, +37,250,177,249,178,250,255,249,169,250,27,251,240,250,226,250,225,249,56,251,252,249,206,249,233,251,230,251,139,252,168,254, +211,0,60,3,112,4,21,6,217,7,49,9,239,9,156,10,80,11,39,10,206,10,76,12,110,12,182,11,198,11,7,10, +33,8,11,7,39,6,222,5,145,5,158,5,160,2,100,2,41,2,4,2,25,2,183,0,180,0,211,255,34,0,147,254, +40,254,116,254,58,254,44,254,9,254,19,254,54,252,175,252,126,252,39,252,63,254,9,254,227,253,135,253,97,251,246,251, +120,252,63,252,238,251,237,251,174,252,205,252,245,252,95,252,234,253,25,254,177,253,82,255,8,255,254,254,104,255,31,255, +199,255,101,255,42,255,85,0,17,0,43,0,0,0,238,255,161,0,222,1,20,1,21,1,17,2,145,0,29,1,245,254, +182,252,245,251,162,250,138,250,84,250,96,250,41,250,223,249,59,249,86,249,234,248,223,248,157,247,121,245,124,245,143,245, +224,244,52,244,92,243,255,241,222,242,48,242,8,241,185,240,139,239,237,238,48,237,75,236,62,234,231,230,94,228,47,225, +191,222,179,221,17,220,235,218,206,219,208,219,241,219,15,221,252,220,174,222,226,223,117,223,56,225,117,225,166,225,6,227, +116,228,69,229,36,230,64,232,169,232,200,234,68,236,160,237,214,238,125,240,143,243,180,243,3,247,149,249,79,252,60,0, +37,3,31,6,52,7,24,10,71,12,210,14,32,17,51,18,211,19,57,21,209,20,173,21,86,23,30,22,37,23,152,23, +114,23,125,24,111,26,155,26,169,26,174,27,80,27,95,27,226,25,229,24,19,22,100,20,170,18,120,16,146,16,99,14, +254,12,144,11,6,8,179,5,177,4,218,2,177,1,199,255,15,255,48,253,54,251,46,251,208,250,230,250,182,248,135,248, +174,248,132,248,177,247,107,247,87,247,134,247,141,248,242,247,1,249,50,248,22,247,59,246,165,245,208,244,61,245,6,244, +92,242,35,243,231,241,26,243,192,243,98,244,203,244,93,245,41,245,104,245,160,245,23,245,6,246,222,244,105,245,212,243, +191,243,3,245,240,244,92,245,159,244,246,244,41,245,87,244,26,244,162,244,241,243,192,244,240,244,130,246,193,247,99,247, +225,248,76,249,105,249,130,249,201,249,158,249,137,249,60,249,183,250,56,252,220,253,239,255,140,0,143,0,99,1,24,3, +218,1,216,1,254,0,33,0,93,0,94,255,48,254,31,253,241,253,111,255,115,0,199,255,67,0,29,0,23,0,5,1, +33,1,178,1,255,2,152,3,64,2,36,1,79,0,36,0,191,254,223,254,128,254,247,252,49,253,154,251,48,250,167,250, +6,252,81,252,213,253,26,0,236,0,27,1,52,2,241,2,95,1,22,1,10,1,214,255,150,254,157,253,254,251,117,251, +7,251,63,249,27,249,64,248,235,247,67,248,74,246,90,246,50,248,161,248,68,248,134,246,174,245,178,245,56,245,183,244, +65,244,96,245,120,246,178,246,192,246,123,247,140,248,64,249,174,249,26,250,98,251,180,251,182,252,65,254,14,255,40,0, +143,0,254,0,232,0,61,0,56,0,223,255,230,255,248,0,236,255,226,0,135,2,52,1,175,2,172,2,10,3,104,5, +113,5,192,5,11,6,190,5,178,5,165,5,81,4,244,3,87,4,242,3,189,3,61,3,40,3,66,3,245,1,248,0, +171,0,118,0,203,0,79,0,116,0,89,0,105,0,123,0,18,0,49,0,35,0,240,255,43,255,163,254,74,254,43,255, +172,255,84,0,9,1,148,2,51,4,52,4,10,6,135,6,157,6,221,7,133,8,98,8,181,8,142,9,100,10,132,10, +235,10,139,11,232,10,97,11,202,11,41,12,225,12,212,14,182,14,52,15,36,15,198,13,103,15,78,14,76,14,108,13, +244,12,167,13,130,13,144,13,143,12,0,12,108,11,47,11,22,8,157,6,39,5,114,3,35,3,98,2,143,2,112,1, +155,1,1,1,91,0,154,255,245,253,66,253,212,251,249,250,115,250,160,249,128,249,51,248,135,247,87,248,199,247,29,248, +76,248,88,248,120,247,131,247,182,248,186,247,129,247,96,247,116,247,216,246,75,246,16,246,191,245,234,246,11,247,87,246, +126,246,240,244,213,242,251,242,56,241,174,240,43,241,14,240,22,240,163,239,219,239,123,239,214,239,182,240,150,240,32,240, +248,239,39,242,23,242,162,242,44,243,87,243,89,245,200,245,223,247,116,248,199,248,141,250,201,250,193,250,238,250,8,251, +202,250,87,251,143,251,60,252,171,253,253,253,182,253,243,255,45,0,121,254,242,254,77,254,101,254,55,254,155,252,119,251, +29,252,187,250,2,250,79,250,144,247,249,247,125,247,54,247,38,247,240,244,5,245,255,243,211,243,83,244,151,243,116,244, +133,244,17,244,6,244,72,244,209,243,134,241,220,241,1,242,100,240,118,239,154,238,202,238,210,238,140,237,242,236,2,238, +182,237,2,238,151,239,156,239,123,239,141,240,16,242,13,242,160,242,71,245,119,247,84,248,27,249,196,250,151,251,183,252, +210,254,89,254,200,254,134,0,94,0,170,0,187,1,172,1,186,1,207,1,41,1,50,2,52,2,103,2,142,2,175,1, +131,2,183,3,72,4,204,3,229,3,142,3,111,3,17,3,47,3,20,3,169,2,152,3,29,3,80,3,117,3,152,3, +17,4,73,4,182,3,204,3,166,3,12,3,95,3,19,2,73,2,137,1,124,0,87,0,187,255,69,255,61,255,106,255, +20,253,114,251,108,250,10,248,159,245,163,244,113,242,117,240,233,239,98,239,212,239,218,239,117,240,83,239,159,239,83,240, +133,238,97,238,3,238,244,235,65,235,157,236,169,235,219,235,97,237,245,236,149,236,60,237,6,239,87,239,48,239,74,239, +66,239,169,239,254,239,54,240,245,241,133,244,250,245,194,247,61,251,111,255,243,1,243,4,244,7,82,11,9,14,144,14, +122,16,70,16,41,16,249,16,168,16,27,17,104,16,133,16,6,16,63,14,68,14,162,13,149,14,26,17,40,18,177,20, +240,21,112,22,103,24,82,25,197,24,124,24,60,25,149,24,154,24,58,24,94,24,249,23,255,20,103,19,11,16,126,13, +87,12,81,9,59,7,168,4,179,1,84,1,19,1,220,255,111,255,74,255,102,255,237,255,22,1,78,1,217,1,13,4, +188,4,244,4,112,6,117,6,164,4,108,3,134,2,158,1,152,1,129,1,26,0,3,255,34,0,176,1,215,1,206,2, +51,4,94,4,76,4,139,4,202,4,236,3,102,3,40,3,155,1,120,255,137,253,35,251,240,249,21,250,2,249,192,247, +6,247,117,247,133,247,12,248,153,249,91,249,72,248,201,247,193,247,252,247,165,247,11,246,213,245,171,245,42,245,83,245, +160,245,187,245,160,244,148,245,244,245,87,245,225,245,91,246,190,248,167,249,169,249,203,251,233,252,61,254,10,0,12,1, +109,1,49,1,79,1,86,1,235,1,140,1,60,1,17,2,128,1,139,1,192,1,218,0,74,1,152,1,60,1,52,1, +197,255,238,255,228,255,247,253,219,253,25,254,137,253,41,252,178,251,129,251,98,250,41,249,116,247,252,244,66,242,248,239, +152,238,134,236,182,233,2,233,56,232,79,232,55,232,208,231,86,233,152,233,148,233,94,233,63,234,213,235,148,236,255,236, +147,237,221,238,58,239,142,239,9,240,21,241,93,241,43,242,97,244,65,244,113,245,56,247,13,248,27,249,15,249,67,251, +21,252,81,252,1,254,235,253,139,255,255,255,21,1,239,2,159,3,118,5,134,6,97,8,33,9,226,9,98,10,206,11, +133,12,12,10,93,10,255,8,30,7,249,5,190,3,145,2,99,0,133,253,251,251,161,250,187,248,19,249,72,249,65,249, +13,249,73,249,215,249,156,249,15,249,123,246,220,245,103,243,78,240,157,238,245,235,213,233,166,230,22,229,123,226,174,224, +226,223,251,221,228,221,185,221,131,221,27,221,109,221,184,221,43,222,229,222,72,223,163,224,241,225,130,227,219,228,238,229, +214,231,220,232,153,233,137,235,219,235,79,236,229,237,31,239,154,240,47,242,50,244,221,245,49,248,103,249,2,250,170,252, +51,255,110,1,99,4,142,6,227,7,70,10,226,11,242,12,95,15,165,17,84,18,112,20,58,21,250,20,159,23,231,22, +86,23,184,24,117,24,237,24,8,24,2,25,185,25,39,25,62,24,253,23,87,23,198,21,115,20,127,17,199,14,111,11, +85,8,247,5,211,2,92,0,70,254,16,252,190,251,31,250,207,248,149,249,231,246,222,246,16,246,254,242,248,242,58,242, +202,241,218,241,109,241,220,240,229,241,124,241,181,241,201,243,102,245,159,247,101,248,153,250,25,252,222,253,19,0,111,1, +71,3,201,3,212,6,103,8,100,8,187,11,196,12,106,12,215,15,36,18,40,19,247,20,105,21,130,22,246,23,11,24, +5,24,253,24,121,25,191,26,220,26,143,27,108,29,57,29,115,29,36,27,16,27,37,27,253,25,81,26,107,24,175,24, +150,24,123,23,253,21,159,21,223,20,2,18,19,16,212,12,107,10,185,6,19,3,34,0,158,251,93,248,82,245,217,242, +3,241,30,238,73,235,186,233,229,231,24,232,102,232,209,231,57,234,219,233,82,232,88,234,86,233,158,232,203,234,62,234, +182,234,61,234,229,232,203,233,146,234,32,235,246,234,169,236,232,237,244,238,169,240,167,241,251,242,64,244,171,245,70,246, +249,247,182,249,225,250,226,251,10,253,251,253,212,254,241,255,0,0,252,1,99,3,183,4,88,6,6,7,213,7,21,8, +73,8,162,7,2,8,228,7,110,7,230,6,139,5,39,5,254,4,130,3,196,2,229,2,136,0,143,0,235,255,184,253, +4,252,47,249,181,247,193,244,165,242,83,241,58,240,142,238,173,236,40,236,133,234,71,234,31,234,97,233,59,232,52,231, +123,230,238,229,205,229,149,229,147,229,151,229,73,230,66,229,7,228,77,226,160,224,116,224,235,222,236,221,14,222,102,222, +89,223,193,224,194,225,34,228,90,230,101,231,54,234,83,237,131,239,190,240,59,242,53,244,213,245,26,247,190,248,19,250, +189,251,126,254,102,255,248,0,194,2,137,3,244,4,147,6,28,8,27,8,3,9,95,10,57,11,191,12,22,13,32,13, +101,13,75,13,137,14,225,15,245,16,18,17,167,16,171,17,181,16,243,16,243,16,63,15,54,15,211,14,70,14,64,13, +8,12,138,10,176,9,6,8,224,6,176,6,70,5,29,4,198,2,121,1,171,254,112,252,15,250,64,247,8,245,11,242, +153,240,208,238,189,237,39,237,58,236,199,234,224,233,126,234,221,233,170,234,91,235,117,236,206,237,125,238,120,239,215,239, +187,240,78,241,39,242,60,242,110,243,112,244,179,244,65,246,30,247,74,248,186,249,1,252,51,254,105,255,149,1,119,3, +40,4,57,6,84,8,176,9,10,12,30,14,124,15,0,16,37,16,148,17,234,17,45,18,72,19,71,19,217,19,156,19, +49,19,148,19,136,19,93,18,203,16,39,15,209,13,19,12,234,9,248,8,4,7,41,5,208,4,254,4,221,3,54,3, +171,3,95,3,217,3,57,3,19,3,226,3,93,3,163,4,108,4,109,3,56,3,40,1,20,0,69,255,5,255,120,254, +213,253,89,253,71,253,169,252,33,252,253,251,255,249,175,249,255,248,36,249,135,249,253,249,196,250,191,250,179,252,246,252, +7,254,32,255,17,254,49,255,123,255,31,0,134,0,66,0,15,1,182,0,106,1,69,1,10,2,84,2,125,2,94,3, +27,2,151,3,83,4,9,5,67,7,117,7,69,8,109,9,104,9,79,10,210,10,128,9,156,9,89,9,143,8,52,9, +241,8,146,8,58,7,227,6,8,7,205,6,93,7,96,6,216,6,44,6,62,6,135,7,236,5,152,5,0,5,45,3, +143,3,49,2,218,255,248,253,251,250,249,248,143,245,95,243,130,242,28,241,60,239,162,237,255,235,49,234,173,233,2,233, +67,232,63,232,1,233,54,233,226,233,222,233,220,234,39,235,9,235,113,235,110,234,172,234,204,234,149,234,139,233,13,234, +11,234,218,232,45,234,227,233,196,233,78,234,54,234,243,235,37,236,168,236,164,237,97,237,219,237,82,239,41,239,125,238, +243,239,37,240,207,240,175,241,187,242,93,242,95,243,51,245,101,245,250,245,25,246,162,248,238,248,109,249,14,251,111,250, +100,250,58,251,90,251,213,251,201,252,139,252,71,253,107,254,94,255,61,0,69,1,6,2,72,2,183,2,238,3,10,5, +46,5,166,5,39,6,231,6,36,7,54,7,70,8,122,8,226,8,3,9,114,8,233,8,236,8,152,8,74,9,11,10, +224,9,101,10,108,10,25,10,253,9,125,9,156,8,247,7,5,7,136,5,2,6,126,5,174,4,149,4,49,3,211,2, +75,2,101,0,195,255,128,254,225,253,171,253,147,252,195,251,81,249,229,248,155,247,124,245,163,245,173,243,104,243,3,244, +218,242,204,242,21,243,31,244,41,244,65,245,119,246,48,246,16,247,176,247,91,248,202,248,189,249,196,250,229,251,86,252, +246,253,17,255,123,255,91,1,232,1,16,3,137,4,204,5,42,7,71,9,212,9,63,12,10,14,0,14,83,16,106,16, +105,17,249,17,183,17,106,18,68,19,199,19,53,19,100,18,1,18,81,18,158,17,116,17,242,15,45,13,201,10,188,8, +176,7,186,4,78,2,136,1,238,254,186,252,25,252,141,251,84,251,17,250,133,248,175,247,167,247,231,246,120,245,115,245, +151,244,212,243,146,242,194,242,232,242,33,241,167,242,174,242,33,242,230,242,177,242,59,243,129,243,37,245,208,245,172,245, +85,247,193,247,158,247,12,248,157,249,72,250,147,250,39,253,13,254,1,254,108,0,132,0,141,0,164,1,180,1,195,3, +184,3,243,3,184,4,171,4,41,5,119,5,80,5,44,5,7,5,145,5,238,5,229,4,162,6,167,6,193,6,216,5, +53,5,171,5,243,4,252,4,240,3,34,4,164,1,72,1,254,0,144,0,134,0,82,254,209,254,84,254,63,255,204,254, +219,253,225,254,29,254,122,253,218,252,97,252,144,250,125,249,192,248,186,246,232,246,110,246,104,245,79,245,12,245,169,243, +1,243,137,243,235,241,116,240,82,240,102,239,132,239,224,239,140,239,35,240,30,240,248,239,209,239,74,241,173,241,173,241, +30,243,27,243,76,243,134,243,24,243,126,243,151,244,239,245,162,247,201,247,119,248,236,248,216,250,124,252,77,252,129,252, +155,253,148,255,210,255,77,1,35,2,177,1,223,2,197,4,26,5,176,4,7,5,194,6,98,6,46,6,152,6,121,6, +150,6,211,4,93,6,63,6,90,4,154,4,100,4,244,3,192,2,108,2,185,3,172,2,136,2,184,1,228,0,39,1, +138,255,142,254,117,253,82,253,19,252,51,252,123,250,27,250,180,250,121,249,32,248,81,247,47,247,107,245,1,245,179,242, +19,243,3,242,109,241,191,241,177,239,101,239,173,239,174,239,13,239,169,238,66,237,205,237,65,237,76,235,59,235,130,235, +151,234,46,234,204,234,175,234,83,232,84,232,235,232,8,232,247,231,110,231,161,231,176,231,234,233,185,234,177,236,65,238, +83,237,255,239,31,242,178,242,245,242,103,243,167,244,125,243,136,244,64,246,46,246,246,247,26,248,233,247,72,248,229,248, +65,247,162,247,178,247,100,247,179,248,78,247,127,247,141,247,214,247,127,248,133,248,90,250,156,251,155,251,248,252,110,253, +158,254,19,255,209,255,34,0,88,0,239,1,180,2,227,2,210,2,96,5,41,6,66,6,107,6,12,8,184,8,127,8, +188,9,242,9,250,9,61,12,3,13,48,13,235,15,22,16,75,16,46,17,228,18,109,18,255,19,224,19,125,19,116,20, +130,19,147,21,6,21,146,19,40,19,178,19,129,19,37,18,36,17,202,15,198,12,249,10,47,8,126,6,86,4,105,1, +210,0,252,253,22,252,154,251,186,251,146,250,85,250,200,248,15,248,146,247,10,246,176,245,127,245,23,245,148,244,53,245, +107,244,230,242,144,242,36,243,126,241,109,241,105,241,103,241,34,241,161,241,118,241,24,241,60,242,206,241,175,243,47,245, +209,246,187,247,3,249,190,249,107,250,218,252,31,1,67,2,116,1,172,2,161,1,188,2,175,2,86,1,60,1,250,0, +184,0,29,1,13,1,137,0,26,2,109,2,171,1,48,1,74,0,23,0,108,254,91,251,56,249,204,248,142,246,203,245, +9,246,84,244,179,243,68,243,176,243,165,241,172,243,37,244,204,243,118,244,160,243,157,244,110,244,225,246,28,246,181,247, +239,249,62,250,31,252,202,253,10,255,98,0,73,1,7,2,210,3,92,3,244,4,93,6,175,6,118,7,106,9,160,10, +185,10,251,10,89,11,224,12,117,13,113,13,10,14,65,14,133,13,118,12,154,11,227,11,87,10,5,9,49,9,234,6, +123,6,191,6,231,3,200,5,54,4,174,2,85,3,209,0,93,1,231,255,154,254,62,252,149,252,2,252,174,250,2,251, +249,248,62,249,212,249,176,248,74,248,169,248,55,246,119,246,178,246,193,246,120,246,43,246,21,248,249,247,43,248,48,248, +235,247,100,249,180,249,81,249,134,251,7,251,188,251,172,252,73,252,102,254,50,255,41,0,179,0,210,0,192,0,72,1, +79,1,37,1,225,2,114,2,163,0,62,0,200,1,55,2,7,2,46,2,77,2,10,2,205,0,164,1,145,0,136,0, +5,0,150,254,218,254,97,253,101,253,236,252,236,252,180,252,34,253,15,253,42,251,43,251,9,251,97,251,92,251,137,251, +76,251,115,250,151,250,222,249,30,250,77,248,17,247,105,247,116,245,18,245,76,243,161,243,167,243,130,242,190,243,101,243, +163,243,28,243,177,243,28,245,128,245,103,246,8,246,96,246,254,247,129,248,206,248,0,249,74,250,115,250,36,250,97,250, +217,249,35,250,86,251,61,253,105,253,136,255,63,0,248,0,97,3,227,3,112,5,218,5,119,6,130,6,225,7,123,8, +42,8,229,8,80,9,115,11,88,11,171,11,78,11,66,11,205,11,201,9,68,10,24,9,29,7,187,7,171,6,25,5, +59,5,8,5,230,3,33,2,24,2,193,1,96,0,187,0,3,254,234,251,149,250,103,248,121,247,144,244,11,243,135,241, +15,240,142,239,143,237,147,237,230,237,217,237,190,237,72,238,206,237,34,238,179,239,130,240,49,243,18,242,74,243,133,245, +206,244,222,245,194,247,239,247,111,248,167,250,123,250,124,251,57,252,244,253,63,254,49,254,79,254,204,254,236,0,244,254, +200,254,151,0,245,255,197,254,77,0,245,1,143,1,207,1,104,3,6,2,177,2,24,4,106,3,195,3,32,3,203,3, +255,3,187,4,9,4,198,3,210,3,184,3,8,4,43,2,206,1,24,2,158,1,173,0,201,0,67,0,132,255,78,0, +102,255,86,255,2,0,22,255,239,254,218,254,37,255,250,254,196,253,217,251,211,251,43,251,52,249,79,249,198,247,228,245, +213,245,182,245,168,244,140,244,115,244,167,244,253,244,243,244,125,244,141,244,111,244,156,244,68,243,126,242,221,241,122,239, +205,241,226,238,111,236,211,236,127,235,84,234,157,230,63,230,10,230,142,228,92,227,202,225,37,226,14,226,98,225,134,225, +96,225,210,225,146,225,73,226,100,227,10,228,153,228,47,230,132,231,91,231,44,231,23,233,127,234,112,234,176,236,59,237, +49,240,85,242,66,242,99,243,136,245,181,246,67,248,163,249,37,251,246,252,1,254,60,2,39,3,119,5,171,6,172,7, +59,9,150,10,4,13,32,14,201,16,248,18,92,19,51,20,44,22,55,20,63,20,30,20,18,20,78,18,201,15,95,16, +196,15,183,15,201,15,225,15,236,15,95,16,149,15,10,16,37,15,72,13,9,13,131,12,226,11,103,12,106,12,227,10, +116,10,70,10,199,8,244,8,101,8,224,6,237,7,61,6,220,5,18,6,181,5,223,5,248,5,10,6,184,5,47,6, +241,5,141,5,174,5,197,4,238,4,123,4,193,2,70,4,96,2,112,2,173,3,30,3,232,2,235,2,19,3,170,2, +102,3,56,1,187,1,77,3,134,1,198,0,91,1,27,1,29,1,194,0,79,1,157,0,169,0,187,0,57,0,4,3, +94,2,211,0,167,0,101,1,200,0,92,1,218,2,18,1,72,1,18,1,104,255,161,255,251,253,148,253,213,251,149,250, +208,250,234,248,6,249,240,247,211,248,39,248,251,246,242,246,197,249,56,249,111,247,85,249,125,247,86,249,96,249,209,248, +212,249,54,249,105,249,138,249,246,247,7,248,173,247,148,246,197,245,187,245,171,247,204,247,90,248,166,246,213,245,123,247, +43,248,10,248,59,248,220,247,18,248,97,248,137,248,176,248,82,250,168,251,161,251,25,253,99,253,237,254,86,255,235,255, +239,255,4,2,80,2,167,1,110,2,208,255,102,0,216,255,90,255,80,255,238,253,50,253,186,250,195,248,34,249,224,248, +115,248,85,246,11,246,77,246,233,245,204,247,179,247,104,248,3,248,25,248,224,248,236,248,89,249,97,248,25,248,246,248, +85,249,166,248,10,249,185,250,169,250,217,250,24,252,187,253,185,253,155,253,209,255,201,255,29,0,192,255,201,255,197,255, +176,255,173,255,144,255,157,0,190,0,8,2,76,2,147,2,190,3,233,4,226,4,133,5,25,5,50,5,210,4,158,2, +217,1,205,255,3,0,100,253,253,250,50,251,129,248,226,248,192,248,78,248,62,248,130,246,133,247,184,246,76,246,146,245, +187,244,9,246,46,244,100,243,158,244,119,243,13,243,70,243,211,242,226,244,129,244,123,245,155,245,237,244,106,247,209,246, +6,246,29,247,251,247,133,247,60,248,188,248,113,249,82,251,162,252,221,251,141,252,1,254,115,254,234,253,98,254,18,0, +255,253,146,254,99,254,78,254,22,255,159,254,79,255,91,255,88,255,110,254,111,255,252,0,200,0,174,0,229,0,111,0, +48,0,60,255,236,252,93,250,244,248,64,247,107,246,222,246,165,244,156,244,228,244,199,243,102,243,32,243,241,243,3,243, +76,243,239,243,186,243,97,245,63,245,64,246,252,247,33,249,20,251,4,252,121,253,110,254,37,0,24,1,234,0,4,3, +156,3,199,3,12,5,138,6,88,8,25,8,211,8,10,11,228,10,136,10,229,10,123,11,219,11,171,11,90,11,177,11, +134,13,175,11,83,10,172,10,237,8,215,7,44,7,215,7,170,5,156,4,158,4,207,2,167,3,65,3,68,2,95,2, +158,0,117,255,208,255,84,253,194,251,219,251,210,250,5,250,91,250,2,250,250,247,104,248,57,248,132,245,41,244,187,242, +174,242,241,241,255,239,177,240,92,240,189,240,125,240,110,240,146,240,171,240,196,242,21,242,218,241,52,242,4,242,171,241, +246,242,30,245,3,246,29,246,48,246,21,248,156,247,121,247,30,249,56,250,172,250,183,251,224,253,19,254,49,254,158,255, +107,0,137,0,113,1,229,1,34,2,138,2,182,3,49,4,147,4,7,5,144,4,206,6,97,7,96,8,14,10,148,10, +101,10,90,11,197,12,111,11,91,12,92,11,134,10,54,11,196,10,0,10,111,9,181,7,180,6,10,7,211,4,73,5, +23,4,7,2,118,1,138,255,218,254,177,252,199,251,144,251,57,249,97,249,33,248,21,248,26,248,189,245,34,246,111,245, +136,245,75,244,21,242,24,241,181,240,102,240,117,239,54,238,115,238,200,238,164,236,126,236,38,237,36,239,223,239,222,241, +205,244,132,245,94,247,158,248,150,250,155,253,97,255,141,255,74,0,119,2,240,2,230,2,126,5,197,5,191,6,148,8, +3,10,19,12,159,12,218,14,107,15,200,16,165,18,41,18,115,19,166,19,234,20,71,21,245,18,156,21,13,21,117,19, +10,21,74,19,126,18,136,18,243,17,223,15,246,15,241,15,182,14,5,15,221,12,229,11,229,9,159,7,34,6,54,4, +73,3,127,1,77,0,161,255,56,0,9,254,223,251,171,251,126,250,106,250,172,250,10,250,149,248,149,248,74,248,104,248, +214,247,18,248,158,247,48,247,168,247,192,245,62,246,112,245,249,245,160,247,230,245,26,246,29,247,184,245,72,245,6,245, +254,243,5,244,99,244,13,244,174,244,178,244,166,243,176,245,24,245,31,244,114,244,50,244,149,244,200,244,221,244,214,244, +184,244,189,244,134,244,194,242,118,242,182,241,108,241,190,241,145,241,107,241,167,241,171,241,138,241,138,241,184,241,172,242, +147,241,167,241,13,242,30,242,212,239,18,239,243,238,202,237,223,238,156,237,16,239,141,239,199,239,112,240,49,240,110,242, +126,242,68,243,127,243,175,243,222,245,165,245,112,246,182,246,116,246,186,248,227,248,208,249,60,251,248,251,134,254,188,255, +17,1,246,2,29,4,157,5,163,6,145,6,26,7,137,8,16,9,102,9,145,9,240,8,85,9,142,11,238,11,119,12, +110,14,3,13,82,12,26,13,127,11,221,9,234,8,180,6,45,4,176,2,117,1,214,0,108,0,159,255,8,0,159,255, +217,255,231,255,12,254,90,254,40,254,242,251,154,250,81,251,55,250,138,250,6,250,189,248,172,249,181,248,159,250,190,250, +0,251,90,251,5,252,65,254,23,254,245,0,74,2,244,1,105,3,115,4,204,5,255,5,187,5,220,7,230,7,237,7, +87,8,239,7,222,8,178,8,70,9,95,8,19,8,186,8,73,7,130,7,152,7,137,5,54,5,219,4,74,3,117,3, +111,2,78,0,177,0,227,255,75,253,67,253,58,251,167,249,225,249,16,248,116,246,183,244,5,244,49,244,197,243,249,242, +201,242,14,243,240,242,109,241,109,240,23,240,109,239,222,238,113,238,243,238,14,239,198,240,248,240,114,240,94,241,121,241, +47,242,155,241,180,240,69,241,220,241,26,242,169,243,224,243,207,243,67,244,211,244,16,245,50,245,133,247,68,247,171,248, +171,250,15,251,140,251,14,251,132,251,120,250,165,250,208,251,72,250,81,248,63,248,197,246,190,244,40,244,178,242,43,241, +158,239,157,239,77,239,145,238,164,238,129,237,13,238,196,237,235,235,145,235,214,234,35,234,232,233,125,234,9,234,25,234, +90,233,7,232,192,233,128,234,145,234,215,234,159,236,194,236,219,236,79,237,40,238,136,240,74,240,182,241,122,241,27,242, +209,243,52,244,85,245,113,245,19,246,100,247,202,248,247,248,36,251,218,251,76,252,205,253,186,254,245,0,103,0,215,0, +14,3,204,3,73,4,23,6,140,6,153,6,229,7,197,7,243,7,184,7,204,7,88,7,135,5,189,5,160,5,80,4, +245,2,88,2,175,2,124,1,34,0,190,255,205,255,98,255,152,255,207,255,97,255,93,255,206,254,35,255,216,254,29,255, +30,255,219,254,178,254,2,253,131,251,159,250,58,250,237,248,38,248,95,247,15,248,216,247,111,248,77,250,8,250,60,251, +143,251,52,253,150,253,54,254,72,0,37,0,204,1,83,2,45,3,156,5,59,6,40,8,147,9,219,9,104,12,152,12, +249,13,90,15,16,15,52,17,217,16,47,17,177,17,15,17,82,17,7,17,111,17,253,17,129,18,79,18,51,18,119,18, +209,17,218,17,254,16,22,17,247,16,62,15,148,15,71,14,190,14,126,14,235,11,46,12,72,11,209,9,142,8,171,7, +58,7,208,5,58,5,84,5,241,2,41,2,5,2,132,0,153,255,223,253,134,253,207,252,95,252,173,250,140,249,133,249, +166,247,82,247,169,246,220,246,160,246,202,244,194,244,219,244,139,244,180,244,119,244,193,243,218,241,77,241,26,241,86,240, +134,241,114,241,91,240,68,240,123,240,64,237,133,235,234,235,224,234,218,234,56,233,36,233,51,233,64,233,207,234,213,234, +14,236,240,237,37,239,130,240,26,241,20,242,190,242,176,241,117,242,244,243,225,243,10,245,220,246,208,246,143,247,244,249, +127,252,193,253,58,255,62,0,249,0,4,3,6,4,204,7,0,8,241,7,252,10,255,10,141,12,173,12,82,13,198,13, +85,13,226,13,20,14,134,14,56,13,147,13,125,13,125,11,225,11,208,11,37,11,170,10,217,8,9,8,167,7,38,6, +7,4,186,2,250,0,212,255,46,255,36,253,189,250,172,247,2,247,242,244,131,243,56,244,18,242,35,241,44,241,144,239, +255,237,3,238,114,238,75,238,64,237,10,237,91,236,81,236,228,236,145,236,226,236,233,236,240,237,183,237,131,238,99,239, +228,239,198,241,210,241,6,244,103,245,195,244,251,247,223,249,127,250,135,253,57,253,78,254,10,1,155,0,67,1,8,2, +8,3,170,3,135,3,45,5,92,5,245,4,68,5,207,4,131,5,51,5,246,4,180,4,175,4,80,5,237,4,27,5, +13,5,207,4,244,2,0,3,54,3,137,2,6,2,219,255,139,255,206,255,191,255,225,253,19,253,9,253,235,250,77,250, +89,250,71,248,72,248,176,248,91,247,185,248,82,247,89,248,232,249,252,247,118,249,223,248,19,249,88,250,126,249,212,249, +160,249,208,250,142,252,218,252,119,253,229,253,110,255,3,0,255,255,159,255,226,255,222,1,67,1,2,1,149,1,136,1, +127,1,11,2,206,2,200,3,215,4,200,4,192,5,110,7,142,7,23,7,72,8,131,8,111,8,91,8,60,8,37,10, +81,10,123,8,161,8,131,8,126,8,76,9,135,7,92,8,65,8,213,6,45,7,10,6,111,6,106,6,160,4,207,3, +223,3,110,1,53,0,231,255,218,254,83,254,79,252,241,251,35,251,146,250,135,250,165,248,2,248,70,248,62,248,242,246, +215,244,164,244,22,244,230,242,180,240,77,238,199,237,203,235,213,234,33,234,142,233,27,234,34,234,61,234,45,234,175,234, +175,235,74,236,154,236,179,238,163,238,131,238,186,239,217,239,70,241,6,241,213,241,188,243,11,244,40,245,123,246,35,248, +216,249,64,251,131,252,20,254,120,0,235,255,144,0,140,2,237,2,129,5,39,6,107,6,230,7,111,9,144,10,49,11, +24,11,219,10,243,12,138,13,213,12,180,11,24,11,113,11,37,11,124,9,67,9,47,9,246,7,163,7,200,5,142,5, +46,5,42,4,243,2,230,1,132,1,180,255,168,255,165,255,184,253,239,250,104,250,233,249,35,248,253,247,41,246,62,244, +94,244,39,244,41,244,46,244,229,243,148,242,116,242,37,244,164,242,65,242,232,242,116,241,26,240,101,239,231,239,101,239, +233,238,50,240,53,240,131,240,133,242,146,242,104,242,188,242,122,243,246,243,217,244,175,245,151,245,126,247,200,247,38,248, +255,248,210,249,130,251,241,252,175,254,163,255,77,0,119,1,71,3,129,4,68,5,221,5,238,7,241,8,69,9,110,10, +159,10,61,11,240,11,58,13,199,13,205,12,129,11,153,12,156,11,102,10,62,11,124,9,67,9,178,8,176,8,2,8, +105,5,243,4,200,4,24,4,2,2,150,255,131,255,68,255,247,252,95,252,180,250,123,247,51,247,51,246,210,243,217,241, +123,240,37,239,224,236,129,236,122,236,155,236,95,236,183,235,111,236,2,236,90,236,23,236,44,236,60,236,66,236,94,238, +125,238,250,238,35,241,125,242,41,242,61,245,118,246,231,246,106,249,192,250,104,252,245,253,87,255,201,255,170,1,67,3, +190,4,72,5,241,4,44,6,22,6,33,8,85,8,24,8,126,8,21,8,199,8,63,8,212,8,158,8,208,8,201,8, +206,8,188,8,59,8,0,9,123,8,242,5,113,5,178,3,228,2,62,2,200,0,64,0,147,254,101,253,76,253,80,251, +60,251,126,250,245,249,202,248,241,247,87,248,152,247,82,247,228,247,150,247,154,247,117,247,177,247,124,247,211,249,203,250, +196,250,213,252,180,252,133,253,164,253,101,255,164,255,152,255,40,1,182,1,81,2,216,2,178,2,221,4,209,5,30,6, +229,5,44,8,218,7,92,8,16,8,105,8,103,8,177,8,25,8,227,8,104,8,47,7,227,7,107,6,81,6,157,6, +185,5,102,5,49,5,106,3,131,3,38,3,252,2,213,2,45,2,211,1,115,1,193,255,246,255,104,255,212,255,154,253, +33,254,189,253,8,254,223,252,61,253,8,253,181,252,221,252,178,250,219,250,0,251,157,250,247,249,199,249,250,249,179,249, +218,249,207,249,234,247,61,248,1,248,34,248,200,247,245,247,213,247,142,247,15,248,234,249,233,247,192,247,199,247,182,247, +152,247,203,247,83,249,193,249,98,249,121,249,166,250,217,250,215,250,254,250,53,251,248,250,45,251,184,250,219,250,18,251, +181,250,48,251,210,252,225,252,69,253,221,253,248,253,176,253,12,254,235,253,5,254,16,254,242,253,151,255,19,0,98,0, +27,0,39,0,18,2,2,2,147,2,78,3,225,2,166,4,227,2,12,3,220,2,90,2,46,2,41,0,48,0,30,0, +250,255,244,253,105,252,8,253,82,252,215,250,236,250,229,249,44,250,246,249,12,250,96,250,49,249,29,249,231,247,190,248, +27,248,29,248,122,249,231,248,81,248,202,247,63,249,138,248,172,249,165,248,32,248,59,248,255,245,29,246,63,246,56,246, +208,245,60,246,252,244,43,246,161,246,109,245,247,245,56,246,16,246,11,247,211,247,137,245,230,245,175,245,206,244,188,244, +221,244,158,244,33,246,239,245,2,246,65,248,138,245,108,248,218,247,164,245,117,247,93,245,101,245,190,245,233,244,98,245, +252,244,56,245,153,247,75,245,219,245,213,247,127,247,245,247,66,247,85,248,153,248,243,248,16,249,14,249,61,249,254,248, +54,250,48,250,63,251,120,253,100,253,57,253,21,254,92,254,122,0,28,0,255,255,38,0,234,255,2,2,185,1,68,2, +147,2,70,2,71,2,50,1,1,0,116,255,127,255,17,254,160,250,244,249,86,249,83,249,236,248,192,248,105,248,7,248, +54,248,100,248,118,248,251,247,15,248,148,246,244,245,48,248,6,248,238,247,205,247,233,247,238,248,143,248,108,249,187,249, +218,249,136,249,234,250,224,252,16,253,240,253,85,0,130,0,41,0,165,1,35,5,212,4,18,5,33,7,151,9,145,10, +26,11,225,11,130,11,149,12,232,12,24,13,15,15,7,15,228,14,147,16,93,16,131,16,90,16,111,16,28,16,169,14, +88,13,34,13,103,12,157,11,197,10,241,10,230,9,121,9,12,8,8,8,221,6,12,5,220,4,255,2,65,3,210,2, +159,1,37,2,167,255,221,255,24,0,122,253,165,253,153,253,44,253,162,252,211,252,74,250,169,249,61,250,104,249,116,249, +134,249,210,249,240,250,190,250,43,251,33,251,116,251,161,250,160,250,251,250,222,250,104,250,172,250,134,250,246,250,1,253, +8,253,88,253,9,253,199,253,47,254,243,253,95,254,138,255,81,0,51,0,241,255,63,0,13,0,125,0,16,0,252,255, +34,0,244,255,144,255,23,0,5,0,4,0,45,0,238,255,232,255,32,0,189,255,177,255,178,255,193,255,46,0,63,0, +243,255,56,0,105,0,21,0,57,0,85,254,230,253,107,253,241,252,73,251,53,251,13,251,5,250,251,249,10,249,231,248, +247,247,50,248,196,247,216,247,156,247,79,246,149,247,35,246,214,245,65,246,189,245,45,246,184,245,171,245,243,245,244,245, +12,246,185,245,253,245,63,246,24,246,12,246,158,245,147,246,147,245,9,246,14,246,135,245,192,247,194,247,243,247,209,247, +28,248,249,248,53,249,28,251,73,251,199,250,144,251,130,250,7,251,1,251,103,250,32,251,176,250,183,250,213,250,153,252, +153,252,99,253,131,253,111,253,167,255,32,255,176,255,115,255,84,255,146,255,142,255,136,255,200,255,57,0,255,255,182,0, +51,0,169,0,115,0,87,0,115,0,149,0,73,2,70,2,191,2,191,2,221,2,145,2,185,3,29,4,154,3,14,4, +8,4,44,4,254,3,93,3,235,2,110,2,141,2,250,1,8,0,33,0,238,255,28,0,135,255,62,0,162,255,186,255, +34,0,215,255,39,0,247,255,243,255,96,254,77,254,113,253,73,253,68,253,68,253,196,252,190,252,6,253,212,252,78,252, +40,251,152,250,244,250,141,252,193,250,234,250,232,250,208,250,69,251,199,250,135,251,75,251,245,250,63,251,49,251,61,251, +30,249,35,251,67,249,12,249,6,251,4,249,16,251,37,249,79,249,12,249,29,251,218,250,227,250,203,252,168,252,200,252, +179,253,194,253,202,253,188,253,207,253,200,253,212,253,230,253,248,253,118,253,234,253,167,255,9,254,176,255,197,255,236,253, +49,254,180,255,0,254,204,255,204,255,243,253,243,253,242,253,254,253,181,253,254,253,48,254,228,253,31,254,40,254,15,254, +91,254,78,253,87,253,117,253,66,253,142,251,113,251,147,253,77,253,38,253,49,254,35,254,94,254,54,0,112,0,254,253, +74,0,241,255,226,255,69,0,7,0,7,0,16,0,251,255,255,253,25,254,38,254,35,254,53,254,12,254,29,254,209,253, +9,254,201,253,164,253,211,252,146,252,234,252,159,250,188,250,198,250,209,250,35,249,186,248,42,249,214,247,24,248,14,248, +45,247,70,247,10,247,12,247,244,246,217,246,252,247,224,247, +}; \ No newline at end of file diff --git a/src/client/sound/data/fallbig1.pcm b/src/client/sound/data/fallbig1.pcm new file mode 100755 index 0000000..f80f410 --- /dev/null +++ b/src/client/sound/data/fallbig1.pcm @@ -0,0 +1,2198 @@ +unsigned char PCM_fallbig1[70260] = { +1,0,0,0,2,0,0,0,68,172,0,0,50,137,0,0,3,1,148,2,163,4,91,4,237,0,236,253,100,254,242,0, +198,2,217,2,103,1,107,255,64,254,90,254,130,255,161,1,124,3,48,3,49,1,143,255,171,254,49,254,0,255,213,0, +149,1,202,0,27,0,23,0,254,255,141,255,249,254,184,254,111,255,142,0,175,0,14,0,216,255,166,255,235,254,225,254, +56,0,103,1,36,1,234,255,167,254,242,253,7,254,131,254,249,254,134,255,237,255,128,255,132,254,3,254,62,254,178,254, +18,255,42,255,196,254,22,254,168,253,205,253,111,254,16,255,26,255,130,254,198,253,88,253,90,253,154,253,188,253,154,253, +88,253,8,253,210,252,17,253,155,253,197,253,118,253,49,253,11,253,209,252,177,252,222,252,62,253,146,253,116,253,184,252, +21,252,62,252,182,252,211,252,228,252,41,253,43,253,219,252,198,252,8,253,65,253,58,253,241,252,156,252,152,252,193,252, +148,252,48,252,26,252,74,252,126,252,214,252,71,253,105,253,46,253,238,252,202,252,177,252,168,252,171,252,163,252,141,252, +113,252,97,252,125,252,179,252,192,252,148,252,100,252,91,252,112,252,142,252,161,252,154,252,122,252,79,252,47,252,58,252, +115,252,188,252,242,252,250,252,207,252,144,252,103,252,92,252,100,252,120,252,138,252,145,252,154,252,172,252,197,252,244,252, +78,253,181,253,253,253,17,254,242,253,172,253,100,253,55,253,39,253,54,253,93,253,114,253,92,253,65,253,77,253,130,253, +208,253,24,254,61,254,56,254,24,254,227,253,176,253,165,253,197,253,224,253,224,253,211,253,209,253,229,253,9,254,41,254, +61,254,77,254,95,254,113,254,133,254,147,254,135,254,94,254,56,254,60,254,116,254,188,254,223,254,210,254,167,254,128,254, +127,254,185,254,18,255,83,255,88,255,41,255,0,255,26,255,117,255,207,255,7,0,39,0,34,0,244,255,202,255,206,255, +254,255,62,0,95,0,61,0,10,0,12,0,39,0,43,0,48,0,72,0,76,0,58,0,44,0,39,0,66,0,148,0, +230,0,19,1,87,1,183,1,218,1,172,1,113,1,81,1,105,1,205,1,26,2,239,1,154,1,150,1,243,1,159,2, +84,3,135,3,36,3,198,2,169,2,133,2,98,2,128,2,208,2,46,3,138,3,147,3,76,3,84,3,247,3,195,4, +33,5,184,4,209,3,106,3,233,3,125,4,188,4,64,5,11,6,114,6,150,6,223,6,251,6,240,6,79,7,211,7, +215,7,196,7,17,8,104,8,241,8,46,10,94,11,125,11,10,11,226,10,248,10,66,11,253,11,227,12,190,13,185,14, +81,15,226,14,82,14,236,14,16,16,73,16,177,15,61,15,228,14,37,14,92,13,250,12,112,12,51,11,12,10,210,9, +239,9,177,9,149,9,184,9,16,9,147,7,180,6,12,7,157,7,123,7,138,6,102,5,8,5,89,5,32,5,142,4, +63,5,169,6,132,6,249,4,39,4,78,4,144,4,37,5,131,5,5,4,150,1,22,1,55,2,211,1,92,255,62,253, +183,252,250,252,89,253,193,253,48,254,164,254,120,254,175,252,10,250,232,248,223,249,241,250,238,250,166,250,125,250,245,249, +103,249,77,249,211,248,134,247,85,246,118,245,84,244,224,243,43,245,180,246,9,247,106,247,32,248,237,246,174,244,228,245, +82,250,124,251,169,246,89,241,68,241,132,245,81,249,113,249,233,246,71,244,60,242,194,240,52,241,206,244,70,248,255,246, +99,242,185,239,69,240,227,241,235,243,153,245,130,244,81,241,53,240,0,242,85,243,74,243,210,243,185,244,141,244,52,244, +211,244,122,245,138,245,101,245,161,244,181,243,37,245,193,248,253,249,195,246,223,242,26,242,247,243,2,246,29,246,34,244, +244,242,217,242,217,235,253,215,12,193,131,182,98,185,101,193,155,207,227,232,118,5,183,25,161,38,233,47,148,46,102,30, +99,9,6,247,45,226,40,203,37,190,217,190,21,197,83,209,140,234,74,7,87,20,204,15,237,4,135,245,169,222,238,198, +10,180,48,163,2,154,172,167,189,201,226,233,33,254,156,16,10,37,81,50,218,54,71,59,212,66,225,73,129,77,60,74, +26,62,243,48,191,45,62,51,74,55,41,53,198,46,31,40,155,39,180,47,155,54,199,48,61,33,27,19,252,9,87,3, +190,253,47,247,173,237,223,226,166,214,250,197,25,184,57,189,173,213,69,237,87,247,121,250,183,252,68,251,59,246,79,239, +201,224,172,199,45,174,31,158,3,149,255,142,253,142,227,149,63,159,145,167,78,174,148,182,193,199,2,228,108,252,79,253, +62,232,244,210,3,204,15,207,244,211,86,219,20,233,170,250,34,7,10,8,93,1,28,253,51,255,136,4,176,12,132,25, +7,39,106,48,213,55,221,59,109,48,97,18,164,243,169,227,155,220,64,213,187,209,189,214,85,222,44,226,201,227,175,231, +83,240,171,252,245,9,144,25,237,45,210,61,12,58,219,36,23,16,78,1,142,239,70,222,223,223,143,248,218,19,210,29, +199,24,0,19,0,17,186,13,206,11,175,21,55,43,108,64,241,79,183,93,90,106,64,116,222,124,255,127,198,116,16,95, +39,75,180,55,117,29,133,6,213,1,48,10,13,19,152,30,246,48,140,63,138,63,129,53,31,42,62,29,193,12,90,253, +36,245,12,244,57,247,58,255,219,12,253,27,49,40,164,49,232,55,113,55,75,48,139,37,13,22,172,1,16,241,28,235, +49,234,136,230,90,224,149,217,233,209,168,202,52,197,84,194,6,199,201,214,55,234,214,248,86,4,116,13,23,13,253,2, +78,248,144,238,76,224,177,208,189,198,61,192,207,185,211,184,40,192,196,199,148,198,151,188,155,176,28,166,110,154,94,143, +54,146,241,168,18,191,94,188,202,166,106,149,189,142,100,139,13,139,151,146,64,160,172,172,107,178,97,177,122,171,11,160, +124,144,67,133,82,131,248,131,34,130,174,131,157,140,31,151,20,158,227,162,193,167,123,173,171,179,137,181,225,173,11,161, +207,152,58,150,127,147,182,144,166,145,57,149,103,154,97,163,3,174,201,183,218,199,255,226,161,253,131,11,110,17,110,26, +129,40,251,53,239,59,118,55,247,44,109,33,45,19,76,1,128,243,190,241,14,250,13,5,106,15,24,26,79,37,184,48, +30,61,145,71,139,71,200,58,54,45,172,42,53,47,235,48,231,49,118,57,60,66,111,65,31,58,90,53,88,48,218,38, +24,32,156,31,231,30,77,32,107,45,42,65,214,76,154,76,254,69,6,62,43,55,73,47,189,35,110,25,30,22,98,24, +74,30,2,39,250,45,55,49,115,51,140,50,134,42,98,30,61,19,87,13,14,16,50,20,179,13,59,1,97,252,54,254, +160,255,215,2,107,10,176,18,255,22,137,19,124,10,109,4,121,1,195,251,11,248,66,251,205,254,214,255,149,3,25,7, +17,5,38,2,104,1,45,0,203,0,28,5,152,9,202,15,89,25,86,30,242,27,193,25,30,23,64,13,249,0,18,252, +18,0,138,9,197,19,152,27,136,35,25,43,118,42,26,34,222,27,188,23,154,14,192,3,204,255,235,3,88,11,131,16, +12,18,220,20,40,26,229,27,246,26,181,31,251,39,231,39,168,28,25,15,160,5,52,254,53,247,255,245,38,253,85,5, +198,10,139,19,100,31,192,36,128,31,50,18,171,2,158,250,124,249,228,242,234,234,124,242,254,4,115,20,123,34,156,40, +56,24,217,2,248,1,202,4,36,246,158,232,66,238,238,253,229,16,75,37,245,48,94,49,198,42,215,24,163,255,27,242, +205,247,226,9,93,29,244,30,141,9,244,249,57,2,33,13,39,11,23,6,17,3,121,3,63,13,58,23,77,22,56,24, +51,39,199,52,92,57,228,57,222,49,125,33,57,22,195,17,186,13,127,13,219,12,75,255,49,237,154,231,113,235,104,243, +124,5,247,27,226,39,75,42,89,44,188,44,47,39,206,29,205,21,39,19,35,21,127,23,34,25,42,27,240,27,88,26, +110,23,159,20,203,20,180,22,67,19,194,12,13,14,149,21,42,27,125,33,35,41,215,42,164,41,194,41,222,32,36,15, +19,8,104,15,139,22,149,26,134,30,22,29,218,23,162,22,185,22,219,22,139,31,219,44,155,47,102,41,37,39,218,39, +24,36,2,31,235,27,193,20,184,8,106,3,61,10,194,19,48,26,250,34,9,46,145,51,176,51,45,51,214,47,214,40, +2,36,197,33,210,28,23,22,3,19,109,21,157,26,69,28,150,22,15,15,171,11,119,9,101,5,74,1,77,252,167,245, +16,242,195,242,177,243,169,246,165,255,114,9,194,13,246,15,107,20,88,23,177,19,45,11,82,3,20,255,67,253,0,251, +223,246,170,242,147,240,41,238,177,231,17,224,61,220,146,218,237,217,185,223,9,236,116,245,101,247,198,245,50,243,65,240, +127,238,16,238,226,239,1,246,61,251,92,247,204,238,58,237,118,242,227,245,232,246,163,250,86,255,20,254,253,245,60,237, +26,231,45,224,101,214,34,206,26,204,186,207,82,213,168,217,177,219,114,221,105,225,189,229,216,229,223,225,175,222,164,221, +138,219,232,216,223,218,251,225,216,232,85,237,232,241,141,245,207,244,141,242,118,243,54,241,207,224,201,198,148,181,82,181, +227,188,193,197,231,212,254,233,17,247,11,243,13,231,253,223,104,222,168,221,186,223,63,231,72,238,196,237,118,232,201,229, +128,230,120,230,64,229,43,229,30,229,212,226,41,225,10,229,45,237,23,243,241,243,159,242,19,241,169,237,154,232,139,230, +126,234,178,240,247,242,80,240,138,237,236,238,137,243,2,247,168,246,193,243,120,240,0,236,112,228,25,220,39,217,50,222, +224,230,97,238,53,245,46,253,207,3,177,5,113,4,43,4,79,5,20,6,146,7,201,11,8,16,29,15,184,8,173,1, +18,253,205,249,85,247,38,248,178,253,155,4,68,7,157,3,160,253,175,251,8,0,64,6,100,8,225,5,97,3,79,4, +64,7,106,9,226,10,173,13,216,17,61,20,140,17,124,10,86,4,37,4,46,9,194,13,221,13,243,10,115,8,59,7, +107,6,139,6,31,9,245,13,21,19,124,22,67,22,192,16,52,7,62,255,136,255,113,7,32,15,197,16,64,13,252,7, +32,3,114,255,36,253,185,252,188,254,15,2,139,4,29,6,238,8,173,13,26,18,142,20,86,22,137,24,153,25,95,24, +249,21,243,18,52,14,56,7,177,255,104,252,223,1,146,12,248,18,240,18,69,19,107,22,228,23,71,22,200,20,12,21, +68,22,148,23,197,24,69,25,110,22,192,14,149,7,106,7,243,11,166,14,197,12,44,5,85,250,8,247,249,1,49,18, +202,28,143,34,69,38,104,35,130,22,211,6,140,2,140,15,49,34,75,43,130,42,155,39,157,35,40,29,126,24,9,27, +191,37,158,50,101,54,242,44,252,30,191,19,100,10,1,5,151,7,14,14,197,18,111,22,97,25,26,26,206,26,157,29, +49,33,236,36,62,40,201,41,230,43,237,48,251,52,119,52,76,48,191,40,80,32,192,29,84,32,9,32,122,29,151,30, +230,31,42,28,226,24,152,29,142,42,197,59,185,71,87,62,236,24,7,233,28,203,14,205,200,235,11,31,27,84,246,107, +17,92,104,65,185,57,144,65,61,72,80,67,93,42,44,2,222,225,94,215,84,225,103,3,240,52,188,81,100,74,207,61, +146,66,185,74,119,75,86,74,111,69,235,56,151,43,73,31,255,13,243,251,197,244,140,252,99,17,48,46,194,70,126,78, +109,67,241,45,119,26,16,19,51,24,17,32,122,32,114,24,100,14,140,7,102,6,146,14,145,31,214,46,44,51,150,47, +4,42,216,35,182,32,12,37,8,45,31,49,228,46,116,40,43,34,116,31,247,30,134,32,84,40,149,51,91,56,110,53, +142,47,207,36,51,22,80,14,215,15,208,17,196,17,253,20,39,28,108,36,214,43,115,47,135,45,69,38,123,25,99,12, +44,9,75,15,176,19,121,20,176,24,182,31,245,35,66,38,139,41,58,44,81,43,87,37,136,27,144,18,171,13,35,11, +113,9,17,10,64,13,249,16,67,20,217,23,168,28,186,33,11,35,193,29,60,21,95,15,97,13,11,13,74,14,43,18, +73,22,28,23,252,21,183,22,241,23,105,21,34,16,65,12,238,9,136,7,10,6,52,6,178,6,45,7,179,8,211,11, +171,16,142,22,128,27,240,29,119,29,65,26,231,21,119,18,188,15,120,13,226,12,58,14,222,14,178,12,6,9,248,5, +211,3,220,2,122,4,151,8,181,12,253,14,170,15,226,14,24,12,72,8,176,5,250,4,105,5,182,7,33,13,98,19, +200,21,144,19,1,17,127,16,242,14,199,9,63,4,241,2,192,5,48,10,222,15,20,22,235,24,29,22,77,17,148,14, +84,12,125,7,12,2,248,255,245,0,249,1,201,1,133,0,217,253,128,250,167,248,99,249,155,252,193,2,4,11,124,17, +32,19,15,17,138,12,88,4,104,250,229,245,13,250,177,0,50,3,248,2,173,3,106,3,250,254,190,248,95,245,232,244, +240,243,93,241,64,239,4,239,173,239,74,240,144,242,175,248,114,0,225,3,166,0,69,251,71,248,54,246,35,242,215,237, +225,236,158,238,142,239,117,238,30,237,162,237,130,240,31,244,37,246,100,246,180,246,52,247,206,245,32,242,225,237,48,233, +105,227,64,223,69,224,43,229,101,234,58,240,159,247,29,252,162,248,217,239,161,232,181,228,1,225,99,220,183,216,125,215, +46,217,171,221,142,227,76,233,181,238,3,243,202,243,198,240,96,237,223,234,143,230,8,224,75,219,120,218,216,218,39,219, +92,222,26,229,219,234,209,235,191,232,249,228,174,227,101,229,55,231,198,230,50,229,136,227,246,223,180,217,113,212,82,212, +10,216,242,218,154,220,112,224,208,229,94,232,157,231,200,229,46,226,89,220,40,215,238,211,180,209,147,209,101,212,110,215, +138,216,234,216,246,217,234,219,55,222,114,223,29,223,94,222,0,222,111,222,243,223,241,224,63,224,219,223,62,224,143,222, +232,218,31,216,54,214,18,213,205,214,73,218,87,220,244,221,127,224,143,225,88,224,244,222,167,221,127,220,103,221,66,224, +51,226,216,224,163,219,139,213,113,211,129,213,162,216,70,221,93,227,0,230,118,227,199,223,31,221,128,220,218,224,106,232, +165,236,243,235,163,233,128,231,27,230,251,228,30,226,119,222,192,220,106,219,62,217,87,218,33,224,14,230,145,233,123,235, +27,236,93,236,224,236,182,236,103,237,87,240,213,240,0,236,50,231,105,229,87,227,154,225,224,227,79,232,237,234,4,235, +101,233,12,232,114,232,86,232,20,231,124,232,228,235,110,236,179,235,146,238,34,243,62,245,220,244,249,242,210,240,165,239, +41,237,143,231,175,226,108,225,205,225,117,227,213,231,105,237,79,242,15,246,108,247,34,247,123,248,119,251,107,253,163,253, +149,251,5,247,219,242,159,240,86,238,78,236,160,235,38,234,154,232,166,234,186,237,56,238,170,240,211,247,56,253,135,252, +247,248,85,246,200,246,226,249,124,251,38,251,61,253,89,255,178,250,48,242,141,237,6,237,79,238,5,242,57,246,217,247, +188,248,191,251,190,255,192,1,169,255,133,250,111,246,150,244,123,242,67,241,37,244,232,248,216,251,143,253,110,254,48,253, +184,251,41,252,105,252,1,251,48,250,220,250,60,251,222,250,5,251,25,252,85,253,210,253,19,253,106,251,32,250,151,250, +179,252,94,255,175,2,150,6,243,8,72,9,55,10,229,11,15,12,10,12,74,13,134,12,199,8,184,5,233,2,236,253, +131,250,97,251,110,252,52,253,48,1,150,3,203,253,105,245,32,243,96,246,142,252,121,5,196,12,235,13,80,12,10,12, +90,11,58,10,98,12,122,16,189,16,55,12,218,6,126,3,127,2,158,2,34,2,62,2,10,5,102,7,26,6,212,5, +240,10,227,15,7,15,176,12,170,13,37,14,6,10,245,4,135,4,16,9,24,15,173,19,131,21,228,19,201,14,76,8, +159,3,175,1,84,1,252,1,253,2,211,2,252,1,146,2,248,3,127,4,156,5,154,8,92,11,3,13,123,15,94,18, +148,19,144,19,148,18,212,14,190,9,104,7,79,7,87,6,124,5,133,6,123,7,227,6,205,5,86,4,187,2,41,3, +182,5,81,8,68,11,114,14,79,14,255,10,185,9,5,10,68,6,74,0,159,254,191,255,209,254,214,254,236,3,249,9, +205,11,201,10,180,9,23,8,13,5,141,1,241,255,29,2,76,6,95,8,80,8,137,9,6,11,75,8,12,2,153,253, +221,252,229,253,209,255,245,2,78,6,231,7,161,6,117,3,68,1,205,1,145,3,225,4,151,6,2,9,97,9,144,5, +119,255,98,250,74,247,187,245,107,246,110,250,98,0,186,4,123,5,212,3,102,1,101,254,8,251,149,248,222,247,40,248, +39,248,159,247,170,247,38,249,47,251,89,252,232,252,239,253,232,254,14,254,59,251,122,248,9,247,242,245,95,244,107,243, +64,244,48,246,51,248,186,250,60,254,58,1,137,1,230,254,9,251,201,247,35,246,71,246,171,247,62,249,16,250,193,249, +173,248,225,247,56,248,22,249,211,248,196,246,235,243,124,241,229,239,93,239,10,240,34,241,88,241,148,240,43,240,229,240, +250,241,112,242,120,242,206,242,138,243,126,244,31,246,194,248,24,251,246,250,22,248,121,244,135,241,161,238,123,235,175,233, +79,234,209,235,114,236,1,237,114,239,212,243,92,248,121,251,179,252,66,252,136,250,125,247,230,242,228,237,6,235,97,235, +226,236,94,237,182,237,224,239,85,243,217,245,211,246,101,247,221,247,53,247,23,245,157,242,203,240,67,239,21,237,90,234, +95,232,61,232,228,233,171,236,251,239,54,243,181,245,32,247,108,247,208,246,70,246,179,246,236,246,138,244,239,239,162,236, +60,236,154,236,205,236,1,239,35,243,18,245,39,243,243,240,149,240,123,239,181,236,231,235,181,238,181,241,207,242,61,244, +203,246,143,247,170,245,33,244,59,244,195,243,27,242,175,241,115,243,95,245,10,246,251,245,125,245,112,244,105,243,251,242, +55,243,106,244,73,246,169,246,240,243,227,239,76,237,124,236,192,236,171,238,69,242,218,245,187,248,233,251,153,254,228,253, +101,249,101,244,86,241,133,239,20,238,216,237,40,239,143,240,15,241,177,241,134,243,168,245,151,246,106,246,11,246,87,245, +9,244,146,243,136,245,183,248,20,250,140,248,223,245,217,243,131,242,104,241,27,241,113,242,201,244,104,246,219,246,139,247, +35,249,44,250,102,249,150,247,188,245,200,243,38,242,30,242,213,243,9,246,223,247,12,249,25,249,61,248,148,247,18,247, +100,245,144,242,101,240,247,239,204,240,80,242,38,244,199,245,2,247,12,248,1,249,96,250,197,252,253,254,215,254,212,252, +180,251,218,251,33,251,253,248,128,246,103,243,120,239,245,236,182,237,105,240,150,243,214,247,171,252,84,255,207,254,99,253, +215,252,83,252,180,250,177,248,238,247,175,248,36,249,209,247,234,245,75,245,47,245,63,244,53,244,28,247,17,251,45,253, +232,253,132,254,191,253,249,250,143,248,1,248,223,247,106,247,236,247,176,249,96,251,37,252,88,252,84,252,11,252,48,251, +169,249,86,248,95,248,128,249,98,250,118,250,39,250,229,249,15,250,255,250,158,252,119,254,221,255,165,255,22,253,170,249, +21,248,226,248,246,249,246,249,223,249,139,250,59,251,133,251,72,252,199,253,37,255,183,255,249,254,74,252,188,248,10,247, +63,248,195,250,1,253,110,254,244,254,136,255,236,0,116,1,134,255,27,253,130,252,155,252,71,252,26,253,180,255,102,2, +99,4,207,5,237,5,193,4,159,3,142,2,5,1,56,0,148,0,13,0,57,254,130,253,49,254,135,253,226,250,61,249, +23,251,137,255,179,3,75,6,162,8,28,11,64,11,54,8,28,5,163,3,155,1,214,254,5,255,11,3,214,6,200,7, +176,7,39,8,189,7,99,5,31,3,48,3,237,4,161,6,27,8,39,9,202,8,246,7,155,8,116,9,57,8,155,6, +242,6,107,7,72,6,140,5,42,6,25,6,205,4,51,3,223,0,166,254,163,255,210,3,127,7,38,9,205,9,127,9, +87,8,191,7,15,8,223,8,205,10,221,12,218,11,172,7,99,4,69,4,178,5,19,7,7,8,0,8,243,6,251,5, +1,6,233,6,226,7,68,8,137,8,137,9,220,10,192,11,114,12,193,12,192,11,5,10,253,8,67,8,22,7,129,6, +25,7,174,7,150,7,255,6,194,5,182,4,143,5,207,7,90,9,146,9,145,8,248,5,12,3,3,2,172,2,7,4, +51,7,120,12,202,16,133,17,51,15,158,11,58,8,172,5,140,3,95,2,47,4,123,8,134,11,36,12,163,12,236,12, +168,10,250,6,56,5,105,5,181,5,146,6,240,8,95,11,73,12,62,12,214,11,15,10,170,6,207,3,19,3,14,3, +135,2,20,3,115,5,92,7,41,8,70,10,29,13,124,12,29,8,154,4,233,3,230,3,178,3,78,4,80,5,126,5, +205,4,160,3,100,2,74,2,38,4,240,6,3,9,190,9,89,9,45,8,133,6,214,4,221,3,247,3,118,4,131,4, +63,4,242,3,95,3,203,2,6,3,187,3,177,3,192,2,238,1,241,1,180,2,180,3,67,4,86,4,203,4,39,6, +203,7,39,9,50,10,185,9,101,5,101,253,101,246,20,245,229,248,137,253,65,0,108,1,243,1,34,2,112,2,7,3, +255,2,168,1,187,255,22,254,218,252,210,252,168,255,21,5,231,9,125,11,128,10,192,8,144,6,206,3,129,1,115,0, +217,255,253,254,211,254,98,0,255,2,73,5,168,6,187,6,213,4,127,1,39,255,213,255,231,2,44,6,115,8,187,9, +140,9,4,7,168,2,215,254,156,253,167,254,13,0,149,0,169,0,43,1,27,2,155,2,13,2,238,0,99,0,247,0, +237,1,75,2,44,2,129,2,178,3,70,5,210,6,50,8,208,8,239,7,240,5,60,4,126,3,230,2,118,1,96,255, +194,253,174,253,96,255,241,1,253,3,19,5,200,5,23,6,243,4,85,2,15,0,110,255,125,255,13,255,212,254,190,255, +209,0,196,0,65,0,142,0,85,1,193,1,102,2,247,3,92,5,58,5,18,4,7,3,201,1,186,255,180,253,129,252, +12,251,100,248,65,246,241,246,217,249,155,252,180,254,59,1,184,3,79,4,238,2,129,1,209,0,215,255,105,254,247,253, +223,254,116,255,176,254,185,253,171,253,207,253,81,253,230,252,80,253,236,253,225,253,84,253,224,252,169,252,216,252,190,253, +188,254,74,254,78,252,72,251,139,253,242,1,225,4,120,4,101,2,41,1,233,0,10,0,59,254,53,253,246,253,173,254, +212,252,226,248,34,246,164,246,226,248,30,250,198,249,91,249,245,249,52,251,95,252,36,253,92,253,233,252,39,252,196,251, +245,251,86,252,139,252,162,252,161,252,61,252,91,251,129,250,75,250,127,250,61,250,71,249,126,248,172,248,97,249,202,249, +59,250,177,251,211,253,222,254,1,254,147,252,21,252,48,252,199,251,17,251,68,251,118,252,66,253,152,252,241,250,159,249, +130,249,145,250,7,252,238,252,226,252,92,252,5,252,226,251,124,251,176,250,16,250,92,250,194,251,138,253,168,254,186,254, +55,254,110,253,226,251,101,249,66,247,28,247,207,248,158,250,142,251,66,252,93,253,96,254,191,254,199,254,206,254,156,254, +75,254,151,254,123,255,176,255,118,254,209,252,252,251,151,251,212,250,96,250,133,251,226,253,210,255,202,0,170,1,181,2, +242,2,238,1,137,0,133,255,184,254,65,254,239,254,156,0,148,1,215,0,136,255,247,254,201,254,72,254,73,254,251,255, +161,2,82,4,131,4,21,4,62,3,70,1,129,254,181,252,235,252,50,254,69,255,56,0,149,1,222,2,18,3,48,2, +15,1,51,0,144,255,77,255,177,255,111,0,224,0,242,0,25,1,64,1,211,0,231,255,124,255,15,0,197,0,142,0, +154,255,244,254,40,255,227,255,152,0,1,1,19,1,2,1,30,1,104,1,138,1,105,1,101,1,163,1,167,1,12,1, +62,0,226,255,245,255,14,0,14,0,6,0,211,255,101,255,25,255,17,255,192,254,207,253,10,253,128,253,22,255,227,0, +142,2,83,4,236,5,140,6,236,5,113,4,107,2,17,0,37,254,124,253,229,253,129,254,37,255,76,0,183,1,64,2, +105,1,5,0,24,255,233,254,110,255,166,0,67,2,171,3,162,4,61,5,78,5,179,4,33,4,134,4,150,5,24,6, +188,5,119,5,188,5,163,5,87,4,82,2,183,0,90,0,148,1,22,4,120,6,37,7,33,6,4,5,243,4,173,5, +201,6,99,8,238,9,209,9,76,7,208,3,134,1,55,1,52,2,157,3,237,4,226,5,222,6,130,8,106,10,34,11, +252,9,4,8,130,6,99,5,8,4,195,2,99,2,233,2,209,3,31,5,254,6,236,8,70,10,25,11,133,11,46,11, +44,10,140,9,226,9,56,10,124,9,29,8,73,7,70,7,138,7,216,7,61,8,126,8,128,8,184,8,94,9,194,9, +90,9,176,8,74,8,188,7,188,6,44,6,243,6,182,8,87,10,0,11,105,10,15,9,7,8,241,7,97,8,212,8, +103,9,56,10,240,10,75,11,116,11,184,11,38,12,68,12,76,11,84,9,150,7,219,6,166,6,160,6,63,7,97,8, +72,9,95,10,167,12,50,15,226,15,136,14,176,12,241,10,236,8,53,7,199,6,66,7,132,7,77,7,30,7,79,7, +15,8,103,9,187,10,26,11,97,10,106,9,214,8,95,8,176,7,61,7,155,7,124,8,51,9,201,9,190,10,28,12, +105,13,21,14,149,13,226,11,250,9,247,8,189,8,132,8,71,8,148,8,90,9,207,9,76,9,15,8,34,7,72,7, +52,8,61,9,75,10,54,11,126,11,100,11,150,11,142,11,113,10,54,9,241,8,126,8,30,7,127,6,229,7,184,9, +240,9,176,8,80,7,170,6,201,6,41,7,62,7,11,7,183,6,68,6,62,6,11,7,154,7,45,7,73,7,135,8, +106,8,15,6,158,4,152,5,156,6,183,6,76,7,231,7,138,7,154,7,186,8,219,8,34,7,97,5,192,4,96,4, +56,3,154,1,226,0,150,1,186,2,161,3,173,4,40,6,107,8,146,11,122,13,193,11,55,8,35,6,250,4,151,3, +251,3,79,6,231,6,29,5,24,4,36,4,205,3,177,4,103,7,116,8,246,6,65,6,107,6,140,4,179,1,213,0, +53,1,44,1,241,0,180,255,53,253,173,253,54,4,246,11,176,13,249,8,160,3,186,2,200,5,148,8,244,10,8,18, +77,28,223,28,138,12,111,247,175,239,83,248,149,3,88,2,101,243,32,227,133,218,170,213,94,209,165,212,239,226,216,244, +80,6,84,26,79,46,136,60,40,71,133,79,60,77,57,61,64,42,241,27,28,15,137,2,49,248,204,236,47,224,155,220, +148,230,204,243,235,252,112,6,169,17,11,24,6,24,46,22,216,19,100,16,222,12,131,6,3,248,230,230,128,226,121,239, +7,0,204,5,72,2,223,255,78,1,124,0,0,252,125,251,35,3,38,12,247,14,154,12,182,9,199,8,98,11,110,16, +21,17,180,8,13,254,56,251,146,255,241,2,101,3,237,5,221,10,7,11,190,2,249,248,23,247,72,253,78,4,244,7, +232,9,189,11,52,12,74,10,96,6,207,0,166,250,226,246,252,247,196,252,192,1,82,5,133,8,186,11,20,13,128,11, +213,8,44,7,118,6,1,6,137,5,59,4,5,2,57,1,61,3,215,5,66,7,33,9,236,11,103,12,216,8,148,3, +152,254,226,249,193,246,124,247,94,251,4,255,93,0,45,0,123,0,68,2,53,4,103,4,81,3,159,2,167,1,192,254, +18,251,141,248,208,245,27,241,18,237,52,237,30,240,29,243,62,248,252,1,176,11,218,13,104,8,213,1,171,253,133,250, +195,247,189,246,77,247,0,248,151,248,102,249,30,250,197,250,136,251,180,251,65,251,206,251,155,253,9,254,96,251,37,247, +69,243,59,240,115,238,14,238,129,237,206,235,46,235,61,238,199,243,58,248,107,250,8,252,186,253,134,254,193,253,128,251, +89,248,128,245,138,243,189,241,72,240,4,241,6,244,170,246,251,247,224,249,128,252,82,253,238,251,122,250,217,248,9,245, +138,240,112,239,251,241,108,244,52,245,79,246,209,248,125,251,140,253,76,255,115,0,62,0,137,254,189,251,216,248,71,247, +228,246,133,245,161,242,186,240,55,241,172,242,228,244,131,249,4,255,55,1,194,255,27,254,45,253,48,251,199,248,63,248, +8,249,228,248,175,247,196,246,234,246,108,248,158,250,105,251,170,249,21,247,226,245,158,246,240,248,217,251,54,253,2,252, +65,250,98,250,9,252,79,253,96,253,137,252,57,251,175,249,218,247,227,245,239,244,11,246,140,248,217,250,117,252,230,253, +93,255,103,0,132,0,149,255,241,253,220,251,79,249,235,246,67,246,237,247,118,250,126,252,92,254,102,0,101,1,87,0, +65,254,147,252,217,250,51,248,61,246,112,247,193,250,139,252,27,252,21,252,31,253,253,252,39,251,133,249,12,249,120,249, +207,250,93,252,198,252,80,252,226,251,216,250,131,249,100,250,71,253,158,254,240,253,160,253,117,253,140,252,50,253,254,255, +228,0,125,254,195,252,40,253,168,252,32,251,148,251,81,253,18,253,82,251,217,250,208,251,174,252,25,253,240,253,39,0, +49,3,155,4,135,3,144,2,35,3,121,2,179,254,130,251,107,253,59,2,162,3,55,1,177,0,50,3,212,3,165,1, +121,0,14,1,73,1,127,0,219,254,1,254,178,0,6,5,250,5,0,4,75,3,84,5,237,8,168,9,177,3,195,253, +67,255,113,255,63,247,195,243,139,253,198,9,194,17,151,22,103,20,125,15,11,17,90,12,152,246,164,232,156,242,154,249, +146,239,207,236,236,248,133,2,203,9,175,19,210,19,138,12,11,14,119,13,179,253,42,246,165,3,98,8,246,247,150,238, +173,247,95,0,234,0,83,255,9,253,102,254,163,7,43,14,159,9,100,4,150,5,105,4,201,253,210,250,255,253,107,0, +128,255,130,254,161,255,209,2,85,6,21,7,106,4,246,0,35,254,223,251,214,251,55,254,31,255,137,253,131,253,95,255, +43,255,151,253,195,253,110,254,178,254,118,0,253,1,232,0,100,0,158,1,182,0,204,254,93,0,233,2,249,2,154,3, +112,5,67,4,112,0,89,253,70,251,41,251,193,253,172,254,59,252,120,252,121,1,87,5,17,5,165,2,70,255,101,252, +242,251,164,252,157,252,243,252,115,254,67,0,204,1,242,1,28,0,101,254,12,254,57,253,124,251,41,250,10,249,226,248, +225,251,226,255,193,0,45,0,175,1,31,3,126,1,9,255,125,254,228,254,0,255,219,254,156,253,231,250,94,249,4,251, +6,253,33,252,114,250,67,251,25,253,173,253,107,254,3,0,38,0,160,254,165,253,17,253,228,251,187,251,69,253,220,253, +127,252,244,251,151,253,20,255,191,254,205,253,76,253,239,252,59,253,220,254,77,0,38,0,239,255,192,0,214,0,173,255, +69,255,207,255,149,255,207,254,219,254,167,255,129,0,201,0,183,255,191,253,122,252,54,252,30,252,33,252,163,252,139,253, +88,254,66,254,101,253,119,253,41,255,152,0,102,0,120,255,189,254,55,254,221,253,107,253,172,252,85,252,221,252,156,253, +63,254,44,255,46,0,156,0,95,0,185,255,211,254,199,253,210,252,146,252,79,253,71,254,35,254,174,252,127,251,39,252, +16,254,55,255,198,254,221,253,207,253,127,254,206,254,98,254,57,254,38,255,107,0,192,0,16,0,59,255,191,254,124,254, +45,254,145,253,151,252,122,251,138,250,22,250,79,250,229,250,105,251,60,252,229,253,144,255,212,255,182,254,128,253,22,253, +90,253,156,253,99,253,39,253,161,253,91,254,121,254,113,254,249,254,81,255,167,254,189,253,115,253,115,253,33,253,84,252, +72,251,206,250,93,251,8,252,66,252,89,253,191,255,35,1,191,255,254,252,34,251,229,250,208,251,205,252,9,253,29,253, +186,253,196,253,81,252,237,250,30,251,28,252,218,252,138,253,67,254,194,254,33,255,255,254,149,253,115,251,254,249,135,249, +243,249,140,251,187,253,43,255,204,255,88,0,134,0,249,255,84,255,251,254,126,254,139,253,24,252,138,250,66,250,16,252, +96,254,41,255,130,254,104,253,8,252,122,250,77,249,38,249,198,250,21,254,236,0,89,1,102,0,18,0,78,0,31,0, +70,255,148,253,50,251,16,249,85,247,133,245,248,244,133,247,229,251,71,255,254,0,137,1,202,0,86,255,49,254,27,253, +17,252,85,252,146,253,197,253,18,253,63,253,1,254,4,254,144,253,24,253,99,252,57,252,30,253,146,253,38,253,230,253, +249,255,187,0,164,255,208,254,206,254,192,254,172,254,64,254,175,252,83,251,9,252,100,253,58,253,211,252,18,254,155,255, +81,255,119,253,116,251,105,250,247,250,98,252,79,253,60,254,79,0,26,2,101,1,10,255,85,253,138,252,17,252,102,252, +117,253,12,254,47,254,5,255,66,0,159,0,51,0,207,255,94,255,222,254,1,255,140,255,64,255,16,254,48,253,235,252, +148,252,47,252,91,252,6,253,126,253,94,253,9,253,111,253,206,254,224,255,142,255,204,254,245,254,109,255,17,255,112,254, +108,254,91,254,128,253,157,252,132,252,176,252,118,252,55,252,122,252,214,252,158,252,21,252,2,252,75,252,47,252,205,251, +245,251,143,252,226,252,22,253,194,253,192,254,192,255,164,0,164,0,41,255,159,253,224,253,34,255,26,255,178,253,239,252, +161,253,36,254,209,252,157,250,80,250,176,252,29,255,96,255,164,254,167,254,157,254,72,253,196,251,145,251,58,252,0,253, +23,254,221,254,60,254,109,253,114,254,213,255,183,254,98,252,155,252,66,255,192,0,206,255,65,254,104,253,26,253,35,253, +67,253,35,253,199,252,226,251,237,249,88,248,188,249,74,253,176,254,48,252,93,249,140,250,42,0,223,6,255,10,0,12, +65,11,103,6,236,248,113,231,79,224,83,233,225,246,148,253,138,0,195,4,70,4,79,249,242,234,57,228,176,230,211,235, +238,237,48,237,95,239,46,249,25,7,146,17,24,23,60,27,12,30,26,28,10,21,60,12,144,4,205,254,198,250,98,248, +44,248,182,250,56,255,82,3,26,4,175,255,145,247,71,241,243,241,179,248,13,0,208,4,24,8,192,10,149,11,230,10, +11,11,17,12,235,10,4,6,55,255,89,249,21,247,82,250,1,1,66,5,129,4,197,2,154,3,163,4,242,2,133,0, +152,0,223,2,19,5,253,5,194,5,103,5,153,5,27,5,208,2,13,1,154,2,95,5,55,5,171,2,159,1,68,3, +237,5,76,8,58,9,117,7,237,3,78,1,179,0,194,1,114,4,150,7,127,8,227,6,77,5,131,4,31,3,153,1, +100,1,61,1,78,255,1,253,147,252,133,253,151,254,20,0,77,2,250,4,138,8,180,12,210,14,53,13,243,9,109,7, +87,5,134,3,71,3,98,4,78,5,96,6,48,8,3,9,18,8,176,7,171,8,85,8,128,5,76,2,118,0,73,0, +242,1,124,4,240,5,28,6,238,5,122,4,253,0,65,254,117,255,91,3,61,6,186,6,235,5,198,4,189,3,122,3, +13,4,155,4,194,4,221,4,187,4,27,4,249,3,222,4,150,5,225,5,103,7,4,10,97,11,57,11,4,11,1,10, +210,6,9,3,208,0,254,255,235,255,105,0,178,0,207,0,61,2,174,4,156,5,124,4,53,3,137,2,212,1,83,1, +175,1,130,2,225,2,112,2,127,1,179,0,136,0,59,1,178,2,12,4,20,4,166,2,122,0,23,254,48,252,155,251, +242,251,109,252,137,253,79,255,18,0,128,255,130,255,130,0,231,0,98,0,231,255,141,255,70,255,121,255,195,255,174,255, +202,255,30,0,168,255,132,254,224,253,219,253,194,253,129,253,133,253,243,253,137,254,208,254,227,254,144,255,183,0,63,1, +252,0,142,0,0,0,114,255,131,255,20,0,181,0,175,1,159,2,71,2,25,1,148,0,101,0,165,255,34,255,103,255, +118,255,31,255,92,255,81,0,173,1,124,3,243,4,4,5,19,4,205,2,193,0,36,254,137,252,183,252,237,253,94,255, +223,0,129,2,13,4,194,4,38,4,1,3,78,2,229,1,57,1,81,0,114,255,232,254,180,254,45,254,47,253,244,252, +239,253,188,254,168,254,171,254,50,255,174,255,6,0,49,0,203,255,34,255,183,254,4,254,223,252,106,252,3,253,136,253, +92,253,215,252,45,252,166,251,224,251,201,252,177,253,71,254,120,254,244,253,188,252,81,251,72,250,5,250,111,250,222,250, +233,250,240,250,118,251,123,252,128,253,224,253,113,253,191,252,26,252,66,251,141,250,244,250,117,252,201,253,242,253,0,253, +182,251,244,250,242,250,36,251,95,251,36,252,93,253,28,254,9,254,207,253,252,253,76,254,24,254,45,253,51,252,13,252, +190,252,101,253,94,253,204,252,17,252,62,251,71,250,140,249,181,249,228,250,90,252,15,253,216,252,117,252,106,252,113,252, +27,252,121,251,5,251,29,251,146,251,213,251,189,251,199,251,22,252,242,251,247,250,225,249,89,249,67,249,158,249,135,250, +87,251,128,251,101,251,39,251,132,250,55,250,240,250,165,251,90,251,177,250,58,250,238,249,75,250,40,251,25,251,28,250, +170,249,220,249,234,249,33,250,158,250,202,250,229,250,53,251,58,251,123,251,166,252,33,253,178,251,240,249,247,248,53,248, +51,248,120,249,169,250,74,251,9,252,230,251,202,250,133,251,80,254,123,255,12,254,59,252,173,250,166,249,138,250,112,252, +76,253,212,253,157,254,234,253,6,252,90,251,220,251,113,252,115,253,29,254,26,253,228,251,33,252,212,252,92,253,14,254, +248,253,26,253,47,253,140,253,113,252,124,251,75,252,244,252,178,252,79,253,88,254,28,254,94,253,211,252,227,251,243,251, +43,254,154,255,42,254,234,252,113,254,205,0,218,1,158,1,250,255,36,253,57,251,161,251,13,253,7,254,167,254,174,254, +89,253,202,251,20,252,215,253,71,255,74,0,245,0,237,255,228,253,58,254,22,1,174,2,150,1,145,255,126,253,243,251, +101,252,52,254,72,255,20,0,192,1,211,2,92,2,249,1,211,1,41,0,177,253,6,253,114,254,61,0,47,1,200,0, +89,255,127,254,134,255,187,1,119,3,228,3,42,3,234,1,229,0,152,0,179,0,117,0,235,255,5,0,227,0,137,1, +201,1,129,2,154,3,215,3,188,2,34,1,42,0,50,0,119,0,5,0,86,255,206,255,170,1,174,3,162,4,44,4, +221,2,172,1,39,1,110,1,127,2,175,3,0,4,160,3,118,3,95,3,214,2,68,2,13,2,242,1,37,2,230,2, +133,3,118,3,25,3,169,2,57,2,113,2,78,3,127,3,164,2,46,2,3,3,89,4,55,5,105,5,5,5,95,4, +251,3,255,3,50,4,161,4,79,5,154,5,235,4,209,3,64,3,51,3,43,3,55,3,96,3,76,3,50,3,188,3, +164,4,31,5,63,5,110,5,126,5,73,5,13,5,172,4,254,3,157,3,7,4,194,4,59,5,141,5,200,5,172,5, +100,5,131,5,10,6,89,6,46,6,211,5,84,5,153,4,23,4,86,4,226,4,67,5,160,5,185,5,22,5,31,4, +152,3,137,3,147,3,175,3,246,3,25,4,249,3,40,4,199,4,47,5,118,5,34,6,145,6,235,5,207,4,78,4, +121,4,208,4,243,4,163,4,20,4,21,4,245,4,182,5,56,5,209,3,180,2,78,2,106,2,209,2,39,3,127,3, +85,4,100,5,52,6,213,6,213,6,142,5,207,3,193,2,81,2,96,2,6,3,97,3,249,2,217,2,80,3,105,3, +243,2,187,2,66,3,45,4,175,4,93,4,146,3,218,2,78,2,0,2,85,2,52,3,13,4,183,4,251,4,54,4, +246,2,238,2,213,3,107,3,5,2,238,1,161,2,179,2,1,3,133,3,190,2,140,1,185,1,84,2,56,2,120,2, +122,3,39,4,102,4,186,4,147,4,160,2,188,254,102,251,134,251,204,254,109,2,240,3,162,2,65,0,148,255,51,1, +227,2,133,2,145,0,34,255,232,254,103,254,67,253,84,253,246,254,187,0,41,2,179,2,247,1,140,1,65,2,224,2, +216,2,247,1,77,0,106,255,93,255,112,254,67,254,107,0,89,1,30,0,99,0,203,0,222,254,70,254,214,255,15,0, +49,0,164,1,77,1,100,255,254,254,79,255,91,255,234,255,199,255,250,254,60,255,211,254,11,253,214,252,59,254,29,0, +187,2,51,3,195,0,205,255,132,255,210,252,83,252,107,255,46,255,21,252,103,251,182,250,105,250,56,255,134,3,171,1, +107,255,224,254,10,252,116,249,31,251,189,254,239,0,132,0,167,254,9,253,152,249,120,246,156,251,222,1,64,254,161,0, +152,18,141,27,140,18,98,11,103,11,57,15,114,20,86,2,88,205,28,165,186,181,65,229,220,11,158,40,246,52,101,28, +236,237,79,202,97,191,150,213,145,3,126,33,12,27,68,3,124,239,64,236,95,251,81,8,119,2,197,243,182,231,89,226, +38,235,128,252,145,7,0,17,176,29,100,29,65,12,111,251,147,240,191,233,187,237,36,252,79,10,246,17,76,14,79,254, +92,239,21,238,152,247,148,4,172,13,51,9,137,247,223,229,45,223,193,229,180,244,38,1,193,2,174,250,212,239,235,233, +191,236,73,244,254,249,163,251,121,250,75,249,212,249,224,250,245,252,106,1,240,3,182,1,9,0,67,0,186,253,219,250, +239,251,201,253,207,255,92,4,58,6,96,2,141,255,88,255,86,252,186,247,223,245,75,246,143,248,25,252,249,252,185,250, +89,249,192,248,92,246,203,243,22,243,148,242,21,241,144,240,110,243,45,250,28,2,190,5,31,2,168,250,37,244,111,241, +172,245,249,255,85,9,250,14,193,16,50,6,250,238,216,224,130,232,153,247,52,2,231,7,69,4,107,252,90,0,122,10, +123,9,218,4,185,7,244,3,105,242,134,230,69,233,50,238,60,241,213,246,162,252,2,2,48,8,93,10,3,8,189,5, +78,3,3,1,210,255,235,251,188,246,111,246,162,248,196,248,94,248,210,247,21,247,252,249,186,0,159,6,134,9,229,9, +198,8,46,7,65,3,69,252,159,246,166,244,38,245,3,249,44,255,88,3,98,5,175,6,16,6,243,4,241,4,163,2, +35,253,53,248,209,244,178,243,143,247,132,253,59,0,192,0,113,1,254,1,132,3,245,5,44,6,54,4,195,2,39,1, +46,254,32,252,148,252,150,253,190,253,185,254,63,1,136,2,206,1,3,2,102,3,244,2,218,0,99,255,159,254,206,254, +0,0,149,0,173,0,140,0,172,254,97,253,10,0,122,3,22,5,212,6,199,6,108,3,155,1,79,1,47,254,62,251, +21,251,27,251,51,253,150,1,231,2,192,4,152,11,114,13,64,6,129,0,66,253,151,248,156,249,180,255,59,0,20,255, +199,3,52,6,80,2,19,2,202,6,56,7,81,4,200,2,122,253,77,248,16,0,216,10,74,8,64,1,40,254,60,251, +0,254,74,5,135,4,0,1,159,2,247,1,138,1,255,4,242,0,252,250,20,1,237,5,249,2,139,6,187,7,83,251, +214,240,22,229,137,211,134,233,122,50,2,93,48,52,107,228,146,164,162,143,49,181,249,242,139,9,133,249,114,236,223,232, +162,245,51,41,166,103,119,124,23,98,209,36,144,207,137,142,122,131,40,147,92,163,62,194,199,238,15,13,176,21,196,22, +92,26,70,39,175,61,75,78,124,74,28,50,2,9,138,213,134,171,118,160,110,182,166,223,243,8,175,28,137,19,182,1, +159,0,128,21,210,50,51,65,68,48,28,11,2,234,108,215,73,215,115,235,150,2,248,7,248,254,167,243,188,235,228,241, +47,10,186,33,82,38,63,26,160,7,84,247,86,239,20,238,141,240,68,248,149,4,199,16,162,23,6,21,239,10,214,255, +108,247,180,245,242,250,56,250,218,236,193,225,143,229,249,247,21,21,63,42,97,35,15,17,117,13,56,16,138,13,241,11, +127,6,225,247,51,238,85,234,233,226,82,230,239,250,148,10,190,16,81,24,211,23,1,13,170,8,158,8,44,3,70,255, +252,252,28,250,172,0,201,6,219,251,69,244,31,255,17,7,176,5,113,2,107,249,171,2,191,46,73,62,250,10,78,225, +241,241,25,6,150,255,211,242,160,220,89,201,92,223,162,9,39,30,112,48,241,69,126,43,149,225,111,173,0,178,207,223, +49,28,196,63,196,50,165,16,110,252,171,248,75,254,102,5,125,2,37,253,137,3,238,7,50,252,219,241,175,247,103,4, +59,17,212,27,113,26,98,14,243,5,189,1,204,249,241,243,129,247,168,253,4,0,124,2,124,7,179,11,181,13,41,14, +242,11,75,7,129,2,169,252,137,244,107,239,90,242,3,250,112,0,19,2,32,253,183,246,202,247,158,253,161,254,218,252, +185,1,144,14,117,26,13,24,163,3,205,238,39,235,162,241,252,245,32,251,91,1,149,1,121,255,19,1,84,3,28,10, +111,26,235,34,23,19,72,250,60,236,3,230,61,228,243,237,106,255,230,10,142,12,111,8,220,255,1,246,152,242,176,247, +224,253,27,255,84,253,136,251,5,250,193,251,244,2,250,8,196,6,72,0,91,252,244,250,230,250,161,253,72,2,80,5, +129,3,208,250,148,237,166,228,142,232,131,248,214,10,204,21,148,21,234,10,50,251,158,240,28,240,233,243,72,248,127,255, +56,5,102,3,119,255,155,253,158,248,54,244,205,249,94,1,165,254,97,248,136,247,79,248,209,249,43,255,46,2,180,253, +97,248,72,247,184,247,15,249,170,252,242,255,84,0,40,0,63,3,64,8,135,8,114,1,139,248,150,242,132,239,229,239, +30,243,46,245,64,246,254,249,79,254,156,255,40,0,58,1,124,0,136,255,18,1,95,1,167,252,226,246,145,245,42,248, +130,251,160,254,17,0,153,253,145,250,93,252,66,255,254,252,58,249,203,247,227,245,178,246,227,254,63,5,224,1,190,252, +229,250,40,248,192,246,9,249,6,249,216,247,112,252,25,2,120,2,69,2,6,5,74,9,181,14,218,15,29,7,180,251, +211,245,193,243,209,244,112,248,0,249,39,249,66,255,120,3,137,255,199,252,99,254,178,254,163,0,209,3,42,255,195,247, +56,248,200,249,82,247,50,249,209,254,153,1,163,4,18,6,227,254,36,247,184,247,145,249,57,249,197,250,124,250,133,247, +21,249,119,252,147,252,98,0,139,8,216,10,56,7,181,2,237,251,37,247,213,249,232,251,68,248,244,246,177,249,133,251, +57,254,189,1,99,2,196,4,252,10,158,11,195,3,130,250,132,242,217,237,202,240,153,246,218,248,72,251,125,255,112,0, +180,255,51,1,216,1,201,0,6,1,49,0,253,252,139,252,67,255,56,0,145,255,174,255,236,255,197,0,225,2,14,4, +43,4,196,5,9,8,212,7,213,3,89,252,1,244,107,239,166,240,112,246,230,254,123,6,145,8,132,4,132,254,200,251, +145,255,70,8,47,15,142,14,243,6,90,253,127,246,56,244,65,245,120,247,96,249,50,250,48,250,4,251,165,254,25,5, +143,11,251,13,196,10,210,4,31,0,98,253,38,251,187,248,196,246,25,247,131,250,249,253,138,254,98,254,191,0,137,5, +129,11,119,16,235,16,221,12,49,7,20,0,113,248,62,245,247,247,150,252,69,0,243,0,171,252,107,247,12,247,145,250, +49,255,221,4,136,8,139,6,107,1,208,252,19,250,58,252,119,3,33,9,221,8,217,4,146,255,85,251,255,250,26,253, +220,253,110,253,164,253,172,254,179,0,47,3,57,4,128,3,75,2,150,1,0,2,220,2,213,2,96,2,184,1,230,255, +129,254,142,255,120,1,95,3,165,5,125,5,218,2,26,3,215,5,80,5,181,1,101,253,194,248,224,248,72,0,7,6, +238,4,219,2,214,1,119,0,28,2,224,4,140,2,93,255,160,0,240,0,243,254,15,0,235,1,136,1,95,3,77,6, +85,5,161,4,192,6,154,5,121,1,234,255,63,255,37,254,247,255,68,2,32,1,217,255,246,255,170,254,10,254,245,0, +89,4,120,5,126,4,67,1,227,253,14,254,88,1,185,4,93,6,210,5,142,4,195,3,100,2,166,0,233,255,218,254, +63,253,181,253,88,255,78,0,203,2,203,5,76,5,34,4,20,5,110,3,51,255,49,254,63,255,14,0,12,3,48,4, +78,255,123,253,202,3,67,8,97,6,148,2,1,253,192,249,105,0,65,8,71,4,209,250,240,244,53,240,162,239,130,249, +165,7,240,18,232,25,85,20,106,255,25,237,158,236,244,247,114,3,26,8,189,3,57,255,165,4,127,13,203,13,236,5, +82,252,180,245,197,245,62,250,203,252,150,253,177,255,86,1,222,1,255,3,252,6,255,7,92,6,81,2,77,254,42,254, +207,0,230,1,29,0,239,251,133,247,159,247,135,252,124,1,140,5,128,8,194,5,180,254,171,251,86,253,214,254,200,0, +16,3,13,2,102,0,196,1,236,0,24,251,70,247,24,249,49,253,60,2,99,7,233,8,18,6,130,1,25,252,68,247, +183,246,246,250,35,0,191,2,51,2,90,0,69,255,83,254,180,251,140,248,38,248,186,251,38,1,27,5,201,5,155,3, +37,0,4,253,218,250,101,249,226,249,33,254,70,3,222,3,89,0,24,253,94,251,146,250,228,251,144,254,83,255,46,255, +177,0,70,0,248,250,102,246,223,247,142,252,79,0,41,3,210,4,106,2,38,253,152,251,13,254,119,254,19,255,50,3, +27,1,45,247,49,245,144,251,4,253,52,254,79,3,42,1,149,252,136,254,152,249,46,241,221,250,251,7,110,4,11,2, +54,4,58,250,116,239,98,230,177,212,151,227,196,39,207,87,77,73,195,35,228,249,121,225,40,5,1,39,69,237,226,154, +246,133,131,140,33,177,10,24,60,111,163,115,165,83,145,19,118,178,17,149,10,219,106,36,59,61,226,36,165,227,148,196, +142,247,47,44,244,33,33,254,237,224,163,209,1,228,169,7,26,22,111,22,31,24,199,17,159,9,208,8,48,3,182,248, +4,243,131,240,178,248,139,14,134,25,0,15,158,255,70,242,49,236,254,247,243,7,222,9,238,1,176,238,142,210,0,205, +22,231,115,255,122,7,28,9,172,2,126,249,135,255,2,16,208,23,197,18,213,4,197,243,155,233,208,234,185,244,113,0, +178,3,217,255,136,0,161,4,206,6,79,11,186,12,168,1,161,245,59,243,57,243,100,247,69,4,37,10,201,2,212,255, +55,5,150,6,138,3,67,0,83,250,7,244,85,242,11,244,21,247,6,250,15,250,201,247,114,246,225,247,54,253,184,3, +135,5,228,2,98,0,224,254,220,253,112,252,60,249,57,249,95,2,172,14,144,19,123,14,183,1,11,243,56,236,47,240, +189,248,254,0,63,5,211,1,35,251,104,248,123,248,155,249,25,255,153,6,91,9,184,8,188,8,37,6,94,255,226,250, +20,252,162,254,125,255,5,255,198,252,222,249,127,250,165,254,203,0,5,255,235,252,172,252,58,254,131,1,101,3,82,255, +34,248,129,246,126,252,108,4,105,10,53,13,111,11,193,7,159,6,92,5,72,255,148,248,129,247,203,249,26,250,81,247, +233,243,5,245,212,253,71,9,135,15,161,14,242,8,249,1,8,254,89,254,212,255,232,255,250,253,82,250,149,247,184,248, +190,252,115,0,10,2,219,1,194,1,178,2,81,3,248,2,56,3,253,4,166,6,41,5,160,255,15,250,81,249,202,252, +97,0,232,1,162,1,27,1,185,1,151,2,128,2,158,2,212,3,150,4,168,2,241,254,97,253,134,0,157,6,237,10, +50,10,200,5,55,1,19,254,59,252,94,251,168,250,188,249,185,249,113,251,194,254,58,3,175,6,132,6,230,3,10,2, +110,1,64,1,137,1,238,1,131,2,221,3,231,3,138,0,127,252,11,251,146,251,32,253,131,255,128,1,118,3,158,6, +180,8,206,7,78,6,62,5,12,3,146,0,221,254,191,252,99,251,207,252,91,255,12,2,186,5,172,7,208,5,25,4, +248,4,165,5,34,4,119,255,180,247,241,242,219,246,43,255,56,5,225,7,196,6,133,2,137,255,11,255,193,254,5,0, +12,3,255,2,218,255,208,254,75,0,58,2,81,4,254,3,216,0,200,0,196,4,8,6,127,2,185,252,112,245,3,240, +239,240,135,246,52,255,50,12,31,23,139,22,38,12,78,0,92,249,120,251,65,2,159,1,92,248,151,242,3,247,91,2, +12,14,181,17,249,11,90,7,213,8,239,7,168,255,229,244,57,238,254,241,59,0,93,12,214,12,80,7,202,2,160,255, +193,254,151,255,27,255,17,0,5,5,197,7,27,5,5,2,231,255,142,253,32,254,192,1,48,5,85,9,29,12,150,6, +70,251,114,244,204,245,165,253,202,7,187,10,71,2,71,247,75,242,149,244,101,254,255,11,254,19,94,18,232,9,26,253, +197,241,161,240,94,249,225,3,65,11,194,12,224,6,56,255,39,252,30,252,43,253,72,0,95,2,116,1,158,1,195,2, +143,1,165,1,245,4,190,5,69,2,94,252,171,244,58,243,125,254,2,11,20,13,52,8,133,1,167,253,232,1,66,6, +54,1,113,251,99,252,219,254,127,1,149,2,54,253,250,249,117,1,168,9,81,10,197,5,130,252,251,243,135,244,246,248, +39,251,18,0,96,7,2,10,118,7,139,2,172,254,73,1,127,8,30,11,0,6,93,253,157,245,161,241,157,242,204,247, +139,254,11,3,49,4,250,3,103,3,53,3,249,3,99,3,39,1,213,0,207,1,69,1,238,0,245,0,239,254,58,253, +159,253,29,253,84,252,178,253,248,254,152,255,49,1,76,1,138,255,230,255,140,1,97,1,122,0,83,255,209,253,97,254, +39,0,21,0,247,255,111,1,58,2,246,1,243,0,114,254,29,253,201,254,200,255,114,254,6,253,220,251,199,251,144,254, +132,1,173,1,149,0,19,255,99,253,89,254,111,1,66,2,134,0,155,254,18,253,232,252,72,254,173,254,208,253,125,253, +237,252,179,251,1,252,105,254,150,1,132,4,162,5,35,4,91,1,43,254,5,251,113,249,203,249,228,250,85,252,236,253, +91,255,229,0,226,1,107,1,150,0,47,0,114,255,194,254,202,254,198,254,164,254,175,254,25,254,89,253,194,253,169,254, +92,255,30,0,228,255,42,254,165,252,93,252,90,253,168,255,149,1,130,1,120,0,52,255,122,253,129,252,204,252,154,253, +164,255,81,2,157,2,186,0,26,255,164,253,102,252,83,252,52,252,12,252,170,253,233,254,85,253,222,251,197,252,96,254, +188,255,254,255,24,254,144,252,124,253,135,254,177,254,93,255,208,255,185,255,101,0,194,0,193,255,253,254,235,254,26,255, +54,0,5,1,10,0,107,255,35,0,234,255,173,254,200,253,201,252,46,252,200,252,71,253,228,253,20,0,174,1,147,0, +248,254,153,254,206,254,172,255,188,0,137,0,191,255,157,255,122,255,36,255,76,255,41,255,237,253,143,252,206,251,108,251, +116,251,205,251,242,251,97,252,68,254,38,1,124,3,182,4,152,4,138,2,73,255,164,252,245,251,94,254,226,2,243,4, +120,2,21,255,105,253,169,252,220,252,253,253,49,255,110,1,207,3,104,2,57,254,249,251,215,251,199,252,132,255,128,1, +134,0,166,255,5,0,61,255,254,253,182,253,32,254,194,0,225,4,107,5,238,1,183,254,180,252,135,251,58,252,216,253, +116,255,136,1,79,2,40,1,80,1,225,2,204,2,95,1,162,255,55,253,49,252,242,253,83,0,228,2,192,5,175,5, +60,2,85,255,16,254,146,253,126,254,105,255,153,254,106,254,39,0,105,1,179,1,254,1,95,1,204,255,95,254,224,252, +72,252,143,254,13,2,179,3,146,3,221,2,40,2,40,2,90,2,146,1,119,0,202,255,14,255,195,254,193,255,71,1, +146,2,79,3,127,2,105,0,21,255,114,255,7,1,14,3,20,4,169,3,91,3,107,3,107,2,192,0,250,255,34,0, +174,0,20,1,187,0,171,0,18,2,240,2,48,1,136,254,69,253,175,253,174,255,75,2,107,3,9,3,181,2,60,2, +101,1,151,1,136,2,66,2,234,0,169,255,128,254,94,254,130,0,26,3,201,3,48,3,64,2,5,1,244,0,209,2, +62,4,132,3,117,1,203,254,172,252,40,253,148,255,26,1,68,1,29,1,173,0,81,0,122,0,114,0,116,0,142,1, +251,2,99,3,137,2,101,0,33,254,216,253,35,255,78,0,108,1,63,2,234,1,154,1,228,1,96,1,187,0,252,0, +25,0,249,253,119,253,53,254,150,254,253,255,81,2,126,3,71,4,21,5,208,3,130,1,209,0,83,0,191,254,16,254, +153,254,246,254,59,255,5,255,189,253,116,253,162,255,1,2,66,2,204,0,76,255,106,255,135,1,228,3,109,4,211,2, +106,0,149,254,184,253,199,253,181,254,183,255,247,255,207,255,183,255,195,255,80,0,199,0,13,0,29,255,113,255,132,0, +165,1,129,2,68,2,158,1,203,1,95,1,153,255,195,254,151,255,156,0,72,1,208,0,15,255,215,254,4,1,78,2, +118,1,3,0,120,254,147,253,10,254,81,254,6,254,23,255,79,1,246,2,170,3,37,3,182,1,219,0,96,0,61,255, +74,254,17,254,45,254,27,255,84,0,114,0,72,0,164,0,176,0,248,0,219,1,100,1,121,255,28,254,99,253,43,253, +79,254,208,255,158,0,157,1,107,2,243,1,61,1,241,0,77,0,162,255,42,255,22,254,220,252,154,252,75,253,233,254, +60,1,228,2,250,2,191,1,171,255,189,253,49,253,7,254,4,255,18,255,196,254,167,255,115,1,115,2,83,2,130,1, +123,0,105,0,178,0,59,255,86,253,128,253,118,254,65,255,208,0,99,1,188,255,67,254,15,253,192,250,59,250,45,253, +140,0,8,3,136,4,24,3,14,0,205,254,59,254,254,252,37,253,162,254,118,255,170,255,50,255,30,254,77,254,158,255, +1,0,251,255,161,0,83,1,1,2,20,2,76,0,91,254,81,254,251,254,84,255,77,255,179,253,86,251,203,250,132,251, +37,252,209,253,100,0,14,2,109,2,98,1,43,255,28,254,60,255,214,0,218,1,216,1,58,0,57,254,75,253,17,253, +121,253,88,254,57,254,92,253,62,253,53,253,245,252,33,254,47,0,41,1,115,1,138,1,148,0,94,255,108,255,25,0, +106,0,108,0,125,255,51,253,164,251,239,252,161,255,49,1,130,1,135,0,79,253,242,249,105,249,70,250,228,250,233,252, +199,255,95,1,246,2,100,4,244,2,48,1,149,2,149,3,135,1,245,254,203,251,124,247,228,245,198,247,18,250,150,253, +208,2,200,5,126,5,52,4,212,1,88,255,145,255,13,1,150,0,195,254,34,253,229,251,181,251,209,252,102,254,33,0, +225,1,179,2,159,1,221,254,17,252,223,250,194,251,200,254,172,2,96,4,39,3,61,1,84,255,171,253,0,254,112,255, +152,255,145,255,33,0,155,255,232,254,92,255,76,255,145,255,108,2,190,4,125,3,42,1,112,255,238,253,20,254,137,255, +166,255,19,255,109,255,142,255,132,255,178,0,216,1,161,1,26,1,200,0,44,0,142,255,81,255,102,255,157,255,166,255, +164,255,47,0,49,1,216,1,73,1,100,255,137,253,65,253,111,254,107,0,196,2,122,4,225,4,87,4,20,3,97,1, +251,255,249,254,129,254,79,255,213,0,227,1,103,2,241,1,23,0,155,254,185,254,75,255,234,255,6,1,221,1,123,2, +158,3,8,4,229,2,238,1,243,1,252,1,206,1,47,1,92,255,30,253,40,252,215,252,116,254,43,0,132,1,103,2, +141,2,230,1,64,1,68,1,30,2,215,3,39,5,173,4,180,3,149,3,219,2,208,0,215,254,34,253,183,251,32,252, +25,254,170,255,215,0,34,2,164,2,213,2,10,4,44,5,227,4,41,4,174,3,165,2,19,1,205,255,231,254,86,254, +127,254,39,255,187,255,170,0,121,2,3,4,249,3,228,2,234,1,132,1,14,2,51,3,129,3,148,2,126,1,190,0, +85,0,153,0,54,1,134,1,131,1,9,1,24,0,187,255,122,0,185,1,26,3,221,3,231,2,25,1,20,0,155,255, +137,255,152,0,239,1,132,2,32,3,193,3,159,3,233,3,67,5,148,5,219,3,91,1,164,254,76,252,255,251,222,253, +101,0,224,2,155,4,69,4,86,2,227,0,182,0,58,1,9,2,184,2,172,2,247,1,55,1,162,0,54,0,22,0, +59,0,119,0,246,0,206,1,83,2,227,1,7,1,193,0,72,1,243,1,21,2,148,1,244,0,217,0,109,1,58,2, +209,2,92,3,229,3,226,3,41,3,11,2,146,0,68,255,75,255,104,0,68,1,177,1,228,1,134,1,10,1,245,0, +171,0,154,0,230,1,52,3,170,2,59,1,59,0,186,255,3,0,108,0,154,255,248,254,178,0,144,3,147,5,137,6, +15,6,27,4,33,2,138,0,215,254,14,254,180,254,72,255,66,255,140,255,77,0,63,1,110,2,137,3,34,4,241,3, +151,2,107,0,178,254,151,254,74,0,68,2,140,2,142,1,208,0,242,255,228,254,49,255,110,0,36,1,99,2,113,4, +9,5,115,4,147,4,243,3,149,1,14,0,163,255,99,254,212,253,204,254,197,253,37,251,51,252,132,0,79,3,130,4, +75,5,41,4,203,2,236,3,127,4,116,2,84,1,214,0,161,253,58,251,197,253,93,1,130,2,192,2,28,2,88,0, +31,0,62,1,233,0,62,0,62,1,238,1,124,0,148,254,78,254,164,255,71,1,105,2,190,2,48,2,20,2,218,2, +154,1,34,254,199,252,136,253,55,253,141,253,205,255,145,1,162,3,10,6,240,4,231,1,248,255,0,252,74,248,208,251, +110,2,41,5,90,5,252,2,35,254,141,252,133,253,67,252,162,252,41,0,50,1,180,0,32,1,208,254,22,252,190,254, +79,3,81,4,46,1,68,251,123,248,122,253,225,3,37,5,172,3,132,1,217,254,39,254,54,255,0,0,46,1,21,1, +89,253,24,250,21,251,171,253,202,255,72,1,146,0,207,254,58,255,208,0,29,1,210,0,156,0,22,0,234,255,80,0, +119,0,48,0,186,254,81,251,218,248,250,250,177,255,114,2,252,2,73,3,105,3,254,2,18,2,107,0,123,254,245,251, +233,247,226,245,161,250,113,2,245,5,153,4,248,1,37,1,94,3,241,4,208,2,150,0,122,254,39,248,50,241,207,237, +226,235,175,241,6,4,34,16,104,4,206,233,182,209,164,205,141,234,137,20,158,42,50,49,125,55,133,48,59,24,248,2, +213,248,150,248,222,1,121,1,224,234,217,215,254,219,77,232,166,241,156,249,143,251,52,250,154,255,50,6,53,5,148,2, +181,2,237,1,42,1,128,2,190,2,224,255,180,250,226,244,25,243,7,249,97,3,116,11,184,12,237,6,223,254,206,249, +18,248,66,248,137,250,194,253,46,0,149,2,240,4,253,4,233,2,1,0,6,251,59,245,255,243,81,248,163,253,75,1, +64,3,176,3,243,3,48,4,47,2,197,254,77,253,17,253,151,251,4,250,233,249,151,250,172,251,23,253,46,254,231,254, +251,254,129,253,124,251,71,251,70,253,18,0,62,2,202,2,117,1,181,254,237,251,73,251,227,252,79,254,21,255,244,0, +105,3,123,4,109,3,247,255,234,251,189,251,213,255,51,3,63,3,27,1,118,253,0,250,45,249,250,249,155,250,50,252, +171,254,129,255,114,254,33,253,56,252,127,252,59,254,172,255,176,255,245,254,17,254,5,254,253,255,174,2,31,4,171,4, +249,4,190,4,42,4,161,2,45,255,222,251,0,251,193,250,146,249,93,249,208,250,153,252,19,255,26,2,101,3,139,2, +206,0,45,254,59,252,91,254,143,3,12,7,212,6,217,3,166,255,35,253,32,254,86,0,54,1,252,0,2,0,46,254, +132,252,201,251,5,252,185,253,50,0,35,1,78,0,234,255,11,1,223,2,249,3,10,3,174,0,120,255,114,0,14,2, +244,2,253,2,95,2,191,1,193,1,41,2,125,2,153,2,73,2,117,1,110,0,155,255,49,255,255,254,147,254,0,254, +179,253,125,253,46,253,103,253,78,254,39,255,184,255,107,0,112,1,251,2,10,5,149,6,195,6,27,6,51,5,211,3, +61,2,77,1,31,1,30,1,40,1,105,1,130,1,196,0,6,255,15,253,33,252,238,252,206,254,99,0,48,1,22,2, +225,3,254,5,62,7,66,7,69,6,114,4,75,2,176,0,243,255,223,255,110,0,44,1,27,1,50,0,87,255,191,254, +76,254,157,254,249,255,177,1,72,3,81,4,3,4,179,2,208,1,153,1,65,1,201,0,166,0,254,0,60,2,88,4, +253,5,57,6,139,5,134,4,110,3,187,2,59,2,63,1,92,0,138,0,42,1,80,1,81,1,117,1,126,1,189,1, +32,2,188,1,27,1,221,1,153,3,163,4,191,4,50,4,10,3,110,2,247,2,242,2,156,1,193,0,45,1,166,1, +172,1,142,1,77,1,88,1,238,1,41,2,236,1,139,2,254,3,88,4,198,2,171,0,194,255,121,0,254,1,72,3, +249,3,51,4,255,3,43,3,181,1,82,0,236,255,123,0,127,1,5,3,219,4,237,5,132,5,206,3,107,1,138,255, +32,255,161,255,3,0,53,0,142,0,121,1,96,3,44,5,233,4,232,2,85,1,16,1,170,1,121,2,57,2,176,0, +184,255,242,255,246,255,48,0,29,2,60,4,22,4,234,1,51,255,147,253,29,255,0,3,4,5,157,3,105,1,62,0, +89,0,68,2,33,5,180,6,145,6,53,5,11,2,244,253,20,252,251,253,250,1,27,5,13,5,2,2,172,254,247,252, +98,252,63,252,9,253,29,255,115,1,49,2,24,1,106,0,133,1,198,2,204,2,148,2,235,2,54,3,201,2,192,1, +163,1,4,4,213,6,32,6,67,2,36,255,42,254,22,254,191,253,83,252,228,250,88,252,93,0,109,3,169,4,199,4, +206,2,196,255,100,254,103,253,164,251,11,253,193,2,31,8,27,11,156,11,40,7,1,0,226,252,164,253,211,254,6,2, +131,5,242,2,156,252,122,249,13,249,50,250,12,255,179,3,68,3,116,1,39,1,241,255,87,255,148,1,252,2,57,2, +72,2,97,2,250,0,88,0,5,1,46,1,154,0,34,255,98,253,203,253,144,255,146,255,119,254,221,253,250,253,144,0, +187,4,121,5,255,2,172,1,83,1,215,1,92,5,193,7,37,4,235,254,44,252,166,249,63,248,105,250,131,253,250,0, +82,6,103,8,2,4,77,0,166,1,180,3,9,4,99,2,73,253,109,248,233,248,122,251,101,252,246,254,180,3,22,6, +145,5,171,3,232,255,0,253,93,254,158,0,14,0,128,255,12,1,145,2,140,3,75,4,180,2,255,254,18,253,52,254, +93,0,133,2,137,3,19,1,37,252,100,249,118,250,188,252,175,254,177,0,87,2,137,3,54,5,57,6,139,4,147,1, +165,255,9,254,64,252,24,252,183,253,127,255,46,1,60,2,7,1,140,254,165,253,155,254,255,255,33,1,63,1,24,0, +50,255,137,255,67,0,161,0,126,0,208,255,33,255,221,254,200,254,33,255,33,0,221,0,231,0,212,0,136,0,248,255, +233,255,221,255,244,254,91,254,242,254,113,255,76,255,19,255,178,254,209,254,101,0,158,1,123,0,114,254,81,253,217,252, +241,252,60,253,169,252,67,252,181,253,144,255,47,0,153,0,29,1,166,0,157,255,158,254,59,253,107,252,95,253,205,254, +120,255,11,0,158,0,168,0,192,0,10,1,85,0,90,254,57,252,1,251,9,251,206,251,133,252,46,253,8,254,220,254, +150,255,13,0,18,0,140,0,231,1,51,2,91,0,37,254,180,252,213,251,89,252,11,254,216,254,180,254,238,254,124,254, +208,252,40,252,34,253,245,253,84,254,132,254,187,253,175,252,200,252,34,253,247,252,177,253,160,255,39,1,130,1,235,0, +184,255,188,254,78,254,174,253,205,252,139,252,47,253,55,254,211,254,88,254,80,253,228,252,45,253,190,253,123,254,247,254, +18,255,113,255,9,0,80,0,133,0,91,0,220,254,215,252,223,251,215,251,102,252,148,253,86,254,134,254,181,255,116,1, +225,1,168,1,191,1,243,0,125,255,230,254,76,254,240,252,159,252,142,253,35,254,223,254,28,0,239,255,136,254,47,254, +93,254,167,253,85,253,69,254,38,255,141,255,224,255,169,255,72,255,213,255,122,0,211,255,244,254,149,255,47,1,235,1, +235,0,24,255,99,254,190,255,161,1,154,1,60,255,108,252,5,251,93,251,215,252,221,254,29,1,254,2,51,3,251,0, +207,253,72,252,191,253,208,1,11,6,126,6,17,2,213,252,234,250,87,252,240,254,30,0,94,254,64,252,111,253,192,0, +29,3,111,4,204,4,87,3,40,1,16,255,109,252,74,251,248,253,178,1,244,2,194,1,119,255,41,255,115,3,56,8, +12,9,29,10,141,14,22,17,184,13,7,5,233,248,133,240,167,241,121,245,189,245,184,247,180,251,242,250,50,249,26,253, +222,2,223,7,69,12,66,9,29,255,192,250,178,254,39,3,26,8,225,11,4,6,146,249,193,240,240,236,196,239,104,252, +46,10,81,15,130,13,5,8,143,2,37,3,216,5,245,2,34,255,64,0,73,4,5,10,208,13,124,10,80,5,255,2, +6,255,22,252,233,254,174,255,224,250,144,246,97,244,163,249,19,11,173,24,232,21,240,15,162,15,81,16,207,16,125,7, +153,234,182,205,242,195,200,194,73,199,91,221,194,252,0,24,231,45,113,50,105,32,23,20,147,28,111,34,244,24,73,10, +183,250,79,241,42,247,190,252,47,242,117,231,129,234,19,241,60,247,149,2,85,13,15,18,56,20,146,17,178,8,124,3, +97,5,19,6,55,4,199,4,172,6,161,7,106,8,129,7,122,3,103,254,179,249,9,246,122,245,44,248,207,251,86,254, +181,253,5,250,174,247,132,249,1,253,87,255,17,0,50,0,163,2,12,8,138,11,38,10,245,6,191,3,180,255,220,252, +35,253,18,255,32,2,253,5,40,7,155,4,232,1,224,255,90,253,179,252,90,254,149,254,129,254,67,2,203,6,15,7, +218,4,151,2,227,255,59,255,220,1,231,2,193,0,143,255,140,254,192,250,131,248,31,251,153,253,163,253,198,254,227,0, +174,2,178,6,68,11,110,10,91,5,51,1,63,253,140,248,226,246,130,249,79,254,194,4,87,10,242,9,44,4,212,254, +113,252,49,252,178,253,204,255,146,0,167,255,209,253,8,252,78,251,193,251,40,253,244,255,156,3,96,6,49,7,150,5, +68,2,119,0,254,1,50,4,255,4,70,5,225,4,41,3,25,1,241,253,118,248,250,243,4,244,64,247,227,251,92,1, +33,5,224,5,200,5,223,5,40,6,49,8,106,10,142,8,249,3,31,1,14,255,115,251,70,248,36,247,26,247,237,247, +41,249,218,249,184,251,57,0,97,4,77,5,75,4,98,3,55,3,114,4,137,6,232,6,18,4,184,255,210,252,210,252, +174,254,104,0,12,1,172,0,109,255,121,253,122,251,33,251,117,254,223,4,58,10,29,11,123,8,58,5,133,2,216,255, +127,252,252,247,11,243,74,240,7,241,194,242,6,244,246,247,195,254,248,1,251,255,145,0,139,7,88,16,98,24,199,30, +142,30,107,22,163,11,58,255,48,240,186,228,163,223,184,217,242,210,142,213,52,227,215,244,250,6,251,20,5,25,94,24, +161,26,176,26,114,20,132,15,131,14,60,11,142,5,12,0,23,248,208,239,75,237,82,237,169,235,145,238,194,248,225,1, +3,6,40,9,192,11,194,11,125,10,219,8,137,6,255,4,195,4,90,4,106,3,157,1,52,254,34,251,18,250,193,248, +159,246,122,247,146,252,96,2,104,5,222,3,23,254,188,247,49,244,3,243,147,243,218,247,229,255,81,7,64,10,46,9, +93,6,7,3,55,0,88,255,178,0,4,3,149,4,253,3,181,1,42,0,2,0,60,255,135,253,62,252,247,250,47,250, +243,252,135,2,88,6,219,7,145,8,68,6,246,0,2,254,198,254,219,254,122,252,255,248,155,245,21,245,64,249,198,254, +67,2,56,4,200,4,80,3,197,0,109,253,16,250,95,250,25,254,232,254,93,251,65,249,160,251,11,1,216,6,133,8, +50,5,206,3,87,7,154,8,150,3,136,253,159,250,94,250,186,251,31,253,211,253,63,255,255,255,103,253,135,251,198,255, +100,6,121,8,103,5,5,0,94,251,239,250,94,254,67,1,77,2,109,3,70,4,182,3,175,2,164,1,41,0,198,254, +97,253,41,251,37,249,242,248,152,250,160,253,254,0,129,2,234,1,185,1,29,3,22,5,9,7,32,8,189,6,19,3, +36,255,191,251,213,248,98,247,34,248,38,250,11,252,78,253,103,254,83,0,132,3,220,6,115,8,88,7,58,4,156,0, +203,253,102,252,149,252,68,254,209,0,217,2,46,3,17,2,211,0,112,0,147,0,39,0,231,254,188,253,176,253,207,254, +73,0,112,1,47,2,166,2,162,2,222,1,157,0,181,255,201,255,138,0,251,0,119,0,88,255,122,254,56,254,48,254, +19,254,81,254,142,255,131,1,245,2,1,3,38,2,160,1,220,1,17,2,109,1,36,0,246,254,26,254,57,253,107,252, +119,252,208,253,167,255,150,0,37,0,68,255,53,255,81,0,250,1,104,3,44,4,46,4,131,3,104,2,60,1,75,0, +179,255,96,255,22,255,144,254,210,253,96,253,197,253,217,254,187,255,220,255,193,255,89,0,176,1,193,2,194,2,254,1, +38,1,59,0,225,254,133,253,97,253,6,255,114,1,23,3,118,3,37,3,140,2,103,1,162,255,11,254,142,253,28,254, +218,254,57,255,100,255,155,255,190,255,171,255,165,255,250,255,131,0,230,0,35,1,121,1,203,1,165,1,242,0,59,0, +248,255,6,0,19,0,62,0,187,0,25,1,134,0,10,255,218,253,25,254,159,255,86,1,120,2,227,2,109,2,206,0, +122,254,216,252,14,253,192,254,139,0,137,1,222,1,228,1,162,1,61,1,64,1,234,1,113,2,183,1,174,255,144,253, +150,252,241,252,42,254,228,255,177,1,176,2,25,2,69,0,146,254,255,253,86,254,215,254,82,255,0,0,194,0,33,1, +26,1,66,1,217,1,72,2,228,1,216,0,211,255,15,255,63,254,108,253,51,253,233,253,247,254,133,255,116,255,79,255, +104,255,147,255,200,255,82,0,47,1,168,1,28,1,233,255,26,255,46,255,176,255,253,255,246,255,193,255,77,255,145,254, +254,253,36,254,227,254,118,255,103,255,30,255,54,255,165,255,231,255,199,255,141,255,119,255,101,255,70,255,90,255,195,255, +47,0,59,0,31,0,119,0,98,1,41,2,2,2,223,0,90,255,24,254,117,253,157,253,119,254,112,255,198,255,71,255, +161,254,169,254,119,255,87,0,150,0,21,0,43,255,77,254,226,253,40,254,250,254,199,255,21,0,10,0,72,0,41,1, +70,2,200,2,30,2,94,0,34,254,59,252,90,251,184,251,227,252,7,254,151,254,175,254,220,254,142,255,189,0,255,1, +208,2,210,2,252,1,169,0,99,255,147,254,72,254,75,254,83,254,65,254,45,254,89,254,3,255,85,0,11,2,118,3, +241,3,54,3,120,1,109,255,246,253,140,253,42,254,101,255,141,0,49,1,74,1,238,0,103,0,13,0,165,255,192,254, +193,253,88,253,172,253,187,254,88,0,143,1,148,1,234,0,94,0,246,255,162,255,148,255,155,255,99,255,30,255,37,255, +94,255,144,255,211,255,43,0,28,0,74,255,90,254,56,254,239,254,12,0,56,1,181,1,224,0,116,255,169,254,114,254, +43,254,223,253,200,253,215,253,77,254,110,255,180,0,80,1,62,1,56,1,165,1,30,2,40,2,187,1,194,0,55,255, +251,253,234,253,125,254,246,254,160,255,103,0,83,0,101,255,165,254,97,254,91,254,189,254,70,255,10,255,11,254,190,253, +42,255,132,1,56,3,169,3,11,3,180,1,148,0,166,0,238,0,194,255,233,253,48,253,106,253,12,254,129,255,253,0, +10,1,84,0,8,0,157,255,10,255,95,255,71,0,138,0,22,0,95,255,242,254,163,255,50,1,87,2,133,2,170,1, +231,255,149,254,137,254,148,254,125,254,121,255,221,0,102,1,236,1,172,2,59,2,220,1,53,2,48,1,134,255,89,255, +90,255,101,254,193,253,189,253,255,253,138,254,166,254,123,254,52,255,31,0,70,0,111,0,226,0,126,1,161,2,191,2, +238,0,85,0,120,1,8,0,156,252,107,251,144,251,144,252,145,0,50,3,192,0,199,255,204,2,76,3,94,1,117,1, +74,1,100,0,219,2,48,5,50,1,140,251,7,252,168,0,70,3,190,2,109,0,178,252,156,249,174,250,238,255,66,5, +208,6,59,4,238,0,78,0,237,0,181,255,75,254,67,255,62,0,4,255,109,253,190,252,176,253,119,1,155,3,40,255, +223,251,150,2,129,11,172,12,20,7,38,250,193,233,116,235,174,7,191,34,121,33,161,5,59,225,117,205,236,217,151,244, +92,3,100,7,37,9,233,8,86,12,211,17,170,14,126,11,208,16,122,11,173,245,153,230,83,230,73,239,15,2,159,15, +101,9,12,4,190,13,159,16,28,4,9,249,247,244,22,247,128,1,217,8,157,3,38,253,100,254,149,0,87,254,21,252, +84,0,230,5,221,0,100,249,226,253,228,255,157,245,106,246,15,5,63,5,107,244,1,223,43,204,250,225,141,49,200,109, +167,83,106,14,114,217,74,185,20,181,217,218,84,19,233,57,11,61,26,27,91,232,101,201,181,210,126,247,67,24,49,36, +254,33,218,16,108,240,21,228,30,255,79,19,191,2,207,241,201,246,98,255,194,5,113,8,111,252,128,240,86,250,10,11, +47,14,108,8,98,254,39,238,133,225,224,231,20,3,233,31,251,37,128,19,22,250,178,231,124,229,48,245,132,7,59,15, +243,14,44,8,41,253,129,250,46,2,32,7,32,4,197,251,203,241,172,239,40,248,185,1,184,8,39,13,151,9,99,1, +94,253,14,251,223,248,51,252,253,1,135,5,41,9,65,9,184,1,55,250,76,247,80,246,120,250,57,4,187,10,157,10, +2,7,104,1,167,253,211,254,46,0,46,253,12,248,250,245,245,250,111,4,48,10,124,8,199,2,216,254,245,254,96,253, +88,247,92,246,11,253,144,1,178,3,95,6,220,2,146,253,119,254,11,248,50,233,215,237,252,10,62,41,31,58,87,45, +161,250,182,200,167,191,208,210,184,233,43,249,0,243,168,224,210,222,54,234,243,247,5,21,52,56,66,67,169,54,202,27, +242,243,232,221,183,239,133,3,159,254,134,252,11,8,245,14,28,18,4,17,70,254,138,234,80,238,213,248,215,246,187,246, +110,0,98,6,68,6,190,8,122,13,196,16,37,17,230,9,52,250,7,237,98,236,194,243,10,249,159,250,82,251,108,250, +161,248,71,249,13,251,250,251,214,254,123,2,248,1,135,0,108,3,208,6,171,7,111,9,6,11,188,8,165,5,16,4, +36,1,198,254,60,1,1,5,221,4,39,1,32,251,53,245,219,244,156,250,68,1,16,6,250,6,87,1,96,249,85,245, +24,244,92,245,12,252,166,2,211,2,52,2,30,4,54,2,27,253,194,250,51,249,200,247,150,250,9,253,69,250,231,249, +135,255,91,3,183,3,66,4,132,2,177,254,186,254,222,1,49,4,136,7,154,10,82,7,202,255,115,251,88,250,95,249, +75,250,197,253,120,255,90,253,81,250,227,248,11,250,100,254,12,3,237,2,137,254,87,251,97,251,22,253,77,0,225,4, +116,8,201,8,116,5,16,0,2,252,139,251,141,253,112,255,126,255,34,254,106,252,151,250,188,249,208,250,123,253,72,1, +18,5,205,6,100,6,223,4,191,1,15,254,211,252,142,253,235,253,212,254,186,0,119,1,74,1,142,1,27,1,85,0, +242,0,132,0,88,253,110,251,188,252,75,254,112,255,73,1,120,2,154,2,144,2,205,0,65,253,156,251,215,252,216,254, +150,1,143,4,144,4,238,0,185,252,188,250,51,252,177,255,60,1,251,255,145,255,90,1,202,2,105,2,233,0,91,255, +205,254,44,255,144,255,54,0,82,1,132,1,71,0,245,254,125,254,131,254,48,254,125,253,241,253,16,0,8,2,54,3, +101,4,91,4,46,2,181,255,173,253,49,252,102,253,69,0,164,0,198,255,138,0,231,255,95,253,215,253,46,0,36,0, +204,255,194,255,52,253,178,252,23,2,125,5,186,2,165,0,243,0,143,0,237,1,247,3,47,1,20,254,152,0,145,2, +21,0,187,254,57,255,20,255,248,0,39,3,131,0,255,253,252,0,149,3,32,2,84,0,77,254,100,252,204,254,31,2, +14,0,120,253,210,255,134,2,34,3,51,4,170,3,117,0,83,255,93,0,168,255,18,255,162,0,214,0,196,254,118,253, +98,253,48,254,243,0,121,4,43,6,144,5,172,3,197,1,138,0,147,255,174,255,1,2,241,3,149,2,238,255,142,254, +68,254,24,255,26,0,237,254,54,253,88,254,160,0,179,1,38,3,46,5,222,5,123,5,145,4,200,2,72,1,250,255, +11,253,36,250,13,250,190,251,74,254,167,1,226,2,17,1,201,255,101,255,14,254,4,254,254,255,190,0,24,1,109,3, +99,5,66,6,13,8,5,8,247,3,112,0,207,255,137,255,121,255,157,255,234,253,140,252,84,254,243,255,51,255,4,255, +75,0,194,1,56,3,53,3,157,1,35,2,106,4,58,3,89,254,126,250,52,250,176,252,55,254,202,251,163,249,68,253, +94,3,61,6,122,6,100,6,107,6,132,6,144,4,74,254,81,246,182,241,245,242,178,249,84,3,248,11,241,16,23,18, +110,17,4,17,43,16,34,13,109,7,26,254,202,241,65,232,193,229,85,231,79,234,124,240,191,249,92,3,46,12,40,19, +70,22,235,20,107,15,222,6,222,254,224,250,58,250,111,249,25,246,215,241,20,241,198,244,56,249,153,252,185,255,198,1, +202,2,33,5,236,7,186,8,97,9,61,11,148,11,85,10,45,10,208,9,71,7,157,4,228,2,162,0,31,254,10,252, +212,249,2,249,152,251,166,255,8,2,196,1,2,255,121,251,169,249,58,249,188,248,84,249,187,251,82,254,39,0,156,0, +215,254,86,253,90,255,89,2,42,2,12,0,229,254,251,254,79,0,39,2,71,2,58,1,157,1,170,2,153,2,226,2, +98,4,74,5,49,5,243,4,19,4,189,2,14,2,29,1,0,255,117,253,105,253,146,253,146,253,122,253,84,252,205,250, +232,250,36,252,252,252,35,254,30,0,107,1,84,1,144,0,153,255,104,255,162,0,57,1,133,255,227,253,245,254,121,1, +229,2,76,2,38,0,77,254,147,254,158,255,167,254,131,252,92,252,156,254,30,1,73,2,125,1,68,255,194,253,59,254, +57,255,79,255,83,255,233,255,41,0,46,0,71,1,31,3,71,4,133,4,200,3,70,1,204,253,144,251,169,250,148,249, +176,248,107,249,170,251,161,254,107,1,145,2,11,2,2,2,98,3,179,4,213,4,240,3,132,2,94,1,21,1,81,1, +105,1,76,0,235,252,255,248,213,247,14,249,44,250,207,251,18,255,40,2,227,3,103,4,160,2,133,255,224,254,123,0, +157,0,209,255,137,0,244,0,191,255,89,255,55,0,156,0,245,0,218,0,193,253,4,249,125,247,98,250,183,254,200,1, +149,2,74,2,160,3,231,5,107,4,136,254,47,250,185,251,50,1,178,5,39,5,181,255,214,250,11,250,136,249,27,248, +208,251,71,3,47,5,255,1,252,254,71,250,214,245,57,246,87,249,85,5,159,30,98,42,152,17,140,235,55,216,71,221, +39,245,94,15,149,21,50,11,54,3,78,255,222,252,158,1,84,8,45,6,172,254,74,247,66,238,246,232,123,238,173,247, +20,252,202,254,107,2,148,4,128,6,241,9,175,12,103,14,254,15,204,13,46,5,211,250,238,243,197,239,27,237,232,238, +83,247,49,3,34,13,71,17,252,13,144,5,38,254,207,251,48,253,194,255,2,2,126,1,118,253,70,249,134,247,160,247, +56,249,1,252,102,254,58,0,138,2,60,4,165,3,59,1,1,254,39,251,153,250,46,252,176,253,254,254,11,1,221,2, +230,3,0,5,135,5,144,4,40,3,214,1,15,0,195,254,227,254,223,254,40,253,224,250,91,250,142,252,196,255,234,0, +44,255,2,253,54,253,94,0,48,4,36,5,215,2,110,0,60,255,7,254,248,252,153,252,26,252,104,252,61,255,113,2, +190,2,186,0,20,254,70,251,5,250,218,251,72,255,162,2,125,5,57,6,208,3,188,0,151,255,252,255,165,0,255,0, +168,0,220,255,106,255,101,255,88,255,32,255,195,254,114,254,166,254,105,255,21,0,30,0,122,255,135,254,129,253,72,252, +94,251,3,252,136,254,204,1,100,4,55,5,8,4,6,2,94,0,24,255,109,254,23,255,169,0,220,1,246,1,140,0, +220,253,160,251,57,251,45,252,194,253,148,255,185,0,194,0,74,0,162,255,9,255,81,255,123,0,102,1,166,1,140,1, +78,1,149,1,180,2,57,3,233,1,201,255,71,254,168,253,198,253,64,254,148,254,230,254,111,255,182,255,118,255,11,255, +175,254,163,254,91,255,146,0,101,1,89,1,105,0,63,255,83,255,237,0,110,2,239,2,225,2,29,2,162,0,199,255, +6,0,56,0,2,0,204,255,242,254,68,253,24,252,6,252,190,252,176,254,125,1,32,3,250,2,115,2,48,2,230,1, +201,1,206,1,97,1,167,0,242,255,213,254,118,253,201,252,228,252,84,253,53,254,66,255,233,255,168,0,213,1,99,2, +250,1,137,1,37,1,128,0,95,0,158,0,213,255,145,254,154,254,169,255,247,0,196,2,235,3,243,2,95,1,0,1, +26,1,75,1,25,2,46,2,106,0,134,254,184,253,48,253,58,253,123,254,185,255,86,0,23,1,83,1,88,0,173,255, +247,255,189,255,34,255,176,255,242,0,204,1,84,2,13,2,152,0,179,255,40,0,56,0,142,255,168,255,118,0,90,1, +161,2,71,3,202,1,117,255,74,254,0,254,21,254,234,254,13,0,39,1,142,2,33,3,156,1,193,255,198,255,25,1, +37,2,30,2,216,0,96,255,67,255,45,0,174,0,218,0,109,1,0,2,203,1,148,0,188,254,135,253,6,254,137,255, +151,0,188,0,183,0,151,1,83,3,78,4,90,3,87,1,167,255,193,254,229,254,254,255,5,1,144,1,69,2,153,2, +163,1,183,0,22,1,93,1,117,0,58,255,35,254,107,253,57,254,44,0,65,1,147,1,100,2,214,2,61,2,247,1, +92,2,91,2,184,1,124,0,206,254,206,253,13,254,27,255,253,0,25,3,135,3,183,1,82,255,9,254,163,254,207,0, +162,2,149,2,113,1,119,0,196,255,68,255,35,255,136,255,151,0,78,2,65,4,246,4,66,3,37,1,15,1,33,1, +23,255,217,252,191,252,254,254,200,2,46,5,202,3,97,1,67,0,202,253,138,250,30,251,93,255,24,5,17,10,101,7, +74,253,247,246,115,246,237,247,153,255,251,7,179,4,218,253,50,255,221,4,228,13,146,22,128,16,65,1,79,251,52,249, +80,241,57,237,128,241,194,248,42,2,236,7,116,3,166,255,182,6,54,14,74,11,41,1,92,246,161,242,155,252,189,11, +75,16,98,10,167,4,247,1,166,255,131,252,188,247,76,243,205,243,84,248,128,251,119,253,79,2,155,8,241,10,99,8, +188,4,210,2,181,2,110,3,225,3,92,3,97,2,86,1,42,255,20,252,208,250,139,252,144,255,57,2,89,3,56,2, +219,255,76,253,219,250,66,250,156,252,211,255,172,1,117,1,61,255,199,253,76,0,11,4,243,3,227,0,214,254,223,254, +12,0,183,0,160,255,213,254,228,0,140,3,247,2,179,255,114,253,158,254,29,2,26,4,99,2,79,255,183,253,220,252, +202,251,31,252,105,254,41,1,187,3,251,4,83,3,71,1,212,1,244,1,50,255,241,252,159,252,106,252,121,253,251,255, +113,0,26,255,252,254,101,255,158,255,19,1,182,2,239,2,61,2,94,0,207,253,45,253,248,254,153,1,198,3,106,3, +37,0,243,252,57,251,185,250,135,252,111,255,118,0,58,0,73,0,96,0,83,1,193,2,7,2,82,0,177,0,243,1, +110,2,169,2,235,1,13,0,9,255,21,255,9,255,34,255,111,255,253,254,49,253,228,250,201,250,228,253,4,1,143,1, +59,0,99,254,5,254,71,0,239,1,100,0,123,254,213,254,187,0,230,2,84,3,245,0,72,254,60,253,36,253,234,253, +41,255,173,255,8,0,2,0,218,253,134,251,210,252,22,1,241,4,84,6,26,5,194,2,135,0,134,254,62,253,137,252, +153,251,111,251,187,252,116,254,190,0,187,2,139,1,196,254,170,254,142,0,214,1,0,2,13,1,66,1,91,4,38,6, +249,3,40,1,38,255,67,254,111,255,67,253,6,245,58,241,102,247,210,253,242,253,180,249,245,243,8,244,238,253,112,6, +48,5,220,2,30,6,72,10,188,11,83,9,143,2,37,253,129,253,221,253,212,249,5,246,194,245,6,248,180,252,106,1, +242,1,206,0,164,2,124,4,67,3,108,2,3,3,136,2,94,2,99,3,88,3,206,3,161,5,55,3,207,251,227,246, +123,247,147,250,130,253,200,253,238,251,175,252,70,0,250,1,180,0,137,254,23,253,136,253,168,254,188,254,121,255,221,1, +185,3,181,3,48,1,200,252,215,250,89,253,181,0,203,2,66,3,192,0,228,253,236,254,221,1,27,3,228,2,96,1, +96,254,200,251,35,251,129,252,43,255,137,1,117,2,158,1,243,255,194,0,149,4,227,6,242,6,66,8,27,10,125,11, +179,13,68,12,160,2,229,245,10,236,73,231,69,235,191,245,197,252,144,253,105,252,233,249,210,247,240,250,221,0,98,3, +176,2,234,0,141,254,239,255,191,7,153,13,138,9,169,1,107,253,177,249,221,244,76,242,85,240,136,240,59,250,98,6, +51,8,153,6,208,9,242,9,143,6,16,7,66,7,43,7,86,14,238,18,85,10,56,0,18,252,90,248,51,248,57,252, +244,250,118,248,59,253,4,0,204,250,88,246,130,245,66,246,106,250,170,253,209,251,46,253,103,6,93,14,119,14,91,9, +254,2,65,254,30,252,146,250,4,249,75,250,75,255,213,3,6,4,140,1,165,255,197,254,170,255,10,3,246,5,124,6, +17,6,35,4,48,0,207,253,88,254,29,255,106,255,60,255,144,253,39,252,83,253,5,0,50,2,102,2,90,0,57,254, +140,253,167,253,107,254,128,255,33,0,161,1,220,3,91,3,165,255,3,252,188,250,218,252,13,1,224,3,43,5,78,6, +150,5,28,3,47,1,226,254,171,252,209,253,101,0,108,1,18,3,50,4,172,0,190,251,56,250,2,251,194,253,129,2, +83,4,235,0,220,252,163,251,80,253,211,0,193,2,248,0,156,254,111,254,85,255,142,0,254,1,86,2,191,1,145,1, +58,1,118,0,116,0,237,255,97,253,248,251,65,254,125,1,113,3,154,4,116,4,106,3,47,3,107,2,44,0,54,255, +20,0,220,0,175,1,87,1,236,253,226,250,169,251,92,254,63,1,213,2,133,0,99,253,147,254,113,1,34,2,217,1, +191,0,98,255,102,0,152,0,70,252,221,248,125,250,16,254,14,2,243,4,233,3,129,2,3,4,241,3,46,1,48,0, +18,1,237,1,87,2,192,0,143,254,182,255,182,2,218,3,32,3,191,0,61,253,93,251,130,251,255,251,194,253,58,1, +189,3,37,4,165,3,68,2,249,255,243,254,162,0,193,2,169,2,20,1,157,255,76,254,205,253,22,255,240,0,202,1, +41,1,161,254,87,251,228,249,22,251,81,254,130,2,232,5,115,8,45,10,240,7,190,1,233,252,133,250,185,248,4,250, +7,254,152,255,148,255,74,1,105,2,59,2,124,2,138,0,104,252,90,251,84,253,53,255,187,1,144,3,215,1,242,254, +233,252,16,251,202,251,76,255,169,0,3,0,114,1,206,3,51,5,209,6,71,7,198,4,92,1,133,254,35,252,89,251, +249,251,84,252,188,252,55,254,178,0,55,3,90,3,141,0,179,254,254,255,114,2,177,4,62,5,55,2,196,254,182,254, +132,255,15,255,9,255,99,254,156,252,120,253,40,0,69,0,195,255,69,1,110,2,206,3,136,6,19,5,34,254,6,250, +61,252,35,0,190,2,76,2,238,253,57,251,135,254,7,2,163,0,83,254,166,254,111,0,185,2,124,3,160,0,64,254, +112,0,155,2,125,0,235,252,201,249,246,247,67,251,63,1,43,2,25,0,20,1,12,2,137,1,245,3,52,6,175,3, +36,1,106,0,70,254,197,254,10,4,42,6,193,2,1,255,91,251,71,248,170,249,238,253,104,1,42,4,139,4,232,1, +33,1,36,3,97,3,75,1,203,254,118,252,151,252,216,255,55,2,175,1,27,0,92,254,118,252,130,251,154,252,44,255, +207,0,156,0,140,0,251,0,213,0,50,1,145,1,187,255,105,254,124,0,106,2,213,1,220,0,255,255,241,255,137,2, +221,4,187,3,225,1,60,1,85,0,191,255,254,255,107,255,92,254,138,253,103,251,172,248,108,248,195,250,248,253,143,1, +96,4,121,4,65,2,17,0,41,255,114,255,180,0,241,1,205,1,224,0,147,0,144,0,119,0,147,0,220,255,118,254, +235,254,7,1,12,2,223,1,88,1,32,0,93,255,227,255,8,0,150,255,248,255,109,0,149,255,10,254,89,253,135,254, +168,0,198,1,187,1,224,0,42,255,224,254,203,0,178,0,112,253,160,251,176,252,172,254,102,1,114,3,236,2,139,2, +11,4,243,3,107,1,55,0,96,1,173,2,146,2,85,0,42,253,146,252,24,255,212,0,219,255,202,253,145,251,194,250, +166,253,77,1,141,1,91,1,86,3,93,4,178,5,155,10,156,13,220,9,223,1,209,245,240,232,0,232,25,246,142,6, +147,15,57,13,178,254,202,238,140,234,79,241,106,252,63,6,47,8,43,3,105,255,3,255,242,0,69,6,200,10,136,9, +128,4,108,253,21,246,191,244,249,249,117,255,40,3,163,4,48,2,83,255,141,255,67,0,7,0,77,255,22,253,118,252, +204,1,70,9,212,11,183,7,165,255,14,249,82,249,40,0,141,7,156,9,225,5,127,0,50,252,209,249,135,250,5,252, +233,250,72,249,64,248,180,245,118,245,107,250,157,254,122,0,107,3,8,4,137,2,58,6,39,12,241,13,208,14,43,13, +136,3,166,249,178,246,242,244,247,242,167,244,235,246,95,248,245,252,119,2,79,4,210,3,249,2,242,1,29,2,138,4, +228,7,218,8,176,5,67,1,216,253,152,250,220,248,137,249,1,250,2,251,209,253,62,254,98,252,91,253,221,255,230,1, +31,5,33,5,147,255,106,253,19,1,77,2,84,0,232,254,47,253,159,253,35,2,64,3,232,253,83,250,43,252,173,254, +124,255,158,255,50,255,115,254,66,254,53,254,55,253,123,252,225,253,148,255,123,255,221,255,181,1,64,2,97,1,122,0, +196,254,152,253,1,255,152,0,215,0,155,1,87,2,206,1,112,1,97,1,174,0,250,255,243,254,149,252,42,250,168,249, +137,251,77,254,173,255,27,0,10,1,255,0,166,255,53,255,50,255,30,255,154,0,67,1,154,254,160,252,154,253,26,255, +46,1,240,2,186,0,27,253,54,253,157,255,255,1,109,4,123,4,74,1,190,254,92,254,93,254,249,254,200,0,209,1, +190,0,129,255,221,255,60,0,183,255,65,0,4,1,91,255,99,253,101,253,98,253,83,253,73,254,197,253,198,251,80,251, +74,251,114,250,240,250,211,252,244,254,71,1,57,2,116,2,179,4,247,5,36,3,6,0,207,254,128,254,77,0,85,2, +251,0,225,254,77,254,168,253,113,254,186,0,194,0,201,255,28,0,183,255,15,0,99,2,218,1,46,255,167,255,101,0, +218,254,2,255,192,255,196,253,64,252,154,252,170,252,218,253,118,0,97,1,91,0,250,254,246,253,16,254,72,254,223,253, +169,254,111,0,178,1,43,3,153,3,145,1,111,0,74,1,56,1,3,1,98,1,232,255,32,254,100,254,5,255,187,0, +104,4,119,5,100,2,13,255,178,252,236,251,101,254,214,1,126,3,135,3,82,1,158,253,174,251,4,252,241,253,137,1, +67,4,149,4,43,4,114,2,134,255,234,254,43,0,164,0,84,1,37,1,255,253,141,251,239,251,209,252,4,255,12,2, +182,1,28,0,12,1,218,0,120,254,190,254,93,1,76,3,232,4,222,4,207,1,87,255,187,255,188,0,21,1,243,0, +193,255,82,253,148,250,74,249,131,250,210,252,64,255,22,3,99,7,123,8,46,5,10,0,211,252,185,253,19,1,106,3, +126,3,51,2,154,0,159,254,123,251,42,249,106,251,183,0,73,3,71,1,111,253,59,251,103,253,249,2,23,7,36,7, +205,4,55,2,155,0,148,0,231,1,205,3,56,4,9,1,108,252,93,251,199,254,178,2,61,3,168,255,248,250,255,249, +1,254,186,2,55,4,134,3,191,2,26,1,170,254,253,253,189,255,179,2,208,5,235,5,15,1,48,252,30,252,133,254, +79,0,253,0,199,255,80,254,97,255,217,0,135,0,14,1,177,2,119,2,54,1,41,1,177,1,56,2,71,2,172,0, +208,254,38,255,127,0,170,0,149,0,60,2,56,5,255,6,182,5,237,1,139,253,150,250,82,250,35,252,127,254,212,255, +175,254,193,252,75,254,220,2,223,5,2,6,57,4,56,1,177,255,56,0,39,255,254,252,181,253,212,255,46,0,118,255, +33,254,188,252,170,253,247,255,122,0,139,255,207,254,93,255,67,2,242,4,30,4,33,2,143,1,29,1,85,1,9,3, +154,3,6,3,150,3,75,3,204,0,135,255,133,0,108,1,204,1,173,1,87,0,215,254,52,254,221,253,246,253,214,254, +124,255,44,255,14,254,234,252,113,253,18,0,28,2,243,0,180,253,117,251,91,251,91,252,160,253,209,254,111,255,4,0, +42,1,156,1,77,1,177,2,114,5,145,6,220,5,78,4,172,1,232,255,251,0,92,2,227,1,45,1,33,1,118,1, +75,2,206,1,15,255,145,253,252,254,56,0,238,255,22,255,122,253,217,251,134,251,165,251,110,252,49,255,64,1,152,255, +144,252,62,251,251,251,175,254,198,1,190,2,112,2,129,2,216,1,194,0,59,1,21,2,66,1,140,255,225,253,226,252, +190,254,182,3,240,7,18,8,119,4,235,255,212,253,202,255,98,3,2,4,242,255,100,250,147,247,143,248,199,251,246,254, +49,0,102,255,14,254,39,253,99,253,35,255,230,0,14,1,176,255,14,253,127,250,215,250,106,253,153,254,60,254,1,254, +236,253,114,255,191,3,146,7,88,8,91,7,50,5,71,2,215,0,1,1,197,0,153,255,127,253,43,251,252,250,41,253, +47,255,138,255,99,253,73,249,140,247,178,250,80,255,63,2,126,3,237,2,50,1,243,255,187,254,39,253,48,253,97,255, +195,1,29,3,36,3,151,1,63,255,159,253,177,253,80,255,234,0,166,0,136,254,188,252,104,253,106,0,205,3,235,5, +192,5,1,3,142,255,0,254,190,254,19,1,10,4,55,5,100,3,164,0,169,254,144,253,166,253,143,253,250,250,139,247, +2,247,158,249,223,252,29,254,212,251,80,248,40,248,14,252,180,0,158,3,6,4,38,2,50,0,204,0,209,3,103,6, +163,5,185,0,19,250,81,246,64,248,174,253,12,2,120,3,74,3,32,3,109,3,157,3,45,3,14,3,172,4,195,7, +70,10,171,9,147,4,127,252,41,245,0,242,172,244,134,251,99,1,22,2,167,254,81,251,94,251,17,255,108,3,209,4, +152,2,25,255,219,252,75,252,166,251,110,249,141,246,134,245,88,248,165,254,35,5,106,8,40,8,48,6,249,3,50,2, +109,1,92,2,164,4,130,5,6,2,196,250,60,244,72,244,245,252,255,7,21,12,140,7,206,0,24,254,22,0,122,1, +20,253,80,246,144,245,224,251,42,2,249,2,209,255,147,254,168,1,12,3,43,252,142,240,197,234,109,241,218,1,162,18, +156,27,246,27,160,23,22,18,214,12,235,6,41,254,222,242,160,232,191,227,87,230,88,238,166,247,125,0,148,8,251,13, +157,14,162,10,115,4,204,255,118,254,86,254,90,253,74,252,12,252,20,252,149,251,126,250,187,250,241,254,48,6,218,11, +72,12,124,7,174,0,247,251,30,251,10,253,171,255,97,1,250,1,133,2,116,3,106,4,5,5,96,4,50,2,30,0, +49,255,144,254,219,253,66,253,149,252,141,252,218,253,75,255,189,255,128,255,229,254,79,254,111,254,23,255,216,255,164,0, +218,0,44,0,182,255,82,0,169,1,234,2,3,3,195,1,196,0,50,1,62,2,163,2,219,1,64,0,243,254,172,254, +48,255,31,0,232,0,166,0,76,255,194,253,231,252,113,253,108,255,158,1,190,2,161,2,161,1,53,0,56,255,97,255, +135,0,216,1,138,2,73,2,87,1,120,0,100,0,235,0,105,1,210,1,52,2,12,2,13,1,167,255,187,254,90,255, +162,1,221,3,71,4,3,3,115,1,210,0,110,1,70,2,25,2,193,0,220,254,240,252,144,251,58,251,215,251,184,252, +21,253,207,252,221,252,126,254,199,1,58,5,218,6,250,5,221,3,53,2,143,1,88,1,200,0,205,255,59,255,180,255, +198,0,142,1,126,1,142,0,70,255,114,254,122,254,89,255,207,0,75,2,18,3,235,2,84,2,9,2,91,2,219,2, +144,2,197,0,9,254,9,252,250,251,144,253,141,255,183,0,176,0,101,0,240,0,9,2,129,2,169,1,187,255,195,253, +29,253,38,254,247,255,99,1,152,1,107,0,162,254,101,253,61,253,8,254,130,255,139,1,4,4,63,6,223,6,47,5, +93,2,174,0,35,1,58,2,127,1,109,254,55,251,150,250,32,253,216,0,117,3,134,4,207,4,127,4,56,3,48,1, +78,255,25,254,204,252,36,250,182,246,149,245,72,249,165,0,119,7,41,10,194,8,115,6,5,6,10,7,190,6,14,3, +164,252,138,246,254,243,23,246,38,251,15,0,129,2,104,2,144,1,198,1,64,3,172,4,160,4,240,2,179,0,64,255, +62,255,74,0,77,1,67,1,230,255,235,253,149,252,182,252,237,253,12,255,53,255,152,254,41,254,177,254,31,0,208,1, +50,3,7,4,65,4,223,3,233,2,143,1,41,0,8,255,98,254,75,254,169,254,46,255,140,255,183,255,228,255,57,0, +119,0,26,0,234,254,108,253,151,252,37,253,15,255,132,1,96,3,203,3,170,2,175,0,251,254,90,254,183,254,77,255, +127,255,106,255,153,255,64,0,222,0,211,0,33,0,112,255,89,255,192,255,20,0,249,255,159,255,103,255,117,255,164,255, +201,255,203,255,142,255,251,254,75,254,13,254,176,254,236,255,228,0,247,0,101,0,6,0,89,0,9,1,93,1,0,1, +67,0,167,255,108,255,134,255,208,255,18,0,245,255,62,255,57,254,175,253,59,254,145,255,177,0,210,0,40,0,148,255, +173,255,58,0,157,0,144,0,84,0,69,0,105,0,130,0,96,0,3,0,118,255,200,254,35,254,211,253,1,254,108,254, +151,254,74,254,226,253,240,253,155,254,109,255,223,255,249,255,82,0,81,1,143,2,15,3,49,2,120,0,51,255,101,255, +211,0,71,2,159,2,164,1,237,255,30,254,140,252,129,251,128,251,211,252,225,254,86,0,79,0,81,255,208,254,154,255, +247,0,141,1,249,0,47,0,62,0,13,1,164,1,123,1,30,1,64,1,153,1,15,1,19,255,110,252,154,250,95,250, +82,251,135,252,106,253,241,253,74,254,168,254,73,255,96,0,198,1,10,3,212,3,46,4,68,4,241,3,227,2,56,1, +172,255,240,254,219,254,152,254,177,253,171,252,115,252,64,253,93,254,1,255,41,255,103,255,4,0,169,0,237,0,239,0, +38,1,167,1,232,1,90,1,28,0,243,254,130,254,183,254,252,254,233,254,163,254,148,254,237,254,113,255,187,255,168,255, +112,255,102,255,165,255,246,255,6,0,184,255,65,255,253,254,44,255,210,255,197,0,195,1,123,2,154,2,2,2,243,0, +239,255,97,255,76,255,101,255,102,255,72,255,46,255,49,255,83,255,160,255,38,0,202,0,65,1,66,1,220,0,115,0, +93,0,141,0,165,0,91,0,189,255,28,255,196,254,219,254,106,255,89,0,86,1,236,1,197,1,243,0,231,255,32,255, +231,254,61,255,241,255,180,0,36,1,5,1,123,0,2,0,253,255,91,0,170,0,144,0,41,0,216,255,216,255,19,0, +89,0,157,0,223,0,243,0,158,0,227,255,42,255,230,254,34,255,131,255,191,255,236,255,75,0,206,0,9,1,165,0, +214,255,64,255,97,255,49,0,61,1,12,2,89,2,22,2,98,1,155,0,59,0,129,0,28,1,91,1,199,0,154,255, +143,254,64,254,171,254,86,255,205,255,255,255,37,0,106,0,200,0,20,1,43,1,4,1,164,0,22,0,113,255,234,254, +188,254,2,255,155,255,63,0,178,0,241,0,34,1,95,1,140,1,116,1,6,1,111,0,244,255,188,255,191,255,222,255, +6,0,47,0,81,0,105,0,129,0,163,0,193,0,190,0,148,0,115,0,145,0,240,0,79,1,109,1,60,1,204,0, +25,0,34,255,51,254,233,253,169,254,14,0,31,1,56,1,181,0,133,0,15,1,177,1,129,1,99,0,46,255,183,254, +245,254,58,255,40,255,32,255,177,255,206,0,204,1,24,2,196,1,63,1,204,0,94,0,250,255,221,255,41,0,135,0, +95,0,141,255,178,254,188,254,255,255,214,1,33,3,30,3,238,1,100,0,105,255,102,255,5,0,129,0,61,0,72,255, +92,254,70,254,64,255,195,0,247,1,84,2,232,1,38,1,129,0,48,0,36,0,49,0,34,0,223,255,117,255,19,255, +248,254,68,255,229,255,154,0,25,1,67,1,50,1,28,1,22,1,1,1,179,0,48,0,180,255,127,255,151,255,209,255, +252,255,7,0,243,255,200,255,165,255,203,255,107,0,84,1,235,1,160,1,119,0,24,255,73,254,83,254,247,254,199,255, +122,0,236,0,9,1,218,0,153,0,143,0,188,0,206,0,129,0,8,0,232,255,101,0,40,1,148,1,103,1,236,0, +142,0,104,0,66,0,251,255,184,255,171,255,208,255,237,255,221,255,170,255,117,255,85,255,101,255,206,255,154,0,129,1, +11,2,244,1,113,1,246,0,185,0,133,0,15,0,94,255,197,254,151,254,225,254,131,255,78,0,12,1,109,1,44,1, +98,0,142,255,62,255,151,255,74,0,244,0,110,1,197,1,232,1,159,1,205,0,192,255,251,254,201,254,38,255,193,255, +56,0,115,0,138,0,146,0,176,0,5,1,127,1,219,1,193,1,251,0,220,255,17,255,253,254,137,255,54,0,80,0, +198,255,107,255,179,255,30,0,79,0,102,0,78,0,245,255,190,255,245,255,88,0,160,0,230,0,89,1,232,1,56,2, +232,1,249,0,11,0,198,255,212,255,95,255,201,254,95,255,242,0,204,1,54,1,65,0,21,0,192,0,92,1,13,1, +80,0,85,0,25,1,143,1,95,1,244,0,140,0,26,0,162,255,59,255,244,254,168,254,93,254,146,254,82,255,209,255, +216,255,45,0,15,1,214,1,245,1,104,1,219,0,26,1,150,1,249,0,173,255,86,255,203,255,140,255,178,254,191,254, +33,0,156,1,8,2,132,1,246,0,226,0,213,0,230,255,57,254,139,253,217,254,170,0,130,1,199,1,172,1,138,0, +59,255,70,255,48,0,175,0,167,0,72,0,168,255,85,255,124,255,191,255,23,0,106,0,92,0,26,0,231,255,192,255, +22,0,216,0,237,0,115,0,113,0,87,0,205,255,72,0,133,1,72,1,243,255,162,255,32,0,82,0,75,0,33,0, +226,255,199,255,99,255,232,254,87,255,47,0,135,0,203,0,175,0,231,255,42,0,61,1,3,1,118,1,254,3,213,2, +148,251,53,246,9,248,160,253,120,3,176,6,236,3,197,254,201,253,202,254,199,253,80,254,41,2,131,4,137,3,139,1, +123,255,162,254,61,0,226,1,120,1,96,0,48,255,135,253,18,253,245,254,193,1,151,3,248,2,236,255,101,253,167,253, +20,255,79,255,23,254,135,252,89,252,98,254,7,1,36,2,118,1,54,0,182,255,33,0,130,0,128,0,141,0,103,0, +173,255,238,254,245,254,70,0,67,2,183,2,211,0,189,254,254,253,28,254,189,254,74,255,255,254,247,254,247,255,93,0, +240,255,104,0,38,1,170,0,251,255,229,255,139,255,7,255,208,254,111,254,54,254,199,254,92,255,113,255,175,255,51,0, +131,0,75,0,103,255,230,254,3,0,80,1,174,0,4,255,20,254,249,253,209,254,97,0,250,0,140,0,199,0,7,1, +1,0,90,255,233,255,175,255,142,254,50,254,78,254,172,254,226,255,143,0,125,0,123,0,143,0,238,255,200,254,151,254, +111,255,120,255,220,254,166,255,234,0,91,0,122,255,110,0,115,1,144,0,255,254,90,254,142,254,30,255,254,255,27,1, +165,1,254,0,47,0,41,0,185,255,115,254,64,254,115,255,214,255,225,254,80,254,241,254,35,0,10,1,199,0,42,255, +160,253,162,253,153,254,102,255,172,0,96,2,233,1,180,254,101,252,82,253,5,0,159,2,168,3,15,2,35,255,212,252, +107,251,181,251,111,254,153,1,197,3,202,5,80,6,239,2,73,253,209,248,34,247,161,248,147,252,134,1,120,6,7,9, +198,6,88,1,225,251,59,248,21,249,98,254,146,2,169,2,169,0,227,253,225,252,16,0,238,2,131,2,76,3,163,3, +63,254,211,249,62,252,4,255,52,1,25,7,134,10,86,8,145,5,146,251,91,230,95,218,129,231,30,5,113,38,111,60, +237,53,53,25,151,250,130,223,14,205,100,205,2,219,130,242,235,21,121,37,179,5,22,224,239,224,15,244,255,5,231,30, +126,45,44,36,176,26,238,15,104,242,95,229,171,255,94,11,36,237,55,215,11,227,47,245,226,0,121,9,22,12,134,15, +240,23,176,22,97,7,159,247,148,237,82,233,165,238,112,253,44,16,159,28,251,22,67,4,121,246,160,239,179,232,171,233, +69,248,155,6,65,9,46,5,170,1,42,0,21,0,97,1,187,3,57,4,39,1,223,254,108,0,93,3,45,7,114,10, +233,6,117,254,141,250,72,250,240,248,55,252,72,5,86,9,134,5,150,1,171,255,182,253,117,252,44,251,6,250,30,254, +146,6,180,8,57,1,149,250,209,251,63,0,189,2,151,2,196,255,242,253,214,1,213,5,107,2,211,253,188,254,174,254, +192,250,71,250,121,254,14,3,67,7,165,7,167,1,80,253,131,255,174,1,16,2,173,4,8,6,63,2,124,253,4,251, +155,250,217,252,98,0,207,2,110,4,204,4,144,2,37,255,62,252,10,251,224,252,214,254,205,253,241,253,125,1,6,3, +235,1,179,2,142,3,16,2,191,1,158,2,233,0,194,254,165,255,29,1,103,0,252,254,221,254,151,255,107,255,107,254, +86,254,212,254,143,254,98,254,194,254,82,255,43,1,112,3,228,3,133,4,7,6,61,5,51,1,221,253,123,253,200,253, +15,253,205,252,69,254,75,0,42,1,40,0,159,253,28,252,85,254,2,2,248,2,163,2,175,3,138,3,223,0,37,255, +64,255,92,255,246,255,168,0,191,255,70,255,242,0,143,1,180,255,102,254,18,255,187,0,102,2,198,2,159,1,23,0, +113,254,53,253,128,253,90,254,6,255,152,0,227,1,65,1,151,0,108,0,12,255,185,254,75,1,198,2,37,1,37,255, +138,253,184,252,245,254,92,2,0,3,31,2,198,1,178,0,3,255,19,254,131,253,192,253,88,255,80,0,230,255,226,255, +72,0,21,0,145,255,172,254,247,253,93,255,5,2,38,3,19,3,18,3,54,2,92,0,170,254,70,253,220,252,67,254, +181,255,131,255,242,254,242,254,246,254,59,255,0,0,182,0,126,1,33,2,133,1,87,0,248,255,125,255,24,254,48,253, +129,253,189,254,251,0,204,2,249,1,143,255,13,254,129,253,165,253,77,255,149,1,167,2,151,2,214,1,239,255,180,253, +245,252,216,253,36,255,40,0,152,0,222,255,121,254,142,254,212,0,245,2,81,3,122,2,116,0,244,253,90,253,13,254, +137,253,96,253,68,255,93,0,182,255,158,255,89,255,57,254,215,254,59,0,133,255,113,255,217,1,202,2,142,1,4,1, +28,0,83,254,105,254,2,255,169,253,125,253,194,255,182,0,36,0,65,0,4,0,141,255,144,0,165,0,202,253,84,251, +196,251,37,254,180,1,144,4,207,3,172,0,221,254,242,254,138,255,254,255,198,255,45,255,85,255,203,255,63,255,36,254, +195,253,59,254,215,254,30,255,125,255,220,0,227,2,180,3,245,1,77,254,211,250,62,249,228,249,105,252,55,0,221,3, +117,5,23,4,146,0,95,253,222,252,199,254,16,1,163,2,235,2,47,1,56,254,241,251,162,251,7,254,15,2,247,3, +212,1,90,254,115,252,160,252,133,254,132,0,155,0,131,255,233,254,113,254,61,254,155,255,156,1,75,2,201,1,197,0, +150,255,103,255,82,0,155,0,221,255,39,255,80,254,252,252,48,252,206,252,188,254,75,1,232,2,63,2,54,0,203,254, +173,254,64,255,213,255,53,0,133,0,184,0,88,0,111,255,250,254,211,255,119,1,62,2,33,1,246,254,146,253,212,253, +221,254,88,255,1,255,188,254,69,255,72,0,218,0,130,0,164,255,253,254,11,255,220,255,41,1,95,2,218,2,85,2, +46,1,25,0,101,255,189,254,183,253,131,252,215,251,51,252,98,253,197,254,240,255,208,0,94,1,112,1,255,0,113,0, +79,0,183,0,53,1,65,1,200,0,33,0,147,255,14,255,110,254,209,253,151,253,5,254,9,255,71,0,82,1,213,1, +156,1,181,0,137,255,189,254,206,254,178,255,218,0,128,1,45,1,255,255,153,254,197,253,248,253,17,255,119,0,128,1, +202,1,89,1,111,0,112,255,197,254,185,254,72,255,26,0,186,0,230,0,164,0,16,0,65,255,102,254,226,253,42,254, +84,255,229,0,20,2,78,2,129,1,11,0,121,254,95,253,58,253,47,254,210,255,72,1,204,1,48,1,234,255,179,254, +20,254,57,254,1,255,22,0,11,1,135,1,106,1,223,0,56,0,193,255,169,255,252,255,148,0,28,1,57,1,207,0, +26,0,126,255,62,255,82,255,144,255,210,255,7,0,31,0,14,0,221,255,165,255,130,255,131,255,172,255,247,255,81,0, +152,0,166,0,108,0,246,255,110,255,19,255,29,255,149,255,85,0,25,1,121,1,36,1,53,0,28,255,59,254,234,253, +102,254,119,255,145,0,85,1,120,1,192,0,154,255,219,254,219,254,117,255,128,0,126,1,201,1,88,1,140,0,147,255, +191,254,137,254,214,254,32,255,55,255,33,255,233,254,221,254,87,255,60,0,42,1,189,1,170,1,5,1,72,0,235,255, +26,0,153,0,226,0,178,0,60,0,163,255,250,254,146,254,164,254,18,255,182,255,83,0,135,0,93,0,81,0,144,0, +217,0,231,0,159,0,31,0,181,255,133,255,137,255,183,255,219,255,200,255,174,255,156,255,105,255,79,255,129,255,155,255, +145,255,228,255,90,0,104,0,90,0,122,0,96,0,42,0,68,0,67,0,235,255,240,255,86,0,75,0,217,255,149,255, +115,255,123,255,252,255,142,0,157,0,111,0,91,0,38,0,210,255,202,255,24,0,119,0,194,0,219,0,159,0,49,0, +214,255,162,255,149,255,201,255,60,0,168,0,190,0,113,0,241,255,135,255,99,255,125,255,192,255,29,0,93,0,68,0, +238,255,171,255,166,255,252,255,151,0,238,0,177,0,50,0,168,255,10,255,191,254,38,255,222,255,120,0,211,0,179,0, +38,0,217,255,5,0,44,0,38,0,49,0,58,0,43,0,20,0,207,255,86,255,13,255,35,255,105,255,207,255,72,0, +170,0,228,0,225,0,135,0,24,0,226,255,219,255,243,255,32,0,23,0,180,255,75,255,23,255,47,255,186,255,115,0, +185,0,132,0,66,0,33,0,48,0,111,0,141,0,100,0,62,0,40,0,230,255,148,255,105,255,85,255,87,255,110,255, +94,255,52,255,73,255,152,255,220,255,12,0,45,0,62,0,104,0,187,0,245,0,231,0,151,0,17,0,140,255,91,255, +142,255,238,255,56,0,48,0,215,255,115,255,56,255,43,255,86,255,163,255,222,255,240,255,230,255,195,255,180,255,235,255, +74,0,140,0,163,0,153,0,115,0,68,0,21,0,206,255,107,255,23,255,240,254,254,254,62,255,144,255,193,255,185,255, +139,255,105,255,128,255,218,255,72,0,134,0,99,0,234,255,88,255,255,254,11,255,111,255,240,255,75,0,93,0,51,0, +248,255,211,255,208,255,222,255,227,255,211,255,178,255,145,255,125,255,117,255,117,255,126,255,149,255,192,255,247,255,35,0, +42,0,2,0,188,255,123,255,93,255,103,255,131,255,144,255,127,255,89,255,55,255,45,255,58,255,77,255,92,255,108,255, +145,255,215,255,40,0,86,0,52,0,189,255,32,255,165,254,130,254,185,254,27,255,112,255,163,255,202,255,8,0,98,0, +170,0,155,0,23,0,75,255,165,254,139,254,19,255,235,255,139,0,141,0,244,255,38,255,166,254,184,254,57,255,197,255, +2,0,227,255,163,255,141,255,186,255,250,255,4,0,180,255,47,255,202,254,204,254,51,255,184,255,3,0,241,255,167,255, +120,255,153,255,251,255,79,0,58,0,159,255,179,254,234,253,184,253,78,254,125,255,199,0,151,1,145,1,194,0,160,255, +196,254,145,254,243,254,125,255,205,255,226,255,8,0,76,0,32,0,188,254,74,252,155,250,36,252,135,1,254,7,219,10, +89,7,72,255,218,247,138,245,193,248,251,253,3,1,79,0,209,253,228,252,76,255,192,3,14,7,178,6,215,2,34,254, +167,251,162,252,183,255,46,2,20,2,153,255,187,252,154,251,222,252,100,255,79,1,134,1,117,0,125,255,174,255,219,0, +205,1,91,1,122,255,96,253,159,252,232,253,119,0,156,2,236,2,67,1,202,254,24,253,23,253,131,254,76,0,107,1, +143,1,29,1,164,0,91,0,6,0,86,255,92,254,152,253,156,253,140,254,232,255,227,0,246,0,61,0,98,255,12,255, +108,255,30,0,138,0,96,0,214,255,109,255,128,255,244,255,85,0,56,0,154,255,234,254,177,254,42,255,21,0,233,0, +58,1,254,0,130,0,31,0,245,255,226,255,179,255,99,255,42,255,76,255,214,255,130,0,225,0,169,0,236,255,19,255, +152,254,184,254,84,255,19,0,158,0,208,0,182,0,115,0,31,0,197,255,117,255,79,255,115,255,227,255,107,0,186,0, +144,0,244,255,55,255,195,254,217,254,98,255,1,0,80,0,36,0,172,255,70,255,69,255,184,255,101,0,241,0,25,1, +211,0,75,0,195,255,109,255,91,255,125,255,176,255,213,255,213,255,174,255,107,255,36,255,243,254,238,254,27,255,114,255, +225,255,85,0,188,0,3,1,26,1,248,0,163,0,55,0,218,255,168,255,160,255,163,255,139,255,77,255,5,255,234,254, +36,255,168,255,50,0,116,0,67,0,194,255,75,255,54,255,157,255,72,0,207,0,224,0,116,0,204,255,71,255,34,255, +87,255,179,255,253,255,30,0,34,0,33,0,30,0,7,0,201,255,110,255,34,255,24,255,97,255,216,255,52,0,59,0, +234,255,118,255,45,255,59,255,150,255,3,0,76,0,90,0,69,0,48,0,40,0,26,0,232,255,139,255,36,255,236,254, +10,255,114,255,235,255,48,0,33,0,216,255,145,255,130,255,176,255,245,255,30,0,19,0,231,255,200,255,214,255,9,0, +57,0,57,0,2,0,176,255,119,255,116,255,157,255,200,255,200,255,147,255,68,255,14,255,21,255,91,255,193,255,27,0, +72,0,68,0,27,0,226,255,170,255,127,255,105,255,112,255,146,255,198,255,247,255,14,0,4,0,223,255,179,255,145,255, +123,255,106,255,88,255,76,255,89,255,143,255,229,255,58,0,95,0,58,0,215,255,105,255,41,255,56,255,136,255,233,255, +39,0,41,0,251,255,191,255,143,255,112,255,89,255,69,255,66,255,106,255,199,255,64,0,157,0,165,0,72,0,174,255, +39,255,250,254,57,255,182,255,32,0,58,0,251,255,147,255,69,255,59,255,111,255,186,255,238,255,250,255,232,255,209,255, +198,255,196,255,192,255,179,255,162,255,152,255,150,255,149,255,136,255,111,255,92,255,104,255,159,255,241,255,61,0,97,0, +85,0,48,0,18,0,11,0,13,0,249,255,184,255,84,255,248,254,212,254,254,254,99,255,211,255,30,0,51,0,31,0, +2,0,240,255,236,255,230,255,208,255,170,255,132,255,112,255,118,255,144,255,173,255,191,255,191,255,178,255,165,255,167,255, +194,255,245,255,52,0,102,0,120,0,101,0,58,0,16,0,253,255,253,255,250,255,215,255,144,255,64,255,20,255,45,255, +136,255,248,255,69,0,77,0,29,0,223,255,190,255,195,255,214,255,213,255,182,255,145,255,140,255,188,255,9,0,65,0, +54,0,228,255,119,255,47,255,53,255,132,255,237,255,59,0,83,0,65,0,38,0,27,0,32,0,33,0,14,0,230,255, +186,255,160,255,162,255,184,255,210,255,227,255,231,255,226,255,214,255,198,255,181,255,174,255,189,255,229,255,27,0,70,0, +78,0,50,0,9,0,243,255,6,0,52,0,88,0,74,0,254,255,142,255,43,255,2,255,31,255,108,255,198,255,15,0, +62,0,88,0,101,0,98,0,73,0,25,0,225,255,185,255,176,255,197,255,233,255,8,0,26,0,36,0,46,0,56,0, +54,0,27,0,233,255,181,255,161,255,187,255,247,255,49,0,69,0,39,0,239,255,195,255,191,255,221,255,2,0,14,0, +250,255,217,255,200,255,213,255,242,255,1,0,239,255,195,255,158,255,158,255,204,255,15,0,67,0,82,0,64,0,39,0, +31,0,40,0,46,0,23,0,224,255,162,255,131,255,158,255,234,255,66,0,123,0,127,0,90,0,44,0,23,0,36,0, +68,0,91,0,82,0,37,0,226,255,163,255,123,255,120,255,154,255,212,255,13,0,47,0,43,0,5,0,214,255,193,255, +221,255,39,0,125,0,180,0,174,0,108,0,15,0,192,255,155,255,157,255,175,255,183,255,175,255,162,255,166,255,197,255, +249,255,43,0,67,0,56,0,16,0,219,255,172,255,142,255,135,255,152,255,192,255,247,255,46,0,82,0,84,0,51,0, +254,255,205,255,180,255,185,255,208,255,231,255,240,255,231,255,215,255,204,255,207,255,223,255,246,255,11,0,24,0,31,0, +36,0,44,0,56,0,69,0,74,0,61,0,30,0,241,255,201,255,182,255,195,255,239,255,40,0,88,0,109,0,97,0, +55,0,254,255,196,255,154,255,141,255,161,255,209,255,10,0,53,0,65,0,48,0,25,0,20,0,43,0,77,0,86,0, +44,0,214,255,132,255,108,255,169,255,28,0,128,0,145,0,64,0,188,255,88,255,79,255,160,255,13,0,75,0,54,0, +229,255,150,255,126,255,166,255,236,255,34,0,51,0,47,0,54,0,86,0,123,0,126,0,69,0,213,255,90,255,5,255, +244,254,41,255,136,255,243,255,78,0,132,0,135,0,81,0,238,255,128,255,56,255,56,255,132,255,247,255,88,0,122,0, +84,0,2,0,180,255,139,255,146,255,186,255,237,255,25,0,53,0,61,0,49,0,16,0,228,255,187,255,162,255,158,255, +166,255,175,255,180,255,192,255,229,255,43,0,129,0,194,0,198,0,126,0,255,255,126,255,49,255,51,255,121,255,215,255, +25,0,32,0,234,255,146,255,66,255,31,255,60,255,147,255,4,0,101,0,146,0,122,0,48,0,219,255,163,255,158,255, +193,255,233,255,245,255,215,255,159,255,113,255,105,255,145,255,214,255,25,0,65,0,68,0,41,0,1,0,220,255,200,255, +203,255,231,255,20,0,66,0,92,0,83,0,35,0,221,255,156,255,119,255,119,255,147,255,188,255,226,255,254,255,16,0, +26,0,26,0,13,0,246,255,224,255,217,255,231,255,4,0,29,0,34,0,15,0,240,255,214,255,202,255,199,255,187,255, +158,255,121,255,100,255,120,255,186,255,21,0,97,0,128,0,103,0,41,0,230,255,185,255,173,255,188,255,221,255,7,0, +52,0,89,0,102,0,75,0,7,0,173,255,95,255,63,255,91,255,162,255,242,255,42,0,57,0,42,0,16,0,252,255, +241,255,231,255,214,255,192,255,175,255,174,255,190,255,214,255,233,255,240,255,236,255,231,255,230,255,235,255,239,255,239,255, +235,255,234,255,243,255,6,0,27,0,40,0,38,0,22,0,0,0,238,255,226,255,222,255,220,255,221,255,226,255,238,255, +254,255,13,0,19,0,9,0,246,255,227,255,220,255,232,255,3,0,31,0,47,0,41,0,14,0,233,255,204,255,197,255, +217,255,1,0,48,0,82,0,93,0,78,0,49,0,17,0,251,255,242,255,243,255,248,255,253,255,3,0,13,0,29,0, +49,0,64,0,67,0,51,0,20,0,237,255,203,255,186,255,193,255,219,255,255,255,29,0,42,0,35,0,13,0,248,255, +239,255,249,255,16,0,41,0,53,0,47,0,26,0,254,255,230,255,218,255,221,255,237,255,5,0,28,0,43,0,44,0, +32,0,13,0,252,255,245,255,245,255,246,255,236,255,213,255,184,255,165,255,165,255,187,255,218,255,239,255,241,255,226,255, +209,255,203,255,215,255,236,255,253,255,254,255,239,255,218,255,200,255,193,255,197,255,208,255,222,255,238,255,253,255,7,0, +7,0,250,255,231,255,216,255,214,255,226,255,239,255,237,255,211,255,172,255,141,255,144,255,187,255,3,0,75,0,115,0, +108,0,57,0,238,255,160,255,99,255,64,255,60,255,86,255,134,255,191,255,239,255,12,0,20,0,15,0,10,0,13,0, +18,0,12,0,243,255,203,255,169,255,161,255,186,255,231,255,11,0,17,0,243,255,199,255,171,255,182,255,228,255,31,0, +72,0,76,0,42,0,243,255,188,255,147,255,125,255,117,255,121,255,132,255,149,255,167,255,185,255,200,255,217,255,238,255, +8,0,32,0,45,0,41,0,23,0,4,0,252,255,4,0,17,0,17,0,248,255,201,255,152,255,128,255,145,255,200,255, +12,0,64,0,77,0,48,0,244,255,177,255,124,255,101,255,114,255,159,255,220,255,19,0,43,0,24,0,219,255,141,255, +76,255,52,255,77,255,134,255,194,255,230,255,229,255,201,255,165,255,137,255,127,255,129,255,138,255,146,255,155,255,167,255, +183,255,199,255,205,255,195,255,169,255,138,255,117,255,121,255,155,255,207,255,4,0,37,0,35,0,1,0,206,255,156,255, +123,255,113,255,120,255,134,255,150,255,164,255,177,255,187,255,189,255,177,255,154,255,134,255,134,255,164,255,218,255,19,0, +50,0,40,0,249,255,186,255,132,255,104,255,102,255,117,255,139,255,166,255,199,255,237,255,13,0,21,0,254,255,209,255, +162,255,138,255,146,255,178,255,210,255,226,255,223,255,214,255,216,255,233,255,253,255,2,0,233,255,184,255,131,255,96,255, +90,255,110,255,140,255,168,255,190,255,210,255,234,255,4,0,21,0,17,0,243,255,195,255,145,255,110,255,99,255,110,255, +133,255,158,255,179,255,196,255,215,255,240,255,15,0,48,0,74,0,85,0,75,0,45,0,1,0,214,255,183,255,173,255, +181,255,200,255,218,255,228,255,228,255,223,255,220,255,222,255,227,255,232,255,234,255,236,255,238,255,240,255,235,255,218,255, +186,255,146,255,113,255,104,255,122,255,156,255,187,255,197,255,184,255,164,255,158,255,182,255,233,255,33,0,70,0,73,0, +48,0,12,0,239,255,219,255,199,255,169,255,128,255,92,255,84,255,116,255,180,255,250,255,38,0,39,0,3,0,209,255, +168,255,149,255,145,255,144,255,141,255,138,255,148,255,175,255,212,255,243,255,252,255,238,255,213,255,197,255,202,255,223,255, +242,255,241,255,215,255,176,255,143,255,134,255,153,255,189,255,224,255,244,255,243,255,229,255,214,255,208,255,217,255,238,255, +10,0,36,0,53,0,59,0,57,0,55,0,59,0,73,0,94,0,111,0,115,0,101,0,75,0,45,0,21,0,9,0, +8,0,13,0,21,0,29,0,34,0,33,0,21,0,254,255,228,255,210,255,212,255,234,255,10,0,32,0,32,0,13,0, +248,255,244,255,9,0,42,0,63,0,54,0,12,0,214,255,173,255,162,255,177,255,200,255,211,255,207,255,199,255,205,255, +231,255,8,0,25,0,9,0,219,255,166,255,134,255,138,255,173,255,216,255,246,255,252,255,240,255,221,255,206,255,194,255, +182,255,167,255,158,255,163,255,188,255,226,255,5,0,24,0,19,0,254,255,231,255,216,255,211,255,211,255,212,255,214,255, +222,255,241,255,12,0,34,0,42,0,30,0,7,0,241,255,235,255,249,255,19,0,48,0,69,0,77,0,74,0,62,0, +44,0,24,0,9,0,6,0,15,0,31,0,46,0,49,0,39,0,24,0,18,0,31,0,61,0,95,0,117,0,118,0, +104,0,84,0,72,0,70,0,74,0,76,0,73,0,69,0,70,0,77,0,84,0,81,0,66,0,43,0,25,0,25,0, +43,0,68,0,85,0,83,0,63,0,35,0,12,0,3,0,10,0,28,0,54,0,80,0,101,0,107,0,92,0,54,0, +3,0,213,255,187,255,192,255,219,255,0,0,30,0,48,0,55,0,58,0,59,0,56,0,45,0,30,0,21,0,30,0, +59,0,98,0,127,0,130,0,108,0,76,0,55,0,53,0,65,0,72,0,63,0,38,0,16,0,13,0,35,0,67,0, +88,0,85,0,63,0,40,0,34,0,46,0,64,0,71,0,61,0,46,0,41,0,54,0,74,0,78,0,49,0,250,255, +196,255,176,255,205,255,12,0,74,0,101,0,86,0,47,0,15,0,10,0,28,0,52,0,61,0,52,0,37,0,34,0, +49,0,70,0,81,0,74,0,55,0,43,0,50,0,73,0,92,0,90,0,61,0,20,0,247,255,244,255,9,0,36,0, +51,0,47,0,34,0,27,0,35,0,53,0,71,0,80,0,83,0,86,0,95,0,105,0,106,0,91,0,64,0,42,0, +38,0,56,0,79,0,86,0,65,0,24,0,245,255,240,255,16,0,69,0,113,0,128,0,110,0,76,0,47,0,34,0, +32,0,29,0,16,0,253,255,237,255,233,255,242,255,253,255,3,0,6,0,13,0,32,0,57,0,72,0,61,0,22,0, +230,255,200,255,211,255,2,0,57,0,87,0,72,0,20,0,219,255,191,255,205,255,248,255,35,0,53,0,42,0,17,0, +1,0,4,0,22,0,38,0,39,0,23,0,4,0,253,255,10,0,34,0,56,0,59,0,40,0,6,0,229,255,208,255, +203,255,210,255,226,255,246,255,9,0,22,0,24,0,13,0,248,255,224,255,210,255,214,255,242,255,27,0,62,0,75,0, +59,0,24,0,242,255,218,255,214,255,224,255,232,255,226,255,204,255,176,255,161,255,175,255,216,255,12,0,49,0,59,0, +42,0,13,0,248,255,244,255,250,255,254,255,246,255,226,255,205,255,196,255,206,255,226,255,240,255,236,255,217,255,197,255, +191,255,206,255,234,255,2,0,10,0,1,0,238,255,217,255,204,255,199,255,196,255,190,255,189,255,202,255,229,255,5,0, +25,0,19,0,243,255,209,255,194,255,205,255,229,255,250,255,255,255,237,255,209,255,194,255,202,255,224,255,245,255,247,255, +223,255,188,255,172,255,190,255,227,255,6,0,30,0,36,0,19,0,238,255,194,255,158,255,147,255,170,255,210,255,245,255, +22,0,63,0,97,0,100,0,80,0,66,0,63,0,59,0,36,0,245,255,191,255,166,255,177,255,195,255,206,255,217,255, +221,255,198,255,161,255,140,255,144,255,164,255,196,255,225,255,229,255,210,255,188,255,176,255,178,255,193,255,205,255,194,255, +166,255,144,255,131,255,115,255,100,255,99,255,113,255,135,255,166,255,201,255,227,255,239,255,238,255,223,255,198,255,177,255, +171,255,173,255,175,255,184,255,202,255,227,255,255,255,24,0,31,0,10,0,230,255,202,255,197,255,217,255,253,255,29,0, +36,0,16,0,239,255,212,255,203,255,218,255,248,255,13,0,14,0,0,0,244,255,241,255,245,255,251,255,251,255,244,255, +241,255,248,255,7,0,19,0,23,0,11,0,239,255,206,255,188,255,195,255,217,255,234,255,231,255,209,255,192,255,206,255, +253,255,51,0,80,0,69,0,23,0,223,255,184,255,179,255,204,255,239,255,8,0,12,0,254,255,240,255,241,255,5,0, +28,0,38,0,25,0,249,255,214,255,194,255,196,255,209,255,221,255,226,255,230,255,240,255,2,0,19,0,21,0,2,0, +222,255,188,255,176,255,195,255,234,255,10,0,12,0,239,255,197,255,166,255,163,255,184,255,217,255,245,255,254,255,244,255, +227,255,218,255,224,255,234,255,234,255,221,255,206,255,202,255,216,255,240,255,3,0,10,0,2,0,239,255,215,255,197,255, +192,255,196,255,202,255,206,255,214,255,229,255,249,255,9,0,15,0,9,0,254,255,245,255,236,255,227,255,223,255,224,255, +226,255,222,255,214,255,208,255,206,255,211,255,222,255,232,255,237,255,239,255,241,255,243,255,250,255,12,0,33,0,43,0, +35,0,14,0,248,255,234,255,232,255,237,255,239,255,233,255,219,255,201,255,181,255,170,255,178,255,203,255,233,255,3,0, +22,0,32,0,36,0,39,0,37,0,24,0,1,0,234,255,218,255,216,255,235,255,15,0,53,0,74,0,71,0,47,0, +15,0,247,255,242,255,249,255,252,255,248,255,239,255,227,255,212,255,202,255,203,255,217,255,243,255,20,0,39,0,32,0, +7,0,235,255,213,255,203,255,209,255,230,255,250,255,3,0,253,255,234,255,212,255,202,255,214,255,238,255,5,0,19,0, +20,0,6,0,242,255,228,255,222,255,217,255,214,255,220,255,232,255,240,255,239,255,231,255,223,255,228,255,253,255,24,0, +34,0,26,0,12,0,1,0,251,255,253,255,9,0,19,0,19,0,10,0,254,255,246,255,249,255,8,0,19,0,18,0, +15,0,19,0,25,0,31,0,41,0,55,0,64,0,59,0,38,0,7,0,237,255,235,255,2,0,27,0,37,0,34,0, +22,0,9,0,3,0,13,0,29,0,40,0,44,0,46,0,44,0,40,0,36,0,34,0,30,0,27,0,31,0,34,0, +32,0,33,0,42,0,46,0,36,0,17,0,5,0,6,0,20,0,42,0,55,0,53,0,45,0,42,0,43,0,43,0, +46,0,52,0,52,0,44,0,35,0,27,0,23,0,29,0,42,0,50,0,43,0,29,0,21,0,20,0,27,0,38,0, +44,0,38,0,24,0,13,0,7,0,10,0,25,0,45,0,54,0,49,0,43,0,47,0,56,0,62,0,59,0,44,0, +29,0,25,0,33,0,40,0,43,0,49,0,57,0,60,0,55,0,44,0,29,0,11,0,252,255,246,255,249,255,4,0, +14,0,13,0,1,0,248,255,3,0,27,0,48,0,60,0,68,0,74,0,78,0,77,0,70,0,60,0,52,0,46,0, +38,0,29,0,28,0,36,0,41,0,33,0,21,0,15,0,18,0,22,0,22,0,21,0,21,0,23,0,25,0,25,0, +30,0,43,0,50,0,34,0,254,255,224,255,223,255,253,255,38,0,65,0,65,0,41,0,7,0,241,255,249,255,33,0, +79,0,99,0,75,0,21,0,224,255,207,255,235,255,39,0,96,0,117,0,88,0,21,0,210,255,180,255,193,255,230,255, +12,0,37,0,49,0,55,0,65,0,78,0,78,0,60,0,37,0,24,0,24,0,34,0,39,0,29,0,13,0,6,0, +6,0,251,255,232,255,230,255,252,255,22,0,34,0,28,0,19,0,28,0,59,0,83,0,67,0,18,0,231,255,214,255, +222,255,248,255,30,0,56,0,57,0,39,0,15,0,250,255,249,255,19,0,40,0,26,0,246,255,219,255,207,255,205,255, +220,255,249,255,17,0,31,0,41,0,33,0,250,255,209,255,195,255,197,255,209,255,247,255,48,0,85,0,94,0,94,0, +73,0,16,0,213,255,186,255,166,255,137,255,129,255,163,255,214,255,8,0,43,0,25,0,220,255,202,255,1,0,47,0, +41,0,42,0,71,0,66,0,13,0,207,255,136,255,60,255,36,255,77,255,132,255,205,255,58,0,122,0,86,0,34,0, +21,0,255,255,18,0,186,0,129,1,102,1,77,0,21,255,126,254,180,254,92,255,205,255,192,255,159,255,192,255,227,255, +253,255,129,0,90,1,174,1,1,1,209,255,235,254,194,254,74,255,0,0,70,0,10,0,183,255,134,255,108,255,134,255, +247,255,126,0,182,0,149,0,82,0,16,0,236,255,243,255,253,255,219,255,175,255,178,255,216,255,248,255,21,0,54,0, +63,0,32,0,244,255,209,255,191,255,204,255,240,255,252,255,223,255,204,255,233,255,24,0,49,0,47,0,23,0,235,255, +196,255,189,255,208,255,234,255,4,0,23,0,14,0,243,255,234,255,248,255,5,0,8,0,11,0,9,0,246,255,222,255, +207,255,200,255,205,255,228,255,1,0,13,0,16,0,34,0,59,0,63,0,41,0,8,0,239,255,234,255,251,255,12,0, +14,0,13,0,23,0,28,0,8,0,239,255,239,255,6,0,28,0,34,0,30,0,25,0,25,0,25,0,13,0,252,255, +255,255,21,0,32,0,14,0,249,255,247,255,1,0,5,0,254,255,242,255,232,255,226,255,222,255,219,255,225,255,244,255, +6,0,4,0,244,255,239,255,251,255,11,0,18,0,13,0,254,255,231,255,209,255,197,255,203,255,228,255,8,0,34,0, +32,0,10,0,247,255,248,255,10,0,34,0,46,0,41,0,28,0,27,0,40,0,58,0,71,0,74,0,64,0,39,0, +7,0,237,255,232,255,249,255,18,0,31,0,25,0,9,0,1,0,7,0,26,0,45,0,54,0,49,0,36,0,25,0, +23,0,29,0,34,0,29,0,16,0,3,0,255,255,5,0,14,0,20,0,18,0,10,0,3,0,254,255,252,255,253,255, +4,0,16,0,27,0,30,0,24,0,14,0,8,0,11,0,17,0,18,0,15,0,11,0,7,0,1,0,253,255,249,255, +243,255,238,255,244,255,13,0,48,0,74,0,77,0,56,0,31,0,18,0,19,0,20,0,19,0,22,0,30,0,32,0, +23,0,11,0,5,0,9,0,20,0,31,0,32,0,24,0,16,0,10,0,4,0,253,255,247,255,238,255,227,255,222,255, +224,255,228,255,230,255,239,255,2,0,15,0,13,0,251,255,229,255,216,255,219,255,235,255,251,255,11,0,30,0,45,0, +46,0,39,0,40,0,47,0,51,0,47,0,44,0,46,0,49,0,51,0,41,0,19,0,249,255,231,255,218,255,205,255, +201,255,212,255,232,255,248,255,3,0,11,0,17,0,28,0,50,0,69,0,73,0,60,0,41,0,26,0,19,0,24,0, +34,0,32,0,14,0,248,255,232,255,225,255,232,255,248,255,4,0,4,0,3,0,3,0,2,0,1,0,6,0,15,0, +16,0,9,0,4,0,4,0,11,0,25,0,41,0,51,0,55,0,58,0,57,0,44,0,30,0,28,0,34,0,35,0, +33,0,32,0,32,0,33,0,37,0,39,0,37,0,36,0,43,0,51,0,48,0,37,0,24,0,12,0,8,0,19,0, +36,0,41,0,36,0,28,0,15,0,254,255,242,255,245,255,3,0,13,0,11,0,251,255,229,255,214,255,215,255,221,255, +222,255,222,255,225,255,221,255,211,255,207,255,214,255,221,255,222,255,223,255,226,255,230,255,233,255,231,255,222,255,219,255, +233,255,254,255,5,0,255,255,248,255,247,255,247,255,250,255,1,0,9,0,13,0,14,0,11,0,3,0,250,255,247,255, +247,255,250,255,4,0,19,0,26,0,20,0,13,0,13,0,19,0,26,0,33,0,38,0,39,0,43,0,48,0,47,0, +34,0,18,0,6,0,0,0,0,0,5,0,9,0,5,0,253,255,246,255,243,255,248,255,6,0,20,0,22,0,11,0, +253,255,243,255,236,255,234,255,236,255,239,255,236,255,228,255,218,255,213,255,218,255,232,255,242,255,244,255,246,255,0,0, +14,0,23,0,28,0,33,0,37,0,37,0,32,0,21,0,8,0,0,0,2,0,9,0,15,0,16,0,8,0,248,255, +234,255,226,255,221,255,216,255,215,255,218,255,222,255,217,255,203,255,188,255,182,255,190,255,205,255,219,255,226,255,225,255, +216,255,204,255,199,255,205,255,217,255,222,255,219,255,213,255,211,255,218,255,230,255,246,255,2,0,5,0,250,255,236,255, +233,255,248,255,11,0,20,0,15,0,6,0,254,255,243,255,224,255,204,255,194,255,200,255,213,255,223,255,231,255,243,255, +253,255,252,255,240,255,229,255,231,255,245,255,5,0,15,0,17,0,14,0,7,0,249,255,228,255,212,255,210,255,216,255, +221,255,219,255,215,255,215,255,221,255,232,255,237,255,231,255,222,255,221,255,227,255,233,255,238,255,240,255,239,255,235,255, +234,255,236,255,238,255,239,255,238,255,232,255,223,255,219,255,221,255,223,255,225,255,233,255,242,255,243,255,238,255,237,255, +243,255,247,255,247,255,244,255,240,255,241,255,248,255,252,255,249,255,250,255,5,0,14,0,8,0,248,255,234,255,226,255, +227,255,236,255,246,255,249,255,250,255,253,255,0,0,2,0,4,0,9,0,12,0,12,0,12,0,10,0,2,0,251,255, +247,255,238,255,218,255,202,255,202,255,213,255,224,255,235,255,247,255,1,0,6,0,4,0,251,255,243,255,251,255,12,0, +19,0,11,0,1,0,252,255,246,255,246,255,0,0,14,0,15,0,3,0,241,255,227,255,226,255,241,255,255,255,0,0, +245,255,235,255,226,255,220,255,225,255,239,255,247,255,242,255,239,255,242,255,247,255,249,255,251,255,253,255,253,255,251,255, +249,255,247,255,252,255,14,0,32,0,33,0,20,0,9,0,3,0,253,255,251,255,0,0,6,0,7,0,8,0,8,0, +8,0,8,0,9,0,3,0,248,255,244,255,255,255,14,0,24,0,33,0,38,0,36,0,34,0,35,0,38,0,36,0, +34,0,30,0,15,0,247,255,228,255,229,255,245,255,8,0,16,0,4,0,238,255,228,255,235,255,249,255,5,0,18,0, +29,0,31,0,24,0,17,0,16,0,19,0,23,0,23,0,13,0,252,255,234,255,223,255,222,255,234,255,253,255,6,0, +1,0,250,255,253,255,3,0,6,0,8,0,13,0,22,0,30,0,30,0,20,0,6,0,252,255,248,255,245,255,244,255, +251,255,8,0,18,0,22,0,23,0,23,0,22,0,22,0,24,0,23,0,22,0,22,0,19,0,5,0,238,255,221,255, +224,255,250,255,27,0,46,0,45,0,37,0,36,0,36,0,28,0,19,0,25,0,47,0,61,0,51,0,24,0,7,0, +10,0,20,0,17,0,255,255,238,255,230,255,226,255,218,255,215,255,227,255,245,255,252,255,241,255,224,255,219,255,229,255, +244,255,251,255,249,255,243,255,234,255,226,255,225,255,235,255,253,255,14,0,22,0,24,0,27,0,30,0,29,0,23,0, +11,0,253,255,238,255,226,255,222,255,225,255,228,255,219,255,200,255,183,255,183,255,199,255,221,255,232,255,232,255,231,255, +238,255,250,255,6,0,16,0,22,0,23,0,17,0,8,0,2,0,6,0,20,0,31,0,28,0,14,0,3,0,4,0, +13,0,26,0,40,0,51,0,57,0,55,0,49,0,44,0,47,0,57,0,66,0,67,0,64,0,65,0,68,0,71,0, +74,0,75,0,73,0,69,0,67,0,65,0,58,0,47,0,38,0,30,0,23,0,14,0,3,0,250,255,252,255,11,0, +29,0,35,0,35,0,36,0,36,0,26,0,2,0,228,255,202,255,189,255,187,255,189,255,193,255,205,255,224,255,240,255, +245,255,244,255,241,255,234,255,223,255,215,255,214,255,221,255,229,255,229,255,219,255,206,255,203,255,213,255,224,255,230,255, +233,255,232,255,229,255,226,255,226,255,224,255,215,255,202,255,189,255,179,255,178,255,190,255,213,255,240,255,6,0,18,0, +18,0,14,0,15,0,19,0,13,0,254,255,241,255,241,255,250,255,3,0,8,0,8,0,10,0,18,0,24,0,26,0, +27,0,36,0,47,0,54,0,59,0,69,0,82,0,85,0,76,0,59,0,46,0,44,0,50,0,57,0,62,0,69,0, +73,0,66,0,48,0,34,0,31,0,32,0,25,0,10,0,253,255,245,255,242,255,242,255,249,255,7,0,24,0,33,0, +30,0,27,0,34,0,47,0,51,0,45,0,38,0,36,0,35,0,32,0,30,0,31,0,32,0,26,0,11,0,253,255, +251,255,7,0,19,0,20,0,14,0,8,0,2,0,250,255,239,255,232,255,232,255,238,255,247,255,0,0,11,0,20,0, +23,0,15,0,0,0,248,255,249,255,252,255,249,255,236,255,219,255,210,255,216,255,235,255,254,255,8,0,6,0,254,255, +245,255,245,255,4,0,25,0,36,0,24,0,248,255,213,255,197,255,205,255,225,255,240,255,244,255,240,255,235,255,231,255, +234,255,243,255,255,255,5,0,5,0,3,0,5,0,14,0,25,0,32,0,35,0,34,0,31,0,25,0,19,0,12,0, +5,0,252,255,247,255,250,255,4,0,12,0,8,0,254,255,249,255,254,255,8,0,16,0,21,0,30,0,40,0,44,0, +35,0,20,0,6,0,253,255,247,255,242,255,244,255,1,0,21,0,37,0,43,0,40,0,36,0,34,0,31,0,26,0, +17,0,8,0,1,0,253,255,250,255,247,255,245,255,246,255,252,255,5,0,12,0,14,0,17,0,22,0,26,0,23,0, +13,0,6,0,8,0,16,0,20,0,14,0,3,0,248,255,240,255,231,255,223,255,224,255,235,255,252,255,10,0,17,0, +22,0,28,0,34,0,34,0,26,0,12,0,0,0,250,255,248,255,248,255,249,255,250,255,252,255,252,255,246,255,233,255, +219,255,213,255,220,255,236,255,252,255,5,0,7,0,3,0,254,255,248,255,246,255,247,255,250,255,248,255,238,255,223,255, +214,255,221,255,240,255,6,0,15,0,10,0,255,255,249,255,251,255,0,0,4,0,7,0,11,0,13,0,7,0,250,255, +241,255,244,255,253,255,4,0,5,0,7,0,15,0,24,0,26,0,19,0,14,0,16,0,21,0,17,0,7,0,2,0, +9,0,23,0,32,0,33,0,27,0,20,0,13,0,9,0,13,0,22,0,29,0,25,0,14,0,7,0,9,0,15,0, +19,0,17,0,10,0,255,255,243,255,237,255,246,255,11,0,30,0,37,0,35,0,38,0,49,0,57,0,53,0,42,0, +35,0,36,0,39,0,36,0,30,0,25,0,19,0,10,0,0,0,252,255,2,0,7,0,4,0,255,255,1,0,16,0, +36,0,48,0,45,0,32,0,14,0,0,0,253,255,4,0,13,0,13,0,2,0,247,255,246,255,255,255,10,0,17,0, +19,0,20,0,19,0,15,0,11,0,9,0,6,0,253,255,239,255,232,255,239,255,0,0,14,0,15,0,11,0,8,0, +10,0,13,0,13,0,10,0,4,0,252,255,245,255,245,255,253,255,6,0,11,0,11,0,11,0,15,0,20,0,22,0, +19,0,13,0,4,0,249,255,242,255,244,255,254,255,7,0,6,0,254,255,246,255,246,255,251,255,255,255,3,0,9,0, +17,0,20,0,18,0,13,0,11,0,14,0,17,0,18,0,20,0,24,0,27,0,28,0,28,0,27,0,27,0,25,0, +20,0,13,0,7,0,1,0,254,255,1,0,10,0,21,0,29,0,33,0,36,0,40,0,42,0,39,0,33,0,30,0, +34,0,41,0,46,0,45,0,40,0,33,0,22,0,11,0,1,0,0,0,7,0,14,0,17,0,14,0,13,0,20,0, +32,0,41,0,38,0,22,0,254,255,232,255,223,255,230,255,249,255,15,0,27,0,24,0,12,0,2,0,5,0,22,0, +43,0,56,0,52,0,36,0,19,0,11,0,17,0,27,0,31,0,24,0,11,0,1,0,253,255,251,255,250,255,247,255, +242,255,233,255,222,255,216,255,220,255,231,255,235,255,225,255,207,255,193,255,189,255,191,255,193,255,198,255,210,255,226,255, +238,255,241,255,238,255,236,255,236,255,237,255,238,255,241,255,249,255,2,0,10,0,18,0,29,0,41,0,47,0,43,0, +36,0,30,0,29,0,32,0,38,0,46,0,53,0,55,0,53,0,56,0,65,0,72,0,68,0,55,0,44,0,43,0, +49,0,52,0,48,0,41,0,34,0,29,0,28,0,37,0,57,0,75,0,80,0,69,0,52,0,40,0,36,0,34,0, +28,0,22,0,19,0,20,0,26,0,39,0,54,0,64,0,62,0,50,0,35,0,25,0,18,0,13,0,14,0,22,0, +32,0,34,0,28,0,20,0,14,0,7,0,254,255,244,255,240,255,242,255,241,255,233,255,223,255,218,255,220,255,220,255, +219,255,222,255,234,255,249,255,255,255,249,255,238,255,229,255,223,255,218,255,217,255,221,255,226,255,222,255,209,255,199,255, +199,255,206,255,212,255,212,255,210,255,210,255,212,255,214,255,217,255,223,255,230,255,234,255,233,255,231,255,234,255,239,255, +241,255,239,255,239,255,245,255,254,255,3,0,1,0,251,255,243,255,236,255,233,255,233,255,232,255,226,255,218,255,213,255, +216,255,228,255,239,255,245,255,244,255,238,255,232,255,228,255,231,255,238,255,244,255,245,255,240,255,237,255,239,255,244,255, +244,255,235,255,221,255,208,255,198,255,196,255,201,255,210,255,217,255,221,255,225,255,233,255,242,255,244,255,236,255,225,255, +216,255,212,255,209,255,208,255,214,255,226,255,235,255,235,255,233,255,236,255,246,255,251,255,242,255,228,255,220,255,221,255, +222,255,215,255,202,255,192,255,188,255,182,255,173,255,171,255,184,255,208,255,226,255,230,255,222,255,214,255,208,255,204,255, +202,255,207,255,218,255,230,255,236,255,234,255,233,255,238,255,248,255,1,0,4,0,1,0,248,255,238,255,231,255,229,255, +231,255,230,255,226,255,220,255,220,255,223,255,225,255,220,255,213,255,209,255,209,255,210,255,210,255,216,255,230,255,244,255, +248,255,242,255,236,255,239,255,246,255,243,255,227,255,208,255,201,255,203,255,206,255,206,255,209,255,217,255,226,255,224,255, +212,255,203,255,204,255,210,255,210,255,200,255,190,255,189,255,195,255,202,255,206,255,207,255,206,255,204,255,200,255,195,255, +191,255,189,255,189,255,193,255,199,255,203,255,202,255,201,255,202,255,202,255,195,255,186,255,184,255,195,255,212,255,219,255, +214,255,209,255,212,255,219,255,216,255,201,255,186,255,182,255,183,255,180,255,172,255,170,255,177,255,184,255,188,255,194,255, +208,255,227,255,237,255,232,255,219,255,211,255,211,255,214,255,215,255,212,255,205,255,193,255,184,255,186,255,199,255,208,255, +202,255,188,255,184,255,194,255,206,255,204,255,194,255,188,255,192,255,197,255,201,255,210,255,226,255,234,255,218,255,187,255, +174,255,198,255,238,255,4,0,251,255,232,255,229,255,241,255,251,255,251,255,243,255,229,255,207,255,184,255,177,255,199,255, +235,255,0,0,247,255,223,255,210,255,222,255,247,255,11,0,16,0,5,0,242,255,224,255,220,255,234,255,253,255,5,0, +0,0,247,255,249,255,5,0,15,0,17,0,12,0,0,0,239,255,220,255,207,255,208,255,221,255,234,255,240,255,243,255, +247,255,248,255,239,255,219,255,204,255,206,255,224,255,242,255,248,255,242,255,235,255,237,255,248,255,5,0,14,0,16,0, +9,0,252,255,237,255,231,255,241,255,3,0,15,0,10,0,249,255,235,255,234,255,244,255,255,255,3,0,4,0,8,0, +16,0,23,0,24,0,22,0,22,0,20,0,16,0,12,0,16,0,25,0,32,0,33,0,30,0,27,0,29,0,36,0, +43,0,42,0,34,0,22,0,13,0,6,0,255,255,250,255,243,255,236,255,235,255,244,255,1,0,9,0,11,0,17,0, +28,0,35,0,35,0,32,0,36,0,44,0,49,0,48,0,42,0,36,0,35,0,36,0,34,0,31,0,35,0,48,0, +60,0,55,0,38,0,25,0,25,0,29,0,29,0,24,0,20,0,20,0,23,0,29,0,34,0,38,0,42,0,44,0, +38,0,24,0,11,0,12,0,23,0,31,0,33,0,31,0,29,0,27,0,27,0,34,0,43,0,46,0,42,0,39,0, +37,0,34,0,32,0,36,0,43,0,48,0,52,0,56,0,56,0,53,0,51,0,51,0,51,0,51,0,56,0,66,0, +70,0,62,0,49,0,43,0,46,0,51,0,52,0,52,0,48,0,44,0,44,0,51,0,58,0,58,0,53,0,47,0, +42,0,37,0,34,0,36,0,38,0,37,0,37,0,41,0,44,0,45,0,46,0,50,0,51,0,49,0,49,0,54,0, +57,0,52,0,45,0,41,0,40,0,38,0,35,0,34,0,36,0,38,0,40,0,40,0,37,0,28,0,14,0,3,0, +253,255,255,255,7,0,20,0,33,0,41,0,45,0,51,0,56,0,54,0,44,0,35,0,30,0,26,0,21,0,19,0, +20,0,23,0,31,0,48,0,64,0,70,0,72,0,75,0,69,0,49,0,27,0,23,0,30,0,32,0,23,0,16,0, +14,0,12,0,10,0,12,0,19,0,26,0,34,0,42,0,45,0,48,0,57,0,67,0,60,0,35,0,11,0,0,0, +250,255,245,255,251,255,15,0,31,0,35,0,38,0,50,0,62,0,64,0,58,0,46,0,33,0,21,0,17,0,17,0, +18,0,20,0,29,0,41,0,51,0,56,0,59,0,54,0,41,0,28,0,22,0,21,0,17,0,13,0,13,0,16,0, +15,0,10,0,4,0,255,255,252,255,252,255,255,255,3,0,6,0,9,0,12,0,13,0,12,0,9,0,7,0,10,0, +16,0,17,0,11,0,8,0,14,0,26,0,38,0,44,0,43,0,31,0,11,0,254,255,250,255,248,255,243,255,241,255, +244,255,248,255,255,255,7,0,11,0,9,0,6,0,8,0,9,0,254,255,239,255,234,255,233,255,223,255,218,255,226,255, +235,255,232,255,227,255,230,255,234,255,232,255,229,255,230,255,231,255,226,255,224,255,230,255,236,255,237,255,243,255,249,255, +245,255,239,255,242,255,244,255,239,255,234,255,236,255,243,255,246,255,246,255,252,255,6,0,5,0,255,255,4,0,11,0, +8,0,255,255,244,255,237,255,246,255,6,0,11,0,4,0,254,255,3,0,16,0,24,0,19,0,6,0,248,255,231,255, +224,255,232,255,242,255,249,255,3,0,10,0,8,0,4,0,254,255,244,255,236,255,233,255,234,255,235,255,230,255,224,255, +230,255,240,255,239,255,237,255,241,255,242,255,235,255,228,255,221,255,214,255,214,255,216,255,218,255,218,255,215,255,215,255, +224,255,230,255,225,255,224,255,230,255,234,255,233,255,228,255,220,255,218,255,221,255,222,255,221,255,224,255,224,255,225,255, +235,255,243,255,242,255,242,255,242,255,236,255,225,255,213,255,207,255,211,255,213,255,209,255,213,255,220,255,217,255,215,255, +223,255,229,255,227,255,222,255,213,255,201,255,197,255,203,255,214,255,222,255,220,255,220,255,227,255,225,255,215,255,218,255, +230,255,228,255,213,255,202,255,195,255,190,255,188,255,186,255,185,255,185,255,191,255,203,255,214,255,212,255,209,255,217,255, +222,255,215,255,209,255,209,255,213,255,222,255,232,255,234,255,231,255,228,255,227,255,227,255,225,255,222,255,224,255,229,255, +231,255,231,255,230,255,222,255,216,255,220,255,223,255,216,255,210,255,212,255,216,255,224,255,235,255,244,255,247,255,244,255, +242,255,239,255,230,255,222,255,228,255,237,255,230,255,216,255,219,255,232,255,235,255,230,255,230,255,235,255,237,255,231,255, +227,255,227,255,227,255,229,255,232,255,233,255,230,255,230,255,233,255,232,255,229,255,232,255,237,255,239,255,238,255,237,255, +234,255,231,255,230,255,233,255,237,255,240,255,246,255,252,255,251,255,243,255,240,255,243,255,244,255,241,255,242,255,247,255, +253,255,255,255,3,0,7,0,10,0,9,0,8,0,8,0,11,0,17,0,19,0,16,0,14,0,17,0,20,0,20,0, +15,0,13,0,13,0,13,0,12,0,13,0,13,0,12,0,15,0,19,0,19,0,19,0,21,0,24,0,28,0,32,0, +31,0,23,0,12,0,8,0,14,0,22,0,18,0,12,0,15,0,21,0,18,0,14,0,12,0,13,0,12,0,11,0, +11,0,14,0,16,0,14,0,17,0,22,0,22,0,20,0,23,0,25,0,22,0,17,0,16,0,20,0,25,0,22,0, +15,0,16,0,19,0,19,0,21,0,25,0,28,0,27,0,25,0,21,0,23,0,31,0,35,0,35,0,32,0,26,0, +26,0,32,0,34,0,30,0,29,0,29,0,28,0,30,0,33,0,31,0,23,0,9,0,248,255,238,255,237,255,239,255, +247,255,0,0,254,255,248,255,248,255,253,255,6,0,13,0,9,0,0,0,253,255,254,255,255,255,0,0,253,255,245,255, +241,255,239,255,238,255,242,255,247,255,247,255,244,255,238,255,228,255,223,255,231,255,240,255,241,255,235,255,226,255,226,255, +238,255,247,255,242,255,236,255,235,255,239,255,242,255,242,255,244,255,247,255,242,255,238,255,249,255,3,0,1,0,254,255, +249,255,237,255,235,255,245,255,250,255,252,255,7,0,9,0,254,255,247,255,242,255,232,255,232,255,246,255,1,0,7,0, +12,0,12,0,11,0,6,0,253,255,253,255,3,0,246,255,222,255,225,255,249,255,254,255,241,255,238,255,246,255,250,255, +249,255,250,255,250,255,0,0,26,0,54,0,55,0,33,0,8,0,239,255,228,255,245,255,13,0,18,0,15,0,13,0, +4,0,6,0,26,0,26,0,1,0,5,0,41,0,47,0,16,0,254,255,8,0,20,0,19,0,14,0,8,0,3,0, +251,255,252,255,24,0,62,0,71,0,55,0,34,0,8,0,237,255,239,255,3,0,10,0,11,0,22,0,17,0,4,0, +11,0,14,0,250,255,254,255,33,0,42,0,32,0,49,0,64,0,38,0,14,0,20,0,19,0,3,0,254,255,4,0, +9,0,15,0,23,0,27,0,17,0,0,0,252,255,5,0,0,0,0,0,38,0,69,0,26,0,217,255,212,255,234,255, +237,255,7,0,52,0,48,0,17,0,32,0,61,0,37,0,248,255,237,255,4,0,55,0,104,0,74,0,6,0,21,0, +47,0,237,255,235,255,110,0,155,0,122,0,150,0,13,0,172,254,49,254,51,255,208,0,142,2,239,2,177,0,137,254, +43,255,136,0,107,0,219,255,81,255,147,254,191,254,161,255,206,255,33,0,98,1,180,1,127,0,148,255,144,255,13,0, +237,0,4,1,155,255,123,254,243,254,234,255,95,0,88,0,224,255,91,255,110,255,10,0,186,0,37,1,248,0,60,0, +138,255,101,255,175,255,238,255,8,0,58,0,106,0,94,0,58,0,29,0,253,255,252,255,24,0,17,0,234,255,198,255, +183,255,241,255,87,0,95,0,16,0,233,255,241,255,242,255,248,255,4,0,19,0,60,0,98,0,89,0,35,0,220,255, +181,255,214,255,251,255,228,255,215,255,239,255,254,255,23,0,45,0,251,255,211,255,3,0,19,0,235,255,15,0,73,0, +43,0,22,0,40,0,16,0,3,0,28,0,242,255,192,255,251,255,59,0,34,0,5,0,253,255,231,255,232,255,242,255, +207,255,178,255,201,255,230,255,241,255,2,0,24,0,42,0,35,0,3,0,240,255,240,255,238,255,244,255,253,255,238,255, +240,255,19,0,31,0,22,0,32,0,10,0,208,255,196,255,225,255,240,255,8,0,28,0,0,0,240,255,17,0,34,0, +29,0,35,0,21,0,242,255,237,255,247,255,253,255,14,0,12,0,229,255,200,255,199,255,207,255,227,255,243,255,235,255, +231,255,243,255,244,255,246,255,3,0,3,0,2,0,15,0,16,0,5,0,6,0,3,0,245,255,241,255,240,255,233,255, +243,255,3,0,2,0,254,255,0,0,4,0,24,0,45,0,38,0,19,0,10,0,2,0,7,0,31,0,44,0,43,0, +45,0,33,0,12,0,13,0,20,0,8,0,253,255,250,255,244,255,253,255,22,0,29,0,20,0,16,0,4,0,243,255, +241,255,247,255,251,255,2,0,11,0,17,0,24,0,27,0,21,0,8,0,252,255,244,255,242,255,243,255,249,255,7,0, +19,0,24,0,25,0,23,0,17,0,11,0,6,0,3,0,5,0,11,0,19,0,27,0,32,0,33,0,30,0,24,0, +18,0,13,0,11,0,14,0,19,0,23,0,27,0,28,0,26,0,22,0,13,0,0,0,244,255,241,255,245,255,250,255, +0,0,10,0,21,0,29,0,34,0,35,0,34,0,33,0,31,0,27,0,23,0,19,0,16,0,15,0,15,0,11,0, +5,0,0,0,254,255,253,255,253,255,252,255,251,255,0,0,8,0,15,0,19,0,20,0,17,0,15,0,15,0,14,0, +10,0,8,0,5,0,0,0,254,255,1,0,5,0,9,0,14,0,16,0,16,0,13,0,5,0,252,255,248,255,247,255, +247,255,251,255,2,0,4,0,1,0,255,255,253,255,251,255,251,255,247,255,238,255,232,255,233,255,239,255,245,255,246,255, +242,255,239,255,239,255,236,255,228,255,222,255,219,255,221,255,232,255,242,255,244,255,243,255,241,255,234,255,228,255,220,255, +207,255,202,255,216,255,227,255,219,255,210,255,217,255,225,255,227,255,225,255,216,255,206,255,208,255,219,255,224,255,225,255, +225,255,218,255,210,255,206,255,207,255,215,255,229,255,237,255,231,255,222,255,222,255,227,255,233,255,239,255,243,255,242,255, +236,255,229,255,226,255,228,255,229,255,229,255,235,255,245,255,245,255,237,255,230,255,227,255,227,255,232,255,238,255,239,255, +234,255,229,255,223,255,215,255,207,255,207,255,212,255,216,255,214,255,210,255,208,255,211,255,217,255,226,255,232,255,234,255, +234,255,235,255,235,255,234,255,232,255,234,255,237,255,236,255,230,255,228,255,232,255,234,255,231,255,226,255,221,255,217,255, +217,255,216,255,216,255,218,255,224,255,228,255,230,255,228,255,223,255,224,255,234,255,239,255,235,255,229,255,229,255,231,255, +236,255,244,255,249,255,246,255,242,255,241,255,239,255,237,255,234,255,234,255,237,255,240,255,239,255,239,255,239,255,235,255, +227,255,219,255,214,255,212,255,217,255,228,255,236,255,236,255,230,255,225,255,226,255,229,255,231,255,234,255,237,255,243,255, +248,255,248,255,245,255,243,255,247,255,253,255,3,0,5,0,4,0,4,0,9,0,12,0,10,0,11,0,19,0,23,0, +22,0,21,0,17,0,11,0,10,0,15,0,19,0,20,0,18,0,12,0,7,0,9,0,13,0,16,0,18,0,19,0, +16,0,17,0,25,0,30,0,27,0,24,0,24,0,23,0,18,0,11,0,8,0,15,0,23,0,24,0,22,0,22,0, +22,0,25,0,31,0,33,0,30,0,27,0,26,0,25,0,26,0,31,0,35,0,34,0,27,0,16,0,10,0,14,0, +16,0,11,0,8,0,14,0,17,0,12,0,10,0,15,0,19,0,23,0,26,0,28,0,23,0,14,0,6,0,4,0, +8,0,13,0,13,0,11,0,11,0,13,0,12,0,9,0,9,0,12,0,15,0,17,0,15,0,11,0,8,0,10,0, +8,0,0,0,248,255,244,255,240,255,238,255,242,255,250,255,1,0,5,0,4,0,1,0,0,0,3,0,3,0,255,255, +253,255,253,255,1,0,4,0,6,0,7,0,10,0,16,0,19,0,18,0,14,0,10,0,9,0,13,0,17,0,16,0, +8,0,1,0,255,255,253,255,248,255,246,255,249,255,248,255,241,255,239,255,245,255,250,255,249,255,245,255,239,255,234,255, +233,255,235,255,236,255,237,255,239,255,240,255,240,255,242,255,245,255,248,255,250,255,252,255,248,255,242,255,239,255,237,255, +235,255,236,255,242,255,243,255,236,255,228,255,227,255,230,255,230,255,230,255,237,255,245,255,249,255,248,255,247,255,247,255, +251,255,6,0,16,0,17,0,11,0,1,0,251,255,253,255,7,0,13,0,10,0,4,0,3,0,8,0,15,0,22,0, +29,0,36,0,40,0,38,0,30,0,24,0,23,0,27,0,31,0,33,0,33,0,35,0,35,0,31,0,29,0,32,0, +36,0,36,0,33,0,25,0,13,0,1,0,251,255,252,255,255,255,2,0,1,0,252,255,249,255,253,255,2,0,5,0, +3,0,254,255,248,255,245,255,246,255,250,255,253,255,0,0,4,0,5,0,2,0,0,0,4,0,9,0,8,0,4,0, +0,0,253,255,251,255,253,255,1,0,255,255,251,255,251,255,253,255,251,255,246,255,243,255,246,255,251,255,0,0,3,0, +7,0,7,0,4,0,4,0,9,0,15,0,18,0,18,0,13,0,8,0,7,0,11,0,10,0,8,0,5,0,2,0, +3,0,9,0,10,0,2,0,255,255,6,0,10,0,9,0,8,0,4,0,253,255,250,255,247,255,241,255,239,255,243,255, +248,255,250,255,251,255,251,255,252,255,254,255,253,255,251,255,249,255,249,255,251,255,255,255,0,0,248,255,242,255,242,255, +243,255,245,255,252,255,1,0,255,255,0,0,2,0,255,255,252,255,0,0,3,0,3,0,4,0,4,0,1,0,4,0, +6,0,253,255,243,255,247,255,5,0,22,0,34,0,33,0,24,0,19,0,22,0,24,0,18,0,7,0,251,255,242,255, +236,255,227,255,219,255,223,255,235,255,242,255,243,255,243,255,246,255,251,255,254,255,253,255,253,255,255,255,254,255,248,255, +242,255,239,255,243,255,247,255,246,255,244,255,247,255,250,255,246,255,240,255,238,255,236,255,234,255,232,255,225,255,215,255, +211,255,214,255,214,255,217,255,227,255,234,255,232,255,228,255,228,255,233,255,240,255,243,255,240,255,239,255,242,255,242,255, +236,255,229,255,224,255,225,255,228,255,226,255,220,255,216,255,217,255,225,255,237,255,244,255,238,255,230,255,229,255,231,255, +232,255,235,255,237,255,237,255,238,255,240,255,234,255,229,255,231,255,233,255,228,255,228,255,233,255,236,255,236,255,238,255, +238,255,238,255,239,255,238,255,237,255,241,255,244,255,242,255,237,255,236,255,238,255,240,255,243,255,243,255,238,255,232,255, +233,255,234,255,230,255,228,255,228,255,226,255,221,255,221,255,227,255,234,255,241,255,246,255,250,255,255,255,2,0,3,0, +7,0,10,0,5,0,250,255,245,255,246,255,243,255,238,255,237,255,239,255,239,255,239,255,239,255,239,255,241,255,242,255, +237,255,234,255,236,255,240,255,244,255,250,255,252,255,251,255,251,255,250,255,244,255,242,255,249,255,253,255,251,255,250,255, +253,255,4,0,11,0,12,0,6,0,3,0,3,0,3,0,4,0,5,0,0,0,250,255,250,255,254,255,2,0,6,0, +7,0,4,0,0,0,252,255,248,255,246,255,250,255,255,255,0,0,0,0,255,255,1,0,8,0,14,0,15,0,12,0, +9,0,7,0,5,0,3,0,2,0,4,0,6,0,4,0,1,0,4,0,11,0,16,0,22,0,26,0,27,0,27,0, +25,0,20,0,15,0,13,0,11,0,10,0,13,0,15,0,14,0,17,0,18,0,15,0,13,0,14,0,14,0,12,0, +14,0,14,0,13,0,19,0,23,0,17,0,14,0,17,0,17,0,12,0,12,0,8,0,2,0,4,0,15,0,19,0, +17,0,18,0,18,0,21,0,27,0,27,0,15,0,3,0,1,0,5,0,10,0,11,0,7,0,3,0,2,0,2,0, +2,0,2,0,1,0,0,0,0,0,252,255,246,255,248,255,3,0,9,0,7,0,3,0,2,0,4,0,10,0,13,0, +11,0,7,0,0,0,247,255,243,255,249,255,3,0,8,0,10,0,8,0,3,0,255,255,1,0,6,0,8,0,4,0, +4,0,11,0,18,0,17,0,13,0,12,0,13,0,15,0,20,0,25,0,23,0,14,0,7,0,10,0,18,0,16,0, +6,0,0,0,252,255,246,255,244,255,246,255,247,255,252,255,8,0,14,0,11,0,9,0,15,0,19,0,21,0,21,0, +16,0,11,0,13,0,14,0,8,0,8,0,15,0,14,0,7,0,3,0,0,0,250,255,245,255,245,255,248,255,250,255, +251,255,250,255,253,255,2,0,6,0,9,0,9,0,4,0,0,0,252,255,247,255,242,255,243,255,243,255,236,255,231,255, +234,255,240,255,246,255,251,255,253,255,254,255,4,0,14,0,21,0,21,0,18,0,13,0,10,0,12,0,18,0,22,0, +20,0,14,0,8,0,7,0,8,0,9,0,10,0,10,0,8,0,9,0,11,0,13,0,15,0,16,0,15,0,14,0, +16,0,19,0,19,0,18,0,18,0,16,0,14,0,15,0,20,0,27,0,29,0,24,0,16,0,10,0,6,0,4,0, +6,0,8,0,8,0,12,0,17,0,17,0,15,0,15,0,11,0,2,0,1,0,12,0,22,0,25,0,24,0,23,0, +23,0,25,0,25,0,23,0,22,0,24,0,25,0,24,0,22,0,20,0,21,0,24,0,29,0,32,0,35,0,35,0, +33,0,31,0,25,0,16,0,11,0,14,0,18,0,16,0,14,0,18,0,25,0,30,0,33,0,28,0,21,0,20,0, +25,0,29,0,27,0,25,0,26,0,29,0,30,0,32,0,36,0,40,0,41,0,36,0,30,0,28,0,29,0,28,0, +27,0,31,0,36,0,36,0,27,0,18,0,15,0,14,0,11,0,9,0,11,0,13,0,15,0,16,0,15,0,14,0, +16,0,24,0,29,0,27,0,21,0,11,0,4,0,4,0,7,0,11,0,15,0,18,0,16,0,10,0,7,0,4,0, +2,0,4,0,9,0,11,0,11,0,9,0,5,0,0,0,254,255,2,0,8,0,13,0,16,0,19,0,20,0,19,0, +19,0,20,0,19,0,17,0,17,0,20,0,22,0,21,0,20,0,17,0,15,0,15,0,14,0,11,0,5,0,1,0, +254,255,254,255,252,255,244,255,237,255,237,255,238,255,237,255,236,255,237,255,234,255,235,255,242,255,252,255,3,0,11,0, +20,0,27,0,32,0,38,0,43,0,49,0,57,0,60,0,56,0,49,0,43,0,36,0,30,0,23,0,16,0,10,0, +2,0,250,255,241,255,233,255,229,255,229,255,230,255,228,255,225,255,222,255,222,255,222,255,220,255,218,255,216,255,217,255, +218,255,215,255,212,255,216,255,227,255,238,255,245,255,248,255,249,255,249,255,253,255,255,255,254,255,252,255,249,255,243,255, +241,255,246,255,249,255,248,255,247,255,246,255,241,255,237,255,237,255,235,255,234,255,237,255,240,255,238,255,234,255,230,255, +228,255,228,255,227,255,227,255,229,255,233,255,233,255,234,255,239,255,241,255,240,255,239,255,238,255,237,255,239,255,241,255, +238,255,233,255,233,255,236,255,235,255,232,255,229,255,228,255,230,255,232,255,231,255,227,255,225,255,226,255,226,255,226,255, +226,255,227,255,231,255,233,255,230,255,228,255,231,255,234,255,237,255,245,255,252,255,254,255,2,0,6,0,3,0,252,255, +250,255,246,255,237,255,229,255,228,255,230,255,233,255,236,255,235,255,234,255,235,255,236,255,233,255,231,255,230,255,231,255, +236,255,238,255,236,255,237,255,246,255,253,255,251,255,247,255,248,255,252,255,2,0,5,0,2,0,1,0,1,0,252,255, +242,255,235,255,237,255,243,255,251,255,0,0,0,0,254,255,253,255,253,255,252,255,252,255,253,255,254,255,255,255,254,255, +251,255,251,255,253,255,255,255,0,0,2,0,3,0,2,0,2,0,1,0,253,255,250,255,247,255,243,255,239,255,237,255, +238,255,242,255,245,255,244,255,242,255,244,255,245,255,244,255,247,255,0,0,7,0,8,0,5,0,4,0,5,0,6,0, +8,0,9,0,7,0,3,0,254,255,250,255,244,255,240,255,243,255,248,255,247,255,244,255,244,255,244,255,244,255,244,255, +248,255,254,255,2,0,6,0,10,0,13,0,13,0,11,0,10,0,11,0,9,0,3,0,253,255,249,255,246,255,243,255, +241,255,243,255,245,255,247,255,248,255,249,255,251,255,249,255,247,255,246,255,248,255,248,255,248,255,252,255,0,0,0,0, +253,255,252,255,255,255,1,0,3,0,6,0,8,0,7,0,3,0,0,0,251,255,244,255,238,255,238,255,238,255,236,255, +234,255,233,255,231,255,231,255,234,255,239,255,243,255,246,255,249,255,251,255,249,255,244,255,241,255,243,255,247,255,249,255, +251,255,255,255,2,0,4,0,6,0,8,0,6,0,2,0,253,255,246,255,241,255,239,255,239,255,239,255,241,255,244,255, +247,255,251,255,254,255,254,255,251,255,251,255,253,255,253,255,252,255,253,255,0,0,4,0,5,0,3,0,3,0,1,0, +252,255,248,255,248,255,249,255,246,255,246,255,247,255,246,255,242,255,241,255,243,255,244,255,245,255,248,255,251,255,251,255, +250,255,249,255,250,255,250,255,247,255,243,255,242,255,244,255,245,255,243,255,238,255,232,255,231,255,234,255,235,255,237,255, +242,255,245,255,244,255,245,255,249,255,250,255,249,255,248,255,246,255,242,255,237,255,234,255,232,255,235,255,240,255,244,255, +246,255,246,255,246,255,246,255,246,255,244,255,242,255,242,255,244,255,244,255,246,255,248,255,249,255,253,255,6,0,12,0, +13,0,14,0,15,0,13,0,7,0,3,0,2,0,3,0,4,0,1,0,252,255,249,255,251,255,253,255,255,255,0,0, +0,0,252,255,248,255,244,255,243,255,246,255,252,255,0,0,3,0,4,0,4,0,5,0,9,0,12,0,14,0,15,0, +15,0,15,0,14,0,13,0,10,0,7,0,5,0,4,0,1,0,255,255,251,255,249,255,250,255,253,255,0,0,1,0, +4,0,6,0,6,0,7,0,8,0,8,0,7,0,5,0,3,0,0,0,255,255,1,0,7,0,10,0,10,0,12,0, +18,0,21,0,19,0,16,0,13,0,8,0,4,0,1,0,254,255,252,255,252,255,254,255,0,0,0,0,1,0,3,0, +3,0,2,0,1,0,1,0,1,0,3,0,5,0,4,0,2,0,3,0,5,0,5,0,6,0,6,0,5,0,0,0, +253,255,254,255,255,255,255,255,1,0,3,0,4,0,3,0,2,0,1,0,255,255,255,255,3,0,8,0,10,0,11,0, +14,0,18,0,20,0,23,0,26,0,25,0,23,0,24,0,25,0,23,0,21,0,22,0,21,0,16,0,12,0,8,0, +3,0,255,255,254,255,0,0,1,0,255,255,250,255,247,255,246,255,248,255,250,255,253,255,255,255,255,255,255,255,1,0, +3,0,7,0,10,0,9,0,7,0,6,0,2,0,255,255,1,0,6,0,7,0,3,0,0,0,2,0,4,0,6,0, +5,0,4,0,3,0,1,0,251,255,248,255,248,255,247,255,245,255,245,255,244,255,244,255,242,255,240,255,237,255,238,255, +244,255,250,255,255,255,0,0,253,255,247,255,245,255,244,255,240,255,235,255,232,255,232,255,233,255,233,255,231,255,233,255, +241,255,246,255,244,255,244,255,247,255,249,255,248,255,247,255,248,255,248,255,250,255,249,255,244,255,238,255,235,255,235,255, +238,255,240,255,240,255,238,255,235,255,231,255,226,255,225,255,227,255,228,255,228,255,229,255,230,255,234,255,239,255,241,255, +241,255,242,255,245,255,248,255,249,255,250,255,250,255,249,255,249,255,247,255,244,255,242,255,240,255,236,255,234,255,235,255, +239,255,243,255,246,255,246,255,243,255,240,255,237,255,235,255,235,255,236,255,237,255,242,255,247,255,251,255,253,255,1,0, +5,0,5,0,3,0,1,0,253,255,248,255,242,255,241,255,242,255,243,255,242,255,242,255,244,255,244,255,243,255,243,255, +246,255,247,255,244,255,241,255,241,255,242,255,243,255,246,255,250,255,252,255,254,255,1,0,5,0,7,0,7,0,6,0, +4,0,0,0,254,255,254,255,0,0,1,0,1,0,1,0,3,0,6,0,10,0,12,0,11,0,10,0,9,0,8,0, +6,0,2,0,253,255,250,255,250,255,248,255,245,255,243,255,247,255,254,255,1,0,2,0,5,0,7,0,3,0,254,255, +252,255,252,255,251,255,252,255,0,0,1,0,254,255,249,255,248,255,248,255,248,255,249,255,251,255,253,255,254,255,0,0, +4,0,8,0,10,0,10,0,8,0,3,0,2,0,3,0,2,0,0,0,1,0,6,0,10,0,12,0,13,0,13,0, +10,0,8,0,5,0,1,0,1,0,5,0,10,0,13,0,14,0,10,0,4,0,2,0,3,0,3,0,0,0,253,255, +253,255,255,255,254,255,252,255,255,255,6,0,10,0,11,0,11,0,10,0,4,0,255,255,254,255,0,0,4,0,8,0, +12,0,13,0,12,0,10,0,5,0,0,0,250,255,244,255,240,255,243,255,247,255,249,255,250,255,251,255,250,255,247,255, +245,255,246,255,249,255,252,255,254,255,0,0,2,0,4,0,4,0,6,0,9,0,8,0,6,0,4,0,3,0,2,0, +3,0,3,0,2,0,3,0,3,0,2,0,0,0,0,0,255,255,254,255,255,255,1,0,1,0,255,255,252,255,250,255, +250,255,252,255,254,255,1,0,3,0,0,0,250,255,244,255,242,255,242,255,245,255,247,255,248,255,250,255,251,255,249,255, +246,255,247,255,246,255,241,255,239,255,243,255,246,255,246,255,246,255,248,255,247,255,243,255,241,255,241,255,246,255,252,255, +254,255,253,255,252,255,251,255,249,255,248,255,249,255,248,255,247,255,246,255,246,255,245,255,245,255,244,255,244,255,247,255, +247,255,245,255,246,255,249,255,249,255,247,255,247,255,247,255,244,255,237,255,233,255,233,255,239,255,245,255,248,255,250,255, +250,255,247,255,245,255,244,255,245,255,248,255,252,255,254,255,250,255,247,255,249,255,253,255,0,0,0,0,0,0,254,255, +252,255,250,255,248,255,246,255,245,255,244,255,243,255,241,255,239,255,239,255,242,255,246,255,247,255,247,255,248,255,249,255, +249,255,250,255,254,255,2,0,5,0,4,0,2,0,255,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,250,255, +248,255,245,255,244,255,247,255,250,255,251,255,252,255,254,255,255,255,1,0,3,0,4,0,2,0,255,255,253,255,250,255, +248,255,246,255,247,255,250,255,253,255,254,255,0,0,4,0,6,0,9,0,11,0,13,0,13,0,10,0,7,0,3,0, +255,255,0,0,5,0,12,0,19,0,21,0,18,0,14,0,9,0,3,0,254,255,253,255,253,255,251,255,251,255,0,0, +4,0,5,0,5,0,7,0,8,0,9,0,12,0,17,0,22,0,23,0,23,0,22,0,23,0,22,0,21,0,21,0, +18,0,12,0,9,0,10,0,11,0,13,0,12,0,8,0,3,0,2,0,2,0,3,0,5,0,6,0,5,0,4,0, +6,0,9,0,11,0,12,0,13,0,14,0,16,0,16,0,13,0,12,0,12,0,12,0,12,0,14,0,17,0,16,0, +13,0,9,0,5,0,4,0,2,0,255,255,255,255,3,0,7,0,10,0,15,0,20,0,21,0,21,0,25,0,28,0, +27,0,23,0,20,0,18,0,16,0,16,0,17,0,20,0,21,0,17,0,9,0,4,0,4,0,7,0,12,0,17,0, +19,0,19,0,15,0,9,0,7,0,8,0,11,0,11,0,11,0,11,0,9,0,7,0,5,0,3,0,255,255,252,255, +250,255,252,255,255,255,2,0,3,0,3,0,6,0,8,0,6,0,4,0,3,0,1,0,254,255,253,255,253,255,255,255, +0,0,0,0,1,0,255,255,251,255,247,255,246,255,248,255,253,255,2,0,4,0,3,0,2,0,3,0,4,0,5,0, +3,0,252,255,245,255,242,255,241,255,241,255,240,255,239,255,239,255,241,255,242,255,244,255,246,255,246,255,247,255,247,255, +246,255,242,255,239,255,242,255,246,255,248,255,248,255,249,255,250,255,252,255,255,255,0,0,255,255,252,255,250,255,248,255, +245,255,244,255,245,255,246,255,246,255,246,255,249,255,253,255,253,255,252,255,251,255,250,255,246,255,242,255,241,255,238,255, +233,255,230,255,232,255,235,255,235,255,236,255,239,255,245,255,248,255,246,255,244,255,245,255,247,255,247,255,245,255,245,255, +245,255,247,255,249,255,250,255,245,255,238,255,231,255,228,255,228,255,228,255,226,255,224,255,226,255,231,255,234,255,235,255, +239,255,247,255,253,255,254,255,252,255,250,255,250,255,251,255,254,255,255,255,0,0,1,0,255,255,253,255,252,255,254,255, +1,0,2,0,2,0,255,255,251,255,248,255,246,255,245,255,243,255,241,255,242,255,247,255,253,255,1,0,4,0,7,0, +10,0,9,0,6,0,7,0,10,0,13,0,11,0,8,0,5,0,0,0,252,255,251,255,249,255,246,255,241,255,239,255, +239,255,240,255,243,255,246,255,246,255,248,255,253,255,3,0,8,0,10,0,9,0,10,0,13,0,18,0,21,0,23,0, +22,0,18,0,13,0,11,0,10,0,9,0,9,0,8,0,4,0,0,0,255,255,1,0,2,0,4,0,7,0,7,0, +8,0,11,0,14,0,15,0,17,0,18,0,18,0,18,0,20,0,22,0,24,0,24,0,21,0,15,0,7,0,2,0, +2,0,5,0,5,0,5,0,6,0,8,0,7,0,7,0,8,0,9,0,9,0,12,0,18,0,23,0,25,0,26,0, +26,0,27,0,25,0,21,0,17,0,19,0,20,0,18,0,17,0,17,0,13,0,4,0,251,255,247,255,243,255,240,255, +239,255,241,255,244,255,246,255,248,255,249,255,251,255,253,255,255,255,5,0,16,0,26,0,30,0,30,0,30,0,29,0, +26,0,23,0,20,0,14,0,9,0,5,0,253,255,244,255,239,255,240,255,243,255,248,255,253,255,254,255,1,0,8,0, +17,0,25,0,30,0,33,0,31,0,25,0,17,0,9,0,0,0,249,255,241,255,233,255,227,255,226,255,227,255,230,255, +237,255,248,255,1,0,7,0,13,0,18,0,20,0,18,0,12,0,3,0,248,255,239,255,236,255,234,255,234,255,233,255, +230,255,227,255,226,255,229,255,235,255,244,255,253,255,1,0,1,0,3,0,7,0,5,0,254,255,247,255,242,255,234,255, +225,255,220,255,221,255,226,255,234,255,239,255,243,255,244,255,242,255,238,255,237,255,240,255,244,255,249,255,1,0,9,0, +10,0,7,0,3,0,253,255,243,255,234,255,228,255,223,255,221,255,225,255,231,255,235,255,235,255,232,255,231,255,232,255, +233,255,233,255,234,255,235,255,238,255,240,255,240,255,239,255,236,255,234,255,233,255,231,255,230,255,232,255,237,255,243,255, +249,255,251,255,251,255,252,255,251,255,247,255,242,255,240,255,242,255,246,255,249,255,249,255,249,255,248,255,245,255,241,255, +241,255,245,255,247,255,247,255,248,255,249,255,250,255,253,255,4,0,7,0,4,0,255,255,251,255,249,255,248,255,248,255, +244,255,239,255,241,255,245,255,245,255,244,255,244,255,245,255,244,255,241,255,238,255,239,255,241,255,244,255,246,255,250,255, +1,0,6,0,8,0,11,0,10,0,3,0,254,255,0,0,2,0,1,0,2,0,5,0,5,0,3,0,4,0,7,0, +11,0,12,0,10,0,6,0,3,0,2,0,3,0,6,0,11,0,14,0,12,0,8,0,5,0,3,0,1,0,1,0, +5,0,11,0,16,0,18,0,17,0,15,0,13,0,10,0,8,0,6,0,7,0,8,0,9,0,9,0,8,0,6,0, +5,0,8,0,9,0,7,0,8,0,13,0,17,0,16,0,13,0,13,0,15,0,15,0,13,0,8,0,4,0,5,0, +8,0,8,0,9,0,13,0,19,0,21,0,18,0,14,0,10,0,5,0,1,0,255,255,0,0,3,0,5,0,8,0, +13,0,19,0,22,0,24,0,25,0,21,0,14,0,12,0,16,0,22,0,24,0,24,0,22,0,20,0,16,0,11,0, +9,0,9,0,9,0,6,0,5,0,7,0,9,0,9,0,11,0,13,0,13,0,9,0,6,0,6,0,11,0,15,0, +13,0,6,0,255,255,249,255,244,255,242,255,246,255,251,255,0,0,6,0,10,0,10,0,10,0,12,0,13,0,12,0, +11,0,10,0,11,0,13,0,16,0,17,0,17,0,16,0,10,0,1,0,251,255,247,255,246,255,248,255,251,255,252,255, +251,255,252,255,255,255,2,0,5,0,7,0,6,0,6,0,7,0,8,0,7,0,6,0,6,0,6,0,5,0,6,0, +5,0,3,0,255,255,250,255,245,255,245,255,249,255,252,255,253,255,253,255,254,255,254,255,255,255,3,0,6,0,4,0, +255,255,249,255,244,255,239,255,238,255,240,255,245,255,246,255,244,255,242,255,241,255,242,255,244,255,249,255,0,0,5,0, +4,0,3,0,4,0,4,0,255,255,250,255,248,255,249,255,250,255,249,255,245,255,240,255,240,255,244,255,247,255,246,255, +245,255,246,255,248,255,250,255,254,255,1,0,5,0,9,0,10,0,8,0,8,0,7,0,2,0,249,255,243,255,242,255, +245,255,250,255,255,255,4,0,9,0,10,0,5,0,255,255,251,255,248,255,243,255,242,255,241,255,238,255,236,255,238,255, +242,255,243,255,244,255,247,255,250,255,251,255,254,255,3,0,9,0,12,0,10,0,8,0,7,0,7,0,3,0,254,255, +251,255,252,255,254,255,0,0,1,0,3,0,6,0,10,0,10,0,8,0,8,0,11,0,9,0,6,0,7,0,8,0, +6,0,7,0,9,0,11,0,11,0,11,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0,3,0,3,0,6,0, +7,0,6,0,8,0,11,0,11,0,10,0,11,0,15,0,18,0,18,0,16,0,11,0,8,0,7,0,4,0,2,0, +2,0,5,0,6,0,7,0,8,0,8,0,8,0,11,0,15,0,17,0,16,0,15,0,17,0,20,0,22,0,23,0, +24,0,23,0,17,0,9,0,4,0,3,0,5,0,7,0,8,0,6,0,3,0,3,0,7,0,11,0,13,0,13,0, +12,0,12,0,9,0,5,0,2,0,3,0,7,0,9,0,9,0,9,0,12,0,15,0,15,0,9,0,0,0,252,255, +252,255,253,255,255,255,3,0,8,0,11,0,10,0,6,0,2,0,254,255,250,255,249,255,249,255,251,255,253,255,255,255, +0,0,0,0,1,0,0,0,0,0,4,0,10,0,13,0,12,0,9,0,7,0,5,0,2,0,255,255,251,255,249,255, +249,255,248,255,246,255,248,255,1,0,13,0,22,0,20,0,9,0,0,0,0,0,3,0,4,0,3,0,4,0,1,0, +251,255,247,255,249,255,1,0,11,0,14,0,4,0,245,255,236,255,236,255,237,255,241,255,248,255,253,255,255,255,252,255, +247,255,245,255,249,255,0,0,3,0,3,0,4,0,5,0,3,0,2,0,254,255,243,255,232,255,227,255,224,255,222,255, +223,255,226,255,226,255,229,255,236,255,242,255,244,255,243,255,241,255,242,255,246,255,250,255,250,255,249,255,250,255,249,255, +244,255,241,255,241,255,242,255,242,255,243,255,245,255,244,255,244,255,245,255,245,255,245,255,247,255,247,255,248,255,249,255, +251,255,253,255,0,0,0,0,251,255,244,255,241,255,242,255,246,255,250,255,251,255,251,255,250,255,249,255,247,255,245,255, +244,255,243,255,243,255,243,255,241,255,238,255,233,255,230,255,228,255,229,255,230,255,231,255,234,255,237,255,241,255,243,255, +246,255,251,255,254,255,255,255,253,255,249,255,244,255,240,255,241,255,243,255,246,255,248,255,245,255,239,255,237,255,242,255, +248,255,251,255,251,255,248,255,246,255,245,255,246,255,249,255,254,255,3,0,4,0,2,0,0,0,0,0,1,0,3,0, +4,0,3,0,1,0,255,255,254,255,253,255,253,255,0,0,3,0,5,0,4,0,1,0,253,255,250,255,247,255,245,255, +245,255,247,255,252,255,254,255,253,255,251,255,253,255,252,255,251,255,252,255,0,0,1,0,255,255,253,255,252,255,253,255, +0,0,1,0,1,0,4,0,8,0,8,0,4,0,3,0,6,0,9,0,12,0,11,0,6,0,1,0,254,255,252,255, +252,255,2,0,8,0,9,0,8,0,9,0,10,0,12,0,16,0,17,0,10,0,4,0,2,0,2,0,3,0,7,0, +13,0,15,0,16,0,16,0,14,0,11,0,10,0,9,0,6,0,5,0,4,0,4,0,3,0,1,0,253,255,250,255, +248,255,247,255,247,255,249,255,253,255,1,0,4,0,9,0,11,0,9,0,6,0,3,0,255,255,253,255,1,0,4,0, +3,0,1,0,0,0,1,0,2,0,2,0,4,0,9,0,12,0,11,0,9,0,10,0,12,0,14,0,16,0,17,0, +16,0,13,0,10,0,7,0,1,0,253,255,248,255,244,255,241,255,243,255,245,255,247,255,249,255,252,255,252,255,250,255, +249,255,250,255,253,255,255,255,255,255,1,0,9,0,14,0,13,0,10,0,8,0,7,0,5,0,2,0,252,255,248,255, +246,255,248,255,251,255,253,255,0,0,2,0,4,0,5,0,5,0,2,0,255,255,253,255,252,255,252,255,252,255,252,255, +254,255,255,255,1,0,3,0,4,0,5,0,5,0,4,0,3,0,0,0,253,255,251,255,251,255,252,255,255,255,1,0, +2,0,3,0,4,0,4,0,2,0,0,0,254,255,251,255,249,255,248,255,244,255,239,255,234,255,233,255,235,255,240,255, +244,255,248,255,253,255,0,0,253,255,251,255,254,255,0,0,255,255,0,0,3,0,5,0,7,0,10,0,11,0,9,0, +6,0,4,0,0,0,251,255,249,255,250,255,253,255,255,255,253,255,249,255,248,255,249,255,249,255,248,255,247,255,246,255, +243,255,241,255,241,255,241,255,242,255,243,255,245,255,252,255,7,0,14,0,12,0,7,0,5,0,4,0,0,0,251,255, +245,255,242,255,241,255,240,255,242,255,247,255,254,255,2,0,2,0,0,0,255,255,0,0,2,0,6,0,7,0,6,0, +4,0,2,0,1,0,2,0,4,0,4,0,2,0,255,255,252,255,250,255,251,255,251,255,249,255,249,255,248,255,247,255, +247,255,250,255,254,255,254,255,255,255,1,0,7,0,13,0,16,0,16,0,12,0,8,0,5,0,3,0,2,0,255,255, +252,255,253,255,254,255,251,255,247,255,248,255,251,255,254,255,0,0,2,0,4,0,6,0,10,0,13,0,15,0,16,0, +16,0,15,0,13,0,10,0,5,0,1,0,253,255,250,255,249,255,251,255,251,255,249,255,248,255,250,255,254,255,2,0, +6,0,9,0,12,0,15,0,15,0,9,0,2,0,253,255,250,255,251,255,0,0,4,0,3,0,254,255,253,255,255,255, +2,0,3,0,1,0,0,0,0,0,2,0,6,0,16,0,25,0,27,0,21,0,16,0,13,0,13,0,14,0,14,0, +13,0,11,0,7,0,2,0,251,255,247,255,246,255,248,255,250,255,250,255,249,255,249,255,252,255,255,255,0,0,1,0, +1,0,1,0,2,0,3,0,5,0,5,0,2,0,254,255,252,255,252,255,251,255,248,255,246,255,248,255,251,255,251,255, +248,255,245,255,242,255,242,255,245,255,248,255,251,255,253,255,255,255,255,255,0,0,254,255,252,255,251,255,253,255,254,255, +253,255,251,255,250,255,251,255,252,255,252,255,252,255,252,255,251,255,247,255,242,255,241,255,242,255,244,255,247,255,248,255, +246,255,242,255,241,255,241,255,242,255,243,255,246,255,248,255,247,255,245,255,243,255,243,255,245,255,246,255,247,255,247,255, +245,255,242,255,241,255,240,255,236,255,231,255,230,255,232,255,235,255,238,255,240,255,238,255,236,255,238,255,243,255,248,255, +248,255,245,255,243,255,243,255,243,255,243,255,244,255,244,255,243,255,241,255,240,255,239,255,239,255,238,255,239,255,239,255, +239,255,238,255,238,255,239,255,242,255,245,255,247,255,248,255,251,255,252,255,251,255,248,255,247,255,247,255,248,255,250,255, +250,255,249,255,247,255,244,255,240,255,235,255,232,255,233,255,237,255,237,255,234,255,231,255,230,255,232,255,235,255,238,255, +241,255,245,255,249,255,251,255,252,255,253,255,253,255,252,255,251,255,251,255,252,255,251,255,247,255,245,255,246,255,247,255, +249,255,253,255,3,0,4,0,255,255,249,255,245,255,243,255,240,255,240,255,242,255,244,255,244,255,245,255,248,255,250,255, +252,255,254,255,0,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,255,255,252,255,250,255,249,255,246,255, +244,255,244,255,247,255,249,255,250,255,251,255,251,255,251,255,250,255,250,255,251,255,253,255,255,255,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,2,0,2,0,2,0,3,0,6,0,8,0,7,0,4,0,1,0,0,0,255,255,0,0, +2,0,7,0,13,0,16,0,16,0,14,0,13,0,13,0,12,0,9,0,9,0,9,0,8,0,5,0,3,0,2,0, +3,0,5,0,5,0,3,0,0,0,0,0,2,0,6,0,8,0,8,0,7,0,8,0,8,0,7,0,5,0,3,0, +2,0,3,0,3,0,2,0,5,0,9,0,11,0,11,0,12,0,14,0,14,0,10,0,7,0,7,0,9,0,11,0, +11,0,9,0,7,0,4,0,1,0,255,255,254,255,253,255,252,255,250,255,249,255,252,255,1,0,6,0,6,0,5,0, +5,0,6,0,8,0,8,0,8,0,9,0,11,0,12,0,10,0,7,0,6,0,8,0,9,0,7,0,5,0,5,0, +8,0,8,0,7,0,5,0,2,0,254,255,254,255,0,0,1,0,1,0,2,0,6,0,8,0,7,0,4,0,1,0, +253,255,251,255,249,255,250,255,251,255,253,255,253,255,254,255,254,255,254,255,255,255,1,0,1,0,255,255,252,255,251,255, +250,255,251,255,253,255,254,255,252,255,252,255,252,255,253,255,255,255,1,0,2,0,2,0,1,0,255,255,251,255,247,255, +244,255,242,255,242,255,245,255,248,255,252,255,0,0,2,0,1,0,255,255,0,0,1,0,1,0,254,255,249,255,246,255, +246,255,246,255,246,255,247,255,247,255,247,255,247,255,249,255,248,255,243,255,240,255,240,255,243,255,247,255,249,255,248,255, +246,255,244,255,242,255,241,255,241,255,243,255,246,255,248,255,246,255,242,255,239,255,241,255,244,255,246,255,249,255,253,255, +255,255,0,0,1,0,2,0,2,0,1,0,1,0,0,0,253,255,252,255,250,255,247,255,245,255,243,255,242,255,243,255, +245,255,247,255,249,255,250,255,247,255,246,255,249,255,252,255,254,255,2,0,5,0,6,0,3,0,255,255,253,255,252,255, +252,255,249,255,246,255,245,255,245,255,244,255,244,255,246,255,249,255,249,255,250,255,252,255,254,255,0,0,0,0,253,255, +251,255,250,255,251,255,250,255,249,255,250,255,253,255,254,255,252,255,249,255,248,255,253,255,3,0,7,0,10,0,12,0, +13,0,12,0,11,0,7,0,1,0,252,255,251,255,251,255,251,255,251,255,251,255,250,255,248,255,249,255,253,255,2,0, +4,0,3,0,5,0,8,0,10,0,10,0,11,0,12,0,12,0,10,0,8,0,4,0,2,0,3,0,6,0,8,0, +8,0,7,0,4,0,0,0,251,255,247,255,244,255,245,255,245,255,245,255,247,255,251,255,255,255,1,0,2,0,1,0, +0,0,255,255,254,255,255,255,3,0,7,0,8,0,5,0,3,0,0,0,250,255,245,255,247,255,251,255,254,255,253,255, +251,255,251,255,254,255,1,0,1,0,2,0,6,0,10,0,12,0,12,0,12,0,16,0,21,0,24,0,20,0,14,0, +7,0,0,0,250,255,249,255,250,255,251,255,250,255,249,255,246,255,244,255,242,255,239,255,238,255,242,255,249,255,253,255, +251,255,249,255,250,255,253,255,1,0,2,0,0,0,253,255,250,255,247,255,245,255,245,255,247,255,249,255,250,255,246,255, +242,255,242,255,246,255,247,255,247,255,247,255,247,255,246,255,245,255,246,255,248,255,251,255,254,255,0,0,1,0,3,0, +6,0,9,0,11,0,10,0,3,0,251,255,246,255,243,255,243,255,241,255,237,255,232,255,230,255,231,255,233,255,235,255, +237,255,240,255,243,255,249,255,253,255,252,255,251,255,251,255,250,255,248,255,247,255,246,255,244,255,241,255,239,255,238,255, +238,255,238,255,238,255,240,255,242,255,243,255,244,255,248,255,252,255,252,255,251,255,251,255,251,255,250,255,248,255,246,255, +245,255,243,255,241,255,239,255,238,255,239,255,239,255,239,255,240,255,241,255,243,255,244,255,246,255,250,255,253,255,254,255, +254,255,252,255,252,255,253,255,251,255,249,255,250,255,250,255,248,255,244,255,240,255,237,255,237,255,239,255,240,255,239,255, +239,255,241,255,244,255,249,255,252,255,253,255,254,255,2,0,4,0,4,0,3,0,1,0,255,255,252,255,251,255,250,255, +249,255,248,255,247,255,246,255,247,255,248,255,249,255,250,255,249,255,247,255,245,255,247,255,249,255,247,255,246,255,248,255, +250,255,252,255,254,255,0,0,3,0,3,0,3,0,2,0,1,0,0,0,254,255,251,255,249,255,247,255,246,255,246,255, +246,255,247,255,252,255,3,0,5,0,4,0,5,0,7,0,9,0,9,0,11,0,12,0,12,0,9,0,5,0,2,0, +0,0,255,255,254,255,253,255,252,255,248,255,244,255,242,255,242,255,243,255,244,255,246,255,250,255,254,255,2,0,6,0, +10,0,13,0,12,0,7,0,2,0,0,0,254,255,254,255,0,0,3,0,4,0,5,0,5,0,4,0,2,0,1,0, +1,0,4,0,8,0,10,0,11,0,10,0,7,0,2,0,254,255,252,255,253,255,254,255,1,0,3,0,3,0,2,0, +1,0,0,0,0,0,1,0,2,0,3,0,4,0,3,0,2,0,1,0,1,0,0,0,254,255,255,255,2,0,3,0, +1,0,255,255,253,255,252,255,251,255,251,255,254,255,1,0,0,0,253,255,252,255,253,255,254,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,3,0,6,0,6,0,5,0,4,0,3,0,4,0,3,0,1,0,254,255,251,255, +248,255,247,255,249,255,251,255,251,255,250,255,250,255,249,255,247,255,247,255,248,255,249,255,252,255,255,255,0,0,0,0, +0,0,0,0,2,0,3,0,2,0,255,255,253,255,252,255,250,255,246,255,243,255,242,255,240,255,240,255,242,255,244,255, +246,255,247,255,247,255,248,255,250,255,250,255,249,255,251,255,254,255,0,0,2,0,2,0,0,0,254,255,252,255,251,255, +249,255,245,255,240,255,235,255,231,255,228,255,229,255,233,255,238,255,241,255,242,255,243,255,245,255,247,255,249,255,251,255, +252,255,253,255,253,255,251,255,248,255,245,255,244,255,245,255,246,255,247,255,247,255,246,255,243,255,240,255,239,255,240,255, +242,255,244,255,245,255,245,255,243,255,239,255,237,255,239,255,241,255,242,255,241,255,242,255,243,255,245,255,246,255,249,255, +253,255,255,255,254,255,252,255,250,255,247,255,243,255,241,255,241,255,241,255,239,255,235,255,232,255,231,255,231,255,234,255, +237,255,242,255,248,255,254,255,3,0,7,0,7,0,5,0,2,0,255,255,252,255,250,255,249,255,248,255,247,255,245,255, +243,255,242,255,240,255,240,255,241,255,243,255,245,255,246,255,247,255,248,255,250,255,251,255,252,255,253,255,253,255,253,255, +254,255,255,255,255,255,253,255,252,255,252,255,252,255,251,255,250,255,250,255,250,255,249,255,247,255,244,255,242,255,242,255, +243,255,244,255,243,255,242,255,242,255,243,255,245,255,246,255,248,255,249,255,251,255,252,255,253,255,253,255,253,255,253,255, +253,255,255,255,1,0,2,0,4,0,5,0,5,0,3,0,0,0,254,255,253,255,252,255,250,255,249,255,249,255,249,255, +251,255,0,0,4,0,5,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,2,0,0,0,255,255,255,255, +0,0,0,0,254,255,252,255,249,255,248,255,249,255,251,255,252,255,253,255,0,0,1,0,1,0,1,0,3,0,6,0, +7,0,6,0,4,0,3,0,0,0,251,255,246,255,244,255,244,255,245,255,247,255,249,255,252,255,254,255,0,0,2,0, +5,0,8,0,10,0,10,0,9,0,9,0,8,0,7,0,5,0,3,0,1,0,0,0,254,255,252,255,252,255,252,255, +252,255,253,255,253,255,253,255,251,255,249,255,250,255,252,255,253,255,253,255,254,255,0,0,0,0,253,255,251,255,250,255, +249,255,250,255,252,255,255,255,2,0,2,0,0,0,254,255,252,255,249,255,246,255,244,255,243,255,243,255,242,255,243,255, +244,255,246,255,247,255,249,255,251,255,252,255,252,255,252,255,251,255,248,255,243,255,240,255,240,255,242,255,244,255,247,255, +249,255,251,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,251,255,249,255,249,255,249,255,248,255,244,255,241,255, +240,255,241,255,242,255,243,255,244,255,246,255,248,255,248,255,246,255,243,255,242,255,243,255,244,255,243,255,241,255,240,255, +240,255,241,255,240,255,239,255,241,255,243,255,244,255,243,255,242,255,241,255,240,255,240,255,242,255,244,255,245,255,245,255, +245,255,244,255,243,255,240,255,238,255,237,255,237,255,238,255,239,255,239,255,240,255,243,255,247,255,249,255,249,255,246,255, +244,255,245,255,246,255,245,255,244,255,245,255,246,255,246,255,245,255,245,255,246,255,247,255,248,255,247,255,244,255,241,255, +240,255,242,255,244,255,245,255,246,255,248,255,247,255,244,255,240,255,241,255,243,255,243,255,241,255,239,255,239,255,240,255, +242,255,244,255,249,255,253,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,252,255,251,255,251,255,251,255,250,255, +250,255,251,255,250,255,250,255,250,255,251,255,251,255,249,255,248,255,247,255,249,255,251,255,252,255,250,255,249,255,249,255, +252,255,1,0,6,0,9,0,10,0,9,0,7,0,2,0,255,255,255,255,2,0,4,0,3,0,0,0,255,255,254,255, +252,255,250,255,251,255,254,255,0,0,1,0,1,0,2,0,3,0,3,0,4,0,6,0,7,0,6,0,6,0,5,0, +4,0,2,0,2,0,3,0,4,0,4,0,3,0,1,0,253,255,250,255,251,255,254,255,1,0,1,0,0,0,0,0, +255,255,254,255,255,255,3,0,8,0,12,0,13,0,13,0,12,0,12,0,12,0,11,0,10,0,10,0,11,0,11,0, +10,0,9,0,8,0,9,0,9,0,9,0,8,0,8,0,7,0,5,0,5,0,7,0,8,0,7,0,4,0,1,0, +0,0,0,0,2,0,4,0,6,0,8,0,11,0,14,0,15,0,15,0,15,0,15,0,14,0,11,0,5,0,2,0, +1,0,1,0,0,0,254,255,253,255,254,255,0,0,1,0,4,0,8,0,12,0,15,0,17,0,15,0,12,0,9,0, +6,0,5,0,4,0,2,0,0,0,253,255,250,255,250,255,251,255,251,255,249,255,251,255,254,255,2,0,1,0,0,0, +0,0,2,0,4,0,3,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,253,255,253,255,251,255,251,255, +253,255,1,0,1,0,254,255,250,255,248,255,248,255,248,255,248,255,249,255,251,255,254,255,255,255,254,255,253,255,252,255, +252,255,251,255,249,255,248,255,247,255,247,255,247,255,248,255,248,255,249,255,248,255,246,255,244,255,245,255,248,255,251,255, +254,255,0,0,255,255,253,255,250,255,248,255,249,255,250,255,252,255,252,255,252,255,251,255,250,255,249,255,247,255,246,255, +246,255,249,255,251,255,252,255,251,255,251,255,252,255,252,255,251,255,251,255,251,255,250,255,246,255,242,255,240,255,241,255, +243,255,245,255,246,255,247,255,248,255,249,255,251,255,253,255,254,255,0,0,1,0,0,0,252,255,249,255,249,255,251,255, +250,255,248,255,247,255,248,255,249,255,249,255,248,255,250,255,252,255,254,255,254,255,254,255,255,255,2,0,3,0,2,0, +254,255,250,255,248,255,247,255,248,255,250,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,0,0,4,0, +7,0,7,0,6,0,4,0,3,0,2,0,1,0,0,0,254,255,251,255,248,255,246,255,244,255,245,255,250,255,255,255, +1,0,255,255,253,255,253,255,255,255,255,255,1,0,3,0,7,0,9,0,9,0,7,0,6,0,4,0,2,0,255,255, +252,255,249,255,249,255,252,255,255,255,0,0,1,0,2,0,3,0,2,0,0,0,0,0,2,0,4,0,6,0,8,0, +8,0,7,0,6,0,4,0,2,0,254,255,251,255,250,255,251,255,252,255,252,255,251,255,252,255,254,255,255,255,0,0, +2,0,4,0,8,0,12,0,15,0,18,0,20,0,20,0,20,0,18,0,15,0,9,0,3,0,253,255,248,255,244,255, +241,255,239,255,238,255,239,255,242,255,245,255,249,255,253,255,1,0,4,0,6,0,7,0,7,0,8,0,10,0,13,0, +15,0,15,0,12,0,10,0,9,0,10,0,10,0,11,0,12,0,13,0,10,0,5,0,0,0,252,255,249,255,244,255, +241,255,240,255,240,255,240,255,242,255,247,255,252,255,1,0,5,0,8,0,8,0,7,0,6,0,6,0,5,0,3,0, +0,0,254,255,251,255,245,255,240,255,239,255,241,255,242,255,242,255,243,255,247,255,250,255,250,255,250,255,252,255,253,255, +251,255,249,255,247,255,246,255,247,255,249,255,253,255,0,0,1,0,2,0,3,0,3,0,1,0,0,0,0,0,0,0, +254,255,250,255,247,255,245,255,246,255,248,255,249,255,251,255,253,255,255,255,0,0,1,0,1,0,2,0,0,0,252,255, +247,255,243,255,240,255,238,255,239,255,243,255,247,255,250,255,250,255,249,255,250,255,250,255,247,255,244,255,243,255,245,255, +245,255,245,255,246,255,249,255,252,255,253,255,252,255,251,255,251,255,252,255,253,255,252,255,249,255,248,255,247,255,246,255, +246,255,244,255,244,255,244,255,245,255,245,255,247,255,250,255,255,255,3,0,6,0,8,0,6,0,2,0,252,255,246,255, +241,255,237,255,238,255,243,255,248,255,251,255,252,255,254,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,253,255, +252,255,252,255,253,255,252,255,249,255,247,255,246,255,248,255,253,255,2,0,5,0,7,0,7,0,9,0,11,0,13,0, +13,0,10,0,5,0,2,0,255,255,252,255,250,255,250,255,253,255,254,255,253,255,252,255,252,255,253,255,0,0,1,0, +2,0,1,0,255,255,253,255,251,255,251,255,252,255,254,255,1,0,4,0,5,0,3,0,0,0,0,0,0,0,255,255, +253,255,251,255,252,255,254,255,254,255,255,255,0,0,1,0,3,0,5,0,6,0,6,0,7,0,8,0,8,0,6,0, +2,0,254,255,252,255,252,255,254,255,0,0,2,0,2,0,0,0,255,255,255,255,0,0,2,0,4,0,6,0,5,0, +1,0,254,255,255,255,1,0,3,0,5,0,8,0,11,0,11,0,8,0,6,0,5,0,3,0,3,0,3,0,3,0, +3,0,1,0,255,255,253,255,254,255,2,0,6,0,7,0,6,0,5,0,3,0,1,0,255,255,0,0,1,0,4,0, +7,0,11,0,13,0,12,0,8,0,5,0,2,0,255,255,251,255,251,255,253,255,255,255,255,255,255,255,255,255,254,255, +252,255,249,255,246,255,244,255,243,255,245,255,249,255,253,255,3,0,9,0,13,0,14,0,13,0,13,0,11,0,7,0, +3,0,2,0,2,0,1,0,1,0,2,0,2,0,255,255,252,255,250,255,249,255,251,255,253,255,255,255,1,0,1,0, +0,0,254,255,252,255,253,255,254,255,253,255,251,255,250,255,252,255,253,255,254,255,252,255,252,255,253,255,253,255,250,255, +247,255,246,255,247,255,248,255,246,255,246,255,248,255,248,255,248,255,248,255,249,255,252,255,255,255,1,0,255,255,251,255, +249,255,247,255,244,255,240,255,240,255,242,255,243,255,243,255,245,255,248,255,249,255,249,255,249,255,248,255,247,255,248,255, +249,255,249,255,247,255,246,255,245,255,245,255,244,255,243,255,244,255,246,255,247,255,248,255,249,255,252,255,255,255,0,0, +253,255,250,255,247,255,246,255,246,255,246,255,245,255,245,255,245,255,246,255,246,255,246,255,250,255,255,255,1,0,255,255, +252,255,249,255,244,255,238,255,235,255,236,255,237,255,239,255,242,255,245,255,244,255,243,255,244,255,245,255,244,255,243,255, +243,255,246,255,249,255,248,255,245,255,243,255,243,255,245,255,248,255,250,255,254,255,2,0,2,0,1,0,254,255,251,255, +247,255,243,255,242,255,243,255,244,255,245,255,247,255,249,255,249,255,250,255,253,255,0,0,0,0,255,255,0,0,3,0, +4,0,3,0,2,0,1,0,2,0,2,0,0,0,254,255,253,255,252,255,251,255,251,255,252,255,249,255,244,255,243,255, +245,255,248,255,252,255,3,0,10,0,14,0,13,0,10,0,8,0,6,0,3,0,1,0,1,0,1,0,1,0,2,0, +2,0,0,0,251,255,246,255,243,255,245,255,252,255,3,0,8,0,12,0,15,0,14,0,13,0,13,0,14,0,14,0, +14,0,12,0,9,0,5,0,5,0,6,0,7,0,5,0,2,0,1,0,1,0,2,0,3,0,5,0,5,0,5,0, +4,0,4,0,5,0,6,0,7,0,7,0,6,0,3,0,1,0,0,0,1,0,3,0,3,0,2,0,1,0,0,0, +1,0,3,0,4,0,4,0,3,0,5,0,7,0,8,0,7,0,6,0,5,0,2,0,254,255,252,255,253,255,254,255, +253,255,251,255,249,255,249,255,250,255,252,255,254,255,0,0,2,0,4,0,5,0,4,0,3,0,3,0,4,0,3,0, +3,0,4,0,5,0,5,0,5,0,3,0,0,0,252,255,251,255,251,255,252,255,253,255,253,255,253,255,252,255,253,255, +255,255,0,0,255,255,253,255,252,255,250,255,247,255,246,255,248,255,254,255,1,0,1,0,0,0,254,255,251,255,247,255, +244,255,243,255,244,255,245,255,247,255,249,255,252,255,253,255,251,255,249,255,246,255,243,255,242,255,245,255,250,255,254,255, +255,255,0,0,0,0,253,255,250,255,248,255,246,255,244,255,242,255,240,255,240,255,240,255,241,255,243,255,243,255,244,255, +247,255,250,255,251,255,251,255,251,255,249,255,247,255,245,255,244,255,244,255,243,255,243,255,244,255,245,255,245,255,247,255, +250,255,250,255,249,255,248,255,248,255,245,255,242,255,241,255,240,255,240,255,239,255,236,255,235,255,235,255,237,255,240,255, +242,255,245,255,248,255,251,255,253,255,254,255,253,255,250,255,247,255,244,255,242,255,241,255,242,255,244,255,244,255,244,255, +245,255,247,255,246,255,244,255,243,255,242,255,239,255,239,255,241,255,240,255,239,255,239,255,243,255,246,255,249,255,253,255, +2,0,2,0,254,255,251,255,250,255,249,255,246,255,246,255,248,255,250,255,249,255,248,255,247,255,246,255,247,255,249,255, +253,255,1,0,2,0,255,255,250,255,245,255,240,255,235,255,234,255,237,255,243,255,248,255,251,255,253,255,254,255,254,255, +0,0,2,0,0,0,252,255,251,255,252,255,253,255,253,255,253,255,254,255,255,255,1,0,3,0,4,0,5,0,6,0, +8,0,7,0,6,0,5,0,6,0,6,0,6,0,5,0,1,0,253,255,252,255,254,255,253,255,251,255,251,255,253,255, +253,255,252,255,254,255,1,0,5,0,6,0,7,0,6,0,5,0,5,0,5,0,4,0,2,0,2,0,3,0,4,0, +4,0,4,0,3,0,0,0,252,255,249,255,247,255,247,255,248,255,250,255,253,255,0,0,4,0,6,0,7,0,7,0, +9,0,9,0,6,0,4,0,3,0,2,0,3,0,3,0,4,0,5,0,6,0,7,0,7,0,6,0,6,0,8,0, +8,0,7,0,5,0,3,0,1,0,255,255,255,255,255,255,255,255,0,0,2,0,3,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,252,255,250,255,248,255,248,255,251,255,0,0,6,0,11,0,14,0,15,0,15,0,14,0, +10,0,3,0,249,255,244,255,244,255,245,255,246,255,247,255,249,255,249,255,246,255,244,255,243,255,244,255,247,255,252,255, +1,0,6,0,10,0,13,0,14,0,11,0,4,0,253,255,247,255,243,255,242,255,243,255,249,255,255,255,2,0,255,255, +250,255,247,255,248,255,249,255,251,255,253,255,254,255,253,255,251,255,248,255,247,255,247,255,249,255,250,255,251,255,251,255, +252,255,253,255,253,255,253,255,254,255,255,255,254,255,250,255,246,255,243,255,241,255,241,255,242,255,243,255,243,255,243,255, +242,255,242,255,243,255,246,255,249,255,249,255,247,255,244,255,245,255,247,255,248,255,248,255,249,255,249,255,249,255,249,255, +248,255,247,255,247,255,247,255,246,255,243,255,241,255,241,255,243,255,246,255,248,255,251,255,254,255,0,0,254,255,251,255, +250,255,251,255,252,255,250,255,248,255,247,255,245,255,243,255,241,255,242,255,246,255,251,255,254,255,253,255,250,255,247,255, +246,255,246,255,246,255,248,255,249,255,248,255,245,255,245,255,247,255,248,255,248,255,249,255,251,255,253,255,253,255,252,255, +252,255,252,255,251,255,249,255,245,255,244,255,246,255,247,255,246,255,245,255,246,255,248,255,249,255,248,255,250,255,254,255, +255,255,255,255,253,255,252,255,252,255,251,255,252,255,253,255,253,255,251,255,250,255,250,255,248,255,247,255,247,255,249,255, +253,255,1,0,5,0,7,0,7,0,4,0,2,0,1,0,255,255,251,255,247,255,246,255,248,255,250,255,251,255,254,255, +2,0,3,0,2,0,2,0,0,0,253,255,250,255,248,255,249,255,249,255,251,255,0,0,5,0,7,0,8,0,9,0, +9,0,6,0,3,0,0,0,253,255,251,255,249,255,249,255,249,255,251,255,254,255,1,0,1,0,255,255,253,255,252,255, +253,255,255,255,3,0,7,0,10,0,9,0,5,0,0,0,253,255,253,255,254,255,255,255,1,0,2,0,1,0,1,0, +3,0,6,0,9,0,11,0,9,0,6,0,3,0,2,0,0,0,254,255,254,255,255,255,254,255,252,255,252,255,254,255, +2,0,4,0,4,0,3,0,1,0,0,0,255,255,254,255,254,255,254,255,253,255,251,255,250,255,254,255,4,0,6,0, +6,0,6,0,3,0,254,255,250,255,249,255,252,255,255,255,1,0,4,0,4,0,1,0,254,255,252,255,252,255,253,255, +254,255,254,255,254,255,251,255,245,255,240,255,241,255,245,255,247,255,247,255,248,255,250,255,249,255,250,255,253,255,1,0, +3,0,2,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,252,255,247,255,245,255,246,255,250,255,251,255,250,255, +247,255,244,255,242,255,242,255,243,255,244,255,246,255,250,255,254,255,255,255,255,255,0,0,2,0,3,0,2,0,1,0, +1,0,2,0,1,0,255,255,252,255,251,255,250,255,247,255,243,255,240,255,238,255,234,255,232,255,235,255,243,255,250,255, +254,255,0,0,0,0,254,255,250,255,247,255,245,255,246,255,247,255,247,255,246,255,245,255,245,255,246,255,247,255,249,255, +253,255,255,255,0,0,2,0,2,0,255,255,250,255,247,255,246,255,245,255,244,255,244,255,245,255,246,255,245,255,244,255, +243,255,243,255,243,255,242,255,240,255,241,255,244,255,247,255,247,255,247,255,248,255,249,255,249,255,248,255,247,255,249,255, +249,255,249,255,249,255,251,255,254,255,254,255,254,255,255,255,1,0,0,0,253,255,251,255,249,255,248,255,247,255,246,255, +244,255,243,255,242,255,242,255,241,255,241,255,244,255,248,255,250,255,249,255,249,255,251,255,253,255,251,255,249,255,250,255, +253,255,0,0,0,0,254,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,254,255, +251,255,250,255,251,255,250,255,247,255,245,255,247,255,248,255,248,255,247,255,246,255,246,255,247,255,251,255,1,0,8,0, +15,0,17,0,14,0,9,0,4,0,0,0,254,255,254,255,254,255,253,255,251,255,251,255,254,255,0,0,2,0,3,0, +4,0,3,0,0,0,253,255,251,255,253,255,1,0,4,0,3,0,3,0,5,0,6,0,3,0,1,0,2,0,4,0, +1,0,254,255,255,255,1,0,254,255,250,255,252,255,1,0,4,0,5,0,5,0,4,0,3,0,1,0,0,0,2,0, +6,0,8,0,7,0,3,0,0,0,254,255,253,255,253,255,255,255,1,0,2,0,1,0,1,0,2,0,5,0,6,0, +7,0,7,0,5,0,1,0,253,255,253,255,255,255,255,255,253,255,253,255,0,0,1,0,253,255,250,255,253,255,255,255, +254,255,254,255,1,0,3,0,2,0,255,255,251,255,248,255,247,255,247,255,246,255,246,255,248,255,250,255,251,255,251,255, +253,255,255,255,1,0,4,0,5,0,6,0,6,0,2,0,251,255,243,255,240,255,239,255,237,255,235,255,238,255,243,255, +246,255,247,255,248,255,251,255,255,255,2,0,2,0,1,0,0,0,0,0,253,255,249,255,248,255,250,255,250,255,250,255, +251,255,254,255,0,0,253,255,249,255,248,255,246,255,239,255,233,255,233,255,240,255,245,255,247,255,249,255,252,255,254,255, +252,255,250,255,252,255,255,255,254,255,248,255,243,255,238,255,235,255,233,255,236,255,243,255,250,255,255,255,255,255,253,255, +252,255,252,255,252,255,251,255,250,255,251,255,251,255,247,255,242,255,238,255,235,255,230,255,228,255,229,255,230,255,231,255, +234,255,238,255,241,255,243,255,245,255,247,255,247,255,248,255,250,255,249,255,248,255,249,255,252,255,251,255,249,255,248,255, +249,255,251,255,252,255,249,255,245,255,241,255,240,255,240,255,241,255,247,255,0,0,3,0,1,0,255,255,253,255,250,255, +246,255,245,255,247,255,249,255,251,255,253,255,254,255,255,255,252,255,249,255,244,255,240,255,241,255,247,255,0,0,5,0, +5,0,2,0,254,255,249,255,242,255,240,255,241,255,243,255,245,255,247,255,249,255,248,255,247,255,247,255,250,255,253,255, +2,0,7,0,10,0,12,0,11,0,5,0,253,255,249,255,249,255,250,255,250,255,250,255,252,255,255,255,2,0,1,0, +0,0,255,255,254,255,253,255,252,255,0,0,3,0,2,0,0,0,255,255,254,255,251,255,251,255,0,0,6,0,7,0, +2,0,250,255,244,255,244,255,248,255,253,255,1,0,4,0,7,0,10,0,10,0,8,0,8,0,9,0,9,0,7,0, +5,0,5,0,8,0,9,0,8,0,4,0,254,255,251,255,250,255,251,255,252,255,254,255,0,0,1,0,3,0,5,0, +8,0,13,0,19,0,23,0,20,0,13,0,8,0,3,0,252,255,247,255,248,255,250,255,252,255,255,255,3,0,3,0, +3,0,3,0,1,0,252,255,252,255,255,255,255,255,251,255,249,255,251,255,252,255,252,255,0,0,5,0,7,0,8,0, +11,0,13,0,13,0,13,0,14,0,13,0,9,0,1,0,249,255,244,255,243,255,245,255,249,255,255,255,3,0,5,0, +3,0,3,0,5,0,7,0,6,0,5,0,4,0,0,0,252,255,248,255,248,255,249,255,252,255,254,255,1,0,2,0, +3,0,4,0,4,0,4,0,4,0,4,0,3,0,2,0,255,255,252,255,248,255,248,255,253,255,1,0,1,0,0,0, +2,0,4,0,2,0,1,0,2,0,6,0,9,0,10,0,7,0,1,0,253,255,251,255,249,255,244,255,238,255,236,255, +238,255,243,255,248,255,252,255,254,255,1,0,2,0,253,255,246,255,246,255,250,255,252,255,251,255,249,255,250,255,252,255, +255,255,0,0,1,0,3,0,5,0,5,0,2,0,254,255,255,255,0,0,255,255,253,255,250,255,247,255,243,255,238,255, +236,255,237,255,240,255,242,255,245,255,248,255,249,255,250,255,252,255,255,255,1,0,3,0,4,0,1,0,251,255,246,255, +245,255,243,255,240,255,241,255,245,255,249,255,250,255,252,255,253,255,252,255,251,255,250,255,248,255,248,255,252,255,255,255, +253,255,250,255,249,255,247,255,243,255,241,255,242,255,244,255,247,255,251,255,255,255,2,0,5,0,5,0,2,0,254,255, +252,255,253,255,252,255,252,255,252,255,250,255,245,255,242,255,244,255,247,255,250,255,251,255,251,255,250,255,247,255,244,255, +245,255,248,255,252,255,252,255,252,255,254,255,2,0,4,0,5,0,8,0,10,0,11,0,11,0,10,0,10,0,7,0, +254,255,242,255,234,255,231,255,231,255,233,255,240,255,250,255,0,0,1,0,1,0,3,0,10,0,20,0,27,0,32,0, +35,0,35,0,29,0,15,0,1,0,243,255,231,255,224,255,225,255,230,255,237,255,247,255,4,0,12,0,15,0,19,0, +22,0,18,0,9,0,0,0,248,255,241,255,236,255,234,255,235,255,239,255,246,255,251,255,1,0,11,0,21,0,25,0, +22,0,19,0,16,0,12,0,5,0,255,255,253,255,253,255,251,255,247,255,243,255,243,255,244,255,244,255,244,255,247,255, +251,255,253,255,253,255,253,255,255,255,1,0,2,0,1,0,1,0,5,0,9,0,8,0,3,0,2,0,2,0,255,255, +251,255,246,255,243,255,245,255,252,255,3,0,6,0,5,0,5,0,4,0,2,0,1,0,1,0,4,0,7,0,6,0, +254,255,243,255,236,255,235,255,236,255,235,255,236,255,240,255,245,255,248,255,248,255,250,255,255,255,3,0,3,0,1,0, +1,0,2,0,3,0,5,0,7,0,7,0,7,0,5,0,2,0,255,255,253,255,250,255,244,255,237,255,234,255,234,255, +236,255,240,255,243,255,244,255,245,255,246,255,245,255,238,255,232,255,231,255,234,255,235,255,236,255,239,255,245,255,252,255, +0,0,255,255,253,255,253,255,255,255,0,0,1,0,3,0,3,0,1,0,255,255,252,255,247,255,241,255,240,255,240,255, +237,255,233,255,233,255,237,255,242,255,249,255,254,255,1,0,3,0,5,0,2,0,251,255,245,255,245,255,245,255,242,255, +236,255,228,255,220,255,216,255,220,255,230,255,243,255,3,0,15,0,13,0,252,255,235,255,231,255,242,255,0,0,8,0, +13,0,16,0,7,0,241,255,222,255,221,255,235,255,247,255,247,255,237,255,228,255,225,255,226,255,229,255,237,255,250,255, +5,0,8,0,4,0,255,255,248,255,243,255,241,255,241,255,239,255,236,255,240,255,250,255,255,255,253,255,247,255,242,255, +241,255,243,255,244,255,244,255,246,255,249,255,246,255,236,255,227,255,224,255,228,255,233,255,237,255,244,255,252,255,0,0, +255,255,252,255,250,255,248,255,245,255,244,255,246,255,248,255,249,255,249,255,248,255,246,255,249,255,253,255,253,255,250,255, +250,255,251,255,249,255,245,255,244,255,245,255,245,255,245,255,249,255,0,0,5,0,9,0,12,0,13,0,13,0,10,0, +2,0,250,255,247,255,243,255,234,255,228,255,231,255,237,255,241,255,245,255,251,255,1,0,7,0,15,0,21,0,24,0, +22,0,18,0,8,0,250,255,240,255,232,255,225,255,221,255,225,255,232,255,241,255,255,255,15,0,26,0,30,0,34,0, +34,0,26,0,15,0,6,0,0,0,251,255,245,255,241,255,240,255,240,255,242,255,242,255,243,255,245,255,249,255,253,255, +2,0,8,0,14,0,16,0,16,0,12,0,4,0,247,255,236,255,233,255,234,255,236,255,241,255,252,255,7,0,11,0, +9,0,8,0,6,0,2,0,254,255,252,255,250,255,247,255,248,255,253,255,2,0,3,0,3,0,3,0,4,0,4,0, +4,0,3,0,2,0,5,0,6,0,2,0,254,255,255,255,4,0,8,0,8,0,6,0,3,0,1,0,1,0,2,0, +2,0,2,0,3,0,1,0,254,255,251,255,249,255,249,255,249,255,250,255,249,255,249,255,255,255,6,0,11,0,14,0, +15,0,14,0,8,0,0,0,251,255,250,255,252,255,254,255,255,255,0,0,1,0,3,0,5,0,7,0,6,0,3,0, +0,0,254,255,250,255,245,255,243,255,247,255,250,255,249,255,246,255,246,255,250,255,1,0,5,0,5,0,4,0,4,0, +4,0,3,0,3,0,4,0,2,0,253,255,249,255,245,255,242,255,243,255,249,255,253,255,254,255,253,255,251,255,249,255, +247,255,248,255,251,255,0,0,5,0,9,0,7,0,1,0,254,255,254,255,250,255,245,255,242,255,243,255,244,255,246,255, +248,255,252,255,255,255,3,0,6,0,5,0,3,0,2,0,2,0,3,0,2,0,2,0,1,0,0,0,253,255,249,255, +247,255,247,255,247,255,247,255,247,255,248,255,250,255,254,255,2,0,4,0,6,0,7,0,4,0,255,255,253,255,254,255, +0,0,255,255,253,255,254,255,254,255,254,255,255,255,1,0,2,0,3,0,4,0,6,0,8,0,10,0,7,0,1,0, +251,255,249,255,248,255,247,255,249,255,253,255,255,255,0,0,1,0,3,0,3,0,1,0,0,0,254,255,250,255,249,255, +251,255,252,255,252,255,251,255,252,255,253,255,253,255,255,255,3,0,6,0,6,0,5,0,4,0,3,0,2,0,1,0, +253,255,250,255,248,255,248,255,249,255,251,255,254,255,0,0,0,0,255,255,0,0,1,0,2,0,3,0,4,0,3,0, +1,0,1,0,3,0,4,0,6,0,8,0,6,0,1,0,0,0,2,0,3,0,3,0,4,0,4,0,1,0,254,255, +254,255,0,0,1,0,1,0,1,0,2,0,6,0,12,0,17,0,17,0,15,0,12,0,7,0,1,0,252,255,250,255, +249,255,248,255,249,255,250,255,252,255,255,255,2,0,3,0,2,0,2,0,5,0,8,0,10,0,11,0,12,0,9,0, +5,0,2,0,2,0,0,0,253,255,250,255,250,255,252,255,252,255,251,255,250,255,249,255,249,255,250,255,251,255,253,255, +3,0,9,0,13,0,14,0,14,0,14,0,13,0,12,0,9,0,2,0,251,255,246,255,243,255,239,255,237,255,239,255, +244,255,248,255,252,255,1,0,6,0,11,0,15,0,17,0,16,0,11,0,4,0,254,255,249,255,244,255,238,255,233,255, +231,255,234,255,241,255,248,255,0,0,7,0,10,0,9,0,6,0,2,0,254,255,252,255,250,255,246,255,243,255,242,255, +242,255,240,255,239,255,244,255,251,255,255,255,0,0,0,0,255,255,253,255,253,255,253,255,253,255,251,255,249,255,246,255, +242,255,237,255,234,255,233,255,235,255,239,255,242,255,245,255,248,255,253,255,254,255,249,255,241,255,236,255,234,255,234,255, +237,255,242,255,246,255,250,255,253,255,255,255,0,0,1,0,1,0,255,255,251,255,246,255,241,255,235,255,231,255,231,255, +234,255,239,255,243,255,243,255,241,255,239,255,240,255,243,255,246,255,251,255,0,0,3,0,1,0,253,255,248,255,244,255, +241,255,240,255,241,255,242,255,243,255,245,255,247,255,249,255,247,255,245,255,243,255,243,255,243,255,242,255,242,255,245,255, +247,255,248,255,247,255,247,255,249,255,250,255,249,255,248,255,247,255,248,255,249,255,250,255,250,255,249,255,246,255,243,255, +241,255,241,255,240,255,240,255,242,255,243,255,242,255,238,255,238,255,243,255,248,255,252,255,255,255,255,255,255,255,255,255, +0,0,2,0,1,0,255,255,254,255,255,255,1,0,0,0,250,255,245,255,244,255,245,255,244,255,246,255,250,255,254,255, +255,255,254,255,255,255,255,255,254,255,254,255,0,0,255,255,252,255,247,255,245,255,244,255,244,255,244,255,246,255,250,255, +0,0,6,0,8,0,6,0,3,0,254,255,249,255,247,255,247,255,248,255,248,255,249,255,249,255,248,255,245,255,244,255, +243,255,244,255,247,255,253,255,3,0,8,0,11,0,12,0,11,0,8,0,3,0,254,255,250,255,247,255,245,255,243,255, +240,255,237,255,237,255,242,255,247,255,249,255,250,255,250,255,252,255,1,0,9,0,20,0,29,0,33,0,33,0,30,0, +24,0,16,0,6,0,252,255,242,255,233,255,224,255,218,255,218,255,224,255,231,255,238,255,246,255,255,255,6,0,11,0, +15,0,15,0,13,0,10,0,8,0,6,0,4,0,1,0,254,255,249,255,247,255,249,255,253,255,254,255,254,255,0,0, +3,0,4,0,4,0,2,0,1,0,2,0,0,0,252,255,249,255,249,255,251,255,251,255,251,255,252,255,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,3,0,0,0,253,255,250,255,250,255,252,255, +0,0,4,0,6,0,7,0,6,0,5,0,2,0,253,255,247,255,244,255,246,255,248,255,248,255,247,255,248,255,250,255, +250,255,249,255,250,255,254,255,4,0,8,0,7,0,4,0,3,0,4,0,4,0,1,0,254,255,251,255,247,255,244,255, +244,255,246,255,248,255,251,255,254,255,0,0,255,255,252,255,248,255,246,255,246,255,249,255,251,255,252,255,252,255,250,255, +244,255,241,255,243,255,247,255,250,255,252,255,254,255,0,0,254,255,252,255,253,255,2,0,6,0,8,0,7,0,4,0, +0,0,250,255,244,255,240,255,238,255,237,255,237,255,238,255,239,255,241,255,246,255,253,255,2,0,4,0,3,0,0,0, +252,255,249,255,247,255,247,255,249,255,248,255,246,255,242,255,240,255,241,255,243,255,245,255,248,255,251,255,250,255,249,255, +248,255,246,255,242,255,239,255,239,255,239,255,238,255,239,255,243,255,247,255,249,255,250,255,249,255,246,255,244,255,245,255, +248,255,250,255,253,255,255,255,0,0,255,255,254,255,251,255,249,255,250,255,252,255,250,255,247,255,248,255,252,255,252,255, +248,255,245,255,245,255,245,255,245,255,243,255,241,255,238,255,238,255,240,255,241,255,242,255,245,255,248,255,250,255,254,255, +2,0,4,0,4,0,3,0,1,0,253,255,248,255,245,255,242,255,239,255,237,255,238,255,238,255,238,255,239,255,242,255, +245,255,245,255,247,255,251,255,1,0,5,0,4,0,254,255,247,255,245,255,246,255,250,255,254,255,2,0,5,0,4,0, +2,0,0,0,0,0,0,0,0,0,254,255,249,255,244,255,240,255,240,255,243,255,247,255,251,255,254,255,0,0,0,0, +2,0,5,0,9,0,10,0,9,0,4,0,253,255,249,255,247,255,247,255,246,255,247,255,250,255,252,255,253,255,255,255, +2,0,3,0,3,0,1,0,255,255,253,255,250,255,247,255,246,255,248,255,252,255,0,0,2,0,3,0,3,0,0,0, +252,255,252,255,254,255,255,255,254,255,253,255,252,255,251,255,250,255,250,255,252,255,254,255,254,255,253,255,254,255,2,0, +6,0,6,0,3,0,255,255,253,255,251,255,249,255,247,255,244,255,242,255,243,255,245,255,247,255,250,255,255,255,1,0, +0,0,252,255,250,255,248,255,246,255,245,255,246,255,248,255,250,255,252,255,255,255,2,0,6,0,7,0,5,0,1,0, +255,255,254,255,253,255,254,255,255,255,251,255,244,255,239,255,239,255,239,255,237,255,238,255,241,255,245,255,248,255,250,255, +251,255,251,255,252,255,253,255,251,255,248,255,246,255,248,255,251,255,252,255,251,255,248,255,247,255,248,255,250,255,250,255, +250,255,252,255,253,255,254,255,254,255,254,255,251,255,248,255,247,255,249,255,251,255,251,255,250,255,249,255,249,255,248,255, +247,255,246,255,246,255,245,255,245,255,244,255,243,255,243,255,244,255,245,255,247,255,249,255,253,255,255,255,0,0,1,0, +2,0,1,0,254,255,250,255,247,255,245,255,243,255,240,255,238,255,239,255,243,255,246,255,248,255,251,255,252,255,253,255, +254,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,253,255,252,255,253,255,255,255,0,0,0,0,1,0,255,255, +252,255,250,255,249,255,248,255,245,255,244,255,244,255,246,255,249,255,255,255,5,0,8,0,6,0,3,0,255,255,252,255, +251,255,250,255,251,255,252,255,252,255,250,255,246,255,243,255,244,255,247,255,250,255,251,255,254,255,0,0,2,0,4,0, +4,0,4,0,4,0,3,0,1,0,254,255,0,0,4,0,6,0,5,0,2,0,0,0,255,255,253,255,252,255,253,255, +253,255,252,255,251,255,251,255,253,255,255,255,2,0,5,0,5,0,3,0,1,0,1,0,1,0,2,0,1,0,0,0, +0,0,3,0,7,0,9,0,10,0,10,0,10,0,9,0,11,0,12,0,11,0,10,0,10,0,10,0,10,0,9,0, +9,0,7,0,5,0,4,0,4,0,3,0,2,0,4,0,6,0,6,0,6,0,7,0,10,0,11,0,11,0,10,0, +8,0,6,0,5,0,5,0,7,0,9,0,12,0,14,0,15,0,15,0,16,0,15,0,13,0,12,0,12,0,10,0, +8,0,7,0,5,0,3,0,1,0,0,0,255,255,0,0,6,0,12,0,14,0,13,0,12,0,10,0,8,0,7,0, +6,0,4,0,1,0,0,0,253,255,251,255,253,255,255,255,0,0,0,0,3,0,6,0,8,0,8,0,8,0,9,0, +8,0,7,0,5,0,4,0,4,0,3,0,255,255,252,255,253,255,0,0,2,0,2,0,1,0,0,0,255,255,253,255, +253,255,254,255,255,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,254,255,254,255,254,255, +253,255,250,255,249,255,250,255,252,255,254,255,1,0,6,0,8,0,7,0,4,0,1,0,1,0,3,0,3,0,255,255, +251,255,248,255,245,255,240,255,237,255,239,255,245,255,250,255,251,255,251,255,252,255,254,255,0,0,1,0,1,0,1,0, +255,255,250,255,245,255,243,255,244,255,246,255,249,255,251,255,254,255,255,255,253,255,252,255,252,255,253,255,254,255,253,255, +250,255,247,255,244,255,243,255,242,255,242,255,243,255,245,255,245,255,246,255,247,255,249,255,250,255,249,255,250,255,253,255, +255,255,254,255,251,255,248,255,247,255,246,255,245,255,245,255,249,255,253,255,255,255,254,255,253,255,253,255,252,255,250,255, +247,255,245,255,243,255,243,255,245,255,247,255,247,255,247,255,246,255,245,255,243,255,243,255,245,255,249,255,252,255,254,255, +0,0,2,0,2,0,1,0,254,255,253,255,252,255,253,255,254,255,252,255,248,255,246,255,245,255,245,255,245,255,246,255, +248,255,250,255,248,255,244,255,241,255,240,255,241,255,241,255,243,255,249,255,255,255,2,0,2,0,3,0,4,0,4,0, +2,0,255,255,252,255,251,255,252,255,252,255,251,255,250,255,249,255,247,255,247,255,248,255,250,255,253,255,3,0,6,0, +6,0,5,0,4,0,4,0,3,0,2,0,0,0,254,255,0,0,1,0,0,0,0,0,2,0,4,0,4,0,2,0, +255,255,251,255,249,255,248,255,249,255,251,255,0,0,4,0,6,0,6,0,7,0,9,0,9,0,6,0,2,0,254,255, +254,255,255,255,0,0,2,0,4,0,6,0,6,0,5,0,5,0,5,0,4,0,3,0,1,0,0,0,1,0,2,0, +4,0,5,0,5,0,6,0,6,0,6,0,3,0,0,0,0,0,2,0,4,0,6,0,7,0,6,0,5,0,4,0, +3,0,2,0,0,0,0,0,0,0,255,255,253,255,251,255,250,255,252,255,253,255,253,255,254,255,1,0,4,0,7,0, +10,0,13,0,15,0,16,0,16,0,15,0,12,0,9,0,6,0,3,0,255,255,251,255,249,255,251,255,254,255,1,0, +4,0,5,0,4,0,255,255,251,255,249,255,250,255,250,255,250,255,251,255,253,255,254,255,255,255,1,0,3,0,4,0, +5,0,7,0,8,0,8,0,7,0,5,0,4,0,3,0,3,0,3,0,2,0,1,0,254,255,251,255,249,255,248,255, +249,255,251,255,253,255,254,255,255,255,1,0,3,0,4,0,3,0,3,0,4,0,4,0,1,0,255,255,253,255,253,255, +253,255,253,255,255,255,2,0,5,0,6,0,4,0,1,0,252,255,248,255,244,255,242,255,242,255,244,255,248,255,254,255, +3,0,7,0,10,0,10,0,8,0,5,0,2,0,1,0,0,0,0,0,254,255,252,255,250,255,249,255,248,255,248,255, +249,255,250,255,252,255,253,255,253,255,254,255,1,0,3,0,4,0,4,0,3,0,255,255,252,255,249,255,246,255,245,255, +245,255,246,255,246,255,247,255,252,255,0,0,2,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255, +252,255,250,255,249,255,248,255,250,255,253,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,254,255, +253,255,251,255,251,255,253,255,255,255,1,0,2,0,2,0,1,0,1,0,1,0,1,0,254,255,250,255,246,255,245,255, +248,255,254,255,3,0,6,0,7,0,8,0,9,0,10,0,10,0,10,0,10,0,8,0,2,0,253,255,249,255,247,255, +245,255,246,255,249,255,253,255,255,255,254,255,253,255,254,255,255,255,2,0,5,0,8,0,12,0,14,0,12,0,10,0, +10,0,12,0,14,0,14,0,10,0,6,0,3,0,254,255,250,255,249,255,252,255,1,0,3,0,3,0,2,0,4,0, +7,0,10,0,12,0,13,0,11,0,8,0,3,0,0,0,255,255,0,0,2,0,3,0,2,0,1,0,2,0,4,0, +5,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,5,0,6,0,6,0,6,0,6,0,5,0,5,0,6,0, +6,0,8,0,11,0,12,0,10,0,8,0,8,0,9,0,9,0,6,0,3,0,255,255,252,255,251,255,251,255,251,255, +252,255,254,255,255,255,0,0,2,0,4,0,6,0,7,0,6,0,4,0,3,0,1,0,255,255,251,255,249,255,247,255, +246,255,246,255,248,255,251,255,0,0,4,0,6,0,5,0,3,0,1,0,1,0,0,0,255,255,252,255,249,255,245,255, +241,255,239,255,241,255,245,255,248,255,252,255,254,255,0,0,1,0,1,0,1,0,2,0,3,0,2,0,0,0,254,255, +252,255,250,255,247,255,244,255,243,255,243,255,244,255,244,255,244,255,244,255,245,255,244,255,244,255,244,255,246,255,247,255, +250,255,253,255,0,0,1,0,255,255,250,255,246,255,243,255,241,255,238,255,237,255,239,255,242,255,243,255,243,255,241,255, +239,255,238,255,238,255,239,255,242,255,246,255,249,255,249,255,247,255,244,255,242,255,240,255,237,255,236,255,234,255,232,255, +230,255,230,255,233,255,237,255,241,255,244,255,247,255,249,255,250,255,252,255,253,255,254,255,254,255,251,255,247,255,243,255, +241,255,242,255,243,255,244,255,243,255,240,255,238,255,236,255,234,255,233,255,234,255,236,255,239,255,242,255,245,255,247,255, +248,255,247,255,246,255,244,255,243,255,242,255,241,255,240,255,238,255,233,255,230,255,229,255,230,255,231,255,234,255,237,255, +240,255,242,255,244,255,247,255,247,255,247,255,245,255,243,255,241,255,239,255,239,255,240,255,241,255,242,255,243,255,245,255, +245,255,244,255,242,255,242,255,241,255,239,255,238,255,239,255,242,255,245,255,246,255,248,255,248,255,249,255,248,255,246,255, +246,255,246,255,248,255,249,255,253,255,1,0,4,0,5,0,4,0,1,0,254,255,252,255,249,255,244,255,239,255,237,255, +236,255,237,255,239,255,243,255,247,255,250,255,251,255,253,255,254,255,0,0,0,0,0,0,1,0,1,0,254,255,250,255, +249,255,249,255,250,255,250,255,250,255,250,255,250,255,248,255,246,255,243,255,243,255,244,255,245,255,247,255,249,255,252,255, +254,255,1,0,5,0,7,0,7,0,6,0,1,0,253,255,250,255,249,255,249,255,250,255,253,255,0,0,0,0,0,0, +254,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,3,0,5,0,4,0,1,0,253,255,251,255,249,255,246,255,245,255,247,255,248,255,247,255,246,255,247,255, +249,255,252,255,255,255,1,0,2,0,2,0,1,0,254,255,251,255,250,255,250,255,250,255,251,255,251,255,252,255,254,255, +0,0,0,0,2,0,5,0,7,0,6,0,5,0,4,0,2,0,255,255,251,255,250,255,250,255,252,255,253,255,255,255, +0,0,255,255,254,255,253,255,0,0,3,0,4,0,3,0,3,0,2,0,0,0,252,255,250,255,249,255,250,255,252,255, +254,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,253,255,248,255,243,255,240,255,240,255,241,255,245,255, +250,255,254,255,0,0,0,0,1,0,2,0,1,0,255,255,254,255,254,255,253,255,252,255,251,255,249,255,248,255,247,255, +245,255,244,255,244,255,244,255,243,255,243,255,244,255,247,255,251,255,255,255,0,0,255,255,0,0,255,255,253,255,249,255, +248,255,247,255,245,255,244,255,243,255,242,255,244,255,248,255,250,255,252,255,254,255,254,255,252,255,253,255,255,255,1,0, +1,0,0,0,253,255,251,255,250,255,250,255,248,255,246,255,244,255,241,255,237,255,236,255,237,255,241,255,247,255,253,255, +255,255,253,255,252,255,253,255,0,0,2,0,3,0,2,0,1,0,0,0,252,255,247,255,244,255,245,255,249,255,250,255, +249,255,247,255,246,255,249,255,253,255,255,255,0,0,2,0,1,0,253,255,248,255,245,255,246,255,248,255,249,255,251,255, +255,255,5,0,7,0,5,0,3,0,0,0,251,255,248,255,249,255,252,255,254,255,254,255,252,255,249,255,246,255,246,255, +248,255,249,255,251,255,253,255,253,255,250,255,246,255,244,255,245,255,248,255,251,255,251,255,250,255,251,255,252,255,252,255, +253,255,255,255,0,0,1,0,1,0,255,255,253,255,252,255,251,255,251,255,252,255,254,255,254,255,254,255,253,255,251,255, +249,255,248,255,248,255,250,255,251,255,253,255,255,255,1,0,2,0,0,0,254,255,252,255,250,255,248,255,248,255,250,255, +252,255,253,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,251,255,247,255,245,255,248,255,252,255,254,255, +255,255,1,0,1,0,255,255,252,255,251,255,249,255,249,255,250,255,251,255,252,255,252,255,252,255,254,255,255,255,1,0, +2,0,3,0,1,0,255,255,252,255,251,255,249,255,247,255,247,255,248,255,248,255,247,255,247,255,249,255,252,255,252,255, +251,255,250,255,251,255,251,255,253,255,255,255,0,0,255,255,252,255,249,255,246,255,244,255,245,255,249,255,254,255,0,0, +254,255,249,255,246,255,246,255,247,255,248,255,250,255,253,255,253,255,249,255,243,255,240,255,241,255,243,255,244,255,245,255, +248,255,251,255,250,255,249,255,248,255,246,255,245,255,244,255,244,255,246,255,250,255,252,255,253,255,254,255,255,255,255,255, +254,255,253,255,253,255,252,255,249,255,246,255,246,255,249,255,253,255,255,255,254,255,253,255,252,255,251,255,247,255,244,255, +243,255,246,255,250,255,250,255,249,255,250,255,253,255,255,255,254,255,251,255,248,255,246,255,245,255,245,255,245,255,247,255, +248,255,248,255,246,255,245,255,246,255,247,255,248,255,249,255,248,255,247,255,248,255,249,255,250,255,250,255,249,255,247,255, +246,255,243,255,240,255,237,255,238,255,239,255,242,255,245,255,248,255,250,255,249,255,249,255,249,255,249,255,251,255,252,255, +253,255,254,255,255,255,255,255,254,255,252,255,251,255,250,255,249,255,247,255,248,255,249,255,251,255,252,255,252,255,250,255, +247,255,246,255,247,255,249,255,252,255,253,255,254,255,254,255,253,255,253,255,254,255,0,0,1,0,1,0,0,0,253,255, +251,255,251,255,252,255,251,255,248,255,244,255,242,255,242,255,241,255,242,255,247,255,252,255,255,255,255,255,254,255,255,255, +0,0,1,0,0,0,252,255,248,255,247,255,245,255,243,255,243,255,244,255,247,255,250,255,254,255,3,0,5,0,5,0, +6,0,5,0,1,0,253,255,252,255,253,255,254,255,253,255,252,255,251,255,252,255,251,255,250,255,250,255,251,255,253,255, +255,255,3,0,6,0,8,0,9,0,9,0,7,0,3,0,255,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255, +254,255,252,255,252,255,254,255,1,0,2,0,2,0,2,0,2,0,2,0,3,0,5,0,6,0,6,0,5,0,4,0, +3,0,0,0,254,255,255,255,0,0,0,0,254,255,253,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,0,0, +0,0,0,0,255,255,254,255,252,255,249,255,246,255,244,255,246,255,250,255,254,255,3,0,7,0,9,0,10,0,8,0, +4,0,0,0,252,255,250,255,250,255,251,255,253,255,254,255,254,255,252,255,250,255,250,255,252,255,0,0,3,0,4,0, +4,0,4,0,1,0,254,255,252,255,253,255,254,255,252,255,249,255,247,255,246,255,247,255,248,255,251,255,0,0,4,0, +5,0,1,0,254,255,253,255,254,255,255,255,255,255,1,0,2,0,0,0,252,255,248,255,245,255,241,255,239,255,238,255, +239,255,241,255,245,255,248,255,248,255,248,255,248,255,249,255,250,255,251,255,252,255,254,255,2,0,5,0,5,0,3,0, +0,0,253,255,251,255,248,255,246,255,244,255,245,255,245,255,243,255,241,255,240,255,241,255,242,255,244,255,249,255,254,255, +0,0,1,0,1,0,0,0,252,255,249,255,246,255,244,255,243,255,243,255,244,255,247,255,250,255,252,255,253,255,252,255, +250,255,248,255,246,255,245,255,245,255,246,255,247,255,246,255,244,255,241,255,239,255,239,255,242,255,245,255,248,255,249,255, +251,255,252,255,250,255,246,255,243,255,244,255,245,255,245,255,246,255,248,255,250,255,251,255,252,255,253,255,253,255,253,255, +252,255,252,255,252,255,251,255,252,255,253,255,254,255,253,255,251,255,250,255,247,255,246,255,245,255,246,255,248,255,251,255, +255,255,0,0,255,255,255,255,254,255,254,255,255,255,0,0,254,255,251,255,250,255,251,255,252,255,252,255,253,255,253,255, +253,255,253,255,253,255,250,255,248,255,248,255,251,255,254,255,0,0,2,0,3,0,4,0,4,0,3,0,0,0,254,255, +254,255,253,255,251,255,250,255,251,255,252,255,252,255,255,255,3,0,5,0,4,0,3,0,3,0,4,0,3,0,3,0, +3,0,2,0,0,0,254,255,252,255,252,255,255,255,1,0,4,0,6,0,9,0,10,0,11,0,12,0,10,0,6,0, +2,0,0,0,253,255,249,255,249,255,253,255,0,0,0,0,2,0,5,0,9,0,14,0,18,0,18,0,15,0,14,0, +12,0,6,0,2,0,1,0,1,0,255,255,255,255,1,0,4,0,5,0,7,0,7,0,6,0,6,0,6,0,7,0, +6,0,5,0,7,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,7,0,6,0,4,0,3,0,1,0,1,0, +1,0,1,0,2,0,3,0,6,0,11,0,15,0,17,0,18,0,16,0,14,0,13,0,11,0,9,0,7,0,6,0, +3,0,0,0,254,255,254,255,253,255,253,255,255,255,2,0,5,0,9,0,12,0,14,0,16,0,19,0,20,0,16,0, +12,0,11,0,11,0,8,0,5,0,3,0,2,0,1,0,0,0,254,255,252,255,251,255,252,255,252,255,252,255,251,255, +250,255,250,255,251,255,252,255,253,255,0,0,4,0,7,0,10,0,12,0,13,0,13,0,12,0,10,0,8,0,5,0, +3,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,255,255,253,255,252,255,252,255,252,255,252,255, +254,255,2,0,4,0,5,0,5,0,6,0,5,0,3,0,1,0,0,0,255,255,252,255,249,255,249,255,252,255,0,0, +2,0,2,0,2,0,1,0,255,255,252,255,251,255,253,255,1,0,4,0,5,0,3,0,255,255,252,255,249,255,247,255, +246,255,245,255,245,255,246,255,249,255,251,255,253,255,1,0,4,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0, +253,255,252,255,252,255,252,255,252,255,253,255,253,255,251,255,250,255,250,255,249,255,249,255,251,255,254,255,255,255,255,255, +255,255,0,0,0,0,255,255,254,255,254,255,253,255,252,255,252,255,251,255,250,255,249,255,250,255,251,255,253,255,255,255, +1,0,1,0,0,0,255,255,253,255,251,255,251,255,253,255,254,255,255,255,0,0,0,0,254,255,252,255,252,255,252,255, +251,255,250,255,250,255,250,255,249,255,249,255,251,255,253,255,0,0,2,0,3,0,4,0,4,0,3,0,2,0,2,0, +2,0,2,0,4,0,6,0,4,0,1,0,255,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,1,0,3,0, +5,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,6,0,6,0,4,0,2,0,2,0,3,0,4,0, +3,0,3,0,3,0,2,0,1,0,1,0,1,0,0,0,254,255,254,255,0,0,2,0,5,0,8,0,12,0,15,0, +17,0,18,0,17,0,16,0,14,0,11,0,7,0,2,0,255,255,253,255,252,255,252,255,253,255,255,255,1,0,2,0, +6,0,10,0,10,0,7,0,6,0,7,0,9,0,11,0,12,0,12,0,11,0,10,0,9,0,6,0,3,0,3,0, +2,0,1,0,0,0,255,255,0,0,3,0,7,0,10,0,11,0,11,0,11,0,11,0,11,0,12,0,11,0,11,0, +11,0,12,0,11,0,9,0,6,0,2,0,0,0,253,255,252,255,251,255,253,255,255,255,0,0,255,255,255,255,2,0, +7,0,11,0,11,0,9,0,7,0,6,0,5,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,5,0,9,0, +11,0,10,0,4,0,252,255,247,255,249,255,253,255,254,255,254,255,0,0,2,0,3,0,5,0,8,0,12,0,15,0, +15,0,10,0,3,0,255,255,254,255,255,255,253,255,253,255,254,255,255,255,1,0,3,0,5,0,6,0,8,0,9,0, +8,0,7,0,7,0,7,0,6,0,4,0,255,255,248,255,245,255,245,255,248,255,251,255,254,255,1,0,3,0,6,0, +9,0,10,0,12,0,15,0,15,0,12,0,8,0,4,0,255,255,250,255,247,255,248,255,251,255,253,255,254,255,1,0, +4,0,6,0,7,0,6,0,5,0,4,0,5,0,4,0,2,0,0,0,1,0,3,0,4,0,3,0,3,0,3,0, +2,0,1,0,0,0,254,255,254,255,254,255,254,255,253,255,252,255,253,255,0,0,1,0,1,0,3,0,5,0,6,0, +6,0,5,0,4,0,4,0,4,0,4,0,3,0,2,0,3,0,4,0,4,0,5,0,7,0,8,0,8,0,8,0, +8,0,6,0,5,0,3,0,1,0,255,255,253,255,254,255,255,255,255,255,255,255,1,0,4,0,5,0,6,0,6,0, +8,0,9,0,8,0,6,0,4,0,3,0,1,0,0,0,1,0,2,0,1,0,0,0,2,0,6,0,9,0,12,0, +15,0,15,0,12,0,10,0,6,0,1,0,253,255,251,255,248,255,244,255,242,255,245,255,250,255,254,255,1,0,5,0, +8,0,7,0,4,0,2,0,3,0,4,0,4,0,3,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,0,0, +2,0,5,0,7,0,9,0,11,0,11,0,6,0,1,0,254,255,253,255,251,255,250,255,254,255,2,0,4,0,7,0, +12,0,13,0,10,0,6,0,1,0,250,255,244,255,245,255,251,255,2,0,7,0,8,0,6,0,1,0,253,255,248,255, +245,255,246,255,249,255,251,255,253,255,0,0,3,0,3,0,2,0,2,0,2,0,0,0,1,0,2,0,3,0,2,0, +0,0,255,255,253,255,252,255,253,255,253,255,254,255,0,0,0,0,252,255,248,255,247,255,247,255,248,255,250,255,252,255, +253,255,252,255,251,255,250,255,251,255,252,255,252,255,252,255,252,255,251,255,252,255,255,255,1,0,1,0,1,0,1,0, +0,0,254,255,252,255,252,255,253,255,252,255,251,255,251,255,253,255,255,255,254,255,252,255,250,255,249,255,248,255,245,255, +242,255,241,255,241,255,240,255,240,255,242,255,245,255,249,255,253,255,1,0,3,0,5,0,5,0,3,0,0,0,0,0, +253,255,250,255,248,255,248,255,248,255,249,255,250,255,250,255,247,255,243,255,242,255,243,255,244,255,246,255,250,255,252,255, +251,255,248,255,248,255,249,255,251,255,254,255,255,255,254,255,253,255,253,255,254,255,253,255,253,255,251,255,249,255,246,255, +243,255,242,255,242,255,245,255,249,255,252,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255, +253,255,251,255,250,255,250,255,249,255,249,255,249,255,249,255,250,255,250,255,251,255,252,255,253,255,252,255,253,255,254,255, +253,255,251,255,249,255,251,255,252,255,252,255,252,255,250,255,249,255,248,255,247,255,247,255,246,255,245,255,244,255,244,255, +244,255,243,255,245,255,249,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,253,255,251,255, +249,255,248,255,248,255,248,255,248,255,248,255,250,255,251,255,251,255,252,255,254,255,254,255,253,255,254,255,254,255,253,255, +253,255,254,255,253,255,251,255,250,255,250,255,251,255,251,255,252,255,253,255,253,255,250,255,249,255,250,255,253,255,254,255, +253,255,252,255,253,255,252,255,252,255,253,255,1,0,3,0,3,0,3,0,1,0,254,255,250,255,249,255,251,255,253,255, +255,255,0,0,1,0,2,0,3,0,3,0,1,0,255,255,253,255,252,255,252,255,251,255,250,255,248,255,248,255,247,255, +247,255,247,255,248,255,251,255,252,255,253,255,254,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0, +0,0,255,255,254,255,253,255,252,255,255,255,4,0,6,0,5,0,4,0,4,0,2,0,253,255,250,255,250,255,251,255, +250,255,249,255,250,255,251,255,251,255,251,255,253,255,254,255,255,255,254,255,254,255,253,255,253,255,255,255,4,0,6,0, +6,0,7,0,8,0,5,0,1,0,252,255,249,255,246,255,245,255,246,255,249,255,250,255,252,255,254,255,0,0,1,0, +2,0,2,0,1,0,255,255,253,255,251,255,249,255,249,255,250,255,251,255,252,255,253,255,253,255,253,255,254,255,255,255, +255,255,255,255,2,0,4,0,4,0,3,0,2,0,1,0,255,255,254,255,253,255,252,255,250,255,249,255,249,255,250,255, +250,255,251,255,252,255,252,255,252,255,251,255,251,255,253,255,253,255,252,255,251,255,252,255,253,255,253,255,255,255,255,255, +254,255,254,255,255,255,0,0,253,255,252,255,253,255,253,255,251,255,249,255,248,255,248,255,248,255,248,255,249,255,250,255, +252,255,253,255,254,255,0,0,1,0,3,0,4,0,4,0,3,0,1,0,0,0,255,255,254,255,253,255,252,255,251,255, +250,255,250,255,251,255,252,255,254,255,1,0,3,0,3,0,4,0,4,0,0,0,252,255,251,255,252,255,252,255,251,255, +252,255,252,255,250,255,250,255,252,255,255,255,1,0,1,0,255,255,253,255,252,255,254,255,0,0,3,0,6,0,8,0, +8,0,6,0,5,0,4,0,2,0,0,0,254,255,251,255,249,255,249,255,250,255,252,255,255,255,1,0,1,0,1,0, +2,0,3,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,2,0,2,0,3,0,4,0, +4,0,5,0,4,0,3,0,2,0,0,0,0,0,2,0,3,0,4,0,3,0,0,0,254,255,252,255,252,255,252,255, +252,255,254,255,2,0,6,0,7,0,7,0,7,0,6,0,4,0,2,0,1,0,1,0,2,0,3,0,4,0,4,0, +6,0,8,0,7,0,6,0,8,0,9,0,5,0,2,0,1,0,2,0,0,0,255,255,255,255,0,0,0,0,2,0, +4,0,5,0,5,0,6,0,7,0,5,0,4,0,4,0,5,0,3,0,3,0,3,0,5,0,6,0,5,0,3,0, +1,0,1,0,2,0,3,0,5,0,9,0,12,0,14,0,15,0,13,0,7,0,2,0,255,255,251,255,248,255,248,255, +253,255,2,0,5,0,7,0,8,0,9,0,8,0,8,0,7,0,6,0,3,0,1,0,0,0,254,255,253,255,252,255, +253,255,255,255,1,0,1,0,3,0,6,0,9,0,10,0,11,0,11,0,9,0,3,0,252,255,246,255,244,255,243,255, +242,255,242,255,243,255,246,255,251,255,2,0,8,0,13,0,19,0,20,0,17,0,11,0,7,0,2,0,253,255,251,255, +250,255,250,255,251,255,251,255,250,255,249,255,251,255,254,255,1,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0, +1,0,255,255,253,255,250,255,249,255,250,255,252,255,254,255,254,255,254,255,252,255,251,255,251,255,249,255,247,255,246,255, +246,255,247,255,248,255,250,255,252,255,252,255,252,255,251,255,251,255,252,255,254,255,255,255,0,0,255,255,252,255,249,255, +248,255,247,255,246,255,247,255,249,255,250,255,249,255,249,255,253,255,0,0,2,0,1,0,255,255,252,255,249,255,248,255, +247,255,247,255,249,255,251,255,250,255,249,255,252,255,255,255,0,0,0,0,255,255,253,255,252,255,253,255,252,255,251,255, +251,255,251,255,250,255,248,255,248,255,248,255,248,255,250,255,254,255,0,0,1,0,2,0,3,0,0,0,251,255,248,255, +246,255,244,255,244,255,247,255,250,255,253,255,2,0,6,0,7,0,8,0,8,0,6,0,3,0,2,0,0,0,253,255, +251,255,252,255,251,255,247,255,245,255,247,255,250,255,251,255,250,255,250,255,251,255,252,255,254,255,255,255,1,0,4,0, +7,0,6,0,2,0,2,0,3,0,2,0,0,0,255,255,255,255,253,255,253,255,255,255,1,0,2,0,2,0,1,0, +0,0,1,0,1,0,3,0,5,0,7,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0,5,0,3,0,0,0, +255,255,255,255,254,255,252,255,252,255,254,255,254,255,255,255,0,0,4,0,7,0,9,0,10,0,11,0,11,0,10,0, +9,0,7,0,6,0,6,0,6,0,6,0,7,0,8,0,7,0,5,0,5,0,6,0,5,0,3,0,2,0,2,0, +1,0,2,0,3,0,3,0,3,0,5,0,7,0,7,0,7,0,9,0,10,0,8,0,6,0,5,0,6,0,6,0, +6,0,7,0,8,0,8,0,8,0,10,0,11,0,11,0,10,0,10,0,9,0,8,0,6,0,5,0,5,0,5,0, +5,0,5,0,8,0,9,0,9,0,9,0,8,0,7,0,7,0,7,0,8,0,9,0,10,0,10,0,8,0,6,0, +3,0,2,0,3,0,3,0,2,0,3,0,4,0,6,0,9,0,12,0,15,0,16,0,13,0,8,0,4,0,3,0, +3,0,3,0,4,0,5,0,5,0,5,0,7,0,9,0,10,0,10,0,10,0,9,0,5,0,1,0,1,0,4,0, +5,0,4,0,4,0,5,0,4,0,1,0,0,0,254,255,253,255,253,255,0,0,3,0,4,0,4,0,5,0,5,0, +4,0,4,0,4,0,2,0,1,0,1,0,2,0,3,0,2,0,4,0,6,0,6,0,3,0,1,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,3,0,6,0,6,0,6,0,4,0,1,0,255,255,254,255,255,255,1,0, +3,0,2,0,0,0,0,0,0,0,254,255,254,255,0,0,2,0,1,0,0,0,1,0,4,0,6,0,7,0,6,0, +4,0,3,0,3,0,4,0,4,0,3,0,1,0,255,255,0,0,0,0,0,0,0,0,2,0,3,0,4,0,4,0, +4,0,3,0,1,0,255,255,254,255,252,255,254,255,1,0,4,0,7,0,10,0,11,0,10,0,7,0,4,0,3,0, +1,0,0,0,0,0,255,255,254,255,254,255,255,255,254,255,253,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0, +1,0,2,0,2,0,2,0,4,0,5,0,6,0,7,0,7,0,8,0,10,0,9,0,6,0,3,0,255,255,251,255, +248,255,248,255,249,255,250,255,253,255,0,0,2,0,3,0,4,0,6,0,6,0,6,0,8,0,8,0,5,0,2,0, +1,0,255,255,253,255,251,255,252,255,253,255,255,255,1,0,5,0,8,0,12,0,16,0,16,0,13,0,11,0,6,0, +0,0,252,255,250,255,250,255,252,255,255,255,1,0,3,0,4,0,5,0,5,0,4,0,1,0,0,0,2,0,5,0, +6,0,6,0,8,0,10,0,10,0,6,0,3,0,2,0,0,0,254,255,254,255,1,0,2,0,2,0,3,0,5,0, +4,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255,1,0,4,0,7,0,8,0,9,0,8,0,6,0,2,0, +254,255,252,255,252,255,252,255,254,255,2,0,6,0,6,0,6,0,7,0,6,0,4,0,2,0,2,0,2,0,0,0, +253,255,252,255,252,255,251,255,250,255,251,255,253,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0,4,0,9,0, +12,0,14,0,14,0,13,0,9,0,5,0,3,0,2,0,0,0,253,255,251,255,251,255,252,255,251,255,250,255,252,255, +254,255,255,255,0,0,1,0,2,0,2,0,3,0,4,0,4,0,4,0,3,0,0,0,253,255,251,255,251,255,250,255, +250,255,250,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255, +253,255,253,255,252,255,251,255,249,255,248,255,250,255,251,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0, +0,0,255,255,254,255,253,255,253,255,253,255,251,255,249,255,248,255,248,255,248,255,249,255,252,255,255,255,1,0,3,0, +5,0,5,0,4,0,2,0,1,0,0,0,252,255,249,255,248,255,249,255,250,255,252,255,254,255,0,0,0,0,254,255, +252,255,251,255,251,255,250,255,251,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255, +254,255,255,255,1,0,1,0,0,0,1,0,0,0,254,255,251,255,250,255,251,255,252,255,253,255,254,255,0,0,2,0, +2,0,3,0,4,0,4,0,3,0,2,0,0,0,253,255,249,255,248,255,249,255,250,255,252,255,255,255,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255,254,255, +253,255,254,255,0,0,2,0,3,0,5,0,6,0,7,0,6,0,4,0,3,0,1,0,0,0,254,255,252,255,252,255, +252,255,252,255,253,255,255,255,0,0,255,255,255,255,1,0,3,0,5,0,5,0,5,0,6,0,6,0,4,0,0,0, +255,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0,0,0,254,255,254,255,255,255,2,0,4,0,4,0,2,0, +255,255,253,255,252,255,252,255,253,255,254,255,0,0,2,0,4,0,4,0,2,0,1,0,255,255,255,255,254,255,252,255, +252,255,253,255,255,255,0,0,1,0,2,0,3,0,5,0,6,0,6,0,4,0,2,0,0,0,255,255,254,255,253,255, +253,255,253,255,252,255,250,255,250,255,251,255,251,255,251,255,253,255,0,0,1,0,3,0,5,0,7,0,5,0,3,0, +2,0,4,0,4,0,3,0,2,0,2,0,1,0,254,255,251,255,251,255,252,255,253,255,251,255,248,255,247,255,247,255, +247,255,246,255,250,255,1,0,7,0,9,0,10,0,10,0,10,0,6,0,0,0,253,255,253,255,253,255,253,255,253,255, +254,255,254,255,254,255,253,255,253,255,253,255,0,0,0,0,255,255,254,255,255,255,1,0,3,0,4,0,4,0,3,0, +255,255,250,255,246,255,244,255,244,255,244,255,245,255,247,255,251,255,1,0,5,0,6,0,6,0,9,0,10,0,9,0, +5,0,2,0,255,255,252,255,249,255,249,255,249,255,250,255,250,255,252,255,253,255,251,255,249,255,254,255,5,0,9,0, +9,0,7,0,2,0,252,255,246,255,241,255,241,255,244,255,245,255,245,255,248,255,0,0,11,0,21,0,25,0,26,0, +27,0,23,0,10,0,250,255,239,255,231,255,222,255,214,255,213,255,223,255,236,255,239,255,235,255,240,255,254,255,10,0, +15,0,20,0,25,0,24,0,14,0,1,0,248,255,248,255,252,255,1,0,2,0,255,255,252,255,253,255,251,255,249,255, +0,0,17,0,30,0,32,0,29,0,20,0,3,0,238,255,221,255,215,255,217,255,225,255,240,255,3,0,18,0,25,0, +31,0,35,0,31,0,19,0,7,0,255,255,247,255,242,255,241,255,242,255,242,255,240,255,238,255,243,255,254,255,8,0, +16,0,23,0,28,0,28,0,22,0,12,0,5,0,3,0,2,0,252,255,245,255,243,255,245,255,246,255,249,255,255,255, +7,0,11,0,11,0,6,0,0,0,251,255,249,255,248,255,249,255,249,255,250,255,254,255,0,0,1,0,5,0,14,0, +22,0,25,0,23,0,19,0,14,0,8,0,2,0,253,255,252,255,251,255,249,255,247,255,247,255,246,255,246,255,250,255, +0,0,4,0,8,0,15,0,23,0,30,0,32,0,30,0,25,0,18,0,5,0,248,255,239,255,236,255,236,255,239,255, +244,255,245,255,246,255,249,255,0,0,7,0,14,0,19,0,21,0,17,0,9,0,3,0,4,0,7,0,14,0,27,0, +40,0,41,0,26,0,8,0,247,255,232,255,219,255,215,255,222,255,235,255,248,255,2,0,8,0,9,0,6,0,0,0, +250,255,243,255,238,255,239,255,242,255,242,255,245,255,254,255,7,0,13,0,15,0,17,0,17,0,13,0,7,0,2,0, +4,0,6,0,5,0,4,0,4,0,2,0,253,255,246,255,239,255,234,255,233,255,233,255,237,255,245,255,252,255,1,0, +4,0,9,0,13,0,12,0,11,0,12,0,16,0,18,0,17,0,13,0,11,0,8,0,3,0,254,255,251,255,249,255, +247,255,247,255,250,255,253,255,254,255,254,255,0,0,4,0,7,0,7,0,5,0,3,0,0,0,252,255,249,255,250,255, +253,255,0,0,4,0,8,0,11,0,12,0,13,0,16,0,18,0,16,0,12,0,10,0,8,0,4,0,255,255,251,255, +250,255,249,255,248,255,249,255,250,255,251,255,252,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,255,255,255,255, +254,255,253,255,255,255,1,0,0,0,254,255,253,255,253,255,253,255,254,255,1,0,4,0,5,0,3,0,2,0,1,0, +254,255,250,255,248,255,249,255,250,255,251,255,254,255,1,0,4,0,4,0,4,0,4,0,4,0,4,0,0,0,253,255, +251,255,250,255,249,255,250,255,253,255,2,0,5,0,7,0,8,0,8,0,5,0,1,0,0,0,1,0,1,0,255,255, +254,255,255,255,0,0,1,0,1,0,1,0,255,255,254,255,252,255,251,255,251,255,252,255,254,255,0,0,1,0,2,0, +3,0,5,0,6,0,8,0,10,0,12,0,14,0,14,0,11,0,6,0,2,0,255,255,251,255,251,255,253,255,0,0, +255,255,252,255,250,255,250,255,250,255,248,255,247,255,249,255,252,255,253,255,254,255,255,255,0,0,2,0,6,0,9,0, +11,0,12,0,12,0,13,0,13,0,11,0,7,0,3,0,0,0,255,255,253,255,252,255,252,255,255,255,3,0,6,0, +8,0,9,0,8,0,6,0,5,0,3,0,1,0,255,255,0,0,0,0,0,0,1,0,2,0,3,0,4,0,4,0, +4,0,3,0,1,0,255,255,255,255,255,255,254,255,255,255,1,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0, +1,0,1,0,2,0,3,0,3,0,2,0,0,0,0,0,1,0,1,0,1,0,2,0,5,0,5,0,2,0,0,0, +254,255,252,255,250,255,250,255,251,255,253,255,254,255,0,0,0,0,0,0,0,0,0,0,1,0,3,0,5,0,5,0, +3,0,2,0,0,0,255,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,255,255,0,0, +0,0,255,255,254,255,254,255,252,255,251,255,249,255,249,255,248,255,248,255,249,255,250,255,251,255,253,255,254,255,255,255, +0,0,0,0,0,0,0,0,255,255,254,255,252,255,251,255,250,255,249,255,250,255,252,255,254,255,254,255,254,255,254,255, +255,255,254,255,251,255,250,255,251,255,251,255,250,255,249,255,248,255,246,255,247,255,248,255,249,255,249,255,250,255,252,255, +253,255,253,255,253,255,254,255,255,255,254,255,253,255,254,255,255,255,254,255,251,255,250,255,250,255,248,255,247,255,248,255, +248,255,248,255,249,255,252,255,254,255,255,255,255,255,255,255,254,255,253,255,251,255,251,255,252,255,252,255,251,255,251,255, +251,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,253,255,252,255,252,255,253,255,254,255, +254,255,253,255,253,255,252,255,251,255,252,255,253,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255, +252,255,251,255,251,255,252,255,253,255,255,255,0,0,2,0,2,0,2,0,0,0,254,255,252,255,251,255,250,255,249,255, +250,255,250,255,250,255,250,255,249,255,248,255,249,255,250,255,251,255,253,255,255,255,0,0,0,0,0,0,255,255,254,255, +252,255,252,255,253,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,252,255,251,255,250,255,251,255,253,255,253,255, +251,255,251,255,252,255,254,255,255,255,0,0,1,0,2,0,2,0,3,0,4,0,5,0,5,0,4,0,2,0,255,255, +253,255,253,255,254,255,255,255,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,253,255,254,255,0,0,2,0, +2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,253,255,253,255, +254,255,255,255,254,255,254,255,255,255,1,0,2,0,3,0,5,0,6,0,6,0,5,0,3,0,2,0,1,0,1,0, +0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,0,0,255,255,254,255,254,255, +255,255,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,254,255,252,255,250,255,250,255, +251,255,251,255,252,255,253,255,254,255,255,255,0,0,0,0,2,0,4,0,4,0,3,0,3,0,3,0,3,0,2,0, +2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,255,255,0,0,0,0,255,255, +253,255,253,255,253,255,254,255,0,0,1,0,0,0,255,255,253,255,252,255,250,255,249,255,249,255,251,255,253,255,254,255, +254,255,0,0,1,0,1,0,0,0,1,0,2,0,1,0,254,255,251,255,250,255,249,255,249,255,249,255,250,255,251,255, +252,255,252,255,251,255,250,255,251,255,252,255,254,255,255,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,1,0, +0,0,255,255,253,255,251,255,248,255,248,255,248,255,247,255,246,255,247,255,249,255,250,255,251,255,252,255,254,255,1,0, +2,0,3,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,252,255,250,255,248,255,248,255,249,255, +251,255,254,255,1,0,3,0,3,0,4,0,4,0,2,0,255,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255, +254,255,252,255,252,255,253,255,254,255,254,255,255,255,0,0,1,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255, +255,255,1,0,3,0,4,0,5,0,4,0,3,0,1,0,0,0,255,255,254,255,253,255,253,255,253,255,254,255,254,255, +254,255,0,0,1,0,2,0,2,0,4,0,5,0,6,0,6,0,7,0,8,0,8,0,7,0,6,0,4,0,2,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,5,0, +4,0,3,0,0,0,254,255,252,255,253,255,0,0,3,0,4,0,5,0,6,0,7,0,7,0,6,0,5,0,3,0, +3,0,3,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,5,0,6,0,6,0,5,0,5,0,6,0, +6,0,7,0,7,0,7,0,6,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,2,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0, +2,0,0,0,254,255,254,255,254,255,254,255,254,255,255,255,2,0,4,0,5,0,7,0,8,0,7,0,6,0,5,0, +3,0,1,0,255,255,253,255,252,255,251,255,251,255,252,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0, +2,0,3,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255, +254,255,253,255,253,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0,1,0,2,0, +3,0,3,0,1,0,255,255,253,255,252,255,251,255,251,255,251,255,252,255,253,255,254,255,0,0,1,0,2,0,2,0, +2,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,3,0,3,0,3,0, +2,0,1,0,0,0,253,255,251,255,251,255,252,255,254,255,255,255,0,0,1,0,3,0,5,0,6,0,5,0,4,0, +3,0,2,0,1,0,2,0,4,0,4,0,3,0,1,0,0,0,254,255,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,3,0,4,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0,3,0, +4,0,5,0,6,0,6,0,5,0,5,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +2,0,4,0,5,0,7,0,8,0,7,0,4,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +3,0,4,0,4,0,5,0,6,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,3,0,3,0,3,0, +4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,6,0,5,0,4,0,3,0,4,0,4,0,4,0, +4,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,3,0,3,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,3,0,1,0,0,0,2,0,2,0,2,0, +2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,0,0, +255,255,253,255,252,255,252,255,251,255,252,255,252,255,252,255,252,255,254,255,255,255,0,0,255,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,254,255,251,255,251,255,251,255,252,255,253,255,254,255,254,255,254,255,253,255,253,255, +253,255,252,255,251,255,250,255,251,255,253,255,253,255,253,255,253,255,253,255,251,255,249,255,249,255,251,255,253,255,255,255, +255,255,255,255,255,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,255,255,0,0,0,0,254,255,253,255, +252,255,252,255,251,255,250,255,250,255,252,255,253,255,254,255,253,255,253,255,252,255,250,255,249,255,250,255,252,255,252,255, +251,255,251,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,252,255, +251,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,253,255,255,255,255,255,255,255,254,255,253,255,253,255, +253,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,0,0,1,0,2,0,1,0,0,0,255,255,254,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255,253,255,254,255,255,255,0,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,255,255, +0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255, +253,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,0,0,254,255, +253,255,253,255,253,255,254,255,0,0,0,0,0,0,255,255,254,255,252,255,252,255,251,255,252,255,252,255,252,255,253,255, +254,255,255,255,1,0,1,0,1,0,0,0,255,255,255,255,253,255,252,255,252,255,252,255,251,255,252,255,252,255,253,255, +254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,255,255,253,255,251,255,251,255,252,255,253,255,253,255,253,255, +253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,254,255,253,255,252,255,251,255,250,255,251,255,253,255, +254,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,1,0,2,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0, +0,0,254,255,254,255,255,255,1,0,2,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,254,255,253,255,254,255,254,255,254,255,0,0,2,0,3,0,3,0,2,0, +1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,3,0,4,0,4,0,4,0,3,0, +3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0, +2,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0, +1,0,0,0,0,0,0,0,255,255,1,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0, +0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,254,255,255,255,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0, +2,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,3,0,4,0,3,0,1,0,0,0,1,0,2,0,2,0,4,0,5,0,4,0,2,0,0,0,254,255,253,255, +253,255,253,255,253,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,1,0,255,255,253,255,254,255,254,255, +255,255,255,255,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,0,0,255,255,254,255,253,255,251,255,251,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,254,255,252,255,252,255,253,255, +253,255,253,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255, +254,255,254,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,251,255,252,255, +253,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,3,0,4,0,4,0,4,0, +4,0,3,0,2,0,0,0,255,255,254,255,255,255,1,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0, +1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,4,0,4,0,3,0,3,0,4,0, +3,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,4,0,5,0,5,0,5,0, +4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255, +254,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,0,0,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,253,255,253,255,254,255,255,255,255,255, +255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0, +1,0,1,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255,251,255,251,255,250,255,250,255,252,255,253,255,253,255, +253,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0, +0,0,1,0,3,0,3,0,1,0,0,0,255,255,254,255,253,255,253,255,254,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,254,255,253,255,254,255,255,255, +255,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,4,0, +4,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,1,0,255,255,253,255,252,255,254,255,255,255,255,255,0,0, +1,0,2,0,3,0,4,0,5,0,5,0,5,0,5,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0, +2,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0, +3,0,4,0,6,0,7,0,7,0,6,0,3,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0, +0,0,1,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,0,0,0,0,0,0,254,255,253,255,254,255, +255,255,0,0,2,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,2,0, +2,0,1,0,1,0,2,0,2,0,1,0,255,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0, +1,0,1,0,0,0,1,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,254,255, +254,255,254,255,253,255,254,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,254,255,253,255,254,255,0,0,255,255,253,255,252,255,252,255,252,255,252,255, +253,255,254,255,255,255,1,0,1,0,3,0,5,0,6,0,5,0,5,0,4,0,1,0,253,255,249,255,247,255,246,255, +247,255,250,255,251,255,253,255,0,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0, +1,0,0,0,255,255,253,255,252,255,253,255,254,255,255,255,0,0,0,0,1,0,0,0,255,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,2,0, +3,0,3,0,3,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,254,255,252,255,251,255,251,255, +253,255,255,255,1,0,3,0,4,0,4,0,2,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +3,0,5,0,6,0,6,0,6,0,6,0,7,0,6,0,3,0,2,0,0,0,252,255,249,255,247,255,245,255,245,255, +248,255,251,255,254,255,2,0,7,0,12,0,14,0,14,0,13,0,11,0,8,0,4,0,1,0,254,255,252,255,251,255, +252,255,252,255,252,255,251,255,252,255,253,255,253,255,253,255,254,255,1,0,3,0,4,0,5,0,5,0,5,0,4,0, +4,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,0,0,254,255,253,255,251,255, +253,255,0,0,1,0,3,0,5,0,7,0,8,0,9,0,8,0,6,0,2,0,255,255,252,255,250,255,247,255,245,255, +244,255,243,255,245,255,248,255,251,255,0,0,6,0,9,0,10,0,9,0,7,0,4,0,1,0,254,255,252,255,250,255, +249,255,249,255,250,255,252,255,254,255,255,255,1,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,255,255,252,255, +249,255,248,255,247,255,248,255,249,255,250,255,252,255,255,255,2,0,3,0,4,0,6,0,6,0,4,0,2,0,255,255, +254,255,253,255,251,255,250,255,250,255,251,255,254,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,255,255,253,255,252,255,251,255,251,255,252,255,251,255,252,255,254,255,0,0,0,0,1,0, +1,0,255,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,252,255,253,255,255,255,254,255,253,255, +252,255,252,255,252,255,252,255,252,255,251,255,252,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,253,255,253,255,253,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255, +254,255,254,255,254,255,253,255,253,255,253,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,254,255,254,255,255,255, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,3,0,4,0,3,0,2,0, +1,0,254,255,250,255,248,255,247,255,246,255,246,255,248,255,252,255,255,255,2,0,4,0,5,0,4,0,3,0,3,0, +3,0,2,0,1,0,2,0,3,0,2,0,2,0,2,0,1,0,255,255,252,255,249,255,248,255,249,255,250,255,251,255, +252,255,254,255,255,255,0,0,1,0,1,0,2,0,3,0,3,0,3,0,4,0,7,0,9,0,9,0,7,0,5,0, +2,0,0,0,254,255,251,255,250,255,250,255,251,255,253,255,255,255,1,0,2,0,4,0,4,0,3,0,2,0,1,0, +0,0,0,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0,1,0,2,0,2,0,0,0,0,0,2,0,3,0, +3,0,2,0,2,0,1,0,0,0,254,255,252,255,252,255,253,255,255,255,1,0,3,0,4,0,5,0,6,0,5,0, +4,0,2,0,0,0,0,0,1,0,0,0,255,255,1,0,3,0,5,0,5,0,4,0,3,0,1,0,0,0,254,255, +254,255,254,255,254,255,254,255,255,255,0,0,255,255,0,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,5,0, +4,0,4,0,3,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,3,0,4,0,4,0,4,0,3,0, +3,0,2,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0, +0,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,3,0,4,0,5,0,3,0,1,0,255,255, +255,255,254,255,253,255,254,255,254,255,254,255,254,255,255,255,253,255,253,255,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,0,0,1,0,3,0,4,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,255,255,254,255,253,255,253,255, +253,255,253,255,253,255,254,255,254,255,254,255,255,255,1,0,2,0,3,0,4,0,3,0,3,0,2,0,1,0,0,0, +255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,255,255,254,255,254,255,255,255,255,255,0,0,2,0, +2,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,1,0,0,0,254,255, +253,255,253,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,2,0,3,0,3,0, +2,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,2,0,1,0, +0,0,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,1,0,2,0,2,0,2,0,3,0,2,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0, +1,0,0,0,254,255,253,255,252,255,251,255,252,255,253,255,253,255,255,255,0,0,1,0,2,0,2,0,3,0,2,0, +2,0,2,0,1,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,2,0,2,0,2,0,3,0,3,0, +1,0,0,0,255,255,253,255,253,255,253,255,252,255,253,255,0,0,0,0,1,0,2,0,2,0,2,0,3,0,1,0, +0,0,0,0,255,255,252,255,252,255,252,255,251,255,251,255,253,255,254,255,253,255,252,255,253,255,254,255,255,255,1,0, +4,0,7,0,9,0,8,0,5,0,2,0,0,0,254,255,252,255,251,255,251,255,251,255,250,255,251,255,251,255,251,255, +249,255,249,255,249,255,249,255,248,255,250,255,252,255,254,255,0,0,2,0,4,0,2,0,0,0,0,0,1,0,1,0, +2,0,3,0,4,0,4,0,3,0,0,0,253,255,251,255,249,255,247,255,246,255,248,255,248,255,251,255,253,255,255,255, +255,255,1,0,0,0,255,255,254,255,252,255,252,255,255,255,0,0,1,0,3,0,5,0,4,0,2,0,0,0,253,255, +252,255,251,255,251,255,251,255,251,255,252,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,253,255, +254,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,255,255,1,0,1,0,1,0,2,0,3,0,4,0,4,0, +3,0,0,0,254,255,254,255,252,255,251,255,251,255,252,255,252,255,252,255,254,255,255,255,0,0,1,0,1,0,0,0, +255,255,255,255,254,255,252,255,253,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0, +1,0,1,0,255,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,2,0,2,0,3,0,4,0,3,0,2,0,2,0,1,0,0,0,255,255, +253,255,253,255,253,255,252,255,252,255,254,255,0,0,0,0,2,0,3,0,2,0,2,0,3,0,3,0,1,0,0,0, +254,255,254,255,254,255,253,255,253,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,0,0,254,255,253,255,253,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,1,0,2,0,1,0,2,0,2,0,0,0,254,255,254,255,253,255,252,255,252,255,253,255,254,255,0,0,0,0, +3,0,6,0,7,0,7,0,8,0,9,0,7,0,4,0,1,0,253,255,250,255,247,255,244,255,246,255,248,255,250,255, +253,255,0,0,2,0,3,0,5,0,7,0,7,0,6,0,4,0,3,0,0,0,254,255,255,255,0,0,1,0,2,0, +2,0,2,0,2,0,3,0,3,0,3,0,3,0,1,0,0,0,254,255,252,255,251,255,252,255,253,255,255,255,1,0, +3,0,6,0,10,0,11,0,9,0,6,0,5,0,2,0,254,255,251,255,250,255,251,255,251,255,252,255,251,255,253,255, +0,0,1,0,3,0,6,0,8,0,9,0,9,0,8,0,5,0,2,0,0,0,254,255,252,255,251,255,252,255,254,255, +1,0,2,0,3,0,5,0,6,0,5,0,4,0,3,0,1,0,1,0,0,0,255,255,254,255,252,255,252,255,254,255, +255,255,0,0,2,0,4,0,5,0,6,0,6,0,5,0,4,0,2,0,255,255,254,255,254,255,253,255,254,255,0,0, +0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,1,0,1,0,2,0,3,0,2,0,2,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0, +2,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0, +3,0,3,0,2,0,1,0,1,0,2,0,2,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,1,0,3,0,2,0,2,0,3,0,2,0,1,0,255,255,255,255,254,255,253,255,253,255,253,255,254,255,255,255, +0,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255, +255,255,255,255,0,0,1,0,0,0,1,0,2,0,1,0,1,0,0,0,254,255,253,255,254,255,253,255,252,255,253,255, +254,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,255,255,253,255,253,255,252,255, +252,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,254,255,253,255,254,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,254,255,255,255, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,1,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,254,255,254,255,254,255,255,255, +1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,254,255,255,255, +255,255,255,255,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255, +255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,0,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0, +255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,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,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,1,0,1,0,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,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/fallbig2.pcm b/src/client/sound/data/fallbig2.pcm new file mode 100755 index 0000000..0bba56a --- /dev/null +++ b/src/client/sound/data/fallbig2.pcm @@ -0,0 +1,1595 @@ +unsigned char PCM_fallbig2[50944] = { +1,0,0,0,2,0,0,0,68,172,0,0,120,99,0,0,47,1,245,1,127,2,76,2,51,1,105,255,100,253,178,251, +213,250,35,251,123,252,76,254,36,0,205,1,10,3,248,3,244,4,193,5,234,5,144,5,219,4,193,3,109,2,145,0, +190,253,252,250,164,249,83,249,142,249,222,250,181,252,6,254,109,255,51,1,13,2,41,2,44,3,179,4,253,4,250,3, +210,2,227,1,110,0,42,254,182,252,54,253,195,253,79,253,53,254,154,0,82,1,143,0,167,0,71,0,99,254,163,253, +128,254,183,254,122,254,99,254,150,253,115,253,214,254,169,254,180,252,24,253,131,255,89,0,27,0,30,0,129,255,55,255, +215,255,198,254,118,252,25,252,26,252,103,250,59,250,68,252,90,252,12,251,89,252,204,254,250,254,34,254,119,254,13,255, +55,254,141,252,133,252,108,254,226,254,243,252,29,252,223,252,76,252,86,251,51,252,5,253,243,252,223,253,80,254,60,252, +169,250,251,251,204,253,84,254,242,253,192,252,3,252,4,253,237,253,48,253,73,252,7,252,12,252,39,253,57,255,66,0, +198,255,243,254,48,254,253,252,221,250,171,248,153,248,48,250,119,250,62,250,96,252,195,254,120,254,153,253,50,254,231,254, +227,254,65,254,253,252,87,252,174,252,68,252,91,251,140,251,28,252,190,252,26,254,250,253,151,251,3,251,226,252,36,253, +174,252,226,254,245,0,239,255,104,254,180,253,24,253,112,254,184,0,88,255,71,252,104,252,252,252,15,252,120,254,73,2, +157,255,132,250,121,252,21,1,144,255,182,251,240,251,53,253,13,252,121,251,140,253,211,255,63,0,37,255,125,253,117,252, +254,252,104,254,61,255,67,255,181,254,131,253,235,252,62,254,126,255,97,254,245,252,158,253,3,255,221,255,85,0,225,255, +146,255,225,0,151,0,76,253,23,253,233,0,192,0,81,253,134,255,163,4,146,3,104,255,139,255,86,2,21,3,18,0, +165,251,2,253,70,3,134,0,176,244,144,242,175,250,242,252,246,0,214,19,3,31,34,14,230,250,110,254,222,6,27,0, +65,244,67,240,13,241,203,241,22,245,24,254,241,7,42,10,222,6,178,6,27,8,98,6,233,6,5,12,255,12,54,7, +39,2,150,0,134,255,70,254,85,253,43,253,26,255,215,1,195,2,88,3,135,5,17,7,139,6,180,5,180,4,239,2, +246,1,37,2,51,2,242,2,213,4,222,5,105,6,54,8,1,9,108,7,185,7,22,11,60,12,5,10,4,9,222,9, +248,9,188,9,116,9,167,7,118,6,172,8,169,10,150,8,0,6,150,6,234,7,121,8,9,11,126,15,200,17,113,17, +10,18,13,20,38,20,141,17,92,15,45,15,90,15,12,15,54,15,124,15,13,15,30,15,227,15,239,14,106,12,114,11, +73,11,244,8,223,6,109,8,7,10,15,8,119,6,53,8,11,9,200,6,111,5,77,6,15,6,155,4,200,4,234,5, +126,5,88,4,145,4,141,5,138,5,141,4,194,3,86,3,111,2,27,1,162,0,116,1,99,2,150,2,78,2,183,1, +226,0,80,0,44,0,19,0,217,255,53,255,192,253,74,252,249,251,234,251,164,250,55,249,154,249,48,251,152,251,229,249, +121,247,66,246,143,246,250,246,174,246,61,246,158,245,52,244,37,243,61,244,133,246,95,247,67,246,212,244,108,244,10,245, +200,245,240,245,200,245,161,245,5,245,13,244,160,243,183,243,32,244,228,244,53,245,66,244,73,243,194,244,89,247,58,247, +220,244,252,243,125,244,208,243,146,243,94,246,199,248,62,246,194,241,218,240,252,241,179,240,209,238,193,240,10,245,52,247, +6,247,201,246,177,246,57,246,72,246,108,247,186,248,32,249,136,248,154,247,114,246,191,244,18,244,86,246,213,248,152,247, +237,244,209,242,62,233,6,211,72,189,64,183,141,188,56,195,205,208,195,235,89,8,174,25,147,36,115,46,113,45,102,27, +65,4,101,242,116,225,134,207,3,197,207,195,224,197,44,207,22,231,127,1,143,10,202,4,246,254,21,246,238,223,23,198, +152,183,173,175,84,167,153,171,198,198,14,233,223,255,190,14,12,31,175,45,69,54,131,60,228,66,137,71,68,74,205,73, +238,65,154,53,3,48,2,53,51,59,214,56,49,46,196,35,112,34,0,42,16,48,129,44,179,33,121,21,180,11,218,7, +200,7,110,1,84,241,115,224,48,210,116,192,15,178,113,185,172,212,111,236,32,247,122,254,79,4,96,1,7,249,116,241, +102,227,12,201,67,173,242,154,41,144,76,139,99,143,16,152,15,158,84,163,202,171,104,182,194,198,222,226,223,254,27,3, +204,237,14,215,17,207,92,207,222,207,182,212,192,226,52,245,162,2,61,6,230,3,155,3,20,8,7,14,95,20,20,28, +215,33,83,36,101,42,175,51,38,47,91,20,104,246,41,233,163,229,164,220,145,209,68,208,45,216,156,223,252,225,169,227, +139,235,69,250,60,10,255,25,143,44,125,59,107,57,221,38,132,17,40,254,128,233,50,220,219,228,6,255,199,20,119,25, +111,20,19,17,190,15,58,12,4,12,149,25,194,50,92,74,85,90,41,101,3,107,72,109,210,113,71,117,212,107,174,87, +158,70,171,55,41,33,81,12,250,9,199,20,251,28,12,36,60,49,196,59,140,56,197,45,169,37,72,28,202,10,221,248, +132,243,0,250,60,2,90,10,244,22,23,37,204,45,30,50,28,53,93,50,104,39,92,27,3,19,6,10,241,253,76,243, +124,237,18,235,172,232,11,227,21,218,202,208,192,199,118,191,140,191,245,205,142,226,100,242,249,253,240,6,26,7,51,253, +49,241,104,230,61,218,123,206,214,197,17,190,38,184,204,185,154,192,200,194,214,188,85,179,148,170,80,162,254,152,63,146, +48,152,102,173,169,192,65,190,138,169,40,149,165,137,37,132,114,132,185,140,148,153,249,163,125,168,180,168,129,165,141,155, +18,139,0,128,0,128,0,128,0,128,0,128,59,142,223,154,52,159,148,162,168,167,152,169,33,170,216,171,99,168,110,158, +161,152,146,155,9,160,179,161,94,161,168,158,187,156,103,161,186,170,73,181,20,199,112,226,124,251,73,10,125,21,27,34, +77,45,48,55,147,63,7,63,185,51,109,39,240,29,239,16,133,2,168,253,220,2,223,8,149,13,200,21,167,34,3,51, +5,69,149,79,197,71,86,50,7,34,135,32,192,38,134,45,101,54,213,64,180,69,250,65,173,58,1,52,58,46,213,42, +53,43,201,43,70,41,101,40,241,47,228,60,100,68,141,65,34,58,41,52,108,46,12,39,46,33,148,30,90,28,81,27, +242,32,237,43,2,52,11,55,194,56,243,54,120,44,61,29,192,18,93,16,165,18,87,20,226,16,215,8,237,2,197,2, +74,4,63,5,65,10,130,20,187,27,168,24,76,15,4,9,58,7,239,3,6,254,56,251,54,254,51,2,7,4,130,6, +38,10,145,10,71,7,84,5,102,6,112,7,123,8,60,13,206,21,46,29,240,30,5,27,208,19,195,10,93,1,137,252, +209,0,166,10,37,19,168,27,54,40,3,50,32,48,231,39,143,34,25,28,61,15,210,4,100,5,5,11,241,14,183,19, +3,26,121,29,224,30,115,33,24,35,32,35,180,36,136,35,27,24,151,8,52,0,240,250,237,240,144,234,185,241,86,254, +108,6,210,14,220,26,211,31,239,22,69,9,82,0,174,250,146,245,81,244,16,250,63,4,221,13,115,20,29,24,49,24, +91,19,254,11,110,7,210,6,186,6,94,6,147,7,243,8,203,8,65,10,34,15,212,18,122,18,114,17,147,16,205,11, +238,3,65,255,32,255,113,255,148,255,119,2,248,7,172,13,140,19,166,26,139,33,82,37,17,37,7,35,7,34,46,34, +94,34,1,36,57,40,60,42,8,36,67,24,206,15,80,14,201,15,12,15,56,9,243,254,235,245,7,244,45,248,54,254, +135,7,121,22,40,37,219,43,52,44,129,43,253,39,219,30,99,22,217,21,68,26,40,29,239,30,69,34,20,36,53,32, +105,24,181,17,147,15,163,18,36,23,233,22,134,17,77,14,76,18,242,25,253,31,11,36,182,38,26,37,203,28,149,17, +141,11,0,15,210,23,26,30,91,30,117,27,55,25,207,23,184,21,79,20,0,23,81,29,64,34,196,35,13,37,179,38, +152,36,93,30,73,24,163,18,92,11,10,7,117,11,180,20,57,28,192,35,210,45,43,53,173,53,3,51,179,47,19,41, +84,31,185,22,220,16,188,13,30,16,233,24,91,34,87,37,51,32,70,22,23,12,145,4,211,255,112,252,152,249,89,247, +154,245,0,244,44,243,250,245,199,254,88,10,128,18,242,22,68,27,160,28,139,21,14,10,183,1,78,250,182,239,44,232, +55,233,212,235,240,232,111,228,155,226,207,224,179,221,62,220,27,222,167,227,237,236,245,245,215,249,196,249,229,248,180,245, +92,239,131,234,24,235,241,239,175,244,242,242,6,232,236,220,206,221,11,233,209,243,39,251,107,1,23,3,182,252,198,242, +148,233,46,224,65,216,83,214,254,216,249,218,98,219,151,219,178,218,145,217,233,219,69,225,99,227,218,222,227,216,163,216, +129,221,132,225,142,227,39,231,127,235,58,237,222,238,141,243,189,246,235,244,206,241,101,235,16,216,213,187,82,170,187,171, +70,182,130,196,57,217,33,238,142,246,139,241,110,232,39,225,205,220,2,220,138,222,189,227,202,234,230,239,63,239,216,234, +218,229,185,222,79,214,237,211,78,218,9,227,234,233,57,241,36,249,33,254,5,255,149,252,150,246,83,238,81,231,238,227, +47,229,241,234,176,240,25,240,202,233,4,229,101,229,153,231,161,232,44,234,79,238,145,242,46,242,210,236,92,231,172,228, +63,227,210,227,161,234,53,247,3,3,6,10,47,13,30,13,40,10,148,7,148,8,61,12,23,15,188,13,156,6,134,252, +153,244,232,239,137,236,173,236,158,244,168,1,194,10,167,10,188,4,182,0,3,3,93,8,75,10,112,8,44,8,136,10, +150,10,10,7,14,5,26,8,111,13,36,16,193,13,35,8,172,4,214,6,130,11,26,13,219,10,9,8,9,6,7,4, +185,2,235,3,18,7,3,10,212,12,119,17,222,22,88,24,146,19,164,13,94,13,48,18,16,21,11,17,78,8,52,0, +119,251,212,249,214,250,90,254,229,2,214,5,19,6,111,5,50,6,3,8,23,9,12,10,168,13,8,20,44,25,15,26, +162,24,65,24,76,24,63,21,130,14,64,8,196,6,161,9,28,13,159,15,43,19,202,24,152,29,100,30,244,27,93,25, +86,24,15,25,233,26,89,27,250,22,10,14,178,5,99,3,254,7,180,14,154,15,230,6,238,251,116,251,165,7,189,20, +163,25,129,26,169,28,210,26,128,15,195,2,67,2,239,15,38,33,238,43,166,46,200,44,44,41,54,36,221,30,157,29, +199,35,14,44,212,44,49,37,73,29,169,24,249,18,4,12,169,10,89,16,113,21,201,21,8,22,90,25,143,28,32,30, +35,33,173,37,128,39,172,38,37,41,178,48,11,54,204,49,81,38,177,28,204,25,84,26,24,26,127,26,7,30,65,33, +154,30,66,23,209,17,40,17,18,19,152,22,26,29,208,37,164,45,168,50,97,52,36,51,136,49,92,50,47,51,24,46, +210,34,134,24,182,20,163,21,65,23,225,24,31,28,2,33,185,36,9,36,223,31,146,29,86,32,164,37,188,42,139,48, +21,54,26,54,29,48,74,43,13,42,99,37,148,27,130,22,100,27,73,34,72,37,162,40,141,45,123,45,191,39,168,35, +106,34,156,30,169,25,141,26,189,32,197,37,90,40,218,42,163,43,59,40,75,35,5,33,152,33,219,34,185,35,23,36, +17,36,111,36,118,38,55,42,207,44,27,42,8,34,33,26,22,23,152,23,94,24,30,25,176,26,29,29,213,33,67,42, +145,50,217,51,52,45,178,36,30,30,141,23,29,17,176,16,239,24,170,34,178,37,123,35,241,33,252,32,49,29,217,23, +107,20,232,18,189,18,153,21,160,27,254,34,86,43,0,51,189,52,91,47,200,40,145,35,85,27,208,15,223,6,171,1, +66,253,178,252,135,4,4,16,133,23,153,27,162,31,116,33,123,30,182,25,82,23,151,23,228,23,11,22,171,19,113,21, +44,28,145,34,87,36,130,32,14,21,178,3,240,247,241,249,212,0,253,0,78,254,74,1,90,7,60,12,252,19,31,31, +77,36,131,31,169,25,201,26,21,32,101,34,106,30,12,22,92,14,24,10,163,7,105,5,113,4,17,5,184,5,185,6, +115,9,240,11,229,11,238,11,40,15,254,18,117,19,191,17,178,17,208,19,186,20,230,16,151,8,98,0,144,252,100,253, +87,1,83,7,16,13,160,15,127,14,177,10,24,5,138,0,243,0,166,6,42,15,91,24,216,29,37,26,191,15,245,7, +156,5,247,3,77,2,212,3,206,6,1,7,176,4,224,1,19,255,40,253,31,252,164,250,40,251,33,1,189,7,184,7, +127,4,43,5,127,6,128,2,33,253,103,252,29,254,57,254,55,253,229,251,252,249,242,248,117,249,151,249,72,249,218,250, +160,253,12,254,5,251,35,246,80,240,86,234,105,231,79,235,15,245,221,253,48,0,242,253,140,251,60,248,183,241,104,235, +200,234,195,239,37,246,197,250,21,252,165,249,202,244,165,239,7,236,108,235,111,237,88,239,173,239,93,239,233,237,82,233, +21,227,16,224,129,226,178,231,213,235,97,238,222,241,242,246,171,249,240,246,133,241,61,237,94,233,46,228,200,222,168,218, +203,216,52,219,39,226,132,234,233,241,121,247,154,248,7,244,191,237,176,232,94,226,194,218,130,214,127,214,49,215,126,216, +204,220,15,227,55,232,98,234,235,232,71,230,30,231,54,235,12,237,107,234,74,230,193,226,177,223,10,221,184,218,55,217, +239,217,112,220,254,222,8,226,207,229,179,231,43,231,176,230,230,228,200,222,210,215,2,213,108,212,70,211,172,211,243,213, +58,215,99,216,157,219,54,222,30,222,59,222,105,223,153,222,192,219,185,217,69,217,101,218,120,221,35,224,182,223,240,221, +107,221,125,221,145,221,173,222,19,224,105,224,74,225,146,228,105,232,108,233,179,230,25,226,175,221,242,217,77,215,191,215, +142,219,140,222,64,221,144,217,141,214,213,212,126,213,218,217,135,223,231,226,68,228,240,229,10,232,246,232,221,231,16,230, +237,229,250,230,0,230,39,227,243,225,10,226,100,224,148,222,157,223,110,225,111,225,8,225,15,225,202,224,155,225,225,227, +178,228,41,228,5,230,62,234,148,237,232,238,154,237,135,233,159,230,1,231,250,229,151,226,251,227,157,234,39,237,30,233, +158,229,79,229,100,229,44,230,234,232,28,236,53,239,138,242,159,244,0,246,131,248,139,249,101,246,181,242,38,242,229,241, +187,238,201,233,233,228,240,225,83,227,2,232,240,235,217,238,79,243,238,247,5,249,45,247,126,246,92,248,48,249,126,245, +69,240,99,239,188,241,89,241,119,238,226,237,64,239,23,239,166,237,187,236,241,236,79,239,70,244,225,250,210,1,43,5, +113,1,125,252,216,252,173,250,84,239,255,232,91,245,226,9,35,20,85,10,104,234,145,197,98,186,108,200,8,207,243,199, +170,206,187,235,125,13,245,38,138,48,242,38,154,23,167,14,50,6,177,253,190,253,157,254,51,245,69,235,137,234,227,236, +124,239,48,245,187,249,114,250,90,253,171,4,168,10,70,10,181,3,92,253,238,253,214,0,120,252,39,244,5,242,157,244, +132,245,183,247,120,255,138,8,125,14,62,18,74,20,108,20,64,21,133,23,203,22,31,16,73,6,0,253,137,245,217,240, +27,240,146,242,125,246,182,251,56,2,15,7,47,7,181,4,96,4,183,6,202,8,239,9,48,11,117,11,119,9,205,6, +65,5,48,4,0,3,240,2,13,5,250,8,182,13,50,17,151,16,247,11,193,7,220,6,41,6,74,2,141,254,95,0, +140,6,20,11,173,11,234,10,170,10,144,10,146,10,250,10,1,11,79,10,61,10,129,11,199,12,41,13,155,13,127,14, +71,14,204,11,12,8,171,4,81,2,216,0,3,0,251,255,119,1,146,4,183,7,80,9,44,10,24,12,205,14,220,16, +124,18,58,20,49,20,75,16,59,10,136,5,254,2,109,1,29,1,164,2,56,4,24,4,217,3,165,5,47,8,10,9, +221,8,149,9,128,10,9,10,133,9,93,11,91,14,116,14,13,10,160,3,8,254,198,249,238,246,129,247,94,253,65,6, +164,12,152,13,144,11,213,9,15,8,1,5,176,2,166,3,49,6,247,6,135,6,126,7,132,8,215,5,95,0,107,253, +218,254,229,0,204,0,163,0,144,2,148,4,247,3,212,1,97,1,90,3,209,5,134,7,222,8,153,9,29,8,40,4, +20,0,188,253,191,251,114,248,35,246,197,248,112,255,36,4,68,3,185,255,207,253,79,253,133,251,159,248,108,247,179,248, +3,250,153,249,223,248,8,250,206,252,250,254,80,255,99,254,251,252,207,250,220,247,123,245,123,244,2,244,48,243,150,242, +42,243,53,245,212,248,215,253,120,2,246,3,125,1,157,253,171,251,247,251,242,251,52,250,80,248,240,247,64,248,125,247, +136,245,233,243,208,243,108,244,170,243,80,241,204,239,177,240,203,242,215,244,198,246,176,247,123,246,134,244,239,243,43,244, +145,243,72,242,111,241,100,241,225,241,64,242,26,242,90,242,195,243,228,244,32,244,89,242,17,241,25,240,250,238,78,238, +192,238,69,240,1,242,202,242,238,242,18,244,222,245,24,246,52,245,187,245,225,246,126,245,230,241,82,239,202,238,238,238, +242,238,91,239,38,241,75,244,176,246,145,246,92,245,34,245,37,245,249,243,27,242,106,240,68,239,10,239,215,238,53,237, +132,235,43,236,243,237,185,238,221,239,120,242,235,243,225,242,242,241,225,242,222,244,236,246,100,247,106,244,241,239,233,237, +244,237,68,237,56,237,236,240,110,246,141,248,208,245,146,241,6,239,163,237,130,235,210,233,90,235,56,239,71,242,138,244, +136,247,211,249,191,249,137,248,11,247,177,244,185,242,128,242,139,242,53,242,111,243,103,245,175,244,51,242,152,241,123,242, +1,243,129,244,36,247,106,247,90,244,57,241,182,239,224,238,245,238,11,241,175,244,152,248,152,251,164,252,199,251,233,249, +72,247,249,243,253,240,23,239,81,238,24,239,88,241,84,243,186,243,91,243,130,243,75,244,174,244,144,243,200,241,207,241, +177,243,236,244,180,245,34,248,56,250,165,248,139,245,94,244,215,243,181,242,169,242,213,242,216,241,62,244,252,251,113,255, +36,248,98,240,72,242,100,246,7,243,234,237,159,239,250,243,57,244,149,243,163,246,208,249,76,249,86,248,181,249,249,249, +12,247,154,244,82,244,163,242,230,238,147,237,181,239,98,241,171,241,80,243,135,246,168,249,248,252,9,0,99,0,65,254, +104,252,160,250,35,247,160,243,61,242,120,241,23,240,215,239,31,241,38,242,102,243,183,246,166,250,91,252,40,252,226,251, +81,251,156,249,160,247,177,246,197,246,224,246,54,246,217,244,176,243,81,243,54,243,24,243,56,244,155,247,218,251,146,254, +68,255,224,254,180,253,222,251,89,250,129,249,89,248,201,246,12,246,89,246,171,246,245,246,33,248,205,249,170,250,117,250, +235,249,169,249,2,250,147,250,0,250,236,247,79,246,180,246,181,247,216,247,185,248,29,252,204,255,7,0,224,252,253,249, +166,249,172,250,8,251,136,250,101,250,56,251,75,252,203,252,213,252,249,252,81,253,92,253,83,252,0,250,210,247,24,248, +5,251,200,253,35,254,62,253,54,253,232,253,35,254,22,254,121,254,235,254,217,254,157,254,166,254,214,254,43,255,193,255, +30,0,190,255,23,255,18,255,189,255,110,0,197,0,20,1,198,1,154,2,182,2,206,1,133,0,43,255,96,253,240,251, +199,252,194,255,48,2,1,3,24,4,255,5,116,6,198,4,26,3,231,1,73,255,56,252,225,252,28,2,164,7,61,10, +230,10,255,10,220,9,65,7,173,4,63,3,193,2,200,2,18,3,84,3,195,3,234,4,142,6,217,7,139,8,207,8, +122,8,182,7,93,7,130,7,13,7,175,5,98,4,93,3,216,1,114,0,30,1,250,3,211,6,69,8,234,8,68,9, +250,8,106,8,135,8,9,9,203,8,191,7,158,6,112,5,27,4,159,3,152,4,41,6,108,7,123,8,61,9,234,8, +159,7,183,6,236,6,181,7,151,8,146,9,80,10,92,10,227,9,68,9,143,8,24,8,97,8,1,9,25,9,215,8, +234,8,216,8,241,7,31,7,103,7,184,7,186,6,123,5,126,5,192,5,147,4,225,2,126,2,12,3,103,3,139,4, +227,7,2,12,243,13,17,13,70,11,8,10,17,9,231,7,34,7,184,7,113,9,221,10,16,11,163,10,34,10,161,8, +137,5,179,2,101,2,36,4,236,5,141,7,16,10,185,12,173,13,202,12,71,11,82,9,151,6,12,4,243,2,247,2, +53,3,234,3,140,5,159,7,172,9,195,11,6,13,185,11,213,7,184,3,102,1,161,0,108,0,178,0,141,1,90,2, +105,2,22,2,145,2,153,4,133,7,208,9,199,10,244,10,146,10,221,8,191,5,208,2,95,1,214,0,71,0,40,0, +15,1,77,2,47,3,26,4,35,5,64,5,17,4,209,2,121,2,140,2,121,2,152,2,32,3,178,3,82,4,86,5, +80,6,137,6,11,6,167,4,12,1,53,251,165,246,51,247,7,252,126,0,229,1,151,1,106,1,57,1,110,0,117,255, +184,254,11,254,126,253,104,253,195,253,250,254,96,2,206,7,9,12,24,12,13,9,241,5,128,3,215,0,119,254,70,253, +91,252,251,250,228,250,143,253,79,1,236,3,150,5,184,6,246,5,57,3,153,1,93,3,153,6,76,8,79,8,231,7, +186,6,181,3,136,255,91,252,149,251,206,252,105,254,206,254,191,253,186,252,139,253,30,0,101,2,189,2,197,1,6,1, +176,0,50,0,52,0,230,1,172,4,194,6,222,7,221,8,68,9,196,7,210,4,75,2,217,0,185,255,131,254,159,253, +132,253,104,254,217,255,218,0,107,1,247,2,181,5,93,7,121,6,137,4,249,2,224,0,226,253,224,251,210,251,69,252, +128,252,172,253,213,255,99,1,37,2,118,3,64,5,3,6,135,5,217,4,47,4,0,3,78,1,94,255,28,253,152,250, +69,248,161,246,76,246,185,247,47,250,100,252,95,254,241,0,103,3,241,3,106,2,119,0,48,255,132,254,72,254,84,254, +68,254,10,254,190,253,252,252,191,251,63,251,41,252,49,253,34,253,218,252,133,253,58,254,210,253,209,252,19,252,228,251, +81,252,183,252,70,252,227,251,133,253,22,1,190,3,61,3,201,0,5,255,92,254,202,253,85,253,13,253,102,252,206,251, +111,251,170,249,232,246,157,246,23,249,144,250,41,250,128,250,171,251,178,251,248,250,239,250,34,251,199,250,109,250,174,250, +87,251,26,252,215,252,87,253,77,253,159,252,147,251,126,250,98,249,65,248,169,247,255,247,198,248,117,249,47,250,229,250, +109,251,130,252,73,254,209,254,69,253,27,252,185,252,232,252,60,251,40,249,202,247,116,247,213,248,239,250,137,251,90,251, +174,252,149,254,245,254,141,254,81,254,18,253,11,251,123,250,22,251,71,250,62,248,167,247,22,249,236,250,30,252,133,252, +85,252,20,252,151,251,82,250,0,249,134,248,180,248,213,249,196,251,71,252,126,251,255,252,238,255,138,255,60,253,161,253, +188,254,107,253,93,252,4,253,189,252,160,251,131,251,125,251,31,251,118,251,55,252,155,253,68,0,22,2,244,1,5,2, +55,2,24,1,84,0,72,0,240,254,249,253,42,255,15,0,133,0,97,1,168,254,75,250,187,253,105,5,117,4,196,254, +65,0,26,4,168,1,199,254,161,0,39,1,111,253,132,250,80,251,239,253,209,255,133,0,216,1,97,3,33,2,137,255, +168,255,181,0,118,255,93,254,110,255,107,0,120,0,97,0,211,255,134,255,42,0,212,255,81,254,86,254,152,255,121,255, +91,254,21,254,222,254,51,0,54,1,30,1,107,0,153,255,213,254,124,255,158,1,172,2,99,2,5,3,185,3,75,2, +82,0,235,255,255,255,114,255,244,254,232,254,226,254,131,254,209,253,140,253,29,254,175,254,166,254,105,254,98,254,255,254, +140,0,96,2,206,3,135,4,181,3,165,1,115,0,64,0,61,255,69,254,86,255,15,1,138,1,185,1,68,2,13,2, +7,1,93,0,93,0,90,0,209,255,79,255,220,255,25,1,214,1,95,2,94,3,61,4,231,4,254,5,182,6,51,6, +120,5,79,5,75,5,98,5,103,5,114,4,200,2,209,1,7,2,225,2,146,3,70,3,117,2,204,2,144,4,66,6, +58,7,100,8,75,10,134,11,3,10,71,6,124,3,31,3,140,3,173,3,76,4,148,5,178,6,92,7,180,7,112,7, +112,6,116,5,77,5,250,5,166,6,106,6,122,5,79,5,130,6,107,7,159,6,168,5,181,6,247,8,245,9,67,9, +105,8,90,8,5,9,26,10,225,10,163,10,205,9,81,9,2,9,58,8,94,7,48,7,117,7,157,7,183,7,237,7, +60,8,185,8,38,9,252,8,182,8,124,9,207,10,235,10,235,9,132,9,134,9,90,8,218,6,111,7,181,9,252,10, +208,10,10,11,238,11,224,11,162,10,193,9,242,9,0,10,204,8,250,6,24,6,127,6,13,7,16,7,55,7,252,7, +207,8,189,9,195,11,153,14,60,16,170,15,18,14,159,12,47,11,181,9,184,8,51,8,159,7,20,7,2,7,45,7, +45,7,80,7,247,7,188,8,6,9,209,8,136,8,129,8,202,8,49,9,136,9,252,9,171,10,36,11,25,11,25,11, +181,11,83,12,244,11,198,10,229,9,189,9,179,9,49,9,144,8,186,8,206,9,165,10,46,10,221,8,248,7,200,7, +210,7,69,8,139,9,16,11,238,11,34,12,243,11,27,11,150,9,99,8,4,8,189,7,84,7,81,7,242,7,202,8, +2,9,27,8,2,7,54,7,16,8,147,7,71,6,64,6,239,6,143,6,27,6,93,7,42,9,136,9,254,8,75,8, +139,6,243,3,176,2,249,3,103,6,197,7,172,7,31,7,249,6,143,7,116,7,162,5,92,5,34,8,17,9,153,6, +35,5,179,4,154,2,156,1,186,3,178,4,70,3,75,4,10,8,187,9,203,9,38,11,246,10,59,7,99,4,15,4, +184,2,154,1,135,4,168,7,75,6,0,5,126,7,93,8,96,5,87,4,249,5,254,4,158,2,92,3,60,4,247,1, +230,0,144,2,103,1,72,253,174,252,206,0,112,6,175,12,11,16,246,10,141,2,217,1,144,6,64,7,251,7,138,17, +254,27,94,24,178,7,198,247,121,242,109,249,226,4,56,5,40,245,229,226,126,217,197,211,213,207,236,213,197,229,89,246, +95,7,193,28,159,48,219,60,175,69,208,76,239,74,65,62,237,45,153,29,101,13,41,0,44,245,160,231,33,220,117,221, +79,233,246,243,35,252,72,7,234,17,255,21,128,22,124,23,46,23,170,20,11,16,221,6,253,247,210,233,227,230,31,241, +222,252,116,0,184,0,9,3,30,2,224,251,181,247,141,249,205,255,63,9,14,17,67,17,249,12,96,11,188,13,79,17, +101,17,2,10,105,0,130,253,102,255,13,0,207,1,17,7,228,10,56,9,198,2,243,250,229,247,124,252,39,3,169,6, +138,8,71,10,23,10,136,7,23,4,26,0,211,250,4,246,17,247,75,255,246,6,221,8,50,10,140,13,185,12,242,6, +10,4,152,6,161,9,231,9,216,7,212,4,108,2,26,1,87,0,9,1,181,4,162,9,21,11,202,7,208,4,212,4, +245,2,143,253,34,251,129,253,191,254,144,253,188,253,40,255,204,255,86,0,41,2,246,4,133,5,110,1,63,253,211,252, +3,251,136,246,58,246,121,247,2,243,147,239,100,243,112,246,48,247,95,254,50,9,208,13,128,11,53,5,120,253,13,248, +80,244,51,241,52,242,35,246,255,249,76,254,44,252,175,244,56,251,48,1,230,223,129,193,41,241,233,53,58,37,148,238, +214,243,161,7,202,230,163,202,169,225,52,245,115,234,214,233,107,250,236,255,85,250,136,246,26,243,201,240,227,242,162,245, +239,247,73,252,249,255,153,254,195,247,62,240,246,238,15,243,207,245,230,247,44,252,23,254,71,252,236,250,190,248,209,244, +131,243,107,242,51,237,193,234,213,239,187,245,214,249,217,254,173,1,111,1,16,3,176,3,155,252,222,242,220,239,206,242, +139,245,241,245,145,244,132,241,192,238,127,240,88,246,106,250,89,252,131,0,160,2,168,252,81,245,161,243,227,243,52,245, +206,249,118,251,209,247,118,247,89,250,205,248,72,246,104,247,181,246,120,244,9,247,14,251,31,252,173,253,26,254,113,249, +138,246,108,250,28,254,35,254,146,254,166,254,220,251,10,249,72,247,84,244,242,241,95,243,250,246,191,249,197,251,124,253, +46,253,142,250,71,249,112,251,94,253,67,252,174,250,66,250,176,249,141,249,160,250,133,251,216,252,236,255,223,1,91,0, +227,253,48,252,50,250,56,248,67,247,75,247,199,248,125,251,54,253,255,252,42,252,140,251,44,251,67,251,160,251,149,251, +228,250,139,250,21,252,235,254,253,255,185,253,255,249,237,247,184,248,72,250,199,250,174,250,119,251,21,253,47,254,95,254, +190,254,244,255,12,1,6,1,131,0,165,0,206,0,31,255,111,251,54,248,163,247,224,248,140,249,81,249,78,250,176,253, +146,1,77,3,224,2,119,2,19,3,95,3,66,2,9,1,168,1,181,3,177,4,80,3,32,1,82,0,247,0,100,1, +173,0,164,255,100,255,22,0,100,1,54,3,58,5,73,6,93,5,32,3,153,1,250,1,67,3,167,3,185,2,186,1, +215,1,230,2,235,3,82,4,69,4,31,4,9,4,6,4,6,4,216,3,68,3,61,2,221,0,68,255,204,253,69,253, +126,254,59,1,249,3,57,5,237,4,75,4,36,4,1,4,9,3,83,1,210,255,54,255,98,255,249,255,206,0,152,1, +196,1,34,1,117,0,190,0,234,1,200,2,118,2,92,1,111,0,220,255,23,255,9,254,126,253,33,254,139,255,209,0, +160,1,99,2,70,3,195,3,96,3,121,2,225,1,238,1,50,2,45,2,209,1,82,1,176,0,199,255,177,254,202,253, +92,253,107,253,215,253,134,254,81,255,254,255,99,0,141,0,156,0,184,0,5,1,138,1,39,2,168,2,217,2,135,2, +148,1,32,0,121,254,250,252,7,252,240,251,165,252,215,253,65,255,180,0,243,1,150,2,50,2,220,0,67,255,234,253, +217,252,48,252,78,252,48,253,105,254,157,255,107,0,145,0,81,0,238,255,27,255,197,253,133,252,180,251,64,251,128,251, +185,252,49,254,20,255,124,255,203,255,4,0,4,0,138,255,137,254,174,253,139,253,152,253,48,253,182,252,173,252,212,252, +201,252,135,252,79,252,179,252,225,253,2,255,81,255,7,255,109,254,118,253,167,252,165,252,8,253,35,253,48,253,171,253, +149,254,142,255,215,255,2,255,224,253,80,253,212,252,228,251,89,251,4,252,118,253,214,254,133,255,98,255,69,255,226,255, +94,0,231,255,75,255,57,255,50,255,73,255,20,0,189,0,23,0,171,254,131,253,197,252,111,252,116,252,69,252,3,252, +138,252,119,253,142,253,57,253,238,253,158,255,206,0,154,0,127,255,163,254,142,254,153,254,53,254,210,253,201,253,234,253, +94,254,47,255,133,255,250,254,52,254,134,253,1,253,72,253,31,254,63,254,196,253,19,254,132,254,123,253,50,252,218,252, +160,254,122,255,47,255,70,254,57,253,17,253,1,254,192,254,167,254,112,254,171,254,38,255,75,255,178,254,207,253,64,253, +221,252,199,252,112,253,226,253,250,252,219,251,209,251,251,251,178,251,240,251,210,252,60,253,37,253,112,253,254,253,216,253, +204,252,218,251,218,251,109,252,239,252,153,253,182,254,175,255,178,255,145,254,19,253,98,252,243,252,160,254,199,0,7,1, +131,253,154,249,2,250,197,252,116,253,143,253,129,255,88,0,84,254,114,252,203,251,66,251,104,252,124,255,3,0,18,252, +31,248,36,248,239,250,51,253,175,253,149,253,152,253,14,253,1,253,11,255,174,0,80,255,10,254,6,255,27,254,235,249, +98,248,74,252,156,0,226,0,71,254,83,252,242,252,36,255,214,0,73,1,50,0,141,253,49,251,121,250,77,250,215,250, +80,253,33,255,192,253,98,252,93,253,40,253,55,250,92,248,131,249,206,251,47,254,195,0,175,2,184,2,38,1,32,0, +170,0,94,0,139,253,27,250,66,247,250,244,6,246,109,251,184,255,233,254,132,252,225,252,14,255,151,254,56,250,62,248, +116,253,8,3,52,2,210,255,129,255,50,253,180,249,132,249,5,252,124,0,241,4,74,3,179,254,150,255,177,0,86,253, +111,253,60,255,209,251,130,250,233,252,6,253,45,1,120,4,134,251,64,252,143,10,87,250,171,218,57,242,51,38,99,32, +132,243,188,227,197,229,114,220,31,222,254,244,113,7,221,12,179,15,100,18,90,21,40,24,53,19,85,7,44,0,79,254, +187,249,138,245,237,246,234,245,206,237,51,234,161,241,46,249,107,250,223,252,225,2,207,5,81,5,188,5,126,6,47,6, +34,5,151,2,15,0,169,255,200,254,61,253,184,254,138,255,72,251,117,248,132,250,112,251,190,251,164,254,117,254,227,250, +222,251,82,255,164,254,49,251,3,247,201,245,120,252,205,1,184,252,159,250,74,3,248,6,205,0,25,254,119,0,148,0, +154,255,143,255,202,254,169,253,176,251,123,248,67,248,194,251,12,253,32,251,159,250,138,251,127,251,10,252,251,253,114,254, +231,252,140,252,91,254,143,255,136,254,122,253,142,254,199,255,110,254,127,252,50,253,39,254,145,252,124,252,26,1,213,4, +144,2,29,254,37,252,90,251,87,250,186,250,126,252,200,253,29,254,133,253,68,252,24,252,43,253,73,253,37,253,45,255, +84,1,245,0,48,0,219,255,120,253,250,250,108,252,12,255,6,254,26,250,93,246,29,246,21,253,100,8,216,14,72,14, +70,12,199,7,140,250,111,233,20,227,203,235,148,247,21,252,23,253,70,0,97,0,82,247,251,234,84,229,176,231,71,236, +102,238,98,238,105,240,185,247,24,3,80,14,9,22,164,26,66,30,130,30,190,22,172,10,76,3,63,1,105,255,2,254, +181,254,237,254,167,253,182,252,186,251,211,249,243,247,201,246,158,247,168,251,18,0,252,1,168,3,28,7,160,10,202,12, +210,12,11,10,61,6,159,2,72,254,195,251,231,253,163,0,53,1,204,3,204,7,20,7,149,3,71,3,235,3,247,1, +96,0,139,0,54,0,36,1,215,5,211,9,52,8,215,4,133,5,116,7,72,5,180,1,155,1,213,2,188,2,82,4, +149,8,139,11,89,11,69,9,125,6,174,4,50,4,235,2,114,1,152,2,120,4,27,5,9,5,195,6,149,7,8,1, +42,250,224,253,34,2,207,252,13,250,247,255,15,3,41,1,207,1,83,5,239,8,226,11,246,13,221,14,241,11,2,8, +244,10,124,12,91,1,168,250,196,5,128,13,54,7,48,5,27,10,96,8,100,2,29,1,168,4,116,9,182,9,205,4, +245,3,154,9,186,12,21,8,208,255,113,253,13,3,71,5,19,3,251,7,200,11,144,2,124,251,134,253,47,250,141,246, +184,252,40,255,184,251,116,255,133,5,192,9,230,16,17,17,245,9,136,12,60,18,129,16,77,19,225,20,104,10,174,8, +26,14,56,1,216,249,17,8,167,250,41,217,245,243,210,50,29,45,92,245,108,235,2,255,93,235,116,207,189,226,243,1, +33,1,7,248,71,250,121,254,75,13,26,34,40,31,120,18,242,25,255,32,203,25,162,20,6,8,77,246,54,252,79,1, +185,235,100,230,214,245,98,241,83,242,86,1,83,230,226,192,184,217,167,11,216,51,11,95,187,78,64,245,173,208,227,244, +254,244,156,217,134,226,12,244,178,252,57,2,188,240,153,241,29,30,79,25,81,228,18,251,23,53,120,28,173,244,185,8, +177,15,178,242,34,233,77,236,35,236,82,246,27,250,208,247,159,9,40,21,89,4,214,252,109,8,167,11,64,6,16,254, +137,246,166,253,13,4,179,248,129,250,245,14,250,13,66,255,0,3,149,8,112,2,101,1,223,2,177,255,222,1,101,5, +173,2,45,2,78,3,204,0,31,1,234,2,102,1,253,1,66,0,112,246,88,242,29,249,216,254,15,4,5,12,99,13, +105,6,188,254,218,250,176,253,85,1,75,252,157,247,239,253,111,5,194,6,222,5,174,1,252,251,250,251,235,254,66,0, +108,1,21,0,90,252,40,251,45,250,30,249,145,253,4,1,0,252,104,247,115,248,113,249,134,249,53,248,75,244,125,244, +251,249,132,253,200,255,154,2,148,3,142,6,115,9,253,2,44,252,234,255,63,1,41,250,49,248,80,251,77,250,24,248, +172,246,113,244,156,245,252,248,39,250,218,252,117,0,218,255,163,255,65,2,27,2,152,0,126,0,244,254,136,254,178,0, +72,255,2,252,126,252,84,252,211,249,3,250,71,251,101,251,63,253,145,255,222,255,251,253,21,252,148,251,166,251,119,251, +122,251,114,251,61,250,193,248,157,249,184,252,229,254,154,254,74,253,33,252,42,251,217,250,107,251,226,251,150,251,42,251, +101,251,112,252,123,253,202,252,123,250,227,249,118,252,92,254,218,252,38,251,244,251,110,252,76,250,37,248,99,248,25,250, +248,251,24,253,52,252,35,250,153,249,130,250,182,250,244,250,245,252,189,254,14,254,231,252,105,253,216,253,118,252,150,250, +142,249,206,248,232,247,167,247,17,249,47,252,112,255,254,0,243,0,97,0,247,254,123,252,175,250,210,250,189,251,88,252, +245,252,186,253,118,254,10,255,180,254,120,253,63,253,245,253,156,252,182,249,178,249,79,252,12,253,128,252,13,254,62,255, +85,253,207,252,36,0,65,1,120,253,40,251,34,253,132,254,156,253,132,253,28,254,135,253,10,253,100,253,81,253,207,253, +161,255,182,255,210,253,177,254,230,1,142,1,138,254,229,254,88,1,223,0,62,255,77,255,29,254,109,251,120,252,118,0, +184,0,237,253,58,254,89,0,82,255,236,253,249,0,231,4,87,4,201,1,170,1,48,2,190,0,91,255,124,255,11,255, +222,253,149,254,116,0,15,0,178,254,123,0,60,3,253,1,188,255,82,1,75,2,8,255,49,254,165,1,164,1,67,255, +240,1,26,5,198,2,8,1,161,2,180,2,118,2,33,3,24,1,247,255,191,2,73,2,43,255,138,0,150,1,108,255, +249,0,27,3,216,0,162,1,100,5,244,2,91,253,130,253,81,4,123,10,235,5,230,252,164,1,97,11,106,4,49,250, +26,0,22,6,161,0,208,254,146,2,24,1,231,254,147,1,220,4,167,7,215,7,107,3,123,2,63,5,92,1,161,254, +202,7,7,10,68,249,38,243,90,11,121,31,43,16,54,252,252,5,205,13,93,247,216,236,21,3,251,10,91,253,143,2, +118,14,57,6,151,1,104,8,24,3,207,251,204,2,51,7,67,4,105,6,119,8,22,7,97,9,45,8,243,255,22,255, +155,5,195,6,177,6,14,11,81,11,226,6,225,5,176,5,239,1,118,255,181,0,225,2,76,5,214,6,116,5,81,3, +185,3,92,6,167,8,243,7,1,5,115,4,241,6,13,8,97,7,165,7,131,7,140,5,22,4,75,4,31,5,242,5, +110,5,101,3,10,3,252,4,71,5,72,3,185,2,121,4,183,5,202,4,132,3,188,4,226,6,175,5,65,3,206,4, +226,6,100,4,178,2,43,6,45,8,114,5,253,3,19,5,112,4,238,2,218,2,118,2,245,1,92,3,140,4,147,3, +235,2,202,3,136,4,81,5,245,6,232,7,222,6,211,4,80,3,186,2,24,2,225,0,198,0,202,2,116,4,157,3, +240,1,200,1,21,3,87,4,142,4,80,4,186,4,22,5,36,4,235,2,210,2,24,3,213,2,116,2,154,2,191,3, +74,5,33,5,35,3,22,2,219,2,141,3,131,3,22,3,42,2,199,1,161,2,7,3,159,2,88,3,122,4,27,4, +190,3,127,4,57,4,232,2,215,2,32,3,232,1,140,0,64,0,23,0,224,255,181,255,249,254,143,254,140,255,106,0, +89,0,58,1,18,3,118,3,99,2,192,1,141,1,245,0,105,0,36,0,188,255,115,255,116,255,59,255,50,255,88,0, +225,1,73,2,225,1,127,1,169,0,140,255,139,255,91,0,128,0,29,0,6,0,241,255,204,255,16,0,39,0,200,255, +11,0,164,0,29,0,89,255,235,255,139,0,207,255,250,254,26,255,125,255,214,255,81,0,163,0,227,0,97,1,159,1, +70,1,174,0,6,0,144,255,147,255,79,255,50,254,133,253,38,254,183,254,104,254,104,254,12,255,30,255,165,254,182,254, +197,254,14,254,53,254,43,0,90,1,78,0,136,255,227,255,22,255,153,253,199,253,71,254,141,253,219,253,117,255,67,255, +163,253,59,253,18,253,227,251,105,251,15,252,133,252,252,252,94,253,206,252,104,252,204,252,157,252,187,252,104,254,223,254, +45,253,244,252,231,253,53,252,179,249,246,249,239,250,215,250,148,251,156,252,35,252,225,251,187,252,228,252,7,253,119,254, +244,254,103,253,111,252,147,252,165,251,245,249,141,249,71,250,148,250,8,250,161,249,118,250,93,252,23,254,119,254,73,253, +27,252,194,252,21,254,145,253,11,252,134,251,29,251,36,250,77,250,123,251,200,251,93,251,19,251,206,250,35,251,240,251, +155,251,185,250,239,250,21,251,153,250,50,251,173,251,11,250,48,249,27,251,79,252,72,251,181,250,194,250,41,250,119,250, +16,252,92,252,29,251,209,250,225,251,85,252,88,251,101,250,186,250,36,251,0,251,25,252,138,253,8,252,212,249,7,251, +94,252,228,250,170,250,137,251,37,249,171,248,18,255,46,2,163,251,70,247,20,251,97,252,20,248,112,247,30,251,7,252, +197,250,107,251,161,252,142,252,28,252,161,251,74,251,4,252,100,253,112,254,69,255,160,255,233,254,220,253,70,253,159,252, +141,251,223,250,76,251,68,252,120,252,208,251,187,251,199,252,222,253,90,254,139,254,182,254,252,254,37,255,159,254,203,253, +150,253,174,253,138,253,170,253,243,253,203,253,12,254,63,255,220,255,86,255,67,255,235,255,210,255,200,254,57,254,172,254, +234,254,223,253,159,252,191,252,94,253,6,253,208,252,239,253,68,255,1,0,137,0,136,0,15,0,57,0,140,0,1,0, +185,255,54,0,228,255,239,254,221,254,250,254,161,254,30,255,12,0,236,255,229,255,186,0,132,0,160,255,120,0,134,1, +64,0,1,255,10,0,204,0,229,255,209,255,192,0,29,0,73,254,193,253,83,254,183,254,47,255,168,255,228,255,186,0, +208,1,189,1,92,1,189,1,55,1,121,255,44,255,119,0,122,0,228,254,253,253,100,254,1,255,88,255,207,255,182,0, +181,1,60,2,60,2,249,1,173,1,135,1,44,1,95,0,42,0,21,1,181,1,51,1,91,0,125,255,198,254,58,255, +134,0,112,1,124,2,235,3,223,3,252,1,98,0,251,255,1,0,246,255,172,255,120,255,200,255,245,255,27,0,161,1, +43,3,222,1,70,255,167,254,102,255,88,0,2,2,205,2,103,1,35,1,225,3,143,5,185,3,154,1,61,1,212,0, +13,0,190,0,42,2,239,1,246,0,88,1,149,1,130,0,188,0,17,2,149,0,28,254,235,255,161,3,59,4,180,3, +127,4,91,4,210,2,40,1,191,254,201,253,141,1,231,5,5,5,100,1,27,0,34,1,174,1,5,0,99,254,82,1, +41,6,7,5,254,255,179,255,251,2,179,3,2,3,74,3,220,2,217,1,119,1,217,0,215,0,133,2,99,3,192,2, +57,3,80,4,244,3,66,3,26,3,110,2,104,1,249,0,0,1,37,1,155,0,1,0,37,1,123,2,197,2,136,4, +239,6,177,6,78,5,220,3,167,1,28,1,83,255,73,249,147,253,147,17,171,25,190,10,130,255,23,254,33,244,220,233, +8,238,124,245,148,249,120,255,90,4,236,9,109,18,42,18,248,9,237,8,14,12,109,11,106,12,94,13,181,7,186,0, +24,253,246,249,23,246,42,241,248,236,112,239,70,249,154,3,108,8,183,7,112,7,153,10,95,12,165,13,53,20,131,23, +57,13,6,0,176,251,94,250,54,247,16,246,185,247,13,250,179,250,132,249,232,253,190,9,17,17,154,16,189,15,239,9, +53,252,93,244,245,246,48,251,41,0,184,2,105,252,67,248,192,254,8,6,66,13,121,20,250,15,98,14,234,28,240,19, +135,246,46,24,154,99,38,74,11,201,0,128,0,128,43,131,54,138,1,192,84,7,127,43,245,52,248,67,176,96,232,119, +230,106,99,63,218,40,224,51,109,40,215,237,171,181,215,164,98,169,112,174,68,180,183,188,140,199,154,213,232,231,53,0, +11,22,28,26,76,21,54,31,134,47,176,45,27,34,67,31,220,26,189,11,199,0,190,252,149,249,156,3,248,24,72,28, +172,11,84,1,250,250,157,233,180,218,53,218,43,222,155,225,200,223,85,209,147,205,23,236,119,11,28,10,193,5,48,23, +108,36,114,34,10,34,138,30,13,21,249,24,133,29,237,1,218,220,254,216,43,231,5,232,171,226,80,220,154,201,223,185, +98,196,131,216,185,219,103,214,0,222,8,243,53,6,210,16,197,31,33,56,198,61,131,32,219,1,141,242,149,204,170,141, +0,128,213,152,104,193,223,208,16,217,124,229,15,250,135,34,201,85,207,106,56,64,198,241,61,210,14,250,92,16,252,232, +81,225,74,29,246,42,57,232,137,205,16,0,101,30,91,11,168,4,12,24,12,34,178,19,86,245,231,222,103,227,45,239, +85,237,166,240,240,2,84,13,228,9,61,8,208,11,230,15,179,14,125,4,135,1,177,18,180,30,14,16,136,253,47,0, +13,16,39,21,10,252,38,202,231,156,136,131,0,128,63,152,183,198,180,230,80,247,117,10,244,20,178,28,121,52,148,47, +234,248,180,243,103,71,99,113,81,53,204,7,136,26,44,21,104,232,169,229,8,22,26,52,23,33,65,251,93,231,239,231, +64,227,111,211,50,209,195,226,59,245,227,4,52,21,142,24,185,10,0,0,219,3,141,11,42,13,17,10,110,8,98,14, +11,27,163,34,143,26,125,8,218,252,86,253,5,255,153,249,240,243,233,245,250,248,16,242,85,230,204,231,233,248,67,5, +170,0,238,247,44,249,99,3,25,18,208,34,141,46,46,44,126,26,72,6,33,255,234,0,54,252,226,245,221,250,74,0, +192,249,195,241,42,237,195,230,147,236,81,5,152,19,200,10,181,7,198,16,239,10,0,249,211,245,247,252,114,252,108,253, +65,10,87,19,45,12,112,255,175,247,159,243,132,245,84,1,163,12,158,10,250,1,34,0,149,3,28,6,240,10,17,20, +29,25,83,18,57,6,35,5,176,17,40,25,142,17,2,9,227,7,245,5,183,3,104,7,73,10,138,7,55,4,58,254, +67,245,250,244,165,251,212,250,155,246,239,248,76,251,151,253,104,9,147,21,62,21,108,17,221,17,43,18,122,22,57,32, +156,31,123,16,115,3,42,254,248,248,221,245,37,250,223,255,105,0,22,255,242,255,29,3,231,4,75,3,185,1,180,1, +112,2,102,7,138,14,151,14,145,10,172,10,191,8,223,3,145,7,60,13,240,8,233,7,99,16,158,22,122,39,110,71, +25,67,100,6,121,210,29,203,48,203,200,203,199,226,164,242,226,223,25,205,215,206,88,205,156,201,156,214,158,232,0,247, +249,19,75,64,85,100,220,116,84,120,75,121,194,122,180,110,115,75,218,31,137,246,1,201,103,160,70,143,218,142,12,146, +91,158,119,180,82,202,34,226,131,0,60,27,174,42,33,53,145,65,120,79,185,86,38,78,128,57,62,38,81,26,5,19, +18,12,169,4,220,5,7,18,239,17,217,250,145,236,161,246,132,247,94,228,227,223,90,237,160,233,129,213,115,209,92,224, +151,238,19,249,212,7,203,27,234,47,114,62,231,69,237,72,102,70,172,58,7,39,143,15,240,248,115,231,91,216,60,200, +233,191,125,198,118,211,75,226,150,248,210,14,228,23,15,27,73,34,30,36,158,27,201,21,50,23,108,22,75,18,108,16, +4,14,17,6,15,251,227,241,182,237,29,240,66,246,45,251,136,254,236,1,117,3,120,2,66,2,185,3,52,5,223,7, +2,12,14,14,57,14,143,16,1,19,252,16,86,14,59,16,57,18,118,14,234,6,69,255,22,249,109,246,161,245,67,241, +186,235,125,237,106,244,5,247,149,246,44,250,129,254,156,253,125,252,204,1,61,10,93,15,193,15,60,14,160,15,10,21, +61,23,4,17,38,9,83,6,232,3,174,253,80,247,106,241,166,233,174,229,223,234,57,242,84,245,218,248,55,254,117,255, +37,255,255,4,43,12,214,11,115,8,204,8,239,8,22,6,194,4,138,4,90,1,209,254,68,0,96,255,87,249,247,245, +67,248,254,249,137,249,27,250,155,249,3,246,104,244,79,247,230,249,230,250,69,254,6,3,131,4,149,3,203,3,104,4, +30,3,87,0,207,253,3,253,38,254,211,254,74,253,231,251,142,252,197,252,39,251,111,250,114,251,141,251,117,250,109,250, +78,251,103,251,225,250,117,250,34,250,100,250,52,251,18,251,220,249,102,249,231,249,237,249,160,249,10,250,175,250,13,251, +239,251,147,253,31,255,244,255,216,255,246,254,69,254,199,253,182,251,217,247,34,245,105,245,173,246,144,246,110,245,191,244, +63,245,221,246,216,248,143,250,164,252,120,255,151,1,243,1,147,1,235,0,216,254,189,251,178,249,6,249,80,248,80,247, +115,246,96,245,80,244,52,244,212,244,123,245,164,246,125,248,254,249,34,251,199,252,22,254,228,253,80,253,128,253,83,253, +72,252,246,251,176,252,176,252,95,251,224,249,229,248,113,248,61,248,104,247,2,246,10,246,81,248,175,250,155,251,85,252, +167,253,79,254,186,253,5,253,243,252,56,253,93,253,255,252,36,252,101,251,179,250,37,249,219,246,104,245,177,245,2,247, +86,248,48,249,134,249,165,249,204,249,235,249,20,250,121,250,220,250,248,250,22,251,103,251,211,251,153,252,202,253,170,254, +1,255,153,255,77,0,243,255,166,254,123,253,98,252,207,250,35,249,143,247,206,245,162,244,222,244,160,245,57,246,142,247, +153,249,230,250,166,251,64,253,30,255,217,255,221,255,150,255,4,254,86,251,85,249,137,248,92,248,3,249,66,250,191,250, +99,250,45,250,146,249,222,247,191,246,169,247,63,249,25,250,233,250,76,252,138,253,38,254,41,254,130,253,192,252,159,252, +142,252,213,251,126,251,170,252,116,254,80,255,245,254,237,253,201,252,209,251,206,250,178,249,128,249,6,251,56,253,146,254, +60,255,50,0,77,1,96,1,203,255,61,253,246,250,125,249,138,248,64,248,57,249,30,251,211,252,5,254,253,254,109,255, +34,255,11,255,7,0,126,1,35,2,142,1,185,0,194,0,45,1,135,0,9,255,82,254,81,254,148,253,129,252,112,252, +165,252,10,252,212,251,12,253,121,254,81,255,68,0,0,1,168,0,62,0,213,0,81,1,203,0,24,0,153,255,17,255, +60,255,65,0,190,0,187,0,127,1,192,1,175,255,231,253,104,255,42,1,21,255,198,251,24,252,19,255,157,0,28,0, +185,255,89,0,52,1,12,1,86,255,149,253,29,254,171,0,187,2,105,3,232,3,147,4,154,4,182,3,10,2,204,255, +68,254,213,254,112,0,229,0,167,0,169,1,15,3,13,2,229,254,220,252,57,253,255,253,215,253,214,253,249,254,136,0, +166,1,144,2,132,3,202,3,219,2,223,1,151,2,181,4,220,5,240,4,83,3,109,2,30,2,251,1,27,2,77,2, +51,2,41,2,182,2,110,3,116,3,160,2,125,1,143,0,1,0,202,255,20,0,31,1,61,2,23,2,212,0,82,0, +16,1,79,1,113,0,53,0,75,1,40,2,57,2,152,2,63,3,35,3,210,2,125,3,100,4,112,4,114,4,61,5, +201,5,65,5,68,4,13,3,86,1,19,0,71,0,228,0,141,0,248,255,64,0,242,0,111,1,8,2,193,2,71,3, +243,3,237,4,106,5,71,5,98,5,68,5,116,3,175,0,87,255,195,255,114,0,13,1,14,2,227,2,64,3,34,4, +92,5,18,5,42,3,216,1,217,1,202,1,120,1,29,2,85,3,107,3,114,2,14,2,146,2,178,2,208,1,217,0, +239,0,20,2,42,3,81,3,3,3,44,3,160,3,129,3,204,2,46,2,238,1,23,2,194,2,108,3,61,3,151,2, +186,2,146,3,200,3,55,3,36,3,210,3,19,4,125,3,242,2,176,2,217,1,92,0,127,255,232,255,161,0,211,0, +38,1,94,2,197,3,38,4,148,3,21,3,27,3,103,3,218,3,82,4,120,4,90,4,117,4,148,4,189,3,206,1, +37,0,232,255,127,0,179,0,193,0,191,1,77,3,233,3,98,3,228,2,174,2,245,1,211,0,121,0,56,1,216,1, +146,1,87,1,4,2,173,2,68,2,116,1,69,1,127,1,179,1,35,2,205,2,14,3,191,2,151,2,14,3,93,3, +141,2,55,1,216,0,83,1,61,1,133,0,116,0,70,1,12,2,104,2,169,2,202,2,117,2,217,1,201,1,160,2, +98,3,8,3,82,2,158,2,128,3,134,3,189,2,76,2,72,2,219,1,4,1,110,0,251,255,65,255,244,254,198,255, +188,0,200,0,161,0,0,1,249,0,255,255,96,255,47,0,135,1,230,1,84,1,69,1,39,2,69,2,176,0,87,255, +221,255,193,0,47,0,13,255,23,255,72,0,72,1,85,1,47,1,223,1,202,2,177,2,2,2,210,1,223,1,181,1, +163,1,126,1,207,0,46,0,76,0,140,0,235,255,132,254,190,253,136,254,148,255,89,255,254,254,251,255,229,0,50,0, +242,254,101,254,98,254,143,254,116,254,13,254,136,254,239,255,172,0,225,0,36,2,70,3,71,2,140,0,229,255,183,255, +146,255,113,255,164,254,195,253,198,253,178,253,76,253,171,253,1,254,73,254,162,0,57,3,106,2,84,0,209,255,153,255, +62,0,23,2,185,0,118,252,246,251,71,255,13,1,213,0,151,0,110,0,79,0,239,255,110,255,201,255,36,0,90,255, +109,254,211,253,104,253,238,253,221,254,91,255,33,0,122,0,82,255,83,254,197,253,240,251,198,250,142,252,144,254,232,254, +227,255,33,2,141,3,156,3,92,3,42,3,15,2,113,255,205,252,65,251,233,249,114,249,31,251,246,252,16,254,98,0, +130,2,109,2,160,2,117,3,61,3,148,4,31,6,17,2,83,253,56,255,193,2,220,4,73,5,24,251,157,241,241,5, +16,31,112,3,81,204,53,195,92,218,163,213,230,194,20,202,141,218,133,223,81,234,117,4,163,35,233,66,22,91,100,98, +69,94,237,84,19,63,129,28,137,249,201,220,95,199,122,187,197,183,177,186,15,197,78,210,136,222,249,237,16,254,134,5, +79,11,22,27,8,41,169,38,233,30,3,29,162,23,203,10,178,1,85,254,223,249,62,248,194,254,136,4,107,1,197,252, +80,255,254,3,176,0,15,246,75,238,180,237,193,237,181,234,1,234,217,237,25,241,121,243,107,250,126,5,213,14,124,19, +172,20,128,22,61,27,40,28,218,18,106,7,2,3,70,255,97,246,37,240,106,240,88,240,234,238,186,240,148,243,248,243, +235,244,95,249,206,255,200,4,124,5,71,4,155,6,78,10,208,8,165,4,47,4,96,5,234,3,75,1,52,255,175,252, +67,250,161,249,58,251,145,253,233,253,211,252,172,254,188,2,250,2,237,255,2,0,151,3,225,5,161,5,189,4,85,4, +68,4,156,3,100,2,173,1,125,0,32,254,245,253,68,1,66,3,210,1,185,0,4,1,164,255,12,252,173,248,189,247, +182,249,98,252,177,253,35,255,163,1,248,2,130,3,232,5,32,8,13,7,132,5,99,6,168,6,236,3,163,0,241,254, +13,254,237,252,137,251,194,250,188,251,221,253,83,255,14,0,60,1,147,2,62,3,219,3,28,5,13,6,131,5,11,4, +52,3,107,3,155,3,7,3,21,2,19,1,229,255,199,254,1,254,173,253,179,253,220,253,76,254,88,255,212,0,78,2, +128,3,21,4,244,3,151,3,80,3,1,3,229,2,76,3,151,3,247,2,219,1,86,1,139,1,188,1,159,1,129,1, +70,1,139,0,172,255,51,255,204,254,34,254,184,253,217,253,40,254,156,254,99,255,58,0,192,0,182,0,245,255,28,255, +46,255,37,0,59,1,32,2,162,2,165,2,188,2,4,3,155,2,166,1,92,1,146,1,65,1,177,0,144,0,194,0, +30,1,36,1,25,0,227,254,227,254,58,255,213,254,191,254,55,255,237,254,130,254,147,255,57,1,35,2,45,3,200,4, +219,5,244,5,58,5,202,3,142,2,209,1,37,0,120,253,242,251,20,252,87,252,95,252,158,252,237,252,152,253,242,254, +21,0,155,0,118,1,195,2,164,3,206,3,75,3,104,2,8,2,239,1,200,0,26,255,133,254,142,254,51,254,109,254, +124,255,138,255,106,254,98,254,187,255,208,255,18,254,203,253,108,0,131,2,232,1,149,1,61,3,35,4,45,3,239,1, +60,0,128,254,21,255,49,0,89,254,182,252,188,254,7,0,188,253,144,252,133,254,187,255,34,255,222,255,222,2,26,4, +72,0,208,252,116,255,73,0,74,249,115,247,200,0,92,5,254,0,46,2,26,8,196,6,165,1,246,255,209,254,110,253, +249,253,81,254,144,254,183,0,218,1,238,0,92,1,254,1,63,0,35,255,33,0,36,0,33,255,244,254,185,254,86,254, +173,254,54,254,211,252,21,253,77,254,235,253,62,253,239,253,128,254,120,254,9,255,181,255,242,255,183,0,175,1,170,1, +80,1,82,1,207,0,166,255,231,254,173,254,80,254,238,253,13,254,143,254,199,254,142,254,144,254,220,254,182,254,112,254, +219,254,88,255,72,255,110,255,221,255,199,255,143,255,156,255,48,255,182,254,36,255,93,255,145,254,61,254,180,254,135,254, +231,253,187,253,159,253,163,253,37,254,46,254,186,253,19,254,144,254,18,254,205,253,69,254,68,254,46,254,221,254,113,255, +185,255,55,0,67,0,44,0,203,0,125,0,196,254,101,254,72,255,127,254,242,252,49,253,243,253,107,253,181,252,215,252, +33,253,39,253,67,253,167,253,27,254,106,254,166,254,226,254,18,255,68,255,122,255,165,255,178,255,140,255,40,255,140,254, +213,253,41,253,177,252,129,252,150,252,209,252,13,253,43,253,36,253,10,253,252,252,25,253,116,253,8,254,191,254,121,255, +21,0,120,0,142,0,82,0,211,255,45,255,139,254,21,254,223,253,224,253,246,253,242,253,180,253,60,253,174,252,62,252, +27,252,84,252,211,252,115,253,13,254,148,254,19,255,159,255,66,0,236,0,120,1,189,1,155,1,15,1,45,0,18,255, +222,253,175,252,168,251,243,250,193,250,50,251,66,252,193,253,86,255,163,0,104,1,153,1,94,1,241,0,131,0,34,0, +187,255,53,255,137,254,208,253,57,253,239,252,0,253,88,253,207,253,70,254,179,254,33,255,158,255,36,0,149,0,202,0, +171,0,70,0,203,255,116,255,100,255,145,255,204,255,221,255,167,255,53,255,183,254,93,254,59,254,61,254,58,254,17,254, +195,253,119,253,100,253,174,253,85,254,56,255,44,0,20,1,238,1,191,2,124,3,252,3,0,4,82,3,238,1,15,0, +37,254,163,252,211,251,188,251,45,252,223,252,158,253,90,254,30,255,249,255,217,0,157,1,32,2,70,2,26,2,205,1, +134,1,90,1,64,1,29,1,212,0,107,0,17,0,1,0,72,0,181,0,16,1,47,1,220,0,25,0,74,255,218,254, +229,254,101,255,14,0,68,0,221,255,114,255,116,255,185,255,60,0,18,1,217,1,64,2,138,2,208,2,183,2,66,2, +205,1,90,1,203,0,62,0,196,255,123,255,174,255,47,0,117,0,148,0,218,0,210,0,43,0,154,255,128,255,78,255, +249,254,55,255,236,255,89,0,152,0,68,1,42,2,146,2,115,2,102,2,153,2,139,2,40,2,21,2,75,2,202,1, +114,0,89,255,210,254,80,254,52,254,18,255,6,0,28,0,219,255,221,255,229,255,9,0,183,0,186,1,158,2,36,3, +240,2,36,2,172,1,181,1,123,1,18,1,36,1,80,1,34,1,31,1,47,1,104,0,68,255,33,255,203,255,34,0, +0,0,179,255,78,255,78,255,38,0,61,1,228,1,73,2,153,2,135,2,20,2,173,1,144,1,162,1,167,1,148,1, +154,1,176,1,166,1,171,1,186,1,40,1,73,0,192,0,80,2,146,2,189,1,201,0,114,0,76,0,217,255,147,255, +140,255,102,255,124,255,240,255,107,0,24,1,152,1,126,1,240,1,28,3,28,3,27,2,207,1,120,1,75,0,195,255, +6,0,180,255,14,255,183,254,102,254,111,254,33,255,226,255,133,0,7,1,17,1,215,0,57,0,227,254,166,254,250,0, +34,3,168,2,198,1,133,2,70,3,38,3,161,3,168,4,42,4,229,1,228,255,247,254,207,253,234,251,243,250,182,252, +148,0,243,2,209,0,126,252,192,250,241,251,198,253,141,0,82,4,141,6,213,6,153,6,89,4,66,255,253,251,139,254, +28,4,225,7,237,8,134,8,208,6,26,3,156,253,134,248,99,247,24,251,101,255,108,0,114,255,239,253,88,251,245,250, +96,0,152,6,187,6,142,2,102,255,127,255,213,2,144,6,223,7,218,8,42,10,132,7,225,1,38,255,85,255,249,255, +131,1,236,1,55,255,90,252,141,250,65,249,91,251,73,255,148,254,85,251,219,251,49,254,66,255,225,1,20,8,16,14, +185,11,2,1,179,254,150,13,25,31,9,46,248,61,22,49,106,238,130,162,78,132,189,137,109,151,36,174,194,200,218,216, +38,223,125,222,192,220,45,236,208,11,203,41,14,75,14,113,255,127,231,123,80,126,46,126,64,97,194,55,45,22,145,244, +44,211,79,186,100,163,38,143,207,135,167,134,184,134,225,149,251,181,47,216,32,249,171,27,95,57,30,76,108,83,70,81, +190,75,124,70,64,62,212,49,200,34,246,16,30,0,154,245,17,239,186,231,222,222,51,213,210,205,205,203,41,204,29,205, +93,210,172,218,90,225,61,232,15,242,67,253,155,8,63,19,152,31,149,50,163,66,23,62,93,44,44,35,74,31,52,18, +49,1,13,245,157,233,7,221,159,210,94,202,94,198,228,201,27,210,105,222,15,243,191,11,242,28,121,34,163,32,220,28, +247,25,30,23,202,18,158,13,41,8,144,2,133,253,176,247,232,239,231,233,79,233,133,236,203,240,206,244,178,247,213,249, +241,250,37,250,253,250,183,0,58,6,86,7,59,9,192,14,232,17,48,15,138,9,196,3,189,255,229,254,135,255,112,255, +35,255,29,254,233,249,134,243,30,239,197,237,147,237,158,238,35,242,58,246,13,248,147,250,172,255,57,4,195,5,163,5, +201,6,20,10,108,12,0,11,99,7,97,3,127,254,247,249,95,247,167,245,20,245,189,246,224,247,160,247,109,249,111,250, +142,244,162,237,32,239,182,244,177,246,163,248,255,254,198,5,89,9,30,11,176,12,113,14,202,15,33,15,29,13,63,12, +106,11,230,6,124,254,101,245,30,238,89,233,85,231,117,232,107,236,124,241,124,246,22,252,195,1,2,5,171,5,76,6, +140,7,30,8,56,8,164,8,75,8,233,5,61,2,218,254,117,252,10,251,88,250,171,249,153,248,253,247,174,248,212,249, +119,250,43,251,113,252,173,253,134,254,0,255,225,254,137,254,161,254,187,254,138,254,49,255,92,1,168,3,80,4,79,3, +46,2,170,1,158,0,171,254,120,253,128,253,50,253,85,252,7,252,63,252,229,252,99,254,148,255,55,255,98,254,191,253, +95,252,37,251,236,251,208,253,66,255,218,0,176,2,53,3,74,2,145,1,206,1,129,2,47,3,181,3,254,3,161,3, +25,2,182,255,167,253,185,252,153,252,129,252,58,252,75,252,225,252,144,253,63,254,39,255,62,0,232,0,211,0,185,0, +102,1,108,2,174,2,23,2,160,1,164,1,97,1,112,0,150,255,122,255,159,255,98,255,13,255,15,255,252,254,101,254, +247,253,169,254,38,0,64,1,149,1,180,1,233,1,248,1,239,1,33,2,78,2,234,1,45,1,217,0,241,0,186,0, +20,0,181,255,223,255,2,0,229,255,250,255,53,0,207,255,196,254,69,254,0,255,24,0,169,0,50,1,103,2,176,3, +8,4,170,3,137,3,174,3,109,3,234,2,227,2,44,3,191,2,105,1,44,0,182,255,140,255,15,255,113,254,34,254, +45,254,142,254,124,255,241,0,89,2,48,3,126,3,121,3,49,3,209,2,172,2,195,2,171,2,57,2,168,1,5,1, +10,0,240,254,162,254,150,255,15,1,11,2,114,2,171,2,169,2,45,2,170,1,229,1,200,2,106,3,88,3,5,3, +203,2,80,2,69,1,48,0,210,255,40,0,145,0,180,0,198,0,241,0,248,0,174,0,105,0,171,0,127,1,113,2, +37,3,173,3,39,4,85,4,228,3,6,3,95,2,68,2,93,2,57,2,235,1,174,1,88,1,146,0,127,255,192,254, +169,254,225,254,244,254,245,254,56,255,181,255,32,0,127,0,65,1,127,2,165,3,14,4,184,3,22,3,94,2,132,1, +181,0,107,0,195,0,42,1,250,0,64,0,142,255,59,255,51,255,106,255,14,0,9,1,199,1,201,1,83,1,27,1, +118,1,21,2,146,2,218,2,227,2,109,2,95,1,50,0,153,255,189,255,25,0,47,0,9,0,232,255,206,255,161,255, +135,255,201,255,81,0,171,0,159,0,131,0,195,0,79,1,187,1,212,1,185,1,130,1,24,1,138,0,50,0,76,0, +142,0,121,0,238,255,74,255,231,254,202,254,217,254,28,255,149,255,12,0,62,0,64,0,109,0,232,0,102,1,133,1, +61,1,198,0,82,0,248,255,220,255,38,0,186,0,49,1,59,1,236,0,151,0,103,0,81,0,64,0,51,0,33,0, +237,255,146,255,65,255,53,255,117,255,219,255,68,0,172,0,11,1,65,1,49,1,223,0,113,0,13,0,212,255,231,255, +81,0,240,0,120,1,163,1,89,1,183,0,249,255,94,255,18,255,28,255,90,255,159,255,200,255,216,255,219,255,211,255, +198,255,201,255,227,255,16,0,73,0,106,0,77,0,248,255,120,255,223,254,106,254,88,254,165,254,44,255,200,255,72,0, +137,0,156,0,164,0,182,0,195,0,150,0,28,0,135,255,21,255,234,254,28,255,143,255,15,0,125,0,155,0,51,0, +154,255,89,255,121,255,218,255,115,0,229,0,192,0,34,0,101,255,206,254,192,254,68,255,196,255,234,255,248,255,3,0, +237,255,219,255,233,255,237,255,211,255,166,255,125,255,150,255,253,255,110,0,178,0,172,0,74,0,184,255,57,255,243,254, +19,255,139,255,210,255,202,255,242,255,83,0,136,0,173,0,226,0,212,0,115,0,226,255,4,255,40,254,5,254,129,254, +17,255,180,255,66,0,35,0,100,255,181,254,120,254,175,254,45,255,154,255,240,255,123,0,30,1,113,1,57,1,119,0, +106,255,114,254,196,253,151,253,41,254,20,255,168,255,220,255,196,255,31,255,82,254,33,254,123,254,239,254,98,255,152,255, +128,255,173,255,15,0,217,255,58,255,30,255,136,255,223,255,224,255,113,255,187,254,62,254,15,254,218,253,161,253,132,253, +119,253,139,253,217,253,65,254,172,254,247,254,243,254,190,254,141,254,91,254,110,254,13,255,185,255,222,255,165,255,78,255, +252,254,0,255,27,255,173,254,20,254,22,254,92,254,82,254,63,254,79,254,55,254,232,253,120,253,17,253,59,253,14,254, +182,254,197,254,177,254,194,254,180,254,103,254,254,253,162,253,108,253,117,253,217,253,95,254,118,254,35,254,24,254,90,254, +76,254,248,253,203,253,182,253,173,253,210,253,217,253,162,253,160,253,189,253,65,253,62,252,149,251,200,251,180,252,232,253, +229,254,113,255,146,255,96,255,50,255,95,255,179,255,223,255,9,0,61,0,29,0,142,255,200,254,222,253,222,252,26,252, +224,251,38,252,167,252,59,253,234,253,118,254,102,254,229,253,193,253,59,254,201,254,14,255,46,255,102,255,191,255,249,255, +204,255,107,255,42,255,222,254,101,254,42,254,84,254,102,254,47,254,17,254,15,254,184,253,31,253,240,252,89,253,217,253, +78,254,26,255,43,0,214,0,224,0,166,0,91,0,1,0,215,255,7,0,69,0,79,0,70,0,49,0,205,255,27,255, +116,254,227,253,69,253,253,252,150,253,204,254,202,255,58,0,93,0,90,0,25,0,154,255,31,255,1,255,100,255,238,255, +25,0,246,255,18,0,135,0,209,0,173,0,87,0,248,255,131,255,34,255,9,255,16,255,249,254,218,254,193,254,86,254, +128,253,17,253,0,254,7,0,194,1,75,2,27,2,238,1,157,1,215,0,75,0,0,1,170,2,190,3,48,3,112,1, +168,255,142,254,51,254,108,254,252,254,124,255,162,255,173,255,22,0,218,0,175,1,145,2,49,3,149,2,160,0,78,255, +130,0,46,3,176,4,66,4,6,3,173,1,31,0,205,254,114,254,234,254,142,255,15,0,92,0,123,0,215,0,227,1, +53,3,190,3,255,2,172,1,241,0,40,1,140,1,123,1,120,1,24,2,152,2,226,1,85,0,55,255,239,254,32,255, +144,255,237,255,205,255,156,255,64,0,128,1,67,2,96,2,143,2,206,2,124,2,202,1,150,1,11,2,123,2,94,2, +204,1,47,1,227,0,246,0,37,1,11,1,100,0,107,255,217,254,13,255,126,255,189,255,85,0,171,1,233,2,74,3, +70,3,92,3,13,3,34,2,116,1,123,1,165,1,148,1,159,1,206,1,179,1,61,1,195,0,103,0,28,0,233,255, +225,255,15,0,100,0,161,0,169,0,216,0,132,1,103,2,14,3,80,3,0,3,245,1,164,0,203,255,128,255,122,255, +197,255,93,0,206,0,254,0,81,1,166,1,103,1,207,0,162,0,218,0,2,1,76,1,249,1,97,2,209,1,178,0, +219,255,126,255,100,255,139,255,243,255,84,0,95,0,54,0,85,0,233,0,120,1,144,1,114,1,124,1,123,1,59,1, +39,1,108,1,100,1,161,0,178,255,54,255,26,255,54,255,173,255,96,0,199,0,160,0,71,0,66,0,179,0,55,1, +94,1,55,1,43,1,84,1,113,1,95,1,36,1,185,0,62,0,248,255,240,255,19,0,135,0,60,1,144,1,49,1, +164,0,82,0,18,0,241,255,69,0,211,0,21,1,38,1,75,1,46,1,160,0,50,0,36,0,250,255,177,255,237,255, +150,0,198,0,77,0,232,255,251,255,51,0,82,0,99,0,105,0,88,0,37,0,204,255,117,255,96,255,140,255,169,255, +131,255,48,255,2,255,78,255,37,0,22,1,162,1,196,1,176,1,89,1,184,0,43,0,255,255,246,255,193,255,116,255, +65,255,18,255,187,254,73,254,5,254,60,254,239,254,198,255,100,0,179,0,199,0,182,0,161,0,160,0,163,0,157,0, +144,0,84,0,203,255,81,255,107,255,2,0,132,0,180,0,176,0,125,0,39,0,247,255,22,0,74,0,92,0,60,0, +219,255,88,255,16,255,29,255,59,255,100,255,192,255,7,0,221,255,165,255,241,255,120,0,159,0,132,0,115,0,27,0, +49,255,49,254,171,253,131,253,137,253,7,254,42,255,125,0,103,1,202,1,230,1,228,1,186,1,98,1,245,0,128,0, +232,255,44,255,147,254,63,254,236,253,115,253,44,253,109,253,255,253,133,254,4,255,151,255,21,0,75,0,83,0,85,0, +60,0,231,255,120,255,47,255,40,255,77,255,125,255,160,255,167,255,152,255,153,255,180,255,191,255,150,255,77,255,14,255, +225,254,202,254,221,254,17,255,48,255,40,255,50,255,124,255,236,255,80,0,146,0,158,0,93,0,217,255,75,255,235,254, +213,254,7,255,104,255,204,255,12,0,50,0,96,0,140,0,139,0,91,0,17,0,158,255,25,255,242,254,76,255,156,255, +136,255,83,255,35,255,217,254,184,254,15,255,117,255,106,255,59,255,83,255,128,255,122,255,97,255,93,255,113,255,153,255, +169,255,134,255,129,255,187,255,199,255,143,255,157,255,3,0,44,0,247,255,188,255,113,255,252,254,199,254,20,255,132,255, +203,255,13,0,88,0,129,0,123,0,96,0,79,0,89,0,98,0,84,0,68,0,42,0,231,255,168,255,160,255,127,255, +18,255,224,254,44,255,114,255,130,255,210,255,97,0,181,0,201,0,223,0,250,0,27,1,69,1,57,1,251,0,222,0, +193,0,104,0,55,0,52,0,148,255,157,254,165,254,85,255,5,255,17,254,62,254,75,255,179,255,162,255,245,255,57,0, +3,0,15,0,164,0,18,1,41,1,66,1,59,1,238,0,185,0,187,0,152,0,48,0,181,255,77,255,12,255,226,254, +164,254,118,254,183,254,75,255,206,255,70,0,221,0,96,1,156,1,160,1,111,1,23,1,234,0,255,0,9,1,235,0, +201,0,139,0,11,0,142,255,109,255,168,255,4,0,59,0,63,0,94,0,178,0,211,0,147,0,82,0,33,0,181,255, +83,255,127,255,227,255,249,255,19,0,126,0,190,0,146,0,125,0,181,0,214,0,200,0,203,0,229,0,10,1,81,1, +148,1,115,1,231,0,78,0,229,255,186,255,188,255,188,255,155,255,131,255,165,255,219,255,219,255,163,255,129,255,185,255, +46,0,132,0,158,0,197,0,40,1,129,1,128,1,72,1,55,1,88,1,96,1,47,1,252,0,232,0,188,0,64,0, +165,255,77,255,84,255,124,255,126,255,86,255,64,255,99,255,167,255,242,255,74,0,179,0,33,1,131,1,192,1,184,1, +132,1,93,1,79,1,65,1,49,1,28,1,235,0,178,0,154,0,135,0,68,0,236,255,179,255,131,255,73,255,51,255, +86,255,132,255,170,255,222,255,31,0,87,0,142,0,211,0,21,1,65,1,86,1,92,1,81,1,45,1,226,0,115,0, +253,255,159,255,107,255,104,255,144,255,204,255,5,0,54,0,102,0,153,0,200,0,231,0,231,0,192,0,128,0,70,0, +46,0,64,0,107,0,134,0,116,0,49,0,216,255,147,255,125,255,150,255,197,255,236,255,252,255,0,0,13,0,52,0, +114,0,174,0,203,0,182,0,118,0,43,0,253,255,6,0,66,0,142,0,189,0,181,0,125,0,56,0,11,0,2,0, +7,0,251,255,202,255,130,255,70,255,55,255,92,255,158,255,219,255,254,255,10,0,19,0,45,0,92,0,147,0,191,0, +202,0,173,0,111,0,37,0,233,255,206,255,208,255,213,255,188,255,122,255,37,255,237,254,249,254,73,255,177,255,253,255, +19,0,9,0,19,0,83,0,189,0,24,1,39,1,207,0,46,0,129,255,2,255,203,254,210,254,250,254,41,255,83,255, +124,255,173,255,238,255,61,0,140,0,198,0,213,0,182,0,125,0,77,0,64,0,84,0,111,0,112,0,77,0,22,0, +230,255,203,255,190,255,173,255,146,255,127,255,140,255,189,255,250,255,28,0,18,0,238,255,215,255,236,255,37,0,91,0, +105,0,69,0,10,0,221,255,208,255,219,255,235,255,242,255,246,255,3,0,25,0,46,0,53,0,41,0,17,0,251,255, +235,255,217,255,189,255,166,255,169,255,211,255,31,0,129,0,224,0,29,1,41,1,11,1,197,0,90,0,223,255,120,255, +57,255,33,255,36,255,41,255,34,255,42,255,97,255,194,255,48,0,143,0,189,0,187,0,184,0,211,0,251,0,29,1, +48,1,18,1,202,0,146,0,128,0,92,0,19,0,210,255,179,255,183,255,227,255,44,0,102,0,121,0,109,0,96,0, +112,0,165,0,205,0,191,0,141,0,94,0,65,0,56,0,60,0,68,0,70,0,55,0,18,0,242,255,242,255,0,0, +2,0,7,0,27,0,50,0,63,0,55,0,23,0,255,255,2,0,255,255,245,255,30,0,111,0,153,0,160,0,191,0, +220,0,208,0,198,0,212,0,206,0,166,0,114,0,44,0,215,255,163,255,148,255,130,255,114,255,120,255,130,255,145,255, +197,255,17,0,86,0,161,0,240,0,31,1,49,1,77,1,96,1,54,1,222,0,149,0,103,0,57,0,25,0,34,0, +55,0,36,0,248,255,220,255,209,255,198,255,195,255,199,255,205,255,251,255,98,0,203,0,24,1,88,1,116,1,74,1, +8,1,230,0,202,0,154,0,100,0,44,0,251,255,240,255,5,0,17,0,43,0,108,0,157,0,154,0,164,0,209,0, +212,0,147,0,68,0,1,0,200,255,187,255,227,255,37,0,116,0,191,0,228,0,230,0,226,0,194,0,119,0,51,0, +16,0,248,255,250,255,46,0,112,0,147,0,152,0,138,0,104,0,60,0,22,0,253,255,241,255,242,255,13,0,65,0, +104,0,115,0,139,0,179,0,197,0,205,0,227,0,219,0,175,0,156,0,155,0,118,0,75,0,71,0,77,0,86,0, +135,0,194,0,212,0,202,0,184,0,167,0,175,0,200,0,188,0,159,0,173,0,213,0,224,0,205,0,162,0,88,0, +19,0,0,0,20,0,47,0,58,0,30,0,237,255,224,255,240,255,223,255,183,255,178,255,174,255,142,255,178,255,64,0, +170,0,162,0,146,0,187,0,5,1,131,1,23,2,67,2,10,2,221,1,160,1,16,1,133,0,30,0,131,255,240,254, +237,254,58,255,109,255,171,255,254,255,31,0,17,0,253,255,250,255,37,0,131,0,212,0,7,1,80,1,167,1,220,1, +248,1,1,2,238,1,204,1,146,1,49,1,210,0,140,0,51,0,187,255,84,255,12,255,228,254,253,254,84,255,181,255, +24,0,161,0,79,1,239,1,100,2,184,2,199,2,88,2,181,1,75,1,213,0,6,0,81,255,248,254,154,254,76,254, +114,254,199,254,7,255,94,255,166,255,197,255,48,0,201,0,9,1,71,1,255,1,220,2,58,3,151,2,128,1,139,1, +56,2,200,1,140,1,118,2,175,1,175,255,14,0,120,0,225,254,60,0,226,3,127,3,191,2,25,6,174,5,29,255, +118,251,151,249,254,241,132,234,192,233,24,233,183,229,136,230,179,235,175,239,240,243,186,251,255,4,86,14,111,24,91,33, +8,39,76,42,67,43,93,40,209,33,71,25,92,15,117,4,27,250,213,241,230,235,248,231,64,230,255,230,91,233,21,236, +220,238,213,241,216,244,207,247,203,250,195,253,193,0,150,3,187,5,65,7,176,8,187,9,195,9,24,9,42,8,208,6, +40,5,152,3,5,2,82,0,207,254,94,253,115,251,19,249,17,247,55,246,103,246,232,246,182,247,130,249,38,252,220,254, +142,1,47,4,17,6,28,7,183,7,156,7,198,6,225,5,179,4,184,2,194,0,67,255,124,253,253,251,249,251,119,252, +92,252,165,252,134,253,173,253,137,253,94,254,92,255,159,255,0,0,153,0,150,0,140,0,26,1,45,1,84,0,195,255, +213,255,190,255,123,255,129,255,146,255,123,255,112,255,67,255,188,254,93,254,165,254,64,255,208,255,123,0,60,1,192,1, +2,2,22,2,190,1,0,1,91,0,239,255,122,255,19,255,196,254,71,254,234,253,33,254,98,254,50,254,59,254,164,254, +106,254,165,253,142,253,2,254,235,253,145,253,192,253,14,254,234,253,211,253,34,254,113,254,176,254,56,255,201,255,242,255, +24,0,182,0,80,1,98,1,91,1,138,1,127,1,45,1,16,1,9,1,186,0,121,0,132,0,106,0,41,0,64,0, +127,0,96,0,35,0,56,0,73,0,246,255,135,255,77,255,22,255,166,254,54,254,6,254,225,253,155,253,131,253,201,253, +18,254,50,254,121,254,239,254,70,255,108,255,138,255,174,255,223,255,30,0,32,0,208,255,152,255,160,255,151,255,136,255, +220,255,121,0,205,0,172,0,108,0,62,0,4,0,202,255,209,255,30,0,90,0,81,0,48,0,16,0,206,255,109,255, +32,255,236,254,215,254,15,255,123,255,186,255,204,255,253,255,40,0,15,0,237,255,247,255,251,255,4,0,70,0,117,0, +68,0,14,0,0,0,178,255,34,255,218,254,221,254,201,254,180,254,195,254,182,254,145,254,173,254,8,255,114,255,5,0, +176,0,14,1,44,1,76,1,70,1,10,1,1,1,50,1,28,1,198,0,163,0,152,0,80,0,252,255,200,255,129,255, +35,255,221,254,167,254,140,254,199,254,42,255,104,255,195,255,108,0,218,0,198,0,186,0,240,0,243,0,161,0,101,0, +86,0,56,0,0,0,188,255,112,255,89,255,161,255,251,255,19,0,9,0,25,0,68,0,129,0,214,0,41,1,100,1, +137,1,148,1,133,1,132,1,149,1,119,1,32,1,225,0,214,0,192,0,144,0,131,0,139,0,83,0,225,255,141,255, +110,255,101,255,128,255,196,255,247,255,0,0,26,0,90,0,158,0,230,0,63,1,105,1,61,1,21,1,50,1,74,1, +38,1,19,1,55,1,50,1,208,0,101,0,48,0,13,0,230,255,227,255,11,0,54,0,87,0,133,0,190,0,240,0, +17,1,30,1,29,1,31,1,35,1,7,1,198,0,147,0,145,0,162,0,168,0,169,0,163,0,135,0,113,0,144,0, +215,0,8,1,24,1,50,1,77,1,69,1,52,1,81,1,123,1,102,1,31,1,243,0,229,0,205,0,180,0,179,0, +172,0,126,0,73,0,46,0,35,0,41,0,84,0,141,0,168,0,175,0,186,0,182,0,153,0,142,0,169,0,197,0, +212,0,230,0,229,0,196,0,179,0,207,0,223,0,199,0,191,0,200,0,153,0,55,0,3,0,3,0,237,255,190,255, +187,255,227,255,10,0,65,0,164,0,14,1,82,1,117,1,134,1,123,1,80,1,10,1,191,0,152,0,169,0,196,0, +185,0,160,0,151,0,133,0,94,0,75,0,97,0,141,0,220,0,79,1,158,1,146,1,97,1,57,1,239,0,114,0, +23,0,14,0,28,0,20,0,5,0,238,255,192,255,148,255,141,255,159,255,192,255,3,0,88,0,143,0,160,0,171,0, +176,0,169,0,182,0,234,0,33,1,51,1,46,1,46,1,49,1,25,1,210,0,115,0,43,0,254,255,187,255,102,255, +71,255,115,255,168,255,198,255,237,255,22,0,25,0,12,0,30,0,47,0,27,0,18,0,61,0,100,0,100,0,113,0, +157,0,167,0,116,0,58,0,28,0,5,0,243,255,246,255,246,255,214,255,159,255,112,255,91,255,115,255,185,255,0,0, +29,0,22,0,6,0,250,255,5,0,46,0,73,0,44,0,249,255,225,255,210,255,166,255,126,255,127,255,145,255,145,255, +149,255,163,255,152,255,120,255,124,255,164,255,185,255,201,255,5,0,70,0,61,0,13,0,3,0,247,255,167,255,97,255, +135,255,198,255,170,255,114,255,139,255,191,255,179,255,146,255,172,255,230,255,16,0,48,0,62,0,34,0,251,255,232,255, +201,255,149,255,136,255,157,255,124,255,46,255,18,255,25,255,239,254,195,254,239,254,57,255,67,255,63,255,111,255,158,255, +173,255,218,255,20,0,251,255,160,255,117,255,127,255,122,255,119,255,154,255,161,255,102,255,53,255,60,255,67,255,60,255, +83,255,118,255,104,255,76,255,103,255,157,255,172,255,155,255,154,255,173,255,182,255,152,255,91,255,63,255,114,255,185,255, +188,255,153,255,155,255,166,255,131,255,94,255,119,255,159,255,154,255,133,255,124,255,85,255,13,255,246,254,52,255,123,255, +128,255,91,255,75,255,93,255,112,255,106,255,92,255,89,255,86,255,79,255,93,255,130,255,138,255,112,255,126,255,199,255, +235,255,182,255,124,255,136,255,173,255,173,255,161,255,167,255,165,255,131,255,82,255,39,255,11,255,10,255,34,255,71,255, +123,255,194,255,245,255,237,255,189,255,148,255,116,255,82,255,82,255,135,255,179,255,149,255,75,255,24,255,255,254,234,254, +250,254,81,255,179,255,221,255,241,255,39,0,79,0,36,0,210,255,163,255,132,255,79,255,54,255,92,255,119,255,79,255, +37,255,51,255,72,255,53,255,42,255,76,255,111,255,117,255,136,255,205,255,27,0,48,0,2,0,195,255,153,255,107,255, +29,255,227,254,250,254,54,255,67,255,60,255,105,255,169,255,173,255,146,255,156,255,161,255,110,255,66,255,104,255,164,255, +157,255,106,255,80,255,76,255,53,255,17,255,3,255,19,255,47,255,80,255,129,255,194,255,255,255,39,0,66,0,90,0, +93,0,61,0,26,0,14,0,3,0,221,255,173,255,139,255,111,255,78,255,38,255,245,254,191,254,154,254,151,254,177,254, +219,254,4,255,29,255,49,255,87,255,132,255,153,255,168,255,204,255,226,255,194,255,153,255,152,255,153,255,127,255,124,255, +154,255,147,255,86,255,43,255,39,255,14,255,231,254,247,254,61,255,121,255,170,255,235,255,32,0,33,0,3,0,243,255, +248,255,2,0,255,255,234,255,207,255,184,255,150,255,101,255,79,255,104,255,126,255,103,255,60,255,37,255,38,255,67,255, +122,255,167,255,189,255,235,255,58,0,98,0,72,0,52,0,76,0,76,0,16,0,203,255,158,255,108,255,48,255,16,255, +29,255,71,255,121,255,157,255,160,255,144,255,137,255,132,255,115,255,109,255,140,255,190,255,229,255,4,0,40,0,67,0, +61,0,25,0,237,255,211,255,205,255,198,255,187,255,197,255,232,255,252,255,233,255,200,255,181,255,174,255,162,255,143,255, +135,255,153,255,184,255,194,255,192,255,228,255,48,0,97,0,71,0,255,255,189,255,163,255,193,255,6,0,45,0,15,0, +216,255,184,255,172,255,169,255,186,255,212,255,217,255,208,255,202,255,192,255,175,255,176,255,195,255,197,255,189,255,221,255, +31,0,75,0,73,0,44,0,254,255,206,255,187,255,193,255,183,255,161,255,170,255,204,255,221,255,246,255,66,0,156,0, +185,0,171,0,170,0,171,0,134,0,84,0,65,0,58,0,31,0,5,0,245,255,204,255,142,255,114,255,121,255,112,255, +108,255,165,255,226,255,206,255,184,255,35,0,191,0,208,0,126,0,148,0,4,1,251,0,106,0,4,0,232,255,148,255, +30,255,27,255,138,255,222,255,253,255,70,0,195,0,24,1,19,1,231,0,224,0,245,0,210,0,101,0,30,0,62,0, +89,0,28,0,244,255,29,0,19,0,171,255,143,255,222,255,201,255,59,255,47,255,226,255,110,0,128,0,196,0,93,1, +145,1,28,1,128,0,2,0,123,255,15,255,31,255,162,255,68,0,219,0,88,1,156,1,140,1,24,1,82,0,155,255, +87,255,114,255,165,255,2,0,159,0,33,1,52,1,16,1,5,1,248,0,191,0,132,0,98,0,55,0,10,0,28,0, +85,0,89,0,38,0,8,0,8,0,254,255,234,255,237,255,12,0,47,0,65,0,72,0,101,0,164,0,234,0,32,1, +71,1,70,1,12,1,206,0,202,0,222,0,193,0,127,0,82,0,50,0,251,255,196,255,180,255,187,255,205,255,3,0, +82,0,126,0,130,0,152,0,209,0,251,0,242,0,224,0,236,0,240,0,196,0,144,0,115,0,68,0,254,255,234,255, +22,0,63,0,74,0,85,0,101,0,104,0,99,0,107,0,132,0,155,0,162,0,152,0,118,0,61,0,7,0,245,255, +1,0,8,0,242,255,194,255,163,255,193,255,0,0,43,0,77,0,119,0,122,0,84,0,82,0,122,0,120,0,75,0, +75,0,121,0,122,0,81,0,80,0,107,0,74,0,250,255,216,255,239,255,16,0,61,0,105,0,102,0,71,0,71,0, +78,0,41,0,246,255,223,255,208,255,181,255,180,255,233,255,60,0,126,0,152,0,154,0,162,0,181,0,180,0,131,0, +62,0,19,0,254,255,220,255,194,255,210,255,228,255,190,255,127,255,111,255,140,255,167,255,175,255,188,255,236,255,59,0, +102,0,60,0,254,255,251,255,3,0,212,255,165,255,181,255,195,255,149,255,111,255,133,255,160,255,159,255,169,255,192,255, +202,255,215,255,242,255,250,255,215,255,145,255,66,255,13,255,8,255,45,255,104,255,165,255,203,255,214,255,218,255,208,255, +178,255,155,255,143,255,119,255,89,255,79,255,79,255,70,255,68,255,91,255,128,255,158,255,162,255,143,255,119,255,102,255, +90,255,92,255,119,255,173,255,240,255,32,0,44,0,45,0,38,0,253,255,183,255,119,255,64,255,28,255,42,255,77,255, +83,255,87,255,127,255,172,255,192,255,192,255,182,255,176,255,171,255,141,255,117,255,166,255,225,255,187,255,97,255,46,255, +253,254,168,254,102,254,80,254,78,254,102,254,136,254,158,254,201,254,248,254,223,254,161,254,173,254,238,254,14,255,39,255, +96,255,135,255,129,255,96,255,45,255,6,255,24,255,74,255,112,255,146,255,172,255,153,255,116,255,106,255,84,255,14,255, +218,254,241,254,37,255,50,255,27,255,20,255,51,255,65,255,32,255,27,255,83,255,94,255,49,255,93,255,210,255,217,255, +133,255,132,255,187,255,162,255,95,255,87,255,109,255,107,255,91,255,75,255,62,255,56,255,37,255,5,255,254,254,25,255, +51,255,54,255,38,255,33,255,35,255,239,254,138,254,105,254,163,254,192,254,174,254,218,254,64,255,118,255,104,255,73,255, +47,255,27,255,18,255,20,255,45,255,89,255,118,255,108,255,85,255,69,255,39,255,227,254,153,254,125,254,129,254,120,254, +123,254,187,254,28,255,102,255,144,255,172,255,209,255,243,255,223,255,156,255,131,255,157,255,167,255,158,255,147,255,105,255, +66,255,88,255,111,255,74,255,59,255,109,255,136,255,107,255,84,255,82,255,77,255,75,255,98,255,138,255,155,255,125,255, +105,255,124,255,88,255,212,254,125,254,168,254,6,255,94,255,165,255,142,255,37,255,6,255,83,255,143,255,153,255,171,255, +178,255,158,255,153,255,143,255,109,255,124,255,197,255,227,255,232,255,56,0,158,0,170,0,123,0,71,0,5,0,201,255, +170,255,140,255,108,255,84,255,17,255,167,254,106,254,88,254,64,254,80,254,159,254,225,254,25,255,111,255,156,255,144,255, +173,255,229,255,236,255,14,0,119,0,170,0,129,0,104,0,124,0,138,0,137,0,104,0,25,0,206,255,150,255,79,255, +17,255,239,254,198,254,168,254,196,254,241,254,13,255,70,255,150,255,201,255,249,255,60,0,93,0,93,0,124,0,169,0, +170,0,143,0,113,0,46,0,191,255,101,255,73,255,65,255,44,255,45,255,73,255,66,255,38,255,64,255,107,255,92,255, +76,255,121,255,180,255,239,255,75,0,155,0,191,0,228,0,234,0,144,0,46,0,38,0,40,0,234,255,181,255,180,255, +191,255,204,255,217,255,201,255,176,255,181,255,205,255,224,255,251,255,33,0,62,0,81,0,100,0,97,0,52,0,242,255, +202,255,197,255,180,255,128,255,88,255,101,255,129,255,123,255,117,255,162,255,220,255,239,255,243,255,1,0,254,255,235,255, +237,255,11,0,54,0,86,0,65,0,19,0,35,0,76,0,30,0,194,255,168,255,180,255,167,255,170,255,209,255,237,255, +233,255,211,255,199,255,231,255,39,0,73,0,61,0,39,0,19,0,9,0,17,0,18,0,253,255,231,255,244,255,43,0, +104,0,120,0,111,0,121,0,120,0,76,0,36,0,17,0,243,255,211,255,199,255,182,255,167,255,185,255,216,255,235,255, +0,0,28,0,58,0,77,0,65,0,52,0,66,0,41,0,220,255,197,255,236,255,241,255,236,255,13,0,19,0,241,255, +237,255,235,255,191,255,169,255,190,255,210,255,226,255,239,255,0,0,63,0,123,0,80,0,5,0,16,0,34,0,233,255, +186,255,195,255,184,255,139,255,112,255,116,255,151,255,207,255,242,255,241,255,244,255,11,0,21,0,17,0,35,0,62,0, +47,0,9,0,255,255,243,255,215,255,237,255,26,0,237,255,158,255,170,255,211,255,194,255,187,255,225,255,247,255,1,0, +31,0,51,0,60,0,75,0,67,0,29,0,2,0,248,255,250,255,15,0,30,0,27,0,27,0,21,0,246,255,213,255, +190,255,178,255,196,255,220,255,223,255,241,255,32,0,52,0,42,0,55,0,92,0,115,0,92,0,24,0,215,255,170,255, +103,255,46,255,60,255,81,255,55,255,57,255,92,255,86,255,100,255,182,255,222,255,186,255,185,255,230,255,254,255,14,0, +28,0,5,0,228,255,226,255,236,255,247,255,17,0,46,0,64,0,73,0,64,0,30,0,250,255,228,255,204,255,163,255, +145,255,178,255,203,255,183,255,195,255,246,255,227,255,146,255,110,255,101,255,80,255,124,255,225,255,24,0,64,0,144,0, +187,0,160,0,131,0,97,0,15,0,181,255,115,255,77,255,91,255,128,255,109,255,69,255,96,255,173,255,230,255,7,0, +41,0,73,0,94,0,115,0,154,0,188,0,184,0,146,0,98,0,55,0,31,0,13,0,224,255,176,255,164,255,150,255, +107,255,88,255,112,255,132,255,150,255,180,255,196,255,207,255,253,255,54,0,84,0,105,0,121,0,111,0,101,0,113,0, +105,0,50,0,251,255,229,255,208,255,171,255,137,255,109,255,79,255,62,255,57,255,40,255,41,255,99,255,162,255,178,255, +198,255,1,0,55,0,75,0,74,0,66,0,69,0,71,0,38,0,1,0,0,0,243,255,200,255,203,255,236,255,213,255, +168,255,168,255,169,255,148,255,156,255,181,255,184,255,202,255,241,255,234,255,190,255,175,255,169,255,125,255,94,255,140,255, +212,255,239,255,1,0,50,0,64,0,18,0,8,0,77,0,127,0,104,0,64,0,34,0,247,255,204,255,164,255,105,255, +69,255,107,255,157,255,147,255,135,255,170,255,192,255,178,255,174,255,170,255,146,255,152,255,179,255,157,255,122,255,136,255, +146,255,128,255,134,255,144,255,127,255,138,255,162,255,133,255,116,255,163,255,186,255,175,255,215,255,20,0,19,0,231,255, +183,255,156,255,182,255,201,255,143,255,88,255,103,255,111,255,97,255,141,255,200,255,184,255,140,255,133,255,140,255,125,255, +98,255,85,255,100,255,129,255,174,255,244,255,26,0,225,255,133,255,101,255,111,255,99,255,70,255,75,255,117,255,137,255, +115,255,116,255,166,255,209,255,226,255,244,255,238,255,201,255,179,255,170,255,150,255,140,255,146,255,147,255,158,255,172,255, +146,255,108,255,96,255,79,255,57,255,72,255,128,255,197,255,241,255,207,255,140,255,134,255,154,255,114,255,69,255,85,255, +114,255,116,255,105,255,84,255,67,255,62,255,47,255,35,255,59,255,84,255,65,255,39,255,54,255,97,255,131,255,155,255, +190,255,202,255,146,255,62,255,4,255,210,254,195,254,8,255,87,255,104,255,110,255,110,255,83,255,82,255,54,255,192,254, +206,254,194,255,75,0,243,255,249,255,110,0,49,0,114,255,238,254,129,254,46,254,45,254,42,254,65,254,221,254,93,255, +70,255,110,255,16,0,65,0,241,255,205,255,196,255,144,255,94,255,74,255,84,255,136,255,172,255,148,255,133,255,154,255, +134,255,60,255,6,255,241,254,216,254,194,254,194,254,192,254,173,254,163,254,165,254,167,254,206,254,21,255,56,255,84,255, +166,255,201,255,136,255,127,255,195,255,153,255,10,255,197,254,199,254,195,254,215,254,255,254,1,255,242,254,252,254,28,255, +62,255,47,255,230,254,194,254,227,254,2,255,19,255,69,255,147,255,228,255,6,0,216,255,171,255,178,255,143,255,60,255, +40,255,61,255,46,255,35,255,45,255,47,255,69,255,62,255,216,254,148,254,202,254,236,254,213,254,253,254,63,255,73,255, +92,255,132,255,125,255,117,255,135,255,112,255,72,255,79,255,91,255,72,255,56,255,48,255,47,255,64,255,66,255,46,255, +55,255,102,255,144,255,158,255,140,255,120,255,140,255,153,255,100,255,41,255,27,255,15,255,248,254,244,254,253,254,25,255, +79,255,111,255,102,255,109,255,152,255,198,255,239,255,18,0,32,0,16,0,236,255,212,255,213,255,199,255,147,255,106,255, +107,255,131,255,161,255,181,255,175,255,172,255,181,255,167,255,144,255,156,255,183,255,195,255,201,255,202,255,198,255,187,255, +138,255,58,255,20,255,45,255,89,255,128,255,160,255,194,255,252,255,49,0,44,0,12,0,250,255,218,255,183,255,181,255, +178,255,145,255,114,255,95,255,86,255,110,255,128,255,98,255,95,255,180,255,27,0,55,0,14,0,252,255,56,0,98,0, +36,0,240,255,31,0,49,0,246,255,228,255,235,255,174,255,131,255,174,255,207,255,203,255,230,255,0,0,3,0,47,0, +110,0,116,0,103,0,125,0,136,0,114,0,108,0,118,0,108,0,73,0,16,0,203,255,161,255,159,255,159,255,167,255, +217,255,14,0,21,0,30,0,72,0,100,0,100,0,101,0,94,0,73,0,59,0,43,0,41,0,84,0,112,0,72,0, +58,0,113,0,133,0,104,0,105,0,102,0,50,0,13,0,11,0,7,0,11,0,25,0,36,0,72,0,102,0,65,0, +36,0,85,0,119,0,97,0,110,0,154,0,161,0,157,0,159,0,135,0,112,0,114,0,87,0,28,0,1,0,4,0, +5,0,22,0,62,0,85,0,87,0,105,0,140,0,157,0,160,0,178,0,182,0,134,0,85,0,85,0,93,0,76,0, +64,0,77,0,106,0,132,0,123,0,87,0,77,0,82,0,72,0,72,0,73,0,45,0,45,0,100,0,125,0,112,0, +128,0,137,0,113,0,139,0,219,0,247,0,209,0,156,0,102,0,54,0,18,0,226,255,190,255,210,255,11,0,55,0, +75,0,73,0,54,0,28,0,4,0,246,255,243,255,251,255,38,0,94,0,117,0,144,0,216,0,240,0,187,0,184,0, +237,0,223,0,171,0,164,0,148,0,109,0,105,0,103,0,61,0,13,0,214,255,150,255,141,255,178,255,200,255,245,255, +80,0,147,0,172,0,189,0,193,0,172,0,134,0,83,0,56,0,67,0,55,0,14,0,9,0,12,0,222,255,175,255, +173,255,184,255,184,255,173,255,167,255,200,255,248,255,254,255,244,255,3,0,24,0,44,0,73,0,95,0,121,0,150,0, +129,0,82,0,73,0,40,0,195,255,134,255,146,255,130,255,89,255,100,255,150,255,200,255,247,255,18,0,31,0,46,0, +49,0,61,0,123,0,193,0,205,0,167,0,113,0,67,0,46,0,15,0,205,255,153,255,137,255,102,255,40,255,242,254, +216,254,238,254,46,255,111,255,179,255,3,0,60,0,93,0,129,0,129,0,88,0,71,0,57,0,254,255,223,255,249,255, +234,255,154,255,76,255,17,255,218,254,181,254,164,254,172,254,210,254,242,254,6,255,69,255,167,255,242,255,23,0,40,0, +60,0,85,0,69,0,3,0,220,255,225,255,189,255,96,255,19,255,241,254,234,254,238,254,234,254,238,254,13,255,44,255, +67,255,110,255,141,255,136,255,149,255,191,255,218,255,231,255,237,255,223,255,223,255,242,255,222,255,168,255,135,255,92,255, +24,255,3,255,25,255,22,255,21,255,63,255,89,255,61,255,28,255,22,255,37,255,67,255,112,255,168,255,223,255,5,0, +19,0,3,0,215,255,166,255,137,255,124,255,124,255,136,255,135,255,115,255,90,255,38,255,221,254,188,254,205,254,236,254, +35,255,118,255,173,255,181,255,170,255,136,255,95,255,102,255,153,255,181,255,172,255,146,255,110,255,59,255,247,254,176,254, +139,254,142,254,150,254,155,254,180,254,225,254,13,255,59,255,111,255,165,255,221,255,16,0,40,0,25,0,0,0,249,255, +239,255,203,255,166,255,152,255,141,255,123,255,111,255,99,255,85,255,86,255,83,255,64,255,65,255,91,255,100,255,98,255, +124,255,158,255,173,255,185,255,200,255,211,255,223,255,226,255,205,255,181,255,166,255,148,255,137,255,139,255,135,255,137,255, +171,255,193,255,162,255,110,255,75,255,44,255,15,255,17,255,63,255,144,255,230,255,29,0,61,0,90,0,96,0,55,0, +249,255,200,255,159,255,124,255,115,255,135,255,160,255,162,255,132,255,93,255,80,255,91,255,95,255,103,255,145,255,211,255, +8,0,46,0,71,0,82,0,93,0,107,0,93,0,46,0,250,255,196,255,150,255,155,255,192,255,190,255,142,255,105,255, +88,255,76,255,81,255,118,255,172,255,222,255,1,0,34,0,73,0,105,0,117,0,131,0,158,0,179,0,179,0,156,0, +118,0,80,0,39,0,235,255,171,255,137,255,135,255,142,255,158,255,187,255,226,255,4,0,22,0,38,0,75,0,127,0, +155,0,149,0,130,0,120,0,117,0,108,0,92,0,85,0,91,0,82,0,43,0,252,255,220,255,206,255,197,255,183,255, +171,255,180,255,210,255,240,255,2,0,13,0,25,0,38,0,49,0,56,0,63,0,77,0,100,0,128,0,148,0,150,0, +137,0,124,0,112,0,103,0,97,0,87,0,72,0,64,0,60,0,54,0,50,0,54,0,68,0,90,0,113,0,130,0, +138,0,139,0,134,0,129,0,128,0,128,0,124,0,109,0,86,0,70,0,76,0,90,0,95,0,98,0,108,0,135,0, +175,0,198,0,168,0,94,0,9,0,190,255,140,255,117,255,108,255,112,255,155,255,235,255,60,0,120,0,163,0,209,0, +15,1,79,1,116,1,121,1,105,1,70,1,12,1,193,0,108,0,16,0,187,255,127,255,105,255,109,255,115,255,120,255, +148,255,215,255,48,0,136,0,213,0,20,1,62,1,67,1,47,1,34,1,40,1,32,1,251,0,207,0,180,0,158,0, +130,0,103,0,94,0,101,0,96,0,60,0,14,0,250,255,3,0,10,0,250,255,225,255,206,255,193,255,182,255,180,255, +199,255,241,255,36,0,80,0,119,0,161,0,209,0,254,0,30,1,40,1,21,1,238,0,194,0,151,0,110,0,79,0, +57,0,36,0,11,0,235,255,195,255,163,255,152,255,161,255,182,255,211,255,241,255,13,0,48,0,91,0,124,0,138,0, +135,0,121,0,109,0,107,0,106,0,97,0,85,0,74,0,63,0,51,0,46,0,49,0,54,0,46,0,24,0,254,255, +236,255,220,255,200,255,180,255,178,255,198,255,230,255,1,0,18,0,32,0,48,0,69,0,88,0,98,0,96,0,88,0, +77,0,61,0,32,0,242,255,196,255,175,255,193,255,239,255,35,0,74,0,96,0,106,0,109,0,106,0,97,0,80,0, +53,0,17,0,231,255,194,255,174,255,175,255,186,255,192,255,189,255,186,255,194,255,209,255,223,255,231,255,233,255,228,255, +212,255,193,255,186,255,199,255,221,255,233,255,230,255,220,255,210,255,200,255,190,255,188,255,193,255,195,255,187,255,173,255, +168,255,174,255,180,255,175,255,164,255,161,255,173,255,196,255,215,255,226,255,229,255,227,255,219,255,199,255,170,255,143,255, +132,255,138,255,152,255,168,255,184,255,203,255,225,255,245,255,7,0,16,0,10,0,246,255,229,255,227,255,227,255,201,255, +141,255,74,255,34,255,20,255,11,255,255,254,4,255,40,255,94,255,145,255,184,255,220,255,253,255,20,0,29,0,30,0, +24,0,1,0,214,255,163,255,121,255,93,255,76,255,65,255,62,255,66,255,69,255,71,255,75,255,77,255,70,255,55,255, +46,255,57,255,82,255,108,255,129,255,147,255,159,255,154,255,133,255,108,255,99,255,106,255,120,255,132,255,137,255,135,255, +127,255,116,255,104,255,92,255,81,255,75,255,77,255,84,255,88,255,91,255,101,255,119,255,136,255,147,255,157,255,174,255, +192,255,202,255,204,255,203,255,202,255,195,255,185,255,179,255,176,255,162,255,129,255,90,255,60,255,38,255,14,255,246,254, +242,254,6,255,36,255,58,255,76,255,99,255,124,255,141,255,154,255,178,255,219,255,6,0,30,0,27,0,3,0,219,255, +168,255,119,255,87,255,68,255,43,255,5,255,225,254,215,254,232,254,5,255,33,255,63,255,104,255,159,255,214,255,255,255, +20,0,24,0,19,0,2,0,223,255,170,255,114,255,76,255,67,255,73,255,77,255,72,255,67,255,67,255,77,255,99,255, +135,255,177,255,207,255,212,255,194,255,167,255,141,255,116,255,95,255,85,255,95,255,122,255,151,255,174,255,189,255,203,255, +216,255,224,255,225,255,222,255,219,255,218,255,217,255,214,255,208,255,193,255,169,255,143,255,130,255,135,255,147,255,153,255, +153,255,156,255,166,255,173,255,175,255,181,255,202,255,234,255,3,0,14,0,12,0,5,0,248,255,233,255,220,255,212,255, +208,255,206,255,215,255,236,255,252,255,250,255,234,255,227,255,233,255,237,255,227,255,218,255,229,255,255,255,17,0,13,0, +252,255,229,255,201,255,173,255,162,255,181,255,216,255,241,255,249,255,0,0,16,0,32,0,39,0,40,0,41,0,37,0, +19,0,251,255,238,255,238,255,241,255,239,255,238,255,243,255,250,255,248,255,243,255,243,255,249,255,3,0,14,0,28,0, +42,0,49,0,47,0,44,0,42,0,38,0,32,0,27,0,24,0,15,0,251,255,228,255,213,255,208,255,211,255,226,255, +250,255,17,0,23,0,14,0,10,0,24,0,44,0,49,0,42,0,38,0,42,0,46,0,43,0,41,0,41,0,30,0, +1,0,228,255,222,255,242,255,11,0,26,0,39,0,61,0,86,0,96,0,79,0,42,0,1,0,219,255,191,255,179,255, +186,255,211,255,249,255,34,0,63,0,72,0,70,0,75,0,88,0,91,0,66,0,23,0,245,255,235,255,236,255,231,255, +218,255,211,255,215,255,220,255,218,255,215,255,225,255,249,255,19,0,37,0,45,0,46,0,42,0,29,0,5,0,233,255, +209,255,198,255,204,255,230,255,19,0,72,0,111,0,124,0,111,0,86,0,61,0,40,0,20,0,255,255,233,255,216,255, +208,255,213,255,224,255,230,255,227,255,223,255,227,255,240,255,3,0,28,0,62,0,97,0,116,0,107,0,81,0,56,0, +40,0,35,0,43,0,68,0,97,0,108,0,87,0,50,0,18,0,4,0,255,255,251,255,245,255,231,255,207,255,178,255, +156,255,147,255,150,255,164,255,198,255,249,255,45,0,82,0,108,0,133,0,151,0,140,0,101,0,59,0,36,0,20,0, +245,255,203,255,178,255,182,255,191,255,183,255,164,255,159,255,178,255,206,255,228,255,251,255,27,0,63,0,84,0,84,0, +72,0,63,0,61,0,62,0,60,0,57,0,54,0,51,0,44,0,29,0,7,0,242,255,227,255,217,255,209,255,204,255, +205,255,215,255,228,255,234,255,229,255,219,255,222,255,248,255,37,0,84,0,120,0,146,0,168,0,183,0,183,0,167,0, +144,0,117,0,79,0,28,0,238,255,218,255,223,255,231,255,230,255,226,255,230,255,237,255,243,255,3,0,41,0,89,0, +120,0,124,0,119,0,121,0,121,0,111,0,104,0,114,0,127,0,113,0,65,0,12,0,238,255,232,255,236,255,248,255, +12,0,23,0,12,0,251,255,254,255,17,0,27,0,18,0,11,0,26,0,50,0,51,0,26,0,12,0,27,0,48,0, +51,0,50,0,69,0,100,0,116,0,110,0,99,0,92,0,82,0,71,0,65,0,64,0,55,0,38,0,24,0,27,0, +43,0,57,0,59,0,60,0,71,0,81,0,72,0,57,0,61,0,79,0,81,0,69,0,67,0,80,0,91,0,98,0, +111,0,132,0,142,0,130,0,103,0,80,0,66,0,47,0,6,0,215,255,192,255,201,255,221,255,231,255,236,255,250,255, +10,0,13,0,19,0,50,0,90,0,108,0,100,0,84,0,64,0,45,0,35,0,35,0,32,0,28,0,27,0,22,0, +17,0,27,0,52,0,70,0,70,0,64,0,55,0,37,0,16,0,7,0,4,0,248,255,234,255,235,255,251,255,13,0, +37,0,71,0,103,0,115,0,114,0,112,0,109,0,105,0,104,0,94,0,61,0,23,0,1,0,236,255,206,255,189,255, +194,255,203,255,219,255,253,255,26,0,35,0,43,0,57,0,55,0,37,0,18,0,246,255,210,255,197,255,208,255,212,255, +215,255,240,255,16,0,35,0,53,0,68,0,61,0,48,0,47,0,27,0,221,255,162,255,139,255,133,255,137,255,169,255, +206,255,228,255,1,0,41,0,59,0,54,0,49,0,33,0,249,255,210,255,191,255,177,255,171,255,194,255,230,255,255,255, +21,0,56,0,83,0,79,0,54,0,29,0,7,0,239,255,214,255,193,255,184,255,187,255,188,255,175,255,159,255,153,255, +158,255,167,255,169,255,158,255,154,255,173,255,190,255,175,255,156,255,161,255,174,255,177,255,182,255,185,255,167,255,148,255, +146,255,148,255,153,255,177,255,208,255,229,255,253,255,18,0,10,0,242,255,231,255,219,255,188,255,161,255,156,255,155,255, +141,255,122,255,118,255,126,255,128,255,120,255,117,255,126,255,131,255,133,255,146,255,175,255,206,255,229,255,240,255,243,255, +248,255,2,0,6,0,248,255,222,255,204,255,190,255,168,255,142,255,137,255,148,255,150,255,145,255,152,255,159,255,155,255, +153,255,158,255,164,255,169,255,178,255,182,255,172,255,153,255,137,255,134,255,144,255,160,255,184,255,209,255,223,255,223,255, +215,255,195,255,171,255,164,255,164,255,153,255,150,255,163,255,163,255,158,255,176,255,194,255,184,255,176,255,180,255,166,255, +142,255,135,255,135,255,137,255,143,255,134,255,118,255,128,255,146,255,140,255,152,255,193,255,201,255,171,255,159,255,156,255, +131,255,115,255,123,255,130,255,144,255,178,255,205,255,213,255,219,255,217,255,205,255,204,255,208,255,201,255,193,255,183,255, +159,255,142,255,141,255,127,255,109,255,115,255,135,255,151,255,169,255,187,255,190,255,193,255,195,255,181,255,169,255,178,255, +195,255,209,255,219,255,211,255,194,255,200,255,223,255,226,255,214,255,199,255,172,255,146,255,145,255,160,255,174,255,197,255, +229,255,247,255,251,255,252,255,250,255,245,255,243,255,239,255,225,255,209,255,202,255,206,255,211,255,210,255,208,255,210,255, +213,255,225,255,251,255,23,0,42,0,47,0,36,0,20,0,14,0,11,0,3,0,11,0,39,0,55,0,51,0,52,0, +60,0,56,0,40,0,20,0,249,255,225,255,221,255,231,255,235,255,240,255,3,0,28,0,40,0,40,0,47,0,64,0, +81,0,96,0,105,0,98,0,77,0,55,0,38,0,32,0,45,0,63,0,69,0,77,0,89,0,86,0,74,0,69,0, +47,0,9,0,3,0,34,0,58,0,67,0,60,0,18,0,221,255,207,255,223,255,237,255,254,255,19,0,46,0,95,0, +142,0,143,0,132,0,153,0,160,0,132,0,118,0,120,0,106,0,94,0,94,0,66,0,32,0,39,0,51,0,26,0, +1,0,252,255,245,255,249,255,22,0,47,0,70,0,113,0,150,0,159,0,164,0,178,0,182,0,180,0,173,0,146,0, +118,0,112,0,105,0,86,0,76,0,77,0,66,0,56,0,61,0,62,0,40,0,18,0,22,0,50,0,74,0,79,0, +90,0,120,0,139,0,142,0,165,0,200,0,193,0,161,0,152,0,141,0,103,0,83,0,102,0,103,0,72,0,56,0, +51,0,24,0,5,0,21,0,39,0,43,0,53,0,65,0,74,0,101,0,134,0,136,0,128,0,141,0,141,0,107,0, +87,0,93,0,92,0,82,0,79,0,67,0,49,0,42,0,40,0,39,0,54,0,74,0,87,0,110,0,131,0,121,0, +111,0,117,0,92,0,53,0,64,0,88,0,75,0,112,0,215,0,217,0,77,0,216,255,168,255,91,255,15,255,49,255, +156,255,247,255,68,0,138,0,188,0,248,0,58,1,64,1,10,1,211,0,144,0,47,0,247,255,6,0,23,0,11,0, +17,0,46,0,56,0,36,0,1,0,216,255,180,255,157,255,136,255,130,255,157,255,198,255,220,255,225,255,236,255,1,0, +30,0,72,0,117,0,144,0,147,0,137,0,118,0,93,0,74,0,65,0,49,0,17,0,239,255,214,255,194,255,179,255, +172,255,169,255,176,255,189,255,185,255,159,255,154,255,187,255,220,255,236,255,6,0,35,0,39,0,27,0,24,0,15,0, +248,255,233,255,232,255,228,255,229,255,243,255,255,255,0,0,253,255,252,255,243,255,225,255,207,255,200,255,200,255,194,255, +187,255,195,255,217,255,229,255,232,255,239,255,240,255,228,255,213,255,206,255,205,255,208,255,209,255,207,255,215,255,238,255, +254,255,246,255,231,255,224,255,214,255,196,255,180,255,173,255,174,255,178,255,188,255,206,255,222,255,221,255,211,255,213,255, +218,255,207,255,191,255,193,255,198,255,186,255,173,255,171,255,161,255,146,255,147,255,154,255,141,255,121,255,123,255,139,255, +157,255,183,255,208,255,210,255,201,255,203,255,199,255,183,255,182,255,200,255,205,255,196,255,199,255,203,255,183,255,162,255, +162,255,157,255,130,255,115,255,128,255,140,255,151,255,182,255,215,255,219,255,212,255,221,255,233,255,224,255,207,255,198,255, +194,255,190,255,186,255,180,255,173,255,170,255,166,255,153,255,141,255,137,255,134,255,127,255,121,255,115,255,102,255,98,255, +119,255,156,255,186,255,209,255,228,255,236,255,224,255,210,255,213,255,220,255,212,255,191,255,175,255,166,255,156,255,144,255, +142,255,154,255,170,255,177,255,173,255,171,255,177,255,178,255,168,255,154,255,144,255,131,255,121,255,129,255,148,255,156,255, +165,255,195,255,232,255,245,255,249,255,11,0,19,0,246,255,210,255,201,255,202,255,195,255,191,255,196,255,190,255,175,255, +165,255,159,255,154,255,166,255,189,255,196,255,188,255,192,255,201,255,195,255,190,255,200,255,207,255,204,255,213,255,235,255, +236,255,219,255,219,255,224,255,203,255,179,255,190,255,216,255,222,255,220,255,232,255,250,255,3,0,7,0,12,0,12,0, +1,0,238,255,215,255,185,255,166,255,167,255,168,255,163,255,172,255,193,255,205,255,217,255,238,255,247,255,239,255,233,255, +235,255,236,255,234,255,236,255,251,255,4,0,249,255,242,255,1,0,3,0,237,255,225,255,228,255,221,255,211,255,213,255, +216,255,216,255,217,255,215,255,211,255,206,255,200,255,207,255,225,255,235,255,244,255,5,0,15,0,13,0,7,0,250,255, +244,255,254,255,3,0,255,255,2,0,1,0,238,255,211,255,184,255,160,255,157,255,158,255,151,255,167,255,206,255,225,255, +225,255,230,255,234,255,235,255,247,255,1,0,0,0,0,0,0,0,251,255,251,255,0,0,10,0,25,0,26,0,15,0, +15,0,14,0,4,0,16,0,45,0,51,0,50,0,62,0,56,0,34,0,34,0,44,0,39,0,35,0,44,0,52,0, +50,0,44,0,46,0,44,0,27,0,12,0,11,0,8,0,9,0,32,0,49,0,40,0,31,0,34,0,35,0,30,0, +23,0,24,0,31,0,23,0,255,255,2,0,20,0,18,0,13,0,16,0,0,0,240,255,249,255,249,255,241,255,7,0, +32,0,33,0,64,0,128,0,142,0,91,0,9,0,124,255,205,254,121,254,154,254,222,254,49,255,169,255,61,0,196,0, +9,1,63,1,201,1,35,2,141,1,136,0,177,255,180,254,226,253,39,254,19,255,169,255,31,0,203,0,60,1,93,1, +141,1,164,1,91,1,224,0,75,0,138,255,2,255,34,255,139,255,171,255,171,255,214,255,228,255,176,255,152,255,184,255, +213,255,216,255,210,255,224,255,56,0,192,0,21,1,28,1,247,0,178,0,94,0,18,0,212,255,191,255,213,255,224,255, +226,255,3,0,42,0,71,0,109,0,115,0,62,0,21,0,18,0,1,0,247,255,18,0,33,0,14,0,12,0,31,0, +41,0,66,0,121,0,148,0,132,0,124,0,142,0,157,0,161,0,144,0,94,0,44,0,31,0,21,0,229,255,195,255, +229,255,31,0,43,0,26,0,28,0,50,0,72,0,83,0,83,0,82,0,86,0,86,0,73,0,56,0,45,0,38,0, +33,0,30,0,22,0,8,0,247,255,239,255,0,0,37,0,62,0,68,0,83,0,110,0,116,0,94,0,66,0,28,0, +225,255,180,255,184,255,219,255,254,255,31,0,69,0,128,0,204,0,230,0,159,0,77,0,80,0,78,0,214,255,92,255, +136,255,253,255,2,0,195,255,219,255,54,0,97,0,87,0,88,0,112,0,128,0,123,0,116,0,118,0,103,0,67,0, +61,0,108,0,142,0,112,0,57,0,26,0,11,0,250,255,241,255,253,255,27,0,44,0,22,0,242,255,234,255,238,255, +218,255,190,255,165,255,127,255,97,255,116,255,165,255,221,255,47,0,141,0,190,0,204,0,237,0,9,1,244,0,200,0, +166,0,110,0,7,0,145,255,57,255,26,255,62,255,129,255,181,255,228,255,40,0,95,0,92,0,54,0,10,0,196,255, +113,255,80,255,104,255,124,255,142,255,198,255,11,0,68,0,141,0,219,0,233,0,193,0,163,0,130,0,87,0,95,0, +139,0,111,0,5,0,151,255,50,255,214,254,193,254,246,254,54,255,103,255,141,255,154,255,138,255,104,255,74,255,102,255, +213,255,71,0,119,0,139,0,168,0,176,0,152,0,111,0,33,0,195,255,169,255,208,255,225,255,219,255,242,255,10,0, +7,0,254,255,245,255,252,255,28,0,14,0,205,255,189,255,184,255,120,255,118,255,175,255,120,255,57,255,126,255,113,255, +239,254,1,255,103,255,14,0,109,2,126,5,219,5,151,3,173,0,46,252,67,246,234,242,157,243,183,245,65,248,237,251, +163,255,86,2,185,4,57,7,143,9,95,11,145,11,161,9,229,6,67,4,132,1,76,255,18,254,225,252,157,251,53,251, +127,251,172,251,160,251,135,251,99,251,29,251,0,251,209,251,142,253,85,255,224,0,73,2,37,3,101,3,127,3,92,3, +210,2,25,2,50,1,86,0,12,0,16,0,235,255,240,255,34,0,233,255,79,255,153,254,194,253,46,253,50,253,104,253, +160,253,249,253,48,254,75,254,207,254,181,255,152,0,114,1,50,2,173,2,227,2,177,2,22,2,121,1,243,0,59,0, +107,255,197,254,77,254,32,254,56,254,56,254,29,254,53,254,147,254,31,255,150,255,159,255,134,255,243,255,176,0,16,1, +22,1,32,1,70,1,100,1,69,1,230,0,119,0,239,255,62,255,192,254,170,254,210,254,50,255,190,255,33,0,80,0, +127,0,152,0,124,0,63,0,228,255,144,255,117,255,109,255,100,255,145,255,208,255,218,255,223,255,4,0,18,0,20,0, +33,0,9,0,218,255,226,255,0,0,1,0,4,0,254,255,193,255,122,255,97,255,88,255,82,255,112,255,165,255,210,255, +5,0,66,0,94,0,73,0,55,0,72,0,91,0,88,0,75,0,55,0,13,0,232,255,231,255,237,255,208,255,164,255, +144,255,145,255,152,255,186,255,249,255,54,0,117,0,194,0,242,0,233,0,200,0,154,0,81,0,21,0,252,255,225,255, +191,255,181,255,178,255,178,255,200,255,224,255,222,255,224,255,243,255,254,255,11,0,42,0,73,0,96,0,111,0,114,0, +114,0,117,0,103,0,76,0,53,0,36,0,23,0,23,0,25,0,15,0,0,0,244,255,229,255,216,255,213,255,220,255, +231,255,236,255,235,255,238,255,245,255,246,255,242,255,240,255,241,255,243,255,250,255,6,0,20,0,35,0,48,0,57,0, +60,0,57,0,47,0,33,0,18,0,4,0,250,255,245,255,246,255,251,255,3,0,11,0,15,0,15,0,9,0,253,255, +237,255,220,255,205,255,197,255,197,255,207,255,227,255,255,255,31,0,62,0,89,0,106,0,113,0,107,0,90,0,65,0, +34,0,3,0,231,255,209,255,195,255,189,255,191,255,198,255,209,255,220,255,230,255,238,255,244,255,248,255,251,255,255,255, +3,0,8,0,13,0,17,0,18,0,16,0,9,0,253,255,238,255,220,255,203,255,189,255,182,255,182,255,190,255,206,255, +228,255,253,255,21,0,42,0,55,0,60,0,57,0,46,0,29,0,11,0,248,255,233,255,223,255,219,255,221,255,226,255, +233,255,239,255,242,255,240,255,234,255,223,255,209,255,195,255,183,255,175,255,174,255,179,255,191,255,208,255,228,255,249,255, +12,0,27,0,36,0,39,0,35,0,24,0,9,0,247,255,227,255,209,255,193,255,182,255,176,255,175,255,179,255,188,255, +201,255,217,255,232,255,247,255,3,0,10,0,12,0,9,0,1,0,245,255,231,255,217,255,204,255,195,255,189,255,189,255, +195,255,204,255,215,255,229,255,242,255,254,255,8,0,15,0,13,0,6,0,0,0,247,255,235,255,222,255,212,255,203,255, +199,255,201,255,203,255,203,255,203,255,205,255,207,255,210,255,213,255,213,255,211,255,209,255,209,255,212,255,216,255,223,255, +235,255,246,255,250,255,255,255,9,0,14,0,13,0,12,0,9,0,252,255,237,255,226,255,208,255,188,255,180,255,182,255, +184,255,187,255,195,255,205,255,220,255,242,255,7,0,18,0,20,0,23,0,30,0,32,0,24,0,11,0,254,255,241,255, +233,255,235,255,233,255,222,255,220,255,229,255,233,255,236,255,250,255,5,0,6,0,10,0,15,0,6,0,251,255,252,255, +2,0,2,0,1,0,3,0,3,0,2,0,1,0,5,0,12,0,15,0,13,0,8,0,254,255,243,255,245,255,253,255, +252,255,245,255,241,255,234,255,229,255,239,255,248,255,240,255,238,255,255,255,16,0,20,0,23,0,27,0,25,0,24,0, +26,0,25,0,17,0,10,0,7,0,12,0,14,0,8,0,2,0,6,0,14,0,21,0,23,0,13,0,5,0,9,0, +15,0,13,0,16,0,21,0,9,0,246,255,241,255,243,255,242,255,248,255,6,0,17,0,19,0,23,0,36,0,51,0, +55,0,45,0,37,0,37,0,33,0,21,0,9,0,5,0,11,0,28,0,44,0,51,0,58,0,62,0,57,0,52,0, +49,0,34,0,8,0,1,0,6,0,1,0,248,255,252,255,4,0,9,0,21,0,33,0,40,0,50,0,60,0,59,0, +56,0,60,0,57,0,48,0,47,0,44,0,31,0,18,0,14,0,13,0,14,0,15,0,12,0,11,0,16,0,12,0, +3,0,12,0,30,0,36,0,34,0,32,0,23,0,15,0,23,0,35,0,36,0,27,0,22,0,27,0,39,0,47,0, +45,0,40,0,43,0,54,0,65,0,73,0,78,0,83,0,79,0,69,0,63,0,62,0,62,0,67,0,72,0,62,0, +51,0,53,0,53,0,43,0,42,0,49,0,46,0,44,0,53,0,55,0,46,0,44,0,44,0,34,0,26,0,27,0, +35,0,45,0,46,0,32,0,23,0,28,0,27,0,17,0,15,0,12,0,255,255,251,255,3,0,7,0,5,0,8,0, +10,0,13,0,20,0,24,0,24,0,26,0,29,0,26,0,23,0,24,0,20,0,10,0,3,0,5,0,8,0,7,0, +13,0,27,0,38,0,44,0,51,0,57,0,58,0,59,0,55,0,41,0,26,0,18,0,9,0,255,255,253,255,7,0, +15,0,19,0,32,0,47,0,51,0,50,0,57,0,66,0,67,0,69,0,80,0,82,0,67,0,47,0,37,0,37,0, +30,0,15,0,10,0,16,0,20,0,28,0,43,0,48,0,43,0,47,0,56,0,58,0,56,0,47,0,35,0,36,0, +42,0,42,0,46,0,51,0,43,0,36,0,40,0,39,0,32,0,28,0,20,0,11,0,13,0,15,0,10,0,13,0, +21,0,22,0,24,0,25,0,21,0,25,0,33,0,25,0,14,0,8,0,0,0,255,255,13,0,17,0,3,0,248,255, +249,255,255,255,9,0,10,0,3,0,254,255,248,255,245,255,254,255,3,0,246,255,240,255,246,255,246,255,246,255,0,0, +6,0,9,0,19,0,26,0,28,0,29,0,26,0,27,0,36,0,37,0,29,0,27,0,25,0,15,0,13,0,20,0, +20,0,20,0,25,0,24,0,17,0,10,0,4,0,10,0,22,0,19,0,11,0,8,0,253,255,241,255,247,255,254,255, +243,255,233,255,230,255,227,255,232,255,249,255,6,0,16,0,22,0,16,0,6,0,254,255,242,255,237,255,249,255,7,0, +14,0,25,0,30,0,27,0,25,0,18,0,3,0,251,255,245,255,235,255,231,255,232,255,229,255,237,255,250,255,247,255, +236,255,239,255,245,255,247,255,2,0,17,0,29,0,41,0,52,0,56,0,56,0,51,0,40,0,37,0,36,0,20,0, +3,0,253,255,249,255,244,255,245,255,245,255,240,255,241,255,250,255,254,255,248,255,244,255,250,255,3,0,7,0,10,0, +23,0,33,0,29,0,24,0,21,0,8,0,247,255,244,255,248,255,249,255,0,0,11,0,15,0,16,0,19,0,18,0, +17,0,17,0,10,0,2,0,7,0,13,0,4,0,249,255,251,255,0,0,3,0,9,0,12,0,7,0,2,0,3,0, +9,0,15,0,21,0,24,0,22,0,19,0,18,0,12,0,254,255,0,0,30,0,47,0,29,0,18,0,29,0,28,0, +12,0,7,0,9,0,8,0,8,0,9,0,11,0,19,0,28,0,29,0,32,0,39,0,38,0,28,0,25,0,31,0, +36,0,32,0,23,0,22,0,31,0,34,0,30,0,28,0,23,0,17,0,18,0,19,0,21,0,33,0,35,0,18,0, +16,0,32,0,33,0,32,0,51,0,63,0,59,0,63,0,68,0,57,0,46,0,47,0,48,0,43,0,33,0,24,0, +30,0,44,0,55,0,66,0,73,0,62,0,47,0,43,0,41,0,35,0,30,0,30,0,33,0,31,0,25,0,23,0, +32,0,47,0,60,0,66,0,62,0,55,0,45,0,34,0,27,0,20,0,9,0,6,0,7,0,5,0,10,0,25,0, +29,0,23,0,19,0,12,0,5,0,17,0,35,0,38,0,31,0,29,0,27,0,16,0,250,255,231,255,224,255,224,255, +219,255,223,255,242,255,255,255,251,255,248,255,0,0,0,0,247,255,242,255,238,255,226,255,217,255,221,255,230,255,237,255, +245,255,251,255,255,255,4,0,8,0,13,0,18,0,10,0,250,255,236,255,229,255,227,255,229,255,231,255,234,255,239,255, +236,255,227,255,225,255,226,255,224,255,226,255,233,255,237,255,241,255,249,255,251,255,245,255,239,255,236,255,234,255,230,255, +230,255,237,255,239,255,232,255,235,255,252,255,8,0,11,0,11,0,9,0,6,0,2,0,250,255,245,255,245,255,244,255, +244,255,248,255,255,255,0,0,247,255,243,255,253,255,1,0,238,255,219,255,217,255,214,255,210,255,218,255,225,255,225,255, +236,255,251,255,10,0,28,0,35,0,19,0,7,0,6,0,2,0,253,255,251,255,243,255,240,255,245,255,241,255,235,255, +236,255,228,255,215,255,216,255,217,255,208,255,210,255,227,255,241,255,244,255,238,255,224,255,208,255,193,255,179,255,166,255, +159,255,154,255,157,255,171,255,188,255,199,255,203,255,204,255,201,255,196,255,191,255,184,255,179,255,181,255,179,255,169,255, +169,255,184,255,197,255,199,255,203,255,211,255,216,255,216,255,212,255,208,255,205,255,198,255,191,255,189,255,195,255,203,255, +206,255,199,255,201,255,215,255,217,255,202,255,193,255,190,255,183,255,180,255,183,255,180,255,175,255,178,255,181,255,179,255, +182,255,189,255,194,255,202,255,213,255,216,255,208,255,205,255,207,255,201,255,193,255,198,255,208,255,210,255,210,255,201,255, +184,255,183,255,196,255,204,255,214,255,231,255,236,255,229,255,221,255,211,255,207,255,208,255,198,255,184,255,184,255,187,255, +188,255,203,255,218,255,214,255,205,255,205,255,210,255,213,255,216,255,217,255,214,255,200,255,183,255,184,255,187,255,175,255, +167,255,177,255,195,255,214,255,230,255,237,255,245,255,4,0,9,0,4,0,1,0,254,255,248,255,249,255,253,255,255,255, +1,0,1,0,5,0,17,0,20,0,1,0,239,255,235,255,229,255,216,255,208,255,198,255,179,255,169,255,173,255,174,255, +173,255,179,255,185,255,184,255,189,255,199,255,203,255,210,255,217,255,211,255,205,255,209,255,210,255,209,255,219,255,224,255, +218,255,214,255,211,255,200,255,189,255,189,255,198,255,208,255,213,255,214,255,216,255,214,255,205,255,201,255,201,255,193,255, +183,255,187,255,197,255,200,255,204,255,211,255,208,255,197,255,195,255,200,255,193,255,185,255,190,255,197,255,197,255,199,255, +200,255,197,255,199,255,201,255,195,255,190,255,186,255,182,255,192,255,202,255,198,255,205,255,230,255,242,255,249,255,16,0, +39,0,52,0,72,0,92,0,98,0,96,0,92,0,89,0,86,0,76,0,64,0,63,0,61,0,51,0,48,0,48,0, +41,0,33,0,22,0,6,0,254,255,255,255,252,255,251,255,2,0,3,0,1,0,9,0,16,0,13,0,13,0,18,0, +15,0,10,0,11,0,8,0,250,255,240,255,243,255,245,255,246,255,1,0,10,0,254,255,232,255,222,255,223,255,218,255, +204,255,193,255,192,255,192,255,189,255,195,255,211,255,221,255,220,255,217,255,216,255,214,255,212,255,213,255,217,255,221,255, +222,255,222,255,220,255,210,255,201,255,204,255,216,255,222,255,218,255,211,255,220,255,242,255,254,255,254,255,254,255,1,0, +3,0,7,0,8,0,2,0,253,255,6,0,23,0,32,0,33,0,37,0,44,0,45,0,46,0,46,0,31,0,10,0, +255,255,252,255,253,255,7,0,20,0,29,0,41,0,50,0,53,0,61,0,63,0,51,0,53,0,67,0,65,0,58,0, +65,0,73,0,77,0,82,0,72,0,54,0,55,0,63,0,57,0,50,0,59,0,71,0,74,0,69,0,63,0,54,0, +40,0,31,0,31,0,33,0,39,0,43,0,36,0,33,0,45,0,51,0,52,0,67,0,78,0,58,0,37,0,33,0, +29,0,21,0,22,0,24,0,23,0,27,0,31,0,31,0,34,0,40,0,46,0,55,0,64,0,68,0,73,0,82,0, +86,0,77,0,62,0,47,0,37,0,38,0,45,0,46,0,44,0,46,0,50,0,53,0,62,0,74,0,78,0,77,0, +73,0,66,0,57,0,48,0,43,0,44,0,43,0,31,0,22,0,21,0,23,0,29,0,34,0,25,0,17,0,22,0, +29,0,31,0,39,0,41,0,31,0,30,0,45,0,53,0,40,0,22,0,23,0,40,0,49,0,46,0,43,0,42,0, +40,0,41,0,37,0,28,0,27,0,38,0,52,0,58,0,54,0,44,0,37,0,33,0,33,0,39,0,42,0,38,0, +36,0,40,0,44,0,47,0,43,0,38,0,45,0,55,0,53,0,61,0,78,0,77,0,69,0,70,0,65,0,51,0, +47,0,51,0,58,0,64,0,59,0,49,0,50,0,55,0,57,0,66,0,68,0,51,0,37,0,29,0,13,0,2,0, +8,0,11,0,4,0,3,0,3,0,0,0,8,0,27,0,36,0,34,0,34,0,33,0,17,0,254,255,246,255,248,255, +250,255,250,255,246,255,247,255,254,255,1,0,0,0,4,0,7,0,6,0,18,0,39,0,40,0,28,0,27,0,30,0, +21,0,11,0,5,0,252,255,238,255,230,255,227,255,225,255,235,255,0,0,10,0,8,0,14,0,17,0,11,0,12,0, +12,0,252,255,238,255,235,255,224,255,215,255,227,255,239,255,236,255,234,255,238,255,237,255,236,255,242,255,241,255,229,255, +225,255,227,255,220,255,212,255,223,255,239,255,234,255,222,255,215,255,208,255,212,255,231,255,243,255,241,255,242,255,241,255, +236,255,239,255,238,255,226,255,221,255,216,255,199,255,196,255,211,255,216,255,217,255,228,255,230,255,224,255,226,255,226,255, +210,255,197,255,195,255,197,255,202,255,206,255,209,255,211,255,209,255,204,255,203,255,204,255,206,255,210,255,218,255,225,255, +228,255,223,255,216,255,214,255,212,255,207,255,204,255,203,255,205,255,210,255,213,255,213,255,214,255,214,255,214,255,217,255, +218,255,213,255,211,255,215,255,215,255,216,255,225,255,227,255,220,255,217,255,222,255,220,255,210,255,209,255,224,255,242,255, +252,255,4,0,12,0,12,0,3,0,0,0,6,0,8,0,0,0,251,255,252,255,244,255,229,255,219,255,214,255,208,255, +200,255,182,255,164,255,165,255,173,255,169,255,166,255,167,255,158,255,149,255,151,255,153,255,152,255,161,255,171,255,166,255, +155,255,151,255,155,255,155,255,149,255,143,255,138,255,133,255,139,255,155,255,162,255,167,255,180,255,189,255,194,255,206,255, +213,255,203,255,192,255,190,255,191,255,194,255,194,255,192,255,203,255,222,255,233,255,244,255,2,0,1,0,247,255,245,255, +245,255,235,255,227,255,229,255,231,255,225,255,220,255,224,255,226,255,227,255,245,255,12,0,11,0,0,0,0,0,251,255, +232,255,217,255,210,255,210,255,220,255,224,255,216,255,212,255,218,255,219,255,216,255,217,255,221,255,223,255,231,255,249,255, +9,0,10,0,3,0,252,255,243,255,235,255,229,255,220,255,209,255,208,255,214,255,216,255,223,255,235,255,240,255,240,255, +241,255,242,255,240,255,237,255,230,255,225,255,226,255,230,255,229,255,231,255,241,255,246,255,234,255,218,255,205,255,194,255, +191,255,188,255,178,255,173,255,186,255,200,255,210,255,225,255,235,255,234,255,234,255,232,255,217,255,208,255,210,255,204,255, +194,255,196,255,209,255,225,255,232,255,231,255,235,255,240,255,228,255,211,255,203,255,194,255,183,255,183,255,181,255,177,255, +187,255,209,255,224,255,232,255,234,255,235,255,237,255,236,255,234,255,237,255,234,255,219,255,211,255,215,255,216,255,212,255, +213,255,216,255,221,255,228,255,231,255,228,255,221,255,214,255,211,255,215,255,226,255,233,255,230,255,225,255,233,255,241,255, +240,255,242,255,241,255,227,255,214,255,211,255,206,255,204,255,214,255,218,255,217,255,227,255,237,255,230,255,218,255,219,255, +226,255,227,255,225,255,231,255,245,255,250,255,242,255,239,255,246,255,252,255,2,0,4,0,0,0,250,255,248,255,244,255, +238,255,230,255,226,255,230,255,239,255,244,255,249,255,3,0,1,0,241,255,233,255,235,255,230,255,225,255,229,255,224,255, +209,255,210,255,216,255,209,255,207,255,221,255,226,255,225,255,229,255,221,255,204,255,208,255,221,255,221,255,220,255,222,255, +217,255,217,255,221,255,215,255,206,255,206,255,206,255,210,255,218,255,219,255,219,255,230,255,238,255,239,255,244,255,245,255, +238,255,235,255,234,255,228,255,230,255,243,255,251,255,253,255,1,0,1,0,254,255,1,0,10,0,13,0,11,0,7,0, +1,0,251,255,249,255,250,255,250,255,254,255,3,0,5,0,6,0,9,0,5,0,2,0,7,0,13,0,21,0,30,0, +27,0,15,0,15,0,22,0,16,0,8,0,6,0,2,0,3,0,11,0,13,0,8,0,5,0,0,0,255,255,7,0, +8,0,255,255,0,0,5,0,1,0,0,0,8,0,10,0,8,0,9,0,11,0,11,0,16,0,21,0,20,0,18,0, +16,0,18,0,27,0,40,0,39,0,26,0,17,0,22,0,29,0,28,0,28,0,32,0,30,0,18,0,11,0,11,0, +5,0,251,255,252,255,254,255,255,255,15,0,37,0,38,0,33,0,40,0,44,0,41,0,39,0,28,0,8,0,2,0, +4,0,1,0,1,0,9,0,7,0,3,0,9,0,14,0,12,0,14,0,14,0,4,0,254,255,4,0,11,0,12,0, +13,0,15,0,18,0,21,0,25,0,24,0,18,0,20,0,31,0,31,0,27,0,34,0,37,0,24,0,12,0,15,0, +11,0,248,255,237,255,247,255,6,0,7,0,0,0,248,255,245,255,248,255,0,0,7,0,14,0,21,0,20,0,17,0, +13,0,3,0,249,255,252,255,252,255,245,255,246,255,254,255,250,255,242,255,246,255,254,255,2,0,7,0,12,0,13,0, +11,0,11,0,12,0,11,0,12,0,17,0,23,0,24,0,22,0,17,0,5,0,248,255,244,255,248,255,251,255,253,255, +255,255,253,255,253,255,2,0,7,0,11,0,18,0,19,0,11,0,7,0,13,0,16,0,12,0,6,0,4,0,3,0, +254,255,246,255,244,255,250,255,250,255,245,255,249,255,1,0,7,0,16,0,26,0,24,0,15,0,9,0,3,0,255,255, +0,0,253,255,245,255,242,255,244,255,247,255,245,255,236,255,228,255,233,255,241,255,235,255,226,255,226,255,227,255,231,255, +243,255,251,255,244,255,235,255,236,255,242,255,244,255,244,255,242,255,236,255,225,255,220,255,230,255,243,255,242,255,234,255, +233,255,235,255,229,255,220,255,214,255,213,255,216,255,218,255,219,255,228,255,239,255,234,255,218,255,216,255,223,255,220,255, +210,255,202,255,192,255,186,255,188,255,194,255,200,255,211,255,221,255,222,255,222,255,228,255,236,255,239,255,236,255,239,255, +255,255,15,0,12,0,3,0,0,0,247,255,231,255,227,255,231,255,227,255,218,255,218,255,227,255,232,255,226,255,216,255, +215,255,220,255,220,255,223,255,234,255,238,255,234,255,233,255,235,255,236,255,239,255,243,255,238,255,231,255,230,255,227,255, +220,255,219,255,222,255,223,255,231,255,241,255,242,255,238,255,240,255,240,255,236,255,236,255,238,255,237,255,237,255,240,255, +243,255,242,255,235,255,228,255,225,255,226,255,231,255,235,255,231,255,221,255,217,255,213,255,205,255,204,255,220,255,237,255, +239,255,233,255,230,255,231,255,233,255,235,255,236,255,234,255,225,255,213,255,208,255,214,255,221,255,224,255,227,255,229,255, +227,255,225,255,227,255,231,255,234,255,239,255,244,255,245,255,246,255,245,255,243,255,247,255,3,0,11,0,8,0,254,255, +249,255,1,0,12,0,12,0,254,255,243,255,242,255,243,255,234,255,225,255,226,255,230,255,234,255,241,255,250,255,253,255, +254,255,4,0,6,0,255,255,255,255,8,0,10,0,0,0,246,255,238,255,225,255,209,255,200,255,202,255,211,255,213,255, +210,255,214,255,227,255,235,255,235,255,231,255,230,255,234,255,237,255,236,255,234,255,238,255,244,255,246,255,250,255,4,0, +8,0,2,0,254,255,6,0,19,0,21,0,18,0,20,0,24,0,21,0,15,0,10,0,4,0,255,255,2,0,4,0, +3,0,5,0,7,0,4,0,3,0,6,0,2,0,250,255,252,255,3,0,8,0,19,0,27,0,22,0,15,0,12,0, +4,0,255,255,6,0,15,0,9,0,0,0,254,255,0,0,255,255,247,255,239,255,239,255,244,255,241,255,233,255,232,255, +235,255,243,255,253,255,2,0,254,255,251,255,252,255,0,0,6,0,14,0,20,0,19,0,5,0,241,255,237,255,244,255, +239,255,232,255,244,255,6,0,11,0,19,0,29,0,26,0,17,0,18,0,21,0,19,0,20,0,19,0,15,0,14,0, +10,0,3,0,3,0,6,0,0,0,252,255,2,0,1,0,248,255,242,255,231,255,218,255,219,255,232,255,239,255,243,255, +248,255,248,255,247,255,250,255,255,255,253,255,244,255,232,255,223,255,221,255,218,255,219,255,234,255,251,255,255,255,5,0, +19,0,30,0,40,0,54,0,56,0,47,0,40,0,32,0,16,0,10,0,11,0,3,0,247,255,240,255,228,255,211,255, +202,255,203,255,211,255,231,255,255,255,13,0,18,0,18,0,19,0,28,0,36,0,33,0,27,0,24,0,14,0,6,0, +9,0,8,0,252,255,249,255,250,255,239,255,227,255,229,255,228,255,222,255,226,255,238,255,242,255,242,255,243,255,242,255, +247,255,253,255,4,0,17,0,32,0,34,0,31,0,34,0,39,0,39,0,39,0,33,0,20,0,18,0,28,0,32,0, +28,0,30,0,33,0,30,0,28,0,25,0,19,0,16,0,16,0,17,0,16,0,9,0,2,0,0,0,251,255,243,255, +251,255,14,0,17,0,10,0,17,0,20,0,4,0,243,255,238,255,234,255,231,255,233,255,225,255,209,255,201,255,201,255, +205,255,217,255,225,255,219,255,215,255,223,255,222,255,206,255,196,255,196,255,194,255,192,255,197,255,201,255,203,255,208,255, +217,255,224,255,228,255,232,255,237,255,239,255,237,255,240,255,247,255,248,255,246,255,252,255,4,0,3,0,255,255,254,255, +254,255,253,255,251,255,253,255,4,0,7,0,254,255,250,255,8,0,17,0,10,0,8,0,14,0,10,0,2,0,8,0, +16,0,16,0,22,0,29,0,24,0,13,0,7,0,6,0,6,0,8,0,6,0,254,255,251,255,250,255,245,255,239,255, +235,255,229,255,222,255,222,255,224,255,224,255,227,255,232,255,229,255,222,255,227,255,238,255,238,255,232,255,237,255,249,255, +251,255,248,255,254,255,7,0,7,0,6,0,10,0,6,0,253,255,2,0,17,0,19,0,6,0,251,255,241,255,230,255, +222,255,221,255,220,255,216,255,207,255,200,255,203,255,203,255,191,255,183,255,193,255,206,255,207,255,206,255,208,255,208,255, +208,255,208,255,202,255,193,255,194,255,202,255,203,255,202,255,208,255,220,255,227,255,224,255,222,255,229,255,237,255,234,255, +234,255,245,255,254,255,253,255,248,255,242,255,236,255,236,255,237,255,234,255,231,255,229,255,228,255,228,255,225,255,216,255, +214,255,226,255,236,255,232,255,230,255,236,255,236,255,232,255,230,255,230,255,231,255,233,255,232,255,230,255,232,255,234,255, +230,255,224,255,220,255,214,255,208,255,204,255,206,255,213,255,217,255,213,255,209,255,216,255,225,255,228,255,231,255,233,255, +230,255,225,255,226,255,228,255,228,255,225,255,220,255,223,255,231,255,227,255,218,255,225,255,241,255,243,255,240,255,244,255, +241,255,231,255,229,255,231,255,228,255,232,255,239,255,233,255,223,255,228,255,242,255,248,255,246,255,246,255,249,255,246,255, +237,255,233,255,237,255,239,255,234,255,231,255,233,255,240,255,253,255,11,0,16,0,12,0,8,0,4,0,253,255,250,255, +247,255,246,255,246,255,239,255,226,255,223,255,231,255,234,255,231,255,229,255,227,255,229,255,240,255,248,255,248,255,249,255, +249,255,242,255,241,255,251,255,251,255,243,255,248,255,3,0,1,0,249,255,242,255,231,255,222,255,229,255,241,255,240,255, +231,255,225,255,223,255,223,255,226,255,228,255,226,255,228,255,239,255,251,255,252,255,251,255,4,0,13,0,11,0,9,0, +18,0,20,0,13,0,9,0,6,0,253,255,249,255,251,255,248,255,238,255,233,255,236,255,245,255,253,255,0,0,255,255, +1,0,4,0,7,0,17,0,24,0,22,0,21,0,23,0,18,0,12,0,18,0,26,0,22,0,16,0,14,0,9,0, +4,0,2,0,1,0,0,0,3,0,3,0,254,255,252,255,0,0,2,0,0,0,255,255,1,0,2,0,0,0,255,255, +1,0,2,0,5,0,14,0,20,0,8,0,246,255,242,255,248,255,251,255,246,255,240,255,236,255,240,255,249,255,254,255, +254,255,253,255,253,255,254,255,4,0,8,0,7,0,4,0,6,0,12,0,15,0,14,0,8,0,3,0,0,0,253,255, +252,255,255,255,3,0,8,0,13,0,16,0,15,0,19,0,24,0,18,0,6,0,1,0,0,0,247,255,237,255,240,255, +250,255,3,0,8,0,14,0,21,0,27,0,32,0,37,0,41,0,41,0,42,0,47,0,49,0,42,0,31,0,27,0, +22,0,8,0,244,255,233,255,231,255,228,255,224,255,225,255,226,255,223,255,221,255,227,255,229,255,223,255,223,255,234,255, +237,255,229,255,221,255,220,255,221,255,228,255,236,255,239,255,240,255,245,255,253,255,6,0,13,0,20,0,22,0,13,0, +251,255,233,255,222,255,214,255,205,255,201,255,201,255,201,255,204,255,209,255,212,255,213,255,220,255,232,255,239,255,241,255, +244,255,249,255,252,255,251,255,251,255,251,255,248,255,244,255,244,255,248,255,248,255,246,255,247,255,252,255,4,0,14,0, +26,0,36,0,42,0,42,0,38,0,35,0,35,0,35,0,37,0,45,0,50,0,52,0,53,0,53,0,51,0,54,0, +64,0,71,0,67,0,60,0,58,0,59,0,58,0,50,0,44,0,45,0,43,0,31,0,16,0,10,0,5,0,253,255, +252,255,3,0,7,0,0,0,245,255,238,255,234,255,224,255,211,255,203,255,199,255,194,255,191,255,196,255,208,255,221,255, +229,255,227,255,217,255,210,255,210,255,210,255,207,255,207,255,210,255,211,255,212,255,216,255,220,255,218,255,209,255,201,255, +201,255,206,255,209,255,210,255,208,255,202,255,198,255,199,255,202,255,205,255,208,255,210,255,216,255,228,255,238,255,239,255, +243,255,254,255,5,0,3,0,0,0,251,255,243,255,240,255,245,255,250,255,249,255,248,255,253,255,12,0,24,0,24,0, +22,0,31,0,47,0,58,0,65,0,71,0,72,0,69,0,70,0,73,0,71,0,60,0,52,0,50,0,46,0,33,0, +22,0,17,0,11,0,1,0,252,255,251,255,247,255,246,255,252,255,2,0,5,0,8,0,14,0,22,0,30,0,34,0, +32,0,29,0,26,0,23,0,22,0,21,0,19,0,23,0,30,0,33,0,28,0,22,0,18,0,14,0,12,0,8,0, +255,255,243,255,238,255,241,255,247,255,248,255,246,255,248,255,0,0,6,0,3,0,252,255,249,255,252,255,0,0,0,0, +250,255,240,255,236,255,240,255,242,255,236,255,228,255,227,255,231,255,231,255,232,255,239,255,247,255,250,255,254,255,3,0, +1,0,251,255,250,255,248,255,240,255,233,255,235,255,235,255,231,255,231,255,235,255,235,255,227,255,219,255,219,255,222,255, +222,255,224,255,234,255,246,255,251,255,251,255,254,255,3,0,5,0,8,0,13,0,18,0,19,0,16,0,12,0,6,0, +1,0,252,255,250,255,252,255,0,0,1,0,251,255,245,255,249,255,2,0,2,0,252,255,0,0,9,0,7,0,253,255, +255,255,12,0,19,0,17,0,10,0,4,0,0,0,2,0,6,0,8,0,10,0,17,0,20,0,14,0,6,0,4,0, +4,0,0,0,254,255,252,255,246,255,238,255,239,255,247,255,251,255,254,255,3,0,8,0,9,0,13,0,19,0,18,0, +11,0,10,0,13,0,10,0,2,0,255,255,1,0,0,0,252,255,250,255,250,255,250,255,253,255,1,0,1,0,255,255, +2,0,5,0,5,0,3,0,0,0,247,255,241,255,249,255,7,0,9,0,1,0,251,255,249,255,242,255,234,255,230,255, +227,255,226,255,230,255,238,255,244,255,247,255,252,255,255,255,249,255,238,255,231,255,228,255,225,255,219,255,214,255,213,255, +220,255,233,255,244,255,244,255,240,255,239,255,242,255,247,255,252,255,253,255,252,255,252,255,2,0,6,0,3,0,248,255, +241,255,243,255,248,255,251,255,255,255,8,0,16,0,15,0,10,0,9,0,9,0,7,0,6,0,8,0,9,0,7,0, +8,0,10,0,9,0,2,0,252,255,253,255,3,0,12,0,21,0,23,0,17,0,11,0,12,0,16,0,13,0,7,0, +8,0,13,0,12,0,2,0,250,255,249,255,253,255,4,0,13,0,20,0,23,0,32,0,48,0,57,0,47,0,29,0, +20,0,19,0,14,0,8,0,5,0,5,0,4,0,5,0,6,0,4,0,2,0,5,0,15,0,24,0,30,0,32,0, +32,0,30,0,30,0,27,0,17,0,6,0,3,0,5,0,4,0,3,0,9,0,19,0,25,0,26,0,26,0,24,0, +15,0,6,0,0,0,253,255,249,255,244,255,241,255,242,255,245,255,245,255,243,255,246,255,4,0,16,0,14,0,8,0, +7,0,9,0,9,0,8,0,6,0,1,0,254,255,4,0,11,0,12,0,13,0,18,0,19,0,10,0,3,0,0,0, +251,255,243,255,240,255,241,255,239,255,232,255,226,255,224,255,228,255,237,255,246,255,250,255,1,0,10,0,16,0,18,0, +23,0,28,0,25,0,19,0,22,0,26,0,19,0,5,0,255,255,254,255,255,255,4,0,13,0,16,0,12,0,12,0, +16,0,14,0,10,0,11,0,14,0,11,0,13,0,23,0,31,0,33,0,37,0,47,0,50,0,45,0,41,0,38,0, +31,0,21,0,17,0,19,0,19,0,15,0,12,0,6,0,1,0,1,0,11,0,20,0,23,0,20,0,19,0,22,0, +21,0,14,0,4,0,255,255,0,0,255,255,252,255,250,255,248,255,242,255,238,255,246,255,3,0,9,0,10,0,21,0, +40,0,50,0,47,0,41,0,37,0,29,0,22,0,19,0,16,0,7,0,0,0,0,0,255,255,245,255,237,255,237,255, +237,255,230,255,225,255,224,255,218,255,204,255,194,255,192,255,189,255,185,255,191,255,201,255,202,255,197,255,201,255,214,255, +223,255,226,255,227,255,227,255,225,255,224,255,228,255,236,255,245,255,252,255,1,0,10,0,25,0,39,0,47,0,50,0, +55,0,55,0,48,0,40,0,40,0,41,0,39,0,39,0,42,0,44,0,46,0,53,0,62,0,63,0,57,0,53,0, +55,0,56,0,51,0,44,0,39,0,36,0,35,0,36,0,40,0,43,0,43,0,40,0,38,0,35,0,30,0,24,0, +23,0,24,0,25,0,32,0,48,0,58,0,53,0,42,0,37,0,31,0,21,0,15,0,15,0,13,0,7,0,8,0, +11,0,10,0,8,0,9,0,9,0,3,0,255,255,252,255,245,255,234,255,232,255,236,255,236,255,232,255,229,255,226,255, +221,255,220,255,227,255,234,255,237,255,240,255,243,255,241,255,235,255,227,255,216,255,205,255,198,255,192,255,186,255,186,255, +195,255,205,255,206,255,206,255,211,255,213,255,208,255,206,255,211,255,214,255,213,255,215,255,222,255,226,255,225,255,229,255, +238,255,241,255,240,255,241,255,247,255,251,255,250,255,246,255,242,255,234,255,225,255,218,255,218,255,223,255,226,255,225,255, +226,255,230,255,228,255,220,255,212,255,209,255,208,255,208,255,211,255,216,255,217,255,218,255,227,255,240,255,247,255,244,255, +237,255,232,255,225,255,216,255,210,255,208,255,207,255,209,255,217,255,222,255,222,255,221,255,225,255,227,255,222,255,219,255, +221,255,222,255,215,255,208,255,207,255,209,255,211,255,218,255,231,255,240,255,242,255,244,255,248,255,248,255,241,255,227,255, +211,255,197,255,189,255,187,255,187,255,186,255,183,255,178,255,178,255,186,255,197,255,201,255,200,255,201,255,204,255,206,255, +208,255,213,255,221,255,230,255,238,255,240,255,238,255,240,255,244,255,242,255,231,255,227,255,232,255,235,255,232,255,230,255, +230,255,225,255,219,255,219,255,219,255,214,255,210,255,212,255,211,255,206,255,210,255,220,255,225,255,224,255,229,255,236,255, +233,255,223,255,219,255,222,255,221,255,221,255,224,255,225,255,220,255,214,255,214,255,214,255,208,255,202,255,201,255,204,255, +206,255,204,255,199,255,197,255,200,255,204,255,204,255,202,255,201,255,199,255,196,255,195,255,197,255,201,255,203,255,203,255, +200,255,198,255,198,255,200,255,200,255,203,255,208,255,211,255,210,255,205,255,201,255,201,255,203,255,204,255,203,255,202,255, +203,255,206,255,208,255,207,255,206,255,204,255,202,255,200,255,193,255,184,255,180,255,184,255,191,255,194,255,198,255,205,255, +208,255,205,255,208,255,217,255,218,255,210,255,205,255,204,255,196,255,184,255,184,255,192,255,194,255,188,255,190,255,198,255, +198,255,190,255,189,255,194,255,196,255,194,255,197,255,206,255,211,255,208,255,203,255,202,255,204,255,206,255,207,255,207,255, +207,255,211,255,221,255,232,255,233,255,229,255,227,255,230,255,231,255,228,255,226,255,225,255,220,255,214,255,213,255,217,255, +218,255,218,255,223,255,231,255,234,255,232,255,229,255,226,255,223,255,220,255,225,255,232,255,237,255,239,255,246,255,2,0, +10,0,12,0,12,0,11,0,4,0,252,255,251,255,254,255,253,255,246,255,244,255,244,255,241,255,238,255,236,255,231,255, +221,255,214,255,211,255,208,255,205,255,212,255,224,255,232,255,239,255,252,255,11,0,18,0,18,0,18,0,15,0,6,0, +252,255,245,255,239,255,236,255,238,255,243,255,246,255,248,255,252,255,0,0,0,0,2,0,6,0,7,0,4,0,7,0, +18,0,25,0,22,0,14,0,12,0,17,0,23,0,28,0,31,0,36,0,42,0,49,0,55,0,57,0,51,0,40,0, +30,0,23,0,16,0,6,0,254,255,250,255,250,255,251,255,250,255,247,255,248,255,253,255,0,0,253,255,253,255,5,0, +19,0,28,0,33,0,38,0,39,0,37,0,38,0,44,0,50,0,49,0,46,0,43,0,38,0,36,0,39,0,45,0, +45,0,38,0,32,0,31,0,30,0,27,0,26,0,28,0,28,0,26,0,25,0,28,0,30,0,28,0,29,0,38,0, +47,0,47,0,38,0,32,0,29,0,26,0,24,0,24,0,22,0,18,0,17,0,21,0,26,0,31,0,36,0,39,0, +34,0,28,0,29,0,35,0,40,0,46,0,53,0,57,0,57,0,57,0,59,0,58,0,54,0,52,0,57,0,63,0, +65,0,59,0,51,0,47,0,48,0,51,0,52,0,50,0,46,0,41,0,39,0,41,0,41,0,40,0,42,0,43,0, +40,0,33,0,30,0,29,0,25,0,21,0,24,0,29,0,32,0,36,0,44,0,51,0,52,0,50,0,52,0,51,0, +42,0,34,0,34,0,37,0,37,0,37,0,38,0,39,0,37,0,35,0,33,0,30,0,25,0,16,0,7,0,253,255, +246,255,247,255,253,255,4,0,10,0,16,0,25,0,33,0,39,0,41,0,40,0,37,0,31,0,24,0,16,0,11,0, +9,0,13,0,24,0,41,0,59,0,67,0,66,0,63,0,57,0,46,0,31,0,21,0,20,0,16,0,7,0,253,255, +250,255,255,255,10,0,23,0,31,0,35,0,39,0,45,0,50,0,49,0,45,0,37,0,25,0,9,0,253,255,244,255, +236,255,234,255,244,255,5,0,21,0,31,0,40,0,51,0,61,0,64,0,55,0,38,0,22,0,12,0,5,0,255,255, +0,0,12,0,31,0,45,0,52,0,57,0,59,0,54,0,44,0,34,0,27,0,20,0,12,0,10,0,12,0,15,0, +14,0,11,0,9,0,6,0,3,0,2,0,1,0,252,255,248,255,248,255,251,255,253,255,255,255,2,0,8,0,11,0, +13,0,15,0,19,0,22,0,22,0,21,0,22,0,26,0,26,0,20,0,12,0,7,0,5,0,0,0,250,255,245,255, +243,255,243,255,248,255,0,0,5,0,3,0,254,255,250,255,246,255,242,255,240,255,239,255,234,255,227,255,223,255,225,255, +227,255,227,255,227,255,230,255,232,255,231,255,229,255,228,255,226,255,222,255,219,255,218,255,220,255,221,255,223,255,226,255, +231,255,237,255,244,255,250,255,252,255,248,255,243,255,241,255,241,255,243,255,248,255,254,255,1,0,253,255,251,255,254,255, +5,0,10,0,12,0,10,0,7,0,5,0,4,0,5,0,7,0,8,0,6,0,0,0,247,255,239,255,233,255,229,255, +227,255,229,255,235,255,242,255,247,255,251,255,255,255,3,0,2,0,251,255,241,255,234,255,233,255,232,255,230,255,232,255, +238,255,242,255,240,255,237,255,238,255,239,255,237,255,232,255,230,255,230,255,230,255,230,255,228,255,224,255,219,255,218,255, +221,255,225,255,226,255,227,255,225,255,221,255,219,255,219,255,221,255,220,255,219,255,220,255,221,255,219,255,217,255,220,255, +226,255,231,255,232,255,231,255,229,255,230,255,232,255,232,255,228,255,223,255,220,255,218,255,215,255,213,255,216,255,221,255, +225,255,225,255,223,255,218,255,214,255,214,255,217,255,216,255,208,255,202,255,202,255,203,255,202,255,201,255,202,255,203,255, +203,255,202,255,201,255,194,255,186,255,184,255,189,255,193,255,193,255,193,255,196,255,200,255,203,255,207,255,213,255,216,255, +219,255,223,255,223,255,219,255,217,255,219,255,221,255,219,255,219,255,223,255,221,255,211,255,201,255,202,255,207,255,214,255, +221,255,226,255,223,255,215,255,213,255,219,255,222,255,218,255,215,255,217,255,220,255,221,255,224,255,229,255,231,255,232,255, +235,255,237,255,234,255,228,255,227,255,227,255,223,255,217,255,219,255,225,255,230,255,230,255,233,255,234,255,231,255,225,255, +224,255,225,255,222,255,218,255,217,255,222,255,226,255,229,255,232,255,233,255,232,255,230,255,229,255,231,255,235,255,239,255, +239,255,233,255,227,255,225,255,224,255,221,255,222,255,230,255,239,255,243,255,241,255,240,255,242,255,245,255,249,255,252,255, +252,255,249,255,250,255,1,0,5,0,5,0,4,0,6,0,8,0,9,0,8,0,8,0,6,0,4,0,5,0,8,0, +8,0,6,0,7,0,12,0,16,0,15,0,12,0,13,0,14,0,14,0,13,0,16,0,22,0,27,0,31,0,31,0, +26,0,20,0,17,0,17,0,13,0,6,0,1,0,4,0,11,0,16,0,17,0,15,0,13,0,14,0,15,0,11,0, +6,0,4,0,6,0,11,0,16,0,19,0,21,0,20,0,18,0,16,0,15,0,12,0,8,0,9,0,13,0,15,0, +15,0,17,0,21,0,24,0,26,0,28,0,29,0,28,0,25,0,25,0,26,0,25,0,26,0,31,0,35,0,33,0, +27,0,25,0,29,0,30,0,25,0,20,0,18,0,16,0,13,0,12,0,13,0,9,0,1,0,248,255,242,255,242,255, +246,255,251,255,253,255,251,255,253,255,3,0,9,0,8,0,3,0,255,255,253,255,249,255,247,255,248,255,251,255,253,255, +252,255,251,255,251,255,246,255,237,255,229,255,227,255,230,255,231,255,229,255,230,255,235,255,240,255,240,255,235,255,233,255, +235,255,237,255,237,255,233,255,231,255,233,255,237,255,239,255,240,255,243,255,249,255,255,255,2,0,0,0,254,255,249,255, +240,255,235,255,237,255,243,255,245,255,242,255,244,255,249,255,253,255,253,255,252,255,252,255,250,255,250,255,254,255,5,0, +8,0,6,0,2,0,253,255,248,255,243,255,239,255,235,255,230,255,228,255,233,255,242,255,248,255,251,255,252,255,254,255, +253,255,250,255,249,255,252,255,3,0,10,0,14,0,15,0,15,0,15,0,14,0,12,0,7,0,1,0,252,255,248,255, +247,255,248,255,251,255,1,0,6,0,9,0,9,0,10,0,12,0,13,0,14,0,16,0,19,0,17,0,12,0,11,0, +16,0,18,0,14,0,10,0,12,0,15,0,14,0,10,0,6,0,2,0,251,255,245,255,245,255,250,255,1,0,11,0, +17,0,18,0,18,0,22,0,28,0,31,0,29,0,23,0,15,0,7,0,5,0,10,0,17,0,16,0,10,0,6,0, +6,0,7,0,5,0,1,0,253,255,251,255,253,255,2,0,5,0,3,0,2,0,3,0,4,0,1,0,254,255,254,255, +2,0,5,0,10,0,16,0,20,0,21,0,19,0,18,0,16,0,15,0,17,0,22,0,29,0,33,0,34,0,33,0, +32,0,31,0,30,0,28,0,26,0,24,0,25,0,28,0,28,0,22,0,13,0,9,0,11,0,12,0,9,0,4,0, +4,0,7,0,8,0,8,0,11,0,11,0,6,0,1,0,255,255,254,255,247,255,238,255,235,255,238,255,242,255,244,255, +245,255,247,255,247,255,247,255,248,255,248,255,246,255,246,255,252,255,2,0,6,0,7,0,8,0,9,0,8,0,7,0, +8,0,9,0,8,0,6,0,5,0,5,0,2,0,255,255,255,255,4,0,10,0,13,0,13,0,14,0,15,0,15,0, +13,0,10,0,10,0,11,0,14,0,17,0,16,0,10,0,2,0,253,255,252,255,250,255,247,255,245,255,247,255,248,255, +248,255,248,255,248,255,245,255,240,255,237,255,235,255,232,255,231,255,236,255,243,255,248,255,249,255,254,255,7,0,13,0, +15,0,17,0,19,0,20,0,20,0,19,0,16,0,12,0,10,0,6,0,253,255,237,255,222,255,216,255,216,255,219,255, +224,255,229,255,230,255,230,255,234,255,243,255,249,255,249,255,247,255,247,255,244,255,242,255,243,255,250,255,254,255,255,255, +254,255,253,255,249,255,245,255,242,255,242,255,246,255,252,255,2,0,2,0,253,255,248,255,250,255,254,255,255,255,252,255, +248,255,246,255,244,255,244,255,245,255,243,255,238,255,234,255,233,255,234,255,235,255,234,255,233,255,232,255,231,255,228,255, +227,255,229,255,234,255,238,255,238,255,236,255,238,255,243,255,246,255,246,255,246,255,247,255,248,255,251,255,1,0,8,0, +13,0,14,0,12,0,9,0,7,0,5,0,3,0,253,255,250,255,252,255,3,0,11,0,17,0,24,0,30,0,31,0, +29,0,27,0,24,0,18,0,12,0,10,0,9,0,6,0,3,0,4,0,6,0,3,0,253,255,249,255,250,255,249,255, +250,255,255,255,6,0,11,0,15,0,18,0,20,0,18,0,12,0,7,0,2,0,252,255,248,255,247,255,247,255,248,255, +254,255,8,0,14,0,13,0,9,0,10,0,12,0,10,0,8,0,13,0,24,0,33,0,35,0,33,0,29,0,22,0, +15,0,11,0,11,0,14,0,15,0,15,0,12,0,8,0,5,0,3,0,4,0,6,0,8,0,8,0,6,0,2,0, +1,0,4,0,11,0,17,0,21,0,25,0,30,0,34,0,34,0,30,0,25,0,18,0,10,0,1,0,254,255,2,0, +7,0,8,0,5,0,3,0,5,0,5,0,2,0,254,255,252,255,254,255,3,0,10,0,14,0,15,0,14,0,13,0, +12,0,9,0,3,0,254,255,250,255,249,255,252,255,0,0,1,0,253,255,249,255,250,255,254,255,255,255,253,255,251,255, +250,255,247,255,245,255,246,255,251,255,254,255,253,255,248,255,241,255,235,255,234,255,236,255,237,255,239,255,240,255,241,255, +238,255,232,255,229,255,229,255,227,255,224,255,224,255,228,255,232,255,232,255,231,255,233,255,233,255,230,255,227,255,222,255, +213,255,205,255,205,255,211,255,215,255,214,255,213,255,213,255,210,255,205,255,204,255,209,255,212,255,211,255,211,255,214,255, +215,255,214,255,215,255,218,255,217,255,214,255,213,255,216,255,220,255,221,255,223,255,227,255,229,255,229,255,228,255,225,255, +220,255,216,255,218,255,225,255,230,255,233,255,236,255,242,255,245,255,242,255,237,255,234,255,232,255,229,255,225,255,222,255, +221,255,221,255,221,255,220,255,217,255,212,255,206,255,204,255,206,255,207,255,208,255,209,255,213,255,216,255,219,255,221,255, +225,255,231,255,235,255,235,255,232,255,231,255,230,255,228,255,223,255,221,255,222,255,226,255,227,255,226,255,225,255,226,255, +228,255,227,255,222,255,214,255,210,255,211,255,214,255,213,255,213,255,218,255,225,255,228,255,229,255,231,255,235,255,239,255, +240,255,239,255,237,255,234,255,232,255,232,255,231,255,230,255,232,255,237,255,238,255,233,255,227,255,225,255,225,255,223,255, +220,255,222,255,226,255,226,255,224,255,223,255,226,255,227,255,226,255,224,255,224,255,224,255,226,255,230,255,235,255,240,255, +243,255,244,255,244,255,245,255,247,255,249,255,247,255,246,255,250,255,4,0,13,0,15,0,15,0,17,0,18,0,16,0, +11,0,10,0,11,0,12,0,10,0,8,0,9,0,11,0,13,0,13,0,15,0,17,0,17,0,14,0,13,0,16,0, +20,0,22,0,22,0,21,0,18,0,18,0,20,0,21,0,17,0,10,0,9,0,15,0,22,0,24,0,25,0,27,0, +27,0,27,0,28,0,30,0,28,0,24,0,22,0,22,0,17,0,13,0,16,0,21,0,18,0,9,0,6,0,12,0, +15,0,13,0,12,0,16,0,19,0,16,0,12,0,11,0,9,0,7,0,9,0,15,0,18,0,16,0,12,0,10,0, +9,0,9,0,11,0,14,0,13,0,9,0,10,0,15,0,19,0,21,0,20,0,18,0,11,0,3,0,254,255,251,255, +248,255,245,255,243,255,243,255,243,255,244,255,245,255,247,255,248,255,250,255,252,255,253,255,254,255,2,0,4,0,2,0, +254,255,254,255,2,0,3,0,1,0,0,0,5,0,11,0,13,0,11,0,8,0,5,0,5,0,8,0,10,0,7,0, +2,0,255,255,0,0,255,255,251,255,247,255,245,255,241,255,237,255,235,255,238,255,241,255,242,255,241,255,239,255,237,255, +237,255,239,255,241,255,238,255,233,255,233,255,237,255,242,255,242,255,240,255,239,255,239,255,239,255,238,255,237,255,235,255, +233,255,231,255,231,255,231,255,233,255,233,255,233,255,234,255,235,255,238,255,238,255,240,255,245,255,253,255,2,0,2,0, +2,0,5,0,8,0,9,0,6,0,2,0,255,255,255,255,3,0,7,0,7,0,6,0,8,0,13,0,18,0,20,0, +21,0,22,0,22,0,21,0,20,0,21,0,21,0,21,0,23,0,26,0,27,0,26,0,25,0,26,0,29,0,30,0, +28,0,25,0,22,0,18,0,12,0,3,0,251,255,248,255,253,255,4,0,7,0,5,0,2,0,0,0,254,255,252,255, +250,255,248,255,247,255,247,255,247,255,246,255,245,255,245,255,249,255,254,255,1,0,2,0,1,0,2,0,5,0,7,0, +6,0,3,0,1,0,3,0,3,0,254,255,246,255,241,255,240,255,238,255,235,255,234,255,239,255,247,255,255,255,3,0, +9,0,13,0,14,0,12,0,11,0,12,0,11,0,7,0,4,0,4,0,6,0,5,0,1,0,255,255,0,0,2,0, +2,0,0,0,253,255,252,255,254,255,2,0,6,0,7,0,4,0,0,0,251,255,245,255,239,255,237,255,238,255,240,255, +243,255,246,255,248,255,248,255,247,255,247,255,247,255,246,255,245,255,246,255,245,255,242,255,236,255,232,255,232,255,234,255, +237,255,241,255,247,255,253,255,0,0,1,0,0,0,254,255,252,255,250,255,250,255,251,255,251,255,249,255,250,255,252,255, +252,255,245,255,239,255,242,255,1,0,17,0,27,0,28,0,26,0,23,0,20,0,16,0,11,0,4,0,250,255,240,255, +232,255,224,255,221,255,224,255,232,255,239,255,239,255,236,255,238,255,243,255,247,255,248,255,249,255,250,255,250,255,247,255, +242,255,238,255,237,255,239,255,241,255,243,255,244,255,242,255,237,255,231,255,228,255,231,255,235,255,234,255,225,255,214,255, +209,255,211,255,216,255,219,255,221,255,225,255,230,255,231,255,227,255,224,255,226,255,231,255,232,255,230,255,230,255,233,255, +235,255,233,255,228,255,222,255,217,255,212,255,208,255,207,255,210,255,217,255,227,255,235,255,239,255,237,255,234,255,233,255, +234,255,234,255,233,255,231,255,227,255,221,255,219,255,219,255,220,255,220,255,220,255,223,255,227,255,226,255,223,255,223,255, +226,255,230,255,233,255,235,255,238,255,239,255,237,255,233,255,231,255,231,255,230,255,228,255,225,255,224,255,224,255,224,255, +224,255,222,255,219,255,218,255,218,255,218,255,217,255,215,255,216,255,220,255,226,255,232,255,239,255,245,255,249,255,248,255, +245,255,242,255,242,255,246,255,249,255,248,255,243,255,236,255,229,255,224,255,223,255,225,255,227,255,227,255,225,255,224,255, +227,255,234,255,241,255,244,255,243,255,241,255,241,255,244,255,246,255,244,255,241,255,240,255,239,255,235,255,231,255,233,255, +241,255,250,255,254,255,254,255,253,255,252,255,251,255,249,255,248,255,248,255,250,255,252,255,252,255,249,255,244,255,242,255, +244,255,247,255,250,255,253,255,253,255,249,255,242,255,239,255,242,255,246,255,249,255,252,255,1,0,4,0,2,0,254,255, +252,255,252,255,254,255,254,255,254,255,255,255,2,0,2,0,0,0,0,0,3,0,7,0,8,0,7,0,8,0,12,0, +13,0,11,0,8,0,8,0,7,0,3,0,1,0,1,0,4,0,5,0,7,0,10,0,11,0,9,0,6,0,4,0, +5,0,7,0,11,0,15,0,15,0,13,0,10,0,9,0,6,0,2,0,255,255,0,0,3,0,6,0,9,0,12,0, +13,0,12,0,13,0,16,0,17,0,13,0,8,0,4,0,254,255,249,255,248,255,253,255,2,0,2,0,254,255,251,255, +250,255,250,255,250,255,250,255,251,255,251,255,251,255,249,255,248,255,250,255,254,255,1,0,2,0,1,0,255,255,250,255, +246,255,247,255,251,255,253,255,249,255,247,255,249,255,252,255,254,255,254,255,253,255,249,255,245,255,247,255,252,255,254,255, +254,255,2,0,8,0,9,0,6,0,4,0,9,0,12,0,12,0,10,0,10,0,11,0,10,0,11,0,11,0,6,0, +253,255,248,255,248,255,246,255,241,255,239,255,244,255,249,255,251,255,254,255,0,0,255,255,255,255,3,0,11,0,16,0, +14,0,11,0,10,0,11,0,11,0,11,0,12,0,7,0,254,255,247,255,244,255,243,255,240,255,238,255,238,255,237,255, +235,255,236,255,241,255,246,255,250,255,252,255,255,255,254,255,251,255,246,255,243,255,241,255,238,255,238,255,240,255,239,255, +235,255,233,255,235,255,239,255,242,255,247,255,253,255,3,0,4,0,2,0,0,0,0,0,255,255,0,0,4,0,10,0, +12,0,9,0,5,0,5,0,7,0,6,0,4,0,3,0,4,0,2,0,255,255,253,255,254,255,3,0,9,0,14,0, +15,0,13,0,14,0,17,0,17,0,14,0,12,0,14,0,15,0,11,0,8,0,9,0,11,0,8,0,4,0,1,0, +254,255,250,255,247,255,250,255,255,255,2,0,3,0,5,0,6,0,3,0,0,0,1,0,4,0,7,0,10,0,12,0, +14,0,16,0,19,0,23,0,27,0,27,0,25,0,23,0,22,0,22,0,23,0,25,0,25,0,24,0,23,0,23,0, +22,0,17,0,13,0,10,0,10,0,11,0,10,0,7,0,7,0,11,0,18,0,23,0,24,0,24,0,27,0,28,0, +25,0,20,0,20,0,23,0,26,0,25,0,25,0,26,0,26,0,26,0,29,0,31,0,31,0,28,0,27,0,28,0, +29,0,27,0,25,0,23,0,20,0,17,0,14,0,11,0,8,0,6,0,8,0,11,0,12,0,13,0,14,0,14,0, +14,0,16,0,19,0,17,0,10,0,5,0,5,0,6,0,7,0,8,0,8,0,7,0,4,0,2,0,2,0,3,0, +5,0,8,0,9,0,7,0,3,0,0,0,0,0,0,0,254,255,253,255,255,255,1,0,3,0,3,0,3,0,5,0, +8,0,11,0,11,0,9,0,10,0,13,0,15,0,14,0,10,0,8,0,5,0,3,0,2,0,2,0,2,0,1,0, +253,255,249,255,245,255,242,255,238,255,235,255,232,255,231,255,232,255,232,255,230,255,229,255,232,255,236,255,241,255,249,255, +5,0,15,0,23,0,31,0,40,0,47,0,49,0,46,0,42,0,37,0,30,0,26,0,26,0,25,0,19,0,12,0, +4,0,251,255,241,255,233,255,230,255,228,255,225,255,222,255,219,255,217,255,214,255,213,255,211,255,210,255,208,255,209,255, +211,255,213,255,215,255,221,255,231,255,238,255,242,255,244,255,246,255,247,255,246,255,246,255,247,255,246,255,244,255,243,255, +244,255,245,255,246,255,246,255,244,255,239,255,233,255,231,255,231,255,229,255,227,255,229,255,232,255,232,255,229,255,227,255, +228,255,229,255,228,255,229,255,229,255,228,255,228,255,232,255,238,255,239,255,236,255,234,255,233,255,231,255,230,255,232,255, +233,255,230,255,225,255,225,255,228,255,230,255,227,255,224,255,224,255,227,255,228,255,228,255,229,255,230,255,230,255,228,255, +223,255,220,255,221,255,225,255,228,255,229,255,232,255,238,255,245,255,250,255,252,255,254,255,254,255,251,255,246,255,241,255, +236,255,229,255,223,255,219,255,218,255,220,255,223,255,227,255,231,255,236,255,237,255,236,255,233,255,232,255,232,255,233,255, +235,255,236,255,235,255,234,255,236,255,239,255,243,255,244,255,245,255,248,255,252,255,255,255,0,0,255,255,253,255,249,255, +243,255,238,255,239,255,245,255,251,255,252,255,250,255,249,255,248,255,248,255,248,255,251,255,254,255,254,255,252,255,252,255, +254,255,255,255,0,0,2,0,4,0,2,0,255,255,253,255,253,255,253,255,250,255,247,255,244,255,238,255,229,255,225,255, +228,255,234,255,235,255,234,255,235,255,240,255,244,255,245,255,247,255,252,255,2,0,2,0,0,0,1,0,5,0,10,0, +11,0,9,0,4,0,255,255,252,255,250,255,248,255,248,255,249,255,250,255,250,255,249,255,248,255,245,255,245,255,247,255, +251,255,253,255,255,255,4,0,10,0,11,0,9,0,10,0,12,0,11,0,7,0,5,0,3,0,255,255,247,255,242,255, +242,255,245,255,247,255,247,255,248,255,250,255,250,255,250,255,249,255,248,255,248,255,249,255,251,255,253,255,255,255,0,0, +2,0,3,0,5,0,5,0,6,0,7,0,7,0,8,0,7,0,4,0,253,255,245,255,240,255,238,255,237,255,235,255, +233,255,232,255,232,255,233,255,236,255,240,255,243,255,246,255,250,255,251,255,247,255,243,255,244,255,249,255,252,255,253,255, +0,0,5,0,8,0,8,0,5,0,1,0,253,255,251,255,250,255,249,255,246,255,243,255,240,255,238,255,239,255,243,255, +247,255,249,255,251,255,253,255,255,255,0,0,1,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0, +0,0,251,255,247,255,245,255,244,255,243,255,242,255,239,255,238,255,238,255,238,255,238,255,240,255,244,255,246,255,246,255, +247,255,250,255,251,255,249,255,246,255,243,255,241,255,239,255,240,255,241,255,242,255,241,255,239,255,237,255,236,255,237,255, +242,255,248,255,250,255,248,255,247,255,247,255,246,255,244,255,243,255,241,255,238,255,238,255,239,255,242,255,245,255,249,255, +252,255,253,255,251,255,249,255,247,255,245,255,242,255,241,255,241,255,241,255,241,255,242,255,245,255,253,255,6,0,12,0, +14,0,15,0,15,0,12,0,7,0,2,0,1,0,0,0,253,255,249,255,246,255,246,255,247,255,250,255,253,255,255,255, +0,0,0,0,254,255,253,255,252,255,255,255,2,0,4,0,5,0,4,0,4,0,4,0,6,0,7,0,8,0,10,0, +14,0,16,0,12,0,8,0,7,0,7,0,5,0,3,0,3,0,4,0,2,0,0,0,255,255,1,0,4,0,5,0, +4,0,2,0,0,0,0,0,2,0,3,0,4,0,3,0,2,0,1,0,1,0,3,0,6,0,10,0,13,0,14,0, +13,0,13,0,16,0,17,0,14,0,9,0,7,0,7,0,5,0,2,0,0,0,255,255,254,255,253,255,253,255,252,255, +252,255,252,255,254,255,0,0,1,0,3,0,6,0,8,0,9,0,10,0,10,0,9,0,9,0,7,0,3,0,255,255, +253,255,253,255,252,255,252,255,254,255,1,0,2,0,2,0,3,0,3,0,3,0,6,0,12,0,17,0,17,0,14,0, +13,0,14,0,16,0,17,0,18,0,17,0,16,0,16,0,16,0,18,0,21,0,25,0,26,0,23,0,19,0,16,0, +13,0,10,0,6,0,2,0,253,255,249,255,247,255,245,255,243,255,242,255,244,255,249,255,253,255,0,0,4,0,7,0, +9,0,10,0,10,0,9,0,7,0,5,0,3,0,1,0,0,0,1,0,0,0,253,255,252,255,255,255,2,0,2,0, +0,0,254,255,252,255,250,255,248,255,247,255,246,255,245,255,243,255,242,255,241,255,242,255,243,255,243,255,244,255,246,255, +251,255,254,255,255,255,255,255,253,255,248,255,243,255,241,255,239,255,236,255,233,255,231,255,230,255,228,255,229,255,234,255, +241,255,243,255,242,255,243,255,246,255,248,255,247,255,245,255,244,255,245,255,245,255,244,255,241,255,238,255,239,255,240,255, +242,255,243,255,242,255,239,255,235,255,232,255,230,255,227,255,225,255,226,255,229,255,232,255,234,255,236,255,239,255,241,255, +243,255,246,255,249,255,249,255,249,255,250,255,251,255,252,255,252,255,251,255,249,255,249,255,247,255,244,255,239,255,239,255, +242,255,245,255,246,255,247,255,246,255,244,255,240,255,237,255,236,255,237,255,240,255,244,255,249,255,252,255,255,255,3,0, +7,0,9,0,9,0,7,0,3,0,252,255,247,255,246,255,248,255,250,255,251,255,252,255,253,255,253,255,253,255,251,255, +247,255,244,255,244,255,244,255,245,255,244,255,244,255,245,255,247,255,249,255,250,255,252,255,1,0,6,0,10,0,11,0, +12,0,14,0,13,0,10,0,6,0,5,0,4,0,3,0,4,0,7,0,9,0,9,0,10,0,11,0,10,0,9,0, +7,0,4,0,0,0,252,255,250,255,249,255,249,255,251,255,253,255,254,255,2,0,7,0,11,0,12,0,11,0,10,0, +7,0,3,0,0,0,1,0,3,0,2,0,254,255,250,255,247,255,246,255,247,255,252,255,0,0,2,0,3,0,6,0, +11,0,15,0,16,0,14,0,12,0,9,0,5,0,1,0,255,255,1,0,5,0,8,0,10,0,13,0,16,0,18,0, +18,0,16,0,15,0,14,0,15,0,16,0,14,0,11,0,10,0,9,0,9,0,6,0,4,0,3,0,3,0,4,0, +6,0,5,0,3,0,4,0,6,0,7,0,6,0,5,0,8,0,8,0,4,0,1,0,1,0,3,0,5,0,8,0, +12,0,16,0,16,0,15,0,12,0,6,0,255,255,249,255,245,255,245,255,248,255,253,255,0,0,0,0,253,255,251,255, +249,255,249,255,251,255,255,255,1,0,3,0,5,0,6,0,4,0,4,0,7,0,10,0,10,0,9,0,9,0,9,0, +10,0,9,0,7,0,5,0,3,0,1,0,254,255,253,255,0,0,3,0,2,0,0,0,255,255,255,255,254,255,254,255, +255,255,1,0,1,0,0,0,255,255,253,255,250,255,248,255,250,255,252,255,251,255,251,255,253,255,255,255,254,255,249,255, +245,255,243,255,241,255,241,255,241,255,241,255,242,255,244,255,247,255,248,255,248,255,249,255,252,255,254,255,0,0,1,0, +1,0,0,0,253,255,250,255,248,255,247,255,246,255,245,255,245,255,246,255,248,255,250,255,251,255,252,255,251,255,250,255, +248,255,247,255,247,255,247,255,248,255,249,255,249,255,248,255,247,255,246,255,244,255,243,255,244,255,246,255,247,255,247,255, +247,255,245,255,243,255,243,255,245,255,249,255,252,255,254,255,255,255,255,255,255,255,0,0,2,0,4,0,2,0,254,255, +253,255,253,255,253,255,250,255,249,255,247,255,244,255,240,255,240,255,242,255,244,255,245,255,247,255,250,255,253,255,253,255, +252,255,252,255,254,255,1,0,4,0,5,0,5,0,4,0,3,0,2,0,255,255,252,255,249,255,248,255,249,255,250,255, +253,255,0,0,1,0,2,0,3,0,3,0,2,0,0,0,0,0,1,0,255,255,251,255,249,255,251,255,252,255,252,255, +254,255,1,0,4,0,8,0,12,0,14,0,12,0,8,0,6,0,7,0,8,0,9,0,8,0,8,0,7,0,4,0, +1,0,1,0,4,0,10,0,14,0,17,0,15,0,13,0,11,0,8,0,5,0,4,0,6,0,6,0,5,0,5,0, +6,0,8,0,9,0,9,0,9,0,10,0,12,0,17,0,21,0,24,0,24,0,22,0,20,0,20,0,19,0,18,0, +17,0,16,0,12,0,7,0,4,0,5,0,4,0,2,0,1,0,1,0,3,0,6,0,10,0,13,0,15,0,15,0, +14,0,13,0,12,0,11,0,11,0,12,0,13,0,12,0,9,0,9,0,10,0,11,0,11,0,13,0,13,0,12,0, +10,0,9,0,7,0,5,0,4,0,6,0,8,0,9,0,9,0,10,0,13,0,15,0,18,0,20,0,23,0,25,0, +25,0,24,0,24,0,22,0,20,0,20,0,21,0,20,0,17,0,12,0,7,0,4,0,4,0,6,0,8,0,10,0, +13,0,17,0,18,0,16,0,15,0,16,0,18,0,19,0,18,0,14,0,7,0,2,0,0,0,1,0,1,0,0,0, +0,0,2,0,3,0,0,0,253,255,252,255,252,255,249,255,247,255,249,255,254,255,1,0,5,0,10,0,12,0,12,0, +12,0,11,0,6,0,1,0,251,255,248,255,246,255,247,255,250,255,254,255,0,0,255,255,253,255,252,255,253,255,252,255, +250,255,249,255,249,255,249,255,248,255,247,255,246,255,244,255,244,255,245,255,245,255,245,255,246,255,246,255,245,255,244,255, +242,255,238,255,235,255,236,255,238,255,241,255,244,255,248,255,252,255,255,255,3,0,7,0,9,0,9,0,6,0,1,0, +252,255,247,255,244,255,243,255,243,255,244,255,245,255,247,255,246,255,245,255,243,255,243,255,244,255,246,255,246,255,244,255, +240,255,237,255,235,255,234,255,234,255,238,255,244,255,248,255,248,255,247,255,248,255,249,255,249,255,248,255,248,255,246,255, +244,255,245,255,246,255,245,255,240,255,237,255,236,255,233,255,229,255,227,255,228,255,228,255,229,255,232,255,236,255,239,255, +242,255,246,255,251,255,253,255,252,255,251,255,254,255,2,0,4,0,5,0,6,0,7,0,6,0,3,0,0,0,254,255, +252,255,251,255,248,255,246,255,245,255,245,255,246,255,248,255,248,255,247,255,247,255,252,255,2,0,5,0,6,0,8,0, +9,0,8,0,5,0,3,0,3,0,5,0,4,0,3,0,4,0,5,0,4,0,0,0,252,255,248,255,247,255,246,255, +246,255,243,255,243,255,245,255,249,255,252,255,254,255,0,0,2,0,4,0,6,0,7,0,10,0,16,0,21,0,21,0, +18,0,15,0,11,0,7,0,6,0,9,0,12,0,14,0,13,0,9,0,5,0,2,0,0,0,1,0,3,0,5,0, +6,0,7,0,10,0,11,0,13,0,18,0,25,0,29,0,30,0,31,0,31,0,28,0,23,0,15,0,8,0,4,0, +2,0,0,0,0,0,2,0,4,0,6,0,6,0,6,0,4,0,1,0,1,0,4,0,11,0,18,0,24,0,28,0, +31,0,33,0,33,0,29,0,26,0,24,0,22,0,20,0,20,0,18,0,12,0,4,0,253,255,245,255,238,255,234,255, +234,255,237,255,240,255,243,255,246,255,249,255,252,255,0,0,5,0,9,0,14,0,21,0,25,0,27,0,26,0,24,0, +22,0,20,0,18,0,16,0,12,0,7,0,2,0,253,255,248,255,246,255,245,255,245,255,246,255,248,255,253,255,5,0, +14,0,23,0,29,0,34,0,34,0,29,0,22,0,13,0,2,0,247,255,240,255,234,255,226,255,223,255,225,255,230,255, +236,255,244,255,255,255,9,0,17,0,23,0,25,0,23,0,19,0,11,0,0,0,246,255,240,255,237,255,235,255,233,255, +229,255,226,255,226,255,226,255,226,255,230,255,238,255,246,255,251,255,1,0,6,0,7,0,3,0,255,255,251,255,244,255, +239,255,236,255,236,255,236,255,238,255,239,255,241,255,240,255,236,255,232,255,231,255,233,255,236,255,241,255,252,255,7,0, +10,0,6,0,1,0,252,255,244,255,234,255,228,255,226,255,227,255,229,255,232,255,233,255,233,255,232,255,233,255,235,255, +235,255,234,255,234,255,237,255,241,255,242,255,241,255,239,255,235,255,229,255,225,255,223,255,224,255,227,255,230,255,235,255, +240,255,243,255,244,255,244,255,245,255,246,255,246,255,246,255,250,255,255,255,2,0,1,0,254,255,253,255,251,255,248,255, +246,255,243,255,239,255,236,255,237,255,239,255,241,255,244,255,248,255,252,255,253,255,253,255,252,255,251,255,250,255,248,255, +242,255,238,255,238,255,240,255,241,255,242,255,244,255,247,255,246,255,241,255,236,255,233,255,233,255,232,255,234,255,241,255, +250,255,255,255,2,0,5,0,6,0,3,0,0,0,0,0,0,0,255,255,1,0,6,0,9,0,8,0,8,0,10,0, +9,0,3,0,252,255,249,255,250,255,251,255,252,255,255,255,3,0,6,0,7,0,9,0,10,0,9,0,7,0,6,0, +5,0,4,0,4,0,5,0,4,0,2,0,255,255,254,255,254,255,1,0,3,0,5,0,6,0,6,0,5,0,4,0, +6,0,8,0,8,0,8,0,9,0,11,0,12,0,12,0,11,0,11,0,11,0,8,0,5,0,2,0,0,0,0,0, +1,0,4,0,6,0,9,0,13,0,15,0,12,0,8,0,6,0,5,0,4,0,2,0,0,0,255,255,0,0,4,0, +9,0,13,0,15,0,14,0,14,0,13,0,11,0,9,0,13,0,20,0,24,0,23,0,23,0,22,0,19,0,14,0, +10,0,6,0,3,0,0,0,254,255,253,255,254,255,0,0,2,0,4,0,6,0,7,0,8,0,10,0,10,0,8,0, +5,0,2,0,1,0,254,255,250,255,247,255,248,255,252,255,0,0,2,0,4,0,8,0,11,0,12,0,11,0,8,0, +5,0,4,0,3,0,2,0,1,0,2,0,4,0,5,0,5,0,2,0,254,255,253,255,253,255,254,255,255,255,1,0, +1,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255,255,255,3,0,4,0,2,0,0,0,0,0,255,255,253,255, +252,255,252,255,251,255,251,255,253,255,252,255,249,255,248,255,249,255,250,255,252,255,253,255,254,255,255,255,255,255,252,255, +248,255,246,255,245,255,243,255,241,255,241,255,242,255,241,255,240,255,242,255,244,255,245,255,246,255,244,255,243,255,246,255, +251,255,254,255,0,0,2,0,2,0,254,255,250,255,248,255,245,255,244,255,245,255,245,255,243,255,241,255,240,255,240,255, +241,255,243,255,245,255,246,255,248,255,250,255,253,255,1,0,4,0,5,0,6,0,6,0,3,0,253,255,248,255,246,255, +245,255,246,255,248,255,251,255,250,255,248,255,248,255,250,255,248,255,244,255,239,255,237,255,235,255,235,255,238,255,243,255, +249,255,251,255,252,255,252,255,251,255,250,255,250,255,252,255,0,0,1,0,0,0,255,255,255,255,252,255,248,255,246,255, +248,255,249,255,250,255,253,255,255,255,1,0,4,0,10,0,14,0,15,0,14,0,10,0,6,0,1,0,253,255,251,255, +252,255,255,255,0,0,255,255,2,0,5,0,5,0,5,0,6,0,5,0,2,0,0,0,1,0,3,0,5,0,7,0, +7,0,7,0,7,0,8,0,9,0,10,0,11,0,9,0,6,0,4,0,3,0,0,0,255,255,0,0,0,0,254,255, +253,255,255,255,2,0,5,0,6,0,7,0,8,0,12,0,16,0,16,0,15,0,15,0,17,0,18,0,18,0,17,0, +17,0,14,0,9,0,3,0,0,0,0,0,2,0,2,0,2,0,2,0,0,0,1,0,4,0,7,0,7,0,5,0, +6,0,7,0,6,0,4,0,5,0,6,0,7,0,8,0,11,0,12,0,10,0,7,0,4,0,1,0,252,255,251,255, +254,255,2,0,4,0,5,0,4,0,1,0,254,255,251,255,249,255,246,255,244,255,245,255,249,255,253,255,254,255,254,255, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,4,0,5,0,3,0,2,0,2,0,2,0,0,0,254,255,253,255, +252,255,250,255,250,255,252,255,255,255,2,0,4,0,5,0,6,0,7,0,6,0,3,0,1,0,1,0,0,0,0,0, +255,255,254,255,254,255,255,255,255,255,254,255,249,255,242,255,236,255,236,255,238,255,240,255,244,255,252,255,2,0,2,0, +254,255,252,255,251,255,251,255,251,255,253,255,0,0,0,0,254,255,253,255,249,255,241,255,231,255,224,255,222,255,223,255, +222,255,224,255,228,255,232,255,236,255,239,255,241,255,241,255,241,255,240,255,240,255,242,255,247,255,250,255,250,255,247,255, +242,255,236,255,232,255,232,255,235,255,238,255,241,255,244,255,247,255,249,255,250,255,251,255,252,255,253,255,252,255,252,255, +252,255,252,255,248,255,243,255,241,255,238,255,235,255,236,255,240,255,244,255,247,255,250,255,252,255,250,255,247,255,244,255, +241,255,240,255,240,255,240,255,241,255,243,255,243,255,240,255,236,255,232,255,229,255,226,255,225,255,226,255,229,255,233,255, +237,255,240,255,241,255,243,255,244,255,246,255,247,255,247,255,246,255,245,255,245,255,243,255,240,255,237,255,237,255,239,255, +242,255,244,255,247,255,250,255,253,255,253,255,251,255,249,255,249,255,251,255,254,255,0,0,2,0,3,0,1,0,254,255, +253,255,253,255,254,255,253,255,253,255,252,255,250,255,251,255,252,255,254,255,254,255,254,255,253,255,250,255,248,255,247,255, +246,255,246,255,246,255,247,255,248,255,252,255,254,255,253,255,251,255,253,255,0,0,1,0,0,0,254,255,253,255,254,255, +0,0,1,0,3,0,6,0,8,0,5,0,0,0,0,0,4,0,8,0,11,0,10,0,6,0,2,0,0,0,254,255, +253,255,255,255,2,0,3,0,3,0,6,0,10,0,14,0,17,0,17,0,14,0,11,0,9,0,7,0,5,0,6,0, +9,0,12,0,13,0,12,0,10,0,7,0,6,0,4,0,3,0,4,0,5,0,4,0,2,0,0,0,253,255,249,255, +247,255,247,255,246,255,246,255,249,255,253,255,1,0,3,0,6,0,8,0,9,0,6,0,1,0,0,0,2,0,5,0, +6,0,5,0,5,0,5,0,3,0,255,255,254,255,255,255,1,0,2,0,2,0,3,0,4,0,7,0,10,0,11,0, +10,0,7,0,5,0,2,0,255,255,252,255,249,255,248,255,249,255,248,255,247,255,246,255,247,255,248,255,248,255,249,255, +250,255,250,255,250,255,249,255,250,255,253,255,3,0,8,0,11,0,12,0,11,0,10,0,8,0,5,0,1,0,251,255, +248,255,247,255,246,255,246,255,249,255,253,255,255,255,254,255,253,255,252,255,253,255,255,255,1,0,1,0,0,0,254,255, +254,255,1,0,4,0,6,0,7,0,5,0,2,0,253,255,250,255,249,255,248,255,246,255,246,255,248,255,251,255,254,255, +0,0,2,0,4,0,4,0,3,0,1,0,0,0,0,0,255,255,251,255,245,255,240,255,236,255,234,255,234,255,237,255, +241,255,246,255,250,255,253,255,255,255,254,255,252,255,252,255,254,255,1,0,4,0,7,0,9,0,10,0,10,0,9,0, +8,0,5,0,0,0,250,255,245,255,242,255,242,255,245,255,248,255,250,255,251,255,251,255,249,255,245,255,243,255,244,255, +245,255,245,255,244,255,244,255,246,255,247,255,250,255,255,255,4,0,8,0,8,0,6,0,2,0,254,255,249,255,243,255, +240,255,240,255,242,255,243,255,244,255,245,255,247,255,250,255,252,255,254,255,0,0,3,0,5,0,6,0,6,0,5,0, +4,0,3,0,3,0,1,0,255,255,253,255,252,255,251,255,252,255,252,255,251,255,250,255,252,255,255,255,0,0,252,255, +248,255,247,255,248,255,249,255,251,255,255,255,3,0,7,0,8,0,8,0,6,0,4,0,3,0,3,0,3,0,2,0, +1,0,1,0,1,0,0,0,255,255,253,255,251,255,250,255,249,255,249,255,251,255,0,0,6,0,10,0,13,0,14,0, +13,0,12,0,11,0,11,0,8,0,4,0,255,255,250,255,248,255,248,255,250,255,251,255,252,255,252,255,0,0,5,0, +9,0,11,0,12,0,11,0,7,0,0,0,250,255,247,255,246,255,244,255,243,255,243,255,247,255,253,255,2,0,7,0, +10,0,12,0,12,0,12,0,11,0,11,0,13,0,16,0,19,0,19,0,15,0,10,0,7,0,5,0,3,0,2,0, +3,0,3,0,1,0,254,255,250,255,250,255,250,255,252,255,253,255,254,255,255,255,0,0,1,0,3,0,3,0,2,0, +1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,253,255,252,255,251,255,249,255,247,255,246,255,247,255,247,255, +244,255,241,255,239,255,239,255,241,255,243,255,246,255,250,255,253,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255, +252,255,250,255,249,255,250,255,249,255,249,255,250,255,251,255,250,255,246,255,242,255,240,255,239,255,239,255,240,255,243,255, +245,255,246,255,244,255,243,255,243,255,244,255,245,255,246,255,247,255,247,255,246,255,243,255,242,255,241,255,242,255,243,255, +243,255,242,255,240,255,238,255,236,255,234,255,233,255,233,255,234,255,234,255,234,255,236,255,239,255,241,255,244,255,246,255, +246,255,246,255,245,255,243,255,241,255,240,255,238,255,238,255,238,255,238,255,237,255,238,255,238,255,239,255,240,255,240,255, +240,255,240,255,240,255,241,255,241,255,240,255,240,255,241,255,245,255,250,255,252,255,250,255,247,255,245,255,243,255,241,255, +241,255,241,255,241,255,240,255,238,255,237,255,238,255,241,255,243,255,243,255,240,255,237,255,235,255,235,255,235,255,237,255, +240,255,242,255,243,255,244,255,244,255,245,255,245,255,244,255,244,255,247,255,250,255,251,255,248,255,246,255,245,255,245,255, +245,255,247,255,250,255,252,255,250,255,247,255,243,255,240,255,238,255,237,255,237,255,239,255,242,255,245,255,248,255,250,255, +252,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,251,255,249,255,247,255,247,255,247,255,247,255,246,255,246,255, +246,255,246,255,245,255,244,255,244,255,245,255,247,255,248,255,249,255,250,255,251,255,252,255,252,255,253,255,254,255,0,0, +2,0,2,0,0,0,255,255,255,255,254,255,253,255,254,255,1,0,3,0,1,0,254,255,252,255,253,255,254,255,0,0, +3,0,6,0,9,0,10,0,9,0,8,0,8,0,7,0,6,0,6,0,6,0,5,0,4,0,3,0,3,0,4,0, +6,0,7,0,7,0,6,0,4,0,2,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,254,255,252,255, +250,255,248,255,248,255,249,255,253,255,5,0,12,0,16,0,18,0,19,0,20,0,19,0,16,0,14,0,13,0,12,0, +11,0,8,0,3,0,253,255,247,255,242,255,240,255,241,255,244,255,246,255,248,255,249,255,252,255,255,255,1,0,2,0, +2,0,3,0,6,0,8,0,8,0,8,0,9,0,9,0,7,0,5,0,6,0,8,0,10,0,10,0,9,0,8,0, +6,0,4,0,2,0,255,255,251,255,247,255,244,255,244,255,246,255,250,255,255,255,3,0,6,0,6,0,5,0,3,0, +2,0,2,0,1,0,1,0,255,255,253,255,250,255,249,255,249,255,249,255,249,255,250,255,251,255,252,255,252,255,253,255, +0,0,1,0,0,0,254,255,252,255,250,255,248,255,247,255,247,255,249,255,250,255,250,255,250,255,250,255,249,255,248,255, +247,255,247,255,247,255,246,255,246,255,248,255,252,255,254,255,255,255,0,0,0,0,0,0,255,255,253,255,250,255,247,255, +245,255,244,255,244,255,244,255,244,255,244,255,244,255,244,255,244,255,245,255,246,255,248,255,251,255,254,255,254,255,251,255, +247,255,243,255,241,255,238,255,236,255,235,255,237,255,239,255,238,255,237,255,238,255,242,255,245,255,248,255,251,255,255,255, +2,0,5,0,8,0,8,0,6,0,2,0,254,255,253,255,252,255,249,255,245,255,240,255,236,255,234,255,234,255,236,255, +240,255,244,255,247,255,249,255,250,255,253,255,255,255,1,0,2,0,3,0,5,0,6,0,4,0,0,0,253,255,251,255, +247,255,243,255,241,255,242,255,243,255,243,255,243,255,246,255,251,255,253,255,253,255,253,255,0,0,2,0,1,0,254,255, +252,255,252,255,250,255,248,255,247,255,247,255,249,255,249,255,247,255,246,255,247,255,252,255,1,0,5,0,8,0,10,0, +11,0,11,0,9,0,6,0,4,0,2,0,0,0,0,0,255,255,253,255,249,255,246,255,246,255,248,255,249,255,249,255, +252,255,2,0,7,0,11,0,13,0,15,0,16,0,15,0,11,0,8,0,6,0,4,0,2,0,1,0,1,0,2,0, +2,0,2,0,3,0,1,0,253,255,248,255,246,255,246,255,248,255,250,255,253,255,255,255,1,0,2,0,3,0,2,0, +255,255,252,255,252,255,254,255,0,0,1,0,1,0,1,0,1,0,255,255,253,255,253,255,1,0,5,0,6,0,3,0, +255,255,251,255,251,255,253,255,0,0,2,0,5,0,9,0,11,0,12,0,13,0,17,0,20,0,20,0,16,0,11,0, +7,0,3,0,254,255,249,255,247,255,248,255,249,255,249,255,248,255,246,255,244,255,242,255,242,255,244,255,248,255,250,255, +251,255,251,255,251,255,253,255,0,0,2,0,2,0,255,255,252,255,249,255,246,255,244,255,245,255,247,255,248,255,245,255, +243,255,243,255,245,255,247,255,248,255,247,255,248,255,249,255,249,255,250,255,250,255,250,255,251,255,252,255,254,255,0,0, +2,0,3,0,3,0,1,0,254,255,250,255,247,255,245,255,243,255,241,255,238,255,236,255,235,255,235,255,235,255,234,255, +234,255,236,255,240,255,245,255,249,255,252,255,253,255,251,255,249,255,246,255,245,255,243,255,241,255,238,255,235,255,233,255, +230,255,229,255,231,255,234,255,238,255,242,255,245,255,247,255,248,255,248,255,248,255,248,255,249,255,249,255,248,255,247,255, +245,255,240,255,236,255,235,255,236,255,237,255,237,255,237,255,237,255,238,255,241,255,243,255,245,255,246,255,247,255,247,255, +247,255,248,255,249,255,251,255,252,255,251,255,247,255,244,255,240,255,236,255,233,255,233,255,236,255,238,255,239,255,239,255, +239,255,240,255,243,255,247,255,250,255,253,255,254,255,254,255,254,255,0,0,0,0,255,255,252,255,249,255,246,255,244,255, +244,255,243,255,243,255,244,255,244,255,243,255,244,255,246,255,247,255,247,255,246,255,245,255,244,255,244,255,245,255,245,255, +245,255,246,255,248,255,251,255,254,255,254,255,252,255,251,255,252,255,252,255,252,255,252,255,251,255,249,255,249,255,249,255, +248,255,248,255,251,255,0,0,2,0,3,0,3,0,3,0,2,0,2,0,0,0,0,0,1,0,1,0,254,255,252,255, +253,255,253,255,253,255,253,255,252,255,251,255,249,255,247,255,246,255,245,255,247,255,248,255,251,255,254,255,0,0,0,0, +2,0,4,0,5,0,1,0,254,255,251,255,250,255,249,255,250,255,252,255,255,255,4,0,7,0,7,0,6,0,5,0, +5,0,7,0,9,0,8,0,6,0,3,0,0,0,251,255,248,255,247,255,250,255,253,255,0,0,1,0,255,255,253,255, +253,255,254,255,254,255,255,255,2,0,3,0,4,0,2,0,0,0,254,255,254,255,253,255,251,255,251,255,253,255,253,255, +250,255,249,255,248,255,249,255,248,255,249,255,250,255,253,255,0,0,255,255,252,255,251,255,252,255,253,255,254,255,254,255, +254,255,255,255,0,0,1,0,1,0,2,0,3,0,3,0,1,0,0,0,254,255,253,255,252,255,250,255,248,255,246,255, +246,255,247,255,249,255,251,255,253,255,253,255,253,255,251,255,248,255,246,255,246,255,247,255,248,255,249,255,249,255,248,255, +248,255,250,255,252,255,253,255,255,255,255,255,0,0,0,0,254,255,250,255,247,255,244,255,240,255,237,255,236,255,236,255, +236,255,236,255,239,255,242,255,245,255,247,255,248,255,251,255,0,0,3,0,4,0,2,0,1,0,1,0,255,255,252,255, +248,255,244,255,240,255,234,255,227,255,222,255,222,255,226,255,230,255,234,255,238,255,242,255,245,255,249,255,251,255,253,255, +254,255,255,255,254,255,252,255,250,255,247,255,245,255,245,255,246,255,246,255,245,255,242,255,239,255,236,255,236,255,238,255, +239,255,241,255,243,255,245,255,246,255,245,255,242,255,240,255,241,255,244,255,247,255,250,255,252,255,253,255,254,255,253,255, +251,255,250,255,248,255,247,255,245,255,242,255,240,255,240,255,240,255,239,255,238,255,237,255,236,255,235,255,236,255,239,255, +243,255,248,255,251,255,254,255,2,0,6,0,8,0,8,0,6,0,2,0,254,255,250,255,247,255,245,255,244,255,243,255, +243,255,243,255,241,255,241,255,242,255,245,255,247,255,248,255,249,255,251,255,252,255,251,255,252,255,255,255,1,0,2,0, +3,0,3,0,3,0,1,0,255,255,253,255,252,255,250,255,248,255,247,255,248,255,248,255,249,255,248,255,246,255,243,255, +241,255,240,255,241,255,242,255,242,255,242,255,244,255,246,255,247,255,248,255,251,255,254,255,1,0,1,0,255,255,254,255, +0,0,4,0,7,0,9,0,10,0,9,0,5,0,2,0,255,255,253,255,250,255,248,255,246,255,245,255,245,255,246,255, +250,255,0,0,4,0,6,0,6,0,9,0,11,0,11,0,9,0,6,0,4,0,3,0,1,0,255,255,252,255,252,255, +254,255,0,0,254,255,251,255,248,255,248,255,253,255,0,0,1,0,2,0,3,0,3,0,2,0,2,0,5,0,9,0, +10,0,10,0,7,0,3,0,255,255,250,255,245,255,242,255,241,255,240,255,241,255,246,255,253,255,2,0,6,0,8,0, +9,0,10,0,12,0,14,0,14,0,14,0,12,0,8,0,4,0,0,0,253,255,252,255,253,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,254,255,253,255,253,255,254,255,255,255,255,255,255,255,253,255,251,255,250,255,250,255,249,255, +248,255,249,255,253,255,1,0,5,0,6,0,6,0,6,0,6,0,3,0,254,255,250,255,247,255,243,255,240,255,239,255, +238,255,239,255,242,255,246,255,249,255,251,255,253,255,253,255,252,255,250,255,246,255,243,255,243,255,245,255,246,255,248,255, +251,255,253,255,255,255,1,0,3,0,4,0,4,0,3,0,255,255,251,255,248,255,249,255,251,255,251,255,248,255,244,255, +241,255,240,255,239,255,240,255,243,255,247,255,247,255,246,255,245,255,244,255,244,255,244,255,244,255,244,255,243,255,242,255, +241,255,241,255,243,255,246,255,248,255,250,255,251,255,250,255,248,255,247,255,246,255,243,255,242,255,242,255,242,255,242,255, +241,255,240,255,240,255,240,255,239,255,239,255,242,255,245,255,246,255,246,255,246,255,249,255,253,255,0,0,0,0,254,255, +250,255,246,255,243,255,242,255,244,255,245,255,244,255,243,255,244,255,245,255,246,255,249,255,252,255,252,255,249,255,245,255, +244,255,246,255,248,255,248,255,248,255,249,255,247,255,243,255,241,255,243,255,248,255,250,255,249,255,247,255,245,255,244,255, +243,255,244,255,248,255,251,255,253,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255, +253,255,253,255,253,255,254,255,254,255,253,255,252,255,252,255,251,255,251,255,252,255,254,255,254,255,253,255,252,255,253,255, +1,0,5,0,8,0,8,0,8,0,8,0,5,0,1,0,0,0,2,0,5,0,6,0,6,0,5,0,4,0,2,0, +255,255,253,255,254,255,0,0,1,0,1,0,2,0,2,0,1,0,2,0,5,0,8,0,10,0,10,0,9,0,7,0, +6,0,5,0,4,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,3,0,6,0,6,0,5,0,4,0,4,0, +3,0,2,0,2,0,3,0,7,0,10,0,11,0,11,0,10,0,10,0,11,0,13,0,14,0,13,0,12,0,13,0, +13,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,9,0,8,0,7,0,9,0,10,0,9,0,7,0,5,0, +6,0,6,0,5,0,5,0,7,0,10,0,12,0,14,0,14,0,14,0,13,0,11,0,8,0,7,0,7,0,6,0, +5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,7,0,8,0,10,0,12,0,14,0,15,0,15,0,12,0, +8,0,4,0,2,0,1,0,255,255,253,255,252,255,254,255,0,0,1,0,2,0,4,0,6,0,6,0,2,0,255,255, +255,255,2,0,5,0,7,0,6,0,4,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,252,255,251,255,251,255, +254,255,2,0,4,0,1,0,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,255,255,253,255,252,255,250,255, +248,255,246,255,246,255,246,255,248,255,250,255,253,255,255,255,255,255,255,255,254,255,252,255,250,255,248,255,248,255,248,255, +251,255,252,255,253,255,252,255,251,255,251,255,253,255,255,255,0,0,0,0,255,255,254,255,251,255,249,255,247,255,247,255, +247,255,250,255,252,255,253,255,255,255,255,255,253,255,251,255,251,255,252,255,252,255,250,255,246,255,244,255,243,255,243,255, +244,255,245,255,246,255,247,255,247,255,250,255,254,255,1,0,2,0,3,0,3,0,255,255,250,255,248,255,250,255,252,255, +254,255,252,255,250,255,249,255,249,255,249,255,250,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +255,255,253,255,251,255,250,255,250,255,251,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,1,0, +6,0,7,0,6,0,4,0,3,0,4,0,6,0,5,0,2,0,254,255,251,255,249,255,247,255,249,255,253,255,1,0, +2,0,255,255,252,255,250,255,251,255,253,255,255,255,2,0,4,0,4,0,3,0,3,0,5,0,6,0,6,0,4,0, +255,255,252,255,252,255,255,255,2,0,6,0,7,0,6,0,3,0,1,0,255,255,0,0,3,0,5,0,5,0,5,0, +5,0,3,0,2,0,2,0,2,0,0,0,254,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,3,0,4,0, +5,0,7,0,10,0,12,0,15,0,17,0,18,0,17,0,17,0,15,0,11,0,8,0,5,0,0,0,250,255,245,255, +243,255,243,255,244,255,247,255,251,255,254,255,1,0,2,0,2,0,3,0,5,0,6,0,7,0,8,0,9,0,12,0, +14,0,14,0,11,0,9,0,7,0,7,0,8,0,11,0,14,0,15,0,13,0,9,0,3,0,253,255,248,255,244,255, +241,255,238,255,237,255,238,255,242,255,248,255,255,255,5,0,10,0,12,0,11,0,10,0,10,0,9,0,6,0,3,0, +255,255,253,255,250,255,246,255,242,255,238,255,237,255,238,255,240,255,243,255,247,255,249,255,252,255,254,255,254,255,252,255, +250,255,249,255,248,255,248,255,250,255,255,255,4,0,5,0,4,0,4,0,5,0,5,0,4,0,1,0,0,0,254,255, +251,255,248,255,246,255,247,255,248,255,250,255,251,255,253,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,255,255, +253,255,251,255,248,255,245,255,243,255,243,255,247,255,250,255,250,255,250,255,252,255,252,255,249,255,246,255,245,255,246,255, +248,255,247,255,246,255,247,255,250,255,252,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,253,255,250,255,248,255, +246,255,245,255,245,255,244,255,244,255,245,255,247,255,250,255,0,0,6,0,10,0,12,0,9,0,4,0,255,255,250,255, +245,255,241,255,241,255,245,255,250,255,252,255,254,255,0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,255,255, +253,255,252,255,251,255,251,255,250,255,252,255,253,255,255,255,1,0,3,0,4,0,6,0,7,0,10,0,14,0,16,0, +15,0,13,0,9,0,4,0,0,0,252,255,250,255,250,255,253,255,0,0,2,0,2,0,1,0,255,255,253,255,253,255, +255,255,1,0,3,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,2,0,0,0,0,0,0,0, +255,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,255,255,2,0,5,0,8,0,10,0,11,0,11,0,9,0, +7,0,4,0,1,0,0,0,2,0,4,0,4,0,2,0,1,0,0,0,255,255,0,0,2,0,4,0,6,0,6,0, +4,0,0,0,253,255,254,255,255,255,1,0,4,0,8,0,10,0,9,0,7,0,7,0,8,0,8,0,9,0,9,0, +8,0,6,0,3,0,255,255,255,255,0,0,0,0,254,255,255,255,1,0,1,0,1,0,2,0,4,0,5,0,6,0, +9,0,12,0,12,0,11,0,9,0,8,0,7,0,5,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0, +255,255,252,255,250,255,249,255,248,255,248,255,251,255,255,255,4,0,8,0,11,0,12,0,12,0,11,0,9,0,6,0, +4,0,5,0,6,0,7,0,7,0,5,0,3,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,2,0, +2,0,2,0,1,0,1,0,0,0,255,255,0,0,2,0,3,0,2,0,2,0,2,0,1,0,2,0,3,0,0,0, +253,255,250,255,248,255,248,255,250,255,250,255,250,255,251,255,251,255,251,255,251,255,254,255,1,0,3,0,2,0,255,255, +253,255,252,255,250,255,248,255,249,255,251,255,252,255,253,255,253,255,254,255,255,255,255,255,253,255,250,255,248,255,247,255, +248,255,250,255,251,255,251,255,252,255,252,255,251,255,251,255,252,255,253,255,254,255,0,0,2,0,4,0,4,0,2,0, +254,255,252,255,251,255,249,255,248,255,249,255,250,255,250,255,251,255,252,255,253,255,254,255,255,255,0,0,1,0,2,0, +1,0,0,0,254,255,252,255,248,255,245,255,244,255,246,255,249,255,251,255,251,255,251,255,252,255,251,255,250,255,249,255, +248,255,249,255,251,255,252,255,250,255,249,255,250,255,251,255,253,255,0,0,4,0,7,0,6,0,4,0,3,0,2,0, +255,255,252,255,251,255,251,255,251,255,251,255,252,255,253,255,254,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0, +5,0,5,0,5,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,253,255,253,255, +253,255,252,255,252,255,0,0,5,0,8,0,8,0,7,0,6,0,6,0,4,0,4,0,4,0,5,0,3,0,1,0, +1,0,1,0,0,0,254,255,253,255,254,255,2,0,5,0,6,0,8,0,9,0,9,0,7,0,6,0,7,0,8,0, +9,0,8,0,8,0,7,0,6,0,5,0,4,0,4,0,4,0,5,0,6,0,5,0,6,0,7,0,5,0,4,0, +4,0,4,0,3,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,1,0,2,0,3,0,4,0,5,0,6,0, +5,0,4,0,5,0,5,0,5,0,4,0,5,0,6,0,6,0,5,0,5,0,3,0,1,0,0,0,0,0,0,0, +0,0,0,0,253,255,252,255,253,255,255,255,0,0,2,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0, +5,0,5,0,4,0,3,0,2,0,0,0,255,255,255,255,0,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0, +255,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,255,255,1,0,2,0,3,0,3,0,2,0,1,0,255,255, +254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,252,255,251,255,252,255,253,255,255,255, +0,0,1,0,2,0,1,0,254,255,253,255,254,255,253,255,253,255,252,255,252,255,251,255,251,255,252,255,253,255,254,255, +254,255,255,255,0,0,255,255,254,255,254,255,254,255,253,255,252,255,251,255,251,255,252,255,254,255,253,255,253,255,254,255, +254,255,254,255,253,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,250,255,249,255,248,255,248,255,250,255, +251,255,251,255,253,255,255,255,0,0,0,0,1,0,1,0,1,0,255,255,253,255,251,255,252,255,254,255,254,255,254,255, +253,255,253,255,253,255,253,255,253,255,252,255,250,255,248,255,248,255,249,255,250,255,251,255,254,255,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,0,0,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +0,0,255,255,255,255,253,255,253,255,252,255,252,255,251,255,251,255,252,255,254,255,255,255,255,255,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0, +4,0,4,0,2,0,2,0,2,0,3,0,3,0,4,0,3,0,3,0,2,0,2,0,0,0,255,255,255,255,255,255, +255,255,0,0,1,0,3,0,4,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,3,0, +3,0,4,0,4,0,1,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,4,0,4,0,4,0, +4,0,3,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,3,0,4,0,5,0, +6,0,5,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,3,0,4,0,5,0,5,0,5,0,5,0,5,0, +4,0,2,0,0,0,254,255,253,255,253,255,255,255,0,0,0,0,255,255,254,255,253,255,253,255,253,255,255,255,0,0, +2,0,4,0,5,0,5,0,5,0,5,0,3,0,1,0,254,255,253,255,254,255,0,0,1,0,2,0,2,0,1,0, +254,255,253,255,253,255,254,255,254,255,253,255,254,255,255,255,0,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0, +0,0,255,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +254,255,253,255,253,255,254,255,255,255,255,255,254,255,253,255,253,255,252,255,251,255,252,255,254,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,254,255,253,255,253,255,253,255,254,255,255,255,1,0,2,0,2,0,2,0,1,0, +0,0,254,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,253,255,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,255,255,254,255,254,255,253,255,253,255,253,255,255,255,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255, +0,0,1,0,0,0,1,0,1,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,2,0,2,0,2,0, +2,0,4,0,4,0,3,0,1,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,1,0,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0, +1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0, +2,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,3,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,254,255,253,255,252,255,252,255,252,255,253,255,255,255, +0,0,255,255,254,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,255,255,0,0, +1,0,1,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255, +0,0,1,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +254,255,254,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,1,0,2,0, +2,0,2,0,2,0,3,0,3,0,3,0,2,0,1,0,0,0,255,255,255,255,1,0,2,0,1,0,1,0,1,0, +0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0, +1,0,2,0,2,0,1,0,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,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0, +2,0,1,0,0,0,255,255,254,255,255,255,255,255,255,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,1,0, +1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,255,255,0,0, +0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,0,0,255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0, +2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, + +}; \ No newline at end of file diff --git a/src/client/sound/data/fallsmall.pcm b/src/client/sound/data/fallsmall.pcm new file mode 100755 index 0000000..412cffc --- /dev/null +++ b/src/client/sound/data/fallsmall.pcm @@ -0,0 +1,1430 @@ +unsigned char PCM_fallsmall[45676] = { +1,0,0,0,2,0,0,0,68,172,0,0,46,89,0,0,144,1,51,2,254,1,226,1,35,2,67,2,43,2,250,1, +180,1,148,1,184,1,204,1,152,1,93,1,72,1,64,1,43,1,30,1,40,1,49,1,33,1,24,1,33,1,10,1, +208,0,182,0,200,0,211,0,216,0,225,0,203,0,162,0,157,0,170,0,168,0,175,0,196,0,197,0,195,0,203,0, +180,0,133,0,114,0,121,0,116,0,100,0,89,0,95,0,122,0,131,0,85,0,22,0,249,255,233,255,212,255,199,255, +185,255,152,255,110,255,86,255,98,255,125,255,115,255,62,255,17,255,18,255,56,255,103,255,110,255,60,255,253,254,208,254, +178,254,183,254,218,254,224,254,194,254,184,254,190,254,162,254,106,254,55,254,16,254,2,254,20,254,46,254,65,254,84,254, +79,254,30,254,238,253,242,253,27,254,58,254,57,254,37,254,24,254,26,254,28,254,17,254,6,254,16,254,40,254,54,254, +45,254,17,254,228,253,196,253,228,253,61,254,123,254,118,254,88,254,71,254,71,254,84,254,81,254,42,254,9,254,15,254, +21,254,9,254,11,254,247,253,154,253,52,253,23,253,38,253,66,253,119,253,161,253,151,253,142,253,136,253,85,253,63,253, +131,253,173,253,84,253,206,252,159,252,189,252,213,252,253,252,123,253,248,253,229,253,105,253,243,252,207,252,63,253,216,253, +165,253,208,252,60,252,191,251,19,251,6,251,186,251,89,252,250,252,241,253,151,254,203,254,10,255,252,254,126,254,97,254, +103,254,142,253,81,252,190,251,149,251,34,251,116,250,50,250,202,250,92,251,12,251,89,251,216,253,185,0,113,1,20,0, +188,253,113,251,112,250,25,250,172,248,78,247,86,248,26,251,17,254,246,0,113,2,128,1,28,0,142,255,25,254,8,251, +230,247,36,246,43,247,40,251,222,254,136,255,7,255,237,255,106,1,175,1,199,0,226,255,67,255,176,253,15,251,168,249, +247,249,105,249,139,247,155,246,17,247,104,248,199,250,211,252,1,254,49,1,141,6,141,9,125,8,202,4,41,254,183,246, +72,244,85,247,89,250,171,250,107,249,99,248,236,249,52,253,191,253,222,251,145,252,91,255,178,255,98,254,199,255,90,4, +35,8,146,7,234,3,193,0,123,253,160,248,183,245,254,245,57,245,133,244,126,248,36,254,8,1,89,2,187,1,6,255, +109,255,247,1,79,255,20,251,214,252,6,255,10,252,160,249,1,251,249,253,71,2,106,4,1,1,87,254,73,0,53,1, +172,0,178,3,68,9,177,13,169,15,46,16,74,17,83,16,104,12,7,13,38,15,114,8,135,3,239,7,67,255,222,224, +87,191,197,156,0,128,186,132,227,190,117,1,252,47,4,85,155,117,255,127,108,106,80,46,127,235,53,190,244,159,128,139, +167,153,158,205,77,2,92,38,232,71,26,103,23,122,255,127,3,127,80,96,105,56,121,40,22,49,163,51,161,29,21,250, +187,220,101,203,114,193,3,192,43,202,216,215,125,224,114,234,219,253,108,20,3,37,17,50,51,63,117,68,98,58,93,41, +122,29,8,20,84,5,249,246,138,244,74,251,255,249,68,233,83,216,124,211,79,210,91,211,184,229,81,5,153,27,192,36, +32,39,197,28,62,8,95,251,176,250,124,253,241,1,67,7,115,7,180,1,188,249,87,241,107,235,63,234,27,237,165,245, +237,2,167,10,159,7,198,1,145,253,79,248,202,245,233,249,52,253,140,249,222,243,84,240,99,239,242,245,144,5,124,20, +197,25,64,21,187,7,74,242,211,221,54,215,84,227,231,250,60,16,122,24,33,18,71,4,211,247,100,240,62,235,194,229, +197,225,184,225,129,229,58,236,227,243,45,249,117,251,76,252,71,251,7,249,86,249,116,251,101,249,74,243,48,240,30,242, +166,243,222,240,76,236,186,235,194,241,44,251,13,4,28,11,79,14,123,12,195,9,205,8,247,4,3,252,136,243,226,239, +36,241,80,247,150,255,243,4,194,8,75,15,79,21,169,21,133,18,43,15,90,10,197,3,108,254,215,252,77,255,41,3, +60,5,93,7,68,13,51,20,45,23,72,23,221,22,66,20,119,15,240,11,249,10,186,12,60,19,129,29,68,37,103,38, +19,35,232,30,19,27,100,24,38,25,183,29,58,33,154,30,197,23,125,18,78,16,158,15,77,16,49,17,183,14,192,8, +201,3,170,1,85,255,255,250,200,246,133,244,105,243,78,242,214,240,45,238,218,233,35,229,16,225,255,220,178,217,227,217, +255,220,102,222,200,220,187,220,236,224,1,229,17,228,206,223,243,220,103,219,140,216,144,213,236,213,78,218,175,224,204,231, +114,239,17,247,23,254,7,4,215,6,4,4,67,253,3,249,55,251,133,0,26,4,11,7,7,13,209,20,209,25,137,26, +7,24,99,18,127,11,196,8,10,12,216,15,15,16,177,15,96,17,83,18,251,16,206,15,170,14,189,10,23,5,216,255, +34,249,137,244,149,0,245,33,153,65,129,66,243,35,90,255,232,235,117,240,131,6,200,30,163,43,68,46,97,48,234,48, +79,38,45,19,233,6,234,8,121,18,55,28,226,35,188,38,33,34,209,24,184,16,31,13,167,13,6,16,135,18,251,21, +192,25,146,23,32,12,208,0,250,255,118,3,177,254,115,244,188,240,196,243,125,245,47,246,54,250,234,253,143,252,137,249, +21,248,123,245,226,241,111,241,47,242,31,239,132,235,235,236,240,239,115,240,183,242,247,247,6,248,91,241,99,238,1,242, +35,242,69,236,73,234,87,238,72,239,117,235,135,234,118,236,207,233,238,226,121,222,203,220,161,218,198,217,233,219,139,220, +26,217,194,214,154,217,135,222,18,226,240,228,36,231,88,230,217,226,77,224,219,223,161,222,238,218,73,214,50,210,99,206, +17,203,16,202,25,204,120,207,172,211,76,219,40,230,9,237,237,233,174,225,143,221,231,221,16,220,212,214,27,211,79,210, +188,209,203,209,62,213,187,218,59,222,82,223,133,224,76,226,238,226,203,225,8,224,228,222,139,222,90,222,96,222,3,224, +156,227,247,230,118,232,110,233,222,234,111,235,88,235,82,237,216,240,87,241,12,238,93,236,142,239,36,244,216,245,155,244, +56,242,227,239,223,238,205,239,131,241,227,242,91,244,17,246,238,246,111,246,28,245,47,243,245,240,131,239,56,239,13,239, +143,238,70,238,250,237,135,237,164,238,51,242,100,245,104,245,253,243,82,244,197,245,174,245,241,243,67,242,36,241,93,240, +148,240,61,242,120,244,61,246,129,247,201,248,84,250,233,251,41,253,33,254,36,255,218,255,140,255,181,254,163,254,70,255, +78,255,174,254,153,254,3,255,170,254,174,253,140,253,122,254,40,255,11,255,236,254,38,255,35,255,160,254,27,254,215,253, +103,253,104,252,50,251,117,250,100,250,127,250,24,250,252,248,126,247,218,246,199,247,98,249,200,250,145,251,151,251,60,251, +179,250,138,249,10,248,91,247,255,247,176,249,196,251,252,252,171,252,214,251,188,251,138,252,213,253,160,254,21,254,79,253, +44,254,38,0,42,1,194,0,70,0,252,0,99,2,221,1,197,253,202,248,147,247,217,251,105,3,118,9,184,8,129,0, +1,247,226,242,234,244,118,249,30,252,162,249,8,243,227,237,13,238,151,241,171,244,173,245,255,244,54,244,51,245,215,247, +128,249,2,248,34,244,174,240,201,239,233,240,120,241,228,239,153,237,43,237,236,238,114,240,194,239,220,237,133,237,40,240, +58,244,147,246,245,245,177,244,89,245,171,247,106,250,10,253,40,254,232,252,187,251,164,252,137,253,220,252,90,252,63,252, +18,251,116,250,115,252,25,255,146,0,190,1,70,2,162,1,187,2,111,7,51,12,133,12,113,7,151,255,0,250,207,249, +45,253,88,2,60,10,106,18,158,21,139,19,140,15,102,11,248,8,162,9,127,11,242,13,138,18,86,22,171,21,89,19, +205,17,233,15,241,15,55,18,28,17,181,14,190,18,68,25,70,28,40,32,28,36,198,28,91,8,18,237,70,212,0,211, +83,243,20,34,23,77,198,102,163,85,140,29,47,233,33,200,23,179,116,191,11,246,89,47,111,79,105,90,37,76,71,40, +21,17,227,24,107,41,14,44,18,33,20,19,189,11,176,11,214,13,184,21,195,39,197,57,167,63,178,55,155,35,197,11, +208,254,248,250,167,241,153,232,22,246,40,30,145,75,128,98,13,86,214,53,169,27,80,13,125,3,205,251,21,244,52,240, +57,0,29,34,58,56,4,51,83,32,188,18,61,23,62,44,218,56,211,43,129,21,76,12,188,19,84,36,76,47,157,36, +241,5,106,225,95,189,150,159,5,146,49,141,52,131,239,134,153,179,86,244,216,32,117,60,152,92,16,115,116,103,143,64, +165,17,196,228,195,198,60,197,127,221,127,2,243,39,155,61,176,53,255,23,130,252,1,242,185,245,242,254,3,11,98,32, +140,66,34,98,11,103,142,75,140,29,20,235,68,190,126,160,251,148,110,155,29,182,210,221,185,249,41,243,111,204,248,162, +141,157,88,201,250,6,140,49,150,75,40,97,180,92,190,45,209,242,245,202,35,174,242,147,235,140,178,167,107,222,225,18, +41,23,58,223,27,158,153,138,7,162,222,191,189,205,17,206,221,208,63,223,228,240,190,255,222,16,219,31,255,36,35,47, +110,77,209,106,200,99,191,49,186,238,35,189,194,174,245,185,117,200,136,203,72,195,231,195,186,231,117,35,110,66,228,40, +140,248,88,222,163,223,239,232,32,241,147,252,211,9,102,12,68,255,84,239,15,235,231,243,100,3,160,17,121,24,5,24, +59,18,80,7,189,255,99,7,96,21,15,19,12,0,3,243,208,246,104,254,19,249,37,229,180,207,171,197,108,200,198,210, +203,223,113,234,255,242,81,2,80,27,153,49,26,55,127,40,50,12,238,240,83,230,108,237,89,249,10,2,253,10,208,22, +204,30,53,28,18,21,146,21,143,28,8,28,154,13,168,248,26,231,143,223,159,226,193,230,101,225,49,213,58,206,128,213, +181,236,230,11,66,34,13,36,82,23,244,12,55,15,103,24,179,25,56,12,165,248,85,236,72,236,253,242,103,245,234,236, +139,224,217,222,9,237,243,1,161,16,59,19,16,13,177,4,63,253,194,246,219,238,88,227,108,213,87,204,59,209,41,228, +20,248,72,255,158,250,42,247,202,253,132,10,105,19,150,18,22,9,147,252,1,243,221,237,14,234,218,229,142,228,197,233, +149,243,35,252,31,255,25,252,182,245,51,240,187,238,12,241,121,244,138,246,140,245,206,240,85,234,178,229,43,227,142,223, +253,218,77,219,45,228,35,241,246,250,93,255,231,255,65,253,199,247,18,242,34,239,248,238,251,238,210,236,66,232,151,227, +13,226,134,228,151,232,232,235,210,238,39,242,194,244,135,245,89,245,168,244,95,241,55,234,94,226,220,222,89,225,69,231, +200,236,12,239,150,237,93,235,198,236,71,242,177,246,72,245,33,240,110,237,124,239,145,242,107,242,206,238,112,234,47,232, +95,233,147,236,86,238,118,237,131,237,23,242,11,249,31,253,203,252,51,250,30,246,226,239,139,232,34,225,120,216,111,208, +202,209,75,226,247,248,116,5,206,2,6,251,129,248,69,252,31,2,95,5,173,0,71,242,161,226,200,222,209,232,31,244, +91,244,72,235,204,228,103,233,96,247,64,6,87,14,95,14,5,11,201,8,190,6,126,1,187,249,229,243,14,242,248,241, +49,241,198,239,139,238,156,237,234,236,128,236,193,236,191,239,246,247,254,2,123,8,20,3,156,248,210,243,3,247,222,250, +132,250,188,249,202,252,102,0,174,254,113,248,108,244,171,246,244,252,1,3,94,6,223,5,50,1,207,250,133,247,121,249, +238,252,130,252,240,247,4,244,44,244,4,247,208,249,51,252,186,254,111,0,89,0,132,255,14,255,206,253,180,250,21,248, +47,249,14,253,115,255,244,254,16,255,103,3,91,11,37,19,230,22,30,20,207,10,188,254,171,245,149,242,115,243,186,244, +225,245,78,249,128,0,179,9,19,17,122,19,45,16,3,9,81,1,50,252,239,250,100,252,39,254,234,254,222,255,58,3, +49,9,251,14,73,17,63,15,229,10,32,7,118,5,76,5,232,4,111,3,30,2,0,3,85,6,219,9,45,11,109,10, +248,9,135,11,40,14,72,15,88,13,37,9,208,4,32,2,196,1,118,3,47,6,197,8,241,10,60,13,113,15,30,16, +169,14,232,12,16,13,156,14,63,15,111,14,190,13,126,13,246,11,13,9,21,8,227,11,66,18,179,21,137,19,106,14, +188,10,105,10,131,12,23,15,81,16,98,15,166,13,229,13,12,17,111,20,199,20,60,18,183,15,188,14,35,14,34,13, +35,13,49,15,136,17,212,17,191,16,38,17,8,20,90,23,8,25,30,25,109,24,231,22,148,20,178,18,78,18,150,18, +27,18,40,17,71,17,177,18,14,20,217,20,13,22,212,23,92,24,95,22,134,19,126,18,104,19,251,19,30,19,100,18, +150,19,78,22,243,24,174,26,102,27,200,26,235,24,63,23,73,23,93,24,17,24,86,21,13,18,225,16,104,18,12,21, +253,22,120,23,195,22,240,21,59,22,155,23,7,24,101,21,137,16,46,13,68,14,196,18,219,22,214,23,48,22,44,20, +103,19,233,19,211,20,88,21,58,21,158,20,127,19,132,17,177,14,43,12,144,11,82,13,22,16,29,18,2,19,174,19, +201,20,189,21,88,21,246,18,42,15,135,11,206,9,195,10,150,13,138,16,99,18,255,18,182,18,191,17,105,16,106,15, +58,15,108,15,46,15,96,14,160,13,68,13,238,12,77,12,210,11,4,12,189,12,100,13,95,13,84,12,52,10,126,7, +92,5,240,4,52,6,236,7,252,8,139,9,98,10,109,11,145,11,45,10,65,8,128,7,104,8,171,9,124,9,70,7, +22,4,183,1,101,1,236,2,192,4,55,5,12,4,167,2,167,2,52,4,5,6,249,6,35,7,31,7,235,6,246,5, +68,4,197,2,97,2,246,2,158,3,179,3,68,3,182,2,78,2,36,2,52,2,84,2,81,2,35,2,227,1,107,1, +90,0,187,254,121,253,169,253,68,255,255,0,153,1,38,1,200,0,73,1,93,2,64,3,159,3,196,3,23,4,179,4, +89,5,141,5,211,4,38,3,49,1,239,255,226,255,204,0,39,2,163,3,18,5,254,5,209,5,104,4,79,2,66,0, +154,254,97,253,187,252,242,252,18,254,173,255,32,1,5,2,92,2,119,2,192,2,114,3,85,4,199,4,68,4,241,2, +124,1,111,0,177,255,219,254,236,253,112,253,248,253,118,255,49,1,88,2,158,2,95,2,48,2,81,2,105,2,232,1, +169,0,58,255,108,254,166,254,158,255,184,0,133,1,217,1,194,1,67,1,120,0,225,255,247,255,182,0,121,1,131,1, +172,0,144,255,234,254,218,254,218,254,121,254,251,253,14,254,227,254,210,255,0,0,57,255,11,254,19,253,135,252,89,252, +141,252,33,253,212,253,73,254,99,254,86,254,62,254,236,253,51,253,91,252,242,251,57,252,217,252,67,253,69,253,43,253, +86,253,197,253,0,254,124,253,42,252,162,250,167,249,116,249,163,249,207,249,41,250,43,251,204,252,98,254,88,255,184,255, +193,255,59,255,192,253,156,251,226,249,86,249,131,249,81,249,110,248,172,247,8,248,158,249,170,251,64,253,190,253,246,252, +91,251,247,249,173,249,95,250,42,251,158,251,93,252,26,254,44,0,200,0,221,254,113,251,209,248,132,248,42,250,66,252, +153,253,0,254,206,253,39,253,225,251,42,250,243,248,74,249,239,250,4,252,216,250,40,248,229,246,14,249,34,253,133,255, +139,254,65,252,187,251,67,253,60,254,168,252,163,249,232,247,139,248,42,250,29,251,133,251,185,252,57,255,201,1,162,2, +33,1,74,254,230,251,28,251,181,251,140,252,193,252,120,252,119,252,247,252,116,253,160,253,240,253,232,254,41,0,195,0, +54,0,195,254,43,253,89,252,226,252,142,254,69,0,172,0,120,255,12,254,5,254,40,255,206,255,33,255,234,253,119,253, +53,254,18,255,133,254,219,252,68,252,156,253,34,255,69,255,89,254,248,252,93,251,128,250,89,251,71,253,236,254,196,255, +200,255,209,254,26,253,132,251,13,251,27,252,199,253,140,254,82,254,80,254,146,254,254,253,228,252,165,252,96,253,108,254, +155,255,77,0,174,255,205,254,87,255,82,0,98,255,155,252,83,250,34,250,102,251,229,251,56,250,62,248,26,249,161,252, +4,0,56,2,186,3,192,3,212,1,209,255,14,255,122,254,95,253,131,252,231,251,177,250,62,249,231,248,57,250,72,252, +114,253,93,253,220,253,209,255,196,0,180,254,164,251,240,249,251,248,88,248,89,249,188,251,197,253,158,255,253,1,100,3, +168,2,241,0,227,254,236,251,34,249,72,248,112,248,161,247,125,246,59,247,138,250,190,254,62,1,22,1,27,0,250,255, +182,255,103,254,127,253,180,253,94,253,175,251,236,249,8,249,59,249,113,250,228,250,129,249,191,248,111,250,223,251,225,250, +243,249,23,251,17,252,54,251,135,250,152,251,1,253,107,253,198,253,12,255,62,0,54,0,175,255,107,255,47,254,38,251, +35,248,218,246,96,246,125,245,146,244,31,244,72,244,166,245,95,248,128,251,18,254,71,255,115,254,128,252,118,251,170,251, +1,252,95,252,236,252,182,252,77,251,166,249,88,248,87,247,253,246,135,247,183,248,129,250,152,252,249,253,80,254,134,254, +61,255,227,255,87,255,32,253,68,250,50,248,19,247,248,246,204,248,141,251,36,252,34,250,232,247,56,246,70,245,6,247, +217,250,210,252,246,252,233,254,186,1,9,2,236,1,16,4,169,2,187,245,221,225,217,217,142,235,148,10,185,24,129,10, +184,244,200,237,49,245,141,0,70,10,226,14,45,15,96,17,225,17,208,2,59,230,183,209,22,209,99,222,13,245,9,18, +70,38,35,33,162,4,232,227,32,212,25,224,252,0,245,34,216,51,143,43,213,13,29,235,230,213,50,210,233,216,55,230, +223,246,1,2,224,3,182,2,67,1,139,252,112,248,132,252,235,5,105,11,101,10,164,5,33,254,121,244,111,236,119,235, +151,244,222,3,2,15,213,14,36,6,121,252,163,246,219,245,143,248,200,250,13,250,163,248,136,250,175,0,91,8,133,13, +15,13,227,5,181,249,172,237,97,232,207,236,234,247,198,3,26,11,24,11,172,5,62,0,79,253,167,250,138,247,18,247, +246,250,18,1,68,6,239,7,142,4,41,254,199,249,37,250,52,253,159,255,178,0,255,1,19,4,207,4,39,2,99,253, +197,249,239,248,82,250,163,252,89,254,66,254,158,252,245,250,225,250,221,252,113,255,72,0,2,255,144,253,55,253,100,253, +119,253,148,253,152,253,19,253,46,252,172,251,239,251,83,252,33,252,46,252,7,254,46,1,19,3,65,2,229,255,41,254, +41,254,218,254,200,253,89,250,108,247,215,247,233,250,53,254,134,0,135,1,249,0,127,255,109,254,37,254,217,253,229,252, +148,251,192,250,0,251,52,252,155,253,84,254,47,254,54,254,129,255,43,1,195,0,111,253,118,249,25,248,107,250,124,254, +89,1,160,1,227,255,25,253,228,249,81,247,197,246,209,248,106,252,168,255,116,1,160,1,102,0,100,254,172,252,13,252, +88,252,211,252,43,253,65,253,133,252,149,250,172,248,15,249,69,252,207,255,180,0,220,254,194,252,28,252,81,252,78,252, +100,252,100,253,237,254,211,255,175,255,215,254,37,253,49,250,2,247,250,245,69,248,27,252,150,254,203,254,33,254,226,253, +186,253,207,252,90,251,116,250,210,250,48,252,196,253,188,254,140,254,81,253,228,251,38,251,56,251,164,251,24,252,142,252, +196,252,75,252,85,251,239,250,219,251,128,253,138,254,118,254,26,254,113,254,87,255,158,255,78,254,190,251,141,249,114,249, +176,251,157,254,252,255,10,255,10,253,187,251,166,251,52,252,246,252,36,254,216,255,102,1,223,1,2,1,90,255,189,253, +201,252,180,252,56,253,206,253,74,254,12,255,91,0,161,1,217,1,219,0,192,255,183,255,196,0,234,1,62,2,105,1, +126,255,249,252,251,250,216,250,219,252,195,255,219,1,141,2,152,2,216,2,69,3,65,3,128,2,87,1,72,0,109,255, +128,254,83,253,55,252,219,251,188,252,188,254,79,1,13,4,212,6,98,9,25,11,26,11,15,9,164,5,42,2,174,255, +104,254,245,253,249,253,114,254,125,255,0,1,172,2,79,4,240,5,141,7,204,8,33,9,71,8,137,6,116,4,85,2, +29,0,220,253,46,252,240,251,120,253,29,0,172,2,112,4,165,5,237,6,86,8,27,9,110,8,109,6,54,4,230,2, +152,2,108,2,148,1,65,0,131,255,63,0,61,2,65,4,11,5,62,4,130,2,224,0,2,0,249,255,120,0,68,1, +90,2,206,3,133,5,24,7,8,8,26,8,151,7,26,7,13,7,40,7,151,6,169,4,137,1,77,254,52,252,199,251, +152,252,212,253,6,255,77,0,236,1,191,3,54,5,218,5,188,5,92,5,37,5,1,5,134,4,112,3,2,2,221,0, +144,0,54,1,120,2,212,3,220,4,81,5,21,5,39,4,187,2,77,1,137,0,238,0,93,2,254,3,179,4,236,3, +43,2,185,0,163,0,216,1,58,3,157,3,210,2,196,1,146,1,137,2,6,4,40,5,163,5,198,5,228,5,216,5, +58,5,245,3,131,2,139,1,63,1,76,1,76,1,71,1,154,1,128,2,195,3,215,4,81,5,43,5,156,4,204,3, +208,2,214,1,60,1,89,1,56,2,141,3,242,4,30,6,237,6,74,7,57,7,227,6,130,6,23,6,93,5,25,4, +141,2,110,1,59,1,176,1,19,2,34,2,138,2,38,4,198,6,255,8,119,9,77,8,0,7,208,6,106,7,127,7, +130,6,99,5,86,5,32,6,43,6,143,4,144,2,158,2,165,5,183,9,200,11,176,10,47,8,242,6,210,7,89,9, +178,9,162,8,104,7,7,7,64,7,79,7,29,7,81,7,67,8,88,9,182,9,93,9,38,9,165,9,88,10,60,10, +14,9,163,7,240,6,243,6,215,6,32,6,103,5,206,5,187,7,82,10,36,12,75,12,225,10,180,8,171,6,105,5, +32,5,149,5,68,6,194,6,16,7,128,7,63,8,15,9,138,9,153,9,147,9,198,9,5,10,200,9,201,8,92,7, +47,6,183,5,236,5,124,6,36,7,204,7,106,8,248,8,117,9,218,9,2,10,185,9,2,9,61,8,220,7,238,7, +245,7,102,7,76,6,81,5,36,5,224,5,19,7,56,8,10,9,97,9,253,8,189,7,16,6,240,4,12,5,7,6, +228,6,1,7,135,6,52,6,123,6,245,6,9,7,197,6,187,6,95,7,109,8,29,9,45,9,234,8,95,8,183,7, +97,7,23,7,94,6,160,5,16,5,65,4,208,3,218,4,180,6,160,7,28,7,15,6,130,5,160,5,255,5,119,6, +166,6,248,5,42,5,103,5,3,6,255,5,11,6,166,6,34,7,73,7,75,7,36,7,11,7,240,6,83,6,97,5, +95,4,54,3,221,2,42,4,165,5,195,5,57,5,61,5,238,5,147,6,95,6,192,5,176,5,161,5,230,4,106,4, +105,4,245,3,109,3,189,3,154,4,111,5,196,5,99,5,60,5,170,5,151,5,57,5,139,5,108,5,21,4,56,3, +99,3,94,3,118,3,144,4,167,5,48,5,151,3,24,3,163,4,6,6,189,5,118,5,226,5,162,5,104,5,80,6, +143,6,106,5,235,4,115,5,190,5,220,5,223,5,35,5,236,3,245,2,164,2,45,3,245,3,105,4,17,5,241,5, +129,6,52,7,233,7,92,7,192,5,57,4,20,3,211,2,132,3,181,3,121,3,3,4,71,4,202,3,73,4,167,4, +72,2,10,0,153,2,185,7,33,9,207,5,202,2,1,3,132,3,27,2,86,1,135,2,118,3,28,4,194,5,81,6, +67,4,55,2,33,2,16,3,255,3,36,4,254,2,152,1,51,1,250,1,193,3,210,5,5,7,247,6,207,5,85,4, +241,3,227,3,168,1,9,254,120,252,137,253,32,255,6,0,107,0,28,1,54,2,141,2,16,2,5,2,186,1,204,255, +179,253,36,253,50,253,233,252,208,252,101,253,170,254,33,0,255,0,82,1,134,1,104,1,250,0,102,0,56,255,180,253, +221,252,147,252,89,252,127,252,215,252,30,253,57,254,62,0,139,1,63,1,22,0,52,255,87,255,247,255,190,255,151,254, +133,253,1,253,91,253,185,254,7,0,43,0,165,255,125,255,215,255,62,0,111,0,134,0,73,0,22,255,132,253,84,253, +154,254,169,255,12,0,173,0,176,1,64,2,143,1,152,255,152,253,23,253,251,253,212,254,239,254,242,254,118,255,26,0, +69,0,24,0,235,255,169,255,61,255,201,254,48,254,110,253,40,253,251,253,140,255,162,0,151,0,253,255,174,255,190,255, +123,255,105,254,10,253,76,252,97,252,202,252,32,253,88,253,145,253,207,253,209,253,167,253,43,254,194,255,73,1,107,1, +89,0,91,255,49,255,112,255,116,255,125,255,23,0,190,0,110,0,33,255,183,253,247,252,56,253,149,254,191,0,105,2, +253,1,24,0,167,255,199,1,3,4,3,4,28,2,146,255,135,252,20,248,24,243,106,242,39,250,245,6,13,17,66,20, +236,16,69,9,175,0,180,249,253,244,142,243,5,246,152,250,181,255,208,4,243,7,115,8,228,8,41,9,255,4,148,251, +98,242,22,240,243,246,156,1,65,7,212,5,24,3,246,2,198,3,239,2,137,255,203,250,231,247,255,248,247,252,66,1, +189,3,186,3,23,3,19,4,166,5,212,4,250,0,191,252,66,251,207,252,214,254,85,255,215,254,223,254,24,0,200,1, +36,2,90,0,196,253,42,252,97,252,100,254,177,0,91,1,211,0,165,0,108,0,79,255,34,254,234,253,255,254,22,1, +58,2,184,0,81,254,195,253,8,255,218,0,74,2,50,2,191,0,236,255,63,0,99,0,5,0,110,255,85,254,54,253, +231,252,21,253,143,253,197,254,241,255,254,255,156,255,160,255,131,255,221,254,31,254,218,253,156,254,67,0,107,1,34,1, +20,0,37,255,136,254,90,254,158,254,5,255,78,255,114,255,135,255,149,255,123,255,91,255,217,255,245,0,104,1,20,0, +123,253,135,251,252,251,145,254,38,1,97,2,148,2,226,1,14,0,217,253,131,252,128,252,134,253,170,254,1,255,5,255, +198,255,16,1,56,2,61,3,133,3,3,2,51,255,186,252,160,251,7,252,49,253,208,253,170,253,190,253,107,254,103,255, +221,0,141,2,75,3,148,2,35,1,209,255,26,255,1,255,7,255,240,254,1,255,16,255,187,254,142,254,125,255,113,1, +92,3,78,4,43,4,158,3,61,3,236,2,75,2,74,1,23,0,237,254,14,254,187,253,33,254,60,255,184,0,36,2, +22,3,34,3,49,2,213,0,203,255,101,255,162,255,77,0,16,1,177,1,8,2,226,1,80,1,206,0,190,0,54,1, +37,2,65,3,11,4,36,4,108,3,10,2,102,0,3,255,77,254,113,254,77,255,152,0,232,1,183,2,177,2,10,2, +70,1,183,0,103,0,107,0,243,0,220,1,138,2,146,2,55,2,243,1,202,1,130,1,72,1,118,1,229,1,22,2, +224,1,123,1,7,1,151,0,118,0,209,0,91,1,176,1,205,1,202,1,134,1,17,1,199,0,204,0,224,0,1,1, +110,1,232,1,199,1,19,1,160,0,224,0,97,1,166,1,174,1,142,1,73,1,10,1,244,0,229,0,210,0,1,1, +114,1,169,1,101,1,235,0,86,0,123,255,168,254,143,254,51,255,222,255,69,0,174,0,1,1,199,0,34,0,166,255, +113,255,74,255,91,255,238,255,178,0,34,1,39,1,232,0,137,0,104,0,193,0,234,0,13,0,167,254,1,254,51,254, +63,254,235,253,246,253,128,254,234,254,21,255,86,255,114,255,11,255,151,254,163,254,194,254,119,254,53,254,108,254,184,254, +242,254,165,255,148,0,122,0,71,255,169,254,71,255,119,255,39,254,248,252,160,253,1,255,1,255,7,254,62,254,208,255, +109,0,255,254,164,253,133,254,123,0,210,0,98,255,64,254,232,253,198,253,114,253,10,253,247,252,62,253,158,253,226,253, +223,253,131,253,127,253,214,254,156,0,188,0,254,255,147,0,183,0,69,253,186,248,18,249,248,254,243,3,182,2,86,254, +31,253,24,255,2,0,202,254,184,252,217,250,96,251,17,255,39,2,100,1,178,254,176,253,184,254,155,254,173,251,108,249, +200,250,16,253,63,254,83,0,192,2,73,2,255,254,70,251,3,249,227,249,45,253,164,255,171,255,220,253,254,251,105,252, +28,254,154,253,222,251,28,252,58,253,107,253,19,253,166,251,221,249,158,250,236,252,76,253,66,252,57,252,193,253,216,255, +148,0,40,0,122,0,235,254,111,249,178,247,245,254,84,5,150,0,7,246,180,241,200,246,220,252,250,251,177,248,93,251, +10,1,150,2,150,0,206,253,1,251,78,250,52,252,165,254,55,1,69,2,131,254,133,248,212,246,108,251,215,2,122,6, +113,2,104,252,245,250,74,251,161,250,255,251,32,254,6,253,182,251,31,254,249,0,100,255,208,250,145,250,222,0,61,4, +17,0,185,254,113,0,48,241,191,206,22,188,247,213,82,5,72,18,22,232,12,182,77,183,67,230,152,5,156,237,121,185, +22,168,17,213,25,23,249,48,136,22,76,236,197,213,50,218,236,235,20,250,96,252,79,244,197,236,140,244,231,9,134,21, +211,8,163,240,154,225,67,228,188,243,39,2,130,3,248,248,211,237,124,236,65,245,141,253,209,254,193,255,18,4,223,2, +241,247,5,237,13,237,231,248,65,6,106,8,21,255,27,246,169,245,154,251,62,0,40,253,109,245,57,243,24,249,210,255, +101,1,134,252,120,244,16,241,253,245,97,253,159,0,22,255,83,252,167,252,200,255,89,0,163,252,62,248,74,245,194,244, +15,248,8,253,162,255,21,255,154,252,89,250,39,251,12,254,223,254,172,252,177,249,54,248,4,250,232,253,188,255,113,254, +205,252,134,252,90,253,212,253,43,252,190,249,200,249,203,251,51,253,252,253,214,254,15,255,101,254,100,253,187,252,247,252, +150,253,220,253,232,253,8,253,136,250,167,248,121,249,2,251,38,251,153,251,34,254,211,0,186,0,76,254,149,252,118,252, +1,252,253,250,118,251,130,253,0,255,44,255,224,254,100,254,141,253,53,252,83,251,182,251,91,252,138,252,49,253,157,254, +17,255,125,253,117,251,8,251,90,252,16,254,203,254,121,254,161,254,46,0,150,1,49,1,160,255,246,253,60,252,41,251, +216,251,130,253,174,254,74,255,43,255,173,253,22,252,97,252,236,253,41,255,22,0,3,0,119,253,38,250,178,249,75,252, +126,255,12,2,233,2,192,0,101,253,158,252,44,254,117,254,186,252,116,251,85,251,130,250,219,248,173,249,58,255,29,6, +88,8,207,4,193,255,85,252,113,250,185,249,212,249,129,249,232,248,198,249,200,251,56,253,6,255,211,2,16,6,54,4, +121,253,167,247,24,248,16,254,77,4,64,7,232,6,180,3,246,254,211,252,203,254,56,255,171,249,106,243,151,244,58,253, +120,5,42,5,138,251,192,241,135,241,144,249,159,2,62,11,210,19,25,23,69,17,58,5,99,245,152,228,94,221,73,231, +244,248,238,3,222,6,232,7,193,8,160,8,238,6,157,1,243,249,159,246,31,250,12,255,45,1,218,0,111,254,58,251, +157,250,113,252,138,252,225,249,133,247,206,247,65,251,234,255,230,0,118,252,61,248,36,249,167,252,243,254,247,255,16,0, +71,255,31,255,207,255,84,255,253,253,237,253,113,254,7,254,28,254,78,255,46,255,143,253,218,253,159,0,0,2,43,0, +99,254,3,0,209,3,52,6,199,5,85,3,175,255,166,252,179,252,83,254,45,253,84,250,97,251,35,0,47,3,188,3, +117,4,31,4,64,1,250,254,88,255,75,0,234,0,93,1,186,255,184,252,90,253,208,1,237,3,1,2,196,0,122,1, +232,255,83,249,159,239,37,232,223,233,120,248,67,15,242,33,30,35,165,15,87,246,112,235,32,241,11,248,206,247,64,247, +70,252,20,4,238,10,94,14,43,11,208,2,34,253,81,254,45,2,190,3,129,2,208,255,197,252,77,250,220,248,57,249, +150,252,158,1,34,4,26,2,85,254,227,252,26,255,20,3,90,5,209,3,194,255,108,252,8,252,164,254,124,2,203,4, +211,3,158,0,38,254,191,254,55,2,244,5,80,7,251,5,104,3,133,0,67,253,133,249,65,245,225,240,155,238,244,241, +52,252,142,9,38,19,137,20,218,14,161,6,154,255,85,251,13,250,250,250,195,252,151,254,252,0,210,4,227,8,176,9, +137,5,225,255,220,253,13,0,185,2,182,3,255,3,194,3,146,1,52,254,208,252,145,254,165,1,156,4,10,7,148,7, +73,5,0,2,188,255,202,253,4,252,128,253,88,3,70,8,246,6,148,1,207,253,186,252,240,251,167,251,239,253,5,2, +37,5,117,6,152,6,96,5,185,2,54,0,62,255,67,255,23,255,162,254,115,254,241,254,35,0,65,1,6,1,115,255, +67,254,214,254,189,0,171,2,120,3,85,2,181,255,185,253,236,253,109,255,37,1,18,4,188,8,29,12,42,10,188,2, +213,249,34,244,120,244,134,250,58,2,93,6,142,5,34,3,80,2,158,2,238,1,175,255,14,253,186,251,254,252,152,0, +51,4,69,5,116,3,77,0,90,253,158,251,10,252,209,254,89,2,225,3,196,1,86,253,50,250,171,250,218,252,13,253, +77,251,198,251,53,0,26,4,111,2,234,252,233,249,28,252,183,255,29,0,140,253,253,251,224,253,110,1,223,2,111,0, +200,251,231,247,151,246,4,248,90,251,229,254,163,0,45,0,85,255,185,255,73,0,209,254,190,251,15,250,36,251,230,252, +34,253,150,252,248,252,224,253,218,253,52,253,65,253,162,253,201,252,222,250,189,249,52,250,118,251,43,253,154,255,148,1, +202,0,40,253,182,249,0,249,79,250,151,251,123,252,222,253,156,255,116,0,189,255,17,254,100,252,88,251,74,251,24,252, +235,252,254,252,195,252,130,253,101,255,144,0,34,255,237,251,9,250,98,251,152,254,214,0,211,0,67,255,95,253,41,252, +77,252,88,253,160,253,95,252,87,251,187,252,232,255,235,1,25,1,127,254,240,251,126,250,202,250,252,252,229,255,161,1, +127,1,94,0,50,255,61,254,149,253,78,253,57,253,76,253,231,253,243,254,128,255,65,255,60,255,1,0,120,0,213,255, +51,255,152,255,246,255,44,255,94,254,2,255,21,0,219,255,15,255,134,255,180,0,151,0,90,255,24,255,89,0,146,1, +0,2,88,2,161,2,230,1,67,0,45,255,74,255,184,255,174,255,122,255,210,255,17,1,240,2,44,4,63,3,89,0, +189,253,67,253,136,254,84,0,51,2,162,3,107,3,112,1,176,255,221,255,43,1,30,2,211,2,182,3,199,3,34,2, +216,255,167,254,213,254,169,255,16,1,74,3,135,5,104,6,124,5,60,3,139,0,242,254,191,255,59,2,54,4,116,4, +79,3,142,1,205,255,222,254,149,255,167,1,125,3,52,4,142,4,164,4,33,3,107,0,105,255,91,1,240,3,145,4, +88,3,26,2,241,1,131,2,75,3,1,4,211,3,138,2,248,1,98,3,57,5,208,5,107,5,99,4,34,3,73,3, +16,5,208,5,14,4,231,1,205,1,117,3,205,4,179,4,22,4,39,4,176,4,83,5,41,6,126,6,167,5,126,4, +159,3,148,2,230,1,162,2,81,4,9,6,74,7,29,7,135,5,100,4,86,4,235,3,193,2,229,1,233,1,10,3, +50,5,23,7,95,7,3,6,230,3,124,2,247,2,177,4,244,5,253,5,236,4,146,3,59,3,141,3,171,2,226,0, +129,0,252,1,226,3,104,5,93,6,145,6,31,6,2,5,102,3,72,2,28,2,253,1,80,1,116,0,46,0,116,1, +76,4,21,7,120,8,82,8,107,6,77,3,48,1,68,1,117,2,171,3,55,4,84,3,169,1,18,1,231,1,236,2, +79,3,92,3,18,4,194,5,20,7,223,6,196,5,126,4,93,3,59,3,235,3,215,3,30,3,18,3,14,3,80,2, +71,2,136,3,113,4,17,4,218,2,185,1,240,1,72,3,126,3,27,2,92,1,43,2,87,3,74,4,27,5,165,5, +195,5,1,5,15,3,19,1,115,0,17,1,15,2,153,2,78,2,101,2,13,4,157,5,237,4,190,2,168,0,5,255, +117,254,169,255,254,1,184,4,97,7,147,8,63,7,82,4,138,1,42,0,92,0,173,0,0,0,138,255,111,0,165,1, +20,2,226,1,102,1,58,1,215,1,89,2,251,1,181,1,70,2,218,2,202,2,97,2,221,1,19,1,215,255,194,254, +53,255,37,1,93,2,153,1,249,255,205,254,156,254,196,255,188,1,59,3,199,3,128,3,80,2,142,0,1,255,71,254, +228,254,143,0,206,1,218,1,102,1,221,0,37,0,118,255,165,254,121,253,221,252,150,253,12,255,138,0,171,1,27,2, +126,2,43,3,97,2,77,255,116,252,223,251,178,252,220,253,243,254,14,255,31,254,118,253,189,253,139,254,35,255,168,254, +107,253,234,252,25,253,178,252,52,252,198,252,162,253,198,253,162,253,156,253,153,253,183,253,196,253,50,253,68,252,232,251, +124,252,43,253,175,252,88,251,245,250,171,251,177,251,215,250,102,250,83,250,75,250,18,251,92,252,178,252,15,252,96,251, +213,250,196,250,201,251,74,253,14,254,166,253,75,252,171,250,123,249,136,248,143,247,122,247,18,249,142,251,141,253,24,254, +3,253,111,251,217,250,51,251,34,251,225,249,64,248,241,247,117,249,22,251,66,251,211,250,71,251,96,252,230,252,130,252, +236,251,212,251,235,251,150,251,30,251,214,250,83,250,200,249,236,249,46,250,225,249,20,250,111,251,167,252,217,252,138,252, +7,252,54,251,73,250,127,249,64,249,192,249,50,250,5,250,7,250,162,250,16,251,14,251,207,250,80,250,117,250,58,252, +34,254,191,253,54,251,194,248,97,248,133,250,72,253,246,253,119,252,6,251,177,250,203,250,184,250,89,250,7,250,141,250, +19,252,103,253,32,253,8,251,158,248,0,248,183,249,68,252,235,253,234,253,149,252,57,251,214,250,9,251,58,251,116,251, +141,251,156,251,123,252,182,253,130,253,30,252,167,251,45,252,215,251,82,250,242,248,165,248,105,249,150,250,65,251,63,251, +104,251,124,252,31,254,230,254,179,253,123,251,142,250,175,251,73,253,179,253,200,252,78,251,42,250,33,250,42,251,19,252, +241,251,166,251,114,252,171,253,207,253,230,252,4,252,174,251,245,251,118,252,67,252,47,251,60,250,12,250,146,250,200,251, +18,253,113,253,63,253,109,253,97,253,31,252,103,250,210,249,243,250,246,252,80,254,33,254,29,253,95,252,64,252,191,252, +131,253,144,253,117,252,253,250,53,250,215,250,236,252,220,254,189,254,25,253,8,252,255,251,1,252,187,251,115,251,56,251, +82,251,74,252,245,253,64,255,86,255,126,254,114,253,117,252,165,251,87,251,75,251,231,250,147,250,56,251,127,252,87,253, +147,253,127,253,248,252,25,252,172,251,43,252,245,252,0,253,70,252,211,251,12,252,65,252,124,252,149,253,254,254,10,255, +182,253,148,252,62,252,10,252,140,251,23,251,118,251,65,253,108,255,190,255,188,253,112,251,131,250,223,250,54,252,34,254, +51,255,77,254,86,252,222,250,119,250,42,251,167,252,11,254,16,255,52,0,217,0,137,255,174,252,136,250,100,250,241,251, +54,254,210,255,188,255,130,254,140,253,146,253,128,254,204,255,110,0,197,255,93,254,64,253,250,252,99,253,224,253,250,253, +211,253,182,253,226,253,195,254,38,0,159,0,121,255,70,254,128,254,44,255,233,254,112,254,237,254,119,255,105,254,76,252, +124,251,6,253,75,255,27,0,54,255,42,254,40,254,198,254,228,254,67,254,211,253,135,254,47,0,133,1,98,1,246,255, +146,254,17,254,35,254,101,254,248,254,126,255,38,255,74,254,70,254,47,255,175,255,82,255,215,254,104,254,162,253,45,253, +56,254,128,0,153,2,201,3,14,4,182,2,50,255,87,251,42,250,213,251,136,253,198,253,246,253,139,255,40,2,59,4, +227,3,239,0,95,254,13,255,156,1,244,2,165,2,215,1,176,0,77,255,139,254,180,254,136,255,236,0,43,2,63,2, +59,1,211,255,84,254,121,253,86,254,125,0,50,2,187,2,157,2,2,2,149,0,161,254,41,253,244,252,249,253,146,255, +9,1,233,1,17,2,222,1,239,1,102,2,169,2,59,2,83,1,119,0,14,0,106,0,55,1,76,1,70,0,144,255, +63,0,87,1,177,1,176,1,175,1,13,1,240,255,124,255,211,255,22,0,88,0,122,1,65,3,32,4,0,3,144,0, +161,254,107,254,124,255,121,0,193,0,236,0,155,1,96,2,133,2,33,2,174,1,41,1,104,0,171,255,129,255,51,0, +33,1,17,1,236,255,19,255,66,255,162,255,133,255,86,255,166,255,133,0,112,1,123,1,100,0,38,255,181,254,252,254, +104,255,177,255,55,0,168,1,122,3,237,3,144,2,255,0,142,0,38,1,245,1,214,1,128,0,159,255,102,0,94,1, +12,1,104,0,140,0,222,0,165,0,7,0,122,255,145,255,84,0,192,0,91,0,39,0,188,0,42,1,176,0,229,255, +150,255,223,255,126,0,18,1,36,1,169,0,39,0,209,255,40,255,24,254,135,253,7,254,14,255,248,255,161,0,235,0, +171,0,235,255,241,254,77,254,137,254,156,255,16,1,87,2,188,2,240,1,147,0,63,255,231,253,28,253,241,253,216,255, +198,0,2,0,209,254,107,254,207,254,121,255,13,0,88,0,89,0,65,0,25,0,139,255,137,254,196,253,214,253,110,254, +223,254,211,254,135,254,192,254,230,255,33,1,103,1,216,0,18,0,114,255,93,255,141,255,201,254,9,253,19,252,188,252, +218,253,128,254,200,254,223,254,12,255,172,255,92,0,93,0,156,255,160,254,24,254,72,254,125,254,247,253,68,253,51,253, +146,253,22,254,250,254,9,0,166,0,165,0,47,0,191,255,220,255,2,0,51,255,241,253,128,253,196,253,32,254,199,254, +156,255,207,255,113,255,73,255,90,255,81,255,138,255,55,0,130,0,198,255,194,254,102,254,109,254,93,254,167,254,146,255, +93,0,135,0,99,0,13,0,74,255,76,254,131,253,40,253,56,253,109,253,117,253,99,253,131,253,7,254,17,255,100,0, +31,1,154,0,32,255,173,253,87,253,106,254,205,255,64,0,248,255,228,255,14,0,222,255,66,255,178,254,130,254,189,254, +76,255,235,255,31,0,186,255,40,255,199,254,158,254,205,254,78,255,140,255,134,255,18,0,240,0,189,0,149,255,246,254, +27,255,40,255,5,255,239,254,206,254,246,254,193,255,132,0,161,0,151,0,211,0,0,1,247,0,220,0,141,0,225,255, +9,255,109,254,111,254,234,254,14,255,122,254,170,253,23,253,8,253,244,253,184,255,39,1,92,1,171,0,18,0,52,0, +151,0,32,0,218,254,29,254,88,254,148,254,88,254,40,254,101,254,18,255,34,0,74,1,32,2,109,2,40,2,104,1, +121,0,174,255,43,255,249,254,31,255,151,255,23,0,63,0,41,0,80,0,167,0,172,0,66,0,221,255,5,0,237,0, +12,2,72,2,33,1,57,255,175,253,53,253,174,253,114,254,251,254,29,255,229,254,194,254,53,255,226,255,17,0,38,0, +47,1,230,2,131,3,228,1,33,255,121,253,236,253,116,255,107,0,227,255,26,254,126,252,167,252,158,254,236,0,64,2, +89,2,205,1,115,1,114,1,63,1,226,0,238,0,30,1,217,0,185,0,105,1,250,1,84,1,6,0,52,255,55,255, +248,255,19,1,167,1,105,1,78,1,26,2,22,3,13,3,232,1,197,0,129,0,192,0,197,0,186,0,5,1,48,1, +155,0,178,255,98,255,246,255,227,0,97,1,58,1,247,0,40,1,190,1,66,2,42,2,76,1,77,0,31,0,234,0, +250,1,169,2,201,2,129,2,13,2,135,1,5,1,219,0,68,1,207,1,230,1,162,1,111,1,86,1,68,1,100,1, +190,1,19,2,57,2,255,1,55,1,98,0,115,0,91,1,239,1,156,1,32,1,104,1,115,2,131,3,235,3,144,3, +188,2,189,1,225,0,121,0,140,0,231,0,122,1,47,2,167,2,136,2,246,1,133,1,196,1,187,2,236,3,216,4, +58,5,195,4,78,3,124,1,126,0,242,0,35,2,175,2,227,1,134,0,5,0,229,0,119,2,217,3,150,4,171,4, +109,4,19,4,102,3,113,2,14,2,190,2,173,3,188,3,225,2,255,1,226,1,135,2,39,3,26,3,166,2,107,2, +133,2,171,2,175,2,117,2,232,1,85,1,87,1,33,2,57,3,12,4,95,4,32,4,89,3,136,2,103,2,241,2, +71,3,231,2,111,2,137,2,189,2,90,2,196,1,181,1,253,1,236,1,123,1,82,1,226,1,190,2,15,3,168,2, +39,2,49,2,255,2,21,4,98,4,153,3,208,2,175,2,114,2,156,1,202,0,87,0,21,0,26,0,129,0,17,1, +169,1,81,2,221,2,12,3,206,2,94,2,19,2,248,1,189,1,70,1,244,0,37,1,152,1,145,1,191,0,205,255, +129,255,196,255,57,0,242,0,250,1,217,2,10,3,124,2,133,1,132,0,187,255,95,255,135,255,238,255,60,0,107,0, +131,0,119,0,97,0,102,0,116,0,129,0,181,0,24,1,89,1,25,1,109,0,226,255,188,255,153,255,65,255,245,254, +225,254,254,254,79,255,172,255,214,255,221,255,247,255,52,0,156,0,24,1,86,1,38,1,190,0,99,0,2,0,94,255, +169,254,128,254,253,254,129,255,143,255,60,255,214,254,182,254,24,255,197,255,62,0,43,0,167,255,70,255,101,255,130,255, +23,255,120,254,34,254,46,254,150,254,33,255,91,255,35,255,179,254,95,254,135,254,31,255,136,255,148,255,140,255,83,255, +202,254,105,254,95,254,102,254,151,254,13,255,80,255,15,255,139,254,43,254,57,254,170,254,3,255,226,254,97,254,231,253, +204,253,12,254,121,254,43,255,32,0,187,0,190,0,221,0,110,1,189,1,29,1,184,255,91,254,198,253,254,253,118,254, +213,254,254,254,215,254,135,254,71,254,25,254,23,254,102,254,206,254,249,254,221,254,167,254,154,254,188,254,154,254,1,254, +135,253,201,253,165,254,132,255,5,0,94,0,219,0,36,1,195,0,22,0,186,255,169,255,157,255,96,255,208,254,80,254, +126,254,13,255,19,255,121,254,41,254,194,254,171,255,233,255,153,255,167,255,64,0,198,0,211,0,101,0,176,255,36,255, +247,254,242,254,227,254,222,254,22,255,179,255,112,0,230,0,69,1,197,1,229,1,69,1,86,0,158,255,41,255,171,254, +202,253,206,252,142,252,51,253,10,254,154,254,240,254,55,255,146,255,218,255,207,255,200,255,40,0,134,0,78,0,151,255, +216,254,132,254,185,254,17,255,47,255,67,255,160,255,75,0,229,0,218,0,31,0,120,255,90,255,84,255,222,254,239,253, +255,252,192,252,91,253,47,254,179,254,222,254,170,254,58,254,241,253,245,253,17,254,22,254,253,253,252,253,63,254,134,254, +148,254,164,254,221,254,21,255,66,255,100,255,97,255,73,255,70,255,61,255,248,254,91,254,144,253,28,253,82,253,221,253, +88,254,178,254,229,254,33,255,184,255,119,0,186,0,61,0,67,255,62,254,162,253,150,253,226,253,64,254,128,254,156,254, +195,254,247,254,253,254,242,254,42,255,166,255,36,0,103,0,76,0,254,255,193,255,134,255,49,255,238,254,218,254,230,254, +17,255,67,255,78,255,41,255,214,254,120,254,115,254,233,254,128,255,255,255,94,0,116,0,60,0,12,0,23,0,44,0, +6,0,172,255,128,255,184,255,245,255,236,255,221,255,237,255,228,255,178,255,117,255,58,255,34,255,88,255,198,255,19,0, +225,255,68,255,219,254,28,255,208,255,137,0,8,1,41,1,4,1,234,0,229,0,180,0,58,0,150,255,251,254,166,254, +191,254,67,255,5,0,168,0,237,0,11,1,75,1,141,1,141,1,51,1,145,0,238,255,141,255,104,255,74,255,30,255, +251,254,39,255,198,255,120,0,191,0,162,0,130,0,161,0,243,0,60,1,71,1,6,1,132,0,9,0,8,0,137,0, +235,0,179,0,23,0,151,255,125,255,201,255,72,0,169,0,190,0,182,0,241,0,99,1,123,1,251,0,96,0,30,0, +12,0,233,255,218,255,45,0,239,0,215,1,114,2,105,2,201,1,23,1,231,0,41,1,57,1,189,0,3,0,132,255, +112,255,181,255,11,0,42,0,23,0,32,0,115,0,234,0,86,1,190,1,28,2,34,2,173,1,34,1,233,0,219,0, +145,0,0,0,127,255,80,255,130,255,7,0,176,0,46,1,95,1,116,1,155,1,173,1,122,1,39,1,2,1,10,1, +242,0,164,0,101,0,113,0,197,0,93,1,57,2,236,2,161,2,21,1,81,255,206,254,201,255,248,0,21,1,55,0, +124,255,199,255,220,0,150,1,28,1,224,255,75,255,37,0,141,1,228,1,180,0,24,255,61,254,83,254,248,254,227,255, +238,0,212,1,58,2,5,2,118,1,210,0,49,0,171,255,114,255,150,255,231,255,7,0,206,255,158,255,252,255,217,0, +154,1,198,1,105,1,249,0,205,0,173,0,40,0,96,255,0,255,106,255,51,0,147,0,104,0,96,0,216,0,72,1, +41,1,203,0,214,0,119,1,26,2,241,1,231,0,189,255,34,255,34,255,90,255,124,255,159,255,243,255,82,0,118,0, +122,0,153,0,210,0,2,1,245,0,144,0,31,0,17,0,91,0,154,0,153,0,105,0,60,0,34,0,31,0,91,0, +203,0,226,0,103,0,11,0,100,0,10,1,50,1,158,0,210,255,137,255,232,255,104,0,134,0,55,0,240,255,78,0, +47,1,161,1,46,1,115,0,33,0,72,0,140,0,155,0,115,0,67,0,23,0,248,255,11,0,50,0,40,0,0,0, +236,255,245,255,30,0,81,0,88,0,52,0,16,0,250,255,246,255,1,0,11,0,55,0,143,0,157,0,31,0,170,255, +217,255,107,0,144,0,220,255,238,254,210,254,167,255,158,0,10,1,196,0,22,0,182,255,7,0,127,0,132,0,55,0, +29,0,92,0,135,0,45,0,150,255,68,255,27,255,231,254,231,254,53,255,140,255,199,255,233,255,245,255,0,0,14,0, +13,0,32,0,99,0,183,0,251,0,6,1,175,0,53,0,231,255,162,255,86,255,69,255,123,255,190,255,235,255,215,255, +127,255,62,255,101,255,218,255,35,0,194,255,239,254,170,254,88,255,41,0,84,0,234,255,116,255,126,255,22,0,176,0, +210,0,131,0,18,0,226,255,20,0,38,0,185,255,51,255,31,255,148,255,76,0,199,0,187,0,95,0,241,255,136,255, +120,255,225,255,74,0,74,0,240,255,127,255,64,255,72,255,88,255,94,255,128,255,167,255,178,255,172,255,139,255,107,255, +168,255,43,0,119,0,114,0,104,0,145,0,235,0,32,1,221,0,95,0,18,0,4,0,15,0,249,255,141,255,26,255, +26,255,107,255,177,255,246,255,94,0,218,0,58,1,58,1,236,0,191,0,205,0,202,0,165,0,125,0,85,0,48,0, +243,255,138,255,76,255,139,255,10,0,115,0,168,0,137,0,44,0,237,255,224,255,208,255,174,255,161,255,243,255,178,0, +88,1,111,1,41,1,190,0,28,0,122,255,49,255,49,255,60,255,52,255,41,255,111,255,52,0,31,1,185,1,198,1, +85,1,232,0,250,0,63,1,31,1,139,0,199,255,30,255,226,254,20,255,102,255,197,255,76,0,233,0,83,1,47,1, +147,0,51,0,106,0,164,0,88,0,184,255,55,255,34,255,142,255,46,0,162,0,197,0,159,0,113,0,140,0,212,0, +247,0,254,0,16,1,29,1,18,1,211,0,65,0,141,255,11,255,225,254,24,255,118,255,139,255,92,255,116,255,2,0, +150,0,174,0,62,0,214,255,12,0,168,0,251,0,201,0,86,0,5,0,7,0,30,0,247,255,201,255,251,255,116,0, +208,0,204,0,106,0,249,255,205,255,223,255,248,255,236,255,171,255,112,255,123,255,163,255,165,255,160,255,177,255,189,255, +204,255,253,255,71,0,134,0,177,0,220,0,3,1,219,0,48,0,112,255,40,255,70,255,106,255,126,255,158,255,244,255, +150,0,50,1,74,1,214,0,95,0,120,0,18,1,104,1,247,0,33,0,135,255,77,255,80,255,99,255,94,255,68,255, +67,255,136,255,36,0,235,0,124,1,171,1,165,1,148,1,113,1,36,1,175,0,74,0,61,0,107,0,112,0,24,0, +137,255,42,255,101,255,35,0,184,0,169,0,60,0,18,0,91,0,170,0,157,0,99,0,78,0,55,0,232,255,172,255, +243,255,177,0,99,1,152,1,110,1,87,1,124,1,157,1,118,1,8,1,154,0,131,0,210,0,39,1,22,1,159,0, +58,0,81,0,190,0,3,1,249,0,235,0,254,0,7,1,240,0,218,0,208,0,177,0,121,0,102,0,163,0,237,0, +233,0,154,0,81,0,67,0,100,0,133,0,138,0,138,0,173,0,236,0,26,1,42,1,69,1,148,1,1,2,65,2, +29,2,158,1,20,1,221,0,13,1,71,1,51,1,237,0,203,0,208,0,178,0,107,0,82,0,154,0,250,0,6,1, +169,0,56,0,38,0,160,0,91,1,209,1,185,1,65,1,200,0,112,0,20,0,157,255,53,255,36,255,136,255,40,0, +161,0,207,0,235,0,35,1,83,1,77,1,32,1,242,0,185,0,92,0,245,255,193,255,185,255,169,255,157,255,218,255, +98,0,225,0,20,1,16,1,38,1,117,1,194,1,184,1,72,1,181,0,104,0,141,0,203,0,147,0,202,255,246,254, +184,254,43,255,213,255,63,0,119,0,180,0,232,0,249,0,253,0,15,1,14,1,199,0,71,0,224,255,205,255,225,255, +222,255,202,255,212,255,24,0,134,0,214,0,201,0,120,0,56,0,59,0,108,0,130,0,79,0,1,0,230,255,12,0, +78,0,130,0,159,0,189,0,241,0,44,1,91,1,101,1,21,1,97,0,166,255,73,255,79,255,132,255,197,255,31,0, +158,0,21,1,62,1,14,1,181,0,126,0,166,0,20,1,85,1,35,1,177,0,85,0,52,0,78,0,141,0,209,0, +249,0,240,0,207,0,193,0,186,0,140,0,67,0,12,0,3,0,52,0,136,0,191,0,179,0,124,0,74,0,70,0, +114,0,174,0,235,0,36,1,63,1,41,1,247,0,191,0,146,0,135,0,154,0,175,0,189,0,187,0,162,0,138,0, +150,0,195,0,239,0,238,0,177,0,102,0,60,0,38,0,22,0,43,0,123,0,250,0,115,1,168,1,145,1,97,1, +52,1,2,1,195,0,130,0,90,0,123,0,229,0,85,1,142,1,139,1,120,1,137,1,176,1,181,1,142,1,89,1, +22,1,185,0,87,0,17,0,248,255,10,0,51,0,95,0,148,0,205,0,253,0,25,1,8,1,195,0,125,0,107,0, +146,0,219,0,37,1,77,1,73,1,44,1,8,1,240,0,244,0,7,1,15,1,246,0,183,0,133,0,160,0,253,0, +86,1,118,1,91,1,29,1,229,0,199,0,180,0,154,0,123,0,117,0,177,0,45,1,172,1,247,1,0,2,209,1, +132,1,56,1,246,0,187,0,145,0,127,0,145,0,208,0,41,1,120,1,171,1,188,1,172,1,135,1,85,1,20,1, +198,0,106,0,14,0,238,255,70,0,254,0,170,1,225,1,135,1,250,0,188,0,249,0,101,1,140,1,62,1,183,0, +96,0,98,0,151,0,213,0,25,1,117,1,244,1,119,2,192,2,176,2,91,2,226,1,90,1,203,0,73,0,254,255, +12,0,101,0,209,0,38,1,84,1,114,1,173,1,20,2,132,2,197,2,179,2,104,2,48,2,63,2,120,2,141,2, +66,2,169,1,30,1,7,1,120,1,36,2,151,2,141,2,37,2,189,1,147,1,175,1,246,1,67,2,117,2,120,2, +77,2,7,2,198,1,156,1,132,1,118,1,113,1,129,1,188,1,25,2,102,2,112,2,50,2,211,1,134,1,105,1, +114,1,143,1,190,1,0,2,69,2,112,2,108,2,69,2,32,2,10,2,243,1,200,1,146,1,107,1,101,1,114,1, +107,1,58,1,2,1,4,1,98,1,240,1,92,2,116,2,81,2,29,2,234,1,169,1,82,1,8,1,0,1,72,1, +170,1,221,1,210,1,193,1,236,1,70,2,124,2,77,2,209,1,100,1,77,1,126,1,172,1,153,1,70,1,226,0, +159,0,151,0,205,0,58,1,204,1,95,2,199,2,244,2,242,2,214,2,162,2,73,2,206,1,81,1,248,0,213,0, +216,0,234,0,4,1,47,1,107,1,160,1,177,1,159,1,145,1,158,1,176,1,144,1,40,1,158,0,65,0,64,0, +134,0,216,0,14,1,50,1,99,1,161,1,204,1,204,1,175,1,156,1,169,1,202,1,231,1,252,1,13,2,15,2, +226,1,124,1,6,1,204,0,247,0,91,1,160,1,146,1,83,1,51,1,89,1,156,1,175,1,107,1,246,0,151,0, +126,0,170,0,1,1,107,1,210,1,30,2,55,2,32,2,251,1,240,1,9,2,32,2,3,2,165,1,36,1,180,0, +110,0,68,0,26,0,231,255,194,255,207,255,35,0,182,0,93,1,225,1,22,2,245,1,160,1,71,1,7,1,219,0, +178,0,142,0,141,0,197,0,32,1,102,1,108,1,65,1,35,1,66,1,149,1,233,1,22,2,30,2,20,2,240,1, +145,1,242,0,72,0,231,255,245,255,68,0,121,0,103,0,59,0,78,0,203,0,128,1,6,2,20,2,175,1,23,1, +140,0,42,0,240,255,215,255,225,255,17,0,101,0,207,0,56,1,135,1,164,1,137,1,76,1,19,1,246,0,233,0, +199,0,118,0,6,0,169,255,144,255,200,255,53,0,163,0,231,0,234,0,175,0,83,0,4,0,232,255,7,0,69,0, +121,0,134,0,110,0,68,0,26,0,245,255,218,255,211,255,233,255,19,0,58,0,67,0,42,0,252,255,208,255,182,255, +180,255,210,255,15,0,93,0,155,0,172,0,138,0,73,0,3,0,199,255,153,255,122,255,117,255,136,255,162,255,165,255, +137,255,100,255,89,255,114,255,159,255,197,255,226,255,2,0,38,0,57,0,39,0,254,255,228,255,234,255,244,255,213,255, +136,255,67,255,62,255,111,255,142,255,99,255,19,255,250,254,71,255,182,255,205,255,101,255,229,254,223,254,120,255,44,0, +67,0,135,255,126,254,243,253,65,254,23,255,212,255,28,0,10,0,231,255,212,255,180,255,108,255,19,255,222,254,230,254, +20,255,57,255,66,255,58,255,45,255,30,255,19,255,41,255,129,255,20,0,163,0,219,0,150,0,250,255,88,255,234,254, +182,254,161,254,152,254,156,254,183,254,232,254,33,255,84,255,117,255,122,255,101,255,68,255,52,255,68,255,102,255,107,255, +51,255,209,254,131,254,123,254,180,254,248,254,20,255,5,255,235,254,224,254,228,254,231,254,233,254,252,254,45,255,107,255, +150,255,154,255,131,255,108,255,95,255,82,255,56,255,19,255,243,254,228,254,236,254,9,255,57,255,115,255,155,255,144,255, +78,255,244,254,179,254,157,254,152,254,127,254,81,254,50,254,73,254,146,254,232,254,43,255,93,255,146,255,195,255,200,255, +133,255,13,255,163,254,123,254,143,254,173,254,174,254,157,254,164,254,209,254,5,255,24,255,7,255,246,254,5,255,39,255, +53,255,27,255,243,254,238,254,30,255,95,255,116,255,65,255,226,254,142,254,114,254,148,254,219,254,37,255,91,255,113,255, +105,255,80,255,55,255,42,255,36,255,18,255,231,254,169,254,105,254,60,254,42,254,57,254,107,254,192,254,37,255,118,255, +144,255,102,255,13,255,173,254,100,254,54,254,22,254,249,253,231,253,244,253,46,254,139,254,235,254,44,255,68,255,68,255, +72,255,92,255,114,255,113,255,75,255,11,255,205,254,160,254,127,254,96,254,75,254,87,254,143,254,220,254,19,255,25,255, +248,254,217,254,211,254,222,254,223,254,205,254,183,254,174,254,172,254,163,254,148,254,162,254,234,254,89,255,177,255,179,255, +94,255,242,254,179,254,179,254,206,254,214,254,200,254,191,254,209,254,244,254,11,255,5,255,237,254,216,254,205,254,201,254, +196,254,192,254,191,254,188,254,185,254,191,254,221,254,11,255,39,255,14,255,193,254,115,254,93,254,143,254,221,254,19,255, +29,255,23,255,31,255,57,255,78,255,77,255,63,255,66,255,93,255,125,255,131,255,103,255,60,255,22,255,250,254,225,254, +205,254,197,254,207,254,222,254,226,254,210,254,195,254,208,254,252,254,47,255,78,255,91,255,98,255,103,255,88,255,40,255, +230,254,181,254,176,254,209,254,242,254,252,254,5,255,61,255,173,255,28,0,58,0,237,255,107,255,10,255,244,254,10,255, +16,255,242,254,220,254,4,255,105,255,208,255,254,255,235,255,191,255,162,255,158,255,159,255,137,255,89,255,44,255,37,255, +76,255,146,255,225,255,36,0,72,0,71,0,47,0,25,0,15,0,4,0,231,255,178,255,112,255,62,255,45,255,61,255, +98,255,148,255,212,255,26,0,85,0,121,0,137,0,132,0,94,0,22,0,194,255,130,255,109,255,131,255,185,255,251,255, +51,0,87,0,103,0,96,0,66,0,25,0,253,255,250,255,4,0,2,0,236,255,201,255,169,255,152,255,147,255,145,255, +150,255,177,255,231,255,37,0,82,0,112,0,140,0,162,0,159,0,117,0,42,0,215,255,156,255,151,255,205,255,29,0, +89,0,107,0,102,0,112,0,155,0,213,0,245,0,220,0,152,0,88,0,68,0,90,0,119,0,118,0,75,0,15,0, +231,255,227,255,235,255,217,255,172,255,136,255,144,255,204,255,35,0,116,0,162,0,164,0,142,0,134,0,153,0,176,0, +164,0,104,0,23,0,222,255,205,255,205,255,191,255,152,255,112,255,97,255,121,255,179,255,6,0,98,0,174,0,207,0, +181,0,100,0,254,255,186,255,194,255,8,0,81,0,107,0,94,0,94,0,141,0,209,0,245,0,227,0,183,0,160,0, +167,0,169,0,122,0,27,0,193,255,175,255,241,255,79,0,118,0,74,0,3,0,237,255,22,0,68,0,54,0,241,255, +182,255,176,255,206,255,220,255,196,255,167,255,174,255,223,255,21,0,39,0,18,0,0,0,30,0,121,0,227,0,24,1, +246,0,143,0,21,0,171,255,97,255,69,255,93,255,154,255,213,255,241,255,240,255,237,255,253,255,31,0,65,0,81,0, +78,0,67,0,60,0,60,0,66,0,66,0,54,0,43,0,58,0,111,0,174,0,203,0,183,0,128,0,56,0,229,255, +143,255,72,255,28,255,3,255,246,254,246,254,12,255,56,255,111,255,159,255,184,255,188,255,194,255,216,255,236,255,222,255, +162,255,86,255,40,255,59,255,126,255,183,255,184,255,147,255,128,255,155,255,192,255,196,255,167,255,134,255,113,255,99,255, +85,255,66,255,43,255,24,255,23,255,50,255,98,255,152,255,199,255,224,255,216,255,187,255,154,255,129,255,112,255,106,255, +107,255,102,255,76,255,38,255,9,255,0,255,13,255,44,255,78,255,89,255,69,255,51,255,65,255,93,255,88,255,33,255, +216,254,167,254,162,254,190,254,223,254,240,254,243,254,5,255,59,255,133,255,193,255,210,255,176,255,107,255,49,255,40,255, +75,255,106,255,101,255,70,255,40,255,26,255,34,255,62,255,90,255,94,255,70,255,41,255,26,255,21,255,12,255,244,254, +200,254,147,254,126,254,178,254,32,255,128,255,141,255,69,255,231,254,190,254,233,254,63,255,124,255,129,255,108,255,100,255, +103,255,95,255,79,255,82,255,115,255,162,255,197,255,209,255,197,255,167,255,123,255,66,255,253,254,191,254,165,254,183,254, +220,254,250,254,17,255,50,255,97,255,144,255,175,255,187,255,189,255,185,255,169,255,133,255,80,255,36,255,19,255,22,255, +18,255,4,255,6,255,48,255,120,255,186,255,211,255,190,255,145,255,111,255,104,255,111,255,111,255,95,255,78,255,82,255, +121,255,186,255,246,255,12,0,241,255,188,255,146,255,141,255,164,255,186,255,178,255,140,255,103,255,102,255,148,255,221,255, +29,0,62,0,66,0,61,0,70,0,88,0,91,0,59,0,3,0,215,255,212,255,253,255,56,0,103,0,122,0,123,0, +121,0,109,0,78,0,31,0,242,255,216,255,211,255,221,255,241,255,19,0,70,0,132,0,184,0,205,0,203,0,198,0, +197,0,180,0,127,0,52,0,248,255,237,255,19,0,81,0,130,0,142,0,124,0,103,0,99,0,114,0,135,0,151,0, +153,0,136,0,104,0,68,0,36,0,19,0,27,0,60,0,104,0,142,0,175,0,210,0,252,0,36,1,64,1,72,1, +59,1,31,1,255,0,217,0,160,0,80,0,4,0,221,255,233,255,18,0,58,0,83,0,101,0,127,0,167,0,208,0, +237,0,246,0,238,0,220,0,200,0,195,0,208,0,223,0,224,0,208,0,190,0,183,0,184,0,184,0,174,0,155,0, +140,0,139,0,149,0,153,0,142,0,123,0,104,0,88,0,76,0,77,0,107,0,173,0,1,1,66,1,77,1,37,1, +241,0,206,0,181,0,147,0,108,0,89,0,108,0,160,0,231,0,49,1,107,1,135,1,132,1,96,1,27,1,189,0, +93,0,18,0,229,255,222,255,255,255,62,0,133,0,203,0,17,1,83,1,128,1,141,1,126,1,88,1,31,1,227,0, +185,0,165,0,164,0,184,0,230,0,27,1,59,1,72,1,86,1,105,1,105,1,73,1,19,1,219,0,174,0,154,0, +159,0,179,0,205,0,233,0,0,1,254,0,223,0,192,0,189,0,203,0,210,0,206,0,210,0,229,0,2,1,41,1, +86,1,126,1,155,1,182,1,203,1,200,1,169,1,131,1,92,1,31,1,192,0,102,0,68,0,106,0,195,0,43,1, +134,1,200,1,252,1,45,2,80,2,71,2,20,2,211,1,149,1,81,1,9,1,211,0,186,0,180,0,181,0,196,0, +229,0,16,1,65,1,116,1,161,1,190,1,214,1,241,1,252,1,227,1,181,1,156,1,175,1,217,1,246,1,239,1, +195,1,131,1,80,1,63,1,72,1,88,1,102,1,123,1,147,1,165,1,179,1,198,1,223,1,251,1,24,2,52,2, +63,2,46,2,16,2,255,1,7,2,27,2,44,2,51,2,54,2,65,2,93,2,129,2,145,2,126,2,87,2,55,2, +34,2,13,2,245,1,229,1,227,1,230,1,232,1,242,1,9,2,48,2,91,2,125,2,137,2,132,2,123,2,124,2, +124,2,104,2,59,2,11,2,243,1,255,1,41,2,101,2,159,2,201,2,223,2,225,2,203,2,158,2,105,2,62,2, +38,2,30,2,31,2,32,2,18,2,236,1,206,1,230,1,65,2,184,2,24,3,72,3,77,3,55,3,19,3,233,2, +181,2,113,2,51,2,27,2,53,2,108,2,163,2,202,2,221,2,224,2,213,2,185,2,131,2,56,2,250,1,227,1, +232,1,238,1,240,1,253,1,28,2,72,2,127,2,190,2,239,2,0,3,249,2,232,2,201,2,141,2,64,2,2,2, +223,1,204,1,197,1,211,1,250,1,46,2,98,2,137,2,159,2,176,2,198,2,216,2,203,2,150,2,80,2,17,2, +217,1,166,1,134,1,126,1,131,1,138,1,155,1,181,1,200,1,206,1,215,1,238,1,9,2,25,2,32,2,37,2, +34,2,19,2,255,1,244,1,241,1,237,1,225,1,210,1,202,1,208,1,215,1,196,1,134,1,48,1,224,0,164,0, +129,0,130,0,174,0,245,0,57,1,114,1,164,1,200,1,203,1,174,1,135,1,104,1,78,1,45,1,0,1,203,0, +156,0,129,0,130,0,157,0,199,0,245,0,30,1,66,1,101,1,129,1,140,1,132,1,124,1,128,1,139,1,143,1, +140,1,139,1,134,1,114,1,82,1,58,1,49,1,39,1,7,1,219,0,195,0,211,0,253,0,32,1,44,1,48,1, +62,1,81,1,92,1,95,1,97,1,99,1,90,1,65,1,24,1,232,0,199,0,210,0,13,1,85,1,125,1,128,1, +119,1,112,1,93,1,50,1,253,0,218,0,214,0,231,0,242,0,238,0,230,0,240,0,15,1,54,1,94,1,131,1, +150,1,133,1,89,1,48,1,21,1,252,0,226,0,221,0,247,0,31,1,68,1,101,1,130,1,141,1,130,1,110,1, +87,1,58,1,25,1,9,1,24,1,66,1,123,1,184,1,234,1,2,2,249,1,200,1,103,1,237,0,140,0,100,0, +103,0,122,0,155,0,210,0,23,1,95,1,175,1,15,2,102,2,139,2,119,2,66,2,251,1,164,1,74,1,8,1, +238,0,254,0,40,1,90,1,130,1,155,1,179,1,212,1,244,1,252,1,233,1,202,1,177,1,164,1,162,1,159,1, +146,1,146,1,190,1,12,2,76,2,100,2,99,2,102,2,107,2,88,2,35,2,226,1,169,1,131,1,123,1,148,1, +186,1,215,1,233,1,252,1,19,2,39,2,52,2,53,2,40,2,19,2,253,1,239,1,238,1,244,1,249,1,249,1, +242,1,240,1,7,2,53,2,92,2,106,2,110,2,123,2,142,2,147,2,128,2,85,2,25,2,214,1,168,1,166,1, +201,1,241,1,13,2,36,2,53,2,58,2,59,2,68,2,85,2,111,2,143,2,177,2,197,2,189,2,145,2,81,2, +16,2,227,1,219,1,247,1,26,2,43,2,51,2,73,2,103,2,131,2,157,2,170,2,148,2,91,2,27,2,234,1, +202,1,183,1,194,1,251,1,77,2,142,2,174,2,186,2,180,2,155,2,129,2,115,2,95,2,53,2,252,1,197,1, +151,1,129,1,155,1,234,1,77,2,168,2,244,2,43,3,55,3,13,3,202,2,129,2,52,2,240,1,199,1,172,1, +134,1,94,1,89,1,136,1,217,1,48,2,118,2,165,2,193,2,215,2,236,2,243,2,207,2,132,2,62,2,25,2, +12,2,3,2,1,2,9,2,33,2,84,2,158,2,218,2,225,2,185,2,127,2,67,2,10,2,222,1,204,1,210,1, +226,1,252,1,34,2,77,2,103,2,102,2,78,2,41,2,0,2,237,1,253,1,34,2,62,2,74,2,87,2,106,2, +125,2,145,2,163,2,164,2,138,2,112,2,113,2,135,2,158,2,178,2,187,2,175,2,163,2,182,2,213,2,211,2, +168,2,104,2,34,2,231,1,205,1,219,1,3,2,53,2,106,2,152,2,184,2,191,2,173,2,150,2,137,2,125,2, +99,2,64,2,34,2,22,2,39,2,77,2,115,2,139,2,152,2,157,2,152,2,130,2,89,2,36,2,245,1,216,1, +208,1,215,1,223,1,229,1,246,1,26,2,71,2,117,2,156,2,173,2,169,2,162,2,161,2,159,2,155,2,143,2, +115,2,82,2,59,2,48,2,42,2,40,2,32,2,9,2,241,1,230,1,240,1,23,2,82,2,125,2,139,2,144,2, +151,2,150,2,140,2,126,2,105,2,77,2,51,2,37,2,39,2,51,2,63,2,74,2,75,2,57,2,37,2,44,2, +67,2,79,2,83,2,84,2,71,2,43,2,24,2,15,2,3,2,244,1,240,1,255,1,21,2,24,2,251,1,220,1, +207,1,200,1,192,1,196,1,206,1,209,1,219,1,247,1,33,2,83,2,137,2,169,2,155,2,96,2,26,2,245,1, +253,1,26,2,49,2,55,2,32,2,246,1,220,1,218,1,216,1,216,1,233,1,251,1,246,1,227,1,209,1,197,1, +194,1,204,1,217,1,235,1,4,2,23,2,22,2,252,1,197,1,131,1,99,1,122,1,167,1,202,1,215,1,202,1, +171,1,141,1,119,1,100,1,91,1,104,1,142,1,188,1,214,1,213,1,208,1,215,1,228,1,240,1,244,1,226,1, +183,1,139,1,111,1,98,1,96,1,95,1,98,1,115,1,145,1,168,1,181,1,193,1,208,1,236,1,23,2,40,2, +248,1,172,1,125,1,106,1,91,1,86,1,101,1,118,1,129,1,149,1,168,1,169,1,158,1,149,1,139,1,119,1, +96,1,82,1,85,1,104,1,123,1,131,1,133,1,139,1,142,1,131,1,112,1,103,1,107,1,115,1,122,1,124,1, +119,1,123,1,153,1,195,1,213,1,202,1,186,1,178,1,174,1,176,1,187,1,201,1,219,1,239,1,248,1,234,1, +201,1,166,1,146,1,144,1,141,1,123,1,110,1,119,1,141,1,166,1,195,1,211,1,202,1,190,1,190,1,180,1, +148,1,119,1,105,1,97,1,101,1,124,1,153,1,167,1,166,1,152,1,129,1,109,1,95,1,85,1,85,1,101,1, +128,1,150,1,159,1,164,1,176,1,197,1,219,1,233,1,230,1,203,1,171,1,156,1,148,1,135,1,124,1,123,1, +132,1,149,1,165,1,164,1,160,1,177,1,196,1,193,1,175,1,157,1,134,1,108,1,92,1,92,1,116,1,161,1, +200,1,217,1,225,1,227,1,216,1,195,1,163,1,117,1,87,1,101,1,136,1,158,1,164,1,156,1,136,1,121,1, +118,1,120,1,125,1,136,1,153,1,181,1,212,1,227,1,220,1,205,1,191,1,179,1,176,1,177,1,171,1,167,1, +173,1,176,1,176,1,185,1,198,1,202,1,193,1,162,1,112,1,71,1,50,1,45,1,57,1,81,1,93,1,99,1, +122,1,156,1,193,1,243,1,40,2,60,2,44,2,12,2,226,1,179,1,136,1,93,1,52,1,36,1,45,1,55,1, +59,1,62,1,75,1,104,1,147,1,188,1,229,1,14,2,28,2,246,1,179,1,110,1,53,1,19,1,14,1,27,1, +42,1,50,1,50,1,49,1,58,1,76,1,106,1,153,1,200,1,226,1,228,1,212,1,180,1,147,1,123,1,97,1, +69,1,53,1,45,1,40,1,46,1,60,1,65,1,76,1,108,1,141,1,157,1,162,1,155,1,130,1,107,1,105,1, +116,1,130,1,148,1,165,1,173,1,175,1,167,1,140,1,95,1,51,1,28,1,29,1,46,1,70,1,95,1,106,1, +102,1,97,1,98,1,89,1,62,1,31,1,252,0,205,0,161,0,147,0,159,0,176,0,191,0,208,0,228,0,252,0, +23,1,48,1,57,1,45,1,25,1,15,1,14,1,8,1,254,0,244,0,230,0,220,0,241,0,31,1,65,1,66,1, +57,1,52,1,45,1,35,1,33,1,37,1,34,1,19,1,253,0,236,0,226,0,218,0,204,0,192,0,186,0,184,0, +188,0,200,0,209,0,204,0,190,0,188,0,208,0,240,0,11,1,25,1,24,1,7,1,234,0,209,0,193,0,180,0, +176,0,191,0,211,0,208,0,184,0,157,0,134,0,121,0,123,0,125,0,108,0,90,0,96,0,126,0,170,0,217,0, +252,0,7,1,4,1,1,1,1,1,250,0,230,0,205,0,184,0,166,0,159,0,172,0,190,0,188,0,176,0,179,0, +201,0,233,0,14,1,41,1,46,1,35,1,17,1,244,0,205,0,162,0,115,0,80,0,67,0,64,0,72,0,105,0, +151,0,184,0,214,0,250,0,11,1,252,0,231,0,213,0,182,0,151,0,144,0,159,0,173,0,172,0,165,0,168,0, +178,0,184,0,198,0,230,0,1,1,247,0,208,0,169,0,151,0,158,0,172,0,177,0,173,0,170,0,174,0,187,0, +194,0,174,0,149,0,157,0,186,0,204,0,214,0,221,0,205,0,176,0,157,0,136,0,108,0,99,0,120,0,150,0, +181,0,212,0,225,0,226,0,233,0,237,0,222,0,201,0,184,0,171,0,166,0,167,0,146,0,98,0,51,0,30,0, +39,0,70,0,121,0,184,0,238,0,10,1,21,1,21,1,0,1,224,0,200,0,172,0,125,0,88,0,80,0,79,0, +76,0,88,0,111,0,135,0,167,0,205,0,229,0,242,0,253,0,245,0,212,0,183,0,173,0,168,0,152,0,123,0, +92,0,86,0,113,0,151,0,186,0,223,0,246,0,226,0,171,0,110,0,70,0,62,0,80,0,99,0,100,0,91,0, +95,0,125,0,164,0,196,0,213,0,219,0,214,0,200,0,168,0,104,0,26,0,228,255,208,255,212,255,243,255,38,0, +81,0,109,0,137,0,159,0,160,0,157,0,161,0,156,0,142,0,140,0,146,0,144,0,134,0,119,0,84,0,38,0, +10,0,15,0,32,0,49,0,71,0,100,0,131,0,161,0,188,0,202,0,195,0,177,0,163,0,150,0,130,0,108,0, +97,0,97,0,99,0,97,0,100,0,113,0,130,0,141,0,152,0,165,0,174,0,173,0,169,0,166,0,159,0,141,0, +119,0,104,0,104,0,115,0,127,0,134,0,122,0,93,0,60,0,44,0,50,0,78,0,116,0,151,0,171,0,166,0, +145,0,125,0,114,0,112,0,123,0,149,0,166,0,162,0,158,0,160,0,142,0,103,0,80,0,93,0,119,0,129,0, +117,0,87,0,47,0,15,0,14,0,53,0,108,0,158,0,206,0,250,0,11,1,1,1,240,0,217,0,173,0,110,0, +42,0,243,255,220,255,237,255,24,0,71,0,108,0,123,0,128,0,145,0,168,0,177,0,172,0,162,0,146,0,125,0, +104,0,84,0,69,0,74,0,108,0,160,0,211,0,246,0,0,1,246,0,222,0,185,0,136,0,88,0,58,0,60,0, +83,0,94,0,86,0,85,0,102,0,134,0,187,0,251,0,39,1,51,1,50,1,33,1,249,0,192,0,128,0,65,0, +29,0,31,0,60,0,98,0,138,0,174,0,206,0,238,0,2,1,1,1,248,0,236,0,211,0,187,0,183,0,187,0, +173,0,136,0,99,0,86,0,96,0,114,0,139,0,173,0,198,0,198,0,190,0,186,0,174,0,155,0,146,0,149,0, +154,0,158,0,164,0,177,0,191,0,187,0,170,0,159,0,145,0,116,0,96,0,104,0,116,0,112,0,112,0,121,0, +123,0,124,0,142,0,165,0,181,0,195,0,214,0,224,0,212,0,179,0,134,0,93,0,69,0,73,0,101,0,134,0, +158,0,168,0,166,0,159,0,154,0,151,0,149,0,149,0,154,0,148,0,125,0,104,0,99,0,105,0,115,0,123,0, +129,0,138,0,162,0,191,0,204,0,196,0,176,0,160,0,147,0,129,0,112,0,117,0,141,0,152,0,145,0,147,0, +164,0,178,0,174,0,148,0,105,0,65,0,47,0,48,0,55,0,68,0,81,0,90,0,99,0,116,0,131,0,140,0, +152,0,171,0,184,0,185,0,184,0,188,0,187,0,173,0,156,0,138,0,118,0,105,0,107,0,113,0,110,0,95,0, +66,0,29,0,0,0,243,255,246,255,8,0,42,0,79,0,113,0,142,0,155,0,148,0,132,0,117,0,101,0,91,0, +86,0,68,0,36,0,9,0,2,0,8,0,22,0,42,0,56,0,58,0,62,0,71,0,65,0,36,0,7,0,249,255, +240,255,238,255,251,255,15,0,28,0,37,0,39,0,22,0,0,0,250,255,246,255,231,255,224,255,236,255,253,255,16,0, +46,0,70,0,77,0,79,0,78,0,57,0,21,0,236,255,196,255,171,255,176,255,193,255,201,255,210,255,231,255,252,255, +7,0,14,0,27,0,33,0,23,0,5,0,247,255,234,255,219,255,207,255,195,255,185,255,198,255,229,255,246,255,236,255, +214,255,191,255,177,255,177,255,175,255,160,255,142,255,137,255,144,255,162,255,179,255,176,255,158,255,146,255,147,255,157,255, +175,255,195,255,201,255,193,255,185,255,182,255,175,255,161,255,149,255,135,255,118,255,104,255,102,255,112,255,131,255,150,255, +162,255,168,255,170,255,163,255,151,255,155,255,166,255,157,255,126,255,94,255,66,255,35,255,10,255,10,255,28,255,44,255, +57,255,85,255,117,255,132,255,143,255,163,255,180,255,181,255,165,255,132,255,95,255,78,255,86,255,97,255,98,255,86,255, +67,255,58,255,65,255,81,255,105,255,130,255,131,255,110,255,90,255,74,255,57,255,48,255,48,255,53,255,72,255,102,255, +118,255,113,255,99,255,77,255,54,255,41,255,42,255,48,255,50,255,49,255,62,255,86,255,92,255,80,255,79,255,91,255, +94,255,94,255,100,255,100,255,87,255,67,255,40,255,9,255,239,254,223,254,230,254,6,255,42,255,64,255,71,255,68,255, +63,255,67,255,70,255,70,255,80,255,94,255,92,255,77,255,66,255,53,255,34,255,26,255,30,255,30,255,27,255,36,255, +52,255,57,255,58,255,72,255,85,255,72,255,49,255,38,255,17,255,241,254,229,254,241,254,0,255,17,255,45,255,75,255, +105,255,144,255,179,255,185,255,169,255,149,255,132,255,110,255,82,255,62,255,56,255,64,255,85,255,105,255,105,255,91,255, +81,255,70,255,57,255,54,255,55,255,48,255,48,255,65,255,86,255,110,255,134,255,141,255,137,255,142,255,150,255,148,255, +140,255,122,255,94,255,80,255,91,255,103,255,102,255,103,255,114,255,121,255,115,255,109,255,114,255,114,255,100,255,95,255, +106,255,110,255,100,255,95,255,85,255,63,255,47,255,50,255,65,255,85,255,105,255,113,255,119,255,135,255,152,255,162,255, +166,255,158,255,137,255,116,255,109,255,109,255,103,255,95,255,99,255,118,255,132,255,132,255,126,255,122,255,117,255,113,255, +109,255,96,255,75,255,61,255,59,255,66,255,73,255,85,255,103,255,120,255,128,255,130,255,130,255,124,255,117,255,108,255, +92,255,69,255,57,255,64,255,85,255,109,255,130,255,147,255,166,255,190,255,207,255,207,255,193,255,170,255,138,255,102,255, +81,255,86,255,103,255,116,255,121,255,119,255,116,255,119,255,125,255,122,255,119,255,130,255,150,255,169,255,182,255,183,255, +166,255,149,255,154,255,174,255,194,255,215,255,229,255,217,255,180,255,140,255,107,255,72,255,46,255,45,255,61,255,70,255, +76,255,91,255,112,255,131,255,153,255,178,255,194,255,191,255,181,255,175,255,172,255,162,255,153,255,152,255,150,255,140,255, +135,255,144,255,156,255,163,255,166,255,167,255,166,255,161,255,153,255,145,255,137,255,136,255,143,255,145,255,134,255,123,255, +117,255,113,255,115,255,122,255,125,255,125,255,129,255,133,255,133,255,135,255,141,255,145,255,145,255,138,255,125,255,120,255, +133,255,152,255,162,255,160,255,150,255,142,255,137,255,136,255,140,255,146,255,144,255,139,255,143,255,144,255,134,255,123,255, +122,255,128,255,127,255,113,255,96,255,96,255,105,255,113,255,137,255,173,255,186,255,178,255,179,255,190,255,190,255,180,255, +169,255,160,255,152,255,142,255,122,255,95,255,76,255,69,255,74,255,80,255,90,255,110,255,132,255,147,255,166,255,185,255, +185,255,173,255,161,255,144,255,122,255,112,255,106,255,92,255,84,255,89,255,103,255,121,255,140,255,155,255,163,255,158,255, +142,255,127,255,119,255,108,255,102,255,110,255,118,255,117,255,117,255,120,255,123,255,118,255,108,255,102,255,106,255,108,255, +104,255,103,255,97,255,88,255,97,255,121,255,137,255,142,255,142,255,128,255,106,255,94,255,90,255,86,255,79,255,73,255, +77,255,98,255,123,255,143,255,167,255,190,255,193,255,176,255,153,255,129,255,101,255,72,255,48,255,48,255,71,255,99,255, +127,255,152,255,155,255,140,255,131,255,133,255,137,255,142,255,137,255,122,255,120,255,136,255,153,255,165,255,173,255,172,255, +169,255,159,255,127,255,86,255,59,255,43,255,28,255,22,255,32,255,53,255,82,255,116,255,151,255,180,255,186,255,169,255, +149,255,129,255,99,255,73,255,61,255,58,255,68,255,98,255,136,255,170,255,198,255,212,255,214,255,205,255,179,255,142,255, +111,255,90,255,77,255,77,255,86,255,90,255,103,255,128,255,144,255,144,255,135,255,120,255,96,255,71,255,56,255,53,255, +57,255,63,255,83,255,122,255,155,255,169,255,169,255,154,255,130,255,111,255,97,255,78,255,66,255,71,255,85,255,106,255, +131,255,141,255,133,255,128,255,134,255,140,255,144,255,145,255,148,255,152,255,152,255,149,255,148,255,140,255,121,255,100,255, +78,255,48,255,24,255,19,255,35,255,65,255,104,255,141,255,173,255,196,255,202,255,193,255,180,255,166,255,145,255,117,255, +84,255,47,255,17,255,0,255,0,255,13,255,31,255,47,255,69,255,99,255,129,255,155,255,178,255,188,255,177,255,150,255, +115,255,79,255,49,255,29,255,23,255,30,255,42,255,50,255,57,255,65,255,74,255,79,255,76,255,68,255,64,255,66,255, +64,255,53,255,45,255,46,255,51,255,53,255,56,255,70,255,86,255,87,255,75,255,66,255,64,255,59,255,53,255,47,255, +35,255,15,255,4,255,7,255,15,255,18,255,24,255,32,255,39,255,51,255,76,255,99,255,102,255,85,255,60,255,28,255, +249,254,223,254,213,254,213,254,221,254,239,254,11,255,37,255,50,255,48,255,39,255,29,255,25,255,24,255,24,255,26,255, +21,255,6,255,253,254,4,255,11,255,6,255,5,255,13,255,9,255,249,254,244,254,253,254,254,254,241,254,236,254,241,254, +237,254,233,254,251,254,25,255,32,255,21,255,12,255,2,255,239,254,217,254,194,254,173,254,162,254,167,254,182,254,207,254, +236,254,2,255,10,255,11,255,7,255,250,254,227,254,209,254,205,254,208,254,205,254,211,254,227,254,235,254,232,254,234,254, +240,254,243,254,241,254,227,254,201,254,182,254,177,254,173,254,162,254,151,254,151,254,168,254,202,254,241,254,19,255,36,255, +30,255,13,255,254,254,238,254,213,254,188,254,168,254,159,254,162,254,164,254,157,254,149,254,149,254,162,254,192,254,221,254, +230,254,237,254,255,254,12,255,7,255,251,254,234,254,211,254,188,254,176,254,181,254,196,254,200,254,189,254,181,254,173,254, +153,254,133,254,130,254,149,254,182,254,216,254,238,254,251,254,247,254,220,254,195,254,195,254,204,254,202,254,201,254,206,254, +205,254,196,254,185,254,180,254,184,254,190,254,196,254,206,254,216,254,223,254,244,254,11,255,11,255,255,254,247,254,227,254, +199,254,185,254,181,254,166,254,154,254,164,254,186,254,201,254,208,254,217,254,234,254,248,254,255,254,10,255,26,255,35,255, +39,255,34,255,16,255,251,254,232,254,208,254,190,254,186,254,173,254,155,254,166,254,201,254,229,254,249,254,8,255,5,255, +254,254,7,255,25,255,30,255,22,255,15,255,18,255,20,255,12,255,8,255,10,255,5,255,253,254,0,255,2,255,5,255, +21,255,40,255,48,255,57,255,70,255,73,255,72,255,77,255,82,255,84,255,82,255,72,255,55,255,37,255,18,255,6,255, +9,255,19,255,35,255,59,255,75,255,69,255,55,255,45,255,37,255,39,255,54,255,68,255,75,255,78,255,77,255,79,255, +88,255,99,255,104,255,99,255,84,255,71,255,70,255,67,255,65,255,76,255,92,255,101,255,116,255,135,255,142,255,139,255, +127,255,107,255,93,255,95,255,99,255,96,255,98,255,106,255,112,255,117,255,119,255,114,255,105,255,96,255,99,255,116,255, +130,255,122,255,102,255,95,255,111,255,138,255,159,255,164,255,167,255,168,255,160,255,151,255,143,255,122,255,98,255,95,255, +104,255,108,255,116,255,130,255,136,255,144,255,159,255,165,255,157,255,158,255,171,255,178,255,181,255,194,255,203,255,189,255, +163,255,149,255,137,255,114,255,105,255,126,255,156,255,175,255,194,255,205,255,188,255,158,255,144,255,145,255,148,255,160,255, +186,255,208,255,217,255,222,255,224,255,218,255,205,255,194,255,190,255,193,255,196,255,192,255,184,255,180,255,184,255,190,255, +191,255,186,255,184,255,190,255,193,255,190,255,192,255,198,255,200,255,204,255,212,255,210,255,199,255,193,255,190,255,186,255, +185,255,188,255,191,255,192,255,197,255,208,255,220,255,229,255,237,255,242,255,239,255,233,255,238,255,244,255,236,255,220,255, +203,255,184,255,176,255,188,255,199,255,198,255,197,255,202,255,206,255,209,255,214,255,218,255,221,255,213,255,194,255,178,255, +175,255,171,255,161,255,158,255,162,255,166,255,171,255,184,255,207,255,224,255,230,255,235,255,240,255,234,255,223,255,216,255, +207,255,201,255,211,255,220,255,216,255,215,255,222,255,223,255,221,255,226,255,227,255,224,255,225,255,232,255,235,255,234,255, +229,255,224,255,214,255,194,255,180,255,183,255,189,255,199,255,222,255,238,255,230,255,213,255,204,255,198,255,192,255,184,255, +172,255,167,255,161,255,141,255,132,255,150,255,168,255,172,255,182,255,197,255,203,255,203,255,204,255,204,255,209,255,218,255, +220,255,222,255,224,255,214,255,197,255,186,255,179,255,177,255,184,255,192,255,194,255,196,255,201,255,207,255,219,255,230,255, +230,255,224,255,210,255,196,255,195,255,198,255,187,255,180,255,188,255,197,255,201,255,210,255,220,255,225,255,234,255,239,255, +232,255,223,255,218,255,208,255,192,255,183,255,183,255,186,255,195,255,211,255,222,255,218,255,210,255,213,255,218,255,219,255, +223,255,224,255,217,255,222,255,242,255,2,0,7,0,8,0,255,255,234,255,216,255,206,255,197,255,185,255,175,255,175,255, +184,255,193,255,201,255,213,255,223,255,229,255,243,255,254,255,249,255,237,255,225,255,210,255,205,255,211,255,211,255,204,255, +202,255,201,255,202,255,209,255,209,255,206,255,221,255,240,255,237,255,222,255,212,255,205,255,209,255,227,255,234,255,225,255, +221,255,228,255,235,255,240,255,244,255,249,255,3,0,7,0,253,255,239,255,225,255,214,255,216,255,228,255,228,255,218,255, +217,255,225,255,232,255,241,255,247,255,242,255,234,255,230,255,229,255,231,255,232,255,226,255,222,255,223,255,225,255,231,255, +244,255,254,255,250,255,239,255,230,255,222,255,220,255,217,255,199,255,177,255,173,255,178,255,176,255,179,255,198,255,219,255, +233,255,244,255,251,255,250,255,244,255,234,255,218,255,197,255,176,255,163,255,163,255,175,255,191,255,215,255,246,255,15,0, +28,0,32,0,26,0,12,0,252,255,230,255,202,255,177,255,156,255,147,255,157,255,175,255,183,255,192,255,214,255,242,255, +9,0,14,0,247,255,214,255,193,255,180,255,168,255,162,255,169,255,189,255,218,255,245,255,0,0,4,0,12,0,12,0, +251,255,226,255,206,255,190,255,177,255,177,255,193,255,207,255,211,255,218,255,227,255,227,255,229,255,241,255,249,255,244,255, +235,255,228,255,218,255,203,255,187,255,179,255,179,255,179,255,184,255,203,255,218,255,213,255,206,255,208,255,212,255,214,255, +218,255,224,255,228,255,223,255,205,255,192,255,192,255,190,255,191,255,199,255,192,255,174,255,173,255,188,255,197,255,203,255, +206,255,197,255,195,255,207,255,203,255,186,255,179,255,175,255,163,255,157,255,165,255,177,255,191,255,202,255,214,255,233,255, +248,255,247,255,238,255,220,255,187,255,158,255,149,255,150,255,165,255,191,255,207,255,216,255,238,255,3,0,1,0,248,255, +241,255,223,255,205,255,196,255,182,255,162,255,155,255,161,255,171,255,183,255,196,255,210,255,228,255,241,255,244,255,244,255, +238,255,218,255,195,255,185,255,184,255,188,255,197,255,209,255,223,255,238,255,245,255,244,255,241,255,234,255,220,255,210,255, +206,255,195,255,183,255,183,255,193,255,203,255,212,255,216,255,211,255,210,255,211,255,204,255,198,255,204,255,214,255,218,255, +216,255,204,255,182,255,167,255,171,255,184,255,190,255,188,255,183,255,182,255,183,255,184,255,190,255,195,255,189,255,180,255, +179,255,172,255,159,255,155,255,163,255,172,255,177,255,175,255,170,255,176,255,194,255,212,255,225,255,229,255,219,255,203,255, +190,255,175,255,160,255,152,255,150,255,154,255,163,255,168,255,165,255,168,255,169,255,163,255,157,255,158,255,156,255,153,255, +155,255,158,255,163,255,164,255,158,255,158,255,171,255,178,255,178,255,183,255,189,255,190,255,189,255,179,255,163,255,159,255, +167,255,182,255,210,255,239,255,246,255,242,255,246,255,245,255,229,255,209,255,195,255,188,255,188,255,193,255,207,255,222,255, +218,255,205,255,214,255,231,255,228,255,220,255,223,255,229,255,234,255,243,255,243,255,236,255,230,255,224,255,225,255,237,255, +247,255,249,255,252,255,249,255,242,255,244,255,250,255,243,255,232,255,228,255,223,255,218,255,212,255,207,255,211,255,223,255, +227,255,224,255,230,255,241,255,252,255,13,0,30,0,37,0,36,0,25,0,5,0,243,255,232,255,227,255,229,255,239,255, +249,255,5,0,19,0,30,0,45,0,66,0,78,0,72,0,57,0,40,0,25,0,18,0,17,0,16,0,18,0,21,0, +26,0,37,0,52,0,60,0,62,0,68,0,73,0,76,0,82,0,87,0,86,0,74,0,57,0,45,0,43,0,46,0, +52,0,60,0,61,0,54,0,51,0,50,0,46,0,48,0,54,0,47,0,32,0,32,0,41,0,40,0,36,0,45,0, +60,0,69,0,77,0,84,0,85,0,83,0,83,0,79,0,69,0,61,0,57,0,53,0,49,0,47,0,39,0,25,0, +18,0,27,0,39,0,39,0,33,0,32,0,36,0,41,0,50,0,54,0,44,0,31,0,26,0,21,0,19,0,30,0, +43,0,50,0,58,0,61,0,52,0,48,0,54,0,55,0,52,0,52,0,47,0,41,0,43,0,49,0,48,0,46,0, +46,0,46,0,47,0,47,0,50,0,63,0,81,0,86,0,78,0,64,0,51,0,52,0,67,0,79,0,82,0,83,0, +73,0,62,0,65,0,69,0,63,0,60,0,63,0,65,0,71,0,83,0,83,0,75,0,75,0,81,0,82,0,81,0, +79,0,76,0,77,0,86,0,97,0,105,0,108,0,107,0,106,0,104,0,101,0,104,0,116,0,132,0,144,0,150,0, +150,0,144,0,141,0,145,0,154,0,155,0,144,0,133,0,130,0,132,0,135,0,135,0,132,0,135,0,146,0,160,0, +164,0,159,0,156,0,163,0,165,0,154,0,145,0,140,0,127,0,121,0,137,0,152,0,156,0,166,0,175,0,169,0, +162,0,168,0,173,0,175,0,176,0,171,0,162,0,158,0,151,0,143,0,148,0,157,0,163,0,174,0,191,0,202,0, +201,0,190,0,179,0,180,0,176,0,157,0,143,0,144,0,143,0,147,0,165,0,176,0,175,0,184,0,195,0,187,0, +171,0,164,0,158,0,152,0,150,0,154,0,166,0,173,0,165,0,159,0,167,0,173,0,170,0,172,0,179,0,178,0, +169,0,160,0,155,0,153,0,148,0,144,0,144,0,140,0,130,0,125,0,129,0,133,0,138,0,147,0,153,0,151,0, +145,0,140,0,142,0,144,0,141,0,137,0,136,0,132,0,126,0,123,0,117,0,112,0,113,0,114,0,119,0,131,0, +134,0,124,0,112,0,99,0,84,0,76,0,77,0,80,0,85,0,92,0,101,0,117,0,125,0,114,0,102,0,103,0, +91,0,69,0,62,0,60,0,47,0,36,0,32,0,28,0,34,0,48,0,51,0,52,0,62,0,67,0,62,0,66,0, +74,0,71,0,60,0,51,0,46,0,44,0,38,0,31,0,32,0,34,0,28,0,29,0,37,0,36,0,33,0,37,0, +33,0,20,0,20,0,26,0,16,0,5,0,3,0,252,255,245,255,248,255,246,255,233,255,225,255,224,255,229,255,246,255, +8,0,10,0,8,0,15,0,17,0,7,0,249,255,226,255,207,255,208,255,219,255,222,255,221,255,221,255,220,255,228,255, +240,255,241,255,231,255,222,255,218,255,224,255,235,255,233,255,218,255,209,255,206,255,207,255,218,255,224,255,217,255,218,255, +228,255,221,255,206,255,205,255,208,255,206,255,211,255,214,255,206,255,204,255,212,255,217,255,216,255,210,255,197,255,196,255, +212,255,223,255,222,255,222,255,219,255,211,255,208,255,212,255,216,255,218,255,222,255,229,255,237,255,237,255,229,255,229,255, +234,255,230,255,221,255,215,255,209,255,212,255,227,255,236,255,231,255,232,255,240,255,250,255,9,0,21,0,16,0,5,0, +251,255,233,255,211,255,201,255,197,255,191,255,188,255,197,255,209,255,213,255,215,255,230,255,242,255,235,255,225,255,218,255, +198,255,183,255,193,255,203,255,191,255,179,255,178,255,175,255,172,255,174,255,175,255,176,255,180,255,180,255,178,255,173,255, +163,255,157,255,163,255,169,255,174,255,180,255,174,255,162,255,159,255,155,255,146,255,148,255,157,255,165,255,180,255,187,255, +171,255,161,255,173,255,185,255,192,255,209,255,220,255,216,255,210,255,206,255,206,255,217,255,230,255,229,255,223,255,216,255, +211,255,218,255,234,255,238,255,232,255,227,255,224,255,226,255,235,255,243,255,249,255,2,0,11,0,17,0,19,0,12,0, +254,255,249,255,249,255,244,255,244,255,252,255,2,0,8,0,26,0,47,0,58,0,62,0,63,0,53,0,37,0,24,0, +13,0,6,0,2,0,249,255,243,255,251,255,7,0,11,0,13,0,17,0,18,0,29,0,50,0,62,0,64,0,71,0, +79,0,77,0,64,0,48,0,41,0,50,0,61,0,63,0,63,0,65,0,64,0,64,0,68,0,69,0,65,0,62,0, +66,0,86,0,109,0,111,0,97,0,96,0,101,0,93,0,82,0,86,0,93,0,92,0,95,0,103,0,100,0,85,0, +70,0,65,0,69,0,72,0,68,0,72,0,90,0,106,0,110,0,110,0,105,0,90,0,77,0,75,0,78,0,73,0, +60,0,52,0,61,0,76,0,83,0,80,0,73,0,63,0,58,0,63,0,72,0,76,0,75,0,77,0,87,0,93,0, +78,0,63,0,71,0,86,0,84,0,73,0,64,0,54,0,49,0,53,0,56,0,55,0,47,0,41,0,45,0,56,0, +61,0,60,0,61,0,61,0,57,0,42,0,24,0,24,0,42,0,53,0,54,0,57,0,54,0,46,0,51,0,62,0, +60,0,49,0,43,0,42,0,46,0,41,0,26,0,17,0,22,0,29,0,35,0,41,0,44,0,42,0,42,0,49,0, +62,0,62,0,46,0,33,0,25,0,9,0,1,0,16,0,26,0,19,0,26,0,46,0,51,0,43,0,41,0,42,0, +42,0,43,0,44,0,40,0,32,0,24,0,24,0,25,0,27,0,31,0,36,0,41,0,49,0,54,0,48,0,40,0, +33,0,16,0,253,255,245,255,244,255,243,255,248,255,4,0,10,0,10,0,16,0,35,0,52,0,53,0,47,0,50,0, +53,0,50,0,44,0,37,0,28,0,22,0,17,0,8,0,255,255,254,255,6,0,14,0,16,0,12,0,9,0,13,0, +14,0,8,0,3,0,9,0,24,0,43,0,59,0,65,0,57,0,45,0,41,0,41,0,39,0,31,0,21,0,17,0, +24,0,31,0,28,0,28,0,35,0,41,0,41,0,39,0,33,0,31,0,37,0,42,0,43,0,41,0,36,0,35,0, +39,0,41,0,45,0,52,0,57,0,60,0,58,0,53,0,53,0,59,0,59,0,56,0,62,0,68,0,69,0,68,0, +60,0,42,0,37,0,49,0,60,0,64,0,65,0,64,0,67,0,73,0,74,0,70,0,62,0,55,0,58,0,69,0, +73,0,71,0,69,0,67,0,68,0,69,0,60,0,51,0,58,0,70,0,70,0,63,0,57,0,56,0,58,0,55,0, +45,0,39,0,40,0,47,0,53,0,47,0,34,0,23,0,16,0,16,0,37,0,63,0,64,0,55,0,55,0,55,0, +49,0,46,0,38,0,25,0,18,0,17,0,12,0,4,0,255,255,251,255,250,255,1,0,16,0,29,0,31,0,26,0, +28,0,37,0,39,0,31,0,20,0,17,0,18,0,13,0,7,0,6,0,5,0,11,0,26,0,29,0,19,0,17,0, +21,0,22,0,26,0,23,0,7,0,4,0,18,0,24,0,21,0,18,0,6,0,250,255,254,255,6,0,7,0,7,0, +4,0,2,0,7,0,6,0,251,255,247,255,247,255,239,255,236,255,242,255,241,255,235,255,239,255,248,255,249,255,248,255, +252,255,2,0,0,0,248,255,241,255,242,255,244,255,241,255,234,255,240,255,254,255,2,0,253,255,253,255,2,0,4,0, +7,0,14,0,17,0,15,0,9,0,3,0,2,0,8,0,14,0,16,0,18,0,19,0,21,0,29,0,30,0,22,0, +16,0,12,0,9,0,12,0,20,0,25,0,26,0,20,0,14,0,20,0,28,0,25,0,16,0,11,0,11,0,17,0, +21,0,20,0,16,0,8,0,2,0,7,0,18,0,24,0,29,0,38,0,46,0,51,0,57,0,61,0,59,0,50,0, +40,0,42,0,47,0,40,0,37,0,49,0,59,0,60,0,63,0,68,0,70,0,75,0,83,0,86,0,82,0,72,0, +67,0,75,0,84,0,85,0,88,0,93,0,91,0,88,0,89,0,85,0,79,0,75,0,73,0,79,0,91,0,90,0, +82,0,77,0,71,0,64,0,68,0,81,0,92,0,95,0,95,0,103,0,115,0,122,0,122,0,120,0,112,0,106,0, +109,0,112,0,107,0,101,0,94,0,93,0,102,0,112,0,119,0,135,0,155,0,159,0,151,0,142,0,130,0,119,0, +112,0,109,0,106,0,104,0,104,0,109,0,108,0,99,0,104,0,127,0,149,0,160,0,160,0,146,0,122,0,109,0, +112,0,117,0,113,0,111,0,121,0,130,0,127,0,123,0,124,0,125,0,135,0,153,0,154,0,140,0,135,0,134,0, +128,0,130,0,135,0,125,0,114,0,117,0,124,0,130,0,136,0,143,0,150,0,154,0,147,0,139,0,136,0,131,0, +127,0,131,0,133,0,127,0,128,0,133,0,133,0,135,0,146,0,150,0,141,0,135,0,140,0,143,0,141,0,141,0, +136,0,127,0,128,0,138,0,139,0,136,0,141,0,141,0,135,0,139,0,146,0,141,0,136,0,136,0,140,0,151,0, +154,0,140,0,132,0,138,0,140,0,139,0,143,0,140,0,134,0,137,0,143,0,149,0,155,0,150,0,139,0,146,0, +167,0,176,0,172,0,170,0,166,0,160,0,161,0,163,0,153,0,136,0,132,0,146,0,166,0,178,0,178,0,172,0, +169,0,171,0,170,0,169,0,174,0,175,0,172,0,176,0,175,0,164,0,159,0,162,0,164,0,169,0,175,0,173,0, +173,0,178,0,180,0,183,0,190,0,187,0,182,0,186,0,187,0,182,0,180,0,180,0,181,0,185,0,184,0,179,0, +183,0,190,0,183,0,178,0,187,0,197,0,196,0,191,0,192,0,198,0,200,0,193,0,187,0,185,0,185,0,188,0, +198,0,206,0,210,0,207,0,199,0,197,0,204,0,211,0,209,0,198,0,188,0,188,0,189,0,188,0,192,0,192,0, +180,0,174,0,177,0,172,0,166,0,176,0,187,0,190,0,194,0,199,0,196,0,191,0,185,0,181,0,183,0,179,0, +170,0,173,0,183,0,179,0,175,0,180,0,185,0,191,0,205,0,216,0,220,0,223,0,226,0,221,0,213,0,204,0, +199,0,197,0,193,0,185,0,178,0,179,0,191,0,205,0,205,0,196,0,191,0,193,0,195,0,193,0,186,0,180,0, +176,0,175,0,182,0,190,0,183,0,172,0,175,0,179,0,175,0,176,0,174,0,162,0,155,0,161,0,163,0,159,0, +162,0,168,0,167,0,157,0,149,0,155,0,166,0,168,0,166,0,168,0,168,0,170,0,178,0,178,0,169,0,164,0, +165,0,163,0,156,0,145,0,137,0,137,0,142,0,150,0,160,0,164,0,163,0,163,0,160,0,153,0,149,0,144,0, +138,0,138,0,139,0,130,0,120,0,120,0,122,0,121,0,121,0,122,0,122,0,124,0,127,0,128,0,125,0,123,0, +129,0,133,0,126,0,119,0,119,0,118,0,116,0,117,0,119,0,122,0,127,0,128,0,134,0,143,0,137,0,121,0, +117,0,119,0,118,0,117,0,116,0,108,0,100,0,93,0,89,0,94,0,95,0,87,0,91,0,107,0,113,0,110,0, +112,0,113,0,105,0,104,0,114,0,122,0,119,0,112,0,108,0,108,0,106,0,106,0,114,0,122,0,117,0,104,0, +98,0,105,0,112,0,113,0,117,0,122,0,111,0,96,0,96,0,99,0,90,0,81,0,82,0,91,0,96,0,89,0, +83,0,93,0,104,0,106,0,117,0,132,0,133,0,127,0,126,0,122,0,109,0,94,0,82,0,80,0,89,0,97,0, +106,0,122,0,137,0,148,0,159,0,163,0,151,0,130,0,113,0,105,0,99,0,90,0,85,0,89,0,96,0,101,0, +110,0,118,0,117,0,119,0,132,0,146,0,146,0,128,0,111,0,106,0,102,0,95,0,95,0,96,0,92,0,91,0, +100,0,110,0,113,0,111,0,108,0,108,0,108,0,105,0,109,0,117,0,120,0,122,0,121,0,108,0,96,0,97,0, +96,0,92,0,95,0,103,0,111,0,118,0,114,0,103,0,104,0,111,0,111,0,110,0,110,0,107,0,103,0,99,0, +91,0,87,0,82,0,71,0,69,0,86,0,99,0,97,0,96,0,98,0,93,0,85,0,84,0,85,0,79,0,72,0, +73,0,78,0,80,0,81,0,80,0,74,0,70,0,70,0,69,0,69,0,73,0,75,0,80,0,89,0,87,0,75,0, +66,0,63,0,63,0,68,0,66,0,55,0,52,0,60,0,68,0,75,0,72,0,60,0,55,0,60,0,57,0,47,0, +40,0,32,0,28,0,36,0,45,0,48,0,50,0,51,0,47,0,48,0,55,0,58,0,54,0,54,0,61,0,65,0, +57,0,47,0,46,0,48,0,48,0,52,0,54,0,47,0,39,0,36,0,38,0,41,0,44,0,45,0,37,0,28,0, +33,0,42,0,34,0,24,0,27,0,28,0,21,0,24,0,31,0,28,0,32,0,42,0,40,0,34,0,36,0,36,0, +30,0,25,0,22,0,24,0,28,0,29,0,31,0,34,0,26,0,21,0,29,0,26,0,7,0,255,255,253,255,241,255, +241,255,0,0,2,0,248,255,250,255,1,0,254,255,244,255,240,255,247,255,5,0,13,0,7,0,249,255,239,255,237,255, +239,255,239,255,231,255,221,255,226,255,246,255,6,0,7,0,3,0,254,255,252,255,5,0,14,0,8,0,1,0,252,255, +246,255,252,255,9,0,253,255,232,255,239,255,4,0,14,0,21,0,23,0,7,0,250,255,254,255,0,0,247,255,235,255, +227,255,229,255,241,255,250,255,1,0,11,0,12,0,4,0,2,0,5,0,2,0,254,255,255,255,0,0,255,255,255,255, +254,255,253,255,3,0,10,0,10,0,12,0,21,0,24,0,16,0,15,0,17,0,15,0,16,0,21,0,18,0,14,0, +22,0,34,0,39,0,35,0,25,0,21,0,24,0,22,0,15,0,16,0,13,0,255,255,248,255,254,255,3,0,4,0, +4,0,7,0,16,0,19,0,10,0,10,0,19,0,13,0,255,255,2,0,17,0,25,0,28,0,30,0,29,0,29,0, +33,0,41,0,48,0,49,0,46,0,43,0,37,0,29,0,28,0,31,0,30,0,27,0,22,0,19,0,24,0,30,0, +31,0,33,0,37,0,33,0,28,0,28,0,33,0,36,0,35,0,36,0,45,0,50,0,38,0,28,0,32,0,35,0, +32,0,32,0,33,0,28,0,25,0,27,0,30,0,28,0,25,0,30,0,39,0,44,0,47,0,50,0,44,0,35,0, +38,0,39,0,23,0,14,0,26,0,40,0,46,0,55,0,64,0,64,0,62,0,69,0,75,0,68,0,55,0,47,0, +43,0,43,0,49,0,51,0,42,0,35,0,42,0,51,0,54,0,58,0,63,0,66,0,73,0,80,0,73,0,53,0, +40,0,46,0,55,0,54,0,53,0,60,0,66,0,67,0,66,0,65,0,58,0,50,0,56,0,72,0,75,0,64,0, +63,0,71,0,71,0,71,0,74,0,66,0,51,0,51,0,58,0,59,0,59,0,59,0,56,0,61,0,68,0,58,0, +49,0,55,0,63,0,62,0,65,0,70,0,73,0,77,0,82,0,83,0,79,0,73,0,71,0,74,0,70,0,59,0, +56,0,62,0,61,0,59,0,62,0,58,0,50,0,51,0,56,0,53,0,50,0,55,0,64,0,69,0,70,0,67,0, +54,0,39,0,36,0,42,0,45,0,44,0,39,0,29,0,27,0,32,0,33,0,30,0,33,0,37,0,37,0,41,0, +44,0,42,0,40,0,38,0,31,0,23,0,19,0,19,0,21,0,21,0,23,0,31,0,35,0,31,0,30,0,34,0, +29,0,21,0,22,0,23,0,15,0,15,0,24,0,20,0,9,0,6,0,5,0,5,0,11,0,18,0,12,0,1,0, +254,255,253,255,254,255,3,0,4,0,252,255,250,255,254,255,250,255,241,255,238,255,238,255,239,255,247,255,1,0,2,0, +252,255,255,255,9,0,15,0,13,0,6,0,251,255,241,255,241,255,246,255,244,255,241,255,243,255,242,255,238,255,241,255, +248,255,249,255,244,255,235,255,228,255,227,255,230,255,229,255,226,255,220,255,212,255,210,255,218,255,224,255,226,255,228,255, +233,255,239,255,236,255,229,255,228,255,231,255,220,255,208,255,213,255,217,255,209,255,208,255,217,255,222,255,221,255,221,255, +222,255,224,255,222,255,213,255,209,255,208,255,201,255,195,255,201,255,204,255,195,255,188,255,185,255,180,255,179,255,181,255, +182,255,184,255,184,255,176,255,175,255,191,255,199,255,185,255,172,255,174,255,175,255,167,255,163,255,164,255,164,255,165,255, +172,255,180,255,179,255,172,255,171,255,179,255,186,255,180,255,168,255,160,255,156,255,149,255,144,255,147,255,152,255,153,255, +156,255,165,255,171,255,170,255,168,255,175,255,185,255,183,255,173,255,172,255,174,255,166,255,156,255,159,255,166,255,171,255, +178,255,187,255,185,255,175,255,170,255,174,255,183,255,187,255,180,255,172,255,177,255,186,255,189,255,188,255,185,255,184,255, +187,255,188,255,187,255,191,255,198,255,200,255,200,255,198,255,190,255,184,255,187,255,188,255,185,255,188,255,192,255,189,255, +191,255,196,255,193,255,190,255,193,255,190,255,187,255,192,255,191,255,182,255,181,255,189,255,188,255,178,255,174,255,181,255, +194,255,205,255,211,255,212,255,209,255,206,255,204,255,201,255,196,255,194,255,195,255,195,255,199,255,203,255,199,255,196,255, +196,255,192,255,188,255,194,255,204,255,209,255,213,255,208,255,193,255,186,255,191,255,193,255,189,255,191,255,195,255,197,255, +203,255,211,255,212,255,210,255,208,255,208,255,209,255,210,255,211,255,213,255,216,255,217,255,219,255,219,255,217,255,213,255, +216,255,223,255,225,255,217,255,211,255,215,255,225,255,226,255,221,255,221,255,221,255,214,255,210,255,212,255,214,255,215,255, +220,255,224,255,222,255,221,255,225,255,224,255,219,255,220,255,225,255,229,255,231,255,233,255,229,255,226,255,226,255,225,255, +224,255,228,255,230,255,222,255,220,255,229,255,232,255,226,255,223,255,220,255,215,255,217,255,229,255,234,255,231,255,227,255, +228,255,233,255,236,255,235,255,236,255,240,255,241,255,242,255,247,255,243,255,237,255,245,255,0,0,253,255,248,255,247,255, +241,255,237,255,241,255,240,255,235,255,240,255,245,255,240,255,240,255,242,255,234,255,226,255,232,255,238,255,235,255,231,255, +230,255,231,255,231,255,232,255,232,255,231,255,232,255,242,255,252,255,247,255,236,255,238,255,244,255,239,255,233,255,232,255, +228,255,227,255,234,255,238,255,235,255,236,255,240,255,241,255,240,255,236,255,227,255,223,255,227,255,227,255,221,255,219,255, +222,255,223,255,223,255,224,255,223,255,215,255,211,255,217,255,222,255,217,255,210,255,207,255,210,255,213,255,215,255,214,255, +216,255,221,255,224,255,223,255,215,255,201,255,192,255,202,255,216,255,223,255,225,255,229,255,232,255,235,255,237,255,231,255, +222,255,220,255,219,255,213,255,211,255,217,255,220,255,221,255,226,255,232,255,231,255,226,255,225,255,227,255,224,255,220,255, +218,255,215,255,209,255,201,255,196,255,197,255,200,255,201,255,204,255,216,255,223,255,215,255,208,255,211,255,210,255,203,255, +205,255,211,255,208,255,204,255,205,255,212,255,220,255,224,255,224,255,226,255,227,255,224,255,225,255,229,255,226,255,218,255, +217,255,222,255,221,255,216,255,215,255,222,255,229,255,224,255,213,255,213,255,216,255,213,255,213,255,215,255,207,255,206,255, +219,255,225,255,218,255,219,255,223,255,217,255,215,255,223,255,222,255,216,255,217,255,219,255,214,255,207,255,203,255,205,255, +214,255,218,255,213,255,206,255,200,255,197,255,201,255,207,255,202,255,195,255,195,255,203,255,215,255,222,255,219,255,213,255, +218,255,222,255,219,255,218,255,220,255,211,255,200,255,201,255,201,255,191,255,190,255,203,255,208,255,199,255,194,255,201,255, +205,255,207,255,210,255,208,255,204,255,204,255,203,255,192,255,184,255,187,255,190,255,187,255,187,255,189,255,186,255,182,255, +184,255,190,255,188,255,180,255,176,255,179,255,183,255,189,255,197,255,198,255,194,255,196,255,200,255,196,255,188,255,179,255, +173,255,174,255,178,255,180,255,185,255,197,255,200,255,191,255,186,255,190,255,193,255,198,255,206,255,214,255,218,255,216,255, +209,255,201,255,200,255,202,255,208,255,218,255,220,255,206,255,194,255,194,255,196,255,198,255,199,255,197,255,197,255,205,255, +216,255,216,255,207,255,201,255,200,255,194,255,188,255,193,255,193,255,180,255,177,255,190,255,194,255,190,255,193,255,195,255, +184,255,180,255,189,255,194,255,192,255,194,255,193,255,185,255,176,255,171,255,177,255,191,255,194,255,187,255,188,255,195,255, +194,255,187,255,182,255,181,255,181,255,173,255,159,255,155,255,158,255,156,255,161,255,177,255,182,255,173,255,171,255,173,255, +165,255,158,255,162,255,165,255,162,255,162,255,165,255,164,255,162,255,163,255,166,255,169,255,168,255,167,255,167,255,163,255, +156,255,151,255,151,255,154,255,165,255,176,255,176,255,172,255,172,255,172,255,164,255,157,255,154,255,146,255,134,255,135,255, +146,255,150,255,149,255,152,255,159,255,163,255,165,255,163,255,164,255,168,255,164,255,149,255,140,255,140,255,138,255,142,255, +153,255,154,255,145,255,146,255,155,255,161,255,168,255,176,255,178,255,173,255,164,255,158,255,164,255,171,255,168,255,170,255, +187,255,195,255,186,255,182,255,184,255,177,255,170,255,173,255,175,255,170,255,168,255,172,255,182,255,192,255,196,255,197,255, +195,255,184,255,168,255,160,255,157,255,152,255,148,255,148,255,152,255,156,255,159,255,162,255,166,255,167,255,166,255,167,255, +170,255,168,255,168,255,171,255,171,255,171,255,178,255,186,255,183,255,175,255,170,255,165,255,163,255,168,255,172,255,170,255, +169,255,173,255,174,255,170,255,168,255,174,255,187,255,191,255,180,255,166,255,158,255,155,255,154,255,155,255,157,255,155,255, +148,255,151,255,165,255,172,255,162,255,156,255,162,255,164,255,162,255,169,255,172,255,160,255,151,255,157,255,158,255,151,255, +147,255,147,255,148,255,156,255,164,255,166,255,167,255,170,255,167,255,163,255,165,255,166,255,166,255,171,255,183,255,192,255, +198,255,203,255,205,255,201,255,195,255,195,255,200,255,198,255,188,255,185,255,189,255,190,255,188,255,190,255,194,255,198,255, +205,255,212,255,207,255,196,255,196,255,198,255,191,255,189,255,193,255,190,255,190,255,207,255,221,255,217,255,215,255,218,255, +213,255,209,255,213,255,210,255,205,255,210,255,217,255,219,255,221,255,219,255,210,255,208,255,212,255,215,255,220,255,221,255, +216,255,213,255,215,255,218,255,224,255,228,255,222,255,220,255,225,255,223,255,221,255,228,255,226,255,210,255,203,255,208,255, +212,255,214,255,210,255,201,255,205,255,220,255,226,255,222,255,223,255,223,255,219,255,222,255,229,255,227,255,220,255,214,255, +210,255,212,255,221,255,230,255,231,255,227,255,229,255,235,255,237,255,238,255,240,255,241,255,243,255,249,255,251,255,247,255, +245,255,244,255,239,255,240,255,244,255,245,255,244,255,242,255,235,255,235,255,243,255,244,255,238,255,241,255,249,255,248,255, +245,255,244,255,241,255,234,255,230,255,228,255,227,255,219,255,209,255,207,255,217,255,230,255,236,255,235,255,236,255,247,255, +2,0,7,0,12,0,16,0,7,0,253,255,4,0,12,0,9,0,3,0,3,0,6,0,10,0,13,0,11,0,9,0, +12,0,17,0,21,0,20,0,11,0,4,0,5,0,6,0,3,0,0,0,254,255,1,0,9,0,12,0,9,0,11,0, +16,0,15,0,13,0,13,0,10,0,5,0,4,0,10,0,14,0,7,0,254,255,4,0,17,0,22,0,18,0,12,0, +7,0,6,0,12,0,17,0,16,0,14,0,16,0,20,0,21,0,20,0,15,0,9,0,9,0,17,0,24,0,22,0, +16,0,11,0,13,0,23,0,29,0,23,0,23,0,29,0,23,0,10,0,10,0,12,0,4,0,2,0,9,0,7,0, +1,0,1,0,255,255,251,255,252,255,253,255,255,255,2,0,3,0,0,0,0,0,5,0,7,0,8,0,13,0,16,0, +7,0,255,255,7,0,22,0,23,0,13,0,8,0,6,0,4,0,6,0,6,0,3,0,4,0,9,0,11,0,11,0, +7,0,0,0,1,0,11,0,13,0,7,0,2,0,254,255,0,0,12,0,21,0,15,0,9,0,13,0,21,0,25,0, +22,0,15,0,8,0,5,0,12,0,19,0,12,0,0,0,8,0,22,0,19,0,11,0,13,0,15,0,19,0,28,0, +28,0,19,0,15,0,16,0,14,0,17,0,20,0,15,0,14,0,23,0,28,0,20,0,9,0,9,0,19,0,27,0, +31,0,33,0,28,0,21,0,22,0,25,0,20,0,17,0,20,0,22,0,24,0,27,0,22,0,22,0,33,0,38,0, +32,0,30,0,30,0,26,0,25,0,30,0,35,0,37,0,36,0,34,0,34,0,35,0,32,0,34,0,45,0,48,0, +41,0,39,0,47,0,55,0,52,0,45,0,43,0,44,0,38,0,34,0,39,0,38,0,30,0,33,0,45,0,49,0, +41,0,35,0,38,0,42,0,41,0,43,0,50,0,43,0,26,0,28,0,40,0,35,0,26,0,34,0,42,0,40,0, +41,0,46,0,47,0,43,0,37,0,34,0,35,0,34,0,28,0,26,0,30,0,33,0,36,0,38,0,39,0,39,0, +39,0,39,0,41,0,46,0,52,0,57,0,61,0,62,0,64,0,69,0,72,0,69,0,70,0,75,0,73,0,67,0, +67,0,74,0,76,0,72,0,71,0,73,0,75,0,78,0,82,0,81,0,79,0,83,0,81,0,71,0,65,0,65,0, +68,0,72,0,72,0,71,0,82,0,92,0,82,0,73,0,81,0,86,0,84,0,88,0,87,0,79,0,78,0,82,0, +78,0,76,0,79,0,76,0,75,0,83,0,87,0,79,0,70,0,68,0,77,0,89,0,91,0,84,0,78,0,73,0, +70,0,71,0,70,0,65,0,60,0,64,0,72,0,72,0,66,0,63,0,65,0,67,0,69,0,73,0,73,0,68,0, +69,0,72,0,70,0,62,0,57,0,58,0,62,0,61,0,57,0,59,0,62,0,61,0,67,0,72,0,66,0,62,0, +69,0,68,0,61,0,62,0,66,0,66,0,70,0,75,0,75,0,76,0,78,0,74,0,71,0,71,0,68,0,65,0, +69,0,72,0,67,0,58,0,54,0,55,0,56,0,52,0,51,0,50,0,44,0,41,0,51,0,60,0,57,0,48,0, +43,0,45,0,48,0,44,0,38,0,42,0,50,0,53,0,56,0,60,0,60,0,59,0,61,0,60,0,59,0,59,0, +57,0,59,0,60,0,52,0,43,0,45,0,51,0,54,0,53,0,50,0,51,0,58,0,60,0,54,0,52,0,51,0, +42,0,40,0,46,0,40,0,22,0,14,0,21,0,28,0,27,0,21,0,12,0,5,0,7,0,13,0,13,0,9,0, +13,0,21,0,31,0,44,0,46,0,30,0,21,0,29,0,32,0,25,0,25,0,26,0,22,0,18,0,18,0,18,0, +21,0,18,0,14,0,21,0,30,0,28,0,29,0,40,0,42,0,34,0,32,0,30,0,22,0,19,0,19,0,16,0, +19,0,23,0,15,0,3,0,253,255,253,255,255,255,254,255,247,255,245,255,251,255,253,255,248,255,250,255,255,255,254,255, +252,255,252,255,249,255,246,255,247,255,252,255,254,255,1,0,8,0,10,0,3,0,252,255,251,255,255,255,1,0,255,255, +250,255,252,255,0,0,252,255,247,255,249,255,245,255,234,255,233,255,239,255,240,255,240,255,235,255,225,255,229,255,249,255, +2,0,255,255,255,255,255,255,253,255,255,255,253,255,244,255,242,255,246,255,248,255,0,0,6,0,254,255,245,255,247,255, +248,255,242,255,240,255,241,255,242,255,245,255,240,255,229,255,225,255,231,255,241,255,246,255,248,255,246,255,244,255,243,255, +241,255,237,255,236,255,244,255,249,255,243,255,240,255,245,255,242,255,237,255,241,255,238,255,221,255,217,255,228,255,225,255, +215,255,217,255,221,255,215,255,213,255,224,255,232,255,228,255,224,255,234,255,239,255,226,255,217,255,224,255,230,255,224,255, +224,255,225,255,221,255,217,255,219,255,223,255,227,255,224,255,220,255,229,255,247,255,247,255,235,255,230,255,229,255,225,255, +225,255,228,255,227,255,225,255,229,255,233,255,231,255,225,255,230,255,238,255,239,255,236,255,238,255,238,255,236,255,238,255, +235,255,228,255,226,255,222,255,214,255,219,255,232,255,233,255,230,255,233,255,234,255,237,255,243,255,239,255,227,255,224,255, +226,255,222,255,223,255,222,255,211,255,204,255,213,255,220,255,219,255,219,255,223,255,224,255,226,255,232,255,235,255,231,255, +230,255,236,255,239,255,235,255,230,255,225,255,222,255,226,255,232,255,233,255,238,255,244,255,237,255,230,255,235,255,239,255, +237,255,241,255,243,255,235,255,227,255,228,255,232,255,235,255,235,255,236,255,238,255,232,255,228,255,237,255,240,255,227,255, +225,255,235,255,231,255,222,255,227,255,229,255,223,255,230,255,243,255,240,255,235,255,242,255,250,255,251,255,248,255,246,255, +251,255,2,0,252,255,240,255,237,255,239,255,235,255,230,255,227,255,225,255,224,255,222,255,219,255,218,255,220,255,220,255, +221,255,227,255,229,255,222,255,215,255,220,255,225,255,222,255,221,255,219,255,206,255,199,255,212,255,221,255,217,255,215,255, +212,255,207,255,212,255,219,255,212,255,209,255,217,255,217,255,216,255,222,255,220,255,208,255,209,255,226,255,237,255,235,255, +232,255,236,255,245,255,247,255,242,255,234,255,225,255,224,255,233,255,238,255,230,255,225,255,225,255,222,255,222,255,229,255, +232,255,226,255,221,255,223,255,227,255,231,255,229,255,222,255,220,255,222,255,221,255,218,255,217,255,218,255,215,255,210,255, +211,255,219,255,226,255,234,255,246,255,253,255,250,255,247,255,249,255,250,255,244,255,236,255,230,255,229,255,230,255,228,255, +225,255,225,255,225,255,228,255,231,255,227,255,224,255,228,255,226,255,215,255,211,255,217,255,217,255,216,255,222,255,219,255, +211,255,221,255,236,255,223,255,201,255,204,255,220,255,219,255,209,255,213,255,222,255,218,255,216,255,220,255,217,255,208,255, +207,255,210,255,215,255,225,255,226,255,212,255,208,255,218,255,223,255,218,255,216,255,215,255,215,255,219,255,222,255,223,255, +222,255,220,255,222,255,224,255,218,255,214,255,217,255,221,255,229,255,240,255,238,255,228,255,229,255,231,255,224,255,229,255, +243,255,241,255,235,255,243,255,244,255,230,255,222,255,226,255,229,255,224,255,220,255,222,255,220,255,210,255,205,255,212,255, +220,255,217,255,209,255,201,255,198,255,205,255,215,255,221,255,219,255,219,255,225,255,229,255,222,255,214,255,212,255,211,255, +215,255,232,255,239,255,227,255,218,255,218,255,219,255,225,255,231,255,225,255,223,255,229,255,229,255,231,255,248,255,252,255, +238,255,236,255,253,255,4,0,254,255,249,255,249,255,250,255,252,255,252,255,251,255,246,255,242,255,252,255,4,0,250,255, +233,255,231,255,234,255,238,255,249,255,255,255,244,255,232,255,235,255,246,255,245,255,234,255,227,255,228,255,234,255,245,255, +254,255,250,255,242,255,248,255,3,0,6,0,3,0,255,255,252,255,5,0,16,0,14,0,6,0,4,0,3,0,4,0, +3,0,252,255,248,255,2,0,10,0,6,0,251,255,236,255,231,255,243,255,248,255,241,255,241,255,248,255,247,255,246,255, +247,255,243,255,243,255,249,255,246,255,245,255,252,255,248,255,241,255,252,255,12,0,9,0,250,255,245,255,248,255,246,255, +238,255,236,255,241,255,246,255,255,255,13,0,17,0,19,0,28,0,27,0,17,0,16,0,20,0,20,0,24,0,30,0, +30,0,30,0,35,0,40,0,44,0,42,0,33,0,26,0,22,0,22,0,28,0,25,0,13,0,18,0,32,0,28,0, +24,0,35,0,37,0,34,0,45,0,52,0,49,0,50,0,48,0,39,0,37,0,37,0,33,0,36,0,47,0,54,0, +60,0,64,0,63,0,63,0,62,0,47,0,34,0,39,0,48,0,49,0,44,0,38,0,35,0,41,0,50,0,49,0, +40,0,40,0,52,0,54,0,45,0,50,0,60,0,53,0,44,0,49,0,52,0,50,0,51,0,46,0,38,0,42,0, +46,0,41,0,35,0,34,0,37,0,42,0,40,0,36,0,44,0,53,0,50,0,46,0,45,0,41,0,35,0,30,0, +29,0,32,0,31,0,24,0,22,0,24,0,21,0,25,0,37,0,37,0,19,0,10,0,22,0,39,0,35,0,21,0, +20,0,31,0,36,0,36,0,40,0,38,0,30,0,29,0,29,0,22,0,18,0,21,0,19,0,16,0,24,0,33,0, +29,0,18,0,15,0,15,0,10,0,10,0,15,0,14,0,17,0,29,0,32,0,24,0,26,0,35,0,35,0,32,0, +32,0,33,0,32,0,31,0,29,0,31,0,39,0,51,0,60,0,60,0,56,0,58,0,62,0,65,0,72,0,76,0, +66,0,54,0,55,0,54,0,45,0,43,0,51,0,54,0,53,0,60,0,71,0,74,0,74,0,78,0,80,0,77,0, +79,0,90,0,92,0,81,0,75,0,81,0,78,0,67,0,66,0,68,0,56,0,47,0,59,0,69,0,57,0,42,0, +42,0,50,0,50,0,44,0,39,0,37,0,41,0,47,0,48,0,44,0,41,0,37,0,27,0,22,0,25,0,26,0, +17,0,9,0,10,0,11,0,7,0,6,0,12,0,17,0,16,0,14,0,12,0,11,0,19,0,28,0,24,0,12,0, +10,0,12,0,14,0,15,0,11,0,10,0,22,0,27,0,18,0,13,0,16,0,14,0,14,0,16,0,9,0,9,0, +25,0,31,0,28,0,30,0,21,0,9,0,13,0,17,0,0,0,246,255,252,255,1,0,5,0,14,0,17,0,7,0, +1,0,9,0,23,0,26,0,19,0,13,0,9,0,8,0,10,0,8,0,2,0,5,0,15,0,23,0,26,0,14,0, +0,0,9,0,24,0,17,0,4,0,6,0,4,0,253,255,252,255,252,255,253,255,254,255,250,255,245,255,245,255,243,255, +238,255,237,255,236,255,240,255,243,255,233,255,226,255,235,255,239,255,239,255,250,255,251,255,236,255,237,255,245,255,237,255, +233,255,243,255,249,255,0,0,13,0,15,0,15,0,25,0,27,0,20,0,19,0,22,0,25,0,34,0,43,0,43,0, +38,0,32,0,30,0,26,0,21,0,23,0,20,0,255,255,235,255,233,255,234,255,231,255,226,255,219,255,219,255,230,255, +232,255,223,255,220,255,221,255,218,255,223,255,228,255,221,255,212,255,211,255,213,255,217,255,218,255,214,255,216,255,216,255, +208,255,212,255,222,255,212,255,194,255,194,255,209,255,220,255,219,255,211,255,208,255,212,255,208,255,202,255,202,255,191,255, +174,255,171,255,181,255,185,255,186,255,188,255,187,255,178,255,168,255,168,255,173,255,174,255,172,255,174,255,174,255,174,255, +180,255,182,255,175,255,175,255,178,255,170,255,167,255,177,255,178,255,169,255,170,255,179,255,187,255,203,255,223,255,232,255, +237,255,253,255,17,0,28,0,32,0,38,0,43,0,45,0,43,0,38,0,30,0,22,0,16,0,13,0,13,0,6,0, +249,255,240,255,237,255,233,255,230,255,235,255,235,255,229,255,222,255,213,255,202,255,202,255,204,255,199,255,198,255,204,255, +197,255,183,255,190,255,207,255,203,255,189,255,186,255,184,255,174,255,170,255,176,255,182,255,174,255,161,255,164,255,169,255, +157,255,145,255,150,255,156,255,155,255,161,255,165,255,153,255,141,255,138,255,138,255,137,255,135,255,129,255,130,255,138,255, +141,255,140,255,139,255,136,255,139,255,149,255,154,255,150,255,138,255,128,255,138,255,163,255,176,255,171,255,166,255,166,255, +169,255,174,255,177,255,169,255,157,255,157,255,167,255,168,255,161,255,166,255,178,255,183,255,186,255,188,255,176,255,164,255, +170,255,182,255,189,255,193,255,187,255,184,255,198,255,207,255,201,255,200,255,201,255,198,255,211,255,225,255,216,255,207,255, +213,255,212,255,213,255,229,255,233,255,218,255,216,255,225,255,219,255,201,255,195,255,207,255,217,255,216,255,214,255,215,255, +209,255,201,255,202,255,208,255,214,255,210,255,192,255,179,255,183,255,187,255,192,255,204,255,203,255,188,255,184,255,190,255, +185,255,174,255,172,255,177,255,185,255,192,255,195,255,194,255,184,255,177,255,192,255,213,255,215,255,204,255,195,255,193,255, +199,255,207,255,205,255,200,255,194,255,189,255,197,255,209,255,201,255,186,255,191,255,199,255,196,255,196,255,196,255,189,255, +184,255,187,255,191,255,191,255,188,255,191,255,198,255,190,255,177,255,183,255,198,255,202,255,195,255,185,255,178,255,183,255, +191,255,194,255,200,255,205,255,198,255,196,255,209,255,215,255,209,255,206,255,205,255,204,255,211,255,218,255,211,255,203,255, +210,255,215,255,204,255,197,255,208,255,215,255,208,255,206,255,211,255,202,255,191,255,198,255,211,255,215,255,217,255,219,255, +220,255,222,255,220,255,216,255,222,255,229,255,226,255,221,255,220,255,222,255,231,255,243,255,247,255,240,255,237,255,245,255, +254,255,252,255,246,255,249,255,251,255,244,255,242,255,250,255,255,255,253,255,252,255,247,255,240,255,235,255,228,255,223,255, +232,255,238,255,230,255,227,255,231,255,224,255,219,255,235,255,242,255,231,255,238,255,1,0,249,255,232,255,241,255,250,255, +237,255,229,255,234,255,234,255,229,255,234,255,242,255,242,255,237,255,233,255,237,255,244,255,243,255,239,255,243,255,250,255, +247,255,242,255,240,255,238,255,238,255,241,255,235,255,223,255,226,255,239,255,239,255,234,255,245,255,5,0,7,0,0,0, +249,255,244,255,241,255,234,255,230,255,238,255,249,255,249,255,247,255,250,255,253,255,252,255,248,255,246,255,253,255,5,0, +2,0,255,255,1,0,253,255,252,255,5,0,2,0,240,255,236,255,242,255,240,255,239,255,251,255,7,0,5,0,255,255, +0,0,2,0,254,255,254,255,3,0,247,255,225,255,223,255,239,255,245,255,242,255,240,255,239,255,241,255,246,255,248,255, +242,255,228,255,219,255,226,255,237,255,242,255,249,255,3,0,1,0,247,255,246,255,252,255,0,0,0,0,3,0,15,0, +18,0,3,0,248,255,0,0,10,0,14,0,18,0,17,0,18,0,28,0,29,0,18,0,18,0,28,0,34,0,35,0, +26,0,13,0,11,0,17,0,21,0,27,0,33,0,27,0,14,0,9,0,16,0,22,0,15,0,10,0,27,0,50,0, +56,0,61,0,71,0,66,0,54,0,57,0,65,0,63,0,56,0,47,0,40,0,35,0,28,0,16,0,5,0,252,255, +248,255,249,255,247,255,237,255,224,255,218,255,220,255,224,255,228,255,229,255,223,255,211,255,210,255,222,255,225,255,208,255, +195,255,198,255,208,255,215,255,216,255,214,255,212,255,212,255,221,255,237,255,240,255,235,255,239,255,248,255,253,255,5,0, +5,0,244,255,237,255,248,255,1,0,0,0,251,255,244,255,249,255,10,0,13,0,6,0,10,0,18,0,15,0,19,0, +29,0,24,0,16,0,23,0,30,0,30,0,38,0,44,0,31,0,25,0,42,0,47,0,33,0,26,0,29,0,28,0, +30,0,34,0,29,0,26,0,30,0,24,0,13,0,16,0,20,0,17,0,26,0,39,0,32,0,19,0,26,0,41,0, +43,0,39,0,40,0,39,0,27,0,17,0,21,0,23,0,17,0,14,0,20,0,23,0,26,0,29,0,30,0,28,0, +28,0,32,0,34,0,26,0,12,0,7,0,19,0,21,0,3,0,247,255,3,0,8,0,252,255,248,255,252,255,250,255, +248,255,252,255,247,255,238,255,246,255,254,255,247,255,240,255,236,255,228,255,228,255,236,255,235,255,233,255,240,255,237,255, +229,255,238,255,4,0,11,0,5,0,8,0,18,0,17,0,7,0,2,0,0,0,250,255,251,255,6,0,7,0,255,255, +1,0,7,0,3,0,252,255,252,255,0,0,4,0,8,0,9,0,5,0,3,0,4,0,1,0,246,255,241,255,252,255, +3,0,253,255,249,255,255,255,4,0,252,255,240,255,242,255,0,0,7,0,8,0,10,0,5,0,251,255,0,0,15,0, +17,0,6,0,1,0,3,0,0,0,253,255,3,0,7,0,0,0,250,255,0,0,6,0,4,0,0,0,249,255,244,255, +2,0,15,0,5,0,255,255,11,0,17,0,14,0,16,0,11,0,253,255,253,255,4,0,255,255,252,255,1,0,251,255, +234,255,227,255,231,255,239,255,250,255,255,255,252,255,249,255,245,255,239,255,241,255,246,255,238,255,229,255,235,255,236,255, +224,255,226,255,247,255,251,255,239,255,240,255,252,255,0,0,254,255,247,255,240,255,243,255,246,255,240,255,236,255,239,255, +240,255,239,255,237,255,230,255,224,255,223,255,221,255,219,255,222,255,221,255,220,255,224,255,229,255,231,255,235,255,241,255, +244,255,245,255,242,255,237,255,240,255,248,255,252,255,0,0,2,0,249,255,234,255,231,255,238,255,238,255,230,255,227,255, +225,255,221,255,222,255,232,255,240,255,242,255,241,255,238,255,235,255,235,255,239,255,243,255,243,255,244,255,253,255,5,0, +1,0,246,255,245,255,252,255,2,0,3,0,253,255,246,255,249,255,254,255,253,255,254,255,253,255,246,255,248,255,253,255, +244,255,233,255,238,255,240,255,231,255,225,255,230,255,236,255,238,255,235,255,234,255,243,255,252,255,249,255,243,255,244,255, +246,255,246,255,0,0,17,0,18,0,255,255,238,255,239,255,243,255,239,255,234,255,235,255,235,255,233,255,237,255,244,255, +243,255,231,255,222,255,223,255,232,255,240,255,245,255,248,255,253,255,254,255,247,255,246,255,2,0,3,0,247,255,244,255, +250,255,250,255,245,255,235,255,223,255,222,255,238,255,247,255,246,255,245,255,243,255,233,255,228,255,235,255,243,255,243,255, +239,255,240,255,243,255,247,255,250,255,247,255,240,255,238,255,242,255,241,255,237,255,244,255,252,255,249,255,244,255,246,255, +243,255,237,255,242,255,2,0,12,0,5,0,243,255,228,255,223,255,224,255,234,255,248,255,249,255,234,255,221,255,222,255, +227,255,225,255,227,255,230,255,227,255,229,255,238,255,237,255,227,255,226,255,231,255,230,255,234,255,248,255,0,0,252,255, +251,255,255,255,1,0,254,255,253,255,0,0,2,0,254,255,250,255,252,255,255,255,255,255,253,255,247,255,241,255,245,255, +255,255,3,0,0,0,253,255,0,0,6,0,10,0,8,0,255,255,243,255,242,255,251,255,255,255,252,255,2,0,11,0, +255,255,240,255,251,255,12,0,6,0,255,255,7,0,11,0,6,0,7,0,12,0,10,0,6,0,3,0,253,255,250,255, +255,255,254,255,244,255,235,255,232,255,235,255,241,255,242,255,239,255,237,255,236,255,234,255,238,255,241,255,233,255,230,255, +244,255,0,0,248,255,235,255,236,255,250,255,2,0,251,255,239,255,230,255,226,255,228,255,238,255,249,255,249,255,237,255, +229,255,233,255,243,255,245,255,235,255,227,255,232,255,238,255,237,255,239,255,244,255,236,255,219,255,218,255,232,255,241,255, +240,255,235,255,228,255,227,255,239,255,254,255,255,255,246,255,243,255,242,255,235,255,234,255,239,255,235,255,222,255,230,255, +5,0,21,0,8,0,248,255,245,255,243,255,237,255,237,255,242,255,241,255,231,255,234,255,252,255,1,0,239,255,227,255, +236,255,237,255,223,255,220,255,232,255,241,255,239,255,236,255,237,255,241,255,247,255,252,255,247,255,237,255,236,255,240,255, +241,255,241,255,244,255,243,255,239,255,242,255,254,255,3,0,253,255,250,255,254,255,2,0,0,0,249,255,243,255,246,255, +253,255,252,255,243,255,231,255,221,255,220,255,231,255,242,255,238,255,231,255,233,255,236,255,228,255,218,255,218,255,226,255, +235,255,235,255,232,255,235,255,238,255,236,255,237,255,236,255,229,255,226,255,231,255,233,255,234,255,245,255,255,255,248,255, +237,255,235,255,240,255,243,255,238,255,229,255,231,255,244,255,251,255,249,255,252,255,5,0,12,0,14,0,12,0,1,0, +250,255,3,0,14,0,9,0,1,0,1,0,2,0,1,0,3,0,1,0,249,255,246,255,250,255,248,255,243,255,247,255, +254,255,251,255,242,255,238,255,237,255,240,255,243,255,240,255,234,255,233,255,234,255,233,255,236,255,238,255,234,255,235,255, +245,255,246,255,237,255,239,255,247,255,242,255,232,255,233,255,234,255,232,255,236,255,243,255,245,255,249,255,252,255,253,255, +0,0,2,0,0,0,4,0,18,0,25,0,25,0,26,0,18,0,8,0,16,0,26,0,18,0,10,0,16,0,17,0, +13,0,16,0,17,0,10,0,11,0,16,0,10,0,3,0,7,0,11,0,15,0,21,0,16,0,5,0,9,0,19,0, +15,0,8,0,10,0,9,0,6,0,7,0,10,0,15,0,25,0,24,0,7,0,2,0,16,0,22,0,11,0,2,0, +4,0,13,0,24,0,31,0,25,0,13,0,4,0,1,0,3,0,10,0,20,0,25,0,26,0,28,0,32,0,32,0, +29,0,31,0,33,0,27,0,24,0,36,0,46,0,42,0,36,0,39,0,41,0,34,0,30,0,35,0,42,0,35,0, +15,0,0,0,1,0,3,0,255,255,254,255,1,0,3,0,4,0,1,0,251,255,251,255,0,0,254,255,249,255,251,255, +252,255,246,255,244,255,248,255,246,255,246,255,253,255,255,255,249,255,250,255,0,0,8,0,17,0,24,0,23,0,22,0, +23,0,22,0,31,0,46,0,46,0,35,0,35,0,34,0,27,0,35,0,51,0,43,0,25,0,23,0,23,0,12,0, +10,0,19,0,24,0,29,0,39,0,41,0,30,0,24,0,25,0,30,0,36,0,36,0,27,0,20,0,22,0,31,0, +40,0,36,0,19,0,9,0,16,0,20,0,13,0,10,0,12,0,11,0,10,0,17,0,26,0,30,0,27,0,23,0, +25,0,33,0,41,0,44,0,45,0,42,0,43,0,50,0,54,0,50,0,45,0,41,0,42,0,51,0,61,0,62,0, +59,0,60,0,60,0,56,0,56,0,60,0,58,0,53,0,54,0,58,0,56,0,47,0,39,0,35,0,31,0,24,0, +25,0,32,0,28,0,23,0,27,0,28,0,21,0,21,0,27,0,24,0,21,0,26,0,25,0,13,0,4,0,251,255, +243,255,243,255,246,255,240,255,236,255,242,255,242,255,235,255,230,255,230,255,235,255,246,255,254,255,253,255,251,255,252,255, +254,255,5,0,15,0,22,0,24,0,25,0,24,0,22,0,25,0,28,0,24,0,22,0,28,0,32,0,28,0,26,0, +30,0,37,0,38,0,37,0,41,0,40,0,30,0,26,0,37,0,41,0,32,0,30,0,36,0,33,0,28,0,32,0, +38,0,40,0,42,0,43,0,37,0,34,0,38,0,45,0,48,0,45,0,42,0,44,0,44,0,36,0,31,0,32,0, +28,0,20,0,21,0,23,0,16,0,14,0,23,0,26,0,21,0,22,0,35,0,48,0,50,0,39,0,33,0,46,0, +56,0,49,0,44,0,48,0,44,0,37,0,46,0,54,0,44,0,38,0,45,0,44,0,35,0,32,0,29,0,26,0, +23,0,17,0,9,0,9,0,6,0,249,255,245,255,252,255,248,255,236,255,243,255,253,255,249,255,249,255,255,255,251,255, +245,255,250,255,251,255,247,255,250,255,254,255,250,255,250,255,2,0,9,0,13,0,19,0,24,0,26,0,23,0,13,0, +13,0,28,0,35,0,26,0,23,0,28,0,26,0,21,0,26,0,27,0,22,0,27,0,40,0,42,0,30,0,10,0, +3,0,19,0,37,0,30,0,17,0,22,0,33,0,31,0,25,0,22,0,21,0,23,0,25,0,21,0,15,0,16,0, +17,0,13,0,8,0,4,0,1,0,0,0,4,0,8,0,5,0,248,255,239,255,246,255,4,0,11,0,12,0,9,0, +4,0,4,0,4,0,2,0,2,0,6,0,6,0,8,0,15,0,13,0,2,0,5,0,17,0,16,0,9,0,6,0, +3,0,1,0,5,0,1,0,249,255,254,255,3,0,250,255,244,255,254,255,3,0,0,0,1,0,9,0,14,0,12,0, +0,0,244,255,249,255,2,0,2,0,5,0,12,0,14,0,16,0,27,0,29,0,21,0,16,0,10,0,3,0,3,0, +4,0,0,0,253,255,251,255,239,255,232,255,242,255,248,255,237,255,229,255,231,255,237,255,248,255,1,0,253,255,252,255, +4,0,9,0,10,0,14,0,16,0,17,0,25,0,33,0,27,0,15,0,3,0,247,255,241,255,246,255,252,255,251,255, +247,255,244,255,245,255,246,255,245,255,248,255,1,0,2,0,255,255,1,0,253,255,246,255,250,255,5,0,1,0,247,255, +245,255,247,255,249,255,253,255,248,255,240,255,247,255,5,0,3,0,248,255,244,255,247,255,255,255,7,0,0,0,239,255, +235,255,244,255,254,255,7,0,10,0,3,0,255,255,0,0,254,255,0,0,6,0,6,0,255,255,253,255,250,255,247,255, +254,255,3,0,249,255,243,255,250,255,248,255,236,255,232,255,239,255,245,255,245,255,239,255,234,255,236,255,234,255,225,255, +228,255,241,255,244,255,247,255,2,0,0,0,239,255,239,255,255,255,4,0,251,255,246,255,242,255,236,255,235,255,237,255, +237,255,236,255,235,255,236,255,245,255,254,255,254,255,247,255,244,255,247,255,254,255,255,255,249,255,244,255,249,255,253,255, +246,255,235,255,231,255,240,255,254,255,5,0,2,0,0,0,254,255,246,255,239,255,241,255,241,255,235,255,234,255,242,255, +248,255,250,255,252,255,252,255,251,255,252,255,2,0,5,0,1,0,245,255,236,255,239,255,248,255,244,255,233,255,231,255, +237,255,238,255,236,255,238,255,235,255,228,255,231,255,235,255,227,255,220,255,229,255,239,255,237,255,233,255,234,255,230,255, +222,255,218,255,220,255,224,255,225,255,226,255,230,255,228,255,221,255,219,255,224,255,224,255,217,255,212,255,206,255,196,255, +192,255,195,255,191,255,186,255,190,255,195,255,193,255,195,255,202,255,205,255,203,255,200,255,200,255,208,255,214,255,213,255, +211,255,215,255,220,255,225,255,231,255,230,255,225,255,227,255,234,255,235,255,234,255,234,255,229,255,223,255,226,255,235,255, +245,255,254,255,7,0,10,0,8,0,8,0,14,0,25,0,31,0,33,0,35,0,37,0,34,0,30,0,27,0,28,0, +29,0,23,0,15,0,20,0,32,0,31,0,17,0,12,0,12,0,6,0,5,0,6,0,255,255,244,255,237,255,230,255, +223,255,222,255,216,255,207,255,212,255,219,255,212,255,199,255,196,255,192,255,184,255,179,255,177,255,180,255,188,255,191,255, +191,255,195,255,190,255,170,255,162,255,172,255,174,255,166,255,163,255,164,255,167,255,174,255,177,255,171,255,166,255,164,255, +162,255,167,255,175,255,170,255,164,255,169,255,176,255,182,255,191,255,193,255,182,255,179,255,191,255,206,255,215,255,218,255, +214,255,216,255,226,255,229,255,222,255,211,255,206,255,210,255,222,255,224,255,209,255,196,255,199,255,211,255,223,255,224,255, +211,255,205,255,217,255,228,255,230,255,231,255,235,255,238,255,243,255,245,255,241,255,242,255,246,255,243,255,240,255,242,255, +244,255,245,255,251,255,250,255,242,255,235,255,226,255,218,255,227,255,243,255,244,255,243,255,249,255,251,255,247,255,246,255, +238,255,224,255,229,255,245,255,244,255,234,255,235,255,236,255,233,255,234,255,236,255,228,255,220,255,221,255,228,255,228,255, +217,255,205,255,210,255,219,255,211,255,196,255,192,255,195,255,199,255,209,255,218,255,217,255,212,255,209,255,210,255,216,255, +219,255,209,255,195,255,192,255,194,255,191,255,185,255,182,255,186,255,191,255,191,255,186,255,185,255,190,255,195,255,198,255, +194,255,187,255,192,255,206,255,210,255,199,255,193,255,197,255,201,255,201,255,201,255,198,255,190,255,184,255,186,255,194,255, +200,255,205,255,211,255,217,255,219,255,218,255,224,255,232,255,235,255,233,255,233,255,237,255,241,255,239,255,226,255,213,255, +210,255,215,255,217,255,218,255,220,255,226,255,232,255,239,255,242,255,240,255,236,255,238,255,243,255,245,255,240,255,231,255, +223,255,222,255,225,255,225,255,221,255,213,255,209,255,218,255,232,255,234,255,230,255,237,255,246,255,241,255,235,255,238,255, +237,255,228,255,232,255,245,255,242,255,231,255,231,255,236,255,235,255,231,255,230,255,227,255,222,255,225,255,233,255,232,255, +224,255,226,255,237,255,241,255,236,255,234,255,239,255,241,255,238,255,238,255,235,255,225,255,216,255,216,255,219,255,216,255, +215,255,222,255,228,255,221,255,209,255,208,255,217,255,225,255,234,255,239,255,232,255,222,255,220,255,221,255,218,255,215,255, +215,255,217,255,218,255,213,255,202,255,197,255,196,255,187,255,181,255,186,255,194,255,200,255,208,255,212,255,206,255,202,255, +208,255,217,255,225,255,226,255,216,255,209,255,218,255,228,255,226,255,218,255,214,255,215,255,224,255,229,255,221,255,213,255, +215,255,220,255,227,255,236,255,234,255,225,255,227,255,234,255,229,255,226,255,233,255,229,255,221,255,228,255,237,255,235,255, +239,255,251,255,249,255,238,255,236,255,243,255,243,255,241,255,243,255,245,255,240,255,232,255,229,255,230,255,225,255,215,255, +219,255,233,255,236,255,225,255,214,255,215,255,226,255,242,255,255,255,255,255,246,255,244,255,5,0,19,0,11,0,251,255, +249,255,255,255,253,255,242,255,231,255,224,255,228,255,241,255,247,255,241,255,236,255,237,255,241,255,245,255,244,255,240,255, +240,255,245,255,248,255,248,255,245,255,241,255,239,255,244,255,250,255,252,255,252,255,247,255,243,255,248,255,250,255,240,255, +231,255,235,255,237,255,231,255,230,255,234,255,232,255,232,255,239,255,243,255,238,255,233,255,235,255,239,255,237,255,233,255, +236,255,243,255,241,255,233,255,235,255,243,255,243,255,245,255,253,255,0,0,249,255,247,255,246,255,236,255,231,255,236,255, +238,255,233,255,235,255,242,255,242,255,240,255,242,255,241,255,236,255,239,255,246,255,245,255,240,255,245,255,255,255,254,255, +248,255,251,255,6,0,11,0,9,0,9,0,13,0,11,0,6,0,4,0,11,0,24,0,32,0,32,0,30,0,31,0, +31,0,31,0,30,0,26,0,19,0,18,0,20,0,16,0,10,0,12,0,21,0,31,0,39,0,39,0,33,0,31,0, +34,0,33,0,26,0,24,0,29,0,33,0,31,0,23,0,16,0,18,0,25,0,33,0,38,0,39,0,36,0,35,0, +35,0,29,0,18,0,12,0,11,0,12,0,15,0,20,0,19,0,13,0,11,0,20,0,30,0,32,0,29,0,32,0, +39,0,44,0,46,0,51,0,54,0,50,0,43,0,41,0,40,0,38,0,32,0,27,0,23,0,18,0,13,0,12,0, +10,0,4,0,253,255,252,255,253,255,250,255,243,255,235,255,226,255,216,255,214,255,223,255,233,255,231,255,229,255,241,255, +254,255,255,255,254,255,4,0,10,0,13,0,24,0,39,0,42,0,37,0,36,0,44,0,56,0,64,0,60,0,54,0, +58,0,61,0,56,0,55,0,62,0,63,0,61,0,67,0,72,0,73,0,77,0,83,0,83,0,84,0,88,0,86,0, +73,0,67,0,71,0,75,0,78,0,85,0,88,0,80,0,71,0,77,0,91,0,101,0,102,0,97,0,89,0,81,0, +77,0,76,0,76,0,80,0,92,0,104,0,103,0,91,0,86,0,87,0,84,0,78,0,76,0,71,0,61,0,59,0, +66,0,69,0,68,0,70,0,69,0,59,0,53,0,55,0,52,0,46,0,45,0,48,0,44,0,35,0,27,0,24,0, +26,0,32,0,42,0,48,0,41,0,31,0,35,0,44,0,39,0,29,0,29,0,32,0,29,0,30,0,29,0,23,0, +24,0,35,0,38,0,30,0,28,0,31,0,29,0,26,0,31,0,40,0,41,0,35,0,28,0,29,0,33,0,33,0, +35,0,45,0,60,0,69,0,76,0,83,0,82,0,70,0,60,0,58,0,55,0,55,0,67,0,78,0,76,0,69,0, +70,0,69,0,63,0,61,0,60,0,52,0,45,0,50,0,57,0,55,0,54,0,56,0,58,0,57,0,57,0,57,0, +56,0,49,0,39,0,36,0,42,0,47,0,48,0,51,0,55,0,59,0,64,0,68,0,70,0,73,0,72,0,64,0, +58,0,58,0,61,0,63,0,61,0,52,0,45,0,51,0,64,0,69,0,65,0,64,0,70,0,76,0,73,0,61,0, +51,0,46,0,42,0,39,0,42,0,42,0,38,0,38,0,43,0,49,0,55,0,57,0,54,0,48,0,45,0,45,0, +48,0,52,0,52,0,51,0,56,0,62,0,62,0,60,0,58,0,61,0,70,0,77,0,75,0,71,0,69,0,69,0, +68,0,67,0,71,0,79,0,78,0,66,0,56,0,54,0,52,0,46,0,51,0,58,0,51,0,42,0,50,0,59,0, +52,0,45,0,47,0,48,0,45,0,52,0,64,0,62,0,47,0,42,0,48,0,50,0,51,0,56,0,56,0,46,0, +39,0,43,0,44,0,41,0,40,0,39,0,38,0,39,0,40,0,37,0,36,0,34,0,32,0,36,0,38,0,29,0, +18,0,16,0,16,0,13,0,13,0,14,0,15,0,22,0,25,0,16,0,11,0,15,0,15,0,11,0,15,0,19,0, +12,0,5,0,5,0,6,0,5,0,4,0,6,0,13,0,12,0,254,255,246,255,249,255,245,255,237,255,242,255,254,255, +0,0,253,255,0,0,1,0,0,0,3,0,11,0,16,0,11,0,0,0,250,255,253,255,1,0,0,0,0,0,3,0, +1,0,247,255,238,255,233,255,235,255,240,255,246,255,251,255,249,255,239,255,232,255,236,255,242,255,243,255,243,255,243,255, +244,255,248,255,251,255,0,0,4,0,0,0,246,255,247,255,0,0,0,0,248,255,243,255,239,255,238,255,242,255,236,255, +222,255,222,255,232,255,232,255,228,255,234,255,236,255,232,255,236,255,241,255,238,255,237,255,241,255,241,255,238,255,239,255, +238,255,235,255,235,255,235,255,233,255,234,255,235,255,232,255,228,255,228,255,231,255,235,255,237,255,232,255,226,255,226,255, +227,255,223,255,213,255,201,255,196,255,203,255,212,255,217,255,224,255,232,255,234,255,230,255,227,255,229,255,232,255,230,255, +222,255,220,255,223,255,221,255,218,255,226,255,237,255,236,255,229,255,230,255,231,255,231,255,232,255,235,255,234,255,231,255, +234,255,242,255,246,255,245,255,243,255,242,255,240,255,238,255,239,255,241,255,241,255,241,255,241,255,242,255,243,255,242,255, +237,255,232,255,231,255,228,255,228,255,236,255,241,255,232,255,223,255,225,255,229,255,228,255,230,255,235,255,234,255,229,255, +229,255,234,255,235,255,231,255,229,255,230,255,234,255,236,255,236,255,230,255,225,255,230,255,241,255,244,255,241,255,239,255, +241,255,243,255,238,255,233,255,238,255,246,255,245,255,236,255,236,255,242,255,240,255,237,255,239,255,240,255,239,255,247,255, +1,0,254,255,242,255,235,255,239,255,245,255,243,255,235,255,232,255,234,255,236,255,239,255,244,255,247,255,247,255,246,255, +245,255,244,255,246,255,250,255,249,255,247,255,251,255,1,0,5,0,6,0,5,0,255,255,251,255,252,255,1,0,4,0, +6,0,5,0,254,255,245,255,245,255,253,255,0,0,254,255,250,255,241,255,235,255,240,255,247,255,241,255,234,255,237,255, +239,255,236,255,241,255,248,255,243,255,235,255,238,255,245,255,250,255,250,255,245,255,241,255,244,255,250,255,254,255,254,255, +248,255,240,255,240,255,245,255,246,255,245,255,244,255,240,255,238,255,241,255,241,255,237,255,235,255,236,255,233,255,228,255, +224,255,224,255,229,255,235,255,237,255,236,255,239,255,244,255,246,255,247,255,247,255,243,255,239,255,240,255,243,255,242,255, +242,255,244,255,244,255,241,255,246,255,254,255,254,255,248,255,249,255,250,255,241,255,233,255,237,255,242,255,240,255,244,255, +252,255,250,255,244,255,246,255,254,255,1,0,255,255,254,255,2,0,8,0,9,0,3,0,254,255,1,0,5,0,4,0, +254,255,247,255,248,255,0,0,3,0,0,0,253,255,255,255,6,0,14,0,16,0,12,0,8,0,9,0,11,0,12,0, +14,0,15,0,17,0,16,0,10,0,8,0,14,0,15,0,6,0,1,0,3,0,1,0,251,255,253,255,5,0,2,0, +249,255,245,255,245,255,247,255,250,255,0,0,2,0,0,0,253,255,252,255,252,255,254,255,1,0,5,0,10,0,12,0, +12,0,13,0,15,0,15,0,12,0,7,0,5,0,7,0,5,0,254,255,245,255,246,255,254,255,2,0,254,255,248,255, +249,255,252,255,253,255,255,255,2,0,5,0,9,0,10,0,5,0,255,255,1,0,4,0,0,0,251,255,249,255,250,255, +249,255,246,255,243,255,242,255,242,255,238,255,238,255,247,255,253,255,250,255,247,255,254,255,4,0,4,0,5,0,8,0, +6,0,3,0,5,0,10,0,9,0,7,0,9,0,12,0,13,0,12,0,11,0,12,0,16,0,16,0,11,0,11,0, +21,0,30,0,28,0,21,0,17,0,19,0,28,0,34,0,31,0,27,0,25,0,22,0,21,0,23,0,23,0,18,0, +17,0,21,0,23,0,24,0,29,0,34,0,33,0,33,0,34,0,31,0,25,0,23,0,24,0,24,0,24,0,26,0, +24,0,19,0,18,0,22,0,26,0,24,0,19,0,16,0,13,0,11,0,10,0,13,0,13,0,9,0,7,0,12,0, +17,0,17,0,18,0,19,0,16,0,10,0,9,0,11,0,12,0,9,0,9,0,12,0,15,0,15,0,13,0,11,0, +12,0,11,0,8,0,6,0,4,0,5,0,7,0,10,0,8,0,1,0,251,255,253,255,3,0,4,0,0,0,255,255, +0,0,255,255,250,255,247,255,248,255,249,255,250,255,252,255,251,255,246,255,244,255,247,255,246,255,241,255,237,255,239,255, +243,255,245,255,243,255,239,255,238,255,239,255,239,255,238,255,240,255,245,255,249,255,249,255,250,255,253,255,1,0,254,255, +246,255,244,255,248,255,252,255,254,255,0,0,251,255,241,255,238,255,248,255,252,255,244,255,236,255,239,255,246,255,250,255, +253,255,255,255,250,255,242,255,238,255,240,255,242,255,239,255,234,255,234,255,238,255,241,255,245,255,250,255,251,255,247,255, +249,255,253,255,250,255,245,255,249,255,0,0,251,255,241,255,238,255,241,255,243,255,240,255,236,255,238,255,247,255,252,255, +246,255,236,255,229,255,225,255,226,255,233,255,236,255,230,255,226,255,232,255,236,255,235,255,236,255,242,255,247,255,248,255, +248,255,247,255,248,255,250,255,249,255,245,255,248,255,0,0,2,0,255,255,254,255,1,0,3,0,1,0,0,0,1,0, +4,0,7,0,7,0,6,0,3,0,0,0,255,255,1,0,3,0,1,0,1,0,3,0,2,0,0,0,0,0,1,0, +1,0,5,0,9,0,10,0,8,0,6,0,4,0,5,0,9,0,9,0,3,0,0,0,4,0,9,0,10,0,10,0, +9,0,5,0,0,0,255,255,1,0,1,0,255,255,254,255,1,0,7,0,8,0,5,0,4,0,5,0,5,0,5,0, +6,0,5,0,1,0,2,0,7,0,9,0,7,0,6,0,3,0,254,255,250,255,251,255,252,255,253,255,7,0,18,0, +16,0,9,0,11,0,19,0,20,0,16,0,19,0,23,0,17,0,11,0,14,0,18,0,15,0,11,0,10,0,8,0, +5,0,6,0,9,0,7,0,5,0,4,0,1,0,255,255,0,0,2,0,0,0,250,255,246,255,245,255,247,255,248,255, +245,255,246,255,250,255,247,255,238,255,235,255,242,255,245,255,243,255,242,255,241,255,237,255,236,255,239,255,240,255,236,255, +232,255,230,255,231,255,233,255,231,255,227,255,226,255,230,255,230,255,225,255,224,255,229,255,232,255,228,255,226,255,230,255, +232,255,229,255,223,255,222,255,224,255,223,255,222,255,226,255,230,255,229,255,227,255,229,255,232,255,232,255,229,255,226,255, +226,255,229,255,233,255,230,255,224,255,222,255,223,255,227,255,232,255,228,255,216,255,211,255,215,255,216,255,210,255,209,255, +213,255,213,255,214,255,218,255,218,255,217,255,221,255,223,255,219,255,215,255,220,255,225,255,226,255,226,255,228,255,227,255, +229,255,232,255,229,255,225,255,229,255,235,255,235,255,230,255,230,255,233,255,235,255,235,255,235,255,234,255,233,255,233,255, +232,255,229,255,228,255,227,255,227,255,225,255,221,255,220,255,224,255,228,255,228,255,225,255,225,255,229,255,231,255,230,255, +228,255,227,255,227,255,226,255,226,255,225,255,225,255,227,255,230,255,229,255,223,255,219,255,221,255,224,255,224,255,226,255, +229,255,229,255,229,255,231,255,233,255,234,255,235,255,231,255,226,255,225,255,231,255,233,255,228,255,224,255,222,255,222,255, +226,255,231,255,229,255,223,255,224,255,230,255,229,255,225,255,229,255,236,255,235,255,227,255,224,255,227,255,229,255,228,255, +227,255,225,255,221,255,221,255,228,255,234,255,235,255,235,255,234,255,232,255,232,255,237,255,241,255,241,255,241,255,242,255, +244,255,247,255,249,255,244,255,239,255,241,255,244,255,240,255,233,255,229,255,224,255,224,255,231,255,236,255,234,255,234,255, +238,255,238,255,235,255,233,255,232,255,231,255,230,255,229,255,227,255,229,255,231,255,222,255,209,255,209,255,216,255,219,255, +221,255,225,255,227,255,226,255,232,255,243,255,246,255,243,255,244,255,247,255,249,255,250,255,247,255,241,255,240,255,246,255, +251,255,250,255,249,255,250,255,248,255,245,255,244,255,245,255,245,255,244,255,246,255,248,255,247,255,242,255,244,255,249,255, +248,255,244,255,247,255,251,255,248,255,243,255,244,255,245,255,241,255,239,255,245,255,250,255,247,255,244,255,244,255,245,255, +245,255,242,255,241,255,243,255,242,255,236,255,236,255,243,255,245,255,240,255,239,255,243,255,244,255,244,255,248,255,251,255, +248,255,249,255,253,255,253,255,248,255,247,255,251,255,253,255,252,255,249,255,246,255,243,255,245,255,248,255,248,255,243,255, +240,255,243,255,247,255,245,255,241,255,239,255,243,255,244,255,240,255,236,255,237,255,241,255,244,255,245,255,245,255,243,255, +238,255,234,255,236,255,240,255,242,255,240,255,237,255,239,255,249,255,255,255,250,255,243,255,244,255,245,255,239,255,233,255, +232,255,231,255,230,255,236,255,243,255,240,255,231,255,231,255,238,255,244,255,246,255,248,255,249,255,251,255,251,255,247,255, +243,255,242,255,242,255,238,255,234,255,237,255,243,255,243,255,240,255,240,255,244,255,244,255,240,255,241,255,249,255,2,0, +1,0,252,255,250,255,251,255,1,0,9,0,12,0,8,0,7,0,11,0,10,0,4,0,1,0,3,0,4,0,4,0, +4,0,4,0,3,0,3,0,4,0,5,0,5,0,3,0,1,0,0,0,254,255,253,255,255,255,1,0,254,255,249,255, +251,255,255,255,255,255,254,255,255,255,255,255,253,255,1,0,7,0,7,0,4,0,4,0,5,0,6,0,9,0,11,0, +7,0,4,0,6,0,7,0,7,0,9,0,11,0,10,0,10,0,14,0,18,0,22,0,24,0,23,0,19,0,15,0, +15,0,20,0,23,0,20,0,12,0,11,0,17,0,20,0,17,0,14,0,16,0,16,0,15,0,15,0,15,0,16,0, +18,0,21,0,22,0,21,0,21,0,21,0,23,0,25,0,25,0,22,0,20,0,20,0,18,0,15,0,16,0,17,0, +16,0,13,0,12,0,11,0,11,0,12,0,14,0,17,0,20,0,24,0,27,0,29,0,32,0,34,0,32,0,28,0, +27,0,29,0,32,0,33,0,31,0,28,0,27,0,28,0,30,0,30,0,28,0,29,0,30,0,27,0,23,0,21,0, +22,0,23,0,24,0,26,0,26,0,23,0,20,0,17,0,16,0,16,0,16,0,16,0,15,0,14,0,13,0,14,0, +14,0,10,0,6,0,8,0,12,0,13,0,12,0,14,0,17,0,16,0,13,0,9,0,7,0,9,0,11,0,7,0, +255,255,248,255,250,255,0,0,2,0,0,0,254,255,1,0,3,0,1,0,255,255,255,255,0,0,2,0,5,0,5,0, +2,0,3,0,6,0,8,0,6,0,4,0,2,0,1,0,2,0,5,0,8,0,10,0,11,0,11,0,13,0,17,0, +17,0,12,0,10,0,14,0,16,0,16,0,18,0,21,0,20,0,20,0,21,0,17,0,13,0,13,0,15,0,11,0, +6,0,8,0,10,0,6,0,1,0,1,0,1,0,255,255,253,255,253,255,253,255,250,255,248,255,251,255,0,0,254,255, +247,255,246,255,250,255,251,255,249,255,250,255,251,255,249,255,247,255,249,255,252,255,251,255,249,255,250,255,254,255,0,0, +254,255,250,255,245,255,244,255,248,255,253,255,254,255,250,255,246,255,248,255,249,255,245,255,242,255,245,255,250,255,250,255, +247,255,246,255,247,255,247,255,246,255,245,255,245,255,245,255,245,255,247,255,250,255,248,255,243,255,241,255,240,255,237,255, +236,255,239,255,242,255,241,255,239,255,242,255,245,255,245,255,242,255,240,255,240,255,241,255,242,255,243,255,245,255,247,255, +247,255,246,255,249,255,0,0,5,0,4,0,1,0,1,0,3,0,6,0,9,0,11,0,12,0,12,0,11,0,11,0, +12,0,13,0,11,0,9,0,8,0,10,0,11,0,10,0,8,0,7,0,7,0,9,0,13,0,16,0,16,0,15,0, +13,0,13,0,14,0,15,0,12,0,10,0,12,0,16,0,18,0,16,0,16,0,19,0,21,0,21,0,19,0,19,0, +21,0,22,0,22,0,21,0,20,0,18,0,20,0,22,0,20,0,13,0,13,0,19,0,21,0,15,0,11,0,16,0, +18,0,15,0,14,0,20,0,24,0,22,0,21,0,22,0,20,0,17,0,18,0,22,0,22,0,17,0,13,0,12,0, +14,0,15,0,16,0,15,0,14,0,15,0,17,0,15,0,10,0,8,0,12,0,17,0,18,0,15,0,11,0,10,0, +10,0,10,0,8,0,4,0,1,0,3,0,9,0,12,0,11,0,7,0,6,0,8,0,11,0,12,0,12,0,12,0, +13,0,15,0,15,0,12,0,11,0,10,0,8,0,8,0,10,0,10,0,8,0,9,0,13,0,13,0,11,0,10,0, +10,0,9,0,9,0,8,0,5,0,3,0,5,0,5,0,2,0,255,255,1,0,4,0,3,0,2,0,1,0,0,0, +255,255,1,0,4,0,5,0,3,0,2,0,4,0,8,0,10,0,8,0,4,0,3,0,6,0,6,0,3,0,255,255, +254,255,1,0,3,0,4,0,0,0,252,255,251,255,252,255,254,255,254,255,252,255,250,255,255,255,8,0,11,0,8,0, +7,0,12,0,13,0,11,0,12,0,16,0,18,0,19,0,22,0,24,0,20,0,18,0,22,0,27,0,28,0,30,0, +33,0,35,0,36,0,40,0,41,0,39,0,37,0,36,0,37,0,38,0,40,0,41,0,41,0,40,0,38,0,35,0, +32,0,31,0,30,0,30,0,29,0,27,0,24,0,23,0,25,0,26,0,22,0,16,0,15,0,18,0,20,0,20,0, +18,0,17,0,18,0,19,0,17,0,15,0,16,0,18,0,17,0,15,0,15,0,15,0,16,0,19,0,22,0,23,0, +22,0,21,0,20,0,19,0,20,0,21,0,14,0,7,0,10,0,17,0,17,0,12,0,12,0,15,0,17,0,18,0, +18,0,17,0,17,0,20,0,25,0,26,0,25,0,25,0,23,0,19,0,19,0,22,0,25,0,26,0,26,0,24,0, +21,0,21,0,24,0,24,0,21,0,18,0,17,0,17,0,19,0,21,0,19,0,15,0,14,0,15,0,15,0,14,0, +15,0,17,0,16,0,13,0,11,0,13,0,16,0,15,0,9,0,5,0,7,0,10,0,9,0,10,0,11,0,11,0, +8,0,10,0,14,0,14,0,14,0,16,0,19,0,17,0,15,0,16,0,17,0,17,0,18,0,19,0,18,0,16,0, +18,0,19,0,19,0,19,0,21,0,19,0,16,0,17,0,18,0,15,0,14,0,20,0,25,0,24,0,19,0,18,0, +21,0,23,0,23,0,18,0,16,0,19,0,22,0,18,0,12,0,13,0,15,0,14,0,12,0,13,0,14,0,14,0, +14,0,14,0,14,0,13,0,12,0,9,0,7,0,6,0,4,0,1,0,1,0,4,0,3,0,1,0,1,0,3,0, +2,0,1,0,1,0,1,0,1,0,3,0,3,0,0,0,254,255,0,0,1,0,255,255,0,0,4,0,4,0,0,0, +255,255,1,0,1,0,255,255,255,255,255,255,253,255,252,255,253,255,255,255,2,0,5,0,5,0,1,0,0,0,2,0, +2,0,1,0,2,0,4,0,3,0,1,0,1,0,2,0,1,0,1,0,3,0,4,0,4,0,3,0,1,0,0,0, +2,0,2,0,255,255,252,255,255,255,3,0,4,0,1,0,0,0,0,0,254,255,255,255,0,0,255,255,254,255,254,255, +0,0,2,0,4,0,2,0,254,255,252,255,252,255,249,255,247,255,250,255,254,255,254,255,252,255,252,255,253,255,251,255, +252,255,253,255,250,255,247,255,249,255,253,255,252,255,247,255,246,255,247,255,248,255,248,255,248,255,246,255,244,255,245,255, +247,255,248,255,247,255,245,255,245,255,247,255,248,255,247,255,244,255,244,255,248,255,250,255,250,255,249,255,249,255,250,255, +254,255,1,0,0,0,252,255,251,255,253,255,252,255,250,255,251,255,251,255,247,255,242,255,240,255,239,255,237,255,236,255, +236,255,235,255,234,255,238,255,242,255,242,255,239,255,237,255,237,255,239,255,239,255,239,255,241,255,243,255,242,255,237,255, +235,255,239,255,241,255,237,255,234,255,236,255,238,255,238,255,239,255,240,255,239,255,237,255,237,255,239,255,241,255,244,255, +246,255,245,255,242,255,241,255,242,255,242,255,241,255,239,255,236,255,234,255,235,255,237,255,239,255,240,255,238,255,233,255, +233,255,240,255,244,255,241,255,237,255,238,255,239,255,238,255,237,255,237,255,235,255,230,255,228,255,232,255,235,255,235,255, +232,255,232,255,234,255,235,255,233,255,229,255,228,255,228,255,225,255,220,255,220,255,223,255,224,255,221,255,220,255,220,255, +221,255,221,255,221,255,219,255,219,255,223,255,226,255,222,255,218,255,218,255,222,255,224,255,224,255,223,255,222,255,221,255, +222,255,222,255,221,255,219,255,219,255,223,255,225,255,224,255,223,255,223,255,224,255,222,255,221,255,223,255,226,255,224,255, +220,255,222,255,227,255,226,255,221,255,221,255,224,255,225,255,224,255,225,255,229,255,230,255,230,255,231,255,232,255,230,255, +229,255,230,255,231,255,230,255,229,255,229,255,227,255,224,255,224,255,226,255,229,255,230,255,230,255,232,255,233,255,233,255, +232,255,232,255,231,255,228,255,225,255,226,255,228,255,227,255,223,255,221,255,222,255,222,255,222,255,221,255,220,255,218,255, +215,255,215,255,218,255,221,255,222,255,222,255,223,255,222,255,220,255,220,255,220,255,221,255,221,255,222,255,221,255,218,255, +218,255,222,255,226,255,225,255,223,255,223,255,225,255,227,255,228,255,229,255,230,255,228,255,227,255,228,255,230,255,231,255, +231,255,229,255,228,255,229,255,233,255,236,255,235,255,232,255,233,255,238,255,241,255,242,255,240,255,237,255,235,255,235,255, +236,255,237,255,236,255,236,255,237,255,236,255,234,255,233,255,232,255,232,255,234,255,237,255,237,255,236,255,236,255,237,255, +236,255,232,255,232,255,236,255,239,255,238,255,237,255,237,255,236,255,236,255,237,255,238,255,235,255,233,255,236,255,241,255, +243,255,241,255,242,255,246,255,249,255,247,255,241,255,240,255,245,255,250,255,251,255,248,255,245,255,245,255,246,255,249,255, +253,255,253,255,251,255,248,255,247,255,246,255,246,255,245,255,246,255,247,255,247,255,246,255,245,255,246,255,249,255,252,255, +253,255,252,255,250,255,253,255,1,0,2,0,254,255,251,255,251,255,253,255,0,0,1,0,0,0,254,255,254,255,255,255, +255,255,255,255,0,0,0,0,253,255,250,255,251,255,253,255,250,255,246,255,245,255,245,255,245,255,246,255,247,255,246,255, +243,255,243,255,245,255,244,255,242,255,244,255,247,255,246,255,244,255,246,255,251,255,253,255,251,255,248,255,247,255,248,255, +248,255,249,255,248,255,246,255,244,255,246,255,250,255,252,255,251,255,250,255,251,255,254,255,0,0,2,0,2,0,3,0, +6,0,6,0,4,0,2,0,3,0,7,0,7,0,6,0,7,0,7,0,5,0,4,0,6,0,8,0,6,0,4,0, +5,0,8,0,10,0,11,0,10,0,7,0,5,0,6,0,8,0,9,0,8,0,7,0,8,0,7,0,6,0,4,0, +5,0,8,0,9,0,7,0,6,0,8,0,9,0,7,0,5,0,6,0,8,0,7,0,6,0,7,0,9,0,8,0, +7,0,6,0,5,0,6,0,8,0,9,0,9,0,9,0,10,0,10,0,7,0,5,0,6,0,8,0,7,0,5,0, +5,0,7,0,8,0,7,0,8,0,9,0,8,0,5,0,4,0,6,0,7,0,7,0,8,0,9,0,10,0,9,0, +9,0,7,0,6,0,6,0,7,0,7,0,8,0,8,0,7,0,6,0,8,0,11,0,11,0,8,0,8,0,8,0, +7,0,4,0,6,0,9,0,10,0,7,0,5,0,6,0,8,0,10,0,11,0,12,0,11,0,10,0,10,0,12,0, +12,0,12,0,10,0,8,0,8,0,8,0,8,0,9,0,9,0,10,0,12,0,13,0,12,0,11,0,11,0,12,0, +12,0,10,0,11,0,13,0,15,0,15,0,13,0,12,0,13,0,14,0,15,0,15,0,12,0,9,0,9,0,12,0, +17,0,18,0,16,0,15,0,15,0,15,0,14,0,15,0,16,0,16,0,15,0,15,0,14,0,13,0,12,0,13,0, +15,0,13,0,11,0,8,0,8,0,9,0,10,0,10,0,11,0,14,0,16,0,15,0,14,0,14,0,14,0,12,0, +9,0,8,0,8,0,9,0,9,0,10,0,9,0,7,0,7,0,8,0,9,0,9,0,9,0,11,0,12,0,10,0, +9,0,10,0,12,0,11,0,12,0,14,0,16,0,14,0,12,0,11,0,10,0,10,0,11,0,12,0,12,0,10,0, +8,0,8,0,10,0,10,0,7,0,5,0,6,0,8,0,10,0,10,0,10,0,9,0,8,0,5,0,5,0,6,0, +6,0,5,0,4,0,5,0,5,0,3,0,2,0,4,0,7,0,7,0,5,0,4,0,3,0,2,0,2,0,3,0, +4,0,5,0,6,0,8,0,10,0,8,0,4,0,2,0,3,0,3,0,2,0,0,0,0,0,2,0,2,0,2,0, +1,0,2,0,2,0,3,0,5,0,4,0,2,0,1,0,2,0,2,0,0,0,254,255,254,255,254,255,253,255,252,255, +251,255,250,255,251,255,252,255,253,255,253,255,252,255,252,255,254,255,254,255,252,255,250,255,251,255,251,255,250,255,247,255, +247,255,247,255,246,255,245,255,245,255,245,255,246,255,248,255,250,255,251,255,250,255,249,255,251,255,255,255,255,255,253,255, +251,255,252,255,254,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,0,0,0,0,255,255,255,255,2,0,3,0, +3,0,2,0,3,0,4,0,4,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,254,255,253,255,252,255, +252,255,251,255,251,255,252,255,253,255,254,255,255,255,255,255,254,255,253,255,252,255,252,255,252,255,252,255,251,255,251,255, +251,255,252,255,252,255,251,255,250,255,250,255,251,255,252,255,253,255,253,255,252,255,252,255,251,255,250,255,250,255,252,255, +254,255,254,255,252,255,251,255,252,255,253,255,252,255,251,255,251,255,251,255,250,255,249,255,250,255,251,255,251,255,250,255, +250,255,249,255,248,255,246,255,247,255,250,255,252,255,252,255,250,255,250,255,251,255,253,255,253,255,251,255,250,255,250,255, +250,255,251,255,249,255,249,255,251,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,255,255,2,0,4,0,4,0, +2,0,1,0,1,0,1,0,2,0,4,0,4,0,4,0,3,0,2,0,1,0,255,255,0,0,1,0,2,0,255,255, +254,255,255,255,2,0,2,0,0,0,255,255,255,255,254,255,253,255,252,255,254,255,255,255,255,255,253,255,253,255,253,255, +251,255,249,255,247,255,248,255,249,255,250,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,252,255,251,255,251,255, +253,255,254,255,254,255,254,255,254,255,0,0,1,0,1,0,254,255,251,255,250,255,252,255,252,255,250,255,248,255,248,255, +249,255,250,255,248,255,247,255,246,255,247,255,248,255,249,255,250,255,249,255,247,255,246,255,248,255,250,255,249,255,246,255, +245,255,244,255,245,255,245,255,246,255,248,255,249,255,249,255,249,255,251,255,252,255,253,255,254,255,0,0,1,0,2,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,2,0,3,0,2,0,1,0,0,0,1,0, +2,0,2,0,0,0,253,255,253,255,253,255,253,255,253,255,253,255,251,255,250,255,251,255,252,255,252,255,251,255,249,255, +251,255,253,255,254,255,253,255,253,255,255,255,0,0,254,255,252,255,253,255,255,255,255,255,252,255,251,255,253,255,254,255, +252,255,249,255,249,255,251,255,253,255,252,255,250,255,250,255,251,255,252,255,253,255,252,255,250,255,248,255,247,255,247,255, +247,255,247,255,247,255,248,255,249,255,249,255,248,255,246,255,245,255,244,255,245,255,246,255,246,255,245,255,244,255,244,255, +246,255,247,255,247,255,245,255,245,255,246,255,246,255,247,255,248,255,249,255,248,255,247,255,247,255,248,255,249,255,249,255, +248,255,249,255,252,255,253,255,252,255,250,255,250,255,252,255,254,255,253,255,251,255,251,255,251,255,251,255,251,255,251,255, +252,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255, +254,255,255,255,255,255,1,0,2,0,2,0,0,0,255,255,255,255,1,0,2,0,3,0,2,0,1,0,0,0,0,0, +0,0,2,0,4,0,4,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,3,0,2,0,0,0, +0,0,2,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,2,0,1,0,1,0,2,0, +2,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,1,0, +1,0,1,0,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,1,0,3,0,5,0,4,0,2,0,1,0,1,0,3,0,4,0,4,0,3,0,1,0,2,0,4,0,4,0, +1,0,254,255,254,255,1,0,2,0,0,0,254,255,255,255,1,0,1,0,255,255,255,255,255,255,255,255,253,255,252,255, +251,255,252,255,252,255,251,255,252,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255, +252,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,251,255,251,255,252,255,253,255,254,255,255,255,255,255, +253,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255,252,255,252,255,253,255,253,255,253,255,253,255,252,255,250,255, +250,255,251,255,252,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,252,255,251,255,252,255, +252,255,252,255,251,255,250,255,250,255,250,255,250,255,249,255,249,255,250,255,251,255,250,255,249,255,249,255,250,255,251,255, +251,255,252,255,251,255,250,255,249,255,249,255,250,255,250,255,249,255,249,255,250,255,251,255,250,255,249,255,249,255,251,255, +253,255,253,255,251,255,249,255,249,255,250,255,251,255,252,255,251,255,250,255,251,255,253,255,253,255,250,255,248,255,249,255, +251,255,251,255,249,255,248,255,250,255,250,255,249,255,247,255,247,255,248,255,249,255,249,255,250,255,251,255,251,255,249,255, +248,255,250,255,250,255,249,255,249,255,250,255,251,255,251,255,251,255,250,255,249,255,249,255,249,255,249,255,249,255,250,255, +251,255,250,255,248,255,246,255,246,255,247,255,248,255,249,255,249,255,249,255,247,255,246,255,247,255,248,255,249,255,249,255, +249,255,249,255,249,255,248,255,248,255,249,255,251,255,252,255,252,255,252,255,250,255,250,255,251,255,251,255,250,255,251,255, +252,255,254,255,255,255,254,255,251,255,251,255,251,255,250,255,248,255,249,255,250,255,252,255,253,255,253,255,253,255,254,255, +254,255,253,255,253,255,253,255,251,255,252,255,253,255,252,255,251,255,251,255,251,255,252,255,252,255,251,255,251,255,251,255, +250,255,251,255,252,255,251,255,250,255,251,255,253,255,253,255,252,255,251,255,252,255,252,255,251,255,251,255,251,255,253,255, +254,255,252,255,252,255,253,255,254,255,253,255,254,255,254,255,253,255,251,255,250,255,252,255,253,255,253,255,252,255,252,255, +253,255,253,255,253,255,252,255,252,255,251,255,252,255,251,255,250,255,250,255,250,255,251,255,252,255,251,255,250,255,250,255, +249,255,249,255,249,255,251,255,253,255,254,255,253,255,250,255,249,255,252,255,253,255,251,255,251,255,252,255,253,255,254,255, +253,255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +2,0,2,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,255,255,1,0,0,0,254,255,253,255,254,255,255,255,253,255, +252,255,251,255,252,255,251,255,249,255,249,255,252,255,253,255,251,255,252,255,253,255,254,255,255,255,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,254,255,253,255,255,255,1,0,2,0,2,0,1,0,2,0,2,0,0,0,0,0,2,0,2,0, +1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,1,0,1,0,255,255,255,255,255,255,255,255, +255,255,0,0,254,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,254,255, +254,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,254,255,253,255,255,255,255,255,254,255,255,255,0,0,254,255,253,255,254,255, +254,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +1,0,0,0,254,255,255,255,1,0,1,0,255,255,255,255,1,0,2,0,0,0,0,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,0,0,255,255,2,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0, +3,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,3,0,4,0,3,0,2,0,2,0,1,0,2,0, +3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,5,0,5,0,5,0,4,0,5,0,6,0, +4,0,3,0,5,0,5,0,3,0,4,0,6,0,5,0,4,0,5,0,4,0,3,0,4,0,5,0,4,0,3,0, +3,0,3,0,5,0,6,0,4,0,2,0,3,0,5,0,4,0,4,0,5,0,5,0,3,0,3,0,4,0,2,0, +2,0,3,0,3,0,3,0,4,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0,5,0,4,0,4,0, +5,0,6,0,5,0,4,0,5,0,5,0,5,0,4,0,3,0,3,0,5,0,6,0,5,0,4,0,4,0,5,0, +6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, +6,0,6,0,5,0,5,0,4,0,5,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0, +5,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,0,0,0,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,3,0,4,0,2,0,1,0,3,0,3,0, +2,0,4,0,3,0,1,0,1,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,3,0,2,0, +2,0,3,0,2,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0, +0,0,0,0,2,0,3,0,2,0,2,0,2,0,1,0,0,0,2,0,3,0,1,0,0,0,2,0,2,0,1,0, +1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0, +1,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,2,0,1,0, +0,0,2,0,2,0,1,0,0,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,3,0,3,0,1,0,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,0,0,0,0,255,255,254,255,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255, +254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255, +254,255,254,255,255,255,255,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0, +2,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0, +2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0, +1,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,2,0,3,0, +2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,3,0, +3,0,3,0,3,0,3,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0, +1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,2,0,1,0,1,0,3,0,2,0, +0,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,1,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,255,255,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,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,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/fuse.pcm b/src/client/sound/data/fuse.pcm new file mode 100755 index 0000000..dc5f70c --- /dev/null +++ b/src/client/sound/data/fuse.pcm @@ -0,0 +1,7805 @@ +unsigned char PCM_fuse[249690] = { +1,0,0,0,2,0,0,0,68,172,0,0,165,231,1,0,46,0,108,255,181,255,42,0,140,255,174,255,243,255,186,255, +228,255,162,255,140,255,8,0,0,0,33,0,202,255,173,255,35,0,196,255,207,255,190,255,202,255,15,0,196,255,254,255, +8,0,252,255,225,255,203,255,242,255,11,0,51,0,203,255,24,0,8,0,203,255,106,0,240,255,198,255,144,255,15,0, +117,0,55,255,235,255,226,255,99,255,59,0,192,255,215,255,224,255,153,255,222,255,169,255,206,255,170,255,107,255,175,255, +189,255,200,255,230,255,188,255,156,255,195,255,185,255,226,255,242,255,174,255,193,255,210,255,213,255,210,255,176,255,172,255, +240,255,203,255,145,255,32,0,218,255,111,255,250,255,213,255,118,255,186,255,4,0,164,255,107,255,216,255,203,255,176,255, +172,255,197,255,227,255,139,255,197,255,200,255,120,255,185,255,165,255,182,255,207,255,208,255,23,0,205,255,227,255,68,0, +224,255,209,255,229,255,181,255,30,0,8,0,185,255,58,0,223,255,186,255,53,0,194,255,224,255,235,255,166,255,252,255, +185,255,167,255,229,255,156,255,158,255,11,0,15,0,195,255,194,255,228,255,25,0,245,255,228,255,13,0,183,255,193,255, +243,255,241,255,197,255,206,255,52,0,204,255,226,255,33,0,184,255,10,0,250,255,168,255,200,255,204,255,188,255,191,255, +196,255,191,255,35,0,236,255,187,255,27,0,182,255,217,255,14,0,173,255,206,255,235,255,187,255,186,255,8,0,245,255, +245,255,253,255,181,255,13,0,49,0,181,255,189,255,60,0,211,255,154,255,0,0,188,255,18,0,14,0,197,255,234,255, +180,255,7,0,198,255,220,255,28,0,122,255,6,0,24,0,129,255,206,255,230,255,199,255,210,255,155,255,141,255,212,255, +197,255,211,255,206,255,203,255,255,255,225,255,228,255,226,255,236,255,212,255,208,255,215,255,197,255,26,0,163,255,157,255, +12,0,228,255,6,0,217,255,8,0,238,255,154,255,18,0,10,0,194,255,175,255,236,255,219,255,217,255,13,0,180,255, +6,0,230,255,182,255,44,0,190,255,191,255,207,255,164,255,20,0,239,255,176,255,239,255,222,255,163,255,225,255,215,255, +157,255,229,255,199,255,250,255,70,0,176,255,195,255,229,255,125,255,128,255,164,255,164,255,98,255,91,255,169,255,226,255, +190,255,103,255,172,255,221,255,143,255,112,255,192,255,222,255,144,255,177,255,223,255,207,255,113,255,152,255,25,0,111,255, +148,255,254,255,130,255,235,255,8,0,156,255,184,255,182,255,214,255,1,0,94,255,157,255,54,0,124,255,238,255,92,0, +164,255,163,255,191,255,199,255,152,255,199,255,179,255,87,255,245,255,239,255,178,255,193,255,195,255,216,255,198,255,255,255, +173,255,133,255,244,255,209,255,200,255,22,0,228,255,126,255,225,255,20,0,191,255,212,255,250,255,181,255,182,255,34,0, +195,255,200,255,65,0,171,255,116,255,3,0,27,0,153,255,192,255,228,255,134,255,226,255,30,0,24,0,203,255,211,255, +81,0,217,255,213,255,16,0,176,255,234,255,13,0,134,255,214,255,71,0,192,255,242,255,211,255,167,255,62,0,189,255, +190,255,5,0,231,255,254,255,164,255,228,255,8,0,207,255,227,255,233,255,223,255,190,255,241,255,220,255,237,255,241,255, +160,255,23,0,222,255,203,255,2,0,162,255,51,0,231,255,194,255,121,0,168,255,174,255,90,0,228,255,166,255,246,255, +4,0,168,255,250,255,1,0,122,255,187,255,241,255,224,255,242,255,9,0,217,255,174,255,212,255,19,0,251,255,174,255, +65,0,243,255,155,255,57,0,151,255,8,0,101,0,129,255,247,255,51,0,197,255,173,255,15,0,13,0,197,255,25,0, +37,0,212,255,148,255,45,0,62,0,191,255,27,0,210,255,198,255,28,0,233,255,207,255,250,255,212,255,168,255,85,0, +251,255,230,255,48,0,142,255,44,0,248,255,154,255,27,0,217,255,225,255,166,255,218,255,8,0,160,255,254,255,0,0, +193,255,25,0,79,0,248,255,3,0,11,0,210,255,80,0,39,0,208,255,227,255,207,255,31,0,233,255,194,255,0,0, +227,255,255,255,201,255,222,255,94,0,250,255,197,255,1,0,21,0,231,255,189,255,41,0,207,255,230,255,155,0,192,255, +193,255,66,0,198,255,206,255,28,0,58,0,228,255,233,255,6,0,179,255,8,0,25,0,240,255,242,255,190,255,199,255, +240,255,40,0,3,0,244,255,29,0,225,255,246,255,226,255,197,255,241,255,154,255,205,255,21,0,230,255,7,0,196,255, +193,255,254,255,223,255,247,255,182,255,168,255,50,0,38,0,188,255,2,0,59,0,231,255,230,255,205,255,159,255,183,255, +8,0,255,255,161,255,44,0,33,0,231,255,37,0,166,255,197,255,246,255,5,0,34,0,16,0,47,0,189,255,231,255, +71,0,225,255,206,255,8,0,220,255,174,255,83,0,39,0,159,255,238,255,219,255,15,0,55,0,211,255,226,255,237,255, +178,255,41,0,20,0,137,255,83,0,30,0,174,255,45,0,25,0,81,0,239,255,204,255,66,0,248,255,2,0,34,0, +13,0,190,255,235,255,80,0,218,255,182,255,32,0,72,0,196,255,211,255,100,0,9,0,241,255,39,0,221,255,199,255, +63,0,72,0,236,255,238,255,16,0,74,0,234,255,195,255,92,0,75,0,219,255,204,255,67,0,63,0,246,255,23,0, +253,255,58,0,54,0,246,255,26,0,50,0,55,0,151,255,14,0,186,0,172,255,17,0,145,0,215,255,41,0,88,0, +50,0,7,0,9,0,96,0,4,0,255,255,23,0,246,255,83,0,53,0,255,255,41,0,250,255,234,255,74,0,231,255, +175,255,48,0,199,255,205,255,64,0,0,0,221,255,239,255,32,0,232,255,209,255,237,255,201,255,238,255,247,255,214,255, +201,255,23,0,20,0,201,255,236,255,190,255,207,255,250,255,201,255,219,255,237,255,229,255,3,0,238,255,205,255,56,0, +12,0,34,0,96,0,161,255,58,0,48,0,80,255,246,255,218,255,138,255,240,255,201,255,226,255,115,0,233,255,214,255, +76,0,127,255,13,0,28,0,128,255,68,0,221,255,20,0,31,0,166,255,64,0,229,255,5,0,10,0,157,255,242,255, +213,255,13,0,255,255,212,255,6,0,190,255,50,0,78,0,165,255,234,255,45,0,243,255,233,255,10,0,6,0,195,255, +231,255,0,0,186,255,220,255,195,255,125,255,51,0,79,0,89,255,232,255,88,0,188,255,247,255,185,255,195,255,29,0, +187,255,255,255,25,0,249,255,16,0,59,0,17,0,147,255,239,255,67,0,78,0,188,255,181,255,121,0,166,255,7,0, +96,0,68,255,38,0,60,0,189,255,75,0,221,255,29,0,118,0,206,255,231,255,58,0,9,0,236,255,249,255,222,255, +3,0,22,0,232,255,43,0,198,255,175,255,88,0,254,255,0,0,89,0,235,255,168,255,53,0,85,0,178,255,14,0, +47,0,7,0,24,0,205,255,30,0,233,255,246,255,59,0,227,255,29,0,207,255,223,255,69,0,11,0,242,255,2,0, +59,0,0,0,255,255,239,255,201,255,12,0,5,0,93,0,5,0,162,255,38,0,43,0,87,0,71,0,241,255,58,0, +61,0,28,0,60,0,193,255,176,255,77,0,92,0,22,0,146,255,31,0,103,0,217,255,106,0,243,255,32,0,132,0, +151,255,133,0,115,0,169,255,31,0,212,255,239,255,62,0,24,0,224,255,211,255,32,0,55,0,17,0,200,255,248,255, +31,0,240,255,30,0,41,0,242,255,215,255,69,0,26,0,117,255,51,0,34,0,150,255,125,0,94,0,206,255,12,0, +6,0,63,0,116,0,0,0,228,255,106,0,70,0,26,0,36,0,222,255,28,0,200,255,247,255,132,0,214,255,253,255, +1,0,27,0,107,0,216,255,55,0,27,0,229,255,84,0,55,0,108,0,59,0,40,0,95,0,46,0,107,0,65,0, +237,255,63,0,93,0,52,0,255,255,249,255,72,0,74,0,19,0,2,0,51,0,22,0,228,255,122,0,241,255,177,255, +146,0,24,0,109,0,145,0,250,255,124,0,10,0,239,255,50,0,207,255,237,255,204,255,252,255,24,0,216,255,70,0, +16,0,169,255,79,0,102,0,224,255,0,0,51,0,19,0,41,0,60,0,230,255,34,0,86,0,228,255,22,0,21,0, +16,0,88,0,10,0,223,255,8,0,27,0,217,255,250,255,236,255,209,255,91,0,7,0,25,0,31,0,206,255,53,0, +204,255,247,255,27,0,150,255,244,255,16,0,227,255,215,255,14,0,15,0,244,255,6,0,196,255,21,0,240,255,193,255, +68,0,218,255,228,255,43,0,154,255,183,255,81,0,10,0,138,255,10,0,216,255,97,255,54,0,241,255,176,255,25,0, +170,255,240,255,211,255,155,255,215,255,188,255,88,0,235,255,172,255,52,0,210,255,220,255,216,255,90,0,62,0,129,255, +9,0,177,255,233,255,67,0,157,255,219,255,189,255,10,0,52,0,196,255,19,0,175,255,239,255,84,0,191,255,33,0, +243,255,200,255,58,0,192,255,211,255,253,255,242,255,11,0,241,255,65,0,38,0,21,0,251,255,167,255,247,255,15,0, +249,255,201,255,212,255,222,255,214,255,34,0,241,255,246,255,175,255,153,255,253,255,210,255,41,0,195,255,135,255,23,0, +201,255,227,255,0,0,184,255,189,255,224,255,188,255,214,255,51,0,179,255,217,255,43,0,160,255,231,255,32,0,168,255, +187,255,29,0,189,255,161,255,43,0,201,255,133,255,5,0,220,255,171,255,249,255,23,0,62,0,233,255,189,255,56,0, +209,255,199,255,11,0,150,255,153,255,174,255,223,255,182,255,102,255,214,255,173,255,209,255,51,0,147,255,169,255,248,255, +181,255,229,255,241,255,4,0,28,0,195,255,225,255,244,255,163,255,185,255,7,0,208,255,210,255,66,0,182,255,158,255, +20,0,246,255,214,255,138,255,24,0,52,0,195,255,63,0,223,255,8,0,141,0,162,255,131,255,17,0,215,255,178,255, +251,255,231,255,163,255,210,255,243,255,151,255,206,255,56,0,183,255,228,255,36,0,163,255,42,0,116,0,143,255,173,255, +71,0,225,255,18,0,35,0,195,255,44,0,181,255,216,255,137,0,255,255,47,0,45,0,149,255,215,255,57,0,17,0, +3,0,254,255,182,255,97,0,73,0,184,255,56,0,181,255,248,255,92,0,162,255,49,0,11,0,193,255,39,0,235,255, +120,0,69,0,168,255,252,255,6,0,51,0,16,0,5,0,206,255,165,255,100,0,253,255,240,255,26,0,194,255,87,0, +34,0,21,0,1,0,220,255,33,0,147,255,68,0,58,0,118,255,50,0,27,0,31,0,42,0,221,255,23,0,14,0, +51,0,22,0,0,0,76,0,27,0,3,0,56,0,240,255,186,255,54,0,19,0,226,255,61,0,27,0,10,0,241,255, +1,0,49,0,235,255,253,255,2,0,255,255,46,0,241,255,241,255,62,0,53,0,21,0,3,0,246,255,245,255,233,255, +2,0,247,255,197,255,230,255,38,0,53,0,216,255,199,255,247,255,5,0,235,255,165,255,3,0,198,255,182,255,47,0, +188,255,248,255,211,255,224,255,85,0,194,255,11,0,9,0,186,255,183,255,253,255,82,0,195,255,40,0,50,0,6,0, +55,0,196,255,241,255,16,0,105,0,28,0,229,255,68,0,233,255,83,0,200,255,200,255,87,0,162,255,39,0,3,0, +185,255,41,0,46,0,53,0,239,255,31,0,69,0,63,0,255,255,241,255,40,0,206,255,210,255,230,255,63,0,0,0, +232,255,109,0,181,255,9,0,90,0,2,0,248,255,150,255,9,0,246,255,1,0,126,0,252,255,186,255,21,0,82,0, +240,255,51,0,57,0,187,255,101,0,90,0,48,0,145,0,21,0,14,0,107,0,25,0,30,0,41,0,215,255,9,0, +42,0,86,0,26,0,223,255,100,0,3,0,49,0,100,0,229,255,109,0,34,0,243,255,117,0,71,0,105,0,90,0, +39,0,91,0,81,0,61,0,53,0,245,255,53,0,140,0,29,0,38,0,90,0,7,0,11,0,42,0,18,0,17,0, +69,0,29,0,12,0,83,0,234,255,226,255,117,0,60,0,244,255,21,0,237,255,215,255,55,0,48,0,198,255,47,0, +95,0,163,255,15,0,137,0,200,255,8,0,77,0,202,255,47,0,62,0,213,255,255,255,8,0,19,0,245,255,226,255, +42,0,11,0,44,0,48,0,226,255,73,0,27,0,184,255,234,255,159,255,7,0,96,0,163,255,3,0,80,0,220,255, +31,0,245,255,240,255,35,0,206,255,38,0,30,0,187,255,11,0,8,0,49,0,55,0,175,255,2,0,247,255,179,255, +77,0,253,255,217,255,55,0,210,255,224,255,255,255,215,255,211,255,242,255,14,0,244,255,242,255,9,0,72,0,228,255, +207,255,49,0,188,255,239,255,31,0,251,255,34,0,9,0,7,0,37,0,100,0,187,255,159,255,32,0,214,255,65,0, +255,255,179,255,231,255,233,255,102,0,231,255,192,255,18,0,225,255,21,0,23,0,249,255,243,255,3,0,224,255,21,0, +65,0,168,255,225,255,39,0,6,0,83,0,3,0,173,255,94,0,96,0,202,255,24,0,4,0,253,255,66,0,233,255, +244,255,34,0,11,0,5,0,243,255,168,255,52,0,85,0,142,255,85,0,57,0,191,255,26,0,167,255,30,0,43,0, +231,255,39,0,6,0,30,0,48,0,41,0,191,255,76,0,55,0,154,255,132,0,182,255,142,255,90,0,200,255,23,0, +29,0,197,255,16,0,122,0,24,0,228,255,71,0,189,255,34,0,52,0,140,255,15,0,27,0,40,0,29,0,211,255, +59,0,79,0,243,255,241,255,1,0,4,0,59,0,230,255,240,255,122,0,252,255,171,255,31,0,28,0,0,0,79,0, +202,255,189,255,90,0,238,255,59,0,53,0,175,255,42,0,251,255,181,255,36,0,47,0,186,255,22,0,35,0,219,255, +158,0,74,0,23,0,90,0,19,0,64,0,15,0,49,0,49,0,235,255,17,0,61,0,116,0,6,0,12,0,55,0, +88,0,108,0,223,255,70,0,251,255,222,255,206,0,237,255,185,255,148,0,28,0,253,255,156,0,90,0,202,255,69,0, +119,0,238,255,82,0,126,0,246,255,99,0,85,0,215,255,109,0,71,0,207,255,78,0,114,0,25,0,46,0,72,0, +233,255,52,0,125,0,238,255,60,0,111,0,1,0,76,0,26,0,244,255,119,0,26,0,0,0,97,0,12,0,48,0, +99,0,191,255,40,0,4,1,249,255,172,255,200,0,11,0,189,255,153,0,41,0,48,0,67,0,220,255,104,0,72,0, +242,255,8,0,220,255,64,0,40,0,230,255,91,0,36,0,15,0,50,0,254,255,75,0,51,0,252,255,67,0,227,255, +209,255,132,0,56,0,215,255,100,0,55,0,237,255,17,0,233,255,54,0,36,0,224,255,140,0,31,0,153,255,92,0, +16,0,238,255,234,255,150,255,133,0,51,0,147,255,240,255,252,255,28,0,249,255,8,0,240,255,24,0,5,0,104,255, +26,0,128,0,183,255,187,255,165,0,250,255,133,255,90,0,191,255,169,255,54,0,202,255,150,255,59,0,227,255,159,255, +77,0,106,255,218,255,58,0,194,255,82,0,162,255,3,0,235,255,134,255,126,0,213,255,152,255,19,0,6,0,2,0, +194,255,171,255,29,0,6,0,206,255,58,0,237,255,178,255,216,255,40,0,13,0,130,255,4,0,240,255,194,255,35,0, +198,255,187,255,34,0,12,0,235,255,13,0,227,255,211,255,228,255,186,255,204,255,24,0,217,255,251,255,43,0,77,255, +238,255,106,0,177,255,226,255,36,0,31,0,132,255,186,255,24,0,224,255,3,0,202,255,248,255,52,0,74,0,165,255, +231,255,121,0,81,255,255,255,98,0,170,255,228,255,60,0,60,0,176,255,203,255,240,255,73,0,2,0,212,255,23,0, +189,255,129,0,12,0,201,255,245,255,181,255,122,0,226,255,190,255,241,255,5,0,28,0,197,255,65,0,253,255,211,255, +202,255,205,255,245,255,254,255,254,255,103,255,28,0,43,0,165,255,254,255,248,255,16,0,225,255,231,255,227,255,23,0, +244,255,238,255,93,0,45,255,185,255,110,0,130,255,7,0,249,255,218,255,47,0,215,255,12,0,91,0,8,0,181,255, +203,255,49,0,31,0,141,255,45,0,98,0,207,255,51,0,249,255,42,0,11,0,169,255,127,0,186,255,224,255,165,0, +228,255,56,0,7,0,244,255,160,0,42,0,240,255,247,255,179,255,248,255,79,0,204,255,165,255,66,0,53,0,207,255, +61,0,59,0,152,255,31,0,20,0,240,255,124,0,226,255,225,255,233,255,193,255,80,0,11,0,231,255,18,0,245,255, +31,0,60,0,10,0,210,255,26,0,103,0,230,255,218,255,71,0,201,255,244,255,81,0,175,255,29,0,151,0,202,255, +223,255,79,0,196,255,227,255,18,0,250,255,44,0,250,255,29,0,233,255,252,255,84,0,215,255,232,255,252,255,243,255, +11,0,40,0,19,0,200,255,26,0,253,255,186,255,43,0,74,0,167,255,254,255,164,0,230,255,232,255,47,0,194,255, +178,255,13,0,5,0,118,255,2,0,71,0,9,0,31,0,195,255,244,255,209,255,241,255,36,0,190,255,119,0,225,255, +113,255,93,0,224,255,182,255,27,0,39,0,224,255,246,255,61,0,14,0,37,0,194,255,173,255,15,0,19,0,195,255, +209,255,15,0,244,255,26,0,133,255,39,0,76,0,231,255,197,1,163,0,92,254,247,254,253,255,143,255,87,255,61,0, +233,255,162,255,188,255,10,0,94,0,48,0,249,255,175,255,200,255,135,255,213,255,248,255,238,255,3,0,133,255,82,0, +79,0,118,255,223,255,253,255,160,255,60,0,24,0,151,255,99,0,227,255,44,0,100,0,94,255,87,0,97,0,145,255, +255,255,12,0,217,255,16,0,180,255,9,0,87,0,174,255,115,0,16,0,130,255,68,0,1,0,1,0,40,0,5,0, +227,255,18,0,250,255,209,255,50,0,47,0,243,255,243,255,41,0,202,255,8,0,60,0,241,255,48,0,212,255,64,0, +54,0,140,255,28,0,53,0,43,0,110,0,248,255,215,255,65,0,1,0,49,0,3,0,158,255,23,0,230,255,224,255, +42,0,64,0,196,255,190,255,125,0,58,0,246,255,33,0,203,255,148,255,136,0,76,0,192,255,90,0,16,0,106,0, +69,0,226,255,115,0,6,0,178,255,7,0,27,0,253,255,16,0,20,0,56,0,255,255,53,0,110,0,188,255,63,0, +245,255,133,255,92,0,48,0,253,255,39,0,249,255,41,0,65,0,227,255,105,0,255,255,212,255,124,0,200,255,20,0, +165,255,213,255,118,0,143,255,39,0,18,0,7,0,32,0,225,255,68,0,229,255,237,255,249,255,22,0,241,255,254,255, +60,0,240,255,48,0,199,255,32,0,36,0,164,255,56,0,195,255,254,255,140,0,83,0,225,255,227,255,122,0,75,0, +114,0,15,0,203,255,10,0,22,0,100,0,139,255,208,255,136,0,249,255,38,0,163,0,105,0,201,255,17,0,125,0, +111,0,14,0,209,255,79,0,63,0,253,255,71,0,66,0,219,255,218,255,236,255,71,0,85,0,230,255,39,0,217,255, +80,0,230,0,164,255,14,0,165,0,216,255,122,0,53,0,142,255,46,0,94,0,69,0,183,255,58,0,35,0,198,255, +172,0,136,0,239,255,101,255,110,0,57,0,2,0,145,0,127,255,80,0,84,0,27,0,20,0,3,0,236,255,238,255, +201,0,110,255,82,0,163,0,222,255,102,0,222,255,197,255,227,255,80,1,31,0,25,255,51,0,45,0,46,0,248,255, +66,0,65,0,160,0,39,0,150,0,63,0,11,0,224,0,10,255,138,0,126,0,42,255,70,0,15,1,78,0,124,255, +105,1,27,0,187,255,113,0,53,0,186,255,215,255,136,1,206,255,6,0,254,255,36,0,99,0,153,255,135,0,56,0, +70,0,128,255,250,0,171,255,148,0,226,255,171,0,77,8,100,250,217,249,93,5,174,254,16,1,169,0,172,254,175,0, +124,1,76,3,32,255,159,254,4,0,16,0,145,0,62,0,22,0,230,255,56,0,61,0,97,0,24,0,36,0,205,255, +232,0,34,0,10,255,65,1,96,0,120,0,119,0,27,0,32,0,223,255,210,0,161,255,197,0,138,0,28,255,116,0, +231,0,238,0,175,255,1,0,118,0,62,0,169,0,172,255,78,0,150,0,247,255,229,0,115,0,127,255,103,0,13,1, +32,0,176,255,237,255,87,0,173,0,13,0,61,0,0,0,153,0,199,0,90,0,160,4,49,2,30,254,62,0,178,253, +91,254,228,1,138,0,143,254,115,0,136,1,157,255,40,1,149,0,204,255,161,0,207,255,93,0,89,0,13,0,145,255, +114,0,126,0,198,255,79,1,175,0,99,255,4,0,220,0,18,0,3,0,27,0,247,255,245,0,201,255,247,255,52,1, +151,0,205,255,174,255,98,0,1,0,249,255,131,0,97,0,52,0,91,0,165,0,19,0,254,255,63,0,226,255,105,0, +85,0,130,255,90,0,151,0,18,0,103,0,81,0,223,255,18,0,118,0,221,255,253,255,246,255,12,0,200,0,235,255, +79,0,28,0,212,255,189,0,8,0,34,0,9,0,219,255,205,255,10,0,54,0,1,0,181,0,173,255,45,0,49,0, +192,255,81,0,36,255,134,0,178,255,221,255,146,0,199,253,36,1,169,2,179,255,136,255,237,255,117,255,138,255,99,0, +49,255,134,255,1,1,117,0,200,255,69,255,170,255,87,0,1,0,101,255,105,0,134,0,230,255,110,0,4,0,28,0, +5,0,230,255,75,0,211,255,223,255,61,0,231,255,186,255,63,0,9,0,222,255,105,0,0,0,112,255,64,0,4,0, +110,0,243,0,79,254,241,255,79,1,159,255,227,255,36,255,126,0,254,255,75,255,197,0,33,255,39,0,196,0,29,255, +228,255,62,0,55,0,146,0,160,255,67,255,13,0,229,255,60,0,97,0,106,255,124,255,53,0,83,0,33,0,180,255, +28,0,180,0,171,255,161,255,184,255,142,255,20,0,159,255,193,255,67,0,76,0,188,255,9,0,151,0,242,255,150,255, +67,255,90,0,210,0,112,255,110,255,73,0,19,0,236,255,92,0,214,255,214,255,21,0,2,0,151,255,185,255,127,0, +208,255,21,0,13,0,106,255,172,255,42,0,81,0,120,255,87,0,251,255,20,255,127,0,27,0,161,255,245,255,13,0, +78,0,66,255,161,255,233,0,209,255,180,255,217,255,158,255,113,0,218,255,183,255,98,0,63,0,187,255,16,0,112,0, +181,255,212,255,215,255,110,0,130,0,170,255,255,255,243,255,21,0,199,255,160,255,185,255,176,255,100,0,107,0,80,0, +154,255,136,255,119,0,195,255,120,255,11,0,61,255,88,255,87,0,114,0,79,0,41,255,231,255,219,0,188,255,50,0, +32,0,76,255,161,255,107,0,50,0,130,255,204,255,69,0,117,0,227,255,185,255,253,255,91,0,17,0,181,255,205,255, +186,255,4,1,64,0,46,255,192,255,218,255,135,0,200,255,174,255,187,0,250,255,67,255,78,0,48,0,166,255,193,0, +219,255,70,255,3,0,133,0,89,0,158,255,38,0,174,255,225,255,246,0,147,0,29,255,9,255,188,0,4,0,19,0, +210,0,211,255,68,0,111,0,44,0,209,0,248,255,119,255,123,0,199,255,115,255,255,255,46,0,140,0,232,255,186,255, +24,0,65,0,48,0,223,255,178,255,21,0,98,0,219,255,13,0,19,0,206,0,104,0,34,255,231,0,118,0,56,255, +33,0,217,255,148,255,34,0,117,0,208,255,120,255,248,255,5,0,219,255,132,255,204,255,90,0,116,255,218,255,164,0, +143,255,200,255,46,0,48,0,33,0,195,255,215,255,165,255,224,255,25,0,174,0,61,0,109,255,78,0,35,0,15,0, +187,255,180,254,110,0,106,1,36,255,171,255,220,0,125,255,72,255,248,255,167,0,145,254,134,254,19,1,201,255,160,255, +196,255,209,255,233,255,76,255,147,0,251,255,188,254,129,255,126,0,217,255,78,0,70,1,98,255,248,254,229,255,33,0, +106,255,219,254,103,255,86,255,232,255,79,0,169,255,210,255,228,255,110,255,72,0,20,0,95,255,233,255,4,0,254,255, +106,255,147,0,115,0,120,255,165,0,149,255,246,255,125,0,167,255,31,0,12,0,18,0,120,0,146,0,217,254,200,255, +18,2,215,255,253,254,110,0,100,0,55,0,138,0,190,255,226,255,194,0,237,255,246,255,86,0,124,0,53,0,105,255, +94,0,5,1,95,0,122,0,181,0,184,255,171,255,188,0,248,255,245,255,123,0,130,255,137,0,188,0,247,255,181,0, +77,0,178,0,150,0,234,255,56,0,113,0,140,0,47,255,250,255,204,0,115,255,55,0,253,0,59,0,245,255,13,1, +116,0,97,255,47,0,15,0,93,0,252,0,209,255,144,255,118,0,33,0,138,0,108,0,145,255,26,0,231,255,169,0, +214,0,149,255,89,1,218,1,66,254,214,254,89,1,26,0,89,0,160,255,83,255,160,0,217,255,108,0,162,0,126,0, +224,255,117,255,17,0,56,0,168,0,161,255,187,255,214,255,213,255,202,0,17,0,8,0,203,0,227,255,220,254,21,1, +231,255,252,254,231,1,170,255,220,255,239,0,180,255,133,0,27,0,148,0,14,0,114,255,33,0,231,255,64,0,130,255, +129,255,223,255,56,255,115,0,81,0,122,255,172,0,107,0,38,0,7,0,207,255,105,0,177,255,133,255,156,255,23,0, +169,0,199,255,201,255,77,0,9,0,158,255,179,0,96,0,203,254,133,255,48,0,124,0,219,255,176,255,146,0,87,0, +172,255,50,255,236,0,210,0,45,255,48,0,136,255,130,255,217,255,221,255,171,1,138,255,224,254,86,0,117,255,227,0, +59,0,0,255,113,0,95,0,169,255,240,255,132,0,245,255,53,0,46,0,204,255,74,0,236,255,135,255,2,0,255,0, +199,255,249,255,138,0,102,255,19,0,113,0,60,3,184,1,141,253,121,0,146,0,170,254,18,0,68,0,125,255,157,255, +96,255,44,0,201,0,166,255,104,0,53,0,173,255,251,255,156,255,46,0,253,255,116,255,30,0,91,1,10,0,62,255, +224,0,21,0,174,255,249,0,88,0,248,254,1,0,114,0,6,0,58,0,175,255,246,255,105,0,230,0,82,0,255,255, +193,255,152,255,219,0,145,255,16,0,163,0,67,0,141,0,115,255,234,0,177,255,136,255,23,2,172,0,211,255,94,255, +243,255,121,0,24,0,240,255,79,255,86,0,240,255,61,0,192,0,72,255,202,0,240,0,182,255,201,255,195,255,26,1, +134,0,105,255,200,255,206,255,239,255,86,0,231,0,19,255,12,255,68,1,138,0,211,255,124,255,130,0,51,1,70,0, +70,0,88,255,193,0,104,1,190,254,61,0,254,0,109,255,33,0,136,255,191,255,97,0,123,0,242,0,110,255,72,0, +175,0,8,0,187,0,232,255,179,0,176,0,121,255,160,255,116,0,172,0,130,255,42,0,6,1,99,0,224,255,115,0, +251,255,18,0,44,1,163,255,209,255,98,0,87,0,165,0,11,0,78,0,128,0,124,0,9,0,95,0,6,0,197,255, +169,255,119,1,229,4,29,255,52,252,50,0,252,255,176,255,251,255,23,1,230,255,29,255,147,1,208,1,149,0,212,254, +59,255,54,0,68,0,173,0,3,0,182,0,136,1,160,255,87,255,186,0,121,255,90,255,78,0,193,255,83,0,229,0, +254,255,97,255,105,0,185,0,24,0,11,0,14,0,15,255,5,1,61,4,18,254,75,252,147,2,190,0,104,255,10,1, +151,0,106,255,82,254,199,0,36,1,116,255,228,255,181,255,89,0,168,0,250,255,69,0,57,0,238,255,253,255,174,255, +177,255,35,0,21,255,120,255,163,0,3,0,110,0,157,255,11,0,254,0,77,255,166,255,167,255,209,255,102,0,160,255, +172,255,2,0,116,0,15,0,190,255,184,255,188,255,25,0,202,255,177,255,113,0,105,0,85,255,25,0,138,0,137,0, +84,0,86,255,216,255,116,255,113,255,179,255,98,0,110,0,42,255,77,0,106,0,11,0,155,255,179,255,0,0,130,255, +73,0,161,255,254,255,76,0,20,0,6,0,193,255,102,0,51,255,97,0,83,0,132,254,170,0,212,0,107,255,7,0, +81,0,10,0,200,0,231,255,169,255,51,0,150,255,96,0,248,255,222,0,19,0,27,254,166,0,117,0,180,254,103,255, +136,0,17,0,82,255,17,0,63,0,51,0,63,0,17,0,99,255,54,0,119,0,16,255,49,0,9,0,76,255,64,0, +213,255,8,0,102,0,148,255,200,255,59,0,11,0,227,255,241,255,159,0,11,0,142,255,153,0,29,0,209,255,53,0, +223,255,137,255,136,255,64,0,237,255,14,0,108,0,187,255,137,0,1,0,121,255,204,255,212,255,196,0,18,255,144,255, +155,0,73,255,194,0,104,0,240,255,198,0,253,0,94,0,191,254,65,255,54,255,19,255,212,255,251,255,95,255,188,255, +109,0,108,255,145,0,60,0,171,255,46,0,16,255,204,255,183,255,247,255,246,255,53,255,102,0,218,0,48,0,84,255, +224,255,253,255,175,255,97,0,206,255,126,255,192,0,253,255,62,255,115,0,206,255,227,0,42,0,141,254,154,0,255,255, +63,0,68,0,179,255,248,255,129,255,200,0,59,0,117,255,46,0,106,0,107,255,184,255,163,0,25,2,19,3,177,251, +42,252,166,4,63,3,146,255,200,253,249,254,42,0,134,255,87,0,231,0,148,1,211,254,115,253,165,0,52,1,247,255, +101,255,4,0,130,0,250,255,120,0,118,0,226,255,49,0,195,255,79,0,68,1,204,255,212,254,185,255,66,1,191,0, +169,254,99,255,165,0,101,0,233,255,227,255,138,0,128,0,76,1,27,0,138,254,132,1,70,0,181,254,195,0,254,254, +126,255,19,0,113,254,118,0,100,1,165,1,193,0,103,253,33,0,71,2,60,254,229,254,5,1,232,255,175,255,17,0, +75,0,197,255,111,255,64,1,166,1,202,253,174,254,73,1,136,255,137,0,124,0,199,255,183,255,147,255,49,1,197,1, +67,0,154,253,243,255,80,0,226,255,170,0,40,255,113,4,195,255,1,251,190,2,101,0,107,254,179,1,128,1,171,255, +159,254,180,255,165,255,216,0,57,0,161,254,168,0,190,255,109,255,50,2,129,255,1,255,87,2,158,254,115,254,15,2, +99,0,116,255,144,255,66,0,43,0,89,255,38,0,247,255,146,255,72,0,105,0,112,0,35,1,126,255,152,255,84,1, +214,255,93,255,197,255,111,1,103,2,9,0,176,254,62,0,173,0,29,0,251,3,23,2,10,252,72,254,235,1,168,1, +125,254,167,254,118,0,250,254,10,0,18,1,243,255,102,255,234,255,171,0,45,0,242,0,165,0,168,255,159,1,116,1, +3,1,37,1,36,255,88,255,223,255,162,255,15,0,112,255,241,255,37,1,238,254,137,254,235,255,203,0,159,1,132,253, +58,2,7,7,93,1,201,253,76,249,248,253,43,1,239,0,33,3,146,253,50,255,139,255,182,255,140,1,187,0,40,3, +221,254,163,255,150,1,59,254,214,255,28,3,250,254,113,252,250,3,175,2,240,255,222,253,105,255,45,7,167,2,22,253, +227,251,186,0,206,1,29,252,141,253,177,255,242,0,39,254,227,254,156,1,150,255,76,1,222,1,228,255,143,1,225,4, +180,1,16,253,110,252,127,255,183,0,232,254,7,1,113,255,168,254,188,255,193,0,129,2,211,255,214,255,221,254,35,255, +215,0,11,255,200,0,53,1,253,254,250,254,74,1,199,1,229,254,176,255,143,1,122,254,116,255,146,2,122,255,0,255, +128,0,4,255,42,0,126,2,255,255,211,254,130,0,196,255,39,255,246,254,243,1,1,3,211,255,42,254,217,254,78,1, +197,255,77,1,105,5,81,255,41,248,42,255,63,3,129,253,109,3,200,3,229,252,103,254,195,254,72,2,240,2,18,254, +147,254,51,1,140,0,50,255,242,3,236,8,127,3,190,252,14,250,248,249,140,255,118,254,174,253,100,0,103,254,156,2, +25,3,245,255,156,254,9,0,238,6,22,6,190,252,92,247,98,253,123,254,50,254,90,1,13,254,252,255,201,254,6,254, +85,0,60,0,107,0,116,255,79,6,144,1,112,249,244,255,51,1,173,254,242,2,206,6,91,251,31,247,96,0,108,2, +177,255,227,252,216,1,97,0,122,254,148,1,253,253,96,255,204,255,63,1,145,0,47,255,119,255,233,254,216,4,209,0, +152,3,41,6,250,251,63,252,96,252,204,255,24,255,217,251,134,2,16,1,94,253,91,1,57,3,59,253,98,253,33,0, +114,254,204,0,45,255,238,252,133,255,174,2,236,255,83,254,62,2,92,255,33,254,248,254,60,0,67,0,165,253,100,1, +42,2,126,1,235,253,141,255,127,4,143,248,157,255,142,10,78,253,118,255,22,7,14,7,212,0,193,246,157,252,62,0, +222,255,225,1,218,252,106,249,123,249,248,6,244,10,193,254,179,4,244,254,32,245,208,252,150,251,226,253,195,1,23,2, +56,1,72,255,20,2,128,253,151,255,223,3,6,253,28,253,4,2,184,1,220,255,35,0,159,253,20,254,29,255,178,254, +252,2,48,4,169,2,83,254,228,253,109,0,146,0,195,253,211,252,120,3,25,254,229,253,208,2,196,252,157,255,83,0, +94,0,191,1,249,255,92,2,214,255,42,253,18,255,104,253,153,254,202,5,143,3,72,255,250,254,117,253,118,254,46,255, +7,253,175,252,155,3,24,254,206,255,162,3,31,0,144,23,172,254,239,223,39,3,230,9,152,251,36,0,231,4,26,252, +195,248,86,1,36,2,212,2,215,253,69,253,12,253,23,0,198,3,101,252,67,2,4,2,183,254,115,0,249,255,67,255, +109,252,128,1,133,254,220,253,152,1,158,255,143,255,163,0,61,3,139,252,14,254,126,4,112,1,53,254,134,252,214,255, +239,254,20,0,42,2,45,255,153,255,52,2,156,0,190,0,114,4,22,253,133,0,183,3,158,253,248,255,78,254,85,7, +9,4,242,249,53,0,79,255,145,254,35,252,46,255,97,1,240,3,180,6,73,253,222,252,184,252,21,1,210,2,4,1, +105,1,144,253,225,4,250,252,182,251,128,5,242,251,160,251,224,255,6,255,224,4,131,11,187,255,237,249,30,0,190,251, +192,252,49,252,160,252,141,2,179,8,193,3,49,0,22,15,63,4,146,248,45,255,35,251,57,253,237,253,110,248,195,253, +99,4,181,253,206,250,92,254,164,253,243,255,233,254,114,253,125,1,106,1,47,253,91,255,20,0,246,252,234,255,85,255, +0,255,92,0,117,255,4,1,216,0,246,254,121,254,91,0,23,0,248,254,29,255,52,254,237,0,172,1,160,253,45,255, +123,0,34,255,115,0,136,254,36,0,154,1,208,254,233,254,16,0,182,0,169,254,223,0,215,255,150,254,162,1,253,255, +148,1,197,255,182,255,187,255,57,254,102,2,132,255,180,253,55,0,90,255,151,254,193,1,93,255,100,254,58,2,228,255, +173,0,182,254,63,1,85,1,207,253,152,255,113,254,171,10,254,6,206,248,167,250,117,253,162,255,145,252,71,2,132,1, +57,251,196,0,85,3,134,2,248,254,103,0,133,255,210,0,101,0,181,250,32,1,208,255,125,254,60,1,221,255,115,1, +96,255,119,255,83,1,143,1,201,255,99,255,164,0,98,255,70,0,83,1,189,255,183,253,215,0,49,0,83,254,211,2, +179,255,164,254,215,0,100,254,239,255,208,255,81,255,71,0,21,254,16,1,162,2,194,254,119,255,18,0,115,255,38,255, +70,0,200,255,94,255,21,1,198,249,8,255,92,9,64,0,255,253,162,1,116,255,201,255,41,1,191,254,211,254,220,0, +196,255,31,1,113,255,3,255,35,0,228,255,198,1,35,0,112,255,79,255,235,255,96,1,135,1,153,255,254,254,29,1, +177,255,90,255,176,254,214,255,69,255,219,255,125,0,88,253,192,5,245,2,216,252,216,255,182,254,243,1,98,255,187,255, +151,255,172,253,49,1,66,1,7,11,10,7,117,246,226,250,212,0,24,254,243,255,58,2,213,252,52,250,11,1,161,3, +80,0,218,0,232,0,67,255,217,254,26,0,89,1,115,255,23,0,126,0,155,0,66,1,225,255,240,255,1,255,178,255, +18,0,107,0,110,0,99,254,74,0,199,0,158,0,101,0,217,254,23,0,161,0,139,255,148,0,157,1,99,0,144,1, +16,2,41,0,138,254,146,255,43,1,243,255,222,1,216,255,140,252,117,255,201,0,233,0,227,255,230,254,177,255,203,255, +8,0,206,2,1,1,174,253,237,255,204,254,168,255,162,0,175,253,142,254,4,1,97,0,207,254,61,2,222,0,251,253, +88,255,188,0,7,1,148,253,108,0,65,1,8,255,131,255,86,0,94,0,151,253,96,1,255,254,158,2,118,4,178,248, +222,255,53,2,58,255,107,0,222,254,77,1,40,254,141,255,158,0,66,1,191,0,54,253,88,0,196,255,121,255,129,255, +77,0,243,255,158,254,90,0,228,255,185,1,95,0,223,255,123,0,252,255,119,0,165,254,215,0,39,1,211,0,254,255, +255,254,67,1,146,255,145,255,234,0,225,255,191,255,170,0,214,255,103,255,44,0,124,255,75,0,143,0,47,0,241,255, +190,0,106,0,254,254,217,255,108,255,199,0,161,0,2,0,24,1,130,255,188,255,44,0,112,0,161,255,209,255,75,1, +133,255,1,0,124,0,51,0,48,0,186,255,115,0,194,255,128,0,183,0,250,255,81,0,238,0,39,2,181,254,61,255, +141,2,85,255,8,255,140,255,51,0,192,0,233,254,138,0,167,0,210,255,159,0,31,0,231,255,35,0,248,255,231,255, +120,0,87,0,115,0,200,0,146,0,62,0,85,0,161,0,225,255,11,0,255,255,212,0,93,1,192,254,30,255,131,0, +253,255,46,0,75,0,72,0,190,255,156,255,158,0,129,0,141,255,241,255,172,0,62,0,15,0,215,255,202,255,82,0, +71,255,216,255,231,0,217,254,89,255,187,0,217,255,42,0,106,0,239,255,15,0,46,0,49,0,72,0,30,0,74,0, +66,0,190,255,83,0,77,0,135,255,145,255,157,255,252,255,249,255,175,255,200,255,222,255,30,0,13,0,1,0,247,255, +18,0,235,255,190,255,156,0,82,0,192,255,226,255,217,255,12,0,140,255,7,0,64,0,115,255,53,0,27,0,235,255, +139,0,19,0,209,255,17,0,14,0,246,255,39,0,210,255,206,255,235,255,172,255,171,0,79,0,218,255,136,0,166,255, +150,255,17,0,181,255,213,255,255,255,206,255,6,0,53,0,227,255,247,255,183,255,153,255,188,255,212,255,100,0,10,0, +5,0,74,0,9,0,50,0,175,255,107,255,220,255,188,255,200,255,71,0,13,0,213,255,104,0,116,0,60,0,77,0, +32,0,229,255,229,255,234,255,229,255,216,255,168,255,203,255,68,0,119,0,10,0,183,255,73,0,156,0,7,0,214,255, +55,0,239,255,213,255,80,0,222,255,83,255,210,255,28,0,206,255,254,255,67,0,38,0,240,255,231,255,32,0,7,0, +47,0,4,0,140,255,249,255,46,0,34,0,43,0,248,255,201,255,9,0,85,0,248,255,187,255,3,0,32,0,219,255, +74,0,71,0,147,255,243,255,29,0,13,0,189,255,151,255,5,0,226,255,252,255,10,0,25,0,15,0,159,255,20,0, +70,0,169,255,2,0,93,0,12,0,74,0,76,0,61,0,95,0,25,0,37,0,54,0,206,255,195,255,241,255,168,255, +250,255,75,0,254,255,55,0,14,0,200,255,246,255,174,255,231,255,90,0,13,0,213,255,250,255,163,0,52,0,98,255, +47,0,93,0,53,0,16,0,142,255,5,0,82,0,253,255,73,0,130,0,90,0,103,0,96,0,198,0,8,0,145,255, +193,0,22,0,153,255,98,0,135,0,36,0,171,255,97,0,95,0,124,255,176,0,34,0,92,255,249,0,208,255,130,0, +152,0,14,255,15,1,10,0,126,255,129,0,27,0,44,0,94,0,117,0,214,255,61,0,5,0,62,0,3,0,195,255, +52,0,176,255,255,0,220,255,251,255,50,1,188,255,8,0,155,0,118,0,110,255,12,0,127,0,57,0,67,0,216,255, +93,0,85,0,121,0,28,0,115,0,229,255,208,255,88,0,22,0,191,0,6,255,142,0,53,0,114,255,116,1,141,255, +103,0,73,0,197,255,68,0,144,0,116,0,168,255,109,0,149,255,19,1,200,255,126,255,26,1,241,254,181,0,33,0, +76,255,65,0,171,255,216,255,79,0,133,0,126,255,231,255,43,0,152,0,48,0,123,255,77,0,208,255,234,255,159,0, +56,0,98,255,68,0,95,0,230,255,143,255,192,255,37,0,131,255,140,0,133,255,245,255,65,0,164,255,147,0,179,255, +166,255,100,255,148,0,246,255,2,0,127,255,149,255,55,1,190,254,247,0,112,255,229,255,34,0,90,255,9,1,40,254, +184,1,29,253,200,7,207,5,137,238,55,2,178,4,204,251,42,4,151,252,235,253,92,2,225,1,199,255,13,255,38,255, +63,254,144,1,110,255,13,0,90,0,66,255,95,0,18,255,121,0,44,0,207,255,163,255,154,255,36,0,72,0,173,0, +180,254,1,0,211,0,138,255,87,0,233,255,76,255,180,0,187,0,88,254,167,255,18,1,137,255,151,254,13,0,109,0, +126,254,168,0,145,255,74,255,54,1,94,254,18,0,220,255,18,255,247,0,30,0,193,255,18,255,81,0,129,255,45,255, +0,1,36,255,83,255,72,0,28,0,194,255,53,255,4,0,150,0,231,255,142,255,8,0,215,255,248,255,93,255,74,255, +237,255,31,0,87,0,20,255,154,255,207,255,174,255,71,0,24,255,146,255,22,0,200,255,227,255,31,0,172,255,35,0, +183,0,238,254,253,255,211,255,35,255,207,0,144,255,92,255,30,0,91,0,237,255,149,255,27,0,134,255,227,255,136,255, +246,255,167,0,42,255,235,255,161,0,241,255,96,0,206,255,36,255,49,0,20,0,46,0,247,255,13,255,152,0,51,0, +158,255,90,0,223,255,222,255,163,255,38,0,3,0,185,255,247,255,225,255,87,0,221,255,57,0,229,255,70,255,27,0, +222,255,241,255,55,0,213,255,160,255,72,0,61,0,243,255,39,0,135,255,14,0,77,0,36,0,37,0,193,255,51,0, +37,0,13,0,176,255,146,255,104,0,96,0,211,255,253,255,90,0,242,255,57,0,28,0,162,255,68,0,73,0,238,255, +157,255,175,255,234,255,27,0,33,0,243,255,96,0,11,0,180,255,240,255,42,0,137,0,49,0,236,255,217,255,242,255, +56,0,209,255,235,255,86,0,233,255,17,0,243,255,133,255,35,0,224,255,44,0,117,0,155,255,5,0,45,0,32,0, +25,0,193,255,159,255,178,255,53,0,239,255,0,0,38,0,192,255,242,255,182,255,190,255,50,0,218,255,163,255,27,0, +40,0,246,255,18,0,26,0,49,0,17,0,220,255,31,0,51,0,193,255,251,255,23,0,157,255,237,255,208,255,157,255, +223,255,218,255,227,255,183,255,199,255,226,255,246,255,32,0,239,255,198,255,219,255,31,0,206,255,143,255,254,255,249,255, +185,255,138,255,201,255,66,0,221,255,225,255,33,0,176,255,39,0,144,0,67,0,17,0,153,255,171,255,15,0,197,255, +192,255,15,0,174,255,210,255,95,0,28,0,191,255,193,255,254,255,207,255,53,0,21,0,151,255,122,0,229,255,235,255, +136,0,179,255,17,0,55,0,224,255,246,255,246,255,24,0,66,0,209,255,175,255,109,0,245,255,11,0,85,0,127,255, +2,0,76,0,246,255,18,0,232,255,51,0,62,0,155,255,27,0,53,0,188,255,57,0,181,255,174,255,49,0,223,255, +70,0,6,0,111,255,8,0,106,0,255,255,74,0,91,0,211,255,64,0,44,0,5,0,33,0,228,255,16,0,55,0, +22,0,200,255,12,0,28,0,248,255,78,0,35,0,252,255,240,255,17,0,48,0,44,0,95,0,102,0,139,0,108,0, +51,0,33,0,0,0,13,0,207,255,239,255,54,0,214,255,240,255,7,0,214,255,32,0,62,0,64,0,16,0,5,0, +81,0,50,0,232,255,199,255,29,0,47,0,253,255,31,0,4,0,24,0,40,0,54,0,90,0,37,0,16,0,35,0, +44,0,6,0,23,0,255,255,116,255,226,255,126,0,211,255,159,255,30,0,4,0,20,0,29,0,223,255,253,255,83,0, +39,0,160,255,251,255,99,0,26,0,255,255,61,0,10,0,234,255,21,0,15,0,164,0,255,255,151,255,93,0,202,255, +245,255,250,255,252,255,120,0,252,255,63,0,45,0,47,0,11,0,183,255,170,0,43,0,226,255,109,0,132,255,211,255, +149,0,244,255,221,255,241,255,210,255,241,255,10,0,33,0,205,255,219,255,19,0,36,0,69,0,215,255,58,0,122,0, +195,255,2,0,89,0,239,255,193,255,28,0,17,0,171,255,234,255,38,0,226,255,196,255,250,255,44,0,255,255,221,255, +251,255,234,255,29,0,66,0,252,255,203,255,207,255,78,0,61,0,175,255,235,255,23,0,7,0,21,0,230,255,180,255, +192,255,211,255,191,255,170,255,227,255,4,0,13,0,43,0,238,255,2,0,51,0,241,255,217,255,220,255,230,255,10,0, +34,0,195,255,202,255,60,0,237,255,230,255,232,255,189,255,241,255,254,255,57,0,51,0,229,255,31,0,83,0,101,0, +21,0,143,255,23,0,255,255,148,255,43,0,240,255,115,0,194,0,163,255,224,255,59,0,232,255,193,255,250,255,46,0, +239,255,228,255,34,0,54,0,98,255,213,255,167,0,168,255,225,255,41,0,171,255,205,255,19,0,154,0,8,0,148,255, +35,0,228,255,229,255,32,0,201,255,184,255,229,255,68,0,31,0,205,255,86,0,228,255,157,255,120,0,9,0,161,255, +211,255,229,255,29,0,19,0,45,0,44,0,80,0,80,0,18,0,51,0,220,255,178,255,183,255,178,255,205,255,225,255, +49,0,15,0,25,0,36,0,230,255,184,255,159,255,57,0,90,0,38,0,246,255,16,0,106,0,248,255,21,0,21,0, +198,255,11,0,75,0,37,0,232,255,104,0,3,0,226,255,109,0,8,0,34,0,44,0,23,0,239,255,55,0,161,0, +27,0,37,0,32,0,54,0,27,0,243,255,36,0,244,255,150,0,22,0,191,255,129,0,38,0,110,0,43,0,173,255, +97,0,52,0,188,255,46,0,19,0,219,255,160,0,64,0,194,255,83,0,54,0,7,0,31,0,235,255,189,255,125,0, +160,0,214,255,49,0,105,0,37,0,73,0,108,0,227,255,220,255,130,0,61,0,74,0,44,0,15,0,120,0,43,0, +11,0,238,255,253,255,248,255,18,0,56,0,251,255,159,0,65,0,205,255,96,0,25,0,200,255,223,255,70,0,36,0, +252,255,96,0,62,0,250,255,246,255,242,255,225,255,64,0,12,0,2,0,94,0,189,255,68,0,128,0,191,255,236,255, +235,255,238,255,35,0,70,0,7,0,243,255,99,0,14,0,220,255,12,0,163,255,206,255,151,0,71,0,229,255,49,0, +39,0,12,0,13,0,35,0,248,255,237,255,241,255,254,255,125,0,244,255,172,255,44,0,203,255,178,255,29,0,42,0, +233,255,10,0,18,0,248,255,39,0,224,255,207,255,214,255,212,255,245,255,225,255,70,0,43,0,220,255,25,0,5,0, +230,255,188,255,201,255,207,255,120,255,192,255,13,0,230,255,49,0,46,0,218,255,5,0,174,255,161,255,8,0,235,255, +24,0,60,0,34,0,179,255,203,255,18,0,141,255,209,255,35,0,111,0,25,0,142,255,79,0,225,255,198,255,24,0, +125,255,190,255,204,255,151,255,213,255,6,0,250,255,29,0,5,0,206,255,12,0,156,255,173,255,53,0,243,255,198,255, +199,255,199,255,250,255,2,0,102,255,191,255,6,0,156,255,242,255,234,255,7,0,244,255,17,0,71,0,197,255,47,0, +16,0,241,255,56,0,229,255,32,0,216,255,132,255,232,255,214,255,163,255,29,0,91,0,214,255,188,255,5,0,53,0, +254,255,102,255,163,255,63,0,234,255,246,255,64,0,191,255,237,255,247,255,188,255,5,0,179,255,181,255,204,255,217,255, +118,0,225,255,159,255,120,0,216,255,135,255,104,0,26,0,246,255,55,0,160,255,253,255,83,0,209,255,19,0,196,255, +179,255,81,0,235,255,222,255,225,255,244,255,94,0,255,255,219,255,25,0,5,0,203,255,22,0,242,255,144,255,255,255, +220,255,10,0,63,0,214,255,248,255,249,255,236,255,252,255,5,0,208,255,241,255,46,0,196,255,239,255,8,0,252,255, +43,0,222,255,242,255,209,255,161,255,56,0,243,255,203,255,19,0,194,255,67,0,240,255,148,255,84,0,212,255,213,255, +250,255,181,255,19,0,33,0,32,0,255,255,66,0,31,0,218,255,93,0,180,255,132,255,58,0,0,0,252,255,240,255, +254,255,110,0,251,255,199,255,19,0,20,0,209,255,141,255,32,0,31,0,10,0,72,0,178,255,25,0,51,0,168,255, +56,0,248,255,164,255,113,0,15,0,164,255,64,0,242,255,243,255,34,0,199,255,227,255,205,255,194,255,11,0,60,0, +224,255,179,255,236,255,242,255,31,0,240,255,226,255,4,0,42,0,81,0,40,0,244,255,185,255,242,255,225,255,206,255, +204,255,104,255,223,255,97,0,227,255,151,255,96,0,19,0,101,255,253,255,15,0,10,0,13,0,2,0,253,255,228,255, +238,255,231,255,28,0,230,255,22,0,10,0,172,255,43,0,183,255,85,255,234,255,17,0,180,255,214,255,49,0,206,255, +174,255,187,255,20,0,38,0,104,255,211,255,63,0,247,255,25,0,212,255,235,255,57,0,185,255,174,255,20,0,0,0, +160,255,246,255,50,0,157,255,243,255,64,0,241,255,211,255,200,255,8,0,236,255,176,255,242,255,32,0,199,255,180,255, +16,0,15,0,252,255,200,255,174,255,244,255,69,0,47,0,242,255,227,255,232,255,60,0,14,0,179,255,238,255,63,0, +251,255,218,255,30,0,185,255,249,255,40,0,245,255,1,0,172,255,248,255,42,0,3,0,163,255,253,255,129,0,248,255, +83,0,18,0,191,255,49,0,49,0,95,0,235,255,235,255,46,0,212,255,86,0,135,0,217,255,255,255,42,0,236,255, +50,0,6,0,253,255,85,0,68,0,19,0,13,0,58,0,253,255,59,0,116,0,226,255,230,255,53,0,42,0,251,255, +21,0,78,0,31,0,239,255,44,0,60,0,25,0,14,0,44,0,88,0,67,0,146,0,2,0,178,255,150,0,251,255, +201,255,62,0,17,0,253,255,78,0,110,0,159,255,94,0,140,0,203,255,129,0,24,0,235,255,44,0,26,0,86,0, +13,0,69,0,49,0,214,255,64,0,68,0,227,255,21,0,72,0,233,255,234,255,49,0,31,0,10,0,26,0,0,0, +54,0,93,0,232,255,230,255,18,0,14,0,253,255,251,255,249,255,25,0,83,0,54,0,42,0,181,255,231,255,29,0, +135,255,178,255,166,255,245,255,74,0,52,0,13,0,218,255,81,0,206,255,155,255,71,0,37,0,181,255,149,255,17,0, +3,0,199,255,23,0,252,255,244,255,56,0,232,255,59,0,79,0,86,255,235,255,35,0,161,255,232,255,226,255,187,255, +150,255,214,255,238,255,18,0,243,255,204,255,80,0,216,255,244,255,95,0,153,255,149,255,2,0,122,255,210,255,117,0, +207,255,36,0,56,0,176,255,0,0,15,0,202,255,183,255,15,0,230,255,86,0,131,0,192,255,43,0,104,0,5,0, +142,255,160,255,26,0,21,0,236,255,175,255,184,255,51,0,65,0,178,255,11,0,28,0,230,255,53,0,135,255,150,255, +54,0,11,0,242,255,128,0,68,0,137,255,94,0,28,0,108,255,29,0,1,0,197,255,1,0,223,255,24,0,125,0, +253,255,225,255,78,0,72,0,196,255,196,255,115,0,238,255,166,255,63,0,91,0,29,0,3,0,44,0,1,0,44,0, +19,0,159,255,9,0,114,0,50,0,28,0,73,0,28,0,14,0,237,255,245,255,1,0,252,255,25,0,240,255,101,0, +40,0,152,255,189,255,12,0,130,0,234,255,168,255,10,0,51,0,90,0,17,0,230,255,57,0,81,0,171,255,208,255, +57,0,242,255,187,255,221,255,112,0,48,0,1,0,64,0,38,0,248,255,225,255,67,0,26,0,238,255,5,0,12,0, +84,0,40,0,243,255,52,0,110,0,4,0,248,255,0,0,228,255,127,0,60,0,181,255,12,0,89,0,82,0,49,0, +123,255,175,255,178,0,208,255,223,255,97,0,193,255,29,0,73,0,49,0,55,0,59,0,28,0,60,0,1,0,208,255, +137,0,13,0,6,0,38,0,227,255,123,0,89,0,224,255,242,255,99,0,13,0,25,0,91,0,54,0,68,0,219,255, +92,0,46,0,16,0,24,0,161,255,96,0,224,255,184,255,5,0,33,0,110,0,181,255,9,0,110,0,117,0,57,0, +230,255,49,0,0,0,7,0,200,255,234,255,75,0,12,0,92,0,43,0,51,0,88,0,197,255,77,0,111,0,5,0, +75,0,39,0,5,0,207,255,237,255,81,0,36,0,29,0,87,0,47,0,235,255,120,0,60,0,28,0,97,0,148,255, +223,255,38,0,16,0,217,255,81,0,76,0,96,255,69,2,233,1,158,254,197,254,228,254,232,0,208,0,212,254,66,0, +62,0,28,0,117,0,94,255,137,255,222,255,253,255,60,0,251,255,21,0,1,0,42,0,242,255,92,255,26,0,243,255, +179,255,18,0,228,255,68,0,241,255,12,0,53,0,185,255,69,0,200,255,173,255,91,0,7,0,154,255,164,255,97,0, +30,0,226,255,232,255,196,255,99,0,228,255,226,255,6,0,154,255,213,255,157,255,238,255,35,0,236,255,233,255,239,255, +253,255,242,255,203,255,128,255,61,0,172,255,125,255,190,0,178,255,223,255,255,255,167,255,112,0,147,255,215,255,7,0, +151,255,211,255,30,0,50,1,175,255,192,254,68,0,178,255,146,255,22,0,69,255,98,255,66,0,73,0,11,0,191,255, +209,255,4,0,221,255,42,0,161,255,147,255,61,0,161,255,176,255,254,255,253,255,10,0,220,255,221,255,215,255,186,255, +127,255,255,255,47,0,122,255,157,255,39,0,32,0,239,255,240,255,192,255,10,0,214,255,91,255,32,0,243,255,165,255, +43,0,240,255,173,255,208,255,15,0,6,0,217,255,177,255,136,255,221,255,223,255,152,255,169,255,187,255,226,255,206,255, +210,255,222,255,157,255,151,255,215,255,242,255,178,255,224,255,173,255,182,255,87,0,203,255,139,255,211,255,51,0,1,0, +161,255,232,255,147,255,13,0,24,0,49,255,125,255,233,255,192,255,185,255,239,255,181,255,179,255,218,255,48,0,16,0, +173,255,11,0,132,255,230,255,45,0,79,255,221,255,225,255,147,255,45,0,2,0,150,255,0,0,168,255,188,255,93,0, +186,255,23,0,34,0,162,255,35,0,50,0,195,255,117,255,251,255,232,255,176,255,47,0,226,255,171,255,245,255,226,255, +177,255,42,0,69,0,158,255,187,255,22,0,213,255,228,255,24,0,188,255,215,255,36,0,1,0,44,0,1,0,180,255, +15,0,230,255,241,255,45,0,175,255,253,255,3,0,247,255,50,0,17,0,71,0,206,255,187,255,193,255,71,0,180,0, +145,255,165,255,243,255,60,0,11,0,180,255,102,0,14,0,221,255,2,0,32,0,10,0,243,255,8,0,197,255,21,0, +8,0,10,0,253,255,11,0,54,0,228,255,123,0,95,0,231,255,42,0,41,0,240,255,247,255,57,0,205,255,209,255, +36,0,199,255,194,255,219,255,24,0,65,0,168,255,223,255,38,0,77,0,177,0,95,255,229,255,177,0,105,255,19,0, +65,0,197,255,244,255,8,0,29,0,224,255,224,255,153,255,22,0,106,0,209,255,13,0,35,0,216,255,62,0,65,0, +129,255,238,255,203,255,138,255,112,0,250,255,208,255,17,0,212,255,237,255,233,255,207,255,224,255,9,0,188,255,8,0, +158,0,48,0,233,255,73,0,44,0,185,255,216,255,165,255,207,255,237,255,109,255,28,0,81,0,22,0,49,0,157,255, +180,255,250,255,221,255,188,255,161,255,30,0,25,0,27,0,133,0,38,0,253,255,29,0,217,255,217,255,15,0,164,255, +240,255,152,0,45,0,52,0,27,0,38,0,67,0,203,255,236,255,230,255,254,255,36,0,70,0,7,0,24,0,172,0, +150,255,212,255,141,0,207,255,240,255,6,0,36,0,68,0,45,0,69,0,1,0,15,0,93,0,238,255,244,255,107,0, +5,0,10,0,63,0,100,0,97,0,252,255,32,0,18,0,26,0,16,0,202,255,225,255,27,0,42,0,34,0,142,0, +67,0,17,0,80,0,249,255,21,0,255,255,244,255,65,0,50,0,46,0,61,0,93,0,69,0,35,0,44,0,0,0, +230,255,30,0,62,0,12,0,42,0,84,0,41,0,118,0,53,0,217,255,38,0,244,255,79,0,18,0,193,255,122,0, +249,255,192,255,101,0,72,0,192,255,218,255,239,255,199,255,3,0,11,0,80,0,180,255,196,255,166,0,208,255,223,255, +43,0,168,255,253,255,58,0,214,255,25,0,40,0,114,255,218,255,3,0,230,255,231,255,151,255,31,0,54,0,180,255, +210,255,47,0,187,255,214,255,111,0,246,255,7,0,80,0,27,0,27,0,23,0,158,255,177,255,38,0,210,255,177,255, +207,255,33,0,253,255,203,255,215,255,183,255,69,0,18,0,228,255,53,0,248,255,215,255,3,0,205,255,153,255,93,0, +226,255,140,255,30,0,229,255,17,0,222,255,36,0,49,0,168,255,27,0,20,0,10,0,231,255,125,255,15,0,74,0, +201,255,214,255,172,255,178,255,45,0,242,255,248,255,243,255,202,255,254,255,27,0,35,0,235,255,236,255,222,255,222,255, +59,0,72,0,2,0,21,0,58,0,213,255,182,255,228,255,255,255,206,255,240,255,68,0,236,255,73,0,145,0,229,255, +162,255,222,255,233,255,25,0,98,0,198,255,248,255,169,0,6,0,218,255,2,0,4,0,58,0,205,255,28,0,105,0, +181,255,24,0,93,0,15,0,30,0,12,0,247,255,9,0,98,0,38,0,12,0,2,0,248,255,82,0,201,255,50,0, +79,0,178,255,69,0,248,255,199,255,60,0,36,0,255,255,251,255,37,0,44,0,253,255,11,0,31,0,244,255,37,0, +28,0,245,255,39,0,9,0,27,0,252,255,233,255,97,0,56,0,244,255,36,0,35,0,30,0,20,0,41,0,88,0, +0,0,3,0,224,255,198,255,113,0,32,0,243,255,6,0,186,255,69,0,80,0,236,255,22,0,19,0,247,255,29,0, +31,0,9,0,2,0,218,255,40,0,121,0,30,0,236,255,20,0,87,0,54,0,206,255,19,0,106,0,75,0,248,255, +254,255,41,0,239,255,71,0,79,0,175,255,191,255,43,0,51,0,18,0,93,0,57,0,28,0,9,0,225,255,90,0, +36,0,252,255,33,0,65,0,11,0,224,255,145,0,224,255,186,255,100,0,222,255,19,0,50,0,202,255,240,255,66,0, +106,0,44,0,215,255,32,0,250,255,194,255,84,0,251,255,196,255,20,0,241,255,83,0,192,0,10,0,168,255,94,0, +20,0,20,0,42,0,155,255,245,255,22,0,33,0,220,255,6,0,104,0,203,255,205,255,219,255,215,255,11,0,41,0, +19,0,17,0,59,0,28,0,87,0,9,0,161,255,221,255,57,0,57,0,166,255,242,255,57,0,7,0,53,0,42,0, +5,0,35,0,25,0,241,255,96,0,68,0,0,0,97,0,232,255,13,0,134,0,153,255,216,255,82,0,155,255,199,255, +10,0,53,0,50,0,234,255,44,0,17,0,12,0,240,255,230,255,39,0,8,0,48,0,47,0,19,0,254,255,201,255, +26,0,94,0,206,255,161,255,5,0,244,255,5,0,2,0,68,0,91,0,254,255,71,0,53,0,223,255,187,255,31,0, +24,0,118,255,5,0,31,0,197,255,70,0,68,0,169,255,8,0,78,0,198,255,236,255,179,255,225,255,118,0,192,255, +162,255,124,0,107,0,161,255,228,255,12,0,203,255,28,0,222,255,212,255,231,255,207,255,49,0,11,0,205,255,238,255, +216,255,251,255,31,0,209,255,206,255,19,0,236,255,163,255,253,255,45,0,216,255,27,0,234,255,200,255,116,0,226,255, +145,255,36,0,201,255,220,255,21,0,219,255,19,0,181,255,152,255,53,0,31,0,196,255,196,255,5,0,19,0,7,0, +222,255,226,255,247,255,160,255,251,255,4,0,145,255,203,255,248,255,0,0,220,255,13,0,208,255,163,255,72,0,214,255, +170,255,233,255,220,255,254,255,183,255,255,255,7,0,225,255,241,255,205,255,15,0,192,255,230,255,28,0,216,255,30,0, +4,0,64,0,18,0,158,255,232,255,226,255,194,255,170,255,224,255,244,255,187,255,164,255,224,255,246,255,165,255,13,0, +2,0,255,255,99,0,240,255,149,255,165,255,254,255,200,255,224,255,231,255,139,255,120,0,51,0,145,255,9,0,241,255, +3,0,10,0,230,255,238,255,240,255,18,0,233,255,198,255,236,255,221,255,238,255,229,255,199,255,242,255,226,255,245,255, +9,0,30,0,237,255,171,255,56,0,4,0,185,255,226,255,239,255,44,0,214,255,15,0,74,0,248,255,8,0,204,255, +4,0,53,0,220,255,224,255,188,255,251,255,94,0,7,0,216,255,241,255,46,0,247,255,179,255,4,0,226,255,52,0, +118,0,203,255,186,255,254,255,19,0,12,0,190,255,197,255,81,0,63,0,2,0,10,0,212,255,16,0,3,0,234,255, +58,0,252,255,202,255,53,0,48,0,199,255,70,0,207,255,93,255,87,0,36,0,225,255,245,255,243,255,39,0,64,0, +57,0,238,255,67,0,13,0,195,255,16,0,224,255,34,0,253,255,214,255,95,0,35,0,215,255,44,0,48,0,17,0, +13,0,205,255,28,0,40,0,189,255,5,0,16,0,2,0,81,0,62,0,207,255,201,255,15,0,243,255,230,255,29,0, +19,0,1,0,15,0,19,0,23,0,210,255,230,255,14,0,193,255,41,0,62,0,218,255,245,255,21,0,21,0,179,255, +187,255,253,255,175,255,152,255,6,0,81,0,27,0,6,0,233,255,11,0,33,0,147,255,164,255,236,255,252,255,234,255, +200,255,246,255,230,255,225,255,238,255,246,255,13,0,201,255,170,255,238,255,33,0,11,0,240,255,35,0,81,0,238,255, +255,255,79,0,164,255,232,255,99,0,229,255,242,255,209,255,237,255,57,0,45,0,93,0,222,255,187,255,22,0,242,255, +8,0,233,255,240,255,24,0,226,255,8,0,7,0,7,0,251,255,150,255,32,0,86,0,136,255,211,255,94,0,26,0, +1,0,231,255,252,255,33,0,22,0,36,0,200,255,211,255,240,255,211,255,67,0,46,0,32,0,21,0,254,255,96,0, +21,0,228,255,28,0,4,0,220,255,44,0,57,0,14,0,108,0,37,0,74,0,55,0,150,255,52,0,73,0,25,0, +250,255,237,255,88,0,66,0,10,0,203,255,20,0,17,0,225,255,114,0,93,0,9,0,43,0,116,0,60,0,29,0, +41,0,234,255,70,0,104,0,103,0,20,0,241,255,162,0,80,0,16,0,74,0,31,0,16,0,42,0,41,0,24,0, +76,0,38,0,62,0,52,0,182,255,34,0,42,0,19,0,87,0,95,0,169,0,57,0,15,0,117,0,252,255,232,255, +80,0,35,0,18,0,138,0,95,0,7,0,111,0,70,0,24,0,46,0,224,255,11,0,19,0,33,0,118,0,8,0, +232,255,93,0,62,0,238,255,51,0,72,0,227,255,18,0,35,0,0,0,97,0,4,0,212,255,62,0,226,255,53,0, +130,0,232,255,252,255,244,255,233,255,76,0,57,0,219,255,2,0,90,0,5,0,22,0,24,0,197,255,31,0,4,0, +185,255,217,255,27,0,6,0,242,255,87,0,242,255,221,255,46,0,254,255,20,0,3,0,15,0,45,0,5,0,227,255, +227,255,237,255,185,255,214,255,23,0,252,255,204,255,188,255,205,255,21,0,254,255,164,255,247,255,183,255,179,255,41,0, +141,255,203,255,14,0,208,255,117,0,245,255,87,255,11,0,209,255,130,255,255,255,165,255,179,255,88,0,237,255,170,255, +36,0,49,0,196,255,201,255,244,255,179,255,167,255,224,255,209,255,188,255,235,255,204,255,154,255,180,255,215,255,204,255, +184,255,239,255,188,255,200,255,64,0,235,255,230,255,251,255,121,255,178,255,252,255,180,255,205,255,223,255,251,255,42,0, +0,0,18,0,243,255,164,255,183,255,30,0,34,0,220,255,66,0,32,0,246,255,15,0,201,255,3,0,243,255,245,255, +212,255,167,255,33,0,26,0,13,0,161,255,154,255,22,0,193,255,18,0,20,0,188,255,40,0,4,0,191,255,23,0, +60,0,248,255,47,0,8,0,188,255,102,0,66,0,19,0,24,0,208,255,76,0,234,255,174,255,39,0,231,255,51,0, +56,0,215,255,16,0,49,0,22,0,238,255,254,255,209,255,187,255,53,0,14,0,130,255,226,255,60,0,236,255,4,0, +13,0,250,255,222,255,249,255,80,0,161,255,210,255,32,0,199,255,88,0,235,255,43,0,117,0,158,255,110,0,29,0, +94,255,9,0,218,255,223,255,3,0,215,255,251,255,0,0,87,0,14,0,119,255,23,0,30,0,234,255,38,0,175,255, +254,255,81,0,251,255,4,0,20,0,42,0,226,255,22,0,39,0,195,255,47,0,49,0,30,0,8,0,254,255,102,0, +70,0,54,0,17,0,253,255,5,0,227,255,55,0,48,0,248,255,246,255,21,0,74,0,246,255,224,255,48,0,42,0, +46,0,25,0,253,255,52,0,41,0,40,0,43,0,234,255,35,0,67,0,14,0,48,0,251,255,194,255,99,0,43,0, +114,255,253,255,52,0,30,0,114,0,88,0,43,0,11,0,22,0,33,0,249,255,23,0,33,0,7,0,67,0,38,0, +229,255,115,0,40,0,161,255,158,0,89,0,113,255,74,0,83,0,175,255,59,0,63,0,178,255,254,255,82,0,251,255, +231,255,48,0,251,255,0,0,71,0,241,255,178,255,19,0,60,0,240,255,41,0,27,0,202,255,73,0,31,0,195,255, +47,0,28,0,204,255,11,0,44,0,0,0,252,255,236,255,227,255,246,255,6,0,253,255,222,255,26,0,92,0,255,255, +227,255,70,0,184,255,139,255,41,0,228,255,218,255,244,255,2,0,15,0,185,255,243,255,239,255,213,255,217,255,150,255, +239,255,9,0,159,255,208,255,16,0,162,255,167,255,246,255,176,255,204,255,27,0,248,255,166,255,162,255,239,255,254,255, +181,255,148,255,242,255,219,255,205,255,49,0,187,255,197,255,100,0,211,255,191,255,42,0,166,255,227,255,43,0,137,255, +131,255,196,255,233,255,173,255,177,255,31,0,186,255,159,255,5,0,251,255,163,255,187,255,11,0,207,255,195,255,176,255, +208,255,1,0,140,255,195,255,35,0,235,255,234,255,225,255,171,255,241,255,30,0,191,255,28,0,45,0,178,255,34,0, +3,0,184,255,236,255,185,255,227,255,207,255,180,255,235,255,188,255,233,255,245,255,29,0,7,0,134,255,0,0,241,255, +217,255,5,0,198,255,36,0,255,255,22,0,90,0,192,255,232,255,32,0,182,255,186,255,2,0,205,255,151,255,214,255, +228,255,231,255,54,0,49,0,198,255,178,255,233,255,36,0,208,255,75,255,234,255,98,0,1,0,228,255,48,0,41,0, +180,255,229,255,34,0,221,255,187,255,229,255,211,255,131,255,45,0,104,0,170,255,207,255,10,0,29,0,27,0,183,255, +190,255,179,255,174,255,239,255,232,255,24,0,43,0,15,0,255,255,191,255,187,255,208,255,3,0,11,0,252,255,25,0, +10,0,26,0,8,0,23,0,240,255,197,255,44,0,183,255,187,255,94,0,244,255,178,255,251,255,19,0,247,255,52,0, +51,0,159,255,163,255,51,0,48,0,220,255,24,0,233,255,197,255,97,0,62,0,173,255,189,255,68,0,51,0,225,255, +48,0,25,0,221,255,1,0,8,0,40,0,20,0,204,255,16,0,67,0,235,255,35,0,114,0,211,255,226,255,120,0, +22,0,39,0,68,0,236,255,53,0,36,0,5,0,22,0,10,0,15,0,249,255,49,0,248,255,226,255,56,0,14,0, +12,0,233,255,235,255,69,0,10,0,186,255,18,0,69,0,10,0,1,0,248,255,20,0,5,0,5,0,46,0,222,255, +240,255,38,0,11,0,208,255,16,0,69,0,146,255,249,255,119,0,230,255,211,255,227,255,255,255,247,255,173,255,184,255, +32,0,42,0,194,255,237,255,247,255,190,255,239,255,7,0,234,255,208,255,33,0,35,0,209,255,217,255,154,255,188,255, +217,255,178,255,251,255,180,255,214,255,6,0,106,255,190,255,6,0,173,255,254,255,40,0,109,255,162,255,132,0,236,255, +152,255,246,255,223,255,231,255,219,255,226,255,242,255,12,0,235,255,176,255,48,0,30,0,176,255,63,0,83,0,171,255, +242,255,71,0,239,255,196,255,171,255,221,255,242,255,210,255,27,0,39,0,242,255,225,255,192,255,219,255,85,0,48,0, +216,255,197,255,232,255,82,0,247,255,32,0,37,0,149,255,81,0,56,0,228,255,28,0,209,255,4,0,8,0,239,255, +216,255,228,255,9,0,210,255,26,0,255,255,174,255,2,0,36,0,231,255,192,255,48,0,40,0,224,255,148,0,100,0, +220,255,84,0,21,0,222,255,34,0,221,255,238,255,97,0,126,0,8,0,221,255,102,0,69,0,246,255,53,0,241,255, +231,255,82,0,38,0,69,0,6,0,207,255,134,0,92,0,6,0,237,255,18,0,70,0,247,255,36,0,17,0,13,0, +219,255,244,255,153,0,213,255,230,255,93,0,17,0,41,0,0,0,43,0,17,0,245,255,44,0,0,0,39,0,253,255, +218,255,61,0,56,0,22,0,251,255,203,255,43,0,61,0,173,255,245,255,21,0,187,255,34,0,41,0,224,255,45,0, +33,0,216,255,12,0,31,0,224,255,14,0,17,0,151,255,207,255,1,0,2,0,31,0,178,255,17,0,92,0,231,255, +228,255,239,255,35,0,237,255,197,255,252,255,222,255,225,255,209,255,9,0,2,0,146,255,5,0,57,0,185,255,6,0, +5,0,173,255,72,0,231,255,131,255,3,0,222,255,12,0,22,0,180,255,209,255,247,255,229,255,41,0,243,255,139,255, +9,0,203,255,246,255,67,0,167,255,232,255,171,255,118,255,15,0,232,255,120,255,250,255,237,255,91,255,23,0,187,255, +204,255,98,0,109,255,219,255,8,0,193,255,232,255,205,255,15,0,143,255,226,255,12,0,121,255,36,0,231,255,195,255, +36,0,124,255,206,255,127,0,48,0,241,255,248,255,241,255,187,255,10,0,109,0,192,255,158,255,70,0,24,0,196,255, +5,0,233,255,205,255,23,0,220,255,248,255,54,0,204,255,222,255,250,255,237,255,218,255,176,255,8,0,248,255,180,255, +231,255,249,255,239,255,242,255,6,0,228,255,224,255,9,0,10,0,228,255,135,255,242,255,44,0,224,255,20,0,233,255, +20,0,11,0,181,255,11,0,250,255,210,255,172,255,242,255,65,0,186,255,218,255,85,0,36,0,226,255,14,0,17,0, +29,0,25,0,171,255,32,0,44,0,204,255,71,0,27,0,202,255,249,255,31,0,248,255,228,255,36,0,240,255,33,0, +20,0,190,255,56,0,176,255,214,255,132,0,180,255,18,0,46,0,164,255,66,0,26,0,248,255,46,0,207,255,229,255, +31,0,43,0,18,0,232,255,72,0,66,0,237,255,70,0,18,0,224,255,21,0,215,255,9,0,40,0,9,0,20,0, +8,0,65,0,66,0,16,0,29,0,245,255,230,255,67,0,39,0,5,0,98,0,67,0,65,0,122,0,12,0,15,0, +135,0,220,255,182,255,122,0,234,255,193,255,93,0,39,0,9,0,33,0,29,0,37,0,19,0,241,255,244,255,234,255, +243,255,47,0,81,0,53,0,32,0,58,0,235,255,81,0,155,0,204,255,27,0,57,0,248,255,112,0,75,0,23,0, +25,0,3,0,55,0,67,0,254,255,10,0,37,0,17,0,253,255,20,0,62,0,253,255,87,0,79,0,146,255,77,0, +144,0,21,0,61,0,18,0,30,0,9,0,254,255,77,0,163,255,203,255,96,0,219,255,244,255,51,0,45,0,243,255, +9,0,114,0,9,0,29,0,15,0,177,255,31,0,119,0,26,0,137,255,230,255,47,0,39,0,46,0,252,255,240,255, +225,255,47,0,13,0,223,255,82,0,14,0,231,255,152,0,143,0,224,255,9,0,48,0,185,255,164,255,73,0,47,0, +139,255,19,0,240,255,158,255,67,0,49,0,129,255,182,255,112,0,228,255,165,255,21,0,27,0,255,255,235,255,11,0, +235,255,30,0,153,255,154,255,109,0,193,255,241,255,28,0,152,255,3,0,0,0,139,255,212,255,250,255,139,255,0,0, +227,255,162,255,232,255,98,255,197,255,42,0,250,255,218,255,121,255,176,255,26,0,6,0,206,255,200,255,199,255,26,0, +31,0,160,255,211,255,22,0,190,255,192,255,7,0,146,255,168,255,20,0,241,255,232,255,173,255,252,255,243,255,160,255, +251,255,236,255,229,255,248,255,18,0,224,255,207,255,83,0,225,255,207,255,82,0,185,255,128,255,18,0,29,0,186,255, +137,255,215,255,57,0,8,0,147,255,188,255,3,0,170,255,219,255,251,255,147,255,239,255,211,255,146,255,80,0,41,0, +158,255,19,0,17,0,214,255,231,255,205,255,39,0,232,255,111,255,236,255,3,0,168,255,214,255,243,255,164,255,245,255, +1,0,177,255,43,0,18,0,154,255,238,255,244,255,127,255,222,255,250,255,169,255,224,255,178,255,44,0,61,0,146,255, +43,0,190,255,66,255,44,0,188,255,151,255,102,0,214,255,216,255,66,0,234,255,18,0,193,255,140,255,29,0,20,0, +174,255,173,255,0,0,67,0,50,0,199,255,202,255,250,255,187,255,203,255,35,0,235,255,166,255,219,255,225,255,80,0, +43,0,152,255,14,0,242,255,214,255,21,0,240,255,189,255,222,255,40,0,217,255,178,255,152,255,223,255,30,0,219,255, +233,255,179,255,22,0,97,0,252,255,224,255,176,255,238,255,93,0,18,0,163,255,199,255,212,255,221,255,8,0,52,0, +15,0,181,255,72,0,22,0,191,255,7,0,221,255,247,255,235,255,60,0,244,255,240,255,113,0,198,255,66,0,72,0, +181,255,253,255,203,255,75,0,100,0,175,255,220,255,79,0,46,0,3,0,94,0,9,0,161,255,105,0,73,0,119,255, +13,0,108,0,210,255,188,255,16,0,56,0,31,0,228,255,250,255,230,255,195,255,51,0,225,255,171,255,36,0,197,255, +215,255,72,0,231,255,105,255,32,0,93,0,135,255,69,0,3,0,95,255,97,0,67,0,14,0,254,255,211,255,10,0, +6,0,15,0,7,0,249,255,243,255,77,0,233,255,105,255,9,0,160,255,204,255,43,0,118,255,36,0,45,0,156,255, +244,255,203,255,245,255,43,0,235,255,15,0,4,0,171,255,253,255,83,0,180,255,173,255,23,0,187,255,202,255,63,0, +16,0,220,255,217,255,192,255,89,0,27,0,125,255,67,0,241,255,248,255,103,0,118,255,1,0,34,0,104,255,227,255, +196,255,201,255,243,255,193,255,81,0,33,0,120,255,254,255,68,0,181,255,208,255,54,0,189,255,109,255,240,255,83,0, +26,0,223,255,234,255,215,255,18,0,19,0,207,255,250,255,237,255,39,0,49,0,215,255,224,255,220,255,27,0,70,0, +72,0,18,0,232,255,78,0,10,0,227,255,85,0,18,0,216,255,69,0,54,0,192,255,13,0,54,0,205,255,35,0, +119,0,252,255,230,255,43,0,51,0,35,0,12,0,41,0,4,0,238,255,54,0,22,0,35,0,75,0,224,255,249,255, +77,0,239,255,255,255,3,0,244,255,134,0,43,0,169,255,64,0,144,0,0,0,250,255,95,0,35,0,58,0,71,0, +41,0,34,0,13,0,52,0,19,0,67,0,69,0,238,255,25,0,55,0,52,0,49,0,81,0,93,0,90,0,27,0, +45,0,105,0,252,255,60,0,44,0,48,0,152,0,213,255,234,255,100,0,16,0,251,255,37,0,236,255,225,255,165,0, +54,0,187,255,108,0,226,255,189,255,107,0,216,255,220,255,53,0,152,255,248,255,90,0,191,255,212,255,31,0,235,255, +228,255,29,0,52,0,44,0,227,255,207,255,20,0,25,0,40,0,10,0,220,255,246,255,34,0,62,0,18,0,228,255, +224,255,9,0,46,0,42,0,211,255,180,255,53,0,239,255,158,255,254,255,0,0,193,255,218,255,31,0,231,255,228,255, +4,0,226,255,221,255,7,0,78,0,223,255,224,255,67,0,21,0,54,0,25,0,214,255,227,255,20,0,27,0,11,0, +232,255,203,255,48,0,5,0,222,255,201,255,164,255,86,0,51,0,177,255,211,255,7,0,32,0,245,255,183,255,169,255, +245,255,19,0,55,0,29,0,219,255,218,255,249,255,90,0,206,255,167,255,0,0,178,255,218,255,239,255,238,255,194,255, +230,255,87,0,250,255,154,255,184,255,81,0,129,0,50,0,179,255,131,255,30,0,41,0,205,255,225,255,30,0,180,255, +163,255,27,0,205,255,233,255,26,0,252,255,214,255,191,255,30,0,16,0,13,0,222,255,130,255,35,0,112,0,240,255, +219,255,237,255,17,0,51,0,204,255,210,255,15,0,37,0,212,255,150,255,119,0,41,0,141,255,49,0,32,0,206,255, +7,0,17,0,223,255,30,0,8,0,181,255,31,0,62,0,185,255,196,255,104,0,50,0,211,255,7,0,67,0,28,0, +161,255,64,0,96,0,174,255,251,255,98,0,65,0,211,255,232,255,34,0,14,0,245,255,224,255,219,255,33,0,170,0, +214,255,171,255,100,0,251,255,101,0,30,0,144,255,40,0,50,0,75,0,29,0,3,0,37,0,11,0,44,0,198,255, +244,255,123,0,211,255,177,255,65,0,236,255,7,0,129,0,221,255,221,255,54,0,11,0,57,0,180,255,154,255,86,0, +19,0,14,0,66,0,220,255,15,0,11,0,236,255,77,0,240,255,163,255,226,255,91,0,80,0,22,0,136,0,2,0, +33,0,164,0,250,255,56,0,54,0,212,255,15,0,36,0,194,255,217,255,134,0,44,0,19,0,246,255,254,255,177,0, +7,0,205,255,44,0,6,0,32,0,81,0,104,0,51,0,51,0,88,0,66,0,35,0,69,0,76,0,3,0,51,0, +106,0,54,0,31,0,27,0,252,255,39,0,30,0,2,0,63,0,53,0,113,0,72,0,238,255,104,0,106,0,226,255, +35,0,137,0,210,255,202,255,107,0,73,0,10,0,51,0,61,0,184,255,109,0,123,0,154,255,68,0,68,0,21,0, +86,0,62,0,34,0,24,0,114,0,82,0,6,0,24,0,14,0,237,255,83,0,119,0,32,0,17,0,228,255,50,0, +36,0,4,0,95,0,28,0,16,0,8,0,0,0,2,0,46,0,87,0,243,255,17,0,110,0,107,0,187,255,220,255, +173,0,255,255,241,255,126,0,227,255,10,0,106,0,207,255,63,0,106,0,192,255,45,0,23,0,4,0,87,0,229,255, +0,0,30,0,162,255,254,255,49,0,110,255,17,0,121,0,130,255,29,0,52,0,111,255,71,0,83,0,175,255,22,0, +0,0,198,255,7,0,250,255,8,0,38,0,210,255,228,255,99,0,227,255,148,255,4,0,233,255,31,0,141,0,55,0, +205,255,84,0,37,0,101,255,26,0,60,0,199,255,204,255,228,255,5,0,242,255,22,0,4,0,15,0,211,255,152,255, +85,0,102,0,212,255,188,255,31,0,235,255,179,255,74,0,47,0,203,255,206,255,240,255,17,0,32,0,63,0,12,0, +102,255,101,255,58,0,104,0,250,255,216,255,36,0,39,0,240,255,59,0,237,255,187,255,49,0,197,255,215,255,99,0, +225,255,8,0,59,0,206,255,10,0,239,255,215,255,215,255,244,255,24,0,195,255,50,0,5,0,149,255,249,255,8,0, +229,255,205,255,22,0,239,255,207,255,21,0,10,0,234,255,159,255,254,255,19,0,141,255,206,255,4,0,233,255,34,0, +28,0,230,255,216,255,192,255,46,0,217,255,131,255,23,0,217,255,46,0,40,0,172,255,40,0,255,255,234,255,1,0, +200,255,222,255,0,0,249,255,4,0,78,0,60,0,238,255,230,255,34,0,11,0,160,255,197,255,57,0,52,0,181,255, +249,255,151,0,211,255,141,255,24,0,213,255,255,255,252,255,255,255,33,0,123,255,14,0,68,0,171,255,213,255,217,255, +29,0,250,255,119,255,207,255,81,0,171,255,167,255,53,0,117,255,210,255,13,0,207,255,7,0,144,255,183,255,176,255, +251,255,85,0,173,255,198,255,243,255,177,255,232,255,48,0,198,255,129,255,192,255,19,0,69,0,244,255,239,255,79,0, +213,255,169,255,103,0,192,255,87,255,43,0,62,0,182,255,113,255,52,0,22,0,172,255,233,255,237,255,110,0,242,255, +194,255,64,0,174,255,188,255,65,0,31,0,244,255,148,255,184,255,124,0,188,255,99,255,244,255,233,255,252,255,163,255, +205,255,19,0,207,255,241,255,29,0,0,0,197,255,208,255,250,255,39,0,206,255,168,255,190,255,155,255,70,0,71,0, +143,255,203,255,35,0,6,0,80,0,242,255,106,255,249,255,12,0,242,255,235,255,7,0,247,255,156,255,240,255,21,0, +224,255,127,255,141,255,227,255,250,255,16,0,184,255,126,255,208,255,34,0,235,255,22,0,231,255,82,255,253,255,74,0, +242,255,222,255,231,255,211,255,230,255,8,0,226,255,225,255,178,255,243,255,29,0,171,255,151,255,218,255,251,255,221,255, +5,0,223,255,169,255,192,255,21,0,55,0,171,255,243,255,40,0,213,255,27,0,53,0,219,255,228,255,31,0,223,255, +229,255,213,255,248,255,81,0,36,0,13,0,228,255,36,0,229,255,115,255,28,0,86,0,221,255,156,255,53,0,103,0, +173,255,236,255,70,0,150,255,4,0,143,0,173,255,26,0,97,0,182,255,4,0,3,0,241,255,24,0,210,255,207,255, +97,0,28,0,177,255,11,0,230,255,85,0,82,0,178,255,230,255,16,0,82,0,11,0,248,255,71,0,4,0,237,255, +234,255,67,0,75,0,172,255,0,0,149,0,34,0,212,255,19,0,121,0,79,0,202,255,45,0,21,0,250,255,77,0, +36,0,8,0,196,255,7,0,247,255,16,0,118,0,239,255,51,0,32,0,179,255,23,0,76,0,47,0,251,255,32,0, +5,0,230,255,28,0,17,0,232,255,231,255,19,0,6,0,241,255,74,0,52,0,197,255,104,0,91,0,237,255,96,0, +250,255,18,0,89,0,30,0,16,0,31,0,123,0,22,0,221,255,8,0,39,0,41,0,4,0,99,0,23,0,194,255, +101,0,144,0,200,255,208,255,130,0,242,255,142,255,85,0,60,0,144,255,25,0,253,255,183,255,72,0,245,255,213,255, +218,255,241,255,56,0,27,0,253,255,232,255,40,0,243,255,193,255,203,255,220,255,63,0,10,0,2,0,54,0,236,255, +255,255,105,0,217,255,112,255,111,0,139,0,161,255,205,255,92,0,36,0,9,0,244,255,225,255,6,0,212,255,219,255, +235,255,3,0,59,0,235,255,132,255,35,0,119,0,183,255,45,0,48,0,83,255,212,255,81,0,243,255,229,255,28,0, +182,255,10,0,96,0,213,255,167,255,212,255,106,0,245,255,178,255,61,0,169,255,213,255,85,0,203,255,184,255,36,0, +249,255,14,0,55,0,215,255,69,0,59,0,244,255,69,0,241,255,29,0,58,0,250,255,54,0,6,0,240,255,2,0, +241,255,55,0,67,0,194,255,220,255,83,0,223,255,194,255,33,0,54,0,238,255,173,255,110,0,42,0,160,255,86,0, +250,255,181,255,89,0,56,0,188,255,16,0,81,0,200,255,218,255,42,0,11,0,204,255,213,255,24,0,245,255,18,0, +0,0,10,0,56,0,243,255,32,0,210,255,187,255,53,0,20,0,33,0,250,255,187,255,70,0,123,0,163,255,230,255, +171,0,227,255,215,255,57,0,226,255,62,0,127,0,206,255,189,255,126,0,50,0,206,255,9,0,21,0,81,0,237,255, +161,255,73,0,26,0,170,255,64,0,6,0,130,255,81,0,50,0,161,255,232,255,222,255,74,0,72,0,244,255,85,0, +164,255,176,255,140,0,241,255,155,255,224,255,73,0,43,0,165,255,43,0,43,0,197,255,67,0,56,0,216,255,80,0, +71,0,216,255,228,255,193,255,54,0,52,0,169,255,208,255,228,255,237,255,237,255,65,0,216,255,233,255,153,0,143,255, +189,255,154,0,77,0,171,255,221,255,103,0,171,255,35,0,131,0,83,0,59,0,139,255,92,0,115,0,180,255,218,255, +100,0,96,0,232,255,88,0,96,0,22,0,212,255,44,0,24,0,176,255,66,0,254,255,209,0,120,0,183,255,224,0, +65,0,14,0,166,255,144,255,52,0,149,255,178,255,212,255,125,0,182,0,25,0,215,255,16,0,146,0,212,255,2,0, +101,0,26,0,229,255,249,255,114,0,175,255,13,0,109,0,227,255,5,0,44,0,141,0,224,255,190,255,28,0,116,0, +104,0,194,255,151,0,217,255,213,255,22,1,233,255,154,255,53,0,23,0,87,255,137,255,138,0,68,0,254,255,236,255, +223,255,74,0,106,0,240,255,250,255,249,255,244,255,110,0,128,255,186,255,163,0,156,255,225,255,149,0,233,255,169,255, +67,0,55,0,140,255,18,0,97,0,154,255,184,255,28,0,150,255,158,255,50,0,237,255,162,255,33,0,251,255,111,255, +40,0,89,0,137,255,165,255,23,0,233,255,226,255,31,0,137,255,159,255,35,0,173,255,18,0,8,0,109,255,51,0, +247,255,28,255,32,0,118,0,145,255,249,255,64,0,218,255,244,255,8,0,222,255,166,255,193,255,204,255,198,255,230,255, +201,255,236,255,250,255,228,255,253,255,189,255,169,255,240,255,206,255,236,255,58,0,163,255,134,255,47,0,44,0,1,0, +190,255,126,255,239,255,245,255,193,255,9,0,171,255,116,255,26,0,13,0,188,255,1,0,29,0,31,0,50,0,32,0, +36,0,44,0,230,255,165,255,230,255,14,0,189,255,233,255,32,0,196,255,251,255,82,0,228,255,168,255,212,255,23,0, +58,0,238,255,229,255,14,0,237,255,45,0,34,0,137,255,228,255,91,0,186,255,135,255,221,255,154,255,210,255,153,0, +9,0,63,255,15,0,103,0,174,255,16,0,109,0,192,255,235,255,45,0,158,255,219,255,26,0,192,255,17,0,31,0, +212,255,25,0,232,255,189,255,12,0,217,255,5,0,74,0,192,255,210,255,59,0,4,0,1,0,67,0,70,0,209,255, +105,255,237,255,99,0,254,255,196,255,15,0,25,0,211,255,12,0,28,0,183,255,115,0,225,0,184,255,156,255,53,0, +43,0,114,0,242,255,69,255,2,0,251,255,107,255,22,0,56,0,195,255,51,0,50,0,127,255,224,255,131,0,248,255, +128,255,210,255,54,0,71,0,192,255,148,255,41,0,13,0,194,255,31,0,255,255,181,255,4,0,27,0,217,255,241,255, +29,0,251,255,41,0,90,0,249,255,231,255,220,255,182,255,31,0,220,255,137,255,38,0,231,255,168,255,56,0,14,0, +234,255,9,0,78,0,254,0,103,0,129,255,227,255,32,0,3,0,185,255,174,255,22,0,217,255,24,0,120,0,194,255, +226,255,50,0,230,255,32,0,248,255,227,255,7,0,189,255,84,0,52,0,132,255,165,0,121,0,120,255,76,0,33,0, +236,255,98,0,158,255,198,255,112,0,34,0,173,255,132,255,46,0,1,0,123,255,47,0,207,255,118,255,89,0,53,0, +13,0,50,0,131,255,198,255,110,0,65,0,81,0,196,255,138,255,91,0,14,0,201,255,224,255,253,255,103,0,169,255, +215,255,117,0,145,255,252,255,127,0,245,255,15,0,10,0,68,0,122,0,194,255,193,255,82,0,14,0,125,0,27,1, +190,255,212,254,160,255,87,0,67,0,154,255,166,255,215,255,21,0,209,0,91,0,165,255,144,255,11,0,154,0,199,255, +174,255,80,0,212,255,193,255,23,0,60,0,18,0,142,255,216,255,93,0,230,255,254,255,178,0,142,255,48,255,230,0, +135,0,132,255,14,0,51,0,205,255,227,255,102,0,27,0,200,255,251,255,5,0,170,0,64,0,95,255,32,0,69,0, +215,255,10,0,9,0,201,255,2,0,207,0,177,0,241,255,229,255,222,255,215,255,77,0,105,0,145,255,204,255,119,0, +7,0,232,255,209,255,83,0,116,0,238,255,62,0,116,0,62,0,131,255,180,255,193,0,235,0,196,255,73,255,72,0, +69,0,238,255,251,255,15,0,238,255,30,0,97,0,31,0,71,0,26,0,188,255,97,0,142,0,242,254,85,0,38,1, +80,255,73,0,176,255,246,255,227,0,229,255,4,0,80,0,192,0,61,0,9,0,109,255,2,0,66,0,118,255,212,0, +151,255,83,255,73,0,8,0,135,0,15,0,153,255,52,0,246,0,114,0,181,255,213,255,180,0,241,255,249,255,4,0, +218,254,178,0,57,0,12,0,12,0,156,255,168,0,156,255,75,0,45,0,17,0,125,255,164,255,106,1,190,255,146,0, +229,0,98,255,225,255,52,0,242,255,139,0,63,0,81,254,216,255,168,0,120,255,33,0,55,1,89,0,139,255,213,255, +152,255,96,1,93,0,83,255,130,0,46,0,231,255,40,0,56,1,212,254,6,0,215,0,228,253,204,0,118,0,211,254, +116,255,108,255,7,1,71,1,189,255,115,0,120,1,150,254,106,255,142,3,109,1,78,252,78,254,103,1,38,0,220,255, +139,253,172,255,80,1,235,253,208,0,36,1,182,253,203,0,181,1,154,252,238,255,240,2,108,255,235,255,158,255,254,1, +126,1,206,252,182,254,133,255,50,255,105,0,213,255,146,0,43,1,49,255,132,255,135,255,241,255,188,0,173,255,217,0, +8,254,241,254,82,2,49,0,218,0,34,254,242,253,154,1,114,255,170,255,8,2,154,0,189,254,223,255,41,0,182,253, +12,255,254,1,229,254,216,254,140,0,67,0,171,10,253,7,226,240,72,243,134,5,214,2,130,255,169,1,80,254,140,255, +196,254,44,254,143,1,137,0,86,0,67,255,230,254,205,0,232,255,217,255,138,0,255,255,184,254,87,255,26,1,221,0, +250,0,54,0,191,254,70,255,50,0,249,255,140,255,5,1,177,255,52,254,235,1,249,0,12,254,131,255,60,0,220,255, +94,255,207,255,138,255,72,0,241,0,7,254,101,255,18,1,124,255,117,255,98,255,110,0,216,254,142,255,225,2,121,254, +210,255,54,4,2,255,128,253,215,0,226,0,160,255,180,0,120,1,142,253,106,254,202,2,169,254,188,254,32,2,54,254, +118,255,41,0,114,253,115,0,204,0,77,0,61,1,124,255,224,1,52,1,143,251,42,0,192,2,29,255,208,255,144,254, +192,254,112,1,13,2,26,254,70,254,90,3,152,253,153,255,170,6,220,253,248,250,233,0,201,0,0,255,3,0,48,1, +43,0,186,255,211,0,212,0,184,255,250,254,248,255,252,0,191,255,7,255,70,0,245,0,255,0,12,0,104,254,251,255, +182,0,192,255,183,0,111,0,160,255,122,255,242,0,124,1,236,255,26,255,91,255,115,0,192,0,160,0,157,255,4,0, +164,255,127,0,250,0,182,254,150,0,176,255,113,0,152,254,18,255,29,3,203,255,110,3,187,255,22,255,195,255,0,2, +66,16,222,255,33,247,16,254,72,248,180,0,75,3,138,252,79,255,71,5,244,255,202,250,45,1,27,2,242,255,31,0, +197,255,170,254,80,0,199,0,218,1,123,1,78,253,57,0,100,255,38,255,211,0,84,255,226,255,243,254,111,0,232,0, +97,1,116,255,126,255,61,2,239,255,99,0,78,255,217,255,170,255,56,255,137,1,24,255,98,255,99,0,97,0,194,255, +220,255,178,0,181,255,1,0,176,255,226,0,255,255,74,255,4,1,137,255,205,255,164,0,127,255,184,255,75,0,248,255, +14,0,7,0,131,0,186,255,206,254,240,255,178,0,226,1,44,1,116,255,107,254,93,0,182,1,254,254,108,255,190,255, +189,0,99,2,4,1,89,254,213,253,165,0,249,255,166,255,238,255,238,254,62,255,133,255,63,1,73,1,252,255,43,0, +120,0,157,254,251,254,128,1,221,254,203,254,166,1,31,255,230,255,151,3,169,255,138,254,112,0,67,254,102,0,192,0, +233,254,208,255,91,255,17,0,95,0,237,255,66,0,238,255,45,255,156,255,18,1,88,0,102,255,223,255,38,0,188,255, +167,255,172,0,253,255,115,255,248,255,151,255,54,0,126,0,227,0,87,0,52,255,21,0,207,255,17,1,166,0,223,253, +246,255,235,0,142,255,32,0,159,0,154,255,99,255,92,0,246,255,30,0,22,0,90,255,105,255,144,255,41,0,227,255, +177,255,6,0,224,255,192,255,216,255,40,0,7,0,102,0,196,255,91,255,123,0,17,0,137,255,56,255,220,255,44,0, +100,255,228,255,135,255,242,255,96,0,204,255,235,255,45,0,192,0,192,255,67,0,141,0,246,254,133,0,112,0,14,255, +117,0,20,1,190,255,64,0,210,0,29,255,213,255,219,255,3,0,70,0,242,254,73,2,21,1,49,254,15,1,226,255, +233,254,33,0,230,255,37,1,198,1,178,254,158,253,194,0,41,1,224,0,19,0,144,255,221,0,39,255,235,255,209,0, +63,0,183,0,209,254,235,255,82,0,129,255,248,0,138,0,254,255,85,254,109,255,169,1,23,0,66,0,231,254,187,254, +121,1,204,255,151,254,35,0,127,1,2,1,136,254,40,0,189,3,95,1,226,253,131,255,181,0,92,255,160,255,80,0, +156,0,154,255,131,254,228,0,133,0,165,254,136,0,115,0,12,0,239,255,30,255,60,0,166,255,65,0,177,0,80,254, +124,255,138,0,139,0,57,0,210,254,168,0,84,0,44,255,179,0,189,255,0,0,175,0,31,0,127,0,76,255,235,255, +87,1,237,255,93,255,217,255,61,0,11,0,122,255,254,255,26,0,163,255,229,255,220,0,206,0,130,255,116,255,70,0, +37,0,74,255,229,0,4,1,151,254,125,255,220,255,51,1,136,0,153,253,116,0,79,0,190,254,173,0,16,1,168,0, +234,255,66,255,22,0,116,0,203,255,150,1,181,255,220,253,98,1,140,0,151,255,14,0,122,255,117,0,37,0,84,254, +39,0,82,1,112,254,86,0,192,0,88,255,192,255,240,255,137,1,6,255,108,255,95,1,90,1,185,0,139,254,151,1, +164,0,43,254,175,1,71,0,188,254,126,2,31,0,68,254,121,255,42,255,10,3,11,254,166,254,29,3,82,254,244,2, +158,255,228,252,157,255,216,253,4,3,144,1,81,254,222,253,44,0,150,1,87,254,80,1,64,1,41,255,17,255,49,255, +56,0,181,0,80,255,102,253,182,0,255,1,176,0,246,254,167,254,248,255,127,255,82,0,203,255,72,0,133,0,218,255, +6,0,76,2,240,3,216,255,219,254,201,255,187,0,121,254,12,254,77,2,44,1,186,255,43,253,111,1,40,3,153,254, +179,1,11,0,28,255,124,254,228,254,7,1,63,254,84,0,115,0,16,255,143,0,24,1,8,255,45,254,140,1,223,0, +78,254,88,0,158,3,217,0,104,0,87,255,100,253,147,2,203,255,241,3,149,6,183,250,53,250,110,2,52,14,51,9, +132,249,232,246,246,248,173,2,238,3,53,255,227,0,110,255,33,253,72,252,66,0,131,0,216,254,121,254,112,0,43,3, +27,253,124,255,154,2,241,254,150,255,106,3,150,5,11,253,201,253,60,5,228,0,144,252,26,253,157,0,127,255,31,254, +221,255,143,255,43,1,32,0,123,255,55,255,132,255,113,3,255,253,222,251,91,1,103,0,147,255,190,0,35,0,252,252, +23,3,247,3,83,250,232,255,38,1,11,253,92,2,122,3,253,253,20,253,184,0,52,2,13,2,177,253,34,1,149,255, +178,252,123,6,35,0,179,249,248,253,94,1,130,1,224,255,111,255,4,254,240,1,74,255,227,253,158,1,143,2,34,254, +48,249,138,3,241,4,191,252,164,254,84,6,243,0,14,248,20,255,237,1,113,1,11,0,5,1,114,254,114,2,155,9, +133,249,242,251,75,3,247,250,194,253,64,4,46,0,0,252,28,2,3,255,76,0,34,2,136,254,7,0,37,255,100,0, +26,0,107,4,70,4,173,255,254,251,61,255,94,0,143,252,203,6,120,250,76,251,190,6,158,249,95,4,127,5,168,248, +246,1,250,5,172,255,8,2,130,1,21,7,89,0,98,240,82,7,21,3,250,246,62,4,99,254,152,254,29,253,79,0, +248,2,103,254,29,2,85,254,42,252,249,0,62,2,189,253,18,1,162,2,13,255,245,253,131,254,174,1,96,254,244,255, +213,255,137,254,75,0,153,255,16,1,12,0,69,1,185,255,112,253,86,255,109,2,131,0,43,255,191,255,29,254,84,2, +11,255,70,4,61,6,209,250,104,0,172,5,179,0,34,249,162,253,131,1,42,252,61,255,108,1,98,255,131,255,238,2, +106,254,217,255,225,1,238,254,94,5,0,252,248,250,73,4,246,252,145,253,51,3,164,254,35,252,124,255,201,0,74,7, +159,3,234,251,179,1,48,0,104,254,23,1,91,255,215,252,224,1,135,252,51,1,105,25,23,3,112,246,163,7,162,253, +219,247,150,246,206,252,70,4,238,1,239,0,22,249,218,255,190,11,131,253,97,245,150,3,190,0,197,254,232,254,129,1, +151,29,85,253,225,221,204,10,113,13,133,245,21,250,43,253,133,252,168,248,30,249,92,4,58,6,158,253,106,255,186,0, +176,254,149,254,174,254,213,1,41,254,46,252,234,255,116,0,202,0,93,2,177,255,240,252,23,0,48,255,147,255,155,0, +26,255,52,0,90,255,148,0,220,255,159,254,39,1,72,1,111,255,165,0,59,0,239,252,169,2,71,0,250,251,173,1, +36,255,83,1,81,0,113,254,209,5,223,254,170,250,13,1,102,1,254,255,139,254,27,255,190,0,174,254,150,255,142,2, +207,0,130,1,254,255,181,252,0,2,252,1,60,254,76,0,173,0,173,2,209,4,150,1,218,253,27,253,186,254,174,1, +131,4,93,253,194,248,200,1,139,255,65,1,151,8,120,252,12,252,26,2,144,255,182,2,124,255,36,255,23,1,40,253, +57,255,207,0,56,0,212,255,48,255,30,255,41,255,109,255,53,255,89,0,189,255,141,255,49,1,55,1,53,255,216,254, +33,1,54,254,117,254,217,0,56,255,224,255,138,255,96,1,10,255,96,254,224,3,63,255,155,255,219,1,24,252,44,255, +159,3,84,1,9,0,116,255,120,254,127,0,67,4,243,6,6,4,160,254,61,0,197,0,168,251,206,251,156,255,174,254, +53,0,101,2,82,255,97,254,38,254,214,255,155,0,77,255,243,255,29,254,24,254,155,0,21,1,21,254,207,255,1,0, +102,252,83,3,142,0,150,254,100,6,179,0,241,255,200,1,145,251,140,253,145,1,184,255,150,1,114,0,126,251,33,255, +95,255,72,255,9,1,4,254,28,255,36,0,100,1,75,0,96,255,232,3,36,1,102,253,63,255,100,255,232,255,240,255, +233,255,89,1,247,254,59,0,140,0,218,253,57,1,4,255,214,254,197,0,181,255,133,1,166,255,221,1,36,4,166,0, +33,254,171,255,21,254,61,253,50,5,227,255,171,250,114,1,205,2,32,253,252,253,255,13,107,12,190,249,34,243,55,254, +155,6,11,253,24,252,122,255,47,255,254,255,14,0,148,2,25,2,120,255,187,252,102,1,81,1,88,253,228,255,207,255, +44,0,88,253,122,0,9,1,157,253,80,0,72,254,94,1,202,1,148,255,184,255,78,254,82,255,53,1,148,0,17,254, +143,3,162,0,78,254,95,255,6,253,108,3,146,254,171,1,201,2,214,250,3,1,153,255,106,0,27,1,150,255,66,0, +250,253,6,0,205,0,6,1,198,255,163,1,51,255,172,254,110,1,126,253,173,1,18,0,201,255,105,1,149,255,104,4, +190,0,84,254,52,255,204,255,198,255,197,255,58,1,68,254,215,255,155,254,89,0,156,4,207,254,197,254,16,5,120,3, +161,252,163,253,200,0,211,1,198,255,7,254,33,1,85,254,120,253,184,254,97,0,220,0,142,253,39,1,27,1,103,254, +63,255,120,255,103,0,213,0,217,1,100,0,227,253,243,0,119,3,166,254,43,255,224,0,57,253,246,1,143,1,244,251, +131,0,109,1,9,254,162,1,174,1,110,254,224,0,8,1,84,0,126,0,255,255,155,254,77,255,251,2,16,1,138,0, +231,0,172,1,142,3,106,1,30,0,17,254,161,254,75,255,236,253,78,253,129,255,26,0,19,253,208,1,94,0,197,254, +128,1,37,255,53,1,87,255,189,254,97,255,154,1,116,3,62,254,159,0,107,0,94,254,146,0,216,0,102,255,240,254, +153,255,137,253,41,1,132,0,167,254,178,1,74,0,246,255,41,0,168,1,178,253,166,254,169,2,152,254,172,0,182,255, +119,255,16,0,101,255,12,2,171,0,32,2,98,255,50,252,32,0,97,2,16,255,207,252,114,1,137,1,63,255,243,254, +16,1,243,255,225,253,23,2,46,255,30,0,116,3,249,0,222,1,218,0,54,254,122,251,92,255,225,1,13,254,187,255, +48,1,208,0,37,254,58,255,235,3,70,1,5,255,65,1,104,1,21,254,142,254,254,0,136,0,11,0,128,255,41,255, +107,255,249,0,80,255,255,255,149,2,217,253,26,255,114,2,185,1,51,1,114,254,66,1,99,1,163,253,67,255,204,254, +242,254,251,0,16,0,97,255,215,255,0,255,113,0,202,2,163,0,27,0,155,0,30,255,83,255,85,1,223,0,16,255, +170,1,102,0,157,254,197,0,136,254,85,0,135,2,59,254,170,252,75,255,224,2,108,3,179,0,51,0,152,1,38,1, +44,1,203,0,228,255,231,254,53,254,23,2,239,0,112,253,218,0,184,0,238,254,82,0,223,0,102,1,7,255,32,254, +17,3,245,255,55,255,11,5,95,254,168,253,13,3,85,0,32,255,0,255,137,0,160,0,237,255,21,0,167,255,70,0, +157,254,61,255,237,0,166,0,90,255,94,255,152,1,28,255,100,254,64,5,86,5,127,254,195,255,7,253,127,252,192,5, +124,255,75,254,31,6,237,254,102,251,87,255,243,253,103,253,222,2,234,2,66,253,116,255,237,4,91,1,131,253,122,255, +167,255,189,4,16,4,91,252,123,252,221,252,45,0,53,2,176,255,225,254,92,0,37,0,84,253,118,0,118,255,138,255, +131,2,42,254,254,254,82,1,243,0,243,254,28,254,45,0,104,255,56,255,151,255,13,1,59,1,198,254,220,254,176,0, +34,255,213,254,141,2,51,255,1,254,75,1,116,255,205,255,248,255,121,255,27,1,76,0,140,255,122,255,60,255,236,0, +114,255,59,0,110,2,188,253,83,255,152,1,177,255,30,0,190,254,36,254,171,255,32,2,230,255,205,0,95,1,99,253, +210,1,173,1,248,254,150,255,218,0,32,1,135,254,223,0,51,0,244,255,171,255,194,254,129,5,181,6,202,253,65,248, +179,255,72,2,30,253,198,254,12,2,220,0,13,254,74,255,26,0,71,2,94,0,27,254,70,2,126,0,253,254,189,253, +23,255,126,0,202,255,167,1,118,254,116,255,203,1,206,0,136,254,31,255,62,0,35,255,10,3,187,255,127,254,100,255, +247,255,198,2,190,255,114,0,237,251,178,254,249,3,6,0,176,0,178,254,234,0,1,0,55,255,98,0,18,1,241,5, +128,254,67,254,143,1,89,253,238,255,236,255,94,253,1,0,189,2,142,253,4,254,248,2,130,2,223,0,7,254,151,255, +238,255,58,1,244,1,48,255,220,254,1,253,225,0,0,3,78,255,221,254,126,254,243,255,171,1,17,255,218,254,17,2, +92,0,189,0,77,0,111,254,144,2,200,255,118,254,12,1,47,0,37,2,249,0,27,0,176,254,183,252,13,1,230,1, +123,0,210,254,89,253,200,0,70,3,169,2,60,255,18,0,162,1,157,255,206,1,37,255,31,254,84,0,185,254,120,255, +130,255,254,0,80,0,245,0,219,1,14,255,148,255,131,0,177,3,94,1,81,255,47,254,2,2,16,15,101,2,1,244, +199,251,162,2,110,2,1,255,112,1,160,0,190,253,247,254,2,1,101,254,35,252,8,5,206,3,71,251,7,251,192,255, +112,1,86,255,101,2,122,255,75,254,75,2,169,0,94,0,156,0,138,0,75,255,177,255,67,1,47,255,21,254,57,0, +3,255,75,255,201,2,117,252,143,1,205,8,147,254,80,255,11,2,252,1,66,2,22,254,106,0,47,255,64,254,169,255, +21,253,225,255,157,1,208,255,119,2,166,2,24,253,20,254,66,255,104,254,224,4,123,5,63,0,201,253,104,2,147,2, +80,248,44,0,105,7,161,255,195,253,77,250,26,251,73,0,223,1,138,0,118,254,184,255,227,253,184,255,105,1,114,0, +128,0,78,252,25,255,151,1,168,254,98,255,227,2,97,4,238,253,35,251,212,254,144,255,114,255,25,1,202,255,162,253, +17,0,78,255,79,254,139,0,34,1,91,0,3,0,235,255,40,254,118,0,228,0,156,0,107,2,0,252,145,252,25,3, +31,1,181,254,235,254,113,255,167,255,252,255,167,0,100,0,38,255,251,255,129,0,188,255,196,255,242,255,146,1,51,254, +43,253,147,0,215,255,118,0,108,255,251,0,2,0,4,253,186,1,35,1,229,255,216,255,190,255,182,0,164,0,82,1, +178,253,209,255,69,0,204,253,110,0,50,255,151,1,45,0,126,254,153,1,204,254,155,255,204,1,2,0,144,254,106,0, +160,255,21,254,3,0,21,255,178,1,153,255,64,252,218,2,224,2,204,255,88,255,233,253,240,0,245,1,47,255,174,0, +140,254,246,252,24,2,18,255,166,254,131,4,69,0,91,253,117,255,220,255,182,1,161,255,145,255,251,0,249,253,27,6, +6,4,49,247,72,0,18,4,154,253,226,254,230,253,227,255,97,1,239,251,205,253,90,3,12,0,92,254,153,0,155,0, +150,0,165,0,83,1,5,0,199,254,98,255,209,255,163,0,113,0,1,255,28,255,78,1,153,0,43,255,214,255,37,0, +232,255,8,1,93,255,211,252,215,1,189,2,247,0,112,254,61,252,127,1,114,0,44,0,75,0,127,254,14,0,6,0, +103,2,107,254,213,253,32,0,67,254,8,2,38,0,85,0,45,1,63,253,223,1,29,2,43,254,71,1,218,0,105,0, +205,0,84,254,231,0,246,255,121,0,210,1,135,254,24,0,42,255,168,0,1,1,22,255,44,1,224,255,212,0,40,1, +72,255,66,0,187,2,216,254,157,254,103,2,116,252,248,0,0,3,89,253,106,0,14,255,142,254,195,0,241,0,144,0, +243,0,163,254,144,253,25,3,95,2,53,1,31,1,96,254,74,255,206,255,36,255,143,254,120,1,176,6,23,3,23,250, +2,249,14,255,157,3,213,1,107,2,148,1,161,252,159,1,182,0,16,253,225,255,182,0,194,0,230,253,11,2,112,2, +9,255,121,255,193,253,201,1,248,0,144,255,223,1,49,0,85,255,87,0,228,255,8,255,240,1,232,255,255,254,90,254, +30,255,4,5,124,0,6,255,58,0,15,255,69,1,171,255,10,254,78,255,152,1,73,1,207,0,52,0,239,255,253,255, +45,255,189,255,107,255,94,1,185,0,138,0,166,1,192,0,252,255,149,253,144,0,118,0,138,0,182,2,88,255,127,255, +253,255,89,0,172,0,161,1,86,0,241,253,54,0,116,255,118,0,26,1,98,255,64,2,1,2,206,253,210,254,173,255, +109,253,155,255,53,1,123,1,217,255,138,254,98,1,143,0,245,254,141,0,167,0,65,255,125,4,235,3,29,251,217,251, +121,254,132,0,58,1,222,0,176,0,47,253,83,255,85,3,20,1,250,255,149,2,121,255,6,254,157,252,123,253,231,6, +222,1,48,254,15,255,154,251,178,254,147,254,62,2,75,2,166,255,18,255,68,253,111,3,48,1,189,254,241,0,78,0, +125,1,187,254,112,255,108,0,119,1,43,1,172,253,28,0,195,255,209,1,118,1,32,252,44,0,223,1,152,0,17,255, +47,255,220,1,103,255,191,255,133,0,43,2,90,1,108,253,70,1,187,255,98,253,114,254,255,254,84,2,59,1,118,255, +247,253,100,0,64,2,118,254,23,0,206,3,5,0,67,250,183,0,23,2,76,255,189,1,56,254,208,1,8,254,108,254, +110,5,208,250,149,3,65,7,200,247,189,252,38,1,39,1,172,2,82,255,88,0,240,0,247,252,9,253,43,2,113,1, +46,253,28,255,60,2,151,1,112,0,142,255,54,255,216,1,170,2,0,1,111,254,148,253,126,1,99,0,126,254,168,255, +81,254,51,254,101,254,164,0,232,1,124,0,12,255,221,253,54,0,56,0,168,254,19,0,89,2,191,0,193,253,106,255, +159,1,91,2,86,253,70,254,178,6,254,2,37,253,193,255,47,2,177,253,220,253,41,1,107,254,30,1,111,0,121,254, +158,2,105,254,125,251,88,1,74,1,182,254,217,255,90,254,95,0,39,1,138,254,87,0,62,0,175,0,113,254,118,252, +19,1,148,1,185,255,150,255,88,255,95,254,11,255,98,3,53,5,17,254,244,248,144,0,167,2,196,254,215,1,13,255, +215,251,224,255,164,1,248,2,6,255,153,255,191,5,71,254,205,252,32,1,219,253,199,254,97,255,44,0,26,4,139,0, +76,252,180,2,11,0,172,251,63,2,230,255,203,1,45,3,30,254,22,254,22,0,212,10,211,4,36,244,210,251,255,4, +28,3,131,1,163,251,75,250,33,2,211,0,139,253,11,254,185,253,102,1,50,2,168,0,192,254,236,253,82,0,238,254, +215,252,180,254,67,255,60,5,50,8,96,252,30,251,34,255,49,255,18,2,149,255,225,251,239,253,229,5,86,254,148,251, +177,5,196,254,50,254,152,254,46,253,33,0,169,255,1,2,102,255,78,2,227,3,38,254,2,255,215,5,121,0,21,246, +202,0,217,255,165,250,186,1,132,1,64,3,206,253,116,252,49,3,101,0,232,254,115,1,202,0,249,252,58,254,165,255, +197,253,92,255,164,0,120,255,65,255,1,1,181,1,154,1,32,0,170,253,47,255,246,0,58,255,26,255,243,255,141,1, +148,2,70,254,2,252,226,254,163,1,59,0,32,255,224,254,126,255,48,2,70,253,199,254,229,4,40,3,17,1,232,253, +68,255,31,0,20,255,55,1,246,1,118,253,143,254,215,4,161,1,250,3,89,255,149,254,129,6,127,249,139,252,102,3, +189,253,65,2,80,0,214,252,59,1,22,3,38,254,9,255,232,0,105,254,169,255,164,255,131,0,249,255,118,255,50,255, +45,0,134,2,27,2,102,0,155,254,136,2,83,255,167,0,18,6,87,254,245,253,70,254,227,255,235,255,117,252,69,3, +188,255,161,250,150,254,99,255,100,3,126,6,14,0,39,252,224,253,46,254,204,2,255,1,220,252,129,254,196,253,91,255, +168,1,147,255,145,2,46,2,178,252,161,253,199,254,251,0,219,2,37,253,106,254,113,1,57,255,177,3,103,0,187,250, +199,0,160,1,115,0,186,253,230,254,220,1,58,254,29,18,143,15,170,242,184,253,181,255,23,250,158,4,73,254,167,254, +34,0,112,251,226,1,68,255,140,250,82,1,105,2,12,0,215,255,230,254,194,255,46,255,253,254,109,254,42,255,211,0, +199,0,4,2,78,254,94,255,26,1,117,252,220,255,231,0,36,254,82,0,74,0,105,255,107,2,248,255,23,251,140,255, +154,2,158,0,202,254,183,255,86,0,39,254,171,255,78,0,185,255,177,254,101,3,144,7,223,250,208,249,140,3,223,0, +13,0,189,254,48,253,25,0,72,0,1,2,210,1,49,255,194,255,124,0,217,1,243,1,79,254,16,252,146,254,25,2, +18,1,9,254,175,0,125,1,56,252,89,254,140,2,188,0,91,255,237,255,142,3,174,6,114,2,159,251,155,253,192,0, +58,253,234,253,32,1,5,0,219,253,51,254,214,0,55,2,165,254,79,255,76,5,141,0,132,251,72,254,161,0,72,1, +71,254,208,252,65,255,164,0,4,254,218,255,206,2,45,254,201,253,59,255,45,0,91,2,50,0,111,253,255,254,99,2, +42,0,56,253,14,0,22,4,241,1,88,254,138,255,179,252,209,252,213,1,44,255,98,255,27,2,157,254,147,4,202,7, +121,253,212,251,254,252,234,253,75,1,242,255,64,254,253,254,183,0,112,253,102,253,37,1,23,0,51,0,82,2,30,1, +134,252,97,255,4,1,47,255,212,1,252,255,191,254,196,255,59,1,200,0,60,0,50,0,174,252,3,2,250,4,208,253, +165,251,212,253,113,1,30,2,186,253,200,254,191,1,162,255,228,255,26,0,191,0,251,255,116,254,89,1,215,0,142,1, +3,0,114,253,148,255,89,254,159,255,255,1,252,1,65,0,245,252,164,255,95,2,108,0,79,0,234,252,180,2,209,7, +224,247,59,252,155,4,157,255,19,6,158,3,151,1,85,1,213,254,148,253,176,252,120,3,127,0,119,252,237,252,120,255, +163,0,193,254,30,0,161,254,5,4,202,255,143,250,223,255,17,0,105,3,232,255,62,255,50,2,192,0,246,254,223,251, +219,0,131,1,158,255,92,1,163,1,86,255,88,252,110,255,122,0,92,255,229,255,12,0,44,255,50,0,8,0,167,255, +241,3,147,0,66,252,154,254,227,0,113,255,228,254,189,1,192,1,85,2,130,253,65,253,144,2,231,254,137,254,45,0, +153,1,23,1,131,254,95,255,14,254,131,253,66,0,31,2,165,0,206,0,67,255,1,253,231,1,154,4,199,2,130,252, +38,252,35,2,192,254,63,255,43,2,113,255,253,253,10,254,19,0,51,255,45,4,50,6,236,251,234,252,118,255,252,253, +155,0,217,1,95,1,171,252,190,254,147,0,79,253,79,0,104,255,32,254,149,0,78,1,71,0,115,255,44,3,33,3, +166,251,217,252,3,2,241,255,54,0,20,253,80,1,102,6,56,252,192,255,180,255,7,252,109,4,96,255,222,252,46,0, +231,254,47,0,223,255,150,0,37,1,110,254,207,254,31,0,79,254,221,254,68,255,72,0,36,0,72,255,26,3,192,1, +130,1,41,0,33,253,132,255,208,253,151,255,94,0,229,254,113,0,27,255,208,254,202,254,177,255,202,255,80,2,191,0, +90,252,94,1,237,255,87,255,144,1,239,2,179,4,146,252,189,253,213,255,180,253,99,255,56,253,143,1,12,2,167,0, +153,255,79,253,22,2,216,255,65,254,142,0,183,1,176,0,251,254,70,255,158,253,31,2,94,255,162,255,199,3,125,252, +187,0,109,1,35,255,181,1,56,255,4,0,181,255,150,2,234,0,106,253,44,0,94,0,119,1,142,255,179,2,122,4, +203,251,30,253,193,2,152,255,110,253,28,1,83,1,170,254,106,0,121,0,26,253,57,255,29,3,83,0,89,254,45,0, +237,255,40,255,14,255,195,254,129,255,156,255,1,0,99,1,119,0,18,0,62,1,60,1,189,255,35,0,239,0,28,253, +158,252,152,1,108,4,145,2,202,254,132,254,219,254,190,254,13,1,73,0,255,255,221,1,140,255,243,254,250,252,125,0, +204,5,73,254,22,6,120,9,17,247,73,250,169,3,57,254,201,254,101,1,141,254,44,2,152,1,219,252,195,0,111,254, +67,254,252,255,96,253,30,1,16,1,126,255,204,255,177,255,10,0,208,254,86,0,248,1,49,0,112,255,19,0,42,1, +34,1,10,254,37,1,163,255,246,251,106,2,230,255,114,255,82,0,78,253,52,0,30,1,80,3,75,0,31,255,178,1, +181,0,241,0,63,254,36,254,136,0,84,1,222,252,184,254,28,3,115,255,42,0,210,254,120,3,54,4,187,252,159,0, +34,4,217,0,139,252,108,1,79,1,71,252,215,253,38,255,249,0,171,253,121,0,68,0,71,253,168,1,127,0,59,0, +41,254,51,255,51,255,247,255,65,3,34,0,37,2,39,255,100,255,196,0,96,254,92,1,230,255,202,1,32,0,174,254, +114,1,82,255,230,253,20,0,162,2,60,254,115,255,194,255,168,253,255,1,142,1,191,0,65,0,26,1,131,254,121,253, +187,1,103,2,124,0,102,251,126,0,177,2,121,254,176,255,112,253,241,254,208,254,174,255,51,3,148,0,250,253,50,254, +39,1,150,0,127,0,27,1,115,255,68,0,200,255,7,0,190,0,226,254,95,255,33,1,74,1,43,3,247,1,230,255, +244,255,250,253,182,254,115,253,46,255,104,3,137,0,116,0,239,0,243,254,54,255,176,0,162,0,76,255,78,255,162,254, +53,253,221,253,55,255,47,0,24,4,149,1,182,252,155,3,253,3,112,252,31,255,211,255,182,250,71,1,164,6,210,255, +175,253,183,0,96,255,131,254,196,1,148,255,236,253,115,254,12,254,38,2,251,0,141,255,239,253,180,254,178,2,215,253, +64,0,3,2,43,254,245,1,208,0,86,253,57,0,228,1,22,0,34,255,141,1,183,3,96,0,78,254,53,251,7,253, +81,6,225,4,217,1,233,254,28,255,147,255,80,251,243,254,160,253,192,253,18,255,44,1,119,5,209,255,185,0,30,1, +157,254,186,255,54,0,146,255,1,1,74,5,230,253,236,254,172,4,190,255,3,2,87,1,232,253,44,0,170,0,47,255, +45,0,113,0,228,0,86,1,65,254,219,0,148,3,184,2,152,0,51,252,103,1,205,8,44,0,204,251,59,2,84,254, +247,255,237,1,84,3,140,12,228,1,210,250,197,254,175,251,192,0,186,2,41,254,17,1,188,2,49,0,160,1,236,254, +50,252,75,1,175,0,91,254,106,1,16,1,183,255,172,255,204,254,234,2,211,0,100,253,246,2,126,1,33,0,125,1, +45,1,243,253,39,252,42,1,128,255,138,255,211,1,237,255,58,253,2,0,132,6,37,1,240,254,105,255,223,252,159,255, +216,255,54,255,164,2,102,3,236,252,29,0,106,1,216,251,101,0,213,255,247,254,132,1,166,3,46,0,170,251,102,2, +50,1,194,255,191,0,248,254,171,255,195,253,210,1,172,0,245,252,233,255,113,1,214,255,228,251,30,2,143,3,201,255, +140,3,189,255,35,253,201,253,62,254,72,2,78,3,231,254,169,251,93,1,148,1,235,253,241,255,208,255,200,0,240,255, +17,254,31,255,17,0,195,0,83,0,121,255,50,255,128,2,81,2,113,251,235,253,149,3,44,255,209,254,139,255,56,255, +34,1,125,253,247,2,132,2,95,253,95,3,171,254,217,252,7,1,191,5,192,5,55,254,244,253,165,250,255,255,101,6, +187,1,86,3,65,0,35,249,234,250,24,1,24,255,195,253,125,2,200,0,220,254,3,255,32,254,11,1,106,1,108,252, +191,255,93,1,173,254,250,0,58,0,59,0,50,255,249,254,174,255,37,0,0,255,244,254,102,2,52,253,99,1,44,0, +245,249,163,3,158,2,110,255,217,254,46,255,5,255,57,254,141,0,241,253,184,0,94,255,125,255,13,1,1,254,250,0, +36,254,46,254,37,0,5,255,224,255,89,0,221,0,15,254,120,253,128,255,160,255,13,253,55,254,49,1,67,0,66,255, +200,253,89,0,210,1,193,255,57,0,141,255,179,254,86,255,138,253,35,255,251,0,219,251,177,254,204,2,56,1,35,3, +39,2,186,253,23,253,113,255,202,254,25,255,118,0,222,1,187,254,241,251,228,255,118,254,44,2,220,1,42,254,33,1, +7,255,10,1,199,253,16,255,228,6,172,254,210,248,172,0,0,5,19,0,95,255,127,0,198,255,20,254,115,255,242,1, +186,255,43,1,128,255,118,255,204,0,114,0,8,2,166,0,226,254,166,251,224,255,220,255,173,252,246,0,111,253,107,252, +78,2,86,3,143,254,122,255,199,0,147,253,121,253,149,254,247,0,84,255,171,0,33,2,238,255,59,255,128,1,81,5, +115,255,156,253,66,1,77,0,132,253,14,255,62,1,180,254,221,254,158,254,94,3,108,2,45,255,130,254,10,253,186,2, +142,255,75,1,189,255,116,0,71,8,197,254,252,253,226,253,76,254,95,2,115,2,47,2,169,252,126,0,78,3,42,1, +7,253,126,254,189,2,91,255,43,255,61,254,161,3,112,1,178,252,201,0,67,1,39,4,140,255,198,254,226,1,53,254, +116,252,201,255,99,2,198,253,82,1,222,1,37,253,82,255,133,0,54,1,93,0,239,2,95,1,192,252,60,0,0,1, +72,0,143,1,64,0,235,254,11,0,44,2,0,1,247,255,236,1,228,254,144,254,236,1,195,255,62,0,119,2,234,255, +160,253,236,0,221,0,146,255,73,255,248,255,204,10,152,5,70,246,150,250,246,0,149,254,156,254,250,0,250,254,82,0, +199,255,186,255,104,1,61,252,81,255,83,254,102,252,44,3,14,255,100,253,218,0,160,255,51,1,112,255,108,251,133,255, +54,3,120,0,134,253,56,1,85,4,156,255,140,255,206,253,175,248,47,254,253,2,1,255,42,253,104,2,158,3,92,253, +245,253,117,2,119,254,219,253,129,1,141,1,243,1,43,255,177,253,33,255,28,0,215,254,249,254,40,0,183,253,200,2, +76,2,152,253,98,2,174,0,128,252,59,0,162,2,169,255,141,0,169,0,158,0,221,1,119,1,148,1,140,255,133,4, +32,0,90,254,87,5,42,252,138,255,137,0,77,250,234,1,118,1,38,1,68,1,59,252,19,255,136,3,240,0,158,253, +150,254,105,1,91,3,124,0,145,254,153,1,102,2,233,2,100,1,33,253,69,0,48,1,146,0,12,1,130,254,37,0, +118,253,182,255,77,1,136,254,135,0,59,254,223,1,193,0,54,254,121,0,219,2,102,1,39,253,224,6,45,1,173,253, +43,2,14,251,196,255,159,0,33,0,162,254,65,3,119,7,200,251,54,254,215,1,187,255,216,254,167,253,93,253,234,253, +198,1,172,1,116,0,163,1,12,8,147,4,24,253,56,254,200,254,175,1,123,253,49,253,176,1,79,1,136,1,165,255, +220,254,99,254,165,1,177,0,36,255,29,0,50,253,236,2,153,255,158,251,171,5,29,0,137,253,4,2,164,252,254,3, +87,4,105,253,236,255,125,0,131,5,225,255,181,253,189,3,225,252,118,253,227,0,7,252,110,0,196,6,70,250,14,250, +11,3,165,255,194,255,188,253,252,0,136,253,136,252,131,4,145,4,6,8,125,2,86,0,125,4,205,2,244,249,45,252, +186,255,208,249,244,16,243,8,224,2,177,25,123,249,187,232,112,250,57,3,213,255,7,244,191,249,231,0,83,1,179,3, +46,5,15,253,126,251,195,3,113,1,242,254,255,252,0,253,26,252,59,250,247,1,217,2,146,252,67,255,36,255,235,251, +194,1,240,5,252,2,97,250,48,249,215,252,220,252,213,0,145,0,241,254,38,254,55,5,111,6,69,253,213,0,146,253, +210,252,245,1,112,2,163,6,102,0,197,250,71,253,99,254,250,254,50,254,181,253,255,1,204,3,156,255,81,253,121,254, +197,9,15,16,144,6,35,253,138,251,55,0,248,255,100,251,147,248,198,3,239,16,255,1,128,247,187,2,211,0,205,251, +21,1,244,248,118,249,30,12,229,8,76,1,91,1,60,252,183,3,128,5,235,255,150,252,13,246,139,4,22,9,163,255, +218,254,69,251,205,3,43,1,241,253,212,1,56,252,176,255,139,252,102,255,26,1,108,252,220,5,179,6,156,255,188,1, +213,6,190,251,160,251,58,5,112,0,203,0,34,1,133,255,164,254,141,4,46,0,247,250,133,7,203,4,202,255,137,254, +250,0,199,252,225,252,71,14,13,2,117,250,159,4,234,0,38,249,2,253,89,7,38,1,61,249,48,247,199,6,183,7, +118,243,230,254,89,0,245,255,5,9,142,251,248,251,135,4,219,0,44,251,146,249,225,4,16,10,192,248,20,244,81,254, +142,251,205,254,223,6,110,6,189,2,34,255,3,0,211,255,252,254,103,254,40,1,76,1,27,251,10,255,254,6,152,3, +58,247,14,254,61,11,248,254,35,250,29,252,221,253,250,3,252,252,154,0,16,3,165,247,61,253,175,3,118,254,135,255, +28,3,82,3,219,4,48,255,69,247,21,251,233,2,4,5,108,5,51,3,122,252,115,255,255,253,33,254,232,7,61,3, +39,6,192,4,242,249,111,252,157,253,71,4,170,7,7,7,201,5,14,254,90,255,35,250,141,244,144,254,141,254,8,253, +188,3,39,255,72,0,0,1,42,248,89,254,138,252,17,252,62,11,139,2,51,246,52,255,88,5,38,0,44,248,17,0, +12,14,214,1,27,245,85,250,126,253,228,253,83,252,1,253,78,2,49,4,192,1,141,4,79,4,5,254,164,254,91,254, +211,252,83,250,138,252,83,255,26,254,74,254,172,251,152,2,241,2,166,2,222,1,223,252,74,5,46,246,25,243,60,2, +37,253,240,7,136,8,179,245,168,254,195,9,161,254,149,255,3,253,148,250,175,5,210,255,178,1,241,1,88,0,163,2, +67,253,38,5,114,1,55,0,174,253,200,244,73,5,78,7,127,253,142,255,179,253,223,250,48,252,184,252,88,255,219,1, +37,255,227,252,232,1,16,9,209,255,233,253,123,0,0,249,225,253,192,255,197,4,127,3,21,252,15,254,134,247,46,253, +87,1,4,1,167,14,78,10,127,247,190,245,86,2,157,12,146,6,150,240,153,246,255,7,11,253,194,251,240,0,70,249, +148,250,154,1,119,254,178,1,202,255,240,246,142,3,17,9,119,4,42,247,198,246,63,12,165,255,158,245,7,254,112,2, +175,0,201,252,235,3,186,253,198,1,248,252,13,251,98,16,176,242,229,237,97,15,131,7,205,1,73,4,68,255,232,252, +183,252,233,254,239,253,69,250,26,2,137,2,44,252,107,2,22,250,249,252,199,4,37,253,224,253,89,254,135,2,221,249, +205,255,42,11,255,0,173,0,99,246,137,4,50,12,174,248,36,253,26,251,85,253,2,251,177,251,251,3,81,255,130,3, +222,252,109,253,183,3,164,1,35,2,165,0,51,8,8,2,46,251,31,255,254,250,163,251,129,0,177,0,134,253,109,0, +155,0,225,255,83,255,22,251,56,2,182,4,163,255,50,250,19,250,129,6,58,3,253,249,238,2,222,2,55,253,79,4, +122,0,60,252,70,5,202,2,154,255,83,2,178,250,251,251,56,10,21,7,52,255,239,255,124,249,226,255,240,6,139,248, +5,254,150,8,114,252,253,248,64,254,82,7,55,9,200,251,244,248,107,1,156,6,152,252,76,252,204,8,91,0,246,250, +101,255,154,3,175,255,159,250,231,5,118,1,20,252,137,10,163,16,103,6,31,251,203,247,245,249,67,5,14,255,47,245, +78,5,240,10,116,2,169,253,3,252,158,252,130,1,230,253,145,245,49,255,180,5,254,3,81,1,232,253,161,253,206,252, +29,253,58,249,59,255,215,0,46,246,81,254,9,4,109,2,24,3,208,254,46,2,208,0,97,254,208,5,164,251,17,250, +123,8,98,255,196,250,71,0,155,5,24,7,19,250,45,253,20,2,206,252,106,253,214,252,73,253,48,0,199,0,10,251, +43,1,0,4,57,254,92,6,163,255,132,248,183,255,102,254,205,255,188,3,105,252,60,254,60,5,182,250,191,255,105,2, +99,252,241,6,204,2,135,254,150,251,177,252,212,6,204,4,121,4,176,254,151,253,244,2,223,4,11,4,1,249,193,249, +54,1,247,1,136,252,172,249,146,253,235,253,181,4,176,6,22,5,204,19,104,15,46,242,112,243,110,1,230,1,131,248, +33,241,27,24,192,29,119,244,248,243,191,241,194,238,110,1,58,17,55,6,249,243,127,255,190,1,180,1,252,1,69,249, +140,0,162,5,98,2,67,253,49,254,163,250,241,250,67,9,102,2,90,248,143,250,193,251,206,1,32,4,48,0,193,1, +184,255,64,251,38,255,235,254,126,2,85,5,47,255,117,255,149,5,5,7,12,254,170,253,44,255,119,255,170,0,3,249, +175,1,255,7,75,4,147,7,184,10,64,7,74,252,148,3,75,11,133,4,98,250,43,246,45,2,112,255,74,248,54,254, +19,2,238,3,206,10,74,12,198,249,137,244,136,253,68,1,208,251,169,249,130,6,99,249,69,247,168,10,95,1,114,252, +178,0,156,1,129,254,152,3,43,7,234,243,116,252,255,5,154,252,38,2,207,252,170,255,223,4,161,0,25,2,90,249, +45,253,2,254,77,251,116,3,32,250,66,4,88,10,217,242,192,245,171,255,79,5,186,4,98,248,119,7,110,7,36,247, +186,8,98,0,229,238,158,251,146,1,238,8,106,6,9,254,76,253,50,254,244,1,243,251,218,255,36,0,162,247,244,250, +75,0,139,4,252,254,50,254,224,255,54,6,242,5,34,246,93,254,102,1,151,255,186,0,251,253,249,2,184,250,135,253, +80,254,144,0,158,13,192,4,209,0,98,254,2,254,199,1,8,252,56,250,198,251,177,250,130,255,63,6,152,249,176,251, +20,1,237,10,64,32,127,4,190,1,118,8,28,240,42,252,129,252,74,250,6,5,220,2,91,1,28,253,25,1,176,255, +87,252,93,255,118,249,168,250,110,2,53,249,134,249,185,18,143,20,25,8,172,2,62,255,165,249,19,242,153,2,64,255, +253,246,102,18,156,253,22,226,2,252,211,7,91,9,132,4,67,254,174,1,55,243,179,4,209,20,205,4,66,3,54,233, +47,243,247,26,26,14,140,0,93,247,62,249,207,2,60,1,111,255,62,241,109,249,215,7,20,254,78,253,169,0,75,1, +1,0,119,0,118,10,114,1,234,243,101,1,51,7,23,255,51,246,180,242,181,254,52,4,6,251,19,252,70,11,66,255, +239,248,90,11,164,3,3,2,227,3,106,6,26,5,207,246,228,0,12,249,154,252,147,7,195,244,231,255,240,7,76,3, +200,254,168,248,212,251,88,254,179,5,81,0,236,3,145,3,50,248,252,2,24,6,7,8,240,1,161,252,48,0,100,242, +234,247,129,9,50,6,159,247,6,254,80,10,129,251,4,254,180,12,138,11,72,5,95,251,71,250,69,251,162,1,175,8, +221,255,109,25,61,44,68,246,145,239,151,22,193,11,255,11,41,6,51,230,147,230,64,242,241,251,33,250,175,236,78,246, +217,0,238,251,143,3,100,6,234,245,24,249,202,4,82,2,131,4,47,255,119,250,119,1,30,252,10,252,197,7,37,7, +114,0,48,253,211,250,45,252,230,253,252,253,147,8,162,10,187,252,160,250,143,3,75,12,92,4,210,244,105,245,241,254, +106,251,238,244,218,12,252,14,163,242,251,240,186,254,245,7,203,254,189,251,33,1,121,2,168,6,226,0,72,7,163,2, +49,248,109,0,171,252,68,252,106,0,84,7,74,5,113,245,195,251,129,12,239,8,114,253,59,255,207,247,127,245,97,3, +53,2,201,251,215,251,156,0,185,0,246,5,176,255,1,2,27,36,186,0,106,216,106,253,217,0,119,240,13,4,215,11, +41,252,85,245,224,254,195,5,250,3,123,4,141,0,128,255,167,0,140,251,140,1,178,250,54,0,164,7,208,243,221,254, +19,254,120,254,15,242,235,197,79,239,125,21,132,245,42,232,231,13,242,27,82,239,27,254,111,21,50,14,98,19,196,1, +182,8,152,5,1,243,167,5,218,1,69,245,77,3,118,4,165,247,211,0,79,12,244,7,44,11,83,8,73,248,90,249, +175,5,185,4,176,252,149,255,202,10,183,2,49,253,163,4,171,255,197,0,71,254,198,247,130,253,112,11,152,8,97,251, +213,12,229,1,33,238,89,1,15,253,45,250,226,10,120,12,16,3,76,249,211,248,21,251,160,251,98,2,160,0,46,2, +72,3,103,238,21,251,42,8,236,249,235,255,197,251,171,255,192,8,63,254,54,1,25,7,178,249,89,247,153,18,172,15, +97,246,19,13,213,41,153,7,252,248,119,13,161,252,188,0,67,249,182,243,40,8,18,240,91,246,202,2,68,243,197,252, +138,8,200,251,211,240,222,254,159,246,180,247,221,253,23,252,114,14,247,249,214,243,242,6,226,250,221,247,118,0,29,1, +164,255,244,7,49,5,132,247,36,2,50,7,65,250,198,4,11,9,96,247,220,253,147,9,128,255,111,245,124,254,191,6, +199,6,239,1,212,243,104,254,198,13,18,7,108,252,248,243,62,249,10,255,10,255,56,7,42,7,203,248,29,249,252,253, +20,255,122,8,237,9,254,1,39,247,41,1,212,10,96,253,169,248,38,252,180,7,65,251,77,235,23,7,18,15,218,251, +211,6,86,22,151,250,135,235,162,0,35,5,102,0,121,247,227,249,127,7,184,255,36,3,154,8,205,250,173,252,148,250, +232,248,249,12,243,10,228,3,169,9,39,247,79,241,202,3,61,0,236,252,90,1,244,251,237,250,159,250,238,249,138,254, +246,254,44,254,144,4,47,253,80,1,159,19,241,3,229,254,27,4,135,3,149,254,50,245,99,7,141,2,125,251,186,253, +77,252,36,12,17,7,54,6,15,250,165,247,248,6,163,252,28,255,75,250,235,254,204,3,159,255,199,10,103,2,105,2, +42,255,138,245,198,252,255,252,22,255,0,254,166,254,243,6,66,0,79,2,244,4,181,249,232,2,154,252,66,252,108,9, +136,251,45,3,173,1,108,0,235,4,56,246,132,4,39,5,22,2,249,4,145,252,171,6,125,248,243,239,89,4,20,2, +41,3,15,255,157,243,200,5,59,9,136,3,118,255,244,244,170,0,72,1,187,254,101,0,19,254,183,9,172,7,201,5, +196,8,82,249,110,251,227,12,231,3,192,254,80,2,253,2,194,253,108,240,162,10,220,6,156,238,210,7,180,6,159,253, +5,252,193,247,126,254,173,247,13,251,228,6,218,252,179,249,123,5,79,3,164,0,228,0,83,4,42,253,94,250,240,6, +127,249,197,1,148,7,10,251,192,252,182,248,53,0,162,0,71,11,227,7,163,255,221,10,141,249,89,253,86,4,14,1, +140,252,93,250,247,8,157,252,89,250,35,6,248,2,245,251,202,253,69,4,157,252,128,247,199,0,26,13,219,254,131,252, +95,6,47,253,252,0,144,255,169,253,166,254,25,3,162,9,200,3,8,249,82,244,194,2,246,255,238,25,240,34,98,221, +199,238,141,26,106,252,135,250,41,0,168,245,122,248,233,253,0,3,132,5,24,1,70,247,50,254,116,14,197,9,15,254, +102,245,240,250,39,5,231,2,165,12,99,12,36,244,62,240,40,251,224,247,244,4,217,12,138,241,118,244,8,1,200,252, +32,8,240,2,208,246,159,3,41,12,67,2,193,249,178,254,205,6,125,245,248,241,161,9,63,255,207,251,59,4,247,252, +156,253,32,255,2,5,17,0,17,0,167,2,224,254,99,8,71,254,87,253,31,2,56,250,15,1,241,253,13,251,27,253, +28,4,77,255,38,240,137,4,58,4,28,1,77,9,73,244,157,16,63,27,56,248,48,1,194,251,66,250,214,6,79,253, +168,253,7,250,230,253,118,255,208,253,167,7,224,2,43,6,78,254,23,247,12,6,0,253,90,250,17,4,83,4,171,7, +57,4,110,252,55,251,248,251,33,250,188,2,4,3,8,249,64,1,68,2,84,3,250,5,56,248,200,254,36,4,68,253, +70,17,231,17,98,250,99,252,22,10,233,13,70,251,51,248,32,252,109,236,39,250,52,4,255,1,84,1,20,252,121,4, +0,5,119,3,21,254,79,1,242,2,133,254,178,4,77,247,181,1,147,15,30,6,177,0,143,255,117,5,181,252,42,0, +38,245,180,241,218,12,181,1,230,250,62,249,48,254,182,12,192,255,216,253,205,2,151,253,227,255,4,5,243,0,143,0, +209,255,72,1,99,4,115,251,64,2,191,255,116,251,201,8,113,0,122,252,242,0,241,251,154,255,108,252,71,0,224,29, +180,9,171,238,1,13,199,7,176,247,109,254,129,245,173,246,144,4,82,4,86,246,87,250,8,255,154,252,212,3,175,255, +167,250,172,251,243,1,144,2,231,249,47,0,141,2,237,255,127,6,165,7,77,4,123,251,209,247,63,255,60,1,3,7, +118,3,72,244,220,253,8,1,46,246,147,7,179,6,0,250,76,20,38,20,31,252,219,245,244,240,39,252,234,10,51,6, +230,247,92,2,23,19,165,2,136,245,17,253,64,7,133,0,192,254,84,5,228,248,189,247,34,2,152,4,104,255,115,252, +91,3,24,4,142,252,171,255,138,3,152,254,211,7,1,5,246,250,97,2,221,8,208,2,86,243,57,250,53,1,0,5, +200,250,16,233,84,6,207,6,7,246,125,0,143,255,173,253,104,248,119,2,241,8,88,252,141,255,83,1,47,254,160,255, +127,255,62,0,237,0,117,7,108,15,222,7,217,248,234,245,244,254,71,0,40,0,252,254,57,250,94,0,230,250,199,249, +200,2,27,0,117,251,25,251,93,0,4,1,4,8,125,2,80,252,113,1,153,252,13,4,38,253,168,250,77,253,54,247, +106,6,95,8,187,252,194,248,84,3,96,4,198,254,190,254,250,249,237,0,255,253,122,254,83,2,233,253,41,253,239,0, +179,10,221,8,74,5,113,250,122,250,160,2,27,254,65,3,34,2,29,1,87,8,132,4,246,244,231,249,89,5,143,4, +80,8,54,2,80,252,28,245,112,254,98,5,146,251,124,1,58,255,242,1,160,253,35,248,9,6,30,5,94,249,90,254, +222,6,70,250,244,243,74,247,237,7,246,3,31,250,213,8,166,252,243,2,157,2,74,251,110,6,17,254,98,249,17,244, +171,9,253,19,149,255,141,255,111,6,117,252,147,241,16,5,136,6,222,249,231,249,238,5,119,250,235,237,161,15,177,3, +8,0,70,7,157,248,51,5,117,3,185,0,119,243,65,7,23,15,238,232,56,254,58,3,62,243,14,1,169,3,13,252, +184,6,120,8,81,242,80,0,208,10,93,0,254,252,242,247,79,2,95,0,158,251,218,6,81,255,176,246,57,0,29,12, +62,4,57,241,83,253,118,5,158,254,227,5,127,5,136,1,210,251,27,8,223,3,173,239,59,6,51,3,127,250,14,6, +191,252,6,249,221,251,102,0,68,251,1,253,131,7,186,250,122,253,172,11,153,3,27,6,122,2,213,245,24,1,37,3, +26,253,237,248,225,253,15,253,228,248,136,13,5,250,160,239,44,6,142,0,174,3,134,8,91,3,120,248,231,254,210,2, +52,247,182,7,75,7,232,254,102,2,204,253,100,254,179,254,195,1,71,1,192,251,245,250,129,255,135,2,34,4,119,2, +122,252,183,1,84,248,112,241,230,10,43,8,160,251,83,12,251,3,39,246,213,253,221,254,75,1,239,3,187,2,102,250, +0,249,229,2,99,253,29,248,68,252,145,4,217,13,143,12,45,247,68,241,186,9,163,7,68,2,230,251,54,240,11,5, +162,2,126,249,8,0,125,254,152,6,225,254,18,254,82,0,71,255,226,16,101,251,144,247,127,13,102,251,243,245,47,251, +152,2,173,0,209,248,193,1,36,0,237,11,46,10,167,246,35,0,207,252,68,239,238,252,104,5,54,1,56,9,124,2, +13,0,2,1,63,241,74,252,64,253,166,249,23,11,96,10,51,254,255,243,76,4,211,11,253,248,91,10,92,12,171,243, +170,2,10,2,178,240,126,0,92,11,124,251,155,248,96,13,250,253,92,248,98,253,253,233,176,7,206,10,150,2,94,10, +62,243,35,9,239,5,51,248,102,9,105,250,59,6,79,13,16,250,14,253,173,255,211,250,6,251,87,0,14,0,40,253, +215,254,135,1,249,253,50,247,252,254,111,11,79,10,139,6,210,252,171,247,86,253,37,250,134,4,64,6,45,254,166,253, +201,244,202,0,31,255,175,4,41,27,197,15,149,2,237,245,178,10,122,13,67,238,63,1,201,4,229,247,219,243,247,250, +53,6,136,248,216,1,39,2,172,250,92,1,11,250,69,7,115,11,207,242,115,242,112,253,127,242,119,253,107,12,193,255, +220,3,199,250,192,247,249,8,25,254,162,247,59,254,159,3,105,5,176,7,64,16,175,21,184,254,158,229,29,8,84,18, +138,236,88,238,0,247,138,245,167,4,69,6,61,253,133,254,225,244,169,249,17,7,169,0,110,9,50,10,162,3,102,254, +29,241,166,0,91,1,66,241,200,255,21,4,218,249,221,252,54,7,182,1,195,243,135,255,124,7,226,252,108,247,137,254, +218,9,76,255,249,251,130,3,189,247,26,251,223,12,80,255,11,253,27,17,129,245,209,248,255,16,26,251,18,255,236,253, +9,8,115,20,210,254,112,255,120,2,93,6,198,250,72,241,30,5,114,12,177,3,95,252,45,3,11,0,251,249,113,248, +96,1,238,11,92,5,9,6,195,244,55,246,197,6,124,248,84,251,2,0,14,254,60,3,196,244,74,243,234,7,47,9, +220,20,235,6,245,239,199,9,233,248,190,231,182,240,182,251,87,22,207,10,139,6,221,10,240,254,227,249,129,244,216,250, +21,13,177,22,34,6,106,242,168,239,5,253,124,251,231,244,194,4,108,3,247,249,43,2,147,12,253,245,20,242,36,13, +168,0,174,248,127,0,102,5,83,5,241,255,83,5,233,11,245,2,66,241,235,250,145,253,208,239,159,243,59,7,34,2, +133,238,21,6,194,2,120,3,7,19,2,242,51,243,229,5,155,2,44,252,143,253,114,5,7,0,86,254,182,1,131,5, +64,0,129,254,165,3,127,244,225,243,200,12,89,7,228,248,159,8,159,8,249,252,27,0,140,4,2,253,27,255,186,11, +230,246,202,247,143,2,41,242,131,2,179,5,44,248,21,6,79,4,196,246,34,249,170,3,216,11,48,2,44,241,230,244, +45,1,88,253,146,252,239,251,238,250,113,32,192,33,242,247,89,245,146,248,238,254,69,251,205,242,140,2,5,5,147,253, +250,254,45,8,101,4,96,8,230,11,97,243,233,241,239,0,141,1,80,255,252,5,140,249,134,250,100,34,146,16,136,243, +28,7,78,247,127,232,0,9,240,8,76,249,118,252,197,251,181,0,71,242,116,250,56,13,251,246,231,1,230,20,18,6, +203,246,198,237,227,249,43,14,234,3,254,246,157,254,228,3,119,4,97,247,79,246,198,251,154,2,168,26,23,4,173,230, +117,243,20,251,52,251,25,2,106,13,87,10,193,250,48,248,251,252,49,246,175,252,153,13,7,2,54,240,201,245,8,3, +69,0,69,252,148,3,60,3,27,251,246,254,166,2,225,251,101,252,109,251,40,255,103,6,240,1,218,249,7,9,67,26, +1,254,72,252,54,12,7,252,42,1,255,7,187,253,194,252,88,12,125,14,66,254,112,2,1,5,200,239,122,244,175,3, +193,243,194,255,161,8,50,246,200,246,88,1,123,15,63,255,18,243,81,249,203,254,24,10,251,0,193,255,209,253,186,250, +137,250,148,252,187,18,149,16,186,251,10,248,96,7,204,6,107,6,227,14,1,253,255,243,16,237,45,242,232,251,36,245, +216,9,121,13,187,255,12,7,53,251,89,245,99,4,238,253,170,251,98,4,216,1,136,0,173,255,120,251,31,253,151,9, +136,7,40,0,141,1,85,251,95,0,65,14,44,12,165,248,56,241,11,244,112,254,118,11,212,254,77,0,154,3,246,246, +96,249,212,6,101,7,102,249,96,5,55,7,30,254,8,0,60,248,100,255,131,254,230,253,214,1,182,252,81,1,1,254, +72,1,76,1,50,248,150,252,193,1,196,1,157,250,28,6,21,18,200,255,231,246,99,253,235,5,97,3,18,0,235,255, +86,246,114,4,99,0,128,247,206,15,226,5,173,250,16,253,8,253,207,4,244,0,24,3,255,252,234,250,134,8,10,255, +175,252,201,13,228,7,34,0,249,0,60,247,171,5,216,4,17,240,87,1,142,2,80,250,159,5,216,0,95,2,83,13, +162,8,243,2,222,250,100,251,115,0,125,248,5,11,127,10,201,245,25,6,191,250,181,246,207,11,56,245,17,248,216,13, +77,243,244,239,162,9,99,13,167,8,177,249,15,242,34,4,233,20,54,1,197,237,149,0,2,4,212,253,222,255,141,0, +48,5,198,249,241,242,207,2,6,11,157,255,140,250,46,252,0,252,191,0,153,2,65,2,242,245,232,241,133,8,30,14, +67,251,95,248,220,5,20,10,181,253,137,238,122,251,150,9,172,5,242,7,193,2,26,253,255,2,227,0,244,249,180,3, +133,4,162,2,105,7,238,243,66,249,113,10,80,255,204,244,213,250,201,8,170,252,70,249,121,5,74,255,216,255,192,4, +169,1,107,253,95,252,64,2,154,5,174,250,255,250,13,3,106,254,115,0,1,6,154,7,251,251,87,248,30,12,238,3, +215,239,248,2,132,13,140,7,136,5,199,230,164,243,95,20,102,8,164,13,66,0,76,242,204,255,161,5,50,10,209,3, +79,250,213,247,222,3,243,255,197,251,144,4,228,251,165,5,133,2,4,248,201,4,189,9,126,0,118,240,46,250,236,248, +43,252,234,20,173,247,51,247,13,19,26,0,141,0,158,249,250,246,145,8,234,244,243,243,200,1,68,3,0,4,181,1, +112,253,162,244,106,7,75,11,170,254,78,5,142,255,161,254,184,0,36,253,54,2,17,13,120,10,140,2,143,254,232,247, +167,254,21,0,221,5,60,5,93,254,38,5,246,250,213,255,117,255,231,248,179,5,145,253,173,253,192,3,26,3,235,6, +137,251,163,243,238,250,68,254,223,249,58,251,128,255,246,246,216,244,225,0,130,6,226,11,39,5,133,248,251,1,133,4, +206,252,77,1,175,1,111,253,227,253,87,250,36,4,7,6,252,247,106,0,141,254,43,251,94,8,180,12,100,249,39,239, +83,10,237,253,25,247,58,13,228,0,10,254,191,1,0,2,232,246,39,249,81,10,154,250,7,247,129,0,198,3,161,4, +242,5,18,254,210,241,200,254,204,254,161,7,206,17,255,243,46,241,23,6,4,16,4,13,163,253,187,253,125,251,159,245, +93,8,191,18,138,0,3,243,217,250,96,255,184,2,80,7,98,0,72,0,124,4,52,11,75,0,225,242,11,250,27,253, +14,7,92,244,40,249,172,19,148,248,196,3,207,5,124,238,133,255,219,255,167,1,188,5,245,0,25,0,98,248,84,3, +208,10,225,255,107,4,47,0,72,1,89,9,154,243,161,254,126,6,176,248,7,14,88,6,45,247,231,255,203,0,45,2, +5,1,57,254,198,254,52,4,108,251,3,247,170,254,179,246,93,254,255,3,195,251,171,4,3,4,245,255,181,248,60,244, +198,9,52,255,43,247,21,8,46,249,202,253,100,6,182,248,241,1,102,8,169,1,20,3,58,253,133,255,93,8,180,246, +230,1,10,16,66,6,99,13,85,248,80,241,46,250,45,247,58,9,73,7,22,248,125,246,39,255,112,1,102,0,240,254, +141,249,118,2,60,3,179,12,160,9,202,246,231,6,131,7,137,253,162,251,221,253,71,12,104,250,79,247,33,12,253,249, +39,252,5,11,16,254,178,252,67,250,151,249,99,255,249,252,36,2,190,10,247,4,134,247,68,249,64,4,97,3,217,243, +151,242,5,250,211,252,13,8,206,5,196,255,70,246,32,253,255,15,201,253,231,244,209,253,139,8,138,0,160,235,183,0, +172,13,141,251,191,248,73,6,194,4,161,250,31,1,18,7,120,255,197,248,98,255,120,1,15,0,156,254,45,3,2,11, +251,0,99,2,0,255,248,252,105,5,104,239,31,247,184,14,184,252,18,255,13,12,203,251,97,248,201,5,225,4,218,249, +189,254,183,5,200,252,147,0,227,8,165,2,104,249,239,255,29,254,59,243,91,9,172,8,52,252,107,5,123,252,48,251, +102,251,64,251,73,11,55,16,234,3,245,251,86,254,124,254,231,2,187,5,228,254,85,249,0,0,155,2,13,252,220,249, +16,246,109,0,193,5,185,0,61,3,201,254,74,1,128,11,22,9,146,248,245,0,88,13,158,251,124,250,16,253,206,250, +35,252,215,249,120,2,145,0,119,248,149,254,211,3,172,0,197,253,68,255,181,254,104,3,86,9,255,254,176,249,230,3, +113,3,166,247,226,248,248,5,64,4,78,251,78,253,90,10,110,17,142,6,11,2,165,255,138,253,230,253,30,244,209,236, +222,248,176,11,111,253,192,245,103,5,84,3,222,251,251,248,6,1,22,3,24,5,245,254,71,242,60,3,80,0,233,246, +214,252,65,250,49,250,102,0,44,13,242,0,40,253,139,7,102,249,253,1,126,6,22,247,143,252,15,2,73,2,29,255, +7,249,217,247,98,253,74,5,87,255,108,253,180,255,229,254,38,0,80,253,73,7,153,4,137,253,174,5,14,1,182,1, +12,3,25,255,71,251,174,252,71,0,216,255,27,7,27,3,94,254,189,253,78,8,253,3,232,238,14,3,49,1,102,252, +166,8,142,1,165,9,39,254,176,1,39,17,197,254,151,250,106,253,120,1,27,253,92,246,29,1,250,4,219,1,131,250, +162,0,174,4,71,247,148,254,10,1,200,251,132,1,140,3,122,9,144,7,193,5,189,3,248,249,245,250,85,6,162,6, +247,244,220,251,20,0,188,250,253,254,46,248,16,8,252,5,119,252,67,1,11,249,106,9,90,2,249,239,32,0,203,10, +148,254,104,247,234,8,98,5,168,247,204,247,99,254,32,5,153,2,202,7,49,253,145,231,190,241,253,13,184,14,101,255, +191,3,83,3,162,251,131,2,96,16,109,12,142,251,246,244,237,247,199,4,47,7,64,1,228,2,77,249,128,248,10,5, +16,5,223,255,29,255,81,14,102,5,109,249,20,18,255,2,53,249,141,251,188,247,26,12,66,240,61,242,56,18,213,5, +253,254,141,248,115,253,188,255,55,0,10,0,53,1,125,9,226,244,72,247,6,11,180,7,184,0,57,254,214,252,104,0, +197,5,178,252,70,250,50,250,31,6,255,5,88,242,172,0,21,7,229,0,152,254,57,1,219,254,144,247,53,9,157,3, +11,243,187,253,37,6,239,255,240,2,81,10,121,1,130,253,196,254,13,2,69,252,126,253,151,2,229,247,227,250,99,4, +73,16,81,254,173,238,167,5,193,6,154,2,108,5,111,5,227,248,251,243,56,2,9,0,97,8,119,2,228,239,247,1, +248,4,143,246,108,252,28,254,179,251,96,253,201,2,208,4,90,248,102,252,27,1,248,1,146,6,41,251,114,254,29,4, +246,2,175,0,135,253,161,252,190,250,164,5,4,1,200,251,243,255,44,1,210,3,101,255,16,6,82,6,175,2,99,247, +110,242,219,4,31,0,178,254,166,254,211,252,229,254,230,243,37,5,106,8,9,248,141,3,213,255,145,246,169,0,76,7, +19,252,19,247,167,10,48,1,46,13,244,41,227,240,245,222,51,0,86,255,217,4,174,251,25,0,171,254,48,242,188,3, +62,251,0,252,180,4,19,255,242,3,105,252,247,0,9,1,116,252,87,3,171,251,166,3,125,0,86,250,160,8,2,250, +187,246,25,1,147,252,74,254,54,3,168,2,83,249,227,1,165,1,40,240,124,253,154,6,19,255,167,255,33,252,39,254, +60,12,172,7,58,1,66,0,185,246,59,3,39,2,170,246,8,7,177,9,182,255,200,254,9,3,245,252,231,249,19,5, +81,254,30,6,20,24,17,251,42,239,121,8,54,6,117,253,224,254,249,255,27,2,104,0,0,250,55,247,126,4,5,11, +126,2,94,249,155,250,170,0,248,1,8,254,80,253,22,15,135,2,138,245,246,1,1,1,234,5,20,247,112,252,33,6, +12,245,162,3,98,3,228,251,228,253,183,255,88,4,164,247,73,250,151,7,147,1,220,252,95,3,51,252,231,253,240,9, +119,2,111,251,222,248,10,247,161,253,36,9,168,250,131,244,141,254,182,247,63,2,220,255,130,253,113,255,144,244,79,4, +188,8,135,250,201,255,248,10,130,246,60,240,87,1,152,0,124,6,189,253,24,249,210,3,68,2,213,3,173,12,184,4, +148,241,166,4,223,18,254,3,154,248,185,250,221,0,218,253,229,1,253,247,197,247,166,3,249,5,129,4,86,243,183,254, +50,19,239,3,187,243,160,1,236,7,44,248,208,247,56,3,186,12,200,0,153,252,203,4,133,4,199,0,129,250,236,6, +47,1,201,246,145,0,239,0,116,243,50,243,54,6,220,1,71,254,245,252,59,6,89,3,34,245,8,11,105,250,206,249, +203,255,174,240,114,10,89,3,3,251,169,5,229,8,158,4,90,245,65,250,194,2,58,255,86,245,134,1,29,3,82,254, +97,10,154,254,218,255,59,7,146,1,245,247,177,254,229,8,217,252,19,2,190,250,201,253,251,7,192,251,68,7,155,12, +253,9,6,255,253,249,108,1,96,247,101,248,102,255,122,4,89,252,15,248,9,251,249,245,157,6,241,2,21,254,141,8, +8,2,106,4,191,253,230,249,125,252,114,1,147,14,208,2,23,252,215,255,24,2,44,10,174,1,9,246,135,246,93,250, +35,2,206,12,243,255,161,239,16,255,156,0,42,251,189,2,31,0,53,251,113,241,234,3,221,21,45,247,179,244,251,8, +143,11,62,5,199,248,196,252,107,248,99,245,10,13,169,5,104,229,242,246,210,16,3,251,115,243,66,1,96,10,149,9, +84,248,111,254,2,13,109,0,238,252,86,5,207,254,16,4,87,252,111,249,54,23,222,3,75,248,176,249,244,231,193,0, +50,9,68,251,16,248,205,6,215,11,95,247,183,251,157,252,119,0,68,3,117,254,140,10,147,1,80,248,107,1,216,253, +58,244,126,255,113,7,204,255,188,251,103,249,240,3,239,5,52,250,30,248,55,10,3,26,189,255,87,239,80,0,240,253, +232,251,68,12,126,255,200,242,196,4,55,251,22,239,143,7,155,10,55,254,149,251,186,245,221,11,255,10,163,247,228,6, +105,1,193,0,206,252,224,250,21,12,13,2,41,1,175,246,98,246,28,15,237,2,238,242,54,254,10,3,142,251,73,2, +198,0,142,3,21,5,239,250,143,1,124,251,169,12,79,48,50,36,254,12,65,13,52,254,22,249,88,4,196,241,143,248, +233,253,169,246,115,254,148,249,203,255,110,0,186,249,80,251,124,10,232,1,168,246,198,7,255,2,9,255,225,238,224,245, +59,255,66,246,35,3,2,250,228,2,55,252,232,252,244,5,23,247,78,9,251,252,17,0,156,9,169,245,109,249,34,1, +234,1,142,249,81,253,107,248,3,0,171,253,42,241,107,16,38,6,77,246,112,1,8,253,204,0,24,6,41,250,181,249, +110,17,100,2,127,234,34,248,54,5,15,252,204,243,10,251,30,254,201,2,159,1,136,1,242,0,244,255,140,0,2,254, +211,0,25,253,47,15,117,4,247,238,87,253,118,251,19,11,31,0,75,248,214,11,113,246,70,252,4,255,220,250,100,14, +195,252,203,251,55,8,98,246,211,254,202,3,160,255,75,11,246,254,187,3,215,3,105,245,32,3,86,252,97,2,27,11, +161,248,173,249,85,250,235,252,102,2,56,0,104,251,157,3,67,31,15,12,120,238,235,2,13,0,65,238,12,3,42,10, +94,255,229,13,203,9,66,247,252,251,44,7,244,16,144,248,247,233,6,253,132,247,35,2,204,12,236,253,82,255,216,250, +82,251,32,11,111,6,96,251,178,249,7,253,41,3,37,2,83,1,84,250,191,254,239,10,56,3,39,252,123,236,52,1, +26,16,132,250,30,25,135,20,113,1,33,14,204,248,114,240,84,251,41,4,105,250,193,249,231,12,212,1,179,253,3,2, +116,242,142,250,47,5,80,247,71,252,38,248,229,253,89,7,152,249,17,19,31,2,174,228,228,1,0,8,218,254,195,241, +131,244,132,10,213,5,28,252,115,13,40,1,82,242,13,27,119,31,39,3,105,244,27,248,230,244,98,237,141,4,53,2, +196,11,95,16,141,255,61,255,202,234,82,249,214,12,58,252,176,239,116,243,252,4,125,4,80,251,82,252,203,2,15,3, +203,10,172,7,19,250,222,4,212,9,254,2,39,245,133,252,5,5,1,249,157,254,228,251,152,1,196,4,141,246,71,253, +171,2,88,255,202,251,110,253,250,1,71,1,142,4,38,3,126,254,51,7,222,9,52,9,192,9,211,246,127,243,184,246, +86,244,15,4,172,8,223,8,218,4,28,245,181,248,163,255,231,251,195,1,92,253,129,245,71,6,63,8,204,252,53,252, +89,255,140,8,238,2,17,244,200,253,33,7,59,252,69,3,123,10,20,1,22,4,130,6,27,1,82,251,59,2,240,5, +125,249,153,245,69,251,53,7,102,3,30,247,27,251,10,2,214,2,247,254,89,1,198,0,209,253,248,254,222,1,129,3, +241,255,120,5,240,253,61,242,183,254,99,7,246,1,166,250,110,254,106,3,23,255,76,248,167,252,227,6,76,255,39,255, +219,3,253,1,252,1,229,248,130,0,75,8,180,1,61,0,159,249,220,255,160,6,245,2,3,7,107,252,48,244,52,0, +40,0,49,4,196,16,39,0,60,246,192,12,230,13,218,248,88,250,55,1,232,255,244,7,249,0,41,246,141,12,88,20, +228,250,201,251,55,3,46,253,62,1,178,250,29,252,175,252,109,9,47,12,114,217,115,242,232,21,174,249,136,251,211,254, +206,2,106,249,68,254,124,17,103,253,158,249,170,248,76,1,125,10,42,250,189,0,230,252,56,246,91,17,56,15,178,242, +74,253,127,8,186,254,102,255,13,252,88,249,32,3,154,3,78,249,78,253,75,253,132,1,15,7,178,250,5,1,121,242, +249,241,198,18,12,251,58,239,209,2,227,1,180,3,164,250,178,254,223,13,78,1,153,2,122,3,10,251,10,255,123,3, +222,8,152,0,99,11,211,11,45,246,31,246,177,246,249,6,253,0,178,251,31,1,234,249,195,6,225,248,234,248,23,2, +40,1,122,3,10,251,9,5,132,247,14,252,75,10,160,255,203,4,213,0,186,253,43,248,60,9,56,19,193,249,172,246, +236,255,67,18,143,4,180,229,191,246,150,10,197,3,70,248,139,1,119,10,253,250,210,251,41,0,227,243,228,251,245,255, +4,253,165,253,4,250,154,2,163,252,129,252,142,11,170,6,152,255,87,252,98,253,199,8,200,2,168,245,192,4,46,5, +224,0,146,2,137,249,226,5,47,253,42,244,34,0,109,251,254,5,106,19,161,249,28,237,226,18,48,15,212,242,226,245, +71,253,76,8,184,3,12,1,211,0,216,248,190,250,158,12,83,11,220,244,0,3,159,9,215,4,181,0,127,254,225,7, +191,246,17,245,57,254,6,249,181,251,102,7,22,0,127,251,226,21,189,14,231,250,155,247,236,3,125,255,59,242,115,14, +116,8,41,250,33,250,138,0,7,11,206,244,97,249,45,3,7,1,210,247,243,242,195,7,169,2,2,0,135,7,124,1, +123,250,21,254,136,1,51,254,2,3,117,241,159,251,180,20,139,248,196,251,54,6,5,249,77,13,200,3,47,238,241,255, +102,7,26,4,176,246,138,248,227,8,115,254,251,0,222,3,229,252,86,4,113,2,41,4,210,9,255,254,90,248,61,4, +123,2,170,234,154,243,102,14,36,12,87,4,233,252,150,250,200,252,109,254,222,6,171,251,168,247,219,4,2,7,0,1, +8,0,203,10,224,251,116,254,71,11,54,239,214,243,34,9,234,4,59,247,175,254,75,21,113,9,122,250,111,245,197,251, +112,5,83,251,62,250,220,255,155,15,134,15,185,245,35,250,31,1,112,255,73,3,20,250,109,243,58,248,212,5,49,1, +44,254,161,3,244,241,123,0,155,11,80,255,88,7,75,4,38,251,187,249,232,7,102,252,20,245,225,9,11,244,191,254, +62,18,123,250,110,253,81,9,197,2,60,241,58,251,178,12,153,1,112,253,150,3,184,1,133,245,135,248,39,2,188,254, +122,4,164,2,173,245,198,249,217,254,48,5,42,5,33,253,140,11,18,7,196,252,127,3,199,11,90,15,127,236,91,246, +40,20,166,249,127,244,37,255,255,5,48,2,167,252,193,1,224,250,218,250,203,250,6,1,219,5,54,253,49,7,143,13, +44,250,238,244,144,5,71,4,168,254,51,254,130,0,145,5,229,249,149,2,206,15,27,254,248,247,156,0,1,11,171,15, +166,252,47,247,147,3,154,243,109,249,166,20,208,1,52,240,16,251,107,5,247,6,190,255,253,244,244,238,190,246,68,0, +161,1,96,251,191,2,90,10,183,249,188,254,184,8,11,2,178,6,165,0,162,252,226,9,132,255,15,247,230,9,255,5, +139,1,18,9,222,0,39,2,86,7,134,10,121,255,149,245,77,5,215,255,124,241,194,255,226,7,229,249,223,8,79,18, +119,249,207,248,55,253,52,248,190,247,78,14,232,10,90,240,124,5,216,2,225,1,198,2,205,231,55,240,16,6,8,14, +214,243,74,2,174,20,205,243,98,253,112,2,121,4,64,4,158,9,126,24,17,254,242,4,181,3,4,240,240,249,24,2, +202,7,166,244,206,242,163,3,175,2,59,3,168,0,186,254,33,252,100,252,67,1,74,3,8,249,152,243,60,4,87,8, +70,5,39,4,23,0,116,255,240,248,147,248,243,1,60,5,255,248,81,248,237,5,168,5,181,7,252,246,54,237,113,3, +224,1,222,2,180,2,72,251,217,4,73,2,82,255,120,249,192,246,126,3,128,9,90,252,15,243,253,9,169,4,228,242, +93,1,113,4,221,252,139,245,198,2,180,9,67,251,100,252,142,251,228,0,77,0,11,1,65,8,73,247,129,253,172,253, +117,245,233,6,84,252,19,247,25,254,160,3,82,10,158,250,22,0,195,5,112,251,66,250,8,251,169,3,244,255,227,1, +34,4,250,246,168,250,200,253,242,253,64,4,151,2,252,1,3,9,110,0,164,245,230,254,100,2,141,254,230,253,42,8, +188,9,168,251,135,253,214,2,238,254,204,245,146,251,74,5,142,8,172,26,216,9,75,244,187,9,104,2,237,242,184,250, +174,251,96,255,18,242,73,243,141,10,81,1,249,0,9,0,134,254,205,5,119,244,186,254,189,8,39,251,92,249,190,0, +46,15,214,254,32,240,103,1,88,7,46,1,60,0,84,1,161,249,184,248,171,1,187,2,16,3,17,7,158,255,97,251, +174,3,178,0,82,255,208,250,88,250,79,7,36,1,202,1,240,3,49,248,105,250,8,1,220,1,169,252,226,4,201,7, +173,247,134,252,133,1,107,1,143,252,222,247,8,9,41,2,18,249,214,0,94,254,225,0,137,4,15,5,110,250,63,255, +207,1,56,240,220,0,182,6,236,253,234,3,206,0,177,2,238,1,3,249,68,251,2,8,28,4,219,253,250,0,150,254, +141,3,142,3,5,0,205,250,132,253,116,6,138,3,166,254,111,252,190,12,127,244,153,225,107,21,140,19,59,251,139,4, +218,0,54,250,159,251,7,9,146,4,197,244,117,251,4,255,103,241,251,251,253,11,28,3,188,11,206,0,7,252,70,19, +240,252,232,245,135,252,95,249,194,9,9,254,161,248,146,15,158,9,48,240,141,246,205,4,169,252,83,5,6,3,152,246, +214,2,237,0,15,252,151,255,184,254,9,6,99,7,5,250,128,248,78,4,219,3,4,254,12,248,30,249,213,3,38,2, +223,0,75,1,126,254,172,3,253,1,28,254,13,254,16,252,75,1,118,4,212,6,50,0,91,241,103,3,33,7,13,248, +78,255,153,241,235,248,162,10,86,254,200,1,74,252,144,248,225,249,108,251,62,11,51,4,23,0,18,255,61,252,157,8, +168,2,245,248,93,252,193,255,210,254,161,0,28,2,74,255,133,7,18,6,65,253,232,3,228,4,15,0,146,0,150,252, +27,253,109,4,104,1,246,253,249,254,174,253,69,0,61,4,133,251,227,246,193,9,167,3,179,244,202,1,163,253,117,252, +222,2,106,249,161,251,106,4,5,8,175,8,71,9,250,5,235,1,124,254,246,242,110,242,76,3,196,15,8,1,211,246, +26,9,62,9,143,246,130,240,69,1,220,10,56,0,129,1,196,254,97,252,27,255,189,252,255,8,239,7,117,247,66,250, +226,2,234,254,73,3,170,10,190,245,124,245,116,13,72,3,145,248,212,2,166,4,56,252,242,253,64,4,101,0,177,3, +52,253,251,244,201,1,76,254,185,254,18,4,69,245,215,251,10,4,128,250,227,254,199,1,94,251,4,1,89,7,239,250, +150,243,213,252,32,1,108,255,13,1,208,1,48,2,170,10,228,2,181,242,58,254,231,3,192,255,38,4,12,2,239,3, +95,2,94,255,119,4,127,252,66,249,71,253,1,1,63,12,233,252,221,244,52,3,43,247,211,252,244,9,32,2,255,2, +36,3,20,8,210,1,62,249,154,248,18,247,156,10,157,11,77,2,200,255,81,0,2,9,176,248,137,3,131,18,242,254, +148,250,29,243,220,3,179,16,58,243,252,240,0,254,44,1,216,1,232,253,163,0,0,255,204,247,203,255,231,6,139,0, +77,250,10,248,34,6,8,7,215,241,224,243,115,6,149,16,55,0,136,245,44,0,201,255,114,2,178,252,168,253,127,9, +179,247,9,255,18,18,176,239,102,237,233,16,38,2,61,2,197,7,108,233,27,3,185,20,79,248,150,255,215,0,165,245, +170,250,47,249,99,251,230,1,83,255,61,4,107,3,119,246,96,0,127,9,219,0,216,249,244,245,45,250,182,252,19,255, +114,1,39,252,114,245,5,247,29,1,60,250,47,247,245,6,6,5,214,0,231,3,229,250,230,248,208,253,0,1,11,3, +240,248,208,255,131,5,81,249,214,254,28,249,38,255,203,7,170,244,177,1,215,10,250,252,8,243,211,242,105,1,178,255, +99,0,75,5,93,3,111,255,36,254,159,6,200,245,123,242,184,5,105,251,144,250,132,14,155,7,70,242,103,247,193,255, +3,11,158,15,62,251,192,254,151,255,58,245,119,248,141,1,164,15,234,254,185,243,246,254,36,250,106,253,202,5,55,255, +206,251,244,3,229,250,92,248,189,8,247,255,2,247,230,255,138,7,120,254,35,250,127,6,41,254,195,251,12,6,175,5, +251,255,200,249,22,254,186,251,127,248,144,1,109,11,5,4,27,244,229,1,64,12,111,251,244,242,234,255,55,7,241,252, +70,252,246,253,51,253,168,254,245,2,101,2,122,252,61,7,26,252,29,244,3,2,201,246,59,255,218,10,225,7,142,8, +206,250,2,254,156,0,213,254,124,0,180,246,68,1,11,4,9,255,41,2,82,254,100,2,80,250,163,0,151,10,87,251, +224,1,197,249,25,245,46,7,149,253,17,3,71,11,206,253,190,248,235,249,106,254,249,2,131,8,211,255,6,250,242,0, +160,252,134,0,247,2,168,1,25,4,53,4,149,7,65,250,233,245,160,3,151,3,182,4,126,5,99,255,203,254,87,2, +82,0,57,244,150,251,17,17,74,254,152,244,192,13,123,255,89,243,42,255,63,253,198,6,232,4,14,254,3,4,193,254, +62,2,247,2,3,252,240,1,34,8,171,6,26,250,104,247,84,4,34,2,29,250,203,0,118,5,232,1,18,10,203,8, +37,251,129,0,83,252,236,250,239,6,244,251,193,253,64,9,246,5,5,4,106,251,131,253,172,3,199,250,13,1,207,9, +97,252,235,250,23,8,90,3,45,251,101,3,54,7,80,248,99,248,104,3,105,2,213,9,154,255,212,247,45,14,14,15, +52,255,76,244,95,252,111,5,147,251,221,253,94,1,88,253,9,250,193,0,152,3,213,251,208,0,56,253,176,4,15,10, +33,251,21,255,131,0,7,8,57,4,59,248,150,2,51,255,242,5,235,4,150,253,5,5,108,251,74,0,231,251,69,0, +199,20,212,251,61,251,79,8,161,244,79,250,69,8,44,2,133,2,201,4,156,255,25,5,182,4,105,252,163,254,101,248, +186,251,45,14,8,11,66,0,43,255,73,250,249,252,139,3,144,254,19,253,205,254,87,5,95,5,13,254,129,255,233,251, +58,2,246,3,214,251,0,1,119,4,47,6,28,251,53,0,232,15,242,252,205,245,73,1,189,6,4,4,253,253,11,0, +147,1,225,3,53,254,87,251,84,8,242,4,208,250,101,7,52,7,202,250,109,6,87,8,213,255,97,253,71,253,240,9, +1,5,216,248,53,3,200,6,172,250,203,254,255,8,177,255,138,253,91,254,70,254,234,3,207,0,75,4,43,253,138,246, +113,15,93,11,58,245,236,3,103,7,191,7,87,7,4,242,65,9,251,19,236,253,8,4,75,250,187,245,70,255,182,3, +134,5,174,250,251,251,103,254,10,3,36,8,127,2,23,1,238,2,110,1,55,248,155,2,98,5,131,251,80,5,68,1, +130,2,114,2,238,252,117,5,110,255,40,254,68,253,201,0,52,10,183,253,184,254,120,5,115,253,96,249,23,0,203,2, +107,245,62,252,240,7,138,1,105,3,187,3,223,255,219,250,62,252,1,3,164,4,42,1,252,247,142,7,247,9,42,250, +134,4,64,250,139,248,174,9,178,4,135,0,50,255,151,254,75,252,136,6,21,6,105,254,5,12,29,0,247,255,161,3, +44,250,115,13,249,2,193,245,37,2,150,4,252,3,89,252,246,255,162,6,221,8,247,1,140,249,51,7,50,0,205,254, +1,8,67,254,164,7,189,0,34,247,66,1,177,254,77,6,255,2,193,249,179,255,24,2,220,255,142,253,77,9,100,255, +239,241,173,5,110,5,86,252,178,1,132,3,21,255,73,255,213,1,9,254,21,2,4,1,117,1,114,255,83,247,127,11, +16,13,47,244,94,245,211,1,148,0,161,255,141,9,213,4,210,3,142,0,13,235,205,1,117,21,250,253,187,248,194,252, +0,0,148,0,4,5,231,4,116,242,244,250,196,251,52,247,20,10,180,5,12,254,224,248,156,255,162,5,32,248,67,1, +231,2,57,252,138,251,139,252,127,254,178,249,95,9,92,3,175,240,141,253,176,2,93,2,87,9,82,5,171,250,36,1, +179,1,1,253,154,0,233,252,116,4,28,1,192,252,145,2,25,0,181,10,97,3,217,245,160,0,101,2,240,253,158,254, +220,251,124,5,167,9,72,250,0,5,148,2,237,241,100,2,11,5,131,0,73,1,1,254,6,1,8,4,9,255,54,248, +192,253,12,248,162,250,150,14,198,11,190,252,110,247,78,252,59,249,234,0,79,10,71,252,176,255,130,9,217,250,21,244, +68,10,70,15,95,252,99,246,36,1,135,7,167,245,95,252,127,7,224,249,232,0,126,1,219,253,228,255,196,5,141,10, +142,1,194,9,34,3,100,244,172,249,239,246,243,253,65,12,227,9,105,248,98,246,181,3,155,255,18,250,130,253,8,3, +166,252,234,250,114,12,104,0,3,243,89,0,156,2,32,5,57,0,128,247,135,250,214,248,104,2,66,7,61,250,71,249, +36,5,125,10,27,252,140,248,209,10,16,6,223,241,103,248,25,6,81,0,24,0,111,0,52,247,76,250,45,0,15,1, +233,252,99,249,23,0,189,1,86,5,195,1,68,245,254,255,12,3,88,253,108,2,187,255,11,254,65,250,123,254,121,0, +223,247,120,1,83,11,79,6,56,249,205,255,52,4,103,251,84,3,254,250,55,249,226,0,155,18,188,15,140,218,223,241, +164,21,207,1,59,254,197,252,222,7,222,253,176,243,247,0,176,1,13,10,200,252,71,247,21,9,149,4,3,4,171,4, +210,248,162,245,228,254,46,1,174,250,244,251,136,0,140,6,157,5,242,248,5,8,10,13,179,241,248,251,121,247,91,244, +13,24,147,5,195,245,10,7,155,255,5,247,205,253,248,2,79,250,177,254,177,2,72,246,4,252,209,12,217,6,94,250, +47,254,226,254,157,6,25,4,211,250,3,255,86,251,56,8,53,3,30,245,149,6,121,9,176,250,184,242,127,1,93,255, +234,246,241,6,255,3,147,252,222,248,226,0,21,4,38,247,13,1,202,3,85,255,189,244,70,238,159,7,87,8,224,253, +15,1,75,250,70,0,176,6,64,255,172,249,51,249,139,252,155,2,98,10,19,251,169,242,223,2,57,1,142,5,78,2, +118,248,107,254,45,252,92,7,0,1,34,247,45,4,52,2,59,0,77,243,90,251,211,8,5,250,2,4,47,0,199,252, +38,7,74,251,144,1,34,2,145,250,223,2,47,0,219,243,86,233,113,247,126,6,70,254,218,1,250,4,153,253,53,252, +136,0,11,8,39,12,131,11,95,4,160,254,71,249,48,253,147,9,214,254,96,253,191,8,134,252,84,248,146,3,164,2, +139,0,238,1,155,254,87,8,216,6,245,245,203,254,220,11,70,7,157,255,104,2,32,251,84,250,167,4,52,244,126,252, +157,11,97,7,96,4,246,246,138,6,230,10,130,248,154,250,253,255,131,7,218,0,61,255,126,3,212,251,223,0,158,7, +186,8,244,2,235,251,243,0,83,4,165,0,208,252,179,253,152,6,180,255,87,241,22,3,28,12,127,252,177,252,105,5, +210,2,105,254,166,2,161,1,16,2,90,255,136,254,164,2,246,250,192,5,150,5,142,247,75,1,158,4,88,253,234,253, +19,12,17,8,251,250,86,0,4,2,120,253,235,247,21,254,86,7,89,15,251,2,194,238,250,253,171,3,226,7,219,3, +239,245,185,5,207,1,52,253,141,4,220,2,153,0,49,248,233,2,246,4,185,249,166,254,111,251,137,2,55,14,147,3, +117,4,41,1,15,242,225,252,190,2,254,254,67,6,251,4,70,250,198,248,19,7,22,4,47,250,236,1,86,1,162,0, +154,4,38,4,66,255,55,250,132,0,125,4,83,3,117,1,171,251,131,2,69,11,175,254,83,247,243,255,165,0,97,252, +144,251,120,253,75,252,182,250,163,10,23,14,87,247,220,249,101,1,160,0,215,14,135,2,48,248,93,2,199,0,191,4, +217,254,244,249,34,253,134,251,111,1,201,0,181,3,30,5,79,9,12,24,87,8,193,247,43,254,157,248,107,249,229,8, +129,1,228,239,237,246,123,4,109,255,148,246,196,248,63,4,7,9,40,0,241,255,239,250,157,249,200,255,105,244,89,1, +252,8,60,251,185,255,5,0,225,2,11,0,249,252,181,255,105,248,76,254,196,8,213,6,142,254,246,0,140,255,223,248, +123,251,106,254,73,7,165,255,62,255,165,8,183,254,171,253,191,254,240,2,88,2,28,254,120,252,30,252,231,13,113,7, +127,251,205,5,175,1,208,253,187,1,181,252,98,251,129,4,52,255,90,247,183,1,170,10,241,1,4,249,204,0,34,2, +27,0,172,254,225,252,83,252,181,251,177,7,68,1,193,251,38,5,229,253,194,252,254,0,190,2,13,2,113,0,242,0, +226,0,99,5,255,2,30,248,68,246,76,10,48,11,21,248,73,254,80,0,255,252,32,0,1,0,246,2,147,255,81,254, +86,3,246,1,59,1,144,2,70,0,232,255,59,251,58,252,207,1,191,253,146,2,166,255,91,255,49,6,229,250,255,249, +102,252,221,9,251,17,151,243,153,242,21,13,95,8,189,245,52,252,40,10,33,2,153,252,119,251,149,251,138,0,227,253, +218,3,10,6,12,255,108,0,193,252,10,4,107,6,225,248,141,3,241,4,155,246,240,253,40,6,9,2,76,251,159,249, +255,251,29,251,86,250,31,251,216,247,128,251,36,1,163,6,138,11,135,242,187,244,34,15,51,251,152,245,65,2,94,1, +91,1,46,2,218,14,215,3,74,234,57,249,242,11,212,253,193,242,43,255,68,10,221,253,128,245,208,1,118,253,115,255, +253,7,243,2,30,20,84,18,188,237,183,221,131,247,206,14,161,5,44,4,178,254,159,245,21,247,236,249,41,5,31,4, +254,250,207,242,188,252,184,15,135,1,177,247,100,2,148,1,129,252,182,0,112,6,237,3,177,252,176,252,120,252,5,0, +55,6,147,248,56,253,117,3,112,247,188,5,102,12,76,0,66,247,112,255,194,6,50,248,24,249,250,1,66,3,116,249, +193,251,132,9,9,6,103,1,231,246,47,0,7,12,143,0,14,249,90,253,213,7,91,249,191,253,49,4,153,245,180,7, +126,6,192,252,18,252,245,245,118,1,114,2,229,1,29,0,150,251,135,4,223,0,213,252,25,1,234,7,87,14,207,244, +114,235,147,2,16,253,97,2,121,9,23,251,204,0,53,0,64,255,239,2,164,255,133,4,140,255,54,254,213,3,127,254, +198,255,102,253,105,249,179,0,186,252,28,0,195,4,139,254,37,3,95,255,128,8,158,12,75,251,46,254,144,253,146,0, +233,0,176,250,50,1,94,250,124,252,95,2,172,253,97,255,81,253,35,5,179,12,253,253,165,247,53,6,183,7,172,251, +50,253,21,253,97,2,19,11,112,248,206,251,209,2,18,243,74,5,57,8,45,252,33,0,162,251,103,1,152,0,213,254, +179,251,193,249,23,11,18,8,36,252,71,250,121,252,179,0,167,3,28,4,99,255,254,255,56,2,225,2,190,253,170,2, +60,2,197,242,48,1,239,4,11,251,165,4,69,5,8,0,252,251,78,254,170,1,71,255,58,255,251,253,84,255,200,9, +155,8,241,249,41,1,183,2,107,248,85,253,231,0,163,5,9,252,133,250,164,5,12,248,47,251,124,2,138,253,7,3, +254,254,237,251,171,250,243,252,182,7,232,1,134,255,103,2,166,249,170,251,54,254,82,1,188,11,79,3,24,253,5,1, +7,254,48,2,134,4,86,253,156,251,229,0,153,2,32,0,37,253,203,254,222,0,109,251,202,5,250,7,77,244,188,249, +99,2,106,249,168,254,65,12,67,2,141,0,205,11,81,252,49,0,242,6,2,249,176,251,252,252,2,3,40,254,171,249, +201,9,232,254,235,248,104,2,120,250,36,248,201,251,144,252,184,255,11,0,224,254,96,255,232,3,175,7,168,245,236,243, +4,15,239,253,70,240,15,10,243,3,9,249,26,0,167,6,2,5,80,243,40,248,163,2,207,251,142,1,89,2,153,249, +118,254,184,3,207,2,152,4,164,0,229,251,187,244,146,250,147,14,9,2,130,249,206,1,17,252,60,255,111,1,185,251, +102,6,177,13,57,245,126,244,211,6,201,6,62,4,69,239,244,243,189,2,88,4,131,11,229,254,197,7,95,5,100,238, +22,247,108,3,67,3,130,250,13,250,79,251,122,249,250,254,165,6,205,3,116,0,96,6,193,4,117,251,225,233,230,252, +34,15,191,245,74,246,105,2,84,6,126,255,85,252,145,4,99,1,224,247,235,243,74,2,16,254,82,251,156,1,152,0, +34,3,80,251,25,0,252,251,109,6,240,15,33,249,205,243,46,246,243,6,205,5,248,249,77,249,32,2,191,17,169,254, +201,9,149,20,242,253,96,249,10,240,33,244,163,253,253,255,174,3,173,254,188,251,195,255,90,2,218,0,24,3,132,15, +189,4,211,226,13,253,206,7,49,235,50,8,6,13,172,0,209,1,94,246,143,1,114,3,124,251,4,2,218,6,69,1, +197,253,151,255,209,253,103,249,207,247,27,250,251,245,55,5,50,17,253,0,251,253,28,7,126,0,19,241,64,3,94,9, +238,253,158,10,177,248,248,243,228,9,24,2,207,248,216,249,35,1,169,3,134,253,35,4,47,12,207,243,167,233,122,14, +64,13,156,240,219,254,190,12,138,2,139,3,162,254,221,250,183,10,50,0,129,255,104,15,23,250,46,238,77,251,150,6, +151,5,25,3,65,2,107,251,200,5,187,3,43,250,143,2,104,251,208,244,104,254,27,11,183,13,91,1,12,255,42,4, +47,250,222,247,131,255,168,253,252,3,229,5,222,2,44,6,185,3,135,0,43,255,151,0,65,252,65,3,78,12,110,255, +12,246,68,252,76,5,43,248,193,251,215,9,141,0,113,6,105,7,160,255,136,250,15,249,198,254,62,4,189,6,129,2, +95,12,148,3,152,244,68,254,143,0,120,3,38,3,172,0,105,253,167,250,83,251,205,254,205,5,101,1,65,1,61,3, +93,2,28,253,221,253,38,5,10,1,173,3,251,2,19,8,110,4,215,247,197,0,99,253,201,252,37,1,17,5,48,5, +43,249,231,3,70,255,239,4,177,61,55,69,16,26,253,246,160,227,24,240,51,242,103,242,252,251,178,236,156,249,104,6, +129,249,181,1,31,4,18,240,28,234,129,10,130,11,48,239,227,243,192,250,84,254,177,253,60,4,207,2,79,236,17,247, +121,4,159,7,2,9,195,249,163,2,57,7,146,252,157,1,90,253,160,254,211,2,70,8,227,18,45,2,43,249,178,254, +0,252,225,4,82,10,16,252,133,247,235,0,81,253,57,255,211,6,187,254,193,247,107,1,167,5,39,250,204,2,81,5, +42,250,56,255,68,252,216,254,14,7,187,1,248,1,109,3,78,251,226,252,208,2,108,1,254,3,76,2,26,252,170,246, +161,254,56,8,30,1,85,250,250,245,88,2,237,11,23,5,230,255,176,247,189,253,193,3,208,248,51,252,226,9,22,253, +224,246,166,12,122,7,135,240,173,244,176,3,171,254,141,250,222,254,133,255,98,3,96,5,210,2,147,252,253,6,1,14, +230,5,121,0,237,249,65,253,136,250,89,4,39,4,9,242,63,3,124,6,245,249,189,248,181,252,162,7,5,7,120,253, +154,246,163,250,58,5,83,0,23,245,116,8,76,15,20,253,30,251,228,0,47,14,147,6,188,248,92,243,10,248,117,0, +233,242,225,6,118,7,124,242,199,3,196,254,14,253,0,2,164,250,156,4,211,1,160,251,187,6,36,253,195,250,102,2, +126,249,19,2,23,5,137,7,76,251,141,229,147,245,212,253,187,1,106,3,227,11,201,0,51,242,10,21,159,0,115,238, +111,3,210,252,196,4,74,4,170,250,88,247,165,254,85,7,213,249,224,246,172,0,168,255,50,254,229,7,87,255,109,245, +2,250,162,253,35,9,174,1,52,251,108,2,241,251,255,249,211,1,146,6,197,3,47,253,37,251,87,3,94,2,235,254, +70,254,187,244,130,255,95,7,32,1,189,3,106,5,140,251,149,240,138,254,212,255,211,255,131,21,61,11,138,246,155,246, +129,252,95,251,221,251,50,0,183,3,80,255,204,240,16,0,108,7,58,254,103,4,76,254,22,255,111,253,69,250,227,1, +112,3,89,251,56,248,205,13,130,9,20,246,104,245,105,252,40,3,173,250,240,0,8,5,49,249,68,249,155,3,255,253, +53,247,21,5,96,251,57,250,17,3,85,253,170,255,184,1,105,3,202,250,223,0,67,252,230,246,216,8,91,254,164,254, +238,0,219,252,34,0,119,250,66,255,63,4,142,255,13,245,183,253,155,7,29,253,99,246,204,253,0,3,228,253,27,6, +18,1,51,252,93,0,235,2,102,2,85,237,108,249,192,7,70,7,15,10,248,250,172,254,42,8,36,255,120,242,89,253, +163,4,104,254,240,3,76,255,76,252,140,252,224,3,121,0,251,245,255,0,158,6,168,0,252,242,213,249,43,4,35,2, +101,255,5,253,26,10,33,1,101,243,154,244,114,12,150,34,24,6,249,253,140,0,232,248,15,251,135,239,120,245,69,253, +205,0,14,9,71,250,235,0,243,11,232,248,125,255,53,6,121,252,201,254,153,252,94,252,95,252,209,252,208,250,140,253, +31,6,77,246,64,1,158,21,245,244,92,243,211,16,169,0,38,252,74,10,131,248,252,240,245,254,19,5,116,3,146,6, +59,14,101,12,53,254,88,241,229,254,236,10,46,250,148,244,209,2,184,7,140,252,23,246,71,1,69,3,180,252,136,252, +185,248,29,5,214,3,107,254,179,11,226,243,24,247,199,9,84,254,130,3,119,250,190,246,90,248,74,246,127,2,230,2, +195,2,126,0,197,0,188,5,222,252,129,248,115,6,16,4,40,253,109,6,64,248,63,247,151,5,1,2,171,255,246,255, +188,1,196,246,129,248,106,8,166,6,11,0,191,252,46,1,35,10,62,4,0,252,188,11,207,253,141,238,24,9,119,255, +16,247,243,4,236,5,5,7,35,251,18,245,14,252,20,255,50,1,53,3,50,3,69,6,42,4,221,252,233,2,69,4, +101,253,115,254,118,2,3,253,186,248,116,1,237,3,157,0,194,253,14,254,197,2,25,8,8,3,86,253,234,5,150,250, +33,250,190,6,217,247,173,254,22,12,96,9,219,9,175,0,116,253,100,250,252,241,147,0,89,10,216,248,58,252,75,11, +66,3,162,2,208,255,55,247,102,252,20,255,121,3,18,2,159,0,142,1,45,250,173,1,26,3,103,0,232,6,137,255, +139,0,6,7,103,254,131,253,250,2,65,252,32,253,194,5,134,2,197,248,41,248,210,6,147,2,60,251,21,0,118,239, +142,243,28,9,111,1,133,254,251,7,143,0,7,248,171,251,237,253,181,253,121,1,56,6,168,1,120,255,100,5,190,4, +236,250,241,251,205,9,15,5,55,254,13,2,30,5,212,254,57,248,0,6,255,3,184,251,228,254,157,1,212,0,138,248, +112,2,142,6,133,253,211,249,154,0,106,6,8,251,45,7,198,8,140,245,224,254,138,3,186,251,201,254,244,6,197,6, +178,252,110,247,242,252,142,0,116,255,239,0,78,6,148,252,43,246,131,6,187,253,86,253,163,8,7,3,94,4,191,244, +225,248,15,8,202,1,144,254,71,251,231,253,173,253,101,4,20,7,200,1,172,2,149,255,188,1,59,3,123,255,8,253, +54,255,140,247,54,0,119,11,219,248,31,255,10,5,127,250,28,254,102,5,112,254,235,251,50,3,209,250,86,8,143,5, +71,247,93,1,22,248,98,252,218,3,100,0,213,253,28,253,250,1,202,1,132,4,117,251,16,251,29,11,96,8,193,251, +8,3,21,1,39,240,133,251,150,1,134,255,207,255,30,254,170,3,83,6,129,4,224,0,150,5,185,247,82,251,194,12, +190,253,238,253,37,254,93,254,196,1,231,4,218,3,21,243,148,255,23,5,131,245,115,251,117,12,190,3,136,249,161,7, +22,2,151,0,236,253,208,246,210,3,196,1,198,249,110,251,186,9,129,11,106,248,88,247,231,254,43,251,98,253,167,7, +110,251,6,242,206,255,42,4,140,255,216,0,59,2,120,255,2,4,63,4,104,4,124,255,64,239,170,1,44,10,160,246, +56,255,128,0,107,3,104,12,240,243,77,247,32,10,7,2,23,2,208,250,71,251,180,1,11,251,231,5,148,6,50,249, +175,245,178,255,146,6,104,251,240,2,89,6,224,1,233,7,153,251,163,253,121,1,213,248,113,1,37,6,196,4,22,252, +231,248,7,252,175,254,16,12,104,1,253,254,117,17,117,4,107,245,190,249,96,254,50,250,80,247,139,254,118,2,106,1, +41,2,153,255,197,0,133,7,79,250,81,245,246,5,231,6,176,3,37,0,102,252,166,4,194,5,246,249,133,1,55,9, +229,243,116,253,168,14,158,252,6,1,199,9,152,251,32,247,114,254,238,0,227,253,143,3,210,4,173,248,79,250,229,5, +116,2,168,248,245,252,28,4,110,254,78,1,13,9,43,252,78,252,155,7,122,248,190,253,12,9,155,246,2,255,142,7, +79,0,197,2,101,254,66,0,62,251,222,253,12,4,63,245,253,1,5,12,14,252,88,252,248,4,98,8,192,2,110,253, +196,254,142,253,246,253,107,251,181,252,233,8,33,8,11,251,95,248,219,2,191,247,245,226,69,237,50,244,207,247,212,254, +237,1,139,6,175,254,180,255,129,2,162,4,76,4,189,252,176,3,158,4,226,1,4,5,94,10,119,254,195,241,252,3, +103,16,55,12,233,252,232,252,103,3,219,253,17,5,59,10,228,2,184,243,57,252,174,4,128,1,246,7,145,253,102,4, +186,6,57,251,160,2,52,5,108,7,9,6,110,3,175,252,61,252,65,6,95,2,106,3,134,254,137,247,172,5,165,253, +99,245,30,8,84,2,138,4,98,8,160,249,10,4,228,255,133,251,73,254,205,252,254,12,216,2,124,247,188,2,184,3, +158,253,114,252,234,251,58,254,204,2,119,252,148,0,226,4,151,2,245,4,254,255,217,252,176,253,3,2,120,255,237,254, +57,4,28,1,7,251,26,251,34,10,205,5,57,252,115,5,245,2,77,255,218,251,107,249,115,0,171,4,41,0,30,251, +11,1,6,5,79,2,203,3,19,0,13,248,49,253,131,5,203,1,237,250,153,0,92,4,174,253,116,1,123,3,90,254, +253,253,109,0,7,254,174,253,72,5,179,0,87,250,16,251,107,3,106,9,217,255,133,253,170,0,92,2,68,2,177,3, +43,1,182,252,90,2,253,2,1,253,91,246,163,4,58,5,25,252,85,12,88,247,249,251,88,17,52,236,143,248,137,19, +148,250,240,250,3,8,166,4,138,253,124,249,188,6,117,3,206,249,69,2,48,252,216,253,61,4,25,2,109,9,92,10, +171,2,187,251,24,251,210,254,9,0,78,253,92,4,192,5,87,253,39,3,28,252,236,255,160,9,133,246,1,249,92,14, +211,9,245,242,226,249,114,9,43,254,141,246,153,247,88,7,44,16,77,254,156,249,187,2,113,251,199,250,147,7,80,254, +231,249,215,3,27,4,59,251,126,243,28,0,184,6,51,9,69,14,61,251,136,250,60,9,24,250,60,251,207,12,129,250, +50,244,159,9,21,2,10,244,64,3,75,8,47,247,97,251,232,4,190,0,148,3,217,4,228,255,169,248,35,250,221,3, +28,4,166,251,219,247,19,4,92,10,53,0,163,251,78,6,0,12,237,250,195,249,145,5,205,1,159,4,234,253,245,248, +184,8,148,6,19,255,161,252,95,255,149,7,53,251,94,251,64,3,212,247,164,251,130,1,53,1,183,6,34,1,250,248, +243,253,153,3,69,1,241,5,44,5,153,246,212,246,198,2,231,6,192,253,95,242,125,253,10,16,102,2,53,244,135,4, +44,5,72,255,231,2,214,250,165,1,189,3,127,248,133,1,225,2,119,252,143,0,147,1,254,252,255,251,162,2,84,0, +72,0,206,7,16,5,124,1,88,251,7,1,218,9,124,251,143,248,213,2,51,1,123,252,231,1,234,255,139,244,36,253, +234,0,15,0,97,9,226,0,149,247,32,255,105,7,242,1,151,253,73,4,51,1,80,252,240,252,233,254,17,255,115,253, +199,6,16,6,79,252,114,3,151,0,86,250,63,2,71,253,159,253,108,4,208,253,75,1,105,9,2,5,125,254,213,249, +151,250,94,8,6,2,151,241,61,5,174,14,15,6,205,3,138,246,252,243,64,251,129,250,52,4,93,10,4,249,156,252, +236,5,25,250,33,255,30,247,103,246,194,13,28,7,243,253,41,255,135,3,221,4,187,251,54,251,56,252,245,1,212,2, +57,253,112,0,172,252,200,2,85,5,182,251,241,3,210,248,67,242,125,6,111,4,47,1,176,251,169,240,50,0,34,19, +134,1,154,240,206,3,126,1,52,252,118,4,59,1,230,5,4,255,30,6,128,11,83,245,154,247,112,5,252,2,0,249, +223,254,66,2,220,4,143,6,196,242,226,0,68,8,62,247,80,254,242,253,102,10,43,8,49,234,156,243,142,2,84,3, +59,6,218,255,197,251,68,251,213,250,225,1,74,13,54,1,101,239,121,254,44,10,251,8,237,254,244,248,109,3,36,253, +88,253,14,1,174,3,160,2,53,247,188,9,96,0,8,237,229,1,140,7,245,8,34,6,100,251,12,254,252,4,148,2, +93,250,91,253,47,4,101,255,15,245,93,4,48,14,188,246,215,245,220,9,12,9,6,251,22,0,168,254,69,241,69,2, +245,4,181,247,255,1,31,4,238,1,189,2,10,255,150,4,174,3,143,0,253,0,226,249,184,252,58,0,232,0,163,4, +83,3,151,1,234,254,4,252,109,255,109,8,120,249,225,250,7,20,189,252,196,250,87,13,161,0,214,1,183,253,177,253, +245,0,141,250,52,4,160,255,185,251,202,4,34,253,52,251,231,252,105,0,82,7,15,253,48,253,192,251,192,254,225,14, +32,249,219,243,84,6,193,2,38,0,17,255,65,2,29,252,89,250,255,3,171,249,231,249,78,13,42,8,93,244,229,250, +251,4,37,7,138,3,197,248,27,255,186,250,224,248,220,1,60,248,114,254,13,11,228,8,164,2,67,5,48,9,159,242, +103,240,50,8,167,6,173,0,252,255,211,254,48,2,227,5,41,3,134,247,112,254,232,8,206,3,196,247,55,246,37,10, +18,251,236,241,154,3,151,0,72,10,16,2,20,251,231,255,16,245,249,251,223,255,167,11,205,9,15,251,96,2,101,5, +171,3,190,239,29,252,51,19,254,254,63,4,240,4,118,251,180,253,95,245,165,5,168,6,205,239,113,1,212,14,225,251, +136,250,69,8,235,2,48,246,245,253,33,3,242,251,54,1,149,1,132,255,26,5,232,4,82,22,153,12,101,222,44,244, +148,16,39,4,253,6,160,254,17,6,217,251,70,232,68,10,62,8,107,249,206,254,65,254,182,2,184,0,156,4,174,252, +217,0,205,2,162,245,217,9,106,2,214,241,95,0,126,3,100,1,68,0,59,2,183,4,30,2,81,248,112,245,56,6, +244,11,231,254,95,246,156,1,89,10,151,251,178,248,146,255,132,0,135,5,169,254,168,252,155,234,45,215,84,6,14,24, +17,252,192,255,223,2,40,8,78,12,66,4,231,1,237,253,253,0,13,9,121,2,139,254,90,0,183,250,92,4,214,3, +36,244,227,254,28,17,109,14,46,247,79,248,227,6,68,3,136,4,155,252,252,6,231,19,80,246,65,248,156,12,216,250, +11,246,228,252,78,2,4,9,105,252,146,1,101,253,170,236,203,2,147,14,173,9,28,0,242,247,70,251,236,249,97,255, +139,1,132,12,95,18,131,246,239,238,241,4,174,5,162,253,140,18,32,19,43,248,63,248,208,254,201,3,118,3,190,238, +17,242,112,4,135,5,32,12,113,253,254,235,197,4,247,13,82,251,13,248,23,253,128,250,133,5,42,10,49,253,236,4, +178,2,96,251,110,0,137,248,93,249,96,0,137,250,128,250,65,6,254,1,75,251,113,1,105,12,216,21,250,6,204,251, +228,248,79,254,101,7,170,247,52,253,163,254,154,238,164,3,71,13,240,247,244,249,145,6,19,1,95,1,6,255,106,249, +2,3,1,4,144,4,2,8,118,251,5,252,198,3,13,251,145,1,128,2,204,247,3,0,32,253,78,252,213,9,45,8, +74,249,79,247,28,2,242,2,86,0,132,250,157,255,248,7,31,4,81,255,69,247,203,0,241,255,25,250,44,12,219,5, +19,246,161,249,133,254,73,254,186,4,134,8,175,253,174,0,48,9,114,1,147,251,189,0,243,4,135,1,214,4,212,10, +56,243,19,238,121,14,225,1,85,242,251,1,0,252,157,244,178,1,162,13,78,254,79,245,248,252,80,0,124,4,230,255, +125,4,18,1,220,253,49,2,58,243,141,4,43,10,144,238,180,2,180,15,84,250,213,249,9,253,176,254,233,255,2,252, +251,0,58,0,65,8,33,10,162,246,82,253,97,4,158,252,15,5,109,5,40,252,3,7,252,2,102,240,91,252,155,1, +17,0,240,5,210,254,245,254,252,254,30,250,74,254,228,4,253,2,107,251,133,251,164,3,130,6,143,2,222,4,14,252, +123,248,153,1,193,249,2,255,137,1,230,251,180,10,53,2,30,241,139,254,101,9,82,2,102,250,175,255,68,6,61,1, +255,3,21,1,121,251,242,2,248,255,48,3,222,249,111,238,157,8,120,12,243,252,158,254,52,6,200,1,201,243,246,254, +73,12,252,2,62,247,168,255,136,12,211,253,2,245,193,252,159,255,33,3,172,7,254,7,227,1,162,254,181,252,63,0, +178,6,228,247,10,244,152,0,63,252,22,2,111,2,208,253,199,14,204,252,23,235,112,6,121,16,197,2,40,249,210,1, +194,8,43,249,2,246,44,0,156,255,144,254,27,255,161,4,118,9,163,249,224,249,164,0,119,245,181,248,167,246,240,255, +102,10,148,250,237,248,105,252,119,8,145,8,254,249,215,255,211,255,123,251,130,253,116,10,239,2,152,244,7,12,25,10, +29,5,134,14,14,248,81,248,213,9,158,4,66,5,200,9,187,254,88,244,169,253,184,254,105,246,190,5,164,9,0,0, +203,0,239,254,246,1,241,248,143,246,105,5,83,2,244,254,28,254,110,254,184,6,217,10,51,3,156,253,93,1,139,252, +33,253,120,3,200,0,200,252,138,255,67,255,31,7,140,21,179,251,9,246,237,10,28,0,177,2,72,255,191,244,61,255, +178,254,63,251,72,251,224,254,210,11,95,0,204,240,40,254,16,2,62,10,245,6,93,246,177,7,246,4,162,243,70,239, +8,249,4,7,178,255,235,13,26,14,239,244,89,242,17,249,14,6,205,253,129,243,216,8,109,8,83,251,24,5,70,2, +239,254,164,2,241,250,84,253,150,0,229,0,174,254,161,255,48,5,234,251,173,0,234,13,214,255,104,246,169,0,226,249, +246,2,148,23,113,6,65,254,60,1,179,250,108,247,4,1,95,4,109,249,165,255,228,252,247,253,190,2,170,2,42,3, +167,242,231,255,212,3,4,255,254,11,2,250,47,245,38,4,103,9,242,3,134,0,189,3,6,0,94,0,124,250,59,249, +55,4,57,4,214,250,72,249,197,1,14,3,153,0,78,253,38,250,250,0,165,251,33,245,50,10,180,9,87,251,1,252, +223,248,127,5,138,4,242,251,24,2,194,254,154,0,173,3,244,1,190,250,16,252,106,1,97,3,42,0,60,249,48,9, +33,255,16,249,29,2,255,244,206,7,93,7,223,249,117,2,183,249,236,253,148,8,254,3,69,1,22,255,190,247,154,255, +11,6,189,252,220,255,229,253,33,252,201,8,164,4,170,244,142,0,185,21,148,9,33,253,253,0,38,248,102,247,110,3, +251,253,141,255,11,5,147,252,223,253,248,255,95,253,173,249,121,253,11,3,18,5,166,5,80,247,162,252,107,3,49,253, +46,8,144,1,207,246,26,0,240,255,98,252,52,0,72,252,98,2,253,4,53,247,200,255,32,4,255,2,94,8,162,255, +13,246,182,248,147,12,117,9,130,247,85,248,40,252,34,3,171,255,153,254,134,254,31,250,217,2,82,253,127,251,6,4, +249,0,147,1,129,251,68,254,138,7,123,254,252,254,244,0,112,254,22,2,211,1,109,252,158,250,231,6,145,1,0,252, +54,8,152,255,45,253,93,0,71,252,168,2,117,3,53,253,215,254,131,1,45,254,105,4,223,254,163,245,28,2,133,254, +63,251,131,2,204,2,126,2,106,251,254,254,41,253,64,250,110,11,181,0,95,248,56,4,42,253,188,2,121,10,202,1, +68,244,222,241,115,8,243,7,117,249,141,253,63,255,194,3,156,0,140,245,171,2,210,5,93,247,188,3,183,0,53,250, +94,8,31,255,111,3,48,4,42,251,166,10,235,253,0,242,245,3,193,10,217,5,117,253,96,7,250,11,31,247,25,2, +196,11,164,251,166,251,103,249,89,1,83,9,230,255,96,245,234,241,97,6,102,8,59,253,120,4,191,8,19,251,44,233, +161,254,177,11,54,245,106,249,8,11,195,2,113,250,251,2,51,254,200,249,105,4,177,7,3,3,174,252,46,250,148,255, +50,253,119,247,144,4,220,4,4,253,39,6,68,9,241,1,250,245,62,250,187,10,84,10,124,250,162,248,175,249,125,247, +143,8,208,1,73,1,212,11,93,252,12,249,90,244,155,249,12,0,5,0,243,3,199,248,108,1,188,4,157,249,14,5, +110,6,162,249,65,0,175,0,27,245,33,255,151,1,233,0,120,7,194,251,82,249,131,4,191,0,33,2,177,4,213,246, +99,254,4,3,157,7,161,15,170,244,148,245,84,2,45,250,164,0,152,7,212,251,226,252,108,17,242,253,130,247,251,4, +239,245,224,0,252,6,34,251,75,4,111,3,124,252,62,7,219,253,145,245,52,6,29,255,116,249,218,1,12,4,187,1, +29,2,249,2,184,251,94,2,81,3,218,249,150,248,151,2,106,5,116,252,11,1,219,253,89,5,150,4,232,252,193,17, +196,4,162,245,107,5,10,4,239,248,122,255,43,254,229,243,1,255,46,254,219,253,254,2,145,248,164,254,131,9,37,7, +83,3,184,254,157,249,223,248,108,0,197,8,222,252,210,252,74,11,39,1,82,248,159,247,242,7,235,10,162,249,37,252, +232,251,117,6,171,3,67,250,188,0,141,255,48,254,33,248,75,8,66,255,198,236,160,8,254,7,71,247,204,249,39,8, +173,5,181,249,255,0,181,247,235,253,17,13,162,253,230,247,120,251,122,2,1,7,121,253,139,252,125,251,102,4,141,8, +53,247,221,5,64,6,241,244,154,254,246,254,149,4,148,6,86,252,51,247,169,253,200,14,90,14,131,2,7,255,85,1, +148,244,39,248,215,4,71,254,88,7,71,255,255,251,130,2,227,242,51,253,30,6,22,253,149,253,46,3,254,254,47,249, +171,0,253,254,77,2,70,0,116,238,243,250,68,5,226,250,20,2,16,11,52,9,29,252,57,244,175,0,85,6,247,7, +110,1,189,252,230,255,245,243,134,1,198,10,29,246,203,251,159,2,193,1,105,6,126,251,164,251,193,10,67,5,169,248, +252,249,56,0,167,1,122,4,99,4,134,251,184,254,108,2,217,4,126,6,156,252,108,0,15,251,112,251,2,12,97,0, +32,254,161,1,201,2,231,9,218,245,241,250,178,12,16,249,90,247,175,254,121,3,87,19,158,6,119,245,175,247,192,1, +14,16,80,254,198,239,48,249,197,248,106,13,163,6,185,237,175,4,70,5,59,4,219,1,128,242,7,10,225,0,202,246, +197,6,195,250,233,250,130,7,255,8,78,245,165,247,45,6,106,252,143,10,66,250,11,239,28,17,161,255,254,250,16,12, +35,251,59,252,83,255,224,251,87,254,14,1,173,2,126,248,158,255,115,5,55,253,153,254,86,252,116,255,252,2,30,0, +13,254,18,5,58,7,93,250,165,250,191,254,17,9,219,8,155,250,101,251,150,250,177,254,163,1,72,1,29,3,129,6, +193,253,207,237,60,0,68,8,88,11,112,9,92,235,67,249,111,9,212,3,223,12,43,248,248,242,143,22,88,7,149,240, +244,4,33,253,41,249,222,13,212,2,52,241,8,247,231,4,14,8,137,246,42,249,67,13,1,253,194,244,238,255,255,7, +224,1,21,239,200,6,155,9,182,249,118,255,224,237,24,247,78,6,33,255,239,5,62,7,84,250,200,246,23,5,224,7, +175,254,112,254,130,255,250,252,176,4,70,255,17,248,84,8,241,3,246,253,197,252,251,251,74,1,2,255,119,1,113,251, +1,9,7,8,139,240,56,2,35,8,80,255,49,0,168,254,159,255,241,252,179,254,179,3,137,0,255,254,205,254,213,255, +228,5,110,245,27,245,219,8,128,2,141,7,89,7,87,248,73,252,86,4,62,3,175,5,65,252,11,240,6,7,175,5, +170,248,151,5,108,4,224,251,99,253,96,6,115,248,189,253,30,11,105,243,202,250,205,11,127,1,41,248,231,2,222,8, +108,253,212,255,137,255,99,248,3,254,160,10,182,3,72,252,183,3,82,2,72,254,194,248,4,0,203,6,53,4,230,2, +217,252,98,253,49,254,3,2,59,1,201,254,110,6,73,5,12,250,208,251,130,6,169,254,183,252,247,0,197,2,210,2, +25,254,222,4,191,255,121,252,21,0,80,253,158,255,147,4,108,4,131,255,75,5,0,250,179,252,1,13,253,253,187,253, +53,248,39,245,202,10,29,13,87,6,165,2,218,250,53,252,233,4,220,2,238,253,250,248,100,1,3,6,9,252,233,4, +233,2,103,254,131,0,225,255,125,5,194,252,146,253,241,1,128,248,187,253,148,12,72,2,111,244,144,254,223,5,244,20, +76,11,155,242,187,3,223,250,157,234,215,255,225,2,191,5,172,10,107,251,19,249,229,254,140,13,37,8,113,235,221,0, +70,13,206,247,141,252,130,0,36,255,237,255,240,249,11,251,106,8,43,253,180,225,184,240,194,9,192,14,120,12,222,2, +47,4,49,4,193,252,246,255,112,254,128,255,134,2,112,252,73,1,211,251,183,250,117,7,33,255,120,1,6,8,48,3, +166,253,159,246,165,255,126,5,201,2,173,249,139,249,241,14,22,2,94,242,118,255,59,252,186,254,109,6,168,1,168,251, +9,254,33,6,75,248,94,254,33,9,171,245,14,1,33,3,173,248,239,1,31,251,172,255,26,3,209,249,214,255,10,7, +168,8,112,1,113,250,140,253,1,2,165,2,74,254,9,252,39,252,82,254,204,4,254,253,182,252,100,7,46,244,166,249, +21,21,6,252,253,249,53,13,187,252,14,253,99,2,33,254,188,253,20,2,126,7,61,244,147,246,197,6,100,254,1,0, +96,253,33,1,1,4,120,247,151,1,90,17,168,4,147,232,128,254,72,18,254,248,221,254,213,251,11,253,11,14,141,251, +93,254,26,2,141,249,118,8,138,5,68,249,16,251,139,255,6,0,38,255,205,5,27,1,70,249,154,250,96,255,172,10, +111,1,213,249,191,3,156,2,141,7,229,7,1,247,6,245,241,0,95,1,90,4,120,2,221,249,10,9,57,5,36,245, +93,254,45,3,81,0,124,251,215,244,12,251,247,9,29,6,146,2,92,2,46,250,99,255,220,2,203,5,10,252,104,246, +58,0,32,252,123,5,60,253,130,234,151,254,233,15,30,3,44,247,215,252,174,254,252,0,219,250,22,248,2,7,184,4, +142,254,190,2,202,1,200,250,20,254,59,255,37,250,176,7,120,15,209,253,226,246,55,7,166,3,255,253,136,0,106,250, +141,0,23,253,202,252,57,3,85,0,110,2,215,2,177,1,130,4,18,8,54,2,20,10,157,3,112,243,19,7,108,6, +229,252,108,250,151,250,155,1,17,252,181,0,242,1,231,254,252,1,174,1,172,254,141,4,189,5,204,245,114,251,163,0, +210,5,58,255,199,235,90,4,77,9,79,1,14,5,147,250,147,13,217,11,168,241,140,0,246,7,139,250,94,250,243,3, +218,2,132,245,145,3,173,7,63,247,87,1,24,4,13,2,143,252,49,3,177,14,220,245,223,248,215,255,29,253,103,19, +80,14,50,254,0,244,96,242,34,6,201,5,151,248,5,252,208,252,51,252,142,254,178,0,121,5,127,1,58,0,196,250, +112,253,27,15,73,2,16,248,178,251,207,250,9,3,141,254,38,250,97,250,185,248,188,1,158,253,251,249,156,2,74,4, +143,3,33,251,40,0,47,6,61,250,65,0,73,252,120,245,146,2,213,3,107,2,86,3,51,1,166,251,205,252,146,1, +15,255,207,255,95,1,15,1,26,0,99,3,235,252,117,253,106,5,117,248,190,255,219,3,126,252,136,7,47,2,147,255, +230,4,53,3,179,6,175,253,135,246,249,0,115,0,42,3,206,11,246,6,146,2,205,248,254,254,62,8,133,251,163,251, +3,251,203,246,236,246,184,0,251,11,168,251,52,249,84,4,212,253,242,2,97,7,128,249,12,252,61,0,52,1,73,9, +115,245,217,243,177,5,57,254,185,251,66,252,134,1,100,253,109,248,32,7,20,4,3,8,2,13,125,247,126,247,229,6, +43,3,158,253,232,254,131,255,163,4,252,7,219,0,138,251,238,253,22,5,186,19,202,16,158,249,218,248,207,3,85,1, +80,247,143,243,244,254,49,6,116,254,24,247,177,254,232,3,148,254,92,0,69,3,244,254,247,255,197,9,140,251,108,246, +224,5,199,239,63,243,171,8,243,0,104,5,70,254,10,5,240,14,110,248,194,248,228,255,144,255,46,0,224,0,41,7, +75,254,80,247,251,254,119,5,173,255,89,248,85,4,175,7,97,4,12,6,187,247,229,254,86,5,222,245,73,10,197,9, +51,2,196,28,67,4,89,240,23,3,0,0,237,249,128,251,36,3,188,4,220,251,5,250,232,3,108,8,141,252,187,246, +196,249,187,251,167,249,251,2,164,8,81,248,84,254,25,4,200,245,150,253,138,4,13,252,215,254,174,255,135,2,236,3, +207,243,201,255,182,8,171,247,120,250,183,0,26,3,180,249,235,252,57,8,239,253,220,1,115,2,107,1,30,251,132,243, +174,6,189,2,207,249,197,1,21,252,65,247,129,2,239,12,11,4,180,250,69,251,91,253,140,255,106,2,234,251,118,249, +163,1,7,254,168,4,108,254,216,249,243,15,247,253,13,242,31,3,112,11,83,8,72,245,212,255,152,7,3,249,141,251, +150,255,244,5,93,0,210,249,173,1,164,5,19,5,50,250,251,251,197,0,181,249,38,255,84,5,201,3,162,253,11,1, +97,1,255,248,113,7,18,5,3,248,103,2,242,254,33,254,68,2,19,253,253,2,59,3,110,3,69,4,83,253,202,253, +51,249,149,254,239,7,198,253,136,254,209,2,27,253,243,251,30,252,1,1,84,5,254,252,121,253,217,4,192,251,240,253, +213,7,3,255,25,246,248,250,142,6,103,2,103,253,99,3,55,1,224,254,107,252,31,1,59,4,143,247,15,252,188,8, +239,2,147,2,1,2,48,245,215,250,13,3,108,1,93,2,201,252,95,2,181,4,121,252,242,0,228,0,129,252,196,255, +68,1,134,250,244,253,153,3,10,250,116,254,230,4,141,2,46,3,134,255,34,3,47,253,202,246,12,1,138,2,223,7, +195,254,206,244,200,5,254,2,175,4,180,4,217,246,6,0,39,255,5,0,124,4,65,253,34,0,251,3,42,255,32,247, +47,3,7,4,168,251,133,0,46,252,83,5,11,255,170,251,186,5,197,0,148,12,115,240,19,215,57,250,169,4,142,247, +222,252,133,5,11,254,91,255,29,4,63,5,42,6,185,250,134,5,29,9,253,251,183,2,131,5,14,252,111,250,93,8, +86,4,240,254,213,4,5,1,27,3,34,0,179,255,237,248,80,251,9,11,136,253,62,1,186,6,170,252,2,2,190,254, +213,253,154,254,103,255,238,2,88,255,35,3,44,3,237,255,10,1,215,251,139,253,239,3,64,1,201,251,16,249,17,6, +6,9,137,249,11,0,210,3,112,3,121,5,136,251,189,254,244,2,210,5,206,1,184,248,253,0,161,2,206,253,134,255, +25,6,46,255,13,248,5,2,46,252,219,0,106,13,245,253,92,246,61,1,71,3,152,1,45,4,63,255,146,254,83,253, +194,249,50,255,15,5,227,2,15,241,127,250,110,6,168,247,176,2,214,3,149,255,168,8,1,1,218,253,11,2,127,5, +240,0,58,0,82,255,39,246,112,2,187,9,236,253,100,254,194,8,181,3,206,254,101,4,224,249,40,243,109,248,134,7, +168,12,119,251,81,253,162,252,30,0,231,5,197,253,213,14,235,4,102,239,66,248,217,254,41,13,33,4,248,248,102,0, +241,254,205,12,113,7,149,249,71,1,32,0,87,0,161,254,248,255,12,2,21,253,235,0,31,254,227,253,86,4,255,2, +187,3,225,254,33,247,202,2,86,6,40,245,151,1,105,15,229,252,206,252,109,6,133,253,71,253,2,3,130,255,181,1, +159,247,104,248,241,11,203,255,88,249,146,245,17,15,48,36,15,219,103,228,34,31,84,6,214,1,224,251,158,248,168,0, +197,250,249,4,15,255,51,254,214,1,132,0,87,5,29,247,207,252,166,4,96,243,74,252,49,9,38,2,22,6,12,0, +176,241,57,254,176,1,191,249,229,1,153,2,156,0,18,255,138,248,23,2,198,6,239,254,35,252,126,249,55,3,182,1, +220,252,59,4,102,245,61,250,108,6,196,252,222,250,218,255,25,7,87,250,145,254,20,8,121,254,205,4,79,251,232,0, +108,6,88,251,46,7,164,2,209,254,29,253,116,253,134,9,220,1,50,250,196,253,44,1,252,1,188,5,240,252,17,252, +107,7,68,0,163,7,244,7,237,254,126,0,44,6,5,2,134,234,54,0,28,10,189,250,165,4,162,250,94,2,48,4, +53,2,12,10,89,243,49,0,90,9,243,250,76,254,212,250,155,3,156,2,33,251,214,0,9,249,150,247,82,0,39,5, +108,1,42,254,42,4,236,0,12,8,202,12,38,244,196,244,250,254,196,252,35,7,8,253,30,250,240,4,149,255,251,0, +227,1,30,6,7,1,255,250,196,252,25,246,77,3,194,4,109,254,228,253,67,252,250,5,101,246,132,0,210,12,115,246, +226,0,31,253,3,0,26,12,210,246,72,1,226,6,202,252,163,3,136,255,2,255,152,251,167,255,114,3,138,245,171,255, +158,2,89,254,195,6,26,249,169,247,107,7,42,5,50,255,47,1,156,2,184,5,228,5,154,252,172,249,136,245,13,249, +98,6,104,4,134,2,254,1,223,2,155,3,170,252,173,254,214,253,204,250,252,254,234,253,240,0,151,1,154,253,200,0, +117,255,90,2,142,1,84,250,24,255,210,3,153,2,154,250,254,1,38,3,33,248,58,7,113,255,51,251,168,14,62,3, +24,248,136,251,113,255,57,3,161,2,207,253,226,254,122,252,108,253,198,10,0,255,36,249,213,253,31,1,83,7,254,247, +148,0,207,5,180,250,241,252,209,251,244,5,46,253,131,254,115,2,67,250,156,13,119,255,42,7,173,16,229,232,113,246, +77,6,166,1,85,4,136,254,228,251,199,247,254,0,232,3,223,4,255,2,48,251,53,8,113,5,193,247,191,255,160,13, +115,3,217,253,40,1,86,248,212,5,22,5,171,251,245,0,202,0,150,8,8,4,100,251,163,247,180,253,192,15,253,5, +161,241,218,249,91,3,238,4,134,4,211,245,7,12,154,14,52,233,68,251,88,4,188,1,237,4,68,249,81,255,239,251, +1,1,68,5,50,251,61,0,179,255,163,1,249,3,110,252,38,254,76,5,28,6,146,4,181,0,11,0,200,1,54,248, +156,253,66,7,222,251,184,254,127,4,80,253,196,252,116,3,48,0,18,245,74,6,86,8,134,249,129,5,28,249,125,247, +224,7,196,254,61,255,51,5,38,2,186,254,114,7,12,250,99,242,219,13,200,0,236,245,223,5,230,5,66,253,115,252, +126,9,75,0,9,246,8,255,31,5,76,5,112,255,57,5,192,8,60,251,95,245,25,252,207,255,3,255,154,1,201,7, +95,254,245,247,237,3,86,252,168,254,212,9,63,1,61,250,65,246,95,11,97,8,202,238,226,3,255,3,148,250,159,4, +82,254,64,9,217,251,163,232,136,6,44,8,143,250,117,2,128,255,187,251,92,3,112,2,205,253,97,253,190,254,99,5, +190,247,228,254,89,6,194,249,117,11,249,253,250,252,213,7,14,253,70,248,152,248,163,35,154,254,174,220,48,20,124,6, +250,248,131,1,39,3,17,4,247,244,20,252,42,9,92,4,137,244,184,253,191,2,60,255,174,7,222,254,205,252,234,246, +16,1,114,14,216,247,190,252,93,9,143,255,255,252,226,251,206,0,242,1,19,251,36,2,38,1,19,250,73,0,242,2, +183,2,130,0,233,253,133,248,82,249,100,8,139,3,186,1,199,8,116,249,73,253,207,255,248,249,213,3,255,251,46,1, +135,2,47,252,148,3,130,252,191,2,107,255,18,250,126,2,102,4,197,4,117,250,104,254,56,255,4,0,52,4,38,2, +136,1,50,248,174,1,168,1,95,255,58,253,15,248,103,8,67,2,90,0,123,1,227,254,59,0,19,251,96,6,215,254, +203,252,37,9,11,255,97,255,12,3,107,253,186,1,137,3,67,252,107,253,55,0,223,254,96,4,95,1,145,250,55,4, +206,251,67,250,38,9,50,250,88,255,123,7,111,255,158,2,117,0,71,255,166,251,209,4,84,3,29,250,24,254,119,254, +39,7,73,0,14,253,126,2,166,255,92,0,254,0,25,2,3,254,28,3,178,1,85,254,253,3,42,0,97,253,226,2, +120,4,81,249,240,1,196,3,119,246,212,255,136,6,66,1,72,249,55,0,26,3,73,0,8,3,222,250,78,254,110,2, +213,0,74,0,146,1,196,6,182,255,14,250,168,253,51,2,108,255,74,253,244,3,241,0,145,1,53,4,159,250,194,255, +247,9,225,11,129,1,245,241,13,246,198,249,5,3,3,10,47,2,211,247,177,249,130,11,238,252,181,248,252,4,232,255, +15,4,83,0,22,254,191,255,190,7,65,4,173,252,146,1,116,253,0,1,55,249,212,254,110,3,185,250,232,1,47,1, +229,3,233,248,109,253,30,9,96,255,26,255,174,253,150,3,233,255,103,251,207,255,199,1,205,254,81,250,169,5,161,6, +213,3,246,254,217,253,208,3,181,253,219,252,79,255,38,255,180,251,249,3,254,4,177,250,112,4,105,2,42,249,155,0, +110,3,93,252,190,0,84,10,183,5,139,2,178,4,58,251,240,250,37,5,110,252,40,0,147,4,60,248,240,254,76,5, +105,254,133,248,68,252,212,9,98,12,40,250,233,250,115,3,54,251,150,1,12,3,100,5,255,1,159,254,184,5,117,248, +198,254,174,0,137,255,153,6,249,247,79,0,43,4,89,254,64,4,229,252,221,254,170,1,3,255,212,1,10,251,87,255, +154,3,28,0,217,253,249,250,211,11,240,254,147,243,46,1,40,249,252,253,194,251,41,0,117,2,67,249,17,1,101,6, +120,12,120,247,174,250,14,10,75,253,158,0,81,0,242,7,216,5,100,253,45,247,12,248,247,8,96,253,145,253,253,2, +109,252,7,4,46,5,46,3,225,253,58,253,167,4,120,255,139,253,120,2,13,254,174,0,173,251,97,250,144,4,79,255, +127,255,47,252,217,4,145,8,114,251,39,3,253,252,57,251,94,2,63,253,36,253,67,252,71,0,156,5,76,251,149,243, +3,3,120,7,9,1,199,0,67,0,126,255,174,253,176,7,245,3,169,252,32,2,195,255,238,2,80,249,226,246,205,11, +201,0,127,249,168,5,226,252,3,0,181,0,112,255,29,1,2,249,102,3,107,255,241,4,159,3,196,242,255,4,244,0, +211,251,93,250,133,249,88,8,169,251,117,255,140,0,39,238,79,4,204,12,81,247,235,251,73,254,106,2,212,2,11,246, +42,1,45,253,110,253,58,7,48,1,157,255,165,252,207,3,185,254,58,252,114,254,129,249,102,3,24,255,55,250,75,1, +160,254,198,243,38,254,202,6,110,251,88,2,27,1,0,250,248,0,127,0,113,248,84,254,57,7,211,1,204,251,148,248, +125,3,6,4,253,250,128,253,221,255,232,255,8,252,87,2,151,3,233,0,218,252,176,2,176,8,225,246,65,2,222,2, +2,249,201,1,103,255,172,9,0,252,44,244,118,5,236,255,202,4,121,2,35,252,84,3,68,253,111,253,64,254,135,253, +213,0,84,254,20,252,69,253,69,9,35,3,97,252,132,4,215,255,77,252,30,250,105,6,54,0,112,250,48,6,248,250, +107,6,65,3,66,250,3,0,205,251,109,4,26,0,18,0,44,254,119,1,56,4,232,250,143,4,29,0,38,253,5,252, +103,255,181,2,233,249,32,4,28,0,242,253,168,2,252,249,22,0,181,3,200,255,17,2,67,252,125,254,217,5,248,253, +218,4,13,5,50,255,92,2,245,251,208,2,110,2,9,252,127,251,184,255,29,10,211,254,198,250,158,6,63,3,166,252, +98,1,126,3,192,255,55,253,68,3,24,8,233,250,5,249,106,2,46,9,29,7,118,251,181,254,90,3,125,2,145,253, +242,248,6,5,104,7,26,248,212,251,214,1,227,253,176,2,231,254,216,0,217,1,37,253,210,4,172,3,34,253,69,253, +205,3,3,254,231,254,153,3,81,252,224,10,61,5,25,250,190,5,83,248,132,244,134,7,253,1,236,255,191,10,111,251, +156,249,102,9,117,5,159,251,62,252,156,255,210,253,177,7,73,4,253,247,108,254,15,3,215,0,71,252,147,255,197,4, +145,5,122,3,7,254,27,252,244,5,40,8,189,249,200,253,68,2,212,2,109,0,147,250,131,8,85,8,113,0,108,255, +105,247,188,255,37,23,89,12,72,246,161,245,153,246,145,6,92,252,149,245,247,7,160,0,234,4,235,254,79,247,74,255, +19,2,215,3,48,253,174,5,182,253,81,248,175,8,136,251,164,247,170,3,183,4,143,3,128,254,84,0,4,4,60,254, +219,0,140,0,192,249,113,5,179,4,15,247,14,0,9,2,32,254,135,4,7,0,18,0,107,253,229,255,204,14,200,251, +209,241,128,6,76,6,204,252,161,255,166,249,204,252,37,15,131,253,224,247,160,11,58,4,83,247,61,248,160,2,57,0, +252,0,234,5,16,1,157,252,21,249,163,4,248,6,61,4,9,4,222,254,247,2,79,1,213,253,120,250,72,250,161,2, +216,6,237,253,204,248,133,3,150,3,125,253,170,0,156,3,209,3,244,5,81,249,60,248,198,10,52,1,0,254,147,5, +53,4,73,252,247,243,202,253,216,0,226,5,110,0,42,250,223,8,152,255,79,251,117,5,248,253,105,249,175,0,181,2, +42,254,176,3,182,10,145,250,131,243,141,6,145,3,226,253,179,3,49,2,185,0,223,252,11,4,188,254,2,249,94,11, +178,4,184,248,48,0,213,255,10,253,231,254,199,3,102,255,201,246,220,6,13,5,245,241,116,2,171,5,159,251,123,3, +53,254,195,254,86,1,140,246,197,3,183,7,106,252,202,3,70,249,146,248,22,8,231,3,222,254,153,253,182,3,177,2, +147,252,195,251,138,254,85,2,221,252,12,251,110,252,245,1,33,255,124,252,62,5,161,6,19,255,5,246,229,1,242,3, +142,3,129,2,196,244,65,6,199,3,205,251,51,4,141,248,175,251,254,5,12,2,198,248,53,255,225,1,150,250,177,2, +40,255,181,248,74,2,99,7,71,254,209,250,13,6,175,12,144,2,178,245,79,251,7,0,221,250,44,251,187,6,149,8, +175,250,98,250,169,250,240,255,207,3,238,247,246,252,252,4,191,3,55,251,192,249,79,1,124,0,246,11,196,250,222,235, +54,12,130,12,2,4,5,252,208,240,148,1,142,1,27,4,148,10,14,1,0,250,189,248,187,5,180,2,55,248,146,252, +81,250,140,247,10,2,154,7,8,255,33,255,28,253,51,251,143,3,143,7,225,4,122,248,90,249,215,2,9,253,35,252, +193,5,20,1,245,244,50,254,233,5,255,254,179,1,10,3,131,249,8,252,254,11,48,12,126,251,19,2,101,19,89,4, +118,251,148,5,71,253,248,243,116,249,150,250,13,253,214,5,98,252,188,249,255,4,0,255,31,250,139,0,90,255,24,249, +153,7,121,10,149,252,162,253,162,249,87,255,190,4,26,253,44,250,16,253,213,3,193,2,181,249,134,241,137,3,147,13, +174,2,56,2,138,253,129,254,207,252,223,5,48,6,207,248,93,6,130,254,99,254,230,5,27,249,228,1,76,3,170,1, +111,3,123,3,208,12,112,1,251,241,220,249,217,1,139,252,199,250,28,250,183,253,144,8,78,251,134,243,241,1,177,6, +53,5,155,249,252,0,24,16,75,251,238,240,96,250,86,4,96,4,8,251,200,3,180,4,85,250,21,251,30,254,171,254, +136,251,5,255,148,3,97,1,46,4,39,254,76,249,231,7,163,254,151,245,166,7,22,2,49,252,179,255,68,253,228,5, +5,2,23,245,159,0,202,11,245,255,180,251,247,252,17,3,63,3,117,246,196,0,145,0,11,253,179,2,35,254,136,4, +25,4,91,1,155,252,57,1,116,3,129,247,171,6,238,7,105,250,22,241,98,253,241,13,61,250,236,255,195,252,80,250, +161,9,41,254,71,6,20,3,199,252,189,253,90,248,183,2,254,2,14,10,39,254,178,241,134,7,192,10,252,1,1,0, +57,4,147,253,126,252,121,10,170,1,53,251,156,5,234,255,60,250,238,4,33,250,251,246,96,7,94,8,151,4,217,243, +83,253,13,14,202,255,245,253,16,251,33,252,47,253,69,251,234,2,133,255,232,0,79,254,96,252,111,5,70,2,51,2, +3,253,74,246,122,1,55,0,253,2,132,8,210,255,185,5,77,254,199,252,121,5,68,251,125,6,253,2,103,243,69,251, +210,255,13,2,146,254,68,0,132,0,63,253,238,11,112,10,156,245,96,254,232,10,249,250,56,249,45,0,243,2,153,1, +209,245,219,250,16,0,163,3,119,5,224,250,24,254,159,250,36,252,200,12,146,253,217,250,151,12,90,252,143,252,244,3, +70,246,220,255,161,4,164,1,155,4,182,255,144,251,212,249,24,3,160,6,68,1,45,3,63,1,17,0,137,3,129,251, +235,251,211,4,213,248,111,0,122,10,194,0,255,253,221,248,10,3,137,255,123,250,204,0,105,253,219,11,41,10,139,4, +196,249,93,248,165,4,160,246,138,19,209,3,50,218,241,15,83,24,210,248,144,250,192,247,114,1,141,5,215,249,197,0, +24,6,175,250,11,251,218,0,244,4,87,4,24,4,110,10,24,252,152,248,181,4,139,251,142,251,25,1,111,0,252,5, +177,2,110,2,139,2,199,253,22,254,142,251,129,9,134,7,87,244,173,5,58,12,187,253,70,251,138,252,53,4,232,1, +47,244,211,2,1,14,113,248,24,252,213,3,201,252,96,253,125,251,80,3,158,255,196,252,40,1,48,252,167,0,42,252, +127,249,143,255,7,2,204,2,204,255,168,0,151,2,99,0,190,248,193,252,26,6,80,1,230,250,62,254,42,2,13,1, +158,1,82,253,135,2,84,4,184,251,153,252,70,255,89,7,205,1,148,252,35,250,166,250,185,8,247,250,3,248,21,0, +75,251,181,6,130,14,148,2,143,240,118,248,246,6,63,6,223,0,30,254,111,1,69,2,132,4,154,249,7,1,33,10, +52,246,229,251,151,2,215,254,193,251,117,253,105,8,154,1,41,250,201,251,109,2,193,0,88,253,253,2,151,2,207,255, +200,251,157,3,76,2,97,254,243,4,14,254,80,5,34,2,6,244,143,1,210,6,74,254,185,255,149,2,75,254,76,252, +214,252,36,255,85,2,173,3,192,2,115,255,120,252,115,253,211,14,141,11,83,246,12,254,36,254,21,246,230,250,178,252, +249,3,150,4,226,248,24,2,142,14,227,6,195,253,154,245,210,253,101,1,211,251,164,6,85,254,185,250,235,6,94,254, +223,252,246,8,85,255,185,243,253,248,120,255,200,12,135,254,56,245,223,4,17,254,202,5,255,1,133,252,136,4,60,252, +12,4,52,253,226,252,40,9,191,4,196,8,129,254,215,251,11,9,34,254,2,245,24,2,197,2,229,251,194,1,99,2, +203,1,46,1,151,254,73,254,14,2,137,5,116,0,197,251,183,2,232,10,2,247,240,243,194,12,131,1,58,245,151,2, +6,3,30,253,39,254,62,0,192,13,62,4,174,243,38,5,41,255,24,250,47,1,186,254,221,4,13,255,105,2,211,0, +10,250,200,254,198,252,81,3,134,3,233,0,185,254,204,252,17,5,109,2,209,250,190,255,124,2,101,251,163,7,159,8, +247,255,149,12,1,254,97,248,4,0,201,243,111,255,248,5,70,255,167,0,87,252,183,2,135,255,144,250,130,4,251,252, +198,253,224,249,95,247,108,9,76,252,40,255,177,16,89,5,224,251,96,252,202,5,146,5,218,6,27,255,217,245,59,2, +14,1,83,5,105,255,89,0,175,20,84,244,218,227,43,9,14,11,144,246,61,253,169,1,137,0,93,254,18,252,38,9, +37,4,218,250,150,253,77,3,211,6,14,250,78,251,206,252,240,254,4,6,223,252,45,255,210,0,84,2,188,1,228,247, +25,4,228,6,123,252,50,3,195,252,34,246,113,255,232,254,167,3,254,2,88,0,76,1,66,242,220,249,228,4,67,0, +171,0,30,255,232,1,64,0,126,254,89,253,11,252,97,2,42,6,55,254,80,249,255,6,113,0,138,244,107,255,123,4, +169,1,54,255,244,0,163,252,203,253,249,6,116,3,41,249,171,252,167,6,2,249,42,252,226,9,102,254,214,252,132,3, +22,5,255,255,214,1,29,1,64,251,72,5,1,0,48,254,237,11,57,254,156,244,62,5,48,1,147,251,156,5,98,253, +182,252,185,253,254,247,21,4,235,10,248,1,21,249,228,249,232,251,39,4,13,7,241,252,19,255,76,0,210,255,232,0, +72,254,100,1,41,0,197,246,33,253,155,10,97,0,78,251,170,3,73,5,247,253,89,250,22,4,213,2,186,2,151,254, +45,249,149,1,93,254,61,253,45,252,146,2,193,5,222,250,1,3,182,0,74,253,146,5,122,255,34,252,178,251,146,253, +55,4,137,2,8,255,226,253,83,1,130,5,241,249,128,252,26,7,91,255,25,3,128,2,0,0,171,3,162,253,109,254, +221,1,203,255,175,253,251,14,130,9,198,233,229,246,109,3,223,254,64,3,221,255,8,2,89,3,161,0,48,1,43,250, +142,254,195,10,3,255,148,251,87,255,78,253,54,7,242,252,89,249,222,2,109,1,85,4,156,253,122,1,2,4,17,250, +81,249,53,250,34,7,215,6,102,255,81,6,49,251,133,251,138,8,58,254,15,254,10,2,111,255,139,254,229,248,126,2, +47,255,208,249,134,1,31,252,183,4,178,5,7,5,146,2,213,242,162,1,44,6,55,252,240,253,92,255,211,4,204,1, +11,252,185,254,103,1,226,252,45,2,183,5,7,255,39,2,212,250,231,252,158,6,177,253,139,0,180,5,247,0,19,0, +67,251,33,250,240,4,29,1,146,248,57,6,178,8,42,248,136,251,179,5,189,252,18,253,32,7,110,5,213,253,75,252, +149,5,20,6,63,7,19,8,53,247,229,246,68,10,205,8,211,250,70,253,33,252,12,1,142,5,230,249,66,254,61,249, +234,253,216,5,148,248,192,7,222,4,143,246,102,3,12,4,52,1,58,255,162,249,64,250,28,0,40,3,194,1,239,252, +80,252,100,4,60,1,54,1,161,7,106,252,212,246,32,1,177,0,157,254,253,3,29,255,12,3,124,11,60,253,221,243, +32,253,192,1,65,0,217,254,247,252,200,255,113,1,177,7,227,6,251,253,245,3,129,253,100,251,110,0,92,250,86,3, +180,253,40,246,218,1,45,255,66,253,181,7,24,5,110,250,97,253,107,253,33,255,150,3,175,253,101,0,252,0,233,252, +236,252,246,1,83,8,144,250,176,248,246,9,155,0,203,249,240,255,137,251,39,6,110,2,90,244,54,255,87,253,43,0, +147,7,32,255,68,0,167,2,157,0,194,254,244,1,105,1,9,253,100,1,18,255,105,249,154,253,217,0,243,246,152,254, +54,16,188,4,222,0,165,254,57,246,27,10,132,11,254,247,32,1,18,2,141,247,3,0,130,0,33,254,175,250,30,248, +252,7,78,4,124,247,58,0,42,2,87,251,205,254,77,4,19,2,89,0,205,0,162,254,91,254,203,0,233,252,254,250, +82,1,143,3,24,0,174,5,102,12,124,243,178,241,138,10,38,255,247,255,26,255,244,252,155,7,179,249,101,7,190,6, +206,239,184,0,154,8,13,3,122,252,139,252,168,1,1,254,216,6,102,5,11,250,73,0,23,1,127,251,182,2,193,5, +93,254,31,253,128,1,11,3,14,254,17,253,243,1,126,0,24,255,27,2,101,1,137,254,23,253,83,255,33,3,241,0, +255,253,68,251,24,1,51,6,27,249,130,250,91,3,168,0,221,2,169,6,38,3,56,248,149,251,138,4,112,1,61,0, +82,0,252,253,71,0,149,6,111,254,77,252,170,1,128,253,180,6,210,1,108,251,151,3,49,253,236,1,79,3,225,251, +62,255,203,254,199,0,236,3,223,7,183,3,205,246,237,251,28,4,223,255,137,254,231,1,216,253,254,253,104,5,73,1, +221,1,77,0,71,248,132,2,117,6,232,255,30,4,67,4,239,250,108,252,177,253,184,248,89,4,167,3,193,250,252,0, +153,0,50,2,72,0,132,0,89,3,7,250,223,1,145,6,38,254,126,2,50,2,25,254,148,255,235,0,83,0,41,253, +87,253,60,3,176,3,64,254,171,254,23,0,63,2,83,254,192,250,135,3,185,255,12,0,219,4,148,255,177,1,85,253, +151,1,94,3,48,248,159,255,57,4,233,254,172,252,186,3,28,6,32,254,220,253,27,252,247,253,24,0,210,1,150,2, +158,252,110,1,223,1,140,253,171,255,47,2,68,2,206,250,17,253,166,3,150,253,100,253,5,1,160,254,4,1,160,1, +199,254,112,253,172,255,45,4,44,2,158,0,104,253,64,254,175,1,72,1,221,1,39,254,186,2,75,253,221,247,251,2, +154,0,140,254,95,255,78,4,152,5,253,253,43,255,188,253,204,1,17,3,147,254,96,255,20,0,225,1,254,252,7,253, +183,254,200,0,95,3,101,253,119,1,19,0,242,251,74,255,77,254,4,1,249,0,73,7,223,0,145,245,20,6,245,3, +18,254,112,7,210,6,100,1,134,251,128,253,156,250,85,252,240,254,102,254,116,1,41,250,233,3,250,1,119,251,75,6, +58,255,153,1,219,255,227,250,120,255,78,252,114,2,80,2,98,248,32,252,177,5,229,255,20,1,206,7,207,250,110,246, +184,0,160,8,171,254,189,246,174,3,52,5,120,251,250,253,112,5,210,255,107,252,169,1,211,3,88,252,1,250,235,5, +228,255,150,251,104,253,177,255,7,9,177,251,38,250,196,4,222,1,64,1,36,0,14,0,118,252,131,254,81,1,105,252, +104,1,54,6,118,254,192,252,25,2,70,255,152,2,113,253,53,250,222,5,206,0,61,1,115,253,35,253,249,4,52,249, +30,0,63,2,51,252,176,254,238,251,140,6,111,2,250,251,36,3,8,254,179,252,82,0,12,254,11,3,142,5,70,250, +129,254,60,0,51,255,175,6,249,250,247,250,195,3,147,2,181,252,155,254,113,3,92,252,254,5,126,1,17,251,116,1, +57,250,24,2,91,2,145,254,200,0,198,254,225,255,180,255,160,0,26,253,72,5,30,3,201,247,198,254,120,255,239,253, +242,254,121,3,88,3,0,255,200,254,204,253,156,2,239,0,18,1,195,1,203,253,73,0,129,251,251,252,69,6,50,1, +124,250,11,1,155,2,214,251,231,1,25,2,86,252,196,4,150,255,221,247,229,0,217,255,96,1,177,4,118,251,103,254, +208,2,169,1,196,1,109,250,31,1,250,3,102,249,32,0,188,254,37,251,113,0,169,2,163,4,8,250,32,251,133,2, +234,255,180,255,218,254,147,254,72,254,79,4,252,1,200,255,146,255,215,253,1,4,172,253,28,3,217,1,182,252,80,7, +149,0,240,253,163,252,45,252,178,254,251,0,135,253,160,251,252,7,100,250,142,252,2,8,130,253,101,3,102,3,145,255, +240,254,113,255,174,253,204,253,59,2,24,254,70,7,214,1,112,246,54,4,140,4,225,0,99,0,159,249,249,254,182,2, +116,0,61,255,64,253,84,3,77,254,180,252,74,5,157,253,161,253,4,255,213,254,30,6,139,1,248,254,116,2,146,253, +11,0,232,3,177,249,64,255,211,3,42,254,134,2,112,255,144,254,23,2,198,6,186,255,214,246,224,1,52,0,152,253, +60,4,61,2,15,0,141,2,180,254,20,253,218,2,24,254,194,1,126,2,240,251,17,2,6,2,193,255,37,255,168,253, +132,253,54,0,160,255,120,255,51,1,216,254,80,8,142,5,162,252,217,254,144,251,120,255,153,5,113,5,249,253,204,253, +231,1,215,255,233,0,253,250,243,0,123,3,132,250,110,2,140,2,40,253,225,252,125,253,255,1,134,2,4,254,107,251, +146,255,21,255,178,1,26,3,122,250,36,1,96,2,44,248,244,255,94,7,95,255,251,251,174,1,181,1,27,0,22,0, +107,1,76,2,156,0,5,0,92,252,253,255,95,1,139,254,18,2,84,0,195,0,20,252,238,251,65,4,93,2,92,2, +19,253,172,253,74,6,128,253,17,249,104,0,107,3,80,7,188,3,137,254,208,4,107,251,225,247,93,4,231,251,254,249, +214,2,88,1,22,1,87,1,120,253,124,253,153,4,215,255,243,249,1,2,192,0,192,251,159,3,140,6,118,251,36,249, +41,1,111,2,156,4,199,2,52,249,27,254,175,6,1,1,204,252,79,1,34,2,31,252,153,254,126,3,127,252,163,252, +91,2,109,254,184,254,221,0,103,0,171,0,4,253,210,255,151,255,49,254,179,7,43,4,22,250,233,251,3,1,255,0, +47,254,62,251,166,255,18,6,145,253,193,254,61,5,3,255,195,253,71,0,178,254,136,249,194,254,66,2,231,254,210,1, +199,1,240,252,108,246,178,254,125,4,40,254,2,255,205,1,131,4,133,0,217,255,112,253,14,255,22,8,170,254,117,252, +251,255,76,0,21,4,199,254,86,252,83,255,131,1,242,2,77,0,56,252,25,0,32,254,151,249,125,4,19,3,140,253, +80,2,208,253,251,253,125,4,151,251,53,247,233,5,20,5,240,250,58,253,139,1,220,4,214,254,46,251,147,0,58,0, +236,0,95,1,18,254,41,254,70,2,115,3,136,255,161,0,107,0,192,252,20,1,170,2,232,251,170,252,71,2,42,253, +144,253,96,6,167,2,140,252,107,255,137,4,120,255,88,252,227,2,226,254,100,254,94,1,234,251,233,254,83,1,52,253, +120,0,174,3,12,255,193,254,65,2,178,1,179,1,157,0,103,255,36,255,9,0,116,2,137,253,152,254,185,2,105,254, +121,2,171,255,255,251,26,4,22,1,7,252,59,255,73,3,75,254,68,253,197,1,254,253,251,0,189,3,126,0,249,252, +165,255,182,1,90,254,204,1,130,255,174,253,122,253,192,0,202,3,81,252,209,255,133,2,224,255,193,0,166,1,239,255, +34,0,44,255,122,250,105,2,119,2,176,1,244,1,16,251,156,255,247,254,50,0,238,1,195,255,235,0,50,2,127,2, +165,254,119,255,249,253,188,0,100,0,71,254,184,2,102,252,164,0,66,3,87,252,93,0,66,0,77,253,170,1,62,3, +13,0,25,2,240,2,178,253,185,251,200,0,43,0,200,253,8,1,232,254,225,252,229,255,163,4,227,255,204,254,202,4, +28,255,184,252,89,0,201,1,190,0,90,1,196,252,105,253,181,1,63,253,124,1,5,254,132,255,168,1,0,254,233,255, +54,251,111,6,234,1,218,249,172,3,248,254,129,0,156,1,53,253,72,0,74,2,148,255,48,1,126,252,250,254,56,9, +165,253,10,253,138,2,44,5,144,253,160,245,20,4,236,254,155,252,160,0,189,253,198,0,107,0,102,0,142,255,207,2, +45,255,144,253,85,254,164,255,136,2,171,248,107,252,124,2,173,255,79,1,5,1,84,253,156,1,33,4,159,252,77,255, +237,254,9,0,113,252,27,249,75,6,142,3,112,255,143,253,22,251,1,2,145,0,60,255,74,6,182,0,136,251,76,1, +126,252,175,1,11,1,23,252,240,2,250,252,245,0,27,3,140,253,41,253,151,0,53,1,66,252,74,3,74,255,42,253, +43,3,25,255,120,253,161,255,109,4,173,0,91,252,77,0,200,1,250,252,216,255,158,0,254,252,140,6,71,2,212,250, +140,254,214,2,29,1,109,253,151,0,141,253,154,1,12,1,92,254,19,2,171,254,47,0,208,254,64,254,148,255,229,1, +89,0,174,253,139,2,69,255,54,252,63,0,197,4,172,253,176,2,97,14,45,4,152,253,242,246,156,249,201,0,94,0, +242,0,180,253,31,3,57,1,200,251,169,255,209,1,31,3,163,0,27,249,92,249,15,4,193,1,40,255,215,255,187,251, +133,255,245,0,240,255,35,0,210,5,160,2,102,248,32,253,232,2,96,4,244,251,251,250,80,4,77,1,54,1,235,0, +159,255,163,254,195,250,73,0,241,2,10,254,65,253,76,1,222,255,166,253,128,0,125,253,170,3,39,10,253,0,212,250, +41,250,33,255,201,0,215,255,119,0,73,254,65,0,31,255,79,1,87,2,72,254,18,255,4,255,222,1,99,0,101,254, +201,255,55,255,137,255,124,255,159,1,64,0,140,0,69,255,160,254,101,4,228,1,227,254,237,253,199,255,178,2,157,0, +85,254,195,253,140,255,18,255,104,2,71,2,76,253,22,255,69,1,252,255,178,253,6,3,164,1,243,252,103,1,38,0, +95,255,56,254,41,0,20,2,0,253,109,254,174,0,30,2,217,255,192,253,173,0,230,1,185,3,110,0,204,254,27,1, +24,255,185,253,46,0,25,0,51,0,191,3,20,252,206,254,117,7,30,253,129,255,164,2,149,251,244,0,157,3,174,255, +175,0,243,255,145,252,110,255,183,255,129,255,183,3,178,254,103,251,155,2,210,2,79,255,58,1,38,255,223,0,232,0, +247,253,149,3,24,0,156,253,134,254,67,254,217,0,204,253,18,2,107,1,232,253,10,2,112,255,193,255,168,0,211,253, +235,1,188,5,117,253,11,253,64,2,223,252,170,0,88,2,245,253,246,0,152,0,31,252,242,255,4,6,116,254,224,254, +30,2,167,255,25,3,248,254,222,1,89,0,146,251,75,2,42,254,240,0,237,0,17,253,249,1,138,251,83,254,56,5, +29,0,127,252,124,255,75,2,63,255,253,255,157,255,167,254,133,0,76,0,79,1,5,3,108,254,135,253,54,4,180,254, +28,0,113,254,124,253,116,11,115,0,118,253,216,0,36,255,147,2,57,250,249,254,149,0,86,0,199,255,173,251,200,255, +152,255,48,3,132,253,73,0,150,3,154,253,174,1,1,254,77,0,38,0,21,253,78,254,207,1,52,4,185,252,51,255, +217,0,38,2,33,2,71,1,22,0,65,252,180,4,125,255,99,253,200,2,87,255,129,1,34,0,157,0,2,255,131,255, +139,3,233,254,165,255,223,1,45,254,240,255,189,0,8,255,244,3,86,0,15,254,71,1,36,255,169,0,132,0,11,3, +38,255,68,251,84,4,103,1,175,254,114,1,158,253,29,0,47,0,82,255,7,3,23,254,241,254,139,1,104,255,9,2, +217,1,253,0,55,252,79,254,122,5,243,0,160,253,116,0,93,0,66,253,123,2,58,1,38,254,74,5,125,255,105,249, +31,1,226,3,232,254,201,0,125,0,233,255,73,0,154,254,128,4,244,254,91,253,13,2,34,0,155,1,216,255,108,254, +56,254,171,1,8,0,246,3,90,4,122,247,138,255,236,5,84,0,21,253,96,255,255,0,181,255,118,255,175,253,247,2, +63,254,205,253,211,2,40,0,8,255,177,255,238,3,88,253,118,0,245,0,178,253,227,1,24,0,253,4,218,250,167,253, +217,3,1,254,170,3,66,252,31,254,108,2,130,1,252,255,27,252,38,2,70,0,98,254,234,255,97,1,121,0,107,253, +197,255,135,1,60,255,179,253,133,0,57,255,153,0,240,255,120,255,16,2,63,254,102,255,70,255,153,255,52,255,153,254, +196,1,112,255,149,254,124,0,182,1,45,2,101,2,184,253,68,254,4,2,116,254,79,254,86,1,130,4,166,254,226,253, +47,2,164,254,9,255,31,255,250,0,133,0,223,254,240,255,173,0,144,255,87,255,102,1,158,254,119,0,138,1,73,7, +48,3,197,248,100,1,179,255,121,0,255,254,1,252,107,3,123,255,105,255,171,254,213,255,136,2,250,0,163,254,156,254, +145,5,52,254,108,252,8,3,84,0,228,255,129,254,115,254,97,0,53,1,67,255,206,253,150,1,11,4,74,255,91,254, +251,1,251,0,0,1,209,252,196,253,45,2,176,0,29,1,202,254,205,255,159,2,34,2,140,253,169,251,195,1,208,1, +45,254,124,0,154,1,240,253,203,1,168,0,129,252,249,0,198,1,121,0,155,252,67,1,8,1,116,253,169,2,227,254, +72,1,52,2,146,255,205,251,138,253,50,6,99,254,141,0,185,1,159,252,84,255,202,255,139,4,111,253,11,251,157,5, +180,2,61,253,91,0,249,253,236,253,148,2,223,251,219,0,35,6,65,3,131,1,25,249,254,254,172,3,205,0,153,1, +144,0,77,254,46,0,8,4,91,253,222,2,197,2,242,250,28,2,222,254,210,2,123,4,67,252,34,0,58,255,155,253, +142,0,21,0,86,254,127,255,225,254,183,254,11,1,189,255,209,255,158,254,58,254,73,0,21,1,197,0,116,254,184,254, +224,255,125,0,188,255,59,254,185,0,236,0,195,252,236,254,20,1,158,255,118,0,178,254,218,255,165,255,130,1,237,0, +223,250,72,3,246,255,142,254,65,6,191,250,157,252,200,2,159,255,36,254,191,254,219,4,215,254,121,254,176,3,46,252, +133,0,40,3,166,252,96,0,44,0,160,255,7,2,60,255,97,2,154,1,101,255,133,255,47,251,83,1,160,1,129,253, +223,2,14,1,84,255,242,254,227,255,110,2,101,0,181,1,75,2,36,0,154,251,54,252,50,2,54,1,216,254,85,254, +9,3,80,1,7,251,236,2,181,4,56,251,51,253,125,3,16,254,215,255,178,2,146,253,211,0,80,253,77,254,147,3, +190,254,83,254,239,255,173,1,93,255,142,0,37,2,178,253,124,254,201,0,132,255,238,251,244,255,34,0,98,255,114,1, +148,254,160,1,135,254,93,0,236,2,49,253,124,0,186,2,198,1,235,254,160,255,38,0,192,254,193,1,66,2,163,255, +15,255,78,2,148,255,229,255,160,255,86,254,162,1,53,253,237,254,186,3,101,4,144,251,187,248,151,3,207,1,77,0, +129,255,84,0,196,1,226,253,24,254,96,254,253,0,224,1,36,1,82,255,238,1,173,252,74,253,93,13,82,252,74,247, +36,6,15,255,4,0,35,0,16,254,198,2,18,1,251,252,115,253,28,254,176,254,169,255,94,253,155,255,243,0,32,255, +66,254,107,255,233,0,176,0,14,0,82,255,22,3,48,254,101,255,170,3,12,252,196,2,234,2,84,253,79,1,86,1, +77,255,248,252,45,2,244,0,19,253,172,1,8,255,173,253,143,0,153,2,177,2,6,0,181,0,173,252,186,251,222,4, +213,255,42,253,140,4,127,253,141,255,89,5,114,253,71,255,227,0,108,253,17,255,25,254,80,2,88,2,247,251,184,2, +224,2,0,254,100,254,246,251,165,2,83,5,26,1,118,2,155,254,210,250,45,254,29,0,10,1,161,255,157,252,106,255, +208,255,97,2,226,2,241,251,34,254,150,255,25,1,224,3,65,254,193,252,183,3,190,2,54,253,216,0,175,253,251,253, +111,1,206,254,254,2,36,0,195,253,160,0,80,3,246,255,220,252,177,2,157,254,246,0,245,1,8,254,149,0,189,253, +50,2,128,255,139,252,219,4,109,1,124,252,154,1,247,1,98,252,250,255,133,1,154,1,92,0,239,251,136,1,240,1, +43,0,4,0,186,255,12,2,152,0,237,255,6,254,185,1,59,1,104,252,126,1,131,1,168,2,104,0,141,252,55,3, +130,254,46,253,55,5,125,0,246,255,61,0,254,250,192,1,46,2,199,253,124,1,93,253,195,254,109,4,98,1,216,253, +183,251,130,2,97,3,51,0,141,1,70,250,17,255,8,4,186,254,106,1,231,0,18,254,250,253,229,0,123,0,197,253, +73,0,81,3,196,3,98,253,96,254,151,1,178,253,217,0,3,3,201,254,73,255,136,2,200,251,65,0,86,8,223,248, +194,250,74,9,149,2,164,255,2,0,81,249,124,255,166,4,177,1,127,0,218,249,12,253,95,3,122,2,70,255,135,253, +209,3,122,1,43,255,95,0,244,252,26,255,168,0,207,253,95,255,189,1,169,0,218,4,24,255,178,253,248,2,125,253, +240,1,132,253,11,254,167,2,138,253,90,2,33,253,85,254,35,1,95,254,37,0,63,253,41,1,184,1,56,2,188,1, +138,253,207,0,70,1,194,251,10,255,2,6,251,1,115,3,142,252,237,246,158,1,89,1,216,253,211,252,213,2,61,255, +227,250,57,4,78,0,115,0,104,0,29,253,15,1,145,1,120,0,132,0,84,3,246,253,205,249,37,0,66,5,142,0, +157,252,180,3,199,1,229,254,108,255,18,253,71,1,163,1,240,0,120,1,178,252,200,254,130,2,99,252,143,252,106,3, +242,1,231,254,50,3,183,3,27,254,26,255,21,0,157,254,119,254,69,1,184,0,164,254,230,3,111,255,164,0,232,1, +49,252,26,4,109,1,255,253,111,254,252,253,90,4,130,1,65,253,138,254,220,0,145,254,225,1,22,3,243,253,168,3, +147,253,133,251,73,5,95,0,70,252,142,255,65,0,201,0,218,2,152,0,7,1,239,252,188,249,129,2,2,3,22,4, +96,1,2,251,248,252,177,254,115,3,211,0,71,0,1,2,225,253,96,0,47,0,180,0,43,255,48,253,36,1,65,1, +152,2,5,1,243,253,226,252,168,253,244,254,68,254,63,3,44,2,33,0,223,1,225,253,35,255,38,1,102,255,1,255, +114,254,195,253,60,3,133,3,156,252,190,0,222,1,38,3,119,1,112,251,70,2,125,254,235,250,27,2,66,4,42,0, +124,252,124,2,56,1,225,0,219,1,133,250,102,254,93,1,249,253,148,0,23,2,7,254,222,254,137,2,75,254,192,254, +179,4,167,254,230,252,248,4,225,253,225,251,72,3,78,0,5,2,216,4,105,0,18,254,132,255,13,254,78,0,194,0, +213,253,186,0,200,251,241,254,176,0,228,250,172,2,216,3,251,255,29,254,167,254,50,0,91,4,129,2,115,250,22,3, +243,0,71,254,181,5,125,0,132,253,104,250,158,252,236,6,178,4,151,249,59,0,5,8,41,254,166,250,79,254,139,3, +77,0,193,252,212,255,172,1,75,4,96,0,233,255,160,254,30,0,36,2,196,2,13,7,29,252,251,252,237,255,74,253, +58,2,97,252,65,0,136,1,64,255,93,2,220,254,83,2,203,254,46,251,240,255,207,2,179,3,7,254,154,0,123,255, +121,250,101,2,192,1,214,255,178,1,178,255,35,255,191,253,205,0,225,2,115,2,227,1,217,0,18,0,167,0,78,2, +160,253,115,254,170,254,130,2,211,5,202,249,89,254,223,0,222,252,210,3,230,0,204,251,80,252,9,255,221,255,155,1, +110,1,187,0,79,0,23,254,193,2,83,1,43,0,130,0,156,0,27,2,80,254,28,0,232,252,8,254,13,3,162,253, +242,253,10,3,6,3,225,254,218,254,134,255,5,0,114,254,85,254,243,255,177,253,61,2,17,1,210,253,226,252,93,254, +220,3,146,255,89,1,94,2,246,253,127,255,16,2,90,3,251,255,134,254,59,254,214,253,86,254,89,1,12,2,209,254, +94,2,212,1,213,250,170,251,20,5,94,5,44,253,21,251,210,253,29,1,252,254,45,0,41,3,107,0,49,255,68,255, +38,255,43,2,7,2,25,252,59,3,11,3,179,246,61,253,207,6,139,5,127,253,167,253,223,253,100,250,198,3,151,1, +228,0,94,4,200,252,191,255,202,252,80,253,252,3,185,253,175,255,104,251,170,251,88,8,140,3,44,0,116,0,88,1, +82,1,152,253,245,255,11,254,15,255,55,255,177,254,211,0,141,255,11,4,59,0,84,249,165,253,178,4,34,4,237,254, +11,0,146,254,94,251,197,255,184,3,254,255,200,254,236,254,173,255,186,255,226,250,33,255,227,0,74,2,88,3,48,253, +185,252,144,253,180,1,213,0,110,1,205,2,221,254,34,2,132,1,80,254,239,252,114,4,177,2,7,249,13,1,21,1, +116,255,24,1,131,253,252,255,183,0,166,252,193,255,193,5,176,254,255,251,50,1,130,1,237,1,151,255,101,252,213,1, +172,4,36,252,160,253,101,0,206,254,106,255,142,254,94,2,115,255,248,2,55,4,151,249,76,253,123,4,28,3,20,253, +89,254,172,254,78,255,184,3,213,254,22,1,182,0,18,254,164,0,127,255,75,1,40,253,134,253,4,1,233,250,140,253, +109,2,13,4,135,6,76,255,59,253,103,1,14,0,210,1,177,0,53,0,25,0,76,254,249,0,6,0,165,0,151,255, +60,255,174,2,74,255,141,255,106,2,186,255,65,253,140,255,41,2,237,0,34,255,54,0,180,3,19,2,106,251,43,250, +94,1,218,2,124,1,86,2,69,252,107,0,141,5,227,0,197,255,20,252,68,253,141,255,173,0,68,2,127,253,135,255, +33,1,215,1,205,2,160,253,51,255,255,255,228,255,235,2,100,0,82,254,251,254,196,252,117,252,14,1,10,2,101,1, +48,2,1,5,66,2,116,252,110,255,252,253,158,255,2,1,181,254,150,0,255,251,214,0,192,2,192,254,148,1,83,254, +131,0,25,2,50,255,48,1,16,1,94,254,20,0,68,0,73,252,186,253,143,255,229,1,52,1,103,3,151,4,71,251, +232,253,216,255,24,254,18,2,229,0,118,1,147,2,94,0,217,255,184,0,181,255,118,1,86,1,39,1,184,1,98,254, +65,255,246,251,168,0,24,5,89,252,82,254,183,0,193,254,123,0,9,3,202,255,62,253,151,255,163,255,115,3,193,0, +123,253,62,1,222,1,42,0,196,254,236,1,37,1,49,253,178,255,100,3,20,0,216,253,73,254,124,254,179,2,67,255, +251,0,72,5,116,253,194,252,95,2,5,2,81,252,248,253,92,2,32,1,92,254,87,254,152,3,32,1,212,253,88,254, +253,0,121,0,19,251,225,2,5,3,151,253,74,255,52,254,187,3,128,0,181,253,185,1,217,251,237,255,188,2,146,253, +97,254,25,255,164,3,178,2,152,255,234,0,38,0,233,2,65,0,125,254,126,255,111,255,122,4,135,255,175,248,63,252, +168,3,98,6,208,1,200,254,241,255,177,2,84,254,133,254,105,2,14,255,205,1,209,253,41,253,109,4,66,253,197,253, +136,2,236,255,143,2,234,3,122,1,24,253,25,253,140,0,21,1,209,0,166,253,76,254,193,0,21,255,146,253,63,254, +246,1,117,1,208,255,61,255,111,254,138,2,35,1,23,255,222,3,35,1,147,252,198,0,179,1,49,254,222,1,127,1, +200,251,154,255,115,1,12,255,173,254,175,255,214,1,206,253,72,0,187,2,9,254,212,0,216,0,157,1,99,0,164,254, +207,1,51,255,232,0,151,0,51,0,107,1,115,255,253,0,176,254,190,0,16,2,252,253,85,255,141,0,139,0,248,3, +196,2,236,252,223,3,26,6,223,252,138,250,71,252,237,255,151,1,107,254,180,250,88,1,223,3,207,252,133,255,244,2, +250,1,89,254,166,253,145,254,61,255,99,2,244,254,142,253,216,1,12,2,92,1,205,5,184,253,203,248,64,4,222,255, +165,254,121,2,49,0,223,1,249,255,224,1,123,1,77,254,122,255,73,0,46,255,165,0,13,4,92,0,219,253,67,0, +151,1,247,254,147,254,66,0,194,2,231,3,99,252,99,254,153,3,104,0,225,255,42,2,37,2,96,255,230,254,229,255, +226,255,219,250,56,2,249,5,114,250,31,1,82,1,248,252,227,2,40,1,106,255,129,0,190,1,253,255,142,0,172,254, +124,254,61,3,244,255,49,254,241,254,169,1,184,3,67,0,40,252,42,0,213,3,106,252,252,253,94,0,172,253,161,0, +149,1,34,1,255,255,20,0,83,1,248,255,53,254,38,1,228,2,223,255,91,255,200,255,89,255,82,0,74,2,1,255, +39,254,125,2,0,255,210,248,158,252,38,2,207,255,137,5,111,5,58,252,46,1,13,2,17,254,74,0,252,1,23,1, +1,0,42,255,225,1,107,1,114,249,90,0,74,2,216,252,86,3,126,2,2,1,88,253,117,253,235,1,243,253,131,0, +219,254,63,255,72,5,103,255,77,253,50,2,21,3,161,254,3,254,165,1,116,255,63,255,58,0,133,255,33,255,13,1, +23,7,169,0,48,252,69,1,157,252,188,254,180,3,68,0,119,0,150,1,56,253,150,251,94,2,123,1,208,254,96,2, +165,0,211,255,154,0,44,255,59,254,95,1,40,3,102,255,184,0,34,1,7,1,221,1,248,252,230,254,187,253,125,253, +110,4,107,254,10,1,196,3,47,253,208,0,251,253,89,0,132,2,207,252,170,255,140,253,212,1,55,5,248,253,23,1, +43,1,223,252,140,252,248,253,128,3,37,1,211,255,111,3,57,1,156,255,179,251,244,255,254,1,109,253,229,2,242,253, +0,254,101,5,3,1,163,252,189,252,199,1,198,255,243,254,198,0,123,255,57,1,172,254,63,255,206,0,144,0,185,255, +108,255,71,1,234,254,165,253,242,255,210,2,103,255,197,0,129,3,125,252,197,255,248,0,120,253,225,1,51,255,149,0, +221,4,66,253,13,253,127,0,15,4,155,2,240,248,218,0,201,1,24,2,59,3,214,246,232,2,57,3,182,252,40,3, +185,250,215,0,14,5,104,250,198,252,40,4,255,3,187,254,18,252,89,255,39,2,206,0,88,0,48,254,121,253,227,255, +184,2,145,255,174,253,19,3,34,253,152,252,210,1,1,1,136,2,55,3,139,255,85,249,56,0,60,0,98,253,242,4, +198,0,199,254,75,254,225,254,69,1,29,2,57,2,222,251,45,255,250,255,211,252,242,1,83,0,162,255,43,1,62,252, +112,255,209,4,156,255,18,254,102,0,13,255,11,254,74,1,231,255,254,253,213,0,223,253,189,1,69,1,235,254,149,4, +67,254,211,252,86,1,251,2,9,3,244,253,124,252,110,3,55,8,193,2,242,254,67,249,211,248,152,255,125,2,112,2, +29,252,218,1,35,4,45,253,185,255,113,253,189,255,2,2,191,254,40,2,183,2,170,0,114,255,48,254,29,254,40,1, +46,5,96,254,73,250,141,0,151,251,151,255,49,9,65,252,242,251,118,4,254,254,209,0,212,1,210,254,173,0,84,255, +186,1,209,1,111,253,73,255,90,253,91,254,255,0,249,1,192,2,225,252,201,0,140,255,58,251,7,3,98,0,151,254, +224,0,102,0,244,0,211,255,220,255,38,253,169,255,242,1,82,255,235,0,167,255,199,1,187,252,171,247,152,5,59,5, +51,255,182,1,252,252,161,252,254,0,74,5,8,1,71,250,169,254,241,2,89,1,55,252,138,255,17,3,190,255,176,255, +164,254,189,2,144,2,139,252,121,0,49,0,162,254,88,2,168,1,28,2,196,253,40,251,99,1,114,0,124,254,253,252, +211,254,125,3,156,3,128,2,215,250,135,251,119,0,174,0,111,2,231,0,208,2,146,255,223,253,51,4,206,255,51,249, +236,254,13,2,41,254,40,2,196,255,175,253,191,2,67,253,206,252,122,3,196,3,107,255,27,253,44,255,205,1,215,1, +26,255,39,254,104,1,232,253,4,251,26,2,85,248,234,250,154,10,245,254,51,1,37,8,238,253,112,252,139,2,142,3, +15,255,92,255,188,254,3,0,80,0,30,3,127,5,63,250,183,253,16,8,96,1,107,250,128,254,7,254,39,253,3,3, +20,254,65,253,10,3,140,255,246,249,64,1,48,6,101,253,118,255,125,2,34,2,41,255,254,252,25,5,169,1,97,255, +173,1,145,252,28,254,27,255,40,254,60,2,123,255,163,253,30,3,246,255,120,253,116,1,239,0,141,0,250,0,147,250, +219,252,89,5,252,1,81,0,254,250,240,253,64,4,115,254,151,3,131,255,108,254,19,0,218,249,22,4,237,2,240,254, +97,1,19,255,246,253,255,249,24,1,2,5,212,254,222,255,81,0,157,1,8,2,160,252,92,254,16,1,54,255,41,2, +244,2,244,255,66,254,95,254,255,255,21,0,104,253,85,255,32,3,117,255,117,255,242,0,77,1,163,1,213,253,173,255, +125,1,47,255,19,254,100,0,182,1,2,255,104,255,244,255,113,0,94,1,159,255,114,252,164,254,162,3,209,2,207,1, +182,255,162,253,32,255,254,254,93,255,244,0,99,255,122,255,140,254,196,255,182,4,230,252,35,0,62,7,169,253,44,255, +110,255,95,254,225,0,227,254,0,1,93,254,197,255,218,1,231,251,178,252,169,254,109,254,114,1,47,3,25,1,129,253, +97,252,50,253,118,253,110,255,250,1,254,2,232,0,200,1,3,2,229,250,162,254,134,4,67,0,72,0,178,1,242,255, +134,253,230,252,99,2,160,1,211,253,138,6,151,0,232,247,239,2,59,4,162,254,125,251,76,0,59,2,229,254,92,4, +100,255,85,255,175,4,93,1,194,1,28,253,73,251,238,2,152,1,160,253,240,2,42,1,240,253,109,253,112,249,100,252, +23,2,184,7,171,2,231,250,164,0,15,5,187,255,205,250,88,255,136,255,166,254,205,3,139,3,109,254,179,255,42,3, +44,254,45,255,55,0,65,254,167,254,22,255,175,1,37,255,90,0,145,1,175,4,10,6,3,255,19,253,158,253,29,9, +123,6,146,244,148,253,213,6,40,250,182,247,59,1,83,255,177,254,34,2,17,3,223,0,202,252,216,0,251,255,107,255, +66,2,66,253,40,251,54,0,97,3,33,1,178,2,152,0,74,252,216,255,61,255,99,253,210,0,63,1,157,255,195,0, +148,0,63,0,214,254,162,3,206,7,66,251,142,252,115,3,6,249,91,253,131,6,226,255,47,0,100,3,5,254,46,252, +125,255,230,2,106,0,117,4,17,8,254,248,213,248,175,3,215,2,243,0,18,0,170,0,122,253,9,1,180,4,52,251, +3,252,52,3,95,3,16,255,129,253,112,2,205,2,61,2,193,255,226,251,23,0,33,0,205,253,140,1,212,255,155,251, +162,1,151,4,40,0,28,1,123,255,123,255,3,3,126,0,171,253,158,254,91,2,150,255,103,255,22,5,69,0,195,252, +245,255,246,253,104,253,158,2,138,254,130,253,98,5,83,1,13,254,95,253,94,254,47,4,137,254,70,252,171,2,70,1, +64,254,240,255,174,0,109,0,154,1,170,255,207,254,191,0,152,0,201,254,173,253,195,2,37,2,195,253,21,1,114,255, +52,0,217,0,21,0,254,1,70,252,196,0,174,2,214,252,128,0,1,0,204,254,26,255,67,255,200,254,217,254,133,0, +227,254,102,255,110,1,209,1,191,254,248,254,45,1,73,2,129,1,179,255,94,4,5,1,205,253,55,0,98,1,255,1, +134,255,238,255,144,252,115,255,198,255,71,252,251,2,116,2,170,1,198,255,172,253,33,254,92,0,16,4,59,253,141,254, +131,2,128,252,2,255,102,3,204,253,124,254,215,2,229,254,33,255,62,0,79,255,202,254,199,255,244,255,213,255,165,4, +237,0,38,251,91,253,79,1,61,1,148,0,159,0,235,255,133,254,255,251,124,6,92,1,145,247,207,0,171,249,142,251, +20,5,209,1,62,253,36,253,225,6,208,1,191,253,37,6,137,0,17,253,31,3,41,255,195,252,246,1,41,254,191,253, +25,4,212,1,38,253,229,1,84,1,13,252,25,2,9,255,42,252,136,1,190,255,240,254,250,253,250,255,174,1,171,255, +232,0,177,0,65,0,174,255,244,255,130,2,229,254,10,255,44,2,241,251,49,0,166,0,94,251,138,7,18,4,136,249, +177,254,149,1,231,0,152,0,70,1,100,253,166,252,105,2,106,1,40,254,57,254,23,255,119,255,184,0,205,1,79,0, +164,0,24,1,230,253,76,254,222,0,217,255,13,255,172,255,26,255,219,255,107,2,150,0,203,0,147,1,247,255,178,1, +238,254,223,253,95,255,17,255,66,0,174,0,238,255,98,255,172,2,254,253,182,253,26,4,21,253,97,253,28,0,58,255, +80,3,174,1,129,255,178,255,65,255,108,0,42,2,209,253,49,253,80,2,136,0,45,255,12,254,243,255,21,3,140,0, +235,253,183,254,27,4,177,1,168,253,81,252,101,252,211,2,39,0,135,0,65,2,112,252,113,1,51,3,158,252,160,1, +20,8,31,253,163,253,136,4,16,248,152,251,30,3,81,0,27,2,234,0,55,2,199,252,32,250,190,1,44,2,59,1, +100,253,222,249,155,0,62,4,51,0,47,255,177,254,85,0,248,2,243,0,60,254,16,254,208,2,54,255,174,253,177,3, +244,253,197,252,249,0,41,0,207,254,0,0,213,2,48,254,183,252,62,3,122,2,213,254,250,0,106,1,159,0,134,0, +37,1,204,0,34,254,217,255,52,255,157,253,13,255,232,3,47,8,9,3,201,253,243,250,204,254,163,0,160,254,75,3, +154,1,108,252,111,250,106,0,54,5,107,1,62,254,78,251,233,255,208,2,35,255,148,255,147,1,6,0,77,254,145,254, +216,253,174,2,156,2,72,252,112,254,211,1,197,0,102,253,187,252,209,0,248,1,249,254,163,255,94,255,218,254,8,1, +86,0,132,255,152,254,190,2,105,2,29,254,36,2,23,255,95,252,171,0,243,255,53,255,175,0,159,0,23,1,149,253, +247,251,158,1,48,1,63,0,105,255,113,254,113,255,101,253,109,255,59,0,45,0,153,0,117,255,84,254,126,255,201,3, +240,1,19,255,47,255,204,0,213,0,208,0,237,0,86,254,60,254,235,254,127,1,133,253,209,254,203,6,193,0,200,252, +136,255,203,0,23,0,155,0,10,255,6,0,1,1,1,254,83,4,247,255,77,252,234,0,180,255,65,1,235,255,46,1, +86,254,250,253,99,1,154,254,187,0,99,0,10,255,179,255,45,2,73,255,2,254,179,2,69,255,12,253,72,250,188,254, +40,4,236,0,181,0,34,255,216,1,202,0,158,254,21,2,70,0,46,0,27,0,45,1,133,4,115,254,119,249,183,254, +233,255,181,0,237,3,83,255,217,254,34,2,60,254,58,254,64,2,93,0,169,255,137,0,134,255,142,0,187,254,170,252, +155,0,105,1,117,255,170,1,247,254,81,255,218,1,224,254,86,4,54,0,178,248,83,255,154,2,198,1,213,253,125,255, +182,2,213,0,139,1,26,255,82,0,72,1,207,253,115,0,40,0,154,253,2,1,174,0,71,254,179,254,165,255,120,1, +14,254,255,254,44,2,174,254,158,2,179,2,85,253,231,255,41,1,76,1,209,255,244,253,182,0,85,1,159,2,21,0, +116,252,55,1,20,1,129,1,102,1,199,254,155,1,128,254,251,253,240,253,91,255,115,4,211,253,46,255,152,3,185,254, +245,253,228,253,189,255,72,254,126,251,105,1,13,3,19,2,27,1,5,250,233,253,84,5,238,255,76,253,32,0,212,1, +67,1,101,1,172,0,128,253,151,0,57,0,3,0,203,3,124,253,44,253,163,1,116,1,160,0,207,250,242,254,181,4, +239,255,150,254,184,255,67,4,7,3,78,249,229,253,23,7,185,255,207,252,144,3,99,0,248,252,168,253,125,0,76,2, +54,254,35,254,185,255,85,0,15,0,163,254,15,0,181,0,64,254,140,255,65,2,154,0,177,0,23,0,254,253,166,243, +124,240,202,254,36,2,14,4,132,1,240,253,212,5,64,3,228,1,157,6,156,5,141,1,80,1,67,0,178,0,101,2, +114,252,93,0,139,1,80,254,178,255,52,253,182,255,227,255,204,1,183,3,240,0,209,254,175,254,95,2,166,254,201,252, +219,1,69,3,70,255,231,254,143,1,129,254,14,0,190,0,178,253,131,255,3,2,233,255,66,253,16,1,212,3,118,1, +207,253,218,254,43,1,129,254,82,254,156,1,60,2,42,254,115,253,179,2,184,0,5,254,5,3,182,1,230,0,188,255, +55,254,148,1,73,252,160,255,21,1,198,253,168,1,250,252,89,255,107,0,113,3,48,6,176,250,145,251,216,0,245,1, +34,1,224,254,234,253,121,252,123,254,196,2,93,3,116,254,80,0,208,0,107,254,240,255,20,0,244,255,139,254,160,1, +125,1,157,254,167,252,114,254,84,2,2,253,26,1,199,4,152,253,237,253,118,2,236,1,128,1,223,2,82,255,73,253, +253,251,178,255,98,2,245,254,167,0,207,254,149,1,112,4,31,252,17,253,111,5,207,1,61,253,244,254,41,1,105,3, +233,252,125,254,74,3,88,0,2,255,131,254,57,3,50,253,202,255,158,3,184,247,108,254,65,3,133,1,88,2,229,253, +241,253,225,254,62,250,90,252,161,6,216,0,248,252,202,4,208,3,243,254,121,0,135,5,199,254,74,250,225,255,165,1, +139,0,205,1,101,2,122,254,184,0,6,1,121,253,235,253,130,255,201,1,113,254,113,254,18,1,253,255,96,0,232,255, +167,255,54,255,115,0,131,0,170,253,198,0,133,0,155,4,78,19,36,3,74,238,72,254,131,1,82,246,47,252,132,2, +191,3,211,1,24,255,148,1,53,255,221,252,28,255,123,254,250,1,115,255,172,253,166,0,52,252,67,4,255,5,75,250, +42,254,172,0,223,252,246,2,228,2,168,252,179,0,183,0,27,255,59,1,151,0,237,253,107,254,154,5,2,0,29,252, +226,255,87,254,150,1,50,1,77,1,7,0,8,254,210,255,222,0,215,1,115,253,92,1,194,0,211,250,20,255,140,0, +194,2,94,255,193,253,231,1,20,255,246,0,162,3,35,255,115,251,202,255,90,2,54,253,191,251,79,253,139,1,98,3, +190,253,104,255,1,4,75,254,75,253,235,1,139,0,6,0,225,254,228,253,160,255,132,1,155,3,231,253,142,253,52,4, +206,1,36,0,27,254,80,255,250,1,52,252,245,255,239,1,137,253,35,3,224,255,249,251,62,4,255,1,106,252,144,255, +87,1,143,254,37,252,194,0,202,3,73,255,183,252,243,255,106,3,194,1,70,254,217,251,230,254,241,2,80,2,11,255, +82,252,29,3,71,3,106,251,84,0,124,4,243,254,101,253,16,1,152,0,129,254,130,254,145,2,36,4,170,252,205,250, +30,1,83,2,243,252,235,255,11,3,62,1,185,3,63,254,147,252,107,0,33,3,234,3,237,253,68,255,192,254,167,254, +18,0,187,252,219,1,37,1,29,253,149,1,150,0,136,252,106,255,22,1,140,0,159,1,6,255,35,254,2,0,59,2, +252,0,97,252,107,0,60,6,192,1,233,250,240,252,132,1,225,1,16,0,38,254,62,0,2,0,210,253,74,2,62,2, +222,254,161,2,192,1,148,255,6,2,245,0,236,253,166,253,93,0,17,255,254,254,164,255,71,254,112,0,112,255,81,1, +173,2,38,253,238,251,23,0,171,1,129,0,44,1,46,255,200,253,203,255,211,2,185,0,242,252,233,0,125,1,208,254, +241,254,132,1,174,255,8,255,87,1,202,254,124,3,77,1,196,253,182,1,160,254,208,253,11,255,247,0,181,0,228,0, +195,255,179,254,175,2,117,255,220,254,82,0,53,255,103,0,91,1,21,255,137,253,238,0,101,0,107,1,70,255,236,253, +108,1,22,254,45,1,152,7,96,4,157,250,100,250,161,255,195,1,37,3,228,252,72,255,98,2,74,255,233,0,40,0, +242,2,228,1,230,253,196,0,150,255,108,252,197,255,59,2,44,255,254,254,96,1,129,2,194,2,99,254,133,253,165,2, +128,253,218,252,26,5,234,0,70,253,244,1,55,2,108,250,28,254,82,5,162,253,213,255,246,3,250,253,223,250,169,254, +218,1,66,255,20,1,109,0,14,255,75,255,176,0,197,2,96,253,224,255,18,3,158,255,168,255,245,255,56,1,73,255, +110,255,169,2,40,255,147,254,159,253,175,250,165,0,37,1,87,0,93,1,144,254,25,3,147,1,38,253,2,0,48,1, +178,254,140,0,2,5,251,254,102,252,30,254,27,0,27,1,103,0,180,2,57,251,170,252,118,3,125,254,106,253,89,0, +197,1,147,1,215,0,116,254,190,1,57,0,203,253,102,2,106,254,39,255,22,0,111,0,198,0,50,255,245,1,197,253, +129,253,37,255,156,2,222,2,122,253,133,254,1,253,203,2,42,4,222,254,145,0,173,254,41,255,165,1,199,255,74,253, +230,0,159,2,33,0,92,255,121,253,81,0,237,1,191,254,78,255,17,2,115,255,166,0,61,4,133,252,116,253,158,2, +85,254,148,255,99,1,161,255,136,0,200,0,165,255,186,0,26,0,237,252,91,255,13,3,163,0,161,254,125,255,94,1, +19,0,133,254,15,2,218,254,210,253,246,1,62,0,101,255,234,255,157,0,27,253,121,255,67,0,158,250,87,3,67,4, +193,0,7,1,49,252,233,0,4,1,176,252,186,0,204,3,141,0,176,253,194,0,113,0,41,0,132,255,164,252,213,0, +145,2,9,2,112,254,171,252,214,5,171,1,75,253,223,0,143,254,181,255,55,254,158,2,26,1,225,252,4,0,10,250, +87,2,34,4,190,252,43,2,76,1,55,0,222,1,121,3,49,253,105,252,247,2,219,253,163,253,163,0,5,0,164,254, +25,255,155,1,179,2,187,254,71,253,97,2,42,0,185,0,43,254,110,0,33,4,70,250,129,0,36,4,154,0,103,255, +7,1,40,5,194,251,109,254,224,1,142,254,6,1,81,254,54,254,72,0,14,1,128,250,157,253,86,6,53,2,240,3, +249,253,233,248,91,1,163,253,182,253,192,7,254,1,232,252,54,3,25,255,100,252,194,0,120,0,21,1,123,254,138,251, +231,0,94,5,172,0,32,253,106,0,66,255,236,255,43,3,255,254,84,253,120,253,129,0,183,2,121,252,154,1,159,4, +132,252,42,255,110,0,8,254,30,0,33,255,151,254,234,0,250,0,13,1,182,1,203,254,164,254,111,1,200,255,160,251, +60,252,5,4,70,6,33,0,33,254,146,0,64,0,127,254,135,255,137,0,197,0,156,254,204,254,99,2,45,254,209,0, +207,3,59,252,88,1,73,2,3,252,96,1,98,1,5,248,224,250,161,5,141,0,52,1,110,3,193,252,137,2,7,0, +106,254,54,1,87,255,26,3,75,255,212,254,3,1,156,0,247,255,139,255,63,3,157,0,210,254,248,252,239,254,192,1, +126,254,121,1,187,0,115,253,157,254,179,3,45,0,44,250,59,1,29,2,215,1,100,255,241,252,223,0,12,1,140,1, +166,251,108,0,173,5,86,252,167,254,131,2,158,3,40,255,41,253,114,5,191,255,237,251,3,2,190,255,120,252,71,2, +2,3,183,254,78,2,89,255,243,255,133,3,182,255,237,3,228,254,44,248,185,255,129,0,24,0,227,3,237,0,60,2, +8,4,226,250,83,253,138,3,248,253,96,254,224,2,40,2,188,254,175,255,183,0,161,255,150,0,204,254,0,255,126,1, +123,0,189,253,200,254,181,1,91,1,150,254,58,253,168,1,194,1,50,255,38,2,175,255,162,253,11,2,23,255,1,254, +64,3,177,0,104,0,9,0,242,253,89,1,244,255,165,253,59,0,160,1,249,254,243,0,93,255,32,255,109,4,171,253, +215,0,20,2,12,250,159,253,243,2,56,5,9,254,86,254,7,3,126,0,159,0,250,0,225,0,172,254,218,0,53,254, +30,2,144,5,122,248,123,253,41,5,101,0,224,252,144,1,60,4,50,254,221,1,106,0,117,252,84,254,71,1,124,1, +68,254,136,3,200,248,148,243,99,6,38,5,83,254,230,2,181,4,215,0,113,253,111,2,76,0,249,254,104,4,20,0, +16,0,237,255,194,254,115,1,130,253,219,251,132,253,52,2,211,0,65,0,130,3,67,254,148,1,237,0,182,253,8,0, +226,251,109,0,143,6,179,0,77,251,214,254,74,0,172,254,219,0,100,1,233,254,21,0,128,2,65,254,160,255,19,0, +3,254,100,255,38,252,86,1,17,5,2,3,10,0,122,251,2,0,47,3,155,255,177,252,161,255,33,0,107,254,99,1, +104,0,206,255,47,2,47,3,101,1,43,255,1,255,63,255,61,255,218,254,74,0,88,2,252,255,74,253,3,2,154,1, +246,250,244,251,239,1,143,2,235,253,234,254,215,1,243,2,183,253,13,253,23,3,28,255,162,255,15,0,120,254,185,254, +150,0,238,2,123,253,114,255,27,255,253,0,226,4,163,254,133,254,78,1,39,3,49,254,4,255,163,2,227,253,34,255, +233,255,62,0,130,255,102,0,220,0,219,254,143,255,236,255,118,1,207,0,249,2,124,255,89,252,191,0,216,255,27,1, +8,0,162,255,54,0,246,252,55,255,152,2,114,0,29,253,122,254,58,0,86,0,51,0,117,1,245,0,30,0,178,254, +201,1,142,16,21,12,157,252,179,253,30,252,186,244,33,251,0,5,93,0,192,253,191,253,114,1,48,4,205,252,164,252, +12,253,96,255,146,0,251,252,162,255,163,0,113,253,68,254,226,4,94,1,181,253,68,255,110,255,159,1,120,253,45,0, +244,0,6,253,93,255,135,1,76,5,200,254,104,254,189,3,113,253,123,252,71,250,201,252,72,6,41,2,54,255,192,1, +96,254,44,254,219,255,178,1,126,5,124,1,106,251,107,252,175,255,196,1,230,0,17,255,46,254,1,252,83,254,115,3, +145,1,131,254,124,254,211,254,79,3,71,5,224,254,81,255,151,1,154,254,211,255,233,253,176,253,22,0,169,1,30,3, +203,253,74,253,190,0,78,255,149,252,19,1,14,4,117,253,248,255,137,1,178,252,234,254,110,1,203,0,134,0,195,255, +247,254,14,0,103,0,240,1,87,253,220,254,32,6,58,252,141,254,224,4,149,253,227,253,250,253,96,0,92,3,135,0, +68,0,21,0,156,0,227,0,133,252,179,255,178,5,93,1,48,255,46,253,215,253,14,1,241,254,240,255,172,254,113,255, +13,1,139,255,134,0,198,254,68,255,114,2,13,2,244,254,164,1,57,4,99,0,89,255,168,254,216,253,114,0,178,7, +233,4,185,250,238,252,118,254,26,253,135,254,170,254,233,253,85,1,189,2,84,252,8,254,160,1,217,1,64,255,75,254, +188,1,216,253,25,2,21,2,61,254,145,2,170,255,221,0,186,253,103,1,80,3,79,250,5,2,112,247,75,248,109,13, +183,253,230,248,250,6,17,3,199,254,126,252,68,253,176,4,70,3,203,254,220,254,86,0,179,2,217,254,143,253,172,255, +228,255,49,0,186,0,104,2,205,1,52,1,29,251,42,254,192,3,31,254,141,0,47,254,124,255,251,255,80,252,61,5, +176,3,155,255,138,255,192,0,9,1,40,254,112,1,170,255,13,254,180,255,119,255,78,255,18,0,22,0,180,254,96,2, +63,2,18,253,94,255,180,3,66,253,162,252,192,1,210,255,54,2,84,0,214,255,23,0,194,253,11,2,36,255,40,253, +164,2,18,2,112,252,83,0,107,0,180,252,198,2,125,255,210,0,1,2,42,252,17,2,30,2,139,253,241,254,91,0, +236,0,101,3,153,2,235,254,110,253,144,254,118,1,151,0,163,1,147,0,243,2,224,4,48,254,84,1,150,255,147,251, +96,255,76,1,115,2,17,254,29,253,107,255,231,255,221,0,189,0,81,2,60,0,23,253,53,1,177,2,147,254,212,253, +14,254,192,1,174,4,29,0,77,0,114,2,139,253,143,251,93,0,107,2,251,1,159,255,130,254,196,0,60,255,18,255, +246,255,23,0,153,0,206,255,96,2,55,4,57,255,127,253,191,255,25,253,195,255,34,1,154,254,23,255,181,255,103,3, +245,253,105,253,164,3,177,255,237,254,240,0,58,1,57,0,80,1,128,1,134,255,127,252,57,253,83,2,192,255,41,1, +45,255,26,255,136,6,86,4,189,1,152,251,130,251,177,1,71,1,243,252,22,252,244,1,64,1,28,1,218,1,135,255, +87,254,200,0,118,0,255,253,145,2,70,255,152,1,177,1,3,252,2,1,193,0,164,0,131,253,21,2,192,3,119,252, +217,2,187,255,174,254,237,2,9,254,143,253,223,255,238,255,16,255,111,255,39,0,130,1,7,255,36,0,143,1,149,255, +107,1,40,255,238,253,62,253,7,1,150,2,116,0,187,0,153,252,30,2,164,0,142,253,52,3,187,1,243,0,157,253, +83,0,166,1,122,253,207,254,123,255,43,0,83,0,190,1,120,254,61,254,183,254,43,253,24,3,21,2,190,255,80,253, +204,253,239,255,197,253,183,0,99,255,136,2,3,3,40,253,186,1,177,1,157,253,125,254,170,255,3,254,191,0,168,2, +31,254,60,254,138,255,129,2,21,0,189,253,146,3,62,0,225,254,8,2,27,254,212,254,217,2,223,255,117,1,9,1, +169,251,86,3,13,0,130,252,228,3,145,254,80,2,22,4,137,253,13,255,132,255,91,1,236,254,181,252,35,0,41,1, +105,0,17,1,169,0,153,254,44,1,3,1,25,255,250,255,203,255,193,254,134,0,184,0,237,251,153,2,116,3,96,254, +199,2,88,0,231,255,205,255,111,4,85,3,143,249,157,2,114,255,137,250,236,3,188,254,125,252,69,2,211,0,103,254, +174,2,25,2,136,254,218,255,52,255,82,2,205,0,205,253,65,1,193,255,48,0,161,254,220,252,149,1,27,0,80,0, +140,0,198,253,210,1,111,255,160,254,122,2,141,255,54,0,159,254,253,255,92,2,6,254,39,1,71,1,85,255,228,254, +205,254,111,2,130,254,160,254,128,1,52,255,74,0,109,0,217,255,169,254,229,0,119,1,203,254,108,2,80,0,153,255, +91,1,108,254,177,2,106,1,11,254,47,1,178,0,51,0,229,253,111,255,83,2,222,253,231,255,228,2,229,253,116,253, +111,0,12,1,83,2,122,255,255,252,145,0,177,0,194,255,131,0,47,0,183,0,43,0,82,0,43,1,75,255,2,254, +133,252,97,254,201,4,152,0,95,254,203,4,39,0,141,252,230,255,202,1,89,2,35,1,15,0,168,253,57,255,165,1, +110,255,181,254,103,255,53,0,184,255,197,254,187,0,192,0,112,254,8,1,158,0,9,255,229,0,196,0,76,3,228,255, +194,254,2,2,82,254,167,0,62,1,236,255,158,1,238,255,112,0,8,2,41,0,84,253,35,254,6,255,11,2,184,0, +35,253,22,2,199,1,228,255,106,255,140,255,161,0,133,254,107,0,238,0,96,0,133,255,140,254,19,255,94,255,115,3, +25,1,20,252,55,255,42,2,174,0,111,255,167,255,165,255,7,0,205,255,243,254,119,253,252,255,128,2,245,0,176,0, +92,255,129,0,27,0,60,254,255,255,101,0,114,1,220,254,114,253,2,1,228,0,199,0,206,255,214,254,201,255,101,255, +199,1,94,0,132,254,111,1,29,255,92,0,180,255,98,254,139,3,26,254,189,253,153,2,249,255,104,0,159,255,171,254, +102,255,248,0,201,0,121,255,8,2,208,0,244,254,88,255,100,254,155,1,117,3,239,254,64,254,177,255,95,255,245,254, +51,254,225,0,26,1,2,255,57,254,139,254,153,0,50,1,67,2,131,255,168,255,89,2,176,253,145,254,232,0,40,255, +98,0,130,0,52,0,142,0,58,255,28,255,175,255,166,255,25,0,34,0,165,1,63,0,49,253,103,0,19,1,47,254, +48,0,221,0,23,255,156,3,31,9,10,3,184,248,44,252,180,0,78,253,5,0,176,1,228,255,86,254,50,0,95,1, +135,253,32,1,25,255,82,251,24,0,173,2,179,2,17,0,215,255,187,254,197,1,26,3,139,255,175,1,164,255,2,0, +112,255,127,0,217,0,188,250,40,1,141,1,98,253,234,0,246,0,55,0,55,254,206,255,168,0,20,254,150,0,143,0, +10,0,233,2,83,253,14,252,134,2,51,0,65,254,105,255,231,1,104,1,71,254,22,0,68,255,168,0,20,1,220,254, +26,1,113,255,27,254,157,1,63,2,129,255,67,253,72,254,240,1,144,0,209,255,16,0,29,254,76,4,47,2,44,251, +30,0,3,0,242,254,43,3,209,254,236,252,170,3,27,1,178,252,196,254,204,255,193,255,50,0,252,0,10,255,119,255, +188,1,134,1,136,0,102,0,209,254,232,251,139,255,48,1,173,0,67,0,206,255,227,0,138,255,66,1,107,253,127,253, +30,1,17,255,198,255,14,249,114,246,153,252,129,3,125,2,8,255,68,3,45,253,61,255,27,7,16,3,76,2,25,3, +108,0,21,252,92,255,90,3,244,255,104,253,19,254,69,0,53,0,32,255,137,255,244,0,175,255,154,255,18,255,245,253, +45,0,122,0,187,2,73,1,210,254,47,254,129,253,216,2,255,1,200,252,15,254,180,0,132,255,45,1,228,255,248,253, +214,2,94,254,163,0,167,4,189,254,41,0,195,0,46,255,239,254,254,4,221,3,13,252,216,255,54,0,247,1,24,3, +9,255,243,254,176,254,125,0,182,0,126,0,253,0,186,254,104,254,5,1,80,1,95,254,147,253,181,255,152,1,229,254, +59,255,23,2,146,255,26,255,160,0,133,2,241,1,10,254,41,253,62,1,137,3,110,255,142,255,11,0,140,254,235,255, +9,1,58,2,205,254,5,1,104,2,63,253,76,5,87,3,43,247,74,254,56,5,43,255,157,251,179,255,34,3,106,1, +122,255,192,255,126,0,228,1,151,0,86,253,194,0,80,3,123,0,242,254,19,255,20,0,29,254,105,254,52,1,69,0, +35,254,173,253,78,1,214,1,35,0,86,255,162,254,167,0,180,0,203,0,173,254,111,255,158,2,43,255,109,255,17,255, +92,1,78,2,95,250,50,255,215,4,145,0,192,255,45,1,54,0,208,255,89,0,21,253,185,0,5,2,178,253,56,1, +200,255,173,255,153,0,22,255,74,2,57,2,39,2,244,255,208,254,173,255,245,255,44,4,220,2,77,253,54,251,120,255, +50,2,196,0,199,254,45,253,142,1,196,0,34,254,110,0,42,1,221,255,116,255,135,1,15,0,1,255,199,254,80,2, +103,0,129,250,131,0,253,255,224,255,20,0,16,0,53,4,155,252,179,254,107,4,175,0,235,254,1,0,100,2,173,0, +192,0,23,0,109,253,49,255,104,1,108,254,103,254,196,255,183,254,26,4,36,1,236,253,166,255,82,255,31,1,42,255, +203,0,106,255,237,0,155,0,21,253,137,3,87,255,184,255,207,1,176,252,191,0,150,1,24,255,63,254,157,255,250,255, +140,255,175,0,60,0,80,255,121,0,99,2,70,255,141,255,22,0,128,254,206,255,84,255,66,0,118,254,46,254,160,3, +30,2,236,252,159,255,184,255,88,253,169,0,167,1,87,1,141,254,199,1,158,3,243,253,149,255,53,255,246,255,135,254, +65,254,234,0,18,253,166,0,163,1,169,255,188,254,52,255,62,4,176,255,151,252,108,1,247,2,106,0,228,254,66,255, +242,255,205,255,57,254,37,255,126,0,144,0,36,255,76,1,5,3,136,254,240,254,74,0,135,255,110,1,121,255,187,252, +250,0,159,1,84,0,234,255,80,252,170,255,224,255,102,255,57,2,88,0,33,0,158,255,121,1,211,0,27,0,218,255, +189,254,211,2,124,0,149,255,97,0,157,254,62,255,175,254,121,255,88,1,127,1,149,254,106,0,20,0,201,253,36,1, +146,0,138,255,154,254,0,0,84,1,92,1,89,0,42,254,164,2,240,1,46,0,127,0,222,252,206,253,176,1,42,2, +35,0,6,1,26,1,177,0,206,254,238,254,133,0,229,254,200,2,114,0,122,254,204,0,225,254,97,0,165,254,30,255, +249,0,226,255,80,255,179,255,235,0,72,255,199,0,146,255,33,0,200,3,13,1,254,254,22,254,41,1,38,1,241,255, +41,1,241,252,248,254,80,1,120,255,54,255,154,255,122,2,19,1,232,255,179,255,117,254,177,0,224,0,227,255,7,252, +214,250,52,1,130,2,164,255,229,255,93,1,205,255,210,0,57,1,254,254,20,3,166,255,254,252,59,2,99,0,231,1, +141,1,60,254,39,0,158,254,12,255,26,0,126,255,21,1,166,254,255,253,225,0,234,0,121,1,155,0,202,255,187,0, +252,255,27,0,15,0,124,255,165,254,83,255,73,255,131,254,69,3,70,2,216,254,7,2,30,1,72,255,171,0,162,0, +166,255,101,0,72,1,165,254,173,254,155,2,235,255,167,252,7,0,76,0,239,254,250,0,250,0,71,254,24,255,58,1, +158,0,34,0,41,255,107,0,56,1,222,255,157,0,112,0,206,0,159,255,215,253,110,0,142,0,84,254,148,0,184,1, +7,1,134,0,120,253,168,1,191,3,231,255,19,1,162,253,200,251,102,255,155,2,251,2,223,254,193,253,53,1,210,1, +93,253,120,0,83,1,19,255,198,2,157,254,110,255,184,1,135,255,64,255,138,252,142,0,34,0,1,255,16,3,136,255, +32,255,138,0,30,255,113,1,244,1,242,254,200,255,71,255,65,254,212,0,127,254,30,254,51,0,198,255,144,0,173,0, +113,0,2,255,221,0,118,2,208,255,30,1,62,0,31,254,66,0,16,1,124,1,38,0,8,254,109,0,174,0,62,254, +214,0,216,0,127,253,92,0,251,0,149,254,66,0,0,0,235,255,76,255,112,252,179,0,231,2,140,254,107,0,195,1, +15,255,181,255,128,0,4,0,65,255,243,255,175,255,113,255,225,1,220,254,166,254,49,1,19,254,65,0,5,1,217,254, +133,1,169,0,191,254,236,254,245,1,220,3,233,250,100,250,70,3,54,0,113,255,48,1,131,254,55,0,5,1,234,0, +105,254,226,254,18,2,161,253,64,255,139,2,119,254,178,253,88,0,229,1,210,255,16,255,211,0,118,0,14,0,147,255, +239,254,118,254,155,254,176,255,76,0,134,0,41,0,30,1,207,255,90,255,60,2,240,253,92,255,128,2,81,252,192,253, +7,1,181,3,42,0,110,252,6,5,150,255,91,252,123,2,137,254,184,0,254,255,156,252,90,1,210,0,21,255,192,0, +172,0,17,255,12,255,239,0,237,255,111,254,28,0,215,0,80,255,82,253,199,255,246,2,147,255,159,254,95,0,0,255, +9,255,163,0,158,1,147,255,109,253,213,0,17,1,192,254,215,0,93,255,40,0,70,1,12,255,121,1,83,255,244,254, +187,1,166,1,191,0,188,253,243,255,18,255,223,255,185,3,30,255,167,253,123,255,73,1,32,0,111,255,66,1,253,254, +181,255,153,1,251,255,214,253,120,255,52,0,46,0,40,2,240,254,41,255,177,255,206,254,137,1,150,0,247,3,153,3, +0,251,203,253,86,2,176,255,181,255,61,255,20,1,195,2,55,255,119,251,108,250,56,4,187,4,65,253,251,1,188,1, +16,1,58,255,146,253,82,1,18,0,230,0,153,254,214,255,0,1,135,254,43,2,198,254,73,0,157,255,115,254,128,5, +171,251,54,250,117,4,184,2,151,255,78,254,235,255,219,0,98,0,167,0,119,0,37,0,132,0,193,0,66,254,192,1, +35,2,194,252,3,0,28,2,135,0,59,255,38,255,253,255,232,254,123,0,168,0,217,254,58,0,177,0,203,254,54,255, +217,0,245,255,84,254,253,255,123,2,108,0,136,0,12,0,8,254,234,0,97,0,160,255,127,0,64,1,94,0,103,254, +13,1,187,0,92,1,84,255,125,252,30,3,109,3,84,0,217,0,88,0,113,254,179,254,58,1,68,254,98,254,199,0, +15,255,207,255,101,255,24,254,202,0,185,1,208,255,112,0,158,0,6,1,68,1,220,255,64,0,85,254,47,254,38,0, +168,0,17,1,190,254,178,255,48,0,100,255,0,2,88,255,125,255,143,1,38,253,234,254,78,1,173,254,57,0,16,2, +100,1,139,0,127,0,201,255,105,255,108,0,207,254,37,254,92,255,252,255,91,1,85,2,47,1,151,254,252,253,112,0, +57,2,79,255,9,255,185,0,89,254,180,255,232,0,130,0,199,255,190,254,73,1,170,255,16,255,155,0,105,254,140,255, +182,0,10,0,9,255,101,253,105,1,245,2,68,253,194,255,148,2,166,255,215,1,229,255,131,253,14,1,97,0,99,254, +249,0,36,2,47,254,88,254,3,1,23,1,202,0,137,254,240,253,132,0,217,1,238,255,173,0,178,0,222,253,222,255, +12,0,213,0,113,1,48,255,126,1,83,255,187,253,226,1,152,255,63,254,28,1,154,254,14,255,118,1,210,253,8,255, +208,1,244,0,197,255,47,254,25,0,20,1,145,1,77,1,25,254,14,255,124,0,247,3,212,6,186,252,10,249,126,1, +187,1,18,0,84,253,135,253,178,3,59,0,102,255,210,1,240,1,157,1,200,251,173,254,3,3,169,0,38,255,191,254, +124,255,92,254,131,1,124,0,249,252,68,2,202,1,130,255,187,1,70,0,133,253,108,254,93,1,54,1,251,254,181,255, +246,255,11,255,79,0,242,254,251,0,5,2,2,254,247,255,199,0,69,2,93,0,9,253,135,1,119,255,52,254,163,0, +138,2,245,2,248,253,242,253,244,254,185,255,144,0,202,255,98,1,219,255,50,255,58,0,111,255,171,255,120,255,221,253, +205,255,55,2,221,254,117,255,143,1,175,255,44,0,136,0,161,255,247,254,191,255,26,0,158,255,35,0,177,255,90,0, +152,1,197,0,43,255,215,255,40,1,67,0,193,254,255,253,254,255,82,1,25,0,221,255,231,0,49,0,187,254,124,0, +35,0,187,255,102,0,138,254,36,0,252,0,67,0,224,254,158,254,219,1,206,254,80,0,50,3,95,253,137,0,135,3, +46,255,29,254,106,255,241,0,219,255,46,255,79,254,242,255,4,5,114,5,181,0,62,252,45,0,138,253,34,249,80,2, +58,2,214,254,160,255,249,255,90,2,232,253,106,254,223,1,20,0,102,0,76,255,168,0,4,3,243,255,100,253,117,254, +133,255,122,0,152,0,64,255,104,0,88,1,83,0,120,0,73,1,87,253,208,251,179,2,92,3,182,255,215,253,157,254, +203,2,113,0,45,253,1,255,34,0,241,0,116,1,73,255,50,0,250,2,126,1,160,1,112,255,185,252,46,254,154,255, +230,0,250,255,100,1,205,0,71,255,249,255,232,254,112,1,94,0,42,254,12,254,116,0,76,2,11,253,148,1,101,4, +11,255,74,254,95,253,178,255,202,0,0,1,234,255,178,253,184,0,201,255,177,255,135,1,102,255,1,255,98,0,59,3, +117,2,243,253,213,254,99,0,47,255,15,255,47,0,72,1,155,255,119,1,183,1,87,253,173,0,95,0,155,253,48,0, +67,1,158,1,245,254,91,254,172,255,65,1,170,1,215,254,239,0,34,0,35,254,68,254,153,253,225,3,19,4,155,254, +24,1,23,0,228,254,252,2,10,0,48,254,67,0,115,0,244,1,105,0,204,0,134,0,169,254,124,0,92,255,116,0, +202,255,203,253,36,0,115,0,80,3,70,4,148,254,124,250,39,253,25,1,155,1,47,2,246,255,8,255,192,0,44,255, +110,0,249,2,205,255,155,254,125,1,159,255,104,254,57,0,95,0,17,1,234,255,179,255,100,0,33,254,109,254,154,0, +86,255,230,253,38,1,78,2,255,255,18,0,121,0,226,255,71,255,48,1,67,1,189,254,136,0,80,1,107,254,230,254, +93,1,204,255,56,1,99,1,54,253,35,0,162,254,37,253,42,2,189,2,47,2,143,255,254,255,155,255,6,255,166,2, +66,254,84,254,192,1,242,255,19,255,17,253,51,0,224,1,86,254,124,253,180,254,101,4,176,3,41,253,105,255,221,0, +101,254,101,255,72,2,153,2,19,1,76,0,142,252,12,254,37,1,92,254,56,0,56,1,52,1,15,1,100,254,205,254, +131,254,147,255,181,0,234,255,112,1,30,1,23,0,200,0,250,254,167,254,250,254,41,254,238,0,155,0,143,255,36,255, +51,0,253,0,42,254,113,1,35,255,182,254,64,1,219,254,82,1,188,254,141,1,249,0,102,253,57,2,10,0,206,255, +110,255,120,1,239,0,47,253,91,0,36,1,156,3,70,0,86,252,143,255,80,1,211,254,151,254,79,0,24,252,165,0, +8,3,20,0,243,254,34,254,8,3,253,255,120,255,164,255,210,254,107,2,164,254,137,254,241,254,84,255,222,2,144,2, +59,0,173,254,98,254,93,255,21,0,11,254,125,1,19,1,51,254,219,255,128,254,61,1,74,0,147,255,197,0,86,255, +186,1,196,255,7,255,45,0,2,0,119,0,77,254,143,255,92,0,233,254,110,2,82,0,41,254,19,3,123,253,94,253, +155,3,65,255,251,253,158,254,168,254,199,255,139,2,12,1,15,254,44,2,153,255,94,254,212,1,254,255,81,253,229,254, +54,2,156,255,106,0,247,0,42,254,64,1,164,0,160,253,67,255,216,1,245,1,200,255,234,253,250,253,55,255,235,254, +105,0,136,3,107,1,2,255,94,254,42,254,87,3,73,1,146,250,1,255,222,1,96,0,252,255,210,254,65,1,85,1, +52,254,107,1,98,2,226,253,164,254,233,0,71,0,158,255,209,255,128,0,14,0,188,254,245,255,237,0,12,254,85,254, +210,0,129,0,116,0,182,1,150,0,228,255,37,1,140,255,171,255,52,254,24,255,211,1,4,254,207,255,149,0,230,254, +229,0,63,0,42,253,54,254,144,3,20,0,253,254,43,2,162,255,42,254,238,254,161,1,22,0,225,255,25,1,182,0, +209,1,208,255,94,0,98,0,62,254,126,255,167,0,242,254,242,255,179,0,248,254,164,1,194,0,95,1,211,2,0,255, +182,253,127,253,146,255,188,2,199,2,65,252,198,251,253,2,83,2,227,255,29,255,184,255,130,255,129,255,126,0,162,0, +95,0,55,0,239,4,50,1,195,250,253,252,74,253,19,0,51,3,185,0,45,255,129,0,78,1,56,0,20,255,80,0, +95,254,141,254,188,2,43,1,135,1,166,254,44,253,115,2,163,2,142,255,0,254,219,1,155,0,189,255,44,255,177,255, +101,4,179,251,138,255,130,5,162,253,244,254,72,255,22,0,204,255,35,255,224,1,131,254,53,253,43,1,80,1,44,255, +33,1,56,0,210,254,174,0,176,0,223,255,230,254,149,255,42,0,124,255,138,255,153,1,26,255,132,252,167,1,40,2, +182,1,51,1,138,252,153,254,238,1,83,0,173,255,52,2,108,1,37,252,86,253,114,255,14,0,236,2,148,255,5,0, +240,2,207,2,147,255,133,250,123,2,242,0,122,251,37,2,173,255,111,254,137,0,99,1,87,1,38,254,84,254,213,0, +66,0,178,0,81,2,128,252,121,255,4,2,3,255,158,2,164,254,222,255,150,2,48,0,20,0,26,255,187,0,15,1, +130,255,37,253,110,255,72,255,101,254,223,1,206,1,100,1,125,254,62,2,36,2,165,252,44,255,219,0,30,3,216,255, +127,253,199,253,70,255,42,4,139,0,80,255,43,255,167,254,225,1,45,255,109,0,226,3,93,1,149,255,111,252,224,255, +245,2,242,253,15,2,28,0,227,253,8,3,77,254,120,255,124,2,56,0,59,254,51,253,193,255,114,3,119,5,108,254, +222,249,112,255,181,2,19,0,218,255,81,2,7,1,121,0,63,255,107,254,235,254,226,255,179,1,36,254,215,253,161,3, +184,1,242,255,234,0,229,251,75,1,95,4,34,254,252,255,229,252,252,251,154,2,46,3,235,254,48,255,71,0,235,0, +99,1,194,251,96,1,215,1,176,252,244,1,220,255,148,255,157,1,206,1,145,253,250,252,155,1,155,255,57,1,12,0, +233,253,122,255,190,2,21,1,200,254,13,2,123,253,227,252,231,1,30,4,238,253,145,255,254,4,250,248,237,252,201,4, +38,254,213,252,104,3,139,4,131,252,133,254,173,2,189,255,2,255,35,1,169,254,67,0,154,1,91,253,221,255,170,253, +144,0,142,1,50,253,243,1,49,2,18,254,73,252,220,0,33,1,52,1,100,254,54,253,82,3,108,255,221,0,140,254, +39,254,147,2,19,255,181,254,36,3,106,4,229,250,166,0,250,0,172,254,84,4,16,252,103,255,123,255,179,0,244,254, +67,252,46,3,77,254,61,0,201,254,160,255,202,0,108,255,210,2,22,255,101,255,184,253,73,4,39,4,101,254,70,1, +95,253,238,255,84,0,183,252,214,253,211,1,219,255,36,1,60,3,89,251,160,255,152,255,18,255,220,1,255,253,117,255, +193,0,78,1,149,254,20,255,92,0,126,0,150,0,229,0,8,3,8,255,243,254,28,255,56,253,30,253,250,1,226,2, +147,255,140,1,21,252,112,0,86,3,26,255,16,1,166,253,79,253,247,255,162,2,40,254,232,255,241,3,225,254,71,1, +3,255,209,255,155,2,32,255,87,255,73,2,48,1,105,252,116,0,209,1,48,1,238,255,177,251,73,0,86,1,151,254, +15,1,3,0,115,255,91,5,113,1,3,251,18,252,147,254,90,1,162,255,59,0,16,255,220,0,229,1,12,255,14,3, +49,1,177,0,214,254,227,254,43,1,120,253,151,0,51,1,53,3,251,254,178,252,211,3,17,253,0,0,1,3,219,253, +75,2,65,255,144,255,21,1,89,253,48,0,28,254,53,3,191,6,146,251,116,252,207,1,155,0,42,254,146,0,145,1, +18,253,13,1,247,3,79,2,20,253,38,252,229,255,27,0,91,2,143,253,38,1,36,3,65,251,109,0,50,1,234,255, +25,0,232,252,28,254,38,0,206,1,22,1,23,0,69,255,135,0,237,2,146,0,77,0,110,0,71,253,33,1,163,0, +101,251,97,2,29,3,173,253,213,255,181,1,160,255,16,0,39,2,78,254,141,0,15,2,135,255,109,255,159,253,250,0, +49,1,104,0,223,254,118,253,237,255,71,1,205,1,159,252,186,3,132,4,204,249,29,254,135,254,169,1,59,2,65,0, +120,3,85,250,52,253,199,5,134,1,62,0,210,0,33,254,5,254,134,3,139,255,185,252,140,2,158,0,124,255,186,255, +163,0,241,255,61,0,167,251,57,242,234,0,142,6,59,3,232,6,1,2,178,3,180,245,144,249,17,11,68,253,207,253, +30,2,26,1,43,1,162,254,31,1,116,252,156,254,125,1,232,255,215,254,202,253,25,2,148,0,240,0,127,1,43,253, +145,254,138,1,153,1,192,0,54,1,107,254,157,253,215,2,204,0,35,254,121,0,88,255,96,0,118,1,3,1,121,253, +45,251,106,1,42,1,128,254,141,255,74,2,54,0,239,254,137,4,15,254,74,254,16,254,59,252,243,4,33,255,221,0, +91,2,13,252,213,255,226,254,106,0,209,1,184,253,133,255,63,2,65,255,27,255,27,255,34,255,58,1,213,254,81,2, +176,0,167,251,172,0,197,0,198,250,228,252,181,5,242,3,107,254,92,254,173,2,199,0,180,251,126,0,133,255,126,0, +229,0,100,255,132,2,30,254,228,255,122,4,212,254,160,250,104,2,10,255,54,251,61,5,18,252,93,252,85,5,119,255, +24,253,29,0,229,9,246,4,126,252,99,255,85,251,171,254,165,2,104,253,128,0,117,1,25,251,27,255,163,1,147,253, +128,255,101,1,118,1,180,255,77,255,180,2,60,0,160,251,246,0,177,4,161,254,78,254,238,255,150,254,20,0,248,253, +232,252,15,255,209,254,60,1,99,3,89,0,245,252,205,255,40,3,111,255,30,255,81,0,254,254,115,0,21,0,251,253, +197,254,25,2,127,0,22,255,8,0,6,255,217,0,67,255,24,254,248,1,53,2,81,252,199,254,193,4,25,255,25,1, +185,1,97,251,165,255,152,2,201,255,199,255,131,254,217,251,160,1,208,1,78,254,67,0,93,0,240,0,115,254,73,0, +245,254,225,255,248,4,219,255,205,1,39,1,14,254,157,254,236,254,97,2,120,0,174,255,55,254,94,253,45,2,199,1, +31,253,238,254,4,255,89,254,16,3,237,254,2,1,186,4,46,252,25,251,149,2,179,0,105,251,129,3,76,1,229,252, +3,1,213,254,119,1,79,1,159,253,54,255,29,4,152,2,94,254,199,251,192,253,157,4,193,0,181,3,137,255,53,249, +197,1,180,255,228,255,48,255,191,255,99,2,27,255,32,255,187,254,42,255,209,0,116,1,174,254,34,1,134,254,64,0, +144,0,173,253,13,11,23,246,101,246,29,14,89,255,21,255,120,251,5,253,185,6,127,254,130,253,71,2,184,2,186,249, +33,0,203,3,127,252,139,1,183,255,127,0,7,1,192,253,209,0,183,0,28,255,228,255,117,254,190,253,246,0,5,254, +93,254,113,2,36,254,61,254,1,1,144,254,70,1,224,3,186,0,104,254,11,255,109,3,70,254,127,255,250,4,240,251, +162,254,27,0,85,0,147,0,28,252,254,2,42,254,243,254,126,5,169,254,30,254,3,254,64,254,198,2,94,4,141,254, +123,251,169,0,207,2,54,1,146,255,12,255,163,253,14,254,15,1,17,3,239,253,41,252,131,4,243,1,99,255,5,3, +198,254,43,254,156,0,192,250,170,250,109,3,53,2,143,254,138,0,252,2,13,3,7,255,202,253,213,255,230,255,118,254, +200,255,113,0,63,2,158,0,49,252,103,0,88,255,115,255,114,1,183,255,14,1,1,254,32,2,239,2,31,255,151,1, +197,253,154,255,209,1,232,255,183,0,49,255,43,1,85,0,211,253,244,255,95,255,217,254,239,2,169,2,9,250,133,254, +48,9,113,1,3,253,13,2,197,0,83,255,92,1,11,255,128,251,160,1,240,2,39,0,223,255,252,250,158,254,145,0, +119,254,127,1,16,1,21,1,211,0,28,0,136,253,82,255,12,4,45,254,227,251,49,2,225,5,224,254,134,248,147,0, +71,6,38,3,39,253,46,252,30,6,175,5,102,251,109,254,208,1,252,3,126,4,207,247,183,249,19,4,215,255,35,254, +117,1,165,254,255,253,210,4,130,1,226,253,177,3,242,2,244,254,209,253,207,254,102,255,252,2,219,2,239,0,186,1, +129,252,246,1,93,4,70,1,149,0,169,245,140,252,23,6,118,2,90,0,225,251,203,254,239,254,187,252,196,1,118,2, +199,252,37,253,212,0,189,251,168,0,127,4,168,253,138,1,188,3,234,253,174,252,37,4,150,0,108,252,82,6,183,255, +244,252,193,3,119,252,106,250,89,0,244,2,165,255,232,254,80,255,121,255,66,1,148,250,194,253,165,4,20,0,248,254, +246,254,39,2,81,0,153,251,233,2,252,2,51,0,32,1,222,251,9,1,215,4,86,253,128,1,64,2,86,252,11,0, +155,0,113,254,252,254,246,0,234,255,180,253,247,0,9,0,219,255,125,0,203,254,56,1,132,0,124,255,187,255,12,1, +187,1,17,254,104,255,177,1,134,255,201,255,2,2,190,255,196,254,230,0,44,255,188,255,93,254,210,253,48,3,156,1, +207,0,12,1,127,254,109,0,60,0,168,1,55,0,223,252,117,0,150,253,218,2,178,9,12,255,183,251,243,254,11,1, +40,255,173,250,117,255,108,2,62,0,64,255,33,255,126,254,231,0,13,1,207,253,41,1,242,255,138,255,203,1,240,253, +41,0,111,2,180,255,86,0,71,1,149,1,160,1,221,252,194,253,57,1,245,0,120,2,29,255,158,0,129,255,25,254, +79,2,10,0,135,5,189,0,132,250,240,2,186,0,127,253,126,0,93,1,32,254,236,0,72,2,90,254,55,0,112,255, +2,1,144,255,32,253,135,3,236,1,96,252,149,1,113,1,152,253,50,2,253,254,140,0,163,1,43,253,124,1,124,0, +222,255,215,252,138,255,24,4,4,0,180,1,147,254,212,252,87,254,73,0,220,1,76,2,153,255,167,0,68,4,109,248, +205,9,251,12,31,239,141,253,70,8,176,255,227,253,194,255,50,3,70,0,37,1,19,253,180,254,15,3,108,254,217,255, +74,1,61,254,211,255,247,1,34,253,217,252,4,0,28,2,150,253,165,252,152,5,73,1,70,255,115,2,103,2,70,254, +48,250,38,1,65,1,55,1,163,1,42,0,253,1,108,254,192,254,84,0,166,0,229,1,14,1,158,0,254,0,161,253, +100,255,112,3,20,252,146,254,66,5,68,1,112,253,67,0,81,3,3,0,7,0,255,254,167,1,160,0,29,253,60,1, +212,253,73,0,90,1,0,254,222,254,103,0,20,4,75,255,171,252,164,255,143,3,175,1,239,253,62,1,243,255,83,254, +74,0,241,3,1,254,206,251,238,1,247,253,242,0,205,2,3,254,25,255,146,1,53,254,24,254,84,3,78,255,57,255, +64,0,78,2,80,2,130,251,47,255,187,0,173,0,60,255,80,254,212,0,184,255,31,3,195,2,154,0,132,255,243,255, +43,0,113,254,2,1,11,254,185,253,2,2,22,255,131,253,221,3,19,2,85,251,171,255,15,2,193,1,229,255,168,254, +235,254,132,255,38,3,120,255,119,0,172,2,16,254,173,254,164,0,226,255,1,2,49,2,57,252,198,0,119,255,159,250, +131,254,221,252,196,3,16,1,222,252,131,5,24,1,10,254,176,1,178,1,106,252,163,253,46,3,140,255,6,0,193,2, +149,255,208,254,213,0,2,0,250,2,172,1,28,252,43,255,17,0,213,255,179,253,86,253,159,255,186,255,108,3,109,0, +224,254,149,0,108,254,139,0,251,2,251,1,110,254,6,254,230,254,154,254,223,1,240,1,117,255,255,0,0,0,40,255, +56,254,229,252,37,1,89,254,228,255,254,1,149,253,12,3,232,255,206,253,141,0,215,254,175,1,95,0,175,255,32,0, +95,255,61,254,82,1,243,2,175,254,121,0,111,255,40,254,214,253,145,1,13,2,124,250,133,0,57,2,227,254,94,1, +145,1,187,255,131,254,16,2,151,1,189,0,192,0,109,255,25,254,181,254,133,1,137,253,93,254,214,2,123,2,63,254, +206,251,172,1,69,2,96,253,119,255,134,4,13,254,2,252,45,3,114,255,8,253,143,255,94,1,153,255,205,255,116,2, +135,253,52,0,32,4,250,0,16,4,244,4,167,251,208,247,93,255,173,3,251,0,73,253,0,0,73,3,132,254,234,251, +210,0,64,4,51,1,90,253,155,254,66,4,123,1,79,254,97,3,24,0,105,252,124,255,43,1,245,254,27,255,174,0, +245,254,167,1,76,0,234,253,228,255,20,0,161,0,222,255,56,0,32,254,5,255,150,1,226,255,89,2,86,0,190,254, +142,1,35,255,171,254,13,2,58,2,164,253,49,254,121,2,114,255,49,255,102,0,34,255,245,1,232,253,155,253,157,1, +60,254,224,0,165,0,141,255,250,255,31,255,142,3,64,0,54,255,36,1,106,254,81,1,201,2,113,255,134,254,191,255, +158,255,92,1,197,255,113,0,92,1,183,253,52,4,179,254,78,250,111,4,225,254,32,253,133,2,165,2,190,2,255,254, +210,253,128,2,79,2,209,251,223,253,126,1,166,254,62,255,45,0,23,0,242,255,227,254,185,255,100,1,195,0,153,0, +228,255,108,255,215,2,34,255,160,253,54,3,10,0,26,0,145,1,218,252,228,254,250,0,80,0,127,2,149,1,4,254, +9,254,213,255,56,254,164,254,192,2,32,4,179,0,152,253,239,255,114,0,43,255,160,255,180,1,148,0,156,252,8,3, +175,1,122,251,236,0,210,255,115,255,149,255,128,253,49,1,105,0,155,0,52,3,124,1,32,255,119,254,217,255,231,0, +224,255,45,1,200,0,116,253,168,0,253,1,47,0,199,254,55,255,182,2,30,0,217,255,75,255,235,252,128,254,52,0, +238,2,122,254,58,253,140,0,85,1,218,2,122,253,211,254,85,4,188,255,211,253,108,0,119,0,234,0,92,1,91,255, +247,254,3,1,15,4,137,1,32,253,167,254,70,255,109,255,141,254,110,253,171,255,110,2,227,1,91,255,195,0,34,1, +173,1,115,2,69,253,61,253,135,2,115,255,214,253,232,2,61,0,144,253,14,0,203,255,236,253,14,255,226,0,10,254, +5,2,105,3,157,253,89,1,184,1,62,254,72,0,201,1,197,254,86,252,168,1,239,4,243,254,165,251,56,3,203,4, +195,254,23,255,121,254,205,255,10,2,150,254,140,254,152,254,255,254,207,255,165,253,163,3,104,5,22,0,190,0,98,253, +45,251,236,253,230,3,126,3,58,250,188,0,67,5,126,252,111,253,224,1,9,255,162,2,143,4,32,250,222,255,71,3, +122,252,219,2,82,1,140,251,63,254,73,2,2,255,32,2,59,6,6,251,180,254,243,0,28,253,62,2,21,255,56,255, +177,0,75,0,104,0,252,255,169,1,36,1,106,255,82,251,108,254,254,3,22,2,8,255,154,251,31,254,122,4,105,1, +189,254,32,2,23,255,220,1,156,0,91,250,160,4,74,2,95,251,26,255,17,252,184,0,73,6,214,254,97,254,128,3, +194,251,115,251,55,4,228,1,52,0,229,254,48,253,21,1,155,3,109,0,89,253,229,254,3,255,99,0,7,2,167,255, +185,0,130,2,90,254,99,252,228,255,113,3,132,0,70,252,249,4,77,4,254,248,92,253,41,3,106,1,159,253,165,253, +82,0,202,255,221,0,144,2,171,255,75,252,196,0,105,1,102,254,221,0,49,1,188,255,140,255,77,0,137,253,24,0, +119,1,242,250,248,255,82,4,195,0,181,252,5,251,32,254,199,255,251,3,199,6,111,254,93,249,46,1,159,1,104,255, +215,1,110,0,6,3,144,255,51,252,214,0,177,1,138,255,247,254,49,1,129,254,223,0,203,3,201,253,128,254,94,2, +239,255,31,253,240,255,49,0,83,0,171,255,123,254,239,0,23,253,38,253,132,0,163,3,35,1,8,252,212,2,199,2, +22,0,176,255,90,254,115,1,152,1,42,255,252,253,181,1,129,2,107,1,122,255,122,254,213,1,160,0,188,255,92,254, +155,1,234,255,220,250,1,255,224,253,228,1,99,2,205,255,62,2,67,0,229,1,254,253,95,254,63,1,50,254,188,255, +238,254,68,1,55,1,172,255,161,1,199,255,214,1,38,254,64,251,31,3,48,0,38,255,63,5,163,255,27,254,67,2, +61,0,187,253,56,255,189,0,53,254,58,0,27,2,38,0,24,0,92,255,208,254,11,0,82,1,107,254,63,255,35,1, +169,0,157,0,104,253,164,2,75,2,231,252,86,0,150,255,188,0,182,0,245,254,231,0,56,0,45,254,58,255,135,3, +153,0,196,253,170,0,206,0,213,1,226,255,244,251,132,1,186,3,230,254,196,255,116,251,251,252,125,3,199,255,18,3, +254,2,243,255,20,2,34,0,68,255,101,0,212,1,162,0,210,1,150,254,60,252,164,1,168,254,72,0,218,0,138,254, +47,2,87,254,223,254,10,3,165,255,88,253,230,0,223,0,17,251,11,254,56,6,159,2,94,252,186,0,121,1,82,255, +53,255,45,255,168,1,89,255,123,0,100,3,151,0,201,252,83,253,220,1,33,0,40,255,81,0,11,1,130,254,194,252, +78,2,211,0,72,0,13,1,154,254,23,255,28,0,223,2,24,1,240,255,180,255,219,253,225,1,163,5,106,255,43,251, +213,3,164,2,81,249,170,246,117,251,63,4,111,4,188,0,176,253,23,0,75,1,17,255,145,1,186,255,129,255,228,0, +136,1,95,254,31,251,207,1,107,1,40,255,134,0,53,0,85,2,74,255,142,254,35,2,129,0,65,255,10,255,42,0, +150,255,194,252,177,2,208,2,180,251,213,253,190,0,116,1,136,0,176,255,238,255,0,0,119,255,217,254,218,255,181,253, +62,253,139,255,174,4,24,254,64,249,60,9,163,2,83,251,22,5,203,1,217,254,33,254,155,255,236,255,44,254,121,254, +173,0,210,1,56,253,149,255,186,1,99,1,217,1,60,1,184,254,27,252,96,0,3,255,237,255,252,255,194,253,4,2, +67,255,55,255,195,255,101,255,197,0,58,1,65,3,145,0,71,254,28,253,119,255,120,255,194,255,177,5,139,0,9,254, +164,1,89,254,206,254,152,0,41,254,229,0,115,0,223,252,192,0,75,1,141,1,216,2,164,1,162,255,68,255,235,253, +182,249,7,2,250,0,103,251,107,2,190,255,246,255,132,255,209,254,142,1,62,254,152,0,230,0,54,0,169,255,227,255, +61,1,168,254,61,1,230,255,203,253,26,0,222,0,142,255,48,254,151,1,50,0,127,1,63,2,124,252,160,254,165,254, +11,0,130,2,238,254,124,1,82,1,121,253,25,0,141,1,240,0,106,0,161,254,172,1,36,3,185,255,23,255,148,255, +45,1,252,254,34,254,28,0,146,254,154,255,3,255,193,0,182,1,253,255,120,254,49,251,153,2,75,1,218,252,124,4, +95,0,211,252,17,255,57,0,230,1,53,255,136,255,35,0,80,0,93,0,179,252,47,0,37,4,135,1,169,0,140,254, +119,254,17,255,88,0,21,4,129,255,6,254,138,0,71,0,74,254,107,250,58,2,140,6,55,253,241,251,205,0,134,0, +32,3,77,2,64,252,218,255,250,254,174,255,104,4,32,255,56,254,10,1,56,3,59,255,133,253,214,1,31,254,131,255, +238,1,139,254,9,254,136,254,82,1,3,3,220,253,133,253,132,0,71,255,219,1,37,255,196,255,45,3,198,255,251,1, +236,255,52,255,253,1,121,1,99,254,227,253,104,3,171,254,64,254,156,2,65,255,106,254,50,0,253,0,86,255,248,255, +155,254,114,0,169,3,192,255,173,253,115,254,156,0,216,255,211,254,247,254,12,1,182,0,38,255,16,4,88,5,147,0, +33,247,157,253,48,7,79,1,10,1,50,254,42,254,233,254,21,255,229,0,90,254,48,2,50,255,183,253,106,255,158,254, +172,2,223,255,200,253,206,255,131,0,70,255,184,253,189,255,101,3,29,2,179,254,20,0,187,255,83,255,37,255,171,255, +65,255,62,1,19,4,38,255,150,0,8,255,132,253,6,2,165,254,207,253,208,255,189,1,144,2,222,254,138,250,85,255, +93,2,77,255,38,2,205,253,11,253,113,0,224,0,180,2,47,255,51,254,141,255,68,4,238,0,243,251,136,1,207,0, +25,0,156,1,235,0,244,253,39,255,164,255,201,253,158,2,194,0,39,254,237,254,237,0,18,0,238,253,139,1,133,255, +255,255,24,1,106,255,157,255,225,255,217,253,175,252,90,4,6,4,23,0,245,253,224,254,159,1,145,253,128,2,107,1, +95,254,194,1,211,255,234,1,43,1,210,254,80,254,10,255,133,253,88,254,21,3,67,255,82,255,100,1,98,0,29,0, +62,0,65,254,150,253,28,3,116,0,151,254,37,255,111,0,71,1,171,253,171,4,66,2,230,252,85,1,3,1,119,1, +15,1,34,2,153,252,50,245,184,253,31,9,147,6,74,254,15,255,154,0,215,0,197,255,251,255,203,0,233,254,3,2, +64,254,203,251,33,0,214,0,77,2,100,0,84,255,37,1,105,0,158,255,190,1,99,0,34,255,239,0,243,254,190,0, +65,254,85,254,4,5,111,1,18,253,191,252,249,0,74,1,54,255,82,1,194,253,28,253,183,255,254,2,221,3,194,253, +230,254,184,2,90,254,60,255,190,1,190,253,169,0,145,1,187,254,178,255,242,254,224,0,214,1,74,2,73,0,238,253, +26,2,157,0,80,253,195,254,66,255,211,255,112,0,76,255,93,255,103,1,175,1,94,255,45,255,240,255,243,0,243,2, +179,253,97,254,28,1,131,255,3,3,198,252,245,253,122,1,28,254,6,3,183,255,127,255,48,1,71,253,82,254,25,0, +198,1,140,1,55,255,148,254,41,3,45,253,54,250,36,4,47,1,232,254,149,0,242,254,46,0,203,2,30,255,99,253, +74,3,195,254,81,255,32,3,62,254,175,253,43,0,152,2,233,0,38,0,166,255,226,255,25,1,110,0,224,0,149,254, +10,254,234,255,203,1,211,254,235,253,71,255,1,254,182,2,95,1,51,255,205,255,255,254,7,255,89,255,180,2,32,0, +192,255,196,0,15,1,80,1,49,253,91,254,53,0,154,2,101,0,229,252,16,0,23,1,253,255,50,0,16,2,111,255, +45,255,237,0,75,255,202,252,67,254,210,2,247,254,248,0,244,0,75,253,70,1,170,255,189,0,52,0,195,255,54,0, +61,254,111,1,224,253,34,0,60,5,245,253,51,254,80,2,227,255,67,0,164,0,40,0,189,0,74,255,18,255,57,0, +197,0,226,254,138,255,247,0,36,2,53,2,65,251,255,253,190,1,24,3,23,3,151,248,235,254,27,5,200,253,153,254, +128,1,72,2,221,255,178,254,79,0,69,0,252,253,205,255,46,2,111,255,29,1,45,255,24,254,241,1,226,255,45,255, +104,255,203,254,211,255,41,2,168,1,149,252,16,252,122,0,70,3,42,255,27,249,193,253,10,5,58,0,198,253,152,7, +238,4,88,251,173,255,118,255,0,254,11,1,113,255,142,1,41,0,170,255,3,1,228,252,220,255,89,2,29,255,234,255, +91,5,103,3,113,253,134,255,56,2,113,1,221,255,48,1,88,254,104,255,194,4,200,0,8,0,158,253,179,252,157,253, +2,254,26,4,223,1,156,0,208,254,139,254,4,5,254,255,150,253,158,1,195,254,248,0,200,3,101,251,192,252,63,2, +92,254,94,255,199,255,155,255,164,0,255,254,202,0,179,4,152,0,1,252,32,0,229,255,222,0,84,0,125,253,65,1, +203,0,138,0,221,0,93,255,60,255,225,1,46,2,213,255,21,0,90,254,129,0,171,252,75,252,3,5,186,1,163,254, +240,253,158,1,89,3,98,254,49,0,62,255,145,0,23,1,153,251,101,255,132,3,241,255,220,254,197,255,50,255,99,255, +53,254,52,1,88,3,219,254,177,255,166,254,130,252,71,0,176,0,33,1,69,255,0,254,19,1,203,254,29,1,109,1, +246,252,39,0,46,0,199,255,161,0,24,1,116,1,71,0,94,1,130,0,83,0,106,254,167,255,222,1,42,254,57,0, +58,1,237,254,242,253,76,255,12,0,25,254,164,253,11,254,112,1,118,0,70,0,111,1,166,254,60,0,27,1,236,0, +220,0,236,1,69,0,205,254,6,1,229,254,56,255,196,255,26,255,143,253,229,0,13,5,60,254,44,255,240,255,51,254, +73,3,241,0,100,253,96,253,6,0,158,1,133,253,148,255,27,3,183,255,85,1,228,0,117,252,235,255,123,1,32,0, +154,253,146,254,161,1,17,255,135,0,39,255,51,255,102,3,121,0,41,1,178,2,199,253,84,253,109,1,109,254,12,254, +223,0,201,253,72,255,20,0,193,255,112,255,184,253,207,0,233,255,129,255,253,255,115,255,20,2,7,254,137,253,232,2, +33,2,157,0,174,255,196,255,57,255,72,254,11,0,251,254,166,255,62,2,247,0,165,255,164,254,194,255,159,1,73,0, +106,255,51,0,94,1,232,0,106,255,79,1,218,1,105,253,170,252,2,1,56,1,200,253,106,255,158,0,171,254,162,1, +44,2,135,255,57,0,144,254,128,252,45,255,5,1,142,255,229,255,255,255,204,254,40,255,39,0,43,1,51,255,138,254, +53,1,168,255,98,254,194,1,248,2,113,255,212,252,104,0,159,2,109,0,193,0,43,0,72,0,27,0,41,255,138,1, +83,0,13,0,108,255,13,255,199,0,151,254,24,3,137,3,121,252,160,253,142,0,36,1,240,0,225,255,23,0,138,0, +77,253,12,254,21,1,227,255,96,0,182,254,183,1,14,4,186,253,57,254,212,0,240,255,30,0,149,0,27,0,81,255, +2,255,195,255,56,0,254,253,40,254,138,1,167,3,62,255,210,252,185,0,112,255,249,255,84,1,86,0,110,1,146,0, +53,0,40,1,144,0,88,254,29,4,52,4,49,249,220,254,98,3,203,254,193,0,153,255,173,253,229,253,173,1,184,2, +250,254,145,0,145,0,38,255,64,255,90,2,68,2,170,253,239,0,167,0,199,254,119,254,130,253,211,2,132,0,117,254, +190,1,139,254,164,254,87,1,119,255,227,255,169,0,108,254,83,1,243,255,76,253,80,2,122,1,246,254,200,254,154,255, +134,255,246,254,253,255,129,255,64,1,135,253,200,252,81,3,243,2,113,1,207,254,106,253,118,0,88,1,66,0,241,255, +230,1,14,3,225,254,197,253,142,1,11,0,165,0,19,255,50,254,79,3,249,253,109,255,213,5,137,0,134,253,235,253, +37,255,144,255,241,253,27,255,124,1,182,255,182,254,205,1,85,2,230,255,41,255,170,0,162,253,214,253,139,2,90,0, +41,0,182,0,58,255,121,2,102,1,27,252,150,254,216,0,204,254,45,0,53,0,92,0,40,0,251,254,66,1,224,255, +95,254,77,1,138,2,101,0,71,254,124,0,61,1,30,255,159,0,21,254,27,251,117,255,186,1,131,2,26,1,204,254, +93,255,251,255,23,2,13,1,92,254,102,0,143,2,123,254,54,254,14,2,32,0,238,254,147,255,51,3,167,1,227,254, +93,0,146,254,192,1,35,255,104,254,70,1,187,253,25,0,150,255,184,255,61,1,78,1,124,1,128,255,62,1,24,1, +187,0,228,255,214,255,177,1,251,0,78,0,186,255,100,255,98,254,127,255,184,255,86,0,113,0,99,255,109,0,42,254, +176,255,159,1,198,0,210,255,87,1,2,1,31,254,151,3,90,255,55,254,175,4,39,255,47,253,244,254,203,0,244,254, +111,255,227,2,249,253,61,253,215,1,22,2,160,255,191,0,251,255,1,1,228,2,252,253,210,253,108,255,204,0,237,0, +60,255,250,255,222,1,96,255,106,250,252,1,117,4,180,0,122,1,208,253,209,0,88,2,80,254,36,254,194,255,211,1, +11,255,33,253,9,0,37,1,27,0,63,255,102,254,98,254,242,0,123,3,126,255,243,252,195,0,119,0,181,255,118,0, +212,0,176,254,13,253,217,1,142,2,155,255,4,255,82,0,0,1,197,1,112,0,49,254,185,255,88,254,204,1,154,255, +178,252,208,2,96,252,90,253,132,0,110,253,36,3,66,2,6,0,234,1,189,1,156,0,225,0,127,255,156,255,92,1, +252,252,1,0,206,1,117,254,177,255,79,255,241,2,129,1,153,253,174,255,116,255,87,1,100,1,204,0,49,1,177,253, +207,254,174,0,205,255,121,0,86,0,183,255,75,255,101,1,231,255,115,252,157,255,218,255,8,255,248,0,53,0,29,254, +177,254,212,0,111,0,130,0,153,0,132,0,46,254,169,254,136,2,255,254,75,254,43,0,249,0,10,1,193,0,206,2, +62,255,231,254,68,0,202,0,211,0,230,253,121,0,40,255,192,254,19,1,181,1,253,0,179,253,247,1,35,1,125,255, +99,0,15,252,219,0,165,2,33,254,126,254,249,255,160,1,10,1,25,0,62,1,48,0,222,254,171,254,135,254,13,3, +119,2,214,255,248,0,201,253,121,0,184,0,49,255,82,1,84,254,9,0,189,255,104,255,251,0,160,254,202,255,104,255, +190,255,165,255,196,254,72,1,96,1,250,255,216,255,77,1,78,0,197,255,8,255,46,253,207,2,108,4,193,254,46,255, +159,0,193,255,133,1,38,0,65,255,53,1,223,255,237,0,50,1,122,0,116,0,29,255,148,0,178,254,229,253,36,1, +49,0,216,254,205,255,43,0,107,0,113,1,240,0,142,0,203,255,60,255,170,0,201,0,137,255,61,254,129,1,83,1, +112,252,112,0,65,3,3,255,20,254,44,1,224,0,93,254,81,0,94,1,161,255,91,0,161,1,177,0,145,255,235,253, +205,253,134,1,94,1,0,255,255,0,86,1,206,254,38,254,185,255,109,0,38,255,121,2,97,2,24,251,106,254,55,4, +31,3,217,0,232,254,184,255,150,253,125,254,25,3,2,2,35,255,1,254,234,255,11,1,206,255,15,253,239,254,215,2, +50,255,68,255,232,0,50,1,197,2,177,253,238,253,55,2,187,255,23,1,6,1,139,252,171,255,70,2,187,255,199,0, +196,0,96,253,38,1,195,1,33,253,158,2,66,1,59,254,94,1,155,255,88,2,249,253,57,251,161,1,228,0,99,1, +235,0,48,255,236,0,15,1,212,253,8,255,172,1,136,255,27,1,52,0,84,0,60,255,234,252,97,2,22,2,186,254, +208,250,88,255,210,7,106,0,69,252,252,255,102,0,12,0,2,255,161,254,8,2,124,0,113,254,78,3,51,255,14,253, +166,1,182,1,208,1,243,255,207,255,39,1,255,255,179,254,132,254,228,254,146,255,131,255,208,255,230,1,7,255,115,254, +51,2,4,2,94,255,160,255,145,2,31,255,61,253,244,255,187,1,88,255,216,254,144,2,145,252,38,255,73,4,57,255, +167,253,67,252,31,2,66,3,156,254,92,255,81,255,19,1,179,255,239,0,46,0,97,253,119,3,71,1,225,252,230,0, +33,0,160,255,42,2,35,255,166,253,53,255,51,255,11,0,198,1,35,1,167,255,187,1,178,254,223,252,81,0,4,1, +126,3,35,0,120,254,25,0,59,254,207,0,173,254,23,255,136,0,10,250,127,253,162,3,91,2,76,2,232,1,131,0, +84,0,240,255,143,254,180,253,254,253,186,254,67,2,254,255,188,253,152,3,59,255,219,254,82,3,37,254,250,254,80,254, +253,254,162,2,192,254,106,255,65,2,181,0,211,254,240,254,125,0,132,1,82,0,84,255,117,254,135,253,210,0,207,2, +136,2,215,254,27,252,13,0,126,2,28,2,94,254,148,254,157,0,36,254,76,255,46,1,71,2,159,0,101,253,106,255, +180,2,142,1,105,255,176,0,220,0,134,255,126,255,36,0,83,255,165,0,98,1,7,254,150,255,166,255,28,253,255,255, +27,2,203,254,254,253,129,0,173,255,6,1,25,0,73,255,111,0,101,255,10,2,99,0,167,255,89,0,92,255,251,1, +184,255,116,253,40,0,29,1,167,253,116,254,115,1,163,0,75,1,181,255,165,254,117,255,20,0,115,0,247,0,66,0, +229,254,83,0,249,254,9,1,9,1,56,255,187,1,154,255,8,0,12,0,15,1,131,0,43,254,13,2,63,1,93,0, +139,254,62,253,249,255,92,0,62,0,110,0,14,1,231,254,95,0,154,0,66,254,129,0,28,1,110,1,41,255,206,254, +64,0,173,255,45,255,153,255,106,1,165,255,82,0,1,0,45,0,111,0,115,254,91,2,152,0,223,254,40,255,153,255, +61,1,43,254,124,0,198,255,206,254,225,0,180,254,127,0,147,0,119,255,170,255,40,1,117,2,139,254,29,255,154,0, +220,253,176,255,146,2,83,1,127,254,42,255,218,1,162,0,7,255,24,252,35,254,154,4,61,0,82,254,115,2,94,1, +20,254,156,253,188,0,162,255,19,254,77,0,204,1,60,0,107,255,201,0,175,255,77,0,36,0,95,0,180,0,53,255, +101,0,88,255,144,255,198,0,7,1,63,255,119,253,210,0,37,2,7,1,44,254,113,255,162,0,210,254,25,1,223,254, +174,253,69,255,253,0,29,0,172,253,130,2,38,1,118,255,107,2,235,0,69,0,204,254,91,0,230,0,236,254,235,0, +96,255,65,1,8,2,15,252,126,0,107,5,21,3,221,253,3,250,167,255,47,0,142,254,243,0,235,255,213,0,196,0, +103,0,99,0,83,0,174,255,55,253,8,255,189,3,100,2,149,251,48,0,22,4,7,255,180,254,43,254,179,1,216,1, +164,253,140,255,165,0,228,0,208,255,125,255,203,255,67,0,234,0,54,0,134,0,239,254,25,254,249,0,23,2,231,0, +97,2,245,255,147,255,131,1,6,253,175,0,106,1,196,254,114,0,42,0,204,2,240,255,100,254,108,254,61,254,18,0, +6,0,221,1,255,254,56,1,12,1,133,254,43,2,172,253,194,255,100,3,177,0,216,255,57,255,235,255,105,254,243,255, +57,1,69,255,124,254,167,255,76,2,68,0,58,254,48,1,69,2,60,254,225,254,179,1,71,0,235,255,4,0,75,1, +177,255,96,254,154,0,54,255,115,255,18,2,53,1,174,255,53,1,118,0,151,254,93,0,252,255,194,254,85,1,239,1, +113,254,203,254,16,0,211,255,121,0,186,255,92,255,104,254,67,0,251,0,44,255,215,255,19,255,227,1,229,0,177,253, +32,1,108,255,11,1,205,3,42,253,111,255,225,2,132,254,152,255,171,253,178,254,83,2,31,255,178,2,175,2,163,255, +154,255,114,253,100,255,127,255,139,1,108,0,70,252,72,0,138,0,68,1,173,1,85,253,144,254,225,0,106,0,125,255, +139,255,165,0,223,255,173,255,58,2,45,1,163,254,199,255,66,255,11,255,241,255,193,255,98,0,40,255,91,255,34,1, +136,255,247,254,51,0,71,0,225,255,158,255,109,255,82,0,211,1,115,0,148,254,108,254,45,255,199,255,229,0,173,2, +5,0,150,254,47,254,158,255,208,2,205,254,57,255,168,254,248,255,187,3,4,253,158,0,243,255,199,252,63,4,245,0, +147,0,123,0,180,253,174,0,20,0,212,254,232,254,5,1,113,1,119,0,59,255,102,254,144,0,28,0,57,0,112,255, +121,254,167,255,194,255,250,1,76,1,153,253,218,254,91,2,80,1,210,254,12,255,218,255,211,255,199,255,46,0,127,255, +164,255,34,0,158,0,124,0,233,255,54,1,135,0,19,0,76,255,86,255,234,0,68,0,185,0,137,255,112,0,179,0, +186,254,188,0,59,0,248,255,65,255,99,255,125,0,156,253,22,255,208,0,40,0,201,255,17,0,19,1,143,255,138,1, +213,1,8,255,191,255,230,254,176,0,172,1,109,254,139,254,27,255,246,0,223,0,64,255,84,1,255,255,72,0,39,1, +8,255,181,0,169,0,32,0,24,0,100,255,242,0,148,255,153,254,247,255,220,255,237,255,131,255,16,0,171,0,192,255, +175,0,150,255,102,254,160,0,135,0,20,0,63,255,149,255,111,0,93,255,55,1,130,255,94,255,19,0,234,252,26,2, +234,2,208,254,135,255,252,255,140,2,21,2,236,0,10,255,97,252,194,0,26,1,239,253,110,255,181,1,186,1,50,255, +238,254,19,0,151,0,168,255,229,253,64,0,155,1,106,0,118,255,109,254,44,0,254,1,216,1,26,0,63,255,78,0, +219,255,72,0,213,0,7,1,214,0,170,255,236,255,150,254,222,255,62,2,186,255,162,255,164,0,187,255,209,254,226,254, +28,0,66,255,96,0,116,2,218,0,227,255,151,255,235,255,43,0,65,255,120,0,159,1,74,0,82,254,217,253,156,254, +24,1,225,2,165,0,5,0,79,255,38,254,59,0,90,2,6,3,147,253,252,251,47,2,123,1,134,255,34,255,95,253, +75,0,14,2,103,255,151,255,40,0,243,0,142,3,173,0,49,253,112,253,156,255,11,0,99,254,151,2,196,1,126,253, +155,254,108,255,225,1,133,0,254,254,45,0,86,0,124,0,13,254,173,255,177,0,39,0,105,2,7,1,11,255,206,254, +95,0,161,0,211,0,126,0,217,253,115,255,82,255,178,254,208,0,216,1,216,1,38,0,52,2,144,2,84,254,212,254, +155,1,31,1,7,255,228,252,98,253,40,2,116,1,77,253,66,253,6,255,217,1,175,0,61,0,64,0,232,254,101,2, +114,255,107,250,247,254,94,2,90,1,224,0,147,255,200,255,26,0,50,254,96,0,127,1,1,0,161,254,90,255,32,1, +10,253,66,0,59,0,199,250,174,2,39,3,72,0,56,1,222,252,119,254,240,1,81,1,68,255,109,0,40,3,167,1, +93,0,229,255,30,254,123,253,195,255,198,255,225,254,230,0,241,0,224,255,216,0,215,1,74,255,60,254,147,255,137,254, +149,255,209,255,124,253,7,255,131,0,36,0,119,1,232,255,190,255,154,0,55,254,220,0,18,1,1,0,9,0,224,253, +111,1,83,1,216,0,247,1,73,254,148,253,16,255,14,1,126,255,156,255,248,0,218,254,233,255,229,254,230,255,84,1, +13,255,215,255,194,255,241,255,7,1,25,0,214,254,113,0,185,0,149,254,250,0,147,0,158,254,207,0,192,255,171,254, +0,0,78,254,12,255,137,2,187,255,163,254,10,2,65,2,92,2,76,255,162,252,86,255,130,254,178,255,97,2,211,255, +55,0,50,255,181,254,5,1,98,254,227,255,75,1,53,0,252,0,13,255,43,1,252,0,100,254,136,0,174,255,159,254, +8,0,25,1,199,254,191,254,251,1,164,254,142,254,66,1,72,255,12,0,74,1,125,0,130,255,224,0,33,1,34,254, +103,255,154,255,144,254,12,1,53,1,2,255,26,254,35,0,125,0,152,0,216,1,237,0,170,0,152,254,72,255,160,0, +44,255,157,255,143,253,252,254,95,0,227,254,210,0,185,0,44,0,153,255,219,255,55,0,2,0,152,0,141,255,196,255, +181,255,252,0,133,1,147,0,50,0,78,255,222,1,124,255,32,254,1,1,81,255,60,255,100,253,189,253,222,1,123,2, +204,0,47,255,223,255,247,254,7,0,127,1,29,0,194,0,106,0,140,255,176,255,62,1,244,255,235,254,183,1,203,255, +152,255,222,255,186,254,212,0,157,254,252,254,173,1,81,255,28,0,132,1,247,254,42,255,157,0,86,255,170,255,172,255, +231,255,62,1,89,255,148,0,157,1,135,255,159,0,89,0,193,255,204,0,184,0,97,255,73,0,94,1,168,253,120,255, +93,1,7,254,231,255,57,0,66,255,158,0,151,0,121,255,73,255,149,1,123,0,182,254,68,0,122,1,82,0,117,253, +73,253,53,255,53,1,26,0,134,255,29,2,181,1,208,255,146,253,69,255,156,1,144,255,106,255,43,0,146,0,10,255, +212,254,206,0,33,1,216,255,129,253,68,0,248,0,227,254,188,255,225,255,71,0,179,254,153,255,133,255,63,0,109,3, +154,255,203,255,121,0,160,0,224,1,101,254,223,255,47,0,1,255,219,254,64,254,58,255,249,255,180,3,98,1,104,255, +221,1,197,252,98,249,215,254,177,5,142,2,18,0,134,2,241,254,159,254,116,0,164,0,17,0,247,255,83,1,111,255, +79,0,164,0,206,254,29,255,140,255,21,2,77,2,89,0,182,254,150,255,246,0,56,254,151,255,197,0,183,255,122,0, +201,255,37,0,1,255,170,0,173,1,70,255,157,2,96,0,132,254,120,1,73,255,128,0,253,255,34,254,121,0,101,0, +174,255,83,0,157,1,76,0,95,255,151,0,13,0,125,255,62,255,119,0,205,0,169,255,222,255,8,0,240,255,53,0, +107,255,116,254,173,0,251,255,84,254,94,255,50,254,141,255,159,1,84,1,156,255,113,0,65,2,252,254,50,255,154,0, +130,0,52,1,89,1,175,0,248,253,170,255,144,255,190,254,147,1,250,254,86,254,120,1,165,0,56,254,210,0,251,1, +244,253,224,254,211,1,161,1,184,255,229,255,100,0,72,255,139,255,135,0,119,0,196,253,177,1,3,3,204,253,181,0, +215,0,243,255,12,0,167,0,163,4,42,0,58,254,242,255,84,253,157,255,212,0,62,253,144,254,165,1,5,1,121,0, +206,254,49,254,89,254,25,255,222,2,207,0,51,253,93,255,40,1,186,0,179,0,210,254,97,253,213,255,182,0,138,0, +158,254,67,0,210,3,14,0,167,254,131,255,73,1,77,1,143,255,59,1,39,0,61,0,224,254,106,254,23,1,20,0, +8,0,98,255,55,255,216,255,141,0,17,255,154,254,79,2,46,0,242,254,19,254,244,253,170,0,12,255,27,1,106,1, +56,255,38,0,8,255,238,253,114,0,144,2,232,255,132,0,8,1,87,255,248,0,206,255,129,254,206,0,183,1,89,255, +96,0,208,255,67,253,147,1,53,2,188,0,147,255,241,253,114,0,222,0,243,255,94,254,86,255,5,2,42,1,142,1, +129,0,10,254,241,254,3,0,118,255,176,255,32,255,61,255,76,1,47,0,233,254,49,255,107,255,107,0,186,0,185,255, +21,255,126,0,194,1,227,0,255,254,230,255,122,0,161,254,183,254,52,0,121,2,57,0,243,253,148,255,135,255,144,0, +231,255,204,255,105,0,232,255,58,0,108,254,178,255,145,0,189,255,21,0,148,255,102,0,87,255,5,0,154,1,130,0, +129,0,112,255,239,255,53,1,81,0,238,255,195,254,226,255,170,1,251,254,72,255,221,0,166,255,27,255,49,255,114,1, +47,0,68,255,182,0,30,254,255,255,245,1,158,255,128,254,113,0,17,1,73,255,161,2,7,1,109,254,69,0,16,255, +94,0,184,255,13,0,201,0,238,253,32,0,225,1,235,0,153,255,140,253,86,255,174,2,226,0,34,255,127,0,158,0, +78,0,171,255,171,1,4,2,36,0,13,0,154,253,164,253,139,255,253,0,171,0,5,255,129,0,89,0,58,255,2,255, +161,255,145,1,41,2,214,254,166,255,164,3,27,255,24,255,142,0,152,255,129,2,165,255,122,255,46,1,234,0,29,1, +239,255,202,0,153,255,117,255,227,0,181,0,55,255,74,255,13,255,34,254,211,2,78,0,248,254,143,3,65,0,92,255, +46,255,230,252,234,254,99,2,97,0,69,255,249,0,48,254,219,255,145,255,180,254,23,2,178,1,51,1,221,255,77,0, +213,253,107,253,164,2,115,2,201,0,26,254,15,0,146,0,88,253,167,0,43,0,25,254,237,0,34,2,115,255,243,255, +77,1,54,255,199,254,210,0,31,2,232,253,37,255,182,255,71,253,254,1,201,255,48,0,14,1,108,255,189,2,241,255, +166,254,86,254,206,0,228,1,135,253,122,255,245,255,108,0,57,1,166,0,222,255,204,253,252,254,93,0,46,1,158,255, +205,255,225,0,184,0,75,0,159,252,22,0,44,1,235,254,92,2,77,1,97,1,215,0,78,254,166,255,102,0,191,255, +101,254,140,255,129,0,56,0,83,0,135,255,95,0,92,255,64,255,96,0,115,255,60,1,60,0,109,255,119,0,80,253, +3,0,199,2,223,253,229,254,46,2,108,255,118,0,106,2,153,0,43,0,151,253,69,255,55,2,49,255,252,254,0,255, +44,0,8,0,65,254,216,255,44,255,27,0,173,0,111,255,3,255,35,0,255,1,100,255,29,255,248,254,164,254,123,1, +126,2,92,1,103,254,29,0,130,0,129,0,12,2,134,253,246,255,241,1,84,254,212,254,17,0,177,0,254,253,166,254, +241,255,83,255,63,0,185,254,148,1,36,2,213,255,51,0,96,255,220,254,97,252,203,255,251,3,134,0,44,255,2,0, +83,0,49,0,172,0,130,0,126,255,129,255,174,2,77,3,121,254,201,254,246,254,106,254,243,253,9,254,218,1,3,0, +254,255,40,0,234,255,100,0,15,253,8,1,162,2,132,255,65,254,247,0,51,3,105,252,160,253,251,1,77,255,162,255, +107,1,162,0,99,255,38,255,43,254,234,0,150,2,99,255,203,254,2,0,235,255,179,255,147,1,65,0,91,254,192,255, +227,255,67,0,95,255,171,253,69,254,144,255,16,0,168,1,229,0,72,254,187,0,14,1,111,255,99,0,88,255,35,255, +57,0,26,0,102,1,149,1,116,255,37,255,129,255,111,0,35,0,220,255,132,0,44,255,242,254,219,253,35,0,96,2, +148,255,11,0,140,0,203,0,29,254,16,252,52,0,90,0,195,254,115,0,246,2,30,1,69,254,53,0,60,0,7,255, +3,0,68,1,239,0,93,255,190,255,217,1,213,2,34,1,165,254,100,253,244,254,107,1,128,255,125,253,180,255,87,2, +126,1,126,254,205,254,1,255,125,0,105,1,92,254,41,1,147,255,227,252,76,1,23,2,121,2,71,255,96,253,40,255, +146,0,129,1,135,254,34,0,153,0,206,255,233,255,248,252,213,254,94,1,90,0,97,255,57,1,113,255,119,254,194,0, +140,255,91,0,178,254,192,255,100,1,176,255,11,1,167,254,181,254,224,0,134,1,246,0,182,255,232,0,202,255,77,255, +251,254,68,255,128,0,177,255,25,0,191,255,151,254,255,254,183,255,191,255,92,255,71,255,212,0,181,0,144,0,37,1, +55,255,108,0,111,0,98,255,43,254,54,253,153,1,252,255,71,253,18,1,136,2,206,255,173,255,80,1,114,255,79,0, +43,254,215,251,99,0,8,2,189,1,30,0,68,0,84,1,87,255,120,255,224,255,111,1,208,0,36,255,71,1,137,255, +220,0,234,1,23,253,207,254,98,0,193,0,246,0,121,255,136,0,106,254,8,255,246,0,206,254,41,254,132,0,23,2, +5,255,178,254,136,0,27,1,156,255,81,255,227,2,248,1,169,255,92,254,193,0,158,1,90,253,44,255,112,1,111,0, +217,255,224,0,74,255,60,254,113,2,52,1,217,253,110,254,243,0,130,1,203,255,246,255,152,0,48,0,55,255,125,0, +35,0,249,255,234,0,93,255,133,0,213,0,175,255,3,254,196,254,163,3,5,1,225,252,228,0,1,2,229,254,57,0, +9,1,142,254,181,254,1,3,139,2,186,253,115,255,179,0,135,255,210,255,0,255,249,254,196,255,46,0,20,0,77,0, +202,254,66,255,185,2,124,2,22,255,212,253,50,0,0,1,3,1,249,255,123,1,207,1,151,253,51,1,227,0,105,254, +42,1,195,255,54,255,100,255,234,0,184,255,230,254,152,2,87,255,31,254,207,1,151,0,63,255,203,255,109,0,72,1, +195,255,219,255,210,0,237,254,2,255,186,254,49,0,226,0,120,254,167,1,73,1,130,253,197,0,141,1,88,254,79,0, +209,0,166,254,219,255,90,255,2,255,152,255,176,255,124,1,105,0,136,254,117,255,205,255,241,255,112,0,242,255,40,0, +103,0,223,255,162,255,17,1,130,2,37,0,80,254,45,255,76,0,131,0,237,0,221,254,19,253,239,1,232,255,168,253, +57,2,26,0,213,254,27,255,128,255,102,1,87,0,87,255,54,255,135,0,247,0,234,0,41,1,76,0,59,0,222,255, +176,255,150,255,68,255,239,255,187,0,100,255,129,254,235,255,251,255,170,255,101,255,8,0,222,0,43,0,22,0,224,254, +129,254,199,0,211,1,118,255,248,253,10,1,171,0,84,254,242,255,173,0,36,1,46,0,209,255,226,0,1,255,76,0, +166,0,147,255,130,0,157,255,221,0,241,0,248,1,23,2,82,254,152,254,50,255,24,0,121,255,176,255,220,0,85,255, +230,0,138,254,52,255,76,2,11,255,255,255,195,255,223,254,228,255,210,255,139,1,43,0,90,254,60,0,166,2,151,0, +193,254,80,1,222,0,40,0,202,255,216,255,21,0,29,254,149,0,10,1,33,254,110,255,218,0,91,0,66,255,52,255, +63,255,150,0,72,2,129,0,4,255,98,255,198,0,131,1,219,0,196,255,107,255,199,0,187,0,133,254,63,253,66,0, +89,2,86,255,226,253,54,0,92,1,242,255,173,0,186,0,127,255,100,0,183,0,84,0,65,255,11,0,31,0,93,254, +200,254,203,255,42,0,68,255,149,0,35,0,138,255,110,1,139,255,111,0,117,0,123,0,64,1,224,253,209,0,213,1, +38,255,50,0,59,0,62,0,254,255,96,0,211,255,145,255,77,0,233,254,65,255,191,0,152,0,126,255,240,0,48,0, +0,254,184,0,222,0,30,0,144,0,34,0,22,255,41,0,87,1,18,254,61,2,184,1,246,251,39,1,165,1,246,255, +4,1,48,1,67,0,250,254,51,0,231,253,81,0,41,2,174,254,6,1,229,0,221,253,88,254,254,0,182,0,206,253, +223,254,191,1,253,1,242,0,67,0,197,255,106,1,216,0,188,255,148,0,19,255,248,255,84,0,1,255,74,0,72,1, +203,0,64,0,193,255,88,255,60,0,208,255,197,255,206,255,227,255,190,0,8,255,104,255,17,0,219,255,189,255,69,255, +146,0,235,0,141,0,78,255,50,255,49,255,178,255,232,0,90,255,41,0,168,255,77,255,19,2,2,1,77,255,170,255, +86,0,73,0,93,255,33,255,117,0,1,0,17,255,201,0,211,0,159,0,83,0,144,254,245,254,55,0,24,0,53,0, +171,0,77,0,99,0,226,255,25,255,55,0,100,0,205,254,24,255,142,0,168,0,125,0,102,0,231,255,95,255,176,0, +248,0,111,255,121,255,221,254,107,0,36,1,187,253,26,0,171,2,86,254,121,254,33,0,159,254,233,255,89,0,159,0, +112,254,49,254,142,1,223,255,86,1,75,0,35,255,228,1,47,0,232,0,19,1,115,0,9,255,73,254,252,255,32,0, +247,254,143,252,157,1,243,2,113,254,165,255,77,255,58,0,121,1,99,255,234,254,195,0,141,0,242,255,179,254,236,255, +67,4,230,255,191,254,94,255,38,254,135,0,71,254,191,0,147,0,64,254,38,1,9,0,140,0,5,1,76,0,88,255, +143,255,109,0,33,255,228,255,88,255,104,0,140,0,125,254,222,0,117,255,56,254,14,0,215,0,145,2,143,254,44,254, +74,2,151,0,174,0,40,0,233,255,134,255,207,254,192,255,175,254,9,1,177,0,19,0,46,0,147,254,203,255,118,255, +187,1,226,0,110,255,170,255,204,254,135,0,143,255,176,0,32,255,150,255,52,1,87,254,254,1,18,1,130,255,139,0, +6,255,72,255,113,255,10,0,231,254,24,0,83,0,64,0,15,2,245,254,20,255,161,0,167,0,246,0,129,255,137,255, +48,255,221,255,27,0,148,254,223,255,169,255,197,255,243,255,63,255,247,0,175,255,224,255,192,0,200,0,74,255,169,253, +95,4,88,3,98,255,40,0,178,254,83,0,109,255,99,255,250,254,194,255,34,1,104,254,139,255,202,255,192,1,119,0, +137,253,113,255,51,255,21,1,167,0,181,254,249,254,145,1,100,1,244,252,122,0,51,3,70,0,97,255,17,0,251,254, +238,253,29,1,246,1,77,255,51,255,136,0,94,0,143,255,66,0,130,0,19,254,204,0,152,1,189,253,195,1,19,0, +53,254,33,1,138,254,88,255,154,0,73,1,131,255,33,254,162,0,240,0,11,0,182,253,94,254,140,255,100,0,5,0, +181,255,245,0,129,255,179,1,111,255,202,253,229,2,242,0,249,252,248,255,38,4,235,255,194,253,244,255,2,255,169,0, +2,2,57,255,115,254,239,0,199,255,217,255,76,255,158,253,50,1,54,1,13,1,244,0,56,254,76,254,24,0,134,0, +87,254,231,255,149,2,82,0,106,254,197,255,250,254,150,255,82,3,105,255,8,253,127,1,93,1,123,255,209,0,22,0, +251,253,55,255,42,1,107,1,225,254,23,255,163,255,164,252,248,0,77,4,12,255,172,253,205,0,124,2,161,0,183,252, +201,254,51,2,121,0,191,254,138,254,254,0,238,255,124,254,155,1,172,0,188,254,147,255,236,0,249,254,117,255,217,1, +202,255,124,255,21,255,207,255,193,0,197,0,11,0,190,254,165,1,45,1,200,254,5,255,220,255,62,255,122,0,31,2, +54,255,181,255,33,254,159,254,94,2,186,0,150,254,162,253,22,3,103,2,220,254,17,1,69,253,148,253,156,0,57,2, +155,1,204,253,100,255,52,0,186,1,176,2,63,255,77,255,107,254,131,0,201,3,93,255,63,255,134,255,197,254,139,1, +228,255,6,0,207,255,115,255,113,0,174,254,86,1,39,1,127,255,59,1,27,255,141,254,17,0,9,0,147,1,187,0, +158,253,75,1,71,4,45,0,204,253,227,255,231,0,102,254,189,254,64,254,223,254,203,4,98,2,101,254,203,255,170,255, +89,1,57,1,20,255,111,0,8,2,246,0,46,254,174,254,242,255,89,255,249,255,12,0,212,0,184,255,10,254,255,255, +186,0,65,255,108,0,40,2,199,253,12,0,234,3,170,255,173,0,202,255,33,255,184,0,243,255,38,255,224,254,70,0, +69,250,7,255,47,7,62,255,3,254,47,0,204,0,99,0,206,255,150,0,246,255,101,3,152,254,160,251,105,1,44,1, +252,0,236,255,55,0,36,1,171,253,144,254,238,0,181,0,186,0,155,0,167,0,192,255,199,254,226,255,164,0,94,255, +65,255,189,0,231,255,64,0,127,1,150,255,21,255,90,255,49,0,82,1,83,0,95,255,236,254,11,255,74,255,15,1, +2,0,150,252,40,254,120,1,247,3,54,1,190,254,145,1,145,255,26,255,190,1,149,255,36,253,244,253,169,1,140,2, +34,0,171,255,157,255,64,0,9,0,238,253,115,255,39,2,186,255,136,254,37,1,36,255,64,255,75,2,24,255,52,254, +27,0,221,255,204,255,142,0,87,2,36,0,249,253,135,1,131,255,89,250,170,2,235,8,109,255,103,250,84,255,175,3, +91,0,57,253,155,0,119,255,28,254,203,254,162,255,206,0,222,254,208,0,4,1,136,254,206,0,31,2,252,255,71,254, +109,2,30,3,188,254,118,255,133,0,83,1,154,0,150,255,129,0,16,255,86,255,252,255,66,254,152,253,129,1,223,1, +2,254,145,1,7,255,74,253,87,4,129,255,253,251,37,1,90,2,10,255,177,252,209,1,25,3,212,254,210,255,14,0, +43,255,124,1,80,0,126,254,171,255,208,254,10,0,24,1,73,0,75,0,106,255,225,0,64,0,191,255,158,0,121,255, +13,1,55,0,127,255,76,255,252,253,228,255,144,255,226,255,78,0,137,0,61,2,117,0,100,255,232,255,231,0,124,0, +93,255,163,255,16,0,167,1,112,255,43,255,204,1,193,0,93,0,3,254,185,253,143,255,159,254,29,1,134,0,206,251, +53,0,44,5,236,0,74,255,178,255,13,255,66,0,7,255,208,0,15,3,54,255,64,255,166,1,66,254,111,253,19,1, +51,2,131,0,242,253,101,0,154,1,217,255,243,1,205,255,118,254,173,255,41,255,252,0,150,255,187,254,193,0,245,255, +123,255,120,255,231,0,242,3,232,255,39,252,200,0,42,1,131,254,105,254,29,255,86,0,192,0,87,1,63,254,175,255, +39,3,246,253,229,255,6,2,63,254,150,1,107,1,192,255,94,1,188,254,77,255,23,1,68,0,206,0,188,0,101,1, +222,0,179,254,211,254,224,255,112,255,54,254,139,255,221,0,40,0,130,0,80,0,12,255,193,255,199,0,76,2,26,3, +166,255,213,255,253,255,198,252,50,255,37,0,183,0,89,1,167,252,123,252,10,255,199,0,5,2,36,1,33,2,17,1, +116,254,222,254,139,254,8,253,137,0,46,5,225,255,114,254,43,3,245,255,197,253,178,253,171,255,156,254,166,251,98,2, +159,1,118,0,3,5,221,255,5,254,63,1,109,255,182,254,16,1,116,253,235,253,204,4,240,1,65,254,206,0,105,1, +194,252,212,254,105,2,29,254,122,0,234,255,244,253,72,1,202,255,88,0,105,0,12,254,155,0,127,2,143,254,119,254, +141,0,156,0,154,1,242,254,143,254,112,255,114,0,77,1,156,0,167,0,170,254,195,0,39,254,211,253,129,3,153,0, +118,0,30,0,150,255,142,1,226,255,32,253,13,255,206,3,15,1,168,0,91,254,20,253,158,3,47,255,59,251,134,0, +67,2,212,254,172,255,226,254,39,253,95,2,128,0,236,255,10,0,233,255,155,2,57,254,172,255,77,0,205,0,50,0, +190,252,52,4,237,0,114,252,33,1,104,255,250,255,34,0,235,254,168,0,127,0,51,255,254,0,7,1,46,254,64,1, +46,2,135,254,140,0,183,1,81,254,233,253,20,254,205,255,31,2,89,255,8,2,72,3,197,252,136,252,197,0,239,1, +97,254,113,254,149,255,69,254,10,1,179,251,244,250,138,7,229,4,67,253,209,255,239,254,157,255,173,1,205,255,206,0, +132,1,17,0,58,254,145,254,44,255,24,255,204,0,76,254,209,0,112,4,128,0,209,255,63,255,186,255,36,254,9,254, +80,2,50,254,248,253,83,0,220,255,75,2,181,255,115,254,49,0,179,1,155,2,224,255,65,0,72,255,28,255,251,1, +145,253,77,255,75,3,217,254,145,254,82,254,216,254,179,0,108,1,236,0,200,252,60,2,182,2,37,252,2,0,149,254, +14,255,26,3,11,255,161,253,117,253,20,255,119,4,217,2,243,253,192,0,131,0,184,253,222,1,79,0,209,0,158,2, +103,251,208,253,168,2,241,0,134,1,5,1,154,255,19,255,184,0,178,0,135,254,201,254,152,253,32,254,20,1,218,255, +198,254,134,0,151,0,65,1,56,0,123,254,71,1,204,0,101,255,122,255,165,0,30,0,179,252,120,0,185,0,187,1, +160,3,28,254,153,255,252,253,117,254,111,2,173,255,250,0,100,255,43,254,213,0,57,0,35,254,209,0,144,4,73,254, +119,252,187,2,241,1,98,254,227,0,223,255,51,253,139,1,215,0,126,255,35,0,86,0,25,1,221,255,112,1,18,0, +195,252,86,252,233,1,104,2,73,253,229,0,22,255,226,255,219,1,85,255,24,2,251,254,87,253,140,255,2,1,92,0, +177,255,251,255,169,255,190,0,169,252,8,0,229,255,139,254,89,4,15,253,45,1,17,5,105,254,195,0,96,255,239,255, +136,0,234,254,45,0,5,255,165,254,65,0,84,0,52,255,13,255,151,254,210,1,113,1,115,252,121,255,78,3,64,0, +28,254,120,0,53,255,96,0,110,0,224,252,22,1,55,1,188,255,202,255,205,252,184,252,176,0,85,2,107,252,88,255, +104,5,8,0,158,254,42,4,246,1,237,253,31,2,23,0,194,253,208,0,45,1,51,0,122,254,203,255,46,0,93,2, +177,0,126,253,12,0,177,255,4,2,233,254,47,255,208,1,138,253,102,2,33,0,209,252,112,0,144,0,241,255,88,253, +46,2,195,1,238,251,125,1,203,1,11,254,108,0,214,255,169,0,178,1,160,255,151,1,151,253,10,254,221,4,228,255, +251,253,152,0,221,1,132,1,209,253,204,254,44,1,83,0,162,254,69,0,248,1,48,0,225,253,243,254,215,255,170,254, +69,2,202,255,110,253,105,1,242,255,143,0,167,1,164,0,188,255,102,0,203,255,153,254,96,0,223,253,152,2,80,4, +65,254,234,255,221,255,64,0,119,252,26,253,156,3,113,0,88,2,149,1,210,253,191,253,166,253,99,2,184,254,81,252, +156,1,147,2,49,2,47,0,28,0,80,255,94,255,236,1,43,1,233,0,151,254,159,253,49,0,92,1,3,0,196,255, +228,1,103,0,140,1,23,254,27,252,106,5,5,2,215,253,33,1,143,255,193,255,74,255,154,254,252,254,99,254,79,254, +5,0,69,2,59,3,49,0,186,251,226,254,230,0,131,0,212,0,176,255,151,0,18,255,41,0,81,0,201,254,97,2, +81,1,97,255,157,255,116,254,216,0,12,3,180,255,210,254,176,255,196,254,184,255,205,254,137,255,96,255,229,254,2,2, +135,0,109,254,1,0,64,1,134,255,20,1,233,0,69,0,20,1,61,253,86,6,66,3,8,246,102,255,74,3,100,255, +170,254,35,1,2,0,191,252,69,2,148,255,199,252,243,255,212,0,207,0,79,0,45,2,149,0,236,254,138,255,255,0, +139,0,252,254,168,255,34,255,166,0,124,254,12,254,0,0,70,253,25,0,38,2,250,0,95,0,87,254,0,0,159,1, +1,255,188,255,5,2,66,1,179,255,196,254,154,0,74,254,175,254,217,2,140,0,77,255,165,253,69,255,107,1,219,0, +145,255,223,252,41,1,76,1,59,0,110,0,164,254,204,0,139,255,212,253,69,253,61,2,201,3,16,255,74,255,194,255, +156,2,75,255,139,253,154,0,25,0,73,1,79,254,98,255,113,1,200,255,35,254,184,255,19,6,181,1,26,252,181,254, +30,1,247,254,67,255,37,2,159,253,209,254,64,2,122,255,104,255,4,2,211,255,142,252,146,1,217,0,101,254,178,2, +99,2,183,255,221,254,184,255,216,255,172,0,68,0,72,254,181,255,61,1,230,255,115,254,3,0,114,254,207,254,168,0, +125,253,233,0,54,3,16,0,120,2,84,3,184,255,57,0,219,255,238,254,243,0,120,254,254,254,248,254,21,254,125,1, +38,0,97,1,18,255,19,253,230,2,83,1,180,254,65,254,33,0,102,2,111,0,50,1,50,0,150,255,151,255,214,254, +210,1,88,254,156,254,127,2,212,253,94,0,70,0,228,254,220,4,192,0,113,254,186,255,236,254,255,255,0,0,204,0, +169,253,167,254,38,1,150,255,236,1,177,254,2,254,80,3,233,0,114,254,203,254,148,0,192,2,246,254,207,255,191,1, +242,253,103,255,134,255,83,1,44,2,69,255,4,2,242,255,110,255,122,255,107,254,240,0,1,0,168,2,63,1,230,254, +182,0,131,254,173,254,102,0,48,1,128,255,83,254,240,254,228,0,251,1,142,255,47,0,124,255,238,255,147,1,206,255, +49,0,210,255,45,255,43,0,110,254,72,254,240,3,104,1,168,253,76,1,80,0,204,0,105,255,1,0,77,1,202,252, +209,0,241,0,89,254,24,0,75,254,23,1,42,2,161,253,196,254,196,2,44,1,71,254,146,0,190,2,7,255,238,254, +142,1,165,255,247,255,133,254,163,252,207,253,224,2,87,5,156,255,77,0,254,254,97,254,89,2,50,0,165,254,158,254, +85,2,137,255,151,253,13,255,43,250,47,2,227,7,88,1,172,254,200,0,249,254,150,252,137,1,177,255,16,0,180,3, +5,0,110,255,66,0,196,255,104,254,65,0,141,2,10,1,201,254,140,254,107,0,177,254,151,253,54,255,70,2,21,1, +56,255,122,1,98,253,195,253,210,1,174,255,80,255,96,2,89,2,108,255,190,0,182,255,159,254,149,1,176,1,6,0, +236,254,203,253,13,254,230,2,197,1,151,254,169,255,175,255,116,1,211,254,40,0,25,2,237,253,68,255,105,255,241,254, +218,0,111,0,104,254,115,0,37,255,7,252,136,4,195,3,243,253,239,255,130,254,147,0,208,0,90,254,53,0,76,255, +239,254,183,0,7,255,136,254,5,1,254,0,93,254,228,252,16,255,197,0,46,2,115,1,58,254,217,0,193,1,109,0, +38,1,77,255,105,255,216,0,0,0,191,255,172,0,98,0,18,0,165,255,38,255,146,255,70,255,128,0,201,1,200,0, +12,0,121,0,145,254,49,255,53,2,79,255,96,0,98,1,77,255,54,0,247,254,39,1,51,1,49,254,61,255,80,0, +160,0,103,0,204,255,113,254,129,0,79,255,97,254,199,2,0,255,117,254,47,2,214,0,233,255,2,255,30,0,157,1, +194,255,20,254,156,255,12,255,182,255,60,1,181,254,31,0,48,255,159,255,249,2,200,0,110,1,73,255,107,253,247,0, +211,255,251,253,27,0,9,2,120,0,60,0,182,255,172,253,52,0,95,0,155,254,106,255,151,255,211,0,236,0,189,254, +103,254,35,1,231,0,116,254,14,1,231,255,73,254,13,2,180,0,12,0,6,1,12,0,12,0,88,255,58,0,250,255, +233,254,47,0,56,1,61,0,86,255,168,0,135,0,96,0,0,0,126,0,239,1,33,255,76,255,50,0,29,255,169,0, +101,255,217,255,152,1,245,255,69,0,187,255,24,0,65,0,1,255,239,1,39,0,248,254,36,1,85,255,222,0,201,0, +252,254,132,254,240,255,207,1,167,254,147,255,99,0,63,0,249,0,204,255,71,1,123,255,220,255,161,0,241,254,249,255, +2,255,236,255,28,1,166,254,238,250,165,254,250,3,233,0,104,0,53,1,199,0,102,255,136,0,108,2,150,254,235,254, +179,254,178,254,7,1,242,255,1,1,104,0,136,255,133,255,83,255,17,0,49,255,148,1,39,2,154,254,165,255,92,1, +238,255,75,255,145,255,137,255,129,0,130,1,93,254,45,253,21,1,35,0,250,254,19,0,129,255,15,1,47,1,197,255, +251,254,142,254,39,0,170,1,231,0,231,0,113,0,129,254,124,0,8,0,159,253,163,255,29,4,130,4,100,253,194,252, +58,0,182,0,200,255,244,254,9,1,104,255,168,255,73,255,234,254,100,1,197,255,106,1,228,255,173,253,123,255,163,0, +218,0,4,255,180,0,41,255,179,254,171,0,234,255,63,0,82,255,192,1,158,0,199,254,146,0,250,254,70,255,83,0, +60,1,227,0,154,255,26,0,58,0,241,252,47,254,115,3,131,0,44,255,107,255,67,1,137,1,16,254,189,1,68,255, +242,254,206,1,52,255,183,0,51,0,136,255,209,254,43,1,246,1,80,254,126,0,39,1,194,1,178,255,155,253,40,1, +36,0,40,255,67,1,68,0,223,254,9,1,130,0,13,255,56,255,150,254,7,255,205,255,156,1,85,0,239,0,238,0, +105,254,19,1,172,255,247,255,44,0,209,253,255,0,37,2,154,1,120,255,85,255,172,0,76,0,26,1,241,255,90,0, +19,0,248,253,46,255,111,0,131,0,243,0,185,255,178,255,161,0,61,255,255,255,46,255,82,255,8,0,39,0,65,2, +209,253,83,255,174,1,92,255,227,1,207,0,161,1,125,254,250,253,242,3,17,0,77,0,190,0,117,253,177,0,151,0, +161,254,80,0,9,255,21,255,121,1,120,255,35,255,85,254,239,254,56,1,199,255,111,1,255,0,175,0,88,255,235,253, +7,2,185,255,75,255,97,0,139,254,23,0,137,0,137,2,19,1,199,254,120,0,213,253,216,253,131,1,108,0,241,254, +111,0,178,0,182,254,126,254,64,0,170,0,110,0,234,254,84,255,117,1,127,255,54,255,153,255,235,255,179,1,223,0, +90,0,121,255,74,255,208,255,116,0,211,0,98,0,82,0,8,254,36,0,142,1,24,255,50,0,230,255,103,255,91,0, +88,0,66,254,144,255,52,0,25,254,101,1,126,255,194,254,75,1,199,255,106,1,57,1,12,0,118,255,212,255,143,255, +96,255,82,1,44,255,159,255,42,0,120,255,38,0,90,255,220,255,115,0,94,2,171,255,93,254,44,1,116,255,194,0, +24,1,157,255,153,255,191,255,29,0,57,255,78,0,235,255,107,255,245,254,156,254,247,0,142,0,154,0,3,1,172,254, +163,253,208,0,28,3,160,0,252,255,88,0,233,255,125,0,139,255,200,254,105,0,14,1,215,255,47,255,119,255,171,255, +134,254,209,255,10,0,180,254,192,1,119,0,16,255,61,1,68,0,166,255,195,255,255,0,150,0,17,0,67,0,55,255, +140,0,228,254,88,255,95,1,11,255,85,0,112,0,232,255,242,0,117,255,175,255,181,0,103,0,15,255,221,255,205,255, +209,253,128,0,127,0,80,255,56,0,193,255,58,0,117,254,146,0,92,2,175,255,206,0,46,255,102,255,62,0,243,253, +44,0,33,1,211,0,6,0,199,255,254,255,126,254,196,0,216,1,240,255,248,254,9,255,13,254,175,254,103,3,161,1, +80,254,212,0,180,1,157,255,184,254,85,0,2,0,190,255,207,0,168,0,167,255,235,255,161,2,231,0,177,254,223,255, +233,255,177,255,116,255,99,0,130,255,233,255,129,1,141,255,71,0,140,255,229,254,245,0,184,255,185,0,191,0,71,254, +137,0,82,1,244,254,167,255,5,0,130,255,138,0,8,0,132,0,143,0,146,255,169,0,153,254,131,253,6,0,15,2, +39,2,248,254,138,255,46,1,94,255,25,0,4,2,251,0,206,254,142,0,53,0,90,254,10,0,133,254,73,255,115,0, +85,255,101,0,204,255,27,1,185,0,255,255,213,255,123,254,112,2,157,0,96,254,139,0,214,255,158,1,231,254,202,253, +72,1,150,0,2,0,155,255,90,255,208,254,229,0,241,254,59,255,127,6,125,251,55,249,62,5,132,255,165,254,25,2, +183,0,20,1,51,255,6,0,11,0,146,0,80,1,190,0,124,0,35,254,62,0,133,0,18,254,57,255,200,255,172,255, +42,255,209,255,243,255,196,0,238,1,147,255,66,255,72,1,123,1,174,255,21,255,149,255,154,255,184,0,95,1,38,255, +28,253,105,255,34,0,168,0,80,2,184,255,116,254,70,255,222,0,146,0,237,255,203,0,87,255,120,0,34,0,69,255, +148,255,209,254,9,1,232,0,21,0,191,254,81,255,5,1,21,254,58,0,144,1,120,255,58,0,117,255,162,254,236,255, +102,1,8,0,34,0,62,0,78,254,78,255,179,255,177,0,29,0,80,254,35,0,199,0,254,0,175,0,113,0,90,0, +227,254,34,0,21,0,195,254,69,0,116,1,198,255,133,253,22,0,139,0,103,254,42,0,179,255,180,0,7,1,138,254, +248,0,29,1,194,255,8,0,208,255,130,0,4,0,243,255,117,0,103,0,19,254,35,255,193,2,68,255,117,255,160,0, +170,254,142,0,146,254,208,255,74,1,249,253,42,2,78,0,44,251,58,0,82,2,5,0,117,253,58,254,83,0,86,1, +114,4,106,255,160,252,8,1,166,0,54,0,10,254,206,254,252,0,155,0,83,1,52,254,136,255,27,2,210,255,63,255, +95,0,178,0,133,254,174,255,86,1,164,0,173,254,151,254,140,2,97,0,143,255,59,1,46,255,215,254,240,254,60,0, +53,0,176,0,115,0,224,254,163,0,174,254,83,254,208,0,50,0,131,0,60,0,32,255,71,255,248,255,107,0,75,0, +34,255,39,0,26,1,164,254,44,0,124,1,178,255,213,0,194,255,59,254,184,0,47,0,81,255,126,0,179,254,127,255, +43,1,242,0,87,0,1,255,178,0,30,255,254,254,98,2,141,255,187,254,89,0,81,0,244,0,161,0,29,255,176,255, +192,1,197,255,46,254,82,255,198,255,213,255,163,0,189,0,136,255,96,0,228,255,231,255,206,0,133,255,212,255,23,0, +92,0,64,255,85,255,72,1,10,0,135,255,170,0,4,1,210,254,203,1,19,5,152,253,46,252,252,0,173,255,198,254, +172,0,122,0,113,255,13,0,185,255,154,254,66,254,167,255,157,1,18,2,220,255,51,255,95,1,116,255,136,255,155,0, +149,255,103,0,82,254,249,254,11,1,199,255,71,255,232,254,191,255,220,0,163,0,1,255,144,254,207,255,215,0,246,255, +181,254,220,0,25,255,234,253,21,1,242,0,152,1,28,0,109,254,168,0,71,0,150,0,49,0,19,255,181,0,75,254, +191,254,22,2,133,254,198,254,22,1,30,255,144,255,213,255,160,255,40,1,23,1,222,255,144,0,162,0,140,255,61,255, +61,0,170,1,172,254,242,253,37,1,69,0,39,254,13,255,162,0,68,255,136,0,112,1,117,255,114,255,188,255,52,1, +115,255,224,255,133,1,229,254,176,255,182,255,227,255,88,255,168,0,179,2,189,253,80,255,104,1,158,254,57,0,129,0, +73,0,124,0,34,255,220,255,93,0,46,255,35,0,108,0,153,255,228,255,10,0,53,0,251,255,149,0,14,0,116,0, +195,255,121,253,253,0,238,0,96,255,247,0,182,0,110,1,64,0,219,255,167,255,68,254,125,0,5,2,230,255,23,254, +136,255,73,255,170,255,193,1,112,255,87,255,0,1,121,255,81,0,122,1,79,255,60,255,51,0,120,255,43,0,44,0, +178,255,36,0,198,255,81,0,167,0,50,0,98,0,140,255,239,255,128,1,59,0,185,255,71,0,84,255,142,255,61,0, +255,255,74,255,41,255,25,0,51,0,85,255,32,255,241,255,50,1,243,0,225,254,192,255,155,1,16,0,95,255,205,255, +133,255,184,255,59,0,240,0,71,0,3,255,236,255,71,0,110,0,101,1,79,0,247,255,13,0,53,0,162,255,220,253, +69,0,180,1,21,1,85,0,53,255,142,0,219,255,42,0,228,0,138,254,151,254,3,0,97,0,116,255,29,255,55,0, +33,1,65,0,35,0,234,255,50,254,136,1,160,1,200,254,144,255,152,255,89,1,119,255,176,255,31,1,128,252,199,254, +7,1,12,0,15,0,162,255,119,1,38,255,74,255,210,1,202,254,2,254,8,0,245,1,210,0,232,254,39,0,143,0, +156,0,201,255,69,254,98,255,69,1,22,0,182,254,64,0,248,0,37,1,94,0,185,254,118,255,204,0,141,0,101,255, +229,255,14,0,28,255,225,255,121,0,231,255,18,0,209,255,173,254,4,1,42,1,61,254,205,255,95,0,169,255,145,255, +38,0,221,0,132,255,185,255,143,255,36,0,92,255,241,253,16,2,68,1,132,254,163,0,64,0,241,255,66,0,122,255, +34,0,76,255,63,255,189,0,80,255,216,254,189,255,24,1,42,1,239,255,245,0,228,254,85,255,137,2,246,0,152,0, +65,0,230,255,96,255,25,254,255,254,242,254,203,0,41,2,72,0,175,0,27,0,129,254,212,255,211,255,246,255,243,1, +64,0,226,254,43,0,175,255,200,255,213,0,88,255,180,254,135,1,231,0,123,254,135,255,177,0,215,0,246,254,97,255, +148,1,142,255,125,255,56,0,137,0,161,2,244,0,65,255,90,255,10,0,154,0,38,255,146,255,125,255,145,255,173,255, +229,255,235,1,173,254,32,255,193,1,119,254,29,0,78,1,183,254,169,255,215,0,71,255,4,255,120,0,245,255,238,255, +169,0,35,0,123,255,30,1,61,1,155,253,81,254,36,2,93,2,179,255,204,255,129,0,108,255,214,0,61,0,158,255, +155,0,91,255,242,255,107,0,173,254,184,255,181,0,254,254,66,0,3,0,145,255,79,1,172,255,85,1,32,1,133,254, +52,0,78,0,210,0,247,0,37,0,47,0,176,255,35,0,88,0,139,255,208,255,121,255,70,254,190,255,88,0,32,1, +135,1,187,255,69,0,172,255,47,0,219,0,143,255,75,255,159,255,186,0,130,255,63,0,134,255,43,254,85,2,134,1, +120,255,215,255,71,255,163,0,250,0,99,255,149,255,152,0,100,0,113,0,12,0,10,0,123,254,114,254,245,1,9,1, +65,0,76,0,171,255,126,255,77,254,78,0,12,1,87,255,63,255,85,0,36,0,52,255,100,0,140,0,182,0,100,0, +252,255,47,1,202,255,227,254,180,0,80,1,22,0,239,255,47,255,52,253,126,254,81,1,121,1,210,255,216,255,109,0, +90,0,113,0,32,0,100,255,124,255,134,1,66,1,35,1,81,1,155,254,157,255,151,255,244,254,138,0,52,255,156,0, +120,0,75,254,252,255,170,255,160,255,33,0,178,255,203,0,114,0,7,0,127,0,79,0,107,0,66,0,133,255,162,255, +205,255,219,255,2,1,29,0,244,254,240,255,110,0,119,0,157,255,127,255,234,0,44,1,234,254,250,254,129,1,5,0, +93,255,210,255,31,0,51,1,170,255,114,255,224,255,17,0,216,255,104,255,45,255,251,253,19,1,197,0,86,254,37,1, +30,255,22,254,23,2,218,1,134,255,61,255,116,0,5,0,107,254,145,255,35,0,242,255,152,0,43,255,253,254,0,0, +135,0,233,0,179,255,22,255,208,255,83,0,203,254,21,255,143,0,128,255,52,0,113,0,214,255,249,0,32,1,104,255, +117,255,43,0,8,255,200,255,165,255,73,0,27,1,144,255,244,255,58,255,67,255,184,255,40,0,122,0,63,255,170,0, +238,255,199,254,107,0,14,1,22,0,222,254,46,255,150,255,65,0,6,0,248,255,244,255,178,255,187,0,186,0,90,255, +9,253,134,255,41,2,177,0,99,0,221,254,207,255,24,1,172,255,18,0,239,0,49,255,196,254,85,1,66,255,197,254, +193,0,134,0,9,1,151,255,178,255,56,0,138,255,145,255,99,0,166,0,156,255,157,0,88,255,110,0,237,0,15,254, +168,1,234,0,186,253,168,255,76,0,201,255,198,255,114,0,210,255,204,255,248,255,211,255,75,255,241,254,81,1,201,255, +226,254,207,0,11,0,193,255,104,254,93,255,93,2,80,2,56,1,200,255,162,255,83,0,226,255,91,255,183,255,65,255, +201,255,1,0,23,255,153,1,215,255,186,254,7,1,130,254,41,0,25,1,245,254,129,255,211,255,182,0,91,0,150,0, +212,255,176,255,160,0,117,255,113,0,142,255,210,254,39,0,123,0,129,255,238,254,65,1,131,0,40,0,140,0,201,254, +210,255,214,0,168,255,2,255,145,0,39,0,225,255,84,0,17,0,223,255,211,251,201,254,123,4,175,1,252,255,215,0, +93,255,115,253,211,0,159,2,92,0,248,255,92,255,84,0,169,0,65,255,159,255,132,0,226,255,240,255,150,0,184,255, +173,255,207,254,227,255,217,0,9,255,251,255,98,0,197,255,221,255,210,255,166,254,95,255,145,0,97,255,227,0,67,255, +134,254,202,0,148,255,166,0,110,0,126,255,92,0,113,0,189,0,136,255,106,255,99,0,216,255,201,254,135,255,106,1, +120,0,242,254,164,255,242,255,174,255,70,0,215,0,101,0,205,254,59,255,198,0,240,0,208,0,31,255,247,255,111,1, +37,255,224,255,89,1,216,254,255,254,55,1,208,255,105,255,235,255,146,255,96,0,91,0,108,0,198,255,208,255,102,255, +105,254,206,0,31,1,113,0,233,255,97,255,116,0,211,255,14,0,107,0,54,0,211,255,173,255,236,0,171,255,100,255, +11,0,57,255,236,255,249,255,53,0,202,0,23,0,203,255,164,255,248,255,101,0,150,255,104,255,119,0,58,0,179,255, +238,255,31,0,192,0,200,255,59,255,15,0,22,0,219,0,160,0,156,0,31,0,188,254,236,255,35,0,107,0,63,0, +23,255,138,0,210,0,25,0,15,0,126,255,8,0,236,0,183,255,187,255,109,0,101,255,15,0,223,255,103,255,64,0, +101,1,196,0,209,253,154,255,141,1,7,1,127,0,31,0,169,0,14,255,27,0,199,0,14,0,247,0,93,255,171,255, +109,0,140,255,136,255,122,0,242,0,12,0,220,255,158,255,66,255,182,254,89,255,204,255,173,255,48,0,180,255,185,0, +131,0,102,255,28,0,223,0,29,0,139,255,197,0,157,255,145,0,64,1,35,255,4,0,124,0,96,0,234,255,71,0, +54,0,154,255,12,0,82,255,125,0,116,0,142,255,198,255,55,0,211,0,232,255,230,0,244,255,65,254,152,0,123,1, +186,255,230,254,52,0,178,0,64,0,199,255,203,255,233,255,103,0,32,1,36,255,13,255,91,0,76,0,122,0,185,255, +38,0,64,0,56,255,221,255,154,0,46,0,194,255,214,255,195,255,163,255,94,0,26,0,207,254,6,0,229,255,77,255, +137,0,184,255,182,0,82,1,136,255,34,255,68,0,52,1,226,255,240,255,193,255,227,255,242,255,106,253,240,0,197,2, +1,255,224,255,20,0,71,255,45,0,114,255,247,255,15,1,112,255,224,254,8,1,122,0,144,254,64,0,57,1,180,255, +144,255,11,0,126,255,52,0,78,1,103,0,164,255,10,255,102,255,94,0,74,0,246,255,80,255,151,0,100,0,24,255, +69,0,80,0,248,255,4,0,30,0,167,254,179,255,212,1,199,254,192,255,130,1,41,0,150,0,141,255,148,255,102,1, +126,0,115,254,209,255,254,0,132,0,181,255,167,254,125,0,215,0,38,0,185,255,20,255,219,0,48,1,94,255,77,254, +204,255,128,0,183,255,171,255,104,0,185,0,216,254,162,255,58,0,188,0,50,1,75,255,185,1,238,1,41,0,49,0, +164,255,87,0,156,255,136,255,146,255,58,255,191,255,138,255,2,0,195,255,117,255,217,0,7,1,76,255,139,255,48,0, +68,0,88,0,18,255,107,255,198,255,115,0,205,0,131,255,1,0,191,0,163,0,130,255,118,0,142,1,18,0,180,255, +11,255,164,255,240,0,98,1,17,1,116,254,64,254,16,0,216,255,220,255,82,0,36,0,31,0,138,255,46,0,151,0, +103,255,68,0,161,0,83,0,40,0,183,255,37,0,168,255,17,0,9,1,63,0,139,255,167,0,225,0,70,255,85,255, +141,255,81,255,128,0,240,0,3,0,91,0,10,0,29,0,165,0,108,254,107,0,112,1,155,254,6,0,231,0,149,255, +204,254,177,0,102,254,83,252,238,3,27,4,161,255,219,255,118,255,228,0,14,1,113,255,14,255,45,0,195,0,15,0, +153,255,219,253,162,255,150,2,28,0,44,254,255,255,234,1,143,0,233,254,222,0,69,0,109,253,143,0,187,2,241,254, +197,254,238,0,118,0,75,0,242,255,125,255,94,255,217,255,202,0,246,255,193,255,198,255,144,255,100,0,95,255,35,255, +162,0,142,0,36,0,86,0,16,0,51,0,59,0,244,254,201,255,168,0,195,255,126,0,157,0,28,255,30,255,213,0, +152,0,20,0,146,0,228,255,17,0,98,0,91,0,73,255,105,254,255,255,172,0,18,0,236,255,136,0,17,0,162,255, +117,0,82,0,219,254,182,254,79,1,66,0,33,255,115,0,215,254,114,255,27,1,227,0,101,0,155,0,180,0,63,0, +119,0,116,255,147,255,248,254,212,255,142,1,210,254,52,0,71,1,148,255,52,0,164,255,184,255,155,0,246,0,167,255, +209,254,232,255,5,0,25,0,21,1,24,0,127,253,127,0,156,1,24,254,157,255,86,0,248,255,151,0,12,0,198,255, +20,0,160,0,61,255,242,255,115,0,60,254,185,255,104,1,243,255,241,254,106,0,200,0,155,255,17,0,231,255,120,255, +218,255,145,0,193,0,179,255,36,255,196,255,73,0,116,255,226,255,37,0,90,255,247,0,55,0,143,254,194,0,136,1, +233,255,199,254,1,255,243,255,44,0,99,0,43,0,110,255,195,255,229,255,103,255,68,0,223,0,65,255,169,254,217,255, +6,0,11,0,7,0,55,0,21,0,31,255,244,0,132,0,7,254,193,0,161,0,59,254,172,255,20,255,118,255,209,1, +70,0,106,255,155,0,98,0,70,0,122,255,191,254,106,255,6,0,28,1,38,0,12,255,233,255,228,255,193,0,105,255, +170,254,60,1,182,255,74,255,140,0,207,255,109,0,76,0,86,0,127,255,67,254,113,0,52,1,71,255,113,255,65,1, +154,0,254,254,242,254,161,0,81,1,244,254,44,255,24,0,131,255,179,255,52,0,224,0,0,255,43,255,12,0,164,255, +182,1,23,0,191,254,27,0,112,0,92,0,27,255,215,255,82,0,113,0,254,0,248,255,142,255,191,254,165,255,252,0, +239,255,118,255,92,255,211,255,67,0,19,0,18,0,182,255,56,0,50,0,72,255,141,0,137,0,110,255,64,0,110,255, +25,255,236,255,122,0,162,1,111,0,96,255,41,0,54,0,228,255,225,255,84,0,57,0,41,255,88,255,194,0,249,255, +58,255,71,0,201,255,203,254,26,255,206,255,137,255,233,255,178,0,88,0,32,1,34,1,217,255,162,255,103,255,102,255, +160,0,95,0,111,254,227,255,224,1,229,0,60,0,95,255,14,255,94,0,98,0,231,255,21,0,6,255,86,255,152,0, +191,254,199,255,67,2,251,255,249,255,175,0,195,254,24,0,115,1,241,255,128,255,48,0,227,255,239,0,102,0,59,253, +44,255,51,0,4,1,167,1,21,253,221,255,27,2,12,0,199,254,107,252,49,3,83,4,74,252,143,253,63,2,145,1, +196,254,17,0,12,0,140,254,144,255,4,0,137,0,176,255,212,255,77,0,127,0,81,1,233,255,227,254,83,255,106,0, +35,0,78,255,76,255,194,255,14,0,189,255,144,0,215,255,244,255,90,0,163,255,158,255,62,254,70,0,227,1,134,0, +40,255,251,253,241,255,211,0,249,255,117,255,61,0,86,0,141,255,90,1,15,0,5,255,174,0,82,0,137,255,41,254, +122,255,72,1,32,255,171,255,205,1,131,0,201,255,87,255,152,255,56,1,68,0,194,255,11,0,20,0,39,0,187,255, +110,0,60,0,57,0,115,0,26,0,145,255,72,255,116,0,11,0,134,0,117,0,10,255,199,255,54,255,26,0,18,0, +3,255,76,1,136,0,85,255,170,0,77,0,229,254,66,0,248,1,7,255,107,254,195,0,152,0,203,255,3,255,231,255, +135,0,50,0,72,0,178,255,94,0,132,0,245,255,240,255,89,0,94,0,182,254,182,255,47,1,3,0,59,255,114,0, +13,2,34,0,189,254,206,255,49,0,29,0,37,255,58,255,37,1,87,1,204,255,210,255,191,255,240,255,123,255,221,253, +179,1,69,3,106,255,14,255,30,0,39,0,23,255,42,255,164,0,125,0,37,0,44,0,213,255,240,255,172,0,84,0, +26,0,21,0,139,255,21,0,163,255,241,254,0,0,91,0,143,255,18,0,42,1,125,0,116,255,73,0,82,1,45,0, +127,255,22,0,205,255,196,254,105,255,238,0,75,0,63,0,173,255,198,255,115,1,150,0,31,0,149,255,93,255,238,255, +229,255,142,255,26,0,91,1,38,254,6,255,13,3,32,1,27,255,145,254,116,0,97,0,230,254,126,0,50,1,157,0, +254,254,16,0,104,0,202,254,102,0,181,0,144,255,187,255,92,0,189,255,91,255,164,255,121,255,41,0,25,0,125,255, +229,255,242,0,2,0,103,255,188,255,142,255,147,1,166,0,102,255,88,0,11,0,232,255,215,254,185,255,100,0,35,0, +97,0,172,255,99,0,243,254,166,254,168,0,137,255,79,255,62,0,17,0,66,0,180,255,113,255,191,1,83,1,252,254, +86,255,195,255,104,0,3,0,172,255,63,0,199,255,154,0,21,0,236,254,47,0,84,0,250,255,132,0,64,0,154,0, +192,0,107,255,70,255,31,255,175,255,124,0,9,255,107,255,200,255,28,0,27,2,144,0,104,255,62,0,43,255,56,255, +181,0,21,1,240,255,224,255,114,0,99,255,78,0,94,1,88,255,189,254,90,0,47,0,221,255,74,0,111,255,206,0, +209,0,229,254,156,255,173,255,40,0,164,255,67,0,59,1,7,255,91,0,144,0,11,0,49,0,137,254,130,0,193,0, +113,255,231,255,232,255,132,0,239,255,18,255,75,0,225,0,227,255,83,0,240,255,144,255,9,0,246,254,161,255,68,0, +40,0,119,255,153,255,18,1,241,255,229,255,194,255,112,255,59,0,66,0,159,0,230,254,185,254,165,0,157,0,212,255, +233,255,68,0,85,255,51,0,205,0,92,0,164,0,10,0,134,0,194,255,143,255,97,0,134,255,40,0,151,255,220,255, +82,0,145,254,196,255,169,255,95,255,174,0,149,0,121,0,57,255,159,0,230,0,31,255,157,0,16,0,1,0,205,0, +126,0,83,0,41,255,179,255,224,255,190,255,221,0,229,0,154,255,118,255,248,0,140,0,70,255,66,255,248,255,14,0, +69,0,93,0,105,0,10,1,42,255,223,255,67,1,188,255,2,0,88,0,103,0,90,255,125,255,48,1,160,1,168,255, +241,253,55,1,191,0,130,255,92,0,249,254,206,0,209,0,199,255,119,255,245,254,224,0,192,0,31,0,34,0,25,0, +45,0,163,254,96,254,128,0,48,0,171,255,242,0,147,255,190,0,173,1,19,0,63,0,102,255,233,0,238,0,124,255, +116,0,203,255,167,255,53,0,219,255,160,255,27,1,86,255,254,254,149,1,133,254,211,255,223,0,141,255,59,1,239,255, +131,0,190,255,119,255,180,0,159,255,223,255,81,255,27,0,213,255,224,255,206,0,144,255,5,0,57,0,130,0,135,254, +24,254,250,0,32,255,54,254,15,1,129,2,158,1,164,0,250,254,251,254,184,0,130,255,34,0,150,0,214,255,149,0, +142,255,193,255,65,0,62,0,4,1,203,255,22,255,109,0,155,0,242,255,96,0,230,255,5,255,40,0,149,0,33,0, +10,0,92,255,87,0,119,0,55,255,236,255,105,255,252,255,56,1,55,255,197,254,83,0,199,255,160,255,88,1,65,0, +182,255,241,255,57,255,112,1,136,0,48,255,132,0,14,0,34,0,251,255,55,0,89,255,16,255,90,1,252,255,243,254, +129,0,52,0,25,254,123,254,9,2,3,1,31,255,60,0,147,255,4,0,116,0,60,255,168,255,121,0,51,255,74,255, +243,0,163,255,5,0,50,0,166,255,76,1,181,255,171,255,131,0,131,255,0,255,160,255,105,1,133,255,6,255,219,255, +206,255,14,1,80,0,245,254,232,254,231,0,201,255,80,0,129,3,142,254,23,253,113,1,208,0,208,254,211,254,140,0, +185,0,163,252,87,254,111,1,31,252,152,0,157,6,36,0,234,253,4,0,242,0,223,255,184,254,243,0,138,0,71,253, +95,255,166,2,111,255,139,254,36,0,147,255,0,0,119,0,214,255,177,255,130,0,52,255,62,0,6,1,202,255,9,1, +49,255,242,254,88,255,215,254,200,255,146,255,129,1,223,0,50,0,24,1,180,255,183,254,149,254,29,0,222,255,240,0, +37,1,14,255,145,0,72,255,181,255,226,0,179,254,234,255,59,0,204,255,239,255,68,0,82,0,122,255,67,0,201,255, +239,255,197,255,184,255,180,0,223,254,106,255,180,0,151,0,161,0,41,0,32,255,253,254,93,1,227,0,22,0,14,255, +94,255,125,1,49,254,122,255,108,1,60,255,126,0,23,0,167,254,94,255,113,1,220,255,128,254,248,1,24,1,102,254, +234,255,109,2,69,0,93,253,1,0,209,0,119,254,43,255,149,0,38,255,138,255,92,1,179,0,249,0,162,255,24,255, +31,2,51,255,161,253,52,2,49,1,23,254,181,254,112,0,189,0,181,0,133,0,56,254,246,255,1,1,93,254,229,0, +59,1,245,254,1,0,171,255,206,0,164,1,52,0,155,0,16,255,55,255,251,0,216,255,223,255,1,255,237,254,245,255, +173,0,22,2,37,0,67,255,191,0,86,0,112,255,19,255,173,255,105,1,134,0,94,254,140,255,201,255,90,0,150,0, +5,255,65,255,191,255,229,1,48,1,197,254,96,0,253,0,147,254,17,254,110,0,65,0,203,0,228,0,198,255,4,0, +227,254,242,255,203,255,78,0,78,1,176,254,166,0,23,2,13,255,4,255,228,0,103,0,236,255,255,255,54,255,186,255, +51,0,247,0,124,0,82,253,233,255,60,3,147,254,199,254,66,1,230,254,149,0,154,0,46,255,242,255,54,0,238,0, +101,0,29,0,90,254,231,254,15,2,70,0,36,255,247,0,45,255,43,254,176,1,207,0,221,255,196,0,70,255,19,0, +11,0,165,255,56,0,164,0,175,255,204,254,220,0,221,0,154,255,73,255,100,0,152,0,208,255,177,255,175,254,252,0, +17,2,120,255,29,255,41,0,42,0,73,0,143,0,63,255,254,254,65,0,132,1,137,0,181,254,235,254,104,0,48,2, +215,0,214,255,6,0,80,255,97,255,115,255,189,0,244,0,69,255,95,255,8,1,204,0,45,0,154,0,143,0,253,254, +130,252,175,0,126,3,215,254,130,254,199,0,236,0,69,0,227,255,54,0,49,0,201,254,196,254,82,1,111,1,187,255, +13,255,147,0,249,1,9,1,231,254,159,254,47,1,1,0,199,254,70,255,90,255,104,1,160,255,130,254,92,0,7,0, +143,0,210,0,162,0,160,0,158,255,193,255,78,1,36,1,253,254,117,255,133,0,102,255,246,255,151,0,44,0,162,0, +103,255,159,254,160,0,133,255,220,254,10,1,207,255,199,0,110,1,224,255,194,0,189,255,18,0,136,255,243,254,60,0, +21,255,207,255,191,255,75,255,29,0,80,0,36,0,42,1,154,1,125,254,198,255,142,0,157,255,70,1,255,255,124,255, +85,255,196,254,211,255,143,0,166,255,8,0,190,255,203,254,194,2,89,2,190,254,249,254,198,0,201,0,187,255,103,0, +237,254,20,0,142,0,85,255,218,255,236,254,45,0,24,0,204,0,49,1,238,255,84,0,164,255,82,255,82,255,102,0, +108,255,127,255,229,255,148,254,128,0,198,0,31,1,6,0,79,254,185,253,110,255,254,3,145,1,9,255,198,254,229,255, +135,1,112,254,24,255,171,0,25,0,110,0,233,255,233,255,253,0,239,0,4,255,185,255,35,1,232,254,27,254,56,1, +190,1,157,255,65,255,51,255,231,255,7,0,243,255,30,1,220,0,45,1,0,0,162,253,46,0,140,1,83,255,156,255, +44,1,235,0,95,255,190,254,177,253,4,0,239,2,133,254,223,255,41,3,34,255,123,255,113,0,38,255,228,255,216,0, +197,0,187,255,184,0,173,255,190,254,217,0,157,254,45,0,11,3,105,255,152,254,18,255,18,1,228,1,231,255,204,255, +170,254,172,255,223,255,111,0,163,0,69,254,125,0,34,1,144,0,25,255,1,254,231,0,84,0,157,255,109,0,252,255, +22,1,169,1,153,255,65,255,68,255,98,0,22,2,45,255,238,254,128,255,9,1,157,1,8,255,84,1,254,254,236,254, +151,1,200,252,177,253,82,2,221,2,213,255,33,254,221,255,93,0,234,0,202,255,251,254,78,1,210,255,170,255,133,1, +1,255,215,255,147,255,115,255,229,1,161,255,196,255,3,1,236,0,15,255,13,0,22,1,223,253,131,2,167,1,105,253, +144,255,248,254,168,255,107,0,58,0,237,254,181,0,185,2,167,255,156,0,50,1,231,255,231,0,130,255,235,253,0,1, +44,1,164,254,140,255,19,0,170,255,105,253,131,0,178,3,108,0,201,0,100,255,195,0,131,1,7,252,43,0,98,3, +192,254,232,254,219,0,38,1,115,0,65,255,151,0,20,0,27,255,196,0,138,255,243,254,108,0,161,0,12,0,136,255, +190,255,86,1,54,3,12,0,54,253,51,255,21,0,198,255,22,0,87,1,77,1,174,255,205,254,100,0,103,1,70,254, +208,253,122,255,67,1,49,2,252,0,238,0,142,253,52,0,247,2,3,254,96,1,52,0,226,254,199,2,171,254,228,255, +18,1,120,253,50,255,115,1,231,254,237,253,99,0,201,0,183,0,217,253,203,255,75,0,72,253,80,3,167,1,246,255, +2,3,233,254,78,253,96,255,100,1,246,1,69,2,111,0,129,255,89,0,240,255,210,255,94,254,123,255,126,255,130,255, +180,0,181,255,110,254,227,255,202,4,121,0,246,252,243,1,98,4,127,2,68,0,181,2,48,255,88,254,111,3,129,254, +243,251,115,255,230,255,30,1,24,1,154,254,58,0,24,255,121,255,122,1,238,253,220,255,28,255,45,254,111,0,244,0, +36,2,63,254,239,254,245,255,24,255,234,255,217,254,250,255,109,254,87,1,73,3,83,254,57,253,195,255,154,2,110,0, +164,254,214,253,220,254,112,0,222,252,175,255,175,1,184,254,237,255,113,255,219,253,242,255,220,1,136,255,199,254,224,254, +163,253,114,0,154,0,65,255,42,0,187,254,23,0,175,1,7,0,198,0,149,255,108,254,88,3,28,3,186,255,9,0, +18,254,231,255,97,1,170,255,192,0,27,254,212,253,248,0,73,0,199,254,163,255,25,1,85,254,134,253,254,255,17,1, +28,2,66,0,167,255,107,2,189,255,61,254,63,2,30,1,122,254,172,254,121,0,94,0,250,253,126,254,109,254,75,1, +146,0,19,250,169,253,16,5,44,3,219,254,26,1,185,254,81,253,171,1,224,255,91,254,221,254,24,3,240,1,208,253, +124,1,163,255,249,255,23,1,142,254,107,0,121,255,125,255,57,2,23,0,20,254,79,0,17,0,22,0,90,1,174,254, +193,253,107,0,132,1,133,255,196,254,80,254,131,255,177,1,86,255,1,0,228,1,18,0,246,255,180,0,81,255,214,254, +135,0,86,1,37,255,152,253,122,1,130,1,74,255,115,1,232,0,70,255,243,254,195,254,82,255,16,2,40,0,130,253, +114,1,91,0,100,255,41,0,152,254,101,255,181,0,95,1,110,254,212,252,149,1,212,5,159,252,45,247,151,5,99,5, +12,253,62,2,136,0,183,253,246,0,220,0,52,0,186,254,233,254,107,1,183,255,1,0,157,1,182,254,43,255,216,0, +190,0,108,2,218,255,66,253,29,0,170,0,80,0,96,255,65,255,176,1,98,255,91,255,167,1,161,255,72,255,84,0, +218,0,248,255,88,255,187,0,105,0,178,255,204,255,20,255,123,255,219,0,164,255,105,254,176,0,69,0,37,254,137,0, +154,255,106,253,121,1,167,3,188,255,109,253,164,0,177,255,241,253,148,1,255,1,213,255,66,0,68,1,221,253,128,255, +207,3,168,0,44,255,54,254,50,255,80,2,101,1,94,254,117,254,84,0,121,255,172,1,101,0,31,254,100,255,127,255, +157,0,40,255,49,1,197,1,22,255,70,255,223,255,50,1,200,255,250,0,82,0,219,255,185,1,203,254,219,255,129,255, +8,254,172,0,17,2,12,1,112,254,194,253,185,255,28,1,143,254,108,254,137,0,126,0,37,1,94,0,221,254,123,255, +191,0,26,0,12,0,106,255,221,255,194,1,228,255,54,255,202,255,29,1,12,0,68,255,243,0,40,254,216,255,130,1, +106,255,169,0,148,0,148,255,243,254,120,254,204,255,158,2,198,0,96,254,119,0,254,255,50,0,90,0,2,0,3,1, +231,254,203,255,30,2,15,0,88,0,140,1,5,255,122,253,90,255,42,2,239,0,74,254,93,0,80,0,214,254,34,0, +77,254,46,255,56,2,247,255,145,254,51,255,189,255,91,254,203,255,62,3,130,255,210,254,49,1,247,0,37,254,218,252, +89,3,176,1,145,255,99,3,63,255,209,253,64,0,182,0,39,0,0,0,189,0,176,255,56,255,213,255,125,0,120,255, +33,255,155,255,121,254,219,255,190,0,60,255,182,0,251,0,131,254,243,0,252,1,85,0,105,1,142,0,211,255,147,255, +56,0,109,255,150,253,156,1,117,2,113,255,5,0,111,1,119,255,201,253,239,0,51,0,131,254,47,1,237,0,0,0, +136,255,243,254,132,255,2,255,148,255,43,0,138,255,254,255,34,0,190,0,238,0,102,0,240,255,60,254,215,255,35,2, +225,0,64,0,249,254,199,254,121,1,172,1,46,255,155,254,101,0,102,0,106,255,242,254,34,0,172,1,205,255,186,255, +56,254,15,253,76,1,126,1,201,0,88,0,34,255,40,0,106,1,255,0,81,255,114,1,108,254,214,252,187,2,81,0, +62,255,9,1,176,0,179,1,117,255,222,254,91,1,239,1,195,254,75,253,194,0,107,0,52,254,143,255,109,255,251,255, +144,0,50,255,126,0,101,255,35,0,57,1,28,255,59,1,20,0,227,255,27,255,156,253,209,1,72,0,51,2,114,4, +49,0,222,253,68,250,180,254,227,3,237,255,184,254,217,254,22,0,104,1,41,255,222,254,165,255,199,255,5,0,180,255, +244,255,121,1,200,0,225,253,229,255,197,0,59,0,126,2,251,255,132,255,101,0,104,255,40,0,80,254,149,255,120,0, +86,254,90,0,107,0,253,255,236,1,170,0,103,255,148,255,202,255,187,255,16,255,34,1,212,0,8,255,42,0,22,255, +55,255,137,0,95,1,200,1,234,254,24,254,82,1,122,2,104,255,178,253,118,255,79,0,130,0,191,1,182,255,135,254, +225,255,255,254,168,0,249,254,115,254,47,2,208,255,114,0,190,0,246,253,76,255,247,0,137,1,173,0,191,254,192,254, +150,0,231,254,229,254,161,1,241,1,193,0,154,254,194,255,114,0,233,0,149,0,52,0,214,1,38,254,21,253,82,255, +188,0,24,1,196,255,114,255,177,254,197,0,152,1,191,255,0,255,140,0,197,0,97,254,68,1,134,1,239,255,163,0, +125,253,217,253,30,1,244,0,72,1,175,0,188,254,206,255,230,255,38,1,23,1,207,254,215,0,219,0,193,0,18,0, +105,255,158,0,77,0,199,0,107,255,204,255,14,1,203,0,121,254,130,254,104,1,52,254,119,255,109,1,252,0,83,1, +143,254,47,1,123,2,79,255,141,254,192,0,21,1,136,255,253,0,116,1,207,0,140,254,216,254,157,1,179,1,141,255, +179,253,4,0,211,255,62,0,36,1,53,255,91,255,21,254,59,255,91,1,62,2,96,2,197,254,25,254,99,0,134,0, +151,0,212,0,141,254,126,254,182,0,33,1,159,0,138,255,74,255,246,255,30,3,85,2,170,253,130,254,109,0,143,0, +4,0,113,1,78,0,3,253,145,1,67,2,39,254,172,255,136,255,0,255,184,255,143,254,212,1,22,2,146,254,128,1, +128,255,176,252,20,1,230,1,126,0,216,255,59,0,224,255,101,255,16,1,123,0,36,0,13,0,177,254,166,255,49,1, +73,254,127,252,199,1,152,2,195,0,212,0,124,253,5,255,119,1,238,255,135,255,133,255,252,0,61,0,58,255,236,0, +150,0,136,254,225,253,236,255,59,1,9,1,38,0,69,0,160,0,163,255,136,0,227,254,26,255,20,2,121,255,109,254, +116,255,96,255,12,0,178,255,111,255,101,1,155,1,113,255,166,255,56,0,60,1,75,255,229,253,212,1,177,0,140,255, +60,255,54,253,243,255,191,1,30,1,192,0,144,0,43,255,34,254,39,0,20,2,13,1,29,255,7,255,108,254,14,0, +217,0,75,254,12,1,233,3,24,255,16,252,189,1,154,0,197,251,54,1,47,2,160,254,12,1,94,2,245,254,36,255, +54,1,21,255,137,254,224,255,252,255,202,254,223,0,129,0,106,253,35,2,214,0,52,252,139,0,114,2,216,255,126,1, +153,1,100,252,132,254,175,1,154,0,228,0,163,255,35,255,109,0,128,0,114,254,135,254,139,255,70,1,206,0,100,0, +39,0,48,244,158,250,202,11,223,4,40,254,139,255,208,1,215,255,253,253,223,0,155,0,111,1,124,254,28,255,215,2, +122,254,61,254,245,0,78,1,192,0,224,253,116,254,50,2,219,0,222,254,186,255,129,0,58,0,70,254,104,254,208,254, +68,0,127,0,138,255,22,2,130,0,68,254,161,254,148,0,219,1,106,255,61,254,44,254,164,1,166,2,243,254,70,255, +7,0,252,255,189,0,57,0,152,255,30,255,146,253,151,0,75,3,245,255,193,254,105,255,110,1,34,0,95,253,74,1, +246,1,192,254,163,254,234,254,226,255,168,1,80,255,36,254,74,255,90,254,98,255,222,255,206,2,175,2,126,253,71,0, +86,1,24,255,77,0,102,1,246,255,39,253,204,254,82,1,100,2,36,255,138,252,71,1,216,0,18,1,215,0,42,251, +35,1,88,5,130,0,0,255,42,254,209,0,224,1,115,255,190,255,153,255,136,255,19,0,218,0,48,255,109,253,251,0, +180,1,182,253,8,0,103,2,60,253,163,255,102,3,119,254,145,254,98,3,1,3,105,252,170,252,123,1,8,0,137,0, +165,255,173,254,157,1,18,0,83,255,32,0,14,255,158,0,121,0,6,0,97,1,77,255,56,0,13,2,129,254,42,252, +233,0,209,3,121,254,7,0,207,0,245,252,83,1,170,1,192,255,203,255,240,253,214,254,102,0,190,0,188,255,121,0, +190,1,34,255,229,254,4,2,223,0,245,254,118,255,155,0,49,1,223,255,197,0,5,254,248,253,220,2,74,255,152,253, +35,255,62,0,90,255,91,253,60,255,24,0,203,1,251,255,188,255,250,0,155,254,245,0,64,2,64,1,52,254,123,255, +2,2,100,254,250,255,254,0,103,0,166,255,80,254,175,0,16,1,6,0,18,255,230,255,118,1,3,0,227,254,176,0, +175,0,86,255,133,1,160,1,11,255,248,253,0,255,221,255,181,255,83,254,152,255,27,4,182,254,45,252,10,2,172,1, +31,1,179,255,162,254,156,0,59,0,67,255,159,255,44,255,189,254,202,0,135,1,167,0,206,255,106,1,190,0,242,253, +224,1,203,1,93,253,18,254,27,1,169,255,47,253,16,0,225,0,246,1,49,1,200,254,219,0,34,0,80,0,92,1, +104,254,63,254,255,1,14,0,211,254,53,2,48,255,208,0,138,2,10,254,248,0,193,1,224,254,125,255,38,254,167,253, +232,0,42,2,104,2,129,0,109,252,142,255,160,255,7,253,40,3,162,2,39,254,42,0,0,0,44,0,210,0,253,254, +187,0,72,1,194,254,6,0,152,0,45,255,52,1,132,1,198,254,10,254,4,255,59,2,107,1,231,253,109,255,104,255, +115,255,52,1,147,0,155,255,84,0,17,1,147,254,91,0,135,2,35,253,159,253,24,4,128,0,251,248,223,254,137,5, +98,1,242,254,194,0,17,3,8,0,100,251,103,0,217,1,198,253,137,0,12,1,104,255,240,254,86,255,177,3,36,0, +67,252,249,1,169,2,88,0,52,0,95,253,208,252,206,0,255,2,28,1,207,253,60,255,245,1,21,0,106,254,143,255, +129,1,144,253,108,252,170,0,68,1,32,2,192,253,242,254,55,3,209,253,33,0,69,2,242,253,31,253,225,254,92,1, +248,1,250,1,198,1,147,0,83,0,187,0,89,253,152,254,100,1,195,253,99,0,100,1,154,254,231,254,4,0,201,2, +11,2,61,254,225,250,55,254,161,2,177,2,64,2,211,254,16,254,35,254,24,0,19,4,122,2,129,255,146,254,242,255, +99,0,236,255,231,254,163,255,186,1,101,254,234,253,213,0,234,255,133,0,96,1,71,255,185,254,207,254,218,255,67,255, +174,254,103,3,57,0,158,251,89,254,210,0,103,2,235,0,18,1,127,254,176,252,76,0,74,2,62,3,51,254,239,252, +212,0,91,1,45,1,205,0,153,0,79,255,185,1,41,0,106,253,28,1,143,0,75,0,151,0,69,0,24,255,228,251, +223,254,198,2,240,0,172,255,176,0,97,0,142,255,107,253,207,254,178,0,156,255,226,1,252,0,139,0,127,255,155,254, +67,1,105,254,161,0,161,1,203,254,83,0,42,254,62,1,110,3,10,255,79,255,134,255,213,0,81,1,80,254,145,0, +201,0,134,254,203,1,121,1,232,254,89,0,115,0,152,254,59,255,80,255,87,253,172,255,45,2,17,2,101,1,31,255, +159,254,87,0,254,255,56,254,24,0,178,0,100,0,116,0,46,255,132,2,32,0,2,254,232,2,69,0,189,254,88,0, +212,0,58,2,194,0,216,0,55,0,181,253,101,255,151,255,252,251,6,254,105,4,184,2,76,254,109,255,95,255,208,0, +154,2,250,254,28,254,111,0,79,255,52,255,198,2,239,254,39,253,54,5,187,1,246,251,80,255,202,0,153,1,81,0, +217,255,192,2,234,255,79,252,132,0,135,1,91,255,243,0,65,0,78,255,204,255,28,1,233,255,107,253,72,255,100,1, +223,1,66,255,201,255,68,0,42,254,115,1,27,0,136,254,60,2,219,0,100,254,21,1,188,0,75,254,67,2,128,2, +190,253,247,253,152,2,130,253,66,249,218,7,194,7,204,251,216,254,203,0,157,255,172,254,218,252,221,254,155,1,94,2, +26,0,203,253,36,1,159,255,53,251,199,0,223,2,135,0,255,255,77,255,5,255,97,255,19,1,113,255,219,0,199,255, +63,254,34,2,92,255,201,1,18,3,17,255,252,0,35,0,213,255,42,1,105,255,170,254,74,0,6,0,6,0,14,254, +171,255,204,6,70,255,222,250,203,1,10,2,58,254,204,251,89,0,101,2,69,0,123,254,24,255,237,1,124,255,125,255, +106,255,227,255,53,2,63,0,222,254,164,255,182,1,147,254,33,253,19,0,46,0,70,0,41,0,120,1,7,255,82,254, +224,1,186,0,64,255,231,253,50,0,111,2,11,255,46,254,120,1,115,2,186,254,9,255,18,1,139,255,112,255,152,255, +218,255,228,255,118,254,163,254,113,1,64,2,218,255,123,253,157,252,5,1,227,3,251,255,162,254,142,0,151,1,241,255, +149,255,54,0,80,252,77,254,14,3,175,0,132,255,161,1,190,1,112,254,254,255,176,1,212,252,38,254,57,0,22,255, +169,255,249,254,126,1,12,3,183,255,111,253,236,255,19,2,67,254,239,255,190,2,118,254,110,254,179,254,37,255,185,2, +133,1,16,0,244,255,27,255,21,0,168,0,18,0,133,255,152,253,29,0,19,4,128,254,250,253,254,0,92,255,0,2, +19,0,225,253,21,254,120,255,81,2,95,255,16,0,148,255,201,0,241,2,245,253,229,255,90,0,203,254,191,0,84,255, +140,255,197,1,150,0,85,255,242,0,12,254,34,254,67,0,39,255,221,0,165,255,165,255,5,0,228,0,128,1,67,255, +249,255,12,254,47,0,26,2,9,0,241,0,254,254,101,255,166,1,150,0,46,253,54,254,99,1,187,254,208,253,89,0, +231,0,88,254,169,0,48,1,36,254,235,0,102,255,255,0,83,3,142,254,123,255,47,0,118,254,231,255,39,1,129,1, +58,1,122,255,89,255,97,254,24,252,202,0,150,4,200,255,118,253,57,2,164,2,219,254,136,254,30,1,217,1,94,253, +221,255,166,1,156,253,58,255,195,255,150,2,168,0,119,253,220,0,16,255,48,0,115,255,189,255,203,1,159,251,157,254, +20,3,22,1,42,2,79,1,227,255,235,253,1,254,132,1,240,255,51,0,223,255,64,252,126,1,102,1,14,253,107,0, +151,255,194,255,114,1,3,255,43,0,116,1,57,0,39,1,110,0,226,254,220,0,113,0,127,255,36,0,194,0,248,255, +186,252,223,255,246,1,147,254,60,255,190,0,17,1,162,255,76,255,73,0,195,255,7,1,144,255,16,253,169,254,222,0, +51,4,255,2,127,255,235,255,210,252,15,255,88,1,2,254,143,2,171,255,1,253,216,2,21,0,132,254,208,255,199,0, +90,1,151,0,22,1,102,255,67,255,206,255,236,0,104,255,27,251,239,0,162,4,161,255,38,1,175,1,136,252,129,254, +255,1,142,0,154,255,13,255,169,255,79,1,156,0,134,254,152,0,46,1,248,254,77,2,196,0,60,252,167,253,45,0, +103,2,155,254,242,252,108,2,163,1,255,255,240,0,216,254,162,255,196,0,26,255,180,255,237,254,232,253,5,3,6,5, +55,254,241,251,113,255,56,1,141,0,218,253,207,0,234,1,213,253,248,0,246,2,30,255,74,253,143,0,80,2,77,254, +138,252,56,255,92,1,137,0,72,0,117,255,234,0,88,2,166,255,195,0,96,254,201,254,220,0,103,254,106,1,116,254, +124,255,71,1,245,252,10,3,59,2,67,255,42,2,207,255,161,253,214,253,204,1,77,1,94,252,109,0,186,4,127,254, +120,254,188,2,44,252,167,253,166,3,235,2,193,0,67,252,174,255,164,3,56,2,250,254,190,253,25,2,19,254,52,253, +58,2,174,0,193,255,214,254,172,0,49,1,45,0,82,1,228,255,78,0,179,0,13,0,215,253,33,255,215,0,53,253, +196,1,128,1,228,252,245,2,121,3,229,254,135,255,51,0,201,254,234,0,67,1,218,253,21,254,42,255,15,2,195,2, +137,0,163,0,102,255,128,254,185,255,48,0,228,253,32,255,189,0,96,255,122,1,123,254,156,254,221,3,38,0,218,254, +22,1,167,0,174,255,101,255,58,1,201,255,78,254,137,255,240,255,166,0,139,1,139,3,204,1,65,254,21,254,172,253, +154,0,252,0,125,253,153,0,171,2,128,254,243,254,225,2,164,254,105,252,45,1,189,2,82,1,9,254,93,255,123,1, +6,0,248,0,229,0,116,255,0,255,48,1,251,0,16,0,118,0,79,253,196,254,95,0,145,255,251,1,102,2,22,254, +27,251,209,254,25,1,98,0,216,255,206,0,154,1,87,0,31,1,88,0,70,255,176,253,235,255,134,3,43,255,50,255, +191,0,10,0,93,255,21,253,158,254,185,0,253,0,86,255,30,0,94,1,24,0,218,255,144,254,221,0,119,2,105,0, +20,255,10,254,208,0,214,1,162,254,155,254,72,0,125,255,196,255,145,1,28,0,224,254,46,1,146,0,40,254,132,0, +80,2,51,1,128,255,145,254,23,0,118,0,87,255,94,255,151,254,32,254,65,2,188,255,237,251,116,3,20,3,82,255, +126,1,99,0,70,255,173,254,57,254,184,255,218,1,105,0,218,0,71,1,186,254,218,0,5,0,171,254,191,254,59,255, +99,255,158,254,222,2,82,0,109,254,239,0,189,255,200,0,228,255,207,0,116,2,233,254,175,252,43,1,95,1,108,253, +42,1,211,0,56,255,174,255,63,0,112,0,235,250,85,254,147,4,26,1,21,254,104,2,66,3,56,253,154,254,65,0, +248,255,202,1,79,254,219,250,131,0,249,4,70,0,22,1,241,1,143,254,217,254,231,254,191,0,178,0,36,253,219,250, +235,253,120,1,205,0,150,1,60,2,93,3,75,1,216,254,60,1,115,1,160,255,79,254,26,255,129,255,172,0,159,0, +13,0,63,1,120,254,71,255,197,254,182,254,129,2,9,0,58,1,18,1,50,255,136,255,46,254,130,3,120,2,97,253, +239,255,75,255,1,255,151,0,41,0,245,254,159,254,57,1,248,0,246,255,105,0,115,254,217,255,22,2,61,0,205,254, +193,255,247,0,212,255,198,255,27,0,161,254,3,255,178,0,35,2,187,0,208,255,62,1,164,254,250,252,147,255,231,1, +153,2,144,0,96,254,254,254,43,0,24,0,246,254,116,255,202,3,167,2,214,253,178,254,82,254,212,255,110,1,34,255, +216,0,158,1,75,0,9,255,170,0,245,0,14,253,72,255,53,0,162,255,201,0,229,255,229,0,46,1,178,0,8,1, +159,0,138,253,163,254,211,254,83,252,50,2,117,2,248,0,166,255,221,253,235,2,230,1,46,255,50,254,89,1,217,249, +182,245,85,10,4,5,233,249,59,3,227,3,214,2,150,0,191,0,127,255,253,252,164,0,190,0,119,0,201,254,55,253, +224,255,152,1,219,1,253,0,235,253,88,254,29,255,183,254,110,3,106,0,50,255,133,1,48,254,204,1,177,255,201,252, +141,255,64,0,212,2,211,0,117,254,85,253,195,253,19,1,129,2,66,1,5,254,108,255,45,0,26,255,104,1,20,0, +77,253,25,0,64,1,148,254,148,0,222,0,52,255,227,0,189,255,54,255,245,0,53,255,19,253,53,255,236,0,126,255, +203,255,70,2,127,0,18,254,206,255,25,255,142,255,58,1,38,0,160,255,155,0,233,0,34,255,150,2,164,2,75,254, +191,255,61,255,184,255,95,255,12,254,194,0,34,1,17,0,184,254,192,254,165,0,15,1,246,254,76,255,68,2,59,1, +199,254,132,254,241,0,91,1,178,255,210,255,88,1,30,1,1,252,146,253,35,2,206,255,159,254,110,255,47,0,11,0, +211,0,110,0,138,255,173,1,204,0,96,1,43,1,189,253,43,0,15,1,105,254,32,254,72,255,62,0,216,255,64,1, +29,0,129,254,227,0,183,255,236,254,221,254,131,254,114,255,114,254,174,255,182,2,245,1,87,253,101,0,232,2,235,254, +24,1,102,253,83,254,223,4,92,0,201,255,87,0,27,255,18,255,253,254,124,0,116,255,10,255,132,0,39,2,127,1, +206,253,219,251,133,1,19,2,174,252,205,2,157,3,123,255,167,253,146,251,220,0,160,254,127,253,89,2,184,254,133,255, +117,2,224,255,173,0,64,1,143,255,116,0,3,0,90,0,141,255,216,255,199,2,219,253,58,254,68,3,114,1,15,255, +91,254,188,254,42,254,30,1,88,1,16,254,33,0,1,1,104,0,240,255,78,255,224,254,23,0,59,0,197,254,204,0, +80,0,35,254,127,254,166,255,133,255,166,0,51,2,34,1,132,0,255,254,139,1,29,0,23,254,132,2,163,253,188,255, +112,4,92,255,174,254,123,253,252,255,49,3,227,0,20,255,22,254,247,255,25,255,171,254,238,1,130,255,64,253,127,0, +42,2,43,0,163,252,156,254,111,3,200,254,186,252,1,3,113,3,12,1,187,255,18,0,30,2,145,255,4,254,234,254, +6,254,124,0,64,1,242,254,90,0,169,1,10,0,120,254,0,0,252,255,235,255,185,1,197,253,158,253,255,1,29,2, +76,1,2,255,242,255,134,0,221,253,95,0,40,1,16,255,173,255,255,0,19,0,76,253,50,0,43,3,170,255,152,253, +108,255,3,2,122,1,135,255,50,255,90,0,68,0,121,254,211,0,250,0,80,254,184,255,192,0,5,1,178,0,8,0, +73,0,13,255,33,253,92,255,163,1,183,255,176,255,14,255,71,255,123,1,215,0,125,255,98,254,20,0,253,0,4,0, +24,255,226,0,83,3,242,253,132,254,20,3,204,0,136,255,211,254,80,255,167,255,198,0,96,2,108,0,0,254,232,252, +38,0,156,2,32,2,177,0,86,253,35,1,195,4,78,254,217,251,9,254,235,253,180,255,60,1,70,0,219,255,130,1, +114,0,90,255,193,0,84,254,181,254,131,255,121,1,100,3,163,250,94,250,187,3,128,5,202,0,36,255,150,1,22,255, +222,254,84,1,222,0,179,254,156,254,99,1,26,255,250,254,22,1,225,255,229,255,216,0,23,0,50,255,59,255,141,253, +44,2,49,2,234,252,169,2,146,1,212,253,92,1,135,0,13,254,215,255,168,1,9,253,238,253,132,3,164,1,102,0, +224,0,81,255,108,0,210,0,229,254,130,0,194,255,140,255,238,0,62,255,235,1,73,254,189,251,133,3,239,0,188,252, +237,255,182,1,234,0,109,251,249,251,197,3,159,3,8,0,75,255,182,0,92,1,242,255,108,1,50,254,91,252,117,1, +232,0,182,0,105,2,159,0,209,253,193,253,197,0,98,255,153,253,221,1,20,2,233,254,119,3,171,1,121,251,148,255, +105,255,240,253,177,1,37,4,161,3,176,254,45,253,12,0,166,1,93,1,3,0,143,254,37,0,116,1,63,255,6,0, +109,255,219,254,210,0,214,1,13,2,15,255,171,255,228,255,164,253,104,255,236,255,239,254,140,0,179,3,242,0,151,254, +112,1,95,0,132,254,17,255,217,254,90,255,64,2,183,0,215,254,248,255,187,254,144,0,197,0,58,255,143,254,52,255, +144,1,137,255,113,0,67,0,217,255,103,2,186,255,41,0,12,1,89,255,103,255,136,255,28,255,57,255,144,0,40,0, +196,0,157,254,153,254,146,3,74,0,121,254,226,0,42,0,108,255,239,254,5,0,98,0,38,0,57,255,249,254,12,3, +65,2,55,253,38,255,126,0,56,253,37,255,26,1,72,0,222,0,179,255,23,0,244,255,206,253,26,255,195,0,10,2, +152,1,230,255,198,255,109,255,117,0,30,0,244,254,162,254,204,253,136,0,16,2,181,0,203,255,52,255,102,0,132,0, +185,253,78,253,232,1,164,0,113,255,74,2,86,254,139,255,34,0,2,255,220,1,121,255,201,0,74,254,241,254,5,4, +80,254,85,0,249,1,82,254,175,0,1,1,239,253,202,252,128,0,93,0,245,0,71,2,172,252,84,253,164,0,97,255, +4,0,172,3,177,2,230,253,195,254,30,1,64,0,236,253,163,255,1,1,82,0,72,2,91,255,35,255,121,0,239,254, +75,1,1,0,115,255,85,255,27,254,40,0,140,255,184,255,246,254,250,254,161,2,87,2,97,0,237,255,58,254,227,251, +203,0,14,3,60,255,156,1,57,0,240,254,11,1,207,255,154,255,81,255,212,1,222,0,27,255,208,1,212,0,40,0, +145,254,99,254,229,255,212,255,72,0,167,254,100,255,21,2,43,2,90,253,177,252,13,2,93,1,188,255,65,255,170,0, +153,255,103,253,236,1,220,1,179,0,169,0,89,0,171,0,168,254,51,0,73,0,236,0,30,1,11,255,136,0,96,253, +88,253,17,2,115,0,98,255,45,2,2,2,164,254,111,255,28,1,206,0,220,0,252,254,47,0,53,0,111,253,11,2, +231,1,152,253,109,0,194,254,117,254,127,2,126,0,154,254,142,255,113,2,79,2,131,254,63,254,174,255,108,0,102,255, +57,0,9,2,153,0,214,255,255,252,120,252,229,1,77,1,243,255,179,0,117,251,122,253,205,5,125,3,179,254,216,0, +247,1,2,1,84,0,30,253,222,255,35,3,128,254,26,254,34,254,134,254,245,1,49,0,38,0,69,2,112,0,170,255, +10,1,155,255,219,254,205,0,67,0,57,255,76,255,219,253,65,254,89,4,114,5,223,255,38,254,157,255,208,2,220,255, +166,251,91,0,88,2,180,255,253,254,193,255,61,255,144,0,142,1,162,254,72,254,82,254,53,0,10,3,247,0,250,254, +10,0,38,0,111,254,215,0,90,0,124,253,22,0,241,0,15,2,238,1,229,255,109,0,154,255,149,255,109,0,107,0, +12,255,214,253,202,254,183,254,93,0,79,1,134,255,20,1,94,1,19,255,32,255,155,255,255,254,197,255,120,1,3,0, +202,255,88,0,141,254,187,255,31,0,234,255,105,1,200,255,242,252,179,255,179,1,26,253,178,255,107,1,82,255,228,1, +47,255,69,1,128,2,67,254,41,0,67,255,120,255,201,0,0,0,191,255,60,255,155,255,104,253,229,254,125,3,42,2, +224,252,48,253,100,3,72,3,154,255,103,255,35,1,90,0,153,253,17,254,41,255,22,0,70,0,253,254,205,255,163,0, +84,254,67,255,239,1,125,254,242,255,193,3,195,254,19,254,236,0,198,254,248,253,182,255,15,3,165,2,61,254,149,255, +96,255,121,252,116,1,136,5,200,0,141,253,110,255,198,255,101,1,54,1,216,254,9,0,239,255,197,255,101,254,24,0, +141,2,156,253,76,255,238,3,207,255,101,250,207,253,91,2,139,0,255,1,101,1,5,255,11,0,120,1,105,0,98,253, +104,1,249,1,91,255,118,0,189,254,44,255,76,255,90,0,51,1,77,255,140,255,46,254,103,255,241,0,166,255,71,0, +32,1,104,2,120,0,255,253,55,0,136,1,190,0,59,255,194,253,247,253,192,255,87,0,145,255,179,0,86,0,54,0, +68,1,15,0,35,0,216,254,216,255,114,1,19,254,158,255,13,2,149,1,149,0,30,255,148,255,173,255,170,255,61,255, +140,255,18,255,93,255,142,1,63,0,15,255,179,255,200,0,214,253,182,254,52,4,132,0,136,255,2,1,42,0,242,0, +94,255,24,0,103,0,122,255,105,255,93,255,161,0,123,0,202,254,104,254,136,0,169,0,197,1,239,2,174,254,79,252, +114,254,238,1,229,1,45,1,121,0,177,253,36,0,153,255,124,252,12,1,56,3,83,0,169,254,151,255,110,0,222,253, +211,253,210,255,20,0,66,2,88,2,202,0,95,0,214,254,141,255,44,0,59,254,139,255,104,1,41,254,218,253,210,255, +27,255,181,1,192,2,250,0,138,0,13,1,197,1,253,0,166,255,18,254,16,1,18,1,116,253,101,255,169,253,235,254, +243,1,192,254,1,0,62,1,9,0,170,255,10,255,9,0,157,0,115,255,137,253,177,254,178,2,237,2,245,1,182,0, +221,253,198,254,167,255,15,1,34,2,90,254,76,254,50,0,170,0,8,255,183,253,36,0,152,255,3,1,87,2,220,255, +75,0,221,255,244,253,234,254,44,1,229,0,37,0,29,255,218,255,117,1,167,254,203,254,227,255,137,0,131,2,42,0, +178,254,80,0,212,0,138,0,144,0,95,254,88,254,65,1,234,1,146,1,75,254,244,255,247,1,27,254,248,255,16,0, +149,254,242,0,100,0,0,0,137,0,228,254,125,255,138,0,176,253,130,255,204,1,215,254,223,255,196,0,144,255,168,0, +213,255,104,254,54,255,89,0,197,1,54,1,246,255,202,255,199,255,56,1,121,0,197,0,182,1,57,255,62,255,224,255, +17,254,213,253,234,1,211,2,45,0,146,255,154,255,70,0,78,254,242,255,28,1,222,254,161,1,227,255,193,254,159,2, +186,1,157,253,232,255,102,3,180,254,71,254,172,255,132,255,56,0,183,255,18,1,85,254,219,255,204,2,124,254,210,254, +65,1,79,1,159,255,159,254,97,255,171,0,74,3,65,0,141,253,3,0,3,254,2,254,0,2,177,2,53,1,55,255, +101,0,244,255,18,255,243,0,40,254,86,255,26,3,163,255,242,252,35,255,30,1,98,0,66,255,2,255,231,0,17,1, +154,255,32,1,50,1,13,0,88,0,104,0,83,255,10,255,122,0,81,2,135,0,100,254,171,1,174,0,245,254,249,255, +202,254,106,255,16,255,112,0,17,1,68,255,22,0,13,0,106,0,23,255,138,254,105,1,154,0,85,255,38,1,62,0, +106,255,49,2,150,0,226,253,107,255,110,0,177,0,35,255,77,253,11,1,200,2,203,253,166,254,37,2,211,0,137,0, +219,0,12,0,118,254,206,254,1,0,0,0,159,255,186,254,78,0,133,1,40,0,18,254,209,255,55,3,160,0,11,254, +60,253,165,255,139,2,229,255,212,0,28,1,154,254,149,0,165,1,152,0,32,0,192,0,127,0,164,255,252,255,65,0, +151,255,40,254,1,0,51,0,86,255,217,0,104,254,83,255,168,0,33,255,189,255,44,0,70,1,133,254,174,255,226,1, +111,254,52,0,24,1,210,0,213,255,168,255,39,1,94,253,228,254,70,1,241,255,77,0,192,255,9,1,45,1,206,0, +173,0,254,254,214,254,0,0,202,1,132,0,182,252,231,253,22,2,253,253,87,252,132,2,0,1,222,0,96,1,224,255, +83,0,236,251,155,255,162,2,19,0,14,3,168,2,92,0,67,254,204,253,210,253,211,1,19,3,201,253,52,2,209,0, +6,255,102,1,136,254,24,1,37,255,90,255,54,1,168,0,238,0,144,253,53,1,152,255,202,252,44,2,159,1,214,255, +67,0,1,0,129,255,208,0,114,255,41,254,126,0,127,0,176,0,143,255,118,255,31,1,84,0,148,255,250,254,149,0, +202,1,69,254,202,254,104,2,181,255,217,254,36,0,243,254,248,254,182,255,104,0,175,255,22,1,19,1,97,255,192,0, +20,1,202,0,136,255,227,255,205,255,229,255,4,2,199,0,56,255,251,253,81,0,40,2,34,255,172,254,41,255,41,254, +223,254,196,2,133,2,164,254,65,255,98,1,214,0,101,0,211,0,241,254,101,255,242,1,65,1,219,254,103,255,152,0, +252,254,201,0,180,1,243,0,164,0,192,253,96,254,36,1,72,2,143,0,181,254,0,255,90,255,199,0,156,0,123,255, +66,255,28,0,125,0,71,1,222,1,185,254,8,255,100,255,222,255,96,3,128,255,12,253,253,255,71,2,33,3,251,255, +49,255,72,255,135,0,207,2,17,255,102,254,6,1,246,255,62,255,157,1,45,1,122,254,172,255,204,254,179,254,30,0, +128,255,97,255,204,255,248,0,145,255,39,2,135,2,200,254,121,0,59,255,45,255,43,255,108,0,171,2,29,255,163,0, +92,0,35,254,34,1,18,0,48,252,203,253,196,1,59,1,110,255,80,254,251,0,198,1,152,254,94,0,106,255,114,255, +10,3,71,0,33,254,135,255,41,255,124,255,166,1,97,0,188,253,83,0,1,3,122,0,56,255,130,0,249,255,88,254, +234,253,30,1,204,2,57,1,233,255,184,253,222,254,213,255,103,254,187,255,5,0,105,255,232,254,242,0,234,0,98,254, +244,3,90,1,10,253,3,1,220,251,96,254,222,3,138,255,52,1,130,2,209,255,137,253,136,252,150,255,130,2,246,0, +156,255,222,254,170,253,50,0,116,0,12,0,133,1,31,0,231,254,149,255,2,1,174,0,109,254,8,254,173,0,57,0, +231,0,77,2,223,254,106,254,73,253,2,255,15,1,156,0,16,3,62,255,71,254,114,1,118,255,188,253,181,0,98,1, +76,255,103,0,59,254,194,255,103,1,2,255,1,0,61,1,191,0,77,253,188,255,23,1,171,255,36,1,43,255,97,254, +44,254,27,1,192,1,19,0,87,1,160,255,26,255,128,255,171,0,29,0,158,254,111,255,244,0,203,1,255,254,160,253, +218,254,253,1,2,2,122,254,0,0,3,1,206,254,96,0,90,1,203,254,244,254,98,254,19,255,19,1,85,1,27,0, +78,254,168,1,243,0,155,255,181,0,164,0,186,255,149,254,247,2,80,255,171,253,129,255,2,254,116,2,236,255,44,0, +193,1,74,255,30,1,230,254,1,254,14,0,83,255,227,255,25,1,133,255,121,0,78,251,249,252,25,10,149,1,87,250, +155,0,92,2,234,254,47,250,166,0,67,5,169,1,195,253,226,252,201,255,101,0,97,255,41,0,117,0,202,252,36,0, +199,2,187,254,157,255,139,255,28,0,137,0,9,255,158,254,120,0,175,2,206,254,154,253,184,0,143,1,214,0,116,254, +44,254,138,2,58,3,218,255,181,255,41,255,236,255,136,0,19,254,38,0,121,1,88,254,107,254,22,0,233,0,172,254, +104,253,247,3,130,2,102,254,230,1,154,254,54,254,1,3,42,0,119,253,119,0,80,255,118,254,75,1,216,255,28,0, +140,254,50,254,181,0,184,0,189,1,79,255,65,255,104,0,184,0,173,0,11,0,170,0,80,253,44,254,56,2,38,2, +215,254,157,0,26,0,148,252,97,1,189,253,231,255,113,1,21,253,157,4,19,0,75,255,224,1,152,253,50,1,3,255, +98,255,53,3,183,255,65,254,51,1,166,255,249,254,134,2,224,254,203,253,84,2,102,2,1,253,27,253,147,1,84,255, +35,1,80,2,118,0,253,0,40,255,14,254,114,255,89,2,23,255,77,253,185,255,63,255,240,1,26,2,160,255,29,254, +109,255,241,0,121,255,2,1,90,0,173,254,96,255,145,0,190,0,245,255,5,0,217,0,49,2,127,253,43,254,13,3, +173,255,7,254,225,253,219,0,26,1,247,252,233,255,220,1,225,254,174,254,232,1,34,1,231,0,17,1,5,255,68,0, +52,0,75,0,67,0,95,0,141,255,138,255,110,1,95,255,181,0,18,255,66,254,112,255,131,252,218,2,115,2,47,254, +205,2,92,255,234,255,39,4,140,252,127,252,26,3,10,2,74,0,175,254,205,255,85,0,52,253,119,254,16,2,75,2, +104,255,87,254,117,0,85,0,196,252,104,3,5,3,255,247,244,1,64,3,173,252,53,2,39,0,179,0,8,255,10,253, +172,2,193,1,55,255,10,1,39,1,69,255,48,1,81,0,191,253,16,0,60,1,25,0,162,255,52,255,22,0,53,2, +13,0,104,255,200,0,12,0,238,253,111,254,48,2,20,0,113,0,218,255,102,255,191,2,68,254,188,254,179,0,76,0, +82,3,103,0,134,253,24,1,119,254,130,253,40,4,50,255,226,254,244,0,216,253,35,1,238,252,152,0,75,5,53,254, +89,255,6,1,139,255,19,1,61,2,65,0,181,253,58,255,126,2,18,255,220,252,183,254,211,254,168,2,50,1,41,255, +39,0,147,253,162,252,220,255,194,4,62,2,194,255,9,0,109,255,176,254,188,255,89,1,198,254,58,0,109,255,11,0, +182,255,104,253,72,0,132,254,56,3,192,2,7,255,245,1,251,254,240,254,199,255,237,255,63,255,98,0,14,1,47,255, +58,255,206,253,26,1,211,2,179,255,244,251,101,255,36,4,48,255,253,253,207,254,247,255,143,0,237,0,140,1,177,255, +237,0,46,0,145,254,193,254,51,0,17,0,129,255,120,255,219,255,180,1,202,254,247,254,245,255,130,1,231,0,98,253, +139,1,137,1,233,255,212,253,218,255,184,2,70,253,98,255,244,1,36,1,231,254,218,254,185,1,164,0,249,0,33,254, +26,253,101,255,214,255,227,255,213,254,253,0,170,2,88,0,192,255,57,1,28,255,82,254,173,254,51,255,61,2,170,0, +140,255,14,1,138,0,218,253,26,255,169,2,85,0,187,254,12,1,16,3,176,255,204,255,106,254,111,249,13,2,99,4, +12,0,221,0,252,255,190,254,249,253,17,2,253,255,160,254,117,2,62,255,33,0,105,0,240,255,136,0,19,254,238,255, +172,255,48,0,249,1,191,255,250,0,213,255,53,253,92,1,39,1,62,255,254,2,165,255,168,252,248,0,68,2,28,1, +109,254,83,254,177,255,80,0,194,0,94,255,41,0,160,254,92,253,180,254,251,0,185,2,106,0,15,1,135,252,52,251, +251,1,10,255,142,1,196,5,130,0,80,1,180,2,30,0,108,0,151,253,139,252,75,1,146,0,39,0,243,0,150,255, +192,254,232,253,8,2,191,2,12,255,37,254,47,255,72,1,16,1,179,0,251,254,165,255,216,1,235,255,71,0,220,0, +131,0,15,0,67,0,221,0,134,254,158,253,90,255,98,2,233,0,49,255,175,0,244,253,186,0,191,2,4,0,170,255, +64,254,73,1,63,255,247,252,184,255,224,255,161,4,164,2,33,254,7,255,164,255,98,0,109,0,130,1,77,254,57,254, +83,2,117,3,199,0,169,254,63,0,153,253,89,0,219,0,26,254,211,0,201,0,107,2,83,255,55,253,147,0,85,1, +25,255,210,255,107,3,205,255,136,254,109,254,93,255,239,254,225,254,178,4,34,1,130,255,234,254,150,254,111,2,134,1, +139,255,60,254,147,2,3,1,219,253,181,0,232,0,1,255,74,254,236,1,95,254,77,255,202,2,101,254,248,0,236,0, +195,252,168,254,93,1,60,255,219,255,38,255,239,255,238,4,24,255,228,254,158,0,87,253,211,0,223,1,237,254,107,254, +162,2,7,2,99,255,83,0,164,0,116,255,21,253,108,255,41,1,246,0,106,0,44,0,249,255,150,254,142,255,178,252, +10,253,152,3,238,2,50,254,45,0,121,2,82,0,60,0,169,254,221,253,32,1,93,2,62,254,198,252,211,1,184,2, +67,255,133,255,115,1,23,254,108,255,23,1,96,254,16,0,5,254,236,255,234,0,115,254,6,0,236,255,122,1,15,255, +119,255,153,0,140,255,0,1,30,254,0,0,32,1,5,2,11,3,59,253,223,253,228,255,91,254,105,1,152,2,116,254, +209,255,245,0,240,253,162,255,108,0,126,0,54,0,84,253,186,253,64,1,208,1,107,0,1,0,8,255,238,1,246,1, +50,254,76,255,192,255,69,0,213,254,19,254,235,0,225,255,165,1,1,1,84,253,153,1,179,1,90,255,221,0,252,0, +235,255,110,253,242,0,4,2,66,253,241,255,86,0,141,254,39,255,97,253,223,255,24,3,140,0,99,255,198,0,141,255, +42,254,125,255,112,2,208,0,237,253,144,1,92,1,112,254,155,255,148,255,112,255,120,255,126,253,21,254,70,3,174,1, +190,253,31,1,44,255,30,253,65,1,233,255,18,254,182,0,142,255,99,255,130,2,242,0,42,0,107,254,208,254,10,2, +57,255,141,0,41,0,255,254,142,0,80,0,91,2,55,253,20,254,48,2,240,254,52,255,50,255,70,2,227,0,238,253, +168,255,115,255,182,255,152,253,181,0,53,3,111,255,187,254,18,255,110,255,167,255,75,255,95,0,18,1,11,255,182,0, +1,0,185,255,98,3,5,0,86,255,58,254,180,254,251,1,222,255,125,255,220,254,156,255,198,0,162,1,11,0,8,255, +222,0,73,255,158,255,214,255,238,255,120,253,127,255,108,2,4,0,90,2,120,253,134,253,139,1,251,255,18,2,244,255, +43,255,135,0,40,0,125,254,49,255,221,1,194,0,251,254,180,255,197,255,173,252,133,0,234,255,201,254,242,2,228,253, +157,255,182,0,182,253,175,0,210,255,238,254,192,255,163,255,85,2,20,2,17,254,132,0,87,255,177,255,232,1,16,254, +15,1,92,255,6,254,32,1,226,1,178,1,234,254,131,1,29,1,62,0,57,255,135,253,198,0,255,255,26,0,254,0, +81,0,109,0,230,255,216,254,169,1,213,0,131,252,252,1,65,2,191,254,88,255,57,255,103,0,14,255,28,255,248,0, +176,255,231,254,1,1,35,1,124,1,155,255,159,252,215,254,42,0,196,0,49,253,151,254,77,3,68,1,84,0,113,254, +50,255,144,0,211,0,116,255,123,255,140,0,224,254,192,0,140,254,194,254,143,254,75,0,89,4,93,253,49,254,237,1, +237,0,152,0,255,255,94,254,61,254,70,1,111,255,150,254,119,254,190,0,30,1,194,255,234,255,64,253,232,1,215,1, +3,0,245,254,185,252,199,0,1,1,50,1,150,0,95,255,147,255,199,1,190,254,88,253,144,2,148,254,157,0,28,252, +131,250,62,3,152,254,7,5,160,7,29,254,99,253,0,0,88,254,136,253,5,2,243,254,203,0,47,3,218,254,139,0, +146,254,206,254,117,1,229,0,81,1,45,254,128,253,251,0,209,0,245,255,250,253,182,254,18,4,104,1,208,254,97,1, +17,255,81,253,136,0,62,0,198,253,138,255,253,254,165,0,161,3,73,0,114,254,243,255,108,254,126,253,122,2,28,0, +156,253,221,0,126,0,246,3,142,1,3,253,238,255,253,0,78,1,43,0,148,252,254,252,148,1,100,0,85,254,74,0, +102,1,51,2,10,1,91,254,210,251,227,255,233,3,56,1,179,0,193,0,77,255,171,254,114,255,93,253,111,255,212,3, +183,253,100,253,37,1,149,255,164,2,163,0,241,252,143,2,235,1,235,255,225,2,227,253,227,252,31,1,23,1,229,1, +183,0,254,254,2,255,217,253,163,252,131,0,93,5,128,2,141,254,83,254,147,254,196,254,31,1,180,1,107,0,241,0, +53,254,135,253,159,0,228,0,172,255,177,0,183,1,210,254,9,255,243,255,118,0,146,1,123,254,32,0,90,2,118,0, +96,254,221,252,221,254,13,2,191,3,153,254,150,253,44,0,104,252,79,0,182,1,221,254,94,1,205,255,166,253,130,253, +119,254,85,255,206,1,59,3,187,255,152,0,63,1,229,255,128,255,201,253,148,1,135,3,69,252,97,250,17,2,137,3, +242,255,82,1,219,255,28,255,72,1,42,255,41,255,208,254,1,255,28,0,6,252,117,254,111,4,51,3,234,254,220,253, +254,0,179,0,43,255,83,0,120,254,207,253,17,3,179,1,96,253,109,0,84,0,13,0,171,0,200,255,90,0,43,255, +31,255,101,254,182,255,227,255,243,253,90,1,41,0,126,253,251,254,68,1,79,1,122,253,64,254,59,255,113,254,19,1, +242,2,192,3,81,1,31,254,85,254,247,254,131,255,201,255,157,0,126,254,41,254,171,0,160,254,47,0,227,0,163,0, +15,3,192,0,170,253,32,254,179,1,148,254,173,254,104,2,24,255,103,1,159,0,158,254,80,0,15,0,26,0,63,0, +22,0,87,253,61,0,24,0,239,254,43,2,117,0,28,0,227,254,73,0,246,255,166,253,196,254,156,0,24,1,29,253, +245,255,255,255,75,254,199,254,175,254,190,2,120,0,233,1,163,1,64,255,65,0,55,254,173,0,188,255,184,255,166,0, +41,255,144,0,253,0,38,0,105,254,128,255,64,0,44,255,199,253,13,0,202,3,125,2,187,255,98,254,0,1,125,255, +138,253,98,1,65,2,227,252,12,252,148,2,184,0,25,0,181,2,126,1,65,0,184,254,54,0,225,255,166,0,106,255, +225,255,75,2,48,254,17,0,170,0,76,255,155,0,216,255,147,0,170,254,194,253,228,0,133,1,74,0,65,0,213,255, +220,254,130,252,247,253,9,4,109,5,53,1,55,251,164,253,80,3,83,1,154,252,20,255,225,4,57,0,223,254,234,1, +201,255,143,0,243,2,159,255,145,252,168,1,150,255,162,253,247,0,140,254,141,255,11,1,246,2,59,1,70,253,95,254, +42,254,26,255,235,255,145,2,39,1,50,254,228,2,94,0,228,253,95,255,119,255,138,4,179,0,120,253,226,0,254,251, +93,0,239,4,251,0,223,1,124,254,227,253,190,255,80,255,121,2,250,0,81,253,62,255,200,0,23,255,190,255,13,0, +137,255,141,255,223,0,91,2,26,255,221,255,29,2,215,255,230,255,63,255,234,251,67,0,230,3,192,253,159,253,200,255, +33,1,211,0,51,254,24,2,128,2,17,255,211,251,142,254,234,0,86,1,28,6,121,252,66,251,224,3,95,255,42,1, +217,1,115,253,226,254,234,1,41,3,11,255,158,253,109,1,164,1,232,255,154,254,129,254,231,255,63,1,17,0,89,253, +109,255,112,0,204,254,124,254,123,0,94,1,103,255,166,1,186,253,14,253,155,1,40,1,35,2,233,252,22,1,152,3, +214,254,218,1,6,253,254,254,110,1,87,253,163,255,0,0,166,0,13,1,7,255,211,254,52,0,46,254,92,254,62,0, +205,255,119,255,57,254,9,0,219,254,231,253,51,1,8,4,178,1,216,253,43,0,167,255,80,0,0,1,158,0,25,0, +129,0,191,1,106,253,83,1,84,1,176,254,133,255,18,252,29,1,187,3,186,255,207,252,134,0,232,0,78,254,197,0, +69,253,254,253,33,0,95,1,70,254,126,252,51,4,217,2,120,255,244,254,138,0,39,254,67,255,196,3,67,253,71,0, +23,3,28,255,232,253,105,254,146,0,130,0,65,0,32,255,190,1,11,255,242,252,7,255,187,255,73,3,224,255,79,1, +65,0,149,253,225,1,99,1,141,0,26,252,202,255,188,0,45,252,101,2,139,1,226,252,149,253,166,5,242,5,100,253, +19,255,240,254,6,0,87,1,227,253,110,0,199,255,138,253,103,255,2,1,150,2,196,253,94,252,137,1,247,255,223,255, +190,255,206,254,171,0,126,0,27,1,233,255,5,1,110,0,13,254,98,0,31,255,163,0,19,2,53,252,189,250,252,1, +246,4,61,0,84,254,26,0,25,2,127,254,76,255,238,2,187,254,234,254,4,255,37,254,162,253,98,254,201,3,209,3, +18,1,161,254,106,0,248,0,110,254,201,255,41,255,52,255,253,253,236,255,182,2,15,0,223,0,41,255,137,253,246,1, +169,3,159,254,213,252,143,254,206,254,248,0,218,255,147,0,42,1,134,0,120,0,21,254,172,0,155,254,117,254,41,2, +160,0,112,0,19,254,197,0,204,2,3,255,210,255,130,1,58,0,35,253,19,255,163,0,10,1,207,2,218,253,102,254, +200,2,249,254,192,255,196,2,205,253,133,252,183,0,189,254,167,251,251,255,241,2,37,1,210,1,210,2,189,254,90,252, +111,0,94,1,134,255,70,254,28,2,135,4,46,254,233,255,103,252,203,251,196,6,190,2,222,254,255,253,160,0,242,1, +94,252,16,1,11,0,84,254,204,1,27,255,226,252,98,255,140,3,74,0,41,253,132,255,96,3,174,2,129,254,176,255, +71,255,141,253,76,0,28,1,117,254,255,0,124,1,27,1,179,0,156,251,97,2,32,1,132,250,194,255,12,1,49,6, +144,1,183,248,61,0,139,3,123,0,131,254,139,254,1,0,183,254,56,254,61,255,254,254,126,1,102,3,160,0,105,0, +37,255,113,253,9,2,184,2,139,255,76,255,147,254,41,1,86,2,102,254,28,254,114,0,245,0,202,253,192,254,30,2, +63,2,49,1,230,253,48,1,244,0,11,253,238,255,104,254,8,0,129,3,183,255,117,253,16,0,175,255,156,252,104,2, +11,4,3,253,191,255,119,0,128,253,206,1,170,0,12,0,190,255,109,254,166,4,187,1,79,253,0,0,193,255,236,0, +38,1,132,252,218,254,89,3,110,253,198,255,234,1,215,254,214,0,138,254,212,255,161,254,63,2,7,6,235,254,253,251, +77,250,200,1,84,4,221,255,54,1,124,255,47,0,2,0,0,255,198,253,131,255,68,3,26,2,201,1,70,0,19,253, +76,255,70,2,197,253,74,254,207,255,252,0,165,0,53,251,145,1,226,0,37,0,10,2,38,254,37,1,152,254,137,3, +161,0,192,248,70,1,21,255,43,0,232,5,218,254,141,253,153,3,65,1,82,253,248,253,229,2,151,3,166,250,66,253, +87,0,56,0,194,3,87,254,67,252,20,0,50,0,85,253,131,1,213,4,219,255,167,254,214,2,228,4,0,255,227,253, +71,254,184,253,25,1,242,1,4,0,36,252,39,255,183,0,206,1,213,255,184,253,246,3,16,255,39,1,225,1,174,252, +145,1,137,254,106,255,142,1,14,255,170,254,218,253,165,254,108,1,4,4,172,255,216,254,138,1,161,2,71,0,54,251, +182,0,211,3,186,255,122,254,79,255,198,0,210,254,65,252,50,255,199,1,205,255,252,254,5,255,246,2,115,2,222,252, +105,0,112,1,42,1,230,0,141,252,109,254,236,0,55,2,173,1,166,255,73,2,194,254,225,249,2,0,43,2,254,255, +47,2,227,1,75,254,17,251,238,254,25,0,167,252,130,5,27,7,188,254,56,0,236,254,198,253,39,1,212,253,111,254, +223,0,161,254,116,255,105,0,86,1,165,255,210,253,180,255,181,0,116,1,150,0,119,2,229,255,200,252,173,1,44,0, +19,1,134,255,109,251,171,1,120,2,89,1,156,252,19,250,6,4,183,3,2,0,200,2,86,2,165,255,187,252,103,1, +223,3,243,251,107,253,112,1,186,255,228,0,206,254,126,0,217,1,29,253,92,253,10,255,5,2,212,2,75,2,216,0, +190,253,75,254,162,254,143,1,66,253,125,252,165,4,97,2,57,2,44,255,201,253,171,1,184,253,238,254,150,1,38,2, +123,255,156,253,230,1,242,0,15,254,141,254,33,1,1,0,82,0,151,2,230,255,149,0,54,0,208,255,109,1,199,1, +124,1,10,251,21,251,228,2,163,1,175,253,63,0,115,2,95,255,141,252,170,255,206,2,96,0,114,255,198,254,70,253, +119,1,152,1,9,255,141,0,107,252,182,253,21,3,252,255,160,1,223,0,95,254,115,3,133,2,172,253,99,252,245,255, +158,3,109,2,254,0,86,4,189,1,8,249,66,254,249,254,53,254,217,3,66,252,169,254,52,3,161,255,71,0,34,255, +102,3,163,2,111,253,239,253,95,1,217,2,113,254,170,254,219,254,120,1,147,2,152,252,170,252,66,251,173,254,174,5, +185,3,107,0,81,255,230,0,77,254,61,252,38,1,117,3,237,255,48,254,227,1,131,1,158,255,177,255,207,0,118,1, +123,253,247,255,85,1,173,253,95,1,169,0,37,254,53,1,119,255,0,254,205,0,200,255,173,255,150,3,220,0,173,253, +243,1,107,1,98,254,99,255,115,255,115,0,73,0,142,254,243,254,181,0,52,2,145,0,210,254,161,254,78,0,200,1, +151,0,255,0,155,1,197,255,58,253,235,254,170,0,131,254,139,254,158,0,212,1,222,255,142,255,16,0,77,1,1,2, +141,253,28,0,83,1,241,254,90,0,130,0,89,1,69,253,80,255,205,3,150,254,13,254,32,1,181,3,182,1,153,252, +69,253,249,0,166,2,20,1,207,253,175,250,149,254,4,3,44,2,206,1,178,255,68,0,93,0,248,253,158,255,48,0, +102,0,115,254,220,251,248,2,118,5,131,251,234,249,16,1,161,3,118,4,121,0,214,253,22,4,145,0,141,253,43,3, +48,1,204,255,204,253,130,253,74,0,185,254,111,0,189,0,51,0,188,255,24,255,35,0,177,255,35,0,0,254,25,255, +252,0,17,0,45,1,202,1,178,2,74,255,134,253,117,254,163,0,144,1,72,252,103,255,238,1,19,1,118,1,30,253, +224,255,49,1,123,255,169,0,237,253,239,0,163,3,181,254,76,253,144,0,116,1,137,253,132,255,245,1,158,251,65,252, +239,2,236,4,213,0,205,253,187,2,43,2,197,251,225,252,108,255,9,253,246,255,134,3,101,1,108,1,18,255,113,0, +211,1,42,254,250,2,62,3,216,251,61,252,89,2,112,2,176,254,210,255,81,1,124,255,229,250,53,253,173,2,75,1, +59,0,158,255,106,255,210,254,123,0,195,1,199,253,202,0,141,2,143,254,199,255,66,0,173,255,100,252,27,252,125,5, +11,3,216,252,164,2,105,2,254,252,71,254,96,1,65,254,169,255,185,3,134,254,233,254,14,2,241,255,40,254,208,0, +129,3,56,254,20,0,35,2,213,251,243,253,52,1,239,255,26,0,208,1,247,1,105,253,38,252,222,0,107,1,216,254, +188,254,174,0,214,1,82,255,65,255,187,0,116,0,233,255,117,254,142,255,118,1,37,2,92,1,83,0,35,254,167,252, +53,1,145,2,151,254,52,254,215,1,23,255,188,251,135,1,96,2,89,0,171,0,135,255,216,0,45,2,228,254,110,253, +48,1,255,254,120,254,144,1,1,0,236,0,240,255,98,255,62,0,162,0,118,1,251,253,43,0,114,0,99,252,65,0, +227,1,65,3,101,0,164,251,234,2,38,2,82,254,221,0,24,0,222,0,37,255,5,1,156,1,96,255,188,255,99,252, +103,1,174,0,112,254,198,3,76,255,155,254,181,254,243,255,192,2,119,253,222,251,199,254,17,3,228,0,51,254,235,1, +10,1,196,255,200,0,83,2,13,1,97,255,179,1,90,254,161,252,121,2,61,0,5,252,238,0,64,2,204,254,242,254, +67,255,255,0,111,3,216,255,127,254,241,254,64,252,228,254,78,0,49,1,83,3,81,255,127,254,26,1,228,255,44,254, +224,0,174,1,121,254,198,254,34,1,237,2,89,2,37,255,209,251,140,1,221,3,95,251,219,255,195,1,164,253,208,1, +102,0,208,254,31,1,154,1,247,253,18,253,52,0,56,253,76,0,86,4,143,253,76,253,79,1,147,0,5,1,218,255, +211,255,142,1,114,1,249,1,135,254,235,252,136,254,78,255,2,3,144,2,102,255,223,254,65,255,32,1,33,0,35,253, +172,254,110,253,153,252,2,5,139,6,154,1,1,255,2,254,96,0,31,254,35,254,147,4,195,2,251,252,123,254,251,255, +133,255,154,0,69,255,118,0,26,1,72,255,88,255,64,253,187,255,2,5,208,0,88,252,140,0,253,0,65,255,25,255, +241,252,206,255,101,2,227,4,109,3,93,253,18,0,135,0,58,253,16,254,114,1,116,2,179,254,196,254,175,255,208,254, +76,254,140,255,66,3,62,1,98,255,70,1,242,255,249,0,122,255,16,252,177,254,47,255,27,2,106,3,54,255,231,0, +193,1,30,0,40,0,165,0,169,254,114,254,253,1,161,1,137,254,188,251,209,2,45,4,240,251,218,255,186,254,145,253, +252,0,236,254,191,4,128,5,27,254,77,254,8,2,66,1,34,254,201,0,6,0,124,249,179,253,195,2,158,0,158,1, +57,255,132,253,54,1,113,0,122,0,33,3,195,255,188,252,73,1,177,1,74,255,216,0,131,255,163,253,208,255,99,2, +76,255,127,254,120,2,139,2,247,1,171,255,59,253,81,255,115,255,116,253,188,2,42,4,231,252,219,254,75,2,119,0, +91,255,87,255,58,254,195,252,83,1,33,1,220,255,22,4,226,0,27,253,172,254,35,0,128,1,156,0,201,254,32,1, +134,255,7,253,111,0,243,254,92,0,15,4,163,0,225,254,247,253,66,255,75,1,21,254,88,255,28,3,173,2,29,0, +147,251,100,253,56,1,59,3,155,4,120,253,75,252,234,0,83,255,105,253,1,0,15,3,47,255,233,0,206,1,159,251, +191,255,93,4,53,0,132,252,130,0,195,2,162,253,44,252,119,1,65,4,180,255,68,255,177,0,41,255,198,254,112,255, +55,1,243,255,144,254,143,252,12,254,119,3,5,3,73,1,167,254,178,254,88,1,134,0,119,0,65,0,219,255,1,0, +157,255,67,255,178,255,97,1,209,1,73,1,191,255,9,253,210,252,111,255,8,1,153,254,246,254,4,255,70,251,225,1, +177,3,220,1,44,5,225,251,97,252,160,3,45,3,171,2,4,254,249,255,59,255,142,254,51,0,241,253,221,2,174,254, +4,251,197,2,111,4,59,253,62,250,171,3,230,3,255,254,25,1,202,254,142,253,138,255,191,255,166,254,134,254,244,255, +52,1,91,2,231,2,243,1,29,255,222,254,102,0,180,255,137,1,234,0,32,255,178,0,207,251,96,253,24,5,136,1, +60,251,97,251,97,3,67,5,7,0,60,254,143,252,153,254,117,1,11,2,133,0,212,255,215,0,119,0,68,0,226,254, +199,254,243,253,213,2,1,4,219,250,188,253,254,2,141,2,242,1,85,2,3,0,101,252,191,255,252,254,15,2,165,3, +32,255,82,2,216,254,170,253,168,0,12,255,12,0,40,254,183,255,183,1,69,255,6,0,111,255,215,255,55,1,202,255, +28,0,151,2,191,2,187,253,230,252,232,0,203,1,188,0,2,255,118,0,12,0,3,0,201,2,107,0,154,255,134,255, +106,255,147,255,229,254,110,255,143,255,7,1,213,253,6,254,30,3,1,2,112,0,92,255,1,0,8,0,107,253,187,254, +209,1,55,255,225,253,194,0,74,0,16,3,123,0,176,251,54,0,204,0,97,1,5,3,115,1,57,253,46,252,211,2, +70,0,238,252,115,1,116,0,196,1,1,2,241,253,100,1,154,0,195,254,41,2,195,254,15,255,55,2,110,255,214,255, +0,2,46,0,100,0,46,0,195,252,48,1,122,2,159,253,183,254,120,255,168,255,145,254,68,254,111,2,238,3,87,255, +227,252,66,0,95,0,110,255,164,255,9,255,129,0,173,2,112,0,212,255,233,2,165,253,147,253,64,2,115,255,157,255, +22,2,174,1,44,251,247,253,206,5,13,0,48,254,216,254,73,255,121,1,8,251,23,251,12,5,202,4,215,254,5,0, +241,254,171,253,19,2,216,1,26,1,182,255,69,252,136,0,128,2,236,255,22,1,138,0,219,255,12,1,239,0,142,255, +122,254,29,255,117,0,108,254,180,252,30,1,71,1,155,0,158,0,145,252,12,254,174,0,16,3,141,0,43,255,14,2, +95,254,128,2,240,2,185,254,24,0,239,252,15,255,121,1,137,0,99,255,33,255,148,0,53,255,208,255,39,254,190,255, +190,2,63,255,63,255,145,255,107,1,185,1,188,252,239,254,159,1,23,0,210,0,64,0,166,255,148,255,176,254,99,254, +177,255,170,1,25,1,178,1,246,254,97,253,236,0,7,255,1,2,185,3,157,254,16,255,140,255,207,255,81,0,88,255, +198,254,222,255,199,0,130,0,58,1,75,255,151,254,63,0,188,0,56,255,113,253,141,0,207,2,37,1,112,255,117,255, +28,0,81,1,246,1,22,255,164,254,234,253,26,252,251,0,110,2,13,255,221,255,201,0,216,1,153,0,34,254,123,0, +175,255,27,255,211,0,200,255,12,0,125,255,91,255,94,255,159,254,201,0,99,2,18,0,250,252,166,255,89,2,92,0, +172,255,128,253,3,252,144,255,156,0,55,1,228,3,15,2,46,254,37,254,127,1,199,255,127,252,221,254,190,1,225,2, +141,0,132,0,144,0,139,255,5,1,139,255,108,255,195,252,247,253,190,2,226,0,107,1,78,0,228,255,101,0,56,0, +232,255,205,253,221,1,200,255,164,252,89,0,140,255,192,254,54,0,61,2,125,0,2,255,96,255,199,253,19,0,252,0, +43,0,230,0,195,255,220,254,89,0,27,1,158,254,232,255,233,0,165,253,21,255,249,255,77,1,16,4,173,1,138,0, +237,253,234,252,161,0,6,0,158,255,96,0,229,255,68,254,61,253,162,254,34,1,145,2,123,255,98,0,202,0,30,254, +108,2,137,2,28,254,184,254,127,2,178,1,14,254,191,0,15,1,176,254,65,253,84,251,240,0,174,4,85,0,237,254, +126,255,109,254,44,254,151,1,152,3,179,255,80,253,59,255,227,0,190,254,13,0,27,1,4,254,120,3,4,3,254,254, +106,2,76,255,105,254,159,0,180,255,154,0,115,3,101,2,46,253,163,0,32,4,100,255,64,253,253,254,195,255,12,0, +216,0,42,255,13,254,125,255,173,1,174,0,224,254,15,0,56,255,96,0,18,1,48,254,78,253,209,253,10,255,3,1, +87,1,232,254,123,255,79,255,234,254,156,1,63,0,38,0,96,255,35,255,182,255,155,252,146,2,243,5,91,0,75,255, +14,254,60,254,184,255,75,255,149,0,144,0,183,0,209,0,124,0,165,1,31,0,49,255,111,0,195,0,163,255,155,254, +243,255,242,255,180,255,235,0,152,255,67,253,195,255,199,4,85,4,177,255,168,253,104,255,137,255,205,255,104,0,189,255, +214,1,120,255,90,253,226,0,156,254,171,252,246,0,237,2,230,1,69,255,156,254,72,2,31,0,82,254,55,1,40,255, +90,255,58,0,96,255,146,1,126,1,136,254,242,253,22,1,75,2,115,0,208,255,53,1,222,0,164,0,82,0,81,255, +73,3,222,1,96,255,80,1,162,255,69,0,244,0,78,1,216,255,21,254,138,255,115,255,159,1,106,0,54,254,150,255, +168,254,180,255,150,1,206,255,62,253,29,0,77,2,9,254,153,254,121,2,71,0,249,254,65,1,46,0,88,255,169,255, +194,253,138,254,147,0,8,0,235,0,30,1,73,255,141,0,117,1,53,1,56,1,195,0,137,255,53,254,193,2,206,3, +29,255,115,255,86,255,89,254,209,255,76,1,226,255,11,254,81,1,218,1,250,254,240,0,244,1,135,0,61,0,133,254, +172,254,155,0,75,255,17,255,51,1,128,255,12,255,176,0,159,255,217,1,218,1,162,255,137,255,179,255,234,0,214,253, +93,0,107,2,6,254,2,0,191,255,28,0,23,1,6,0,57,1,25,255,237,253,166,255,172,0,80,254,95,254,36,0, +139,255,209,0,45,254,162,254,225,2,84,2,135,2,81,1,248,254,212,254,47,255,154,1,228,1,62,254,58,255,170,0, +25,255,171,0,154,0,219,253,148,0,2,4,231,254,139,255,250,1,103,251,0,255,11,3,158,0,135,1,212,254,165,253, +45,0,13,1,4,0,74,255,66,0,150,0,107,0,192,0,237,255,219,254,20,2,178,2,193,254,72,255,9,1,239,254, +18,253,27,0,227,1,176,255,176,255,138,0,178,0,213,255,225,253,27,254,252,254,135,255,26,0,234,254,13,255,80,0, +154,0,217,1,60,1,179,254,163,255,111,0,58,255,142,0,149,255,64,1,182,1,226,251,137,1,104,3,48,254,95,1, +199,1,157,1,30,1,100,255,177,253,6,253,204,0,11,1,152,0,3,0,7,255,95,0,85,254,148,252,228,0,17,4, +6,0,148,254,204,255,234,252,37,254,86,3,241,1,238,254,139,255,70,255,241,1,30,2,141,253,63,254,114,1,135,0, +50,255,73,1,82,254,123,253,176,1,93,0,149,255,68,255,122,255,86,0,171,1,243,2,16,0,95,255,194,255,194,0, +1,1,186,254,221,255,106,0,87,255,6,0,226,255,137,255,142,0,192,255,111,1,190,1,131,252,240,254,135,1,163,255, +118,1,52,1,195,255,25,0,14,1,38,1,188,254,252,252,24,255,179,2,103,2,65,0,179,254,99,253,152,254,22,255, +189,0,75,3,41,0,28,0,136,2,213,255,133,254,61,1,203,1,238,254,254,255,228,254,161,253,138,0,107,255,209,1, +58,1,117,253,184,255,68,0,82,1,43,0,166,254,89,2,227,2,245,254,212,254,182,2,21,1,134,252,254,253,116,2, +138,0,1,253,41,255,99,0,67,2,242,3,3,255,52,254,8,2,178,254,142,253,128,255,246,255,144,2,26,0,233,254, +167,0,13,0,235,255,169,255,48,255,140,254,201,2,181,0,197,250,150,254,66,2,153,3,230,255,240,253,137,254,136,253, +16,3,7,3,99,255,199,0,241,254,94,252,162,0,162,2,235,254,6,3,38,3,32,254,233,1,28,2,96,0,178,1, +228,255,164,255,131,255,27,254,254,255,150,2,134,1,47,253,25,253,197,255,170,255,58,1,131,2,109,1,29,255,33,254, +132,255,253,255,70,1,113,1,9,0,124,255,129,255,249,255,151,255,48,254,202,252,50,255,225,2,104,2,238,0,77,255, +167,251,28,253,201,2,35,1,87,255,7,2,196,0,246,255,20,2,132,255,240,251,39,255,134,2,85,1,130,255,195,255, +55,1,24,2,132,1,202,255,10,0,113,0,110,255,82,254,92,255,163,0,163,255,6,255,60,254,29,2,143,3,97,0, +174,1,211,255,161,253,201,254,23,1,26,1,188,254,235,254,219,254,131,0,162,255,225,255,178,1,55,254,20,255,127,0, +5,1,218,0,81,253,37,0,166,2,120,255,30,0,33,0,228,253,16,0,202,0,67,255,7,255,104,0,216,255,159,253, +86,0,210,0,186,255,81,255,128,0,80,2,139,254,111,1,37,3,126,255,210,255,102,254,39,0,134,0,156,255,13,0, +56,253,106,255,128,2,254,1,154,255,249,254,250,0,214,253,179,254,105,2,11,0,142,0,192,1,68,0,1,255,186,255, +0,1,44,255,250,254,11,255,82,255,36,255,51,253,133,255,150,0,255,0,118,2,248,0,55,0,243,255,178,255,184,255, +196,255,223,255,89,255,105,255,151,255,181,254,246,253,179,253,103,255,250,0,113,2,217,5,253,255,178,253,120,1,78,250, +118,253,240,2,72,254,55,0,64,2,19,2,108,3,234,1,174,253,233,254,113,0,65,255,177,0,21,255,195,254,140,0, +6,3,29,1,173,253,180,0,198,255,235,255,73,0,80,255,183,255,201,252,89,255,105,2,119,255,49,254,26,0,49,255, +150,254,130,0,230,0,171,1,34,0,48,0,177,255,184,254,95,255,146,253,250,1,166,2,33,0,239,0,196,252,208,254, +29,2,17,254,85,253,6,2,254,3,234,254,239,254,248,2,61,255,203,254,56,1,86,0,9,3,253,0,82,253,231,255, +198,0,171,255,167,254,183,0,181,1,45,255,33,0,215,255,0,254,173,0,185,1,132,0,183,0,164,254,254,255,62,2, +2,0,131,0,214,255,254,254,32,0,151,255,76,0,224,255,199,255,202,0,97,253,168,253,74,2,15,0,100,255,169,1, +204,1,195,2,51,0,39,255,71,255,218,254,67,255,52,254,21,1,1,1,144,255,80,0,33,253,98,253,59,1,35,3, +105,1,144,255,53,0,252,254,173,253,189,254,112,0,222,0,26,1,47,1,64,1,153,1,119,254,129,254,157,2,69,1, +34,0,37,255,71,252,25,0,2,3,0,255,23,254,77,2,231,2,130,255,131,253,144,253,78,1,50,0,64,252,255,0, +76,2,12,255,225,255,232,1,228,1,109,254,255,254,190,255,104,253,189,2,242,3,165,255,247,1,63,0,220,254,208,254, +128,251,235,0,63,3,74,0,183,1,28,255,154,253,71,0,137,0,246,255,244,255,122,255,172,255,188,0,28,0,31,254, +217,254,121,2,158,1,86,254,157,255,35,255,11,254,167,1,215,0,53,255,213,2,109,0,115,251,239,251,24,254,0,0, +192,1,226,0,222,255,187,5,221,3,48,251,217,255,24,5,60,2,164,254,177,253,5,0,250,255,63,255,80,1,63,1, +238,255,125,0,100,255,204,255,98,2,122,1,75,255,123,255,217,0,201,1,156,0,146,252,31,254,75,1,68,1,195,0, +6,252,100,255,174,2,157,253,46,254,234,255,32,1,62,0,242,0,98,2,116,255,248,255,167,255,110,255,169,0,236,0, +23,1,82,255,41,254,91,255,135,2,249,0,194,254,61,0,137,254,5,255,103,2,49,2,85,255,109,255,243,1,186,0, +37,253,107,253,60,2,142,3,66,1,154,255,172,254,149,0,112,0,85,0,230,2,221,0,25,255,76,255,150,254,115,254, +203,255,222,1,38,0,51,1,20,2,205,254,142,255,117,0,182,0,176,254,90,254,137,254,156,252,156,1,101,1,5,255, +39,1,139,0,96,255,17,254,124,0,13,1,22,1,8,3,25,255,84,252,126,0,135,2,189,252,229,253,1,4,206,2, +7,1,252,255,181,254,241,254,20,1,7,1,202,254,111,254,78,254,46,254,145,1,86,3,216,255,169,1,231,0,38,255, +238,0,57,253,158,254,97,255,133,0,8,2,202,253,7,255,91,0,32,2,187,0,10,254,93,255,212,255,2,1,117,253, +144,254,118,2,114,2,105,1,141,255,8,2,35,0,250,254,213,254,138,255,52,3,178,253,147,254,240,1,141,0,132,2, +91,255,120,255,22,0,125,252,234,254,70,0,18,0,12,2,159,254,237,252,80,3,140,1,28,252,118,1,172,3,81,255, +207,253,114,0,6,3,86,255,111,254,121,255,136,253,125,255,201,0,75,2,64,0,155,254,243,1,137,255,40,1,13,255, +163,251,214,1,42,0,79,254,177,254,4,0,190,2,40,0,3,0,127,255,81,255,54,0,212,1,114,1,37,253,95,254, +243,255,106,2,44,255,142,250,208,2,170,3,51,255,125,0,112,255,250,254,38,1,109,0,182,0,123,2,236,254,86,254, +193,254,212,255,169,0,219,252,193,1,33,4,2,0,189,253,185,253,98,2,239,0,183,0,20,2,154,250,227,248,7,4, +167,9,238,0,83,252,75,254,133,255,156,1,225,1,99,254,238,253,13,3,127,0,33,253,112,255,38,255,10,0,237,2, +164,2,3,253,126,254,163,2,138,254,228,253,72,0,248,1,207,0,224,254,199,0,146,0,114,252,215,253,125,5,2,2, +196,252,155,255,47,254,247,254,90,1,96,254,242,254,223,1,131,254,185,0,130,3,250,252,101,255,163,1,87,0,52,2, +167,255,135,255,168,254,182,0,39,2,163,253,92,0,115,2,16,1,72,254,97,254,254,1,213,255,233,254,28,255,240,255, +54,0,100,0,246,1,212,255,247,1,249,0,90,254,239,254,240,252,101,1,239,2,37,0,21,255,130,255,203,1,206,0, +189,0,130,255,7,0,206,255,52,254,133,255,26,254,121,0,174,1,13,3,1,1,12,253,91,1,119,253,86,254,142,1, +40,255,252,2,108,0,18,253,64,253,184,254,92,255,203,0,186,4,10,0,193,254,97,1,55,1,6,1,131,255,244,255, +12,255,5,255,223,254,167,254,65,1,82,0,52,253,125,0,100,5,95,0,211,254,39,1,200,254,211,255,135,254,161,252, +65,255,27,4,31,4,217,254,74,0,245,255,65,254,106,0,143,254,235,255,26,2,167,254,192,253,213,255,132,0,55,1, +1,1,145,254,103,255,222,0,160,0,51,2,214,254,225,253,26,3,139,1,17,0,240,0,94,255,58,255,220,255,158,255, +78,255,32,0,252,252,127,253,20,4,120,0,0,251,154,255,40,4,159,0,155,255,111,0,51,252,111,255,59,1,76,0, +5,4,16,0,46,254,121,0,153,0,178,0,209,253,159,255,245,0,184,255,13,2,178,255,48,255,236,0,114,0,1,1, +109,254,170,254,223,0,27,3,131,2,43,254,25,0,3,0,103,0,112,0,253,254,75,1,7,253,114,254,47,2,152,1, +150,0,112,253,188,255,198,254,220,255,22,255,181,253,122,3,177,255,180,0,218,0,173,252,145,0,3,0,14,255,226,0, +144,3,164,255,217,252,117,1,14,1,2,2,100,0,129,252,207,253,244,2,138,3,7,254,32,0,56,0,139,254,143,0, +242,254,130,254,175,254,129,255,160,2,108,4,3,1,7,255,149,0,213,254,220,254,72,255,169,255,128,0,194,254,124,1, +247,1,22,253,205,0,45,1,96,252,196,2,74,3,197,254,65,0,61,0,190,255,139,252,28,254,202,1,76,255,34,255, +85,2,132,1,237,252,6,255,197,253,150,253,33,6,255,2,243,253,112,255,8,0,98,255,215,253,142,255,71,1,63,255, +142,253,159,255,78,1,57,3,91,2,121,255,212,253,15,253,252,5,141,2,125,248,1,0,26,2,28,1,53,1,51,253, +252,254,29,2,168,255,191,253,157,255,198,253,27,0,251,2,196,0,238,1,111,0,252,253,64,254,139,1,156,255,71,253, +42,0,220,251,22,1,204,5,199,254,206,253,13,255,217,2,98,0,198,252,15,255,20,254,147,2,53,4,165,255,143,254, +169,255,100,255,247,254,62,2,131,255,164,252,140,0,64,3,82,3,26,254,115,253,79,0,154,253,104,254,187,2,168,3, +204,254,220,252,181,0,106,0,193,254,213,253,184,255,5,3,138,253,38,251,140,0,21,2,46,4,134,2,92,255,191,255, +232,250,18,254,30,2,19,0,38,6,174,3,22,254,226,0,46,255,115,252,32,254,92,2,70,2,10,0,92,1,173,0, +93,254,205,255,127,0,206,254,135,0,43,254,254,252,39,0,2,255,171,1,121,3,141,1,97,254,135,252,22,255,171,0, +99,3,96,1,45,255,75,0,89,255,42,0,12,0,233,0,192,254,70,255,95,2,210,252,96,252,4,1,174,1,17,0, +44,0,179,254,218,252,92,0,67,1,119,1,46,0,25,255,45,1,110,2,156,0,92,251,16,0,168,1,50,255,210,2, +186,254,201,255,107,1,141,254,74,1,49,1,224,0,105,0,185,255,129,0,2,1,178,255,169,253,103,255,90,254,159,253, +179,1,17,4,138,2,73,0,123,255,148,254,67,1,177,1,23,255,208,254,120,252,78,255,144,0,31,253,64,0,135,255, +2,254,9,1,2,0,155,255,142,2,86,2,175,254,13,255,110,255,10,0,113,1,235,253,151,0,239,0,79,254,81,1, +80,254,89,1,246,3,94,254,78,255,254,255,75,1,119,1,141,254,57,1,7,2,248,253,90,253,2,0,105,1,114,0, +239,254,165,0,5,0,13,253,62,255,80,0,60,254,240,254,114,1,198,1,7,2,85,1,14,1,178,0,86,253,83,0, +124,253,123,249,144,4,114,6,123,255,106,0,26,2,6,0,117,0,175,255,84,254,64,255,27,252,124,1,221,2,3,254, +234,1,140,254,146,254,107,1,140,255,97,254,80,253,39,2,109,0,254,253,123,254,138,252,1,2,233,2,246,0,50,3, +74,0,85,255,34,1,210,253,11,0,96,3,153,0,45,1,36,255,58,254,136,1,207,2,39,1,32,253,6,254,22,0, +140,1,78,0,100,0,29,2,55,251,203,250,242,0,142,3,115,1,107,254,97,0,38,0,141,255,24,255,198,0,255,1, +189,255,194,255,110,255,113,1,198,255,112,254,95,1,195,0,161,0,56,255,102,0,18,1,149,0,142,1,239,253,104,254, +133,2,243,2,110,255,68,255,107,255,225,251,239,255,247,0,32,254,188,1,218,3,133,255,204,250,50,0,251,3,195,255, +189,254,152,254,91,1,200,2,239,253,65,255,116,0,217,253,44,0,16,0,76,0,38,1,218,254,78,255,206,254,53,0, +134,0,242,254,152,3,161,2,56,253,208,254,75,0,155,255,138,1,161,1,112,0,72,255,189,253,133,254,23,254,175,2, +199,2,191,252,78,2,152,0,87,254,204,3,188,254,151,253,68,1,78,1,131,254,207,254,246,3,193,255,146,252,114,254, +42,0,229,3,110,255,198,252,10,0,113,253,188,253,183,2,145,3,69,2,166,0,221,255,164,0,98,254,163,252,17,0, +182,2,243,255,78,0,48,2,139,252,172,253,137,255,250,253,48,4,254,0,149,252,40,255,76,0,214,2,77,255,140,253, +60,1,48,2,191,0,77,255,156,254,129,254,224,0,173,253,129,254,212,3,4,1,89,0,140,254,165,254,61,1,206,254, +4,0,242,2,55,255,107,250,164,0,246,2,235,254,88,1,167,0,197,255,196,0,245,1,252,0,190,254,0,255,250,253, +4,2,22,2,86,254,27,0,186,255,148,0,28,0,67,253,206,255,130,2,43,255,213,253,222,1,117,3,231,255,156,252, +64,0,212,0,244,255,7,1,56,253,134,255,141,0,234,253,163,0,250,0,109,0,93,2,68,3,1,255,48,253,88,255, +61,254,168,255,162,1,103,0,118,255,165,255,88,1,204,1,48,255,123,255,250,254,103,253,221,2,145,2,110,254,49,255, +55,255,93,0,239,1,177,1,217,253,6,255,49,0,204,253,192,3,90,2,168,253,5,255,202,255,207,1,65,0,207,255, +7,255,18,254,108,0,12,1,234,2,76,1,4,254,193,254,107,0,111,1,151,0,213,0,181,0,85,253,166,252,15,1, +175,1,44,255,184,1,147,1,0,254,191,0,250,0,26,254,161,1,134,0,40,253,153,255,99,1,13,2,249,255,143,255, +129,1,55,0,170,253,180,254,245,2,41,1,87,255,70,0,179,255,23,0,81,253,173,254,10,4,175,1,241,252,50,255, +16,1,18,255,31,1,67,255,175,252,96,255,16,1,251,2,116,1,243,255,6,255,242,254,104,4,51,4,31,254,98,253, +85,1,189,0,102,2,74,12,233,9,198,254,226,255,79,254,80,244,56,250,59,3,161,255,181,255,25,255,45,253,100,254, +137,254,240,0,76,255,133,252,86,254,0,1,247,1,62,255,106,0,16,2,159,255,146,255,41,255,133,254,62,0,58,0, +43,254,133,255,198,0,26,0,91,1,189,253,42,251,40,1,226,3,201,255,99,253,31,0,28,3,36,3,197,255,158,252, +181,254,27,2,177,0,93,254,154,255,135,255,157,0,107,1,4,0,71,0,231,254,83,1,95,1,196,254,11,0,59,254, +103,0,161,0,187,254,254,255,204,254,71,0,126,1,25,2,184,254,244,253,126,2,160,255,24,255,185,0,252,0,153,252, +52,249,30,2,198,4,68,0,209,255,15,1,206,254,128,253,123,1,253,0,0,254,25,253,124,0,138,1,215,0,79,3, +140,255,21,253,41,253,234,0,57,2,98,252,77,0,61,2,126,1,168,1,155,253,146,254,157,254,73,0,5,4,217,0, +136,253,87,0,8,2,63,255,247,252,60,252,77,1,121,4,62,2,163,255,130,253,142,0,73,0,86,255,167,0,152,0, +179,0,203,253,7,1,220,1,209,252,217,254,100,0,209,255,44,255,121,255,110,1,130,2,177,255,12,253,179,1,208,1, +31,255,154,255,147,254,165,1,253,1,240,254,191,255,13,254,100,254,67,2,40,0,164,253,129,254,174,254,105,255,141,0, +125,3,254,3,41,255,203,251,71,253,182,1,94,1,137,254,232,254,32,1,226,1,83,255,26,0,86,254,128,253,90,3, +11,0,15,253,119,1,170,1,164,0,135,0,184,255,111,254,237,253,130,0,217,1,72,254,106,253,201,255,20,2,112,2, +177,254,244,0,65,2,145,253,174,253,146,255,45,2,92,1,122,254,19,255,97,1,117,1,47,254,39,1,140,2,203,254, +18,254,93,255,65,0,63,0,52,3,70,254,78,252,165,1,11,254,13,1,134,2,13,255,91,0,207,255,19,0,175,253, +133,255,22,2,28,0,117,0,94,255,25,255,189,253,115,255,173,2,13,0,194,253,234,254,143,1,251,0,167,255,65,253, +225,255,166,2,41,254,181,3,230,2,32,252,215,1,219,0,151,253,154,0,213,255,165,252,43,254,214,3,183,4,205,255, +59,253,91,255,152,0,62,0,0,255,251,254,184,1,84,2,193,255,234,254,157,1,76,0,143,254,51,254,191,254,227,3, +82,255,169,251,164,0,224,255,133,254,220,253,14,1,175,4,108,2,194,253,202,250,125,1,71,4,252,254,221,254,24,0, +193,254,248,254,240,1,180,255,134,252,127,0,127,3,185,0,254,253,212,255,110,0,203,0,209,2,232,0,111,255,89,1, +109,0,91,253,11,0,239,1,133,0,160,255,20,252,64,254,191,0,190,1,62,5,112,255,191,253,69,2,198,255,252,253, +149,255,24,2,88,0,131,253,154,254,14,0,45,2,152,0,232,254,52,255,37,255,242,1,68,255,43,253,142,1,134,0, +36,255,90,0,33,0,216,255,99,255,107,0,33,0,153,0,119,1,64,253,219,253,40,2,190,0,116,255,190,255,237,255, +155,0,91,0,233,255,176,253,130,252,143,255,204,254,54,253,61,1,249,3,164,3,210,0,181,255,25,1,10,0,128,0, +17,254,234,252,45,2,185,0,252,254,87,1,239,255,79,255,30,1,113,0,244,253,143,255,143,1,36,2,175,2,126,254, +175,252,129,0,4,2,11,255,185,253,238,0,74,1,253,255,17,0,240,254,51,255,53,1,2,1,173,254,35,255,90,1, +123,2,95,2,108,255,92,253,247,255,151,2,230,255,182,253,1,0,86,255,46,253,211,255,157,0,41,253,175,255,31,3, +93,0,238,255,18,2,32,2,176,255,141,254,179,254,196,254,113,1,142,0,64,254,137,254,229,255,251,1,18,0,215,0, +21,1,76,254,235,2,128,2,253,251,43,255,207,3,215,255,118,253,109,255,155,255,111,0,222,254,137,254,121,2,217,0, +91,255,141,0,184,255,3,2,44,1,163,252,126,255,198,1,10,1,121,2,112,255,149,252,234,255,154,2,196,253,93,252, +240,2,197,0,116,0,32,4,124,255,117,254,123,254,27,255,65,2,63,1,27,2,126,0,113,252,170,255,211,0,0,253, +248,254,254,0,211,255,166,0,70,255,114,253,87,255,88,2,243,1,134,1,42,1,129,254,94,255,149,255,80,1,77,1, +228,254,69,1,59,0,243,1,242,254,213,252,63,3,39,254,211,254,229,0,217,254,85,2,40,254,187,254,170,1,94,1, +92,3,96,0,237,251,192,254,27,5,61,0,49,253,27,0,24,254,53,255,80,1,62,2,248,255,145,255,232,0,99,0, +47,255,47,250,39,255,246,2,178,0,135,1,68,254,131,254,3,254,196,255,44,2,126,255,216,255,52,255,50,0,48,255, +225,0,79,1,5,254,149,2,141,255,195,253,117,255,48,254,184,1,24,1,212,0,132,0,10,255,197,252,231,253,54,4, +181,0,32,0,230,1,153,254,117,0,226,0,233,255,138,0,9,0,57,255,109,0,200,255,43,254,149,0,161,0,244,255, +205,1,138,0,174,251,213,254,161,2,206,252,193,254,64,2,48,0,14,255,145,255,136,2,61,255,120,253,68,1,20,2, +9,255,197,254,210,2,69,255,125,252,90,254,196,1,252,3,136,254,245,253,194,254,110,255,159,1,56,255,207,255,221,254, +196,255,125,3,178,255,26,255,74,2,176,255,241,255,206,2,2,0,231,253,24,254,230,0,57,1,251,254,28,2,159,255, +245,253,83,255,139,254,114,2,159,255,196,253,96,1,232,0,255,255,123,253,119,254,163,0,33,3,109,3,180,251,33,253, +38,3,125,2,60,1,131,253,86,254,189,0,156,253,87,1,58,3,101,253,245,254,203,0,191,254,82,255,137,255,176,0, +202,0,104,254,226,255,207,2,54,0,194,255,161,3,137,0,28,254,184,0,140,0,241,254,188,253,22,1,146,3,108,255, +176,253,107,0,244,1,125,255,125,254,237,255,113,254,189,255,100,3,157,1,85,255,140,255,180,255,170,255,196,253,153,254, +155,255,196,255,51,4,128,1,47,254,84,0,104,255,143,254,175,253,41,3,35,4,182,252,225,254,121,0,150,255,200,255, +231,255,116,1,42,0,23,2,183,1,139,253,58,254,157,0,165,2,73,1,5,254,247,252,33,254,80,0,194,0,98,255, +30,255,105,2,24,5,180,1,19,254,143,254,141,254,205,0,125,0,7,254,139,2,23,1,100,253,160,255,1,1,136,1, +131,255,67,1,184,0,174,251,193,254,78,2,58,2,142,1,22,0,208,254,245,255,24,0,252,252,181,255,159,1,146,255, +16,1,223,0,159,255,241,254,187,0,217,3,195,0,49,255,238,253,214,250,227,0,41,5,167,3,115,1,246,251,213,253, +100,2,126,0,80,255,240,254,104,254,224,255,244,255,219,254,174,1,109,1,140,254,63,0,188,0,218,255,20,254,119,253, +53,0,228,0,239,254,89,254,242,0,157,2,181,1,228,254,247,255,222,2,160,255,129,255,38,1,24,255,105,253,219,254, +252,0,216,255,39,1,150,0,48,255,125,0,139,0,232,0,125,253,201,255,190,3,38,255,217,254,209,0,173,255,114,252, +231,253,13,1,114,253,74,254,83,1,151,2,41,3,80,1,183,0,197,253,231,254,157,2,47,255,89,253,103,254,76,0, +212,1,252,255,123,0,106,1,76,255,185,254,10,255,203,254,249,0,95,1,208,252,100,255,212,4,13,1,184,255,129,254, +105,250,220,253,85,2,81,3,216,0,152,0,48,2,43,255,209,0,180,1,191,254,202,254,107,0,21,1,127,254,122,0, +88,0,124,254,156,1,167,255,96,255,205,254,55,253,129,255,83,0,101,2,48,1,8,255,240,0,56,2,48,255,24,254, +141,1,137,255,252,254,51,254,229,253,115,3,42,1,43,255,22,1,180,254,27,253,248,255,149,2,210,255,143,254,88,0, +140,0,175,253,56,254,116,2,141,1,57,0,160,254,26,255,204,0,186,254,254,0,236,2,20,0,152,253,126,255,188,1, +183,254,150,253,202,255,254,1,193,0,47,254,251,255,190,1,47,0,204,255,52,1,62,252,109,252,234,3,9,2,70,1, +111,255,64,252,227,2,166,4,36,255,104,251,36,255,243,1,41,254,253,255,83,0,157,0,88,1,203,253,215,0,65,1, +61,0,15,1,23,253,204,254,219,1,182,0,121,254,58,254,68,2,88,0,205,252,130,0,111,1,111,254,39,0,139,1, +55,254,132,0,178,3,16,255,57,255,182,255,176,252,239,1,58,3,117,255,88,254,71,253,249,255,159,255,77,1,90,3, +177,253,7,0,62,2,7,0,213,1,163,255,245,253,143,255,84,1,220,0,2,254,169,255,206,0,140,0,204,0,84,254, +175,254,45,0,115,0,126,0,122,255,50,254,241,253,239,1,69,255,219,250,182,1,113,3,4,0,174,0,241,0,240,255, +1,0,75,0,172,255,15,1,220,0,227,0,248,0,142,0,44,0,141,251,150,255,60,3,240,253,25,254,113,255,55,0, +252,0,47,0,246,254,58,0,18,0,14,254,153,2,107,1,180,254,244,1,123,1,92,0,57,255,253,255,54,1,243,255, +143,253,129,253,178,1,194,0,200,252,57,254,68,3,173,3,72,0,181,254,12,254,79,0,116,0,178,254,175,255,196,0, +164,0,170,0,118,2,168,1,252,1,47,2,146,254,141,253,223,253,20,254,85,252,215,254,101,2,174,0,254,2,186,0, +113,253,116,255,27,255,234,0,131,0,52,255,99,0,118,255,112,255,176,0,31,0,117,254,102,255,217,253,235,254,140,4, +120,0,17,254,87,0,237,254,206,0,58,1,169,255,175,1,133,1,234,252,17,252,237,254,91,1,203,3,229,0,199,254, +2,1,129,0,105,254,129,254,74,2,197,255,232,251,237,255,214,255,60,255,199,0,198,255,199,255,93,254,131,254,71,0, +98,1,190,3,163,0,230,253,176,0,141,255,66,254,95,1,164,2,214,254,122,253,234,0,4,2,225,0,183,254,228,0, +161,2,185,253,20,254,100,0,219,255,54,255,1,254,41,0,228,1,252,0,0,0,41,255,251,1,160,3,64,254,147,253, +33,1,248,253,104,253,157,1,91,0,182,254,248,3,221,3,246,254,150,255,80,253,144,254,74,3,43,2,145,1,229,254, +218,253,121,0,202,255,14,0,167,255,70,252,58,0,185,3,124,254,81,255,16,0,160,254,109,2,224,0,49,255,77,1, +243,0,63,255,203,254,86,255,78,255,147,1,3,3,193,0,9,255,74,254,63,255,131,1,69,0,112,255,61,0,173,255, +230,255,38,254,226,254,135,254,160,253,248,3,50,3,217,253,187,254,0,3,169,1,86,253,175,0,84,1,225,255,94,255, +176,254,255,255,39,1,21,3,157,254,213,251,243,255,126,1,174,1,230,0,144,255,150,255,104,0,217,254,7,0,238,0, +240,252,30,253,93,254,227,0,146,1,184,254,169,1,21,0,179,251,160,1,100,3,158,255,157,1,144,0,199,254,185,255, +99,1,56,2,217,254,120,254,82,254,235,254,63,0,128,0,152,0,56,252,247,253,123,0,86,0,201,2,192,0,120,255, +23,0,61,0,165,255,79,254,197,253,183,254,81,1,213,3,64,1,197,252,160,0,225,0,95,0,60,2,38,253,179,252, +38,0,196,3,106,0,155,253,166,2,161,0,171,255,188,255,54,255,113,0,202,255,159,0,216,254,170,251,175,253,5,2, +249,0,180,255,31,254,168,255,230,3,29,0,205,0,167,0,131,255,237,0,98,255,190,0,24,254,39,255,199,255,53,0, +32,4,169,252,135,251,79,1,179,1,69,0,221,253,64,255,152,1,243,0,46,0,120,1,109,1,111,255,5,254,9,255, +190,254,196,253,13,1,21,1,141,0,226,0,172,254,240,254,188,255,240,254,9,0,5,0,125,253,200,2,87,5,17,255, +114,252,32,255,116,4,242,1,187,253,185,255,42,2,99,0,87,253,207,255,115,0,147,1,74,255,130,253,97,1,190,254, +141,255,25,1,52,0,210,255,203,254,120,0,120,0,8,2,52,1,232,254,82,255,36,255,112,255,232,255,185,0,228,255, +240,254,14,255,101,1,55,0,201,255,101,2,166,254,226,255,119,0,120,0,38,2,11,0,75,2,120,255,3,255,164,0, +240,253,47,0,149,0,108,255,19,255,144,0,250,0,40,0,49,0,218,254,214,255,166,0,96,2,50,1,248,253,188,254, +95,0,242,0,201,252,198,254,203,3,112,0,139,0,50,0,134,253,204,0,141,255,73,253,64,2,85,3,50,1,229,254, +32,252,100,255,163,4,248,1,29,254,146,255,161,253,243,255,155,4,200,0,53,253,152,254,200,2,193,254,82,254,208,3, +167,254,236,253,214,255,110,0,218,1,251,254,205,254,25,0,25,1,197,255,217,255,144,3,128,0,112,252,61,0,214,0, +103,253,4,255,134,255,147,1,102,3,108,1,92,1,61,0,96,0,215,254,213,254,60,0,232,253,215,255,218,1,34,2, +118,254,179,250,137,255,72,3,64,1,139,255,161,0,0,255,219,254,27,255,40,254,159,3,229,3,243,255,26,254,241,252, +95,1,242,2,195,254,140,255,163,3,218,254,24,251,210,1,134,2,45,0,76,2,188,255,138,252,202,253,54,0,96,2, +27,2,127,255,38,254,158,254,13,255,45,1,76,3,67,1,145,254,192,253,99,255,124,2,25,2,193,253,90,253,124,1, +79,0,68,0,244,1,239,254,177,255,169,255,109,254,239,255,136,255,117,255,74,255,218,0,79,0,154,252,15,255,17,2, +86,1,175,254,148,252,200,1,194,4,51,0,208,255,12,255,164,252,82,0,131,2,10,1,181,255,210,254,10,255,31,0, +184,0,46,254,181,253,168,1,141,2,116,254,36,252,29,0,224,1,16,255,21,0,64,2,123,1,170,255,178,255,137,1, +44,0,83,255,74,0,199,253,219,253,35,2,187,2,130,254,50,253,103,1,20,3,212,255,67,253,173,255,242,255,114,251, +177,255,99,4,15,0,119,0,223,255,254,253,146,3,164,1,125,253,206,255,95,255,159,254,252,253,179,0,83,4,7,2, +12,1,105,255,109,253,150,1,204,1,113,252,183,253,191,254,112,254,75,3,158,2,159,0,48,255,32,252,228,254,144,255, +77,0,56,3,209,255,82,254,152,1,41,1,229,254,49,255,176,255,129,0,128,1,124,0,190,0,109,0,180,252,151,254, +34,0,247,252,3,2,174,3,187,255,2,0,198,254,136,255,143,255,139,254,151,255,66,0,150,1,196,0,146,0,57,0, +252,254,148,255,230,0,73,2,195,0,76,254,164,253,134,255,203,0,51,1,224,1,77,0,0,0,186,254,31,254,242,253, +195,253,189,2,156,1,223,254,232,0,176,254,139,254,205,0,249,0,43,0,38,0,51,1,228,253,126,254,222,1,239,255, +141,1,70,0,62,253,237,252,13,252,47,4,186,4,24,252,29,0,144,3,82,255,5,255,229,0,90,255,27,1,245,2, +125,253,128,253,76,2,103,0,91,253,249,255,209,1,175,254,210,254,34,1,147,0,181,0,207,254,132,253,146,0,132,255, +101,254,125,254,55,255,1,4,32,1,23,254,139,0,177,1,78,3,188,0,192,255,103,0,228,255,145,255,95,253,191,254, +252,255,246,0,162,255,28,253,71,1,232,2,146,0,183,254,13,255,90,0,195,1,176,1,111,252,217,254,57,2,90,253, +145,252,180,253,243,0,4,2,208,254,216,1,122,3,164,0,225,255,105,255,184,254,165,255,174,254,113,253,224,2,213,3, +107,254,215,253,123,255,94,0,95,255,175,0,18,1,239,254,173,0,196,0,184,1,38,255,203,249,247,251,122,254,34,3, +4,5,226,0,130,0,231,255,223,253,126,253,238,0,77,2,208,252,204,253,9,3,188,2,252,1,238,253,136,252,168,1, +107,0,41,0,75,1,247,255,27,1,142,253,125,253,239,0,143,255,157,0,151,0,61,253,38,255,196,2,51,253,31,252, +3,2,57,0,25,1,64,2,92,0,71,1,33,0,230,254,94,253,63,255,109,255,39,252,168,255,2,0,27,1,192,3, +226,0,227,1,64,255,192,251,184,255,87,1,176,0,177,0,81,255,237,255,180,3,77,1,171,254,229,0,225,254,232,254, +22,0,142,255,97,0,140,0,81,0,203,254,252,253,97,252,199,255,135,4,38,0,82,254,194,253,255,252,69,0,204,255, +82,252,240,253,38,5,166,5,10,1,254,255,35,255,107,0,82,1,146,255,10,1,97,0,4,253,33,255,184,0,188,255, +234,253,243,251,80,0,216,3,4,1,29,254,175,255,164,0,25,0,125,4,149,3,202,0,118,0,197,252,246,255,158,1, +38,255,71,0,118,254,69,255,206,255,70,0,42,4,25,255,15,253,41,2,99,0,157,254,229,254,83,0,179,0,28,251, +219,251,107,3,247,0,73,253,47,4,142,4,73,0,203,1,160,1,162,0,151,255,5,255,250,253,41,0,98,3,221,254, +152,253,235,255,78,1,37,1,164,255,255,255,139,255,204,255,203,253,197,0,184,4,12,0,150,254,173,254,55,1,154,2, +198,255,48,0,78,255,206,253,181,254,2,1,40,1,199,255,183,253,105,254,202,255,120,251,120,255,87,5,23,3,86,0, +53,0,23,2,207,254,96,253,212,253,224,255,165,2,231,252,206,252,233,1,135,3,194,0,122,251,42,255,204,3,221,255, +216,253,42,2,215,2,106,255,1,254,94,254,105,255,190,0,137,2,33,0,24,254,134,1,79,2,159,0,211,1,103,2, +202,255,28,253,216,252,134,1,166,2,233,255,217,0,124,255,89,255,106,1,220,1,219,254,89,252,92,0,157,0,180,254, +214,255,226,255,193,254,178,255,168,1,162,0,8,0,145,255,171,1,162,2,93,255,49,254,193,254,111,1,97,255,152,251, +64,253,52,1,10,4,194,0,58,255,28,2,5,1,86,253,161,253,53,255,67,0,117,2,92,3,44,4,7,1,130,254, +167,0,7,1,10,252,220,248,8,0,163,2,103,2,26,2,74,253,210,253,6,0,27,3,60,1,74,254,234,0,241,0, +186,255,219,252,157,253,53,255,95,255,73,0,214,254,76,2,167,4,35,255,27,253,146,1,67,255,203,251,42,254,92,255, +147,3,117,2,174,254,195,0,195,255,45,0,72,1,48,254,85,254,234,255,240,254,0,2,23,3,217,255,52,1,8,2, +246,254,12,253,23,255,233,0,159,1,12,1,253,255,84,0,231,254,150,0,184,0,121,255,21,1,57,255,203,254,88,0, +53,0,251,255,65,2,69,1,55,253,45,253,50,255,102,2,161,1,206,255,54,254,23,254,121,0,248,255,204,2,222,1, +189,253,180,253,5,255,134,0,118,0,176,2,112,1,90,254,176,252,193,252,247,1,137,3,68,1,13,0,88,0,50,0, +92,1,224,255,3,253,156,255,64,255,43,0,203,255,2,253,200,0,38,4,59,3,235,0,234,0,167,254,112,254,127,0, +137,255,71,1,204,254,1,252,131,255,53,3,196,2,102,0,224,254,146,254,50,0,59,253,94,255,245,2,95,255,244,0, +214,0,104,0,58,0,232,252,240,255,156,2,211,255,116,253,234,254,154,2,208,3,92,254,172,250,34,0,101,2,116,255, +107,0,69,2,164,0,208,255,139,255,217,0,7,3,129,255,105,253,161,253,52,0,135,5,240,1,14,253,220,253,173,254, +145,0,89,1,200,255,38,254,219,252,33,0,237,4,19,2,161,254,152,255,212,0,68,2,20,255,26,252,7,1,166,3, +180,0,194,254,189,254,169,0,212,255,197,253,27,255,170,253,107,255,217,3,197,255,43,252,130,255,50,4,84,3,22,255, +122,253,208,254,116,2,110,1,93,0,168,255,75,251,167,253,133,1,1,4,83,3,22,255,85,0,242,255,103,255,104,0, +59,255,194,255,163,0,4,2,250,1,79,255,224,252,186,254,252,0,194,254,1,254,69,255,96,0,33,255,40,0,237,4, +221,3,8,254,165,252,172,0,232,254,63,253,113,2,193,0,241,250,153,255,8,7,191,1,210,253,57,0,32,255,121,254, +67,253,94,0,104,4,84,2,224,254,167,254,61,1,63,255,36,255,93,1,50,0,118,254,27,254,42,2,181,3,59,0, +31,254,142,0,67,0,134,252,159,255,226,0,131,255,143,0,58,255,88,0,166,1,86,254,156,253,158,255,204,0,191,3, +52,3,181,254,170,253,207,254,209,254,67,255,232,0,170,255,93,0,53,0,11,253,134,0,250,0,253,254,83,1,8,1, +218,254,158,254,131,0,166,255,6,255,26,0,1,1,210,2,193,0,130,255,193,0,206,255,22,254,48,255,102,2,60,1, +142,254,28,254,23,1,148,3,148,255,7,254,221,255,96,255,34,255,75,255,140,0,248,1,240,0,82,255,235,254,87,0, +189,1,171,0,76,255,61,253,222,252,19,1,13,2,142,0,65,0,7,254,242,254,61,1,87,0,49,2,248,1,141,254, +5,0,121,0,137,254,161,254,153,0,128,1,29,255,136,254,174,254,191,0,65,1,55,254,79,1,111,0,173,254,169,2, +180,0,232,253,143,254,59,1,197,1,63,0,239,254,48,253,97,1,192,0,230,252,249,0,68,1,46,0,43,1,97,255, +237,254,137,255,227,254,17,1,0,4,230,251,106,247,91,5,59,9,7,254,97,251,89,255,152,1,114,0,201,254,36,0, +228,2,89,1,94,253,246,255,71,1,251,255,15,0,248,254,254,255,132,254,52,254,253,255,48,255,28,0,191,0,196,0, +72,0,3,1,206,254,229,253,192,2,99,253,71,252,34,2,228,253,28,0,221,3,163,255,176,0,72,2,92,0,141,255, +5,255,242,254,83,0,153,2,196,1,217,254,222,254,175,1,25,2,194,252,247,250,226,254,170,2,137,3,236,255,4,255, +82,255,113,255,56,0,113,253,184,255,64,4,239,0,43,253,134,255,218,2,2,0,9,253,166,255,212,253,254,253,250,4, +7,3,57,255,205,253,166,254,125,3,85,0,71,255,152,0,203,254,19,1,156,1,171,255,35,253,139,252,204,254,217,2, +55,2,72,254,41,0,179,254,59,0,210,2,214,254,197,255,94,255,215,255,231,2,254,255,40,253,180,254,154,0,11,0, +89,1,219,0,93,253,107,255,130,1,123,255,157,255,87,0,185,255,107,1,60,2,225,255,89,255,75,1,165,0,91,253, +66,253,212,255,182,0,170,0,71,2,132,2,164,254,232,251,43,254,99,2,27,2,16,255,160,255,184,0,111,254,187,251, +191,253,201,0,120,2,42,3,160,254,86,255,192,0,107,252,150,255,140,0,88,2,190,5,164,0,213,255,255,254,159,254, +64,0,255,0,88,3,17,254,160,252,63,0,150,254,103,254,196,255,214,255,221,255,120,1,177,1,221,2,79,2,252,254, +216,255,59,254,78,252,87,254,191,254,244,254,35,2,93,2,243,254,10,255,208,255,146,0,134,0,237,255,226,0,218,0, +95,0,16,255,238,255,213,2,14,4,248,1,120,253,53,252,168,255,107,1,40,255,204,254,42,255,150,255,93,255,224,255, +87,1,115,0,235,0,62,252,135,251,127,2,43,4,27,3,94,254,6,253,208,253,20,254,136,3,167,4,170,255,157,253, +215,255,91,0,105,1,79,1,69,0,204,0,96,0,83,0,210,254,222,0,133,0,18,255,130,255,196,253,235,1,36,1, +80,253,68,254,122,2,52,3,199,253,19,255,213,254,87,0,17,2,179,254,228,255,10,0,194,0,13,255,200,253,102,1, +78,3,85,1,107,255,159,1,84,254,71,252,108,254,203,255,135,3,64,1,116,252,170,253,35,2,6,2,231,255,239,0, +180,0,32,0,135,254,208,253,128,0,44,1,157,253,62,252,127,255,15,1,230,1,164,2,221,255,194,255,180,2,43,1, +42,255,16,254,163,254,213,0,22,0,69,2,138,2,118,255,207,254,128,254,49,1,122,0,213,252,232,254,105,1,219,0, +152,0,1,1,158,0,62,255,227,254,242,255,182,255,250,254,146,254,50,1,228,1,149,255,203,1,51,0,248,254,225,0, +9,254,235,252,22,0,193,2,143,0,201,254,34,255,15,0,134,1,242,254,132,253,72,0,222,1,170,255,112,255,178,0, +89,0,148,0,49,255,1,255,205,0,224,1,102,253,188,251,64,1,168,253,181,252,128,5,85,5,155,254,253,254,59,4, +14,4,3,254,1,251,113,254,71,1,255,255,41,255,216,1,175,0,53,0,114,1,235,250,15,252,35,2,82,3,30,1, +188,252,166,255,252,2,25,3,109,0,197,254,215,255,121,255,196,0,188,255,139,255,2,0,27,1,109,255,145,252,116,1, +242,255,121,252,37,255,167,0,149,254,250,252,15,1,76,5,87,2,37,252,43,1,6,2,193,252,126,0,48,255,246,254, +243,0,153,255,134,0,250,2,94,3,238,253,204,253,178,1,243,0,94,254,78,253,113,254,178,255,154,2,125,2,235,254, +155,254,120,0,143,255,119,253,44,0,56,3,166,255,177,252,109,254,44,255,57,1,19,3,57,2,209,0,39,2,35,2, +190,251,89,252,47,1,58,2,144,255,202,254,246,3,194,1,181,254,62,253,252,251,38,0,6,3,240,1,102,253,216,254, +247,1,204,255,241,253,94,255,39,2,103,1,204,0,53,255,130,255,47,0,50,255,58,0,18,255,147,255,28,1,230,0, +170,0,241,1,204,0,248,255,76,255,131,1,11,13,234,6,119,252,4,254,244,255,172,1,154,247,151,250,78,3,79,255, +185,0,91,255,35,0,47,2,114,255,212,255,220,1,51,0,177,254,158,255,95,253,173,254,255,253,119,255,237,3,30,252, +98,250,239,1,7,3,250,0,107,255,114,253,124,255,80,2,179,252,98,250,241,1,177,5,107,3,166,255,186,252,99,0, +216,1,195,255,239,255,244,252,101,0,108,5,30,2,44,0,163,254,218,250,90,254,2,2,219,250,53,252,249,255,72,255, +86,5,119,4,215,0,204,255,190,255,11,0,107,254,56,1,96,3,167,2,22,254,171,251,64,1,63,3,116,254,153,252, +236,0,215,0,203,253,76,254,191,0,55,5,136,4,151,253,57,253,14,1,104,255,177,254,120,255,131,255,183,254,157,0, +214,4,79,0,131,253,82,254,60,253,23,1,165,4,225,3,177,254,250,251,235,255,175,1,45,254,69,254,197,3,23,3, +97,0,85,1,154,255,199,255,210,0,143,252,145,252,84,0,163,1,201,0,236,253,15,0,242,1,219,0,221,255,149,255, +100,2,193,0,192,254,41,255,90,255,240,254,236,254,199,1,215,0,14,1,118,0,24,253,43,255,70,1,161,0,114,0, +186,1,188,255,58,254,171,255,9,254,250,254,30,2,41,0,17,254,217,254,131,255,99,0,132,253,49,253,193,254,45,255, +1,3,18,1,19,3,172,4,4,255,255,251,106,252,121,4,37,2,142,251,230,253,15,0,45,3,215,1,4,0,214,255, +235,0,254,0,231,1,63,1,62,249,211,252,149,2,221,255,201,255,5,2,144,2,168,0,208,0,85,255,85,254,43,0, +253,255,157,252,78,254,214,1,152,254,3,1,69,1,87,0,15,2,168,254,20,1,148,1,147,253,83,253,209,254,244,255, +40,2,7,2,155,254,85,0,222,255,143,0,101,1,43,254,17,0,90,255,20,0,31,2,129,254,23,253,162,253,235,253, +55,1,71,3,76,0,176,255,48,0,152,1,33,2,29,255,136,0,235,0,18,255,218,254,88,254,83,255,241,0,196,1, +81,1,195,255,239,253,54,253,54,255,116,2,173,254,144,252,49,3,211,0,101,254,152,2,202,253,33,250,251,0,15,5, +239,1,153,1,211,0,132,253,237,255,68,1,255,254,83,254,188,254,7,1,221,255,66,254,54,0,24,255,10,255,242,254, +22,0,247,1,119,254,95,255,201,0,196,1,247,2,255,253,247,253,37,0,89,0,88,2,42,255,240,249,53,253,33,4, +51,5,187,1,84,255,253,0,103,1,134,0,192,255,0,254,19,254,59,254,215,255,110,255,40,255,52,1,54,255,163,254, +22,0,19,2,237,1,69,255,88,254,123,254,218,0,16,0,240,254,168,1,216,1,52,0,178,0,230,0,83,252,150,253, +132,4,38,3,216,254,117,254,23,0,220,255,229,254,199,254,175,254,229,1,118,1,144,254,7,0,69,255,210,255,5,2, +97,1,31,0,125,253,131,253,241,0,178,2,145,0,185,253,152,253,215,255,221,1,133,0,108,255,115,255,15,0,62,0, +249,0,104,1,206,252,246,253,102,1,176,1,136,3,123,0,149,254,168,0,23,0,66,255,189,0,151,252,240,251,189,4, +189,1,152,253,140,0,65,1,135,0,117,255,38,1,152,254,66,255,73,1,41,254,20,0,193,0,3,255,153,252,39,253, +164,1,138,3,167,1,172,254,224,0,46,1,99,255,216,0,67,1,106,254,95,251,163,254,204,3,210,3,168,255,161,254, +111,255,25,0,50,0,32,254,96,1,74,0,154,254,169,2,186,0,218,254,199,254,157,255,2,0,134,0,64,0,134,254, +101,1,37,0,56,0,175,1,28,254,7,255,44,0,239,255,105,0,17,1,187,255,49,254,63,0,188,255,185,255,177,1, +249,0,81,254,194,253,200,254,215,254,229,254,231,253,2,3,143,3,189,251,154,254,195,1,114,1,37,255,121,252,127,0, +50,254,97,0,218,5,44,1,222,0,166,255,209,252,174,254,156,0,59,3,17,2,90,254,3,254,18,1,247,0,35,252, +115,252,48,3,106,3,48,253,103,255,202,1,214,255,5,1,222,0,86,1,139,0,17,0,130,1,244,0,77,0,60,254, +33,254,157,253,126,253,147,0,26,2,45,2,194,255,236,0,148,1,33,254,151,253,128,254,163,2,104,3,138,255,106,254, +40,0,215,0,66,254,168,254,36,255,53,1,37,3,69,0,42,1,29,0,167,252,111,254,109,2,11,1,211,253,13,0, +145,0,247,255,10,255,93,0,185,1,139,255,55,2,1,0,254,253,83,1,25,0,47,0,251,255,145,254,9,255,167,1, +14,2,240,255,93,253,110,251,57,1,148,2,210,0,148,2,160,0,90,0,88,255,61,254,104,253,2,254,45,1,168,0, +107,1,144,1,145,254,7,252,62,255,229,2,75,0,96,0,111,254,79,253,108,1,99,255,137,252,228,0,133,3,69,0, +161,255,78,0,222,0,66,1,220,255,153,0,74,0,139,255,136,0,111,255,151,252,58,0,57,4,107,0,56,255,225,253, +221,255,223,2,6,254,96,254,160,1,29,0,227,250,13,254,170,5,224,1,75,255,106,255,68,0,136,0,144,255,65,1, +197,254,133,1,207,1,181,250,249,254,145,3,42,0,135,255,40,2,152,0,219,252,214,253,244,1,74,4,140,1,214,254, +232,255,54,0,255,253,25,254,112,0,234,255,126,255,118,0,90,0,84,255,154,0,49,2,85,255,148,252,193,251,23,255, +94,3,26,1,230,254,146,1,38,4,73,0,183,253,125,255,144,254,145,2,245,3,150,253,237,252,61,0,60,1,139,253, +41,254,161,2,112,255,58,255,238,255,156,252,146,255,165,1,204,255,95,0,180,0,180,0,215,0,227,253,109,254,154,2, +65,0,202,254,62,0,197,255,90,0,97,254,131,251,102,253,223,3,13,6,98,2,121,0,49,255,165,0,170,0,13,254, +57,254,180,254,173,0,26,1,88,0,37,0,246,254,169,254,243,255,106,2,245,0,72,255,30,255,239,254,22,1,118,0, +243,254,41,254,68,255,110,1,22,1,238,1,103,1,121,255,72,255,255,0,85,0,20,255,157,2,171,255,129,252,103,2, +69,2,214,252,59,254,213,2,102,2,145,254,4,253,75,0,81,2,203,255,133,255,132,255,188,254,118,0,122,0,81,1, +42,3,181,254,108,252,14,0,79,2,211,0,138,250,176,252,128,3,50,2,16,2,185,0,17,0,252,255,23,252,27,254, +5,1,213,0,131,0,40,0,77,0,104,255,140,254,136,253,227,255,40,4,199,1,170,254,128,1,170,1,101,254,110,253, +231,254,142,1,109,255,124,255,58,2,155,255,138,0,181,1,105,0,210,255,214,253,128,254,130,1,177,2,0,0,210,255, +94,1,190,255,252,0,6,2,168,254,216,252,217,254,75,255,212,255,141,1,227,1,196,1,162,255,47,0,120,0,84,0, +176,0,244,252,60,0,13,3,5,255,92,253,70,254,189,0,1,0,47,1,244,0,245,253,31,1,155,255,84,253,149,0, +127,0,117,0,157,1,241,0,132,255,162,253,194,255,58,4,65,1,172,253,237,255,189,255,33,0,9,3,172,0,108,254, +139,0,243,0,37,1,225,0,22,255,172,254,251,255,156,1,177,255,172,254,254,254,178,254,169,255,160,254,19,0,117,1, +55,1,2,0,248,251,167,254,121,2,198,2,133,1,113,255,31,2,95,2,237,255,192,254,179,253,180,254,35,0,201,0, +219,255,22,0,40,1,130,255,66,255,118,1,248,254,143,250,224,252,86,0,30,1,136,0,227,254,73,255,101,2,123,4, +208,0,55,255,181,0,123,255,50,1,140,1,216,255,52,1,179,1,128,0,33,255,109,254,191,253,207,254,6,1,80,1, +63,0,130,253,227,253,172,1,106,1,28,254,219,253,202,1,171,3,140,1,109,255,25,255,85,255,181,253,85,255,155,2, +94,0,162,255,169,1,183,255,102,253,117,255,118,0,209,0,83,3,61,255,210,250,115,253,64,0,88,0,73,255,188,2, +60,3,31,255,144,255,83,0,1,2,2,2,138,253,144,252,232,0,88,4,129,1,50,253,250,253,196,255,51,255,68,1, +30,0,24,253,71,253,190,251,61,1,250,2,189,0,217,2,120,254,252,0,232,253,224,245,191,252,10,255,205,255,253,0, +92,1,179,6,238,4,83,1,121,2,186,1,238,253,131,254,241,1,30,1,142,255,138,255,119,1,162,1,101,254,114,253, +17,0,60,255,9,252,236,254,0,2,50,0,101,253,164,0,167,3,86,254,194,253,157,0,182,0,131,0,105,254,230,254, +203,2,58,2,41,254,172,255,203,0,224,255,229,255,87,253,114,255,136,1,162,255,13,1,41,3,191,255,62,252,36,1, +232,2,167,255,219,254,103,255,221,255,177,253,169,0,172,3,238,255,90,254,162,254,142,255,254,255,125,255,147,255,83,255, +169,254,57,254,0,255,37,0,33,1,225,0,148,0,32,0,143,254,96,255,247,1,19,1,27,254,216,0,223,2,17,0, +241,254,74,255,20,1,230,255,142,255,51,2,112,0,90,0,124,0,159,253,56,254,146,0,131,0,22,255,164,253,42,254, +101,1,148,0,151,254,36,0,37,1,76,0,113,253,173,254,252,0,64,1,224,2,61,0,13,254,13,255,102,0,218,0, +222,255,28,1,230,254,200,253,56,1,107,0,139,255,114,0,203,254,230,251,95,255,85,3,114,255,145,254,206,255,59,0, +28,1,39,1,48,3,209,1,109,255,200,254,9,255,161,1,61,1,71,255,104,254,47,1,1,2,235,253,141,254,152,254, +66,254,3,0,111,255,87,0,199,1,148,1,92,0,33,1,247,1,149,254,254,252,78,0,159,1,225,254,69,255,178,0, +19,0,139,254,85,255,178,4,178,2,246,253,212,254,133,255,44,1,76,1,216,255,177,254,59,254,177,254,212,254,207,254, +57,255,64,2,219,1,113,1,40,2,149,253,28,253,232,254,83,1,217,1,239,253,128,0,97,0,233,254,148,1,72,254, +122,255,12,2,94,255,221,0,132,253,14,253,122,4,95,0,51,253,63,0,13,255,150,0,212,255,208,254,137,2,179,1, +191,254,47,255,164,0,144,254,158,253,25,2,38,3,158,0,109,255,14,255,251,255,134,0,239,0,195,255,187,253,124,0, +103,0,39,253,190,0,82,3,48,0,160,255,120,0,131,254,79,255,98,1,40,0,21,255,85,255,186,1,55,0,237,252, +165,255,63,0,172,255,176,0,83,1,155,2,29,1,9,252,129,249,247,0,46,7,54,3,11,255,3,255,73,0,187,254, +162,255,153,2,193,255,174,253,184,254,103,0,198,1,218,255,219,254,245,0,106,1,82,255,10,254,156,0,124,2,241,255, +198,255,165,0,54,255,181,255,21,1,21,1,172,0,138,255,221,253,80,255,43,255,176,254,115,1,110,255,13,0,194,1, +174,0,220,0,233,253,237,0,152,2,146,255,110,0,226,252,247,254,92,4,102,0,71,255,82,1,51,255,136,255,245,0, +150,255,115,0,71,255,177,253,247,255,41,1,171,0,151,254,120,255,148,1,23,0,51,255,95,0,106,1,91,1,180,0, +35,255,15,0,214,0,250,254,12,255,185,0,97,2,53,0,202,255,147,1,35,0,119,255,118,255,182,0,161,254,107,254, +6,2,166,255,59,255,228,0,193,0,50,0,166,0,244,0,221,254,20,0,214,0,75,1,153,0,53,253,139,254,237,0, +194,0,65,254,3,254,184,255,196,255,0,0,208,255,236,0,190,0,127,0,189,255,122,254,219,0,7,2,146,1,72,255, +58,255,49,0,232,254,86,0,190,0,254,0,70,0,195,0,228,254,129,249,184,255,198,3,163,1,123,2,143,255,203,254, +61,0,86,0,40,0,37,255,89,254,149,254,176,2,215,5,186,1,219,251,237,253,162,2,197,0,188,254,75,255,247,254, +205,254,229,255,239,255,64,255,71,1,20,2,104,255,55,254,190,255,173,0,181,255,50,0,153,1,206,255,87,255,74,1, +214,255,40,255,179,255,162,254,224,255,233,0,104,0,10,1,85,1,152,254,195,252,207,255,44,0,211,255,148,2,61,1, +151,0,12,1,159,253,191,253,250,255,44,0,77,1,248,0,122,254,251,253,121,1,79,2,235,254,91,255,6,0,75,0, +162,1,121,255,146,255,128,0,127,255,220,0,228,0,184,255,135,255,240,255,1,0,234,253,105,253,53,0,150,2,236,0, +37,254,171,255,94,1,142,0,204,255,244,254,75,255,248,255,244,254,160,255,72,1,88,0,101,0,33,1,22,0,17,255, +204,253,138,255,135,1,34,0,137,0,176,0,119,0,42,255,240,253,193,0,251,255,7,254,150,254,233,255,206,0,58,254, +170,255,155,1,173,0,148,1,236,0,11,1,225,255,1,255,3,0,100,255,152,2,206,0,137,251,85,255,102,255,143,253, +32,3,60,3,218,255,234,255,213,254,150,254,242,255,45,2,95,1,68,254,120,255,215,255,26,0,251,1,210,1,136,1, +201,0,20,255,176,253,193,255,56,1,111,255,117,255,174,255,208,1,9,3,201,254,197,252,251,254,168,255,58,255,87,0, +199,255,220,254,108,255,19,1,12,3,135,0,45,254,204,254,210,255,77,1,102,1,144,0,202,254,17,254,13,254,80,254, +13,1,190,1,72,0,134,1,1,2,111,255,16,1,105,1,45,253,229,253,143,255,143,0,60,0,154,0,48,3,47,0, +250,255,214,1,32,255,107,252,146,252,28,1,147,2,34,2,61,1,166,255,16,1,204,254,27,254,179,1,195,2,58,1, +30,255,157,255,14,255,198,254,240,255,188,254,189,255,24,1,138,255,2,0,122,1,182,0,118,255,3,254,87,255,109,2, +218,1,3,1,231,254,70,254,114,2,184,0,125,253,114,1,237,2,105,255,87,255,132,0,186,255,66,1,205,0,112,254, +98,1,233,2,189,254,228,251,117,253,133,1,170,1,36,253,252,251,68,255,70,3,187,3,116,0,77,255,78,1,5,2, +171,255,251,255,189,0,43,255,118,1,134,1,72,254,92,255,193,0,55,255,107,255,109,0,6,254,126,254,43,1,36,0, +26,255,44,0,48,1,103,0,175,0,135,255,5,254,64,1,25,2,236,255,162,254,71,255,187,255,124,255,209,0,150,254, +45,253,202,254,40,0,64,2,60,1,44,0,238,255,122,255,64,1,187,1,161,255,169,254,84,0,243,255,103,254,194,254, +75,0,244,1,175,255,146,254,117,1,92,1,142,255,253,254,140,254,168,255,220,0,222,255,56,1,71,2,178,255,175,255, +182,255,155,254,136,0,29,0,179,253,209,254,79,0,110,0,250,255,152,0,253,1,68,0,45,255,56,255,12,0,237,2, +192,0,113,253,132,254,198,255,58,0,126,0,12,1,79,0,114,254,16,255,35,1,166,255,201,254,30,1,86,255,25,254, +58,1,60,1,72,255,164,0,177,255,249,253,163,2,156,2,203,253,49,253,156,0,33,4,92,0,59,254,79,254,213,251, +43,255,155,2,176,1,239,254,17,254,178,0,178,1,182,255,25,253,197,254,17,2,66,2,183,0,156,255,54,0,166,255, +0,253,167,253,127,2,230,1,198,255,30,1,153,255,222,254,80,254,47,255,245,0,21,0,212,255,72,254,130,0,142,2, +46,255,175,254,29,0,55,0,49,255,204,254,248,254,120,0,106,0,80,255,85,2,248,1,130,255,27,254,150,253,33,0, +177,0,115,255,44,255,166,0,92,0,204,0,217,0,76,253,216,255,49,1,141,255,74,0,205,255,45,0,185,255,219,1, +222,3,78,1,197,254,37,254,254,255,82,1,27,2,251,255,139,253,30,254,137,0,40,3,37,255,43,255,162,2,61,255, +210,253,96,255,95,1,70,1,27,0,242,255,48,255,11,0,49,255,55,254,95,0,154,1,179,255,212,254,215,0,208,255, +57,255,157,2,63,1,25,252,34,254,29,1,20,255,84,0,115,0,87,254,189,255,0,2,183,2,31,1,154,255,55,254, +78,254,116,0,141,1,142,255,212,250,191,253,142,4,110,2,84,0,54,2,245,255,180,253,7,255,26,1,36,3,36,1, +172,254,239,254,50,255,71,1,81,1,59,255,41,255,219,1,96,2,170,254,166,254,241,254,105,255,236,0,19,255,105,255, +54,1,180,0,52,254,34,255,190,0,246,254,220,0,161,1,0,1,100,0,181,254,78,255,236,254,59,0,41,1,75,1, +89,3,234,0,181,251,152,251,81,1,156,1,139,254,10,1,135,1,179,255,65,0,134,0,173,254,30,255,255,255,60,254, +30,0,109,1,0,0,226,0,244,0,1,255,133,255,247,0,63,255,69,0,156,0,23,254,230,0,207,1,126,255,17,254, +42,253,118,0,72,2,244,255,207,254,22,0,58,1,196,0,184,0,1,0,238,254,50,254,91,254,197,0,205,1,103,1, +99,0,222,254,59,255,143,0,255,255,93,254,156,255,35,0,96,0,17,2,231,255,169,254,184,255,101,0,64,0,72,255, +38,1,65,1,60,255,171,254,253,254,129,255,127,254,78,255,76,0,49,0,77,1,128,0,118,255,220,0,140,1,75,255, +171,253,199,254,243,0,241,1,24,0,67,255,176,0,186,255,163,253,218,255,148,1,47,0,98,0,216,255,241,255,28,255, +93,251,85,252,68,1,8,5,165,4,173,0,182,253,117,254,172,255,185,254,46,0,181,1,85,1,254,0,156,255,129,255, +78,0,161,0,69,0,118,0,126,0,138,255,103,0,74,255,238,255,191,2,90,255,106,254,108,0,185,254,40,255,215,255, +103,255,187,1,180,1,254,254,31,255,233,255,248,255,27,0,48,255,188,254,127,255,212,255,2,0,37,0,204,255,72,0, +149,255,76,0,245,3,194,1,240,254,137,0,193,0,159,0,174,254,12,254,77,0,115,255,54,255,31,1,94,0,83,254, +175,255,20,2,182,0,73,255,1,0,47,255,245,254,32,1,124,1,160,0,253,254,230,252,203,254,139,1,146,0,64,0, +41,1,1,0,204,0,252,0,62,255,161,0,184,0,56,0,182,254,151,253,79,0,198,254,39,254,162,1,247,1,245,0, +169,0,152,0,87,0,240,255,198,253,102,254,107,2,224,0,186,254,143,0,75,1,2,0,219,254,52,0,208,0,251,253, +67,254,168,2,54,3,213,255,169,254,43,255,208,254,215,0,220,1,38,255,117,0,189,1,0,255,229,254,59,0,183,0, +53,1,247,0,38,0,192,254,190,253,156,255,105,1,214,255,196,254,94,255,156,255,119,1,191,1,201,254,100,255,24,255, +219,253,76,0,227,0,180,1,187,0,145,255,151,255,147,253,225,0,26,2,27,254,129,252,37,0,89,4,43,0,177,253, +69,255,87,0,25,1,81,1,95,2,65,254,79,253,29,0,11,0,241,1,121,0,18,0,215,1,13,255,158,254,135,0, +9,255,213,254,13,2,98,0,216,253,136,254,169,253,107,255,187,0,121,0,140,2,228,1,33,255,170,253,164,255,54,1, +245,254,84,255,192,1,86,2,15,1,166,0,106,255,0,254,99,1,76,0,186,253,29,255,236,255,45,2,91,0,133,255, +239,0,35,255,118,0,146,0,40,255,24,255,134,254,254,255,40,2,177,0,90,254,145,255,169,255,67,255,138,255,155,255, +166,0,166,0,210,1,136,0,21,254,210,255,102,1,23,1,243,254,7,255,82,0,107,0,60,1,247,255,244,255,115,0, +100,255,39,0,237,255,13,0,61,255,199,254,233,2,255,1,143,254,138,254,77,255,144,0,18,254,199,254,228,2,255,1, +82,255,102,253,216,254,185,0,97,1,178,0,110,255,38,0,12,255,151,255,110,0,219,0,219,0,157,254,200,0,132,1, +129,0,224,254,0,253,38,0,200,0,161,0,82,0,197,255,113,0,43,255,102,0,187,0,199,0,156,0,15,0,124,2, +64,0,151,253,69,255,200,0,160,0,27,0,57,255,96,254,63,255,135,253,7,255,3,2,187,1,148,2,69,0,196,255, +251,255,80,255,4,0,205,1,165,3,215,253,169,253,117,255,6,255,22,3,227,253,137,253,47,2,185,0,123,1,130,1, +161,1,179,255,193,254,164,255,84,254,59,0,20,2,205,0,36,255,109,255,157,0,158,0,164,254,185,253,15,254,213,253, +95,0,194,0,150,255,137,0,134,1,197,0,54,0,238,1,35,0,228,0,130,2,88,255,112,255,14,1,129,0,214,254, +23,255,155,254,113,255,175,1,143,0,25,0,116,254,245,254,166,255,72,255,255,0,71,0,148,255,87,254,66,0,75,1, +2,255,26,0,93,0,41,1,232,0,79,255,199,254,141,0,87,2,81,0,188,255,122,254,255,255,82,2,7,255,49,253, +179,253,96,0,172,1,125,0,8,1,179,1,34,1,149,255,25,255,193,255,28,255,245,253,133,254,98,0,207,2,39,1, +18,254,142,255,136,0,212,0,200,254,141,253,181,255,118,255,76,0,123,1,42,2,220,1,199,0,188,255,244,253,250,254, +33,254,218,254,118,2,58,2,23,1,48,255,82,255,253,0,30,0,222,254,32,255,194,255,64,255,127,255,237,255,109,0, +63,0,58,255,244,0,121,2,1,0,188,252,88,254,239,0,152,255,201,255,117,0,50,0,241,0,145,0,18,1,139,0, +145,255,154,255,252,252,36,254,246,0,202,1,224,1,109,254,134,255,212,1,31,1,109,0,236,253,72,255,150,255,40,255, +131,1,242,0,197,1,160,0,219,254,58,0,153,255,241,255,100,255,247,254,232,255,201,254,60,0,111,1,213,255,109,255, +110,255,134,255,88,0,103,1,229,0,132,254,22,253,177,254,248,1,253,1,132,254,125,254,147,0,62,0,178,1,98,1, +141,254,190,255,102,1,154,1,57,0,54,255,58,0,79,0,187,255,98,254,76,254,203,255,187,0,83,0,217,255,246,255, +99,254,177,254,112,0,218,0,54,1,19,1,142,255,100,254,4,0,57,0,196,255,73,0,34,255,228,253,35,255,241,1, +229,1,242,0,183,255,249,255,63,0,35,254,105,0,8,0,18,253,138,255,232,2,237,1,201,255,1,0,33,254,205,255, +93,1,25,255,245,254,112,254,189,1,91,3,6,1,192,255,245,253,181,253,235,255,133,2,197,0,193,255,74,255,187,254, +190,0,147,255,226,255,46,1,211,1,231,255,30,253,88,255,125,0,198,1,113,255,144,254,46,2,234,253,104,253,237,0, +158,0,71,2,150,1,135,255,59,0,66,1,193,255,225,252,80,254,232,0,121,1,150,0,253,254,127,0,190,0,213,255, +202,255,148,254,237,255,210,0,76,255,125,254,125,255,38,0,56,1,242,0,129,253,15,1,129,2,249,254,145,0,36,0, +63,255,227,255,164,0,22,255,214,254,131,1,150,255,107,0,86,0,66,254,181,255,14,0,170,0,122,254,80,254,108,1, +101,1,130,1,190,0,1,255,236,254,252,255,190,255,192,255,62,1,160,0,18,0,43,1,146,0,130,253,176,252,219,0, +250,3,103,2,127,255,106,253,130,254,232,0,244,255,157,255,236,255,56,254,191,255,44,2,104,0,17,0,143,0,27,255, +30,0,184,0,30,1,144,0,181,253,247,254,111,0,143,0,181,255,69,254,195,0,175,1,139,255,79,254,46,255,164,0, +81,1,78,1,222,254,240,253,195,255,105,0,241,0,94,1,189,255,11,255,15,255,147,254,216,0,5,0,27,254,66,1, +221,1,122,0,72,255,102,255,97,1,40,255,8,254,150,255,28,0,72,1,12,0,9,0,191,0,244,254,119,0,235,0, +70,255,77,0,176,255,180,254,119,0,169,255,112,255,184,1,94,0,32,0,228,254,10,254,92,0,75,253,50,254,205,1, +15,1,152,1,120,1,5,1,11,0,163,255,53,255,80,255,7,0,103,254,159,255,72,0,64,255,122,0,155,0,15,255, +68,255,241,0,94,1,62,1,1,0,86,0,15,253,46,251,89,1,154,255,226,0,77,5,31,1,191,1,136,1,214,255, +153,0,251,255,38,0,93,254,222,254,119,0,238,255,138,0,38,255,32,255,90,0,213,254,124,255,229,255,223,254,143,0, +115,1,56,1,62,0,109,253,89,254,32,1,44,1,5,2,5,1,39,255,94,0,207,0,199,0,156,255,211,255,136,0, +149,254,194,255,187,255,106,255,241,0,242,255,124,255,251,254,204,255,127,0,80,255,196,255,2,1,43,1,198,255,241,255, +32,0,220,255,40,1,4,0,19,255,17,0,78,0,88,1,179,255,40,253,71,0,13,2,224,0,57,0,169,255,219,255, +100,254,185,254,98,0,173,255,11,255,99,1,219,2,214,254,229,254,139,0,8,0,82,1,148,0,237,0,68,0,78,255, +58,0,219,255,178,255,75,255,119,0,170,0,60,0,23,0,198,253,52,254,217,0,205,1,157,0,179,255,246,254,206,254, +11,1,5,1,54,255,58,255,109,0,217,1,54,1,206,253,49,254,190,1,93,255,153,253,56,1,155,1,219,255,23,0, +0,1,131,1,127,255,242,254,28,1,154,255,234,253,111,255,155,0,82,0,95,1,220,1,144,255,153,255,52,255,98,254, +78,254,14,254,149,1,57,2,228,255,196,255,47,255,148,255,28,1,26,0,91,255,108,255,164,253,158,255,177,0,189,255, +232,255,231,254,0,2,228,1,73,0,75,0,109,253,223,254,162,255,246,255,30,1,147,0,116,1,226,255,79,254,32,254, +112,254,217,255,214,0,105,2,178,2,136,0,45,254,143,254,197,0,146,0,226,255,11,1,214,255,200,254,235,0,114,1, +92,0,161,255,168,255,249,255,9,0,74,255,63,0,99,1,4,255,81,255,213,254,123,254,222,0,229,255,203,0,12,1, +109,255,237,254,232,255,74,1,93,0,152,1,103,255,175,254,81,1,115,255,211,0,203,255,209,254,127,1,28,0,107,255, +56,254,95,255,46,2,53,0,68,255,140,0,119,0,56,255,29,0,9,0,105,254,42,255,243,255,228,1,126,0,225,253, +89,0,75,0,234,255,141,0,163,0,119,1,77,255,137,255,85,1,229,255,64,255,152,254,157,254,182,0,152,2,143,3, +48,1,4,253,241,251,11,253,147,0,96,4,222,2,201,255,48,0,10,0,145,254,0,0,6,255,170,253,46,0,77,1, +80,2,118,0,90,255,249,0,225,254,179,254,146,255,160,254,135,255,154,1,173,255,6,255,51,2,70,255,78,254,10,0, +62,0,209,1,205,255,110,255,42,0,114,0,69,1,80,0,251,0,200,255,241,253,37,254,72,0,72,2,207,254,227,254, +92,2,233,0,41,0,186,255,235,255,254,0,33,255,108,0,39,1,55,254,227,253,241,254,120,0,199,0,249,0,95,1, +31,0,233,254,192,254,78,0,236,255,32,255,154,0,72,2,172,2,93,0,120,254,56,255,216,255,253,254,24,0,243,0, +128,0,13,0,6,0,204,1,51,255,147,254,184,0,81,255,22,254,133,253,70,1,25,1,174,254,18,1,101,0,148,255, +112,0,99,1,31,0,111,255,192,255,31,255,99,0,34,0,243,255,255,253,127,254,175,2,8,3,221,1,47,255,233,255, +202,0,146,254,115,253,54,254,11,2,209,1,187,255,98,255,162,255,214,255,11,255,14,1,52,1,62,255,30,255,134,0, +169,1,240,255,87,255,40,0,242,255,198,255,111,255,4,0,107,0,201,254,6,0,47,0,154,254,23,0,125,254,154,255, +55,0,201,253,235,0,119,2,75,2,148,255,203,254,98,1,175,0,138,0,98,253,30,254,255,0,105,255,42,0,213,254, +210,255,159,2,193,0,168,254,200,253,127,255,50,2,251,0,215,253,153,255,25,2,156,1,22,0,7,253,31,253,250,255, +212,2,238,2,60,1,60,0,44,253,174,254,185,0,80,254,247,255,103,1,76,255,27,254,186,255,208,1,45,1,206,255, +237,254,157,254,76,255,215,255,78,255,101,0,173,1,135,0,51,0,56,255,194,254,161,0,91,1,94,0,5,255,227,254, +182,254,123,255,48,1,255,255,157,253,77,255,6,2,225,255,44,255,61,1,251,1,171,255,188,253,191,1,32,0,104,253, +51,2,14,2,9,0,70,0,252,255,13,255,76,253,42,255,78,2,189,1,44,255,30,254,63,0,76,1,16,255,222,253, +26,255,75,1,165,255,230,252,77,255,165,1,228,2,113,0,133,253,254,255,143,0,103,0,29,0,43,0,154,0,185,254, +141,255,15,1,232,0,141,0,18,0,122,254,140,254,192,1,8,2,38,0,117,254,59,254,189,255,159,0,2,0,72,255, +199,254,152,254,87,0,209,255,132,0,146,1,253,255,4,1,6,1,50,0,150,252,139,253,128,3,45,1,196,255,227,0, +116,0,29,255,153,254,204,255,107,254,140,254,31,0,240,1,44,1,231,254,244,254,75,255,209,0,149,0,125,1,91,1, +82,255,77,255,174,254,74,0,54,0,33,1,191,0,196,251,111,255,234,3,55,1,45,255,79,255,44,255,42,254,133,253, +206,254,236,0,232,0,51,1,84,1,174,1,2,1,28,253,240,254,239,0,224,253,13,255,247,0,184,0,250,0,25,1, +225,0,220,254,237,253,108,255,24,1,56,2,135,255,164,254,154,1,37,1,126,0,0,255,99,253,150,0,243,1,222,255, +133,254,88,255,11,2,83,1,216,254,97,0,197,0,132,255,66,0,70,0,123,0,128,0,166,0,196,0,157,254,39,254, +170,255,25,2,216,2,141,0,119,255,166,254,20,255,87,254,170,253,217,1,162,1,159,255,172,255,97,254,193,0,53,1, +193,255,182,0,174,255,141,255,188,255,227,255,70,1,70,255,135,253,240,255,134,255,86,255,189,2,240,255,176,253,111,0, +10,1,157,255,37,253,13,255,42,0,14,1,34,4,165,255,241,253,171,0,195,0,123,0,171,255,98,1,88,1,25,255, +229,254,211,255,183,0,49,0,225,254,232,253,138,255,188,254,121,254,120,3,248,2,52,0,186,255,228,254,148,254,30,254, +136,255,15,0,204,255,216,0,223,0,202,255,29,255,204,1,139,1,55,254,98,255,112,0,79,0,204,255,82,255,144,0, +202,0,207,0,34,0,18,0,253,0,1,255,44,255,37,1,209,255,51,255,182,255,12,0,143,0,210,0,186,0,207,252, +70,251,77,0,4,2,73,1,115,1,75,0,165,255,21,255,0,255,107,1,88,2,244,255,138,254,151,254,117,255,37,255, +63,255,35,1,235,255,132,0,176,0,44,255,177,1,183,0,208,254,1,0,199,0,86,0,120,0,90,1,94,254,100,253, +17,255,240,255,177,1,230,0,62,255,213,255,156,0,60,255,162,255,121,1,28,2,245,0,187,253,90,255,120,1,219,1, +217,254,133,249,127,253,161,0,221,1,86,3,70,0,2,1,178,1,192,255,104,254,240,254,63,255,209,255,27,2,23,255, +111,254,7,255,182,253,245,1,208,2,86,1,207,0,18,255,241,254,98,255,41,0,193,254,211,254,245,0,165,1,188,1, +140,255,149,0,194,0,122,254,214,255,137,254,201,255,11,2,0,255,76,254,254,254,114,0,107,1,26,1,217,0,44,255, +21,0,172,1,113,1,175,0,87,255,154,255,72,0,7,255,72,253,156,253,206,255,61,2,175,1,32,0,46,255,56,253, +169,0,88,2,92,255,195,255,176,253,138,255,187,4,193,1,198,253,212,253,180,255,17,1,50,1,38,0,234,255,66,0, +224,254,134,0,195,0,161,254,217,255,227,255,210,255,81,0,119,0,228,255,146,254,194,255,144,255,19,255,115,255,245,255, +64,1,4,0,57,1,43,2,36,0,33,0,200,254,178,253,135,255,238,1,58,0,132,254,149,0,121,255,9,0,54,1, +245,255,205,0,187,0,102,0,204,254,105,254,103,0,220,0,215,0,195,255,12,0,115,255,104,254,210,254,188,254,188,0, +202,0,158,0,128,0,107,255,4,1,21,0,101,255,45,0,195,255,92,255,29,255,230,255,203,255,74,0,145,255,181,255, +112,1,152,255,119,0,17,1,77,254,53,254,131,0,138,2,104,1,117,255,144,255,95,0,223,255,32,0,100,255,169,252, +41,254,189,255,4,1,133,2,193,0,193,255,188,255,89,0,111,0,44,0,89,254,152,252,188,255,75,1,2,1,223,255, +20,254,67,255,211,0,69,1,39,255,188,254,205,1,106,2,219,255,185,254,66,1,216,1,59,0,143,255,178,255,211,255, +41,255,163,255,25,0,109,255,243,255,187,1,206,255,153,253,101,0,50,2,253,1,195,0,119,255,236,253,32,254,119,1, +14,1,37,0,160,255,60,255,155,255,36,255,48,1,219,255,86,255,70,1,80,0,60,0,119,255,231,0,38,1,13,255, +193,254,18,255,223,1,99,1,11,0,102,0,12,255,248,255,241,0,31,255,47,254,223,0,197,0,210,254,145,255,250,255, +233,1,20,1,173,254,77,255,151,255,241,255,205,255,240,255,44,0,138,0,12,1,233,0,248,0,146,255,247,254,48,255, +3,0,121,1,242,0,140,0,215,255,215,254,248,254,15,0,220,0,60,0,194,0,85,0,170,254,78,255,19,0,27,1, +144,1,190,255,98,0,252,0,231,255,35,255,233,252,218,255,203,2,15,0,248,255,1,0,95,255,67,254,71,255,206,2, +55,0,157,254,176,1,41,2,97,0,247,0,219,0,226,253,80,255,186,254,178,251,76,0,21,4,82,1,149,0,140,2, +100,0,16,255,106,0,239,255,176,255,174,255,204,255,154,255,209,255,254,255,231,0,28,2,155,255,5,255,157,255,26,0, +184,1,51,0,179,254,132,255,40,1,230,255,228,254,61,255,171,254,12,1,110,0,157,0,160,1,18,254,40,255,92,0, +39,255,142,254,214,254,143,0,50,255,168,255,214,1,20,1,188,0,178,0,234,255,239,255,85,1,142,0,95,254,207,254, +119,255,163,255,1,1,239,0,185,255,113,0,240,255,58,254,126,254,150,255,144,1,15,2,161,254,80,252,200,254,236,1, +238,2,133,2,141,0,54,255,19,0,96,0,90,255,210,255,11,0,207,254,46,254,44,255,60,2,146,1,159,255,6,0, +229,254,183,0,165,0,221,253,232,254,144,255,216,0,163,0,156,255,245,0,221,255,53,254,255,254,14,1,148,0,84,255, +142,0,233,0,50,0,3,255,42,0,1,2,39,1,254,255,150,253,220,253,245,255,37,0,247,1,85,0,217,253,9,0, +205,255,172,255,61,0,24,255,129,1,52,2,158,255,108,255,23,0,165,0,88,0,211,255,207,255,47,0,132,1,237,0, +196,254,85,254,4,255,185,254,51,255,79,0,224,254,134,255,85,1,188,255,76,0,251,0,81,0,249,255,92,254,34,1, +123,1,188,254,219,0,250,255,240,255,73,0,252,254,170,0,94,255,98,0,5,1,116,254,118,255,124,0,24,2,103,1, +235,255,202,0,187,255,217,253,193,253,192,0,65,1,101,0,215,255,149,253,158,254,159,0,9,2,52,1,210,255,43,0, +40,255,126,0,37,0,12,255,246,0,151,0,225,254,13,254,71,0,35,1,128,255,137,0,198,1,32,0,182,252,238,254, +224,2,65,1,57,255,189,254,118,0,144,1,249,255,220,254,157,254,170,255,220,0,10,0,135,255,205,0,37,255,158,253, +32,0,11,1,154,255,4,253,255,253,27,2,140,1,230,0,119,1,44,255,6,255,31,1,162,0,68,0,169,0,165,255, +218,255,214,255,18,255,77,255,120,255,85,0,241,0,44,1,206,255,141,254,205,255,29,254,227,254,247,1,94,0,7,0, +193,254,84,255,121,2,204,255,4,255,197,0,236,1,78,1,61,253,172,254,36,1,24,0,197,255,103,254,151,255,170,1, +205,0,70,0,47,255,118,254,223,0,106,2,87,255,248,252,33,255,227,0,84,0,131,255,180,255,218,0,205,1,75,1, +231,254,219,253,59,255,23,0,224,255,202,255,87,255,23,0,226,1,89,0,228,255,198,0,202,254,197,253,106,254,200,0, +131,1,74,0,99,0,147,0,222,255,228,251,56,253,1,3,49,2,116,0,4,0,17,255,166,255,201,1,131,2,227,0, +216,254,217,252,236,254,112,2,144,1,111,255,39,255,211,255,5,0,103,255,90,255,163,0,215,0,246,0,81,0,102,254, +144,255,197,0,22,1,152,0,31,254,207,254,234,255,90,255,96,0,242,255,154,254,92,255,103,1,58,1,25,255,2,0, +142,0,78,0,59,1,154,0,86,0,173,255,119,255,187,255,46,255,17,0,159,0,48,255,59,253,219,255,46,2,102,0, +58,0,149,254,210,255,134,3,117,0,26,254,13,0,12,1,137,0,87,254,189,254,108,1,134,0,189,0,201,1,241,255, +123,254,84,254,242,255,158,0,44,0,151,0,29,0,26,255,207,254,62,0,170,0,9,255,193,255,209,0,86,255,247,254, +238,255,187,1,152,1,153,254,252,254,83,254,109,253,134,0,193,1,99,1,205,0,91,1,12,1,80,0,193,0,73,255, +161,0,37,1,59,255,211,0,132,255,92,253,29,0,42,1,26,0,135,255,186,254,186,255,135,1,169,1,90,255,142,254, +140,1,8,2,29,255,218,253,152,254,75,0,192,2,93,1,240,254,62,0,186,0,155,255,167,254,133,0,244,0,61,255, +89,1,197,1,117,255,77,254,186,254,244,255,204,0,132,0,66,0,199,254,186,254,6,1,110,252,8,255,207,0,97,249, +84,2,227,5,245,0,186,3,91,1,235,254,137,254,207,0,178,0,111,253,19,255,159,0,162,1,218,0,193,255,229,254, +233,255,70,2,122,255,5,255,33,1,4,1,164,255,233,254,244,0,66,0,62,253,191,254,221,1,43,0,41,255,163,0, +113,255,227,254,83,0,107,1,105,0,13,0,253,255,141,255,58,2,116,0,28,254,128,255,26,254,26,1,89,3,128,254, +201,254,231,1,227,255,169,255,177,0,113,254,203,255,4,1,55,255,87,0,17,0,243,254,243,255,204,255,172,255,233,0, +34,1,41,255,45,254,239,0,148,2,133,0,35,0,119,0,218,255,235,255,242,254,201,254,157,255,169,255,58,0,242,255, +124,255,204,0,94,0,152,255,56,255,197,253,45,0,44,2,19,2,216,1,120,255,89,255,245,255,134,255,177,254,218,255, +26,1,13,254,219,255,16,2,142,255,82,255,13,255,247,255,150,1,252,0,181,255,202,254,105,0,101,1,105,255,231,253, +49,255,151,0,206,254,189,254,157,255,37,0,253,1,220,255,77,255,16,1,41,0,123,255,77,0,162,2,230,255,125,254, +242,1,25,0,193,254,205,255,156,0,157,1,50,255,18,254,132,0,30,0,179,254,1,253,156,253,66,2,141,1,213,0, +16,0,249,254,143,1,9,0,91,0,252,255,3,255,0,1,159,0,83,0,142,255,99,1,23,1,23,255,127,255,215,255, +4,1,211,255,41,0,248,255,180,255,139,255,216,253,172,255,116,0,43,0,133,253,87,254,123,2,6,1,200,1,211,1, +173,254,185,254,106,255,171,254,189,0,164,1,159,254,151,255,96,1,173,1,206,0,42,254,158,254,146,0,66,0,94,0, +209,1,37,0,179,254,187,255,254,0,72,1,180,255,75,0,177,0,25,255,101,255,75,0,249,254,26,254,125,0,29,2, +19,1,208,254,127,254,6,1,8,1,222,255,49,0,44,255,251,255,203,255,41,254,122,1,11,1,28,255,87,0,214,255, +175,255,89,255,64,1,190,0,212,254,10,1,195,255,119,254,154,255,115,1,149,2,193,255,242,254,43,255,6,254,82,0, +229,0,80,255,68,0,194,254,148,254,17,2,171,1,56,254,150,253,110,0,55,3,83,3,86,0,98,255,242,255,226,254, +193,254,84,1,177,2,236,254,248,254,194,0,100,1,53,0,148,251,226,255,138,2,250,255,19,0,169,255,134,2,84,1, +139,253,2,254,181,255,74,1,34,1,8,1,137,0,214,255,36,0,224,255,184,255,158,0,23,0,163,255,250,255,139,0, +221,0,3,253,26,253,165,0,132,1,3,2,234,0,36,0,87,255,199,0,83,0,110,254,214,0,221,255,222,254,166,255, +67,1,234,2,43,0,179,254,164,255,34,0,6,0,244,0,51,1,196,255,11,0,58,0,103,0,190,0,239,255,253,254, +107,254,195,254,64,0,146,0,112,254,83,255,206,1,248,255,61,255,184,0,142,0,142,0,136,255,130,255,68,0,242,254, +74,1,47,2,71,255,247,255,48,0,225,254,62,254,236,254,201,0,136,0,15,0,98,0,101,1,245,0,139,253,42,254, +173,255,52,255,21,1,82,0,96,255,31,1,112,0,144,255,166,1,250,1,204,253,21,253,93,255,110,0,170,1,52,255, +107,254,99,1,81,1,202,255,27,254,166,255,129,1,101,255,29,0,169,0,96,0,231,0,76,254,146,254,138,0,94,0, +245,0,79,1,1,255,18,254,210,1,55,1,34,255,78,255,134,254,155,0,107,0,182,255,248,255,173,255,169,1,10,0, +98,254,159,255,127,0,226,0,210,255,216,255,55,0,100,0,251,255,60,254,55,254,23,0,92,1,43,255,166,254,148,0, +62,255,228,255,83,1,224,0,111,255,47,255,205,1,243,255,67,0,22,1,68,254,124,255,17,0,173,1,220,0,13,255, +174,0,150,254,54,253,77,255,214,1,23,0,183,254,230,255,80,255,6,255,204,255,127,3,113,2,89,255,143,254,0,253, +163,254,137,0,136,1,185,255,170,254,77,255,123,0,9,2,252,255,178,0,178,0,143,255,18,0,31,0,82,1,116,1, +170,0,85,255,172,255,19,255,214,254,46,255,225,253,213,255,118,0,41,0,68,1,181,0,211,254,38,255,6,0,179,255, +120,0,188,0,151,1,154,255,202,255,94,1,191,255,90,255,96,254,72,1,123,0,82,255,235,1,42,0,128,255,31,254, +160,254,147,255,245,0,67,0,208,253,203,0,113,255,120,255,91,0,123,255,101,0,148,255,164,0,135,0,91,254,112,253, +215,3,107,4,23,253,56,255,108,255,178,254,250,255,126,1,106,3,115,255,220,255,151,1,220,254,21,254,29,255,165,0, +62,1,67,0,189,254,51,0,235,1,111,0,139,255,12,255,235,253,10,255,165,0,253,255,196,0,239,0,174,255,207,1, +151,0,159,253,1,1,85,1,242,254,10,0,48,255,143,255,137,0,17,254,2,255,107,2,112,1,104,255,65,0,112,255, +229,254,254,0,157,0,127,0,174,255,251,253,30,255,134,254,111,0,216,2,33,0,238,254,87,0,214,1,234,255,111,255, +127,0,71,255,50,1,212,1,15,0,20,254,112,255,12,1,155,254,167,255,248,255,89,0,126,0,233,255,60,1,140,255, +49,254,210,253,21,1,201,1,145,254,20,0,171,0,70,1,217,1,25,1,119,255,77,254,32,255,34,0,86,0,72,254, +79,0,125,1,81,255,97,255,75,255,44,255,231,254,126,0,95,0,242,255,196,1,153,1,43,0,229,255,83,1,68,255, +249,254,42,255,143,254,220,1,55,0,131,255,32,1,229,255,134,255,145,255,252,255,63,255,220,254,174,0,211,2,124,2, +216,0,152,254,176,253,33,0,3,0,227,254,141,253,69,254,139,2,162,2,23,255,164,253,5,0,82,0,252,255,243,0, +42,0,136,0,112,0,125,0,18,0,204,255,178,255,95,255,3,1,96,255,180,255,158,255,81,251,7,253,129,1,63,2, +17,0,237,0,6,2,48,1,111,1,129,0,14,1,68,254,43,254,83,2,31,255,126,254,55,1,74,1,214,0,95,0, +69,0,40,255,204,254,231,254,56,255,201,255,51,255,65,0,20,3,81,2,113,255,160,254,234,255,167,0,62,255,55,1, +197,255,72,253,88,0,89,0,64,1,173,0,172,0,247,0,201,254,253,0,124,0,48,0,32,0,247,255,199,0,180,255, +159,255,169,253,125,0,200,1,35,254,163,254,112,0,213,1,151,1,35,0,207,254,108,1,7,0,15,254,246,0,22,255, +117,1,170,1,18,255,177,0,18,254,251,253,131,0,23,0,218,255,246,0,46,1,54,0,85,255,61,1,58,1,1,255, +90,0,230,253,192,254,205,1,20,0,230,255,80,254,138,255,117,2,165,1,196,255,152,0,76,255,96,252,103,0,4,2, +155,0,37,0,116,254,239,253,149,0,186,2,129,1,189,255,52,253,67,0,214,1,146,0,24,1,148,253,166,255,51,2, +158,0,42,255,63,0,224,1,99,255,9,0,194,254,245,255,189,2,250,254,14,253,131,252,179,253,131,0,71,4,245,2, +134,254,23,0,143,0,224,0,48,1,147,254,121,253,54,255,54,1,248,0,76,0,7,1,204,1,201,0,93,0,200,255, +28,255,11,0,197,254,190,253,138,255,47,0,0,0,113,0,27,255,219,253,255,253,153,0,156,3,234,0,250,253,235,253, +36,0,131,2,195,1,186,0,208,255,254,255,11,255,37,255,38,0,241,253,1,255,93,0,103,0,32,1,98,0,183,0, +60,255,53,254,181,255,30,255,230,255,144,1,93,0,143,0,45,1,210,253,186,253,144,1,200,1,75,0,67,254,46,255, +27,1,184,255,230,255,241,255,133,1,81,1,177,254,160,0,210,0,3,0,232,254,173,254,245,0,208,0,116,255,99,254, +172,0,197,0,42,255,179,0,56,0,110,0,227,0,17,0,244,253,193,254,221,1,20,0,93,0,101,1,199,0,144,0, +211,253,17,254,183,255,237,254,127,0,146,1,158,0,101,1,50,0,254,255,158,1,2,255,200,253,20,255,53,0,147,0, +92,0,159,0,254,254,201,254,135,255,85,255,11,0,96,0,206,0,228,0,132,0,126,255,88,255,47,0,60,255,190,255, +152,1,244,0,202,254,37,255,246,255,118,254,176,255,141,1,210,255,190,254,2,1,190,1,71,255,169,254,204,0,121,2, +188,0,14,255,250,254,247,254,157,255,161,254,23,254,191,255,104,1,0,0,80,254,184,255,201,1,97,2,16,0,117,0, +69,0,27,255,217,1,92,2,249,0,91,255,69,0,27,0,177,255,146,255,136,253,233,0,91,0,62,0,246,255,19,251, +133,255,201,1,142,0,246,1,33,1,144,0,32,255,85,254,29,2,19,2,128,253,50,1,44,4,242,0,225,254,194,255, +39,1,251,255,238,255,172,254,71,255,10,254,132,253,217,1,252,0,11,1,208,254,250,254,209,1,45,0,9,0,184,254, +79,0,171,254,30,253,181,255,205,255,218,0,253,255,34,2,199,2,157,255,230,254,194,255,120,0,67,255,202,1,44,1, +55,254,213,0,215,1,61,0,66,0,160,0,208,254,193,255,45,1,89,254,24,254,49,1,242,255,241,254,32,1,234,255, +226,0,51,1,91,0,250,1,110,255,219,254,33,1,15,1,198,255,190,255,189,0,226,255,148,253,34,252,68,0,95,2, +5,255,46,0,183,1,180,0,35,0,202,254,152,254,154,255,197,1,207,1,64,254,173,254,113,255,163,254,227,255,195,0, +158,1,128,0,124,255,241,255,13,0,255,255,125,255,63,0,218,255,1,255,191,255,247,0,117,1,91,0,125,255,159,255, +204,0,135,0,186,254,41,255,96,0,30,0,82,0,93,255,22,0,40,2,194,255,36,255,110,254,221,255,116,1,92,253, +201,254,129,0,143,1,95,0,248,253,173,1,225,0,48,255,78,254,214,255,172,2,78,0,240,255,73,0,126,0,16,255, +136,255,183,0,144,254,165,0,125,0,187,0,37,0,201,250,0,253,203,254,243,254,147,3,62,3,64,1,190,0,224,254, +234,255,70,1,246,255,93,255,19,0,251,255,158,255,189,0,123,255,182,253,72,0,25,1,247,255,84,1,200,0,206,254, +180,254,60,255,101,0,163,255,109,254,186,0,73,1,60,255,66,255,182,254,35,255,24,1,249,0,52,2,223,0,162,253, +75,254,252,255,137,0,87,254,66,254,181,0,210,2,107,2,96,254,241,253,92,255,241,0,77,1,27,254,146,253,25,0, +179,1,7,1,243,255,40,0,64,0,216,255,227,255,230,254,4,0,200,0,124,254,247,255,219,0,42,1,26,0,231,254, +234,255,57,254,189,0,112,1,159,255,69,0,58,0,153,255,21,254,227,254,60,255,49,1,59,254,101,252,137,1,148,0, +85,2,144,1,26,255,103,0,172,0,108,1,221,253,35,253,188,254,252,1,11,3,181,254,236,255,50,1,194,255,22,0, +65,0,207,254,82,0,61,0,140,255,102,1,214,254,230,254,81,254,139,255,71,3,1,0,41,253,195,253,110,255,178,254, +133,0,56,2,106,1,16,1,193,253,248,254,244,0,201,0,64,0,6,0,196,253,33,251,140,1,110,2,196,254,116,0, +131,1,61,0,52,255,132,2,154,2,245,255,46,255,69,255,155,0,170,1,167,0,113,253,235,254,160,1,126,1,122,255, +116,254,172,0,153,255,211,255,76,0,2,255,28,255,33,253,12,0,213,3,68,0,89,255,175,1,86,0,252,254,160,255, +240,0,201,0,75,255,234,0,250,255,31,253,18,255,22,1,144,1,243,255,144,254,48,0,35,0,69,0,38,0,56,254, +23,0,26,2,167,0,88,255,134,255,48,0,47,0,112,0,11,0,47,0,163,0,91,0,241,0,73,255,202,253,91,255, +229,1,17,2,123,255,80,255,198,0,120,0,164,252,182,253,143,2,74,254,207,252,36,1,205,1,76,2,143,1,35,255, +229,254,227,0,123,1,183,0,183,255,60,255,11,0,20,0,87,0,50,255,108,255,221,1,71,0,205,254,64,0,50,1, +142,255,160,254,154,255,116,254,134,254,26,1,49,1,185,255,173,0,6,2,71,1,199,254,121,254,109,0,237,255,29,0, +148,255,182,254,191,255,162,0,243,2,161,1,216,254,121,255,79,255,26,255,137,0,209,255,147,254,69,255,48,255,231,1, +86,1,231,254,72,0,107,254,17,0,187,0,227,254,42,1,241,0,176,0,16,0,248,255,132,1,135,255,161,254,28,255, +86,253,140,255,56,2,209,1,217,2,227,255,82,255,50,1,184,254,180,254,9,255,239,254,198,255,160,1,233,1,23,0, +3,0,237,255,137,254,191,253,8,1,143,1,229,0,188,0,102,254,182,255,20,254,233,253,81,0,97,0,13,2,245,0, +159,255,124,255,12,255,47,0,111,0,8,253,156,252,113,255,0,1,2,4,51,3,106,2,76,1,27,253,20,254,151,2, +245,3,187,254,182,253,33,0,3,255,2,0,220,0,72,255,235,253,234,255,95,1,147,0,229,255,84,0,18,0,192,255, +16,2,114,255,157,254,197,0,24,0,203,0,74,0,227,0,47,0,187,255,196,255,18,254,153,0,74,1,218,255,148,255, +247,255,146,0,172,255,212,255,147,0,140,0,203,255,34,255,160,255,217,0,62,255,35,252,144,254,189,2,151,1,211,254, +127,0,212,1,126,255,32,255,165,0,218,0,64,255,238,253,212,255,197,1,25,1,13,0,228,255,162,0,8,0,137,255, +164,255,108,255,189,0,89,0,15,0,99,0,172,255,234,255,115,1,12,2,244,253,26,253,225,255,67,1,204,0,31,254, +36,0,121,1,199,255,62,255,68,255,245,255,129,255,11,0,41,0,252,0,255,0,167,255,241,255,115,254,109,255,176,0, +76,0,103,0,50,255,95,255,86,255,199,0,11,1,133,254,183,255,0,1,62,1,202,255,220,254,221,1,184,0,252,253, +88,255,92,1,94,0,75,255,30,0,89,254,154,255,164,1,109,0,9,255,239,253,157,0,217,0,86,1,149,1,136,253, +109,254,186,0,179,1,223,255,70,254,203,0,124,1,244,255,109,255,43,1,239,255,44,0,236,0,190,253,45,255,140,0, +124,0,43,1,226,255,35,255,63,255,229,255,137,0,110,0,104,0,166,255,226,254,186,255,63,254,71,254,43,1,9,1, +191,0,133,0,97,0,17,255,163,253,35,0,196,1,215,255,49,255,79,0,246,255,116,0,222,255,229,0,132,2,242,255, +120,255,134,255,131,255,59,255,234,255,102,0,81,255,73,0,7,255,235,255,218,0,78,0,113,255,36,254,185,1,49,1, +99,255,241,255,230,255,173,0,44,0,126,0,252,255,47,255,1,255,191,255,153,255,41,255,88,1,167,0,195,255,131,0, +93,0,237,255,118,0,4,1,65,255,122,254,214,255,32,1,156,255,37,254,183,255,216,255,134,255,82,1,51,1,42,0, +20,0,84,255,157,254,39,254,113,0,189,255,210,0,179,3,109,253,45,254,87,255,207,252,245,255,98,0,128,1,16,0, +170,1,243,3,50,255,98,255,146,0,143,255,145,0,81,1,134,255,137,0,162,255,193,253,248,0,77,255,167,0,111,1, +210,254,184,1,17,1,21,0,118,255,173,254,39,1,252,1,228,0,91,255,170,255,213,1,225,0,80,253,236,253,220,255, +10,0,248,255,209,254,125,0,21,2,39,0,45,0,253,0,98,0,10,255,123,253,37,0,33,0,212,253,133,0,110,255, +62,0,102,3,73,1,168,255,199,255,15,1,26,0,228,254,43,0,163,1,90,1,155,255,96,255,136,255,212,254,13,254, +153,1,187,1,146,255,41,1,52,254,147,254,245,255,21,255,247,255,9,1,65,2,158,255,81,0,230,0,231,255,247,0, +160,255,40,255,134,254,70,0,254,0,164,255,249,255,14,1,11,2,225,254,200,254,150,255,182,255,96,1,176,0,111,0, +19,254,176,255,35,2,207,255,255,255,97,255,102,255,186,0,34,0,140,254,57,255,143,1,159,0,246,255,155,0,105,0, +40,255,135,255,90,1,211,254,144,253,0,1,100,1,26,0,236,0,102,255,111,254,221,255,40,0,214,0,15,0,131,255, +168,254,195,253,42,0,87,0,231,0,207,1,172,255,203,255,191,0,46,0,85,0,247,255,106,254,119,253,199,253,165,0, +223,1,84,1,47,0,87,253,23,0,10,1,216,254,16,1,122,1,166,0,2,0,97,0,89,0,162,0,150,2,156,0, +98,254,165,253,38,254,44,1,119,2,146,255,143,253,70,254,111,254,230,0,80,2,76,1,156,0,122,255,179,254,138,254, +76,0,116,0,118,255,47,255,151,0,147,1,54,254,180,254,147,0,106,0,203,255,7,255,228,1,16,1,43,255,217,0, +49,0,70,255,201,255,24,0,240,255,144,0,244,255,11,255,33,1,121,0,167,253,97,253,79,255,109,2,233,1,127,255, +98,254,31,255,29,3,163,2,90,254,163,254,193,0,152,255,245,253,74,254,85,255,25,2,197,1,101,0,203,255,222,253, +121,0,123,1,98,0,53,0,184,255,86,0,32,255,1,255,248,254,183,255,144,255,15,255,216,2,87,1,116,0,46,1, +203,253,106,255,75,0,155,254,119,255,29,0,173,0,156,0,217,255,184,254,60,255,169,0,143,255,215,255,189,0,255,255, +150,255,250,254,127,255,16,0,230,255,200,0,6,1,182,255,106,0,163,0,124,254,79,0,14,1,0,0,101,0,224,255, +148,0,196,254,73,254,33,0,49,255,244,255,99,2,148,2,191,255,154,254,63,255,82,0,116,0,237,253,254,252,132,255, +55,2,97,255,86,255,117,1,9,0,225,1,69,0,216,254,192,255,12,255,187,0,29,1,104,1,24,0,249,254,183,255, +211,254,74,254,84,253,54,0,227,3,156,2,246,255,254,254,95,0,220,255,252,255,197,0,111,254,57,253,85,255,140,2, +19,1,38,255,20,0,111,254,39,255,45,1,23,1,221,0,181,255,218,255,127,0,95,0,236,255,239,255,32,0,211,255, +170,0,33,0,168,255,187,0,90,255,144,254,128,0,231,0,254,255,173,255,190,255,162,0,63,1,72,0,186,254,90,255, +81,255,165,253,223,254,113,0,138,0,147,0,228,0,187,255,242,255,220,0,58,255,186,0,28,0,141,255,113,1,79,255, +52,254,103,255,112,2,191,0,113,254,187,255,224,253,104,0,22,2,183,0,195,1,98,0,18,255,189,254,143,253,239,254, +227,2,100,3,154,0,1,255,130,255,77,255,196,255,48,1,166,255,36,0,182,0,134,255,250,254,247,253,36,255,155,1, +203,1,110,255,173,255,135,255,249,254,113,0,214,255,206,255,116,254,1,255,111,1,176,0,134,0,225,1,127,0,110,253, +127,255,164,0,29,2,55,1,232,252,66,1,32,2,208,255,142,0,110,255,154,254,65,255,119,1,220,0,239,0,38,255, +221,251,92,0,93,3,234,0,227,255,95,0,1,0,188,255,16,0,1,0,151,255,149,0,165,0,223,254,144,0,249,0, +178,255,13,0,93,255,132,255,162,0,232,0,103,255,238,255,118,1,11,255,10,254,215,0,214,0,110,254,172,255,71,1, +89,0,103,255,252,255,97,255,152,254,200,0,93,0,54,0,158,0,81,255,242,0,104,0,119,254,23,255,131,0,111,2, +77,1,235,255,86,0,133,253,213,253,84,0,242,254,127,0,107,1,200,255,162,0,205,0,174,255,102,0,156,0,108,255, +65,255,167,253,26,255,205,1,16,1,69,1,207,0,38,0,90,255,241,255,151,0,22,0,211,255,216,254,148,255,219,254, +189,255,104,0,55,0,75,2,157,0,223,254,113,255,252,1,105,1,147,255,200,254,205,253,96,1,152,0,56,254,71,254, +249,255,149,1,53,0,126,255,240,252,185,254,242,0,193,1,132,253,255,246,37,0,125,5,83,0,19,253,243,1,189,6, +84,0,128,0,46,2,116,255,192,255,196,0,61,2,129,0,246,254,121,255,27,0,188,255,10,255,82,255,172,255,97,255, +157,254,170,255,110,0,48,1,175,0,128,0,129,1,108,255,194,253,32,255,19,2,190,0,145,255,245,255,177,255,145,2, +77,0,2,254,78,255,97,255,203,0,146,0,6,255,186,255,74,1,129,255,102,255,181,255,222,253,255,254,65,0,67,2, +208,0,146,254,117,0,30,0,233,255,254,0,26,2,70,0,254,253,8,0,158,255,70,254,64,0,148,0,165,255,5,0, +222,0,156,0,80,253,64,254,152,1,15,1,69,1,41,254,196,253,93,1,153,0,36,1,168,1,125,0,255,253,63,253, +82,0,54,1,24,0,182,254,133,0,163,2,255,0,148,0,9,0,126,253,199,252,62,0,119,2,18,0,116,0,26,2, +12,0,159,254,123,254,195,0,96,1,14,253,91,253,43,1,72,2,240,255,111,255,27,1,234,255,51,1,129,0,216,253, +70,254,48,0,237,1,36,254,21,254,11,1,75,1,174,2,188,0,191,254,3,255,133,1,128,2,195,254,111,253,69,255, +199,0,23,255,240,254,65,1,216,0,222,255,222,255,32,0,154,254,76,255,151,2,117,1,1,255,52,255,83,0,222,0, +200,254,37,252,142,255,79,4,248,1,215,254,143,255,74,0,175,0,188,255,229,255,99,2,79,255,105,252,183,255,167,2, +89,1,239,252,111,254,116,2,162,1,188,255,115,255,0,1,59,255,65,253,158,254,174,0,152,0,95,254,78,0,150,0, +4,255,28,0,93,0,135,0,103,0,52,2,208,1,47,255,16,255,223,254,197,0,48,1,177,255,34,255,244,255,44,1, +40,253,245,253,204,2,94,0,94,255,184,1,38,1,123,254,134,254,208,1,200,2,118,255,225,253,113,1,98,1,224,254, +211,254,96,255,150,1,97,1,231,0,230,255,188,253,236,255,163,0,28,0,6,0,128,255,117,0,42,0,143,0,146,0, +192,253,99,253,212,0,182,2,147,1,40,0,38,255,147,254,39,255,74,1,41,2,139,0,75,255,50,0,43,0,98,254, +50,255,247,255,27,0,233,0,57,0,165,255,71,0,83,0,8,254,70,255,31,3,182,1,213,253,233,252,63,0,77,0, +228,253,32,1,145,2,244,255,66,0,232,0,66,0,47,0,108,0,248,1,254,0,250,253,19,254,71,1,43,3,199,254, +65,253,244,0,132,2,239,0,253,253,112,255,220,255,166,254,117,0,223,1,124,1,255,254,163,255,11,0,201,255,202,1, +136,0,90,0,158,0,252,254,237,254,16,1,237,1,118,254,172,253,244,255,61,0,223,255,146,255,80,255,185,0,97,1, +26,255,52,255,116,255,20,255,102,1,79,0,45,255,50,1,17,0,189,254,13,255,98,255,207,1,38,2,148,255,99,255, +89,255,81,254,43,255,89,0,62,0,150,0,35,1,185,0,123,0,158,255,189,254,49,0,8,0,199,254,225,0,2,0, +156,253,176,255,190,0,238,255,176,255,244,1,16,3,168,255,122,255,38,1,65,0,242,254,137,254,81,255,49,255,221,254, +50,0,11,1,18,0,65,255,178,254,49,0,107,2,134,0,34,255,253,255,119,0,245,255,3,255,144,255,187,0,130,1, +200,0,166,255,188,253,3,253,34,255,196,255,165,1,187,2,162,0,255,255,185,255,147,255,126,0,141,0,147,255,250,255, +78,255,65,254,238,254,227,254,27,1,101,2,136,0,232,255,83,1,252,1,162,254,167,253,144,255,115,0,164,0,130,254, +42,255,234,0,197,255,23,0,91,0,243,255,96,0,215,0,3,1,79,0,152,255,85,254,138,254,220,255,139,255,199,1, +162,1,13,0,169,0,6,253,230,254,51,3,122,1,114,0,9,0,60,0,127,254,146,255,179,0,107,254,252,255,236,253, +36,254,247,254,53,252,65,0,124,2,20,2,181,255,17,254,172,2,41,3,174,255,220,254,19,0,248,254,203,255,246,1, +195,255,100,255,255,254,237,254,63,0,211,0,146,1,16,0,168,0,73,0,136,253,177,255,237,0,92,254,59,254,125,0, +192,1,162,0,167,254,182,254,26,0,170,1,249,0,186,255,238,0,12,1,24,0,71,254,234,255,147,1,37,255,0,1, +160,0,124,254,9,0,242,255,83,254,109,253,184,255,3,1,168,1,183,1,153,255,151,255,57,254,21,255,144,1,174,254, +141,254,59,2,122,0,149,254,30,2,52,2,205,254,106,254,186,255,152,255,29,0,182,0,187,253,46,254,116,2,75,3, +14,1,192,254,249,254,198,255,112,254,64,255,88,2,166,0,3,255,161,255,201,0,211,2,111,255,27,255,87,1,36,255, +116,255,2,0,69,0,9,0,255,254,211,254,167,255,186,1,207,255,147,254,176,0,112,255,132,254,198,0,119,2,75,2, +153,254,44,252,215,255,137,1,135,0,189,1,107,1,63,254,46,255,45,1,90,254,71,255,7,0,65,255,106,1,229,255, +183,255,122,1,97,1,118,0,143,255,71,0,49,255,30,255,226,255,166,255,35,2,80,1,72,254,205,255,67,0,217,254, +47,254,223,255,235,2,100,0,234,254,184,0,210,0,37,1,113,255,109,254,226,254,237,254,250,253,132,253,245,0,137,3, +233,1,50,255,57,0,191,0,128,0,65,0,254,253,6,0,185,255,247,254,174,1,200,1,4,0,195,252,70,254,17,1, +55,1,163,255,111,254,12,2,236,1,40,255,201,254,163,255,243,255,167,255,236,255,131,254,96,0,210,2,65,1,151,255, +209,255,196,255,180,254,11,0,26,255,143,254,41,1,165,1,14,1,20,255,51,255,191,0,237,254,42,254,20,1,85,2, +126,0,187,255,175,254,217,253,20,0,93,1,57,0,112,255,84,254,250,255,152,2,83,0,85,255,189,0,147,1,142,0, +145,254,242,254,87,255,57,0,38,0,50,255,101,0,66,2,31,1,9,254,254,254,113,0,2,1,44,0,8,255,22,0, +138,255,149,0,61,0,1,0,102,0,113,254,136,0,58,255,167,254,19,2,255,255,98,255,121,0,116,0,159,255,233,253, +107,255,131,2,145,3,94,255,219,252,108,0,38,0,30,254,61,255,154,1,247,2,25,1,242,255,143,255,145,254,223,254, +154,0,68,1,78,0,24,1,184,0,58,0,153,255,104,254,44,2,43,2,118,253,35,253,241,254,88,1,151,2,158,255, +98,254,121,0,108,0,229,1,23,1,139,253,32,255,117,0,209,255,40,255,121,0,31,1,234,255,240,0,161,254,20,254, +120,1,221,0,126,0,170,1,60,0,238,254,195,0,207,0,142,254,4,255,220,0,113,0,107,0,100,1,34,255,2,254, +87,255,83,1,116,2,107,255,39,254,60,254,71,253,121,254,53,255,221,0,42,3,161,2,159,1,255,0,179,0,168,255, +244,253,28,254,51,255,238,255,82,255,207,0,82,2,110,0,86,1,158,1,225,255,77,255,134,255,238,255,62,0,242,255, +139,251,250,253,7,3,160,0,71,0,131,255,109,0,64,1,91,0,37,1,22,255,226,254,24,255,82,1,237,2,69,255, +195,254,80,255,219,255,31,255,203,253,104,255,182,0,127,1,44,0,152,255,12,1,221,255,129,255,40,1,179,0,208,255, +224,0,204,0,172,254,240,254,140,255,143,254,212,0,4,2,249,255,145,255,28,0,246,255,62,0,228,0,127,255,164,254, +76,254,46,255,223,0,246,255,119,255,125,254,162,0,174,2,170,0,26,255,145,253,107,255,63,1,172,1,52,0,133,255, +113,255,144,253,25,2,57,0,155,253,231,1,106,0,251,255,177,0,246,0,59,255,137,255,123,1,116,255,49,0,65,255, +159,255,111,0,207,254,3,255,241,255,8,2,72,0,9,255,239,254,149,255,169,1,113,0,222,255,63,255,200,0,157,0, +255,253,157,255,159,0,0,1,238,0,160,0,193,255,197,254,162,255,55,255,216,255,162,1,202,1,200,0,209,254,61,255, +0,2,72,1,140,255,214,254,159,254,240,255,13,255,228,255,219,0,144,255,208,255,80,254,150,254,175,0,56,1,232,255, +201,254,238,255,4,0,160,1,238,1,23,0,214,0,184,0,66,255,109,254,32,255,166,0,3,2,95,0,42,251,219,251, +229,2,115,4,126,1,70,0,52,255,147,0,103,1,193,255,189,255,26,254,49,254,253,1,130,2,133,255,241,254,134,0, +220,255,50,0,57,0,32,255,225,0,122,255,58,255,87,2,48,254,233,252,195,0,118,1,214,2,237,254,138,252,20,2, +18,3,188,0,49,255,162,254,6,0,96,1,20,0,24,255,190,0,108,0,112,0,166,0,137,255,220,255,155,0,32,1, +36,0,220,255,235,255,159,254,98,255,246,255,244,254,173,253,197,253,123,1,140,1,165,255,99,2,213,0,232,254,42,0, +142,255,42,1,0,1,183,255,136,255,215,255,77,2,209,1,59,0,176,0,242,0,230,254,149,254,5,0,64,255,121,255, +33,255,39,0,144,0,58,0,247,1,66,255,163,254,32,0,227,255,136,1,144,0,55,255,208,255,205,254,175,255,39,2, +19,0,120,254,207,254,192,255,21,2,57,255,164,253,66,0,237,1,209,2,253,0,74,255,18,255,187,0,236,0,84,255, +14,0,30,255,247,254,57,0,116,254,160,253,57,1,130,2,138,255,39,254,117,253,103,254,247,0,144,2,20,1,6,0, +109,2,212,255,232,253,130,0,132,1,129,1,100,255,205,254,39,255,79,255,229,255,59,0,102,2,5,1,254,253,189,254, +148,1,120,2,140,255,183,254,238,255,85,0,168,255,194,254,236,254,161,255,218,255,83,254,157,255,134,0,156,255,127,1, +136,0,186,255,243,0,0,1,0,1,68,255,183,253,34,254,85,0,35,0,22,254,215,255,19,1,115,255,228,254,230,0, +211,1,186,0,154,255,104,255,239,0,129,0,77,0,181,1,202,0,245,255,161,0,222,0,19,255,144,254,28,1,20,1, +30,255,110,255,64,255,121,254,217,255,210,255,238,254,222,0,45,1,19,254,118,254,171,0,121,255,219,255,105,1,154,0, +194,254,24,255,101,0,194,255,119,0,90,255,9,0,47,2,111,254,160,254,77,1,220,1,179,1,46,0,191,0,28,0, +248,254,233,254,113,255,42,0,40,255,181,255,231,255,228,253,49,253,86,255,23,1,232,0,166,1,141,1,114,255,22,254, +62,255,186,255,110,255,237,0,217,0,195,255,37,0,117,1,91,1,144,255,167,255,189,1,114,1,7,254,31,254,234,0, +55,1,235,254,61,254,212,0,43,255,34,255,70,2,113,255,45,255,95,1,144,0,215,255,40,254,234,254,170,0,179,254, +226,254,60,1,159,0,173,255,74,255,189,254,187,0,164,2,120,0,128,253,224,253,20,1,189,2,179,0,113,255,221,255, +241,255,151,0,199,255,76,254,193,255,53,1,12,0,33,0,68,0,129,255,87,0,191,253,95,253,147,1,46,2,236,2, +225,1,189,255,126,254,137,253,114,0,22,255,253,252,18,254,166,254,159,2,241,2,222,255,17,255,239,255,189,0,28,255, +24,255,179,254,95,255,235,2,109,2,63,255,241,253,118,1,38,3,163,254,250,252,139,254,206,0,229,1,54,254,132,253, +171,1,123,2,83,1,73,255,118,254,239,255,161,255,21,1,28,0,229,253,100,0,97,0,14,1,190,1,147,255,149,254, +226,253,27,0,14,1,204,255,202,0,197,0,186,255,2,0,155,1,131,0,10,255,197,0,156,1,197,0,18,255,38,255, +109,255,202,254,166,0,144,0,246,254,39,255,157,255,232,255,13,255,171,255,214,0,186,255,197,255,45,0,36,255,180,253, +67,253,67,255,230,0,112,1,78,0,12,255,68,2,79,2,68,255,69,255,127,253,117,255,183,2,251,255,18,1,217,2, +109,0,84,255,116,255,253,0,33,1,43,0,30,0,177,254,53,254,191,254,210,255,235,255,104,254,156,255,167,0,124,255, +202,254,119,0,230,1,231,255,249,254,95,255,14,1,117,1,121,254,249,255,26,1,74,255,4,0,248,255,89,0,19,1, +120,0,194,0,206,0,247,254,26,254,125,255,62,255,201,255,68,0,116,255,236,1,37,0,157,251,184,253,222,1,174,3, +224,1,189,255,43,0,38,0,109,255,250,254,191,255,133,0,101,0,28,1,199,1,240,0,121,254,250,252,70,254,228,255, +123,1,173,2,245,255,188,253,171,255,156,255,33,0,127,1,34,255,28,255,17,1,164,1,30,1,41,0,157,255,184,254, +182,0,195,0,98,253,91,253,128,255,167,1,194,255,168,255,227,1,115,254,87,255,235,1,181,255,73,255,157,255,120,0, +233,0,179,0,113,0,87,253,124,252,33,1,104,2,147,255,157,1,12,2,52,254,135,255,184,1,81,1,214,255,239,254, +226,1,8,1,208,252,115,254,155,0,163,0,127,1,228,0,103,0,121,255,55,253,31,254,182,0,14,1,1,0,75,0, +7,1,62,0,205,255,7,0,30,0,184,0,207,0,96,255,103,0,49,2,101,255,239,254,218,0,4,0,218,255,219,255, +94,0,167,0,233,255,105,0,227,255,216,254,79,255,203,0,13,1,205,255,226,255,230,0,198,0,106,255,95,0,87,1, +245,255,159,255,216,254,254,254,73,254,70,253,79,1,72,2,52,254,102,253,199,0,85,2,225,1,185,1,45,255,133,254, +207,255,89,1,195,1,236,255,151,1,106,0,0,255,133,255,101,253,109,0,23,255,131,251,16,255,82,0,48,0,56,0, +190,1,219,2,233,0,233,255,32,0,121,0,88,254,64,255,160,1,94,255,197,253,175,253,35,0,150,1,3,255,75,254, +195,1,195,3,6,1,45,0,51,1,107,2,95,1,42,254,192,254,225,255,103,255,103,251,207,250,82,255,40,0,86,3, +37,5,130,2,180,255,241,253,33,255,48,255,126,255,83,0,30,2,123,1,95,255,236,1,56,0,106,255,131,0,42,255, +68,0,102,254,165,255,61,2,45,0,152,255,239,253,150,254,208,1,86,1,65,0,36,1,240,1,121,0,62,253,236,253, +132,1,77,255,253,253,17,1,45,1,4,0,200,254,187,255,112,0,203,254,81,255,0,0,130,1,134,0,160,253,204,0, +221,2,3,0,216,253,123,254,77,0,242,255,28,0,107,1,13,1,207,255,251,254,213,254,63,254,121,255,250,0,203,255, +83,0,199,0,220,254,13,255,35,2,187,2,107,0,5,1,109,1,153,255,99,254,103,254,77,0,31,1,242,0,124,255, +8,254,127,0,148,0,13,254,200,254,53,255,222,255,53,2,106,0,91,255,240,2,147,2,236,253,113,252,255,255,115,1, +237,1,152,3,50,0,181,253,131,252,233,252,73,1,66,0,185,255,230,1,154,0,156,0,14,1,79,0,24,0,60,255, +199,254,77,254,200,252,1,0,96,3,206,255,127,254,247,0,176,1,84,0,118,255,170,0,15,1,73,1,108,1,92,0, +80,255,65,255,0,255,55,255,21,1,14,0,252,253,216,254,189,1,227,1,167,255,46,1,245,255,118,253,1,255,172,1, +117,2,162,254,156,255,49,2,208,255,120,254,231,254,9,1,57,0,154,255,82,0,88,0,150,1,223,254,178,254,0,0, +129,0,162,2,101,254,37,253,99,0,115,0,25,1,74,0,192,254,21,255,218,0,85,1,152,255,89,255,175,0,148,1, +169,0,146,0,155,0,27,254,201,254,226,1,212,0,193,254,108,255,96,0,10,1,68,0,86,254,68,0,169,1,66,255, +86,0,148,1,55,0,146,0,22,255,223,254,3,1,182,0,194,0,70,255,168,254,216,255,13,255,38,0,125,0,6,255, +239,254,76,0,246,0,123,255,43,0,195,0,91,255,210,254,122,255,121,0,76,0,142,0,161,255,177,254,75,0,246,0, +171,0,218,255,211,255,32,1,219,0,160,255,141,255,128,255,143,255,60,0,91,0,253,0,28,254,160,250,30,254,101,1, +18,2,141,2,97,1,1,0,157,255,206,255,124,255,12,255,250,254,124,0,197,1,225,0,201,0,248,0,196,255,102,254, +233,254,41,255,252,254,29,0,139,255,52,0,23,1,189,255,216,0,80,1,177,255,218,254,88,254,111,255,236,0,208,1, +174,1,158,255,136,255,249,254,237,253,87,255,10,255,34,1,6,2,61,255,222,255,252,254,148,254,117,0,176,0,152,255, +225,254,182,0,50,0,111,255,1,0,199,254,154,255,252,0,10,1,220,0,217,255,246,254,56,0,100,0,60,254,216,254, +200,0,57,1,55,1,175,0,87,254,17,254,207,255,68,0,63,1,209,254,232,254,199,1,189,255,45,0,212,0,184,255, +148,255,194,255,4,1,158,0,219,254,10,254,99,0,83,1,151,0,1,1,22,255,41,254,80,254,79,0,208,2,169,1, +50,0,136,255,49,0,67,0,249,255,94,255,136,254,21,0,120,255,249,254,138,1,142,1,255,253,247,251,44,254,242,0, +234,0,21,0,90,1,188,0,149,255,87,1,219,1,171,1,218,0,172,255,193,254,182,254,122,0,11,0,10,0,174,0, +170,255,251,255,38,255,182,255,67,1,217,254,130,0,91,2,119,254,251,253,111,254,193,254,176,255,83,0,196,1,47,253, +120,252,74,0,212,254,187,0,165,0,115,254,63,0,164,0,89,1,78,1,100,1,22,1,22,254,101,254,174,0,187,1, +111,0,68,255,68,3,183,3,19,255,73,255,2,0,125,253,84,253,205,0,80,2,17,0,18,0,199,0,166,255,111,255, +95,0,203,0,183,254,243,254,151,0,101,255,59,255,192,255,254,0,162,0,9,255,84,0,14,255,99,253,26,255,204,0, +166,2,68,3,206,0,191,253,44,254,74,0,156,1,225,1,177,0,237,0,192,255,36,254,12,0,6,1,126,0,247,254, +105,254,88,255,167,255,130,0,162,255,68,255,9,0,147,255,147,0,88,0,164,255,196,0,73,0,14,255,4,255,57,0, +39,1,168,0,15,1,247,0,64,255,117,255,219,255,211,254,161,255,218,1,240,0,188,254,18,0,182,0,32,0,120,255, +125,254,127,0,243,0,112,255,189,253,200,252,232,255,136,1,191,1,185,1,106,255,186,255,140,1,195,0,74,255,48,255, +1,0,127,0,72,0,48,0,199,254,92,254,67,0,84,0,181,0,106,0,144,0,172,1,188,254,239,253,202,255,183,0, +72,1,173,0,10,0,16,255,243,254,126,0,3,1,214,254,72,255,156,0,97,254,116,255,235,0,208,255,147,254,34,255, +19,2,239,1,138,0,85,255,193,255,177,0,194,254,234,254,6,0,65,0,87,0,34,0,9,0,212,255,147,255,60,0, +64,2,126,1,254,255,82,254,32,254,221,1,133,0,30,254,90,255,147,255,216,255,227,0,74,1,135,255,131,255,56,0, +110,255,114,0,174,0,186,255,109,255,195,255,194,0,53,1,3,0,196,254,43,255,189,255,230,255,126,0,166,1,194,255, +8,253,74,255,39,1,242,255,217,255,235,0,231,0,7,1,23,1,186,254,192,253,128,255,133,2,65,3,8,255,253,253, +47,0,43,0,255,255,183,255,151,0,22,1,37,255,102,254,199,254,101,255,60,255,149,255,9,1,51,0,29,255,60,254, +47,255,242,0,194,255,228,255,255,254,251,253,246,0,154,2,226,2,3,3,111,0,245,255,82,2,253,254,90,254,124,1, +233,253,126,253,89,254,171,254,250,1,189,255,104,0,57,3,116,254,129,252,184,255,218,1,166,3,15,2,81,253,95,253, +25,0,7,1,166,1,197,1,119,0,58,255,164,255,11,255,66,255,145,0,28,255,159,255,226,1,243,0,45,0,134,0, +255,255,178,255,214,254,62,255,155,255,177,254,168,0,142,0,126,255,154,255,120,254,103,0,172,1,7,1,79,255,154,254, +94,1,6,0,124,254,185,0,163,1,24,1,225,255,20,255,247,254,128,255,165,255,122,255,252,255,78,0,63,0,192,255, +9,0,168,255,136,254,238,255,167,0,46,0,79,1,65,0,12,255,4,0,131,255,3,0,110,0,239,255,236,255,136,254, +208,255,241,1,125,1,93,0,128,254,126,254,209,255,5,0,159,0,149,1,43,0,46,255,212,0,184,0,75,1,61,1, +25,254,187,253,132,253,158,255,240,2,255,254,9,254,156,0,36,0,212,255,12,253,229,253,130,2,235,2,65,1,221,254, +101,255,99,1,196,0,64,0,157,0,21,0,116,254,27,253,47,254,224,2,196,2,88,0,229,0,209,254,111,255,116,255, +109,0,108,0,89,249,15,253,23,2,171,1,74,3,2,255,115,255,136,1,4,255,199,0,120,0,6,255,222,254,96,254, +34,0,161,255,140,255,165,1,57,1,105,1,13,0,241,254,3,1,86,1,41,1,48,255,152,255,96,1,9,255,150,0, +167,0,18,254,42,0,21,1,98,255,47,255,232,0,90,0,214,254,79,255,66,1,147,2,171,255,7,254,234,253,18,255, +22,2,14,0,242,254,69,0,198,0,44,0,15,253,35,255,17,1,195,0,53,2,126,255,79,0,174,1,48,255,98,255, +201,254,36,0,190,0,125,0,146,2,23,0,14,255,3,0,40,254,4,255,3,1,77,0,150,0,5,1,27,255,83,1, +196,2,216,254,139,254,135,0,11,1,226,255,112,254,139,255,247,255,4,255,124,255,20,255,82,254,146,0,238,0,108,255, +146,0,219,0,138,0,177,0,167,253,167,253,235,1,197,255,61,255,3,2,142,0,82,1,100,255,36,255,207,2,164,0, +154,255,134,255,173,255,60,0,251,255,39,0,225,251,12,251,223,0,116,4,181,2,224,254,244,253,192,254,236,255,93,0, +11,1,56,2,237,255,159,254,54,1,117,0,130,254,167,0,123,1,155,1,33,1,88,255,240,0,167,1,162,255,230,253, +160,253,255,254,75,1,206,2,239,1,141,0,114,254,240,254,127,0,80,255,138,255,91,255,111,255,64,0,171,0,60,1, +230,255,99,255,27,1,12,2,254,253,197,252,70,1,178,0,95,0,226,0,57,255,160,255,234,254,186,255,27,2,207,1, +89,0,78,255,27,255,222,254,125,255,133,0,55,1,241,0,87,255,176,255,77,0,162,255,153,255,140,255,238,255,229,0, +252,0,242,255,218,255,176,0,155,0,39,0,30,0,37,0,69,255,74,255,116,255,20,255,90,0,191,0,115,0,129,255, +236,255,193,1,137,255,254,254,53,1,157,1,234,255,101,253,60,254,146,255,220,255,196,0,2,1,225,255,246,254,216,255, +228,0,239,0,133,255,228,255,75,0,167,255,242,255,44,254,40,255,113,0,200,254,246,252,187,253,227,2,52,1,180,255, +0,4,176,2,5,0,72,254,9,254,236,255,91,1,118,1,33,255,146,254,254,255,36,0,132,0,113,1,6,0,150,254, +114,254,207,254,151,0,138,0,202,1,65,2,254,253,252,252,220,255,20,2,197,1,234,255,48,254,44,254,168,255,23,1, +175,1,166,255,14,0,65,255,249,250,117,254,32,3,71,0,51,254,41,2,42,4,175,255,208,253,119,0,17,1,69,0, +35,0,148,255,200,255,163,255,238,255,72,0,120,254,249,255,97,1,40,0,14,0,188,255,128,0,251,255,92,255,51,0, +12,255,77,255,253,0,50,255,96,253,203,0,57,2,77,0,15,0,72,255,244,255,192,255,228,254,104,0,138,255,159,255, +182,0,212,255,70,0,89,0,66,0,21,0,228,254,39,0,86,0,184,254,168,0,44,2,207,0,178,254,193,253,88,0, +100,1,211,255,187,255,124,255,42,0,9,0,248,253,148,255,254,1,191,1,152,0,27,254,194,252,52,255,214,1,246,1, +66,1,120,255,82,255,244,0,196,255,69,255,209,255,179,255,104,0,146,255,46,254,199,254,29,255,152,255,151,1,3,0, +13,0,94,3,37,1,194,255,131,255,162,254,58,255,109,255,224,1,250,0,175,254,169,254,238,254,201,0,124,255,121,255, +183,0,215,255,109,1,165,1,134,0,200,255,44,255,154,255,120,254,67,255,75,1,211,254,198,254,152,1,52,1,123,0, +238,255,195,0,69,0,157,254,7,0,3,0,67,0,15,0,82,255,126,0,123,0,57,0,247,253,141,253,78,1,210,2, +6,255,109,251,249,0,60,4,89,254,107,253,98,1,168,1,19,1,119,0,56,255,48,0,138,255,147,255,189,0,116,255, +32,0,232,255,56,255,175,0,243,0,236,255,49,0,123,1,138,255,223,253,83,255,173,0,141,0,225,0,196,0,35,254, +176,255,233,2,168,1,252,253,5,253,108,255,72,254,24,255,227,1,230,1,251,1,113,0,139,0,205,0,191,255,81,255, +228,254,23,0,11,0,68,0,254,0,123,255,18,254,165,254,17,0,148,0,90,2,55,1,232,253,183,255,112,1,16,0, +90,255,230,255,162,255,61,0,238,0,92,254,136,254,217,0,116,0,25,0,139,0,37,0,211,255,211,0,147,255,214,254, +40,0,229,254,176,254,51,0,211,2,182,3,232,0,137,255,9,254,3,255,105,1,175,0,42,0,44,255,204,255,106,0, +132,254,101,255,187,1,196,0,52,255,135,0,164,0,87,255,125,255,204,255,138,254,150,254,58,1,252,255,125,255,61,1, +65,0,156,0,233,0,150,255,164,254,154,0,168,1,10,0,189,255,80,254,233,254,128,255,188,254,151,255,98,0,105,2, +198,0,18,255,168,0,135,255,253,254,182,0,122,0,61,255,133,0,18,1,230,1,166,1,89,254,248,253,50,255,96,1, +134,0,120,254,126,255,204,255,197,1,33,1,69,0,130,1,161,255,159,255,193,255,249,253,4,255,122,1,143,0,219,255, +215,0,127,0,101,0,176,255,152,255,71,255,118,0,69,1,208,254,94,255,244,254,196,254,170,0,35,2,115,0,198,251, +195,254,158,0,238,0,154,3,227,254,126,254,47,2,219,255,211,254,63,1,26,1,15,0,251,0,76,255,234,253,187,255, +239,1,100,1,109,255,241,255,38,255,161,254,132,255,212,255,158,0,104,0,100,0,192,0,207,0,208,255,139,255,142,0, +121,255,102,254,120,255,247,1,98,0,228,253,230,255,26,0,227,0,80,0,17,254,147,0,6,1,114,0,147,1,197,255, +108,254,248,255,101,0,235,255,233,255,154,254,3,0,44,2,28,1,4,0,186,255,49,1,60,0,179,254,220,255,101,255, +127,0,6,1,84,255,201,254,92,255,172,0,27,0,125,0,9,1,4,0,32,0,77,255,241,255,49,0,177,254,222,255, +23,0,51,0,239,0,168,255,90,255,42,0,200,0,132,255,6,255,182,0,132,255,212,254,161,255,177,0,60,2,246,255, +174,254,1,0,185,0,185,0,141,254,78,255,96,1,238,255,109,255,121,0,248,255,121,253,197,253,200,0,180,0,45,255, +198,254,29,0,68,1,163,0,177,0,14,0,61,255,181,255,241,255,167,0,108,0,13,255,240,255,21,1,176,255,139,255, +242,0,66,0,72,255,251,255,103,1,103,1,99,254,78,253,12,1,212,2,76,0,107,254,204,254,217,255,168,0,81,0, +152,255,186,0,208,0,72,255,196,254,117,254,81,255,240,0,21,2,109,0,213,254,141,0,9,255,94,254,254,0,129,1, +99,1,181,0,114,255,35,254,173,254,120,255,158,0,83,2,16,255,120,254,243,0,182,255,211,0,182,1,211,254,57,254, +253,255,138,1,123,2,150,0,19,254,42,255,201,0,242,253,97,252,102,0,40,2,31,2,239,0,248,254,20,255,51,255, +81,2,70,1,127,254,44,1,104,0,29,255,220,254,11,0,232,1,138,0,202,255,249,254,150,255,58,0,127,0,145,0, +152,253,162,254,2,1,253,255,126,0,21,0,165,253,142,254,228,0,80,1,76,0,89,254,147,0,202,3,150,1,72,255, +196,0,109,0,58,253,41,255,185,1,128,1,128,1,25,255,67,254,81,255,130,255,44,0,122,1,86,0,28,254,160,255, +82,0,39,0,152,0,52,1,111,0,148,253,206,254,123,0,193,1,31,2,32,0,36,0,39,0,180,0,242,254,77,254, +217,0,109,0,126,1,6,1,9,255,189,255,205,255,110,0,158,0,47,255,140,254,66,255,51,0,117,0,102,0,56,0, +12,254,207,253,52,1,84,1,209,255,224,254,204,255,3,1,23,255,45,255,195,255,143,0,125,2,188,2,120,0,164,253, +63,255,209,255,89,255,196,1,36,1,244,253,22,254,30,1,65,1,216,0,136,0,220,254,121,255,185,255,223,255,132,1, +228,1,177,255,238,254,68,0,151,254,116,254,86,0,54,0,106,1,1,2,159,0,108,0,209,255,144,255,217,0,15,1, +213,0,244,254,10,254,101,0,94,0,84,255,178,255,28,0,187,255,232,255,35,1,164,0,224,255,86,255,124,254,47,255, +165,1,12,1,28,255,141,0,40,255,212,254,251,0,29,1,102,2,22,1,163,255,231,255,131,255,137,255,225,254,10,0, +181,0,3,255,245,253,208,254,230,255,134,0,251,1,223,0,240,254,3,254,6,255,191,0,227,255,170,0,67,0,18,0, +135,0,146,254,224,255,137,0,227,255,47,0,109,0,112,0,243,255,204,0,157,255,192,255,170,0,186,255,51,0,204,254, +228,253,22,254,30,255,240,0,87,2,241,2,112,255,39,254,148,254,226,254,157,0,195,0,28,1,159,255,78,255,44,255, +57,255,48,2,214,0,5,0,178,255,231,254,211,0,58,0,218,255,73,0,255,255,120,255,140,255,237,255,58,255,240,255, +59,0,91,0,94,0,98,255,69,254,119,254,173,0,92,0,252,0,175,0,55,254,226,254,81,254,46,0,74,1,25,254, +13,255,75,1,200,1,177,1,205,1,107,255,167,252,52,255,217,1,36,2,120,255,236,252,168,253,80,255,232,2,242,1, +67,254,110,254,179,254,157,0,244,1,228,0,191,255,78,255,160,0,146,0,126,0,28,0,242,254,84,0,46,1,184,0, +221,254,218,253,182,255,34,0,141,0,161,1,17,1,12,0,220,255,100,0,208,0,39,0,155,253,134,252,91,255,79,2, +186,0,97,254,112,255,182,255,75,0,175,0,75,255,224,255,221,0,41,0,212,254,97,0,243,1,168,1,145,0,83,252, +177,253,8,1,49,255,34,0,234,1,72,2,141,0,212,254,218,255,69,0,143,0,184,255,188,255,73,255,194,254,6,1, +42,0,143,255,42,0,48,255,0,255,237,254,171,255,181,0,173,0,248,255,2,0,236,255,73,0,26,1,218,255,102,255, +216,255,23,0,207,0,252,0,75,255,24,254,49,255,102,255,98,0,229,0,249,0,202,1,41,255,201,254,164,0,140,255, +248,255,189,1,124,1,144,254,2,253,116,255,188,1,130,2,199,255,244,253,254,0,167,1,23,0,51,255,246,255,0,0, +143,255,140,0,100,255,183,255,235,0,155,0,86,255,182,255,90,1,250,254,121,254,145,0,11,2,0,1,55,255,45,0, +9,0,154,255,17,255,143,255,18,0,225,0,233,0,191,255,69,1,11,255,95,254,58,0,225,255,39,0,146,254,193,254, +60,0,179,0,103,0,216,0,160,1,33,1,141,0,141,254,122,255,127,0,37,0,20,0,128,253,168,254,145,1,168,0, +164,255,126,0,123,0,175,255,160,255,1,0,78,0,248,255,238,0,248,0,115,255,194,255,77,0,42,255,139,254,195,254, +45,255,157,255,7,254,187,254,49,1,100,2,96,2,35,0,140,254,170,253,212,255,131,1,138,0,88,0,249,255,42,0, +127,255,161,0,193,0,43,255,71,255,212,255,19,1,20,0,127,255,9,254,105,254,95,1,245,0,39,1,1,0,132,255, +115,0,139,0,32,0,35,254,20,254,198,255,134,1,240,0,0,1,115,0,148,253,26,255,161,0,41,0,154,255,65,255, +87,1,68,2,84,0,182,255,157,255,38,254,57,255,63,1,146,1,50,1,76,0,218,255,86,255,213,254,163,255,232,255, +59,255,44,0,162,255,82,255,0,2,20,1,254,253,114,254,211,0,0,1,36,0,48,0,111,255,98,255,87,0,209,0, +38,1,19,0,137,253,237,253,55,1,29,2,119,0,233,255,123,0,98,255,208,254,17,0,249,255,60,0,113,1,94,0, +37,255,162,255,29,0,104,0,53,0,54,255,29,253,219,254,174,3,222,1,190,254,14,0,182,0,228,254,228,253,155,255, +216,0,47,1,119,0,31,1,126,1,155,253,190,253,145,1,91,3,31,2,108,255,84,255,196,254,15,255,243,0,237,255, +89,255,199,0,23,1,217,0,225,0,72,255,29,254,164,255,209,1,174,255,222,251,111,255,177,2,7,2,129,1,177,255, +44,0,168,255,237,254,67,255,97,254,116,0,240,1,73,1,16,0,139,254,94,253,206,255,102,2,128,255,147,1,172,2, +56,254,217,254,226,0,243,0,99,255,214,254,210,254,158,255,63,1,52,1,244,1,236,0,187,255,18,254,66,254,62,0, +186,254,83,0,2,0,131,254,241,0,124,1,226,255,11,254,195,0,92,2,171,255,208,254,18,255,57,0,0,1,232,255, +38,0,109,1,171,255,179,255,33,0,228,254,36,255,151,253,36,255,179,1,222,2,105,2,138,255,16,0,69,255,41,255, +122,255,226,255,82,0,1,254,204,1,37,2,227,254,216,255,47,0,216,0,202,253,58,254,112,1,133,255,156,255,71,255, +196,255,86,1,98,255,47,0,196,255,139,254,248,1,220,1,45,1,204,255,114,254,187,0,38,255,23,1,183,1,138,254, +253,255,169,255,212,255,202,255,181,0,62,0,93,255,227,252,157,243,165,248,159,255,34,3,68,13,5,9,177,1,123,255, +168,253,193,254,157,254,218,255,13,0,177,255,88,255,121,0,245,1,135,255,205,254,195,254,108,254,168,254,241,254,57,0, +116,1,245,255,53,254,47,1,136,1,71,255,71,255,186,255,180,0,90,0,168,0,164,0,195,254,94,255,6,1,53,1, +255,0,111,254,192,252,113,255,44,0,223,255,250,255,141,0,160,1,37,1,25,1,138,255,64,255,114,254,94,254,22,1, +121,0,18,1,204,255,154,0,193,1,228,253,39,255,235,254,152,0,65,1,64,253,118,0,94,0,231,254,65,1,20,1, +241,0,167,0,137,255,51,255,40,0,228,255,84,0,222,255,246,252,198,255,144,2,227,254,207,253,255,255,178,255,194,0, +25,2,144,0,144,0,79,1,99,1,107,255,23,254,87,0,82,0,64,0,170,1,73,0,119,254,17,255,151,0,37,0, +194,254,215,254,31,0,198,0,79,0,74,0,161,0,70,0,244,254,163,254,129,255,46,255,138,254,71,255,21,1,168,0, +191,255,39,1,234,0,198,0,25,0,11,255,156,0,137,255,33,255,113,0,159,0,84,1,14,0,80,0,10,1,77,0, +25,0,243,254,15,0,210,255,208,254,112,0,160,255,213,255,182,0,211,254,234,253,159,254,140,255,239,1,177,3,148,0, +6,255,6,0,246,254,97,255,131,0,3,2,137,0,140,253,227,0,182,1,219,254,206,255,34,0,245,254,14,255,39,0, +201,1,179,1,219,255,225,255,172,255,85,254,138,254,192,255,35,1,64,255,233,253,252,0,241,2,136,1,7,254,236,254, +169,1,5,1,107,1,111,255,128,255,247,2,149,0,211,253,138,254,35,1,58,1,64,255,67,0,123,254,148,254,73,2, +184,1,73,255,35,254,176,254,55,254,219,255,230,1,156,0,127,0,56,255,166,255,206,255,78,255,169,1,17,0,208,255, +197,255,115,255,48,2,170,254,231,253,49,2,6,1,136,255,188,255,25,0,24,0,105,0,206,0,64,254,228,253,27,1, +202,1,44,255,64,254,73,0,207,0,188,0,216,255,167,253,211,254,166,1,98,1,162,255,174,255,214,0,123,1,1,0, +249,254,62,255,128,255,133,0,238,254,44,255,49,1,217,255,177,254,174,255,85,2,177,1,62,0,183,254,88,254,32,1, +19,254,235,253,23,0,146,254,69,1,82,1,164,255,116,1,158,1,15,0,19,255,139,255,49,1,178,0,145,255,123,255, +221,255,105,2,101,255,222,253,213,1,22,1,204,255,2,252,124,252,177,255,138,255,139,2,72,0,25,255,18,0,41,255, +90,0,214,254,249,0,100,1,176,253,210,255,245,0,28,255,177,255,69,1,248,1,0,1,143,254,144,255,236,1,175,0, +20,255,169,254,15,255,213,255,234,0,51,0,211,253,92,255,148,1,64,0,197,255,229,254,247,253,5,1,46,2,137,0, +248,254,47,254,34,0,212,0,109,0,230,0,211,255,163,255,97,1,168,0,40,255,179,253,176,254,55,3,160,0,113,255, +7,1,145,253,242,255,10,0,42,252,98,255,105,3,214,0,170,253,121,255,239,254,193,254,92,0,179,1,170,2,105,255, +142,253,67,255,133,0,202,253,102,254,207,2,254,1,204,0,250,255,31,0,174,0,192,1,164,1,136,255,186,1,202,254, +162,251,214,254,95,255,207,0,105,2,170,0,97,255,17,0,227,254,138,255,130,2,206,1,218,0,38,255,150,254,246,254, +16,255,105,0,82,255,127,0,53,2,78,1,214,255,9,253,219,252,28,255,73,2,212,1,107,255,203,1,126,1,254,254, +176,254,252,254,7,1,161,0,234,254,69,0,35,1,43,0,112,255,22,255,131,255,100,255,254,253,233,255,216,0,221,0, +9,4,223,1,153,255,80,255,138,253,223,255,186,0,51,0,159,0,167,255,43,255,139,255,34,0,79,0,141,1,116,255, +183,252,87,255,180,0,49,0,32,0,228,0,110,1,129,0,120,0,152,0,163,255,71,255,236,0,181,0,88,255,243,255, +79,255,160,254,163,255,64,1,137,1,135,0,121,255,194,252,137,252,248,255,242,0,238,0,50,1,108,255,132,255,171,0, +52,0,149,1,173,0,80,254,150,255,118,0,155,2,2,3,36,255,248,254,223,255,224,253,84,253,113,0,95,0,246,254, +220,1,71,0,188,255,128,1,233,254,25,255,153,255,243,255,145,0,238,255,237,0,206,1,237,0,240,253,194,253,217,255, +154,0,195,255,229,255,59,2,165,0,222,255,211,255,68,254,23,0,199,1,32,1,255,254,93,255,86,255,50,255,92,1, +117,254,69,253,175,0,30,1,143,255,20,255,101,0,52,1,191,0,203,1,249,1,105,255,95,255,22,255,121,254,36,0, +53,0,106,0,1,0,141,255,174,255,78,255,129,255,77,0,237,255,70,253,40,255,219,0,131,0,115,2,33,1,58,1, +98,1,63,255,219,254,5,255,93,0,10,0,141,255,218,0,171,0,190,255,2,255,239,255,187,1,31,0,79,255,20,0, +214,253,86,255,3,3,55,2,123,0,105,255,191,254,92,0,0,1,111,253,17,255,205,1,122,255,43,0,160,255,90,255, +127,0,66,254,103,254,206,255,13,0,132,2,71,1,91,252,46,255,36,3,34,2,35,0,241,254,105,1,30,1,73,0, +211,0,26,255,255,255,226,0,254,0,83,0,250,253,10,255,79,1,189,255,235,254,173,255,197,255,161,1,247,255,137,253, +214,255,58,2,101,1,143,254,84,254,55,255,210,1,127,2,153,0,34,1,150,255,51,255,147,255,15,0,71,1,185,255, +97,254,164,253,145,255,27,0,101,254,103,255,5,0,114,0,245,1,13,2,128,255,133,0,25,255,162,250,168,255,18,1, +61,253,207,254,99,1,146,4,8,5,40,2,35,0,204,255,159,0,170,255,228,255,111,0,133,253,1,255,34,2,79,0, +247,255,183,255,176,255,179,0,140,254,106,255,63,0,126,253,100,255,215,1,164,1,101,1,128,255,216,254,10,0,91,255, +112,254,187,0,30,0,10,253,137,0,132,2,63,1,122,1,110,255,174,255,217,0,187,255,154,255,147,255,198,254,125,254, +230,254,20,255,110,0,193,0,100,1,166,1,247,253,123,254,98,0,222,255,189,0,144,255,142,254,214,255,229,1,190,2, +34,0,212,254,252,254,172,252,200,253,56,0,231,254,168,0,219,1,215,1,144,2,18,0,204,0,215,253,98,248,104,253, +114,1,229,255,1,254,19,255,134,1,128,254,97,255,109,4,144,3,175,0,82,0,219,1,235,1,57,0,184,254,169,255, +83,1,134,0,99,255,99,253,31,254,242,1,161,1,98,254,40,1,129,4,51,255,253,254,197,0,224,254,164,1,97,1, +191,255,167,253,6,252,77,254,223,254,228,0,240,2,226,2,70,1,79,255,222,254,75,253,195,253,253,0,154,1,230,255, +67,0,252,255,219,0,36,2,123,255,180,255,243,254,30,255,193,1,248,255,249,255,82,255,24,253,229,253,144,0,1,3, +68,1,155,254,85,255,149,0,226,255,4,255,93,255,96,1,233,0,255,253,29,0,183,1,158,254,35,253,77,254,181,0, +102,3,241,1,75,255,167,1,25,1,166,253,136,254,198,0,63,2,43,1,90,255,11,0,35,0,9,255,87,255,65,0, +92,255,51,255,215,1,232,255,158,253,206,0,62,0,222,255,3,0,54,0,92,1,145,253,111,255,20,1,233,255,215,0, +17,254,204,0,16,2,162,255,12,0,124,0,61,2,219,255,43,254,135,255,103,0,115,1,19,0,227,254,60,255,231,0, +69,2,76,1,223,254,245,254,50,1,247,0,190,255,182,254,114,254,178,254,230,255,38,0,168,255,79,0,175,254,15,255, +43,1,172,2,98,2,37,255,46,255,9,0,87,0,109,255,138,252,91,253,241,255,234,0,75,1,149,1,234,0,51,0, +106,255,199,255,250,0,170,254,11,254,0,2,92,3,240,0,36,1,213,1,163,255,244,255,117,0,96,255,89,255,113,255, +142,255,146,0,206,1,254,255,214,254,91,255,189,253,254,255,127,2,137,254,0,254,52,1,73,2,242,1,3,254,189,252, +161,255,147,0,4,1,119,0,235,255,144,0,131,0,107,255,47,1,232,2,0,255,202,254,71,0,123,254,77,255,153,0, +153,0,251,254,249,255,200,1,83,254,73,255,29,3,17,1,10,254,155,253,219,255,149,1,27,2,95,2,194,254,43,253, +9,0,254,0,0,0,44,255,107,0,16,1,230,0,166,0,172,254,101,255,228,0,114,255,221,253,183,255,252,1,210,255, +109,255,126,1,251,0,122,0,151,0,128,255,238,254,52,255,167,255,214,0,115,255,4,253,55,254,28,0,22,1,8,1, +44,255,98,255,26,1,145,0,30,1,74,1,9,254,80,253,110,0,221,1,62,1,57,0,163,254,30,255,237,255,61,0, +165,0,63,255,222,255,65,0,81,255,123,0,174,1,189,0,100,254,36,254,124,254,201,255,107,0,134,253,251,253,98,1, +98,0,194,253,176,0,60,2,179,255,191,0,65,3,238,1,49,253,208,252,243,254,25,0,152,1,47,0,23,1,254,2, +170,0,74,254,163,254,156,255,64,254,79,254,234,1,7,3,240,255,134,255,3,1,57,0,117,255,233,254,87,254,128,255, +251,0,73,255,167,255,69,1,214,255,191,0,156,1,158,0,38,255,54,255,131,0,192,255,190,255,32,0,221,255,227,254, +241,254,251,255,64,0,158,0,32,255,85,254,207,255,134,1,165,1,12,0,252,254,72,255,220,0,207,0,136,255,64,254, +49,254,202,0,28,1,89,254,249,255,222,2,36,0,115,255,24,0,41,255,95,255,179,254,166,255,27,0,172,255,232,0, +14,1,185,255,176,255,99,255,239,254,93,1,3,0,182,255,222,1,113,255,17,255,220,255,143,255,41,255,74,0,226,1, +52,1,55,0,60,255,3,255,65,254,72,0,89,0,143,253,240,255,148,0,167,255,252,253,183,254,44,3,245,0,93,254, +81,255,166,255,106,1,177,0,138,254,156,0,119,0,112,255,232,0,46,255,221,254,18,0,207,0,107,1,149,1,94,2, +122,255,170,255,163,1,199,255,173,0,220,255,223,254,84,255,122,254,98,1,101,1,16,254,198,253,86,255,71,1,54,255, +78,255,212,1,38,1,227,1,220,255,233,253,226,255,5,1,115,0,155,254,219,254,105,255,196,1,11,2,205,252,71,254, +10,1,204,254,67,255,166,255,102,255,77,2,174,2,33,0,199,255,218,254,44,255,163,1,230,0,17,0,200,0,95,0, +188,254,255,254,239,1,45,255,142,253,197,0,206,253,143,255,235,2,106,254,206,254,173,2,57,1,79,254,103,255,148,252, +109,253,75,5,181,3,176,0,101,255,202,255,93,0,30,253,70,255,145,1,63,1,200,255,209,254,163,255,95,0,57,0, +173,253,49,255,1,255,206,253,6,0,211,0,35,3,7,2,79,255,132,255,222,0,131,0,78,254,25,255,5,255,88,255, +200,1,17,2,165,0,182,254,72,253,194,255,54,3,154,1,123,0,161,255,129,253,248,254,112,1,253,0,173,255,10,1, +42,1,95,0,103,0,216,255,113,0,113,255,15,254,104,255,192,0,100,1,119,1,171,254,74,253,95,255,167,0,228,1, +162,1,218,0,101,255,64,253,224,254,57,1,15,1,71,255,51,255,138,255,138,255,100,0,62,0,92,0,229,254,215,255, +173,3,122,1,233,253,180,255,65,1,150,255,178,255,9,1,203,0,71,255,98,255,17,1,109,255,0,254,148,255,108,1, +215,0,6,255,200,0,156,1,92,255,245,254,55,0,101,1,54,0,247,253,219,255,55,1,188,254,39,0,127,3,76,1, +161,253,79,254,113,255,153,254,194,0,194,3,167,1,93,253,239,253,219,1,159,2,162,255,114,252,118,254,51,2,14,1, +79,255,55,255,201,255,43,0,87,255,54,255,52,0,131,1,6,1,196,255,100,255,54,0,76,2,248,255,51,254,15,1, +77,0,118,254,228,254,121,255,32,0,189,0,211,255,27,254,152,254,168,255,109,2,249,3,85,0,228,255,246,0,80,254, +79,254,176,255,158,0,221,1,124,254,102,252,190,0,181,3,202,1,21,254,225,253,249,0,40,1,115,0,91,1,54,255, +61,253,209,254,44,1,136,0,20,0,250,1,44,251,186,248,67,0,154,4,96,7,169,1,252,253,230,255,6,255,232,254, +124,254,206,2,193,1,86,255,240,0,133,255,46,0,239,254,54,1,79,1,47,255,191,0,117,254,0,254,207,254,127,2, +184,1,112,253,140,0,19,1,152,254,37,254,96,0,83,0,174,0,156,1,215,254,154,255,167,0,92,0,146,254,16,255, +53,1,168,254,34,0,86,3,46,2,255,253,120,252,244,255,206,0,41,255,78,254,183,255,142,1,85,1,252,1,51,2, +229,255,201,255,216,0,100,255,168,254,203,255,93,0,46,255,229,254,173,254,81,255,112,1,86,1,144,0,165,254,52,255, +38,0,108,255,49,1,150,255,80,255,99,1,172,0,141,0,93,0,164,0,17,0,68,254,135,255,194,1,196,0,82,255, +168,254,19,255,230,0,254,0,215,0,217,255,176,253,61,252,155,254,126,2,235,0,21,1,136,1,19,255,147,255,38,0, +176,1,97,1,64,255,8,0,2,255,36,254,4,255,109,255,45,0,225,0,116,1,13,0,174,254,57,254,188,255,68,2, +141,254,63,254,48,2,248,0,56,0,21,254,249,253,154,2,255,2,48,255,238,251,53,255,36,4,220,1,197,254,10,255, +182,0,151,2,163,0,253,254,170,0,18,0,129,254,119,253,181,254,18,2,172,1,133,254,76,254,40,0,234,0,184,0, +225,252,237,252,122,2,117,2,119,0,134,255,154,1,69,3,76,255,141,253,39,253,34,253,12,2,186,4,66,0,202,254, +105,0,18,255,8,255,253,255,103,1,17,1,8,255,164,253,211,253,228,1,162,0,63,254,157,1,254,0,34,255,100,254, +22,255,218,1,192,1,210,0,32,0,127,0,237,254,239,254,44,2,205,250,91,246,140,254,199,2,15,254,22,254,79,5, +111,255,148,251,186,1,127,3,56,6,240,3,66,1,210,0,111,0,243,255,142,254,63,2,188,0,89,255,113,255,42,254, +243,0,44,0,158,255,74,0,242,255,65,254,14,0,83,1,148,254,238,0,154,254,148,254,188,2,153,0,118,255,51,0, +124,0,200,254,107,0,132,2,36,1,27,0,217,255,148,255,129,254,187,0,9,253,252,250,120,1,192,255,223,255,65,4, +1,3,98,1,150,255,238,253,11,255,107,255,42,255,76,0,31,0,119,255,50,255,51,0,198,1,44,2,135,0,187,253, +61,255,41,1,212,255,4,254,72,254,53,1,197,1,78,255,107,255,101,2,12,2,25,0,165,254,237,254,162,2,249,1, +131,254,11,255,208,255,248,254,162,0,120,0,212,254,16,0,38,255,156,0,52,1,218,254,129,0,32,0,9,255,211,0, +7,2,133,255,217,253,172,0,143,0,132,254,200,254,51,0,33,1,167,0,90,255,8,255,222,0,226,1,228,0,190,254, +0,255,68,2,192,1,23,255,22,255,150,255,142,255,205,254,45,0,202,2,40,255,236,252,144,0,203,0,53,0,139,0, +84,254,174,253,168,0,162,1,21,0,86,1,198,0,246,254,155,1,198,0,234,254,125,0,48,0,138,0,209,254,230,253, +231,0,131,0,210,254,93,254,164,0,116,1,214,255,168,255,98,255,58,1,213,0,242,255,243,255,174,254,17,0,119,0, +34,0,239,254,1,255,41,1,69,1,218,255,18,254,94,0,224,1,79,0,76,254,174,253,37,0,163,255,68,0,175,0, +65,255,137,0,88,0,164,0,124,0,229,0,174,255,35,252,141,0,24,3,153,0,172,255,223,254,75,0,185,254,239,253, +73,1,236,0,77,253,244,253,103,2,156,0,183,0,157,2,89,0,103,0,71,255,86,0,17,0,3,254,161,254,238,255, +171,2,6,0,178,254,42,255,186,255,91,1,154,255,75,0,141,255,227,0,247,255,97,251,230,255,86,2,13,255,133,255, +165,1,102,254,16,254,197,1,255,1,41,1,86,255,215,255,151,254,13,0,127,2,147,255,108,255,54,254,59,0,89,0, +39,253,250,0,164,2,55,0,16,255,136,0,237,254,228,253,121,255,20,255,252,1,43,0,208,252,135,1,254,2,242,0, +82,1,181,254,180,253,245,255,177,254,3,0,252,0,194,255,247,0,189,0,215,0,55,0,135,253,224,252,203,255,168,2, +70,1,32,254,239,253,206,0,90,2,221,0,115,255,103,0,27,0,41,0,189,0,92,254,232,255,16,3,167,1,42,255, +193,254,28,0,153,1,2,1,188,254,66,255,65,255,88,255,192,1,201,0,94,253,27,252,51,0,225,3,175,1,148,254, +184,254,133,255,138,255,58,1,85,255,30,253,236,0,15,2,96,1,39,3,156,0,16,254,90,255,23,254,149,254,226,255, +76,0,240,1,32,255,73,254,30,1,231,0,235,255,227,0,193,0,134,253,186,255,233,1,39,255,115,255,125,252,219,253, +40,6,86,4,175,253,152,251,177,255,102,2,215,255,76,0,219,255,7,0,46,1,237,0,189,0,45,254,252,255,113,1, +88,255,119,255,181,255,105,0,53,0,9,0,109,0,73,1,83,0,7,254,12,255,211,255,106,0,201,254,60,253,55,0, +90,2,120,1,249,254,242,254,246,255,112,1,148,0,152,252,71,255,208,1,20,1,72,1,117,254,205,252,239,253,121,2, +231,4,195,255,66,254,196,255,71,255,74,0,53,2,56,1,140,254,54,0,96,0,47,255,33,255,76,253,205,255,249,2, +249,1,171,254,182,254,232,0,45,0,69,0,109,254,175,254,177,0,33,0,79,0,226,254,133,255,58,2,126,1,65,0, +199,1,72,0,72,255,39,0,133,253,9,254,66,254,242,255,56,0,244,252,177,255,156,0,61,0,172,0,15,3,150,3, +232,254,152,253,142,253,173,255,253,255,114,0,246,0,15,254,176,1,67,2,10,255,235,0,99,0,74,254,198,0,92,2, +215,0,207,255,27,255,24,0,76,0,187,1,243,0,103,254,154,255,115,254,36,1,133,1,202,252,57,255,213,1,135,0, +12,0,238,0,78,0,111,0,193,255,238,253,99,255,146,0,181,1,125,1,188,254,35,253,143,255,23,1,230,255,237,1, +112,1,13,255,233,255,28,1,64,0,219,254,2,255,112,255,182,1,171,1,199,255,223,0,17,1,55,0,102,0,96,0, +42,254,99,253,244,255,165,1,247,0,39,0,188,255,234,254,27,0,226,0,205,255,1,255,10,255,101,254,165,252,210,255, +106,2,137,0,117,0,62,255,122,255,1,2,220,255,158,255,49,3,174,1,188,255,68,254,19,252,81,255,40,255,11,254, +89,1,134,1,30,4,2,3,102,253,4,254,41,255,147,1,149,2,239,254,254,253,11,1,196,2,20,0,234,254,175,0, +5,2,114,255,80,254,185,0,107,254,51,255,228,0,146,0,232,1,132,255,191,255,178,0,211,254,18,255,4,0,10,0, +34,1,62,2,73,0,142,255,159,254,219,254,178,255,34,253,155,255,47,2,42,0,176,0,80,1,110,255,32,255,75,0, +72,0,242,255,181,0,33,0,167,253,205,255,244,255,54,253,91,0,18,2,44,1,92,0,254,255,127,0,254,0,56,255, +70,253,168,0,205,255,16,254,192,1,50,1,99,254,61,255,156,0,177,255,254,0,114,1,252,255,88,0,176,254,168,254, +233,2,144,2,157,253,248,254,18,1,199,255,212,0,41,1,203,255,28,254,61,254,210,255,51,2,148,255,25,252,54,2, +171,3,83,255,80,255,138,0,40,255,36,254,201,255,15,0,162,1,96,1,243,255,132,0,195,255,166,255,216,255,132,0, +235,255,37,0,138,0,210,254,86,255,75,0,170,255,45,255,223,0,147,0,62,0,129,0,130,255,255,0,66,255,70,255, +100,0,70,254,234,255,214,0,41,0,243,255,68,0,250,0,87,0,227,254,174,255,212,1,175,255,102,254,101,255,98,0, +29,1,34,255,136,253,188,253,191,1,9,4,4,2,50,1,186,254,83,254,12,0,41,0,75,255,204,253,100,255,115,0, +21,1,86,1,3,255,62,255,133,0,105,0,78,255,214,0,172,1,220,255,69,1,251,255,75,255,8,1,55,1,105,0, +48,252,175,252,225,0,131,1,59,0,171,255,168,255,172,255,99,1,88,0,162,254,140,254,206,255,181,2,204,2,47,1, +171,254,19,254,62,0,208,2,4,2,101,254,63,255,158,255,182,254,231,255,166,255,176,255,82,1,2,1,253,255,198,255, +207,254,115,255,45,0,165,0,129,255,244,253,193,254,165,255,82,2,253,0,151,255,106,255,3,254,77,1,53,2,141,2, +209,0,249,254,113,1,203,0,226,0,173,255,211,254,90,255,166,254,37,0,235,255,249,254,172,254,62,1,247,3,126,254, +160,252,8,2,47,255,127,252,247,0,58,2,243,1,37,0,176,255,126,255,143,254,2,0,2,255,27,2,223,0,198,252, +70,1,227,0,227,0,164,2,181,255,12,254,226,254,14,0,201,254,123,0,155,1,152,255,254,255,255,255,168,1,156,1, +184,254,100,254,104,0,179,2,8,0,84,254,39,1,230,0,182,254,141,255,45,2,204,1,213,255,32,255,113,255,236,254, +43,255,126,0,172,255,50,0,149,0,87,1,251,255,52,253,101,255,72,255,251,0,132,0,73,253,109,1,4,2,36,255, +75,255,90,1,176,0,91,255,234,255,166,255,119,0,198,255,214,0,209,254,177,253,86,2,39,0,11,254,7,255,174,255, +12,255,255,254,83,254,236,252,182,1,211,0,50,253,123,255,85,3,0,1,124,253,244,5,153,2,215,250,4,2,140,2, +164,255,92,255,2,255,44,1,41,1,4,1,232,0,163,254,148,255,33,1,139,0,62,1,168,255,161,254,83,0,5,0, +7,0,36,0,10,254,56,252,125,254,226,1,8,0,85,254,253,0,207,2,36,2,9,254,232,251,178,254,234,0,3,2, +80,0,202,0,1,2,252,255,254,254,184,253,225,255,177,0,229,0,44,2,159,254,109,255,88,2,76,1,28,254,47,255, +44,2,141,0,214,0,248,254,24,254,241,0,91,1,27,254,29,249,167,252,138,1,59,2,120,3,114,1,218,253,24,253, +12,0,138,1,78,2,136,1,72,254,149,0,46,1,234,255,83,0,2,252,13,254,71,2,12,255,193,254,143,254,218,255, +77,1,82,254,143,1,236,2,92,0,237,255,203,253,183,255,10,255,133,253,236,2,102,2,114,255,31,0,253,0,226,1, +157,1,28,2,198,255,0,254,17,0,159,0,12,0,105,254,221,255,160,0,90,255,136,0,184,255,34,254,34,252,171,254, +208,3,78,3,248,0,172,255,145,0,155,255,133,255,154,0,146,255,106,2,4,1,64,252,172,254,8,2,238,1,250,254, +98,253,4,0,103,255,240,254,175,1,79,1,200,0,77,255,54,255,54,0,144,254,121,254,254,253,233,255,69,1,97,0, +10,2,47,1,253,254,131,255,11,1,225,255,173,0,83,2,125,0,109,0,129,255,138,254,123,255,221,0,160,1,4,0, +108,255,37,0,212,254,104,253,96,255,114,0,241,255,92,253,62,252,125,0,162,1,54,2,128,1,232,254,25,0,16,0, +185,254,229,0,130,3,109,1,202,255,140,254,157,254,154,255,158,254,209,255,196,253,136,1,76,4,11,255,138,2,131,1, +135,255,53,2,63,254,167,252,79,255,77,2,83,1,65,255,88,255,123,254,125,0,76,1,13,0,98,0,104,255,241,254, +253,255,240,255,180,255,207,255,242,255,251,2,140,2,82,253,135,253,21,253,154,253,107,2,93,1,207,0,88,1,223,255, +28,0,206,254,215,253,50,255,55,1,164,0,69,255,4,1,73,2,251,0,231,255,254,254,166,252,94,254,233,255,229,255, +103,2,102,1,138,0,16,0,253,254,84,255,73,0,73,1,16,255,105,254,85,255,135,0,180,0,100,255,44,0,213,255, +226,1,203,1,205,253,152,254,13,255,43,0,220,0,221,253,53,1,43,3,228,254,55,255,46,253,207,252,41,1,57,0, +14,1,253,1,242,0,107,255,58,253,123,255,111,0,140,255,243,255,157,1,120,1,134,253,207,254,210,1,41,0,73,0, +37,1,217,254,189,254,155,1,177,1,64,0,190,0,193,0,193,255,74,0,117,0,153,255,174,254,30,255,213,1,180,0, +86,253,208,255,107,2,103,0,172,255,196,0,169,1,188,0,104,255,151,255,240,253,131,254,148,1,71,1,243,254,218,254, +78,0,213,255,59,0,7,0,200,253,6,254,114,0,227,0,61,1,36,2,164,255,157,0,235,1,28,0,96,0,114,1, +125,2,22,255,107,254,110,253,181,248,22,254,119,4,17,3,206,255,238,0,161,2,224,255,16,253,68,254,176,3,137,1, +247,252,96,255,70,1,165,2,80,1,2,253,199,252,51,0,54,1,85,1,155,0,134,254,145,255,172,0,124,2,57,1, +12,253,3,0,51,2,38,0,253,255,227,254,68,255,23,1,51,255,185,254,32,255,95,255,31,2,243,1,60,0,63,255, +100,255,173,0,241,255,233,254,87,255,89,0,7,0,193,0,19,2,45,0,143,254,86,255,253,0,195,1,5,1,26,255, +47,254,145,0,75,0,152,253,54,0,4,1,155,254,62,0,245,0,116,0,178,255,61,255,70,0,209,255,95,0,41,2, +254,1,177,253,58,252,34,0,143,1,4,1,235,255,218,0,222,0,2,255,32,255,28,255,45,0,65,0,140,255,19,255, +253,255,126,1,5,0,121,255,238,254,113,0,138,1,94,0,111,2,152,0,148,253,142,254,245,255,63,1,55,0,29,255, +198,255,192,0,188,0,148,255,211,254,96,254,99,255,183,0,132,0,97,255,66,255,102,0,37,0,119,0,85,255,42,255, +236,1,138,255,67,0,144,1,54,253,73,255,213,1,250,0,240,1,246,255,174,252,227,254,214,1,239,0,2,0,85,255, +82,0,97,0,116,255,98,0,242,255,119,255,4,255,167,0,165,2,122,0,10,254,146,255,187,1,4,0,212,255,42,0, +57,0,233,255,17,254,193,255,108,0,209,0,88,0,45,254,130,255,126,0,22,1,32,0,208,255,96,1,135,254,223,253, +154,1,31,1,137,254,149,255,234,0,121,254,43,254,196,0,136,255,30,255,36,0,10,2,8,2,188,253,34,1,83,2, +191,254,155,255,27,255,11,0,239,255,46,0,226,0,41,0,239,0,119,0,118,255,28,254,209,0,250,255,229,254,221,1, +26,253,242,255,130,3,7,254,51,255,159,0,165,254,244,253,87,254,165,1,7,4,153,255,225,252,147,255,143,2,31,3, +53,255,93,255,123,255,215,254,39,1,244,254,26,0,191,0,237,254,52,1,43,1,44,1,207,0,35,255,249,255,92,0, +192,254,181,254,95,0,104,0,152,0,30,1,175,255,210,253,174,255,3,1,117,255,20,1,48,1,9,1,11,1,224,254, +207,255,115,254,7,254,72,0,75,0,9,0,109,254,30,254,197,254,66,1,207,2,15,1,103,255,14,254,133,2,251,2, +17,255,59,0,3,255,115,255,244,255,68,254,188,0,238,0,183,255,228,1,84,0,227,254,102,0,132,254,51,0,49,0, +39,254,57,0,64,255,150,0,157,0,247,255,231,0,58,255,41,1,173,0,188,255,232,255,143,254,87,0,65,0,153,255, +5,1,48,1,139,0,186,0,94,255,180,254,114,0,205,255,241,255,52,0,144,254,43,255,84,1,0,0,128,253,161,0, +88,2,114,255,105,255,99,1,44,1,129,255,156,255,42,1,240,254,152,253,57,2,114,1,5,255,120,1,168,255,106,254, +30,1,169,0,227,255,137,1,12,0,173,255,114,1,7,0,238,254,14,255,74,0,100,254,62,254,247,1,15,0,202,255, +244,0,54,255,59,255,119,1,96,1,190,253,239,252,217,255,222,2,84,0,252,254,165,0,227,254,131,0,10,1,27,255, +171,254,149,255,93,0,79,255,124,1,70,1,0,0,166,0,171,254,45,254,4,255,251,255,0,0,221,0,47,2,44,0, +178,255,131,0,125,0,218,0,88,0,65,0,63,0,15,255,155,254,74,254,245,254,78,0,156,0,144,0,128,255,206,0, +168,0,86,254,94,0,14,1,144,0,131,254,127,252,191,0,21,2,35,255,132,254,252,0,58,2,253,254,211,252,178,252, +167,254,119,0,25,255,162,0,56,3,77,1,159,255,105,1,168,0,8,255,167,1,48,2,80,255,162,253,210,255,21,2, +60,1,48,0,136,254,7,255,172,0,52,1,234,255,99,254,8,255,104,252,39,255,26,3,232,252,202,253,111,4,193,2, +40,0,25,0,202,254,184,255,178,255,70,254,255,255,236,0,158,0,140,255,41,0,244,255,42,255,205,0,215,255,188,0, +223,0,96,255,164,255,53,0,76,0,147,253,30,255,14,0,180,254,138,0,201,1,74,2,247,255,172,255,181,0,43,0, +176,254,75,253,198,1,211,2,65,255,86,255,244,255,206,255,196,255,234,255,40,1,31,1,52,255,162,254,98,254,243,254, +217,254,143,0,205,2,175,255,110,255,225,255,209,255,32,0,153,254,49,0,239,0,197,0,178,254,211,253,2,1,84,0, +128,254,105,255,7,2,148,1,176,0,250,1,234,255,186,253,27,254,231,0,84,2,73,0,194,254,248,254,39,0,106,255, +141,254,177,0,71,2,189,0,62,255,124,254,114,254,49,1,209,1,35,0,205,0,21,0,186,254,159,0,193,0,201,254, +206,254,146,255,84,0,43,0,120,255,113,255,48,0,187,0,199,255,147,255,211,255,134,255,87,255,39,0,227,0,250,254, +196,255,156,1,150,255,214,255,87,0,42,255,225,255,32,0,209,255,17,0,56,1,110,0,72,254,1,0,109,1,92,0, +222,255,170,255,60,255,216,0,119,1,57,255,71,0,139,255,190,253,200,255,41,0,25,0,108,255,60,255,244,0,223,1, +227,0,14,254,172,253,121,255,130,0,115,1,156,1,138,255,194,254,158,255,49,1,32,2,154,254,121,255,134,1,18,255, +23,255,212,254,230,255,125,0,120,255,154,255,118,254,72,255,110,0,236,0,88,1,158,0,223,0,248,255,149,254,71,0, +195,1,137,255,49,254,150,0,244,0,18,255,69,0,25,1,246,255,68,0,168,255,154,254,48,0,238,255,201,253,246,255, +89,0,196,255,105,1,2,0,134,1,234,0,185,253,69,0,12,1,180,254,151,254,114,0,12,0,177,0,47,1,139,255, +25,0,196,254,228,254,26,0,114,255,244,254,144,254,128,255,39,0,99,1,220,0,224,0,142,1,239,255,111,255,18,255, +233,0,122,0,136,254,84,0,173,1,214,0,216,254,57,0,16,255,26,254,141,1,153,0,53,1,250,255,107,252,100,255, +179,1,19,1,62,255,101,255,36,1,238,0,74,1,254,255,248,255,122,0,211,254,27,0,126,0,21,0,6,0,169,254, +80,254,178,255,81,1,7,0,192,255,149,0,128,0,48,0,44,255,156,255,100,255,220,255,211,0,238,0,6,0,77,254, +152,255,147,0,249,0,51,1,74,0,82,254,135,253,213,0,121,2,251,1,220,254,179,252,107,0,211,2,122,0,180,253, +15,255,8,0,247,255,37,1,141,1,92,1,178,255,59,255,100,255,207,255,212,0,50,255,7,255,209,1,152,1,24,0, +137,0,168,255,103,0,89,1,169,255,243,254,22,254,108,255,169,0,172,254,221,255,205,1,226,255,24,255,1,0,215,0, +134,0,24,255,82,0,241,255,159,255,223,0,83,0,124,0,126,255,223,0,50,1,224,254,60,0,231,0,50,0,231,254, +39,255,142,0,89,0,62,255,84,255,28,1,138,0,83,0,238,255,209,254,26,255,84,255,248,0,92,1,4,0,114,255, +195,255,54,0,126,0,87,0,244,255,250,255,208,255,199,255,51,255,134,255,92,255,138,255,6,1,219,0,241,0,213,255, +55,0,47,1,30,0,91,0,119,0,250,255,162,255,125,0,49,254,0,254,115,2,168,1,64,0,167,255,207,255,100,0, +120,254,237,254,140,0,213,0,106,0,207,255,210,255,55,0,17,0,214,255,215,254,220,253,103,255,85,0,92,0,34,0, +132,0,217,1,23,1,175,255,91,255,208,255,14,0,6,0,220,255,31,0,38,0,191,255,107,0,73,0,175,255,26,255, +43,255,25,0,209,0,37,0,75,255,149,0,9,0,60,0,132,0,220,254,3,0,219,0,131,0,31,255,112,254,138,0, +80,1,155,255,42,255,161,0,32,1,5,1,48,255,226,254,141,0,189,0,68,1,72,0,154,255,13,0,146,255,240,255, +108,0,45,255,116,255,225,0,92,0,189,255,41,252,103,253,135,3,195,1,12,254,72,253,227,0,198,2,24,255,66,255, +18,0,191,255,45,1,56,0,196,254,77,0,130,0,172,0,108,1,145,255,178,255,89,0,31,0,211,0,31,0,43,255, +201,255,100,0,198,255,183,255,202,0,56,1,104,254,38,254,18,1,114,255,138,255,193,1,32,1,142,255,228,254,159,255, +98,0,119,1,69,255,148,254,205,1,32,0,228,253,191,254,133,0,143,1,19,0,55,255,128,255,93,0,195,0,36,0, +103,0,113,255,243,254,230,0,134,1,183,255,41,255,167,1,224,255,164,253,14,0,236,255,242,0,189,1,76,0,120,0, +111,255,153,254,91,254,235,255,178,1,116,0,114,255,98,255,71,255,101,255,63,0,210,0,6,1,70,255,119,255,165,2, +203,0,139,255,75,0,50,0,23,1,33,0,233,255,220,255,5,255,15,0,13,1,92,0,192,255,115,255,185,254,25,0, +240,0,31,0,82,0,140,0,20,0,212,255,37,1,73,1,175,255,103,254,152,254,195,254,141,254,165,1,200,1,232,254, +96,254,21,255,174,1,28,2,221,1,176,1,180,255,234,254,136,254,45,0,88,1,138,0,78,0,146,0,72,1,67,0, +138,255,219,254,38,255,56,1,46,0,83,255,144,255,7,255,54,0,198,2,232,1,91,254,195,254,237,255,114,0,106,0, +188,254,184,0,212,1,38,255,229,253,130,254,66,0,201,0,15,0,190,0,175,1,224,1,220,1,190,255,211,253,180,255, +102,0,15,255,64,255,104,0,32,1,185,0,166,255,218,253,170,254,70,1,227,1,128,1,165,254,52,253,63,255,64,0, +243,254,212,254,251,0,133,255,207,255,228,1,67,0,64,255,3,255,198,0,67,0,202,255,13,2,137,0,156,255,125,255, +232,255,38,0,17,0,218,0,2,255,237,254,129,0,70,1,244,255,206,254,172,0,231,0,255,0,140,0,243,254,225,254, +147,255,206,255,51,255,82,255,138,0,51,0,67,253,253,253,95,1,21,2,69,1,205,255,164,255,182,255,66,0,213,0, +175,255,23,254,70,253,0,0,80,2,39,1,199,255,94,254,108,254,42,1,171,1,157,255,227,254,244,254,227,255,107,0, +40,0,6,0,156,0,134,0,79,255,182,0,36,1,152,255,129,254,216,254,13,0,16,0,132,0,88,255,41,255,168,0, +219,0,16,0,24,254,166,254,95,0,73,1,35,0,13,254,140,253,67,254,133,1,204,2,241,1,192,0,144,255,240,0, +173,0,72,255,16,0,244,255,236,255,208,255,48,254,111,255,253,0,123,1,113,0,131,254,217,255,191,255,212,0,147,0, +147,254,56,1,18,1,122,255,150,255,186,255,10,0,169,0,226,255,133,255,12,0,144,253,58,0,167,1,182,254,56,255, +115,255,98,1,72,1,47,0,28,1,237,0,236,255,146,254,167,254,4,254,9,255,48,1,174,1,83,0,67,254,24,255, +124,255,32,0,98,1,239,0,83,0,152,255,57,255,132,0,114,0,86,255,194,0,28,255,203,254,100,0,97,254,152,0, +48,1,123,254,69,0,244,1,73,1,238,255,113,255,250,255,42,0,149,0,132,255,205,253,179,254,185,255,94,0,92,0, +56,0,166,0,96,0,88,0,13,255,127,255,46,0,43,0,180,0,108,255,123,0,5,1,210,0,121,255,156,254,81,254, +73,249,202,251,42,2,234,2,24,2,248,1,233,1,125,0,24,3,232,2,46,255,107,255,214,255,38,0,126,0,131,0, +233,255,112,255,135,255,32,0,148,255,164,253,146,254,225,0,18,1,156,255,13,0,39,0,55,0,73,1,17,0,213,254, +151,254,190,0,75,0,101,254,250,254,0,255,176,1,126,1,62,254,62,254,252,0,8,2,7,0,168,254,224,252,82,255, +226,1,96,1,255,0,137,253,205,254,76,2,43,1,73,0,65,1,252,1,197,0,124,255,242,253,130,254,183,255,111,254, +3,0,128,1,155,0,180,0,20,0,141,254,63,254,204,255,139,0,210,0,43,1,226,255,230,255,205,255,29,255,117,255, +122,0,145,1,184,255,130,255,154,0,233,255,124,255,54,255,114,0,197,255,233,254,92,255,204,255,241,255,42,254,171,0, +216,1,235,254,180,255,243,1,16,2,119,255,30,255,118,255,183,254,44,0,180,255,134,254,143,0,192,1,4,0,189,255, +253,255,45,0,67,0,26,254,228,254,167,1,177,2,186,1,230,255,169,255,176,255,70,0,44,0,153,255,62,254,117,254, +178,2,99,2,155,255,122,254,47,254,82,0,151,0,58,0,134,0,149,255,193,254,224,255,218,1,139,0,95,255,117,255, +92,254,231,254,89,0,154,255,97,255,171,1,86,0,64,255,242,1,154,0,145,255,193,0,0,0,96,255,239,254,36,0, +84,1,123,255,52,255,124,0,35,0,158,0,103,0,151,255,159,1,148,1,217,254,6,254,203,254,223,255,92,255,45,255, +109,0,25,0,199,255,27,0,52,0,41,0,155,0,236,0,223,255,57,1,225,0,64,254,130,255,158,0,140,1,8,1, +102,254,64,254,200,255,152,0,179,255,197,255,41,255,3,255,202,1,195,1,95,255,79,255,81,1,132,1,160,255,155,254, +47,255,195,254,117,0,11,3,218,254,65,254,51,2,142,1,128,255,49,255,70,0,70,0,144,1,47,1,143,255,46,0, +117,254,254,252,132,255,239,3,91,2,0,254,255,253,250,254,95,255,94,255,224,0,120,0,251,255,181,0,245,254,78,255, +134,0,100,0,127,255,33,255,237,255,116,0,184,255,233,254,200,0,227,1,16,1,60,255,19,254,167,255,199,1,225,1, +122,0,58,0,77,255,5,255,54,0,180,0,253,255,172,254,226,254,204,255,30,1,94,0,13,0,54,1,120,0,160,0, +166,255,67,254,0,255,220,255,115,255,89,255,42,0,205,255,223,255,40,0,119,0,14,0,67,255,194,254,25,254,65,255, +71,0,68,1,42,2,226,1,242,0,158,255,70,255,81,0,228,0,86,255,5,0,181,1,129,255,201,252,132,253,56,0, +245,1,215,1,43,1,166,0,78,254,105,254,168,255,241,255,76,0,165,255,219,1,95,0,49,255,194,255,245,253,193,255, +116,255,124,0,80,1,151,1,143,0,223,250,14,0,213,4,40,0,68,255,74,1,232,0,206,254,30,255,179,0,78,255, +114,254,225,0,71,254,38,254,171,2,213,0,70,0,221,0,72,0,47,255,182,254,51,0,211,255,240,255,161,255,224,255, +214,255,99,255,132,0,66,0,181,255,169,0,100,1,28,255,167,255,241,0,18,0,26,0,218,254,176,0,205,0,118,254, +108,255,142,0,4,1,195,255,188,255,208,0,42,0,213,255,194,255,155,255,10,0,183,254,122,253,223,255,249,255,87,254, +210,0,147,2,104,0,244,254,107,254,117,255,228,0,174,254,3,255,118,1,249,2,234,1,39,255,53,0,101,255,46,255, +178,0,220,255,178,0,220,0,192,255,145,0,162,0,159,254,69,255,47,254,136,253,129,3,199,4,141,0,224,254,98,0, +236,255,186,254,137,0,193,0,243,0,49,0,94,254,37,255,19,0,58,0,197,255,150,255,227,0,88,0,32,254,2,0, +23,1,253,255,65,0,179,254,97,255,224,0,79,0,167,0,79,255,8,255,147,1,72,1,113,0,51,0,124,255,227,0, +4,0,40,255,210,254,216,253,101,0,84,1,82,1,152,255,139,254,83,1,80,1,233,0,28,0,87,255,50,255,64,255, +114,0,253,255,173,0,174,0,108,255,62,255,177,254,190,0,162,1,24,255,70,0,111,0,76,254,94,0,210,0,191,255, +164,255,32,0,191,255,218,254,96,2,21,1,133,254,69,0,114,255,131,0,134,0,206,254,246,254,86,255,141,255,111,0, +247,1,243,0,8,0,69,255,109,255,198,0,184,0,127,0,119,255,120,0,58,255,171,254,254,1,113,0,14,1,194,0, +202,253,245,255,108,0,234,0,228,0,146,255,73,0,210,254,51,255,210,0,64,0,114,255,78,255,71,1,203,0,48,255, +14,0,144,255,47,255,31,0,145,255,74,255,112,1,64,1,132,254,19,255,75,1,244,0,151,255,200,255,27,0,160,0, +206,0,154,255,154,255,242,255,48,0,12,0,149,255,93,0,185,255,129,255,71,0,128,255,218,255,141,0,87,0,88,255, +49,255,199,255,74,253,203,253,191,1,193,1,189,255,72,255,180,0,198,0,102,0,3,0,12,255,62,0,244,255,234,255, +44,1,145,1,26,1,255,253,57,254,240,255,252,255,184,0,52,255,171,255,9,1,23,0,97,0,62,0,183,255,123,255, +231,255,48,1,177,0,66,0,151,0,40,255,55,255,58,1,246,255,88,254,186,255,110,0,227,255,89,255,132,255,245,255, +244,254,8,255,32,1,91,0,97,254,144,255,86,0,85,0,100,1,74,1,236,255,215,255,79,1,67,0,209,253,128,254, +223,0,54,1,185,0,117,0,188,254,123,255,179,0,154,255,247,254,221,254,155,0,229,0,70,0,169,0,76,0,219,255, +213,254,98,254,31,255,9,2,149,1,220,254,100,0,169,0,0,0,31,255,155,255,178,0,4,0,42,0,73,254,121,254, +210,255,154,255,97,0,201,0,75,1,15,0,191,0,232,0,6,254,39,0,66,1,17,255,23,0,28,0,250,254,197,255, +114,255,12,255,151,255,15,0,13,1,154,0,192,254,20,255,238,255,112,254,168,255,10,2,230,0,79,255,83,255,111,0, +195,255,48,255,121,255,2,0,46,1,25,0,186,255,92,0,99,1,2,1,184,253,236,253,212,255,222,255,28,255,46,254, +225,255,158,2,164,1,37,0,243,0,209,0,244,255,40,255,75,255,84,255,110,255,101,1,10,0,196,252,151,254,217,1, +66,1,111,0,114,0,208,255,8,0,73,0,218,0,40,1,205,255,6,255,33,0,192,0,169,0,46,1,117,0,14,254, +238,252,82,255,91,1,141,0,45,255,123,255,200,255,252,254,32,1,15,1,11,255,26,0,40,0,217,0,58,2,179,0, +2,255,23,0,1,255,123,254,15,2,39,2,17,0,160,255,70,0,77,255,57,255,0,0,230,253,207,253,203,254,137,1, +52,3,6,1,57,255,109,254,112,0,81,0,188,254,157,255,48,0,222,255,250,255,162,0,65,1,139,1,140,254,164,254, +253,255,67,254,12,0,229,0,131,0,62,0,158,255,164,255,80,0,142,1,71,1,143,1,249,254,106,253,64,0,36,0, +112,0,144,1,68,0,124,255,174,255,193,255,147,255,25,255,189,255,65,0,232,0,82,1,43,0,136,0,178,253,212,252, +12,2,204,1,202,255,178,0,232,255,14,255,189,0,22,1,111,0,39,0,222,254,201,255,172,255,187,254,7,0,158,0, +8,0,23,0,41,1,185,0,209,255,198,253,208,252,203,0,217,1,151,255,60,2,178,2,89,254,5,0,131,2,130,1, +208,255,155,254,179,255,136,254,17,255,58,1,121,0,206,255,243,254,31,255,115,0,190,0,190,255,208,255,209,255,244,254, +27,0,255,0,80,0,54,0,134,0,34,0,59,0,200,255,105,255,127,0,159,1,51,0,114,253,177,255,231,1,89,1, +114,255,89,254,163,255,151,254,54,255,27,0,165,2,26,2,184,252,33,0,72,2,75,0,119,255,238,254,167,255,178,254, +158,255,48,1,193,0,142,255,85,255,171,255,70,0,116,0,22,0,186,0,204,254,105,0,228,1,103,255,183,0,1,0, +115,254,8,0,247,0,211,255,149,255,223,255,204,255,69,0,193,254,166,254,151,255,151,1,150,2,104,0,183,255,86,254, +32,255,152,1,229,1,26,2,248,0,249,254,211,254,132,255,220,255,246,0,66,0,140,255,109,0,70,1,191,0,164,253, +62,254,198,0,118,255,10,254,147,0,12,2,229,255,167,255,247,255,95,0,206,255,56,254,134,254,96,255,71,1,107,2, +231,0,43,255,135,0,225,1,235,255,18,254,242,253,203,254,247,255,216,254,106,253,168,2,41,5,70,1,146,255,91,255, +191,0,185,254,245,253,11,1,91,0,111,0,54,0,58,255,200,255,249,255,129,255,163,255,137,0,148,255,109,254,85,255, +122,1,84,1,8,1,149,1,42,0,153,0,68,0,95,254,127,255,64,1,143,0,54,255,221,254,180,255,130,0,63,255, +49,0,197,1,16,0,232,254,7,255,139,255,154,255,181,255,34,1,32,1,85,255,160,255,225,254,150,254,38,1,206,0, +152,1,231,0,42,254,188,254,255,255,107,2,124,0,170,254,18,1,31,1,174,0,28,255,164,254,123,255,33,0,218,1, +134,0,0,255,70,0,90,0,99,255,112,255,36,255,140,254,102,255,69,1,182,1,120,255,119,253,91,254,95,0,205,255, +144,255,73,2,210,1,125,254,36,254,209,255,30,1,204,1,115,1,49,0,93,255,234,255,158,255,65,0,161,2,247,254, +63,250,27,254,175,3,14,3,107,255,71,255,14,1,7,1,164,0,18,1,241,0,52,0,97,0,6,255,249,253,116,0, +210,255,27,254,145,1,146,2,108,255,242,253,229,254,108,0,16,0,234,255,187,255,148,255,149,1,192,255,189,252,85,0, +90,3,155,0,122,254,31,255,180,0,144,0,237,253,27,255,208,1,125,1,9,1,195,255,135,255,9,0,53,255,121,255, +31,0,10,1,26,0,112,254,82,0,157,0,39,0,207,0,174,255,60,0,245,255,122,255,147,1,207,255,37,254,87,0, +171,1,192,1,176,253,36,251,82,0,35,2,70,1,145,1,175,254,79,254,148,255,55,0,217,0,205,255,19,0,96,0, +219,0,141,0,98,254,39,255,130,1,113,1,6,255,15,255,72,1,173,0,102,254,7,254,225,255,153,0,72,0,208,255, +30,0,103,0,16,255,229,0,250,1,152,255,235,254,11,255,158,0,169,1,78,0,50,255,123,255,49,0,66,255,73,0, +18,2,230,0,47,255,247,253,221,255,183,1,170,255,9,255,207,0,24,1,49,0,155,255,136,254,81,255,125,1,20,1, +18,0,115,255,219,254,196,255,226,0,29,1,100,0,248,254,1,0,182,1,0,1,163,255,205,254,183,0,120,0,105,253, +199,254,55,1,232,1,158,0,76,255,40,255,176,254,74,1,110,2,124,255,56,255,145,0,138,255,229,254,179,255,13,0, +209,0,225,0,171,0,99,0,36,255,246,255,19,0,103,254,173,254,128,254,250,255,5,3,101,0,21,254,252,255,115,0, +76,1,34,2,12,255,154,252,243,255,199,1,124,0,71,1,186,255,110,255,114,1,48,0,235,255,25,0,197,0,47,2, +44,255,240,253,143,0,1,1,125,0,215,254,214,254,26,0,12,255,81,0,206,1,114,1,24,0,29,254,218,254,185,0, +4,2,118,0,92,254,154,254,170,254,15,1,98,2,94,0,16,0,206,255,199,254,221,254,98,0,210,0,100,255,194,255, +114,255,146,255,45,1,237,255,17,255,106,254,77,254,21,0,173,0,206,0,180,0,4,1,41,1,13,0,215,254,219,255, +253,0,246,255,188,255,157,255,154,255,248,253,58,255,160,3,43,2,67,255,118,253,73,254,19,0,198,255,178,255,3,0, +152,1,167,0,133,0,198,255,161,253,240,255,75,0,48,0,183,0,10,0,116,0,11,0,169,254,72,254,243,253,226,253, +160,0,61,1,228,1,252,2,214,0,10,1,90,0,112,253,128,253,140,0,49,1,207,0,90,1,174,254,47,254,143,255, +84,0,180,0,250,254,115,255,227,1,247,255,108,252,159,255,153,2,165,1,154,0,137,254,230,254,235,255,37,0,8,1, +151,0,215,254,64,254,124,255,95,1,178,1,223,255,9,0,81,0,135,0,15,0,83,254,118,0,243,0,150,255,228,255, +88,255,241,254,211,254,140,255,124,0,95,0,34,0,203,255,191,255,30,0,54,255,215,255,227,0,187,255,33,1,188,1, +219,255,91,255,36,255,210,253,108,254,221,0,140,0,18,1,191,1,177,255,56,254,21,255,119,0,208,255,27,255,114,255, +188,0,58,1,166,1,60,0,196,254,70,0,5,255,84,255,40,255,102,255,79,2,113,1,235,0,225,255,39,255,75,255, +80,255,206,255,245,0,194,0,231,253,109,255,118,0,172,0,92,0,149,255,98,255,135,0,243,4,122,253,145,251,55,2, +155,255,42,0,56,0,192,0,78,1,86,255,51,255,95,254,141,254,172,0,128,2,40,0,209,0,178,0,185,255,77,255, +166,252,56,2,161,1,44,253,8,255,128,0,209,0,237,254,214,0,1,1,5,0,76,0,84,255,225,254,183,254,50,1, +78,1,103,2,126,1,0,254,176,255,69,0,1,254,174,252,31,0,236,1,156,1,122,1,13,255,72,255,67,0,109,0, +18,255,1,255,19,0,79,0,46,1,63,0,79,0,14,0,144,255,173,255,64,255,157,255,154,0,211,0,50,255,36,0, +146,255,80,254,228,0,112,1,68,0,104,0,206,0,252,254,193,255,1,1,71,255,93,0,237,0,171,255,25,255,237,254, +159,255,67,0,109,255,159,0,201,0,174,253,6,0,40,2,228,0,113,255,45,254,101,255,140,255,166,255,9,0,75,0, +59,1,76,2,131,1,140,254,61,254,152,254,122,255,175,0,102,0,190,0,122,1,196,0,64,255,108,255,143,255,20,0, +208,255,64,0,102,1,221,255,105,255,124,254,47,255,143,0,119,0,143,0,183,255,128,0,51,255,134,254,33,0,54,0, +167,255,162,255,164,0,155,255,252,255,156,255,96,254,132,0,193,1,64,1,198,255,164,255,97,255,85,0,130,1,170,255, +167,254,67,255,227,0,188,255,255,255,19,1,169,255,21,0,7,0,223,255,106,253,231,253,103,1,2,1,53,1,68,0, +112,0,157,0,155,255,156,0,167,255,222,255,191,0,110,255,115,255,40,0,116,255,108,255,103,255,189,255,179,1,58,0, +70,255,196,0,201,255,159,255,100,0,21,0,242,255,178,0,73,1,133,0,73,255,72,254,90,254,176,255,184,0,120,0, +163,0,107,1,154,255,214,254,152,0,117,255,222,255,30,1,158,255,56,255,214,253,160,254,235,1,248,1,222,255,101,254, +6,0,221,1,130,1,7,0,69,255,122,255,100,255,90,255,69,255,241,0,252,0,184,254,191,254,232,0,88,2,40,1, +148,0,83,255,49,255,204,1,25,1,6,255,245,253,211,254,73,1,255,1,220,255,12,255,206,0,147,255,32,255,57,0, +81,255,125,255,47,0,231,255,63,255,150,255,124,0,197,255,106,254,58,0,84,2,169,0,224,255,10,0,25,0,230,255, +118,254,21,255,213,0,196,1,104,0,113,254,174,255,217,0,168,0,63,0,204,255,246,255,160,255,212,255,125,0,68,255, +176,254,65,255,140,255,23,1,150,0,71,255,182,0,121,0,196,255,66,0,35,0,236,255,8,255,83,255,40,1,253,0, +80,255,244,255,110,0,211,254,41,255,194,0,26,2,228,0,217,254,86,255,158,255,174,0,122,0,137,255,18,0,98,255, +89,255,129,255,169,255,163,0,224,0,229,255,227,255,88,0,83,254,122,254,14,1,180,0,243,254,184,255,141,255,141,255, +190,1,159,255,163,255,137,0,23,255,68,1,95,1,44,0,191,253,100,253,205,0,179,0,194,1,36,2,149,255,238,254, +215,254,130,255,190,1,53,0,128,253,124,255,239,255,77,0,45,1,151,0,74,1,160,0,183,0,69,0,53,255,31,0, +39,0,243,255,98,255,78,254,125,255,26,1,210,254,111,255,124,2,9,0,83,254,68,255,115,0,45,1,108,0,214,255, +41,0,165,0,195,255,217,255,96,0,237,254,39,254,70,255,48,0,99,0,140,0,62,0,154,0,169,0,93,0,93,0, +217,255,129,255,7,0,65,1,80,255,14,253,55,255,113,1,229,255,136,254,181,1,22,2,25,255,133,254,143,255,117,1, +168,0,144,254,221,254,228,0,102,1,84,255,88,255,227,255,14,0,132,1,255,255,245,253,247,255,223,0,148,0,84,1, +147,255,200,254,46,255,114,255,59,1,75,255,30,254,96,0,190,255,125,255,97,1,40,2,180,0,7,0,50,0,223,254, +148,255,97,0,13,0,139,0,150,255,59,255,225,1,157,2,119,254,146,253,96,0,127,1,141,1,149,255,159,254,127,255, +27,1,99,255,49,252,220,0,234,3,69,1,206,255,18,255,148,255,194,0,121,0,140,255,157,255,218,254,120,255,165,0, +222,255,141,255,202,255,234,0,9,255,239,254,76,2,102,1,145,0,163,0,213,255,131,255,197,255,35,255,146,254,225,255, +66,0,52,0,109,255,28,0,113,1,19,0,3,255,167,254,85,0,40,2,189,0,241,254,230,255,24,0,30,255,98,1, +251,0,149,253,31,254,95,1,51,2,206,255,195,254,191,0,46,2,101,0,163,255,31,0,124,255,44,255,49,255,113,255, +55,255,33,1,179,2,81,0,196,254,214,255,110,0,76,255,116,255,25,0,162,0,25,1,21,0,240,254,171,254,53,1, +42,2,214,255,33,255,180,255,185,0,157,0,172,254,65,254,6,0,136,0,118,0,143,0,225,255,91,255,186,255,166,1, +47,1,224,255,234,255,38,255,78,0,77,0,19,255,21,0,238,255,222,255,234,0,54,255,52,254,78,0,194,0,175,255, +173,255,237,0,221,0,156,255,245,254,188,255,115,1,105,255,58,254,231,255,99,0,150,0,58,0,51,0,99,255,238,255, +244,255,239,254,199,1,173,1,134,255,42,255,19,255,241,255,36,0,177,0,203,0,215,255,190,255,14,0,144,0,230,0, +92,255,235,253,224,253,43,254,7,255,40,254,78,255,183,0,165,0,57,2,107,255,37,0,24,2,157,253,106,254,158,0, +135,0,250,0,73,0,181,255,11,0,149,1,217,0,104,255,30,0,49,0,145,255,74,0,9,1,192,255,157,255,5,0, +199,255,137,255,22,255,55,0,89,255,83,254,86,0,80,0,199,0,176,2,151,0,176,254,92,0,161,0,32,0,90,0, +199,255,19,0,244,255,176,254,199,254,171,255,116,0,151,0,100,0,35,0,129,255,62,0,69,0,99,254,6,254,230,254, +188,255,231,0,227,1,127,0,200,254,203,255,49,1,167,1,140,0,146,255,118,255,49,255,122,255,62,255,187,255,209,0, +25,0,81,254,254,254,142,0,98,0,95,1,216,0,170,255,244,255,67,255,13,255,194,255,32,0,86,255,55,0,228,0, +222,255,236,255,10,0,217,0,66,0,127,255,250,255,246,255,201,255,186,255,7,0,79,254,31,255,204,1,92,1,39,0, +104,255,4,1,52,1,76,255,127,254,12,255,80,0,20,0,207,255,49,0,126,0,7,255,62,254,249,254,13,0,118,2, +157,0,224,254,31,1,105,1,221,255,125,254,195,254,91,0,199,0,109,255,199,255,243,254,117,253,14,1,4,2,126,255, +23,0,133,0,52,255,72,0,93,0,134,255,209,1,98,0,154,254,139,255,34,0,86,0,228,254,60,1,187,1,33,255, +223,255,225,255,25,0,234,254,107,254,245,0,53,1,6,1,233,0,254,255,200,255,247,254,159,254,199,0,203,0,87,255, +127,0,98,0,205,255,122,255,109,255,174,0,3,0,123,255,70,255,37,255,19,1,173,0,196,254,218,255,162,0,208,255, +137,255,160,254,153,255,243,1,11,1,200,255,114,0,176,0,171,255,136,255,127,0,173,0,97,255,49,254,247,255,78,1, +190,0,67,255,22,253,3,255,8,1,111,255,25,0,108,1,130,0,84,0,43,0,174,255,95,0,121,0,167,255,171,254, +65,255,13,1,201,0,62,0,17,0,76,255,24,0,55,1,116,0,230,255,104,0,88,0,104,255,97,255,67,0,5,0, +145,255,163,254,77,255,70,1,174,0,73,255,27,253,25,255,245,2,128,1,74,0,237,255,184,255,215,254,144,254,43,255, +6,255,79,1,162,255,253,254,190,1,97,255,119,255,111,255,213,253,173,0,136,1,226,0,3,1,100,255,199,254,75,255, +77,255,123,0,149,1,58,1,151,0,251,255,79,255,153,255,177,0,83,0,118,0,124,0,246,254,229,255,98,0,252,254, +199,254,3,0,46,2,145,1,197,255,19,0,67,0,218,255,82,0,80,0,160,254,64,255,89,255,205,253,34,0,41,2, +181,1,208,0,44,0,33,255,81,254,93,255,166,255,221,0,155,1,208,255,74,255,104,0,25,1,104,0,1,0,144,255, +194,255,171,255,99,255,248,0,49,1,117,0,83,255,54,255,133,255,74,255,216,255,195,254,22,0,91,2,237,0,89,255, +124,255,25,0,39,0,91,0,117,255,164,254,227,255,55,1,66,0,42,255,28,0,198,0,28,1,84,0,27,0,79,0, +120,254,213,253,221,255,107,1,202,0,118,1,197,0,101,255,32,0,149,255,94,0,229,255,9,255,10,1,77,1,158,0, +94,0,250,254,202,254,4,1,128,0,1,0,25,1,163,255,64,255,137,0,143,1,107,255,202,252,147,255,179,1,213,0, +103,0,195,255,19,0,13,0,71,255,252,255,10,255,157,254,209,0,208,1,116,0,14,255,254,255,207,255,36,0,70,1, +95,0,23,0,97,0,131,0,197,254,24,255,144,0,142,255,73,1,129,1,244,254,180,254,50,255,3,255,171,255,64,1, +235,0,214,255,200,0,173,255,1,254,150,0,68,1,160,0,125,255,239,253,84,255,57,0,49,2,210,255,182,253,201,1, +244,0,168,255,24,0,105,255,63,255,151,255,157,255,227,254,184,255,61,0,5,1,86,0,30,255,151,0,157,0,90,0, +98,0,19,255,151,255,218,1,5,1,235,254,146,254,119,255,194,0,165,0,23,255,6,254,14,0,77,0,211,0,66,2, +131,255,53,255,54,255,57,255,54,1,158,1,81,0,96,254,204,254,204,255,59,1,242,0,155,254,71,254,88,0,74,1, +49,255,186,255,240,255,133,255,153,0,58,1,22,1,247,254,9,0,221,0,89,255,135,255,101,0,149,0,4,0,75,0, +155,255,104,255,164,255,67,0,41,0,228,254,85,0,169,0,8,0,143,255,97,0,9,1,119,255,92,255,153,254,165,254, +204,255,34,1,110,1,215,255,204,255,136,0,73,1,99,255,107,254,39,0,105,0,88,0,197,254,198,254,146,0,159,0, +117,0,1,0,162,255,116,255,47,0,243,0,130,255,162,255,179,0,0,0,85,0,178,255,210,254,5,0,89,0,95,0, +233,0,156,0,149,255,117,255,142,255,152,255,113,255,61,255,2,0,151,255,170,255,110,0,15,1,43,1,72,255,47,255, +14,1,142,1,203,255,84,255,107,0,149,255,181,254,238,255,118,1,203,0,123,0,123,0,65,0,198,255,220,254,225,255, +68,0,223,0,100,0,225,254,133,255,15,0,179,0,60,0,141,255,97,255,186,0,223,1,141,255,17,255,240,255,130,0, +96,0,180,254,150,254,81,0,195,1,55,1,162,0,103,255,79,253,69,254,144,0,231,1,4,2,212,255,202,254,26,255, +3,255,54,1,217,1,116,0,54,0,58,0,15,0,228,254,32,255,108,255,151,255,175,0,33,0,16,0,149,0,187,255, +152,255,126,1,7,1,190,255,138,0,43,0,169,255,205,255,65,0,163,255,176,255,53,0,106,255,254,255,185,255,217,255, +254,0,63,1,247,255,193,254,207,255,61,0,198,0,209,255,109,255,52,0,134,255,110,0,187,255,205,255,13,1,123,0, +70,0,126,0,229,0,7,255,242,254,50,1,196,0,8,255,162,254,60,0,185,0,153,0,163,0,122,0,85,255,161,253, +188,254,252,255,203,1,68,2,253,255,206,255,236,254,210,254,30,1,166,1,150,0,187,255,186,255,234,255,148,0,36,0, +237,254,4,255,47,0,38,1,158,0,163,0,150,255,41,255,62,0,133,254,254,254,20,1,62,0,16,255,179,255,40,0, +204,255,184,0,116,0,47,0,148,255,71,255,72,1,196,0,18,0,43,255,95,254,160,0,155,1,75,0,187,255,110,0, +92,254,115,254,44,1,11,255,18,255,40,1,145,0,232,0,87,1,42,0,5,255,35,0,54,0,167,253,157,254,216,1, +105,0,172,253,132,255,12,1,69,255,238,254,102,0,89,1,200,0,46,255,248,254,102,255,243,255,137,0,191,254,123,254, +44,1,113,1,77,0,215,255,61,0,99,0,245,254,139,255,114,0,71,0,211,0,58,0,69,0,11,0,13,254,198,253, +73,1,239,2,91,255,80,255,121,0,80,255,151,255,2,255,231,255,203,0,232,0,122,1,170,255,116,255,136,0,22,0, +4,255,50,255,108,0,73,0,238,0,57,0,72,255,40,0,32,255,244,255,89,0,32,255,226,255,129,255,44,0,10,0, +164,254,209,0,1,2,191,255,194,254,233,0,39,1,90,255,150,255,87,0,104,0,150,255,238,254,63,0,133,0,193,254, +103,255,161,255,230,255,130,1,77,254,22,253,69,0,86,1,2,1,44,1,238,255,45,254,58,0,230,0,169,1,149,1, +114,254,117,255,172,255,33,0,130,0,216,254,152,255,13,0,66,0,250,255,3,1,146,0,45,254,255,255,31,1,160,255, +38,255,104,255,148,255,75,0,232,255,106,0,95,1,216,255,5,0,253,254,247,253,56,0,126,1,23,1,229,255,108,0, +61,0,226,253,248,254,81,1,188,254,104,254,85,2,126,2,161,1,244,254,33,253,4,0,237,255,134,255,123,1,131,1, +210,0,149,255,83,254,33,255,60,0,57,0,192,254,78,255,219,1,96,1,179,0,173,255,10,255,1,0,3,255,98,254, +226,254,200,255,174,0,185,0,106,0,128,1,78,1,90,255,139,0,244,255,92,255,66,0,150,254,128,255,202,0,110,0, +27,0,68,255,49,255,165,254,122,255,203,1,255,0,188,0,26,1,229,254,160,255,42,1,199,0,247,255,222,254,79,255, +189,255,205,0,127,0,111,254,160,255,188,1,85,0,74,255,162,1,132,0,198,253,211,254,248,255,129,255,220,255,76,1, +44,0,193,254,60,0,64,1,201,255,206,253,198,253,58,1,175,2,224,255,36,0,103,0,216,0,206,1,134,255,59,255, +241,255,149,0,190,255,217,254,30,0,146,0,198,0,191,255,174,255,84,0,103,0,124,255,48,255,224,0,69,0,35,0, +0,0,134,255,94,255,101,255,243,0,30,0,94,255,146,0,28,2,126,0,110,253,211,254,82,0,173,0,226,0,63,0, +183,255,164,255,85,0,131,0,61,255,253,254,27,255,145,253,6,255,80,1,181,1,117,1,207,255,204,254,100,255,150,1, +241,0,163,254,43,255,226,0,43,1,31,254,179,253,119,0,212,1,150,0,122,254,131,0,42,2,236,255,45,254,80,255, +55,2,93,1,176,254,127,0,214,0,156,255,85,0,246,254,34,254,214,254,33,1,192,1,52,0,251,0,111,255,199,254, +158,254,24,254,40,1,190,1,187,255,25,254,30,0,224,2,24,1,125,255,79,255,4,255,3,255,93,1,203,2,166,255, +156,253,197,255,240,2,237,1,158,255,229,255,93,254,159,254,188,0,197,0,98,1,9,255,183,253,35,0,97,0,151,0, +100,0,33,255,61,255,131,0,150,255,157,254,9,0,149,0,42,2,101,0,44,253,62,0,73,3,178,0,226,252,101,254, +75,1,251,1,241,0,87,255,143,255,141,255,178,255,220,0,22,1,230,255,87,0,220,255,222,254,185,255,180,254,190,255, +122,1,185,1,24,255,201,251,233,252,167,255,171,4,229,3,224,255,85,255,225,254,142,0,235,0,96,0,64,254,205,254, +140,1,55,0,158,0,165,255,74,255,112,0,20,0,251,0,254,255,156,254,230,254,253,255,186,0,254,0,44,0,74,255, +97,0,96,0,216,255,2,0,135,0,186,255,105,254,243,255,163,0,65,255,250,255,191,0,143,255,64,0,18,0,245,254, +248,255,254,255,74,255,104,254,52,255,131,0,182,0,193,1,113,0,43,255,28,1,12,1,197,254,149,254,229,255,180,1, +174,1,174,255,51,255,203,254,88,255,185,0,147,0,42,255,3,255,80,0,25,255,218,255,218,1,5,0,60,254,248,254, +182,0,121,1,117,1,32,0,56,0,167,255,32,253,173,254,151,0,219,0,177,255,178,255,208,0,155,255,144,0,156,0, +216,255,8,0,197,0,34,1,139,254,191,255,219,0,203,255,222,255,26,0,66,2,203,255,224,252,90,255,199,0,15,1, +206,0,122,255,168,255,207,0,121,0,109,255,8,254,248,254,168,0,88,0,31,0,28,255,132,0,220,0,222,255,79,1, +16,0,134,255,151,0,216,0,145,255,54,255,60,0,206,254,173,255,218,0,125,1,161,1,249,255,8,0,187,254,60,255, +79,0,112,255,138,0,150,255,103,254,139,255,111,255,119,255,246,255,242,254,80,0,55,2,150,0,245,255,199,255,85,255, +189,255,169,255,12,0,146,0,153,0,77,0,188,255,54,255,156,255,140,0,172,0,140,0,202,0,121,0,78,255,51,255, +232,255,113,255,34,255,133,255,153,255,206,0,72,1,36,0,98,0,187,1,208,255,224,250,73,253,59,255,127,253,41,4, +217,3,130,254,170,255,156,254,94,255,207,1,74,2,247,0,75,255,18,255,166,254,205,0,235,1,58,0,12,0,144,0, +52,0,177,255,219,255,3,0,230,255,129,255,124,0,89,0,219,254,235,255,16,0,1,0,55,1,186,0,108,255,111,254, +27,255,122,1,171,1,129,0,36,0,145,254,250,254,112,0,71,0,3,1,215,0,127,0,41,0,59,255,62,255,217,0, +136,1,100,255,228,255,19,255,83,253,116,0,138,1,235,0,78,0,148,255,128,255,15,0,246,0,206,253,84,254,187,2, +40,1,185,254,220,254,36,0,237,0,210,0,122,0,149,254,153,254,197,0,71,1,135,0,83,0,100,0,127,255,198,255, +43,1,45,0,43,255,252,255,0,0,149,255,186,255,133,0,185,0,55,255,94,254,202,255,219,1,191,1,198,255,199,254, +83,255,31,0,87,0,70,255,165,255,145,2,180,1,161,254,206,254,69,0,64,0,28,0,172,0,83,255,8,0,252,0, +139,255,130,255,106,254,219,255,56,1,68,255,92,0,255,0,190,255,217,255,203,255,50,255,93,0,201,0,5,0,124,0, +170,255,33,0,98,2,137,0,55,252,11,253,227,0,199,2,239,1,31,255,207,255,18,0,163,255,171,255,250,252,105,254, +58,1,46,2,219,0,47,254,20,0,163,1,208,0,232,255,33,254,4,254,105,0,229,0,231,0,27,1,35,255,51,0, +56,1,168,255,3,255,91,255,193,0,177,0,57,255,119,254,178,255,83,0,248,254,250,254,178,1,41,2,24,255,171,255, +20,255,162,254,191,0,174,254,31,255,64,0,167,255,98,1,186,1,80,0,184,254,57,254,245,254,194,255,190,0,62,2, +14,1,45,255,220,0,16,1,33,255,71,255,152,1,101,1,102,255,207,255,14,0,185,255,206,255,255,255,252,255,19,0, +180,255,115,255,21,0,189,255,108,0,176,0,46,255,245,253,241,254,58,1,92,0,96,255,152,255,15,0,94,0,226,255, +6,1,157,1,252,255,191,254,141,0,215,0,61,255,147,0,31,0,184,254,139,255,255,255,144,255,248,255,187,0,197,0, +205,0,9,255,17,254,20,255,114,0,185,0,227,254,213,254,117,253,141,254,80,4,73,3,181,0,5,1,194,254,128,254, +101,0,217,255,159,255,130,0,63,0,6,0,230,0,121,0,22,254,10,255,240,0,215,253,159,253,49,2,114,0,55,251, +162,252,135,0,168,1,95,1,71,1,164,0,17,0,235,0,98,254,138,254,32,3,156,1,227,254,184,254,230,0,124,2, +110,255,243,253,225,253,142,255,160,2,188,1,214,255,67,255,91,255,35,1,244,2,16,1,238,254,49,0,124,0,152,255, +47,0,240,255,233,253,27,254,239,0,209,2,64,1,193,254,133,255,42,0,180,255,182,255,2,0,185,0,71,255,62,255, +5,1,31,0,65,0,22,0,126,255,209,0,102,255,205,255,229,0,176,254,144,0,104,1,8,0,224,255,147,253,35,254, +168,0,58,0,8,255,16,1,76,2,171,255,174,255,113,255,121,255,63,1,2,0,255,255,134,0,170,255,122,255,234,255, +192,0,98,0,104,255,88,255,53,0,239,255,19,255,80,255,70,255,147,255,255,255,93,0,3,1,82,1,175,0,172,254, +74,255,142,1,196,0,251,255,60,0,19,0,188,255,106,255,107,255,179,255,228,0,77,255,170,254,11,2,65,0,249,254, +4,1,178,0,216,0,4,255,174,254,142,0,158,255,131,255,31,255,13,255,161,0,6,0,179,254,56,255,38,0,57,0, +164,0,38,1,149,0,47,0,94,0,138,255,245,254,101,255,77,255,202,0,91,1,67,255,181,255,27,1,92,1,199,0, +159,255,43,0,146,255,29,254,94,255,91,0,189,255,188,255,200,0,3,1,17,0,142,255,124,255,159,255,211,255,215,0, +81,1,156,0,127,0,148,254,230,253,8,1,189,1,196,255,229,254,120,255,255,255,92,0,100,0,73,0,67,1,179,255, +211,253,52,0,174,1,0,0,65,254,193,254,132,0,69,1,102,0,64,255,113,0,115,0,53,255,64,0,170,255,38,255, +74,0,215,255,154,255,89,0,41,1,115,0,60,255,241,254,102,255,188,1,88,0,0,254,23,1,250,0,209,254,54,0, +137,0,132,255,255,254,60,0,190,0,212,254,246,255,3,1,61,255,212,255,21,1,22,1,30,0,42,255,81,0,108,0, +233,254,100,255,55,1,66,1,174,255,13,255,243,255,105,0,119,255,240,255,128,1,75,0,15,254,89,255,194,1,252,255, +76,254,39,0,240,0,222,255,34,255,208,255,152,0,159,255,19,255,87,255,26,255,254,255,86,0,62,255,73,0,220,1, +134,1,246,0,245,0,130,0,207,254,4,254,49,0,19,2,137,0,22,255,187,254,16,252,131,250,180,254,78,4,233,5, +202,3,57,0,178,254,103,254,51,255,241,1,216,0,191,255,254,255,97,254,67,0,152,0,212,254,18,0,35,1,121,1, +85,255,144,253,30,255,227,255,103,1,127,2,144,255,91,255,113,1,121,255,61,255,202,0,67,0,179,255,98,254,238,254, +231,0,181,0,110,255,184,254,208,0,124,1,243,254,150,254,17,255,62,0,232,0,29,0,75,1,116,0,96,255,194,255, +204,254,121,255,49,0,68,1,174,0,18,255,152,0,97,255,67,254,87,0,109,1,221,255,52,253,132,253,34,0,242,2, +198,2,137,2,229,1,103,253,65,254,7,1,244,255,169,255,62,0,148,1,80,0,40,254,252,254,192,255,233,0,226,0, +217,254,247,255,147,1,228,255,22,255,204,255,253,255,123,0,225,0,49,0,255,255,159,255,144,254,229,255,99,0,151,254, +200,255,25,1,240,254,66,255,138,1,241,0,221,0,54,1,155,0,48,255,193,254,250,255,185,254,215,255,63,1,193,255, +15,0,62,255,76,255,50,0,87,0,116,0,100,0,29,0,236,253,116,0,19,2,22,254,39,255,122,1,170,0,77,255, +60,255,32,0,94,255,152,255,139,0,21,0,136,255,168,255,28,0,66,0,147,0,164,255,210,254,139,1,40,1,110,254, +243,255,35,255,184,254,82,2,98,1,26,254,251,254,235,0,209,0,194,255,105,254,96,0,118,1,166,254,219,254,160,255, +81,0,206,0,93,1,175,1,39,255,202,0,145,0,90,254,115,0,177,254,155,253,192,255,93,0,75,1,38,2,190,1, +105,0,195,254,240,254,99,0,200,255,62,0,226,0,92,255,242,254,201,254,178,255,108,0,35,255,44,255,2,0,179,255, +144,0,103,2,64,1,66,255,190,255,185,255,45,254,244,255,50,2,246,0,101,0,53,255,15,254,99,255,74,1,173,0, +32,255,124,0,99,255,43,254,122,0,152,1,217,0,31,255,11,255,81,1,94,2,64,255,34,254,196,255,243,254,240,255, +52,1,189,0,77,0,11,1,179,0,178,254,203,255,204,255,224,255,16,0,24,254,143,255,113,1,79,1,255,255,143,255, +6,1,37,0,65,255,96,1,153,1,229,254,47,254,219,255,198,0,18,0,236,0,126,0,98,254,200,255,166,0,36,0, +23,255,2,0,71,1,76,255,30,0,205,255,76,255,39,1,0,0,8,254,92,253,122,255,49,0,164,255,233,1,73,2, +95,1,133,0,103,255,154,0,188,255,73,254,11,1,150,255,198,254,193,1,153,1,215,2,121,0,128,254,43,1,48,255, +215,253,32,255,86,0,98,2,209,2,188,255,113,253,131,254,152,255,68,0,232,255,13,0,104,0,93,0,69,0,33,255, +229,254,115,255,237,0,58,0,7,255,209,255,183,255,125,0,223,0,158,0,200,255,154,0,202,1,214,255,169,255,215,255, +53,0,54,0,37,255,215,255,185,255,35,0,196,0,112,255,34,255,135,0,87,0,22,255,14,255,244,255,169,0,213,0, +54,1,158,255,215,255,172,1,250,255,177,255,113,0,240,254,74,254,209,0,233,0,56,255,243,255,65,255,236,255,61,0, +223,255,245,0,107,255,186,253,98,254,226,0,78,1,186,0,227,0,29,0,55,0,176,255,114,255,155,255,70,0,169,0, +106,255,100,255,19,255,39,255,127,0,173,0,55,0,213,0,37,0,219,254,83,0,237,255,199,253,91,254,58,255,186,252, +20,254,155,4,28,5,186,1,157,255,236,255,78,0,250,254,67,254,78,254,90,1,250,1,213,0,176,255,219,251,47,253, +139,1,146,3,187,1,42,255,25,0,116,255,245,254,231,255,29,0,232,255,94,255,89,0,54,0,9,255,254,254,246,253, +14,255,40,1,241,1,183,2,17,0,26,0,233,1,137,255,193,254,184,254,172,255,1,0,178,255,71,0,114,255,250,0, +228,0,250,255,46,0,141,255,49,0,88,255,171,255,175,255,208,254,19,0,153,0,33,1,12,0,166,254,62,0,133,0, +58,254,181,255,233,1,24,0,146,255,68,255,7,255,218,253,78,253,28,2,216,3,87,1,6,255,46,255,152,1,135,0, +134,255,198,255,238,255,231,0,72,255,64,255,18,0,103,254,168,255,62,0,246,254,235,255,24,1,82,0,79,254,229,255, +58,2,222,0,85,255,171,255,241,255,156,254,246,255,176,1,144,0,22,255,155,254,197,0,109,1,249,0,228,255,74,254, +41,0,228,0,252,255,227,254,32,255,135,0,35,255,67,255,238,0,8,1,199,255,109,254,170,255,82,1,67,0,250,254, +21,0,222,255,160,255,158,0,143,255,58,0,220,0,138,0,85,1,200,255,34,255,130,255,5,255,230,255,64,1,157,1, +22,255,130,254,90,0,173,255,133,255,12,255,213,255,249,0,132,255,100,0,230,255,43,255,180,0,222,255,103,255,28,255, +93,255,50,0,71,0,220,1,46,1,55,0,216,0,144,255,67,0,133,0,92,254,51,254,176,254,217,0,202,2,184,0, +52,255,136,255,227,255,184,255,243,254,7,0,123,1,74,0,51,255,13,0,241,0,218,0,15,0,63,255,163,254,88,255, +46,0,40,255,98,255,65,0,211,255,48,0,180,0,3,1,145,0,179,255,96,0,81,0,233,255,244,255,170,254,212,254, +41,0,50,0,13,0,232,255,54,255,22,255,222,0,167,1,210,0,23,0,189,255,19,0,217,255,76,1,76,1,2,255, +95,255,105,255,50,0,95,0,83,255,187,255,214,255,146,1,239,0,241,254,178,255,163,255,188,255,12,0,157,0,41,0, +7,255,245,254,120,254,255,0,176,2,205,255,96,254,13,255,8,0,166,255,96,0,72,2,190,255,96,255,117,1,91,255, +59,254,108,255,26,1,184,0,210,254,164,255,167,0,187,0,119,0,75,0,206,255,139,255,137,0,10,0,27,255,79,255, +66,0,46,0,211,255,135,0,21,0,88,0,101,0,191,255,212,255,102,255,121,255,37,0,151,0,0,0,8,0,135,0, +57,0,90,0,190,255,241,255,126,0,144,254,108,253,192,255,255,1,111,0,114,254,168,255,143,1,161,2,0,1,197,253, +92,255,216,255,1,254,196,255,27,0,197,1,75,2,173,254,150,254,182,255,148,0,84,0,160,255,44,1,247,0,115,255, +131,255,134,0,156,0,57,0,84,0,93,0,186,0,103,0,50,255,238,255,204,0,56,255,199,255,176,0,97,255,210,255, +131,0,51,0,144,255,129,255,95,0,194,0,4,0,225,254,138,255,238,0,14,1,132,255,231,254,84,0,76,0,245,255, +63,0,62,255,98,255,16,1,217,0,86,0,190,255,213,255,173,1,30,0,157,253,169,253,28,0,110,2,68,1,210,255, +201,254,253,255,166,0,168,255,63,0,46,254,21,255,179,1,252,255,129,1,45,2,218,253,8,254,244,1,35,2,52,255, +76,253,126,255,23,1,166,255,229,255,216,255,50,254,158,253,168,255,27,2,149,1,216,255,203,255,7,0,186,254,86,0, +216,1,5,0,223,0,51,1,47,255,176,254,7,255,40,255,90,0,246,2,249,1,20,255,39,0,49,0,127,254,130,255, +134,0,135,0,224,255,114,255,250,254,161,254,202,0,242,1,153,1,138,255,92,254,77,0,106,0,191,0,104,255,238,254, +230,0,196,255,211,255,188,255,7,0,34,1,140,0,212,255,223,254,64,0,0,0,42,255,50,0,108,255,27,0,13,1, +123,0,246,255,234,255,104,255,94,255,100,0,42,255,183,255,180,0,163,0,12,1,153,251,80,251,219,1,222,1,128,1, +48,1,60,1,83,2,10,0,132,0,226,255,10,255,112,0,182,254,124,255,220,0,242,255,78,255,225,255,93,255,99,254, +24,2,216,1,195,254,31,0,62,1,167,0,160,254,110,255,132,1,74,0,222,254,131,254,87,255,73,0,4,0,88,0, +85,1,140,0,251,255,246,255,158,255,164,0,121,0,151,255,121,255,157,255,32,0,126,255,244,254,201,255,62,0,194,255, +172,255,252,255,251,0,133,0,32,254,39,255,99,1,232,0,44,0,173,0,85,0,141,255,15,1,122,0,245,253,197,254, +175,255,104,0,116,1,179,254,20,254,208,0,156,0,13,1,169,0,120,254,111,255,205,0,105,0,18,0,180,255,39,255, +132,0,9,1,143,255,199,255,196,0,102,0,12,255,123,255,154,255,86,255,49,0,155,0,3,2,220,0,63,255,92,255, +136,255,186,0,170,255,169,255,244,255,46,255,76,0,15,0,119,255,7,255,5,0,222,1,110,0,232,254,71,255,40,0, +232,0,226,0,156,255,184,254,204,255,230,255,207,255,53,1,8,1,76,1,134,1,178,255,73,255,237,254,127,255,203,0, +180,255,141,255,206,255,70,255,200,255,108,0,50,0,12,0,137,255,146,254,168,254,179,255,253,1,121,2,72,1,118,0, +159,255,7,0,84,255,191,255,61,0,160,254,22,255,133,255,224,0,56,2,230,0,78,0,249,255,248,255,235,0,214,255, +183,0,111,4,193,1,246,254,96,255,11,254,246,255,77,255,200,253,97,0,248,255,249,255,144,0,142,255,68,0,254,0, +3,0,75,255,134,255,19,255,14,0,234,0,73,255,141,255,74,0,138,0,161,0,235,254,1,0,33,1,135,255,142,255, +206,255,208,255,240,255,102,0,14,0,224,254,120,255,124,0,29,1,205,255,160,255,149,0,135,255,138,255,49,255,74,0, +203,0,213,255,230,0,198,255,49,255,13,255,217,254,227,255,162,255,166,0,145,0,106,255,145,255,43,0,158,1,179,0, +245,254,239,255,109,0,248,255,136,255,62,254,221,255,102,1,131,255,171,0,145,1,160,255,148,255,251,255,23,0,196,254, +248,251,215,253,54,3,221,3,121,0,31,255,207,255,242,254,14,254,197,255,31,1,219,0,122,0,152,255,74,255,155,0, +176,0,243,255,133,255,106,255,152,0,239,254,103,254,73,1,49,1,146,0,29,0,167,255,108,255,79,255,181,0,234,0, +200,255,77,254,111,254,165,254,181,254,238,0,232,0,123,0,121,0,35,255,154,255,37,1,10,1,5,255,58,255,89,0, +146,255,82,0,24,0,233,254,133,0,6,1,65,0,121,0,166,0,177,0,59,0,16,0,211,254,144,254,158,0,155,0, +213,0,158,0,121,255,156,255,208,255,114,0,26,0,226,255,255,254,56,254,29,0,157,0,251,255,117,255,78,255,145,0, +254,1,88,1,101,255,119,255,167,255,152,255,250,255,160,255,184,255,158,255,89,0,211,1,209,255,111,254,66,1,114,1, +15,255,98,254,208,255,230,1,241,0,201,254,88,254,99,255,32,1,101,1,172,255,209,254,179,255,47,0,132,0,194,255, +50,255,28,255,72,254,182,255,105,1,199,1,231,255,75,254,148,0,231,0,224,255,232,255,76,254,162,254,8,2,20,2, +230,255,43,0,80,0,233,255,73,255,1,255,81,255,127,255,92,1,249,0,213,254,219,255,245,0,250,0,134,0,178,255, +99,255,251,254,195,255,71,0,169,255,208,0,83,1,11,0,206,254,99,255,189,0,60,255,9,254,115,255,149,1,45,1, +130,255,43,0,233,255,86,255,170,255,229,0,28,1,84,255,73,0,238,255,231,254,30,1,15,1,13,255,31,255,97,0, +139,0,99,0,131,255,210,254,56,0,189,0,188,255,76,255,13,0,155,255,187,255,43,2,107,0,50,254,81,1,244,1, +16,255,15,255,166,255,200,255,239,0,249,254,219,253,126,1,62,2,93,0,250,255,192,254,181,254,21,1,124,1,252,255, +237,254,34,255,189,0,173,0,50,0,226,0,58,255,62,254,179,255,203,0,223,0,225,255,120,255,171,254,138,255,24,1, +218,254,39,255,131,0,219,255,222,0,57,0,251,255,49,1,4,0,151,255,156,0,81,0,141,255,241,255,31,0,108,255, +31,0,196,0,215,254,125,254,40,0,132,0,16,1,117,0,232,255,189,255,164,254,179,0,202,0,113,255,183,0,85,0, +130,0,115,0,250,0,151,1,73,255,152,254,4,255,152,0,138,0,216,254,217,0,113,0,19,255,170,1,44,1,252,253, +204,254,93,0,12,0,106,0,220,255,71,0,159,1,126,255,103,254,50,0,59,0,87,0,26,1,143,255,244,254,129,0, +160,0,5,0,129,0,78,0,143,255,19,255,183,254,255,255,204,0,152,255,156,254,123,255,16,1,210,0,97,0,75,0, +115,255,127,255,161,0,5,0,58,0,165,1,34,255,153,254,184,255,39,254,179,255,11,2,97,0,171,254,80,0,160,0, +112,0,71,1,139,255,201,255,164,0,72,255,92,255,158,0,106,0,227,254,121,255,100,0,59,0,83,0,215,255,192,255, +48,0,181,0,66,1,184,0,41,255,251,253,169,255,254,1,28,0,10,255,170,255,171,254,69,0,145,1,206,254,17,254, +190,1,7,2,114,0,132,0,24,254,214,253,65,0,188,1,103,0,46,0,228,0,116,254,61,0,60,255,54,254,75,1, +190,255,24,0,42,255,226,255,38,2,152,255,16,0,224,0,164,1,104,1,0,0,31,0,110,254,221,255,201,1,46,0, +238,255,156,255,200,254,80,255,47,1,214,1,205,255,74,255,149,255,189,255,221,255,234,255,19,1,156,255,64,255,214,254, +176,253,54,1,215,1,172,255,174,254,176,255,26,1,0,1,99,1,17,0,223,255,220,254,168,253,110,255,181,255,223,0, +250,1,138,0,104,255,63,0,138,0,239,255,114,0,220,0,11,0,225,254,32,0,204,0,210,0,95,0,54,255,7,0, +140,255,98,0,239,0,72,255,3,255,226,254,127,255,150,0,40,1,1,0,215,255,115,0,32,255,85,255,159,0,205,255, +226,254,252,0,36,1,9,255,172,253,126,254,103,1,53,1,191,1,159,1,172,255,92,0,68,0,208,255,239,255,127,0, +231,255,20,254,252,254,64,1,168,0,17,255,194,255,178,0,247,0,253,255,239,255,101,0,183,255,188,255,46,255,241,255, +6,0,203,254,250,255,36,1,169,255,210,254,36,1,17,1,29,0,184,255,45,254,176,255,123,1,169,0,227,255,255,255, +28,0,235,0,255,0,221,255,107,255,122,255,197,255,115,255,54,0,222,255,68,255,82,0,108,255,136,255,215,255,42,255, +106,255,9,0,157,0,52,1,97,0,159,254,155,0,46,1,20,0,9,0,167,255,147,0,198,254,57,255,28,2,217,0, +92,254,98,254,100,0,221,254,105,255,65,2,71,1,245,0,91,0,80,255,108,255,231,255,0,0,64,255,172,255,39,0, +89,255,27,255,118,255,252,255,179,0,19,0,27,1,161,1,231,254,229,255,168,0,195,254,54,255,4,0,74,0,137,255, +39,0,235,1,236,255,247,254,190,0,128,0,17,0,164,255,136,255,98,0,177,255,167,255,86,0,128,0,181,255,9,255, +171,0,143,0,186,255,109,255,114,254,172,254,57,255,238,0,14,2,70,1,62,1,234,0,173,255,167,255,244,255,162,255, +232,255,34,255,12,255,238,255,151,0,53,1,34,255,20,255,89,1,160,1,59,1,91,255,26,253,91,254,29,1,27,1, +96,1,188,0,161,255,127,0,196,255,69,0,201,255,112,254,16,254,255,253,111,1,183,1,195,255,116,0,198,0,22,1, +157,1,126,0,161,254,138,254,211,254,90,0,1,2,37,1,79,254,59,253,158,0,211,1,10,1,203,0,202,255,46,255, +136,255,29,0,79,0,253,0,49,255,179,255,206,1,103,255,201,254,242,255,117,0,89,0,74,0,110,255,27,255,245,0, +26,0,236,254,40,255,243,255,112,0,182,0,116,0,67,255,9,1,213,0,166,254,216,255,160,1,55,0,104,254,147,255, +53,0,253,0,71,1,242,0,251,0,23,255,28,254,189,255,25,1,163,0,202,255,51,255,51,0,58,0,82,0,28,1, +100,255,2,0,47,0,62,0,116,0,7,255,131,255,244,255,236,0,6,0,117,255,180,255,147,255,115,0,147,0,68,1, +3,255,234,254,173,255,102,255,218,0,255,254,224,255,239,0,243,0,157,1,14,0,20,255,19,255,148,0,212,255,197,254, +30,255,135,255,208,0,109,0,156,255,48,0,34,1,79,0,119,255,205,254,117,255,2,0,213,255,96,0,199,253,177,255, +91,2,151,1,250,1,130,255,90,255,121,0,20,0,108,0,180,0,218,255,169,254,90,255,228,255,226,255,178,255,181,0, +254,255,223,254,202,255,223,255,202,0,64,255,107,254,172,255,50,0,87,1,197,0,45,0,239,255,157,255,19,255,149,255, +194,0,43,0,63,255,11,255,111,255,4,0,23,1,108,0,141,0,213,255,187,254,119,0,182,255,107,0,26,0,39,0, +238,1,181,255,127,254,204,253,140,255,74,1,171,0,118,255,78,255,144,1,66,0,227,255,10,0,208,255,20,0,61,255, +173,0,1,0,175,255,231,255,65,255,163,255,95,255,71,0,78,255,253,253,2,255,204,255,164,0,238,1,113,2,227,0, +225,254,0,255,97,255,170,254,61,0,100,1,53,1,50,0,93,255,149,1,99,0,160,254,20,0,154,0,63,0,228,255, +4,0,24,255,71,255,139,0,246,0,31,0,68,255,196,255,125,255,186,255,152,255,94,0,153,0,240,254,100,0,41,1, +193,0,199,0,217,255,76,255,206,255,110,0,5,0,74,255,157,253,107,254,1,1,55,0,154,255,156,0,209,0,25,0, +76,0,9,1,173,254,132,253,175,0,127,0,163,255,190,0,161,254,66,254,124,255,168,0,4,2,196,0,250,254,131,254, +29,1,225,0,201,254,50,1,208,1,72,0,203,254,123,254,44,0,247,0,111,255,26,254,252,255,72,1,41,1,182,255, +80,255,15,1,113,255,234,254,27,0,218,255,62,0,119,0,155,255,205,254,108,0,110,0,189,254,226,255,216,0,17,0, +154,255,40,0,209,0,23,1,208,254,17,254,86,1,245,1,158,0,66,254,110,254,66,1,180,0,89,0,107,0,231,0, +30,1,87,255,233,254,38,254,139,254,230,0,48,1,19,0,48,255,210,255,222,0,195,0,178,0,228,255,172,255,181,0, +9,0,50,255,243,255,194,0,79,255,72,254,53,0,220,0,87,0,177,0,3,1,147,255,157,254,247,255,113,0,74,0, +212,255,102,255,114,255,37,0,218,255,9,255,90,0,168,255,192,254,81,255,0,0,239,0,198,1,233,1,39,255,72,0, +175,1,164,254,226,253,183,254,224,255,129,255,247,255,118,0,214,255,169,255,9,254,210,255,70,1,193,0,12,2,110,1, +86,255,123,253,236,254,78,2,162,1,187,0,28,1,61,254,199,253,100,0,189,0,19,0,160,0,11,2,4,254,127,251, +147,255,12,3,8,5,162,1,200,254,35,255,225,253,104,255,127,0,154,255,49,0,78,0,245,254,202,254,198,255,85,255, +54,255,56,1,200,0,186,255,165,1,193,255,206,253,251,254,183,0,252,1,123,255,153,0,58,2,133,0,57,0,179,254, +218,255,252,0,233,254,23,255,11,0,81,0,40,0,149,0,231,0,11,254,52,253,0,255,173,255,236,1,92,1,150,255, +33,0,67,0,214,0,126,255,232,255,198,0,198,255,13,0,36,255,130,255,239,255,226,255,254,255,203,254,47,255,77,0, +244,0,8,1,206,255,182,254,121,0,202,1,167,0,33,255,141,255,151,1,153,255,66,255,242,255,143,254,47,0,64,1, +29,1,156,254,90,254,63,0,109,255,239,0,3,0,151,255,162,1,210,255,244,254,189,255,83,1,246,2,24,2,233,255, +230,254,241,255,123,253,157,250,37,255,230,0,206,253,174,1,179,5,49,2,127,0,247,0,219,254,66,255,71,0,214,0, +87,2,192,0,124,255,189,254,114,254,217,255,191,255,216,255,120,0,182,0,247,255,222,255,144,255,230,253,38,255,198,0, +68,0,77,255,190,255,176,255,57,0,139,2,163,255,169,253,146,255,222,0,130,2,180,1,241,1,196,0,225,252,122,253, +215,255,177,1,150,0,24,255,195,0,118,0,164,255,84,255,211,254,13,254,18,255,45,2,181,255,233,253,252,0,101,1, +44,0,35,0,30,1,172,0,146,0,239,0,65,0,133,0,140,255,62,255,8,0,110,0,137,0,214,254,199,254,142,0, +90,1,235,0,83,0,41,0,57,254,245,253,128,1,21,2,71,0,228,255,166,255,225,255,175,255,161,255,87,0,230,255, +227,253,34,254,248,0,146,0,133,0,87,1,136,0,18,0,124,255,212,255,20,255,45,255,41,0,69,1,114,1,252,253, +158,254,177,0,201,0,106,0,112,255,15,0,13,0,30,0,113,254,134,254,86,0,168,255,78,1,253,1,20,1,63,255, +9,254,113,0,197,0,85,255,14,0,62,1,13,0,169,255,225,255,27,254,60,255,118,1,111,0,28,255,133,255,252,255, +246,255,172,255,231,254,186,255,170,1,106,0,169,254,227,0,212,1,101,255,223,253,70,255,175,1,170,1,102,0,254,255, +53,0,221,255,114,255,107,255,57,255,116,255,32,0,162,255,220,253,208,254,102,0,102,0,130,1,109,2,190,0,188,253, +109,254,65,255,229,254,196,255,80,255,127,0,122,1,75,1,43,1,247,255,31,255,54,255,128,1,31,2,24,1,24,1, +90,255,246,253,218,255,77,1,188,255,72,255,219,255,88,0,116,0,39,255,79,255,147,0,126,1,246,255,194,253,35,255, +190,0,186,255,231,254,225,0,247,0,75,255,144,0,99,0,13,0,221,0,43,255,102,255,42,1,26,1,216,255,99,255, +139,0,165,255,234,255,135,0,237,255,239,0,146,255,105,255,42,0,216,255,169,255,154,254,106,0,82,0,86,255,137,0, +214,255,13,0,178,255,101,254,150,255,2,1,7,1,144,0,187,255,115,255,1,255,29,255,153,255,111,255,143,2,47,2, +33,0,146,1,79,255,122,255,99,0,186,255,135,0,48,254,45,254,188,0,201,1,10,1,110,255,205,255,64,255,169,254, +181,255,255,255,193,0,232,0,235,255,121,0,68,0,141,255,247,255,82,0,246,0,0,0,55,255,209,255,173,255,7,0, +93,0,11,0,225,255,115,0,206,0,47,0,132,255,171,254,73,255,54,1,101,0,81,255,187,0,157,0,84,0,172,0, +30,255,184,254,24,1,146,1,218,254,203,255,192,0,203,254,56,0,71,0,152,255,9,0,34,255,148,0,143,0,191,254, +22,255,136,255,88,0,236,0,27,0,116,255,128,0,70,1,28,0,128,0,41,1,228,255,90,0,94,0,95,254,254,254, +183,255,211,254,58,0,77,1,26,0,82,255,142,255,231,255,134,0,81,0,59,254,36,255,108,1,127,1,185,0,94,254, +11,255,25,0,131,255,92,1,46,0,2,254,20,255,133,0,166,0,160,255,173,255,207,0,235,1,95,1,159,254,110,254, +67,1,183,0,243,254,243,255,35,1,194,255,169,252,67,254,27,1,34,0,159,254,39,255,253,0,215,254,187,253,123,0, +34,1,116,0,175,0,233,0,220,254,11,255,90,1,196,0,124,0,209,0,54,255,169,254,78,0,191,0,246,255,238,254, +13,0,246,1,90,1,226,255,71,255,253,255,2,255,18,0,98,0,217,253,68,0,212,0,52,255,17,255,161,0,220,1, +252,254,122,255,215,1,82,2,233,0,135,254,153,254,192,255,67,0,168,254,245,254,251,255,61,255,98,0,43,1,226,255, +106,255,234,0,51,0,215,254,150,255,245,0,23,1,199,254,19,255,115,0,93,1,101,1,193,254,242,254,204,255,47,0, +40,1,35,0,186,255,152,255,120,0,213,1,146,255,167,253,220,254,167,0,183,0,93,255,162,255,191,0,9,1,177,255, +107,254,236,255,81,1,37,1,119,255,57,254,184,255,142,0,222,255,78,255,200,255,171,0,218,255,226,255,227,0,192,255, +32,255,92,255,46,255,4,0,94,1,207,1,118,255,69,254,149,1,65,2,175,254,3,254,226,255,223,0,42,1,22,0, +107,255,159,255,144,0,196,0,66,255,45,255,202,254,67,0,45,1,203,254,184,255,100,1,95,0,233,254,26,0,135,255, +153,253,72,0,70,1,235,255,167,255,104,0,237,0,184,0,200,254,131,253,232,0,82,1,40,0,110,0,42,0,218,255, +232,254,203,0,220,0,170,254,195,254,255,255,19,255,56,253,93,255,151,1,24,3,114,1,80,255,140,0,195,255,164,255, +134,255,16,255,52,255,219,0,157,2,234,0,4,0,186,254,172,254,196,254,204,253,195,0,226,1,52,0,248,255,233,0, +46,0,139,254,210,255,8,1,12,0,160,254,205,254,17,0,175,0,218,255,31,255,24,1,78,1,90,254,100,254,97,1, +160,1,85,255,29,255,101,0,254,0,212,0,217,255,217,255,35,1,72,0,230,254,202,255,78,0,129,0,181,255,231,254, +16,0,135,255,24,0,188,0,29,255,14,0,151,0,83,0,186,0,248,255,181,254,182,255,147,1,162,255,196,255,124,1, +30,1,138,0,131,254,185,254,149,255,97,255,5,255,165,254,57,0,221,0,217,255,71,254,8,255,81,0,39,0,223,1, +75,1,40,255,72,255,161,255,218,0,223,0,100,254,50,255,115,1,47,1,213,253,181,250,23,254,202,255,252,255,245,1, +162,0,212,254,14,254,179,0,77,0,181,0,122,4,51,1,77,1,176,2,205,0,189,254,36,253,87,1,52,2,58,255, +147,254,87,255,130,0,197,0,134,1,30,0,29,254,68,254,185,255,36,1,207,0,120,0,26,0,244,255,116,0,6,0, +216,255,202,1,102,2,216,254,59,253,21,0,78,1,213,0,206,255,22,253,64,254,176,1,201,1,11,1,180,0,149,0, +38,0,246,254,57,255,243,0,216,255,10,254,131,255,50,1,105,1,199,255,132,255,107,1,117,1,203,255,163,254,14,255, +154,255,39,1,225,0,236,254,61,0,163,0,159,255,30,255,131,255,0,0,209,255,181,0,71,255,159,254,128,0,165,0, +212,255,31,255,136,0,48,1,70,0,180,255,83,255,20,0,173,255,66,0,247,255,29,255,168,0,21,0,76,0,12,0, +181,255,149,0,131,0,241,0,158,254,168,254,254,255,232,255,84,1,85,1,22,0,105,252,49,254,63,2,221,0,62,1, +130,1,55,0,150,254,128,255,246,255,14,255,41,1,244,0,84,0,189,255,30,0,188,0,184,254,232,255,13,1,15,0, +2,0,196,0,7,0,28,255,117,255,241,253,227,253,9,0,252,0,36,0,127,0,216,0,76,255,109,0,99,0,201,254, +179,255,170,0,56,0,236,255,67,1,99,1,98,0,159,255,9,255,181,255,118,0,35,0,166,255,71,0,232,255,42,255, +255,255,67,0,220,255,141,255,133,255,90,255,228,255,47,1,197,0,87,255,39,255,104,1,147,1,232,254,96,255,96,0, +221,0,99,0,147,254,45,254,75,253,223,255,24,2,198,255,145,255,1,0,95,0,182,0,22,1,82,0,84,255,239,0, +74,0,192,255,90,255,200,254,221,0,43,1,6,0,237,254,230,254,138,255,189,255,45,0,8,1,193,0,60,254,53,255, +0,1,131,255,179,255,167,1,169,1,42,255,55,255,252,0,207,0,82,255,238,253,105,0,255,1,127,255,124,254,199,254, +210,255,161,0,165,0,76,1,233,255,186,254,146,255,88,255,122,254,166,254,210,0,232,1,158,1,211,1,202,255,58,254, +150,255,169,0,215,0,253,255,79,255,162,0,179,0,100,255,210,254,232,254,71,0,171,0,243,255,16,0,18,0,158,254, +20,255,182,1,8,1,108,255,177,254,77,0,67,2,204,0,20,0,61,255,124,255,54,0,138,255,123,255,136,255,16,1, +187,0,148,255,208,255,82,255,192,255,128,0,25,1,34,1,55,0,77,255,114,255,209,255,161,255,159,255,93,0,89,0, +22,255,136,0,134,0,99,255,5,0,126,255,118,0,66,0,125,0,18,0,110,253,40,255,36,1,221,1,189,0,251,255, +2,1,143,255,100,0,196,0,69,255,76,255,144,255,238,255,225,254,127,255,175,255,43,255,139,0,227,255,44,1,99,1, +134,255,248,255,104,255,12,1,219,1,157,255,12,254,180,254,180,1,231,0,192,255,252,255,191,255,94,0,123,255,10,0, +6,0,212,255,240,1,199,0,204,254,254,255,122,0,177,254,225,254,124,255,133,255,51,1,245,0,51,0,229,255,128,255, +168,0,240,255,121,255,121,0,249,254,103,254,57,0,100,1,126,0,146,255,248,255,41,0,231,1,97,1,105,254,77,255, +216,0,20,1,90,0,207,254,216,254,162,255,182,255,125,0,121,1,157,255,14,253,102,254,142,1,143,1,156,1,85,2, +175,0,184,254,44,254,62,1,174,1,20,255,66,255,141,255,197,0,242,255,39,255,70,1,25,1,13,0,133,255,91,255, +180,255,56,0,243,255,228,255,73,0,35,0,192,0,125,0,17,0,115,255,155,254,233,255,189,1,47,1,109,255,236,255, +133,0,82,0,15,0,115,255,10,255,14,255,74,0,147,0,79,0,31,0,136,255,127,255,158,255,169,0,79,1,52,0, +190,254,152,254,110,255,127,0,180,0,40,0,254,0,177,0,117,255,101,255,74,255,124,255,23,0,243,0,39,1,44,0, +106,255,76,0,22,1,80,255,187,254,118,0,171,255,155,254,192,255,234,255,194,255,37,0,248,0,159,1,145,0,143,255, +172,255,196,255,30,0,155,0,222,254,137,254,141,1,188,1,91,255,244,254,84,0,243,255,161,254,43,255,213,255,247,255, +225,0,121,1,169,0,63,0,65,0,16,0,134,255,221,254,157,254,149,255,126,1,251,0,132,255,229,254,229,255,244,255, +198,254,172,0,240,0,64,0,53,255,254,254,14,1,254,255,155,255,106,0,157,0,5,0,21,0,114,0,18,255,41,0, +250,0,242,0,112,255,253,253,236,255,191,1,1,2,189,255,136,255,241,255,216,255,217,255,235,254,159,0,48,0,146,255, +55,0,196,0,25,1,116,255,65,255,144,254,94,255,225,255,168,254,177,254,132,254,75,1,225,1,190,255,196,255,180,255, +26,0,65,0,17,0,242,255,126,0,44,1,98,0,235,255,5,0,87,0,242,255,201,254,44,255,112,255,208,254,241,0, +23,2,163,253,170,252,40,1,67,2,178,1,223,0,151,255,228,255,3,0,58,0,25,0,139,255,101,255,171,0,121,1, +146,0,139,0,177,254,18,254,127,255,119,0,14,1,225,254,224,254,21,0,44,0,202,0,6,1,53,0,8,255,125,255, +66,254,61,255,38,1,106,255,147,255,150,0,132,1,34,1,171,0,102,0,255,254,72,255,113,255,53,0,149,0,49,0, +117,0,75,0,44,0,0,0,232,255,221,254,97,255,84,0,196,254,152,254,61,0,82,1,245,0,139,0,137,0,160,0, +231,255,49,254,62,255,223,0,48,0,140,0,240,0,160,255,27,255,240,254,28,255,75,0,199,0,23,0,52,255,3,0, +8,1,16,0,67,255,255,255,202,255,247,254,39,0,66,1,100,0,135,254,193,254,102,0,236,0,96,0,33,255,227,255, +104,0,233,0,8,2,188,0,252,255,245,255,13,0,91,255,124,254,202,255,220,0,43,0,81,255,175,0,56,1,25,0, +171,254,5,254,47,0,150,0,109,255,176,255,222,0,186,0,27,255,189,254,39,255,234,0,9,1,105,0,12,0,59,254, +9,255,117,254,105,255,234,3,104,2,252,254,230,255,213,0,88,254,55,254,31,0,160,255,85,0,80,0,49,255,220,254, +45,0,147,1,184,255,142,0,179,1,15,0,130,0,180,0,63,0,205,255,153,255,236,255,164,255,91,0,180,255,149,253, +167,254,29,0,215,0,139,2,88,0,172,254,61,1,44,0,237,253,239,254,249,0,69,1,242,255,252,255,112,255,254,254, +212,255,118,0,214,0,55,0,207,255,12,255,2,0,221,1,7,0,167,255,116,0,35,255,71,255,135,0,131,0,28,255, +185,254,128,0,242,0,83,255,29,255,30,255,129,255,0,1,54,0,177,0,234,0,62,254,24,255,181,0,12,255,106,255, +237,2,202,2,20,0,25,255,86,254,8,255,22,0,9,0,181,255,132,255,16,0,249,0,30,1,18,0,163,255,121,255, +189,255,53,255,61,255,77,1,163,0,223,254,34,254,198,255,223,0,142,255,9,0,189,255,125,255,3,0,212,0,176,1, +89,1,122,255,107,253,223,255,89,0,215,254,108,0,1,1,40,1,186,0,40,0,29,0,130,0,253,255,20,255,31,0, +106,0,239,255,168,254,196,255,250,1,26,0,67,255,186,255,181,255,211,0,39,1,234,255,198,254,128,255,129,0,24,0, +138,0,175,0,28,0,150,0,255,255,240,255,236,0,156,0,123,255,88,255,178,255,104,255,139,0,148,0,5,0,75,255, +2,254,186,255,213,0,30,1,187,0,87,255,140,255,195,0,114,1,44,255,30,254,217,255,182,0,238,0,233,0,193,255, +69,254,29,255,182,0,195,0,222,255,140,0,219,0,146,255,229,255,212,255,242,255,149,0,78,0,35,0,0,0,129,255, +128,254,2,255,27,1,32,2,187,0,89,255,5,0,13,1,72,255,82,253,47,255,86,0,220,0,162,0,204,255,14,1, +129,0,187,255,141,255,20,255,167,255,144,255,232,255,148,0,105,255,212,255,232,0,173,255,92,0,14,0,25,0,155,1, +115,255,154,254,196,255,66,1,132,0,1,255,243,255,236,255,7,0,150,255,231,255,153,0,178,0,181,0,210,254,240,254, +150,0,3,1,100,0,66,255,34,254,201,254,235,255,218,255,244,0,199,0,114,0,52,255,84,254,71,1,238,1,249,255, +176,254,116,255,244,255,107,255,187,255,76,0,155,0,45,255,30,255,92,0,147,0,120,0,31,1,14,1,115,254,155,253, +63,254,51,0,24,3,196,2,249,255,74,254,36,255,169,255,240,255,76,0,108,0,149,255,174,254,4,1,85,0,57,253, +22,255,151,0,227,255,85,1,117,1,243,255,58,0,14,1,90,0,178,254,147,255,229,0,242,0,107,0,134,255,172,255, +97,255,158,255,0,255,114,255,97,1,163,255,214,254,196,0,251,1,82,255,82,253,148,0,131,1,4,1,192,0,114,254, +33,255,42,1,133,0,122,255,54,255,205,0,173,1,140,255,62,255,99,0,198,255,108,255,193,0,96,1,211,0,251,255, +72,254,87,254,18,0,241,255,80,255,65,1,130,1,175,255,98,0,240,0,166,0,108,255,223,254,195,255,187,0,62,1, +94,255,236,255,61,255,60,253,73,0,177,1,180,0,154,255,160,254,231,254,118,255,145,255,101,0,228,1,156,1,118,0, +19,255,250,255,231,0,176,255,35,0,212,255,46,255,183,255,7,1,202,0,166,254,248,254,72,0,61,1,222,0,17,0, +157,0,140,0,209,255,172,254,45,255,102,1,15,1,252,254,108,255,237,255,248,254,140,0,112,1,6,0,130,0,45,0, +232,254,229,0,253,2,129,1,245,254,114,254,83,254,204,254,34,1,105,1,47,0,43,255,148,254,153,255,71,0,45,0, +65,0,250,0,218,0,183,255,202,254,40,254,237,255,47,1,94,0,2,0,173,254,131,254,167,0,116,1,74,1,69,1, +84,0,74,255,48,255,219,254,202,255,65,2,199,0,121,254,132,255,0,0,108,0,120,0,177,255,190,255,37,0,16,0, +197,254,18,254,228,255,46,2,160,0,90,255,18,1,227,0,203,255,104,255,67,0,151,0,5,0,227,255,48,255,145,255, +209,255,247,255,33,0,5,0,182,255,72,254,243,255,230,2,247,1,81,255,3,255,126,0,130,0,137,255,93,255,158,255, +16,0,40,0,151,254,222,255,71,2,251,255,184,254,242,255,45,0,242,255,162,0,133,0,101,255,232,255,110,255,103,254, +235,254,21,1,207,2,7,1,153,255,70,255,11,255,235,255,24,0,40,0,9,0,47,255,159,255,164,0,252,0,241,0, +179,255,31,254,1,255,240,0,204,255,230,254,133,1,170,1,184,254,7,255,19,1,48,0,143,254,252,254,6,1,136,1, +253,255,89,255,27,255,44,0,99,1,60,0,186,254,43,255,108,0,137,255,207,255,185,0,196,255,108,0,16,1,122,255, +155,254,232,255,253,0,125,1,202,255,42,253,226,254,70,1,71,1,116,0,166,255,207,255,212,0,135,0,158,255,4,0, +126,255,240,255,91,0,185,255,93,0,118,255,206,254,80,255,9,255,172,255,70,0,182,255,210,0,149,1,130,255,64,255, +36,0,37,0,85,0,72,0,240,0,211,0,139,254,49,255,166,1,8,0,180,255,26,0,64,255,87,0,187,255,40,0, +42,1,224,255,141,255,235,255,175,255,114,255,56,0,27,0,190,255,203,255,184,0,163,0,121,254,69,255,225,254,63,255, +139,1,167,255,86,255,83,0,189,0,123,1,104,0,89,255,201,254,24,255,44,0,15,0,151,254,201,254,117,0,181,255, +11,0,185,1,26,0,248,254,214,255,108,0,63,0,93,254,163,254,215,0,201,255,157,255,231,1,146,1,1,1,189,0, +27,255,32,255,39,255,4,255,159,255,41,0,174,0,4,0,132,0,31,0,15,255,155,0,125,0,246,255,233,255,81,255, +230,255,13,255,98,254,57,1,235,2,3,0,56,253,240,254,151,1,224,0,80,255,0,255,201,255,136,0,181,255,8,0, +13,1,192,255,75,254,12,255,67,255,106,255,140,2,65,2,208,254,152,255,36,1,149,0,174,255,104,254,181,254,195,0, +106,0,160,254,48,255,79,1,174,1,124,0,212,255,250,254,234,254,7,255,47,0,67,2,68,1,83,0,44,0,7,0, +21,0,52,255,5,255,116,255,185,255,232,254,240,255,240,0,104,255,164,0,79,1,102,0,3,0,214,254,56,255,64,0, +96,0,139,0,230,0,88,0,81,255,4,255,72,0,52,1,120,255,115,255,227,255,199,254,65,0,164,1,117,255,2,254, +14,0,34,0,183,255,241,0,217,255,240,255,200,0,169,0,235,0,33,0,236,255,181,255,103,255,188,0,128,0,252,254, +155,254,61,254,236,254,97,0,21,2,220,1,255,254,183,255,169,0,97,0,254,0,22,0,44,0,142,255,37,0,218,0, +165,254,55,255,34,0,196,255,219,254,65,255,161,1,53,1,97,0,212,255,208,254,123,255,33,0,220,255,69,0,178,0, +197,255,195,255,109,0,46,0,173,255,218,255,121,1,34,1,40,255,6,255,40,255,199,255,129,0,29,0,84,255,71,255, +46,1,87,0,26,254,116,255,162,0,142,0,221,255,230,255,127,0,177,255,126,255,100,0,214,0,231,255,198,255,128,0, +8,0,61,255,201,255,117,0,2,255,128,255,223,0,201,255,156,255,7,0,116,255,223,255,168,0,166,255,2,0,166,0, +221,255,90,0,0,0,160,254,168,255,210,1,219,255,227,253,123,0,152,2,85,1,127,255,69,255,172,253,85,254,82,1, +171,1,255,0,130,255,59,255,72,0,229,0,187,255,84,255,51,0,172,255,87,0,30,0,131,0,235,0,154,255,229,255, +236,255,217,254,214,253,201,255,55,1,107,0,243,255,0,0,158,1,119,1,26,0,35,255,69,255,114,255,106,0,15,2, +5,0,81,255,234,255,239,255,107,0,78,0,86,0,233,0,90,1,74,255,235,254,82,255,61,255,144,0,39,0,97,0, +105,0,120,0,184,1,121,0,182,253,166,253,14,0,111,1,204,0,198,255,80,1,73,1,21,255,247,254,57,0,219,0, +188,254,196,254,206,0,29,1,32,1,204,255,196,253,194,254,175,1,119,1,83,0,161,255,208,255,185,0,175,255,79,255, +40,0,206,0,48,255,44,255,35,1,119,0,219,255,222,254,190,255,112,1,90,0,181,255,253,255,137,0,10,0,45,255, +225,255,232,255,115,255,98,0,49,0,238,255,132,255,239,254,90,0,143,255,48,255,133,0,138,0,159,255,65,255,184,0, +120,0,76,255,127,254,38,0,78,1,77,255,223,255,106,0,104,0,24,255,171,254,210,1,128,1,202,254,182,254,17,1, +217,0,169,254,12,0,228,1,197,255,70,255,139,1,179,0,155,255,159,254,153,255,192,1,90,0,225,254,123,254,3,0, +188,0,172,0,47,0,33,254,254,254,39,0,229,0,172,1,189,1,211,1,194,0,147,255,216,255,110,0,250,254,74,255, +201,0,201,255,126,254,178,254,230,0,209,1,51,0,253,254,44,255,134,254,245,254,113,0,20,255,32,255,241,255,136,0, +173,1,130,0,147,0,203,0,197,255,130,0,47,0,190,254,70,255,119,0,211,0,169,0,27,0,217,255,80,0,91,255, +50,254,233,255,141,0,199,255,243,255,132,255,102,255,138,255,241,255,223,0,22,0,216,253,80,254,34,1,93,2,0,1, +164,254,44,255,99,0,190,0,135,0,149,254,32,0,111,2,50,1,106,0,108,0,226,254,105,253,23,255,212,0,121,0, +152,0,189,0,137,255,15,255,196,255,69,0,204,0,226,255,84,255,142,0,196,0,156,0,217,255,104,254,123,255,80,1, +118,0,101,255,98,0,191,0,210,255,160,255,168,254,84,254,12,0,76,1,56,2,124,1,194,255,133,254,254,254,57,0, +129,255,239,255,12,0,243,255,95,0,104,0,44,0,74,254,158,0,24,2,77,255,28,0,175,1,168,0,168,254,182,255, +239,0,168,255,151,255,119,255,85,0,232,0,10,0,73,0,137,255,72,255,33,1,230,0,36,255,209,255,44,1,202,0, +35,0,51,255,235,254,195,255,164,255,137,0,240,0,142,255,67,255,183,255,189,0,70,0,114,0,133,1,68,0,96,255, +135,255,182,0,55,0,157,254,244,254,145,255,45,0,181,0,131,0,53,255,105,0,223,0,182,254,184,255,42,1,64,1, +103,0,172,255,9,255,134,255,211,0,32,255,117,255,204,1,110,1,234,254,115,254,45,0,56,0,185,0,155,0,189,255, +191,255,172,0,30,1,236,255,74,0,253,255,34,255,147,255,40,0,133,0,41,255,154,254,150,255,139,255,40,0,158,1, +66,0,38,255,116,0,218,0,133,0,92,255,48,255,187,255,17,0,63,1,107,0,235,254,199,254,106,0,210,1,152,255, +124,254,4,0,91,1,233,0,153,254,97,255,158,0,25,0,164,0,179,0,129,0,146,254,195,254,104,0,5,255,109,255, +33,255,180,255,169,0,66,255,242,255,212,255,73,0,14,1,112,0,165,255,239,254,196,0,97,1,186,255,167,254,232,255, +77,1,5,0,202,254,244,254,126,1,250,1,60,255,250,254,101,255,90,255,166,0,234,0,111,255,81,255,181,255,185,255, +166,0,225,0,66,0,102,255,84,255,116,0,13,0,114,255,132,0,75,1,92,1,54,0,145,255,140,255,107,254,167,255, +59,0,125,255,162,0,105,0,125,0,42,0,86,255,208,255,196,254,4,255,10,0,248,254,155,255,15,2,221,1,32,0, +33,255,112,254,129,255,66,255,27,255,140,1,21,1,85,0,116,0,172,255,184,255,200,255,199,255,15,0,219,0,160,255, +132,255,131,0,232,254,157,255,4,0,58,1,203,1,174,254,27,255,192,255,77,0,187,0,100,255,206,255,105,0,250,0, +155,0,197,255,101,255,226,254,253,254,17,1,250,1,239,254,90,254,196,255,172,0,94,0,131,255,115,0,21,0,241,255, +143,255,219,255,206,0,180,255,103,255,41,255,38,0,115,0,232,255,61,1,75,0,134,253,121,253,244,0,97,2,172,1, +230,0,78,255,4,0,45,0,79,255,70,0,7,0,81,254,164,254,9,0,117,255,173,255,203,255,108,255,65,1,165,0, +147,255,234,255,207,255,148,1,30,1,214,255,137,0,253,255,201,254,14,0,42,2,180,254,208,253,190,0,207,255,69,0, +158,0,226,255,147,255,52,0,22,1,53,255,5,254,153,254,48,0,242,0,107,1,159,0,180,254,155,255,91,0,224,0, +61,0,50,255,250,254,144,255,40,1,26,0,191,255,7,0,217,255,199,255,13,0,22,1,100,0,14,0,35,255,30,255, +7,0,17,0,16,0,240,254,92,255,249,255,39,0,225,254,80,255,165,2,84,0,228,253,230,255,152,1,112,1,23,0, +100,255,65,0,184,0,130,255,25,0,183,0,98,255,120,254,126,255,84,0,220,254,188,255,73,1,155,0,21,0,174,255, +149,255,180,255,170,255,169,255,41,0,121,0,116,255,76,255,12,1,72,0,187,254,203,0,49,2,207,255,228,253,215,255, +77,0,65,0,208,0,82,254,148,255,98,2,5,1,29,255,65,255,244,255,232,255,12,0,58,255,60,0,129,1,18,0, +9,254,230,253,38,1,199,0,153,254,70,0,197,0,166,255,161,0,184,1,171,0,104,255,181,254,86,0,240,0,123,255, +152,0,96,0,33,255,38,0,85,0,196,254,184,255,165,1,132,0,71,255,80,254,245,254,179,1,61,2,194,255,103,254, +111,0,33,1,202,255,175,255,180,255,153,254,239,254,75,0,78,0,124,0,66,0,55,0,130,0,183,255,1,255,177,254, +211,255,220,0,107,0,178,0,25,1,10,1,174,0,138,254,156,253,84,0,164,1,126,0,96,0,190,255,69,254,23,255, +134,0,205,0,140,0,9,0,9,0,100,255,15,255,64,255,232,255,143,1,171,0,162,254,107,255,225,1,238,1,33,0, +19,255,249,254,81,0,44,0,93,255,32,255,77,255,1,1,122,1,200,0,103,255,219,255,159,0,85,254,30,255,104,0, +46,255,197,255,203,255,236,254,146,255,158,255,147,0,59,2,75,0,93,0,208,1,86,0,210,0,100,0,38,255,159,255, +233,0,29,2,195,255,128,254,115,254,219,254,44,1,245,0,17,0,230,254,47,255,167,255,9,255,126,1,73,1,50,255, +139,254,6,0,246,2,77,1,51,255,199,255,59,0,36,0,236,255,176,255,104,255,172,255,68,255,248,254,4,0,115,1, +192,0,84,255,42,0,201,0,146,255,31,254,126,0,102,2,136,255,83,254,95,255,148,0,96,1,86,0,241,255,142,0, +80,255,150,254,255,254,242,255,213,1,185,0,183,254,178,254,180,0,113,1,107,255,196,255,94,0,14,1,23,0,204,253, +180,255,48,1,199,0,70,255,187,254,125,0,165,0,189,255,185,255,165,0,10,1,221,0,54,0,137,0,29,1,44,255, +81,255,185,0,190,255,218,254,20,255,163,255,200,255,226,0,201,0,219,254,40,0,73,1,70,0,242,255,161,255,255,255, +125,0,93,1,92,0,190,254,188,255,176,255,244,255,201,254,47,254,177,0,182,255,81,254,128,0,1,2,112,0,156,0, +7,0,37,254,160,0,102,2,100,2,34,0,139,254,44,255,203,254,111,0,90,0,167,255,213,0,174,0,140,255,67,255, +136,255,77,255,28,0,164,0,59,1,165,255,210,253,17,255,227,255,50,0,104,255,50,1,90,1,141,255,165,0,101,255, +227,255,164,1,39,1,213,254,138,254,175,0,104,255,252,255,119,1,235,0,203,254,151,254,109,1,139,255,184,254,28,0, +162,0,51,1,30,0,67,0,97,255,79,255,240,0,87,0,47,0,162,255,188,254,120,255,55,0,123,255,108,255,192,0, +33,0,202,255,160,255,128,255,253,1,132,1,54,255,142,254,163,254,117,0,25,1,46,1,248,0,104,254,60,254,114,1, +102,1,6,0,131,0,123,254,105,254,105,1,208,1,120,255,76,254,53,0,16,0,209,255,18,0,224,255,230,0,67,0, +159,255,236,254,174,0,98,1,103,254,122,255,249,255,193,255,82,0,167,255,190,0,33,0,254,254,158,255,169,255,168,0, +4,1,206,255,182,0,7,1,247,255,33,0,126,255,195,255,244,255,159,255,245,0,175,0,218,255,9,0,77,0,29,0, +135,254,102,253,223,254,141,1,139,1,41,0,183,0,39,1,174,255,125,255,91,1,50,0,169,254,181,255,200,255,174,0, +216,0,77,255,144,255,125,255,237,253,173,253,179,0,55,2,85,1,154,1,146,255,94,255,43,1,31,0,181,1,33,2, +39,255,168,254,110,255,117,0,254,255,249,254,150,255,17,0,153,0,90,0,40,0,224,255,97,0,175,1,72,255,64,254, +241,255,168,0,88,0,2,255,29,0,105,1,143,1,198,0,27,255,52,255,203,254,55,255,246,0,8,1,67,0,153,0, +36,0,7,255,205,255,166,254,61,254,16,0,183,0,180,0,4,255,121,255,234,0,255,255,57,0,90,0,6,0,35,1, +125,1,218,255,0,255,115,0,167,0,53,255,23,0,209,0,66,0,122,255,5,255,31,1,137,0,45,255,6,0,245,254, +227,255,10,1,242,255,103,0,84,0,113,255,66,255,128,254,156,255,67,0,83,255,114,1,57,1,162,255,165,255,53,255, +245,0,244,0,4,0,218,0,25,0,9,255,51,0,143,0,236,254,176,255,221,255,214,254,37,0,107,1,27,0,12,254, +80,255,18,1,183,0,213,255,235,255,172,0,104,0,43,0,239,255,141,255,19,255,51,255,37,0,239,255,148,255,36,1, +2,1,66,254,75,255,112,1,7,0,116,255,176,0,174,255,210,255,190,0,144,253,190,254,67,0,12,255,10,2,26,1, +95,255,211,0,144,0,167,255,61,255,15,0,202,254,108,254,192,1,194,1,30,0,202,255,144,254,212,255,49,1,184,255, +83,255,12,0,46,0,158,254,219,255,207,0,236,254,184,255,132,254,46,254,65,255,19,255,15,1,145,1,196,0,187,255, +138,255,192,255,253,255,71,1,168,0,111,0,123,0,132,255,122,0,164,0,28,255,84,0,59,0,151,254,51,0,26,0, +236,255,10,1,242,0,128,0,77,255,188,255,55,0,236,255,23,0,204,255,38,255,103,255,198,0,33,0,89,255,47,255, +61,254,50,255,87,1,78,1,92,255,138,255,166,0,185,0,177,0,251,255,119,0,138,0,65,0,108,1,45,0,237,255, +209,255,214,253,36,0,252,255,55,254,141,0,55,0,96,254,190,254,8,1,132,0,184,254,140,0,105,0,124,0,74,1, +70,255,181,255,28,0,84,254,200,255,222,0,224,255,28,0,186,0,228,1,90,0,187,254,201,255,43,255,235,255,199,0, +55,0,23,1,129,0,28,255,220,255,192,255,57,255,92,0,235,255,59,0,102,0,176,254,230,254,96,255,31,0,72,0, +25,0,190,0,254,255,203,255,12,1,173,1,247,255,217,254,140,0,234,0,112,254,169,253,179,255,50,0,105,0,45,0, +165,254,225,255,27,1,56,0,86,255,147,255,213,0,211,255,247,254,155,255,191,254,151,255,232,0,25,1,206,1,36,0, +249,253,14,255,71,1,22,1,26,0,190,0,66,0,66,254,107,255,95,1,108,255,233,255,211,0,154,255,221,0,122,255, +37,254,55,0,178,255,87,254,33,1,220,2,122,0,14,0,16,0,49,0,28,1,127,0,138,254,167,252,92,255,1,2, +24,1,42,0,21,0,157,0,105,0,214,255,84,254,253,254,211,1,62,1,98,254,2,253,125,255,210,1,96,0,19,0, +173,1,36,1,27,255,205,254,12,1,213,0,35,255,221,0,194,0,83,255,242,254,169,254,184,255,76,0,14,1,175,255, +46,254,223,0,28,2,203,0,84,255,12,255,250,255,111,254,84,254,226,1,125,0,235,254,62,2,43,1,195,253,194,254, +45,0,176,255,129,1,197,0,47,254,162,0,17,0,34,255,72,1,20,0,31,255,101,0,80,0,97,255,132,0,213,0, +39,0,70,0,23,0,170,255,244,254,191,255,22,0,127,0,168,0,16,255,137,255,36,255,133,254,214,0,100,1,37,0, +49,0,15,255,211,254,112,1,97,1,38,0,71,0,91,0,127,0,53,0,96,255,11,255,23,255,92,255,180,0,57,0, +208,255,177,0,142,255,91,255,88,0,102,0,139,255,98,0,128,1,191,254,127,253,1,0,58,1,116,0,117,0,143,0, +164,255,82,255,91,255,140,255,87,1,132,1,14,255,35,255,28,0,202,0,213,255,34,254,203,0,78,1,49,255,94,254, +95,255,127,2,186,1,57,255,209,255,228,0,242,255,81,255,137,0,113,0,67,255,228,255,163,0,18,255,78,255,170,0, +10,0,238,255,50,0,22,255,6,255,89,1,155,0,50,0,141,1,224,255,80,255,177,255,227,0,235,0,246,254,90,255, +2,0,219,0,87,0,135,254,171,255,237,0,252,255,68,0,141,1,200,0,11,255,152,254,178,255,100,255,93,255,153,1, +69,1,157,255,231,255,122,0,59,0,207,255,156,255,183,255,250,255,70,0,220,255,188,254,62,255,228,255,223,255,239,0, +127,1,65,0,37,255,201,255,7,0,167,255,17,0,157,0,26,0,160,255,1,0,151,255,255,255,223,0,2,0,55,255, +23,0,104,0,240,255,11,0,10,255,88,254,118,255,73,2,150,2,134,255,251,254,115,255,255,255,16,0,223,255,212,255, +93,255,133,0,229,255,98,0,252,1,251,254,246,253,8,1,39,1,142,255,49,0,76,0,243,255,151,255,192,255,201,0, +199,255,181,254,96,255,181,1,252,1,253,255,109,255,25,254,118,254,196,0,227,0,66,255,131,254,120,0,249,1,175,0, +22,255,31,255,56,0,137,1,173,0,250,253,253,254,144,1,62,0,38,255,127,255,108,255,211,0,62,0,81,255,239,255, +227,254,255,255,114,0,70,255,165,0,125,0,77,0,217,0,30,255,3,0,232,1,66,0,48,254,187,253,88,255,85,255, +236,255,31,2,80,0,31,0,229,0,57,0,103,255,245,253,136,255,68,0,93,0,2,1,184,0,149,1,83,0,243,254, +236,255,13,0,244,255,12,0,165,255,180,0,134,0,144,254,17,0,45,1,190,254,208,253,214,0,110,1,163,254,60,255, +14,1,182,1,144,0,204,254,182,253,219,253,40,1,180,1,188,0,101,1,194,255,121,254,23,0,119,1,1,255,6,254, +50,1,4,1,99,0,51,2,100,0,176,253,106,253,92,254,39,0,238,0,207,0,242,255,243,255,202,255,172,254,80,0, +78,0,199,254,97,0,64,1,36,1,113,1,171,0,54,0,182,255,99,255,239,255,35,255,192,255,133,0,32,0,118,1, +88,0,230,253,190,254,159,1,83,2,91,0,115,254,234,254,29,2,79,1,31,255,57,0,236,255,161,254,166,254,173,255, +217,255,173,255,39,255,150,255,199,1,119,1,235,255,177,255,108,0,137,0,37,0,189,255,145,255,222,0,254,0,25,0, +112,255,206,255,248,0,70,0,227,254,154,254,243,255,49,1,130,0,189,254,1,255,210,0,89,0,98,255,80,0,232,1, +56,0,48,254,22,0,60,0,55,0,9,2,31,1,44,0,128,255,165,254,13,0,130,0,53,0,37,255,36,254,219,255, +206,255,59,0,72,2,134,1,203,255,6,255,128,255,204,255,120,0,188,1,49,1,132,255,167,254,31,255,148,0,212,0, +20,255,63,255,250,255,115,0,16,1,124,255,54,0,74,1,202,254,193,254,216,0,233,254,9,254,156,0,65,1,161,1, +123,0,107,255,168,255,237,255,58,1,97,255,136,255,207,255,207,253,59,1,12,2,162,255,87,0,32,0,191,255,143,0, +169,0,234,255,86,254,197,254,29,1,34,1,86,0,242,255,0,0,14,0,3,255,199,254,252,255,250,1,182,1,17,0, +208,255,166,254,212,254,0,1,136,0,180,255,154,0,254,254,60,254,252,0,40,0,51,254,255,0,131,1,53,254,187,254, +104,0,196,255,33,0,48,0,12,255,34,0,188,0,223,255,81,1,208,0,187,255,224,255,188,254,141,0,150,1,2,0, +94,255,211,254,17,255,42,0,153,1,125,1,52,255,94,254,232,0,184,0,194,253,189,255,126,2,170,0,209,253,83,254, +144,255,218,255,201,1,197,2,114,1,190,254,99,254,135,0,132,0,18,255,181,253,98,254,37,1,6,2,194,254,12,253, +166,0,221,1,160,255,72,0,174,1,135,255,112,254,109,0,37,1,241,255,132,254,76,255,112,0,250,255,118,0,95,0, +179,255,224,255,48,255,14,0,14,2,250,0,246,254,89,255,88,0,103,255,194,255,89,0,135,254,157,255,122,1,71,0, +68,255,111,0,221,0,231,255,144,0,57,0,60,0,106,0,101,254,187,254,224,255,7,0,93,0,142,255,235,254,39,0, +9,0,174,254,94,0,115,1,58,0,105,0,27,0,219,254,196,255,192,255,119,255,185,0,234,255,92,0,99,0,86,255, +139,255,237,254,94,0,147,0,196,255,238,255,131,0,10,1,230,253,81,255,176,1,254,254,17,0,189,0,152,255,235,0, +52,1,144,0,48,0,150,253,51,253,252,1,239,2,185,255,8,255,78,255,218,254,30,0,6,2,87,0,97,254,52,255, +197,255,54,0,14,0,78,254,191,253,213,255,204,1,54,1,157,0,199,0,221,255,69,255,31,0,40,1,53,0,142,255, +155,0,190,255,64,255,149,255,67,254,120,255,172,1,96,1,73,1,190,255,46,254,145,255,74,0,136,0,192,0,139,255, +150,254,251,255,242,255,235,253,101,255,178,255,96,0,51,3,123,2,146,1,189,254,0,253,35,0,64,1,221,255,159,255, +21,1,213,255,7,255,214,0,64,0,143,0,246,0,168,255,247,254,125,254,202,255,195,0,71,255,130,255,58,1,17,1, +89,255,126,255,28,1,22,254,120,253,65,2,148,1,40,0,95,1,255,0,139,0,179,255,127,254,7,254,137,255,52,0, +214,254,14,0,220,1,88,1,73,0,101,255,2,0,242,0,230,255,153,255,226,255,118,255,35,0,159,0,101,0,74,0, +157,255,142,255,160,0,29,0,75,254,167,254,109,0,187,255,43,255,25,1,123,0,95,255,216,255,81,255,138,0,218,1, +237,255,241,254,6,1,186,0,214,255,203,0,110,255,211,254,89,255,237,255,5,1,145,0,150,255,197,255,154,0,10,0, +200,255,4,255,248,254,46,1,67,0,70,254,91,255,196,1,255,255,161,254,152,1,10,1,14,0,145,0,57,0,90,255, +64,255,213,0,255,255,137,255,231,255,55,255,225,255,7,1,115,1,187,255,109,255,85,1,93,0,245,254,248,254,230,254, +51,0,242,0,114,0,118,0,88,255,73,254,45,255,37,1,19,1,208,255,205,255,171,254,158,255,7,1,192,255,235,255, +180,255,172,255,14,0,154,255,47,0,82,0,177,1,179,1,177,253,86,253,50,1,35,3,14,1,230,254,221,254,111,254, +85,0,222,1,248,254,193,254,82,1,64,0,112,255,42,1,174,0,129,255,218,254,124,254,147,255,26,1,131,0,186,254, +203,0,162,0,190,254,140,0,116,0,38,0,39,0,128,0,1,1,110,0,172,255,215,253,248,255,120,1,170,255,66,0, +13,0,198,255,137,0,70,0,110,0,206,255,221,253,0,255,136,1,8,2,139,0,3,255,119,0,224,255,154,253,18,254, +56,255,71,253,227,251,184,1,118,3,139,0,147,2,194,2,120,0,85,255,175,255,252,0,6,0,124,255,169,0,106,255, +167,254,212,255,132,255,162,254,4,0,238,1,233,255,232,0,164,2,176,255,45,0,172,255,44,255,103,0,228,255,233,0, +15,254,28,251,231,254,154,3,98,2,63,253,50,253,3,0,22,1,196,1,247,0,93,0,183,0,177,255,15,255,64,255, +74,255,133,255,141,255,108,255,59,0,203,1,76,1,70,1,185,1,209,0,238,254,19,252,87,0,136,4,241,255,53,253, +34,255,214,0,168,255,207,254,71,255,73,0,77,1,202,254,241,253,183,0,90,2,195,0,251,254,43,0,42,0,116,0, +72,1,123,254,163,253,0,0,47,1,116,0,6,255,235,255,68,0,23,1,219,2,81,0,42,0,57,1,110,254,164,253, +9,0,219,1,220,255,144,253,55,253,51,255,103,2,88,1,186,255,130,255,18,255,54,0,161,255,177,255,42,2,34,0, +38,254,217,255,73,0,134,255,186,254,77,0,240,0,112,255,236,0,142,1,230,254,132,254,172,0,38,0,119,0,203,1, +39,255,47,253,51,255,0,1,48,0,116,1,112,1,185,255,132,1,107,0,95,254,17,255,48,255,144,255,169,0,54,0, +58,0,30,2,136,0,47,254,230,254,171,0,213,0,210,255,176,0,176,255,59,254,116,0,5,1,76,254,139,254,169,255, +163,255,72,1,107,1,24,1,12,0,35,255,12,0,210,0,57,0,97,254,230,254,8,253,189,253,193,1,102,1,25,3, +80,1,113,255,124,1,111,255,85,255,87,0,188,255,151,255,153,254,240,254,55,1,220,0,78,255,42,1,105,1,195,255, +54,255,102,254,186,255,36,0,229,254,77,0,77,0,77,0,116,1,101,255,133,254,184,255,98,0,55,0,13,0,95,0, +188,255,23,0,81,255,4,255,121,1,79,1,143,255,220,254,92,0,140,1,64,0,2,0,220,255,7,255,38,255,61,1, +207,1,21,255,133,255,40,255,212,253,151,0,43,1,208,1,107,1,161,255,123,0,61,255,120,0,46,2,88,0,127,254, +101,253,77,255,62,0,5,255,197,254,32,1,191,1,42,255,222,255,65,1,49,1,91,255,148,254,16,0,121,0,183,1, +138,0,148,254,49,0,106,0,169,253,111,254,187,1,91,1,136,1,229,1,3,0,136,255,242,255,51,255,173,254,237,255, +168,0,98,0,187,0,107,0,160,254,95,254,69,0,36,2,79,1,82,255,83,255,144,253,169,254,163,0,243,254,166,1, +83,2,194,255,142,255,45,255,233,0,30,2,77,255,75,254,44,1,234,1,79,0,24,255,180,254,65,255,55,0,74,1, +231,255,19,255,163,0,157,0,215,255,139,255,165,255,34,0,16,0,47,255,225,254,187,0,251,1,84,255,226,254,105,1, +231,0,167,0,199,0,150,255,223,254,139,0,242,1,27,255,225,254,205,0,80,255,251,253,168,255,106,1,203,0,49,0, +121,255,239,255,114,1,231,0,157,255,151,254,195,254,184,255,40,0,217,255,204,255,149,0,118,0,57,255,250,254,22,0, +87,255,30,255,87,1,97,1,60,0,81,255,3,255,231,255,180,255,127,0,40,1,215,255,67,0,94,0,28,255,135,255, +39,1,141,0,91,0,112,2,34,255,103,253,3,1,200,255,116,254,230,254,204,253,92,255,243,1,156,1,147,255,46,254, +109,0,229,2,69,0,93,254,27,0,150,0,78,255,110,0,200,255,182,253,118,1,136,1,96,254,213,255,172,0,179,255, +178,255,251,255,90,254,220,254,84,0,163,1,1,2,241,254,60,0,235,0,139,254,33,255,28,0,198,0,220,0,108,0, +138,254,9,255,255,0,251,255,201,0,45,1,118,255,114,255,213,255,111,0,249,0,31,255,241,254,207,0,186,0,247,255, +163,255,10,1,165,0,43,255,196,255,162,255,160,255,218,255,118,0,110,255,67,255,38,0,198,254,238,255,229,254,98,254, +6,2,25,2,101,0,169,254,95,255,63,0,255,255,175,1,169,255,155,254,200,0,44,0,35,255,11,255,244,255,56,0, +102,0,237,0,53,0,224,255,177,255,194,0,201,255,22,255,90,1,104,255,238,254,112,0,129,0,94,1,6,0,89,255, +136,255,56,0,48,1,215,254,222,253,238,255,139,0,238,255,11,0,171,255,134,255,36,0,99,255,80,255,73,0,147,0, +226,0,164,255,188,255,100,1,112,0,49,0,151,254,189,254,213,1,217,255,127,255,146,0,252,255,25,0,123,255,200,255, +18,0,246,0,37,0,108,255,22,1,172,0,125,255,210,254,41,0,130,255,239,254,23,1,75,255,43,0,192,1,2,255, +92,255,97,0,248,255,235,255,112,255,233,254,132,255,179,1,220,0,138,255,91,0,216,254,99,0,146,1,144,255,203,0, +142,0,4,255,80,254,240,254,158,0,140,0,70,0,72,0,21,0,55,255,85,0,46,0,98,255,219,1,253,255,202,254, +198,0,65,0,61,0,229,255,27,255,196,255,152,0,250,255,102,255,104,0,161,0,39,0,51,0,94,255,176,255,212,255, +116,254,73,0,253,255,198,254,9,1,121,0,173,255,106,0,20,1,172,0,253,255,36,0,52,255,63,0,13,1,4,1, +11,0,99,253,228,255,130,1,22,255,96,255,242,255,51,0,107,0,97,255,68,255,67,0,159,0,204,255,21,0,189,0, +215,255,229,255,237,255,92,255,22,0,12,1,99,0,143,254,20,255,212,0,149,0,104,0,89,0,90,255,108,0,218,1, +7,0,174,254,104,255,168,254,109,254,183,0,238,0,190,0,21,1,160,255,2,0,187,0,9,0,173,255,167,0,153,0, +243,254,60,255,238,255,204,0,98,255,81,254,20,0,50,0,131,255,169,253,42,255,197,0,35,0,45,1,254,254,23,255, +28,0,105,254,145,0,247,2,197,0,48,254,189,254,94,255,164,0,64,1,58,255,15,255,242,0,51,0,127,254,169,255, +169,254,240,255,5,4,83,1,207,254,107,255,124,255,219,0,52,1,55,0,41,0,19,255,86,255,250,0,86,255,113,255, +121,1,77,0,208,254,95,0,37,1,83,255,206,255,251,255,35,255,220,255,88,1,101,2,76,0,109,255,122,0,10,0, +193,255,131,255,43,255,107,254,66,255,125,1,186,0,214,255,120,0,141,255,36,255,111,0,233,0,148,255,123,255,154,0, +32,255,58,255,39,1,101,0,1,0,130,0,69,0,236,255,89,255,158,255,170,0,21,0,107,255,122,0,249,0,30,0, +206,255,34,0,31,255,25,255,8,1,137,1,94,0,17,0,24,0,72,255,215,0,189,0,61,254,43,255,255,255,88,0, +83,0,77,255,59,0,78,0,50,255,232,255,115,0,50,0,181,0,75,0,48,0,213,0,230,254,43,254,135,0,65,1, +48,1,35,0,48,255,64,1,121,0,71,255,194,255,126,254,112,255,192,0,232,0,174,0,43,0,128,254,18,254,116,1, +12,1,8,0,74,0,211,254,119,255,173,0,111,1,121,0,98,255,123,255,13,0,45,1,145,0,26,0,192,255,244,254, +233,254,167,255,252,0,145,1,1,0,135,254,17,0,110,0,166,255,84,0,148,0,236,255,80,255,42,255,35,255,169,0, +214,1,77,0,200,253,104,255,219,2,91,0,173,254,9,0,144,255,110,255,221,255,249,255,47,0,127,0,39,0,94,0, +41,0,210,254,194,254,151,255,110,0,133,1,173,1,176,254,53,254,48,0,234,255,80,1,201,0,234,254,213,255,94,0, +195,0,202,0,62,0,134,255,149,255,85,255,209,254,241,255,129,255,56,0,31,1,187,255,251,0,4,1,81,255,41,255, +62,255,182,255,65,0,91,0,90,255,165,255,13,0,15,0,125,0,177,254,124,255,212,0,26,0,42,1,210,0,92,255, +223,255,127,0,88,255,91,255,119,0,173,0,232,255,145,255,216,0,170,255,197,255,39,1,243,255,42,0,14,0,68,255, +6,255,58,255,98,0,27,1,128,255,178,254,173,0,182,0,204,0,12,0,81,255,186,0,33,0,61,0,162,255,192,254, +188,255,93,0,205,0,84,0,114,0,169,0,85,0,152,0,36,0,188,254,153,255,216,0,144,255,23,0,92,0,223,255, +252,255,104,255,108,0,41,0,66,255,249,254,151,254,171,0,237,0,196,255,199,0,2,0,77,255,126,0,1,0,224,255, +126,1,48,1,203,254,225,254,218,255,72,255,229,255,249,254,230,253,27,0,160,1,235,0,219,255,210,255,27,0,215,0, +89,1,115,0,157,255,81,255,151,0,130,1,24,0,214,255,209,255,104,255,244,0,148,0,107,255,126,0,52,0,224,254, +96,254,224,255,127,1,196,0,109,255,225,254,151,0,91,1,108,255,108,255,98,0,45,255,92,255,232,1,155,1,192,255, +151,255,56,0,252,0,234,255,165,254,37,0,8,1,77,0,51,0,61,255,252,254,218,0,125,0,169,254,83,255,162,255, +91,255,39,1,115,1,244,0,61,0,139,255,45,1,166,255,11,254,1,0,16,0,131,255,137,255,21,0,132,1,160,1, +167,0,105,255,104,254,63,255,125,0,204,255,158,254,119,255,223,0,3,1,131,0,131,255,18,1,116,1,247,254,143,255, +12,255,13,255,193,0,28,0,194,0,76,1,218,255,60,255,234,255,253,254,185,255,45,1,240,254,128,255,115,0,30,0, +193,0,96,0,60,0,172,255,84,0,34,0,255,254,123,255,4,0,177,0,34,255,53,255,106,1,226,0,84,255,165,253, +108,254,202,255,224,255,3,1,149,0,51,0,203,0,101,0,188,0,64,0,144,254,104,255,44,1,52,0,171,255,156,0, +183,0,155,0,203,254,235,253,181,255,251,255,147,255,116,255,216,255,150,1,105,1,237,254,255,254,200,0,229,0,189,255, +170,254,56,0,170,0,149,255,185,255,184,253,132,253,239,254,83,0,2,4,166,3,115,0,204,255,70,255,107,254,6,0, +16,2,232,255,85,254,21,0,34,0,181,255,42,0,110,0,224,255,237,254,23,0,185,0,207,255,15,255,29,255,229,255, +32,255,114,0,205,2,29,1,92,255,41,0,9,0,28,255,219,0,250,0,59,255,208,254,139,255,111,1,182,255,200,254, +52,0,112,255,3,0,94,0,138,255,22,255,142,255,39,0,255,0,72,1,250,254,198,255,172,0,8,0,100,1,40,0, +234,254,27,255,232,255,229,0,99,0,69,0,163,255,149,255,110,255,54,255,225,255,56,255,86,0,55,1,114,0,221,0, +50,0,187,254,18,255,63,1,227,0,121,254,215,254,179,0,82,1,34,0,94,255,213,255,7,0,107,255,51,255,156,255, +229,255,66,0,162,255,23,0,84,0,170,255,82,0,83,255,179,255,243,0,51,0,54,0,73,0,59,0,150,255,70,255, +159,0,72,1,169,255,250,254,252,255,187,255,222,255,51,0,176,0,110,0,195,255,13,0,187,254,56,255,94,0,183,0, +202,0,116,254,215,254,231,0,150,0,153,255,30,0,40,0,250,254,196,0,111,1,44,0,246,255,34,255,122,255,146,0, +122,0,165,255,25,255,99,255,68,0,111,0,240,255,243,255,148,255,223,255,211,0,35,1,229,255,230,254,18,0,154,255, +239,254,41,255,139,255,102,1,230,1,154,0,188,254,40,255,110,0,208,255,183,255,157,255,163,0,196,0,65,0,144,0, +167,255,89,0,154,254,131,253,54,1,194,1,92,0,250,254,223,254,64,0,136,0,122,1,168,255,148,253,175,0,108,1, +180,255,39,1,34,1,5,0,29,0,241,254,54,255,110,0,69,0,115,0,223,255,25,255,56,0,52,0,19,255,30,0, +128,0,159,255,251,255,111,0,3,0,191,255,81,0,70,0,252,255,198,255,9,0,238,0,204,255,143,255,157,0,30,255, +58,255,157,1,140,0,18,255,52,0,185,255,64,255,238,255,37,0,184,0,141,0,49,0,235,255,6,0,125,0,61,0, +93,0,232,255,81,255,123,255,211,255,154,0,98,0,130,255,137,255,139,0,227,0,174,255,224,254,69,255,167,0,244,0, +119,255,245,255,213,0,142,255,179,255,56,0,102,255,34,0,144,0,92,255,68,255,88,255,142,255,149,0,223,255,226,255, +16,1,226,255,169,255,241,255,184,255,175,0,153,255,102,255,25,1,198,0,111,0,9,0,243,254,79,255,45,0,130,255, +183,255,247,0,79,0,169,255,125,255,200,255,45,0,205,255,182,0,121,0,153,255,207,255,85,255,172,0,82,1,251,255, +71,0,137,255,111,255,45,1,187,255,210,254,161,0,68,0,125,255,241,0,124,0,37,254,196,255,73,1,126,255,14,0, +130,1,89,1,234,254,124,253,186,0,58,1,129,255,34,0,20,0,198,255,238,255,245,255,188,255,60,0,1,0,117,254, +241,255,255,0,21,0,14,0,254,254,123,255,229,0,147,0,235,255,166,255,224,0,120,0,87,255,3,0,92,255,118,255, +116,0,72,0,123,0,110,0,159,255,188,255,208,0,33,0,45,255,96,255,254,255,73,1,214,255,157,254,134,0,149,0, +81,0,129,0,88,255,181,255,3,0,155,255,201,0,93,0,232,255,183,0,202,255,174,255,244,255,252,255,40,0,209,255, +65,0,235,255,242,255,57,0,32,0,181,0,92,0,17,0,207,255,76,0,66,0,208,254,108,255,49,0,49,0,90,0, +147,0,68,0,106,255,195,255,238,255,152,255,210,255,251,255,82,255,175,255,208,0,196,0,106,0,78,255,177,255,27,0, +13,0,45,1,170,255,78,255,148,0,125,0,169,255,210,254,167,255,85,0,237,0,40,0,90,0,201,0,123,255,49,0, +118,253,177,253,159,1,182,0,205,0,254,255,94,255,135,255,44,255,190,0,102,0,78,0,4,0,103,255,57,0,127,0, +77,0,92,255,84,0,234,0,231,255,23,0,55,0,128,0,250,255,126,255,89,0,162,0,255,255,183,255,151,255,107,255, +9,0,231,255,234,255,51,0,203,255,184,255,228,255,237,0,112,0,179,255,56,0,29,255,186,254,184,255,176,0,138,0, +215,255,54,0,220,255,124,0,100,1,226,255,120,255,104,0,37,0,85,255,192,255,229,0,156,0,7,0,124,255,244,254, +158,255,231,255,121,0,168,0,255,255,5,0,145,255,251,255,113,255,177,254,87,0,177,0,76,0,25,0,205,0,218,0, +88,255,239,255,10,0,112,255,206,255,91,0,113,0,235,255,13,0,133,255,157,255,108,0,10,0,164,255,227,255,39,0, +151,0,250,0,7,0,109,0,159,254,156,253,180,0,191,252,83,252,178,1,196,1,176,2,166,1,228,255,114,0,50,0, +106,0,213,255,18,0,58,0,162,255,175,255,245,255,48,0,226,255,105,0,253,255,148,255,225,255,190,255,191,0,186,0, +176,0,58,0,126,254,172,255,31,1,167,0,32,0,45,255,40,255,254,255,139,0,33,1,219,0,71,0,234,254,113,254, +61,0,232,255,244,255,219,0,239,255,127,0,122,0,213,255,43,0,4,255,5,255,197,0,106,0,76,255,188,255,34,0, +253,255,248,255,92,0,57,0,189,255,242,255,86,0,73,1,136,0,107,255,170,255,164,255,3,1,54,0,238,254,225,255, +2,0,206,0,84,0,4,0,54,0,31,255,92,255,170,255,139,0,236,0,10,0,127,255,207,255,160,0,116,255,139,255, +97,1,35,1,224,255,226,255,202,0,104,0,105,255,124,255,106,0,189,255,168,255,83,0,4,255,87,0,111,0,18,255, +198,0,222,255,77,255,80,1,5,1,5,0,150,255,189,254,54,0,47,1,12,255,163,255,40,0,8,0,17,0,198,253, +179,255,51,1,108,0,157,1,11,255,39,254,38,1,253,1,174,0,158,254,206,255,109,1,79,0,166,0,221,0,111,254, +255,253,77,0,21,0,166,255,110,0,22,0,184,0,111,0,206,255,123,0,61,0,151,255,208,254,157,255,76,1,9,1, +6,0,195,255,169,255,245,254,64,255,226,255,204,255,154,0,236,0,176,255,195,255,243,0,179,0,49,0,19,0,82,0, +248,255,71,255,43,0,103,0,20,0,156,255,30,255,114,255,213,255,61,0,118,255,53,255,135,253,13,253,96,1,113,1, +0,1,14,2,168,0,148,0,52,255,218,255,38,1,89,255,171,255,8,255,238,254,54,1,37,1,57,0,195,0,104,0, +218,254,187,255,125,0,255,255,22,0,124,255,89,255,156,255,39,0,94,0,220,255,91,255,120,255,128,0,48,0,171,255, +117,255,28,255,210,255,250,0,200,0,100,255,247,255,52,0,183,0,167,1,250,255,126,255,23,255,112,255,97,0,210,254, +60,255,89,0,15,0,89,0,152,0,72,0,248,255,27,0,231,255,5,0,29,0,221,255,214,0,61,0,91,255,83,0, +219,255,128,0,252,254,217,253,238,2,221,1,11,255,191,255,175,254,82,0,241,255,42,255,221,255,48,255,15,1,54,0, +2,255,36,1,152,255,37,254,121,0,21,1,247,0,253,0,205,255,52,0,129,255,10,255,78,0,41,255,61,255,222,255, +75,255,153,0,221,0,187,255,155,0,108,0,212,254,245,255,244,0,214,0,204,255,16,254,253,254,176,255,57,0,19,1, +91,0,229,255,91,255,214,255,49,0,206,255,76,0,162,0,6,1,138,0,196,0,197,0,179,255,28,0,135,255,24,255, +91,255,21,255,40,255,219,255,209,0,62,255,47,255,148,1,192,0,161,255,121,0,19,0,45,255,160,255,172,255,39,0, +227,0,188,255,167,254,65,255,112,0,184,0,119,0,171,255,45,255,28,0,50,1,14,0,237,254,100,0,192,255,193,255, +112,0,151,255,184,0,0,0,156,255,172,255,122,255,197,0,115,0,212,0,3,0,156,255,79,0,17,255,45,255,222,255, +15,0,41,255,54,0,135,1,81,255,185,255,173,1,41,1,63,255,145,254,138,255,140,0,12,1,186,255,30,255,156,255, +211,255,199,255,253,254,25,0,167,0,51,0,96,1,229,255,88,255,211,0,206,254,77,255,100,1,243,255,91,255,230,255, +98,0,106,0,8,0,223,255,11,255,99,255,180,0,23,1,50,0,228,254,30,0,247,0,131,255,206,255,158,0,168,0, +42,0,11,255,238,254,115,255,44,0,119,0,78,0,242,255,32,0,207,0,235,255,16,0,184,0,234,255,170,255,98,255, +179,255,150,0,49,0,250,254,94,255,2,1,53,0,9,255,103,0,184,0,70,0,135,0,50,255,44,255,186,255,73,255, +203,0,5,1,70,0,50,0,95,255,192,255,175,0,147,0,177,255,116,255,173,0,101,0,220,254,127,255,70,0,11,0, +10,0,182,255,251,255,161,0,170,0,24,0,169,255,136,255,138,255,27,0,50,0,212,255,179,255,88,0,67,0,128,255, +206,255,26,0,153,0,78,0,14,0,94,0,159,255,231,255,226,0,3,0,231,254,249,255,41,0,244,255,147,0,223,255, +225,255,16,0,248,255,255,255,19,0,252,255,127,255,205,255,247,255,129,0,60,0,235,255,35,0,118,255,221,255,70,0, +137,0,90,255,159,254,103,0,96,0,230,255,180,255,14,0,0,1,106,0,216,255,220,255,39,0,22,0,104,255,79,255, +221,255,197,255,174,255,126,0,76,0,251,255,135,0,93,0,37,0,90,0,163,255,191,254,235,255,85,1,56,0,183,255, +19,1,137,0,133,255,114,0,83,0,185,254,21,255,164,0,170,0,10,0,141,255,79,255,78,0,178,0,78,255,19,0, +208,0,68,255,185,255,36,0,172,0,63,1,62,255,243,254,96,0,102,0,6,0,132,0,134,0,229,255,179,255,49,0, +57,0,226,254,19,0,201,0,114,255,44,0,251,255,191,255,22,0,51,0,224,0,40,0,231,255,42,0,168,255,227,255, +219,255,243,255,31,0,169,255,67,0,6,0,16,0,144,0,116,255,213,255,210,255,215,255,81,0,221,255,45,0,134,255, +122,255,167,255,36,0,0,1,51,0,122,0,120,0,32,0,102,0,15,0,164,255,221,255,47,0,106,255,226,255,41,0, +145,255,64,0,16,0,197,255,11,0,240,255,105,0,156,0,40,0,135,255,5,255,68,0,147,0,160,255,22,0,221,255, +35,0,41,0,54,255,154,255,244,255,80,0,96,0,19,0,16,0,30,0,34,0,234,255,15,0,251,255,108,255,227,255, +211,0,247,255,218,255,120,0,82,255,213,255,115,0,253,254,102,255,13,1,75,0,172,255,62,0,7,255,123,255,117,1, +148,0,68,255,242,255,77,0,128,255,187,255,205,255,100,255,128,0,56,1,97,0,123,255,73,255,81,0,204,0,102,255, +161,255,217,0,152,255,23,255,119,0,97,255,127,254,171,0,6,1,4,0,248,255,2,0,33,0,221,255,239,255,60,0, +34,0,202,255,166,255,4,0,4,0,231,255,248,255,196,255,69,0,86,0,107,255,66,0,136,0,37,0,66,0,229,254, +31,255,7,0,183,255,240,255,218,0,122,0,104,255,84,0,76,0,188,255,171,255,17,0,108,0,162,255,106,0,27,0, +17,0,117,0,31,255,110,255,169,255,34,0,161,0,87,0,104,0,157,255,9,255,229,255,102,0,126,0,112,1,227,255, +133,254,195,255,143,0,69,1,79,0,146,255,221,255,240,255,15,0,108,255,212,255,27,0,149,255,116,255,65,0,24,1, +180,255,15,255,165,0,157,0,209,255,139,0,214,255,129,255,204,0,248,255,238,254,120,255,139,0,6,1,121,0,157,255, +188,255,93,0,8,255,159,254,215,255,32,0,101,0,9,0,152,0,79,1,164,255,129,255,118,0,30,0,251,255,200,255, +147,255,13,0,162,0,72,0,39,0,19,0,73,255,145,255,167,255,144,255,166,0,19,1,215,255,169,255,188,0,70,0, +101,0,141,0,145,255,115,255,73,0,147,0,142,255,207,255,43,0,39,0,95,0,2,0,11,0,233,255,149,0,100,0, +124,255,195,255,153,255,130,255,219,255,204,255,179,254,214,255,241,1,249,0,149,255,140,255,244,255,56,255,213,255,198,0, +255,255,122,0,241,255,93,255,215,0,237,0,236,255,220,255,233,255,55,0,159,0,198,255,38,255,32,0,150,0,107,255, +187,255,122,0,53,0,89,0,16,0,232,255,67,255,34,0,252,0,186,255,97,0,86,0,228,255,246,255,13,0,213,0, +74,255,219,254,200,255,176,255,165,0,81,0,170,255,250,255,71,255,67,0,63,1,191,255,201,254,73,255,56,1,125,1, +215,255,190,255,13,0,101,0,188,0,231,255,53,255,23,0,251,255,64,255,172,255,226,255,167,0,229,255,30,255,183,0, +78,1,87,0,67,255,22,0,162,0,4,0,252,255,28,255,10,255,84,0,150,0,5,255,238,254,59,1,84,1,18,0, +122,255,24,255,181,255,50,0,18,0,191,255,52,255,65,255,75,0,216,1,41,1,87,255,125,255,198,255,24,0,127,0, +221,255,31,255,112,255,6,0,20,0,124,0,97,0,75,0,68,0,237,255,150,255,253,254,16,0,228,0,207,255,84,255, +43,0,75,0,230,255,128,0,62,0,55,0,188,0,246,255,40,255,36,255,61,255,121,255,117,0,239,0,50,0,188,255, +94,0,57,255,33,255,135,1,125,0,59,255,41,255,228,255,127,0,172,255,96,0,147,255,137,255,233,255,186,255,129,1, +1,1,55,0,184,255,163,255,126,0,182,255,34,255,73,255,236,255,97,0,70,0,1,0,241,255,222,255,150,255,230,255, +44,0,135,0,162,0,19,0,32,255,180,255,143,0,44,255,56,255,31,0,110,0,130,0,189,255,181,255,194,255,249,255, +172,0,118,0,220,255,120,0,185,0,145,255,107,255,43,255,159,255,60,1,101,0,57,255,80,255,0,0,77,0,90,255, +62,0,32,1,146,0,38,0,143,255,75,0,85,0,203,255,174,255,124,255,112,0,206,255,252,254,229,255,33,0,248,255, +4,0,126,255,132,255,154,0,239,255,63,255,40,0,255,255,35,255,231,255,95,1,124,0,237,254,93,255,159,0,64,0, +79,255,64,255,55,0,190,0,138,255,210,0,158,0,40,255,233,0,120,0,89,255,141,254,23,255,118,0,73,0,39,1, +150,0,217,255,221,255,103,255,129,255,226,255,243,255,52,255,168,255,6,0,96,0,156,0,173,255,19,0,252,255,50,255, +142,255,147,0,28,1,46,0,16,255,144,255,6,1,12,1,235,255,227,255,24,0,164,255,88,0,249,255,98,255,121,0, +211,255,241,255,71,0,193,254,29,255,182,0,117,0,235,255,75,0,85,255,4,0,251,0,23,255,143,255,17,1,13,0, +35,255,33,0,131,0,242,255,82,0,109,0,90,0,169,255,15,255,90,0,174,0,211,255,160,255,138,255,206,255,169,255, +66,0,37,1,212,255,211,255,193,0,30,0,162,254,145,254,97,0,246,255,70,0,1,1,145,255,245,255,90,0,254,255, +41,0,99,0,102,0,113,255,226,254,10,0,23,1,183,255,140,255,193,0,77,255,99,255,243,0,152,0,210,0,202,255, +188,254,91,0,120,0,202,255,223,255,5,0,104,0,103,0,117,255,236,254,45,0,29,0,178,255,0,0,120,0,158,1, +118,0,35,255,116,255,99,0,222,0,126,255,38,255,65,0,166,255,163,254,95,0,96,1,222,255,235,254,154,255,33,0, +9,0,33,1,166,0,169,255,231,255,47,0,44,0,130,255,33,0,74,255,68,255,147,1,231,0,41,255,37,255,133,255, +186,255,33,1,197,255,195,254,104,1,189,0,163,255,182,255,145,255,253,255,154,255,253,255,96,0,141,254,44,255,105,2, +100,0,22,255,92,0,252,255,228,0,72,255,53,255,9,1,11,0,175,255,159,255,38,0,64,0,114,0,178,0,184,255, +230,255,230,255,249,255,77,0,136,255,107,255,15,0,249,255,16,0,217,0,25,0,77,254,245,254,154,0,55,0,80,0, +65,0,113,255,150,0,55,1,36,0,239,254,216,255,125,1,210,255,44,255,250,0,154,0,106,255,189,255,231,255,60,255, +234,255,138,0,227,255,70,0,77,0,103,0,186,0,215,255,19,0,99,0,138,255,14,255,20,0,186,0,122,255,108,255, +16,0,221,255,96,0,1,1,53,0,51,0,37,0,228,254,215,255,27,0,193,255,170,0,143,0,173,255,224,254,35,0, +88,1,180,0,66,255,139,254,167,255,191,0,89,1,203,0,153,255,223,254,193,0,109,1,187,254,19,255,229,255,109,0, +135,255,198,254,34,2,224,0,113,254,145,255,84,0,90,1,249,255,87,254,164,255,182,0,44,0,116,255,7,1,133,1, +105,255,118,255,229,255,157,0,87,0,46,255,58,0,0,255,243,1,63,5,42,0,17,254,12,0,214,0,33,254,242,252, +210,255,252,255,53,0,223,255,64,255,216,0,10,1,18,0,229,254,86,255,4,1,15,0,18,254,62,255,95,1,1,1, +122,255,47,255,41,0,149,0,209,255,9,255,251,255,80,0,150,255,59,0,183,0,113,0,22,0,136,0,21,0,16,255, +75,255,33,255,251,255,21,1,48,0,27,255,158,255,76,0,4,0,169,255,249,255,146,0,239,255,41,0,24,0,134,255, +73,0,93,255,39,255,175,255,250,255,202,0,28,0,11,255,49,255,69,1,41,1,218,255,124,0,148,255,163,255,205,255, +235,254,117,0,107,1,63,0,87,255,195,255,161,255,92,255,56,0,208,255,161,255,73,0,146,0,158,0,63,0,128,255, +255,253,122,0,199,3,73,1,94,254,170,253,142,255,178,0,174,255,4,0,102,255,157,255,67,0,236,255,63,0,199,255, +80,0,242,0,98,0,222,255,105,255,154,255,160,255,106,0,21,0,93,254,71,0,94,1,206,255,146,255,248,255,133,0, +22,254,72,254,191,2,158,1,163,255,200,255,252,254,60,255,124,0,135,0,130,255,39,0,246,255,1,0,226,0,215,255, +246,255,155,0,195,255,211,254,58,255,120,255,111,0,81,1,177,255,71,0,195,0,2,0,16,0,88,255,29,0,90,0, +71,255,116,255,209,255,77,255,158,255,53,1,12,1,1,0,196,255,88,255,154,255,138,0,70,0,43,0,89,0,71,255, +96,255,166,0,161,0,189,255,157,255,98,0,238,0,228,255,208,255,190,0,148,254,221,254,131,1,78,1,236,0,208,255, +191,254,49,0,34,1,79,255,186,255,220,0,210,254,136,255,240,0,35,0,98,255,206,255,246,0,38,0,205,255,251,255, +137,255,222,255,218,255,94,255,205,255,42,0,46,255,102,0,56,1,195,254,34,255,46,0,146,255,176,1,190,1,73,255, +170,0,60,1,143,255,70,255,130,255,155,255,22,0,14,1,165,0,6,0,111,255,155,255,215,0,159,255,46,255,12,0, +89,0,41,0,184,255,186,0,71,0,125,255,62,0,55,0,225,255,255,255,8,0,153,255,176,255,242,255,101,0,240,0, +187,255,225,254,34,0,202,0,98,0,99,0,199,255,161,255,83,0,161,255,82,255,254,255,195,255,15,0,245,0,36,0, +143,255,243,255,53,255,71,255,213,255,184,255,69,0,72,0,199,0,10,1,233,255,230,255,138,255,201,255,185,255,210,254, +228,0,248,0,201,255,11,0,85,255,158,0,134,1,195,255,193,254,250,255,42,1,131,0,161,255,37,255,216,255,99,0, +7,0,187,255,219,254,192,255,206,0,162,255,171,255,180,255,167,255,157,0,112,0,145,0,251,254,247,254,232,1,40,0, +27,255,10,0,99,0,227,0,79,255,193,255,108,0,179,255,33,0,163,0,119,0,91,255,212,255,80,0,190,255,33,0, +59,255,69,254,122,0,123,1,160,255,52,255,16,0,171,0,157,255,104,255,219,255,103,255,170,0,96,0,164,0,95,1, +50,0,57,0,121,255,92,255,187,255,192,255,117,0,232,255,215,255,95,0,46,0,29,0,183,255,174,255,163,0,221,255, +53,255,149,255,78,255,71,0,176,0,133,0,9,0,144,255,69,0,199,255,35,255,111,255,116,0,10,1,217,0,51,0, +86,255,222,255,102,0,23,0,155,255,126,0,220,0,175,255,149,255,185,255,104,0,95,0,121,255,191,254,42,255,245,0, +39,0,249,254,142,255,107,0,108,0,205,255,131,0,73,0,170,255,169,0,199,0,36,255,241,254,141,0,136,0,15,0, +247,255,192,255,128,0,77,0,146,255,116,255,136,255,215,0,40,0,188,254,77,0,182,0,8,0,199,255,38,0,147,0, +196,254,141,254,123,0,32,1,58,0,46,255,168,255,210,255,216,255,15,1,208,0,113,255,151,255,44,0,202,255,239,255, +58,0,60,255,209,255,151,1,196,0,44,255,114,255,153,0,193,255,118,254,161,255,24,0,95,255,99,0,87,1,116,0, +40,0,77,255,82,255,110,1,80,0,81,255,255,255,93,0,151,0,39,255,219,255,31,1,31,255,85,254,173,0,118,1, +35,0,69,255,43,255,232,255,1,255,83,255,226,0,47,0,219,255,122,255,207,255,102,0,24,0,88,0,132,0,222,255, +160,255,149,0,202,255,209,255,192,0,41,255,233,255,118,1,193,255,13,255,11,255,215,254,106,0,206,255,229,254,104,255, +193,0,33,3,92,0,126,254,61,0,78,0,58,0,94,255,183,255,161,0,232,0,98,0,144,255,189,255,78,255,7,0, +143,0,125,0,247,255,44,255,94,0,43,1,212,0,162,255,83,255,210,255,153,255,242,255,133,255,75,255,97,0,17,0, +220,255,233,0,116,0,11,0,156,255,165,255,187,0,52,255,64,255,241,0,200,0,115,0,46,0,103,0,169,255,88,255, +70,0,26,0,113,255,121,255,46,0,61,0,6,0,226,255,232,255,42,0,231,255,200,255,57,0,73,0,43,255,94,254, +53,255,222,0,239,0,241,255,29,0,56,0,23,0,119,255,195,255,211,0,25,255,192,254,164,0,222,0,87,1,123,0, +151,254,85,255,12,0,205,255,187,255,33,0,93,0,191,255,89,0,187,0,36,0,44,0,78,255,27,254,64,255,80,1, +74,1,75,0,148,255,249,254,101,255,145,0,252,255,242,254,181,255,52,0,211,0,138,0,8,255,193,255,5,1,124,0, +36,0,143,0,180,255,30,255,138,255,202,255,166,255,174,255,216,0,218,255,57,254,194,255,194,1,94,1,41,0,253,255, +136,255,229,255,91,0,98,255,123,254,171,0,121,2,143,255,189,255,99,0,209,254,214,255,196,255,196,255,22,0,22,0, +20,1,188,0,112,255,17,255,172,255,44,0,242,255,35,255,196,255,58,1,15,1,218,255,147,255,213,255,239,255,152,0, +4,0,24,0,110,0,251,255,57,0,167,255,249,255,203,255,187,255,233,255,171,255,120,0,90,255,182,255,218,0,168,0, +30,0,191,254,204,255,113,0,218,255,89,0,53,0,74,255,64,255,106,0,72,1,87,1,57,0,13,255,5,255,194,0, +238,1,97,0,192,255,159,255,179,254,194,255,251,0,221,255,13,0,202,0,190,255,197,255,46,255,231,254,211,0,210,0, +161,255,223,255,135,255,69,255,41,0,96,0,207,0,231,255,128,255,236,0,139,255,191,254,251,255,28,1,108,1,52,0, +184,255,22,0,55,0,228,255,149,0,46,0,114,254,57,0,82,1,221,255,42,255,213,254,168,255,145,0,205,0,59,0, +192,254,132,255,103,1,240,0,3,255,230,254,72,0,123,0,195,0,251,0,249,255,122,254,70,255,122,1,252,255,131,255, +73,1,19,0,169,254,90,255,197,0,255,0,248,255,148,255,67,0,149,255,102,254,223,255,195,0,236,255,201,255,114,255, +122,254,229,255,22,2,155,0,88,255,121,0,14,0,245,254,115,255,234,255,209,0,165,1,90,0,106,255,133,255,194,254, +89,255,177,1,135,0,252,255,83,0,77,255,28,1,233,252,54,253,14,5,33,1,150,253,207,255,93,0,60,0,3,0, +117,0,35,255,215,255,243,0,77,0,144,0,50,0,217,255,84,255,243,255,175,255,63,254,36,0,34,1,204,255,103,0, +65,0,47,255,114,0,185,0,155,255,152,255,235,255,154,255,36,0,209,0,213,255,153,255,1,255,115,255,40,1,144,255, +126,254,148,0,217,0,85,255,180,0,204,0,47,255,51,0,17,1,219,0,218,255,16,0,159,255,152,254,2,0,91,0, +150,0,246,255,180,254,176,255,195,0,72,0,157,255,145,0,110,0,102,0,95,0,63,255,130,0,85,0,32,255,190,255, +39,0,160,0,79,0,32,0,207,255,31,255,184,255,153,255,25,0,143,0,231,255,136,0,43,0,244,255,139,255,213,254, +200,0,161,0,29,255,165,255,205,255,164,255,13,0,71,0,168,0,83,1,65,0,139,255,83,0,61,0,244,255,84,0, +36,0,249,253,88,254,123,1,2,1,29,0,142,0,46,255,26,255,67,0,113,0,241,0,131,0,109,255,41,255,214,255, +196,0,231,255,2,255,137,0,233,1,8,0,209,254,113,0,104,0,174,255,247,255,126,255,62,255,80,0,169,0,218,255, +209,255,249,0,216,1,49,0,213,254,84,0,192,0,135,254,155,254,242,0,225,0,26,0,188,254,159,255,87,2,93,0, +235,255,60,0,51,254,231,255,75,0,100,255,202,0,40,0,162,0,217,0,148,255,255,255,22,255,150,255,33,255,209,254, +151,0,200,254,61,0,116,1,216,0,213,1,69,255,137,255,36,1,252,255,42,255,4,0,18,1,118,255,81,255,238,255, +223,255,143,0,170,0,134,0,224,255,170,255,178,0,194,255,196,253,209,255,155,0,28,255,30,0,95,1,29,2,31,0, +248,254,178,255,68,255,44,0,47,0,81,0,105,0,246,255,182,0,120,0,58,0,15,0,90,255,216,253,234,253,46,1, +105,2,226,0,247,254,101,254,226,255,143,0,165,0,160,0,12,0,147,0,231,0,81,0,4,255,53,254,139,255,235,255, +228,255,106,0,164,0,216,0,222,254,122,254,157,0,67,0,207,255,181,0,65,0,78,0,247,0,90,255,133,255,69,1, +86,255,225,254,141,0,54,255,148,254,123,255,156,0,234,1,203,0,7,0,83,0,212,255,191,255,74,255,221,255,127,0, +161,255,238,255,153,255,95,255,200,0,90,0,180,255,135,255,150,255,6,1,218,0,117,255,62,255,27,1,32,1,99,255, +162,0,236,255,150,254,172,254,119,255,87,1,209,255,159,255,167,255,128,254,112,0,103,0,115,255,125,255,104,0,80,1, +101,0,157,0,251,255,247,254,210,255,32,0,54,0,89,0,132,0,52,0,49,255,119,255,120,255,159,255,147,0,205,255, +45,0,133,0,12,255,121,255,68,0,57,0,69,0,45,0,244,255,210,255,120,255,156,255,193,0,57,0,5,255,245,254, +43,0,175,1,202,0,138,255,221,254,69,255,163,0,115,255,16,255,243,255,15,0,211,0,123,254,30,254,120,1,172,0, +212,0,154,1,233,255,18,0,92,0,195,254,149,253,142,0,144,2,36,0,54,255,103,255,41,255,91,0,1,1,69,255, +77,255,219,255,5,0,110,1,35,0,138,255,94,0,234,0,108,0,171,253,120,254,124,0,186,0,178,0,162,255,22,255, +111,0,81,1,106,255,219,255,169,1,146,0,54,255,215,254,245,254,145,255,166,1,167,0,250,254,200,0,70,0,31,255, +80,254,122,254,29,0,221,0,35,1,240,255,199,0,52,0,33,254,187,0,103,1,18,1,191,0,208,254,82,255,170,255, +0,0,82,0,62,0,35,0,172,254,233,255,154,1,132,0,144,255,46,255,131,255,238,255,87,0,161,0,238,255,107,255, +204,255,247,255,176,255,219,0,184,0,0,254,60,255,126,1,119,0,202,0,66,0,177,254,51,255,0,0,34,0,4,255, +6,0,138,1,122,0,60,0,151,255,58,255,118,0,53,1,89,0,170,255,243,255,16,255,41,0,55,1,210,255,228,255, +213,255,128,255,9,0,139,0,255,255,126,255,252,255,100,255,79,0,198,0,239,253,242,253,47,0,70,1,200,1,124,1, +2,1,106,255,12,255,102,0,39,0,232,255,39,255,224,255,5,1,168,255,114,0,125,0,207,255,16,0,56,255,215,255, +17,0,227,0,149,0,60,254,137,255,152,0,213,255,220,254,92,254,63,0,31,1,67,0,74,0,181,0,76,0,102,0, +88,0,160,255,5,0,81,255,65,255,254,255,106,255,174,0,16,0,56,254,44,0,106,1,243,0,159,0,80,255,99,254, +170,255,66,1,61,1,86,0,221,255,51,0,9,0,236,255,221,255,158,255,232,255,106,255,183,255,232,0,88,0,117,255, +233,255,0,0,201,255,231,255,54,255,111,0,25,1,96,255,150,255,206,255,193,255,171,255,166,255,90,0,23,0,65,0, +111,0,39,0,186,255,86,0,116,0,168,254,128,255,33,0,64,255,234,255,33,1,11,1,16,254,198,253,65,1,219,1, +69,0,20,0,119,0,171,0,1,0,171,254,237,254,243,252,238,253,26,4,158,2,61,0,165,1,94,0,114,255,186,254, +108,255,219,0,19,0,174,254,212,254,183,0,94,1,5,1,101,0,63,0,211,255,100,255,136,0,247,255,154,255,136,255, +205,255,158,0,255,254,23,0,254,0,221,255,192,0,66,0,123,255,40,255,254,255,74,1,188,255,70,255,134,0,97,0, +66,255,225,254,98,0,64,1,150,255,48,255,42,0,114,255,62,0,139,1,115,255,79,254,73,0,217,0,60,0,41,1, +112,0,234,254,239,255,190,0,169,0,127,0,61,255,238,254,243,255,13,0,144,0,47,0,98,255,214,0,138,0,70,255, +81,254,103,254,65,1,159,0,13,255,192,0,47,1,93,0,54,255,174,255,131,1,3,1,202,255,140,255,199,255,111,0, +19,0,91,255,100,0,46,1,51,1,65,0,231,253,241,254,211,0,226,255,61,0,248,255,226,254,60,0,35,1,35,0, +28,255,100,255,229,255,223,255,225,255,208,255,118,0,108,255,218,253,90,255,156,0,197,1,162,1,246,255,161,0,57,0, +89,255,150,255,33,0,79,0,110,254,11,255,51,0,134,0,130,1,207,255,183,255,6,0,118,254,149,255,128,1,254,0, +26,255,31,255,173,255,215,255,136,0,128,0,153,0,150,255,0,255,43,0,205,0,233,0,185,255,140,255,67,1,237,0, +72,255,2,255,83,255,69,0,125,0,148,254,4,255,198,0,14,0,188,255,12,1,28,1,232,255,160,255,248,254,228,255, +226,0,75,255,205,255,247,255,14,255,170,254,132,255,72,1,185,255,93,0,9,2,255,0,9,0,28,254,8,255,104,0, +173,255,172,255,211,255,25,0,204,255,233,0,33,1,49,0,231,0,125,0,135,255,174,254,86,0,124,1,220,254,6,255, +126,255,27,255,169,0,105,0,188,255,45,0,183,0,168,1,114,0,31,255,212,255,78,255,199,255,98,0,39,255,138,255, +100,0,112,0,186,255,207,255,253,255,200,255,31,0,175,253,249,254,144,2,21,1,25,1,145,0,71,254,50,255,56,1, +230,0,20,255,68,0,155,1,226,255,99,255,106,1,30,1,217,254,242,254,18,255,176,255,73,0,157,255,101,255,159,254, +219,255,182,0,249,255,95,0,236,255,167,0,216,1,125,1,235,255,35,254,247,253,76,254,231,255,29,1,220,1,217,2, +217,255,171,253,106,0,167,1,20,0,154,255,83,255,99,255,109,0,141,255,123,255,138,0,225,255,42,0,181,0,198,0, +171,0,133,255,37,255,255,255,147,0,31,255,253,254,79,0,79,255,227,0,42,1,110,255,168,2,184,2,193,0,250,255, +66,254,217,255,178,255,84,254,213,254,15,0,212,0,163,253,201,254,90,1,193,255,52,1,4,1,183,255,133,0,31,0, +124,255,77,255,22,0,44,0,57,0,183,0,227,0,25,1,106,255,46,255,37,255,58,254,191,0,46,1,24,255,171,254, +20,255,43,0,67,0,179,0,26,1,144,0,111,0,51,0,104,1,240,255,100,254,231,0,12,0,146,255,16,0,202,254, +155,255,202,0,246,0,168,253,247,253,58,2,203,0,223,255,245,255,242,255,15,0,42,255,58,0,232,255,128,0,240,0, +29,0,92,0,185,255,237,0,3,0,211,254,134,255,73,255,197,0,237,255,183,0,82,1,80,254,56,0,126,0,238,254, +164,0,113,0,204,255,209,255,217,255,205,0,94,0,109,254,168,254,156,0,128,0,225,254,181,255,49,1,226,255,208,255, +121,0,56,0,61,0,33,255,116,0,33,1,166,254,233,255,38,1,206,255,59,0,22,255,207,253,61,0,116,0,7,0, +193,0,170,254,110,255,137,1,178,255,218,254,131,0,228,255,129,254,66,1,108,1,100,255,235,255,201,254,67,255,211,255, +23,255,5,1,50,2,84,1,91,255,108,254,8,255,7,0,118,0,254,255,162,0,237,255,160,255,59,1,98,0,55,255, +49,0,136,0,209,255,145,0,91,255,213,253,253,255,76,0,96,0,25,1,115,255,185,254,24,0,27,1,124,0,182,255, +69,254,113,254,114,0,115,0,222,0,18,1,218,255,73,254,8,255,155,1,8,0,123,254,131,255,122,0,34,1,121,0, +114,0,97,255,195,253,178,255,154,1,150,0,81,0,6,0,84,254,60,0,28,1,83,255,180,0,50,0,115,255,192,0, +53,0,223,255,221,253,165,253,39,2,235,2,130,0,200,254,212,254,217,0,163,0,232,255,215,255,216,255,113,0,252,254, +4,254,142,254,31,0,222,1,226,0,221,255,188,255,49,1,67,1,18,255,66,0,170,255,151,254,155,0,8,0,169,255, +22,0,89,255,3,255,195,254,70,0,110,1,81,0,149,0,137,0,76,255,176,255,228,255,103,255,10,255,247,254,206,0, +169,2,223,0,180,254,202,255,89,0,141,0,151,0,83,255,54,255,103,255,131,0,235,255,90,254,5,0,163,0,104,0, +10,0,157,255,235,255,10,0,38,255,68,253,144,255,10,1,42,0,81,1,130,0,25,1,111,1,250,255,10,0,212,255, +89,0,162,255,176,254,100,255,66,0,242,0,134,0,165,0,53,0,92,255,160,255,9,0,30,1,170,0,3,255,4,0, +86,1,91,0,217,254,84,254,147,0,79,1,85,255,172,255,96,255,205,255,59,0,97,254,249,254,136,0,115,1,48,1, +157,2,160,0,29,250,69,253,8,1,21,1,39,3,119,0,215,254,13,0,63,0,213,0,40,1,136,0,130,254,37,254, +189,254,70,255,251,0,119,1,183,255,157,254,58,0,135,0,114,0,208,1,15,0,189,253,109,255,187,1,249,0,136,0, +87,0,205,254,162,255,102,0,162,255,145,255,240,255,65,1,58,1,233,255,124,0,154,0,154,255,231,255,121,255,58,255, +46,0,232,255,95,0,79,0,144,255,31,1,249,0,240,254,21,255,171,255,48,255,215,255,126,0,193,255,91,255,115,255, +35,0,63,0,19,0,233,255,146,255,50,1,90,1,24,0,210,255,177,255,234,255,174,254,228,254,103,255,177,254,61,0, +11,1,120,1,244,0,95,0,213,0,140,255,143,0,100,0,119,255,11,1,34,0,5,0,252,254,62,254,156,0,51,0, +82,0,27,0,94,255,16,1,229,0,226,255,86,255,15,0,240,255,49,255,144,0,169,254,177,254,55,1,253,255,52,0, +129,0,127,0,210,0,76,0,37,0,5,255,199,0,123,1,135,254,168,254,166,255,45,0,202,0,158,0,153,255,49,255, +83,0,206,0,78,1,32,0,8,255,102,255,41,255,78,1,103,0,228,253,57,0,174,0,176,255,43,0,58,0,24,0, +201,255,154,0,197,0,34,255,243,255,92,1,35,0,145,0,8,1,18,255,46,255,108,255,47,255,79,0,94,255,175,255, +237,1,65,1,171,0,33,0,195,254,151,255,189,0,17,0,149,254,51,254,105,254,126,0,223,2,54,0,91,254,242,255, +250,0,59,0,249,254,57,0,119,255,55,255,128,1,11,0,169,255,103,1,32,2,245,0,41,254,153,254,219,255,139,255, +149,0,24,1,13,0,89,0,191,255,19,255,23,1,143,255,88,254,69,1,238,0,102,255,171,255,178,255,251,255,191,0, +165,255,129,254,73,0,225,0,61,0,250,255,175,255,90,0,158,0,77,0,240,255,182,0,33,0,62,254,218,255,75,255, +134,254,147,0,19,255,35,0,80,1,9,0,174,2,190,0,254,253,214,255,124,255,142,255,255,255,9,1,21,1,109,255, +107,0,57,0,110,255,109,255,123,0,31,1,29,255,252,255,187,255,27,255,251,0,90,255,92,255,31,0,92,255,239,0, +116,0,200,254,8,255,190,255,23,1,4,2,217,0,2,255,152,255,218,0,202,255,65,255,55,0,35,0,148,255,11,0, +51,0,242,255,124,0,117,255,200,254,209,255,103,255,108,0,162,1,245,0,31,0,247,254,251,255,174,0,123,255,150,255, +176,0,164,0,22,255,90,255,139,255,221,254,61,0,19,1,169,0,130,0,153,0,142,255,241,254,109,0,15,1,116,0, +224,255,35,0,59,0,174,255,30,0,254,255,78,255,68,255,185,254,114,255,101,1,170,0,69,255,156,255,85,0,57,0, +109,255,56,0,152,0,91,0,250,255,107,255,118,0,157,255,186,255,101,0,82,255,16,0,131,255,134,255,30,255,123,254, +213,0,159,0,218,255,143,0,144,1,215,0,71,255,7,1,17,0,181,254,188,0,81,0,23,0,182,0,136,255,223,255, +51,0,37,255,190,255,187,255,7,0,48,1,150,0,3,0,56,255,99,255,8,0,228,255,192,255,228,255,124,1,31,0, +156,254,211,255,145,255,253,0,134,1,182,255,156,255,66,0,131,0,133,255,166,255,196,255,203,254,129,0,228,0,98,255, +168,255,79,255,45,255,18,0,146,0,16,0,145,255,170,1,248,1,138,255,104,255,55,0,212,0,24,1,203,255,180,254, +124,255,77,255,201,254,117,0,83,0,166,255,174,0,154,0,205,255,109,0,126,1,193,255,220,254,219,255,169,255,44,0, +54,0,107,255,26,0,45,1,227,255,203,255,172,1,149,255,160,254,139,0,212,255,150,254,38,255,106,255,39,254,92,0, +143,3,114,0,124,253,255,254,30,0,88,1,139,2,213,0,11,255,137,255,9,1,129,0,174,255,33,1,139,0,76,254, +238,253,60,0,189,0,38,0,87,1,68,255,208,254,128,255,60,0,75,2,172,255,30,0,246,0,44,255,93,0,34,0, +52,0,199,255,143,255,9,0,132,255,174,255,182,254,41,0,191,0,178,254,170,255,252,1,99,2,25,255,82,254,241,0, +243,0,80,0,37,0,48,0,204,0,242,255,139,254,83,255,186,255,56,0,144,1,121,0,181,255,159,255,76,255,34,0, +141,0,210,255,88,0,178,1,218,254,243,253,115,1,67,0,50,255,54,0,184,254,8,255,210,254,59,254,26,1,69,0, +135,254,156,0,17,0,232,254,251,0,43,2,64,0,245,255,68,0,238,255,171,1,58,0,47,255,88,0,240,255,81,0, +136,255,128,0,25,1,232,254,76,255,47,0,96,0,107,0,109,0,58,0,235,255,88,255,153,255,165,0,162,255,137,0, +174,0,205,255,58,1,182,255,44,254,133,254,192,0,38,2,200,255,128,255,88,0,29,0,207,255,254,255,223,255,39,255, +181,255,32,0,80,0,101,0,6,0,102,255,139,255,38,0,127,0,230,0,78,255,31,255,15,0,224,255,197,255,65,255, +149,0,152,0,183,255,21,0,43,0,74,0,134,255,246,255,79,255,46,255,119,0,157,255,94,0,253,0,127,0,169,255, +209,255,200,0,196,255,11,0,89,0,63,0,150,255,112,255,180,0,251,255,152,0,157,255,48,254,36,0,151,255,32,255, +125,0,114,0,3,0,129,0,189,255,20,0,31,2,177,255,118,254,245,255,155,255,166,255,220,255,73,0,21,255,63,255, +26,2,237,0,119,254,6,255,179,0,146,255,85,254,40,1,77,1,179,255,71,0,20,255,38,255,192,0,99,0,14,1, +239,0,156,254,98,255,141,1,237,255,101,254,106,0,115,0,163,254,165,255,131,0,34,0,154,255,175,255,8,1,54,0, +180,255,162,0,87,255,56,255,184,255,194,255,72,0,155,255,85,0,91,0,146,255,169,0,102,0,39,0,125,255,140,254, +132,255,234,255,93,0,79,0,249,255,76,0,26,255,29,255,55,1,208,0,161,254,38,255,137,0,12,0,51,0,138,0, +158,254,94,254,141,1,233,1,40,0,117,255,93,255,37,1,26,0,82,254,153,0,223,0,171,255,50,0,29,1,210,255, +0,254,241,255,100,0,249,255,127,1,93,0,181,255,151,255,27,255,177,0,228,255,164,254,10,0,87,0,92,0,55,0, +8,255,165,255,159,0,54,0,115,0,202,0,162,0,161,255,4,255,31,0,25,0,12,0,166,0,123,0,20,0,170,255, +140,0,242,255,185,254,40,0,236,0,106,0,218,255,140,255,59,255,178,255,236,255,127,255,14,1,111,0,191,254,157,255, +124,0,248,0,172,0,15,0,15,255,225,255,63,0,60,254,67,255,104,255,15,0,91,2,159,0,216,255,41,0,29,0, +212,0,70,255,33,255,226,1,25,1,165,254,100,255,74,0,24,0,22,0,35,0,38,255,42,255,254,0,190,0,119,0, +219,255,64,255,22,0,2,255,45,255,31,0,36,0,186,0,229,0,240,255,156,254,167,255,82,0,204,0,52,1,69,255, +130,254,15,255,99,1,154,1,29,255,73,255,201,255,159,255,72,255,42,0,32,0,30,0,1,2,110,0,211,255,203,255, +56,255,222,0,116,255,255,254,57,1,18,1,6,255,234,254,228,0,226,255,183,254,153,255,16,0,115,0,232,0,206,0, +69,255,40,255,43,0,27,0,137,0,1,0,14,255,236,255,184,0,104,0,114,0,62,0,192,255,113,255,23,255,143,0, +167,0,27,255,176,255,47,0,153,0,95,0,226,255,180,254,198,253,197,1,239,0,251,252,79,0,42,1,45,0,211,1, +130,0,0,255,47,255,190,254,71,255,118,1,15,1,93,255,119,0,54,1,117,1,168,0,121,254,24,255,75,0,69,1, +221,0,148,253,184,254,29,2,24,1,17,255,174,255,223,0,133,255,254,255,62,1,39,255,17,255,114,0,234,255,114,254, +169,255,53,1,79,255,147,0,2,1,15,0,15,2,209,255,39,255,29,1,167,255,95,255,110,255,223,255,156,0,114,255, +76,0,73,1,97,255,252,254,142,0,29,1,224,255,84,255,194,255,132,254,180,255,252,0,71,0,36,1,218,254,45,254, +223,0,59,0,39,255,144,255,210,0,0,1,78,0,243,255,255,255,89,0,122,0,54,1,187,255,195,254,0,255,182,254, +18,1,129,0,15,255,186,0,103,0,100,0,189,0,174,255,123,0,142,0,128,255,120,0,255,255,203,255,148,0,54,0, +83,255,41,254,213,0,133,1,36,0,75,0,92,254,131,255,193,255,133,255,22,0,250,254,116,1,141,0,194,254,107,0, +159,0,80,0,90,0,27,1,114,255,112,254,192,255,140,0,247,255,217,254,191,0,168,1,182,1,131,0,176,254,77,0, +250,255,10,255,236,255,131,0,238,255,125,255,155,255,31,0,35,1,255,254,152,255,47,0,208,252,218,254,203,1,2,1, +140,255,28,0,229,0,133,0,189,0,145,255,225,255,136,0,176,0,123,0,220,255,22,1,232,254,61,254,168,0,209,0, +25,1,207,255,211,254,152,255,208,255,217,255,179,0,162,0,111,255,227,0,231,0,109,255,116,255,190,254,85,0,252,0, +77,254,25,255,154,0,156,255,53,0,9,1,210,0,102,255,73,254,60,0,56,0,26,255,178,255,82,0,42,2,111,1, +178,255,71,0,164,255,205,255,196,0,215,255,103,255,3,0,221,255,152,255,158,255,244,254,150,255,112,1,172,0,96,255, +242,255,89,0,93,0,185,255,165,255,204,0,177,0,103,255,123,255,65,0,233,254,25,255,50,1,29,1,82,0,29,255, +105,255,142,0,32,0,69,0,172,255,153,255,157,0,227,255,43,0,250,0,111,255,187,254,194,255,210,0,132,0,112,254, +103,255,202,1,70,1,215,255,64,255,1,0,113,255,189,255,206,0,206,255,243,255,67,255,1,0,244,0,110,254,43,0, +75,2,16,0,62,255,53,255,26,255,232,255,68,0,159,0,230,255,61,255,252,0,121,1,189,0,16,255,0,254,91,0, +122,0,133,255,2,0,119,255,15,0,193,0,107,0,76,0,115,255,123,255,96,255,147,253,62,0,105,2,99,255,49,0, +91,1,0,0,22,0,88,0,176,255,91,255,24,1,157,0,139,255,134,255,15,255,239,0,185,0,245,255,242,0,221,255, +199,254,235,255,179,0,40,255,118,255,19,1,115,1,77,0,3,255,135,255,232,254,229,255,157,1,93,0,204,254,77,255, +138,0,80,255,244,255,215,0,110,0,71,0,134,254,191,255,75,0,9,0,65,1,115,0,59,0,62,0,130,0,211,255, +132,255,81,255,138,254,92,1,101,0,224,254,91,1,84,0,143,255,125,0,60,0,105,255,80,255,70,0,157,0,80,0, +18,0,210,255,59,255,237,255,118,255,244,253,42,0,112,1,163,0,180,0,117,255,207,254,108,0,45,1,116,0,129,255, +84,255,179,0,150,0,158,255,169,255,214,254,99,255,159,0,22,1,50,0,239,254,192,0,145,0,187,255,89,0,28,255, +4,255,204,253,216,255,56,4,94,0,32,254,116,0,54,0,134,0,166,0,107,255,14,255,253,255,39,0,140,255,30,1, +144,1,95,255,11,255,92,255,176,255,105,1,148,0,193,254,90,255,213,255,28,0,52,0,189,255,165,255,9,0,205,0, +240,255,212,254,143,0,234,0,47,255,141,255,47,255,61,254,48,255,189,0,120,1,202,255,59,0,93,0,150,253,153,255, +237,1,174,1,224,0,12,255,21,0,105,0,10,255,30,0,238,0,55,0,6,0,173,255,180,255,246,0,239,255,163,255, +150,1,26,0,214,254,8,0,199,255,240,255,221,0,64,0,1,255,240,253,216,255,71,2,89,0,70,255,188,255,46,0, +89,0,13,255,160,255,171,255,62,255,247,255,235,255,120,0,169,0,66,0,52,255,28,255,252,0,80,1,109,255,117,254, +48,0,138,0,54,0,41,0,25,255,44,0,217,255,39,255,241,0,181,0,18,0,236,255,12,255,86,255,29,0,100,0, +41,0,22,255,141,255,209,0,98,0,112,0,53,0,32,255,182,255,242,0,51,0,139,255,172,0,72,0,193,255,43,0, +133,0,84,0,75,254,233,254,98,1,249,0,197,255,6,0,253,255,206,254,201,255,233,255,111,254,197,0,109,2,5,0, +52,254,207,255,233,0,174,255,224,0,9,1,162,255,222,0,65,255,102,254,181,0,84,0,198,0,223,255,1,254,40,255, +252,254,184,255,241,0,203,0,71,1,209,0,238,255,73,255,46,255,1,0,251,0,43,255,187,253,101,0,223,255,236,255, +104,2,236,255,227,254,78,0,192,255,178,255,6,0,209,255,111,255,67,0,192,0,156,255,26,0,244,0,67,0,148,255, +50,0,129,0,137,254,19,0,100,2,162,255,253,254,121,255,69,255,91,0,130,0,206,0,146,255,142,254,157,255,220,255, +247,255,190,255,27,0,237,0,144,0,184,255,49,0,251,0,38,255,0,255,66,0,80,255,144,0,32,1,50,255,96,255, +42,255,254,255,22,1,137,255,88,0,88,0,196,255,159,0,58,255,95,255,226,255,74,0,149,0,242,255,157,0,41,255, +17,0,125,1,117,255,53,0,211,255,218,254,20,0,111,0,128,0,80,0,200,255,152,255,66,0,117,255,175,254,31,0, +161,0,116,1,201,1,58,0,186,255,206,255,173,255,82,255,53,255,208,255,236,255,69,0,33,0,99,255,83,0,132,0, +204,255,102,0,158,0,165,255,131,255,162,0,210,255,37,255,246,255,110,255,66,255,26,255,212,255,131,1,119,0,66,255, +187,255,254,255,227,255,178,255,236,255,216,0,70,1,129,0,108,255,147,255,137,255,253,254,99,0,143,0,45,0,59,0, +136,255,204,255,202,253,219,254,67,2,16,0,6,255,215,0,240,1,165,0,56,255,1,0,207,255,71,254,18,254,254,0, +239,0,156,255,83,0,176,255,39,1,97,0,237,254,31,0,92,255,194,255,230,0,137,0,87,255,83,0,164,0,25,255, +234,0,173,0,121,255,178,255,193,254,176,255,204,0,77,0,100,255,35,0,152,1,163,0,238,254,234,254,49,0,38,1, +171,0,79,255,17,0,109,0,163,255,217,255,254,254,86,0,15,1,105,255,4,0,19,0,118,255,12,255,210,255,23,1, +85,0,200,255,134,0,90,1,97,255,123,254,189,0,99,0,50,255,70,255,255,0,117,1,173,254,65,255,230,0,22,0, +135,255,233,255,247,0,144,255,222,254,78,0,192,255,74,255,203,254,119,255,135,0,7,0,73,1,21,1,119,0,14,1, +193,255,163,255,176,255,249,254,87,0,199,1,131,0,238,254,38,255,37,255,26,0,61,1,100,0,127,0,172,0,184,255, +232,255,206,255,162,254,245,254,170,0,27,1,148,255,247,254,254,255,94,0,194,255,90,255,43,1,86,1,113,254,235,254, +218,0,23,1,149,0,190,255,178,255,232,255,104,0,238,255,207,255,4,1,179,255,37,255,219,0,199,0,123,255,220,254, +13,0,156,0,99,0,27,0,199,254,149,0,212,0,243,254,249,0,189,255,255,253,180,255,132,0,165,1,52,1,19,0, +255,255,247,255,206,255,189,255,35,0,251,255,151,0,79,0,101,255,68,0,24,1,94,0,255,254,116,255,140,255,236,255, +13,0,205,254,234,255,188,0,219,0,232,255,50,255,105,0,136,0,32,0,60,255,229,0,184,1,88,255,201,254,41,0, +126,1,32,254,163,253,213,1,234,1,71,1,69,1,23,1,44,0,21,0,195,255,187,254,42,0,191,255,203,255,254,0, +180,0,160,255,0,254,50,255,133,0,242,255,197,254,204,254,77,0,101,1,168,0,119,254,51,0,158,0,115,254,0,255, +55,255,94,0,145,0,121,255,185,255,134,1,30,2,57,254,24,253,5,255,190,255,231,0,172,1,177,255,55,254,231,0, +86,0,56,255,7,1,10,0,143,0,250,0,75,0,215,0,205,255,71,0,221,255,100,254,48,0,174,255,252,255,252,1, +27,254,82,253,162,0,178,0,202,0,184,255,215,255,25,1,48,0,219,255,248,254,151,255,76,0,50,255,190,255,176,255, +74,0,34,1,11,0,71,0,125,0,231,255,85,0,227,255,138,254,184,255,100,1,196,0,61,0,242,254,195,254,14,1, +135,0,154,255,157,0,195,0,168,255,128,254,236,255,10,0,108,253,234,253,25,1,101,3,226,1,96,255,114,255,248,255, +127,0,59,255,51,255,243,0,142,254,140,255,20,3,177,0,254,254,17,255,233,255,53,1,196,255,239,255,152,0,190,255, +117,255,142,255,250,255,84,255,179,255,189,0,225,0,189,0,20,0,80,0,216,255,166,255,96,255,184,254,162,0,42,1, +139,0,114,0,198,255,126,255,84,255,48,0,144,0,49,0,204,0,70,0,230,254,59,255,71,0,69,0,50,255,115,255, +148,1,239,0,148,255,11,0,85,0,158,0,96,255,83,255,197,255,45,255,149,0,158,1,234,0,212,254,73,255,189,0, +149,255,26,0,202,255,208,254,255,255,43,1,185,0,83,255,197,255,105,0,86,0,14,0,235,255,224,0,223,0,217,254, +134,254,65,1,77,1,159,0,225,0,50,255,232,254,23,255,216,255,189,0,39,0,147,0,230,0,146,0,222,255,115,255, +213,255,23,0,112,255,66,255,170,0,182,0,19,0,110,255,92,255,189,255,93,254,184,254,225,0,222,1,59,1,173,0, +175,0,157,255,184,255,116,0,207,255,62,255,96,0,93,0,146,254,151,255,157,255,215,254,202,0,215,0,215,255,25,0, +251,255,27,0,39,0,221,254,27,0,200,1,161,255,53,255,100,255,96,255,196,0,50,0,228,255,206,255,187,255,142,0, +179,0,15,0,250,254,157,0,63,1,65,254,15,254,187,255,122,0,65,1,230,0,165,255,47,0,103,0,19,255,233,255, +178,0,11,0,52,255,122,254,143,255,95,0,164,0,233,0,17,0,177,255,125,0,183,0,197,255,250,255,96,255,200,254, +255,0,132,0,194,254,127,0,10,2,58,0,223,254,91,255,7,255,238,255,120,0,27,0,132,0,30,0,123,255,10,255, +69,0,126,0,124,255,150,255,236,255,26,1,185,255,224,255,73,1,3,255,61,255,168,255,147,255,81,1,64,1,164,255, +0,255,218,255,72,255,89,255,194,0,241,0,151,0,152,255,12,0,0,1,206,0,86,0,104,254,7,253,108,255,131,1, +24,0,179,0,191,1,146,255,39,255,127,0,17,0,191,255,105,0,241,254,162,254,215,0,110,0,202,254,134,254,107,255, +61,0,102,0,149,0,66,1,32,1,33,255,55,255,188,0,35,0,110,254,48,255,88,1,170,255,87,255,166,0,72,255, +59,0,193,0,107,255,91,0,36,1,225,0,162,255,157,254,64,0,88,0,94,255,72,0,149,255,248,254,187,255,203,0, +35,1,12,0,203,0,19,0,113,254,228,255,74,0,201,255,164,255,73,255,119,255,224,255,242,255,189,255,81,0,54,1, +222,0,178,255,100,255,87,255,152,255,218,0,10,1,193,255,37,255,124,255,244,255,41,1,71,255,197,253,5,1,236,255, +32,255,119,1,101,0,4,0,160,255,187,255,167,0,64,0,93,0,37,0,37,0,42,255,101,254,14,0,104,1,56,0, +226,254,195,0,115,0,43,255,16,0,166,255,117,0,231,255,24,255,179,0,221,255,104,255,83,0,157,0,77,0,244,255, +99,0,92,255,116,254,55,255,233,0,115,1,50,0,70,0,15,0,89,0,246,255,189,254,243,0,140,0,27,255,16,0, +24,0,170,0,136,255,60,255,218,0,224,255,192,255,53,1,154,0,155,254,51,254,127,255,217,0,196,0,170,255,181,255, +195,0,43,1,157,255,64,255,135,0,0,0,91,255,108,0,63,1,183,255,108,255,13,0,128,255,40,0,7,0,203,0, +3,1,46,255,137,255,110,255,192,255,184,0,153,255,107,255,13,0,173,255,59,0,7,1,194,255,98,255,116,0,137,0, +140,255,12,255,36,0,159,0,174,0,63,0,20,0,120,0,49,255,195,255,184,0,27,0,97,0,144,255,9,255,125,255, +156,254,36,255,113,1,22,1,198,255,150,0,24,1,9,0,75,255,212,255,22,0,118,0,90,0,188,255,87,0,133,255, +228,254,83,0,206,0,2,0,164,255,144,0,73,0,31,255,154,255,205,255,125,255,41,0,25,0,141,0,253,0,125,254, +43,255,191,1,141,0,143,255,77,255,24,255,144,255,16,1,157,1,186,255,88,255,90,0,66,0,128,255,63,0,185,0, +231,255,9,0,139,255,247,255,100,0,104,255,13,0,196,0,112,0,201,255,223,255,7,0,82,255,169,255,44,0,210,255, +37,0,231,255,92,255,181,0,244,255,24,255,103,0,162,0,134,1,66,255,194,253,226,0,212,0,162,255,60,255,148,255, +49,0,150,0,62,1,100,255,55,255,253,255,131,255,12,0,163,255,118,0,105,0,125,254,4,0,206,0,74,255,251,255, +178,0,128,0,144,0,254,255,249,255,176,0,119,0,206,255,40,0,6,0,147,255,79,255,249,254,117,0,217,255,198,254, +130,0,66,0,88,255,244,255,42,1,33,0,150,255,32,1,151,255,16,255,94,255,214,255,104,1,164,0,68,0,188,255, +220,255,140,0,173,255,138,255,195,255,214,255,154,255,53,0,221,255,243,255,127,1,66,255,206,254,13,1,51,0,107,255, +149,0,251,0,245,255,104,255,141,255,34,0,181,255,242,255,183,0,233,254,118,255,65,1,67,0,175,255,99,0,252,255, +69,255,244,255,208,255,97,0,101,0,55,255,37,0,106,0,129,0,24,0,197,255,32,0,91,255,106,0,119,0,75,255, +141,255,32,0,128,0,165,255,5,0,76,0,72,255,140,255,50,0,111,0,60,0,156,0,32,0,65,255,150,0,182,0, +226,255,24,0,124,255,106,255,53,0,102,0,121,0,8,0,2,0,111,0,2,0,206,255,145,255,36,255,50,255,246,255, +81,0,42,255,250,254,34,0,144,0,252,255,47,0,136,0,206,255,1,1,212,1,122,255,222,254,129,0,177,255,40,255, +59,0,68,255,210,255,171,0,43,0,131,0,152,255,207,255,55,0,96,0,59,0,191,254,229,255,72,0,10,0,239,255, +201,255,50,1,210,255,34,0,219,0,43,255,252,255,212,255,22,0,134,0,108,255,217,255,244,255,211,0,196,0,249,253, +236,253,3,0,195,0,62,1,255,0,50,0,131,0,50,0,58,255,52,255,217,255,88,0,61,0,43,0,39,0,20,0, +181,255,245,255,133,0,25,0,41,0,225,255,177,255,101,0,117,0,71,0,53,0,66,0,4,255,169,254,129,0,187,0, +183,255,23,255,213,255,70,0,75,0,228,0,212,255,132,255,90,255,88,255,87,0,205,255,118,0,198,0,203,255,251,254, +225,254,96,1,158,1,184,255,145,255,208,255,153,255,12,0,33,1,11,0,62,255,92,255,121,255,38,1,192,0,182,255, +101,0,43,0,115,255,218,255,63,0,191,255,48,0,103,0,17,0,196,255,56,255,76,255,200,255,168,0,254,255,8,0, +135,0,76,255,203,0,5,1,52,255,187,255,93,0,22,1,18,1,50,255,210,254,43,1,92,0,141,254,105,0,126,0, +242,255,211,255,87,255,205,255,24,0,118,0,135,255,59,0,169,0,182,254,253,255,126,0,242,255,228,255,119,254,183,255, +110,1,71,1,106,0,210,255,214,0,72,0,84,255,124,255,7,0,137,1,237,255,216,254,33,0,115,255,152,0,176,0, +163,255,5,1,118,0,98,255,65,255,159,255,228,255,209,255,19,0,250,255,135,0,179,255,188,255,234,0,45,0,137,0, +24,0,163,255,24,0,113,255,215,255,66,0,250,255,79,0,41,1,165,255,243,253,96,0,231,1,65,1,9,1,120,255, +49,254,157,255,219,255,116,255,149,0,243,255,195,255,119,0,182,0,171,0,128,255,34,0,45,0,75,255,71,0,82,0, +156,255,112,255,145,255,168,255,184,0,197,0,34,254,218,254,20,1,71,255,147,254,168,255,251,255,14,2,187,1,216,254, +87,255,21,1,155,1,20,0,191,254,166,255,170,0,143,0,46,255,132,255,48,0,114,0,239,0,129,255,138,255,69,0, +41,0,4,0,91,255,102,255,137,255,26,0,21,0,73,0,196,0,196,254,97,254,180,0,173,0,14,255,240,255,26,0, +110,255,56,1,89,1,3,0,114,255,36,0,117,0,179,254,136,255,91,1,193,0,244,255,174,255,46,255,166,255,38,1, +237,255,179,254,21,255,153,254,71,0,251,1,210,0,118,255,136,255,241,0,124,0,244,254,4,0,125,0,130,255,148,255, +155,255,209,255,46,0,126,0,166,0,90,255,239,254,149,255,98,255,221,255,187,0,90,0,153,255,57,0,54,1,158,0, +100,0,174,0,244,255,2,0,146,255,61,255,31,0,234,255,253,0,109,0,50,254,42,255,189,255,13,0,44,0,73,0, +68,0,184,254,101,0,68,1,230,255,21,0,16,255,237,254,185,255,100,0,72,1,42,0,172,255,187,0,164,0,145,255, +29,255,106,0,191,0,179,255,121,0,59,0,165,255,135,0,203,255,120,255,184,255,83,255,114,254,33,254,204,255,246,0, +184,0,127,255,142,0,164,0,6,255,64,1,241,255,8,254,215,253,239,252,251,255,174,255,67,255,167,1,120,1,245,1, +169,1,87,0,253,254,44,255,246,255,76,0,231,0,189,254,217,255,97,2,238,0,224,255,47,255,20,0,50,1,67,0, +71,255,50,255,127,255,6,0,35,0,194,254,96,255,98,255,86,254,39,0,139,255,158,254,178,255,210,255,48,1,107,2, +130,1,116,0,56,0,250,255,11,0,124,0,86,0,173,255,194,0,225,1,6,255,78,254,140,0,109,0,35,0,40,0, +98,0,60,255,67,254,167,0,224,0,70,255,142,255,225,255,43,0,111,1,107,1,101,255,69,255,93,255,211,254,106,0, +192,0,94,0,174,0,60,0,95,0,83,0,111,0,66,0,38,255,114,255,4,0,223,255,124,255,224,255,223,0,69,0, +40,255,26,255,159,255,115,0,154,1,8,0,139,254,7,1,98,0,195,254,230,255,17,0,126,0,26,0,215,255,119,0, +133,0,242,255,86,255,101,0,29,0,101,0,235,0,99,255,233,255,72,255,232,254,145,0,250,255,39,255,159,255,221,0, +166,0,224,255,105,0,253,255,98,0,206,0,130,254,34,254,13,1,100,1,90,0,59,0,37,255,33,0,100,0,26,255, +247,0,181,1,69,0,221,254,31,255,139,0,50,0,232,255,143,254,196,254,73,1,98,0,126,255,217,255,223,255,1,0, +108,0,216,0,78,255,135,255,27,1,175,0,121,255,170,254,136,0,84,1,58,255,98,255,109,0,134,255,28,0,254,0, +181,255,235,255,211,255,206,254,43,255,123,0,9,1,187,254,191,254,222,0,136,1,122,0,154,254,11,0,91,0,233,255, +50,0,43,255,152,0,95,0,18,255,244,255,142,0,143,0,241,255,127,255,14,255,9,1,130,2,71,0,73,255,166,255, +122,0,225,0,241,255,168,255,9,0,8,255,178,254,218,0,177,0,86,255,167,255,116,0,179,0,185,255,38,0,94,0, +116,255,93,255,99,255,136,0,172,1,42,0,48,254,204,255,206,1,160,0,51,255,113,255,192,255,14,255,92,0,200,0, +14,255,127,0,93,1,31,255,54,254,40,1,44,2,113,255,25,0,140,0,209,255,131,0,208,255,248,255,165,255,153,254, +165,255,62,0,215,255,52,0,201,0,180,255,67,255,77,0,152,255,146,255,201,0,78,0,113,255,123,255,198,0,204,0, +12,255,242,255,248,0,244,255,39,0,173,0,83,0,116,0,95,0,58,255,71,255,171,255,178,255,146,0,118,0,227,255, +78,255,99,0,34,1,127,255,87,0,17,0,104,255,132,0,79,0,21,1,199,255,191,254,34,0,176,255,92,255,163,255, +62,0,80,0,57,0,19,0,113,255,227,255,94,0,223,0,51,0,55,255,73,255,170,255,245,255,197,255,160,0,227,255, +24,0,127,1,27,0,224,255,140,254,93,254,43,1,40,1,99,0,49,0,255,255,94,255,156,255,226,0,159,255,238,253, +189,254,95,0,148,0,207,0,162,1,14,1,18,0,1,0,19,0,180,255,148,255,8,0,170,0,141,255,242,254,220,0, +207,0,240,255,229,255,139,255,71,255,47,255,239,255,216,255,150,255,91,0,9,1,122,0,40,255,153,255,211,255,6,0, +155,0,215,255,217,255,62,0,133,0,43,0,36,255,182,255,145,0,92,0,202,255,95,255,234,255,251,0,124,0,93,255, +90,255,80,255,85,0,9,1,254,254,133,254,224,255,3,0,148,0,64,1,130,0,35,255,65,255,190,0,110,0,86,255, +143,255,117,0,119,0,218,255,52,0,240,255,235,255,77,0,171,255,233,255,214,255,130,255,169,0,159,0,217,254,21,255, +227,0,192,0,124,255,233,255,59,1,238,255,36,255,227,255,185,254,188,255,129,1,128,0,179,255,94,0,174,0,20,255, +28,255,119,0,23,0,105,255,204,255,154,0,254,255,254,255,12,0,41,255,247,255,116,0,239,255,222,255,143,0,94,0, +23,255,118,255,248,255,99,0,27,1,164,0,34,0,226,255,140,255,162,255,63,0,92,0,210,255,233,254,23,255,16,1, +37,1,6,0,101,255,120,255,88,0,141,255,61,0,203,0,203,254,117,255,55,0,181,255,87,0,94,0,105,255,55,0, +241,1,55,0,72,255,132,0,55,0,42,0,223,255,25,0,20,0,35,255,189,255,27,255,4,255,104,1,69,1,98,255, +153,255,123,0,241,255,14,0,206,0,159,255,140,255,143,0,76,0,221,0,76,255,85,254,176,0,217,255,150,255,4,1, +62,0,238,255,15,0,212,255,179,255,86,0,13,0,83,255,83,0,203,0,118,0,134,255,57,255,51,0,105,0,81,0, +190,0,25,0,2,255,129,0,99,0,248,254,183,255,105,255,56,0,0,1,18,0,197,255,166,255,34,0,167,255,223,255, +23,1,178,0,209,255,244,254,12,0,32,1,218,255,204,255,78,0,160,255,237,255,84,0,94,255,223,255,0,1,61,0, +154,255,8,0,65,0,176,255,204,255,90,0,131,255,55,255,227,255,182,255,235,255,197,0,146,0,13,0,89,0,102,0, +32,0,204,255,34,255,102,255,62,0,66,0,81,0,211,0,23,0,37,255,14,0,138,0,24,0,116,255,139,255,161,0, +225,255,34,255,179,255,110,0,98,0,143,255,4,0,37,0,100,0,99,0,3,0,159,255,99,253,28,255,112,2,10,1, +56,255,151,255,100,0,194,255,193,255,158,0,205,0,136,0,222,255,2,0,55,0,158,255,41,255,155,255,148,255,107,255, +5,0,148,0,111,0,241,254,145,0,217,1,130,255,190,255,184,255,66,255,101,0,188,0,98,0,74,255,19,255,251,255, +147,0,15,0,231,254,138,255,21,1,97,0,157,255,189,255,34,255,5,0,179,0,145,0,199,255,255,254,246,255,162,255, +147,0,194,0,181,254,198,255,15,1,163,0,17,0,203,255,2,255,199,255,194,0,68,255,101,255,20,0,164,0,84,0, +36,255,106,255,229,255,193,0,153,0,116,0,30,1,171,0,190,254,28,254,180,255,74,0,248,0,111,0,106,0,141,0, +140,255,146,0,155,255,174,255,186,255,43,255,6,1,235,255,245,255,116,0,186,255,236,255,97,255,180,255,27,0,111,0, +45,0,253,255,47,255,28,255,189,0,102,255,194,255,204,0,164,255,222,255,136,255,239,255,251,0,57,0,155,255,69,0, +182,255,66,255,69,0,215,254,211,254,192,0,47,0,172,0,165,0,180,254,30,255,44,0,15,0,246,255,169,0,245,0, +248,255,75,0,27,0,135,255,100,0,66,0,250,255,141,255,242,255,162,0,141,255,251,254,237,255,229,0,186,255,138,255, +126,0,87,0,15,0,91,255,143,0,197,0,46,255,71,255,6,0,113,0,244,255,173,255,63,255,208,255,125,0,36,0, +124,255,51,254,122,0,97,1,0,0,35,1,135,0,134,255,184,254,160,254,161,0,52,1,17,0,241,255,124,1,75,1, +14,255,30,255,24,1,111,0,247,254,194,254,176,255,184,1,186,0,224,255,209,0,220,0,122,0,15,255,236,254,166,255, +44,0,1,0,22,0,153,0,138,255,65,0,122,0,131,255,115,255,150,255,146,0,67,0,208,255,58,255,121,255,125,0, +67,255,215,255,245,0,254,255,61,0,132,0,173,255,15,0,180,255,19,255,53,0,223,255,235,255,39,0,222,255,132,0, +189,255,233,255,164,0,13,0,98,255,50,0,87,1,198,255,80,255,204,255,147,255,243,255,189,255,4,0,70,0,223,255, +119,255,198,255,138,0,123,0,71,0,239,255,41,0,195,0,73,0,103,255,168,255,46,0,169,255,9,0,59,0,209,255, +190,255,169,255,7,1,83,0,174,254,139,0,42,1,43,0,6,0,162,255,166,255,20,0,246,255,254,255,86,0,27,255, +123,255,50,1,190,255,95,255,16,0,231,255,185,255,29,255,135,0,177,0,5,255,145,255,243,0,136,0,116,255,42,0, +50,0,77,0,60,0,112,255,15,0,116,255,228,255,10,1,175,0,174,255,226,254,134,0,243,255,114,254,229,255,84,1, +58,1,133,255,132,255,181,0,49,0,106,255,229,255,145,255,53,255,180,0,93,0,114,0,87,0,21,255,149,0,183,0, +229,255,242,255,148,255,137,255,212,255,82,0,24,0,214,255,37,255,183,255,61,0,154,254,238,255,229,0,179,255,185,0, +33,1,14,0,146,255,104,255,123,0,100,1,172,255,97,255,121,0,213,255,140,255,90,255,170,255,119,0,74,0,12,0, +51,0,162,0,251,255,149,255,124,0,218,255,74,255,71,0,48,0,194,255,151,255,146,255,193,0,128,0,125,255,194,255, +248,255,0,0,184,255,40,0,40,0,183,255,26,0,189,255,226,255,129,0,120,0,79,255,170,255,210,1,253,0,132,255, +136,254,236,254,141,0,220,255,249,255,100,0,176,255,16,0,39,1,44,0,111,254,36,0,132,1,227,0,73,255,129,254, +33,0,28,0,242,255,183,0,86,0,225,255,76,0,9,0,153,254,32,255,90,0,190,0,46,0,82,255,227,255,69,0, +27,0,198,255,19,0,6,0,192,255,134,0,182,0,209,0,239,255,16,255,154,255,103,0,206,0,178,255,41,255,199,255, +41,0,84,0,198,0,250,255,2,255,78,0,42,0,213,255,42,0,160,255,201,255,178,255,24,0,201,0,49,0,105,254, +231,254,200,0,6,0,40,0,181,0,137,0,55,0,119,255,89,255,14,255,35,0,243,0,107,0,220,255,143,255,158,0, +173,0,213,255,4,255,192,254,43,255,114,255,228,0,175,0,170,255,142,0,60,0,187,255,176,0,136,0,101,255,118,255, +31,0,116,0,99,0,33,0,184,255,94,255,213,255,22,0,112,0,62,0,107,255,177,255,175,255,254,255,37,0,100,255, +123,255,70,0,200,0,32,0,255,255,248,255,2,0,61,0,44,255,206,255,66,255,32,254,67,0,120,0,152,255,214,255, +117,0,252,0,133,255,65,255,239,0,93,0,57,255,52,0,120,0,72,0,137,0,139,0,93,1,125,0,119,255,200,255, +97,255,40,0,61,0,207,255,222,0,105,0,12,255,102,255,63,0,179,255,143,255,43,0,165,0,6,1,44,0,72,255, +173,254,52,255,45,0,18,0,199,0,163,255,190,254,161,0,225,0,119,0,71,0,217,255,193,255,226,255,69,0,209,0, +184,0,28,255,63,255,108,0,40,0,116,0,251,255,43,255,102,0,223,0,226,255,14,0,169,255,252,254,205,255,128,0, +169,0,94,0,77,0,54,255,91,254,98,255,41,0,153,0,99,255,248,254,205,255,130,255,163,0,148,1,20,0,104,255, +209,0,165,255,22,255,8,1,113,0,36,0,30,0,114,0,119,0,29,255,168,255,217,255,165,255,27,0,184,0,108,0, +65,255,209,255,54,0,151,254,180,254,197,1,217,1,234,0,43,1,253,255,142,255,5,255,99,255,152,255,20,0,67,1, +191,255,49,255,254,254,185,255,234,0,52,0,185,0,157,0,223,255,183,255,102,0,12,0,136,254,11,255,187,254,196,255, +150,1,116,0,227,0,23,1,182,255,145,0,245,255,167,254,220,0,246,0,63,255,114,255,2,0,12,1,69,0,46,255, +60,0,183,0,12,0,118,255,51,0,245,255,25,255,49,0,192,255,2,255,211,0,160,0,191,254,175,255,57,1,233,0, +210,255,253,255,122,0,42,255,148,255,129,1,107,1,203,255,68,255,250,255,62,255,217,255,128,0,74,255,191,255,43,0, +40,0,220,255,48,0,226,0,146,255,23,255,30,0,98,0,151,255,222,255,248,255,6,0,235,0,12,0,99,0,54,0, +202,255,163,0,47,255,177,255,100,0,166,255,15,0,102,255,31,0,144,0,1,255,74,0,244,0,80,255,46,0,217,0, +75,0,2,0,243,255,189,0,190,255,65,254,26,255,211,0,149,0,166,255,116,0,80,0,27,0,164,0,187,255,12,255, +166,255,101,255,139,255,97,0,117,0,103,1,121,0,164,255,56,0,146,255,11,0,207,255,218,255,52,0,146,255,248,255, +118,0,87,0,199,255,41,0,154,0,201,0,239,255,227,254,67,255,201,255,173,0,64,255,79,255,236,0,231,255,182,255, +118,0,204,0,56,255,151,255,61,1,95,0,249,254,87,254,33,0,96,0,218,0,199,0,52,255,111,0,124,255,15,255, +171,255,177,255,114,0,224,255,0,0,113,255,159,255,147,0,60,0,32,0,253,255,130,255,195,254,75,0,125,0,179,255, +77,1,6,0,141,255,24,1,196,0,192,0,81,0,130,255,76,255,203,255,11,0,208,255,73,0,190,255,124,255,251,255, +6,0,10,0,105,255,104,255,181,255,10,0,255,255,157,255,124,255,183,254,124,255,155,0,247,0,15,0,119,255,167,1, +210,0,110,255,59,0,251,255,152,0,219,0,90,0,214,255,56,255,234,255,11,0,35,255,246,255,86,0,181,255,50,0, +174,255,85,255,38,0,151,0,243,255,177,255,124,0,182,255,17,0,173,0,168,255,193,255,174,255,92,255,94,255,148,255, +5,0,207,0,206,0,103,255,111,254,145,254,104,0,226,1,25,1,66,255,46,255,175,255,122,255,3,1,245,255,219,254, +94,0,117,255,191,255,187,0,63,0,70,0,1,0,1,0,33,0,252,255,238,255,42,0,140,0,195,255,191,254,65,255, +76,0,102,1,68,1,153,255,189,255,64,0,88,255,158,254,8,255,205,0,213,0,225,255,120,0,98,0,119,255,237,254, +115,255,89,0,206,0,4,1,158,255,195,254,226,255,122,0,190,0,50,0,117,255,216,255,198,255,22,0,165,0,151,0, +125,0,4,0,230,255,15,255,6,255,224,0,133,0,161,255,253,255,20,0,229,255,61,0,178,0,197,255,249,255,196,255, +60,255,171,0,250,255,171,254,205,254,160,255,85,0,230,255,0,255,234,255,149,2,125,1,235,255,249,255,86,255,69,0, +134,0,5,0,208,255,162,255,75,255,237,255,33,0,203,254,84,0,218,0,238,255,83,0,96,0,186,255,94,255,59,1, +178,0,87,255,115,255,163,255,35,1,15,0,241,254,70,0,129,0,208,255,216,255,236,255,20,0,163,255,49,255,104,1, +232,0,253,254,108,255,184,255,240,255,135,255,129,0,220,0,13,0,212,254,226,253,93,0,107,1,27,1,163,0,29,255, +207,255,131,0,41,255,182,254,116,255,103,0,86,1,127,0,247,255,148,255,78,255,109,0,36,0,225,255,86,0,195,0, +150,255,206,254,231,255,60,0,104,0,73,255,72,0,149,1,95,0,212,255,174,255,90,0,90,255,181,255,99,0,101,255, +12,0,251,254,214,254,245,255,158,0,189,0,143,255,226,255,81,0,36,0,167,255,140,255,36,0,123,0,63,0,159,255, +252,0,138,1,67,255,155,254,248,0,106,1,195,254,238,254,195,0,113,0,232,255,182,255,208,255,246,255,41,0,104,0, +166,254,159,254,66,1,15,1,96,255,23,255,238,255,41,0,176,0,86,1,161,255,102,254,108,255,246,0,88,0,65,0, +28,1,143,0,12,1,51,255,180,254,241,0,150,255,192,255,59,0,23,255,25,0,59,0,2,0,40,0,181,255,82,0, +172,255,146,255,10,1,72,0,128,255,108,255,243,255,207,255,56,255,22,0,68,255,157,255,14,1,52,0,57,0,137,0, +242,254,69,255,240,0,170,255,17,0,56,0,62,255,32,1,74,0,115,255,114,0,227,255,23,0,181,0,60,0,213,255, +141,0,87,0,19,0,62,0,103,255,56,255,243,255,14,0,194,254,178,255,231,1,230,0,192,255,4,0,60,0,63,0, +128,255,112,255,146,0,16,0,71,255,164,255,194,255,140,255,239,254,237,255,63,0,171,255,36,2,145,2,233,255,98,255, +89,0,23,0,109,255,218,255,194,255,182,255,111,0,22,0,36,255,106,255,219,0,169,0,225,255,30,0,106,255,85,0, +236,0,130,255,197,255,246,254,22,255,8,1,26,1,139,0,119,255,49,0,123,0,47,255,182,0,64,0,128,254,233,255, +51,0,128,255,107,0,1,1,136,0,194,255,1,255,35,0,195,0,9,255,255,255,76,1,244,255,80,255,71,255,209,255, +224,255,162,255,28,0,240,255,96,0,250,0,34,0,111,255,109,0,91,0,118,255,143,255,76,255,91,0,73,0,183,255, +141,0,250,255,42,0,66,0,225,255,48,0,254,255,83,255,215,255,27,1,251,255,132,255,241,255,180,255,116,255,183,254, +75,255,39,1,141,2,120,0,60,255,151,0,105,255,47,255,103,0,221,0,50,255,243,253,122,0,240,0,73,0,182,0, +138,255,229,255,254,0,187,255,18,255,3,0,249,255,96,255,47,0,29,0,144,255,224,0,190,0,3,0,17,0,3,0, +254,255,168,255,55,0,34,0,235,255,160,255,59,255,40,0,84,0,50,0,254,255,65,0,30,0,162,255,249,255,255,255, +244,255,34,255,170,255,162,0,243,0,113,0,38,255,158,255,88,255,41,0,207,0,77,0,132,0,91,255,199,255,160,0, +43,0,48,255,233,255,27,1,47,255,179,254,60,0,23,1,30,0,194,255,161,0,132,0,93,0,109,255,92,255,80,255, +186,255,231,0,108,255,41,255,30,0,125,255,3,0,30,1,78,0,23,0,136,0,243,255,110,0,166,0,86,255,55,255, +133,0,24,0,182,255,166,0,38,0,202,255,181,255,41,255,186,255,157,0,52,0,8,0,193,255,35,255,63,0,121,0, +221,255,206,255,109,0,28,0,222,254,190,255,12,0,5,1,153,1,191,255,252,254,225,255,32,1,240,255,103,255,90,0, +164,0,200,255,146,254,241,255,146,0,6,1,222,0,194,255,227,255,27,0,240,0,171,254,127,254,231,0,192,255,81,0, +58,0,44,0,64,1,106,255,240,254,255,255,194,0,124,0,208,255,41,0,236,255,20,0,193,255,165,255,209,0,32,1, +170,0,0,0,195,0,194,255,183,254,124,0,210,255,43,255,151,254,243,255,98,2,190,255,81,255,55,0,97,255,40,0, +132,0,70,0,230,255,0,0,42,0,98,0,92,0,163,255,188,255,237,255,237,255,74,0,118,0,225,255,136,255,108,255, +196,255,111,0,123,0,37,0,12,255,4,0,205,0,95,255,43,255,94,255,47,0,231,255,172,255,240,0,50,0,97,255, +203,255,175,0,63,0,161,255,70,1,150,0,241,254,155,255,55,0,228,0,105,0,208,255,78,0,159,255,186,255,113,255, +34,255,163,1,185,1,48,255,81,255,225,0,64,0,95,255,226,255,215,255,224,255,77,0,137,0,36,0,212,255,181,255, +70,255,186,255,7,0,125,0,45,0,22,255,179,255,9,0,29,0,92,0,113,0,18,0,253,255,90,0,47,255,82,0, +125,0,234,253,70,255,151,0,127,0,144,0,92,0,33,0,79,255,88,0,46,0,67,255,128,0,199,0,178,255,240,254, +157,0,109,1,148,255,180,254,39,0,61,1,9,0,184,255,60,255,72,255,59,0,30,0,130,0,128,0,9,1,27,0, +209,254,207,255,102,0,154,0,5,255,165,254,51,0,11,0,146,255,201,255,74,0,43,0,7,0,48,0,111,0,20,255, +237,253,240,0,168,1,46,255,140,0,145,0,140,254,62,1,244,1,70,255,133,254,104,255,85,0,26,255,144,255,46,0, +182,255,194,255,234,255,82,1,236,255,209,255,127,0,198,255,77,0,110,255,112,0,32,0,71,255,217,0,78,0,58,255, +170,255,146,0,160,255,52,0,172,0,189,255,67,0,15,255,37,255,158,0,253,255,63,255,143,0,124,0,194,255,166,0, +196,254,137,255,48,1,128,255,177,255,5,0,164,0,231,0,174,255,215,254,112,255,113,0,74,0,93,0,58,255,21,255, +250,0,155,0,155,255,49,0,205,0,144,255,225,254,100,0,94,0,45,0,238,255,208,254,223,0,92,1,5,255,245,254, +12,0,59,0,134,255,14,1,80,1,128,255,177,255,208,255,80,0,136,255,89,255,15,0,158,254,45,0,214,1,43,255, +194,253,237,255,173,0,195,255,123,0,208,0,103,0,50,0,206,255,121,255,21,0,217,0,3,0,176,255,226,255,20,255, +77,0,186,1,171,255,71,255,248,0,57,0,55,255,97,255,212,255,194,0,90,0,170,254,103,255,157,0,106,0,26,0, +167,255,202,0,45,1,192,255,129,255,97,0,23,0,25,255,173,255,85,0,51,0,137,255,65,0,233,0,208,255,9,255, +87,255,2,1,78,255,36,255,221,1,226,255,83,254,214,255,114,1,254,255,204,255,26,0,10,255,199,1,57,0,177,254, +244,0,236,0,131,0,155,255,79,0,23,255,157,254,253,0,200,255,111,255,239,255,209,255,202,0,72,0,176,255,143,1, +128,1,203,254,195,254,220,255,85,0,16,0,187,255,114,0,187,255,238,254,160,255,19,0,212,255,3,0,52,0,193,255, +29,0,20,0,78,255,230,255,253,0,163,0,212,255,171,255,178,255,110,0,172,255,202,254,226,0,52,0,32,254,250,255, +24,1,19,0,160,255,59,255,243,255,86,1,193,255,149,254,216,255,112,0,14,1,96,1,54,1,240,255,175,254,230,255, +115,0,55,255,208,255,131,1,14,0,30,255,148,255,57,255,92,0,79,0,185,255,234,255,246,255,133,255,77,255,11,1, +136,0,70,255,123,255,5,0,20,1,156,255,92,255,106,1,254,255,31,255,115,1,192,0,12,255,249,254,9,255,13,1, +125,1,190,255,84,255,219,255,53,255,157,255,227,1,114,255,84,254,48,1,233,0,75,0,225,255,125,255,118,255,170,255, +211,0,125,0,171,255,57,0,134,0,198,255,199,255,46,0,2,0,160,255,188,255,38,0,217,255,45,0,39,0,44,0, +68,0,252,255,133,0,141,255,87,255,12,0,89,0,224,0,245,255,108,255,246,255,153,0,80,0,37,0,18,0,86,255, +154,255,174,255,63,0,47,0,31,255,206,255,140,0,252,255,210,255,121,0,188,255,98,255,65,0,63,0,21,0,41,0, +23,0,36,0,123,0,156,255,182,255,145,0,38,0,79,0,175,255,199,255,53,0,62,0,190,0,175,255,3,0,35,1, +75,0,247,254,54,255,221,255,190,254,153,255,75,1,169,255,230,254,200,0,11,1,40,0,181,255,171,255,151,0,160,0, +225,255,57,255,133,255,210,255,71,255,4,0,144,255,153,255,78,1,104,0,237,255,191,0,164,255,83,255,17,1,192,0, +184,255,180,0,47,0,77,255,154,0,186,255,106,254,102,0,7,0,22,255,52,1,154,0,143,255,160,0,53,0,202,255, +227,255,116,255,108,255,147,255,69,255,3,255,56,0,237,1,119,1,42,255,62,254,74,0,219,0,21,255,145,255,219,255, +94,255,40,0,178,255,119,255,133,255,97,255,247,0,181,0,101,255,61,0,193,0,123,0,81,0,96,0,195,255,68,255, +77,0,187,255,23,255,110,0,136,0,167,0,168,0,153,255,175,255,18,0,101,0,119,0,151,0,51,0,99,254,180,255, +19,1,144,255,162,0,248,0,180,255,209,255,74,255,173,255,72,0,43,0,129,0,9,0,0,0,42,0,139,255,41,0, +249,0,57,0,143,255,18,0,206,255,199,254,37,0,212,0,88,255,1,0,225,255,186,255,240,0,236,255,82,0,234,255, +110,254,62,0,118,0,245,255,95,0,240,255,172,255,183,255,190,0,209,0,226,255,242,255,100,0,32,0,41,255,109,255, +84,0,166,0,250,255,32,255,226,255,70,0,163,255,69,0,163,0,49,255,226,255,231,255,184,253,51,0,223,1,35,0, +218,255,121,255,42,0,165,0,211,255,214,255,137,0,203,0,60,0,59,0,135,255,142,255,151,0,30,0,204,255,192,255, +44,0,209,255,183,255,61,1,18,0,137,254,187,255,159,0,242,255,31,0,155,0,241,255,238,255,106,255,52,0,14,1, +62,255,43,0,61,1,129,255,25,255,201,255,156,255,245,255,130,0,230,254,183,255,67,2,57,1,111,255,49,255,30,0, +189,255,130,255,210,0,62,0,230,255,146,0,3,0,13,255,90,0,177,1,184,255,193,254,165,255,160,0,127,0,120,255, +65,0,76,0,7,0,175,0,219,255,38,255,65,0,97,0,8,255,74,0,166,0,84,254,143,254,18,1,222,2,210,0, +145,254,155,255,81,0,238,255,72,255,227,255,157,0,8,0,251,254,36,255,65,1,253,0,251,255,22,0,197,255,107,0, +13,0,145,255,150,255,194,255,142,0,182,255,189,255,228,0,175,0,226,255,129,255,33,0,5,0,181,255,239,255,41,255, +86,255,217,0,106,0,174,254,170,254,133,0,202,1,122,0,133,255,15,0,158,255,191,255,63,0,141,255,176,255,223,0, +104,0,151,255,137,0,103,0,110,0,145,0,208,254,72,255,156,0,119,0,184,255,59,255,82,0,163,255,157,255,169,1, +106,0,158,255,199,255,138,254,35,0,103,1,242,255,166,255,96,255,110,255,19,1,205,0,127,255,201,255,234,255,8,0, +56,0,222,255,53,0,245,255,120,255,94,0,196,0,20,0,85,255,136,255,251,255,198,255,235,255,183,255,217,255,18,0, +72,255,164,255,251,255,102,0,196,0,122,255,231,255,102,0,177,255,137,255,24,255,160,0,200,0,70,255,133,0,221,255, +164,255,98,1,3,0,180,255,101,0,148,255,170,255,216,255,252,255,32,0,59,0,27,0,244,255,105,0,74,255,146,255, +5,1,33,0,157,0,27,1,68,0,43,255,251,254,72,1,14,0,164,254,111,0,108,255,167,255,95,0,80,255,52,0, +141,255,17,255,177,0,5,0,211,255,197,0,79,255,240,254,92,0,159,0,175,0,19,0,149,255,31,0,39,0,242,255, +220,255,240,255,33,255,129,255,230,0,137,255,120,255,71,0,119,255,59,0,6,1,145,0,87,255,20,255,53,0,202,255, +164,255,177,0,0,0,198,254,6,0,244,0,229,255,233,255,178,255,19,255,242,255,243,0,63,0,214,254,3,0,81,1, +122,0,168,255,70,255,225,255,168,0,39,0,251,254,162,255,76,1,100,0,47,255,165,255,105,0,15,0,85,255,181,255, +150,255,221,255,139,0,52,1,46,1,89,254,234,253,55,0,133,0,50,0,176,0,237,0,117,255,53,255,130,0,241,0, +147,0,217,254,164,255,218,0,194,255,71,0,156,255,130,255,123,0,81,255,98,0,166,1,200,255,94,255,198,255,214,254, +57,0,155,0,18,255,219,255,122,0,230,255,221,254,51,0,110,0,244,254,17,1,14,1,149,255,210,255,93,0,62,0, +222,255,82,0,177,255,76,0,133,0,169,255,172,255,105,255,66,0,130,1,105,0,102,254,146,255,144,0,214,0,57,0, +209,254,46,0,244,255,107,255,75,255,168,255,141,0,108,0,43,0,44,255,50,0,202,255,181,255,53,0,208,255,50,1, +201,0,42,0,150,254,38,0,193,1,45,0,83,0,113,255,40,0,51,0,210,0,101,1,197,0,223,254,52,255,177,4, +40,1,99,2,114,6,235,1,142,1,227,0,135,0,151,254,126,255,75,0,38,253,86,0,79,0,38,0,183,1,241,255, +90,254,2,1,201,4,238,2,123,1,169,255,12,254,51,253,126,255,24,0,210,251,189,253,30,254,177,254,255,254,6,3, +247,7,8,0,29,0,50,2,100,254,201,251,85,251,22,254,252,249,41,251,92,254,216,253,228,255,59,254,22,255,185,0, +31,0,154,255,106,0,117,0,12,255,171,0,137,0,222,254,237,253,64,0,194,0,132,254,236,0,137,0,228,0,45,2, +224,254,53,254,134,254,72,253,144,255,94,2,163,255,37,255,161,0,174,255,185,0,36,0,221,255,202,255,193,253,43,255, +174,255,235,254,136,0,177,0,103,255,114,255,160,0,107,0,169,255,116,255,85,255,117,0,38,1,166,0,66,255,141,255, +32,1,108,0,92,0,153,255,196,253,81,254,56,0,191,0,195,255,201,255,143,255,164,255,24,0,30,0,138,0,62,0, +210,255,114,255,118,255,38,0,124,0,121,0,123,0,251,254,81,2,166,7,177,2,105,255,193,0,23,0,211,255,224,255, +107,255,147,251,165,253,38,1,122,255,129,0,249,255,124,255,194,255,95,255,90,255,164,255,152,255,165,255,133,3,47,3, +24,255,222,253,154,255,209,0,228,254,246,255,152,255,0,254,130,255,213,255,225,255,115,0,247,0,42,0,161,255,27,255, +116,254,82,0,55,2,57,1,157,254,129,1,4,4,228,255,162,255,154,0,33,254,246,253,209,255,139,255,24,253,31,254, +134,0,238,255,201,255,82,255,96,255,14,1,153,1,14,1,230,255,201,255,137,255,114,255,88,255,165,254,110,1,80,2, +146,255,227,254,76,0,152,0,196,254,247,255,216,0,140,254,35,255,87,0,227,255,239,255,212,255,106,0,40,0,215,255, +110,2,180,0,7,255,85,1,151,255,81,255,57,0,204,255,98,0,48,0,145,0,214,255,99,255,59,0,70,0,227,255, +62,255,196,255,14,0,25,255,184,255,255,0,45,0,180,255,161,255,53,0,154,1,190,0,195,255,89,255,193,255,22,0, +52,0,93,0,172,255,151,0,151,255,111,255,78,1,227,255,108,255,198,0,73,0,60,255,200,0,199,0,167,255,56,0, +89,255,77,255,182,255,193,255,222,255,224,255,200,255,112,0,67,1,9,0,160,255,71,255,113,0,6,1,52,0,161,0, +246,254,89,255,7,255,139,255,103,1,198,255,246,0,6,1,60,0,40,0,182,255,151,0,132,255,47,255,29,0,216,0, +182,255,249,254,50,0,205,255,168,255,37,0,183,0,126,255,16,255,215,255,213,254,191,255,56,0,172,255,79,254,235,253, +223,1,149,2,241,0,20,2,215,0,145,254,209,255,62,0,77,255,118,0,58,1,60,0,211,255,134,254,209,252,242,255, +52,3,121,1,240,255,178,0,155,0,2,0,85,0,226,255,84,0,154,0,179,255,110,255,211,254,202,255,103,0,191,255, +111,255,223,255,203,0,192,255,24,0,103,1,147,0,231,255,125,0,6,0,50,255,155,0,110,0,193,255,190,255,0,255, +146,255,37,0,0,0,38,255,95,0,246,0,5,255,95,0,112,0,145,254,87,255,244,0,17,1,165,255,103,0,68,0, +252,254,130,0,28,0,169,255,221,255,33,255,105,0,79,255,66,255,11,2,137,0,103,255,255,0,57,0,89,255,74,1, +85,0,219,254,249,0,95,0,26,255,159,255,45,0,32,0,214,255,241,255,187,255,182,0,89,255,109,254,217,255,84,0, +45,2,213,0,30,255,93,0,7,0,184,255,33,0,192,255,111,254,8,255,178,0,117,1,215,0,129,255,251,255,23,0, +125,0,177,0,212,255,219,255,189,255,106,255,154,254,234,255,87,1,93,255,168,255,136,0,166,254,179,255,84,2,88,1, +156,255,174,255,45,0,96,0,41,0,191,255,22,0,55,255,54,254,204,0,232,1,146,0,34,255,23,255,180,1,222,255, +77,254,79,1,164,0,28,255,197,255,146,0,46,1,112,0,179,255,145,255,75,255,215,255,191,0,70,1,76,0,47,255, +213,255,121,255,46,0,221,0,192,255,50,0,177,255,177,255,235,0,185,0,45,255,217,254,255,255,152,254,236,255,179,1, +22,0,158,0,28,0,132,255,240,255,151,255,202,255,143,255,113,0,212,0,134,255,167,255,46,0,229,255,123,255,255,254, +247,255,128,0,167,255,163,0,138,0,238,255,243,0,97,0,19,0,116,0,9,0,92,0,113,0,94,255,169,254,46,255, +147,0,39,0,109,254,32,0,209,1,4,0,121,255,84,0,167,255,176,255,28,0,143,255,103,0,149,0,37,0,145,0, +213,255,87,255,148,0,105,1,51,255,198,254,122,0,207,255,41,0,12,0,92,255,137,255,50,255,120,0,129,0,86,255, +130,0,174,0,72,255,175,255,103,255,18,255,149,0,32,0,117,255,115,255,18,0,183,0,244,255,219,0,90,1,251,0, +252,254,63,253,229,254,208,255,171,1,50,1,198,255,199,0,170,255,17,1,235,0,73,255,220,0,132,255,18,255,65,0, +43,0,244,255,125,255,49,0,221,255,231,254,47,0,210,0,117,255,255,255,154,0,27,255,104,255,101,0,87,0,22,255, +110,255,97,1,209,255,172,254,211,255,127,0,216,255,111,255,96,0,191,255,196,0,100,1,172,255,43,0,173,255,48,0, +152,0,145,254,194,255,97,0,252,255,67,0,172,255,210,0,63,0,228,254,228,254,78,255,168,1,214,0,119,255,99,0, +235,255,29,0,33,0,82,0,9,0,159,254,249,254,118,0,231,0,177,255,142,0,197,0,101,255,4,0,184,255,243,255, +93,0,180,0,30,1,155,255,73,255,77,255,227,255,86,0,229,254,2,0,117,0,222,254,186,0,40,0,85,254,171,1, +220,0,162,254,29,0,35,0,243,0,52,0,251,254,129,255,8,0,248,0,220,255,79,0,19,0,23,254,104,0,86,1, +148,255,56,0,232,0,166,255,182,255,47,0,172,255,129,0,233,0,97,0,77,255,30,255,195,255,221,255,5,1,52,0, +114,255,104,0,14,0,248,255,81,255,36,255,198,255,5,0,121,0,44,0,226,255,127,0,21,1,99,255,100,254,174,255, +44,0,27,1,22,1,220,255,243,254,110,254,95,0,33,2,48,0,240,254,219,0,202,0,67,255,3,255,148,255,161,0, +90,0,229,255,253,255,3,0,149,255,174,255,69,0,201,255,229,255,237,255,187,0,55,0,81,254,155,255,225,255,235,255, +37,1,239,0,76,0,208,255,189,255,0,0,96,0,197,255,183,255,89,255,132,255,104,1,171,0,115,0,238,0,71,0, +243,255,65,255,213,254,118,255,58,1,34,0,118,254,146,255,98,0,55,1,7,1,139,255,82,255,74,0,195,255,177,254, +135,255,16,1,77,0,61,255,177,0,207,255,173,255,33,0,250,254,171,0,231,0,242,255,213,254,118,255,223,0,235,255, +88,0,53,255,4,0,110,1,110,255,40,255,127,0,114,1,13,255,28,255,137,0,142,255,180,0,200,255,209,254,197,255, +38,0,226,255,245,255,120,0,200,254,191,255,58,1,171,254,80,254,120,1,131,2,207,255,33,255,240,255,163,255,12,1, +141,1,35,0,226,255,60,0,253,255,203,255,56,0,88,255,231,254,52,1,213,0,59,255,160,255,67,255,223,255,44,0, +104,0,67,1,70,0,60,0,112,255,155,254,182,0,170,0,111,255,1,0,74,0,158,255,29,255,99,0,30,0,125,254, +111,0,99,1,229,255,85,0,175,0,207,255,155,255,39,0,244,255,116,255,147,0,82,1,185,255,132,255,132,0,194,255, +208,255,28,0,151,255,208,255,20,0,64,0,155,0,52,1,180,0,80,254,133,254,163,1,197,0,153,254,18,254,91,254, +98,1,120,1,160,0,195,0,74,255,206,255,200,255,48,0,156,0,245,255,57,0,60,0,187,0,200,255,92,255,43,0, +55,0,120,0,140,0,234,255,235,255,146,0,119,255,41,1,193,1,54,0,29,1,1,255,68,255,248,255,235,254,191,255, +247,254,198,255,56,0,100,0,46,1,42,0,11,255,231,254,236,0,239,0,110,254,119,254,66,1,101,1,226,254,163,255, +64,1,1,0,225,254,153,255,161,0,213,1,134,255,118,254,80,1,175,255,146,255,105,0,37,255,202,255,80,0,108,0, +102,255,106,0,136,0,249,254,152,0,93,1,93,0,157,255,33,0,156,255,152,255,46,0,137,255,32,0,177,255,12,0, +129,255,247,254,239,0,205,255,169,255,59,0,18,255,34,0,75,0,152,255,101,0,95,0,164,0,160,0,190,255,11,0, +114,255,97,255,173,255,167,255,233,255,2,255,61,0,62,1,28,0,168,255,6,0,43,0,126,255,222,255,132,0,54,0, +150,254,2,0,180,2,71,0,250,254,215,254,118,255,180,1,42,0,244,254,66,0,252,0,73,0,199,254,11,255,31,0, +150,0,135,0,110,255,158,255,65,0,183,255,224,255,172,255,22,0,164,0,42,0,32,0,246,255,141,0,168,0,206,255, +67,255,165,255,249,255,245,254,39,255,218,255,45,0,34,1,144,1,176,255,151,254,63,0,46,0,190,255,4,1,55,2, +148,0,77,254,189,254,226,254,250,255,214,0,15,0,210,255,35,0,18,0,191,255,128,0,237,255,4,0,138,0,188,255, +207,255,122,255,159,255,3,0,148,0,106,0,133,255,162,255,44,0,117,0,58,255,193,255,129,0,45,0,197,0,164,0, +81,0,183,255,123,0,248,255,105,254,150,255,37,0,9,0,8,0,177,255,163,255,96,0,80,0,55,0,62,1,165,255, +91,254,156,0,43,1,79,255,200,255,210,255,168,255,201,0,53,0,226,255,134,254,62,255,143,0,242,254,167,255,66,0, +95,1,250,1,100,0,179,255,228,255,106,0,216,255,165,255,59,255,225,255,183,0,177,255,241,255,243,255,230,0,197,0, +65,254,222,254,191,0,203,0,20,0,171,0,21,1,117,255,229,255,241,255,154,253,196,0,240,2,92,255,58,255,101,0, +98,0,216,255,74,255,2,0,114,0,194,0,227,255,102,255,209,255,35,0,3,0,101,255,124,0,85,255,99,254,28,2, +67,2,188,254,11,255,213,0,212,255,106,255,71,1,140,0,79,254,115,255,50,1,180,0,201,254,150,254,253,0,134,0, +212,254,186,255,88,0,52,0,148,0,85,0,201,255,203,0,83,0,251,254,184,255,48,255,34,255,101,0,208,0,1,1, +184,255,222,255,92,1,127,0,126,255,219,255,186,0,248,255,121,255,169,0,178,255,67,255,146,0,87,0,203,255,253,255, +123,0,151,0,219,255,213,254,142,255,65,0,3,255,103,0,211,1,126,0,58,0,1,0,188,255,78,255,104,255,190,0, +224,255,54,255,202,255,193,255,4,0,2,0,56,0,80,0,51,0,158,255,184,254,226,255,244,0,177,0,112,0,140,0, +209,255,86,254,69,0,147,1,182,255,95,255,9,255,167,255,182,0,255,255,56,0,35,0,221,255,189,255,147,255,214,0, +170,0,198,255,16,0,146,255,104,255,146,0,208,0,179,255,207,255,124,0,77,0,19,0,178,255,9,0,12,0,168,255, +38,0,174,255,243,255,109,0,112,255,228,255,22,0,58,0,178,0,17,255,108,255,140,0,207,255,23,0,109,255,172,255, +22,1,185,255,198,255,127,0,5,0,241,0,134,255,11,254,64,0,172,0,250,254,248,254,220,255,64,0,184,0,214,0, +31,0,2,0,83,0,16,0,175,255,38,0,175,0,51,0,241,255,219,255,3,0,3,0,118,255,153,255,251,253,150,253, +42,0,213,255,14,0,78,0,212,254,241,1,1,3,163,255,194,255,19,1,159,0,7,255,224,254,227,0,151,0,11,255, +178,255,248,0,141,0,212,255,7,0,142,255,227,255,143,0,159,255,26,0,240,0,114,255,177,254,38,0,203,0,199,255, +95,255,91,255,83,0,28,1,17,255,12,255,173,0,88,0,251,255,67,255,100,0,19,1,250,254,188,255,125,0,43,255, +66,255,68,0,100,0,92,255,238,255,95,0,124,255,240,255,149,0,245,0,253,255,254,254,98,0,166,0,175,255,232,255, +153,0,73,0,247,254,181,254,198,255,240,0,161,0,65,255,66,255,118,255,34,0,78,1,131,0,1,0,244,255,94,255, +176,255,23,0,73,0,11,0,221,255,197,255,168,255,236,255,122,255,194,255,89,0,135,0,199,0,40,0,229,255,248,255, +134,0,83,0,28,255,179,255,86,0,234,255,169,255,86,0,97,0,94,255,103,255,175,255,73,0,135,255,32,255,212,0, +37,0,132,255,242,255,224,255,112,0,135,0,73,0,7,0,70,0,44,0,203,255,234,255,157,255,151,255,86,255,77,0, +110,1,93,0,231,255,147,255,125,255,37,0,191,255,122,255,28,0,109,0,242,255,31,0,106,0,130,255,86,255,234,255, +15,0,139,0,19,0,254,254,225,255,251,0,150,0,251,255,35,0,165,255,137,255,188,255,12,255,169,0,85,1,66,0, +188,255,124,255,160,0,45,0,192,255,47,0,28,0,103,0,199,255,33,255,208,255,204,0,45,0,38,0,162,0,29,0, +131,255,167,255,63,0,186,255,8,0,133,255,190,255,79,0,251,254,253,255,166,0,179,255,5,255,43,0,214,0,92,0, +74,0,239,255,152,255,44,255,120,1,138,255,92,255,202,1,231,253,249,255,81,0,196,253,167,0,215,1,252,255,240,254, +54,0,178,255,206,0,126,0,155,255,6,0,14,255,56,0,106,0,110,1,125,255,109,255,137,0,89,254,202,0,239,0, +179,255,51,254,217,255,131,1,131,255,248,255,122,255,194,0,134,255,166,255,182,0,188,0,54,0,23,254,133,1,210,255, +2,1,110,255,189,252,255,0,68,255,166,2,172,254,168,0,189,252,21,240,146,8,114,14,160,252,5,254,16,255,208,254, +112,255,2,255,100,255,69,1,31,0,207,0,189,1,48,254,223,255,88,1,189,1,24,255,146,254,4,1,35,0,123,2, +247,255,195,253,133,255,14,0,83,0,180,255,70,1,19,0,53,255,124,255,223,254,173,255,233,255,245,0,183,0,181,255, +117,255,218,0,227,0,227,254,144,255,182,255,63,0,142,1,143,0,84,254,37,255,18,1,238,255,47,0,150,255,190,254, +51,0,154,255,38,0,162,0,144,255,49,0,124,255,107,0,15,2,71,1,131,0,248,253,229,255,115,1,88,255,233,0, +0,0,58,255,167,254,231,255,8,2,11,255,20,0,51,0,227,255,225,0,221,254,14,0,14,0,71,255,48,255,211,255, +74,1,25,0,186,0,109,0,153,255,109,0,181,255,72,0,29,0,37,255,54,255,55,255,109,0,153,0,97,0,134,0, +190,255,91,0,179,0,149,255,200,255,175,0,176,254,29,254,134,1,3,1,29,255,194,255,65,0,53,0,200,255,107,0, +244,255,153,255,140,0,61,0,65,0,66,0,100,255,244,254,202,0,75,1,147,255,93,0,75,0,114,255,73,255,202,254, +113,0,13,1,0,0,228,255,114,255,155,255,191,0,231,0,55,0,223,255,162,254,221,253,210,0,65,3,167,0,238,254, +50,0,134,254,147,254,83,1,179,0,241,255,114,255,147,255,249,255,193,254,134,255,123,0,202,0,46,1,74,0,198,255, +28,0,180,0,84,0,234,255,141,0,238,0,19,0,221,254,135,255,60,255,243,253,89,255,218,0,127,0,29,0,17,0, +254,254,8,255,61,0,15,0,87,0,177,255,230,254,237,0,40,1,146,255,25,0,47,0,202,255,165,0,65,0,181,0, +14,1,76,255,219,255,68,255,155,254,211,0,99,0,74,0,223,0,49,255,182,254,233,255,244,0,228,0,141,0,229,255, +55,255,195,255,148,0,146,0,107,255,147,255,245,0,137,0,99,255,64,255,199,255,49,0,137,0,245,255,53,255,239,255, +118,0,30,0,251,255,92,0,10,0,90,0,14,1,195,255,135,255,179,255,32,0,4,1,37,0,80,0,0,0,37,255, +173,255,34,0,192,255,248,254,4,0,235,255,162,255,197,0,14,0,35,255,190,254,17,0,41,1,93,0,123,0,254,255, +1,255,193,255,186,0,165,255,130,255,253,0,6,1,137,255,7,255,120,0,164,255,216,255,91,1,198,255,115,255,80,0, +207,0,223,255,133,255,171,0,210,255,135,255,177,255,32,0,187,0,193,255,160,254,124,255,32,1,71,0,99,0,83,1, +77,0,223,254,10,255,132,0,202,255,195,255,162,0,36,0,2,0,188,255,245,255,0,0,157,255,37,0,154,0,60,255, +154,254,117,255,122,255,203,0,53,1,173,255,67,255,16,0,222,0,157,0,16,0,53,255,125,255,100,0,127,0,117,0, +90,0,81,0,97,255,71,255,155,255,238,255,239,0,226,0,0,0,85,255,108,0,177,0,74,0,185,0,81,0,150,255, +240,254,78,0,145,0,184,255,71,0,80,0,162,0,204,255,5,0,229,0,26,0,127,0,42,0,4,255,29,255,79,255, +70,255,177,0,36,1,180,255,153,255,208,255,46,0,104,0,227,255,138,255,218,255,28,0,101,0,113,0,130,254,238,254, +157,0,20,0,167,255,59,0,93,1,160,0,141,0,83,0,250,254,210,255,242,255,102,0,81,1,81,0,229,254,163,254, +222,254,53,0,128,2,145,0,209,254,76,0,139,0,81,0,126,255,21,255,54,0,157,0,200,255,85,0,169,0,151,255, +93,255,112,254,103,255,127,1,221,0,75,0,61,0,44,255,23,255,83,0,248,255,118,0,168,0,157,255,109,0,69,0, +181,0,171,0,154,255,150,255,26,255,38,0,80,0,245,255,213,254,150,253,135,1,117,2,237,254,239,254,75,0,72,0, +9,0,203,255,181,255,1,0,194,255,196,0,232,1,81,0,130,255,44,0,112,0,80,0,206,255,166,255,140,255,13,255, +126,255,34,1,171,0,199,254,167,255,19,1,174,0,164,255,83,255,80,0,111,0,213,255,97,255,228,254,207,255,206,0, +112,0,94,255,78,255,70,0,49,0,102,0,105,0,187,255,235,255,217,255,6,0,190,255,164,255,14,1,44,0,11,255, +24,0,240,255,202,255,117,0,121,0,78,0,128,255,119,255,198,0,93,0,86,255,175,255,103,255,126,255,177,0,233,255, +11,255,234,255,224,255,116,0,241,0,173,255,191,255,167,255,157,255,159,0,124,0,17,0,135,255,129,0,106,0,169,254, +14,0,205,0,54,0,113,255,116,255,227,0,104,255,127,254,214,255,88,0,130,0,132,0,54,255,73,255,81,1,57,255, +3,255,131,1,27,0,158,255,236,255,72,0,249,255,140,255,114,0,165,255,234,255,146,0,244,255,142,255,220,255,120,0, +36,0,45,0,206,255,220,255,124,0,26,0,173,255,45,255,123,255,148,0,181,0,184,255,137,255,128,255,167,255,99,0, +216,255,147,255,254,255,138,0,218,255,201,255,193,0,58,255,209,255,252,0,2,0,28,0,58,0,88,0,118,0,49,0, +10,255,2,255,43,0,208,255,30,0,160,0,33,0,35,0,244,255,187,254,232,254,218,0,107,1,213,255,74,255,4,1, +95,0,135,255,108,0,196,255,237,255,121,0,240,255,87,255,136,255,27,0,21,0,33,0,22,0,225,255,88,255,143,255, +223,255,13,0,164,0,76,0,132,255,0,255,63,0,148,0,82,0,175,0,235,255,55,0,27,255,252,255,134,1,47,255, +111,255,226,255,220,255,105,0,7,0,91,0,134,255,63,255,55,0,53,0,7,0,19,0,42,0,127,0,69,0,223,255, +208,255,175,255,38,0,176,255,220,255,60,0,95,255,89,0,202,0,49,0,166,255,132,255,252,255,141,255,135,255,77,0, +215,0,83,255,34,255,92,1,43,1,173,255,88,255,84,0,242,255,146,255,10,0,173,255,114,0,0,0,111,255,236,255, +254,255,79,0,180,255,38,255,142,255,152,0,26,0,86,255,75,0,55,0,84,0,140,0,73,0,120,0,145,255,139,255, +153,0,201,255,0,0,243,0,174,255,165,255,165,255,137,255,32,0,18,255,9,0,166,0,90,255,180,255,95,0,157,0, +181,255,187,255,139,0,12,0,9,0,235,255,63,0,134,0,174,255,162,255,230,255,51,0,26,0,130,255,187,255,43,0, +135,0,84,0,219,255,203,255,160,255,71,0,88,0,136,255,31,0,23,0,188,255,177,0,107,0,208,255,160,255,178,254, +26,0,84,1,25,0,60,0,209,255,186,255,127,0,250,255,145,0,78,0,96,255,214,255,193,0,245,0,159,255,16,0, +46,0,23,255,140,0,169,0,58,255,106,255,212,255,3,0,35,0,225,255,224,255,224,255,204,254,66,255,39,1,239,0, +5,0,40,255,231,254,127,0,219,0,88,255,194,255,74,1,99,0,222,255,90,0,116,255,157,255,97,0,73,0,197,255, +101,255,216,255,57,0,57,0,248,255,63,0,65,0,184,255,211,255,7,0,90,0,53,0,222,255,135,255,31,0,199,0, +158,255,165,255,111,0,194,0,234,255,98,255,136,0,222,255,131,255,23,0,154,0,21,0,220,254,203,255,183,255,204,255, +117,0,106,0,128,0,173,255,27,0,43,0,219,255,178,0,194,0,10,0,155,255,34,0,216,255,222,255,252,255,11,255, +2,0,52,1,42,0,142,255,52,0,162,255,130,255,68,0,95,0,214,0,114,0,78,255,172,254,22,0,92,1,157,255, +167,255,197,0,251,254,201,254,53,1,225,0,105,255,230,255,251,255,69,255,94,255,111,0,240,0,152,0,51,0,217,255, +252,254,218,254,109,0,149,0,49,0,77,0,16,0,58,0,239,255,150,255,148,255,14,0,56,0,97,0,112,0,157,255, +215,255,4,0,80,0,106,0,208,255,192,255,4,0,169,0,197,255,219,255,156,0,159,255,246,255,240,255,87,255,232,255, +211,255,157,255,197,0,164,0,191,255,242,255,22,255,204,255,232,0,145,255,19,255,130,0,11,1,58,255,121,255,192,0, +49,0,218,255,166,255,162,255,194,255,118,0,96,0,135,255,53,0,184,0,95,0,227,255,13,255,172,254,4,0,213,0, +66,0,207,255,111,255,82,0,254,0,63,0,117,255,155,255,240,255,145,255,221,255,197,255,110,255,238,255,200,0,200,0, +245,255,187,0,182,0,153,255,222,255,26,0,207,255,253,255,90,0,129,255,106,255,36,0,162,255,200,255,138,0,120,0, +236,255,123,255,190,255,152,0,81,0,220,255,119,0,193,255,41,255,213,255,50,0,109,0,36,0,236,255,6,0,66,0, +104,0,179,255,177,255,68,0,240,255,228,255,121,0,85,0,66,255,39,255,255,255,135,0,176,0,195,255,225,255,145,0, +172,255,210,255,252,255,176,255,82,0,54,0,114,255,147,255,77,0,8,0,49,0,163,0,20,0,240,255,127,255,92,255, +123,0,51,1,108,0,189,255,14,0,167,255,17,255,84,255,199,0,6,1,82,255,151,255,26,0,191,255,144,0,140,0, +110,255,125,255,27,0,73,0,162,0,43,0,138,255,4,0,31,0,199,255,168,255,210,255,127,0,143,0,251,254,242,254, +248,0,156,0,206,255,100,0,28,0,226,255,188,255,84,255,18,0,79,1,137,0,119,255,241,255,139,255,246,255,42,0, +141,255,151,0,88,254,117,252,216,254,88,1,252,2,111,0,192,254,222,0,239,0,61,0,145,255,11,0,188,0,2,0, +20,0,240,255,215,255,33,0,10,0,229,255,105,0,123,0,135,255,255,255,96,0,210,255,157,255,47,0,128,0,144,255, +108,255,234,255,254,0,165,0,208,255,1,1,196,255,180,254,59,255,81,255,94,0,127,0,27,0,170,255,242,255,135,0, +34,0,85,0,216,255,231,255,62,0,165,255,141,0,104,0,137,255,63,0,188,255,71,255,127,0,227,0,66,0,166,255, +6,0,119,0,7,0,40,0,10,0,244,255,61,0,132,255,31,255,156,255,77,0,115,0,248,255,31,0,168,0,250,255, +62,255,65,0,123,0,13,0,126,0,215,255,112,255,225,255,210,255,57,0,255,255,60,255,253,255,240,0,120,0,136,255, +212,255,238,255,37,255,174,255,150,0,181,0,75,0,200,255,77,255,131,255,128,0,100,0,61,0,208,255,232,255,102,0, +112,255,31,0,0,0,18,0,132,1,117,0,30,1,213,1,48,0,72,255,94,255,163,255,234,254,211,255,253,0,209,255, +151,255,211,255,78,255,132,255,3,0,22,0,206,255,147,255,195,255,188,255,46,0,22,0,143,255,103,0,155,255,161,254, +220,255,100,0,173,255,170,255,254,0,14,1,177,255,20,255,218,255,136,0,180,255,95,255,19,0,98,0,26,0,94,0, +27,0,93,255,102,0,120,0,124,255,134,255,250,254,46,255,195,0,141,0,225,255,247,255,30,254,174,253,202,0,139,2, +11,1,111,255,179,255,4,0,212,255,50,0,89,0,144,255,198,255,98,0,44,0,119,0,235,255,203,255,249,255,75,255, +183,255,188,255,192,255,212,0,188,0,136,255,225,255,123,0,248,255,22,0,41,0,177,0,64,0,0,255,95,255,61,255, +157,255,196,0,101,0,202,255,233,255,204,255,236,255,248,255,10,0,122,0,94,255,82,255,165,0,183,0,236,255,196,254, +69,255,120,0,116,0,232,255,26,0,203,255,107,255,124,0,19,0,205,255,237,255,2,0,231,0,155,0,248,255,55,255, +26,0,152,0,82,255,230,255,76,0,16,0,1,0,186,255,174,255,9,0,250,255,226,255,165,0,36,0,235,255,54,0, +145,255,194,255,58,0,28,0,151,255,66,255,144,255,66,0,226,0,199,0,18,0,253,255,249,255,160,255,77,0,115,0, +244,255,194,255,189,255,150,255,108,255,25,0,17,0,150,0,179,0,114,255,228,255,169,0,169,0,13,0,163,255,137,255, +203,255,20,0,127,255,194,255,221,255,248,255,93,0,71,0,32,0,21,0,99,0,205,255,252,255,75,0,253,255,197,255, +253,254,0,0,210,0,15,0,99,255,36,0,60,1,185,255,232,254,246,255,139,0,32,0,197,255,82,0,54,0,195,255, +149,255,221,255,86,0,54,0,29,0,50,0,46,0,227,255,251,255,103,0,226,255,152,255,120,0,109,0,179,255,173,255, +235,255,242,255,135,255,213,255,76,0,52,0,90,0,62,0,7,0,231,255,249,255,232,255,222,255,1,0,175,255,21,0, +136,0,197,255,87,255,24,0,90,0,208,255,16,0,47,0,235,255,246,255,182,255,240,255,53,0,167,255,160,255,51,0, +164,0,68,0,237,255,96,0,242,255,249,255,223,255,245,254,99,255,63,0,203,0,221,255,83,255,69,0,138,0,51,0, +143,255,132,0,142,0,80,255,244,255,49,0,42,0,3,0,170,255,240,255,42,0,91,0,83,0,36,0,214,255,195,255, +101,255,64,255,242,255,250,255,55,0,203,0,7,0,142,255,102,0,108,0,191,255,179,255,133,0,66,0,98,255,47,0, +27,0,19,0,135,255,138,254,111,0,242,0,76,0,23,0,188,255,250,255,125,255,92,0,243,0,180,255,210,255,48,0, +24,0,56,0,191,255,155,255,32,0,249,255,181,255,60,0,165,0,199,255,152,255,144,0,56,0,170,255,106,255,148,255, +109,0,90,0,248,255,45,0,65,0,14,0,238,255,237,255,242,255,127,255,231,255,83,0,189,255,254,255,174,255,187,255, +229,255,81,0,59,1,196,255,244,255,161,0,209,255,149,255,161,255,167,0,11,0,136,255,55,0,108,0,54,0,107,255, +232,255,169,255,189,255,236,0,85,0,242,255,38,0,238,255,185,255,10,0,63,0,234,255,222,255,60,0,250,255,112,255, +239,255,224,255,129,255,172,255,28,0,125,0,83,0,71,0,128,255,114,255,22,0,68,0,203,0,252,255,78,255,212,255, +247,255,49,0,178,0,120,0,231,255,233,255,16,0,53,0,153,255,168,255,17,0,102,255,9,0,103,0,167,255,109,255, +156,255,213,255,241,255,129,0,27,0,157,255,25,0,210,255,144,255,96,0,18,1,78,0,216,255,19,0,228,255,47,0, +66,0,22,0,223,255,11,0,143,0,18,0,214,255,106,255,52,255,200,0,250,0,152,255,111,255,0,0,252,255,90,255, +118,255,249,255,223,255,108,0,170,0,187,255,176,255,56,0,101,0,167,0,181,0,235,255,60,255,224,255,17,0,77,255, +137,255,162,0,147,0,175,255,2,0,53,0,205,255,173,255,144,255,88,0,130,0,203,255,242,255,250,255,193,255,194,255, +242,255,52,0,2,0,209,255,224,255,255,255,68,0,4,0,197,255,42,0,216,255,89,255,64,0,209,0,157,255,129,255, +116,0,80,0,36,0,125,255,175,255,137,0,194,255,114,255,27,0,24,1,104,0,254,254,248,255,236,255,178,255,216,0, +94,0,221,255,12,0,105,255,94,255,34,0,163,0,160,0,157,255,176,255,76,0,49,255,190,255,212,0,218,255,220,255, +94,0,237,255,255,255,62,0,238,255,222,255,17,0,216,255,206,255,62,0,83,0,228,255,139,255,248,255,35,0,188,255, +89,0,234,0,2,0,219,254,169,255,191,0,21,0,202,255,73,255,87,255,91,0,114,255,52,255,127,0,31,0,193,255, +145,0,50,0,223,255,92,0,107,0,218,255,42,255,147,0,216,0,108,255,62,0,14,0,134,255,210,0,67,0,230,254, +232,255,123,0,180,255,241,255,94,0,77,0,42,0,192,0,239,255,185,254,31,0,101,0,5,0,43,0,23,0,221,255, +38,255,210,255,49,0,40,0,17,0,72,255,181,255,95,0,97,0,4,0,253,255,75,0,154,0,216,0,15,0,21,255, +58,255,51,0,114,0,66,0,32,0,221,255,196,255,34,0,176,0,184,255,181,255,110,0,128,255,110,255,178,255,218,255, +37,0,225,255,35,0,133,0,0,0,251,255,164,0,64,0,16,0,253,255,221,255,14,0,231,255,45,0,177,255,165,255, +29,0,207,255,91,0,111,0,21,0,233,255,204,255,236,255,182,255,3,0,181,0,230,0,38,0,40,0,145,0,148,255, +184,255,28,0,54,255,99,255,16,0,130,255,53,255,247,255,56,0,89,0,91,0,253,255,102,0,167,0,217,255,153,255, +45,0,89,255,82,255,125,0,8,0,31,0,246,255,235,255,175,0,63,0,29,0,160,255,174,255,216,255,58,255,233,255, +61,0,112,0,43,0,216,255,82,0,250,255,207,255,172,255,179,255,239,255,34,0,64,0,231,255,48,0,44,0,167,255, +246,255,61,0,172,255,54,0,142,0,68,0,2,1,191,255,43,255,205,255,91,255,209,255,245,255,134,255,144,253,66,254, +147,2,172,2,240,255,201,254,65,0,12,1,243,255,50,0,35,0,149,255,180,255,252,255,63,0,236,255,173,255,9,0, +188,255,96,255,238,255,215,255,170,255,113,0,87,1,201,0,180,255,6,0,17,0,214,255,25,0,84,0,33,0,217,255, +22,0,170,255,99,255,55,0,73,0,67,255,174,255,254,255,81,255,139,0,242,0,29,0,231,255,246,255,26,0,67,255, +193,255,144,0,220,255,139,255,139,255,78,0,100,0,165,255,124,0,184,0,100,255,41,255,194,255,21,0,77,0,97,0, +84,0,236,255,243,255,18,0,147,255,166,255,49,0,109,0,40,0,16,0,11,0,222,255,65,0,226,255,117,255,30,0, +212,255,126,255,6,0,206,255,205,255,158,0,127,0,114,255,102,255,93,0,176,0,29,0,202,255,24,0,99,255,40,255, +193,0,82,0,208,254,177,255,136,0,248,255,5,0,253,255,171,255,3,0,201,255,3,0,113,0,6,0,224,255,141,255, +214,255,51,0,171,255,35,0,213,0,39,0,195,255,42,0,44,0,240,255,213,255,66,0,40,0,78,255,143,255,83,0, +201,255,123,255,36,0,150,255,91,0,225,0,119,255,16,0,216,255,181,255,89,0,184,255,195,255,160,255,24,0,66,0, +192,255,5,0,45,0,68,0,5,0,62,0,24,0,199,255,13,0,247,255,220,255,138,255,2,0,66,0,138,255,107,255, +135,255,239,255,153,0,131,0,235,255,2,0,67,0,47,0,36,0,227,255,143,255,237,255,40,0,97,255,218,255,104,0, +157,255,154,255,105,0,188,0,204,255,166,255,26,0,231,255,25,0,230,255,227,255,43,0,1,0,31,0,251,255,154,255, +56,0,26,0,40,255,141,255,6,0,192,0,104,0,124,255,213,255,122,255,94,0,96,0,108,255,85,0,206,255,184,255, +143,0,40,0,241,255,68,0,246,255,163,255,168,0,58,0,48,255,28,0,187,0,101,0,200,255,190,255,58,0,250,255, +157,255,52,0,122,0,218,255,212,255,248,255,186,255,166,255,188,255,12,0,123,0,131,0,223,255,200,255,47,0,200,255, +230,255,29,0,220,254,94,255,95,1,225,0,220,255,198,255,196,255,17,0,17,0,27,0,21,0,155,255,53,255,232,255, +249,0,53,0,101,255,189,255,222,255,191,255,7,0,124,0,52,0,225,255,154,255,55,0,240,0,233,255,226,255,223,255, +114,255,131,0,150,0,208,255,153,255,220,255,23,0,2,0,220,255,181,255,251,255,192,255,213,255,92,0,204,255,196,255, +72,0,80,0,205,255,61,255,70,0,218,0,106,255,62,255,117,0,201,0,115,0,199,255,203,255,105,0,246,255,160,255, +191,255,91,255,189,255,106,0,77,0,28,0,251,255,68,0,64,0,189,255,135,255,60,255,239,255,199,0,87,0,240,255, +248,255,11,0,144,255,249,255,248,0,52,0,213,255,27,0,164,255,210,255,69,0,16,0,207,255,225,255,186,255,177,255, +60,0,255,255,74,255,194,255,44,0,4,0,81,0,18,0,239,255,58,0,8,0,117,0,10,0,23,255,179,255,62,0, +234,255,111,255,199,0,83,1,70,255,121,255,92,0,249,255,249,255,30,0,107,0,57,0,44,0,39,0,166,255,90,255, +221,255,125,0,211,255,147,255,218,255,64,0,131,0,169,255,154,255,18,0,124,0,213,255,238,254,145,0,199,0,211,255, +196,0,82,0,73,255,208,255,65,0,233,255,139,255,232,255,237,255,189,255,95,0,82,0,229,255,158,255,118,255,140,0, +215,0,245,255,210,255,228,255,212,255,183,255,253,255,4,0,177,255,148,0,121,0,92,255,217,255,101,0,230,255,56,255, +198,255,191,0,163,0,101,0,205,255,90,255,13,0,138,0,6,0,178,255,218,255,35,0,114,0,55,0,250,255,120,255, +103,255,59,0,86,0,254,255,148,255,253,255,149,0,246,255,123,255,253,255,148,255,221,254,179,0,228,0,241,255,61,0, +92,255,86,0,217,0,174,255,254,255,29,0,255,255,186,255,159,255,5,0,24,0,212,255,84,0,148,0,138,255,192,255, +86,0,51,0,238,255,125,255,28,0,200,0,164,255,7,255,253,255,192,255,247,255,72,0,128,255,230,255,84,0,132,0, +214,255,197,255,145,0,77,255,141,255,17,1,68,0,104,255,43,0,76,0,107,255,154,255,197,255,232,255,184,0,127,0, +242,255,171,255,156,255,107,0,243,255,182,255,216,0,16,0,141,255,0,0,234,255,22,0,21,0,163,255,56,255,198,255, +254,255,215,255,12,0,31,0,99,0,37,0,63,0,145,0,55,0,136,255,119,255,238,255,255,255,20,0,105,255,191,255, +65,0,153,255,23,0,251,255,231,255,95,0,48,0,98,0,97,0,235,255,186,255,4,0,63,0,214,255,138,255,92,0, +62,0,195,255,98,0,243,255,28,0,76,0,117,255,219,255,37,0,168,255,213,255,10,0,204,255,65,0,163,255,46,255, +82,0,5,0,177,255,176,255,223,255,203,0,239,0,105,0,181,255,27,0,132,0,193,255,204,255,109,0,180,255,83,255, +134,0,151,0,16,0,186,255,163,255,46,0,57,0,45,0,136,255,148,255,138,0,76,0,54,0,252,255,102,255,196,255, +115,0,127,0,171,255,189,255,162,0,45,0,177,255,88,0,50,0,128,255,46,0,76,0,195,255,69,0,179,255,253,255, +214,0,118,255,197,255,121,0,149,255,164,255,30,0,215,255,99,255,34,0,80,0,251,255,234,255,32,255,245,255,196,0, +127,0,198,0,38,0,28,0,80,0,25,255,31,255,19,0,46,0,83,0,60,0,216,255,12,0,163,0,155,0,190,255, +159,255,189,255,155,255,63,0,55,0,1,0,81,0,46,0,63,0,241,255,203,255,9,0,202,255,53,0,121,0,224,255, +198,255,81,0,224,255,64,255,72,0,120,0,42,0,12,0,69,255,14,0,89,0,216,255,233,0,111,0,217,254,194,255, +153,0,150,255,37,0,156,0,188,255,190,0,19,0,189,254,9,1,210,0,24,255,26,0,1,0,173,255,178,255,122,255, +228,255,252,255,187,0,134,0,166,255,240,255,2,0,81,0,238,255,88,1,74,3,28,0,105,255,191,0,68,253,95,253, +176,0,88,0,171,255,8,0,80,0,96,0,229,255,46,255,52,255,222,255,38,0,129,0,119,0,45,0,46,0,5,0, +239,255,202,255,147,255,26,255,140,255,236,0,173,0,46,255,75,255,190,0,134,0,167,255,50,255,100,255,129,0,105,255, +150,254,158,0,33,1,243,255,108,255,246,254,99,255,251,0,209,0,206,255,18,0,168,255,206,255,3,1,209,0,75,0, +142,255,223,255,181,0,204,255,236,255,220,255,33,0,239,0,86,255,107,255,154,0,28,0,160,255,205,255,10,0,242,255, +51,0,223,255,201,255,88,0,221,255,73,255,77,0,239,0,220,255,215,255,56,0,111,0,143,255,31,255,128,0,47,255, +110,255,70,1,124,0,175,255,166,255,105,0,13,0,34,0,82,0,68,255,159,255,121,255,212,255,191,0,244,255,226,255, +216,0,85,0,172,255,223,255,96,255,33,0,43,0,44,255,73,0,122,0,49,0,124,0,230,255,235,254,185,254,10,0, +65,0,228,255,112,0,187,255,13,0,82,1,115,255,107,254,111,0,39,1,163,0,233,255,124,255,39,0,137,0,52,0, +113,255,97,255,216,255,212,255,36,0,172,255,193,255,149,0,45,0,73,0,179,255,99,255,45,0,15,0,180,255,222,254, +187,255,169,0,81,0,151,0,8,0,84,0,82,0,216,255,76,0,226,255,218,255,0,0,146,255,172,255,78,0,192,255, +164,255,113,0,149,255,40,255,194,255,172,0,130,0,189,255,252,255,19,0,126,0,42,0,125,0,76,0,35,255,106,0, +8,0,237,254,116,255,100,0,77,1,93,0,181,255,212,255,42,0,239,255,41,255,69,0,92,0,133,255,56,0,93,0, +239,255,221,255,16,0,110,0,242,255,107,255,130,0,165,0,65,255,167,255,188,255,236,254,3,0,156,0,23,0,208,255, +236,255,122,0,236,255,35,255,101,255,65,0,9,1,152,0,214,255,155,255,220,255,74,0,248,255,132,255,158,255,241,255, +85,0,27,0,149,255,70,0,197,0,47,0,246,255,226,255,27,0,107,0,10,0,186,255,221,255,202,255,131,255,12,0, +31,0,6,0,193,0,198,255,49,255,26,0,73,0,75,0,142,255,231,255,92,0,115,255,232,255,228,255,16,0,149,0, +174,255,216,255,67,0,164,255,158,255,100,0,9,0,221,255,174,0,2,0,176,255,250,255,44,0,182,0,252,255,10,255, +106,255,172,0,236,0,248,255,155,255,254,255,10,0,112,255,214,255,69,0,24,0,137,0,222,255,141,255,103,0,90,255, +252,254,179,0,206,0,215,255,136,255,233,255,128,0,201,255,67,255,11,0,100,0,151,0,139,0,19,0,6,0,163,255, +120,255,49,0,151,0,251,255,178,255,34,0,220,255,220,255,0,0,204,255,230,255,232,255,251,255,152,255,43,0,138,0, +203,255,98,0,83,0,134,255,162,255,102,0,81,0,210,255,227,255,121,255,54,0,112,255,128,254,11,1,56,1,118,255, +218,255,141,0,51,0,25,0,246,255,9,0,80,0,52,255,122,255,101,0,74,0,36,0,132,255,234,255,82,0,62,0, +56,0,246,255,51,0,30,0,174,255,19,255,157,255,125,0,135,255,231,255,203,0,47,0,21,0,193,255,8,0,91,0, +241,255,97,0,208,255,0,0,132,0,59,255,174,255,98,0,174,255,255,255,122,0,228,255,52,0,135,0,192,255,176,255, +250,255,44,0,162,255,6,0,81,0,121,255,174,255,81,254,5,255,161,0,161,255,39,1,48,1,146,255,122,0,152,0, +198,255,7,0,232,255,116,255,107,0,178,0,114,0,93,0,166,255,188,255,24,0,28,0,224,255,196,255,23,0,34,0, +56,0,59,0,106,255,246,255,1,1,215,254,167,254,88,1,209,0,182,255,254,255,225,255,37,0,43,0,233,255,37,0, +199,255,252,255,87,0,131,255,242,255,121,0,243,255,234,255,20,0,209,255,231,255,173,0,13,0,132,255,1,0,209,255, +18,0,213,255,170,255,121,0,253,255,182,255,23,0,215,255,31,0,58,0,29,0,80,0,66,0,171,255,71,255,29,0, +26,0,36,0,107,0,11,0,11,1,119,0,176,255,249,255,6,255,84,255,201,255,143,255,34,0,211,0,225,255,126,255, +191,0,179,255,141,255,118,0,183,255,40,0,129,0,229,255,107,255,162,255,21,0,80,0,122,0,185,255,231,255,50,0, +165,255,250,255,184,255,180,255,89,0,247,255,190,255,70,0,56,0,106,255,187,255,143,0,76,0,21,0,26,0,236,255, +232,255,224,255,241,255,5,0,67,255,127,255,25,1,218,0,212,255,183,255,189,255,57,0,105,0,11,0,46,0,201,255, +132,255,164,0,37,0,67,255,29,0,242,255,168,255,234,255,171,255,2,0,5,0,87,255,245,255,74,0,96,0,50,1, +13,0,153,255,220,255,249,254,192,255,207,0,237,255,138,254,170,0,56,2,218,255,42,255,177,255,91,0,170,255,74,254, +93,255,171,0,76,1,24,0,89,255,170,0,47,0,83,255,192,255,255,255,78,0,76,0,238,255,58,0,137,0,120,0, +200,255,147,255,70,0,234,255,210,255,49,0,7,0,25,0,218,255,191,255,36,0,176,255,171,255,194,0,13,0,37,255, +39,0,39,0,226,254,141,255,199,0,66,0,65,0,184,255,195,255,227,0,243,255,175,255,164,255,149,255,128,0,70,0, +45,0,72,0,159,255,110,255,148,0,86,1,80,0,102,255,136,255,82,255,214,255,197,0,141,255,92,255,151,0,43,0, +157,255,9,0,190,255,100,255,179,0,86,0,107,255,111,0,159,0,247,255,199,255,47,0,217,255,173,255,103,0,246,255, +169,254,128,255,15,1,67,0,74,0,34,0,225,255,242,0,207,255,28,255,78,0,131,0,196,255,38,0,226,255,228,254, +24,0,134,0,217,255,178,255,23,0,123,0,193,255,115,255,74,0,147,0,208,255,2,0,88,0,100,0,44,0,124,255, +220,255,53,0,22,0,209,255,115,0,113,0,128,255,6,0,50,0,45,0,224,255,254,255,70,0,149,255,211,255,178,255, +147,255,108,0,162,0,25,0,180,255,108,255,233,255,130,0,5,0,251,255,199,255,122,0,210,0,94,255,108,255,50,0, +55,0,6,0,168,0,2,0,67,255,136,0,111,0,26,0,23,0,255,255,22,0,231,255,194,255,0,0,121,0,92,255, +138,255,13,1,162,0,190,255,202,255,102,0,4,0,144,255,198,255,24,0,254,255,113,255,51,0,143,0,128,255,159,255, +42,0,255,255,93,0,243,255,191,255,119,0,25,255,205,254,10,1,237,0,160,255,101,0,106,0,156,255,230,255,55,0, +27,0,192,255,47,0,172,255,84,255,109,0,77,0,91,0,27,0,179,255,40,0,133,0,252,255,88,255,239,255,141,255, +219,255,211,0,114,0,104,255,143,254,198,255,225,0,105,1,157,0,251,254,197,255,62,0,227,255,57,0,97,0,211,255, +216,255,18,0,121,255,249,255,157,0,111,0,195,255,132,255,135,0,19,0,21,255,139,255,29,0,39,0,121,255,220,255, +72,0,137,255,128,0,170,0,133,255,179,255,61,0,141,0,24,0,225,255,54,0,70,0,126,254,242,253,93,0,64,0, +32,1,229,1,157,255,177,255,202,255,166,255,143,0,106,0,56,0,22,0,198,255,45,0,21,0,142,255,237,255,178,255, +202,255,168,255,208,255,176,0,171,255,255,255,51,0,123,255,74,0,72,0,243,255,202,255,99,255,248,254,21,0,73,1, +214,255,135,255,234,0,178,0,51,0,42,0,94,255,236,255,73,0,152,255,161,0,122,0,154,255,186,255,179,255,228,255, +221,255,176,255,132,255,16,0,136,0,65,0,51,0,192,255,185,255,49,0,211,255,241,255,176,0,35,0,243,255,44,0, +121,255,222,255,77,0,18,0,211,255,184,255,14,0,162,255,6,0,157,0,193,255,184,255,84,0,54,0,226,255,39,0, +3,0,155,255,234,255,236,255,9,0,205,255,164,255,20,0,145,255,231,255,231,0,98,0,2,0,35,0,128,255,189,255, +223,255,60,255,55,0,43,0,7,0,185,0,5,0,183,255,142,255,94,0,3,0,178,254,44,0,146,0,2,0,182,0, +1,1,155,255,30,255,49,0,15,0,9,0,129,255,187,255,97,0,72,0,154,255,208,252,172,255,157,3,15,0,101,254, +51,0,219,0,151,0,53,0,176,255,0,0,251,0,165,255,135,255,211,0,133,255,240,254,163,255,252,255,242,255,165,255, +139,0,217,0,244,255,224,255,10,0,1,0,16,0,47,0,152,0,104,0,161,255,189,255,90,0,124,0,125,255,78,255, +116,0,54,0,255,255,17,255,216,254,186,0,116,0,233,255,101,255,163,0,19,2,179,254,135,254,140,0,232,255,94,0, +38,0,223,254,131,255,26,1,178,0,224,255,230,255,190,255,36,0,253,255,15,0,133,0,251,255,200,255,94,255,6,255, +221,255,38,0,87,0,77,0,239,254,24,255,163,0,244,0,36,0,198,255,68,0,221,255,131,255,20,0,35,0,160,255, +232,255,202,0,96,0,67,0,131,0,155,255,119,255,18,0,114,0,79,0,230,255,209,255,113,255,178,255,39,0,176,255, +81,0,92,0,71,255,125,255,76,255,243,255,2,1,252,255,182,255,243,255,17,0,155,0,48,0,200,255,233,255,243,255, +97,0,130,0,127,255,108,255,56,0,243,255,189,0,26,1,139,255,8,0,143,0,202,255,241,255,214,255,64,0,60,0, +147,255,222,255,162,255,184,255,213,255,204,255,18,0,248,255,59,0,3,0,66,0,247,255,235,254,197,255,66,0,65,0, +24,0,25,0,114,0,217,255,69,0,34,0,71,255,215,255,65,0,218,255,218,255,182,0,235,255,144,255,1,1,173,0, +1,0,237,255,113,255,122,255,73,0,60,0,251,255,102,0,240,255,253,255,26,0,248,255,41,0,186,255,203,255,168,255, +126,255,10,0,171,0,160,0,183,255,127,255,16,0,156,0,230,255,120,255,84,0,128,0,42,0,161,255,233,255,52,0, +143,255,115,255,215,255,54,0,150,0,231,0,9,0,167,255,69,0,82,0,175,0,43,0,205,255,80,0,241,255,125,255, +108,255,60,0,87,0,251,254,232,253,63,254,55,1,104,2,64,0,201,255,28,0,14,0,48,0,199,255,71,0,175,0, +216,255,214,255,63,0,20,0,33,0,222,255,171,255,225,255,102,0,186,0,127,255,117,255,250,255,175,255,208,255,91,255, +84,0,191,0,38,0,11,255,106,254,246,1,136,1,57,255,236,255,9,255,195,255,54,0,135,0,198,0,177,255,182,0, +185,255,238,254,121,0,129,0,122,0,248,255,203,255,154,0,82,0,233,255,115,255,15,255,130,0,191,0,108,255,50,0, +29,0,164,255,107,0,198,255,87,255,65,255,203,255,234,0,141,0,189,255,66,255,48,0,128,0,145,255,21,0,102,0, +196,255,62,255,230,255,173,0,103,0,202,255,36,255,233,255,177,0,68,0,232,255,194,255,128,255,5,0,132,0,87,255, +230,255,22,1,127,0,0,0,211,255,81,0,253,255,118,255,168,255,220,255,119,0,162,0,141,255,255,254,169,0,67,0, +51,255,253,255,192,255,15,0,130,0,58,0,194,255,232,255,226,255,224,255,135,0,43,255,74,255,9,0,241,255,22,1, +7,0,106,255,193,0,107,0,122,255,192,255,33,0,102,0,72,0,248,255,88,0,180,255,186,255,41,0,221,255,55,0, +82,0,252,255,67,255,52,0,165,0,23,255,243,254,150,255,95,0,123,0,77,0,10,0,141,255,244,255,162,0,154,0, +214,255,4,0,1,0,29,0,187,0,115,0,43,0,148,255,213,255,204,255,155,255,56,0,156,255,162,255,16,0,237,255, +194,255,202,255,15,0,214,255,233,255,11,0,248,255,202,255,231,255,106,0,10,0,225,255,124,0,25,0,210,255,69,0, +3,0,94,0,30,0,101,255,77,0,66,0,21,0,65,0,185,255,228,255,31,0,207,255,2,0,65,0,145,255,50,0, +144,0,101,255,100,255,226,255,198,0,218,0,15,0,171,255,30,0,205,0,223,255,229,255,152,255,134,255,253,0,242,255, +128,255,12,0,31,0,118,0,53,255,250,254,106,0,229,0,153,0,241,255,254,255,176,0,209,255,64,255,251,255,206,255, +49,0,111,0,242,255,154,0,65,0,17,255,203,255,84,0,188,255,105,0,147,0,248,255,90,0,4,0,126,255,47,0, +123,0,204,255,129,255,243,255,79,0,82,255,91,255,246,0,91,0,191,255,234,255,252,255,97,0,209,255,210,255,42,0, +23,0,241,255,19,0,35,0,173,255,22,0,57,0,229,255,193,255,32,0,62,0,156,255,62,0,200,0,35,0,143,255, +24,0,95,0,182,255,199,255,252,255,79,0,40,0,177,255,214,255,81,0,77,0,196,255,2,0,1,0,243,255,132,255, +219,255,30,1,66,0,174,255,221,255,57,0,91,0,221,255,40,0,166,255,126,255,248,255,158,255,209,255,66,0,83,0, +66,0,119,255,69,255,171,0,89,0,1,255,70,255,176,255,173,0,125,1,49,0,136,255,151,0,113,0,3,0,67,0, +186,255,217,255,33,0,175,255,71,0,2,0,92,255,180,0,66,0,18,255,42,0,132,0,180,255,86,255,21,0,152,0, +53,0,159,255,118,255,116,0,17,0,100,255,52,0,74,0,47,0,23,0,119,255,177,255,136,0,75,0,192,255,230,255, +46,0,248,255,178,255,192,255,141,255,254,255,53,0,248,255,26,0,132,255,160,255,81,0,36,0,3,0,221,255,240,255, +142,0,35,0,203,255,23,0,232,255,20,0,220,255,5,0,250,255,153,255,71,0,42,0,85,0,51,0,147,255,155,255, +190,255,26,0,202,255,224,255,51,0,244,255,148,255,81,0,181,0,148,255,15,0,46,0,41,0,240,255,194,254,151,255, +59,0,247,255,194,255,248,255,70,0,137,0,245,0,2,0,22,255,155,255,142,0,52,0,203,255,203,255,228,255,166,0, +44,0,25,0,76,0,172,255,107,255,172,255,59,0,220,255,38,0,166,0,12,0,234,255,161,255,135,255,37,0,164,255, +225,255,208,0,97,255,178,255,182,0,188,255,246,255,210,255,209,255,47,0,141,255,159,255,62,0,39,0,241,255,48,0, +191,255,164,255,116,0,170,0,217,255,170,255,39,0,22,0,74,0,235,255,192,255,250,255,197,255,255,255,67,0,12,0, +68,255,197,255,55,0,229,255,4,0,166,255,204,255,51,0,132,0,24,0,152,255,242,255,37,0,74,0,208,255,125,255, +167,255,82,0,13,0,12,255,58,0,53,1,156,255,177,253,128,255,222,1,140,0,45,255,143,255,67,0,154,0,209,0, +247,255,80,255,202,255,70,0,131,0,236,255,53,0,180,255,68,255,105,0,218,255,212,255,220,255,75,255,126,0,248,0, +13,0,135,255,196,255,100,0,93,0,234,255,4,0,31,0,110,0,145,255,246,254,213,0,68,0,4,255,247,255,87,0, +95,0,213,255,233,255,48,0,157,255,12,0,29,0,197,255,3,0,214,255,215,255,85,0,80,0,209,255,224,255,219,255, +133,255,67,0,157,0,121,255,177,255,203,0,12,0,189,255,85,0,225,255,151,255,201,255,232,255,189,255,1,0,80,0, +2,0,89,0,106,0,73,0,18,0,187,255,210,255,20,0,135,0,9,0,255,255,218,255,118,255,56,0,13,0,233,255, +56,0,39,0,107,255,67,255,80,0,126,0,23,0,128,255,201,255,55,0,47,0,3,0,147,255,71,0,54,0,244,255, +94,0,220,255,55,255,173,255,126,0,252,255,231,255,51,0,10,0,18,0,161,255,107,255,69,0,161,0,245,255,2,0, +173,255,250,255,127,0,189,255,40,0,230,255,114,255,61,0,123,0,193,255,152,255,28,0,220,255,51,0,23,0,11,0, +239,255,184,255,131,0,215,255,9,0,70,0,250,255,146,0,243,255,136,255,226,255,35,0,7,255,109,255,92,1,75,0, +104,255,38,0,4,0,78,255,240,255,164,0,235,255,245,255,128,0,60,0,207,255,30,0,0,0,101,255,120,255,224,255, +244,0,189,0,66,255,196,255,107,0,182,255,212,255,82,0,113,0,31,0,112,255,190,255,246,255,240,255,89,0,34,0, +33,0,126,0,76,0,225,255,156,255,204,255,69,0,243,255,116,255,255,255,9,0,51,255,244,254,97,255,93,0,151,0, +223,255,123,0,193,0,227,255,24,0,112,0,25,0,43,0,98,0,164,255,188,255,47,0,232,255,129,0,43,0,137,255, +166,255,50,0,221,0,34,0,18,0,27,0,183,255,98,0,78,0,118,255,2,0,82,0,103,255,58,0,134,0,233,255, +59,0,192,255,228,255,209,255,114,255,88,0,22,0,63,255,222,255,226,255,236,255,137,0,7,0,70,0,176,255,86,255, +89,0,2,0,76,0,24,0,20,0,92,0,204,255,2,0,150,255,249,255,45,0,117,255,239,255,80,0,66,0,84,0, +99,0,8,0,11,0,197,255,144,255,78,0,68,0,2,0,219,255,237,255,221,255,247,255,205,0,84,0,162,255,186,255, +185,255,243,255,248,255,108,255,223,255,213,0,6,0,126,255,1,0,94,0,92,0,74,255,170,255,131,0,219,255,61,0, +99,0,169,255,217,255,9,0,238,255,25,0,218,255,177,255,78,0,238,255,124,255,62,0,38,0,143,255,254,255,129,0, +63,0,28,0,17,0,219,255,223,255,18,0,11,0,206,255,209,255,158,255,32,0,77,0,161,255,103,255,130,254,203,255, +231,1,253,0,160,255,104,255,235,255,136,0,180,0,77,255,247,254,54,0,86,0,130,0,237,255,188,255,85,0,61,0, +39,0,34,0,27,0,124,255,213,255,50,0,147,255,210,255,42,0,97,0,102,0,192,255,107,255,193,255,145,255,37,0, +105,0,139,255,111,0,121,0,144,255,24,0,14,1,56,0,216,254,226,255,40,0,41,0,10,0,72,255,112,0,137,0, +117,255,29,255,143,255,100,0,179,0,134,0,161,255,85,255,60,0,198,0,134,255,26,255,212,0,217,0,195,255,198,255, +53,0,65,0,222,255,236,255,42,0,13,0,22,0,64,0,240,255,244,255,48,0,159,255,138,255,241,255,217,255,123,255, +124,255,162,0,245,0,134,255,97,255,185,0,165,0,217,255,238,255,131,255,15,255,11,0,37,1,77,0,115,255,75,0, +63,0,236,255,244,255,114,255,228,255,249,0,65,0,47,255,8,0,187,255,196,255,145,0,48,0,242,255,56,255,221,255, +223,255,38,0,237,255,207,253,152,0,98,1,146,255,36,0,5,0,149,0,90,0,244,255,135,255,196,255,152,0,4,0, +59,0,27,0,244,255,206,255,220,255,201,255,144,255,237,0,157,0,30,0,1,0,236,254,164,255,182,0,223,255,80,255, +112,0,141,0,85,0,91,0,173,255,151,255,176,255,55,0,192,255,5,255,159,255,166,255,170,0,154,0,239,255,233,0, +154,254,52,254,201,0,147,0,15,1,149,0,94,255,148,255,203,255,89,0,93,0,28,0,124,255,56,0,254,255,245,254, +185,0,157,0,213,255,223,255,186,255,36,0,137,0,147,0,251,254,67,255,83,0,59,0,78,0,28,255,193,255,196,0, +165,255,118,255,91,0,102,0,139,255,209,255,118,0,187,0,17,0,171,254,164,255,225,0,137,0,27,0,183,255,14,0, +30,0,185,255,29,0,6,0,161,255,104,0,229,255,18,255,188,0,254,255,52,255,155,0,186,255,105,255,127,255,158,255, +249,255,33,0,231,0,20,0,50,0,45,0,83,255,193,255,17,0,119,0,22,0,22,0,66,0,67,0,26,0,158,255, +38,0,81,0,101,0,175,255,161,255,43,0,178,255,15,0,155,255,173,255,63,0,72,0,142,0,175,255,139,255,194,255, +166,255,127,0,93,0,69,255,126,255,95,0,153,0,222,255,123,255,138,0,97,0,105,255,206,255,91,0,29,0,197,255, +12,0,67,0,191,255,77,255,228,255,254,255,218,255,43,0,19,0,62,0,204,255,169,255,96,0,150,0,236,255,233,254, +145,255,134,0,20,0,46,255,71,255,105,0,191,0,10,0,128,255,130,255,11,0,181,0,248,255,99,255,234,255,11,0, +19,0,44,0,85,0,54,0,64,0,27,0,156,255,140,255,253,255,46,0,39,255,105,255,46,0,91,0,1,1,104,0, +181,255,155,255,89,255,35,0,2,1,174,255,139,255,154,0,245,255,62,0,216,255,157,255,51,0,64,255,197,255,245,0, +61,0,43,255,202,255,214,255,157,255,136,0,205,255,167,255,112,0,63,0,187,255,79,255,138,255,226,255,129,0,38,0, +94,255,83,0,92,0,180,255,110,0,139,0,231,255,161,255,44,0,55,0,107,255,52,0,54,0,86,255,193,255,47,0, +50,0,193,255,245,255,33,0,189,255,218,255,17,0,0,0,218,255,228,255,244,255,86,0,35,0,49,0,55,0,142,255, +234,255,174,255,74,0,219,0,123,255,200,255,147,0,251,255,101,255,61,255,129,255,16,0,61,0,62,0,235,255,124,255, +135,255,173,255,69,0,27,0,113,255,97,255,237,255,54,0,255,255,116,0,12,0,58,0,75,0,28,255,214,255,209,0, +70,0,101,255,254,255,130,0,10,0,64,0,48,0,239,255,249,255,236,255,206,255,13,0,211,255,215,255,254,255,143,255, +67,0,5,0,139,255,46,0,70,0,182,255,108,255,232,255,86,255,193,255,59,1,11,1,195,255,31,255,63,0,98,0, +167,255,191,255,173,255,187,255,18,0,56,0,123,0,79,0,169,255,210,255,228,255,77,0,90,0,56,255,27,254,199,254, +217,1,72,1,221,254,114,255,95,0,192,0,52,0,211,255,179,255,240,255,117,0,39,0,6,0,206,255,18,0,255,255, +192,255,157,0,65,0,158,255,53,0,104,0,29,0,114,255,93,255,17,0,61,0,141,0,172,255,116,255,245,0,191,255, +3,255,43,0,100,255,165,254,1,0,217,0,81,0,96,0,26,0,212,255,86,0,39,0,165,255,177,255,61,0,88,0, +203,255,195,255,254,255,201,255,163,255,31,0,87,0,47,255,246,255,95,1,228,255,112,255,199,255,33,0,58,0,147,255, +147,255,139,255,85,0,55,0,9,0,250,255,227,255,92,0,82,255,243,255,87,0,106,0,237,255,161,254,11,0,232,255, +11,0,227,255,151,255,26,1,74,0,22,0,24,0,202,255,69,0,149,0,89,0,140,255,186,255,181,255,8,0,112,0, +147,0,186,255,106,254,231,255,95,1,44,1,219,255,74,255,168,255,81,255,161,0,36,1,199,255,136,255,7,0,61,0, +144,255,89,255,52,0,72,1,32,1,201,255,33,0,255,255,28,255,204,255,33,0,15,0,186,255,55,0,22,0,113,255, +53,0,198,255,191,0,195,0,116,255,112,0,3,0,210,255,157,255,128,255,194,0,89,0,145,255,227,255,23,0,111,255, +161,255,14,0,237,255,49,0,6,0,145,255,35,0,243,0,200,255,104,255,118,255,121,255,1,1,154,0,208,255,122,255, +223,255,230,0,36,0,236,255,109,0,175,0,222,255,87,255,32,0,111,255,105,255,151,0,84,0,99,255,132,255,91,0, +253,255,255,255,100,0,37,255,227,254,94,0,16,1,29,0,210,255,36,0,166,255,249,255,185,255,78,0,255,0,171,255, +215,255,239,255,175,255,171,255,88,0,250,0,142,255,169,255,242,255,247,255,171,0,183,0,250,255,16,255,151,255,241,254, +161,254,106,0,35,1,246,255,76,255,158,0,120,0,247,255,9,0,125,255,247,255,117,0,48,0,76,0,132,0,135,255, +88,255,34,0,21,0,202,255,223,255,111,0,64,0,173,255,147,255,92,0,101,0,133,255,162,255,183,255,124,0,105,0, +193,255,129,255,132,254,245,255,196,0,99,255,41,0,193,0,48,0,41,0,227,255,10,0,52,0,137,255,22,255,126,255, +97,0,58,0,18,0,85,0,249,255,188,255,63,0,126,0,85,255,219,255,104,0,215,255,145,0,160,255,77,255,35,0, +213,255,52,0,67,0,7,0,52,0,163,0,9,1,71,0,45,255,223,254,230,254,254,255,160,0,181,255,51,0,73,0, +128,255,126,255,187,255,159,0,130,0,67,0,70,0,36,255,8,255,61,0,161,0,52,0,24,0,63,255,45,255,40,1, +160,0,43,255,191,255,9,0,163,0,222,255,91,255,208,0,4,0,6,0,112,0,148,255,222,255,198,255,214,255,158,255, +232,255,222,0,124,0,173,255,9,255,203,255,242,255,40,255,118,255,207,255,1,1,20,1,187,255,5,0,10,0,34,0, +121,0,108,255,149,255,79,0,67,0,71,0,76,0,136,255,185,254,91,0,242,0,213,255,6,255,104,255,62,1,198,255, +201,254,128,0,65,0,131,255,2,0,58,0,153,255,2,0,233,255,18,0,76,0,1,0,178,0,64,254,151,254,109,2, +166,0,47,254,17,0,196,1,234,0,148,0,241,255,75,255,239,255,21,0,40,0,104,255,187,255,179,0,80,0,193,255, +42,255,207,255,203,255,155,255,161,0,73,0,0,0,71,0,239,255,215,255,213,255,237,255,59,0,226,255,244,255,121,0, +139,0,155,0,203,255,154,255,25,0,203,255,98,0,59,0,81,255,95,255,37,255,169,255,165,0,14,1,18,1,229,255, +50,255,235,255,4,0,206,255,255,255,230,255,248,255,244,255,55,0,74,0,34,0,53,0,244,254,181,255,222,0,21,0, +172,0,129,0,56,0,199,255,186,255,249,255,112,255,238,255,108,254,20,0,64,1,136,254,190,0,16,0,132,254,249,0, +93,0,255,255,221,0,228,255,54,255,86,0,49,0,10,255,169,255,222,0,228,255,70,255,161,1,23,0,79,254,188,0, +61,1,112,0,128,255,155,255,230,255,219,255,6,0,178,255,118,0,135,255,117,255,135,0,20,0,192,0,165,255,96,255, +114,0,213,255,53,0,128,0,153,0,243,255,243,255,155,0,146,255,25,0,61,0,84,255,112,255,198,255,99,0,37,0, +2,0,189,255,100,255,158,255,30,0,76,0,81,255,118,0,11,1,40,255,55,255,126,0,135,0,134,255,21,0,35,0, +193,255,56,0,137,255,71,0,69,0,30,0,198,0,51,255,122,255,22,0,204,255,209,0,158,0,2,255,110,254,133,0, +169,1,71,0,103,255,132,255,76,0,12,0,160,255,54,0,175,255,68,255,36,0,0,0,140,255,142,0,52,0,98,255, +239,255,56,0,211,0,50,0,236,255,169,0,184,255,128,255,120,255,212,255,98,0,180,255,163,255,196,255,153,0,208,0, +63,0,4,0,14,255,75,255,105,0,250,0,71,0,64,255,194,255,29,0,199,255,212,255,204,255,9,255,198,255,221,0, +118,0,198,0,238,255,81,255,56,0,150,255,118,255,254,255,35,0,151,0,79,0,39,0,192,255,73,255,85,0,81,0, +14,0,153,0,230,255,134,255,111,255,10,0,76,0,18,255,92,255,249,255,210,0,161,0,153,255,180,0,96,0,182,255, +184,255,170,255,125,0,224,255,243,255,65,0,106,255,214,255,103,0,66,0,30,0,47,0,156,255,128,255,75,0,30,0, +96,255,180,255,89,0,54,255,192,255,30,1,26,0,127,255,72,255,41,0,62,0,139,255,62,0,28,0,87,0,213,255, +218,255,4,1,30,0,96,255,173,255,9,0,132,255,183,255,70,255,120,254,22,1,91,1,173,255,218,255,5,0,251,255, +200,255,15,0,46,0,237,0,113,0,70,255,71,0,80,0,25,0,30,255,246,254,1,1,136,0,235,255,99,0,116,0, +15,0,55,255,89,255,203,255,37,0,63,0,109,0,216,255,40,255,24,0,55,0,44,0,255,255,180,255,86,0,205,255, +9,0,52,0,248,254,157,255,137,0,15,0,16,0,236,0,139,0,233,255,21,0,9,255,21,255,10,0,51,0,175,0, +204,255,120,255,184,0,149,0,219,255,184,255,149,255,177,255,141,0,21,0,105,255,85,0,226,255,163,255,155,0,33,0, +86,255,216,255,16,0,121,255,21,0,91,0,29,0,246,255,137,255,125,0,59,0,36,255,174,255,131,0,64,0,129,255, +111,0,8,0,111,255,130,0,59,0,14,0,131,255,97,255,191,255,68,255,172,255,35,0,51,0,128,255,210,255,192,0, +46,0,11,0,25,0,116,0,31,0,132,255,205,255,147,255,129,0,33,1,176,255,174,254,91,255,92,0,219,0,90,0, +79,255,87,0,56,0,102,255,160,0,71,0,247,255,198,255,105,255,191,0,15,1,239,255,75,255,17,0,93,0,212,255, +217,255,145,255,136,255,251,255,109,0,54,0,147,255,194,255,40,0,22,0,247,255,205,255,211,255,207,0,94,0,54,255, +255,255,56,0,18,0,26,0,236,255,45,0,248,255,132,255,61,255,226,255,106,0,19,0,0,0,200,255,222,255,203,255, +178,255,64,0,101,0,58,0,245,255,211,255,202,255,123,255,209,255,177,0,18,0,102,255,103,0,157,0,4,0,164,255, +32,0,159,0,86,255,93,255,210,0,211,0,1,0,6,0,120,0,145,255,77,255,10,0,198,255,234,255,69,0,78,255, +163,254,22,0,249,0,11,0,59,0,158,0,65,0,130,0,27,0,107,255,217,255,46,0,39,0,56,0,21,0,190,255, +222,255,68,0,117,255,86,255,139,0,216,255,88,255,195,0,219,0,228,255,179,255,17,0,118,0,31,0,134,255,31,0, +221,0,124,255,169,254,115,0,178,0,47,0,208,0,207,255,61,255,11,0,31,0,232,255,254,255,61,0,244,255,248,255, +243,255,10,0,127,0,168,255,171,255,78,0,31,0,32,0,212,255,108,255,7,255,93,255,9,0,194,0,32,1,241,255, +56,0,253,0,254,255,188,255,101,0,185,0,212,255,33,255,43,0,97,0,133,255,173,255,156,255,123,255,62,0,77,0, +236,255,175,255,163,255,146,255,202,255,182,0,106,0,23,0,140,0,60,0,148,255,173,255,197,0,3,0,31,255,106,0, +40,0,122,255,235,255,36,0,142,0,6,0,124,255,59,0,70,0,24,0,22,0,217,255,58,0,55,0,245,255,118,255, +100,255,92,0,248,255,41,0,131,0,91,255,10,0,71,0,243,254,142,255,237,0,160,0,180,255,237,255,104,0,108,0, +73,0,195,255,151,255,5,0,199,255,19,0,167,0,129,255,148,255,83,0,240,255,241,255,196,255,1,0,214,255,219,255, +56,0,126,255,227,255,18,0,165,0,243,0,236,254,7,255,59,0,94,0,160,0,119,0,247,255,159,255,169,255,212,255, +83,0,244,255,42,255,0,0,194,0,95,0,37,0,107,0,246,255,195,255,39,0,58,255,48,255,184,0,60,0,67,255, +105,0,61,0,252,254,143,255,114,0,122,0,39,0,193,0,251,0,27,0,173,255,107,255,144,255,130,255,37,0,33,1, +239,255,47,255,57,0,87,0,113,255,210,255,165,0,55,0,150,255,135,255,191,255,206,255,57,0,138,0,220,255,124,255, +157,0,21,1,167,255,42,255,48,255,14,0,109,1,57,0,80,255,190,255,82,0,31,0,47,255,161,255,36,0,153,0, +150,0,136,255,108,255,18,0,137,255,77,255,200,0,145,255,229,254,84,0,19,0,15,1,114,0,233,255,222,0,173,255, +213,255,190,255,216,255,196,0,125,0,12,0,130,255,109,0,250,255,35,255,164,255,200,255,105,1,168,0,141,254,206,255, +17,1,114,0,232,255,192,255,154,255,52,0,63,0,175,255,48,255,122,255,247,255,28,0,206,0,42,255,189,255,82,2, +67,0,234,254,23,0,200,0,154,255,136,255,190,0,112,255,250,255,102,0,140,255,62,0,254,255,63,0,179,0,45,0, +48,255,54,255,67,0,20,0,79,0,106,0,219,255,145,255,173,255,98,0,50,0,13,0,242,255,157,255,253,255,59,0, +35,0,2,0,152,0,126,0,169,255,203,255,34,0,44,0,83,255,166,255,148,0,164,255,142,255,59,0,84,0,242,255, +210,255,88,0,224,255,223,255,49,0,223,255,113,0,233,0,71,0,112,255,229,255,82,0,167,255,214,255,163,255,202,255, +207,0,183,255,178,255,208,0,154,255,162,255,66,0,185,255,108,0,222,0,87,0,164,255,112,255,247,255,200,255,214,255, +127,0,103,0,206,255,176,255,31,0,17,0,20,0,143,0,136,0,218,255,59,255,29,0,82,0,197,254,128,255,233,0, +185,0,145,0,41,0,247,255,181,255,147,255,59,0,50,0,140,255,40,255,212,255,81,0,166,255,238,255,124,0,93,0, +195,255,202,254,115,255,238,0,92,1,205,0,197,255,234,255,123,0,29,0,161,255,200,255,102,0,189,0,124,0,79,255, +216,255,183,0,54,255,144,255,59,255,205,254,19,1,115,0,189,255,47,0,67,255,159,255,177,0,105,0,131,255,52,0, +127,0,226,255,230,255,131,255,8,0,151,0,3,0,106,255,167,255,74,0,30,0,21,0,44,0,10,0,213,255,222,255, +192,255,63,0,42,1,220,255,104,255,149,255,186,255,128,0,121,255,236,255,54,0,9,0,104,0,110,255,22,0,229,255, +33,0,138,0,242,254,51,0,113,0,201,254,147,255,218,0,22,0,91,255,84,0,141,0,41,0,115,255,29,0,179,0, +99,255,60,0,193,0,211,255,138,255,245,255,112,0,199,255,163,255,206,255,101,0,216,255,219,254,95,0,84,0,129,255, +82,0,208,0,17,0,115,255,34,0,191,255,147,255,104,0,29,0,252,255,52,0,42,0,62,0,50,0,182,255,141,255, +161,0,10,1,26,255,229,254,154,0,70,0,20,0,190,255,72,255,189,255,164,255,195,0,168,0,199,255,58,0,121,255, +104,255,177,255,2,0,221,0,124,0,4,0,225,255,173,255,169,255,178,255,195,255,129,0,101,0,17,255,34,255,192,255, +123,0,64,0,146,255,137,0,135,0,84,0,64,0,70,255,254,255,184,0,1,0,39,0,189,255,90,255,154,0,44,0, +240,255,72,0,71,255,6,0,198,0,4,0,111,255,238,255,24,0,143,255,55,0,205,255,169,255,74,0,103,0,31,0, +136,254,197,255,95,1,16,0,86,255,224,255,253,0,179,255,23,255,28,1,102,0,203,255,111,0,184,255,50,0,136,0, +243,255,35,0,166,255,179,255,240,255,158,255,81,0,247,255,128,255,14,0,227,255,48,0,164,0,21,0,121,255,172,255, +99,0,93,0,106,255,24,255,221,255,170,0,214,0,228,255,105,255,109,0,214,0,96,0,89,255,131,254,201,255,217,0, +230,255,83,255,247,255,222,0,142,0,111,255,250,255,120,0,208,255,66,0,227,255,80,255,104,0,42,0,177,255,229,255, +237,255,117,0,21,0,169,255,195,255,175,255,245,255,52,0,132,0,27,0,51,255,245,255,163,0,176,255,0,0,187,0, +227,255,225,255,131,0,28,0,242,255,118,0,238,255,101,255,254,255,226,255,126,255,11,0,219,0,148,0,217,255,116,255, +93,255,229,255,207,255,195,255,67,0,134,0,32,0,119,255,255,255,40,0,105,255,118,255,51,0,76,0,125,0,100,0, +81,255,84,0,184,0,131,255,144,255,184,255,139,0,119,0,115,255,100,255,205,255,167,0,120,0,140,255,200,255,136,0, +106,0,42,0,40,0,183,255,95,255,164,255,59,0,46,0,133,255,21,255,239,255,24,1,152,0,211,255,10,0,33,0, +145,255,218,255,18,0,193,255,120,0,71,0,84,255,110,255,66,0,150,0,228,255,222,255,94,0,70,0,178,255,67,255, +16,0,42,1,125,0,67,255,189,255,46,0,149,255,26,0,139,0,91,255,227,255,14,1,226,255,232,255,154,0,193,255, +211,255,252,255,152,255,213,255,2,0,81,0,230,255,113,255,33,0,1,0,216,255,254,255,6,0,101,0,76,0,33,0, +90,0,118,0,211,255,246,255,89,0,191,255,226,255,207,255,149,255,213,255,50,0,124,0,67,0,253,255,205,255,18,0, +196,255,164,255,48,0,254,255,148,255,199,255,130,0,7,0,231,255,234,255,179,255,250,0,152,0,209,255,151,255,41,255, +55,0,186,0,243,255,159,255,48,0,97,0,116,0,115,0,246,255,27,0,199,255,119,255,1,0,164,255,164,255,9,1, +192,0,191,255,246,255,161,255,161,255,237,255,191,255,17,0,109,0,19,0,223,255,70,0,216,255,124,255,93,0,181,0, +117,255,115,255,181,0,12,0,238,255,58,0,171,255,54,0,20,0,202,255,131,0,22,0,64,255,253,255,246,0,70,0, +142,255,255,255,224,255,4,0,109,0,220,255,18,0,21,0,193,255,34,0,121,0,105,0,59,255,33,255,240,255,209,255, +21,0,104,0,49,0,241,255,185,255,194,255,62,0,216,255,98,255,255,255,193,0,126,0,191,254,53,255,229,0,151,0, +175,255,155,255,140,0,39,0,239,255,150,0,75,0,64,0,212,255,159,255,63,0,1,0,92,255,236,255,84,0,179,255, +200,255,143,0,87,0,84,255,12,0,57,0,27,255,247,255,194,0,55,0,62,255,83,255,224,0,221,0,129,255,189,255, +157,0,54,0,148,255,69,255,158,255,66,0,116,0,116,0,236,255,198,255,114,0,124,0,184,255,181,255,189,255,232,255, +201,0,250,255,162,255,47,0,43,255,131,255,161,0,0,0,248,255,42,0,90,255,110,255,36,0,89,0,255,255,39,0, +63,0,150,255,232,255,80,0,160,0,91,0,236,255,102,0,111,255,113,255,247,0,54,0,76,255,15,0,20,0,200,255, +159,255,133,255,96,0,86,0,72,0,226,255,68,255,255,255,166,255,192,255,72,0,88,0,88,0,35,0,88,0,80,255, +150,255,8,1,9,0,42,255,51,0,144,0,240,255,18,0,205,255,179,255,249,255,21,0,105,0,31,0,13,0,174,255, +153,255,158,0,159,0,161,255,82,255,24,0,89,0,8,0,68,0,118,0,24,0,156,255,54,255,127,255,40,0,213,255, +219,255,151,0,173,0,80,0,25,0,249,255,202,255,254,255,35,0,216,255,254,255,47,0,122,255,228,255,143,0,17,0, +80,0,171,255,168,255,85,0,145,255,31,0,52,0,127,255,67,0,178,0,94,0,134,0,0,0,21,255,240,255,124,0, +81,0,98,0,225,255,173,255,226,255,218,255,253,255,113,0,232,255,133,255,236,255,14,0,49,0,14,0,220,255,55,255, +216,255,155,0,17,255,20,0,135,1,178,255,126,255,101,0,40,0,35,0,60,0,187,0,24,0,120,255,136,0,242,255, +121,255,86,0,126,0,162,255,168,254,239,255,102,0,93,255,61,0,124,0,177,255,55,0,98,0,204,255,223,255,125,0, +91,0,95,255,198,255,20,0,109,0,41,1,189,255,117,255,13,0,68,0,69,0,94,255,239,255,82,0,70,0,49,0, +164,255,2,0,65,0,226,255,152,255,222,255,254,255,94,0,56,0,83,255,67,0,213,0,219,254,102,254,0,1,69,1, +78,0,75,0,90,255,151,255,11,0,254,255,61,255,142,255,118,1,151,0,239,255,73,0,26,0,34,0,194,255,253,255, +31,0,219,255,99,255,171,255,140,0,76,0,235,255,158,255,183,255,40,0,50,0,248,255,202,255,232,255,166,255,252,255, +125,0,105,0,146,0,4,0,184,255,232,255,240,255,9,0,165,255,210,255,254,255,207,255,193,255,152,255,26,0,235,0, +102,0,241,254,4,0,22,0,183,254,212,0,124,1,66,0,132,254,8,254,16,1,82,1,137,255,12,255,70,0,39,1, +208,255,241,255,235,255,171,255,175,0,57,0,224,255,135,0,147,255,33,255,69,0,253,255,242,255,36,0,17,0,97,0, +114,255,113,255,58,0,81,0,108,0,7,0,239,255,64,0,200,255,144,255,74,0,33,0,37,0,117,0,148,255,135,255, +196,255,181,255,24,0,252,255,89,0,84,0,100,255,246,255,19,0,39,255,245,255,133,0,213,255,134,255,79,255,161,255, +227,0,211,0,188,255,7,0,115,0,30,0,234,255,23,0,25,0,244,255,25,0,231,255,166,255,84,255,90,255,232,255, +79,0,229,0,145,0,210,255,58,0,232,255,249,254,223,255,146,0,253,255,191,255,167,255,77,0,159,0,233,255,175,255, +52,0,93,0,165,255,184,255,52,0,240,255,247,255,36,0,34,255,139,255,54,1,87,0,21,0,124,0,221,255,180,255, +148,255,21,0,182,255,188,255,10,1,105,0,109,255,219,255,5,0,181,255,12,0,35,0,37,0,252,255,144,255,50,0, +57,0,169,255,167,255,161,255,199,255,75,0,124,0,198,255,42,255,194,255,114,0,253,255,30,0,142,0,54,0,248,255, +141,255,220,255,122,0,76,0,43,0,21,0,215,255,218,255,189,255,252,255,16,0,14,255,151,0,9,1,142,254,57,0, +102,1,89,255,142,255,147,0,234,255,85,255,66,0,133,0,166,255,212,255,62,0,1,0,14,0,219,255,200,255,235,255, +232,255,52,0,234,255,60,0,18,0,139,255,157,0,79,0,129,255,125,255,209,255,29,0,177,255,222,255,251,255,74,0, +119,0,242,255,74,0,1,0,13,255,108,0,57,1,32,255,191,255,42,1,26,255,250,254,0,1,192,0,104,255,45,255, +29,0,156,0,222,255,17,0,91,0,220,255,70,0,184,255,121,255,138,0,59,0,234,255,4,0,166,255,167,255,229,255, +106,0,139,0,146,255,180,255,112,0,26,0,22,0,42,0,9,0,192,255,245,255,51,0,54,255,169,255,200,0,140,0, +45,0,229,255,13,0,231,255,95,255,226,255,90,0,170,255,146,255,86,0,51,0,213,255,83,0,138,0,44,0,131,0, +139,0,222,255,3,0,153,255,52,255,94,0,65,0,118,255,85,0,19,0,93,255,61,0,161,255,64,255,167,0,124,0, +52,0,41,0,76,255,180,255,86,0,171,0,161,0,221,255,39,0,185,255,24,255,26,0,40,0,174,255,222,255,35,0, +17,0,32,0,72,0,158,255,240,255,86,0,212,255,72,255,135,254,162,255,150,0,109,0,57,1,32,1,50,0,133,255, +143,255,23,0,87,0,1,0,173,255,6,0,156,255,227,255,132,0,15,0,214,255,158,255,28,0,16,0,57,0,203,0, +182,255,219,255,50,0,175,255,236,255,195,255,149,255,73,0,147,0,146,255,164,255,107,0,21,0,153,255,184,255,160,0, +78,0,92,255,209,255,11,0,67,0,176,0,226,255,162,255,111,0,5,0,194,255,71,0,204,255,202,255,112,0,160,255, +100,255,243,0,157,0,31,255,228,255,207,0,39,0,158,255,183,255,66,0,50,0,17,255,16,0,136,1,96,0,239,255, +19,0,114,255,200,255,227,255,232,255,224,0,68,0,84,255,199,255,24,0,159,0,240,255,37,255,12,0,89,0,23,0, +182,255,228,255,130,0,201,0,133,0,227,255,248,255,6,0,147,0,78,0,108,255,48,0,251,255,195,255,222,255,89,255, +236,255,191,0,210,0,190,255,69,255,169,255,187,255,104,0,131,0,45,0,107,0,255,255,75,255,156,255,228,255,20,0, +13,0,154,255,62,0,25,0,218,255,62,0,0,0,22,0,80,255,173,255,106,0,216,255,113,0,137,0,61,0,209,255, +90,255,1,0,153,0,78,0,168,255,180,255,157,255,250,255,112,0,2,0,9,0,134,0,47,0,68,255,25,0,138,0, +228,255,189,255,248,255,124,0,110,255,89,255,82,0,172,0,82,0,148,255,135,0,31,0,123,255,191,255,90,255,0,0, +139,0,138,0,30,0,247,255,205,255,146,255,100,0,124,0,102,255,125,255,209,0,135,0,12,0,14,0,241,255,7,0, +151,255,48,0,34,0,162,255,204,255,255,255,78,0,191,255,41,0,31,0,129,255,27,0,123,0,78,0,180,255,211,255, +69,0,173,0,9,0,104,255,8,0,167,254,8,255,167,0,239,255,241,1,79,2,123,254,126,254,51,0,219,255,74,0, +69,0,104,255,33,0,23,0,146,255,135,0,6,0,196,255,89,0,212,255,120,255,131,255,65,0,58,0,87,0,82,0, +184,255,62,0,239,255,215,255,209,255,60,0,96,0,97,255,31,255,24,255,78,1,89,1,37,255,128,255,157,0,245,0, +166,255,196,255,243,255,251,255,141,0,205,255,224,255,70,255,117,255,149,0,224,255,235,254,240,255,184,0,159,255,232,255, +144,0,12,1,130,0,221,255,163,255,251,254,155,0,143,0,176,255,62,0,73,0,250,255,113,255,14,0,128,0,97,0, +161,255,204,255,122,0,102,0,75,0,130,255,16,0,146,255,249,254,238,255,243,0,250,0,45,255,227,255,79,0,104,0, +34,1,253,255,166,255,127,255,156,255,141,255,84,0,149,0,155,255,64,0,228,255,222,255,14,0,210,255,127,0,144,0, +241,255,232,254,17,255,165,0,95,1,42,0,29,0,91,0,196,254,129,255,123,0,216,255,92,0,125,0,251,255,224,255, +144,255,197,0,47,1,69,255,186,255,24,0,198,255,252,255,52,255,51,0,212,0,248,255,231,255,236,255,136,255,249,255, +159,0,102,255,140,255,186,0,81,0,59,0,59,0,26,0,205,0,226,0,32,255,232,254,43,0,45,0,52,0,16,0, +48,0,185,255,10,255,91,0,75,0,220,255,132,0,194,255,255,255,2,1,36,0,16,255,172,255,83,0,200,255,122,255, +151,255,151,0,138,0,6,255,243,255,177,0,16,0,107,0,30,0,192,255,108,0,8,0,129,255,216,0,189,0,117,255, +198,255,152,255,126,255,57,0,208,255,131,255,93,0,160,0,60,0,180,255,197,255,176,0,129,0,23,0,189,255,145,255, +109,0,239,255,48,255,186,255,126,0,91,0,125,255,29,0,77,0,230,255,81,0,207,255,49,0,128,0,133,255,228,255, +150,255,30,255,137,0,187,0,232,255,62,0,95,0,165,255,188,255,65,0,255,255,219,255,226,255,133,255,168,255,64,0, +55,0,173,255,248,254,154,255,187,0,20,0,41,0,142,0,221,255,97,255,126,255,110,0,185,255,109,255,7,1,156,0, +157,255,219,255,200,0,98,0,81,255,47,0,9,0,80,255,15,0,117,0,226,255,225,255,145,0,30,0,244,255,183,255, +109,255,141,0,151,0,172,255,52,255,2,0,166,0,47,0,100,0,217,255,44,255,233,255,171,0,236,255,213,255,226,0, +200,255,38,255,5,0,129,0,56,0,177,255,11,0,27,0,184,255,0,255,17,255,21,0,248,0,137,0,143,255,72,0, +50,0,78,0,179,255,17,255,214,0,219,255,134,255,213,0,27,0,79,255,102,255,105,0,131,0,53,0,21,0,218,255, +7,0,254,255,166,255,182,255,73,0,223,255,200,255,81,0,47,0,177,255,218,255,178,0,96,0,247,255,155,255,164,255, +94,0,239,255,90,255,131,0,57,1,113,255,91,255,2,0,59,0,159,0,153,255,56,0,251,255,114,255,72,0,152,255, +230,255,83,0,184,255,193,255,126,0,13,0,41,255,254,255,167,0,160,0,106,0,50,0,164,255,173,255,53,0,11,0, +236,255,120,255,233,255,45,0,243,255,52,0,158,255,153,255,10,0,101,0,59,0,11,0,90,0,235,255,127,255,99,255, +38,0,104,0,235,255,146,0,101,0,114,255,171,255,108,0,23,0,174,255,244,255,235,255,66,0,21,0,56,0,191,0, +129,255,195,255,145,0,191,255,63,0,110,0,208,255,89,255,56,255,73,0,163,0,21,0,107,255,66,0,217,0,55,255, +181,255,157,0,51,0,26,0,174,255,231,255,228,255,152,255,38,0,206,0,138,0,220,255,248,255,57,0,53,0,169,255, +174,255,100,0,189,255,124,255,123,0,203,255,139,255,225,0,222,255,176,255,137,0,130,255,217,255,38,0,16,0,137,0, +106,0,216,255,175,255,73,0,166,254,103,254,187,0,8,1,93,0,135,255,252,255,160,0,125,0,5,0,35,255,186,255, +102,0,219,0,47,0,145,255,132,0,247,255,217,255,163,0,75,0,136,255,133,255,14,0,35,0,124,255,48,255,68,0, +88,0,8,0,29,0,101,0,185,0,216,255,226,255,234,255,224,255,207,255,208,255,156,0,127,255,147,255,155,0,77,0, +240,255,192,255,28,0,153,255,165,255,76,0,89,0,171,255,15,255,53,0,112,0,241,255,57,0,51,0,190,255,243,255, +187,0,109,0,166,255,94,255,104,0,157,0,46,255,199,255,238,0,29,0,173,255,43,0,168,255,239,255,68,0,40,255, +210,255,100,0,226,255,168,0,150,0,223,255,218,255,144,255,39,0,100,0,112,255,197,255,71,0,73,0,171,0,249,255, +17,255,130,0,194,0,60,255,14,0,203,0,109,0,86,255,69,255,63,0,115,255,10,0,152,0,48,0,151,255,125,255, +106,1,51,0,119,254,2,0,26,1,61,0,156,255,42,0,195,255,131,0,171,0,83,255,245,255,82,0,65,0,226,255, +168,255,104,0,226,255,181,255,69,0,41,0,236,0,208,0,158,255,231,255,118,0,73,0,102,255,134,255,185,255,218,254, +70,0,11,1,252,255,220,255,130,255,163,255,106,0,80,0,219,255,249,255,236,255,65,0,218,0,29,0,144,255,220,255, +118,0,109,0,215,255,53,0,239,255,154,255,168,255,63,255,95,0,213,0,11,0,16,0,136,255,179,255,62,0,59,0, +117,0,212,255,34,255,93,255,7,0,111,0,93,0,251,255,119,0,15,1,214,255,80,255,164,255,50,0,135,0,46,255, +205,255,166,1,210,255,33,254,70,0,247,0,240,255,27,0,8,0,33,0,3,0,247,255,23,0,35,0,126,0,195,255, +163,254,119,254,138,0,22,2,167,0,184,255,144,255,196,255,98,0,135,255,197,255,238,0,218,255,2,0,96,0,68,255, +119,255,237,255,122,0,127,255,235,254,10,1,16,1,210,255,92,0,21,0,26,255,60,0,83,0,126,255,40,0,238,0, +230,0,81,255,19,255,130,255,66,0,18,1,2,0,0,0,16,0,32,0,219,255,129,255,64,0,54,0,44,0,170,255, +216,255,129,0,244,255,43,255,7,0,178,0,80,255,207,255,248,255,216,255,63,0,134,255,243,255,241,255,48,0,162,0, +222,255,47,255,96,0,125,1,33,0,126,255,165,255,123,0,27,0,77,255,130,0,95,0,223,255,198,255,203,255,20,255, +245,254,23,0,181,255,79,0,17,1,100,0,194,255,105,255,151,255,63,0,107,0,6,0,37,0,145,255,255,255,208,0, +181,255,160,255,254,255,219,255,189,0,87,0,26,254,50,255,215,1,60,1,74,255,235,254,58,0,86,0,2,0,214,255, +21,0,230,0,49,0,21,0,21,0,111,255,64,255,13,0,183,0,203,255,42,0,81,0,3,0,195,0,12,0,19,255, +163,255,166,0,136,0,195,255,132,255,10,0,97,0,252,255,252,255,19,0,186,255,119,255,1,0,81,0,172,255,201,255, +145,0,47,0,153,255,43,0,11,0,169,255,113,0,174,0,146,255,29,255,72,0,183,0,252,255,162,255,100,255,174,255, +192,0,148,0,245,255,219,255,144,255,74,0,65,0,150,255,59,0,169,0,252,255,87,255,208,255,205,255,61,0,94,0, +103,255,232,255,242,255,70,0,93,0,9,255,185,255,167,0,193,255,48,0,137,1,57,0,41,255,213,255,52,0,120,0, +222,255,155,255,67,0,128,0,6,0,243,255,58,0,141,255,196,255,28,0,124,255,233,255,97,0,232,255,188,255,234,255, +51,0,90,0,254,255,19,0,55,0,37,0,118,0,238,255,148,255,56,0,217,255,176,255,57,0,249,255,248,255,227,255, +86,0,156,0,217,255,71,0,252,255,157,255,58,0,70,0,78,0,213,255,103,255,144,255,97,0,45,0,94,255,30,0, +133,0,22,0,162,255,28,0,38,0,164,255,101,0,149,0,37,0,214,255,7,0,3,0,70,255,40,255,159,255,224,255, +177,255,84,0,0,1,130,0,172,255,171,255,41,0,111,0,167,0,143,255,70,255,247,255,186,255,26,0,149,0,93,0, +220,255,235,255,148,255,136,255,160,0,108,0,199,255,104,255,173,255,212,0,157,0,98,255,215,255,64,0,107,255,12,0, +28,0,139,255,59,0,151,0,76,0,207,255,239,255,84,0,29,0,57,255,160,255,95,0,42,0,90,0,32,255,78,255, +232,0,146,0,13,0,153,255,217,255,161,0,183,0,133,255,113,255,142,0,220,255,227,255,244,255,99,255,17,0,84,0, +172,255,162,255,126,0,153,0,76,0,174,255,141,255,90,0,222,255,137,255,55,0,80,0,218,255,208,255,246,255,252,255, +225,255,201,255,235,255,151,255,222,255,233,255,31,0,95,0,90,255,255,255,94,255,214,254,155,0,220,255,167,255,249,0, +216,0,252,255,48,0,92,0,104,255,237,255,123,0,222,255,130,255,186,255,210,255,214,255,188,0,59,0,138,255,64,0, +82,0,7,0,242,255,34,0,15,0,252,255,71,0,81,0,196,255,110,255,13,0,17,0,0,0,72,0,250,255,189,255, +192,255,62,0,9,0,214,255,89,0,182,255,228,255,142,0,1,0,167,255,187,255,37,0,47,255,174,254,140,0,233,0, +61,0,58,0,45,0,44,0,50,0,70,0,192,255,130,255,92,0,166,0,222,255,149,255,207,255,176,255,201,255,84,0, +95,0,249,255,156,0,59,0,168,255,19,0,187,254,95,255,5,1,148,0,96,0,225,255,228,255,90,0,107,0,70,0, +235,255,206,255,186,255,145,255,115,255,189,255,83,0,159,0,94,255,187,255,67,1,243,255,172,255,12,0,45,0,84,0, +144,255,223,255,219,255,189,255,37,0,126,0,21,0,126,255,42,0,212,255,85,255,40,0,99,0,170,255,250,255,110,0, +59,0,64,0,135,255,165,255,37,0,249,255,179,255,210,255,136,0,84,0,210,255,188,255,23,0,56,0,132,0,28,0, +137,255,100,0,201,255,161,255,237,255,60,0,154,0,244,255,193,0,30,0,172,255,101,0,166,255,238,255,84,0,106,255, +109,255,90,0,31,255,14,255,95,0,105,0,172,0,196,255,112,255,220,255,31,0,51,0,59,0,109,0,199,255,112,0, +107,0,129,255,123,255,24,0,178,0,214,255,245,255,92,0,1,0,180,255,126,255,40,255,130,255,249,0,144,0,231,255, +158,255,91,255,25,0,116,0,96,0,28,0,97,0,227,255,123,255,0,0,250,255,243,255,234,255,159,0,121,0,144,255, +230,255,84,0,1,0,230,255,98,0,197,255,210,255,119,0,181,255,186,255,248,255,143,255,83,0,154,0,186,255,1,0, +199,255,138,255,68,0,76,0,92,0,219,255,150,255,181,255,192,255,171,0,35,0,101,255,82,0,81,0,6,0,39,0, +230,255,234,255,117,255,252,255,203,0,233,255,171,255,162,255,200,255,58,0,5,0,185,255,24,0,5,1,68,0,24,255, +153,255,71,0,172,255,206,255,125,0,198,255,35,0,173,0,6,0,123,255,114,0,53,0,81,254,130,255,114,0,135,0, +111,0,50,0,50,0,213,254,146,0,96,1,163,255,255,255,1,0,143,255,180,255,67,0,206,255,4,0,126,0,137,255, +178,255,40,0,136,0,254,255,175,255,245,255,25,255,198,255,152,0,43,0,223,255,9,0,157,0,62,0,216,255,60,0, +41,0,181,255,137,255,232,255,39,0,214,255,229,255,17,0,96,0,127,0,48,0,47,0,165,255,178,255,48,0,4,0, +201,255,152,255,72,0,68,0,118,255,213,255,146,0,71,0,96,255,29,0,212,0,246,255,191,255,224,255,3,0,35,0, +148,255,174,255,40,0,16,0,240,255,241,255,5,0,229,255,3,0,59,0,92,0,22,0,172,255,38,0,66,0,17,0, +137,255,185,255,193,0,12,0,181,255,100,0,142,0,232,255,223,255,56,0,122,255,168,255,100,255,19,0,58,1,56,255, +23,255,225,0,89,0,125,255,49,0,94,0,228,255,40,0,245,255,144,255,125,255,237,255,96,0,71,0,13,0,195,255, +4,0,11,0,20,0,103,0,25,0,160,255,147,255,253,255,1,0,248,255,82,0,48,0,15,0,6,0,179,255,45,0, +111,0,215,255,21,0,246,255,196,255,20,0,184,255,201,255,68,0,105,0,212,255,125,255,216,255,238,255,47,0,210,255, +225,255,143,0,207,255,211,255,208,0,36,0,61,255,219,255,34,0,128,255,182,255,54,0,92,0,34,0,187,255,56,0, +78,0,17,0,42,0,169,255,177,255,213,255,232,255,61,0,39,0,11,0,111,255,161,255,65,0,228,255,16,0,82,0, +94,0,91,0,240,255,149,255,225,255,58,0,1,0,47,0,223,255,199,255,11,0,161,255,114,0,7,0,34,255,91,0, +7,0,139,255,138,0,95,0,159,255,198,255,46,0,241,255,242,255,89,0,243,255,175,255,19,0,14,0,21,0,17,0, +43,0,88,0,151,255,121,255,163,255,251,255,213,0,105,0,248,255,195,255,179,255,89,0,129,0,12,0,178,255,194,255, +6,0,12,0,254,255,94,0,229,255,187,255,54,0,212,255,40,0,212,255,213,255,27,0,96,255,230,255,16,0,96,0, +99,0,235,255,53,0,185,255,181,255,50,0,67,0,84,0,130,0,170,255,104,255,73,0,42,0,26,0,21,0,3,0, +65,254,193,253,52,0,71,1,73,1,149,255,249,255,83,1,9,0,233,255,150,255,39,255,243,255,1,1,29,0,126,255, +93,0,230,255,123,0,95,0,209,255,252,255,35,0,245,0,241,255,216,254,57,255,8,0,9,0,68,0,227,0,234,255, +171,255,212,255,203,255,231,255,50,0,103,0,38,0,114,0,190,255,108,255,196,255,239,255,189,0,37,0,218,255,98,0, +58,0,88,0,160,255,89,255,59,0,9,0,44,0,45,0,99,255,171,255,240,255,161,255,32,0,30,1,231,255,15,255, +176,0,105,0,168,255,68,0,63,0,201,255,208,255,52,0,92,0,253,255,111,255,214,255,248,255,15,0,212,0,39,0, +71,255,242,255,41,0,143,255,54,0,127,0,169,255,125,255,206,255,185,255,194,255,79,0,34,0,85,0,53,0,35,0, +76,0,213,255,128,0,145,255,166,255,191,0,149,255,61,255,220,255,25,1,123,0,138,255,185,255,247,255,143,0,247,255, +250,255,108,255,174,255,39,0,224,255,172,0,74,255,120,255,132,0,53,0,249,255,171,255,216,0,72,0,124,255,236,255, +45,0,95,0,228,255,32,0,11,0,12,0,82,0,42,0,11,0,144,255,229,255,53,0,75,255,47,255,184,0,203,0, +207,255,9,0,18,0,204,255,151,255,43,0,168,0,29,0,29,0,20,0,227,255,206,255,180,255,1,0,119,0,147,0, +189,255,198,255,114,0,157,255,221,255,160,0,8,0,28,0,20,0,237,255,207,255,5,255,139,255,8,0,218,255,108,0, +232,255,214,255,164,0,163,255,76,255,41,0,64,0,4,0,209,255,189,255,212,255,139,0,140,0,199,255,194,255,228,255, +12,0,31,0,45,0,229,255,0,0,94,0,137,255,183,255,135,0,32,0,196,255,217,255,165,255,181,255,97,0,74,0, +1,0,221,255,95,255,144,255,22,0,28,0,32,0,3,0,176,255,26,0,122,0,58,0,49,0,25,0,173,255,175,255, +125,0,217,0,35,0,167,255,8,0,234,255,197,255,19,0,192,255,238,255,75,0,245,255,78,255,167,255,122,0,143,255, +81,255,125,0,66,0,88,254,244,254,133,1,155,0,169,255,120,0,37,0,218,255,56,0,63,0,221,255,29,0,128,0, +211,255,169,254,106,255,171,0,69,0,106,0,131,0,238,255,194,255,243,255,222,255,207,255,101,0,42,0,207,255,27,0, +207,255,163,255,56,0,255,255,229,255,73,0,110,255,202,255,165,0,28,0,216,255,227,255,38,0,238,255,171,255,32,0, +88,0,4,0,206,255,188,255,47,0,170,0,123,255,156,255,61,0,136,255,87,0,137,0,241,255,202,255,112,255,215,255, +82,0,26,0,161,255,38,0,124,0,249,255,82,0,9,0,119,255,245,255,221,255,250,255,156,0,253,255,70,255,230,255, +153,0,72,0,211,255,252,255,19,0,183,255,205,255,1,0,226,255,128,0,76,0,119,255,239,255,9,0,202,255,142,0, +140,0,42,255,165,255,116,0,206,255,39,0,227,255,193,255,11,0,4,255,111,255,249,0,178,0,133,255,252,255,72,0, +215,255,222,255,188,255,121,0,86,0,172,255,18,0,142,255,118,255,94,0,82,0,207,255,14,0,32,0,66,0,162,0, +2,0,21,0,69,0,151,255,2,0,10,0,234,254,59,255,191,0,148,0,167,255,89,0,121,0,185,255,242,255,22,0, +59,0,71,0,251,255,141,255,60,255,79,0,110,0,162,255,12,0,2,0,177,255,223,255,95,0,37,0,172,255,2,0, +228,255,23,0,36,0,252,255,106,0,21,0,212,255,162,255,143,255,58,0,156,0,82,0,105,255,179,255,153,0,234,255, +59,255,158,255,28,0,11,0,7,0,47,0,91,0,38,0,107,255,50,0,234,0,11,0,186,255,236,255,62,0,51,0, +141,255,148,255,247,255,252,255,162,0,213,0,162,255,131,255,13,0,13,0,94,0,135,0,252,255,136,255,196,255,171,255, +148,255,16,0,98,0,4,0,178,255,85,0,61,0,138,255,116,255,47,0,155,0,238,255,50,0,169,255,235,254,126,0, +26,1,53,0,244,255,29,0,202,255,245,255,253,255,98,254,102,254,165,0,169,1,240,0,165,255,102,255,81,0,77,0, +221,255,165,255,129,255,198,255,212,255,117,0,158,0,32,0,20,0,205,255,43,0,222,255,209,255,98,0,88,255,228,255, +206,0,231,255,57,0,139,0,171,255,246,255,62,0,101,255,252,255,153,0,11,0,40,0,54,0,49,0,229,255,136,255, +15,0,249,255,202,255,150,255,40,255,68,0,164,0,159,255,202,255,100,0,53,0,234,255,15,0,52,0,39,0,205,255, +246,255,92,0,241,255,209,255,232,255,93,0,2,0,74,255,144,0,123,0,114,255,211,255,46,0,242,255,177,255,77,0, +99,0,237,255,156,255,222,255,144,0,3,0,234,255,50,0,217,255,181,255,207,255,144,0,112,0,203,255,5,0,230,255, +63,0,134,0,182,255,221,255,249,255,220,255,58,0,183,255,63,0,65,0,71,255,56,0,80,0,102,0,27,1,146,255, +24,255,28,0,167,255,192,255,95,0,17,0,2,0,225,255,200,255,96,0,206,0,65,0,206,255,10,0,215,255,39,0, +102,0,224,255,196,255,195,255,209,255,220,255,71,0,10,0,75,255,214,255,59,0,38,0,240,255,216,255,106,0,142,0, +27,0,250,255,23,0,205,255,161,255,231,255,18,0,53,0,59,0,199,255,194,255,26,0,218,255,9,0,60,0,213,255, +9,0,246,255,55,255,200,255,154,0,78,0,46,0,252,255,238,255,166,255,236,255,152,0,104,255,219,255,246,0,62,0, +224,255,132,255,227,255,85,0,248,255,14,0,85,0,215,255,166,255,72,0,59,0,68,0,199,255,116,255,43,0,192,255, +134,255,55,0,62,0,221,255,82,0,43,0,122,255,4,0,13,0,199,255,176,255,99,255,149,255,29,0,9,0,229,255, +188,0,160,0,249,255,69,0,55,0,226,255,71,0,8,0,82,255,14,0,14,0,172,255,15,0,2,0,5,0,214,255, +9,0,41,0,185,255,225,255,134,0,100,0,177,255,197,255,240,255,185,0,129,0,19,255,138,255,16,0,37,0,90,0, +217,255,149,255,68,0,138,0,162,255,148,255,40,0,64,0,6,0,191,255,17,0,222,255,205,255,137,0,206,255,88,255, +49,0,81,0,44,0,69,255,252,254,134,0,196,0,208,255,214,255,19,0,38,0,192,0,98,0,224,255,192,255,154,255, +34,0,40,255,142,255,188,0,58,0,245,0,41,0,136,255,29,0,146,255,68,0,149,0,187,255,92,255,131,255,27,0, +142,0,53,0,3,0,1,0,222,255,86,0,225,255,246,255,148,0,184,255,228,255,118,0,254,255,156,255,252,255,102,0, +164,255,113,255,69,0,36,0,6,0,15,0,220,255,109,0,42,0,175,255,81,255,157,255,206,0,23,0,74,0,86,0, +53,255,16,0,134,0,68,0,220,255,212,255,232,255,242,255,78,0,178,255,203,255,14,0,242,255,11,0,73,0,128,0, +224,255,229,255,154,255,196,255,188,0,236,255,125,255,12,0,75,0,61,0,197,255,227,255,126,0,238,255,127,255,242,255, +246,255,95,0,22,0,158,255,89,0,92,0,219,255,215,255,47,0,233,255,180,255,25,0,208,255,196,255,61,0,119,0, +76,0,49,0,29,0,197,255,226,255,232,255,147,255,166,255,45,0,250,255,174,255,82,0,61,0,51,0,82,0,205,255, +33,0,129,0,216,255,115,255,57,0,180,0,100,0,238,255,144,255,241,255,224,255,138,255,148,255,148,255,88,0,172,0, +76,0,6,0,206,255,236,255,223,255,254,255,60,0,39,0,230,255,148,255,243,255,103,0,9,0,233,255,26,0,154,255, +158,255,120,0,95,0,230,255,42,0,145,0,82,0,116,255,66,255,11,0,62,0,7,0,107,0,33,0,155,255,239,255, +230,255,217,255,18,0,238,255,193,255,167,255,16,0,137,0,2,0,139,255,239,255,29,0,43,0,45,0,195,255,253,255, +254,255,225,255,131,0,242,255,140,255,252,255,238,255,86,0,84,0,223,255,218,255,9,0,47,0,197,255,169,255,14,0, +72,0,56,0,193,255,164,255,161,255,248,255,159,0,215,255,6,0,127,0,79,255,224,255,15,0,201,255,102,0,217,255, +69,0,95,0,248,255,248,255,142,255,218,255,201,255,75,0,114,0,116,255,225,255,84,0,194,255,194,255,7,0,215,255, +237,255,186,255,122,0,124,0,254,254,34,0,122,0,203,255,20,0,240,255,54,0,45,0,187,255,90,255,69,0,108,0, +247,255,127,0,206,255,9,0,55,255,174,254,240,0,211,0,212,255,242,255,42,0,5,0,145,255,15,0,73,0,211,255, +13,0,28,0,240,255,230,255,138,255,26,0,193,255,87,255,71,0,61,0,112,0,11,0,236,255,61,0,251,255,135,0, +185,255,115,255,47,0,38,0,24,0,150,255,189,255,79,0,254,255,42,255,112,255,22,0,66,0,158,0,8,0,142,255, +230,255,24,0,30,0,84,0,50,0,150,255,161,255,240,255,84,0,94,0,12,0,42,0,67,0,238,255,221,255,103,0, +246,255,123,255,1,0,214,255,213,255,137,0,74,0,125,255,128,255,35,0,91,0,166,255,204,255,62,0,182,255,253,255, +8,0,231,255,43,0,201,255,37,0,128,0,222,255,231,255,34,0,227,255,56,0,96,0,12,0,139,255,36,255,230,255, +110,0,34,0,12,0,8,0,245,255,236,255,235,255,22,0,215,255,145,255,249,255,220,255,103,0,96,0,132,255,79,0, +48,0,251,255,240,255,162,255,62,0,91,0,70,0,181,255,17,0,80,0,82,255,166,255,35,0,26,0,28,0,253,255, +138,255,42,0,169,0,182,255,221,255,107,0,141,0,248,255,122,255,183,255,95,0,95,0,19,255,222,255,134,0,246,255, +23,0,243,255,1,0,162,255,29,0,183,0,50,0,238,255,246,255,12,0,177,255,173,255,168,255,3,0,150,0,52,0, +198,255,159,255,45,0,63,0,160,255,210,255,86,0,95,0,90,0,97,0,51,0,70,0,197,255,143,255,167,255,183,255, +122,0,43,0,223,255,183,255,160,255,104,0,27,0,216,255,32,0,193,255,106,255,148,255,49,0,123,0,28,0,31,0, +108,0,212,255,122,255,98,0,190,0,170,255,127,255,124,0,25,0,139,255,254,255,206,255,185,255,70,0,181,255,112,255, +95,0,133,0,83,0,200,255,154,255,89,0,48,0,226,255,167,255,55,255,126,255,59,0,197,0,126,0,73,0,24,0, +150,255,241,255,175,255,75,255,46,0,61,0,248,255,87,0,107,0,33,0,32,0,51,0,143,255,107,255,25,0,104,0, +62,0,72,0,18,0,238,255,53,0,77,255,66,255,215,255,154,255,124,255,223,255,242,1,225,0,28,255,141,0,207,255, +240,255,41,0,5,255,26,0,21,0,209,255,50,0,81,255,162,255,218,0,129,0,205,255,31,0,115,0,5,0,97,255, +179,255,212,255,220,255,123,0,211,255,26,0,235,0,150,255,160,255,124,0,205,255,129,255,166,255,17,0,73,0,17,0, +247,255,94,255,142,255,96,0,134,0,21,0,182,255,113,0,60,0,130,255,221,255,255,255,60,0,47,0,246,255,114,255, +47,255,135,0,159,0,52,0,116,0,242,255,24,0,166,255,145,255,12,1,163,0,136,255,180,255,188,255,168,255,103,0, +129,0,218,255,44,0,7,0,218,255,64,0,56,0,52,0,182,255,158,255,4,0,119,0,151,0,135,255,133,255,242,255, +140,255,229,255,33,0,212,255,31,0,197,0,124,0,239,255,241,255,185,255,251,255,17,0,196,255,28,0,237,255,36,0, +133,0,238,255,228,255,162,255,240,254,109,255,88,0,164,255,127,255,18,1,216,0,39,0,238,255,104,255,184,255,25,0, +124,0,19,0,157,255,250,255,107,255,23,255,29,0,31,1,31,1,117,0,189,255,239,255,76,0,227,255,18,0,41,0, +205,255,91,255,89,255,64,0,64,0,113,255,134,255,182,0,118,0,118,255,123,0,92,0,28,255,148,255,30,0,57,0, +167,0,73,0,156,255,61,0,145,0,239,255,220,255,254,255,44,0,104,0,12,0,181,255,164,255,222,255,54,0,227,255, +74,0,119,0,13,255,118,255,43,0,43,255,189,255,138,0,74,0,76,0,30,0,84,0,3,0,8,255,114,255,91,0, +110,0,46,0,105,0,75,0,162,255,190,255,243,255,1,0,11,0,150,255,235,255,145,0,22,0,33,0,46,0,183,255, +47,0,12,0,236,255,26,0,140,255,155,255,243,255,116,0,90,0,162,255,137,255,173,255,2,0,245,255,10,0,6,0, +185,255,233,255,79,0,237,0,45,0,135,255,127,0,88,0,118,255,187,255,91,0,206,255,75,255,43,0,121,0,128,255, +190,255,83,0,84,255,209,255,182,0,24,0,252,255,236,255,63,0,24,0,121,255,39,0,79,0,230,255,162,255,253,255, +183,0,1,0,115,255,122,255,224,255,252,0,113,0,215,255,119,0,11,0,128,255,145,255,52,0,194,0,12,0,234,255, +61,0,200,255,152,255,24,0,61,0,104,255,215,255,142,0,234,255,20,0,230,255,115,255,236,255,86,0,38,0,34,255, +109,255,79,0,60,0,15,0,11,0,181,0,33,0,108,255,37,0,212,255,219,255,165,0,124,0,255,255,143,255,186,255, +50,0,27,0,48,0,237,255,131,255,27,0,51,0,39,0,44,0,214,255,247,255,162,255,10,0,141,0,224,255,239,255, +231,255,176,255,159,255,136,255,79,0,192,0,246,255,2,255,196,255,34,1,122,0,151,255,236,255,73,0,27,0,147,255, +236,255,151,0,27,0,202,255,241,255,141,255,148,255,1,0,43,0,163,0,127,0,247,255,3,0,211,255,196,255,144,255, +192,255,108,0,38,0,60,0,15,0,205,255,65,0,248,255,250,255,187,255,234,255,235,0,29,0,157,255,57,0,6,0, +201,255,245,255,252,255,27,0,65,0,107,255,191,255,241,0,241,255,178,255,144,0,54,0,35,0,19,0,107,255,236,255, +195,0,248,255,235,255,192,255,178,254,83,0,226,0,141,255,232,255,89,0,77,0,4,0,222,255,124,255,204,255,186,0, +21,0,229,255,207,255,122,255,15,0,102,0,80,0,203,255,111,0,124,0,72,255,68,0,89,0,54,255,231,255,87,0, +231,255,117,255,32,0,223,0,203,255,189,255,50,0,212,255,34,0,133,255,131,255,103,0,219,255,234,255,60,0,238,255, +0,0,14,0,44,0,8,0,246,255,52,0,23,0,38,0,245,255,247,255,92,0,179,255,242,255,148,0,221,255,234,255, +228,255,150,255,225,255,10,0,141,0,61,0,115,255,166,255,156,255,227,255,107,0,5,0,5,0,49,0,240,255,224,255, +213,255,66,0,43,0,122,255,114,255,192,255,79,0,28,0,189,255,43,0,73,0,100,0,34,0,190,255,220,255,225,255, +67,0,134,0,52,0,189,255,173,255,47,0,249,255,194,255,228,255,145,255,205,255,197,255,1,0,142,0,172,255,203,255, +60,0,214,255,77,0,40,0,182,255,231,255,255,255,204,255,174,255,35,0,71,0,51,0,255,255,25,0,149,0,115,255, +56,255,198,0,97,0,181,255,77,0,231,255,137,255,41,0,9,0,5,0,29,0,0,255,179,255,61,1,57,0,192,255, +74,0,194,255,231,255,82,0,150,255,89,255,247,255,34,0,239,255,14,0,63,0,176,255,201,255,147,0,5,0,229,255, +84,0,34,0,1,0,100,255,121,255,56,0,43,0,212,255,249,255,121,0,37,0,33,0,245,255,79,255,238,255,226,255, +226,255,44,0,229,255,239,255,0,255,216,255,73,1,15,0,143,255,238,255,93,0,131,0,54,0,248,255,191,255,36,0, +69,255,54,255,225,0,136,0,215,255,255,255,205,255,106,255,97,0,5,1,217,255,254,255,2,0,16,0,157,0,202,255, +222,255,177,255,78,255,252,255,44,0,2,0,212,255,242,255,112,255,122,255,151,0,189,0,96,0,136,255,116,255,111,0, +129,0,162,255,44,255,14,0,182,0,115,0,195,255,173,255,51,0,235,255,250,255,0,0,232,255,113,0,99,0,22,0, +106,255,88,255,120,0,71,0,139,255,250,255,10,0,215,255,58,0,20,0,241,255,39,0,13,0,222,255,201,255,28,0, +4,0,202,255,4,0,25,0,11,0,249,255,116,0,48,0,170,255,30,0,190,255,197,255,117,0,95,0,1,0,222,255, +35,0,46,0,12,0,142,255,128,255,57,0,5,0,192,255,235,255,39,0,68,0,229,255,231,255,245,255,176,255,252,255, +77,0,214,255,22,0,132,0,238,255,228,255,3,0,14,0,225,255,153,255,10,0,240,255,1,0,16,0,23,0,166,0, +206,255,165,255,83,0,185,255,199,255,81,0,94,0,72,0,141,255,40,255,7,0,140,0,13,0,228,255,99,0,245,255, +84,255,85,0,90,0,15,0,136,0,64,255,97,255,122,0,219,255,22,0,115,0,9,0,215,255,35,0,27,0,49,255, +127,255,209,0,166,0,166,255,207,255,70,0,5,0,253,255,110,0,65,0,159,255,30,0,57,0,229,255,72,0,204,255, +196,255,211,255,144,255,246,255,211,255,60,0,246,255,158,255,138,0,240,255,228,255,72,0,247,255,53,0,247,254,53,255, +30,1,244,255,148,255,241,0,122,0,2,0,215,255,170,255,9,0,40,0,81,0,250,255,206,255,92,0,51,0,241,255, +191,255,139,255,244,255,93,0,41,0,198,255,50,0,128,0,243,255,108,255,122,255,77,0,179,0,62,0,7,0,224,255, +113,255,185,255,86,0,3,0,195,255,206,255,2,0,151,0,245,255,65,255,201,255,7,0,100,0,232,0,108,0,255,255, +29,0,196,255,182,255,41,0,234,255,186,255,38,0,106,0,86,0,229,255,116,255,148,255,13,0,52,0,220,255,223,255, +92,0,111,0,20,0,207,255,61,0,57,0,97,255,153,255,52,0,201,0,184,0,136,255,106,255,171,255,0,0,51,0, +2,0,226,0,86,0,82,255,17,0,10,0,189,255,245,255,227,255,48,0,54,0,87,255,186,255,135,0,204,255,245,255, +85,0,141,255,173,255,115,0,91,0,246,255,95,0,14,0,143,255,43,0,36,0,19,0,179,255,204,255,1,1,104,0, +171,255,207,255,239,255,220,255,55,255,151,0,226,1,178,0,117,255,197,254,149,255,90,0,223,255,246,255,178,255,174,255, +92,0,78,0,8,0,207,255,185,255,196,255,253,255,13,0,156,255,173,255,201,255,199,255,24,0,36,0,18,0,254,255, +4,0,209,255,171,255,76,0,116,0,222,255,223,255,118,0,94,0,10,0,211,255,110,255,92,0,181,0,141,255,196,255, +248,255,135,255,175,255,190,255,92,0,246,0,70,0,145,255,59,255,83,255,46,0,119,0,98,0,29,0,120,255,5,0, +78,0,219,255,58,0,185,255,120,255,183,0,146,0,120,255,152,255,34,0,24,0,180,255,168,255,85,0,78,0,126,255, +240,255,111,0,247,255,221,255,248,255,15,0,209,255,171,255,65,0,81,0,206,255,192,255,40,0,33,0,239,255,250,255, +137,255,237,255,181,0,23,0,191,255,102,0,130,0,211,255,189,255,223,255,188,255,43,0,201,255,75,255,104,255,57,255, +8,0,68,0,218,255,60,0,88,0,143,0,10,0,75,255,217,255,176,0,132,0,209,255,12,0,209,255,6,0,88,0, +255,255,190,0,163,255,192,255,254,0,231,254,40,255,207,0,87,0,221,255,243,255,231,255,165,255,93,0,234,255,208,255, +140,0,48,255,236,255,11,1,241,255,246,255,252,255,6,0,79,0,209,255,183,255,213,255,210,255,85,0,64,0,255,254, +82,255,190,0,139,0,233,255,118,255,139,255,250,255,215,255,119,0,203,0,25,0,192,255,145,255,219,255,96,0,119,0, +6,0,185,255,14,0,212,255,171,255,236,255,20,0,151,0,52,0,80,255,177,255,99,0,75,0,42,0,99,0,225,255, +120,255,123,0,185,0,200,255,244,255,38,0,174,255,203,255,143,255,202,255,183,0,55,0,183,255,10,0,245,255,193,255, +213,255,84,0,141,0,245,255,140,255,252,255,132,0,124,0,254,255,179,255,234,255,9,0,63,0,28,0,175,255,171,255, +158,255,40,0,112,0,41,0,9,0,198,255,1,0,173,255,248,255,231,0,221,255,138,255,40,0,224,255,21,0,87,0, +20,0,250,255,253,255,235,255,248,255,224,255,153,255,187,255,48,0,198,0,155,0,133,255,107,255,43,0,63,0,50,0, +50,0,188,255,225,255,90,0,250,255,23,0,83,0,205,255,184,255,170,255,203,255,111,0,116,0,213,255,183,255,59,0, +1,0,232,255,48,0,163,255,207,255,79,0,229,255,244,255,67,0,239,255,171,255,229,255,130,0,113,0,104,255,103,255, +93,0,144,0,42,0,214,255,167,255,232,255,232,255,191,255,71,0,55,0,51,0,29,0,166,255,100,0,104,0,221,255, +155,255,133,255,33,0,26,0,147,255,167,255,211,0,116,0,108,255,195,255,234,254,44,255,181,0,37,1,201,0,54,0, +164,255,45,255,105,0,68,0,126,255,109,0,163,255,76,255,32,0,153,0,188,0,229,255,185,255,37,0,17,0,200,255, +10,0,29,0,187,255,251,255,224,255,248,255,95,0,21,0,19,0,7,0,222,255,193,255,142,255,187,255,25,0,146,0, +16,0,97,255,194,255,16,0,59,0,235,255,235,255,227,255,108,255,29,0,1,0,223,255,152,0,61,0,99,255,252,254, +110,0,90,1,26,0,180,255,9,0,226,255,185,255,201,255,241,255,35,0,241,255,235,255,70,0,195,255,159,255,112,0, +63,0,158,255,35,0,79,0,4,0,18,0,197,255,249,255,12,0,168,255,168,255,251,255,139,0,33,0,196,255,223,255, +140,255,131,255,149,255,27,0,213,0,186,0,190,255,28,255,247,255,187,0,35,0,142,255,35,0,112,0,4,0,253,255, +222,255,255,255,23,0,128,255,167,255,86,0,143,0,26,0,110,255,203,255,85,0,77,0,240,255,107,255,166,255,9,0, +57,0,25,0,11,0,188,0,136,0,69,0,57,0,70,255,91,255,14,0,62,0,49,0,66,0,57,0,102,255,199,255, +46,0,147,255,99,0,118,0,3,0,44,0,135,255,164,255,241,255,12,0,33,0,191,255,33,0,225,255,166,255,97,0, +28,0,218,255,12,0,7,0,69,0,48,0,210,255,46,0,54,0,116,255,228,255,73,0,132,255,125,255,218,255,71,0, +79,0,223,255,62,0,45,0,1,0,81,0,10,0,252,255,177,255,128,255,50,0,48,0,197,255,247,255,39,0,243,255, +188,255,255,255,120,0,55,0,194,255,3,0,97,0,9,0,101,255,210,255,148,0,107,0,189,255,160,255,41,0,221,255, +157,255,66,0,137,0,4,0,249,255,121,0,205,255,119,255,205,255,211,255,76,0,84,0,52,0,79,0,218,255,126,255, +25,0,160,0,14,0,119,255,199,255,47,0,181,255,230,255,225,255,72,255,109,0,51,0,32,255,77,0,219,0,17,0, +174,255,247,255,72,0,223,255,31,255,71,255,123,0,68,1,91,0,111,255,34,0,182,0,75,0,147,255,177,255,0,0, +167,255,254,255,73,0,91,0,121,0,15,0,189,255,214,255,27,0,229,255,230,255,42,0,7,0,178,255,138,255,22,0, +26,0,11,0,57,0,182,255,224,255,8,0,216,255,232,255,228,255,170,0,162,0,120,255,197,255,58,0,176,255,203,255, +29,0,8,0,49,0,9,0,210,255,41,0,18,0,245,255,241,255,182,255,230,255,169,255,155,255,15,0,175,255,222,255, +164,0,91,0,24,0,8,0,158,255,248,255,45,0,17,0,106,0,63,0,40,0,36,0,198,255,147,255,233,255,79,0, +210,255,213,255,33,0,7,0,18,0,20,0,108,0,225,255,151,255,102,0,51,0,34,0,3,0,155,255,246,255,206,255, +242,255,100,0,197,255,127,255,185,255,214,255,116,0,212,0,57,0,173,255,228,255,211,255,138,255,253,255,30,0,206,255, +242,255,24,0,106,0,181,0,14,0,130,255,1,0,36,0,227,255,116,0,111,0,202,255,220,255,235,255,181,255,92,255, +9,255,145,255,116,1,21,2,32,0,66,255,193,255,45,0,25,0,133,255,227,255,213,255,91,255,231,255,35,0,125,255, +18,0,235,0,209,255,217,255,137,0,80,0,82,0,1,0,146,255,3,255,249,255,29,1,9,0,93,255,191,255,95,0, +201,0,50,0,99,255,242,255,145,0,15,0,181,255,176,255,230,255,234,255,240,255,32,0,83,0,8,0,183,255,53,0, +106,255,62,255,52,0,44,0,46,0,250,255,6,0,95,0,177,0,255,255,104,255,140,0,52,0,80,255,219,255,80,0, +252,255,253,255,71,0,129,255,221,255,187,0,193,255,49,255,255,255,68,0,236,255,20,0,9,0,192,255,37,0,118,0, +220,255,192,255,78,0,0,0,113,255,161,255,97,0,152,0,7,0,210,255,93,0,3,0,136,255,106,0,34,0,182,255, +49,0,4,0,243,255,17,0,19,0,226,255,230,255,215,255,246,255,251,255,69,255,119,255,1,0,113,0,99,0,245,255, +65,0,36,0,166,255,190,255,37,0,236,255,44,0,146,0,207,255,169,255,239,255,239,255,17,0,19,0,20,0,221,255, +95,255,168,255,244,255,239,255,252,255,39,0,186,0,247,253,102,254,163,3,25,1,255,253,3,0,172,0,87,0,249,255, +3,0,235,255,184,0,127,0,100,255,79,0,57,0,147,255,85,255,152,255,0,0,229,255,154,0,125,0,233,255,210,255, +157,255,222,255,179,255,137,255,96,0,161,0,32,0,130,255,156,255,203,0,116,0,199,255,214,255,132,255,23,0,92,0, +108,0,147,0,224,255,198,255,14,0,14,0,41,0,181,255,34,255,213,255,68,0,253,255,20,0,221,255,229,255,195,255, +86,255,3,0,227,0,213,0,196,255,64,255,69,0,45,0,201,255,126,0,207,255,195,255,96,0,204,255,7,0,221,255, +133,255,68,0,80,0,238,255,244,255,239,255,15,0,227,255,117,255,226,255,75,0,58,0,198,255,154,255,252,255,26,0, +76,0,22,0,12,0,237,255,234,255,106,0,85,0,54,0,98,255,4,0,234,0,172,255,193,255,21,0,41,0,105,0, +132,255,41,255,56,0,77,0,151,255,112,0,103,0,110,255,115,255,255,255,99,0,214,255,26,0,124,0,205,255,241,255, +97,0,255,255,24,0,102,0,4,0,227,255,145,255,183,255,80,0,74,0,51,0,120,255,62,255,100,0,191,0,1,0, +11,0,248,255,179,255,115,0,38,0,108,255,132,255,146,255,249,255,13,0,127,255,10,0,4,1,161,0,42,0,216,255, +140,255,235,255,97,0,81,0,225,255,204,255,187,255,27,0,241,255,104,255,38,0,92,0,117,0,173,0,23,0,209,255, +234,255,228,255,237,255,162,255,129,255,69,0,7,0,139,255,111,255,195,255,123,0,228,255,59,0,133,0,35,0,115,0, +47,0,247,255,203,255,9,0,54,0,234,255,171,255,9,0,123,0,244,255,23,0,236,255,218,255,79,0,245,255,158,255, +188,255,76,0,227,255,209,255,43,0,237,255,5,0,252,255,16,0,172,255,193,255,65,0,255,255,205,255,46,0,147,0, +63,0,56,0,169,255,136,255,7,0,9,0,118,0,221,255,218,255,106,0,21,0,129,255,47,255,229,255,0,0,105,0, +195,0,176,255,123,255,237,255,225,255,195,255,17,0,95,0,36,0,211,255,9,0,30,0,15,0,244,255,191,255,28,0, +18,0,79,0,132,0,195,255,181,255,28,0,30,0,190,255,245,255,73,0,248,255,176,255,136,255,216,255,62,0,83,0, +49,0,15,0,251,255,13,0,165,255,82,255,33,0,61,0,63,0,20,0,122,255,202,255,44,0,175,0,67,0,190,255, +80,0,117,0,53,0,194,255,122,255,135,255,190,255,235,255,121,0,117,0,120,255,166,255,79,0,123,0,8,0,150,255, +24,0,101,0,231,255,100,255,209,255,161,0,81,0,116,255,222,255,48,0,8,0,52,0,198,255,18,0,3,0,172,255, +232,255,103,255,241,255,172,0,43,0,147,255,22,0,142,0,218,255,242,255,44,0,226,255,79,255,128,255,215,0,118,0, +137,255,185,255,11,0,239,255,154,255,115,0,176,0,100,255,136,255,102,0,115,0,30,0,168,255,255,255,89,0,32,0, +177,255,171,255,24,0,124,255,176,255,170,0,77,0,228,255,26,0,54,0,128,255,91,255,40,0,30,0,240,255,80,0, +68,0,191,255,243,255,72,0,30,0,99,0,226,255,14,255,247,255,25,0,139,255,208,0,237,0,203,255,180,255,197,255, +13,0,66,0,13,0,167,255,155,255,85,0,60,0,140,255,223,255,34,0,226,255,248,255,11,0,241,255,25,0,129,0, +26,0,198,255,12,0,132,255,227,255,130,0,22,0,254,255,232,255,211,255,223,255,248,255,193,255,237,255,20,0,201,255, +103,0,67,0,19,0,24,0,131,255,206,255,217,255,250,255,6,0,217,255,247,255,104,255,205,255,145,0,107,0,252,255, +82,255,26,0,3,1,255,255,132,255,38,0,97,0,171,255,150,255,115,0,0,0,30,0,151,0,3,0,6,0,189,255, +227,255,38,0,191,255,43,0,101,0,224,255,93,255,136,255,26,0,111,0,100,0,15,0,241,255,231,255,172,255,208,255, +97,0,5,0,199,255,79,0,16,0,171,255,238,255,108,0,22,0,241,255,55,0,146,255,66,255,219,255,159,0,24,0, +104,255,10,0,84,0,52,0,69,0,90,0,28,0,224,255,195,255,25,0,69,0,204,255,245,255,173,255,233,255,104,0, +198,255,182,255,163,255,226,255,55,0,78,0,107,0,234,255,251,255,34,0,207,255,209,255,70,0,46,0,210,255,246,255, +239,255,21,0,186,255,185,255,101,0,215,255,126,255,14,0,254,255,230,255,182,0,102,0,124,255,238,255,110,0,41,0, +136,255,223,255,71,0,216,255,187,255,17,0,97,0,208,255,103,255,203,255,127,0,125,0,253,255,70,0,235,255,234,255, +249,255,165,255,25,0,118,255,144,255,80,0,208,255,235,255,86,0,104,0,195,255,119,255,176,0,180,0,133,255,159,255, +199,255,183,255,114,0,119,0,202,255,215,255,24,0,235,255,27,0,7,0,81,255,138,255,117,0,203,0,224,255,136,255, +97,0,59,0,236,255,15,0,53,0,42,0,185,255,194,255,36,0,42,0,237,255,111,0,48,0,46,255,43,0,179,0, +189,255,171,255,73,0,83,0,224,255,13,0,209,255,113,255,228,255,9,0,232,255,127,255,3,0,15,1,83,0,81,255, +96,255,52,0,132,0,245,255,245,255,185,255,141,255,37,0,64,0,228,255,197,255,0,0,77,0,170,0,135,0,211,255, +169,255,241,255,53,0,51,0,8,0,250,255,239,255,26,0,28,0,35,0,107,0,163,255,83,255,129,0,111,0,227,255, +232,255,24,0,129,0,3,0,163,255,155,255,4,0,56,0,126,255,45,0,81,0,176,255,249,255,224,255,227,255,219,255, +59,0,65,0,201,255,59,0,159,255,176,255,19,1,80,0,174,255,8,0,126,255,34,0,199,0,211,255,111,255,197,255, +57,0,89,0,68,0,1,0,171,255,253,255,246,255,228,255,88,0,77,0,226,255,236,255,63,0,248,255,152,255,33,0, +244,255,124,254,82,255,120,1,53,1,254,255,129,255,161,255,254,255,91,0,236,255,156,255,58,0,47,0,79,0,59,0, +223,255,52,0,26,0,176,255,133,255,16,0,28,0,207,255,29,0,241,255,7,0,56,0,31,0,121,255,29,255,49,0, +72,0,201,255,16,0,8,0,211,255,212,255,114,0,191,0,222,255,181,255,123,0,126,0,13,0,218,255,246,255,255,255, +153,255,214,255,147,0,34,0,70,255,125,255,38,0,62,0,238,255,45,0,79,0,148,255,222,255,161,0,236,255,170,255, +64,0,216,255,160,255,224,255,42,0,158,0,65,0,219,255,176,255,206,255,10,0,204,255,71,0,137,0,11,0,7,0, +88,0,7,0,114,255,175,255,60,0,81,0,143,255,136,255,37,0,35,0,36,0,81,0,82,0,205,255,96,0,177,255, +11,255,71,1,39,0,231,254,61,0,45,0,29,0,207,255,254,255,127,0,231,255,81,255,241,255,57,0,118,255,99,0, +144,0,183,255,9,0,32,0,54,0,186,255,185,255,167,0,63,0,158,255,198,255,3,0,62,0,69,0,4,0,126,255, +163,255,62,0,1,0,59,0,68,0,180,255,34,0,39,0,202,255,32,0,83,0,210,255,157,255,226,255,14,0,33,0, +142,255,158,255,13,0,255,255,60,0,62,0,27,0,43,0,50,0,175,255,0,0,144,0,219,255,240,255,87,0,239,255, +173,255,7,0,231,255,203,255,91,0,12,0,187,255,169,255,35,0,186,0,81,0,18,0,175,255,151,255,189,255,207,255, +40,0,76,0,13,0,202,255,250,255,206,255,57,0,128,0,143,255,206,255,131,0,52,0,227,255,75,0,71,0,12,0, +68,0,170,255,76,255,0,0,58,0,238,255,230,255,214,255,74,0,135,0,233,255,19,0,28,0,138,255,133,255,213,255, +143,255,255,255,173,0,206,255,37,0,108,0,13,0,84,0,171,255,204,255,36,0,57,0,103,0,189,255,152,255,29,0, +93,0,26,0,235,255,198,255,217,255,59,0,88,0,15,0,225,255,47,0,217,255,228,255,230,255,161,255,74,0,34,0, +18,0,67,0,224,255,186,255,161,255,236,255,144,0,106,0,147,255,239,255,97,0,219,255,168,255,204,255,243,255,255,255, +49,0,21,0,244,255,141,255,145,255,54,0,159,255,224,255,109,0,242,255,5,0,130,0,25,0,87,255,56,0,44,0, +197,255,49,0,190,255,76,0,49,0,98,255,209,255,223,255,183,255,1,0,16,0,79,0,246,0,68,0,160,255,38,0, +15,0,167,255,160,255,62,0,116,0,255,255,220,255,5,0,43,0,28,0,98,0,99,0,187,255,165,255,70,0,84,0, +228,255,221,255,195,255,197,255,5,0,51,0,45,0,218,255,214,255,11,0,249,255,206,255,201,255,249,255,89,0,24,0, +157,255,184,255,226,255,250,255,168,255,244,255,119,0,14,0,53,0,49,0,162,255,160,255,220,255,230,255,43,0,148,0, +48,0,218,255,5,0,33,0,236,255,179,255,7,0,89,0,95,0,145,255,21,255,218,255,227,255,198,255,46,0,71,0, +112,0,58,0,225,255,199,255,199,255,90,0,65,0,163,255,208,255,6,0,100,0,112,0,195,255,143,255,205,255,231,255, +215,255,24,0,171,0,96,0,70,255,145,255,111,0,225,255,141,255,18,0,112,0,54,0,211,255,180,255,199,255,15,0, +1,0,32,0,8,0,237,255,84,0,173,255,124,255,190,255,9,255,51,0,196,1,255,255,206,254,85,0,165,0,19,0, +235,255,207,255,68,0,62,0,221,255,239,255,226,255,186,255,13,0,82,0,240,255,12,0,110,0,6,0,154,255,202,255, +22,0,238,255,184,255,250,255,67,0,25,0,188,255,139,255,167,255,224,255,221,255,48,0,196,0,27,0,110,255,38,0, +142,0,6,0,142,255,235,255,52,0,230,255,186,255,175,255,134,0,93,0,72,255,57,0,158,0,251,255,239,255,140,255, +152,255,17,0,229,255,252,255,91,0,210,255,228,255,69,0,179,255,196,255,38,0,53,0,206,255,173,255,10,0,12,0, +124,0,33,0,123,255,215,255,70,0,123,0,176,255,78,255,191,255,97,0,215,0,1,0,199,255,195,255,237,255,23,1, +98,0,59,255,162,255,36,0,68,0,28,0,7,0,15,0,15,0,1,0,250,255,248,255,240,255,209,255,129,255,228,255, +94,0,200,255,204,255,129,0,54,0,215,255,253,255,34,0,86,0,250,255,181,255,76,0,116,0,221,255,171,255,218,255, +211,255,5,0,68,0,71,0,20,0,185,255,175,255,5,0,116,0,255,255,118,255,13,0,77,0,244,255,219,255,243,255, +8,0,17,0,179,255,146,255,56,0,81,0,20,0,8,0,193,255,214,255,92,0,48,0,162,255,201,255,209,255,194,255, +73,0,169,0,12,0,175,255,47,0,12,0,222,255,181,255,190,255,33,0,4,0,29,0,51,0,29,0,197,255,164,255, +61,0,121,0,209,255,107,255,251,255,223,255,42,0,77,0,169,255,35,0,30,0,21,0,234,255,160,255,44,0,66,0, +212,255,142,255,103,0,83,0,212,255,29,0,240,255,85,0,240,255,198,255,87,0,44,0,53,0,194,255,105,255,211,255, +51,0,64,0,21,0,200,255,204,255,20,0,211,255,176,255,9,0,68,0,245,255,26,0,6,0,149,255,53,0,63,0, +47,0,15,0,158,255,228,255,10,0,22,0,191,255,252,255,66,0,228,255,50,0,50,0,224,255,236,255,98,0,85,0, +226,255,148,255,133,255,97,0,47,0,173,255,251,255,179,255,233,255,57,0,237,255,33,0,121,0,251,255,138,255,5,0, +73,0,241,255,184,255,31,0,77,0,85,255,83,255,119,0,46,0,134,255,25,0,212,0,62,0,99,255,28,0,128,0, +232,255,234,255,84,0,22,0,214,255,82,0,232,255,193,255,11,0,158,255,193,255,16,0,111,0,168,255,16,255,91,0, +59,0,202,255,89,0,60,0,248,255,211,255,41,0,231,0,112,0,64,255,115,255,73,0,250,255,88,255,210,255,170,0, +177,0,63,0,224,255,213,255,5,0,45,0,212,255,140,255,40,0,97,0,13,0,22,0,0,0,145,255,65,255,192,255, +149,0,135,0,54,0,176,255,131,255,75,0,29,0,239,255,218,255,187,255,145,0,96,0,46,0,81,0,63,0,242,255, +93,255,242,255,48,0,84,0,7,0,88,255,228,255,100,0,116,0,150,255,182,255,94,0,221,255,5,0,69,0,63,0, +23,0,239,255,102,255,200,255,146,0,193,255,31,0,105,0,210,255,246,255,237,255,227,255,13,0,15,0,220,255,30,0, +230,255,202,255,235,255,156,255,11,0,36,0,61,0,52,0,33,0,68,0,237,255,255,255,8,0,53,0,199,255,183,255, +94,0,251,255,231,255,253,255,27,0,43,0,163,255,103,255,12,0,136,0,74,0,59,0,235,255,208,255,213,255,13,0, +74,0,181,255,114,255,180,255,73,0,27,0,236,255,40,0,255,255,32,0,225,255,228,255,226,255,18,0,97,0,245,255, +46,0,3,0,204,255,56,0,41,0,12,0,34,0,208,255,207,255,96,0,246,255,162,255,189,255,217,255,76,0,20,0, +201,255,193,255,233,255,104,0,77,0,235,255,61,0,21,0,202,255,67,0,250,255,111,255,173,255,144,0,103,0,189,255, +41,0,46,0,29,0,181,255,184,255,101,0,30,0,132,255,131,255,111,0,34,0,181,255,75,0,236,255,182,255,208,255, +223,255,255,255,10,0,37,0,67,0,245,255,205,255,10,0,23,0,144,0,170,255,11,255,32,0,113,0,172,0,0,0, +98,255,225,255,24,0,29,0,12,0,42,0,239,255,196,255,213,255,12,0,62,0,230,255,178,255,192,255,29,0,55,0, +71,0,223,255,156,255,97,0,245,255,192,255,247,255,226,255,122,0,36,0,222,255,0,0,187,255,248,255,253,255,208,255, +25,0,25,0,236,255,5,0,10,0,46,0,9,0,12,0,132,0,212,255,78,255,0,0,70,0,3,0,17,0,36,0, +224,255,254,255,255,255,29,0,102,0,205,255,143,255,167,255,209,255,28,0,72,0,163,0,28,0,201,255,52,0,31,0, +243,255,235,255,254,255,1,0,17,0,209,255,188,255,46,0,36,0,39,0,5,0,209,255,27,0,244,255,157,255,217,255, +218,255,233,255,171,0,134,0,232,255,215,255,219,255,4,0,9,0,21,0,234,255,184,255,10,0,71,0,232,255,171,255, +58,0,68,0,247,255,5,0,247,255,3,0,79,0,88,0,195,255,137,255,242,255,60,0,10,0,251,255,254,255,235,255, +47,0,194,255,184,255,26,0,40,0,123,0,249,255,206,255,23,0,2,0,22,0,250,255,232,255,230,255,32,0,235,255, +197,255,24,0,45,0,148,0,254,255,64,255,80,255,126,255,131,0,158,0,0,0,216,255,224,255,166,0,103,0,123,255, +183,255,248,255,23,0,70,0,96,0,86,0,202,255,169,255,219,255,186,255,52,0,150,0,7,0,168,255,191,255,65,0, +77,0,129,255,228,255,43,0,204,255,127,0,50,0,104,255,169,255,242,255,67,0,6,0,194,255,38,0,145,0,92,0, +206,255,15,0,23,0,142,255,219,255,130,0,20,0,149,255,161,255,157,255,127,0,41,0,62,255,35,0,251,255,73,255, +203,255,140,0,148,0,97,0,224,255,92,255,97,0,94,0,248,255,210,255,39,255,65,0,75,0,142,255,25,0,229,255, +221,255,162,0,153,0,29,0,20,0,99,255,131,255,92,0,2,0,210,255,1,0,91,0,68,0,242,255,189,255,42,255, +180,255,160,0,106,0,236,255,3,0,67,0,254,255,166,255,11,0,252,255,30,255,184,255,82,0,224,255,88,0,150,0, +34,0,45,0,46,0,243,255,194,255,197,255,227,255,155,255,251,255,68,0,37,0,112,0,220,255,223,255,57,0,8,0, +191,255,109,255,233,255,25,0,76,0,45,0,1,0,247,255,203,255,61,0,115,255,195,255,64,0,166,255,155,0,36,0, +90,255,221,255,249,255,55,0,29,0,201,255,64,0,119,0,236,255,145,255,124,255,238,255,39,0,17,0,232,255,38,0, +159,0,134,255,152,255,117,0,247,255,102,255,72,255,47,0,89,0,230,255,136,255,224,255,57,1,195,0,233,255,7,0, +25,0,245,255,84,255,96,255,119,0,144,0,175,255,197,255,35,0,13,0,34,0,104,0,2,0,187,255,131,0,36,0, +145,255,38,0,182,255,99,255,251,255,180,255,90,0,247,255,196,253,235,255,127,1,218,255,60,0,57,0,196,0,82,1, +180,255,206,255,93,0,188,255,216,255,253,255,178,255,193,255,35,0,177,255,5,255,43,0,171,0,18,0,103,0,163,255, +49,255,111,0,243,0,76,0,199,255,252,255,234,255,66,255,90,255,252,0,82,1,215,255,162,255,38,0,14,0,180,255, +212,255,218,255,229,255,192,255,106,255,123,0,54,0,131,255,76,0,251,255,146,255,215,255,133,0,166,0,228,255,155,255, +161,255,41,0,84,0,252,255,10,0,250,255,212,255,228,255,36,0,20,0,209,255,165,255,230,255,106,0,52,0,32,0, +126,0,128,0,50,0,199,255,121,255,140,255,23,0,1,0,136,255,159,255,224,255,83,0,123,0,69,0,250,255,210,255, +125,0,122,0,126,255,194,255,245,255,103,255,1,0,130,0,118,0,254,255,93,255,17,0,37,0,164,255,65,0,85,0, +168,255,145,255,195,255,222,255,69,0,104,0,58,0,207,255,158,255,34,0,73,0,84,0,57,0,250,255,250,255,226,255, +198,255,150,255,120,255,143,255,17,0,93,0,68,0,35,0,249,255,250,255,215,255,16,0,221,255,186,255,90,0,89,0, +51,0,235,255,223,255,155,255,149,255,219,0,181,0,179,255,153,255,203,255,15,0,93,0,57,0,103,255,163,255,138,0, +86,0,241,255,225,255,165,255,123,255,255,255,158,0,213,255,127,255,190,0,75,0,160,255,98,0,2,0,225,255,53,0, +214,255,242,255,184,255,12,0,215,0,224,255,173,255,53,0,250,255,187,255,57,255,18,0,137,0,180,255,171,255,91,255, +58,0,142,1,82,0,88,255,242,255,3,0,240,255,254,255,11,0,50,0,237,255,48,0,110,0,3,0,231,255,248,255, +39,0,58,0,41,0,246,255,181,255,243,255,97,0,230,255,194,255,30,0,74,255,122,255,129,0,192,0,243,255,81,255, +113,0,51,0,167,255,231,255,233,255,23,0,144,255,162,0,8,1,117,255,203,255,84,0,4,0,18,0,45,0,237,255, +169,255,208,255,5,0,14,0,223,255,247,255,120,0,13,0,170,255,111,0,26,0,150,255,1,0,189,255,214,255,134,0, +135,0,35,0,212,255,205,255,50,0,243,255,195,255,33,0,152,255,113,255,120,255,178,255,153,0,84,0,214,255,51,0, +141,0,49,0,245,255,47,0,58,0,190,255,184,255,154,0,42,0,205,255,247,255,190,255,235,255,193,255,239,255,230,255, +174,255,190,255,0,0,114,0,90,0,98,0,166,255,180,255,151,0,38,0,235,255,217,255,240,255,255,255,245,255,9,0, +187,255,197,255,1,0,75,0,48,0,226,255,208,255,187,255,40,0,41,0,201,255,69,0,124,0,228,255,231,255,35,0, +189,255,185,255,35,0,236,255,168,255,246,255,22,0,28,0,249,255,237,255,37,0,38,0,42,0,174,255,189,255,97,0, +92,0,253,255,136,255,232,255,4,0,228,255,78,0,89,0,88,0,204,255,181,255,35,0,245,255,205,255,222,255,86,0, +91,0,219,255,154,255,7,0,253,255,178,255,35,0,126,255,8,0,208,0,199,255,238,255,240,255,175,255,241,255,183,255, +119,255,251,255,99,0,173,255,253,255,113,0,246,255,231,255,21,0,27,0,216,255,202,255,1,0,79,0,251,255,249,255, +18,0,216,255,80,0,252,255,36,0,153,255,228,254,39,0,33,0,26,0,31,0,8,0,149,0,70,0,7,0,44,0, +11,0,70,255,189,255,93,0,18,0,94,0,240,255,201,255,25,0,2,0,235,255,15,0,75,0,225,255,250,255,6,0, +124,255,185,255,62,0,162,0,217,0,233,255,101,255,54,0,213,255,21,255,31,255,165,255,145,0,131,0,217,255,200,255, +248,255,19,0,148,0,105,0,198,255,190,255,241,255,108,0,36,0,227,255,12,0,243,255,87,0,84,0,212,255,246,255, +38,0,190,255,224,255,15,0,27,0,36,0,216,255,87,0,90,0,37,0,208,255,77,255,19,0,166,0,75,0,99,255, +199,255,103,0,250,255,60,0,30,0,25,0,211,255,4,255,109,255,96,0,206,0,124,0,179,255,227,254,102,255,108,0, +60,0,234,255,0,0,14,0,230,255,54,0,158,0,20,0,241,255,130,0,41,0,215,255,63,0,202,255,37,255,6,0, +172,0,118,255,87,255,134,0,190,0,67,0,158,255,1,0,10,0,141,255,10,0,43,0,60,0,4,0,193,255,82,0, +30,0,103,255,250,255,162,0,46,0,13,0,10,0,188,255,199,255,254,255,100,0,126,0,192,255,150,255,67,0,231,255, +244,255,104,0,185,255,167,255,24,0,56,0,34,0,1,0,1,0,1,0,178,255,188,255,164,0,107,0,232,255,10,0, +193,255,7,0,117,0,19,0,180,255,221,255,195,255,34,0,109,0,161,255,217,255,70,0,36,0,67,0,83,0,10,0, +153,255,206,255,240,255,40,0,12,0,143,255,13,0,242,255,152,255,27,0,133,0,81,0,157,255,124,255,244,255,54,0, +81,0,129,0,202,255,180,254,136,255,173,0,108,0,255,255,208,255,213,255,27,0,43,0,0,0,32,0,25,0,249,255, +32,0,174,255,186,255,128,0,246,255,198,255,155,0,49,0,205,255,36,0,244,255,237,255,216,255,121,255,15,0,138,0, +200,255,108,255,212,255,64,0,99,0,229,255,182,255,2,0,32,0,46,0,40,0,3,0,235,255,214,255,170,255,255,255, +82,0,32,0,242,255,236,255,66,0,32,0,229,255,254,255,3,0,22,0,144,255,112,255,37,0,152,0,91,0,232,255, +49,0,60,0,141,255,124,255,242,255,171,255,253,255,125,0,157,255,208,255,29,0,182,255,49,0,52,0,203,255,11,0, +72,0,249,255,243,255,24,0,3,0,221,255,179,255,45,0,143,0,36,0,157,255,165,255,203,255,30,0,73,0,171,255, +11,0,55,0,101,255,226,255,128,0,253,255,178,255,254,255,15,0,39,0,36,0,242,255,18,0,46,0,254,255,183,255, +10,0,9,0,158,255,221,255,58,0,119,0,45,0,201,255,242,255,4,0,233,255,3,0,235,255,245,255,114,0,4,0, +148,255,178,255,189,255,37,0,1,0,237,255,50,0,29,0,8,0,243,255,253,255,144,255,158,255,138,0,72,0,229,255, +76,0,52,0,239,255,221,255,245,255,48,0,209,255,146,255,49,0,31,0,175,255,22,0,48,0,190,255,232,255,181,0, +106,0,116,255,119,255,10,0,138,0,9,0,190,255,17,0,212,255,239,255,234,255,194,255,209,255,12,0,71,0,242,255, +7,0,48,0,225,255,209,255,71,0,64,0,255,255,17,0,9,0,45,0,131,255,155,255,93,0,24,0,1,0,184,255, +243,255,21,0,5,0,81,0,13,0,32,0,238,255,196,255,178,255,239,255,105,0,219,255,229,255,48,0,52,0,253,255, +218,255,53,0,198,255,246,255,59,0,218,255,230,255,187,255,43,0,46,0,151,255,249,255,62,0,36,0,211,255,72,0, +149,0,214,255,8,0,247,255,232,255,241,255,156,255,244,255,156,255,194,255,88,0,71,0,17,0,214,255,219,255,172,255, +52,0,48,0,225,255,49,0,147,255,237,255,148,0,241,255,152,255,29,0,88,0,210,255,144,255,15,0,134,0,221,255, +144,255,8,0,65,0,28,0,188,255,220,255,228,255,51,0,151,0,26,0,165,255,34,0,115,0,235,255,252,255,159,255, +83,255,7,0,107,0,71,0,246,255,33,0,149,255,107,255,75,0,73,0,238,255,219,255,81,0,89,0,3,0,24,0, +14,0,177,255,167,255,8,0,252,255,68,0,62,0,215,255,230,255,14,0,33,0,169,255,164,255,238,255,83,0,75,0, +137,255,187,255,101,0,163,0,230,255,117,255,226,255,233,255,23,0,49,0,18,0,23,0,19,0,208,255,208,255,33,0, +24,0,232,255,255,255,26,0,199,255,16,0,118,0,42,0,160,255,145,255,77,0,86,0,15,0,228,255,27,0,36,0, +216,255,234,255,160,255,105,0,35,0,205,255,93,0,22,255,230,255,190,0,247,255,3,0,221,255,15,0,218,255,205,255, +12,0,11,0,40,0,255,255,62,0,41,0,173,255,232,255,73,0,3,0,15,0,11,0,183,255,49,0,46,0,25,0, +74,0,5,0,202,255,209,255,0,0,190,255,18,0,132,0,248,255,138,255,195,255,37,0,222,255,201,255,72,0,103,0, +37,0,226,255,213,255,4,0,33,0,251,255,10,0,246,255,249,255,72,0,48,0,24,0,244,255,250,255,48,0,238,255, +210,255,16,0,243,255,166,255,194,255,65,0,45,0,161,255,20,0,40,0,172,255,28,0,16,0,224,255,26,0,82,0, +27,0,186,255,47,0,0,0,177,255,230,255,253,255,5,0,208,255,85,0,42,0,230,255,107,0,131,255,167,255,128,0, +233,255,30,0,22,0,184,255,20,0,231,255,30,0,54,0,246,255,89,0,28,0,230,255,253,255,201,255,236,255,252,255, +241,255,200,255,171,255,36,0,50,0,148,255,150,255,37,0,107,0,45,0,239,255,48,0,28,0,246,255,25,0,188,255, +198,255,85,0,249,255,186,255,80,0,49,0,222,255,148,255,195,255,165,0,210,255,81,255,89,0,67,0,205,255,206,255, +229,255,252,255,41,0,76,0,48,0,43,0,244,255,167,255,217,255,1,0,207,255,12,0,60,0,251,255,0,0,248,255, +60,0,93,0,194,255,196,255,19,0,242,255,255,255,75,0,65,0,205,255,159,255,255,255,101,0,65,0,227,255,214,255, +9,0,245,255,180,255,243,255,3,0,196,255,34,0,62,0,214,255,220,255,25,0,12,0,238,255,243,255,239,255,23,0, +35,0,2,0,228,255,189,255,245,255,7,0,2,0,95,0,30,0,143,255,13,0,51,0,185,255,32,0,238,255,246,255, +110,0,216,255,218,255,236,255,6,0,55,0,5,0,245,255,148,255,36,0,94,0,218,255,0,0,202,255,208,255,2,0, +32,0,26,0,201,255,42,0,108,0,251,255,193,255,30,0,35,0,202,255,57,0,105,0,199,255,162,255,242,255,48,0, +18,0,222,255,9,0,211,255,205,255,255,255,177,255,236,255,152,0,171,0,15,0,221,255,27,0,19,0,236,255,229,255, +20,0,249,255,239,255,216,255,212,255,9,0,236,255,34,0,21,0,174,255,127,255,254,255,155,0,58,0,234,255,228,255, +11,0,2,0,6,0,62,0,254,255,226,255,199,255,254,255,21,0,191,255,221,255,81,0,93,0,227,255,245,255,29,0, +17,0,228,255,28,0,254,255,45,255,30,0,144,0,55,0,27,0,117,255,228,255,52,0,74,0,46,0,172,255,0,0, +54,0,243,255,231,255,62,0,28,0,225,255,253,255,1,0,247,255,219,255,251,255,234,255,0,0,44,0,50,0,34,0, +246,255,16,0,244,255,12,0,243,255,212,255,239,255,152,255,2,0,134,0,42,0,223,255,24,0,33,0,224,255,219,255, +241,255,236,255,255,255,68,0,254,255,11,0,226,255,234,255,73,0,52,255,47,0,222,0,164,255,51,0,64,0,3,0, +187,255,207,255,59,0,130,255,31,0,160,0,5,0,213,255,203,255,18,0,249,255,209,255,19,0,9,0,255,255,13,0, +181,255,188,255,75,0,91,0,8,0,171,255,231,255,118,0,7,0,200,255,106,0,50,0,180,255,218,255,230,255,251,255, +248,255,234,255,0,0,232,255,213,255,1,0,15,0,3,0,47,0,238,255,213,255,47,0,16,0,223,255,253,255,55,0, +251,255,216,255,39,0,57,0,255,255,194,255,14,0,254,255,217,255,77,0,54,0,223,255,0,0,29,0,208,255,5,0, +62,0,221,255,223,255,212,255,217,255,24,0,39,0,30,0,225,255,231,255,240,255,161,255,242,255,117,0,52,0,11,0, +28,0,15,0,216,255,153,255,240,255,57,0,31,0,233,255,235,255,31,0,247,255,238,255,46,0,62,0,192,255,160,255, +2,0,240,255,28,0,21,0,194,255,247,255,12,0,212,255,238,255,68,0,255,255,198,255,38,0,63,0,1,0,177,255, +202,255,72,0,72,0,3,0,245,255,208,255,196,255,4,0,35,0,2,0,230,255,230,255,10,0,42,0,231,255,236,255, +39,0,229,255,254,255,54,0,211,255,184,255,28,0,15,0,239,255,37,0,32,0,210,255,152,255,15,0,84,0,218,255, +171,255,15,0,101,0,225,255,210,255,41,0,252,255,22,0,226,255,231,255,26,0,247,255,31,0,244,255,24,0,52,0, +158,255,206,255,77,0,53,0,5,0,220,255,2,0,38,0,218,255,235,255,203,255,153,255,56,0,62,0,233,255,243,255, +245,255,37,0,52,0,25,0,201,255,182,255,27,0,223,255,172,255,4,0,37,0,44,0,1,0,216,255,33,0,30,0, +231,255,3,0,224,255,232,255,23,0,4,0,16,0,236,255,36,0,44,0,181,255,24,0,45,0,191,255,239,255,50,0, +3,0,227,255,19,0,234,255,239,255,228,255,159,255,3,0,101,0,111,0,44,0,235,255,225,255,8,0,40,0,166,255, +187,255,66,0,248,255,200,255,53,0,57,0,185,255,193,255,2,0,222,255,224,255,80,0,103,0,255,255,200,255,183,255, +26,0,108,0,19,0,224,255,221,255,238,255,237,255,228,255,63,0,47,0,204,255,218,255,234,255,27,0,54,0,29,0, +8,0,243,255,45,0,214,255,189,255,74,0,32,0,253,255,217,255,203,255,3,0,21,0,228,255,120,255,253,255,139,0, +67,0,238,255,234,255,240,255,217,255,19,0,231,255,247,255,52,0,232,255,10,0,21,0,228,255,213,255,46,0,51,0, +208,255,44,0,44,0,200,255,163,255,226,255,77,0,24,0,216,255,230,255,11,0,13,0,59,0,76,0,233,255,201,255, +215,255,14,0,8,0,238,255,25,0,6,0,252,255,255,255,8,0,230,255,235,255,28,0,212,255,222,255,12,0,29,0, +28,0,210,255,21,0,57,0,242,255,16,0,246,255,254,255,66,0,250,255,239,255,240,255,211,255,14,0,237,255,227,255, +11,0,227,255,224,255,254,255,10,0,252,255,51,0,38,0,147,255,220,255,86,0,14,0,222,255,243,255,231,255,236,255, +38,0,42,0,14,0,206,255,148,255,0,0,133,0,109,0,251,255,210,255,238,255,17,0,31,0,254,255,253,255,223,255, +227,255,40,0,5,0,231,255,246,255,250,255,37,0,38,0,7,0,21,0,252,255,238,255,14,0,230,255,199,255,235,255, +42,0,47,0,255,255,10,0,228,255,214,255,38,0,255,255,210,255,49,0,24,0,207,255,12,0,24,0,28,0,248,255, +207,255,253,255,11,0,84,0,72,0,199,255,150,255,218,255,87,0,104,0,20,0,226,255,39,0,29,0,232,255,246,255, +235,255,253,255,202,255,9,0,71,0,1,0,35,0,248,255,226,255,7,0,4,0,129,255,66,255,106,0,2,1,114,0, +213,255,200,255,235,255,217,255,242,255,238,255,48,0,43,0,239,255,18,0,253,255,21,0,21,0,226,255,245,255,26,0, +2,0,209,255,229,255,253,255,252,255,5,0,27,0,11,0,234,255,251,255,79,0,44,0,188,255,32,0,1,0,176,255, +10,0,33,0,39,0,194,255,147,255,230,255,255,255,36,0,61,0,61,0,11,0,226,255,231,255,248,255,21,0,34,0, +7,0,248,255,39,0,242,255,240,255,18,0,225,255,67,0,63,0,213,255,15,0,252,255,172,255,218,255,255,255,32,0, +65,0,245,255,213,255,230,255,4,0,23,0,0,0,244,255,216,255,8,0,32,0,248,255,214,255,241,255,61,0,244,255, +252,255,60,0,12,0,26,0,15,0,206,255,234,255,42,0,234,255,235,255,10,0,245,255,41,0,7,0,233,255,203,255, +227,255,24,0,221,255,33,0,12,0,175,255,226,255,15,0,35,0,38,0,33,0,236,255,221,255,6,0,9,0,243,255, +23,0,0,0,120,255,16,0,143,0,235,255,211,255,243,255,38,0,41,0,218,255,11,0,9,0,226,255,230,255,161,255, +122,255,182,255,18,0,22,0,40,0,117,0,78,0,42,0,254,255,222,255,34,0,20,0,11,0,249,255,186,255,249,255, +63,0,7,0,234,255,41,0,9,0,211,255,238,255,10,0,224,255,211,255,51,0,30,0,244,255,10,0,43,0,43,0, +250,255,232,255,192,255,24,0,16,0,224,255,16,0,205,255,25,0,17,0,210,255,247,255,5,0,18,0,2,0,36,0, +175,255,238,255,86,0,20,0,23,0,194,255,32,0,215,255,222,255,123,0,246,255,233,255,100,255,215,255,66,0,205,255, +49,0,199,255,21,0,36,0,204,255,40,0,235,255,34,0,3,0,234,255,36,0,10,0,6,0,243,255,65,0,226,255, +135,255,9,0,60,0,47,0,9,0,246,255,234,255,5,0,22,0,242,255,25,0,36,0,242,255,213,255,208,255,234,255, +59,0,58,0,245,255,22,0,242,255,208,255,254,255,228,255,10,0,42,0,15,0,3,0,231,255,1,0,42,0,23,0, +0,0,33,0,3,0,227,255,255,255,223,255,9,0,19,0,244,255,24,0,31,0,14,0,214,255,14,0,240,255,186,255, +30,0,21,0,236,255,186,255,31,0,51,0,8,0,69,0,135,255,255,255,138,0,2,0,12,0,201,255,247,255,246,255, +231,255,89,0,33,0,222,255,214,255,182,255,187,255,50,0,36,0,31,0,61,0,221,255,22,0,219,255,228,255,95,0, +13,0,8,0,24,0,242,255,222,255,9,0,255,255,232,255,9,0,24,0,71,0,242,255,191,255,229,255,37,0,43,0, +206,255,252,255,220,255,232,255,1,0,207,255,246,255,246,255,68,0,215,255,180,255,89,0,18,0,71,0,81,0,206,255, +218,255,252,255,23,0,1,0,235,255,247,255,15,0,30,0,12,0,240,255,221,255,248,255,252,255,19,0,41,0,219,255, +212,255,13,0,247,255,20,0,44,0,240,255,9,0,38,0,2,0,216,255,201,255,230,255,245,255,32,0,37,0,247,255, +237,255,244,255,34,0,37,0,231,255,206,255,1,0,42,0,29,0,36,0,244,255,186,255,214,255,251,255,246,255,194,255, +215,255,24,0,18,0,250,255,23,0,48,0,2,0,27,0,253,255,180,255,218,255,198,255,44,0,87,0,179,255,188,255, +12,0,68,0,14,0,191,255,5,0,35,0,5,0,203,255,6,0,65,0,201,255,192,255,58,0,94,0,23,0,245,255, +220,255,231,255,23,0,249,255,250,255,233,255,230,255,216,255,199,255,38,0,57,0,247,255,187,255,214,255,21,0,32,0, +250,255,228,255,23,0,243,255,246,255,2,0,9,0,37,0,200,255,242,255,1,0,8,0,74,0,239,255,222,255,201,255, +231,255,56,0,228,255,212,255,21,0,2,0,9,0,6,0,185,255,5,0,50,0,19,0,38,0,213,255,226,255,238,255, +213,255,17,0,252,255,220,255,244,255,25,0,9,0,2,0,255,255,236,255,26,0,52,0,249,255,220,255,50,0,201,255, +161,255,99,0,233,255,119,255,5,0,105,0,61,0,207,255,241,255,20,0,3,0,33,0,254,255,224,255,19,0,5,0, +249,255,253,255,202,255,19,0,34,0,226,255,4,0,26,0,9,0,182,255,252,255,56,0,184,255,230,255,19,0,29,0, +80,0,8,0,4,0,245,255,202,255,32,0,15,0,203,255,182,255,218,255,57,0,191,255,125,255,67,0,95,0,238,255, +250,255,41,0,36,0,254,255,180,255,188,255,30,0,103,0,68,0,238,255,255,255,242,255,2,0,13,0,172,255,226,255, +40,0,230,255,185,255,22,0,53,0,243,255,10,0,251,255,250,255,202,255,210,255,98,0,57,0,231,255,238,255,22,0, +252,255,223,255,13,0,22,0,30,0,213,255,225,255,17,0,157,255,192,255,96,0,74,0,211,255,21,0,114,0,15,0, +208,255,249,255,228,255,8,0,46,0,190,255,231,255,27,0,226,255,196,255,216,255,103,0,33,0,231,255,54,0,231,255, +7,0,20,0,222,255,250,255,255,255,10,0,230,255,200,255,39,0,78,0,251,255,245,255,23,0,20,0,218,255,1,0, +77,0,228,255,236,255,225,255,205,255,83,0,52,0,196,255,189,255,19,0,7,0,245,255,252,255,202,255,39,0,59,0, +12,0,249,255,254,255,2,0,194,255,9,0,31,0,9,0,56,0,30,0,204,255,213,255,46,0,3,0,24,0,10,0, +186,255,4,0,29,0,248,255,195,255,9,0,45,0,192,255,207,255,242,255,61,0,96,0,246,255,235,255,35,0,249,255, +233,255,34,0,48,0,231,255,147,255,11,0,85,0,32,0,16,0,189,255,227,255,254,255,14,0,1,0,142,255,49,0, +96,0,221,255,8,0,9,0,3,0,3,0,223,255,255,255,23,0,215,255,221,255,11,0,251,255,12,0,205,255,182,255, +89,0,108,0,239,255,211,255,254,255,72,0,44,0,214,255,250,255,6,0,250,255,12,0,26,0,38,0,238,255,228,255, +1,0,230,255,223,255,249,255,41,0,71,0,246,255,216,255,32,0,228,255,218,255,6,0,234,255,23,0,251,255,236,255, +42,0,19,0,33,0,45,0,189,255,201,255,14,0,194,255,77,0,120,0,149,255,161,255,43,0,81,0,235,255,5,0, +31,0,169,255,20,0,25,0,184,255,250,255,34,0,254,255,5,0,34,0,200,255,252,255,70,0,45,0,42,0,182,255, +192,255,36,0,48,0,11,0,252,255,40,0,7,0,245,255,228,255,245,255,57,0,11,0,236,255,240,255,13,0,24,0, +211,255,240,255,235,255,199,255,65,0,60,0,6,0,19,0,236,255,49,0,227,255,168,255,72,0,64,0,15,0,204,255, +223,255,45,0,222,255,6,0,58,0,231,255,215,255,30,0,5,0,221,255,46,0,162,255,38,255,86,0,5,1,37,0, +153,255,219,255,5,0,252,255,224,255,144,255,168,255,126,0,93,0,161,255,230,255,63,0,146,0,102,0,167,255,181,255, +12,0,39,0,40,0,20,0,217,255,159,255,206,255,52,0,117,0,24,0,219,255,15,0,227,255,194,255,237,255,29,0, +34,0,3,0,246,255,238,255,0,0,23,0,252,255,232,255,16,0,249,255,219,255,28,0,220,255,161,255,40,0,71,0, +12,0,37,0,48,0,11,0,200,255,194,255,253,255,22,0,21,0,251,255,245,255,219,255,246,255,76,0,28,0,253,255, +250,255,9,0,232,255,78,255,194,255,75,0,27,0,67,0,50,0,20,0,245,255,215,255,43,0,68,0,12,0,232,255, +252,255,251,255,223,255,24,0,31,0,229,255,249,255,13,0,13,0,20,0,238,255,201,255,224,255,45,0,33,0,209,255, +240,255,15,0,31,0,32,0,242,255,3,0,248,255,219,255,10,0,36,0,243,255,221,255,250,255,4,0,33,0,32,0, +232,255,207,255,13,0,51,0,236,255,240,255,3,0,253,255,25,0,2,0,244,255,248,255,10,0,250,255,232,255,243,255, +224,255,16,0,14,0,235,255,243,255,1,0,95,0,68,0,208,255,247,255,8,0,191,255,223,255,21,0,252,255,205,255, +211,255,36,0,219,255,216,255,63,0,179,255,236,255,145,0,63,0,20,0,7,0,227,255,218,255,3,0,30,0,52,0, +62,0,209,255,233,255,41,0,213,255,200,255,251,255,4,0,181,255,217,255,53,0,238,255,54,0,96,0,234,255,232,255, +241,255,253,255,30,0,56,0,237,255,144,255,247,255,66,0,72,0,252,255,152,255,201,255,0,0,50,0,13,0,249,255, +34,0,223,255,250,255,74,0,85,0,22,0,213,255,6,0,30,0,219,255,153,255,11,0,88,0,200,255,220,255,58,0, +3,0,243,255,209,255,165,255,6,0,66,0,23,0,28,0,46,0,2,0,16,0,39,0,183,255,208,255,61,0,27,0, +0,0,248,255,245,255,230,255,12,0,63,0,239,255,200,255,255,255,44,0,29,0,254,255,246,255,35,0,71,0,246,255, +198,255,211,255,243,255,253,255,18,0,43,0,227,255,21,0,47,0,0,0,39,0,2,0,4,0,3,0,211,255,7,0, +5,0,238,255,27,0,203,255,206,255,63,0,254,255,26,0,45,0,225,255,25,0,18,0,221,255,228,255,53,0,44,0, +225,255,16,0,44,0,27,0,187,255,183,255,246,255,20,0,102,0,251,255,143,255,190,255,7,0,51,0,240,255,209,255, +25,0,48,0,234,255,8,0,41,0,2,0,255,255,248,255,61,0,60,0,233,255,179,255,203,255,37,0,230,255,206,255, +225,255,230,255,82,0,61,0,8,0,1,0,191,255,213,255,21,0,30,0,50,0,26,0,187,255,190,255,57,0,74,0, +39,0,231,255,136,255,251,255,40,0,246,255,15,0,222,255,0,0,247,255,14,0,42,0,225,255,62,0,12,0,204,255, +220,255,192,255,10,0,230,255,199,255,240,255,80,0,98,0,238,255,27,0,1,0,206,255,6,0,213,255,212,255,37,0, +2,0,223,255,1,0,10,0,49,0,254,255,216,255,228,255,192,255,29,0,254,255,197,255,30,0,18,0,1,0,247,255, +241,255,19,0,50,0,19,0,200,255,231,255,11,0,232,255,19,0,78,0,31,0,250,255,187,255,159,255,243,255,31,0, +73,0,222,255,97,255,167,255,252,255,98,0,69,0,11,0,80,0,51,0,237,255,0,0,50,0,28,0,225,255,222,255, +1,0,248,255,197,255,224,255,71,0,74,0,213,255,244,255,3,0,172,255,21,0,244,255,163,255,38,0,21,0,6,0, +12,0,214,255,27,0,22,0,240,255,6,0,4,0,251,255,229,255,6,0,239,255,206,255,28,0,49,0,7,0,215,255, +238,255,36,0,244,255,235,255,59,0,38,0,237,255,236,255,184,255,12,0,71,0,218,255,240,255,17,0,62,0,24,0, +189,255,253,255,12,0,15,0,224,255,215,255,29,0,15,0,20,0,238,255,245,255,2,0,222,255,11,0,232,255,146,255, +184,255,42,0,71,0,47,0,8,0,239,255,5,0,245,255,42,0,53,0,8,0,22,0,237,255,6,0,39,0,254,255, +231,255,229,255,234,255,242,255,45,0,18,0,225,255,13,0,4,0,234,255,238,255,8,0,254,255,239,255,19,0,237,255, +242,255,37,0,7,0,254,255,235,255,248,255,17,0,232,255,227,255,233,255,9,0,54,0,52,0,24,0,216,255,191,255, +208,255,0,0,82,0,75,0,238,255,200,255,251,255,33,0,27,0,243,255,219,255,16,0,23,0,210,255,254,255,52,0, +252,255,7,0,235,255,227,255,61,0,36,0,242,255,174,255,247,255,72,0,151,255,187,255,55,0,20,0,20,0,243,255, +229,255,11,0,27,0,250,255,206,255,228,255,53,0,67,0,3,0,16,0,18,0,7,0,23,0,240,255,219,255,225,255, +11,0,12,0,196,255,213,255,11,0,17,0,248,255,232,255,0,0,14,0,17,0,40,0,39,0,247,255,234,255,252,255, +233,255,247,255,16,0,240,255,234,255,247,255,4,0,34,0,10,0,227,255,254,255,13,0,250,255,16,0,252,255,243,255, +22,0,244,255,251,255,0,0,248,255,13,0,225,255,239,255,14,0,23,0,19,0,238,255,27,0,16,0,232,255,244,255, +213,255,251,255,17,0,249,255,26,0,250,255,222,255,12,0,33,0,20,0,253,255,230,255,214,255,13,0,64,0,13,0, +209,255,230,255,54,0,23,0,224,255,22,0,17,0,252,255,10,0,249,255,205,255,194,255,22,0,76,0,24,0,222,255, +219,255,247,255,254,255,247,255,16,0,249,255,235,255,54,0,30,0,237,255,18,0,20,0,213,255,206,255,21,0,25,0, +54,0,51,0,235,255,221,255,210,255,24,0,46,0,238,255,250,255,39,0,14,0,0,0,51,0,238,255,207,255,223,255, +1,0,18,0,152,255,24,0,124,0,26,0,22,0,3,0,0,0,242,255,254,255,207,255,225,255,48,0,183,255,237,255, +72,0,22,0,33,0,9,0,14,0,22,0,237,255,16,0,247,255,168,255,11,0,57,0,24,0,22,0,222,255,245,255, +247,255,21,0,25,0,208,255,6,0,9,0,3,0,9,0,240,255,8,0,24,0,7,0,227,255,255,255,10,0,254,255, +255,255,252,255,1,0,240,255,222,255,247,255,83,0,16,0,208,255,28,0,2,0,15,0,27,0,234,255,189,255,13,0, +74,0,220,255,18,0,255,255,185,255,38,0,10,0,202,255,222,255,251,255,61,0,59,0,231,255,237,255,198,255,199,255, +55,0,51,0,57,0,255,255,240,255,244,255,204,255,78,0,35,0,195,255,177,255,223,255,85,0,255,255,231,255,8,0, +5,0,19,0,247,255,249,255,239,255,8,0,5,0,16,0,30,0,213,255,219,255,232,255,218,255,234,255,21,0,40,0, +1,0,10,0,26,0,254,255,222,255,187,255,250,255,99,0,23,0,230,255,11,0,232,255,255,255,7,0,253,255,1,0, +0,0,2,0,203,255,247,255,33,0,241,255,5,0,31,0,9,0,0,0,238,255,235,255,30,0,220,255,236,255,44,0, +149,255,206,255,96,0,43,0,2,0,255,255,18,0,247,255,218,255,228,255,6,0,57,0,11,0,254,255,16,0,218,255, +220,255,5,0,7,0,239,255,1,0,15,0,209,255,248,255,58,0,250,255,189,255,9,0,92,0,14,0,252,255,34,0, +11,0,11,0,239,255,247,255,245,255,238,255,239,255,217,255,28,0,16,0,219,255,231,255,231,255,23,0,66,0,243,255, +185,255,28,0,45,0,255,255,25,0,12,0,237,255,255,255,41,0,9,0,248,255,1,0,242,255,243,255,248,255,14,0, +249,255,238,255,213,255,241,255,76,0,37,0,204,255,176,255,33,0,71,0,1,0,217,255,230,255,44,0,6,0,9,0, +250,255,27,0,43,0,207,255,18,0,234,255,17,0,19,0,228,255,32,0,252,255,39,0,196,255,96,0,108,255,231,253, +72,0,65,0,49,0,73,1,139,255,184,255,166,0,110,0,30,0,200,255,242,255,230,255,242,255,248,255,41,0,75,0, +9,0,255,255,11,0,237,255,166,255,232,255,8,0,226,255,59,0,44,0,210,255,16,0,78,0,240,255,226,255,252,255, +213,255,49,0,64,0,255,255,43,0,21,0,242,255,218,255,159,255,2,0,34,0,199,255,253,255,26,0,28,0,15,0, +228,255,228,255,229,255,53,0,41,0,228,255,237,255,13,0,76,0,4,0,165,255,236,255,77,0,42,0,251,255,5,0, +238,255,33,0,12,0,171,255,231,255,30,0,255,255,15,0,7,0,226,255,21,0,227,255,216,255,63,0,31,0,3,0, +199,255,249,255,64,0,204,255,28,0,87,0,2,0,23,0,6,0,207,255,13,0,50,0,210,255,209,255,252,255,19,0, +250,255,180,255,47,0,70,0,234,255,3,0,2,0,240,255,215,255,26,0,41,0,230,255,12,0,203,255,208,255,82,0, +53,0,13,0,220,255,196,255,33,0,46,0,9,0,0,0,218,255,242,255,252,255,202,255,16,0,68,0,236,255,234,255, +25,0,3,0,19,0,1,0,195,255,210,255,211,255,227,255,5,0,3,0,63,0,76,0,236,255,241,255,11,0,149,255, +224,255,133,0,8,0,227,255,25,0,248,255,8,0,12,0,34,0,3,0,231,255,251,255,232,255,253,255,27,0,226,255, +182,255,60,0,48,0,226,255,20,0,243,255,52,0,254,255,229,255,48,0,188,255,51,0,84,0,214,255,218,255,127,255, +171,255,74,0,72,0,157,255,65,255,7,0,187,0,53,0,176,255,12,0,51,0,23,0,7,0,19,0,14,0,228,255, +18,0,14,0,241,255,242,255,236,255,33,0,45,0,203,255,176,255,25,0,252,255,235,255,18,0,211,255,235,255,19,0, +15,0,15,0,43,0,35,0,231,255,226,255,239,255,59,0,17,0,190,255,220,255,215,255,22,0,25,0,16,0,58,0, +8,0,241,255,230,255,33,0,54,0,207,255,232,255,22,0,246,255,6,0,14,0,250,255,25,0,247,255,157,255,201,255, +253,255,254,255,32,0,69,0,37,0,203,255,232,255,5,0,23,0,66,0,247,255,235,255,237,255,236,255,205,255,159,255, +48,0,60,0,11,0,255,255,220,255,29,0,196,255,177,255,35,0,43,0,70,0,41,0,222,255,244,255,31,0,9,0, +16,0,238,255,181,255,16,0,47,0,223,255,234,255,21,0,225,255,233,255,44,0,4,0,217,255,254,255,27,0,238,255, +8,0,28,0,228,255,252,255,26,0,24,0,224,255,212,255,237,255,36,0,9,0,167,255,84,0,1,0,158,255,175,0, +81,0,192,255,233,255,250,255,29,0,243,255,227,255,241,255,15,0,246,255,227,255,42,0,32,0,222,255,215,255,6,0, +252,255,2,0,40,0,11,0,14,0,254,255,221,255,248,255,253,255,16,0,28,0,247,255,16,0,239,255,188,255,248,255, +242,255,8,0,27,0,252,255,26,0,242,255,219,255,2,0,1,0,243,255,53,0,66,0,204,255,227,255,219,255,194,255, +34,0,251,255,232,255,25,0,33,0,8,0,232,255,248,255,253,255,1,0,16,0,45,0,218,255,140,255,66,0,144,0, +251,255,203,255,3,0,23,0,16,0,255,255,231,255,219,255,232,255,2,0,7,0,35,0,248,255,221,255,30,0,236,255, +241,255,25,0,1,0,246,255,235,255,46,0,29,0,211,255,225,255,7,0,253,255,233,255,27,0,230,255,196,255,18,0, +42,0,35,0,244,255,208,255,229,255,17,0,31,0,18,0,2,0,7,0,32,0,215,255,229,255,68,0,232,255,185,255, +16,0,8,0,253,255,18,0,10,0,13,0,211,255,226,255,39,0,0,0,236,255,3,0,40,0,13,0,232,255,255,255, +7,0,251,255,244,255,31,0,17,0,17,0,38,0,211,255,171,255,243,255,91,0,41,0,207,255,244,255,28,0,26,0, +14,0,246,255,190,255,245,255,57,0,4,0,250,255,25,0,245,255,226,255,33,0,239,255,216,255,28,0,21,0,255,255, +196,255,249,255,36,0,252,255,18,0,7,0,23,0,239,255,181,255,3,0,55,0,30,0,23,0,243,255,236,255,15,0, +227,255,22,0,237,255,124,255,12,0,108,0,44,0,230,255,240,255,255,255,216,255,214,255,232,255,39,0,72,0,43,0, +232,255,211,255,37,0,57,0,40,0,47,0,249,255,196,255,219,255,226,255,20,0,40,0,241,255,38,0,0,0,186,255, +12,0,50,0,253,255,253,255,59,0,41,0,6,0,231,255,220,255,255,255,247,255,245,255,254,255,244,255,239,255,20,0, +25,0,5,0,236,255,213,255,24,0,254,255,230,255,251,255,238,255,37,0,13,0,246,255,252,255,249,255,254,255,240,255, +55,0,39,0,226,255,218,255,204,255,249,255,29,0,12,0,239,255,14,0,57,0,37,0,24,0,229,255,206,255,240,255, +247,255,3,0,23,0,23,0,235,255,233,255,250,255,253,255,32,0,251,255,0,0,24,0,232,255,248,255,221,255,184,255, +214,255,217,255,9,0,110,0,97,0,26,0,242,255,198,255,23,0,46,0,241,255,5,0,227,255,239,255,36,0,23,0, +221,255,238,255,7,0,225,255,35,0,225,255,229,255,54,0,185,255,1,0,77,0,241,255,246,255,7,0,253,255,36,0, +39,0,246,255,228,255,195,255,18,0,48,0,226,255,18,0,0,0,248,255,15,0,226,255,237,255,19,0,24,0,250,255, +13,0,18,0,233,255,210,255,242,255,53,0,18,0,233,255,214,255,250,255,80,0,25,0,230,255,237,255,241,255,244,255, +251,255,22,0,209,255,223,255,79,0,45,0,10,0,7,0,227,255,225,255,16,0,10,0,238,255,16,0,197,255,191,255, +91,0,67,0,199,255,197,255,244,255,30,0,54,0,14,0,247,255,191,255,12,0,166,0,195,255,148,255,98,0,25,0, +227,255,20,0,29,0,211,255,221,255,12,0,244,255,39,0,1,0,226,255,8,0,33,0,30,0,222,255,249,255,2,0, +238,255,15,0,34,0,16,0,235,255,1,0,28,0,9,0,225,255,187,255,194,255,29,0,89,0,56,0,252,255,214,255, +35,0,254,255,189,255,28,0,227,255,187,255,73,0,69,0,226,255,219,255,207,255,11,0,72,0,228,255,227,255,41,0, +19,0,243,255,3,0,249,255,236,255,55,0,29,0,237,255,255,255,226,255,226,255,16,0,95,0,18,0,197,255,34,0, +219,255,225,255,47,0,235,255,35,0,13,0,225,255,21,0,229,255,252,255,19,0,35,0,33,0,221,255,251,255,249,255, +6,0,20,0,223,255,221,255,4,0,63,0,36,0,2,0,10,0,240,255,219,255,11,0,69,0,1,0,210,255,248,255, +5,0,222,255,194,255,245,255,55,0,76,0,13,0,249,255,239,255,168,255,231,255,76,0,43,0,216,255,214,255,254,255, +255,255,13,0,63,0,36,0,216,255,248,255,37,0,13,0,223,255,236,255,12,0,247,255,26,0,26,0,226,255,240,255, +17,0,19,0,21,0,248,255,232,255,25,0,249,255,246,255,27,0,21,0,6,0,185,255,21,0,88,0,229,255,223,255, +246,255,21,0,23,0,1,0,22,0,231,255,250,255,34,0,226,255,238,255,38,0,33,0,220,255,197,255,46,0,29,0, +224,255,225,255,223,255,43,0,14,0,236,255,27,0,255,255,208,255,206,255,26,0,58,0,23,0,219,255,230,255,40,0, +5,0,13,0,35,0,11,0,231,255,214,255,5,0,4,0,246,255,252,255,251,255,249,255,12,0,8,0,228,255,17,0, +0,0,231,255,24,0,239,255,239,255,251,255,209,255,17,0,47,0,6,0,17,0,253,255,241,255,31,0,19,0,211,255, +213,255,5,0,45,0,10,0,205,255,13,0,26,0,239,255,250,255,234,255,247,255,7,0,24,0,4,0,235,255,9,0, +10,0,242,255,231,255,31,0,244,255,202,255,55,0,66,0,6,0,235,255,247,255,248,255,252,255,251,255,243,255,254,255, +210,255,251,255,17,0,244,255,8,0,1,0,4,0,224,255,11,0,29,0,232,255,16,0,23,0,21,0,241,255,226,255, +33,0,23,0,235,255,245,255,4,0,235,255,3,0,249,255,227,255,16,0,11,0,243,255,4,0,38,0,19,0,252,255, +2,0,245,255,20,0,255,255,214,255,5,0,32,0,23,0,8,0,243,255,218,255,252,255,26,0,218,255,241,255,39,0, +12,0,6,0,22,0,31,0,239,255,209,255,251,255,46,0,18,0,218,255,15,0,236,255,218,255,29,0,4,0,211,255, +206,255,69,0,40,0,220,255,0,0,242,255,51,0,17,0,238,255,253,255,230,255,6,0,242,255,250,255,221,255,247,255, +29,0,225,255,239,255,245,255,56,0,42,0,237,255,9,0,238,255,30,0,13,0,193,255,31,0,63,0,224,255,243,255, +2,0,236,255,32,0,255,255,250,255,4,0,218,255,1,0,3,0,243,255,215,255,210,255,31,0,37,0,18,0,36,0, +41,0,22,0,7,0,3,0,228,255,227,255,244,255,250,255,1,0,235,255,17,0,47,0,3,0,253,255,249,255,7,0, +6,0,224,255,233,255,11,0,37,0,11,0,253,255,234,255,193,255,238,255,18,0,252,255,10,0,30,0,9,0,227,255, +238,255,40,0,229,255,192,255,20,0,49,0,101,0,16,0,201,255,11,0,11,0,250,255,210,255,44,0,139,255,214,254, +91,0,225,0,35,0,198,255,131,255,177,255,17,0,87,0,32,0,35,0,116,0,13,0,212,255,253,255,248,255,39,0, +36,0,1,0,18,0,240,255,235,255,228,255,22,0,69,0,235,255,28,0,53,0,228,255,239,255,228,255,232,255,1,0, +234,255,9,0,48,0,253,255,236,255,248,255,3,0,241,255,200,255,12,0,13,0,236,255,10,0,243,255,244,255,4,0, +16,0,7,0,253,255,2,0,251,255,241,255,225,255,22,0,35,0,225,255,243,255,25,0,3,0,255,255,13,0,13,0, +248,255,231,255,12,0,19,0,8,0,9,0,233,255,239,255,9,0,243,255,214,255,246,255,240,255,244,255,12,0,245,255, +24,0,228,255,210,255,31,0,254,255,11,0,16,0,241,255,22,0,40,0,18,0,250,255,251,255,252,255,222,255,241,255, +3,0,229,255,32,0,41,0,212,255,223,255,49,0,43,0,189,255,201,255,236,255,237,255,53,0,56,0,15,0,5,0, +8,0,251,255,7,0,225,255,198,255,16,0,5,0,5,0,25,0,253,255,239,255,244,255,34,0,38,0,30,0,19,0, +231,255,221,255,7,0,9,0,255,255,12,0,219,255,238,255,28,0,33,0,6,0,210,255,228,255,235,255,252,255,4,0, +245,255,252,255,236,255,255,255,25,0,7,0,4,0,10,0,216,255,254,255,36,0,251,255,23,0,5,0,250,255,1,0, +4,0,0,0,234,255,38,0,33,0,252,255,15,0,28,0,245,255,199,255,243,255,15,0,254,255,214,255,214,255,242,255, +246,255,17,0,247,255,237,255,33,0,250,255,206,255,7,0,43,0,47,0,2,0,239,255,34,0,254,255,236,255,1,0, +4,0,234,255,245,255,26,0,204,255,246,255,93,0,29,0,179,255,230,255,38,0,228,255,13,0,3,0,243,255,41,0, +3,0,14,0,21,0,245,255,227,255,27,0,21,0,189,255,224,255,9,0,29,0,5,0,248,255,24,0,9,0,221,255, +217,255,11,0,244,255,0,0,33,0,14,0,2,0,229,255,8,0,17,0,210,255,186,255,5,0,68,0,52,0,21,0, +204,255,6,0,78,0,234,255,242,255,10,0,216,255,8,0,11,0,244,255,235,255,205,255,19,0,22,0,225,255,14,0, +48,0,16,0,254,255,19,0,232,255,235,255,14,0,11,0,36,0,213,255,176,255,27,0,43,0,231,255,220,255,8,0, +36,0,218,255,224,255,40,0,238,255,13,0,238,255,26,0,246,0,181,0,205,255,46,255,208,255,34,0,129,255,240,255, +14,0,183,255,187,255,253,255,48,0,0,0,8,0,16,0,18,0,251,255,252,255,231,255,235,255,93,0,250,255,202,255, +30,0,0,0,9,0,38,0,21,0,229,255,249,255,10,0,231,255,3,0,253,255,252,255,21,0,245,255,2,0,12,0, +229,255,245,255,23,0,25,0,231,255,220,255,20,0,0,0,223,255,9,0,55,0,254,255,236,255,8,0,203,255,221,255, +43,0,46,0,204,255,214,255,74,0,244,255,221,255,60,0,26,0,235,255,248,255,34,0,255,255,228,255,7,0,223,255, +231,255,3,0,212,255,237,255,21,0,45,0,25,0,219,255,249,255,250,255,252,255,253,255,211,255,9,0,17,0,6,0, +61,0,25,0,208,255,251,255,15,0,176,255,171,255,234,255,253,255,33,0,99,0,85,0,254,255,249,255,236,255,240,255, +44,0,227,255,226,255,48,0,246,255,11,0,15,0,189,255,249,255,34,0,254,255,248,255,4,0,18,0,209,255,176,255, +30,0,86,0,239,255,223,255,44,0,13,0,12,0,43,0,251,255,222,255,4,0,250,255,187,255,208,255,2,0,67,0, +66,0,247,255,29,0,17,0,209,255,215,255,255,255,37,0,209,255,190,255,11,0,45,0,56,0,226,255,210,255,253,255, +8,0,37,0,9,0,24,0,55,0,1,0,221,255,7,0,7,0,247,255,11,0,212,255,5,0,82,0,22,0,187,255, +170,255,255,255,243,255,239,255,30,0,36,0,19,0,253,255,66,0,51,0,219,255,150,255,238,255,120,0,43,0,59,0, +31,0,192,255,227,255,214,255,238,255,249,255,231,255,243,255,245,255,244,255,254,255,13,0,238,255,13,0,58,0,53,0, +14,0,228,255,6,0,248,255,237,255,17,0,254,255,220,255,237,255,45,0,5,0,2,0,54,0,217,255,207,255,10,0, +16,0,38,0,9,0,247,255,20,0,33,0,242,255,247,255,48,0,230,255,184,255,245,255,25,0,245,255,224,255,232,255, +225,255,15,0,3,0,248,255,64,0,30,0,189,255,254,255,68,0,216,255,220,255,60,0,29,0,209,255,254,255,50,0, +253,255,15,0,10,0,3,0,203,255,183,255,17,0,182,255,247,255,102,0,22,0,11,0,15,0,233,255,207,255,19,0, +249,255,218,255,51,0,71,0,26,0,200,255,9,0,26,0,157,255,198,255,14,0,239,255,248,255,28,0,17,0,34,0, +253,255,238,255,39,0,19,0,222,255,193,255,4,0,29,0,249,255,221,255,222,255,19,0,6,0,40,0,39,0,230,255, +254,255,25,0,242,255,206,255,3,0,247,255,235,255,24,0,8,0,240,255,241,255,32,0,42,0,250,255,214,255,249,255, +46,0,37,0,0,0,214,255,18,0,68,0,18,0,242,255,237,255,244,255,7,0,13,0,229,255,239,255,16,0,216,255, +175,255,243,255,18,0,6,0,20,0,213,255,249,255,56,0,250,255,230,255,230,255,245,255,248,255,250,255,234,255,238,255, +15,0,222,255,1,0,60,0,8,0,235,255,241,255,250,255,2,0,250,255,24,0,247,255,148,255,1,0,60,0,34,0, +94,0,230,255,203,255,66,0,251,255,195,255,30,0,248,255,120,255,245,255,95,0,16,0,8,0,231,255,203,255,3,0, +35,0,65,0,41,0,225,255,219,255,243,255,211,255,233,255,77,0,39,0,252,255,7,0,211,255,228,255,8,0,249,255, +210,255,35,0,87,0,229,255,235,255,15,0,36,0,31,0,242,255,218,255,185,255,229,255,23,0,102,0,1,0,158,255, +21,0,235,255,1,0,37,0,251,255,5,0,241,255,251,255,250,255,39,0,9,0,234,255,36,0,24,0,2,0,219,255, +222,255,7,0,30,0,244,255,217,255,6,0,235,255,222,255,247,255,46,0,37,0,208,255,254,255,68,0,22,0,210,255, +232,255,8,0,58,0,29,0,198,255,239,255,229,255,12,0,67,0,231,255,199,255,17,0,56,0,236,255,231,255,10,0, +237,255,6,0,23,0,12,0,241,255,242,255,27,0,58,0,12,0,203,255,0,0,254,255,12,0,48,0,245,255,0,0, +247,255,223,255,245,255,4,0,15,0,25,0,10,0,191,255,213,255,16,0,23,0,29,0,243,255,220,255,185,255,220,255, +50,0,29,0,14,0,16,0,219,255,211,255,64,0,72,0,249,255,0,0,241,255,231,255,13,0,17,0,248,255,255,255, +248,255,2,0,24,0,228,255,225,255,239,255,16,0,17,0,243,255,34,0,234,255,204,255,237,255,11,0,14,0,157,255, +219,255,100,0,46,0,242,255,14,0,33,0,8,0,246,255,246,255,4,0,248,255,242,255,250,255,253,255,16,0,16,0, +22,0,253,255,200,255,215,255,30,0,57,0,213,255,190,255,53,0,53,0,1,0,3,0,226,255,245,255,44,0,47,0, +9,0,222,255,210,255,254,255,64,0,253,255,209,255,9,0,13,0,5,0,215,255,233,255,13,0,244,255,35,0,17,0, +222,255,248,255,252,255,8,0,11,0,229,255,14,0,34,0,194,255,233,255,80,0,27,0,225,255,194,255,181,255,47,0, +87,0,221,255,248,255,68,0,239,255,200,255,229,255,237,255,64,0,55,0,220,255,226,255,228,255,35,0,70,0,14,0, +34,0,43,0,181,255,188,255,103,0,26,0,205,255,26,0,9,0,212,255,199,255,14,0,19,0,62,0,10,0,131,255, +234,255,31,0,45,0,6,0,206,255,241,255,26,0,50,0,244,255,26,0,248,255,215,255,10,0,252,255,47,0,237,255, +198,255,13,0,59,0,241,255,193,255,57,0,255,255,249,255,44,0,252,255,249,255,240,255,27,0,29,0,24,0,10,0, +244,255,6,0,198,255,199,255,27,0,48,0,5,0,231,255,240,255,239,255,239,255,19,0,41,0,12,0,205,255,223,255, +78,0,49,0,219,255,249,255,34,0,248,255,230,255,14,0,235,255,246,255,6,0,17,0,52,0,227,255,208,255,12,0, +29,0,17,0,8,0,251,255,12,0,254,255,201,255,34,0,38,0,228,255,181,255,174,255,48,0,48,0,28,0,31,0, +247,255,4,0,3,0,222,255,222,255,49,0,10,0,210,255,8,0,6,0,248,255,10,0,30,0,25,0,6,0,202,255, +201,255,20,0,62,0,38,0,218,255,251,255,10,0,204,255,242,255,52,0,12,0,203,255,234,255,11,0,27,0,239,255, +209,255,51,0,61,0,209,255,247,255,64,0,216,255,237,255,26,0,252,255,50,0,239,255,236,255,56,0,246,255,206,255, +28,0,36,0,232,255,15,0,239,255,197,255,233,255,225,255,249,255,65,0,50,0,236,255,8,0,13,0,221,255,215,255, +10,0,10,0,226,255,43,0,13,0,238,255,19,0,212,255,230,255,39,0,3,0,233,255,44,0,239,255,187,255,79,0, +69,0,211,255,252,255,37,0,230,255,213,255,242,255,1,0,42,0,253,255,197,255,9,0,16,0,234,255,12,0,246,255, +233,255,255,255,17,0,25,0,225,255,5,0,21,0,9,0,16,0,230,255,19,0,24,0,9,0,241,255,237,255,1,0, +196,255,213,255,253,255,33,0,24,0,24,0,14,0,199,255,249,255,184,255,147,255,254,255,247,255,186,255,189,255,47,0, +55,0,68,0,129,0,36,0,26,0,45,0,223,255,231,255,41,0,16,0,227,255,0,0,26,0,30,0,13,0,218,255, +221,255,11,0,33,0,41,0,28,0,16,0,252,255,255,255,4,0,216,255,7,0,10,0,249,255,62,0,238,255,193,255, +24,0,44,0,249,255,225,255,33,0,32,0,208,255,194,255,238,255,8,0,13,0,26,0,247,255,237,255,14,0,0,0, +248,255,252,255,242,255,7,0,35,0,20,0,16,0,255,255,237,255,32,0,5,0,227,255,20,0,6,0,238,255,241,255, +222,255,201,255,13,0,57,0,237,255,251,255,40,0,4,0,217,255,15,0,79,0,32,0,13,0,243,255,207,255,229,255, +37,0,33,0,209,255,245,255,1,0,16,0,54,0,237,255,217,255,22,0,44,0,233,255,238,255,234,255,200,255,44,0, +23,0,206,255,219,255,10,0,55,0,13,0,16,0,11,0,247,255,30,0,0,0,240,255,242,255,225,255,14,0,240,255, +216,255,55,0,9,0,185,255,7,0,39,0,5,0,252,255,249,255,33,0,21,0,222,255,1,0,5,0,24,0,48,0, +6,0,17,0,232,255,220,255,32,0,8,0,233,255,2,0,28,0,3,0,226,255,241,255,9,0,19,0,17,0,252,255, +231,255,222,255,243,255,30,0,10,0,224,255,206,255,254,255,68,0,225,255,139,255,16,0,108,0,45,0,24,0,5,0, +218,255,238,255,246,255,4,0,244,255,254,255,44,0,240,255,233,255,31,0,6,0,199,255,214,255,6,0,219,255,223,255, +23,0,2,0,1,0,36,0,0,0,243,255,24,0,6,0,7,0,9,0,236,255,0,0,233,255,201,255,11,0,40,0, +21,0,245,255,234,255,4,0,232,255,5,0,20,0,233,255,2,0,11,0,1,0,223,255,224,255,17,0,7,0,233,255, +10,0,19,0,223,255,25,0,54,0,252,255,212,255,220,255,8,0,255,255,43,0,28,0,207,255,196,255,250,255,68,0, +24,0,238,255,232,255,24,0,7,0,214,255,35,0,30,0,247,255,185,255,210,255,10,0,239,255,18,0,11,0,37,0, +11,0,221,255,252,255,7,0,16,0,230,255,251,255,1,0,245,255,248,255,249,255,49,0,0,0,243,255,19,0,7,0, +234,255,228,255,43,0,7,0,224,255,4,0,244,255,239,255,19,0,23,0,214,255,190,255,247,255,57,0,19,0,246,255, +29,0,219,255,232,255,46,0,18,0,244,255,222,255,9,0,252,255,255,255,62,0,8,0,4,0,219,255,213,255,37,0, +0,0,247,255,235,255,249,255,5,0,250,255,18,0,242,255,243,255,250,255,22,0,0,0,21,0,246,255,94,255,57,0, +165,0,4,0,250,255,242,255,15,0,6,0,239,255,239,255,224,255,223,255,9,0,73,0,14,0,245,255,252,255,237,255, +4,0,9,0,249,255,227,255,243,255,19,0,11,0,213,255,0,0,36,0,238,255,246,255,9,0,248,255,200,255,17,0, +56,0,240,255,2,0,3,0,24,0,17,0,1,0,250,255,224,255,6,0,4,0,3,0,241,255,243,255,16,0,246,255, +0,0,21,0,7,0,240,255,31,0,44,0,251,255,231,255,218,255,254,255,28,0,5,0,214,255,252,255,25,0,244,255, +3,0,9,0,11,0,227,255,250,255,30,0,3,0,34,0,242,255,223,255,22,0,27,0,252,255,238,255,3,0,243,255, +4,0,247,255,229,255,251,255,234,255,28,0,53,0,13,0,250,255,244,255,247,255,229,255,255,255,40,0,254,255,224,255, +6,0,12,0,248,255,5,0,244,255,209,255,9,0,23,0,208,255,229,255,32,0,59,0,36,0,249,255,251,255,0,0, +29,0,11,0,229,255,239,255,214,255,244,255,36,0,254,255,253,255,21,0,253,255,17,0,36,0,242,255,248,255,247,255, +217,255,250,255,3,0,20,0,32,0,226,255,222,255,243,255,1,0,36,0,9,0,229,255,244,255,16,0,21,0,9,0, +4,0,227,255,0,0,42,0,0,0,245,255,10,0,17,0,7,0,245,255,227,255,2,0,6,0,200,255,17,0,57,0, +241,255,244,255,3,0,253,255,224,255,239,255,255,255,239,255,13,0,22,0,17,0,6,0,26,0,7,0,252,255,36,0, +230,255,238,255,243,255,230,255,40,0,16,0,238,255,207,255,255,255,41,0,251,255,21,0,11,0,248,255,252,255,10,0, +243,255,236,255,56,0,4,0,230,255,8,0,248,255,1,0,254,255,249,255,243,255,11,0,17,0,244,255,244,255,246,255, +19,0,15,0,12,0,7,0,238,255,7,0,249,255,249,255,8,0,251,255,10,0,6,0,25,0,30,0,233,255,220,255, +250,255,10,0,245,255,250,255,8,0,16,0,20,0,5,0,24,0,7,0,241,255,237,255,0,0,11,0,199,255,255,255, +22,0,225,255,49,0,48,0,3,0,253,255,254,255,10,0,6,0,2,0,252,255,5,0,229,255,243,255,247,255,222,255, +18,0,12,0,9,0,244,255,228,255,10,0,4,0,11,0,0,0,249,255,247,255,251,255,14,0,25,0,28,0,228,255, +234,255,6,0,235,255,217,255,9,0,70,0,12,0,249,255,6,0,253,255,22,0,253,255,255,255,245,255,222,255,8,0, +11,0,239,255,242,255,2,0,7,0,8,0,250,255,237,255,2,0,14,0,250,255,241,255,244,255,224,255,242,255,32,0, +14,0,5,0,22,0,236,255,238,255,46,0,28,0,255,255,249,255,243,255,5,0,233,255,230,255,244,255,224,255,21,0, +11,0,204,255,15,0,46,0,4,0,252,255,0,0,5,0,9,0,21,0,245,255,249,255,25,0,233,255,250,255,2,0, +240,255,14,0,7,0,8,0,239,255,247,255,19,0,235,255,214,255,226,255,12,0,19,0,10,0,247,255,234,255,16,0, +23,0,24,0,233,255,230,255,3,0,233,255,45,0,36,0,225,255,7,0,16,0,251,255,248,255,255,255,255,255,236,255, +230,255,3,0,22,0,32,0,251,255,191,255,24,0,18,0,187,255,9,0,22,0,246,255,0,0,248,255,8,0,20,0, +4,0,243,255,253,255,250,255,234,255,249,255,31,0,38,0,223,255,227,255,57,0,31,0,253,255,10,0,228,255,222,255, +11,0,51,0,44,0,244,255,225,255,227,255,244,255,18,0,10,0,216,255,202,255,28,0,35,0,242,255,3,0,6,0, +8,0,25,0,16,0,224,255,205,255,16,0,55,0,20,0,249,255,245,255,9,0,31,0,10,0,250,255,246,255,244,255, +237,255,205,255,240,255,44,0,250,255,200,255,17,0,44,0,0,0,32,0,17,0,246,255,254,255,248,255,7,0,230,255, +229,255,1,0,234,255,12,0,35,0,255,255,8,0,24,0,7,0,255,255,235,255,243,255,20,0,255,255,235,255,17,0, +13,0,226,255,27,0,43,0,245,255,4,0,241,255,233,255,18,0,29,0,254,255,237,255,244,255,238,255,252,255,230,255, +253,255,27,0,234,255,1,0,46,0,55,0,23,0,0,0,254,255,241,255,5,0,4,0,249,255,225,255,13,0,60,0, +252,255,4,0,5,0,223,255,228,255,240,255,16,0,19,0,233,255,200,255,7,0,46,0,248,255,240,255,10,0,26,0, +2,0,30,0,49,0,231,255,249,255,20,0,244,255,7,0,8,0,226,255,226,255,15,0,5,0,225,255,23,0,35,0, +236,255,244,255,250,255,253,255,30,0,18,0,255,255,9,0,252,255,247,255,3,0,233,255,251,255,41,0,15,0,253,255, +231,255,240,255,50,0,31,0,220,255,230,255,250,255,230,255,1,0,21,0,253,255,252,255,1,0,239,255,231,255,27,0, +35,0,217,255,211,255,0,0,24,0,33,0,5,0,253,255,34,0,16,0,240,255,0,0,250,255,232,255,2,0,29,0, +4,0,240,255,236,255,234,255,244,255,3,0,12,0,240,255,8,0,10,0,226,255,253,255,254,255,6,0,1,0,228,255, +220,255,4,0,74,0,12,0,224,255,255,255,7,0,20,0,250,255,246,255,6,0,1,0,221,255,217,255,7,0,20,0, +35,0,250,255,216,255,253,255,0,0,243,255,243,255,251,255,2,0,26,0,44,0,0,0,200,255,230,255,14,0,245,255, +243,255,241,255,10,0,28,0,250,255,253,255,233,255,243,255,35,0,36,0,251,255,235,255,19,0,16,0,1,0,252,255, +5,0,250,255,219,255,11,0,11,0,229,255,236,255,247,255,13,0,18,0,248,255,225,255,6,0,25,0,238,255,217,255, +19,0,49,0,223,255,226,255,15,0,245,255,6,0,14,0,240,255,232,255,251,255,253,255,1,0,44,0,35,0,230,255, +215,255,241,255,3,0,18,0,18,0,249,255,234,255,200,255,223,255,35,0,5,0,28,0,67,0,8,0,245,255,232,255, +245,255,6,0,237,255,0,0,247,255,234,255,240,255,239,255,15,0,28,0,26,0,22,0,2,0,235,255,243,255,250,255, +234,255,231,255,226,255,24,0,42,0,4,0,26,0,9,0,240,255,6,0,23,0,3,0,232,255,245,255,251,255,6,0, +14,0,240,255,3,0,40,0,226,255,193,255,5,0,18,0,243,255,233,255,6,0,12,0,3,0,12,0,1,0,13,0, +244,255,237,255,17,0,0,0,245,255,248,255,6,0,252,255,251,255,2,0,252,255,22,0,8,0,236,255,238,255,251,255, +242,255,246,255,37,0,33,0,251,255,222,255,252,255,10,0,255,255,17,0,228,255,231,255,10,0,253,255,227,255,238,255, +49,0,48,0,4,0,204,255,225,255,20,0,237,255,255,255,32,0,35,0,1,0,231,255,11,0,13,0,12,0,233,255, +236,255,21,0,3,0,251,255,223,255,246,255,17,0,5,0,17,0,244,255,12,0,240,255,210,255,58,0,28,0,234,255, +255,255,219,255,253,255,14,0,249,255,21,0,16,0,244,255,232,255,8,0,22,0,244,255,28,0,26,0,215,255,15,0, +33,0,226,255,254,255,31,0,9,0,229,255,233,255,9,0,15,0,8,0,3,0,14,0,244,255,228,255,218,255,235,255, +24,0,226,255,5,0,31,0,245,255,78,0,65,0,228,255,202,255,253,255,24,0,238,255,6,0,0,0,22,0,243,255, +176,255,21,0,38,0,10,0,19,0,240,255,239,255,214,255,224,255,47,0,22,0,244,255,42,0,22,0,247,255,250,255, +237,255,235,255,233,255,251,255,254,255,17,0,5,0,250,255,42,0,244,255,240,255,27,0,248,255,239,255,240,255,1,0, +16,0,2,0,248,255,12,0,254,255,230,255,249,255,2,0,29,0,16,0,1,0,22,0,7,0,6,0,3,0,241,255, +238,255,249,255,250,255,12,0,12,0,235,255,0,0,5,0,252,255,228,255,245,255,9,0,229,255,22,0,12,0,12,0, +45,0,235,255,249,255,16,0,2,0,228,255,240,255,26,0,226,255,232,255,18,0,15,0,14,0,5,0,1,0,223,255, +220,255,20,0,44,0,4,0,249,255,26,0,6,0,236,255,254,255,31,0,20,0,246,255,240,255,236,255,23,0,32,0, +244,255,238,255,253,255,21,0,225,255,214,255,14,0,230,255,12,0,52,0,249,255,1,0,7,0,253,255,252,255,9,0, +11,0,242,255,5,0,5,0,25,0,46,0,243,255,224,255,254,255,22,0,3,0,224,255,5,0,21,0,239,255,16,0, +4,0,216,255,24,0,17,0,230,255,3,0,15,0,240,255,236,255,20,0,4,0,9,0,15,0,250,255,252,255,242,255, +12,0,251,255,13,0,15,0,247,255,31,0,232,255,5,0,244,255,217,255,42,0,220,255,233,255,240,255,209,255,18,0, +14,0,56,0,45,0,7,0,240,255,211,255,47,0,39,0,213,255,247,255,44,0,250,255,214,255,36,0,23,0,213,255, +239,255,9,0,19,0,33,0,233,255,199,255,24,0,15,0,211,255,23,0,62,0,8,0,213,255,224,255,51,0,32,0, +223,255,241,255,215,255,252,255,37,0,250,255,5,0,246,255,5,0,11,0,238,255,18,0,25,0,30,0,251,255,242,255, +15,0,242,255,243,255,221,255,227,255,1,0,12,0,37,0,253,255,215,255,217,255,16,0,9,0,230,255,29,0,253,255, +1,0,34,0,15,0,16,0,240,255,241,255,197,255,227,255,60,0,6,0,254,255,12,0,24,0,18,0,247,255,244,255, +199,255,28,0,80,0,209,255,198,255,31,0,37,0,240,255,243,255,244,255,236,255,252,255,15,0,42,0,238,255,211,255, +246,255,252,255,31,0,8,0,253,255,19,0,238,255,251,255,24,0,11,0,228,255,203,255,7,0,26,0,241,255,246,255, +7,0,6,0,251,255,8,0,11,0,253,255,21,0,15,0,3,0,1,0,225,255,2,0,57,0,18,0,226,255,1,0, +8,0,249,255,254,255,221,255,238,255,38,0,18,0,246,255,15,0,9,0,212,255,209,255,248,255,31,0,27,0,0,0, +5,0,252,255,251,255,6,0,0,0,11,0,24,0,4,0,224,255,220,255,14,0,42,0,253,255,254,255,250,255,205,255, +255,255,27,0,7,0,254,255,235,255,11,0,30,0,22,0,9,0,223,255,214,255,244,255,26,0,15,0,245,255,22,0, +21,0,244,255,223,255,240,255,47,0,22,0,250,255,16,0,238,255,239,255,226,255,223,255,24,0,249,255,234,255,25,0, +39,0,30,0,7,0,245,255,253,255,9,0,9,0,10,0,6,0,13,0,246,255,218,255,1,0,250,255,239,255,19,0, +21,0,31,0,27,0,244,255,242,255,245,255,246,255,12,0,234,255,254,255,57,0,252,255,237,255,18,0,0,0,236,255, +0,0,34,0,32,0,24,0,238,255,219,255,2,0,13,0,244,255,226,255,6,0,254,255,242,255,33,0,18,0,237,255, +253,255,5,0,245,255,44,0,251,255,169,255,15,0,36,0,252,255,240,255,255,255,38,0,13,0,48,0,12,0,201,255, +253,255,1,0,9,0,11,0,240,255,254,255,231,255,235,255,34,0,13,0,245,255,246,255,210,255,234,255,11,0,16,0, +17,0,7,0,25,0,218,255,220,255,81,0,21,0,211,255,253,255,249,255,250,255,240,255,251,255,63,0,31,0,219,255, +226,255,8,0,30,0,250,255,236,255,250,255,245,255,4,0,13,0,4,0,255,255,9,0,0,0,248,255,254,255,246,255, +244,255,227,255,238,255,6,0,14,0,28,0,2,0,242,255,12,0,25,0,249,255,243,255,250,255,235,255,28,0,25,0, +222,255,223,255,251,255,26,0,2,0,248,255,5,0,234,255,0,0,42,0,11,0,222,255,231,255,249,255,4,0,12,0, +30,0,23,0,245,255,4,0,233,255,225,255,40,0,13,0,213,255,247,255,255,255,197,255,230,255,48,0,44,0,27,0, +2,0,254,255,243,255,255,255,41,0,231,255,221,255,9,0,234,255,253,255,12,0,247,255,4,0,21,0,4,0,232,255, +6,0,16,0,240,255,253,255,3,0,13,0,12,0,242,255,2,0,246,255,239,255,5,0,254,255,0,0,4,0,13,0, +244,255,214,255,2,0,43,0,43,0,253,255,188,255,215,255,46,0,31,0,223,255,238,255,11,0,14,0,0,0,22,0, +28,0,215,255,228,255,31,0,41,0,16,0,206,255,208,255,17,0,4,0,3,0,43,0,239,255,234,255,26,0,1,0, +9,0,236,255,220,255,18,0,40,0,7,0,203,255,249,255,30,0,243,255,244,255,238,255,229,255,229,255,222,255,255,255, +55,0,41,0,238,255,233,255,3,0,24,0,8,0,1,0,10,0,248,255,255,255,248,255,39,0,65,0,201,255,206,255, +39,0,238,255,197,255,252,255,30,0,29,0,5,0,217,255,227,255,10,0,3,0,5,0,10,0,253,255,10,0,5,0, +16,0,9,0,214,255,3,0,12,0,231,255,29,0,35,0,12,0,3,0,217,255,239,255,21,0,237,255,238,255,12,0, +254,255,2,0,6,0,22,0,247,255,208,255,248,255,250,255,17,0,21,0,232,255,253,255,252,255,254,255,5,0,233,255, +248,255,27,0,38,0,29,0,5,0,233,255,239,255,9,0,19,0,236,255,215,255,16,0,7,0,233,255,237,255,229,255, +246,255,242,255,12,0,48,0,6,0,247,255,27,0,10,0,224,255,244,255,12,0,245,255,237,255,6,0,26,0,28,0, +10,0,213,255,211,255,5,0,18,0,2,0,13,0,21,0,232,255,247,255,43,0,8,0,242,255,251,255,252,255,26,0, +25,0,244,255,6,0,253,255,220,255,254,255,6,0,247,255,2,0,11,0,239,255,221,255,7,0,4,0,248,255,25,0, +20,0,245,255,5,0,23,0,231,255,242,255,20,0,247,255,15,0,30,0,2,0,254,255,238,255,228,255,252,255,19,0, +6,0,237,255,241,255,242,255,238,255,16,0,15,0,5,0,16,0,237,255,243,255,34,0,33,0,255,255,236,255,254,255, +18,0,18,0,238,255,232,255,7,0,19,0,14,0,239,255,254,255,15,0,253,255,248,255,2,0,27,0,255,255,224,255, +253,255,249,255,224,255,17,0,48,0,247,255,1,0,251,255,206,255,28,0,65,0,254,255,227,255,233,255,234,255,2,0, +33,0,30,0,5,0,238,255,234,255,249,255,13,0,7,0,246,255,229,255,232,255,25,0,11,0,10,0,27,0,228,255, +8,0,37,0,230,255,240,255,30,0,36,0,5,0,240,255,250,255,243,255,242,255,24,0,6,0,225,255,7,0,7,0, +248,255,1,0,217,255,221,255,14,0,42,0,64,0,1,0,209,255,22,0,18,0,230,255,247,255,255,255,11,0,14,0, +12,0,10,0,243,255,235,255,8,0,37,0,246,255,222,255,19,0,17,0,221,255,223,255,221,255,197,255,25,0,85,0, +40,0,10,0,20,0,41,0,249,255,230,255,252,255,243,255,17,0,246,255,228,255,28,0,21,0,243,255,248,255,4,0, +246,255,250,255,7,0,239,255,235,255,8,0,1,0,251,255,20,0,2,0,238,255,214,255,7,0,69,0,231,255,240,255, +56,0,13,0,253,255,245,255,238,255,222,255,237,255,21,0,11,0,11,0,2,0,16,0,41,0,7,0,207,255,175,255, +244,255,70,0,31,0,199,255,197,255,34,0,66,0,245,255,235,255,20,0,247,255,245,255,42,0,32,0,237,255,232,255, +5,0,34,0,35,0,255,255,250,255,2,0,241,255,223,255,223,255,27,0,40,0,231,255,242,255,15,0,235,255,217,255, +230,255,29,0,55,0,8,0,255,255,216,255,212,255,9,0,1,0,40,0,39,0,11,0,254,255,192,255,226,255,15,0, +5,0,223,255,239,255,53,0,11,0,1,0,4,0,224,255,247,255,13,0,13,0,249,255,27,0,28,0,241,255,8,0, +2,0,235,255,240,255,18,0,243,255,234,255,41,0,231,255,243,255,42,0,232,255,241,255,239,255,240,255,34,0,239,255, +216,255,31,0,40,0,246,255,237,255,8,0,20,0,0,0,231,255,234,255,13,0,14,0,239,255,245,255,247,255,234,255, +9,0,54,0,26,0,228,255,230,255,250,255,18,0,11,0,232,255,225,255,242,255,21,0,16,0,247,255,21,0,24,0, +2,0,10,0,2,0,246,255,241,255,235,255,247,255,6,0,14,0,3,0,14,0,23,0,229,255,227,255,249,255,225,255, +229,255,20,0,45,0,1,0,243,255,25,0,247,255,224,255,16,0,1,0,241,255,34,0,15,0,244,255,252,255,17,0, +41,0,247,255,248,255,24,0,242,255,212,255,228,255,24,0,1,0,254,255,48,0,4,0,251,255,1,0,253,255,2,0, +204,255,0,0,66,0,13,0,2,0,248,255,238,255,1,0,253,255,28,0,3,0,216,255,8,0,1,0,8,0,35,0, +235,255,219,255,243,255,13,0,30,0,9,0,237,255,236,255,254,255,224,255,233,255,55,0,63,0,20,0,252,255,249,255, +212,255,231,255,31,0,8,0,20,0,226,255,174,255,235,255,1,0,67,0,61,0,212,255,208,255,242,255,45,0,51,0, +20,0,4,0,237,255,221,255,201,255,13,0,42,0,16,0,23,0,6,0,48,0,43,0,227,255,187,255,233,255,19,0, +217,255,8,0,21,0,253,255,27,0,249,255,29,0,11,0,241,255,17,0,218,255,212,255,20,0,61,0,251,255,224,255, +254,255,236,255,27,0,30,0,1,0,237,255,236,255,27,0,7,0,7,0,251,255,237,255,7,0,15,0,47,0,0,0, +214,255,230,255,226,255,5,0,255,255,11,0,54,0,251,255,213,255,9,0,27,0,244,255,228,255,253,255,38,0,24,0, +223,255,245,255,17,0,250,255,244,255,236,255,11,0,28,0,223,255,219,255,19,0,27,0,3,0,6,0,2,0,237,255, +253,255,20,0,13,0,235,255,255,255,43,0,17,0,254,255,2,0,233,255,207,255,237,255,8,0,244,255,4,0,6,0, +19,0,26,0,231,255,247,255,7,0,226,255,231,255,28,0,26,0,240,255,251,255,255,255,15,0,5,0,236,255,23,0, +236,255,191,255,255,255,20,0,10,0,9,0,37,0,37,0,212,255,232,255,10,0,226,255,13,0,10,0,6,0,39,0, +236,255,238,255,5,0,255,255,6,0,13,0,23,0,242,255,253,255,1,0,225,255,27,0,41,0,223,255,221,255,250,255, +223,255,24,0,57,0,236,255,238,255,0,0,255,255,242,255,255,255,34,0,3,0,12,0,251,255,218,255,0,0,18,0, +16,0,250,255,242,255,0,0,251,255,237,255,18,0,25,0,226,255,2,0,12,0,238,255,242,255,236,255,253,255,250,255, +245,255,242,255,243,255,19,0,26,0,8,0,242,255,254,255,0,0,3,0,20,0,245,255,249,255,18,0,254,255,229,255, +244,255,34,0,34,0,249,255,232,255,245,255,239,255,227,255,247,255,13,0,20,0,253,255,204,255,235,255,60,0,8,0, +231,255,35,0,253,255,221,255,3,0,31,0,17,0,5,0,7,0,239,255,238,255,234,255,249,255,255,255,245,255,18,0, +255,255,9,0,20,0,0,0,4,0,237,255,239,255,230,255,244,255,24,0,19,0,32,0,253,255,225,255,253,255,7,0, +3,0,242,255,237,255,2,0,20,0,245,255,218,255,252,255,19,0,6,0,253,255,7,0,12,0,1,0,0,0,11,0, +238,255,225,255,12,0,253,255,232,255,2,0,20,0,17,0,11,0,3,0,241,255,249,255,246,255,0,0,4,0,223,255, +248,255,10,0,23,0,15,0,240,255,28,0,242,255,198,255,11,0,40,0,16,0,247,255,236,255,247,255,13,0,0,0, +254,255,22,0,2,0,237,255,236,255,12,0,16,0,234,255,250,255,5,0,249,255,251,255,2,0,248,255,234,255,250,255, +255,255,22,0,40,0,251,255,210,255,219,255,3,0,29,0,21,0,3,0,25,0,32,0,236,255,228,255,0,0,7,0, +5,0,240,255,231,255,20,0,36,0,2,0,15,0,21,0,233,255,221,255,246,255,13,0,11,0,9,0,251,255,221,255, +242,255,29,0,35,0,9,0,236,255,212,255,254,255,76,0,25,0,221,255,8,0,5,0,222,255,225,255,8,0,33,0, +244,255,232,255,11,0,16,0,253,255,252,255,20,0,240,255,224,255,12,0,12,0,45,0,29,0,209,255,223,255,229,255, +245,255,29,0,8,0,254,255,6,0,7,0,33,0,20,0,218,255,230,255,10,0,11,0,1,0,236,255,18,0,22,0, +217,255,221,255,13,0,48,0,253,255,222,255,23,0,18,0,251,255,254,255,228,255,225,255,19,0,22,0,222,255,234,255, +19,0,17,0,8,0,246,255,219,255,248,255,36,0,3,0,237,255,240,255,234,255,13,0,22,0,13,0,34,0,16,0, +236,255,248,255,11,0,0,0,243,255,4,0,13,0,241,255,243,255,241,255,243,255,35,0,25,0,247,255,215,255,199,255, +248,255,45,0,58,0,253,255,226,255,5,0,21,0,20,0,233,255,239,255,252,255,244,255,13,0,251,255,239,255,254,255, +20,0,11,0,254,255,16,0,228,255,246,255,23,0,249,255,6,0,255,255,243,255,242,255,245,255,11,0,17,0,6,0, +1,0,4,0,226,255,244,255,26,0,8,0,12,0,252,255,2,0,5,0,234,255,252,255,20,0,26,0,246,255,235,255, +1,0,6,0,5,0,13,0,22,0,237,255,243,255,234,255,220,255,16,0,0,0,55,0,48,0,201,255,247,255,20,0, +20,0,16,0,3,0,248,255,228,255,8,0,230,255,214,255,13,0,36,0,29,0,246,255,10,0,11,0,243,255,7,0, +4,0,5,0,5,0,248,255,245,255,20,0,12,0,233,255,8,0,0,0,245,255,254,255,249,255,18,0,13,0,1,0, +12,0,0,0,242,255,0,0,255,255,250,255,10,0,236,255,237,255,30,0,1,0,233,255,21,0,30,0,243,255,229,255, +251,255,16,0,246,255,240,255,34,0,10,0,247,255,12,0,247,255,253,255,250,255,202,255,244,255,42,0,250,255,8,0, +21,0,249,255,34,0,6,0,240,255,22,0,0,0,233,255,254,255,32,0,6,0,234,255,229,255,238,255,36,0,32,0, +244,255,217,255,242,255,18,0,2,0,8,0,14,0,14,0,236,255,218,255,24,0,38,0,247,255,224,255,239,255,237,255, +250,255,31,0,31,0,7,0,235,255,245,255,251,255,8,0,20,0,235,255,241,255,242,255,3,0,29,0,245,255,11,0, +16,0,224,255,7,0,45,0,10,0,241,255,242,255,236,255,237,255,7,0,38,0,9,0,4,0,46,0,15,0,234,255, +240,255,244,255,3,0,23,0,8,0,249,255,245,255,233,255,10,0,21,0,18,0,244,255,209,255,23,0,13,0,237,255, +252,255,242,255,255,255,220,255,6,0,45,0,241,255,250,255,250,255,231,255,249,255,32,0,37,0,21,0,29,0,249,255, +222,255,218,255,246,255,24,0,249,255,240,255,251,255,246,255,249,255,0,0,6,0,26,0,39,0,4,0,230,255,255,255, +17,0,221,255,234,255,27,0,1,0,11,0,26,0,4,0,224,255,238,255,19,0,242,255,16,0,20,0,226,255,7,0, +28,0,4,0,242,255,238,255,207,255,210,255,255,255,17,0,35,0,18,0,37,0,35,0,236,255,238,255,235,255,9,0, +25,0,231,255,236,255,32,0,39,0,252,255,232,255,251,255,2,0,255,255,25,0,16,0,224,255,238,255,12,0,24,0, +0,0,231,255,250,255,2,0,6,0,246,255,243,255,249,255,243,255,18,0,17,0,255,255,1,0,246,255,17,0,34,0, +227,255,219,255,21,0,25,0,20,0,253,255,238,255,245,255,231,255,249,255,255,255,16,0,13,0,245,255,25,0,2,0, +236,255,17,0,2,0,238,255,1,0,28,0,16,0,216,255,238,255,66,0,26,0,234,255,247,255,245,255,16,0,0,0, +2,0,2,0,231,255,8,0,4,0,15,0,28,0,255,255,246,255,250,255,242,255,222,255,245,255,243,255,25,0,40,0, +204,255,233,255,27,0,15,0,233,255,238,255,27,0,245,255,23,0,22,0,244,255,13,0,233,255,9,0,18,0,234,255, +0,0,4,0,15,0,21,0,217,255,195,255,29,0,43,0,248,255,4,0,3,0,248,255,233,255,1,0,31,0,248,255, +235,255,7,0,10,0,248,255,6,0,5,0,2,0,12,0,0,0,17,0,8,0,5,0,252,255,220,255,2,0,18,0, +248,255,227,255,235,255,14,0,30,0,9,0,236,255,243,255,219,255,236,255,35,0,22,0,17,0,244,255,226,255,8,0, +26,0,6,0,238,255,11,0,30,0,18,0,255,255,240,255,2,0,8,0,254,255,234,255,238,255,12,0,15,0,244,255, +233,255,254,255,1,0,239,255,202,255,250,255,68,0,252,255,242,255,12,0,241,255,27,0,8,0,253,255,46,0,10,0, +243,255,0,0,227,255,241,255,21,0,241,255,234,255,22,0,8,0,237,255,7,0,18,0,249,255,247,255,13,0,16,0, +236,255,232,255,4,0,233,255,244,255,36,0,16,0,9,0,254,255,215,255,241,255,18,0,233,255,242,255,52,0,25,0, +251,255,25,0,9,0,226,255,230,255,10,0,36,0,20,0,241,255,248,255,11,0,231,255,214,255,249,255,17,0,10,0, +241,255,243,255,9,0,25,0,34,0,13,0,237,255,235,255,11,0,17,0,243,255,235,255,238,255,5,0,17,0,237,255, +211,255,225,255,21,0,47,0,27,0,244,255,220,255,2,0,25,0,3,0,244,255,6,0,22,0,10,0,9,0,254,255, +216,255,206,255,10,0,46,0,6,0,252,255,241,255,235,255,25,0,23,0,249,255,5,0,7,0,241,255,254,255,13,0, +16,0,251,255,224,255,17,0,22,0,240,255,250,255,248,255,8,0,22,0,10,0,229,255,221,255,11,0,1,0,13,0, +17,0,225,255,254,255,31,0,18,0,8,0,241,255,252,255,30,0,238,255,193,255,250,255,44,0,15,0,198,255,228,255, +38,0,254,255,12,0,10,0,212,255,7,0,0,0,230,255,31,0,11,0,239,255,10,0,18,0,255,255,231,255,7,0, +10,0,230,255,12,0,38,0,25,0,244,255,227,255,21,0,18,0,232,255,230,255,244,255,2,0,7,0,4,0,247,255, +11,0,26,0,246,255,230,255,5,0,17,0,244,255,254,255,255,255,248,255,41,0,3,0,220,255,30,0,16,0,228,255, +9,0,3,0,222,255,243,255,6,0,20,0,17,0,248,255,243,255,219,255,245,255,24,0,247,255,21,0,34,0,239,255, +253,255,16,0,252,255,239,255,242,255,251,255,242,255,231,255,247,255,20,0,27,0,14,0,244,255,245,255,23,0,18,0, +251,255,228,255,228,255,242,255,228,255,22,0,59,0,7,0,253,255,3,0,250,255,225,255,218,255,13,0,26,0,32,0, +42,0,239,255,220,255,9,0,6,0,6,0,2,0,221,255,249,255,240,255,210,255,10,0,22,0,15,0,23,0,11,0, +8,0,247,255,253,255,6,0,3,0,14,0,243,255,235,255,24,0,16,0,235,255,245,255,254,255,17,0,26,0,242,255, +251,255,10,0,240,255,246,255,254,255,245,255,10,0,20,0,249,255,6,0,2,0,234,255,3,0,2,0,236,255,219,255, +254,255,45,0,6,0,250,255,255,255,252,255,15,0,252,255,242,255,245,255,250,255,13,0,13,0,9,0,251,255,238,255, +242,255,20,0,42,0,230,255,213,255,23,0,245,255,221,255,30,0,19,0,249,255,252,255,238,255,19,0,21,0,238,255, +8,0,16,0,250,255,249,255,250,255,4,0,19,0,7,0,241,255,0,0,255,255,237,255,10,0,24,0,7,0,238,255, +224,255,8,0,13,0,245,255,18,0,12,0,242,255,251,255,6,0,11,0,5,0,254,255,245,255,233,255,247,255,9,0, +252,255,247,255,26,0,19,0,221,255,247,255,45,0,21,0,250,255,225,255,216,255,18,0,28,0,12,0,250,255,217,255, +18,0,16,0,222,255,20,0,3,0,243,255,53,0,8,0,213,255,252,255,12,0,7,0,5,0,10,0,11,0,0,0, +249,255,236,255,249,255,14,0,251,255,3,0,28,0,240,255,224,255,17,0,5,0,241,255,6,0,255,255,246,255,226,255, +238,255,42,0,25,0,235,255,247,255,1,0,250,255,15,0,14,0,232,255,5,0,33,0,249,255,255,255,17,0,245,255, +10,0,20,0,233,255,251,255,247,255,238,255,45,0,26,0,231,255,241,255,236,255,253,255,23,0,0,0,242,255,250,255, +226,255,251,255,31,0,1,0,24,0,20,0,221,255,243,255,9,0,9,0,230,255,217,255,17,0,12,0,10,0,21,0, +253,255,19,0,28,0,241,255,220,255,250,255,18,0,251,255,243,255,247,255,3,0,11,0,249,255,3,0,5,0,243,255, +12,0,22,0,240,255,233,255,4,0,15,0,14,0,250,255,250,255,9,0,6,0,31,0,17,0,232,255,245,255,8,0, +2,0,232,255,235,255,237,255,220,255,13,0,44,0,253,255,221,255,251,255,12,0,251,255,16,0,9,0,243,255,17,0, +253,255,235,255,8,0,251,255,0,0,22,0,247,255,250,255,7,0,235,255,251,255,15,0,243,255,234,255,7,0,21,0, +8,0,5,0,4,0,4,0,252,255,250,255,20,0,7,0,254,255,0,0,226,255,249,255,13,0,249,255,9,0,251,255, +229,255,13,0,17,0,246,255,3,0,4,0,237,255,249,255,24,0,22,0,2,0,243,255,238,255,242,255,236,255,244,255, +1,0,253,255,6,0,18,0,20,0,1,0,243,255,12,0,13,0,251,255,250,255,247,255,246,255,248,255,3,0,254,255, +247,255,20,0,11,0,254,255,27,0,253,255,231,255,3,0,8,0,8,0,244,255,241,255,13,0,2,0,249,255,26,0, +8,0,219,255,249,255,1,0,255,255,23,0,245,255,249,255,16,0,8,0,13,0,236,255,222,255,248,255,10,0,29,0, +22,0,246,255,1,0,10,0,216,255,245,255,23,0,238,255,255,255,15,0,25,0,15,0,227,255,227,255,239,255,21,0, +25,0,250,255,247,255,3,0,31,0,3,0,253,255,26,0,247,255,242,255,1,0,245,255,0,0,20,0,249,255,239,255, +23,0,9,0,227,255,212,255,249,255,47,0,12,0,240,255,0,0,254,255,244,255,2,0,11,0,252,255,14,0,7,0, +246,255,0,0,3,0,18,0,255,255,252,255,10,0,245,255,251,255,5,0,17,0,10,0,254,255,250,255,229,255,252,255, +250,255,242,255,17,0,16,0,14,0,1,0,244,255,239,255,240,255,3,0,255,255,252,255,8,0,20,0,7,0,246,255, +11,0,31,0,27,0,240,255,221,255,255,255,1,0,243,255,6,0,14,0,253,255,4,0,6,0,254,255,10,0,247,255, +249,255,3,0,244,255,12,0,24,0,254,255,237,255,245,255,255,255,10,0,2,0,219,255,254,255,30,0,4,0,10,0, +251,255,253,255,28,0,21,0,255,255,231,255,234,255,5,0,254,255,244,255,29,0,23,0,241,255,7,0,240,255,228,255, +9,0,11,0,7,0,246,255,248,255,4,0,2,0,252,255,238,255,2,0,252,255,247,255,21,0,7,0,251,255,11,0, +16,0,245,255,232,255,249,255,238,255,8,0,33,0,248,255,235,255,246,255,239,255,248,255,14,0,9,0,242,255,235,255, +255,255,15,0,15,0,11,0,250,255,19,0,35,0,255,255,255,255,241,255,239,255,9,0,239,255,253,255,21,0,4,0, +11,0,1,0,221,255,243,255,44,0,15,0,228,255,246,255,254,255,20,0,5,0,220,255,254,255,9,0,250,255,10,0, +2,0,2,0,15,0,251,255,245,255,5,0,5,0,252,255,245,255,242,255,253,255,11,0,10,0,249,255,238,255,5,0, +20,0,247,255,226,255,239,255,6,0,11,0,12,0,13,0,12,0,16,0,4,0,251,255,254,255,4,0,1,0,226,255, +250,255,36,0,242,255,223,255,4,0,7,0,19,0,16,0,242,255,252,255,10,0,249,255,250,255,1,0,243,255,246,255, +7,0,15,0,13,0,0,0,239,255,239,255,6,0,10,0,230,255,225,255,5,0,29,0,32,0,255,255,225,255,253,255, +15,0,251,255,250,255,8,0,20,0,19,0,251,255,244,255,5,0,10,0,10,0,244,255,234,255,13,0,5,0,247,255, +14,0,6,0,252,255,252,255,238,255,244,255,8,0,15,0,1,0,242,255,238,255,251,255,22,0,7,0,240,255,10,0, +3,0,238,255,14,0,16,0,246,255,3,0,10,0,254,255,246,255,1,0,11,0,1,0,252,255,251,255,254,255,240,255, +5,0,34,0,226,255,238,255,41,0,246,255,224,255,250,255,24,0,38,0,255,255,217,255,217,255,11,0,33,0,253,255, +247,255,4,0,8,0,18,0,12,0,236,255,240,255,25,0,16,0,238,255,244,255,15,0,6,0,242,255,249,255,5,0, +4,0,247,255,2,0,9,0,247,255,7,0,12,0,241,255,232,255,250,255,16,0,10,0,8,0,11,0,250,255,243,255, +245,255,255,255,15,0,4,0,247,255,5,0,12,0,3,0,236,255,235,255,8,0,7,0,9,0,10,0,246,255,240,255, +246,255,9,0,9,0,9,0,11,0,249,255,5,0,255,255,252,255,17,0,246,255,234,255,4,0,16,0,1,0,250,255, +6,0,248,255,241,255,7,0,12,0,251,255,250,255,248,255,244,255,9,0,10,0,5,0,10,0,5,0,250,255,231,255, +4,0,23,0,7,0,4,0,253,255,3,0,243,255,241,255,16,0,13,0,1,0,246,255,247,255,0,0,4,0,4,0, +252,255,251,255,240,255,254,255,16,0,18,0,6,0,226,255,247,255,2,0,252,255,14,0,247,255,248,255,251,255,246,255, +3,0,248,255,12,0,17,0,244,255,1,0,27,0,12,0,254,255,9,0,241,255,251,255,7,0,225,255,2,0,29,0, +254,255,253,255,253,255,248,255,2,0,1,0,246,255,1,0,5,0,253,255,253,255,3,0,9,0,250,255,4,0,6,0, +243,255,8,0,5,0,248,255,255,255,2,0,11,0,13,0,15,0,0,0,248,255,5,0,250,255,250,255,6,0,245,255, +239,255,4,0,253,255,252,255,19,0,11,0,0,0,2,0,9,0,254,255,236,255,8,0,8,0,248,255,247,255,242,255, +7,0,255,255,246,255,12,0,14,0,4,0,242,255,248,255,9,0,2,0,1,0,6,0,252,255,241,255,247,255,254,255, +6,0,11,0,0,0,253,255,252,255,1,0,9,0,7,0,252,255,247,255,6,0,11,0,250,255,244,255,8,0,7,0, +249,255,6,0,240,255,235,255,15,0,10,0,8,0,3,0,248,255,8,0,10,0,5,0,0,0,254,255,1,0,252,255, +250,255,251,255,10,0,8,0,252,255,7,0,255,255,232,255,245,255,14,0,6,0,247,255,246,255,250,255,6,0,255,255, +0,0,13,0,252,255,0,0,10,0,247,255,238,255,247,255,17,0,11,0,242,255,1,0,253,255,245,255,2,0,255,255, +11,0,7,0,237,255,254,255,14,0,2,0,249,255,233,255,242,255,27,0,19,0,251,255,255,255,251,255,2,0,11,0, +10,0,18,0,254,255,230,255,243,255,7,0,3,0,248,255,254,255,2,0,251,255,252,255,11,0,12,0,254,255,249,255, +5,0,11,0,252,255,1,0,5,0,246,255,251,255,246,255,0,0,14,0,242,255,250,255,10,0,0,0,253,255,249,255, +5,0,12,0,250,255,246,255,4,0,255,255,253,255,7,0,249,255,247,255,253,255,251,255,8,0,11,0,6,0,248,255, +250,255,4,0,3,0,9,0,249,255,253,255,9,0,249,255,9,0,3,0,241,255,12,0,1,0,238,255,14,0,12,0, +241,255,254,255,248,255,243,255,19,0,9,0,250,255,8,0,252,255,243,255,8,0,11,0,246,255,246,255,5,0,2,0, +0,0,0,0,248,255,255,255,250,255,235,255,0,0,16,0,12,0,19,0,255,255,239,255,254,255,254,255,245,255,1,0, +8,0,5,0,22,0,8,0,235,255,4,0,17,0,7,0,252,255,239,255,0,0,8,0,255,255,2,0,251,255,240,255, +254,255,8,0,251,255,5,0,8,0,249,255,4,0,7,0,253,255,4,0,7,0,0,0,251,255,249,255,249,255,7,0, +16,0,7,0,245,255,246,255,9,0,4,0,255,255,255,255,252,255,5,0,249,255,245,255,2,0,4,0,4,0,1,0, +255,255,5,0,15,0,6,0,239,255,242,255,3,0,13,0,6,0,2,0,6,0,250,255,246,255,0,0,3,0,3,0, +2,0,4,0,253,255,251,255,0,0,4,0,6,0,246,255,250,255,4,0,255,255,14,0,252,255,236,255,8,0,6,0, +2,0,11,0,3,0,249,255,246,255,255,255,3,0,254,255,253,255,249,255,251,255,6,0,7,0,5,0,11,0,250,255, +240,255,7,0,5,0,253,255,253,255,251,255,10,0,9,0,251,255,248,255,2,0,9,0,250,255,255,255,2,0,246,255, +2,0,7,0,0,0,2,0,0,0,245,255,251,255,6,0,0,0,6,0,2,0,0,0,11,0,252,255,249,255,1,0, +247,255,248,255,255,255,252,255,249,255,11,0,14,0,249,255,0,0,6,0,3,0,10,0,243,255,239,255,17,0,14,0, +254,255,248,255,244,255,9,0,6,0,250,255,7,0,250,255,247,255,16,0,23,0,5,0,234,255,240,255,2,0,247,255, +251,255,12,0,253,255,241,255,255,255,7,0,3,0,250,255,254,255,8,0,5,0,2,0,250,255,247,255,1,0,2,0, +255,255,6,0,10,0,253,255,244,255,249,255,7,0,9,0,253,255,2,0,255,255,252,255,6,0,253,255,3,0,9,0, +253,255,252,255,250,255,253,255,4,0,4,0,1,0,0,0,248,255,250,255,10,0,1,0,248,255,0,0,10,0,15,0, +254,255,253,255,5,0,1,0,255,255,247,255,4,0,7,0,244,255,248,255,248,255,253,255,9,0,1,0,0,0,12,0, +7,0,240,255,239,255,6,0,17,0,7,0,242,255,247,255,2,0,250,255,250,255,2,0,6,0,9,0,8,0,251,255, +243,255,255,255,8,0,250,255,252,255,8,0,252,255,251,255,2,0,252,255,0,0,254,255,251,255,1,0,251,255,10,0, +23,0,254,255,236,255,244,255,8,0,16,0,5,0,7,0,0,0,241,255,1,0,10,0,247,255,232,255,2,0,26,0, +0,0,253,255,2,0,239,255,255,255,5,0,246,255,7,0,19,0,1,0,236,255,254,255,19,0,254,255,246,255,6,0, +3,0,1,0,9,0,1,0,250,255,252,255,251,255,255,255,6,0,9,0,255,255,251,255,11,0,251,255,237,255,6,0, +7,0,249,255,253,255,2,0,255,255,249,255,1,0,12,0,4,0,250,255,252,255,5,0,2,0,245,255,252,255,6,0, +252,255,0,0,7,0,255,255,8,0,13,0,0,0,248,255,247,255,254,255,247,255,241,255,9,0,13,0,2,0,6,0, +6,0,255,255,250,255,250,255,255,255,5,0,4,0,254,255,255,255,255,255,250,255,3,0,11,0,4,0,254,255,251,255, +251,255,4,0,1,0,249,255,5,0,2,0,251,255,1,0,247,255,253,255,14,0,7,0,251,255,247,255,255,255,4,0, +0,0,251,255,245,255,4,0,8,0,1,0,11,0,3,0,243,255,246,255,1,0,12,0,2,0,255,255,6,0,250,255, +244,255,255,255,11,0,9,0,250,255,253,255,1,0,249,255,3,0,9,0,245,255,242,255,5,0,14,0,7,0,0,0, +255,255,251,255,254,255,5,0,3,0,255,255,255,255,4,0,248,255,242,255,19,0,20,0,246,255,250,255,5,0,5,0, +239,255,229,255,13,0,25,0,255,255,252,255,4,0,0,0,255,255,1,0,249,255,246,255,252,255,255,255,5,0,10,0, +0,0,248,255,0,0,252,255,245,255,8,0,12,0,5,0,11,0,0,0,246,255,245,255,249,255,7,0,6,0,3,0, +0,0,248,255,250,255,248,255,1,0,17,0,4,0,243,255,252,255,0,0,243,255,248,255,11,0,10,0,5,0,3,0, +247,255,253,255,10,0,4,0,0,0,249,255,242,255,252,255,251,255,11,0,36,0,0,0,232,255,252,255,248,255,244,255, +3,0,9,0,6,0,2,0,6,0,6,0,255,255,3,0,1,0,244,255,244,255,254,255,9,0,14,0,2,0,2,0, +7,0,251,255,0,0,3,0,250,255,7,0,5,0,252,255,3,0,252,255,241,255,252,255,26,0,17,0,241,255,253,255, +4,0,243,255,255,255,7,0,251,255,254,255,1,0,252,255,10,0,13,0,251,255,251,255,254,255,254,255,0,0,0,0, +10,0,2,0,245,255,8,0,16,0,251,255,238,255,245,255,254,255,7,0,6,0,254,255,3,0,253,255,244,255,3,0, +6,0,250,255,248,255,250,255,250,255,252,255,2,0,7,0,13,0,14,0,250,255,240,255,9,0,14,0,250,255,1,0, +12,0,6,0,253,255,246,255,253,255,255,255,247,255,250,255,0,0,11,0,11,0,3,0,255,255,246,255,255,255,7,0, +255,255,2,0,251,255,255,255,11,0,250,255,248,255,8,0,5,0,253,255,254,255,4,0,11,0,2,0,241,255,255,255, +7,0,248,255,253,255,255,255,0,0,6,0,252,255,252,255,250,255,245,255,2,0,7,0,8,0,6,0,249,255,247,255, +254,255,1,0,0,0,250,255,253,255,2,0,2,0,4,0,255,255,246,255,253,255,3,0,5,0,8,0,0,0,2,0, +10,0,2,0,251,255,253,255,1,0,0,0,1,0,3,0,253,255,248,255,0,0,10,0,253,255,243,255,2,0,9,0, +1,0,247,255,255,255,9,0,244,255,250,255,16,0,0,0,255,255,4,0,248,255,252,255,253,255,252,255,9,0,5,0, +251,255,2,0,4,0,253,255,248,255,249,255,4,0,3,0,246,255,252,255,7,0,8,0,255,255,253,255,2,0,2,0, +4,0,252,255,250,255,0,0,247,255,2,0,8,0,251,255,4,0,7,0,1,0,0,0,249,255,251,255,251,255,0,0, +8,0,254,255,251,255,251,255,255,255,11,0,3,0,249,255,2,0,8,0,2,0,245,255,254,255,16,0,5,0,251,255, +255,255,249,255,248,255,255,255,7,0,9,0,253,255,253,255,2,0,3,0,1,0,250,255,253,255,2,0,252,255,251,255, +0,0,5,0,251,255,247,255,4,0,6,0,8,0,5,0,0,0,6,0,2,0,248,255,238,255,251,255,14,0,6,0, +6,0,6,0,250,255,252,255,2,0,2,0,250,255,251,255,6,0,255,255,246,255,248,255,255,255,13,0,11,0,242,255, +241,255,10,0,15,0,7,0,1,0,250,255,4,0,8,0,247,255,242,255,252,255,6,0,7,0,4,0,0,0,254,255, +4,0,5,0,3,0,0,0,251,255,254,255,5,0,254,255,253,255,7,0,253,255,243,255,2,0,0,0,251,255,4,0, +3,0,2,0,252,255,247,255,6,0,12,0,1,0,249,255,253,255,4,0,1,0,247,255,246,255,3,0,13,0,8,0, +253,255,254,255,2,0,252,255,254,255,5,0,3,0,255,255,250,255,0,0,3,0,254,255,1,0,3,0,7,0,3,0, +251,255,252,255,250,255,254,255,0,0,253,255,0,0,255,255,6,0,8,0,255,255,0,0,2,0,1,0,253,255,254,255, +5,0,253,255,249,255,1,0,8,0,5,0,249,255,249,255,2,0,12,0,15,0,251,255,245,255,5,0,2,0,249,255, +251,255,1,0,253,255,247,255,4,0,4,0,250,255,9,0,8,0,254,255,6,0,251,255,250,255,1,0,251,255,6,0, +5,0,253,255,6,0,3,0,255,255,249,255,248,255,13,0,7,0,244,255,249,255,7,0,8,0,0,0,0,0,0,0, +252,255,253,255,252,255,1,0,2,0,255,255,3,0,1,0,249,255,255,255,9,0,1,0,246,255,243,255,254,255,16,0, +255,255,237,255,1,0,13,0,5,0,1,0,4,0,3,0,253,255,254,255,2,0,5,0,4,0,5,0,8,0,248,255, +241,255,255,255,1,0,4,0,5,0,0,0,255,255,254,255,251,255,254,255,255,255,254,255,3,0,5,0,255,255,254,255, +0,0,0,0,3,0,2,0,252,255,249,255,254,255,1,0,3,0,9,0,4,0,246,255,249,255,6,0,3,0,2,0, +5,0,252,255,255,255,5,0,253,255,2,0,4,0,0,0,4,0,255,255,247,255,248,255,250,255,247,255,253,255,6,0, +5,0,5,0,1,0,1,0,4,0,250,255,250,255,4,0,5,0,1,0,252,255,251,255,1,0,9,0,3,0,251,255, +2,0,1,0,253,255,1,0,254,255,0,0,4,0,6,0,5,0,253,255,254,255,254,255,251,255,254,255,253,255,253,255, +3,0,4,0,3,0,0,0,251,255,253,255,3,0,253,255,250,255,3,0,6,0,255,255,255,255,4,0,0,0,251,255, +253,255,255,255,4,0,5,0,255,255,250,255,250,255,1,0,3,0,2,0,5,0,1,0,249,255,249,255,0,0,253,255, +255,255,9,0,7,0,255,255,251,255,0,0,2,0,255,255,5,0,251,255,241,255,4,0,12,0,6,0,3,0,253,255, +250,255,253,255,3,0,3,0,255,255,255,255,0,0,255,255,250,255,2,0,10,0,254,255,249,255,1,0,3,0,255,255, +2,0,5,0,2,0,0,0,253,255,254,255,2,0,1,0,4,0,2,0,249,255,253,255,4,0,255,255,251,255,254,255, +253,255,254,255,5,0,2,0,249,255,249,255,255,255,4,0,3,0,1,0,0,0,1,0,2,0,0,0,250,255,249,255, +3,0,7,0,4,0,0,0,250,255,252,255,4,0,2,0,255,255,254,255,252,255,254,255,4,0,1,0,251,255,2,0, +5,0,255,255,254,255,0,0,0,0,253,255,252,255,253,255,254,255,4,0,6,0,3,0,254,255,254,255,3,0,2,0, +1,0,3,0,2,0,1,0,255,255,252,255,255,255,4,0,1,0,253,255,3,0,3,0,254,255,252,255,250,255,252,255, +0,0,255,255,255,255,0,0,2,0,1,0,2,0,5,0,2,0,0,0,254,255,255,255,5,0,2,0,254,255,255,255, +255,255,255,255,254,255,253,255,3,0,7,0,1,0,254,255,0,0,0,0,253,255,1,0,5,0,0,0,255,255,253,255, +249,255,254,255,3,0,2,0,2,0,1,0,2,0,0,0,254,255,0,0,255,255,1,0,0,0,255,255,0,0,254,255, +2,0,3,0,255,255,1,0,1,0,254,255,253,255,2,0,6,0,0,0,255,255,0,0,248,255,249,255,2,0,3,0, +1,0,5,0,4,0,253,255,254,255,2,0,3,0,2,0,255,255,252,255,0,0,3,0,0,0,0,0,3,0,255,255, +254,255,0,0,0,0,255,255,255,255,1,0,1,0,253,255,254,255,3,0,255,255,253,255,1,0,255,255,3,0,5,0, +255,255,0,0,0,0,254,255,3,0,255,255,249,255,0,0,5,0,3,0,253,255,255,255,2,0,1,0,1,0,1,0, +255,255,254,255,252,255,2,0,3,0,248,255,251,255,5,0,5,0,5,0,254,255,252,255,2,0,254,255,253,255,1,0, +2,0,3,0,255,255,255,255,1,0,254,255,1,0,1,0,252,255,255,255,2,0,3,0,4,0,1,0,255,255,0,0, +255,255,254,255,0,0,1,0,253,255,252,255,1,0,3,0,1,0,2,0,2,0,254,255,255,255,0,0,254,255,1,0, +4,0,0,0,254,255,0,0,1,0,0,0,255,255,3,0,2,0,252,255,253,255,2,0,2,0,254,255,253,255,1,0, +3,0,0,0,254,255,1,0,1,0,253,255,1,0,3,0,254,255,252,255,0,0,4,0,1,0,253,255,254,255,1,0, +2,0,0,0,255,255,1,0,2,0,0,0,254,255,253,255,255,255,2,0,4,0,255,255,253,255,2,0,3,0,254,255, +253,255,255,255,0,0,1,0,0,0,255,255,2,0,2,0,255,255,0,0,0,0,252,255,255,255,3,0,1,0,255,255, +255,255,1,0,1,0,255,255,254,255,254,255,1,0,3,0,0,0,254,255,1,0,1,0,255,255,253,255,251,255,1,0, +6,0,2,0,254,255,255,255,2,0,2,0,254,255,254,255,1,0,1,0,255,255,2,0,3,0,253,255,252,255,0,0, +254,255,1,0,5,0,0,0,0,0,3,0,255,255,252,255,254,255,3,0,4,0,255,255,0,0,3,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,2,0,2,0,0,0,253,255,253,255,254,255,2,0,4,0, +2,0,0,0,0,0,0,0,254,255,253,255,255,255,1,0,254,255,252,255,1,0,2,0,3,0,2,0,254,255,255,255, +2,0,0,0,0,0,1,0,255,255,0,0,4,0,1,0,250,255,253,255,3,0,1,0,1,0,255,255,253,255,1,0, +2,0,254,255,255,255,1,0,254,255,253,255,255,255,0,0,255,255,1,0,2,0,255,255,0,0,1,0,2,0,1,0, +255,255,255,255,0,0,1,0,2,0,254,255,254,255,1,0,1,0,2,0,2,0,0,0,0,0,0,0,255,255,255,255, +255,255,1,0,2,0,2,0,0,0,252,255,255,255,2,0,255,255,253,255,254,255,3,0,4,0,255,255,255,255,1,0, +1,0,1,0,255,255,254,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,1,0,0,0,0,0,1,0,255,255, +1,0,0,0,0,0,1,0,253,255,254,255,4,0,2,0,0,0,255,255,254,255,0,0,255,255,254,255,1,0,255,255, +0,0,2,0,255,255,0,0,0,0,0,0,2,0,255,255,255,255,1,0,255,255,1,0,1,0,1,0,3,0,255,255, +253,255,3,0,2,0,254,255,0,0,0,0,255,255,255,255,0,0,2,0,2,0,1,0,0,0,254,255,254,255,0,0, +255,255,255,255,1,0,255,255,255,255,1,0,1,0,2,0,0,0,254,255,2,0,0,0,254,255,0,0,255,255,255,255, +2,0,2,0,1,0,254,255,253,255,255,255,255,255,3,0,3,0,255,255,0,0,1,0,254,255,255,255,2,0,1,0, +1,0,1,0,255,255,255,255,2,0,255,255,254,255,0,0,254,255,254,255,2,0,2,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,1,0,1,0,255,255,2,0,1,0,254,255,0,0,1,0,255,255,1,0,0,0,0,0,1,0, +255,255,255,255,0,0,1,0,2,0,0,0,0,0,2,0,0,0,254,255,0,0,1,0,255,255,0,0,0,0,0,0, +2,0,0,0,254,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0,254,255,0,0,255,255,254,255,2,0,0,0, +254,255,1,0,1,0,0,0,255,255,1,0,2,0,255,255,254,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,2,0,1,0,255,255, +0,0,1,0,0,0,255,255,254,255,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,1,0,0,0,255,255, +0,0,255,255,0,0,1,0,0,0,2,0,0,0,253,255,254,255,0,0,255,255,255,255,1,0,2,0,255,255,0,0, +1,0,1,0,255,255,0,0,1,0,253,255,254,255,2,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,1,0, +0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,0,0,255,255,2,0,0,0,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,1,0,254,255, +255,255,1,0,0,0,1,0,1,0,254,255,1,0,0,0,255,255,0,0,255,255,255,255,1,0,0,0,0,0,0,0, +0,0,1,0,255,255,0,0,0,0,254,255,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,2,0,0,0, +0,0,0,0,254,255,0,0,2,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +2,0,0,0,255,255,1,0,0,0,0,0,0,0,255,255,2,0,1,0,255,255,255,255,0,0,1,0,1,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,1,0,0,0,255,255,1,0,0,0, +255,255,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255, +0,0,1,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/glass1.pcm b/src/client/sound/data/glass1.pcm new file mode 100755 index 0000000..a1e1141 --- /dev/null +++ b/src/client/sound/data/glass1.pcm @@ -0,0 +1,5086 @@ +unsigned char PCM_glass1[61006] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x1f,0x77,0x0,0x0,0x70,0x1,0xf9,0x0,0x8b,0x0,0x5,0x1, +0xa1,0xff,0x98,0xff,0xd5,0xff,0xa8,0xfe,0xc4,0xfe,0x8b,0xff, +0x39,0xff,0x52,0xff,0x79,0x0,0x3e,0x0,0xc5,0xff,0x21,0x1, +0x56,0x2,0x37,0x2,0xe1,0xff,0xae,0xff,0xa1,0x2,0x32,0x0, +0x7d,0x0,0x37,0x5,0xfe,0x0,0xb9,0xff,0x9a,0xfe,0xb2,0xf5, +0x49,0xfd,0xc1,0x4,0xac,0xfd,0xce,0x2,0x26,0x1,0xd4,0xf7, +0x6c,0xfe,0x44,0xfa,0x32,0xf7,0x7e,0x4,0xa9,0x4,0xb8,0x4, +0x4c,0x3,0xde,0xf8,0x9b,0xff,0x2e,0x0,0xf,0xfc,0xcd,0xa, +0x86,0xa,0x75,0x4,0x72,0x3,0x1c,0xf9,0x31,0xfd,0xff,0xf4, +0x6b,0xe9,0xff,0xb,0x71,0x11,0x4d,0xf5,0x9b,0x4,0xaa,0x7, +0x6b,0xf7,0x74,0xd,0x8a,0x19,0xdc,0x3,0x79,0xf4,0xd2,0xf8, +0x12,0x9,0xe3,0xe,0xbb,0xfa,0x4c,0xe1,0x60,0xee,0x7d,0x8, +0x48,0xfa,0x7b,0xfd,0xf5,0xb,0x3f,0xe7,0x83,0xf1,0x9d,0x23, +0x90,0x11,0x83,0x4,0xd4,0xa,0xcc,0xf8,0x6a,0xf8,0xfe,0xec, +0x56,0xec,0xd2,0xc,0xe5,0x1,0xeb,0x1,0xa7,0x11,0x6d,0xef, +0x23,0xe9,0xfc,0xeb,0xe0,0xeb,0x38,0x1d,0xe6,0x12,0xa,0xff, +0x4b,0x34,0x91,0x2f,0x44,0x2b,0x57,0x3f,0xe1,0x18,0xef,0x42, +0x14,0x65,0x82,0xfa,0xba,0xd4,0xfd,0xd1,0x8e,0xa3,0xd,0xec, +0xd5,0x40,0xa6,0x2c,0xe1,0x9,0x73,0xcf,0x21,0xa2,0xa7,0xae, +0x5c,0xcb,0x9c,0x8,0x65,0x39,0x1c,0x34,0x2a,0x11,0x4c,0xc6, +0x7,0xb6,0xe9,0x7,0x47,0x35,0xbd,0x3c,0x4c,0x3d,0x2c,0xf, +0xf8,0xd8,0xbd,0xb3,0x0,0xbd,0x91,0x10,0x6f,0x4b,0xeb,0x29, +0x4a,0xd9,0x4b,0xa9,0x22,0xce,0x5b,0xff,0x1d,0xdf,0xb,0x9a, +0x63,0xa5,0xed,0xe0,0x2a,0xb2,0x0,0x80,0x3a,0xb9,0x6f,0xb9, +0x63,0x97,0x46,0xdd,0xd7,0xe5,0x7f,0xc6,0x5d,0xe2,0xa5,0xb1, +0x86,0x90,0xea,0xfb,0x81,0x63,0x9b,0x58,0x1b,0xda,0xab,0xa6, +0xb8,0x23,0xa5,0x47,0x56,0x5,0xa9,0x19,0x2a,0x1c,0x5e,0xec, +0xc0,0xcd,0x6f,0xaa,0x48,0x9e,0x9a,0x95,0x1a,0xb3,0xed,0x16, +0x48,0x10,0x56,0xb2,0x2,0x9d,0xf7,0xaa,0xf4,0xcb,0x2e,0xd8, +0xf2,0xc4,0x87,0xb,0xbb,0x3d,0x9c,0x13,0x46,0x47,0xff,0x7f, +0xa,0x41,0xa2,0xe2,0x8b,0xc1,0x5c,0xac,0xe2,0xad,0x6d,0x1, +0x8e,0x5e,0x63,0x2c,0x6c,0xb5,0x33,0xaa,0x5e,0xb,0x5a,0x6e, +0x65,0x6c,0xe3,0x33,0xac,0x2c,0x86,0x32,0x46,0x41,0xb8,0x4a, +0xe9,0x21,0xf8,0x3c,0x1,0x6c,0xb7,0x5,0xc3,0xbc,0xb,0x26, +0xc7,0x73,0xb1,0x10,0xae,0xa1,0x3a,0xc9,0x2e,0xdb,0x9a,0xa4, +0x4f,0xf8,0x2,0x4c,0xa,0x29,0x24,0x42,0xb3,0x4e,0xa7,0x59, +0xff,0x7f,0x1a,0x31,0x2,0x85,0xd1,0xf6,0x72,0x51,0x7a,0xef, +0x34,0xb0,0xee,0xba,0x38,0xa,0x62,0x4c,0xfe,0x8,0xaf,0xb3, +0xc,0x97,0x45,0x93,0x93,0xd2,0x12,0x40,0xf2,0x6d,0x4c,0x21, +0x3d,0xbc,0x7c,0x9e,0xec,0x86,0xe0,0x95,0x39,0x1,0xa6,0x50, +0x1e,0x59,0x9b,0xa,0x52,0x93,0x9e,0xad,0xc2,0xd6,0x9a,0x9a, +0xe3,0xef,0x83,0x57,0xcf,0xf0,0xea,0xb4,0x93,0xc8,0xfc,0x9a, +0xef,0xab,0xf6,0x0,0x42,0x38,0xb,0x68,0x10,0x62,0x8a,0x4, +0xf,0xa4,0x23,0xa8,0xf2,0xb,0x4e,0x4c,0x67,0x54,0x28,0x3c, +0xbc,0xcf,0x72,0x87,0x63,0xb2,0x5b,0xbd,0x17,0xa7,0x30,0xbe, +0x78,0xed,0x2,0x30,0xc7,0x55,0x91,0x4d,0x16,0x44,0x74,0x24, +0xd8,0x11,0xb2,0x27,0xbf,0x34,0x7c,0x53,0x37,0x71,0xfe,0x64, +0x50,0x36,0x93,0xbf,0xb5,0x98,0x72,0x27,0xe0,0x5a,0xf3,0x25, +0x67,0x5c,0xff,0x7f,0xfe,0x6a,0xf2,0x54,0x6b,0x26,0xd1,0x36, +0x44,0x78,0x7d,0x51,0xab,0x29,0xbc,0x4f,0x19,0x45,0x60,0xf3, +0x5e,0xa8,0x61,0xaa,0x39,0x0,0xae,0x51,0xcb,0x46,0xe2,0xda, +0xb7,0xac,0x8d,0x29,0xff,0x7f,0x58,0x55,0x99,0xd9,0xc1,0x8c, +0x3f,0x93,0xe3,0xb1,0x7d,0xda,0x7b,0x46,0x69,0x6b,0x71,0xd, +0x36,0xd3,0xb9,0xab,0x86,0x97,0x34,0x2,0x2e,0x4d,0x5f,0x20, +0x68,0x1,0x38,0xe0,0xd6,0xc2,0x7d,0xec,0x5f,0xf1,0x71,0xab, +0x9,0xaa,0xd5,0x18,0x4b,0x62,0x43,0x15,0xcd,0xad,0x76,0xb0, +0xfd,0xde,0xe6,0xfe,0xc1,0xc,0x9f,0xf1,0xeb,0xbc,0x92,0x96, +0x20,0x9e,0xe9,0xb5,0xca,0x9e,0xa7,0xa9,0x3c,0x1b,0xac,0x5c, +0xc4,0x11,0x47,0xb8,0xd2,0xc0,0xd,0xfa,0x49,0xfe,0x40,0xfb, +0x2,0x44,0xef,0x69,0xa1,0x11,0xec,0xae,0x52,0x9f,0x6a,0xcc, +0xca,0x11,0x8e,0x38,0xa,0x25,0x97,0x1d,0x5f,0x43,0x12,0x36, +0xff,0xd9,0x78,0x9c,0x6,0x9b,0x5a,0xb1,0xd4,0xfd,0xb4,0x55, +0x9d,0x45,0x1f,0xeb,0x39,0xbb,0x1,0xd3,0xdc,0xfe,0x92,0xff, +0xc5,0xdb,0xae,0xde,0x4f,0xc,0x2f,0x18,0xf2,0xee,0x7c,0xc1, +0xb6,0xba,0x11,0xe4,0x11,0x1c,0xd5,0x39,0xfb,0x34,0x75,0xf, +0xe3,0xdd,0xec,0xc6,0x68,0xbf,0x44,0xb4,0x61,0xd5,0x2a,0x21, +0xa,0x35,0x43,0x10,0xce,0x26,0xf0,0x63,0xa1,0x31,0x50,0xb6, +0xb,0xbf,0xc5,0x37,0x17,0x44,0x52,0xeb,0x10,0xee,0x44,0x3e, +0xea,0x4a,0xd8,0x1e,0x89,0x4,0x1c,0xf7,0x67,0xf4,0x9a,0xd, +0x75,0x28,0x9f,0x2e,0xef,0x3a,0x66,0x50,0x6f,0x33,0xb2,0xd9, +0x83,0x9e,0x47,0xb5,0x93,0xfa,0xf3,0x4a,0xb8,0x55,0x8a,0xe1, +0x3c,0x97,0x38,0xf9,0xf0,0x32,0x82,0xc4,0xa4,0x8f,0x4,0xef, +0xa6,0x2e,0xd7,0x1d,0x54,0xb,0xfd,0xe9,0x2,0xa8,0x9c,0x8a, +0x93,0xca,0x16,0x17,0x5f,0xee,0x88,0xa6,0xfa,0xd7,0x9d,0xfe, +0x46,0xbf,0x54,0xe6,0x5b,0x50,0xce,0x0,0x18,0x94,0x6b,0xe5, +0xf0,0x18,0x3a,0xbe,0x89,0xad,0x61,0xf1,0xb6,0xea,0xee,0xb5, +0xfd,0xb7,0x6c,0xff,0x25,0x47,0x90,0x37,0x4d,0x0,0xd3,0xf4, +0x84,0xe2,0x8d,0xd6,0xf3,0x1e,0x65,0x4e,0xc0,0x19,0x5b,0x7, +0x9d,0x21,0x69,0x6,0x14,0x2,0x9,0x4d,0xa9,0x73,0x3c,0x38, +0xd4,0xd3,0xa5,0xa6,0xb0,0xf1,0x41,0x55,0x9f,0x51,0xeb,0x32, +0xa7,0x54,0x49,0x5a,0xf8,0x1,0x39,0xaa,0xb7,0xb6,0x9d,0xb, +0x26,0x3b,0xa,0x30,0x7a,0x31,0x8,0x2a,0x5b,0xf8,0x8a,0x5, +0x8b,0x5a,0x2e,0x58,0x56,0xfc,0x90,0xd2,0x83,0xe1,0x4a,0xf1, +0xa0,0x7,0x6,0x1d,0xb7,0x18,0x79,0xf3,0x40,0xc4,0x21,0xd8, +0x13,0x30,0xd7,0x44,0x5,0x1,0xc0,0xeb,0xfb,0xd,0xed,0x0, +0xfe,0xcf,0xfc,0xca,0x7a,0xff,0x84,0x34,0x59,0x28,0xc2,0x2, +0x43,0x24,0x7f,0x46,0x51,0xe7,0x0,0x80,0x1,0xb8,0x88,0x3f, +0xe4,0x47,0x73,0xf0,0xfe,0xd8,0xde,0x12,0xc8,0x33,0xfa,0x1f, +0x61,0x21,0x80,0x36,0xb8,0x8,0x2e,0xbc,0x3c,0xd3,0xab,0x26, +0x3,0x1d,0xcb,0xd0,0xa5,0xd1,0x2a,0x10,0xc4,0x1c,0xbe,0x4, +0x71,0x10,0x2d,0x28,0xb7,0x1c,0x6d,0x7,0xf6,0xff,0x88,0xf3, +0xee,0xe9,0x36,0xf8,0xf1,0x8,0x81,0x10,0x89,0x21,0xba,0x24, +0x88,0xfd,0xe9,0xdd,0xc4,0xf4,0xbb,0x14,0xec,0x7,0xcb,0xe7, +0x88,0xec,0x8b,0x14,0xa2,0x2e,0xfe,0x32,0x6a,0x31,0x59,0x5, +0xd1,0xbf,0x41,0xd8,0xb0,0x38,0xff,0x2c,0x83,0xbe,0x0,0xaa, +0x2e,0x4,0x0,0x49,0xf1,0x45,0xd9,0x1c,0x1f,0xf7,0xad,0xed, +0xf,0xf7,0xdf,0x6,0x1e,0xe,0x3,0xf1,0x9d,0xdc,0xbe,0x12, +0x33,0x45,0xa1,0x17,0x45,0xd8,0x78,0xda,0x29,0xf1,0xac,0xf6, +0xa6,0xff,0x16,0xc,0x3e,0x3,0x2c,0xe5,0xe5,0xe1,0x3b,0x13, +0x9d,0x33,0xc9,0x13,0xec,0xf8,0xea,0xc,0x4e,0x1e,0x2,0x12, +0xb9,0xf5,0x0,0xdf,0xbe,0xe7,0x1c,0x0,0x30,0xa,0xbd,0x12, +0xc3,0x10,0x1b,0xf1,0xa6,0xe5,0xe9,0x9,0x27,0x2b,0xc7,0x29, +0x97,0xc,0xf8,0xfb,0x7c,0x2d,0x67,0x5f,0x40,0x2b,0xfb,0xe5, +0xbb,0xfb,0x10,0x20,0x78,0xf,0xb4,0xf5,0x2,0xeb,0xef,0xf8, +0x54,0x1c,0x3e,0x1c,0x80,0xf6,0x43,0xe9,0xd9,0xfd,0xba,0x20, +0xb4,0x2d,0x31,0xf5,0xd,0xc0,0x7e,0xed,0x11,0x24,0xac,0xf, +0x2e,0xfd,0x8e,0x8,0xaa,0x7,0x36,0x10,0xed,0x16,0x56,0xec, +0xd4,0xc6,0x4a,0xe3,0x55,0xd,0xe4,0x1,0xf4,0xd7,0xfa,0xe4, +0x4f,0x28,0x78,0x24,0xcb,0xd4,0x7e,0xce,0x28,0x0,0x6a,0xf0, +0x75,0xed,0x51,0x3a,0x49,0x3f,0xa5,0xd2,0xc9,0xa0,0x8a,0xd3, +0x48,0xec,0x45,0xd6,0x75,0xeb,0x1e,0x22,0xa6,0x13,0xb5,0xd0, +0xb0,0xd9,0x7b,0x24,0xe2,0x2d,0x1e,0xfe,0x6b,0xfa,0x7f,0xe, +0x1,0xfc,0x60,0xe4,0x76,0xf1,0xa9,0xd,0x7f,0x1b,0x94,0x12, +0xb9,0xfb,0x13,0xf3,0x26,0x2,0x23,0x5,0xc7,0xed,0x8d,0xe9, +0x6d,0x2,0x9b,0x9,0x1d,0xd,0x15,0x2c,0x48,0x23,0x46,0xe4, +0x86,0xe6,0x13,0x2d,0x8f,0x2f,0x1,0xf5,0xd7,0xf1,0x67,0x1d, +0xa8,0x2c,0x6a,0x23,0x30,0x27,0x3f,0x2b,0x53,0x4,0x3d,0xca, +0x19,0xd0,0xab,0x8,0xe8,0x1d,0x43,0x1c,0xb0,0x28,0xe,0x1a, +0x29,0xfb,0xae,0xff,0x5,0x2,0x5f,0xeb,0x9f,0xeb,0xa5,0xfc, +0x70,0xa,0x18,0x23,0xb8,0x16,0xd3,0xd8,0x23,0xde,0x6e,0x30, +0x10,0x33,0xc5,0xd3,0x74,0xb5,0x47,0x10,0x5d,0x62,0x96,0x3f, +0xc8,0xe2,0xc2,0xbd,0x43,0xd2,0xe5,0xf0,0x5c,0x21,0x47,0x49, +0x6a,0x2d,0xa8,0xf8,0x37,0xe7,0x49,0xda,0xad,0xd9,0xd2,0xc, +0x68,0x2d,0x21,0xe,0x70,0xff,0x91,0x6,0xbf,0xe2,0x18,0xd3, +0xcb,0x11,0x7b,0x36,0xb0,0x5,0x90,0xdd,0x52,0xf2,0xd5,0x7, +0x85,0xfa,0x46,0xfc,0xdf,0x28,0x13,0x2d,0x15,0xde,0x38,0xbc, +0x27,0xff,0xd8,0x14,0x53,0xdf,0x36,0xde,0x4c,0xf5,0x9b,0xdc, +0x4c,0xf7,0x92,0x53,0x76,0x60,0x83,0x16,0xc3,0xdc,0x1f,0xd1, +0xf1,0xf9,0xcc,0x2b,0xbd,0x0,0x6a,0xa8,0xba,0xbc,0xf7,0x30, +0x9c,0x72,0x1,0x37,0x19,0xc4,0x4b,0xaf,0x3a,0x3,0x1a,0x18, +0x49,0xd6,0x76,0xde,0xac,0x32,0x73,0x4b,0xfc,0x22,0x3f,0xfc, +0x34,0xee,0x8c,0x2,0x79,0xf,0x2f,0xe2,0xd3,0xc6,0x51,0xd, +0x39,0x5a,0x31,0x44,0xc9,0xff,0x37,0xde,0xb9,0xd2,0xe1,0xd1, +0x9a,0xf9,0xb2,0x20,0xdd,0xfa,0xf9,0xba,0xd6,0xc3,0x12,0xef, +0x8d,0xe7,0x1d,0xcc,0x45,0xe9,0xe7,0x30,0x17,0x44,0xe2,0x6, +0x81,0xe5,0x7f,0xf,0x6d,0x12,0xc9,0xdb,0xe5,0xe8,0xe5,0x25, +0xad,0x1f,0x4e,0xf7,0x97,0xf5,0x20,0x17,0xe2,0x4c,0x53,0x56, +0x7b,0xb,0xdc,0xe0,0xa,0x4,0x2b,0xf7,0xb3,0xc7,0xfc,0xea, +0x6,0x23,0xc3,0x26,0xaf,0x33,0x25,0x39,0xb6,0xfc,0x59,0xc1, +0xef,0xc0,0xc9,0xed,0x18,0x3a,0x54,0x54,0x15,0x3,0xbe,0xc1, +0xa7,0xdc,0xea,0xeb,0x3c,0xe0,0xde,0xf,0xa1,0x53,0x14,0x59, +0x74,0x1b,0xc3,0xb3,0x1b,0x82,0x5e,0xdc,0x5d,0x4e,0xc5,0x54, +0x65,0x2f,0xe0,0xb,0xc1,0xc5,0xf4,0x9f,0xa8,0xcb,0x85,0xf7, +0x4a,0x13,0xe2,0x40,0xc6,0x47,0x1c,0x1c,0xfb,0xf5,0xaf,0xc1, +0xf4,0x8b,0x2b,0xac,0x33,0xfb,0x90,0x19,0x6a,0x2a,0x3,0x4b, +0x26,0x3a,0x84,0xf5,0x28,0xd2,0x39,0xfe,0xc9,0x41,0x45,0x37, +0x22,0xec,0xd5,0xdc,0x7d,0xb,0x39,0xd,0xd6,0xf5,0x7e,0x15, +0x25,0x42,0xdf,0x35,0x9d,0xfe,0x8c,0xcb,0x89,0xc2,0x91,0xe4, +0xfd,0x6,0x57,0x18,0x1c,0x2e,0x7c,0x42,0x66,0x34,0xb6,0x5, +0x63,0xea,0xa0,0xf8,0x1f,0xed,0x10,0xad,0xee,0xad,0xd,0x26, +0x37,0x78,0x83,0x31,0x83,0xcb,0xf4,0xd6,0x5c,0x20,0xa3,0x1e, +0x5a,0xd7,0xe2,0xd7,0x8f,0x3c,0xc0,0x65,0x97,0xc,0x5a,0xcb, +0xa9,0x2,0x30,0x31,0xb5,0xfa,0x2d,0xcd,0xfc,0xf6,0x8b,0x1c, +0x77,0xfa,0x38,0xce,0x67,0xd5,0x2b,0xfd,0x48,0x7,0x85,0xe2, +0x94,0xe0,0xae,0x25,0x9f,0x38,0x13,0xe6,0xc5,0xbf,0x59,0xd, +0x19,0x59,0x72,0x48,0x8b,0x7,0x4c,0xf9,0xab,0x24,0x2c,0x4, +0x18,0x91,0x66,0xa5,0x39,0x48,0xc8,0x66,0xba,0xeb,0x5c,0xc8, +0xa3,0x18,0x7c,0x47,0x5d,0x28,0x66,0xe7,0x16,0xce,0x9d,0xf8, +0x5c,0xa,0xdc,0xe3,0x10,0xe7,0x60,0x8,0x7d,0xfa,0xdd,0xfd, +0x3c,0x33,0x53,0x30,0xcc,0xf3,0xd9,0xe9,0x8d,0x12,0xce,0x2e, +0x33,0x2b,0x95,0x0,0x4d,0xd9,0xdb,0xfa,0x3c,0x2b,0x0,0xa, +0x81,0xdc,0x66,0xfb,0x88,0x22,0x16,0x15,0x5b,0xf4,0x30,0xd4, +0x3f,0xd7,0x9a,0x14,0xb6,0x27,0x94,0xea,0x12,0xe1,0x9b,0x1b, +0xbc,0x2a,0xe6,0x12,0x57,0xeb,0x6d,0xb6,0xb2,0xe2,0xb0,0x59, +0x3c,0x50,0x3,0xf1,0xb3,0xf1,0xa,0xd,0x1d,0xf0,0x94,0xe3, +0x1,0xe6,0x89,0xf2,0x25,0x32,0xc,0x48,0x24,0xa,0xca,0xed, +0x2c,0xec,0x76,0xcc,0x65,0xd0,0x9d,0xe2,0xbf,0xd3,0xb8,0xfc, +0x1a,0x36,0x74,0xfe,0xb1,0xbc,0xe4,0xe0,0x26,0x7,0x6c,0xf6, +0xcc,0xe5,0x79,0xf3,0x47,0x1e,0x44,0x34,0x6d,0x10,0xf5,0xee, +0xdd,0xec,0xdb,0xf4,0xa,0x17,0x8c,0x1e,0x6f,0xd7,0x74,0xbd, +0x2b,0x11,0x97,0x46,0xa,0x17,0x11,0xda,0x77,0xe9,0x91,0x32, +0x1a,0x2d,0x74,0xc9,0xd8,0xbb,0x50,0xd,0xbe,0x21,0x7b,0xc, +0xa8,0x2,0xf6,0xea,0xc6,0x2,0x7e,0x21,0xae,0xcf,0x9b,0xb2, +0x44,0x35,0xb3,0x52,0xd4,0xd6,0xf6,0xc5,0xd,0x2f,0x1c,0x5e, +0x23,0x19,0xa9,0xb2,0xcb,0xd1,0xf2,0x50,0x18,0x31,0x33,0xc3, +0xa7,0x1,0x46,0x3f,0xa4,0xde,0xc6,0xbc,0xb7,0x3,0x43,0x18, +0xcd,0x1d,0xa2,0x1d,0x2,0xe1,0xc7,0xc9,0xd2,0xee,0x4a,0x0, +0x70,0x24,0xf7,0x44,0xea,0x14,0x61,0xf2,0xad,0x2,0xbb,0xef, +0x71,0xec,0xf5,0x12,0x8b,0xa,0x41,0x6,0x4f,0x2e,0xc9,0x17, +0x61,0xe4,0xc2,0xf1,0x5,0xf9,0x8a,0xee,0x1a,0x15,0x1,0x2a, +0xdb,0x3,0x4c,0xf1,0x59,0x4,0x9f,0x1a,0x9b,0x1d,0xba,0xfa, +0x19,0xe4,0x94,0xfe,0x43,0x7,0x83,0xfa,0xdd,0x11,0x80,0x1b, +0xa5,0xf7,0x33,0xf0,0x3,0xa,0x13,0x10,0x5b,0xd,0x1f,0x9, +0x45,0xeb,0x8b,0xcd,0xa2,0xe4,0x94,0x1f,0x40,0x2b,0x4a,0x2, +0x47,0xa,0xe0,0x3b,0x63,0x15,0x24,0xb0,0xb3,0xa6,0x1c,0x0, +0x3e,0x3d,0x47,0x1b,0x1d,0xdc,0x61,0xeb,0x1,0x28,0x8f,0x14, +0xf9,0xce,0x89,0xcd,0x8e,0xfd,0xc0,0x9,0x9,0xe7,0x4,0xd9, +0xf3,0x18,0x19,0x43,0x65,0xea,0x51,0xaa,0xf1,0x4,0xd5,0x40, +0xf4,0xfc,0x55,0xdb,0x34,0xf8,0x66,0xf0,0x84,0xe8,0x6e,0x15, +0xf5,0x42,0x4e,0x34,0x56,0xeb,0x2c,0xc1,0xd8,0xef,0x57,0x18, +0xda,0xfb,0xa3,0xe9,0xa3,0x0,0xf,0x17,0x39,0x21,0x8f,0xf, +0xf0,0xed,0x94,0xed,0x33,0xf1,0x14,0xdc,0x1,0xf5,0x82,0x34, +0xa6,0x25,0xf6,0xd2,0xef,0xc9,0x30,0x23,0x50,0x53,0x93,0x16, +0x5c,0xdc,0x87,0xee,0xff,0x7,0xba,0x4,0xcc,0xfe,0x9f,0xf3, +0x50,0xf3,0x89,0x7,0x3c,0xc,0x3c,0x14,0xd,0x26,0x76,0xf9, +0x75,0xbb,0xba,0xd5,0xee,0x6,0xcd,0x4,0x4,0xfb,0xb0,0xf3, +0x98,0xf5,0xf8,0x11,0x89,0xb,0xe2,0xf1,0xbd,0xf,0xf,0x15, +0x29,0xe5,0x8d,0xf3,0x9c,0x12,0xac,0xf9,0x5d,0xe,0x49,0x36, +0x19,0xb,0xc0,0xf2,0xc8,0x12,0x48,0x4,0xe2,0xf0,0x13,0xf9, +0x9a,0xdf,0x78,0xef,0x9,0x3b,0xa9,0x2b,0x9c,0xd9,0x63,0xc5, +0x9b,0xe2,0x50,0x25,0x63,0x52,0x2c,0xeb,0x8d,0x84,0x98,0xf1, +0x68,0x72,0x62,0x35,0x37,0xd2,0x9b,0xd8,0x7c,0x4,0x2c,0xfc, +0xa4,0xc2,0x15,0xc9,0x1e,0x36,0xc7,0x68,0xf3,0x2d,0x33,0x9, +0x49,0xf3,0xf9,0xc0,0x81,0xd7,0x4,0x24,0x63,0x28,0xee,0xc, +0x7b,0xd,0xe1,0xef,0x94,0xbb,0xa4,0xc3,0xff,0xe,0xab,0x43, +0x0,0x1a,0x26,0xe5,0xe7,0x7,0x20,0x1c,0xc0,0xd8,0xe2,0xc2, +0x38,0x9,0xec,0x46,0x17,0x50,0x59,0x16,0x78,0xc6,0xcf,0xce, +0x66,0xed,0xdf,0xc1,0xc1,0xd5,0xaf,0x36,0xfd,0x1d,0x80,0xd4, +0x48,0x15,0xfe,0x56,0x20,0xa,0x17,0xb9,0x9d,0xd5,0x13,0x12, +0xe1,0xb,0xa0,0xe5,0x29,0x7,0x2c,0x30,0x7a,0xe1,0x81,0xab, +0x6c,0x1c,0xfe,0x5c,0x5f,0xf0,0x8,0xc0,0x5b,0x1a,0xf6,0x3b, +0x18,0x3,0xd,0xdc,0xd5,0xc7,0x14,0xd0,0xac,0x23,0x97,0x5f, +0xe0,0x1c,0x50,0xc3,0xc1,0xba,0x6b,0xd9,0x37,0x11,0xf8,0x55, +0x57,0x43,0xc4,0xef,0xcf,0xe1,0xf,0xfb,0x58,0xec,0x98,0xf0, +0xa0,0x12,0x61,0xd,0xba,0xf1,0x66,0xee,0x99,0xb,0x63,0x2b, +0xfc,0xff,0xa7,0xb6,0xdc,0xe6,0x10,0x46,0x5e,0x30,0xc1,0xfd, +0x71,0x0,0x85,0xe3,0x2b,0xcd,0xb,0xa,0x49,0x3c,0xa5,0x2e, +0x54,0x10,0x5d,0xed,0x9a,0xee,0x98,0x1a,0xb3,0x2,0xb4,0xb7, +0x57,0xd3,0xc6,0x36,0x43,0x41,0x37,0xf3,0x31,0xcc,0xc7,0xf1, +0x9f,0x8,0x22,0xeb,0x5e,0xf2,0xc6,0x1f,0x85,0xd,0x2,0xe8, +0x9d,0x2,0xb7,0xc,0x0,0xed,0xc4,0xfc,0xdb,0x11,0x9f,0xeb, +0x7f,0xdc,0x27,0xfe,0x57,0x6,0x60,0xfd,0x3d,0xd,0xdd,0x21, +0xd8,0x17,0xb7,0xe6,0xa4,0xce,0x4,0xa,0xb9,0x35,0xbf,0x1, +0xc2,0xdf,0x8d,0x0,0x44,0x0,0x28,0xe1,0x35,0xdc,0xb5,0xe1, +0x7c,0x2,0xf5,0x2c,0x82,0x8,0x33,0xd8,0x78,0x7,0xe5,0x2c, +0x8c,0x5,0x9d,0xfb,0x6e,0x8,0x10,0xe4,0xbb,0xd7,0x10,0xa, +0xa0,0x23,0xb6,0x14,0x91,0x14,0xa2,0x13,0x9f,0xe7,0xc1,0xbf, +0x67,0xee,0x79,0x3d,0x77,0x2d,0x71,0xec,0x3b,0xf2,0xf8,0x7, +0xcc,0xe8,0x3e,0xde,0xc8,0xfb,0x82,0xfe,0xf2,0xf5,0xfe,0xe, +0x2e,0x23,0xf8,0x3,0x52,0xe0,0xa,0xff,0x69,0x22,0x21,0xee, +0x7c,0xc4,0x54,0x4,0x9f,0x30,0xdc,0x9,0xc7,0xfa,0xcb,0x5, +0xf,0xf3,0x4f,0xeb,0x54,0xf4,0x29,0xf7,0x72,0xe,0x1a,0x1c, +0xae,0x0,0x92,0xf1,0xc8,0xf2,0x32,0xf2,0x4a,0x13,0x49,0x25, +0x77,0xed,0x6d,0xc5,0x2b,0xe1,0xaa,0xfe,0xb1,0x9,0x2e,0x3, +0x5c,0xe2,0x7c,0xe1,0x17,0x1b,0xd5,0x45,0x7e,0x25,0xdd,0xcc, +0x8b,0xa9,0xce,0x2,0x54,0x42,0x7c,0xef,0x65,0xbc,0x97,0x16, +0xc1,0x4b,0xe1,0x11,0x1,0xe7,0x75,0xf7,0xa1,0x1c,0x40,0x2e, +0xe0,0xff,0x77,0xc8,0xbf,0xe1,0xe5,0x12,0xe3,0xe,0xec,0xfc, +0xec,0xfd,0x95,0xff,0x40,0xf5,0x2c,0xee,0xe7,0x1d,0xc9,0x56, +0xce,0xa,0x7,0x9a,0x7d,0xdf,0x64,0x4a,0x6e,0x8,0xe4,0xd3, +0x14,0x26,0x6e,0x35,0x97,0xe4,0x75,0xcc,0x2,0xed,0xbb,0x22, +0x3e,0x4e,0x20,0x19,0x81,0xcf,0xb2,0xef,0xd6,0x18,0x6e,0xfc, +0xd5,0xda,0xd0,0xc7,0xd9,0xef,0x10,0x51,0x87,0x35,0x8d,0xb0, +0xe4,0xb4,0x49,0x19,0xd5,0x37,0x6a,0x30,0xee,0xf6,0x9a,0x9d, +0x40,0xd6,0x76,0x4d,0x4d,0x24,0x27,0xdc,0x9f,0xfe,0xa3,0xc, +0x1a,0xfc,0x3e,0xa,0xf1,0xee,0xd1,0xca,0x13,0xef,0xb3,0xe, +0xad,0xe,0x6a,0x1b,0x29,0xd,0xbe,0xfd,0x9f,0x1d,0x85,0x7, +0x79,0xb7,0x66,0xc0,0xad,0x5,0x10,0x16,0x2c,0x13,0x2b,0xf, +0xc6,0xef,0x79,0xf8,0x58,0x31,0xa6,0x2d,0x5f,0xee,0xd8,0xd6, +0x6e,0xf7,0xc,0x1c,0xd4,0x11,0x69,0xdc,0x87,0xd4,0xe9,0x10, +0xbd,0x29,0x4d,0xd,0x0,0x6,0x9a,0xfe,0x22,0xe2,0xe8,0xee, +0xae,0xf,0xd3,0x7,0xdd,0xff,0x4d,0x7,0xef,0xf9,0xce,0xf9, +0xe3,0x10,0xbd,0x3,0x12,0xe0,0xab,0xdc,0x59,0xf6,0x43,0x15, +0x6b,0x1d,0xec,0x9,0x98,0xfb,0xb6,0xe6,0x37,0xd2,0x38,0x9, +0xae,0x46,0x98,0x2,0x58,0xb3,0xbb,0xe9,0x65,0x22,0x4,0xfc, +0xd2,0xe2,0x3d,0xff,0xd8,0x15,0x26,0x12,0xbb,0xf4,0x4b,0xe3, +0x15,0x7,0x49,0x20,0xa0,0xfc,0x87,0xdf,0xce,0xe6,0x8b,0xed, +0xd9,0xfd,0x7a,0x17,0xcd,0xf,0x56,0xf4,0x43,0xee,0xc2,0xf9, +0xd8,0x6,0x86,0xff,0xc4,0xdf,0x92,0xec,0x7f,0x36,0x7b,0x44, +0xae,0xf3,0xea,0xc7,0xe3,0xf0,0xbc,0x20,0x4d,0x34,0x1f,0x1e, +0x7a,0xdf,0xa1,0xd4,0xc1,0x1d,0xe5,0x3e,0x87,0x0,0x18,0xc8, +0xc8,0xe3,0xd1,0x2f,0xab,0x47,0x86,0xfe,0xdf,0xb8,0xbf,0xd7, +0xc6,0x1b,0xaa,0x26,0xf,0xfe,0xdb,0xd8,0x17,0xe4,0x1,0x14, +0x91,0x2c,0x6c,0x1f,0x50,0x2,0xc1,0xdc,0x4,0xd6,0x7f,0x1, +0x7b,0x13,0xec,0xeb,0xdb,0xdc,0x16,0x2,0xab,0x12,0xc8,0xf9, +0x68,0xf6,0x41,0x16,0xfd,0x1a,0x8e,0xfe,0xde,0xfa,0x4f,0x3, +0x12,0xee,0xd3,0xe5,0x41,0x6,0x3d,0x14,0xf2,0xfb,0xb8,0xf4, +0x18,0xa,0x77,0xfe,0xe1,0xce,0xe4,0xe3,0x1,0x41,0x4b,0x48, +0xbb,0xee,0x2c,0xd0,0x9e,0xe9,0x42,0xeb,0x5b,0x2,0x2a,0x22, +0x52,0x7,0x91,0xf0,0x89,0xff,0xf5,0xfb,0x4d,0xfb,0x55,0x5, +0x6f,0xf1,0xd7,0xef,0x7f,0x9,0xa,0xfe,0x86,0xfb,0x1a,0x1d, +0x61,0x13,0xf,0xf1,0x8b,0xe6,0xb9,0xdb,0x16,0x1,0x6d,0x4e, +0xf5,0x2d,0xe8,0xc5,0x44,0xc9,0x7a,0x14,0xa8,0x2f,0x2e,0x16, +0x60,0xde,0x10,0xc5,0x1,0xfb,0x82,0x24,0x4d,0xd,0xb3,0x0, +0x5d,0xfc,0xb6,0xe6,0x5e,0x4,0x15,0x3c,0x1f,0x1f,0x6b,0xd3, +0x2c,0xc9,0x16,0xfd,0xb1,0x1e,0xab,0x3,0xcf,0xe6,0x74,0x12, +0x65,0x40,0xb6,0x15,0xa,0xe6,0x72,0xf9,0xa,0xff,0x1e,0xe5, +0xd9,0xf5,0x3d,0x1b,0xb3,0x19,0x6,0xf9,0xac,0xd3,0x5a,0xd6, +0x93,0xb,0xd3,0x1e,0xae,0x5,0x3d,0x12,0xbb,0x15,0xd8,0xd9, +0x81,0xd7,0xcf,0x2a,0x49,0x3a,0x42,0xf2,0xb8,0xcc,0xcc,0xeb, +0x2e,0x1d,0x81,0x24,0x13,0xf2,0xf,0xd0,0xc9,0xeb,0x35,0x15, +0xc2,0x2b,0x5e,0x1c,0x42,0xe0,0x32,0xd1,0x88,0x16,0x78,0x2f, +0x1c,0xe8,0x3c,0xba,0x1f,0xe2,0x27,0x20,0xb4,0x38,0xa5,0x1e, +0x85,0xf3,0x62,0xe5,0x48,0xef,0x6c,0xfa,0x6d,0xa,0x23,0x12, +0xd6,0xfc,0xcc,0xeb,0x23,0x2,0x78,0x15,0x60,0x0,0xd9,0xf6, +0xc3,0xf,0xe1,0x6,0xd8,0xe1,0x97,0xf7,0x8e,0x22,0x2d,0xff, +0xd9,0xcb,0x9b,0xf1,0xf6,0x28,0x2e,0xe,0x61,0xe6,0x36,0xfa, +0x3f,0xff,0x22,0xe2,0x91,0x9,0xd5,0x4c,0xf6,0x1d,0x24,0xc1, +0x99,0xc9,0x87,0x3,0xda,0x10,0x1f,0xa,0x74,0x9,0x34,0x2, +0x8f,0xf4,0x1b,0xf2,0x8b,0xa,0x74,0x15,0x74,0xef,0x39,0xe2, +0x2d,0x8,0x55,0x8,0x16,0xf4,0xf8,0xe,0x2b,0x18,0xd0,0xfb, +0xe0,0xff,0xa2,0x7,0x91,0xf7,0x18,0xfe,0x81,0x2,0xed,0xf2, +0xd8,0xfd,0xad,0x1,0x6,0xe7,0x3a,0xf5,0x1f,0x1c,0x40,0x15, +0xaf,0xfd,0xaa,0xf1,0x1f,0xe7,0xb5,0xf7,0xe7,0x18,0xb1,0x13, +0x92,0xed,0xd,0xe1,0x97,0xf,0xac,0x3c,0x65,0xa,0x7d,0xbf, +0xb0,0xe8,0xad,0x34,0x45,0x12,0x13,0xd5,0x73,0xf2,0x9f,0x26, +0xd3,0x1c,0xa3,0xf5,0x43,0xe9,0x62,0xf5,0x54,0xfa,0x99,0xfb, +0x70,0xf,0x43,0x20,0xe8,0x11,0x43,0xf4,0x53,0xd8,0xbe,0xcc, +0x67,0xf4,0xf5,0x34,0xfc,0x2c,0xcf,0xe2,0xe5,0xda,0xdd,0x20, +0xbe,0x23,0x5,0xd8,0x1d,0xd1,0xb0,0x18,0x22,0x30,0xe8,0x7, +0x89,0xe8,0x93,0xe3,0x51,0xf2,0xc6,0x13,0x67,0x25,0x65,0x2, +0xbd,0xcf,0x9b,0xe7,0xf8,0x37,0xa2,0x29,0xac,0xbe,0xd7,0xc3, +0xa1,0x3b,0x86,0x45,0x70,0xe5,0x4e,0xdc,0x90,0xf,0xdf,0xfb, +0xc6,0xdc,0xf6,0x1,0x1c,0x1d,0x11,0xff,0x80,0xf4,0xc1,0x12, +0xbe,0xf,0xfa,0xe9,0x4d,0xf0,0x66,0x14,0x56,0xfe,0x42,0xd2, +0x4,0xf8,0xe9,0x31,0x5c,0x9,0x3d,0xd2,0x35,0xfd,0x42,0x21, +0xfa,0xed,0xef,0xe3,0xf4,0x2b,0x9d,0x30,0xe1,0xd8,0xcd,0xbd, +0xfa,0xb,0x49,0x41,0x7a,0x13,0x6c,0xdd,0x63,0xe8,0x7b,0xfc, +0x6a,0x3,0xa4,0x1f,0x2b,0x13,0x35,0xc8,0xe2,0xca,0x5d,0x2c, +0x7e,0x41,0x71,0xf2,0xe4,0xd0,0x7e,0x6,0xe8,0x2e,0x92,0x1, +0xba,0xca,0x87,0xf6,0x8,0x35,0x4c,0xc,0xbc,0xd7,0xb8,0xf5, +0xbd,0xa,0xa,0xee,0xbf,0xe9,0x4e,0xfd,0x25,0xff,0xa6,0xfd, +0x55,0x5,0xc7,0x7,0x8a,0xfc,0xeb,0xf3,0x55,0x7,0xe9,0x19, +0x8c,0xfe,0x94,0xe3,0xbe,0xfe,0x93,0x18,0x95,0x0,0x1a,0xee, +0x10,0x7,0x13,0x14,0x5e,0xf6,0x31,0xe8,0x58,0x1,0xf1,0xb, +0xff,0xff,0x21,0xfd,0x93,0xf4,0xea,0xec,0xfb,0x4,0x34,0x14, +0xf5,0xfd,0xc0,0xed,0x71,0xec,0xa3,0xf2,0x6c,0x12,0xf5,0x22, +0x82,0xfe,0xa7,0xe1,0x5b,0xf6,0xbd,0x19,0x52,0x29,0xd3,0x13, +0x3e,0xe8,0x21,0xd4,0x5a,0xe2,0x6,0x0,0xa0,0x12,0xf0,0x1, +0x9e,0xf9,0x47,0x1d,0x18,0x1b,0x11,0xde,0x64,0xda,0xa9,0x16, +0x4e,0x24,0x61,0xff,0x13,0xee,0xbc,0xfc,0xfd,0x9,0x6c,0xfb, +0xae,0xe9,0x4,0xf7,0xdf,0x1,0x60,0xf5,0xac,0xfc,0x93,0x14, +0xeb,0x11,0xce,0xfc,0x9c,0xf4,0xfc,0xa,0xf0,0x28,0x5,0xb, +0x5e,0xc9,0x8e,0xd9,0xca,0x22,0x63,0x18,0x6,0xcf,0xe3,0xd2, +0x5c,0x21,0x69,0x3e,0x22,0xf,0x55,0xe7,0x1e,0xe9,0x7d,0xf6, +0xc6,0xa,0xac,0x16,0x2a,0xf7,0xdc,0xd6,0x5d,0xed,0x48,0xc, +0x6f,0x7,0x63,0xfe,0x6,0x1,0x77,0x4,0x92,0x7,0xfc,0xff, +0x36,0xf4,0xbf,0xfd,0x10,0xf,0xf7,0xe,0xe3,0x0,0xc4,0xeb, +0x84,0xea,0xc4,0x15,0x11,0x2f,0xea,0xf9,0x5d,0xc8,0xa9,0xf2, +0xd6,0x29,0x72,0x8,0x9,0xcd,0x40,0xe3,0xe,0x27,0x77,0x2d, +0xf5,0xfa,0xda,0xe9,0x3e,0x4,0xb8,0x6,0x45,0xf1,0xe1,0xf5, +0xb5,0x1,0x1f,0xfa,0x93,0x7,0x8,0x27,0x71,0x1d,0x21,0xfa, +0x2a,0xea,0xb6,0xe0,0xbd,0xe4,0xbf,0xa,0x86,0x1f,0xb2,0x4, +0xd1,0xf8,0x43,0x14,0xd6,0x12,0x59,0xe0,0xdf,0xd2,0xbd,0xb, +0xc,0x26,0x92,0xfa,0x3c,0xf0,0x1,0x16,0xf1,0xb,0x19,0xe8, +0x9a,0xf6,0x6a,0xb,0xd1,0xf8,0xf9,0xe9,0x26,0xfa,0x5e,0x11, +0x73,0xe,0xce,0xf2,0x69,0xed,0x6,0x0,0xb0,0xf8,0x98,0xe7, +0xd6,0xf3,0x50,0x4,0x24,0xe,0x3c,0x1c,0x34,0x10,0x22,0xe9, +0x69,0xde,0x81,0xff,0xf9,0x1d,0x5c,0x10,0x13,0xef,0x34,0xf1, +0x6d,0x3,0x42,0xf7,0xfa,0xed,0x63,0x2,0x10,0x12,0xbe,0x16, +0x12,0x12,0xb1,0xf1,0x92,0xd7,0x3,0xec,0x52,0x13,0x9,0x21, +0xff,0x1,0xf6,0xdc,0x2d,0xf8,0x78,0x29,0x17,0x14,0xb9,0xec, +0x43,0xfc,0xfb,0x9,0x86,0xfa,0xcd,0xfc,0xfe,0x7,0x2f,0x2, +0x46,0xfb,0x84,0xf9,0x69,0xfb,0x9,0x3,0xdc,0x5,0xb6,0x6, +0x9b,0x9,0xe7,0xfa,0x4a,0xe7,0x7,0xfb,0xa,0x22,0x81,0x18, +0xb7,0xec,0x5d,0xf0,0xf2,0x17,0x91,0xe,0x7a,0xe8,0xf9,0xf1, +0x4d,0xc,0xe1,0x0,0x2f,0xee,0xc6,0xf3,0x86,0x4,0x8d,0xf, +0x61,0x13,0x4b,0x1d,0x4f,0x14,0x16,0xd6,0xba,0xb9,0x2b,0xd, +0x21,0x4f,0x1f,0x14,0xa5,0xce,0x7,0xde,0x1e,0x4,0x5c,0x5, +0x7b,0xf6,0xb3,0x2,0x24,0x1a,0xdf,0x1,0x66,0xdd,0x31,0xf4, +0xad,0xc,0xb7,0xf6,0x12,0xf4,0x4b,0x7,0xd0,0x2,0x45,0x2, +0x27,0x2,0x4f,0xeb,0xed,0xf7,0x73,0x24,0x71,0x16,0x6c,0xe0, +0x58,0xd9,0xc6,0x4,0xbd,0x2b,0x46,0x19,0x6b,0xe1,0x6b,0xe4, +0x1d,0x1b,0xae,0x19,0xa6,0xf1,0xe3,0xf5,0x98,0x4,0x20,0xf7, +0xf1,0xf2,0xfc,0xfd,0xd2,0x9,0xc4,0x15,0x26,0x2,0x2e,0xdb, +0x9a,0xe7,0x51,0x10,0xad,0x13,0x45,0x11,0x23,0x13,0xc5,0xea, +0x6d,0xd0,0xee,0x1,0xfc,0x2a,0xb8,0x13,0x5a,0x0,0x58,0xb, +0x69,0x5,0x23,0xe2,0x1c,0xd1,0x3f,0x1,0x27,0x3f,0x3,0x27, +0xe7,0xe1,0x10,0xe0,0xe4,0x4,0x7,0x5,0xb8,0xf6,0x5,0xfb, +0xac,0xb,0x18,0x14,0x3c,0xf8,0x2,0xd8,0xb8,0xee,0xfd,0x14, +0x22,0x14,0x12,0xc,0xe3,0x7,0x19,0xee,0xd1,0xdd,0xd4,0xf7, +0x12,0x1c,0x87,0x1b,0xc3,0xf1,0xd3,0xd7,0x27,0xfd,0xa6,0x2b, +0x72,0x17,0xc1,0xdc,0xb6,0xd1,0x7f,0xd,0x2d,0x43,0x40,0x22, +0x98,0xd3,0x5c,0xbb,0x3b,0xe3,0xec,0x12,0xc9,0x2a,0xae,0x20, +0xde,0xfb,0x38,0xe3,0x76,0xf6,0x86,0x16,0xca,0x5,0x51,0xd8, +0x3c,0xde,0xe1,0xb,0x68,0x1a,0x9f,0x7,0xd,0xec,0x5d,0xe3, +0x5b,0x12,0xe6,0x38,0x5e,0x8,0x6b,0xda,0x1,0xf6,0x0,0x5, +0x7c,0xf3,0xba,0xfc,0xe3,0x9,0x3b,0x9,0xe,0xf,0xaf,0x0, +0x30,0xe8,0x0,0xf7,0xab,0x10,0xb5,0x11,0x52,0xa,0x12,0xf8, +0x98,0xe6,0x5d,0xf8,0x74,0x13,0xcd,0x11,0x6,0x3,0xf6,0xf5, +0x27,0xed,0x28,0xf7,0x3c,0xf,0x1d,0x15,0x73,0xf9,0xc6,0xde, +0xe2,0xed,0x90,0xe,0x92,0x15,0xf2,0xb,0xe2,0xff,0x83,0xf3, +0x8e,0xfa,0x8f,0x9,0xb9,0xff,0x91,0xee,0xfd,0xf1,0xda,0x8, +0x53,0x24,0xc3,0x17,0x79,0xdc,0x30,0xcb,0xe7,0x6,0xcb,0x33, +0x2b,0x15,0x28,0xdf,0xf9,0xdf,0x41,0x12,0x7c,0x1c,0xd6,0xed, +0xf6,0xe0,0xcd,0x4,0xe3,0x15,0x47,0xa,0x29,0xf0,0x5a,0xd7, +0x3,0xf3,0xa9,0x2b,0x5d,0x24,0x5a,0xe9,0xf0,0xcd,0x11,0xe8, +0x4d,0x1a,0xb6,0x2b,0x9d,0x2,0x76,0xe3,0xa4,0xf5,0xf5,0xfe, +0x3f,0xf2,0x92,0xfd,0xd7,0x17,0xe1,0x18,0xa0,0xf9,0x15,0xd9, +0x8c,0xe6,0xdf,0x12,0x8d,0x17,0x3e,0xfa,0x89,0xf5,0xc5,0xfe, +0x74,0xfb,0xd0,0xff,0x95,0x7,0xc6,0xfd,0xb5,0xfa,0x6a,0xc, +0x37,0x15,0x0,0xd,0xc7,0x0,0x9a,0xed,0xeb,0xe4,0xf9,0x1, +0x6a,0x20,0xc2,0xd,0x4,0xee,0xd9,0xfa,0x27,0x17,0x2,0xb, +0x7b,0xe9,0x8c,0xe6,0x70,0x1,0x57,0x18,0x81,0x1e,0x19,0x13, +0xcf,0xf6,0xee,0xdf,0x3f,0xe8,0x22,0x9,0x1d,0x1f,0xcc,0xa, +0x93,0xe5,0x99,0xf1,0x95,0x1d,0x90,0x11,0x20,0xe1,0xc7,0xea, +0x69,0x1c,0x29,0x26,0x8a,0x5,0xa3,0xdf,0x56,0xd3,0x2e,0xf8, +0x55,0x2a,0x38,0x25,0x8b,0xee,0xfa,0xcd,0xab,0xe9,0x94,0x1e, +0xdf,0x30,0xb3,0x10,0xd2,0xe3,0x32,0xdb,0x76,0xff,0xf9,0x16, +0x45,0xf7,0xc7,0xde,0xd3,0x7,0xde,0x31,0x42,0x16,0x11,0xde, +0x1e,0xd6,0xb8,0x5,0x3e,0x29,0x1d,0xe,0xd5,0xdd,0x7f,0xd6, +0x9b,0xf6,0x99,0x19,0x7f,0x1c,0x5a,0x0,0x7e,0xf1,0x7f,0xf1, +0xe1,0xe5,0x59,0xf2,0x3c,0x17,0x78,0x10,0xd0,0xfb,0xe9,0x12, +0xc4,0xd,0x1f,0xd1,0xb9,0xc9,0xad,0x11,0xb4,0x47,0xb9,0x33, +0x53,0xf0,0x65,0xbe,0x43,0xcd,0xf6,0x7,0x80,0x35,0x3c,0x2f, +0x9a,0xfd,0x93,0xde,0xc8,0xf0,0x91,0x2,0xa7,0xfb,0xb,0x2, +0x11,0x1d,0x24,0x26,0x1a,0x3,0x52,0xcb,0xac,0xbf,0xe4,0xf8, +0x2e,0x3b,0xd9,0x40,0xfa,0x0,0x4c,0xbc,0x30,0xc6,0x7f,0xf, +0x35,0x37,0x32,0x1e,0xa3,0xf2,0x3d,0xdf,0x68,0xf4,0x48,0xf, +0x1,0x0,0x6f,0xea,0xed,0x4,0xf0,0x26,0xb8,0x12,0x9a,0xdc, +0xa8,0xcd,0xc1,0x4,0x97,0x3e,0x0,0x2d,0x71,0xf1,0xf5,0xd8, +0xa2,0xe2,0xf0,0xeb,0xb8,0xfb,0xa7,0x1c,0x74,0x29,0xf3,0x0, +0x89,0xd7,0x94,0xeb,0xc5,0xd,0x23,0x5,0x26,0xfe,0xca,0x12, +0xb0,0xf,0x1a,0xeb,0xeb,0xd4,0xb3,0xe7,0x37,0x16,0x25,0x30, +0x9,0xf,0xa2,0xda,0x52,0xd7,0xda,0xfc,0x4a,0xd,0xa5,0x3, +0x3a,0x10,0x80,0x1e,0x60,0xf2,0xc4,0xc5,0x30,0xed,0xa5,0x20, +0xb2,0xe,0xd8,0xf4,0x2b,0x0,0x99,0x3,0x62,0xef,0x72,0xdf, +0xe4,0xf1,0xdc,0x26,0xb6,0x33,0x1c,0xf5,0x47,0xd4,0x31,0x6, +0x1e,0x25,0x90,0x7,0x3f,0xfc,0x8a,0x14,0xb0,0x12,0xc0,0xeb, +0x9d,0xd6,0xcc,0xf2,0x72,0x18,0x97,0x18,0x77,0x7,0x8e,0x4, +0x9c,0xf9,0x40,0xdc,0x7b,0xd6,0x2f,0xfe,0xf9,0x2f,0x87,0x33, +0x1e,0xf4,0x2c,0xba,0xce,0xe4,0x5e,0x3e,0xc4,0x3b,0x72,0xef, +0x51,0xda,0xa7,0x0,0x19,0xe,0xa8,0xf7,0x38,0xe9,0x41,0x0, +0x58,0x2b,0xcc,0x23,0xe5,0xde,0xbc,0xc1,0x51,0xf4,0xc5,0x24, +0xf9,0x28,0x10,0x19,0xcc,0xf5,0xa4,0xcf,0x7e,0xda,0x9c,0xc, +0x67,0x21,0xf5,0x9,0x61,0xf3,0x85,0xee,0x44,0xed,0xa5,0xf6, +0xb1,0x9,0xb3,0xd,0xb8,0xf,0xa8,0x1c,0xa7,0x0,0xb5,0xc0, +0xa,0xc8,0xda,0x1d,0x45,0x44,0x1b,0x14,0x22,0xe0,0x2f,0xda, +0x91,0xf1,0xb5,0xb,0x3a,0x15,0x57,0xc,0xf1,0x1,0xda,0xf8, +0x0,0xe5,0xb5,0xdd,0x3c,0x9,0x1c,0x3b,0x53,0x22,0xe7,0xe2, +0x89,0xd7,0x9a,0xf2,0x64,0x5,0x0,0x16,0x41,0x13,0x9a,0xf0, +0x53,0xe5,0x56,0xf9,0xc0,0xf6,0xb1,0xf6,0x91,0x20,0x2d,0x2e, +0x31,0xf4,0x6d,0xca,0x70,0xee,0x29,0x21,0x17,0x1e,0xe6,0xf9, +0x64,0xed,0xbe,0x1,0xa4,0xa,0x2b,0xf1,0x9d,0xe5,0x6c,0xf, +0xf4,0x32,0xa3,0xe,0x17,0xd7,0x19,0xd8,0x75,0xf9,0xb7,0xe, +0x29,0x1a,0x95,0xf,0xa6,0xea,0xf0,0xdf,0xfa,0xfd,0xd,0xd, +0xa1,0x4,0xdc,0x8,0x77,0xb,0x20,0xf9,0x77,0xec,0x1d,0xeb, +0x5,0xea,0xea,0x2,0xbf,0x2e,0x9,0x28,0x13,0xe8,0x5f,0xc7, +0x43,0xf6,0x2a,0x36,0x3e,0x30,0x62,0xee,0x7c,0xd3,0xd7,0x0, +0xd3,0x1d,0x2e,0xf8,0x55,0xdb,0xf3,0x1,0xa,0x2e,0x78,0x13, +0xbe,0xd6,0x1b,0xd1,0xc5,0x0,0x63,0x1e,0x83,0x17,0xc3,0x1, +0xe2,0xe6,0x6a,0xe5,0xc6,0x9,0x82,0x1b,0x84,0x6,0x82,0xff, +0x7c,0x8,0xf1,0xf5,0x67,0xd9,0x7b,0xe3,0xf1,0x13,0xe2,0x36, +0x1c,0x1a,0x5f,0xdb,0x3d,0xcd,0x4b,0xf3,0x8c,0xe,0xcb,0x11, +0xc2,0xb,0x8d,0xf8,0x5b,0xeb,0xd4,0xf1,0x19,0xf0,0x5,0xf1, +0x37,0x19,0x1e,0x36,0x9a,0xb,0xe3,0xd6,0x99,0xe0,0x43,0x7, +0x82,0x19,0xb4,0x14,0xdb,0xfe,0xed,0xec,0x6d,0xf3,0x1,0xfd, +0x76,0xfe,0x34,0xa,0xb,0x11,0xff,0x3,0x1,0xfc,0x7b,0xf3, +0x73,0xdd,0x2f,0xeb,0xc8,0x24,0x2b,0x34,0x81,0xfe,0x63,0xd6, +0x1c,0xef,0xf1,0x19,0x52,0x18,0x3f,0xf2,0x20,0xdf,0x64,0xf0, +0x46,0xa,0xfb,0x13,0xa3,0x2,0x49,0xea,0x99,0xf6,0x7a,0x1b, +0x6,0x1c,0x88,0xf5,0x8a,0xde,0x3c,0xf1,0xcc,0x15,0x8c,0x1e, +0xb2,0xfa,0xd8,0xd8,0xb9,0xe9,0x76,0x14,0x7c,0x1d,0x10,0x0, +0x99,0xee,0x2b,0xfc,0x8b,0x6,0x2e,0x1,0xf2,0xfa,0x21,0xef, +0xd4,0xec,0x75,0xf,0xec,0x27,0xf5,0x2,0xf,0xd7,0x6e,0xe3, +0xab,0xf,0x45,0x26,0x1c,0xe,0x38,0xe5,0xb9,0xea,0x68,0x14, +0xb,0x18,0xab,0xf4,0x5c,0xe9,0xc6,0x2,0x63,0x15,0x28,0x0, +0xb8,0xdc,0x7b,0xe5,0xb,0x15,0xdd,0x28,0x34,0xe,0xad,0xeb, +0x83,0xe0,0x44,0xf3,0xdf,0xb,0x8b,0xb,0x95,0xfe,0x62,0xfc, +0xee,0xfb,0x7b,0xf8,0x30,0xfb,0x53,0xff,0x1f,0x3,0x72,0xc, +0xc9,0x10,0x73,0x4,0x6a,0xf1,0x6a,0xea,0x60,0xf5,0x5b,0x6, +0xa,0xf,0x3f,0x8,0x6f,0xf3,0x4e,0xea,0x86,0x2,0xc4,0x19, +0x73,0xd,0xc1,0xfa,0x92,0xf8,0x66,0xf6,0xa2,0xf8,0x7b,0x1, +0xe0,0xf8,0xf0,0xef,0xd1,0x4,0x35,0x14,0x6d,0x1,0xd8,0xf2, +0x81,0xfd,0x7c,0x7,0xa2,0x8,0xc4,0x9,0x64,0x0,0xbe,0xea, +0xd1,0xe8,0xf9,0x6,0xe4,0x18,0xfe,0x3,0x1c,0xf2,0xf1,0xfb, +0xc8,0x0,0x1c,0xf9,0x9,0xfa,0x6b,0xfa,0x3e,0xfa,0xa9,0xc, +0x39,0x14,0x2f,0xf8,0xe,0xed,0xcc,0x9,0xb7,0x11,0x4,0xf7, +0xf,0xf0,0xe6,0x0,0xc6,0x6,0x42,0x3,0x67,0xfd,0xff,0xf3, +0x67,0xfa,0x4f,0xa,0xcf,0x1,0xda,0xf6,0x13,0x9,0xe1,0xe, +0x8,0xfa,0xf5,0x3,0x3e,0x22,0x21,0x15,0x2,0xf6,0x4e,0xf4, +0x38,0xeb,0x50,0xc2,0x97,0xab,0xf5,0xcc,0x7d,0x13,0x5c,0x4a, +0x62,0x44,0x6e,0x18,0x32,0x6,0x1e,0xf,0x6d,0x3,0x76,0xe3, +0xed,0xd8,0x9e,0xed,0x44,0x7,0xc5,0x10,0x21,0x8,0xbe,0xfb, +0xc3,0x1,0x1e,0x16,0x7a,0x13,0x9b,0xf1,0x1a,0xdc,0x6,0xee, +0x70,0x12,0x98,0x26,0x24,0x13,0x74,0xeb,0x4a,0xe7,0x17,0x8, +0x1c,0x10,0xba,0xf3,0x3f,0xe7,0xfe,0xfd,0xc6,0x13,0x96,0x7, +0x7d,0xeb,0xd,0xf0,0x64,0x13,0x1,0x1d,0x12,0xff,0xfb,0xe6, +0x2,0xee,0xd3,0x1,0x62,0xb,0xc7,0x9,0xfc,0x6,0xdf,0x0, +0xea,0xfb,0x17,0x6,0x53,0x9,0x6e,0xf5,0x66,0xf7,0x88,0x11, +0xa6,0x1,0x1b,0xdb,0x8,0xe8,0xf2,0x9,0x4,0x9,0x47,0x2, +0xeb,0x9,0x3e,0x6,0xdc,0xf8,0xe0,0xf4,0x87,0xfd,0x3a,0xc, +0x1d,0xc,0x0,0xf6,0x9,0xe9,0x28,0xf8,0x11,0xf,0x1,0x16, +0xa3,0x6,0xcb,0xf3,0xcf,0xf8,0xe3,0x8,0xf8,0x1,0xcc,0xef, +0xd3,0xf5,0x52,0xc,0xa6,0xf,0xd2,0xfb,0x3c,0xee,0xd1,0xf5, +0x24,0x5,0x54,0xf,0x56,0xf,0x11,0x2,0x14,0xf3,0xcf,0xf3, +0x92,0x3,0x1f,0x12,0x20,0xb,0xc2,0xef,0x58,0xe7,0xca,0x0, +0x9f,0xe,0x1d,0xfe,0x9e,0xf4,0xe0,0xfc,0xc7,0x4,0x17,0xd, +0xf6,0xf,0x6b,0x0,0xf8,0xef,0x5c,0xf2,0xcb,0x0,0x87,0xc, +0xe1,0x3,0x10,0xe9,0x37,0xe7,0x98,0xb,0xb,0x1e,0x3f,0x3, +0xa9,0xeb,0xe5,0xf7,0xda,0xd,0xb7,0xf,0x27,0xfa,0x65,0xe4, +0x93,0xf4,0xc0,0x21,0x3e,0x25,0xc9,0xeb,0x7e,0xc5,0x54,0xe6, +0x15,0x1b,0x38,0x25,0x23,0x9,0x58,0xf4,0x4c,0x1,0x5c,0x14, +0x3d,0x5,0xa9,0xe7,0xb1,0xee,0xb7,0x13,0x35,0x1c,0x70,0xf2, +0x7,0xce,0xb7,0xea,0xd7,0x26,0xe6,0x2c,0x46,0xf7,0xc9,0xd3, +0xae,0xed,0xca,0x19,0x7a,0x19,0x16,0xf6,0xbd,0xef,0xa4,0xa, +0xf3,0xc,0xd3,0xf1,0x1c,0xe6,0x88,0xf4,0x1b,0xe,0xc4,0x1f, +0xb8,0xf,0x5c,0xea,0xfa,0xdf,0x13,0xfb,0xda,0x18,0xd8,0x16, +0x4f,0xf4,0x3f,0xe1,0xd7,0xfc,0xd0,0x15,0x3f,0x4,0x9a,0xf2, +0x85,0xfe,0xb3,0x7,0xe6,0x0,0x1,0x0,0x15,0x4,0x51,0xfe, +0x1e,0xfa,0x76,0x3,0xd8,0x6,0x18,0xfa,0x22,0xf5,0xa8,0xfd, +0x33,0x1,0x9e,0x4,0x5e,0xb,0x2b,0x4,0xad,0xf8,0x79,0xf9, +0xb5,0xf9,0x8a,0xfc,0xe7,0x7,0x2f,0x1,0xa1,0xf3,0xd3,0x2, +0x2,0xd,0x53,0xf9,0x34,0xf8,0x44,0xb,0x89,0x4,0xc7,0xf5, +0x52,0xf8,0xd9,0xf6,0xc4,0xf8,0x94,0xd,0x75,0x13,0x72,0x0, +0xa6,0xfa,0xf5,0x3,0x28,0xfe,0x94,0xf1,0xe,0xfc,0x27,0x12, +0x57,0xb,0x3d,0xea,0x3e,0xe2,0x78,0x3,0x12,0x20,0xcc,0x18, +0xf,0x3,0x91,0xf6,0x70,0xef,0x57,0xee,0xd0,0xff,0x2c,0x12, +0x67,0x6,0x2,0xf3,0x79,0xfb,0xb9,0x3,0x61,0xf5,0xd5,0xf8, +0x2d,0x12,0x2b,0xd,0x3f,0xef,0xa4,0xea,0x3e,0xfa,0x54,0xff, +0xe4,0xff,0x3,0x6,0x94,0x8,0x15,0x4,0x32,0xfb,0x15,0xf3, +0x19,0xfc,0xb4,0x13,0xc5,0x12,0xf7,0xef,0x48,0xde,0x41,0xf5, +0x13,0xd,0x4e,0xf,0x10,0xa,0xdd,0xfe,0xd7,0xf2,0xd6,0xf9, +0x78,0x8,0x80,0x5,0x17,0xfb,0xfb,0xfa,0x6b,0x3,0x92,0xf, +0x12,0x11,0x5e,0xfb,0xd6,0xe9,0xc3,0xf7,0xc,0x7,0xf1,0xfa, +0x25,0xf3,0x1,0x6,0x98,0xf,0xff,0xfd,0xed,0xf3,0xee,0xff, +0xc2,0x8,0x2a,0x3,0xc,0xfc,0xfb,0x0,0xc5,0xc,0x40,0x3, +0x67,0xe9,0x76,0xf3,0x84,0x19,0xc4,0x16,0xca,0xf3,0x9a,0xea, +0x68,0xf3,0x73,0xfb,0xbd,0xb,0x2,0xc,0x9d,0xf5,0xdd,0xf6, +0xbe,0xa,0x7c,0x6,0x60,0xfc,0x9a,0x1,0xe5,0xfd,0x69,0xf6, +0xcf,0x2,0x1f,0xe,0xb1,0x3,0x63,0xf7,0xc7,0xf8,0x64,0xfd, +0x12,0xfd,0xf5,0xfd,0xf2,0x1,0xe0,0x0,0xae,0xfb,0xff,0xfa, +0xd0,0xfe,0x40,0x4,0xc6,0x4,0x2f,0xfa,0x28,0xf7,0x85,0x5, +0x5d,0x5,0xc4,0xf4,0xc8,0xfa,0x97,0xa,0x3f,0x3,0x7e,0xfb, +0xdb,0xfd,0x75,0xf3,0x17,0xf1,0x25,0xc,0xd,0x1b,0x46,0x3, +0xe4,0xe7,0x36,0xea,0x47,0x3,0xf3,0x14,0x4e,0xd,0xba,0xfb, +0x4,0xf6,0x91,0xfe,0x68,0xb,0x7f,0xc,0x35,0xff,0xd2,0xf8, +0x5b,0xff,0x82,0x1,0xd5,0xfe,0x23,0x1,0xc2,0x3,0xe5,0x0, +0xbd,0xfa,0x83,0xf9,0xc9,0x0,0xbc,0x0,0xf,0xf9,0xf9,0x6, +0xa4,0x1c,0xa7,0xb,0xa6,0xea,0xe5,0xed,0x18,0x4,0x7,0x9, +0xd2,0x2,0xdf,0xfa,0xae,0xf3,0x4d,0xf8,0x8c,0x4,0x28,0xa, +0xcf,0x9,0xd1,0x3,0xaf,0xf7,0x54,0xf5,0x94,0x0,0xe,0x4, +0xba,0xfd,0xba,0xff,0xce,0x3,0x4,0xfe,0xf1,0xfb,0xeb,0xff, +0x2f,0xfc,0x54,0xfd,0xd9,0xa,0xf5,0x8,0x94,0xf7,0x3a,0xf5, +0x12,0xfb,0xc5,0xfa,0x18,0x3,0xbe,0x9,0x24,0xfc,0xc6,0xf7, +0x1f,0x8,0xd3,0x5,0xc1,0xf3,0xad,0xfb,0x86,0xe,0xea,0x4, +0xb8,0xf1,0x4c,0xf6,0x65,0x4,0x4e,0x6,0xdf,0x2,0xdf,0xfe, +0xaf,0xf8,0xf4,0xfa,0x2c,0x2,0x83,0xfd,0xc7,0xfa,0xfa,0x7, +0x55,0xc,0xaa,0x1,0xb0,0xff,0x8,0xfe,0xd1,0xf1,0xe5,0xf6, +0x7a,0xf,0x2a,0x14,0x9a,0xfc,0x29,0xea,0xef,0xf4,0xda,0xd, +0x80,0x11,0xa2,0xff,0x90,0xf9,0x48,0x2,0x23,0x5,0x89,0x2, +0x7f,0xfe,0xb2,0xf8,0xa7,0xfb,0xad,0x5,0xd7,0x8,0xfe,0x4, +0xe,0xfb,0xd9,0xef,0x23,0xf9,0xe7,0x12,0xab,0x16,0xf,0xfc, +0x93,0xe8,0x94,0xf6,0xb5,0xc,0x5a,0x4,0x4f,0xf1,0x47,0xfc, +0x5a,0xb,0xe0,0xff,0xd1,0xfb,0x78,0x6,0xbc,0xfb,0x3,0xf0, +0xb2,0x2,0x81,0x10,0x2f,0x3,0x36,0xf5,0xc9,0xf0,0x40,0xf6, +0x40,0xb,0x1,0x18,0xe,0x7,0xac,0xf1,0xb3,0xf2,0x5,0x1, +0x79,0x9,0x11,0x4,0x81,0xf6,0x42,0xf2,0xb7,0xff,0x2d,0xc, +0x7d,0x4,0x1,0xf8,0xa5,0xfb,0x29,0x3,0xfd,0x3,0x84,0x7, +0x68,0x2,0xc1,0xef,0x32,0xf5,0xb9,0x12,0xba,0x11,0xf8,0xf4, +0xc5,0xee,0x63,0xfc,0x91,0x5,0x84,0xd,0xd0,0xa,0x59,0xf6, +0xd6,0xee,0x6f,0xff,0x83,0x8,0x2c,0xff,0xfa,0xf8,0xb2,0x0, +0x68,0xc,0xf,0xc,0xbf,0xfc,0x62,0xf3,0x3f,0xfd,0x83,0x6, +0xf0,0x0,0x2e,0xfd,0xfb,0x0,0x84,0xfc,0x4,0xf7,0xd5,0x1, +0xe9,0xa,0xf8,0x0,0xb,0xf9,0x55,0xfc,0xaa,0xf9,0x35,0xf9, +0xd5,0x8,0x49,0xf,0xd3,0xfe,0xa0,0xf6,0x36,0x1,0xbd,0x2, +0xed,0xf9,0xa1,0xfe,0xb8,0x7,0x3c,0xfe,0xe4,0xef,0x46,0xf3, +0xc8,0x1,0xdd,0xc,0x39,0xc,0xd8,0xfd,0x57,0xf6,0x5e,0x3, +0xd4,0x7,0xc0,0xf7,0xa6,0xf7,0xe8,0xa,0xbc,0xa,0xac,0xf8, +0xaf,0xf1,0x36,0xf6,0x14,0x0,0xd8,0xd,0x14,0xe,0xba,0xfa, +0xaf,0xec,0x8c,0xf4,0xa6,0x5,0xf7,0xe,0x98,0xb,0x53,0xfd, +0xee,0xee,0xc1,0xf4,0xb6,0xb,0x56,0xf,0xec,0xf7,0x48,0xed, +0x83,0xfe,0xd,0x10,0x21,0xf,0x30,0xfe,0x0,0xf0,0x90,0xfa, +0xe7,0xc,0xb1,0x7,0x7a,0xf9,0xcf,0xf8,0xa8,0xfd,0xf9,0x4, +0xe6,0x8,0x3e,0xf8,0x6e,0xe9,0x1b,0xfc,0xfa,0x13,0x1b,0xe, +0x6e,0xfa,0xbe,0xf0,0xf8,0xf4,0xf3,0x2,0x6c,0xd,0xbf,0x8, +0x7,0xfa,0x98,0xf1,0x79,0xfa,0x9d,0x7,0x4d,0x5,0x37,0xfe, +0x90,0x1,0x22,0x2,0x38,0xfa,0xaa,0xf8,0x12,0x0,0x19,0x9, +0x5e,0xc,0xb5,0x1,0x71,0xf4,0x4,0xf8,0xc4,0x4,0x4c,0x9, +0xaa,0x2,0xec,0xf6,0xec,0xf6,0xe,0x8,0x25,0xe,0x42,0xfd, +0x45,0xf3,0xf,0xfd,0xdf,0x5,0xae,0x2,0x31,0xfa,0x12,0xf7, +0x27,0x0,0x37,0xa,0x92,0x3,0x50,0xf3,0xf8,0xf0,0x36,0x0, +0x49,0xc,0xfc,0x8,0x64,0x1,0x42,0xfd,0x91,0xf9,0x5a,0xfd, +0xb6,0x8,0xba,0x6,0xb6,0xf7,0xc8,0xf4,0x31,0xfe,0x0,0x5, +0x7f,0xa,0x72,0x9,0x4b,0xf9,0xf2,0xef,0x6e,0xff,0xee,0xd, +0xf2,0x4,0x70,0xf7,0x1b,0xf8,0xe1,0xfe,0x7c,0x3,0x7a,0x4, +0x98,0xfd,0x63,0xf7,0xa3,0x0,0xc7,0xb,0x1f,0x3,0x28,0xf4, +0x88,0xf5,0x63,0x1,0x33,0x9,0x59,0x8,0x7e,0xfe,0x13,0xf5, +0xb0,0xf9,0x41,0x7,0xb7,0xa,0x4c,0xfe,0xdd,0xf1,0xe7,0xf6, +0x85,0x8,0xb8,0x10,0x5b,0x5,0x5c,0xf4,0x38,0xf2,0xf4,0xfe, +0x83,0x5,0x46,0xff,0xde,0xfc,0x4,0x1,0xa9,0xff,0xa4,0xfd, +0x1a,0x2,0xef,0x2,0xf2,0xfd,0xbb,0xfe,0x71,0x4,0xd0,0x2, +0x88,0xfa,0x54,0xfb,0xfd,0x5,0xcf,0x3,0x83,0xf5,0xe4,0xf9, +0x97,0xb,0x93,0x9,0x6f,0xfd,0x7c,0xfd,0x21,0xfd,0x86,0xf9, +0x9e,0xff,0x1c,0x3,0x25,0xfe,0x6b,0x2,0x91,0x8,0xcc,0xfe, +0x27,0xf5,0x6c,0xfb,0x19,0x4,0xc3,0x4,0xf6,0x2,0xce,0xff, +0x22,0xf8,0xb2,0xf5,0xb8,0x3,0x99,0x10,0xd9,0x4,0x5,0xf3, +0x24,0xf6,0x42,0x0,0x9e,0x1,0xab,0x3,0x1f,0x5,0x4d,0xff, +0x50,0xfc,0x1f,0xfe,0xe6,0xfd,0x30,0x1,0x7c,0x6,0x37,0x2, +0x75,0xfb,0x64,0xfe,0x9e,0x2,0xd8,0xff,0x35,0xff,0x1f,0x4, +0x31,0x1,0x25,0xf7,0xa6,0xfb,0x27,0xa,0xbd,0x5,0xb7,0xf7, +0x83,0xfc,0xcd,0x4,0x54,0xfd,0x57,0xfa,0xa0,0x3,0x96,0x5, +0x5c,0xfe,0x84,0xf9,0xbc,0xfa,0xdb,0x1,0x1c,0x6,0x62,0x1, +0x21,0x0,0xe7,0x4,0x94,0x0,0xec,0xf7,0xb0,0xfc,0x4a,0x9, +0x71,0xb,0xf9,0xff,0xde,0xf4,0xa6,0xf8,0xc7,0x5,0xbc,0x8, +0xce,0xfe,0x6b,0xf8,0x19,0xfd,0xb,0x3,0x22,0x2,0x10,0x0, +0x58,0x3,0x51,0x6,0x85,0x2,0x53,0xfc,0x92,0xfa,0x51,0xfe, +0x65,0x3,0x1b,0x4,0xcc,0xff,0x53,0xfb,0xf2,0xfb,0xa1,0x2, +0x23,0x6,0x24,0xfe,0x2e,0xf7,0x1c,0xfe,0x8c,0x4,0x98,0xfe, +0x4a,0xfc,0x28,0x6,0x79,0x9,0x64,0xfd,0x89,0xf5,0xd2,0xfd, +0xeb,0x4,0xd7,0xff,0x42,0xfd,0xaa,0x1,0x53,0x1,0x3a,0x0, +0x68,0x4,0xf1,0x3,0x8d,0x0,0x4b,0x3,0x43,0x3,0x5a,0xfd, +0xf1,0xfb,0x78,0xfb,0x5,0xf9,0xd3,0xfe,0xcf,0x5,0x19,0xff, +0x44,0xf7,0x6c,0xfe,0x9f,0x7,0x88,0x2,0xe9,0xf8,0x56,0xfa, +0x1,0x1,0xbd,0x1,0xb3,0xff,0xa,0xfe,0x79,0xfd,0x8c,0x4, +0xc4,0xa,0x44,0x1,0xe5,0xf8,0xe7,0x1,0xbb,0x6,0xdc,0xfd, +0xdb,0xfb,0x57,0x1,0xec,0x0,0x28,0xff,0x47,0xff,0x89,0xfd, +0x33,0x0,0x3f,0x7,0x5e,0x4,0x21,0xf7,0x5d,0xf2,0x18,0xfd, +0x6a,0x6,0x21,0x3,0x8e,0xff,0x87,0x3,0xc9,0x4,0x87,0xff, +0x4a,0xfa,0xfb,0xf9,0x24,0x3,0x8f,0xd,0xa1,0x6,0xb2,0xf6, +0x7a,0xf6,0x11,0x1,0xd5,0x4,0xd9,0x3,0xe1,0x1,0xc6,0xfc, +0x43,0xfb,0x69,0x1,0x6,0x5,0x88,0xfe,0x9c,0xf6,0x48,0xfa, +0x19,0x5,0xf0,0x5,0xea,0xfc,0x67,0xf9,0x81,0xfc,0x95,0xfe, +0x67,0x1,0x29,0x3,0x58,0xfe,0x44,0xfd,0xba,0x7,0x50,0xc, +0x2f,0x0,0x17,0xf5,0x1e,0xf7,0xb4,0xfe,0xb2,0x7,0xb6,0xc, +0x8b,0x2,0xf6,0xf3,0xb7,0xf6,0xc,0x3,0x4,0x6,0x2c,0x2, +0x3a,0xfe,0x78,0xfb,0x51,0xff,0x36,0x5,0x45,0x1,0x37,0xfb, +0xd5,0xff,0xb0,0x5,0xa0,0x1,0x8e,0xfb,0xf0,0xfb,0xed,0xfe, +0x69,0x0,0x68,0x1,0x48,0x1,0x3f,0xff,0x9,0xff,0xe,0x2, +0xe4,0x3,0x19,0x3,0x9e,0x1,0xac,0xfe,0xe3,0xfa,0x37,0xfa, +0x85,0xfd,0xa4,0x1,0xc7,0x2,0xba,0x0,0x65,0x0,0x8c,0x2, +0x61,0x1,0xaf,0xfd,0x9e,0xfd,0xb9,0xff,0x5d,0xff,0x53,0xfd, +0xd8,0xfc,0x9f,0xff,0x21,0x3,0x2f,0x3,0xef,0x0,0xa,0xff, +0x2,0xfe,0x98,0x0,0x4d,0x4,0xff,0xff,0x44,0xf8,0xc,0xfb, +0x4,0x4,0xb1,0x4,0x42,0xfe,0xef,0xfa,0x3c,0xfd,0x7d,0x1, +0x8d,0x3,0x67,0x1,0xdf,0xfd,0xb,0xfe,0xd5,0x1,0x26,0x3, +0x99,0xfe,0x4d,0xf9,0x70,0xfa,0xf8,0x0,0x34,0x4,0x11,0x1, +0x21,0xff,0x51,0x1,0xdc,0x0,0x68,0xfe,0x70,0x0,0x4f,0x2, +0x82,0xfe,0x16,0xfc,0xdf,0xff,0x62,0x3,0x82,0x0,0xd1,0xfa, +0x9d,0xfc,0x56,0x6,0xeb,0x8,0xf1,0xff,0xbb,0xfa,0x5,0xff, +0x69,0x2,0x66,0x0,0x30,0xfc,0x4a,0xf9,0xc6,0xfc,0xd5,0x5, +0x46,0x9,0x34,0x1,0x77,0xf8,0x6a,0xfb,0x37,0x4,0x94,0x5, +0xa0,0x0,0x77,0xfd,0xa7,0xfd,0x9a,0x0,0x67,0x1,0xd8,0xfa, +0x93,0xf8,0xac,0x3,0x86,0xa,0xb4,0x1,0xd8,0xf8,0x2b,0xfa, +0xbf,0xff,0xd0,0x3,0x92,0x2,0xe,0xff,0x32,0x1,0xf3,0x2, +0xd9,0xfb,0xe3,0xf7,0xf5,0x0,0xe8,0x8,0x10,0x3,0x93,0xf9, +0xaa,0xf9,0xd8,0xff,0xa1,0x3,0x52,0x4,0xbe,0x0,0x12,0xf9, +0xde,0xf8,0xe,0x4,0xce,0x9,0xe4,0x1,0xde,0xfa,0x72,0xfe, +0xe8,0x2,0x3,0xfe,0xcf,0xf7,0xa9,0xfe,0x18,0xb,0x34,0x9, +0xa6,0xfb,0x4c,0xf5,0xb6,0xfb,0xbb,0x5,0x54,0x7,0xde,0xfe, +0x5f,0xfa,0xa,0xff,0xfa,0xff,0x4,0xfc,0x41,0xfe,0xc5,0x3, +0xdc,0x4,0xf,0x3,0xd5,0xfe,0xdc,0xf9,0xbe,0xfb,0xc9,0x3, +0x85,0x7,0x68,0x2,0x8b,0xfa,0x4c,0xf9,0x9,0x1,0x32,0x8, +0x93,0x4,0x72,0xfb,0x23,0xfb,0x69,0x2,0xb9,0x1,0x80,0xfa, +0x9b,0xfd,0xed,0x7,0x7e,0x7,0x37,0xfd,0xb7,0xf7,0x7c,0xfb, +0xd9,0x1,0x49,0x3,0xd1,0xff,0x11,0xfd,0xd7,0xfc,0x31,0xff, +0x51,0x3,0x82,0x2,0x4b,0xfd,0x7e,0xfe,0xe8,0x3,0x3,0x3, +0x4c,0xfe,0xbf,0xfa,0xc5,0xf9,0xc2,0x0,0xf3,0x9,0x6b,0x6, +0x96,0xfb,0x94,0xf9,0xd6,0xfe,0x93,0x2,0x29,0x3,0xef,0xff, +0x2f,0xfb,0x33,0xfc,0xb3,0x2,0x12,0x5,0x7e,0x0,0x17,0xfd, +0xbc,0xfe,0x1d,0x0,0xa1,0xfe,0x53,0xfd,0xec,0xfe,0x84,0x3, +0x15,0x5,0x13,0xff,0x8f,0xfb,0x24,0x1,0xc5,0x2,0xb7,0xfc, +0x88,0xfe,0x7f,0x7,0xd5,0x5,0xd,0xfa,0xd3,0xf5,0x3,0xff, +0xf3,0x8,0x1e,0x8,0x57,0x1,0x1a,0xfd,0x35,0xfa,0xab,0xf9, +0xfc,0xff,0xca,0x5,0xbe,0x2,0x58,0xfe,0xd7,0x0,0xc4,0x4, +0x93,0x2,0x5,0xfd,0xe6,0xfb,0xf,0xff,0x6e,0xff,0x86,0xfc, +0x3e,0xfc,0x94,0x0,0xd2,0x5,0x3,0x5,0xb9,0xfc,0xcb,0xf8, +0x4a,0x0,0x95,0x6,0x1a,0x2,0x5a,0xfc,0x8f,0xfe,0x8,0x4, +0x45,0x4,0x70,0xff,0xbb,0xfd,0xcf,0x1,0x37,0x4,0xde,0x0, +0x1b,0xfc,0xfd,0xf9,0xf5,0xfb,0x8e,0x1,0x8e,0x5,0x48,0x2, +0xde,0xfb,0x68,0xfd,0x71,0x5,0x65,0x4,0x18,0xfa,0xcb,0xf8, +0x8,0x1,0xa,0x3,0x4,0x1,0x56,0x4,0xc3,0x4,0xe1,0xfc, +0x7e,0xf9,0xea,0x0,0x9f,0x6,0xae,0x1,0xcc,0xfb,0x4b,0xff, +0x9e,0x4,0xae,0x1,0x5f,0xfc,0x94,0xfd,0xa6,0x2,0x58,0x4, +0x33,0x0,0xf0,0xfa,0xc8,0xfa,0x8a,0xfe,0x62,0x2,0x67,0x5, +0x90,0x3,0x63,0xfc,0x69,0xfa,0x7c,0x0,0x18,0x4,0x85,0x2, +0x1b,0x0,0xfe,0xfb,0x4b,0xfa,0xec,0x1,0xc3,0x8,0x6f,0x2, +0x7f,0xfa,0xa7,0xfe,0x34,0x4,0x56,0x0,0x2b,0xfc,0x58,0xfd, +0x44,0xfe,0x54,0x0,0xd5,0x4,0xb9,0x3,0x65,0xfd,0xbd,0xfa, +0x92,0xfc,0x25,0x1,0x38,0x6,0x4c,0x3,0x4c,0xfa,0x69,0xf9, +0xd4,0x0,0xaf,0x5,0x72,0x5,0x4e,0x0,0x9d,0xf9,0xa9,0xfc, +0x92,0x6,0xb,0x5,0x5a,0xfa,0x8,0xfb,0xa8,0x5,0x6b,0x6, +0xed,0xfc,0x47,0xfa,0x8e,0x0,0xc4,0x2,0x4e,0xff,0xb7,0xff, +0xd6,0x2,0x53,0xff,0x98,0xf8,0x63,0xfb,0x1,0x6,0xa1,0x8, +0xf6,0xff,0xb7,0xf9,0x16,0xfc,0xda,0xff,0x91,0x1,0x91,0x3, +0x5d,0x4,0xfa,0x0,0x91,0xfb,0xcd,0xfa,0x6f,0x1,0x58,0x7, +0x43,0x4,0xb0,0xfd,0x98,0xfc,0x71,0xff,0xd5,0x0,0xb,0x0, +0xe5,0xff,0x7f,0x2,0x14,0x4,0xc9,0xff,0x86,0xfa,0x3,0xfc, +0xcf,0x1,0xd9,0x4,0xe2,0x2,0x6d,0xfe,0x37,0xfc,0xfe,0xfd, +0x56,0x0,0x65,0x1,0xcf,0x1,0x6c,0x0,0xa5,0xfe,0x23,0x0, +0xca,0x1,0xb5,0xff,0xff,0xfe,0x67,0x1,0x1f,0xff,0x14,0xfa, +0xe6,0xfd,0x43,0x6,0x1,0x5,0x1b,0xfe,0x68,0xfd,0x78,0xff, +0x88,0xfe,0x5f,0xff,0xc,0x3,0xa6,0x3,0x73,0x0,0x57,0xfd, +0x12,0xfd,0xfa,0xff,0xfc,0x1,0x9b,0x0,0xde,0x0,0x2c,0x3, +0x82,0xff,0x6f,0xf9,0x99,0xfe,0x8a,0x9,0xcc,0x6,0xcf,0xf9, +0xe7,0xf7,0x88,0x1,0x6a,0x5,0x27,0x1,0x82,0xfe,0xc8,0xfe, +0x24,0xff,0xc,0x0,0x1f,0x0,0x2c,0xff,0xca,0x0,0xaf,0x2, +0xaf,0xff,0x44,0xfc,0x3a,0xfe,0x7,0x1,0xa2,0x0,0xd7,0x0, +0x9b,0x2,0x23,0x2,0x39,0xff,0x70,0xfc,0x2f,0xfc,0x8,0x1, +0xa2,0x7,0x58,0x6,0x66,0xfc,0x6f,0xf6,0x54,0xfc,0xe9,0x5, +0x2c,0x7,0x91,0xff,0xce,0xf8,0x83,0xfa,0xe,0x2,0xef,0x5, +0x79,0x1,0xbb,0xfb,0xf9,0xfc,0x77,0x1,0xcf,0x1,0xc9,0xff, +0xe0,0xfe,0x6e,0xfe,0x13,0x1,0x85,0x6,0x1d,0x4,0x17,0xf9, +0xff,0xf6,0xbf,0x2,0xc8,0x9,0x47,0x3,0x17,0xfc,0x4d,0xfc, +0x19,0xfe,0x50,0xfe,0xab,0x0,0xb0,0x5,0xd2,0x6,0x2c,0xff, +0x6a,0xf7,0x2e,0xfc,0xfc,0x5,0xca,0x3,0x5d,0xfb,0x5b,0xfd, +0xdf,0x4,0x3,0x4,0x77,0xfd,0x5c,0xfb,0xa0,0xff,0xf1,0x4, +0xfb,0x4,0xe8,0xff,0x2e,0xfc,0x7d,0xfc,0x6b,0xff,0x19,0x4, +0xbc,0x5,0xca,0xff,0x5f,0xf9,0xf8,0xfb,0x82,0x3,0xa1,0x5, +0xdf,0x0,0x2c,0xfc,0x62,0xfd,0x76,0x2,0x5f,0x3,0xf0,0xfd, +0x8b,0xfa,0x35,0xfe,0x6b,0x2,0xf8,0x1,0xe2,0xff,0x65,0xfe, +0xc9,0xfd,0x81,0x0,0xdb,0x4,0x64,0x4,0xd7,0xfe,0xb9,0xfa, +0xf6,0xfb,0x44,0x0,0x4d,0x2,0x47,0x0,0x4f,0xfe,0x1f,0xff, +0x9f,0x0,0x41,0x1,0x16,0x1,0xa2,0xff,0x59,0xfd,0xd6,0xfc, +0xaa,0x0,0x97,0x5,0x12,0x3,0x6c,0xfa,0x1c,0xf9,0x6b,0x1, +0xb5,0x6,0x57,0x4,0x4,0xff,0xb,0xf9,0x55,0xf8,0xdf,0x1, +0xd9,0x9,0x89,0x3,0xaf,0xf8,0x27,0xf9,0xc4,0x2,0x69,0x8, +0x7e,0x3,0x48,0xfa,0x61,0xf9,0xf5,0x1,0x28,0x6,0xbc,0x0, +0xfa,0xfc,0x3e,0xff,0xb0,0x0,0x6e,0x1,0xd,0x3,0xa0,0xff, +0x55,0xfa,0xa6,0xfd,0x7d,0x4,0xc2,0x4,0x9c,0x2,0xc6,0x0, +0x65,0xfa,0x2d,0xf6,0x1c,0xfe,0x37,0x9,0x0,0x9,0x83,0xff, +0x54,0xf8,0xcc,0xf9,0xcb,0x1,0x74,0x7,0x47,0x3,0x97,0xfa, +0x2c,0xfa,0x54,0x2,0xda,0x5,0x71,0xff,0x97,0xf8,0xad,0xfa, +0x9a,0x4,0x38,0xb,0x3d,0x4,0x5b,0xf7,0xec,0xf5,0x6d,0xff, +0x48,0x6,0x89,0x6,0x86,0x1,0x16,0xf9,0xb9,0xf7,0xb1,0x1, +0x23,0x8,0x8b,0x2,0x6a,0xfc,0xe0,0xfc,0x12,0xfe,0xb6,0xfe, +0xe6,0x1,0xab,0x2,0xfd,0xfc,0x2c,0xfa,0x96,0x1,0x59,0x8, +0x60,0x2,0xfa,0xf7,0x23,0xf9,0x3c,0x4,0xf4,0x8,0x8b,0x1, +0xd2,0xf9,0x89,0xfa,0xb8,0xff,0xd9,0x4,0xc8,0x6,0x1f,0x1, +0x29,0xf9,0xe4,0xf9,0x4a,0x1,0x5e,0x5,0xca,0x2,0x79,0xfc, +0xd0,0xf9,0xd6,0xff,0x5f,0x6,0x80,0x3,0x7b,0xfb,0xeb,0xf8, +0x93,0xff,0x28,0x8,0x8c,0x6,0xc3,0xfb,0x5,0xf7,0xc,0xfe, +0x40,0x6,0xe,0x6,0x2f,0xff,0xc9,0xf9,0xa2,0xfa,0x94,0x0, +0xe2,0x7,0x4a,0x8,0x82,0xfd,0xe2,0xf5,0xf3,0xfd,0x53,0x7, +0x1e,0x3,0x8b,0xfb,0x29,0xfc,0x5b,0x0,0x4b,0x2,0xfa,0x1, +0x5a,0xff,0x6d,0xfc,0x9f,0xfe,0x77,0x4,0x9b,0x4,0x3,0xff, +0xbd,0xfc,0x1,0xfd,0x29,0xfc,0x63,0x0,0x4,0x8,0xdc,0x6, +0x90,0xfd,0xc0,0xf7,0xe9,0xfb,0xa8,0x6,0x41,0x9,0xe5,0xfc, +0x6d,0xf4,0xc,0xfd,0x1a,0x7,0x32,0x5,0xdd,0xfd,0x16,0xfa, +0x28,0xfd,0x8e,0x4,0xff,0x7,0xa7,0x2,0x9f,0xf9,0x5e,0xf7, +0x51,0xff,0x2d,0x7,0x3e,0x6,0xeb,0x0,0x5f,0xfc,0xc3,0xfa, +0x1c,0xff,0x2a,0x4,0xc4,0x1,0xd6,0xfc,0xab,0xfd,0xd5,0x1, +0xfa,0x2,0xac,0x0,0x3e,0xff,0xb7,0xfe,0x5c,0xfc,0x2b,0xfe, +0x38,0x6,0x7,0x6,0x7e,0xfa,0x7,0xf6,0xa4,0xfe,0x55,0x7, +0x64,0x7,0x8f,0xff,0xbf,0xf7,0xb9,0xf9,0x55,0x3,0x7f,0x8, +0x81,0x2,0xe0,0xf7,0x14,0xf7,0x19,0x2,0x40,0x9,0xc6,0x4, +0x25,0xfd,0x39,0xfa,0xe3,0xfd,0x4e,0x3,0xa3,0x2,0xe0,0xfe, +0x95,0xfe,0xfd,0xfe,0xe0,0xff,0x80,0x3,0xcf,0x2,0xbb,0xfb, +0x1b,0xf9,0x95,0xff,0xf,0x7,0x5e,0x6,0xb4,0xfd,0xdb,0xf7, +0x8b,0xfc,0xa0,0x5,0x86,0x7,0x9d,0xff,0x41,0xf9,0xbc,0xfd, +0x64,0x3,0x66,0x1,0x4f,0x0,0xc,0x2,0xce,0xfe,0x65,0xfc, +0x85,0x1,0x1e,0x5,0xd4,0x0,0xc9,0xfa,0x26,0xfb,0xa9,0x2, +0x94,0x6,0x1d,0x0,0x7a,0xfa,0x8b,0xfe,0x2,0x4,0x9,0x3, +0x10,0xff,0xec,0xfd,0x29,0xff,0x8c,0xfe,0x3b,0xfe,0xd6,0x1, +0xe9,0x2,0x33,0xfe,0xa9,0xfc,0xde,0x0,0xfa,0x2,0x1b,0x0, +0x3d,0xfc,0x7f,0xfc,0xf8,0x1,0xf2,0x5,0xa7,0x2,0xe7,0xfb, +0xf6,0xf9,0x56,0x0,0x81,0x7,0x2c,0x5,0x71,0xfd,0x2e,0xfb, +0xe5,0xfd,0x35,0x0,0xc,0x1,0x74,0x0,0xea,0xff,0x58,0x0, +0xca,0xff,0x35,0xff,0x3c,0x0,0x6c,0x0,0x1d,0xff,0x38,0xfe, +0x37,0xff,0xe5,0x2,0xea,0x3,0xc2,0xfd,0x7a,0xfa,0x7a,0x1, +0xcf,0x6,0xeb,0x1,0xd0,0xfb,0x4f,0xfc,0x84,0x0,0x4c,0x3, +0xe7,0x2,0xae,0x0,0x12,0xfe,0x5e,0xfc,0x94,0xfe,0x2c,0x4, +0x85,0x5,0xa9,0xfe,0xbf,0xf8,0xf3,0xfd,0xdd,0x6,0x57,0x4, +0x49,0xfa,0x6e,0xf9,0x4f,0x2,0xb8,0x6,0x4c,0x1,0xb2,0xfa, +0xcb,0xfb,0x88,0x1,0xe8,0x2,0xe1,0x0,0x7b,0x1,0x1a,0x1, +0x47,0xfc,0xd4,0xfa,0x8,0x1,0xdb,0x5,0x69,0x2,0x1b,0xfd, +0x1f,0xfd,0xa4,0xfe,0x1d,0xfe,0x63,0x0,0x33,0x4,0x84,0x1, +0xa8,0xfc,0xe5,0xfe,0x77,0x2,0x8c,0xff,0x5d,0xfc,0xa5,0xfe, +0xa3,0x1,0x21,0x2,0xe8,0x1,0x4e,0x0,0x22,0xfd,0x87,0xfc, +0xad,0xff,0xaf,0x2,0xd8,0x2,0xb9,0xff,0x0,0xfc,0xb8,0xfd, +0xe2,0x3,0xcb,0x4,0xa3,0xfe,0xb6,0xfa,0x26,0xfe,0xb2,0x3, +0x74,0x3,0xcc,0xfd,0x8,0xfc,0xa0,0x0,0xda,0x2,0x64,0x0, +0xc5,0xff,0xa6,0x0,0x1e,0xfe,0x62,0xfc,0x54,0x2,0xc9,0x8, +0x8c,0x2,0xbf,0xf6,0x7a,0xf9,0xf5,0x6,0xd1,0x8,0x8a,0xfe, +0x67,0xfa,0x4,0xff,0xf9,0x0,0xd6,0xfe,0xb5,0xff,0x1e,0x3, +0xfd,0x2,0x39,0x0,0xb8,0xff,0x18,0x0,0x4,0xfe,0x3e,0xfc, +0x94,0xff,0xd5,0x5,0xab,0x5,0x20,0xfd,0xa4,0xf8,0x9a,0xfe, +0x9a,0x4,0xd0,0x3,0x3f,0x0,0x16,0xfd,0x2,0xfd,0xcc,0x0, +0x85,0x2,0x8f,0x0,0x77,0x0,0x1,0x2,0x23,0x1,0x93,0xfe, +0xe9,0xfc,0xba,0xfd,0x90,0x0,0xb9,0x2,0x88,0x2,0x8b,0xff, +0xe2,0xfb,0x15,0xfd,0x29,0x2,0x50,0x3,0x6e,0x0,0xf6,0xfe, +0x67,0xfe,0xb5,0xfc,0x6f,0xfc,0x47,0x0,0xe9,0x4,0x7a,0x3, +0x46,0xfe,0x52,0xfe,0x8d,0x0,0x73,0xfd,0x28,0xfc,0x65,0x2, +0x6a,0x5,0x23,0xff,0x55,0xfa,0xd5,0xfe,0x2,0x4,0xf1,0x0, +0x12,0xfd,0xa0,0x0,0xc1,0x3,0x51,0x0,0x68,0xfd,0x44,0xfe, +0x56,0xff,0xb8,0x0,0xa9,0x2,0xd0,0x2,0xf5,0xff,0x9c,0xfb, +0x6a,0xfb,0x4f,0x1,0xd6,0x4,0x42,0x1,0x18,0xfd,0x83,0xfd, +0x6e,0x1,0x14,0x4,0xca,0x0,0x41,0xfc,0xb4,0xfe,0x2a,0x4, +0x83,0x3,0xd5,0xfd,0x5d,0xfb,0x55,0xff,0x85,0x3,0xde,0x2, +0x2b,0x1,0x9c,0xff,0xce,0xfb,0xda,0xfb,0x96,0x2,0x55,0x5, +0xf4,0xff,0x9a,0xfb,0x13,0xfd,0x86,0x0,0xf3,0x1,0xa2,0x1, +0xa6,0x1,0x1,0x0,0xfc,0xfb,0x64,0xfc,0x44,0x2,0x1e,0x4, +0xda,0xff,0x26,0xfe,0xae,0x1,0xf8,0x2,0x69,0xfe,0x80,0xfb, +0xf4,0xfe,0x24,0x2,0xfa,0x1,0x4a,0x2,0xfb,0x0,0xfe,0xfc, +0xf8,0xfc,0xb7,0x0,0xce,0x1,0x91,0x0,0x6d,0xff,0x7f,0xfe, +0x30,0xff,0xfb,0x0,0x4c,0x1,0x36,0x0,0x43,0xff,0x79,0xff, +0x66,0x0,0x82,0x0,0x5a,0x0,0x3f,0x0,0x1,0xff,0x6,0xff, +0x9f,0x1,0x42,0x2,0x87,0xff,0xf8,0xfc,0x23,0xfd,0x6b,0x1, +0x4d,0x5,0x7,0x1,0xee,0xf9,0x68,0xfb,0x16,0x2,0x7d,0x4, +0xb2,0x2,0xde,0xff,0xce,0xfc,0x1b,0xfc,0x98,0xff,0xf5,0x2, +0x44,0x1,0x3f,0xfe,0xc4,0xff,0x8,0x2,0x10,0x0,0xdd,0xfd, +0xcf,0xfe,0x9f,0x0,0xfe,0x1,0x1b,0x2,0x2d,0x0,0x88,0xfe, +0xb6,0xfe,0x9f,0xff,0xa4,0x0,0x22,0x1,0x8a,0x0,0x39,0xff, +0xea,0xfd,0xc9,0xfe,0xc4,0x1,0x34,0x2,0x9d,0xff,0x78,0xfe, +0x6d,0xff,0x54,0x1,0xff,0x2,0x9b,0x0,0xe7,0xfb,0x57,0xfc, +0x2,0x1,0xee,0x2,0x4b,0x1,0x46,0xff,0xcd,0xfe,0x32,0x0, +0x97,0x1,0x2e,0x1,0x72,0xff,0xfe,0xfd,0xb5,0xfe,0x55,0x1, +0xaf,0x2,0x1c,0x1,0x2d,0xfe,0xd9,0xfc,0x38,0xff,0xb0,0x2, +0x80,0x2,0x77,0xff,0xce,0xfd,0x57,0xfe,0x8e,0xff,0xdb,0x0, +0xdb,0x1,0xee,0x0,0x3f,0xfe,0x90,0xfe,0xb7,0x2,0xc0,0x2, +0xd9,0xfc,0xab,0xfa,0xbf,0xff,0xd6,0x4,0x56,0x4,0x16,0xff, +0x4,0xfb,0x71,0xfd,0x8c,0x2,0x31,0x3,0xe0,0xff,0x5d,0xfd, +0x4b,0xfe,0xb7,0x1,0xc,0x3,0x3f,0x0,0xab,0xfd,0xa8,0xfe, +0x7,0x1,0x70,0x1,0x8e,0xff,0x23,0xfe,0xa2,0xfe,0x5d,0xff, +0xef,0xff,0xf0,0x0,0xdf,0x0,0xc4,0xff,0xa3,0xff,0xfd,0xff, +0x1b,0x0,0x13,0x1,0x7c,0x1,0xfe,0xfe,0x98,0xfc,0x32,0xff, +0x5,0x4,0x9f,0x3,0xe6,0xfe,0xfe,0xfc,0x3f,0xfe,0x55,0xff, +0x37,0x1,0xb5,0x2,0x5c,0x0,0x6,0xfe,0xc3,0x0,0xd8,0x3, +0x98,0x0,0xc9,0xfa,0x71,0xfb,0xe6,0x1,0x8e,0x4,0x65,0x1, +0x40,0xff,0x65,0xff,0x9f,0xfe,0xa7,0xfe,0x34,0x1,0xfe,0x2, +0x59,0x1,0x3e,0xfe,0x2e,0xfe,0x7f,0x1,0x1d,0x2,0x28,0xfe, +0x89,0xfc,0x54,0x0,0xd4,0x3,0xa0,0x2,0x7e,0xfe,0xd7,0xfb, +0xbb,0xfd,0x61,0x2,0x2d,0x4,0xb9,0x0,0x89,0xfc,0x19,0xfd, +0x62,0x1,0xd3,0x3,0xa7,0x1,0x24,0xfd,0x55,0xfb,0x30,0xff, +0x61,0x4,0xfd,0x3,0xf8,0xfe,0x64,0xfc,0xcb,0xfe,0xb1,0x1, +0xf4,0x0,0xbe,0xfe,0x15,0xff,0xc5,0x0,0x7,0x1,0xaf,0x0, +0x31,0x0,0xa9,0xfe,0x2,0xfe,0x34,0x0,0xf8,0x2,0xa5,0x2, +0x1b,0xff,0x7d,0xfc,0xb0,0xfd,0x8,0x0,0xfe,0x0,0xeb,0x1, +0x43,0x2,0x17,0x0,0xeb,0xfd,0x93,0xfe,0xf8,0xff,0xa7,0xff, +0x1e,0xff,0xba,0x0,0xf7,0x2,0xab,0x1,0x7a,0xfd,0x67,0xfc, +0xdd,0xff,0x97,0x2,0x57,0x2,0xac,0x1,0x89,0x0,0x68,0xfd, +0xa6,0xfb,0x8,0xff,0xf2,0x3,0x5,0x4,0xb,0xff,0xb3,0xfa, +0x31,0xfc,0x4a,0x2,0x66,0x5,0x7a,0x1,0x2d,0xfc,0xd6,0xfb, +0x4e,0xff,0x59,0x2,0x97,0x2,0xe6,0xff,0x20,0xfd,0xa,0xfe, +0x8b,0x1,0xd,0x2,0x5e,0xfe,0xd8,0xfc,0xd,0x1,0xfd,0x4, +0xb9,0x2,0x29,0xfd,0xa6,0xfa,0x9d,0xfd,0xe8,0x2,0xa7,0x4, +0xa0,0x1,0xb4,0xfe,0x2a,0xfe,0x1e,0xfe,0xf,0xff,0x39,0x1, +0xf9,0x0,0x5f,0xfe,0x7a,0xfe,0x3c,0x1,0xb9,0x1,0xb1,0xff, +0xaa,0xfe,0x60,0xff,0xaf,0x0,0xd8,0x1,0x62,0x1,0xc7,0xfe, +0xb7,0xfc,0xf5,0xfd,0x57,0x1,0xb,0x3,0x29,0x1,0x20,0xfe, +0xe5,0xfd,0xd4,0x0,0xf2,0x2,0x5,0x1,0x60,0xfd,0x0,0xfd, +0xfd,0xff,0xff,0x1,0xec,0x1,0xc9,0x1,0xf0,0x0,0x4f,0xfe, +0x74,0xfc,0x70,0xfd,0xbd,0xff,0x6f,0x1,0xf6,0x1,0x4a,0x1, +0x9,0x0,0x12,0xff,0xea,0xfe,0xe2,0xff,0x52,0x1,0xbd,0x1, +0x0,0x1,0xfc,0xff,0x90,0xfe,0x16,0xfd,0x92,0xfd,0x56,0x0, +0x69,0x2,0x7e,0x1,0x50,0xff,0x23,0xff,0xaf,0x0,0xa0,0x0, +0xc3,0xfe,0x5f,0xfe,0x15,0x0,0x93,0x1,0xa6,0x1,0x18,0x0, +0xf7,0xfd,0x11,0xfe,0x2c,0x0,0xbb,0x0,0x64,0xff,0x7c,0xfe, +0xa9,0xfe,0x3e,0x0,0x76,0x2,0xb0,0x1,0xa,0xfe,0x5c,0xfd, +0xb9,0x0,0x48,0x2,0x4d,0x0,0xf1,0xfe,0x3d,0xff,0x8,0xff, +0x1b,0xff,0x78,0x0,0xd4,0x0,0xde,0xff,0x38,0x0,0xe4,0x0, +0x4a,0xff,0xb3,0xfd,0xa5,0xfe,0xc0,0xff,0xfe,0xff,0xcf,0x1, +0x6b,0x3,0xbb,0x0,0xeb,0xfc,0x84,0xfd,0x38,0x0,0x1b,0x1, +0xaa,0x1,0xc1,0x1,0xd6,0xfe,0x50,0xfc,0xc5,0xfe,0xc1,0x2, +0x92,0x2,0x7,0xff,0x53,0xfd,0xc9,0xff,0x7a,0x2,0x2c,0x1, +0x58,0xfe,0x24,0xfe,0xcb,0xff,0x41,0x1,0xc2,0x1,0x17,0x0, +0x81,0xfd,0x1e,0xfe,0xba,0x1,0xe6,0x2,0xb2,0xff,0xd5,0xfc, +0xec,0xfd,0xb3,0x0,0x6e,0x2,0xfa,0x2,0x25,0x1,0xce,0xfc, +0xfc,0xfa,0xdc,0xfe,0x89,0x3,0xb2,0x3,0xcd,0x0,0x87,0xfe, +0xcc,0xfd,0x63,0xfe,0xc3,0xff,0x3c,0x0,0x9d,0xff,0xc,0x0, +0x6a,0x1,0x4d,0x1,0xce,0xff,0x97,0xfe,0x51,0xfe,0xa7,0xff, +0x8f,0x1,0x47,0x1,0x8d,0xff,0x5d,0xff,0x30,0x0,0x13,0x0, +0x7e,0xff,0xb2,0xff,0xaf,0x0,0x4c,0x1,0xdf,0x0,0x24,0x0, +0x5d,0xff,0xdb,0xfe,0xd0,0xff,0xa7,0x0,0x54,0xff,0x4a,0xff, +0x6d,0x2,0xd0,0x2,0x57,0xfe,0x35,0xfc,0xa3,0xff,0xb2,0x2, +0xb5,0x1,0xf4,0xff,0xce,0xff,0xd3,0xff,0xa,0x0,0x4e,0x1, +0xff,0x0,0x1,0xfe,0x29,0xfd,0xcb,0x0,0x78,0x3,0x60,0x1, +0x58,0xfe,0xe,0xfe,0xcd,0xfe,0xa1,0xff,0x12,0x2,0x7c,0x3, +0x7a,0x0,0x9f,0xfd,0x9c,0xff,0xe0,0x1,0x51,0x0,0xca,0xfe, +0x4a,0x0,0xb,0x2,0x8c,0x1,0x20,0x0,0x8f,0xff,0xf6,0xfe, +0xf8,0xfd,0xd8,0xfe,0x18,0x1,0x79,0x1,0xc7,0x0,0xda,0x0, +0xce,0xff,0xd9,0xfd,0x5f,0xfe,0x1f,0x1,0x7,0x3,0x93,0x2, +0xdb,0xff,0x2c,0xfd,0xd5,0xfd,0x53,0x1,0x3d,0x3,0x21,0x1, +0x6,0xfe,0x3c,0xfe,0xc9,0x0,0x4e,0x1,0xab,0xff,0x9e,0xff, +0xb7,0x1,0x56,0x2,0xd9,0xff,0x67,0xfd,0xc,0xfe,0xba,0x0, +0x94,0x2,0xd2,0x1,0x35,0xff,0xea,0xfd,0x22,0xff,0xb2,0x0, +0xb9,0x1,0x18,0x2,0x42,0x0,0xad,0xfd,0xe2,0xfd,0x5,0x0, +0x58,0x1,0xdf,0x1,0xdb,0x1,0x89,0x0,0x8d,0xfe,0x3c,0xfe, +0x30,0x0,0xf7,0x0,0x16,0xff,0x41,0xff,0x52,0x2,0xd,0x2, +0x5c,0xfe,0xbf,0xfd,0x3e,0x0,0x53,0x1,0xdf,0x0,0x88,0x0, +0x6,0x0,0x57,0xff,0x47,0xff,0x99,0xff,0x75,0xff,0xe8,0xff, +0x3c,0x2,0x69,0x3,0x1b,0x0,0x2d,0xfc,0x64,0xfd,0xf2,0x1, +0xc6,0x3,0x20,0x1,0x80,0xfd,0x12,0xfd,0x83,0x0,0xb2,0x3, +0xdd,0x1,0x31,0xfd,0xe7,0xfc,0xdf,0x0,0xe8,0x1,0xcb,0xff, +0xf9,0xff,0xa1,0x1,0x27,0x1,0x88,0xff,0xc9,0xfe,0x2d,0xff, +0x36,0x0,0x7,0x1,0xd2,0x1,0x48,0x2,0x81,0x0,0xd0,0xfd, +0x93,0xfd,0x8,0xff,0x8f,0x0,0xa1,0x2,0x65,0x3,0x6d,0x0, +0x73,0xfc,0x90,0xfc,0xb,0x1,0x1f,0x4,0xdb,0x1,0x52,0xfe, +0x51,0xfe,0x18,0x0,0xa1,0x0,0xf1,0xff,0x20,0xff,0xbb,0xff, +0x7b,0x1,0x56,0x1,0x62,0xff,0xfa,0xfe,0xd5,0xff,0xe6,0xff, +0x8c,0x0,0x16,0x2,0x2,0x1,0xa5,0xfd,0x72,0xfd,0xbd,0x0, +0x43,0x2,0x62,0x1,0x7c,0x0,0x8a,0xfe,0xbe,0xfc,0x12,0xff, +0xf9,0x2,0xe4,0x2,0x9e,0xff,0x1,0xfd,0x2e,0xfd,0x47,0x0, +0xbb,0x2,0x21,0x1,0x69,0xfe,0xeb,0xfe,0x8,0x1,0xce,0x0, +0x1e,0xff,0x89,0xff,0x5,0x1,0x60,0x0,0x92,0xff,0xbd,0x0, +0x65,0x0,0xd3,0xfd,0xfc,0xfd,0x88,0x1,0x8c,0x3,0x94,0x1, +0x24,0xfe,0x60,0xfd,0xd2,0xff,0x95,0x1,0x1d,0x1,0x6a,0x0, +0x4f,0xff,0xc8,0xfd,0x1d,0xff,0x9c,0x2,0x85,0x2,0xc3,0xfe, +0x88,0xfd,0xc4,0xff,0x66,0x0,0xbd,0xfe,0xf4,0xfe,0xa1,0x1, +0x3a,0x3,0xca,0x1,0xee,0xfe,0xcf,0xfd,0x48,0xff,0xcc,0x0, +0x13,0x1,0x28,0x1,0x4f,0x0,0xf9,0xfd,0x21,0xfd,0xb0,0xff, +0x6,0x3,0x40,0x3,0xb1,0xff,0x9a,0xfc,0xe1,0xfd,0x87,0x0, +0x46,0x0,0x56,0xff,0x96,0x0,0x9b,0x1,0x8e,0x0,0xaf,0xff, +0xf5,0xff,0x5e,0xff,0x46,0xfe,0xa5,0xff,0x32,0x2,0x27,0x1, +0xc3,0xfd,0x23,0xfe,0xea,0x1,0xb6,0x2,0x52,0xff,0x33,0xfd, +0x83,0xff,0xaf,0x2,0xf5,0x1,0x76,0xfe,0x2a,0xfd,0x12,0xff, +0x13,0x1,0xfe,0x1,0xa,0x2,0xfc,0xff,0x3d,0xfd,0xf9,0xfd, +0xea,0x0,0x17,0x1,0x92,0xff,0xc9,0xff,0x6,0x0,0x76,0xff, +0xd7,0x0,0xb4,0x2,0x3f,0x1,0x5f,0xfe,0xe3,0xfd,0x79,0xff, +0x2b,0x1,0xd5,0x1,0xfc,0x0,0xaf,0xff,0x4a,0xff,0x56,0xff, +0x65,0xff,0x3e,0x0,0x10,0x1,0xc,0x0,0xcc,0xfe,0xfb,0xff, +0x59,0x1,0xb5,0xff,0xe0,0xfd,0x95,0xff,0x70,0x2,0x5b,0x2, +0xac,0xff,0xac,0xfd,0x9f,0xfe,0x29,0x1,0x9a,0x1,0x9c,0xff, +0xc7,0xfe,0xbc,0xff,0xb,0x0,0x7b,0x0,0x2,0x2,0xf3,0x0, +0x23,0xfd,0x27,0xfd,0x8d,0x1,0x1f,0x3,0x6f,0x0,0x34,0xfe, +0x1c,0xfe,0xbc,0xff,0x0,0x2,0x9d,0x1,0x8f,0xfe,0x3f,0xfd, +0xd3,0xfe,0x11,0x1,0x9d,0x2,0xc6,0x1,0x88,0xfe,0x37,0xfd, +0xbc,0xff,0xf9,0x1,0x3e,0x1,0xe4,0xff,0xfd,0xff,0xa8,0x0, +0xd8,0x0,0x79,0x0,0x42,0xff,0xdc,0xfd,0xa0,0xfe,0xaa,0x1, +0x16,0x3,0x6f,0x0,0xf2,0xfc,0x8e,0xfd,0xa5,0x1,0x21,0x3, +0xef,0xff,0xd7,0xfd,0x8,0x0,0x51,0x1,0xc6,0xfe,0x88,0xfd, +0x72,0x0,0xa9,0x2,0x0,0x1,0x21,0xff,0xab,0xff,0xf,0x0, +0xdc,0xfe,0x8f,0xfe,0x8d,0x0,0x4b,0x2,0xb7,0x0,0x94,0xfd, +0x43,0xfe,0x27,0x2,0x6b,0x2,0x2a,0xff,0xea,0xfe,0x94,0x0, +0x0,0xff,0x3d,0xfd,0xd1,0xff,0x1,0x3,0x1,0x2,0x8e,0xfe, +0xfb,0xfc,0xb2,0xfe,0x83,0x1,0x66,0x2,0xd4,0x0,0x36,0xff, +0x74,0xff,0xfb,0xff,0xcc,0xfe,0x32,0xfe,0xcf,0x0,0x46,0x3, +0x47,0x1,0x5e,0xfd,0xd7,0xfc,0xc7,0xff,0xd6,0x1,0x7,0x1, +0x9,0x0,0x6a,0x0,0x63,0xff,0xc9,0xfc,0x7b,0xfd,0xe5,0x1, +0xcd,0x3,0xf1,0x0,0xde,0xfd,0x9e,0xfd,0xbb,0xfe,0x82,0xff, +0x28,0x0,0x47,0x1,0xb,0x2,0xbd,0x0,0x3f,0xfe,0xff,0xfd, +0x8,0x0,0xaa,0x0,0x4,0x0,0x35,0x1,0x49,0x2,0xbe,0xff, +0xcc,0xfc,0x10,0xfe,0xaf,0x1,0x16,0x3,0xd6,0x0,0xc4,0xfd, +0x4,0xfe,0xb7,0x0,0xa,0x1,0x6b,0xff,0xab,0xff,0x55,0x0, +0x3f,0xff,0x12,0xff,0x54,0x0,0x4,0x0,0xfe,0xfe,0xb4,0xff, +0x40,0x0,0x27,0xff,0x1b,0xff,0xb7,0x0,0x9a,0x0,0xc8,0xfe, +0x30,0xff,0x61,0x1,0xf2,0x0,0x2a,0xfe,0x88,0xfd,0x38,0x0, +0xb6,0x2,0x83,0x1,0x3f,0xfe,0x6f,0xfe,0xbf,0x1,0x17,0x1, +0xc2,0xfc,0x55,0xfd,0x88,0x2,0x12,0x3,0xb0,0xfe,0xf9,0xfd, +0x6b,0x1,0x72,0x1,0xbf,0xfd,0x8d,0xfd,0x4f,0x1,0xf8,0x1, +0x3d,0xfe,0xbc,0xfc,0x58,0x0,0x68,0x3,0x16,0x1,0x9d,0xfd, +0xd2,0xfe,0x73,0x1,0x4d,0x0,0xd8,0xfe,0xe8,0x0,0x23,0x2, +0x61,0xff,0x9,0xfd,0xa0,0xfe,0x57,0x1,0x75,0x1,0xc3,0xff, +0x24,0xff,0x7e,0xff,0x1b,0xff,0xae,0xfe,0xb7,0xff,0x6f,0x1, +0x8f,0x1,0x56,0xff,0xbc,0xfd,0x7b,0xff,0x97,0x1,0x9e,0x0, +0xe5,0xfe,0xd,0xff,0xe5,0xff,0x20,0x0,0x66,0xff,0x8f,0xfe, +0xf4,0xff,0x82,0x2,0xca,0x1,0x34,0xfe,0xec,0xfc,0x94,0xff, +0x57,0x2,0x73,0x1,0x57,0xfe,0xe2,0xfd,0x9e,0x0,0xbd,0x1, +0x99,0xff,0x62,0xfe,0x10,0x0,0xd7,0x0,0xbf,0xfe,0xcc,0xfd, +0x9,0x0,0x3f,0x1,0x69,0xff,0x98,0xfe,0x6,0x1,0xcc,0x2, +0x21,0x0,0x43,0xfc,0x8b,0xfd,0x41,0x2,0x9b,0x2,0xe4,0xfe, +0x17,0xfe,0x43,0x0,0x96,0x0,0x6c,0xff,0xb7,0xff,0xb1,0x0, +0xf6,0xff,0x5e,0xfe,0x0,0xff,0x28,0x1,0xd3,0x0,0x9d,0xfe, +0xee,0xfe,0x2f,0x1,0xc,0x1,0xa4,0xfe,0xe7,0xfd,0x79,0xff, +0x53,0x0,0x16,0x0,0xe6,0x0,0x35,0x1,0x1a,0xff,0x5d,0xfe, +0xe8,0x0,0xe3,0x1,0xc3,0xff,0xdf,0xfe,0xd,0x0,0x77,0x0, +0xb,0x0,0x55,0x0,0xc2,0x0,0xf0,0xff,0xb5,0xfe,0x4c,0xff, +0x2d,0x1,0x4e,0x1,0x56,0xff,0x34,0xfe,0x86,0xff,0x83,0x1, +0x63,0x1,0x72,0xff,0xd5,0xfe,0xdf,0xff,0xde,0xff,0x34,0xff, +0x43,0x0,0x82,0x1,0x2d,0x0,0x43,0xfe,0x8a,0xff,0x84,0x2, +0xe8,0x1,0x8d,0xfd,0xd,0xfc,0x66,0x0,0x1e,0x4,0x3b,0x1, +0x68,0xfc,0x9b,0xfd,0x9f,0x2,0x25,0x3,0x5d,0xff,0x6d,0xfe, +0xea,0x0,0x5c,0x1,0x2b,0xff,0xa9,0xfe,0xb0,0x0,0x5e,0x1, +0x12,0xff,0xdc,0xfd,0x50,0x0,0xf8,0x1,0x98,0xff,0xd4,0xfd, +0x3,0x0,0xd1,0x1,0x46,0x0,0xe2,0xfe,0xdd,0xff,0xc7,0x0, +0x98,0x0,0xfc,0x0,0x32,0x1,0x4b,0xff,0xa5,0xfd,0x8f,0xff, +0xb0,0x2,0x9e,0x2,0xb1,0xff,0xbc,0xfd,0xcc,0xfe,0xe4,0x0, +0xe3,0x0,0x76,0xff,0x87,0xff,0x98,0x0,0x6b,0x0,0x8a,0xff, +0x51,0xff,0xcb,0xff,0xbd,0x0,0x51,0x1,0xb8,0x0,0xba,0xff, +0x30,0xff,0x26,0xff,0xc2,0xff,0x76,0x0,0xaf,0x0,0xef,0x0, +0xbb,0x0,0xaa,0xff,0xd2,0xff,0x5e,0x1,0xf5,0x0,0x7b,0xfe, +0xa0,0xfd,0x8b,0xff,0x22,0x2,0xc4,0x2,0x47,0x0,0x75,0xfd, +0x60,0xfe,0x9b,0x1,0xf7,0x1,0xf7,0xfe,0x8b,0xfd,0x21,0x0, +0xeb,0x2,0xc2,0x1,0x61,0xfe,0x7a,0xfd,0xc6,0xff,0xb7,0x1, +0x76,0x1,0xe5,0x0,0xcf,0x0,0x76,0xff,0xc3,0xfd,0x16,0xff, +0x50,0x2,0xa4,0x2,0xd4,0xff,0x58,0xfe,0xac,0xff,0xce,0x0, +0x34,0x0,0x64,0xff,0x9,0xff,0x2b,0xff,0xcd,0x0,0x63,0x2, +0xbe,0x0,0xdb,0xfd,0x32,0xfe,0xd1,0x0,0x14,0x2,0x49,0x1, +0xa5,0xff,0xb5,0xfe,0xa3,0xff,0x5e,0x1,0x97,0x1,0xdc,0xff, +0x84,0xfe,0x98,0xff,0x20,0x1,0x9b,0x0,0xd2,0xff,0xf7,0xff, +0x11,0xff,0x9d,0xfe,0x41,0x1,0x8b,0x3,0xe5,0x1,0x8c,0xfe, +0xb7,0xfc,0xe1,0xfd,0x55,0x1,0xcd,0x2,0x2b,0x0,0x96,0xfd, +0x99,0xfe,0x7e,0x1,0xc4,0x2,0xc8,0x0,0xd4,0xfd,0xe9,0xfd, +0xe6,0x0,0xd8,0x2,0x95,0x1,0xaf,0xfe,0x99,0xfd,0xe4,0xff, +0x66,0x2,0x7a,0x1,0xdf,0xfe,0x52,0xfe,0x8d,0xff,0x72,0x0, +0xe9,0x0,0x8,0x1,0xb,0x0,0x12,0xff,0xd5,0xff,0xeb,0x0, +0x4c,0x0,0xf5,0xfe,0xb6,0xfe,0xc9,0xff,0x29,0x1,0x5a,0x1, +0x42,0x0,0x70,0xff,0x90,0xff,0x6a,0x0,0x7a,0x1,0xf1,0x0, +0xb1,0xfe,0x19,0xfe,0x42,0x0,0xdd,0x1,0xfc,0x0,0x64,0xff, +0x3d,0xff,0x3c,0x0,0x7a,0x0,0x8,0x0,0x49,0x0,0x55,0x0, +0x8b,0xff,0xcc,0xff,0xda,0x0,0x92,0x0,0xcf,0xff,0x25,0x0, +0x93,0x0,0x1a,0x0,0x34,0xff,0x0,0xff,0x1c,0x0,0x33,0x1, +0xce,0x0,0xb3,0xff,0x22,0xff,0x90,0xff,0xab,0x0,0xc6,0x0, +0xc8,0xff,0xfc,0xff,0xb0,0x0,0x7c,0xff,0x87,0xfe,0x3c,0x0, +0xb3,0x1,0x4f,0x0,0x3c,0xfe,0x4e,0xfe,0x68,0x0,0x3,0x2, +0x19,0x1,0x8,0xff,0xbc,0xfe,0x37,0x0,0xf3,0x0,0x9,0x0, +0xfb,0xfe,0xfc,0xfe,0xf9,0xff,0x46,0x1,0x46,0x1,0x1c,0xff, +0x6a,0xfd,0xe4,0xfe,0xaf,0x1,0x8c,0x2,0x3e,0x1,0x4b,0xff, +0x3e,0xfe,0x12,0xff,0xf7,0x0,0xcb,0x1,0x49,0x0,0xf3,0xfd, +0x19,0xfe,0xe1,0x0,0x48,0x2,0xa7,0x0,0xcf,0xfe,0xc8,0xfe, +0x1b,0x0,0x9f,0x1,0xe3,0x1,0x71,0x0,0x95,0xfe,0x10,0xfe, +0xf6,0xff,0xa7,0x2,0x2,0x2,0xf5,0xfd,0x76,0xfc,0x2a,0x0, +0x7b,0x3,0xb6,0x1,0x48,0xfe,0x30,0xfe,0x47,0x0,0x2e,0x1, +0xd5,0x0,0xf,0x0,0x6,0xff,0xc,0xff,0x5c,0x0,0x1c,0x1, +0xd2,0x0,0x11,0x0,0xe2,0xfe,0x98,0xfe,0x30,0x0,0xa9,0x1, +0xc,0x1,0x20,0xff,0xac,0xfe,0xb4,0x1,0xd9,0x4,0x21,0x2, +0x5b,0xfb,0xbb,0xf8,0x72,0xfc,0x55,0x1,0xbe,0x3,0x14,0x4, +0xbe,0x2,0x73,0xff,0xdb,0xfc,0x43,0xfe,0xac,0x0,0x83,0xff, +0x56,0xfe,0x75,0x1,0xfd,0x3,0x5a,0x1,0xdf,0xfd,0xef,0xfd, +0xbb,0xff,0xb4,0x0,0xf8,0x0,0x21,0x1,0xfb,0x0,0x77,0x0, +0xfc,0xff,0x8e,0xff,0x3f,0xff,0xac,0xff,0x3e,0x0,0x9,0x0, +0x54,0x0,0xc1,0x1,0xfe,0x1,0x4b,0x0,0xdb,0xfe,0xbe,0xfe, +0xa9,0xff,0x31,0x1,0x5b,0x1,0x46,0xff,0x5f,0xfe,0x86,0x0, +0xaf,0x1,0xab,0xff,0xb9,0xfe,0xe7,0x0,0x22,0x2,0x47,0x0, +0x72,0xfe,0x27,0xff,0xe5,0x0,0xd4,0x0,0x63,0xff,0xe4,0xff, +0x9e,0x1,0x6c,0x0,0xfa,0xfd,0xf6,0xfe,0x75,0x1,0x97,0x1, +0x7f,0x0,0xfa,0xff,0xd6,0xff,0xf6,0xff,0x1f,0x0,0x66,0x0, +0xd5,0x0,0x34,0x0,0x32,0xff,0xde,0xff,0xb0,0x0,0x20,0x0, +0x17,0x0,0xae,0x0,0x78,0x0,0x6,0x0,0xf8,0xfe,0xff,0xfd, +0xd1,0x0,0xc9,0x4,0x2b,0x2,0x95,0xfb,0x27,0xfb,0x15,0x1, +0x5a,0x4,0x62,0x1,0xea,0xfd,0xf7,0xfe,0x81,0x1,0x3,0x1, +0x36,0xff,0x2f,0xff,0x4,0x0,0xa0,0x0,0x49,0x1,0x37,0x1, +0x11,0x0,0xeb,0xfe,0x81,0xfe,0x4e,0xff,0x35,0x1,0x39,0x2, +0xee,0x0,0xe6,0xfe,0x6f,0xfe,0x3,0x0,0xf0,0x1,0x7b,0x1, +0x96,0xfe,0x6c,0xfd,0x62,0x0,0x80,0x3,0x40,0x2,0x73,0xfe, +0x84,0xfd,0x9f,0x0,0xb2,0x2,0x5b,0x0,0xea,0xfd,0x23,0xff, +0x90,0x0,0x68,0x0,0x89,0x1,0x34,0x2,0x9e,0xff,0x2c,0xfe, +0x36,0x0,0xfc,0x0,0xb0,0xff,0x29,0x0,0x6f,0x1,0xff,0xff, +0x73,0xfd,0xb6,0xfe,0x2a,0x3,0x3b,0x3,0xab,0xfd,0x22,0xfc, +0xc,0x1,0x5,0x3,0x19,0x0,0xe2,0xfe,0xb9,0xff,0x24,0x0, +0x45,0x1,0xad,0x1,0x0,0xff,0xb8,0xfc,0xe9,0xfe,0x4f,0x3, +0x16,0x4,0xf6,0xff,0x37,0xfd,0x77,0xff,0xd1,0x0,0x74,0xfe, +0xca,0xfe,0x8b,0x2,0x16,0x2,0xb1,0xfd,0x8f,0xfd,0xdd,0x1, +0xe0,0x2,0x16,0xff,0xe8,0xfc,0x29,0xff,0xa4,0x1,0x4b,0x1, +0xb9,0xff,0xda,0xfe,0x58,0xff,0x1c,0x1,0xe4,0x1,0x8,0x0, +0xa0,0xfe,0x8e,0x0,0x78,0x2,0xaa,0x0,0xe6,0xfd,0x27,0xfe, +0x48,0x0,0x2c,0x1,0x76,0x0,0xec,0xff,0x79,0x0,0xb0,0x0, +0x56,0xff,0x25,0xfe,0x8,0xff,0x0,0x1,0x13,0x2,0x39,0x1, +0x16,0xff,0x4c,0xfe,0xbe,0xff,0xc4,0x0,0xfb,0xff,0x15,0xff, +0xb6,0xff,0xa6,0x1,0xdc,0x1,0xa3,0xfe,0x26,0xfd,0xc0,0x0, +0xdf,0x2,0xf7,0xff,0x6e,0xfe,0xa9,0x0,0xa7,0x1,0xe8,0xff, +0x39,0xfe,0x73,0xfe,0x64,0x0,0xa7,0x1,0xa7,0x0,0x3e,0xff, +0x11,0xff,0xdd,0xff,0xb9,0x0,0xc8,0xff,0xc4,0xfd,0xec,0xfe, +0x8d,0x2,0xeb,0x2,0xa,0x0,0xd6,0xfe,0x9b,0xff,0x73,0xff, +0xe9,0xfe,0x2c,0x0,0x2,0x2,0xb0,0x1,0xb7,0xff,0x69,0xfe, +0x6b,0xfe,0x90,0xff,0xf7,0x0,0x65,0x0,0x4a,0xfe,0x5e,0xfe, +0x36,0x1,0xcf,0x2,0x65,0x0,0xd2,0xfc,0x9f,0xfd,0x26,0x2, +0x2c,0x3,0x72,0xff,0xc0,0xfd,0xc7,0xff,0xb1,0x0,0x63,0xff, +0xd9,0xfe,0x36,0x0,0xbc,0x1,0xf2,0x0,0x70,0xfe,0xd,0xfe, +0x72,0x0,0xdb,0x1,0x84,0x0,0xc1,0xfe,0x19,0xff,0xf2,0x0, +0x0,0x1,0xac,0xfe,0x18,0xfe,0xc7,0x0,0x3a,0x2,0xf,0x0, +0xfc,0xfd,0xd9,0xfe,0xc8,0x0,0x8b,0x1,0xfe,0x0,0x64,0xff, +0xf0,0xfd,0xce,0xfe,0x16,0x1,0x51,0x1,0xb8,0xff,0x5f,0xff, +0xe5,0xff,0x25,0xff,0x74,0xfe,0x5,0x0,0x45,0x2,0xe7,0x1, +0xe8,0xfe,0x1f,0xfd,0xec,0xfe,0x7d,0x1,0x34,0x1,0x2d,0xff, +0xb1,0xfe,0x2a,0x0,0x8d,0x1,0x3,0x1,0xba,0xfe,0xdd,0xfd, +0x7e,0x0,0x87,0x2,0xf5,0xff,0x3,0xfd,0xab,0xfe,0x89,0x1, +0xe9,0x0,0x92,0xfe,0x37,0xfe,0x21,0x0,0x9f,0x1,0x9e,0x0, +0x19,0xff,0xc7,0xff,0x23,0x1,0x12,0x1,0x3f,0x0,0x45,0xff, +0xee,0xfe,0x72,0x0,0x9a,0x1,0xd6,0xff,0xd3,0xfd,0xc9,0xfe, +0xf1,0x0,0xf6,0x0,0x38,0xff,0x83,0xff,0x62,0x2,0x6a,0x2, +0xff,0xfd,0xf4,0xfb,0x22,0xff,0x4a,0x1,0x98,0xff,0x1c,0xff, +0xe3,0x1,0xdf,0x2,0x9e,0xff,0x1f,0xfd,0xc,0xff,0x12,0x2, +0x6d,0x2,0x83,0x0,0x8a,0xfe,0xac,0xfe,0x4e,0x0,0x1b,0x0, +0xa7,0xfe,0x5a,0xff,0xe8,0x0,0xe2,0x0,0x41,0x0,0xe7,0xfe, +0x24,0xfd,0x95,0xfe,0xa4,0x2,0x9e,0x3,0x66,0x0,0x79,0xfd, +0xff,0xfd,0x8a,0x0,0x15,0x1,0x24,0xff,0xd9,0xfe,0x27,0x1, +0x27,0x2,0x24,0x0,0xed,0xfd,0xf8,0xfe,0x72,0x2,0xd9,0x2, +0xf9,0xfe,0x4d,0xfd,0x4b,0x0,0x77,0x2,0x32,0x1,0x5f,0xff, +0xd7,0xfe,0xb5,0xff,0x62,0x1,0xae,0x1,0xc9,0xff,0x91,0xfe, +0xa9,0xff,0x24,0x0,0x65,0xfe,0x56,0xfe,0xe0,0x1,0xe7,0x3, +0x3e,0x1,0xe7,0xfd,0x4e,0xfd,0x8d,0xfe,0x6e,0x0,0xca,0x1, +0x85,0x1,0x6,0x1,0xae,0x1,0x9b,0x1,0x85,0xff,0xe8,0xfd, +0xd5,0xfe,0xa6,0x0,0x2c,0x1,0x9d,0x0,0xd0,0xff,0x21,0xff, +0x56,0xff,0x6f,0x0,0x11,0x1,0xbf,0x0,0x32,0x0,0xf8,0xff, +0x44,0x0,0x66,0x0,0xb6,0xff,0xaf,0xff,0x19,0x1,0x8c,0x1, +0x19,0x0,0x2f,0xff,0xbd,0xff,0x23,0x0,0x94,0xff,0x32,0xff, +0x51,0x0,0xd7,0x1,0x55,0x1,0x9b,0xff,0x59,0xff,0x28,0x0, +0x65,0x0,0x17,0x0,0x50,0xff,0xd7,0xfe,0xe,0x0,0x4d,0x1, +0x67,0x0,0x96,0xff,0xba,0x0,0x2a,0x1,0x65,0xff,0x4f,0xfe, +0xb,0x0,0x4a,0x2,0x8d,0x1,0xc1,0xfe,0x7d,0xfe,0x3,0x1, +0x78,0x1,0x69,0xff,0x72,0xff,0x5e,0x1,0xc1,0x0,0x2b,0xfe, +0x1d,0xfe,0x14,0x1,0xfa,0x2,0xa3,0x1,0xf1,0xff,0x6d,0x0, +0xcb,0x0,0x7e,0xff,0x56,0xff,0x1d,0x1,0x3c,0x2,0xfa,0x1, +0x73,0x0,0x97,0xfd,0xf,0xfc,0xa1,0xfd,0xb,0x0,0xb6,0x1, +0x5b,0x2,0x16,0x1,0x25,0xff,0xc5,0xfe,0xe6,0xff,0x9d,0x1, +0x21,0x2,0x76,0x0,0x3e,0x0,0x46,0x2,0xbb,0x0,0xc8,0xfc, +0x88,0xfe,0x95,0x3,0xf8,0x2,0xfc,0xfd,0x6d,0xfc,0xdc,0xff, +0xd0,0x2,0xee,0x0,0xa9,0xfd,0x74,0xfe,0xf0,0x0,0x81,0x0, +0xcf,0xfe,0xe7,0xfe,0xbe,0x0,0xb0,0x2,0x1,0x2,0xbc,0xfe, +0x7e,0xfd,0xbd,0xff,0x7a,0x1,0xc5,0x0,0xdd,0xff,0x86,0x0, +0x7e,0x1,0xa5,0x0,0xe8,0xfe,0xc2,0xfe,0xc4,0xff,0x78,0x0, +0x9,0x1,0x2c,0x1,0x7e,0x0,0xd9,0xff,0xce,0xff,0x95,0x0, +0x49,0x1,0xb8,0xff,0x7e,0xfd,0xa0,0xfe,0x18,0x1,0xb6,0x0, +0x7f,0xff,0xa5,0x0,0xcb,0x2,0x27,0x3,0xc0,0x0,0x10,0xfe, +0x87,0xfe,0x46,0x0,0x69,0xff,0xe4,0xfd,0x21,0xff,0x98,0x1, +0x5f,0x2,0x10,0x1,0x6b,0xff,0x89,0xff,0x92,0x0,0xe8,0xff, +0x75,0xfe,0xff,0xfe,0x8a,0x0,0x37,0x0,0x6,0xff,0x68,0x0, +0x17,0x3,0xce,0x1,0x5d,0xfd,0xea,0xfc,0x49,0x1,0x46,0x3, +0x18,0x0,0x25,0xfd,0xc1,0xfe,0x35,0x2,0x93,0x2,0x5b,0x0, +0xa2,0xff,0x27,0x0,0x2f,0xff,0x37,0xfe,0x8d,0xff,0x6e,0x1, +0x8f,0x1,0x4,0x0,0x8a,0xfe,0x62,0xff,0x74,0x1,0xe0,0x0, +0xb3,0xfe,0x6f,0xff,0x8f,0x1,0xbd,0x0,0xe3,0xfe,0xe4,0xff, +0xa,0x2,0x80,0x1,0xfd,0xfe,0xb6,0xfe,0x2c,0x1,0x2e,0x1, +0x55,0xfd,0x7e,0xfc,0x37,0x1,0xbd,0x3,0x69,0x0,0xe5,0xfd, +0xcc,0xff,0x5d,0x1,0x90,0xff,0x70,0xfd,0x80,0xfe,0xd6,0x1, +0xd0,0x2,0xdf,0xff,0x25,0xfe,0xd0,0x0,0xfd,0x2,0x25,0x1, +0x6e,0xff,0xd6,0x0,0x10,0x2,0x48,0x0,0x52,0xfd,0xc0,0xfc, +0x9a,0xff,0x31,0x2,0xc,0x1,0xbc,0xfe,0xa2,0xfe,0x60,0xff, +0xf4,0xff,0x12,0x1,0xfd,0x0,0x23,0xff,0x4b,0xfe,0x45,0xff, +0xfb,0x0,0x4b,0x2,0xcc,0x0,0x1,0xfe,0x4b,0xff,0x88,0x2, +0x51,0x1,0x3c,0xfe,0x33,0xff,0xa6,0x2,0x3f,0x3,0xd5,0xfe, +0x47,0xfa,0x0,0xfd,0x88,0x3,0x8e,0x3,0x68,0xfe,0xd9,0xfc, +0x7b,0xff,0x7e,0x1,0x54,0x0,0xc5,0xfd,0xa0,0xfe,0xc4,0x1, +0xe2,0x0,0x6b,0xfe,0x39,0x0,0x21,0x2,0xf9,0xff,0x2,0xfe, +0x18,0xff,0x3f,0x1,0x9b,0x1,0x86,0xff,0x5d,0xff,0x4e,0x2, +0xb2,0x1,0xda,0xfd,0x5d,0xfe,0x5,0x1,0xa,0x0,0x61,0xfe, +0xe9,0xfe,0xad,0x0,0xa5,0x2,0x67,0x1,0x98,0xfd,0x1,0xfe, +0xf9,0x0,0xf5,0xff,0x6a,0xfe,0x4e,0x0,0xbd,0x1,0xc1,0x0, +0x6c,0xfe,0x9c,0xfc,0x86,0xff,0x9c,0x4,0x82,0x3,0x6f,0xfe, +0x2f,0xfd,0xcd,0xfe,0xa,0x0,0x8e,0x0,0x4f,0xff,0x3e,0xfe, +0xd0,0xff,0x1,0x1,0xfa,0x0,0xdf,0x1,0xea,0x0,0x33,0xfe, +0x9d,0xff,0xee,0x2,0x73,0x1,0xa2,0xfd,0x7e,0xfc,0x3b,0xfe, +0x9f,0x1,0x96,0x2,0x72,0xfe,0x12,0xfc,0x55,0x0,0xe,0x4, +0xc0,0x1,0xde,0xfd,0x99,0xfd,0xf8,0x0,0xf9,0x2,0xc0,0xff, +0x4f,0xfd,0x8d,0x1,0xbe,0x4,0x5b,0x0,0xa,0xfc,0x8f,0xfd, +0x69,0x0,0x3e,0x1,0xa3,0x0,0xc4,0xff,0x15,0x0,0xf,0x0, +0x75,0xfe,0x10,0xff,0x3e,0x1,0xb5,0xff,0x1c,0xfe,0x4c,0x1, +0x84,0x2,0x17,0xfe,0xc8,0xfb,0x51,0xff,0xd9,0x3,0x5e,0x4, +0xec,0xff,0x67,0xfc,0x18,0xff,0xeb,0x1,0x7c,0xff,0x1d,0xfe, +0x1a,0x1,0xf1,0x2,0x3b,0x1,0xec,0xfd,0x73,0xfc,0x31,0x0, +0x21,0x4,0xe1,0x0,0xe8,0xfb,0x20,0xfd,0xe9,0x0,0x59,0x2, +0xc4,0x1,0x11,0x0,0x31,0xff,0x5d,0xff,0x51,0xfe,0x28,0xfe, +0x5c,0x0,0xea,0x0,0x83,0x0,0xaa,0x1,0x54,0x0,0x65,0xfd, +0xa4,0xfe,0x94,0x0,0x9c,0xff,0xd8,0xff,0xe6,0x0,0x8b,0x0, +0x18,0x1,0xb9,0x0,0xf5,0xfd,0xaa,0xfd,0x59,0xff,0xc2,0xff, +0x2,0x1,0x8,0x1,0x40,0xfe,0x85,0xff,0xb3,0x2,0x5b,0xff, +0x9,0xfc,0xb0,0xff,0x50,0x3,0xd5,0x2,0xf1,0xff,0x89,0xfc, +0x92,0xfe,0x6f,0x3,0x25,0x0,0x40,0xfb,0x8,0x0,0x7a,0x4, +0xe5,0x0,0x4f,0xfe,0xef,0xfe,0xa4,0xfe,0x51,0xff,0xa5,0x0, +0x1,0x1,0xde,0x1,0x9e,0x0,0x1f,0xfd,0x97,0xfd,0x1e,0x0, +0x2f,0xff,0x5f,0xfe,0xf8,0xff,0xdd,0x0,0x10,0x1,0x4b,0x0, +0x16,0xfe,0x85,0xfe,0x6e,0x1,0xb7,0x1,0x3f,0x0,0xb9,0xff, +0xe2,0xfe,0x8a,0xfe,0xa5,0x0,0xe3,0x2,0xc5,0x1,0x33,0xfe, +0xd7,0xfd,0x0,0x2,0x9a,0x2,0x20,0xfd,0xcc,0xfa,0xa7,0xfe, +0x1b,0x2,0x35,0x2,0xd4,0xff,0xdc,0xfd,0x70,0x0,0x6d,0x3, +0x82,0x0,0xbd,0xfc,0xfc,0xfc,0x9a,0xfe,0x10,0x2,0x61,0x5, +0x60,0x1,0xe8,0xfa,0x69,0xfc,0xc4,0x1,0x1b,0x2,0x33,0xfe, +0xf0,0xfb,0x5b,0xff,0xf5,0x3,0xc5,0x1,0xa3,0xfd,0x57,0xff, +0xd,0x0,0xf1,0xfb,0x8b,0xfc,0x8c,0x2,0x4f,0x4,0xee,0x0, +0xde,0xfd,0x94,0xfd,0x2e,0x0,0xe,0x3,0x2c,0x3,0x44,0x1, +0x4,0xff,0x6c,0xfd,0xa2,0xfd,0x46,0xff,0x2,0x1,0x3d,0x1, +0x74,0xff,0x40,0xff,0x3e,0x1,0x45,0xff,0x2a,0xfb,0xcb,0xfd, +0x9a,0x3,0xf1,0x3,0x38,0x1,0x6e,0xff,0x1b,0xfe,0x94,0xfd, +0x12,0xfd,0x22,0xfe,0xf3,0x3,0x96,0x6,0xaa,0xff,0xd7,0xfa, +0xd0,0xfe,0x88,0x2,0x7b,0x3,0x1b,0x4,0x9e,0x1,0x88,0xfe, +0xcb,0xfd,0x3,0xfc,0x85,0xfc,0xcb,0x0,0x82,0xff,0x7d,0xfc, +0xe9,0x1,0x8,0x4,0x4d,0xfb,0x9d,0xf8,0xbc,0x0,0x6a,0x5, +0xd5,0x3,0xd2,0x0,0xee,0xfc,0x7b,0xfb,0xca,0xfd,0x6a,0x0, +0x1f,0x3,0xf,0x3,0x2d,0xfd,0xd9,0xfa,0x81,0x1,0x88,0x5, +0x70,0x1,0xc1,0xfd,0xaa,0xfe,0x8d,0x1,0x95,0x2,0xdd,0xfe, +0xe,0xfc,0xa0,0x0,0xb3,0x4,0x9d,0x0,0x0,0xfc,0xd1,0xfc, +0x34,0xfe,0x3a,0xfe,0x71,0xff,0x47,0x0,0x3c,0xfe,0xbb,0xfb, +0xa8,0xfc,0xea,0xff,0xed,0x0,0x6,0x0,0x5f,0x1,0xba,0x3, +0xe0,0x2,0xa3,0xff,0xf6,0xfd,0x67,0x0,0x59,0x4,0x5b,0x2, +0xd8,0xfb,0x6f,0xfc,0x13,0x3,0x12,0x3,0x2e,0xfe,0x3e,0xfe, +0x7f,0x0,0x4d,0x0,0x94,0x0,0x13,0x1,0x81,0xff,0xf5,0xfd, +0x87,0xfe,0xca,0x1,0x93,0x4,0xd1,0x0,0x78,0xfb,0x5b,0xfe, +0xdc,0x2,0xd7,0x0,0x9e,0xff,0x4e,0x0,0x74,0xfc,0x4f,0xfb, +0x9d,0x1,0xfa,0x4,0xcb,0x2,0xa8,0xff,0xec,0xfa,0xd0,0xfa, +0x51,0x3,0x87,0x6,0x5f,0x0,0xf6,0xfe,0x2c,0x2,0xba,0x0, +0xc9,0xfe,0x48,0xff,0x25,0xfe,0xb8,0xfd,0x89,0xff,0xa6,0x0, +0x91,0x1,0x5,0x0,0xd2,0xfa,0x79,0xfb,0x15,0x3,0xb8,0x4, +0x7e,0xff,0xf2,0xfc,0x9d,0xfd,0x23,0xff,0xde,0x0,0x36,0x0, +0x3e,0x0,0xd8,0x3,0x60,0x3,0x8,0xfe,0x68,0xfe,0x98,0x2, +0x5e,0x0,0x3c,0xfc,0xe3,0xfe,0xa4,0x2,0x5e,0xff,0x54,0xfa, +0x86,0xfc,0x37,0x2,0x2d,0x2,0x43,0xff,0xf6,0x0,0xa0,0x3, +0x8a,0x1,0xc9,0xfd,0xe2,0xfc,0xf7,0xff,0x3e,0x4,0xf7,0x2, +0x8e,0xfc,0xaf,0xfa,0xd9,0xfe,0x5e,0x1,0xc2,0x0,0x15,0x0, +0xc2,0xff,0x24,0x0,0x6,0x1,0x5d,0x1,0xc8,0x1,0x5b,0x1, +0x6f,0xff,0xbb,0xff,0xb4,0x1,0x47,0x0,0x57,0xfe,0xff,0xff, +0x4d,0x0,0xc6,0xfd,0x88,0xfd,0xf1,0xfe,0x25,0x0,0xa5,0x2, +0x2e,0x2,0xc1,0xfc,0xee,0xfb,0x9f,0x1,0xc4,0x2,0xc,0xff, +0xda,0xff,0x48,0x3,0xaa,0x2,0xac,0xff,0xba,0xfc,0xb9,0xfa, +0xd8,0xfd,0xd5,0x4,0x93,0x6,0xe3,0x0,0xdd,0xfb,0x4f,0xfd, +0x45,0x2,0xd7,0x3,0xd9,0x0,0x67,0xff,0xa6,0x0,0x79,0xff, +0xf9,0xfd,0x8b,0x0,0x0,0x2,0xd5,0xff,0x38,0x0,0x43,0x2, +0x26,0x0,0x64,0xfc,0xdf,0xfa,0x71,0xfc,0x2d,0x3,0x1a,0x9, +0x79,0x3,0xb9,0xf8,0x6,0xf8,0x8b,0xff,0xac,0x4,0xc6,0x5, +0x24,0x4,0x3a,0xff,0x74,0xfa,0xd1,0xfa,0x16,0x0,0xeb,0x4, +0x7a,0x4,0x4e,0x0,0xe7,0xfd,0x75,0xfe,0xa8,0xfe,0xa9,0xfd, +0xe,0xff,0x8e,0x4,0xab,0x7,0x59,0x1,0x80,0xf8,0xfa,0xf9, +0x95,0x2,0x18,0x5,0x1,0x2,0xa0,0x2,0xcd,0x3,0x3f,0xfd, +0x64,0xf6,0x90,0xfb,0xe6,0x5,0x4f,0x6,0x4,0xff,0xb8,0xfb, +0x27,0xfd,0x34,0xfe,0x39,0xff,0x26,0x2,0x8d,0x5,0x20,0x5, +0x9,0xfe,0xdc,0xf6,0x72,0xfa,0x98,0x5,0x4d,0x9,0x31,0x2, +0xb7,0xfb,0xf7,0xfb,0x40,0xfe,0x27,0x0,0xee,0x2,0x8d,0x3, +0xd4,0x0,0x97,0x0,0xe2,0x2,0xbf,0xff,0x69,0xf8,0xfc,0xf7, +0xb0,0x1,0x53,0xb,0x5d,0x8,0xf0,0xf9,0xa8,0xf1,0x4e,0xfa, +0xe5,0x7,0xd5,0xa,0x14,0x3,0xe7,0xfa,0x9f,0xfa,0x87,0xff, +0x44,0x1,0xf9,0x0,0x3f,0x2,0x96,0x0,0xdc,0xfd,0x5,0x0, +0x37,0x0,0xcb,0xfc,0xe0,0x0,0xc6,0x6,0x99,0x1,0x65,0xfb, +0xf4,0xfd,0xe1,0xff,0xfb,0xfd,0x76,0xff,0x73,0x4,0xe8,0x6, +0xc9,0x0,0x1f,0xf6,0x17,0xf7,0x9,0x4,0x4a,0x9,0xd7,0x2, +0xde,0xfc,0x30,0xfb,0x40,0xfd,0x19,0x1,0x2e,0x1,0x96,0x0, +0x42,0x2,0x0,0xff,0x58,0xfb,0x7c,0x0,0xb0,0x2,0x4a,0xfc, +0x4a,0xfd,0xe9,0x5,0xce,0x5,0x57,0xfd,0x31,0xf9,0x18,0xff, +0x88,0x7,0xa8,0x4,0x86,0xfb,0x44,0xfe,0xcc,0x5,0x24,0x1, +0xd4,0xf9,0xfe,0xfc,0x85,0x4,0x48,0x6,0x59,0xfd,0x55,0xf3, +0x60,0xfa,0x8,0x8,0xa4,0x4,0x3a,0xfc,0xc,0x0,0xdc,0x1, +0x2a,0xfc,0xad,0xfd,0x8e,0x4,0xb2,0x5,0x34,0x2,0xa2,0xff, +0xac,0x1,0xe3,0x3,0x0,0xfe,0xb3,0xf9,0x63,0x1,0x9a,0x5, +0xd8,0xfd,0xf9,0xf9,0x2e,0xfe,0xca,0x0,0xba,0x0,0x7e,0xff, +0xe7,0xff,0x1,0x5,0x74,0x4,0x3b,0xfa,0xef,0xf7,0x13,0x1, +0x2a,0x4,0xef,0xfe,0xb7,0xfb,0x29,0xfc,0x48,0xff,0xc,0x4, +0xd5,0x5,0xa5,0x2,0xb6,0xfc,0x5d,0xfa,0xba,0x0,0x91,0x6, +0x40,0x2,0xd2,0xfd,0xcf,0x0,0x89,0x1,0x16,0xfd,0x31,0xfb, +0xf9,0xfd,0xdf,0x2,0x76,0x4,0x64,0xff,0xf5,0xfc,0x17,0x2, +0x52,0x2,0x20,0xfb,0xb,0xfb,0xc1,0x3,0xba,0x7,0xfc,0x1, +0x64,0xfb,0x55,0xfc,0xbc,0xff,0xe7,0xfd,0x75,0xfe,0x8f,0x5, +0x45,0x4,0xc4,0xf9,0xa7,0xfa,0x7f,0x5,0xcf,0x4,0xc4,0xfa, +0x1,0xfb,0x2b,0x6,0x75,0xa,0x79,0xff,0x31,0xf4,0x40,0xfa, +0x5b,0x8,0x58,0x8,0xd2,0xfc,0xce,0xf9,0xf4,0x0,0x14,0x3, +0xa5,0xfd,0xd9,0xfc,0x4c,0x2,0xab,0x2,0x68,0xfe,0x4e,0x0, +0x8c,0x4,0xa8,0x0,0x62,0xfb,0xa0,0xff,0x6d,0x6,0x55,0x3, +0x5,0xfa,0x1a,0xf9,0x56,0x2,0xb,0x6,0x54,0xfe,0x16,0xfa, +0x74,0x0,0xfc,0x4,0x78,0x0,0x73,0xfb,0x85,0xfe,0xb1,0x5, +0xcb,0x4,0x0,0xfc,0xe,0xfb,0xbc,0x2,0x78,0x2,0x84,0xfc, +0x22,0xff,0x71,0x3,0x84,0xff,0x86,0xfc,0x2d,0xff,0xd2,0xff, +0xbb,0xfe,0x24,0x1,0x21,0x4,0xf1,0x1,0xae,0xfb,0xa1,0xfa, +0xfe,0x2,0xd,0x8,0xbc,0x0,0x3,0xfa,0xe1,0xfd,0x5b,0x2, +0xfd,0xff,0xb3,0xfc,0x61,0xfe,0x78,0x3,0x6a,0x4,0x3b,0xfe, +0x83,0xfa,0x7b,0xfe,0x40,0x1,0x83,0x0,0x0,0x3,0x61,0x4, +0x0,0xfe,0xfe,0xf8,0xa1,0xfe,0x9e,0x6,0x1d,0x5,0x49,0xfe, +0x31,0xfe,0xca,0x2,0xdf,0x0,0xba,0xfb,0x95,0xfe,0x1e,0x5, +0x94,0x3,0x93,0xfb,0xb2,0xf8,0xe4,0xff,0xa8,0x6,0x64,0x1, +0x40,0xfa,0xfc,0xff,0x6c,0x6,0xe9,0xfe,0xff,0xf7,0x38,0xff, +0x4c,0x7,0x20,0x4,0x8e,0xfd,0xd3,0xfd,0xfd,0x1,0x28,0x0, +0x2,0xfb,0x87,0xff,0x36,0x8,0xee,0x3,0xc6,0xf9,0x16,0xfa, +0x79,0xfe,0xa7,0xfe,0xf6,0x0,0xb,0x5,0xed,0x3,0x12,0xff, +0x16,0xfb,0xae,0xfc,0x6b,0x4,0xa3,0x5,0x4b,0xfc,0xcd,0xfa, +0x99,0x4,0xc9,0x4,0xcc,0xf9,0xce,0xf7,0x62,0x2,0x69,0xa, +0x12,0x6,0x94,0xfb,0x54,0xf9,0x78,0x0,0x68,0x3,0x84,0xff, +0xe2,0xfd,0x70,0xff,0x6e,0x1,0x70,0x3,0x39,0x1,0x1f,0xfc, +0x3c,0xfd,0xca,0x2,0xf9,0x2,0x36,0xfd,0x61,0xf8,0xdd,0xfb, +0x1d,0x7,0xaa,0xa,0xb5,0xfe,0x2f,0xf6,0x14,0x0,0xe8,0xc, +0x38,0x9,0xab,0xfb,0x55,0xf8,0xdc,0x0,0x4,0x3,0xd3,0xf9, +0xc7,0xf5,0x51,0xfd,0x19,0x5,0x65,0x6,0x91,0x2,0xef,0xfc, +0xe1,0xfb,0xd0,0x0,0x7a,0x4,0x1,0x2,0x92,0xfb,0xc8,0xf8, +0x4a,0xff,0x56,0x5,0x79,0xff,0x8d,0xf9,0xc,0x2,0xb2,0xc, +0xd3,0x7,0xd4,0xf9,0xd6,0xf6,0x62,0x3,0x26,0xb,0x2,0x0, +0x2,0xf5,0x1e,0xfd,0x6d,0x8,0x88,0x3,0x68,0xf7,0xd2,0xf4, +0xd0,0xfd,0x9,0x8,0xa2,0x7,0x85,0xfd,0xc3,0xf7,0x47,0xfe, +0x6b,0x9,0x34,0xc,0x98,0x2,0x8c,0xf7,0xd9,0xf8,0x75,0x4, +0x6,0xa,0x38,0x0,0x28,0xf4,0x0,0xf9,0xd,0x7,0xc1,0x5, +0xeb,0xf7,0x8f,0xf6,0xf,0x4,0x91,0xb,0xe8,0x3,0xda,0xf9, +0xff,0xfb,0xb3,0x4,0x4a,0x3,0x4b,0xfa,0x3a,0xf9,0x45,0xff, +0x9c,0x2,0xd6,0x1,0x15,0xfe,0xbe,0xfb,0xc2,0x1,0xd5,0x9, +0x1,0x8,0xb6,0xfe,0x6e,0xf8,0xcc,0xfb,0x8e,0x5,0x45,0x6, +0x68,0xfa,0xdd,0xf6,0xa2,0x2,0x2b,0x8,0xa0,0xfe,0xf0,0xf6, +0xa,0xfd,0xda,0x8,0x3d,0xa,0xbc,0xfe,0x7d,0xf7,0x9c,0xfd, +0x38,0x4,0x90,0x2,0x5d,0xfe,0x11,0xfc,0x4f,0xfd,0xa4,0x1, +0x2c,0x2,0x6c,0xfd,0x34,0xfc,0x62,0x1,0x58,0x6,0x2a,0x5, +0x78,0xfd,0x32,0xf8,0x2a,0xff,0xd4,0x9,0xa,0x7,0x60,0xfa, +0xe5,0xf6,0xfc,0xff,0xbc,0x5,0xd6,0xff,0xf6,0xf9,0xbe,0xfe, +0x30,0x6,0xaa,0x4,0x67,0xfd,0xf9,0xfa,0xad,0xff,0x67,0x4, +0x5f,0x3,0x3e,0xff,0xb9,0xfc,0x67,0xfc,0x5,0xff,0xd4,0x3, +0x35,0x4,0xfb,0xfe,0x3b,0xfd,0x46,0x1,0x47,0x2,0x9e,0xfd, +0xcb,0xfb,0x5d,0x1,0x65,0x5,0x10,0xff,0xe,0xf8,0xae,0xfe, +0x3,0xa,0x6d,0x7,0x57,0xfb,0x22,0xf8,0x30,0x0,0xea,0x5, +0x38,0x1,0xcd,0xf9,0x4,0xfb,0xbd,0x2,0x3c,0x6,0x89,0x2, +0xe9,0xfc,0x9f,0xfb,0x4f,0x1,0x53,0x7,0x58,0x4,0x83,0xfb, +0x12,0xf8,0x6f,0xfd,0x22,0x4,0x8c,0x2,0x6b,0xfa,0x7d,0xf9, +0x4f,0x2,0x49,0x5,0x2a,0xfd,0xd,0xf9,0xe,0x1,0x21,0x9, +0xed,0x4,0x51,0xfa,0x3f,0xf8,0x7d,0xff,0x30,0x3,0x43,0x0, +0x62,0xff,0x31,0x2,0xab,0x2,0xad,0xff,0x9e,0xfd,0x42,0xff, +0x12,0x2,0x70,0x2,0x88,0x1,0x93,0x0,0xeb,0xfd,0x4a,0xfd, +0x77,0x2,0x21,0x5,0x2d,0xff,0xcf,0xfa,0xb9,0xff,0xe8,0x4, +0x28,0x1,0xfc,0xf9,0x6a,0xfb,0x64,0x5,0x92,0x8,0xec,0xfd, +0xff,0xf4,0xe4,0xfa,0x3f,0x5,0xa8,0x5,0x7d,0xfe,0x84,0xfa, +0xf6,0xfd,0x9b,0x3,0xc9,0x3,0x7e,0xfe,0x41,0xfb,0x44,0xfe, +0xae,0x3,0xb3,0x4,0xa5,0xfe,0x56,0xf8,0x0,0xfc,0xe8,0x6, +0xd,0xa,0xd9,0x0,0x1d,0xf9,0x56,0xfd,0x96,0x4,0x52,0x2, +0x77,0xfb,0x7b,0xfc,0x96,0x2,0x1e,0x2,0x8e,0xfc,0xa6,0xfc, +0x8e,0x3,0x4f,0x8,0x1e,0x5,0x60,0xfe,0x5d,0xfc,0x44,0xff, +0xb0,0x0,0x40,0xff,0x7f,0xfd,0x35,0xfc,0x80,0xfd,0x6b,0x1, +0xd5,0x1,0x67,0xfe,0x93,0xff,0x31,0x6,0x73,0x8,0x35,0x1, +0x79,0xf8,0x6e,0xfa,0x98,0x4,0xa3,0x6,0x26,0xfe,0xdb,0xfa, +0xe,0x1,0x7f,0x4,0xbb,0xff,0x51,0xfa,0x7e,0xfc,0xc4,0x3, +0x68,0x4,0x91,0xfc,0xa5,0xf8,0xce,0xfc,0x85,0x1,0x29,0x4, +0x5c,0x4,0xfb,0xff,0x7,0xfc,0x3e,0xfe,0xff,0x2,0xce,0x4, +0xda,0x1,0x10,0xfd,0x5b,0xfe,0xa6,0x4,0x56,0x3,0xf0,0xfa, +0x1f,0xfa,0x7a,0x1,0x41,0x4,0x3a,0x0,0x35,0xfd,0x21,0xfe, +0xf2,0xff,0xa9,0x0,0x6b,0x1,0x74,0x2,0xeb,0x0,0x16,0xfd, +0x36,0xfd,0xdc,0x2,0xcb,0x5,0xcb,0x1,0xe,0xfe,0x1,0xff, +0xe1,0xff,0x3e,0xff,0x80,0x0,0x97,0x1,0x6f,0xff,0xee,0xfd, +0x58,0x0,0xbe,0x2,0x54,0x0,0x72,0xfb,0x28,0xfc,0xab,0x3, +0x86,0x7,0x87,0x1,0xf9,0xf8,0x89,0xf6,0x96,0xfb,0x9d,0x2, +0xec,0x2,0xc5,0xfc,0x74,0xfa,0xa9,0xfe,0xc6,0x2,0xfe,0x3, +0xbd,0x2,0x96,0x0,0x18,0x2,0xad,0x6,0x49,0x8,0x5,0x6, +0x8d,0x2,0x30,0x0,0xdd,0x0,0xcf,0xff,0xc6,0xf8,0x50,0xf5, +0x44,0xfb,0x8a,0xff,0x11,0xfe,0x11,0x0,0xf4,0x4,0xec,0x4, +0x0,0x2,0xb2,0x1,0xed,0x2,0xbc,0x1,0x5,0xfe,0x27,0xfd, +0x78,0x0,0xed,0xff,0x5d,0xfa,0xba,0xfa,0xe9,0x1,0x2d,0x4, +0xbb,0xff,0xd8,0xfc,0xcc,0xfd,0xce,0xff,0x75,0x1,0x3b,0x2, +0x3f,0x2,0xbb,0x0,0x61,0xfd,0x5d,0xfd,0x4,0x3,0xec,0x5, +0xc0,0x1,0x15,0xfe,0x5a,0xff,0xbd,0x2,0xde,0x4,0x5e,0x1, +0xae,0xfa,0x2c,0xfc,0x5e,0x4,0xf7,0x4,0x1d,0xfe,0xb3,0xfa, +0x40,0xfc,0x1e,0x0,0x6b,0x3,0x6b,0x0,0x29,0xfa,0xa9,0xfa, +0x95,0x1,0x6,0x7,0xae,0x5,0x2,0xfe,0xcb,0xfa,0x28,0x3, +0x99,0x9,0x4e,0x3,0x23,0xfc,0xce,0xfd,0x74,0x1,0xd,0x1, +0x68,0xfe,0x3b,0xfd,0xa,0xff,0xb7,0x0,0x7b,0x0,0x43,0x1, +0x20,0x2,0xd9,0xff,0x28,0xfd,0x7f,0xfd,0xbb,0x0,0xf7,0x4, +0x44,0x5,0x16,0x0,0x65,0xfc,0x48,0xfe,0x15,0x2,0xba,0x3, +0x25,0x0,0x90,0xf9,0x82,0xf9,0x83,0x0,0xc3,0x2,0x82,0xfd, +0xb4,0xfa,0x48,0xff,0x64,0x5,0xce,0x4,0xb4,0xfd,0x7c,0xfa, +0x79,0x0,0xec,0x6,0xad,0x5,0x54,0x0,0xf0,0xfd,0xd7,0xff, +0x18,0x2,0x36,0x1,0x77,0xfe,0x8d,0xfd,0xe,0x0,0xbc,0x3, +0x4a,0x3,0xfb,0xfc,0x36,0xf8,0x32,0xfc,0xfc,0x3,0x1b,0x5, +0xab,0xfe,0xd,0xfa,0xae,0xfd,0xc4,0x4,0xcb,0x6,0x3,0x3, +0xa3,0xff,0x37,0x0,0xdd,0x1,0x38,0x1,0x9c,0xff,0x32,0xff, +0x83,0xfe,0xc4,0xfc,0xea,0xfc,0xf9,0xff,0x22,0x2,0x9b,0x0, +0x1a,0xfe,0xc1,0xfe,0x58,0x1,0x2a,0x1,0x96,0xfe,0x3f,0xfe, +0x9c,0x0,0xb,0x3,0xaf,0x4,0x13,0x3,0x2c,0xfc,0x63,0xf7, +0x5c,0xfd,0xc8,0x6,0xce,0x5,0xe1,0xfc,0xa8,0xf9,0x4b,0xff, +0xd6,0x4,0x2f,0x3,0x24,0xfd,0xb0,0xfb,0xf6,0x0,0x3e,0x4, +0x48,0x1,0x1c,0xfe,0xdf,0xfd,0x86,0xff,0xaa,0x3,0xe4,0x5, +0x90,0x0,0xd,0xfa,0xe8,0xfa,0xee,0xff,0xee,0x2,0xa5,0x2, +0xe0,0xff,0xae,0xfd,0xb,0xff,0x9a,0x2,0xc,0x5,0xc5,0x3, +0x87,0xff,0xd6,0xfd,0x5,0x0,0x26,0x0,0x78,0xfd,0x95,0xfd, +0xfb,0x0,0xaa,0x3,0x67,0x3,0x23,0x0,0xfe,0xfc,0x27,0xfe, +0x55,0x2,0x86,0x3,0x1a,0xff,0xe5,0xfa,0x14,0xfe,0x17,0x4, +0xf1,0x2,0xe2,0xfd,0xa9,0xfe,0x72,0x2,0x6f,0x1,0xed,0xfd, +0x68,0xfd,0xb9,0xfe,0xf5,0xfe,0xa5,0xff,0xc7,0x2,0xd1,0x4, +0x0,0x2,0x4d,0xfe,0x98,0xfe,0x42,0x0,0xd6,0xff,0x65,0xfe, +0x7b,0xfc,0x24,0xfa,0x46,0xfb,0x92,0x2,0x7d,0x9,0x44,0x6, +0xfb,0xfb,0x79,0xf9,0x6a,0x2,0x6c,0x8,0xe6,0x2,0xd8,0xfb, +0xee,0xfc,0xf8,0x1,0x1b,0x4,0x45,0x2,0xd4,0xfd,0x33,0xfc, +0xf2,0x2,0x67,0x9,0x5c,0x2,0xa7,0xf5,0xea,0xf4,0x25,0xff, +0x45,0x7,0xe8,0x6,0x46,0x0,0x21,0xfc,0x4b,0x0,0xbb,0x5, +0xf0,0x4,0x66,0x0,0xe0,0xfc,0x75,0xfe,0x91,0x3,0x6d,0x1, +0x1a,0xf9,0x3a,0xfa,0xf3,0x2,0xff,0x3,0x63,0xff,0xb9,0xfe, +0xcf,0x0,0x12,0x2,0x1a,0x1,0xa8,0xfe,0x14,0xff,0xda,0x0, +0xbd,0xfe,0x10,0xfc,0x10,0xfd,0xb3,0x0,0x4d,0x6,0x38,0x8, +0xbd,0x0,0xf4,0xf9,0xf7,0xfe,0xe3,0x7,0xa7,0x7,0xf,0xfe, +0x77,0xf7,0x5a,0xfd,0x37,0x5,0xa7,0x0,0x10,0xf9,0x35,0xfd, +0x31,0x6,0x5,0x7,0xf1,0xfe,0x7d,0xf6,0x76,0xf8,0x2b,0x4, +0x25,0xa,0x9e,0x2,0xb8,0xf8,0xf4,0xf9,0xd7,0x4,0x6c,0x9, +0x79,0xff,0x9b,0xf5,0x5,0xfa,0xe3,0x4,0xca,0x8,0xd4,0x3, +0xa0,0xfd,0xd1,0xff,0x18,0x8,0x9,0x8,0x52,0xfd,0x9a,0xf5, +0xb3,0xf7,0x56,0xfe,0xb8,0x2,0xa1,0x1,0x1a,0xff,0x56,0x1, +0xc5,0x4,0xe8,0x2,0xbb,0xff,0xe1,0x0,0xb1,0x2,0xc,0x1, +0x45,0xfe,0x30,0xfd,0x8f,0xfe,0xe0,0x0,0x61,0xff,0xa7,0xfa, +0x7,0xfb,0x2c,0x1,0x93,0x4,0x4a,0x2,0xec,0xfc,0x25,0xfa, +0xb6,0x1,0x97,0xb,0x19,0x6,0x75,0xf9,0x4,0xfb,0xc0,0x5, +0x48,0x8,0xa3,0x0,0x17,0xf8,0x2,0xfa,0xa0,0x5,0x86,0x9, +0x19,0x0,0xfd,0xf6,0x22,0xf7,0xc5,0x0,0x35,0xa,0x24,0x3, +0xdc,0xf4,0x17,0xf8,0x89,0x5,0x3d,0x8,0x2b,0x2,0x91,0xfc, +0x43,0xfe,0xac,0x7,0xc1,0x7,0x6d,0xfb,0xc7,0xf8,0xc5,0x0, +0x86,0x3,0x23,0x2,0xf4,0xfd,0xa3,0xf8,0x58,0xfe,0x63,0x6, +0xe,0x0,0xe5,0xf8,0x8b,0xfc,0x97,0x1,0x87,0x5,0xf0,0x5, +0x81,0x0,0xed,0x1,0x5a,0x7,0xe5,0x0,0xe9,0xf9,0x28,0xfd, +0x3d,0xff,0xee,0x0,0xde,0x3,0x46,0xfe,0x4d,0xfb,0x54,0x4, +0x26,0x6,0xfa,0xfc,0x5a,0xf9,0x3d,0xfd,0xdd,0x4,0x9e,0x8, +0xc7,0xfd,0xcf,0xf4,0xc9,0xff,0x6,0xb,0xec,0x6,0x76,0xfe, +0x50,0xf7,0xd8,0xf6,0xb1,0x2,0x41,0x9,0xb0,0xfe,0xde,0xf5, +0xe6,0xfb,0xe,0x7,0x56,0xa,0xb9,0x1,0xe1,0xf8,0x66,0xfd, +0x0,0x7,0xf,0x6,0x87,0xfc,0x6e,0xf7,0xc5,0xfd,0x7e,0x7, +0xd3,0x7,0xec,0x1,0xb7,0x0,0x2,0x4,0x42,0x6,0x60,0x3, +0x19,0xfc,0x26,0xfa,0xe4,0xfe,0x73,0xfe,0x3,0xf9,0x1d,0xf8, +0x60,0xfb,0x71,0xff,0xd6,0x0,0x47,0xfd,0xa3,0xfe,0x22,0x8, +0x53,0xa,0x5b,0x2,0xe8,0xfc,0xc5,0xfd,0xe1,0x3,0xbc,0x8, +0xd,0x1,0xe7,0xf7,0x26,0xff,0x91,0x9,0x7d,0x5,0xd9,0xf9, +0xbf,0xf2,0xdf,0xf6,0x23,0x2,0x6e,0x3,0x4e,0xfb,0xfe,0xfc, +0x35,0x7,0x6f,0xb,0x11,0x8,0x32,0x0,0x6,0xfb,0xc8,0x0, +0x70,0x6,0x8e,0xff,0x23,0xf7,0x98,0xf8,0x6,0x0,0xef,0x5, +0x36,0x3,0x0,0xfa,0xe1,0xf7,0x6d,0xfe,0x56,0x1,0xad,0xfd, +0x8,0xfb,0xd3,0xfe,0x6c,0x6,0x31,0x9,0x1f,0x6,0xb9,0x4, +0xf2,0x4,0x3b,0x3,0x4a,0x2,0xc1,0x1,0x23,0xff,0x2e,0xfd, +0xd6,0xfb,0xda,0xf9,0x14,0xfc,0x2,0x2,0x31,0x3,0xe7,0xfd, +0x7f,0xf8,0xcf,0xf8,0x19,0xff,0x3f,0x4,0x93,0x2,0x47,0xfe, +0x73,0xfe,0x7b,0x4,0x5a,0xa,0xcb,0x7,0x30,0xff,0xbe,0xfc, +0x40,0x3,0xac,0x7,0x7f,0x1,0x24,0xf7,0xf3,0xf6,0xdb,0x0, +0x57,0x4,0x9,0xfd,0xf8,0xf7,0x9e,0xfa,0x42,0x0,0xc1,0x4, +0xc9,0x3,0xb3,0xff,0x5e,0x1,0x46,0x6,0xca,0x5,0x31,0x2, +0xfd,0xff,0x42,0xff,0x95,0x0,0x71,0x0,0x4c,0xfc,0xf5,0xfa, +0x77,0xfd,0x6f,0xfc,0x51,0xfa,0xc9,0xfc,0xb0,0xff,0x4,0x0, +0xa2,0xff,0x71,0xff,0x5e,0x2,0x9e,0x7,0x23,0x7,0xf5,0x0, +0x74,0xfd,0x9d,0xfe,0x52,0x2,0xf4,0x4,0xc2,0x0,0x61,0xfb, +0x80,0xff,0x7a,0x4,0xa7,0xfe,0xc8,0xf8,0x1f,0xfd,0x73,0x3, +0x30,0x5,0x64,0x3,0x4c,0xfe,0x33,0xfb,0x93,0xff,0x65,0x4, +0x29,0x2,0x92,0xfd,0x78,0xfd,0xd3,0x1,0xcd,0x4,0x24,0x1, +0xd1,0xfb,0x60,0xfd,0xf0,0x1,0xf4,0x1,0x5e,0x0,0xe,0x0, +0xb2,0xfd,0x67,0xfb,0x68,0xfe,0x54,0x3,0x72,0x3,0x4c,0xff, +0xae,0xfc,0xe1,0xfe,0x6c,0x3,0x1e,0x5,0xf5,0x1,0x52,0xfd, +0xc4,0xfb,0xc2,0xfd,0x8c,0x0,0xc1,0x1,0xc8,0xff,0x61,0xfc, +0x98,0xfd,0x70,0x3,0x79,0x5,0xf0,0x1,0x41,0xff,0x38,0xff, +0xc3,0x0,0x1b,0x3,0xf5,0x0,0x61,0xfa,0x29,0xfa,0xf2,0x1, +0xa1,0x5,0xd2,0x0,0xd6,0xfb,0x2e,0xfd,0x0,0x2,0x48,0x3, +0xa1,0x0,0xa8,0xff,0x25,0x0,0x9e,0xff,0x5f,0x1,0xe5,0x3, +0xc6,0x0,0x8c,0xfc,0xdb,0xfe,0xd0,0x2,0xf6,0x1,0x16,0xff, +0xa1,0xfe,0xde,0x0,0x5f,0x2,0x4a,0x0,0xd8,0xfd,0xd,0xfe, +0xc4,0xfd,0x1,0xfd,0xd9,0xff,0xfa,0x2,0x10,0x1,0xa,0xfe, +0xcf,0xfe,0xa3,0x0,0xc1,0x0,0xee,0x0,0x84,0x1,0xd3,0x0, +0x62,0x0,0xd8,0x1,0x73,0x1,0x80,0xfd,0x29,0xfc,0xe3,0xff, +0xf2,0x1,0x55,0xff,0x3b,0xfd,0xe3,0xfe,0xd4,0x1,0x82,0x2, +0xb0,0x0,0x8e,0xff,0xe7,0xff,0xeb,0xff,0x5e,0x1,0x17,0x4, +0xea,0x1,0xee,0xfc,0x31,0xff,0x5b,0x5,0xf3,0x3,0x13,0xfe, +0xe9,0xfc,0x8a,0xfe,0x57,0xff,0x65,0x1,0xd3,0x2,0x4b,0xff, +0x30,0xfb,0x2f,0xfe,0xe7,0x4,0xaf,0x4,0x37,0xfd,0xcf,0xf9, +0xbe,0xfe,0xac,0x3,0x1,0x3,0x13,0x0,0x1f,0xfe,0x87,0xfd, +0xb8,0xfe,0x58,0x0,0x9,0x0,0x46,0xff,0xee,0x0,0xc7,0x2, +0xf2,0x0,0x61,0xfe,0x31,0x0,0x11,0x3,0x3e,0x1,0x8,0xfe, +0xcb,0xfe,0xa3,0x0,0x34,0xff,0x99,0xfc,0xa5,0xfd,0xda,0x2, +0x26,0x6,0xdc,0x2,0xfb,0xfd,0x60,0xfd,0xa2,0xfe,0xe8,0xfe, +0x53,0xfe,0x3,0xfc,0x62,0xfb,0xd6,0x0,0x69,0x5,0x9d,0x1, +0xb5,0xfc,0x56,0xff,0xf6,0x4,0x9d,0x4,0x46,0xfe,0x5b,0xfb, +0x4e,0x0,0x6f,0x4,0x9f,0x2,0x73,0x1,0xee,0x1,0xe2,0xff, +0x53,0xff,0x62,0x1,0xa6,0xff,0xcf,0xfc,0xf0,0xfe,0x3a,0x1, +0xc8,0xff,0x30,0xfe,0xb6,0xfd,0x91,0xfe,0x75,0x1,0x5d,0x2, +0x6c,0xff,0x8c,0xfd,0xb0,0xfe,0x46,0x0,0x77,0x1,0xe6,0x1, +0x3e,0x1,0xa,0x1,0x8d,0x1,0x4d,0x1,0xc7,0x0,0xfb,0x0, +0x3c,0x0,0x2b,0xfd,0x42,0xfb,0x91,0xfe,0x3,0x3,0x80,0x1, +0x49,0xfd,0xa8,0xfe,0xc8,0x3,0xd1,0x4,0xb4,0x0,0x30,0xfc, +0x5,0xfb,0x33,0xfe,0x37,0x3,0x89,0x4,0x97,0xff,0xa4,0xfa, +0xe7,0xfd,0x83,0x5,0xca,0x5,0xcb,0xfe,0x7c,0xfb,0x6d,0xfe, +0x6c,0x0,0xed,0xfe,0xd6,0xfd,0xa,0xff,0xd9,0x0,0x24,0x2, +0xe9,0x2,0x14,0x2,0xaf,0xff,0x1a,0xff,0xf5,0x0,0xd4,0x0, +0xa9,0xfe,0x2a,0xff,0xb0,0x0,0x1f,0xff,0xc2,0xfe,0x21,0x3, +0x61,0x5,0xed,0x0,0x34,0xfc,0xc8,0xfc,0xd2,0xff,0xf5,0x0, +0xb3,0xff,0x5d,0xfe,0x2b,0xff,0x16,0x1,0x3e,0x1,0xa2,0xff, +0xd5,0xfe,0x79,0x0,0x58,0x3,0x2b,0x3,0x4c,0xfe,0x56,0xfb, +0x60,0xff,0xe6,0x3,0xa6,0x2,0x18,0x0,0xa9,0xff,0x12,0xfe, +0x8e,0xfc,0x91,0xff,0x57,0x3,0xa9,0x1,0xb2,0xfd,0xd,0xfe, +0x75,0x1,0x63,0x2,0x6d,0x1,0x15,0x3,0xee,0x4,0xd2,0x0, +0x14,0xfb,0x94,0xfc,0xa9,0x0,0xae,0xfe,0x19,0xfd,0x62,0x2, +0x31,0x4,0xe6,0xfc,0x55,0xf9,0x15,0x0,0xfa,0x5,0x63,0x3, +0x14,0xfe,0x60,0xfc,0xcf,0xfd,0x19,0x0,0xaf,0x2,0x89,0x3, +0x4d,0x0,0xb7,0xfd,0x13,0x1,0x8c,0x3,0x2b,0xff,0xed,0xfc, +0xa7,0x1,0xbd,0x3,0xb1,0x0,0x11,0x0,0xcf,0x0,0xf9,0xfd, +0x57,0xfc,0x13,0x1,0x17,0x6,0x14,0x3,0xfe,0xfb,0xb4,0xfb, +0x69,0x1,0x84,0x3,0x62,0x2,0x6a,0x2,0x10,0xff,0x5a,0xf9, +0x86,0xfc,0x6d,0x5,0x9,0x4,0x22,0xfb,0x76,0xfc,0x8b,0x5, +0xdc,0x3,0x51,0xfa,0xc,0xfc,0x59,0x5,0x6b,0x4,0x6e,0xfe, +0x76,0x0,0xf5,0x1,0xcc,0xfb,0x50,0xfb,0xb7,0x4,0xa9,0x7, +0xc8,0xfe,0x84,0xf9,0x20,0xff,0xd6,0x2,0x84,0xfe,0xaa,0xfe, +0xe2,0x5,0x3d,0x5,0x58,0xfd,0x59,0xfd,0xf5,0x0,0x69,0xfd, +0xed,0xfc,0xb7,0x4,0xa4,0x4,0x4e,0xfb,0x59,0xfb,0x91,0x3, +0xb7,0x2,0x5f,0xfd,0x10,0x2,0x70,0x7,0xa2,0xff,0x51,0xf7, +0x77,0xfd,0xfb,0x5,0x72,0x2,0xed,0xfc,0xf7,0x0,0xaf,0x4, +0x37,0xff,0xd3,0xfb,0x58,0x1,0x76,0x3,0xec,0xfe,0x8,0x0, +0x66,0x3,0x27,0xfd,0xef,0xf8,0x45,0x3,0x3c,0xb,0xab,0x2, +0xf0,0xf8,0xeb,0xfb,0xf2,0x1,0x47,0x0,0x19,0xfd,0x2d,0x0, +0x14,0x3,0x36,0x0,0xb0,0xff,0xb4,0x2,0x14,0xff,0xf2,0xfa, +0x75,0x2,0x44,0x8,0x7f,0xff,0x19,0xf9,0x36,0x0,0x59,0x4, +0xc6,0xfe,0xbc,0xfe,0xe1,0x5,0x8e,0x3,0x43,0xf8,0x3f,0xf7, +0xcf,0x1,0x65,0x6,0x5d,0x2,0x34,0x0,0x8e,0xff,0x7c,0xfd, +0x4c,0xff,0xef,0x3,0x23,0x3,0x57,0xfe,0xce,0xfd,0xba,0x0, +0xfe,0xfe,0x2e,0xfa,0x41,0xfd,0xc7,0x5,0xc7,0x5,0x8d,0xff, +0x2c,0xfe,0xc4,0xfd,0x1c,0xfc,0x7a,0x1,0xb4,0x7,0xac,0x2, +0x22,0xfb,0xa6,0xfc,0xe,0x1,0xdc,0x0,0x10,0xff,0xd8,0x0, +0x65,0x4,0x60,0x2,0xab,0xfc,0x8e,0xfd,0xe2,0x1,0x6f,0x0, +0x7d,0xff,0x25,0x3,0x24,0x1,0x92,0xfa,0x6a,0xfb,0xa1,0x0, +0x93,0x1,0x6,0x2,0x62,0x4,0xb9,0x1,0xe0,0xfa,0x54,0xfb, +0xc6,0x3,0x8,0x6,0xe8,0xfe,0x2f,0xfc,0x9,0x1,0x3f,0x2, +0xb9,0xfe,0xb0,0xfd,0xd7,0xfe,0xd3,0x0,0x5a,0x4,0xef,0x3, +0xcb,0xfc,0x69,0xf8,0x51,0xfe,0xf0,0x6,0x43,0x6,0x11,0xfe, +0x5,0xfb,0x1e,0xff,0xd0,0x0,0xed,0xff,0x56,0x2,0xd4,0x2, +0x5b,0xfd,0x83,0xfb,0xf,0x1,0x87,0x3,0x8c,0xff,0x92,0xfe, +0x1b,0x3,0xbb,0x3,0xa8,0xfd,0x97,0xfa,0x1d,0xfe,0x32,0x0, +0xff,0xff,0x26,0x4,0xcc,0x6,0x4,0xff,0x94,0xf7,0x15,0xfd, +0x68,0x5,0x9b,0x4,0xb,0x1,0xc5,0xff,0x97,0xfc,0xe6,0xfb, +0x93,0x2,0x44,0x5,0xfd,0xfd,0xa1,0xfa,0x9e,0x0,0xd0,0x2, +0x71,0xfd,0x9f,0xfb,0x95,0x0,0xdc,0x3,0x4e,0x1,0x41,0xfe, +0xa2,0xfe,0x25,0xff,0x31,0xff,0xf5,0x2,0x1d,0x6,0x62,0x1, +0xcc,0xfb,0xf3,0xfd,0xdc,0x0,0x7a,0xfe,0x16,0xfe,0x41,0x3, +0x57,0x5,0x3f,0xff,0xf7,0xf9,0x74,0xfe,0xbd,0x4,0xe6,0x1, +0x73,0xfd,0xc3,0x0,0x84,0x3,0x2a,0xff,0x6c,0xfb,0xdb,0xfc, +0xbe,0x0,0xe6,0x4,0xaf,0x4,0x17,0xfe,0x6,0xfa,0xd1,0xfe, +0x2e,0x4,0x50,0x1,0x8a,0xfc,0xc3,0xff,0x12,0x4,0x79,0xfe, +0x97,0xf9,0x81,0x1,0xfe,0x7,0x21,0x2,0x67,0xfe,0x4,0x2, +0x11,0x0,0x1e,0xfa,0xec,0xfb,0xb9,0x2,0x3f,0x5,0x88,0x1, +0x6f,0xfc,0x2a,0xfd,0x73,0x2,0x41,0x3,0xdd,0xff,0xc,0xff, +0x64,0xff,0x34,0xfe,0x24,0xfe,0xb3,0xff,0xc0,0x1,0xcd,0x3, +0xd0,0x2,0x5d,0xff,0xf1,0xfe,0x5,0x0,0x1b,0xfd,0x36,0xfa, +0x44,0xfe,0x3e,0x5,0x4a,0x5,0x35,0xfe,0x4e,0xfb,0x9e,0x1, +0x5c,0x6,0x30,0x2,0x93,0xfd,0xe,0xfe,0x70,0xfe,0x6e,0xfe, +0xa2,0x0,0xcb,0x0,0x76,0xff,0x9b,0x2,0x7c,0x4,0x76,0xfe, +0xbf,0xfa,0xdb,0xff,0x63,0x2,0x42,0xfe,0x80,0xfe,0xbb,0x3, +0x9a,0x2,0x78,0xfc,0x19,0xfe,0x27,0x6,0xe9,0x5,0x36,0xfd, +0xcd,0xfa,0x4a,0xff,0x35,0xff,0xe6,0xfc,0x71,0x0,0xe,0x5, +0xcc,0x4,0x4a,0x1,0xee,0xfc,0x3,0xfc,0x6,0x0,0x7c,0x1, +0x1a,0xff,0x43,0x0,0x65,0x2,0x4b,0xff,0x3b,0xfc,0x7a,0xff, +0xb7,0x6,0xf3,0x8,0x8e,0xfe,0xff,0xf3,0x5c,0xfc,0x1f,0x9, +0xe2,0x1,0x48,0xf7,0xd0,0x0,0x27,0xc,0x53,0x3,0xed,0xf5, +0x79,0xf9,0xb,0x5,0xa4,0x4,0x85,0xfd,0x74,0x1,0xb0,0x7, +0x7d,0xff,0x36,0xf8,0x72,0x1,0x89,0x8,0x21,0x1,0x8b,0xfa, +0xb3,0xfb,0x49,0xfe,0xf8,0x1,0x2c,0x4,0xd5,0x0,0x22,0xff, +0xbb,0x2,0x55,0x2,0x55,0xfc,0x39,0xfb,0x6e,0x0,0xc3,0x1, +0x1c,0xfe,0x23,0x0,0x84,0x6,0xa0,0x2,0x1d,0xf8,0x42,0xfb, +0xd4,0x8,0x1b,0x9,0x82,0xfb,0x1a,0xf6,0x93,0xfe,0x9c,0x5, +0xd6,0x3,0x90,0x1,0xb8,0x2,0xf8,0x0,0xd0,0xfc,0xe9,0xfd, +0xb7,0x0,0xc4,0xfd,0xa3,0xfc,0x75,0x3,0xc9,0x5,0x29,0xfe, +0x9e,0xfb,0x8a,0x2,0x67,0x4,0x4c,0xff,0xe6,0xfe,0x2c,0x1, +0xb5,0xfd,0x2f,0xfb,0x64,0x1,0x16,0x8,0x34,0x6,0xf6,0xff, +0x21,0xfc,0xdf,0xfa,0x23,0xfc,0xe0,0x0,0x6c,0x3,0x66,0xff, +0xf1,0xfd,0xb,0x4,0xa1,0x4,0xdd,0xfc,0x59,0xfd,0x93,0x5, +0x87,0x4,0x47,0xfd,0x38,0xfc,0x46,0xfd,0xf4,0xfc,0x15,0x1, +0xa8,0x6,0x54,0x5,0x6f,0xfe,0x10,0xfa,0x66,0xfd,0xe,0x3, +0xa5,0x1,0xc5,0xfd,0xc0,0x0,0x4,0x4,0xa6,0x0,0xca,0xfd, +0x75,0xfe,0xb5,0xfe,0x17,0x1,0x79,0x5,0x75,0x3,0x7b,0xfb, +0xd,0xf9,0xd9,0xff,0xad,0x5,0x2a,0x3,0xa2,0xff,0x22,0x1, +0xd4,0xff,0x6e,0xfa,0xcd,0xfc,0xc7,0x4,0x44,0x4,0x67,0xfe, +0x8f,0xfe,0x81,0x1,0x6,0x1,0xfd,0xff,0x45,0x0,0x3c,0x0, +0xd3,0x0,0xd6,0x1,0x25,0xff,0x1,0xfa,0xe7,0xfb,0xb4,0x5, +0x2,0x9,0x9f,0x0,0xa8,0xfa,0x35,0xfd,0xae,0xfe,0x13,0xfe, +0xb6,0x1,0xa5,0x4,0xe6,0x0,0xd0,0xfc,0x4f,0xfe,0x88,0x1, +0xac,0x1,0xfc,0xff,0x4a,0x0,0xac,0x1,0x91,0xff,0x21,0xfc, +0x76,0xfe,0x2a,0x4,0x8c,0x4,0xab,0x0,0xd9,0xfe,0xcf,0xfd, +0x6,0xfc,0x14,0xfe,0x73,0x2,0xf9,0x1,0x90,0xff,0x62,0x1, +0x16,0x2,0xe1,0xfd,0xf0,0xfc,0xce,0x1,0x96,0x3,0xac,0xff, +0xe1,0xfc,0xcd,0xfd,0x8b,0xfe,0x94,0xfe,0x45,0x2,0x88,0x7, +0x3d,0x5,0xcb,0xfc,0x1,0xfa,0xe5,0xfd,0xa2,0x0,0xcb,0x1, +0x84,0x2,0xab,0x0,0x5c,0xff,0x88,0x0,0x84,0xff,0xa0,0xfd, +0xdf,0xff,0x56,0x2,0xec,0x0,0x14,0xff,0x50,0xfe,0x35,0xfd, +0x8c,0xfd,0x43,0x1,0x54,0x6,0x1b,0x7,0xda,0xff,0xde,0xf7, +0x63,0xfa,0x8d,0x3,0xa2,0x5,0xe0,0xff,0x45,0xfd,0xf8,0xff, +0x2d,0x0,0xfc,0xfd,0xf1,0x0,0xa7,0x5,0x65,0x2,0x22,0xfc, +0x7f,0xfd,0x85,0x1,0xad,0xff,0x6b,0xfd,0x53,0x1,0x27,0x6, +0x89,0x4,0x90,0xfd,0xd5,0xf8,0x8e,0xfb,0xd2,0x1,0xbb,0x3, +0x95,0x0,0x9f,0xfe,0x67,0x0,0x7b,0x1,0x9e,0xff,0x92,0xff, +0xe5,0x2,0xc6,0x2,0x31,0xfd,0xb1,0xfa,0x21,0xff,0x4,0x3, +0xee,0x1,0xeb,0x0,0x40,0x2,0x41,0x1,0x8d,0xfd,0x83,0xfc, +0xcf,0xfe,0xba,0x0,0x4b,0x1,0xe0,0x0,0x76,0xff,0x4a,0xfe, +0xa,0xfe,0x9,0xff,0xa5,0x1,0xa3,0x2,0x35,0x0,0xaa,0xfe, +0x8e,0xfe,0x2d,0xfd,0xf1,0xfe,0x45,0x4,0x10,0x4,0x9d,0xff, +0x65,0xff,0x3c,0xff,0xa0,0xfb,0xdf,0xfc,0xf6,0x2,0x1f,0x4, +0x26,0x0,0x84,0xfd,0xfa,0xfd,0xad,0xff,0xab,0x0,0x9a,0x1, +0x9,0x3,0xe1,0x0,0x82,0xfb,0xcb,0xfa,0xfb,0xfe,0x37,0x2, +0xca,0x4,0x60,0x5,0x22,0x0,0xa5,0xfb,0xf2,0xfd,0xcd,0xff, +0x57,0xfd,0x7a,0xfd,0xe9,0x1,0x23,0x4,0x27,0x1,0x42,0xfd, +0x68,0xfd,0x4f,0x0,0x89,0x2,0x3d,0x4,0xbc,0x2,0xe7,0xfa, +0x8a,0xf6,0x81,0xff,0x22,0xa,0xc9,0x6,0x24,0xfc,0x18,0xfa, +0x9b,0x0,0x70,0x3,0x14,0xff,0x5c,0xfc,0x3e,0xff,0xe0,0x1, +0x6f,0x2,0xe8,0x2,0x2,0x0,0xdd,0xfa,0x68,0xfc,0x3e,0x3, +0x99,0x4,0xf2,0xff,0x2,0xfc,0xfe,0xfa,0xbf,0xfe,0x8f,0x6, +0x68,0x8,0xe2,0xff,0x14,0xf9,0xd4,0xfc,0xf3,0x2,0xd,0x2, +0x49,0xfd,0x9,0xfd,0xb9,0x1,0x52,0x3,0x7b,0xff,0x83,0xfd, +0x46,0xff,0x41,0x0,0x40,0x2,0xfc,0x4,0xb7,0x0,0x77,0xf9, +0x48,0xfb,0x6f,0x2,0xc4,0x4,0xcf,0x2,0x2e,0xff,0x20,0xfc, +0x37,0xfe,0x67,0x2,0xb,0x2,0x6a,0xff,0xfc,0xfe,0xa,0x1, +0x2a,0x3,0xb0,0xff,0x3,0xf9,0xc7,0xfb,0xfd,0x5,0x74,0x7, +0x28,0xff,0xf4,0xf8,0xff,0xf9,0x11,0x1,0x9d,0x7,0x71,0x5, +0x8c,0xfe,0xb9,0xfc,0x6a,0xff,0x21,0x1,0x11,0x0,0xa5,0xfd, +0xf4,0xfd,0x8d,0x1,0x81,0x3,0x48,0x2,0x21,0xff,0x4f,0xfb, +0x10,0xfd,0x72,0x5,0x29,0x8,0x30,0x0,0xed,0xf8,0x5e,0xfa, +0x2d,0x1,0x23,0x6,0xc0,0x3,0x9f,0xfd,0x8b,0xfc,0xe1,0xff, +0x5d,0x1,0x21,0x0,0xff,0xfd,0x45,0xfe,0x19,0x3,0x4f,0x5, +0xc9,0xff,0x9c,0xfb,0x15,0xfe,0x5b,0x0,0x0,0x1,0x92,0x2, +0x9d,0x0,0x64,0xfb,0x69,0xfb,0x41,0x1,0x6b,0x5,0x49,0x4, +0xdf,0xff,0x32,0xfd,0xd3,0xfe,0x2c,0x0,0x44,0xfe,0xc9,0xfd, +0x9,0x1,0x14,0x4,0x72,0x3,0x7e,0xfe,0xd3,0xf9,0xfe,0xfc, +0xd3,0x4,0x8f,0x5,0x29,0xff,0xc2,0xfb,0x7f,0xfd,0x77,0x0, +0x73,0x3,0xeb,0x3,0xff,0xff,0xc2,0xfc,0xf9,0xfd,0xe5,0xff, +0xd6,0xff,0x50,0xff,0x6c,0xff,0xc9,0x0,0x6a,0x2,0xe5,0x0, +0xff,0xfc,0xfe,0xfb,0x2d,0xff,0xed,0x2,0xc,0x3,0x71,0xfe, +0xf6,0xfa,0x5e,0xfe,0xb4,0x3,0xa,0x4,0xb5,0x1,0xae,0x0, +0xd5,0xff,0xd3,0xfd,0x75,0xfc,0x67,0xfe,0xcb,0x1,0xac,0x1, +0xf2,0xff,0xc9,0x0,0x20,0x0,0x2,0xfd,0x37,0xfe,0xba,0x1, +0x32,0x1,0xed,0xff,0x13,0x0,0xc5,0xfe,0x5f,0xfe,0x10,0x0, +0xa7,0x0,0x77,0x1,0xbc,0x2,0xb3,0x0,0xf4,0xfc,0x1,0xfb, +0xf9,0xfb,0x34,0x1,0xc4,0x5,0x73,0x3,0x90,0xff,0x43,0xfe, +0x58,0xfc,0x2f,0xfe,0xc9,0x4,0x3b,0x3,0xd7,0xf9,0x1c,0xf9, +0x4e,0x1,0xf0,0x4,0xe4,0x1,0x12,0xff,0x6,0x0,0x8f,0x2, +0xc7,0x1,0xef,0xfd,0x23,0xfc,0x1f,0xfd,0x84,0xff,0xbc,0x3, +0x1d,0x5,0xe3,0xfe,0xa,0xf9,0x82,0xfd,0xcf,0x5,0x45,0x5, +0xf1,0xfd,0x13,0xfb,0x56,0xfe,0x52,0x1,0x2b,0x2,0x41,0x2, +0x9e,0x0,0x18,0xfe,0x1,0xfe,0x4e,0xff,0x72,0xfe,0xec,0xfc, +0x65,0xfe,0xcb,0x1,0xb2,0x3,0xd4,0x2,0x6d,0xff,0x1f,0xfc, +0x9c,0xfd,0x6,0x3,0x60,0x4,0xb9,0xfe,0x19,0xfa,0x1b,0xfd, +0x2a,0x2,0x7c,0x1,0xe7,0xfe,0x10,0x1,0x36,0x3,0xf0,0xff, +0xf6,0xfc,0x25,0xfe,0xe,0xff,0x28,0xff,0x30,0x1,0xa5,0x2, +0xab,0x0,0xce,0xfc,0x52,0xfb,0xec,0xff,0x8c,0x5,0xa2,0x2, +0x7a,0xfb,0xb5,0xfb,0xdc,0x0,0x95,0x2,0xcb,0x1,0xdf,0x0, +0xea,0xff,0xb2,0x0,0x7b,0x0,0x2e,0xfb,0xce,0xf7,0x43,0xfe, +0x8,0x7,0xb4,0x6,0xb6,0xff,0x4b,0xfc,0x92,0xfe,0xd9,0xff, +0xbf,0xfd,0x4d,0xfe,0xc3,0x2,0xe0,0x2,0xfe,0xfc,0x95,0xfb, +0x4e,0x2,0x66,0x6,0xc1,0x1,0xf8,0xfc,0xa0,0xfe,0x4f,0x0, +0xd2,0xfc,0xcf,0xfa,0xdc,0xff,0x44,0x5,0xf8,0x2,0x15,0xfd, +0x41,0xfd,0x87,0x2,0xcf,0x2,0x8a,0xfd,0x23,0xfd,0x28,0x2, +0xec,0x1,0x30,0xfc,0x6a,0xfb,0x73,0x1,0xcf,0x5,0x12,0x3, +0xe0,0xfd,0xa,0xfe,0xca,0x0,0x41,0xfe,0xf7,0xfb,0x71,0x1, +0x7,0x5,0xb7,0xff,0x28,0xfc,0x8a,0xff,0x24,0x2,0x23,0x1, +0x64,0xff,0x68,0xfe,0x55,0xff,0x71,0x0,0x31,0xff,0x81,0xfe, +0xee,0x0,0xaf,0x3,0xd3,0x3,0x64,0x0,0x63,0xfb,0x35,0xfa, +0x23,0xfe,0xfa,0x1,0x30,0x2,0x75,0x0,0xd4,0xff,0x49,0x0, +0x7f,0xff,0x93,0xfe,0x1d,0x0,0xe9,0x1,0xbf,0x1,0x5f,0x0, +0x5c,0xfd,0x9c,0xfb,0xf5,0xff,0x12,0x5,0x71,0x3,0x36,0xff, +0x96,0xfd,0x15,0xfd,0xa0,0xfd,0xeb,0xff,0x89,0x1,0xe4,0x0, +0x2c,0xff,0x9c,0xff,0x78,0x2,0x34,0x1,0xc2,0xfb,0x25,0xfd, +0x11,0x5,0x31,0x6,0x36,0xff,0x14,0xfa,0xd1,0xfa,0x26,0x0, +0xa1,0x5,0xad,0x4,0x26,0xff,0xbd,0xfc,0x62,0xfd,0xc8,0xfd, +0xca,0xff,0xab,0x2,0xe,0x1,0xe5,0xfc,0x97,0xfe,0x4f,0x4, +0xdc,0x2,0x5b,0xfb,0x18,0xfb,0x9b,0x2,0x9,0x5,0x8b,0xff, +0x5d,0xfb,0x77,0xfd,0xc5,0x1,0x64,0x2,0xef,0xff,0x71,0xff, +0xf3,0xff,0x45,0xfe,0x63,0xfe,0x3b,0x1,0x9a,0x0,0x94,0xfe, +0x1e,0x1,0xa3,0x2,0xa1,0xfe,0xd3,0xfc,0x84,0x0,0x3,0x2, +0xa6,0xfe,0x72,0xfd,0x1,0x1,0xe7,0x1,0xb,0xfe,0xd7,0xfe, +0x22,0x4,0xa9,0x1,0x22,0xfb,0xfe,0xfd,0xb3,0x2,0x7,0xfe, +0x4b,0xfb,0xa1,0x2,0x49,0x7,0x1b,0x2,0xd0,0xfb,0xe6,0xfa, +0x20,0xfe,0x12,0x2,0xce,0x2,0x41,0xff,0x1,0xfc,0x7f,0xfd, +0x8b,0x0,0x19,0x0,0x22,0x0,0x49,0x4,0xb2,0x3,0xf8,0xfa, +0x6c,0xf8,0x95,0x1,0xf0,0x6,0x5d,0x0,0x4c,0xfa,0xbb,0xfe, +0xc4,0x4,0x29,0x0,0xb5,0xf8,0x1f,0xfe,0x85,0x7,0xc6,0x1, +0x60,0xf7,0x7d,0xfc,0xd3,0x5,0xb9,0x1,0xf8,0xfb,0xc0,0x1, +0x27,0x6,0xda,0xfe,0x4,0xf9,0xbf,0xfd,0x30,0x1,0x6,0xfd, +0x8b,0xfd,0xc1,0x5,0xa9,0x6,0x78,0xfd,0xc6,0xf8,0xd7,0xfc, +0x9c,0x1,0x8e,0x3,0xf8,0x1,0xd9,0xfd,0x6,0xfe,0x75,0x2, +0xbc,0x1,0x53,0xfd,0xc1,0xfe,0xd4,0x2,0x4a,0x1,0x27,0xfd, +0x61,0xfc,0xbf,0xfd,0xa3,0xfe,0xae,0x0,0xce,0x4,0x26,0x5, +0xa5,0xfd,0xa3,0xf7,0x85,0xfc,0x1b,0x4,0xa,0x3,0x5e,0xfe, +0x5c,0x0,0x2a,0x5,0x90,0x1,0x3c,0xfa,0x27,0xff,0x56,0x9, +0xc4,0x1,0xe5,0xf1,0xdc,0xf6,0x58,0x7,0x51,0x6,0xa4,0xfb, +0x35,0xfe,0x79,0x6,0x86,0x3,0x3d,0xfb,0xf0,0xf9,0xfb,0xfc, +0xd0,0xfd,0x7f,0xff,0x92,0x4,0x97,0x6,0x82,0x2,0x71,0xfe, +0x0,0xfe,0x55,0xff,0x91,0x0,0x49,0xff,0x9d,0xfb,0xfc,0xfa, +0xf6,0xfe,0x5a,0x2,0x95,0x2,0x88,0x1,0xd,0x1,0x35,0x1, +0x2d,0xff,0xda,0xfa,0x9a,0xfb,0xbb,0x2,0x64,0x4,0x4c,0xfd, +0x78,0xfb,0x76,0x3,0xe,0x6,0x14,0xfd,0x41,0xf8,0x1b,0x0, +0x7b,0x5,0x3f,0xfe,0x39,0xf8,0x99,0xfd,0xb2,0x3,0x7d,0x3, +0xcc,0x2,0xf5,0x1,0x3e,0xfe,0xc4,0xfb,0xb1,0xfb,0x8e,0xfc, +0x4f,0x1,0x2c,0x6,0x41,0x3,0xb3,0xfd,0xef,0xfc,0xb,0xfe, +0xa5,0xff,0xb7,0x1,0xfc,0xfe,0xa0,0xf9,0xc5,0xfa,0xe4,0x0, +0xb6,0x3,0x24,0x3,0x6d,0x4,0x70,0x6,0x9f,0x2,0x89,0xfb, +0x3f,0xfb,0x6b,0xfe,0x15,0xfc,0x30,0xfc,0x73,0x4,0xcc,0x6, +0xff,0xfd,0x17,0xf9,0x35,0xff,0xfd,0x5,0x8a,0x3,0xe0,0xfb, +0x4c,0xfa,0x9a,0xfe,0x4c,0xff,0x2d,0xfd,0xdc,0xfe,0xc9,0x2, +0x13,0x4,0x3c,0x0,0x99,0xfa,0x66,0xfc,0xcb,0x3,0xc6,0x3, +0xa2,0xfd,0x31,0xfd,0x55,0x2,0x3e,0x5,0x83,0x1,0x3,0xfb, +0x56,0xfd,0x3d,0x6,0x9f,0x3,0x8d,0xf8,0x99,0xf9,0x63,0x2, +0xe3,0x1,0xbe,0xfe,0x4,0x4,0xfb,0x6,0x78,0xfe,0x85,0xf7, +0x2,0xfd,0x50,0x3,0xfe,0xff,0x1c,0xfd,0xbc,0x1,0x92,0x3, +0x3e,0xfe,0x7b,0xfb,0x39,0xff,0x44,0x3,0x37,0x3,0x8,0xff, +0xde,0xf9,0x9c,0xfa,0xf9,0x2,0x68,0x7,0x23,0xff,0x1a,0xf7, +0x32,0xfe,0x91,0x8,0xfb,0x3,0x29,0xf9,0xe0,0xf9,0x92,0x1, +0xbc,0x2,0x51,0xff,0x4b,0xff,0xb6,0x0,0xdd,0xff,0x69,0x0, +0xe6,0x3,0xca,0x3,0x47,0xfd,0x26,0xf9,0xe1,0xfe,0x6b,0x6, +0xa0,0x4,0xf3,0xfe,0xf5,0xfe,0x3d,0x0,0xc9,0xfe,0xfe,0xfe, +0xff,0xfe,0x1f,0xfd,0xe8,0xff,0xa5,0x3,0x5f,0xff,0x7e,0xfb, +0x73,0x0,0x54,0x4,0xb0,0x0,0xa5,0xfd,0x7b,0xff,0x75,0xff, +0xe1,0xfa,0xbe,0xfb,0xe6,0x4,0x5c,0x6,0x16,0xfd,0x7a,0xfc, +0x4a,0x4,0x64,0x1,0x46,0xf9,0x21,0xfd,0x47,0x5,0x54,0x3, +0x75,0xfd,0x39,0xff,0x2,0x3,0xab,0xfe,0x6a,0xfb,0x42,0x3, +0x49,0x6,0x92,0xfa,0xb1,0xf5,0xcd,0x1,0x67,0x9,0xd1,0x0, +0x23,0xf7,0x55,0xfb,0x68,0x7,0x9c,0x8,0xf3,0xfc,0x27,0xf7, +0x65,0xfd,0xa5,0x3,0x1,0x4,0xfd,0xff,0x26,0xfb,0x82,0xfc, +0x82,0x2,0x4f,0x4,0xca,0x2,0x99,0x0,0xb9,0xfa,0xf5,0xf7, +0xc8,0x0,0xf0,0x8,0x36,0x2,0x46,0xf9,0x10,0x0,0x12,0xa, +0x12,0x1,0xbf,0xf1,0xb4,0xf8,0x99,0xc,0x95,0xc,0x9b,0xfa, +0xbe,0xf4,0x3e,0xff,0x2b,0x5,0x4e,0x2,0xff,0x0,0x40,0xff, +0xb7,0xfa,0x37,0xfd,0x17,0x5,0xd6,0x3,0xf6,0xfb,0x51,0xfc, +0x98,0x3,0xcd,0x4,0x87,0xfe,0xec,0xfa,0x32,0xfd,0xae,0xff, +0x30,0x2,0xb1,0x4,0x88,0xff,0x49,0xf8,0x27,0xff,0xe9,0xa, +0x50,0x6,0xd8,0xf9,0xd8,0xf9,0xea,0x1,0x6b,0x2,0xf1,0xfc, +0x29,0xfe,0x89,0x3,0x92,0x0,0xed,0xfc,0x32,0x4,0x48,0x6, +0x15,0xfa,0xab,0xf6,0x2b,0x3,0xc2,0x8,0xa1,0x0,0xb9,0xfa, +0x24,0xff,0xfa,0x5,0xab,0x5,0x9a,0x0,0x32,0xfd,0x50,0xfa, +0xa4,0xfa,0x58,0x1,0xa2,0x2,0xe7,0xfb,0x2a,0xfe,0xe5,0x7, +0xae,0x6,0x2f,0xfd,0x95,0xf9,0x98,0xfc,0xb5,0x0,0x7c,0x3, +0x71,0x3,0x78,0xfe,0xd,0xf8,0x2c,0xfd,0x64,0xc,0xc3,0xb, +0x31,0xf8,0x22,0xf3,0x72,0x4,0xf4,0xb,0x5d,0xfd,0xcf,0xf0, +0xb9,0xf6,0xc7,0x2,0x9,0x5,0xdf,0x0,0xa2,0x0,0x41,0x4, +0x2f,0x7,0xc1,0x5,0x91,0xfd,0x24,0xf6,0x45,0xf9,0x6c,0x1, +0xb4,0x4,0x22,0x4,0x7d,0x1,0x3a,0xfb,0xff,0xf7,0xef,0xff, +0xfa,0x8,0xc3,0x2,0x0,0xf8,0xd4,0xff,0xee,0xd,0x11,0x5, +0xed,0xf1,0xfe,0xf5,0xd,0x8,0xb0,0x6,0xad,0xf6,0xea,0xf6, +0x9d,0x5,0xb9,0x7,0xd8,0xfe,0xf1,0xff,0x49,0x5,0x0,0xff, +0xe5,0xf7,0x8c,0xff,0xbe,0xa,0x27,0x6,0x3e,0xf8,0x2c,0xf8, +0xd1,0x4,0xe4,0x6,0xee,0xfc,0xea,0xf8,0xb0,0xfd,0x6f,0x3, +0x18,0x4,0x18,0xfc,0xdf,0xf6,0x9d,0xff,0xef,0x6,0xfb,0x0, +0x99,0xfc,0xa3,0x0,0xd3,0x1,0xaa,0xfe,0x7d,0x0,0x87,0x6, +0x16,0x3,0x5f,0xf6,0xfd,0xf8,0x22,0xc,0x4d,0xb,0x45,0xf4, +0xe1,0xf1,0x17,0x8,0x42,0xd,0xff,0xf8,0x86,0xef,0x87,0x0, +0x15,0xe,0x17,0x3,0x25,0xf8,0x67,0x0,0x48,0x6,0x7a,0xfd, +0x1e,0xf9,0x81,0x0,0x9d,0x4,0x28,0xfe,0xab,0xf9,0x7f,0x3, +0xfe,0xc,0x1b,0x2,0xdf,0xf4,0x98,0xfd,0x5d,0x9,0xb5,0x0, +0x2b,0xf3,0x7b,0xf7,0xd,0x8,0x47,0xd,0x4b,0xff,0xd9,0xf4, +0x68,0xfe,0x31,0x8,0x68,0x1,0xb6,0xfa,0xbf,0x0,0x48,0x4, +0xfe,0xfb,0xe5,0xf7,0x82,0x1,0x26,0x8,0x80,0x0,0x5e,0xf9, +0x5e,0xfe,0xe7,0x4,0x15,0x2,0x6e,0xfb,0xcb,0xfb,0xa7,0x2, +0x7b,0x5,0x3a,0x0,0xea,0xf9,0x2d,0xfb,0x36,0x5,0x48,0xa, +0x21,0xfe,0xea,0xf2,0xb,0xfe,0x7b,0xc,0xf8,0x5,0x8,0xfa, +0xa6,0xfd,0x60,0x6,0xe8,0x2,0x44,0xf9,0xd,0xfa,0x6b,0x2, +0x43,0x2,0xf7,0xfb,0xca,0xfd,0x63,0x4,0xc1,0x2,0x9,0xfb, +0x2a,0xfc,0xce,0x7,0xa1,0x8,0x1c,0xf8,0xb9,0xf2,0xde,0x2, +0x14,0xb,0x92,0xff,0x29,0xf7,0xaf,0xff,0xf9,0xb,0x7e,0x6, +0x13,0xf4,0xf7,0xf5,0x88,0xc,0xa5,0xe,0x12,0xf9,0x40,0xf3, +0xf,0x3,0xcc,0x9,0x86,0xfd,0xd1,0xf5,0x37,0x2,0x27,0xb, +0x5e,0xfc,0x17,0xf2,0xa8,0x1,0xac,0xc,0x3f,0x1,0xb0,0xf9, +0x1,0x2,0x32,0x6,0xae,0xfd,0xdb,0xf8,0x9a,0x1,0x46,0x8, +0x9e,0x0,0xdc,0xf9,0x55,0x0,0xf5,0x6,0xb7,0x1,0x8,0xf9, +0x94,0xfb,0x12,0x6,0xf2,0x3,0x80,0xf6,0xce,0xf8,0x9b,0x8, +0x52,0x8,0x3,0xfb,0x9f,0xfa,0x6f,0x5,0x2f,0x7,0xe9,0xfc, +0x89,0xf7,0xb2,0x0,0xa3,0x8,0x29,0x1,0xfe,0xf8,0x4d,0xfe, +0x9a,0x3,0x4b,0xfd,0x95,0xf8,0xfa,0xff,0x66,0x5,0xa7,0xfd, +0xfc,0xf8,0x8d,0x3,0x8c,0xa,0xb3,0x0,0xb5,0xf9,0x4a,0x4, +0xfe,0xb,0xde,0xfd,0x8e,0xf0,0x1c,0xff,0xaa,0x11,0x1d,0x6, +0x9e,0xf1,0xe,0xf7,0xcc,0x8,0x3e,0x8,0x56,0xf7,0xc3,0xf0, +0x27,0x0,0x33,0xc,0xc2,0xff,0x63,0xf4,0x23,0x1,0x26,0xd, +0xc3,0x3,0x85,0xf8,0xdb,0xfc,0x67,0x5,0xb8,0x3,0xdb,0xfe, +0x94,0x2,0x51,0x5,0xf5,0xfd,0xe4,0xfa,0x3b,0x2,0x63,0x4, +0x2,0xfc,0x46,0xf4,0x16,0xf8,0x51,0x5,0x3f,0x8,0x91,0xfb, +0x61,0xf9,0x2f,0x9,0xc4,0xf,0xef,0x2,0xbc,0xf6,0x2d,0xfb, +0x99,0x7,0xb3,0x5,0xbb,0xf7,0x90,0xf8,0x9c,0x6,0x29,0x8, +0x7b,0xfe,0x5e,0xfa,0x61,0xfd,0x6e,0x1,0xc0,0xff,0x7d,0xf9, +0xc3,0xfa,0xa6,0x1,0xc4,0x1,0xc,0x0,0x2,0x3,0x70,0x3, +0xf4,0x0,0x12,0x1,0x48,0x0,0x9f,0xfc,0xf4,0xfc,0x5c,0x3, +0xa8,0x5,0x96,0xfe,0x17,0xfc,0xb3,0x4,0xdf,0x5,0x8,0xfb, +0xb6,0xf9,0x97,0x3,0xb,0x4,0xa5,0xfa,0x28,0xf9,0x3b,0x2, +0x1d,0x7,0x5c,0x2,0x5d,0x0,0x8f,0x4,0xea,0x1,0xf8,0xf9, +0xac,0xfc,0x87,0x6,0x3b,0x5,0x29,0xf9,0xd8,0xf6,0x8d,0x4, +0xc8,0xa,0x99,0xfc,0xd6,0xf3,0xe5,0x1,0x83,0xe,0x7d,0x5, +0xf1,0xf6,0x8,0xf8,0xfb,0x3,0x6f,0x7,0x12,0xff,0xbc,0xf9, +0x53,0xfe,0x5,0x6,0x61,0x7,0xb4,0xfd,0x80,0xf5,0x50,0xfd, +0x39,0x6,0x1e,0x0,0xad,0xfa,0x78,0x0,0x42,0x4,0x5c,0x1, +0x75,0xff,0x30,0x1,0x5e,0x2,0x60,0xfe,0xf5,0xfb,0x6,0x2, +0x51,0x3,0x6a,0xfa,0x33,0xfa,0xff,0x4,0xf,0x8,0x9a,0xff, +0x58,0xf7,0xbb,0xfa,0xd9,0x6,0x1e,0x7,0x13,0xfa,0xe,0xf8, +0x3b,0x1,0x61,0x2,0x35,0xff,0xfa,0x1,0xc5,0x5,0xf7,0x4, +0x5f,0xff,0xb2,0xfa,0xe3,0xfd,0xa6,0x2,0x57,0x0,0x62,0xfc, +0x18,0xfe,0xe0,0x3,0x2,0x5,0xca,0xfc,0x67,0xf8,0x78,0x0, +0xc,0x4,0xf,0xfd,0x31,0xfd,0x76,0x4,0x30,0x3,0x43,0xfc, +0x2,0xfc,0x49,0x1,0xb,0x2,0xc3,0xfd,0x7e,0xff,0x58,0x5, +0x3a,0x1,0x55,0xfa,0x3a,0x0,0xae,0x7,0x7,0x2,0x2c,0xf9, +0x6a,0xfa,0xd5,0x2,0xa6,0x5,0xda,0xfd,0xc5,0xf8,0x25,0x0, +0x40,0x6,0x29,0x0,0xd4,0xfa,0xfb,0x0,0xc7,0x6,0x61,0x1, +0x8a,0xfb,0x77,0xfe,0x73,0x0,0x3f,0xfe,0x33,0x1,0x8a,0x5, +0x26,0x2,0xb6,0xfb,0x91,0xf9,0x6c,0xfe,0xd0,0x5,0x10,0x3, +0xfa,0xf9,0xa0,0xfc,0x8a,0x4,0xf2,0x0,0x46,0xfb,0x8d,0x0, +0xd9,0x7,0xca,0x3,0x32,0xf8,0xca,0xf7,0x89,0x4,0x3,0x7, +0xdd,0xfc,0xd,0xfd,0xda,0x4,0x56,0x2,0x3d,0xfc,0xe1,0xfd, +0x96,0x1,0x7c,0x0,0x22,0xfd,0xec,0xfe,0x79,0x4,0xb9,0x2, +0x23,0xfb,0xbe,0xf9,0x4d,0xff,0xdf,0x4,0x34,0x4,0xdf,0xfd, +0x52,0xfe,0x8b,0x4,0x7b,0x0,0xf6,0xfa,0xe3,0x1,0xbb,0x3, +0x17,0xfa,0xe4,0xf9,0x80,0x3,0x85,0x6,0xb9,0x1,0xe2,0xfc, +0x67,0xff,0x30,0x6,0x47,0x2,0xef,0xf7,0x9f,0xfa,0x68,0x4, +0x72,0x3,0xa2,0xfc,0x29,0xfd,0x36,0x3,0xe6,0x3,0x21,0xfe, +0xed,0xfc,0x64,0x1,0x36,0x1,0x7b,0xfe,0xdf,0xff,0x72,0xff, +0xb8,0xfb,0xf2,0xfd,0x62,0x5,0xf8,0x5,0x71,0xfd,0xcd,0xf9, +0x77,0x1,0x88,0x5,0x41,0xff,0x9,0xfc,0xaf,0xfe,0x48,0x0, +0x61,0x3,0x8,0x4,0xaf,0xfb,0x42,0xf8,0x1e,0x2,0x13,0x8, +0x9a,0x1,0xcb,0xfb,0x22,0xfe,0xea,0x1,0x69,0x1,0x86,0xff, +0xb,0x0,0x42,0x1,0x1,0x1,0x9c,0xff,0x9e,0xfe,0x84,0xff, +0x5a,0xff,0xfd,0xfd,0x3c,0x2,0xda,0x5,0xba,0xfe,0xb0,0xfb, +0xd7,0x4,0x36,0x4,0x9a,0xf7,0x78,0xf7,0xfb,0x3,0x69,0x9, +0x77,0x2,0x33,0xfa,0x62,0xfd,0x55,0x5,0x31,0x1,0x55,0xfa, +0xef,0xff,0xc1,0x4,0xe5,0xff,0x2c,0xfd,0x42,0xff,0x4a,0x1, +0xad,0x1,0x6a,0xfd,0xf9,0xfa,0xda,0x2,0xf8,0x8,0x24,0x1, +0x2,0xf7,0xb4,0xf9,0xf7,0x4,0x22,0x9,0x43,0x3,0xf3,0xfe, +0xbd,0xfe,0x89,0xfd,0xf3,0xfd,0x7c,0xff,0x14,0xff,0xac,0x0, +0xf0,0x0,0x93,0xfd,0x8b,0x1,0xa,0x6,0x7e,0xfc,0xf1,0xf7, +0x8d,0x5,0xea,0xa,0x49,0xfd,0x77,0xf4,0x94,0xfc,0xd2,0x8, +0xa0,0x7,0xce,0xf9,0x1f,0xf7,0xdc,0x5,0xa0,0xa,0x10,0xfc, +0xd5,0xf4,0xbd,0x1,0x14,0xd,0x96,0x4,0xff,0xf5,0xee,0xf7, +0xca,0x5,0x91,0x9,0xf6,0xff,0xca,0xf9,0x28,0xfe,0xe0,0x0, +0x7a,0xfc,0x86,0xfd,0xf0,0x4,0x7d,0x3,0xad,0xfc,0x29,0xff, +0xdb,0x4,0x87,0x2,0xd8,0xfb,0xeb,0xf9,0x2e,0x2,0x8c,0xa, +0x1d,0x2,0xaa,0xf5,0xd8,0xfc,0xb1,0x8,0xec,0x1,0x28,0xf7, +0xfb,0xfb,0x7b,0x5,0xf9,0x2,0x5b,0xfa,0xbb,0xfb,0x1c,0x6, +0x7b,0x9,0x85,0x0,0xb3,0xf7,0xc7,0xfb,0x87,0x6,0x7f,0x5, +0x70,0xfb,0x23,0xfc,0x1b,0x3,0x16,0x1,0x30,0xfe,0xdf,0x0, +0x1d,0x1,0x29,0x0,0xf4,0xff,0x3b,0xfd,0xee,0xfd,0x32,0x1, +0xb1,0xfe,0x2e,0xfe,0x76,0x3,0x39,0x3,0x41,0x0,0x4a,0x1, +0xc3,0xfe,0xc2,0xfa,0xc7,0xfe,0x97,0x4,0xc5,0x3,0xa0,0xfe, +0xd9,0xfa,0x86,0xfd,0x2a,0x4,0xeb,0x5,0xe8,0x1,0xf7,0xfd, +0xa,0xfd,0xe0,0xfe,0xe4,0x0,0xec,0x0,0xf8,0xfe,0x6c,0xfd, +0xcf,0x1,0xda,0x7,0x6b,0x2,0x2e,0xf9,0xcc,0xfc,0xdc,0x2, +0x89,0xff,0x79,0xfd,0xc8,0xff,0x24,0x1,0xc8,0x3,0xc6,0x1, +0xdf,0xf8,0x44,0xfa,0xc7,0x5,0x88,0x6,0x44,0xfe,0x16,0xfc, +0x12,0xff,0xaf,0x2,0xf6,0x4,0xbf,0x0,0x89,0xfb,0x6c,0x0, +0x33,0x7,0x76,0x2,0xb,0xfb,0xe5,0xfc,0x17,0x1,0x67,0x1, +0xb7,0x0,0xa1,0xfd,0xc0,0xfb,0x5,0x2,0xe,0x5,0xa4,0xfd, +0xc,0xfc,0x87,0x1,0x14,0xff,0x6b,0xfc,0x0,0x3,0xe0,0x5, +0x16,0x0,0xd9,0xfa,0xb8,0xfa,0x32,0x0,0x72,0x3,0xdb,0xfd, +0xc1,0xfd,0xa1,0x7,0x9b,0x5,0x16,0xfa,0xd4,0xff,0x91,0xe, +0x11,0xa,0x21,0xfa,0xa8,0xf7,0x48,0x0,0x66,0x3,0xb9,0xfe, +0xba,0xf9,0xe0,0xf9,0x4d,0xfe,0xeb,0xfd,0x6d,0xf8,0x75,0xfc, +0xd5,0x5,0x93,0x1,0x4a,0xfb,0xfb,0x3,0xfe,0x9,0xf,0x4, +0x5b,0x1,0x75,0x1,0x1,0x2,0x41,0x9,0x1c,0x8,0x3a,0xf9, +0x7d,0xf7,0xbf,0x2,0xdb,0x1,0xbb,0xfb,0xf7,0xfd,0x4,0xff, +0xb6,0xfd,0x84,0xff,0x2f,0xfe,0x27,0xfb,0x1f,0xfe,0x87,0x2, +0x37,0x4,0x13,0x5,0x5f,0x2,0x16,0xfe,0x43,0x0,0xf9,0x3, +0x2,0x0,0xf7,0xfb,0xf4,0xfe,0x10,0x0,0x15,0xfe,0xc3,0x1, +0x9d,0x4,0x39,0x0,0x81,0xff,0x80,0x2,0xf8,0xfe,0x17,0xfc, +0x6b,0xff,0xf7,0x0,0x71,0x2,0xab,0x3,0xb7,0xfc,0xe,0xfb, +0x99,0x8,0xd2,0xc,0x72,0xff,0x1b,0xfa,0x7f,0x0,0x71,0x1, +0x52,0xfe,0xa8,0xfd,0xaa,0xfd,0x9a,0x0,0xf4,0x2,0xa2,0xfc, +0xb3,0xf8,0x2a,0x1,0x30,0x4,0xb2,0xfa,0xc2,0xfb,0xb0,0x8, +0x37,0x8,0x78,0xfd,0xd5,0xfd,0x4b,0x5,0x14,0x7,0xb3,0x2, +0xd1,0xfb,0xb4,0xfb,0xa6,0x3,0xab,0x2,0xf0,0xf9,0x2c,0xfd, +0x3b,0x4,0x70,0xfe,0x7a,0xf8,0xc7,0xfc,0xe6,0x1,0xc5,0x3, +0xeb,0x2,0xfc,0xff,0xf7,0x1,0x0,0x6,0xd6,0x1,0x36,0xfd, +0x2e,0x1,0xbc,0x2,0xa3,0xfd,0x61,0xfe,0xea,0x3,0xf2,0x0, +0xe,0xf9,0xfe,0xf8,0xb,0xff,0x29,0x3,0x38,0x2,0xe7,0xfb, +0xe1,0xf9,0x46,0x4,0xec,0x9,0xb9,0xff,0x38,0xfc,0x39,0x6, +0x1c,0x7,0xab,0x0,0x3a,0x2,0x22,0x2,0x70,0xfc,0xf0,0xfc, +0xdf,0xfe,0x6f,0xfc,0x4c,0xfd,0x92,0xfe,0xfa,0xfc,0x16,0x1, +0xc4,0x4,0x51,0xfe,0x4,0xfc,0x57,0x4,0xc6,0x5,0x19,0xff, +0x26,0x0,0x3a,0x5,0xf,0x2,0x28,0xfc,0x4f,0xfc,0x11,0x0, +0xb9,0x2,0x6d,0x1,0xa8,0xfd,0x61,0xfe,0x9c,0x1,0xd,0xff, +0x44,0xfd,0xe1,0x2,0x42,0x4,0xb2,0xfe,0xc,0xfe,0x9b,0xff, +0x64,0xfd,0x9c,0xfe,0x6c,0x1,0x66,0xff,0x60,0x0,0x9d,0x4, +0x3,0x2,0x25,0xfe,0x8f,0xff,0x30,0xff,0xf4,0xfe,0x42,0x3, +0x81,0x1,0x22,0xfa,0xa7,0xfc,0x7b,0x4,0x58,0x3,0xde,0xff, +0x8,0x1,0x7e,0xff,0xaf,0xfd,0xad,0x1,0xa,0x2,0xac,0xfd, +0xa0,0x0,0x32,0x4,0xff,0xfd,0x25,0xfb,0x49,0x1,0x8,0x3, +0xb8,0x0,0xe,0x1,0xd3,0xfe,0x5e,0xfc,0x1,0x0,0x8a,0x1, +0x8d,0xfd,0xc5,0xfc,0xa,0x0,0x2f,0x3,0xc2,0x3,0x23,0xfe, +0xb,0xf9,0xf7,0xfe,0x82,0x6,0xa,0x3,0x96,0xfc,0xff,0xfc, +0x45,0x1,0xd2,0x4,0xa6,0x4,0xd4,0xff,0x64,0xfc,0x75,0xfe, +0x4a,0x1,0x7e,0x1,0x1f,0x0,0x11,0xfd,0x9b,0xfb,0xf3,0xff, +0x69,0x2,0x9a,0xfc,0x39,0xfb,0x46,0x4,0x8e,0x6,0x56,0xfe, +0x83,0xfd,0x9f,0x3,0x1a,0x2,0x34,0xfd,0x26,0xfe,0xba,0x0, +0x50,0x1,0xde,0xff,0xf5,0xfb,0xe4,0xfb,0x6c,0x2,0x1,0x5, +0x58,0x0,0x1c,0xff,0xa7,0x2,0xaa,0x1,0xe8,0xfc,0xba,0xfc, +0x67,0x0,0xb9,0x1,0xda,0x0,0x86,0x0,0xbb,0xff,0x70,0xfe, +0xe6,0xfe,0x67,0x0,0x9b,0x0,0x3b,0xff,0x85,0xfd,0xf1,0xfd, +0xdc,0x0,0x53,0x1,0xbb,0xfd,0xf6,0xfd,0x59,0x5,0x55,0x8, +0x7,0xff,0xc7,0xf6,0x7b,0xfd,0xcc,0x7,0xc5,0x4,0x9d,0xfb, +0x2c,0xfb,0x86,0xff,0x9a,0xff,0xf3,0xfe,0x68,0x1,0xd8,0x1, +0xb4,0xfe,0xdb,0xfd,0x60,0xff,0xc8,0xfd,0x54,0xfc,0x66,0x1, +0xd2,0x6,0xc2,0x3,0xb4,0xfc,0x6b,0xfb,0x6b,0x1,0xf1,0x5, +0x63,0x0,0xeb,0xf9,0x3,0x2,0x21,0xd,0x23,0x6,0xf2,0xf8, +0xe,0xfb,0x1c,0x3,0xb6,0x1,0xb6,0xfc,0x56,0xfb,0x2d,0xfc, +0x44,0xff,0xca,0x1,0xfd,0xfe,0xaa,0xfb,0x59,0xfd,0xc2,0xff, +0xaa,0x0,0x79,0x2,0x6b,0x1,0x9d,0xfc,0xa5,0xfd,0xf8,0x4, +0xd3,0x5,0x10,0xff,0x70,0xfc,0xf2,0xff,0x4d,0x1,0xc,0xfe, +0x53,0xfc,0x3c,0x0,0xa3,0x3,0x16,0x0,0xf,0xfd,0xf2,0x1, +0x54,0x5,0xe7,0xff,0xed,0xfa,0x15,0xfd,0x8d,0x1,0x5f,0x3, +0xf7,0x0,0x66,0xfd,0xb3,0xfe,0xaf,0x1,0x8e,0xff,0xe3,0xfd, +0x82,0x1,0x97,0x2,0xc0,0xff,0xb,0x0,0x36,0x0,0x1c,0xfd, +0xc,0xff,0xaa,0x4,0x8d,0x2,0xd3,0xfc,0x2,0xfe,0xcc,0x1, +0xa9,0x2,0xfa,0x2,0x94,0x1,0x3a,0xff,0xda,0x1,0x8,0x4, +0x55,0xfd,0xa5,0xf7,0x6b,0xfd,0xe1,0x4,0x11,0x3,0x25,0xfc, +0xc8,0xf8,0x71,0xfc,0x2f,0x3,0xda,0x4,0x15,0x1,0xe7,0xff, +0xb4,0x2,0xf2,0x2,0xf1,0xfe,0xb6,0xfb,0x40,0xfd,0xaa,0x1, +0xbc,0x2,0x3,0xff,0x67,0xfd,0xb1,0x0,0x47,0x2,0xbf,0xff, +0x4d,0xfe,0xe3,0xfe,0xd5,0xfe,0x5e,0xff,0xbc,0x0,0x6a,0x0, +0xd,0x0,0x5f,0x2,0x31,0x5,0x8,0x5,0x55,0x0,0x91,0xfa, +0xf4,0xfc,0x47,0x6,0xff,0x5,0x46,0xfa,0x38,0xf7,0xd0,0x0, +0x8e,0x4,0xaf,0xfe,0x70,0xfc,0x86,0xff,0xca,0x0,0x7b,0x0, +0xa6,0x0,0x3b,0x0,0xf5,0xff,0x60,0x0,0xf2,0x0,0xd2,0x2, +0xdc,0x3,0x1d,0x0,0x43,0xfc,0x5e,0xfe,0x42,0x1,0xb0,0xff, +0xfd,0xfd,0x6c,0xfe,0x40,0xfe,0x8b,0xfe,0xb7,0x0,0x5f,0x2, +0xb2,0x2,0xc0,0x1,0x3a,0xff,0x89,0xfe,0xaf,0x0,0xc,0x0, +0xb,0xfd,0xe1,0xfe,0x72,0x3,0xc8,0x2,0x7c,0xfe,0x87,0xfd, +0x1e,0x1,0x54,0x4,0xe3,0x1,0xfa,0xfc,0x94,0xfe,0xc1,0x3, +0x96,0x1,0x3b,0xfc,0x37,0xfe,0x1c,0x2,0x35,0x0,0xd6,0xfd, +0x5f,0xfe,0xdf,0xfe,0xe1,0x0,0xee,0x3,0x6e,0x2,0x3b,0xfe, +0x15,0xfd,0x6d,0xfe,0x81,0x1,0x4a,0x5,0x9d,0x3,0x53,0xfd, +0x12,0xfc,0x46,0x0,0xaa,0x2,0x40,0x2,0xa9,0x0,0x4f,0xff, +0x89,0x1,0x7d,0x3,0x5d,0xfe,0xd8,0xf9,0xf2,0xfe,0xf3,0x3, +0xf2,0xff,0x3,0xfc,0x77,0xff,0x9f,0x3,0x9c,0x1,0x57,0xfc, +0x84,0xfc,0xaa,0x3,0x1d,0x6,0xbb,0xfe,0xb5,0xfa,0xe0,0xff, +0x22,0x2,0xac,0xfe,0x28,0xff,0xf2,0x1,0xc1,0xff,0x19,0xfd, +0xd,0x0,0x7a,0x4,0x90,0x3,0xb7,0xfd,0x9,0xfc,0x5e,0x3, +0xdb,0x7,0x1a,0x0,0x5c,0xf9,0xf0,0xfe,0xc3,0x4,0x14,0x1, +0xc5,0xfc,0x23,0xfe,0x54,0x0,0x70,0x0,0x9b,0x0,0x73,0x2, +0x83,0x3,0x87,0xff,0xf6,0xfa,0x3f,0xff,0x8d,0x6,0x74,0x3, +0xa3,0xfb,0xa9,0xfc,0xe5,0x1,0x6,0x1,0x71,0xfd,0xfc,0xfd, +0x25,0x1,0xa9,0x1,0x58,0xfe,0x39,0xfd,0xe1,0x1,0xb6,0x3, +0x9c,0xfd,0xc0,0xfa,0x71,0x0,0xb9,0x2,0x5,0xfe,0x19,0xfe, +0xa4,0x4,0xe3,0x5,0x4c,0xff,0xc5,0xfb,0xc0,0x0,0x91,0x4, +0xd3,0xfe,0x9c,0xf9,0x92,0x0,0xe3,0x8,0xf5,0x3,0xdb,0xfa, +0xe6,0xfb,0x91,0x1,0xbe,0x1,0x69,0xff,0xc5,0xff,0x4c,0x0, +0x31,0xfe,0x9,0xfd,0xaa,0x0,0x26,0x4,0xa6,0x0,0xfb,0xfb, +0x10,0xff,0x15,0x3,0xfa,0xfe,0xae,0xfa,0x70,0xfe,0xe0,0x2, +0xc2,0x1,0xd,0x0,0xcd,0x0,0x41,0x1,0x7e,0x0,0xca,0xff, +0x1f,0x0,0x20,0x1,0x42,0x0,0x4a,0xfd,0xc1,0xfc,0x15,0x0, +0x7,0x3,0x61,0x3,0x16,0x2,0x3c,0xff,0x6c,0xfc,0x6b,0xfd, +0x20,0x2,0x12,0x5,0x17,0x2,0x93,0xfc,0x56,0xfc,0xd5,0x1, +0xe8,0x3,0xd7,0xfe,0x0,0xfb,0xfb,0xfd,0x4,0x2,0x83,0x1, +0x2d,0xff,0xff,0xfe,0xd2,0xff,0x63,0xff,0xb4,0xff,0xac,0x2, +0xb5,0x3,0x2c,0xff,0xf2,0xfb,0x21,0x0,0x27,0x4,0x74,0x0, +0xd4,0xfb,0x8f,0xfd,0xa0,0x0,0xd,0x0,0x7b,0xff,0xbb,0x0, +0x59,0x0,0xca,0xfe,0xca,0xff,0xde,0x1,0x17,0x1,0xf5,0xfe, +0x35,0xff,0xd7,0x0,0x5e,0x0,0xc3,0xfd,0x89,0xfc,0xaa,0xfe, +0x5,0x1,0xc7,0xff,0xc7,0xfd,0xef,0xff,0xd5,0x2,0x8a,0x0, +0xd9,0xfc,0x86,0xfe,0xf9,0x2,0xf4,0x3,0x13,0x1,0x73,0xfd, +0xcc,0xfb,0x9b,0xfd,0x5a,0x1,0xc8,0x3,0xef,0x2,0xb8,0xfe, +0x23,0xfb,0x3,0xfe,0x2f,0x4,0xb1,0x3,0x94,0xfd,0xd0,0xfc, +0x4,0x2,0x12,0x3,0x2f,0xfe,0x28,0xfc,0x31,0x0,0xec,0x2, +0x23,0x0,0x2e,0xfe,0xd5,0x0,0x65,0x1,0x5d,0xfd,0xb4,0xfc, +0x34,0x1,0xd,0x3,0xab,0x0,0xf7,0xfe,0xba,0xfe,0x40,0xff, +0x1e,0x1,0xa,0x2,0x84,0x0,0x2e,0xff,0x65,0xff,0xfc,0x0, +0xac,0x3,0x31,0x3,0x66,0xfd,0x19,0xfa,0x83,0xfe,0x61,0x3, +0x4a,0x2,0x42,0xfe,0x7c,0xfb,0xfa,0xfa,0x9,0xfc,0x3d,0xfd, +0x3e,0xff,0xfa,0x1,0xc8,0x0,0x1b,0xfc,0xc0,0xfc,0x91,0x2, +0x98,0x2,0xc8,0xfc,0xcf,0xfc,0xf7,0x3,0x1,0x7,0xa4,0x1, +0xbd,0xfc,0xfd,0xfe,0x4d,0x2,0xa3,0x0,0x36,0x0,0x88,0x4, +0x1d,0x4,0x25,0xfd,0xee,0xfb,0x15,0x1,0x44,0x0,0x14,0xfb, +0x1f,0xfd,0xb4,0x3,0xf5,0x3,0x49,0xfe,0x5e,0xfb,0x9f,0xfe, +0x5c,0x2,0x5a,0x0,0xcb,0xfc,0x9f,0xff,0x5e,0x4,0xcf,0x1, +0x55,0xfc,0x8a,0xfd,0x42,0x3,0x79,0x5,0x1e,0x2,0xdf,0xfc, +0x8d,0xfb,0x43,0x0,0xde,0x4,0x95,0x3,0x45,0xff,0x8a,0xfc, +0x60,0xfc,0xb5,0xff,0xc6,0x4,0xde,0x4,0xd4,0xfe,0x49,0xfb, +0xee,0xfe,0x28,0x3,0xfe,0x1,0x5f,0xff,0x50,0x0,0x35,0x1, +0xea,0xfd,0x1,0xfc,0x90,0x0,0x48,0x4,0x6d,0x0,0x8f,0xfc, +0x1e,0x0,0x45,0x4,0xbe,0x1,0xd0,0xfd,0xdc,0xfe,0xe8,0x1, +0x6e,0x2,0x86,0x1,0x13,0x1,0x27,0x0,0xaf,0xfe,0xb2,0xfe, +0xfe,0xff,0x95,0xff,0x47,0xfd,0x5,0xfd,0x29,0x0,0x5e,0x2, +0x75,0x0,0xca,0xfd,0x76,0xfe,0xb1,0x0,0x23,0x1,0xe1,0x0, +0x37,0x1,0x19,0x0,0xc3,0xfd,0xc4,0xfd,0xe6,0xff,0x9b,0x0, +0x42,0xff,0x70,0xfd,0xc2,0xfc,0x64,0xff,0xf7,0x3,0x4b,0x4, +0x99,0xfe,0x37,0xf9,0xda,0xf9,0x7e,0xff,0x6a,0x4,0xb8,0x3, +0x90,0xff,0x86,0xfe,0xde,0x0,0x29,0x1,0x21,0xff,0x23,0xff, +0x1a,0x1,0xb8,0x0,0x37,0xfd,0xde,0xfb,0x38,0x0,0x86,0x4, +0x31,0x2,0xca,0xfd,0x56,0xfe,0xed,0x0,0xa,0x1,0x68,0x0, +0xfd,0xff,0xff,0xfe,0x96,0xff,0x1d,0x2,0x20,0x3,0x50,0x1, +0x4d,0xfe,0x2b,0xfd,0xe5,0x0,0x33,0x5,0x6c,0x2,0xfb,0xfc, +0xd6,0xfe,0x2,0x4,0xa3,0x2,0x32,0xfd,0x9d,0xfb,0x31,0xfe, +0xa0,0x0,0xe9,0x0,0x7a,0x0,0x9e,0x0,0x6c,0xff,0x7,0xfd, +0x47,0xfe,0x67,0x2,0xec,0x1,0x4b,0xfd,0xb1,0xfc,0xb,0x1, +0x0,0x4,0xdc,0x2,0xe,0x0,0x3c,0xfe,0x56,0xfd,0xdc,0xfc, +0x7,0xff,0xca,0x2,0xd3,0x0,0x8,0xfa,0x64,0xfa,0xa0,0x2, +0xaf,0x5,0x44,0x1,0xc6,0xfe,0x91,0xff,0xf1,0xfe,0x1d,0xfe, +0xca,0xff,0xf9,0x1,0x69,0x1,0xf4,0xfd,0x7,0xfc,0xa5,0xff, +0x97,0x4,0xee,0x3,0x88,0xff,0xc8,0xfd,0x13,0xff,0xe3,0xff, +0x27,0xff,0x65,0xfe,0x8,0xff,0x62,0x0,0xf4,0x0,0x10,0x1, +0x1b,0x1,0x68,0x0,0x28,0x0,0x3d,0x1,0xd1,0x0,0x45,0xfe, +0xd0,0xfd,0x3c,0x0,0xa2,0x1,0xa6,0x0,0xe8,0xfe,0x72,0xfe, +0xa4,0x0,0x67,0x2,0xaf,0xff,0xcd,0xfc,0xf6,0xfe,0xcd,0x0, +0x1b,0xfe,0x5d,0xfd,0xf9,0x0,0x30,0x2,0xd1,0xff,0x83,0xfe, +0x87,0xfe,0x51,0xff,0x42,0x2,0x39,0x4,0x90,0x1,0x93,0xfd, +0xa2,0xfc,0xd8,0xfe,0xde,0x2,0x63,0x5,0x4f,0x2,0x49,0xfc, +0xd5,0xfa,0x2e,0xff,0x2,0x3,0xcc,0x1,0xe,0xfe,0xa1,0xfc, +0xdc,0xfd,0x7c,0xff,0xeb,0x1,0x45,0x4,0x3,0x2,0x5c,0xfc, +0x41,0xfb,0x5f,0x0,0xb4,0x4,0x39,0x3,0xc,0xfe,0x93,0xfb, +0x9b,0xfe,0x24,0x1,0xec,0xfe,0xf5,0xfd,0x2a,0x1,0x33,0x2, +0x31,0x0,0xde,0xff,0xc6,0xff,0xe4,0xfe,0xea,0x0,0xf7,0x2, +0x41,0x0,0xc7,0xfd,0x56,0xff,0x32,0x0,0x74,0xff,0x88,0x0, +0xa7,0x1,0x66,0x0,0x98,0xfe,0x99,0xfd,0xd2,0xfd,0xab,0xff, +0x50,0x1,0xed,0x0,0xc2,0xfe,0x67,0xfc,0x73,0xfd,0xbf,0x1, +0x5f,0x1,0x38,0xfb,0xae,0xfa,0x39,0x2,0x23,0x6,0xb0,0x2, +0x6b,0xff,0x6b,0xff,0x85,0x0,0x5d,0x1,0x25,0x1,0xd1,0x0, +0xf4,0x0,0x97,0xfe,0xf2,0xfa,0x1e,0xfc,0x52,0x0,0x47,0x1, +0x0,0x1,0xc3,0x1,0x69,0xff,0x2e,0xfc,0x20,0xff,0x19,0x4, +0x27,0x3,0xcc,0xff,0x71,0xff,0xba,0xff,0x79,0xff,0x59,0x0, +0xdb,0xff,0x83,0xfd,0xb7,0xfe,0x41,0x2,0x50,0x0,0x17,0xfb, +0x76,0xfb,0x62,0xff,0x88,0xff,0x2a,0xfe,0x21,0x0,0x87,0x2, +0x76,0x1,0x1e,0xff,0x8,0x0,0x74,0x4,0x25,0x6,0xf4,0x0, +0x2,0xfc,0x84,0xfe,0xf8,0x1,0x1,0xff,0x87,0xfb,0xec,0xfd, +0xe9,0x1,0x83,0x2,0x8e,0x0,0xa,0xfe,0xd3,0xfc,0x89,0xfe, +0xaa,0x1,0xac,0x2,0x7d,0x0,0xda,0xfd,0x25,0xfe,0xed,0x0, +0xc5,0x2,0x3d,0x2,0x4a,0x0,0x69,0xfe,0xd,0xff,0x3,0x2, +0x96,0x2,0xd0,0xff,0x5d,0xfe,0x7f,0xfe,0x5b,0xfd,0x6e,0xfe, +0xb0,0x4,0x3e,0x9,0x59,0x5,0x59,0xfd,0xf5,0xf9,0x15,0xfd, +0xab,0x0,0xb,0xff,0xce,0xfa,0x96,0xfa,0xb7,0xfe,0xf7,0x1, +0xf,0x2,0xd5,0x0,0xda,0xff,0x36,0xff,0xd7,0xfe,0x15,0xff, +0x3f,0x0,0x11,0x2,0xaa,0x3,0x71,0x3,0x9d,0x0,0x23,0xfe, +0x8f,0xff,0xed,0x1,0xb2,0xff,0x4d,0xfb,0x80,0xfb,0xa6,0xff, +0xb9,0x1,0x45,0x0,0xdb,0xfe,0x43,0x0,0x1a,0x3,0xd2,0x2, +0x7c,0xfe,0x5a,0xfc,0x87,0xff,0x3b,0x1,0xe8,0xfd,0xd8,0xfc, +0x9c,0x1,0x91,0x5,0x15,0x5,0x2d,0x3,0x5d,0x1,0x1b,0x0, +0xfa,0xff,0x80,0xfe,0xfe,0xfb,0x31,0xfd,0x79,0xff,0x99,0xfc, +0xd,0xfa,0xd9,0xfe,0x2d,0x4,0x33,0x3,0x72,0x0,0x7a,0xff, +0x7c,0xfe,0xf5,0xfd,0x1,0xff,0x3b,0x0,0x21,0x0,0xe5,0xfd, +0x7d,0xfc,0x34,0x1,0x60,0x7,0x6b,0x4,0x8e,0xfc,0xc8,0xfc, +0xe,0x3,0x7,0x4,0xd1,0xff,0x95,0xfe,0xba,0x1,0x35,0x3, +0xad,0xff,0x4,0xfc,0x45,0xfd,0xc3,0xff,0xb2,0xfe,0x93,0xfc, +0x6f,0xfc,0x86,0xfd,0xa6,0xff,0xd2,0x1,0x90,0x1,0x7f,0x0, +0xca,0x1,0xd7,0x3,0x9a,0x3,0xc5,0x0,0x6d,0xfd,0x68,0xfd, +0xfa,0x0,0x2,0x2,0x54,0xfe,0x5c,0xfc,0x21,0xff,0x62,0x1, +0x93,0xff,0x7,0xfd,0x4f,0xfe,0x5c,0x2,0x84,0x3,0xbe,0x0, +0x1a,0xff,0xb2,0xff,0x4b,0xff,0x46,0xff,0x18,0x2,0x1b,0x4, +0xd7,0x1,0x3,0xfe,0xd2,0xfc,0xd9,0xfe,0xea,0x0,0x65,0x0, +0x22,0xff,0x8b,0xfe,0x63,0xfc,0xb4,0xfa,0xc3,0xfe,0x7e,0x4, +0x44,0x3,0x98,0xfd,0x66,0xfc,0x6d,0x0,0x64,0x3,0xb3,0x1, +0x1d,0xfe,0x89,0xfd,0x9c,0xff,0xed,0xff,0x4,0xff,0xc2,0x0, +0x3e,0x3,0x11,0x2,0x1d,0xff,0xdf,0xfe,0xae,0x0,0xe1,0x0, +0x5b,0xff,0x19,0xff,0x56,0x0,0x13,0x0,0x1c,0xfe,0xab,0xfd, +0x35,0xff,0xf4,0xff,0x57,0xff,0x44,0xff,0x15,0x0,0x7c,0x0, +0x40,0x0,0x65,0x0,0xc8,0x0,0x23,0x0,0x37,0xff,0x4b,0x0, +0x56,0x2,0x5f,0x1,0x15,0xfd,0x77,0xfa,0x7,0xfd,0x79,0x1, +0x49,0x2,0xee,0xff,0xb,0xff,0x2f,0x0,0x87,0x0,0x1,0x0, +0xfc,0xff,0xdf,0xff,0x12,0xff,0x5a,0xfe,0x80,0xfe,0x4f,0xff, +0x62,0xff,0xe4,0xfe,0x5f,0x0,0x0,0x2,0xd1,0xfe,0x30,0xfb, +0x56,0xff,0x51,0x5,0x51,0x2,0xb7,0xfb,0xa7,0xfc,0xf3,0x1, +0x59,0x2,0xb9,0xfe,0x4,0xfe,0xf6,0x0,0xc7,0x1,0xe7,0xfe, +0x73,0xfe,0x13,0x2,0x5a,0x2,0xa5,0xfd,0x8c,0xfc,0x29,0x1, +0xb,0x3,0x6,0xff,0x8d,0xfb,0xe0,0xfc,0x60,0x0,0x8a,0x2, +0x6c,0x2,0xc3,0x0,0xad,0xff,0xdd,0x0,0x26,0x2,0x4b,0x0, +0x40,0xfd,0xdc,0xfc,0x1a,0xfe,0xe3,0xfe,0x2,0x0,0xfd,0x0, +0x6b,0x0,0xc2,0xff,0xd5,0xff,0x69,0xff,0x5b,0xff,0x5b,0x0, +0xae,0x0,0x95,0x0,0x10,0x1,0x92,0x0,0x8a,0xff,0xdf,0xff, +0xbe,0xff,0xd5,0xfe,0x5a,0x0,0x2c,0x2,0x0,0x0,0x47,0xfd, +0x3e,0xfe,0x51,0x0,0xf1,0x0,0x37,0x0,0xde,0xfd,0x39,0xfc, +0x4d,0xfe,0x19,0x1,0x99,0x0,0xf0,0xfe,0x61,0xff,0x47,0x1, +0xb4,0x2,0x67,0x2,0xa8,0x0,0x1d,0x0,0x47,0x2,0x7,0x4, +0x93,0x1,0xab,0xfc,0x1b,0xfb,0x88,0xfe,0xa7,0x1,0xaf,0xff, +0x44,0xfb,0xd5,0xfa,0x51,0xff,0x3d,0x2,0x29,0x0,0x30,0xff, +0xf4,0x2,0x73,0x4,0x7d,0x0,0x71,0xfe,0x81,0x0,0x1,0x1, +0xb,0x0,0xba,0x0,0xc9,0x0,0x52,0xff,0xc0,0xfe,0x8f,0xfe, +0x8b,0xfe,0x15,0x0,0xa7,0x0,0x6,0xff,0xf6,0xfe,0x3c,0x0, +0x4,0x0,0xc0,0x0,0x71,0x2,0x8e,0x0,0x22,0xfe,0xaf,0x0, +0x1d,0x3,0x1f,0x0,0xc2,0xfc,0x7b,0xfd,0x2d,0x0,0x7d,0x2, +0x68,0x2,0x1b,0xff,0x5,0xfd,0xf,0xff,0x68,0x0,0x4b,0xfe, +0x67,0xfd,0xa5,0xff,0x57,0x1,0x70,0x1,0x13,0x1,0x92,0xff, +0x9b,0xfe,0xea,0x0,0xe6,0x2,0xee,0x0,0x98,0xff,0x78,0x1, +0x5c,0x1,0xc3,0xfe,0xfe,0xfe,0x2d,0x1,0x2,0x1,0xd2,0xfe, +0x4b,0xfc,0x97,0xfb,0xb,0xff,0x2b,0x2,0xf2,0xff,0x25,0xfe, +0x51,0x1,0x32,0x3,0xd4,0x1,0x1d,0x2,0x1c,0x2,0x7d,0xff, +0x6f,0xff,0x7c,0x1,0xaf,0xff,0x5e,0xfd,0x8d,0xff,0x21,0x1, +0x87,0xfe,0x6d,0xfc,0x54,0xfd,0x6b,0xff,0x4b,0x1,0x2f,0x1, +0x23,0xff,0xa7,0xfe,0x17,0x0,0x86,0x0,0xc,0x1,0x2,0x3, +0x8a,0x2,0x17,0xff,0x80,0xfe,0xec,0x0,0x76,0x0,0x29,0xfe, +0xe0,0xfe,0xf7,0xff,0x52,0xfe,0x0,0xfe,0x44,0x0,0xb4,0x0, +0x43,0xff,0xce,0xfe,0xef,0xfe,0xb6,0xff,0xe9,0x0,0xa5,0xff, +0x57,0xfe,0xad,0x1,0xe0,0x3,0x64,0xff,0x39,0xfc,0x72,0xff, +0xc1,0x1,0x4c,0x0,0x51,0xff,0xde,0xfe,0xbc,0xfe,0x90,0x0, +0xe7,0x0,0xf8,0xfd,0x48,0xfd,0x3c,0x0,0x3b,0x2,0xf1,0x1, +0x90,0xff,0x55,0xfc,0x50,0xfe,0x34,0x5,0x34,0x6,0x75,0x0, +0xbe,0xff,0x77,0x4,0xea,0x3,0x8c,0xfe,0xe,0xfd,0x17,0xff, +0x20,0xff,0xe7,0xfc,0xc8,0xfa,0x9e,0xfa,0xc1,0xfd,0x59,0x1, +0xf,0x1,0xd,0xff,0x63,0xff,0x59,0x0,0x9a,0x0,0x29,0x2, +0x35,0x3,0xf,0x2,0xba,0x2,0x6c,0x4,0x7b,0x1,0xb8,0xfd, +0xd,0xff,0xe3,0xff,0xd0,0xfc,0x25,0xfc,0x49,0xfe,0xc,0xff, +0xc4,0x0,0xa1,0x2,0x9e,0xff,0x4,0xfd,0x61,0x0,0xff,0x1, +0x5f,0xfe,0x93,0xfd,0x65,0x0,0x1,0x1,0xb2,0x0,0x5d,0x1, +0xa5,0x0,0x22,0x0,0x73,0x1,0xc6,0x0,0x14,0xfe,0xd2,0xfd, +0x27,0xff,0x86,0xff,0x28,0x0,0x27,0x0,0xe2,0xfd,0x97,0xfd, +0x61,0x1,0x33,0x3,0xd4,0x0,0xe5,0xff,0x52,0x1,0xe0,0x0, +0xaf,0xff,0x49,0x0,0x35,0x0,0x29,0xff,0xe1,0xff,0x3a,0x0, +0x8f,0xfe,0x1b,0xff,0x74,0x1,0x47,0x0,0xe4,0xfd,0x1d,0xff, +0xe6,0x0,0x8c,0x0,0x44,0x0,0x13,0x0,0xcc,0xff,0xc,0x1, +0x67,0x1,0x57,0xff,0x54,0xff,0x92,0x1,0x9b,0x1,0x92,0x0, +0xb7,0xff,0xcf,0xfc,0x2e,0xfc,0x5a,0x1,0x25,0x3,0x59,0xfd, +0x39,0xfb,0xd3,0x0,0xf9,0x3,0xf,0x1,0x5d,0xfe,0xb0,0xfe, +0x52,0x0,0x3c,0x1,0xeb,0xff,0x3f,0xfe,0xdd,0xfe,0xab,0xff, +0x49,0xff,0xaa,0x0,0x52,0x2,0xca,0xff,0x6d,0xfd,0xd1,0x0, +0x2a,0x3,0x93,0xfe,0x95,0xfb,0xc1,0xff,0xa5,0x2,0x2d,0x0, +0xbf,0xfe,0xc0,0xff,0xc0,0xff,0xf8,0xff,0x2d,0x1,0x9f,0x1, +0x53,0x2,0x5d,0x2,0x84,0xff,0x17,0xff,0x57,0x3,0xee,0x2, +0x9,0xfd,0x0,0xfd,0x50,0x1,0xaf,0xff,0x44,0xfc,0x49,0xfe, +0x3f,0x0,0xb9,0xfe,0xc2,0xfe,0xd1,0x0,0x8f,0x1,0x1d,0x1, +0x42,0x0,0x52,0x0,0xe2,0x2,0xe3,0x3,0x1d,0x0,0x23,0xfe, +0xf9,0x1,0xb2,0x3,0x2,0xff,0x7b,0xfb,0x91,0xfd,0x32,0x0, +0x7,0x0,0x54,0xff,0x6e,0xff,0x7b,0xff,0x2f,0xff,0xb1,0xfe, +0xcb,0xfe,0x47,0x0,0x26,0x1,0x24,0x0,0x4a,0x1,0x8,0x6, +0xd9,0x7,0x4f,0x4,0xbc,0x1,0xfe,0x1,0xbb,0x0,0x53,0xfe, +0xa7,0xfd,0x1f,0xfd,0x34,0xfb,0xd0,0xf9,0xd3,0xfa,0xa2,0xfd, +0xd2,0xfe,0x98,0xfd,0x33,0x0,0x78,0x7,0x36,0x8,0x38,0x0, +0x20,0xfd,0xa4,0x2,0x4f,0x5,0xe1,0x1,0x3a,0xff,0x55,0xff, +0x2d,0x0,0x4c,0x0,0xe8,0xfd,0x5b,0xfb,0x41,0xfd,0xf2,0x0, +0x8e,0x1,0x7,0x1,0x2f,0x1,0xa3,0xff,0xb1,0xfd,0xc9,0xfe, +0xf6,0x0,0x69,0x1,0x7f,0x1,0x0,0x2,0x43,0x2,0x63,0x3, +0x7b,0x4,0x1e,0x2,0x68,0xfe,0x49,0xfe,0x12,0xff,0xe8,0xfc, +0x46,0xfc,0xe8,0xfe,0xc7,0xfe,0x4d,0xfd,0xee,0x0,0x1e,0x4, +0x4e,0x0,0x98,0xfd,0xb5,0x1,0xc9,0x4,0x1a,0x3,0x93,0x1, +0x15,0x1,0x67,0x0,0xbd,0x0,0x7d,0x0,0x4f,0xfe,0x6e,0xfd, +0xbc,0xfe,0x12,0x0,0x5b,0x1,0x2f,0x1,0x22,0xfe,0x1e,0xfd, +0x90,0x0,0x6f,0x1,0x54,0xfd,0x14,0xfc,0x14,0x0,0xa1,0x2, +0x97,0x1,0x5f,0x1,0xe4,0x2,0xb,0x3,0xaa,0x1,0xda,0x0, +0x42,0x0,0xe,0xff,0xc0,0xfe,0x54,0xff,0x8c,0xfe,0x7e,0xfd, +0xe,0xff,0x65,0x1,0xa,0x1,0x6f,0xff,0x22,0x0,0x9b,0x2, +0xdd,0x2,0x8b,0xff,0xfd,0xfc,0xf8,0xfe,0x38,0x2,0xf9,0x1, +0x6b,0xff,0x9b,0xfe,0x99,0x0,0xb3,0x2,0x89,0x1,0x49,0xfe, +0x96,0xfd,0x3d,0xff,0x90,0xff,0x64,0xff,0x4d,0x0,0x4b,0x0, +0xf8,0xff,0x82,0x1,0x5e,0x2,0xfa,0x0,0x22,0x0,0xed,0xff, +0x4c,0xff,0x12,0x0,0xbf,0x0,0x98,0xfe,0x6,0xfe,0x80,0x1, +0x23,0x2,0xfc,0xfd,0xcf,0xfc,0x33,0x0,0x99,0x1,0xdc,0xff, +0x3b,0xff,0xf,0x0,0x27,0x0,0x4a,0x0,0x2f,0x2,0xa8,0x4, +0xc3,0x4,0x94,0x1,0x7f,0xfe,0xce,0xff,0x29,0x3,0x85,0x1, +0x39,0xfc,0xe8,0xfb,0x1e,0xff,0x20,0xfd,0xa1,0xf9,0x45,0xfd, +0xf7,0x1,0x77,0xff,0x15,0xfc,0x5,0xfe,0x75,0x0,0x70,0x0, +0xcc,0x0,0xea,0x1,0xd3,0x2,0xb0,0x3,0x8f,0x3,0xb7,0x2, +0xeb,0x2,0xc3,0x2,0x6c,0x0,0x35,0xfe,0x13,0xfe,0x9c,0xfe, +0x9b,0xfe,0x20,0xfe,0x5b,0xfd,0x21,0xfd,0x16,0xfe,0x50,0xff, +0x89,0xff,0x27,0xff,0xc9,0xff,0x4c,0x1,0xcf,0x1,0x8f,0x1, +0xc4,0x1,0xa,0x1,0x8c,0xff,0x69,0x0,0xc9,0x1,0x79,0xff, +0x51,0xfd,0x9b,0xff,0xe6,0x0,0xd4,0xfd,0xd7,0xfc,0x1e,0x0, +0x2b,0x1,0xbf,0xfe,0xa6,0xfe,0xb0,0x1,0xfd,0x2,0xc0,0x1, +0x67,0x1,0xd4,0x1,0xa0,0x0,0xb4,0xff,0x97,0x1,0x1f,0x3, +0x16,0x1,0xda,0xfd,0xac,0xfc,0x17,0xfe,0xa9,0x0,0x3d,0x1, +0x2b,0xff,0x2e,0xfe,0xe8,0xfe,0xd,0xfe,0xbc,0xfc,0x19,0xfe, +0x73,0x0,0x62,0x1,0x98,0x0,0xb,0xfe,0x73,0xfd,0x4e,0x2, +0xba,0x5,0x1d,0x1,0xec,0xfc,0xd,0x1,0xce,0x4,0x93,0x0, +0x81,0xfc,0x23,0xff,0x38,0x1,0x99,0xfd,0x17,0xfb,0x23,0xfe, +0x2,0x1,0x5f,0x0,0x27,0x0,0x4e,0x1,0x2e,0x1,0x10,0x1, +0xc3,0x2,0xd2,0x3,0x50,0x2,0x38,0xff,0x7d,0xfc,0xbb,0xfc, +0x7e,0xff,0x65,0x0,0x50,0xff,0xf1,0xff,0xc0,0x0,0x52,0xff, +0xf,0xff,0xb8,0x0,0x1a,0x0,0x65,0xfe,0x80,0xff,0xa7,0x0, +0xa,0xff,0xa1,0xfe,0x79,0x1,0x1e,0x3,0x61,0x1,0x84,0xff, +0xfc,0xfe,0x3a,0xfe,0x79,0xfe,0x50,0x1,0xa5,0x2,0x77,0xff, +0xda,0xfc,0x9e,0xfe,0xd8,0x0,0xd8,0x0,0x4f,0x0,0xaa,0xff, +0x5b,0xff,0x94,0x0,0x31,0x1,0xee,0xff,0xb3,0xff,0x33,0x0, +0xea,0xfe,0xbe,0xfe,0x6c,0x1,0x3c,0x2,0x60,0x0,0x1f,0x0, +0xd,0x0,0xed,0xfc,0xef,0xfa,0xb2,0xfd,0x8b,0x0,0xcf,0xff, +0x32,0xff,0x26,0x1,0x4f,0x2,0x99,0x1,0x48,0x2,0x90,0x3, +0x71,0x1,0xbb,0xfd,0xf2,0xfc,0x60,0xfe,0x9f,0xff,0x54,0x0, +0xb5,0xff,0x8c,0xfe,0x73,0xff,0xdb,0x0,0xfc,0xff,0x1d,0xff, +0xb8,0xff,0x98,0xff,0xba,0xff,0xa9,0x1,0xe8,0x1,0x77,0xff, +0x89,0xfe,0x82,0xff,0xce,0xff,0xaa,0x0,0x62,0x2,0x4d,0x1, +0xf3,0xfd,0xb2,0xfd,0x87,0x0,0x13,0x1,0x20,0xff,0x34,0xff, +0x7f,0x0,0x28,0xff,0xb8,0xfd,0xb1,0xff,0x93,0x1,0x8,0x1, +0x1e,0x1,0x5e,0x1,0x98,0xff,0x31,0xff,0x21,0x1,0xa6,0x0, +0xe9,0xfe,0xd5,0x0,0xa,0x3,0xf6,0x0,0xec,0xfe,0xce,0x0, +0x48,0x2,0x67,0xff,0xf1,0xfb,0xde,0xfd,0x4c,0x3,0x44,0x3, +0x60,0xfc,0x73,0xf9,0x77,0xff,0x1e,0x4,0x9f,0x0,0x8e,0xfd, +0xf9,0x0,0xb8,0x2,0x93,0xfe,0x39,0xfe,0x4b,0x4,0xa6,0x4, +0x5c,0xfd,0xcd,0xfb,0x73,0x1,0x6a,0x2,0xbd,0xfe,0x26,0xff, +0x9e,0x1,0x88,0x0,0x6d,0xfe,0x1a,0xfe,0x71,0xfe,0x57,0xff, +0x39,0x0,0x62,0xff,0x27,0xfe,0xb1,0xfe,0x49,0x0,0xc4,0x1, +0x50,0x2,0xd4,0x0,0x26,0xff,0x52,0x0,0x88,0x2,0x22,0x2, +0xfa,0xff,0x28,0xff,0xe8,0xff,0xef,0xff,0xdb,0xfe,0x92,0xfe, +0x16,0xff,0xc6,0xff,0xd5,0x0,0xef,0xff,0x7f,0xfd,0x35,0xff, +0x1a,0x3,0x29,0x1,0xdf,0xfc,0x2b,0xff,0xde,0x3,0xeb,0x1, +0x9d,0xfd,0x8c,0xff,0x63,0x3,0xbd,0x1,0xf4,0xfd,0x48,0xfd, +0xe6,0xfe,0x5,0x0,0x81,0xff,0x82,0xff,0x1e,0x1,0xa6,0x0, +0x3c,0xfe,0x91,0xff,0x46,0x4,0x14,0x5,0x0,0x0,0xfd,0xfc, +0xbb,0x0,0xbb,0x2,0xf8,0xfd,0x81,0xfc,0x80,0x2,0x6a,0x4, +0x99,0xfd,0x8a,0xf8,0x5,0xfb,0xed,0xfe,0x2a,0x0,0x2a,0x1, +0x24,0x3,0x34,0x4,0xce,0x2,0xd3,0x0,0x99,0x1,0xbd,0x2, +0x91,0xff,0x1c,0xfb,0x74,0xfb,0x75,0xff,0xe9,0x0,0x1,0xff, +0x62,0xff,0x8,0x2,0xc3,0x1,0x2d,0x0,0x8b,0x0,0xb1,0x0, +0x1e,0xff,0x36,0xfd,0x37,0xfe,0x5f,0x2,0x2b,0x3,0x88,0xff, +0x72,0xfe,0xb,0x1,0xb,0x2,0xe1,0xfd,0x1b,0xfa,0xe7,0xff, +0x3,0x7,0xe7,0x2,0x61,0xfd,0x7f,0xff,0x8a,0x0,0x1c,0xfd, +0x36,0xfc,0xd3,0x0,0xba,0x3,0xae,0xfe,0xb0,0xfb,0xa1,0x1, +0xdb,0x4,0x2f,0x1,0xd0,0xfd,0xb4,0xfc,0x8e,0xfe,0x0,0x1, +0x17,0x1,0x4d,0x3,0xb9,0x5,0x59,0x2,0xed,0xfc,0xc6,0xf9, +0x2f,0xfb,0x74,0x0,0x5c,0x2,0xb9,0x1,0xd0,0x2,0x8f,0x1, +0x49,0xff,0x27,0xff,0x31,0xff,0xa1,0x1,0x24,0x3,0x41,0xfe, +0x74,0xfb,0xed,0xfe,0x4b,0x1,0x9c,0x0,0xa,0x0,0x3f,0x2, +0x68,0x3,0x32,0xfe,0xd8,0xfb,0xf7,0x0,0x70,0x1,0xa7,0xfd, +0x80,0xfe,0x5a,0x0,0x94,0x0,0x8c,0x1,0x4,0x3,0xb7,0x3, +0xf2,0x0,0xb0,0xfd,0x73,0xff,0x57,0x1,0x47,0x0,0x9a,0xff, +0xfe,0xfd,0xf6,0xfc,0xc9,0xfe,0x8c,0xff,0x7a,0x0,0xc8,0x2, +0xbd,0x1,0x89,0xff,0x11,0x0,0xe5,0x0,0x8e,0x0,0x4b,0xff, +0xe9,0xfe,0x54,0x0,0xe3,0xff,0x81,0xfe,0x61,0xff,0xe8,0xff, +0xde,0x0,0x44,0x3,0xd7,0x1,0x51,0xfe,0xa7,0xfe,0x77,0x0, +0x97,0x0,0x62,0x0,0xac,0x0,0xa4,0xff,0x55,0xfc,0xbc,0xfb, +0x7b,0x0,0xd0,0x3,0xe4,0x2,0xb8,0x1,0xdb,0x0,0x23,0x0, +0xff,0xff,0x1a,0xff,0x57,0xff,0xb3,0x2,0x3a,0x5,0x31,0x3, +0x95,0xfe,0x36,0xfb,0x2a,0xf9,0x1a,0xf8,0x76,0xfb,0x36,0x1, +0xc8,0x1,0x8b,0xff,0x7d,0x1,0xb3,0x4,0x63,0x4,0x8d,0x2, +0x94,0x1,0x7c,0x0,0x84,0xff,0xfe,0x0,0x9c,0x2,0x62,0x0, +0xe,0xfe,0x17,0xff,0xca,0xff,0x4d,0xff,0x92,0xff,0x6d,0xff, +0x5c,0xff,0xe5,0x0,0x37,0x2,0x41,0x1,0x33,0xff,0x39,0xff, +0x8e,0x0,0xab,0xff,0x7c,0xfe,0x5a,0xff,0x8f,0x0,0xcf,0x2, +0x88,0x4,0x1b,0x1,0x88,0xfc,0xe0,0xfc,0x72,0xff,0x89,0x0, +0x4a,0x1,0x1c,0x3,0x19,0x3,0x60,0xff,0x94,0xfd,0xb2,0xff, +0x60,0x0,0x4,0x1,0xbd,0x3,0xe,0x3,0x93,0xff,0x4,0xff, +0xca,0xff,0x4b,0xfe,0x80,0xfc,0x37,0xfe,0x20,0x1,0x7a,0x0, +0xf8,0xff,0x75,0x2,0x84,0x2,0x91,0x0,0xb0,0x0,0x49,0x0, +0xaa,0xfe,0x81,0xfe,0x92,0xff,0x80,0x0,0x1f,0x0,0x85,0xff, +0xa0,0x0,0xb8,0x1,0x66,0x1,0xb3,0xff,0xb8,0xfd,0x73,0xff, +0x8f,0x2,0x1d,0x1,0xcb,0xff,0x66,0x2,0x58,0x2,0x3d,0xfe, +0x1e,0xfd,0x30,0x1,0xad,0x3,0x58,0x0,0xd1,0xfd,0x98,0xff, +0x10,0x0,0x64,0xff,0x75,0x0,0x99,0x0,0x52,0x0,0x73,0x1, +0x39,0x1,0xef,0xfe,0xd2,0xfd,0x3,0x0,0x51,0x2,0xa7,0x0, +0xb6,0xfe,0xa0,0xff,0xfc,0xff,0xab,0x0,0x5e,0x3,0xb0,0x3, +0x3,0x1,0x65,0xff,0xf2,0xff,0xa2,0x0,0x42,0xff,0xb6,0xfd, +0xf,0xff,0x7b,0x1,0x7b,0x2,0x9d,0x1,0x3c,0x0,0xd,0x1, +0x40,0x1,0xc9,0xfd,0x3,0xfd,0x19,0x1,0xf7,0x1,0x77,0xfe, +0x6,0xfe,0x46,0x1,0x31,0x1,0x64,0xfd,0x8f,0xfd,0xc2,0x1, +0x2c,0x3,0x11,0x2,0x15,0x1,0xc0,0xff,0x21,0x0,0x2e,0x2, +0x5f,0x1,0x5c,0xfe,0x4,0xfe,0x32,0x0,0x23,0x1,0xc0,0x0, +0x4a,0x1,0x89,0x1,0x8e,0x0,0x90,0x0,0x4e,0x0,0xdb,0xfd, +0x39,0xfd,0x47,0x0,0x82,0x2,0xa2,0x1,0xc8,0xff,0xf,0xff, +0xf7,0xff,0xb3,0x0,0xad,0xfe,0xa,0xfc,0xb6,0xfe,0x2b,0x5, +0xb4,0x5,0x45,0xff,0x27,0xfc,0x61,0xff,0x4f,0x1,0x63,0xff, +0xfb,0xfe,0x17,0x2,0x6b,0x4,0xd9,0x2,0xa8,0xff,0xa1,0xfe, +0xad,0xff,0x98,0xff,0x1,0xfe,0x22,0xfe,0x25,0x0,0x70,0x0, +0x1f,0xff,0xcc,0xff,0xc4,0x1,0x37,0x1,0xef,0xfe,0x1,0xff, +0x74,0x1,0xa7,0x2,0x8f,0x1,0x96,0x0,0xa5,0x0,0xc7,0xff, +0x21,0xfe,0xff,0xfe,0x2c,0x2,0xe4,0x2,0x91,0x0,0xf6,0xff, +0xa1,0x1,0x26,0x1,0x38,0xfe,0xd2,0xfc,0xd9,0xfd,0x4d,0xff, +0x68,0x0,0xe9,0x0,0x5f,0x0,0x93,0xff,0x9e,0xff,0xd3,0x0, +0xf1,0x2,0x98,0x3,0x62,0x0,0xa,0xfd,0xc5,0xfe,0x74,0x1, +0xe0,0xfe,0x12,0xfc,0x37,0xff,0x60,0x2,0x12,0x0,0xd6,0xfd, +0x1b,0xff,0xc6,0xff,0x72,0xff,0x6a,0x0,0x0,0x0,0x1a,0xfd, +0x21,0xfc,0x2c,0xfe,0xfd,0xff,0x25,0x0,0x5b,0xfe,0xfe,0xfb, +0x8c,0xfd,0x7,0x2,0xc3,0x1,0x8b,0xfd,0x27,0xfe,0xe0,0x1, +0x57,0x0,0x7d,0xfd,0xc,0x1,0x8b,0x4,0xf1,0xff,0x73,0xfa, +0x60,0xfc,0xb3,0x0,0x41,0x1,0x7f,0x0,0xe2,0x0,0xd6,0x0, +0xec,0xff,0xee,0xfe,0xa8,0xfe,0xed,0x0,0x96,0x4,0x52,0x4, +0x4b,0xff,0x58,0xfb,0xda,0xfb,0xaa,0xfe,0x36,0x1,0x17,0x2, +0xb6,0x0,0xf3,0xfe,0x9e,0xff,0x62,0x2,0x33,0x4,0xc6,0x3, +0x92,0x2,0x12,0x1,0x53,0xfe,0x3e,0xfc,0x8e,0xfd,0x16,0x0, +0xa6,0x0,0x48,0x0,0x64,0xff,0x8,0xfd,0x61,0xfc,0xf4,0xfe, +0x6f,0xff,0xa1,0xfc,0x86,0xfc,0x65,0xff,0x62,0x0,0x5f,0x0, +0xe9,0x1,0xce,0x2,0xe5,0x1,0x12,0x1,0x87,0x0,0xfd,0xff, +0xd6,0x0,0xff,0x2,0xc5,0x3,0x3b,0x1,0xb3,0xfd,0x8e,0xfd, +0x25,0x0,0xbc,0x0,0x60,0xff,0x3c,0xff,0x9c,0xff,0x4,0x0, +0xe8,0x1,0xe1,0x2,0x48,0x1,0x89,0x0,0x7,0x0,0x8a,0xfc, +0xb0,0xfa,0xbb,0xfd,0x4f,0xff,0x8e,0xfd,0x3b,0xfe,0x2d,0x1, +0x66,0x2,0x94,0x1,0x79,0xfe,0xa3,0xfb,0x2f,0xff,0x4f,0x5, +0x25,0x4,0x29,0xff,0xac,0xff,0xe2,0x2,0x5b,0x2,0x9e,0xff, +0x41,0xfe,0x5,0xff,0xc8,0x0,0x9c,0x1,0x9f,0x1,0x30,0x1, +0xfa,0xfe,0xc6,0xfd,0xab,0x0,0xa9,0x1,0x59,0xfd,0xe4,0xfb, +0x6d,0xff,0x47,0x0,0xcf,0xfe,0xfd,0xff,0x60,0x1,0x3e,0x1, +0x66,0x1,0x35,0x0,0x13,0xfe,0x3e,0xfe,0xa5,0xfe,0x86,0xfe, +0x90,0x1,0x0,0x4,0xa0,0x0,0xfb,0xfc,0x25,0xfd,0x93,0xfd, +0x41,0xff,0x4d,0x3,0x6f,0x3,0xe5,0xfe,0x11,0xfd,0xa0,0xff, +0x66,0x2,0xc6,0x2,0x87,0x0,0xe2,0xfe,0x39,0x0,0xd0,0x0, +0x2c,0xff,0x56,0xff,0xc3,0x0,0x5b,0x0,0x5a,0xff,0xc0,0xfd, +0xcb,0xfb,0x18,0xfe,0x67,0x2,0x11,0x1,0xe9,0xfd,0xbe,0xff, +0x58,0x1,0x54,0xff,0xb1,0xff,0x94,0x2,0x95,0x2,0x89,0x0, +0xca,0xff,0xa8,0x0,0x48,0x2,0xd2,0x2,0xcf,0x1,0x25,0x1, +0xea,0xff,0x8e,0xfd,0x94,0xfe,0xcf,0x2,0xf9,0x2,0xd6,0xfe, +0x8c,0xfd,0x3b,0x0,0xde,0x1,0xf,0x0,0x5f,0xfd,0x81,0xfd, +0xdc,0xff,0x25,0x1,0x9d,0x1,0x52,0x1,0xd6,0xfd,0x70,0xfb, +0xb,0x0,0xb2,0x4,0xa2,0x1,0xd2,0xfd,0xaa,0xff,0xef,0x1, +0x49,0x1,0xf4,0xff,0x62,0xfe,0x14,0xfe,0x1b,0x1,0x98,0x3, +0xa1,0x1,0x56,0xfe,0xcd,0xfd,0xb8,0xff,0x66,0x1,0x3,0x1, +0xf7,0xff,0xb,0x0,0xad,0xff,0x9a,0xfe,0x6b,0xff,0xbc,0x0, +0x9f,0xff,0xab,0xfe,0x55,0x0,0xc,0x2,0xb9,0x1,0xb6,0xff, +0xbd,0xfd,0xd0,0xfe,0xd5,0x1,0xf2,0x1,0x28,0x0,0x3,0x0, +0x5c,0xff,0x48,0xfe,0xb0,0x0,0x6a,0x2,0x85,0xfe,0x2a,0xfc, +0x42,0x0,0x4c,0x3,0x8d,0x1,0x9,0x0,0xf,0x0,0x9c,0xff, +0x7e,0xff,0x20,0x0,0xb1,0x0,0x25,0x1,0x63,0x0,0xec,0xfd, +0x6b,0xfc,0xc4,0xfd,0x7d,0x0,0xea,0x1,0xd0,0x0,0xcd,0xff, +0xd6,0x1,0xb0,0x3,0xb2,0x1,0x78,0xff,0x46,0x0,0x70,0x1, +0x3e,0x1,0xe5,0xff,0x44,0xfd,0x77,0xfc,0x8a,0xff,0xaa,0x1, +0x49,0x0,0xf,0xff,0x85,0xfe,0xf8,0xfd,0x4c,0x0,0xfa,0x2, +0x21,0x0,0x57,0xfc,0xe1,0xfe,0x3c,0x3,0xe,0x3,0x28,0x1, +0x1f,0x1,0x3b,0x1,0xa6,0xff,0x9e,0xfd,0xad,0xfd,0x8,0x0, +0x50,0x1,0x7e,0xff,0xd8,0xfc,0x13,0xfc,0xe0,0xfd,0x7,0x1, +0xab,0x2,0x51,0x2,0x95,0x2,0xb9,0x2,0x8,0x0,0x80,0xfd, +0xef,0xfe,0x2c,0x1,0x65,0x0,0x4d,0xfe,0x77,0xfd,0xf2,0xfd, +0xad,0xfe,0xc7,0xfe,0xfc,0xfe,0x5d,0x0,0x67,0x1,0xf1,0x0, +0xf0,0x0,0xec,0x1,0xdd,0x1,0x2b,0x1,0xbc,0x1,0x76,0x2, +0x8,0x1,0x82,0xfd,0x81,0xfa,0x47,0xfb,0xc3,0xff,0x31,0x3, +0x1a,0x2,0xa4,0xfe,0x84,0xfc,0x1d,0xfd,0xec,0xff,0x46,0x2, +0xb,0x1,0x9,0xfe,0xd7,0xfe,0x96,0x3,0x75,0x5,0x7e,0x1, +0x41,0xfd,0x54,0xfd,0x5a,0xff,0x9e,0x0,0xc8,0x1,0x2e,0x2, +0x7e,0x0,0x82,0xff,0x64,0x1,0xde,0x1,0xd0,0xfd,0x76,0xfa, +0xce,0xfc,0xcf,0x0,0xaa,0x0,0xf5,0xfd,0x85,0xfd,0x4,0x0, +0x1c,0x3,0xeb,0x4,0xff,0x3,0x45,0x0,0x8,0xfd,0x13,0xfe, +0x65,0x2,0x8e,0x4,0x16,0x1,0x5d,0xfb,0x7f,0xfa,0xf,0x0, +0xd2,0x4,0xe6,0x2,0x7b,0xff,0x5c,0x3,0x26,0xc,0xd1,0xd, +0x46,0x3,0xbf,0xf5,0x58,0xf1,0x7d,0xf7,0xd6,0xfe,0x5b,0xfe, +0xea,0xf7,0x8b,0xf6,0x84,0xff,0xb2,0x9,0xfd,0x9,0x61,0x2, +0xe1,0xfc,0x63,0xfd,0xb4,0xff,0x78,0xff,0x23,0xfd,0x93,0xfc, +0x92,0x0,0x86,0x6,0x59,0x7,0x86,0x0,0xfc,0xf9,0x0,0xfb, +0xa0,0xfe,0xcc,0xfe,0xe4,0xff,0x6,0x4,0x54,0x4,0x1d,0x1, +0xa5,0x2,0xe4,0x6,0x47,0x5,0x7c,0xff,0x7e,0xfc,0xf7,0xfc, +0x2d,0xfe,0x67,0xfe,0x93,0xfd,0xb3,0xfe,0x70,0x3,0xc8,0x6, +0xe0,0x3,0x9a,0xfe,0x50,0xfe,0xe8,0x2,0xd9,0x4,0x57,0x0, +0xfb,0xfa,0x75,0xfb,0x49,0x0,0x5,0x2,0x4d,0xfd,0x28,0xf9, +0xaf,0xfd,0x2c,0x5,0x8f,0x4,0x37,0xff,0xc4,0xfe,0x10,0x1, +0xbd,0x0,0x72,0xff,0x5e,0xfe,0xc1,0xfd,0x6a,0xff,0xc8,0xff, +0x67,0xfc,0x21,0xfd,0x53,0x3,0x73,0x3,0x54,0xfd,0x58,0xfd, +0xbf,0x2,0x99,0x2,0x78,0xfd,0xdc,0xfb,0x4c,0xff,0xbe,0x2, +0xae,0x2,0xb7,0x0,0x36,0x0,0x68,0x1,0x63,0x2,0x7f,0x1, +0x47,0xfe,0x2e,0xfc,0x0,0xff,0xe0,0x2,0x12,0x2,0xe7,0xfe, +0x1b,0xfe,0x11,0x0,0x41,0x3,0x4e,0x4,0x5f,0x0,0xbf,0xfb, +0x3d,0xfc,0xe,0x0,0xb6,0x2,0xd9,0x2,0xe5,0x0,0x3e,0xff, +0xf5,0xff,0x72,0x1,0x55,0x2,0x14,0x2,0xa9,0xfe,0x1b,0xfb, +0xef,0xfd,0xb0,0x3,0xf3,0x3,0xf,0x0,0x6b,0xfd,0x86,0xfd, +0x3a,0x1,0xb9,0x4,0xc1,0x0,0xc,0xfa,0x0,0xfc,0xbc,0x3, +0x6,0x6,0xd2,0x1,0x89,0xfd,0xd4,0xfc,0x12,0xff,0x9d,0x1, +0xea,0x2,0x6f,0x2,0x5b,0xff,0xd1,0xfc,0x5a,0xff,0x2b,0x3, +0xe9,0x1,0x30,0xfe,0x62,0xfd,0x8c,0xff,0x4d,0x2,0xd5,0x2, +0x3d,0x0,0x27,0xfe,0x2,0xff,0xc2,0x0,0x38,0x1,0x26,0xff, +0x4b,0xfc,0xc1,0xfd,0xa,0x2,0x69,0x2,0x6e,0x0,0x11,0x0, +0xf4,0xfe,0xf1,0xfe,0x27,0x3,0x8,0x4,0x49,0xfe,0xb0,0xfb, +0x76,0xff,0x1,0x3,0x56,0x3,0xc,0x0,0x81,0xfb,0x92,0xfc, +0x24,0x2,0xda,0x3,0x5c,0x1,0x74,0xfe,0x5b,0xfc,0xa5,0xfe, +0xd2,0x3,0x3b,0x2,0x36,0xfb,0x49,0xfb,0xa9,0x2,0x1a,0x5, +0xe9,0xff,0xe9,0xfd,0xdd,0x2,0xf0,0x2,0xf,0xfc,0x4e,0xfe, +0xfa,0x6,0xf9,0x0,0xdc,0xf5,0x50,0xfd,0xe7,0x7,0xc8,0x0, +0xbc,0xf9,0x38,0xff,0xcb,0x0,0x85,0xfd,0xd2,0x3,0x1,0xa, +0x25,0xff,0xc0,0xf1,0x19,0xfb,0x5d,0xf,0xb8,0xa,0xce,0xf2, +0x56,0xf3,0xe3,0xa,0x27,0xb,0x30,0xf5,0x6b,0xf4,0x78,0x7, +0x60,0xb,0x27,0x0,0xe9,0xfb,0x51,0xff,0xe2,0xff,0x32,0xff, +0x68,0x2,0xe8,0x2,0x7b,0xfb,0x39,0xfa,0xa4,0x5,0xb5,0x6, +0x23,0xf8,0xe9,0xf8,0x1c,0x9,0x81,0x4,0xb,0xf2,0xa5,0xf8, +0xd1,0xd,0xb9,0xa,0x6,0xf7,0x70,0xf6,0x20,0x7,0xdc,0x8, +0x88,0xf9,0x43,0xf8,0x53,0x7,0xe5,0x7,0x68,0xfb,0x1c,0xfd, +0xfa,0x3,0xdd,0xfc,0xa8,0xfa,0x15,0x7,0x79,0x6,0x6f,0xf5, +0xb0,0xf4,0x1a,0x7,0x39,0xb,0x20,0xfa,0x54,0xf4,0xdc,0x5, +0x76,0xd,0x37,0xfb,0x11,0xf2,0x74,0x2,0x69,0xa,0x3b,0xfe, +0x61,0xfa,0x3e,0x1,0x3c,0xff,0xd1,0xfc,0xc9,0x4,0xcc,0x5, +0x4b,0xfa,0xbb,0xf8,0xec,0x5,0x72,0x8,0xbc,0xf8,0x2,0xf4, +0x4e,0x6,0x24,0xd,0x55,0xf9,0xb4,0xf2,0x6,0x8,0x90,0xe, +0x4e,0xfb,0xc2,0xf6,0xd9,0x5,0xa2,0x6,0x4,0xfa,0x60,0xfa, +0x29,0x4,0x61,0x3,0x2a,0xfc,0x84,0xfe,0xb3,0x3,0xa0,0xfc, +0xaa,0xf7,0x48,0x5,0x89,0xb,0xdd,0xf8,0xcf,0xf2,0x96,0x9, +0x37,0x10,0x93,0xf9,0x15,0xf3,0xbe,0x6,0xa4,0xc,0xe4,0xfb, +0x61,0xf4,0xf7,0xff,0x2b,0x6,0x3a,0xfd,0x7c,0xf9,0x19,0x1, +0x8,0x1,0x32,0xfb,0x24,0x2,0x61,0x8,0x6b,0xfb,0x6,0xf4, +0xe3,0x4,0x22,0xe,0x49,0xfd,0x8b,0xf4,0x2d,0x5,0x3d,0xd, +0xe2,0xfc,0xee,0xf4,0x34,0x4,0xcd,0xb,0xa2,0xfd,0xfe,0xf4, +0x42,0xfe,0xc6,0x3,0x7f,0xfe,0xd5,0xff,0x79,0x6,0xce,0x0, +0xd4,0xf6,0xff,0xfb,0x2b,0x5,0x1e,0x0,0x47,0xfa,0xeb,0x1, +0x95,0x6,0x88,0xfd,0x40,0xfa,0x1d,0x6,0xb1,0xa,0x49,0xfd, +0x8f,0xf6,0xb1,0x2,0x76,0x7,0x2,0xfa,0xd5,0xf5,0x55,0x2, +0x9c,0x5,0x19,0xfd,0x85,0xfc,0xdc,0x0,0xf3,0xfe,0x5,0xff, +0x31,0x5,0x4a,0x4,0xb9,0xf9,0x97,0xf7,0x9e,0x5,0x54,0xd, +0x51,0xfe,0x2a,0xf2,0x69,0x0,0x12,0xe,0x43,0x1,0x2a,0xf4, +0xdd,0xfd,0x15,0x7,0xf0,0xfe,0x14,0xf9,0x8e,0xff,0x6,0x2, +0xec,0xfc,0x27,0xff,0xdd,0x6,0xf2,0x3,0x2d,0xfb,0x32,0xfe, +0xee,0x6,0x24,0x3,0xe5,0xf9,0x6b,0xfd,0x34,0x5,0x66,0xff, +0xec,0xf7,0x50,0x1,0xe4,0xa,0xa6,0xff,0x7d,0xf3,0xaf,0xfd, +0x8f,0xa,0xf5,0x2,0x88,0xf7,0x7b,0xfc,0xfd,0x4,0xeb,0x1, +0x89,0xfd,0x8e,0x0,0xe9,0x0,0x75,0xfd,0x35,0x2,0xfe,0x7, +0x54,0xff,0xd6,0xf5,0xc,0xfe,0xc,0x8,0x8c,0x0,0xbd,0xf6, +0x46,0xfe,0xab,0x9,0x5f,0x2,0x3a,0xf4,0xb8,0xfa,0x94,0xa, +0xc6,0x4,0x8f,0xf5,0x1b,0xfb,0xec,0x7,0x3b,0x4,0x26,0xfd, +0xd,0x0,0xb5,0x1,0xfc,0xfe,0xd0,0x0,0x3d,0x3,0xe1,0xfd, +0xc2,0xf8,0x25,0x0,0x82,0xa,0x8e,0x3,0xf9,0xf3,0x43,0xf8, +0x38,0xa,0x1d,0x9,0xa7,0xf7,0x31,0xf5,0xdb,0x2,0x8a,0x7, +0xb5,0xff,0x41,0xfc,0x87,0xff,0x57,0xff,0x29,0xfe,0xc3,0x2, +0xf0,0x4,0x32,0xff,0x2,0xfd,0x2f,0x1,0x7a,0xff,0x49,0xfa, +0xe0,0xfe,0x3a,0x6,0x4c,0x1,0xf3,0xf8,0xf2,0xfd,0xbf,0x7, +0xd6,0x3,0x37,0xf9,0x10,0xfc,0x93,0x7,0x1c,0x6,0x64,0xf9, +0x5d,0xf7,0xf9,0x1,0xe6,0x5,0xaf,0xff,0x38,0xfd,0x43,0xff, +0xcf,0xfe,0x68,0x1,0x8,0x7,0xa4,0x2,0x78,0xf9,0x73,0xfd, +0xbe,0x6,0x96,0x2,0x8a,0xf8,0x78,0xfa,0xc2,0x4,0x10,0x6, +0x6c,0xfb,0x8e,0xf6,0x93,0x0,0x13,0x8,0xdd,0x1,0xd4,0xfc, +0x98,0x0,0x21,0x2,0x90,0xff,0x5b,0xff,0x98,0xff,0xe8,0xfe, +0x85,0x0,0x5d,0x1,0x5,0xfd,0x32,0xf9,0x27,0xfe,0x8f,0x6, +0x9c,0x4,0xa0,0xfb,0x4c,0xfd,0x1c,0x7,0x1f,0x6,0x7d,0xfc, +0xcc,0xfa,0x1f,0x0,0x42,0x1,0xbe,0xfd,0x6f,0xfc,0xe0,0xff, +0x2c,0x3,0x38,0x2,0xce,0x0,0xc2,0x0,0x8f,0xfe,0xeb,0xfd, +0xc8,0x1,0xef,0xff,0x59,0xf7,0x81,0xf8,0x6d,0x3,0x9f,0x4, +0xf4,0xfb,0xee,0xfb,0x8e,0x4,0x98,0x5,0x7a,0xfe,0xf5,0xfc, +0x5c,0x3,0xd7,0x6,0xd0,0x2,0xcf,0xfe,0xae,0x0,0xfd,0x2, +0xba,0xff,0x7c,0xfb,0xa,0xfb,0xf,0xfb,0x57,0xfb,0x51,0xfe, +0x75,0xfe,0x90,0xfb,0xc3,0x0,0x84,0xa,0xbb,0x7,0x2c,0xfc, +0x33,0xfb,0x41,0x4,0x15,0x6,0x6b,0xfd,0x54,0xf8,0x62,0xfd, +0x34,0x2,0x8f,0x0,0x9c,0xff,0xe1,0x0,0xd7,0xfe,0x32,0xfd, +0xbd,0xff,0x9f,0xff,0x9b,0xfb,0x70,0xfc,0xee,0x2,0x61,0x5, +0x9,0x0,0x6d,0xfd,0xde,0x4,0x6b,0x8,0xfa,0xfd,0x58,0xf8, +0xe2,0x1,0x9a,0x4,0x8f,0xf9,0xa8,0xf7,0xac,0x2,0x85,0x6, +0x81,0xff,0xfb,0xfa,0x6d,0xfe,0xe1,0x3,0x99,0x4,0x22,0x1, +0xb6,0xfd,0x9,0xfb,0x9a,0xfb,0xfb,0x1,0x78,0x4,0x58,0xfc, +0x19,0xf9,0x72,0x4,0xf4,0xa,0xf4,0xff,0x12,0xf7,0xdf,0xfe, +0x35,0x7,0xf1,0x2,0x1a,0xfe,0xb7,0x0,0x9d,0x0,0xf0,0xfb, +0x9a,0xfd,0x97,0x3,0x12,0x2,0x24,0xfc,0xd2,0xfc,0xa1,0x0, +0xbf,0xfe,0x6,0xfd,0xb9,0x2,0x67,0x5,0x94,0xfd,0xac,0xfa, +0x41,0x5,0x82,0x9,0x8b,0xfc,0x83,0xf4,0xbf,0xff,0x7f,0x8, +0xa5,0xfd,0x18,0xf4,0xdd,0xfe,0x50,0xa,0xf8,0x3,0x3e,0xfc, +0x47,0xff,0x7c,0x0,0x2c,0xfe,0xc5,0x1,0x3a,0x3,0x9d,0xfb, +0xf6,0xf8,0xc,0x2,0xf6,0x7,0x2c,0x1,0x6f,0xfa,0x9a,0x1, +0x8a,0xa,0x29,0x2,0x59,0xf6,0x66,0xfd,0xea,0x6,0x4a,0xfe, +0x2f,0xf6,0x71,0xfe,0x29,0x5,0x75,0x0,0x12,0xfe,0x7e,0x1, +0x47,0x1,0xa1,0xff,0x1,0x4,0x78,0x6,0xfa,0xfd,0x70,0xf8, +0xef,0x2,0x61,0xa,0xd4,0xfd,0xd1,0xf3,0xdd,0xff,0x8,0xb, +0xad,0x0,0xf3,0xf4,0x1f,0xfc,0x5,0x6,0x82,0x0,0xcd,0xf9, +0xef,0x0,0x82,0x6,0xbb,0xfe,0x33,0xfb,0x8a,0x3,0xa7,0x4, +0x51,0xfc,0xaf,0xfd,0xd3,0x4,0xce,0xff,0x25,0xf9,0xaa,0x1, +0xf9,0x8,0xa7,0xfe,0xfa,0xf6,0x31,0x2,0x77,0xa,0x34,0xff, +0x1f,0xf5,0xb8,0xfd,0xb5,0x7,0xea,0x0,0x42,0xf7,0x2f,0xfd, +0x8,0x7,0x68,0x4,0xd0,0xff,0xf7,0x1,0xe4,0xfe,0xc8,0xf9, +0xe4,0x1,0x48,0x8,0x86,0xfb,0x76,0xf3,0xbb,0x2,0x96,0xd, +0x99,0xff,0xc5,0xf2,0xd3,0xfd,0x7e,0xb,0x94,0x3,0x37,0xf7, +0x6c,0xfd,0x95,0x6,0x96,0x0,0xe8,0xfb,0xef,0x2,0x88,0x3, +0x10,0xfb,0xa9,0xfc,0x8c,0x5,0x49,0x2,0xa9,0xf8,0x89,0xfd, +0x6c,0x9,0x2f,0x4,0x9,0xf7,0x36,0xfd,0x42,0xa,0x68,0x2, +0x84,0xf6,0x2f,0xff,0xa5,0x7,0x49,0xfd,0x3b,0xf7,0xcf,0x2, +0x83,0x9,0x87,0x0,0x70,0xfa,0x57,0x0,0xe5,0x3,0xb2,0xfe, +0x3d,0xfd,0x8a,0x1,0x6a,0xfe,0x87,0xf8,0x57,0x0,0xcf,0x9, +0x8e,0xff,0x59,0xf3,0x6,0xff,0xa7,0xd,0x65,0x3,0x2,0xf6, +0x68,0xff,0xc8,0x9,0x62,0x0,0xeb,0xf8,0xd7,0x1,0x5b,0x6, +0xd9,0xfd,0x7e,0xfb,0x15,0x3,0x61,0x2,0x7b,0xf9,0x1f,0xfc, +0x47,0x7,0xef,0x3,0xdc,0xf7,0xf2,0xfc,0xd1,0x9,0x40,0x3, +0x31,0xf6,0x94,0xfd,0xdb,0xa,0x94,0x4,0x34,0xf8,0xaa,0xfc, +0x46,0x6,0x68,0x1,0x21,0xfa,0x47,0x0,0xf4,0x4,0xc9,0xfd, +0x4b,0xfd,0xb6,0x5,0x4e,0x1,0x98,0xf6,0x18,0xfd,0x23,0x9, +0xa3,0x3,0xdc,0xf7,0xd4,0xfa,0x74,0x5,0xff,0x4,0xe9,0xfc, +0x4c,0xfe,0x82,0x4,0xd8,0xfe,0x6,0xf8,0xd4,0x0,0x88,0x7, +0x4c,0xfd,0xb0,0xf8,0xea,0x3,0xa7,0x6,0xf8,0xfb,0x3d,0xfb, +0x7,0x5,0x40,0x4,0xdd,0xfb,0x32,0xff,0x9e,0x7,0x6e,0x1, +0xca,0xf6,0xc9,0xfd,0x93,0xa,0x9c,0x4,0x7c,0xf6,0x1a,0xf9, +0x65,0x5,0x89,0x5,0x68,0xfd,0xb1,0xfc,0x93,0xff,0xd7,0xfd, +0x65,0xff,0x19,0x6,0x92,0x3,0x86,0xf9,0xa7,0xfb,0xbc,0x6, +0x3f,0x4,0x1e,0xf8,0x4,0xfa,0xf3,0x5,0xd9,0x4,0xfd,0xfa, +0xe9,0xfc,0xf8,0x4,0x3d,0x3,0x4a,0xff,0x7f,0x2,0xd9,0x2, +0xde,0xfc,0x40,0xfc,0xd9,0x1,0x3c,0x2,0x83,0xfc,0xf2,0xfb, +0x94,0x2,0xf0,0x2,0xc0,0xfa,0x13,0xfc,0xa5,0x6,0x64,0x3, +0xb3,0xf7,0x77,0xfd,0xde,0x9,0x8f,0x3,0x92,0xf7,0x90,0xfb, +0xdb,0x4,0x56,0x3,0x4d,0xfd,0xb8,0xfd,0x2f,0x1,0x3d,0x0, +0xeb,0xfe,0x33,0x2,0x65,0x2,0x10,0xfd,0xde,0xfd,0xba,0x3, +0x87,0x0,0x6f,0xf9,0x5,0xfe,0xa6,0x6,0x39,0x2,0xfe,0xf7, +0xf4,0xfa,0x51,0x6,0xdc,0x5,0xf5,0xfb,0x89,0xfb,0x83,0x2, +0xa3,0x2,0x38,0x0,0x3e,0x2,0x77,0x0,0x2c,0xfb,0x7a,0xfe, +0x5c,0x5,0xa5,0x1,0x94,0xfa,0xf0,0xfe,0xaa,0x6,0x2,0x2, +0x65,0xf8,0x3e,0xfb,0x56,0x5,0x2b,0x4,0x77,0xfa,0xde,0xfa, +0x1b,0x4,0x45,0x4,0x69,0xfd,0xa9,0xff,0xc2,0x4,0x22,0xfe, +0x9a,0xf7,0xb8,0xfe,0x9c,0x5,0x6d,0x2,0x2e,0x1,0x67,0x4, +0xd6,0x1,0x83,0xfc,0x7,0xfe,0xda,0x2,0x6,0x2,0x6,0xfd, +0xf0,0xfc,0xe7,0x0,0xf4,0xfd,0xd6,0xf7,0xdd,0xfd,0x1e,0x9, +0x4a,0x6,0x73,0xfb,0x9a,0xfa,0xed,0x0,0x63,0x2,0xd2,0xff, +0xdb,0xff,0xbd,0x1,0xb2,0x1,0xea,0x1,0x26,0x3,0xcd,0xfe, +0x88,0xf8,0xb7,0xfd,0x8c,0x6,0x39,0x0,0xfe,0xf4,0xf2,0xf9, +0xa0,0x6,0xd3,0x7,0x5e,0x0,0x39,0xfe,0x78,0x3,0xb2,0x5, +0x1c,0x0,0x3,0xfc,0xd7,0xfd,0x9f,0xfd,0xd3,0xfc,0x2b,0x3, +0xc6,0x6,0xe4,0xfd,0x31,0xf7,0x77,0xfe,0x11,0x6,0xad,0x2, +0x76,0xfd,0x63,0xfe,0xa6,0x0,0xe,0x1,0x23,0x2,0x97,0x2, +0xc2,0xff,0xbc,0xfd,0x11,0x1,0xf9,0x4,0x5e,0x1,0x34,0xf9, +0xc4,0xf8,0x16,0x1,0x25,0x4,0x35,0xfe,0x5b,0xfc,0x7e,0x2, +0x91,0x6,0xb,0x5,0xb5,0x1,0x4,0xfe,0xc3,0xfc,0x28,0x0, +0x5c,0x2,0xb3,0xfd,0x19,0xf8,0x87,0xfb,0xad,0x4,0x82,0x5, +0x87,0xfd,0x9c,0xfb,0xd6,0x1,0x69,0x3,0xa7,0xfe,0x9c,0xfc, +0x47,0xff,0x17,0x2,0xb3,0x1,0xd9,0xff,0xf3,0x0,0x66,0x2, +0xf,0x0,0x7e,0xff,0x7f,0x1,0xe4,0xfd,0x17,0xfa,0xd4,0xff, +0x11,0x5,0xc1,0x0,0x8c,0xfc,0x79,0xfe,0xa6,0x1,0x72,0x3, +0x5c,0x2,0x5f,0xfe,0xbb,0xfc,0xf5,0xfe,0x20,0x1,0xa2,0x1, +0x99,0xff,0x62,0xfc,0x80,0xfe,0xe,0x5,0x38,0x5,0x99,0xfd, +0x9f,0xf9,0x76,0xfe,0x67,0x4,0x94,0x3,0x9a,0xfd,0xf3,0xf9, +0x6f,0xfd,0x36,0x5,0x1,0x8,0xd6,0x0,0x6,0xf9,0x26,0xfc, +0x68,0x4,0xfa,0x3,0x3a,0xfc,0xa8,0xf9,0x32,0xff,0x3f,0x4, +0xec,0x2,0x67,0xfe,0xcc,0xfc,0xfa,0xff,0x25,0x4,0xff,0x3, +0x2c,0xff,0x2f,0xfb,0xd3,0xfc,0xb4,0x2,0xb8,0x5,0xff,0x0, +0x9a,0xfb,0x18,0xff,0xd,0x5,0x98,0x2,0xae,0xfc,0xde,0xfa, +0x9,0xfb,0x8d,0xfd,0xa7,0x2,0xde,0x2,0xc3,0xfe,0x74,0xff, +0x3b,0x3,0x19,0x3,0xfb,0xff,0x36,0xfd,0xcc,0xfd,0x68,0x2, +0xfd,0x3,0x97,0xff,0x4,0xfd,0xdd,0xfe,0xcf,0x0,0x4f,0x2, +0xa6,0x1,0x2c,0xfd,0x43,0xfc,0x66,0x2,0x4a,0x5,0x40,0xff, +0xf8,0xf9,0x31,0xfe,0x7c,0x5,0xa4,0x4,0x69,0xfe,0x77,0xfd, +0x68,0x0,0x1d,0x0,0x24,0xff,0xb4,0xff,0x96,0xfd,0x9c,0xfb, +0x54,0x0,0xc7,0x6,0x68,0x5,0xe6,0xfd,0x15,0xfb,0x16,0x1, +0xb2,0x5,0x66,0x0,0x4b,0xfa,0x79,0xfd,0x92,0x2,0x5b,0x1, +0xf4,0xfe,0x9b,0xfe,0xff,0xfc,0x9b,0xfd,0x79,0x3,0x28,0x5, +0x55,0xfe,0x3a,0xfb,0x5d,0x1,0x43,0x5,0xdf,0x0,0x28,0xfc, +0xa1,0xfd,0x9f,0x2,0x67,0x4,0x8d,0x0,0xbb,0xfc,0x3e,0xfd, +0x5c,0xff,0x95,0x1,0xb9,0x2,0xed,0xfe,0xaf,0xfb,0x6a,0x1, +0x78,0x6,0xeb,0xff,0x8a,0xf9,0xfe,0xfe,0xd8,0x5,0xdc,0x2, +0x9c,0xfc,0x54,0xfd,0xa3,0x1,0x91,0x0,0xc6,0xfd,0x41,0x1, +0x86,0x4,0xea,0x0,0x45,0xff,0xee,0x2,0xb1,0x1,0x9e,0xfb, +0x98,0xfb,0xad,0x1,0xca,0x3,0x78,0xfe,0x47,0xfa,0xa3,0xfe, +0x69,0x4,0x58,0x3,0x38,0x1,0x2c,0x1,0x4e,0xfd,0x19,0xfb, +0x24,0x2,0x64,0x6,0xe0,0xfe,0x26,0xf9,0xa0,0xfe,0x34,0x5, +0x78,0x3,0x1d,0xfd,0xdf,0xfa,0x1a,0xff,0x1,0x3,0x77,0x1, +0xc,0xfe,0xa0,0xfc,0x16,0xfe,0x20,0x3,0x32,0x6,0x4,0x0, +0xf1,0xf8,0x45,0xfe,0x82,0x7,0x39,0x4,0x1c,0xfb,0x33,0xfc, +0x56,0x3,0xca,0x3,0x69,0xff,0x32,0xfe,0x37,0xff,0xbf,0xfe, +0x75,0xfe,0x2,0x0,0x34,0x0,0xd9,0xfd,0xf6,0xfd,0xe1,0x1, +0x17,0x3,0x2,0x0,0x3d,0xff,0x3,0x2,0x6b,0x2,0x3c,0xff, +0x9d,0xfd,0xe1,0xff,0x7c,0x1,0x38,0xff,0x2b,0xfe,0x15,0x1, +0x8b,0x1,0x16,0xff,0x8a,0x0,0x77,0x2,0x46,0xff,0xf7,0xfd, +0x6f,0x1,0xce,0x1,0x4b,0xff,0x49,0xff,0x87,0xff,0x27,0xff, +0xce,0x0,0x57,0x1,0xa8,0xfe,0x5f,0xfd,0xa8,0xff,0xc3,0x2, +0xf5,0x2,0x63,0xfe,0x85,0xfa,0x6b,0xfe,0xf1,0x4,0x21,0x4, +0x68,0xfe,0xbc,0xfc,0xca,0xff,0x42,0x2,0xee,0x1,0xed,0xff, +0xff,0xfd,0xb2,0xfe,0x38,0x2,0x49,0x3,0x0,0xff,0x98,0xfb, +0x2e,0xfe,0x3,0x2,0xb3,0x1,0x22,0xff,0x8,0xfe,0x23,0xff, +0x5c,0x1,0x73,0x2,0x79,0x0,0xa4,0xfd,0xb6,0xfe,0xb2,0x2, +0x3,0x3,0x49,0xff,0x6d,0xfe,0xd6,0x1,0x7e,0x3,0x8c,0x0, +0xff,0xfc,0x71,0xfd,0x2,0x0,0x76,0xff,0xea,0xfd,0xf4,0xff, +0xe,0x1,0xfc,0xfe,0x2,0x1,0x90,0x5,0xf2,0x3,0xac,0x0, +0xcb,0x2,0x43,0x4,0xbd,0x0,0xa9,0xfd,0xf0,0xfe,0x3c,0x2, +0x6e,0x1,0x10,0xfb,0xf3,0xf7,0x48,0xfb,0xd0,0xfb,0xfc,0xf8, +0xd4,0xfa,0x21,0xfe,0xf1,0xfd,0x32,0x0,0x4d,0x6,0x77,0x8, +0xc2,0x4,0x26,0x1,0xa0,0x1,0x92,0x3,0xc7,0x2,0xd2,0x0, +0x74,0x0,0x86,0xff,0xc7,0xfe,0xa0,0x1,0x7b,0x3,0xd3,0xff, +0xf7,0xfc,0x97,0xff,0xf4,0x1,0xa7,0xfe,0xe,0xf9,0xbd,0xf8, +0x48,0xfe,0x58,0x1,0x8e,0xff,0xf6,0xff,0xc1,0x2,0x6e,0x2, +0xeb,0x1,0x2,0x4,0x84,0x2,0x9a,0xfd,0x8b,0xfe,0x4,0x4, +0x6a,0x3,0x10,0xfe,0x24,0xfe,0x63,0x2,0x91,0x1,0x94,0xfc, +0xd0,0xfb,0x2,0x0,0x3b,0x2,0xe3,0xff,0xa6,0xfe,0xc1,0x1, +0xff,0x2,0xb0,0xff,0x7f,0xff,0xfd,0x2,0x47,0x1,0x82,0xfc, +0x44,0xfd,0x9,0x0,0x9a,0xff,0x63,0x0,0xb0,0x3,0x3c,0x4, +0x58,0x1,0x34,0xff,0x65,0xff,0x10,0xff,0x85,0xfc,0xcb,0xfb, +0x72,0xfe,0xbc,0xfe,0x5c,0xfc,0x37,0xfe,0x41,0x3,0x84,0x4, +0x18,0x2,0x6b,0x0,0xb3,0x0,0xf9,0x0,0xd1,0xff,0x2c,0xff, +0xc4,0xff,0x20,0xff,0x9b,0xff,0x6a,0x3,0xe,0x3,0x45,0xfd, +0xd3,0xfd,0xd6,0x4,0x5e,0x5,0x35,0xff,0x61,0xfc,0x7e,0xfe, +0xc7,0x0,0x25,0x0,0x4,0xfd,0x3e,0xfb,0x9f,0xfc,0xee,0xfe, +0x56,0x1,0x27,0x3,0xb9,0x1,0xfe,0xfe,0x42,0x0,0xab,0x3, +0xf9,0x2,0xb9,0xff,0x15,0x0,0x24,0x2,0x7b,0x0,0x29,0xfe, +0x3d,0xff,0x27,0x0,0x87,0xff,0xcf,0xff,0x50,0xfe,0xb7,0xfa, +0xb8,0xfb,0xa8,0x0,0xb6,0x1,0xd4,0xfe,0x61,0xfd,0xd1,0xfe, +0x39,0x1,0x19,0x2,0x82,0x1,0xea,0x1,0xea,0x2,0x13,0x3, +0x71,0x3,0x34,0x3,0xb9,0x0,0x66,0xfe,0xb0,0xfe,0x45,0x0, +0xcd,0xff,0x4b,0xfc,0x72,0xfb,0x46,0x0,0x26,0x2,0xea,0xfd, +0x62,0xfd,0x75,0x1,0x11,0x2,0x84,0x0,0xcf,0xff,0x18,0xfe, +0x75,0xfe,0x5,0x2,0xa2,0x2,0x8,0x0,0x37,0xfe,0x81,0xfd, +0xac,0xff,0x9d,0x3,0x6c,0x2,0xae,0xfd,0x6f,0xfd,0xfa,0x0, +0xf1,0x2,0x55,0x1,0x79,0xfd,0xf3,0xfc,0x5e,0x1,0xea,0x2, +0xbf,0xfe,0xe7,0xfb,0x3,0xfe,0x30,0x2,0x1a,0x4,0xb4,0x1, +0x78,0xff,0x70,0x1,0xf4,0x2,0x5b,0x0,0x1a,0xfd,0x15,0xfc, +0x29,0xfe,0x37,0x2,0xeb,0x2,0x9b,0xfe,0x23,0xfb,0x8e,0xfc, +0xb5,0x0,0x2d,0x2,0x11,0xfe,0xa3,0xfa,0x54,0xfe,0xd7,0x2, +0x13,0x1,0xf3,0xfd,0xf8,0xfe,0x29,0x2,0x37,0x4,0x25,0x3, +0xac,0xff,0x1c,0xfe,0x1c,0x0,0x48,0x2,0xc5,0x1,0xd6,0xfe, +0x24,0xfc,0xdf,0xfc,0xa4,0x0,0xc9,0x2,0x57,0x0,0x29,0xfd, +0xb9,0xfe,0x55,0x2,0xd5,0x1,0x64,0xff,0x57,0xff,0x9c,0xff, +0x91,0xff,0xc6,0x0,0xf3,0xff,0x66,0xfd,0x98,0xff,0x8f,0x4, +0x4c,0x4,0xbe,0xff,0xf0,0xfc,0xec,0xfd,0x23,0x1,0xe0,0x1, +0x45,0xfd,0x24,0xf9,0xd4,0xfb,0x95,0x1,0xc6,0x2,0xe3,0xfe, +0x3f,0xfc,0x82,0xff,0x86,0x5,0xb3,0x6,0xd3,0x0,0x6c,0xfb, +0x35,0xfe,0x28,0x4,0xb4,0x2,0x87,0xfc,0xde,0xfb,0x81,0xff, +0x9f,0x0,0xd0,0xff,0xb4,0xfe,0xc9,0xfc,0x9b,0xfd,0x73,0x2, +0x42,0x4,0x16,0xff,0x44,0xfa,0x1c,0xfe,0x17,0x7,0xc,0x9, +0x7b,0x0,0x1f,0xf9,0x69,0xfc,0x38,0x3,0xcc,0x2,0xd4,0xfd, +0x18,0xfd,0x0,0x0,0xef,0x0,0x41,0x0,0x9f,0xff,0x94,0xfd, +0xb3,0xfc,0xa8,0x0,0x9d,0x4,0x9b,0x2,0xd0,0xfd,0xcd,0xfc, +0xd7,0x0,0x39,0x4,0xcf,0x0,0xd2,0xfa,0x7c,0xfb,0xa5,0x0, +0xc8,0x1,0x31,0xff,0xa,0xfe,0xcb,0xff,0xee,0x2,0xbc,0x3, +0x81,0x0,0xfe,0xfd,0x0,0x0,0x1e,0x3,0x9e,0x2,0x74,0xfe, +0x14,0xfb,0x59,0xfc,0xbe,0xff,0x9a,0x0,0x7c,0xff,0xc7,0xfe, +0xe5,0xfe,0x23,0x0,0x9d,0x1,0x5c,0x1,0xc9,0xff,0x33,0xff, +0xa8,0x1,0x9a,0x5,0x35,0x4,0xe8,0xfc,0xd1,0xfa,0x41,0x1, +0x9f,0x4,0x46,0x0,0x78,0xfc,0x60,0xfd,0x9f,0xff,0x95,0x0, +0xff,0xff,0xfa,0xfe,0xb0,0xfe,0x33,0xff,0xe0,0x0,0x7a,0x2, +0x86,0x0,0x92,0xfc,0xff,0xfc,0xaa,0x1,0xa2,0x3,0xc5,0x0, +0x1b,0xfe,0x38,0xff,0xd9,0x1,0x2c,0x2,0x67,0xff,0x7,0xfc, +0x5d,0xfc,0x84,0x1,0xa2,0x4,0xc,0x0,0xb7,0xfa,0x5b,0xfd, +0x80,0x3,0x6c,0x4,0x10,0x1,0x52,0xff,0x39,0x0,0xf5,0x0, +0x10,0x1,0xb6,0x1,0xc3,0x0,0x42,0xfd,0x2a,0xfd,0x6e,0x2, +0xdd,0x3,0xe5,0xfd,0xcd,0xfa,0x4,0x0,0xd9,0x4,0x13,0x2, +0xc3,0xfc,0x23,0xfd,0x46,0x2,0x63,0x4,0x9,0x1,0xc0,0xfd, +0xf9,0xfe,0xb6,0x2,0x73,0x3,0xdf,0xfe,0x4e,0xfa,0xd4,0xfb, +0x43,0x0,0x53,0x0,0xe4,0xfb,0xfd,0xf8,0x85,0xfb,0xc9,0x0, +0xff,0x2,0x3b,0x1,0xee,0xfe,0xef,0xfd,0x93,0x0,0x83,0x7, +0x90,0x9,0xdf,0x0,0x57,0xfa,0xf9,0xff,0x7f,0x5,0x63,0x0, +0x42,0xfa,0xc5,0xfc,0xf9,0x2,0x86,0x4,0x79,0x0,0x87,0xfc, +0x5a,0xfd,0x49,0x0,0xe2,0x0,0xfd,0xff,0x61,0xff,0xe4,0xfe, +0xec,0xff,0x9d,0x2,0x3,0x3,0xe8,0xff,0xd4,0xfd,0x9b,0xff, +0x16,0x2,0x75,0x1,0xcc,0xfe,0x69,0xfd,0x1c,0xfe,0x74,0x0, +0xd1,0x2,0x2b,0x1,0x1e,0xfd,0xf0,0xfe,0xd5,0x4,0xd6,0x3, +0xf4,0xfd,0x3,0xfe,0x25,0x2,0x60,0x2,0xe3,0xff,0x18,0xff, +0x1,0x0,0xf5,0xff,0x3b,0xfd,0xb4,0xfb,0x9f,0xff,0x5b,0x3, +0x49,0x1,0x60,0xff,0xd6,0x1,0x1,0x3,0xda,0x0,0x28,0x0, +0xd9,0x1,0xe1,0x1,0xb0,0xfe,0x79,0xfc,0xed,0xfe,0xa7,0x1, +0x5b,0xff,0xd2,0xfb,0x7,0xfc,0x64,0xfe,0xac,0x0,0xfc,0x1, +0x76,0x1,0x19,0x1,0x12,0x2,0xbd,0x1,0xb4,0x0,0xca,0x1, +0xa6,0x2,0xe3,0x0,0x35,0xff,0xa0,0xff,0xac,0x0,0x10,0x0, +0x95,0xfd,0xf9,0xfc,0x25,0x0,0x17,0x2,0xb4,0xff,0x90,0xfd, +0xf5,0xfe,0x33,0x1,0x35,0x1,0x83,0xff,0x17,0xff,0x54,0x0, +0x34,0x0,0x63,0xff,0xf,0x1,0x2d,0x2,0x97,0xff,0x41,0xfe, +0xdb,0x0,0x15,0x2,0xed,0xff,0x2e,0xfe,0x48,0xfe,0x6e,0xff, +0x35,0x1,0x5e,0x1,0xac,0xfe,0x31,0xfd,0x33,0x0,0x93,0x3, +0x4b,0x2,0xc1,0xfe,0x46,0xfe,0xc5,0x0,0x15,0x2,0x87,0x0, +0xc2,0xfe,0x7b,0xff,0x46,0x1,0x95,0x1,0x67,0x1,0x8b,0x1, +0xf6,0xff,0x13,0xfe,0xf5,0xff,0xb8,0x2,0x83,0x0,0xc4,0xfc, +0x86,0xfe,0xc2,0x2,0xcc,0x1,0x4d,0xfd,0x80,0xfc,0xa4,0xff, +0xce,0x1,0x57,0x1,0x52,0xff,0xcd,0xfd,0xaa,0xff,0x5,0x3, +0x27,0x2,0x6e,0xfe,0x82,0xfe,0x19,0x2,0x68,0x3,0xc5,0x0, +0xfb,0xfd,0x17,0xff,0x5d,0x2,0x46,0x2,0x55,0xff,0x4d,0xfe, +0x82,0xfe,0x8f,0xfe,0x9,0x1,0x38,0x3,0x73,0xff,0xb6,0xfa, +0xaa,0xfd,0x41,0x4,0xe2,0x3,0x19,0xfd,0xee,0xfa,0x7,0x1, +0xa2,0x5,0x38,0x2,0x84,0xfd,0x2f,0xfe,0x2d,0x1,0xd2,0x1, +0x1c,0x0,0x12,0xfe,0x63,0xfd,0x95,0xfe,0xb3,0x0,0xb5,0x1, +0x36,0x0,0x5c,0xfe,0x88,0xff,0xf,0x2,0xb,0x2,0x47,0x0, +0x60,0xff,0x91,0xff,0x78,0x0,0xde,0x0,0x54,0xff,0x1d,0xfe, +0xde,0xff,0xe3,0x1,0x7,0x1,0x8b,0xff,0x73,0x0,0x4e,0x2, +0x72,0x2,0x3f,0x1,0x6a,0x0,0x18,0x0,0x96,0xff,0x96,0xfe, +0x85,0xfd,0x97,0xfd,0xc2,0xfe,0x4b,0xff,0xcd,0xfe,0xee,0xfd, +0xf4,0xfc,0xb8,0xfd,0xa0,0x0,0xac,0x1,0x38,0x0,0x7b,0x0, +0xa6,0x1,0x2a,0x0,0x8e,0xfe,0xdc,0xff,0x9c,0x1,0xfc,0x0, +0xf1,0xfe,0xd9,0xfe,0x7d,0x1,0x94,0x2,0xa8,0x0,0xc,0x0, +0x0,0x1,0x45,0x0,0x62,0xff,0xeb,0xff,0x1f,0x0,0x2c,0x0, +0x7d,0x0,0x40,0x0,0x64,0x0,0x47,0x0,0xfa,0xfe,0x4,0x0, +0x9,0x3,0x1a,0x2,0x61,0xfe,0xbe,0xfd,0xb,0x0,0xe3,0x1, +0x6d,0x0,0xe,0xfc,0x69,0xfb,0xa8,0x0,0xdf,0x3,0x7c,0x1, +0xe5,0xfd,0x81,0xfc,0x4f,0xff,0xd9,0x3,0x37,0x3,0x69,0xff, +0x4c,0xff,0x1e,0x0,0x35,0xff,0x47,0x0,0x4a,0x1,0x24,0xff, +0x48,0xfe,0x1f,0x0,0x3b,0x1,0x5e,0x1,0xc7,0x0,0x28,0x0, +0xb1,0x1,0x45,0x2,0xec,0xfe,0x3b,0xfd,0x9,0x0,0x8a,0x1, +0x1c,0xff,0x7,0xfd,0x12,0xff,0xbf,0x2,0xf4,0x1,0xe,0xfe, +0x18,0xfe,0x51,0x0,0xca,0xff,0xc2,0xff,0xd,0x1,0xbd,0xff, +0xc5,0xfe,0xab,0x0,0xd1,0x0,0x54,0xff,0xcb,0xff,0x34,0x0, +0xae,0xff,0x4f,0x0,0x92,0x0,0x14,0x0,0x23,0x1,0x2,0x2, +0xd0,0x0,0xf4,0xff,0xe9,0xff,0x13,0xff,0xb9,0xfe,0x92,0xff, +0x25,0xff,0x6e,0xfd,0x45,0xfe,0xe6,0x1,0x29,0x3,0x9c,0x0, +0xe3,0xfe,0x6e,0xff,0x98,0xff,0xe0,0xff,0x20,0x1,0xb2,0x0, +0x74,0xfe,0xb7,0xfd,0xfb,0xfe,0x43,0x0,0x82,0x0,0x7b,0xff, +0x22,0xfe,0xbd,0xfe,0xb9,0x1,0x9f,0x3,0x61,0x1,0x27,0xfe, +0xeb,0xfe,0xd4,0x1,0xfb,0x1,0xd8,0xff,0x7c,0xfe,0xab,0xfe, +0x6b,0xff,0x53,0xff,0xf5,0xfe,0xfe,0xff,0x88,0x0,0x31,0xff, +0x67,0xff,0x46,0x1,0xbe,0x0,0x32,0xff,0xf8,0xff,0xda,0x0, +0xa1,0xff,0x21,0xfe,0x6e,0xfe,0xf2,0xff,0xbf,0xff,0xde,0xfd, +0x70,0xfe,0xb6,0x0,0x75,0x0,0xb3,0xff,0xbb,0x0,0xac,0x0, +0x12,0x0,0xce,0x0,0xe8,0xff,0xec,0xfd,0x0,0xff,0xfe,0x0, +0x54,0x0,0xba,0xfe,0x55,0xfe,0x88,0xff,0xf1,0x0,0xca,0xff, +0xfc,0xfd,0x5,0x0,0x80,0x3,0x5b,0x3,0x5d,0x0,0xef,0xfd, +0x9f,0xfd,0xcd,0xfe,0x98,0xff,0xdb,0xff,0x2e,0x0,0xa4,0xff, +0x68,0xff,0xec,0x0,0xf3,0x0,0x70,0xfe,0x2f,0xfe,0xf6,0x0, +0x6a,0x2,0x70,0x1,0xef,0xff,0x56,0xff,0xa,0x0,0xd6,0xff, +0xe,0xfd,0x82,0xfb,0xb3,0xfe,0x93,0x2,0xdf,0x1,0xea,0xfe, +0xdb,0xfe,0x27,0x1,0x60,0x2,0xf2,0x1,0x40,0x0,0x38,0xfe, +0xa1,0xfe,0xbd,0x0,0x6f,0x0,0xb0,0xfe,0xfa,0xfe,0x32,0x0, +0x8e,0x0,0xe2,0xff,0xc8,0xfd,0xe3,0xfc,0xb8,0xff,0x4a,0x2, +0x44,0x1,0x61,0xff,0xa9,0xfe,0x3f,0xff,0x4,0x1,0xe0,0x0, +0xb4,0xfd,0x7e,0xfc,0x50,0xff,0xc0,0x1,0x2a,0x1,0xa4,0xff, +0xcc,0xff,0x15,0x1,0xd2,0x0,0x6e,0xff,0x6f,0xff,0x19,0x0, +0x79,0x0,0x90,0x1,0xeb,0x1,0x42,0x0,0xc8,0xfe,0x2a,0xfe, +0xbf,0xfd,0x1d,0xfe,0x52,0xfe,0x8b,0xfe,0x99,0x0,0x18,0x1, +0xe4,0xfd,0x1c,0xfd,0x51,0x0,0xe2,0x1,0xda,0x1,0x60,0x2, +0x76,0x1,0xfd,0xff,0x8c,0xff,0x5c,0xfe,0xe0,0xfd,0x93,0xff, +0xe5,0xff,0xe9,0xfe,0xf1,0xff,0x21,0x1,0x7a,0x0,0x82,0xff, +0x17,0xff,0xde,0xff,0xe9,0x0,0xce,0xff,0x14,0xff,0xc3,0x0, +0x82,0x0,0xa6,0xfe,0xde,0xff,0x4b,0x1,0xb7,0xff,0x91,0xfe, +0xfa,0xfe,0xc2,0xff,0xe3,0x0,0x40,0x0,0xbd,0xfe,0x4e,0x0, +0xbb,0x1,0x94,0xff,0xe4,0xfe,0xf1,0x0,0xcc,0x0,0xcb,0xfe, +0xe7,0xfd,0x4a,0xfe,0xfc,0xff,0x68,0x1,0x6b,0x0,0xee,0xfe, +0xf8,0xfe,0xdb,0xff,0xba,0x0,0x1e,0x0,0x62,0xfe,0xb8,0xfe, +0x3d,0x0,0xc,0x0,0x1e,0x0,0x14,0x1,0x33,0x0,0x75,0xff, +0xa,0x1,0x60,0x1,0x56,0xff,0x4a,0xfe,0xc5,0xfe,0x43,0xff, +0x97,0xff,0xc6,0xff,0xe,0x0,0x86,0x0,0x2b,0x0,0x2a,0xff, +0xf6,0xfe,0xc3,0xff,0x9,0x1,0xfb,0x1,0x24,0x1,0x36,0xff, +0x9,0xff,0x41,0x0,0xf0,0xff,0xbf,0xfe,0x31,0xff,0xf3,0xff, +0xc3,0xfe,0x65,0xfd,0x16,0xff,0x46,0x3,0x7b,0x4,0x88,0xff, +0x40,0xfb,0xa,0xfe,0xd6,0x0,0x62,0xfd,0xf0,0xfa,0x81,0xfd, +0x4e,0x0,0xee,0x3,0xec,0x7,0xa4,0x4,0x8,0xfd,0x4c,0xfc, +0xed,0x0,0xc9,0x2,0xa7,0x0,0xb8,0xfc,0x68,0xfb,0xcd,0xff, +0x4a,0x3,0x1,0x0,0xd2,0xfb,0xdb,0xfc,0x72,0x1,0xae,0x4, +0xf0,0x1,0xcb,0xfb,0x79,0xfb,0x1c,0x1,0xea,0x2,0x96,0xfe, +0xe,0xfc,0x5d,0x0,0x40,0x6,0xf5,0x4,0x17,0xfe,0x50,0xfb, +0xa8,0xfd,0x80,0xff,0xea,0x0,0xe9,0x1,0xd1,0xff,0xb7,0xfe, +0xba,0x1,0xab,0x1,0x24,0xfc,0xe9,0xf9,0x6b,0xfe,0xa3,0x3, +0x67,0x4,0x3d,0x0,0x44,0xfc,0x8c,0xfe,0xa6,0x2,0xdf,0xff, +0x9e,0xfa,0x1b,0xfd,0xb,0x5,0x9,0x8,0x4d,0x2,0x46,0xfa, +0xbb,0xf9,0xfc,0x0,0xb,0x5,0xc9,0x0,0xe5,0xfb,0xd3,0xfc, +0xae,0x1,0xc,0x5,0x5f,0x2,0x65,0xfc,0x11,0xfc,0x61,0x2, +0xf,0x6,0x8f,0x1,0xa7,0xf9,0xe9,0xf7,0x3c,0xff,0x99,0x5, +0xd3,0x2,0x4d,0xfe,0x1a,0x0,0xd,0x4,0x59,0x4,0xd8,0xff, +0xc4,0xf8,0xfc,0xf6,0x23,0xfe,0x52,0x4,0x41,0x2,0xa6,0xfe, +0x82,0xff,0xb1,0x1,0x2,0x1,0xe1,0xfd,0x41,0xfd,0xe1,0x1, +0x72,0x5,0x66,0x2,0x81,0xfd,0x93,0xfb,0x31,0xfc,0xd7,0xff, +0x94,0x3,0xc6,0x1,0x0,0xff,0xf1,0x1,0x28,0x4,0x51,0xff, +0x6c,0xf9,0x10,0xf9,0xf,0xfe,0x72,0x3,0xd1,0x2,0x95,0xfe, +0x11,0xff,0x27,0x2,0xb3,0x1,0xf,0x0,0xb7,0xfe,0x6b,0xfd, +0x9e,0x0,0xcc,0x4,0xd6,0x0,0x80,0xfa,0x9c,0xfb,0xdc,0xff, +0x76,0x1,0xc,0x1,0x46,0xff,0xd3,0xfe,0xff,0x0,0xa,0x1, +0x75,0xfe,0x72,0xfd,0x36,0xfe,0x31,0x1,0x4d,0x5,0x57,0x3, +0xe7,0xfc,0xa3,0xfc,0x6f,0x0,0x2d,0xff,0x55,0xfc,0x86,0xfe, +0x6e,0x2,0x1e,0x2,0xc3,0xfd,0x6e,0xfb,0x8f,0xfe,0xb5,0x1, +0x1e,0x1,0x16,0x1,0xdf,0x1,0xfa,0xff,0x95,0xff,0x10,0x3, +0xd8,0x2,0x74,0xfd,0x3,0xfc,0xd6,0x0,0x2d,0x4,0x34,0x1, +0x9c,0xfb,0x94,0xfa,0xf3,0xfe,0xd,0x1,0x36,0xfe,0x6c,0xfd, +0x6f,0x0,0x0,0x2,0xfd,0x1,0x50,0x1,0xd8,0xfd,0x27,0xfc, +0xd2,0x0,0x21,0x4,0xe1,0x0,0x46,0xfe,0x91,0xff,0x19,0x0, +0xc,0xff,0x84,0xfe,0xe4,0xfe,0x21,0x0,0x13,0x1,0xe9,0x0, +0x32,0x0,0xda,0xfd,0x34,0xfb,0x7a,0xfd,0x87,0x2,0xa5,0x2, +0xb3,0xff,0xcc,0x0,0x9f,0x3,0x60,0x1,0xea,0xfb,0x8b,0xfb, +0x38,0x1,0xf5,0x3,0x24,0x0,0x52,0xfd,0xcd,0xfe,0x66,0xff, +0xd7,0xfe,0x3c,0x0,0x39,0x0,0x84,0xfd,0xc5,0xfe,0x4,0x4, +0xb7,0x3,0x41,0xfd,0xab,0xfa,0x93,0xfe,0x7c,0x2,0x20,0x3, +0x9b,0x1,0x94,0xff,0xcb,0xfe,0x1c,0xff,0xc5,0xff,0xfc,0x0, +0x8d,0x0,0x64,0xfe,0xc8,0xff,0xb6,0x2,0xae,0xff,0xbb,0xfb, +0xc5,0xfe,0x27,0x2,0xcf,0xff,0xac,0xfd,0x66,0xff,0xa8,0x1, +0x9,0x2,0xfb,0x0,0x7f,0x0,0xc4,0x0,0xc6,0xff,0xf1,0xfe, +0x75,0xff,0x37,0xfe,0xea,0xfc,0x60,0xff,0x9e,0x0,0xe0,0xfd, +0xf3,0xfd,0x90,0x1,0x41,0x2,0x21,0x0,0xf5,0xfe,0xc3,0xfe, +0xd0,0xfe,0x55,0xff,0x6c,0x0,0x1d,0x1,0xd5,0xff,0x5d,0xff, +0xa9,0x3,0xa1,0x6,0x40,0x0,0x27,0xf8,0xb7,0xfa,0x47,0x3, +0xd9,0x4,0x6d,0xff,0x33,0xfc,0x53,0xfd,0xca,0xfe,0xe2,0xff, +0x40,0x1,0x71,0x0,0x62,0xfd,0xb4,0xfd,0x3b,0x3,0x15,0x6, +0x11,0x1,0xa4,0xfb,0x3,0xfd,0x10,0x1,0xcc,0x2,0x8e,0x2, +0x17,0x0,0x4,0xfd,0x67,0xfd,0x8f,0xff,0x23,0x0,0x79,0x0, +0x4b,0x0,0x13,0xff,0x2,0x0,0x95,0x1,0x2d,0x0,0x44,0xff, +0x3f,0x0,0xc5,0xff,0x0,0x0,0x95,0x1,0x67,0xff,0x6d,0xfc, +0x3,0xff,0xdf,0x2,0xc6,0x2,0x8c,0x0,0x1f,0xfe,0xef,0xfd, +0xd5,0x1,0x63,0x4,0xea,0x0,0xda,0xfb,0x8e,0xfa,0xe7,0xfd, +0xa2,0x3,0x89,0x5,0x84,0x0,0x99,0xfb,0x32,0xfd,0xd2,0x1, +0xe4,0x3,0xf2,0x1,0xad,0xfd,0xc,0xfc,0xbb,0xff,0x67,0x3, +0x4,0x2,0xe3,0xfd,0x4e,0xfb,0x94,0xfd,0x44,0x4,0x93,0x6, +0xed,0xff,0xce,0xfa,0xff,0xfd,0x92,0x1,0x17,0x1,0x6d,0x0, +0xfe,0xff,0xf6,0xfe,0xc4,0xfe,0x64,0xff,0xf0,0x0,0xb6,0x1, +0x29,0xfe,0x89,0xfb,0x72,0x0,0x89,0x4,0xa3,0x0,0x13,0xfe, +0xd4,0x1,0x6c,0x3,0x1a,0x0,0xb3,0xfd,0x18,0xfe,0x25,0xff, +0xc8,0xff,0x5d,0x0,0x46,0x1,0xc8,0x0,0xbd,0xfd,0x4c,0xfc, +0x4e,0x0,0x78,0x5,0xc9,0x4,0xba,0xfe,0x7c,0xfa,0xc3,0xfc, +0x2a,0x2,0x79,0x3,0x2f,0xff,0xe3,0xfb,0x59,0xfe,0x16,0x2, +0x80,0x1,0xba,0xfe,0xd1,0xfd,0xa,0xfe,0xdf,0xfe,0x6a,0x2, +0xbe,0x5,0xac,0x1,0x47,0xf9,0x74,0xf9,0x88,0x2,0xdf,0x5, +0xf,0x0,0xff,0xfc,0x4f,0x0,0x1,0x2,0x39,0xff,0x13,0xfd, +0x1,0xff,0x77,0x1,0x17,0x0,0x94,0xfe,0xbe,0x0,0x2b,0x1, +0x2b,0xfe,0x4a,0xfe,0xc1,0x0,0x9e,0x0,0x48,0x0,0xe7,0x0, +0x29,0x0,0xcb,0xff,0xfe,0xff,0xf5,0xfe,0x1a,0xff,0x2c,0x0, +0x86,0xff,0xa,0x0,0xbe,0x1,0x68,0x0,0xc0,0xfe,0xe9,0xfe, +0xd9,0xfd,0x40,0xff,0xa0,0x4,0x94,0x3,0xc0,0xfb,0xbd,0xfa, +0x8,0x1,0xd5,0x2,0xa2,0xfe,0x82,0xfb,0xb6,0xfc,0xf5,0x0, +0x45,0x4,0x7e,0x3,0xc6,0x0,0x11,0xff,0x58,0xfe,0xe,0x0, +0xef,0x3,0x4f,0x3,0x8c,0xfd,0x77,0xfc,0x9,0x1,0xcd,0x1, +0x8,0xff,0x9,0xff,0x9a,0xff,0xa4,0xfe,0x7c,0xff,0x81,0x1, +0xc7,0x1,0x2a,0x0,0x59,0xfd,0xd6,0xfc,0x1,0x1,0x63,0x4, +0x29,0x3,0x38,0x0,0xb6,0xfc,0x1a,0xfb,0xa3,0xff,0xf7,0x3, +0x2b,0x0,0x80,0xfb,0x56,0xfe,0x70,0x3,0xbe,0x3,0xc7,0xff, +0x4d,0xfc,0xeb,0xfd,0x1b,0x3,0x96,0x4,0xcb,0xff,0x1c,0xfa, +0xb8,0xf9,0xe,0x0,0xef,0x6,0xc4,0x4,0x6,0xfb,0x42,0xf8, +0x62,0x1,0xd1,0x7,0x56,0x2,0x2a,0xfb,0x4c,0xfb,0x95,0xff, +0x41,0x4,0xef,0x5,0xa7,0x0,0x53,0xfa,0x86,0xfc,0x9e,0x3, +0x7b,0x5,0xb8,0x0,0xa9,0xfb,0x3b,0xfc,0x13,0x1,0xbe,0x2, +0xb9,0xff,0xc1,0xfd,0x12,0xfe,0x62,0xfe,0x30,0x0,0x21,0x3, +0x99,0x2,0x43,0xff,0x6b,0xfe,0xa7,0xff,0xb3,0xff,0x66,0x0, +0xec,0x1,0x28,0xff,0x98,0xfa,0x73,0xfd,0xe1,0x4,0x44,0x5, +0xb5,0xfe,0x58,0xfb,0xff,0xfe,0xa6,0x3,0xb5,0x2,0x18,0xfe, +0x8b,0xfc,0xb7,0xfe,0xd6,0x1,0xca,0x4,0xcb,0x2,0x88,0xfa, +0x28,0xf8,0xc6,0x1,0x13,0x9,0x4b,0x3,0xf0,0xf9,0xae,0xf9, +0xf8,0x1,0x13,0x8,0x23,0x4,0x68,0xfb,0x4c,0xf9,0xa1,0xff, +0x18,0x6,0x7c,0x5,0x3b,0xfe,0x78,0xf8,0x4,0xfc,0x60,0x4, +0xdc,0x5,0x19,0x0,0x7f,0xfc,0x2a,0xfd,0x35,0xff,0x46,0x3, +0x47,0x5,0xd6,0xff,0x8e,0xfb,0xa8,0x0,0x5f,0x5,0xbd,0x1, +0x15,0xfd,0xeb,0xfc,0x1f,0xff,0x48,0x1,0x5,0x1,0x48,0xff, +0x37,0xff,0x4d,0xfe,0x83,0xfc,0x31,0x0,0x37,0x5,0xd1,0x1, +0xd4,0xfb,0x48,0xfd,0x1e,0x2,0xa3,0x3,0x24,0x2,0x16,0xff, +0x63,0xfd,0x4c,0x0,0xb5,0x3,0x78,0x1,0x47,0xfc,0xd2,0xfa, +0x22,0xfe,0x8e,0x2,0xe8,0x3,0x7d,0x0,0x4d,0xfc,0xed,0xfc, +0x85,0x1,0xaa,0x4,0xef,0x2,0xa8,0xfd,0x6,0xfc,0x54,0x2, +0x41,0x7,0x1a,0x2,0x44,0xfb,0x2e,0xfc,0xdb,0x0,0xb3,0x3, +0x62,0x3,0xdc,0xff,0x6c,0xfd,0xe5,0xfe,0xb,0x0,0x9d,0xff, +0x3d,0x0,0x44,0x0,0x7c,0xff,0xbe,0x0,0x9b,0x1,0xe8,0xff, +0x36,0xff,0x18,0x0,0x41,0x0,0x14,0x1,0xa4,0x2,0xf7,0x1, +0xeb,0xff,0x35,0xff,0xc2,0xfe,0xe0,0xfd,0x23,0xff,0xc6,0x1, +0x35,0x1,0xb3,0xfe,0xd4,0xff,0xcb,0x2,0xb3,0x1,0xc0,0xfd, +0xec,0xfb,0x32,0xfe,0x46,0x3,0x9d,0x5,0x3e,0x1,0x1b,0xfc, +0x30,0xfd,0x55,0x1,0x6f,0x2,0x9,0x0,0x8f,0xfd,0x77,0xfe, +0xcb,0x1,0x41,0x2,0xce,0xfe,0xb0,0xfc,0xc6,0xfe,0x82,0x2, +0xad,0x4,0x69,0x3,0xa1,0xfe,0xce,0xfa,0x6f,0xfd,0x26,0x3, +0x33,0x3,0xa2,0xfe,0x2,0xfe,0xc8,0x1,0x42,0x3,0x25,0x0, +0xb2,0xfc,0xe7,0xfd,0x20,0x2,0x94,0x2,0x4e,0xff,0x44,0xfe, +0xbe,0xff,0xfb,0x0,0x55,0x1,0x45,0xff,0xd9,0xfc,0x1a,0xff, +0x88,0x2,0x97,0x1,0xe2,0xff,0x14,0x0,0x2,0x0,0xe0,0x0, +0xf2,0x1,0x3b,0xff,0x7a,0xfc,0x26,0xff,0x18,0x3,0x9a,0x2, +0x15,0xfe,0xd3,0xf9,0xe0,0xfb,0x9f,0x3,0x1f,0x6,0xa1,0xff, +0x9b,0xfb,0xe4,0xff,0x98,0x3,0x5b,0x1,0x13,0xfe,0x49,0xfd, +0x18,0xff,0xd9,0x2,0xeb,0x3,0x8c,0xff,0xce,0xfb,0x87,0xfd, +0x69,0x1,0x6a,0x3,0xc3,0x1,0xb1,0xfd,0x3f,0xfd,0x99,0x1, +0x22,0x3,0x79,0xff,0x94,0xfc,0x8a,0xfd,0xcb,0x0,0x11,0x3, +0x84,0x1,0xc5,0xfe,0x2e,0xff,0xf7,0x0,0xef,0x0,0xa1,0xff, +0xa4,0xfe,0x78,0xff,0x62,0x1,0xd,0x1,0x2c,0xff,0x2f,0xff, +0xe7,0xff,0x5a,0xff,0xe,0xff,0xbb,0xff,0xa1,0x0,0x13,0x1, +0xc0,0xff,0x61,0xfd,0xf,0xfd,0x68,0xff,0x5,0x2,0x75,0x2, +0x5f,0x0,0xb6,0xfe,0xf0,0xff,0xcd,0x1,0xfa,0x0,0xf3,0xfd, +0x73,0xfc,0x37,0xff,0x44,0x3,0xff,0x2,0x0,0xff,0x9c,0xfc, +0x96,0xfd,0xe,0x0,0xc7,0x1,0xab,0x0,0xe8,0xfd,0x1d,0xfe, +0x58,0x1,0xb4,0x1,0x43,0xfe,0x88,0xfd,0x1e,0x1,0x3e,0x3, +0xef,0x1,0xe4,0xff,0x18,0xfe,0xbb,0xfd,0xb7,0xff,0x3b,0x1, +0x33,0x1,0x48,0x1,0x7a,0x0,0x6a,0xff,0x94,0x0,0xe4,0x0, +0x5,0xff,0x0,0x0,0x46,0x2,0x9d,0x0,0xf9,0xfe,0x5b,0x0, +0x95,0xff,0x5b,0xfc,0xf7,0xfb,0xdb,0xfe,0x8,0x2,0x11,0x3, +0xe1,0x0,0x3c,0xfe,0x9d,0xfe,0x7,0x1,0x2e,0x2,0x5c,0x0, +0x7e,0xfd,0x41,0xfe,0xa7,0x2,0xfc,0x3,0x7d,0xff,0x40,0xfb, +0xb3,0xfc,0x89,0x1,0x35,0x4,0x55,0x2,0x1e,0xfe,0x70,0xfc, +0xb7,0xff,0x47,0x3,0x50,0x1,0xe5,0xfc,0x6a,0xfd,0x46,0x2, +0xdd,0x3,0x4,0xff,0x26,0xfa,0x7d,0xfc,0x70,0x2,0xa1,0x3, +0xef,0x0,0xa0,0xff,0x5f,0xff,0xc7,0xff,0xe0,0x1,0xc7,0x1, +0x8b,0xfd,0xbe,0xfb,0xf9,0xff,0xa8,0x3,0xc,0x1,0x62,0xfc, +0xb5,0xfc,0xf3,0x0,0xb7,0x2,0x84,0x0,0x34,0xfe,0xee,0xfe, +0xba,0x1,0xd7,0x1,0x3a,0xfe,0x3c,0xfd,0xef,0x0,0xe6,0x2, +0xae,0x0,0x13,0xfe,0x9d,0xfd,0xf2,0xff,0x83,0x2,0x2d,0x1, +0xb4,0xfe,0x76,0xff,0x63,0x0,0x45,0x0,0xc7,0x1,0x14,0x1, +0x70,0xfc,0xaa,0xfc,0x5e,0x3,0x15,0x5,0xb3,0xfe,0xea,0xfa, +0x53,0xff,0x7c,0x4,0x7f,0x2,0xb0,0xfc,0x15,0xfc,0x18,0x1, +0x65,0x3,0x41,0x0,0x93,0xfd,0x60,0xfe,0x30,0x0,0xa5,0x1, +0xf6,0x1,0xf2,0xff,0x31,0xfe,0x72,0xff,0x47,0x1,0x5b,0x1, +0x2a,0x0,0x26,0xfe,0x25,0xfe,0x21,0x2,0x3f,0x4,0x57,0x0, +0x89,0xfc,0xd0,0xfd,0xff,0x0,0xcd,0x1,0x7d,0xff,0xdc,0xfd, +0x5b,0x0,0x31,0x2,0x41,0xff,0xf5,0xfd,0x26,0x1,0x69,0x1, +0x37,0xfe,0xff,0xfe,0x84,0x2,0x2b,0x2,0x71,0xff,0x46,0xff, +0xc6,0x0,0x1,0x1,0x6f,0x0,0x36,0x0,0xda,0xff,0xe,0xff, +0x1e,0xfe,0xf5,0xfd,0xcc,0xff,0xca,0x1,0x1f,0x1,0x35,0x0, +0x6e,0x1,0x8e,0x1,0xd7,0xff,0x78,0xff,0x9f,0xff,0x42,0xff, +0x70,0x0,0x2e,0x1,0x26,0xff,0x57,0xfe,0x47,0x0,0xe,0x1, +0x5b,0x0,0xf2,0xff,0x4,0xff,0xc3,0xfe,0x14,0x1,0xb1,0x2, +0x91,0x0,0x11,0xfe,0xe9,0xfe,0x1d,0x1,0x47,0x1,0x7,0x0, +0xf3,0xff,0xd3,0x0,0x58,0x0,0xd7,0xfe,0x31,0xff,0xb2,0x0, +0xa4,0xff,0xd3,0xfd,0xea,0xff,0xc8,0x2,0x2c,0x1,0x3c,0xfe, +0x3c,0xfe,0xf1,0xff,0xd2,0x1,0x8a,0x2,0x1,0x1,0xea,0xff, +0x3d,0x0,0x8e,0xff,0xdf,0xff,0xdf,0x1,0xd3,0xff,0xd0,0xfb, +0x89,0xfe,0x6a,0x4,0x7,0x4,0x25,0xff,0xac,0xfc,0xdc,0xfe, +0xb,0x3,0x1c,0x3,0xd6,0xfe,0x2a,0xff,0xc4,0x4,0x1a,0x5, +0xba,0xff,0xee,0xfd,0x30,0xff,0xb,0xfe,0xb4,0xfd,0xbf,0x0, +0x8c,0x1,0x6c,0xfd,0xac,0xf9,0x96,0xfb,0xdc,0x1,0xba,0x4, +0x24,0x0,0x7e,0xfc,0xef,0x0,0x36,0x5,0x4d,0x1,0x38,0xfc, +0xef,0xfd,0xf1,0x2,0xae,0x4,0x5e,0x2,0xbc,0xff,0xe5,0xfe, +0x1f,0xfe,0xf0,0xfd,0xfe,0x0,0x4c,0x3,0x93,0xff,0x66,0xfb, +0x54,0xfe,0x76,0x3,0xe8,0x1,0x94,0xfc,0x4b,0xfd,0x4d,0x3, +0xf2,0x3,0xff,0xfd,0x18,0xfc,0x47,0x1,0x92,0x4,0x61,0x1, +0xc6,0xfd,0xf3,0xfe,0x1a,0x1,0x87,0xff,0x0,0xfe,0x8e,0x0, +0xda,0x2,0xe4,0x1,0xd8,0x0,0x6c,0x0,0xd8,0xff,0xae,0x0, +0xee,0x1,0x1f,0x2,0xfe,0x1,0x4d,0xff,0xa,0xfb,0x34,0xfd, +0x9a,0x3,0x9d,0x2,0x9d,0xfc,0xe,0xfd,0x75,0x2,0x82,0x3, +0x8c,0xfe,0x75,0xfa,0x63,0xfe,0x4,0x6,0xbb,0x4,0xdf,0xfb, +0xe7,0xf9,0xd2,0xff,0x89,0x2,0x4f,0x1,0x44,0x1,0xbe,0x0, +0xaf,0xff,0xfe,0x1,0xd6,0x4,0xd7,0x2,0x73,0xfe,0x52,0xfd, +0x75,0x0,0xb,0x3,0x8d,0xff,0x37,0xfa,0x11,0xfd,0x98,0x4, +0xee,0x3,0x9e,0xfc,0xef,0xfa,0x7f,0x0,0xdf,0x4,0x56,0x3, +0x6c,0xff,0x14,0xff,0x37,0x1,0x25,0x0,0xd4,0xfd,0x94,0xff, +0x1f,0x2,0x62,0x1,0xdc,0x0,0xff,0x1,0xbc,0x0,0x36,0xfd, +0x0,0xfd,0x26,0x2,0x70,0x6,0x85,0x2,0x72,0xfa,0x6,0xfa, +0x1b,0x1,0x58,0x3,0xd8,0xfe,0x2e,0xfe,0x88,0x2,0xf6,0x2, +0x5e,0xff,0x9c,0xfe,0x4c,0x0,0xd9,0x0,0x26,0x1,0xdf,0x1, +0xb2,0x1,0x7b,0x0,0xa5,0xfe,0x5,0xfe,0x79,0x0,0x66,0x2, +0xef,0xff,0x3b,0xfd,0xc0,0xfe,0x37,0x1,0xba,0x0,0x3a,0xff, +0x34,0x0,0x51,0x2,0x31,0x1,0x4a,0xfe,0xe6,0xff,0x5e,0x4, +0x4a,0x3,0xc,0xfd,0x5d,0xfb,0xdd,0x0,0xa8,0x3,0xd6,0xfd, +0x9f,0xf9,0x9f,0xff,0x77,0x5,0x26,0x1,0x4b,0xfb,0x1b,0xfd, +0x42,0x2,0xdf,0x4,0x90,0x4,0x70,0x2,0xb8,0xff,0x60,0xfd, +0x7c,0xfd,0x9f,0x1,0x99,0x4,0x8e,0x1,0x45,0xfe,0xb4,0xff, +0x9,0x1,0x5b,0xff,0x8d,0xfd,0x5b,0xfd,0x64,0xff,0xd1,0x1, +0x7e,0x0,0xce,0xfd,0xfb,0xfe,0xc1,0x0,0x69,0xff,0x61,0xff, +0x81,0x2,0xb1,0x3,0xa5,0x0,0x1e,0xfd,0x2,0xfe,0xb8,0x2, +0x8d,0x3,0x2f,0xfe,0xe8,0xfb,0x55,0x0,0xe5,0x2,0xe2,0x0, +0x89,0xff,0x93,0xfe,0x30,0xfd,0x7b,0xff,0x73,0x3,0xdb,0x2, +0x7f,0xff,0x79,0xfe,0x23,0x0,0x36,0x2,0x19,0x1,0x77,0xfc, +0x57,0xfb,0x1b,0x1,0x74,0x6,0xba,0x4,0xe7,0xfd,0x82,0xf9, +0xa8,0xfd,0xa1,0x5,0x24,0x6,0x20,0xff,0x17,0xfb,0x13,0xfe, +0x8d,0x2,0xbc,0x2,0x39,0xff,0xca,0xfd,0x74,0x0,0xc4,0x2, +0xcb,0x1,0x73,0xfe,0x62,0xfb,0xf,0xfd,0xe4,0x2,0xb2,0x4, +0x6,0x0,0x85,0xfc,0xc5,0xfe,0xc7,0x2,0x4d,0x3,0x8f,0x0, +0x99,0xff,0x1d,0x2,0x7,0x3,0x61,0xff,0x77,0xfb,0x67,0xfc, +0x80,0x1,0x77,0x4,0x1b,0x1,0xed,0xfb,0xb6,0xfb,0xcf,0xff, +0x81,0x2,0x30,0x1,0x53,0xff,0xd9,0x0,0xc2,0x2,0x73,0x0, +0x70,0xfd,0xc8,0xfe,0xe0,0x1,0x8c,0x2,0xb,0x1,0xaa,0xfe, +0x7f,0xfc,0xb6,0xfc,0x25,0x0,0x36,0x3,0x9f,0x1,0x5d,0xfe, +0xb3,0xff,0x4,0x3,0x1a,0x2,0x98,0xff,0xe2,0xff,0xae,0x0, +0x1e,0x0,0x57,0xff,0x6f,0xfe,0xf8,0xfd,0xb8,0xfe,0xaa,0xff, +0x7c,0x0,0xbc,0x0,0x45,0xff,0xc6,0xfe,0x9d,0x1,0x47,0x3, +0xee,0x0,0x3c,0xff,0x0,0x0,0x72,0xff,0xd0,0xfd,0xd8,0xfe, +0xa3,0x1,0x97,0x2,0x5c,0x1,0x9b,0xff,0x23,0xfe,0xf3,0xfd, +0x7f,0x0,0x9c,0x4,0x4e,0x5,0x49,0x0,0xec,0xfb,0x3b,0xfe, +0x26,0x2,0x60,0x1,0xba,0xff,0x5e,0x1,0xc8,0x2,0xf0,0x0, +0xb7,0xfd,0x70,0xfc,0xac,0xfe,0x3c,0x1,0x59,0x0,0x63,0xfe, +0x74,0xfe,0x51,0xff,0x0,0x0,0xf4,0xff,0xe4,0xfe,0xbd,0xff, +0xf,0x2,0x99,0x0,0xf7,0xfc,0x35,0xfd,0x1,0x0,0xb4,0x0, +0x9a,0xfe,0x87,0xfc,0x3a,0xfe,0xd0,0x1,0x93,0x1,0x6e,0xff, +0x11,0x0,0x35,0x1,0x7a,0x1,0x26,0x2,0x62,0x0,0xc9,0xfc, +0xe4,0xfd,0x39,0x3,0xbf,0x4,0xe,0xff,0xbe,0xf8,0x64,0xfb, +0x1c,0x4,0xa4,0x5,0xc6,0xff,0x16,0xfe,0xab,0x0,0x92,0x0, +0xa6,0xff,0xe9,0x0,0xdf,0x1,0x77,0x1,0xbd,0x0,0xf,0x0, +0x84,0xff,0x2c,0xfe,0x5f,0xfc,0xce,0xfd,0x2,0x3,0xaf,0x5, +0x81,0x1,0xb8,0xfb,0x21,0xfc,0x3b,0x1,0x13,0x3,0x70,0x0, +0x2b,0xff,0x5,0x1,0xd4,0x1,0xc7,0xff,0x23,0xfe,0xf4,0xfe, +0xfe,0xff,0x9c,0x0,0xa1,0x2,0x13,0x3,0x28,0xfe,0xc7,0xf9, +0x98,0xfd,0xa5,0x4,0x69,0x4,0x8b,0xfd,0x7d,0xfa,0x1d,0xff, +0xbe,0x3,0x93,0x2,0x6a,0xff,0x99,0xfe,0x6,0xff,0x53,0xff, +0x2e,0x0,0x45,0x1,0xb,0x1,0x9b,0xff,0x9,0xff,0xc4,0xff, +0xe2,0xff,0x11,0xff,0x20,0xff,0x12,0x1,0x5a,0x3,0x27,0x2, +0x9e,0xfd,0xb7,0xfc,0xd0,0x0,0xd6,0x1,0x80,0xfe,0xee,0xfd, +0x92,0x0,0x3f,0x1,0xd9,0xfe,0xde,0xfc,0x83,0xff,0x2b,0x4, +0x80,0x2,0x6f,0xfc,0x51,0xfc,0x3b,0x1,0x65,0x2,0x6a,0xff, +0xf7,0xfd,0x4e,0x0,0xb7,0x2,0xb3,0x0,0x90,0xfd,0xe4,0xfe, +0x76,0x1,0x15,0x1,0x8e,0x0,0xff,0x0,0x86,0xff,0xb6,0xfc, +0xd4,0xfc,0x5c,0x1,0x4c,0x4,0xec,0xff,0xd2,0xfa,0x2d,0xfd, +0x96,0x1,0xa3,0x1,0x84,0x0,0xc9,0xff,0x89,0xfd,0x5e,0xfc, +0x94,0xff,0x76,0x4,0x20,0x4,0x6d,0xfd,0xd0,0xfa,0xe9,0x1, +0xba,0x6,0xe7,0x0,0x9c,0xfa,0x40,0xfd,0x73,0x4,0xd9,0x6, +0x4f,0x0,0x6e,0xf8,0xaa,0xfa,0x70,0x3,0x39,0x5,0x2e,0xff, +0xff,0xfb,0x6c,0xff,0xf5,0x2,0x59,0x1,0xaa,0xfd,0x7e,0xfd, +0x5c,0x0,0x34,0x2,0xf6,0x1,0x57,0x0,0xb0,0xfd,0xa4,0xfc, +0xc7,0xff,0x53,0x3,0xd1,0x1,0xe,0xfe,0x4,0xfe,0x29,0x0, +0x7c,0x0,0x14,0x0,0x9f,0x0,0x17,0x1,0x49,0x0,0x56,0xfe, +0x14,0xfe,0x25,0x1,0xbb,0x2,0xf5,0xff,0x28,0xfe,0x92,0xff, +0x75,0xff,0x3d,0xfd,0x9f,0xfd,0x44,0x1,0xff,0x2,0x7,0x0, +0xb4,0xfd,0x93,0x0,0x2e,0x3,0x5b,0x0,0xeb,0xfc,0x67,0xfe, +0xb9,0x2,0x87,0x3,0x6d,0xfe,0x71,0xfa,0xfd,0xfd,0x4d,0x3, +0x58,0x3,0x30,0x0,0x5d,0xfd,0xf1,0xfc,0x3,0x0,0x85,0x2, +0x78,0x1,0xfb,0xff,0x8b,0xff,0x86,0xff,0x0,0x0,0xee,0xfe, +0x99,0xfd,0x9e,0x0,0x34,0x4,0x46,0x2,0x2a,0xfe,0x6b,0xfc, +0x7e,0xfd,0xbf,0x0,0x7,0x2,0xa8,0xff,0x38,0xff,0xed,0x0, +0x4c,0xff,0x13,0xfd,0x8e,0xff,0x2e,0x3,0x77,0x2,0xdf,0xfe, +0x1e,0xfe,0x57,0x1,0x98,0x2,0x76,0xff,0x81,0xfd,0x44,0xff, +0xe5,0x0,0x33,0x0,0xbe,0xfe,0xe7,0xfe,0xb0,0x0,0x41,0x1, +0x5d,0x0,0x74,0x0,0x97,0x0,0x62,0xff,0xe3,0xfe,0xeb,0xff, +0x3d,0x1,0xf2,0x1,0xdd,0x0,0xd7,0xfe,0xa5,0xfe,0xf,0x0, +0x6b,0x1,0x4a,0x2,0x42,0x1,0x5b,0xfe,0x17,0xfd,0x75,0xfe, +0x7b,0xff,0xf1,0xfe,0x7c,0xfe,0x42,0xff,0x8c,0x0,0xdf,0x0, +0xaf,0xff,0x6e,0xfe,0x82,0xff,0x18,0x2,0xcb,0x1,0x96,0xfe, +0xf3,0xfd,0xa9,0x0,0xb0,0x1,0x5d,0xff,0x46,0xfd,0x6,0xff, +0x6c,0x2,0x31,0x1,0x35,0xfd,0xe0,0xfe,0xb1,0x3,0xd9,0x2, +0xbb,0xfe,0x0,0xfe,0xa5,0xff,0x29,0x0,0xbb,0xfe,0xa3,0xfd, +0xa4,0xff,0xe1,0x1,0xc8,0x0,0x5e,0xff,0x6d,0xff,0x6,0xff, +0xc7,0xff,0xaf,0x2,0xd8,0x3,0x22,0x1,0xf0,0xfc,0x9,0xfc, +0x44,0x0,0x20,0x3,0xe8,0xff,0x23,0xfd,0x9c,0xff,0x5a,0x2, +0x45,0x1,0x69,0xfe,0x15,0xfe,0xcf,0x0,0x2b,0x1,0x41,0xfe, +0x45,0xfe,0x6e,0x0,0x92,0xff,0x9a,0xfe,0x48,0x0,0xf9,0x0, +0x5a,0xff,0x9e,0xfd,0xa7,0xfe,0x59,0x3,0xd,0x5,0x81,0xff, +0xb9,0xfb,0x69,0xff,0x7d,0x2,0x17,0x0,0x9d,0xfd,0x94,0xff, +0xdb,0x3,0x75,0x4,0xb4,0xff,0xfb,0xfb,0x9c,0xfd,0xe7,0x0, +0x2,0x2,0xfe,0x0,0x50,0xff,0x84,0xfe,0xf5,0xfe,0xe1,0xff, +0x78,0x0,0xe9,0xff,0x44,0xff,0x7e,0x0,0xab,0x1,0xd2,0xff, +0x61,0xfd,0xcf,0xfe,0xa7,0x2,0x90,0x2,0xa,0xfe,0x33,0xfd, +0x2b,0x2,0xc7,0x3,0xf8,0xfe,0x54,0xfc,0x9d,0xff,0x8c,0x2, +0x8d,0x0,0x27,0xfd,0x4d,0xfe,0xdd,0x2,0xb2,0x3,0x8b,0xff, +0xd7,0xfc,0xe0,0xfe,0xc6,0x1,0x7b,0x1,0xcb,0xff,0x6c,0x0, +0xc8,0x1,0xe,0x1,0x1f,0x0,0xd9,0xff,0xe5,0xfe,0x13,0xff, +0xc5,0x0,0xce,0x0,0x5f,0xff,0xae,0xfe,0xf2,0xfe,0xd7,0xff, +0xd0,0xff,0xc,0xff,0xf,0x1,0x5e,0x3,0x97,0x0,0x72,0xfd, +0xc8,0xff,0x3e,0x3,0xc1,0x2,0x34,0xff,0xfc,0xfc,0xdf,0xff, +0x3a,0x3,0x75,0x0,0x18,0xfd,0x9a,0xff,0x67,0x2,0xfe,0x0, +0xf4,0xfe,0xc8,0xfe,0xbc,0xff,0x4a,0x0,0xcb,0xff,0xf4,0xff, +0xb9,0x0,0x2d,0x0,0xac,0xff,0x46,0x0,0x97,0x0,0x30,0x1, +0x94,0x1,0xa3,0xff,0xb1,0xfd,0x97,0xfe,0xe8,0x0,0x82,0x2, +0x2b,0x1,0x5a,0xfd,0x0,0xfd,0x44,0x1,0x53,0x3,0x2,0x1, +0xcc,0xfe,0xac,0xff,0x84,0x2,0xa1,0x2,0x50,0xfe,0x18,0xfc, +0xc5,0xff,0x84,0x3,0xcc,0x2,0xbe,0xff,0xde,0xfd,0xd3,0xfe, +0xd0,0x0,0x16,0x1,0xc1,0x0,0x31,0x1,0x71,0x0,0xa8,0xfe, +0x2d,0xff,0xb1,0x1,0xc1,0x1,0xe9,0xfe,0x6c,0xfe,0x5b,0x1, +0xe1,0x1,0xd4,0xfe,0x2f,0xfe,0x8b,0x1,0x90,0x3,0xd7,0x0, +0xf7,0xfc,0xa5,0xfd,0x63,0x1,0x0,0x2,0x49,0x0,0xd2,0x0, +0xe3,0x1,0xba,0x0,0xfd,0xfe,0x49,0xfe,0x67,0xff,0x12,0x2, +0x34,0x3,0x53,0x1,0x79,0xfe,0x11,0xfd,0x26,0xff,0x2a,0x3, +0x8b,0x3,0x8d,0xff,0xe8,0xfc,0x1c,0xff,0x32,0x3,0x96,0x2, +0xf8,0xfc,0x19,0xfc,0xf4,0x2,0x30,0x6,0x7c,0x0,0x10,0xfb, +0x2d,0xfd,0xb6,0x2,0x78,0x3,0x51,0xff,0x5c,0xfe,0x4d,0x1, +0xf1,0x0,0xbe,0xfe,0x2f,0x0,0x45,0x2,0xe3,0x1,0x9b,0x0, +0x21,0xff,0x3,0xff,0x99,0x0,0x65,0x0,0x40,0xff,0x7d,0x0, +0x79,0x1,0x38,0x0,0x47,0xff,0x5b,0xff,0x44,0x0,0xee,0x1, +0x2e,0x2,0xea,0x0,0x3,0x0,0x28,0xff,0x10,0xff,0x17,0x1, +0x94,0x2,0x3a,0x1,0x26,0xff,0x7,0xff,0xb3,0x0,0x2c,0x1, +0x9e,0xff,0x14,0x0,0xd1,0x2,0x61,0x2,0x26,0xff,0xd6,0xfe, +0x16,0x1,0x2a,0x1,0x7,0xff,0x1a,0xff,0x35,0x2,0xab,0x2, +0x33,0xfe,0xb4,0xfb,0x6f,0xff,0xe8,0x3,0x9b,0x3,0x9b,0xff, +0xa9,0xfc,0x38,0xfe,0xbb,0x1,0x19,0x2,0x22,0x0,0x1e,0x0, +0xbc,0x1,0xb5,0x1,0x14,0x0,0x8f,0xff,0x54,0x0,0xbd,0x0, +0x3a,0x1,0x4d,0x1,0xd0,0xfe,0xdf,0xfc,0xcf,0xff,0x70,0x3, +0x32,0x2,0x97,0xfe,0xb7,0xfd,0x77,0x0,0x7,0x3,0x9a,0x1, +0xf8,0xfe,0x86,0xff,0x2a,0x1,0x33,0x1,0x6e,0x0,0x24,0xff, +0xf2,0xfe,0x3d,0x1,0x30,0x2,0xfc,0xff,0x8b,0xfe,0x2e,0xff, +0x89,0x0,0xc3,0x1,0xf2,0x0,0x5,0xff,0x51,0xff,0x43,0x0, +0x8c,0xff,0x38,0xff,0xef,0xff,0x93,0x0,0x55,0x1,0x66,0x1, +0x1d,0x0,0xe4,0xfe,0x21,0xff,0x85,0x1,0xad,0x3,0x78,0x1, +0xb5,0xfd,0x2e,0xfe,0xb9,0x0,0x47,0x1,0xd4,0x0,0x1b,0x0, +0x50,0xff,0xb8,0xff,0x1d,0x0,0x72,0xff,0x53,0xff,0x16,0x0, +0x22,0x1,0xf5,0x1,0xdc,0x0,0xd5,0xfe,0x7b,0xff,0x2a,0x2, +0x14,0x3,0xb3,0x0,0xe0,0xfc,0x39,0xfc,0xa6,0x0,0x2c,0x4, +0x63,0x1,0xb6,0xfc,0x4f,0xfd,0xff,0x1,0x70,0x3,0x51,0xff, +0xac,0xfb,0xa1,0xfd,0x9d,0x2,0xa9,0x4,0x80,0x1,0x58,0xfd, +0xb6,0xfd,0x63,0x1,0x23,0x3,0xa1,0x1,0x10,0xff,0x4f,0xfe, +0x7d,0x0,0xe8,0x1,0xee,0xff,0xd1,0xfe,0x3c,0x1,0xff,0x2, +0x2,0x1,0x5b,0xfd,0x1f,0xfc,0xb2,0xfe,0x2e,0x1,0xdf,0x0, +0xa9,0x0,0x3a,0x1,0x2,0x0,0xe0,0xfe,0x8c,0x0,0xa2,0x2, +0x41,0x2,0xfe,0xff,0x8b,0xfe,0x72,0xff,0x77,0x0,0x8e,0xff, +0xac,0xfe,0x5e,0xff,0xb4,0x0,0x7e,0x1,0x61,0x0,0x47,0xfe, +0x9b,0xfe,0xe9,0x0,0xac,0x1,0xaf,0x0,0x9b,0xff,0x52,0xff, +0x3b,0x0,0xda,0x0,0xf2,0xff,0x43,0xff,0x23,0x0,0x63,0x1, +0x4,0x1,0x4a,0xfe,0xdb,0xfc,0x77,0x0,0x5f,0x4,0xfd,0x1, +0xa9,0xfc,0xef,0xfb,0x34,0x0,0x96,0x3,0x62,0x2,0x67,0xff, +0x9c,0xfe,0x3f,0xff,0x89,0xff,0xe,0x0,0xc5,0x0,0xf2,0x0, +0xb8,0x0,0x4c,0x0,0x2c,0x0,0x5a,0x0,0x25,0x0,0x9e,0x0, +0x2f,0x2,0x5,0x2,0xb1,0xff,0x2e,0xfe,0x71,0xfe,0xee,0xff, +0x84,0x1,0xaa,0x0,0x78,0xfe,0xe,0xff,0x56,0x1,0x41,0x1, +0x4d,0xff,0x83,0xfe,0xad,0xff,0xf9,0x0,0x99,0x0,0x9e,0xff, +0xb0,0xff,0x5d,0x0,0x82,0x1,0x86,0x2,0xaf,0x0,0x3d,0xfd, +0xa7,0xfd,0x4d,0x1,0xf8,0x1,0x46,0xff,0x84,0xfe,0x81,0x0, +0xf2,0x0,0x11,0xff,0x5b,0xfe,0x98,0xff,0xdb,0x0,0xac,0x1, +0x70,0x1,0x59,0xff,0x94,0xfd,0xa4,0xfe,0x87,0x1,0x45,0x3, +0xa5,0x1,0xa,0xfe,0x21,0xfd,0xfe,0xff,0x2c,0x2,0xe3,0x0, +0x66,0xfe,0x40,0xfe,0xa2,0x0,0xe1,0x1,0x3e,0x0,0x5e,0xfe, +0x2,0xfe,0x1f,0xff,0xd0,0x1,0x31,0x3,0x5d,0x0,0x36,0xfd, +0x6b,0xfe,0x91,0x1,0x25,0x2,0x16,0x0,0xd0,0xfe,0x14,0x0, +0xdd,0x0,0xb1,0xfe,0xd6,0xfc,0x63,0xfe,0x2c,0x1,0x3b,0x2, +0x5f,0x1,0x64,0x0,0xd4,0x0,0xa6,0x1,0x71,0x1,0xc5,0x0, +0x84,0xff,0xca,0xfd,0x46,0xfe,0xd1,0x0,0x4d,0x1,0x9f,0xff, +0x61,0xff,0x76,0x0,0x2c,0x0,0xa4,0xfe,0x6e,0xfe,0xaf,0x0, +0x22,0x3,0x91,0x2,0x5c,0xff,0x91,0xfd,0xbe,0xff,0x36,0x3, +0x29,0x3,0x85,0xff,0x72,0xfd,0xab,0xff,0x6f,0x2,0x2d,0x1, +0x5f,0xfd,0xce,0xfc,0x10,0x1,0x94,0x4,0x70,0x2,0x8d,0xfd, +0x69,0xfc,0xc7,0xff,0x45,0x2,0x1a,0x1,0x3a,0xff,0x10,0xff, +0x3,0x0,0x3f,0x1,0x33,0x1,0xe4,0xfe,0x95,0xfd,0xb7,0xff, +0x6b,0x1,0xc3,0xff,0x8e,0xfe,0xcc,0x0,0xc2,0x2,0xc9,0x0, +0x30,0xfe,0x53,0xff,0x82,0x1,0x6f,0x0,0x74,0xfe,0x72,0xff, +0x9c,0x1,0x9,0x1,0xfc,0xfd,0x32,0xfd,0x27,0x1,0x2b,0x4, +0xd8,0x0,0xb8,0xfc,0xb7,0xfe,0xdb,0x2,0x72,0x2,0xe4,0xfe, +0xa6,0xfd,0x28,0x0,0x9a,0x2,0x89,0x1,0xbf,0xfe,0x2,0xfe, +0x33,0x0,0xf3,0x2,0x38,0x2,0xc,0xfe,0xfb,0xfc,0xc7,0x0, +0x47,0x2,0xb0,0xff,0xe,0xff,0x7,0x1,0x9d,0x1,0xcb,0x0, +0xc2,0xff,0x7d,0xfe,0x6c,0xfe,0x4c,0x0,0xf4,0x1,0x13,0x1, +0x6b,0xfe,0x4,0xfe,0xf8,0x0,0xc4,0x1,0xaf,0xfe,0xa2,0xfe, +0xe0,0x2,0x55,0x3,0x99,0xfe,0x7d,0xfc,0xee,0xff,0x35,0x3, +0x9e,0x1,0x74,0xfe,0x5d,0xff,0xf5,0x1,0xae,0x0,0x96,0xfe, +0xde,0xff,0x7f,0x0,0xdf,0xfe,0x6a,0xff,0x1a,0x1,0x41,0x0, +0xa,0xff,0x7a,0xff,0x50,0x0,0x57,0x1,0x8b,0x1,0xa9,0xff, +0x43,0xfe,0x91,0xff,0xd4,0x1,0x67,0x2,0xa,0x0,0x9f,0xfd, +0x7d,0xff,0x7c,0x2,0x4a,0x1,0x1a,0xff,0x54,0xff,0x65,0xff, +0x7a,0xff,0xb0,0x0,0x49,0x0,0x54,0xff,0xc6,0x0,0xb7,0x1, +0x93,0x0,0xb1,0xff,0x60,0xfe,0x5c,0xfd,0x13,0x0,0x31,0x3, +0xa6,0x1,0x4c,0xfe,0x36,0xfd,0x1d,0xfe,0xc5,0xff,0xfd,0x0, +0xc9,0x1,0xcc,0x2,0x79,0x2,0x69,0x1,0xf8,0x1,0xdb,0x0, +0x2,0xfd,0x7f,0xfd,0x68,0x1,0x23,0x0,0xed,0xfc,0xcf,0xfe, +0xc6,0x0,0x16,0xff,0xd,0xff,0x43,0x1,0xa,0x1,0xc1,0xfe, +0x5d,0xfe,0xe2,0x0,0xba,0x2,0x39,0x1,0x4,0x0,0x40,0x1, +0xd9,0x0,0x8f,0xff,0x4b,0x1,0xa0,0x1,0xa,0xfe,0x63,0xfd, +0xf5,0xff,0x22,0xff,0xf4,0xfc,0xa1,0xfe,0x0,0x2,0x52,0x3, +0x3f,0x2,0xb9,0x0,0xd1,0x0,0xcb,0x0,0xe9,0xfe,0x5f,0xfe, +0xfc,0xff,0x9b,0x0,0x20,0x1,0xf0,0x1,0x68,0xff,0x8,0xfc, +0xae,0xfd,0x3c,0x1,0xf9,0x0,0xf0,0xfe,0x6e,0xff,0xc1,0x1, +0x5,0x2,0xa3,0xff,0x9,0xff,0x5a,0x1,0xff,0x1,0xaa,0x0, +0xb5,0x0,0x44,0x0,0xf,0xfe,0x13,0xfe,0xe8,0xff,0x6f,0xff, +0xc3,0xfe,0xe7,0x0,0x59,0x2,0xae,0x0,0x66,0xff,0x74,0x0, +0xcd,0x0,0xf6,0xfe,0x5d,0xfe,0x57,0x0,0xd7,0x0,0x5,0xff, +0x6d,0xff,0xaa,0x1,0x2,0x1,0xe1,0xfe,0x53,0xff,0xf7,0x0, +0x88,0x1,0x22,0x1,0x3a,0xff,0x13,0xfd,0x30,0xfe,0x82,0x1, +0x3e,0x2,0xd4,0xff,0x38,0xfe,0xb9,0xff,0x22,0x2,0xe3,0x1, +0x3b,0xff,0xd5,0xfd,0x95,0xff,0x1c,0x2,0x3e,0x1,0x46,0xfd, +0xe0,0xfc,0x2,0x2,0x52,0x4,0x22,0x0,0x12,0xfd,0xcc,0xfe, +0xad,0x0,0xa,0x1,0x1f,0x1,0xf3,0xff,0x4d,0xfe,0x24,0xff, +0xc6,0x1,0x81,0x2,0xc6,0x0,0xf3,0xff,0xf7,0x0,0x89,0x0, +0x89,0xfe,0x4c,0xfe,0x1,0xff,0x28,0xff,0xff,0x0,0xb2,0x2, +0x49,0x0,0xd,0xfe,0x5d,0x0,0x15,0x2,0xcd,0xff,0x4d,0xfe, +0x28,0x0,0xad,0x1,0x26,0x0,0x31,0xfe,0x6c,0xff,0xdf,0x1, +0x62,0x1,0x67,0xff,0x34,0xff,0xe4,0xff,0x42,0x0,0x84,0x0, +0xff,0xff,0x6e,0xff,0x17,0x0,0x73,0x0,0xea,0xff,0x1a,0x0, +0x21,0x0,0xf2,0xfe,0xeb,0xfe,0x91,0x0,0xde,0x0,0x2e,0xff, +0x5b,0xfe,0x3d,0x0,0xff,0x2,0xd0,0x2,0x6e,0xff,0x92,0xfd, +0x4c,0xff,0xd1,0x0,0x20,0x0,0xc6,0xff,0x5b,0x0,0xd2,0xff, +0xe5,0xfe,0xac,0xff,0xcd,0x0,0x17,0x0,0x2c,0xff,0x80,0x0, +0x29,0x2,0xfa,0x0,0x97,0xfe,0x98,0xfe,0x4d,0x0,0x13,0x1, +0xf0,0x0,0x9a,0x0,0x1d,0x0,0x23,0x0,0x21,0x0,0xf6,0xfe, +0xce,0xfe,0xf6,0x0,0x49,0x1,0x72,0xfe,0x2f,0xfe,0xca,0x1, +0xb7,0x2,0x86,0xff,0x28,0xfe,0xba,0xff,0x60,0x0,0xa0,0x0, +0xf9,0x1,0x7b,0x1,0x3a,0xff,0x49,0xff,0x83,0xff,0x32,0xfc, +0xa7,0xfb,0xee,0x2,0x10,0x8,0x74,0x2,0xd4,0xfb,0x57,0xfe, +0x32,0x2,0x82,0xff,0xef,0xfd,0x90,0x1,0xce,0x1,0x32,0xfe, +0x95,0xfe,0x61,0xff,0xc9,0xfb,0xd5,0xfc,0x35,0x5,0x47,0x7, +0x49,0xff,0x4b,0xfb,0xd8,0x0,0xe2,0x3,0xa2,0xfe,0xa3,0xfc, +0x7,0x3,0xe8,0x4,0x2c,0xfe,0x4e,0xfc,0x11,0x1,0xb3,0x0, +0x4b,0xfd,0xe0,0xff,0x46,0x3,0xad,0x0,0x7e,0xfd,0x48,0xff, +0x30,0x2,0xbc,0x0,0x8,0xfe,0x62,0x0,0xf,0x3,0x42,0xff, +0x4d,0xfd,0xfd,0x2,0x54,0x4,0xfc,0xfd,0x12,0xfd,0xe2,0x1, +0x80,0x1,0x67,0xfe,0xea,0xff,0x17,0x2,0xb,0x0,0xf3,0xfd, +0x81,0x0,0x25,0x3,0xcd,0xff,0x11,0xfd,0x44,0x2,0xd5,0x4, +0x66,0xfd,0x6b,0xfa,0xdd,0x1,0x79,0x4,0x37,0xff,0xc1,0xfe, +0xb6,0x2,0xa5,0x1,0x24,0xfd,0xfa,0xfc,0x96,0x1,0x8,0x3, +0x27,0xfe,0x9f,0xfc,0x36,0x2,0xf1,0x2,0x44,0xfd,0x33,0xfe, +0x87,0x3,0x6f,0x1,0x23,0xfd,0xe0,0xff,0x9b,0x3,0xd5,0x0, +0x7b,0xfc,0xc4,0xfe,0x46,0x4,0x42,0x2,0x3c,0xfc,0x97,0xfe, +0x57,0x3,0xea,0xff,0xf7,0xfd,0x3e,0x2,0x4c,0x0,0x4a,0xfb, +0x92,0x0,0xd6,0x6,0x7a,0x1,0x65,0xfb,0x73,0xff,0x42,0x4, +0xfc,0xff,0xf1,0xfa,0x2,0x0,0xef,0x5,0x63,0x0,0x6,0xfb, +0xc8,0x0,0x44,0x3,0xd8,0xfc,0xa9,0xfd,0xca,0x4,0xa8,0x2, +0x89,0xfc,0x0,0xff,0xba,0x3,0x4c,0x1,0xf3,0xfc,0x52,0xff, +0x59,0x4,0xb5,0x1,0x0,0xfc,0x5a,0xff,0x1e,0x4,0x69,0xfe, +0x77,0xfa,0x17,0x2,0xf4,0x5,0xe6,0xfe,0xd1,0xfb,0xac,0x1, +0x77,0x4,0xfe,0xff,0x5d,0xfd,0xd6,0x0,0x4e,0x2,0x79,0xfe, +0xb2,0xfe,0x27,0x3,0xce,0x0,0x97,0xfc,0x4e,0x1,0x66,0x4, +0xfd,0xfd,0xb5,0xfc,0xf,0x4,0x9,0x4,0xa3,0xfc,0xb9,0xfc, +0x94,0x2,0x6d,0x1,0x13,0xfc,0xe2,0xfe,0x62,0x5,0x98,0x1, +0x82,0xfa,0x38,0xff,0x11,0x5,0xf3,0xfe,0xdc,0xfb,0x2a,0x4, +0x83,0x5,0x84,0xfc,0xee,0xfb,0xd5,0x3,0xb0,0x3,0xce,0xfc, +0x9a,0xfd,0xaf,0x4,0xd9,0x3,0x7a,0xfc,0x35,0xfd,0x89,0x2, +0xfb,0xfe,0xab,0xfb,0x34,0x3,0xf5,0x5,0x27,0xfd,0xb1,0xfb, +0x82,0x3,0x36,0x2,0x7c,0xfa,0x1a,0xfd,0x3a,0x5,0x6a,0x3, +0xed,0xfc,0xec,0xff,0x4d,0x4,0xbd,0xfc,0xca,0xf8,0x7c,0x5, +0xc4,0x9,0x22,0xfa,0x13,0xf7,0xcd,0x7,0xc8,0x8,0x8d,0xf8, +0xf6,0xf8,0x87,0x6,0x51,0x4,0x72,0xf9,0xd2,0xfd,0xff,0x6, +0x38,0x0,0x82,0xf8,0xc3,0x2,0x26,0x9,0x3f,0xfb,0x97,0xf6, +0xd6,0x6,0x23,0x9,0x5d,0xf9,0xb3,0xfa,0x39,0x8,0xe2,0x2, +0x7a,0xf7,0x53,0xff,0x29,0x9,0x59,0x0,0x83,0xf7,0x4a,0x0, +0xfb,0x6,0x97,0xfc,0xdc,0xf8,0x8e,0x7,0x47,0xa,0x3d,0xf9, +0x65,0xf7,0xaf,0x6,0x7,0x5,0x49,0xf8,0x5f,0xfd,0x75,0x7, +0x18,0x0,0x3,0xf8,0xca,0x0,0x48,0x8,0xcd,0xfe,0xe2,0xf7, +0x23,0x3,0xe,0x9,0x31,0xfa,0x3d,0xf4,0x5,0x5,0xa7,0xa, +0x3a,0xfc,0x22,0xfb,0x69,0x8,0x51,0x6,0xc,0xfa,0x99,0xfb, +0x7f,0x3,0x54,0x0,0xae,0xfa,0xe0,0xff,0xdf,0x4,0xbb,0xfc, +0xc2,0xf6,0xdb,0x0,0x56,0x7,0x23,0xfe,0xd4,0xfb,0x42,0x6, +0xfe,0x5,0x2e,0xfc,0x68,0xfd,0xd6,0x3,0x18,0x1,0x2f,0xfd, +0xb5,0x0,0x53,0x3,0xb4,0xfe,0x1e,0xfb,0x15,0x0,0x50,0x4, +0x47,0xfe,0xc7,0xf9,0x6b,0x0,0xa9,0x3,0x9f,0xfc,0x20,0xfb, +0x63,0x2,0x19,0x4,0x53,0xff,0x88,0xfe,0x5e,0x2,0x5d,0x3, +0x70,0xff,0x17,0xfe,0x32,0x3,0x73,0x4,0x61,0xfd,0x28,0xfb, +0xa7,0x0,0x3a,0x0,0x99,0xfa,0x2a,0xfc,0xc,0x2,0x98,0x2, +0xc5,0xff,0x9b,0xff,0xe6,0x1,0x60,0x2,0xe5,0xff,0xff,0xfe, +0xef,0x0,0xf1,0x0,0x79,0xff,0x18,0x0,0xed,0xff,0x40,0xfe, +0xc7,0xff,0x74,0x2,0x57,0x1,0x32,0xff,0x4f,0xff,0x34,0x0, +0x33,0x0,0x6f,0xfe,0xea,0xfc,0x14,0xff,0x3d,0x1,0xe7,0xfe, +0xd3,0xfd,0xa3,0x1,0x1b,0x3,0x32,0x0,0xf,0x0,0xa3,0x2, +0xce,0x0,0x41,0xfc,0xd5,0xfd,0xd3,0x3,0xfb,0x2,0x80,0xfc, +0xcf,0xfc,0x9b,0x1,0x61,0xff,0x47,0xfc,0xdd,0x1,0x9,0x5, +0x0,0xfe,0x16,0xfb,0x4f,0x2,0x51,0x4,0xe5,0xfc,0x90,0xfb, +0x58,0x3,0xac,0x4,0x41,0xfd,0x67,0xfc,0xdc,0x2,0xd,0x2, +0x51,0xfc,0x51,0xff,0x15,0x5,0x4,0x1,0x33,0xfb,0x2c,0xfe, +0x78,0x1,0xd3,0xfd,0x3f,0xfc,0x76,0x1,0x60,0x3,0x4c,0xfe, +0x35,0xfd,0xb1,0x2,0x15,0x3,0x21,0xfe,0xcc,0xff,0x76,0x4, +0x59,0x0,0x5f,0xfb,0x7c,0x0,0x86,0x4,0x30,0xfe,0xc6,0xfa, +0xc5,0x1,0x6c,0x4,0x87,0xfc,0x24,0xfa,0x9c,0x2,0xde,0x4, +0x21,0xfd,0xdf,0xfc,0x69,0x4,0x66,0x2,0x1f,0xfb,0xa9,0xfe, +0x43,0x4,0xc4,0xfe,0xc8,0xfa,0x40,0x2,0xf,0x6,0x1d,0xfe, +0xd9,0xf9,0xcb,0x0,0x10,0x5,0xab,0xff,0x33,0xfc,0xcd,0xff, +0x1c,0x1,0x94,0xfe,0xa5,0xff,0x56,0x1,0x81,0xfe,0x71,0xfe, +0x7c,0x3,0xf4,0x2,0x9a,0xfc,0x74,0xfc,0x10,0x2,0x3a,0x2, +0x39,0xfd,0x0,0xfd,0xf0,0x1,0x69,0x2,0x62,0xfd,0x10,0xfd, +0x48,0x2,0xb,0x2,0xfb,0xfc,0x78,0xfe,0xb3,0x3,0x68,0x1, +0x3,0xfc,0x25,0xfe,0x3,0x3,0x16,0x1,0x24,0xfd,0xbd,0xff, +0x67,0x3,0xda,0xff,0x34,0xfc,0x53,0x0,0x98,0x2,0x9e,0xfc, +0x35,0xfb,0xac,0x2,0xeb,0x3,0xec,0xfc,0xc5,0xfc,0xbd,0x2, +0x75,0x1,0x5e,0xfc,0xd4,0xfe,0x8f,0x3,0x18,0x1,0xdd,0xfd, +0x48,0x1,0xc,0x3,0x80,0xfd,0xb7,0xfb,0x23,0x2,0x3d,0x3, +0x57,0xfc,0x80,0xfc,0xcd,0x3,0xaf,0x2,0xc9,0xfb,0xc0,0xfd, +0x71,0x3,0x3a,0x0,0xd4,0xfb,0x1f,0x1,0xda,0x5,0x8b,0xff, +0xe,0xfa,0x6,0x0,0x10,0x5,0xdf,0xff,0xb7,0xfd,0x32,0x4, +0xc,0x3,0xb2,0xf8,0x72,0xf9,0x77,0x4,0xad,0x3,0xd9,0xf9, +0x2b,0xfc,0x92,0x5,0x21,0x3,0xc3,0xfb,0x2,0xff,0x45,0x4, +0x14,0x0,0xf,0xfd,0x75,0x2,0xc,0x3,0xac,0xfb,0x63,0xfc, +0xa5,0x4,0x6a,0x2,0xda,0xf9,0x5a,0xfd,0x74,0x5,0x9b,0x1, +0x8,0xfc,0x20,0x1,0x6,0x4,0x24,0xfd,0x3d,0xfb,0xd5,0x1, +0x0,0x2,0x2b,0xfc,0xe9,0xfe,0x1a,0x6,0x98,0x2,0xd3,0xfa, +0x9b,0xfe,0x54,0x6,0x9f,0x2,0x1d,0xfc,0x1e,0x0,0x47,0x4, +0xda,0xfd,0xdf,0xf8,0x5f,0xfe,0x1e,0x3,0x38,0x0,0x32,0xfe, +0xc2,0x0,0x76,0x1,0x30,0xff,0x7a,0xff,0xf3,0x1,0x65,0x1, +0x8e,0xff,0x8c,0x1,0x2d,0x3,0xf1,0xfe,0xd1,0xfb,0xa6,0xff, +0xff,0x1,0xbe,0xfe,0x33,0xff,0xe9,0x3,0x5,0x2,0xa0,0xfb, +0xba,0xfc,0x64,0x2,0xf0,0x0,0xba,0xfb,0xcb,0xfd,0x39,0x3, +0x9e,0x1,0xe4,0xfd,0x37,0x1,0xa2,0x4,0xb2,0x0,0x6e,0xfe, +0x63,0x2,0xed,0x1,0x89,0xfc,0x26,0xfe,0xc3,0x3,0x7,0x1, +0xd2,0xfa,0x5,0xfd,0xf4,0x2,0x69,0x2,0xcf,0xfe,0x97,0xff, +0x71,0x1,0x54,0xff,0xd7,0xfd,0xa7,0x0,0xf3,0x1,0xbd,0xff, +0x87,0x0,0x3a,0x3,0x41,0x0,0xa4,0xfb,0x26,0xfe,0xbd,0x2, +0xf1,0x0,0x91,0xfd,0xbf,0xff,0xff,0x2,0x22,0x1,0x33,0xfe, +0xa6,0xff,0x39,0x1,0x85,0xfe,0x88,0xfd,0xaa,0x1,0x85,0x2, +0xc9,0xfd,0x97,0xfd,0x8c,0x2,0x26,0x2,0x40,0xfe,0xa6,0x0, +0x8e,0x4,0xa3,0x0,0xb8,0xfb,0xd,0xff,0x52,0x3,0xb9,0xff, +0xb1,0xfb,0x7b,0xff,0xbb,0x3,0x1d,0x1,0x69,0xfe,0x98,0x0, +0x75,0x1,0x98,0xff,0xae,0x0,0x48,0x2,0x1c,0xff,0x43,0xfc, +0x96,0xfe,0xd7,0x0,0xee,0xff,0xee,0xff,0x6f,0x1,0x2f,0x1, +0x13,0x0,0x73,0x0,0xc0,0x0,0x96,0xff,0x35,0xff,0xb9,0x0, +0x2c,0x1,0x31,0xff,0x4a,0xfe,0x53,0x0,0xbf,0x1,0x3f,0x0, +0xb2,0xfe,0xb5,0xff,0xd1,0x1,0xec,0x1,0x8f,0xff,0x42,0xfe, +0xfb,0xff,0xa9,0x0,0x3f,0xfe,0x42,0xfe,0x13,0x2,0x52,0x2, +0xf,0xfe,0x81,0xfd,0x34,0x1,0x7b,0x1,0x81,0xfe,0xe6,0xfe, +0xcb,0x1,0x69,0x1,0xd1,0xfe,0xea,0xfe,0x8d,0x0,0xdf,0xff, +0xba,0xfe,0x38,0x0,0x93,0x1,0x43,0x0,0x55,0xff,0xfe,0xff, +0x50,0xff,0x44,0xfe,0xf5,0xff,0x9b,0x1,0xb8,0xff,0xa4,0xfd, +0xe9,0xfe,0xba,0x0,0x23,0x0,0x6d,0xff,0xd3,0x0,0xb3,0x1, +0xf6,0xff,0x6,0xff,0xfb,0x0,0x81,0x1,0x2c,0xff,0x52,0xff, +0x12,0x2,0x3d,0x1,0x20,0xfe,0xf4,0xfe,0x36,0x1,0x9f,0xff, +0xef,0xfd,0x43,0x0,0xdf,0x1,0x76,0xff,0x2b,0xfe,0x89,0x0, +0x3b,0x1,0xb0,0xfe,0xb2,0xfe,0xcb,0x1,0xfa,0x1,0xdb,0xff, +0x88,0x0,0x7d,0x1,0x49,0xff,0xc4,0xfe,0xc5,0x1,0x6,0x2, +0xc,0xff,0xef,0xfe,0xcf,0x0,0x8,0x0,0xce,0xfe,0x40,0x0, +0x7a,0x1,0x82,0x0,0x0,0x0,0xa6,0x0,0x26,0x0,0x12,0xff, +0x82,0xff,0xc8,0xff,0x5c,0xfe,0x83,0xfe,0x33,0x1,0x61,0x1, +0x60,0xfe,0x3b,0xfe,0x74,0x1,0x5a,0x2,0x93,0x0,0xe,0x0, +0xbb,0x0,0xba,0x0,0x1d,0x0,0xdf,0xfe,0xb6,0xfd,0xca,0xfe, +0x29,0x1,0x6c,0x1,0x42,0x0,0xa4,0x0,0x25,0x1,0xe1,0xfe, +0x16,0xfc,0x99,0xfc,0xff,0xfe,0xdc,0xff,0x1,0x0,0x46,0x1, +0xe4,0x1,0xd6,0x0,0xbc,0x0,0xd2,0x1,0xee,0x0,0xd3,0xfe, +0x3d,0xff,0x1,0x1,0x7c,0x0,0xf6,0xfe,0x7c,0xff,0xdd,0x0, +0xc9,0x0,0x6,0x0,0xfd,0xff,0xe,0x0,0x82,0xff,0x32,0xff, +0x79,0xff,0x3e,0xff,0x31,0xff,0x88,0x1,0xcf,0x3,0x55,0x1, +0x75,0xfd,0xf6,0xfe,0x46,0x2,0x1b,0x0,0x6b,0xfc,0x2c,0xfe, +0x69,0x1,0x6d,0x0,0xe,0xff,0x4e,0x1,0xbb,0x2,0x9,0x0, +0x1a,0xfe,0xed,0xff,0xbf,0x0,0xee,0xfe,0x8f,0xff,0x11,0x2, +0xc0,0x0,0x51,0xfe,0x4a,0x0,0x4f,0x2,0x20,0x0,0xde,0xfe, +0x91,0x0,0x1f,0x0,0xd4,0xfd,0x98,0xfe,0xfc,0x0,0x82,0x0, +0xc2,0xfe,0x1b,0x0,0xff,0x2,0x3c,0x2,0xd,0xff,0x27,0xff, +0x28,0x1,0xd9,0xff,0x9b,0xfd,0xae,0xfe,0x11,0x0,0x7,0xff, +0xb8,0xfe,0xb2,0x0,0xcc,0x1,0xf0,0xff,0x5,0xfe,0x1,0x0, +0x22,0x3,0x4b,0x1,0x81,0xfd,0xe4,0xfe,0xf3,0x1,0x84,0x0, +0xa0,0xfe,0x31,0x0,0x24,0x1,0xf1,0xff,0xdb,0xff,0x76,0x0, +0x45,0xff,0x2,0xfe,0x8d,0xff,0xbd,0x1,0x67,0x0,0xd0,0xfd, +0x41,0xff,0xcd,0x1,0x2b,0x0,0x77,0xfe,0x9f,0x0,0x71,0x1, +0x2e,0xff,0x11,0xff,0xc6,0x0,0x3a,0x0,0xf8,0xfe,0x73,0xff, +0x2a,0x0,0x17,0x0,0x5c,0x0,0x7d,0x1,0xe4,0x1,0xd4,0xff, +0x87,0xfd,0x5f,0xfe,0x23,0x0,0x95,0xff,0x6,0xff,0x1c,0x0, +0x29,0x0,0xd3,0xfe,0xbb,0xfe,0x33,0x0,0x46,0x1,0xa0,0x0, +0x8a,0xff,0x3e,0x0,0x17,0x1,0x9c,0xff,0xf3,0xfe,0x3b,0x1, +0xca,0x1,0x3e,0xff,0xce,0xfe,0xd8,0x0,0x7b,0x0,0x2,0xfe, +0xda,0xfd,0xf,0x0,0xbd,0x0,0x4c,0xff,0x68,0xff,0x75,0x1, +0x3a,0x1,0xd0,0xfe,0x6,0xff,0x61,0x1,0x43,0x1,0x1c,0xff, +0x80,0xfe,0x86,0xff,0x3b,0x0,0x1e,0x0,0xce,0xff,0xb9,0xff, +0xd3,0xff,0x45,0x0,0xdc,0x0,0x53,0x0,0x25,0xff,0xbf,0xff, +0x1,0x1,0xd6,0xff,0x9f,0xfe,0xd0,0x0,0xb2,0x2,0x4e,0x0, +0xdb,0xfd,0x78,0xff,0x24,0x1,0x7c,0xff,0xb1,0xfe,0xbe,0x0, +0x5c,0x0,0x5a,0xfd,0xbb,0xfe,0xf4,0x2,0x83,0x1,0x49,0xfd, +0x2e,0xff,0x2d,0x3,0xee,0x0,0x20,0xfd,0x7,0xff,0xf1,0x1, +0x38,0x0,0x70,0xfe,0x41,0x0,0xea,0x0,0x21,0xff,0x28,0x0, +0x90,0x2,0x74,0x0,0xcc,0xfd,0x6c,0x0,0x43,0x2,0x7a,0xfe, +0xb1,0xfc,0xb8,0x0,0xb3,0x2,0xc7,0xff,0xa9,0xfe,0xc2,0x0, +0x81,0x0,0x58,0xfe,0xd6,0xff,0xcd,0x2,0xdb,0x0,0x7b,0xfd, +0x4c,0xff,0x70,0x1,0x41,0xfe,0x99,0xfc,0x21,0x1,0xaf,0x3, +0x2d,0x0,0x3b,0xfe,0x17,0x1,0x53,0x2,0xa8,0xff,0xc6,0xfe, +0x17,0x1,0xed,0x0,0x19,0xfe,0x0,0xff,0xc,0x2,0x29,0x0, +0xc,0xfd,0xe0,0xff,0x3,0x3,0xfd,0xff,0x69,0xfd,0x58,0x0, +0xf4,0x1,0xad,0xfe,0x8d,0xfd,0x7e,0x1,0x30,0x3,0x92,0xff, +0xe2,0xfd,0xb3,0x0,0xdd,0x0,0x82,0xfd,0xfb,0xfd,0x31,0x1, +0x54,0x0,0x42,0xfe,0x61,0x0,0x6c,0x2,0x6b,0x0,0xa,0xff, +0xfa,0x0,0x71,0x1,0x95,0xfe,0xdc,0xfd,0x22,0x1,0xdb,0x1, +0xe0,0xfd,0xdf,0xfc,0x3b,0x1,0xed,0x2,0xc6,0xff,0xb1,0xfe, +0x8c,0x0,0xe0,0xff,0xba,0xfd,0x8,0xff,0x90,0x1,0x58,0x0, +0x33,0xfe,0x2f,0x0,0x5c,0x2,0x6f,0xff,0xf,0xfd,0xd4,0x0, +0x63,0x3,0x22,0xff,0x67,0xfc,0x59,0x0,0xb9,0x2,0x53,0xff, +0x85,0xfd,0x2d,0x0,0x1d,0x1,0x4e,0xff,0x23,0x0,0x3b,0x2, +0x17,0x0,0x5f,0xfd,0xf0,0xff,0x63,0x2,0x15,0xff,0xc9,0xfc, +0x6f,0x0,0x9f,0x2,0x54,0xff,0xbf,0xfd,0xc2,0x0,0xb0,0x1, +0xc6,0xfe,0x68,0xfe,0x65,0x1,0x81,0x1,0xd1,0xfe,0x31,0xff, +0x57,0x1,0x26,0x0,0x6b,0xfe,0x82,0x0,0x6a,0x2,0x40,0x0, +0x1d,0xfe,0x5e,0xff,0x85,0x0,0xa,0xff,0x40,0xfe,0x13,0x0, +0xd1,0x0,0xf2,0xfe,0x9b,0xfe,0xaa,0x0,0xe6,0x0,0x73,0xff, +0xe1,0xff,0xa5,0x0,0x4c,0xff,0xc1,0xfe,0x97,0x0,0x17,0x1, +0x13,0xff,0x9c,0xfe,0xc,0x1,0xe,0x2,0xba,0xff,0x7c,0xfe, +0x20,0x0,0x2b,0x0,0xfe,0xfd,0x7b,0xfe,0x15,0x1,0xb,0x1, +0x6f,0xff,0xb4,0xff,0x94,0x0,0x3c,0x0,0xe2,0xff,0x4a,0x0, +0x70,0x0,0xdd,0xff,0x85,0xff,0xef,0xff,0xe4,0xff,0x20,0xff, +0x6b,0xff,0x69,0x0,0x1a,0x0,0xb1,0xff,0xa4,0x0,0xd7,0x0, +0x99,0xff,0x33,0xff,0xb9,0xff,0xcb,0xff,0xfd,0xff,0xb7,0x0, +0xc3,0x0,0x86,0xff,0x42,0xfe,0xc1,0xfe,0x4e,0x0,0x61,0x0, +0x99,0xff,0x5b,0x0,0x24,0x1,0x8,0x0,0x43,0xff,0x3,0x0, +0xc,0x0,0x3f,0xff,0xa5,0xff,0xef,0x0,0x2d,0x1,0x23,0x0, +0x58,0xff,0x7d,0xff,0x8c,0xff,0x90,0xff,0xa2,0x0,0x4a,0x1, +0x5,0x0,0x53,0xff,0x64,0x0,0x3b,0x0,0xb4,0xfe,0xfb,0xfe, +0x6b,0x0,0x22,0x0,0x1,0xff,0x6e,0xff,0xc0,0x0,0xd8,0x0, +0xf6,0xff,0xe5,0xff,0x57,0x0,0x4,0x0,0xdc,0xff,0x56,0x0, +0xa0,0xff,0x68,0xfe,0x51,0xff,0xee,0x0,0x84,0x0,0x99,0xff, +0x15,0x0,0x69,0x0,0x7e,0xff,0xf7,0xfe,0xe8,0xff,0xcb,0x0, +0x3c,0x0,0x81,0xff,0xce,0xff,0xc4,0xff,0x11,0xff,0x92,0xff, +0xb4,0x0,0x59,0x0,0x96,0xff,0x33,0x0,0xee,0x0,0x64,0x0, +0x6d,0xff,0x18,0xff,0x4c,0xff,0x78,0xff,0xb3,0xff,0x4c,0x0, +0x79,0x0,0xdd,0xff,0xb4,0xff,0x8,0x0,0xa2,0xff,0x57,0xff, +0x1e,0x0,0x74,0x0,0xe7,0xff,0x19,0x0,0xd1,0x0,0x62,0x0, +0x2a,0xff,0x5,0xff,0x38,0x0,0xec,0x0,0x34,0x0,0xb2,0xff, +0x9,0x0,0x93,0xff,0xb5,0xfe,0x6c,0xff,0xc6,0x0,0x2,0x1, +0xca,0x0,0x82,0x0,0x9d,0xff,0x2,0xff,0xa4,0xff,0x9e,0x0, +0xcb,0x0,0x5e,0x0,0x6b,0x0,0xd8,0x0,0x1b,0x0,0xa1,0xfe, +0xad,0xfe,0xba,0xff,0xce,0xff,0xc1,0xff,0x7c,0x0,0x8f,0x0, +0xc7,0xff,0xa7,0xff,0x2e,0x0,0x3e,0x0,0xde,0xff,0x25,0x0, +0x23,0x1,0xcf,0x0,0xc1,0xfe,0x4e,0xfe,0x8e,0x0,0xc0,0x1, +0x6c,0x0,0x66,0xff,0xc5,0xff,0x8,0x0,0xc6,0xff,0xb1,0xff, +0xe6,0xff,0xdd,0xff,0x90,0xff,0xe5,0xff,0x92,0x0,0x1c,0x0, +0x6d,0xff,0x46,0x0,0x7,0x1,0x22,0x0,0x8a,0xff,0x2b,0x0, +0x3a,0x0,0x72,0xff,0x4c,0xff,0x5,0x0,0x86,0x0,0x48,0x0, +0x21,0x0,0x74,0x0,0x8,0x0,0x14,0xff,0x93,0xff,0xa5,0x0, +0x4,0x0,0x33,0xff,0x29,0x0,0x0,0x1,0x37,0x0,0x81,0xff, +0xfb,0xff,0x51,0x0,0x95,0xff,0x33,0xff,0x66,0x0,0x2f,0x1, +0xef,0xff,0x30,0xff,0x5b,0x0,0x8f,0x0,0x41,0xff,0x7a,0xff, +0xfd,0x0,0xe0,0x0,0x92,0xff,0x89,0xff,0x7c,0x0,0x47,0x0, +0x2c,0xff,0x81,0xff,0xaf,0x0,0xf6,0xff,0xcb,0xfe,0x36,0x0, +0xad,0x1,0xfe,0xff,0x4a,0xfe,0xba,0xff,0x93,0x1,0xe9,0x0, +0x5b,0xff,0x4b,0xff,0xf7,0xff,0xaf,0xff,0x59,0xff,0x14,0x0, +0x26,0x0,0x1a,0xff,0xa1,0xff,0x56,0x1,0xe0,0x0,0x3c,0xff, +0x9c,0xff,0xb3,0x0,0xe6,0xff,0x93,0xfe,0x25,0xff,0xb9,0x0, +0xd3,0x0,0xa3,0xff,0x40,0xff,0x71,0xff,0x16,0xff,0x94,0xff, +0x12,0x1,0xcb,0x0,0x4f,0xff,0xf3,0xff,0x68,0x1,0x47,0x0, +0x43,0xfe,0xdc,0xfe,0xcd,0x0,0x96,0x0,0xca,0xfe,0xe1,0xfe, +0x8d,0x0,0x7b,0x0,0x6e,0xff,0x40,0x0,0x21,0x1,0xdf,0xff, +0x29,0xff,0x50,0x0,0x4c,0x0,0xa6,0xfe,0xa8,0xfe,0xb7,0x0, +0x50,0x1,0x53,0xff,0x46,0xfe,0x6,0x0,0x29,0x1,0xcf,0xff, +0x2d,0xff,0x4b,0x0,0x4a,0x0,0x58,0xff,0xee,0xff,0xe,0x1, +0x8d,0x0,0x4a,0xff,0x2a,0xff,0xfe,0xff,0x2d,0x0,0x8b,0xff, +0x8d,0xff,0x2b,0x0,0x16,0x0,0xf0,0xff,0x7c,0x0,0x75,0x0, +0xcc,0xff,0xff,0xff,0x6e,0x0,0xf3,0xff,0x8b,0xff,0xfe,0xff, +0x76,0x0,0x3e,0x0,0xa2,0xff,0x8d,0xff,0x1b,0x0,0x42,0x0, +0x4,0x0,0x20,0x0,0xed,0xff,0x6d,0xff,0xb,0x0,0xea,0x0, +0xf,0x0,0xc6,0xfe,0x3b,0xff,0x8f,0x0,0xbb,0x0,0xba,0xff, +0x68,0xff,0x8c,0x0,0x18,0x1,0xc9,0xff,0xe3,0xfe,0xbd,0xff, +0x91,0x0,0x6b,0x0,0x0,0x0,0xa4,0xff,0xa7,0xff,0x2b,0x0, +0x76,0x0,0x2c,0x0,0x94,0xff,0x41,0xff,0x13,0x0,0x3a,0x1, +0x85,0x0,0xb8,0xfe,0xa3,0xfe,0x12,0x0,0xb2,0x0,0xf,0x0, +0x92,0xff,0x34,0x0,0xf5,0x0,0x5d,0x0,0x74,0xff,0xce,0xff, +0x34,0x0,0xad,0xff,0xad,0xff,0x52,0x0,0x1e,0x0,0x6a,0xff, +0x83,0xff,0x36,0x0,0x7a,0x0,0x16,0x0,0x1d,0x0,0xf2,0x0, +0xcb,0x0,0x31,0xff,0xaa,0xfe,0xee,0xff,0xc9,0x0,0x9e,0x0, +0x5d,0x0,0x3,0x0,0x8a,0xff,0x5a,0xff,0x79,0xff,0xeb,0xff, +0x60,0x0,0x52,0x0,0x38,0x0,0x6c,0x0,0x59,0x0,0x19,0x0, +0x8,0x0,0xe1,0xff,0x2,0x0,0x6a,0x0,0xed,0xff,0x2c,0xff, +0xdf,0xff,0xd6,0x0,0x19,0x0,0xd0,0xfe,0x22,0xff,0xc4,0x0, +0x5c,0x1,0xf7,0xff,0x13,0xff,0x63,0x0,0x66,0x1,0x85,0x0, +0xd8,0xff,0xd,0x0,0xb3,0xff,0x42,0xff,0xe5,0xff,0xb3,0x0, +0x61,0x0,0x7b,0xff,0xaa,0xff,0xd1,0x0,0xac,0x0,0x47,0xff, +0x64,0xff,0xb2,0x0,0x78,0x0,0x6c,0xff,0xbe,0xff,0xa1,0x0, +0x9f,0x0,0x2c,0x0,0x2e,0x0,0x9c,0x0,0xb9,0x0,0x5e,0x0, +0x45,0x0,0x43,0x0,0xb7,0xff,0x8c,0xff,0x38,0x0,0x43,0x0, +0x75,0xff,0x2b,0xff,0x6f,0xff,0x9c,0xff,0xbb,0xff,0xb7,0xff, +0x8c,0xff,0x7f,0xff,0x72,0xff,0x9f,0xff,0x5f,0x0,0xe6,0x0, +0xc2,0x0,0xb0,0x0,0xa8,0x0,0x3c,0x0,0xf3,0xff,0xf8,0xff, +0xd,0x0,0x5f,0x0,0x62,0x0,0x93,0xff,0x3e,0xff,0x37,0x0, +0x25,0x1,0xbb,0x0,0x6d,0xff,0x5,0xff,0x6b,0x0,0x5a,0x1, +0xde,0xff,0x6e,0xfe,0x61,0xff,0xb6,0x0,0x9b,0x0,0x38,0x0, +0x71,0x0,0x85,0x0,0xd3,0xff,0x1c,0xff,0x78,0xff,0x15,0x0, +0xc0,0xff,0xd0,0xff,0xf2,0x0,0x2,0x1,0xd9,0xff,0xcf,0xff, +0xb4,0x0,0x81,0x0,0x50,0xff,0xda,0xfe,0xef,0xff,0x2a,0x1, +0x9d,0x0,0x46,0xff,0x6c,0xff,0x82,0x0,0xc5,0x0,0x3b,0x0, +0xc0,0xff,0xf7,0xff,0x95,0x0,0x30,0x0,0x9,0xff,0x45,0xff, +0x9c,0x0,0xdf,0x0,0x33,0x0,0x23,0x0,0x9a,0x0,0x87,0x0, +0xb3,0xff,0x16,0xff,0x6c,0xff,0xe5,0xff,0xe6,0xff,0x2c,0x0, +0x88,0x0,0xfc,0xff,0x57,0xff,0xaf,0xff,0x37,0x0,0x3d,0x0, +0x31,0x0,0x23,0x0,0xca,0xff,0x56,0xff,0x7a,0xff,0xa9,0x0, +0x98,0x1,0xb0,0x0,0x50,0xff,0x8d,0xff,0x4b,0x0,0x0,0x0, +0xa3,0xff,0xe6,0xff,0x12,0x0,0xfe,0xff,0x8,0x0,0x1e,0x0, +0xea,0xff,0x74,0xff,0x94,0xff,0x59,0x0,0x37,0x0,0x62,0xff, +0xdd,0xff,0xd6,0x0,0x31,0x0,0x38,0xff,0xc3,0xff,0xbb,0x0, +0xb1,0x0,0xcb,0xff,0xfd,0xfe,0x2d,0xff,0x7,0x0,0x5f,0x0, +0xff,0xff,0x91,0xff,0xbe,0xff,0x67,0x0,0x42,0x0,0x56,0xff, +0xb4,0xff,0xfb,0x0,0x87,0x0,0x3,0xff,0x1a,0xff,0x5b,0x0, +0xca,0x0,0x3a,0x0,0xc2,0xff,0x12,0x0,0x83,0x0,0x42,0x0, +0xa,0x0,0x4b,0x0,0xdf,0xff,0xf9,0xfe,0x14,0xff,0xca,0xff, +0xec,0xff,0xbb,0xff,0xdf,0xff,0x77,0x0,0xfe,0x0,0xa2,0x0, +0xea,0xff,0xf5,0xff,0x29,0x0,0xcf,0xff,0xde,0xff,0x90,0x0, +0xc1,0x0,0x12,0x0,0x22,0xff,0xf9,0xfe,0x24,0x0,0x33,0x1, +0x9d,0x0,0x91,0xff,0x9a,0xff,0x6,0x0,0xc7,0xff,0x47,0xff, +0x9e,0xff,0xbd,0x0,0xeb,0x0,0xcb,0xff,0x80,0xff,0x5d,0x0, +0x59,0x0,0x90,0xff,0x6f,0xff,0x8b,0xff,0x90,0xff,0x1d,0x0, +0xb7,0x0,0x8f,0x0,0xf5,0xff,0xa2,0xff,0xe4,0xff,0x1b,0x0, +0xbc,0xff,0xc0,0xff,0x75,0x0,0x41,0x0,0x5a,0xff,0xa6,0xff, +0x7b,0x0,0x24,0x0,0x70,0xff,0x94,0xff,0xa,0x0,0x1f,0x0, +0x0,0x0,0x24,0x0,0x58,0x0,0xe9,0xff,0x6c,0xff,0x9,0x0, +0xd3,0x0,0x53,0x0,0x63,0xff,0x64,0xff,0x19,0x0,0x9c,0x0, +0x62,0x0,0xdd,0xff,0xfa,0xff,0x26,0x0,0x8a,0xff,0x68,0xff, +0x5d,0x0,0x89,0x0,0x72,0xff,0xf4,0xfe,0xb7,0xff,0xa8,0x0, +0xc5,0x0,0xc,0x0,0xc2,0xff,0x74,0x0,0xab,0x0,0xd5,0xff, +0x3c,0xff,0x85,0xff,0x41,0x0,0x82,0x0,0xa8,0xff,0x3a,0xff, +0x7a,0x0,0x23,0x1,0xf9,0xff,0x79,0xff,0x4e,0x0,0x6d,0x0, +0xd0,0xff,0xbe,0xff,0xf2,0xff,0xbd,0xff,0x81,0xff,0x24,0x0, +0x1d,0x1,0xa1,0x0,0x46,0xff,0x5b,0xff,0x4d,0x0,0x5b,0x0, +0x1a,0x0,0x0,0x0,0xa1,0xff,0x94,0xff,0xf4,0xff,0x1a,0x0, +0x7e,0x0,0x25,0x1,0xdd,0x0,0xaf,0xff,0xc9,0xfe,0xfc,0xfe, +0x24,0x0,0xc4,0x0,0x9,0x0,0x9c,0xff,0x66,0x0,0xbe,0x0, +0xfa,0xff,0x8c,0xff,0xff,0xff,0x3c,0x0,0xa8,0xff,0x43,0xff, +0x9,0x0,0xdd,0x0,0x3a,0x0,0x46,0xff,0xbe,0xff,0x6f,0x0, +0xc4,0xff,0xf,0xff,0x8a,0xff,0xb,0x0,0xf2,0xff,0xc,0x0, +0x4a,0x0,0x1c,0x0,0xf6,0xff,0x50,0x0,0x94,0x0,0x20,0x0, +0x98,0xff,0xcd,0xff,0xba,0xff,0xb4,0xfe,0xc6,0xfe,0x8d,0x0, +0x59,0x1,0xa7,0x0,0x8b,0x0,0xc1,0x0,0xc,0x0,0x6b,0xff, +0xe9,0xff,0xa3,0x0,0x18,0x0,0xb2,0xfe,0xda,0xfe,0x60,0x0, +0x5d,0x0,0x90,0xff,0x8c,0x0,0x5f,0x1,0xa,0x0,0xe,0xff, +0xe9,0xff,0xb9,0x0,0x52,0x0,0x86,0xff,0x7f,0xff,0x32,0x0, +0x88,0x0,0x59,0x0,0x3,0x0,0x77,0xff,0xac,0xff,0xcb,0x0, +0x8e,0x0,0x5,0xff,0x24,0xff,0xa6,0x0,0xd5,0x0,0xf4,0xff, +0xfd,0xff,0xbc,0x0,0x6f,0x0,0x17,0xff,0xda,0xfe,0x12,0x0, +0x7d,0x0,0xdf,0xff,0x15,0x0,0xb7,0x0,0x55,0x0,0xcc,0xff, +0x30,0x0,0x8b,0x0,0xe4,0xff,0x4,0xff,0x2,0xff,0x9a,0xff, +0x7,0x0,0x60,0x0,0xd0,0x0,0xb7,0x0,0xe7,0xff,0x86,0xff, +0x3e,0x0,0xaf,0x0,0xcd,0xff,0xa,0xff,0x72,0xff,0xd6,0xff, +0xd7,0xff,0x4e,0x0,0xb4,0x0,0x6a,0x0,0x4f,0x0,0x97,0x0, +0x3f,0x0,0x43,0xff,0x29,0xff,0x6f,0x0,0xe0,0x0,0x49,0xff, +0x85,0xfe,0x43,0x0,0x81,0x1,0x53,0x0,0x4,0xff,0x93,0xff, +0xd5,0x0,0x94,0x0,0xe,0xff,0xd3,0xfe,0x47,0x0,0x4c,0x1, +0x57,0x1,0xc7,0x0,0x6a,0xff,0x8f,0xfe,0x4e,0xff,0xf9,0xff, +0xa1,0xff,0x9a,0xff,0x39,0x0,0x95,0x0,0x53,0x0,0xff,0xff, +0x4a,0x0,0xbe,0x0,0x72,0x0,0xd1,0xff,0x5f,0xff,0x18,0xff, +0xb5,0xff,0xe7,0x0,0xe7,0x0,0xe1,0xff,0x8f,0xff,0xdf,0xff, +0xdd,0xff,0xd0,0xff,0x40,0x0,0xa1,0x0,0xe,0x0,0x18,0xff, +0x17,0xff,0xce,0xff,0x4e,0x0,0xb0,0x0,0xbc,0x0,0x23,0x0, +0xe7,0xff,0x2f,0x0,0xb2,0xff,0xdb,0xfe,0x48,0xff,0x6d,0x0, +0xa5,0x0,0xc,0x0,0xb2,0xff,0xd7,0xff,0x54,0x0,0xdc,0x0, +0x97,0x0,0x92,0xff,0x5b,0xff,0x5,0x0,0xe1,0xff,0x59,0xff, +0x50,0x0,0xc5,0x1,0x48,0x1,0x7d,0xff,0xd6,0xfe,0x7b,0xff, +0xda,0xff,0xe2,0xff,0x4a,0x0,0x58,0x0,0xa3,0xff,0x99,0xff, +0x8d,0x0,0xfd,0x0,0x8e,0x0,0x39,0x0,0x20,0x0,0xb4,0xff, +0x1a,0xff,0x17,0xff,0xcc,0xff,0x72,0x0,0xae,0x0,0xb0,0x0, +0x63,0x0,0x26,0x0,0x68,0x0,0x5c,0x0,0xac,0xff,0x6a,0xff, +0xb5,0xff,0xcc,0xff,0xd8,0xff,0xf,0x0,0x53,0x0,0xe0,0x0, +0x30,0x1,0x71,0x0,0x6d,0xff,0x3e,0xff,0x88,0xff,0xae,0xff, +0xf6,0xff,0x9b,0x0,0xfb,0x0,0x89,0x0,0x1d,0x0,0x83,0x0, +0xbc,0x0,0xa,0x0,0x86,0xff,0x98,0xff,0x50,0xff,0xfd,0xfe, +0xd5,0xff,0x4e,0x1,0x9e,0x1,0x82,0x0,0x8e,0xff,0xb2,0xff, +0x15,0x0,0xe,0x0,0x1f,0x0,0x47,0x0,0xb,0x0,0xf2,0xff, +0x31,0x0,0x11,0x0,0x10,0x0,0xe4,0x0,0xb,0x1,0xb8,0xff, +0xe1,0xfe,0x65,0xff,0xdb,0xff,0xfd,0xff,0x77,0x0,0xc6,0x0, +0x73,0x0,0x37,0x0,0x56,0x0,0xf,0x0,0x7b,0xff,0xf1,0xff, +0x13,0x1,0xa4,0x0,0x21,0xff,0x5a,0xff,0x9b,0x0,0x36,0x0, +0x6a,0xff,0x76,0x0,0x7c,0x1,0x47,0x0,0xbb,0xfe,0x51,0xff, +0xac,0x0,0x67,0x0,0x8d,0xff,0x19,0x0,0xb8,0x0,0x3,0x0, +0xdf,0xff,0x38,0x1,0x89,0x1,0xb1,0xff,0x58,0xfe,0x77,0xff, +0xed,0x0,0x20,0x0,0xe1,0xfe,0x3c,0x0,0xfd,0x1,0x7e,0x0, +0x63,0xfe,0xcd,0xff,0xe7,0x1,0x86,0x0,0x7d,0xfe,0x5e,0xff, +0x6a,0x0,0x57,0xff,0x2d,0xff,0xfb,0x0,0x83,0x1,0x5e,0x0, +0x48,0x0,0xcb,0x0,0x9c,0xff,0x31,0xfe,0x35,0xff,0xef,0x0, +0x9b,0x0,0xe4,0xff,0xc4,0x0,0x1c,0x1,0xf7,0xff,0xb3,0xff, +0x61,0x0,0xf8,0xff,0x1c,0xff,0x62,0xff,0x16,0x0,0x23,0x0, +0x2a,0x0,0x14,0x1,0xcd,0x1,0xce,0x0,0x4c,0xff,0x0,0xff, +0x13,0xff,0x0,0xff,0xa5,0xff,0x64,0x0,0x72,0x0,0x71,0x0, +0x77,0x0,0x70,0x0,0x9a,0x0,0x20,0x0,0xf8,0xfe,0xc2,0xfe, +0x7c,0xff,0xf8,0xff,0x68,0x0,0xff,0x0,0x10,0x1,0x8b,0x0, +0xfe,0xff,0xb4,0xff,0x7e,0xff,0x58,0xff,0xc2,0xff,0x53,0x0, +0x11,0x0,0xd0,0xff,0x79,0x0,0xa4,0x0,0xbf,0xff,0x97,0xff, +0x9a,0x0,0xee,0x0,0xcc,0xff,0xd7,0xfe,0x5e,0xff,0x52,0x0, +0xa1,0x0,0xdf,0x0,0xeb,0x0,0x8,0x0,0x38,0xff,0x70,0xff, +0xc8,0xff,0xeb,0xff,0x87,0x0,0x0,0x1,0x39,0x0,0x2d,0xff, +0x9c,0xff,0x6b,0x0,0xc4,0xff,0x74,0xff,0xdd,0x0,0xb,0x1, +0x4e,0xff,0x36,0xff,0xa1,0x0,0x4c,0x0,0xe,0xff,0x82,0xff, +0x89,0x0,0xe8,0xff,0xe3,0xfe,0xf1,0xff,0x82,0x1,0xa8,0x0, +0x62,0xff,0x4a,0x0,0xb9,0x0,0xc,0xff,0x5f,0xfe,0xae,0xff, +0x8c,0x0,0x59,0x0,0x3a,0x0,0x76,0x0,0x7d,0x0,0x1e,0x0, +0xcb,0xff,0x78,0xff,0xfd,0xfe,0x4e,0xff,0x44,0x0,0x56,0x0, +0xd,0x0,0xc5,0x0,0x7b,0x1,0x7,0x1,0xab,0xff,0x26,0xfe, +0xf1,0xfd,0x61,0xff,0x6d,0x0,0x6a,0x0,0xc7,0x0,0x5e,0x1, +0xfb,0x0,0x34,0x0,0x14,0x0,0xcc,0xff,0x96,0xfe,0x21,0xfe, +0x77,0xff,0x56,0x0,0xf1,0xff,0x9a,0x0,0xdb,0x1,0x18,0x1, +0x72,0xff,0x3d,0xff,0x65,0xff,0x96,0xfe,0x46,0xfe,0xac,0xff, +0x18,0x1,0xf9,0x0,0xcb,0x0,0x40,0x1,0x5d,0x0,0xcc,0xfe, +0x42,0xff,0x46,0x0,0x80,0xff,0xf2,0xfe,0x11,0x0,0xd4,0x0, +0x73,0x0,0x7f,0x0,0x8,0x1,0x45,0x0,0x7b,0xfe,0x4b,0xfe, +0xbf,0xff,0x2f,0x0,0xcf,0xff,0x6b,0x0,0x8,0x1,0x91,0x0, +0xfa,0xff,0xa3,0xff,0x76,0xff,0xb2,0xff,0xe9,0xff,0xe3,0xff, +0xe,0x0,0x44,0x0,0x64,0x0,0x9a,0x0,0x8f,0x0,0x22,0x0, +0xb5,0xff,0x59,0xff,0x2c,0xff,0x66,0xff,0xee,0xff,0x97,0x0, +0xd9,0x0,0x4c,0x0,0xae,0xff,0xb1,0xff,0xe0,0xff,0xc4,0xff, +0x98,0xff,0xe1,0xff,0xa7,0x0,0xc,0x1,0xb2,0x0,0x2a,0x0, +0x99,0xff,0x3a,0xff,0x8f,0xff,0xce,0xff,0x59,0xff,0x79,0xff, +0x96,0x0,0x40,0x1,0xf7,0x0,0x7a,0x0,0xd7,0xff,0xbd,0xfe, +0xff,0xfd,0xd2,0xfe,0x47,0x0,0x8b,0x0,0x6a,0x0,0x21,0x1, +0x5d,0x1,0x8f,0x0,0x34,0x0,0x14,0x0,0x8,0xff,0x29,0xfe, +0xdb,0xfe,0x40,0x0,0xdb,0x0,0xf0,0x0,0x8b,0x1,0xcb,0x1, +0x49,0x0,0x86,0xfe,0x75,0xfe,0x8,0xff,0x34,0xff,0xcd,0xff, +0xbf,0x0,0x52,0x1,0xa9,0x1,0x54,0x1,0xc2,0xff,0x6c,0xfe, +0xce,0xfe,0xa3,0xff,0x5b,0xff,0xf9,0xfe,0xd7,0xff,0x2b,0x1, +0xf7,0x1,0x22,0x2,0xff,0x0,0xc9,0xfe,0xf4,0xfd,0x23,0xff, +0xba,0xff,0x15,0xff,0x9c,0xff,0x6d,0x1,0x0,0x2,0xfb,0x0, +0x3b,0x0,0xf8,0xff,0x63,0xff,0x16,0xff,0x7b,0xff,0x98,0xff, +0x63,0xff,0xf5,0xff,0x21,0x1,0xba,0x1,0x50,0x1,0x29,0x0, +0xde,0xfe,0x4d,0xfe,0xd6,0xfe,0xbf,0xff,0x36,0x0,0x90,0x0, +0x33,0x1,0x20,0x1,0xfe,0xff,0x65,0xff,0xbd,0xff,0x8e,0xff, +0x24,0xff,0xbf,0xff,0x4f,0x0,0xe4,0xff,0xf,0x0,0x3e,0x1, +0x56,0x1,0xde,0xff,0xe5,0xfe,0x35,0xff,0x95,0xff,0x80,0xff, +0x9b,0xff,0x4a,0x0,0x5f,0x1,0x9,0x2,0x12,0x1,0xd6,0xfe, +0xc8,0xfd,0x18,0xff,0xac,0x0,0x8b,0x0,0xde,0xff,0x42,0x0, +0x9,0x1,0x1c,0x1,0xad,0x0,0xfb,0xff,0x5,0xff,0x79,0xfe, +0x1,0xff,0x20,0x0,0xbf,0x0,0xca,0x0,0x29,0x1,0x91,0x1, +0xb5,0x0,0x20,0xff,0x64,0xfe,0x76,0xfe,0xf0,0xfe,0xf,0x0, +0x13,0x1,0x3f,0x1,0x3e,0x1,0x34,0x1,0x7c,0x0,0x7c,0xff, +0xf9,0xfe,0xcc,0xfe,0xb5,0xfe,0x18,0xff,0x41,0x0,0x75,0x1, +0xcf,0x1,0x8f,0x1,0xfa,0x0,0xa1,0xff,0x30,0xfe,0x10,0xfe, +0xfa,0xfe,0xca,0xff,0x62,0x0,0xf7,0x0,0x3e,0x1,0x1d,0x1, +0xdf,0x0,0x4f,0x0,0x1,0xff,0xd,0xfe,0xe0,0xfe,0x25,0x0, +0xfd,0xff,0xd1,0xff,0x3a,0x1,0x71,0x2,0xab,0x1,0xf0,0xff, +0xad,0xfe,0x0,0xfe,0xc,0xfe,0x3b,0xff,0xa6,0x0,0xfd,0x0, +0xe0,0x0,0x27,0x1,0xf8,0x0,0x3a,0x0,0xdf,0xff,0x72,0xff, +0xb4,0xfe,0xd4,0xfe,0xb5,0xff,0x4e,0x0,0xbe,0x0,0x2e,0x1, +0x39,0x1,0xa8,0x0,0x85,0xff,0xa5,0xfe,0xbe,0xfe,0x15,0xff, +0x5c,0xff,0x43,0x0,0x5f,0x1,0xad,0x1,0xf5,0x0,0xa5,0xff, +0xee,0xfe,0x69,0xff,0xd4,0xff,0x8c,0xff,0x84,0xff,0x18,0x0, +0xd9,0x0,0x57,0x1,0x31,0x1,0x88,0x0,0x7e,0xff,0x52,0xfe, +0x51,0xfe,0xb1,0xff,0x86,0x0,0x5b,0x0,0xa4,0x0,0x68,0x1, +0x4e,0x1,0xf1,0xff,0x95,0xfe,0xb8,0xfe,0xc0,0xff,0x8,0x0, +0xe8,0xff,0x71,0x0,0x18,0x1,0xc,0x1,0x89,0x0,0x12,0x0, +0xa8,0xff,0xb,0xff,0xa4,0xfe,0xff,0xfe,0xcb,0xff,0xe0,0x0, +0x1,0x2,0xe9,0x1,0x90,0x0,0x71,0xff,0xb0,0xfe,0x40,0xfe, +0xf9,0xfe,0xfb,0xff,0x11,0x0,0x4d,0x0,0x46,0x1,0xa9,0x1, +0xd1,0x0,0x9d,0xff,0x14,0xff,0xd,0xff,0xe2,0xfe,0x1e,0xff, +0xfd,0xff,0x67,0x0,0xb7,0x0,0xb4,0x1,0xce,0x1,0x42,0x0, +0xb7,0xfe,0x18,0xfe,0x60,0xfe,0x86,0xff,0x94,0x0,0xd4,0x0, +0xbd,0x0,0xcf,0x0,0x1e,0x1,0xf7,0x0,0xc1,0xff,0xb4,0xfe, +0xb4,0xfe,0xdb,0xfe,0x3a,0xff,0x4e,0x0,0xf1,0x0,0xf9,0x0, +0x7c,0x1,0x87,0x1,0xce,0xff,0xf2,0xfd,0x1c,0xfe,0x6f,0xff, +0xc8,0xff,0xba,0xff,0xed,0x0,0xf4,0x1,0xfe,0x0,0xb0,0xff, +0x9a,0xff,0xab,0xff,0x4a,0xff,0x2d,0xff,0x80,0xff,0xbc,0xff, +0xd2,0xff,0x9a,0x0,0xdc,0x1,0x7a,0x1,0x62,0xff,0x51,0xfe, +0xe5,0xfe,0x59,0xff,0x66,0xff,0xd8,0xff,0xa5,0x0,0x3e,0x1, +0x38,0x1,0xa7,0x0,0xb0,0xff,0x9a,0xfe,0x89,0xfe,0x96,0xff, +0x1c,0x0,0xf8,0xff,0x3e,0x0,0x90,0x0,0xb5,0x0,0xf5,0x0, +0x68,0x0,0x1d,0xff,0xa5,0xfe,0x12,0xff,0xa4,0xff,0x65,0x0, +0xd,0x1,0x28,0x1,0xba,0x0,0xe9,0xff,0x45,0xff,0x23,0xff, +0x25,0xff,0x75,0xff,0x28,0x0,0x76,0x0,0x80,0x0,0xd3,0x0, +0xbd,0x0,0x8,0x0,0x95,0xff,0x76,0xff,0x34,0xff,0x1b,0xff, +0x95,0xff,0x46,0x0,0xa0,0x0,0xf7,0x0,0x73,0x1,0xd1,0x0, +0x9,0xff,0x56,0xfe,0x15,0xff,0x88,0xff,0xc7,0xff,0xaa,0x0, +0x22,0x1,0x9a,0x0,0x5e,0x0,0xc0,0x0,0x61,0x0,0x24,0xff, +0xb2,0xfe,0x52,0xff,0xb6,0xff,0xfa,0xff,0xbd,0x0,0x14,0x1, +0xbc,0x0,0xa7,0x0,0x6f,0x0,0x52,0xff,0x48,0xfe,0x86,0xfe, +0xce,0xff,0xcb,0x0,0xbb,0x0,0x8a,0x0,0xcd,0x0,0x8f,0x0, +0xdd,0xff,0xc5,0xff,0xd4,0xff,0x5e,0xff,0x16,0xff,0x74,0xff, +0x2c,0x0,0xf3,0x0,0x5c,0x1,0x17,0x1,0x49,0x0,0x56,0xff, +0xbd,0xfe,0xb5,0xfe,0x2f,0xff,0x25,0x0,0xf2,0x0,0xea,0x0, +0xce,0x0,0x17,0x1,0x7c,0x0,0xe2,0xfe,0x67,0xfe,0xa2,0xff, +0x74,0x0,0xd1,0xff,0x64,0xff,0x45,0x0,0x2,0x1,0xa3,0x0, +0x5f,0x0,0x76,0x0,0x9a,0xff,0x7c,0xfe,0x1b,0xff,0x95,0x0, +0xba,0x0,0x45,0x0,0xc0,0x0,0xc,0x1,0x23,0x0,0x59,0xff, +0x5c,0xff,0x66,0xff,0xad,0xff,0x76,0x0,0xae,0x0,0x33,0x0, +0x31,0x0,0x8a,0x0,0x31,0x0,0x6d,0xff,0x3f,0xff,0x95,0xff, +0xb5,0xff,0xae,0xff,0x19,0x0,0xca,0x0,0xfe,0x0,0x77,0x0, +0xa2,0xff,0x38,0xff,0x7d,0xff,0xc7,0xff,0xb3,0xff,0xf5,0xff, +0xa4,0x0,0xbd,0x0,0x36,0x0,0x15,0x0,0x42,0x0,0xd6,0xff, +0x43,0xff,0x90,0xff,0x1f,0x0,0xe7,0xff,0xc6,0xff,0x8e,0x0, +0xd5,0x0,0xd6,0xff,0x7d,0xff,0x6b,0x0,0x2a,0x0,0x6b,0xfe, +0x75,0xfe,0xa6,0x0,0x67,0x1,0x20,0x0,0xbc,0xff,0x73,0x0, +0x45,0x0,0x8e,0xff,0xa5,0xff,0xca,0xff,0x10,0xff,0xde,0xfe, +0x8b,0x0,0xf6,0x1,0xac,0x0,0xff,0xfe,0xfc,0xff,0x4f,0x1, +0xdd,0xff,0xe9,0xfd,0xba,0xfe,0xde,0x0,0xd,0x1,0x99,0xff, +0x84,0xff,0x6,0x1,0x25,0x1,0x50,0xff,0x72,0xfe,0x96,0xff, +0x5f,0x0,0x80,0xff,0x26,0xff,0xc4,0x0,0x99,0x1,0xe9,0xff, +0x36,0xff,0x4,0x1,0x4,0x1,0x62,0xfe,0x3c,0xfe,0x8,0x1, +0x74,0x1,0x31,0xff,0x56,0xff,0xc8,0x1,0x63,0x1,0x81,0xfe, +0x58,0xfe,0x81,0x0,0x5c,0x0,0x9d,0xfe,0x37,0xff,0x57,0x1, +0x70,0x1,0xba,0xff,0xf,0xff,0xc6,0xff,0x1,0x0,0x81,0xff, +0x5a,0xff,0xa5,0xff,0x2d,0x0,0xad,0x0,0x5a,0x0,0xaa,0xff, +0xb2,0xff,0xd2,0xff,0xc5,0xff,0x54,0x0,0x74,0x0,0x3c,0xff, +0xd6,0xfe,0x79,0x0,0x8d,0x1,0x2d,0x0,0xac,0xfe,0x9b,0xff, +0xfb,0x0,0xf6,0xff,0x97,0xfe,0x87,0xff,0xdb,0x0,0x90,0x0, +0xda,0xff,0xc9,0xff,0x9,0x0,0xfd,0xff,0x71,0xff,0x47,0xff, +0xd7,0xff,0xf9,0xff,0xbf,0xff,0x2e,0x0,0x96,0x0,0x1c,0x0, +0x7a,0xff,0x92,0xff,0x3d,0x0,0x46,0x0,0x4b,0xff,0x2a,0xff, +0x8d,0x0,0x9,0x1,0xc4,0xff,0x1b,0xff,0xd,0x0,0xa1,0x0, +0xb7,0xff,0x26,0xff,0x16,0x0,0x68,0x0,0x28,0xff,0xde,0xfe, +0x43,0x0,0xe9,0x0,0x1a,0x0,0x81,0xff,0xda,0xff,0x19,0x0, +0x61,0xff,0xca,0xfe,0xa5,0xff,0xc7,0x0,0xae,0x0,0x1,0x0, +0xdc,0xff,0x28,0x0,0x0,0x0,0xe,0xff,0xd0,0xfe,0x23,0x0, +0xef,0x0,0x1e,0x0,0xb1,0xff,0x72,0x0,0xa3,0x0,0xc4,0xff, +0x93,0xff,0x7a,0x0,0x35,0x0,0x87,0xfe,0xc4,0xfe,0xe3,0x0, +0xdd,0x0,0x52,0xff,0x2e,0x0,0xe1,0x1,0x9a,0x0,0x25,0xfe, +0x63,0xfe,0x76,0x0,0xe4,0x0,0x9b,0xff,0x6a,0xff,0x95,0x0, +0xef,0x0,0x33,0x0,0xab,0xff,0x77,0xff,0x4f,0xff,0x73,0xff, +0xf8,0xff,0x8d,0x0,0xa2,0x0,0x1f,0x0,0xe6,0xff,0x42,0x0, +0x2,0x0,0xe0,0xfe,0xb5,0xfe,0x49,0x0,0x2f,0x1,0xc4,0xff, +0xcf,0xfe,0xa9,0x0,0x25,0x2,0x3b,0x0,0xa,0xfe,0xfc,0xfe, +0xa6,0x0,0x24,0x0,0x65,0xff,0x4f,0x0,0xcf,0x0,0xc0,0xff, +0x87,0xff,0xc7,0x0,0xcc,0x0,0x24,0xff,0x93,0xfe,0xc0,0xff, +0x8c,0x0,0x4f,0x0,0x44,0x0,0x8e,0x0,0x47,0x0,0x8f,0xff, +0x46,0xff,0x97,0xff,0xf1,0xff,0xdd,0xff,0x9f,0xff,0x8,0x0, +0xfb,0x0,0x12,0x1,0xf6,0xff,0x4d,0xff,0xc7,0xff,0xef,0xff, +0x6a,0xff,0xc5,0xff,0xd4,0x0,0x8b,0x0,0x4c,0xff,0x95,0xff, +0x10,0x1,0x7,0x1,0x8c,0xff,0x1b,0xff,0xfe,0xff,0x6b,0x0, +0xe8,0xff,0x8d,0xff,0x8,0x0,0xc9,0x0,0xb8,0x0,0xd6,0xff, +0x86,0xff,0x17,0x0,0x10,0x0,0x59,0xff,0x9e,0xff,0xab,0x0, +0xaf,0x0,0x8,0x0,0x43,0x0,0x97,0x0,0x9d,0xff,0xa8,0xfe, +0x9c,0xff,0x24,0x1,0xba,0x0,0x2b,0xff,0x57,0xff,0xe3,0x0, +0xd8,0x0,0x7e,0xff,0xac,0xff,0xad,0x0,0xd5,0xff,0xa1,0xfe, +0xc4,0xff,0x34,0x1,0x51,0x0,0x25,0xff,0xe5,0xff,0xda,0x0, +0x5f,0x0,0x8d,0xff,0x80,0xff,0xf8,0xff,0x62,0x0,0x45,0x0, +0xca,0xff,0xd1,0xff,0x61,0x0,0x7f,0x0,0x2,0x0,0x9b,0xff, +0x6f,0xff,0x7a,0xff,0x22,0x0,0xf9,0x0,0xad,0x0,0x62,0xff, +0x3b,0xff,0xd1,0x0,0x82,0x1,0xcd,0xff,0x6a,0xfe,0x7b,0xff, +0xbc,0x0,0x43,0x0,0xc8,0xff,0x45,0x0,0x4e,0x0,0xd5,0xff, +0x3,0x0,0x7e,0x0,0x7a,0x0,0xe8,0xff,0xb,0xff,0x38,0xff, +0xf8,0x0,0x6a,0x1,0x73,0xff,0x25,0xff,0x44,0x1,0xe4,0x0, +0x54,0xfe,0xdf,0xfe,0x1c,0x1,0x75,0x0,0x4b,0xff,0x64,0x0, +0x95,0x0,0x3e,0xff,0xda,0xff,0x67,0x1,0xc7,0x0,0x66,0xff, +0x3d,0xff,0xbb,0xff,0x89,0x0,0xd0,0x0,0xdf,0xff,0xe8,0xff, +0xc0,0x0,0xcb,0xfe,0x23,0xfd,0x1e,0x1,0x36,0x4,0xe2,0xff, +0xd7,0xfc,0x5c,0x0,0x8f,0x0,0x35,0xfc,0x96,0xfe,0xf2,0x4, +0x39,0x3,0x62,0xfd,0x14,0xfd,0xbe,0xff,0x1e,0x2,0x7f,0x4, +0x7c,0x1,0x69,0xfa,0x29,0xfc,0x55,0x4,0xa8,0x2,0xcc,0xfb, +0x73,0xff,0xf2,0x4,0x16,0xff,0x7e,0xfa,0x2a,0x1,0x93,0x4, +0x8d,0xfe,0xbb,0xfc,0xe2,0x0,0x96,0x0,0xfc,0xfe,0x77,0x2, +0x9,0x3,0x51,0xfd,0x4c,0xfc,0xa1,0x1,0x59,0x2,0xc3,0xfe, +0xb8,0xff,0x1,0x2,0xec,0xfe,0xaf,0xfc,0xa0,0x0,0xe6,0x2, +0x89,0xff,0x3e,0xfe,0x4d,0x0,0xa,0xff,0x84,0xfd,0xd5,0x1, +0x53,0x4,0xaf,0xfe,0x61,0xfb,0x35,0x0,0x92,0x2,0x8a,0xff, +0x34,0x0,0x20,0x2,0xa0,0xfd,0x11,0xfb,0xa2,0x1,0x70,0x5, +0x27,0x0,0x4d,0xfd,0xcd,0xff,0xaf,0xfe,0x23,0xfd,0x52,0x2, +0x36,0x5,0xf3,0xfe,0xf0,0xfa,0x4b,0xff,0x12,0x2,0x67,0x0, +0x62,0x1,0x51,0x2,0x70,0xfd,0x93,0xfa,0x37,0x0,0xaf,0x4, +0x11,0x1,0x9f,0xfd,0x25,0xff,0xa1,0xff,0xd4,0xfe,0xcd,0x1, +0xc8,0x3,0xb,0xff,0x71,0xfb,0x1d,0xff,0xa9,0x1,0x3a,0xff, +0x3f,0x0,0xc1,0x3,0xce,0xff,0xac,0xf9,0x73,0xfd,0x86,0x4, +0x31,0x3,0x2b,0xff,0x6d,0xff,0x63,0xfe,0x35,0xfc,0x91,0x0, +0xa3,0x5,0x6,0x1,0x95,0xfa,0x14,0xfd,0x97,0x1,0x13,0x1, +0x53,0x1,0xe4,0x2,0x1a,0xff,0xed,0xfa,0xb5,0xfe,0x43,0x3, +0xc5,0x0,0x9b,0xfe,0xf6,0x0,0xe9,0xff,0x2a,0xfc,0x34,0xff, +0xa9,0x4,0xd3,0x1,0x62,0xfc,0xf5,0xfd,0xe1,0x0,0x82,0xff, +0xd,0x0,0x3,0x3,0x77,0x0,0xa1,0xfb,0xd5,0xfd,0xcd,0x2, +0x60,0x2,0x4b,0x0,0x26,0x0,0xbb,0xfd,0x67,0xfb,0xf1,0xff, +0x67,0x5,0x8c,0x2,0x30,0xfd,0x9d,0xfd,0x75,0xff,0x25,0xff, +0x47,0x1,0xe3,0x3,0x35,0x0,0x7d,0xfb,0x42,0xfe,0xd9,0x2, +0xac,0x1,0x9d,0xff,0x6e,0x0,0x1d,0xff,0xa2,0xfc,0x84,0xff, +0xc9,0x3,0xb9,0x1,0xc6,0xfd,0x7c,0xfe,0xc,0x0,0x93,0xff, +0xda,0x0,0x47,0x2,0x39,0xff,0xae,0xfc,0xf9,0xff,0x92,0x2, +0xf7,0xff,0xee,0xfe,0x4f,0x1,0xfc,0xff,0x87,0xfc,0xfd,0xfe, +0x93,0x3,0xd6,0x1,0xf0,0xfd,0xa7,0xfe,0x22,0x0,0x57,0xff, +0x91,0x0,0xb1,0x2,0x11,0x0,0x81,0xfc,0x95,0xfe,0xce,0x1, +0xae,0x0,0xa8,0xff,0x48,0x1,0x7b,0x0,0xbb,0xfd,0xf2,0xfe, +0xe6,0x1,0xfe,0x0,0x3f,0xff,0x1e,0x0,0xaa,0xff,0xb3,0xfd, +0xe5,0xff,0xb1,0x3,0x75,0x1,0xc6,0xfc,0xde,0xfd,0x83,0x1, +0x31,0x1,0xd0,0xff,0x92,0x0,0xf4,0xff,0x11,0xfe,0x99,0xff, +0x5a,0x2,0x6,0x1,0x7a,0xfe,0x1f,0xff,0x12,0x0,0x5f,0xff, +0x5b,0x0,0x2f,0x2,0x76,0x0,0xc2,0xfd,0xf,0xff,0x68,0x1, +0x9f,0x0,0x74,0xff,0xf0,0xff,0x5b,0xff,0x69,0xfe,0x56,0x0, +0x5f,0x2,0xb3,0x0,0x94,0xfe,0x1d,0xff,0x6b,0xff,0xd5,0xfe, +0x98,0x0,0xac,0x2,0xa0,0x0,0xb2,0xfd,0xe0,0xfe,0x23,0x1, +0xae,0x0,0x17,0x0,0x93,0x0,0x4b,0xff,0xc1,0xfd,0xac,0xff, +0x6,0x2,0xbc,0x0,0x18,0xff,0x7,0x0,0x11,0x0,0x7f,0xfe, +0x8e,0xff,0x16,0x2,0xfa,0x0,0x35,0xfe,0xdf,0xfe,0xf2,0x0, +0xbc,0x0,0x2b,0x0,0x52,0x0,0xb1,0xfe,0x20,0xfd,0xbb,0xff, +0x28,0x3,0xda,0x1,0xab,0xfe,0x9e,0xfe,0xbf,0xff,0x99,0xff, +0x60,0x0,0xc2,0x1,0x3e,0x0,0xab,0xfd,0x6e,0xfe,0x90,0x0, +0x79,0x0,0x43,0x0,0x4d,0x1,0x38,0x0,0x95,0xfd,0x83,0xfe, +0xea,0x1,0xf8,0x1,0x5d,0xff,0xb5,0xfe,0x75,0xff,0x95,0xff, +0x8c,0x0,0xbe,0x1,0x10,0x0,0xab,0xfd,0xdb,0xfe,0x1c,0x1, +0x79,0x0,0xa2,0xff,0xce,0x0,0x6a,0x0,0x1c,0xfe,0xd4,0xfe, +0xf0,0x1,0xc8,0x1,0xfb,0xfe,0x46,0xfe,0x18,0xff,0x3a,0xff, +0x6f,0x0,0x6d,0x2,0x3f,0x1,0xf2,0xfd,0xcb,0xfd,0x55,0x0, +0x3a,0x1,0xad,0x0,0x83,0x0,0x66,0xff,0xe0,0xfd,0x68,0xff, +0xa8,0x2,0x77,0x2,0x2d,0xff,0x83,0xfd,0x6d,0xfe,0xe8,0xff, +0x5e,0x1,0xe2,0x1,0x26,0x0,0x5c,0xfe,0x5e,0xff,0x2a,0x1, +0xdd,0x0,0xfd,0xff,0x1b,0x0,0x6c,0xff,0x16,0xfe,0x25,0xff, +0xd8,0x1,0x14,0x2,0xda,0xff,0xa2,0xfe,0x4,0xff,0x8c,0xff, +0x74,0x0,0x7d,0x1,0xb2,0x0,0xa9,0xfe,0x91,0xfe,0x84,0x0, +0x69,0x1,0x8f,0x0,0xc1,0xff,0x3a,0xff,0x91,0xfe,0xf,0xff, +0x3,0x1,0xf7,0x1,0x9e,0x0,0xf9,0xfe,0xcc,0xfe,0xb3,0xff, +0x0,0x1,0xcd,0x1,0x8a,0x0,0xdc,0xfd,0x45,0xfd,0xdf,0xff, +0x3a,0x2,0xcb,0x1,0xfa,0xff,0xa9,0xfe,0x59,0xfe,0x8e,0xff, +0x94,0x1,0xc4,0x1,0xa5,0xff,0x47,0xfe,0x1b,0xff,0x46,0x0, +0xff,0x0,0xc4,0x1,0x2a,0x1,0x9a,0xfe,0x62,0xfd,0x81,0xff, +0xc1,0x1,0x5e,0x1,0xef,0xff,0x3b,0xff,0x2d,0xff,0x27,0x0, +0xb6,0x1,0x4c,0x1,0xdf,0xfe,0xf6,0xfd,0x5e,0xff,0x4f,0x0, +0x78,0x0,0x4c,0x1,0x3b,0x1,0x1b,0xff,0x1d,0xfe,0xfc,0xff, +0x55,0x1,0x46,0x0,0x48,0xff,0x71,0xff,0x84,0xff,0x18,0x0, +0xb0,0x1,0xe0,0x1,0xd8,0xff,0x84,0xfe,0x4,0xff,0x7e,0xff, +0xe9,0xff,0x2e,0x1,0x76,0x1,0xa7,0xff,0x8a,0xfe,0xc8,0xff, +0x23,0x1,0xb,0x1,0x3d,0x0,0x3,0xff,0x14,0xfe,0x5f,0xff, +0xeb,0x1,0xe,0x2,0xe7,0xff,0x8,0xff,0xb2,0xff,0x9d,0xff, +0x7a,0xff,0x8e,0x0,0xe2,0x0,0x74,0xff,0xf3,0xfe,0x5d,0x0, +0x2c,0x1,0xa6,0x0,0x6a,0x0,0x2a,0x0,0xf7,0xfe,0x93,0xfe, +0x2a,0x0,0x64,0x1,0x9a,0x0,0x99,0xff,0xce,0xff,0x4b,0x0, +0x80,0x0,0xb6,0x0,0x66,0x0,0x54,0xff,0xc9,0xfe,0x6b,0xff, +0x56,0x0,0xf,0x1,0x88,0x1,0xcc,0x0,0xed,0xfe,0x4a,0xfe, +0xea,0xff,0x4e,0x1,0x8d,0x0,0x1b,0xff,0xae,0xfe,0x35,0xff, +0x86,0x0,0x20,0x2,0xf1,0x1,0x57,0xff,0x6b,0xfd,0x86,0xfe, +0x9f,0x0,0x39,0x1,0xd7,0x0,0x57,0x0,0x91,0xff,0x74,0xff, +0xcd,0x0,0x94,0x1,0x1a,0x0,0x7c,0xfe,0xd5,0xfe,0xda,0xff, +0x55,0x0,0x12,0x1,0xa9,0x1,0xb0,0x0,0x3f,0xff,0x3b,0xff, +0xe0,0xff,0xfc,0xff,0x28,0x0,0x3b,0x0,0x61,0xff,0x38,0xff, +0x2d,0x1,0x78,0x2,0x9e,0x0,0x55,0xfe,0x89,0xfe,0xa4,0xff, +0xdf,0xff,0x34,0x0,0xc9,0x0,0x6a,0x0,0xce,0xff,0x22,0x0, +0x6f,0x0,0x27,0x0,0x4d,0x0,0x62,0x0,0x2b,0xff,0x4e,0xfe, +0xb6,0xff,0x91,0x1,0x9e,0x1,0xaf,0x0,0xd2,0xff,0xe2,0xfe, +0xe6,0xfe,0x84,0x0,0x4e,0x1,0xce,0xff,0xb5,0xfe,0xd9,0xff, +0x1c,0x1,0x1d,0x1,0xfe,0x0,0x9e,0x0,0x1c,0xff,0x2f,0xfe, +0x6e,0xff,0xee,0x0,0xc6,0x0,0x25,0x0,0x31,0x0,0x35,0x0, +0x12,0x0,0x6d,0x0,0x9c,0x0,0xc6,0xff,0xca,0xfe,0xd2,0xfe, +0xc3,0xff,0xee,0x0,0x8c,0x1,0x3,0x1,0xf6,0xff,0x9b,0xff, +0xc6,0xff,0x9f,0xff,0x86,0xff,0xeb,0xff,0xf9,0xff,0x93,0xff, +0xd,0x0,0x5f,0x1,0x94,0x1,0x1e,0x0,0xb3,0xfe,0x7b,0xfe, +0xff,0xfe,0xcb,0xff,0xc8,0x0,0x55,0x1,0xd7,0x0,0xe3,0xff, +0xaa,0xff,0x66,0x0,0xf5,0x0,0x46,0x0,0xd6,0xfe,0x31,0xfe, +0x2e,0xff,0xc,0x1,0x25,0x2,0x70,0x1,0xa2,0xff,0xa8,0xfe, +0x4d,0xff,0x33,0x0,0xb,0x0,0x7a,0xff,0x91,0xff,0x16,0x0, +0x64,0x0,0x8d,0x0,0xb8,0x0,0x9a,0x0,0xe8,0xff,0xd8,0xfe, +0x53,0xfe,0x3a,0xff,0xdb,0x0,0x54,0x1,0x61,0x0,0xb8,0xff, +0x16,0x0,0x66,0x0,0x1e,0x0,0xbf,0xff,0x47,0xff,0xbe,0xfe, +0x11,0xff,0x6b,0x0,0x64,0x1,0xa,0x1,0xe2,0xff,0xc8,0xfe, +0x8c,0xfe,0x94,0xff,0xa2,0x0,0x29,0x0,0xd,0xff,0x41,0xff, +0x7f,0x0,0x6c,0x1,0xf1,0x1,0xd0,0x1,0x22,0x0,0x8,0xfe, +0xec,0xfd,0x86,0xff,0x9e,0x0,0xd4,0x0,0xda,0x0,0x57,0x0, +0xb1,0xff,0x69,0x0,0xae,0x1,0xfe,0x0,0xe6,0xfe,0x57,0xfe, +0xcd,0xff,0x42,0x1,0x93,0x1,0xe3,0x0,0xa6,0xff,0xfa,0xfe, +0x72,0xff,0xd0,0xff,0x24,0xff,0x8f,0xfe,0xf0,0xfe,0x9c,0xff, +0x5c,0x0,0x67,0x1,0x9a,0x1,0x3f,0x0,0xf7,0xfe,0xf4,0xfe, +0x1a,0xff,0x6,0xff,0xe2,0xff,0x4,0x1,0x8f,0x0,0x7a,0xff, +0xf7,0xff,0xeb,0x0,0x14,0x0,0x98,0xfe,0xae,0xfe,0x82,0xff, +0x8e,0xff,0xba,0xff,0xd6,0x0,0x7f,0x1,0xd6,0x0,0xeb,0xff, +0x68,0xff,0x4,0xff,0x13,0xff,0xbf,0xff,0xee,0xff,0x5f,0xff, +0x9e,0xff,0xf4,0x0,0x86,0x1,0xad,0x0,0xae,0xff,0x13,0xff, +0xad,0xfe,0x1b,0xff,0x3f,0x0,0x83,0x0,0xed,0xff,0x40,0x0, +0x13,0x1,0x91,0x0,0xa5,0xff,0xfc,0xff,0x1d,0x0,0xdb,0xfe, +0x8d,0xfe,0x2e,0x0,0xfe,0x0,0x3f,0x0,0x46,0x0,0xc1,0x0, +0x9e,0xff,0x60,0xfe,0x1a,0xff,0xcb,0xff,0x9,0xff,0x3a,0xff, +0xde,0x0,0x40,0x1,0x92,0x0,0xec,0x0,0xd6,0x0,0xdf,0xfe, +0x0,0xfe,0xa2,0xff,0x8d,0x0,0xee,0xff,0x70,0x0,0x56,0x1, +0x51,0x0,0x9e,0xff,0xe,0x1,0x15,0x1,0x65,0xfe,0x71,0xfd, +0x64,0xff,0x54,0x0,0xff,0xff,0x1a,0x1,0xf0,0x1,0x33,0x0, +0xcb,0xfe,0xb8,0xff,0x4,0x0,0xe5,0xfe,0x3c,0xff,0x9f,0x0, +0x98,0x0,0x7a,0x0,0x96,0x1,0x54,0x1,0x4c,0xff,0xe9,0xfe, +0xc,0x0,0x97,0xff,0xb4,0xfe,0xdc,0xff,0xd5,0x0,0xf1,0xff, +0x16,0x0,0xb3,0x1,0x18,0x1,0xae,0xfe,0x69,0xfe,0x97,0xff, +0x54,0xff,0x47,0xff,0x2,0x1,0x70,0x1,0x97,0xff,0x36,0xff, +0xbc,0x0,0x67,0x0,0x85,0xfe,0xb2,0xfe,0x4c,0x0,0x6d,0x0, +0xf3,0xff,0xa2,0x0,0x2b,0x1,0xa3,0x0,0x4a,0x0,0xd,0x0, +0xf4,0xfe,0x50,0xfe,0x48,0xff,0x2d,0x0,0x10,0x0,0x84,0x0, +0x7c,0x1,0x12,0x1,0xde,0xff,0xc4,0xff,0xc6,0xff,0xa8,0xfe, +0x5b,0xfe,0xf0,0xff,0xf0,0x0,0x4d,0x0,0x37,0x0,0x5,0x1, +0xb0,0x0,0xa1,0xff,0xa3,0xff,0xb4,0xff,0xb6,0xfe,0xb9,0xfe, +0xa8,0x0,0xb5,0x1,0xb1,0x0,0xfe,0xff,0x55,0x0,0xf7,0xff, +0x2d,0xff,0x69,0xff,0xb5,0xff,0x32,0xff,0x84,0xff,0x9,0x1, +0x83,0x1,0x94,0x0,0x8,0x0,0xc6,0xff,0xf0,0xfe,0xcd,0xfe, +0xf4,0xff,0x73,0x0,0x1,0x0,0x95,0x0,0xae,0x1,0x26,0x1, +0xec,0xff,0xdd,0xff,0xc5,0xff,0xac,0xfe,0x98,0xfe,0x1f,0x0, +0xe6,0x0,0x62,0x0,0x58,0x0,0xc9,0x0,0x94,0x0,0x2a,0x0, +0xde,0xff,0x9,0xff,0x84,0xfe,0x87,0xff,0xb7,0x0,0xab,0x0, +0xa8,0x0,0x40,0x1,0xbf,0x0,0x4c,0xff,0x17,0xff,0xd9,0xff, +0xbc,0xff,0x5e,0xff,0xef,0xff,0x5f,0x0,0x2d,0x0,0x9a,0x0, +0x28,0x1,0x2e,0x0,0xc8,0xfe,0x3,0xff,0xe4,0xff,0xc6,0xff, +0x91,0xff,0x43,0x0,0xef,0x0,0xee,0x0,0x9e,0x0,0xff,0xff, +0x3b,0xff,0xa,0xff,0x4c,0xff,0x69,0xff,0xe2,0xff,0xdb,0x0, +0x7,0x1,0x3e,0x0,0x8,0x0,0x50,0x0,0xad,0xff,0xd6,0xfe, +0x3d,0xff,0xe1,0xff,0xb2,0xff,0x7,0x0,0x5c,0x1,0xae,0x1, +0x6e,0x0,0x8c,0xff,0xa3,0xff,0x7b,0xff,0x1c,0xff,0x60,0xff, +0xe6,0xff,0x26,0x0,0x90,0x0,0x3,0x1,0xa2,0x0,0xb5,0xff, +0x3d,0xff,0x48,0xff,0x66,0xff,0x9c,0xff,0xdc,0xff,0xf,0x0, +0x96,0x0,0x53,0x1,0x27,0x1,0xd1,0xff,0xbf,0xfe,0xe6,0xfe, +0x8f,0xff,0xf1,0xff,0x31,0x0,0x63,0x0,0x53,0x0,0x52,0x0, +0xad,0x0,0xaa,0x0,0xb6,0xff,0xd0,0xfe,0xd,0xff,0xcf,0xff, +0x9,0x0,0x2,0x0,0x51,0x0,0x94,0x0,0x6e,0x0,0x48,0x0, +0x24,0x0,0x7c,0xff,0xc9,0xfe,0x14,0xff,0xb,0x0,0xac,0x0, +0xec,0x0,0xdd,0x0,0xd,0x0,0x26,0xff,0x60,0xff,0xfc,0xff, +0x8f,0xff,0x4,0xff,0xad,0xff,0x71,0x0,0x58,0x0,0x94,0x0, +0x4e,0x1,0xc9,0x0,0x43,0xff,0xe4,0xfe,0x7d,0xff,0x71,0xff, +0x65,0xff,0x4c,0x0,0xca,0x0,0x3f,0x0,0x35,0x0,0xb5,0x0, +0x13,0x0,0xde,0xfe,0xe7,0xfe,0xa4,0xff,0xe1,0xff,0x32,0x0, +0xca,0x0,0xad,0x0,0x46,0x0,0x80,0x0,0x4e,0x0,0x2b,0xff, +0xe6,0xfe,0xc7,0xff,0xc7,0xff,0x3e,0xff,0x48,0x0,0xb3,0x1, +0x0,0x1,0x6f,0xff,0x45,0xff,0x98,0xff,0x49,0xff,0x82,0xff, +0x50,0x0,0x2a,0x0,0xac,0xff,0x74,0x0,0x41,0x1,0x4e,0x0, +0x1e,0xff,0x68,0xff,0xca,0xff,0x27,0xff,0x8,0xff,0x25,0x0, +0xe9,0x0,0x96,0x0,0x14,0x0,0xd9,0xff,0xc2,0xff,0xd9,0xff, +0xbb,0xff,0x20,0xff,0x8,0xff,0x2b,0x0,0x34,0x1,0xd0,0x0, +0xfc,0xff,0xf9,0xff,0x15,0x0,0x84,0xff,0x19,0xff,0x5c,0xff, +0x96,0xff,0xb2,0xff,0x42,0x0,0xb2,0x0,0x40,0x0,0xc7,0xff, +0xfd,0xff,0xe5,0xff,0x1b,0xff,0xfe,0xfe,0xe1,0xff,0x50,0x0, +0xb,0x0,0x4c,0x0,0xc8,0x0,0x4f,0x0,0xa0,0xff,0xe7,0xff, +0x11,0x0,0x37,0xff,0xdc,0xfe,0xd5,0xff,0xb1,0x0,0xd2,0x0, +0xf3,0x0,0x9d,0x0,0x5e,0xff,0xe2,0xfe,0xe1,0xff,0x4b,0x0, +0x77,0xff,0x77,0xff,0x86,0x0,0xaa,0x0,0xd,0x0,0x27,0x0, +0x34,0x0,0x68,0xff,0x30,0xff,0xe6,0xff,0xe5,0xff,0x6f,0xff, +0x28,0x0,0x3a,0x1,0xeb,0x0,0xa,0x0,0xd1,0xff,0xa5,0xff, +0x4a,0xff,0x83,0xff,0xe1,0xff,0xbb,0xff,0x8,0x0,0xf9,0x0, +0xe5,0x0,0xd3,0xff,0xab,0xff,0x1d,0x0,0x99,0xff,0x19,0xff, +0xe0,0xff,0x7e,0x0,0xc,0x0,0xfa,0xff,0x82,0x0,0x4f,0x0, +0xcd,0xff,0xf5,0xff,0xb9,0xff,0x9d,0xfe,0x90,0xfe,0x32,0x0, +0x4e,0x1,0xd7,0x0,0x28,0x0,0xea,0xff,0xb6,0xff,0xd7,0xff, +0x42,0x0,0xfc,0xff,0x45,0xff,0x49,0xff,0xce,0xff,0x23,0x0, +0x9b,0x0,0xd4,0x0,0xdf,0xff,0xda,0xfe,0x60,0xff,0x52,0x0, +0x28,0x0,0xd4,0xff,0x39,0x0,0x59,0x0,0x4,0x0,0x42,0x0, +0x91,0x0,0xc6,0xff,0xcb,0xfe,0xf5,0xfe,0xa4,0xff,0x8,0x0, +0x74,0x0,0xab,0x0,0x1d,0x0,0x9c,0xff,0x3,0x0,0x6c,0x0, +0xf2,0xff,0x46,0xff,0x2b,0xff,0x8a,0xff,0x46,0x0,0x12,0x1, +0x14,0x1,0x3c,0x0,0x9e,0xff,0x91,0xff,0x78,0xff,0x85,0xff, +0x2f,0x0,0x9e,0x0,0x16,0x0,0x99,0xff,0x1,0x0,0x86,0x0, +0x75,0x0,0xb,0x0,0x7e,0xff,0xe,0xff,0x67,0xff,0x6d,0x0, +0xe8,0x0,0x69,0x0,0xf6,0xff,0x21,0x0,0x44,0x0,0xe,0x0, +0xec,0xff,0xc5,0xff,0x61,0xff,0x7e,0xff,0x68,0x0,0xee,0x0, +0x7c,0x0,0x1a,0x0,0x31,0x0,0xee,0xff,0x5e,0xff,0x82,0xff, +0x47,0x0,0x9b,0x0,0x58,0x0,0x3c,0x0,0x46,0x0,0x3,0x0, +0xd9,0xff,0xf,0x0,0xd0,0xff,0x4,0xff,0x13,0xff,0x40,0x0, +0x4,0x1,0xc8,0x0,0x60,0x0,0xd,0x0,0xb2,0xff,0xc2,0xff, +0x1e,0x0,0xed,0xff,0x5a,0xff,0x55,0xff,0xd6,0xff,0x6a,0x0, +0x24,0x1,0x74,0x1,0x5c,0x0,0xd1,0xfe,0xc5,0xfe,0xcd,0xff, +0x2e,0x0,0x7,0x0,0x1a,0x0,0xe3,0xff,0x6f,0xff,0xe8,0xff, +0xdf,0x0,0xab,0x0,0x98,0xff,0x3d,0xff,0x94,0xff,0xdf,0xff, +0x70,0x0,0x24,0x1,0xc7,0x0,0x99,0xff,0x4f,0xff,0x2,0x0, +0x50,0x0,0xf9,0xff,0xa1,0xff,0x82,0xff,0xd7,0xff,0xb2,0x0, +0x22,0x1,0x83,0x0,0xaf,0xff,0x81,0xff,0xac,0xff,0xda,0xff, +0x2f,0x0,0x70,0x0,0x3c,0x0,0xf2,0xff,0x1a,0x0,0x69,0x0, +0x7c,0x0,0x6b,0x0,0xfc,0xff,0x10,0xff,0xb2,0xfe,0xa0,0xff, +0xc3,0x0,0x2,0x1,0xa3,0x0,0x12,0x0,0x9d,0xff,0xe3,0xff, +0x96,0x0,0x90,0x0,0xe0,0xff,0x92,0xff,0xc3,0xff,0x8,0x0, +0x71,0x0,0xc2,0x0,0x5c,0x0,0x86,0xff,0x3d,0xff,0xb4,0xff, +0x47,0x0,0x7a,0x0,0x31,0x0,0xb4,0xff,0xc3,0xff,0x81,0x0, +0xcd,0x0,0x1a,0x0,0x7b,0xff,0xa5,0xff,0xfd,0xff,0x43,0x0, +0xaf,0x0,0xc2,0x0,0x2d,0x0,0xbe,0xff,0xd6,0xff,0xdc,0xff, +0xcd,0xff,0x21,0x0,0x51,0x0,0xd1,0xff,0x94,0xff,0x64,0x0, +0x24,0x1,0xb1,0x0,0xbe,0xff,0x5f,0xff,0x98,0xff,0x4,0x0, +0x5b,0x0,0x5d,0x0,0x30,0x0,0x30,0x0,0x49,0x0,0x47,0x0, +0x52,0x0,0x55,0x0,0xed,0xff,0x58,0xff,0x60,0xff,0x13,0x0, +0xad,0x0,0xbc,0x0,0x65,0x0,0xdc,0xff,0x99,0xff,0x9,0x0, +0x73,0x0,0xfb,0xff,0x6f,0xff,0xd3,0xff,0x68,0x0,0x5a,0x0, +0x28,0x0,0x17,0x0,0xdb,0xff,0xaf,0xff,0xc3,0xff,0xc7,0xff, +0xd9,0xff,0x41,0x0,0x85,0x0,0x4e,0x0,0x2f,0x0,0x73,0x0, +0x89,0x0,0x24,0x0,0xb9,0xff,0x93,0xff,0x98,0xff,0xe5,0xff, +0x7d,0x0,0xbd,0x0,0x62,0x0,0x14,0x0,0x13,0x0,0xea,0xff, +0xba,0xff,0xe7,0xff,0xa,0x0,0xde,0xff,0xe6,0xff,0x4b,0x0, +0x90,0x0,0x81,0x0,0x46,0x0,0xd4,0xff,0x46,0xff,0x25,0xff, +0xb2,0xff,0x5e,0x0,0x84,0x0,0x2e,0x0,0xd0,0xff,0xb9,0xff, +0xc,0x0,0x74,0x0,0x40,0x0,0x76,0xff,0x10,0xff,0x95,0xff, +0x61,0x0,0xa7,0x0,0x54,0x0,0xdc,0xff,0xb4,0xff,0x3,0x0, +0x60,0x0,0x34,0x0,0xa2,0xff,0x62,0xff,0xad,0xff,0x1f,0x0, +0x6f,0x0,0x70,0x0,0xb,0x0,0xa9,0xff,0xbd,0xff,0xd,0x0, +0x38,0x0,0x4f,0x0,0x5c,0x0,0x3b,0x0,0xb,0x0,0x1e,0x0, +0x69,0x0,0x56,0x0,0xaa,0xff,0x4c,0xff,0xd5,0xff,0x58,0x0, +0x3d,0x0,0x58,0x0,0xc1,0x0,0x76,0x0,0xc3,0xff,0xc4,0xff, +0x19,0x0,0xe8,0xff,0xb1,0xff,0xea,0xff,0xeb,0xff,0xa4,0xff, +0xfa,0xff,0xa7,0x0,0x57,0x0,0x6c,0xff,0x73,0xff,0x15,0x0, +0xf4,0xff,0x81,0xff,0xb1,0xff,0x15,0x0,0x4d,0x0,0x8f,0x0, +0x74,0x0,0xe0,0xff,0xd6,0xff,0x64,0x0,0x4e,0x0,0xba,0xff, +0xfc,0xff,0xc2,0x0,0x9d,0x0,0xd4,0xff,0xaf,0xff,0xfe,0xff, +0xe3,0xff,0xad,0xff,0xc5,0xff,0xc2,0xff,0xc5,0xff,0x55,0x0, +0xc1,0x0,0x53,0x0,0xfa,0xff,0x53,0x0,0x54,0x0,0xb1,0xff, +0xa3,0xff,0x58,0x0,0xa0,0x0,0x48,0x0,0x3,0x0,0xe1,0xff, +0xe8,0xff,0x5f,0x0,0x81,0x0,0x9f,0xff,0x13,0xff,0xe8,0xff, +0x91,0x0,0x4,0x0,0xb9,0xff,0x61,0x0,0x95,0x0,0xe3,0xff, +0x79,0xff,0xb7,0xff,0xed,0xff,0xe7,0xff,0xe1,0xff,0xd9,0xff, +0x1,0x0,0xa3,0x0,0x5,0x1,0x3c,0x0,0x3b,0xff,0x8f,0xff, +0x7c,0x0,0x67,0x0,0xbb,0xff,0xb3,0xff,0x24,0x0,0x70,0x0, +0x7a,0x0,0x1b,0x0,0x8e,0xff,0xa2,0xff,0x49,0x0,0x5b,0x0, +0xad,0xff,0x95,0xff,0x68,0x0,0xa0,0x0,0xc8,0xff,0x84,0xff, +0x4b,0x0,0x7f,0x0,0xc7,0xff,0x7f,0xff,0xdf,0xff,0xe,0x0, +0xd,0x0,0x19,0x0,0xfa,0xff,0xe1,0xff,0x13,0x0,0x10,0x0, +0x9b,0xff,0x85,0xff,0x46,0x0,0xec,0x0,0x8f,0x0,0xc8,0xff, +0x9d,0xff,0x2,0x0,0x4b,0x0,0x24,0x0,0xa2,0xff,0x4d,0xff, +0xc2,0xff,0x90,0x0,0x94,0x0,0xe6,0xff,0xb9,0xff,0x24,0x0, +0x27,0x0,0xbe,0xff,0xbe,0xff,0xb,0x0,0xb,0x0,0xf8,0xff, +0x16,0x0,0x7,0x0,0xdc,0xff,0xf4,0xff,0xe6,0xff,0x76,0xff, +0x6f,0xff,0x0,0x0,0x41,0x0,0x9,0x0,0xc,0x0,0x55,0x0, +0x59,0x0,0xb,0x0,0xba,0xff,0x81,0xff,0x89,0xff,0xfc,0xff, +0x71,0x0,0x56,0x0,0x10,0x0,0x46,0x0,0x7f,0x0,0x19,0x0, +0xa9,0xff,0xc3,0xff,0xf8,0xff,0xe4,0xff,0xcb,0xff,0xf5,0xff, +0x5e,0x0,0x9f,0x0,0x43,0x0,0xa4,0xff,0x84,0xff,0xd3,0xff, +0xe8,0xff,0x95,0xff,0x56,0xff,0xa9,0xff,0x5a,0x0,0xa5,0x0, +0x4c,0x0,0xd5,0xff,0xa7,0xff,0xc5,0xff,0xf5,0xff,0xe7,0xff, +0xd3,0xff,0x3a,0x0,0xae,0x0,0x6f,0x0,0xf2,0xff,0x6,0x0, +0x4d,0x0,0x16,0x0,0x91,0xff,0x54,0xff,0x90,0xff,0xc,0x0, +0x5d,0x0,0x3a,0x0,0xdd,0xff,0xc8,0xff,0xfb,0xff,0xef,0xff, +0x94,0xff,0x7c,0xff,0xd8,0xff,0x2f,0x0,0x42,0x0,0x45,0x0, +0x46,0x0,0xc,0x0,0xa6,0xff,0x7a,0xff,0x93,0xff,0x9a,0xff, +0xa2,0xff,0xf9,0xff,0x64,0x0,0x84,0x0,0x89,0x0,0x89,0x0, +0x47,0x0,0xfd,0xff,0xa,0x0,0x9,0x0,0x99,0xff,0x54,0xff, +0xca,0xff,0x61,0x0,0x53,0x0,0xee,0xff,0xc8,0xff,0xc7,0xff, +0xd5,0xff,0x22,0x0,0x42,0x0,0xdd,0xff,0xa4,0xff,0x2,0x0, +0x54,0x0,0x4f,0x0,0x34,0x0,0xe7,0xff,0x82,0xff,0xa4,0xff, +0x3a,0x0,0x7e,0x0,0x36,0x0,0xdf,0xff,0xd1,0xff,0xe9,0xff, +0xec,0xff,0xe5,0xff,0xd5,0xff,0xa1,0xff,0x9d,0xff,0x9,0x0, +0x5b,0x0,0x36,0x0,0xf,0x0,0x3,0x0,0xce,0xff,0xb5,0xff, +0xe1,0xff,0xdf,0xff,0xc5,0xff,0x10,0x0,0x6e,0x0,0x4c,0x0, +0xfa,0xff,0xf8,0xff,0x11,0x0,0x9,0x0,0xe,0x0,0x1b,0x0, +0xf7,0xff,0xe7,0xff,0x3c,0x0,0x76,0x0,0x2e,0x0,0xe9,0xff, +0xf5,0xff,0xd4,0xff,0x7f,0xff,0x96,0xff,0x1c,0x0,0x74,0x0, +0x62,0x0,0x37,0x0,0x2d,0x0,0x26,0x0,0xf9,0xff,0xb8,0xff, +0xa8,0xff,0xe2,0xff,0x24,0x0,0x23,0x0,0x2,0x0,0x1f,0x0, +0x59,0x0,0x4f,0x0,0xa,0x0,0xd8,0xff,0xd0,0xff,0xd7,0xff, +0xdc,0xff,0xf7,0xff,0x35,0x0,0x5c,0x0,0x2f,0x0,0xe2,0xff, +0xb9,0xff,0xbc,0xff,0xdd,0xff,0xe4,0xff,0xb8,0xff,0xd0,0xff, +0x57,0x0,0xa0,0x0,0x51,0x0,0xe4,0xff,0xc0,0xff,0xe7,0xff, +0x1f,0x0,0xf9,0xff,0xa9,0xff,0xf0,0xff,0x9d,0x0,0xb0,0x0, +0x15,0x0,0xb7,0xff,0xf1,0xff,0x19,0x0,0xa3,0xff,0x1e,0xff, +0x64,0xff,0x1b,0x0,0x4d,0x0,0x2,0x0,0xe6,0xff,0x14,0x0, +0x3d,0x0,0x22,0x0,0xb8,0xff,0x61,0xff,0x9e,0xff,0x4d,0x0, +0xc2,0x0,0x97,0x0,0x1b,0x0,0xdd,0xff,0xf1,0xff,0x4,0x0, +0xf8,0xff,0xe9,0xff,0xe5,0xff,0xeb,0xff,0xed,0xff,0xf6,0xff, +0x32,0x0,0x65,0x0,0x5,0x0,0x60,0xff,0x5d,0xff,0xe7,0xff, +0x11,0x0,0xb4,0xff,0x82,0xff,0xd4,0xff,0x53,0x0,0x7d,0x0, +0x1d,0x0,0xa4,0xff,0xb7,0xff,0x26,0x0,0x26,0x0,0xc8,0xff, +0xdd,0xff,0x58,0x0,0x80,0x0,0x54,0x0,0x25,0x0,0xe2,0xff, +0xb2,0xff,0xef,0xff,0x37,0x0,0x4,0x0,0xbe,0xff,0x1,0x0, +0x60,0x0,0xa,0x0,0x55,0xff,0x58,0xff,0xe4,0xff,0xd0,0xff, +0x5c,0xff,0xb2,0xff,0x80,0x0,0xa6,0x0,0x2b,0x0,0xc7,0xff, +0xbe,0xff,0xf8,0xff,0x8,0x0,0x95,0xff,0x22,0xff,0x76,0xff, +0x54,0x0,0xb5,0x0,0x3c,0x0,0xb8,0xff,0xe5,0xff,0x41,0x0, +0x12,0x0,0xa4,0xff,0x84,0xff,0xaa,0xff,0xf4,0xff,0x49,0x0, +0x5c,0x0,0x28,0x0,0xe,0x0,0xa,0x0,0xbd,0xff,0x5c,0xff, +0x9e,0xff,0x5e,0x0,0x6a,0x0,0x8a,0xff,0x42,0xff,0x34,0x0, +0xd4,0x0,0x27,0x0,0x49,0xff,0x3d,0xff,0xa7,0xff,0xf8,0xff, +0x12,0x0,0xc,0x0,0x20,0x0,0x54,0x0,0x47,0x0,0xee,0xff, +0xc6,0xff,0xf3,0xff,0xfe,0xff,0xba,0xff,0x8f,0xff,0xb7,0xff, +0xf,0x0,0x5b,0x0,0x4e,0x0,0xe1,0xff,0xa3,0xff,0xe2,0xff, +0x18,0x0,0xe7,0xff,0xbc,0xff,0xf2,0xff,0x41,0x0,0x49,0x0, +0x17,0x0,0xff,0xff,0x9,0x0,0xed,0xff,0xa2,0xff,0x7c,0xff, +0xcb,0xff,0x69,0x0,0x9f,0x0,0x8,0x0,0x92,0xff,0x2,0x0, +0x64,0x0,0xe1,0xff,0x65,0xff,0xb3,0xff,0x1b,0x0,0x29,0x0, +0x2e,0x0,0x2a,0x0,0xe8,0xff,0xb0,0xff,0xbd,0xff,0xb9,0xff, +0x84,0xff,0xa7,0xff,0x3d,0x0,0x65,0x0,0xd3,0xff,0x89,0xff, +0x10,0x0,0xac,0x0,0xb7,0x0,0x2c,0x0,0x6e,0xff,0x46,0xff, +0xee,0xff,0x7a,0x0,0x56,0x0,0x9,0x0,0xf5,0xff,0xf7,0xff, +0xb,0x0,0x34,0x0,0x3c,0x0,0x5,0x0,0xab,0xff,0x7c,0xff, +0xbb,0xff,0x23,0x0,0x2f,0x0,0xe2,0xff,0xab,0xff,0xc1,0xff, +0xa,0x0,0x4f,0x0,0x64,0x0,0x43,0x0,0x11,0x0,0xf4,0xff, +0xe4,0xff,0xb7,0xff,0x6f,0xff,0x51,0xff,0x8a,0xff,0xeb,0xff, +0x26,0x0,0x4c,0x0,0x98,0x0,0xce,0x0,0x8b,0x0,0x1a,0x0, +0xeb,0xff,0xca,0xff,0x7d,0xff,0x4c,0xff,0x75,0xff,0xdd,0xff, +0x35,0x0,0x31,0x0,0xf9,0xff,0xf1,0xff,0x1,0x0,0xf4,0xff, +0x1,0x0,0x38,0x0,0x59,0x0,0x60,0x0,0x56,0x0,0x15,0x0, +0xbe,0xff,0x9f,0xff,0xac,0xff,0x9f,0xff,0x7d,0xff,0x96,0xff, +0xf8,0xff,0x54,0x0,0x8a,0x0,0xae,0x0,0x8b,0x0,0x23,0x0, +0xf8,0xff,0x6,0x0,0xcb,0xff,0x87,0xff,0xaf,0xff,0xef,0xff, +0x7,0x0,0x4d,0x0,0xae,0x0,0xa0,0x0,0x28,0x0,0xcf,0xff, +0xe1,0xff,0x1d,0x0,0x23,0x0,0x8,0x0,0x8,0x0,0xf,0x0, +0x1a,0x0,0x40,0x0,0x3a,0x0,0xd8,0xff,0x87,0xff,0x9e,0xff, +0xe4,0xff,0x21,0x0,0x50,0x0,0x63,0x0,0x54,0x0,0x49,0x0, +0x46,0x0,0x19,0x0,0xb7,0xff,0x73,0xff,0x92,0xff,0xf4,0xff, +0x51,0x0,0x77,0x0,0x55,0x0,0x7,0x0,0xca,0xff,0xbd,0xff, +0xdc,0xff,0xa,0x0,0x1e,0x0,0x1d,0x0,0x27,0x0,0x30,0x0, +0x2d,0x0,0x39,0x0,0x3b,0x0,0xf2,0xff,0x91,0xff,0x93,0xff, +0x4,0x0,0x6e,0x0,0x77,0x0,0x44,0x0,0x33,0x0,0x58,0x0, +0x6f,0x0,0x34,0x0,0xc6,0xff,0x8f,0xff,0xac,0xff,0xd0,0xff, +0xed,0xff,0x34,0x0,0x74,0x0,0x60,0x0,0x1a,0x0,0xd3,0xff, +0xb1,0xff,0xee,0xff,0x4b,0x0,0x3c,0x0,0xe7,0xff,0xd2,0xff, +0xf5,0xff,0x1c,0x0,0x49,0x0,0x56,0x0,0x27,0x0,0xee,0xff, +0xdd,0xff,0x2,0x0,0x34,0x0,0x3a,0x0,0x2b,0x0,0x22,0x0, +0xee,0xff,0xbd,0xff,0x4,0x0,0x58,0x0,0x25,0x0,0xf7,0xff, +0x51,0x0,0x8f,0x0,0x45,0x0,0xf6,0xff,0xed,0xff,0xdf,0xff, +0xb7,0xff,0xc1,0xff,0xb,0x0,0x46,0x0,0x4b,0x0,0x41,0x0, +0x31,0x0,0x29,0x0,0x4f,0x0,0x4e,0x0,0xc5,0xff,0x58,0xff, +0xca,0xff,0x7e,0x0,0x87,0x0,0x19,0x0,0xd2,0xff,0xc7,0xff, +0xdd,0xff,0x14,0x0,0x33,0x0,0xf6,0xff,0xa3,0xff,0xd0,0xff, +0x5e,0x0,0x8b,0x0,0x3e,0x0,0xf,0x0,0xf,0x0,0xde,0xff, +0xb6,0xff,0xfe,0xff,0x5d,0x0,0x54,0x0,0x1b,0x0,0x4,0x0, +0xf6,0xff,0xf4,0xff,0x1e,0x0,0x25,0x0,0xe1,0xff,0xc2,0xff, +0xe7,0xff,0x2,0x0,0x23,0x0,0x57,0x0,0x4c,0x0,0x6,0x0, +0xdd,0xff,0xde,0xff,0xf3,0xff,0x5,0x0,0xfe,0xff,0x2,0x0, +0x17,0x0,0x13,0x0,0x21,0x0,0x43,0x0,0xfe,0xff,0x83,0xff, +0x9f,0xff,0x20,0x0,0x50,0x0,0x3c,0x0,0x40,0x0,0x65,0x0, +0x84,0x0,0x60,0x0,0xf,0x0,0xef,0xff,0xe5,0xff,0xb5,0xff, +0xae,0xff,0xf7,0xff,0x38,0x0,0x3f,0x0,0xd,0x0,0xc8,0xff, +0xcf,0xff,0x1b,0x0,0x42,0x0,0x3a,0x0,0x23,0x0,0xf8,0xff, +0xf3,0xff,0x39,0x0,0x67,0x0,0x44,0x0,0x3,0x0,0xc1,0xff, +0xad,0xff,0xef,0xff,0x40,0x0,0x62,0x0,0x67,0x0,0x2f,0x0, +0xc0,0xff,0xb6,0xff,0x23,0x0,0x20,0x0,0x84,0xff,0x4d,0xff, +0xdc,0xff,0x62,0x0,0x54,0x0,0x2,0x0,0xea,0xff,0x1c,0x0, +0x38,0x0,0x11,0x0,0xb,0x0,0x55,0x0,0x85,0x0,0x63,0x0, +0x27,0x0,0xf9,0xff,0xfc,0xff,0x25,0x0,0xc,0x0,0xbc,0xff, +0xb5,0xff,0xe1,0xff,0xff,0xff,0x44,0x0,0x83,0x0,0x49,0x0, +0xec,0xff,0xdf,0xff,0xec,0xff,0xe8,0xff,0xe3,0xff,0xcb,0xff, +0xb7,0xff,0xcd,0xff,0xfd,0xff,0x36,0x0,0x4b,0x0,0xa,0x0, +0xde,0xff,0x25,0x0,0x4e,0x0,0xfc,0xff,0xbd,0xff,0xe1,0xff, +0x18,0x0,0x23,0x0,0xf5,0xff,0xc7,0xff,0xdc,0xff,0xe9,0xff, +0xac,0xff,0x8d,0xff,0xbe,0xff,0xf2,0xff,0x1e,0x0,0x38,0x0, +0xf,0x0,0xf1,0xff,0x12,0x0,0xf9,0xff,0xad,0xff,0xbc,0xff, +0xec,0xff,0xe5,0xff,0xe,0x0,0x5b,0x0,0x3d,0x0,0xf2,0xff, +0xf8,0xff,0x1d,0x0,0x2d,0x0,0x35,0x0,0x31,0x0,0x27,0x0, +0x1f,0x0,0x10,0x0,0x21,0x0,0x42,0x0,0x5,0x0,0x8f,0xff, +0x6c,0xff,0x94,0xff,0xd3,0xff,0x2c,0x0,0x47,0x0,0x2,0x0, +0xe8,0xff,0x1c,0x0,0x29,0x0,0x14,0x0,0xc,0x0,0xec,0xff, +0xd3,0xff,0x10,0x0,0x5b,0x0,0x4d,0x0,0x4,0x0,0xcc,0xff, +0xd2,0xff,0xd,0x0,0x31,0x0,0x14,0x0,0xe4,0xff,0xc2,0xff, +0xaa,0xff,0xbc,0xff,0xf4,0xff,0x7,0x0,0xdf,0xff,0xc2,0xff, +0xf5,0xff,0x64,0x0,0x9e,0x0,0x75,0x0,0x54,0x0,0x6f,0x0, +0x73,0x0,0x86,0x0,0xef,0x0,0x23,0x1,0xc3,0x0,0x45,0x0, +0xd3,0xff,0x73,0xff,0x9e,0xff,0xfc,0xff,0xa4,0xff,0x0,0xff, +0xe8,0xfe,0x14,0xff,0x34,0xff,0x7d,0xff,0xba,0xff,0xa7,0xff, +0x78,0xff,0x7d,0xff,0xd4,0xff,0x22,0x0,0xe3,0xff,0x72,0xff, +0x77,0xff,0xd0,0xff,0x61,0x0,0x24,0x1,0x36,0x1,0x45,0x0, +0x83,0xff,0x86,0xff,0xb1,0xff,0xde,0xff,0x3b,0x0,0xa1,0x0, +0xfc,0x0,0x1f,0x1,0xb8,0x0,0x18,0x0,0xb7,0xff,0x73,0xff, +0x39,0xff,0x3a,0xff,0x5b,0xff,0x67,0xff,0x61,0xff,0x4c,0xff, +0x3e,0xff,0x67,0xff,0xac,0xff,0xe5,0xff,0x2f,0x0,0x70,0x0, +0x53,0x0,0xdf,0xff,0x93,0xff,0xd3,0xff,0x73,0x0,0xd2,0x0, +0xab,0x0,0x87,0x0,0xab,0x0,0x8f,0x0,0x1a,0x0,0xe2,0xff, +0xdc,0xff,0xd2,0xff,0x2d,0x0,0xb0,0x0,0x79,0x0,0xd4,0xff, +0x9b,0xff,0xa3,0xff,0xa5,0xff,0xd1,0xff,0xf9,0xff,0xec,0xff, +0xda,0xff,0xb7,0xff,0x9a,0xff,0xc7,0xff,0xdf,0xff,0xa3,0xff, +0x95,0xff,0xc7,0xff,0xdc,0xff,0xed,0xff,0xfd,0xff,0xe9,0xff, +0xfb,0xff,0x1e,0x0,0xe6,0xff,0xb0,0xff,0xd1,0xff,0xdf,0xff, +0xba,0xff,0xa1,0xff,0x85,0xff,0x92,0xff,0xec,0xff,0x21,0x0, +0x17,0x0,0x3a,0x0,0x64,0x0,0x6a,0x0,0xab,0x0,0x6,0x1, +0xea,0x0,0x7f,0x0,0x2f,0x0,0xf0,0xff,0xbf,0xff,0xb1,0xff, +0x90,0xff,0x49,0xff,0x27,0xff,0x59,0xff,0xb5,0xff,0xe2,0xff, +0xb4,0xff,0x84,0xff,0xae,0xff,0xd3,0xff,0x9d,0xff,0x68,0xff, +0x72,0xff,0x92,0xff,0xc4,0xff,0xf2,0xff,0x0,0x0,0x31,0x0, +0x7e,0x0,0x74,0x0,0x56,0x0,0x8d,0x0,0x99,0x0,0x44,0x0, +0x1e,0x0,0x27,0x0,0x13,0x0,0x15,0x0,0x28,0x0,0xd,0x0, +0x3,0x0,0x1a,0x0,0xc,0x0,0xd,0x0,0x41,0x0,0x3a,0x0, +0xd4,0xff,0x64,0xff,0x27,0xff,0x3d,0xff,0x79,0xff,0x82,0xff, +0x79,0xff,0xaf,0xff,0xe9,0xff,0x0,0x0,0x27,0x0,0x37,0x0, +0xf9,0xff,0xc5,0xff,0xe2,0xff,0x24,0x0,0x68,0x0,0x94,0x0, +0x7a,0x0,0x3d,0x0,0xb,0x0,0xc8,0xff,0x89,0xff,0x90,0xff, +0xb1,0xff,0xba,0xff,0xda,0xff,0x10,0x0,0x28,0x0,0x30,0x0, +0x1c,0x0,0xdb,0xff,0xc8,0xff,0xff,0xff,0x9,0x0,0xd4,0xff, +0xaa,0xff,0x89,0xff,0x77,0xff,0xa9,0xff,0xff,0xff,0x45,0x0, +0x62,0x0,0x3e,0x0,0xb,0x0,0xfd,0xff,0xde,0xff,0xb3,0xff, +0xd6,0xff,0x24,0x0,0x4a,0x0,0x54,0x0,0x2d,0x0,0xd1,0xff, +0x9b,0xff,0x94,0xff,0x7d,0xff,0x8b,0xff,0xde,0xff,0x24,0x0, +0x53,0x0,0x83,0x0,0x66,0x0,0xe8,0xff,0x91,0xff,0xb5,0xff, +0x17,0x0,0x48,0x0,0xc,0x0,0x95,0xff,0x6d,0xff,0xc9,0xff, +0x33,0x0,0x2f,0x0,0xe2,0xff,0xbf,0xff,0xf1,0xff,0x47,0x0, +0x68,0x0,0x2d,0x0,0xcb,0xff,0x83,0xff,0x67,0xff,0x89,0xff, +0xd4,0xff,0xb,0x0,0x20,0x0,0x18,0x0,0xe9,0xff,0xb4,0xff, +0x89,0xff,0x74,0xff,0xcf,0xff,0x81,0x0,0xad,0x0,0x40,0x0, +0x30,0x0,0xa2,0x0,0xe7,0x0,0xbb,0x0,0x41,0x0,0xc2,0xff, +0xab,0xff,0xe9,0xff,0xeb,0xff,0x87,0xff,0xe,0xff,0xf0,0xfe, +0x5d,0xff,0xeb,0xff,0xd,0x0,0xcd,0xff,0x87,0xff,0x76,0xff, +0xc8,0xff,0x3a,0x0,0x39,0x0,0xee,0xff,0xd,0x0,0x8f,0x0, +0xc6,0x0,0x7e,0x0,0x1c,0x0,0xf2,0xff,0xfc,0xff,0x22,0x0, +0x36,0x0,0xfb,0xff,0x93,0xff,0x7e,0xff,0xe3,0xff,0x2f,0x0, +0xd8,0xff,0x5e,0xff,0x95,0xff,0x19,0x0,0x0,0x0,0xa5,0xff, +0xb5,0xff,0xcc,0xff,0xad,0xff,0xd1,0xff,0x6,0x0,0xdb,0xff, +0xc3,0xff,0x1e,0x0,0x71,0x0,0x63,0x0,0x14,0x0,0xc3,0xff, +0xad,0xff,0xd9,0xff,0xe,0x0,0xc,0x0,0xa9,0xff,0x38,0xff, +0x60,0xff,0xe8,0xff,0xee,0xff,0xa1,0xff,0xe1,0xff,0x7a,0x0, +0xa8,0x0,0x6b,0x0,0x17,0x0,0xbe,0xff,0xa5,0xff,0x7,0x0, +0x66,0x0,0x29,0x0,0xad,0xff,0xac,0xff,0xf,0x0,0x27,0x0, +0xc0,0xff,0x6c,0xff,0x90,0xff,0xd1,0xff,0xe9,0xff,0x16,0x0, +0x24,0x0,0xac,0xff,0x5d,0xff,0xd8,0xff,0x41,0x0,0xfb,0xff, +0xc7,0xff,0xe,0x0,0x5b,0x0,0x97,0x0,0xc8,0x0,0x8f,0x0, +0xfa,0xff,0x97,0xff,0x96,0xff,0xa0,0xff,0x65,0xff,0x31,0xff, +0x84,0xff,0x9,0x0,0x4,0x0,0xa8,0xff,0xa2,0xff,0xdb,0xff, +0xfc,0xff,0x1b,0x0,0x3e,0x0,0x35,0x0,0x27,0x0,0x3d,0x0, +0x2b,0x0,0xd0,0xff,0x95,0xff,0xb8,0xff,0xfd,0xff,0x3a,0x0, +0x5b,0x0,0x4b,0x0,0x27,0x0,0x15,0x0,0x15,0x0,0x1e,0x0, +0xf6,0xff,0x85,0xff,0x69,0xff,0xdc,0xff,0x3,0x0,0xaa,0xff, +0xa7,0xff,0xf0,0xff,0xe8,0xff,0xd3,0xff,0xf7,0xff,0xeb,0xff, +0xb2,0xff,0xbf,0xff,0x8,0x0,0x43,0x0,0x43,0x0,0x14,0x0, +0x20,0x0,0x7b,0x0,0x85,0x0,0x11,0x0,0xc7,0xff,0xde,0xff, +0xf4,0xff,0xf3,0xff,0xf0,0xff,0xdf,0xff,0xf0,0xff,0x36,0x0, +0x43,0x0,0xfe,0xff,0xeb,0xff,0x21,0x0,0x39,0x0,0x1e,0x0, +0xed,0xff,0xc1,0xff,0xce,0xff,0xf6,0xff,0xf1,0xff,0xfa,0xff, +0x9,0x0,0xb7,0xff,0x92,0xff,0x24,0x0,0x83,0x0,0x23,0x0, +0xe8,0xff,0x16,0x0,0x2e,0x0,0x39,0x0,0x2d,0x0,0xcc,0xff, +0x95,0xff,0xdd,0xff,0x2a,0x0,0x43,0x0,0x3b,0x0,0xe,0x0, +0x17,0x0,0x72,0x0,0x69,0x0,0xe3,0xff,0xb3,0xff,0xf3,0xff, +0x1b,0x0,0x1e,0x0,0xfa,0xff,0xa1,0xff,0x9b,0xff,0x22,0x0, +0x61,0x0,0xf2,0xff,0x8c,0xff,0xac,0xff,0x6,0x0,0x3b,0x0, +0x29,0x0,0xfa,0xff,0xee,0xff,0xf0,0xff,0xd,0x0,0x88,0x0, +0xc7,0x0,0x29,0x0,0xbf,0xff,0x63,0x0,0xe9,0x0,0x7e,0x0, +0xee,0xff,0xa6,0xff,0x8b,0xff,0xd0,0xff,0x25,0x0,0x6,0x0, +0xe6,0xff,0x35,0x0,0x7d,0x0,0x65,0x0,0x7,0x0,0xb4,0xff, +0xe0,0xff,0x57,0x0,0x54,0x0,0xfd,0xff,0x5,0x0,0x42,0x0, +0x54,0x0,0x61,0x0,0x3f,0x0,0xb9,0xff,0x79,0xff,0xfa,0xff, +0x80,0x0,0x53,0x0,0xc4,0xff,0x6b,0xff,0x8c,0xff,0x1d,0x0, +0xa0,0x0,0x85,0x0,0xf3,0xff,0x9b,0xff,0xed,0xff,0x9b,0x0, +0xc3,0x0,0x28,0x0,0xca,0xff,0x25,0x0,0x5f,0x0,0x29,0x0, +0xfd,0xff,0xc3,0xff,0x88,0xff,0xef,0xff,0x8c,0x0,0x59,0x0, +0xbc,0xff,0xac,0xff,0xf,0x0,0x58,0x0,0x4e,0x0,0x8,0x0, +0xe9,0xff,0x13,0x0,0x28,0x0,0x17,0x0,0x1a,0x0,0x1e,0x0, +0x24,0x0,0x64,0x0,0x8e,0x0,0x31,0x0,0xbe,0xff,0xd5,0xff, +0x35,0x0,0x59,0x0,0x3e,0x0,0x7,0x0,0xe2,0xff,0x9,0x0, +0x3c,0x0,0xf9,0xff,0x7e,0xff,0x77,0xff,0x0,0x0,0xa4,0x0, +0xcf,0x0,0x45,0x0,0xa0,0xff,0x86,0xff,0xd7,0xff,0x3d,0x0, +0x79,0x0,0x34,0x0,0xd7,0xff,0x2e,0x0,0xbb,0x0,0x90,0x0, +0x11,0x0,0xf6,0xff,0x1b,0x0,0x46,0x0,0x61,0x0,0x39,0x0, +0xfa,0xff,0xf5,0xff,0xa,0x0,0x5,0x0,0xe6,0xff,0xac,0xff, +0x8d,0xff,0xda,0xff,0x4f,0x0,0x67,0x0,0x35,0x0,0x2b,0x0, +0x46,0x0,0x3b,0x0,0x2,0x0,0xb4,0xff,0x6d,0xff,0x6b,0xff, +0xc5,0xff,0x28,0x0,0x50,0x0,0x5d,0x0,0x74,0x0,0x96,0x0, +0x98,0x0,0x51,0x0,0xfe,0xff,0x6,0x0,0x50,0x0,0x7a,0x0, +0x5d,0x0,0x7,0x0,0xcc,0xff,0x1,0x0,0x4d,0x0,0x22,0x0, +0xbd,0xff,0xa4,0xff,0xd4,0xff,0xe,0x0,0x2f,0x0,0x27,0x0, +0x6,0x0,0xf0,0xff,0xed,0xff,0xf2,0xff,0xf9,0xff,0xf7,0xff, +0xfd,0xff,0x35,0x0,0x90,0x0,0xa3,0x0,0x5b,0x0,0x38,0x0, +0x5f,0x0,0x63,0x0,0x38,0x0,0x12,0x0,0xde,0xff,0xcf,0xff, +0x1a,0x0,0x34,0x0,0xd3,0xff,0xad,0xff,0x4,0x0,0x4e,0x0, +0x54,0x0,0x3c,0x0,0x1b,0x0,0x11,0x0,0x1c,0x0,0x22,0x0, +0x2e,0x0,0x18,0x0,0xc9,0xff,0xb7,0xff,0xf8,0xff,0xea,0xff, +0x99,0xff,0xb2,0xff,0x1f,0x0,0x5f,0x0,0x6c,0x0,0x53,0x0, +0x19,0x0,0x10,0x0,0x4b,0x0,0x56,0x0,0x1,0x0,0xa2,0xff, +0x93,0xff,0xdb,0xff,0x21,0x0,0xfa,0xff,0xaf,0xff,0xd6,0xff, +0x2c,0x0,0x30,0x0,0x1f,0x0,0x19,0x0,0xee,0xff,0x7,0x0, +0x8c,0x0,0x9a,0x0,0x1,0x0,0xa8,0xff,0xc1,0xff,0xda,0xff, +0xfb,0xff,0x13,0x0,0xe0,0xff,0xb2,0xff,0xe2,0xff,0x3a,0x0, +0x51,0x0,0xf0,0xff,0x8d,0xff,0xda,0xff,0x6a,0x0,0x5c,0x0, +0xfb,0xff,0xea,0xff,0xfc,0xff,0x1b,0x0,0x5c,0x0,0x43,0x0, +0xae,0xff,0x6a,0xff,0xd4,0xff,0x44,0x0,0x2f,0x0,0xd8,0xff, +0xcf,0xff,0x18,0x0,0x27,0x0,0xd8,0xff,0xac,0xff,0xdd,0xff, +0x16,0x0,0x42,0x0,0x77,0x0,0x65,0x0,0xef,0xff,0xbe,0xff, +0x18,0x0,0x58,0x0,0x2a,0x0,0xf4,0xff,0xea,0xff,0x4,0x0, +0x4f,0x0,0x6f,0x0,0x0,0x0,0x89,0xff,0xc9,0xff,0x67,0x0, +0x6a,0x0,0xc2,0xff,0x64,0xff,0xd1,0xff,0x68,0x0,0x95,0x0, +0x67,0x0,0x5,0x0,0xa7,0xff,0xbd,0xff,0x2f,0x0,0x4a,0x0, +0xe4,0xff,0xa9,0xff,0xfe,0xff,0x68,0x0,0x5d,0x0,0x12,0x0, +0xf7,0xff,0xfe,0xff,0x12,0x0,0x48,0x0,0x55,0x0,0xf7,0xff, +0xa2,0xff,0xd6,0xff,0x4c,0x0,0x5f,0x0,0xed,0xff,0x85,0xff, +0x91,0xff,0xb7,0xff,0xb6,0xff,0xd4,0xff,0x6,0x0,0xe,0x0, +0x2a,0x0,0x58,0x0,0x12,0x0,0x94,0xff,0xa6,0xff,0x34,0x0, +0x8a,0x0,0x6c,0x0,0x17,0x0,0xd8,0xff,0xdd,0xff,0xc,0x0, +0x10,0x0,0xd5,0xff,0xb5,0xff,0xfa,0xff,0x59,0x0,0x42,0x0, +0xc2,0xff,0x83,0xff,0xd0,0xff,0x2b,0x0,0x2c,0x0,0x2,0x0, +0xd3,0xff,0x99,0xff,0xa7,0xff,0x34,0x0,0xa4,0x0,0x65,0x0, +0xdf,0xff,0xbe,0xff,0x5,0x0,0x33,0x0,0x3,0x0,0xd1,0xff, +0xf3,0xff,0x33,0x0,0x5f,0x0,0x6f,0x0,0x26,0x0,0xac,0xff, +0xb4,0xff,0x21,0x0,0x26,0x0,0xd4,0xff,0xca,0xff,0xfe,0xff, +0x12,0x0,0x3,0x0,0xf8,0xff,0xfb,0xff,0xff,0xff,0xfb,0xff, +0xe7,0xff,0xb6,0xff,0x9b,0xff,0xe4,0xff,0x4d,0x0,0x4e,0x0, +0x3,0x0,0xe8,0xff,0x3,0x0,0xa,0x0,0xf7,0xff,0xfe,0xff, +0x1e,0x0,0x8,0x0,0xbe,0xff,0xb5,0xff,0xee,0xff,0xe8,0xff, +0xb0,0xff,0xcc,0xff,0x31,0x0,0x64,0x0,0x46,0x0,0xa,0x0, +0xee,0xff,0x1d,0x0,0x61,0x0,0x44,0x0,0xbd,0xff,0x67,0xff, +0xab,0xff,0x15,0x0,0xa,0x0,0xc7,0xff,0xdf,0xff,0x21,0x0, +0x1,0x0,0xbd,0xff,0xda,0xff,0x13,0x0,0x4,0x0,0xf3,0xff, +0x3,0x0,0xf0,0xff,0xe5,0xff,0x1c,0x0,0x3f,0x0,0x28,0x0, +0x19,0x0,0x15,0x0,0xfc,0xff,0xd6,0xff,0xb0,0xff,0xb1,0xff, +0xe2,0xff,0xef,0xff,0xea,0xff,0x35,0x0,0x62,0x0,0xf9,0xff, +0xa4,0xff,0xe8,0xff,0x3e,0x0,0x44,0x0,0x23,0x0,0xf1,0xff, +0xd2,0xff,0xe9,0xff,0x1,0x0,0xe7,0xff,0xc2,0xff,0xd2,0xff, +0x20,0x0,0x55,0x0,0x18,0x0,0xc7,0xff,0xed,0xff,0x3f,0x0, +0x3b,0x0,0xf,0x0,0xf8,0xff,0xd7,0xff,0xca,0xff,0xf9,0xff, +0xf,0x0,0xe9,0xff,0xe3,0xff,0x5,0x0,0x2,0x0,0xf7,0xff, +0x7,0x0,0xff,0xff,0xe1,0xff,0xee,0xff,0x19,0x0,0x22,0x0, +0xeb,0xff,0xa6,0xff,0xc9,0xff,0x5a,0x0,0x9c,0x0,0x3a,0x0, +0xce,0xff,0xc2,0xff,0xe4,0xff,0x2,0x0,0x0,0x0,0xd6,0xff, +0xbc,0xff,0xe9,0xff,0x34,0x0,0x43,0x0,0x5,0x0,0xde,0xff, +0x1a,0x0,0x60,0x0,0x3a,0x0,0xd8,0xff,0xb2,0xff,0xdd,0xff, +0xe,0x0,0x8,0x0,0xda,0xff,0xc4,0xff,0xdd,0xff,0xff,0xff, +0xf1,0xff,0xab,0xff,0x7c,0xff,0x9a,0xff,0xd7,0xff,0x13,0x0, +0x33,0x0,0xf5,0xff,0x94,0xff,0xbc,0xff,0x42,0x0,0x5b,0x0, +0xf4,0xff,0x94,0xff,0x96,0xff,0x2,0x0,0x6f,0x0,0x6d,0x0, +0x2a,0x0,0x5,0x0,0xd,0x0,0x34,0x0,0x35,0x0,0xc8,0xff, +0x66,0xff,0xa6,0xff,0x1e,0x0,0x22,0x0,0xd5,0xff,0x9c,0xff, +0x93,0xff,0xbd,0xff,0xf2,0xff,0xfa,0xff,0xfb,0xff,0x21,0x0, +0x39,0x0,0x24,0x0,0x17,0x0,0x1e,0x0,0x19,0x0,0x6,0x0, +0xf1,0xff,0xe9,0xff,0xec,0xff,0xd1,0xff,0xba,0xff,0x10,0x0, +0x87,0x0,0x61,0x0,0xcc,0xff,0x8f,0xff,0xc4,0xff,0x9,0x0, +0x12,0x0,0xc9,0xff,0x9d,0xff,0xf0,0xff,0x4c,0x0,0x2c,0x0, +0xcc,0xff,0x95,0xff,0xb4,0xff,0x19,0x0,0x43,0x0,0xf6,0xff, +0xbd,0xff,0xea,0xff,0x19,0x0,0x20,0x0,0x27,0x0,0x14,0x0, +0xe0,0xff,0xdb,0xff,0x1d,0x0,0x4c,0x0,0x26,0x0,0xde,0xff, +0xd4,0xff,0x2,0x0,0xf,0x0,0xe8,0xff,0xc2,0xff,0xb3,0xff, +0xc1,0xff,0xfd,0xff,0x2b,0x0,0xef,0xff,0x95,0xff,0xad,0xff, +0x6,0x0,0x12,0x0,0xe0,0xff,0xc5,0xff,0xd9,0xff,0xa,0x0, +0x17,0x0,0xdf,0xff,0xba,0xff,0xe1,0xff,0xa,0x0,0x9,0x0, +0xee,0xff,0xcd,0xff,0xe4,0xff,0x33,0x0,0x42,0x0,0x10,0x0, +0xe,0x0,0x17,0x0,0xeb,0xff,0xd4,0xff,0xf9,0xff,0x16,0x0, +0x7,0x0,0xe8,0xff,0xf1,0xff,0x19,0x0,0xfd,0xff,0xb4,0xff, +0xc6,0xff,0x12,0x0,0x19,0x0,0xef,0xff,0xbd,0xff,0x92,0xff, +0xb8,0xff,0x1c,0x0,0x2e,0x0,0xf4,0xff,0xe2,0xff,0xf8,0xff, +0xf1,0xff,0xcd,0xff,0xb5,0xff,0xcf,0xff,0x12,0x0,0x47,0x0, +0x53,0x0,0x41,0x0,0x1f,0x0,0x1,0x0,0xfa,0xff,0xfd,0xff, +0xf1,0xff,0xde,0xff,0xea,0xff,0xc,0x0,0x0,0x0,0xbb,0xff, +0xa8,0xff,0xe2,0xff,0xfe,0xff,0xc7,0xff,0x9f,0xff,0xc5,0xff, +0xf6,0xff,0xf8,0xff,0xf5,0xff,0x9,0x0,0xb,0x0,0x1,0x0, +0x10,0x0,0x15,0x0,0xf5,0xff,0xe3,0xff,0xee,0xff,0x2,0x0, +0x2a,0x0,0x47,0x0,0xc,0x0,0xab,0xff,0xa7,0xff,0xf4,0xff, +0x1a,0x0,0xf9,0xff,0xd8,0xff,0xdb,0xff,0xee,0xff,0x10,0x0, +0x31,0x0,0x27,0x0,0xfe,0xff,0xed,0xff,0xf4,0xff,0xf3,0xff, +0xe9,0xff,0xe6,0xff,0x3,0x0,0x38,0x0,0x46,0x0,0x1b,0x0, +0xf6,0xff,0xf6,0xff,0x3,0x0,0x9,0x0,0xfe,0xff,0xf2,0xff, +0xf5,0xff,0xfc,0xff,0xf,0x0,0x25,0x0,0x4,0x0,0xc6,0xff, +0xda,0xff,0x31,0x0,0x56,0x0,0x28,0x0,0xde,0xff,0xbe,0xff, +0xfc,0xff,0x50,0x0,0x36,0x0,0xc9,0xff,0xa1,0xff,0xf7,0xff, +0x5f,0x0,0x59,0x0,0xf8,0xff,0xbf,0xff,0xe6,0xff,0x23,0x0, +0x1f,0x0,0xdd,0xff,0xb6,0xff,0xe9,0xff,0x3d,0x0,0x55,0x0, +0x29,0x0,0xf0,0xff,0xeb,0xff,0x1b,0x0,0x30,0x0,0x8,0x0, +0xd6,0xff,0xbd,0xff,0xca,0xff,0x8,0x0,0x34,0x0,0x11,0x0, +0xda,0xff,0xdd,0xff,0xa,0x0,0x1f,0x0,0xf7,0xff,0xbf,0xff, +0xd0,0xff,0x21,0x0,0x59,0x0,0x45,0x0,0xed,0xff,0x9b,0xff, +0xb8,0xff,0x21,0x0,0x39,0x0,0xef,0xff,0xc7,0xff,0xfb,0xff, +0x43,0x0,0x45,0x0,0x5,0x0,0xd0,0xff,0xd4,0xff,0xf0,0xff, +0xfb,0xff,0xea,0xff,0xda,0xff,0xe9,0xff,0xf,0x0,0x34,0x0, +0x3f,0x0,0xd,0x0,0xbb,0xff,0xa3,0xff,0xd4,0xff,0xc,0x0, +0x1d,0x0,0xfd,0xff,0xdd,0xff,0x5,0x0,0x42,0x0,0x29,0x0, +0xdf,0xff,0xcc,0xff,0xfb,0xff,0x25,0x0,0xb,0x0,0xc6,0xff, +0xb7,0xff,0xf5,0xff,0x37,0x0,0x4f,0x0,0x29,0x0,0xd6,0xff, +0xb9,0xff,0xf2,0xff,0x18,0x0,0xfe,0xff,0xe8,0xff,0xf4,0xff, +0x4,0x0,0xfb,0xff,0xdb,0xff,0xc6,0xff,0xcd,0xff,0xde,0xff, +0xfe,0xff,0x26,0x0,0x28,0x0,0x6,0x0,0xec,0xff,0xec,0xff, +0x5,0x0,0x1c,0x0,0x8,0x0,0xdd,0xff,0xdb,0xff,0x4,0x0, +0x23,0x0,0x12,0x0,0xea,0xff,0xf8,0xff,0x38,0x0,0x35,0x0, +0xdf,0xff,0xae,0xff,0xcf,0xff,0x5,0x0,0x23,0x0,0x1e,0x0, +0x4,0x0,0xf8,0xff,0xf8,0xff,0xf2,0xff,0xf3,0xff,0xfd,0xff, +0xfe,0xff,0x8,0x0,0x1f,0x0,0x11,0x0,0xe0,0xff,0xcf,0xff, +0xf2,0xff,0x15,0x0,0x14,0x0,0xf7,0xff,0xe2,0xff,0xed,0xff, +0x5,0x0,0x12,0x0,0x1c,0x0,0x22,0x0,0x17,0x0,0x12,0x0, +0x10,0x0,0xef,0xff,0xdb,0xff,0xb,0x0,0x3d,0x0,0x37,0x0, +0x22,0x0,0x7,0x0,0xd9,0xff,0xce,0xff,0xef,0xff,0xf0,0xff, +0xd3,0xff,0xe6,0xff,0x24,0x0,0x3a,0x0,0x0,0x0,0xbf,0xff, +0xd7,0xff,0x24,0x0,0x39,0x0,0x12,0x0,0xf1,0xff,0xef,0xff, +0xc,0x0,0x2e,0x0,0x24,0x0,0xf7,0xff,0xeb,0xff,0x2,0x0, +0xf,0x0,0xff,0xff,0xec,0xff,0xfc,0xff,0x2a,0x0,0x3e,0x0, +0x1d,0x0,0xec,0xff,0xdb,0xff,0xeb,0xff,0xfb,0xff,0x4,0x0, +0x11,0x0,0xf,0x0,0xfd,0xff,0x6,0x0,0x1b,0x0,0x7,0x0, +0xec,0xff,0xf3,0xff,0xf3,0xff,0xe5,0xff,0xf7,0xff,0xc,0x0, +0xf8,0xff,0xe9,0xff,0x14,0x0,0x4e,0x0,0x38,0x0,0xd9,0xff, +0xb1,0xff,0xeb,0xff,0x21,0x0,0x20,0x0,0x15,0x0,0x3,0x0, +0xf0,0xff,0xfd,0xff,0x7,0x0,0xe9,0xff,0xd8,0xff,0xf8,0xff, +0x20,0x0,0x2c,0x0,0x1e,0x0,0x4,0x0,0xf2,0xff,0xf5,0xff, +0x15,0x0,0x31,0x0,0x12,0x0,0xce,0xff,0xc5,0xff,0x4,0x0, +0x43,0x0,0x3f,0x0,0xfa,0xff,0xca,0xff,0xe9,0xff,0xf,0x0, +0x0,0x0,0xeb,0xff,0xf0,0xff,0x6,0x0,0x2c,0x0,0x2e,0x0, +0xef,0xff,0xc4,0xff,0xea,0xff,0x2a,0x0,0x38,0x0,0xa,0x0, +0xdf,0xff,0xf9,0xff,0x22,0x0,0x11,0x0,0xf9,0xff,0xfb,0xff, +0xed,0xff,0xe4,0xff,0xfb,0xff,0xfc,0xff,0xe7,0xff,0xf2,0xff, +0xa,0x0,0x23,0x0,0x42,0x0,0x2b,0x0,0xd7,0xff,0xab,0xff, +0xd0,0xff,0xa,0x0,0x24,0x0,0x6,0x0,0xdc,0xff,0xf3,0xff, +0x24,0x0,0xe,0x0,0xcd,0xff,0xc1,0xff,0xed,0xff,0x1c,0x0, +0x22,0x0,0xfd,0xff,0xda,0xff,0xdc,0xff,0xf6,0xff,0x12,0x0, +0x19,0x0,0xf3,0xff,0xcc,0xff,0xda,0xff,0xfa,0xff,0x2,0x0, +0xa,0x0,0x10,0x0,0xfd,0xff,0xf0,0xff,0xf6,0xff,0xe7,0xff, +0xd9,0xff,0xf6,0xff,0x17,0x0,0x16,0x0,0xc,0x0,0x5,0x0, +0xf1,0xff,0xe4,0xff,0xef,0xff,0x4,0x0,0xd,0x0,0xa,0x0, +0xf,0x0,0x14,0x0,0x7,0x0,0x3,0x0,0x21,0x0,0x30,0x0, +0x1c,0x0,0xd,0x0,0xfd,0xff,0xdf,0xff,0xdb,0xff,0xf3,0xff, +0x6,0x0,0x21,0x0,0x38,0x0,0x16,0x0,0xd2,0xff,0xba,0xff, +0xde,0xff,0xc,0x0,0x16,0x0,0xd,0x0,0x1a,0x0,0x2c,0x0, +0x18,0x0,0xed,0xff,0xc6,0xff,0xb3,0xff,0xd7,0xff,0x13,0x0, +0x1b,0x0,0x3,0x0,0xff,0xff,0xfc,0xff,0x7,0x0,0x33,0x0, +0x30,0x0,0xea,0xff,0xc6,0xff,0xe0,0xff,0xf3,0xff,0xf4,0xff, +0x2,0x0,0x19,0x0,0x24,0x0,0x10,0x0,0xe6,0xff,0xce,0xff, +0xd7,0xff,0xf9,0xff,0x21,0x0,0x26,0x0,0x7,0x0,0xff,0xff, +0x8,0x0,0xee,0xff,0xe2,0xff,0x19,0x0,0x46,0x0,0x2e,0x0, +0xb,0x0,0xfd,0xff,0xf2,0xff,0xfa,0xff,0x14,0x0,0x15,0x0, +0x0,0x0,0xfa,0xff,0xf9,0xff,0xf0,0xff,0xed,0xff,0xf4,0xff, +0x11,0x0,0x3d,0x0,0x3e,0x0,0x7,0x0,0xd9,0xff,0xd6,0xff, +0xe8,0xff,0xfa,0xff,0xf6,0xff,0xe2,0xff,0xec,0xff,0x7,0x0, +0xc,0x0,0xd,0x0,0xa,0x0,0xf7,0xff,0xff,0xff,0x22,0x0, +0x1a,0x0,0xf3,0xff,0xe5,0xff,0xe9,0xff,0xff,0xff,0x1e,0x0, +0x11,0x0,0xe5,0xff,0xe0,0xff,0xf7,0xff,0x4,0x0,0x7,0x0, +0x3,0x0,0x11,0x0,0x2f,0x0,0x1d,0x0,0xe4,0xff,0xd7,0xff, +0xf0,0xff,0x5,0x0,0x19,0x0,0x22,0x0,0x18,0x0,0x11,0x0, +0x0,0x0,0xf2,0xff,0x9,0x0,0x13,0x0,0xee,0xff,0xde,0xff, +0xf3,0xff,0x1,0x0,0x10,0x0,0x1f,0x0,0x13,0x0,0x12,0x0, +0x20,0x0,0x11,0x0,0xf9,0xff,0xf2,0xff,0xee,0xff,0x4,0x0, +0x2e,0x0,0x30,0x0,0x16,0x0,0x0,0x0,0xdd,0xff,0xcf,0xff, +0xf5,0xff,0xf,0x0,0x7,0x0,0x8,0x0,0x6,0x0,0x4,0x0, +0x1c,0x0,0x21,0x0,0x3,0x0,0xfc,0xff,0x1,0x0,0xf6,0xff, +0x7,0x0,0x27,0x0,0x17,0x0,0x1,0x0,0x12,0x0,0x1b,0x0, +0xa,0x0,0xfd,0xff,0xf6,0xff,0xee,0xff,0xe9,0xff,0xef,0xff, +0x10,0x0,0x2b,0x0,0xd,0x0,0xe9,0xff,0xfb,0xff,0x5,0x0, +0xe7,0xff,0xed,0xff,0x17,0x0,0x1c,0x0,0xff,0xff,0xe6,0xff, +0xdf,0xff,0xff,0xff,0x34,0x0,0x38,0x0,0x1,0x0,0xd6,0xff, +0xe2,0xff,0xe,0x0,0x17,0x0,0xf1,0xff,0xef,0xff,0x28,0x0, +0x3e,0x0,0x14,0x0,0xed,0xff,0xe1,0xff,0xe6,0xff,0x3,0x0, +0x26,0x0,0x2e,0x0,0xe,0x0,0xd9,0xff,0xcb,0xff,0xfc,0xff, +0x27,0x0,0x21,0x0,0xc,0x0,0xf1,0xff,0xd3,0xff,0xdd,0xff, +0x8,0x0,0x21,0x0,0x1e,0x0,0xd,0x0,0x2,0x0,0x7,0x0, +0xfe,0xff,0xed,0xff,0xff,0xff,0xc,0x0,0xf3,0xff,0xf5,0xff, +0x11,0x0,0xff,0xff,0xde,0xff,0xed,0xff,0xb,0x0,0x1a,0x0, +0x23,0x0,0x19,0x0,0xfb,0xff,0xdc,0xff,0xcc,0xff,0xda,0xff, +0xeb,0xff,0xe8,0xff,0x1,0x0,0x27,0x0,0xf5,0xff,0xa2,0xff, +0xc4,0xff,0x29,0x0,0x38,0x0,0xf5,0xff,0xbf,0xff,0xc0,0xff, +0xec,0xff,0x10,0x0,0xd,0x0,0xfc,0xff,0x1,0x0,0x1e,0x0, +0x2f,0x0,0x9,0x0,0xc9,0xff,0xc2,0xff,0xf7,0xff,0x23,0x0, +0x27,0x0,0xb,0x0,0xe1,0xff,0xc5,0xff,0xd3,0xff,0xf8,0xff, +0xb,0x0,0xfc,0xff,0xec,0xff,0xed,0xff,0xec,0xff,0xe0,0xff, +0xe4,0xff,0x6,0x0,0x28,0x0,0x23,0x0,0x2,0x0,0xf2,0xff, +0xf8,0xff,0xf2,0xff,0xf0,0xff,0x0,0x0,0xff,0xff,0xeb,0xff, +0xee,0xff,0xfb,0xff,0xe9,0xff,0xd2,0xff,0xdd,0xff,0xff,0xff, +0x16,0x0,0x19,0x0,0x11,0x0,0x0,0x0,0xee,0xff,0xf7,0xff, +0x15,0x0,0x1c,0x0,0x7,0x0,0xf6,0xff,0xe7,0xff,0xd9,0xff, +0xe7,0xff,0xd,0x0,0x19,0x0,0xfc,0xff,0xe5,0xff,0xf3,0xff, +0xff,0xff,0xef,0xff,0xf3,0xff,0x13,0x0,0x16,0x0,0x6,0x0, +0xd,0x0,0x10,0x0,0xf8,0xff,0xeb,0xff,0xf7,0xff,0xc,0x0, +0x18,0x0,0xc,0x0,0xf5,0xff,0xeb,0xff,0xe5,0xff,0xed,0xff, +0x17,0x0,0x35,0x0,0x2a,0x0,0x14,0x0,0xef,0xff,0xc3,0xff, +0xd1,0xff,0xb,0x0,0x19,0x0,0x4,0x0,0x5,0x0,0x15,0x0, +0x13,0x0,0xff,0xff,0xf6,0xff,0xe,0x0,0x20,0x0,0x2,0x0, +0xe3,0xff,0xf2,0xff,0x4,0x0,0x3,0x0,0x6,0x0,0x8,0x0, +0x6,0x0,0x11,0x0,0x17,0x0,0x3,0x0,0xed,0xff,0xf6,0xff, +0x13,0x0,0x20,0x0,0xe,0x0,0xfd,0xff,0x3,0x0,0x8,0x0, +0x0,0x0,0x9,0x0,0x1f,0x0,0x16,0x0,0xed,0xff,0xd7,0xff, +0xe9,0xff,0xa,0x0,0x21,0x0,0x27,0x0,0x17,0x0,0xfa,0xff, +0xf6,0xff,0x13,0x0,0x18,0x0,0xef,0xff,0xe2,0xff,0x18,0x0, +0x3e,0x0,0x1d,0x0,0xf2,0xff,0xed,0xff,0xf1,0xff,0xee,0xff, +0xfe,0xff,0x15,0x0,0xa,0x0,0xde,0xff,0xd0,0xff,0xf4,0xff, +0xa,0x0,0x0,0x0,0x8,0x0,0x15,0x0,0xfe,0xff,0xeb,0xff, +0xf3,0xff,0xf3,0xff,0x3,0x0,0x2b,0x0,0x17,0x0,0xc6,0xff, +0xaf,0xff,0xf7,0xff,0x42,0x0,0x38,0x0,0xe7,0xff,0xc1,0xff, +0xf3,0xff,0x1b,0x0,0xc,0x0,0xfe,0xff,0xf8,0xff,0xf7,0xff, +0x19,0x0,0x2b,0x0,0x1,0x0,0xe1,0xff,0xee,0xff,0x7,0x0, +0x1f,0x0,0x20,0x0,0x4,0x0,0x3,0x0,0xe,0x0,0xee,0xff, +0xe4,0xff,0x19,0x0,0x31,0x0,0x10,0x0,0xf8,0xff,0xf5,0xff, +0xf9,0xff,0xc,0x0,0x23,0x0,0x2d,0x0,0x23,0x0,0x10,0x0, +0x18,0x0,0x23,0x0,0xff,0xff,0xe4,0xff,0x2,0x0,0x11,0x0, +0xfe,0xff,0xd,0x0,0x27,0x0,0x11,0x0,0xfb,0xff,0x12,0x0, +0x2a,0x0,0x1f,0x0,0x3,0x0,0xf9,0xff,0xfb,0xff,0xf0,0xff, +0xf5,0xff,0x21,0x0,0x3c,0x0,0x1f,0x0,0xfb,0xff,0xee,0xff, +0xf7,0xff,0x16,0x0,0x2b,0x0,0x1a,0x0,0x6,0x0,0x9,0x0, +0xf,0x0,0x11,0x0,0x9,0x0,0xf5,0xff,0xf6,0xff,0x14,0x0, +0x24,0x0,0x18,0x0,0x5,0x0,0xed,0xff,0xde,0xff,0xf7,0xff, +0x20,0x0,0x28,0x0,0xe,0x0,0xf7,0xff,0xf2,0xff,0xf4,0xff, +0xfc,0xff,0x16,0x0,0x36,0x0,0x2f,0x0,0xfc,0xff,0xdb,0xff, +0xe9,0xff,0xff,0xff,0x5,0x0,0xd,0x0,0xf,0x0,0x5,0x0, +0x0,0x0,0xf8,0xff,0xe9,0xff,0xf0,0xff,0x5,0x0,0xc,0x0, +0x11,0x0,0x17,0x0,0x3,0x0,0xed,0xff,0xf5,0xff,0x4,0x0, +0x10,0x0,0x25,0x0,0x26,0x0,0x7,0x0,0xf1,0xff,0xf3,0xff, +0xff,0xff,0x10,0x0,0x17,0x0,0x5,0x0,0xef,0xff,0xea,0xff, +0xfa,0xff,0x9,0x0,0x2,0x0,0xfa,0xff,0xc,0x0,0x12,0x0, +0xf4,0xff,0xec,0xff,0x13,0x0,0x29,0x0,0x17,0x0,0x7,0x0, +0x7,0x0,0xa,0x0,0x2,0x0,0xea,0xff,0xd9,0xff,0xf3,0xff, +0x1c,0x0,0x1b,0x0,0xfa,0xff,0xf1,0xff,0xfb,0xff,0xf4,0xff, +0xed,0xff,0x1,0x0,0x19,0x0,0x12,0x0,0xfb,0xff,0xf1,0xff, +0xf8,0xff,0x0,0x0,0x2,0x0,0x6,0x0,0xf,0x0,0x14,0x0, +0x7,0x0,0xef,0xff,0xf1,0xff,0x17,0x0,0x26,0x0,0x1,0x0, +0xe9,0xff,0xfc,0xff,0xa,0x0,0x7,0x0,0x8,0x0,0x3,0x0, +0xf6,0xff,0xfb,0xff,0x2,0x0,0xf1,0xff,0xde,0xff,0xf0,0xff, +0x17,0x0,0x1b,0x0,0xfe,0xff,0xfb,0xff,0xe,0x0,0x3,0x0, +0xf3,0xff,0xfe,0xff,0x5,0x0,0x9,0x0,0x18,0x0,0x5,0x0, +0xda,0xff,0xeb,0xff,0x23,0x0,0x24,0x0,0xf7,0xff,0xe4,0xff, +0xfd,0xff,0x1a,0x0,0x8,0x0,0xe6,0xff,0xef,0xff,0x3,0x0, +0xfd,0xff,0x6,0x0,0x15,0x0,0x2,0x0,0xf4,0xff,0x0,0x0, +0xfc,0xff,0xf2,0xff,0xfd,0xff,0x5,0x0,0x5,0x0,0x4,0x0, +0xf8,0xff,0xfa,0xff,0x12,0x0,0x10,0x0,0xf8,0xff,0xf0,0xff, +0xeb,0xff,0xea,0xff,0xb,0x0,0x24,0x0,0xd,0x0,0xf4,0xff, +0xff,0xff,0xf,0x0,0x6,0x0,0xf2,0xff,0xee,0xff,0xfc,0xff, +0xfe,0xff,0xf3,0xff,0xf5,0xff,0xf5,0xff,0xe5,0xff,0xeb,0xff, +0xc,0x0,0xe,0x0,0xf4,0xff,0xf4,0xff,0x6,0x0,0x1,0x0, +0xf6,0xff,0xfb,0xff,0xfa,0xff,0xe5,0xff,0xd9,0xff,0xe6,0xff, +0xf6,0xff,0xfb,0xff,0x5,0x0,0x17,0x0,0xe,0x0,0xe8,0xff, +0xdb,0xff,0xf6,0xff,0x7,0x0,0xfb,0xff,0xf5,0xff,0x3,0x0, +0xd,0x0,0x6,0x0,0xf3,0xff,0xe3,0xff,0xe3,0xff,0xf2,0xff, +0x8,0x0,0x12,0x0,0xff,0xff,0xe5,0xff,0xe5,0xff,0xf2,0xff, +0xf6,0xff,0x2,0x0,0xe,0x0,0x3,0x0,0xf0,0xff,0xe6,0xff, +0xe2,0xff,0xf0,0xff,0xe,0x0,0x1d,0x0,0xd,0x0,0xf0,0xff, +0xe0,0xff,0xf0,0xff,0x5,0x0,0xfb,0xff,0xec,0xff,0xf2,0xff, +0xf1,0xff,0xe9,0xff,0xee,0xff,0xef,0xff,0xeb,0xff,0xf5,0xff, +0xff,0xff,0x3,0x0,0x4,0x0,0xee,0xff,0xcd,0xff,0xd6,0xff, +0xfc,0xff,0x7,0x0,0xfa,0xff,0xf0,0xff,0xeb,0xff,0xf1,0xff, +0xfc,0xff,0xf9,0xff,0xf4,0xff,0xf5,0xff,0xf2,0xff,0xe9,0xff, +0xe2,0xff,0xe0,0xff,0xf5,0xff,0x18,0x0,0x16,0x0,0xf0,0xff, +0xe1,0xff,0xf1,0xff,0xfe,0xff,0x3,0x0,0x6,0x0,0x0,0x0, +0xfb,0xff,0xff,0xff,0x0,0x0,0xfa,0xff,0xeb,0xff,0xe0,0xff, +0xf0,0xff,0x9,0x0,0x1,0x0,0xe9,0xff,0xe8,0xff,0xf3,0xff, +0xfc,0xff,0x6,0x0,0xfe,0xff,0xe2,0xff,0xe7,0xff,0xe,0x0, +0x1a,0x0,0xfe,0xff,0xe8,0xff,0xf4,0xff,0xb,0x0,0x5,0x0, +0xeb,0xff,0xe4,0xff,0xf0,0xff,0xf8,0xff,0xfd,0xff,0xfd,0xff, +0xf6,0xff,0xf8,0xff,0xf9,0xff,0xec,0xff,0xf2,0xff,0x10,0x0, +0x15,0x0,0x6,0x0,0x8,0x0,0x8,0x0,0xf6,0xff,0xf0,0xff, +0xfa,0xff,0x9,0x0,0x16,0x0,0x14,0x0,0xfc,0xff,0xe9,0xff, +0xee,0xff,0x1,0x0,0xa,0x0,0xfb,0xff,0xf0,0xff,0xf6,0xff, +0xf4,0xff,0xf3,0xff,0xff,0xff,0xf3,0xff,0xdc,0xff,0xf5,0xff, +0x14,0x0,0xf9,0xff,0xdf,0xff,0xef,0xff,0xf6,0xff,0xef,0xff, +0x2,0x0,0x10,0x0,0xfe,0xff,0xef,0xff,0xfb,0xff,0x7,0x0, +0x4,0x0,0xff,0xff,0xfe,0xff,0xf6,0xff,0xec,0xff,0xf4,0xff, +0xfc,0xff,0xf5,0xff,0xfd,0xff,0xb,0x0,0xf5,0xff,0xe3,0xff, +0x6,0x0,0x1d,0x0,0x1,0x0,0xf8,0xff,0x9,0x0,0xfc,0xff, +0xef,0xff,0xb,0x0,0x12,0x0,0xf3,0xff,0xee,0xff,0x4,0x0, +0xfc,0xff,0xf0,0xff,0xa,0x0,0x17,0x0,0xf6,0xff,0xe6,0xff, +0x2,0x0,0x10,0x0,0x3,0x0,0x7,0x0,0xe,0x0,0xff,0xff, +0xfe,0xff,0x12,0x0,0x4,0x0,0xee,0xff,0xa,0x0,0x22,0x0, +0xfb,0xff,0xe0,0xff,0x0,0x0,0x11,0x0,0xfa,0xff,0xfb,0xff, +0xc,0x0,0x1,0x0,0xf8,0xff,0x4,0x0,0xff,0xff,0xf2,0xff, +0x3,0x0,0x14,0x0,0x0,0x0,0xea,0xff,0xeb,0xff,0xec,0xff, +0xf0,0xff,0x7,0x0,0xe,0x0,0xf7,0xff,0xfa,0xff,0xe,0x0, +0xf5,0xff,0xda,0xff,0x1,0x0,0x20,0x0,0xfb,0xff,0xe8,0xff, +0xa,0x0,0x7,0x0,0xe9,0xff,0xfe,0xff,0x18,0x0,0xf6,0xff, +0xe0,0xff,0x0,0x0,0xe,0x0,0x1,0x0,0xf,0x0,0x15,0x0, +0xeb,0xff,0xdc,0xff,0xd,0x0,0x19,0x0,0xe8,0xff,0xde,0xff, +0x6,0x0,0xa,0x0,0xf8,0xff,0x2,0x0,0xf7,0xff,0xcf,0xff, +0xe1,0xff,0x18,0x0,0xe,0x0,0xe7,0xff,0xf9,0xff,0x18,0x0, +0xb,0x0,0xfe,0xff,0x3,0x0,0xfc,0xff,0xf6,0xff,0xfd,0xff, +0xf2,0xff,0xe4,0xff,0xf7,0xff,0x3,0x0,0xed,0xff,0xf0,0xff, +0x18,0x0,0x1a,0x0,0xf5,0xff,0xec,0xff,0xf5,0xff,0xe6,0xff, +0xec,0xff,0x16,0x0,0x16,0x0,0xea,0xff,0xec,0xff,0xb,0x0, +0xf5,0xff,0xdf,0xff,0x5,0x0,0x14,0x0,0xe9,0xff,0xe8,0xff, +0xc,0x0,0xfd,0xff,0xe5,0xff,0x3,0x0,0x15,0x0,0xf7,0xff, +0xf9,0xff,0x1d,0x0,0x1c,0x0,0xfe,0xff,0xf9,0xff,0xfb,0xff, +0xef,0xff,0xfa,0xff,0x12,0x0,0xff,0xff,0xdc,0xff,0xe9,0xff, +0xff,0xff,0xf0,0xff,0xed,0xff,0x2,0x0,0xf3,0xff,0xe0,0xff, +0x3,0x0,0x19,0x0,0xf8,0xff,0xe9,0xff,0x0,0x0,0x0,0x0, +0xf2,0xff,0xf9,0xff,0xfc,0xff,0xec,0xff,0xea,0xff,0xee,0xff, +0xe5,0xff,0xea,0xff,0x7,0x0,0xb,0x0,0xf1,0xff,0xf9,0xff, +0x1d,0x0,0x10,0x0,0xe6,0xff,0xf6,0xff,0x1d,0x0,0xb,0x0, +0xf2,0xff,0x7,0x0,0x10,0x0,0xf6,0xff,0xe7,0xff,0xe9,0xff, +0xe9,0xff,0xf5,0xff,0x3,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0xf2,0xff,0xf1,0xff,0x15,0x0,0x21,0x0,0xff,0xff,0xea,0xff, +0xfe,0xff,0xd,0x0,0xff,0xff,0xfb,0xff,0x5,0x0,0xf9,0xff, +0xee,0xff,0x7,0x0,0x11,0x0,0xeb,0xff,0xde,0xff,0xfe,0xff, +0x5,0x0,0xf9,0xff,0x9,0x0,0xd,0x0,0xf5,0xff,0xfd,0xff, +0x1a,0x0,0xf,0x0,0xf5,0xff,0xf9,0xff,0x2,0x0,0xfd,0xff, +0xff,0xff,0x6,0x0,0xfd,0xff,0xf1,0xff,0x0,0x0,0x1e,0x0, +0x1b,0x0,0x5,0x0,0x10,0x0,0x27,0x0,0x14,0x0,0xf6,0xff, +0xfb,0xff,0x11,0x0,0x1a,0x0,0x13,0x0,0x5,0x0,0xfb,0xff, +0xf2,0xff,0xe6,0xff,0x0,0x0,0x31,0x0,0x24,0x0,0xec,0xff, +0xf2,0xff,0x1c,0x0,0x14,0x0,0xfe,0xff,0xb,0x0,0x17,0x0, +0xf,0x0,0xf,0x0,0x13,0x0,0x1,0x0,0xf0,0xff,0x0,0x0, +0x14,0x0,0x6,0x0,0xf7,0xff,0xa,0x0,0xb,0x0,0xe9,0xff, +0xef,0xff,0x15,0x0,0x9,0x0,0xeb,0xff,0xfb,0xff,0x7,0x0, +0xf1,0xff,0xf2,0xff,0xa,0x0,0xe,0x0,0x6,0x0,0xff,0xff, +0xf5,0xff,0xf9,0xff,0xb,0x0,0x16,0x0,0x10,0x0,0xff,0xff, +0xf7,0xff,0x3,0x0,0x8,0x0,0xf6,0xff,0xf1,0xff,0x6,0x0, +0x13,0x0,0xa,0x0,0xff,0xff,0x1,0x0,0xd,0x0,0xb,0x0, +0xff,0xff,0x10,0x0,0x21,0x0,0x7,0x0,0xf8,0xff,0xe,0x0, +0x5,0x0,0xed,0xff,0xf,0x0,0x2e,0x0,0x7,0x0,0xf1,0xff, +0x1d,0x0,0x33,0x0,0xf,0x0,0xef,0xff,0xf6,0xff,0x3,0x0, +0x6,0x0,0xf,0x0,0x16,0x0,0x0,0x0,0xef,0xff,0x2,0x0, +0x8,0x0,0xf3,0xff,0xf8,0xff,0x4,0x0,0xeb,0xff,0xef,0xff, +0x23,0x0,0x23,0x0,0xf5,0xff,0xf9,0xff,0x19,0x0,0x10,0x0, +0x1,0x0,0x16,0x0,0x31,0x0,0x2a,0x0,0xb,0x0,0xf9,0xff, +0xfe,0xff,0xfc,0xff,0xf4,0xff,0x3,0x0,0xb,0x0,0xf3,0xff, +0xe4,0xff,0xf1,0xff,0xfd,0xff,0xfc,0xff,0xf4,0xff,0xf4,0xff, +0x2,0x0,0x2,0x0,0xf5,0xff,0xb,0x0,0x28,0x0,0x13,0x0, +0xfd,0xff,0xc,0x0,0x7,0x0,0xf3,0xff,0x3,0x0,0x9,0x0, +0xe8,0xff,0xe7,0xff,0xc,0x0,0x15,0x0,0x0,0x0,0xfc,0xff, +0xa,0x0,0x9,0x0,0x0,0x0,0xa,0x0,0x16,0x0,0x1,0x0, +0xf5,0xff,0x12,0x0,0x10,0x0,0xeb,0xff,0xfe,0xff,0x24,0x0, +0x0,0x0,0xdb,0xff,0x0,0x0,0x1b,0x0,0xff,0xff,0xf6,0xff, +0x10,0x0,0x13,0x0,0xf0,0xff,0xd6,0xff,0xea,0xff,0x9,0x0, +0x5,0x0,0x1,0x0,0x12,0x0,0x9,0x0,0xec,0xff,0xfa,0xff, +0x18,0x0,0x16,0x0,0xb,0x0,0x8,0x0,0xfa,0xff,0xed,0xff, +0xf5,0xff,0xa,0x0,0x1a,0x0,0xd,0x0,0xf6,0xff,0xfc,0xff, +0x1,0x0,0xee,0xff,0x0,0x0,0x2b,0x0,0x1b,0x0,0xef,0xff, +0xf1,0xff,0x3,0x0,0xc,0x0,0x1d,0x0,0x1b,0x0,0xf9,0xff, +0xec,0xff,0x8,0x0,0x1c,0x0,0x4,0x0,0xdf,0xff,0xe9,0xff, +0xf,0x0,0x9,0x0,0xee,0xff,0xfb,0xff,0x6,0x0,0xf2,0xff, +0xfc,0xff,0x19,0x0,0x9,0x0,0xf1,0xff,0x8,0x0,0x26,0x0, +0x20,0x0,0xfe,0xff,0xeb,0xff,0x2,0x0,0x19,0x0,0x7,0x0, +0xf7,0xff,0xfb,0xff,0xf0,0xff,0xf1,0xff,0x11,0x0,0xd,0x0, +0xe3,0xff,0xe9,0xff,0x14,0x0,0x1e,0x0,0xb,0x0,0xff,0xff, +0x2,0x0,0xc,0x0,0x14,0x0,0x15,0x0,0xb,0x0,0xf2,0xff, +0xed,0xff,0xc,0x0,0x10,0x0,0xf2,0xff,0xf9,0xff,0x11,0x0, +0xff,0xff,0xf4,0xff,0x4,0x0,0xf4,0xff,0xe1,0xff,0x2,0x0, +0x1e,0x0,0xd,0x0,0x1,0x0,0xe,0x0,0x17,0x0,0x13,0x0, +0x13,0x0,0x21,0x0,0x23,0x0,0xa,0x0,0xfe,0xff,0x13,0x0, +0x16,0x0,0xfe,0xff,0xf3,0xff,0xf4,0xff,0xf8,0xff,0xc,0x0, +0x15,0x0,0xb,0x0,0x16,0x0,0x26,0x0,0x14,0x0,0x3,0x0, +0x3,0x0,0xf8,0xff,0xfa,0xff,0xe,0x0,0x1,0x0,0xe9,0xff, +0xf7,0xff,0xa,0x0,0x6,0x0,0x4,0x0,0xe,0x0,0x11,0x0, +0x10,0x0,0xf,0x0,0x12,0x0,0x14,0x0,0x11,0x0,0x14,0x0, +0x10,0x0,0xf5,0xff,0xef,0xff,0xe,0x0,0x8,0x0,0xea,0xff, +0x0,0x0,0x16,0x0,0xf4,0xff,0xef,0xff,0x17,0x0,0x12,0x0, +0xf9,0xff,0x14,0x0,0x26,0x0,0x0,0x0,0xed,0xff,0x14,0x0, +0x2c,0x0,0x9,0x0,0xe6,0xff,0xf8,0xff,0xd,0x0,0xf9,0xff, +0xf1,0xff,0x2,0x0,0xfe,0xff,0xf6,0xff,0x4,0x0,0xfc,0xff, +0xed,0xff,0xa,0x0,0x21,0x0,0xc,0x0,0xb,0x0,0x1e,0x0, +0xc,0x0,0xfa,0xff,0x11,0x0,0x2b,0x0,0x24,0x0,0xa,0x0, +0xf9,0xff,0x7,0x0,0x1b,0x0,0x14,0x0,0x8,0x0,0x8,0x0, +0x0,0x0,0xf4,0xff,0xf6,0xff,0x0,0x0,0x6,0x0,0x0,0x0, +0xfd,0xff,0x18,0x0,0x2b,0x0,0x9,0x0,0xf3,0xff,0x11,0x0, +0x11,0x0,0xee,0xff,0xff,0xff,0x1f,0x0,0x1,0x0,0xe1,0xff, +0xf8,0xff,0xd,0x0,0xa,0x0,0x10,0x0,0x14,0x0,0x4,0x0, +0xfb,0xff,0xb,0x0,0xf,0x0,0xf2,0xff,0xec,0xff,0x18,0x0, +0x25,0x0,0xf3,0xff,0xe6,0xff,0xf,0x0,0x10,0x0,0xf9,0xff, +0x6,0x0,0x9,0x0,0xf0,0xff,0xf5,0xff,0xb,0x0,0xfe,0xff, +0xef,0xff,0xfd,0xff,0xc,0x0,0x7,0x0,0xfc,0xff,0xff,0xff, +0x9,0x0,0x3,0x0,0xfc,0xff,0xd,0x0,0x15,0x0,0x1,0x0, +0xfb,0xff,0x2,0x0,0xf5,0xff,0xea,0xff,0xf8,0xff,0x9,0x0, +0x12,0x0,0xf,0x0,0xff,0xff,0xfd,0xff,0xb,0x0,0x9,0x0, +0x5,0x0,0xc,0x0,0x2,0x0,0xf4,0xff,0x6,0x0,0x12,0x0, +0xfc,0xff,0xf2,0xff,0x3,0x0,0x9,0x0,0xf7,0xff,0xeb,0xff, +0xf9,0xff,0xb,0x0,0x5,0x0,0xf8,0xff,0xfd,0xff,0x0,0x0, +0xfe,0xff,0xc,0x0,0x9,0x0,0xe8,0xff,0xef,0xff,0x1a,0x0, +0x13,0x0,0xe7,0xff,0xe4,0xff,0xfe,0xff,0x4,0x0,0xfe,0xff, +0xfa,0xff,0xf5,0xff,0xf9,0xff,0xd,0x0,0x1c,0x0,0x9,0x0, +0xec,0xff,0x0,0x0,0x26,0x0,0x11,0x0,0xeb,0xff,0xff,0xff, +0x15,0x0,0xf6,0xff,0xe8,0xff,0x8,0x0,0x13,0x0,0xfb,0xff, +0xf4,0xff,0x0,0x0,0x2,0x0,0xf6,0xff,0xf1,0xff,0xf9,0xff, +0xfa,0xff,0xf7,0xff,0x6,0x0,0x13,0x0,0x5,0x0,0xf8,0xff, +0xff,0xff,0x0,0x0,0xfd,0xff,0x6,0x0,0x7,0x0,0xff,0xff, +0x5,0x0,0x9,0x0,0xfb,0xff,0xed,0xff,0xf2,0xff,0xa,0x0, +0x1c,0x0,0x9,0x0,0xee,0xff,0xf9,0xff,0x7,0x0,0xf1,0xff, +0xe9,0xff,0x4,0x0,0x8,0x0,0xf0,0xff,0xf6,0xff,0x1b,0x0, +0x1f,0x0,0xf8,0xff,0xeb,0xff,0x9,0x0,0xe,0x0,0xf0,0xff, +0xf0,0xff,0x4,0x0,0xfc,0xff,0xff,0xff,0x1e,0x0,0x10,0x0, +0xdd,0xff,0xe6,0xff,0x15,0x0,0x11,0x0,0xed,0xff,0xeb,0xff, +0xfc,0xff,0xfb,0xff,0x1,0x0,0x1d,0x0,0x23,0x0,0x5,0x0, +0x1,0x0,0x23,0x0,0x24,0x0,0xff,0xff,0xfa,0xff,0xf,0x0, +0x9,0x0,0xf4,0xff,0xf1,0xff,0xf2,0xff,0xf1,0xff,0xf7,0xff, +0xfb,0xff,0xf3,0xff,0xe2,0xff,0xda,0xff,0xea,0xff,0xf9,0xff, +0xe2,0xff,0xc5,0xff,0xce,0xff,0xdf,0xff,0xd9,0xff,0xdf,0xff, +0xf8,0xff,0xf8,0xff,0xde,0xff,0xe5,0xff,0xf,0x0,0x18,0x0, +0xf8,0xff,0xf9,0xff,0x20,0x0,0x1f,0x0,0x2,0x0,0x7,0x0, +0xd,0x0,0xee,0xff,0xe6,0xff,0x2,0x0,0xfb,0xff,0xd5,0xff, +0xda,0xff,0xf6,0xff,0xe9,0xff,0xcd,0xff,0xda,0xff,0xf8,0xff, +0xf7,0xff,0xeb,0xff,0xfb,0xff,0x7,0x0,0xf6,0xff,0xf4,0xff, +0x12,0x0,0x1c,0x0,0x4,0x0,0xfe,0xff,0x13,0x0,0x1f,0x0, +0x16,0x0,0xd,0x0,0xe,0x0,0x2,0x0,0xe8,0xff,0xea,0xff, +0xa,0x0,0x2,0x0,0xce,0xff,0xc4,0xff,0xee,0xff,0xff,0xff, +0xed,0xff,0xe9,0xff,0xef,0xff,0xe8,0xff,0xf0,0xff,0x11,0x0, +0x15,0x0,0xef,0xff,0xea,0xff,0x16,0x0,0x1f,0x0,0xf6,0xff, +0xef,0xff,0x11,0x0,0x10,0x0,0xf8,0xff,0x2,0x0,0xc,0x0, +0xf2,0xff,0xe2,0xff,0xf4,0xff,0xfa,0xff,0xe1,0xff,0xdc,0xff, +0xfa,0xff,0xa,0x0,0xf6,0xff,0xee,0xff,0x5,0x0,0x6,0x0, +0xeb,0xff,0xee,0xff,0x9,0x0,0x3,0x0,0xe9,0xff,0xf6,0xff, +0x15,0x0,0x7,0x0,0xde,0xff,0xe2,0xff,0x8,0x0,0x8,0x0, +0xf7,0xff,0xf,0x0,0x25,0x0,0x3,0x0,0xe5,0xff,0xf9,0xff, +0xfd,0xff,0xe6,0xff,0xf6,0xff,0x1d,0x0,0x12,0x0,0xf1,0xff, +0xfe,0xff,0xf,0x0,0xed,0xff,0xd1,0xff,0xfb,0xff,0x1f,0x0, +0xf5,0xff,0xcb,0xff,0xe1,0xff,0xed,0xff,0xbf,0xff,0xaa,0xff, +0xdf,0xff,0x1b,0x0,0x30,0x0,0x38,0x0,0x3f,0x0,0x27,0x0, +0xf8,0xff,0xe6,0xff,0xf4,0xff,0xed,0xff,0xd9,0xff,0xee,0xff, +0xa,0x0,0xf3,0xff,0xe1,0xff,0x13,0x0,0x39,0x0,0x14,0x0, +0xf7,0xff,0x17,0x0,0x1f,0x0,0xec,0xff,0xdc,0xff,0x8,0x0, +0x9,0x0,0xd5,0xff,0xda,0xff,0x11,0x0,0x10,0x0,0xf0,0xff, +0x7,0x0,0x14,0x0,0xd5,0xff,0xb2,0xff,0xeb,0xff,0x17,0x0, +0xfe,0xff,0xf0,0xff,0x2,0x0,0xec,0xff,0xbd,0xff,0xcf,0xff, +0x14,0x0,0x20,0x0,0xf7,0xff,0xf5,0xff,0xf,0x0,0xf8,0xff, +0xce,0xff,0xd7,0xff,0xee,0xff,0xe0,0xff,0xdf,0xff,0xe,0x0, +0x2a,0x0,0x5,0x0,0xea,0xff,0x10,0x0,0x25,0x0,0xf6,0xff, +0xdf,0xff,0x8,0x0,0x7,0x0,0xcf,0xff,0xd3,0xff,0x4,0x0, +0xf6,0xff,0xdb,0xff,0x14,0x0,0x46,0x0,0x9,0x0,0xcb,0xff, +0xf7,0xff,0x23,0x0,0xed,0xff,0xc6,0xff,0xf6,0xff,0xc,0x0, +0xe1,0xff,0xe8,0xff,0x1d,0x0,0xb,0x0,0xdc,0xff,0xff,0xff, +0x36,0x0,0x1b,0x0,0xf0,0xff,0x2,0x0,0x13,0x0,0xf7,0xff, +0xec,0xff,0xa,0x0,0x7,0x0,0xdc,0xff,0xe2,0xff,0x18,0x0, +0x16,0x0,0xe2,0xff,0xec,0xff,0x29,0x0,0x2b,0x0,0x0,0x0, +0x6,0x0,0x26,0x0,0x10,0x0,0xee,0xff,0xa,0x0,0x2a,0x0, +0xfb,0xff,0xd0,0xff,0xfe,0xff,0x20,0x0,0xe8,0xff,0xcd,0xff, +0xe,0x0,0x26,0x0,0xee,0xff,0xea,0xff,0x1d,0x0,0xf,0x0, +0xde,0xff,0xf7,0xff,0x25,0x0,0x4,0x0,0xe1,0xff,0x10,0x0, +0x35,0x0,0x5,0x0,0xe6,0xff,0xb,0x0,0x7,0x0,0xcd,0xff, +0xd5,0xff,0x13,0x0,0x11,0x0,0xe3,0xff,0xf0,0xff,0x1a,0x0, +0x14,0x0,0xfe,0xff,0xc,0x0,0x13,0x0,0xef,0xff,0xde,0xff, +0x4,0x0,0x18,0x0,0xf2,0xff,0xe9,0xff,0x1c,0x0,0x2d,0x0, +0xfd,0xff,0xeb,0xff,0x10,0x0,0x16,0x0,0xf5,0xff,0xf9,0xff, +0x1b,0x0,0xf,0x0,0xed,0xff,0x4,0x0,0x2d,0x0,0xe,0x0, +0xdd,0xff,0xf3,0xff,0x17,0x0,0xff,0xff,0xf0,0xff,0xc,0x0, +0x8,0x0,0xe4,0xff,0xf5,0xff,0x1f,0x0,0xa,0x0,0xde,0xff, +0xf5,0xff,0x25,0x0,0x18,0x0,0xf8,0xff,0xb,0x0,0x1b,0x0, +0xf7,0xff,0xe4,0xff,0x9,0x0,0x1c,0x0,0xff,0xff,0xfb,0xff, +0x1c,0x0,0x1e,0x0,0xf7,0xff,0xe4,0xff,0xf8,0xff,0x9,0x0, +0x9,0x0,0xc,0x0,0x10,0x0,0xfe,0xff,0xf2,0xff,0x12,0x0, +0x30,0x0,0x16,0x0,0xf3,0xff,0x0,0x0,0x13,0x0,0x1,0x0, +0xf0,0xff,0xfe,0xff,0x6,0x0,0xf8,0xff,0xfe,0xff,0x1a,0x0, +0x14,0x0,0xef,0xff,0xe8,0xff,0xff,0xff,0xf7,0xff,0xdd,0xff, +0xde,0xff,0xe7,0xff,0xdd,0xff,0xe2,0xff,0xff,0xff,0x9,0x0, +0xfd,0xff,0x7,0x0,0x20,0x0,0x17,0x0,0xf0,0xff,0xe6,0xff, +0x1,0x0,0xb,0x0,0xf1,0xff,0xe7,0xff,0xff,0xff,0xe,0x0, +0x9,0x0,0xb,0x0,0x11,0x0,0x6,0x0,0xf3,0xff,0xf7,0xff, +0xc,0x0,0x12,0x0,0xb,0x0,0x9,0x0,0x9,0x0,0x5,0x0, +0x12,0x0,0x2b,0x0,0x20,0x0,0xf8,0xff,0xf2,0xff,0x5,0x0, +0xf7,0xff,0xd9,0xff,0xe8,0xff,0x14,0x0,0x23,0x0,0x14,0x0, +0xe,0x0,0xf,0x0,0xfa,0xff,0xdd,0xff,0xe1,0xff,0xfb,0xff, +0x4,0x0,0xfa,0xff,0xf5,0xff,0xfc,0xff,0xa,0x0,0x15,0x0, +0x15,0x0,0x8,0x0,0xfd,0xff,0x0,0x0,0x6,0x0,0xff,0xff, +0xf7,0xff,0xd,0x0,0x2c,0x0,0x22,0x0,0xff,0xff,0xfb,0xff, +0xe,0x0,0x9,0x0,0xf8,0xff,0xfc,0xff,0x1,0x0,0xf5,0xff, +0xf6,0xff,0xf,0x0,0x19,0x0,0x3,0x0,0xf3,0xff,0xf8,0xff, +0xfc,0xff,0xfb,0xff,0x6,0x0,0x9,0x0,0xf5,0xff,0xef,0xff, +0xe,0x0,0x1f,0x0,0x4,0x0,0xe4,0xff,0xe8,0xff,0xfd,0xff, +0x2,0x0,0xfa,0xff,0xfd,0xff,0xb,0x0,0xf,0x0,0x7,0x0, +0x4,0x0,0x4,0x0,0xff,0xff,0xff,0xff,0x9,0x0,0xb,0x0, +0xff,0xff,0xfa,0xff,0x0,0x0,0xfd,0xff,0xf7,0xff,0x1,0x0, +0x7,0x0,0xf3,0xff,0xe7,0xff,0xfe,0xff,0xc,0x0,0xf4,0xff, +0xed,0xff,0x10,0x0,0x20,0x0,0x3,0x0,0xed,0xff,0xf9,0xff, +0x5,0x0,0x8,0x0,0x13,0x0,0x18,0x0,0x9,0x0,0xf8,0xff, +0xfa,0xff,0x0,0x0,0xfc,0xff,0xfa,0xff,0xfc,0xff,0xf9,0xff, +0xf7,0xff,0x2,0x0,0xd,0x0,0x5,0x0,0xf6,0xff,0xf7,0xff, +0x7,0x0,0x8,0x0,0xf7,0xff,0xf4,0xff,0x8,0x0,0x12,0x0, +0x6,0x0,0x3,0x0,0xc,0x0,0xff,0xff,0xe6,0xff,0xea,0xff, +0xff,0xff,0xff,0xff,0xf9,0xff,0x7,0x0,0xd,0x0,0xfc,0xff, +0xf6,0xff,0x2,0x0,0xfb,0xff,0xec,0xff,0xfb,0xff,0xf,0x0, +0xff,0xff,0xea,0xff,0xf7,0xff,0x7,0x0,0xf8,0xff,0xe9,0xff, +0xf5,0xff,0x0,0x0,0xfb,0xff,0xfc,0xff,0x6,0x0,0x3,0x0, +0xf8,0xff,0xf6,0xff,0xfe,0xff,0xfe,0xff,0xf7,0xff,0xf6,0xff, +0xfe,0xff,0x4,0x0,0x5,0x0,0x7,0x0,0xff,0xff,0xea,0xff, +0xe4,0xff,0xfd,0xff,0x12,0x0,0x0,0x0,0xed,0xff,0xfc,0xff, +0xe,0x0,0x2,0x0,0xf9,0xff,0x9,0x0,0xb,0x0,0xf9,0xff, +0xf8,0xff,0x1,0x0,0xf2,0xff,0xe2,0xff,0xf4,0xff,0x7,0x0, +0xfd,0xff,0xf4,0xff,0x1,0x0,0x0,0x0,0xf2,0xff,0xfb,0xff, +0xd,0x0,0xff,0xff,0xe7,0xff,0xf0,0xff,0x6,0x0,0x5,0x0, +0xfa,0xff,0xff,0xff,0x8,0x0,0x2,0x0,0xf8,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xfe,0xff,0x5,0x0,0xfe,0xff,0xf1,0xff, +0xf8,0xff,0xd,0x0,0x11,0x0,0xfe,0xff,0xf9,0xff,0x3,0x0, +0xfc,0xff,0xeb,0xff,0xf5,0xff,0xb,0x0,0x3,0x0,0xf2,0xff, +0x1,0x0,0x16,0x0,0xc,0x0,0xfd,0xff,0x6,0x0,0x8,0x0, +0xfd,0xff,0x3,0x0,0x10,0x0,0x4,0x0,0xf5,0xff,0x1,0x0, +0xb,0x0,0xfb,0xff,0xfa,0xff,0x13,0x0,0x15,0x0,0xfb,0xff, +0xf8,0xff,0xc,0x0,0xc,0x0,0xf9,0xff,0xf8,0xff,0x6,0x0, +0x4,0x0,0xfa,0xff,0xfc,0xff,0x3,0x0,0xff,0xff,0xfd,0xff, +0x7,0x0,0xe,0x0,0x3,0x0,0xfb,0xff,0x7,0x0,0x11,0x0, +0x6,0x0,0xfa,0xff,0x2,0x0,0xb,0x0,0x1,0x0,0xfd,0xff, +0x8,0x0,0x7,0x0,0xf9,0xff,0xfe,0xff,0xd,0x0,0x5,0x0, +0xfa,0xff,0xb,0x0,0x18,0x0,0x8,0x0,0x2,0x0,0x12,0x0, +0xe,0x0,0xf8,0xff,0x2,0x0,0x1c,0x0,0xb,0x0,0xea,0xff, +0xf6,0xff,0x16,0x0,0x11,0x0,0xfa,0xff,0xfb,0xff,0x3,0x0, +0xfe,0xff,0xfe,0xff,0x8,0x0,0x8,0x0,0xff,0xff,0x2,0x0, +0xa,0x0,0x8,0x0,0x4,0x0,0xc,0x0,0x14,0x0,0xf,0x0, +0x9,0x0,0xf,0x0,0x12,0x0,0x2,0x0,0xf4,0xff,0xff,0xff, +0xa,0x0,0xfc,0xff,0xf1,0xff,0x6,0x0,0x16,0x0,0x5,0x0, +0xf8,0xff,0x6,0x0,0xa,0x0,0xf9,0xff,0xfd,0xff,0x11,0x0, +0x9,0x0,0xf7,0xff,0x4,0x0,0x14,0x0,0x3,0x0,0xf6,0xff, +0x9,0x0,0x13,0x0,0xff,0xff,0xf9,0xff,0x9,0x0,0x7,0x0, +0xf4,0xff,0xf7,0xff,0x5,0x0,0x1,0x0,0xfb,0xff,0x3,0x0, +0x4,0x0,0xf8,0xff,0xf9,0xff,0x9,0x0,0xa,0x0,0xf9,0xff, +0xf6,0xff,0x6,0x0,0xb,0x0,0xfc,0xff,0xf7,0xff,0x4,0x0, +0x6,0x0,0xf7,0xff,0xf6,0xff,0x8,0x0,0x7,0x0,0xf1,0xff, +0xf1,0xff,0x8,0x0,0x6,0x0,0xee,0xff,0xef,0xff,0x2,0x0, +0x3,0x0,0xfc,0xff,0x1,0x0,0xfd,0xff,0xee,0xff,0xf7,0xff, +0xe,0x0,0x4,0x0,0xe8,0xff,0xed,0xff,0x0,0x0,0xf9,0xff, +0xf1,0xff,0xff,0xff,0x5,0x0,0xf1,0xff,0xef,0xff,0x7,0x0, +0xd,0x0,0xfc,0xff,0xfb,0xff,0xd,0x0,0xc,0x0,0xf8,0xff, +0xef,0xff,0xfa,0xff,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xfc,0xff,0xfc,0xff,0x7,0x0,0x12,0x0,0x7,0x0,0xf6,0xff, +0xf8,0xff,0x4,0x0,0xff,0xff,0xf4,0xff,0xf9,0xff,0xfd,0xff, +0xf6,0xff,0xfd,0xff,0x10,0x0,0x6,0x0,0xeb,0xff,0xee,0xff, +0x5,0x0,0x4,0x0,0xf7,0xff,0x1,0x0,0xb,0x0,0xff,0xff, +0xf9,0xff,0x7,0x0,0x6,0x0,0xf7,0xff,0xfb,0xff,0xc,0x0, +0x7,0x0,0xf7,0xff,0xf7,0xff,0xfb,0xff,0xf1,0xff,0xed,0xff, +0xf9,0xff,0x3,0x0,0xfd,0xff,0xf6,0xff,0xfa,0xff,0x3,0x0, +0x4,0x0,0x0,0x0,0x2,0x0,0x6,0x0,0x0,0x0,0xf4,0xff, +0xf2,0xff,0xf9,0xff,0xfd,0xff,0x3,0x0,0xd,0x0,0xa,0x0, +0xfc,0xff,0xfc,0xff,0x8,0x0,0x3,0x0,0xf5,0xff,0xf9,0xff, +0x1,0x0,0xf5,0xff,0xf1,0xff,0x4,0x0,0x9,0x0,0xf3,0xff, +0xed,0xff,0x4,0x0,0x12,0x0,0x8,0x0,0xfd,0xff,0xf8,0xff, +0xf5,0xff,0xfd,0xff,0xd,0x0,0xc,0x0,0xfd,0xff,0xfb,0xff, +0x7,0x0,0xa,0x0,0x1,0x0,0xf9,0xff,0xf7,0xff,0xf7,0xff, +0xf6,0xff,0xf6,0xff,0xf9,0xff,0xfc,0xff,0xfc,0xff,0xff,0xff, +0xb,0x0,0x14,0x0,0x9,0x0,0xfe,0xff,0x4,0x0,0xa,0x0, +0xff,0xff,0xf6,0xff,0xfd,0xff,0x5,0x0,0x8,0x0,0x9,0x0, +0xfe,0xff,0xea,0xff,0xef,0xff,0xa,0x0,0xf,0x0,0xf8,0xff, +0xf0,0xff,0xff,0xff,0x5,0x0,0x0,0x0,0x2,0x0,0x3,0x0, +0xf9,0xff,0xf6,0xff,0x5,0x0,0xf,0x0,0x9,0x0,0xfc,0xff, +0xf5,0xff,0xf7,0xff,0xff,0xff,0x0,0x0,0xfa,0xff,0xf7,0xff, +0xfd,0xff,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x6,0x0,0xb,0x0,0x5,0x0,0x1,0x0,0x8,0x0,0xa,0x0, +0x0,0x0,0xfb,0xff,0xfe,0xff,0xf8,0xff,0xf3,0xff,0xfd,0xff, +0x4,0x0,0xf6,0xff,0xf0,0xff,0x0,0x0,0x9,0x0,0x2,0x0, +0x2,0x0,0x9,0x0,0x3,0x0,0xfb,0xff,0x4,0x0,0xf,0x0, +0xb,0x0,0x0,0x0,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xf6,0xff,0xf0,0xff,0xf6,0xff,0x0,0x0,0x2,0x0,0xfd,0xff, +0xf9,0xff,0xf5,0xff,0xf7,0xff,0x2,0x0,0xa,0x0,0xa,0x0, +0xb,0x0,0xd,0x0,0xa,0x0,0x9,0x0,0xa,0x0,0xff,0xff, +0xf1,0xff,0xf8,0xff,0x6,0x0,0xfe,0xff,0xef,0xff,0xf5,0xff, +0x2,0x0,0x0,0x0,0xff,0xff,0x7,0x0,0x4,0x0,0xfa,0xff, +0x3,0x0,0x12,0x0,0xc,0x0,0xfa,0xff,0xf7,0xff,0xfe,0xff, +0x0,0x0,0xfc,0xff,0xf6,0xff,0xf4,0xff,0x0,0x0,0x10,0x0, +0xf,0x0,0x1,0x0,0xfd,0xff,0x4,0x0,0x6,0x0,0x3,0x0, +0xff,0xff,0xfa,0xff,0xf7,0xff,0xfc,0xff,0x4,0x0,0xc,0x0, +0x10,0x0,0x9,0x0,0xff,0xff,0x9,0x0,0x1a,0x0,0x13,0x0, +0xfc,0xff,0xfc,0xff,0xc,0x0,0x9,0x0,0xf9,0xff,0xfb,0xff, +0x6,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0xfd,0xff,0xf9,0xff, +0x5,0x0,0x10,0x0,0xd,0x0,0xb,0x0,0x10,0x0,0xb,0x0, +0x2,0x0,0x6,0x0,0xd,0x0,0x5,0x0,0xfe,0xff,0x6,0x0, +0xd,0x0,0x9,0x0,0x2,0x0,0xfe,0xff,0xfc,0xff,0x1,0x0, +0xa,0x0,0xd,0x0,0xb,0x0,0x8,0x0,0x4,0x0,0x3,0x0, +0x8,0x0,0xa,0x0,0x4,0x0,0x3,0x0,0x9,0x0,0x6,0x0, +0xfe,0xff,0x4,0x0,0xc,0x0,0x5,0x0,0xfc,0xff,0x5,0x0, +0xd,0x0,0x8,0x0,0x4,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x7,0x0,0x1,0x0,0xfb,0xff,0x4,0x0,0xf,0x0,0x3,0x0, +0xf3,0xff,0xfa,0xff,0x6,0x0,0x1,0x0,0xf7,0xff,0xf5,0xff, +0xf3,0xff,0xf1,0xff,0xf9,0xff,0x4,0x0,0x7,0x0,0x4,0x0, +0xff,0xff,0xfa,0xff,0xfc,0xff,0x1,0x0,0xfb,0xff,0xf1,0xff, +0xf7,0xff,0x7,0x0,0xb,0x0,0x5,0x0,0x4,0x0,0x5,0x0, +0x5,0x0,0x7,0x0,0x0,0x0,0xf3,0xff,0xf2,0xff,0xff,0xff, +0x1,0x0,0xf7,0xff,0xf5,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff, +0x3,0x0,0x0,0x0,0xf4,0xff,0xf7,0xff,0x4,0x0,0x2,0x0, +0xf7,0xff,0xf3,0xff,0xf2,0xff,0xf1,0xff,0xf9,0xff,0x2,0x0, +0xfe,0xff,0xfc,0xff,0x6,0x0,0xc,0x0,0x2,0x0,0xf9,0xff, +0xf9,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xf8,0xff,0xf8,0xff, +0x0,0x0,0x5,0x0,0xfd,0xff,0xf3,0xff,0xf3,0xff,0xf5,0xff, +0xf9,0xff,0x4,0x0,0xc,0x0,0x2,0x0,0xf6,0xff,0xf8,0xff, +0x0,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff, +0x0,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff,0xf4,0xff,0xef,0xff, +0xf9,0xff,0x7,0x0,0x5,0x0,0xf7,0xff,0xf6,0xff,0x1,0x0, +0x5,0x0,0xfd,0xff,0xf8,0xff,0xfd,0xff,0x3,0x0,0x1,0x0, +0xf7,0xff,0xef,0xff,0xf3,0xff,0x0,0x0,0x6,0x0,0xfe,0xff, +0xf6,0xff,0xf8,0xff,0xff,0xff,0xfd,0xff,0xf6,0xff,0xf3,0xff, +0xf5,0xff,0xf3,0xff,0xf4,0xff,0xfe,0xff,0x5,0x0,0xfc,0xff, +0xf4,0xff,0xfe,0xff,0x9,0x0,0x0,0x0,0xf1,0xff,0xee,0xff, +0xf5,0xff,0xf9,0xff,0xfe,0xff,0x2,0x0,0x1,0x0,0x1,0x0, +0x8,0x0,0xb,0x0,0x0,0x0,0xf2,0xff,0xef,0xff,0xf8,0xff, +0x1,0x0,0x7,0x0,0x7,0x0,0x1,0x0,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0x1,0x0,0x7,0x0, +0x6,0x0,0x0,0x0,0xfc,0xff,0xfe,0xff,0xff,0xff,0xfa,0xff, +0xf8,0xff,0xfe,0xff,0x4,0x0,0x3,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0xfe,0xff,0x1,0x0,0x8,0x0,0x4,0x0,0xfb,0xff, +0xff,0xff,0xc,0x0,0x8,0x0,0xf7,0xff,0xf3,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0x3,0x0,0x5,0x0,0xfc,0xff,0x2,0x0, +0x17,0x0,0x15,0x0,0xfd,0xff,0xf5,0xff,0xe9,0xff,0xae,0xff, +0x8d,0xff,0xef,0xff,0x89,0x0,0x98,0x0,0x11,0x0,0xb7,0xff, +0xed,0xff,0x3e,0x0,0x38,0x0,0xff,0xff,0xda,0xff,0xd4,0xff, +0xe1,0xff,0xfd,0xff,0x10,0x0,0x4,0x0,0xf1,0xff,0xf5,0xff, +0x5,0x0,0x9,0x0,0xa,0x0,0x15,0x0,0x17,0x0,0x1,0x0, +0xe8,0xff,0xe9,0xff,0xff,0xff,0xb,0x0,0xfe,0xff,0xee,0xff, +0xf1,0xff,0x2,0x0,0xc,0x0,0x8,0x0,0x8,0x0,0x12,0x0, +0x13,0x0,0x4,0x0,0xf8,0xff,0xfb,0xff,0xf9,0xff,0xe9,0xff, +0xe1,0xff,0xec,0xff,0xfc,0xff,0x5,0x0,0x7,0x0,0xff,0xff, +0xec,0xff,0xe7,0xff,0xfc,0xff,0xc,0x0,0x3,0x0,0xfa,0xff, +0x5,0x0,0xf,0x0,0x7,0x0,0xfd,0xff,0xff,0xff,0x2,0x0, +0x4,0x0,0xa,0x0,0xb,0x0,0xff,0xff,0xf5,0xff,0xfa,0xff, +0x2,0x0,0xff,0xff,0xf4,0xff,0xf3,0xff,0xfe,0xff,0x7,0x0, +0x2,0x0,0xf8,0xff,0xfb,0xff,0x6,0x0,0x5,0x0,0xfc,0xff, +0xfc,0xff,0x2,0x0,0x0,0x0,0xfe,0xff,0x4,0x0,0x5,0x0, +0xfd,0xff,0xfe,0xff,0xa,0x0,0xa,0x0,0xfb,0xff,0xf3,0xff, +0xf6,0xff,0xf8,0xff,0xfb,0xff,0x2,0x0,0x3,0x0,0xfe,0xff, +0x0,0x0,0x3,0x0,0xf9,0xff,0xf1,0xff,0xf8,0xff,0x3,0x0, +0x8,0x0,0xf,0x0,0x15,0x0,0x6,0x0,0xef,0xff,0xef,0xff, +0x4,0x0,0xe,0x0,0x4,0x0,0xfa,0xff,0x0,0x0,0xa,0x0, +0x7,0x0,0xf6,0xff,0xf3,0xff,0x3,0x0,0x5,0x0,0xe9,0xff, +0xda,0xff,0xf7,0xff,0x18,0x0,0x14,0x0,0x8,0x0,0xd,0x0, +0xb,0x0,0xf8,0xff,0xf0,0xff,0xfd,0xff,0x6,0x0,0x8,0x0, +0xc,0x0,0x6,0x0,0xf6,0xff,0xf9,0xff,0x11,0x0,0x15,0x0, +0xfd,0xff,0xf4,0xff,0x4,0x0,0x9,0x0,0xfd,0xff,0xfc,0xff, +0xff,0xff,0xef,0xff,0xe5,0xff,0x1,0x0,0x1f,0x0,0x14,0x0, +0xfd,0xff,0x5,0x0,0x16,0x0,0xd,0x0,0xfe,0xff,0x2,0x0, +0xff,0xff,0xed,0xff,0xf4,0xff,0x18,0x0,0x22,0x0,0x0,0x0, +0xea,0xff,0xf5,0xff,0xfe,0xff,0xfc,0xff,0x5,0x0,0xb,0x0, +0xf9,0xff,0xef,0xff,0x6,0x0,0x16,0x0,0x1,0x0,0xf3,0xff, +0x3,0x0,0x6,0x0,0xf3,0xff,0xf8,0xff,0x13,0x0,0xc,0x0, +0xed,0xff,0xf3,0xff,0x12,0x0,0xe,0x0,0xf4,0xff,0xf7,0xff, +0x9,0x0,0xfe,0xff,0xee,0xff,0xfd,0xff,0xa,0x0,0xfb,0xff, +0xf4,0xff,0x8,0x0,0xf,0x0,0xfa,0xff,0xf6,0xff,0x9,0x0, +0x8,0x0,0xf5,0xff,0xf9,0xff,0xa,0x0,0x0,0x0,0xee,0xff, +0xfc,0xff,0x10,0x0,0x1,0x0,0xf0,0xff,0x0,0x0,0x10,0x0, +0x1,0x0,0xf4,0xff,0x0,0x0,0x4,0x0,0xf8,0xff,0xff,0xff, +0x12,0x0,0x8,0x0,0xee,0xff,0xf4,0xff,0xd,0x0,0x8,0x0, +0xf5,0xff,0xff,0xff,0x10,0x0,0x1,0x0,0xf1,0xff,0x1,0x0, +0xf,0x0,0xfe,0xff,0xf1,0xff,0x1,0x0,0xb,0x0,0xff,0xff, +0xfc,0xff,0x9,0x0,0x5,0x0,0xf8,0xff,0x0,0x0,0xf,0x0, +0x1,0x0,0xed,0xff,0xf9,0xff,0xd,0x0,0x3,0x0,0xf4,0xff, +0xfd,0xff,0x7,0x0,0xfc,0xff,0xfa,0xff,0xb,0x0,0xb,0x0, +0xf5,0xff,0xf3,0xff,0x8,0x0,0xa,0x0,0xf9,0xff,0xfa,0xff, +0x6,0x0,0xff,0xff,0xf4,0xff,0x1,0x0,0x10,0x0,0x2,0x0, +0xf3,0xff,0xff,0xff,0x9,0x0,0xfb,0xff,0xf6,0xff,0x9,0x0, +0xf,0x0,0xfd,0xff,0xf5,0xff,0x3,0x0,0x6,0x0,0xf8,0xff, +0xf9,0xff,0x6,0x0,0x3,0x0,0xf8,0xff,0x0,0x0,0xa,0x0, +0x0,0x0,0xf6,0xff,0x3,0x0,0xd,0x0,0x1,0x0,0xf9,0xff, +0x1,0x0,0xff,0xff,0xf1,0xff,0xf7,0xff,0xd,0x0,0xd,0x0, +0xf9,0xff,0xf8,0xff,0x6,0x0,0x3,0x0,0xf4,0xff,0xf9,0xff, +0x7,0x0,0x2,0x0,0xfb,0xff,0x5,0x0,0xd,0x0,0x1,0x0, +0xfa,0xff,0x5,0x0,0x8,0x0,0xfb,0xff,0xfa,0xff,0x8,0x0, +0x5,0x0,0xf2,0xff,0xf6,0xff,0xa,0x0,0xb,0x0,0xfa,0xff, +0xf8,0xff,0x4,0x0,0x4,0x0,0xfe,0xff,0x2,0x0,0x5,0x0, +0xfc,0xff,0xf9,0xff,0x3,0x0,0x2,0x0,0xf5,0xff,0xf8,0xff, +0xa,0x0,0x9,0x0,0xf8,0xff,0xf9,0xff,0x7,0x0,0x4,0x0, +0xf5,0xff,0xfa,0xff,0x8,0x0,0x3,0x0,0xf7,0xff,0xfd,0xff, +0x6,0x0,0x0,0x0,0xfc,0xff,0x6,0x0,0x9,0x0,0xfb,0xff, +0xf7,0xff,0x4,0x0,0x7,0x0,0xfb,0xff,0xfc,0xff,0x8,0x0, +0x5,0x0,0xf9,0xff,0xff,0xff,0xc,0x0,0x4,0x0,0xf4,0xff, +0xf8,0xff,0x5,0x0,0x4,0x0,0xff,0xff,0x2,0x0,0x2,0x0, +0xfb,0xff,0x0,0x0,0xd,0x0,0x8,0x0,0xf7,0xff,0xf9,0xff, +0x9,0x0,0x6,0x0,0xf7,0xff,0xf9,0xff,0x4,0x0,0x0,0x0, +0xf6,0xff,0xfd,0xff,0x6,0x0,0xff,0xff,0xfc,0xff,0x7,0x0, +0xa,0x0,0xfb,0xff,0xf7,0xff,0x5,0x0,0x8,0x0,0xfc,0xff, +0xfb,0xff,0x5,0x0,0x4,0x0,0xf8,0xff,0xfa,0xff,0x4,0x0, +0x1,0x0,0xfa,0xff,0x3,0x0,0xb,0x0,0x2,0x0,0xf7,0xff, +0xfa,0xff,0xfd,0xff,0xf9,0xff,0xfe,0xff,0xb,0x0,0x8,0x0, +0xf9,0xff,0xf8,0xff,0x3,0x0,0x0,0x0,0xf7,0xff,0xff,0xff, +0xb,0x0,0x3,0x0,0xf7,0xff,0xfc,0xff,0x5,0x0,0x1,0x0, +0xfe,0xff,0x6,0x0,0x4,0x0,0xf7,0xff,0xf6,0xff,0x4,0x0, +0x8,0x0,0xfd,0xff,0xfd,0xff,0x6,0x0,0x4,0x0,0xfc,0xff, +0x0,0x0,0x7,0x0,0x0,0x0,0xf7,0xff,0xff,0xff,0x9,0x0, +0x4,0x0,0xfd,0xff,0x1,0x0,0x4,0x0,0x2,0x0,0x3,0x0, +0x6,0x0,0xfe,0xff,0xf5,0xff,0xfe,0xff,0xb,0x0,0x4,0x0, +0xf8,0xff,0xfd,0xff,0x7,0x0,0x2,0x0,0xfa,0xff,0xff,0xff, +0x3,0x0,0xfe,0xff,0xfe,0xff,0x9,0x0,0x9,0x0,0xfb,0xff, +0xf6,0xff,0xff,0xff,0x2,0x0,0xff,0xff,0x2,0x0,0x7,0x0, +0x0,0x0,0xf9,0xff,0xff,0xff,0x6,0x0,0xfe,0xff,0xf8,0xff, +0xff,0xff,0x4,0x0,0xfd,0xff,0xfa,0xff,0x1,0x0,0x3,0x0, +0xfd,0xff,0xfb,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x4,0x0, +0x6,0x0,0xfc,0xff,0xf8,0xff,0x0,0x0,0x5,0x0,0xfd,0xff, +0xfa,0xff,0x3,0x0,0x6,0x0,0xfd,0xff,0xfb,0xff,0x4,0x0, +0x7,0x0,0x1,0x0,0x0,0x0,0x4,0x0,0x2,0x0,0xfe,0xff, +0x0,0x0,0x3,0x0,0xff,0xff,0xfc,0xff,0x1,0x0,0x3,0x0, +0xfd,0xff,0xfc,0xff,0x3,0x0,0x6,0x0,0x1,0x0,0xff,0xff, +0x3,0x0,0x3,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xfd,0xff, +0xfc,0xff,0x2,0x0,0x4,0x0,0x0,0x0,0xff,0xff,0x2,0x0, +0x1,0x0,0xfc,0xff,0xff,0xff,0x5,0x0,0x2,0x0,0xfa,0xff, +0xfc,0xff,0x2,0x0,0x0,0x0,0xfa,0xff,0xfc,0xff,0x2,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0x1,0x0, +0x5,0x0,0x3,0x0,0xfc,0xff,0xfc,0xff,0x1,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0xfe,0xff,0xf9,0xff,0xfd,0xff,0x5,0x0,0x5,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff,0x1,0x0,0x4,0x0, +0x0,0x0,0xfd,0xff,0x1,0x0,0x4,0x0,0x1,0x0,0xfd,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfc,0xff,0xff,0xff,0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x2,0x0,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x3,0x0,0x3,0x0, +0xfe,0xff,0xfc,0xff,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xfe,0xff,0xf9,0xff,0xfb,0xff,0x2,0x0,0x3,0x0, +0xff,0xff,0x0,0x0,0x4,0x0,0x5,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfe,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x4,0x0,0x4,0x0, +0xfd,0xff,0xfb,0xff,0x0,0x0,0x5,0x0,0x2,0x0,0xfd,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0x3,0x0,0x5,0x0,0xff,0xff,0xfb,0xff,0xff,0xff, +0x3,0x0,0x0,0x0,0xfd,0xff,0x2,0x0,0x6,0x0,0x1,0x0, +0xfb,0xff,0xfc,0xff,0x1,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfe,0xff,0x3,0x0,0x5,0x0,0x0,0x0,0xfb,0xff,0x0,0x0, +0x7,0x0,0x4,0x0,0xf9,0xff,0xf8,0xff,0x2,0x0,0x8,0x0, +0x2,0x0,0xfc,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x0,0x0,0xfc,0xff, +0xff,0xff,0x4,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff,0x2,0x0, +0x3,0x0,0xfd,0xff,0xf9,0xff,0xfe,0xff,0x4,0x0,0x3,0x0, +0xfe,0xff,0xfe,0xff,0x3,0x0,0x6,0x0,0x0,0x0,0xf9,0xff, +0xfa,0xff,0x3,0x0,0x7,0x0,0x1,0x0,0xfa,0xff,0xfe,0xff, +0x6,0x0,0x5,0x0,0xff,0xff,0xfd,0xff,0x2,0x0,0x5,0x0, +0x2,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff, +0x2,0x0,0x5,0x0,0x2,0x0,0xfc,0xff,0xfa,0xff,0xff,0xff, +0x4,0x0,0x2,0x0,0xfd,0xff,0xfd,0xff,0x1,0x0,0x3,0x0, +0x0,0x0,0xff,0xff,0x3,0x0,0x4,0x0,0xff,0xff,0xfb,0xff, +0xfc,0xff,0x2,0x0,0x4,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff, +0x1,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0x1,0x0,0x0,0x0,0xfe,0xff,0x0,0x0,0x4,0x0,0x4,0x0, +0xfe,0xff,0xfd,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0x2,0x0,0x4,0x0,0x1,0x0,0xfc,0xff,0xff,0xff,0x4,0x0, +0x4,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x3,0x0, +0x5,0x0,0x1,0x0,0xfb,0xff,0xfe,0xff,0x4,0x0,0x4,0x0, +0xfe,0xff,0xfe,0xff,0x2,0x0,0x1,0x0,0xfe,0xff,0x0,0x0, +0x4,0x0,0x0,0x0,0xfd,0xff,0x0,0x0,0x5,0x0,0x3,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfc,0xff,0x1,0x0,0x2,0x0,0xfe,0xff,0xfb,0xff, +0x0,0x0,0x5,0x0,0x1,0x0,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfe,0xff,0x2,0x0,0x2,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0xff,0xff,0xfe,0xff,0x2,0x0,0x4,0x0,0xfe,0xff, +0xf9,0xff,0x0,0x0,0x7,0x0,0x3,0x0,0xfd,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xfc,0xff,0xfd,0xff,0x5,0x0,0x7,0x0, +0x1,0x0,0xfc,0xff,0xfe,0xff,0x1,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0xff,0xff,0xfa,0xff,0xfd,0xff,0x2,0x0,0x2,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xfd,0xff,0xfd,0xff,0x3,0x0, +0x6,0x0,0x0,0x0,0xfb,0xff,0xff,0xff,0x4,0x0,0x2,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xff,0xff, +0x4,0x0,0x3,0x0,0xfe,0xff,0xfd,0xff,0x2,0x0,0x4,0x0, +0xff,0xff,0xfc,0xff,0xfe,0xff,0x2,0x0,0x2,0x0,0x2,0x0, +0xff,0xff,0xfc,0xff,0xfe,0xff,0x3,0x0,0x1,0x0,0xfb,0xff, +0xfc,0xff,0x4,0x0,0x5,0x0,0xfd,0xff,0xfb,0xff,0x2,0x0, +0x6,0x0,0x0,0x0,0xfa,0xff,0xfc,0xff,0x2,0x0,0x3,0x0, +0xfe,0xff,0xfa,0xff,0xfc,0xff,0x1,0x0,0x5,0x0,0x2,0x0, +0xfe,0xff,0x0,0x0,0x4,0x0,0x3,0x0,0xfe,0xff,0xfc,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0xfe,0xff,0xfe,0xff,0x2,0x0,0x5,0x0,0x1,0x0,0xfb,0xff, +0xfd,0xff,0x4,0x0,0x4,0x0,0xff,0xff,0xfc,0xff,0xff,0xff, +0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x2,0x0, +0xfd,0xff,0xfb,0xff,0x0,0x0,0x6,0x0,0x4,0x0,0xfc,0xff, +0xf9,0xff,0xfe,0xff,0x3,0x0,0x2,0x0,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0x1,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x3,0x0, +0x2,0x0,0xfe,0xff,0xfa,0xff,0xff,0xff,0x6,0x0,0x6,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0xfe,0xff,0xfe,0xff, +0x1,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0xfd,0xff,0xfe,0xff,0x3,0x0,0x2,0x0, +0xfd,0xff,0xfc,0xff,0x1,0x0,0x2,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x5,0x0,0x0,0x0, +0xfb,0xff,0xfe,0xff,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xfd,0xff,0xfd,0xff,0x1,0x0,0x2,0x0,0xff,0xff, +0x1,0x0,0x4,0x0,0x3,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x3,0x0,0x2,0x0,0xfd,0xff,0xff,0xff, +0x3,0x0,0x0,0x0,0xfb,0xff,0xff,0xff,0x5,0x0,0x1,0x0, +0xfc,0xff,0xff,0xff,0x3,0x0,0xff,0xff,0xfb,0xff,0x0,0x0, +0x5,0x0,0x1,0x0,0xfd,0xff,0x0,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0x2,0x0,0x6,0x0, +0xff,0xff,0xf8,0xff,0xfd,0xff,0x4,0x0,0x3,0x0,0xfd,0xff, +0xfc,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x0,0x0, +0xfd,0xff,0x0,0x0,0x5,0x0,0x1,0x0,0xfb,0xff,0xff,0xff, +0x4,0x0,0x1,0x0,0xfe,0xff,0x0,0x0,0x0,0x0,0xfb,0xff, +0xfd,0xff,0x6,0x0,0x6,0x0,0xfc,0xff,0xf8,0xff,0xfe,0xff, +0x4,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0, +0x5,0x0,0x4,0x0,0xfd,0xff,0xfa,0xff,0x2,0x0,0x5,0x0, +0x0,0x0,0xfc,0xff,0xff,0xff,0x3,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x2,0x0,0x4,0x0,0x0,0x0, +0xfc,0xff,0xff,0xff,0x3,0x0,0x0,0x0,0xfd,0xff,0x2,0x0, +0x3,0x0,0xfd,0xff,0xfc,0xff,0x3,0x0,0x5,0x0,0xff,0xff, +0xfd,0xff,0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0x2,0x0,0x3,0x0,0xff,0xff,0xfc,0xff, +0x0,0x0,0x4,0x0,0x2,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x2,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x3,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff,0x2,0x0, +0x3,0x0,0xfd,0xff,0xfc,0xff,0x1,0x0,0x4,0x0,0x2,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x4,0x0,0x2,0x0, +0xfd,0xff,0xfc,0xff,0x0,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfe,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x2,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0xfd,0xff,0xfe,0xff,0x3,0x0, +0x3,0x0,0xff,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x4,0x0,0x2,0x0,0xfd,0xff,0xfc,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0xff,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x3,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0x0,0x0,0x3,0x0,0x4,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x3,0x0,0x2,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0xfe,0xff,0x2,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x2,0x0,0x3,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff, +0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/glass2.pcm b/src/client/sound/data/glass2.pcm new file mode 100755 index 0000000..6a3a7a6 --- /dev/null +++ b/src/client/sound/data/glass2.pcm @@ -0,0 +1,5086 @@ +unsigned char PCM_glass2[61006] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x1f,0x77,0x0,0x0,0xb,0x1,0x51,0x1,0x52,0x1,0x1,0x0, +0x79,0xff,0xc,0x0,0x2,0x0,0xde,0xff,0x3b,0x0,0xa5,0xff, +0x9a,0xfe,0xc4,0xfe,0xe7,0xfe,0xf8,0xfd,0x71,0xfd,0x1e,0xfe, +0x26,0xff,0xc2,0xff,0xaa,0xff,0xd3,0xfe,0x79,0xfe,0x47,0xff, +0x38,0x0,0x10,0x2,0xc,0x3,0x67,0x0,0xa3,0xff,0xa0,0x1, +0xc8,0x0,0x16,0x1,0x33,0x3,0xed,0x3,0xe6,0x6,0x1a,0x6, +0x72,0xff,0xe5,0xfe,0x90,0x1,0x18,0x1,0x58,0x0,0x3,0xfe, +0xe5,0xfd,0xad,0xff,0x84,0xfc,0x29,0xfb,0xe1,0xfd,0xe0,0xff, +0x27,0x0,0x2e,0xf9,0x90,0xf2,0x79,0xf4,0x6e,0xf5,0x48,0xf7, +0x8f,0xf6,0x99,0xeb,0x5c,0xea,0x3f,0xf1,0xa,0xec,0x80,0xe7, +0x65,0xe7,0x69,0xe3,0x76,0xeb,0x1d,0xff,0xc4,0x9,0xe5,0xe, +0x3a,0x18,0xc2,0x1b,0x6d,0x1b,0xbe,0x29,0xb6,0x3a,0x27,0x3a, +0x3,0x32,0xf1,0x27,0x11,0x24,0x5d,0x2e,0x86,0x2b,0x2f,0x1c, +0xec,0x1b,0xf8,0x18,0xe0,0x8,0x5e,0xfd,0xae,0xfc,0x67,0x5, +0xf3,0x2,0x93,0xfc,0x71,0x13,0x23,0x1f,0x14,0x2,0xff,0xef, +0x1a,0xf5,0xcc,0xf5,0xf4,0xf3,0x4b,0x2,0x74,0x1d,0x4f,0x10, +0x8c,0xda,0x1b,0xc7,0x3a,0xcf,0x67,0xd1,0x26,0xe6,0x3c,0xf6, +0xbf,0xe5,0x81,0xcd,0x8,0xba,0xc2,0xc0,0x79,0xe2,0x2e,0xf1, +0xa9,0xf0,0x58,0xf3,0x3b,0xdf,0xe6,0xbd,0xd7,0xb9,0x4e,0xd2, +0x63,0xe6,0x99,0xef,0x4c,0xff,0x88,0x7,0xd5,0xed,0xf,0xc7, +0x15,0xc5,0x5e,0xef,0x6f,0xc,0x75,0x3,0xba,0xfe,0x65,0xfe, +0x4a,0xf8,0xa3,0x13,0x8a,0x3d,0x93,0x3d,0x2f,0x1c,0x13,0xf9, +0x5c,0xe3,0x22,0xdb,0x3e,0xe2,0x3a,0xfd,0x59,0xa,0x8e,0x2, +0x7f,0xe,0xd5,0x1a,0x5,0xb,0x9a,0xf6,0x13,0xf0,0xbe,0x3, +0x2a,0xe,0x1c,0xe7,0xe4,0xda,0x89,0x11,0x82,0x3c,0x75,0x3d, +0x63,0x22,0xc0,0xfd,0x33,0xee,0xd0,0xe0,0x3c,0xd7,0xbd,0xf1, +0x25,0x6,0x99,0x1,0x49,0x8,0x7d,0x3,0x78,0xe1,0x50,0xd1, +0x2a,0xed,0x2c,0xd,0x49,0x8,0x73,0xfb,0x7b,0x6,0x8c,0x13, +0xcd,0x1a,0x8d,0x20,0xd,0x1d,0x5,0x1a,0x73,0x21,0x3b,0x28, +0xcd,0x14,0x8e,0xee,0x64,0xed,0xb5,0x18,0x88,0x3f,0xfd,0x41, +0x1a,0x21,0x39,0xc,0xf3,0x17,0xc2,0x1c,0xf9,0x1a,0x8a,0x17, +0x40,0x5,0x9d,0xfb,0x6,0xf5,0x46,0xef,0x70,0x8,0xea,0x19, +0xaf,0xa,0x80,0x0,0x34,0xfc,0x23,0xff,0xfb,0xb,0x7b,0x0, +0xf6,0xeb,0x37,0xfe,0x91,0x21,0x4d,0x1e,0xb6,0xfc,0xb,0xf0, +0x85,0xf8,0xf,0xfd,0x96,0xff,0x73,0xfb,0xca,0xec,0x9e,0xe1, +0x98,0xec,0x82,0x14,0xf,0x2e,0x35,0x15,0x45,0xf2,0x40,0xe1, +0x67,0xcd,0x5e,0xc6,0x8d,0xeb,0xbe,0x17,0x2a,0x1c,0xbc,0xe, +0xa,0x2,0xae,0xf4,0xaf,0xfd,0xfa,0xd,0xa6,0x7,0xa7,0xf9, +0x4b,0xe9,0x24,0xde,0xae,0xe0,0xe7,0xe3,0x6e,0xfc,0xe6,0x22, +0x2a,0x27,0x40,0x14,0xee,0xf7,0xb8,0xd8,0xc2,0xd6,0xd7,0xdd, +0x12,0xde,0x82,0xf1,0x30,0x5,0xf9,0x9,0x13,0x14,0x6e,0x1b, +0xb9,0xa,0x88,0xee,0x5f,0xec,0xc7,0xfd,0xc1,0xff,0x5b,0xff, +0xd9,0x2,0x39,0xff,0xa9,0x7,0xd,0x11,0xf1,0x8,0x96,0xfe, +0x5d,0xee,0xf0,0xe5,0x17,0xf8,0xae,0xfd,0xd9,0xf0,0xba,0xf9, +0x3c,0x5,0x2c,0xfb,0x73,0x0,0x22,0x19,0x59,0x16,0x3e,0xf5, +0x50,0xd1,0x7f,0xbb,0xbe,0xc7,0x91,0xec,0x1d,0x10,0xb5,0x28, +0x9a,0x23,0x3,0x6,0xed,0xe7,0x45,0xd2,0xb,0xda,0x98,0xec, +0x87,0xed,0xd1,0xfa,0x2a,0x1,0x18,0xed,0x67,0xef,0x48,0xfa, +0xac,0xfe,0x4c,0x14,0xf0,0x1b,0x4d,0x13,0xe5,0x7,0x6d,0xed, +0x47,0xeb,0x40,0xa,0xbd,0x2a,0x85,0x3c,0x60,0x1f,0x3b,0xfc, +0x8,0x1,0x90,0xfc,0x40,0xf7,0x9,0x4,0x7f,0x5,0xb2,0xb, +0x6b,0x7,0x76,0xf8,0x7f,0x7,0x95,0xa,0x15,0x7,0xd1,0x16, +0x81,0xf4,0x52,0xc5,0x16,0xd7,0x6b,0x1,0x57,0x25,0xc7,0x2b, +0x9c,0x14,0x7,0xd,0xf4,0xfb,0x42,0xdf,0x54,0xec,0x4,0x15, +0x68,0x36,0xe9,0x2c,0xc6,0xf7,0x52,0xd9,0x29,0xe0,0x6b,0x6, +0xa5,0x3b,0xb0,0x34,0x19,0xa,0x39,0xfa,0xaf,0xe7,0xb1,0xe4, +0x7f,0xfe,0xad,0x6,0xb,0xf,0x88,0x24,0x79,0x29,0x6f,0x13, +0xe,0xea,0xc,0xdd,0x31,0xfb,0xb0,0x19,0xa0,0x29,0xf,0x19, +0x6f,0xf4,0x96,0xee,0x43,0xfc,0xb4,0x12,0xa0,0x24,0xed,0x8, +0xcd,0xe9,0xec,0xe4,0xf5,0xe5,0x31,0xc,0x3a,0x31,0xd,0x19, +0xa7,0x5,0x20,0x14,0x46,0x13,0xf4,0x6,0xa2,0xb,0xa5,0x11, +0x8c,0xf8,0x8b,0xe2,0xfa,0xf6,0x5d,0x0,0x5a,0xf2,0x9c,0x3, +0x47,0x29,0x9,0x3f,0xad,0x2c,0xcf,0xf0,0x67,0xc8,0xd6,0xce, +0x1a,0xe7,0xd4,0xd,0xee,0x31,0xfe,0x30,0x43,0x1a,0xaf,0xa, +0x41,0xfc,0xe3,0xef,0xe5,0xfe,0xac,0x1f,0xd7,0x26,0x70,0x4, +0x76,0xd7,0x66,0xd7,0x86,0x0,0x4,0x14,0x73,0x1a,0x8a,0x31, +0x16,0x25,0x75,0xea,0x48,0xce,0xc7,0xe7,0x5e,0x2,0x71,0x13, +0xaa,0x2d,0x50,0x1c,0x4b,0xe1,0x30,0xe5,0x7f,0xf,0xc4,0xf, +0x41,0x10,0xf1,0x16,0x1,0x0,0xd6,0xee,0x3d,0xfb,0xe5,0x11, +0xf1,0x14,0x91,0xa,0xf6,0xa,0x5c,0xee,0xe0,0xc5,0x2f,0xdc, +0x2,0x4,0x91,0xc,0xfe,0x22,0x0,0x5a,0x29,0x61,0x64,0xea, +0xc2,0x8d,0xa2,0xe2,0x2e,0x38,0x78,0x1b,0xee,0xf9,0x52,0xec, +0x9e,0xea,0xb,0xf8,0x80,0x3,0xf7,0x23,0x73,0x33,0x11,0xd, +0x76,0xe5,0x79,0xde,0xf2,0xf7,0x6,0x4,0xe3,0x3,0x8a,0x23, +0xd7,0xfc,0x6a,0x9f,0x2c,0xc3,0xf7,0x22,0xcb,0x2b,0xcf,0x7, +0x0,0x4,0x90,0x23,0xdb,0xff,0x7,0xab,0xfc,0xcc,0xea,0x26, +0x41,0x2a,0x9d,0x1,0x30,0xef,0xb4,0x9,0xd9,0x10,0x4b,0xd9, +0x2f,0xd2,0xaa,0x0,0xc9,0xb,0x72,0xb,0xd4,0xd,0x5b,0x7, +0xd7,0xfa,0xeb,0xeb,0x42,0x1,0x7,0x15,0xc3,0xef,0x20,0xd7, +0xc4,0xef,0xea,0x10,0xde,0x20,0xd1,0x16,0xd5,0xd,0xbe,0xff, +0xca,0xd4,0xed,0xd2,0x35,0x5,0xbe,0xf,0x42,0xfb,0x39,0xf4, +0xcf,0xec,0x48,0xf9,0x26,0x6,0x23,0xf7,0xcd,0x1f,0x2a,0x57, +0x5e,0x1e,0x14,0xd5,0x97,0xc8,0x97,0xc3,0x45,0xe7,0x3a,0x1f, +0xe,0x34,0x7,0x36,0xe2,0xfb,0xd6,0xb8,0x73,0xcb,0xf4,0xef, +0xa1,0x13,0x8c,0x26,0x32,0xf5,0xee,0xed,0x51,0x12,0x9b,0xfd, +0x18,0xfa,0x91,0x8,0x25,0xf3,0x54,0xfa,0xce,0x8,0x87,0xef, +0x73,0xd2,0x6d,0xce,0x74,0x2,0xd9,0x42,0xc6,0x34,0x13,0xf9, +0x51,0xe1,0x68,0xf0,0x72,0xf4,0xca,0xec,0xb0,0x3,0x3d,0xb, +0x2,0xdd,0xb6,0xcb,0x61,0xfe,0xea,0x33,0x42,0x37,0x2e,0x18, +0x7f,0xff,0xb2,0xea,0x86,0xd7,0x98,0xe0,0xa2,0xfd,0x6a,0xa, +0xf,0x5,0xe9,0x12,0xc4,0x1e,0x1a,0xf8,0x1b,0xe7,0x50,0xd, +0x74,0x13,0xab,0x4,0x91,0xfc,0x62,0xd6,0xf9,0xcb,0x86,0x8, +0x86,0x3c,0x86,0x27,0x59,0xf1,0x39,0xee,0x1f,0x3,0x2c,0xec, +0x29,0xe4,0x5a,0x5,0x66,0x8,0x8,0xf4,0xc2,0xfe,0xd1,0x14, +0x16,0xb,0x4c,0xff,0x10,0xc,0xf,0x5,0x2e,0xec,0x8d,0xe2, +0xc1,0xe7,0x4c,0xfd,0xe7,0xf2,0xc1,0xd6,0x9b,0x10,0xa8,0x4b, +0xdd,0x18,0x2,0xe1,0x5e,0xe0,0x13,0xec,0xc2,0xf4,0xf3,0xed, +0xe3,0xf2,0x7b,0xf,0xe7,0xf,0x10,0x4,0x97,0x1b,0xa1,0x2d, +0x9d,0xd,0xcd,0xf1,0x76,0x8,0x43,0xd,0x2f,0xe3,0xe4,0xd9, +0x23,0x0,0xc2,0x1b,0xd0,0x16,0xb6,0x5,0x37,0x4,0x2,0xff, +0x62,0xe2,0x79,0xe0,0x8,0x7,0x52,0x13,0x9a,0xf0,0x7a,0xdb, +0x8b,0xf2,0x45,0x7,0xd4,0x4,0x33,0x7,0x36,0x4,0xf3,0xf0, +0x7c,0xea,0x90,0xf6,0x1d,0x4,0xe1,0x3,0xbb,0xf6,0x98,0x6, +0x2d,0x2f,0x3f,0x1f,0x4d,0xe4,0x32,0xe1,0x34,0xfe,0xf8,0xf0, +0xb7,0xde,0xbc,0xe5,0xb7,0xe6,0xb9,0xea,0xb7,0xf9,0x8d,0x4, +0x40,0x15,0xb3,0x12,0xe1,0xe6,0xbd,0xd2,0xf5,0xef,0x8b,0xa, +0x15,0x1e,0x12,0x32,0xee,0x2b,0x67,0x16,0xab,0x7,0xb0,0x0, +0x69,0x7,0x71,0x5,0x96,0xf2,0x2e,0x1,0x14,0x1f,0x93,0x4, +0x2,0xda,0xe1,0xe7,0x86,0xf,0x63,0x1c,0x9,0xa,0x3e,0xf3, +0x0,0xf6,0x38,0x0,0xea,0xf6,0x3d,0xf6,0x79,0x2,0xce,0xf8, +0x3e,0xf1,0x85,0x8,0xc2,0x12,0xd2,0xf6,0xed,0xd8,0xe4,0xd5, +0xd6,0xed,0xe5,0x9,0xe5,0xc,0x94,0x1,0x6b,0x4,0xf7,0x9, +0x51,0xfc,0xde,0xe5,0x3a,0xd9,0xe3,0xdb,0x4e,0xed,0xb5,0x7, +0x70,0x1b,0x36,0x15,0xcf,0xfa,0xb8,0xf2,0xe4,0x9,0x29,0x1a, +0xcf,0xd,0x7b,0xf9,0x51,0xee,0xb6,0xf3,0xdc,0x9,0x70,0x17, +0x9b,0xa,0xb9,0xf6,0x85,0xf6,0xf4,0x11,0xc3,0x2b,0xaf,0x18, +0x4b,0xef,0xb2,0xe6,0x9d,0xf4,0x3b,0x2,0xdd,0x17,0x79,0x1b, +0xaa,0xfb,0x48,0xe1,0x65,0xd9,0xf8,0xd6,0x3c,0xe8,0xef,0xfe, +0x83,0x0,0xff,0x4,0x89,0x16,0x20,0x1c,0xd5,0x18,0xd8,0x1c, +0xc9,0x25,0xcf,0x1c,0xfc,0xe8,0x6e,0xb2,0xed,0xb7,0xb0,0xdb, +0x4f,0xef,0x64,0x3,0xaa,0xe,0xe1,0xff,0xd2,0xfa,0x9,0x0, +0x33,0xf5,0x73,0xf4,0xcd,0xfe,0xc6,0xf2,0xe8,0xec,0xb,0x5, +0xcd,0x12,0xcf,0x10,0x4e,0x1c,0x6e,0x22,0x85,0xa,0xa6,0xe8, +0x67,0xd8,0xec,0xe3,0x16,0xfe,0x25,0x9,0xf7,0x1,0xe8,0xfc, +0x89,0xfa,0xc2,0xff,0x3f,0x1b,0x2d,0x2a,0xc3,0x8,0x83,0xe3, +0xcd,0xe4,0x5,0xf3,0x9b,0xf4,0x28,0xea,0x64,0xe9,0x75,0x10, +0x1f,0x36,0xe0,0x1a,0x83,0xec,0x5,0xe5,0x41,0xe9,0xc,0xf0, +0xc2,0xfe,0x49,0xf8,0xad,0xec,0x57,0xfa,0xc6,0xc,0xd4,0x19, +0x51,0x11,0xba,0xe2,0x44,0xd0,0x23,0xf6,0x6b,0x9,0x84,0x6, +0x41,0x14,0xff,0x10,0x71,0xfd,0xeb,0xf8,0xfd,0xef,0xf,0xed, +0xeb,0xfe,0x57,0x0,0x7e,0xfe,0x2b,0xe,0xbd,0xff,0x61,0xdf, +0x1f,0xe7,0xea,0xfd,0xad,0x2,0x5f,0xd,0xa7,0x2b,0x42,0x3f, +0x37,0x18,0x10,0xd1,0x66,0xca,0x37,0xfa,0x6f,0x6,0x70,0xf8, +0x24,0xf8,0xb5,0xf4,0x3b,0xf0,0x1f,0xf3,0xd7,0xf2,0x4,0xf5, +0xf8,0xf3,0x2c,0xf7,0x33,0x22,0x21,0x4c,0xf9,0x2d,0xe4,0xed, +0xc4,0xda,0xd6,0xf9,0x9e,0xe,0x1b,0xef,0x1,0xd5,0xf1,0xf5, +0x17,0x13,0x54,0xb,0x25,0xb,0xe9,0x2,0xe5,0xe4,0xbc,0xe4, +0xab,0x2,0x1b,0x16,0xaa,0x11,0x63,0xf8,0x69,0xf2,0x64,0xa, +0x97,0x1,0x0,0xe6,0xe0,0xf8,0x93,0xf,0xd5,0x1,0xba,0xfc, +0xd2,0x6,0xa7,0x4,0xd4,0xf9,0xe6,0xf7,0x45,0x14,0x55,0x33, +0xe4,0x19,0x4b,0xeb,0x3a,0xe8,0xb9,0xf4,0x3,0xef,0xb6,0xe5, +0x4d,0xe8,0x21,0xfc,0x9f,0x8,0xc8,0x2,0x4e,0x15,0x57,0x2e, +0xd,0x11,0xb6,0xe9,0x6b,0xf1,0x24,0x3,0xd9,0x5,0x1d,0xd, +0x20,0x1e,0x3d,0x25,0xa2,0x7,0x56,0xe5,0x75,0xf4,0x3b,0x3, +0xf2,0xe4,0x8,0xe2,0xf1,0xd,0x7,0x1c,0x41,0xfb,0x38,0xdd, +0x7b,0xee,0xfd,0x21,0x7c,0x2f,0x97,0x14,0xe1,0xb,0x45,0xff, +0x15,0xe1,0xfa,0xe8,0x53,0x5,0xa9,0x6,0x22,0x0,0x87,0xfd, +0x5c,0xc,0xea,0x33,0xca,0x30,0xd5,0xff,0x3,0xf9,0xf4,0x3, +0xf4,0xe2,0xcd,0xcd,0x7,0xe5,0xa1,0xf8,0xa5,0xf7,0x6,0xf5, +0x87,0x4,0x2f,0x18,0x5a,0x7,0x6c,0xf1,0x1,0x4,0xa1,0xf, +0x85,0x7,0x28,0x18,0xbd,0x1b,0x43,0xf8,0x76,0xeb,0x1b,0xff, +0xdc,0xf,0x6d,0x15,0xce,0xfd,0x46,0xde,0xd6,0xec,0x5b,0x7, +0x1c,0x1,0x86,0x0,0x2a,0xe,0x43,0xa,0x65,0x5,0xaf,0x12, +0x48,0x21,0x4a,0x1c,0x14,0xff,0x46,0xf0,0xc9,0x8,0x93,0xe, +0x6a,0xea,0x97,0xe2,0x3,0x5,0x94,0x17,0x7a,0x10,0x50,0x6, +0xaf,0xff,0x1b,0xff,0xb0,0xfb,0xbb,0xf5,0x86,0xfe,0xc3,0x4, +0x7d,0xf5,0xb0,0xed,0x3f,0xf5,0xb9,0xf5,0xa8,0xfd,0x41,0x18, +0x85,0x2a,0xb6,0x28,0xdd,0x15,0xf4,0xf7,0xa,0xeb,0x1b,0xf4, +0x76,0xf8,0x4a,0xfc,0x50,0x4,0xb6,0xf9,0x59,0xef,0xe0,0x4, +0xa7,0x1b,0x7d,0x19,0x88,0x11,0x92,0x5,0xd1,0xf2,0x77,0xf1, +0xdc,0x3,0x2a,0x12,0x4d,0x15,0xb4,0x10,0x7e,0x7,0xdb,0x0, +0x1d,0xfe,0x11,0xff,0x6b,0x6,0xa9,0xe,0x8b,0x12,0x28,0xf, +0xfd,0xfb,0xb1,0xe4,0x7,0xe7,0xee,0x3,0x4a,0x23,0xe0,0x2b, +0xfe,0x9,0xb9,0xde,0xa6,0xea,0xa7,0x14,0x9d,0x11,0x42,0xf7, +0xd2,0xfd,0xd3,0xd,0xfa,0x8,0x3e,0xff,0x4d,0xfb,0x50,0xff, +0x88,0xa,0x8,0xb,0x3,0xfa,0xc8,0xe3,0xed,0xd8,0xc5,0xee, +0x99,0x17,0xb3,0x23,0xef,0x14,0x27,0x13,0x88,0x1d,0x57,0x1b, +0xe,0x9,0x1f,0xfc,0x88,0x6,0xc2,0xc,0x48,0xf7,0xd,0xee, +0xe6,0x3,0xb4,0x13,0x89,0x14,0xac,0xe,0x7c,0xfd,0xcb,0xf1, +0x8f,0xf4,0xb5,0xfc,0x3e,0xa,0x7e,0x3,0xca,0xe6,0x9,0xf4, +0x3a,0x1b,0x12,0x7,0x7e,0xd9,0x26,0xe8,0x82,0x1f,0x2c,0x38, +0x10,0x17,0x60,0xef,0xb,0xf7,0x2d,0xfe,0x9c,0xea,0x97,0x3, +0x30,0x31,0xa5,0x18,0x5a,0xe1,0x11,0xd1,0x27,0xde,0xd2,0xee, +0x2a,0xe3,0x39,0xc9,0x58,0xdd,0x99,0xfe,0x3c,0xff,0xc,0x12, +0x49,0x2f,0x26,0x27,0xe1,0x27,0xc3,0x3f,0x36,0x3b,0x2,0x1b, +0xca,0xf5,0x1,0xef,0xfe,0x1c,0x47,0x29,0x73,0xee,0x85,0xdc, +0x7d,0x5,0x97,0x9,0x2,0xeb,0xdf,0xe1,0x94,0xec,0x90,0xe8, +0xd4,0xcd,0xf2,0xd3,0xac,0x4,0x57,0xd,0x4b,0xfd,0x90,0x20, +0x53,0x3b,0xb2,0x18,0x74,0xf7,0x7b,0xf2,0x6a,0xfc,0xf9,0xc, +0xca,0xa,0x1a,0xa,0x81,0x1a,0xe9,0x7,0x7f,0xe7,0x3b,0xfc, +0xf8,0x1d,0x2d,0x15,0xa2,0xf1,0x62,0xdc,0x12,0xf0,0xf4,0xfa, +0x91,0xdb,0x8c,0xe8,0xf1,0x1f,0x33,0x17,0x91,0xff,0x90,0x22, +0x71,0x2f,0xe2,0x5,0xe7,0xe2,0x3,0xe2,0x41,0xfd,0x21,0xfa, +0x21,0xc5,0xcc,0xc9,0xb8,0x11,0xe7,0x29,0xc2,0x1c,0xb2,0x1f, +0xf0,0x14,0x65,0x3,0x85,0x2,0x52,0xa,0xe6,0x1b,0xad,0x10, +0xf6,0xe4,0x9e,0xed,0x11,0x10,0x10,0xf0,0x6e,0xc9,0xf7,0xe7, +0xb,0x1d,0x71,0x25,0x8d,0xf0,0xa2,0xc6,0xa1,0xec,0xb9,0x16, +0xfc,0xc,0xea,0xf,0xcb,0x1e,0x7,0x16,0xa1,0x12,0xd6,0xa, +0x99,0xf1,0xfa,0xea,0xef,0xef,0x46,0xf8,0xd5,0x6,0xa2,0xf2, +0xa1,0xdd,0xc9,0x6,0xa,0x23,0x24,0xfe,0xc8,0xe0,0xbf,0xef, +0x3b,0x14,0x12,0x1f,0xef,0xf4,0xd7,0xe5,0x8c,0xc,0xe7,0x1, +0x43,0xda,0xfb,0xf0,0xe1,0x16,0x3c,0x29,0x2b,0x39,0x62,0x1e, +0x6b,0xeb,0xa9,0xd7,0xa5,0xcf,0x94,0xe1,0xac,0x13,0xbb,0x17, +0x10,0xfd,0x18,0xd,0x34,0x1f,0xc8,0xb,0xd,0xf5,0x85,0xf5, +0xb9,0xf,0x32,0x15,0xd6,0xe9,0x73,0xd9,0xe1,0xf8,0x5f,0xff, +0x34,0xf7,0xa8,0x7,0xec,0x16,0x24,0x19,0xd3,0xe,0xb4,0xff, +0x85,0x6,0xda,0x4,0x87,0xe7,0x25,0xe9,0xae,0x5,0x32,0xe, +0xb4,0x11,0x5,0xc,0xe4,0xf0,0x97,0xdc,0x6c,0xd1,0x68,0xe3, +0x81,0x1c,0x41,0x20,0xd1,0xe6,0x40,0xdf,0xe6,0x3,0x5f,0x21, +0x32,0x38,0x99,0x21,0x32,0xfb,0xde,0x7,0x12,0x3,0x17,0xe8, +0x50,0x3,0x2a,0x3,0xe4,0xd3,0x34,0xed,0x59,0x18,0x1e,0x9, +0x75,0x5,0x45,0xfe,0x9e,0xe7,0xf2,0xff,0x2,0x1,0xca,0xd9, +0x38,0xf6,0xea,0x17,0xbf,0xa,0x78,0x2a,0x70,0x38,0x92,0x1, +0x90,0xff,0x5b,0x13,0x55,0xf1,0x98,0xe6,0xdd,0xde,0x2a,0xc4, +0xb3,0xf1,0xe7,0x18,0x67,0xf3,0x1,0x5,0xdd,0x33,0x2e,0x12, +0xab,0xed,0x27,0xe2,0x3c,0xdb,0xc2,0xb,0xa6,0x1f,0xe2,0xe7, +0x53,0xed,0xb,0xb,0x44,0xe9,0x32,0xfe,0xab,0x2f,0x2e,0x2, +0x86,0xe1,0xbb,0x1,0x46,0x1,0xfd,0xf1,0x90,0xe3,0x65,0xcb, +0xd7,0xf0,0x87,0x21,0x42,0x5,0x7a,0xf8,0xba,0x18,0x5b,0x1a, +0x5d,0x10,0x67,0xfb,0x83,0xd8,0x28,0xef,0x10,0xf,0x91,0xf8, +0x1a,0xfd,0x2a,0xe,0xce,0xf1,0x7,0xfb,0xa6,0x1b,0xf9,0xfc, +0xe2,0xe9,0x2c,0xb,0x35,0x1a,0xae,0x12,0x74,0xff,0x71,0xf1, +0xe7,0xf,0x2,0x16,0x84,0xdf,0xc1,0xd7,0x2d,0xff,0xd7,0x0, +0x3f,0xf1,0xe0,0xdf,0x3d,0xcc,0xbd,0xe3,0x50,0x9,0x6e,0x13, +0x64,0x21,0x8c,0x21,0x25,0x10,0xf8,0x24,0x7a,0x2d,0x5d,0xf3, +0xfa,0xc7,0xee,0xd3,0xc6,0xef,0x8c,0x5,0xfd,0xfb,0x72,0xea, +0xa8,0x0,0x82,0x8,0x91,0xea,0xba,0xf5,0xd7,0x1a,0x36,0x16, +0xb6,0x9,0xc8,0xe,0x63,0x2,0xd3,0xe7,0x61,0xe0,0x36,0xfb, +0x9b,0x21,0x25,0x22,0xb6,0x5,0xaa,0x5,0xda,0x15,0xa8,0xff, +0x98,0xd4,0x1f,0xd3,0x48,0xf9,0xff,0x9,0xf6,0xfd,0xee,0x4, +0x10,0x17,0xf7,0xd,0xe8,0xfc,0x28,0xfd,0xc4,0xfc,0xd5,0xf0, +0xd9,0xee,0x17,0x8,0x3e,0x1c,0x8a,0x3,0x91,0xe6,0xb3,0xf6, +0xc4,0xc,0x60,0x5,0xcd,0xf7,0xfc,0xf4,0xbf,0x1,0xe8,0xd, +0x5d,0xfe,0x67,0xf6,0x71,0xf,0x72,0x16,0xb0,0xd,0xa4,0x1b, +0x59,0x14,0x55,0xee,0x4c,0xee,0xd3,0x8,0x5b,0x0,0x28,0xe4, +0x56,0xe6,0x42,0xc,0x39,0x20,0x4f,0xf9,0x33,0xd5,0x3,0xf4, +0xe4,0x17,0x59,0xff,0x2b,0xdf,0x2,0xf4,0x5d,0x19,0x39,0x16, +0x6d,0x1,0xeb,0xa,0xae,0x1b,0xb1,0xe,0xa7,0xfa,0xb7,0xf6, +0x9a,0xf3,0xd0,0xe6,0x66,0xe1,0x7b,0xf5,0x92,0x8,0xec,0xfa, +0x74,0xf6,0xe0,0x19,0x87,0x2c,0x72,0x18,0xbd,0xa,0x92,0xc, +0x14,0x8,0xc7,0xee,0xd3,0xd0,0x7d,0xe2,0x9d,0x8,0x6f,0xf2, +0x1c,0xda,0xb0,0xc,0xe2,0x34,0xe7,0x1b,0xa,0x3,0x92,0x0, +0xd9,0x4,0x8a,0xb,0xfe,0x3,0x5b,0xff,0xac,0x8,0xeb,0xfc, +0x69,0xf4,0x6e,0xa,0x16,0x2,0x48,0xdf,0x74,0xe8,0xe0,0x2, +0xe,0x3,0xd4,0x0,0x3c,0x5,0x6f,0x10,0x63,0x1c,0x2c,0x3, +0xe2,0xdf,0xe0,0xf5,0x44,0x1c,0x51,0xe,0xf4,0xef,0x29,0xf4, +0x8,0x5,0xbd,0xfe,0x0,0xf1,0x84,0x0,0x4d,0x1b,0xee,0x18, +0x22,0xf,0x9e,0x13,0x93,0xfe,0xf5,0xd2,0xbc,0xd2,0x28,0xf7, +0x61,0xfa,0xf3,0xe4,0x1f,0xf6,0xa9,0x21,0xd4,0x2a,0x3a,0x12, +0xf,0x6,0x71,0x14,0x18,0x1c,0x6,0xf9,0xc2,0xcc,0x4b,0xe1, +0xf2,0x19,0x17,0x14,0x38,0xe2,0xc1,0xde,0x48,0x1,0xa3,0x12, +0xc0,0x16,0xb,0x1e,0x55,0x1b,0xc7,0x6,0x33,0xf5,0x6,0xfd, +0x7d,0x7,0x93,0xf2,0x44,0xde,0x19,0xf4,0xb8,0xe,0x29,0x5, +0xe0,0xf4,0xba,0xf8,0xc3,0xfd,0x38,0xfa,0x9a,0xff,0x9f,0x15, +0x22,0x27,0x27,0x19,0x6e,0xf8,0x4d,0xf0,0xba,0x1,0xd5,0x4, +0xb4,0xf7,0x23,0xf5,0x92,0xf7,0xf,0xf2,0xcc,0xf1,0x5f,0xfd, +0x2a,0x3,0x99,0xf5,0x4c,0xeb,0xa5,0x5,0x52,0x25,0x41,0x13, +0x3e,0xf5,0x7,0x4,0x86,0x15,0xd9,0x2,0x12,0xf3,0x77,0xfc, +0x1a,0xc,0x20,0x11,0x93,0x3,0x61,0xf5,0xc1,0xf3,0x77,0xe8, +0x1a,0xe2,0x0,0x2,0xf9,0x18,0x31,0xfd,0xeb,0xe8,0x67,0x5, +0x1a,0x22,0xdf,0x16,0x16,0x1,0xba,0x5,0x8c,0xf,0x35,0xfe, +0xfd,0xe9,0xcb,0xed,0x90,0xf7,0xdb,0xfa,0xd3,0xff,0x44,0xd, +0x9a,0x1d,0x59,0x11,0xc1,0xea,0x23,0xe8,0xea,0x7,0x15,0x7, +0x82,0xf1,0xfa,0xf7,0xff,0x5,0x2b,0x1,0x20,0xfe,0xf7,0xf, +0x78,0x1f,0xa4,0x8,0xae,0xeb,0x96,0xff,0x9d,0x14,0x48,0xf1, +0xf4,0xcc,0x6d,0xd9,0x6d,0xfb,0xd7,0x11,0x84,0xa,0xc3,0xfb, +0xc5,0xc,0xdd,0x19,0xb9,0x5,0x1,0x3,0x9a,0x13,0x50,0xf, +0xa8,0xa,0xcd,0xb,0xcb,0xfa,0x45,0xed,0x11,0xf2,0x58,0xfb, +0x26,0x2,0x44,0xf2,0x12,0xdb,0xa6,0xee,0x1d,0xb,0x4,0xff, +0xbb,0xf7,0x6d,0xe,0xbb,0x1e,0x3b,0x21,0xc1,0x1b,0xfa,0x10, +0xbe,0x8,0xf9,0xf0,0xb7,0xd3,0x4d,0xde,0x2d,0xf6,0x5f,0xf3, +0xb3,0xfc,0xbe,0x1b,0xe,0x21,0x7b,0xb,0xbc,0xfb,0xa8,0x1, +0xe7,0x11,0x40,0x8,0x8d,0xec,0xb4,0xee,0xd0,0xfc,0x2c,0xf3, +0xcd,0xf2,0xaa,0xa,0xa6,0x17,0x45,0x13,0x0,0xc,0x12,0x9, +0x1b,0xd,0x78,0x3,0x6f,0xe7,0x4f,0xdf,0xaa,0xef,0xa7,0xf8, +0x40,0xfd,0xc0,0x7,0x24,0xc,0xae,0xa,0xac,0xa,0x88,0xd, +0x3b,0xf,0xa3,0xfe,0x3,0xeb,0xb2,0xfd,0x67,0x16,0x0,0x2, +0x48,0xed,0x46,0xfb,0x21,0xff,0x9a,0xf4,0x7a,0xfb,0x95,0x4, +0x73,0x6,0x98,0xa,0xd2,0x3,0x7d,0xfa,0x40,0x5,0x5a,0x12, +0xe2,0x10,0x4b,0x7,0xea,0xf8,0x82,0xf2,0x2d,0xf8,0x7b,0xf8, +0x1c,0xf6,0x46,0xf7,0xee,0xf8,0x42,0xc,0xfa,0x21,0xcd,0x10, +0x66,0xfa,0x75,0x7,0xb,0x12,0x5c,0x9,0xc6,0x3,0xe1,0xf9, +0x45,0xf0,0xd5,0xf7,0x3d,0x0,0xd3,0x1,0x3d,0xff,0x4e,0xf4, +0x67,0xf8,0x36,0xc,0x34,0x7,0x6b,0xf7,0xd9,0xfe,0xba,0x6, +0xfa,0x4,0xe,0x9,0x21,0xa,0x29,0xa,0x2,0x11,0xd4,0xe, +0xda,0x5,0x47,0x2,0x0,0xfc,0x98,0xf3,0x55,0xef,0x1,0xf0, +0xde,0xf6,0x8,0xf3,0x0,0xe7,0xdd,0xf8,0x88,0x19,0x60,0x1d, +0xb7,0x16,0xe4,0x15,0xee,0xb,0x98,0x6,0x92,0x7,0xd1,0xfb, +0xd2,0xf6,0xe4,0x1,0x3f,0x5,0xbe,0x0,0x90,0xf8,0x70,0xef, +0x7a,0xfc,0x0,0x14,0x61,0x14,0x8e,0x8,0x28,0xff,0x1e,0xf8, +0x30,0xff,0xfb,0x5,0x63,0xfc,0x8,0xff,0x1c,0x11,0x52,0x15, +0x16,0x10,0x5f,0x5,0x49,0xf0,0x7e,0xeb,0xac,0xfc,0xe0,0x6, +0x7b,0x6,0xa0,0x2,0x1d,0x2,0x7,0x13,0x3d,0x1b,0xfc,0xff, +0xf2,0xea,0x5a,0xf5,0x2f,0x1,0x1f,0x9,0x99,0xe,0xa3,0x5, +0xdb,0x7,0xff,0x1c,0xe1,0x1a,0x44,0x4,0x10,0xf8,0xfc,0xee, +0x2c,0xed,0x19,0xf8,0xc3,0xf1,0x1f,0xe3,0xd8,0xef,0x46,0x7, +0x70,0x16,0x13,0x21,0xb5,0x1d,0xec,0x19,0x94,0x21,0xdf,0x11, +0x92,0xf0,0x49,0xe9,0xf4,0xee,0xa,0xf3,0xa3,0x3,0xe0,0xb, +0x44,0x4,0xa1,0x5,0xa9,0x7,0x5d,0x6,0xc8,0x9,0x7,0xfc, +0x93,0xee,0x24,0x4,0xb8,0x12,0xc9,0x5,0x78,0x8,0xa8,0x12, +0xcb,0xb,0x3f,0x3,0x54,0xf8,0x2c,0xf3,0xe0,0x2,0x55,0x6, +0x6e,0xfb,0x9e,0x4,0xa0,0x5,0xdf,0xef,0x6b,0xf1,0x63,0x6, +0x7b,0xf,0xa8,0x11,0x6d,0xa,0x46,0x0,0xec,0x6,0xeb,0xa, +0xa5,0x2,0xae,0x1,0x83,0xff,0x59,0xfc,0xc1,0x8,0xe,0xc, +0xf7,0xf8,0x3c,0xee,0x6,0xf7,0xea,0x9,0x14,0x15,0x6b,0x0, +0x7b,0xe8,0xfc,0xfc,0x77,0x1f,0x9f,0x1c,0x67,0x5,0xa5,0xff, +0x58,0x8,0xce,0x5,0x30,0xf8,0x46,0xf7,0x19,0x0,0x56,0x0, +0x6b,0xfe,0xe3,0xfc,0x42,0xf6,0x66,0xfb,0x62,0xf,0xa3,0x1a, +0x2d,0x18,0xc0,0xf,0x37,0x7,0x35,0x9,0xd9,0x9,0x96,0xf5, +0x2d,0xe6,0x14,0xf9,0x15,0x12,0x89,0xd,0x2,0xfe,0xb7,0x1, +0x83,0x8,0xef,0xfc,0x4,0xf4,0x5,0xf9,0x2e,0xf7,0x67,0xf6, +0xb9,0x8,0x5b,0x15,0xbd,0xc,0x3f,0x6,0x60,0x9,0x5a,0xa, +0xc9,0x7,0x25,0x2,0xf1,0xfd,0xa6,0x3,0x34,0x6,0xaa,0xf5, +0xb9,0xe6,0x1e,0xf2,0xcc,0x5,0xcc,0x9,0x4b,0xb,0x96,0x15, +0x4f,0x16,0x5b,0x6,0x58,0xf7,0x0,0xf6,0x64,0xff,0x40,0x5, +0xb8,0x1,0xc3,0x2,0x66,0x6,0x12,0xfb,0x5a,0xef,0x4f,0xf7, +0x8a,0x2,0x92,0x3,0xbb,0x4,0x8d,0xb,0x9d,0x10,0x2b,0x8, +0xa7,0xf8,0x3a,0xfa,0x1a,0x6,0xaf,0x3,0x36,0xff,0x8f,0x7, +0x7b,0xd,0x52,0x8,0x55,0xfc,0x3,0xf2,0xe7,0xf4,0x1b,0xfb, +0x8d,0xf9,0xa5,0xfe,0x7b,0x8,0xb6,0x8,0xa6,0x7,0x83,0x1, +0x12,0xed,0xab,0xe3,0x87,0xf2,0x21,0x6,0x49,0x13,0xfe,0x12, +0x76,0x7,0x82,0x5,0xfb,0x7,0x47,0xfc,0x7a,0xef,0xaf,0xec, +0x3d,0xef,0x1d,0xf8,0x11,0xfc,0x8f,0xf6,0xcd,0xfd,0xe6,0xe, +0x5f,0x12,0xed,0xc,0x67,0x7,0x5b,0x2,0xf1,0x5,0x5e,0x9, +0x6b,0xfe,0x7e,0xf2,0x60,0xf1,0xe8,0xf4,0x99,0xf6,0x84,0xf1, +0xad,0xef,0x9c,0xfe,0x8e,0xa,0x29,0x1,0x9e,0xf4,0x98,0xf3, +0x5c,0xfc,0x7,0xa,0x68,0xf,0xef,0xe,0xcb,0x14,0x6a,0xf, +0x11,0xf9,0xb3,0xee,0x6d,0xee,0x10,0xe7,0xa9,0xeb,0x2f,0xff, +0x6e,0x5,0x6c,0x0,0x4,0x3,0x98,0x7,0x13,0x3,0x31,0xf8, +0xe5,0xf1,0xd3,0xf6,0xb0,0x1,0x7,0xb,0x41,0xb,0x89,0xff, +0xa2,0xf7,0x48,0xf8,0xaa,0xf0,0x25,0xec,0x98,0xfd,0x5d,0xd, +0x93,0x9,0xcc,0xff,0x7,0xf6,0xe3,0xf0,0xca,0xf3,0xc4,0xf3, +0x20,0xf7,0x5e,0x8,0xbe,0x16,0x2f,0x17,0x63,0x8,0xd9,0xed, +0xf9,0xe6,0x5d,0xf9,0xbf,0xff,0x69,0xfc,0xc0,0x0,0xdc,0xfd, +0x66,0xfc,0x9c,0x3,0x2d,0xf9,0xb6,0xeb,0xb6,0xf5,0xb6,0x2, +0x8d,0xb,0xed,0x10,0xc4,0x3,0x44,0xf9,0x8e,0xfd,0x62,0xf6, +0xf4,0xef,0x98,0xfa,0x3,0x5,0x2f,0x13,0x32,0x18,0x8a,0xfd, +0x43,0xee,0xab,0xf5,0x3a,0xe5,0x74,0xd7,0x86,0xef,0x12,0x9, +0x62,0x17,0x6,0x1b,0xb2,0x4,0x69,0xf3,0xa9,0xf7,0xaf,0xf6, +0xdc,0xfc,0x13,0xc,0x22,0x5,0xfe,0xf9,0x16,0xf9,0x92,0xed, +0x55,0xe7,0x54,0xf1,0xb0,0xf8,0x9c,0x2,0x29,0xa,0x26,0x3, +0x20,0x4,0x3a,0xa,0xf8,0xfe,0x38,0xf3,0xdc,0xf1,0xca,0xf6, +0x75,0x5,0x38,0xa,0xde,0xff,0x9f,0xfd,0xf3,0xf7,0xae,0xe9, +0x73,0xec,0xd7,0xf4,0x38,0xf8,0x81,0x8,0x12,0x14,0x25,0xb, +0x74,0x2,0x1,0xfb,0xa3,0xf2,0xdb,0xf4,0xe3,0xf8,0x67,0xfe, +0x20,0xd,0x3b,0x10,0x72,0xff,0x66,0xed,0x42,0xe5,0x3a,0xed, +0xdd,0xfc,0xbb,0x4,0x85,0xc,0x72,0x10,0x79,0x1,0x81,0xf3, +0xba,0xf3,0xa9,0xf2,0xa3,0xf2,0x3f,0xf9,0xde,0xff,0xc2,0x7, +0x21,0xc,0xc3,0x8,0xde,0x4,0xaa,0xfa,0x36,0xea,0x37,0xe6, +0xc0,0xf1,0x25,0x3,0xd8,0xd,0x5f,0x8,0xba,0x2,0xab,0x1, +0x81,0xf1,0x3a,0xe1,0xef,0xe8,0x17,0xff,0x94,0x18,0x97,0x21, +0xf4,0xd,0xc8,0xfc,0x7a,0xf3,0x2c,0xe2,0xbe,0xe5,0x43,0xfb, +0xc8,0xfd,0xcc,0xff,0xe,0x6,0xf2,0xf7,0x5a,0xf0,0x9c,0xf8, +0x6e,0xf8,0x2f,0x1,0x16,0x10,0x98,0xb,0x8c,0x8,0xfa,0x8, +0x51,0xfc,0xb8,0xf5,0x53,0xf0,0x96,0xe5,0xcf,0xef,0x66,0xfd, +0x6,0x0,0xd1,0x11,0x43,0x17,0xc4,0xfb,0x15,0xea,0x55,0xe6, +0x3a,0xe9,0xfb,0x1,0x3,0x12,0xdf,0xe,0x47,0x13,0xac,0x7, +0xd0,0xeb,0xe7,0xe7,0x95,0xee,0x94,0xf7,0x2b,0xb,0x9f,0xb, +0xce,0x2,0xc5,0x4,0x2,0xf1,0x21,0xde,0xff,0xef,0x69,0xfd, +0x24,0x5,0x51,0x1b,0x30,0x17,0xda,0x0,0x16,0xfd,0x87,0xf6, +0x9f,0xef,0xbc,0xf3,0x49,0xf0,0xc4,0xfb,0xe1,0x14,0x18,0xe, +0x48,0x0,0x31,0x2,0xb,0xf7,0xaa,0xf1,0xd3,0xf7,0xf5,0xee, +0x9d,0xfa,0x2f,0x1a,0xb6,0x13,0xb7,0xfe,0x70,0xf8,0x3a,0xe9, +0x97,0xea,0x7e,0x8,0xdf,0x13,0x9f,0xe,0xc,0xd,0xf9,0x1, +0xdc,0xf5,0xc0,0xed,0x18,0xe0,0xe,0xe5,0x70,0x3,0x55,0x17, +0xe0,0x13,0x3f,0x6,0xf4,0xf7,0xe,0xee,0xa6,0xeb,0x8f,0xf8, +0xb4,0xe,0xdf,0x14,0x56,0xb,0x43,0x6,0xe7,0x5,0x46,0x0, +0xb8,0xf2,0x67,0xea,0x16,0xf4,0xb8,0xfc,0xdf,0xfa,0x9b,0x3, +0x27,0xd,0x29,0x5,0xb1,0xfc,0x8d,0xf9,0xaf,0xf8,0xdc,0xff, +0xa1,0x4,0x58,0xe,0xfe,0x22,0x7c,0x16,0xa7,0xec,0x64,0xdf, +0x93,0xe5,0x8d,0xeb,0x23,0x2,0x61,0x10,0xbf,0xa,0xb7,0xd, +0x9,0x7,0x62,0xf1,0x67,0xf2,0x74,0xfd,0x5f,0x2,0xb7,0x10, +0xbd,0x11,0x48,0xfc,0xac,0xf0,0x1,0xef,0x35,0xf3,0x50,0x1, +0x7,0x1,0x16,0xfb,0x72,0xb,0xab,0x15,0xd6,0x9,0xf8,0x1, +0x60,0xfb,0xf7,0xef,0x11,0xf0,0x87,0xfa,0xc4,0x6,0xb7,0x10, +0xca,0xf,0x71,0x7,0x9c,0xff,0x6,0xf8,0x8b,0xf3,0xeb,0xf4, +0x72,0xfe,0x75,0xc,0xfd,0xe,0xe8,0x7,0x2b,0x0,0xbc,0xec, +0x63,0xdd,0x1,0xef,0xa4,0x8,0x47,0x10,0xb7,0x15,0x84,0x1a, +0x41,0x11,0xd0,0xfc,0xae,0xeb,0x1a,0xef,0x6e,0xfd,0x5e,0xff, +0x89,0x0,0xd9,0x6,0xd7,0x1,0xeb,0xfd,0xe8,0xff,0x9e,0xf8, +0xc7,0xf9,0xc1,0x3,0xfc,0xfd,0x6a,0x0,0xf5,0x12,0xf4,0xe, +0x8e,0xff,0x1a,0xfc,0x31,0xf2,0x47,0xec,0x99,0xfb,0x54,0x9, +0x7f,0xe,0x6d,0xe,0x50,0x0,0x17,0xf5,0xbf,0xf7,0xb5,0xf5, +0x1,0xf3,0xe6,0xfd,0xef,0xd,0x6c,0x17,0x4e,0xe,0x39,0xf6, +0xd,0xee,0x94,0xfa,0x21,0x4,0xfb,0x9,0x5a,0xe,0x7c,0x5, +0x40,0xf9,0x76,0xfa,0x54,0xff,0x9c,0xfa,0x28,0xf2,0xad,0xf2, +0xe9,0x0,0xad,0x11,0x7,0x13,0xf1,0x5,0x47,0xfb,0x6c,0xf7, +0x41,0xf8,0x7,0x1,0x15,0x7,0x42,0x3,0x3d,0x8,0x60,0x12, +0x3a,0x7,0x9c,0xf2,0x4f,0xea,0x54,0xe9,0xa8,0xf1,0x84,0x0, +0xb7,0x6,0xb3,0xb,0x9f,0xe,0x3a,0x2,0xda,0xfb,0xd9,0x3, +0x2,0x5,0x2e,0x9,0x8c,0x11,0x62,0x7,0x4e,0xfd,0xa3,0xfd, +0x5c,0xf1,0x69,0xec,0xeb,0xfc,0xd9,0x0,0xc3,0xfd,0xd9,0x9, +0x28,0xc,0x4b,0xfc,0x11,0xf1,0x59,0xf1,0xef,0xfc,0xc3,0xa, +0x94,0xd,0xfd,0xf,0x21,0x16,0x27,0x10,0x8,0x1,0x1b,0xf6, +0x14,0xf1,0x1e,0xf0,0x40,0xf0,0x9c,0xf5,0xf,0x5,0x6f,0xe, +0x9d,0x5,0x42,0xfb,0x1e,0xfd,0x8f,0x0,0xea,0xfd,0x73,0x4, +0x52,0x15,0xa3,0x12,0x3c,0xfd,0x5f,0xf3,0xab,0xf0,0xc5,0xf0, +0x49,0xff,0x6d,0x5,0xce,0xff,0xcc,0x8,0xc0,0x8,0x8,0xfa, +0xab,0x3,0x67,0xc,0x75,0xfe,0x4b,0x1,0x58,0x7,0xd3,0xfd, +0xf9,0x4,0x7e,0x5,0x5c,0xef,0x21,0xf3,0x55,0x0,0x0,0xfb, +0x1,0x5,0xf9,0xb,0xe3,0xff,0x0,0xc,0xf9,0x14,0x3c,0xfc, +0x83,0xf2,0x10,0xf3,0x5c,0xea,0xe0,0xfb,0x3a,0xd,0xcf,0x0, +0x70,0x2,0xba,0x6,0x51,0xf5,0xa4,0xfb,0x74,0x10,0x55,0xc, +0xe5,0xa,0x97,0xd,0x4b,0xfc,0x63,0xf0,0xa9,0xf2,0xf0,0xf5, +0xf8,0x0,0x2e,0x1,0x6e,0xee,0xf1,0xf1,0xc9,0xa,0x81,0x11, +0x60,0xd,0x17,0xd,0xd0,0x3,0x6e,0xfa,0xa1,0x0,0xcd,0x6, +0xd8,0x3,0x70,0x1,0xd2,0xf9,0xef,0xee,0xcb,0xf3,0x3d,0xf9, +0x37,0xf0,0xa,0xf8,0x5c,0x10,0xdf,0x15,0xe0,0x11,0xa6,0xc, +0xe2,0xfc,0x35,0xfc,0xab,0x5,0xe7,0xfa,0x50,0xfa,0x29,0x7, +0xa4,0xf9,0xdd,0xf0,0x4c,0xfd,0xf5,0xf5,0x14,0xf1,0x48,0x0, +0x50,0xff,0xe,0x3,0x9a,0x16,0x7a,0xf,0x9d,0x3,0xb6,0x9, +0xd9,0x1,0xa,0xfa,0x6b,0xfa,0x72,0xea,0xea,0xea,0xfa,0x0, +0x2,0xff,0xdc,0xfb,0x76,0x6,0x51,0xfd,0x4c,0xf9,0xd9,0x8, +0x7c,0x8,0x5,0x7,0xb6,0xe,0x25,0x4,0x2b,0xfa,0x64,0xfd, +0x70,0xf8,0xb5,0xfa,0x9b,0x9,0xfd,0xb,0x65,0x6,0x65,0xfd, +0x1f,0xef,0x3a,0xef,0xc,0xf9,0x5b,0xfc,0x2b,0x4,0xc4,0xb, +0xd7,0x4,0x39,0xfa,0xbe,0xf6,0x37,0xfd,0xaa,0x5,0xa1,0x0, +0x6d,0xfa,0xc,0xff,0x90,0xff,0xd5,0xfe,0xc6,0x3,0x68,0x5, +0x76,0xa,0x81,0xc,0xa3,0xfb,0x7b,0xf1,0x98,0xf9,0xd1,0xfc, +0x32,0xfe,0xbf,0xfd,0xba,0xf1,0xf2,0xef,0x60,0xfb,0x69,0x3, +0x7,0x11,0x99,0x18,0x21,0xc,0x6,0x5,0x2f,0x0,0xb9,0xf0, +0xa2,0xf0,0xf2,0xf9,0xe4,0xf9,0x68,0x2,0xd7,0x6,0xcc,0xf8, +0x87,0xf7,0xa8,0xfe,0x5d,0xfb,0xbb,0x1,0x98,0x8,0x9f,0x1, +0xcf,0x4,0x8a,0x8,0xc0,0xfe,0x88,0x3,0x5f,0xe,0xb1,0x5, +0x3f,0xfc,0x8,0xf7,0xa9,0xec,0xbd,0xec,0x4f,0xf6,0xda,0xfb, +0xad,0x0,0x96,0x1,0xf6,0xff,0x6f,0x5,0x5c,0x8,0x52,0x8, +0x72,0xf,0x16,0xc,0xcc,0xf8,0x51,0xef,0x4a,0xf0,0x63,0xee, +0x22,0xf5,0x72,0x7,0x38,0x10,0x58,0x9,0xd6,0x1,0x1d,0xff, +0x60,0xfa,0xd8,0xf5,0x22,0xf9,0x9c,0x1,0x94,0x5,0x5b,0xfe, +0xb2,0xf4,0x7e,0xf9,0x11,0x5,0xbb,0x5,0xf5,0x1,0x0,0xff, +0x55,0xfa,0x4a,0xfe,0x60,0x6,0xf6,0x7,0xc7,0xe,0xa2,0xf, +0x4,0xf9,0x1c,0xeb,0x68,0xf3,0x48,0xf6,0x24,0xf9,0x5a,0x2, +0x48,0x0,0xce,0xfe,0xff,0x2,0xdc,0xfd,0x65,0x3,0x2c,0x14, +0xd7,0xe,0x5c,0x4,0x3f,0x6,0x8c,0xf8,0xb1,0xe5,0x7b,0xe9, +0xa1,0xf4,0xdb,0xfe,0x62,0x7,0x93,0x0,0xb5,0xf9,0xc3,0xff, +0xb3,0xff,0x68,0xfe,0xcb,0x7,0xbd,0x9,0xe1,0x2,0xc9,0x0, +0x77,0xff,0x6a,0xff,0x0,0x1,0x3d,0xfe,0x3c,0x0,0x49,0x2, +0xa1,0xf5,0x31,0xf5,0xd7,0x10,0xb,0x1f,0xce,0xe,0x62,0xf8, +0x36,0xdf,0x79,0xcc,0x29,0xd9,0xf9,0xee,0xf1,0xea,0x7c,0xe2, +0x7f,0xef,0x53,0x3,0xd9,0xe,0x0,0xe,0x53,0x3,0x65,0x5, +0xe1,0x1a,0xa8,0x26,0x8b,0x1e,0xc7,0x12,0xdd,0x8,0xa0,0x7, +0x63,0x11,0x4d,0x10,0xfe,0x0,0x26,0xf7,0x55,0xf0,0xc5,0xea, +0xb3,0xf0,0x75,0xf2,0x7b,0xe7,0x54,0xe7,0x75,0xf2,0x7c,0xf5, +0x74,0xf1,0x32,0xeb,0x91,0xe9,0xa1,0xf5,0xbf,0xff,0xb6,0xfe, +0xf8,0x3,0x46,0xd,0x97,0x13,0x10,0x24,0x7,0x2f,0x1d,0x1c, +0x65,0x2,0xfd,0xf7,0x9a,0xf4,0xd,0xf6,0x88,0xf7,0x2a,0xf2, +0xaa,0xf2,0x48,0xf8,0xc,0xf3,0x69,0xea,0x5f,0xe9,0xeb,0xf0, +0xff,0x3,0xec,0x10,0x9b,0x6,0xf1,0xf9,0xd7,0xf7,0xd4,0xf7, +0xab,0x1,0xbc,0xf,0xb1,0xc,0xf8,0x3,0xbe,0x0,0xcc,0xf8, +0x3e,0xf8,0x86,0x3,0x41,0x0,0xdc,0xf3,0xdf,0xf6,0xa6,0xfd, +0xf2,0xfd,0x80,0x3,0xeb,0x8,0x87,0x1,0x76,0xf4,0xe9,0xed, +0x24,0xef,0x68,0xf2,0x61,0xf7,0xfc,0x1,0x48,0xb,0xe7,0x9, +0xfc,0xff,0x21,0xf5,0x13,0xf6,0xcf,0x5,0xa7,0xd,0xf,0x4, +0x43,0xfb,0x2d,0xf6,0x65,0xf0,0x28,0xf4,0x25,0xfc,0x5a,0xfd, +0x9d,0x1,0x88,0x8,0x48,0x7,0xe1,0x4,0xc6,0x3,0x7a,0xfd, +0xde,0xf9,0x22,0xfb,0x30,0xf7,0xf2,0xf2,0x82,0xf8,0xfd,0x1, +0x1d,0x4,0x2a,0xfe,0xe5,0xf9,0x9c,0xf8,0xc6,0xf1,0xdd,0xee, +0x85,0xfd,0x19,0xe,0x83,0x10,0x68,0xc,0xf0,0x6,0x72,0x0, +0x24,0xfd,0x46,0xf9,0xdc,0xf3,0x69,0xf4,0x21,0xf7,0x7e,0xf6, +0xeb,0xf6,0x94,0xf6,0x3c,0xf6,0xd6,0x0,0x6d,0x10,0x9a,0x13, +0x39,0xa,0x1d,0xfd,0xc7,0xf4,0x30,0xf8,0xd7,0xfb,0xa7,0xf2, +0x5b,0xec,0xe4,0xf5,0x5,0x1,0x66,0x7,0xcc,0xd,0xec,0xb, +0x70,0x1,0xd,0xfe,0x32,0x3,0xde,0x6,0x4,0x5,0xca,0xfc, +0x5a,0xf7,0xd0,0xfd,0xa8,0xff,0xe6,0xef,0x9d,0xe3,0xc,0xeb, +0x73,0xfb,0xaf,0xb,0x89,0x16,0xa,0x11,0xa8,0xfe,0xd6,0xf3, +0x2a,0xf7,0xc1,0xfa,0xbb,0xf8,0xf7,0xfa,0x97,0x3,0xde,0x9, +0x89,0x8,0x6b,0xfd,0x88,0xf1,0xd0,0xf7,0x60,0x8,0xe8,0x9, +0xa5,0x2,0x25,0x1,0x57,0xfc,0x88,0xf6,0x4f,0xfb,0x5c,0xfe, +0xc8,0xf7,0xe,0xf5,0x56,0xfa,0x8e,0x1,0x3a,0x5,0x7f,0xfe, +0x4a,0xf5,0x62,0xfa,0x55,0x6,0x3d,0x6,0x98,0xff,0x9e,0x3, +0x6,0xd,0x67,0x9,0xe3,0xfb,0xbe,0xf3,0x92,0xef,0x1d,0xef, +0xd2,0xfb,0xf9,0xa,0xc0,0xb,0x47,0x4,0x6d,0xfd,0xf0,0xfa, +0xf6,0xff,0xc2,0x1,0x84,0xff,0x59,0xa,0xf2,0x13,0x5b,0x4, +0x39,0xf1,0x44,0xef,0x3c,0xf1,0xf2,0xf2,0xc9,0xf6,0xa9,0xf6, +0x9,0xfa,0x48,0x5,0x3d,0xb,0xf1,0xa,0x9a,0xa,0x68,0x8, +0x3d,0x9,0xdc,0xb,0x9f,0x2,0x31,0xf4,0x93,0xf2,0xa5,0xf9, +0xa7,0xfb,0x38,0xf5,0xcb,0xed,0x98,0xf2,0x83,0x4,0xb0,0x12, +0xb6,0x10,0x6f,0x3,0x1f,0xf9,0xc8,0xf8,0xd8,0xfb,0xc5,0xfe, +0xe4,0x2,0x3e,0x3,0x4f,0x4,0x5a,0xc,0x28,0x7,0x89,0xee, +0x82,0xe6,0xb0,0xfa,0xe5,0xa,0xc1,0x8,0x28,0x0,0x43,0xfc, +0xf9,0x3,0xe6,0xe,0xa8,0xd,0xf3,0x4,0x68,0xfd,0xe9,0xf5, +0x47,0xf6,0x97,0xff,0x2b,0xfe,0xba,0xf1,0xaa,0xf3,0x57,0x4, +0x2b,0x9,0x27,0xfe,0xd4,0xf9,0x9c,0x6,0xb,0x19,0x5f,0x1d, +0xcc,0x5,0x92,0xe4,0x22,0xdf,0x19,0xf2,0x60,0xfc,0x70,0xfc, +0xa1,0xfe,0x89,0x1,0xae,0xc,0x77,0x1b,0x88,0x12,0x5f,0xfb, +0x84,0xf9,0xea,0x7,0xf7,0xb,0xa,0xfe,0xea,0xe7,0x47,0xe2, +0xad,0xf6,0xc6,0x8,0x4a,0x6,0xf8,0xff,0x42,0x5,0x15,0x14, +0x83,0x1d,0x4f,0x12,0xc8,0xfb,0x8f,0xf1,0x67,0xf9,0x49,0x3, +0x40,0xfb,0x8c,0xe8,0x78,0xeb,0x47,0x4,0x18,0x10,0x87,0x4, +0x6e,0xf4,0xe7,0xf2,0x64,0x6,0x5b,0x1a,0xf4,0x18,0x22,0xd, +0x7e,0x3,0xc1,0xfc,0x7,0x1,0x68,0x5,0xf7,0xf5,0xd9,0xe9, +0x33,0xf9,0x52,0xa,0x5c,0x5,0x46,0xf4,0xa8,0xe8,0x3b,0xf2, +0xd9,0xc,0xa9,0x18,0xcc,0xb,0xd,0x2,0x64,0x8,0x7d,0xe, +0x42,0x9,0xc5,0xfc,0x23,0xf3,0xe2,0xf6,0xc0,0x3,0xa8,0x6, +0x15,0xfb,0x45,0xf1,0xa2,0xf5,0xc7,0x6,0xec,0x13,0x1e,0x9, +0x79,0xf6,0xbd,0x0,0x6b,0x1b,0x86,0x1a,0xc1,0xfe,0x67,0xe9, +0x5c,0xe8,0x2f,0xf6,0xab,0x5,0x6a,0x8,0xf5,0x1,0xc2,0x4, +0xb9,0x12,0xa2,0x14,0x39,0xfe,0x5,0xe8,0x3,0xed,0x76,0x3, +0xca,0xd,0x74,0xff,0x20,0xec,0x2d,0xf1,0x9c,0x8,0x2b,0x13, +0x3,0xc,0x4,0x3,0xf9,0x1,0xf9,0xd,0xac,0x17,0x34,0x6, +0x80,0xea,0xb6,0xe8,0xa8,0xfc,0x26,0xa,0x7d,0x3,0xc8,0xf2, +0x84,0xf3,0x80,0xd,0x10,0x21,0x51,0x13,0xfb,0xf3,0x33,0xe8, +0x38,0xfb,0xac,0x10,0x93,0xf,0x5,0x1,0x72,0xf9,0xab,0x0, +0x49,0xa,0xc1,0x3,0x3e,0xf6,0x2b,0xf7,0x52,0x3,0xd4,0xe, +0xca,0xb,0x0,0xef,0x78,0xdb,0xd2,0xf7,0x2c,0x1f,0xf9,0x21, +0x56,0xe,0x54,0x1,0x9b,0x5,0x29,0x11,0xff,0x7,0xf7,0xec, +0xfc,0xe0,0xc1,0xe9,0x69,0xfb,0x62,0x9,0x26,0x1,0x37,0xf3, +0x9,0x3,0xbb,0x1e,0x5e,0x1f,0x43,0x8,0xa0,0xf5,0xc5,0xfb, +0xb7,0xf,0xbf,0xf,0xad,0xf8,0xb2,0xe5,0x21,0xe7,0xc4,0xfc, +0x70,0x10,0xdc,0xa,0xa6,0x0,0x1d,0xa,0x27,0x15,0x25,0x10, +0x9,0xfd,0x23,0xe7,0x10,0xea,0x67,0x7,0xdc,0x16,0xac,0xa, +0xcc,0xf9,0xc,0xf6,0x18,0x6,0xd4,0x15,0x3a,0x7,0xe1,0xee, +0xfd,0xf1,0xb7,0x4,0x38,0xc,0x22,0x3,0x91,0xf1,0x7b,0xed, +0x25,0x1,0x5c,0x14,0x48,0x11,0xef,0xff,0x36,0xf7,0x62,0x4, +0x82,0x14,0x63,0xa,0xbc,0xf0,0xbf,0xea,0x35,0xfe,0x24,0x10, +0x84,0xa,0x91,0xf8,0x75,0xf5,0x18,0x2,0xc3,0x9,0x34,0x3, +0xcc,0xf3,0x71,0xed,0xa4,0x1,0x2c,0x1c,0x1d,0x17,0x4e,0xfb, +0x8b,0xf1,0xdd,0x2,0x75,0x15,0xb8,0x12,0xb3,0xfe,0xc2,0xf2, +0xa4,0xfa,0xf4,0x2,0x67,0xfa,0xc1,0xeb,0xce,0xea,0xf5,0xfb, +0xdf,0xf,0x6f,0x12,0xad,0x5,0x92,0x1,0x68,0xf,0x7a,0x1b, +0xea,0x11,0x33,0xf7,0xb3,0xe3,0xaf,0xea,0x27,0x0,0x85,0x5, +0xa4,0xf6,0x5b,0xee,0xac,0xfa,0x72,0xb,0xea,0xd,0xa2,0x4, +0x13,0x2,0xf6,0xd,0x65,0x16,0x98,0x9,0xfc,0xf1,0x20,0xe6, +0x3f,0xef,0xd6,0x6,0xa0,0x17,0xbf,0xe,0x1b,0xfb,0xe7,0xfa, +0x8a,0xa,0x4c,0xd,0x4c,0xfa,0x2a,0xe6,0xd5,0xe9,0x59,0x1, +0x96,0xc,0x5c,0x0,0x2a,0xf6,0x66,0xff,0xdb,0x12,0xa3,0x1e, +0x8b,0x13,0xeb,0xf9,0xb0,0xf2,0xeb,0x5,0xa3,0x12,0xa2,0x1, +0x92,0xe5,0xc6,0xe0,0x2,0xf8,0x65,0xc,0x10,0xa,0xff,0xff, +0x5a,0x0,0x78,0xb,0x2c,0x13,0x44,0x5,0x35,0xeb,0x5e,0xe8, +0x2,0x2,0x1f,0x18,0xac,0x15,0x47,0x0,0xae,0xef,0x8a,0xf9, +0x3d,0xd,0xe2,0x8,0xd7,0xf3,0x3a,0xed,0xc7,0xf8,0xb5,0x3, +0x87,0xfe,0x94,0xef,0x96,0xf2,0xd0,0xc,0x28,0x1f,0x8a,0x1a, +0x66,0xd,0x5d,0x2,0xc3,0xfe,0x6c,0x2,0xbe,0xfe,0xdc,0xef, +0x92,0xe5,0xf7,0xe9,0x19,0xfc,0x9c,0xd,0xa6,0xa,0xf5,0x0, +0xa2,0xa,0x10,0x14,0x1,0x5,0x42,0xf4,0x94,0xf7,0x90,0x4, +0x74,0xb,0x62,0x2,0xfe,0xf0,0x18,0xee,0x3c,0xfb,0xc6,0x8, +0x32,0x10,0x16,0xb,0x60,0xfc,0xbf,0xf9,0x13,0x4,0xa1,0x3, +0x91,0xf5,0x99,0xee,0xff,0xfa,0x6b,0xe,0x59,0x11,0xcf,0x3, +0x74,0xfc,0x78,0x3,0x1f,0xd,0xff,0x9,0x55,0xf6,0xb0,0xe8, +0xea,0xf3,0x68,0x5,0x0,0x8,0x3e,0xff,0x76,0xf5,0xa4,0xf8, +0xf,0xc,0x47,0x15,0xa1,0x4,0x54,0xf3,0x8b,0xfa,0x29,0xf, +0xbb,0x11,0xe6,0xfa,0xb5,0xe9,0x14,0xf4,0x4a,0xa,0xaf,0x15, +0x4f,0xd,0x5,0xfa,0xa6,0xf2,0x1e,0xfc,0xf1,0x4,0x47,0x2, +0xe5,0xf4,0x7b,0xed,0xa7,0xff,0x18,0x15,0xdc,0xb,0xbb,0xf6, +0x16,0xf8,0x32,0xd,0xb5,0x1c,0xbd,0x11,0x6b,0xf8,0xb8,0xf0, +0x3a,0xf6,0xe,0xf5,0xfc,0xf3,0xfc,0xf2,0x5b,0xee,0xa7,0xf8, +0xe0,0xd,0xbe,0x13,0x41,0xd,0xaf,0x9,0x1b,0xe,0x7a,0x17, +0x77,0xe,0x1e,0xee,0x93,0xdf,0xc0,0xf2,0xa8,0x5,0x54,0x4, +0x2b,0xf9,0xf0,0xf3,0xc6,0xfb,0x8b,0x6,0x71,0x9,0x25,0x7, +0x3e,0x3,0x86,0x1,0x38,0x3,0x46,0x0,0x30,0xfa,0xef,0xfb, +0xf3,0x5,0x40,0x11,0xa9,0xf,0x7f,0xfa,0xef,0xed,0xf6,0xfc, +0x1e,0x9,0xf8,0xfd,0x35,0xf0,0x3e,0xf0,0x72,0xfb,0x4,0x7, +0x98,0x7,0x61,0x3,0xe1,0x7,0xdc,0x11,0x63,0x16,0x2a,0xe, +0x2a,0xfa,0x50,0xea,0x49,0xed,0x93,0xfd,0x41,0x6,0xea,0xf9, +0xc8,0xec,0x75,0xfa,0xf1,0x10,0xb0,0x10,0x6f,0x4,0xe1,0x1, +0x6b,0x6,0x67,0x8,0xf2,0x1,0xcf,0xf4,0xa5,0xec,0x55,0xf1, +0x3b,0x2,0xb7,0x13,0x1c,0x12,0x61,0x2,0x22,0x1,0x85,0xf, +0xab,0x11,0x57,0xfd,0xea,0xe5,0x62,0xe3,0xd7,0xf5,0x51,0x4, +0x34,0x0,0xca,0xf7,0xe,0xfd,0x55,0xd,0x62,0x17,0x98,0x11, +0x7e,0x3,0x5e,0xfc,0xd7,0x4,0x9a,0xf,0x98,0x5,0x6d,0xee, +0x62,0xe7,0xa5,0xf4,0xb2,0x4,0xc9,0x7,0x2f,0xfa,0x90,0xf2, +0xe4,0x0,0xd3,0x9,0x5,0xfe,0x1d,0xf8,0x76,0x2,0xc4,0xe, +0x11,0x16,0xe7,0x11,0x36,0x3,0x89,0xfa,0x34,0xfd,0x16,0x1, +0xfb,0xfb,0xff,0xec,0xf2,0xe6,0x62,0xf6,0xff,0x5,0xd1,0x2, +0x1c,0xf9,0xab,0xfd,0x26,0x13,0xf0,0x20,0x53,0x15,0xc4,0x6, +0xd5,0x5,0xa5,0x2,0x95,0xfa,0xe1,0xf4,0x69,0xeb,0x34,0xe7, +0x2b,0xf5,0x79,0x5,0xbe,0x8,0x86,0x4,0x79,0x3,0x90,0xc, +0x7d,0x16,0xda,0xf,0x8a,0xfd,0x8d,0xf2,0xfa,0xf6,0x8c,0x1, +0x5e,0xfe,0x92,0xee,0xd,0xed,0xa2,0xff,0xdf,0x11,0xd0,0x16, +0x43,0xd,0x3a,0x0,0x37,0xff,0x8a,0x5,0x74,0x5,0x10,0xfc, +0xed,0xee,0x7d,0xee,0xb4,0xfe,0x73,0x5,0xf2,0xfa,0xd5,0xf7, +0x20,0x5,0x5b,0x17,0xc7,0x1d,0x18,0xb,0x5e,0xf2,0xc8,0xf0, +0xd7,0xfd,0x78,0x5,0x2,0x2,0x99,0xf3,0x73,0xed,0x1d,0xfe, +0x6a,0xb,0x43,0x3,0x88,0xfb,0xec,0x2,0x8c,0xf,0x27,0x13, +0x3e,0x7,0xc3,0xf8,0x3a,0xf9,0xde,0x3,0xaf,0x8,0x9c,0x1, +0x69,0xf7,0x2e,0xf8,0x52,0x1,0xf4,0x3,0x2a,0xfc,0x58,0xef, +0x32,0xea,0xfe,0xf9,0xec,0xf,0xc8,0x12,0xc0,0xa,0x6c,0xb, +0x33,0x11,0x39,0xf,0xa2,0x0,0x35,0xef,0x43,0xed,0x8e,0xf9, +0x2b,0xff,0x51,0xf7,0xf7,0xef,0x24,0xf5,0x13,0x3,0xef,0xd, +0x90,0x10,0x9f,0xc,0x2b,0x8,0x2e,0xc,0x7f,0x11,0x3e,0x5, +0xfa,0xee,0x7d,0xe8,0x3b,0xf4,0x9e,0x1,0x7c,0x5,0x92,0x0, +0xec,0xfe,0xe5,0x6,0xa0,0xb,0x26,0x2,0x3e,0xf4,0xad,0xf3, +0x25,0x3,0x35,0xf,0xf2,0x6,0x67,0xf5,0x1c,0xf1,0x40,0xff, +0xec,0x11,0xd5,0x16,0xda,0x9,0x3b,0xfb,0xe,0xfa,0x70,0xff, +0xe,0xfb,0x49,0xee,0x25,0xeb,0x4b,0xf8,0xd,0x9,0x50,0x10, +0xc9,0xb,0x61,0x4,0xd1,0x4,0x99,0x8,0x3,0x4,0x26,0xf8, +0x6b,0xef,0x8b,0xf5,0x6a,0x9,0x81,0x10,0x7,0xff,0x4e,0xf3, +0x5a,0xfe,0xc9,0xa,0x61,0xa,0xf2,0x0,0xae,0xf5,0x44,0xf4, +0x5e,0xfd,0xfe,0x2,0xde,0xff,0xe2,0xf9,0x34,0xfb,0xea,0x9, +0x79,0x16,0x28,0x10,0x91,0x3,0x73,0x1,0x2d,0x6,0x43,0x6, +0x2f,0xf9,0x5,0xe7,0x81,0xe6,0x53,0xf8,0xef,0x4,0x87,0x2, +0xba,0xfb,0xb2,0xfd,0x7e,0xa,0xfc,0x12,0xde,0xb,0x6f,0x1, +0xbb,0x1,0x7d,0x7,0xe,0x7,0x84,0xfd,0x61,0xf1,0x5d,0xee, +0x9c,0xfa,0x5a,0x8,0x33,0x2,0xdc,0xf0,0xb4,0xf3,0xc4,0x9, +0xd0,0x12,0x10,0x6,0x1c,0xf8,0xb6,0xf7,0xac,0x1,0x9c,0xa, +0xcf,0xb,0xc,0x7,0xdb,0x1,0xde,0x2,0x2e,0x6,0x4c,0xfd, +0x22,0xee,0x31,0xef,0x9b,0xfd,0xec,0x4,0xa9,0x0,0x1b,0xfa, +0xe1,0xfc,0x6d,0x9,0xb7,0xe,0x24,0x7,0xda,0x0,0x61,0x1, +0x9a,0x5,0xc3,0x8,0xc0,0xff,0xa,0xf0,0x53,0xef,0xfb,0xfb, +0x95,0x5,0xcc,0x9,0x24,0x8,0x10,0x1,0x6e,0xff,0x59,0x3, +0xad,0xff,0xe0,0xf4,0xfc,0xf0,0x8d,0xfa,0x8c,0x7,0x83,0x8, +0x91,0xff,0xe8,0xfd,0x35,0x6,0x79,0xb,0xc5,0x9,0x24,0x6, +0xcf,0x1,0xec,0xfe,0x9a,0xff,0x60,0xfb,0x32,0xed,0xb8,0xe4, +0xbf,0xf0,0x39,0x7,0x9c,0x13,0xd6,0xf,0x8d,0x9,0xd1,0xd, +0xfb,0x11,0xa6,0x6,0x35,0xf5,0x20,0xed,0x3f,0xf0,0xc7,0xfc, +0xfe,0x7,0xc8,0x2,0x8,0xf7,0xd0,0xf9,0xa9,0x7,0x55,0xe, +0x19,0x6,0x4f,0xf9,0x69,0xf9,0x6f,0x4,0xdf,0x7,0xb7,0xff, +0x42,0xf7,0x29,0xf9,0x1,0x7,0x48,0x10,0xf9,0x7,0x15,0xfe, +0x10,0x0,0x4c,0x1,0x33,0xf9,0xbd,0xee,0xbb,0xe9,0x7a,0xf0, +0xc,0x2,0x61,0x12,0x1c,0x16,0x8e,0xc,0xfe,0x2,0x2d,0x6, +0x1b,0xb,0x71,0x1,0xa5,0xf3,0x18,0xf3,0xb8,0xfa,0xed,0xfc, +0xea,0xf8,0x69,0xf7,0x11,0xfd,0x73,0x6,0x27,0xe,0xa0,0xf, +0xcd,0x9,0xfd,0x2,0x31,0x0,0x28,0xfe,0xfa,0xf9,0x80,0xf5, +0xa0,0xf5,0x2d,0xfe,0x4b,0x8,0x1a,0xa,0x1e,0x7,0x69,0x6, +0xc8,0x6,0x9f,0x4,0x54,0xfc,0xda,0xf0,0x1b,0xef,0x88,0xf9, +0x9e,0x2,0xb0,0x2,0xc,0xfe,0x3f,0xfd,0x4a,0x5,0x48,0xe, +0xeb,0xd,0x2c,0x8,0xb5,0x5,0xac,0x6,0x1c,0x4,0x25,0xf8, +0x90,0xea,0x95,0xea,0xc6,0xf7,0x81,0x4,0x3a,0x8,0x2b,0x4, +0xe,0x1,0xed,0x3,0x53,0x6,0xfb,0x3,0xe6,0xff,0xdd,0xfc, +0xb2,0x0,0x5b,0xb,0x63,0xd,0x82,0x1,0xa0,0xf8,0xcc,0xfc, +0x8,0x4,0xe1,0x1,0xbb,0xf7,0x66,0xf3,0xf7,0xfa,0xf5,0x3, +0xdd,0x4,0xeb,0xfe,0xab,0xf9,0x7e,0xfe,0xd6,0xc,0x55,0x17, +0xe,0x15,0x1,0xa,0x2e,0x0,0xb3,0xfc,0x78,0xf8,0x81,0xed, +0xaf,0xe5,0xfd,0xeb,0xa2,0xfc,0x62,0xa,0xb1,0xa,0x58,0x3, +0x25,0x4,0x35,0xc,0x20,0xe,0x65,0x8,0xa7,0x0,0xaa,0xfa, +0x23,0xfb,0xf6,0xfd,0xc7,0xf8,0x14,0xf1,0xf6,0xf4,0x8d,0x2, +0x9a,0xd,0xdc,0x10,0xf7,0xd,0x9a,0x8,0xbe,0x3,0xf9,0xfc, +0x8e,0xf1,0x5f,0xe9,0x55,0xee,0x72,0xfc,0x34,0x9,0x78,0xf, +0xe9,0xd,0xd7,0x9,0x39,0xb,0x95,0xc,0xc8,0x4,0x98,0xfa, +0x95,0xf7,0x94,0xf9,0xa,0xfa,0x95,0xf4,0x35,0xee,0x98,0xf3, +0x38,0x3,0x2b,0xe,0xb1,0x10,0xe5,0xf,0x31,0xc,0xbf,0x5, +0xfa,0xfd,0x1d,0xf6,0x94,0xf2,0x40,0xf6,0x13,0xff,0xc8,0x8, +0xc9,0xb,0x37,0x5,0xa7,0xfe,0x88,0xfe,0x81,0xfe,0x5b,0xf9, +0x49,0xf2,0x9a,0xf0,0x4,0xf9,0xfd,0x4,0xa,0xa,0x47,0x9, +0x17,0x9,0xcf,0xa,0x6e,0xe,0x54,0x10,0xf8,0x8,0xc0,0xfa, +0x29,0xf1,0x61,0xef,0x63,0xee,0xb0,0xea,0xef,0xeb,0x11,0xfb, +0x35,0x11,0x29,0x1d,0xb0,0x19,0xa6,0xe,0x83,0x4,0xcd,0x0, +0x7d,0x0,0x81,0xfa,0x5e,0xf2,0x54,0xf3,0x6,0xfa,0xde,0xfc, +0x74,0xfc,0x34,0xfc,0xcf,0xfe,0x12,0x7,0xd,0xe,0xe,0xa, +0xa3,0x0,0x8c,0xfd,0xa5,0x0,0xd,0x1,0x5,0xfa,0x63,0xf2, +0x7a,0xf5,0x2f,0x2,0x7e,0xc,0x40,0xe,0xde,0x8,0x41,0x0, +0x2e,0xfb,0x2d,0xfb,0xb,0xf9,0x44,0xf4,0xd4,0xf5,0xed,0xfe, +0x14,0x7,0xb9,0x8,0xc5,0x4,0x8d,0x1,0xe7,0x4,0xe4,0x8, +0x10,0x4,0x96,0xfb,0xa,0xfa,0x75,0xfe,0xc7,0x1,0x65,0xff, +0xdd,0xf8,0x59,0xf8,0xae,0x2,0x96,0xc,0xdc,0xb,0x6f,0x3, +0xa5,0xfa,0x9d,0xf7,0xe2,0xf9,0xcc,0xf8,0x5,0xf4,0x4e,0xf7, +0x51,0x5,0xb6,0x12,0xbd,0x15,0x9,0xe,0x65,0x3,0xd6,0xfe, +0x99,0xff,0x57,0xfc,0x2d,0xf2,0x12,0xeb,0x3d,0xef,0xaa,0xf7, +0x87,0xfa,0x58,0xfa,0xf3,0xfd,0x12,0x8,0x44,0x17,0x91,0x20, +0xbb,0x18,0x1e,0x8,0x26,0xfe,0xcd,0xf8,0xee,0xee,0x69,0xe4, +0x5a,0xe4,0x7a,0xf1,0x98,0x2,0xca,0xb,0x5a,0xa,0x6c,0x6, +0x2,0x8,0xec,0xc,0xe2,0xc,0x3b,0x5,0xa3,0xfb,0x6d,0xf7, +0xfb,0xf9,0xbf,0xfc,0xe2,0xfa,0x20,0xf9,0xf7,0xfc,0xbe,0x4, +0xee,0xa,0xeb,0x9,0xa1,0x2,0xd9,0xfc,0x3b,0xf9,0xfc,0xf2, +0x9,0xef,0x9b,0xf4,0x2e,0x1,0x43,0xe,0x26,0x15,0x94,0x11, +0xd1,0x7,0x0,0xff,0x26,0xfa,0xd6,0xf8,0x2d,0xf7,0xf,0xf4, +0xdd,0xf4,0xac,0xfa,0x0,0x0,0x94,0x1,0x69,0x0,0x1a,0x2, +0xd2,0x9,0x59,0xe,0xff,0x7,0x20,0xfe,0xe2,0xf8,0xe2,0xf7, +0x7f,0xf8,0xda,0xf8,0x1,0xfb,0x89,0x2,0x69,0xc,0x79,0x12, +0x53,0x10,0xfc,0x4,0xf0,0xf8,0xcc,0xf4,0xb0,0xf3,0x7e,0xf0, +0x5d,0xf0,0xbb,0xf6,0x69,0x0,0x77,0x8,0xa5,0xb,0x93,0xb, +0x66,0xb,0x4f,0xc,0x32,0xd,0xbe,0x7,0x19,0xfa,0xc8,0xef, +0x97,0xef,0x45,0xf3,0x7d,0xf6,0x1e,0xf8,0x11,0xf9,0xfe,0xff, +0x15,0xb,0x9a,0xe,0x29,0x9,0x0,0x2,0x87,0xfd,0xcf,0xfd, +0x6a,0xff,0x52,0xfe,0xe0,0xfe,0xd3,0x2,0x1b,0x5,0x11,0x4, +0x7e,0xff,0xb4,0xf8,0x92,0xf6,0x68,0xfa,0x69,0xfd,0xd4,0xfc, +0x6f,0xfb,0xfa,0xfc,0x23,0x2,0xe2,0x5,0xd,0x6,0xef,0x6, +0xdc,0x9,0xdb,0xb,0xfb,0x9,0x2c,0x3,0xe9,0xfa,0x6f,0xf4, +0xf8,0xef,0x37,0xf0,0xf0,0xf4,0x22,0xf9,0x84,0xfe,0x52,0x7, +0x3d,0xd,0x63,0xd,0x8b,0xa,0xd1,0x5,0x9e,0x1,0xa8,0xfe, +0x4b,0xfa,0xd8,0xf6,0xc2,0xf6,0xd3,0xf7,0xa3,0xfa,0x1a,0xff, +0xd4,0x1,0x38,0x4,0x64,0x7,0x4f,0x7,0xc7,0x3,0xf9,0xff, +0x5b,0xfc,0xb6,0xf8,0xa6,0xf5,0x12,0xf5,0x29,0xf9,0xf8,0x0, +0x98,0x9,0x6f,0xe,0x88,0xb,0x92,0x5,0x57,0x2,0xde,0xfe, +0xff,0xfa,0xb8,0xfa,0xfb,0xfa,0x5c,0xf9,0x67,0xf8,0x8,0xf8, +0xb4,0xf9,0x6,0xff,0xb1,0x3,0x62,0x7,0x5e,0xc,0x19,0xd, +0xb2,0x7,0x69,0x2,0x23,0xfe,0x34,0xf9,0x98,0xf6,0xbe,0xf7, +0x4,0xfb,0xd,0xff,0x52,0x2,0x15,0x3,0x78,0x0,0x36,0xfc, +0x24,0xf9,0x2d,0xf8,0xa5,0xfa,0xc4,0xff,0xad,0x2,0xb7,0x4, +0x3b,0x9,0xc4,0x9,0x9,0x5,0xa0,0x3,0x9d,0x3,0xea,0xfe, +0x2c,0xf9,0x32,0xf4,0xaf,0xef,0x90,0xef,0x11,0xf3,0xb2,0xf8, +0x41,0x3,0xd2,0xd,0xb2,0x10,0x82,0xe,0xef,0xb,0x81,0x8, +0x54,0x2,0x8e,0xf9,0x1e,0xf3,0xfb,0xf2,0xd6,0xf6,0xbf,0xfc, +0x8d,0x2,0x33,0x3,0xde,0xff,0xde,0xfe,0x2a,0x1,0x98,0x2, +0xbc,0xff,0x98,0xfc,0xee,0xff,0xc3,0x3,0x6e,0xff,0xff,0xf9, +0x31,0xfb,0xa,0x0,0x0,0x6,0xd0,0x9,0x2c,0x7,0x5e,0x1, +0x5a,0xfc,0x4a,0xf8,0x7e,0xf6,0x60,0xf5,0x7b,0xf4,0xf,0xfa, +0xf4,0x4,0x4c,0xa,0x2d,0x6,0x9b,0xff,0x8,0x0,0xe0,0x6, +0x80,0x7,0x84,0xfe,0xf1,0xf7,0x24,0xf9,0x97,0xfc,0x4c,0xfe, +0x1a,0xfe,0xd9,0xfe,0x39,0x2,0x40,0x5,0xda,0x5,0x1a,0x2, +0x85,0xf9,0x86,0xf5,0x50,0xfb,0x8b,0xff,0x81,0xfc,0xdc,0xfb, +0x59,0x3,0x25,0xd,0xeb,0xf,0xd0,0x9,0x42,0x3,0x2,0x0, +0xa,0xfb,0x8f,0xf4,0x3b,0xf1,0xdc,0xf2,0x1b,0xf9,0x44,0xff, +0x35,0x1,0xd,0x1,0xb4,0xff,0xa8,0xff,0xf8,0x6,0xa4,0xe, +0xbd,0xa,0x1a,0x2,0x3b,0x0,0x61,0x1,0xcb,0xfd,0x88,0xf6, +0x1b,0xf3,0xb9,0xf6,0x4,0xfb,0xdf,0xfb,0x82,0xfc,0x34,0xfe, +0x55,0x1,0xa3,0x6,0xb9,0x9,0x76,0x7,0xb0,0x2,0x6f,0xff, +0xfc,0x0,0x98,0x3,0x30,0xff,0xc8,0xf8,0xc8,0xfa,0xf2,0x0, +0xb,0x2,0xd7,0xfd,0x60,0xfa,0x2e,0xfd,0x2b,0x2,0x37,0x1, +0xa2,0xfd,0x1c,0xfd,0xf9,0xfd,0xa2,0x1,0xb3,0x8,0x21,0xb, +0x2b,0x5,0x43,0xfd,0xce,0xfa,0xa6,0xfd,0x4f,0xfd,0x32,0xf8, +0xcd,0xf8,0x6d,0x0,0x36,0x5,0xae,0x4,0x68,0x1,0xc,0xfd, +0xab,0xfb,0xd6,0xfd,0x52,0xff,0x60,0xfe,0x4d,0xfc,0x41,0xfd, +0x1f,0x3,0x94,0x6,0x81,0x2,0x5b,0xfd,0x96,0xfe,0x85,0x5, +0xd,0x9,0xad,0x2,0x19,0xfb,0xad,0xfa,0x7a,0xfa,0xcf,0xf6, +0xaa,0xf5,0x58,0xf8,0x16,0xfe,0x71,0x6,0xcc,0xb,0xcb,0xa, +0x13,0x6,0x89,0x2,0x54,0x5,0x84,0x9,0x22,0x4,0x83,0xf9, +0xf9,0xf4,0x4e,0xf5,0xcd,0xf5,0xa7,0xf6,0x2,0xf9,0xf0,0xfe, +0xe1,0x6,0xc1,0xa,0x39,0x9,0x74,0x5,0x9,0x2,0x78,0x0, +0x41,0xff,0xbc,0xfc,0xad,0xfa,0xee,0xfb,0x98,0x2,0x39,0x9, +0xdd,0x4,0xf2,0xf9,0x9,0xf7,0x48,0xfa,0x83,0xfa,0x10,0xf9, +0xaf,0xf9,0xde,0xfe,0x84,0x7,0x69,0xa,0xcf,0x5,0xc9,0x2, +0x5,0x3,0x46,0x4,0xd4,0x6,0x94,0x4,0xf0,0xfa,0x2e,0xf4, +0xf4,0xf5,0xe9,0xf9,0xfa,0xfa,0x19,0xfc,0x25,0x2,0x45,0xa, +0x7f,0xc,0x37,0x7,0x47,0xff,0xcf,0xfa,0xf3,0xfc,0x7e,0x0, +0x41,0x0,0xf6,0xfe,0xcc,0xfd,0x64,0xfd,0x9e,0x1,0xd,0x5, +0xe5,0x0,0xac,0xfd,0xcd,0x1,0x81,0x5,0x71,0x2,0x54,0xfa, +0xeb,0xf4,0x43,0xf9,0xdc,0x0,0xa8,0x1,0xc2,0xfe,0x58,0xfe, +0x55,0x1,0xe8,0x6,0xdb,0x9,0xd9,0x5,0x13,0xff,0x3e,0xfb, +0x44,0xfc,0x83,0xff,0x33,0xff,0x5a,0xfc,0x24,0xfd,0xf1,0xff, +0xf0,0xfe,0x32,0xfa,0xae,0xf7,0xdd,0xfc,0x3b,0x5,0x23,0x8, +0x79,0x7,0x5e,0x7,0xf4,0x5,0xea,0x4,0xb,0x5,0x23,0x1, +0x8c,0xfa,0x72,0xf7,0x92,0xf8,0x92,0xfb,0xf2,0xfb,0xc0,0xf8, +0x54,0xfa,0x6f,0x2,0x2a,0x7,0xb1,0x5,0x1,0x4,0x9e,0x5, +0xf9,0x8,0x30,0x8,0xa8,0x1,0x63,0xfc,0x6a,0xfb,0xca,0xfb, +0x35,0xfc,0x8b,0xfa,0xfe,0xf6,0x21,0xf7,0x9f,0xfb,0xde,0xff, +0xf1,0x1,0x9e,0x2,0x87,0x5,0x7f,0xb,0xc1,0xc,0x6,0x6, +0xe1,0xfe,0x60,0xfc,0x34,0xfc,0xbc,0xf9,0xb6,0xf4,0xc7,0xf4, +0xae,0xfc,0xa6,0x4,0xe9,0x8,0x67,0x9,0x6,0x4,0x27,0xfe, +0xb9,0xfe,0xba,0x1,0xc3,0x1,0xb5,0xfe,0x5d,0xfb,0xf9,0xfc, +0x54,0x1,0xf5,0xff,0xed,0xfb,0x14,0xfe,0xab,0x4,0x54,0x9, +0x2f,0x9,0xc0,0x4,0x93,0xff,0xc,0xfc,0x77,0xfa,0x4e,0xfa, +0x6,0xf9,0x3e,0xf8,0xfb,0xfc,0x7f,0x3,0xe4,0x4,0x49,0x2, +0xb7,0xff,0x45,0x1,0xa2,0x7,0x34,0xa,0x8d,0x4,0x57,0xfe, +0xdf,0xfb,0xab,0xfa,0xd8,0xf9,0x5e,0xf9,0x35,0xfa,0x70,0xfd, +0x51,0x1,0x97,0x4,0xb2,0x4,0xd0,0xfe,0x9,0xfa,0xea,0xfd, +0x11,0x4,0x35,0x5,0xee,0x3,0x10,0x5,0xb1,0x9,0xd1,0xb, +0xa6,0x4,0x46,0xf9,0xa2,0xf2,0xbd,0xf1,0x10,0xf5,0xfe,0xf9, +0x39,0xfd,0x1,0x1,0xf6,0x6,0x90,0xa,0x58,0x9,0xba,0x5, +0x59,0x4,0xa7,0x7,0xcf,0x8,0x90,0x0,0xc,0xf5,0x11,0xf1, +0x1b,0xf6,0xad,0xfc,0xe1,0xfd,0xf,0xfd,0xbd,0x0,0xda,0x5, +0xda,0x6,0x61,0x3,0x5d,0xfd,0x19,0xfb,0x8f,0x0,0x10,0x6, +0x25,0x5,0xf6,0x0,0x97,0xfd,0xf0,0xfd,0x8,0x0,0x43,0xfc, +0x9d,0xf5,0xa0,0xf7,0x61,0x1,0xa1,0x8,0x11,0x8,0xb7,0x1, +0xe1,0xfd,0x58,0x1,0xcb,0x4,0x3a,0x1,0xba,0xfa,0x24,0xf9, +0x6d,0xfe,0x85,0x4,0x97,0x4,0x83,0xff,0x6b,0xfc,0x19,0x1, +0x69,0x8,0xc9,0x5,0xb6,0xfb,0xb5,0xf9,0x6,0x0,0x5c,0x3, +0x39,0x1,0xb0,0xfb,0x4f,0xf7,0x67,0xfb,0xb3,0x3,0x69,0x5, +0x49,0x1,0xe5,0xfd,0x81,0xfe,0xcb,0x2,0xdd,0x4,0x2,0x2, +0xb5,0x0,0xb5,0x3,0xa3,0x5,0x42,0x2,0x2a,0xfa,0x4,0xf3, +0x8d,0xf2,0x26,0xf7,0xab,0xfb,0x1d,0xfe,0xa1,0x0,0xcb,0x6, +0x16,0xe,0x86,0xf,0x6b,0xa,0xa,0x3,0xf,0xfe,0xe4,0xfe, +0xd3,0xff,0x51,0xf9,0x2,0xf2,0xb3,0xf2,0x44,0xf8,0x5e,0xfd, +0xe7,0xff,0xe5,0x0,0x52,0x5,0x2a,0xc,0x54,0xe,0x21,0xb, +0x68,0x5,0x2f,0xff,0x67,0xfc,0x9c,0xfb,0xa9,0xf7,0x89,0xf4, +0x67,0xf8,0x27,0x0,0xdf,0x4,0xff,0x2,0xc3,0xfd,0xbd,0xfc, +0x66,0x1,0xb2,0x5,0x1a,0x5,0x5,0x1,0x77,0xfe,0xe2,0xfe, +0x5c,0xfe,0xe3,0xfb,0x5c,0xfa,0x58,0xfc,0xf9,0x3,0xf7,0xb, +0xf4,0x8,0xb0,0xfc,0x0,0xf5,0x24,0xf7,0x38,0xfd,0xe4,0xff, +0xc8,0xfd,0x20,0xfe,0xbd,0x4,0xfd,0x9,0x49,0x7,0x5,0xff, +0xad,0xf8,0xcc,0xfa,0x75,0x1,0x9a,0x2,0xc2,0xfe,0xc1,0xfd, +0x4c,0x1,0x9a,0x5,0x61,0x5,0x2d,0xff,0xd0,0xfa,0xe7,0xfe, +0x27,0x5,0x50,0x3,0xc8,0xf9,0x2c,0xf3,0x6d,0xf6,0xe3,0xfe, +0xed,0x4,0x5e,0x6,0xe8,0x5,0x29,0x8,0x1,0xc,0x55,0x9, +0x86,0xfe,0xae,0xf3,0xf,0xf0,0x6f,0xf5,0x7e,0xfd,0xb5,0xfe, +0x7b,0xfb,0x40,0xfd,0xda,0x2,0x4e,0x5,0x1e,0x3,0x82,0xff, +0xf4,0xff,0xb4,0x5,0x2d,0x9,0x7c,0x4,0x17,0xfc,0x3e,0xf8, +0xed,0xfa,0xfe,0xfd,0xdd,0xfc,0x0,0xfb,0x21,0xfc,0x8a,0xff, +0x50,0x2,0x3d,0x0,0xb,0xfb,0xd9,0xfb,0x10,0x4,0xb2,0xa, +0x32,0xa,0xa8,0x4,0xf8,0xff,0xc3,0xff,0xa2,0xff,0x26,0xfb, +0x3c,0xf6,0x4b,0xf6,0x17,0xfc,0x29,0x3,0x1f,0x4,0xca,0xfe, +0x15,0xfb,0x5,0xfd,0xfe,0x1,0xeb,0x4,0x81,0x2,0xaf,0xff, +0x92,0x2,0x64,0x6,0xc8,0x3,0x34,0xfc,0xcd,0xf6,0x94,0xf8, +0x63,0xfd,0xf3,0xfc,0x55,0xf9,0xef,0xfa,0x67,0x2,0x69,0x9, +0xd5,0x8,0xdc,0xff,0xd1,0xf8,0x7f,0xfb,0xb8,0x1,0xb7,0x2, +0x90,0xfd,0x44,0xf8,0x69,0xfa,0x60,0x2,0x34,0x6,0x88,0x3, +0xd9,0x1,0x91,0x5,0x82,0x9,0x2e,0x5,0x62,0xf9,0x87,0xf0, +0xc8,0xf0,0xc3,0xf7,0x7e,0xff,0x36,0x2,0xc4,0x1,0x1f,0x5, +0xb3,0xa,0x79,0xb,0x17,0x6,0xf,0xfe,0x38,0xfa,0x7f,0xfe, +0x75,0x2,0x22,0xfe,0xf1,0xf7,0x5c,0xf7,0x2d,0xfa,0xe1,0xfb, +0xcc,0xfa,0x73,0xf9,0x39,0xfd,0xf4,0x5,0x15,0xc,0x21,0xa, +0xfa,0x2,0xdb,0xfd,0xf1,0xfd,0xb6,0xff,0x8f,0xfe,0xb9,0xfa, +0x9c,0xf9,0x0,0xfe,0x93,0x1,0x60,0xfe,0xbf,0xf8,0x60,0xf7, +0x9a,0xfb,0xf8,0x2,0xa6,0x7,0x1,0x6,0x38,0x2,0x88,0x0, +0x45,0x0,0xb1,0x0,0xe1,0x0,0x46,0x0,0x5d,0x1,0x7f,0x3, +0xf4,0x0,0x1c,0xf9,0x14,0xf3,0xd0,0xf4,0xab,0xfc,0xad,0x3, +0xbd,0x5,0x6e,0x5,0x29,0x6,0x9a,0x6,0xe7,0x2,0xd9,0xfa, +0x43,0xf4,0x70,0xf5,0xb3,0xfd,0x45,0x5,0xb1,0x5,0xe,0x2, +0x91,0x1,0x36,0x3,0xe0,0x0,0x76,0xfa,0x68,0xf5,0xe7,0xf6, +0x70,0xfe,0x2b,0x3,0x77,0xff,0x6c,0xfa,0xf4,0xfb,0x89,0x2, +0x2b,0x8,0xe8,0x7,0xbd,0x2,0xbe,0xff,0x12,0x1,0xd4,0x0, +0xb0,0xfb,0xb,0xf6,0xce,0xf6,0x9c,0xfe,0xe,0x5,0x9d,0x3, +0x1a,0xfe,0xc1,0xfb,0x66,0xfe,0x4c,0x1,0x3c,0xff,0x45,0xfb, +0x89,0xfd,0xd2,0x6,0x81,0xe,0xd8,0xb,0x86,0x0,0x77,0xf8, +0xd7,0xf9,0x78,0xfd,0x52,0xfc,0x4d,0xf8,0x64,0xf7,0xa7,0xfc, +0x65,0x2,0xdb,0x0,0x97,0xfb,0x4f,0xfb,0x1a,0x1,0x4b,0x8, +0x8f,0xa,0x50,0x5,0xd9,0xff,0x56,0x0,0x7f,0x1,0xdf,0xfd, +0xd,0xf8,0x3b,0xf5,0x86,0xf8,0xe0,0xfe,0x9d,0x0,0xa3,0xfc, +0x2e,0xfa,0x9c,0xfd,0x38,0x3,0xa6,0x5,0xe7,0x4,0x41,0x4, +0xef,0x4,0x6c,0x6,0xb5,0x5,0xb1,0xfe,0x1,0xf6,0x41,0xf5, +0xcd,0xfa,0x32,0xfe,0x39,0xfe,0x4a,0xfe,0x5,0x1,0xfa,0x5, +0xf9,0x6,0x9,0x1,0x83,0xfb,0x7c,0xfc,0x1d,0x1,0x11,0x4, +0x62,0x2,0xed,0xfd,0x6,0xfc,0xcc,0xfd,0x80,0xff,0x59,0xff, +0x34,0xff,0xb7,0x1,0xe1,0x5,0x77,0x5,0x85,0xfd,0x2,0xf5, +0x3a,0xf4,0x41,0xfa,0xa2,0xff,0x57,0x0,0x3b,0xff,0x56,0x0, +0xba,0x3,0x5,0x6,0xba,0x3,0x47,0xfe,0x4e,0xfc,0x9e,0x0, +0xa2,0x5,0x39,0x5,0x8e,0xff,0x9d,0xf9,0xce,0xf7,0xe9,0xf8, +0x66,0xf8,0xf8,0xf6,0x9e,0xfa,0x26,0x4,0x96,0xb,0x55,0xa, +0xb8,0x3,0xd3,0xff,0xaa,0x1,0x3b,0x5,0xcb,0x4,0xb6,0xff, +0x94,0xfb,0x40,0xfc,0xf2,0xfd,0x30,0xfb,0x1,0xf5,0x63,0xf2, +0x68,0xf8,0x35,0x3,0x85,0x9,0x2b,0x8,0xce,0x4,0x68,0x4, +0x24,0x5,0x40,0x3,0xf2,0xfe,0xaa,0xfb,0x4a,0xfc,0x93,0xff, +0xaf,0xff,0xd8,0xf9,0x3a,0xf4,0x78,0xf5,0x2b,0xfc,0x3c,0x3, +0x84,0x6,0xfc,0x4,0x1e,0x3,0xd2,0x3,0x8a,0x2,0x8,0xfd, +0xe4,0xf8,0xf8,0xfa,0xfc,0x1,0xa8,0x7,0x19,0x6,0xfc,0xff, +0xaa,0xfc,0xd8,0xfc,0x5f,0xfc,0x0,0xfa,0x49,0xf8,0x72,0xfb, +0xb4,0x3,0xdd,0x9,0xe5,0x7,0xa,0x1,0x2,0xfd,0xb8,0xfe, +0xaf,0x1,0xec,0x0,0xd1,0xfd,0xc2,0xfc,0x4a,0xff,0xde,0x2, +0xa3,0x2,0x6c,0xfe,0xbd,0xfc,0xb4,0xff,0xfb,0x1,0xad,0x0, +0x2b,0xfd,0xfc,0xf9,0x79,0xfa,0x8e,0xfd,0x5,0xfe,0x8c,0xfc, +0xcf,0xfe,0x86,0x5,0x1b,0xb,0xa7,0x9,0xa5,0x1,0x9c,0xfa, +0x8,0xfa,0x84,0xfd,0x5b,0xff,0x3a,0xfd,0x46,0xfb,0x1a,0xfe, +0xb7,0x1,0x76,0xff,0x5f,0xf9,0x9d,0xf6,0xdb,0xfa,0x76,0x3, +0x9,0x9,0x8,0x8,0xaa,0x5,0xb4,0x6,0x6d,0x8,0xb8,0x5, +0xec,0xfd,0xb1,0xf6,0xd4,0xf5,0x74,0xf9,0xb8,0xfb,0xcc,0xfa, +0x14,0xf9,0x8e,0xfa,0x7e,0x0,0x8,0x6,0x32,0x7,0xf2,0x6, +0xa3,0x8,0x71,0xa,0x16,0x8,0xd9,0xff,0x6c,0xf6,0x15,0xf3, +0x6a,0xf6,0xd1,0xfa,0x71,0xfc,0x31,0xfc,0xbf,0xfd,0x5b,0x2, +0x79,0x5,0x35,0x3,0x9e,0xfe,0x87,0xfd,0xf7,0x1,0x82,0x7, +0xea,0x6,0x19,0x0,0xff,0xfa,0x2e,0xfb,0x68,0xfc,0xd5,0xfb, +0x31,0xfb,0x4,0xfd,0xde,0x1,0xd,0x6,0x6c,0x4,0x76,0xfe, +0x41,0xfb,0x97,0xfd,0xf6,0x1,0x81,0x4,0x99,0x3,0x5d,0x0, +0x8d,0xfe,0x22,0xff,0xe3,0xfd,0xfc,0xf9,0xb4,0xf9,0xd,0x0, +0x7e,0x7,0xe,0xa,0xff,0x6,0x39,0x1,0xcf,0xfc,0x10,0xfb, +0x54,0xf9,0x1b,0xf7,0x6,0xf8,0x3d,0xfd,0x22,0x3,0x57,0x5, +0x28,0x2,0x94,0xfd,0x9c,0xfe,0xe,0x5,0xbd,0x8,0x9a,0x5, +0x2e,0x0,0xc0,0xfd,0xe,0xfe,0x9c,0xfc,0xa1,0xf7,0xe8,0xf3, +0x36,0xf6,0xd4,0xfc,0xf5,0x2,0x9c,0x5,0xec,0x4,0xd1,0x3, +0x9,0x4,0xbb,0x3,0xa8,0x1,0xf5,0xff,0x32,0x1,0x6b,0x4, +0x8e,0x4,0x60,0xfe,0x61,0xf6,0xd5,0xf3,0x18,0xf8,0x60,0xfe, +0x8c,0x1,0x7d,0x1,0x2,0x2,0xef,0x3,0xa0,0x4,0x3e,0x3, +0xd6,0x0,0xc9,0xff,0xf3,0x2,0x35,0x7,0x61,0x5,0x2,0xfe, +0x34,0xf8,0x33,0xf7,0x1b,0xf9,0x7c,0xfa,0x20,0xfa,0xda,0xfb, +0x41,0x2,0x65,0x8,0x94,0x8,0xf8,0x3,0x9a,0xff,0x6f,0xfe, +0x5b,0xff,0xb2,0xff,0x8e,0xfe,0x6f,0xfd,0xc9,0xfe,0xfd,0x1, +0x3,0x2,0x55,0xfd,0xb5,0xf9,0xf,0xfb,0xfd,0xfe,0xfb,0x1, +0x5f,0x2,0x97,0x1,0xb4,0x2,0x8f,0x4,0x62,0x3,0x90,0xff, +0x7f,0xfc,0xc2,0xfc,0x27,0x0,0x31,0x2,0x85,0xff,0xb7,0xfb, +0xe9,0xfb,0x61,0x0,0x51,0x5,0x6e,0x6,0x4,0x4,0x5b,0x2, +0xbb,0x1,0x6c,0xfe,0x5c,0xf8,0x1,0xf4,0x5f,0xf5,0xc0,0xfb, +0x1f,0x2,0x9a,0x5,0x68,0x7,0x5f,0x8,0x3d,0x8,0xe3,0x5, +0x65,0xff,0xd9,0xf7,0x29,0xf6,0x72,0xfa,0xa8,0xfe,0x8e,0xff, +0xb9,0xfd,0xd6,0xfb,0x82,0xfc,0x61,0xfe,0x4e,0xff,0xe5,0x0, +0x52,0x4,0x99,0x7,0x91,0x8,0xfa,0x5,0xaa,0x0,0x5a,0xfc, +0x9d,0xfb,0xe,0xfd,0xc5,0xfd,0xa7,0xfc,0x9e,0xfb,0xb7,0xfc, +0x7e,0xfe,0x6c,0xfe,0x93,0xfd,0x9e,0xff,0x8e,0x5,0x3e,0xb, +0xf6,0xb,0xed,0x7,0x4f,0x2,0x1b,0xfd,0x81,0xf9,0xcc,0xf7, +0x3f,0xf7,0xcf,0xf8,0xb6,0xfd,0xfe,0x2,0x1b,0x4,0xd7,0x0, +0x4e,0xfd,0x9d,0xfd,0xcd,0x1,0xc8,0x5,0x42,0x6,0xe2,0x3, +0xbc,0x0,0x91,0xfd,0x6f,0xfa,0x4e,0xf8,0xe6,0xf8,0x9c,0xfc, +0x9e,0x1,0x4b,0x5,0xa4,0x5,0xa4,0x2,0x16,0xff,0x9f,0xfd, +0x6f,0xfd,0xd7,0xfc,0xf8,0xfc,0xac,0xff,0xa9,0x3,0xef,0x4, +0x86,0x1,0xb,0xfd,0x79,0xfc,0x7e,0xff,0x57,0x2,0x1e,0x3, +0xb,0x2,0xe2,0x0,0x99,0x1,0x47,0x2,0xae,0xff,0xaf,0xfb, +0x48,0xfa,0x5,0xfc,0x45,0xff,0xad,0x1,0x9b,0x1,0xde,0x0, +0x69,0x1,0xa0,0x1,0x8c,0x0,0x45,0x0,0x1a,0x2,0x61,0x4, +0x8,0x4,0xff,0xff,0xf1,0xfa,0xff,0xf7,0x37,0xf8,0x1c,0xfb, +0x5e,0xfe,0xff,0xff,0x39,0x1,0x21,0x3,0x1,0x4,0xb3,0x2, +0x4f,0x0,0xf2,0xfe,0x7,0x0,0xe3,0x1,0xcd,0x1,0x2e,0x0, +0xf3,0xfe,0xc1,0xfe,0xd9,0xfe,0x69,0xfd,0x9e,0xfa,0xff,0xf9, +0x1f,0xfd,0x9d,0x1,0xd9,0x4,0x4d,0x5,0x69,0x3,0xd2,0x1, +0x8f,0x1,0x62,0x1,0x12,0x1,0x51,0x1,0x15,0x2,0x17,0x2, +0xaf,0xff,0x8c,0xfb,0x3e,0xf8,0x2b,0xf7,0x2e,0xf9,0x25,0xfe, +0x53,0x3,0x13,0x7,0x90,0x9,0xf8,0x8,0x55,0x4,0x48,0xfe, +0x88,0xf9,0x41,0xf8,0x60,0xfb,0x52,0xff,0x4a,0x0,0x41,0xff, +0x4a,0xfe,0x46,0xfe,0x7c,0xff,0x87,0x0,0xa4,0x0,0x66,0x1, +0xda,0x2,0xb7,0x2,0xc2,0xff,0x64,0xfb,0x58,0xf9,0x0,0xfc, +0xce,0x0,0xc,0x4,0xb,0x5,0x6f,0x4,0xb1,0x2,0xf3,0xff, +0x30,0xfc,0x89,0xf9,0x3,0xfb,0xf3,0xff,0xe2,0x4,0x10,0x7, +0x2f,0x5,0x73,0x0,0xfd,0xfb,0x6b,0xf9,0xd4,0xf8,0xe3,0xfa, +0xeb,0xff,0x3b,0x6,0x5f,0xa,0x83,0x9,0x97,0x4,0x77,0xff, +0x95,0xfc,0x84,0xfb,0xf4,0xfa,0x8c,0xfa,0x20,0xfb,0xf7,0xfc, +0xa5,0xfe,0xb3,0xfe,0x9e,0xfd,0xc7,0xfd,0x33,0x1,0x76,0x6, +0x5c,0x9,0xa5,0x7,0xf5,0x2,0x57,0xfe,0x84,0xfb,0xf,0xfa, +0x5e,0xf9,0x7d,0xfa,0x76,0xfd,0xb1,0xff,0xa2,0xff,0x69,0xfe, +0x88,0xfd,0x65,0xfe,0x66,0x1,0x9c,0x4,0x5e,0x6,0xe2,0x6, +0xfa,0x5,0x35,0x3,0x52,0xff,0x2d,0xfb,0x23,0xf8,0x56,0xf8, +0x94,0xfb,0x21,0xff,0x48,0x1,0x48,0x2,0xe6,0x2,0x3d,0x3, +0x6e,0x2,0x52,0x0,0x57,0xfe,0xd,0xfe,0x2b,0x0,0x1e,0x3, +0x2c,0x3,0x93,0xff,0xfc,0xfb,0xd2,0xfa,0xb2,0xfb,0xc3,0xfd, +0xb3,0xff,0x1d,0x1,0x2e,0x3,0xb8,0x4,0xfb,0x2,0xbc,0xfe, +0x10,0xfb,0xa5,0xf9,0xb5,0xfa,0x4b,0xfd,0x16,0x0,0xb4,0x2, +0x8b,0x4,0x45,0x4,0x80,0x1,0xc3,0xfd,0x16,0xfc,0x37,0xfe, +0xcd,0x1,0x23,0x3,0x64,0x1,0x42,0xfe,0x4,0xfc,0xe2,0xfb, +0xee,0xfc,0xb,0xfe,0xb2,0xff,0x60,0x2,0x10,0x5,0x4f,0x5, +0xad,0x1,0xfa,0xfc,0x8e,0xfb,0xf1,0xfd,0xc7,0x1,0xce,0x4, +0x7f,0x5,0xd,0x4,0x19,0x1,0xe4,0xfb,0xbc,0xf5,0x18,0xf3, +0x42,0xf6,0x49,0xfd,0x60,0x4,0xfd,0x7,0x82,0x7,0x34,0x5, +0xb7,0x2,0x4f,0x0,0x4c,0xfe,0x74,0xfd,0xc8,0xfe,0x3a,0x1, +0x22,0x1,0x30,0xfd,0x48,0xf8,0x7e,0xf5,0x69,0xf6,0xfa,0xfa, +0xfa,0x0,0x48,0x6,0x94,0x9,0x29,0x9,0x2e,0x5,0xb,0x0, +0x7f,0xfb,0xc3,0xf9,0xf8,0xfc,0x56,0x2,0xac,0x4,0xad,0x2, +0x15,0xfe,0x9e,0xf9,0x2c,0xf8,0xb4,0xf9,0x60,0xfc,0x68,0x0, +0x6e,0x5,0x35,0x8,0xd5,0x6,0xc2,0x2,0x93,0xfe,0x96,0xfc, +0x7a,0xfd,0x6f,0xff,0x5,0x0,0xe2,0xfe,0xfc,0xfd,0x5a,0xfe, +0x2d,0xfe,0x7d,0xfc,0xe0,0xfb,0x89,0xfe,0x9,0x3,0x1c,0x6, +0x6e,0x5,0x7c,0x1,0xf7,0xfc,0xb2,0xf9,0x11,0xf8,0x91,0xf8, +0x6f,0xfb,0x1d,0x0,0x33,0x5,0x15,0x8,0xc8,0x6,0x71,0x2, +0x2c,0xfe,0x59,0xfc,0xf7,0xfc,0xfd,0xfd,0x71,0xfe,0x7c,0xff, +0xd8,0x0,0xf2,0xff,0x22,0xfc,0x8d,0xf8,0xda,0xf8,0x72,0xfd, +0x7b,0x3,0xd8,0x7,0x24,0x9,0xe3,0x7,0xa9,0x5,0xf0,0x2, +0xe5,0xfe,0x69,0xfa,0xee,0xf7,0x58,0xf8,0xb5,0xfa,0x24,0xfd, +0xc4,0xfd,0x62,0xfd,0x7c,0xfe,0xdc,0x0,0xe1,0x2,0xc6,0x4, +0xc0,0x6,0x90,0x7,0x37,0x6,0x2c,0x2,0xf1,0xfb,0x91,0xf6, +0x3b,0xf5,0x3,0xf8,0xc6,0xfc,0xf7,0x0,0xba,0x2,0x46,0x2, +0xe5,0x0,0xab,0xfe,0x2,0xfc,0xc3,0xfb,0xe5,0xff,0xf9,0x5, +0x8a,0x9,0x13,0x8,0x5c,0x2,0xf0,0xfb,0x4e,0xf8,0xeb,0xf7, +0x81,0xf9,0xc0,0xfc,0x56,0x1,0x1b,0x5,0x8f,0x5,0x53,0x2, +0x88,0xfd,0x66,0xfa,0x4b,0xfb,0xb4,0xff,0x63,0x4,0xbc,0x6, +0x78,0x6,0xaf,0x3,0x9e,0xfe,0x4f,0xf9,0x82,0xf6,0xef,0xf7, +0xac,0xfd,0xa6,0x4,0x9,0x8,0x34,0x6,0x80,0x1,0xf3,0xfc, +0xb3,0xfa,0xd,0xfb,0xb5,0xfc,0x9,0xff,0x89,0x1,0x36,0x2, +0x1b,0x0,0xf0,0xfc,0xf7,0xfa,0x10,0xfc,0xbd,0x0,0x3,0x6, +0xff,0x7,0x63,0x6,0xf4,0x2,0x4f,0xfe,0xb,0xf9,0x41,0xf5, +0x46,0xf5,0xe7,0xf9,0xe,0x1,0x4d,0x6,0xb5,0x6,0x71,0x3, +0xa2,0xff,0x88,0xfd,0xde,0xfd,0xff,0xff,0xd3,0x2,0xc0,0x5, +0xa5,0x7,0x58,0x6,0xf,0x1,0xa,0xfa,0xf9,0xf4,0x4b,0xf4, +0xb4,0xf7,0xd3,0xfc,0x58,0x1,0x58,0x4,0x77,0x5,0x32,0x4, +0x53,0x1,0xd2,0xff,0x9d,0x1,0xfb,0x4,0x1,0x7,0xf7,0x5, +0x4b,0x1,0xb4,0xfa,0xe2,0xf5,0x80,0xf4,0x94,0xf5,0xa4,0xf8, +0x81,0xfd,0x8c,0x2,0x9,0x6,0x16,0x7,0x4d,0x5,0xed,0x1, +0xd1,0xff,0xe,0x0,0x9,0x1,0x87,0x1,0x64,0x1,0x16,0x0, +0x9d,0xfd,0x13,0xfb,0x25,0xf9,0xd0,0xf8,0xd9,0xfb,0xa2,0x1, +0xab,0x6,0x2c,0x8,0xe2,0x5,0xb6,0x1,0x26,0xfe,0xd1,0xfb, +0x94,0xfa,0xad,0xfb,0x5d,0xff,0x7c,0x3,0xb8,0x5,0xa4,0x4, +0xb3,0x0,0x3b,0xfd,0xef,0xfc,0xfa,0xfe,0x76,0x1,0x53,0x3, +0x97,0x3,0x98,0x1,0xa8,0xfd,0x8,0xf9,0xf8,0xf5,0xd8,0xf6, +0xee,0xfb,0x74,0x2,0x2e,0x7,0x24,0x9,0x63,0x8,0xea,0x4, +0x4e,0x0,0xcd,0xfc,0x1d,0xfb,0x9f,0xfb,0x4d,0xfe,0xdc,0x0, +0xdc,0x0,0x4b,0xfe,0xea,0xfa,0x15,0xf9,0x1d,0xfa,0x49,0xfd, +0x85,0x1,0xe5,0x5,0xc4,0x8,0xf7,0x8,0x7e,0x6,0x17,0x2, +0xcd,0xfd,0xf3,0xfb,0x22,0xfd,0xfa,0xff,0x9b,0x1,0x3,0x0, +0x5f,0xfc,0xf8,0xf8,0x69,0xf7,0x31,0xf9,0x1c,0xfe,0x30,0x4, +0xda,0x9,0xb6,0xc,0x5c,0xa,0x81,0x4,0xba,0xfe,0x9f,0xfa, +0x46,0xf9,0x2,0xfb,0x3,0xfe,0xa5,0x0,0xc0,0x1,0x9,0x0, +0x3c,0xfc,0xe2,0xf8,0x64,0xf8,0x63,0xfc,0x4e,0x3,0xa6,0x8, +0xf1,0x9,0x97,0x7,0xcf,0x2,0xeb,0xfd,0xe6,0xfa,0xd,0xfa, +0xde,0xfb,0xf,0x0,0xab,0x3,0x38,0x4,0xc9,0x1,0xb4,0xfd, +0x50,0xfa,0xd2,0xf9,0x4e,0xfc,0x66,0x0,0x60,0x4,0x8a,0x6, +0x48,0x6,0xde,0x3,0x1f,0x0,0x5b,0xfd,0x86,0xfd,0xb9,0xff, +0x10,0x2,0x7e,0x3,0x20,0x3,0x9,0x1,0x7c,0xfe,0x30,0xfc, +0xec,0xfa,0x33,0xfc,0xba,0xff,0xf3,0x2,0xed,0x3,0x4e,0x2, +0xf6,0xfe,0x1c,0xfc,0xbd,0xfb,0xf9,0xfd,0xd0,0x1,0xe5,0x5, +0x7e,0x8,0x68,0x8,0xcd,0x5,0x76,0x1,0x20,0xfc,0x5d,0xf7, +0x87,0xf5,0x54,0xf7,0x11,0xfb,0xf5,0xfe,0xdf,0x1,0xd1,0x2, +0x32,0x2,0x9f,0x1,0x17,0x2,0x12,0x4,0x22,0x7,0x41,0x9, +0xf5,0x8,0x1c,0x6,0xb7,0x0,0x7c,0xfa,0x5a,0xf6,0xb,0xf5, +0x38,0xf6,0xf,0xfa,0x13,0xff,0x18,0x3,0x5e,0x5,0x49,0x5, +0x78,0x3,0x8b,0x2,0x69,0x3,0x0,0x5,0xcb,0x6,0x6c,0x7, +0xd,0x5,0x66,0x0,0x7e,0xfb,0x8f,0xf7,0xe7,0xf5,0xb5,0xf7, +0x92,0xfc,0x29,0x2,0x5f,0x5,0xc5,0x4,0x88,0x1,0x18,0xfe, +0xd5,0xfc,0x79,0xfe,0xe1,0x1,0xe4,0x5,0x2,0x9,0xd0,0x8, +0xaf,0x4,0xb7,0xfe,0xcf,0xf9,0x87,0xf8,0x2e,0xfb,0x43,0xff, +0x8e,0x2,0xfc,0x3,0x62,0x2,0x38,0xfe,0x39,0xfa,0x1e,0xf9, +0x28,0xfc,0x24,0x2,0xca,0x7,0x8f,0xa,0xcd,0x9,0x4e,0x6, +0xe3,0x1,0x34,0xfe,0xae,0xfc,0x3b,0xfe,0x24,0x1,0xb5,0x2, +0x4c,0x2,0xab,0xff,0x1e,0xfb,0xb9,0xf7,0xe8,0xf7,0xfb,0xfa, +0xe2,0xff,0x27,0x5,0x97,0x8,0x78,0x9,0xe6,0x7,0x80,0x4, +0x8e,0x1,0x4d,0x0,0xd9,0xff,0xff,0xff,0x7b,0x0,0xed,0xff, +0xed,0xfd,0xa,0xfb,0x93,0xf8,0xb6,0xf8,0xb8,0xfb,0xdc,0xff, +0xfd,0x3,0x8f,0x6,0x1b,0x6,0x14,0x4,0x75,0x2,0x38,0x1, +0xe3,0xff,0x8e,0xfe,0x80,0xfe,0x7b,0x0,0x5c,0x1,0xc3,0xfe, +0xec,0xfb,0xeb,0xfa,0x1,0xfa,0x44,0xfa,0xdd,0xfd,0xe6,0x2, +0xc6,0x6,0x5e,0x8,0x63,0x7,0xd5,0x5,0x17,0x5,0x2e,0x3, +0xb8,0xff,0x60,0xfd,0x39,0xfd,0x66,0xfe,0xa4,0xff,0x1f,0xff, +0x13,0xfc,0x26,0xf8,0x7e,0xf6,0xcb,0xf9,0xe9,0x0,0x6c,0x7, +0xf1,0xa,0x8a,0xb,0xee,0x8,0x42,0x4,0xcb,0x0,0xc,0x0, +0x54,0x0,0xc4,0xff,0x59,0xff,0xc2,0x0,0xad,0x1,0xbf,0xfe, +0xa7,0xf9,0x5d,0xf6,0xf5,0xf6,0x32,0xfc,0x7c,0x3,0xb0,0x7, +0xa2,0x7,0x1a,0x5,0x44,0x1,0x92,0xff,0xbc,0x2,0x2a,0x7, +0x3,0x9,0x22,0x9,0xf7,0x7,0x31,0x4,0x44,0xfe,0xba,0xf8, +0xa,0xf6,0x4b,0xf6,0x9c,0xf8,0xea,0xfd,0x94,0x4,0xb6,0x6, +0xe2,0x2,0x2a,0xfe,0x10,0xfd,0x4f,0x1,0x19,0x9,0xa9,0xe, +0x9a,0xe,0x83,0xa,0x7d,0x4,0x5e,0xfe,0xc9,0xf9,0x90,0xf6, +0x34,0xf5,0x3c,0xf7,0x88,0xfb,0x83,0xff,0xb4,0x1,0xb6,0x1, +0x11,0x1,0xb5,0x1,0xc8,0x3,0x96,0x7,0x59,0xc,0xba,0xd, +0x3b,0x9,0x37,0x2,0xc,0xfd,0x6,0xfb,0x10,0xfb,0xc7,0xfb, +0xe7,0xfc,0x20,0xfe,0xd0,0xfe,0x6b,0xff,0xff,0xff,0xdd,0xff, +0x23,0x0,0x12,0x2,0x2f,0x5,0xff,0x8,0x92,0xb,0xce,0x9, +0xbe,0x4,0x48,0x0,0x2,0xfe,0xcb,0xfd,0x92,0xfe,0xa1,0xfe, +0x6f,0xfe,0x19,0xff,0x8b,0xff,0x13,0xff,0x70,0xfe,0x3c,0xfe, +0x64,0xff,0xe1,0x1,0x2c,0x4,0x2d,0x6,0x6,0x8,0xeb,0x7, +0xa2,0x5,0x75,0x3,0x5c,0x2,0x37,0x1,0xfa,0xfe,0x70,0xfc, +0x90,0xfb,0x43,0xfc,0xe7,0xfc,0x36,0xfd,0x5e,0xfd,0xf1,0xfd, +0x73,0x0,0xf,0x4,0xd6,0x6,0x8b,0x9,0x6e,0xb,0x68,0x9, +0xd2,0x4,0x7a,0x1,0xca,0xff,0xc,0xff,0xb9,0xfe,0xc9,0xfd, +0x17,0xfd,0xcb,0xfd,0x79,0xfe,0x9b,0xfd,0x9b,0xfb,0x64,0xfb, +0x48,0x0,0x67,0x7,0x83,0xa,0x5,0xa,0x70,0x9,0x30,0x8, +0xc5,0x5,0x3a,0x3,0xae,0x0,0x89,0xff,0x6,0x0,0xe9,0xfe, +0xeb,0xfb,0xe2,0xf9,0x8,0xf9,0x1e,0xf9,0xd6,0xfa,0xb5,0xfd, +0x2d,0x2,0x46,0x8,0x9d,0xc,0xd5,0xc,0xe1,0x9,0xb4,0x5, +0x4c,0x3,0x89,0x3,0x49,0x3,0x58,0x1,0x11,0xff,0x8c,0xfc, +0x59,0xfa,0xd6,0xf8,0x2f,0xf7,0xba,0xf7,0xaf,0xfc,0xca,0x2, +0x4d,0x7,0x6d,0xa,0x26,0xb,0x98,0x9,0x8e,0x7,0x60,0x5, +0x28,0x4,0x97,0x4,0x49,0x4,0x76,0x2,0xe1,0xff,0xee,0xfb, +0xb9,0xf8,0x93,0xf8,0x50,0xf9,0x16,0xfb,0xf7,0xff,0xc4,0x4, +0x10,0x7,0x18,0x8,0xd2,0x6,0x35,0x4,0x2c,0x4,0x37,0x5, +0xcd,0x4,0x13,0x5,0xe5,0x5,0x96,0x4,0xfa,0x0,0x57,0xfc, +0xc7,0xf9,0x51,0xfb,0x5,0xfd,0x86,0xfc,0x29,0xfd,0x5e,0xff, +0xe6,0x0,0xa6,0x1,0x75,0x1,0x1a,0x2,0xa0,0x6,0xd2,0xb, +0xa,0xd,0x5b,0xb,0x1b,0x8,0xca,0x3,0x22,0x0,0xf8,0xfb, +0x38,0xf7,0x8e,0xf6,0x26,0xfa,0x1b,0xfd,0x39,0xfe,0xc1,0xfe, +0xe6,0xff,0xe,0x3,0x43,0x6,0x36,0x7,0xe,0x8,0x1b,0xa, +0x86,0xb,0xb8,0xa,0x90,0x6,0xd,0x1,0x25,0xfe,0x4b,0xfc, +0x51,0xf9,0x92,0xf8,0x46,0xfa,0x7,0xfb,0xfe,0xfb,0x55,0xfe, +0x99,0x0,0xdf,0x3,0xdc,0x7,0xd7,0x9,0x8a,0xa,0x6c,0xa, +0xd3,0x7,0x7d,0x4,0x1a,0x2,0x88,0xff,0x9e,0xfd,0xac,0xfc, +0x38,0xfb,0x18,0xfb,0x27,0xfd,0x42,0xfe,0x9,0xfe,0x9,0xfe, +0x93,0xfe,0x85,0x1,0x3b,0x6,0x33,0x8,0x28,0x8,0xb9,0x9, +0xf6,0xa,0x36,0x9,0x32,0x5,0x23,0x0,0x33,0xfc,0xb3,0xfa, +0xea,0xf9,0xb5,0xf9,0x8e,0xfb,0x52,0xfe,0x58,0x0,0x32,0x1, +0x45,0x1,0xd5,0x2,0x39,0x6,0x69,0x8,0xff,0x8,0xf,0x9, +0x40,0x7,0x41,0x4,0x3,0x2,0x6f,0xff,0x2f,0xfd,0x99,0xfd, +0x83,0xfe,0xc6,0xfd,0x22,0xfd,0xe5,0xfc,0x2e,0xfc,0x19,0xfc, +0xc8,0xfd,0xc4,0x1,0xe4,0x6,0x74,0x9,0xcd,0x8,0xe5,0x7, +0xf5,0x6,0xff,0x4,0xe4,0x2,0xcd,0x0,0x92,0xff,0x9b,0x0, +0x20,0x1,0x56,0xfe,0xa7,0xfa,0xa8,0xf8,0xd0,0xf8,0x5e,0xfb, +0xcc,0xfe,0x7,0x2,0x30,0x6,0xbb,0x9,0x23,0xa,0xd1,0x8, +0x16,0x7,0x60,0x5,0xf4,0x5,0x71,0x7,0x1b,0x5,0x18,0x0, +0x93,0xfc,0x1b,0xfa,0x56,0xf7,0x7a,0xf5,0xf6,0xf5,0xb9,0xf9, +0xef,0xff,0x83,0x5,0x6c,0x8,0xef,0x8,0xd8,0x8,0x1a,0xa, +0x1d,0xb,0xcc,0x8,0x8,0x5,0x9,0x3,0x1f,0x1,0xed,0xfc, +0x87,0xf7,0xc3,0xf3,0x9b,0xf4,0xb9,0xf9,0x75,0xfe,0x97,0x0, +0x8c,0x2,0x77,0x5,0x68,0x7,0xd7,0x6,0x52,0x5,0x8,0x6, +0x48,0x8,0xf9,0x7,0xe,0x5,0x74,0x2,0x3f,0x0,0x4,0xfe, +0x39,0xfc,0x46,0xfa,0x8d,0xf9,0xe7,0xfb,0x4f,0xfe,0x8b,0xfe, +0xa8,0xff,0xb9,0x2,0x2b,0x5,0xfc,0x5,0xbf,0x5,0xfd,0x5, +0x1,0x8,0x0,0x9,0x4,0x6,0xbf,0x1,0xa3,0xff,0x22,0xff, +0xa,0xfe,0x5e,0xfb,0x76,0xf9,0x4c,0xfb,0x2e,0xfe,0xfa,0xfd, +0xc8,0xfc,0x32,0xfe,0xfd,0x1,0xf3,0x5,0x26,0x7,0xb1,0x5, +0x3d,0x6,0x27,0x9,0xf8,0x8,0xbb,0x4,0x47,0x0,0x63,0xfd, +0x20,0xfc,0x93,0xfb,0x41,0xfa,0x73,0xf9,0xc,0xfb,0xd1,0xfd, +0x31,0x0,0xc2,0x1,0xb7,0x2,0x85,0x4,0x11,0x7,0xf8,0x7, +0x59,0x7,0xdc,0x6,0x18,0x6,0xb9,0x4,0x5,0x3,0x8c,0x0, +0xa,0xfe,0x79,0xfc,0x67,0xfb,0xf3,0xfa,0xe9,0xfa,0x67,0xfa, +0x22,0xfb,0x77,0xfe,0x2c,0x2,0xa,0x5,0x8b,0x7,0x19,0x9, +0x28,0xa,0xc0,0xa,0x79,0x8,0xd6,0x3,0xe3,0xff,0xcd,0xfc, +0x85,0xfa,0xe7,0xf9,0x9a,0xf9,0x62,0xf9,0xbc,0xfa,0x6b,0xfc, +0xac,0xfd,0xff,0xff,0x97,0x2,0xa7,0x4,0x8c,0x7,0xf5,0x9, +0xa1,0x9,0x9d,0x7,0x1b,0x5,0x92,0x2,0xd7,0x0,0xea,0xfe, +0x20,0xfc,0x7c,0xfa,0x90,0xfa,0x1a,0xfb,0xc0,0xfb,0x43,0xfc, +0x79,0xfd,0x1b,0x1,0x4c,0x5,0xb,0x7,0x2a,0x7,0x24,0x7, +0xde,0x6,0x38,0x6,0x41,0x4,0x18,0x1,0x56,0xff,0x44,0xff, +0x85,0xfe,0xe2,0xfc,0xa5,0xfb,0xa5,0xfb,0xd,0xfd,0x34,0xfe, +0x42,0xfe,0x30,0xff,0x41,0x1,0xc1,0x2,0x5,0x4,0x4c,0x5, +0x5e,0x5,0xa1,0x4,0x26,0x4,0xe6,0x3,0xaa,0x3,0x83,0x2, +0xea,0xff,0x4d,0xfd,0x4d,0xfb,0x9d,0xf9,0xf8,0xf8,0x3d,0xf9, +0x6b,0xfa,0x53,0xfe,0x82,0x3,0xcd,0x5,0xb7,0x5,0x2f,0x6, +0x45,0x7,0x21,0x8,0x7e,0x7,0x25,0x4,0x8a,0x0,0x38,0xff, +0x5a,0xfe,0x83,0xfc,0x15,0xfb,0xc9,0xfa,0x82,0xfb,0x74,0xfc, +0x54,0xfc,0xab,0xfc,0x15,0x0,0xe6,0x4,0x92,0x7,0x67,0x7, +0x17,0x6,0xb4,0x5,0x55,0x6,0x79,0x5,0x16,0x2,0x6a,0xfe, +0x77,0xfc,0x9,0xfc,0xa0,0xfb,0x66,0xfa,0xab,0xf9,0xd8,0xfa, +0x34,0xfd,0xb1,0xff,0xd6,0x1,0x12,0x3,0xc3,0x3,0x7b,0x4, +0xab,0x4,0x9e,0x4,0x5e,0x5,0x7,0x6,0x13,0x5,0x92,0x2, +0x6f,0xff,0xc6,0xfc,0xe1,0xfa,0xfe,0xf8,0xe0,0xf7,0x39,0xf9, +0x52,0xfc,0x7a,0xff,0x3e,0x2,0x3a,0x4,0x5c,0x5,0x25,0x6, +0x2f,0x6,0x97,0x5,0xc0,0x5,0x18,0x6,0x58,0x4,0x64,0x0, +0x83,0xfc,0xde,0xfa,0x54,0xfb,0x90,0xfb,0xdc,0xfa,0x61,0xfb, +0xcf,0xfd,0x51,0x0,0xa4,0x1,0xa9,0x1,0x75,0x1,0x10,0x3, +0xd9,0x5,0xa2,0x6,0xf6,0x4,0x3a,0x3,0x53,0x2,0x25,0x1, +0xb2,0xfe,0xc7,0xfb,0xdc,0xfa,0x8d,0xfc,0x0,0xfe,0x68,0xfd, +0x7c,0xfc,0x14,0xfd,0xee,0xfe,0xdb,0x0,0x17,0x2,0xfa,0x2, +0x68,0x4,0xfc,0x5,0x28,0x6,0x84,0x4,0x5b,0x2,0xb9,0x0, +0x70,0xff,0x2a,0xfe,0x1e,0xfd,0x99,0xfc,0xe8,0xfc,0xb6,0xfd, +0xb0,0xfd,0xde,0xfc,0x71,0xfd,0xf,0x0,0xd4,0x2,0x9c,0x4, +0x5a,0x5,0xe6,0x4,0xf,0x4,0xc5,0x3,0x5b,0x3,0x35,0x2, +0x9a,0x0,0x55,0xfe,0xca,0xfb,0x8a,0xfa,0x1,0xfb,0x14,0xfc, +0xc2,0xfc,0xe4,0xfc,0xac,0xfd,0x54,0x0,0x94,0x3,0x2a,0x5, +0x16,0x5,0xc4,0x4,0xb6,0x4,0x1b,0x4,0x6,0x2,0x50,0xff, +0xcf,0xfd,0x66,0xfd,0xe3,0xfc,0x8f,0xfc,0xec,0xfc,0x78,0xfd, +0xcf,0xfd,0xaf,0xfd,0x59,0xfd,0x8a,0xfe,0x10,0x2,0x76,0x5, +0xb,0x6,0x6a,0x4,0x43,0x3,0xba,0x3,0x14,0x4,0x7c,0x2, +0xb3,0xff,0x9b,0xfd,0xbf,0xfc,0x59,0xfc,0x94,0xfb,0xd3,0xfa, +0x94,0xfb,0xf0,0xfd,0x11,0x0,0x4f,0x1,0xe4,0x2,0xcd,0x4, +0x33,0x5,0xbd,0x3,0x7b,0x2,0x70,0x2,0x35,0x2,0x8,0x1, +0xc2,0xff,0x9f,0xfe,0x6a,0xfd,0x6f,0xfc,0x6d,0xfb,0x72,0xfa, +0xdd,0xfa,0x8,0xfd,0xb5,0xff,0x28,0x2,0xdc,0x3,0x6b,0x4, +0x6b,0x4,0xd9,0x3,0x2d,0x2,0xd1,0x0,0xe8,0x0,0xcd,0x0, +0x81,0xff,0x5d,0xfe,0x47,0xfe,0xe2,0xfe,0x2c,0xff,0x23,0xfe, +0xdc,0xfc,0x77,0xfd,0x3f,0xff,0xd4,0xff,0x4b,0xff,0x9e,0xff, +0x8b,0x1,0xe2,0x3,0x25,0x5,0x1f,0x5,0x7a,0x4,0x6f,0x3, +0xbb,0x1,0x48,0xff,0xb9,0xfc,0x67,0xfb,0xd0,0xfb,0x98,0xfc, +0xa7,0xfc,0xd4,0xfc,0x2c,0xfe,0xfd,0xff,0xca,0x0,0xb5,0x0, +0x51,0x1,0xcb,0x2,0xbb,0x3,0xab,0x3,0x1d,0x3,0x46,0x2, +0x75,0x1,0x89,0x0,0x7c,0xfe,0xbe,0xfb,0x6d,0xfa,0xfd,0xfa, +0xc8,0xfb,0x40,0xfc,0xbb,0xfd,0xa3,0x0,0xff,0x2,0x52,0x3, +0xfe,0x2,0x5a,0x3,0x6d,0x3,0x87,0x2,0x58,0x1,0x5a,0x0, +0xf0,0xff,0xe9,0xff,0xeb,0xfe,0x3e,0xfd,0x6,0xfd,0x14,0xfe, +0x62,0xfe,0x6,0xfe,0x3c,0xfe,0x2a,0xff,0x89,0x0,0xd5,0x1, +0x59,0x2,0x58,0x2,0x71,0x2,0x77,0x2,0xb,0x2,0xb,0x1, +0x91,0xff,0x65,0xfe,0xf5,0xfd,0x7a,0xfd,0xcc,0xfc,0x1d,0xfd, +0x9e,0xfe,0xbd,0xff,0x89,0xff,0xf8,0xfe,0x4b,0xff,0x2a,0x0, +0x47,0x0,0xd1,0xff,0x84,0x0,0x6b,0x2,0x48,0x3,0x3d,0x2, +0xd2,0x0,0xcd,0xff,0xb3,0xfe,0xde,0xfd,0xb9,0xfd,0x96,0xfd, +0x6e,0xfd,0x8,0xfe,0xeb,0xfe,0x37,0xff,0x72,0xff,0x47,0x0, +0x84,0x1,0xd9,0x2,0x9d,0x3,0x3e,0x3,0x81,0x2,0xcb,0x1, +0xcb,0xff,0xf6,0xfc,0x61,0xfc,0x85,0xfe,0xf2,0xff,0xde,0xfe, +0x4b,0xfd,0x43,0xfd,0x54,0xfe,0x1a,0xff,0x6f,0xff,0x2c,0x0, +0x78,0x1,0xa1,0x2,0xfe,0x2,0x42,0x2,0xfd,0x0,0x33,0x0, +0x87,0xff,0x34,0xfe,0x51,0xfd,0xe9,0xfd,0xb2,0xfe,0x19,0xfe, +0x73,0xfc,0xa6,0xfb,0x45,0xfd,0x6,0x0,0x2b,0x1,0x0,0x1, +0xab,0x1,0xda,0x2,0x9,0x3,0x7,0x2,0x6e,0x0,0x8a,0xff, +0xf1,0xff,0xc8,0xff,0x31,0xfe,0x68,0xfd,0x31,0xfe,0x66,0xfe, +0x41,0xfd,0x96,0xfc,0x17,0xfe,0x14,0x1,0xe4,0x2,0x32,0x2, +0xce,0x0,0xb9,0x0,0x65,0x1,0xeb,0x0,0xa,0xff,0x2a,0xfe, +0xcf,0xff,0xa4,0x1,0x8,0x1,0xe7,0xfe,0x9b,0xfd,0xac,0xfd, +0xdd,0xfd,0x55,0xfd,0x49,0xfd,0xab,0xfe,0xde,0xff,0xab,0xff, +0x40,0xff,0xb0,0xff,0x3,0x1,0x6a,0x2,0x47,0x2,0xb2,0x0, +0x73,0xff,0xd2,0xfe,0x88,0xfe,0xcd,0xfe,0x83,0xfe,0x96,0xfd, +0xee,0xfd,0xa6,0xfe,0xd9,0xfd,0x77,0xfd,0xf9,0xfe,0x69,0x0, +0xc9,0x0,0xc1,0x0,0xd6,0x0,0xb4,0x1,0xbc,0x2,0x65,0x2, +0x47,0x1,0x70,0x0,0x1c,0xff,0x1b,0xfd,0xb0,0xfb,0xf3,0xfb, +0xb0,0xfd,0x1f,0xff,0x73,0xff,0xef,0xff,0x8a,0x0,0x7e,0x0, +0xde,0x0,0x48,0x1,0xf7,0xff,0xb5,0xfe,0xa5,0xff,0xc0,0x0, +0x3c,0x0,0x18,0xff,0x54,0xfe,0x3e,0xfe,0x5d,0xfe,0xd2,0xfd, +0x70,0xfd,0x5d,0xfe,0x9e,0xff,0xb7,0xff,0xac,0xfe,0x20,0xfe, +0x6f,0xff,0xeb,0x0,0x8c,0x0,0xcf,0xff,0x22,0x0,0x67,0x0, +0x31,0x0,0xa5,0xff,0x86,0xfe,0x27,0xfe,0x20,0xff,0xc3,0xff, +0xf6,0xff,0x68,0x0,0xe9,0xff,0x78,0xfe,0x7b,0xfd,0xe8,0xfc, +0x19,0xfd,0xff,0xfe,0x4a,0x1,0x64,0x2,0x96,0x2,0x44,0x2, +0x81,0x1,0x73,0x0,0x30,0xff,0x9f,0xfe,0x9,0xff,0xb9,0xfe, +0x37,0xfd,0x46,0xfc,0x5e,0xfc,0x9d,0xfc,0x4,0xfd,0xfe,0xfd, +0xb0,0xff,0xfa,0x1,0xd8,0x3,0x3,0x4,0x87,0x2,0x9b,0x0, +0x1b,0xff,0xf4,0xfd,0x2a,0xfd,0x49,0xfd,0x4,0xfe,0x55,0xfe, +0xf3,0xfd,0x24,0xfd,0x59,0xfc,0x9a,0xfc,0x39,0xfe,0x1a,0x0, +0x56,0x1,0xd2,0x1,0xdc,0x1,0x1d,0x2,0x44,0x2,0x36,0x1, +0xab,0xff,0x4a,0xff,0x7d,0xff,0xf2,0xfe,0x1b,0xfe,0xc5,0xfd, +0x92,0xfd,0xef,0xfc,0x18,0xfc,0x2e,0xfc,0xed,0xfd,0x42,0x0, +0xaa,0x1,0x37,0x2,0x8e,0x2,0x89,0x2,0x1,0x2,0x23,0x1, +0xb,0x0,0x1,0xff,0x3a,0xfe,0x65,0xfd,0x97,0xfc,0x60,0xfc, +0x9c,0xfc,0xc7,0xfc,0xff,0xfc,0x99,0xfd,0xda,0xfe,0xea,0x0, +0xc7,0x2,0xf4,0x2,0xb5,0x1,0x81,0x0,0xb4,0xff,0xc3,0xfe, +0xae,0xfd,0x21,0xfd,0xb7,0xfd,0xe3,0xfe,0x4a,0xff,0xdc,0xfe, +0xcd,0xfe,0x3d,0xff,0x54,0xff,0x1a,0xff,0x35,0xff,0xc4,0xff, +0x37,0x0,0xc9,0xff,0x63,0xfe,0x4d,0xfd,0xc2,0xfd,0x21,0xff, +0x51,0x0,0x87,0x1,0xb6,0x2,0xe7,0x2,0x9,0x2,0x9a,0x0, +0xcc,0xfe,0x11,0xfd,0xca,0xfb,0x48,0xfb,0xda,0xfb,0xb8,0xfc, +0xd,0xfd,0x8f,0xfd,0xce,0xfe,0x1a,0x0,0x68,0x1,0x76,0x3, +0x70,0x5,0x6b,0x5,0x62,0x3,0x9d,0x0,0x9a,0xfd,0x0,0xfb, +0x87,0xf9,0x8,0xf9,0x96,0xf9,0x0,0xfb,0x84,0xfc,0x5d,0xfe, +0x79,0x0,0xeb,0x1,0xf2,0x2,0xe6,0x3,0x60,0x4,0x55,0x4, +0x7a,0x3,0x6f,0x1,0x8c,0xfe,0x93,0xfb,0xa1,0xf9,0x2d,0xf9, +0xea,0xf9,0xe9,0xfb,0x5c,0xfe,0xf2,0xff,0xfd,0x0,0xa6,0x1, +0x98,0x1,0xbb,0x1,0x64,0x2,0xa8,0x2,0x1c,0x2,0xc7,0x0, +0x15,0xff,0xb2,0xfd,0xb6,0xfc,0xf5,0xfb,0xae,0xfb,0x95,0xfc, +0x70,0xfe,0xc2,0xff,0x38,0x0,0x47,0x0,0xbf,0xff,0x5c,0xff, +0x56,0xff,0xcd,0xfe,0xe1,0xfe,0x1d,0x0,0x86,0x0,0xde,0xff, +0xf7,0xfe,0xd6,0xfd,0x8b,0xfd,0x79,0xfe,0x6e,0xff,0x8,0x0, +0x34,0x0,0xd1,0xff,0x39,0xff,0x67,0xfe,0x8d,0xfd,0x3b,0xfd, +0x8a,0xfd,0x52,0xfe,0x10,0xff,0xa6,0xff,0x81,0x0,0x4,0x1, +0xcb,0x0,0xa6,0x0,0xbd,0x0,0xe6,0x0,0xc,0x1,0xa5,0x0, +0xd6,0xff,0xd6,0xfe,0x3b,0xfd,0x80,0xfb,0xc1,0xfa,0x9f,0xfb, +0x73,0xfd,0x9c,0xfe,0x65,0xff,0xfc,0x0,0x64,0x2,0xe0,0x2, +0xbe,0x2,0xe9,0x1,0x2d,0x1,0xc2,0x0,0x95,0xff,0x1e,0xfe, +0xdf,0xfc,0x71,0xfb,0xc0,0xfa,0xfa,0xfa,0x23,0xfb,0xfe,0xfb, +0x63,0xfe,0x3d,0x1,0x13,0x3,0x6b,0x3,0xc,0x3,0xb0,0x2, +0x13,0x2,0xe2,0x0,0x52,0xff,0x37,0xfe,0xcd,0xfd,0x16,0xfd, +0x21,0xfc,0xc8,0xfb,0xe6,0xfb,0xbd,0xfc,0x68,0xfe,0x7,0x0, +0x98,0x1,0xe5,0x2,0x10,0x3,0x96,0x2,0xc6,0x1,0x54,0x0, +0x3,0xff,0x49,0xfe,0xa,0xfe,0x2f,0xfe,0xb,0xfe,0xb5,0xfd, +0xb8,0xfd,0xb9,0xfd,0xff,0xfd,0xe1,0xfe,0xb9,0xff,0x7e,0x0, +0x2f,0x1,0x16,0x1,0x3d,0x0,0x25,0xff,0x3b,0xfe,0xfb,0xfd, +0x5d,0xfe,0x10,0xff,0xad,0xff,0xb9,0xff,0x6f,0xff,0x45,0xff, +0x1e,0xff,0xc0,0xfe,0x5d,0xfe,0x94,0xfe,0x37,0xff,0x32,0xff, +0xb2,0xfe,0x7d,0xfe,0x65,0xfe,0x83,0xfe,0xd,0xff,0xc1,0xff, +0xc6,0x0,0xe4,0x1,0x52,0x2,0x7,0x2,0xef,0x0,0x1e,0xff, +0xe4,0xfd,0xef,0xfd,0x32,0xfe,0xe2,0xfd,0x71,0xfd,0x69,0xfd, +0x97,0xfd,0xc4,0xfd,0x64,0xfe,0xc7,0xff,0x72,0x1,0xa8,0x2, +0xfd,0x2,0x92,0x2,0xbd,0x1,0xa1,0x0,0x58,0xff,0x2,0xfe, +0xd5,0xfc,0x48,0xfc,0x6c,0xfc,0xba,0xfc,0x7,0xfd,0x70,0xfd, +0xd4,0xfd,0x76,0xfe,0xea,0xff,0xce,0x1,0xd,0x3,0x4b,0x3, +0xb6,0x2,0x59,0x1,0xbe,0xff,0xa4,0xfe,0xf3,0xfd,0x4d,0xfd, +0xe0,0xfc,0xda,0xfc,0x25,0xfd,0xa8,0xfd,0x48,0xfe,0x1a,0xff, +0x43,0x0,0x43,0x1,0x84,0x1,0x70,0x1,0xa3,0x1,0xc6,0x1, +0x2a,0x1,0xc3,0xff,0x3e,0xfe,0x92,0xfd,0xef,0xfd,0x82,0xfe, +0xb7,0xfe,0xd7,0xfe,0x2f,0xff,0xa9,0xff,0xfa,0xff,0xdf,0xff, +0x89,0xff,0x5a,0xff,0x2e,0xff,0xdc,0xfe,0xbd,0xfe,0xf3,0xfe, +0x45,0xff,0x9e,0xff,0xbe,0xff,0x5f,0xff,0x24,0xff,0xd0,0xff, +0xd5,0x0,0x18,0x1,0x6f,0x0,0x5d,0xff,0x47,0xfe,0x62,0xfd, +0xd6,0xfc,0xb9,0xfc,0x25,0xfd,0x24,0xfe,0x58,0xff,0x42,0x0, +0xf7,0x0,0xac,0x1,0xfe,0x1,0xb1,0x1,0x57,0x1,0x3e,0x1, +0xe5,0x0,0xf0,0xff,0xc4,0xfe,0xd8,0xfd,0xfa,0xfc,0xfc,0xfb, +0xcf,0xfb,0x1d,0xfd,0xbd,0xfe,0xb5,0xff,0xa4,0x0,0xa9,0x1, +0x18,0x2,0x3d,0x2,0x74,0x2,0x4b,0x2,0xba,0x1,0xe8,0x0, +0x98,0xff,0xfd,0xfd,0x4f,0xfc,0x8a,0xfa,0xc3,0xf9,0xf3,0xfa, +0x20,0xfd,0x44,0xff,0x53,0x1,0xcc,0x2,0x35,0x3,0xcd,0x2, +0xc5,0x1,0xb8,0x0,0x70,0x0,0x40,0x0,0x3f,0xff,0xec,0xfd, +0xe8,0xfc,0x65,0xfc,0xa0,0xfc,0x41,0xfd,0x1,0xfe,0x3e,0xff, +0x8c,0x0,0x4a,0x1,0xf7,0x1,0x69,0x2,0xb4,0x1,0x8e,0x0, +0x0,0x0,0x7c,0xff,0xc5,0xfe,0x84,0xfe,0xa5,0xfe,0xbe,0xfe, +0xd6,0xfe,0xfe,0xfe,0x76,0xff,0x64,0x0,0x18,0x1,0x9,0x1, +0x74,0x0,0x83,0xff,0x53,0xfe,0x75,0xfd,0x73,0xfd,0x49,0xfe, +0x6e,0xff,0x57,0x0,0x13,0x1,0xae,0x1,0x8b,0x1,0x87,0x0, +0x6b,0xff,0xc9,0xfe,0xaa,0xfe,0xdb,0xfe,0xd4,0xfe,0x4f,0xfe, +0xdd,0xfd,0xf9,0xfd,0x5a,0xfe,0xa6,0xfe,0x2,0xff,0xa2,0xff, +0x5a,0x0,0xe1,0x0,0x41,0x1,0x8d,0x1,0xb0,0x1,0xa5,0x1, +0x24,0x1,0xd4,0xff,0x5b,0xfe,0xaa,0xfd,0xaf,0xfd,0xf1,0xfd, +0x14,0xfe,0xd4,0xfd,0xe2,0xfd,0x0,0xff,0x56,0x0,0x11,0x1, +0xb9,0x1,0x5a,0x2,0x53,0x2,0xc1,0x1,0x14,0x1,0x71,0x0, +0xd9,0xff,0x14,0xff,0x58,0xfe,0x11,0xfe,0xb1,0xfd,0xe8,0xfc, +0xaa,0xfc,0x36,0xfd,0xd8,0xfd,0xbc,0xfe,0x4d,0x0,0x24,0x2, +0x97,0x3,0xeb,0x3,0xeb,0x2,0x6b,0x1,0xc0,0xff,0xdf,0xfd, +0xd0,0xfc,0xf0,0xfc,0xfd,0xfc,0xf9,0xfc,0xfa,0xfd,0x31,0xff, +0x68,0xff,0x7a,0xff,0x64,0x0,0x9e,0x1,0x44,0x2,0x7,0x2, +0x4e,0x1,0x97,0x0,0xbb,0xff,0xb8,0xfe,0x3b,0xfe,0x6b,0xfe, +0x4,0xff,0x1,0x0,0x84,0x0,0xb7,0xff,0xd9,0xfe,0x43,0xff, +0x46,0x0,0xdb,0x0,0xcf,0x0,0x42,0x0,0xa4,0xff,0x26,0xff, +0xb7,0xfe,0xb0,0xfe,0xf2,0xfe,0x3,0xff,0x94,0xff,0xf7,0x0, +0xdf,0x1,0xe7,0x1,0xcb,0x1,0x41,0x1,0xcf,0xff,0x4,0xfe, +0xad,0xfc,0x3f,0xfc,0x98,0xfc,0x5c,0xfd,0xab,0xfe,0x22,0x0, +0xdb,0x0,0x40,0x1,0x16,0x2,0xe2,0x2,0xe,0x3,0x69,0x2, +0x5,0x1,0xb2,0xff,0xa8,0xfe,0x33,0xfd,0xeb,0xfb,0x3,0xfc, +0x46,0xfd,0xda,0xfe,0x13,0x0,0xc6,0x0,0x75,0x1,0xdf,0x1, +0x8d,0x1,0xb3,0x1,0xc0,0x2,0xfe,0x2,0xf2,0x1,0x7c,0x0, +0xb5,0xfe,0xfa,0xfc,0x3f,0xfc,0xd7,0xfc,0x54,0xfe,0x70,0xff, +0xa9,0xff,0x87,0x0,0x8,0x2,0xff,0x1,0xc5,0x0,0x4b,0x0, +0x50,0x0,0x9,0x0,0x96,0xff,0x2b,0xff,0x32,0xff,0x75,0xff, +0x67,0xff,0xcf,0xff,0xab,0x0,0x7c,0x0,0xb0,0xff,0x78,0xff, +0x40,0xff,0xe5,0xfe,0xe9,0xfe,0xf9,0xfe,0x49,0xff,0xf4,0xff, +0x18,0x0,0xc,0x0,0x75,0x0,0xbf,0x0,0x26,0x1,0xcd,0x1, +0x75,0x1,0x4b,0x0,0x90,0xff,0x57,0xff,0xbb,0xff,0x61,0x0, +0xe1,0xff,0xc0,0xfe,0x83,0xfe,0xba,0xfe,0xd9,0xfe,0xd,0xff, +0x5a,0xff,0x7c,0x0,0x5a,0x2,0x21,0x3,0x85,0x2,0x72,0x1, +0xf3,0xff,0xe7,0xfe,0x1c,0xff,0x65,0xff,0x59,0xff,0x8f,0xff, +0x62,0xff,0xb4,0xfe,0x53,0xfe,0x25,0xfe,0x55,0xfe,0x47,0xff, +0x2e,0x0,0xc1,0x0,0x57,0x1,0x90,0x1,0x80,0x1,0x66,0x1, +0xdb,0x0,0x63,0x0,0x69,0x0,0xdc,0xff,0xdd,0xfe,0x6e,0xfe, +0x6,0xfe,0x79,0xfd,0xaf,0xfd,0x8c,0xfe,0xcd,0xff,0x6f,0x1, +0x73,0x2,0x5d,0x2,0xf8,0x1,0xa6,0x1,0x6b,0x1,0x22,0x1, +0x48,0x0,0x39,0xff,0xd7,0xfe,0x8,0xff,0x61,0xff,0x78,0xff, +0xd8,0xfe,0x47,0xfe,0xb7,0xfe,0x96,0xff,0x7b,0x0,0xa3,0x1, +0x5a,0x2,0x24,0x2,0x99,0x1,0xdb,0x0,0xe1,0xff,0x35,0xff, +0xf5,0xfe,0xe4,0xfe,0xfb,0xfe,0xd,0xff,0x6,0xff,0x1c,0xff, +0x76,0xff,0x3e,0x0,0x20,0x1,0x36,0x1,0xa6,0x0,0x65,0x0, +0x42,0x0,0xb3,0xff,0x10,0xff,0xce,0xfe,0x46,0xff,0x81,0x0, +0x97,0x1,0xba,0x1,0x28,0x1,0x5b,0x0,0xe8,0xff,0x39,0x0, +0x7b,0x0,0xe9,0xff,0x2e,0xff,0xfc,0xfe,0x25,0xff,0x4a,0xff, +0x48,0xff,0x8b,0xff,0x79,0x0,0x78,0x1,0xec,0x1,0x11,0x2, +0xf3,0x1,0xa5,0x1,0x8e,0x1,0x40,0x1,0x39,0x0,0xff,0xfe, +0xeb,0xfd,0x1e,0xfd,0x31,0xfd,0xf0,0xfd,0x9f,0xfe,0x73,0xff, +0xad,0x0,0xe1,0x1,0x97,0x2,0x86,0x2,0x3,0x2,0xbc,0x1, +0x63,0x1,0x8a,0x0,0xa5,0xff,0xd4,0xfe,0x14,0xfe,0xe1,0xfd, +0x24,0xfe,0xa0,0xfe,0x73,0xff,0xf5,0xff,0x2,0x0,0x8b,0x0, +0x21,0x1,0x5,0x1,0x2a,0x1,0xbb,0x1,0xdc,0x1,0xd2,0x1, +0x81,0x1,0x60,0x0,0x72,0xff,0x33,0xff,0xe6,0xfe,0xf8,0xfe, +0x8f,0xff,0xa8,0xff,0xbc,0xff,0x5e,0x0,0x7f,0x0,0x29,0x0, +0x3d,0x0,0x5d,0x0,0x73,0x0,0xcd,0x0,0xd9,0x0,0xa9,0x0, +0xce,0x0,0xe1,0x0,0xc7,0x0,0xa4,0x0,0xef,0xff,0x2b,0xff, +0x2a,0xff,0x8,0xff,0xa7,0xfe,0x1f,0xff,0x8d,0xff,0x9,0xff, +0x25,0xff,0x5e,0x0,0x3f,0x1,0x78,0x1,0x69,0x1,0x2e,0x1, +0x34,0x1,0x5,0x1,0xe,0x0,0x86,0xff,0xce,0xff,0xa4,0xff, +0x9c,0xff,0x68,0x0,0x48,0x0,0x7,0xff,0xac,0xfe,0x17,0xff, +0x45,0xff,0x8,0x0,0x5e,0x1,0xf7,0x1,0xe5,0x1,0xb1,0x1, +0x1b,0x1,0x83,0x0,0x8c,0x0,0xb4,0x0,0x6e,0x0,0xd,0x0, +0x9b,0xff,0xbe,0xfe,0x1c,0xfe,0x85,0xfe,0x30,0xff,0x57,0xff, +0x92,0xff,0xf7,0xff,0x68,0x0,0x85,0x1,0x34,0x2,0x44,0x1, +0x0,0x1,0x19,0x2,0xaa,0x1,0x40,0x0,0xe4,0xff,0xa6,0xfe, +0xfc,0xfc,0xc4,0xfd,0x62,0xfe,0x62,0xfd,0xd7,0xfe,0x4e,0x1, +0xd6,0x0,0x47,0x1,0xc4,0x3,0xda,0x2,0xb6,0x0,0x1,0x2, +0xe0,0x1,0x84,0xfe,0x48,0xfe,0x52,0x0,0x32,0xff,0xac,0xfd, +0x1c,0xff,0x40,0x0,0xd3,0xff,0x2e,0x0,0xfc,0x0,0xd,0x1, +0x50,0x1,0xa7,0x1,0xcf,0x0,0xd5,0xff,0x42,0x0,0xba,0x0, +0xe5,0xff,0xb,0xff,0x9,0xff,0x7e,0xff,0x97,0x0,0xa3,0x1, +0x53,0x1,0x41,0x0,0x77,0xff,0x49,0xff,0x8,0x0,0x2e,0x0, +0x70,0xfe,0x92,0xfd,0x0,0xff,0xd4,0xff,0xf5,0xff,0x6f,0x1, +0x67,0x2,0xa1,0x1,0x89,0x1,0xf9,0x1,0x30,0x1,0x85,0x0, +0x18,0x0,0xf1,0xfd,0x56,0xfc,0x9,0xfe,0xb1,0xff,0x17,0xff, +0x5f,0xff,0xb0,0x0,0xa1,0x0,0xe3,0x0,0x3f,0x2,0x22,0x2, +0x70,0x1,0xf9,0x1,0xb1,0x1,0x56,0x0,0xf7,0xff,0x9d,0xff, +0xac,0xfe,0x12,0xff,0xd8,0xff,0x66,0xfe,0xfc,0xfc,0x1a,0xff, +0xd3,0x1,0x24,0x1,0x27,0x0,0x5f,0x1,0x1f,0x1,0x29,0x0, +0x4c,0x2,0x18,0x3,0xfb,0xff,0x1b,0xff,0x3b,0x0,0xa3,0xfe, +0xa,0xfe,0x2f,0x0,0xd0,0xff,0xf3,0xfd,0xb2,0xfe,0xb6,0xff, +0x66,0xff,0xfc,0xff,0x35,0x1,0x81,0x1,0x77,0x1,0xe3,0x1, +0xd,0x2,0x58,0x1,0xc7,0x0,0x7d,0x0,0x32,0xff,0x34,0xfe, +0x8,0xff,0x9c,0xff,0x4d,0xff,0xa0,0xff,0xb4,0xff,0x8e,0xff, +0xc8,0x0,0xfa,0x1,0x3,0x2,0xc7,0x1,0xd5,0x0,0xdb,0xff, +0x3c,0x0,0x5a,0x0,0xe6,0xff,0x4b,0x0,0x17,0x0,0x41,0xff, +0xd6,0xff,0x39,0x0,0x77,0xff,0xf6,0xff,0xa9,0x0,0x61,0xff, +0xca,0xfe,0x81,0x0,0x31,0x1,0x8f,0xff,0x0,0xff,0x66,0x0, +0x7b,0x0,0xb7,0xff,0xda,0x0,0x49,0x1,0xe2,0xff,0xe5,0x0, +0x57,0x2,0xc4,0xff,0x16,0xfe,0xea,0xff,0x7a,0xff,0x6a,0xfd, +0x5d,0xfe,0x6b,0xff,0xc9,0xfe,0xc,0x0,0x24,0x2,0xb2,0x1, +0xe3,0x0,0x3d,0x2,0x67,0x3,0x34,0x2,0x63,0x0,0x72,0xff, +0x8c,0xfe,0x43,0xfe,0x19,0xff,0xa5,0xfe,0x3e,0xfd,0x3b,0xfe, +0x2e,0x0,0x54,0x0,0x9c,0x0,0xd2,0x1,0x1a,0x2,0xf6,0x1, +0x8,0x2,0x76,0x1,0xc2,0x0,0x4a,0x0,0x56,0xff,0x52,0xfe, +0xf4,0xfd,0x16,0xfe,0x5b,0xfe,0x89,0xfe,0x55,0xff,0xd8,0x0, +0x13,0x1,0x3,0x0,0x24,0x0,0x29,0x1,0x18,0x1,0x7e,0x0, +0x74,0x0,0x63,0x0,0xc9,0xff,0x89,0xff,0x4a,0x0,0xa1,0x0, +0xc4,0xff,0x6d,0xff,0x97,0xff,0x13,0xff,0xa8,0xff,0x13,0x1, +0x7,0x0,0x97,0xfe,0x4a,0x0,0xe9,0x1,0xee,0x0,0x10,0x0, +0x3c,0x0,0x44,0x0,0x6d,0x0,0xdb,0x0,0x15,0x1,0xdf,0x0, +0x4d,0x0,0xfe,0xff,0x9a,0xff,0xcf,0xfe,0x1b,0xff,0xd6,0xff, +0xe1,0xfe,0x4c,0xfe,0x7c,0xff,0xa4,0xff,0x64,0xff,0x4e,0x1, +0xf5,0x2,0x2b,0x2,0xb5,0x0,0xc2,0xff,0x8b,0xff,0x21,0x0, +0x88,0x0,0x3b,0x0,0x39,0xff,0xf5,0xfd,0x31,0xfe,0x71,0xff, +0x66,0xff,0x2e,0xff,0x1,0x0,0x41,0x0,0x73,0x0,0x9e,0x1, +0xdc,0x1,0x2d,0x1,0x77,0x1,0xf8,0x1,0x66,0x1,0x30,0x0, +0x52,0xff,0x34,0xff,0xc2,0xfe,0xf4,0xfd,0xa3,0xfe,0xc2,0xff, +0x9e,0xff,0x24,0x0,0x26,0x1,0xa3,0x0,0xb8,0x0,0xf3,0x1, +0x5f,0x1,0x49,0x0,0xf0,0x0,0x16,0x1,0xae,0xff,0xa6,0xfe, +0x16,0xff,0x4c,0x0,0x4c,0x0,0xfa,0xfe,0x93,0xfe,0xb9,0xfe, +0xae,0xfe,0x2a,0x0,0x9e,0x1,0xc7,0x0,0x52,0x0,0xdf,0x0, +0x10,0x0,0x93,0xff,0x6b,0x0,0x3c,0x0,0xcb,0xff,0x82,0x0, +0x7a,0x0,0x80,0xff,0x46,0xff,0xc0,0xff,0x57,0x0,0x9f,0x0, +0x31,0x0,0x92,0xff,0x4a,0xff,0x77,0xff,0xe8,0xff,0xc4,0xff, +0x90,0xff,0xbc,0x0,0x7,0x2,0xb3,0x1,0xe4,0x0,0xba,0x0, +0xa9,0x0,0x5a,0x0,0x15,0x0,0x16,0x0,0xfa,0xff,0x3f,0xff, +0x88,0xfe,0x55,0xfe,0x67,0xfe,0x17,0xff,0xd8,0xff,0x96,0xff, +0xdc,0xff,0xa7,0x1,0x80,0x2,0xc7,0x1,0xa8,0x1,0xc,0x2, +0x6d,0x1,0x21,0x0,0xfd,0xfe,0xf9,0xfd,0x2b,0xfd,0x28,0xfd, +0xc7,0xfd,0x26,0xfe,0xaf,0xfe,0x27,0x0,0x3e,0x1,0x4a,0x1, +0xd7,0x1,0xe8,0x2,0xe6,0x2,0xcb,0x1,0x9e,0x0,0x2,0x0, +0xb4,0xff,0xee,0xfe,0x45,0xfe,0x83,0xfe,0xa8,0xfe,0x96,0xfe, +0x3e,0xff,0xb6,0xff,0x91,0xff,0x5b,0x0,0x7,0x2,0xd5,0x2, +0x58,0x2,0xa8,0x1,0x6d,0x1,0xcd,0x0,0x9a,0xff,0x2a,0xff, +0x18,0xff,0x95,0xfe,0xf7,0xfe,0x8e,0xff,0xf1,0xfe,0x6b,0xff, +0xf3,0x0,0x72,0x0,0xa4,0xff,0x81,0x0,0x9f,0x0,0x36,0x0, +0x7d,0x0,0xb9,0xff,0x24,0xff,0x9c,0x0,0x47,0x1,0x6a,0x0, +0x35,0x0,0xd2,0xff,0xfa,0xfe,0x60,0xff,0xe7,0xff,0x51,0xff, +0xfc,0xfe,0x89,0xff,0x25,0x0,0x4c,0x0,0x4f,0x0,0xa7,0x0, +0xad,0x0,0x49,0x0,0x92,0x0,0xa6,0x0,0xc1,0xff,0xfc,0xff, +0x4e,0x1,0x6b,0x1,0xd4,0x0,0x79,0x0,0xe2,0xff,0x94,0xff, +0x5f,0xff,0x9c,0xfe,0x94,0xfe,0x5b,0xff,0x91,0xff,0xfa,0xff, +0xf3,0x0,0x1b,0x1,0xda,0x0,0x3b,0x1,0x86,0x1,0x1c,0x1, +0x99,0x0,0x7a,0x0,0x6,0x0,0xcd,0xfe,0x61,0xfe,0x7,0xff, +0xb0,0xfe,0x1d,0xfe,0x1a,0xff,0xc3,0xff,0x47,0xff,0x94,0xff, +0x43,0x0,0xbb,0x0,0xf,0x2,0xfc,0x2,0x52,0x2,0xa5,0x1, +0x23,0x1,0x5,0x0,0x1d,0xff,0x57,0xfe,0x70,0xfd,0x93,0xfd, +0x59,0xfe,0xc5,0xfe,0xd0,0xff,0x13,0x1,0xe0,0x0,0xa3,0x0, +0x1b,0x2,0x40,0x3,0x77,0x2,0x56,0x1,0xb2,0x0,0xf2,0xff, +0x9d,0xff,0xc3,0xff,0x34,0xff,0x67,0xfe,0x88,0xfe,0x4,0xff, +0x44,0xff,0x67,0xff,0x7c,0xff,0x35,0x0,0x69,0x1,0xac,0x1, +0x62,0x1,0x51,0x1,0x93,0x0,0xcf,0xff,0x36,0x0,0x38,0x0, +0x14,0xff,0x79,0xfe,0xb,0xff,0xa,0x0,0x70,0x0,0x0,0x0, +0x10,0x0,0x64,0x0,0xa0,0xff,0x54,0xff,0x11,0x0,0x90,0xff, +0x5,0xff,0x60,0x0,0x38,0x1,0xf2,0x0,0x73,0x1,0x98,0x1, +0xe8,0x0,0x1f,0x1,0x39,0x1,0xb,0x0,0x3c,0xff,0x3a,0xff, +0xec,0xfe,0x83,0xfe,0xa1,0xfe,0x4c,0xff,0x19,0x0,0x8d,0x0, +0xa3,0x0,0x9f,0x0,0xe8,0x0,0x77,0x1,0x8f,0x1,0x98,0x1, +0xd,0x2,0x47,0x1,0x44,0xff,0x67,0xfe,0x65,0xfe,0x31,0xfe, +0xa9,0xfe,0xea,0xfe,0x32,0xfe,0xa3,0xfe,0x58,0x0,0x50,0x1, +0x70,0x1,0x2c,0x1,0x17,0x1,0xb9,0x1,0x9a,0x1,0x6f,0x0, +0xcc,0xff,0x39,0xff,0xc7,0xfe,0xb0,0xff,0x10,0x0,0xfc,0xfe, +0xce,0xfe,0x69,0xff,0xa2,0xff,0xd7,0xff,0x71,0xff,0x74,0xff, +0x60,0x1,0x5c,0x2,0xab,0x1,0x3b,0x2,0x1c,0x2,0xda,0xff, +0x99,0xff,0xd3,0x0,0xb7,0xff,0x89,0xfe,0x1,0xff,0x95,0xfe, +0x34,0xfe,0xe0,0xff,0x7,0x1,0x15,0x0,0x8c,0xff,0x86,0x0, +0x39,0x1,0x17,0x1,0x1a,0x1,0xb5,0x0,0x8c,0xff,0x9a,0xff, +0xf3,0x0,0xff,0x0,0xd3,0xff,0x4c,0xff,0x2e,0xff,0xe1,0xfe, +0xad,0xfe,0xd1,0xfe,0x8b,0xff,0x5a,0x0,0x9f,0x0,0xdc,0x0, +0xdc,0x0,0x4e,0x0,0x60,0x0,0xec,0x0,0xba,0x0,0x67,0x0, +0x41,0x0,0xd6,0xff,0x18,0x0,0x13,0x1,0x74,0x1,0xe2,0x0, +0x7b,0xff,0x55,0xfe,0xf5,0xfe,0xdc,0xff,0x73,0xff,0x2d,0xff, +0x6b,0xff,0xd9,0xff,0x45,0x1,0x2d,0x2,0xa4,0x1,0x7,0x2, +0x80,0x2,0x6,0x1,0x46,0x0,0x8b,0x0,0xed,0xfe,0xda,0xfd, +0x3b,0xff,0x13,0xff,0x6c,0xfd,0x2a,0xfe,0xc1,0xff,0xcb,0xff, +0x26,0x0,0x5,0x1,0xf1,0x0,0x5e,0x1,0xed,0x2,0x34,0x3, +0xc3,0x1,0x8e,0x0,0xdb,0xff,0xef,0xfe,0x30,0xfe,0x13,0xfe, +0x40,0xfe,0x23,0xfe,0xd4,0xfd,0x9c,0xfe,0xca,0x0,0x5e,0x2, +0x81,0x2,0x5c,0x2,0xe3,0x1,0xf4,0x0,0xe7,0x0,0x33,0x1, +0x32,0x0,0x37,0xff,0xc1,0xff,0xf8,0xff,0xb7,0xfe,0x34,0xfe, +0x8d,0xff,0x88,0x0,0x34,0x0,0x4b,0x0,0x81,0x0,0xa4,0xff, +0xda,0xff,0xb7,0x1,0xbf,0x1,0x35,0x0,0x69,0x0,0x16,0x1, +0x6a,0x0,0x34,0x0,0x2e,0x0,0xde,0xfe,0x72,0xfe,0xd0,0xff, +0x36,0x0,0x9a,0xff,0xf3,0xff,0x8,0x0,0x14,0xff,0x5b,0xff, +0x89,0x0,0x49,0x0,0x19,0x0,0x41,0x1,0x51,0x1,0x86,0x0, +0xff,0x0,0xef,0x0,0xc2,0xff,0xf7,0xff,0x6d,0x0,0x7a,0xff, +0x18,0xff,0x78,0xff,0x8d,0xff,0x14,0x0,0x1d,0x0,0x42,0xff, +0xc8,0xff,0xf8,0x0,0xb,0x1,0x3f,0x1,0x3b,0x1,0x4c,0x0, +0x6a,0x0,0x0,0x1,0x89,0x0,0xb3,0x0,0x1d,0x1,0xc,0x0, +0x19,0xff,0xfa,0xfe,0xbf,0xfe,0xc3,0xfe,0xc1,0xfe,0x7,0xff, +0x7e,0x0,0x5,0x1,0x5a,0x0,0x3a,0x1,0xcf,0x1,0x98,0x0, +0xdf,0x0,0xbe,0x1,0x95,0x0,0x1f,0x0,0x94,0x0,0x32,0xff, +0x3,0xfe,0x86,0xfe,0x91,0xfe,0x62,0xfe,0xe,0xff,0xc1,0xff, +0x46,0x0,0x90,0x0,0xd9,0x0,0xf5,0x1,0xaa,0x2,0xee,0x1, +0x51,0x1,0x4a,0x1,0x3,0x1,0x64,0x0,0x14,0xff,0xbd,0xfd, +0xe3,0xfd,0xd2,0xfe,0x78,0xff,0xf4,0xff,0xf4,0xff,0x4,0x0, +0xc6,0x0,0x20,0x1,0x34,0x1,0xad,0x1,0x5b,0x1,0xca,0x0, +0x37,0x1,0xe0,0x0,0x87,0xff,0x2c,0xff,0x5d,0xff,0x66,0xff, +0x90,0xff,0x16,0xff,0x96,0xfe,0x40,0xff,0xd7,0xff,0x1d,0x0, +0xca,0x0,0xb6,0x0,0x28,0x0,0x81,0x0,0xd2,0x0,0xd4,0x0, +0xf8,0x0,0x2e,0x0,0x67,0xff,0x21,0x0,0x9f,0x0,0x56,0x0, +0x3b,0x0,0x27,0xff,0xd,0xfe,0x1e,0xff,0x1f,0x0,0xaf,0xff, +0xf1,0xff,0x47,0x0,0xd6,0xff,0xd1,0x0,0x75,0x2,0x3b,0x2, +0x49,0x1,0xb9,0x0,0x14,0x0,0x28,0x0,0x75,0x0,0x79,0xff, +0xa4,0xfe,0xf,0xff,0x27,0xff,0xec,0xfe,0x7a,0xff,0x26,0x0, +0x76,0x0,0xc2,0x0,0xcc,0x0,0x84,0x0,0x36,0x0,0x2e,0x0, +0xc5,0x0,0x36,0x1,0xb1,0x0,0x12,0x0,0x83,0xff,0xb7,0xfe, +0x1a,0xff,0x24,0x0,0x8f,0xff,0xef,0xfe,0xc1,0xff,0xb0,0xff, +0x41,0xff,0x8d,0x0,0x7,0x1,0xcd,0xff,0x1d,0x0,0x66,0x1, +0x57,0x1,0x28,0x1,0x29,0x1,0x37,0x0,0x79,0xff,0xa8,0xff, +0xd4,0xff,0xea,0xff,0xd9,0xff,0x39,0xff,0xc1,0xfe,0xf9,0xfe, +0x86,0xff,0x51,0x0,0x22,0x1,0x56,0x1,0xf4,0x0,0xdb,0x0, +0x35,0x1,0x8,0x1,0x93,0x0,0xde,0x0,0xa3,0x0,0x20,0xff, +0xb6,0xfe,0x8f,0xff,0x56,0xff,0xbe,0xfe,0xe0,0xfe,0xbf,0xfe, +0x20,0xff,0x87,0x0,0xf8,0x0,0x93,0x0,0xe2,0x0,0x31,0x1, +0xa,0x1,0x8,0x1,0xf4,0x0,0x8d,0x0,0xdb,0xff,0x4b,0xff, +0x80,0xff,0x6f,0xff,0xa4,0xfe,0xe5,0xfe,0xc1,0xff,0xa0,0xff, +0x99,0xff,0xc3,0xff,0x8e,0xff,0xbe,0x0,0x58,0x2,0xd2,0x1, +0x26,0x1,0x6d,0x1,0xc3,0x0,0x6c,0x0,0xf1,0x0,0xdc,0xff, +0x73,0xfe,0xa8,0xfe,0xba,0xfe,0xbb,0xfe,0x8f,0xff,0x98,0xff, +0x57,0xff,0x31,0x0,0xc8,0x0,0x30,0x1,0x11,0x2,0x87,0x1, +0x2f,0x0,0x75,0x0,0xcb,0x0,0xf5,0xff,0xe8,0xff,0x29,0x0, +0xf,0xff,0x58,0xfe,0x1c,0xff,0x58,0xff,0xb1,0xfe,0xea,0xfe, +0xdf,0xff,0x56,0x0,0xa4,0x0,0x29,0x1,0x48,0x1,0x17,0x1, +0xf5,0x0,0x68,0x0,0x7d,0xff,0x34,0xff,0xd7,0xff,0x77,0x0, +0x30,0x0,0x83,0xff,0x70,0xff,0xb3,0xff,0xda,0xff,0x39,0x0, +0x4b,0x0,0xc0,0xff,0xac,0xff,0xfb,0xff,0xf8,0xff,0x43,0x0, +0xbd,0x0,0xd2,0x0,0x33,0x1,0x58,0x1,0x99,0x0,0x72,0x0, +0x72,0x0,0x21,0xff,0x94,0xfe,0x5b,0xff,0xfa,0xfe,0xab,0xfe, +0x15,0x0,0x84,0x0,0x89,0xff,0xa0,0xff,0x27,0x0,0x26,0x0, +0xc7,0x0,0x83,0x1,0x4f,0x1,0xe1,0x0,0x66,0x0,0xbf,0xff, +0xa9,0xff,0xb1,0xff,0xdb,0xfe,0x1d,0xfe,0x92,0xfe,0x71,0xff, +0xe3,0xff,0x2,0x0,0xd4,0xff,0xbf,0xff,0x97,0x0,0xb1,0x1, +0xc0,0x1,0x56,0x1,0x32,0x1,0xab,0x0,0xd4,0xff,0x80,0xff, +0xaa,0xff,0xf1,0xff,0xd0,0xff,0x37,0xff,0x34,0xff,0x86,0xff, +0xf8,0xfe,0xcb,0xfe,0xe6,0xff,0xb5,0x0,0x3d,0x1,0xf0,0x1, +0x63,0x1,0x9b,0x0,0x54,0x1,0x7e,0x1,0x4d,0x0,0xb0,0xff, +0x3c,0xff,0x84,0xfe,0xc7,0xfe,0x13,0xff,0xba,0xfe,0xfe,0xfe, +0x61,0xff,0xae,0xff,0xeb,0x0,0x4a,0x1,0x17,0x0,0x3b,0x0, +0x50,0x1,0xf,0x1,0xda,0x0,0x14,0x1,0x24,0x0,0x43,0xff, +0x60,0xff,0x43,0xff,0x34,0xff,0x5a,0xff,0xff,0xfe,0x2b,0xff, +0xf5,0xff,0x21,0x0,0x9d,0x0,0x3b,0x1,0x5b,0x0,0x2,0x0, +0x52,0x1,0x22,0x1,0xbd,0xff,0xe,0x0,0xb8,0x0,0x72,0x0, +0xa0,0x0,0x80,0x0,0x7f,0xff,0x67,0xff,0xcf,0xff,0x64,0xff, +0xfe,0xfe,0xd8,0xfe,0xbf,0xfe,0x92,0xff,0x99,0x0,0xbd,0x0, +0xf8,0x0,0x6c,0x1,0x2f,0x1,0xd7,0x0,0xb4,0x0,0x2e,0x0, +0xbb,0xff,0x98,0xff,0x33,0xff,0xfb,0xfe,0x47,0xff,0x2e,0xff, +0x97,0xfe,0x98,0xfe,0x69,0xff,0x35,0x0,0x79,0x0,0x74,0x0, +0xb2,0x0,0x74,0x1,0xf4,0x1,0x73,0x1,0xe9,0x0,0xe8,0x0, +0xff,0xff,0x8d,0xfe,0x90,0xfe,0xde,0xfe,0x42,0xfe,0xb4,0xfe, +0xe6,0xff,0xd4,0xff,0x8,0x0,0x72,0x1,0x15,0x2,0xaa,0x1, +0xcd,0x0,0xb9,0xff,0xc5,0xff,0x54,0x0,0xd8,0xff,0xde,0xff, +0x7c,0x0,0xcb,0xff,0x60,0xff,0xdd,0xff,0x34,0xff,0xe5,0xfe, +0xe7,0xff,0x9f,0xff,0xc,0xff,0xfd,0xff,0x5b,0x0,0x3c,0x0, +0xd6,0x0,0xa1,0x0,0x4c,0x0,0xd5,0x0,0x45,0x0,0xa1,0xff, +0x54,0x0,0xd4,0xff,0xde,0xfe,0xa0,0xff,0xa2,0xff,0x9,0xff, +0x32,0x0,0x3f,0x0,0x74,0xfe,0xb3,0xfe,0x24,0x0,0x7f,0x0, +0x29,0x1,0x91,0x1,0xa5,0x0,0x7a,0x0,0x45,0x1,0x5e,0x1, +0xec,0x0,0xf6,0xff,0xce,0xfe,0xbf,0xfe,0xfc,0xfe,0x7a,0xfe, +0x97,0xfe,0xb7,0xff,0x93,0x0,0xab,0x0,0x1f,0x0,0xb7,0xff, +0x2e,0x0,0xa4,0x0,0xa1,0x0,0xfb,0x0,0x3b,0x1,0x7a,0x0, +0xb6,0xff,0xe8,0xff,0x3c,0x0,0xaf,0xff,0xaf,0xfe,0x2d,0xfe, +0x44,0xfe,0xe6,0xfe,0xc8,0xff,0xae,0xff,0xb,0xff,0xfe,0xff, +0x92,0x1,0x92,0x1,0x3b,0x1,0x7e,0x1,0x14,0x1,0x7e,0x0, +0x93,0x0,0x2e,0x0,0x1e,0xff,0x39,0xfe,0xe4,0xfd,0x9a,0xfe, +0x80,0xff,0x65,0xff,0x75,0xff,0x1d,0x0,0x47,0x0,0xd5,0x0, +0xcd,0x1,0x74,0x1,0xb,0x1,0xcd,0x1,0xa7,0x1,0x72,0x0, +0x8f,0xff,0x63,0xfe,0xa2,0xfd,0x95,0xfe,0x94,0xff,0xa6,0xff, +0x7b,0xff,0xb,0xff,0x4e,0xff,0xaa,0x0,0xf5,0x0,0x5c,0x0, +0xb0,0x0,0xbd,0x0,0x30,0x0,0x71,0x0,0x37,0x0,0x15,0xff, +0x26,0xff,0xc0,0xff,0x83,0xff,0xa8,0xff,0xf8,0xff,0x61,0xff, +0xc,0xff,0x4d,0xff,0x5d,0xff,0xe7,0xff,0xc6,0x0,0x9d,0x0, +0xeb,0xff,0xe6,0xff,0x2f,0x0,0x7,0x0,0xb7,0xff,0xfe,0xff, +0x9f,0x0,0xc8,0x0,0xc5,0x0,0xc6,0x0,0xe,0x0,0x41,0xff, +0x5f,0xff,0x35,0xff,0x2b,0xfe,0xf4,0xfd,0x21,0xff,0x55,0x0, +0xb7,0x0,0xbd,0x0,0x1,0x1,0x3c,0x1,0x1b,0x1,0x9,0x1, +0xa9,0x0,0xa2,0xff,0x4e,0xff,0xaf,0xff,0x12,0xff,0x41,0xfe, +0x92,0xfe,0xbf,0xfe,0x98,0xfe,0x53,0xff,0x10,0x0,0x4,0x0, +0x23,0x0,0x86,0x0,0xad,0x0,0xc8,0x0,0xe0,0x0,0xe0,0x0, +0xae,0x0,0x21,0x0,0xb2,0xff,0x5f,0xff,0xa4,0xfe,0x37,0xfe, +0x6c,0xfe,0x72,0xfe,0xe7,0xfe,0x21,0x0,0x96,0x0,0x7a,0x0, +0x3,0x1,0x3d,0x1,0xd0,0x0,0xaa,0x0,0x33,0x0,0xab,0xff, +0x90,0x0,0x49,0x1,0xcc,0xff,0x21,0xfe,0x4f,0xfe,0x0,0xff, +0xd4,0xfe,0x54,0xfe,0x55,0xfe,0xe6,0xfe,0x9d,0xff,0x68,0x0, +0x54,0x1,0xcf,0x1,0x71,0x1,0xec,0x0,0xd6,0x0,0xbb,0x0, +0x39,0x0,0x61,0xff,0x14,0xfe,0x23,0xfd,0x42,0xfe,0x27,0x0, +0xab,0xff,0x40,0xfe,0x49,0xff,0xde,0x0,0x64,0x0,0xf9,0xff, +0xc5,0x0,0xf1,0x0,0x71,0x0,0x17,0x0,0xa8,0xff,0xcd,0xff, +0x8e,0x0,0x4d,0x0,0x45,0xff,0x33,0xff,0xf2,0xff,0xe3,0xff, +0x91,0xfe,0xdd,0xfd,0x69,0xff,0x2a,0x1,0xb8,0x0,0x6b,0xff, +0xce,0xfe,0xc4,0xfe,0xd5,0xff,0x6d,0x1,0x9a,0x1,0xb3,0x0, +0xfb,0xff,0x64,0xff,0x4e,0xff,0xa5,0xff,0x86,0xff,0x94,0xff, +0xd4,0xff,0x8,0xff,0x6a,0xfe,0x9,0xff,0xda,0xfe,0xd9,0xfd, +0x67,0xfe,0x66,0x0,0x19,0x2,0x3b,0x2,0x87,0x0,0x50,0xff, +0x26,0x0,0xe1,0x0,0x80,0x0,0x13,0x0,0xf5,0xfe,0x95,0xfd, +0xfb,0xfd,0xdd,0xfe,0x80,0xfe,0xa8,0xfe,0xc2,0xff,0xc,0x0, +0x3b,0x0,0x3c,0x1,0x61,0x1,0x4f,0x0,0x3a,0x0,0x8d,0x1, +0x13,0x2,0x99,0x0,0x5b,0xfe,0x2b,0xfd,0xd9,0xfd,0x89,0xff, +0x3d,0x0,0x54,0xff,0x72,0xfe,0xde,0xfe,0xda,0xff,0x27,0x0, +0xb5,0xff,0xcd,0xff,0xdd,0x0,0x36,0x1,0x74,0x0,0x56,0x0, +0x65,0x0,0x1a,0xff,0x3d,0xfe,0x86,0xff,0xc3,0x0,0xe3,0xff, +0x2f,0xfe,0x9c,0xfd,0xf,0xfe,0x95,0xfe,0x73,0xff,0x87,0x0, +0x6f,0x0,0xee,0xff,0x93,0x0,0xb3,0x0,0xb7,0xff,0x29,0x0, +0x49,0x1,0x87,0x0,0x41,0xff,0xed,0xfe,0xd6,0xfe,0x1c,0xff, +0x4f,0xff,0xa5,0xfe,0x59,0xfe,0xa6,0xfe,0xb8,0xfe,0x91,0xff, +0xc1,0x0,0xd2,0x0,0x2c,0x1,0xc9,0x1,0xcb,0x0,0x1f,0x0, +0xcc,0x0,0xc4,0xff,0xd2,0xfd,0x61,0xfe,0xd6,0xff,0x96,0xff, +0x9e,0xfe,0x3e,0xfe,0xb5,0xfe,0x7f,0xff,0xa9,0xff,0xa3,0xff, +0xfe,0xff,0xf8,0xff,0xd6,0xff,0x48,0x0,0x6c,0x0,0x9,0x0, +0x1,0x0,0x4f,0x0,0x86,0x0,0x28,0x0,0xe9,0xfe,0xe1,0xfd, +0xc2,0xfd,0xe1,0xfd,0x74,0xfe,0x7d,0xff,0xa8,0xff,0x64,0xff, +0xff,0xff,0x98,0x0,0x8c,0x0,0xae,0x0,0x9f,0x0,0xe8,0xff, +0xba,0xff,0x6b,0x0,0x8c,0x0,0x93,0xff,0xbe,0xfe,0xd5,0xfe, +0xee,0xfe,0x85,0xfe,0xa7,0xfe,0x62,0xff,0x57,0xff,0xca,0xfe, +0x30,0xff,0x2d,0x0,0x8e,0x0,0x95,0x0,0xc1,0x0,0x81,0x0, +0xfb,0xff,0x86,0x0,0x3e,0x1,0xa6,0xff,0x47,0xfd,0x81,0xfd, +0xc8,0xfe,0x7d,0xfe,0x61,0xfe,0x63,0xff,0x8c,0xff,0x26,0xff, +0x62,0xff,0x5f,0xff,0x4b,0xff,0x24,0x0,0x7,0x1,0x50,0x1, +0x3b,0x1,0x43,0x0,0xd8,0xfe,0x84,0xfe,0x3d,0xff,0xdf,0xff, +0xa6,0xff,0x7b,0xfe,0x96,0xfd,0xc,0xfe,0x1b,0xff,0xb9,0xff, +0xca,0xff,0x96,0xff,0xc8,0xff,0x8c,0x0,0x33,0x1,0x7d,0x1, +0x15,0x1,0xcd,0xff,0x38,0xff,0x4,0x0,0x25,0x0,0xfa,0xfe, +0x4,0xfe,0x7a,0xfd,0x7e,0xfd,0xfe,0xfe,0xb3,0x0,0x54,0x0, +0x9d,0xfe,0x45,0xfe,0xe4,0xff,0x1e,0x1,0xa2,0x0,0x75,0x0, +0x65,0x1,0x19,0x1,0x3d,0xff,0xf2,0xfd,0x7b,0xfd,0x95,0xfd, +0xf4,0xfe,0x4e,0x0,0xbc,0xff,0x60,0xfe,0x1b,0xfe,0x99,0xfe, +0x38,0xff,0x75,0x0,0xb3,0x1,0x28,0x1,0x9f,0xff,0xac,0xff, +0x8d,0x0,0x11,0x0,0x61,0xff,0x8f,0xff,0x63,0xff,0x3f,0xff, +0xa9,0xff,0xe5,0xfe,0x62,0xfd,0x94,0xfd,0x28,0xff,0x8a,0x0, +0x20,0x1,0x61,0x0,0x1b,0xff,0xed,0xfe,0xca,0xff,0x1c,0x1, +0xb,0x2,0x1d,0x1,0x38,0xff,0x9a,0xfe,0xdb,0xfe,0xe6,0xfe, +0x9e,0xfe,0x93,0xfd,0xd,0xfd,0xba,0xfe,0x41,0x0,0x72,0xff, +0x73,0xfe,0x3,0xff,0x94,0x0,0x58,0x2,0x61,0x2,0xdb,0xff, +0xcc,0xfd,0x57,0xfe,0xd0,0xff,0x89,0x0,0x81,0x0,0xf8,0xff, +0xf3,0xfe,0x98,0xfd,0x20,0xfd,0x3a,0xfe,0xd5,0xfe,0xfe,0xfd, +0x45,0xfe,0x41,0x0,0x81,0x1,0x6c,0x1,0x63,0x0,0xb6,0xfe, +0xee,0xfe,0xbd,0x1,0xc,0x3,0x28,0x1,0x9,0xff,0xe,0xfe, +0xa7,0xfd,0x32,0xfe,0x1b,0xff,0x26,0xff,0xc3,0xfe,0x99,0xfe, +0xba,0xfe,0x65,0xff,0xde,0xff,0x80,0xff,0x9c,0xff,0xcd,0x0, +0x90,0x1,0x32,0x1,0xa,0x0,0xa4,0xfe,0x8d,0xfe,0xf5,0xff, +0x38,0x0,0x92,0xfe,0x54,0xfd,0x57,0xfd,0xde,0xfd,0xe2,0xfe, +0xfd,0xff,0x89,0x0,0xcc,0x0,0x9f,0x0,0xda,0xff,0xa9,0xff, +0x47,0x0,0x5c,0x0,0xc7,0xff,0x5a,0xff,0x49,0xff,0xa3,0xff, +0xc1,0xff,0x97,0xfe,0x35,0xfd,0x9a,0xfd,0x81,0xff,0x19,0x1, +0x8,0x1,0x84,0xff,0x9a,0xfe,0x63,0xff,0x77,0x0,0xc,0x1, +0x59,0x1,0x86,0x0,0xee,0xfe,0x8a,0xfe,0x39,0xff,0x9b,0xff, +0x7b,0xff,0xa7,0xfe,0xde,0xfd,0xa4,0xfe,0xae,0xff,0x2e,0xff, +0x76,0xfe,0x6c,0xfe,0xd0,0xfe,0x8d,0x0,0x5c,0x2,0x82,0x1, +0xa7,0xff,0x5f,0xff,0xce,0xff,0x96,0x0,0x58,0x1,0xd9,0xff, +0x4d,0xfd,0x21,0xfd,0x3d,0xfe,0x81,0xfe,0xb7,0xfe,0xdf,0xfe, +0x89,0xfe,0xe0,0xfe,0xfc,0xff,0xf4,0x0,0x6a,0x1,0xe9,0x0, +0x8c,0x0,0xcd,0x1,0x30,0x2,0xb6,0xff,0x7c,0xfd,0xa0,0xfd, +0x9a,0xfe,0x9c,0xff,0x10,0x0,0xf,0xff,0xfc,0xfd,0x19,0xfe, +0x7e,0xfe,0xfb,0xfe,0xf1,0xff,0xd6,0x0,0x47,0x1,0xe8,0x0, +0xe4,0xff,0xba,0xff,0x2f,0x0,0x9b,0xff,0xfa,0xfe,0x73,0xff, +0xb0,0xff,0x56,0xff,0xf1,0xfe,0x1a,0xfe,0xc7,0xfd,0xd1,0xfe, +0x68,0xff,0x17,0xff,0x6b,0xff,0xfa,0xff,0x5,0x0,0x42,0x0, +0x83,0x0,0x9f,0x0,0xe7,0x0,0x10,0x0,0x29,0xfe,0x0,0xfe, +0x7b,0xff,0xc5,0xff,0x1b,0xff,0x2f,0xff,0x5c,0xff,0x19,0xff, +0x4d,0xff,0xc9,0xff,0x96,0xff,0x55,0xff,0x20,0x0,0x23,0x1, +0xdf,0x0,0xda,0xff,0x80,0xff,0xc1,0xff,0x3,0x0,0x54,0x0, +0x6e,0x0,0x75,0xff,0xab,0xfd,0xec,0xfc,0x3d,0xfe,0xec,0xff, +0x1c,0x0,0x72,0xff,0x3a,0xff,0xae,0xff,0x83,0x0,0xad,0x0, +0xaa,0xff,0x6c,0xff,0xe2,0x0,0xb9,0x1,0xe0,0x0,0xdf,0xff, +0x29,0xff,0x63,0xfe,0x32,0xfe,0xca,0xfe,0x2e,0xff,0x86,0xfe, +0x5e,0xfd,0x70,0xfd,0x1d,0xff,0xb3,0x0,0x3b,0x1,0x19,0x1, +0xba,0x0,0xb8,0x0,0x7,0x1,0xd0,0x0,0x46,0x0,0xbf,0xff, +0x1,0xff,0xde,0xfe,0x1b,0xff,0xfb,0xfd,0xd,0xfd,0x85,0xfe, +0xdc,0xff,0x79,0xff,0xd4,0xff,0xe5,0x0,0xb3,0x0,0x45,0x0, +0xab,0x0,0xe9,0x0,0xc1,0x0,0x79,0x0,0x0,0x0,0x80,0xff, +0xe5,0xfe,0x27,0xfe,0xa5,0xfd,0x7e,0xfd,0x72,0xfe,0xa3,0x0, +0x80,0x1,0xe,0x0,0x2d,0xff,0xbe,0xff,0xd4,0xff,0xa9,0xff, +0x46,0x0,0x82,0x0,0xb5,0xff,0x4c,0xff,0xec,0xff,0x22,0x0, +0x45,0xff,0xf3,0xfe,0x8a,0xff,0x7f,0xff,0x68,0xff,0x1a,0x0, +0x91,0xff,0x2e,0xfe,0xa,0xff,0xde,0x0,0xa7,0x0,0xb8,0xff, +0xde,0xff,0x79,0x0,0xdc,0x0,0x83,0x0,0xc7,0xff,0xdc,0xff, +0x5,0x0,0x47,0xff,0xdb,0xfe,0x1b,0xff,0x36,0xff,0x45,0xff, +0x1e,0xff,0xf4,0xfe,0xb0,0xff,0x3c,0x0,0xc1,0xff,0xe9,0xff, +0xdb,0x0,0x4c,0x1,0x37,0x1,0x53,0x0,0x19,0xff,0x40,0xff, +0xab,0xff,0xd,0xff,0x31,0xff,0xb1,0xff,0xd0,0xfe,0x57,0xfe, +0xe7,0xfe,0xd2,0xfe,0x1,0xff,0xdc,0xff,0xfe,0xff,0x39,0x0, +0xc7,0x0,0x6d,0x0,0x75,0x0,0x17,0x1,0x95,0x0,0x55,0x0, +0xe6,0x0,0xfb,0xff,0x3,0xff,0xc2,0xff,0x6c,0xff,0xb7,0xfd, +0x8a,0xfd,0x99,0xfe,0xa5,0xff,0x85,0x0,0x4f,0x0,0xe0,0xff, +0xf4,0x0,0x17,0x2,0xba,0x1,0xac,0x0,0xcb,0xff,0xd4,0xff, +0x89,0x0,0x2f,0x0,0xe,0xff,0xc7,0xfe,0xdf,0xfe,0xb9,0xfe, +0xa4,0xfe,0x67,0xfe,0x93,0xfe,0xb2,0xff,0xbc,0x0,0x7e,0x1, +0xfd,0x1,0xff,0x0,0x86,0xff,0xac,0xff,0x56,0x0,0x2c,0x0, +0xc0,0xff,0xc3,0xfe,0x7f,0xfd,0xf8,0xfd,0xf5,0xff,0x2,0x1, +0x68,0x0,0x85,0xff,0x7b,0xff,0x6,0x0,0x90,0x0,0xfc,0x0, +0x9f,0x0,0x68,0xff,0x26,0xff,0x1c,0x0,0x7c,0x0,0x15,0x0, +0xa9,0xff,0x6a,0xff,0xdb,0xff,0x7b,0x0,0x3d,0x0,0xa5,0xff, +0xf3,0xfe,0xaa,0xfe,0x40,0x0,0x93,0x1,0x31,0x0,0x30,0xff, +0xeb,0xff,0x9d,0xff,0x5c,0xff,0x70,0x0,0x87,0x0,0x8d,0x0, +0xb9,0x1,0xf9,0x0,0xcd,0xfe,0x76,0xfe,0xcf,0xfe,0xc3,0xfe, +0x28,0xff,0x30,0xff,0x3d,0xff,0x8,0x0,0xf0,0xff,0x8b,0xff, +0x77,0x0,0x3d,0x1,0x8f,0x1,0xf6,0x1,0xe8,0x0,0x77,0xff, +0x87,0xff,0x45,0xff,0xa6,0xfe,0x50,0xff,0x7e,0xff,0xd0,0xfe, +0x35,0xff,0xba,0xff,0xb9,0xff,0x4,0x0,0xb3,0xff,0x9b,0xff, +0x28,0x1,0xd3,0x1,0xf1,0x0,0xee,0x0,0xde,0x0,0xfd,0xff, +0x32,0x0,0x7e,0x0,0x96,0xff,0xc,0xff,0xb9,0xfe,0x4a,0xfe, +0x5b,0xff,0x9c,0x0,0xf2,0xff,0x14,0xff,0x4a,0xff,0xbd,0xff, +0x4c,0x0,0xa9,0x0,0x8f,0x0,0xba,0x0,0xf5,0x0,0xc6,0x0, +0x85,0x0,0xbe,0xff,0xa7,0xfe,0xd8,0xfe,0xd,0x0,0x9f,0x0, +0xf7,0xff,0x97,0xfe,0x30,0xfe,0x7c,0xff,0x8b,0x0,0xa7,0x0, +0xd0,0x0,0x99,0x0,0x4c,0x0,0xf6,0x0,0x1d,0x1,0xc,0x0, +0x6b,0xff,0x43,0xff,0x62,0xff,0x54,0x0,0x9c,0x0,0xb6,0xff, +0x7c,0xff,0xb9,0xff,0xa1,0xff,0xfd,0xff,0x60,0x0,0x4b,0x0, +0x38,0x0,0xd6,0xff,0xf3,0xff,0x33,0x1,0x42,0x1,0x13,0x0, +0x26,0x0,0x5e,0x0,0x9a,0xff,0x80,0xff,0x94,0xff,0x4e,0xff, +0xe1,0xff,0x2e,0x0,0xa0,0xff,0xc0,0xff,0xb5,0xff,0x43,0xff, +0x39,0x0,0x1a,0x1,0x8e,0x0,0x7d,0x0,0xa7,0x0,0x43,0x0, +0xa0,0x0,0xdf,0x0,0x28,0x0,0xd,0x0,0xe1,0xff,0xe3,0xfe, +0xdb,0xfe,0x9,0xff,0x46,0xfe,0xce,0xfe,0xd0,0x0,0xe2,0x1, +0xc3,0x1,0x3c,0x1,0xd1,0x0,0xc7,0x0,0x66,0x0,0x3b,0x0, +0xfc,0x0,0xa1,0x0,0x29,0xff,0x2d,0xff,0xb5,0xff,0x4d,0xff, +0x75,0xff,0xcf,0xff,0x90,0xff,0x32,0x0,0xec,0x0,0x71,0x0, +0x7b,0x0,0xfd,0x0,0x6c,0x0,0xfe,0xff,0x5f,0x0,0x99,0x0, +0x8f,0x0,0xd8,0xff,0x13,0xff,0xea,0xff,0x75,0x0,0x2e,0xff, +0x1e,0xff,0x5c,0x0,0x8,0x0,0x9a,0xff,0x74,0x0,0x89,0x0, +0xe7,0xff,0xaf,0xff,0x9f,0xff,0x4f,0x0,0x33,0x1,0xf8,0x0, +0xda,0x0,0xee,0x0,0x11,0x0,0xe0,0xff,0x2d,0x0,0x18,0xff, +0xc5,0xfe,0xd3,0xff,0xb7,0xff,0xe8,0xff,0x31,0x1,0x8d,0x0, +0x54,0xff,0x29,0x0,0x5,0x1,0x3e,0x1,0x7e,0x1,0xba,0x0, +0x5,0x0,0x34,0x0,0xe0,0xff,0x8,0x0,0x6e,0x0,0xbd,0xfe, +0xe9,0xfd,0xf6,0xff,0xa0,0x0,0x97,0xff,0xf5,0xff,0x52,0x0, +0x0,0x0,0x98,0x0,0xf9,0x0,0x60,0x0,0xfa,0xff,0x24,0x0, +0xfd,0x0,0x62,0x1,0x14,0x0,0x21,0xff,0x85,0xff,0xa5,0xff, +0x6,0x0,0x7f,0x0,0x6d,0xff,0xd6,0xfe,0xb,0x0,0x79,0x0, +0x18,0x0,0x78,0x0,0x88,0x0,0x25,0x0,0x8c,0x0,0x68,0x1, +0x9d,0x1,0xb1,0x0,0xde,0xff,0x5f,0x0,0x81,0x0,0x9f,0xff, +0x9e,0xff,0x7a,0xff,0x6e,0xfe,0x47,0xff,0x1a,0x1,0xab,0x0, +0xd7,0xff,0x71,0x0,0xc5,0x0,0xce,0x0,0x54,0x1,0x61,0x1, +0x81,0x0,0x7f,0xff,0x94,0xff,0x65,0x0,0xea,0xff,0x26,0xff, +0xea,0xff,0xbe,0xff,0x8b,0xfe,0xaa,0xff,0xcf,0x0,0x9f,0xff, +0x28,0x0,0x50,0x2,0xb4,0x1,0x17,0x0,0x3a,0x0,0x34,0x0, +0x99,0xff,0xb7,0xff,0xfd,0xff,0xef,0xff,0xf3,0xff,0x6f,0x0, +0xda,0x0,0xbc,0xff,0xa1,0xfe,0x14,0x0,0x21,0x1,0xcf,0xff, +0x4,0x0,0x6c,0x1,0x6f,0x0,0xbc,0xff,0x45,0x1,0x45,0x1, +0xcb,0xff,0x2f,0x0,0x4f,0x1,0xbb,0x0,0x90,0xff,0xe1,0xff, +0x9e,0x0,0x60,0xff,0x34,0xfe,0xb9,0xff,0x98,0x0,0xa1,0xff, +0x99,0x0,0xb3,0x1,0x3f,0x0,0x33,0x0,0x8b,0x1,0x6e,0x0, +0x75,0xff,0x91,0x0,0xc8,0x0,0x54,0x0,0x70,0x0,0x6,0x0, +0x53,0xff,0xaa,0xfe,0x8e,0xfe,0xf,0x0,0xb7,0x0,0xbf,0xff, +0x90,0x0,0x9e,0x1,0x8f,0x0,0xb7,0x0,0x7f,0x1,0x12,0x0, +0xa0,0xff,0xe0,0x0,0x8f,0x0,0xc8,0xff,0xfc,0xff,0x51,0x0, +0x8c,0x0,0xd8,0xff,0x6c,0xff,0xbc,0x0,0x5d,0x0,0xd7,0xfe, +0x4b,0x0,0xc,0x1,0xa3,0xff,0x9,0x1,0x6,0x2,0x97,0xff, +0xd8,0xff,0xe7,0x1,0xc6,0x0,0xd0,0xff,0x3d,0x0,0xc0,0xff, +0x1f,0x0,0x83,0x0,0x4c,0xff,0x2f,0xff,0x94,0xff,0x45,0xff, +0x40,0x0,0x82,0x0,0x99,0xff,0x29,0x1,0x21,0x2,0x3b,0x0, +0x64,0x0,0x8d,0x1,0x4a,0x0,0x7,0x0,0xd8,0x0,0xd6,0xff, +0x8,0xff,0x3a,0xff,0x6f,0xff,0x46,0x0,0x46,0x0,0x96,0xff, +0x4a,0x0,0x2c,0x0,0x98,0xff,0x9e,0x1,0x38,0x2,0x38,0x0, +0x2b,0x1,0x4a,0x2,0x91,0xff,0xbc,0xfe,0xa2,0x0,0x16,0x0, +0x26,0xff,0x1e,0x0,0x40,0x0,0xc9,0xff,0x16,0x0,0x2a,0x0, +0x0,0x0,0xd1,0xff,0x13,0x0,0x6e,0x1,0xaa,0x1,0x5f,0x0, +0xa7,0x0,0x28,0x1,0xac,0xff,0x6a,0xff,0x84,0x0,0xb9,0xff, +0xe,0xff,0x2e,0x0,0x41,0x0,0x6c,0xff,0xc5,0xff,0x63,0x0, +0x65,0x0,0x34,0x0,0x44,0x0,0xef,0x0,0x2f,0x1,0xb5,0x0, +0xf6,0x0,0xe5,0x0,0xa2,0xff,0xb4,0xff,0x71,0x0,0x68,0xff, +0x51,0xff,0x16,0x1,0xc3,0x0,0x1a,0xff,0xc3,0xff,0x3c,0x1, +0xf2,0x0,0x4,0x0,0x38,0x0,0xea,0x0,0x95,0x0,0x52,0x0, +0x3f,0x1,0xe1,0x0,0x2e,0xff,0x99,0xff,0xee,0x0,0xa4,0x0, +0x88,0x0,0x84,0x0,0x3d,0xff,0x17,0xff,0x47,0x0,0x38,0x0, +0xc9,0xff,0x1c,0x0,0x2e,0x0,0x2b,0x0,0x4f,0x0,0x4a,0x0, +0x77,0x0,0x9e,0x0,0xf9,0x0,0xbe,0x1,0x26,0x1,0x9d,0xff, +0xae,0xff,0x32,0x0,0xac,0xff,0x93,0xff,0xb9,0xff,0x1d,0xff, +0xed,0xfe,0xe0,0xff,0x8,0x1,0x1e,0x1,0x57,0x0,0xd2,0x0, +0xec,0x1,0x53,0x1,0xfd,0x0,0xb6,0x1,0x73,0x0,0xe0,0xfe, +0xb9,0xff,0xf4,0xff,0xf3,0xfe,0x63,0xff,0xe2,0xff,0x84,0xff, +0x26,0x0,0x7,0x1,0xe6,0x0,0xc4,0x0,0xc,0x1,0x23,0x1, +0x82,0x0,0xeb,0xff,0xbe,0x0,0x43,0x1,0xfe,0xff,0x93,0xff, +0x8,0x0,0xe6,0xfe,0x5b,0xfe,0xc1,0xff,0x34,0x0,0x1d,0x0, +0xc,0x1,0x1d,0x1,0x49,0x0,0x39,0x0,0x49,0x0,0x54,0x0, +0xb7,0x0,0x94,0x0,0x6e,0x0,0xdc,0x0,0xa3,0x0,0x16,0x0, +0x2e,0x0,0xd5,0xff,0x3c,0xff,0xbe,0xff,0x28,0x0,0xd5,0xff, +0x6e,0x0,0x34,0x1,0x73,0x0,0xfc,0xff,0xe9,0x0,0x18,0x1, +0x5d,0x0,0x51,0x0,0x71,0x0,0x4e,0x0,0xb2,0x0,0x1f,0x1, +0xbd,0x0,0xd3,0xff,0x17,0xff,0x5e,0xff,0x3e,0x0,0x50,0x0, +0xe6,0xff,0xec,0xff,0x28,0x0,0x7a,0x0,0x67,0x0,0xf3,0xff, +0x8f,0x0,0x33,0x1,0x47,0x0,0x1a,0x0,0xe7,0x0,0xfe,0xff, +0x4b,0xff,0x90,0x0,0xc4,0x0,0xa0,0xff,0x42,0xff,0x62,0xff, +0x14,0x0,0xc4,0x0,0xd3,0xff,0x6a,0xff,0xed,0x0,0x4f,0x1, +0x62,0x0,0x83,0x0,0xfb,0x0,0xa2,0x0,0x8,0x0,0x2c,0x0, +0x3a,0x1,0x30,0x1,0xb1,0xff,0x59,0xff,0x8c,0xff,0xd0,0xfe, +0x46,0xff,0x8e,0x0,0x98,0x0,0xc8,0x0,0xf7,0x0,0x58,0x0, +0x23,0x1,0xe5,0x1,0x59,0x0,0x0,0x0,0x16,0x1,0x10,0x0, +0x1d,0xff,0xd0,0xff,0x96,0xff,0x65,0xff,0x8,0x0,0x8b,0xff, +0x5b,0xff,0x26,0x0,0xe5,0xff,0x5a,0x0,0x0,0x2,0x70,0x1, +0x40,0x0,0x3,0x1,0xce,0x0,0x86,0xff,0xf4,0xff,0x72,0x0, +0xd7,0xff,0xbe,0xff,0x87,0xff,0x2d,0xff,0x50,0x0,0x5e,0x1, +0xd9,0x0,0x4b,0x0,0xe,0x0,0xd3,0xff,0x3e,0x0,0xad,0x0, +0xb0,0x0,0xbc,0x0,0x57,0x0,0x5d,0x0,0x8d,0x1,0x50,0x1, +0xac,0xff,0xde,0xff,0xa4,0x0,0xde,0xff,0x85,0xff,0xd4,0xff, +0x9d,0xff,0xe5,0xff,0x38,0x0,0xd8,0xff,0x64,0x0,0x34,0x1, +0x9d,0x0,0x2e,0x0,0xc5,0x0,0x1f,0x1,0xc5,0x0,0x20,0x0, +0x41,0x0,0xd0,0x0,0xc8,0xff,0xca,0xfe,0xfe,0xff,0x55,0x0, +0xfb,0xfe,0x3b,0xff,0x44,0x0,0x34,0x0,0x82,0x0,0x27,0x1, +0x40,0x1,0x49,0x1,0xd3,0x0,0x3b,0x0,0x92,0x0,0xb7,0x0, +0x22,0x0,0xb3,0xff,0x6f,0xff,0x99,0xff,0xd9,0xff,0xad,0xff, +0x86,0x0,0x50,0x1,0xd4,0xff,0x46,0xff,0xb,0x1,0x43,0x1, +0x6e,0x0,0xf3,0x0,0xf,0x1,0x7c,0x0,0x33,0x0,0xb0,0xff, +0x1b,0x0,0xd2,0x0,0x88,0xff,0xce,0xfe,0xfb,0xff,0x5,0x0, +0xf7,0xff,0x31,0x1,0xd1,0x0,0xb2,0xff,0x27,0x0,0x34,0x0, +0xfa,0xff,0x1c,0x1,0x30,0x1,0xad,0xff,0xb1,0xff,0xcf,0x0, +0x84,0x0,0xd0,0xff,0x47,0x0,0x4a,0x0,0x20,0xff,0x56,0xff, +0xbe,0x0,0x73,0x0,0xbf,0xff,0x5f,0x0,0x4d,0x0,0x9,0x0, +0x4,0x1,0xe3,0x0,0x2d,0x0,0x2a,0x1,0x1d,0x1,0x6f,0xff, +0x8c,0xff,0x79,0x0,0x5e,0x0,0x66,0x0,0x17,0x0,0x9b,0xff, +0x5c,0x0,0x7c,0x0,0xa2,0xff,0x4c,0x0,0xce,0x0,0x84,0xff, +0x56,0xff,0xa4,0x0,0x17,0x1,0x6,0x1,0x13,0x1,0xc4,0x0, +0x70,0x0,0x2f,0x0,0xf3,0xff,0xb,0x0,0xd1,0xff,0x35,0xff, +0x34,0xff,0x89,0xff,0xcf,0xff,0x55,0x0,0x52,0x0,0xd2,0xff, +0x5c,0x0,0x40,0x1,0x4d,0x1,0x84,0x1,0x7f,0x1,0x3f,0x0, +0xb6,0xff,0x48,0x0,0xbc,0xff,0xff,0xfe,0x8e,0xff,0xb1,0xff, +0x2c,0xff,0x6c,0xff,0xf7,0xff,0xaa,0x0,0x8f,0x1,0x63,0x1, +0xee,0x0,0x2c,0x1,0xa7,0x0,0x36,0x0,0x2d,0x1,0xd5,0x0, +0xff,0xfe,0x11,0xff,0xd,0x0,0xa4,0xff,0x80,0xff,0x49,0x0, +0x5e,0x0,0xda,0xff,0xca,0xff,0x44,0x0,0xe7,0x0,0x3c,0x1, +0xf6,0x0,0x1d,0x0,0x96,0xff,0x37,0x0,0xb0,0x0,0xf,0x0, +0xc3,0xff,0xe8,0xff,0x86,0xff,0x97,0xff,0x67,0x0,0xaa,0x0, +0x26,0x0,0x8b,0xff,0xd6,0xff,0xd6,0x0,0xa4,0x0,0xd,0x0, +0xac,0x0,0x4e,0x0,0x3a,0xff,0x4f,0x0,0xe5,0x0,0x9f,0xff, +0x78,0x0,0xb9,0x1,0x2,0x0,0x4c,0xff,0xb8,0x0,0x68,0x0, +0x74,0xff,0xd0,0xff,0xc8,0xff,0x99,0xff,0x28,0x0,0x6f,0x0, +0x81,0x0,0xa9,0x0,0x82,0x0,0x96,0x0,0xa1,0x0,0xd,0x0, +0x15,0x0,0xc0,0x0,0x70,0x0,0xb3,0xff,0xc0,0xff,0xb3,0xff, +0x46,0xff,0xa8,0xff,0x2d,0x0,0x82,0xff,0x53,0xff,0xaf,0x0, +0x10,0x1,0x35,0x0,0xa0,0x0,0x17,0x1,0xe5,0xff,0x86,0xff, +0x9d,0x0,0xa6,0x0,0xe4,0xff,0xd4,0xff,0xca,0xff,0x4c,0xff, +0x53,0xff,0x24,0x0,0x50,0x0,0x63,0xff,0x68,0xff,0x5e,0x0, +0x22,0x0,0x3c,0x0,0xe5,0x1,0xc3,0x1,0xb,0x0,0x57,0x0, +0xfb,0x0,0xd3,0xff,0x51,0xff,0xeb,0xff,0xcf,0xff,0x66,0xff, +0x4a,0xff,0x51,0xff,0xa5,0xff,0xe4,0xff,0x43,0x0,0x3e,0x1, +0x6a,0x1,0x67,0x0,0x3f,0x0,0xbd,0x0,0x10,0x0,0x4e,0xff, +0xd2,0xff,0x12,0x0,0x9e,0xff,0xd5,0xff,0xc1,0xff,0xef,0xfe, +0xaf,0xff,0xbd,0x0,0x76,0xff,0x46,0xff,0x77,0x1,0xf,0x1, +0x45,0xff,0xdb,0x0,0x21,0x2,0x1,0x0,0x0,0xff,0x46,0x0, +0x98,0x0,0x15,0x0,0xf,0x0,0x3a,0x0,0x24,0x0,0xae,0xff, +0xa5,0xff,0x2a,0x0,0xdf,0xff,0x60,0xff,0xec,0xff,0x39,0x0, +0x2e,0x0,0xf6,0x0,0x31,0x1,0x4f,0x0,0x31,0x0,0x92,0x0, +0x12,0x0,0xac,0xff,0x22,0x0,0x20,0x0,0x40,0xff,0x23,0xff, +0xd,0x0,0x21,0x0,0x74,0xff,0xc5,0xff,0x4b,0x0,0xb7,0xff, +0x7b,0xff,0x66,0x0,0xd8,0x0,0x73,0x0,0x85,0x0,0xa3,0x0, +0x94,0xff,0xfa,0xfe,0x4e,0x0,0xb8,0x0,0x2d,0xff,0x3b,0xff, +0x5f,0x0,0x76,0xff,0xc,0xff,0xb5,0x0,0xd1,0x0,0x95,0xff, +0xd5,0xff,0x7a,0x0,0xab,0x0,0xf3,0x0,0x7c,0x0,0xcb,0xff, +0xe5,0xff,0xca,0xff,0x99,0xff,0x4,0x0,0x42,0x0,0x79,0x0, +0x94,0x0,0x8e,0xff,0x2,0xff,0x1f,0x0,0x69,0x0,0x71,0xff, +0xa4,0xff,0x6c,0x0,0xf,0x0,0xda,0xff,0xc1,0x0,0xfc,0x0, +0x27,0x0,0xd,0x0,0x48,0x0,0x86,0xff,0x3d,0xff,0xe,0x0, +0x4,0x0,0x47,0xff,0x33,0xff,0x3b,0xff,0x56,0xff,0xed,0xff, +0x47,0x0,0x78,0x0,0xa1,0x0,0x82,0x0,0x11,0x1,0x6c,0x1, +0xfb,0xff,0x75,0xff,0x97,0x0,0xbb,0xff,0x97,0xfe,0x28,0x0, +0x55,0x0,0x5f,0xfe,0x38,0xff,0xea,0x0,0xad,0xff,0x39,0xff, +0xf1,0x0,0x3,0x1,0x23,0x0,0xb7,0x0,0xf0,0x0,0x39,0x0, +0x39,0x0,0x5e,0x0,0xd4,0xff,0x4e,0xff,0x20,0xff,0x70,0xff, +0xdb,0xff,0x94,0xff,0x82,0xff,0x5,0x0,0xb8,0xff,0x71,0xff, +0x3e,0x0,0x46,0x0,0xe1,0xff,0xbb,0x0,0xce,0x0,0xce,0xff, +0x77,0x0,0x24,0x1,0x50,0xff,0xa4,0xfd,0x66,0xfe,0xc3,0xff, +0xc8,0xff,0x64,0xff,0x2e,0x0,0x7e,0x0,0x5e,0xff,0x40,0x0, +0x36,0x2,0x90,0x0,0xbd,0xfe,0x50,0x0,0x83,0x0,0x58,0xff, +0xd0,0x0,0x53,0x1,0x53,0xff,0x25,0xff,0xb5,0xff,0x15,0xff, +0xbc,0xff,0x97,0x0,0xa7,0xff,0x66,0xff,0x52,0x0,0x32,0x0, +0x5a,0xff,0x63,0xff,0x33,0x0,0x3b,0x0,0x6d,0xff,0xc5,0xff, +0xa0,0x0,0xfd,0xff,0x4a,0xff,0xcc,0xff,0x51,0x0,0x43,0x0, +0x80,0xff,0x19,0xff,0x23,0x0,0x0,0x0,0x87,0xfe,0x5e,0xff, +0x55,0x0,0xff,0xfe,0x70,0xff,0x9,0x1,0x33,0x0,0xff,0xff, +0xf,0x1,0x51,0x0,0xa,0x0,0xb9,0x0,0x7d,0xff,0xe9,0xfe, +0x38,0x0,0xcc,0xff,0xb0,0xfe,0x26,0xff,0x4e,0xff,0x30,0xff, +0xd7,0xff,0xf5,0xff,0xdd,0xff,0x7b,0x0,0xad,0x0,0x97,0x0, +0x3d,0x1,0x50,0x1,0x9f,0xff,0x18,0xfe,0xa5,0xfe,0xbd,0xff, +0xb9,0xff,0xa6,0xff,0x82,0xff,0x9b,0xfe,0xdb,0xfe,0x45,0x0, +0x73,0x0,0x6d,0x0,0x16,0x1,0x74,0x0,0x9a,0xff,0x56,0x0, +0xb9,0x0,0x4,0x0,0x6b,0xff,0xa,0xff,0x38,0xff,0x95,0xff, +0x10,0xff,0xe3,0xfe,0x90,0xff,0xd7,0xff,0x74,0x0,0x16,0x1, +0xef,0xff,0x13,0xff,0x33,0x0,0x92,0x0,0xcd,0xff,0x2d,0x0, +0xd2,0x0,0x4d,0x0,0xe1,0xff,0x5a,0x0,0x53,0x0,0x1c,0xff, +0x95,0xfe,0x89,0xff,0xb5,0xff,0x36,0xff,0x32,0x0,0xd3,0x0, +0xf9,0xff,0x71,0x0,0x18,0x1,0x94,0xff,0x1a,0xff,0x17,0x0, +0x68,0xff,0xae,0xff,0xc5,0x1,0x95,0x0,0x30,0xfe,0xcc,0xff, +0x45,0x1,0x7e,0xff,0xb5,0xfe,0x81,0xff,0x92,0xff,0x9d,0xff, +0xbc,0xff,0xff,0xff,0xf8,0x0,0x52,0x0,0xa4,0xfe,0xf7,0xff, +0xbf,0x1,0x54,0x0,0x5f,0xff,0x49,0x0,0xf6,0xff,0x8a,0xff, +0x5f,0x0,0x7,0x0,0xe5,0xfe,0xf,0xff,0x62,0xff,0x25,0xff, +0xac,0xff,0x7f,0x0,0x3b,0x0,0xea,0xff,0x90,0x0,0x9c,0x0, +0x2c,0x0,0x1f,0x1,0x3d,0x1,0x5c,0xff,0xa2,0xff,0xc9,0x0, +0x8b,0xfe,0xa1,0xfd,0x41,0x0,0x4,0x0,0x59,0xfe,0xf4,0xff, +0x86,0x0,0x6a,0xff,0xbf,0x0,0xb,0x1,0xf7,0xfe,0x8f,0xff, +0x33,0x1,0x77,0x0,0xe6,0xff,0xe4,0xff,0x38,0xff,0x64,0xff, +0x9e,0xff,0xc0,0xfe,0xf3,0xfe,0xfd,0xff,0x8e,0xff,0xcd,0xfe, +0x96,0xff,0xb3,0x0,0x68,0x0,0x96,0xff,0xf5,0xff,0xa4,0x0, +0x41,0x0,0xb4,0xff,0x78,0xff,0x2a,0xff,0x65,0xff,0xff,0xff, +0x47,0x0,0x32,0x0,0x57,0xff,0xe7,0xfe,0x55,0x0,0xde,0x0, +0x4f,0xff,0x28,0xff,0xed,0xff,0x34,0xff,0xa3,0xff,0x5d,0x1, +0x87,0x0,0x16,0xff,0x3e,0x0,0xe0,0x0,0xb8,0xff,0x10,0x0, +0xd1,0x0,0x41,0xff,0x81,0xfe,0x40,0x0,0x3c,0x0,0x8a,0xfe, +0x65,0xff,0xaa,0x0,0xa8,0xff,0xeb,0xff,0x54,0x1,0x4f,0x0, +0x78,0xff,0xd2,0x0,0xf3,0x0,0xd2,0xff,0xa2,0xff,0x86,0xff, +0x7f,0xff,0x0,0x0,0xf9,0xff,0xb8,0xff,0x18,0xff,0xe1,0xfd, +0xd9,0xfe,0x4f,0x1,0x1b,0x1,0x7,0x0,0x88,0x0,0x35,0x0, +0x20,0x0,0xa9,0x1,0x90,0x0,0x18,0xfe,0x8e,0xff,0x10,0x1, +0x47,0xff,0x90,0xff,0x61,0x1,0x53,0xff,0x5d,0xfd,0xa0,0xff, +0xc,0x1,0xcd,0xff,0xeb,0xff,0xac,0x0,0xc3,0xff,0xa8,0xff, +0x2f,0x1,0x22,0x1,0x76,0xff,0x61,0xff,0x7c,0x0,0x6,0x0, +0x3,0xff,0x72,0xff,0x99,0xff,0xa0,0xfe,0xca,0xfe,0xf0,0xff, +0xe5,0xff,0x45,0xff,0xc5,0xff,0xd8,0x0,0x85,0x0,0x27,0xff, +0xd0,0xff,0x57,0x1,0xbd,0xff,0x53,0xfe,0x7e,0x0,0xc6,0x0, +0x6f,0xfe,0x11,0xff,0x5e,0x0,0x7d,0xff,0x69,0xff,0xd0,0xfe, +0xdb,0xfd,0x7b,0x0,0xa3,0x1,0x8b,0xfe,0x11,0xff,0x85,0x1, +0x5a,0xff,0x89,0xfe,0x83,0x1,0x6d,0x1,0x1,0xff,0x44,0xfe, +0xbc,0xfe,0x53,0x0,0x8,0x1,0x8d,0xff,0x91,0xff,0x52,0x0, +0xc2,0xfe,0x62,0xfe,0x30,0x0,0x62,0x0,0x67,0xff,0xd,0xff, +0x99,0xff,0x12,0x1,0x8,0x1,0x5c,0xff,0x81,0xff,0x55,0x0, +0xd0,0xff,0xc6,0xff,0xd6,0xff,0x2b,0xff,0x8,0xff,0xe1,0xfe, +0x10,0xff,0x25,0x0,0x96,0xff,0xa1,0xfe,0xdd,0xff,0x72,0x0, +0x6e,0x0,0x8d,0x1,0xa1,0x0,0x5d,0xff,0xd7,0x0,0xe5,0xff, +0x9b,0xfd,0x18,0x0,0x86,0x1,0xb7,0xfe,0x26,0xff,0x9,0x1, +0xfe,0xfe,0x22,0xfe,0x1d,0x0,0x56,0x0,0xee,0xff,0xa5,0x0, +0xe4,0x0,0xf1,0x0,0xe5,0x0,0x11,0x0,0x6f,0xff,0x11,0xff, +0xd0,0xfe,0x9b,0xff,0x86,0x0,0x74,0x0,0xf9,0xff,0x24,0xff, +0xb8,0xfe,0x5,0x0,0x30,0x1,0xfb,0xff,0x89,0xfe,0xc1,0xff, +0x7a,0x1,0x52,0x0,0x4a,0xff,0x53,0x1,0x74,0x1,0xb1,0xfe, +0xb5,0xff,0xf3,0x1,0x28,0xff,0xb1,0xfd,0xf3,0x0,0xb4,0x0, +0xa1,0xfd,0xc,0xff,0x87,0x1,0xce,0x0,0x59,0x0,0x17,0x1, +0xff,0x0,0x37,0x0,0x1e,0xff,0x9,0xff,0x2,0x1,0x0,0x2, +0x40,0x0,0xe6,0xfe,0xe5,0xff,0x15,0x1,0x22,0x0,0x79,0xfe, +0x38,0xff,0xc2,0x0,0xd4,0xff,0x32,0xff,0x3e,0x1,0xf4,0x1, +0xd1,0xff,0xd3,0xfe,0x42,0x0,0x26,0x1,0xc7,0xff,0x9f,0xfe, +0x2d,0x0,0x98,0x1,0x3f,0x0,0x32,0xff,0xaf,0xff,0x8d,0xff, +0xd1,0xff,0xae,0x0,0xfd,0xff,0x9c,0xff,0x87,0x0,0xa9,0xff, +0xa3,0xfe,0x95,0x0,0xff,0x1,0x76,0x0,0x77,0xff,0xb3,0x0, +0x9f,0x1,0x93,0x0,0x7f,0xff,0xd0,0xff,0x4,0xff,0x33,0xfd, +0xb8,0xfe,0xdb,0x1,0x6f,0x1,0xa9,0xff,0xcf,0xff,0xec,0xff, +0x7d,0xff,0xe6,0xff,0xd8,0x0,0x86,0x1,0xbd,0x0,0x5d,0xff, +0x5d,0x0,0x8f,0x1,0xc0,0xff,0x96,0xfe,0x6e,0xff,0xb7,0xfe, +0x73,0xfe,0xc6,0x0,0x20,0x1,0x31,0xff,0x92,0xff,0xfe,0x0, +0xab,0x0,0x4e,0x0,0x69,0x0,0xe9,0xff,0x9,0x0,0xc2,0x0, +0xff,0xff,0xc3,0xfe,0x41,0xff,0xd,0x0,0xbf,0xff,0xf1,0xff, +0x95,0x0,0xb8,0xff,0x92,0xfe,0x4f,0xff,0x89,0x0,0x62,0x0, +0xa4,0xff,0x88,0xff,0x27,0x0,0xfa,0x0,0x37,0x1,0x92,0x0, +0xb3,0xff,0x4c,0xff,0x73,0xff,0xdc,0xff,0x4,0x0,0x9d,0xff, +0x4b,0xff,0xc1,0xff,0x77,0x0,0x84,0x0,0x61,0xff,0xcd,0xfd, +0x90,0xfe,0x5b,0x1,0x73,0x1,0xc8,0xff,0xfd,0x0,0x49,0x1, +0x33,0xfe,0xb9,0xfe,0xd6,0x1,0xcd,0xff,0x43,0xfd,0xe5,0xff, +0x8d,0x1,0xc8,0xff,0xf5,0xfe,0x44,0xff,0xa0,0xff,0xe8,0xff, +0x7b,0xff,0x2d,0x0,0x93,0x1,0x41,0x0,0xaa,0xfe,0xe2,0xff, +0xb6,0x0,0xe0,0xff,0x4c,0xff,0x1d,0xff,0x98,0xff,0x18,0x0, +0x5d,0xff,0x31,0xff,0xd3,0xff,0xa4,0xff,0x16,0x0,0x81,0x0, +0xcc,0xfe,0x8f,0xfe,0x3c,0x1,0x8,0x2,0x37,0x0,0x39,0xff, +0xe3,0xff,0x99,0x0,0xbd,0xff,0xc5,0xfe,0x83,0xff,0x55,0xff, +0x88,0xfe,0x6a,0x0,0x1d,0x1,0xc0,0xfe,0x37,0xff,0xdd,0x0, +0x3d,0xff,0x63,0xff,0xe0,0x1,0x97,0x0,0x3c,0xfe,0x7d,0xff, +0x4d,0x1,0x10,0x1,0xb6,0xff,0xfb,0xfe,0xaa,0xff,0x91,0xff, +0xaa,0xfe,0xc6,0xff,0xe7,0x0,0xf4,0xff,0xa4,0xff,0x11,0x0, +0x18,0x0,0x8e,0x0,0xc8,0xff,0xa9,0xfe,0xdc,0x0,0x58,0x2, +0xa5,0xff,0x9e,0xfe,0xa9,0x0,0xc6,0x0,0xa9,0xff,0xb0,0xff, +0x36,0xff,0x2f,0xfe,0xf5,0xfe,0x5a,0x1,0xb3,0x1,0xfd,0xfe, +0x80,0xfe,0x48,0x1,0x13,0x1,0xc3,0xfe,0xfa,0xff,0x90,0x1, +0x57,0x0,0xee,0xff,0x98,0x0,0x45,0x0,0xec,0xff,0x3f,0xff, +0x3b,0xfe,0xfc,0xfe,0x89,0x0,0xd2,0x0,0x4c,0x0,0xad,0xff, +0xe5,0xff,0xcd,0x0,0x6a,0x0,0xa3,0xff,0x27,0x0,0x67,0x0, +0x5f,0x0,0xf1,0x0,0x75,0x0,0xb6,0xff,0x62,0x0,0xe,0x0, +0x83,0xfe,0xc1,0xfe,0xee,0xff,0x1c,0x0,0x4d,0x0,0xee,0x0, +0xf3,0x0,0x29,0x0,0xdc,0xff,0xb9,0x0,0x9f,0x0,0x2d,0xff, +0x7a,0xff,0xfe,0x0,0x45,0x1,0x48,0x1,0x58,0x0,0x22,0xfe, +0xfa,0xfe,0x5a,0x1,0x7,0x0,0x7,0xff,0xec,0x0,0x13,0x0, +0x5c,0xfe,0xe9,0x0,0x60,0x2,0xc5,0xff,0x14,0xff,0xb0,0x0, +0x39,0x0,0x44,0xff,0x57,0x0,0x2b,0x1,0x1f,0x0,0x2f,0xff, +0x95,0xff,0xef,0xff,0x96,0xff,0x5a,0xff,0x64,0xff,0xfb,0xff, +0x1d,0x1,0xf5,0x0,0x36,0xff,0xb2,0xfe,0xb9,0x0,0x97,0x2, +0x7,0x1,0x12,0xfe,0xf8,0xfe,0x80,0x1,0xc,0x0,0x88,0xfe, +0x6f,0x0,0xea,0xff,0x9c,0xfd,0xba,0xff,0xe7,0x1,0x21,0x0, +0x94,0xff,0x31,0x0,0x24,0xff,0x14,0x0,0x18,0x2,0x75,0x0, +0xe8,0xfe,0x56,0x0,0xff,0xff,0x6c,0xfe,0x3b,0x0,0xf0,0x1, +0x70,0xff,0xb2,0xfd,0xf2,0xff,0xe5,0x0,0xa2,0xfe,0x4a,0xfe, +0x96,0x0,0x59,0x1,0x52,0x0,0xd,0x0,0xc0,0x0,0xa1,0x0, +0x13,0xff,0xf6,0xfe,0x22,0x1,0xcb,0x0,0x24,0xfe,0xeb,0xfe, +0xf2,0x0,0x43,0x0,0x5a,0x0,0xbf,0x0,0x71,0xfe,0x2a,0xfe, +0x9e,0x0,0x7,0x0,0x11,0xff,0x48,0x1,0x65,0x1,0xdc,0xfe, +0x3a,0xff,0x75,0x1,0x52,0x1,0x48,0xff,0x2c,0xfe,0x9,0xff, +0xd,0x0,0x1e,0x0,0xb1,0x0,0x1,0x1,0x84,0xff,0xd3,0xfe, +0x17,0x0,0x3b,0x0,0x36,0xff,0xbe,0xff,0xe3,0x0,0x50,0x0, +0x8c,0xff,0x93,0x0,0xd7,0x0,0x1,0xff,0x38,0xff,0x5e,0x1, +0x39,0x0,0xdd,0xfd,0xe8,0xfe,0x2f,0x0,0xbc,0xff,0x15,0x0, +0x42,0x0,0x9d,0xff,0xf6,0xff,0x2c,0x0,0x1b,0x0,0xed,0x0, +0x3a,0x0,0x93,0xfe,0xbd,0xff,0x79,0x1,0xb5,0x0,0x54,0xff, +0xb7,0xfe,0x60,0xff,0xac,0x0,0xca,0xff,0xb4,0xfe,0x3c,0x0, +0xd8,0xff,0x98,0xfd,0xeb,0xff,0xf7,0x2,0x9d,0x0,0xe1,0xfe, +0x2c,0x1,0x90,0x1,0xb3,0xff,0x56,0xff,0xcd,0xfe,0x8c,0xfd, +0xcc,0xfe,0x38,0x1,0xf1,0x0,0x5b,0xff,0x91,0xff,0xb1,0x0, +0xf2,0x0,0x4d,0x0,0x54,0xff,0x29,0xff,0xf0,0xff,0x43,0x0, +0xbf,0x0,0x81,0x1,0xe3,0xff,0x2c,0xfe,0x1b,0x0,0x77,0x0, +0x7,0xfd,0x92,0xfd,0x4e,0x1,0xb6,0x0,0xa7,0xff,0xd5,0x1, +0xe7,0x0,0x51,0xfd,0xf7,0xfd,0x29,0x1,0xf,0x2,0x67,0x0, +0x13,0xfe,0x85,0xfe,0x63,0x1,0x53,0x1,0x97,0xff,0x7e,0x0, +0x5,0x0,0x76,0xfd,0x9b,0xff,0x32,0x3,0x93,0x0,0xfb,0xfc, +0x1b,0xfe,0xe3,0xff,0xfd,0x0,0xfe,0x1,0xab,0xff,0x4a,0xfd, +0x33,0x0,0xa2,0x2,0x8d,0x0,0x67,0xff,0x28,0xff,0x6c,0xfd, +0xf6,0xfe,0x6e,0x2,0xe7,0x0,0xa0,0xfe,0xaf,0x0,0x22,0x1, +0x8c,0xfe,0xa3,0xfe,0xc1,0xff,0x74,0xfe,0x89,0xfe,0x96,0x1, +0x27,0x3,0x53,0x1,0xc1,0xfe,0x2d,0xfe,0x95,0xff,0xb5,0x0, +0x8a,0x0,0xfb,0xff,0xe7,0xfe,0x1e,0xfe,0x28,0x0,0x66,0x2, +0xdd,0xff,0xb6,0xfc,0xf1,0xfe,0xd6,0x1,0x47,0x1,0xe8,0x0, +0xff,0xff,0x2a,0xfd,0x62,0xfe,0xa9,0x2,0x2e,0x2,0x8b,0xff, +0x43,0xff,0x5b,0xfe,0x5e,0xfe,0x17,0x1,0xa8,0x0,0xb4,0xfd, +0x67,0xfe,0x8f,0x0,0x1d,0x1,0x63,0x1,0xc6,0x0,0x3f,0x0, +0xea,0x0,0x9f,0xff,0x7,0xfe,0xf6,0xff,0xa8,0x0,0xd5,0xfd, +0x9e,0xfd,0x96,0x0,0x9e,0x1,0xd9,0xff,0xe4,0xfd,0x5c,0xfe, +0x8f,0x0,0x9a,0x0,0xf5,0xfe,0x6d,0xff,0x37,0x1,0xa3,0x1, +0xb6,0x0,0x40,0xff,0x1e,0xfe,0xfe,0xfd,0xfe,0xfe,0xbd,0x0, +0x67,0x1,0x32,0x0,0xfa,0xfe,0xf7,0xfe,0x58,0x0,0x76,0x1, +0x66,0xff,0xe7,0xfd,0x2b,0x1,0x5c,0x2,0x1e,0xff,0x26,0xff, +0xfa,0xff,0x3b,0xfd,0x3f,0xfe,0xcc,0x1,0x59,0x0,0x96,0xff, +0xa3,0x1,0xe6,0xff,0x98,0xfe,0xc1,0x0,0xd2,0xff,0x51,0xfe, +0x20,0x0,0xa0,0xff,0x3b,0xfe,0xba,0x0,0x9,0x2,0xde,0xff, +0xed,0xfe,0x43,0x0,0x89,0x1,0xc0,0xff,0x22,0xfc,0xe2,0xfd, +0x36,0x3,0x54,0x2,0x1f,0xfe,0xd4,0xfe,0xa9,0x0,0x40,0xff, +0x88,0xfe,0xb3,0xff,0x66,0xff,0x84,0xfe,0x4a,0x0,0x65,0x2, +0x68,0x1,0x1,0x0,0x59,0xff,0xb9,0xfd,0x34,0xff,0xfe,0x2, +0x97,0x0,0x15,0xfd,0x25,0x0,0x50,0x0,0xcc,0xfc,0x85,0x0, +0x93,0x3,0x77,0xfe,0xa4,0xfd,0xa5,0x1,0x4f,0x0,0xe,0xff, +0x69,0x1,0xad,0x0,0x27,0xff,0x3c,0x0,0x1a,0x0,0x4b,0xff, +0x53,0xff,0xd9,0xfe,0xa2,0xff,0x24,0x1,0x5b,0x0,0xc7,0xfe, +0x0,0xfe,0xf9,0xfe,0x53,0x2,0x5d,0x2,0xec,0xfd,0x42,0xfe, +0xa7,0x2,0xbe,0x1,0xcd,0xfe,0xc2,0xff,0x9a,0xff,0x20,0xfd, +0xab,0xfe,0x64,0x2,0x68,0x1,0xdd,0xfe,0x50,0x0,0x99,0x0, +0x7f,0xfd,0x2d,0xff,0x23,0x3,0xc3,0xff,0x83,0xfc,0x92,0x0, +0xba,0x1,0xa7,0xfe,0x49,0x0,0xfd,0x1,0x95,0xff,0xc1,0xff, +0xc4,0x0,0x3b,0xfe,0xd7,0xfd,0x91,0x0,0xe7,0x0,0xe6,0xff, +0x56,0x0,0xd8,0x0,0x30,0x0,0x65,0xff,0x88,0x0,0x6e,0x1, +0x56,0xfe,0xb4,0xfc,0x14,0x1,0x79,0x3,0xdc,0x0,0xa5,0xff, +0xf1,0xfe,0xb8,0xfd,0x80,0x0,0x50,0x2,0x73,0xfe,0xb7,0xfd, +0x17,0x1,0x82,0xff,0xcc,0xfd,0x9d,0x2,0xcc,0x3,0xa7,0xfd, +0xd8,0xfc,0x3b,0x2,0x74,0x1,0x6b,0xfc,0xf2,0xfd,0x6b,0x2, +0x8b,0x1,0x24,0xff,0xbe,0xff,0x19,0x0,0x10,0xff,0xf6,0xfe, +0x29,0x0,0x0,0x2,0xc,0x2,0xcb,0xfe,0xa3,0xfd,0x6a,0x1, +0xa7,0x2,0x96,0xfe,0x19,0xfd,0xaa,0x0,0xd9,0x2,0xf7,0x0, +0xa9,0xfe,0x4,0xfe,0x53,0xfd,0x80,0xfd,0xa6,0x1,0xee,0x4, +0xcb,0x0,0x5a,0xfc,0xec,0xfe,0x5a,0x1,0xa2,0x0,0xe6,0x1, +0x79,0x0,0x32,0xfb,0xd2,0xfd,0xc1,0x4,0xe,0x2,0x61,0xfd, +0x60,0x0,0x2,0x1,0xcc,0xfd,0x99,0x0,0x17,0x3,0xb5,0xfd, +0xc,0xfb,0x7,0x0,0xe0,0x2,0x52,0x1,0xe0,0x0,0x8f,0x0, +0x82,0xfe,0x71,0xfe,0x82,0x0,0x21,0x0,0xb0,0xfe,0x59,0x0, +0xeb,0x1,0x81,0x0,0xd7,0xff,0xd4,0xff,0xd7,0xfd,0x6c,0xfe, +0xdb,0x2,0xee,0x2,0x7e,0xfd,0x48,0xfb,0xd9,0xfe,0xb1,0x2, +0xae,0x3,0x7f,0x2,0x60,0xff,0x82,0xfc,0x10,0xff,0x15,0x4, +0xb5,0x1,0xd6,0xfb,0x8a,0xfd,0x15,0x1,0xb8,0xff,0x2d,0x1, +0xca,0x3,0xdd,0xfe,0x1f,0xfb,0xaf,0xff,0xb2,0x2,0x7e,0x1, +0x8e,0x1,0x83,0x0,0x6e,0xfe,0x5,0x0,0xe5,0x1,0x20,0x0, +0xaf,0xfe,0x16,0x0,0x2b,0x1,0xb2,0xff,0x36,0xfe,0x29,0xff, +0x36,0x0,0x7e,0x0,0x3e,0x2,0xcb,0x2,0xc,0x0,0x91,0xfe, +0x8d,0xff,0xba,0x0,0x20,0x2,0x83,0x0,0xda,0xfb,0xe7,0xfc, +0xec,0x2,0xa9,0x3,0x38,0x0,0xcf,0xfe,0x64,0xfe,0x23,0xff, +0x67,0x2,0x7a,0x3,0x62,0xff,0xb7,0xfb,0x6a,0xfe,0x5c,0x3, +0xd7,0x2,0x3,0x0,0x6a,0x0,0x9f,0xff,0x9e,0xfd,0x58,0x0, +0x15,0x2,0x84,0xfe,0x99,0xfe,0x2e,0x2,0x2,0x1,0x46,0xff, +0x23,0x1,0xaf,0x0,0x16,0xfe,0x43,0xff,0x83,0x2,0xf1,0x1, +0xe9,0xfd,0xe9,0xfc,0x53,0x0,0x30,0x2,0x8a,0x1,0xa0,0x0, +0xf7,0xfd,0xfb,0xfd,0xa5,0x3,0xa5,0x3,0xa0,0xfc,0xc9,0xfc, +0x55,0x1,0xf0,0xff,0x8a,0x0,0x15,0x5,0x84,0x1,0xf8,0xfa, +0x39,0xfe,0x8e,0x3,0x62,0x1,0xe1,0xfe,0x3d,0x0,0x7c,0xff, +0x69,0xfe,0x3b,0x2,0x67,0x3,0xb2,0xfd,0xb0,0xfc,0xac,0x1, +0x7c,0x0,0x17,0xfd,0x8c,0x0,0x7,0x2,0x34,0xfe,0x87,0xff, +0x76,0x3,0x61,0x1,0x79,0xfe,0x7a,0xff,0x74,0x0,0xaf,0x0, +0x5e,0x1,0x63,0x0,0x19,0xfe,0xa5,0xfe,0x24,0x2,0x6e,0x2, +0x38,0xfe,0x3d,0xfd,0xb8,0x0,0x86,0x1,0xbe,0x0,0xde,0x1, +0xf4,0xff,0x5a,0xfc,0xf6,0xfe,0x5e,0x3,0xe8,0x1,0xc,0xff, +0x23,0xff,0x7b,0xff,0xb6,0xff,0xc4,0x0,0xa4,0x0,0x81,0xff, +0xbc,0xff,0x4c,0x0,0xa1,0xff,0x30,0x0,0x59,0x2,0xb3,0x1, +0x3,0xff,0xb4,0xff,0x6f,0x1,0x9b,0xff,0x98,0xfe,0x6,0x1, +0x4a,0x1,0x6,0xff,0x50,0xff,0x8c,0x0,0xb5,0xff,0x20,0x0, +0xff,0x1,0x4a,0x0,0x44,0xfd,0xea,0xfe,0x64,0x1,0x5d,0x0, +0xa,0x1,0xd5,0x2,0xdf,0xfe,0xd6,0xfb,0x9b,0x1,0x28,0x5, +0x8f,0xff,0x7d,0xfc,0xfc,0xff,0x52,0x1,0x37,0x0,0xeb,0x0, +0xb4,0x0,0x2,0xff,0x80,0xff,0xa0,0x0,0x26,0x0,0xb2,0x0, +0x56,0x1,0xcc,0xfe,0xe0,0xfd,0xbd,0x1,0x74,0x2,0xa4,0xfe, +0x48,0xff,0x19,0x2,0xac,0xff,0x1e,0xfe,0x33,0x1,0x31,0x1, +0xc8,0xfe,0x32,0x0,0xc,0x1,0x28,0xfe,0xd5,0xfd,0x49,0x1, +0x92,0x2,0xf6,0x0,0x72,0x0,0x71,0x0,0x35,0xfe,0x91,0xfd, +0xdc,0x1,0xeb,0x3,0x97,0xff,0xfe,0xfc,0x6f,0xff,0x18,0x1, +0xa,0x1,0xe2,0x0,0x33,0xff,0xb6,0xfd,0xf7,0xfe,0xed,0x0, +0x7d,0x1,0xc3,0x0,0xe2,0xff,0xdb,0xff,0xd9,0xff,0x34,0x0, +0xc4,0x1,0x18,0x1,0xeb,0xfd,0xda,0xfd,0x23,0x0,0xaf,0x0, +0x24,0x1,0x34,0x1,0x84,0xff,0xe4,0xff,0x24,0x1,0x39,0xff, +0xbf,0xfe,0x5f,0x1,0x3b,0x1,0xb5,0xff,0x5f,0x0,0xc7,0xff, +0x5c,0xfe,0x43,0x0,0x83,0x2,0x2d,0x1,0xaf,0xfe,0x3e,0xfe, +0x73,0xff,0x54,0x0,0xa7,0x0,0xe2,0x0,0xab,0xff,0xe,0xfe, +0x94,0xff,0x9,0x2,0x31,0x1,0x4c,0xff,0x1,0xff,0x36,0xff, +0xfd,0xff,0x2d,0x1,0xe1,0x0,0xbf,0xff,0xc4,0xff,0xa4,0x0, +0xa2,0x0,0x65,0xff,0x2b,0xff,0x7c,0x0,0x4a,0x0,0x9,0xff, +0xb2,0xff,0x5d,0x0,0xe7,0xff,0xc0,0x0,0x6d,0x1,0x8b,0x0, +0x27,0x0,0xab,0xfe,0x9f,0xfc,0x5d,0xff,0xfb,0x2,0xe7,0x0, +0xc8,0xfe,0xff,0xff,0xa2,0xff,0xd4,0xff,0x74,0x2,0xe3,0x0, +0x4,0xfd,0x87,0xfe,0x70,0x1,0xf,0x1,0xa,0x1,0xdc,0x0, +0x7e,0xfe,0xbb,0xfe,0x2,0x2,0x9,0x2,0xe8,0xfe,0x8d,0xfd, +0x9f,0xfe,0x7f,0x0,0xca,0x1,0xc4,0x0,0xe9,0xfe,0xc4,0xff, +0xbc,0x1,0xdb,0x0,0x31,0xff,0xc7,0xff,0xd0,0xff,0xad,0xfe, +0x49,0x0,0x54,0x2,0x2e,0x0,0x2,0xfe,0xb9,0xff,0x7a,0x1, +0x78,0x1,0xd7,0x0,0xda,0xfe,0xbe,0xfd,0xdc,0xff,0x83,0x1, +0x7,0x1,0x7f,0x0,0x17,0xff,0x10,0xfe,0x84,0x0,0x92,0x2, +0xe0,0x0,0x3,0xff,0x15,0xfe,0x0,0xfe,0x72,0x1,0x3c,0x4, +0x70,0x0,0x74,0xfc,0xf3,0xfe,0x2a,0x2,0x87,0x1,0x92,0x0, +0xda,0xff,0xb0,0xfd,0xc1,0xfd,0x13,0x1,0x85,0x1,0x1e,0xff, +0x7,0x0,0x74,0x1,0x47,0xff,0x6d,0xff,0xd6,0x1,0x31,0xff, +0x6,0xfd,0x50,0x1,0xb8,0x2,0x1b,0xff,0x7d,0xff,0x4a,0x1, +0x90,0xff,0xae,0xff,0x25,0x1,0xec,0xfe,0x78,0xfd,0x10,0x0, +0x21,0x2,0xe7,0x1,0x96,0x0,0xc2,0xfe,0x61,0xfe,0xdb,0xff, +0x1a,0x1,0xfb,0x0,0x19,0xff,0x18,0xfd,0x28,0xfe,0x2a,0x1, +0x76,0x2,0x92,0x1,0x89,0xff,0xf7,0xfd,0x1d,0xff,0xa4,0x1, +0xe2,0x1,0x30,0x0,0x98,0xff,0x43,0x0,0xa,0x0,0x2c,0xff, +0x7b,0xff,0x17,0x0,0x38,0x0,0x22,0x1,0xc3,0x0,0xd1,0xfd, +0xec,0xfd,0x9e,0x1,0x97,0x1,0x2d,0xff,0x68,0x0,0x64,0x1, +0xd5,0xfe,0x30,0xfe,0xe0,0x0,0xf1,0x1,0xc,0x0,0xfe,0xfd, +0x15,0xfe,0x2b,0x0,0x1a,0x2,0x9,0x2,0xa3,0xff,0x93,0xfd, +0x83,0xff,0x83,0x2,0x9,0x1,0x5c,0xfe,0x37,0xff,0x53,0x0, +0x1b,0x0,0x8,0x1,0xfa,0x0,0xce,0xfe,0xc2,0xfe,0xb5,0x0, +0xda,0x0,0x3f,0x0,0x38,0x0,0xc,0xff,0x88,0xfe,0xd7,0x0, +0x9c,0x1,0x2,0xff,0xf2,0xfe,0x9d,0x1,0xad,0x0,0x76,0xfe, +0xdb,0xff,0x34,0x0,0x5f,0xfe,0x73,0x0,0x8,0x3,0x36,0x0, +0xe4,0xfd,0x60,0xff,0x7b,0xff,0x4c,0xff,0x8b,0x1,0x6b,0x1, +0x78,0xfe,0x65,0xfe,0xa8,0x0,0x80,0x1,0x7a,0x1,0x15,0x1, +0x5f,0xff,0xd2,0xfd,0x91,0xfe,0xce,0x0,0xaf,0x1,0xf1,0xff, +0x37,0xfe,0x6d,0xff,0x8f,0x1,0x13,0x1,0x4d,0xff,0x15,0xff, +0x8a,0xff,0xdc,0xff,0xd2,0x0,0xc7,0x0,0x66,0xff,0xe5,0xff, +0xef,0x0,0x41,0xff,0xa3,0xfe,0x3,0x1,0x43,0x1,0xb4,0xff, +0x33,0x0,0xd9,0xff,0xcf,0xfd,0xde,0xfe,0xa3,0x1,0xba,0x1, +0x9c,0x0,0xe4,0xff,0x1f,0xff,0x92,0xff,0xb8,0x0,0x7f,0x0, +0xe,0x0,0x3c,0x0,0x81,0xff,0xa3,0xfe,0xa5,0xff,0x65,0x1, +0x32,0x1,0xd9,0xfe,0x94,0xfd,0x6d,0xff,0x6,0x1,0xbb,0xff, +0x25,0xff,0xe8,0x0,0xe6,0x0,0x47,0xff,0x57,0x0,0x2e,0x2, +0x23,0x1,0xb4,0xff,0x6e,0xff,0x9a,0xfe,0xf,0xff,0x57,0x1, +0x1d,0x1,0x28,0xff,0xaa,0xff,0x4b,0x0,0x3a,0xff,0xfe,0xff, +0xe8,0x1,0x76,0x1,0xb6,0xff,0x49,0xfe,0xee,0xfd,0xe3,0xff, +0xaa,0x1,0xc2,0x0,0xcf,0xff,0x7f,0xff,0x98,0xfe,0xdf,0xff, +0x44,0x2,0x8e,0x0,0x26,0xfe,0x11,0x0,0x40,0x1,0x53,0xff, +0xbc,0xff,0x5a,0x1,0xdc,0xff,0x1c,0xff,0xd4,0x0,0x26,0x0, +0x7e,0xfe,0xc2,0xff,0x1,0x0,0x56,0xfe,0xe7,0xff,0xf0,0x1, +0xe6,0xff,0xe9,0xfe,0xda,0x0,0x8a,0x0,0x57,0xff,0xf8,0xff, +0x3f,0xff,0x92,0xfe,0xd1,0x0,0x24,0x1,0xaa,0xfe,0x28,0xff, +0x36,0x1,0xaf,0x0,0xea,0xff,0x1,0x0,0x1a,0xff,0x9b,0xfe, +0x8d,0xff,0x55,0x0,0xb7,0x0,0xce,0x0,0xda,0xff,0xea,0xfe, +0xae,0xff,0x46,0x1,0x60,0x1,0xbf,0xff,0x72,0xfe,0xad,0xfe, +0xe3,0xff,0xeb,0x0,0xa0,0x0,0xdb,0xff,0x18,0x0,0xa0,0xff, +0x67,0xfe,0xcb,0xff,0x41,0x1,0xee,0xfe,0x4,0xfe,0xa5,0x0, +0xb6,0x0,0x6f,0xff,0x2a,0x1,0xa0,0x1,0xb6,0xff,0xe4,0xff, +0x1a,0x0,0x93,0xfe,0x29,0xff,0xd6,0x0,0x7a,0x0,0xda,0xff, +0x97,0xff,0x3a,0xff,0x3e,0x0,0x31,0x1,0x3f,0x0,0x63,0xff, +0xf4,0xfe,0x54,0xfe,0x7a,0xff,0x6d,0x1,0xfa,0x0,0x97,0xff, +0xb6,0xff,0x15,0x0,0xd0,0xff,0xff,0xff,0x85,0x0,0xe,0x0, +0xd4,0xfe,0x58,0xfe,0x14,0xff,0xb4,0x0,0x3d,0x2,0xb0,0x1, +0xcc,0xff,0x7f,0xff,0x8e,0xff,0xc3,0xfe,0xfe,0xff,0x5c,0x1, +0x41,0xff,0x50,0xfe,0x80,0x0,0xc6,0x0,0x82,0x0,0xe1,0x1, +0x87,0x0,0x54,0xfe,0x85,0xff,0xc8,0xff,0xbf,0xfe,0xa0,0x0, +0x91,0x1,0x9c,0xff,0x49,0xff,0xe9,0xff,0x4b,0x0,0x99,0x1, +0x1b,0x0,0x31,0xfd,0x65,0xff,0xcf,0x1,0x9b,0xff,0xa7,0xff, +0x92,0x1,0x79,0xff,0x96,0xfe,0x50,0x1,0xeb,0x0,0xeb,0xfe, +0xe1,0xff,0x1f,0x0,0x1,0xff,0x2c,0x0,0x42,0x1,0x58,0x0, +0xad,0x0,0x8f,0x1,0xe2,0xff,0x52,0xfe,0xa3,0xff,0xc9,0x0, +0x24,0x0,0xca,0xff,0x5b,0xff,0xb0,0xfe,0x43,0x0,0xdd,0x1, +0x68,0x0,0xc6,0xff,0xce,0x0,0x55,0xff,0x82,0xfe,0xc,0x1, +0x33,0x1,0x3a,0xff,0xf2,0xff,0x46,0x0,0x3b,0xff,0x6d,0x0, +0xe5,0x0,0x5d,0xff,0xd9,0xff,0x18,0x0,0xe9,0xfe,0xbe,0x0, +0x68,0x2,0x38,0x0,0xa0,0xff,0xe3,0x0,0xe3,0xff,0xcf,0xff, +0x1,0x1,0x69,0xff,0x5e,0xfe,0x38,0x0,0x90,0x0,0xf2,0xff, +0x15,0x1,0x53,0x1,0x11,0x0,0x99,0xff,0x69,0xff,0x54,0xff, +0x21,0x0,0x96,0x0,0x5d,0x0,0x39,0x0,0x9e,0xff,0x57,0xff, +0x8,0x1,0x5e,0x2,0x6a,0x0,0x21,0xfe,0x5f,0xff,0x23,0x1, +0x22,0x0,0xb5,0xff,0xf,0x1,0x74,0x0,0x5b,0xff,0x92,0x0, +0x7b,0x0,0xf7,0xfe,0x26,0x0,0x3,0x1,0x2e,0xff,0x79,0xff, +0x3e,0x1,0x5d,0x0,0x4,0x0,0xac,0x1,0x4f,0x1,0xce,0xff, +0x93,0xff,0x25,0xff,0x4d,0xff,0x9,0x1,0x3a,0x1,0x84,0xff, +0xfb,0xfe,0xd6,0xff,0xe2,0x0,0x7f,0x1,0xb1,0x0,0x4b,0xff, +0xe,0xff,0x97,0xff,0x49,0x0,0xb,0x1,0xd9,0x0,0xdb,0xff, +0x7f,0xff,0xc2,0xff,0x60,0x0,0x50,0x1,0xf4,0x0,0x2c,0xff, +0x27,0xff,0x17,0x1,0x3,0x1,0x35,0xff,0xc5,0xff,0x63,0x1, +0x90,0x0,0xf8,0xff,0x4b,0x1,0x4d,0x0,0xde,0xfd,0x5b,0xff, +0xc4,0x1,0x63,0x0,0x5b,0xff,0xdd,0x0,0xf1,0x0,0x75,0x0, +0x8b,0x1,0xcf,0x0,0xa6,0xfe,0x5a,0xff,0xcd,0x0,0x37,0x0, +0x51,0x0,0xf2,0x0,0xa7,0xff,0x35,0xff,0x4e,0x1,0xfa,0x1, +0xd7,0xff,0x40,0xfe,0x5,0xff,0xf2,0x0,0xc,0x2,0x4d,0x1, +0xcd,0xff,0x3f,0xff,0xda,0xff,0xa5,0x0,0xc4,0x0,0x5f,0x0, +0xe0,0xff,0x14,0xff,0x4,0xff,0xbe,0x0,0xbe,0x1,0x47,0x0, +0x78,0xff,0x81,0x0,0x91,0x0,0xf9,0xff,0xc9,0x0,0x1a,0x1, +0x62,0xff,0x3e,0xfe,0x82,0xff,0x2b,0x1,0x2f,0x1,0xa3,0x0, +0xe4,0x0,0xd8,0x0,0x53,0x0,0x8f,0x0,0x41,0x0,0x1c,0xff, +0x16,0x0,0x93,0x1,0xe5,0xff,0x95,0xfe,0x8c,0x0,0x9e,0x1, +0xc8,0x0,0x85,0x0,0x90,0xff,0x5a,0xfe,0xb7,0xff,0x2a,0x1, +0x67,0x0,0x34,0x0,0x8d,0x0,0x98,0xff,0xa7,0xff,0x37,0x1, +0xef,0x0,0x5d,0xff,0x57,0xff,0xd3,0xff,0xa6,0xff,0x2e,0x0, +0xef,0x0,0x7e,0x0,0x7a,0x0,0x71,0x1,0xd8,0x0,0x8a,0xff, +0x59,0x0,0xf3,0x0,0x56,0xff,0xd6,0xfe,0x16,0x0,0x5f,0x0, +0x6e,0x0,0x3,0x1,0x98,0x0,0xf8,0xff,0xf0,0xff,0xa7,0xff, +0xe1,0xff,0x17,0x0,0x2a,0xff,0xd5,0xff,0xbf,0x1,0xac,0x0, +0x28,0xff,0xd0,0x0,0x95,0x1,0xa,0x0,0xac,0xff,0xe3,0xff, +0xd2,0xff,0xa7,0x0,0x72,0x0,0x31,0xff,0x24,0x0,0x73,0x1, +0x6f,0x0,0xa4,0xff,0xea,0xff,0xb6,0xff,0x14,0x0,0x3,0x1, +0xad,0x0,0xc0,0xff,0x9b,0xff,0x11,0x0,0xcf,0x0,0xb,0x1, +0x61,0x0,0xf2,0xff,0xd,0x0,0xe0,0xff,0x69,0xff,0x3f,0xff, +0xdd,0xff,0xea,0x0,0xf0,0x0,0x5,0x0,0xec,0xff,0x30,0x0, +0x5a,0xff,0xea,0xfe,0x2f,0x0,0xd0,0x0,0xb7,0xff,0x9b,0xff, +0xcc,0x0,0x9d,0x0,0x2,0x0,0xf5,0x0,0x10,0x1,0x7b,0xff, +0xe,0xff,0x73,0xff,0x64,0xff,0x42,0x0,0x24,0x1,0xc6,0x0, +0xc6,0x0,0xd,0x0,0x18,0xfe,0x25,0xff,0x7e,0x1,0xda,0xff, +0x6d,0xfe,0xae,0x0,0x24,0x1,0x73,0xff,0xac,0xff,0xe8,0xff, +0xc4,0xff,0x21,0x1,0x97,0x0,0x7f,0xfe,0xf6,0xff,0x8e,0x1, +0x2c,0xff,0x7b,0xfe,0x4c,0x1,0xf4,0x1,0x47,0x0,0x51,0xff, +0xaa,0xfe,0x2,0xff,0xc8,0x0,0xef,0x0,0xa3,0xff,0xd3,0xff, +0x2b,0x0,0x8f,0xff,0x49,0x0,0x23,0x1,0x1c,0x0,0x25,0x0, +0x2d,0x1,0x6f,0xff,0xc8,0xfd,0xc9,0xff,0x54,0x1,0x8f,0x0, +0x7e,0x0,0x7e,0x0,0xce,0xff,0xc4,0xff,0xf3,0xfe,0x86,0xfe, +0x27,0x1,0x93,0x1,0x80,0xfd,0xf6,0xfc,0xd0,0x0,0x5,0x2, +0x3d,0x1,0xf3,0x0,0xc2,0xff,0x4,0x0,0x60,0x2,0x44,0x2, +0xc3,0x0,0x39,0x1,0x9,0x1,0x9c,0xff,0xc4,0xff,0x3c,0x0, +0x85,0xff,0xe3,0xfe,0x6e,0xfe,0xa1,0xfe,0x28,0x0,0x7d,0x0, +0xd4,0xfe,0x99,0xfe,0x73,0x0,0x8b,0x1,0x1b,0x1,0xe2,0xff, +0x5c,0xfe,0x7b,0xfe,0xc1,0x0,0x5f,0x1,0x65,0xff,0x44,0xff, +0x81,0x0,0xf3,0xfe,0x9,0xfe,0x9,0x1,0x1f,0x2,0x5f,0xff, +0x1a,0xfe,0x98,0xfe,0x23,0xff,0x88,0x0,0x34,0x0,0x26,0xfe, +0x74,0xff,0xd1,0x1,0x56,0x0,0xea,0xfe,0x2a,0x0,0x46,0x1, +0x80,0x2,0x50,0x3,0x41,0x1,0x54,0xff,0x50,0x0,0x92,0x1, +0x81,0x1,0x39,0x0,0x72,0xfe,0xa8,0xfe,0xd4,0xff,0x35,0xff, +0x7a,0xff,0x61,0x1,0x52,0x0,0x98,0xfd,0x4a,0xfe,0xa7,0x0, +0xf3,0x0,0xc,0x0,0x9a,0xff,0xc7,0xff,0x7a,0x0,0xf1,0x0, +0x49,0x0,0xc3,0xff,0x57,0x1,0xec,0x2,0x90,0x1,0x9b,0x0, +0x7c,0x2,0x35,0x2,0x6e,0xff,0x1e,0x0,0x41,0x2,0xd0,0x0, +0xe5,0xfe,0x15,0xff,0x72,0xff,0x39,0x0,0x38,0x1,0x80,0x0, +0x7,0xff,0x8a,0xfe,0x79,0xff,0x14,0x1,0xac,0x0,0x20,0xff, +0x1d,0x0,0xfd,0x0,0xb,0xff,0x35,0xfe,0xe9,0xfe,0x27,0xff, +0x1d,0x1,0x1b,0x2,0xbb,0xfe,0x99,0xfd,0x11,0x0,0x9f,0xfe, +0xcb,0xfc,0x81,0x0,0x29,0x2,0xd8,0xfe,0x92,0xfe,0xd2,0x0, +0xf6,0xff,0xcf,0xfe,0xdd,0xff,0x2b,0x0,0xe6,0xff,0x8a,0x0, +0x29,0x0,0x49,0xff,0xc7,0x0,0x24,0x2,0x27,0x0,0x49,0xfe, +0xef,0xfe,0xc6,0xfe,0xd5,0xfd,0x13,0xff,0x98,0x0,0x21,0x0, +0x27,0xff,0x61,0xfe,0x19,0xfe,0xc9,0xfe,0x69,0xff,0x65,0x0, +0x59,0x1,0x47,0xff,0xb0,0xfd,0x26,0x1,0xc6,0x2,0x75,0xff, +0xe3,0xff,0x5e,0x3,0x78,0x2,0xe9,0x0,0x59,0x1,0xdc,0xff, +0xe3,0xff,0xdb,0x2,0xbd,0x1,0x63,0xff,0x4b,0x2,0xf3,0x3, +0x75,0x1,0x24,0x2,0x1a,0x4,0xa9,0x1,0xf9,0xff,0xdb,0x1, +0xfc,0x1,0xfc,0x0,0x7f,0x2,0x2e,0x3,0x11,0x1,0x6,0x0, +0x95,0x0,0x95,0x0,0x2b,0x1,0x4a,0x2,0xda,0x1,0x8d,0x1, +0xad,0x2,0x31,0x2,0x6d,0x0,0x12,0x1,0xe7,0x2,0xca,0x2, +0x62,0x1,0x27,0x0,0xee,0xff,0xea,0x0,0x52,0x1,0xd0,0x0, +0xe2,0x0,0x87,0x0,0xb5,0xff,0x0,0x1,0x87,0x2,0x32,0x1, +0xf2,0xff,0x4b,0x0,0x1,0xff,0x6f,0xfd,0x65,0xff,0x45,0x2, +0x1f,0x2,0x47,0x0,0x1e,0xff,0xc,0xff,0xc4,0xff,0x4,0x0, +0x32,0xff,0x43,0xff,0xa8,0x0,0xc8,0x0,0xba,0xff,0xda,0xff, +0x2,0x0,0x7,0xff,0x21,0xff,0xb0,0xff,0x8d,0xfe,0x61,0xfe, +0x1f,0x0,0x2e,0x0,0x61,0xff,0xeb,0xff,0x13,0xff,0x6c,0xfd, +0x5b,0xfe,0x18,0xff,0x42,0xfe,0x93,0xff,0x87,0x0,0x96,0xfd, +0x5b,0xfc,0xf3,0xfe,0x89,0xff,0xe7,0xfe,0xd7,0x0,0x3a,0x1, +0xa1,0xfe,0x6c,0xfe,0xc0,0xff,0xdd,0xfe,0xda,0xfe,0x66,0x0, +0x9b,0xff,0x1d,0xff,0x2d,0x1,0x49,0x0,0x81,0xfd,0x85,0xff, +0xd5,0x1,0x10,0xff,0x8d,0xfd,0xa9,0xff,0x1c,0x0,0xf9,0xff, +0x78,0x1,0x5e,0x1,0xe4,0xff,0xa4,0xff,0x8,0x0,0x2,0x1, +0xc6,0x1,0xb0,0x0,0x60,0x0,0x3b,0x1,0xd4,0xff,0x21,0xff, +0x76,0x1,0x5e,0x1,0x85,0xff,0xc4,0x0,0x2d,0x1,0x81,0xff, +0xc0,0x0,0x5b,0x1,0x8c,0xfe,0x9d,0xff,0xf6,0x2,0x93,0x0, +0x7f,0xfe,0x2d,0x2,0xb6,0x2,0xf0,0xfe,0xe0,0xff,0x64,0x2, +0x31,0x0,0x99,0xff,0xa7,0x2,0x37,0x2,0x6a,0x0,0xbe,0x1, +0x8a,0x0,0x47,0xfd,0x66,0xff,0xb,0x2,0x97,0xff,0x9,0xff, +0xf2,0x0,0xf2,0xfe,0xa4,0xfd,0x35,0x0,0xb9,0xff,0x80,0xfd, +0x77,0xff,0x25,0x1,0x32,0xff,0xdf,0xfd,0x69,0xfe,0x73,0xff, +0x4,0x0,0x81,0xfe,0x3c,0xfd,0xb2,0xfe,0x5b,0xff,0x45,0xfe, +0x72,0xfe,0xa7,0xfe,0x6e,0xfe,0x92,0xff,0xb,0xff,0x80,0xfc, +0x62,0xfd,0xc1,0xff,0xa0,0xfe,0xcd,0xfd,0x4a,0xff,0x72,0xfe, +0xd5,0xfc,0xa5,0xfe,0x7,0x0,0xda,0xfe,0xc5,0xff,0x90,0x1, +0x3b,0xff,0xe0,0xfc,0xff,0xfe,0x94,0x0,0x86,0xff,0xd0,0xff, +0xf3,0xff,0xa9,0xfe,0xf4,0xff,0x2a,0x1,0x82,0xfe,0x48,0xfe, +0x46,0x1,0x27,0x0,0x82,0xfe,0x5c,0x1,0xff,0x1,0xc0,0xff, +0xf4,0x0,0x2,0x2,0xea,0xff,0x3e,0x0,0x34,0x2,0x9f,0x1, +0x65,0x1,0x47,0x2,0x7c,0x1,0x2b,0x1,0x87,0x2,0x9b,0x2, +0xc2,0x1,0xc9,0x1,0xad,0x1,0x40,0x1,0x79,0x1,0xfe,0x1, +0x52,0x2,0x31,0x2,0x64,0x1,0xd6,0x0,0x5a,0x1,0x27,0x2, +0x32,0x2,0x8e,0x1,0x13,0x1,0x7e,0x1,0xa2,0x2,0x5,0x3, +0xc3,0x1,0xd5,0x0,0xf2,0x1,0xce,0x2,0xb8,0x1,0x7c,0x0, +0xaa,0xff,0x5b,0xff,0xe5,0x0,0xbc,0x1,0xfc,0xff,0x65,0x0, +0xda,0x2,0x10,0x1,0x20,0xfe,0x5,0x0,0x1a,0x2,0x25,0x1, +0xd8,0x0,0x64,0x0,0xb2,0xfe,0x9a,0xff,0x81,0x1,0x19,0x0, +0xb3,0xfe,0x1f,0x0,0xa3,0x0,0xe,0xff,0x63,0xfe,0x6c,0xff, +0x9f,0x0,0xc1,0x0,0x8a,0xff,0x24,0xfe,0x36,0xfe,0x8e,0xff, +0xdb,0xff,0x59,0xfe,0x94,0xfd,0x90,0xfe,0xde,0xfe,0x27,0xfe, +0x85,0xfe,0x97,0xff,0xe4,0xff,0xb3,0xff,0x56,0xff,0xc8,0xfe, +0x77,0xfe,0x72,0xfe,0x9f,0xfe,0x9,0xff,0x71,0xff,0xc1,0xff, +0xd0,0xff,0x8e,0xff,0xc2,0xff,0x26,0x0,0x6c,0xff,0x95,0xfe, +0x18,0xff,0xa8,0xff,0x95,0xff,0x10,0x0,0xa5,0x0,0x48,0x0, +0xb1,0xff,0x77,0xff,0x53,0xff,0x76,0xff,0x7,0x0,0x52,0x0, +0xf2,0xff,0xf7,0xff,0xd7,0x0,0xc9,0x0,0x71,0xff,0x4d,0xff, +0x70,0x0,0x74,0x0,0x8c,0xff,0x24,0xff,0x75,0xff,0xab,0x0, +0x6c,0x1,0x9,0x0,0xd4,0xfe,0xfc,0xff,0x17,0x1,0x75,0x0, +0x8e,0xff,0x85,0xff,0x50,0x0,0x86,0x0,0x1e,0xff,0xa7,0xfe, +0x74,0x0,0xef,0x0,0x3c,0xff,0xb8,0xfe,0x6f,0xff,0x8f,0xff, +0x7a,0xff,0xd1,0xfe,0x83,0xfd,0x1b,0xfe,0x18,0x0,0x88,0xff, +0x29,0xfd,0x5,0xfd,0x77,0xfe,0x9c,0xfe,0x12,0xfe,0xeb,0xfd, +0x9c,0xfd,0xd6,0xfd,0x7e,0xfe,0x90,0xfd,0x94,0xfc,0x16,0xfe, +0xee,0xfe,0x8,0xfd,0x46,0xfc,0x83,0xfd,0xc3,0xfd,0x8c,0xfd, +0xbb,0xfd,0x14,0xfd,0xdc,0xfc,0xe2,0xfd,0xcd,0xfd,0xe1,0xfc, +0x56,0xfd,0x14,0xfe,0x62,0xfd,0x44,0xfc,0x4e,0xfc,0x50,0xfd, +0x95,0xfd,0x11,0xfd,0x86,0xfd,0x25,0xfe,0x7b,0xfd,0x51,0xfd, +0xdc,0xfd,0x19,0xfd,0xad,0xfc,0x13,0xfe,0xa4,0xfe,0x1,0xfe, +0x41,0xfe,0x8c,0xfe,0x1f,0xfe,0x46,0xfe,0xa8,0xfe,0x81,0xfe, +0xa3,0xfe,0x9,0xff,0xfa,0xfe,0xfb,0xfe,0x69,0xff,0x5d,0xff, +0x90,0xfe,0x5f,0xfe,0x34,0xff,0x84,0xff,0x53,0xff,0xd,0x0, +0x75,0x0,0x5a,0xff,0xec,0xfe,0xe8,0xff,0x3c,0x0,0xd7,0xff, +0xe7,0xff,0x37,0x0,0x84,0x0,0xa9,0x0,0x6d,0x0,0x5d,0x0, +0xcf,0x0,0x4b,0x1,0xfd,0x0,0xb3,0xff,0x9b,0xff,0xc0,0x1, +0x73,0x2,0x70,0x0,0x8b,0xff,0xf0,0xff,0x9a,0xff,0x46,0x0, +0x73,0x1,0x9f,0x0,0x44,0x0,0x6d,0x1,0xca,0x0,0xa6,0xff, +0xb5,0x0,0x59,0x1,0x82,0x0,0x2e,0x0,0xd6,0xff,0x8e,0xff, +0x9d,0x0,0xe3,0x0,0x45,0xff,0xf2,0xfe,0xb9,0x0,0x8d,0x1, +0x4b,0x0,0xc5,0xfe,0x92,0xfe,0x71,0xff,0xf6,0xff,0x54,0xff, +0x49,0xfe,0xb,0xfe,0x7a,0xfe,0xa4,0xfe,0xb6,0xfe,0xfa,0xfe, +0xdc,0xfe,0xdd,0xfe,0x42,0xff,0xbf,0xfe,0x71,0xfe,0x1f,0x0, +0x11,0x1,0xba,0xff,0xfa,0xfe,0x1a,0xff,0xc8,0xfe,0x1f,0xff, +0x58,0xff,0x77,0xfe,0xd3,0xfe,0xc2,0xff,0xc1,0xfe,0x47,0xfe, +0xa7,0xff,0x31,0x0,0x20,0x0,0x18,0x0,0x9d,0xfe,0xc8,0xfd, +0x77,0xff,0x72,0x0,0x99,0xff,0x1b,0xff,0x16,0xff,0x99,0xff, +0xf2,0x0,0x1d,0x1,0x6,0x0,0x26,0x0,0xd4,0x0,0x3c,0x0, +0xbc,0xff,0x84,0x0,0x64,0x1,0xa3,0x1,0x61,0x1,0x71,0x0, +0xbd,0xff,0x85,0x0,0x42,0x1,0x6b,0x0,0x41,0x0,0xb1,0x1, +0xd8,0x1,0xde,0x0,0x28,0x1,0x6f,0x1,0x17,0x1,0xce,0x1, +0xea,0x1,0x70,0x0,0x7a,0x0,0xdd,0x1,0xf6,0x1,0x9b,0x1, +0x7d,0x1,0x21,0x1,0x91,0x1,0xe3,0x1,0xd7,0x0,0x2,0x1, +0xa5,0x2,0x9d,0x2,0x89,0x1,0x3f,0x1,0xea,0x0,0xf1,0x0, +0xe5,0x1,0x30,0x2,0xba,0x1,0x7a,0x1,0x19,0x1,0xeb,0x0, +0x4d,0x1,0x4f,0x1,0x12,0x1,0x4b,0x1,0x77,0x1,0x59,0x1, +0x40,0x1,0x21,0x1,0x1,0x1,0xb9,0x0,0x3d,0x0,0x21,0x0, +0x31,0x0,0xd1,0xff,0x9b,0xff,0x1d,0x0,0xca,0x0,0xe8,0x0, +0x35,0x0,0x52,0xff,0xe7,0xfe,0xf0,0xfe,0xaf,0xff,0x82,0x0, +0xce,0xff,0xd6,0xfe,0xc3,0xff,0xea,0x0,0x3,0x1,0x5a,0x1, +0x72,0x1,0x1,0x1,0x94,0x1,0x17,0x2,0x6d,0x1,0xc1,0x1, +0xd6,0x2,0x5b,0x2,0x68,0x1,0x59,0x1,0x36,0x1,0xc1,0x0, +0x6c,0x0,0x93,0x0,0x65,0x1,0x90,0x1,0x99,0x0,0x3c,0x0, +0xb6,0x0,0x49,0x1,0xf8,0x1,0x4e,0x1,0x6d,0xff,0xbe,0xff, +0xb9,0x1,0xd8,0x1,0x2e,0x1,0x85,0x1,0x5e,0x1,0xf4,0x0, +0x7c,0x1,0x84,0x1,0x9,0x1,0xd,0x2,0x4e,0x3,0x5c,0x2, +0x2b,0x1,0x40,0x2,0x3d,0x3,0xe6,0x1,0x23,0x1,0xa2,0x2, +0x5d,0x3,0x61,0x2,0xb4,0x1,0x8c,0x1,0xf0,0x1,0x2c,0x3, +0x52,0x3,0x7,0x2,0xc3,0x1,0xa0,0x2,0x29,0x3,0x2f,0x3, +0x73,0x2,0xa8,0x1,0xf2,0x1,0xe9,0x1,0xff,0x0,0x3d,0x1, +0x7c,0x2,0x29,0x3,0x22,0x3,0x33,0x2,0x3f,0x1,0xc6,0x1, +0xf5,0x1,0xaf,0x0,0x89,0x0,0x5e,0x1,0xfd,0x0,0xa7,0x0, +0xe,0x1,0x90,0x0,0xf0,0xff,0x4a,0x0,0x26,0x0,0x42,0xff, +0x9,0xff,0x5f,0xff,0x71,0xff,0x80,0xff,0xeb,0xff,0x6,0x0, +0x5e,0xff,0x12,0xff,0x7d,0xff,0x41,0xff,0xc3,0xfe,0x6d,0xff, +0x3,0x0,0x45,0xff,0x96,0xfe,0x6,0xff,0x3,0x0,0x84,0x0, +0xf5,0xff,0x4c,0xff,0x6c,0xff,0x9e,0xff,0xc9,0xff,0xa,0x0, +0x7e,0xff,0x42,0xff,0x9a,0x0,0x7,0x1,0x70,0xff,0xdb,0xfe, +0x30,0x0,0x40,0x1,0xe0,0x0,0x88,0xff,0x0,0xff,0x29,0x0, +0xf1,0x0,0x71,0x0,0x82,0x0,0x1c,0x1,0xce,0x0,0xef,0xff, +0x70,0xff,0x9,0x0,0x68,0x1,0x7e,0x1,0xff,0xff,0x2b,0xff, +0xbd,0xff,0xe5,0x0,0xc1,0x1,0x28,0x1,0x1f,0x0,0xc1,0x0, +0x9b,0x1,0xd6,0x0,0x27,0x0,0xbf,0x0,0xa0,0x1,0xf,0x2, +0x6d,0x1,0x19,0x0,0xe,0x0,0x43,0x1,0x91,0x1,0xf7,0x0, +0x20,0x1,0xda,0x1,0xb5,0x1,0x2,0x1,0x53,0x1,0x46,0x2, +0x2b,0x2,0x3c,0x1,0x88,0x0,0x35,0x0,0x8d,0x0,0x3d,0x1, +0x38,0x1,0xc,0x1,0x3d,0x1,0xf2,0x0,0xa6,0x0,0xd7,0x0, +0x69,0x0,0x14,0x0,0xf9,0x0,0x5d,0x1,0xa4,0x0,0x49,0x0, +0x2a,0x0,0x14,0x0,0xa0,0x0,0xfc,0x0,0xdf,0x0,0xd3,0x0, +0x31,0x0,0x98,0xff,0x47,0x0,0xba,0x0,0x4f,0x0,0x6e,0x0, +0x2e,0x0,0x1a,0xff,0x66,0xff,0x91,0x0,0x90,0x0,0x40,0x0, +0xc4,0xff,0x36,0xfe,0xde,0xfd,0xd7,0xff,0xa4,0x0,0x61,0xff, +0x69,0xff,0x8a,0x0,0xa8,0xff,0x33,0xfe,0x26,0xff,0x63,0x0, +0x90,0xff,0xdb,0xfe,0x55,0xff,0x78,0xff,0xba,0xff,0x7f,0x0, +0x48,0x0,0x8d,0xff,0x86,0xff,0x57,0xff,0xf0,0xfe,0x2a,0xff, +0xbf,0xff,0xa4,0x0,0x2e,0x1,0xea,0xff,0x63,0xfe,0xfb,0xfe, +0x61,0x0,0xaf,0x0,0xfb,0xff,0x1b,0xff,0x5e,0xff,0x3c,0x0, +0x95,0xff,0xdf,0xfe,0x31,0x0,0xfa,0x0,0xe9,0xff,0x8d,0xff, +0xf4,0xff,0xdb,0xff,0x4a,0x0,0xc7,0x0,0x8,0x0,0xc5,0xff, +0x8e,0x0,0x5,0x0,0xa5,0xfe,0x44,0xff,0x14,0x1,0x34,0x1, +0xf2,0xff,0x2c,0xff,0xbf,0xfe,0xb1,0xfe,0xf,0x0,0x52,0x1, +0x46,0x0,0xda,0xfe,0x5b,0xff,0x15,0x0,0x83,0xff,0x25,0xff, +0xec,0xff,0x54,0x0,0x34,0xff,0x24,0xfe,0xe5,0xfe,0xe7,0xff, +0xa9,0xff,0xaa,0xff,0xfe,0xff,0x15,0xff,0x3f,0xfe,0xb8,0xfe, +0xeb,0xfe,0x9b,0xfe,0xb4,0xfe,0xb6,0xfe,0xc1,0xfe,0xfd,0xfe, +0x68,0xfe,0x1,0xfe,0xc,0xff,0x72,0xff,0x2f,0xfe,0x84,0xfd, +0x32,0xfe,0xe2,0xfe,0xeb,0xfe,0x88,0xfe,0x7c,0xfe,0xeb,0xfe, +0xb1,0xfe,0xc2,0xfd,0x5c,0xfd,0xce,0xfd,0xc4,0xfe,0x7d,0xff, +0xad,0xfe,0x19,0xfd,0x15,0xfd,0x4a,0xfe,0xa2,0xfe,0x2,0xfe, +0x83,0xfd,0x95,0xfd,0x3b,0xfe,0xc5,0xfe,0x42,0xfe,0x91,0xfd, +0x3f,0xfe,0xd4,0xfe,0x38,0xfd,0xec,0xfb,0xbb,0xfd,0xb3,0xff, +0xc,0xff,0x29,0xfe,0x73,0xfe,0x4d,0xfe,0xc5,0xfd,0xb2,0xfd, +0xe3,0xfd,0xa8,0xfe,0x77,0xff,0xdf,0xfe,0xc5,0xfd,0xb9,0xfd, +0x78,0xfe,0x7a,0xff,0xb8,0xff,0x48,0xfe,0x27,0xfd,0x11,0xfe, +0x42,0xff,0x6b,0xff,0x29,0xff,0xb7,0xfe,0xb0,0xfe,0x3a,0xff, +0xe0,0xfe,0x1b,0xfe,0xdb,0xfe,0xdb,0xff,0x50,0xff,0xa3,0xfe, +0xcb,0xfe,0xaa,0xfe,0x4d,0xfe,0xc4,0xfe,0xd0,0xff,0x53,0x0, +0xb7,0xff,0x8f,0xfe,0x15,0xfe,0x80,0xfe,0xd5,0xfe,0xf9,0xfe, +0x6d,0xff,0x3a,0xff,0xf6,0xfd,0xf6,0xfd,0xca,0xff,0x39,0x0, +0xa9,0xfe,0x13,0xfe,0xa9,0xfe,0xce,0xfe,0xf2,0xfe,0xb,0xff, +0x88,0xfe,0xa1,0xfe,0x4b,0xff,0xfd,0xfe,0x7b,0xfe,0x90,0xfe, +0x65,0xfe,0x8c,0xfe,0x43,0xff,0xed,0xfe,0x3c,0xfe,0xd3,0xfe, +0x2e,0xff,0x6c,0xfe,0x62,0xfe,0x43,0xff,0x76,0xff,0xbb,0xfe, +0x1,0xfe,0x20,0xfe,0x4,0xff,0x64,0xff,0xbd,0xfe,0x40,0xfe, +0xc2,0xfe,0x66,0xff,0xe1,0xfe,0xa1,0xfd,0x96,0xfd,0xf0,0xfe, +0x6a,0xff,0x60,0xfe,0xf0,0xfd,0xe2,0xfe,0x76,0xff,0xf,0xff, +0xed,0xfe,0xe5,0xfe,0x1b,0xfe,0xfe,0xfd,0x4e,0xff,0xc5,0xff, +0x1b,0xff,0x77,0xff,0xb9,0xff,0x42,0xfe,0xa3,0xfd,0x48,0xff, +0x76,0x0,0xbf,0xff,0x88,0xfe,0x3b,0xfe,0x45,0xff,0x52,0x0, +0xe2,0xff,0x1f,0xff,0x61,0xff,0x8d,0xff,0x18,0xff,0x24,0xff, +0xc2,0xff,0xfb,0xff,0xa8,0xff,0x63,0xff,0x83,0xff,0xc0,0xff, +0xf8,0xff,0x5e,0x0,0x7f,0x0,0xee,0xff,0x73,0xff,0x90,0xff, +0xa4,0xff,0x6e,0xff,0x7e,0xff,0x1e,0x0,0xd4,0x0,0xe6,0x0, +0x53,0x0,0xd0,0xff,0xce,0xff,0x2c,0x0,0x6e,0x0,0x49,0x0, +0x67,0x0,0xc,0x1,0x4,0x1,0x2d,0x0,0xf4,0xff,0x53,0x0, +0x69,0x0,0x95,0x0,0xc3,0x0,0x30,0x0,0xc1,0xff,0x98,0x0, +0x8a,0x1,0x6,0x1,0xbd,0xff,0x78,0xff,0x3e,0x0,0x8d,0x0, +0x3d,0x0,0x85,0x0,0x43,0x1,0x42,0x1,0x77,0x0,0xd3,0xff, +0xf7,0xff,0x98,0x0,0xb9,0x0,0x34,0x0,0xf,0x0,0x84,0x0, +0xb6,0x0,0x72,0x0,0x40,0x0,0x4d,0x0,0x93,0x0,0xf9,0x0, +0x3,0x1,0x71,0x0,0x1d,0x0,0xbe,0x0,0x3b,0x1,0x66,0x0, +0x7d,0xff,0x3,0x0,0xe9,0x0,0xb7,0x0,0xe,0x0,0x11,0x0, +0x97,0x0,0xc0,0x0,0x3d,0x0,0xcd,0xff,0x1e,0x0,0x8a,0x0, +0x52,0x0,0x6,0x0,0x28,0x0,0x3c,0x0,0x2a,0x0,0x70,0x0, +0xd9,0x0,0xd1,0x0,0x93,0x0,0x92,0x0,0x7f,0x0,0x2a,0x0, +0x42,0x0,0xec,0x0,0x20,0x1,0x88,0x0,0x20,0x0,0x5d,0x0, +0xba,0x0,0xd2,0x0,0x7e,0x0,0xee,0xff,0xf8,0xff,0xa9,0x0, +0xd5,0x0,0x67,0x0,0x70,0x0,0xb6,0x0,0x63,0x0,0x6,0x0, +0x29,0x0,0x4a,0x0,0x7f,0x0,0x30,0x1,0x85,0x1,0xe6,0x0, +0x56,0x0,0x6e,0x0,0x8f,0x0,0x92,0x0,0xc6,0x0,0xea,0x0, +0xe8,0x0,0xe1,0x0,0x95,0x0,0x61,0x0,0xed,0x0,0x37,0x1, +0x56,0x0,0xcb,0xff,0x8e,0x0,0x1f,0x1,0xc0,0x0,0x7a,0x0, +0x9b,0x0,0x8e,0x0,0x50,0x0,0x38,0x0,0x4b,0x0,0x76,0x0, +0xcc,0x0,0x21,0x1,0xd2,0x0,0x7,0x0,0xef,0xff,0x7c,0x0, +0x72,0x0,0x30,0x0,0xc5,0x0,0x6c,0x1,0x31,0x1,0xa9,0x0, +0x62,0x0,0x5b,0x0,0xae,0x0,0xcf,0x0,0x3a,0x0,0xf8,0xff, +0xb3,0x0,0x11,0x1,0x81,0x0,0x58,0x0,0xb3,0x0,0x80,0x0, +0x35,0x0,0x6f,0x0,0x61,0x0,0x16,0x0,0x5f,0x0,0x94,0x0, +0x23,0x0,0xf1,0xff,0x26,0x0,0x24,0x0,0x31,0x0,0x75,0x0, +0x75,0x0,0x48,0x0,0x4b,0x0,0x66,0x0,0x7a,0x0,0x95,0x0, +0xbf,0x0,0xc2,0x0,0x37,0x0,0x8b,0xff,0xcb,0xff,0x8e,0x0, +0x8e,0x0,0x9,0x0,0xcd,0xff,0xa8,0xff,0xab,0xff,0x47,0x0, +0xa6,0x0,0x2,0x0,0x63,0xff,0x98,0xff,0xe0,0xff,0xe3,0xff, +0x21,0x0,0x65,0x0,0x4e,0x0,0x2,0x0,0x7b,0xff,0x1f,0xff, +0xb0,0xff,0x53,0x0,0xe4,0xff,0x7d,0xff,0x1d,0x0,0x85,0x0, +0x1,0x0,0xb0,0xff,0xe,0x0,0x6b,0x0,0x53,0x0,0xc7,0xff, +0x21,0xff,0x1a,0xff,0xf1,0xff,0x91,0x0,0xfc,0xff,0x3b,0xff, +0xb1,0xff,0x81,0x0,0x51,0x0,0xc3,0xff,0xb1,0xff,0xa6,0xff, +0x70,0xff,0x80,0xff,0xae,0xff,0xa0,0xff,0xab,0xff,0xf0,0xff, +0xe6,0xff,0x93,0xff,0x92,0xff,0xa2,0xff,0x54,0xff,0x66,0xff, +0x35,0x0,0xaa,0x0,0x4c,0x0,0xd1,0xff,0x9f,0xff,0xa1,0xff, +0xae,0xff,0x7e,0xff,0x56,0xff,0x9e,0xff,0xdf,0xff,0xac,0xff, +0x83,0xff,0xae,0xff,0xb7,0xff,0x77,0xff,0x6e,0xff,0x9c,0xff, +0x6d,0xff,0x20,0xff,0x61,0xff,0xa9,0xff,0x8b,0xff,0xa7,0xff, +0x9d,0xff,0xd6,0xfe,0xbf,0xfe,0xf1,0xff,0x7f,0x0,0xde,0xff, +0x73,0xff,0x6c,0xff,0x5e,0xff,0x96,0xff,0xca,0xff,0x8a,0xff, +0x65,0xff,0x8d,0xff,0x64,0xff,0x22,0xff,0x79,0xff,0xce,0xff, +0x49,0xff,0xbe,0xfe,0x21,0xff,0xb3,0xff,0xab,0xff,0x6c,0xff, +0x53,0xff,0x4d,0xff,0x44,0xff,0x1c,0xff,0x1d,0xff,0x87,0xff, +0xc3,0xff,0x7d,0xff,0x4f,0xff,0x75,0xff,0xa3,0xff,0xa4,0xff, +0x6b,0xff,0x60,0xff,0x9f,0xff,0x83,0xff,0x3f,0xff,0x80,0xff, +0xa3,0xff,0x64,0xff,0x98,0xff,0xc3,0xff,0x42,0xff,0x39,0xff, +0xb4,0xff,0x5e,0xff,0xe4,0xfe,0x71,0xff,0xf5,0xff,0xb2,0xff, +0x92,0xff,0xbb,0xff,0xb5,0xff,0xd5,0xff,0xe2,0xff,0x37,0xff, +0xe7,0xfe,0xd6,0xff,0x45,0x0,0x47,0xff,0xe5,0xfe,0xe0,0xff, +0x5d,0x0,0xe0,0xff,0x8e,0xff,0xb0,0xff,0xf6,0xff,0x2a,0x0, +0xf7,0xff,0x7c,0xff,0x3a,0xff,0x51,0xff,0x89,0xff,0x7e,0xff, +0x37,0xff,0x76,0xff,0x1a,0x0,0xb,0x0,0x90,0xff,0x97,0xff, +0xa9,0xff,0x49,0xff,0x10,0xff,0x37,0xff,0x7f,0xff,0xd6,0xff, +0xd5,0xff,0x73,0xff,0x7c,0xff,0xd0,0xff,0x83,0xff,0x1a,0xff, +0x79,0xff,0xca,0xff,0x83,0xff,0xa0,0xff,0xf,0x0,0xcb,0xff, +0x4d,0xff,0x4a,0xff,0x32,0xff,0xc,0xff,0x6c,0xff,0xac,0xff, +0x70,0xff,0x8c,0xff,0xc3,0xff,0x2c,0xff,0x99,0xfe,0xf2,0xfe, +0x35,0xff,0xb5,0xfe,0x6d,0xfe,0xc3,0xfe,0xfa,0xfe,0x1a,0xff, +0xac,0xff,0x1c,0x0,0xd8,0xff,0x99,0xff,0xd7,0xff,0xb5,0xff, +0xd0,0xfe,0x2c,0xfe,0x54,0xfe,0x6d,0xfe,0x22,0xfe,0x77,0xfe, +0xa1,0xff,0x61,0x0,0x32,0x0,0xc4,0xff,0x81,0xff,0x31,0xff, +0x79,0xfe,0x79,0xfd,0x22,0xfd,0xce,0xfd,0x6d,0xfe,0x9b,0xfe, +0x2b,0xff,0xfd,0xff,0x35,0x0,0x4,0x0,0xcd,0xff,0x43,0xff, +0x96,0xfe,0x66,0xfe,0x72,0xfe,0x67,0xfe,0xe6,0xfe,0xed,0xff, +0x67,0x0,0x6b,0x0,0xc5,0x0,0xc4,0x0,0x4,0x0,0xb2,0xff, +0xc7,0xff,0x53,0xff,0x13,0xff,0x80,0xff,0xa1,0xff,0xc8,0xff, +0xab,0x0,0xfe,0x0,0x10,0x0,0x6e,0xff,0xc3,0xff,0xec,0xff, +0x65,0xff,0xf2,0xfe,0x19,0xff,0x77,0xff,0xa2,0xff,0xae,0xff, +0xa8,0xff,0x90,0xff,0x93,0xff,0xa7,0xff,0xa6,0xff,0xa1,0xff, +0x92,0xff,0x6d,0xff,0x6b,0xff,0x8c,0xff,0xac,0xff,0xe9,0xff, +0x42,0x0,0x53,0x0,0xf3,0xff,0xab,0xff,0xe8,0xff,0xf7,0xff, +0x5e,0xff,0x44,0xff,0x2,0x0,0x2e,0x0,0xda,0xff,0x16,0x0, +0x11,0x0,0x65,0xff,0x4b,0xff,0x87,0xff,0x4a,0xff,0x58,0xff, +0xae,0xff,0x71,0xff,0x5e,0xff,0xd9,0xff,0xaa,0xff,0x1a,0xff, +0x8d,0xff,0x2f,0x0,0xa4,0xff,0xe,0xff,0xa4,0xff,0x20,0x0, +0x84,0xff,0x1,0xff,0x44,0xff,0x6a,0xff,0x53,0xff,0x93,0xff, +0xfc,0xff,0x3f,0x0,0x62,0x0,0x42,0x0,0xe1,0xff,0x8e,0xff, +0x7f,0xff,0x94,0xff,0x86,0xff,0x79,0xff,0xd0,0xff,0x33,0x0, +0x36,0x0,0x2f,0x0,0x1d,0x0,0xe8,0xff,0xf,0x0,0x1e,0x0, +0x5b,0xff,0xf7,0xfe,0xa8,0xff,0xef,0xff,0x78,0xff,0x84,0xff, +0xe8,0xff,0xfa,0xff,0x21,0x0,0x3b,0x0,0xc0,0xff,0x61,0xff, +0x9f,0xff,0xa9,0xff,0x61,0xff,0xa7,0xff,0x3b,0x0,0x52,0x0, +0x67,0x0,0xb3,0x0,0x51,0x0,0x96,0xff,0xaa,0xff,0x9,0x0, +0xd7,0xff,0xb7,0xff,0x9,0x0,0x23,0x0,0x7,0x0,0x54,0x0, +0xbb,0x0,0x7b,0x0,0xfc,0xff,0x21,0x0,0x6f,0x0,0xe,0x0, +0xc7,0xff,0x48,0x0,0x98,0x0,0x50,0x0,0x36,0x0,0x54,0x0, +0x5a,0x0,0x76,0x0,0x6c,0x0,0x17,0x0,0x13,0x0,0x5b,0x0, +0x51,0x0,0x57,0x0,0xd1,0x0,0xe7,0x0,0x57,0x0,0x3c,0x0, +0xaf,0x0,0xa1,0x0,0x37,0x0,0x41,0x0,0x66,0x0,0x50,0x0, +0x6d,0x0,0x91,0x0,0x66,0x0,0x57,0x0,0x62,0x0,0x2b,0x0, +0x29,0x0,0x8f,0x0,0x8f,0x0,0xe,0x0,0xe5,0xff,0x2d,0x0, +0x2c,0x0,0xd5,0xff,0xcb,0xff,0x0,0x0,0x8,0x0,0x3d,0x0, +0xab,0x0,0x6d,0x0,0xbf,0xff,0xce,0xff,0x2a,0x0,0xd5,0xff, +0x84,0xff,0xfc,0xff,0x82,0x0,0x81,0x0,0x56,0x0,0x3b,0x0, +0x28,0x0,0x43,0x0,0x55,0x0,0xff,0xff,0xc8,0xff,0x3d,0x0, +0x93,0x0,0x3e,0x0,0x17,0x0,0x5e,0x0,0x69,0x0,0x5c,0x0, +0x85,0x0,0x91,0x0,0x99,0x0,0xb9,0x0,0x63,0x0,0xd3,0xff, +0xfa,0xff,0x93,0x0,0x9e,0x0,0x35,0x0,0x29,0x0,0x8f,0x0, +0xdd,0x0,0xdc,0x0,0x94,0x0,0x20,0x0,0x8,0x0,0x7e,0x0, +0xa8,0x0,0x43,0x0,0x2f,0x0,0x81,0x0,0xa2,0x0,0xb7,0x0, +0xc1,0x0,0x53,0x0,0xf0,0xff,0x50,0x0,0xc8,0x0,0x80,0x0, +0x19,0x0,0x73,0x0,0xee,0x0,0xaa,0x0,0x3c,0x0,0x57,0x0, +0x85,0x0,0x85,0x0,0x91,0x0,0x69,0x0,0x23,0x0,0x4b,0x0, +0x8a,0x0,0x5c,0x0,0x45,0x0,0x8c,0x0,0x9b,0x0,0x49,0x0, +0x1c,0x0,0x31,0x0,0x44,0x0,0x59,0x0,0x71,0x0,0x4a,0x0, +0x28,0x0,0x6e,0x0,0x7d,0x0,0x2,0x0,0xe7,0xff,0x4d,0x0, +0x53,0x0,0xe,0x0,0xfe,0xff,0x4,0x0,0x3e,0x0,0x87,0x0, +0x29,0x0,0x98,0xff,0xf1,0xff,0xaa,0x0,0x9b,0x0,0x1b,0x0, +0x16,0x0,0x65,0x0,0x66,0x0,0x27,0x0,0x13,0x0,0x25,0x0, +0x3d,0x0,0x5e,0x0,0x5c,0x0,0x39,0x0,0x4b,0x0,0x77,0x0, +0x5a,0x0,0x30,0x0,0x5c,0x0,0x8a,0x0,0x48,0x0,0xb,0x0, +0x60,0x0,0xae,0x0,0x5c,0x0,0x21,0x0,0x59,0x0,0x65,0x0, +0x6e,0x0,0xc6,0x0,0xb9,0x0,0x58,0x0,0x74,0x0,0xb3,0x0, +0xa6,0x0,0xbe,0x0,0xcb,0x0,0x7e,0x0,0x7b,0x0,0xc7,0x0, +0xad,0x0,0x6b,0x0,0x7d,0x0,0x83,0x0,0x68,0x0,0x95,0x0, +0xd4,0x0,0xc3,0x0,0xbe,0x0,0xea,0x0,0xc2,0x0,0x65,0x0, +0x67,0x0,0x88,0x0,0x7c,0x0,0x99,0x0,0xc6,0x0,0xad,0x0, +0x90,0x0,0x9c,0x0,0xae,0x0,0xce,0x0,0xe0,0x0,0xbe,0x0, +0x98,0x0,0x92,0x0,0xc3,0x0,0x1,0x1,0x9d,0x0,0xe1,0xff, +0x25,0x0,0x19,0x1,0x40,0x1,0xb2,0x0,0x55,0x0,0x44,0x0, +0x86,0x0,0xdc,0x0,0x8b,0x0,0xf1,0xff,0x22,0x0,0xb5,0x0, +0x97,0x0,0x2e,0x0,0x5a,0x0,0xa7,0x0,0x61,0x0,0xe8,0xff, +0xcd,0xff,0x17,0x0,0x77,0x0,0x65,0x0,0xf7,0xff,0x22,0x0, +0xcb,0x0,0xc8,0x0,0x33,0x0,0xfb,0xff,0x13,0x0,0x33,0x0, +0x61,0x0,0x5b,0x0,0x24,0x0,0x2a,0x0,0x5e,0x0,0x6d,0x0, +0x51,0x0,0x2d,0x0,0x24,0x0,0x1a,0x0,0xed,0xff,0xde,0xff, +0xe,0x0,0x38,0x0,0x53,0x0,0x6e,0x0,0x60,0x0,0x51,0x0, +0x68,0x0,0x4e,0x0,0xf6,0xff,0xe5,0xff,0x31,0x0,0x4e,0x0, +0x21,0x0,0x38,0x0,0xa0,0x0,0xba,0x0,0x85,0x0,0x75,0x0, +0x63,0x0,0x3b,0x0,0x74,0x0,0xd8,0x0,0xa9,0x0,0x13,0x0, +0xe6,0xff,0x55,0x0,0xc2,0x0,0x94,0x0,0xc,0x0,0xf2,0xff, +0x7e,0x0,0xb,0x1,0xe1,0x0,0x46,0x0,0x33,0x0,0xb1,0x0, +0xde,0x0,0x8e,0x0,0x38,0x0,0x27,0x0,0x70,0x0,0xab,0x0, +0x5d,0x0,0x27,0x0,0x85,0x0,0xa9,0x0,0x5f,0x0,0x72,0x0, +0xcf,0x0,0xd2,0x0,0x8f,0x0,0x4d,0x0,0x36,0x0,0x6b,0x0, +0x94,0x0,0x56,0x0,0x2c,0x0,0x87,0x0,0xdf,0x0,0xa1,0x0, +0x2f,0x0,0x24,0x0,0x70,0x0,0xae,0x0,0xa2,0x0,0x68,0x0, +0x5c,0x0,0x7c,0x0,0x76,0x0,0x72,0x0,0x7e,0x0,0x3b,0x0, +0x13,0x0,0x6c,0x0,0x74,0x0,0x17,0x0,0x44,0x0,0x94,0x0, +0x55,0x0,0x40,0x0,0x7f,0x0,0x5d,0x0,0x20,0x0,0x33,0x0, +0x49,0x0,0x5e,0x0,0x63,0x0,0x14,0x0,0x0,0x0,0x77,0x0, +0x87,0x0,0xfe,0xff,0xdb,0xff,0x1e,0x0,0x9,0x0,0xdd,0xff, +0xf2,0xff,0xfb,0xff,0x1a,0x0,0x62,0x0,0x3e,0x0,0xed,0xff, +0xc,0x0,0xf0,0xff,0x71,0xff,0x9f,0xff,0x10,0x0,0xb4,0xff, +0x61,0xff,0xd8,0xff,0x69,0x0,0xa6,0x0,0x49,0x0,0x46,0xff, +0xe2,0xfe,0xa7,0xff,0x3f,0x0,0x29,0x0,0xf8,0xff,0xac,0xff, +0x98,0xff,0x1a,0x0,0x48,0x0,0xc5,0xff,0xac,0xff,0x4,0x0, +0xd5,0xff,0x7c,0xff,0x9b,0xff,0xa5,0xff,0x97,0xff,0x1c,0x0, +0xa5,0x0,0x65,0x0,0xdc,0xff,0x78,0xff,0x4f,0xff,0xd6,0xff, +0x68,0x0,0xe5,0xff,0x42,0xff,0x89,0xff,0xe6,0xff,0x15,0x0, +0x51,0x0,0xf5,0xff,0xa2,0xff,0x56,0x0,0x9c,0x0,0xa0,0xff, +0xf,0xff,0x70,0xff,0xf2,0xff,0x83,0x0,0x8f,0x0,0xa9,0xff, +0x29,0xff,0xa3,0xff,0xff,0xff,0x9,0x0,0x1b,0x0,0xdf,0xff, +0x8a,0xff,0xbb,0xff,0x3,0x0,0xd9,0xff,0x87,0xff,0x65,0xff, +0xa7,0xff,0x4a,0x0,0x63,0x0,0x72,0xff,0xe4,0xfe,0x98,0xff, +0x2f,0x0,0x5,0x0,0x3,0x0,0xfa,0xff,0x92,0xff,0xb1,0xff, +0x37,0x0,0x20,0x0,0xcb,0xff,0x9e,0xff,0x5c,0xff,0xa2,0xff, +0x61,0x0,0x51,0x0,0xb3,0xff,0xb5,0xff,0xb,0x0,0x36,0x0, +0x36,0x0,0xb8,0xff,0x49,0xff,0xd9,0xff,0x83,0x0,0x30,0x0, +0xb5,0xff,0xd4,0xff,0x20,0x0,0x5e,0x0,0x63,0x0,0xdd,0xff, +0x76,0xff,0xe3,0xff,0x70,0x0,0x6a,0x0,0x29,0x0,0xee,0xff, +0xc8,0xff,0xfe,0xff,0x4a,0x0,0x3b,0x0,0x11,0x0,0xe0,0xff, +0x8f,0xff,0xae,0xff,0x3a,0x0,0x3f,0x0,0xcb,0xff,0xae,0xff, +0xe6,0xff,0x2c,0x0,0x48,0x0,0xcb,0xff,0x29,0xff,0x7a,0xff, +0x63,0x0,0x94,0x0,0x13,0x0,0xda,0xff,0xf9,0xff,0xe0,0xff, +0x96,0xff,0x80,0xff,0x9e,0xff,0xca,0xff,0x7,0x0,0x36,0x0, +0x19,0x0,0xa6,0xff,0x5a,0xff,0xc8,0xff,0x6c,0x0,0x26,0x0, +0x47,0xff,0x21,0xff,0xb7,0xff,0x1a,0x0,0x0,0x0,0xb2,0xff, +0x9d,0xff,0xfc,0xff,0x4a,0x0,0xb,0x0,0xab,0xff,0x9e,0xff, +0xc0,0xff,0xe4,0xff,0x0,0x0,0xf8,0xff,0xc2,0xff,0xa8,0xff, +0xeb,0xff,0x45,0x0,0x50,0x0,0x17,0x0,0xc0,0xff,0x62,0xff, +0x47,0xff,0x8a,0xff,0xe7,0xff,0x1d,0x0,0x10,0x0,0xf4,0xff, +0xf,0x0,0xf3,0xff,0x63,0xff,0x4d,0xff,0x2,0x0,0x62,0x0, +0xfa,0xff,0x91,0xff,0x97,0xff,0xf8,0xff,0x6d,0x0,0x77,0x0, +0xfd,0xff,0x9d,0xff,0xb4,0xff,0x8,0x0,0x3d,0x0,0x25,0x0, +0xe5,0xff,0xee,0xff,0x48,0x0,0x6c,0x0,0x4b,0x0,0x44,0x0, +0x14,0x0,0xb1,0xff,0xe2,0xff,0x79,0x0,0x80,0x0,0x45,0x0, +0x56,0x0,0x64,0x0,0x7f,0x0,0xa5,0x0,0x49,0x0,0xdb,0xff, +0xed,0xff,0xea,0xff,0xe0,0xff,0x4d,0x0,0x7b,0x0,0x3b,0x0, +0x5c,0x0,0xae,0x0,0xb9,0x0,0x96,0x0,0x26,0x0,0xe0,0xff, +0x77,0x0,0xe3,0x0,0x52,0x0,0x6,0x0,0x82,0x0,0xa8,0x0, +0x59,0x0,0x59,0x0,0x86,0x0,0x6e,0x0,0x4e,0x0,0x70,0x0, +0x8f,0x0,0x80,0x0,0x78,0x0,0x90,0x0,0xae,0x0,0xb8,0x0, +0x8c,0x0,0x69,0x0,0x9c,0x0,0xab,0x0,0x66,0x0,0x68,0x0, +0xa1,0x0,0xa1,0x0,0xbf,0x0,0xdb,0x0,0x9e,0x0,0x8a,0x0, +0x99,0x0,0x5f,0x0,0x87,0x0,0xf8,0x0,0xaf,0x0,0x61,0x0, +0xd5,0x0,0xfd,0x0,0xa5,0x0,0x8e,0x0,0x6b,0x0,0x5f,0x0, +0xfa,0x0,0x47,0x1,0xcd,0x0,0xa9,0x0,0xd3,0x0,0x92,0x0, +0x7c,0x0,0xbf,0x0,0xa6,0x0,0x80,0x0,0xcc,0x0,0xf2,0x0, +0xbe,0x0,0xbe,0x0,0xf4,0x0,0x2,0x1,0xe6,0x0,0xa9,0x0, +0x5c,0x0,0x42,0x0,0x88,0x0,0x4,0x1,0x3a,0x1,0xe1,0x0, +0x7e,0x0,0x8f,0x0,0xa4,0x0,0x96,0x0,0xf5,0x0,0x5a,0x1, +0xe0,0x0,0x37,0x0,0x72,0x0,0xfe,0x0,0xff,0x0,0xd4,0x0, +0xe7,0x0,0xf8,0x0,0x4,0x1,0x1b,0x1,0xe1,0x0,0x8f,0x0, +0xbf,0x0,0xff,0x0,0xd2,0x0,0xd3,0x0,0xfb,0x0,0xa4,0x0, +0x82,0x0,0x1f,0x1,0x65,0x1,0x12,0x1,0x6,0x1,0x17,0x1, +0xed,0x0,0xef,0x0,0x0,0x1,0xdd,0x0,0xd7,0x0,0xe4,0x0, +0xd8,0x0,0xe7,0x0,0xf8,0x0,0xe9,0x0,0x2,0x1,0x4e,0x1, +0x82,0x1,0x4e,0x1,0xc3,0x0,0x9f,0x0,0x18,0x1,0x54,0x1, +0x13,0x1,0xd3,0x0,0x9b,0x0,0xa0,0x0,0x39,0x1,0xb4,0x1, +0x59,0x1,0xb7,0x0,0xb9,0x0,0x63,0x1,0xb1,0x1,0x26,0x1, +0xbd,0x0,0xe3,0x0,0xdf,0x0,0xf2,0x0,0x78,0x1,0x7c,0x1, +0x3,0x1,0xff,0x0,0x9,0x1,0xe8,0x0,0x39,0x1,0x61,0x1, +0x0,0x1,0xfe,0x0,0x2a,0x1,0xf7,0x0,0x1e,0x1,0x72,0x1, +0xe,0x1,0xc1,0x0,0x31,0x1,0x63,0x1,0x13,0x1,0xdd,0x0, +0xd8,0x0,0x7,0x1,0x3e,0x1,0xfd,0x0,0xc6,0x0,0x3d,0x1, +0x6d,0x1,0xc5,0x0,0x8a,0x0,0x1e,0x1,0x43,0x1,0xbf,0x0, +0x8b,0x0,0xca,0x0,0xf2,0x0,0xf0,0x0,0xf3,0x0,0x9,0x1, +0x1b,0x1,0xea,0x0,0xa4,0x0,0xcd,0x0,0xfe,0x0,0xa1,0x0, +0x84,0x0,0x1b,0x1,0x38,0x1,0x98,0x0,0x70,0x0,0xda,0x0, +0x1c,0x1,0x1e,0x1,0xdf,0x0,0x90,0x0,0xaa,0x0,0xba,0x0, +0x79,0x0,0xaf,0x0,0x6,0x1,0xa4,0x0,0x74,0x0,0xe8,0x0, +0xea,0x0,0xa9,0x0,0xc6,0x0,0x93,0x0,0x4c,0x0,0xa1,0x0, +0xbf,0x0,0x87,0x0,0xcc,0x0,0xe4,0x0,0x87,0x0,0xd2,0x0, +0x37,0x1,0x8c,0x0,0xf7,0xff,0x73,0x0,0xee,0x0,0xbc,0x0, +0x6a,0x0,0x64,0x0,0x9c,0x0,0xca,0x0,0xc3,0x0,0xa3,0x0, +0x73,0x0,0x48,0x0,0x68,0x0,0xad,0x0,0xa4,0x0,0x6a,0x0, +0x6a,0x0,0x91,0x0,0x95,0x0,0x7c,0x0,0x5e,0x0,0x3e,0x0, +0x4b,0x0,0x8b,0x0,0xac,0x0,0x9c,0x0,0x78,0x0,0x2c,0x0, +0x21,0x0,0xac,0x0,0xe2,0x0,0x45,0x0,0x0,0x0,0x72,0x0, +0x9e,0x0,0x66,0x0,0x48,0x0,0x2c,0x0,0x25,0x0,0x5c,0x0, +0x75,0x0,0x5a,0x0,0x4e,0x0,0x42,0x0,0x34,0x0,0x59,0x0, +0x78,0x0,0x30,0x0,0xce,0xff,0xf9,0xff,0x7c,0x0,0x75,0x0, +0xfd,0xff,0xfa,0xff,0x4c,0x0,0x42,0x0,0x15,0x0,0x1c,0x0, +0x10,0x0,0xf1,0xff,0x12,0x0,0x46,0x0,0x20,0x0,0xc1,0xff, +0xb6,0xff,0x13,0x0,0x59,0x0,0x41,0x0,0xe6,0xff,0xab,0xff, +0xed,0xff,0x45,0x0,0x17,0x0,0xcd,0xff,0xd6,0xff,0xe2,0xff, +0xfb,0xff,0x2c,0x0,0xf9,0xff,0xa3,0xff,0xbe,0xff,0xf6,0xff, +0x15,0x0,0x2c,0x0,0xdd,0xff,0x6c,0xff,0x7d,0xff,0xc7,0xff, +0xec,0xff,0xef,0xff,0xbd,0xff,0xb1,0xff,0xed,0xff,0xdd,0xff, +0xab,0xff,0xb2,0xff,0x6c,0xff,0x2d,0xff,0xa8,0xff,0xf5,0xff, +0xa0,0xff,0x7c,0xff,0x70,0xff,0x53,0xff,0xb2,0xff,0xee,0xff, +0x65,0xff,0x1c,0xff,0x81,0xff,0xc6,0xff,0xb7,0xff,0x8e,0xff, +0x68,0xff,0x58,0xff,0x36,0xff,0x2c,0xff,0x84,0xff,0xc0,0xff, +0x90,0xff,0x60,0xff,0x40,0xff,0x2f,0xff,0x68,0xff,0x90,0xff, +0x71,0xff,0x6c,0xff,0x5a,0xff,0x30,0xff,0x6b,0xff,0xaa,0xff, +0x4b,0xff,0xf4,0xfe,0x38,0xff,0x8d,0xff,0x78,0xff,0x41,0xff, +0x51,0xff,0x69,0xff,0x20,0xff,0x8,0xff,0x71,0xff,0x88,0xff, +0x33,0xff,0x1c,0xff,0x15,0xff,0x25,0xff,0x91,0xff,0x81,0xff, +0xdd,0xfe,0xe7,0xfe,0x66,0xff,0x67,0xff,0x4c,0xff,0x4d,0xff, +0x17,0xff,0x1,0xff,0x37,0xff,0x5f,0xff,0x53,0xff,0x7,0xff, +0x0,0xff,0x91,0xff,0x9a,0xff,0xe4,0xfe,0xe5,0xfe,0x5f,0xff, +0x40,0xff,0x43,0xff,0x7f,0xff,0x15,0xff,0xd7,0xfe,0x4b,0xff, +0x61,0xff,0x39,0xff,0x65,0xff,0x3b,0xff,0xf6,0xfe,0x53,0xff, +0x8a,0xff,0x25,0xff,0xfc,0xfe,0x2e,0xff,0x47,0xff,0x58,0xff, +0x66,0xff,0x45,0xff,0x6,0xff,0xe7,0xfe,0x2c,0xff,0x9b,0xff, +0x93,0xff,0x2e,0xff,0x13,0xff,0x39,0xff,0x47,0xff,0x60,0xff, +0x82,0xff,0x55,0xff,0x13,0xff,0x1f,0xff,0x20,0xff,0xff,0xfe, +0x51,0xff,0xb1,0xff,0x60,0xff,0x2e,0xff,0x87,0xff,0x5f,0xff, +0xa,0xff,0x86,0xff,0xba,0xff,0x1c,0xff,0x24,0xff,0x9d,0xff, +0x35,0xff,0xcd,0xfe,0x41,0xff,0x9f,0xff,0x97,0xff,0x91,0xff, +0x62,0xff,0x32,0xff,0x59,0xff,0x84,0xff,0x97,0xff,0xa0,0xff, +0x58,0xff,0x6,0xff,0x32,0xff,0x7d,0xff,0x8b,0xff,0x82,0xff, +0x57,0xff,0x44,0xff,0x9c,0xff,0xa0,0xff,0xb,0xff,0xa,0xff, +0xa0,0xff,0x9b,0xff,0x6d,0xff,0xb7,0xff,0x81,0xff,0xf3,0xfe, +0x3a,0xff,0xa6,0xff,0x74,0xff,0x6d,0xff,0x75,0xff,0x23,0xff, +0x50,0xff,0xb4,0xff,0x55,0xff,0x2c,0xff,0xad,0xff,0x9c,0xff, +0x3d,0xff,0x8a,0xff,0xb4,0xff,0x43,0xff,0x12,0xff,0x57,0xff, +0xaa,0xff,0xba,0xff,0x72,0xff,0x6d,0xff,0xd4,0xff,0xcf,0xff, +0x67,0xff,0x5d,0xff,0x7a,0xff,0x6b,0xff,0x7f,0xff,0xa2,0xff, +0x9b,0xff,0x8e,0xff,0x87,0xff,0x92,0xff,0xc0,0xff,0xc6,0xff, +0x72,0xff,0x2b,0xff,0x66,0xff,0xda,0xff,0xd1,0xff,0x8c,0xff, +0xca,0xff,0xfc,0xff,0x81,0xff,0x4f,0xff,0xc5,0xff,0xf3,0xff, +0xbc,0xff,0x95,0xff,0x82,0xff,0xa8,0xff,0xcc,0xff,0xa0,0xff, +0xd1,0xff,0x43,0x0,0xe3,0xff,0x55,0xff,0xa0,0xff,0xec,0xff, +0xc8,0xff,0xcf,0xff,0xca,0xff,0x9e,0xff,0xbd,0xff,0xda,0xff, +0xc3,0xff,0xce,0xff,0xcc,0xff,0xb7,0xff,0xed,0xff,0x21,0x0, +0xf6,0xff,0xb8,0xff,0xc1,0xff,0x14,0x0,0x32,0x0,0xc3,0xff, +0x81,0xff,0xcc,0xff,0xe9,0xff,0xdd,0xff,0xfe,0xff,0xd8,0xff, +0xa9,0xff,0xf1,0xff,0xc,0x0,0xeb,0xff,0x9,0x0,0xdf,0xff, +0x96,0xff,0xf6,0xff,0x24,0x0,0xa8,0xff,0xa0,0xff,0xf4,0xff, +0xf8,0xff,0x11,0x0,0x13,0x0,0xb8,0xff,0xc1,0xff,0xb,0x0, +0x2,0x0,0x13,0x0,0xfe,0xff,0x86,0xff,0xc8,0xff,0x66,0x0, +0x1,0x0,0xa1,0xff,0xb,0x0,0xf0,0xff,0x95,0xff,0x1,0x0, +0x1c,0x0,0x9e,0xff,0xd8,0xff,0x5d,0x0,0x2d,0x0,0xdc,0xff, +0xb8,0xff,0x8e,0xff,0xd4,0xff,0x57,0x0,0x32,0x0,0xbd,0xff, +0xd8,0xff,0x27,0x0,0xe,0x0,0xee,0xff,0xa,0x0,0xe3,0xff, +0x7a,0xff,0x8b,0xff,0x19,0x0,0x6f,0x0,0x42,0x0,0xb3,0xff, +0x67,0xff,0xf1,0xff,0x61,0x0,0xf2,0xff,0xbe,0xff,0x9,0x0, +0xd8,0xff,0xb5,0xff,0x19,0x0,0xf,0x0,0xda,0xff,0x6,0x0, +0xdb,0xff,0xcc,0xff,0x43,0x0,0x0,0x0,0xa3,0xff,0x47,0x0, +0x2e,0x0,0x5b,0xff,0xd9,0xff,0x62,0x0,0xd4,0xff,0xf0,0xff, +0x3c,0x0,0xa8,0xff,0xbe,0xff,0x28,0x0,0xaf,0xff,0xdc,0xff, +0x88,0x0,0xf1,0xff,0x7b,0xff,0xd,0x0,0x22,0x0,0xf0,0xff, +0xfc,0xff,0x9d,0xff,0x99,0xff,0x2d,0x0,0xb,0x0,0xa5,0xff, +0xc2,0xff,0xb0,0xff,0xb5,0xff,0x35,0x0,0x55,0x0,0x2,0x0, +0xae,0xff,0x7e,0xff,0xd1,0xff,0x16,0x0,0xb2,0xff,0x9e,0xff, +0xeb,0xff,0xd3,0xff,0xe3,0xff,0x3,0x0,0xbb,0xff,0xe9,0xff, +0x11,0x0,0x5f,0xff,0x60,0xff,0x25,0x0,0x15,0x0,0xcf,0xff, +0xaf,0xff,0x42,0xff,0x9e,0xff,0x1b,0x0,0x69,0xff,0x86,0xff, +0x7d,0x0,0xea,0xff,0x49,0xff,0xe0,0xff,0xc1,0xff,0x87,0xff, +0x14,0x0,0xc3,0xff,0x5a,0xff,0xd1,0xff,0x8b,0xff,0x49,0xff, +0xa,0x0,0xe7,0xff,0x49,0xff,0xa7,0xff,0xc2,0xff,0xa9,0xff, +0xd,0x0,0xc1,0xff,0x6b,0xff,0xd7,0xff,0x91,0xff,0x55,0xff, +0x11,0x0,0xe8,0xff,0x42,0xff,0x93,0xff,0xa4,0xff,0x96,0xff, +0xfb,0xff,0x7f,0xff,0x37,0xff,0x29,0x0,0x1c,0x0,0x78,0xff, +0xd7,0xff,0x9f,0xff,0x23,0xff,0xd5,0xff,0xf7,0xff,0x86,0xff, +0xcd,0xff,0x6c,0xff,0x1a,0xff,0x2a,0x0,0x20,0x0,0x25,0xff, +0xbd,0xff,0x2d,0x0,0x94,0xff,0xd2,0xff,0xee,0xff,0x6a,0xff, +0xbe,0xff,0xcb,0xff,0x32,0xff,0x8e,0xff,0xee,0xff,0xac,0xff, +0xcb,0xff,0xa1,0xff,0x64,0xff,0xf4,0xff,0xd2,0xff,0x50,0xff, +0xf7,0xff,0x9,0x0,0x3e,0xff,0x7d,0xff,0xaa,0xff,0x41,0xff, +0xa3,0xff,0xdc,0xff,0x9f,0xff,0x2,0x0,0xe3,0xff,0x50,0xff, +0xa1,0xff,0xaf,0xff,0x8a,0xff,0x19,0x0,0xb8,0xff,0x24,0xff, +0x8,0x0,0xe7,0xff,0xe6,0xfe,0xc2,0xff,0x39,0x0,0x3a,0xff, +0x93,0xff,0xf9,0xff,0x3b,0xff,0xc4,0xff,0x55,0x0,0x5e,0xff, +0x6a,0xff,0x5,0x0,0x5a,0xff,0x4d,0xff,0x3,0x0,0xdf,0xff, +0xa9,0xff,0x82,0xff,0x1a,0xff,0x6e,0xff,0xcb,0xff,0xa3,0xff, +0x0,0x0,0xdd,0xff,0xfe,0xfe,0x73,0xff,0x2c,0x0,0x99,0xff, +0x76,0xff,0xcb,0xff,0x6c,0xff,0x86,0xff,0xfc,0xff,0x9e,0xff, +0x61,0xff,0xad,0xff,0xb1,0xff,0x8f,0xff,0x95,0xff,0xea,0xff, +0x19,0x0,0x49,0xff,0x3,0xff,0x33,0x0,0x37,0x0,0x2d,0xff, +0xa3,0xff,0x8,0x0,0x5c,0xff,0xc7,0xff,0x3a,0x0,0x6b,0xff, +0x67,0xff,0xd9,0xff,0x81,0xff,0xe4,0xff,0x77,0x0,0xa8,0xff, +0x1b,0xff,0x9c,0xff,0xe4,0xff,0xd2,0xff,0x8d,0xff,0x7c,0xff, +0x1b,0x0,0x15,0x0,0x58,0xff,0xa8,0xff,0x19,0x0,0xa0,0xff, +0xaf,0xff,0xe3,0xff,0x6e,0xff,0xb4,0xff,0x2a,0x0,0x90,0xff, +0x7c,0xff,0x20,0x0,0xdd,0xff,0x6f,0xff,0xbd,0xff,0xd7,0xff, +0xa3,0xff,0xc5,0xff,0xf,0x0,0xf2,0xff,0x82,0xff,0xa4,0xff, +0x31,0x0,0xea,0xff,0x86,0xff,0xfa,0xff,0xd9,0xff,0x17,0xff, +0x5b,0xff,0xfc,0xff,0x1e,0x0,0x5c,0x0,0x46,0x0,0xd1,0xff, +0xc,0x0,0x5d,0x0,0xff,0xff,0x9f,0xff,0x65,0xff,0x47,0xff, +0x64,0xff,0x51,0xff,0x67,0xff,0xc2,0xff,0x77,0xff,0x4e,0xff, +0xf4,0xff,0xe2,0xff,0x6e,0xff,0xd2,0xff,0xbf,0xff,0x4e,0xff, +0xdd,0xff,0xfd,0xff,0x4c,0xff,0x80,0xff,0xbb,0xff,0x4a,0xff, +0xa8,0xff,0x3b,0x0,0xf3,0xff,0xed,0xff,0x3d,0x0,0x28,0x0, +0x26,0x0,0x4e,0x0,0x40,0x0,0xf2,0xff,0x85,0xff,0xbe,0xff, +0x45,0x0,0xb9,0xff,0x3a,0xff,0xf1,0xff,0x1c,0x0,0x85,0xff, +0xa4,0xff,0xc3,0xff,0x9d,0xff,0xf7,0xff,0xf6,0xff,0x9c,0xff, +0xe2,0xff,0xea,0xff,0x81,0xff,0x9b,0xff,0xb5,0xff,0x7e,0xff, +0x4c,0xff,0xd,0xff,0x8c,0xff,0x72,0x0,0x17,0x0,0xb5,0xff, +0x4f,0x0,0x17,0x0,0xc3,0xff,0x78,0x0,0x4,0x0,0xf,0xff, +0xd2,0xff,0x33,0x0,0x89,0xff,0xf0,0xff,0x37,0x0,0xab,0xff, +0x15,0x0,0x6a,0x0,0xbc,0xff,0xb7,0xff,0x14,0x0,0xe5,0xff, +0xe2,0xff,0x0,0x0,0x1c,0x0,0x21,0x0,0x63,0xff,0x4e,0xff, +0x88,0x0,0x6d,0x0,0x71,0xff,0xe6,0xff,0x6,0x0,0x54,0xff, +0xeb,0xff,0x61,0x0,0xc2,0xff,0xf7,0xff,0x3f,0x0,0xca,0xff, +0x24,0x0,0x7b,0x0,0xd5,0xff,0xac,0xff,0xf2,0xff,0xfc,0xff, +0x30,0x0,0xf3,0xff,0x8c,0xff,0xf3,0xff,0x14,0x0,0x8,0x0, +0xb6,0x0,0x71,0x0,0x7d,0xff,0xea,0xff,0x37,0x0,0xb8,0xff, +0x3d,0x0,0x71,0x0,0x76,0xff,0x83,0xff,0x28,0x0,0x1c,0x0, +0x57,0x0,0x52,0x0,0x93,0xff,0x9d,0xff,0x18,0x0,0x14,0x0, +0x27,0x0,0x17,0x0,0x10,0x0,0x6f,0x0,0x7,0x0,0xb1,0xff, +0xa0,0x0,0x6b,0x0,0x38,0xff,0xc6,0xff,0x57,0x0,0xcd,0xff, +0x5b,0x0,0xa0,0x0,0x8d,0xff,0xe5,0xff,0xc7,0x0,0x2a,0x0, +0xc,0x0,0x63,0x0,0xcb,0xff,0xee,0xff,0x8a,0x0,0x17,0x0, +0x14,0x0,0x82,0x0,0x4,0x0,0xe6,0xff,0x5b,0x0,0x31,0x0, +0x1f,0x0,0x1b,0x0,0xc7,0xff,0x58,0x0,0xdc,0x0,0x22,0x0, +0x13,0x0,0xb0,0x0,0x32,0x0,0xc8,0xff,0x2f,0x0,0x3d,0x0, +0x4b,0x0,0x77,0x0,0xf,0x0,0xf8,0xff,0x83,0x0,0xa4,0x0, +0x5f,0x0,0x2f,0x0,0x44,0x0,0x6e,0x0,0x6,0x0,0xf0,0xff, +0xd8,0x0,0xbb,0x0,0xcf,0xff,0x55,0x0,0xa4,0x0,0xbd,0xff, +0x2e,0x0,0xec,0x0,0xa,0x0,0xec,0xff,0xaf,0x0,0x49,0x0, +0x37,0x0,0xbc,0x0,0x21,0x0,0xe6,0xff,0x8f,0x0,0x3f,0x0, +0x0,0x0,0x9a,0x0,0x6f,0x0,0x13,0x0,0x6b,0x0,0x80,0x0, +0x91,0x0,0x94,0x0,0xd1,0xff,0xcb,0xff,0xb1,0x0,0x85,0x0, +0x23,0x0,0x90,0x0,0x50,0x0,0xed,0xff,0x8f,0x0,0xca,0x0, +0x5d,0x0,0x49,0x0,0x14,0x0,0xde,0xff,0x6d,0x0,0xf3,0x0, +0x9e,0x0,0x1,0x0,0x5,0x0,0x95,0x0,0x8c,0x0,0xb,0x0, +0x45,0x0,0x82,0x0,0x1e,0x0,0x5d,0x0,0xc1,0x0,0x42,0x0, +0x57,0x0,0xeb,0x0,0x48,0x0,0xc7,0xff,0x7c,0x0,0x98,0x0, +0x1e,0x0,0x39,0x0,0x58,0x0,0x89,0x0,0xcf,0x0,0x47,0x0, +0x6,0x0,0xa0,0x0,0x92,0x0,0x5b,0x0,0x95,0x0,0x2f,0x0, +0x14,0x0,0x9e,0x0,0x48,0x0,0x29,0x0,0xbd,0x0,0x52,0x0, +0x20,0x0,0xe2,0x0,0x9f,0x0,0x13,0x0,0x60,0x0,0x73,0x0, +0x87,0x0,0x9a,0x0,0x20,0x0,0x3a,0x0,0x9f,0x0,0x6b,0x0, +0x8a,0x0,0x7f,0x0,0x4,0x0,0x72,0x0,0xbe,0x0,0x45,0x0, +0x92,0x0,0xb1,0x0,0xa,0x0,0x67,0x0,0xeb,0x0,0x58,0x0, +0x3b,0x0,0xa1,0x0,0x6b,0x0,0x48,0x0,0x96,0x0,0xac,0x0, +0x79,0x0,0x3e,0x0,0x28,0x0,0x6d,0x0,0xb9,0x0,0x7f,0x0, +0x27,0x0,0x5a,0x0,0x9a,0x0,0x6a,0x0,0x3c,0x0,0x47,0x0, +0x8a,0x0,0xb2,0x0,0x42,0x0,0x1c,0x0,0xa8,0x0,0xa0,0x0, +0x52,0x0,0x76,0x0,0x54,0x0,0x6d,0x0,0xcd,0x0,0x50,0x0, +0x23,0x0,0xaa,0x0,0x68,0x0,0x60,0x0,0xc6,0x0,0x33,0x0, +0x2c,0x0,0xdd,0x0,0x62,0x0,0x1f,0x0,0xad,0x0,0x79,0x0, +0x55,0x0,0x80,0x0,0x38,0x0,0x7f,0x0,0xd0,0x0,0x52,0x0, +0x4c,0x0,0x7f,0x0,0x4e,0x0,0x6b,0x0,0x3e,0x0,0x1f,0x0, +0xe8,0x0,0xd7,0x0,0xfd,0xff,0x58,0x0,0xb6,0x0,0x29,0x0, +0x27,0x0,0x81,0x0,0x76,0x0,0x80,0x0,0x91,0x0,0x55,0x0, +0x30,0x0,0x83,0x0,0xcc,0x0,0x70,0x0,0x1f,0x0,0x4f,0x0, +0x4d,0x0,0x48,0x0,0x93,0x0,0x8d,0x0,0x66,0x0,0x7d,0x0, +0x64,0x0,0x2d,0x0,0x32,0x0,0x97,0x0,0xdd,0x0,0x3c,0x0, +0xda,0xff,0x8b,0x0,0x8f,0x0,0x17,0x0,0x93,0x0,0xa8,0x0, +0x20,0x0,0x51,0x0,0x64,0x0,0x35,0x0,0x8a,0x0,0x84,0x0, +0x40,0x0,0x7a,0x0,0x93,0x0,0x7b,0x0,0x46,0x0,0x3,0x0, +0x79,0x0,0xc1,0x0,0x21,0x0,0x2a,0x0,0x8c,0x0,0x2f,0x0, +0x52,0x0,0xd0,0x0,0x7c,0x0,0x2a,0x0,0x26,0x0,0xc,0x0, +0x6b,0x0,0xc0,0x0,0x4d,0x0,0x2,0x0,0x4a,0x0,0x67,0x0, +0x4a,0x0,0x5c,0x0,0x6b,0x0,0x37,0x0,0x36,0x0,0x8e,0x0, +0x82,0x0,0x26,0x0,0x49,0x0,0x8d,0x0,0x50,0x0,0xb,0x0, +0x34,0x0,0x73,0x0,0x79,0x0,0x69,0x0,0x42,0x0,0x12,0x0, +0x52,0x0,0xaf,0x0,0x63,0x0,0x1d,0x0,0x64,0x0,0x69,0x0, +0x3f,0x0,0x4f,0x0,0x37,0x0,0x48,0x0,0x87,0x0,0x3f,0x0, +0x21,0x0,0x86,0x0,0x61,0x0,0x1c,0x0,0x5f,0x0,0x64,0x0, +0x47,0x0,0x70,0x0,0x4b,0x0,0x20,0x0,0x62,0x0,0x7d,0x0, +0x6a,0x0,0x5c,0x0,0x29,0x0,0x3d,0x0,0x86,0x0,0x54,0x0, +0x32,0x0,0x8a,0x0,0x86,0x0,0x22,0x0,0x1e,0x0,0x70,0x0, +0x98,0x0,0x58,0x0,0x27,0x0,0x6f,0x0,0x65,0x0,0xfc,0xff, +0x51,0x0,0xad,0x0,0x38,0x0,0x35,0x0,0x90,0x0,0x2c,0x0, +0x1a,0x0,0x97,0x0,0x56,0x0,0x1d,0x0,0x87,0x0,0x54,0x0, +0x9,0x0,0x88,0x0,0x88,0x0,0x1,0x0,0x1f,0x0,0x56,0x0, +0x3c,0x0,0x4b,0x0,0x45,0x0,0x2b,0x0,0x50,0x0,0x6b,0x0, +0x5d,0x0,0x34,0x0,0x20,0x0,0x5a,0x0,0x43,0x0,0x2,0x0, +0x69,0x0,0x6e,0x0,0xce,0xff,0x19,0x0,0x88,0x0,0xfb,0xff, +0xf5,0xff,0x89,0x0,0x37,0x0,0xb9,0xff,0x34,0x0,0x99,0x0, +0x1b,0x0,0xd3,0xff,0x2d,0x0,0x45,0x0,0x32,0x0,0x23,0x0, +0xd8,0xff,0x10,0x0,0x79,0x0,0x21,0x0,0xe9,0xff,0xd5,0xff, +0xc5,0xff,0xa0,0x0,0xa4,0x0,0x85,0xff,0xf8,0xff,0x6c,0x0, +0xa9,0xff,0x38,0x0,0x95,0x0,0x7a,0xff,0x96,0xff,0x3f,0x0, +0x51,0x0,0xa4,0x0,0x14,0x0,0x5f,0xff,0xfc,0xff,0x34,0x0, +0x20,0x0,0x36,0x0,0x6a,0xff,0x93,0xff,0xaf,0x0,0xf,0x0, +0x55,0xff,0xf1,0xff,0x18,0x0,0xe7,0xff,0xe5,0xff,0xb5,0xff, +0xf3,0xff,0x79,0x0,0x5f,0x0,0xaa,0xff,0x64,0xff,0x29,0x0, +0x77,0x0,0xc6,0xff,0xdf,0xff,0x56,0x0,0xf,0x0,0xee,0xff, +0xf8,0xff,0xd0,0xff,0xa4,0xff,0x96,0xff,0x69,0x0,0xec,0x0, +0xce,0xff,0xa7,0xff,0x9b,0x0,0xdb,0xff,0x15,0xff,0xe1,0xff, +0x58,0x0,0x4b,0x0,0x1a,0x0,0xaa,0xff,0x0,0x0,0x93,0x0, +0x31,0x0,0xa1,0xff,0x94,0xff,0xe1,0xff,0xb,0x0,0xe8,0xff, +0x52,0x0,0xb7,0x0,0xd9,0xff,0x3b,0xff,0x2,0x0,0x4f,0x0, +0x7c,0xff,0x7e,0xff,0xaf,0x0,0xc1,0x0,0x68,0xff,0x31,0xff, +0x5,0x0,0x10,0x0,0x9,0x0,0x43,0x0,0xf3,0xff,0xab,0xff, +0x8e,0xff,0x88,0xff,0xff,0xff,0x47,0x0,0x38,0x0,0x1d,0x0, +0xaf,0xff,0x9d,0xff,0xf2,0xff,0xf6,0xff,0xd,0x0,0xe5,0xff, +0xa9,0xff,0x41,0x0,0x4f,0x0,0x85,0xff,0x7f,0xff,0x1f,0x0, +0x7d,0x0,0xc3,0xff,0x20,0xff,0x4d,0x0,0x3d,0x0,0x97,0xfe, +0xba,0xff,0xe1,0x1,0x57,0x1,0xf9,0xfd,0x25,0xfb,0xe4,0xff, +0x48,0x6,0x6f,0x2,0x2f,0xfd,0xdc,0xfd,0x3a,0xfe,0xa1,0x0, +0x29,0x2,0x4b,0xfe,0xe4,0xff,0x7c,0x2,0xfd,0xfd,0xae,0xfe, +0xb8,0x0,0xcd,0xfd,0xcf,0x0,0xa2,0x1,0xb2,0xfd,0x56,0x1, +0x10,0x0,0xe2,0xfb,0x66,0x3,0x2a,0x2,0x78,0xfa,0x9d,0x1, +0xdd,0x2,0x29,0xfc,0xd0,0x0,0x5d,0x0,0x42,0xfc,0xd2,0x2, +0x7a,0x1,0xc1,0xfc,0x16,0x2,0x98,0xff,0xef,0xfb,0x33,0x2, +0xb7,0x0,0x7a,0xfe,0x76,0x2,0x84,0xfd,0x10,0xfd,0x75,0x4, +0xf1,0xfd,0x6c,0xfa,0xc,0x4,0xf3,0x1,0x6c,0xfd,0xaf,0x2, +0x6a,0xff,0x1b,0xfc,0x14,0x2,0xa4,0xff,0xef,0xfc,0xb9,0x2, +0xf3,0x0,0x7d,0xfe,0x98,0x1,0xf3,0xfd,0x92,0xfd,0x4f,0x2, +0x85,0xfe,0x21,0xff,0xf2,0x3,0xa8,0xfe,0xe4,0xfe,0x60,0x2, +0xee,0xfa,0xe,0xfd,0x1c,0x5,0x3a,0xff,0x50,0xfe,0xff,0x2, +0xf2,0xfd,0xc,0xfe,0xfa,0x0,0x9f,0xfd,0x61,0x1,0xe8,0x2, +0x7,0xfd,0xae,0x0,0x5c,0x2,0x3b,0xfd,0xa1,0xff,0x8d,0xfe, +0x28,0xfd,0x2c,0x6,0x5c,0x3,0xd9,0xf9,0x63,0xfe,0x14,0x0, +0xe0,0xfe,0x71,0x4,0xdd,0xff,0x71,0xfa,0xc7,0x1,0xba,0x2, +0xad,0xfe,0xe4,0xfe,0x1e,0xfc,0xab,0xff,0xa3,0x6,0x77,0x0, +0xd1,0xfc,0x7d,0x1,0x14,0xff,0x85,0xfe,0x87,0x1,0x5,0xfe, +0x38,0x0,0xeb,0x4,0x6a,0xfe,0x73,0xfc,0x67,0x1,0xaf,0xfe, +0xa0,0xfe,0xa9,0x3,0x55,0x1,0x37,0xff,0xe,0x0,0x71,0xfd, +0x4f,0xff,0x13,0x2,0xd3,0xfd,0x2c,0xff,0x31,0x4,0xf7,0x0, +0xaa,0xfe,0x9f,0xfe,0x7e,0xfc,0x86,0x1,0x48,0x5,0xe4,0xfe, +0x59,0xfe,0xa9,0x1,0x7b,0xfe,0x4d,0xff,0xf9,0x0,0x87,0xfd, +0xd4,0x0,0x5d,0x4,0x83,0xff,0x45,0xfe,0x5e,0xff,0x9b,0xfe, +0xfe,0x1,0x1,0x2,0xee,0xfd,0x13,0x0,0x69,0x1,0x53,0xff, +0x8e,0x0,0x62,0xff,0x9c,0xfd,0x48,0x1,0xcd,0x1,0x7a,0xff, +0xea,0x0,0xca,0x0,0x16,0xff,0xa5,0xff,0xc2,0xff,0x95,0x0, +0xc9,0x1,0x33,0x0,0x7c,0xff,0x0,0x0,0x1a,0xff,0xc6,0xff, +0x10,0x1,0xdf,0x0,0x86,0x1,0x88,0x0,0xcc,0xfd,0xa,0xff, +0x8b,0x1,0xcd,0x0,0x97,0xff,0x28,0xff,0x10,0x0,0x3d,0x2, +0xf0,0x0,0x91,0xfd,0x39,0xfe,0xe5,0x0,0x57,0x2,0x30,0x2, +0x92,0xff,0x83,0xfe,0xa3,0x0,0x31,0x0,0x88,0xfe,0xbc,0xff, +0xc,0x1,0xbd,0x2,0x34,0x3,0xc7,0xfd,0xfc,0xfa,0x5c,0x0, +0xe,0x3,0x2f,0x1,0xc7,0x0,0x61,0xff,0xab,0xfe,0x1d,0x1, +0x56,0x0,0x23,0xfe,0x10,0x0,0x3a,0x1,0xb9,0x0,0x69,0x1, +0x2d,0x0,0x36,0xff,0xaf,0x0,0x37,0xff,0x32,0xfe,0xce,0x1, +0x42,0x2,0xf,0x0,0xef,0x0,0xbf,0xff,0x7f,0xfd,0xd4,0xff, +0x1f,0x1,0x8e,0x0,0x4f,0x2,0x5,0x1,0xa6,0xfd,0x1d,0xff, +0xf8,0x0,0x9b,0x0,0xe7,0x0,0x4b,0xff,0x96,0xfe,0x30,0x2, +0x35,0x2,0x92,0xfe,0xd1,0xfe,0x1,0x0,0x64,0x0,0xff,0x1, +0xb7,0x0,0xf2,0xfe,0x2a,0x1,0xbf,0x0,0xd7,0xfd,0x41,0xff, +0xfa,0x0,0x15,0x1,0x76,0x2,0x87,0x0,0xea,0xfc,0xee,0xfe, +0xaf,0x1,0x18,0x1,0x49,0x1,0x9d,0x0,0x7b,0xfe,0x4f,0xff, +0x8f,0x0,0xd0,0xff,0x27,0x0,0x75,0x0,0xe9,0xff,0x23,0x1, +0xd2,0x1,0xce,0xff,0x4e,0xfe,0xc3,0xfe,0x66,0x0,0x12,0x2, +0x7b,0x1,0xb7,0xff,0xb2,0xff,0x24,0x0,0x6f,0xff,0xd0,0xfe, +0x65,0xff,0x90,0x1,0x61,0x3,0x73,0x1,0xbe,0xfd,0xa2,0xfd, +0x6b,0x0,0x55,0x1,0x21,0x0,0xae,0xff,0x46,0x0,0xd3,0x0, +0xee,0x0,0xa9,0xff,0xf7,0xfd,0xd7,0xfe,0xe0,0x0,0xac,0x0, +0xe2,0xff,0x6c,0x0,0xb9,0x0,0x24,0x0,0xec,0xfe,0x35,0xfe, +0xfe,0xff,0xe8,0x1,0x21,0x1,0x2f,0x0,0xd9,0xff,0x0,0xff, +0x92,0xff,0x77,0x0,0xdd,0xff,0xb5,0x0,0x94,0x1,0x8d,0xff, +0x2e,0xff,0xf4,0x0,0x22,0x0,0x2d,0xff,0x1c,0x0,0x33,0x0, +0xd0,0x0,0x96,0x1,0x6d,0xff,0x2d,0xfe,0x26,0x0,0xe7,0x0, +0x38,0x0,0x2e,0x0,0xc,0x0,0x44,0x0,0x39,0x0,0xc4,0xfe, +0x77,0xfe,0xa,0x0,0x6f,0x1,0xf,0x2,0x72,0x0,0xac,0xfd, +0x5a,0xfe,0xa6,0x0,0x81,0x0,0x56,0x0,0xd7,0x0,0xed,0xff, +0x6f,0xff,0xd4,0xff,0x6f,0xff,0xae,0xff,0x93,0x0,0x47,0x0, +0xfd,0xff,0x69,0x0,0x46,0x0,0xd1,0xff,0xbb,0xff,0xf4,0xff, +0x27,0x0,0xfd,0xff,0x3a,0x0,0xf2,0x0,0x9f,0x0,0x6b,0xff, +0xc3,0xfe,0x3e,0xff,0xc8,0x0,0x99,0x1,0x7c,0x0,0x39,0xff, +0xba,0xfe,0xd6,0xfe,0xd3,0xff,0xfe,0xff,0x5d,0xff,0x2a,0x0, +0x52,0x0,0xef,0xfe,0x6a,0xff,0x64,0x0,0xfc,0xff,0x79,0x0, +0x9,0x0,0x5a,0xfe,0x32,0x0,0x5a,0x2,0x23,0x0,0x2a,0xfe, +0x3c,0xfe,0x9f,0xfe,0xda,0x0,0x37,0x2,0x8c,0x0,0x3,0x0, +0xe2,0xff,0x58,0xfe,0x11,0xff,0xbe,0x0,0xc0,0x0,0x1d,0x1, +0x1e,0x0,0xe,0xfe,0x68,0xff,0xae,0x0,0x80,0xff,0x38,0x0, +0x79,0x0,0x5,0xff,0x80,0x0,0x1a,0x1,0x9a,0xfe,0x2d,0xff, +0x4b,0x0,0xb1,0xfe,0xb7,0xff,0x5e,0x1,0x34,0x0,0x6f,0x0, +0x25,0x0,0xbc,0xfd,0x31,0xff,0xe5,0x1,0xd4,0x0,0x0,0x0, +0x7f,0xff,0x17,0xfe,0xae,0xff,0x5c,0x1,0x10,0x0,0x4a,0x0, +0x8d,0x0,0x91,0xfe,0x3b,0xff,0xa,0x1,0x41,0x0,0x44,0x0, +0x59,0x0,0x92,0xfe,0x32,0xff,0x23,0x1,0x91,0x0,0xb,0x0, +0xec,0xff,0xf6,0xfe,0xb0,0xff,0xc3,0x0,0xf3,0xff,0xcd,0xff, +0xfa,0xff,0x5a,0xff,0x1f,0x0,0x9a,0x0,0x89,0xff,0x31,0x0, +0xd0,0x0,0xfe,0xfe,0xd0,0xfe,0x4c,0x0,0x9,0x0,0x1f,0x0, +0xec,0x0,0xdf,0xff,0x44,0xff,0x3f,0x0,0x28,0x0,0xb3,0xff, +0xb9,0xff,0x1f,0xff,0xb6,0xff,0x5e,0x1,0xb6,0x0,0x29,0xff, +0x2b,0xff,0xc,0xff,0x47,0xff,0xea,0x0,0x26,0x1,0xe,0x0, +0x11,0x0,0xa5,0xff,0x63,0xfe,0xb9,0xfe,0xf2,0xff,0x8c,0x0, +0xbe,0x0,0x15,0x0,0x6c,0xff,0xd9,0xff,0xcd,0xff,0x67,0xff, +0xbc,0xff,0x70,0xff,0x6d,0xff,0xe6,0x0,0xab,0x0,0x0,0xff, +0x7b,0xff,0x63,0x0,0xfa,0xff,0xe1,0xff,0x9c,0xff,0x6c,0xff, +0x79,0x0,0x7f,0x0,0xa1,0xff,0xfb,0xff,0xb8,0xff,0x2f,0xff, +0x35,0x0,0xea,0xff,0xe4,0xfe,0x5f,0x0,0x9,0x1,0xa5,0xff, +0xae,0xff,0x85,0xff,0x6b,0xfe,0x72,0xff,0x9f,0x0,0x4a,0x0, +0x9c,0x0,0x44,0x0,0xb,0xff,0x98,0xff,0x35,0x0,0xbf,0xff, +0xff,0xff,0xd3,0xff,0x83,0xff,0xa9,0x0,0xa7,0x0,0x5f,0xff, +0x91,0xff,0xd6,0xff,0xa6,0xff,0x2,0x0,0x68,0xff,0x6b,0xff, +0x56,0x1,0x24,0x1,0x4b,0xff,0x3a,0xff,0x39,0xff,0x78,0xff, +0x10,0x1,0x83,0x0,0xfd,0xfe,0x2,0x0,0x68,0x0,0x58,0xff, +0x86,0xff,0x72,0xff,0x6a,0xff,0xdd,0x0,0x9d,0x0,0x52,0xff, +0x9,0x0,0x10,0x0,0xb,0xff,0x90,0xff,0xca,0xff,0xda,0xff, +0x50,0x1,0xe1,0x0,0xcb,0xfe,0xf6,0xfe,0xea,0xff,0x49,0x0, +0x7,0x1,0x57,0x0,0xd3,0xfe,0x29,0xff,0xe4,0xff,0x42,0x0, +0xe1,0x0,0x23,0x0,0x1e,0xff,0x97,0xff,0x8f,0xff,0x7f,0xff, +0xa1,0x0,0x6e,0x0,0xbc,0xff,0x72,0x0,0xb6,0xff,0x71,0xfe, +0xdb,0xff,0xd2,0x0,0xfa,0xff,0x5,0x0,0xc6,0xff,0x3a,0xff, +0x75,0x0,0xab,0x0,0x4,0xff,0x7,0xff,0xdc,0xff,0x2c,0x0, +0x30,0x1,0xd2,0x0,0xe6,0xfe,0x5,0xff,0xe0,0xff,0xa1,0xff, +0x69,0x0,0xea,0x0,0x94,0xff,0x3a,0xff,0xd4,0xff,0xc2,0xff, +0x2c,0x0,0x37,0x0,0x20,0xff,0x36,0xff,0xf,0x0,0x3f,0x0, +0x94,0x0,0x1d,0x0,0xf6,0xfe,0x4b,0xff,0x83,0xff,0x4,0xff, +0x76,0x0,0xaf,0x1,0x4b,0x0,0x28,0xff,0xe8,0xfe,0xec,0xfe, +0x69,0x0,0x0,0x1,0x84,0xff,0x7d,0xff,0x43,0x0,0xaf,0xff, +0xa9,0xff,0xcd,0xff,0x6d,0xff,0x89,0x0,0x5,0x1,0x59,0xff, +0x2f,0xff,0x23,0x0,0xc1,0xff,0xc1,0xff,0xd8,0xff,0x58,0xff, +0x89,0x0,0x64,0x1,0x75,0xff,0x6a,0xfe,0xa1,0xff,0xa7,0x0, +0x2f,0x1,0xb5,0x0,0x42,0xff,0x6,0xff,0xaa,0xff,0xed,0xff, +0x55,0x0,0x52,0x0,0xf9,0xff,0x16,0x0,0x8f,0xff,0x40,0xff, +0x49,0x0,0x2f,0x0,0x6f,0xff,0x57,0x0,0x8c,0x0,0x99,0xff, +0xe7,0xff,0xed,0xff,0x41,0xff,0xde,0xff,0x2e,0x0,0xac,0xff, +0x21,0x0,0x51,0x0,0xd6,0xff,0xfb,0xff,0xc8,0xff,0x8c,0xff, +0x4a,0x0,0x4c,0x0,0xb5,0xff,0xe2,0xff,0xdc,0xff,0xc6,0xff, +0xe4,0xff,0x3e,0xff,0x52,0xff,0x6a,0x0,0x45,0x0,0xff,0xff, +0x84,0x0,0xf4,0xff,0x25,0xff,0x27,0xff,0x2c,0xff,0x2b,0x0, +0x49,0x1,0x4d,0x0,0x42,0xff,0x52,0xff,0x25,0xff,0xc6,0xff, +0xb2,0x0,0x3a,0x0,0x3a,0x0,0x56,0x0,0xf8,0xfe,0xfb,0xfe, +0x3f,0x0,0xcf,0xff,0xbc,0xff,0xaf,0x0,0x1e,0x0,0xa5,0xff, +0x18,0x0,0x53,0xff,0xe9,0xfe,0x28,0x0,0xcb,0x0,0x55,0x0, +0xa4,0xff,0x2b,0xff,0xa2,0xff,0x11,0x0,0xb3,0xff,0xbf,0xff, +0x20,0x0,0x67,0x0,0x8d,0x0,0x57,0xff,0x51,0xfe,0xe8,0xff, +0x1f,0x1,0x14,0x0,0xad,0xff,0xf9,0xff,0x96,0xff,0xa5,0xff, +0xda,0xff,0x98,0xff,0xf0,0xff,0x45,0x0,0xce,0xff,0x84,0xff, +0xab,0xff,0x19,0x0,0x68,0x0,0xb9,0xff,0xe,0xff,0x8f,0xff, +0x3c,0x0,0x78,0x0,0x2f,0x0,0x61,0xff,0x3f,0xff,0xba,0xff, +0xb4,0xff,0xcd,0xff,0x34,0x0,0x4a,0x0,0x41,0x0,0x87,0xff, +0xac,0xfe,0x7e,0xff,0x64,0x0,0x23,0x0,0x70,0x0,0x34,0x0, +0xd9,0xfe,0xe,0xff,0xd9,0xff,0xb3,0xff,0x5a,0x0,0x7b,0x0, +0x5d,0xff,0xa,0x0,0xcc,0x0,0x46,0xff,0xb7,0xfe,0x86,0xff, +0xc6,0xff,0x96,0x0,0xfb,0x0,0xcb,0xff,0x2d,0xff,0x13,0xff, +0x29,0xff,0x6f,0x0,0xb5,0x0,0xcf,0xff,0x2b,0x0,0xc7,0xff, +0x81,0xfe,0x80,0xff,0x79,0x0,0xf9,0xff,0x6b,0x0,0x13,0x0, +0xca,0xfe,0xae,0xff,0x66,0x0,0xbc,0xff,0x64,0x0,0x4c,0x0, +0xec,0xfe,0x95,0xff,0x31,0x0,0xa5,0xff,0x72,0x0,0x2c,0x0, +0xb8,0xfe,0x8,0x0,0x8,0x1,0x80,0xff,0x95,0xff,0x4d,0x0, +0x67,0xff,0xa0,0xff,0x52,0x0,0xe2,0xff,0x3a,0x0,0x52,0x0, +0x2a,0xff,0x2b,0xff,0xd1,0xff,0x7,0x0,0x92,0x0,0x13,0x0, +0x17,0xff,0x7,0x0,0xbd,0x0,0xd3,0xff,0x55,0xff,0xe7,0xfe, +0xfc,0xfe,0xf2,0x0,0x92,0x1,0xcb,0xff,0x45,0xff,0xb4,0xff, +0x61,0xff,0x97,0xff,0x5,0x0,0x16,0x0,0xb5,0x0,0x99,0x0, +0x63,0xff,0x1a,0xff,0x5b,0xff,0x97,0xff,0x98,0x0,0xb2,0x0, +0x71,0xff,0x58,0xff,0xdf,0xff,0x90,0xff,0xd1,0xff,0x42,0x0, +0xa5,0xff,0xac,0xff,0x70,0x0,0xf8,0xff,0x4b,0xff,0xb5,0xff, +0xef,0xff,0xda,0xff,0x40,0x0,0x35,0x0,0x75,0xff,0x40,0xff, +0xc4,0xff,0x39,0x0,0x5a,0x0,0x21,0x0,0xc2,0xff,0x94,0xff, +0x9b,0xff,0xba,0xff,0xed,0xff,0x30,0x0,0x51,0x0,0xef,0xff, +0x71,0xff,0xc1,0xff,0x46,0x0,0x8,0x0,0xd3,0xff,0xf3,0xff, +0xa4,0xff,0xae,0xff,0x61,0x0,0x2a,0x0,0x6b,0xff,0xa2,0xff, +0xfd,0xff,0xeb,0xff,0x10,0x0,0xf7,0xff,0xb1,0xff,0x14,0x0, +0x43,0x0,0xb1,0xff,0x62,0xff,0x92,0xff,0x7,0x0,0x8e,0x0, +0x49,0x0,0x96,0xff,0xa3,0xff,0xdb,0xff,0xc4,0xff,0xf2,0xff, +0xf5,0xff,0xc7,0xff,0x4e,0x0,0xa6,0x0,0xb5,0xff,0xc4,0xfe, +0x1d,0xff,0x2a,0x0,0xd9,0x0,0xab,0x0,0xf2,0xff,0x6a,0xff, +0x80,0xff,0xed,0xff,0xf9,0xff,0xc0,0xff,0x14,0x0,0x72,0x0, +0xb,0x0,0xa0,0xff,0x9c,0xff,0x9a,0xff,0x15,0x0,0xa5,0x0, +0x1d,0x0,0x7e,0xff,0xd4,0xff,0xd,0x0,0xf3,0xff,0x27,0x0, +0x11,0x0,0xb4,0xff,0xbf,0xff,0xb4,0xff,0x8e,0xff,0x18,0x0, +0xa1,0x0,0x45,0x0,0xc7,0xff,0xbd,0xff,0xc8,0xff,0xd8,0xff, +0xf2,0xff,0xde,0xff,0xdc,0xff,0x2a,0x0,0x58,0x0,0x1b,0x0, +0xd0,0xff,0xb0,0xff,0xb6,0xff,0xf6,0xff,0x3e,0x0,0x35,0x0, +0x4,0x0,0xeb,0xff,0xd4,0xff,0xd7,0xff,0x3,0x0,0xec,0xff, +0x98,0xff,0xc0,0xff,0x44,0x0,0x41,0x0,0xf0,0xff,0x3,0x0, +0xc,0x0,0xd8,0xff,0xe5,0xff,0xca,0xff,0x8f,0xff,0x4d,0x0, +0x11,0x1,0x31,0x0,0x10,0xff,0x27,0xff,0xa6,0xff,0x44,0x0, +0xdd,0x0,0x67,0x0,0x8f,0xff,0x90,0xff,0xcf,0xff,0xf3,0xff, +0x2c,0x0,0x16,0x0,0xfb,0xff,0xfb,0xff,0x90,0xff,0x8b,0xff, +0x2f,0x0,0x2d,0x0,0xf2,0xff,0x40,0x0,0xfd,0xff,0x82,0xff, +0xe4,0xff,0x17,0x0,0xcc,0xff,0x2,0x0,0x41,0x0,0x19,0x0, +0x9,0x0,0xf0,0xff,0xb8,0xff,0xb7,0xff,0xfb,0xff,0x61,0x0, +0x55,0x0,0xe2,0xff,0xfb,0xff,0x1,0x0,0x5e,0xff,0x9e,0xff, +0x63,0x0,0x20,0x0,0x17,0x0,0x59,0x0,0x5e,0xff,0x22,0xff, +0x99,0x0,0xc9,0x0,0xca,0xff,0xb9,0xff,0xb7,0xff,0xa0,0xff, +0x4f,0x0,0x68,0x0,0xb3,0xff,0xc7,0xff,0x37,0x0,0x16,0x0, +0xde,0xff,0xee,0xff,0x3a,0x0,0x47,0x0,0xc7,0xff,0x98,0xff, +0xe4,0xff,0xeb,0xff,0x19,0x0,0x6c,0x0,0xf5,0xff,0x6a,0xff, +0x97,0xff,0xd4,0xff,0x17,0x0,0x6e,0x0,0x40,0x0,0xde,0xff, +0xac,0xff,0x90,0xff,0xeb,0xff,0x54,0x0,0x11,0x0,0xf2,0xff, +0x2d,0x0,0xfe,0xff,0xd3,0xff,0xd9,0xff,0xae,0xff,0x0,0x0, +0x7c,0x0,0x1c,0x0,0xe0,0xff,0x30,0x0,0xc2,0xff,0x2f,0xff, +0x97,0xff,0x34,0x0,0x8f,0x0,0x98,0x0,0xd7,0xff,0x33,0xff, +0xa4,0xff,0x31,0x0,0x2d,0x0,0x25,0x0,0x3c,0x0,0x1c,0x0, +0xc6,0xff,0x91,0xff,0xa5,0xff,0xd6,0xff,0x3e,0x0,0xa4,0x0, +0x22,0x0,0x5c,0xff,0xae,0xff,0x2c,0x0,0x3,0x0,0xc,0x0, +0xf1,0xff,0x90,0xff,0x1e,0x0,0xab,0x0,0x8,0x0,0xa5,0xff, +0xbd,0xff,0x7a,0xff,0xea,0xff,0xb4,0x0,0x39,0x0,0xa4,0xff, +0x0,0x0,0x2a,0x0,0xf5,0xff,0xc5,0xff,0x97,0xff,0x2,0x0, +0x89,0x0,0x30,0x0,0xc7,0xff,0xc9,0xff,0xbe,0xff,0xf4,0xff, +0x18,0x0,0xde,0xff,0x2f,0x0,0x7d,0x0,0xe6,0xff,0x99,0xff, +0xb6,0xff,0x9c,0xff,0x22,0x0,0xad,0x0,0x1d,0x0,0xba,0xff, +0xd1,0xff,0x8e,0xff,0xba,0xff,0x16,0x0,0xf5,0xff,0x57,0x0, +0x7b,0x0,0x7a,0xff,0x5c,0xff,0x18,0x0,0x1,0x0,0x2e,0x0, +0x8b,0x0,0xdb,0xff,0xad,0xff,0x17,0x0,0x95,0xff,0xa9,0xff, +0x6a,0x0,0xf0,0xff,0xcb,0xff,0xa9,0x0,0x33,0x0,0x3d,0xff, +0x71,0xff,0xc8,0xff,0x40,0x0,0xcf,0x0,0x2b,0x0,0x6d,0xff, +0xbf,0xff,0xfe,0xff,0xe,0x0,0x28,0x0,0xd1,0xff,0xe0,0xff, +0x61,0x0,0x34,0x0,0xe8,0xff,0xd2,0xff,0x99,0xff,0xf,0x0, +0x7e,0x0,0xd1,0xff,0xd5,0xff,0xa4,0x0,0x3d,0x0,0xa4,0xff, +0xc0,0xff,0x76,0xff,0xb4,0xff,0xb6,0x0,0x89,0x0,0xf3,0xff, +0x1e,0x0,0xbf,0xff,0x69,0xff,0x30,0x0,0x7b,0x0,0x7,0x0, +0x13,0x0,0x2a,0x0,0xf2,0xff,0xd1,0xff,0x9a,0xff,0xb9,0xff, +0x45,0x0,0x45,0x0,0x14,0x0,0x48,0x0,0x17,0x0,0xb6,0xff, +0xd0,0xff,0xd5,0xff,0xf1,0xff,0x8b,0x0,0x91,0x0,0xd4,0xff, +0x74,0xff,0x93,0xff,0xf3,0xff,0x89,0x0,0x9e,0x0,0xe,0x0, +0xbc,0xff,0xde,0xff,0xef,0xff,0xd5,0xff,0xf4,0xff,0x65,0x0, +0x7a,0x0,0xec,0xff,0xa1,0xff,0xdf,0xff,0x3,0x0,0x2b,0x0, +0x68,0x0,0x26,0x0,0xd4,0xff,0xa,0x0,0x25,0x0,0x0,0x0, +0xb,0x0,0xd5,0xff,0x87,0xff,0x1a,0x0,0xcd,0x0,0x5f,0x0, +0xb2,0xff,0xc7,0xff,0xff,0xff,0x16,0x0,0x60,0x0,0x58,0x0, +0xd8,0xff,0xc0,0xff,0x11,0x0,0x17,0x0,0x6,0x0,0x1c,0x0, +0x19,0x0,0x2b,0x0,0x52,0x0,0x19,0x0,0xe1,0xff,0x16,0x0, +0x18,0x0,0xd0,0xff,0xec,0xff,0x4e,0x0,0x7b,0x0,0x51,0x0, +0xdc,0xff,0x9d,0xff,0xe6,0xff,0x32,0x0,0x53,0x0,0x7f,0x0, +0x60,0x0,0xfa,0xff,0xbd,0xff,0xaf,0xff,0xf5,0xff,0x78,0x0, +0x7d,0x0,0x2a,0x0,0x12,0x0,0xdc,0xff,0xb2,0xff,0x12,0x0, +0x45,0x0,0xd,0x0,0x25,0x0,0x4f,0x0,0x2c,0x0,0xb,0x0, +0xda,0xff,0xc2,0xff,0x17,0x0,0x58,0x0,0x61,0x0,0x5a,0x0, +0xd9,0xff,0x76,0xff,0xfa,0xff,0x6a,0x0,0x55,0x0,0x58,0x0, +0xd,0x0,0xb4,0xff,0x12,0x0,0x23,0x0,0xb6,0xff,0x22,0x0, +0x9a,0x0,0x26,0x0,0xf5,0xff,0x17,0x0,0xd7,0xff,0xee,0xff, +0x47,0x0,0x23,0x0,0x18,0x0,0x3f,0x0,0x1d,0x0,0x1f,0x0, +0x28,0x0,0xcb,0xff,0xbb,0xff,0x23,0x0,0x60,0x0,0x7c,0x0, +0x5d,0x0,0xed,0xff,0xd1,0xff,0x0,0x0,0x4,0x0,0x35,0x0, +0x63,0x0,0x12,0x0,0xef,0xff,0x33,0x0,0x2c,0x0,0xf7,0xff, +0xfb,0xff,0xf,0x0,0x30,0x0,0x55,0x0,0x52,0x0,0x4f,0x0, +0x1b,0x0,0xa3,0xff,0xb0,0xff,0x4f,0x0,0x91,0x0,0x65,0x0, +0x20,0x0,0xbc,0xff,0xaf,0xff,0x21,0x0,0x58,0x0,0x59,0x0, +0x79,0x0,0x35,0x0,0xba,0xff,0xd4,0xff,0x10,0x0,0x9,0x0, +0x49,0x0,0x7c,0x0,0x1f,0x0,0xdb,0xff,0xfe,0xff,0x16,0x0, +0x24,0x0,0x1f,0x0,0xf8,0xff,0x25,0x0,0x74,0x0,0x48,0x0, +0xfb,0xff,0xef,0xff,0xed,0xff,0x13,0x0,0x58,0x0,0x4c,0x0, +0x20,0x0,0x10,0x0,0xee,0xff,0xf2,0xff,0x3a,0x0,0x57,0x0, +0x3c,0x0,0x20,0x0,0xf7,0xff,0xe3,0xff,0x9,0x0,0x46,0x0, +0x69,0x0,0x44,0x0,0xf8,0xff,0xea,0xff,0x0,0x0,0x19,0x0, +0x68,0x0,0x7a,0x0,0x2,0x0,0xd5,0xff,0x2a,0x0,0x49,0x0, +0x37,0x0,0x2c,0x0,0xfd,0xff,0xec,0xff,0x20,0x0,0x3f,0x0, +0x53,0x0,0x61,0x0,0x16,0x0,0xc0,0xff,0xd7,0xff,0x25,0x0, +0x65,0x0,0x79,0x0,0x3e,0x0,0xe8,0xff,0xd2,0xff,0x4,0x0, +0x4f,0x0,0x5b,0x0,0x15,0x0,0xf2,0xff,0x22,0x0,0x50,0x0, +0x42,0x0,0x3,0x0,0xc4,0xff,0xdf,0xff,0x44,0x0,0x77,0x0, +0x4c,0x0,0xa,0x0,0xec,0xff,0xf3,0xff,0x8,0x0,0x34,0x0, +0x64,0x0,0x4c,0x0,0x4,0x0,0xe7,0xff,0xdb,0xff,0xe2,0xff, +0x4d,0x0,0xa6,0x0,0x55,0x0,0xe9,0xff,0xda,0xff,0xdb,0xff, +0xb,0x0,0x71,0x0,0x61,0x0,0xf6,0xff,0xf4,0xff,0x1d,0x0, +0x4,0x0,0x7,0x0,0x33,0x0,0x32,0x0,0x27,0x0,0x26,0x0, +0x15,0x0,0x1c,0x0,0x2a,0x0,0xfe,0xff,0xe0,0xff,0x17,0x0, +0x54,0x0,0x4d,0x0,0x15,0x0,0xdb,0xff,0xcf,0xff,0x6,0x0, +0x5a,0x0,0x79,0x0,0x35,0x0,0xea,0xff,0xee,0xff,0x4,0x0, +0xb,0x0,0x36,0x0,0x4b,0x0,0x17,0x0,0xfb,0xff,0x18,0x0, +0x2e,0x0,0x31,0x0,0x1a,0x0,0xf1,0xff,0xf6,0xff,0x25,0x0, +0x3e,0x0,0x46,0x0,0x39,0x0,0xf9,0xff,0xc5,0xff,0xdb,0xff, +0x1e,0x0,0x68,0x0,0x7e,0x0,0x2d,0x0,0xd3,0xff,0xdc,0xff, +0x10,0x0,0x1e,0x0,0x23,0x0,0x26,0x0,0x19,0x0,0x25,0x0, +0x2c,0x0,0xf1,0xff,0xd5,0xff,0x1e,0x0,0x53,0x0,0x44,0x0, +0x33,0x0,0x17,0x0,0xf4,0xff,0xf5,0xff,0xf0,0xff,0xf2,0xff, +0x35,0x0,0x5f,0x0,0x35,0x0,0x0,0x0,0xcb,0xff,0xb8,0xff, +0x14,0x0,0x7b,0x0,0x77,0x0,0x2d,0x0,0xce,0xff,0xb8,0xff, +0xd,0x0,0x2a,0x0,0x8,0x0,0x33,0x0,0x43,0x0,0xf8,0xff, +0xf8,0xff,0x21,0x0,0xa,0x0,0xb,0x0,0x23,0x0,0x19,0x0, +0x1f,0x0,0x1c,0x0,0x5,0x0,0x17,0x0,0x7,0x0,0xda,0xff, +0x9,0x0,0x37,0x0,0x1e,0x0,0x28,0x0,0x1c,0x0,0xec,0xff, +0x1e,0x0,0x36,0x0,0xe6,0xff,0xf4,0xff,0x30,0x0,0xb,0x0, +0xd,0x0,0x36,0x0,0x11,0x0,0x6,0x0,0x18,0x0,0xeb,0xff, +0xf4,0xff,0x3f,0x0,0x43,0x0,0x18,0x0,0xf3,0xff,0xda,0xff, +0x6,0x0,0x36,0x0,0x1b,0x0,0xf,0x0,0x14,0x0,0xfa,0xff, +0xff,0xff,0xe,0x0,0x12,0x0,0x3f,0x0,0x34,0x0,0xd7,0xff, +0xe2,0xff,0x26,0x0,0x12,0x0,0x15,0x0,0x40,0x0,0xf,0x0, +0xd3,0xff,0xe1,0xff,0x1,0x0,0x34,0x0,0x4a,0x0,0x10,0x0, +0xf3,0xff,0x5,0x0,0xf7,0xff,0xfb,0xff,0xf,0x0,0xf4,0xff, +0x8,0x0,0x53,0x0,0x44,0x0,0xf3,0xff,0xc0,0xff,0xbf,0xff, +0x13,0x0,0x71,0x0,0x58,0x0,0xa,0x0,0xe1,0xff,0xce,0xff, +0xe8,0xff,0x18,0x0,0x1c,0x0,0x23,0x0,0x32,0x0,0xe,0x0, +0xf3,0xff,0xf6,0xff,0xec,0xff,0xc,0x0,0x3a,0x0,0x18,0x0, +0x2,0x0,0x1d,0x0,0x0,0x0,0xeb,0xff,0x17,0x0,0x13,0x0, +0xfe,0xff,0x19,0x0,0xa,0x0,0xee,0xff,0x17,0x0,0x22,0x0, +0xfd,0xff,0x3,0x0,0xc,0x0,0x3,0x0,0x14,0x0,0x16,0x0, +0xfd,0xff,0xf7,0xff,0x5,0x0,0x22,0x0,0x2c,0x0,0xf7,0xff, +0xe7,0xff,0x1d,0x0,0x1a,0x0,0xf3,0xff,0x4,0x0,0x5,0x0, +0xf8,0xff,0x21,0x0,0x31,0x0,0x9,0x0,0xf4,0xff,0xea,0xff, +0xe9,0xff,0x10,0x0,0x23,0x0,0x21,0x0,0x36,0x0,0x12,0x0, +0xbb,0xff,0xbc,0xff,0x15,0x0,0x54,0x0,0x47,0x0,0xfd,0xff, +0xcc,0xff,0xe4,0xff,0xfa,0xff,0x1,0x0,0x22,0x0,0x23,0x0, +0x3,0x0,0x13,0x0,0x1e,0x0,0xf1,0xff,0xda,0xff,0xe7,0xff, +0xfa,0xff,0x27,0x0,0x42,0x0,0x10,0x0,0xcf,0xff,0xc9,0xff, +0xf9,0xff,0x31,0x0,0x3a,0x0,0x12,0x0,0xed,0xff,0xe8,0xff, +0xfb,0xff,0x8,0x0,0x0,0x0,0xe,0x0,0x2d,0x0,0xf,0x0, +0xdc,0xff,0xee,0xff,0xd,0x0,0x0,0x0,0xfd,0xff,0xf,0x0, +0x12,0x0,0x4,0x0,0xf2,0xff,0xfa,0xff,0x1d,0x0,0x17,0x0, +0xef,0xff,0xf3,0xff,0x9,0x0,0xfd,0xff,0x5,0x0,0x26,0x0, +0x14,0x0,0xd9,0xff,0xcd,0xff,0x9,0x0,0x3a,0x0,0x16,0x0, +0xd8,0xff,0xe4,0xff,0x17,0x0,0x1b,0x0,0x0,0x0,0xf8,0xff, +0xfa,0xff,0xf6,0xff,0xf9,0xff,0x6,0x0,0xff,0xff,0xe3,0xff, +0xeb,0xff,0x15,0x0,0x1d,0x0,0xe,0x0,0x10,0x0,0xff,0xff, +0xdf,0xff,0xe5,0xff,0x0,0x0,0x16,0x0,0x2a,0x0,0x15,0x0, +0xd2,0xff,0xc3,0xff,0xfb,0xff,0x21,0x0,0x20,0x0,0x13,0x0, +0xec,0xff,0xcb,0xff,0xf0,0xff,0x27,0x0,0x17,0x0,0xf1,0xff, +0xff,0xff,0xb,0x0,0xf0,0xff,0xeb,0xff,0x5,0x0,0x15,0x0, +0x13,0x0,0xfd,0xff,0xe9,0xff,0xfb,0xff,0x2,0x0,0xdf,0xff, +0xe9,0xff,0x26,0x0,0x29,0x0,0xfb,0xff,0xea,0xff,0xec,0xff, +0xe6,0xff,0xee,0xff,0xd,0x0,0x27,0x0,0x1b,0x0,0xfc,0xff, +0xf2,0xff,0xe1,0xff,0xc3,0xff,0xe2,0xff,0x26,0x0,0x2f,0x0, +0x11,0x0,0xf7,0xff,0xd8,0xff,0xd6,0xff,0xfa,0xff,0xd,0x0, +0x12,0x0,0xb,0x0,0xe7,0xff,0xea,0xff,0x19,0x0,0x11,0x0, +0xdb,0xff,0xc7,0xff,0xe0,0xff,0x20,0x0,0x47,0x0,0x11,0x0, +0xd5,0xff,0xe1,0xff,0xec,0xff,0xea,0xff,0x3,0x0,0x5,0x0, +0xfa,0xff,0xd,0x0,0xfc,0xff,0xcc,0xff,0xce,0xff,0xe3,0xff, +0xfb,0xff,0x29,0x0,0x1f,0x0,0xe5,0xff,0xe6,0xff,0xfc,0xff, +0xe6,0xff,0xe0,0xff,0xf2,0xff,0xfd,0xff,0x17,0x0,0x1a,0x0, +0xe9,0xff,0xcb,0xff,0xd2,0xff,0xe6,0xff,0x10,0x0,0x25,0x0, +0x7,0x0,0xee,0xff,0xdb,0xff,0xc2,0xff,0xe2,0xff,0x19,0x0, +0xc,0x0,0xeb,0xff,0xee,0xff,0xf1,0xff,0xef,0xff,0xf6,0xff, +0xfa,0xff,0xf9,0xff,0xf0,0xff,0xe5,0xff,0xf6,0xff,0x1,0x0, +0xec,0xff,0xeb,0xff,0x0,0x0,0xf5,0xff,0xe6,0xff,0xec,0xff, +0xe8,0xff,0xee,0xff,0xfe,0xff,0xe8,0xff,0xd6,0xff,0xf9,0xff, +0x11,0x0,0xf6,0xff,0xdc,0xff,0xd8,0xff,0xee,0xff,0x1b,0x0, +0x19,0x0,0xd7,0xff,0xc7,0xff,0xff,0xff,0xe,0x0,0xeb,0xff, +0xe6,0xff,0xee,0xff,0xe1,0xff,0xed,0xff,0xa,0x0,0xff,0xff, +0xe5,0xff,0xe1,0xff,0xe8,0xff,0xfa,0xff,0x8,0x0,0xe6,0xff, +0xc6,0xff,0xf1,0xff,0x21,0x0,0x1,0x0,0xcb,0xff,0xd2,0xff, +0x1,0x0,0x17,0x0,0x1,0x0,0xe0,0xff,0xcf,0xff,0xd3,0xff, +0xf9,0xff,0x1c,0x0,0x3,0x0,0xce,0xff,0xca,0xff,0xf3,0xff, +0xf,0x0,0x1,0x0,0xe2,0xff,0xe6,0xff,0xfe,0xff,0xee,0xff, +0xdb,0xff,0xf3,0xff,0xf3,0xff,0xd9,0xff,0xf4,0xff,0x16,0x0, +0xfd,0xff,0xe0,0xff,0xdb,0xff,0xde,0xff,0xf6,0xff,0xa,0x0, +0xfd,0xff,0xf4,0xff,0xe8,0xff,0xd0,0xff,0xe3,0xff,0x5,0x0, +0xf0,0xff,0xe5,0xff,0x8,0x0,0x4,0x0,0xe0,0xff,0xdd,0xff, +0xe8,0xff,0xf2,0xff,0x1,0x0,0xf3,0xff,0xe1,0xff,0xf2,0xff, +0xf6,0xff,0xe3,0xff,0xec,0xff,0xfb,0xff,0xf9,0xff,0xfd,0xff, +0xfe,0xff,0xec,0xff,0xd7,0xff,0xd0,0xff,0xed,0xff,0x19,0x0, +0x1,0x0,0xc5,0xff,0xd5,0xff,0x7,0x0,0x0,0x0,0xe7,0xff, +0xe0,0xff,0xdd,0xff,0xf5,0xff,0x16,0x0,0xb,0x0,0xe4,0xff, +0xc7,0xff,0xce,0xff,0x5,0x0,0x21,0x0,0xeb,0xff,0xc8,0xff, +0xee,0xff,0xfe,0xff,0xe7,0xff,0xe6,0xff,0xf1,0xff,0xf3,0xff, +0xf3,0xff,0xf7,0xff,0x2,0x0,0xf4,0xff,0xc0,0xff,0xc6,0xff, +0x15,0x0,0x25,0x0,0xf0,0xff,0xdf,0xff,0xe5,0xff,0xe4,0xff, +0xf3,0xff,0xec,0xff,0xdc,0xff,0x1,0x0,0x1b,0x0,0xf4,0xff, +0xe2,0xff,0xea,0xff,0xd4,0xff,0xd3,0xff,0xff,0xff,0x12,0x0, +0x7,0x0,0xf9,0xff,0xdf,0xff,0xd0,0xff,0xe2,0xff,0xf6,0xff, +0x0,0x0,0x2,0x0,0xf8,0xff,0xf2,0xff,0xf5,0xff,0xed,0xff, +0xe3,0xff,0xe8,0xff,0xf5,0xff,0xfe,0xff,0xf9,0xff,0xf4,0xff, +0xfd,0xff,0xf0,0xff,0xcb,0xff,0xd4,0xff,0xfd,0xff,0x3,0x0, +0x4,0x0,0x11,0x0,0xf0,0xff,0xc6,0xff,0xdd,0xff,0x7,0x0, +0x4,0x0,0xea,0xff,0xdc,0xff,0xee,0xff,0xe,0x0,0x2,0x0, +0xd8,0xff,0xd7,0xff,0xf0,0xff,0xf4,0xff,0xfc,0xff,0xd,0x0, +0xfe,0xff,0xdf,0xff,0xde,0xff,0xed,0xff,0xef,0xff,0xf1,0xff, +0xf4,0xff,0xf7,0xff,0x4,0x0,0x4,0x0,0xde,0xff,0xce,0xff, +0xf9,0xff,0x11,0x0,0xf2,0xff,0xe4,0xff,0xf4,0xff,0xfb,0xff, +0xf9,0xff,0xf3,0xff,0xe9,0xff,0xed,0xff,0xf9,0xff,0xfb,0xff, +0x3,0x0,0x7,0x0,0xed,0xff,0xd6,0xff,0xdc,0xff,0xed,0xff, +0x2,0x0,0x11,0x0,0x9,0x0,0xf5,0xff,0xec,0xff,0xf0,0xff, +0xf8,0xff,0xf2,0xff,0xef,0xff,0x2,0x0,0x3,0x0,0xeb,0xff, +0xf2,0xff,0x5,0x0,0xf2,0xff,0xe3,0xff,0xf0,0xff,0xfa,0xff, +0xc,0x0,0x1d,0x0,0x0,0x0,0xdc,0xff,0xde,0xff,0xe9,0xff, +0xfa,0xff,0xf,0x0,0xb,0x0,0xf9,0xff,0xee,0xff,0xe1,0xff, +0xec,0xff,0x10,0x0,0xa,0x0,0xed,0xff,0xf3,0xff,0xfc,0xff, +0xfb,0xff,0x4,0x0,0xf5,0xff,0xdf,0xff,0xf0,0xff,0xa,0x0, +0xd,0x0,0xe,0x0,0xfd,0xff,0xe3,0xff,0xe7,0xff,0xec,0xff, +0xea,0xff,0xb,0x0,0x1e,0x0,0xf9,0xff,0xe5,0xff,0xf7,0xff, +0xfb,0xff,0xf9,0xff,0x4,0x0,0x5,0x0,0xfa,0xff,0xf0,0xff, +0xf5,0xff,0x4,0x0,0x2,0x0,0xf4,0xff,0xf5,0xff,0xff,0xff, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xfb,0xff,0xea,0xff, +0xe6,0xff,0x0,0x0,0x17,0x0,0xa,0x0,0xf7,0xff,0xf2,0xff, +0xea,0xff,0xf1,0xff,0x11,0x0,0x15,0x0,0x3,0x0,0xfa,0xff, +0xe7,0xff,0xf0,0xff,0x1d,0x0,0x10,0x0,0xe9,0xff,0x3,0x0, +0x14,0x0,0xfb,0xff,0xf8,0xff,0xf7,0xff,0xf2,0xff,0x3,0x0, +0xd,0x0,0xb,0x0,0x8,0x0,0xf9,0xff,0xf0,0xff,0xed,0xff, +0xf2,0xff,0x1b,0x0,0x34,0x0,0x14,0x0,0xea,0xff,0xd3,0xff, +0xe5,0xff,0x17,0x0,0x1f,0x0,0x12,0x0,0x16,0x0,0xf2,0xff, +0xd3,0xff,0xfb,0xff,0x1a,0x0,0x7,0x0,0xf3,0xff,0xfd,0xff, +0x19,0x0,0xf,0x0,0xeb,0xff,0xf2,0xff,0xb,0x0,0x15,0x0, +0x16,0x0,0xf4,0xff,0xe0,0xff,0x4,0x0,0x13,0x0,0x11,0x0, +0xd,0x0,0xe6,0xff,0xe3,0xff,0x13,0x0,0x17,0x0,0xe,0x0, +0x16,0x0,0xfb,0xff,0xeb,0xff,0xfc,0xff,0x1,0x0,0x7,0x0, +0x7,0x0,0x3,0x0,0x13,0x0,0xc,0x0,0xf6,0xff,0xfa,0xff, +0xf1,0xff,0xf7,0xff,0x20,0x0,0x1e,0x0,0x3,0x0,0xf8,0xff, +0xea,0xff,0x1,0x0,0x26,0x0,0x11,0x0,0x3,0x0,0xd,0x0, +0xf4,0xff,0xe5,0xff,0xfa,0xff,0x11,0x0,0x1d,0x0,0x6,0x0, +0xee,0xff,0xf9,0xff,0xfa,0xff,0x6,0x0,0x2b,0x0,0x1d,0x0, +0xf6,0xff,0xec,0xff,0xe7,0xff,0x6,0x0,0x2a,0x0,0x14,0x0, +0x6,0x0,0xb,0x0,0xf3,0xff,0xf4,0xff,0xa,0x0,0x6,0x0, +0x4,0x0,0x6,0x0,0xf,0x0,0x19,0x0,0xf6,0xff,0xe3,0xff, +0x6,0x0,0x18,0x0,0x1e,0x0,0x1c,0x0,0xf8,0xff,0xf3,0xff, +0x3,0x0,0xf4,0xff,0x7,0x0,0x21,0x0,0xf,0x0,0x8,0x0, +0x4,0x0,0xf7,0xff,0x3,0x0,0x8,0x0,0x9,0x0,0xf,0x0, +0xfd,0xff,0x2,0x0,0x15,0x0,0xff,0xff,0x0,0x0,0x11,0x0, +0x0,0x0,0x6,0x0,0xa,0x0,0xf8,0xff,0x14,0x0,0x26,0x0, +0x9,0x0,0xfe,0xff,0xf2,0xff,0xf5,0xff,0x19,0x0,0x1a,0x0, +0xc,0x0,0x7,0x0,0xee,0xff,0xf9,0xff,0x14,0x0,0xd,0x0, +0x16,0x0,0x10,0x0,0xf6,0xff,0x11,0x0,0x12,0x0,0xe8,0xff, +0xf2,0xff,0x2,0x0,0x8,0x0,0x23,0x0,0x14,0x0,0xfb,0xff, +0xfe,0xff,0xf4,0xff,0x7,0x0,0x1e,0x0,0x4,0x0,0x8,0x0, +0x13,0x0,0xef,0xff,0xed,0xff,0xff,0xff,0x10,0x0,0x37,0x0, +0x1c,0x0,0xde,0xff,0xdc,0xff,0xe6,0xff,0xc,0x0,0x47,0x0, +0x23,0x0,0xe4,0xff,0xdd,0xff,0xdb,0xff,0xf8,0xff,0x2c,0x0, +0x48,0x0,0x4f,0x0,0xf9,0xff,0x8c,0xff,0xc8,0xff,0x3f,0x0, +0x44,0x0,0x9,0x0,0xd4,0xff,0xea,0xff,0x2e,0x0,0x1f,0x0, +0xfc,0xff,0x5,0x0,0xf2,0xff,0xf1,0xff,0x10,0x0,0xfd,0xff, +0xf4,0xff,0xb,0x0,0x19,0x0,0x32,0x0,0x19,0x0,0xd7,0xff, +0xde,0xff,0xf9,0xff,0x3,0x0,0x2c,0x0,0x29,0x0,0xfd,0xff, +0xf0,0xff,0xe2,0xff,0xf8,0xff,0x27,0x0,0x2,0x0,0xd0,0xff, +0xe0,0xff,0x7,0x0,0x3a,0x0,0x20,0x0,0xb8,0xff,0xc8,0xff, +0x3a,0x0,0x63,0x0,0x32,0x0,0xcf,0xff,0xb1,0xff,0xc,0x0, +0x40,0x0,0x2e,0x0,0x1a,0x0,0xeb,0xff,0xe0,0xff,0x5,0x0, +0xf9,0xff,0xf9,0xff,0xb,0x0,0xe4,0xff,0xd5,0xff,0xec,0xff, +0xfa,0xff,0x1a,0x0,0x1e,0x0,0xb,0x0,0x21,0x0,0x15,0x0, +0xf0,0xff,0xf8,0xff,0xfa,0xff,0x14,0x0,0x42,0x0,0x1d,0x0, +0xe1,0xff,0xc3,0xff,0xb8,0xff,0x5,0x0,0x42,0x0,0x0,0x0, +0xda,0xff,0x1,0x0,0x14,0x0,0xa,0x0,0xf2,0xff,0x5,0x0, +0x38,0x0,0x2a,0x0,0x12,0x0,0xa,0x0,0xda,0xff,0xec,0xff, +0x30,0x0,0xb,0x0,0xd1,0xff,0xc6,0xff,0xc3,0xff,0xf3,0xff, +0x26,0x0,0x1a,0x0,0xff,0xff,0xe1,0xff,0xe2,0xff,0x1b,0x0, +0x33,0x0,0x2c,0x0,0x14,0x0,0xda,0xff,0xe8,0xff,0x17,0x0, +0xf5,0xff,0xec,0xff,0xb,0x0,0xfa,0xff,0xfa,0xff,0x0,0x0, +0xe4,0xff,0xfa,0xff,0x23,0x0,0x21,0x0,0x12,0x0,0xfc,0xff, +0x2,0x0,0x13,0x0,0x0,0x0,0xe,0x0,0x18,0x0,0xd9,0xff, +0xdf,0xff,0x1d,0x0,0x10,0x0,0x1,0x0,0xfc,0xff,0xcd,0xff, +0xdc,0xff,0x22,0x0,0x3d,0x0,0x23,0x0,0xed,0xff,0xe6,0xff, +0xf,0x0,0x5,0x0,0xf8,0xff,0x8,0x0,0xfb,0xff,0xa,0x0, +0x18,0x0,0xda,0xff,0xc9,0xff,0xf5,0xff,0x1,0x0,0x19,0x0, +0x23,0x0,0xfa,0xff,0xf0,0xff,0xf6,0xff,0xf7,0xff,0x1e,0x0, +0x35,0x0,0x1d,0x0,0xf1,0xff,0xc7,0xff,0xf5,0xff,0x3e,0x0, +0x16,0x0,0xe0,0xff,0xdb,0xff,0xd0,0xff,0xfe,0xff,0x31,0x0, +0x2,0x0,0xe4,0xff,0x3,0x0,0x12,0x0,0x12,0x0,0xfa,0xff, +0xf2,0xff,0x1e,0x0,0x28,0x0,0x13,0x0,0x6,0x0,0xd9,0xff, +0xd0,0xff,0xfb,0xff,0x0,0x0,0x7,0x0,0x15,0x0,0xf4,0xff, +0xeb,0xff,0xf3,0xff,0xe9,0xff,0xe,0x0,0x2c,0x0,0x19,0x0, +0x18,0x0,0x5,0x0,0xe8,0xff,0xf2,0xff,0xf1,0xff,0x3,0x0, +0x26,0x0,0xf9,0xff,0xd2,0xff,0xeb,0xff,0xe9,0xff,0xf5,0xff, +0x20,0x0,0x1a,0x0,0x1,0x0,0xfc,0xff,0xa,0x0,0x20,0x0, +0xc,0x0,0xfa,0xff,0x11,0x0,0x7,0x0,0xf0,0xff,0xe3,0xff, +0xc3,0xff,0xee,0xff,0x47,0x0,0x32,0x0,0xe5,0xff,0xb2,0xff, +0xb4,0xff,0x1b,0x0,0x63,0x0,0x1f,0x0,0xe9,0xff,0xf7,0xff, +0xfa,0xff,0x0,0x0,0xf,0x0,0x14,0x0,0xf,0x0,0x1,0x0, +0x4,0x0,0xf5,0xff,0xd0,0xff,0xe5,0xff,0x5,0x0,0xff,0xff, +0x1c,0x0,0x2a,0x0,0xfb,0xff,0xdc,0xff,0xd6,0xff,0xf8,0xff, +0x48,0x0,0x45,0x0,0xf9,0xff,0xd8,0xff,0xd3,0xff,0xfc,0xff, +0x42,0x0,0x2c,0x0,0xe8,0xff,0xe7,0xff,0xfb,0xff,0xf0,0xff, +0xe3,0xff,0xff,0xff,0x30,0x0,0x2c,0x0,0xa,0x0,0xf1,0xff, +0xcf,0xff,0xe6,0xff,0x36,0x0,0x3f,0x0,0x17,0x0,0xf5,0xff, +0xc5,0xff,0xd8,0xff,0x1a,0x0,0x18,0x0,0xc,0x0,0xf,0x0, +0xe3,0xff,0xd5,0xff,0x7,0x0,0x20,0x0,0x13,0x0,0x1,0x0, +0x4,0x0,0x24,0x0,0x2c,0x0,0xe,0x0,0xe8,0xff,0xd5,0xff, +0x0,0x0,0x25,0x0,0xf9,0xff,0xdf,0xff,0xfa,0xff,0x4,0x0, +0x14,0x0,0x15,0x0,0xf4,0xff,0x6,0x0,0x27,0x0,0x17,0x0, +0xc,0x0,0xfe,0xff,0xee,0xff,0xfe,0xff,0xf1,0xff,0xde,0xff, +0x2,0x0,0x10,0x0,0x2,0x0,0x3,0x0,0xfc,0xff,0x1,0x0, +0xd,0x0,0x5,0x0,0x17,0x0,0x1d,0x0,0xfc,0xff,0xef,0xff, +0xdd,0xff,0xdf,0xff,0x1b,0x0,0x1b,0x0,0xf8,0xff,0x12,0x0, +0x7,0x0,0xf4,0xff,0x2c,0x0,0x2f,0x0,0xf6,0xff,0xed,0xff, +0xfa,0xff,0xff,0xff,0xe7,0xff,0xb9,0xff,0xd0,0xff,0x10,0x0, +0x30,0x0,0x3e,0x0,0x24,0x0,0x9,0x0,0x2c,0x0,0x3f,0x0, +0x22,0x0,0xa,0x0,0xe5,0xff,0xc8,0xff,0xd9,0xff,0xf2,0xff, +0xf4,0xff,0xd9,0xff,0xcb,0xff,0xf9,0xff,0x2d,0x0,0x4a,0x0, +0x5a,0x0,0x34,0x0,0xfd,0xff,0xfc,0xff,0x1c,0x0,0x23,0x0, +0xf0,0xff,0xb0,0xff,0xab,0xff,0xc8,0xff,0xfb,0xff,0x20,0x0, +0x0,0x0,0x0,0x0,0x33,0x0,0x28,0x0,0x30,0x0,0x64,0x0, +0x47,0x0,0x2d,0x0,0x4a,0x0,0x29,0x0,0xf1,0xff,0xd9,0xff, +0xd2,0xff,0x9,0x0,0x34,0x0,0x12,0x0,0xe1,0xff,0xa6,0xff, +0x84,0xff,0xa9,0xff,0xbf,0xff,0xc1,0xff,0xd1,0xff,0xd9,0xff, +0x2b,0x0,0xaf,0x0,0xd4,0x0,0xce,0x0,0xd2,0x0,0x9a,0x0, +0x31,0x0,0xa8,0xff,0x1b,0xff,0xeb,0xfe,0x2,0xff,0x36,0xff, +0xae,0xff,0x2f,0x0,0x66,0x0,0x6c,0x0,0x73,0x0,0x8c,0x0, +0x8b,0x0,0x56,0x0,0x13,0x0,0xd4,0xff,0x99,0xff,0x73,0xff, +0x79,0xff,0xba,0xff,0xe5,0xff,0xda,0xff,0x4,0x0,0x4f,0x0, +0x68,0x0,0x7e,0x0,0x78,0x0,0x39,0x0,0x18,0x0,0xf7,0xff, +0xc5,0xff,0xc1,0xff,0x9a,0xff,0x4c,0xff,0x6c,0xff,0xdf,0xff, +0x38,0x0,0x4b,0x0,0x37,0x0,0x5a,0x0,0x6e,0x0,0x20,0x0, +0xf6,0xff,0x3,0x0,0xfe,0xff,0x13,0x0,0x9,0x0,0xd1,0xff, +0xda,0xff,0xd5,0xff,0xa2,0xff,0xb7,0xff,0xdf,0xff,0xfa,0xff, +0x37,0x0,0x45,0x0,0x38,0x0,0x51,0x0,0x60,0x0,0x72,0x0, +0x55,0x0,0xb7,0xff,0x48,0xff,0x64,0xff,0x89,0xff,0xa8,0xff, +0xc5,0xff,0xd7,0xff,0x2b,0x0,0x97,0x0,0xac,0x0,0x88,0x0, +0x52,0x0,0x15,0x0,0xf0,0xff,0xdc,0xff,0xcc,0xff,0xab,0xff, +0x75,0xff,0x7e,0xff,0xc1,0xff,0xd3,0xff,0xdd,0xff,0x1d,0x0, +0x49,0x0,0x60,0x0,0xa4,0x0,0xc1,0x0,0x6e,0x0,0xf,0x0, +0xd0,0xff,0x98,0xff,0x81,0xff,0x67,0xff,0x46,0xff,0x89,0xff, +0xee,0xff,0xfc,0xff,0x1c,0x0,0x6b,0x0,0x80,0x0,0x85,0x0, +0x81,0x0,0x47,0x0,0x1a,0x0,0xeb,0xff,0x93,0xff,0x7c,0xff, +0xa7,0xff,0xb3,0xff,0xbe,0xff,0xe1,0xff,0x4,0x0,0x21,0x0, +0x21,0x0,0x24,0x0,0x44,0x0,0x3b,0x0,0x1f,0x0,0x39,0x0, +0x47,0x0,0x10,0x0,0xc5,0xff,0x8f,0xff,0x85,0xff,0xa4,0xff, +0xc6,0xff,0xeb,0xff,0x10,0x0,0x24,0x0,0x48,0x0,0x6d,0x0, +0x4b,0x0,0x8,0x0,0xfa,0xff,0x17,0x0,0x1d,0x0,0xed,0xff, +0xa8,0xff,0x96,0xff,0xaf,0xff,0xac,0xff,0xad,0xff,0xf3,0xff, +0x50,0x0,0x74,0x0,0x6e,0x0,0x79,0x0,0x7c,0x0,0x49,0x0, +0x4,0x0,0xd0,0xff,0x94,0xff,0x5a,0xff,0x47,0xff,0x60,0xff, +0xaa,0xff,0x6,0x0,0x48,0x0,0x90,0x0,0xd3,0x0,0xc5,0x0, +0x7f,0x0,0x3a,0x0,0xf0,0xff,0xaf,0xff,0x7b,0xff,0x4d,0xff, +0x51,0xff,0x82,0xff,0xbb,0xff,0x21,0x0,0x7c,0x0,0x63,0x0, +0x3d,0x0,0x61,0x0,0x6d,0x0,0x44,0x0,0xc,0x0,0xcf,0xff, +0xbf,0xff,0xd6,0xff,0xd0,0xff,0xca,0xff,0xcc,0xff,0xb9,0xff, +0xd0,0xff,0x1a,0x0,0x3d,0x0,0x34,0x0,0x1d,0x0,0x18,0x0, +0x46,0x0,0x58,0x0,0x21,0x0,0x3,0x0,0xfa,0xff,0xd7,0xff, +0xdf,0xff,0xe7,0xff,0xab,0xff,0xa1,0xff,0xce,0xff,0xc4,0xff, +0xd6,0xff,0x3b,0x0,0x79,0x0,0x82,0x0,0x80,0x0,0x4a,0x0, +0xb,0x0,0xfe,0xff,0xdf,0xff,0x8a,0xff,0x5b,0xff,0x88,0xff, +0xcf,0xff,0xe2,0xff,0xe0,0xff,0x13,0x0,0x6e,0x0,0xb1,0x0, +0xb6,0x0,0x80,0x0,0x36,0x0,0xe7,0xff,0x8d,0xff,0x56,0xff, +0x59,0xff,0x6e,0xff,0xa7,0xff,0xb,0x0,0x52,0x0,0x73,0x0, +0x7d,0x0,0x4c,0x0,0x25,0x0,0x4c,0x0,0x57,0x0,0x16,0x0, +0xea,0xff,0xce,0xff,0x92,0xff,0x79,0xff,0x93,0xff,0xac,0xff, +0xec,0xff,0x57,0x0,0x86,0x0,0x70,0x0,0x60,0x0,0x54,0x0, +0x34,0x0,0x12,0x0,0xf0,0xff,0xdf,0xff,0xee,0xff,0xea,0xff, +0xb6,0xff,0x95,0xff,0xaf,0xff,0xe6,0xff,0x24,0x0,0x4f,0x0, +0x57,0x0,0x52,0x0,0x40,0x0,0x2b,0x0,0x3e,0x0,0x50,0x0, +0xf,0x0,0xcc,0xff,0xe7,0xff,0xfd,0xff,0xc1,0xff,0x84,0xff, +0x7f,0xff,0xba,0xff,0x36,0x0,0x92,0x0,0x80,0x0,0x61,0x0, +0x7d,0x0,0x85,0x0,0x4e,0x0,0xfc,0xff,0xa5,0xff,0x77,0xff, +0x94,0xff,0xae,0xff,0x9d,0xff,0xb2,0xff,0x12,0x0,0x6d,0x0, +0x8f,0x0,0x8c,0x0,0x84,0x0,0x7c,0x0,0x52,0x0,0x8,0x0, +0xd9,0xff,0xc4,0xff,0x9d,0xff,0x89,0xff,0xa3,0xff,0xb4,0xff, +0xcd,0xff,0x24,0x0,0x76,0x0,0x90,0x0,0x9d,0x0,0x8b,0x0, +0x51,0x0,0x30,0x0,0x6,0x0,0xa3,0xff,0x79,0xff,0xa0,0xff, +0xa9,0xff,0xb6,0xff,0x0,0x0,0x2a,0x0,0x2e,0x0,0x61,0x0, +0x8f,0x0,0x7e,0x0,0x53,0x0,0x27,0x0,0x4,0x0,0xf3,0xff, +0xd6,0xff,0xbb,0xff,0xc7,0xff,0xd9,0xff,0xdf,0xff,0xf7,0xff, +0xf,0x0,0xd,0x0,0xb,0x0,0x1a,0x0,0x44,0x0,0x6d,0x0, +0x65,0x0,0x4c,0x0,0x4d,0x0,0x2f,0x0,0xe2,0xff,0xb1,0xff, +0xa9,0xff,0xad,0xff,0xba,0xff,0xd6,0xff,0xb,0x0,0x45,0x0, +0x51,0x0,0x47,0x0,0x59,0x0,0x64,0x0,0x59,0x0,0x50,0x0, +0x2a,0x0,0xdd,0xff,0x9f,0xff,0x91,0xff,0xa3,0xff,0xb2,0xff, +0xb4,0xff,0xed,0xff,0x66,0x0,0xa5,0x0,0x8c,0x0,0x6f,0x0, +0x5d,0x0,0x4c,0x0,0x3b,0x0,0x4,0x0,0xc2,0xff,0xa9,0xff, +0x91,0xff,0x85,0xff,0xc4,0xff,0x5,0x0,0x1e,0x0,0x61,0x0, +0xb4,0x0,0xb7,0x0,0x84,0x0,0x3f,0x0,0xe9,0xff,0xb6,0xff, +0xad,0xff,0xb0,0xff,0xc4,0xff,0xdb,0xff,0xe6,0xff,0xb,0x0, +0x34,0x0,0x2f,0x0,0x21,0x0,0x31,0x0,0x52,0x0,0x5f,0x0, +0x34,0x0,0xff,0xff,0x6,0x0,0x7,0x0,0xd0,0xff,0xba,0xff, +0xd9,0xff,0xea,0xff,0xf3,0xff,0xf7,0xff,0xeb,0xff,0xa,0x0, +0x42,0x0,0x49,0x0,0x42,0x0,0x4a,0x0,0x3b,0x0,0x2b,0x0, +0x22,0x0,0xe9,0xff,0xaa,0xff,0xaa,0xff,0xc2,0xff,0xca,0xff, +0xcc,0xff,0xda,0xff,0xe,0x0,0x4c,0x0,0x65,0x0,0x74,0x0, +0x82,0x0,0x69,0x0,0x43,0x0,0x1d,0x0,0xd7,0xff,0x96,0xff, +0x74,0xff,0x60,0xff,0x82,0xff,0xd6,0xff,0x9,0x0,0x34,0x0, +0x88,0x0,0xbb,0x0,0xaa,0x0,0x7f,0x0,0x3a,0x0,0xee,0xff, +0xc3,0xff,0xa5,0xff,0x89,0xff,0x8a,0xff,0xa8,0xff,0xd9,0xff, +0xf,0x0,0x29,0x0,0x36,0x0,0x54,0x0,0x73,0x0,0x7d,0x0, +0x60,0x0,0x1e,0x0,0xf5,0xff,0xec,0xff,0xc3,0xff,0x95,0xff, +0xa2,0xff,0xc7,0xff,0xeb,0xff,0x19,0x0,0x2b,0x0,0x1a,0x0, +0x22,0x0,0x3a,0x0,0x41,0x0,0x45,0x0,0x3d,0x0,0x1f,0x0, +0x11,0x0,0xf,0x0,0xe9,0xff,0xb2,0xff,0xa8,0xff,0xca,0xff, +0xec,0xff,0xfe,0xff,0x12,0x0,0x27,0x0,0x2d,0x0,0x33,0x0, +0x48,0x0,0x56,0x0,0x4c,0x0,0x2b,0x0,0x5,0x0,0xe2,0xff, +0xb2,0xff,0x76,0xff,0x6b,0xff,0xa2,0xff,0xe0,0xff,0x12,0x0, +0x53,0x0,0x86,0x0,0x84,0x0,0x64,0x0,0x3a,0x0,0xb,0x0, +0xed,0xff,0xde,0xff,0xbc,0xff,0x97,0xff,0x8f,0xff,0x99,0xff, +0xb7,0xff,0xf8,0xff,0x2d,0x0,0x38,0x0,0x59,0x0,0x96,0x0, +0x83,0x0,0x11,0x0,0xb8,0xff,0xa8,0xff,0xa8,0xff,0xa5,0xff, +0xae,0xff,0xbb,0xff,0xcf,0xff,0xf9,0xff,0x21,0x0,0x2f,0x0, +0x30,0x0,0x34,0x0,0x41,0x0,0x4e,0x0,0x3b,0x0,0xfe,0xff, +0xc3,0xff,0xaf,0xff,0xb3,0xff,0xb8,0xff,0xc1,0xff,0xd8,0xff, +0xf1,0xff,0xff,0xff,0xa,0x0,0x21,0x0,0x3a,0x0,0x36,0x0, +0x28,0x0,0x38,0x0,0x41,0x0,0xd,0x0,0xd2,0xff,0xc3,0xff, +0xb1,0xff,0x96,0xff,0xab,0xff,0xd9,0xff,0xf3,0xff,0xc,0x0, +0x32,0x0,0x49,0x0,0x4e,0x0,0x56,0x0,0x50,0x0,0x23,0x0, +0xf0,0xff,0xd4,0xff,0xb6,0xff,0x94,0xff,0x88,0xff,0x84,0xff, +0x94,0xff,0xea,0xff,0x4b,0x0,0x5e,0x0,0x57,0x0,0x6d,0x0, +0x73,0x0,0x4d,0x0,0xc,0x0,0xc5,0xff,0x96,0xff,0x8e,0xff, +0xa2,0xff,0xc0,0xff,0xce,0xff,0xd7,0xff,0x0,0x0,0x30,0x0, +0x44,0x0,0x44,0x0,0x38,0x0,0x2b,0x0,0x2a,0x0,0x18,0x0, +0xef,0xff,0xc8,0xff,0xa5,0xff,0x9d,0xff,0xb8,0xff,0xcf,0xff, +0xe8,0xff,0x16,0x0,0x2a,0x0,0x27,0x0,0x2f,0x0,0x21,0x0, +0x3,0x0,0x3,0x0,0xfc,0xff,0xdc,0xff,0xd7,0xff,0xe0,0xff, +0xd6,0xff,0xc6,0xff,0xbf,0xff,0xcc,0xff,0xe9,0xff,0x5,0x0, +0x1d,0x0,0x1e,0x0,0x6,0x0,0xa,0x0,0x26,0x0,0x25,0x0, +0xf,0x0,0xf0,0xff,0xc7,0xff,0xbb,0xff,0xba,0xff,0x8e,0xff, +0x76,0xff,0xa6,0xff,0xf2,0xff,0x40,0x0,0x77,0x0,0x78,0x0, +0x61,0x0,0x40,0x0,0x4,0x0,0xcd,0xff,0xa8,0xff,0x84,0xff, +0x7f,0xff,0xa0,0xff,0xbb,0xff,0xd1,0xff,0xed,0xff,0xf,0x0, +0x38,0x0,0x54,0x0,0x59,0x0,0x59,0x0,0x3f,0x0,0x6,0x0, +0xcd,0xff,0x96,0xff,0x79,0xff,0x93,0xff,0xad,0xff,0xb4,0xff, +0xdc,0xff,0xf,0x0,0x33,0x0,0x55,0x0,0x4f,0x0,0x22,0x0, +0x12,0x0,0x12,0x0,0xf8,0xff,0xd3,0xff,0xaf,0xff,0xa2,0xff, +0xc0,0xff,0xe4,0xff,0xf6,0xff,0x0,0x0,0xff,0xff,0x2,0x0, +0x16,0x0,0x21,0x0,0x14,0x0,0x0,0x0,0x1,0x0,0x18,0x0, +0x1d,0x0,0xf9,0xff,0xd0,0xff,0xb9,0xff,0xb5,0xff,0xba,0xff, +0xb5,0xff,0xbc,0xff,0xf0,0xff,0x30,0x0,0x4d,0x0,0x59,0x0, +0x62,0x0,0x49,0x0,0x12,0x0,0xea,0xff,0xc7,0xff,0x93,0xff, +0x7f,0xff,0x9d,0xff,0xba,0xff,0xc4,0xff,0xd4,0xff,0xfe,0xff, +0x36,0x0,0x57,0x0,0x5d,0x0,0x56,0x0,0x40,0x0,0x27,0x0, +0xf6,0xff,0xa0,0xff,0x6c,0xff,0x70,0xff,0x7c,0xff,0xb0,0xff, +0xf9,0xff,0x13,0x0,0x2d,0x0,0x5b,0x0,0x69,0x0,0x5b,0x0, +0x29,0x0,0xef,0xff,0xec,0xff,0xd5,0xff,0x95,0xff,0x94,0xff, +0xa2,0xff,0x96,0xff,0xcd,0xff,0x1d,0x0,0x3d,0x0,0x4a,0x0, +0x3e,0x0,0x2b,0x0,0x30,0x0,0xe,0x0,0xd2,0xff,0xbe,0xff, +0xc2,0xff,0xd6,0xff,0xee,0xff,0xe0,0xff,0xcd,0xff,0xd0,0xff, +0xd8,0xff,0xee,0xff,0x10,0x0,0x2b,0x0,0x3b,0x0,0x33,0x0, +0x1e,0x0,0x8,0x0,0xe8,0xff,0xd4,0xff,0xcd,0xff,0xba,0xff, +0xb9,0xff,0xd6,0xff,0xed,0xff,0xf0,0xff,0xe6,0xff,0xeb,0xff, +0x5,0x0,0x19,0x0,0x32,0x0,0x4a,0x0,0x30,0x0,0x9,0x0, +0x3,0x0,0xec,0xff,0xae,0xff,0x80,0xff,0x96,0xff,0xce,0xff, +0xd7,0xff,0xd6,0xff,0xfa,0xff,0x18,0x0,0x59,0x0,0xa3,0x0, +0x65,0x0,0xd,0x0,0x9,0x0,0xe5,0xff,0xb9,0xff,0xa0,0xff, +0x5e,0xff,0x6b,0xff,0xbc,0xff,0xde,0xff,0x2e,0x0,0x67,0x0, +0x43,0x0,0x6d,0x0,0x6d,0x0,0xf6,0xff,0xa,0x0,0x17,0x0, +0x8f,0xff,0xa0,0xff,0xe5,0xff,0xa2,0xff,0xc0,0xff,0xef,0xff, +0xb3,0xff,0xee,0xff,0x2d,0x0,0xff,0xff,0x42,0x0,0x73,0x0, +0x28,0x0,0x22,0x0,0xee,0xff,0x99,0xff,0xef,0xff,0xef,0xff, +0x86,0xff,0xd8,0xff,0x2,0x0,0xbe,0xff,0xf7,0xff,0xf0,0xff, +0xc4,0xff,0x44,0x0,0x65,0x0,0x2f,0x0,0x61,0x0,0x1f,0x0, +0xcb,0xff,0xb,0x0,0xe1,0xff,0xa6,0xff,0xc8,0xff,0x8d,0xff, +0xa0,0xff,0x4,0x0,0xcb,0xff,0xe4,0xff,0x5c,0x0,0x30,0x0, +0x37,0x0,0x91,0x0,0x71,0x0,0x3b,0x0,0xe1,0xff,0x67,0xff, +0x6e,0xff,0x68,0xff,0x49,0xff,0xb2,0xff,0x13,0x0,0x53,0x0, +0x9e,0x0,0x72,0x0,0x59,0x0,0x7f,0x0,0xd,0x0,0xb1,0xff, +0xe8,0xff,0xc2,0xff,0x7c,0xff,0x9f,0xff,0xb2,0xff,0xc4,0xff, +0x22,0x0,0x5c,0x0,0x36,0x0,0x19,0x0,0x48,0x0,0x7d,0x0, +0x80,0x0,0x29,0x0,0x6f,0xff,0xf8,0xfe,0xe,0xff,0x13,0xff, +0x1a,0xff,0xae,0xff,0x88,0x0,0xe6,0x0,0x79,0x0,0x21,0x0, +0x6b,0x0,0x54,0x0,0xd,0x0,0x91,0x0,0xd2,0x0,0x56,0x0, +0xba,0xff,0xcc,0xfe,0xa8,0xfe,0xbf,0xff,0xe7,0xff,0x78,0xff, +0xa,0x0,0x58,0x0,0xb,0x0,0x36,0x0,0x88,0x0,0xa1,0x0, +0x2c,0x0,0x80,0xff,0xe7,0xff,0x49,0x0,0x7f,0xff,0x1e,0xff, +0x6b,0xff,0xba,0xff,0x25,0x0,0xf2,0xff,0xd4,0xff,0xaf,0x0, +0x7a,0x0,0x64,0xff,0xc4,0xff,0x82,0x0,0x3c,0x0,0xde,0xff, +0xdb,0xff,0xed,0xff,0x98,0xff,0x25,0xff,0xaf,0xff,0x4e,0x0, +0xdf,0xff,0x8d,0xff,0x10,0x0,0xb4,0x0,0xa8,0x0,0xd2,0xff, +0xa6,0xff,0x66,0x0,0x42,0x0,0x84,0xff,0xc2,0xff,0x5e,0x0, +0x14,0x0,0x50,0xff,0x6c,0xff,0xd,0x0,0xaa,0xff,0x24,0xff, +0xe7,0xff,0xdc,0x0,0xed,0x0,0x6c,0x0,0x21,0x0,0x57,0x0, +0xf6,0xff,0x1e,0xff,0x73,0xff,0xd,0x0,0x96,0xff,0x45,0xff, +0xdc,0xff,0x89,0x0,0x44,0x0,0x7b,0xff,0x1a,0x0,0x54,0x1, +0xbf,0x0,0x8d,0xff,0xa3,0xff,0x2b,0x0,0xea,0xff,0xf8,0xfe, +0xf8,0xfe,0x39,0x0,0x70,0x0,0xb1,0xff,0xf8,0xff,0x97,0x0, +0x80,0x0,0x1b,0x0,0x1,0x0,0x68,0x0,0x2f,0x0,0x41,0xff, +0x70,0xff,0x26,0x0,0xdb,0xff,0x65,0xff,0x98,0xff,0x46,0x0, +0x88,0x0,0xd3,0xff,0xd3,0xff,0xac,0x0,0x54,0x0,0x90,0xff, +0xc4,0xff,0x1d,0x0,0x17,0x0,0xb7,0xff,0xa8,0xff,0x64,0x0, +0x48,0x0,0x59,0xff,0x8d,0xff,0x32,0x0,0x10,0x0,0xa5,0xff, +0x90,0xff,0x4f,0x0,0xce,0x0,0x1b,0x0,0xef,0xff,0x7a,0x0, +0x1d,0x0,0x81,0xff,0x85,0xff,0xd1,0xff,0xee,0xff,0x63,0xff, +0x56,0xff,0x63,0x0,0x86,0x0,0xba,0xff,0xce,0xff,0x7a,0x0, +0xd0,0x0,0x65,0x0,0xb6,0xff,0xed,0xff,0x13,0x0,0x4a,0xff, +0x2c,0xff,0xbe,0xff,0xd9,0xff,0xd4,0xff,0xf1,0xff,0x51,0x0, +0x9f,0x0,0x1a,0x0,0xf9,0xff,0xaf,0x0,0x78,0x0,0xa9,0xff, +0x89,0xff,0xbd,0xff,0xd8,0xff,0x7a,0xff,0x30,0xff,0xe3,0xff, +0x3f,0x0,0xd2,0xff,0x2c,0x0,0xc6,0x0,0x93,0x0,0x11,0x0, +0xbf,0xff,0x6,0x0,0x32,0x0,0x70,0xff,0x56,0xff,0x41,0x0, +0x5b,0x0,0xc1,0xff,0x81,0xff,0xcb,0xff,0x49,0x0,0x10,0x0, +0xaf,0xff,0x37,0x0,0x82,0x0,0x28,0x0,0x25,0x0,0x30,0x0, +0xfa,0xff,0xb6,0xff,0x99,0xff,0xa,0x0,0x2c,0x0,0x78,0xff, +0x5e,0xff,0x4,0x0,0x46,0x0,0x11,0x0,0xdb,0xff,0x40,0x0, +0xcf,0x0,0x5f,0x0,0xd1,0xff,0xa,0x0,0xfc,0xff,0x87,0xff, +0x67,0xff,0xb5,0xff,0x1f,0x0,0xe8,0xff,0x9a,0xff,0x41,0x0, +0x97,0x0,0xf2,0xff,0xd7,0xff,0x73,0x0,0xb8,0x0,0x32,0x0, +0x6f,0xff,0xa4,0xff,0x1c,0x0,0x74,0xff,0xd,0xff,0xcd,0xff, +0x45,0x0,0x22,0x0,0x18,0x0,0x67,0x0,0xcb,0x0,0x6c,0x0, +0xb9,0xff,0xde,0xff,0x14,0x0,0xa7,0xff,0x84,0xff,0xd9,0xff, +0x5,0x0,0xd8,0xff,0x98,0xff,0xee,0xff,0x85,0x0,0x59,0x0, +0xfa,0xff,0x33,0x0,0x41,0x0,0xde,0xff,0xca,0xff,0x6,0x0, +0x9,0x0,0xc4,0xff,0xa2,0xff,0xf2,0xff,0x3f,0x0,0xfc,0xff, +0xb9,0xff,0x9,0x0,0x53,0x0,0x1e,0x0,0xda,0xff,0xf5,0xff, +0x4d,0x0,0x4e,0x0,0xea,0xff,0xe9,0xff,0x2d,0x0,0xd8,0xff, +0x69,0xff,0xb5,0xff,0x20,0x0,0x8,0x0,0xdb,0xff,0x17,0x0, +0x70,0x0,0x35,0x0,0xc3,0xff,0x16,0x0,0xa0,0x0,0x52,0x0, +0xc6,0xff,0xd2,0xff,0xfd,0xff,0xbf,0xff,0x6c,0xff,0x94,0xff, +0x2,0x0,0x19,0x0,0x2a,0x0,0xa0,0x0,0xae,0x0,0x11,0x0, +0xcb,0xff,0x8,0x0,0xd,0x0,0xb7,0xff,0x8f,0xff,0xeb,0xff, +0x35,0x0,0xcc,0xff,0x7d,0xff,0x2,0x0,0x71,0x0,0x3c,0x0, +0x1c,0x0,0x5c,0x0,0x6d,0x0,0xfe,0xff,0x9a,0xff,0xe1,0xff, +0x34,0x0,0xda,0xff,0x9d,0xff,0xf3,0xff,0x1a,0x0,0xfb,0xff, +0x1,0x0,0xd,0x0,0xc,0x0,0xa,0x0,0xa,0x0,0x3b,0x0, +0x4a,0x0,0xf1,0xff,0xd8,0xff,0x29,0x0,0x2a,0x0,0xca,0xff, +0x94,0xff,0xd0,0xff,0x38,0x0,0x27,0x0,0xc9,0xff,0xe6,0xff, +0x23,0x0,0xf5,0xff,0xf1,0xff,0x3d,0x0,0x42,0x0,0x16,0x0, +0x17,0x0,0x39,0x0,0x29,0x0,0xac,0xff,0x61,0xff,0xd5,0xff, +0x2d,0x0,0xd3,0xff,0xb4,0xff,0x3b,0x0,0x98,0x0,0x4c,0x0, +0xcc,0xff,0xc6,0xff,0xf,0x0,0xf5,0xff,0xb3,0xff,0xda,0xff, +0xf4,0xff,0xa9,0xff,0x81,0xff,0xc5,0xff,0x1b,0x0,0x44,0x0, +0x71,0x0,0xc2,0x0,0xa8,0x0,0xe7,0xff,0x8f,0xff,0x15,0x0, +0x51,0x0,0xcc,0xff,0x80,0xff,0xd6,0xff,0x4,0x0,0xb3,0xff, +0xa4,0xff,0x19,0x0,0x3b,0x0,0xe7,0xff,0x0,0x0,0x78,0x0, +0x6e,0x0,0xe9,0xff,0xaa,0xff,0xe9,0xff,0x15,0x0,0xc6,0xff, +0x9c,0xff,0xc,0x0,0x4d,0x0,0xee,0xff,0xb9,0xff,0x4,0x0, +0x37,0x0,0xfe,0xff,0xd1,0xff,0x18,0x0,0x4d,0x0,0xf4,0xff, +0xc4,0xff,0x1f,0x0,0x31,0x0,0xd0,0xff,0xb9,0xff,0xf7,0xff, +0x2,0x0,0xc0,0xff,0xae,0xff,0x29,0x0,0x7a,0x0,0xc,0x0, +0xce,0xff,0x4a,0x0,0x77,0x0,0xfc,0xff,0xc9,0xff,0x18,0x0, +0x21,0x0,0x91,0xff,0x41,0xff,0xdc,0xff,0x66,0x0,0xb,0x0, +0xd5,0xff,0x5b,0x0,0x81,0x0,0xf3,0xff,0xc1,0xff,0x3a,0x0, +0x6b,0x0,0xdd,0xff,0x82,0xff,0x1,0x0,0x41,0x0,0xa3,0xff, +0x68,0xff,0x4,0x0,0x4a,0x0,0xff,0xff,0x2,0x0,0x5c,0x0, +0x61,0x0,0x5,0x0,0xe1,0xff,0x16,0x0,0x2,0x0,0x9a,0xff, +0x9d,0xff,0x10,0x0,0x29,0x0,0xd1,0xff,0xc8,0xff,0x45,0x0, +0x85,0x0,0xf,0x0,0xb2,0xff,0x10,0x0,0x5d,0x0,0xf2,0xff, +0x9b,0xff,0xe9,0xff,0x25,0x0,0xd7,0xff,0xac,0xff,0xe,0x0, +0x48,0x0,0xeb,0xff,0xae,0xff,0xf,0x0,0x5e,0x0,0x9,0x0, +0xb3,0xff,0xb,0x0,0x78,0x0,0x27,0x0,0xa2,0xff,0xc6,0xff, +0x1d,0x0,0xf4,0xff,0xb8,0xff,0xef,0xff,0x2e,0x0,0x5,0x0, +0xdb,0xff,0x1f,0x0,0x52,0x0,0xfa,0xff,0xbb,0xff,0x16,0x0, +0x50,0x0,0xee,0xff,0xad,0xff,0x7,0x0,0x4a,0x0,0xe2,0xff, +0x6f,0xff,0xc0,0xff,0x4a,0x0,0x32,0x0,0xee,0xff,0x29,0x0, +0x5f,0x0,0x19,0x0,0xd6,0xff,0xf3,0xff,0x17,0x0,0xe0,0xff, +0x8e,0xff,0xb4,0xff,0x1d,0x0,0x12,0x0,0xd1,0xff,0x13,0x0, +0x80,0x0,0x54,0x0,0xdd,0xff,0xeb,0xff,0x53,0x0,0x37,0x0, +0xa7,0xff,0x88,0xff,0xd8,0xff,0xe6,0xff,0xc9,0xff,0xf4,0xff, +0x26,0x0,0x16,0x0,0x7,0x0,0x26,0x0,0x3e,0x0,0x26,0x0, +0x4,0x0,0x1b,0x0,0x47,0x0,0x13,0x0,0xa5,0xff,0x9b,0xff, +0xe7,0xff,0xec,0xff,0xa7,0xff,0xb7,0xff,0x28,0x0,0x51,0x0, +0x9,0x0,0xf5,0xff,0x43,0x0,0x4a,0x0,0xe6,0xff,0xd1,0xff, +0x2d,0x0,0x39,0x0,0xcf,0xff,0xa6,0xff,0xf0,0xff,0xa,0x0, +0xc0,0xff,0xbb,0xff,0x2b,0x0,0x5d,0x0,0x1f,0x0,0xe,0x0, +0x39,0x0,0x1a,0x0,0xd6,0xff,0xed,0xff,0x31,0x0,0x22,0x0, +0xcd,0xff,0xa2,0xff,0xc0,0xff,0xe0,0xff,0xee,0xff,0x1a,0x0, +0x47,0x0,0x2f,0x0,0x8,0x0,0x22,0x0,0x47,0x0,0x21,0x0, +0xe0,0xff,0xda,0xff,0xea,0xff,0xcd,0xff,0xbd,0xff,0xed,0xff, +0xd,0x0,0xf6,0xff,0xee,0xff,0x8,0x0,0x1e,0x0,0x32,0x0, +0x41,0x0,0x33,0x0,0x2c,0x0,0x3e,0x0,0x22,0x0,0xc4,0xff, +0x94,0xff,0xd1,0xff,0xf,0x0,0xfa,0xff,0xdd,0xff,0xfa,0xff, +0x24,0x0,0x30,0x0,0x26,0x0,0x1a,0x0,0x1c,0x0,0x22,0x0, +0x14,0x0,0xff,0xff,0xec,0xff,0xd3,0xff,0xc7,0xff,0xe3,0xff, +0x14,0x0,0x22,0x0,0x3,0x0,0xff,0xff,0x36,0x0,0x43,0x0, +0xf9,0xff,0xcc,0xff,0x0,0x0,0x3a,0x0,0x29,0x0,0xfd,0xff, +0xf3,0xff,0xe3,0xff,0xba,0xff,0xca,0xff,0x17,0x0,0x28,0x0, +0xa,0x0,0x31,0x0,0x5e,0x0,0x25,0x0,0xe4,0xff,0xe,0x0, +0x4f,0x0,0x26,0x0,0xc6,0xff,0xc3,0xff,0x11,0x0,0x1f,0x0, +0xe3,0xff,0xd4,0xff,0x5,0x0,0x13,0x0,0xec,0xff,0xf8,0xff, +0x49,0x0,0x54,0x0,0xf7,0xff,0xce,0xff,0x6,0x0,0x16,0x0, +0xdc,0xff,0xc5,0xff,0xf0,0xff,0x13,0x0,0x5,0x0,0xf1,0xff, +0x3,0x0,0x1f,0x0,0x29,0x0,0x34,0x0,0x43,0x0,0x2d,0x0, +0xef,0xff,0xce,0xff,0xfc,0xff,0x1a,0x0,0xd5,0xff,0xb7,0xff, +0x16,0x0,0x41,0x0,0xe8,0xff,0xc3,0xff,0x15,0x0,0x3e,0x0, +0x0,0x0,0xdd,0xff,0x14,0x0,0x28,0x0,0xed,0xff,0xf1,0xff, +0x2c,0x0,0xf6,0xff,0x90,0xff,0xbf,0xff,0x3c,0x0,0x44,0x0, +0xf1,0xff,0xe3,0xff,0x24,0x0,0x28,0x0,0xe6,0xff,0xe7,0xff, +0x1f,0x0,0x1b,0x0,0xfa,0xff,0xed,0xff,0xd0,0xff,0xca,0xff, +0xff,0xff,0x1c,0x0,0x3,0x0,0xf6,0xff,0xf,0x0,0x2e,0x0, +0x29,0x0,0x2,0x0,0xf8,0xff,0x14,0x0,0x18,0x0,0xff,0xff, +0xe9,0xff,0xdc,0xff,0xda,0xff,0xdb,0xff,0xe5,0xff,0x3,0x0, +0xc,0x0,0xf7,0xff,0x2,0x0,0x1d,0x0,0x13,0x0,0x9,0x0, +0xd,0x0,0xf5,0xff,0xeb,0xff,0x16,0x0,0x27,0x0,0xed,0xff, +0xc0,0xff,0xea,0xff,0x28,0x0,0x1e,0x0,0xf3,0xff,0xf9,0xff, +0x1a,0x0,0xd,0x0,0xe4,0xff,0xe6,0xff,0x13,0x0,0x1e,0x0, +0xfc,0xff,0xed,0xff,0xfd,0xff,0xfa,0xff,0xec,0xff,0x1,0x0, +0x19,0x0,0xf9,0xff,0xc6,0xff,0xd8,0xff,0x15,0x0,0x1e,0x0, +0x2,0x0,0x5,0x0,0x11,0x0,0xa,0x0,0x3,0x0,0xfe,0xff, +0xf7,0xff,0xf5,0xff,0xf7,0xff,0xfe,0xff,0xfe,0xff,0xea,0xff, +0xee,0xff,0xe,0x0,0x9,0x0,0xff,0xff,0x18,0x0,0x14,0x0, +0xf3,0xff,0xff,0xff,0x14,0x0,0x0,0x0,0xfa,0xff,0xc,0x0, +0xfa,0xff,0xd1,0xff,0xe0,0xff,0x14,0x0,0xf7,0xff,0xad,0xff, +0xe5,0xff,0x50,0x0,0x11,0x0,0xa9,0xff,0xef,0xff,0x4b,0x0, +0x19,0x0,0xe8,0xff,0x20,0x0,0x4a,0x0,0x10,0x0,0xd5,0xff, +0xf7,0xff,0x17,0x0,0xd5,0xff,0xab,0xff,0xf0,0xff,0x19,0x0, +0xf5,0xff,0xf4,0xff,0x19,0x0,0xe,0x0,0xf6,0xff,0x1a,0x0, +0x43,0x0,0xb,0x0,0xb2,0xff,0xc4,0xff,0x4,0x0,0xe3,0xff, +0xb1,0xff,0xe8,0xff,0x24,0x0,0xb,0x0,0xf5,0xff,0xa,0x0, +0x11,0x0,0x7,0x0,0x10,0x0,0x20,0x0,0x1f,0x0,0x17,0x0, +0xa,0x0,0xe4,0xff,0xb3,0xff,0xc1,0xff,0xf,0x0,0x20,0x0, +0xe5,0xff,0xde,0xff,0x11,0x0,0x0,0x0,0xcd,0xff,0xee,0xff, +0x22,0x0,0x9,0x0,0xf0,0xff,0x14,0x0,0xf,0x0,0xb9,0xff, +0xa3,0xff,0x3,0x0,0x31,0x0,0xec,0xff,0xd9,0xff,0x1d,0x0, +0x21,0x0,0xef,0xff,0xf8,0xff,0x1e,0x0,0x21,0x0,0x1a,0x0, +0xf,0x0,0xf2,0xff,0xd1,0xff,0xc4,0xff,0xde,0xff,0xf8,0xff, +0xde,0xff,0xcf,0xff,0xc,0x0,0x35,0x0,0xfa,0xff,0xc9,0xff, +0x3,0x0,0x4c,0x0,0x21,0x0,0xbf,0xff,0xc0,0xff,0x1,0x0, +0xf4,0xff,0xc2,0xff,0xd8,0xff,0x5,0x0,0xd,0x0,0xd,0x0, +0x8,0x0,0xf3,0xff,0x1,0x0,0x3b,0x0,0x4e,0x0,0xf,0x0, +0xca,0xff,0xe5,0xff,0x1e,0x0,0xef,0xff,0xa0,0xff,0xc8,0xff, +0x13,0x0,0xf1,0xff,0xb3,0xff,0xd1,0xff,0x9,0x0,0xb,0x0, +0x9,0x0,0x2d,0x0,0x36,0x0,0x7,0x0,0xef,0xff,0x3,0x0, +0xf4,0xff,0xce,0xff,0xf1,0xff,0x2d,0x0,0xd,0x0,0xcb,0xff, +0xda,0xff,0x16,0x0,0x1d,0x0,0xfa,0xff,0xf7,0xff,0x14,0x0, +0xd,0x0,0xf2,0xff,0x5,0x0,0x14,0x0,0xe6,0xff,0xd9,0xff, +0xd,0x0,0xd,0x0,0xdd,0xff,0xf1,0xff,0x1a,0x0,0xf6,0xff, +0xd0,0xff,0xff,0xff,0x36,0x0,0x1c,0x0,0xe5,0xff,0xde,0xff, +0xf3,0xff,0x14,0x0,0x46,0x0,0x38,0x0,0xd5,0xff,0xc4,0xff, +0x2d,0x0,0x43,0x0,0xda,0xff,0xbb,0xff,0x16,0x0,0x42,0x0, +0x8,0x0,0xe2,0xff,0x0,0x0,0xfd,0xff,0xc7,0xff,0xcd,0xff, +0x2,0x0,0xf2,0xff,0xd8,0xff,0xd,0x0,0x27,0x0,0xee,0xff, +0xf4,0xff,0x56,0x0,0x6b,0x0,0x14,0x0,0xee,0xff,0x13,0x0, +0xfa,0xff,0xab,0xff,0xc2,0xff,0x26,0x0,0x2f,0x0,0xed,0xff, +0xed,0xff,0x1b,0x0,0x10,0x0,0xe6,0xff,0xf3,0xff,0x24,0x0, +0x2c,0x0,0xc,0x0,0xfd,0xff,0xff,0xff,0xef,0xff,0xf2,0xff, +0x18,0x0,0x14,0x0,0xda,0xff,0xda,0xff,0x22,0x0,0x2b,0x0, +0xe8,0xff,0xdd,0xff,0x11,0x0,0x17,0x0,0xfc,0xff,0x15,0x0, +0x36,0x0,0x1c,0x0,0xf9,0xff,0xf6,0xff,0xef,0xff,0xdf,0xff, +0xed,0xff,0xa,0x0,0x3,0x0,0xe8,0xff,0xf6,0xff,0x2c,0x0, +0x4f,0x0,0x30,0x0,0xf2,0xff,0xee,0xff,0x26,0x0,0x33,0x0, +0xf9,0xff,0xd7,0xff,0xf3,0xff,0x6,0x0,0xf9,0xff,0xf6,0xff, +0xfd,0xff,0x1,0x0,0x1a,0x0,0x35,0x0,0x15,0x0,0xd3,0xff, +0xd6,0xff,0x1e,0x0,0x32,0x0,0xf4,0xff,0xe2,0xff,0x1f,0x0, +0x26,0x0,0xd6,0xff,0xb9,0xff,0xff,0xff,0x2d,0x0,0xf,0x0, +0xef,0xff,0xf9,0xff,0x15,0x0,0x33,0x0,0x40,0x0,0x1f,0x0, +0xf2,0xff,0xf3,0xff,0x9,0x0,0xff,0xff,0xef,0xff,0xfd,0xff, +0xa,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0xff,0xff,0x1c,0x0, +0x41,0x0,0x26,0x0,0xeb,0xff,0xe0,0xff,0xf3,0xff,0xf0,0xff, +0xe1,0xff,0xe6,0xff,0xf8,0xff,0xc,0x0,0x22,0x0,0x2f,0x0, +0x1a,0x0,0xe2,0xff,0xc5,0xff,0xfc,0xff,0x4d,0x0,0x49,0x0, +0x2,0x0,0xf0,0xff,0x16,0x0,0x15,0x0,0xf2,0xff,0xec,0xff, +0xf3,0xff,0xec,0xff,0xfe,0xff,0x1d,0x0,0x9,0x0,0xe1,0xff, +0xfd,0xff,0x3a,0x0,0x31,0x0,0xf9,0xff,0xf2,0xff,0x12,0x0, +0x1d,0x0,0xc,0x0,0xe8,0xff,0xc3,0xff,0xd1,0xff,0x15,0x0, +0x38,0x0,0xb,0x0,0xea,0xff,0x21,0x0,0x55,0x0,0x20,0x0, +0xd7,0xff,0xe5,0xff,0x14,0x0,0x1f,0x0,0x12,0x0,0xf1,0xff, +0xce,0xff,0xe2,0xff,0x18,0x0,0x15,0x0,0xd3,0xff,0xc8,0xff, +0x25,0x0,0x63,0x0,0x1d,0x0,0xca,0xff,0xd9,0xff,0xc,0x0, +0x26,0x0,0x25,0x0,0x9,0x0,0xff,0xff,0x24,0x0,0x29,0x0, +0xeb,0xff,0xbc,0xff,0xd1,0xff,0xa,0x0,0x2f,0x0,0x2b,0x0, +0x10,0x0,0xf5,0xff,0xef,0xff,0xd,0x0,0x14,0x0,0xdb,0xff, +0xcb,0xff,0x18,0x0,0x43,0x0,0x5,0x0,0xc2,0xff,0xdd,0xff, +0x29,0x0,0x30,0x0,0xfe,0xff,0xa,0x0,0x2b,0x0,0xff,0xff, +0xde,0xff,0xfc,0xff,0xe9,0xff,0xc4,0xff,0xd,0x0,0x5f,0x0, +0x1d,0x0,0xb0,0xff,0xcc,0xff,0x3d,0x0,0x47,0x0,0xeb,0xff, +0xd3,0xff,0xf,0x0,0x19,0x0,0xf4,0xff,0xec,0xff,0xe0,0xff, +0xc9,0xff,0xf3,0xff,0x45,0x0,0x3d,0x0,0xdb,0xff,0xbd,0xff, +0x17,0x0,0x4d,0x0,0xa,0x0,0xd3,0xff,0xf7,0xff,0x16,0x0, +0xfe,0xff,0xe1,0xff,0xd1,0xff,0xd8,0xff,0x10,0x0,0x34,0x0, +0xfd,0xff,0xc6,0xff,0xf6,0xff,0x34,0x0,0x12,0x0,0xcf,0xff, +0xd4,0xff,0x13,0x0,0x3a,0x0,0x1d,0x0,0xd9,0xff,0xb3,0xff, +0xdf,0xff,0x2a,0x0,0x21,0x0,0xcc,0xff,0xbb,0xff,0xf,0x0, +0x40,0x0,0x18,0x0,0xec,0xff,0xef,0xff,0x10,0x0,0x22,0x0, +0x5,0x0,0xdc,0xff,0xda,0xff,0xee,0xff,0xfb,0xff,0xf8,0xff, +0xdd,0xff,0xd6,0xff,0xe,0x0,0x3f,0x0,0x22,0x0,0xee,0xff, +0xe9,0xff,0x8,0x0,0x1f,0x0,0xc,0x0,0xe4,0xff,0xda,0xff, +0xed,0xff,0xf8,0xff,0xf2,0xff,0xdf,0xff,0xd9,0xff,0xfb,0xff, +0x1e,0x0,0x18,0x0,0x1,0x0,0xfc,0xff,0x9,0x0,0xf,0x0, +0xfa,0xff,0xe7,0xff,0xfd,0xff,0x10,0x0,0xf5,0xff,0xd9,0xff, +0xd6,0xff,0xcb,0xff,0xc3,0xff,0xde,0xff,0x8,0x0,0x17,0x0, +0xfa,0xff,0xdd,0xff,0xfd,0xff,0x34,0x0,0x32,0x0,0xf,0x0, +0xd,0x0,0xf,0x0,0xf6,0xff,0xe8,0xff,0xf9,0xff,0xb,0x0, +0x9,0x0,0x7,0x0,0x4,0x0,0xe5,0xff,0xd2,0xff,0xf7,0xff, +0xf2,0xff,0x94,0xff,0x86,0xff,0x9,0x0,0x5d,0x0,0x26,0x0, +0xe6,0xff,0xfd,0xff,0x3b,0x0,0x40,0x0,0x8,0x0,0xec,0xff, +0x5,0x0,0x15,0x0,0x4,0x0,0xe0,0xff,0xc7,0xff,0xe2,0xff, +0xfd,0xff,0xd1,0xff,0xb4,0xff,0xff,0xff,0x55,0x0,0x4a,0x0, +0xf1,0xff,0xb1,0xff,0xd6,0xff,0x29,0x0,0x44,0x0,0x19,0x0, +0xe0,0xff,0xe2,0xff,0x29,0x0,0x3f,0x0,0xf9,0xff,0xd6,0xff, +0x1,0x0,0x1f,0x0,0x7,0x0,0xdb,0xff,0xd0,0xff,0xf3,0xff, +0xf2,0xff,0xbb,0xff,0xc4,0xff,0x1c,0x0,0x55,0x0,0x45,0x0, +0x0,0x0,0xb6,0xff,0xc0,0xff,0x25,0x0,0x6f,0x0,0x36,0x0, +0xbe,0xff,0xcd,0xff,0x65,0x0,0x7d,0x0,0xca,0xff,0x4b,0xff, +0x92,0xff,0xb,0x0,0x1f,0x0,0xe9,0xff,0xdc,0xff,0xe,0x0, +0x2d,0x0,0x11,0x0,0xf1,0xff,0x11,0x0,0x64,0x0,0x6e,0x0, +0xf5,0xff,0x90,0xff,0xb8,0xff,0x23,0x0,0x39,0x0,0xbe,0xff, +0x4d,0xff,0xb9,0xff,0x7c,0x0,0x68,0x0,0xc2,0xff,0xa2,0xff, +0x16,0x0,0x6b,0x0,0x4e,0x0,0x5,0x0,0xe9,0xff,0xe4,0xff, +0xda,0xff,0xda,0xff,0xcc,0xff,0xc9,0xff,0x4,0x0,0x23,0x0, +0xed,0xff,0xdc,0xff,0x1b,0x0,0x46,0x0,0x24,0x0,0xdb,0xff, +0xd3,0xff,0x21,0x0,0x41,0x0,0xe,0x0,0xe7,0xff,0xc1,0xff, +0xa3,0xff,0xd9,0xff,0x15,0x0,0xfb,0xff,0xdb,0xff,0xf5,0xff, +0x2b,0x0,0x48,0x0,0x25,0x0,0xfb,0xff,0x3,0x0,0xfd,0xff, +0xe3,0xff,0xea,0xff,0xe7,0xff,0xcd,0xff,0xd6,0xff,0xe5,0xff, +0xef,0xff,0x1d,0x0,0x48,0x0,0x39,0x0,0xfb,0xff,0xd1,0xff, +0xf9,0xff,0x2e,0x0,0x5,0x0,0xd6,0xff,0xf0,0xff,0x4,0x0, +0xf8,0xff,0xf8,0xff,0xf3,0xff,0xe9,0xff,0xec,0xff,0xf3,0xff, +0x7,0x0,0x23,0x0,0x3b,0x0,0x4a,0x0,0xa,0x0,0xa7,0xff, +0xcc,0xff,0x41,0x0,0x32,0x0,0xd2,0xff,0xc2,0xff,0xf3,0xff, +0x9,0x0,0xef,0xff,0xec,0xff,0x1d,0x0,0x23,0x0,0xf5,0xff, +0x5,0x0,0x2d,0x0,0x18,0x0,0x4,0x0,0xb,0x0,0x4,0x0, +0x6,0x0,0x10,0x0,0x4,0x0,0xe2,0xff,0xbc,0xff,0xd8,0xff, +0x33,0x0,0x39,0x0,0xec,0xff,0xe9,0xff,0x17,0x0,0x18,0x0, +0x12,0x0,0x22,0x0,0x21,0x0,0x5,0x0,0xe1,0xff,0xea,0xff, +0x1c,0x0,0x23,0x0,0x2,0x0,0xf6,0xff,0xef,0xff,0xfb,0xff, +0x1e,0x0,0x14,0x0,0xf3,0xff,0xfe,0xff,0x9,0x0,0x2,0x0, +0xa,0x0,0x12,0x0,0xe,0x0,0xff,0xff,0xe7,0xff,0xf5,0xff, +0x23,0x0,0x30,0x0,0x21,0x0,0x1b,0x0,0x1a,0x0,0x1d,0x0, +0xa,0x0,0xd6,0xff,0xc8,0xff,0xf6,0xff,0x25,0x0,0x3a,0x0, +0x28,0x0,0xf5,0xff,0xdd,0xff,0xe0,0xff,0xe5,0xff,0xfa,0xff, +0x7,0x0,0x0,0x0,0x8,0x0,0x9,0x0,0x1,0x0,0x1b,0x0, +0x33,0x0,0x2c,0x0,0x2f,0x0,0x21,0x0,0xfa,0xff,0x5,0x0, +0x1d,0x0,0x1,0x0,0xeb,0xff,0xf9,0xff,0x6,0x0,0x1a,0x0, +0x2b,0x0,0x18,0x0,0xf1,0xff,0xe7,0xff,0x8,0x0,0x1f,0x0, +0x1,0x0,0xf9,0xff,0x33,0x0,0x48,0x0,0x14,0x0,0xe1,0xff, +0xd2,0xff,0xed,0xff,0x20,0x0,0x2c,0x0,0x1c,0x0,0x1c,0x0, +0xd,0x0,0xee,0xff,0xee,0xff,0x12,0x0,0x37,0x0,0x3a,0x0, +0x22,0x0,0x18,0x0,0xd,0x0,0xeb,0xff,0xf0,0xff,0x18,0x0, +0x12,0x0,0xfc,0xff,0xa,0x0,0x16,0x0,0x11,0x0,0x19,0x0, +0x22,0x0,0x16,0x0,0x5,0x0,0xd,0x0,0x2a,0x0,0x2a,0x0, +0xfd,0xff,0xdd,0xff,0xec,0xff,0x20,0x0,0x43,0x0,0x25,0x0, +0xa,0x0,0x31,0x0,0x35,0x0,0xeb,0xff,0xcd,0xff,0xf0,0xff, +0xa,0x0,0x24,0x0,0x3f,0x0,0x2f,0x0,0x5,0x0,0xec,0xff, +0xea,0xff,0xf7,0xff,0x1,0x0,0x1a,0x0,0x49,0x0,0x4c,0x0, +0xe,0x0,0xe1,0xff,0xf4,0xff,0x24,0x0,0x36,0x0,0xc,0x0, +0xde,0xff,0xf4,0xff,0x21,0x0,0x1a,0x0,0xfa,0xff,0xf3,0xff, +0x7,0x0,0x1c,0x0,0x2b,0x0,0x2d,0x0,0x13,0x0,0xf0,0xff, +0xee,0xff,0x2,0x0,0xc,0x0,0x1e,0x0,0x38,0x0,0x36,0x0, +0x20,0x0,0xc,0x0,0xf7,0xff,0xeb,0xff,0xed,0xff,0xf2,0xff, +0x9,0x0,0x36,0x0,0x46,0x0,0x1c,0x0,0xe6,0xff,0xde,0xff, +0xf1,0xff,0xf5,0xff,0x5,0x0,0x2b,0x0,0x25,0x0,0xf2,0xff, +0xe6,0xff,0x5,0x0,0x17,0x0,0x13,0x0,0xf,0x0,0x15,0x0, +0x23,0x0,0x2c,0x0,0x24,0x0,0x8,0x0,0xe5,0xff,0xe3,0xff, +0xa,0x0,0x23,0x0,0x15,0x0,0xfd,0xff,0xee,0xff,0xee,0xff, +0xfe,0xff,0xf,0x0,0x1b,0x0,0x23,0x0,0x1c,0x0,0x10,0x0, +0xe,0x0,0xfe,0xff,0xe7,0xff,0xf1,0xff,0x12,0x0,0x1c,0x0, +0x10,0x0,0xb,0x0,0x7,0x0,0xef,0xff,0xda,0xff,0xec,0xff, +0xf,0x0,0x1c,0x0,0x1c,0x0,0x19,0x0,0x9,0x0,0xf3,0xff, +0xf2,0xff,0x0,0x0,0x2,0x0,0xf9,0xff,0xf9,0xff,0xf8,0xff, +0xef,0xff,0xf5,0xff,0x0,0x0,0xf7,0xff,0xf6,0xff,0xc,0x0, +0x14,0x0,0x4,0x0,0xf8,0xff,0xf1,0xff,0xf9,0xff,0x1a,0x0, +0x2d,0x0,0x1a,0x0,0x1,0x0,0x0,0x0,0x4,0x0,0xe7,0xff, +0xbd,0xff,0xd1,0xff,0x1b,0x0,0x32,0x0,0x2,0x0,0xea,0xff, +0x9,0x0,0x1c,0x0,0xfa,0xff,0xd2,0xff,0xdb,0xff,0xfe,0xff, +0x9,0x0,0x6,0x0,0x8,0x0,0x1,0x0,0xef,0xff,0xf3,0xff, +0xc,0x0,0xe,0x0,0xf6,0xff,0xf6,0xff,0x2,0x0,0xe0,0xff, +0xbd,0xff,0xe6,0xff,0x19,0x0,0x1,0x0,0xe3,0xff,0x3,0x0, +0x20,0x0,0xff,0xff,0xd8,0xff,0xe3,0xff,0x4,0x0,0xf,0x0, +0x7,0x0,0xfe,0xff,0xfb,0xff,0xf3,0xff,0xdd,0xff,0xd2,0xff, +0xec,0xff,0x5,0x0,0x1,0x0,0xfc,0xff,0xfc,0xff,0xee,0xff, +0xea,0xff,0x3,0x0,0x11,0x0,0xfc,0xff,0xe5,0xff,0xf5,0xff, +0x1b,0x0,0xb,0x0,0xc1,0xff,0xa9,0xff,0xe2,0xff,0x13,0x0, +0xb,0x0,0xed,0xff,0xe3,0xff,0xfe,0xff,0x13,0x0,0xfb,0xff, +0xe7,0xff,0xf8,0xff,0x2,0x0,0xf9,0xff,0xf2,0xff,0xdc,0xff, +0xc6,0xff,0xf1,0xff,0x31,0x0,0x1b,0x0,0xd7,0xff,0xe2,0xff, +0x1e,0x0,0x9,0x0,0xbf,0xff,0xbe,0xff,0x2,0x0,0x28,0x0, +0x18,0x0,0xfd,0xff,0xf5,0xff,0xfa,0xff,0xf9,0xff,0xf2,0xff, +0xf0,0xff,0xec,0xff,0xe5,0xff,0xef,0xff,0xfd,0xff,0xf0,0xff, +0xda,0xff,0xe8,0xff,0xf,0x0,0x16,0x0,0xfc,0xff,0xfa,0xff, +0xc,0x0,0xfe,0xff,0xe1,0xff,0xe3,0xff,0xf4,0xff,0xf6,0xff, +0xf4,0xff,0xf9,0xff,0xf2,0xff,0xe1,0xff,0xe3,0xff,0xfd,0xff, +0x8,0x0,0xfa,0xff,0xf2,0xff,0xf9,0xff,0x4,0x0,0xa,0x0, +0xfd,0xff,0xeb,0xff,0xf7,0xff,0x6,0x0,0xf9,0xff,0xff,0xff, +0x19,0x0,0xff,0xff,0xc9,0xff,0xcc,0xff,0xf1,0xff,0xf0,0xff, +0xdb,0xff,0xe5,0xff,0xa,0x0,0x1e,0x0,0x11,0x0,0xfe,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0x1,0x0,0x0,0x0,0xf3,0xff, +0xe5,0xff,0xe8,0xff,0xf4,0xff,0xf3,0xff,0xe6,0xff,0xed,0xff, +0x1,0x0,0xf7,0xff,0xe4,0xff,0xfe,0xff,0x23,0x0,0xe,0x0, +0xdf,0xff,0xdb,0xff,0xf5,0xff,0xfd,0xff,0xfe,0xff,0x4,0x0, +0xf9,0xff,0xdf,0xff,0xe5,0xff,0x10,0x0,0x22,0x0,0xfb,0xff, +0xcf,0xff,0xe3,0xff,0x15,0x0,0x10,0x0,0xda,0xff,0xca,0xff, +0xf9,0xff,0x1e,0x0,0xd,0x0,0xf3,0xff,0xfa,0xff,0x4,0x0, +0xf3,0xff,0xe4,0xff,0xec,0xff,0xef,0xff,0xec,0xff,0xf7,0xff, +0x3,0x0,0x0,0x0,0x4,0x0,0xa,0x0,0xf3,0xff,0xce,0xff, +0xd0,0xff,0x6,0x0,0x35,0x0,0x1a,0x0,0xd4,0xff,0xc2,0xff, +0xea,0xff,0xff,0xff,0xf0,0xff,0xf1,0xff,0x9,0x0,0x4,0x0, +0xe3,0xff,0xe6,0xff,0x13,0x0,0x1a,0x0,0xf4,0xff,0xec,0xff, +0x7,0x0,0xd,0x0,0xf1,0xff,0xd9,0xff,0xe1,0xff,0xfb,0xff, +0x1,0x0,0x1,0x0,0xb,0x0,0xf9,0xff,0xce,0xff,0xd0,0xff, +0xfd,0xff,0x9,0x0,0xed,0xff,0xe2,0xff,0xff,0xff,0x20,0x0, +0x15,0x0,0xee,0xff,0xdf,0xff,0xe9,0xff,0xe9,0xff,0xec,0xff, +0x3,0x0,0xc,0x0,0xf8,0xff,0xe8,0xff,0xe9,0xff,0xe7,0xff, +0xec,0xff,0xc,0x0,0x22,0x0,0xfe,0xff,0xc8,0xff,0xcc,0xff, +0x7,0x0,0x25,0x0,0xfa,0xff,0xd8,0xff,0x4,0x0,0x2c,0x0, +0xfe,0xff,0xc5,0xff,0xd5,0xff,0x4,0x0,0xb,0x0,0xf0,0xff, +0xe9,0xff,0x4,0x0,0x9,0x0,0xea,0xff,0xe3,0xff,0xfc,0xff, +0xfe,0xff,0xf0,0xff,0xfe,0xff,0x13,0x0,0xd,0x0,0xf9,0xff, +0xf2,0xff,0xf0,0xff,0xe2,0xff,0xdf,0xff,0xf8,0xff,0xb,0x0, +0xff,0xff,0xef,0xff,0xec,0xff,0xeb,0xff,0xe7,0xff,0xec,0xff, +0xd,0x0,0x29,0x0,0x7,0x0,0xd5,0xff,0xed,0xff,0x1f,0x0, +0xd,0x0,0xe4,0xff,0xea,0xff,0x4,0x0,0xfc,0xff,0xdb,0xff, +0xd5,0xff,0xf7,0xff,0xc,0x0,0xfd,0xff,0xfb,0xff,0x13,0x0, +0x14,0x0,0xf6,0xff,0xec,0xff,0xfc,0xff,0xf8,0xff,0xde,0xff, +0xe1,0xff,0x4,0x0,0x11,0x0,0xf7,0xff,0xe9,0xff,0x3,0x0, +0x17,0x0,0x1,0x0,0xec,0xff,0xfb,0xff,0x6,0x0,0xf9,0xff, +0xf8,0xff,0xfc,0xff,0xef,0xff,0xf0,0xff,0xa,0x0,0x13,0x0, +0xf5,0xff,0xd4,0xff,0xe2,0xff,0x14,0x0,0x1d,0x0,0xf0,0xff, +0xe3,0xff,0x8,0x0,0x11,0x0,0xf0,0xff,0xe8,0xff,0x8,0x0, +0x17,0x0,0xfe,0xff,0xef,0xff,0xfe,0xff,0xfe,0xff,0xe8,0xff, +0xea,0xff,0x3,0x0,0xb,0x0,0x0,0x0,0xfb,0xff,0x9,0x0, +0x17,0x0,0xd,0x0,0xfc,0xff,0x0,0x0,0x4,0x0,0xf4,0xff, +0xe9,0xff,0xf3,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x9,0x0, +0x8,0x0,0x0,0x0,0x7,0x0,0x14,0x0,0x2,0x0,0xdf,0xff, +0xe4,0xff,0xc,0x0,0x18,0x0,0xfa,0xff,0xeb,0xff,0x8,0x0, +0x21,0x0,0x13,0x0,0x1,0x0,0x8,0x0,0xe,0x0,0xfb,0xff, +0xed,0xff,0x1,0x0,0x13,0x0,0xff,0xff,0xee,0xff,0x3,0x0, +0xd,0x0,0xf9,0xff,0xf7,0xff,0xb,0x0,0xc,0x0,0x3,0x0, +0xa,0x0,0xf,0x0,0xfb,0xff,0xe9,0xff,0xfe,0xff,0x23,0x0, +0x1c,0x0,0xf9,0xff,0xf8,0xff,0x10,0x0,0xd,0x0,0xfa,0xff, +0xfb,0xff,0xf,0x0,0x17,0x0,0x3,0x0,0xf6,0xff,0xf,0x0, +0x20,0x0,0x9,0x0,0xfb,0xff,0x4,0x0,0xfe,0xff,0xf3,0xff, +0x0,0x0,0x6,0x0,0xfd,0xff,0x2,0x0,0x14,0x0,0x1f,0x0, +0x1a,0x0,0xd,0x0,0xb,0x0,0x19,0x0,0x19,0x0,0xfe,0xff, +0xef,0xff,0x4,0x0,0x17,0x0,0xa,0x0,0xfd,0xff,0xa,0x0, +0xa,0x0,0xf4,0xff,0xfa,0xff,0x21,0x0,0x26,0x0,0x0,0x0, +0xf2,0xff,0xe,0x0,0x1c,0x0,0x4,0x0,0xf8,0xff,0xc,0x0, +0x10,0x0,0xf5,0xff,0xf7,0xff,0x1f,0x0,0x2c,0x0,0xe,0x0, +0xfc,0xff,0x14,0x0,0x26,0x0,0xc,0x0,0xef,0xff,0xfd,0xff, +0x11,0x0,0x3,0x0,0xfd,0xff,0xe,0x0,0x9,0x0,0xfa,0xff, +0x14,0x0,0x32,0x0,0x17,0x0,0xef,0xff,0x0,0x0,0x21,0x0, +0x16,0x0,0x0,0x0,0x10,0x0,0x23,0x0,0x9,0x0,0xd9,0xff, +0xd5,0xff,0x11,0x0,0x36,0x0,0xc,0x0,0xe7,0xff,0xc,0x0, +0x30,0x0,0x1e,0x0,0x8,0x0,0xa,0x0,0x10,0x0,0xd,0x0, +0x2,0x0,0xff,0xff,0xb,0x0,0xa,0x0,0x2,0x0,0xd,0x0, +0x11,0x0,0x2,0x0,0x7,0x0,0x17,0x0,0xe,0x0,0xff,0xff, +0x5,0x0,0x15,0x0,0x18,0x0,0x6,0x0,0xfb,0xff,0xd,0x0, +0x17,0x0,0xfe,0xff,0xf2,0xff,0xc,0x0,0x1e,0x0,0x12,0x0, +0x11,0x0,0x22,0x0,0x18,0x0,0xec,0xff,0xe8,0xff,0x12,0x0, +0x1c,0x0,0xf6,0xff,0xe7,0xff,0x2,0x0,0x19,0x0,0xb,0x0, +0xf5,0xff,0x6,0x0,0x28,0x0,0x1b,0x0,0xf3,0xff,0xf1,0xff, +0x11,0x0,0x24,0x0,0x1c,0x0,0x4,0x0,0xf6,0xff,0xfd,0xff, +0x6,0x0,0x0,0x0,0xf4,0xff,0xf2,0xff,0x6,0x0,0x19,0x0, +0xd,0x0,0xff,0xff,0x12,0x0,0x25,0x0,0xf,0x0,0xe7,0xff, +0xe3,0xff,0x4,0x0,0x13,0x0,0x1,0x0,0xfa,0xff,0xc,0x0, +0x18,0x0,0xe,0x0,0xfe,0xff,0xff,0xff,0xf,0x0,0x11,0x0, +0xfe,0xff,0xf7,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff, +0xfc,0xff,0x2,0x0,0x8,0x0,0xff,0xff,0xfd,0xff,0xf,0x0, +0x1a,0x0,0x12,0x0,0x9,0x0,0xc,0x0,0xd,0x0,0xfd,0xff, +0xec,0xff,0xf3,0xff,0xfc,0xff,0xf0,0xff,0xea,0xff,0x4,0x0, +0x1d,0x0,0x17,0x0,0xfd,0xff,0xf4,0xff,0x3,0x0,0xe,0x0, +0x8,0x0,0x6,0x0,0xe,0x0,0xe,0x0,0x3,0x0,0xf4,0xff, +0xea,0xff,0xf1,0xff,0x9,0x0,0x10,0x0,0xf7,0xff,0xe9,0xff, +0x0,0x0,0x12,0x0,0x7,0x0,0xfc,0xff,0x1,0x0,0xd,0x0, +0xc,0x0,0xf2,0xff,0xe8,0xff,0x8,0x0,0x1b,0x0,0x0,0x0, +0xef,0xff,0x2,0x0,0x18,0x0,0x13,0x0,0xf5,0xff,0xe4,0xff, +0xf6,0xff,0xb,0x0,0x6,0x0,0xfb,0xff,0xfc,0xff,0x3,0x0, +0x7,0x0,0x1,0x0,0xfd,0xff,0xfd,0xff,0xfb,0xff,0x3,0x0, +0x13,0x0,0xd,0x0,0x0,0x0,0x9,0x0,0xe,0x0,0xfd,0xff, +0xf1,0xff,0xf4,0xff,0xfc,0xff,0xfb,0xff,0xf4,0xff,0xfc,0xff, +0x8,0x0,0x3,0x0,0x4,0x0,0xd,0x0,0xff,0xff,0xf0,0xff, +0x3,0x0,0x1b,0x0,0x14,0x0,0xf5,0xff,0xde,0xff,0xef,0xff, +0xd,0x0,0x9,0x0,0xf6,0xff,0xfa,0xff,0x4,0x0,0x5,0x0, +0x3,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0xf9,0xff,0xef,0xff,0xf7,0xff,0xf7,0xff,0xef,0xff,0x0,0x0, +0x12,0x0,0xb,0x0,0x3,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfb,0xff,0x8,0x0,0x12,0x0,0x6,0x0,0xf8,0xff, +0xf2,0xff,0xf2,0xff,0xf9,0xff,0xfc,0xff,0xf8,0xff,0x0,0x0, +0x8,0x0,0x6,0x0,0x3,0x0,0xff,0xff,0x0,0x0,0xa,0x0, +0x9,0x0,0xfe,0xff,0xf8,0xff,0xf3,0xff,0xf6,0xff,0x4,0x0, +0x2,0x0,0xf9,0xff,0x1,0x0,0x7,0x0,0x0,0x0,0xfb,0xff, +0xf8,0xff,0xf5,0xff,0xfc,0xff,0x6,0x0,0x8,0x0,0x6,0x0, +0x0,0x0,0x2,0x0,0xd,0x0,0x7,0x0,0xf0,0xff,0xef,0xff, +0x9,0x0,0x15,0x0,0x5,0x0,0xf7,0xff,0xfa,0xff,0xf5,0xff, +0xec,0xff,0xf5,0xff,0x4,0x0,0x2,0x0,0xfd,0xff,0x2,0x0, +0x6,0x0,0x5,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0xfd,0xff, +0xf7,0xff,0x4,0x0,0x9,0x0,0xf6,0xff,0xf0,0xff,0x2,0x0, +0x8,0x0,0xfb,0xff,0xf7,0xff,0x1,0x0,0x6,0x0,0x0,0x0, +0xfa,0xff,0x0,0x0,0xe,0x0,0x11,0x0,0x7,0x0,0xfe,0xff, +0xf8,0xff,0xf2,0xff,0xf3,0xff,0xf7,0xff,0xf5,0xff,0xfb,0xff, +0xd,0x0,0x14,0x0,0xb,0x0,0x2,0x0,0xfb,0xff,0xfb,0xff, +0x5,0x0,0x7,0x0,0xff,0xff,0xff,0xff,0x5,0x0,0x3,0x0, +0xfb,0xff,0xfb,0xff,0x2,0x0,0x1,0x0,0xf7,0xff,0xf7,0xff, +0x2,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x5,0x0,0x6,0x0, +0x2,0x0,0xfc,0xff,0x6,0x0,0x6,0x0,0xf2,0xff,0xf7,0xff, +0xc,0x0,0x5,0x0,0xff,0xff,0xe,0x0,0xe,0x0,0xf9,0xff, +0xee,0xff,0xf6,0xff,0x6,0x0,0x7,0x0,0xfd,0xff,0x2,0x0, +0x10,0x0,0xd,0x0,0x6,0x0,0x1,0x0,0xf7,0xff,0xf8,0xff, +0x6,0x0,0x10,0x0,0xf,0x0,0xfe,0xff,0xed,0xff,0xfc,0xff, +0xb,0x0,0xfd,0xff,0xf5,0xff,0x2,0x0,0x5,0x0,0x3,0x0, +0x8,0x0,0xd,0x0,0xe,0x0,0xc,0x0,0xa,0x0,0xa,0x0, +0x3,0x0,0xf7,0xff,0xf3,0xff,0xf3,0xff,0xf5,0xff,0x0,0x0, +0x9,0x0,0xe,0x0,0x12,0x0,0x8,0x0,0xf8,0xff,0xfb,0xff, +0x9,0x0,0x11,0x0,0x13,0x0,0xb,0x0,0xff,0xff,0xf9,0xff, +0xf7,0xff,0xfa,0xff,0xfd,0xff,0xf7,0xff,0xf9,0xff,0x10,0x0, +0x1b,0x0,0xb,0x0,0xfd,0xff,0x0,0x0,0xd,0x0,0x18,0x0, +0xd,0x0,0xf8,0xff,0xf3,0xff,0xf6,0xff,0xf8,0xff,0x4,0x0, +0xf,0x0,0x8,0x0,0x1,0x0,0x6,0x0,0x7,0x0,0xfb,0xff, +0xf5,0xff,0xff,0xff,0xd,0x0,0x11,0x0,0x10,0x0,0x9,0x0, +0x0,0x0,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x5,0x0,0xf,0x0,0x9,0x0,0xf2,0xff,0xf6,0xff,0x15,0x0, +0x1d,0x0,0x5,0x0,0xee,0xff,0xec,0xff,0x0,0x0,0xf,0x0, +0x2,0x0,0xfb,0xff,0xf,0x0,0x1b,0x0,0xd,0x0,0xfc,0xff, +0xf5,0xff,0xf6,0xff,0x6,0x0,0x16,0x0,0x10,0x0,0xfc,0xff, +0xf6,0xff,0xf8,0xff,0xf2,0xff,0xf2,0xff,0x2,0x0,0x11,0x0, +0xf,0x0,0x7,0x0,0x5,0x0,0xd,0x0,0x10,0x0,0xff,0xff, +0xf3,0xff,0x5,0x0,0xc,0x0,0xf4,0xff,0xe7,0xff,0xf8,0xff, +0x6,0x0,0x3,0x0,0x2,0x0,0xd,0x0,0x19,0x0,0x10,0x0, +0xfc,0xff,0xf4,0xff,0xf8,0xff,0x5,0x0,0x16,0x0,0x11,0x0, +0xf7,0xff,0xee,0xff,0xf8,0xff,0xf9,0xff,0xf6,0xff,0xf9,0xff, +0x5,0x0,0x11,0x0,0x11,0x0,0x7,0x0,0x5,0x0,0x5,0x0, +0xfd,0xff,0xfc,0xff,0x4,0x0,0x7,0x0,0xfa,0xff,0xe9,0xff, +0xee,0xff,0x7,0x0,0x11,0x0,0x6,0x0,0xfd,0xff,0xfc,0xff, +0x0,0x0,0x3,0x0,0xfb,0xff,0xfa,0xff,0xb,0x0,0x13,0x0, +0x5,0x0,0xf8,0xff,0xfb,0xff,0x1,0x0,0xfb,0xff,0xf0,0xff, +0xf6,0xff,0x6,0x0,0xc,0x0,0x9,0x0,0x2,0x0,0xf8,0xff, +0xfa,0xff,0x6,0x0,0x3,0x0,0xf8,0xff,0xf8,0xff,0xfd,0xff, +0xfe,0xff,0xfb,0xff,0xfe,0xff,0xc,0x0,0x14,0x0,0x2,0x0, +0xf2,0xff,0xfa,0xff,0x2,0x0,0xfb,0xff,0xf5,0xff,0xfb,0xff, +0x6,0x0,0x8,0x0,0xfd,0xff,0xee,0xff,0xeb,0xff,0xfb,0xff, +0xd,0x0,0xd,0x0,0x5,0x0,0x0,0x0,0x0,0x0,0x5,0x0, +0x3,0x0,0xf4,0xff,0xef,0xff,0xfc,0xff,0xfc,0xff,0xf7,0xff, +0xfe,0xff,0xfe,0xff,0xfa,0xff,0x5,0x0,0x9,0x0,0xfc,0xff, +0xfd,0xff,0x8,0x0,0x0,0x0,0xf4,0xff,0xfb,0xff,0x8,0x0, +0x8,0x0,0xff,0xff,0xfb,0xff,0xf9,0xff,0xf3,0xff,0xed,0xff, +0xf2,0xff,0xfc,0xff,0x4,0x0,0x6,0x0,0x7,0x0,0xc,0x0, +0xb,0x0,0xff,0xff,0xf5,0xff,0xf3,0xff,0xf3,0xff,0xf6,0xff, +0x0,0x0,0x1,0x0,0xf5,0xff,0xf6,0xff,0x8,0x0,0x10,0x0, +0xfe,0xff,0xee,0xff,0xf7,0xff,0x8,0x0,0x5,0x0,0xfc,0xff, +0xfd,0xff,0xfa,0xff,0xf4,0xff,0xfd,0xff,0x7,0x0,0x2,0x0, +0xfb,0xff,0xf9,0xff,0xf7,0xff,0x0,0x0,0x3,0x0,0xf9,0xff, +0xfc,0xff,0x4,0x0,0xfb,0xff,0xf1,0xff,0xf6,0xff,0xfc,0xff, +0x1,0x0,0x4,0x0,0x3,0x0,0x5,0x0,0x6,0x0,0x3,0x0, +0xff,0xff,0xf0,0xff,0xe1,0xff,0xf4,0xff,0xe,0x0,0xc,0x0, +0xfe,0xff,0xf7,0xff,0xf8,0xff,0x1,0x0,0xff,0xff,0xf3,0xff, +0xf8,0xff,0x1,0x0,0xff,0xff,0x4,0x0,0x8,0x0,0xfe,0xff, +0xfc,0xff,0x2,0x0,0x3,0x0,0x0,0x0,0xf5,0xff,0xf0,0xff, +0xf8,0xff,0xf7,0xff,0xf2,0xff,0x5,0x0,0x14,0x0,0xa,0x0, +0xfa,0xff,0xf4,0xff,0xf9,0xff,0x1,0x0,0xfc,0xff,0xfc,0xff, +0x6,0x0,0xff,0xff,0xf9,0xff,0x2,0x0,0xfe,0xff,0xf6,0xff, +0xfd,0xff,0xfc,0xff,0xf4,0xff,0xff,0xff,0xd,0x0,0xa,0x0, +0xff,0xff,0xf3,0xff,0xf6,0xff,0x7,0x0,0xa,0x0,0xf7,0xff, +0xe9,0xff,0xfa,0xff,0x12,0x0,0x8,0x0,0xf6,0xff,0x1,0x0, +0x9,0x0,0xfa,0xff,0xef,0xff,0xf1,0xff,0x0,0x0,0x11,0x0, +0x5,0x0,0xf2,0xff,0xfe,0xff,0xa,0x0,0x3,0x0,0xfe,0xff, +0xf8,0xff,0xf9,0xff,0x3,0x0,0xfe,0xff,0xfb,0xff,0x2,0x0, +0xf8,0xff,0xfa,0xff,0xb,0x0,0xfe,0xff,0xf3,0xff,0x3,0x0, +0xfc,0xff,0xf0,0xff,0x0,0x0,0x12,0x0,0x19,0x0,0xa,0x0, +0xf1,0xff,0xfc,0xff,0x8,0x0,0xec,0xff,0xeb,0xff,0x8,0x0, +0x5,0x0,0xfd,0xff,0xfb,0xff,0xf7,0xff,0xf,0x0,0x11,0x0, +0xe5,0xff,0xee,0xff,0x17,0x0,0xd,0x0,0x3,0x0,0x4,0x0, +0xef,0xff,0xfa,0xff,0xf,0x0,0xfb,0xff,0xf7,0xff,0xff,0xff, +0xf3,0xff,0xfc,0xff,0x2,0x0,0xf6,0xff,0xf,0x0,0x1a,0x0, +0xf5,0xff,0xf6,0xff,0x9,0x0,0xfd,0xff,0xff,0xff,0x0,0x0, +0xf1,0xff,0x8,0x0,0x14,0x0,0xfc,0xff,0x0,0x0,0x4,0x0, +0xf2,0xff,0xfa,0xff,0xfc,0xff,0xf1,0xff,0xc,0x0,0x11,0x0, +0xf0,0xff,0xfc,0xff,0x12,0x0,0xb,0x0,0x5,0x0,0xf6,0xff, +0xee,0xff,0xb,0x0,0xf,0x0,0xf8,0xff,0x3,0x0,0x9,0x0, +0xf9,0xff,0xfb,0xff,0xfe,0xff,0xfd,0xff,0x3,0x0,0xf2,0xff, +0xf0,0xff,0x14,0x0,0x14,0x0,0xf9,0xff,0xfe,0xff,0x4,0x0, +0x3,0x0,0x10,0x0,0x4,0x0,0xec,0xff,0xf8,0xff,0x9,0x0, +0x3,0x0,0xfb,0xff,0xfd,0xff,0x5,0x0,0x7,0x0,0xf7,0xff, +0xec,0xff,0xfa,0xff,0x12,0x0,0x19,0x0,0x6,0x0,0xf7,0xff, +0x8,0x0,0x15,0x0,0x1,0x0,0xec,0xff,0xef,0xff,0xfe,0xff, +0x3,0x0,0xfd,0xff,0x1,0x0,0xa,0x0,0x2,0x0,0xf9,0xff, +0xff,0xff,0x7,0x0,0xd,0x0,0x8,0x0,0xf8,0xff,0xfd,0xff, +0xf,0x0,0x8,0x0,0xfa,0xff,0xf9,0xff,0xfa,0xff,0x0,0x0, +0x3,0x0,0xf7,0xff,0xf6,0xff,0x1,0x0,0xb,0x0,0x13,0x0, +0x6,0x0,0xf8,0xff,0x7,0x0,0x8,0x0,0xf3,0xff,0xfc,0xff, +0x3,0x0,0xf4,0xff,0xfc,0xff,0xb,0x0,0x6,0x0,0xf,0x0, +0x11,0x0,0xff,0xff,0xfd,0xff,0xf9,0xff,0xeb,0xff,0xfd,0xff, +0x12,0x0,0xc,0x0,0x7,0x0,0xff,0xff,0xf1,0xff,0xfa,0xff, +0x0,0x0,0xfb,0xff,0xb,0x0,0x12,0x0,0x8,0x0,0xd,0x0, +0x9,0x0,0xf0,0xff,0xed,0xff,0xfa,0xff,0x8,0x0,0x14,0x0, +0xb,0x0,0xf6,0xff,0xf4,0xff,0xf6,0xff,0xfe,0xff,0x14,0x0, +0x13,0x0,0x2,0x0,0xb,0x0,0x11,0x0,0xfa,0xff,0xe6,0xff, +0xe6,0xff,0xfd,0xff,0x18,0x0,0x11,0x0,0xf8,0xff,0xfb,0xff, +0xfa,0xff,0xdd,0xff,0xda,0xff,0x11,0x0,0x46,0x0,0x39,0x0, +0x5,0x0,0xf7,0xff,0x5,0x0,0xf5,0xff,0xe2,0xff,0xff,0xff, +0x1f,0x0,0x12,0x0,0xf3,0xff,0xe4,0xff,0xe9,0xff,0xfc,0xff, +0x7,0x0,0x2,0x0,0x7,0x0,0x1b,0x0,0x23,0x0,0x10,0x0, +0xe7,0xff,0xc9,0xff,0xec,0xff,0x36,0x0,0x3c,0x0,0xf7,0xff, +0xd5,0xff,0xf1,0xff,0xff,0xff,0xe5,0xff,0xe5,0xff,0x1b,0x0, +0x3f,0x0,0x1b,0x0,0xf4,0xff,0x1,0x0,0x4,0x0,0xe0,0xff, +0xd5,0xff,0x3,0x0,0x36,0x0,0x33,0x0,0xfd,0xff,0xd6,0xff, +0xe6,0xff,0x0,0x0,0x4,0x0,0xe,0x0,0x24,0x0,0x21,0x0, +0xfb,0xff,0xd7,0xff,0xd7,0xff,0xf5,0xff,0x16,0x0,0x21,0x0, +0xa,0x0,0xee,0xff,0xff,0xff,0x25,0x0,0x15,0x0,0xe2,0xff, +0xe2,0xff,0x15,0x0,0x34,0x0,0x18,0x0,0xe3,0xff,0xd4,0xff, +0xe9,0xff,0xed,0xff,0xf1,0xff,0x1a,0x0,0x34,0x0,0xf,0x0, +0xea,0xff,0xff,0xff,0x1d,0x0,0x6,0x0,0xdf,0xff,0xf7,0xff, +0x35,0x0,0x2f,0x0,0xe9,0xff,0xcd,0xff,0xf0,0xff,0x7,0x0, +0xfd,0xff,0xfa,0xff,0x5,0x0,0xd,0x0,0x11,0x0,0x11,0x0, +0x4,0x0,0xfd,0xff,0x12,0x0,0x2e,0x0,0x1f,0x0,0xe3,0xff, +0xc2,0xff,0xe2,0xff,0xa,0x0,0xfc,0xff,0xd9,0xff,0xe5,0xff, +0x16,0x0,0x2b,0x0,0x14,0x0,0x4,0x0,0x9,0x0,0x5,0x0, +0x5,0x0,0x1f,0x0,0x23,0x0,0xf3,0xff,0xd1,0xff,0xe5,0xff, +0xff,0xff,0xf4,0xff,0xdc,0xff,0xef,0xff,0x28,0x0,0x37,0x0, +0x1,0x0,0xda,0xff,0xf4,0xff,0x1c,0x0,0x1d,0x0,0x7,0x0, +0xfe,0xff,0xfc,0xff,0xee,0xff,0xed,0xff,0x1,0x0,0xfa,0xff, +0xe8,0xff,0x5,0x0,0x2b,0x0,0x16,0x0,0xe6,0xff,0xd8,0xff, +0xf6,0xff,0x19,0x0,0x16,0x0,0x0,0x0,0x1,0x0,0x7,0x0, +0xfe,0xff,0xf9,0xff,0xee,0xff,0xdc,0xff,0xeb,0xff,0x1d,0x0, +0x3c,0x0,0x23,0x0,0xe8,0xff,0xd9,0xff,0x4,0x0,0x11,0x0, +0xe8,0xff,0xe5,0xff,0x13,0x0,0x21,0x0,0xf9,0xff,0xd0,0xff, +0xd4,0xff,0xff,0xff,0x25,0x0,0x2d,0x0,0x1d,0x0,0xfe,0xff, +0xe8,0xff,0xf7,0xff,0xf,0x0,0x2,0x0,0xda,0xff,0xd8,0xff, +0x8,0x0,0x20,0x0,0xf4,0xff,0xd0,0xff,0xec,0xff,0x17,0x0, +0x1d,0x0,0x17,0x0,0x16,0x0,0xe,0x0,0x0,0x0,0xfb,0xff, +0xf6,0xff,0xe2,0xff,0xd4,0xff,0xf5,0xff,0x27,0x0,0x19,0x0, +0xd9,0xff,0xcd,0xff,0x6,0x0,0x27,0x0,0xe,0x0,0xf5,0xff, +0xfe,0xff,0x11,0x0,0x11,0x0,0x0,0x0,0xf5,0xff,0xf7,0xff, +0xfb,0xff,0x3,0x0,0xb,0x0,0xf7,0xff,0xda,0xff,0xeb,0xff, +0x13,0x0,0x14,0x0,0xf4,0xff,0xef,0xff,0x11,0x0,0x23,0x0, +0x4,0x0,0xe1,0xff,0xeb,0xff,0xc,0x0,0x1a,0x0,0x8,0x0, +0xea,0xff,0xe0,0xff,0xf0,0xff,0x3,0x0,0x11,0x0,0xa,0x0, +0xea,0xff,0xe7,0xff,0x16,0x0,0x2f,0x0,0x5,0x0,0xd3,0xff, +0xdc,0xff,0x9,0x0,0x18,0x0,0x3,0x0,0xf8,0xff,0xfb,0xff, +0xfc,0xff,0x0,0x0,0x2,0x0,0xfa,0xff,0xfa,0xff,0x6,0x0, +0xd,0x0,0xff,0xff,0xde,0xff,0xd8,0xff,0x4,0x0,0x21,0x0, +0x9,0x0,0xf3,0xff,0x9,0x0,0x27,0x0,0x19,0x0,0xe8,0xff, +0xd1,0xff,0xec,0xff,0xc,0x0,0x1a,0x0,0x10,0x0,0xec,0xff, +0xd6,0xff,0xf1,0xff,0x12,0x0,0x9,0x0,0xed,0xff,0xf1,0xff, +0x1e,0x0,0x38,0x0,0x12,0x0,0xde,0xff,0xd7,0xff,0xf3,0xff, +0xd,0x0,0xc,0x0,0x1,0x0,0x5,0x0,0xff,0xff,0xe4,0xff, +0xe1,0xff,0xee,0xff,0xf3,0xff,0xa,0x0,0x29,0x0,0x1c,0x0, +0xf1,0xff,0xda,0xff,0xef,0xff,0x1a,0x0,0x20,0x0,0x1,0x0, +0xf5,0xff,0x4,0x0,0x9,0x0,0xfd,0xff,0xec,0xff,0xe2,0xff, +0xeb,0xff,0x0,0x0,0x18,0x0,0x1d,0x0,0x3,0x0,0xed,0xff, +0xf9,0xff,0x6,0x0,0x0,0x0,0xfb,0xff,0xf,0x0,0x2c,0x0, +0x19,0x0,0xdc,0xff,0xce,0xff,0xfb,0xff,0x13,0x0,0x6,0x0, +0xf5,0xff,0xec,0xff,0xf3,0xff,0x6,0x0,0x12,0x0,0x12,0x0, +0x2,0x0,0xf4,0xff,0x6,0x0,0x21,0x0,0x16,0x0,0xf1,0xff, +0xe0,0xff,0xf7,0xff,0x10,0x0,0xff,0xff,0xe6,0xff,0xee,0xff, +0xf8,0xff,0xfa,0xff,0xa,0x0,0x11,0x0,0x2,0x0,0xfe,0xff, +0xd,0x0,0x17,0x0,0xa,0x0,0xf1,0xff,0xf4,0xff,0xb,0x0, +0x5,0x0,0xec,0xff,0xeb,0xff,0xfb,0xff,0x8,0x0,0x3,0x0, +0xf1,0xff,0xfa,0xff,0x18,0x0,0x1e,0x0,0xc,0x0,0xf7,0xff, +0xeb,0xff,0xfa,0xff,0x12,0x0,0xc,0x0,0xf3,0xff,0xeb,0xff, +0xff,0xff,0x18,0x0,0x9,0x0,0xe7,0xff,0xee,0xff,0x13,0x0, +0x1d,0x0,0x12,0x0,0x7,0x0,0xff,0xff,0xf6,0xff,0xea,0xff, +0xe8,0xff,0xf6,0xff,0xfc,0xff,0xf5,0xff,0xfd,0xff,0x11,0x0, +0x16,0x0,0x3,0x0,0xf0,0xff,0xfd,0xff,0x19,0x0,0x1e,0x0, +0x16,0x0,0xc,0x0,0xf6,0xff,0xe2,0xff,0xdd,0xff,0xdf,0xff, +0xec,0xff,0x5,0x0,0x16,0x0,0x16,0x0,0x4,0x0,0xf3,0xff, +0xfe,0xff,0x10,0x0,0xc,0x0,0x6,0x0,0x12,0x0,0x17,0x0, +0xfc,0xff,0xd2,0xff,0xc4,0xff,0xe0,0xff,0x1,0x0,0xb,0x0, +0x9,0x0,0xe,0x0,0x17,0x0,0xe,0x0,0xfa,0xff,0xfd,0xff, +0x10,0x0,0xf,0x0,0x9,0x0,0x12,0x0,0xb,0x0,0xe6,0xff, +0xca,0xff,0xcd,0xff,0xed,0xff,0x11,0x0,0x1b,0x0,0xa,0x0, +0xfc,0xff,0xfd,0xff,0x9,0x0,0x17,0x0,0x19,0x0,0x10,0x0, +0xc,0x0,0xb,0x0,0xfd,0xff,0xe8,0xff,0xdf,0xff,0xe6,0xff, +0xf1,0xff,0xfb,0xff,0x5,0x0,0xf,0x0,0xf,0x0,0x2,0x0, +0xfe,0xff,0xd,0x0,0x1d,0x0,0x22,0x0,0x14,0x0,0xf7,0xff, +0xe4,0xff,0xe7,0xff,0xf3,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff, +0x3,0x0,0xb,0x0,0x5,0x0,0xc,0x0,0x14,0x0,0x9,0x0, +0x6,0x0,0x11,0x0,0xd,0x0,0x4,0x0,0xf3,0xff,0xda,0xff, +0xe1,0xff,0x6,0x0,0x14,0x0,0xc,0x0,0x2,0x0,0xff,0xff, +0xb,0x0,0x6,0x0,0xef,0xff,0xf9,0xff,0x15,0x0,0x13,0x0, +0x5,0x0,0xf3,0xff,0xe4,0xff,0xf5,0xff,0xa,0x0,0x6,0x0, +0x1,0x0,0x2,0x0,0x9,0x0,0x19,0x0,0x12,0x0,0xf5,0xff, +0xf4,0xff,0xff,0xff,0xfe,0xff,0x2,0x0,0x2,0x0,0xfb,0xff, +0xff,0xff,0xf6,0xff,0xeb,0xff,0xf9,0xff,0x4,0x0,0x7,0x0, +0x1b,0x0,0x25,0x0,0xe,0x0,0xf3,0xff,0xeb,0xff,0xfa,0xff, +0x9,0x0,0xfb,0xff,0xeb,0xff,0xf1,0xff,0xfb,0xff,0xfd,0xff, +0xee,0xff,0xe3,0xff,0x8,0x0,0x37,0x0,0x33,0x0,0x1c,0x0, +0x10,0x0,0xa,0x0,0x4,0x0,0xf0,0xff,0xd7,0xff,0xda,0xff, +0xe8,0xff,0xf2,0xff,0xfd,0xff,0xf4,0xff,0xe9,0xff,0xfd,0xff, +0x18,0x0,0x2f,0x0,0x3f,0x0,0x27,0x0,0x1,0x0,0xf8,0xff, +0xf2,0xff,0xe9,0xff,0xe8,0xff,0xe2,0xff,0xf4,0xff,0x13,0x0, +0xff,0xff,0xe1,0xff,0xe4,0xff,0xf1,0xff,0x1b,0x0,0x4a,0x0, +0x34,0x0,0x5,0x0,0xf1,0xff,0xde,0xff,0xe5,0xff,0x0,0x0, +0xf8,0xff,0xf5,0xff,0x7,0x0,0xff,0xff,0xf7,0xff,0x1,0x0, +0xfe,0xff,0xb,0x0,0x21,0x0,0x1e,0x0,0x26,0x0,0x2f,0x0, +0x14,0x0,0xee,0xff,0xbb,0xff,0x91,0xff,0xc6,0xff,0x24,0x0, +0x2b,0x0,0xe6,0xff,0xa2,0xff,0xa6,0xff,0xc,0x0,0x66,0x0, +0x61,0x0,0x38,0x0,0x21,0x0,0x25,0x0,0x33,0x0,0xf,0x0, +0xc7,0xff,0xb0,0xff,0xc8,0xff,0xeb,0xff,0xe,0x0,0x14,0x0, +0xfc,0xff,0xed,0xff,0xee,0xff,0x3,0x0,0x2c,0x0,0x4b,0x0, +0x44,0x0,0xf,0x0,0xc8,0xff,0xac,0xff,0xc5,0xff,0xec,0xff, +0x7,0x0,0xf5,0xff,0xc8,0xff,0xd6,0xff,0x22,0x0,0x51,0x0, +0x36,0x0,0xee,0xff,0xda,0xff,0x21,0x0,0x52,0x0,0x20,0x0, +0xd1,0xff,0xb1,0xff,0xcb,0xff,0xf8,0xff,0x1,0x0,0xf8,0xff, +0xfd,0xff,0xf3,0xff,0xed,0xff,0xe,0x0,0x25,0x0,0x26,0x0, +0x29,0x0,0x15,0x0,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0x0,0x0,0xe2,0xff,0xd4,0xff,0xef,0xff,0xf9,0xff,0xf7,0xff, +0x9,0x0,0xc,0x0,0x13,0x0,0x32,0x0,0x3b,0x0,0x2a,0x0, +0x2,0x0,0xba,0xff,0xa5,0xff,0xe7,0xff,0x1f,0x0,0x16,0x0, +0xf1,0xff,0xe1,0xff,0x3,0x0,0x29,0x0,0x1e,0x0,0xe,0x0, +0x13,0x0,0x13,0x0,0x19,0x0,0x1a,0x0,0xf2,0xff,0xc3,0xff, +0xb5,0xff,0xc4,0xff,0xeb,0xff,0x12,0x0,0x29,0x0,0x40,0x0, +0x43,0x0,0x17,0x0,0xee,0xff,0xf6,0xff,0x15,0x0,0x22,0x0, +0x8,0x0,0xd6,0xff,0xbb,0xff,0xcd,0xff,0xee,0xff,0xfa,0xff, +0xe8,0xff,0xe3,0xff,0x1a,0x0,0x66,0x0,0x6e,0x0,0x1f,0x0, +0xd4,0xff,0xd6,0xff,0x3,0x0,0x12,0x0,0xfa,0xff,0xe4,0xff, +0xe9,0xff,0xf9,0xff,0xef,0xff,0xcd,0xff,0xc4,0xff,0xe8,0xff, +0x21,0x0,0x4a,0x0,0x4a,0x0,0x30,0x0,0x20,0x0,0x13,0x0, +0xee,0xff,0xc5,0xff,0xcc,0xff,0x4,0x0,0x23,0x0,0xf3,0xff, +0xb7,0xff,0xc3,0xff,0xfb,0xff,0x17,0x0,0x11,0x0,0xa,0x0, +0x20,0x0,0x42,0x0,0x47,0x0,0x28,0x0,0xef,0xff,0xb3,0xff, +0xad,0xff,0xe8,0xff,0x15,0x0,0x3,0x0,0xe1,0xff,0xdf,0xff, +0xfd,0xff,0x1d,0x0,0x26,0x0,0x22,0x0,0x23,0x0,0x1c,0x0, +0xf,0x0,0x8,0x0,0xf2,0xff,0xcf,0xff,0xbf,0xff,0xd1,0xff, +0xf3,0xff,0xf,0x0,0x1b,0x0,0x1f,0x0,0x1a,0x0,0x7,0x0, +0xfb,0xff,0xa,0x0,0x14,0x0,0x0,0x0,0xe4,0xff,0xe0,0xff, +0xfb,0xff,0x11,0x0,0x2,0x0,0xe8,0xff,0xe2,0xff,0xe9,0xff, +0x3,0x0,0x32,0x0,0x44,0x0,0x24,0x0,0xfa,0xff,0xed,0xff, +0xfa,0xff,0x1,0x0,0xe4,0xff,0xca,0xff,0xde,0xff,0x6,0x0, +0x20,0x0,0x1f,0x0,0xfe,0xff,0xe0,0xff,0xec,0xff,0x13,0x0, +0x2b,0x0,0x27,0x0,0x19,0x0,0x18,0x0,0xd,0x0,0xe1,0xff, +0xbe,0xff,0xcc,0xff,0xee,0xff,0x3,0x0,0x8,0x0,0x1,0x0, +0x3,0x0,0xc,0x0,0x4,0x0,0xfd,0xff,0xb,0x0,0x24,0x0, +0x3d,0x0,0x3c,0x0,0x7,0x0,0xc6,0xff,0xb1,0xff,0xc6,0xff, +0xe8,0xff,0xfe,0xff,0x5,0x0,0x19,0x0,0x34,0x0,0x26,0x0, +0xfa,0xff,0xe4,0xff,0xef,0xff,0x5,0x0,0x1a,0x0,0x27,0x0, +0x1d,0x0,0xfa,0xff,0xd3,0xff,0xc7,0xff,0xd4,0xff,0xe7,0xff, +0x3,0x0,0x29,0x0,0x3e,0x0,0x25,0x0,0xf3,0xff,0xdb,0xff, +0xe6,0xff,0xf6,0xff,0xf8,0xff,0xfb,0xff,0xd,0x0,0x17,0x0, +0x8,0x0,0xf2,0xff,0xe4,0xff,0xdf,0xff,0xf3,0xff,0x1b,0x0, +0x2a,0x0,0x14,0x0,0xf0,0xff,0xd7,0xff,0xde,0xff,0xfc,0xff, +0xe,0x0,0x16,0x0,0x20,0x0,0x1e,0x0,0x17,0x0,0x11,0x0, +0xfd,0xff,0xeb,0xff,0xec,0xff,0xf0,0xff,0xfd,0xff,0x13,0x0, +0xc,0x0,0xf0,0xff,0xe0,0xff,0xd6,0xff,0xdb,0xff,0x1,0x0, +0x25,0x0,0x26,0x0,0x10,0x0,0xfd,0xff,0x3,0x0,0x14,0x0, +0xb,0x0,0xf3,0xff,0xe7,0xff,0xe1,0xff,0xe9,0xff,0xff,0xff, +0x6,0x0,0xfc,0xff,0xf4,0xff,0xef,0xff,0xfa,0xff,0x15,0x0, +0x1e,0x0,0x15,0x0,0x19,0x0,0x1f,0x0,0x1a,0x0,0xc,0x0, +0xee,0xff,0xd5,0xff,0xde,0xff,0xf3,0xff,0xf9,0xff,0xfa,0xff, +0xff,0xff,0x6,0x0,0x11,0x0,0x17,0x0,0x14,0x0,0x18,0x0, +0x15,0x0,0x6,0x0,0x6,0x0,0xd,0x0,0xf4,0xff,0xd0,0xff, +0xca,0xff,0xe6,0xff,0x13,0x0,0x31,0x0,0x24,0x0,0xb,0x0, +0x7,0x0,0xfd,0xff,0xed,0xff,0xf4,0xff,0x11,0x0,0x21,0x0, +0x6,0x0,0xd8,0xff,0xdc,0xff,0x4,0x0,0x7,0x0,0xec,0xff, +0xe7,0xff,0x3,0x0,0x34,0x0,0x4a,0x0,0x1c,0x0,0xe4,0xff, +0xda,0xff,0xe8,0xff,0xf6,0xff,0xfd,0xff,0xf7,0xff,0xfc,0xff, +0xe,0x0,0xb,0x0,0xfc,0xff,0xfb,0xff,0x0,0x0,0xc,0x0, +0x19,0x0,0x14,0x0,0xd,0x0,0xe,0x0,0xfb,0xff,0xe0,0xff, +0xda,0xff,0xe4,0xff,0xf7,0xff,0x10,0x0,0x19,0x0,0x8,0x0, +0xf1,0xff,0xed,0xff,0x7,0x0,0x26,0x0,0x28,0x0,0xf,0x0, +0x0,0x0,0xa,0x0,0x9,0x0,0xde,0xff,0xb6,0xff,0xc2,0xff, +0xed,0xff,0xb,0x0,0x1b,0x0,0x2d,0x0,0x31,0x0,0x10,0x0, +0xe8,0xff,0xe6,0xff,0x5,0x0,0x26,0x0,0x2c,0x0,0x1,0x0, +0xcd,0xff,0xc5,0xff,0xd6,0xff,0xe4,0xff,0xf3,0xff,0x2,0x0, +0x16,0x0,0x36,0x0,0x3e,0x0,0x26,0x0,0x8,0x0,0xe6,0xff, +0xd0,0xff,0xe3,0xff,0x1,0x0,0xe,0x0,0xfe,0xff,0xbf,0xff, +0x8e,0xff,0xbc,0xff,0x1d,0x0,0x5b,0x0,0x5b,0x0,0x22,0x0, +0xef,0xff,0x0,0x0,0x27,0x0,0x24,0x0,0xf9,0xff,0xcf,0xff, +0xd8,0xff,0x5,0x0,0x10,0x0,0xed,0xff,0xd0,0xff,0xcc,0xff, +0xe4,0xff,0xf,0x0,0x36,0x0,0x52,0x0,0x44,0x0,0xf7,0xff, +0xb6,0xff,0xce,0xff,0xf,0x0,0x29,0x0,0x0,0x0,0xb5,0xff, +0x94,0xff,0xca,0xff,0x21,0x0,0x46,0x0,0x24,0x0,0xf4,0xff, +0x0,0x0,0x38,0x0,0x4b,0x0,0x1d,0x0,0xe0,0xff,0xcc,0xff, +0xe4,0xff,0xff,0xff,0xfd,0xff,0xdc,0xff,0xbf,0xff,0xc6,0xff, +0xed,0xff,0x1c,0x0,0x46,0x0,0x59,0x0,0x41,0x0,0x12,0x0, +0xef,0xff,0xe8,0xff,0x8,0x0,0x25,0x0,0x3,0x0,0xc5,0xff, +0xbd,0xff,0xee,0xff,0x10,0x0,0xf9,0xff,0xd9,0xff,0xf9,0xff, +0x45,0x0,0x64,0x0,0x3b,0x0,0xf6,0xff,0xcf,0xff,0xda,0xff, +0xf8,0xff,0xe,0x0,0x21,0x0,0x21,0x0,0xf9,0xff,0xcd,0xff, +0xc5,0xff,0xe5,0xff,0x1d,0x0,0x3c,0x0,0x2a,0x0,0xe,0x0, +0xc,0x0,0x10,0x0,0xfe,0xff,0xdc,0xff,0xcb,0xff,0xe3,0xff, +0xa,0x0,0x19,0x0,0x14,0x0,0x5,0x0,0xf1,0xff,0xf2,0xff, +0xd,0x0,0x20,0x0,0x26,0x0,0x29,0x0,0x1d,0x0,0xf8,0xff, +0xda,0xff,0xd7,0xff,0xe4,0xff,0xf2,0xff,0xf3,0xff,0xeb,0xff, +0xfe,0xff,0x2d,0x0,0x3c,0x0,0x13,0x0,0xe9,0xff,0xf6,0xff, +0x28,0x0,0x38,0x0,0xd,0x0,0xd8,0xff,0xc5,0xff,0xd5,0xff, +0xeb,0xff,0xeb,0xff,0xe3,0xff,0xf7,0xff,0x1e,0x0,0x33,0x0, +0x30,0x0,0x1d,0x0,0xa,0x0,0x3,0x0,0xf3,0xff,0xdb,0xff, +0xe6,0xff,0xe,0x0,0x13,0x0,0xea,0xff,0xc3,0xff,0xcf,0xff, +0x3,0x0,0x24,0x0,0x16,0x0,0x4,0x0,0xf,0x0,0x28,0x0, +0x32,0x0,0x17,0x0,0xe0,0xff,0xbf,0xff,0xd7,0xff,0x7,0x0, +0x15,0x0,0xf8,0xff,0xd8,0xff,0xdc,0xff,0xff,0xff,0x19,0x0, +0x16,0x0,0x15,0x0,0x26,0x0,0x28,0x0,0xf,0x0,0xfb,0xff, +0xf7,0xff,0xef,0xff,0xd8,0xff,0xcb,0xff,0xe2,0xff,0x5,0x0, +0x2,0x0,0xe1,0xff,0xd6,0xff,0xf6,0xff,0x2f,0x0,0x4e,0x0, +0x2f,0x0,0xf8,0xff,0xe6,0xff,0xfa,0xff,0xf,0x0,0x5,0x0, +0xe4,0xff,0xd9,0xff,0xe8,0xff,0xf4,0xff,0x2,0x0,0x18,0x0, +0x1c,0x0,0x11,0x0,0x8,0x0,0x2,0x0,0x8,0x0,0xb,0x0, +0xe8,0xff,0xbe,0xff,0xc5,0xff,0xf3,0xff,0x21,0x0,0x21,0x0, +0xe8,0xff,0xbe,0xff,0xe0,0xff,0x25,0x0,0x42,0x0,0x2b,0x0, +0x4,0x0,0xf9,0xff,0x5,0x0,0x3,0x0,0xea,0xff,0xd3,0xff, +0xd4,0xff,0xf1,0xff,0x14,0x0,0x1b,0x0,0x9,0x0,0xf6,0xff, +0xf0,0xff,0xfe,0xff,0x10,0x0,0x20,0x0,0x34,0x0,0x3a,0x0, +0x11,0x0,0xcf,0xff,0xb8,0xff,0xe3,0xff,0x13,0x0,0xc,0x0, +0xeb,0xff,0xeb,0xff,0xe,0x0,0x23,0x0,0x10,0x0,0xf4,0xff, +0xf9,0xff,0x1f,0x0,0x44,0x0,0x3e,0x0,0xff,0xff,0xc3,0xff, +0xc5,0xff,0xe6,0xff,0xf6,0xff,0xf7,0xff,0xfd,0xff,0xf,0x0, +0x1d,0x0,0xf,0x0,0xff,0xff,0x12,0x0,0x22,0x0,0xf,0x0, +0xfb,0xff,0xfa,0xff,0x0,0x0,0x3,0x0,0xf1,0xff,0xd9,0xff, +0xde,0xff,0xf7,0xff,0x13,0x0,0x29,0x0,0x27,0x0,0x9,0x0, +0xf3,0xff,0xf8,0xff,0x10,0x0,0x20,0x0,0xe,0x0,0xeb,0xff, +0xde,0xff,0xe8,0xff,0x1,0x0,0x17,0x0,0xe,0x0,0xf6,0xff, +0xf9,0xff,0xf,0x0,0x1d,0x0,0x19,0x0,0x4,0x0,0xf3,0xff, +0xf4,0xff,0xf5,0xff,0xf3,0xff,0xfa,0xff,0xfe,0xff,0xf5,0xff, +0xf3,0xff,0xf8,0xff,0xfd,0xff,0xc,0x0,0x21,0x0,0x25,0x0, +0x10,0x0,0xfb,0xff,0xfd,0xff,0xb,0x0,0x8,0x0,0xec,0xff, +0xd6,0xff,0xe6,0xff,0x3,0x0,0x4,0x0,0xef,0xff,0xe5,0xff, +0xf8,0xff,0x22,0x0,0x3e,0x0,0x2f,0x0,0xa,0x0,0xf8,0xff, +0xfb,0xff,0xf9,0xff,0xdf,0xff,0xc1,0xff,0xce,0xff,0xfb,0xff, +0xa,0x0,0xf0,0xff,0xd9,0xff,0xea,0xff,0x1a,0x0,0x35,0x0, +0x2c,0x0,0x23,0x0,0x24,0x0,0x19,0x0,0x1,0x0,0xe0,0xff, +0xc6,0xff,0xd1,0xff,0xf6,0xff,0x7,0x0,0xfb,0xff,0xea,0xff, +0xef,0xff,0xc,0x0,0x11,0x0,0xf8,0xff,0xfd,0xff,0x23,0x0, +0x2e,0x0,0x10,0x0,0xe3,0xff,0xc8,0xff,0xd1,0xff,0xe9,0xff, +0xf7,0xff,0x1,0x0,0x7,0x0,0x0,0x0,0x1,0x0,0xd,0x0, +0x8,0x0,0xf6,0xff,0xfe,0xff,0x20,0x0,0x2f,0x0,0x15,0x0, +0xed,0xff,0xd7,0xff,0xd3,0xff,0xde,0xff,0xf4,0xff,0x9,0x0, +0x11,0x0,0x12,0x0,0xe,0x0,0x4,0x0,0xfe,0xff,0x4,0x0, +0x18,0x0,0x27,0x0,0x16,0x0,0xec,0xff,0xd5,0xff,0xe4,0xff, +0xf5,0xff,0xef,0xff,0xf2,0xff,0xd,0x0,0x1d,0x0,0x1b,0x0, +0x18,0x0,0x11,0x0,0x3,0x0,0xfe,0xff,0x8,0x0,0x15,0x0, +0x6,0x0,0xda,0xff,0xc8,0xff,0xe7,0xff,0x4,0x0,0x5,0x0, +0x5,0x0,0x15,0x0,0x2d,0x0,0x30,0x0,0x13,0x0,0xfe,0xff, +0x6,0x0,0x8,0x0,0x1,0x0,0xfb,0xff,0xeb,0xff,0xdf,0xff, +0xe8,0xff,0xe9,0xff,0xdf,0xff,0xef,0xff,0x1d,0x0,0x47,0x0, +0x45,0x0,0x15,0x0,0xf0,0xff,0xf5,0xff,0x8,0x0,0x13,0x0, +0x12,0x0,0xff,0xff,0xee,0xff,0xe2,0xff,0xce,0xff,0xc2,0xff, +0xd1,0xff,0xf5,0xff,0x2a,0x0,0x48,0x0,0x29,0x0,0xfb,0xff, +0xf5,0xff,0x4,0x0,0xf,0x0,0x13,0x0,0xe,0x0,0xc,0x0, +0x9,0x0,0xed,0xff,0xca,0xff,0xc8,0xff,0xe8,0xff,0x14,0x0, +0x2c,0x0,0x23,0x0,0xd,0x0,0x0,0x0,0xf8,0xff,0xef,0xff, +0xeb,0xff,0xfb,0xff,0x15,0x0,0x11,0x0,0xec,0xff,0xd9,0xff, +0xe9,0xff,0xfb,0xff,0x1,0x0,0x2,0x0,0xb,0x0,0x17,0x0, +0x17,0x0,0xe,0x0,0x2,0x0,0xe8,0xff,0xd3,0xff,0xe4,0xff, +0xa,0x0,0x1d,0x0,0xe,0x0,0xf2,0xff,0xee,0xff,0x3,0x0, +0xc,0x0,0xa,0x0,0xc,0x0,0x8,0x0,0x0,0x0,0xfd,0xff, +0xf7,0xff,0xee,0xff,0xea,0xff,0xed,0xff,0xfa,0xff,0x9,0x0, +0xf,0x0,0x14,0x0,0xe,0x0,0xfd,0xff,0x2,0x0,0x19,0x0, +0x17,0x0,0x7,0x0,0xf8,0xff,0xe4,0xff,0xe4,0xff,0xf5,0xff, +0xf4,0xff,0xf0,0xff,0xf6,0xff,0xf1,0xff,0xf4,0xff,0x11,0x0, +0x26,0x0,0x26,0x0,0x18,0x0,0x6,0x0,0x3,0x0,0x6,0x0, +0xf9,0xff,0xef,0xff,0xf0,0xff,0xf4,0xff,0xf9,0xff,0xed,0xff, +0xce,0xff,0xd2,0xff,0xfe,0xff,0x20,0x0,0x27,0x0,0x1a,0x0, +0xa,0x0,0x10,0x0,0x16,0x0,0x3,0x0,0xfc,0xff,0x6,0x0, +0x2,0x0,0xfa,0xff,0xf5,0xff,0xea,0xff,0xe7,0xff,0xf2,0xff, +0x4,0x0,0x16,0x0,0x10,0x0,0xfa,0xff,0x0,0x0,0xf,0x0, +0x3,0x0,0xf5,0xff,0x0,0x0,0x10,0x0,0xc,0x0,0xf3,0xff, +0xe5,0xff,0xf9,0xff,0x10,0x0,0xb,0x0,0xf3,0xff,0xe2,0xff, +0xf1,0xff,0x14,0x0,0x20,0x0,0xc,0x0,0xf3,0xff,0xed,0xff, +0x7,0x0,0x21,0x0,0x12,0x0,0xf6,0xff,0xf8,0xff,0x9,0x0, +0xc,0x0,0xfc,0xff,0xe5,0xff,0xe5,0xff,0xfb,0xff,0x7,0x0, +0x6,0x0,0x1,0x0,0xfa,0xff,0x1,0x0,0x13,0x0,0x18,0x0, +0xf,0x0,0x8,0x0,0xc,0x0,0x15,0x0,0xa,0x0,0xf3,0xff, +0xf9,0xff,0xc,0x0,0x4,0x0,0xee,0xff,0xdd,0xff,0xe1,0xff, +0xff,0xff,0x10,0x0,0xfe,0xff,0xf3,0xff,0x0,0x0,0x11,0x0, +0x1c,0x0,0x14,0x0,0xff,0xff,0x4,0x0,0x13,0x0,0x7,0x0, +0xef,0xff,0xe2,0xff,0xe1,0xff,0xf6,0xff,0x11,0x0,0x12,0x0, +0x0,0x0,0xf1,0xff,0xf4,0xff,0xc,0x0,0x19,0x0,0x5,0x0, +0xf4,0xff,0x0,0x0,0x12,0x0,0xe,0x0,0xf3,0xff,0xde,0xff, +0xf1,0xff,0x11,0x0,0x14,0x0,0x3,0x0,0xf3,0xff,0xee,0xff, +0xfa,0xff,0x2,0x0,0xf8,0xff,0xf0,0xff,0xfb,0xff,0x7,0x0, +0xd,0x0,0x7,0x0,0xfa,0xff,0x1,0x0,0x11,0x0,0x8,0x0, +0xf8,0xff,0xfc,0xff,0x6,0x0,0x8,0x0,0xfe,0xff,0xe6,0xff, +0xda,0xff,0xed,0xff,0xc,0x0,0x1b,0x0,0xf,0x0,0xed,0xff, +0xe2,0xff,0x1,0x0,0x1a,0x0,0xd,0x0,0xf8,0xff,0x1,0x0, +0x1c,0x0,0x1f,0x0,0xf8,0xff,0xd2,0xff,0xd8,0xff,0xf9,0xff, +0xb,0x0,0xfd,0xff,0xea,0xff,0xf1,0xff,0x5,0x0,0xf,0x0, +0x12,0x0,0x11,0x0,0xf,0x0,0x19,0x0,0x1f,0x0,0x6,0x0, +0xe2,0xff,0xd5,0xff,0xe4,0xff,0xfc,0xff,0xfe,0xff,0xec,0xff, +0xe8,0xff,0xff,0xff,0x17,0x0,0x19,0x0,0x7,0x0,0x4,0x0, +0x13,0x0,0x1d,0x0,0x16,0x0,0xff,0xff,0xe9,0xff,0xf1,0xff, +0x6,0x0,0xfc,0xff,0xe8,0xff,0xee,0xff,0x4,0x0,0x15,0x0, +0xe,0x0,0xf0,0xff,0xeb,0xff,0x8,0x0,0x15,0x0,0xb,0x0, +0xfe,0xff,0xf9,0xff,0xa,0x0,0x19,0x0,0x7,0x0,0xec,0xff, +0xe2,0xff,0xeb,0xff,0xf,0x0,0x25,0x0,0x4,0x0,0xe1,0xff, +0xed,0xff,0xe,0x0,0x20,0x0,0xf,0x0,0xf1,0xff,0xf6,0xff, +0x10,0x0,0x12,0x0,0xfd,0xff,0xe8,0xff,0xe8,0xff,0x7,0x0, +0x1b,0x0,0xe,0x0,0x5,0x0,0x9,0x0,0x7,0x0,0xff,0xff, +0xec,0xff,0xe0,0xff,0xf8,0xff,0x13,0x0,0x7,0x0,0xf2,0xff, +0xf0,0xff,0xfb,0xff,0xe,0x0,0x1d,0x0,0x16,0x0,0x6,0x0, +0x7,0x0,0x14,0x0,0x12,0x0,0xf4,0xff,0xd6,0xff,0xd6,0xff, +0xfa,0xff,0x1a,0x0,0xc,0x0,0xeb,0xff,0xec,0xff,0xb,0x0, +0x1a,0x0,0x11,0x0,0x4,0x0,0x2,0x0,0xa,0x0,0xc,0x0, +0x1,0x0,0xef,0xff,0xe3,0xff,0xec,0xff,0xff,0xff,0xfd,0xff, +0xf2,0xff,0xf6,0xff,0xfe,0xff,0x2,0x0,0x0,0x0,0xf8,0xff, +0x3,0x0,0x19,0x0,0x19,0x0,0xf,0x0,0x6,0x0,0xf8,0xff, +0xf6,0xff,0x3,0x0,0x2,0x0,0xf1,0xff,0xe3,0xff,0xe9,0xff, +0xd,0x0,0x1d,0x0,0xfd,0xff,0xe7,0xff,0xfd,0xff,0x17,0x0, +0x1d,0x0,0xc,0x0,0xf6,0xff,0xf9,0xff,0x5,0x0,0xfd,0xff, +0xf1,0xff,0xf2,0xff,0xf6,0xff,0x0,0x0,0xb,0x0,0xc,0x0, +0x1,0x0,0xf3,0xff,0xfb,0xff,0xb,0x0,0x2,0x0,0xf5,0xff, +0x0,0x0,0xc,0x0,0x8,0x0,0xfa,0xff,0xe9,0xff,0xf4,0xff, +0x15,0x0,0x1c,0x0,0x7,0x0,0xf3,0xff,0xf1,0xff,0x1,0x0, +0xa,0x0,0xf7,0xff,0xe5,0xff,0xf0,0xff,0xe,0x0,0x25,0x0, +0xf,0x0,0xe8,0xff,0xee,0xff,0xc,0x0,0x16,0x0,0x12,0x0, +0x0,0x0,0xf3,0xff,0x1,0x0,0x4,0x0,0xf2,0xff,0xf5,0xff, +0xfc,0xff,0xf7,0xff,0x2,0x0,0x6,0x0,0xfa,0xff,0xfb,0xff, +0xfe,0xff,0x0,0x0,0xb,0x0,0x5,0x0,0xfb,0xff,0x10,0x0, +0x16,0x0,0xfd,0xff,0xf1,0xff,0xf3,0xff,0xf9,0xff,0x4,0x0, +0xf8,0xff,0xe8,0xff,0xf8,0xff,0x7,0x0,0x3,0x0,0xfd,0xff, +0xf6,0xff,0xfe,0xff,0x17,0x0,0x1a,0x0,0xd,0x0,0x3,0x0, +0xf6,0xff,0xf7,0xff,0x4,0x0,0xfe,0xff,0xf6,0xff,0xfc,0xff, +0xfc,0xff,0xff,0xff,0x9,0x0,0x1,0x0,0xf1,0xff,0xf3,0xff, +0x1,0x0,0x11,0x0,0x15,0x0,0x2,0x0,0xf3,0xff,0xfa,0xff, +0x8,0x0,0x9,0x0,0x0,0x0,0x1,0x0,0x9,0x0,0x2,0x0, +0xf7,0xff,0xf5,0xff,0xf2,0xff,0xf5,0xff,0x1,0x0,0x7,0x0, +0x9,0x0,0xc,0x0,0x6,0x0,0x3,0x0,0x3,0x0,0xff,0xff, +0x3,0x0,0xd,0x0,0xa,0x0,0xfe,0xff,0xf3,0xff,0xed,0xff, +0xf6,0xff,0x2,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x5,0x0, +0xf,0x0,0x8,0x0,0xf4,0xff,0xf4,0xff,0x8,0x0,0x18,0x0, +0x14,0x0,0xfa,0xff,0xed,0xff,0xfd,0xff,0x4,0x0,0xf7,0xff, +0xf1,0xff,0xf9,0xff,0x5,0x0,0x7,0x0,0xfa,0xff,0xf3,0xff, +0xfb,0xff,0x5,0x0,0xe,0x0,0x13,0x0,0xd,0x0,0x2,0x0, +0xfa,0xff,0xfb,0xff,0x0,0x0,0xf9,0xff,0xf1,0xff,0xfc,0xff, +0x2,0x0,0x1,0x0,0x5,0x0,0xfc,0xff,0xf4,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x12,0x0,0xe,0x0,0xfe,0xff,0xfa,0xff, +0xf2,0xff,0xf9,0xff,0x14,0x0,0xf,0x0,0xfc,0xff,0xfc,0xff, +0xf7,0xff,0xf9,0xff,0x1,0x0,0xed,0xff,0xe7,0xff,0x0,0x0, +0x9,0x0,0xd,0x0,0xe,0x0,0xf6,0xff,0xf6,0xff,0x9,0x0, +0x4,0x0,0x10,0x0,0x1d,0x0,0xfd,0xff,0xef,0xff,0xfa,0xff, +0xf2,0xff,0xfb,0xff,0x4,0x0,0xf0,0xff,0xff,0xff,0x19,0x0, +0x5,0x0,0xf8,0xff,0xfa,0xff,0xf1,0xff,0x6,0x0,0x1d,0x0, +0x12,0x0,0x11,0x0,0x5,0x0,0xe6,0xff,0xf1,0xff,0x3,0x0, +0xfe,0xff,0x3,0x0,0xfb,0xff,0xed,0xff,0x1,0x0,0xff,0xff, +0xec,0xff,0x0,0x0,0xb,0x0,0x9,0x0,0x21,0x0,0x1a,0x0, +0xfb,0xff,0xf8,0xff,0xec,0xff,0xec,0xff,0xc,0x0,0xa,0x0, +0xf5,0xff,0xf5,0xff,0xe5,0xff,0xed,0xff,0x11,0x0,0x8,0x0, +0xfb,0xff,0xc,0x0,0xc,0x0,0x10,0x0,0x14,0x0,0xf1,0xff, +0xea,0xff,0x5,0x0,0x5,0x0,0xd,0x0,0x13,0x0,0xf1,0xff, +0xea,0xff,0xf8,0xff,0xf4,0xff,0xb,0x0,0x17,0x0,0xf3,0xff, +0xf6,0xff,0x7,0x0,0xfc,0xff,0xe,0x0,0x14,0x0,0xf1,0xff, +0xfc,0xff,0xe,0x0,0xfa,0xff,0x3,0x0,0x2,0x0,0xe0,0xff, +0xec,0xff,0x0,0x0,0xfc,0xff,0xe,0x0,0x8,0x0,0xea,0xff, +0xfb,0xff,0xd,0x0,0x9,0x0,0x12,0x0,0xff,0xff,0xef,0xff, +0xf,0x0,0xc,0x0,0xf1,0xff,0x1,0x0,0xfe,0xff,0xf1,0xff, +0x9,0x0,0x8,0x0,0xf7,0xff,0x0,0x0,0xf3,0xff,0xed,0xff, +0xd,0x0,0xc,0x0,0xf9,0xff,0x4,0x0,0x1,0x0,0x1,0x0, +0x11,0x0,0x8,0x0,0x1,0x0,0xb,0x0,0xfd,0xff,0xf8,0xff, +0x1,0x0,0xf0,0xff,0xec,0xff,0xfd,0xff,0xfa,0xff,0xff,0xff, +0xd,0x0,0x4,0x0,0x3,0x0,0x8,0x0,0x2,0x0,0xf,0x0, +0x14,0x0,0xfc,0xff,0xf8,0xff,0x0,0x0,0xfe,0xff,0x4,0x0, +0xfb,0xff,0xeb,0xff,0xfe,0xff,0x8,0x0,0xfc,0xff,0x4,0x0, +0x5,0x0,0xf2,0xff,0xfb,0xff,0xc,0x0,0xe,0x0,0xd,0x0, +0x0,0x0,0xf9,0xff,0x9,0x0,0x8,0x0,0xfb,0xff,0xf6,0xff, +0xee,0xff,0xf2,0xff,0x5,0x0,0x2,0x0,0xfb,0xff,0x0,0x0, +0xf7,0xff,0xfd,0xff,0x18,0x0,0x1a,0x0,0x12,0x0,0x12,0x0, +0xfe,0xff,0xee,0xff,0xf9,0xff,0xfb,0xff,0xf6,0xff,0xfb,0xff, +0xfa,0xff,0xfc,0xff,0x2,0x0,0xfc,0xff,0xfb,0xff,0x8,0x0, +0xd,0x0,0xd,0x0,0xa,0x0,0x2,0x0,0xfe,0xff,0xfa,0xff, +0xf4,0xff,0xfe,0xff,0xd,0x0,0x8,0x0,0xfc,0xff,0xf9,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfd,0xff,0x3,0x0, +0x8,0x0,0x9,0x0,0x5,0x0,0xff,0xff,0xff,0xff,0x6,0x0, +0xa,0x0,0x3,0x0,0xf8,0xff,0xf5,0xff,0xf7,0xff,0xfd,0xff, +0xfb,0xff,0xf1,0xff,0xf5,0xff,0x5,0x0,0xc,0x0,0xb,0x0, +0x4,0x0,0xf5,0xff,0xf8,0xff,0xa,0x0,0x7,0x0,0xfb,0xff, +0xff,0xff,0x0,0x0,0x3,0x0,0x8,0x0,0xfe,0xff,0xf8,0xff, +0x1,0x0,0x2,0x0,0xfb,0xff,0xfe,0xff,0x1,0x0,0xfd,0xff, +0xf5,0xff,0xf2,0xff,0x1,0x0,0x11,0x0,0x11,0x0,0xd,0x0, +0x6,0x0,0xf9,0xff,0xfa,0xff,0x1,0x0,0xfc,0xff,0xf6,0xff, +0xf1,0xff,0xf0,0xff,0x1,0x0,0xd,0x0,0x1,0x0,0xf6,0xff, +0xfb,0xff,0x8,0x0,0x13,0x0,0x11,0x0,0x2,0x0,0xf9,0xff, +0xf8,0xff,0xf9,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0x0,0x0,0x1,0x0,0xfa,0xff,0xf9,0xff,0x1,0x0, +0x8,0x0,0x12,0x0,0x13,0x0,0x3,0x0,0xf6,0xff,0xf9,0xff, +0x2,0x0,0xb,0x0,0x9,0x0,0xf8,0xff,0xf6,0xff,0xf9,0xff, +0xf1,0xff,0xf3,0xff,0x3,0x0,0x6,0x0,0x3,0x0,0x5,0x0, +0x6,0x0,0xb,0x0,0xd,0x0,0x0,0x0,0xf8,0xff,0xff,0xff, +0x4,0x0,0x7,0x0,0x7,0x0,0xfb,0xff,0xf2,0xff,0xf8,0xff, +0x3,0x0,0xb,0x0,0x5,0x0,0xf3,0xff,0xf0,0xff,0xfd,0xff, +0x2,0x0,0x2,0x0,0x6,0x0,0x5,0x0,0x9,0x0,0xe,0x0, +0x5,0x0,0x0,0x0,0x6,0x0,0x2,0x0,0xfb,0xff,0xfb,0xff, +0xf7,0xff,0xf5,0xff,0xfe,0xff,0xfb,0xff,0xee,0xff,0xf4,0xff, +0x4,0x0,0xe,0x0,0x11,0x0,0xb,0x0,0x6,0x0,0xf,0x0, +0x10,0x0,0x4,0x0,0xff,0xff,0xf9,0xff,0xef,0xff,0xf5,0xff, +0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfd,0xff,0xfd,0xff,0x0,0x0, +0x4,0x0,0x1,0x0,0x3,0x0,0x7,0x0,0x4,0x0,0x4,0x0, +0x9,0x0,0x7,0x0,0x3,0x0,0xfe,0xff,0xf8,0xff,0xf7,0xff, +0xf6,0xff,0xef,0xff,0xf3,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x9,0x0,0xa,0x0,0x6,0x0,0x6,0x0,0x2,0x0,0xfe,0xff, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0xfd,0xff,0xf7,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff, +0x1,0x0,0xfe,0xff,0xfa,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0x6,0x0,0x4,0x0,0xfc,0xff,0xff,0xff,0x5,0x0,0x4,0x0, +0x2,0x0,0xfc,0xff,0xf9,0xff,0xfc,0xff,0xf5,0xff,0xee,0xff, +0xf6,0xff,0xff,0xff,0x2,0x0,0xa,0x0,0xe,0x0,0xa,0x0, +0x9,0x0,0x4,0x0,0xfd,0xff,0x2,0x0,0x5,0x0,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xf9,0xff,0xf9,0xff,0xfc,0xff,0xfd,0xff, +0x2,0x0,0x4,0x0,0x1,0x0,0x7,0x0,0xb,0x0,0x7,0x0, +0xa,0x0,0xe,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0xfc,0xff, +0xf4,0xff,0xf6,0xff,0xf9,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff, +0x3,0x0,0xa,0x0,0x6,0x0,0x5,0x0,0x9,0x0,0xc,0x0, +0xe,0x0,0xa,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0xf8,0xff, +0xf4,0xff,0xf9,0xff,0xfc,0xff,0xfd,0xff,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x4,0x0,0x7,0x0,0x4,0x0, +0x0,0x0,0xff,0xff,0xfd,0xff,0x1,0x0,0x7,0x0,0x5,0x0, +0x2,0x0,0x4,0x0,0x2,0x0,0xfd,0xff,0xf8,0xff,0xf6,0xff, +0xf9,0xff,0x0,0x0,0x3,0x0,0x3,0x0,0x7,0x0,0xd,0x0, +0xd,0x0,0x7,0x0,0x2,0x0,0x5,0x0,0x9,0x0,0x5,0x0, +0xff,0xff,0xfe,0xff,0xfb,0xff,0xf7,0xff,0xf9,0xff,0xfe,0xff, +0x2,0x0,0x5,0x0,0x7,0x0,0x9,0x0,0xa,0x0,0x9,0x0, +0x7,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0x0,0x0, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0x2,0x0,0x4,0x0,0x2,0x0,0xff,0xff,0x3,0x0,0xd,0x0, +0x12,0x0,0xd,0x0,0x8,0x0,0x4,0x0,0xfe,0xff,0xf7,0xff, +0xf5,0xff,0xf7,0xff,0xf9,0xff,0xfd,0xff,0x4,0x0,0x8,0x0, +0x6,0x0,0x4,0x0,0x5,0x0,0x7,0x0,0x6,0x0,0x3,0x0, +0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x4,0x0, +0x9,0x0,0x7,0x0,0x2,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff, +0xfe,0xff,0x2,0x0,0x2,0x0,0xfe,0xff,0xfe,0xff,0x6,0x0, +0xb,0x0,0xb,0x0,0xe,0x0,0xf,0x0,0xc,0x0,0x7,0x0, +0x0,0x0,0xf8,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x8,0x0,0xb,0x0,0x8,0x0,0x8,0x0, +0x7,0x0,0xa,0x0,0xb,0x0,0x0,0x0,0xf8,0xff,0xfd,0xff, +0x2,0x0,0x1,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff, +0xfa,0xff,0xfa,0xff,0x0,0x0,0x2,0x0,0x7,0x0,0xe,0x0, +0xa,0x0,0x6,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0xfd,0xff,0xfb,0xff,0x0,0x0,0xfb,0xff,0xf7,0xff,0xf9,0xff, +0xf8,0xff,0xff,0xff,0xa,0x0,0xd,0x0,0x11,0x0,0x12,0x0, +0xd,0x0,0xc,0x0,0xa,0x0,0xfd,0xff,0xf8,0xff,0xfb,0xff, +0xfb,0xff,0xff,0xff,0x4,0x0,0x4,0x0,0xb,0x0,0xe,0x0, +0x8,0x0,0x8,0x0,0x9,0x0,0x5,0x0,0x7,0x0,0x6,0x0, +0xff,0xff,0x1,0x0,0x6,0x0,0x9,0x0,0x12,0x0,0x12,0x0, +0x9,0x0,0x7,0x0,0x3,0x0,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0x5,0x0,0x5,0x0,0x2,0x0,0x7,0x0,0x8,0x0, +0x6,0x0,0xb,0x0,0xa,0x0,0x7,0x0,0xb,0x0,0x7,0x0, +0xfe,0xff,0xfc,0xff,0xf8,0xff,0xf9,0xff,0xff,0xff,0xfa,0xff, +0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x5,0x0,0x6,0x0, +0x8,0x0,0xb,0x0,0x5,0x0,0x3,0x0,0x7,0x0,0x2,0x0, +0xfe,0xff,0xff,0xff,0xf9,0xff,0xf5,0xff,0xf7,0xff,0xf5,0xff, +0xf8,0xff,0xfe,0xff,0xfc,0xff,0x0,0x0,0x9,0x0,0xd,0x0, +0x12,0x0,0x13,0x0,0x8,0x0,0x4,0x0,0x3,0x0,0xfa,0xff, +0xf5,0xff,0xf3,0xff,0xf2,0xff,0xfc,0xff,0x4,0x0,0xff,0xff, +0x1,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x3,0x0, +0x8,0x0,0x8,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x1,0x0, +0x3,0x0,0x1,0x0,0xfb,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x7,0x0,0x9,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x7,0x0, +0xb,0x0,0x8,0x0,0x3,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x5,0x0,0xff,0xff,0xfc,0xff,0x2,0x0,0x4,0x0,0x0,0x0, +0xff,0xff,0x2,0x0,0x5,0x0,0x4,0x0,0x0,0x0,0x1,0x0, +0x5,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x3,0x0, +0x6,0x0,0x5,0x0,0x2,0x0,0x0,0x0,0xfb,0xff,0xf6,0xff, +0xf5,0xff,0xf6,0xff,0xf7,0xff,0xfa,0xff,0xff,0xff,0x5,0x0, +0x6,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0xfe,0xff,0xf8,0xff,0xf4,0xff,0xf3,0xff,0xf2,0xff,0xf0,0xff, +0xf3,0xff,0xf9,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x3,0x0,0x4,0x0,0x0,0x0,0xf9,0xff,0xf5,0xff,0xf6,0xff, +0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf6,0xff,0xf8,0xff,0xf8,0xff, +0xfa,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0xff,0xff,0xfb,0xff, +0xf8,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff, +0xfe,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0x3,0x0,0x4,0x0, +0x4,0x0,0x7,0x0,0xc,0x0,0xd,0x0,0xa,0x0,0x7,0x0, +0x8,0x0,0x9,0x0,0x5,0x0,0xfc,0xff,0xf6,0xff,0xf6,0xff, +0xfa,0xff,0xfe,0xff,0x2,0x0,0x6,0x0,0x8,0x0,0xa,0x0, +0xc,0x0,0xc,0x0,0x9,0x0,0x6,0x0,0x5,0x0,0x4,0x0, +0x0,0x0,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x4,0x0,0x6,0x0,0xa,0x0,0xa,0x0,0x5,0x0,0xfe,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xf9,0xff,0xf9,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x5,0x0,0x9,0x0, +0x9,0x0,0x4,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfb,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x3,0x0,0x4,0x0,0x2,0x0,0xfd,0xff,0xf8,0xff,0xf7,0xff, +0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfd,0xff,0x1,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0xff,0xff, +0xf7,0xff,0xf4,0xff,0xf7,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0x3,0x0,0x7,0x0,0x7,0x0,0x3,0x0,0xfd,0xff, +0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf3,0xff,0xee,0xff,0xef,0xff, +0xf4,0xff,0xf8,0xff,0xfc,0xff,0x2,0x0,0x8,0x0,0xb,0x0, +0xb,0x0,0x8,0x0,0x4,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xf8,0xff,0xf6,0xff,0xf3,0xff,0xee,0xff,0xea,0xff, +0xeb,0xff,0xf3,0xff,0xfd,0xff,0x5,0x0,0xa,0x0,0xc,0x0, +0xc,0x0,0x7,0x0,0xfe,0xff,0xf3,0xff,0xea,0xff,0xe7,0xff, +0xe8,0xff,0xed,0xff,0xf5,0xff,0x1,0x0,0xd,0x0,0x15,0x0, +0x18,0x0,0x17,0x0,0x13,0x0,0xc,0x0,0x3,0x0,0xfa,0xff, +0xee,0xff,0xdd,0xff,0xd1,0xff,0xd1,0xff,0xd4,0xff,0xd6,0xff, +0xe0,0xff,0xf6,0xff,0xe,0x0,0x23,0x0,0x36,0x0,0x45,0x0, +0x45,0x0,0x39,0x0,0x28,0x0,0xe,0x0,0xe8,0xff,0xc1,0xff, +0xa6,0xff,0xa6,0xff,0xca,0xff,0x5,0x0,0x40,0x0,0x71,0x0, +0x91,0x0,0x8a,0x0,0x55,0x0,0x12,0x0,0xde,0xff,0xb0,0xff, +0x87,0xff,0x7d,0xff,0x9e,0xff,0xcc,0xff,0xf2,0xff,0x18,0x0, +0x42,0x0,0x58,0x0,0x4d,0x0,0x32,0x0,0x22,0x0,0x16,0x0, +0xf3,0xff,0xbd,0xff,0x97,0xff,0x91,0xff,0x92,0xff,0x91,0xff, +0xa2,0xff,0xce,0xff,0x4,0x0,0x32,0x0,0x50,0x0,0x58,0x0, +0x54,0x0,0x4a,0x0,0x35,0x0,0x1f,0x0,0x25,0x0,0x3e,0x0, +0x38,0x0,0xb,0x0,0xe5,0xff,0xd2,0xff,0xb2,0xff,0x88,0xff, +0x71,0xff,0x70,0xff,0x7f,0xff,0xad,0xff,0xfe,0xff,0x50,0x0, +0x8d,0x0,0xb6,0x0,0xc3,0x0,0xab,0x0,0x80,0x0,0x54,0x0, +0x1f,0x0,0xd4,0xff,0x7e,0xff,0x39,0xff,0x1f,0xff,0x31,0xff, +0x58,0xff,0x87,0xff,0xc7,0xff,0x14,0x0,0x53,0x0,0x81,0x0, +0xb2,0x0,0xdc,0x0,0xe0,0x0,0xb9,0x0,0x75,0x0,0x25,0x0, +0xd7,0xff,0x99,0xff,0x66,0xff,0x3d,0xff,0x2d,0xff,0x4a,0xff, +0x89,0xff,0xc8,0xff,0xf9,0xff,0x31,0x0,0x71,0x0,0x97,0x0, +0x8d,0x0,0x65,0x0,0x3f,0x0,0x2f,0x0,0x23,0x0,0x5,0x0, +0xe7,0xff,0xdc,0xff,0xd2,0xff,0xc2,0xff,0xc0,0xff,0xce,0xff, +0xdc,0xff,0xe3,0xff,0xe7,0xff,0xf5,0xff,0x17,0x0,0x3f,0x0, +0x5a,0x0,0x55,0x0,0x2b,0x0,0xfe,0xff,0xfe,0xff,0x12,0x0, +0xfe,0xff,0xc5,0xff,0x9e,0xff,0x9f,0xff,0xad,0xff,0xb6,0xff, +0xbe,0xff,0xc7,0xff,0xcd,0xff,0xe2,0xff,0x10,0x0,0x3c,0x0, +0x50,0x0,0x58,0x0,0x56,0x0,0x35,0x0,0x7,0x0,0xf6,0xff, +0xf9,0xff,0xdb,0xff,0x9c,0xff,0x7d,0xff,0x99,0xff,0xbe,0xff, +0xc4,0xff,0xbd,0xff,0xca,0xff,0xef,0xff,0x1c,0x0,0x3f,0x0, +0x4c,0x0,0x4c,0x0,0x54,0x0,0x60,0x0,0x54,0x0,0x27,0x0, +0xf6,0xff,0xd4,0xff,0xb0,0xff,0x88,0xff,0x73,0xff,0x7d,0xff, +0x98,0xff,0xac,0xff,0xb7,0xff,0xdf,0xff,0x2a,0x0,0x69,0x0, +0x7d,0x0,0x7c,0x0,0x80,0x0,0x8a,0x0,0x88,0x0,0x63,0x0, +0x24,0x0,0xef,0xff,0xc8,0xff,0xa7,0xff,0x94,0xff,0x98,0xff, +0xaf,0xff,0xd5,0xff,0xfa,0xff,0x15,0x0,0x39,0x0,0x6e,0x0, +0x9a,0x0,0xa3,0x0,0x80,0x0,0x4e,0x0,0x3b,0x0,0x3b,0x0, +0x1e,0x0,0xed,0xff,0xd2,0xff,0xce,0xff,0xc7,0xff,0xc3,0xff, +0xd9,0xff,0x2,0x0,0x1f,0x0,0x25,0x0,0x30,0x0,0x4f,0x0, +0x70,0x0,0x85,0x0,0x80,0x0,0x4e,0x0,0xb,0x0,0xf4,0xff, +0xa,0x0,0x2,0x0,0xc4,0xff,0x94,0xff,0xa3,0xff,0xc4,0xff, +0xc1,0xff,0xb2,0xff,0xbd,0xff,0xd0,0xff,0xd7,0xff,0xe5,0xff, +0x3,0x0,0x1e,0x0,0x2e,0x0,0x33,0x0,0x23,0x0,0x3,0x0, +0xf5,0xff,0xfb,0xff,0xe7,0xff,0xae,0xff,0x7f,0xff,0x84,0xff, +0xa1,0xff,0xa5,0xff,0x90,0xff,0x91,0xff,0xc2,0xff,0xfa,0xff, +0xf,0x0,0x15,0x0,0x31,0x0,0x58,0x0,0x69,0x0,0x56,0x0, +0x2b,0x0,0x2,0x0,0xdd,0xff,0xb2,0xff,0x84,0xff,0x63,0xff, +0x5a,0xff,0x70,0xff,0x93,0xff,0xaa,0xff,0xc9,0xff,0xa,0x0, +0x4c,0x0,0x68,0x0,0x65,0x0,0x60,0x0,0x66,0x0,0x65,0x0, +0x41,0x0,0x8,0x0,0xe5,0xff,0xd2,0xff,0xb2,0xff,0x8e,0xff, +0x86,0xff,0x9e,0xff,0xc1,0xff,0xda,0xff,0xec,0xff,0xd,0x0, +0x3e,0x0,0x70,0x0,0x90,0x0,0x85,0x0,0x56,0x0,0x37,0x0, +0x39,0x0,0x2f,0x0,0x0,0x0,0xd4,0xff,0xcd,0xff,0xd3,0xff, +0xc9,0xff,0xc2,0xff,0xdd,0xff,0xfb,0xff,0xf8,0xff,0xf4,0xff, +0x12,0x0,0x3d,0x0,0x58,0x0,0x62,0x0,0x53,0x0,0x2d,0x0, +0x19,0x0,0x2a,0x0,0x30,0x0,0x0,0x0,0xc4,0xff,0xba,0xff, +0xd1,0xff,0xcf,0xff,0xb5,0xff,0xac,0xff,0xc0,0xff,0xd7,0xff, +0xe3,0xff,0xf3,0xff,0x11,0x0,0x36,0x0,0x4e,0x0,0x4d,0x0, +0x37,0x0,0x25,0x0,0x1b,0x0,0x5,0x0,0xd7,0xff,0xa5,0xff, +0x87,0xff,0x82,0xff,0x8b,0xff,0x8b,0xff,0x90,0xff,0xb9,0xff, +0xf5,0xff,0x14,0x0,0x1b,0x0,0x31,0x0,0x56,0x0,0x6c,0x0, +0x5d,0x0,0x34,0x0,0xd,0x0,0xf3,0xff,0xd6,0xff,0xb3,0xff, +0x95,0xff,0x84,0xff,0x8c,0xff,0xa7,0xff,0xc1,0xff,0xd9,0xff, +0xfe,0xff,0x2b,0x0,0x51,0x0,0x66,0x0,0x66,0x0,0x60,0x0, +0x5e,0x0,0x4f,0x0,0x2c,0x0,0xb,0x0,0xf6,0xff,0xe8,0xff, +0xd5,0xff,0xc6,0xff,0xcf,0xff,0xea,0xff,0xfa,0xff,0xff,0xff, +0x13,0x0,0x33,0x0,0x4e,0x0,0x63,0x0,0x65,0x0,0x49,0x0, +0x29,0x0,0x26,0x0,0x30,0x0,0x1f,0x0,0xfa,0xff,0xec,0xff, +0xfd,0xff,0x4,0x0,0xf8,0xff,0xf6,0xff,0xff,0xff,0xff,0xff, +0xfc,0xff,0xb,0x0,0x23,0x0,0x35,0x0,0x42,0x0,0x44,0x0, +0x33,0x0,0x22,0x0,0x2a,0x0,0x31,0x0,0x17,0x0,0xee,0xff, +0xdc,0xff,0xe0,0xff,0xe0,0xff,0xd6,0xff,0xce,0xff,0xd9,0xff, +0xf5,0xff,0x9,0x0,0xc,0x0,0x12,0x0,0x29,0x0,0x43,0x0, +0x49,0x0,0x36,0x0,0x1a,0x0,0x9,0x0,0xfe,0xff,0xed,0xff, +0xd5,0xff,0xbd,0xff,0xb5,0xff,0xc3,0xff,0xd5,0xff,0xe3,0xff, +0xfc,0xff,0x1c,0x0,0x2e,0x0,0x32,0x0,0x36,0x0,0x3b,0x0, +0x3d,0x0,0x2f,0x0,0xd,0x0,0xe6,0xff,0xc9,0xff,0xba,0xff, +0xb4,0xff,0xab,0xff,0xa2,0xff,0xaf,0xff,0xd1,0xff,0xee,0xff, +0x2,0x0,0x16,0x0,0x2a,0x0,0x3d,0x0,0x45,0x0,0x38,0x0, +0x1d,0x0,0x4,0x0,0xef,0xff,0xd8,0xff,0xbd,0xff,0xa9,0xff, +0xac,0xff,0xbf,0xff,0xcd,0xff,0xd9,0xff,0xf0,0xff,0x7,0x0, +0x16,0x0,0x28,0x0,0x3b,0x0,0x46,0x0,0x47,0x0,0x3e,0x0, +0x24,0x0,0x4,0x0,0xf9,0xff,0xfd,0xff,0xef,0xff,0xcf,0xff, +0xc4,0xff,0xd3,0xff,0xe1,0xff,0xe3,0xff,0xe7,0xff,0xf4,0xff, +0x6,0x0,0x1e,0x0,0x34,0x0,0x3e,0x0,0x44,0x0,0x4a,0x0, +0x47,0x0,0x2f,0x0,0xf,0x0,0xff,0xff,0xf9,0xff,0xe4,0xff, +0xc8,0xff,0xbe,0xff,0xc4,0xff,0xcc,0xff,0xd3,0xff,0xdc,0xff, +0xf3,0xff,0x15,0x0,0x2b,0x0,0x2d,0x0,0x2c,0x0,0x33,0x0, +0x3d,0x0,0x3c,0x0,0x22,0x0,0xf8,0xff,0xd2,0xff,0xbc,0xff, +0xb0,0xff,0xa3,0xff,0x95,0xff,0x9c,0xff,0xbb,0xff,0xdd,0xff, +0xf7,0xff,0x14,0x0,0x32,0x0,0x46,0x0,0x4b,0x0,0x48,0x0, +0x40,0x0,0x32,0x0,0x18,0x0,0xf4,0xff,0xce,0xff,0xac,0xff, +0x99,0xff,0x9e,0xff,0xa8,0xff,0xad,0xff,0xbe,0xff,0xe3,0xff, +0x7,0x0,0x1e,0x0,0x30,0x0,0x43,0x0,0x4c,0x0,0x43,0x0, +0x27,0x0,0x6,0x0,0xea,0xff,0xd2,0xff,0xb9,0xff,0x9c,0xff, +0x8a,0xff,0x90,0xff,0xa5,0xff,0xb4,0xff,0xbf,0xff,0xcf,0xff, +0xe3,0xff,0xfa,0xff,0x15,0x0,0x2c,0x0,0x39,0x0,0x3b,0x0, +0x2d,0x0,0xf,0x0,0xf0,0xff,0xe2,0xff,0xde,0xff,0xc9,0xff, +0xa8,0xff,0xa1,0xff,0xb6,0xff,0xc7,0xff,0xcd,0xff,0xd9,0xff, +0xf1,0xff,0x10,0x0,0x2d,0x0,0x3c,0x0,0x3e,0x0,0x40,0x0, +0x43,0x0,0x3b,0x0,0x22,0x0,0x2,0x0,0xeb,0xff,0xdb,0xff, +0xc5,0xff,0xaf,0xff,0xa8,0xff,0xb6,0xff,0xce,0xff,0xe0,0xff, +0xf1,0xff,0x11,0x0,0x3a,0x0,0x54,0x0,0x58,0x0,0x54,0x0, +0x53,0x0,0x51,0x0,0x41,0x0,0x1b,0x0,0xec,0xff,0xc3,0xff, +0xa6,0xff,0x95,0xff,0x8f,0xff,0x91,0xff,0xa7,0xff,0xd1,0xff, +0xfb,0xff,0x17,0x0,0x30,0x0,0x4a,0x0,0x5d,0x0,0x5d,0x0, +0x4a,0x0,0x31,0x0,0x18,0x0,0xf7,0xff,0xcd,0xff,0xa6,0xff, +0x89,0xff,0x7d,0xff,0x84,0xff,0x93,0xff,0xa3,0xff,0xbb,0xff, +0xde,0xff,0x2,0x0,0x21,0x0,0x3b,0x0,0x54,0x0,0x60,0x0, +0x50,0x0,0x2c,0x0,0x5,0x0,0xe8,0xff,0xd1,0xff,0xb7,0xff, +0x97,0xff,0x85,0xff,0x91,0xff,0xa6,0xff,0xb3,0xff,0xc4,0xff, +0xde,0xff,0xfd,0xff,0x1d,0x0,0x39,0x0,0x4d,0x0,0x5c,0x0, +0x60,0x0,0x4d,0x0,0x26,0x0,0x2,0x0,0xec,0xff,0xd8,0xff, +0xb8,0xff,0x97,0xff,0x8c,0xff,0x9b,0xff,0xaf,0xff,0xbf,0xff, +0xd1,0xff,0xf1,0xff,0x1e,0x0,0x45,0x0,0x56,0x0,0x5c,0x0, +0x66,0x0,0x71,0x0,0x6a,0x0,0x4d,0x0,0x28,0x0,0x7,0x0, +0xe6,0xff,0xbf,0xff,0x9c,0xff,0x8e,0xff,0x9b,0xff,0xb9,0xff, +0xd9,0xff,0xf6,0xff,0x1c,0x0,0x46,0x0,0x69,0x0,0x7c,0x0, +0x81,0x0,0x7b,0x0,0x71,0x0,0x5f,0x0,0x38,0x0,0x7,0x0, +0xdf,0xff,0xc5,0xff,0xb2,0xff,0xa7,0xff,0xa7,0xff,0xba,0xff, +0xda,0xff,0xfe,0xff,0x1f,0x0,0x3d,0x0,0x5c,0x0,0x78,0x0, +0x86,0x0,0x7c,0x0,0x65,0x0,0x4a,0x0,0x2b,0x0,0x9,0x0, +0xe3,0xff,0xc0,0xff,0xb1,0xff,0xb4,0xff,0xb9,0xff,0xbf,0xff, +0xcf,0xff,0xe8,0xff,0x5,0x0,0x22,0x0,0x3b,0x0,0x52,0x0, +0x63,0x0,0x5d,0x0,0x42,0x0,0x26,0x0,0x10,0x0,0xfd,0xff, +0xe6,0xff,0xcd,0xff,0xbc,0xff,0xba,0xff,0xbd,0xff,0xc1,0xff, +0xcc,0xff,0xdd,0xff,0xf6,0xff,0x15,0x0,0x2c,0x0,0x37,0x0, +0x45,0x0,0x57,0x0,0x57,0x0,0x43,0x0,0x2e,0x0,0x23,0x0, +0x13,0x0,0xf3,0xff,0xd5,0xff,0xc7,0xff,0xc6,0xff,0xcc,0xff, +0xd6,0xff,0xe4,0xff,0xf9,0xff,0x17,0x0,0x35,0x0,0x49,0x0, +0x57,0x0,0x62,0x0,0x6c,0x0,0x6e,0x0,0x5f,0x0,0x41,0x0, +0x24,0x0,0xd,0x0,0xf3,0xff,0xd7,0xff,0xcb,0xff,0xd4,0xff, +0xe9,0xff,0xfe,0xff,0x15,0x0,0x2e,0x0,0x43,0x0,0x57,0x0, +0x6a,0x0,0x75,0x0,0x6f,0x0,0x61,0x0,0x53,0x0,0x3d,0x0, +0x1b,0x0,0xf7,0xff,0xe3,0xff,0xdd,0xff,0xd9,0xff,0xd4,0xff, +0xdb,0xff,0xed,0xff,0x5,0x0,0x20,0x0,0x37,0x0,0x49,0x0, +0x59,0x0,0x60,0x0,0x57,0x0,0x42,0x0,0x28,0x0,0xf,0x0, +0xfd,0xff,0xec,0xff,0xdc,0xff,0xd5,0xff,0xdb,0xff,0xe3,0xff, +0xea,0xff,0xf4,0xff,0x2,0x0,0x16,0x0,0x2a,0x0,0x32,0x0, +0x35,0x0,0x3c,0x0,0x3d,0x0,0x2e,0x0,0x1a,0x0,0xe,0x0, +0x3,0x0,0xf1,0xff,0xe1,0xff,0xdd,0xff,0xdc,0xff,0xd5,0xff, +0xd5,0xff,0xdf,0xff,0xeb,0xff,0xfa,0xff,0xf,0x0,0x1d,0x0, +0x1f,0x0,0x24,0x0,0x2e,0x0,0x32,0x0,0x2a,0x0,0x1d,0x0, +0x13,0x0,0x6,0x0,0xf0,0xff,0xda,0xff,0xcf,0xff,0xd0,0xff, +0xd4,0xff,0xd9,0xff,0xe2,0xff,0xf1,0xff,0x3,0x0,0x14,0x0, +0x25,0x0,0x35,0x0,0x3f,0x0,0x42,0x0,0x43,0x0,0x3d,0x0, +0x29,0x0,0xd,0x0,0xf9,0xff,0xef,0xff,0xe3,0xff,0xda,0xff, +0xde,0xff,0xe9,0xff,0xf5,0xff,0x6,0x0,0x1b,0x0,0x2b,0x0, +0x38,0x0,0x47,0x0,0x4f,0x0,0x4a,0x0,0x3e,0x0,0x31,0x0, +0x24,0x0,0xf,0x0,0xf5,0xff,0xe4,0xff,0xe6,0xff,0xeb,0xff, +0xec,0xff,0xf0,0xff,0xfc,0xff,0xd,0x0,0x21,0x0,0x31,0x0, +0x34,0x0,0x34,0x0,0x35,0x0,0x2e,0x0,0x1e,0x0,0xd,0x0, +0x3,0x0,0xfc,0xff,0xf5,0xff,0xf2,0xff,0xf5,0xff,0xf4,0xff, +0xee,0xff,0xed,0xff,0xf1,0xff,0xf6,0xff,0xff,0xff,0x8,0x0, +0x8,0x0,0x3,0x0,0x6,0x0,0xb,0x0,0x9,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0xfc,0xff,0xf6,0xff,0xfb,0xff,0x2,0x0, +0xff,0xff,0xf9,0xff,0xf6,0xff,0xf4,0xff,0xf5,0xff,0xf8,0xff, +0xf6,0xff,0xf2,0xff,0xf6,0xff,0x0,0x0,0x6,0x0,0x9,0x0, +0xc,0x0,0xc,0x0,0x8,0x0,0x0,0x0,0xf5,0xff,0xef,0xff, +0xf2,0xff,0xf6,0xff,0xf2,0xff,0xee,0xff,0xf1,0xff,0xf6,0xff, +0xfd,0xff,0x4,0x0,0x8,0x0,0x8,0x0,0xa,0x0,0xf,0x0, +0xf,0x0,0x6,0x0,0xf8,0xff,0xef,0xff,0xf0,0xff,0xf4,0xff, +0xf6,0xff,0xf9,0xff,0x1,0x0,0x8,0x0,0xe,0x0,0x17,0x0, +0x1d,0x0,0x1e,0x0,0x1a,0x0,0x12,0x0,0x3,0x0,0xf3,0xff, +0xeb,0xff,0xe9,0xff,0xe3,0xff,0xda,0xff,0xdd,0xff,0xee,0xff, +0xf9,0xff,0xfd,0xff,0x6,0x0,0x13,0x0,0x1d,0x0,0x22,0x0, +0x21,0x0,0x19,0x0,0xc,0x0,0x1,0x0,0xf7,0xff,0xea,0xff, +0xde,0xff,0xdc,0xff,0xde,0xff,0xdf,0xff,0xe9,0xff,0xfb,0xff, +0x7,0x0,0x7,0x0,0x8,0x0,0xe,0x0,0x13,0x0,0x14,0x0, +0xd,0x0,0xff,0xff,0xf2,0xff,0xee,0xff,0xe8,0xff,0xdd,0xff, +0xd9,0xff,0xe1,0xff,0xe8,0xff,0xe8,0xff,0xe9,0xff,0xf3,0xff, +0x1,0x0,0xa,0x0,0xa,0x0,0x5,0x0,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xf7,0xff,0xf2,0xff,0xf0,0xff,0xf5,0xff,0xf8,0xff, +0xf6,0xff,0xf3,0xff,0xf1,0xff,0xee,0xff,0xe8,0xff,0xe2,0xff, +0xe2,0xff,0xeb,0xff,0xf5,0xff,0xf9,0xff,0xf9,0xff,0xfd,0xff, +0x5,0x0,0xc,0x0,0xf,0x0,0x9,0x0,0xfc,0xff,0xf4,0xff, +0xf2,0xff,0xf0,0xff,0xe8,0xff,0xda,0xff,0xd2,0xff,0xd6,0xff, +0xdf,0xff,0xe3,0xff,0xe9,0xff,0xf6,0xff,0x4,0x0,0xa,0x0, +0x10,0x0,0x17,0x0,0x18,0x0,0xf,0x0,0x3,0x0,0xf3,0xff, +0xe0,0xff,0xd2,0xff,0xcf,0xff,0xcd,0xff,0xc9,0xff,0xd0,0xff, +0xdf,0xff,0xe8,0xff,0xec,0xff,0xf4,0xff,0x2,0x0,0xc,0x0, +0xc,0x0,0x4,0x0,0xfb,0xff,0xf4,0xff,0xec,0xff,0xe1,0xff, +0xd8,0xff,0xd4,0xff,0xd4,0xff,0xd6,0xff,0xdb,0xff,0xe8,0xff, +0xf8,0xff,0x3,0x0,0x6,0x0,0x9,0x0,0xd,0x0,0xc,0x0, +0x5,0x0,0xfa,0xff,0xee,0xff,0xe7,0xff,0xe7,0xff,0xe6,0xff, +0xe2,0xff,0xe3,0xff,0xed,0xff,0xf7,0xff,0xfa,0xff,0xf8,0xff, +0xfb,0xff,0x1,0x0,0x5,0x0,0x2,0x0,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf5,0xff,0xf1,0xff, +0xf4,0xff,0xf6,0xff,0xf3,0xff,0xee,0xff,0xec,0xff,0xea,0xff, +0xe9,0xff,0xec,0xff,0xf0,0xff,0xf4,0xff,0xf7,0xff,0xf8,0xff, +0xf7,0xff,0xf9,0xff,0x0,0x0,0x1,0x0,0xf9,0xff,0xf0,0xff, +0xe8,0xff,0xe1,0xff,0xdf,0xff,0xdf,0xff,0xda,0xff,0xd5,0xff, +0xda,0xff,0xe5,0xff,0xed,0xff,0xf3,0xff,0xfd,0xff,0xb,0x0, +0x13,0x0,0x12,0x0,0xd,0x0,0x7,0x0,0xfd,0xff,0xf1,0xff, +0xe4,0xff,0xd7,0xff,0xcc,0xff,0xc9,0xff,0xcf,0xff,0xda,0xff, +0xe8,0xff,0xf6,0xff,0x1,0x0,0xb,0x0,0x16,0x0,0x1f,0x0, +0x21,0x0,0x1b,0x0,0x10,0x0,0x3,0x0,0xf6,0xff,0xeb,0xff, +0xe1,0xff,0xdb,0xff,0xd9,0xff,0xdb,0xff,0xe1,0xff,0xeb,0xff, +0xf9,0xff,0x6,0x0,0xe,0x0,0x11,0x0,0x14,0x0,0x1a,0x0, +0x1b,0x0,0x11,0x0,0x4,0x0,0xfe,0xff,0xfb,0xff,0xf6,0xff, +0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf7,0xff,0xfa,0xff, +0xfc,0xff,0x1,0x0,0x8,0x0,0xc,0x0,0xe,0x0,0x11,0x0, +0x15,0x0,0x16,0x0,0x17,0x0,0x18,0x0,0x15,0x0,0xd,0x0, +0x5,0x0,0x2,0x0,0xff,0xff,0xfa,0xff,0xf4,0xff,0xef,0xff, +0xec,0xff,0xef,0xff,0xf7,0xff,0xfc,0xff,0xff,0xff,0x8,0x0, +0x12,0x0,0x16,0x0,0x18,0x0,0x1e,0x0,0x1f,0x0,0x18,0x0, +0xe,0x0,0x2,0x0,0xf5,0xff,0xea,0xff,0xe4,0xff,0xe1,0xff, +0xdf,0xff,0xe4,0xff,0xee,0xff,0xf9,0xff,0x3,0x0,0xe,0x0, +0x1a,0x0,0x24,0x0,0x24,0x0,0x1c,0x0,0x11,0x0,0x7,0x0, +0xfc,0xff,0xf0,0xff,0xe7,0xff,0xe0,0xff,0xdd,0xff,0xe1,0xff, +0xed,0xff,0xf8,0xff,0x0,0x0,0x7,0x0,0x10,0x0,0x19,0x0, +0x20,0x0,0x21,0x0,0x1a,0x0,0x13,0x0,0xc,0x0,0x3,0x0, +0xf9,0xff,0xf4,0xff,0xf1,0xff,0xef,0xff,0xf1,0xff,0xf6,0xff, +0xfe,0xff,0x6,0x0,0xe,0x0,0x12,0x0,0x14,0x0,0x16,0x0, +0x1b,0x0,0x1d,0x0,0x19,0x0,0x13,0x0,0xe,0x0,0xb,0x0, +0x7,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0xfe,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0x5,0x0,0xb,0x0,0x10,0x0,0x12,0x0, +0x16,0x0,0x19,0x0,0x19,0x0,0x1c,0x0,0x1f,0x0,0x1c,0x0, +0x14,0x0,0xd,0x0,0xa,0x0,0x6,0x0,0xff,0xff,0xf8,0xff, +0xf5,0xff,0xf4,0xff,0xf8,0xff,0xff,0xff,0x5,0x0,0xc,0x0, +0x17,0x0,0x22,0x0,0x28,0x0,0x29,0x0,0x27,0x0,0x22,0x0, +0x19,0x0,0xb,0x0,0xfc,0xff,0xf2,0xff,0xeb,0xff,0xe6,0xff, +0xe7,0xff,0xee,0xff,0xf8,0xff,0x3,0x0,0xf,0x0,0x19,0x0, +0x21,0x0,0x29,0x0,0x2d,0x0,0x28,0x0,0x1e,0x0,0x14,0x0, +0x7,0x0,0xf9,0xff,0xed,0xff,0xe7,0xff,0xe3,0xff,0xe1,0xff, +0xe7,0xff,0xf0,0xff,0xf9,0xff,0x2,0x0,0xc,0x0,0x15,0x0, +0x1c,0x0,0x23,0x0,0x24,0x0,0x1e,0x0,0x15,0x0,0xc,0x0, +0x2,0x0,0xf9,0xff,0xf3,0xff,0xed,0xff,0xe7,0xff,0xe5,0xff, +0xea,0xff,0xee,0xff,0xf4,0xff,0xfc,0xff,0x6,0x0,0xc,0x0, +0x11,0x0,0x15,0x0,0x17,0x0,0x17,0x0,0x15,0x0,0x10,0x0, +0x8,0x0,0x0,0x0,0xfc,0xff,0xf9,0xff,0xf2,0xff,0xe9,0xff, +0xe6,0xff,0xe8,0xff,0xe9,0xff,0xed,0xff,0xf4,0xff,0xfd,0xff, +0x6,0x0,0xd,0x0,0x13,0x0,0x17,0x0,0x1b,0x0,0x1e,0x0, +0x19,0x0,0xe,0x0,0x2,0x0,0xf8,0xff,0xee,0xff,0xe3,0xff, +0xdb,0xff,0xd9,0xff,0xdc,0xff,0xe3,0xff,0xed,0xff,0xf7,0xff, +0x3,0x0,0x10,0x0,0x1c,0x0,0x21,0x0,0x22,0x0,0x1f,0x0, +0x17,0x0,0xa,0x0,0xfa,0xff,0xec,0xff,0xe3,0xff,0xde,0xff, +0xda,0xff,0xdb,0xff,0xe1,0xff,0xea,0xff,0xf3,0xff,0xff,0xff, +0x9,0x0,0x13,0x0,0x1b,0x0,0x1e,0x0,0x1b,0x0,0x15,0x0, +0xe,0x0,0x4,0x0,0xf8,0xff,0xed,0xff,0xe5,0xff,0xde,0xff, +0xdd,0xff,0xe0,0xff,0xe3,0xff,0xea,0xff,0xf4,0xff,0xfd,0xff, +0x5,0x0,0xe,0x0,0x14,0x0,0x15,0x0,0x12,0x0,0xd,0x0, +0x4,0x0,0xfc,0xff,0xf8,0xff,0xf4,0xff,0xed,0xff,0xe6,0xff, +0xe5,0xff,0xe6,0xff,0xe7,0xff,0xe9,0xff,0xee,0xff,0xf5,0xff, +0xfc,0xff,0x2,0x0,0x5,0x0,0x7,0x0,0xa,0x0,0xd,0x0, +0xa,0x0,0x5,0x0,0x0,0x0,0xfb,0xff,0xf5,0xff,0xed,0xff, +0xe5,0xff,0xe2,0xff,0xe2,0xff,0xe4,0xff,0xe7,0xff,0xed,0xff, +0xf6,0xff,0x1,0x0,0xa,0x0,0x10,0x0,0x15,0x0,0x18,0x0, +0x17,0x0,0x10,0x0,0x6,0x0,0xfb,0xff,0xf0,0xff,0xe8,0xff, +0xe2,0xff,0xde,0xff,0xdf,0xff,0xe4,0xff,0xec,0xff,0xf4,0xff, +0xfe,0xff,0x8,0x0,0x11,0x0,0x17,0x0,0x1a,0x0,0x1a,0x0, +0x16,0x0,0xf,0x0,0x4,0x0,0xf8,0xff,0xee,0xff,0xe8,0xff, +0xe4,0xff,0xe2,0xff,0xe4,0xff,0xea,0xff,0xf1,0xff,0xf9,0xff, +0x3,0x0,0xd,0x0,0x15,0x0,0x1a,0x0,0x1a,0x0,0x16,0x0, +0xf,0x0,0x8,0x0,0xff,0xff,0xf7,0xff,0xef,0xff,0xe9,0xff, +0xe6,0xff,0xe8,0xff,0xeb,0xff,0xee,0xff,0xf4,0xff,0xfd,0xff, +0x4,0x0,0x9,0x0,0xd,0x0,0xf,0x0,0xf,0x0,0xd,0x0, +0x8,0x0,0x2,0x0,0xfe,0xff,0xfc,0xff,0xf7,0xff,0xf1,0xff, +0xee,0xff,0xed,0xff,0xed,0xff,0xee,0xff,0xf0,0xff,0xf3,0xff, +0xf8,0xff,0x0,0x0,0x6,0x0,0x8,0x0,0xb,0x0,0xe,0x0, +0xe,0x0,0xb,0x0,0x6,0x0,0x0,0x0,0xf9,0xff,0xf3,0xff, +0xed,0xff,0xe8,0xff,0xe7,0xff,0xea,0xff,0xed,0xff,0xf1,0xff, +0xf9,0xff,0x1,0x0,0x8,0x0,0xe,0x0,0x12,0x0,0x15,0x0, +0x15,0x0,0x11,0x0,0xb,0x0,0x2,0x0,0xf9,0xff,0xf2,0xff, +0xed,0xff,0xea,0xff,0xe9,0xff,0xec,0xff,0xf1,0xff,0xf7,0xff, +0xfd,0xff,0x6,0x0,0x10,0x0,0x16,0x0,0x19,0x0,0x19,0x0, +0x17,0x0,0x13,0x0,0xb,0x0,0x1,0x0,0xf8,0xff,0xf3,0xff, +0xef,0xff,0xec,0xff,0xed,0xff,0xf1,0xff,0xf7,0xff,0xff,0xff, +0x7,0x0,0xf,0x0,0x14,0x0,0x18,0x0,0x1a,0x0,0x17,0x0, +0x12,0x0,0xb,0x0,0x5,0x0,0x0,0x0,0xfb,0xff,0xf7,0xff, +0xf3,0xff,0xf4,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xff,0xff, +0x5,0x0,0xa,0x0,0xd,0x0,0x10,0x0,0x10,0x0,0xf,0x0, +0xe,0x0,0xa,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0xfa,0xff, +0xf5,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf5,0xff,0xf7,0xff, +0xfb,0xff,0x0,0x0,0x6,0x0,0x9,0x0,0xb,0x0,0xd,0x0, +0xd,0x0,0xb,0x0,0x8,0x0,0x3,0x0,0xfd,0xff,0xf7,0xff, +0xf3,0xff,0xf0,0xff,0xee,0xff,0xef,0xff,0xf0,0xff,0xf2,0xff, +0xf7,0xff,0xfe,0xff,0x4,0x0,0x9,0x0,0xd,0x0,0x10,0x0, +0x11,0x0,0x10,0x0,0xb,0x0,0x4,0x0,0xfe,0xff,0xf7,0xff, +0xf2,0xff,0xee,0xff,0xec,0xff,0xed,0xff,0xf0,0xff,0xf6,0xff, +0xfc,0xff,0x1,0x0,0x8,0x0,0x10,0x0,0x13,0x0,0x13,0x0, +0x11,0x0,0xe,0x0,0x9,0x0,0x1,0x0,0xfa,0xff,0xf5,0xff, +0xf2,0xff,0xf0,0xff,0xf0,0xff,0xf2,0xff,0xf5,0xff,0xf9,0xff, +0xff,0xff,0x5,0x0,0xa,0x0,0xd,0x0,0xf,0x0,0xf,0x0, +0xd,0x0,0x9,0x0,0x4,0x0,0x0,0x0,0xfe,0xff,0xfb,0xff, +0xf6,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf9,0xff, +0xfe,0xff,0x1,0x0,0x5,0x0,0xa,0x0,0xc,0x0,0xb,0x0, +0xa,0x0,0xa,0x0,0x6,0x0,0x3,0x0,0x1,0x0,0xfd,0xff, +0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf7,0xff, +0xfa,0xff,0xfd,0xff,0x2,0x0,0x6,0x0,0x8,0x0,0xa,0x0, +0xc,0x0,0xb,0x0,0x9,0x0,0x7,0x0,0x4,0x0,0xfe,0xff, +0xf9,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff,0xf2,0xff,0xf4,0xff, +0xf6,0xff,0xfb,0xff,0x0,0x0,0x6,0x0,0xa,0x0,0xc,0x0, +0xe,0x0,0xe,0x0,0xb,0x0,0x6,0x0,0x0,0x0,0xfa,0xff, +0xf6,0xff,0xf3,0xff,0xf1,0xff,0xf1,0xff,0xf2,0xff,0xf6,0xff, +0xfb,0xff,0xff,0xff,0x3,0x0,0x9,0x0,0xd,0x0,0xe,0x0, +0xd,0x0,0xc,0x0,0x9,0x0,0x5,0x0,0x1,0x0,0xfd,0xff, +0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf9,0xff,0xfb,0xff, +0xfe,0xff,0x2,0x0,0x7,0x0,0xb,0x0,0xd,0x0,0xe,0x0, +0xe,0x0,0xc,0x0,0x9,0x0,0x5,0x0,0x3,0x0,0x1,0x0, +0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xff,0xff,0x2,0x0,0x4,0x0,0x7,0x0,0xb,0x0,0xb,0x0, +0xa,0x0,0xa,0x0,0x9,0x0,0x8,0x0,0x7,0x0,0x5,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0x1,0x0,0x5,0x0,0x8,0x0,0xa,0x0, +0xd,0x0,0xe,0x0,0xc,0x0,0x9,0x0,0x7,0x0,0x3,0x0, +0xfe,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff, +0xfa,0xff,0xfd,0xff,0x1,0x0,0x5,0x0,0x8,0x0,0xb,0x0, +0xb,0x0,0xc,0x0,0xb,0x0,0x9,0x0,0x4,0x0,0xff,0xff, +0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf9,0xff, +0xfc,0xff,0xfe,0xff,0x2,0x0,0x6,0x0,0x9,0x0,0xb,0x0, +0xc,0x0,0xb,0x0,0x9,0x0,0x6,0x0,0x3,0x0,0x0,0x0, +0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0xff,0xff,0x2,0x0,0x5,0x0,0x8,0x0,0xa,0x0,0xb,0x0, +0xa,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x4,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x3,0x0,0x6,0x0,0x9,0x0, +0xa,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x6,0x0, +0x3,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0xff,0xff,0x3,0x0,0x6,0x0,0x7,0x0, +0x9,0x0,0xb,0x0,0xa,0x0,0x9,0x0,0x7,0x0,0x4,0x0, +0x0,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x6,0x0,0x9,0x0, +0xb,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x6,0x0,0x1,0x0, +0xfe,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0x0,0x0,0x3,0x0,0x6,0x0,0x9,0x0,0xa,0x0, +0x9,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x6,0x0, +0x7,0x0,0x6,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x4,0x0,0x6,0x0, +0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x4,0x0,0x6,0x0, +0x7,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x5,0x0, +0x2,0x0,0xff,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x5,0x0,0x7,0x0, +0x9,0x0,0x9,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x0,0x0, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x5,0x0,0x7,0x0, +0x6,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0x2,0x0, +0x4,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x4,0x0,0x3,0x0, +0xff,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff, +0xf8,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x6,0x0, +0x7,0x0,0x6,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfd,0xff, +0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff, +0xf9,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff, +0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfc,0xff,0xf9,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff, +0xf6,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff, +0xf9,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,0x1,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0, +0x4,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x2,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xf9,0xff,0xfb,0xff,0xff,0xff,0x1,0x0,0x3,0x0, +0x5,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x6,0x0,0x4,0x0, +0x0,0x0,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf9,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x4,0x0, +0x7,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x5,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x3,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0x1,0x0,0x3,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff, +0xf9,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x5,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x4,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x3,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x3,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x3,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfa,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x3,0x0,0x5,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfd,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0x0,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/glass3.pcm b/src/client/sound/data/glass3.pcm new file mode 100755 index 0000000..412e8e9 --- /dev/null +++ b/src/client/sound/data/glass3.pcm @@ -0,0 +1,5086 @@ +unsigned char PCM_glass3[61006] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x1f,0x77,0x0,0x0,0xb7,0xd,0xb2,0x2,0xcd,0xdf,0x5f,0xec, +0x89,0xf4,0x7a,0xd7,0xf6,0xdf,0x20,0xeb,0x30,0xe9,0x97,0x7, +0x3,0xa,0x10,0xf2,0xc8,0xf8,0x38,0x7,0x17,0x18,0x33,0x13, +0x12,0xf3,0x52,0x3,0xc5,0x2a,0x33,0x27,0x25,0x1c,0x3,0x25, +0x4e,0x27,0xb8,0x9,0x4f,0xf5,0x48,0x1f,0x9a,0x44,0xb9,0x27, +0x3b,0x6,0xec,0x10,0xc0,0x27,0xd3,0x2a,0xf4,0x31,0x29,0x40, +0xf8,0x39,0xd1,0x38,0x24,0x2d,0xb7,0x5,0x70,0x12,0x8f,0x31, +0xb,0x12,0x8d,0xfb,0x4e,0x13,0x90,0x37,0x6,0x4c,0x53,0x2f, +0xa0,0x14,0x7d,0x11,0xaf,0xf0,0x8a,0xde,0x82,0xf0,0xd2,0xeb, +0x72,0xd6,0x5d,0xd2,0x47,0xe6,0x8f,0xec,0x6a,0xd2,0x75,0xce, +0x2e,0xce,0x8a,0xb2,0xf5,0xc4,0x10,0xfb,0xb0,0xf4,0xdb,0xbd, +0x95,0xbb,0x69,0xf0,0x23,0xee,0x8a,0xce,0xd5,0xe0,0xc4,0xd3, +0x1f,0xa9,0x4,0xba,0x17,0xde,0xe6,0xe8,0xee,0xcc,0x87,0xaf, +0xc4,0xe0,0x66,0x9,0xc0,0xe5,0x34,0xdb,0xbc,0xf2,0x43,0xf9, +0x70,0xf2,0x32,0xfb,0x67,0x22,0x76,0xa,0xc7,0xc0,0x7c,0xe6, +0xfa,0x32,0x12,0x13,0x64,0xc6,0xf7,0xaf,0x91,0xec,0x9e,0x24, +0xd4,0xfa,0x87,0xca,0xd9,0xd9,0xc4,0xe3,0xfc,0xbd,0xc5,0xa0, +0x1f,0xdd,0xe9,0x1c,0x4f,0x1,0x2,0xf,0x72,0x47,0x1,0xd, +0x16,0xb8,0xc4,0xd4,0xa2,0x1b,0xef,0x1f,0x96,0xf5,0xe,0xf1, +0x6d,0xed,0x34,0xcf,0x38,0xf6,0x9a,0x21,0xde,0xf4,0x57,0xed, +0x59,0x23,0x11,0x1f,0xc3,0xdf,0xe6,0xb9,0x30,0xd2,0xfd,0xe0, +0x93,0xd0,0x63,0xfd,0x6b,0x2c,0xc,0xfb,0xcc,0xc7,0x8d,0xd7, +0x2c,0xfa,0xd5,0xf2,0x5,0xc3,0xc0,0xc3,0x3,0xe6,0x8b,0xdf, +0x3a,0xe0,0xc3,0xdc,0xec,0xb1,0x31,0xb6,0xb8,0xec,0xdb,0x1, +0xe0,0xe7,0x8a,0xc8,0xf,0xc0,0x1e,0xa4,0x58,0x91,0xf3,0xd3, +0xd7,0xf7,0x16,0xc6,0x96,0xc8,0xa7,0xe4,0xec,0xbc,0x77,0x9c, +0xdc,0xc3,0xc2,0xf5,0x96,0xe2,0x66,0xc2,0xa5,0xdb,0x13,0xd5, +0x3d,0xb5,0x28,0xde,0xe,0xf3,0xeb,0xbf,0xe9,0xb8,0x85,0xed, +0x42,0xf9,0x3a,0xba,0xd3,0x9d,0x76,0xd4,0x17,0xdb,0x41,0xba, +0x7b,0xe6,0xf9,0xa,0x76,0xda,0xe2,0xac,0x89,0xbf,0x53,0xde, +0x23,0xc0,0x6c,0xb3,0xd3,0xfb,0x4a,0x1,0x5f,0xb4,0xd8,0xc3, +0x73,0x2,0x6a,0xee,0x48,0xc3,0x15,0xd0,0xcc,0xe3,0xd4,0xcb, +0x4a,0xc8,0xc2,0xe8,0x7a,0xe0,0xb7,0xd6,0x1d,0xeb,0xbd,0xda, +0x79,0xd2,0xde,0xe8,0xe3,0xc8,0x5b,0xa9,0x73,0xd6,0xf3,0xf2, +0x52,0xcf,0x61,0xd2,0x47,0xf,0xd2,0x0,0x33,0xb3,0xf2,0xc8, +0xe,0x8,0xce,0xe1,0x79,0xbf,0xc7,0xf6,0x58,0x0,0x55,0xb6, +0x42,0xb3,0xc8,0xfa,0xcd,0xe4,0x37,0xaa,0xaa,0xf4,0x1c,0x3f, +0x75,0xf8,0x5c,0xc1,0x37,0xf5,0xa5,0x11,0x29,0xe7,0xc5,0xc9, +0xdd,0xdd,0xa2,0xea,0x66,0xca,0xe,0xb7,0x42,0xde,0xc4,0x4, +0xae,0xf1,0xa,0xd5,0x46,0xe5,0x3c,0xf2,0xdc,0xd4,0x24,0xca, +0xc6,0xe5,0xb4,0xed,0x75,0xea,0x7b,0xfd,0x66,0x0,0x25,0xf1, +0x3e,0xf6,0x41,0xec,0xd,0xd2,0xeb,0xe2,0x89,0xe3,0x34,0xaf, +0xb7,0xbf,0xed,0x1,0x47,0xec,0xa7,0xcb,0x98,0xf8,0xb0,0x9, +0xf6,0xeb,0xb6,0xe8,0xf0,0xe0,0xcc,0xcf,0x56,0xd9,0x1f,0xd6, +0x1d,0xd7,0x87,0x7,0x2,0xd,0xe7,0xcd,0x1d,0xc5,0x67,0xec, +0xc7,0xda,0x51,0xbf,0x6f,0xe2,0xf3,0xf2,0x44,0xc5,0x4f,0xc4, +0x32,0x2,0x4c,0x5,0x6e,0xd4,0x8,0xd7,0xe,0xe7,0x1c,0xd2, +0x71,0xd7,0x82,0xf0,0xee,0xe8,0xc4,0xe4,0x61,0xea,0xb2,0xe5, +0xe1,0xfc,0xc,0xc,0xee,0xe1,0xc5,0xdd,0x4,0x16,0x99,0xf, +0x6a,0xd6,0xd,0xd3,0x3b,0xe4,0x51,0xc6,0x9c,0xa7,0xe9,0xc5, +0x45,0xf0,0x24,0xdc,0xcf,0xc9,0x2d,0xfe,0x12,0xc,0x89,0xcb, +0xd5,0xcc,0xd5,0x5,0x7f,0xed,0xe0,0xc2,0xb5,0xe9,0x16,0x9, +0xe1,0xde,0x26,0xba,0x6d,0xd3,0xa1,0xf3,0xfa,0xde,0xcc,0xc4, +0x7b,0xdb,0x7f,0xed,0xa4,0xe2,0xa4,0xed,0xee,0xfa,0xe,0xee, +0xda,0xe9,0x29,0xe2,0xcc,0xd0,0x91,0xe5,0x64,0xff,0x70,0xf7, +0xfd,0x0,0x1b,0xb,0xd2,0xe5,0x7d,0xcd,0xb5,0xd7,0x62,0xd2, +0xe9,0xd5,0xf9,0xee,0x17,0xe6,0x23,0xce,0xbe,0xdf,0x34,0xfb, +0x72,0xf3,0xd3,0xe4,0x54,0xef,0x34,0xf7,0x30,0xed,0x52,0xf8, +0x88,0xc,0x55,0xf5,0x90,0xd6,0x93,0xd6,0x89,0xd2,0xac,0xdd, +0x96,0x0,0x1,0xe7,0x87,0xb5,0x4e,0xdb,0x2,0x6,0x5,0xe3, +0x9,0xe1,0xbc,0x16,0x6a,0xb,0x4a,0xd1,0x1f,0xd4,0xd9,0xf4, +0xfb,0xe1,0xbf,0xc8,0xd4,0xe7,0xd1,0xf6,0x50,0xcc,0x81,0xd2, +0xee,0x8,0x2e,0xf5,0xad,0xd6,0x96,0x10,0x1c,0x25,0x47,0xe6, +0x5d,0xe3,0xf7,0x3,0x4,0xdb,0xfa,0xc0,0x3b,0xf3,0x0,0x9, +0x89,0xee,0x31,0xea,0x3f,0xef,0xa8,0xe8,0x46,0xee,0xb0,0xe7, +0xc3,0xc2,0x34,0xbb,0x2,0xe0,0xce,0xf5,0x44,0xfd,0x98,0x12, +0xf8,0xf,0x86,0xf1,0x39,0xea,0x33,0xea,0x9,0xdf,0x55,0xf2, +0xcb,0x3,0xc3,0xe0,0x25,0xdb,0x1,0x18,0x4a,0x23,0xe4,0xea, +0x57,0xe7,0x6e,0x17,0x5c,0xa,0xba,0xcc,0x57,0xce,0xbe,0xfe, +0xeb,0xe5,0x5,0xa2,0xbe,0xc3,0x5f,0x21,0x21,0x18,0x82,0xd2, +0xf1,0xe2,0x5,0x1b,0x47,0x10,0xe8,0xf9,0xe3,0x16,0x42,0x23, +0xa0,0xf8,0x7e,0xdc,0x78,0xe8,0xe5,0xdf,0xd,0xbc,0xae,0xbe, +0x37,0xdf,0x7,0xcd,0x30,0xa0,0x9c,0xbb,0x90,0xfb,0x2f,0xfd, +0xf7,0xe6,0x3a,0xec,0x8c,0xdc,0x82,0xcb,0x3b,0xec,0xa3,0xf6, +0x7c,0xd9,0x13,0xef,0xee,0xe,0x6d,0xf4,0x89,0xed,0xce,0xfd, +0x65,0xd9,0xe,0xcb,0xc1,0xf8,0xe7,0xeb,0xfd,0xc4,0xf5,0xff, +0x4e,0x33,0x5,0xf4,0xf8,0xd4,0x83,0x1f,0x64,0x37,0xbc,0xfa, +0xc7,0xf4,0xb6,0x1c,0x29,0xe,0xfd,0xff,0x55,0x24,0x32,0x22, +0xea,0xfa,0x8a,0xc,0xf4,0x2c,0x80,0x12,0x37,0xf0,0x52,0xeb, +0x99,0xe5,0xf8,0xdd,0x7c,0xe0,0x1c,0xeb,0x88,0xff,0xb1,0xc, +0x20,0x1,0xc9,0xf6,0xb2,0xd,0x51,0x2b,0xc5,0x18,0xfe,0xf3, +0x6e,0x5,0x6f,0x17,0x46,0xea,0x68,0xd8,0xfb,0xf8,0x85,0xef, +0xaf,0xef,0x56,0x24,0x72,0x15,0x92,0xe8,0x93,0x15,0xb6,0x1f, +0xe5,0xd3,0xed,0xe4,0xbc,0x2f,0x1a,0xc,0x4,0xd5,0xc8,0xf3, +0x8f,0x3,0x6b,0xe4,0xe,0xea,0x99,0x9,0x21,0xd,0xc9,0x10, +0x7c,0x25,0xdd,0xf,0x77,0xd7,0xd2,0xe6,0x97,0x33,0x5c,0x37, +0xd5,0xf6,0x79,0xf4,0xef,0x35,0x93,0x45,0xe,0x2,0xef,0xdc, +0x4f,0x16,0x2a,0x33,0xef,0xf1,0x96,0xdc,0xcf,0x16,0xd6,0x23, +0xcc,0x8,0x99,0x9,0xf,0xb,0x5c,0x13,0x21,0x31,0xfe,0x2d, +0xcd,0x12,0xef,0xd,0xe9,0x17,0x24,0x2e,0x42,0x24,0x64,0xd8, +0x3d,0xcc,0xa4,0x23,0x3e,0x22,0x52,0xd1,0xee,0xf1,0xe,0x3b, +0x4a,0xb,0x52,0xcb,0x37,0xeb,0xe8,0xb,0xb9,0xf7,0x4d,0x2, +0xcf,0x2e,0xfc,0x23,0x87,0xff,0xc2,0x13,0x4c,0x26,0xca,0xf, +0x7b,0x26,0xed,0x52,0xd3,0x38,0x68,0x19,0x4d,0x2b,0x43,0x29, +0x8e,0x13,0xfd,0x11,0x90,0xc,0xa2,0xe,0xc5,0x28,0xc1,0x31, +0x6,0x2b,0x23,0x30,0x40,0x37,0xc,0x3f,0x2c,0x36,0x70,0xf, +0xea,0xd,0x78,0x3a,0xd4,0x2a,0x2e,0xdf,0x4,0xcb,0x8f,0xfe, +0x75,0x31,0x8c,0x45,0xf8,0x3e,0xfd,0x18,0x32,0xe0,0x5,0xbd, +0x1a,0xb6,0x1e,0xb6,0x3c,0xd9,0xa3,0x20,0xe4,0x3b,0xea,0x32, +0x83,0x4c,0xea,0x49,0xda,0xfe,0x1,0xd2,0x33,0xd3,0x55,0xbc, +0xe6,0xb1,0x7a,0xc3,0xd4,0xab,0xaa,0x85,0x62,0x98,0x6f,0xc2, +0x5,0xc5,0x9e,0xa5,0xa0,0xa8,0xcf,0xf3,0xb0,0x2d,0x32,0xe, +0x5c,0xf3,0x6,0x14,0x43,0xe,0x89,0xd7,0x13,0xdd,0x88,0x10, +0x9f,0x0,0x1e,0xbb,0x8d,0xb0,0x19,0xe9,0xae,0x1,0x9d,0xdc, +0x4c,0xc6,0xda,0xea,0xc6,0x1e,0x6e,0x34,0x6d,0x2f,0x2c,0x20, +0x3f,0xc,0xce,0xfa,0x5b,0xe5,0xbd,0xbf,0x38,0xb7,0x6d,0xfa, +0x54,0x44,0x53,0x4d,0x49,0x48,0x9c,0x4a,0xd1,0x20,0x95,0xf8, +0xf5,0xf,0xbf,0x1f,0xdc,0xfd,0xdd,0xe2,0xa4,0xc6,0x49,0x93, +0xa0,0x8f,0xdf,0xc2,0x8b,0xd0,0xc,0xbd,0x22,0xd4,0x63,0xfd, +0x0,0xff,0xec,0xed,0x51,0xe4,0xce,0xda,0x50,0xdb,0x59,0xe5, +0xfb,0xdd,0x9b,0xcb,0x35,0xc4,0x63,0xc0,0x98,0xc3,0x5e,0xdc, +0x3a,0xf4,0x9e,0xf2,0x2c,0xe2,0x20,0xca,0x78,0xa8,0x61,0x96, +0x7f,0xac,0xc0,0xcc,0x98,0xd2,0xf5,0xda,0x6e,0xf7,0xf3,0xf2, +0xd7,0xcc,0x75,0xc3,0x48,0xca,0x3c,0xc8,0x48,0xdf,0xc2,0xf6, +0x7b,0xf6,0x2c,0x1c,0xb9,0x3f,0x55,0xd,0x7b,0xf6,0x9,0x3e, +0x41,0x46,0xf3,0x1,0xbd,0x13,0x17,0x55,0xe0,0x3f,0xba,0x7, +0x55,0xfa,0x92,0xed,0xec,0xca,0x59,0xbf,0x87,0xdc,0x1b,0x4, +0xa5,0x1d,0x6,0x30,0x39,0x3d,0x8,0x2b,0xd3,0xfd,0x13,0xf7, +0x0,0x26,0x91,0x34,0x7,0x19,0x2b,0x34,0x32,0x52,0xc8,0xfe, +0x13,0xc2,0x66,0x13,0xaa,0x32,0xb7,0xd8,0xac,0xcb,0xd5,0xa, +0x6c,0xa,0xfc,0x0,0xdb,0x1c,0xed,0x1d,0xf1,0xb,0xff,0xec, +0x9,0xc2,0x44,0xe6,0xe8,0x38,0xec,0x25,0x96,0xe8,0x48,0x2, +0xfd,0x22,0x43,0xf2,0xf6,0xc0,0x98,0xdb,0xde,0x10,0x53,0x19, +0x92,0xc,0x60,0x16,0x81,0x10,0x95,0xf8,0x50,0x14,0x56,0x44, +0xde,0x3b,0xd8,0x21,0x32,0x1c,0xa3,0x4,0x6e,0xdf,0xb5,0xd2, +0x37,0xd7,0xda,0xd5,0xbd,0xd4,0x2c,0xeb,0xcb,0x8,0xdc,0x1, +0x14,0xf1,0x19,0xd,0x41,0x35,0x26,0x26,0x58,0xdc,0x9f,0xad, +0xc4,0xe9,0x7d,0x27,0x36,0xeb,0xa5,0xcc,0x16,0x2f,0xff,0x3b, +0x41,0xd0,0xd6,0xce,0x6e,0x10,0x5f,0xf1,0xb2,0xd2,0x3d,0xff, +0x40,0x10,0xf3,0xf9,0xa,0xf2,0xaa,0xdf,0x7c,0xbf,0x97,0xc6, +0x7,0xfd,0x55,0x29,0xe5,0x26,0x65,0x17,0x8e,0xe,0x29,0x2, +0xe7,0x18,0x78,0x43,0xbb,0x26,0x84,0xfa,0xcd,0x1c,0xc8,0x1e, +0xfc,0xd3,0xb,0xe6,0x3,0x52,0xf7,0x58,0xa1,0xf,0xe,0xa, +0xcc,0x11,0x6b,0xcb,0x67,0xbc,0xe,0x37,0x65,0x65,0x63,0xea, +0x5e,0xc5,0x52,0x37,0xc2,0x40,0xc6,0xe3,0x51,0xf8,0xb1,0x34, +0xeb,0xff,0x60,0xcf,0xb0,0x5,0xc0,0x2a,0x1b,0xff,0x17,0xf0, +0xb,0x2a,0x1c,0x3c,0x1,0x5,0xd3,0xf3,0x16,0x3,0x3c,0xd7, +0xbf,0xc3,0x46,0x14,0x8e,0x38,0x29,0xf3,0x5,0xd8,0xc1,0xd, +0x55,0x22,0xc1,0x3,0xca,0xfb,0x17,0x7,0x48,0xee,0xe8,0xd0, +0xc1,0xf1,0xcb,0x20,0xd0,0x18,0x9a,0x8,0xff,0x11,0x25,0xc, +0x72,0xfd,0x95,0xf6,0x45,0xe1,0xe5,0xd9,0xcc,0xef,0x18,0xe9, +0x5e,0xda,0x23,0x2,0xa7,0x1b,0x8b,0xed,0x42,0xd0,0x4e,0xe4, +0x2b,0xd9,0xb4,0xc3,0x53,0xfb,0x2a,0x3b,0x1d,0x13,0xe6,0xda, +0x6a,0xb,0x39,0x42,0x5,0xe,0xcc,0xd8,0x39,0x4,0xed,0x29, +0xa,0x4,0x68,0xf9,0x24,0x36,0x9b,0x46,0xf0,0x2,0x2,0xe2, +0xf1,0xd,0xf1,0x1e,0x59,0xf5,0x7e,0xe7,0x74,0x9,0x51,0x16, +0x9c,0x3,0x27,0xd,0x68,0x2d,0xe2,0x13,0x2c,0xd4,0x83,0xec, +0xa9,0x47,0xa7,0x42,0x12,0xed,0xc,0xe2,0xca,0x4,0x5b,0xe6, +0xc2,0xcc,0x3e,0x0,0x10,0x1b,0xe5,0xee,0x17,0xe0,0x7e,0x4, +0xe,0xe,0x89,0xf5,0x7f,0xec,0x88,0x0,0xec,0x13,0xc2,0xfb, +0x2b,0xd5,0x8a,0xed,0x99,0xe,0x15,0xdf,0xf0,0xc7,0x2e,0x10, +0xb1,0x1c,0x5f,0xce,0xcd,0xd1,0xdc,0x18,0x25,0xf,0xb2,0xe5, +0x6a,0x5,0x82,0x2b,0x3,0x9,0xd3,0xd9,0xe1,0xe5,0xb1,0x1, +0x73,0xec,0xbd,0xd0,0x50,0xeb,0xdc,0x13,0x31,0x14,0xf0,0x2, +0x7b,0xb,0x35,0x23,0xf8,0x13,0x16,0xef,0x62,0xb,0x16,0x36, +0xbf,0xfb,0x39,0xc9,0x3b,0x16,0x6d,0x3c,0x86,0xdc,0xb5,0xbd, +0x43,0x1f,0x97,0x41,0x3,0xfd,0xea,0xe6,0x47,0xf,0xd8,0xb, +0x29,0xe3,0x1,0xe2,0x28,0xf9,0xc7,0xff,0xa6,0x5,0xd2,0xc, +0x40,0xc,0x8e,0xd,0x45,0x5,0x9c,0x4,0xf7,0x23,0x84,0x1c, +0xed,0xec,0x71,0x5,0xc2,0x22,0x96,0xdc,0xa7,0xcf,0xf4,0x2e, +0x5e,0x2b,0x11,0xd9,0xc9,0xf1,0x4e,0x2d,0xf3,0x19,0x8f,0xc, +0x9b,0x2f,0xca,0x36,0x28,0xa,0xe5,0xe5,0x7f,0xf5,0xb7,0x8, +0xc5,0xf5,0x8b,0xf5,0xd2,0xb,0x41,0xf8,0x30,0xeb,0x72,0xc, +0xa,0x6,0x3e,0xe6,0xaf,0x6,0x45,0x1e,0xbd,0xec,0xb8,0xe3, +0xed,0x1e,0x9b,0x1c,0x30,0xeb,0x3,0xe,0x2d,0x40,0xae,0x2, +0xda,0xd5,0xf0,0x1e,0xbb,0x30,0x94,0xe2,0x7d,0xe7,0x24,0x19, +0xc7,0xf2,0x61,0xd9,0xe5,0xa,0xfa,0x19,0x25,0x1,0xee,0x4, +0x94,0x18,0x8d,0x1c,0x70,0x5,0xa0,0xf5,0x3,0x19,0x2,0x2a, +0x49,0xff,0x56,0xfb,0xe4,0x17,0x75,0xfe,0xe7,0xf0,0xfc,0x10, +0x7f,0x4,0xb4,0xe8,0x73,0xfc,0x1f,0x0,0xff,0xf2,0x20,0x14, +0x63,0x2d,0xa0,0x13,0xa6,0xe,0xb7,0x27,0x1e,0x14,0xda,0xea, +0x44,0xfe,0xff,0x1e,0x1e,0xf9,0x79,0xdb,0x9c,0x13,0x62,0x3b, +0x93,0x18,0x6d,0x7,0xdf,0x1f,0x90,0x24,0xaa,0x10,0x5f,0x6, +0x28,0x1d,0x34,0x37,0x2b,0x13,0x43,0xe4,0xfe,0x9,0xb4,0x36, +0x8f,0x13,0x46,0xf9,0x8c,0x1d,0x69,0x37,0x89,0x26,0x8f,0xd, +0x37,0xf,0xda,0x25,0x18,0x1b,0xc1,0xf8,0x96,0xd,0x71,0x39, +0x34,0x23,0xa,0xfa,0x57,0xd,0x1d,0x2e,0x66,0x1e,0x6e,0x5, +0xc7,0xe,0x47,0x12,0xbf,0xfd,0x7d,0xd,0x8a,0x36,0x51,0x2a, +0x2,0xb,0xff,0xf,0x37,0xfe,0xf6,0xd7,0xe0,0xef,0xac,0x1a, +0xfe,0xe,0x90,0xfa,0x39,0xf8,0x34,0xf2,0x14,0xff,0x4a,0x12, +0x7b,0xfe,0xc9,0xed,0xe4,0x3,0xba,0x7,0x4b,0xf5,0x56,0x7, +0x89,0x1e,0xc,0xa,0x54,0x3,0xae,0x21,0x2,0x17,0xbb,0xeb, +0xad,0xf8,0x6a,0x1b,0xbc,0x5,0xb1,0xef,0xd6,0x13,0x1f,0x30, +0x81,0x11,0x3e,0xea,0x65,0xf4,0xf0,0x21,0x9a,0x2e,0x73,0x5, +0xf1,0xe8,0x55,0xf8,0xde,0x5,0x4,0xd,0x71,0x23,0x1c,0x22, +0x16,0x4,0xdb,0xe,0x9d,0x37,0x4f,0x2c,0xf8,0x1,0x62,0x4, +0xdb,0x1d,0xd1,0x1b,0x54,0x11,0x14,0x13,0x86,0x11,0x30,0x5, +0x99,0xee,0xbb,0xdb,0xb1,0xec,0x7,0x10,0xe6,0xd,0xad,0xf6, +0x85,0x1,0xe1,0x16,0x2a,0x8,0xc0,0xf5,0x1e,0x5,0x12,0x10, +0x72,0x0,0xd5,0x5,0x53,0x22,0xf5,0x1a,0x40,0xfa,0xc2,0xf2, +0x63,0xf6,0xdc,0xfb,0x98,0x19,0x94,0x2b,0xb3,0x10,0x17,0xfa, +0x3e,0x5,0xe7,0xd,0x52,0xfd,0xac,0xe8,0x41,0xf2,0xc9,0x9, +0x69,0xfc,0x11,0xf5,0xec,0x32,0x1f,0x58,0x25,0x1b,0xe0,0xf1, +0x45,0x14,0x39,0x16,0x5b,0xe8,0xb2,0xe4,0xfe,0x4,0xf4,0x9, +0x67,0xfa,0x77,0xf9,0x7d,0x2,0x62,0x2,0xeb,0xfa,0xe2,0xf8, +0xa6,0x6,0x26,0x1d,0xdf,0x19,0xc6,0xfd,0xa5,0xfe,0xb8,0x11, +0xfe,0x2,0x9f,0xfd,0xfa,0x1a,0x5f,0x8,0xd9,0xd1,0x9e,0xe0, +0x53,0x13,0x3d,0xe,0xdf,0xf3,0xaa,0x0,0xdd,0x16,0x2e,0x4, +0xc4,0xe2,0xc9,0xf3,0x58,0x1a,0x72,0x11,0xb6,0x7,0x7e,0x21, +0xe6,0x13,0x92,0xec,0x63,0xff,0xc1,0x1c,0x2d,0x10,0xee,0x10, +0x8d,0x22,0xb4,0x15,0x8c,0xfe,0xf2,0x3,0xbd,0x1e,0x9f,0x22, +0x3e,0x1,0x16,0x0,0x74,0x28,0xcb,0xf,0x60,0xd1,0x21,0xf7, +0x32,0x41,0xa7,0x25,0xbe,0xf3,0xfd,0xf,0x18,0x26,0xe1,0x0, +0xc6,0xfb,0x73,0x2c,0xed,0x32,0x9b,0x8,0x9a,0xff,0x11,0x12, +0x5,0x14,0x55,0x16,0xba,0x15,0xde,0x8,0x31,0x12,0x62,0x17, +0x6e,0xf8,0xbc,0xfc,0xfc,0x21,0x24,0xa,0x89,0xe1,0xb1,0xf7, +0x11,0x11,0x6a,0x8,0x29,0x7,0xfd,0xe,0x2c,0x13,0x15,0xf, +0x8b,0xfe,0xdc,0x5,0xb7,0x23,0x60,0x1c,0xb2,0x1,0x72,0xfe, +0x53,0xf5,0x85,0xee,0x34,0x8,0x7f,0x13,0x65,0x3,0x6f,0x5, +0x35,0x6,0x6c,0xf0,0x2,0xf2,0xda,0x10,0x4,0x21,0x9c,0x1d, +0x3d,0x17,0xa7,0xe,0x6,0xb,0x16,0x13,0x29,0x16,0x92,0x11, +0xeb,0x1f,0x42,0x2e,0xa0,0x10,0x16,0xfa,0xf3,0x20,0x4c,0x33, +0x56,0x4,0x38,0xf4,0x64,0x18,0x4e,0x1e,0x99,0x6,0x34,0xa, +0x4c,0x2a,0x69,0x3d,0xb8,0x22,0x92,0xff,0xd3,0xb,0xfc,0x15, +0x44,0xf6,0xb7,0xfb,0xa7,0x29,0xf9,0x1e,0x8a,0xf5,0x26,0xff, +0xa0,0x18,0x6f,0x17,0xbb,0x17,0x40,0x1e,0x43,0x16,0xa6,0x6, +0x6a,0xff,0x73,0x6,0x6d,0x17,0x8f,0x22,0x7d,0x1b,0x2a,0xb, +0xe4,0x7,0x80,0x10,0xc0,0xd,0x2a,0x8,0x83,0x14,0xab,0x19, +0x9b,0x6,0xbe,0xfc,0x6f,0x6,0xba,0x9,0x48,0x5,0xe6,0x6, +0xf1,0xd,0x8f,0x14,0xb4,0x13,0xc2,0xa,0x13,0x7,0x7b,0x13, +0xf3,0x26,0x32,0x25,0xcb,0x8,0x77,0x1,0x47,0x21,0xf5,0x2b, +0x5a,0x11,0xf0,0xe,0xea,0x1e,0xc9,0x3,0xf0,0xe0,0xd1,0xff, +0xb3,0x33,0x96,0x2b,0xc,0xb,0xc0,0x14,0xce,0x26,0x81,0x17, +0xd8,0x10,0xf2,0x24,0xc8,0x24,0x2e,0xd,0xf7,0x2,0x5e,0x7, +0xb0,0x14,0x9c,0x27,0xd0,0x23,0x92,0xe,0xbf,0x11,0xfe,0x1e, +0x8e,0x14,0x35,0x11,0x6,0x26,0xca,0x24,0x70,0x9,0xf0,0x8, +0xed,0x24,0x18,0x2f,0xbc,0x20,0x1a,0x17,0x37,0x1c,0x22,0x1f, +0xe4,0x11,0x89,0x2,0x68,0x6,0x1c,0x14,0x41,0x19,0x75,0x19, +0x86,0x17,0x1c,0x14,0xe2,0x1a,0xae,0x21,0x10,0x17,0xa0,0x11, +0x14,0x1a,0x88,0xf,0x7c,0xff,0x12,0x14,0x46,0x2d,0x27,0x1e, +0x51,0x9,0xdb,0x11,0x45,0x1c,0x9b,0x15,0x6a,0x12,0x63,0x18, +0xc0,0x12,0x7a,0xfd,0x86,0xf0,0xb,0xfb,0xb9,0xd,0xc7,0x13, +0x7b,0xb,0x38,0xfc,0x4c,0xf0,0x3f,0xfa,0x6,0x17,0x91,0x1f, +0x8b,0xd,0x5a,0xc,0x62,0x17,0x8e,0x6,0xe6,0xfa,0x91,0x17, +0xa5,0x26,0xd6,0x12,0x9e,0xa,0xac,0x2,0x87,0xe8,0x22,0xef, +0x5d,0x10,0xc8,0xc,0x26,0xfd,0x63,0xb,0xd6,0xf,0xf3,0x0, +0x17,0x7,0x94,0x10,0xe,0x5,0x30,0x7,0x95,0x14,0xaa,0x0, +0xca,0xe8,0xe2,0x0,0x56,0x20,0xb3,0x19,0xb7,0x11,0x53,0x1d, +0x1a,0x20,0x73,0x1c,0x65,0x20,0xe6,0x23,0x99,0x2a,0xdd,0x28, +0xf7,0xe,0x27,0xb,0xe7,0x26,0x40,0x19,0x81,0xfa,0x67,0x19, +0xca,0x2f,0xb2,0x3,0xa4,0xfa,0x95,0x23,0x64,0x18,0xc3,0xfa, +0xaf,0x13,0x9,0x20,0xc8,0x4,0xf0,0x8,0xf5,0x17,0xc2,0x5, +0xdf,0xa,0xfd,0x21,0x43,0x1,0x71,0xe3,0xa8,0xc,0xfb,0x21, +0x5b,0x4,0x2d,0xf,0xfc,0x23,0xce,0xfc,0x4e,0xe8,0x22,0x9, +0x5e,0x13,0x6a,0x14,0xcc,0x26,0x2e,0x11,0x42,0xf3,0xfe,0xe, +0x8,0x22,0x1c,0x10,0x56,0x1b,0x93,0x21,0xaa,0xfb,0x4d,0xfc, +0x5a,0x25,0x9f,0x1d,0x8c,0x7,0xcb,0x1c,0x7e,0x20,0xb,0x2, +0x4e,0x1,0x5c,0x13,0xc4,0x17,0xa1,0x29,0x43,0x36,0xe9,0x18, +0xa1,0xa,0xae,0x25,0x4f,0x25,0xb6,0x12,0xdb,0x27,0x72,0x32, +0xd4,0x11,0x68,0x8,0xc7,0x14,0xa6,0xe,0x27,0x1e,0xbf,0x39, +0x61,0x1f,0xe9,0xff,0x35,0x12,0xbd,0x16,0xe6,0x7,0x9e,0x24, +0x2f,0x3a,0x16,0xf,0xad,0xf1,0xef,0xe,0x63,0x24,0x3,0x22, +0xf4,0x2b,0xbf,0x28,0xde,0x8,0x9,0x1,0xac,0x14,0x44,0x14, +0x47,0x11,0x61,0x1e,0x1b,0xe,0x35,0xf1,0xb7,0x5,0xba,0x1e, +0xbd,0x9,0xbe,0x3,0xc7,0x1c,0xfd,0x14,0xec,0xfc,0x74,0x5, +0x2,0x10,0x3d,0x8,0xb6,0x8,0xdf,0xb,0x9d,0x5,0x5a,0x5, +0x79,0x5,0xa2,0xfd,0x19,0x4,0xf4,0x13,0x89,0xd,0xd9,0xff, +0x83,0x4,0x76,0x3,0x6c,0xf7,0x64,0x3,0x33,0x15,0x14,0x4, +0x2b,0xf1,0x5a,0xfb,0x6,0x0,0x87,0xfa,0x3f,0x4,0xb,0x7, +0xda,0xf8,0x1,0xf8,0x34,0xfe,0x70,0xfd,0xab,0x6,0xac,0x9, +0xb3,0xf4,0xa8,0xef,0xf1,0x1,0x82,0x0,0x63,0xf8,0xd4,0x9, +0x23,0x14,0x7a,0x2,0x4f,0xfa,0x95,0x4,0xe9,0x2,0x54,0xfb, +0xec,0x5,0xed,0xe,0x4e,0x0,0xc3,0xf4,0x7,0xff,0xc6,0x7, +0x4a,0x8,0x84,0xe,0x9a,0xf,0xbf,0x3,0xcd,0xfb,0xb4,0xfb, +0x18,0x0,0xfe,0xc,0xbb,0x12,0x21,0x6,0xe4,0xff,0x71,0x8, +0xe1,0x9,0x47,0x9,0x9,0x18,0x93,0x24,0x6d,0x1c,0x91,0xd, +0x6,0x6,0x30,0x3,0x42,0x5,0x72,0xd,0xc2,0x12,0xf4,0xe, +0xd,0x7,0x6a,0x2,0x1e,0x8,0x8e,0x15,0x1a,0x18,0xf8,0xc, +0xf7,0x6,0xb0,0x4,0x3,0x2,0x94,0x11,0xf1,0x22,0x93,0x13, +0x30,0x3,0x67,0xb,0x8d,0x1,0x9d,0xef,0xc1,0x9,0xa8,0x21, +0x66,0x5,0x8b,0xf1,0x62,0x2,0x9a,0x6,0x24,0x2,0x57,0xc, +0x4a,0x9,0xaf,0xfc,0x96,0x5,0xb1,0xe,0x12,0xa,0x7c,0x11, +0xe5,0x17,0x9e,0x7,0xae,0x0,0xa2,0xc,0xf7,0x8,0xa8,0x1, +0x7b,0x12,0x6f,0x1a,0x7a,0x8,0x5b,0x6,0x4d,0x15,0x23,0x10, +0x4,0x5,0x8,0xb,0x2e,0x10,0x79,0x12,0x7f,0x1a,0x54,0x18, +0x18,0x14,0x27,0x1d,0xbb,0x16,0x43,0x3,0x89,0xd,0x6b,0x1d, +0x3a,0x10,0x23,0x11,0x37,0x27,0x5,0x1c,0xd7,0x4,0xd7,0x11, +0xd9,0x1b,0xdc,0xb,0x6b,0x12,0x18,0x29,0xca,0x1d,0xcf,0x7, +0x5e,0xa,0xb8,0x8,0x5c,0x0,0xbe,0x13,0x49,0x25,0x3a,0x11, +0xb8,0x3,0xd6,0xf,0x19,0xd,0x39,0x9,0x36,0x1c,0xa0,0x1a, +0x2e,0x5,0x29,0xd,0x46,0x15,0xba,0x2,0xf5,0x9,0x95,0x20, +0x9f,0xc,0xe1,0xf9,0x5d,0x14,0x64,0x21,0xde,0xc,0x98,0x8, +0xc4,0x12,0xa1,0x12,0xed,0x15,0x6a,0x1a,0x1f,0x11,0x5b,0xc, +0x24,0x15,0xf7,0x1a,0xcb,0x20,0xc6,0x27,0xd2,0x1c,0xc7,0xe, +0x1,0x19,0xe2,0x20,0x9c,0x14,0x12,0x18,0x46,0x23,0xa6,0xb, +0xac,0xf6,0x42,0x10,0xea,0x25,0x87,0x18,0x65,0x10,0xda,0x11, +0x16,0xc,0x9d,0x14,0x6,0x26,0x2d,0x22,0x29,0x19,0xd6,0x19, +0xf3,0x11,0xbb,0xc,0x54,0x1b,0x2c,0x21,0xae,0x13,0xf3,0x14, +0x2c,0x23,0x84,0x19,0x1f,0x7,0x2c,0x15,0xe9,0x28,0xb1,0x16, +0xf9,0x1,0xba,0xf,0x35,0x19,0xf4,0xd,0x38,0x13,0xf8,0x20, +0x5f,0x1a,0x25,0x15,0xd,0x1c,0x4f,0x19,0x3,0x15,0x92,0x1b, +0xd4,0x1c,0x8c,0x17,0xe2,0x13,0xdd,0xa,0x1d,0x7,0xdd,0x16, +0x83,0x22,0x80,0x18,0x98,0xe,0x64,0xf,0x96,0xc,0x46,0x9, +0xc3,0x11,0xda,0x19,0xf0,0x12,0x99,0x7,0x7a,0x6,0x33,0x11, +0x2e,0x1f,0xed,0x1d,0x68,0xd,0xe6,0xa,0xf8,0x14,0x2f,0xd, +0x11,0x5,0x41,0x16,0xce,0x1e,0x42,0x10,0x14,0xb,0xfb,0x5, +0x0,0xf1,0x89,0xf4,0xc5,0x15,0xe,0x20,0x48,0x11,0xe4,0xd, +0x24,0x11,0xe5,0xd,0xe1,0x10,0x22,0x1a,0x18,0x1b,0x81,0x17, +0x20,0x19,0x47,0x17,0xa8,0xc,0xe2,0x9,0xda,0x13,0x3c,0x19, +0xd1,0x18,0xc7,0x18,0xc4,0xe,0x6e,0x4,0x8d,0xf,0xe,0x1c, +0x53,0x15,0xcd,0x11,0xe5,0x17,0x23,0x13,0xa5,0x9,0xe6,0xa, +0xe0,0x11,0xd,0x17,0xe8,0x14,0x5,0xd,0xac,0xc,0xa8,0x10, +0x9,0xf,0x31,0x15,0x4f,0x22,0x17,0x1e,0xc9,0x11,0x7e,0x13, +0x1a,0x12,0x9a,0x5,0x46,0x9,0xa0,0x17,0x5a,0xf,0x6d,0xff, +0xc3,0x7,0x23,0x14,0xb3,0xf,0x25,0x11,0xdd,0x19,0x87,0x11, +0x6b,0x6,0x3,0xb,0x8b,0xe,0x9,0x10,0xfc,0x14,0x1d,0x7, +0xe3,0xf0,0x77,0xf7,0x96,0xa,0x22,0x11,0x55,0x19,0xb1,0x1b, +0x5e,0xa,0x6f,0x2,0x21,0xd,0xd,0x10,0x59,0xc,0x93,0xc, +0x59,0xb,0xa9,0xd,0xa7,0x10,0xed,0x8,0x5b,0x8,0x34,0x15, +0x2f,0x12,0x32,0x5,0xb4,0xc,0xad,0x16,0x8c,0xe,0xe1,0xf, +0xf1,0x1f,0x7b,0x1a,0x62,0x3,0x96,0xff,0x5a,0x8,0x63,0x7, +0xf2,0xb,0x1d,0x1a,0x60,0x19,0x9c,0xf,0xad,0xd,0x5,0x7, +0xf6,0x2,0xa5,0x15,0x45,0x21,0xd1,0xf,0x76,0x6,0x6f,0x13, +0x6c,0x1a,0x27,0x1a,0x1f,0x1d,0x51,0x16,0x72,0x3,0x64,0xf6, +0x2a,0xfa,0x23,0xb,0xf9,0x16,0xaa,0xf,0x5e,0x4,0x2f,0x7, +0x19,0xd,0x1,0x8,0xb5,0x2,0x40,0x9,0x20,0x10,0x97,0xc, +0x8b,0x9,0x82,0xa,0x94,0x5,0x8,0x4,0xb0,0xf,0xd7,0x18, +0x4e,0x18,0x65,0x13,0xe9,0x7,0xeb,0x4,0x8c,0x14,0xf4,0x17, +0x39,0xc,0xd,0x14,0x1d,0x1b,0xae,0x4,0x9e,0xfb,0x3e,0x10, +0x6f,0x13,0x44,0x7,0x7a,0xf,0xc4,0x19,0xde,0xf,0xc7,0x5, +0x65,0x7,0x62,0xc,0xdf,0xf,0x4f,0xd,0x1,0x8,0x59,0xb, +0xa5,0xf,0xa4,0x7,0xf1,0x0,0xe5,0x6,0xc6,0x8,0x8c,0x3, +0x96,0xa,0x78,0x17,0xdd,0x17,0x36,0x15,0x31,0x13,0x14,0x7, +0x2,0x2,0x8f,0xf,0xde,0x15,0x54,0x11,0xe8,0x13,0x5f,0x11, +0x7a,0x7,0x7c,0xc,0xaf,0x14,0xa9,0xf,0x32,0xf,0x73,0x11, +0x99,0x8,0xe8,0x8,0x5f,0x15,0xe1,0x11,0x4a,0x7,0xbe,0xd, +0x5f,0x14,0xc7,0xb,0x70,0x8,0x4b,0x14,0xe9,0x18,0x26,0xb, +0x58,0x1,0xb5,0x7,0x46,0xa,0x53,0x4,0xbd,0x9,0xc2,0x15, +0xbf,0x14,0x3,0xd,0x5e,0xb,0xda,0xc,0xd7,0xb,0x99,0x8, +0x15,0xb,0xfd,0x12,0xe9,0xb,0x1a,0xf9,0x3b,0xfd,0x13,0x12, +0x4a,0x12,0xb6,0x8,0x4f,0xe,0x4b,0xe,0x8c,0xfe,0xbb,0xfd, +0x5a,0x10,0xe2,0x18,0x33,0x12,0x3d,0xb,0x18,0x6,0x5b,0x5, +0x1e,0xc,0xaf,0xb,0x73,0x2,0xea,0x5,0x36,0xe,0x4e,0x7, +0xb6,0x7,0xe3,0x18,0xde,0x17,0x86,0x9,0x99,0xe,0xaa,0x12, +0xba,0x5,0x3,0x7,0x3b,0x12,0x98,0xa,0x78,0x4,0x33,0x10, +0x97,0x13,0xa7,0xb,0x63,0xc,0x8d,0xe,0xd,0x8,0xbb,0x5, +0x60,0xd,0xd3,0x12,0x11,0x10,0xaa,0xc,0x74,0xc,0x49,0xa, +0xba,0x6,0xc2,0x6,0x3a,0x9,0x54,0xd,0x50,0x10,0x80,0xb, +0x4f,0x6,0xb2,0x7,0xa3,0x2,0x4,0xfb,0x61,0x3,0x90,0xb, +0x3,0x5,0xa3,0x5,0xee,0x9,0xd1,0xfd,0xc8,0xfc,0xb7,0x13, +0xcf,0x17,0x8f,0x5,0x86,0x2,0xbf,0x4,0xf4,0xfb,0x8,0x2, +0xe7,0x11,0x99,0xb,0x3d,0x3,0x85,0xd,0xba,0xa,0x28,0xfb, +0xd3,0x3,0x4f,0x11,0x9b,0x7,0x4f,0x6,0x49,0x12,0xa4,0x9, +0xc,0x2,0x8d,0x11,0xbd,0xf,0xfe,0xfd,0xe1,0x7,0xd6,0x12, +0xa5,0x0,0x28,0xfc,0x47,0xf,0x1f,0x10,0x38,0x5,0x63,0x8, +0x39,0xd,0x90,0xc,0xb2,0xb,0xe5,0x7,0x7f,0xb,0x14,0x16, +0x6a,0xc,0xbf,0xf9,0x8f,0x3,0x65,0x14,0x3d,0x9,0x1,0x0, +0xb9,0xf,0xb2,0x12,0xa1,0xfe,0xd7,0xfc,0xa8,0xe,0x50,0x10, +0xb1,0x6,0x48,0x6,0xa3,0x5,0x51,0x3,0x79,0x9,0x13,0xd, +0x94,0xc,0x2e,0x12,0x31,0xb,0x19,0xf7,0x2a,0xfd,0x34,0x11, +0xbd,0x6,0xf1,0xf8,0x28,0x8,0xa2,0xc,0x37,0xfc,0x49,0x3, +0xf2,0x15,0xe5,0xc,0xfe,0x0,0xf3,0xa,0x10,0xe,0x90,0x2, +0x45,0x1,0x3b,0x6,0x5a,0x4,0xe7,0x5,0x59,0xa,0x40,0x7, +0x45,0x6,0x51,0xb,0xde,0xa,0x1e,0x9,0x58,0xa,0x16,0x7, +0xfb,0x8,0xc6,0x10,0xc2,0x7,0x89,0xfe,0x33,0xf,0xd3,0x11, +0x98,0xf5,0x78,0xf5,0x45,0x12,0x76,0xf,0x21,0xfc,0x98,0x1, +0x17,0x6,0x46,0xfc,0x9d,0xfe,0xe9,0x8,0x3a,0x10,0x53,0x18, +0x6e,0xd,0xc9,0xf4,0x1,0xfe,0xf4,0x17,0x3a,0xa,0x44,0xf7, +0x99,0xf,0xbf,0x1d,0x2e,0x0,0xef,0xf6,0xa1,0x11,0x4d,0x13, +0xae,0xfe,0x93,0x2,0xcc,0xf,0xa8,0xb,0xe0,0x5,0x6e,0x6, +0x4f,0xa,0x11,0x13,0x9d,0xe,0x9d,0xfd,0xf3,0x1,0x36,0xc, +0x1d,0xfa,0x3,0xf2,0x9e,0xb,0x64,0x13,0x8f,0x3,0xe9,0x7, +0xa7,0x10,0x44,0x6,0x59,0x3,0x73,0x7,0x64,0xff,0x4f,0x0, +0x25,0xa,0x7b,0x0,0x2a,0xfb,0x12,0xe,0xc8,0xd,0xe6,0xfb, +0x72,0xb,0x54,0x1d,0x35,0x4,0xfc,0xf7,0x64,0x10,0x2d,0xc, +0xc4,0xf7,0xfc,0xa,0xd1,0x14,0x8e,0xfa,0xa2,0x0,0xb1,0x14, +0xb7,0xf7,0x33,0xea,0x8e,0x12,0xb2,0x19,0x4e,0xfd,0xc2,0x7, +0x77,0x15,0x1e,0xfe,0x84,0xf9,0x68,0xc,0x68,0xa,0x93,0x8, +0xdf,0xf,0x4f,0x1,0x76,0xf9,0xbd,0xc,0x9d,0x7,0x24,0xf2, +0xbe,0x4,0xcc,0x18,0x78,0x4,0x9f,0x0,0x15,0x17,0xc0,0xc, +0xd9,0xf9,0xd7,0x8,0xd6,0xd,0x10,0x0,0x6b,0x8,0x68,0xa, +0x37,0xf7,0x30,0x2,0x39,0x13,0xf5,0xfb,0x37,0xf7,0x92,0x13, +0xd4,0x9,0x33,0xf8,0x66,0x14,0xb1,0x19,0x5b,0xf6,0x14,0xfa, +0x3,0xf,0x9b,0xfb,0xac,0xf4,0x88,0xc,0xdb,0x4,0x85,0xf2, +0x99,0x5,0xb4,0xd,0x3a,0xf9,0xeb,0x2,0xfe,0x17,0x79,0x3, +0xde,0xf6,0xf4,0x12,0x68,0x14,0x57,0xf6,0xf5,0xf9,0x2,0x9, +0xd1,0xfa,0xb9,0xf9,0xf2,0xb,0xed,0x4,0xd5,0xfa,0xea,0x4, +0x75,0x0,0xd5,0xf8,0x9a,0xa,0xdc,0xd,0x8a,0xfa,0x2a,0x0, +0xd,0xe,0x1b,0x2,0xdd,0xfb,0xbc,0x4,0xae,0x1,0xfb,0x2, +0x4d,0xf,0x48,0x6,0x1c,0xfc,0x85,0x10,0x4,0x15,0x77,0xf9, +0x74,0xfe,0xf2,0x1a,0xe2,0xa,0x10,0xf2,0x3c,0x6,0x75,0x11, +0x21,0xfc,0x12,0xfe,0xb5,0xc,0x3a,0x2,0xf6,0xff,0x84,0xb, +0x41,0x3,0x2e,0x1,0xb1,0xf,0x1b,0x3,0xda,0xf1,0x74,0x4, +0x27,0xd,0x3e,0xf9,0xe7,0xfb,0xfd,0xc,0x88,0x2,0xc2,0xf4, +0x9a,0xfd,0x59,0x5,0xdd,0x2,0x2c,0x4,0x5e,0x5,0x7a,0x1, +0xd7,0x2,0x7,0x8,0xdc,0x5,0xc9,0x2,0x4e,0x5,0xe5,0x1, +0x85,0xfb,0x96,0x0,0x93,0x4,0x9f,0xfe,0xc6,0x0,0x90,0x7, +0x6e,0x5,0xa,0x8,0x11,0xa,0x2a,0xfb,0x99,0xf8,0x6,0xa, +0xc0,0x4,0x37,0xf7,0xa7,0xa,0xc8,0x16,0x3f,0xff,0x9c,0xfb, +0xb0,0x13,0xb3,0xe,0xf3,0xf8,0x73,0x0,0xc6,0xb,0x37,0x0, +0xeb,0xfb,0xce,0x3,0x91,0xff,0x1c,0xfe,0xa9,0x7,0x78,0x0, +0x43,0xf5,0xaf,0x0,0xa7,0x4,0xb6,0xf8,0xad,0x2,0x77,0x11, +0xdf,0x3,0x42,0xf8,0x10,0xfc,0x87,0xf6,0x7c,0xf4,0x80,0x1, +0xef,0x7,0x60,0x9,0x20,0x9,0x97,0xfa,0x36,0xf5,0x80,0x5, +0x3c,0x6,0xce,0xfb,0xa,0x8,0xba,0xe,0x7e,0xfb,0x3c,0xf8, +0x9b,0x7,0x89,0x2,0x10,0xf9,0x21,0x6,0x81,0xb,0x73,0xfd, +0xbb,0x0,0x39,0x10,0x10,0x8,0x1b,0xfd,0xa7,0x8,0x4,0xb, +0x77,0xff,0xb8,0x6,0x84,0xc,0xd4,0xfa,0x16,0xf7,0x6e,0x3, +0xfe,0xfb,0x63,0xf6,0x24,0x6,0x14,0x7,0x84,0xfa,0x25,0x0, +0xbd,0x4,0x62,0xfb,0xba,0x0,0x67,0xc,0xca,0x1,0x61,0xf7, +0xb,0x3,0xa1,0x9,0xe,0xfe,0xff,0xf7,0xb7,0xfc,0xe3,0xfe, +0x8e,0x0,0x37,0x3,0x63,0x2,0x48,0x5,0xbb,0x8,0xcb,0x2, +0x3b,0x4,0x50,0xd,0xef,0x0,0xa1,0xf4,0xa4,0x8,0x2e,0x12, +0x30,0xff,0xcd,0x1,0x67,0xd,0x94,0xf8,0x36,0xee,0x3,0x5, +0x67,0xa,0x58,0x1,0xce,0xc,0x93,0x11,0x77,0x2,0x44,0x2, +0x51,0xa,0xe8,0xfe,0x9a,0xf3,0x6,0xfa,0x18,0xfe,0x27,0xfa, +0x19,0xfe,0x15,0x5,0x25,0x3,0x89,0x1,0x2e,0x3,0xfc,0xfc, +0x49,0xf8,0x63,0x0,0x71,0x6,0x5a,0x7,0xfc,0xd,0x1e,0xd, +0x71,0x0,0x3d,0xfd,0x8b,0xff,0x26,0xfb,0xaa,0xfd,0x4d,0x2, +0x45,0xfa,0x9,0xfa,0x8d,0x6,0xf8,0x3,0x54,0xfb,0x72,0x2, +0xc,0x1,0x18,0xec,0x2a,0xe6,0xce,0xf4,0x5a,0xfa,0x8,0xfa, +0x3e,0x6,0xe1,0xd,0xfe,0x3,0xaa,0xfe,0x23,0x3,0xd5,0x0, +0x65,0xff,0x7b,0x4,0x5,0x0,0x25,0xfb,0x2,0x3,0x7e,0x0, +0xab,0xf3,0xb7,0xf9,0xc7,0x3,0xe5,0xfb,0x67,0xfa,0x7f,0x6, +0xc4,0x7,0x9e,0x2,0x8d,0x6,0xc5,0x9,0x34,0x4,0x42,0xfe, +0xa9,0xff,0xf8,0x2,0xd2,0xfb,0x46,0xf2,0x49,0xf9,0x1c,0x3, +0x6d,0xfa,0xb7,0xf0,0x2c,0xf6,0x5a,0xf8,0x1b,0xf1,0xf3,0xf5, +0x29,0x6,0xf7,0x6,0x6b,0xfa,0x43,0xfb,0x7e,0x0,0x1e,0xf4, +0xa7,0xee,0x43,0xff,0xb2,0x0,0x14,0xf1,0xea,0xf8,0x93,0x8, +0xd8,0xfd,0xdf,0xf4,0x6a,0x2,0x80,0x7,0xe5,0xfc,0xa5,0xfa, +0xa4,0xfd,0x78,0xf7,0x83,0xf1,0xab,0xf5,0xf7,0xfb,0x84,0xfe, +0x17,0x0,0x8a,0xfe,0xb4,0xf9,0x90,0xfa,0xec,0xfe,0x6,0xfd, +0xae,0xfd,0xad,0x7,0x3c,0xa,0x7c,0xff,0xc3,0xf7,0xf8,0xf7, +0xbf,0xf7,0x96,0xf6,0x40,0xfa,0xbf,0x0,0x46,0xfe,0xb5,0xf3, +0x92,0xf3,0xe7,0xfb,0xc8,0xfa,0x6f,0xf9,0x94,0x0,0x88,0xfd, +0x51,0xf4,0xed,0xfa,0x9d,0x2,0x21,0xfa,0x86,0xf4,0xf9,0xfa, +0x93,0xfc,0x26,0xf5,0xba,0xf0,0x79,0xf3,0xd,0xf6,0xc1,0xf5, +0x55,0xf9,0x3b,0xfe,0xbb,0xfc,0xb9,0xfc,0xc0,0xff,0x4a,0xf9, +0x4f,0xf4,0x29,0xff,0xb2,0x5,0x8a,0xfe,0xe7,0xfc,0xb7,0xfd, +0xa,0xf6,0xfe,0xf6,0xee,0x3,0xd4,0x4,0x6,0xfa,0x1c,0xf8, +0xfc,0xfa,0x60,0xf5,0x3c,0xf2,0x87,0xfb,0x22,0x0,0x9f,0xf6, +0xdb,0xf2,0xc6,0xfc,0xa8,0x1,0x17,0xfd,0x56,0xfe,0x64,0x4, +0xfd,0xfe,0x73,0xf1,0xc2,0xf2,0xb6,0x1,0xff,0x1,0xc,0xf7, +0xdd,0xfd,0xc0,0x7,0x7a,0xf9,0x2d,0xec,0xb5,0xf3,0x86,0xf6, +0x32,0xf1,0x8b,0xf8,0xc9,0x0,0x2,0xfb,0xb4,0xf7,0x3e,0xfe, +0xb,0xff,0x14,0xf7,0xae,0xf4,0xc0,0xfb,0x11,0x0,0x58,0xfd, +0xb7,0xfc,0x6d,0xfe,0x7a,0xfb,0xe4,0xf5,0xce,0xf0,0xe8,0xed, +0xda,0xf0,0xd,0xf4,0x3e,0xf3,0x85,0xf6,0xb3,0xfa,0xa2,0xf7, +0x19,0xf7,0x4e,0xfa,0xb1,0xf5,0x19,0xf1,0xc3,0xf3,0x1d,0xf4, +0xd7,0xf5,0xbf,0xfd,0x5d,0xff,0xdf,0xfb,0x7b,0xfc,0x8c,0xfb, +0x92,0xfd,0x45,0x8,0xdf,0x7,0x22,0xfc,0x3b,0x0,0x58,0x9, +0x9a,0xfe,0xa8,0xf7,0x1c,0x3,0x80,0xfe,0xe8,0xe9,0xd7,0xee, +0x9,0x2,0x51,0xff,0x73,0xfa,0xc4,0x4,0xab,0x2,0x1f,0xf8, +0x59,0x0,0x44,0x7,0xad,0xfc,0x90,0xfa,0xc4,0x0,0xa1,0xfa, +0xaf,0xf6,0xce,0x1,0x17,0xa,0x49,0x4,0xd4,0xf8,0xa5,0xf8, +0x85,0x7,0xb,0xb,0x55,0xfc,0xec,0xfc,0x8e,0x9,0x67,0x0, +0x9a,0xf5,0xb0,0x3,0x87,0x9,0xd,0xf8,0x11,0xf2,0x63,0xfa, +0xb5,0xf7,0xa2,0xf4,0xf8,0xff,0xc3,0x5,0x98,0xfe,0x4,0xfe, +0x91,0x0,0x87,0xf7,0x4e,0xf2,0x45,0xf9,0xac,0xf9,0xd5,0xf7, +0xee,0x0,0x74,0x1,0xda,0xf5,0x93,0xf6,0xd7,0xfa,0x53,0xf3, +0x8,0xf3,0x13,0xf8,0x78,0xee,0x4c,0xea,0xfd,0xf9,0x68,0x1, +0xb2,0xfa,0xb2,0xfb,0xee,0xfe,0x7,0xf8,0xc1,0xf2,0xa4,0xf5, +0x67,0xf8,0x6b,0xfa,0xbc,0xff,0xf1,0x4,0x6e,0x3,0x48,0xf8, +0x49,0xec,0x9f,0xef,0x35,0xfd,0xe5,0xfd,0x28,0xf6,0x8e,0xf9, +0xeb,0xf9,0x6a,0xed,0xac,0xef,0x9,0xfe,0x65,0xf8,0x8b,0xef, +0x8a,0xf9,0x86,0xfa,0xce,0xef,0x55,0xf6,0x47,0xff,0x77,0xf9, +0xdb,0xfa,0xa,0x2,0x39,0xfd,0x8e,0xfb,0x4,0x4,0xd1,0x3, +0x4,0xfa,0xfc,0xef,0x85,0xe5,0xdc,0xdd,0xc4,0xda,0x40,0xdb, +0xc6,0xe4,0xf,0xf1,0x27,0xf1,0x70,0xec,0xb1,0xf1,0xdf,0xfa, +0xac,0xff,0x5f,0x4,0xfa,0x7,0x9d,0x3,0xed,0xfe,0x85,0x6, +0x25,0x10,0x9c,0xb,0x3c,0x3,0xa0,0x4,0xe6,0x5,0x13,0x0, +0x6c,0xfc,0xaf,0xfe,0x73,0x2,0x4c,0x4,0x8f,0x3,0xe7,0x4, +0x5c,0x9,0x5e,0xa,0x62,0x8,0x13,0x6,0xbd,0xfe,0xe0,0xf5, +0x86,0xf5,0x2c,0xfd,0x69,0x8,0xe7,0x12,0xb0,0x16,0x1,0x17, +0xe8,0x17,0xca,0x13,0xab,0xd,0x4c,0xd,0x7,0xb,0x2,0x2, +0x50,0xfb,0x54,0xf8,0x11,0xf5,0xf9,0xf6,0x24,0xff,0xf0,0x0, +0xa0,0xf7,0x62,0xf3,0xdd,0xfb,0x8d,0xfd,0x6f,0xf3,0x43,0xf5, +0x10,0x1,0xb3,0xfe,0xba,0xf6,0x4,0xf9,0xe,0xf9,0xa7,0xf2, +0xc7,0xf1,0x6f,0xf5,0x96,0xf6,0xcd,0xef,0xeb,0xe1,0x50,0xe0, +0xd8,0xf0,0x5,0xfc,0x36,0xfd,0x3d,0x0,0xa5,0xfc,0xd0,0xf3, +0xfc,0xf6,0xcd,0xfc,0xaa,0xf9,0xdf,0xf9,0x91,0xfa,0xf1,0xf2, +0xe1,0xf4,0xd3,0x2,0xb2,0x4,0x22,0x0,0x59,0x7,0xd3,0x7, +0xe9,0xf6,0x61,0xf0,0x9b,0xf9,0xbb,0xfb,0xb0,0xfc,0xd2,0x6, +0xcf,0x6,0xdf,0xfd,0x1e,0x1,0x9c,0x3,0xf8,0xfb,0xf7,0x0, +0x6b,0xb,0xa4,0x2,0xc2,0xf8,0xde,0xfe,0x64,0x4,0x9f,0x4, +0x54,0x3,0x85,0xfb,0xfd,0xf7,0x7e,0xff,0x9a,0x1,0x73,0xfe, +0x39,0x1,0x98,0x0,0xc0,0xfb,0x4e,0xff,0xa3,0x1,0x92,0xf7, +0xdd,0xee,0xef,0xf0,0x12,0xf6,0x91,0xf8,0xb2,0xf6,0x42,0xf1, +0x34,0xf1,0x3e,0xfa,0x37,0xfe,0x7d,0xf5,0x42,0xf1,0x82,0xf9, +0x45,0xfd,0xd5,0xfa,0x79,0xfe,0x1d,0xfe,0x96,0xf4,0x7c,0xf3, +0x90,0xf7,0x9e,0xf4,0x62,0xf8,0x34,0x2,0x30,0xfe,0x71,0xf7, +0x8e,0xfc,0x53,0xfe,0x3b,0xfb,0x6d,0xff,0x3,0x0,0x69,0xf8, +0x34,0xf9,0x8b,0xff,0x85,0xfc,0x69,0xf7,0x94,0xfa,0x1e,0x0, +0xd,0x4,0x2d,0x7,0x4e,0x4,0x63,0xfc,0x9f,0xfa,0xef,0xff, +0x12,0x4,0x4a,0x5,0x21,0x1,0x89,0xf7,0x74,0xf6,0x63,0xff, +0x11,0x1,0x50,0xfe,0x92,0x2,0x30,0x3,0xd1,0xfd,0x2e,0xfe, +0x1d,0xff,0xc9,0xff,0x1b,0x9,0xda,0xc,0xf2,0x3,0x42,0x2, +0x66,0x5,0x4d,0x0,0x49,0x0,0x7e,0x5,0x20,0x0,0x9c,0xfb, +0x7,0x0,0xf7,0xfe,0x24,0xfe,0x20,0x7,0x73,0x8,0x3b,0xfe, +0x24,0xfa,0x75,0xfa,0x1a,0xf7,0xa6,0xf9,0x6b,0x3,0xc5,0x5, +0xf7,0xfe,0x5f,0xfb,0xc5,0xfe,0xe9,0x3,0xbd,0x6,0xb4,0x3, +0x8e,0xfd,0xc1,0xff,0x1f,0x9,0xa0,0xa,0x3c,0x4,0xc8,0x0, +0x3b,0x0,0x8,0x1,0x4a,0x3,0xb,0x1,0xbf,0xfc,0x21,0xfe, +0x4c,0x0,0x2f,0x1,0xc1,0x4,0xbc,0x2,0x6c,0xfb,0xf,0xff, +0x69,0x7,0x33,0x3,0xc7,0xfd,0x61,0x3,0x1e,0x6,0x58,0x0, +0x58,0xff,0x51,0x3,0x7e,0x1,0xfa,0xfd,0xe3,0x0,0x55,0x3, +0x9e,0x0,0xc7,0xff,0x66,0x0,0x14,0xff,0x7c,0x1,0x40,0x4, +0x42,0x0,0xa8,0xfe,0x2a,0x0,0x3a,0xfb,0x5c,0xfc,0x30,0x8, +0x56,0x7,0x8f,0xfc,0x66,0xfc,0x58,0xfb,0x82,0xf5,0x1e,0xff, +0x42,0xb,0xdd,0x3,0xe9,0xfc,0xa8,0x4,0xae,0x8,0xe2,0x3, +0x85,0x1,0x27,0x2,0xbb,0x1,0xda,0xfe,0x6,0xfb,0x21,0xfc, +0xf7,0x0,0x14,0x2,0x47,0x1,0x52,0x1,0x52,0xfc,0x9c,0xf4, +0xa4,0xf6,0x2a,0x1,0x39,0x5,0xf4,0xff,0x7d,0xfc,0x94,0xfe, +0x15,0x2,0x6f,0x6,0x79,0x8,0xb9,0x2,0xaa,0xfa,0xd6,0xf8, +0x64,0xfb,0x24,0xfe,0xee,0x0,0xfd,0x3,0xcd,0x5,0xba,0x1, +0xf9,0xf8,0xa2,0xf7,0x7e,0xff,0x3a,0x3,0xd6,0x0,0x75,0x0, +0xe4,0xff,0x8b,0xfb,0xe7,0xf8,0xff,0xf9,0x58,0xf8,0xaa,0xf2, +0x3a,0xf4,0x1e,0x0,0x25,0x3,0x23,0xf8,0xce,0xf7,0x5e,0x4, +0x69,0x4,0x3b,0xfc,0x8e,0xfe,0x34,0x0,0x7e,0xfa,0x42,0xfd, +0x22,0x4,0x62,0xfe,0x7c,0xf6,0xe,0xfc,0xef,0x3,0xd4,0xff, +0x12,0xf9,0x93,0xfc,0xf0,0x2,0x36,0x3,0xb0,0x3,0xe4,0x4, +0x7e,0xff,0x7c,0xf9,0x2f,0xf9,0x18,0xf9,0xd4,0xf9,0xe3,0xfc, +0x6,0xfb,0x63,0xf6,0xa7,0xf4,0xa5,0xf2,0x83,0xf6,0x60,0x2, +0x31,0x0,0x75,0xee,0xc9,0xeb,0x4c,0xf9,0x5c,0xfd,0x26,0xfa, +0x2,0xfc,0xe9,0xf9,0x7f,0xf2,0xaf,0xf5,0x97,0x2,0xd2,0x6, +0xe9,0xfd,0x7e,0xf5,0x75,0xf6,0xd1,0xf9,0xa3,0xf7,0xcd,0xf6, +0xe9,0xfd,0xf1,0xff,0x40,0xf4,0xcc,0xec,0xb4,0xf3,0xd4,0xf9, +0x3,0xfd,0x2f,0x5,0xe9,0x3,0x4,0xf6,0x65,0xf5,0x7e,0x0, +0xe8,0xfe,0x61,0xfa,0x65,0x1,0x87,0x2,0xee,0xf9,0xd8,0xfa, +0xc5,0x2,0xd7,0x2,0x72,0xfe,0xcf,0xfd,0x4b,0xff,0x5c,0xfe, +0x15,0xfb,0x56,0xfb,0x93,0x0,0x26,0x2,0x6d,0xfc,0x3f,0xf8, +0xd3,0xfb,0xce,0x0,0x6b,0x0,0x96,0x0,0xc0,0x5,0x18,0x5, +0x3,0xfd,0x96,0xfc,0xee,0x0,0x23,0xfd,0x4c,0xfb,0x1a,0x1, +0xc1,0xfe,0xae,0xf6,0xd4,0xf8,0x89,0xfe,0x52,0xfd,0xea,0xf9, +0x8b,0xf6,0x4c,0xf3,0xf0,0xf4,0x9f,0xfa,0xc0,0xfe,0xe,0xfd, +0xee,0xf5,0x74,0xf4,0xdf,0xfd,0xd5,0x2,0x87,0xfc,0xc1,0xf9, +0xd3,0xfc,0xe9,0xf8,0xb7,0xf2,0x86,0xf7,0x38,0xff,0xdd,0xfb, +0xd7,0xf5,0x8e,0xf9,0x24,0xfe,0x47,0xfa,0x82,0xf7,0x5e,0xfa, +0xa1,0xf7,0x33,0xef,0x78,0xf1,0xe8,0x0,0xac,0x7,0xf,0xf9, +0x3c,0xe9,0xed,0xea,0x4d,0xf1,0xa7,0xf2,0x21,0xfa,0xc0,0x2, +0xfd,0xfd,0x86,0xf7,0x47,0xfb,0x44,0xfd,0x62,0xf9,0xce,0xf9, +0x6c,0xfc,0x7d,0xf8,0x16,0xf2,0x4a,0xf3,0x62,0xf9,0xcb,0xf8, +0x46,0xf5,0x4e,0xf9,0x50,0xfa,0xc9,0xf1,0xa5,0xf2,0x3a,0xfd, +0x15,0xfb,0xf3,0xf1,0x15,0xf4,0x22,0xf8,0x8b,0xf4,0x40,0xf3, +0x56,0xf7,0x3e,0xf8,0x55,0xf3,0xb6,0xef,0x6a,0xf4,0x7b,0xfc, +0x32,0xfe,0x42,0xfb,0x30,0xf9,0xa,0xf8,0x74,0xf9,0xc4,0xfe, +0xae,0x4,0x17,0x7,0x8,0x1,0x8a,0xf4,0x9,0xef,0x2f,0xf4, +0x6,0xf9,0x1a,0xfa,0xc0,0xfa,0x57,0xf9,0xf1,0xf6,0x79,0xf8, +0x1f,0xfd,0x12,0x0,0xa3,0xff,0x35,0xfe,0xcf,0xfc,0xf5,0xfa, +0x65,0xfc,0xaa,0xff,0xf7,0xfa,0xe6,0xf3,0x60,0xf8,0x15,0xff, +0x1a,0xfd,0xd4,0xfd,0xba,0x2,0xe,0xfe,0xcd,0xf4,0xd3,0xf6, +0x55,0x2,0x75,0x6,0xd5,0xfa,0x7,0xf0,0x71,0xf6,0x93,0xff, +0x92,0xfd,0xf6,0xfb,0x44,0xfd,0xbf,0xf9,0xf0,0xf8,0x88,0xfc, +0xaf,0xfa,0xe,0xf8,0x4a,0xfa,0xf9,0xfb,0x18,0xff,0xa7,0x3, +0x53,0xff,0xe7,0xf5,0x4b,0xf5,0xd4,0xfb,0x5c,0xff,0x91,0xfd, +0x82,0xf9,0xea,0xf4,0xec,0xf0,0x85,0xf2,0xa6,0xfb,0xfa,0x2, +0xc2,0x0,0x99,0xf8,0x97,0xf2,0xab,0xf7,0xb,0x6,0xdf,0xa, +0xe2,0xff,0x3a,0xf7,0xae,0xfa,0x43,0x2,0x12,0x6,0xe1,0x1, +0xd4,0xf8,0x72,0xf5,0xee,0xf9,0xfa,0xff,0xf7,0x4,0xbe,0x7, +0x81,0x4,0x5,0xfb,0x55,0xf6,0xa5,0x0,0xd2,0xb,0x97,0x6, +0xf5,0xfe,0x25,0x2,0xbb,0x4,0xc6,0x7,0xab,0x11,0x23,0x11, +0xe2,0x1,0x91,0xf7,0xa0,0xf7,0x9f,0xfe,0x1d,0x7,0x72,0x2, +0xd4,0xf8,0xc7,0xfe,0xd1,0x5,0x6,0x2,0x50,0x5,0xe5,0x9, +0x6f,0xff,0x14,0xfa,0x71,0x5,0x52,0xc,0xf4,0x8,0xdf,0x5, +0x30,0x2,0x83,0xfd,0x31,0xfe,0x34,0x5,0x27,0xc,0x76,0xa, +0xb2,0x1,0x39,0xff,0x95,0x5,0xaa,0x7,0xe0,0x1,0xcd,0xff, +0x6a,0x4,0xf6,0x3,0x6f,0xfe,0x33,0x2,0x3,0xa,0x85,0x5, +0x12,0x0,0x26,0x7,0x50,0x9,0xe1,0xfe,0xa0,0xfc,0xd1,0x5, +0x83,0x7,0x2f,0x1,0x76,0x1,0xa,0x6,0x9b,0x3,0xb9,0x0, +0x9e,0x6,0x2,0xb,0xf2,0x7,0xf9,0x4,0xf4,0xff,0xf6,0xfb, +0x93,0x5,0xf4,0xd,0x27,0x6,0xbf,0x2,0x6e,0x7,0x9a,0x3, +0x3d,0x5,0x5d,0xf,0xb3,0x7,0x61,0xfa,0xce,0xff,0xd7,0x4, +0xda,0xff,0x47,0x0,0xda,0x0,0xbe,0xfc,0x43,0xfd,0xc3,0xfe, +0x15,0x1,0x91,0x8,0x34,0x7,0x51,0xfe,0xe2,0x3,0xde,0xf, +0x2e,0xe,0x64,0x8,0x90,0x8,0x3d,0x6,0x50,0x1,0xb3,0x3, +0x90,0xa,0xb1,0x7,0xee,0xfb,0x59,0xfa,0xfc,0x4,0x9f,0x8, +0xb2,0x2,0x67,0xff,0xd2,0xfe,0xb0,0xfe,0x10,0x2,0x99,0x4, +0x5e,0x1,0xe4,0xfc,0xe5,0xfc,0x5,0x2,0x32,0x7,0x2a,0x6, +0xd9,0x1,0xa9,0x2,0x2d,0x7,0xfd,0x6,0x38,0x4,0x56,0x5, +0xe0,0x1,0x11,0xf7,0x1f,0xfa,0xa1,0xa,0xe2,0x9,0xf4,0xfb, +0xf0,0xfb,0x19,0x1,0x31,0x1,0xe8,0x7,0xae,0xc,0xb4,0x5, +0x42,0xff,0xb4,0xf8,0xb2,0xf4,0x65,0x3,0xf6,0xe,0x86,0x0, +0x47,0xf7,0xef,0x0,0x4,0x3,0x7,0x1,0x23,0x7,0x5f,0x4, +0xe9,0xf7,0xae,0xf3,0xca,0xf8,0xbd,0x0,0x70,0x3,0x5d,0xfb, +0xf7,0xf4,0x88,0xf6,0xca,0xf4,0x2b,0xf3,0x2f,0xfa,0xb7,0xfe, +0xed,0xfa,0xdb,0xf8,0x93,0xfc,0xce,0x2,0xb0,0x7,0x35,0x6, +0xf,0xfe,0x43,0xf7,0x3d,0xfb,0x82,0x6,0x26,0x8,0x69,0xfd, +0x32,0xf8,0xce,0xfd,0x6,0x1,0x64,0xfd,0x7e,0xfa,0xb3,0xfb, +0xb9,0xfb,0x11,0xf8,0x7b,0xf9,0x49,0x2,0xb3,0x3,0xfa,0xf9, +0xf8,0xf5,0x8a,0xfd,0x5d,0x2,0x51,0xfc,0xc3,0xf7,0xde,0xfe, +0x7,0x3,0x1b,0xfb,0xfb,0xfa,0x2a,0x5,0xd3,0x1,0xbb,0xf6, +0x7e,0xf8,0x33,0xfe,0x51,0xfe,0x68,0xfc,0x41,0xf6,0x87,0xf3, +0xc3,0xfb,0x5e,0x0,0x34,0xfe,0xcf,0xfd,0x9a,0xf6,0xb5,0xef, +0x1b,0xfc,0xfc,0x6,0x50,0xfc,0x26,0xf3,0xca,0xf6,0xd,0xf9, +0x80,0xfa,0x12,0xfe,0x27,0xfc,0xbc,0xf6,0xa6,0xf4,0x49,0xf6, +0x8e,0xfa,0x64,0xfe,0x3b,0xfe,0xba,0xf9,0x1,0xf4,0xe0,0xf5, +0xbd,0x1,0x4b,0x9,0x55,0x3,0x61,0xfa,0x32,0xfa,0xdb,0xfe, +0x31,0xfb,0xb3,0xf0,0xb2,0xf0,0xa0,0xf8,0x6f,0xf5,0x10,0xee, +0x3b,0xf3,0xce,0xfa,0xa0,0xf7,0x0,0xf0,0x3d,0xee,0x75,0xf5, +0x76,0xfc,0xbb,0xf7,0xb1,0xf0,0x49,0xf6,0x61,0x0,0x4a,0x0, +0x29,0xf9,0xf5,0xf7,0xe5,0xfd,0xf,0xfe,0xa9,0xf7,0xc1,0xf6, +0x26,0xf5,0xa1,0xec,0xa,0xef,0xb8,0xfa,0xd8,0xf7,0xc6,0xee, +0x62,0xf1,0xb9,0xf3,0x11,0xf1,0x8d,0xf4,0x29,0xf8,0xc5,0xf4, +0x8c,0xf3,0x83,0xf8,0xb5,0xfd,0xcf,0xfe,0x58,0xfd,0xf2,0xfe, +0xc4,0x0,0x36,0xfa,0x3e,0xf3,0x68,0xfa,0x99,0x7,0x17,0x7, +0xf5,0xfa,0xa3,0xf7,0x2,0xff,0x39,0xff,0xd9,0xf9,0xc1,0xfc, +0xf,0x0,0xbd,0xfd,0x67,0x0,0xab,0x1,0x68,0xf8,0xa0,0xf4, +0xda,0xfb,0xb,0xff,0x39,0xfd,0xb7,0xfd,0xad,0xff,0x1e,0x0, +0x1,0xfb,0x2,0xf5,0x34,0xf8,0x19,0xfb,0x8,0xf6,0xac,0xf8, +0x46,0x1,0x19,0xfd,0xd4,0xf6,0xb2,0xfe,0xf2,0x4,0xf9,0xf9, +0x59,0xeb,0xff,0xee,0xa3,0x1,0x53,0x8,0xc5,0xfe,0x5d,0xfe, +0x6d,0x9,0x9d,0xc,0x5e,0xa,0xfa,0xc,0x9d,0x12,0xcc,0x1b, +0xd7,0x24,0x97,0x24,0x9f,0x22,0xef,0x28,0x6a,0x2d,0xc3,0x27, +0x5b,0x21,0x3,0x22,0xd8,0x21,0xda,0x14,0xb,0x0,0xd2,0xf5, +0x96,0xf7,0x70,0xf3,0x42,0xe7,0x96,0xe4,0x40,0xeb,0x7b,0xe9, +0x97,0xe4,0x8d,0xed,0xed,0xf6,0x5d,0xf1,0x6e,0xee,0xa9,0xf7, +0xd5,0xff,0xcc,0x5,0x69,0x8,0x37,0xfe,0x63,0xf3,0x7a,0xf4, +0x99,0xf6,0x6,0xf7,0xc1,0xf7,0xf4,0xef,0x3,0xe7,0x1a,0xe6, +0x9c,0xe0,0x40,0xd7,0xd1,0xd2,0x3b,0xc9,0x2e,0xc0,0x7f,0xc6, +0x30,0xcd,0xef,0xce,0xcd,0xda,0xf6,0xe4,0x9c,0xe4,0x36,0xed, +0xbb,0xfa,0xdd,0xfc,0x42,0x1,0x7,0xe,0xcb,0x13,0xda,0x14, +0xfd,0x19,0x38,0x1b,0x5f,0x14,0x38,0xf,0xd9,0x13,0xd9,0x1c, +0x9d,0x1d,0x50,0x16,0x7c,0x10,0xe,0xc,0xad,0xa,0xb9,0x13, +0x8b,0x1b,0x4c,0x13,0x92,0x9,0x0,0xd,0x29,0x10,0x94,0xb, +0xd0,0xb,0xa3,0x11,0xbb,0x13,0x68,0x15,0xad,0x18,0x67,0x16, +0x85,0x10,0x49,0xb,0x9,0x5,0xfb,0x2,0x5c,0x3,0x3e,0xfa, +0xb0,0xf2,0xdb,0xf8,0x89,0xf9,0x39,0xf2,0x39,0xf6,0x26,0xf7, +0xe4,0xe6,0xbe,0xdb,0x40,0xdb,0xb9,0xda,0x34,0xdf,0xf7,0xdd, +0xea,0xcd,0xc8,0xc9,0x25,0xd5,0x8a,0xd6,0x14,0xd5,0x17,0xd9, +0x97,0xd4,0x52,0xd3,0xa8,0xdf,0xbe,0xe2,0x5d,0xdc,0x83,0xe0, +0x21,0xe7,0x72,0xe7,0x3d,0xea,0xf3,0xee,0x63,0xf1,0xf2,0xf1, +0x61,0xf0,0xe6,0xf3,0xdc,0xfc,0x7c,0xfd,0xee,0xf9,0x4b,0x0, +0xd,0x9,0x3a,0xd,0x1e,0x13,0xe1,0x17,0xeb,0x19,0x59,0x21, +0x14,0x29,0x8f,0x28,0x7a,0x27,0xf1,0x28,0x44,0x26,0xfa,0x23, +0x19,0x27,0x20,0x28,0x7f,0x24,0x6f,0x1f,0x59,0x19,0x53,0x1b, +0x4a,0x28,0xf0,0x2a,0x4c,0x1f,0x22,0x1d,0xba,0x20,0xec,0x18, +0x9a,0x13,0xf0,0x13,0xde,0x8,0x5e,0x0,0x9,0x6,0x39,0x4, +0xae,0xfd,0x9,0x3,0xf9,0x3,0x12,0xfe,0x72,0x5,0xac,0xd, +0xe0,0x5,0xdb,0xfb,0xe1,0xf9,0x6e,0xfe,0xb5,0x2,0xd1,0xfa, +0xb4,0xf2,0x9,0xf9,0xa3,0xf6,0x4a,0xe6,0xa5,0xe7,0x5a,0xf4, +0x9c,0xf1,0x38,0xec,0x52,0xef,0xb3,0xee,0xf7,0xeb,0x8a,0xeb, +0x3d,0xe9,0x53,0xea,0xe4,0xee,0xdc,0xed,0x37,0xea,0x13,0xe8, +0x6a,0xe7,0x5e,0xef,0x5b,0xfb,0x6a,0xfc,0x82,0xf8,0x5f,0xfa, +0xb4,0xf9,0xc6,0xf4,0x54,0xf6,0x5a,0xfb,0x6f,0xfb,0x66,0xfb, +0xb5,0xff,0xdc,0x3,0x34,0x4,0x99,0xff,0xcf,0xf9,0xbd,0xfb, +0xa3,0x1,0x9a,0xff,0x5b,0xfc,0x5f,0x0,0x93,0x0,0x4f,0xfd, +0x24,0x3,0xce,0x8,0x4f,0x7,0xe5,0xa,0xcc,0xd,0x2b,0x6, +0x8b,0x2,0xbb,0x5,0x19,0x5,0x8b,0x7,0xab,0xc,0xc6,0x9, +0x0,0x7,0xa,0x7,0xa1,0x2,0x8,0x5,0xb3,0xd,0x4b,0x9, +0x6,0xff,0xce,0xfb,0x47,0xf9,0xf3,0xfc,0xd9,0x6,0xc8,0x2, +0x91,0xf9,0xc4,0xff,0x12,0x5,0xcf,0xfe,0x28,0xfd,0xaf,0xfe, +0x6e,0xfa,0x90,0xfa,0x9f,0x2,0x79,0x7,0xb0,0x4,0x1d,0xff, +0x55,0xfc,0x32,0xfc,0x4f,0xfc,0x5c,0x0,0xa3,0x5,0x47,0x0, +0xa9,0xf5,0xd3,0xf6,0x8f,0xff,0xbd,0xff,0x1b,0xf8,0xf7,0xf4, +0x6d,0xfa,0xb6,0x0,0x79,0xff,0x6b,0xf9,0xac,0xf7,0x1a,0xfb, +0xd5,0xfc,0x7d,0xfc,0xcb,0xfd,0xb5,0xfb,0x2a,0xf5,0x2b,0xf6, +0x93,0xfd,0x10,0xfe,0x91,0xfc,0xd2,0xfe,0xbd,0xfb,0x29,0xfa, +0x8c,0x2,0x2b,0x3,0xea,0xf9,0x1b,0xfb,0x77,0x2,0x2c,0x5, +0xff,0x9,0x92,0xc,0x73,0x7,0x6f,0x5,0x2f,0x6,0x87,0x6, +0xb7,0xe,0x16,0x14,0x76,0x9,0x8b,0x1,0xd4,0x8,0x19,0x10, +0x35,0xf,0xc,0xb,0x43,0x8,0x71,0x9,0x5a,0x9,0x6e,0x5, +0x9e,0x6,0x8c,0xc,0x17,0xe,0xf9,0xd,0xeb,0x10,0x97,0x12, +0xbb,0xf,0xb2,0xa,0xc0,0x8,0x3c,0xa,0x12,0x8,0x13,0x4, +0x14,0x6,0x74,0x7,0x6b,0x1,0x5f,0xfc,0x3c,0xfb,0x6b,0xf8, +0x93,0xf7,0x2c,0xfd,0x3,0x2,0x15,0xff,0xdd,0xf8,0x37,0xf7, +0x5b,0xfa,0xe4,0xff,0xbf,0x6,0xca,0x7,0x48,0x0,0x10,0xfc, +0x71,0xff,0x2b,0x2,0xb6,0x2,0xb7,0xff,0xfb,0xf7,0x69,0xf7, +0xb2,0xfe,0x86,0xfe,0xcc,0xfa,0x98,0xfc,0x5,0xfb,0x1d,0xf8, +0x27,0xfe,0x13,0x4,0xb1,0x2,0x96,0xff,0x36,0xfb,0x41,0xf9, +0x80,0xff,0x74,0x5,0xb,0x4,0x70,0xff,0x3,0xfb,0x66,0xfb, +0x78,0x1,0x70,0x3,0xe3,0xff,0xab,0xff,0x74,0x3,0x2b,0x7, +0x7f,0x7,0x85,0x2,0xe4,0xff,0x50,0x5,0x65,0xa,0xe4,0xa, +0x41,0xb,0xdb,0x8,0x14,0x1,0x62,0xfc,0x66,0x1,0xfa,0x7, +0x0,0x5,0x79,0xfe,0x2f,0xff,0x36,0xff,0x1f,0xf9,0x60,0xfa, +0x6a,0x2,0xe3,0x0,0x56,0xf9,0x14,0xf9,0x63,0xfd,0xe2,0xfd, +0xe5,0xf8,0xd4,0xf3,0x7f,0xf5,0xa7,0xfb,0x3e,0x1,0xbc,0x4, +0x44,0x1,0xcd,0xf9,0xa3,0xfa,0xe5,0x0,0xbe,0x3,0x26,0x6, +0x9a,0x5,0x13,0xff,0x9a,0xfc,0x27,0xfe,0x8e,0xfc,0x55,0xfe, +0xc6,0x2,0x42,0x0,0x12,0xfd,0xc3,0xfe,0xf8,0xfe,0xc8,0xfe, +0xc8,0xff,0xb5,0xfd,0xfa,0xfb,0x5a,0xfd,0xfc,0xfe,0x9a,0x1, +0x4,0x1,0x45,0xfa,0x66,0xf9,0x9e,0x0,0xd4,0x1,0xec,0xfe, +0xe5,0x1,0x87,0x2,0xdd,0xfa,0x27,0xf8,0x9a,0x0,0x9e,0x6, +0x48,0x3,0x59,0x1,0x16,0x3,0xc5,0xfe,0xa5,0xf9,0xae,0xfe, +0x2f,0x6,0x13,0x7,0x5d,0x4,0x6e,0x0,0xd6,0xfe,0x78,0x2, +0x54,0x3,0x0,0xfe,0x70,0xfb,0xd2,0xfe,0x37,0x3,0x15,0x4, +0xbb,0x0,0x31,0xff,0x52,0x1,0x9d,0x1,0xbc,0x2,0x5c,0x6, +0x38,0x4,0x1f,0xff,0x29,0xff,0x5,0x0,0x9c,0x1,0x21,0x7, +0x1,0x9,0x3f,0x6,0x9d,0x4,0xbd,0x2,0xaf,0x3,0xd8,0x6, +0xb9,0x1,0x59,0xfd,0x4,0x5,0x69,0x7,0x2,0x1,0x80,0x4, +0xb2,0x8,0xe0,0xff,0x7d,0xfc,0xb1,0x5,0x3c,0x8,0x4a,0x0, +0x39,0xfb,0x36,0xfd,0x28,0x0,0x19,0x1,0x20,0x4,0xff,0x6, +0x49,0x1,0xcd,0xfa,0xee,0xff,0x5d,0x5,0x29,0xff,0xa5,0xf9, +0x7c,0xfe,0x54,0x3,0x65,0x0,0xdd,0xfc,0x14,0xfe,0xbd,0xfc, +0xa0,0xf5,0x52,0xf3,0xa6,0xf9,0xbc,0xfe,0x89,0xfe,0x87,0xfd, +0x4b,0xfd,0xb0,0xfc,0x41,0xfc,0x1b,0xff,0x54,0x4,0x83,0x4, +0x2a,0x1,0xa8,0x2,0xbe,0x3,0xf3,0xfe,0xb9,0xfd,0xd0,0x2, +0x18,0x6,0x6f,0x4,0xa4,0xfe,0x95,0xfa,0x86,0xfb,0xb2,0xf6, +0x2b,0xef,0xd4,0xf6,0x68,0x1,0x78,0xfc,0x3b,0xf8,0x30,0xfb, +0x82,0xf5,0xd9,0xee,0x5a,0xf3,0x2d,0xf8,0x27,0xf9,0xa1,0xfa, +0x7,0xf9,0x42,0xf6,0x18,0xf8,0x46,0xfe,0xe6,0x5,0xf6,0x4, +0x3e,0xf9,0xf9,0xf5,0x3b,0xff,0x97,0x1,0x76,0xfc,0x57,0xfc, +0x9e,0xfe,0x21,0xff,0x76,0xfe,0x59,0xfb,0x87,0xf9,0x7d,0xf9, +0x84,0xf5,0x6d,0xf4,0xe7,0xfc,0x65,0x1,0xc0,0xf9,0x55,0xf2, +0x3,0xf2,0xaf,0xf2,0x34,0xf3,0x66,0xf6,0x94,0xf7,0xbe,0xf2, +0xe3,0xee,0xf0,0xf1,0xd0,0xf6,0x7,0xf8,0x96,0xf6,0xa,0xf6, +0xa0,0xf8,0x7c,0xfb,0x66,0xfb,0x18,0xfa,0x78,0xf7,0x69,0xf6, +0x8d,0xff,0x73,0xa,0xc5,0x6,0x56,0xfd,0x9b,0xf9,0x8c,0xf4, +0x9c,0xf1,0x1f,0xf8,0xef,0xfc,0xf6,0xfc,0x2e,0x0,0xb0,0x1, +0xb8,0xfe,0x68,0xfc,0x68,0xfa,0xfd,0xfc,0xab,0x3,0xf4,0xff, +0x69,0xf6,0xd7,0xf6,0x52,0xf9,0x75,0xf8,0x6b,0xfd,0x77,0x2, +0xe6,0x1,0x9a,0x1,0xe9,0xfc,0xaa,0xf5,0x3c,0xfa,0x9,0x2, +0x1e,0xfe,0x52,0xf8,0xc8,0xf8,0x2d,0xfa,0x81,0xfa,0xf2,0xf7, +0xcd,0xf4,0xb,0xf9,0xe8,0xfe,0x6b,0xfe,0xcf,0xff,0xa,0x4, +0x94,0x1,0xb9,0xfe,0xe3,0x3,0x6,0x7,0xaf,0x1,0xf8,0xfc, +0xb3,0xfd,0xc5,0xff,0x51,0x1,0x13,0x1,0x18,0xfd,0x12,0xfa, +0x0,0xfd,0x1e,0x1,0x30,0x1,0xec,0xfe,0xe0,0xfc,0xc1,0xfc, +0x64,0xfe,0x48,0x0,0xa9,0x4,0xab,0x7,0x14,0x0,0x15,0xf8, +0x75,0xfd,0xe2,0x2,0x76,0xff,0x56,0xff,0x6f,0x0,0xd8,0xfc, +0x1e,0xff,0xab,0x3,0x85,0xff,0xaa,0xfc,0x1d,0xff,0xe,0xff, +0xd1,0x1,0xdf,0x6,0x79,0x3,0x71,0xfd,0xb2,0xfc,0x20,0xff, +0x6f,0x5,0xc,0x8,0x91,0xff,0x45,0xfa,0x68,0xfd,0x50,0xfc, +0xbb,0xfb,0xfd,0x1,0x7e,0x3,0x67,0x0,0x7e,0x0,0xec,0xfe, +0x5e,0xfd,0xd2,0x0,0x70,0x1,0x57,0xff,0xf0,0x2,0xe5,0x7, +0x9,0xa,0x84,0xb,0xb1,0x8,0x7e,0x4,0x41,0x8,0x6b,0xd, +0xde,0xb,0xbc,0xc,0xf6,0x11,0x19,0xf,0xa5,0x6,0xce,0x6, +0x65,0xd,0x71,0xf,0x39,0xd,0x5b,0xb,0x82,0xa,0xfd,0x9, +0x1f,0x8,0x2e,0x7,0x4c,0xb,0xe,0xe,0xb0,0xa,0x31,0xa, +0xa2,0xc,0x75,0x9,0xc5,0x7,0x5d,0xc,0x16,0xd,0x72,0xb, +0x9f,0xd,0x27,0xc,0x7c,0x7,0xdb,0x7,0x6a,0x9,0x41,0x9, +0x77,0x9,0x1e,0x7,0x5a,0x4,0xdc,0x3,0xf0,0x1,0x11,0x4, +0x9,0xb,0x5c,0x8,0x62,0x1,0xe9,0x5,0x4d,0xa,0x4c,0x5, +0x61,0x3,0x67,0x5,0xdb,0x5,0x21,0x8,0xd3,0x7,0x2f,0x4, +0x2d,0x6,0xb8,0x5,0xea,0xfc,0x5c,0xfe,0x31,0xb,0x91,0xd, +0x27,0x7,0xbe,0x6,0x2a,0x8,0x59,0x6,0xdc,0x6,0x1c,0x9, +0xa8,0x8,0x59,0x7,0x74,0x6,0x90,0x4,0x53,0x4,0xb8,0x7, +0x7f,0x9,0x94,0x6,0x72,0x5,0x44,0xa,0xf0,0xd,0xba,0x9, +0x89,0x3,0xd3,0x4,0xf7,0x9,0x3f,0x9,0xeb,0x5,0x84,0x7, +0x30,0x9,0x4,0x6,0xce,0x2,0x7a,0x2,0x5d,0x3,0xb5,0x2, +0x66,0xfe,0x1b,0xfc,0x6b,0xff,0xd0,0xff,0xcf,0xfd,0x6a,0x2, +0xfa,0x5,0x9e,0x2,0x2e,0x3,0x9c,0x6,0x45,0x5,0x7f,0x5, +0x3,0x6,0x39,0x1,0x7a,0x2,0xd3,0x9,0x9,0x7,0x17,0x0, +0xb6,0x2,0xc7,0x6,0xe1,0x4,0xf0,0x1,0xb3,0x0,0xbc,0x2, +0x4c,0x6,0xd4,0x4,0x5e,0x1,0xca,0x2,0x6f,0x4,0x84,0x1, +0x4e,0xfe,0x5f,0xfe,0x61,0x0,0x7c,0x0,0xa1,0xfc,0x2b,0xf9, +0x81,0xfa,0x3f,0xfe,0x79,0x0,0x2f,0x0,0xc0,0xfe,0xd3,0xfd, +0xfe,0xfb,0x17,0xf9,0xbe,0xfa,0x9b,0x1,0x82,0x4,0x86,0x0, +0x26,0xfe,0xf4,0xff,0xd3,0xfe,0x9f,0xfa,0x11,0xfa,0x87,0xfb, +0x51,0xfa,0x39,0xf9,0x78,0xf9,0xee,0xf8,0xc0,0xf9,0xe2,0xfa, +0xd3,0xf8,0x86,0xf8,0x50,0xfb,0xd0,0xf9,0x5c,0xf6,0xf3,0xf6, +0xab,0xf7,0xb9,0xf8,0x66,0xfd,0x85,0xfe,0xfe,0xf9,0xe0,0xf8, +0x31,0xfb,0xb3,0xfa,0x55,0xf9,0x6f,0xfa,0xff,0xfb,0x7a,0xfb, +0x42,0xfa,0x36,0xfb,0xe0,0xfa,0x23,0xf6,0xde,0xf5,0x59,0xfd, +0x72,0xff,0xf7,0xf9,0x6f,0xf9,0xb1,0xfc,0xb8,0xfa,0x5b,0xf8, +0x5e,0xfc,0x95,0x1,0x38,0x1,0xa8,0xfc,0x2,0xfa,0xe5,0xfb, +0x0,0xff,0x3e,0x0,0x21,0x0,0xda,0xff,0x73,0xff,0x2c,0xfe, +0x4a,0xfc,0x41,0xfb,0xae,0xfa,0x9f,0xf9,0xb9,0xf8,0xce,0xf7, +0x73,0xf7,0xf9,0xf8,0x62,0xf8,0x5e,0xf3,0xa3,0xf1,0x7d,0xf6, +0x8,0xf9,0x64,0xf5,0x81,0xf2,0x3,0xf4,0xc6,0xf5,0x22,0xf5, +0xad,0xf5,0xa3,0xf9,0x1,0xfc,0x68,0xf9,0x5b,0xf6,0x9e,0xf6, +0x4b,0xf8,0x5e,0xf8,0xa3,0xf6,0x40,0xf6,0x98,0xf7,0x34,0xf6, +0xa7,0xf3,0x7e,0xf5,0x6c,0xf7,0xc8,0xf4,0x7f,0xf3,0x55,0xf5, +0xad,0xf4,0x9d,0xf2,0x5e,0xf2,0xd5,0xf1,0xc5,0xf1,0x90,0xf4, +0x70,0xf6,0xdf,0xf4,0x23,0xf4,0x64,0xf5,0x21,0xf4,0x49,0xf1, +0x45,0xf2,0x1,0xf5,0xd8,0xf4,0x83,0xf4,0x47,0xf5,0xe,0xf4, +0x5f,0xf3,0xbc,0xf4,0xa0,0xf3,0xd4,0xf2,0xbe,0xf6,0x1c,0xf8, +0x75,0xf4,0xba,0xf4,0x70,0xf8,0x3,0xf8,0xdb,0xf5,0x5a,0xf6, +0xd9,0xf6,0xb6,0xf5,0x9f,0xf4,0x40,0xf4,0xa2,0xf4,0x71,0xf5, +0x6a,0xf5,0xc4,0xf4,0x98,0xf5,0x17,0xf7,0x96,0xf5,0x20,0xf3, +0xf8,0xf4,0x32,0xf7,0xab,0xf4,0x7b,0xf3,0x67,0xf6,0x61,0xf6, +0x79,0xf4,0x27,0xf6,0x8f,0xf6,0xcd,0xf3,0x10,0xf5,0xd8,0xf8, +0x32,0xf8,0x8,0xf6,0xa,0xf6,0x1b,0xf5,0x67,0xf4,0xa9,0xf7, +0x5d,0xfa,0x63,0xf8,0x51,0xf6,0x1b,0xf6,0xff,0xf4,0x92,0xf5, +0xd3,0xf8,0x22,0xf9,0x18,0xf8,0x85,0xfa,0x46,0xfa,0xaf,0xf5, +0x2e,0xf7,0xd3,0xfd,0xcf,0xfe,0xbe,0xfc,0xe9,0xfe,0x27,0x1, +0xaf,0xfe,0xc2,0xfa,0x5e,0xf9,0x6a,0xfa,0x86,0xfb,0xd0,0xfb, +0x41,0xfc,0x35,0xfc,0xc2,0xfa,0x75,0xf9,0xec,0xf9,0xb5,0xfb, +0x71,0xfc,0x6,0xfb,0x62,0xfa,0xeb,0xfa,0x9f,0xf9,0xed,0xf9, +0xf2,0xfd,0x41,0xfd,0xc6,0xf7,0xa,0xf8,0x99,0xfa,0x3d,0xf7, +0x22,0xf6,0xe5,0xfb,0x1b,0xfe,0x14,0xfb,0x49,0xfb,0xcf,0xfd, +0x33,0xfd,0x59,0xfb,0x91,0xfb,0x16,0xfd,0x6f,0xfe,0x11,0xff, +0x49,0xff,0x43,0x0,0x1d,0x1,0x58,0xff,0x22,0xfd,0x5f,0xfe, +0x8a,0xff,0x15,0xfd,0x8b,0xfc,0x4,0x0,0xa2,0x0,0x2d,0xfe, +0x11,0xff,0xb,0x2,0x6b,0x2,0x9d,0x1,0x85,0x1,0x5f,0x0, +0x52,0xfe,0x97,0xfe,0x60,0x1,0x45,0x3,0x8b,0x3,0x2c,0x3, +0xba,0x0,0xee,0xfd,0x42,0xff,0x38,0x2,0x7f,0x2,0xc5,0x1, +0xc2,0x0,0xca,0xff,0xcb,0x1,0x3a,0x3,0x49,0x0,0xbb,0xff, +0xc8,0x2,0x11,0x1,0xe,0xfd,0x3d,0xfe,0x7a,0x0,0x5b,0xff, +0x7e,0xfe,0xd2,0xff,0x62,0x1,0x7c,0x1,0xb9,0x0,0x80,0x1, +0x7a,0x2,0x84,0x0,0x84,0xfe,0x91,0xff,0xe8,0x0,0xf7,0x0, +0xb5,0x0,0xf,0x0,0x7c,0xff,0xc5,0xfe,0x4d,0xfd,0x73,0xfd, +0x36,0xff,0xf2,0xfe,0x58,0xfe,0xe5,0x0,0x1b,0x3,0xe5,0x1, +0x6c,0x0,0x69,0x0,0x22,0x0,0xf0,0xff,0x94,0x0,0x23,0x0, +0xe3,0xfe,0xf7,0xff,0x1c,0x2,0x3,0x2,0xf9,0x1,0xfa,0x3, +0xa5,0x4,0x17,0x3,0xd0,0x1,0xa7,0x1,0x7b,0x3,0xfe,0x5, +0xb,0x5,0x81,0x2,0xc2,0x2,0xdd,0x2,0x8a,0x0,0xd4,0xff, +0xc8,0x1,0x85,0x2,0x4,0x0,0x89,0xfd,0xc8,0xff,0xa6,0x3, +0xee,0x2,0x4c,0x1,0xad,0x2,0x5,0x2,0x60,0xff,0x6f,0xff, +0x88,0xff,0x5d,0xfe,0xd6,0xfe,0x2e,0xff,0xd5,0xff,0x16,0x3, +0x31,0x3,0xcf,0xfe,0x91,0xfd,0x73,0xfe,0x2d,0xfd,0x40,0xfe, +0x6a,0x1,0x53,0x0,0x80,0xfd,0xa7,0xfd,0x6,0xfe,0x48,0xfd, +0xdd,0xfd,0x99,0xfe,0x55,0xfd,0x9b,0xfc,0x9a,0xfe,0xd1,0xff, +0xd0,0xfd,0xab,0xfc,0xd7,0xfe,0x82,0x0,0x0,0xff,0xf0,0xfb, +0x16,0xfa,0xd8,0xfa,0xb6,0xfb,0x60,0xfa,0x58,0xfa,0x21,0xfd, +0x3a,0xfd,0xe,0xfa,0xc6,0xfa,0x8a,0xff,0xa7,0xff,0x52,0xfa, +0x5,0xf9,0xc4,0xfc,0xa9,0xfc,0x62,0xf9,0x15,0xfa,0x1b,0xfc, +0x10,0xfc,0x7,0xfd,0x3f,0xfd,0xc4,0xfa,0xd3,0xf9,0x9e,0xf9, +0x37,0xf8,0xe7,0xf9,0x56,0xfc,0xba,0xfa,0x4e,0xfa,0xc4,0xfb, +0x9d,0xf9,0xb6,0xf8,0x1c,0xfc,0x42,0xfc,0x9a,0xfa,0xc5,0xfd, +0x17,0x0,0xd6,0xfc,0xeb,0xfa,0x73,0xfd,0x5e,0xfe,0x54,0xfb, +0xed,0xf9,0x86,0xfc,0x43,0xfd,0x8b,0xfa,0xf0,0xfa,0x94,0xfe, +0x88,0xfe,0xd8,0xfa,0x29,0xf9,0xfa,0xfa,0xde,0xfc,0x85,0xfb, +0xa9,0xf9,0xb8,0xfb,0x75,0xfd,0x46,0xfa,0x58,0xf8,0x70,0xfb, +0xc8,0xfc,0xf3,0xf9,0xcc,0xf8,0xa0,0xfa,0xce,0xfb,0x71,0xfc, +0x7a,0xfd,0x54,0xfc,0x12,0xfa,0x6f,0xfb,0x77,0xfd,0x3d,0xfb, +0xd4,0xf9,0x4b,0xfc,0x80,0xfc,0x77,0xfa,0x8e,0xfb,0x28,0xfe, +0x8b,0xff,0xb4,0xff,0xf5,0xfd,0x93,0xfd,0x44,0x0,0xd1,0xff, +0x94,0xfc,0xe5,0xfd,0x9f,0x0,0xe2,0xfe,0x53,0xfd,0x6d,0xff, +0x51,0x1,0xa7,0x0,0xb8,0xfe,0x55,0xfd,0xed,0xfc,0x7b,0xfc, +0x88,0xfc,0xb7,0xfd,0x6e,0xfe,0x3c,0xfe,0x8c,0xfd,0x84,0xfc, +0x35,0xfd,0xf3,0xfe,0xdc,0xfd,0xe,0xfc,0x2b,0xfd,0xf0,0xfd, +0xad,0xfc,0x7c,0xfc,0x7c,0xfd,0x15,0xfe,0xc0,0xfd,0x2,0xfc, +0xce,0xfa,0xb1,0xfb,0x8,0xfc,0xc9,0xfa,0x58,0xfa,0x8e,0xfb, +0x4d,0xfd,0xe4,0xfd,0xdd,0xfc,0x6c,0xfc,0x41,0xfd,0xd0,0xfd, +0x32,0xfe,0x70,0xfe,0x74,0xfe,0x17,0xff,0xf4,0xfd,0x70,0xfa, +0xa3,0xfa,0x36,0xfe,0x6a,0xfd,0x11,0xfa,0xf3,0xfa,0x9d,0xfd, +0xab,0xfd,0xba,0xfc,0x8b,0xfd,0x10,0x0,0x3e,0x1,0xb7,0xff, +0x21,0xff,0xcc,0x0,0x7a,0x1,0x2f,0x1,0xae,0x1,0x6f,0x1, +0xd2,0xff,0xf6,0xfe,0x69,0xff,0x67,0xff,0x6e,0xfe,0x9d,0xfe, +0x1b,0x0,0xf,0x0,0x6f,0xff,0xb1,0x0,0xd9,0x0,0xb5,0xfe, +0xa0,0xfe,0xe6,0x0,0xc3,0x1,0x71,0x0,0xe7,0xfe,0x94,0xff, +0x72,0x1,0xdc,0x0,0x48,0x0,0x9c,0x2,0x90,0x2,0x9e,0xff, +0xf7,0xff,0x2c,0x1,0x21,0xff,0xc8,0xfd,0x7a,0xfe,0xbf,0xff, +0x48,0x2,0xb,0x3,0xd6,0x0,0xad,0x0,0xe4,0x1,0xb5,0x0, +0x84,0xff,0x1e,0xff,0x0,0xfe,0xdd,0xfd,0x84,0xfd,0x63,0xfb, +0x9d,0xfb,0x2a,0xfe,0x21,0xfe,0xb5,0xfc,0x8,0xfd,0xe2,0xfd, +0x16,0xfe,0x86,0xfd,0xfa,0xfc,0x84,0xfe,0x7b,0x0,0x17,0xff, +0x62,0xfc,0xf9,0xfc,0xf9,0xff,0x54,0x1,0x47,0x0,0x44,0xff, +0xa0,0xff,0x59,0x0,0x72,0x0,0x1d,0x1,0x35,0x4,0xbf,0x6, +0xc4,0x3,0xa0,0xff,0x95,0x1,0xd8,0x4,0x9c,0x3,0x30,0x2, +0xdb,0x1,0x21,0x0,0xd2,0xff,0x74,0x0,0x67,0xff,0x4f,0x0, +0xda,0x1,0x82,0xff,0x1a,0xff,0xd4,0x2,0x92,0x3,0x32,0x2, +0xd1,0x1,0xb1,0xff,0x4b,0xfe,0x23,0xff,0x11,0xfe,0x21,0xff, +0xd4,0x4,0xd4,0x5,0xa5,0x1,0xef,0x0,0xf9,0x1,0x52,0x0, +0x12,0xfe,0x4,0xfd,0xa6,0xfe,0x48,0x2,0x1f,0x3,0x72,0x2, +0x4f,0x4,0x86,0x4,0x71,0x0,0x37,0xfd,0x37,0xfd,0x98,0xfe, +0x52,0xff,0x85,0xfd,0x51,0xfc,0x51,0x0,0x2a,0x4,0xa1,0x0, +0x51,0xfb,0xe2,0xfb,0x9e,0xfd,0x6,0xfb,0x2e,0xf9,0x3c,0xfc, +0x8,0x0,0xd9,0x0,0x6a,0xff,0x12,0xff,0xc6,0x1,0x93,0x1, +0xc4,0xfa,0x34,0xf7,0xd9,0xfa,0xfc,0xfb,0x6,0xfb,0x7b,0xfe, +0xef,0x0,0xe2,0xff,0x9f,0xff,0x6d,0xfd,0xdb,0xfa,0xcf,0xfd, +0xf5,0xfe,0xf,0xfa,0x55,0xf9,0x3c,0xfe,0x67,0x1,0x4b,0x2, +0xa9,0x1,0x75,0x0,0x61,0x0,0x4c,0xfd,0xc1,0xf8,0x93,0xfb, +0xcc,0x0,0x29,0xff,0x25,0xfd,0x8a,0x0,0x2b,0x3,0xd5,0x0, +0x24,0xfc,0x74,0xfa,0x79,0xfd,0x45,0xfe,0xbb,0xfa,0xaf,0xfb, +0x80,0x1,0xb3,0x2,0x48,0xff,0xf1,0xfd,0xd4,0xfe,0x68,0xfe, +0x6e,0xfb,0xd0,0xf7,0xae,0xf7,0xbb,0xfb,0x83,0xfe,0x7a,0xfd, +0x2e,0xfe,0x37,0x2,0xb6,0x1,0x44,0xfb,0xae,0xf7,0x4b,0xf9, +0x3d,0xfb,0xa1,0xfb,0xe2,0xfa,0x52,0xfc,0x7b,0x1,0xb9,0x1, +0x10,0xfb,0xe1,0xf9,0x86,0xfd,0xa,0xfa,0x46,0xf4,0x19,0xf6, +0xa0,0xfb,0x1b,0xff,0x1c,0xff,0x7b,0xfd,0x31,0xff,0x2,0x1, +0xf0,0xfc,0xb5,0xf9,0x8d,0xfb,0x71,0xfb,0x2c,0xf9,0x8e,0xf9, +0x17,0xfc,0x43,0x0,0xf3,0x2,0xe9,0xff,0xa8,0xfc,0x37,0xfd, +0xd4,0xfb,0x7c,0xf8,0xf2,0xf8,0xff,0xfc,0x4,0x1,0x3a,0x1, +0xec,0xfd,0x8b,0xfe,0xd1,0x2,0x9a,0x0,0xf9,0xf9,0xe4,0xf9, +0x5d,0xfd,0x4e,0xfb,0x65,0xf8,0x45,0xfd,0x46,0x4,0x67,0x3, +0x6b,0xfe,0x9a,0xfd,0xf,0xff,0x84,0xfe,0x3d,0xfc,0xee,0xf9, +0x28,0xfb,0xe1,0xff,0xdd,0x1,0x8,0x1,0xe8,0x1,0x4f,0x2, +0x2e,0x0,0x30,0xfd,0x8a,0xfa,0x5e,0xfc,0x42,0x1,0x52,0xff, +0x5e,0xfa,0xf2,0xfd,0xf6,0x2,0x1,0x0,0x6e,0xfc,0x95,0xfd, +0x71,0xfe,0x19,0xfb,0x51,0xf6,0x18,0xf8,0x9f,0xff,0xd5,0x0, +0x23,0xfd,0xf1,0xff,0xd2,0x3,0x8a,0x0,0x18,0xfd,0x27,0xfd, +0x8e,0xfc,0x8a,0xfc,0x92,0xfe,0x45,0x0,0x8c,0x1,0x74,0x2, +0x16,0x1,0x0,0xfe,0xc6,0xfc,0xc8,0xfe,0xec,0xff,0xed,0xfd, +0x7a,0xfd,0xf6,0xff,0x7e,0x0,0x6b,0xfe,0x64,0xfd,0x61,0xff, +0x1,0x2,0x21,0xff,0x0,0xf9,0x7,0xfa,0xf6,0xfe,0xaa,0xfd, +0xee,0xfb,0x22,0x0,0xf6,0x2,0x8a,0x0,0x6,0xfd,0x20,0xfc, +0xeb,0xfe,0x35,0x0,0x10,0xfd,0xd3,0xfc,0xa2,0x0,0x51,0x1, +0xfe,0xff,0xd5,0xff,0x75,0xff,0xc8,0xff,0xf8,0xfe,0x93,0xfb, +0x5c,0xfc,0x95,0x0,0xf4,0xff,0xfa,0xfd,0xa8,0xff,0x6,0x1, +0xea,0x1,0x93,0x2,0x75,0xff,0xe5,0xfc,0xdd,0xfe,0x82,0xff, +0x41,0xfe,0x8c,0x0,0x7f,0x3,0xe0,0x1,0xb3,0xfe,0xdb,0xfe, +0x0,0x1,0xfb,0x0,0x85,0xff,0x3e,0x0,0x93,0x2,0xe3,0x2, +0x1d,0x0,0x54,0xfe,0x12,0x1,0x7c,0x2,0x32,0xfe,0xe1,0xfc, +0x6e,0x0,0xfb,0xfe,0x7f,0xfb,0x41,0xfd,0x52,0xfe,0xf1,0xfd, +0xd6,0x0,0x9c,0x1,0xb6,0xff,0x52,0x0,0xc2,0xfe,0x41,0xfb, +0x22,0xfd,0xb1,0x0,0x68,0x2,0x32,0x4,0x1c,0x2,0x28,0xff, +0x41,0x2,0xa6,0x2,0x8e,0xfd,0x85,0xff,0x35,0x5,0x2d,0x3, +0xbf,0xff,0x9c,0x1,0x93,0x3,0xd8,0x2,0x24,0x1,0x69,0x0, +0x72,0x1,0x66,0x1,0xef,0xff,0xbe,0x0,0x8c,0x2,0x29,0x2, +0x90,0x1,0x6b,0x2,0xaf,0x2,0x64,0x1,0x5e,0x0,0x12,0x0, +0xc4,0xfe,0x96,0xfe,0x21,0x2,0x13,0x4,0xb,0x2,0x3c,0x2, +0x79,0x3,0xce,0x0,0x62,0xff,0xb,0x2,0x2f,0x3,0x57,0x1, +0x44,0xff,0xa0,0xff,0x5b,0x2,0xf7,0x1,0xb6,0xff,0xce,0x2, +0x17,0x5,0x7d,0x0,0x7a,0xfe,0x2d,0x1,0x1,0x2,0xae,0x3, +0x29,0x6,0xf0,0x4,0xfa,0x3,0x9f,0x3,0x96,0x0,0x27,0x0, +0xf8,0x1,0x47,0x0,0x90,0xff,0x47,0x1,0xe9,0x0,0xf9,0x1, +0x72,0x3,0x9,0xff,0xe7,0xfb,0xb6,0xff,0x9,0x2,0x7e,0x0, +0x2d,0x0,0x61,0x0,0x69,0xff,0x54,0xfe,0x60,0xfe,0x65,0x0, +0x91,0x1,0x20,0xff,0x52,0xfc,0x7,0xfc,0xd,0xfd,0x5c,0xfe, +0x7d,0xff,0x33,0x0,0x4c,0x0,0xbb,0xff,0x7,0x0,0xa4,0x0, +0x6a,0xff,0x59,0xfe,0x10,0xfe,0xe7,0xfc,0x65,0xfe,0xb4,0x1, +0x69,0x0,0xbd,0xfe,0x45,0x1,0x55,0x1,0x7e,0xfe,0xaa,0xfd, +0x6,0xfd,0x9c,0xfd,0x1e,0x0,0x1c,0xff,0x24,0xfe,0x8a,0x1, +0x78,0x1,0x55,0xfe,0xab,0xff,0x83,0x0,0xbf,0xfd,0x28,0xfd, +0xe0,0xfd,0xf9,0xfd,0x8d,0xff,0x60,0x0,0xb0,0xff,0x40,0x0, +0xd9,0x0,0x28,0x0,0x86,0xfe,0xe9,0xfc,0xb9,0xfe,0x76,0x1, +0x9c,0xff,0x5a,0xfe,0x55,0x1,0x30,0x2,0xc5,0x0,0x8c,0x0, +0x83,0xff,0xc9,0xfe,0xbf,0xfe,0x28,0xfc,0x74,0xfb,0x1,0xff, +0xa9,0xff,0x76,0xfe,0xf,0x1,0x8c,0x2,0x88,0xff,0xd6,0xfc, +0xf2,0xfb,0x49,0xfb,0xa6,0xfb,0x68,0xfd,0x90,0xfe,0xb7,0xfd, +0xeb,0xfc,0xfd,0xfc,0x88,0xfb,0xc9,0xfa,0xd0,0xfc,0xea,0xfb, +0x96,0xf8,0xfc,0xf9,0x6f,0xfd,0xc2,0xfe,0xcd,0xff,0xd5,0xfe, +0x13,0xfd,0x63,0xfe,0x67,0xfd,0x89,0xfa,0x9f,0xfd,0xa2,0xff, +0xe1,0xfa,0x39,0xfa,0xb7,0xfe,0xe3,0xff,0x9d,0xff,0x30,0xff, +0xcd,0xfc,0x4c,0xfc,0x17,0xfd,0xa4,0xfc,0x8d,0xfe,0xc,0x1, +0x9a,0xff,0x48,0xfd,0x9f,0xfb,0x40,0xfa,0xce,0xfb,0xa2,0xfd, +0xb,0xfc,0xc0,0xfa,0x1b,0xfc,0xd7,0xfd,0x6e,0xfe,0x47,0xfe, +0xb7,0xff,0xdc,0x0,0xf4,0xfc,0xa8,0xf9,0x14,0xfd,0x4f,0xff, +0xb0,0xfc,0xef,0xfc,0x75,0x0,0xc7,0x1,0xbe,0x0,0x66,0xff, +0xd6,0xfe,0xd8,0xfd,0x4b,0xfb,0x2,0xfb,0xdb,0xfd,0x30,0xff, +0x6a,0xff,0x18,0x0,0x3c,0xff,0x9b,0xfe,0xd7,0xfe,0xc,0xfd, +0x83,0xfb,0xaa,0xfb,0x9d,0xfb,0x92,0xfd,0xed,0xff,0x1f,0xff, +0x26,0x0,0xcb,0x1,0x7,0xfd,0x5c,0xf9,0x49,0xfc,0xe,0xfc, +0x37,0xf8,0x79,0xf9,0x26,0xfe,0x41,0x1,0xf1,0x1,0x5a,0x1, +0x6d,0x2,0x7e,0x2,0xa1,0xfd,0x71,0xfa,0x8c,0xfc,0xa5,0xfd, +0x7d,0xfd,0x6f,0xff,0x3b,0x1,0xda,0x1,0x69,0x1,0xd2,0xfe, +0x54,0xfc,0x11,0xfc,0x94,0xfd,0xb6,0xff,0x82,0xff,0x1d,0xfe, +0x2c,0x0,0x94,0x2,0x0,0x2,0x4f,0x2,0xa,0x2,0x67,0xfd, +0x9,0xf9,0x26,0xf9,0xe,0xfd,0xc8,0x1,0x5f,0x2,0x42,0x1, +0x29,0x4,0x3b,0x5,0xc9,0x0,0x6e,0xfe,0x8e,0xfe,0xd1,0xfc, +0x70,0xfc,0x85,0xfe,0xde,0x0,0x92,0x3,0x2b,0x4,0x5c,0x2, +0xe3,0x1,0x4a,0x1,0xa8,0xff,0x77,0xff,0x2d,0xfe,0xfe,0xfb, +0x99,0xfd,0xd4,0xff,0x35,0x0,0xec,0x2,0xd9,0x4,0x65,0x0, +0x60,0xfa,0x56,0xf9,0xac,0xfc,0xb7,0xff,0xb7,0x0,0x51,0x3, +0xd7,0x6,0xd4,0x5,0xc6,0x2,0xed,0x1,0xa6,0x0,0xd3,0xfe, +0xbc,0xfd,0x71,0xfc,0x66,0xfe,0xdf,0x2,0xfe,0x2,0xd8,0x1, +0xab,0x3,0x30,0x3,0x33,0x1,0xd,0x1,0x42,0xfe,0x1e,0xfb, +0x47,0xfd,0xad,0xff,0xb2,0x0,0xf6,0x4,0x24,0x8,0x51,0x5, +0xef,0x0,0x2b,0xff,0xfe,0xfe,0xc1,0xfd,0x78,0xfc,0x69,0xff, +0x26,0x4,0xed,0x4,0x56,0x4,0x5c,0x5,0x44,0x5,0xaf,0x3, +0x6e,0x1,0xa,0xff,0x1,0xff,0xcd,0xff,0x56,0xff,0x2b,0x1, +0xcb,0x4,0x27,0x6,0x19,0x6,0xfc,0x3,0x32,0xff,0x9c,0xfc, +0x3d,0xfc,0x3d,0xfb,0x3,0xfd,0x34,0x1,0xf0,0x2,0xd5,0x2, +0x50,0x2,0xd4,0x1,0xf9,0x1,0x17,0xff,0xa1,0xfa,0x31,0xfc, +0x0,0x0,0xa6,0xff,0x56,0x0,0x32,0x3,0x4f,0x3,0x96,0x2, +0x1c,0x2,0x2c,0x0,0x31,0xff,0x14,0xfe,0xca,0xfa,0xcc,0xfa, +0x9e,0xff,0xae,0x3,0x71,0x5,0x84,0x5,0xc9,0x3,0x31,0x2, +0x1c,0x1,0x75,0xff,0x7b,0xfe,0x27,0xff,0x5b,0x0,0x81,0x0, +0x81,0x0,0x21,0x3,0x7,0x5,0x9f,0x1,0xe7,0xfe,0xba,0x0, +0xa0,0x0,0xc1,0xfe,0xe2,0xff,0x10,0x1,0x44,0x1,0x45,0x2, +0xd5,0x1,0xf8,0x1,0x3d,0x4,0x67,0x2,0xa1,0xfd,0xf8,0xfc, +0x5c,0xfe,0x75,0xff,0xd6,0x1,0x16,0x3,0x21,0x3,0xc7,0x3, +0x48,0x2,0x3,0x0,0xb6,0x0,0x39,0x1,0x35,0x0,0x46,0x0, +0xc9,0x0,0xfb,0x1,0x9a,0x3,0xd,0x2,0x97,0xff,0x2f,0x0, +0x3a,0x0,0x32,0xfe,0xd1,0xfd,0x47,0xff,0x4f,0x0,0x85,0xff, +0xf4,0xfd,0x75,0xff,0x64,0x2,0x17,0x1,0x29,0xfe,0x6a,0xfe, +0x2b,0xff,0x57,0xfe,0x4a,0xfe,0xe7,0xff,0x90,0x1,0x55,0x1, +0x9b,0xff,0x8a,0xfe,0x79,0xfe,0x7c,0xff,0x9,0x1,0xba,0x0, +0x66,0x0,0xfe,0x1,0xdf,0x0,0xff,0xfd,0x46,0xff,0xc5,0x0, +0x9c,0xff,0x18,0x0,0x70,0xff,0xc5,0xfc,0x6b,0xfe,0xc5,0xff, +0x27,0xfd,0xe,0x0,0xf6,0x4,0x8b,0x0,0xd3,0xfb,0x0,0xff, +0x4b,0x0,0x8a,0xfd,0x23,0xfe,0x54,0x0,0x2d,0x0,0x8a,0xff, +0x46,0xff,0x8c,0xfe,0xe5,0xfd,0xc2,0xfd,0x73,0xfd,0xf4,0xfc, +0xd4,0xfd,0x24,0xff,0xce,0xfd,0x9d,0xfb,0xff,0xfb,0x5e,0xfd, +0xf1,0xfd,0x9b,0xfd,0x2f,0xfc,0x1a,0xfc,0x64,0xfd,0x72,0xfc, +0x31,0xfc,0x98,0xff,0x3f,0x0,0x78,0xfc,0x33,0xfb,0x78,0xfd, +0x22,0xff,0x84,0xfe,0xe6,0xfc,0xd0,0xfd,0x45,0x0,0x61,0xff, +0xc,0xfe,0xd4,0xff,0x4e,0xff,0xf1,0xfb,0xcb,0xfb,0x80,0xfd, +0xe6,0xfd,0xca,0xfe,0x41,0xff,0x83,0xfd,0x93,0xfc,0x60,0xfe, +0xb4,0xff,0xf2,0xfd,0xc7,0xfc,0x46,0xff,0xc6,0xff,0x54,0xfc, +0x1a,0xfd,0x38,0x1,0xe3,0xff,0xc0,0xfc,0xb1,0xfd,0x4,0xfe, +0x5d,0xfc,0x33,0xfc,0xe0,0xfc,0x76,0xfe,0x9e,0x0,0xda,0xff, +0x4b,0xfe,0xc0,0xff,0xbc,0x0,0x24,0xff,0xc,0xfe,0x13,0xfe, +0x19,0xfe,0x32,0xfe,0x76,0xfe,0x58,0xff,0xdb,0x0,0xe1,0x1, +0x6d,0x1,0x6b,0xff,0x6b,0xfe,0xf,0x0,0x27,0x0,0x6a,0xfd, +0xa9,0xfd,0xbe,0x0,0xc9,0x0,0x7c,0xff,0x3f,0x1,0xe6,0x2, +0x43,0x0,0x84,0xfc,0xc6,0xfc,0xc3,0xfe,0xe4,0xfd,0x75,0xfd, +0x49,0x0,0x62,0x1,0x5d,0x0,0x17,0x1,0x7d,0x0,0x1e,0xfe, +0x33,0xff,0x80,0x0,0x12,0xfe,0xdb,0xfd,0x1a,0x1,0xba,0x1, +0x2f,0x0,0x6c,0x0,0xdf,0x1,0x5e,0x2,0xff,0x0,0x21,0xff, +0xa5,0xfe,0x5b,0xfe,0x6c,0xfd,0xdb,0xfd,0x49,0x0,0xc2,0x2, +0xa4,0x2,0x15,0x0,0x50,0xff,0x27,0x0,0xb,0xfe,0x5c,0xfc, +0x26,0xff,0x2a,0x0,0xcf,0xfd,0xa6,0xfe,0xd5,0x0,0x4c,0x0, +0xd2,0x0,0x91,0x1,0x53,0xfe,0x49,0xfc,0x11,0xff,0x2a,0x0, +0xe0,0xfd,0x30,0xfe,0x12,0x1,0xe1,0x1,0x31,0x1,0x29,0x1, +0x89,0x0,0xca,0xfe,0x2b,0xfd,0x96,0xfc,0x39,0xfe,0x59,0x0, +0x74,0xff,0xaf,0xfe,0x4,0x1,0x8a,0x0,0xf0,0xfc,0xc1,0xfd, +0x1a,0x0,0x67,0xfe,0x91,0xfd,0x3b,0xfe,0x90,0xfc,0x5c,0xfd, +0x6,0x1,0x78,0x0,0x87,0xfe,0x46,0xff,0xfb,0xfd,0xd3,0xfb, +0xfc,0xfc,0xa9,0xfd,0x91,0xfd,0xa6,0xff,0x8b,0xff,0x2a,0xfd, +0x88,0xfe,0x4,0x0,0x3e,0xfd,0x92,0xfc,0x2e,0xff,0x5a,0xfe, +0x58,0xfc,0xa7,0xfe,0xdc,0x0,0x4c,0xff,0x56,0xfe,0x5a,0xff, +0x54,0xff,0xaf,0xfe,0x7e,0xfe,0xfb,0xfd,0x42,0xfe,0x61,0xff, +0x1b,0xff,0xb0,0xfe,0xba,0xff,0xb8,0xff,0x6b,0xfe,0xc7,0xfd, +0x92,0xfc,0x39,0xfb,0x7c,0xfc,0x8a,0xfe,0xef,0xfe,0x68,0xff, +0x40,0x0,0xa8,0xff,0x33,0xfe,0x77,0xfd,0x76,0xfd,0x29,0xfd, +0xd0,0xfc,0x4a,0xfe,0x5e,0x0,0xba,0xff,0x4e,0xfe,0xc,0xff, +0x6e,0xff,0x63,0xfe,0x52,0xfe,0xc9,0xfe,0x11,0xff,0xa6,0xff, +0x8,0xff,0x67,0xfe,0x82,0x0,0xe1,0x1,0x28,0x0,0x3c,0xff, +0x7c,0xfe,0x2a,0xfb,0x29,0xfa,0x79,0xfd,0xdb,0xfe,0xa8,0xfd, +0x30,0xfe,0xa1,0xfe,0x65,0xfd,0x6,0xfe,0x7b,0xff,0xcc,0xfd, +0xd2,0xfb,0xf3,0xfc,0x40,0xfe,0x45,0xfe,0x45,0xff,0x79,0x0, +0xec,0xff,0xb3,0xfe,0xa,0xfe,0xf1,0xfd,0xfa,0xfd,0x2a,0xfd, +0x51,0xfc,0x62,0xfd,0x24,0xff,0xd4,0xff,0xa7,0x0,0xc0,0x1, +0x4f,0x1,0x5f,0xff,0xa0,0xfd,0xc2,0xfd,0xa7,0xff,0x7b,0x0, +0xbb,0xff,0x1e,0x0,0x71,0x0,0x72,0xfe,0x5a,0xfd,0x5a,0xfe, +0xb3,0xfd,0x54,0xfc,0x2c,0xfd,0x78,0xfd,0x5b,0xfc,0x5c,0xfd, +0xb8,0xfe,0x3e,0xfd,0x94,0xfc,0x4b,0xfe,0x96,0xfd,0xe7,0xfa, +0x69,0xfb,0x84,0xfd,0x76,0xfd,0xc2,0xfd,0xee,0xff,0x6e,0x0, +0x92,0xfe,0x9,0xfd,0x22,0xfc,0xaf,0xfb,0xa1,0xfc,0xcd,0xfd, +0xff,0xfd,0xd9,0xfe,0x67,0x0,0xee,0xff,0xc0,0xfd,0x1a,0xfd, +0x6,0xfe,0xb,0xfe,0x2e,0xfd,0xd4,0xfc,0xb3,0xfc,0x73,0xfc, +0x4,0xfd,0x88,0xfe,0x85,0xff,0xa5,0xfe,0x4e,0xfc,0x89,0xfa, +0xd0,0xfa,0x44,0xfc,0x4,0xfd,0xec,0xfc,0xe5,0xfd,0x1f,0x0, +0x5b,0x0,0x18,0xfe,0x77,0xfd,0x27,0xfe,0x22,0xfc,0x32,0xfa, +0x14,0xfc,0xf7,0xfd,0x9c,0xfe,0x28,0x1,0x25,0x2,0x71,0xff, +0x4c,0xff,0xd3,0x0,0xbb,0xfd,0x4f,0xfb,0x11,0xfe,0x1c,0xfe, +0x56,0xfb,0xa5,0xfe,0x84,0x3,0x7f,0x1,0x99,0xfe,0xbb,0xff, +0x73,0xff,0x80,0xfd,0xe1,0xfd,0x66,0xfe,0x18,0xfe,0x93,0xff, +0x9d,0x0,0x9c,0xff,0x3c,0x0,0xab,0x1,0x9b,0xff,0x72,0xfc, +0x32,0xfc,0x33,0xfd,0xe1,0xfd,0x4d,0xff,0x88,0x0,0x3b,0x0, +0x26,0x0,0x37,0x1,0x4b,0x1,0x45,0x0,0x2,0x0,0x86,0xfe, +0xbc,0xfa,0x97,0xfa,0x92,0xff,0x79,0x1,0x3a,0xff,0x3e,0x0, +0x73,0x2,0xad,0xff,0xbe,0xfc,0x4c,0xfe,0x52,0xff,0xb6,0xfd, +0x67,0xfd,0xa8,0xfe,0x60,0xff,0xcd,0xff,0xd1,0xff,0xf6,0xfe, +0x9d,0xfe,0x62,0xff,0xc3,0xff,0xfe,0xfe,0x55,0xfe,0x9,0xff, +0x56,0x0,0xb6,0x0,0xb5,0x0,0x65,0x1,0x3e,0x1,0x67,0xff, +0x91,0xfe,0x77,0xff,0x36,0xff,0xd3,0xfd,0xc1,0xfd,0xec,0xfe, +0xaa,0x0,0xa2,0x1,0x2d,0xff,0x59,0xfc,0x28,0xfe,0xd,0x0, +0x9,0xfe,0x35,0xfe,0xe6,0x0,0x48,0xff,0xc9,0xfc,0xe8,0xfe, +0x9f,0x0,0xab,0xff,0x99,0xff,0xea,0xfe,0x54,0xfd,0x98,0xfe, +0x15,0x0,0x9d,0xfe,0x49,0xfe,0xe4,0xff,0x9e,0xff,0xb,0xff, +0x9c,0x0,0x65,0x1,0xc6,0xff,0x2a,0xfe,0x58,0xfe,0xf3,0xff, +0x37,0x1,0x9b,0x0,0xe2,0xfe,0xe2,0xfd,0x69,0xfe,0xa1,0xff, +0x58,0xff,0xb6,0xfd,0xdb,0xfd,0xda,0xfe,0x56,0xfd,0xdf,0xfc, +0xaa,0x0,0x23,0x2,0xcb,0xfe,0x50,0xfe,0xf1,0x0,0x0,0x0, +0x31,0xfe,0xdc,0xff,0xc7,0x0,0x94,0xff,0xbd,0xff,0x46,0x0, +0xf,0x0,0x83,0x0,0x4a,0x0,0x6b,0xff,0x33,0x0,0x98,0x0, +0xa0,0xff,0x75,0x0,0x24,0x1,0xf3,0xfe,0x86,0xfe,0x98,0x0, +0x77,0xff,0xa1,0xfd,0x8c,0x0,0x67,0x2,0x39,0xfe,0x91,0xfb, +0x89,0xfe,0xca,0xff,0x5d,0xfd,0xfd,0xfd,0x23,0x1,0x3b,0x0, +0xb0,0xfc,0x5b,0xfc,0x59,0xfe,0x39,0xfe,0x5f,0xfc,0x99,0xfc, +0x92,0xfe,0x3d,0xfe,0xc6,0xfc,0x9f,0xfe,0xe2,0x0,0x46,0xff, +0xff,0xfd,0x9c,0xff,0x3b,0xff,0xb6,0xfc,0xf4,0xfc,0xc1,0xfe, +0x45,0xfe,0x8a,0xfd,0xcf,0xff,0x23,0x2,0x56,0x0,0xd2,0xfd, +0x15,0xff,0x5b,0xff,0x7b,0xfb,0x5,0xfb,0xb3,0xff,0x4b,0x0, +0x8f,0xfc,0x32,0xfd,0xd9,0x0,0x32,0x0,0x59,0xfd,0x2,0xfe, +0x5f,0xff,0xcb,0xfc,0xa3,0xfa,0x97,0xfd,0x2e,0x0,0xb7,0xfe, +0x50,0xff,0xd2,0x2,0x28,0x2,0xb6,0xfe,0x2d,0xff,0x2a,0x1, +0xb5,0xff,0x87,0xfd,0x73,0xfe,0x8c,0x0,0xad,0x0,0x2f,0x0, +0x6d,0x1,0xa0,0x1,0x67,0xfe,0x28,0xfd,0xc1,0x0,0x73,0x1, +0x83,0xfc,0x52,0xfb,0xe8,0xff,0x5,0x1,0x95,0xfe,0x32,0x0, +0x9b,0x2,0x9c,0xff,0x90,0xfc,0xfe,0xfd,0x94,0xfe,0x58,0xfc, +0x7d,0xfc,0xd2,0xff,0x9,0x1,0x68,0xfe,0x47,0xfd,0x34,0x0, +0x1c,0x1,0xc,0xfe,0x4,0xfe,0x8c,0x0,0x92,0xfe,0xe5,0xfb, +0xc3,0xfe,0x79,0x1,0x97,0xff,0x8d,0xfe,0x8c,0x0,0xa5,0x0, +0x84,0xfd,0x9e,0xfc,0xcb,0xff,0x27,0x0,0x2,0xfc,0x6b,0xfc, +0xb1,0x1,0xab,0x1,0x21,0xfe,0x5e,0xff,0xe6,0x0,0xcd,0xfd, +0x87,0xfc,0x4e,0xff,0xad,0xff,0x25,0xfd,0x52,0xfd,0x2e,0x0, +0xcc,0x0,0xb5,0xfe,0xf4,0xfd,0x7d,0xff,0x1b,0x0,0x88,0xfe, +0xcf,0xfd,0xe4,0xff,0x10,0x1,0x3b,0xff,0xe1,0xff,0x98,0x3, +0x80,0x2,0xf9,0xfe,0x58,0x1,0x23,0x3,0x4a,0xfe,0xfa,0xfc, +0xad,0x1,0xa9,0x1,0x6a,0xfe,0x9f,0x0,0xaa,0x3,0xba,0x0, +0x4c,0xfd,0x3d,0xff,0x66,0x1,0xeb,0xfe,0xbd,0xfd,0xf5,0x0, +0x9f,0x0,0x6a,0xfc,0xb9,0xfd,0xe7,0x1,0x45,0x0,0xe7,0xfc, +0x9a,0xfd,0x19,0xff,0xcc,0xfe,0x72,0xfe,0x9,0x0,0x5a,0x2, +0xe1,0x0,0x94,0xfd,0x5a,0xff,0xe2,0x1,0xb2,0xfe,0x1e,0xfd, +0xc4,0x0,0x26,0x1,0x98,0xfe,0x5d,0x0,0x3d,0x3,0xdc,0x1, +0x5e,0xff,0xe1,0xff,0x93,0x2,0xab,0x2,0x69,0xfe,0xf6,0xfc, +0xee,0x0,0xd4,0x0,0x17,0xfd,0xad,0x0,0x69,0x4,0x38,0xfd, +0xae,0xf9,0x1,0x2,0x37,0x3,0x3b,0xfc,0xe1,0xff,0xce,0x5, +0xbb,0xff,0x91,0xfc,0x3b,0x2,0x2a,0x1,0xd2,0xfc,0x61,0x0, +0xe4,0x2,0xc8,0xff,0x2d,0xff,0xf7,0xff,0xf,0xff,0x13,0x0, +0x69,0x1,0x9a,0x0,0x9a,0x0,0x8e,0x0,0xd6,0xfe,0x85,0xff, +0xba,0x2,0xad,0x2,0x8e,0xff,0x94,0xff,0x46,0x2,0x3b,0x1, +0x30,0xff,0xe4,0x2,0x29,0x5,0x9b,0xff,0x67,0xfd,0x1f,0x2, +0x53,0x1,0x12,0xfd,0xb1,0x0,0xb8,0x4,0x56,0x0,0xb9,0xfd, +0xaa,0x2,0xb3,0x4,0x80,0x0,0x5e,0xff,0x15,0x2,0x95,0x0, +0x50,0xfd,0xa3,0xff,0x76,0x2,0xe8,0xff,0x2f,0xfe,0xe0,0x0, +0x5a,0x2,0x98,0x0,0x7b,0xff,0xe2,0x0,0xba,0x1,0x1b,0xff, +0x17,0xfd,0x1b,0xff,0xa9,0xff,0x68,0xfd,0x91,0xfe,0x5d,0x1, +0xd2,0x0,0x96,0xff,0x27,0xff,0x73,0xfe,0x6a,0xfe,0xe0,0xfd, +0xf5,0xfd,0xfb,0x0,0x84,0x0,0xc,0xfc,0x6e,0xfe,0x93,0x3, +0x7b,0x0,0xd7,0xfd,0xc5,0x1,0x5d,0x1,0x4c,0xfd,0xc1,0xff, +0x70,0x3,0xdc,0x0,0x7a,0xfe,0x15,0x1,0xc0,0x2,0xc6,0xff, +0xba,0xfd,0x77,0x0,0x3d,0x2,0x87,0xff,0x4d,0xfe,0x5e,0x0, +0xff,0xff,0xed,0xfd,0xa6,0xff,0xa6,0x2,0x5b,0x1,0x94,0xfe, +0x65,0xff,0xc8,0x0,0x1f,0xff,0x9b,0xfe,0xa,0x1,0x22,0x1, +0x92,0xfe,0x28,0xfe,0xc1,0xff,0xfa,0x0,0x57,0x1,0x9e,0x0, +0x1e,0x0,0x28,0x0,0xd6,0xfe,0xbd,0xfe,0x44,0x2,0xb3,0x3, +0xfb,0x0,0x9a,0x0,0x24,0x2,0xa1,0xff,0x6,0xfd,0x8,0x0, +0x29,0x2,0xc8,0xfe,0x21,0xfe,0xea,0x1,0x9d,0x0,0x18,0xfd, +0x74,0x0,0xdb,0x2,0x89,0xfe,0x1a,0xfe,0xa0,0x1,0x9a,0xff, +0x54,0xfd,0x48,0x0,0xf4,0x1,0x1d,0x1,0x24,0x0,0x12,0xfe, +0xff,0xfd,0x60,0xff,0x3c,0xfd,0x3,0xfd,0x41,0x1,0x5f,0x0, +0x85,0xfc,0x25,0xff,0xa9,0x1,0x51,0xfe,0x9a,0xfd,0xf3,0x0, +0x9a,0x0,0x96,0xfd,0xdf,0xfd,0x9,0x0,0xc9,0xff,0xb0,0xfe, +0xdf,0xff,0xe0,0x0,0x2c,0xff,0xa0,0xfd,0x43,0xfe,0xa6,0xff, +0x33,0x0,0x74,0xff,0xa5,0xff,0x23,0x1,0x74,0xff,0x7,0xfd, +0x23,0x0,0x56,0x2,0x9c,0xfe,0x1,0xfe,0xed,0x0,0x1e,0xff, +0xbb,0xfd,0x84,0x1,0xa3,0x2,0x42,0x0,0x31,0x0,0x91,0x0, +0xf7,0xff,0x19,0x1,0x1e,0x2,0xbc,0x0,0x2d,0xff,0x15,0xff, +0xd7,0xff,0x6c,0x0,0x18,0x0,0x5f,0xff,0x65,0xff,0xa,0x0, +0xb8,0xff,0xc9,0xfe,0xff,0xff,0x80,0x1,0x9a,0xff,0xe3,0xfe, +0xbd,0x1,0x9e,0x0,0xd4,0xfc,0xd2,0xfe,0x49,0x1,0x9e,0xfe, +0x32,0xfe,0x88,0x0,0x57,0xff,0xcb,0xfd,0xbe,0xfe,0x8e,0xff, +0xfe,0x0,0xa0,0x1,0xf0,0xfe,0x24,0xfe,0x4f,0x0,0xd6,0xff, +0x50,0xff,0xfc,0x0,0x4,0xff,0xaf,0xfc,0xed,0x0,0xbf,0x3, +0xd3,0xff,0x85,0xfe,0xf8,0x0,0xa2,0xff,0xf,0xfe,0xc2,0xff, +0xdf,0xfe,0x4b,0xfd,0xf0,0xff,0x71,0x0,0x83,0xfd,0xfc,0xfd, +0x65,0xfe,0xa3,0xfc,0xd3,0xff,0x79,0x2,0x38,0xfd,0x45,0xfb, +0xb2,0xff,0xba,0xfe,0x31,0xfc,0xcc,0xff,0xda,0x0,0xcd,0xfd, +0xf6,0xfe,0x73,0x0,0x3c,0xfe,0xe4,0xfe,0x2,0x2,0x2,0x1, +0xd7,0xfd,0x70,0xfd,0xf9,0xfe,0xa7,0xff,0x78,0xff,0xc8,0xff, +0xba,0xff,0x60,0xfe,0xa9,0xfd,0x47,0xfe,0x30,0xff,0xaa,0x0, +0x6e,0x1,0x3f,0x0,0x38,0xff,0x5b,0xfe,0xfa,0xfc,0x56,0xfe, +0x33,0x1,0x4c,0x0,0x91,0xfd,0x10,0xfd,0xca,0xfd,0xc7,0xfe, +0x28,0xff,0x24,0xfe,0x2c,0xfe,0x30,0xff,0xad,0xfe,0x9d,0xfe, +0x7f,0xff,0xa4,0xfe,0x6d,0xfe,0xd9,0xff,0x94,0xfe,0x90,0xfc, +0x3b,0xfe,0x98,0xff,0xfc,0xfd,0x1,0xfe,0x25,0x0,0xc5,0xff, +0x9a,0xfd,0x38,0xfe,0x38,0x0,0x44,0xff,0x0,0xfe,0xbe,0xff, +0xb5,0xff,0x73,0xfc,0x8d,0xfc,0xc3,0xff,0x11,0x0,0x83,0xfe, +0xe4,0xfd,0x39,0xfd,0x47,0xfd,0x92,0xfe,0x31,0xff,0x2b,0xff, +0xc0,0xfe,0x80,0xfd,0x6b,0xfd,0x81,0xfe,0xec,0xfd,0x4,0xfd, +0x66,0xfe,0xbb,0xff,0xab,0xfe,0x41,0xfd,0xfe,0xfd,0xb4,0xff, +0x44,0xff,0xeb,0xfd,0x34,0xff,0xf7,0xff,0x81,0xfc,0xd8,0xfa, +0x4a,0xfe,0x53,0xff,0xd4,0xfc,0xfd,0xfd,0x11,0x0,0x3a,0xfd, +0xb8,0xfb,0x49,0xff,0x7f,0x0,0x56,0xfe,0x67,0xfe,0xd3,0xfe, +0xa8,0xfd,0x69,0xfe,0x84,0xff,0xb,0xfe,0x45,0xfd,0xff,0xfd, +0x12,0xfe,0xe4,0xfe,0xcd,0xff,0x2,0xff,0x72,0xff,0x78,0x0, +0x59,0xfe,0xe6,0xfc,0x91,0xfe,0x78,0xfe,0x9d,0xfd,0xbd,0xff, +0x27,0x0,0x17,0xfd,0xdb,0xfc,0xb6,0xff,0x77,0x0,0x51,0xff, +0x9d,0xfe,0x47,0xfe,0x60,0xfe,0xa6,0xfe,0x8a,0xfe,0x47,0xff, +0x51,0x0,0x58,0xff,0xf3,0xfe,0x40,0x1,0x52,0x0,0x9f,0xfb, +0xad,0xfc,0x9d,0x1,0xf3,0xff,0xff,0xfc,0x51,0x0,0x27,0x1, +0x87,0xfd,0x67,0xff,0xfc,0x2,0x79,0x0,0xa2,0xfe,0x66,0x0, +0xb3,0xff,0x41,0xfe,0x18,0xff,0x4a,0xff,0x66,0xff,0xc7,0xff, +0xcf,0xfd,0x26,0xfd,0xf6,0xff,0x14,0x0,0xd4,0xfd,0xd8,0xfe, +0x8f,0xff,0x2,0xfd,0x11,0xfd,0xf6,0xff,0x9a,0xff,0xbf,0xfd, +0x2e,0xff,0xac,0x0,0x62,0xfe,0x37,0xfc,0xe6,0xfd,0xf1,0xff, +0x1b,0xff,0x37,0xfe,0xe1,0xfe,0x9a,0xfe,0x22,0xfe,0xb7,0xff, +0x57,0x0,0x21,0xfe,0x5,0xfd,0x40,0xfe,0xd2,0xfe,0x9e,0xfe, +0x47,0xff,0x8e,0x0,0x5,0x1,0x1b,0xff,0x5b,0xfc,0x5f,0xfc, +0x80,0xfd,0x3a,0xfd,0xc2,0xfe,0x1a,0x1,0xea,0xfe,0x4e,0xfc, +0xa6,0xfe,0x76,0x0,0xba,0xfe,0x28,0xfe,0x15,0xff,0x23,0xff, +0xd7,0xfe,0x2f,0xfe,0x22,0xfe,0xa1,0xff,0x8e,0xff,0xf8,0xfd, +0xb2,0xfe,0xa8,0xff,0xb3,0xfe,0x49,0xff,0x53,0x0,0x7e,0xfe, +0xe0,0xfd,0x8b,0x0,0xf7,0x0,0x77,0xfe,0x52,0xfe,0x46,0x0, +0xc,0x0,0x6d,0xfe,0x82,0xfe,0xc0,0xfe,0x4f,0xfd,0x4f,0xfd, +0x11,0x0,0xd6,0x0,0x98,0xfd,0x4f,0xfb,0x1b,0xfd,0xfd,0xfe, +0xc0,0xfd,0x1,0xfd,0xa2,0xfe,0x4b,0xfe,0x4f,0xfc,0x3f,0xfd, +0x78,0xfe,0x6c,0xfd,0xe9,0xfd,0x76,0xfe,0x65,0xfc,0x2,0xfd, +0xc5,0xff,0x94,0xfe,0x35,0xfd,0x50,0xfe,0x9,0xfd,0x7c,0xfc, +0x71,0xff,0x96,0xfe,0xa6,0xfb,0x7a,0xfe,0x39,0x1,0xe9,0xfe, +0x61,0xfe,0xcd,0xff,0x30,0xfe,0xd6,0xfd,0x2c,0x1,0x56,0x1, +0x1a,0xfd,0x8c,0xfb,0x57,0xfe,0x74,0x0,0x2b,0x0,0x74,0xff, +0x33,0xfe,0xe6,0xfc,0x62,0xfe,0x93,0x0,0xe2,0xfe,0x9a,0xfc, +0x5b,0xfe,0xda,0xff,0x3e,0xfe,0xcc,0xfe,0x82,0x1,0x13,0x0, +0x9,0xfd,0xa1,0xfe,0xc0,0x0,0x37,0xff,0x9c,0xfe,0xdf,0xff, +0x88,0xff,0x20,0xff,0x2f,0xff,0xff,0xfd,0x54,0xfe,0xa9,0xff, +0x3c,0xfe,0xf7,0xfd,0x35,0x0,0xa5,0xfe,0x8a,0xfb,0x9c,0xfc, +0x69,0xfe,0x61,0xff,0xb3,0x0,0xec,0xfe,0x41,0xfc,0x81,0xfd, +0x7e,0xfe,0xd3,0xfd,0xb,0xff,0xdd,0xfe,0xc8,0xfc,0x27,0xfe, +0xe1,0xff,0x9,0xfe,0x51,0xfd,0x79,0xfe,0x2,0xfe,0x29,0xfe, +0x66,0x0,0x89,0x0,0xbe,0xfd,0x52,0xfd,0x86,0x0,0x42,0x1, +0xa,0xff,0xec,0xff,0xd3,0x0,0x9b,0xfd,0xd1,0xfd,0x43,0x1, +0xd3,0xfe,0x82,0xfc,0x2f,0x0,0xbd,0xff,0xfe,0xfb,0x34,0xff, +0x4c,0x2,0x6a,0xfe,0xbc,0xfc,0x66,0xff,0x50,0xff,0xe9,0xfd, +0x16,0xff,0x47,0x0,0x70,0xff,0x60,0xfe,0x62,0xfe,0x8d,0xfe, +0x6c,0xfe,0x8e,0xfe,0x7e,0xfe,0xfa,0xfe,0xe4,0x0,0xc3,0x0, +0x1a,0xfe,0x5b,0xfe,0x6a,0x0,0x78,0xff,0x19,0xfe,0x46,0xfe, +0xfa,0xfd,0x5b,0xfe,0x7a,0xff,0xaa,0xff,0x12,0x0,0xb4,0xff, +0x47,0xfe,0x26,0xff,0x64,0xff,0xd0,0xfc,0xbd,0xfd,0x1a,0x0, +0xd9,0xfd,0xfc,0xfd,0x9f,0x1,0x5,0xff,0x37,0xfb,0x3f,0xfe, +0x3d,0xff,0x67,0xfb,0x25,0xfc,0x55,0xff,0xe,0xfe,0x36,0xfd, +0x37,0x0,0x2a,0x1,0xbe,0xfe,0x8a,0xfd,0x36,0xfd,0x34,0xfc, +0x98,0xfd,0x1a,0x0,0xbc,0xfe,0xd0,0xfc,0x8a,0xfe,0xcc,0xff, +0x61,0xff,0xca,0xff,0xf,0xff,0x23,0xfe,0xea,0xff,0x66,0x0, +0x7d,0xfe,0x35,0xfe,0x13,0xfe,0xcc,0xfd,0x6f,0x0,0xb6,0x1, +0xdb,0xfe,0x8d,0xfd,0xc6,0xfe,0x63,0xff,0x75,0x0,0x63,0x1, +0x3c,0x0,0x84,0xff,0x8f,0x0,0x92,0x0,0x1d,0xff,0xf,0xff, +0xcf,0xff,0xd8,0xfd,0x4f,0xfc,0xab,0xff,0xbd,0x1,0xf3,0xff, +0x44,0x1,0x58,0x1,0xf2,0xfb,0x88,0xfd,0x25,0x4,0xe1,0x0, +0x2d,0xfd,0x58,0x1,0x34,0xff,0x31,0xfa,0xf9,0xfe,0x2f,0x1, +0x22,0xfc,0x92,0xfd,0x16,0x1,0x33,0xfe,0xf9,0xfc,0xe,0xfe, +0x9d,0xfc,0xd5,0xfd,0xa,0x1,0x11,0x0,0x90,0xfe,0xc0,0xff, +0x31,0x0,0xb2,0xff,0x3b,0x0,0x5c,0x1,0xd0,0x1,0x85,0x0, +0x82,0xfe,0xf1,0xfd,0x6f,0xfe,0x83,0xfe,0x0,0xfe,0xb4,0xfd, +0xfd,0xfd,0x1a,0xfe,0x1f,0xff,0xc,0x2,0xc3,0x2,0xeb,0xff, +0x95,0xfe,0x4,0xff,0xa3,0xfe,0x1c,0xff,0x69,0xff,0xa3,0xfe, +0x80,0x0,0x7d,0x2,0xbe,0x0,0xf0,0xff,0x4c,0x0,0xc,0xfe, +0xc9,0xfd,0x6c,0x0,0xc4,0xff,0xe2,0xfd,0xd7,0xfe,0xfa,0xff, +0x6f,0x0,0xda,0x0,0x6b,0x0,0xd3,0xff,0x2d,0xfe,0x2,0xfc, +0xc7,0xfd,0xdf,0x0,0xea,0xff,0x7,0xff,0xad,0x0,0x25,0x0, +0x1d,0xfe,0x5e,0xfe,0x6e,0xff,0xfe,0xfe,0xa5,0xfd,0xab,0xfd, +0x24,0xff,0xce,0xfe,0xac,0xfd,0xf3,0xfe,0x30,0xff,0x6b,0xfd, +0x49,0xfe,0x9,0xff,0xc4,0xfc,0x8a,0xfd,0xd5,0x0,0x3,0x0, +0x5c,0xfe,0xc6,0xff,0x94,0xff,0x53,0xfd,0xbc,0xfd,0x7e,0xff, +0x6b,0xff,0x2d,0xff,0x66,0xff,0x94,0xfe,0x1,0xff,0xfe,0x0, +0x8b,0xff,0x52,0xfd,0xc,0x0,0x8d,0x0,0x19,0xfc,0x94,0xfd, +0x94,0x1,0xf2,0xfd,0xa5,0xfc,0xe9,0x1,0x39,0x1,0xd3,0xfd, +0xd2,0xff,0x2e,0xff,0x8e,0xfc,0x68,0xff,0xc3,0x0,0x64,0xfe, +0xd3,0xfe,0xbe,0xfe,0xba,0xfd,0x63,0x0,0x48,0x0,0x5f,0xfc, +0x64,0xfd,0x41,0xff,0xc,0xfd,0x67,0xfe,0x35,0x2,0x84,0x0, +0xf3,0xfd,0x2c,0x0,0x50,0x2,0x9a,0x0,0x64,0xfe,0xff,0xfe, +0x18,0x0,0xc5,0xfe,0xb7,0xfd,0xa5,0xfe,0xd0,0xfe,0xc3,0xfe, +0xc8,0xff,0x7a,0xff,0x70,0xfe,0x78,0xfe,0x4,0xfe,0xe6,0xfd, +0x54,0xff,0x8a,0xff,0x87,0xfe,0x37,0xfe,0x7f,0xfd,0x23,0xfd, +0x83,0xfe,0xde,0xfe,0x51,0xfd,0x69,0xfc,0xbf,0xfc,0x89,0xfd, +0x4e,0xfe,0x13,0xff,0xdd,0xff,0xa4,0xfe,0x19,0xfc,0x48,0xfd, +0x55,0x0,0xfc,0xfe,0x97,0xfc,0x31,0xfe,0xc5,0xff,0xb2,0xfe, +0xd0,0xfd,0x8c,0xfd,0x55,0xfd,0x29,0xfe,0x25,0xff,0x82,0xfe, +0xca,0xfc,0x3b,0xfc,0xc4,0xfd,0x6c,0xff,0xc8,0xff,0xd1,0xff, +0x1b,0xff,0x68,0xfd,0xa1,0xfd,0xa8,0xff,0x71,0xff,0x6c,0xfd, +0x38,0xfd,0x44,0xfe,0x38,0xfe,0x8d,0xfd,0xb8,0xfd,0xcb,0xfe, +0xc1,0xff,0xdd,0xff,0xcb,0xff,0x3b,0x0,0xf2,0xff,0x56,0xfe, +0xc7,0xfd,0x51,0xff,0x5e,0x0,0xf,0x0,0xdc,0xff,0x41,0xff, +0x5c,0xfe,0x24,0xff,0x77,0x0,0x49,0x0,0x96,0xff,0xef,0xfe, +0xca,0xfe,0x33,0x0,0x9d,0x0,0xb8,0xfe,0x5d,0xfe,0x24,0xff, +0x11,0xfe,0x76,0xfe,0xd6,0x0,0xb9,0xff,0xd,0xfd,0xfa,0xfd, +0x73,0xff,0xa3,0xfe,0x7,0xfe,0xd5,0xfd,0x4a,0xfd,0xce,0xfd, +0xa2,0xfe,0x68,0xfe,0xa4,0xfe,0x54,0xff,0x64,0xfe,0x50,0xfd, +0xb0,0xfe,0xda,0xff,0xcc,0xfd,0x1b,0xfc,0xf9,0xfd,0xaf,0xff, +0x92,0xfe,0x99,0xfd,0x39,0xfe,0x86,0xfe,0x21,0xfe,0x30,0xfe, +0x9e,0xfe,0x2f,0xfe,0xc,0xfd,0x74,0xfd,0x70,0xff,0xfc,0xff, +0x5,0xff,0xe5,0xfe,0xea,0xfe,0x44,0xfe,0xa3,0xfe,0x95,0xff, +0x1c,0xff,0x65,0xfe,0x46,0xff,0x85,0x0,0x8a,0x0,0x21,0x0, +0x4c,0x0,0x42,0x0,0x62,0xff,0xbe,0xfe,0x4b,0xff,0x3d,0x0, +0xe9,0xff,0xe0,0xfe,0xd9,0xff,0xae,0x1,0x6d,0x0,0x87,0xfe, +0x11,0x0,0x27,0x1,0x5a,0xff,0x38,0xff,0x82,0x0,0x89,0xff, +0xe9,0xfe,0x8c,0x0,0xfa,0x0,0x7c,0xff,0xdf,0xfe,0xfa,0xff, +0x10,0x1,0x76,0x0,0x9b,0xff,0x13,0x0,0x9f,0xff,0x4f,0xfe, +0x84,0xff,0x16,0x1,0x54,0xff,0x53,0xfd,0x3e,0xfe,0x0,0x0, +0x20,0x0,0x23,0xff,0x6c,0xff,0x52,0x0,0x9f,0xfe,0x11,0xfd, +0x72,0xff,0xa2,0x0,0xe6,0xfd,0x79,0xfd,0xec,0xff,0xbf,0xff, +0xf2,0xfd,0x3a,0xfe,0x74,0xff,0x76,0xff,0x5,0xff,0xc6,0xff, +0x2a,0x0,0x12,0xfe,0xe2,0xfc,0xf8,0xfe,0xca,0xff,0xee,0xfd, +0x6a,0xfd,0x69,0xfe,0xde,0xfe,0xde,0xfe,0xbf,0xfe,0x41,0xff, +0xaf,0xff,0x61,0xfe,0x27,0xfe,0x36,0x0,0xee,0xff,0x32,0xfe, +0x3e,0xff,0xc1,0xff,0xc6,0xfd,0x8f,0xfd,0xeb,0xfe,0xf8,0xfe, +0x98,0xfe,0xa8,0xfe,0xd,0xff,0xb1,0xff,0xa2,0xff,0x61,0xff, +0x70,0xff,0x95,0xfe,0x44,0xfe,0xd4,0xff,0xe,0x0,0x63,0xfe, +0x68,0xfe,0xf8,0xff,0x12,0x0,0x6e,0xfe,0x56,0xfd,0x3b,0xfe, +0x41,0xff,0xfd,0xfe,0x34,0xff,0x89,0xff,0x43,0xfe,0xab,0xfd, +0xcc,0xfe,0xe7,0xfe,0x1c,0xfe,0x20,0xfe,0x4a,0xfe,0x7d,0xfe, +0x32,0xff,0x73,0xff,0xdc,0xfe,0xb2,0xfe,0xdc,0xff,0x4e,0x0, +0x36,0xfe,0x14,0xfd,0xdc,0xfe,0x39,0xff,0xf4,0xfd,0x9b,0xfe, +0xc,0xff,0xde,0xfd,0x68,0xfd,0x25,0xfd,0xfc,0xfd,0x9c,0x0, +0xe7,0xff,0xa,0xfd,0x10,0xfe,0xc0,0xfe,0xa8,0xfc,0xea,0xfd, +0xeb,0xff,0xd0,0xfd,0xa,0xfd,0x59,0xff,0x65,0x0,0x18,0x0, +0xd8,0xfe,0x67,0xfd,0x2f,0xfe,0x7,0xff,0xd1,0xfe,0xfb,0xff, +0x3,0x0,0x30,0xfe,0xc,0xff,0x95,0x0,0x5a,0xff,0x74,0xfe, +0xdf,0xfe,0x52,0xff,0xd5,0xff,0x2f,0xff,0xd3,0xfe,0x14,0x0, +0x4e,0xff,0x26,0xfe,0xfe,0xff,0x96,0xff,0xe2,0xfc,0xe0,0xfd, +0x37,0xff,0xe0,0xfe,0xef,0x0,0xbb,0x1,0x4b,0xff,0x25,0xff, +0xa5,0xff,0x5a,0xfe,0xfd,0xfe,0x80,0xff,0xe2,0xfd,0x68,0xfe, +0x8e,0xff,0xb3,0xfe,0x3b,0xff,0x1b,0x0,0xd9,0xfe,0x98,0xfe, +0x89,0xff,0x5c,0xff,0xe,0xff,0xd,0xff,0x4a,0xff,0xb0,0xff, +0xbf,0xfe,0xe3,0xfd,0x78,0xfe,0x1c,0xfe,0xd3,0xfd,0xf9,0xfe, +0x73,0xfe,0xb7,0xfd,0x56,0xff,0xa4,0xff,0xc9,0xfe,0xb0,0xff, +0x92,0xff,0x53,0xfe,0xb2,0xfe,0xed,0xfe,0x14,0xff,0xf1,0xff, +0x8e,0xfe,0xef,0xfc,0x2c,0xfe,0x6d,0xfe,0x5a,0xfd,0x36,0xfe, +0xda,0xfe,0x4a,0xfe,0x77,0xfe,0xa6,0xfe,0xe6,0xfe,0x1d,0xff, +0xe,0xfe,0x31,0xfe,0x47,0xff,0xc0,0xfd,0xf0,0xfc,0xa8,0xfe, +0x2f,0xfe,0xa1,0xfd,0xdd,0xff,0x95,0xff,0x3d,0xfd,0xd7,0xfd, +0xb6,0xfe,0xcb,0xfd,0xaa,0xfd,0x3f,0xfe,0xc0,0xfe,0x70,0xfe, +0xec,0xfc,0xa0,0xfd,0x1d,0x0,0x5f,0xff,0xd4,0xfd,0x1c,0xff, +0x5e,0xff,0xdc,0xfd,0xd3,0xfd,0x73,0xfe,0x9e,0xfe,0x49,0xfe, +0x32,0xfd,0x81,0xfd,0xd2,0xfe,0xdc,0xfd,0x34,0xfd,0x53,0xff, +0xb5,0xff,0x76,0xfd,0x42,0xfd,0x13,0xff,0x79,0xff,0xa6,0xfe, +0xc6,0xfe,0x1a,0xff,0xf0,0xfd,0x59,0xfd,0x71,0xfe,0xc0,0xfd, +0x17,0xfc,0x52,0xfd,0x7e,0xfe,0x7a,0xfd,0xe4,0xfd,0xe0,0xfe, +0x5,0xfe,0x88,0xfd,0x7a,0xfd,0x3b,0xfd,0x1e,0xfe,0xf0,0xfd, +0xfd,0xfc,0xe4,0xfe,0x88,0xff,0x9c,0xfc,0xe7,0xfc,0x17,0xff, +0xf4,0xfc,0x61,0xfb,0xf6,0xfd,0x6e,0xff,0xd1,0xfe,0x72,0xfe, +0xe6,0xfd,0xb5,0xfd,0x96,0xfd,0x19,0xfc,0xfc,0xfa,0x88,0xfb, +0xaa,0xfc,0x9,0xfe,0xc8,0xfe,0x7e,0xfe,0x36,0xfe,0x63,0xfd, +0x8e,0xfc,0x85,0xfd,0x41,0xfe,0xae,0xfd,0x33,0xfe,0xe8,0xfe, +0xca,0xfe,0x77,0xff,0xea,0xfe,0xef,0xfc,0xc,0xfe,0x6d,0xff, +0x59,0xfc,0xf4,0xfa,0xeb,0xfe,0x7,0x1,0x4a,0xff,0x51,0xff, +0xc1,0x0,0x6a,0xff,0xf1,0xfc,0xc2,0xfc,0x56,0xfd,0xc7,0xfc, +0x2,0xfd,0x8d,0xfe,0x2e,0xff,0xfb,0xfe,0xe2,0xfe,0x31,0xfe, +0x71,0xfd,0x45,0xfd,0xf5,0xfc,0x51,0xfd,0x62,0xfe,0x5f,0xfe, +0x72,0xfe,0x98,0xff,0x50,0xff,0x55,0xfe,0x1d,0xff,0xd2,0xfe, +0x6,0xfc,0xc0,0xfb,0x67,0xff,0x34,0x1,0xc,0xff,0x9,0xfe, +0xc4,0xff,0x68,0xff,0xe9,0xfc,0xc,0xfd,0x78,0xfe,0x5,0xfe, +0x18,0xfe,0x7e,0xff,0xf9,0xff,0x90,0xff,0x34,0xfe,0xe2,0xfc, +0x25,0xfe,0x2,0xff,0x19,0xfd,0x32,0xfd,0xef,0xfe,0xb3,0xfd, +0x2e,0xfd,0x6d,0xff,0x41,0xff,0x89,0xfd,0xb6,0xfd,0x31,0xfd, +0xdf,0xfb,0xc1,0xfc,0xa8,0xfe,0xb3,0xff,0xeb,0xff,0xd5,0xff, +0x60,0x0,0x41,0x0,0x75,0xfe,0xc1,0xfd,0x6f,0xfe,0x75,0xfe, +0x1a,0xff,0x30,0x0,0x1f,0x0,0x6e,0x0,0x40,0x0,0x79,0xfe, +0xb9,0xfe,0xbf,0xff,0x3,0xfe,0xec,0xfd,0xb,0x0,0x36,0xff, +0xd0,0xfe,0x26,0x1,0x7b,0x0,0xae,0xfe,0x8,0x0,0xf2,0xff, +0x68,0xfe,0xe8,0xff,0xfa,0x0,0xed,0xff,0xa2,0x0,0x1a,0x1, +0x42,0xff,0x5,0xff,0x28,0x0,0x5c,0xff,0x9a,0xfe,0xc0,0xff, +0x2c,0x0,0x7,0xff,0xf2,0xfe,0x28,0x0,0xf0,0xff,0xa4,0xfe, +0xbc,0xfe,0x40,0xff,0x8,0xff,0x55,0xff,0x5e,0xff,0x4,0xff, +0x7c,0x0,0x5a,0x1,0x43,0xff,0xa8,0xfe,0x17,0x0,0xee,0xfe, +0x9f,0xfd,0xba,0xff,0x17,0x1,0xbf,0xff,0x2b,0xff,0xb1,0xff, +0xa5,0xff,0xc6,0xff,0x71,0x0,0x5e,0x0,0x8d,0xff,0x9c,0xff, +0x8e,0x0,0xfb,0x0,0x69,0x1,0x2b,0x2,0x95,0x1,0x81,0x0, +0xa3,0x0,0xa9,0x0,0xc4,0x0,0x8b,0x1,0xa6,0x0,0xf4,0xff, +0xd,0x2,0xd4,0x1,0xc4,0xfe,0x7a,0xff,0x5b,0x1,0xaa,0xff, +0x58,0xff,0x6a,0x1,0x4b,0x1,0x7a,0x0,0x81,0x0,0x35,0x0, +0x55,0x1,0x55,0x2,0x48,0x0,0x5b,0xff,0x7,0x1,0xc3,0x0, +0xc1,0xff,0xc,0x1,0x4,0x2,0x49,0x1,0xa3,0x0,0x84,0x0, +0x27,0x0,0xff,0xfe,0x87,0xfe,0x8,0x0,0xb9,0x0,0x16,0x0, +0x31,0x1,0xd9,0x1,0x35,0x0,0x58,0x0,0x11,0x1,0x7,0xff, +0x8d,0xfe,0x87,0x0,0x77,0x0,0x36,0x0,0x2f,0x1,0x68,0x0, +0x63,0x0,0x62,0x2,0x79,0x1,0x6a,0xff,0xa1,0x0,0x4f,0x1, +0xf3,0xff,0xdd,0x0,0xc8,0x2,0x30,0x2,0x17,0x1,0x79,0x1, +0xbb,0x1,0xf3,0x0,0x64,0x0,0xdf,0x0,0x25,0x1,0x99,0x0, +0xc5,0x0,0xa4,0x1,0x7a,0x1,0x9a,0x0,0x33,0x0,0xa3,0x0, +0xe,0x2,0xd5,0x2,0xa3,0x1,0x9f,0x0,0xb5,0x0,0x4b,0x0, +0xbb,0x0,0xe5,0x2,0x11,0x3,0xc4,0x0,0x64,0x0,0xf5,0x1, +0x14,0x2,0x53,0x1,0x6a,0x1,0x6e,0x1,0x10,0x1,0xf8,0x0, +0x96,0x0,0x28,0x0,0xb9,0x0,0x46,0x1,0xf7,0x0,0xdb,0x0, +0xae,0x0,0xd0,0xff,0xbe,0xff,0x81,0x0,0x9f,0x0,0xea,0x0, +0x7f,0x1,0xbe,0x0,0x63,0x0,0x7,0x2,0x68,0x2,0x89,0x0, +0xf6,0xff,0x98,0x0,0xab,0xff,0xa8,0xfe,0x6,0x0,0x8,0x2, +0x26,0x2,0xe6,0x0,0xe,0x0,0x2a,0x0,0xba,0x0,0xfd,0x0, +0xf2,0x0,0xac,0x1,0x98,0x2,0x6c,0x1,0xb2,0xff,0xed,0x0, +0xde,0x2,0x12,0x2,0xe6,0x0,0xd9,0x0,0xe6,0xff,0x55,0xff, +0xdb,0x0,0x1c,0x2,0x73,0x2,0xa3,0x2,0xdc,0x0,0xd5,0xfe, +0xd2,0x0,0x92,0x3,0x20,0x2,0x37,0x0,0x5d,0x1,0xd0,0x1, +0x4c,0x0,0x6c,0x0,0xd1,0x1,0x9c,0x1,0xa5,0x0,0x41,0x0, +0x14,0x0,0xc2,0x0,0xe1,0x1,0xb2,0x1,0xaf,0x1,0x2,0x3, +0x67,0x2,0xa1,0xff,0x31,0xff,0xc,0x1,0xb0,0x1,0x7d,0x1, +0x77,0x1,0x95,0x0,0xcb,0xff,0x59,0x0,0xe6,0x0,0x45,0x1, +0x28,0x2,0x63,0x1,0xb3,0xfe,0xb4,0xfe,0x1d,0x2,0x6f,0x3, +0x90,0x1,0x9c,0x0,0x8b,0x0,0x45,0xff,0xe3,0xfe,0xcf,0x0, +0xb9,0x2,0xfc,0x2,0x5a,0x1,0x1a,0xff,0x23,0xff,0xa0,0x0, +0x86,0x0,0xb8,0x0,0x64,0x2,0x8b,0x1,0xa9,0xfe,0x9f,0xfe, +0x8c,0x0,0x56,0x1,0xa7,0x1,0x93,0x1,0x73,0x0,0xe9,0xff, +0x71,0x0,0xe2,0x0,0xc0,0x1,0xa,0x3,0x79,0x2,0xfa,0xff, +0xf0,0xfe,0x7b,0x0,0xb6,0x1,0x9d,0x1,0xd4,0x1,0xb0,0x1, +0x8b,0x0,0x7a,0x0,0x41,0x1,0x5f,0x1,0x0,0x2,0xfc,0x1, +0x98,0xff,0xc3,0xfe,0x6d,0x0,0x30,0x0,0x23,0x0,0x25,0x3, +0x92,0x3,0x19,0x0,0xec,0xfe,0x53,0x0,0x71,0x1,0xea,0x2, +0x34,0x3,0xda,0x0,0x3a,0xff,0xa3,0xff,0x45,0x0,0xae,0x1, +0xcc,0x3,0xac,0x3,0xc3,0x0,0x6d,0xfe,0x4,0xff,0xaa,0x0, +0x16,0x1,0x5e,0x1,0xb7,0x1,0x3f,0x0,0xb0,0xfe,0x87,0xff, +0xfd,0x0,0xac,0x1,0x67,0x1,0x4e,0xff,0xc,0xfe,0xb2,0xff, +0x36,0x0,0x63,0xff,0x7d,0x1,0x4c,0x3,0xd,0x1,0x3b,0xff, +0xa9,0xff,0x95,0xff,0x1a,0x0,0xa3,0x1,0x7c,0x1,0x3c,0x0, +0x61,0xff,0xd2,0xfe,0xf4,0xff,0x26,0x2,0x1c,0x2,0x62,0x0, +0x4b,0xff,0xcc,0xfe,0x73,0xff,0x55,0x1,0x1d,0x2,0x68,0x1, +0xa3,0x0,0xb2,0xff,0xf9,0xfe,0xdd,0xff,0xc8,0x1,0xca,0x2, +0xe2,0x1,0x2c,0x0,0xa3,0xff,0xf8,0xff,0x31,0x0,0x6b,0x1, +0xcf,0x2,0x82,0x1,0xf,0xff,0xb9,0xfe,0xc8,0xff,0xf9,0x0, +0x0,0x2,0x8a,0x1,0xa,0x0,0x1b,0xff,0x6f,0xfe,0x22,0xff, +0x41,0x2,0xab,0x3,0x52,0x1,0xc7,0xff,0x36,0x0,0x91,0xff, +0x4b,0xff,0x45,0x1,0x52,0x2,0xe3,0x0,0x8e,0xff,0xb3,0xff, +0xc0,0x0,0x9d,0x1,0x2a,0x1,0x45,0x0,0x50,0x0,0x3,0x0, +0x93,0xfe,0x5a,0xfe,0x52,0x0,0xf4,0x1,0x78,0x1,0x8,0x0, +0xc,0xff,0x55,0xfe,0x0,0xfe,0x44,0xff,0x35,0x1,0xdf,0x0, +0xca,0xfe,0x5c,0xfe,0xe8,0xff,0xbf,0x1,0xe,0x3,0xb,0x2, +0xc8,0xfe,0x68,0xfd,0x79,0xfe,0x82,0xfe,0x6,0xff,0x32,0x2, +0xa3,0x3,0x48,0x1,0x65,0xff,0xac,0xff,0x6b,0x0,0x7e,0x0, +0x27,0xff,0x63,0xfe,0x2d,0x0,0xda,0x0,0x4a,0xff,0xb7,0x0, +0xf6,0x3,0xcf,0x2,0x3f,0xff,0x37,0xfe,0x92,0xfe,0x32,0xfe, +0xee,0xfd,0x65,0xff,0xf1,0x1,0xb9,0x1,0xe4,0xfe,0xf4,0xfe, +0x5a,0x1,0x13,0x1,0x57,0xff,0x95,0xfe,0x27,0xfe,0x13,0xff, +0x98,0x0,0x85,0x0,0x22,0x1,0x5f,0x2,0x93,0x0,0x1b,0xfe, +0xf9,0xfd,0x67,0xfe,0xd4,0xff,0x94,0x1,0xa1,0x0,0x3b,0x0, +0xba,0x1,0xfb,0xff,0x2c,0xfe,0x50,0x1,0x97,0x2,0x1e,0xff, +0xac,0xfd,0xbc,0xfe,0x69,0xff,0xc1,0x0,0xd9,0x1,0xfc,0x1, +0x6,0x2,0x9e,0xff,0x87,0xfc,0x74,0xfe,0x6,0x2,0x70,0x1, +0xbc,0xff,0xc6,0xff,0xb5,0xff,0x4d,0xff,0x54,0xff,0xba,0xff, +0x27,0x0,0xb7,0xff,0x46,0xff,0xe5,0xff,0x25,0x0,0x77,0x0, +0xd6,0x1,0xa0,0x1,0x19,0x0,0xe2,0xff,0xd0,0xfe,0x73,0xfd, +0xe,0x0,0x8d,0x2,0x72,0x0,0x29,0xff,0x9c,0x0,0x2b,0x0, +0x14,0xff,0xc9,0xff,0xf2,0xff,0xa9,0xff,0xe2,0xff,0xf3,0xfe, +0xd8,0xfe,0x58,0x1,0xf3,0x1,0xd0,0xff,0xba,0xff,0x7a,0x0, +0xd8,0xfe,0xc4,0xfe,0x1,0x2,0x4d,0x3,0xbd,0x1,0x4d,0x1, +0xb3,0x1,0xf,0x1,0x9a,0x0,0xc3,0x0,0xc6,0x0,0xf6,0x0, +0xac,0x0,0x15,0xff,0x46,0xfe,0xed,0xff,0xa6,0x1,0x82,0x0, +0xdd,0xfd,0x4d,0xfd,0xa8,0xfe,0x45,0xff,0xb2,0xff,0x46,0x1, +0xf4,0x1,0x56,0x0,0x54,0xfe,0x64,0xfe,0xac,0x0,0x89,0x1, +0x76,0xff,0x9e,0xff,0x80,0x2,0x45,0x1,0x1b,0xfe,0xe2,0xff, +0xf0,0x1,0xae,0xff,0x1b,0xfe,0x5a,0xfe,0x15,0xfe,0xf4,0xfe, +0xe0,0xff,0x54,0xff,0x4d,0x0,0xec,0x0,0x2e,0xfe,0x81,0xfd, +0xb1,0x0,0x19,0x2,0xcf,0x1,0xf,0x2,0xec,0x0,0xe9,0xff, +0x2a,0x1,0x8c,0x1,0xe,0x1,0xcb,0x2,0xdb,0x3,0x10,0x1, +0xb2,0xfe,0x77,0x0,0x88,0x2,0x41,0x1,0x2,0x0,0x5e,0x1, +0x1e,0x1,0x54,0xfe,0xb2,0xfe,0x4,0x2,0x90,0x2,0xe3,0x0, +0x68,0x0,0x84,0x0,0xa7,0x0,0xf5,0x0,0xa8,0x0,0xf2,0x0, +0xee,0x1,0xc5,0x0,0x2e,0xff,0xde,0x0,0x79,0x2,0x2a,0x1, +0xb9,0x0,0x45,0x1,0xd9,0xff,0x85,0xff,0xb0,0x1,0xc9,0x1, +0x8b,0x0,0x73,0x1,0x7e,0x1,0xb0,0xff,0x2,0x0,0x30,0x1, +0x6a,0x0,0x14,0x0,0xd3,0x0,0x6f,0x0,0x69,0xff,0x5,0xff, +0xe8,0xff,0xdd,0x1,0xf6,0x1,0xf0,0xff,0xa4,0xff,0x85,0x0, +0xf1,0xff,0xb,0x0,0xa3,0x1,0xaf,0x1,0xde,0xff,0x93,0xfe, +0x27,0xff,0x64,0x0,0x2,0x0,0x58,0xff,0x1d,0x0,0x28,0xff, +0xb4,0xfc,0xb9,0xfd,0x8a,0x0,0x7,0x1,0xba,0x0,0x24,0x0, +0xcd,0xfe,0xd3,0xfe,0xf9,0xfe,0x2b,0xfe,0xa1,0xff,0x9f,0x1, +0x89,0x0,0x81,0xff,0xc1,0xff,0x38,0xff,0xfd,0xff,0x7d,0x1, +0x33,0x0,0xf9,0xfe,0x9,0x0,0xf,0x0,0x94,0xff,0x21,0x1, +0x64,0x2,0x5d,0x1,0xdc,0xff,0xed,0xff,0xd4,0x0,0x44,0x0, +0x9a,0xff,0x4b,0x1,0xeb,0x1,0x87,0xff,0xdf,0xfe,0xfa,0x0, +0x60,0x2,0x85,0x2,0x47,0x1,0x5a,0xff,0xa1,0xff,0x66,0x0, +0x3a,0xff,0x94,0xff,0x95,0x1,0x16,0x1,0xbb,0xff,0xf2,0xff, +0xcf,0xff,0xc4,0xff,0x11,0x1,0x6f,0x1,0x57,0x0,0xbc,0xff, +0xa0,0xff,0x96,0xff,0x64,0x0,0x8c,0x1,0xf9,0x0,0xf7,0xfe, +0xe9,0xfe,0xbf,0x0,0x81,0x0,0x37,0xff,0x6b,0x0,0x7a,0x1, +0xe1,0xff,0xa5,0xfe,0xb,0xff,0xbc,0xff,0xa2,0x0,0xc0,0x0, +0xc7,0xff,0xbc,0xff,0x2a,0x0,0x9a,0xff,0xd0,0xff,0x28,0x1, +0x1c,0x1,0xda,0xff,0xbf,0xff,0x98,0x0,0x9f,0x0,0x48,0x0, +0xd,0x1,0xb6,0x1,0xb6,0x0,0xba,0xff,0xc,0x0,0xdd,0x0, +0x31,0x2,0xee,0x2,0x33,0x1,0x5f,0xff,0xe6,0xff,0x8e,0x0, +0x56,0x0,0xe1,0x0,0xb3,0x1,0x93,0x1,0xa4,0x0,0xcc,0xff, +0x86,0x0,0xe8,0x1,0x60,0x1,0x68,0x0,0x11,0x1,0xd7,0x0, +0xe5,0xfe,0xb8,0xfe,0xf6,0x0,0x40,0x2,0xa,0x1,0x75,0xff, +0x71,0xff,0xf9,0xff,0x4b,0x0,0x5b,0x1,0x1d,0x2,0x38,0x1, +0x39,0x0,0xd5,0xff,0xa9,0xff,0xb1,0x0,0x91,0x1,0x58,0x0, +0x81,0xff,0x36,0x0,0x31,0x0,0x2b,0x0,0x1f,0x1,0x11,0x1, +0x7b,0x0,0x94,0x0,0xe2,0xff,0x91,0xff,0x7e,0x1,0x70,0x2, +0xb2,0x0,0xc2,0xff,0x75,0x0,0x1a,0x0,0x7,0xff,0x8d,0xff, +0x15,0x1,0x53,0x1,0x38,0x0,0x83,0xff,0xd7,0xff,0x86,0x0, +0xfa,0x0,0xfe,0x0,0xc7,0x0,0x46,0x0,0x52,0xff,0x51,0xff, +0x42,0x1,0xc5,0x2,0x9,0x2,0xe2,0x0,0x80,0x0,0x2f,0x0, +0x73,0x0,0x88,0x1,0xcf,0x1,0x1d,0x1,0xed,0x0,0xef,0x0, +0x50,0x0,0x5b,0x0,0x79,0x1,0xaf,0x1,0xd9,0x0,0xaa,0x0, +0x99,0x0,0xfe,0xff,0x27,0x0,0xea,0x0,0x2d,0x1,0x2e,0x1, +0x84,0x0,0x85,0xff,0x51,0x0,0xa8,0x1,0x11,0x1,0xb6,0x0, +0x8e,0x1,0xb5,0x0,0x41,0xff,0x3f,0x0,0xba,0x1,0x66,0x1, +0xa6,0x0,0x4c,0x0,0xb1,0xff,0x6e,0xff,0x5d,0x0,0x7f,0x1, +0x49,0x1,0x4f,0x0,0xbd,0xff,0x3e,0xff,0x3c,0xff,0x6e,0x0, +0x42,0x1,0x13,0x1,0xd2,0x0,0xa1,0xff,0x57,0xfe,0xa8,0xff, +0x70,0x1,0xfb,0x0,0x63,0x0,0xfe,0xff,0xcb,0xfe,0x32,0xff, +0xef,0x0,0xe5,0x0,0x4e,0x0,0x8d,0x0,0xcc,0xff,0x97,0xfe, +0xd4,0xfe,0x17,0x0,0x51,0x1,0x54,0x1,0x27,0x0,0xbe,0xff, +0x4,0x0,0xe0,0xff,0x85,0x0,0x7b,0x1,0xae,0x0,0x56,0xff, +0x34,0xff,0xbf,0xff,0x53,0x0,0x4e,0x0,0x7,0x0,0xa8,0x0, +0x80,0x0,0xa6,0xfe,0x9c,0xfe,0xe3,0x0,0xd0,0x1,0x28,0x1, +0x61,0x0,0x42,0xff,0xf4,0xfe,0x34,0x0,0x6,0x1,0xd4,0x0, +0x84,0x0,0xc5,0xff,0xed,0xfe,0x2f,0xff,0x26,0x0,0x9f,0x0, +0x47,0x0,0x83,0xff,0xfa,0xfe,0x23,0xff,0xda,0xff,0x93,0x0, +0xfb,0x0,0xfb,0x0,0x14,0x0,0xca,0xfe,0x1f,0xff,0xa1,0x0, +0xa7,0x0,0xe1,0xff,0x5e,0x0,0x9c,0x0,0x68,0xff,0xa2,0xfe, +0x45,0xff,0x55,0x0,0xc4,0x0,0x3f,0x0,0xb9,0xff,0xc2,0xff, +0xba,0xff,0x3a,0x0,0xae,0x1,0x1b,0x2,0xbd,0x0,0x57,0xff, +0xe7,0xfe,0x84,0xff,0xc2,0x0,0x34,0x1,0xb1,0x0,0x54,0x0, +0x5,0x0,0xba,0xff,0x5a,0x0,0xa2,0x1,0x3a,0x2,0x6d,0x1, +0xe0,0xff,0x47,0xff,0x1e,0x0,0xfd,0x0,0x6c,0x1,0xd0,0x1, +0x56,0x1,0xda,0xff,0x4c,0xff,0x73,0x0,0x82,0x1,0x3c,0x1, +0x97,0x0,0x64,0x0,0x3e,0x0,0x34,0x0,0x9a,0x0,0x32,0x1, +0xf1,0x1,0xff,0x1,0x47,0x0,0xe3,0xfe,0xfe,0xff,0x45,0x1, +0x1d,0x1,0x3a,0x1,0x2f,0x1,0xfe,0xff,0x9b,0xff,0x7f,0x0, +0x22,0x1,0x82,0x1,0x2e,0x1,0xb4,0xff,0x12,0xff,0xea,0xff, +0x8b,0x0,0xdf,0x0,0x4e,0x1,0x10,0x1,0xe,0x0,0xf0,0xfe, +0xda,0xfe,0x60,0x0,0x40,0x1,0xff,0xff,0x26,0xff,0xb6,0xff, +0xc0,0xff,0xd7,0xff,0x37,0x1,0x7,0x2,0x12,0x1,0xde,0xff, +0xc3,0xff,0x70,0x0,0xbc,0x0,0x75,0x0,0x9f,0x0,0xd5,0x0, +0xe0,0xff,0xe0,0xfe,0x63,0xff,0x8f,0x0,0x58,0x1,0x89,0x1, +0xab,0x0,0x86,0xff,0xe0,0xff,0xf7,0x0,0xe5,0x0,0x79,0x0, +0xa7,0x0,0x2a,0x0,0x3d,0xff,0x9f,0xff,0x9c,0x0,0x10,0x1, +0x87,0x1,0x61,0x1,0x15,0x0,0x6a,0xff,0xd6,0xff,0x79,0x0, +0xbb,0x1,0x5e,0x2,0xbf,0x0,0x9c,0xff,0x96,0x0,0x8e,0x0, +0x55,0xff,0xf7,0xff,0x63,0x1,0xff,0x0,0xd5,0xff,0xc3,0xff, +0xc1,0x0,0xbf,0x1,0xda,0x1,0x41,0x1,0x96,0x0,0x1e,0x0, +0x29,0x0,0xa9,0x0,0x1e,0x1,0x5d,0x1,0xf7,0x0,0xf3,0xff, +0xd6,0xff,0xcc,0x0,0x38,0x1,0x2d,0x1,0x34,0x1,0x6f,0x0, +0x73,0xff,0xa5,0xff,0x64,0x0,0xfd,0x0,0x7d,0x1,0xe5,0x0, +0x56,0xff,0xf8,0xfe,0xf9,0xff,0x82,0x0,0x87,0x0,0xf1,0x0, +0xb8,0x0,0x43,0xff,0xea,0xfe,0xbc,0x0,0xaf,0x1,0x1e,0x0, +0x86,0xfe,0x6e,0xfe,0xd8,0xfe,0x76,0xff,0xa6,0x0,0x2f,0x2, +0x5b,0x3,0x13,0x3,0x79,0x1,0x2b,0x0,0x85,0xff,0x11,0xff, +0x18,0xff,0xee,0xfe,0x14,0xfe,0x3d,0xfe,0xbf,0xff,0xd2,0x0, +0x90,0x1,0x8c,0x2,0x7c,0x2,0x18,0x1,0xa3,0xff,0xb4,0xfe, +0x96,0xfe,0x43,0xff,0xed,0xff,0x56,0x0,0xa4,0x0,0xbf,0x0, +0x1f,0x1,0x95,0x1,0xfe,0x0,0x1,0x0,0x18,0x0,0x84,0x0, +0x68,0x0,0xcd,0x0,0xf7,0x1,0x61,0x2,0x48,0x1,0xbd,0xff, +0x35,0xff,0xf5,0xff,0x22,0x1,0xdd,0x1,0xd9,0x1,0x43,0x1, +0x89,0x0,0x16,0x0,0x1d,0x0,0x4b,0x0,0x33,0x0,0x58,0x0, +0x27,0x1,0x70,0x1,0xa6,0x0,0x6e,0x0,0x30,0x1,0x15,0x1, +0xe9,0xff,0x71,0xff,0xdb,0xff,0xf9,0xff,0xe7,0xff,0x66,0x0, +0xf2,0x0,0xe0,0x0,0xa0,0x0,0x41,0x0,0xa4,0xff,0x2e,0x0, +0xc,0x2,0x72,0x2,0xcb,0x0,0xd3,0xff,0xe0,0xff,0xb2,0xff, +0x37,0x0,0x58,0x1,0x28,0x1,0x20,0x0,0xd4,0xff,0x2b,0x0, +0x22,0x1,0x44,0x2,0xdb,0x1,0x5e,0x0,0xee,0xff,0x3f,0x0, +0x3f,0x0,0x8b,0x0,0xff,0x0,0x83,0x0,0xce,0xff,0x25,0x0, +0xae,0x0,0x26,0x0,0x7a,0xff,0xe4,0xff,0x63,0x0,0xf0,0xff, +0xa2,0xff,0x3c,0x0,0xeb,0x0,0x5e,0x1,0x96,0x1,0xbb,0x0, +0x32,0xff,0xe5,0xfe,0x16,0x0,0x44,0x1,0xd9,0x1,0xfe,0x1, +0x6b,0x1,0x5e,0x0,0xb5,0xff,0x82,0xff,0x8d,0xff,0x1a,0x0, +0xcb,0x0,0x3,0x1,0x22,0x1,0x48,0x1,0xe8,0x0,0x4e,0x0, +0xe7,0xff,0x85,0xff,0xb3,0xff,0xb4,0x0,0x5d,0x1,0x54,0x1, +0x4f,0x1,0x16,0x1,0x6d,0x0,0xe4,0xff,0xbf,0xff,0x18,0x0, +0xbd,0x0,0xe2,0x0,0x8f,0x0,0x26,0x0,0x65,0xff,0xe,0xff, +0x13,0x0,0x22,0x1,0xe1,0x0,0x13,0x0,0xc8,0xff,0x3c,0x0, +0x9b,0x0,0xf,0x0,0xbd,0xff,0x80,0x0,0xcb,0x0,0x50,0x0, +0x58,0x0,0x50,0x0,0xd6,0xff,0x7,0x0,0x40,0x0,0x83,0xff, +0xf2,0xfe,0x15,0xff,0x42,0xff,0xb0,0xff,0x79,0x0,0xd0,0x0, +0x3b,0x0,0x47,0xff,0x37,0xff,0xc,0x0,0x63,0x0,0x59,0x0, +0xad,0x0,0x5c,0x0,0x75,0xff,0x94,0xff,0x42,0x0,0x4f,0x0, +0x1d,0x0,0xc5,0xff,0x54,0xff,0x98,0xff,0x2b,0x0,0x3d,0x0, +0x4c,0x0,0x6a,0x0,0x25,0x0,0x8,0x0,0x55,0x0,0x6b,0x0, +0x45,0x0,0x47,0x0,0x5e,0x0,0x5e,0x0,0x54,0x0,0x5e,0x0, +0x6a,0x0,0x62,0x0,0x46,0x0,0xee,0xff,0x87,0xff,0xd3,0xff, +0xc9,0x0,0x71,0x1,0x45,0x1,0x63,0x0,0x69,0xff,0x2d,0xff, +0x93,0xff,0x0,0x0,0x62,0x0,0x7c,0x0,0x19,0x0,0xa0,0xff, +0x3e,0xff,0x24,0xff,0x88,0xff,0x9d,0xff,0x3e,0xff,0x82,0xff, +0x0,0x0,0xeb,0xff,0xfc,0xff,0x19,0x0,0xc6,0xff,0xf6,0xff, +0x5e,0x0,0xd9,0xff,0x73,0xff,0xf2,0xff,0x45,0x0,0x2a,0x0, +0xfb,0xff,0xc5,0xff,0xcf,0xff,0xd8,0xff,0xc5,0xff,0x45,0x0, +0xc8,0x0,0x81,0x0,0x50,0x0,0x4d,0x0,0xfb,0xff,0x67,0x0, +0x4d,0x1,0x4,0x1,0x4e,0x0,0x6e,0x0,0x79,0x0,0x2a,0x0, +0x5f,0x0,0xab,0x0,0x43,0x0,0xcd,0xff,0x1e,0x0,0x93,0x0, +0x64,0x0,0x55,0x0,0xba,0x0,0x80,0x0,0xf1,0xff,0x14,0x0, +0x27,0x0,0xe9,0xff,0x60,0x0,0xf7,0x0,0xb9,0x0,0x4a,0x0, +0x30,0x0,0x4f,0x0,0x85,0x0,0xb4,0x0,0x18,0x1,0x27,0x1, +0x1a,0x0,0xa2,0xff,0xd4,0x0,0x61,0x1,0x94,0x0,0x38,0x0, +0x14,0x0,0xac,0xff,0xfd,0xff,0x8d,0x0,0x8b,0x0,0x61,0x0, +0xd5,0xff,0xfb,0xfe,0xfd,0xfe,0xcd,0xff,0x8c,0x0,0xbd,0x0, +0x3d,0x0,0xf6,0xff,0x4f,0x0,0x2e,0x0,0xf5,0xff,0xa9,0x0, +0x0,0x1,0x3f,0x0,0x9e,0xff,0x82,0xff,0xec,0xff,0xd4,0x0, +0xf6,0x0,0x1a,0x0,0xbb,0xff,0x6,0x0,0x30,0x0,0x46,0x0, +0x7c,0x0,0xa5,0x0,0x97,0x0,0x86,0x0,0xc7,0x0,0xd3,0x0, +0x7f,0x0,0xc4,0x0,0x3c,0x1,0xab,0x0,0xe0,0xff,0xd5,0xff, +0x1b,0x0,0x83,0x0,0xb6,0x0,0x8d,0x0,0xd3,0x0,0xe6,0x0, +0xeb,0xff,0x95,0xff,0x62,0x0,0xa7,0x0,0xbb,0x0,0x6,0x1, +0x85,0x0,0x4e,0x0,0x4c,0x1,0x9c,0x1,0xf7,0x0,0xd7,0x0, +0xc9,0x0,0x67,0x0,0x95,0x0,0x13,0x1,0xa,0x1,0x9e,0x0, +0x23,0x0,0xb5,0xff,0x7e,0xff,0xc5,0xff,0x81,0x0,0xd2,0x0, +0x4d,0x0,0xd5,0xff,0xf0,0xff,0x2c,0x0,0x2d,0x0,0xf2,0xff, +0xf7,0xff,0x7a,0x0,0x80,0x0,0x8e,0xff,0x5,0xff,0xf0,0xff, +0x2a,0x1,0xfe,0x0,0xe7,0xff,0xa5,0xff,0xf2,0xff,0xe4,0xff, +0x63,0x0,0x26,0x1,0xb3,0x0,0xf8,0xff,0xb4,0xff,0x40,0xff, +0xd2,0xff,0x26,0x1,0x9a,0x0,0x95,0xff,0x10,0x0,0xb1,0xff, +0xc8,0xfe,0xf0,0xff,0x16,0x1,0x72,0x0,0xcf,0xff,0x4d,0xff, +0xec,0xfe,0xc3,0xff,0x88,0x0,0x78,0x0,0x9d,0x0,0x30,0x0, +0x52,0xff,0xc2,0xff,0x86,0x0,0xaf,0x0,0x2,0x1,0x78,0x0, +0x5e,0xff,0xfa,0xff,0xe7,0x0,0x74,0x0,0x93,0x0,0x33,0x1, +0x76,0x0,0x86,0xff,0xb5,0xff,0x54,0x0,0xb2,0x0,0x31,0x0, +0x50,0xff,0x9a,0xff,0x40,0x0,0xc7,0xff,0x6f,0xff,0x15,0x0, +0x57,0x0,0xd2,0xff,0x92,0xff,0xe2,0xff,0x45,0x0,0x91,0x0, +0xeb,0x0,0xe4,0x0,0xf6,0xff,0xfd,0xfe,0x1d,0xff,0xcd,0xff, +0x28,0x0,0x77,0x0,0xd1,0x0,0x6c,0x0,0x8f,0xff,0xc0,0xff, +0xd1,0x0,0x13,0x1,0xb4,0x0,0x82,0x0,0xd1,0xff,0x48,0xff, +0x37,0x0,0xe0,0x0,0x1d,0x0,0xf6,0xff,0x91,0x0,0x1d,0x0, +0x45,0xff,0x6d,0xff,0x49,0x0,0x6,0x1,0xce,0x0,0xc4,0xff, +0x62,0xff,0xcc,0xff,0xe4,0xff,0xe9,0xff,0x92,0x0,0x26,0x1, +0x7e,0x0,0x50,0xff,0x90,0xff,0xc3,0x0,0xd7,0x0,0x81,0x0, +0xbd,0x0,0x18,0x0,0x30,0xff,0xe,0x0,0x3c,0x1,0xf1,0x0, +0x7,0x0,0x5d,0xff,0x8c,0xff,0x76,0x0,0xb4,0x0,0xb4,0x0, +0x41,0x1,0xc2,0x0,0x8e,0xff,0x83,0xff,0x6b,0xff,0x4,0xff, +0x7,0x0,0xb7,0x0,0x8f,0xff,0x18,0xff,0xfd,0xff,0x24,0x0, +0x82,0xff,0xa0,0xff,0x82,0x0,0xe8,0xff,0x7e,0xfd,0xc4,0xfd, +0x8d,0x1,0xad,0x2,0x87,0x0,0x21,0x0,0x34,0x0,0xc8,0xfe, +0x77,0xff,0x5e,0x1,0x6d,0x0,0x46,0xff,0x5d,0x0,0x83,0x0, +0x41,0xff,0x6d,0xff,0x9f,0x0,0xd9,0x0,0x2c,0x0,0xbc,0xff, +0xfe,0xff,0x55,0x0,0x79,0x0,0xb2,0x0,0x4d,0x0,0x47,0xff, +0x74,0xff,0x86,0x0,0x56,0x0,0xe4,0xff,0xe5,0x0,0x6f,0x1, +0x35,0x0,0x26,0xff,0x1,0xff,0x1d,0xff,0xdc,0xff,0x8a,0x0, +0xd7,0xff,0x34,0xff,0xc1,0xff,0xd3,0xff,0x5c,0xff,0xc5,0xff, +0x12,0x0,0x60,0xff,0xdd,0xfe,0xf5,0xfe,0x49,0xff,0xc3,0xff, +0x12,0x0,0x45,0x0,0x28,0x0,0x44,0xff,0x28,0xff,0x4e,0x0, +0xf6,0xff,0xab,0xfe,0x75,0xff,0x3c,0x0,0xb9,0xfe,0x19,0xfe, +0x8e,0xff,0x58,0x0,0xe,0x0,0xd0,0xff,0x77,0xff,0x29,0xff, +0x8b,0xff,0x8f,0x0,0xec,0x0,0xc5,0xff,0x35,0xff,0x40,0x0, +0xd5,0xff,0x4e,0xfe,0x9c,0xff,0x89,0x1,0x37,0x0,0xee,0xfe, +0x26,0x0,0x9d,0x0,0xeb,0xff,0xca,0x0,0xfd,0x1,0xec,0x0, +0x41,0xff,0x94,0xff,0x88,0x0,0x27,0x0,0x1b,0x0,0x30,0x1, +0xd2,0x0,0x68,0xff,0x0,0x0,0x41,0x1,0xce,0x0,0x7e,0x0, +0x22,0x1,0xa0,0x0,0x6a,0xff,0xa6,0xff,0xb2,0x0,0xb9,0x0, +0x26,0x0,0x4c,0x0,0x66,0x0,0x64,0xff,0x3,0xff,0x6f,0x0, +0x48,0x1,0x70,0x0,0xe4,0xff,0xfb,0xff,0xb5,0xff,0xea,0xff, +0xd5,0x0,0xbd,0x0,0x96,0xff,0x3c,0xff,0xdd,0xff,0x27,0x0, +0x30,0x0,0x98,0x0,0x7a,0x0,0x94,0xff,0x8d,0xff,0x62,0x0, +0x59,0x0,0xd3,0xff,0xe8,0xff,0xba,0xff,0x43,0xff,0xcb,0xff, +0x69,0x0,0xc8,0xff,0x7a,0xff,0x8e,0x0,0xd9,0x0,0x9b,0xff, +0x58,0xff,0x63,0x0,0x6a,0x0,0x9,0x0,0xee,0x0,0x36,0x1, +0xcc,0xff,0x59,0xff,0x5a,0x0,0x79,0x0,0x12,0x0,0x91,0x0, +0x8c,0x0,0x3b,0xff,0x7,0xff,0xb2,0x0,0x50,0x1,0x25,0x0, +0x31,0x0,0x75,0x1,0xec,0x0,0xcb,0xff,0xbf,0x0,0x64,0x1, +0xf1,0xff,0x8b,0xff,0xf7,0x0,0xff,0x0,0xb6,0xff,0xfc,0xff, +0x4c,0x1,0x2c,0x1,0x57,0x0,0xb5,0x0,0xe8,0x0,0xcd,0xff, +0xe0,0xff,0x59,0x1,0xfa,0x0,0x85,0xff,0xe4,0xff,0x7c,0x0, +0xcc,0xff,0xf4,0xff,0xe3,0x0,0x6c,0x0,0x5b,0xff,0x81,0xff, +0x40,0x0,0x48,0x0,0xd4,0xff,0xec,0xff,0x38,0x0,0xd6,0xff, +0xc0,0xff,0x90,0x0,0xb4,0x0,0x17,0x0,0x1a,0x0,0x2e,0x0, +0xe1,0xff,0x15,0x0,0x4d,0x0,0x13,0x0,0x5a,0x0,0xa8,0x0, +0x7,0x0,0x76,0xff,0xa9,0xff,0x3,0x0,0x61,0x0,0xa4,0x0, +0x67,0x0,0x7,0x0,0xe,0x0,0x8c,0x0,0xfa,0x0,0x73,0x0, +0x6a,0xff,0x62,0xff,0xfb,0xff,0xd8,0xff,0xb2,0xff,0x51,0x0, +0x6d,0x0,0x9e,0xff,0x78,0xff,0x31,0x0,0x83,0x0,0x8b,0x0, +0xe9,0x0,0xcd,0x0,0x2,0x0,0xf6,0xff,0xba,0x0,0xa4,0x0, +0xe0,0xff,0x28,0x0,0xf3,0x0,0x7b,0x0,0xb0,0xff,0x3d,0x0, +0xa1,0x0,0xb5,0xff,0xbb,0xff,0x21,0x1,0x5,0x1,0x9a,0xff, +0x9f,0xff,0x73,0x0,0x43,0x0,0xf9,0xff,0x62,0x0,0x89,0x0, +0x2f,0x0,0x1f,0x0,0x79,0x0,0x74,0x0,0xda,0xff,0xaf,0xff, +0x24,0x0,0x2b,0x0,0x4,0x0,0x6d,0x0,0x75,0x0,0xe0,0xff, +0x9,0x0,0xab,0x0,0x73,0x0,0xcd,0xff,0xaa,0xff,0xc9,0xff, +0xb6,0xff,0xd0,0xff,0x7a,0x0,0xe6,0x0,0x7c,0x0,0x5b,0x0, +0xd5,0x0,0x91,0x0,0xcd,0xff,0xca,0xff,0x14,0x0,0x44,0x0, +0xa0,0x0,0x6e,0x0,0xc5,0xff,0xe3,0xff,0x47,0x0,0x3,0x0, +0xed,0xff,0x44,0x0,0xa,0x0,0x71,0xff,0x89,0xff,0x3c,0x0, +0x6d,0x0,0xf7,0xff,0xf9,0xff,0x5c,0x0,0xec,0xff,0x61,0xff, +0xce,0xff,0xfe,0xff,0x8e,0xff,0xdf,0xff,0x56,0x0,0xa9,0xff, +0x19,0xff,0xa8,0xff,0x21,0x0,0xed,0xff,0xe0,0xff,0x29,0x0, +0x27,0x0,0xf4,0xff,0x41,0x0,0x92,0x0,0xfa,0xff,0x6f,0xff, +0x16,0x0,0x91,0x0,0xf2,0xff,0xd6,0xff,0x82,0x0,0x37,0x0, +0x6b,0xff,0xe9,0xff,0xd2,0x0,0x9d,0x0,0x35,0x0,0x84,0x0, +0xaa,0x0,0x5b,0x0,0x4a,0x0,0x5e,0x0,0x43,0x0,0x43,0x0, +0x5c,0x0,0x4a,0x0,0x38,0x0,0x4b,0x0,0x70,0x0,0x9a,0x0, +0xb7,0x0,0xc6,0x0,0xcc,0x0,0xac,0x0,0x90,0x0,0xa9,0x0, +0xad,0x0,0x71,0x0,0x3f,0x0,0x43,0x0,0x7c,0x0,0xbe,0x0, +0xc0,0x0,0xb0,0x0,0xb5,0x0,0x84,0x0,0x5c,0x0,0x9b,0x0, +0xbb,0x0,0x90,0x0,0x92,0x0,0xa2,0x0,0x89,0x0,0x70,0x0, +0x4e,0x0,0x52,0x0,0x98,0x0,0x8b,0x0,0x45,0x0,0x7e,0x0, +0xb6,0x0,0x4b,0x0,0x1,0x0,0x44,0x0,0x61,0x0,0xb,0x0, +0xd5,0xff,0x28,0x0,0x8c,0x0,0x86,0x0,0x76,0x0,0x64,0x0, +0xf4,0xff,0xe0,0xff,0x71,0x0,0x7c,0x0,0x2e,0x0,0x8b,0x0, +0xb6,0x0,0x38,0x0,0x41,0x0,0xa2,0x0,0x82,0x0,0x7f,0x0, +0xd9,0x0,0xeb,0x0,0xbe,0x0,0x7a,0x0,0x2c,0x0,0x2a,0x0, +0x51,0x0,0x58,0x0,0x67,0x0,0x56,0x0,0x1e,0x0,0x49,0x0, +0xae,0x0,0xcf,0x0,0xdb,0x0,0xc7,0x0,0x84,0x0,0x8d,0x0, +0xb3,0x0,0x7a,0x0,0x67,0x0,0x93,0x0,0x72,0x0,0x75,0x0, +0xe5,0x0,0xe5,0x0,0x64,0x0,0x24,0x0,0x16,0x0,0xc,0x0, +0x4d,0x0,0x8f,0x0,0x7e,0x0,0x90,0x0,0xd0,0x0,0xba,0x0, +0x6d,0x0,0x41,0x0,0x33,0x0,0x63,0x0,0x9d,0x0,0x62,0x0, +0x1d,0x0,0x50,0x0,0x72,0x0,0x5a,0x0,0x5f,0x0,0x1b,0x0, +0x98,0xff,0xad,0xff,0xd,0x0,0xe,0x0,0x2d,0x0,0x93,0x0, +0xa5,0x0,0x54,0x0,0xe,0x0,0x23,0x0,0x6f,0x0,0x6b,0x0, +0x3f,0x0,0x4e,0x0,0x19,0x0,0xcc,0xff,0x28,0x0,0x43,0x0, +0xa3,0xff,0xbf,0xff,0x58,0x0,0x17,0x0,0xfd,0xff,0x95,0x0, +0x77,0x0,0xfe,0xff,0x4d,0x0,0x6f,0x0,0xdd,0xff,0xa6,0xff, +0xea,0xff,0x6,0x0,0xfb,0xff,0xfd,0xff,0x9,0x0,0x4,0x0, +0x4,0x0,0x47,0x0,0x76,0x0,0x21,0x0,0xec,0xff,0x44,0x0, +0x77,0x0,0x5a,0x0,0x6f,0x0,0x87,0x0,0x64,0x0,0x61,0x0, +0x98,0x0,0xa5,0x0,0x67,0x0,0x39,0x0,0x51,0x0,0x61,0x0, +0x28,0x0,0xef,0xff,0xed,0xff,0xf3,0xff,0x9,0x0,0x4d,0x0, +0x68,0x0,0x1d,0x0,0xf2,0xff,0x38,0x0,0x4f,0x0,0x1a,0x0, +0x4c,0x0,0x95,0x0,0x4c,0x0,0x1c,0x0,0x62,0x0,0x67,0x0, +0x62,0x0,0xb1,0x0,0x9d,0x0,0x4b,0x0,0x6b,0x0,0x6c,0x0, +0x1b,0x0,0x34,0x0,0x6c,0x0,0x35,0x0,0x7,0x0,0x2b,0x0, +0x5c,0x0,0x70,0x0,0x5a,0x0,0x4b,0x0,0x6a,0x0,0x7c,0x0, +0x8d,0x0,0x9e,0x0,0x50,0x0,0x4,0x0,0x28,0x0,0x20,0x0, +0xe4,0xff,0x28,0x0,0x85,0x0,0x74,0x0,0x66,0x0,0x89,0x0, +0x9c,0x0,0x90,0x0,0x6a,0x0,0x73,0x0,0xa9,0x0,0x64,0x0, +0xe7,0xff,0x26,0x0,0xa3,0x0,0x96,0x0,0x9c,0x0,0xe2,0x0, +0xa0,0x0,0x27,0x0,0x5d,0x0,0xbf,0x0,0x93,0x0,0x76,0x0, +0xbd,0x0,0x87,0x0,0xf0,0xff,0x14,0x0,0x80,0x0,0x21,0x0, +0xba,0xff,0x2c,0x0,0xa2,0x0,0x7d,0x0,0x58,0x0,0x6d,0x0, +0x3e,0x0,0xe1,0xff,0xd,0x0,0x7a,0x0,0x2b,0x0,0x99,0xff, +0xe7,0xff,0x71,0x0,0x4f,0x0,0x1f,0x0,0x32,0x0,0xa,0x0, +0xd1,0xff,0xe6,0xff,0x18,0x0,0x20,0x0,0x1,0x0,0x27,0x0, +0x84,0x0,0x43,0x0,0xba,0xff,0xf0,0xff,0x37,0x0,0xef,0xff, +0x10,0x0,0x65,0x0,0xb,0x0,0xe4,0xff,0x5c,0x0,0x60,0x0, +0xfe,0xff,0xf0,0xff,0xde,0xff,0xa2,0xff,0xb4,0xff,0x1,0x0, +0x2f,0x0,0x3a,0x0,0x53,0x0,0x73,0x0,0x60,0x0,0x3f,0x0, +0x4b,0x0,0x2f,0x0,0xf5,0xff,0xf,0x0,0x1a,0x0,0xe3,0xff, +0x26,0x0,0x7d,0x0,0xf7,0xff,0x92,0xff,0x47,0x0,0xd4,0x0, +0x64,0x0,0x29,0x0,0x9a,0x0,0x99,0x0,0xa,0x0,0x10,0x0, +0x83,0x0,0x60,0x0,0xf5,0xff,0xf1,0xff,0xf3,0xff,0xdd,0xff, +0x1f,0x0,0x74,0x0,0x5a,0x0,0x2f,0x0,0x82,0x0,0xc8,0x0, +0x30,0x0,0xa2,0xff,0x42,0x0,0xad,0x0,0xd3,0xff,0x90,0xff, +0x64,0x0,0x40,0x0,0x71,0xff,0xd4,0xff,0x89,0x0,0x30,0x0, +0xbb,0xff,0xf1,0xff,0x18,0x0,0xe1,0xff,0xec,0xff,0x39,0x0, +0xf8,0xff,0x87,0xff,0xf4,0xff,0x52,0x0,0x94,0xff,0x2d,0xff, +0xd5,0xff,0x1f,0x0,0x2,0x0,0x40,0x0,0x26,0x0,0xc4,0xff, +0x1c,0x0,0x8e,0x0,0x43,0x0,0xe7,0xff,0xf5,0xff,0xf,0x0, +0xfe,0xff,0xdd,0xff,0xe5,0xff,0x18,0x0,0x1d,0x0,0xe2,0xff, +0xc9,0xff,0x18,0x0,0x92,0x0,0x9a,0x0,0x11,0x0,0xc3,0xff, +0x8,0x0,0x3d,0x0,0x31,0x0,0x5a,0x0,0xab,0x0,0xa2,0x0, +0x56,0x0,0x45,0x0,0x37,0x0,0xcd,0xff,0xae,0xff,0x2b,0x0, +0x48,0x0,0xf5,0xff,0x40,0x0,0xc4,0x0,0x7a,0x0,0x2,0x0, +0x45,0x0,0x9a,0x0,0x31,0x0,0xb9,0xff,0x10,0x0,0x7d,0x0, +0x3a,0x0,0x10,0x0,0x3d,0x0,0x1f,0x0,0x66,0x0,0x20,0x1, +0x6f,0x0,0xdf,0xfe,0xed,0xfe,0xe0,0xff,0xc8,0xff,0x88,0xff, +0x18,0x0,0x7b,0x0,0x21,0x0,0xb3,0xff,0xd0,0xff,0x32,0x0, +0x28,0x0,0xea,0xff,0xe,0x0,0x3c,0x0,0x2b,0x0,0x33,0x0, +0x3f,0x0,0x41,0x0,0x73,0x0,0x80,0x0,0x3f,0x0,0x22,0x0, +0x2d,0x0,0x38,0x0,0x61,0x0,0x6c,0x0,0x3e,0x0,0x35,0x0, +0x41,0x0,0x37,0x0,0x4c,0x0,0x5b,0x0,0x30,0x0,0x32,0x0, +0x7b,0x0,0x83,0x0,0x26,0x0,0xed,0xff,0x15,0x0,0x2c,0x0, +0xef,0xff,0xcc,0xff,0x18,0x0,0x78,0x0,0x5f,0x0,0xed,0xff, +0xe2,0xff,0x40,0x0,0x28,0x0,0xd4,0xff,0x18,0x0,0x52,0x0, +0x4,0x0,0x17,0x0,0x79,0x0,0x49,0x0,0xa,0x0,0x4a,0x0, +0x68,0x0,0x34,0x0,0xf,0x0,0x1,0x0,0xf2,0xff,0xe2,0xff, +0xeb,0xff,0xa,0x0,0xe2,0xff,0xac,0xff,0xf2,0xff,0x33,0x0, +0x16,0x0,0x28,0x0,0x1f,0x0,0x9b,0xff,0x71,0xff,0xc1,0xff, +0xde,0xff,0xfe,0xff,0x28,0x0,0xf9,0xff,0xdf,0xff,0xf8,0xff, +0xe5,0xff,0x12,0x0,0x73,0x0,0x1e,0x0,0x83,0xff,0xb6,0xff, +0x40,0x0,0x4d,0x0,0x27,0x0,0x4d,0x0,0x7a,0x0,0x34,0x0, +0xd1,0xff,0xf3,0xff,0x5c,0x0,0x78,0x0,0x59,0x0,0x29,0x0, +0xe1,0xff,0xb4,0xff,0xd5,0xff,0x1e,0x0,0x3d,0x0,0x7,0x0, +0xb3,0xff,0x81,0xff,0x82,0xff,0xc6,0xff,0x6,0x0,0xd5,0xff, +0x88,0xff,0xa7,0xff,0xf2,0xff,0xa,0x0,0x11,0x0,0x2a,0x0, +0x18,0x0,0xa9,0xff,0x6e,0xff,0xee,0xff,0x55,0x0,0x18,0x0, +0x1a,0x0,0x54,0x0,0xe6,0xff,0x8c,0xff,0xf8,0xff,0x5a,0x0, +0x63,0x0,0x37,0x0,0xab,0xff,0x74,0xff,0x2,0x0,0x3d,0x0, +0xde,0xff,0xc3,0xff,0xd2,0xff,0xa5,0xff,0x8b,0xff,0xba,0xff, +0x21,0x0,0x80,0x0,0x74,0x0,0x13,0x0,0xae,0xff,0x8b,0xff, +0xfd,0xff,0x86,0x0,0x6e,0x0,0x42,0x0,0x68,0x0,0x31,0x0, +0xdc,0xff,0x2b,0x0,0xa2,0x0,0xbf,0x0,0xc0,0x0,0x86,0x0, +0x15,0x0,0x1b,0x0,0xa0,0x0,0xd5,0x0,0x62,0x0,0xe4,0xff, +0x6,0x0,0x87,0x0,0xa6,0x0,0x65,0x0,0x5c,0x0,0x86,0x0, +0x56,0x0,0xde,0xff,0xd3,0xff,0x37,0x0,0x76,0x0,0x96,0x0, +0xad,0x0,0x5b,0x0,0xf9,0xff,0x1e,0x0,0x63,0x0,0x88,0x0, +0xb8,0x0,0x7a,0x0,0xc2,0xff,0x7f,0xff,0xe9,0xff,0x7a,0x0, +0xca,0x0,0x85,0x0,0xe0,0xff,0x90,0xff,0xbd,0xff,0x1b,0x0, +0x58,0x0,0x34,0x0,0x5,0x0,0xfb,0xff,0xbf,0xff,0xaf,0xff, +0x26,0x0,0x67,0x0,0x50,0x0,0x33,0x0,0x96,0xff,0x4,0xff, +0xac,0xff,0x83,0x0,0x5e,0x0,0x33,0x0,0x58,0x0,0xff,0xff, +0x9b,0xff,0xf5,0xff,0x9e,0x0,0xe5,0x0,0xa6,0x0,0x34,0x0, +0xf9,0xff,0xf,0x0,0x7a,0x0,0xf5,0x0,0xcf,0x0,0xe,0x0, +0x9e,0xff,0xd8,0xff,0x65,0x0,0xe8,0x0,0xfc,0x0,0x72,0x0, +0xb5,0xff,0x65,0xff,0xbb,0xff,0x4b,0x0,0x92,0x0,0x8e,0x0, +0x5c,0x0,0xf7,0xff,0xb8,0xff,0xf6,0xff,0x6a,0x0,0xa7,0x0, +0x95,0x0,0x54,0x0,0xf5,0xff,0xa7,0xff,0xef,0xff,0xce,0x0, +0x47,0x1,0xef,0x0,0x55,0x0,0xc2,0xff,0x93,0xff,0x26,0x0, +0xad,0x0,0x87,0x0,0x32,0x0,0xb0,0xff,0x2e,0xff,0xa8,0xff, +0x81,0x0,0x53,0x0,0xcc,0xff,0xd0,0xff,0xc3,0xff,0x8f,0xff, +0xbc,0xff,0x10,0x0,0x2e,0x0,0x11,0x0,0xcc,0xff,0x79,0xff, +0x2d,0xff,0x51,0xff,0xfc,0xff,0x21,0x0,0x6e,0xff,0x17,0xff, +0x4c,0xff,0x60,0xff,0xbe,0xff,0x6c,0x0,0x6b,0x0,0xd8,0xff, +0x83,0xff,0x7f,0xff,0xd0,0xff,0x75,0x0,0xea,0x0,0xce,0x0, +0x2e,0x0,0x90,0xff,0xaa,0xff,0x45,0x0,0x81,0x0,0x63,0x0, +0x61,0x0,0x30,0x0,0xa4,0xff,0x89,0xff,0x3f,0x0,0xca,0x0, +0x86,0x0,0x17,0x0,0xe3,0xff,0xb4,0xff,0xce,0xff,0x48,0x0, +0x93,0x0,0x8b,0x0,0x4d,0x0,0xc3,0xff,0x6e,0xff,0xd1,0xff, +0x62,0x0,0x80,0x0,0x1a,0x0,0x7f,0xff,0x4b,0xff,0xa7,0xff, +0x24,0x0,0x83,0x0,0x7a,0x0,0xd3,0xff,0x37,0xff,0x42,0xff, +0xc0,0xff,0x5c,0x0,0x83,0x0,0xf5,0xff,0x6f,0xff,0x1b,0xff, +0xa9,0xfe,0x1,0xff,0x36,0x0,0x98,0x0,0xd,0x0,0xe1,0xff, +0xa,0x0,0x32,0x0,0x89,0x0,0xab,0x0,0x70,0x0,0x32,0x0, +0xd8,0xff,0x8e,0xff,0xe4,0xff,0x87,0x0,0xc8,0x0,0x89,0x0, +0xeb,0xff,0x5b,0xff,0x64,0xff,0xf,0x0,0xda,0x0,0x14,0x1, +0x8d,0x0,0xe4,0xff,0x9f,0xff,0xc7,0xff,0x5f,0x0,0xf9,0x0, +0xfc,0x0,0xc1,0x0,0xbe,0x0,0x87,0x0,0x8,0x0,0xf4,0xff, +0x4b,0x0,0x61,0x0,0x5b,0x0,0xcc,0x0,0x30,0x1,0xca,0x0, +0x33,0x0,0x8,0x0,0xbf,0xff,0x5f,0xff,0xbd,0xff,0xbe,0x0, +0x91,0x1,0xc8,0x1,0x5d,0x1,0xa3,0x0,0xda,0xff,0x39,0xff, +0x81,0xff,0x98,0x0,0x16,0x1,0xd7,0x0,0xb7,0x0,0x5f,0x0, +0xd7,0xff,0x2,0x0,0x4b,0x0,0xf0,0xff,0xd1,0xff,0x28,0x0, +0x28,0x0,0x4,0x0,0x51,0x0,0x9c,0x0,0x4e,0x0,0xdc,0xff, +0x22,0x0,0xa0,0x0,0x69,0x0,0x6c,0x0,0x6b,0x1,0xd0,0x1, +0xf5,0x0,0x48,0x0,0x25,0x0,0x1f,0x0,0x77,0x0,0xb1,0x0, +0x43,0x0,0x7,0x0,0x49,0x0,0x4b,0x0,0x40,0x0,0xaf,0x0, +0xf6,0x0,0x8f,0x0,0x25,0x0,0x50,0x0,0xa7,0x0,0xb6,0x0, +0xb7,0x0,0xb3,0x0,0x33,0x0,0x69,0xff,0x2c,0xff,0xa7,0xff, +0x43,0x0,0x9e,0x0,0xc9,0x0,0xca,0x0,0xa0,0x0,0xad,0x0, +0xfe,0x0,0xed,0x0,0x91,0x0,0x7c,0x0,0x2f,0x0,0x94,0xff, +0xf6,0xff,0x3f,0x1,0xd7,0x1,0x72,0x1,0xc5,0x0,0xfa,0xff, +0x6e,0xff,0xdb,0xff,0x10,0x1,0xd3,0x1,0x76,0x1,0xc9,0x0, +0x7e,0x0,0x2a,0x0,0x15,0x0,0xd7,0x0,0x4d,0x1,0xb1,0x0, +0x48,0x0,0x70,0x0,0x54,0x0,0x4d,0x0,0x6f,0x0,0xb0,0xff, +0x86,0xfe,0x85,0xfe,0xa4,0xff,0xe8,0x0,0x21,0x2,0x12,0x3, +0xae,0x2,0x9f,0x0,0x6f,0xfe,0xd1,0xfd,0x8a,0xfe,0x4b,0xff, +0x7d,0xff,0x53,0xff,0x3c,0xff,0xbf,0xff,0xa,0x1,0x78,0x2, +0xd8,0x2,0xc6,0x1,0x5e,0x0,0x85,0xff,0xd4,0xfe,0x64,0xfe, +0x3f,0xff,0x8,0x1,0xd7,0x1,0xd9,0x0,0x5a,0xff,0x1a,0xff, +0x2a,0x0,0xd5,0x0,0x41,0x0,0xb7,0xff,0xf,0x0,0x45,0x0, +0xee,0xff,0x5,0x0,0xa1,0x0,0xd6,0x0,0x79,0x0,0x18,0x0, +0x35,0x0,0xf8,0x0,0x8e,0x1,0x1a,0x1,0x68,0x0,0x60,0x0, +0x4c,0x0,0xfe,0xff,0x76,0x0,0x46,0x1,0x3a,0x1,0xdb,0x0, +0xe2,0x0,0x9c,0x0,0xe,0x0,0x5d,0x0,0x6b,0x1,0xc3,0x1, +0xcc,0x0,0xb4,0xff,0x11,0x0,0x61,0x1,0x58,0x1,0xed,0xff, +0x9c,0xff,0x85,0x0,0x6d,0x0,0xc3,0xff,0x7e,0x0,0xa1,0x1, +0x66,0x1,0x91,0x0,0x20,0x0,0xe2,0xff,0x15,0x0,0xca,0x0, +0x40,0x1,0x46,0x1,0xdc,0x0,0xca,0xff,0xe,0xff,0xaf,0xff, +0xa9,0x0,0xd8,0x0,0x81,0x0,0xf3,0xff,0x7d,0xff,0xc4,0xff, +0x7e,0x0,0xe7,0x0,0x24,0x1,0x25,0x1,0x3d,0x0,0x2e,0xff, +0x7b,0xff,0x68,0x0,0x61,0x0,0x3a,0x0,0xc1,0x0,0x82,0x0, +0xae,0xff,0x6b,0x0,0xbe,0x1,0x65,0x1,0x60,0x0,0xf5,0xff, +0x99,0xff,0xa7,0xff,0x5f,0x0,0xa4,0x0,0x52,0x0,0xaa,0xff, +0x9c,0xfe,0x93,0xfe,0x36,0x0,0x87,0x1,0x95,0x1,0x4,0x1, +0xdb,0xff,0x1,0xff,0x95,0xff,0x7d,0x0,0xdf,0x0,0x6c,0x1, +0xa5,0x1,0x8a,0x0,0x1a,0xff,0x23,0xff,0x90,0x0,0x62,0x1, +0xee,0x0,0xa5,0x0,0x87,0x0,0xcd,0xff,0x6,0x0,0x8d,0x1, +0xfa,0x1,0x2f,0x1,0xa3,0x0,0x20,0x0,0xb,0x0,0xb2,0x0, +0x9d,0x0,0x4c,0x0,0x1c,0x1,0x3c,0x1,0xf7,0xff,0xa3,0xff, +0x7c,0x0,0xf5,0x0,0xf0,0x0,0xa1,0x0,0x42,0x0,0x2e,0x0, +0x1e,0x0,0x80,0x0,0x9d,0x1,0xba,0x1,0x6b,0x0,0xba,0xff, +0x1b,0x0,0x77,0x0,0x85,0x0,0x7a,0x0,0x8f,0x0,0x55,0x0, +0x55,0xff,0x4f,0xff,0xb,0x1,0xc1,0x1,0xb7,0x0,0x18,0x0, +0xd5,0xff,0x94,0xff,0x49,0x0,0xb0,0x0,0xc,0x0,0x1e,0x0, +0x3c,0x0,0x36,0xff,0x1e,0xff,0x2a,0x0,0x23,0x0,0xb6,0xff, +0x1f,0x0,0x29,0x0,0x55,0xff,0xc4,0xfe,0x64,0xff,0xe5,0x0, +0x66,0x1,0x46,0x0,0x70,0xff,0x5f,0xff,0xfe,0xfe,0xff,0xfe, +0x6,0x0,0xe3,0x0,0xb0,0x0,0x95,0xff,0xce,0xfe,0x92,0xff, +0xa1,0x0,0xa6,0x0,0x82,0x0,0x17,0x0,0x1d,0xff,0x61,0xff, +0x93,0x0,0xd5,0x0,0xe5,0x0,0xad,0x0,0x4d,0xff,0x11,0xff, +0x52,0x0,0x2a,0x0,0x8f,0xff,0x59,0x0,0x98,0x0,0xbe,0xff, +0x51,0xff,0x91,0xff,0x73,0x0,0x7,0x1,0x52,0x0,0xe8,0xff, +0x2a,0x0,0xd7,0xff,0x34,0x0,0x5b,0x1,0x15,0x1,0xf,0x0, +0x70,0xff,0xbf,0xfe,0xed,0xfe,0xf1,0xff,0x71,0x0,0xe8,0x0, +0xc5,0x0,0x5c,0xff,0xfc,0xfe,0xad,0xff,0xcc,0xff,0x96,0x0, +0x34,0x1,0xbd,0xff,0xfa,0xfe,0xb,0x0,0x66,0x0,0x61,0x0, +0xad,0x0,0x31,0x0,0x95,0xff,0x49,0xff,0x1e,0xff,0x13,0x0, +0x2e,0x1,0x3,0x1,0x9b,0x0,0x22,0x0,0x90,0xff,0xfc,0xff, +0x98,0x0,0xd4,0x0,0x14,0x1,0x1b,0x0,0x1e,0xff,0x7f,0x0, +0xb3,0x1,0x3f,0x1,0x3a,0x1,0xb8,0x0,0x71,0xff,0xca,0xff, +0x84,0x0,0x6f,0x0,0x2c,0x1,0x6c,0x1,0x44,0x0,0xf8,0xff, +0x43,0x0,0x2f,0x0,0xe9,0x0,0xc7,0x1,0x96,0x1,0xdc,0x0, +0xf2,0xff,0xa3,0xff,0x62,0x0,0x27,0x1,0xaf,0x1,0x7a,0x1, +0x1f,0x0,0xd4,0xff,0xa7,0x0,0x86,0x0,0x3c,0x1,0xb8,0x2, +0x3e,0x1,0xe9,0xfe,0x35,0xff,0xe4,0xff,0x60,0x0,0xb0,0x1, +0x8a,0x1,0x2a,0x0,0xcb,0xff,0x95,0xff,0xd1,0xff,0x38,0x1, +0x39,0x1,0xab,0xff,0x6d,0xff,0x2f,0x0,0x4d,0x0,0x3c,0x0, +0xc2,0x0,0x5b,0x1,0xce,0x0,0xb5,0xff,0xeb,0xff,0x9d,0x0, +0xbd,0x0,0x57,0x1,0x6e,0x1,0x1d,0x0,0xb4,0xff,0x13,0x0, +0xb0,0xff,0x43,0x0,0x54,0x1,0x7f,0x0,0xcf,0xff,0x99,0x0, +0xc4,0x0,0xd5,0x0,0x7c,0x1,0x5,0x1,0x28,0x0,0x4,0x0, +0x5d,0xff,0x20,0xff,0xb7,0x0,0xca,0x1,0xdc,0x0,0xf3,0xff, +0x21,0x0,0x36,0x0,0xda,0xff,0x69,0x0,0xc3,0x1,0xb4,0x1, +0x63,0x0,0xfa,0xff,0x39,0x0,0x64,0x0,0x2a,0x1,0xc0,0x1, +0x62,0x1,0xb6,0x0,0x80,0xff,0xd9,0xfe,0xc7,0x0,0xc4,0x2, +0x0,0x2,0xc1,0x0,0x6e,0x0,0xef,0xff,0x1c,0x0,0x33,0x1, +0x79,0x1,0xa,0x1,0xb8,0x0,0x22,0x0,0xb8,0xff,0x48,0x0, +0x27,0x1,0x12,0x1,0x11,0x0,0x97,0xff,0xdb,0xff,0xba,0xff, +0xe5,0xff,0xf5,0x0,0xc,0x1,0xb,0x0,0x9f,0xff,0x75,0xff, +0x88,0xff,0x91,0x0,0x29,0x1,0xab,0x0,0x2e,0x0,0x4f,0xff, +0x77,0xfe,0x82,0xff,0x38,0x1,0x5b,0x1,0x93,0x0,0xcc,0xff, +0xe8,0xfe,0xb8,0xfe,0x22,0x0,0xd9,0x1,0x96,0x1,0xf6,0xff, +0x76,0xff,0xb2,0xff,0xab,0xff,0x98,0x0,0x69,0x1,0x4e,0x0, +0x99,0xff,0x28,0x0,0xd5,0xff,0xdf,0xff,0x57,0x1,0xb8,0x1, +0xf0,0x0,0x53,0x0,0x4f,0xff,0x3f,0xff,0x2,0x1,0x8b,0x1, +0x6c,0x0,0x79,0x0,0x9,0x1,0x41,0x0,0xa7,0xff,0xae,0x0, +0x9f,0x1,0xf8,0x0,0x1a,0x0,0xe9,0xff,0x5c,0xff,0x59,0xff, +0xbb,0x0,0xf7,0x0,0xd4,0xff,0xbc,0xff,0x98,0xff,0x16,0xff, +0x4c,0x0,0x1b,0x1,0xd3,0xff,0x85,0xff,0xe7,0xff,0xe6,0xfe, +0xe5,0xfe,0x48,0x0,0x63,0x0,0x7,0x0,0x6,0x0,0xea,0xfe, +0xfa,0xfd,0xf6,0xfe,0x43,0x0,0x7e,0x0,0x61,0x0,0x26,0x0, +0x2f,0xff,0x85,0xfe,0xe7,0xff,0x7b,0x1,0xa1,0x0,0x96,0xff, +0x3a,0x0,0x20,0x0,0x44,0xff,0xb6,0xff,0x73,0x0,0xc9,0x0, +0xe7,0x0,0x9c,0xff,0xa4,0xfe,0x47,0x0,0x49,0x1,0xe9,0xff, +0xb5,0xff,0xd6,0x0,0x78,0x0,0xe1,0xff,0xae,0x0,0xfb,0x0, +0x7d,0x0,0xe9,0x0,0x28,0x1,0xfc,0xff,0x8a,0xff,0x6a,0x0, +0xb3,0x0,0x22,0x1,0xe1,0x1,0x60,0x0,0x91,0xfe,0xf5,0xff, +0x93,0x1,0xf6,0x0,0x82,0x0,0x97,0x0,0x74,0x0,0xd6,0x0, +0xe3,0x0,0xc0,0x0,0xa2,0x1,0x28,0x1,0xd9,0xfe,0xba,0xfe, +0xa0,0x0,0xe,0x1,0x52,0x0,0x72,0x0,0x52,0x1,0xef,0x0, +0x23,0xff,0xa3,0xff,0x66,0x2,0x5a,0x2,0x98,0x0,0x22,0x1, +0x4f,0x1,0xf1,0xff,0x5,0x0,0x75,0x0,0x97,0x0,0xb5,0x1, +0xce,0x0,0x4c,0xfe,0x43,0xff,0xea,0x0,0x89,0xff,0x75,0xff, +0xc5,0x0,0x7f,0xff,0x7f,0xfe,0x77,0xff,0x53,0xff,0x55,0xff, +0x72,0x0,0xd3,0xff,0x68,0xff,0x27,0x1,0x3,0x1,0x2e,0xff, +0xd7,0xff,0xd2,0x0,0x62,0xff,0x85,0xfe,0x9c,0xff,0xa8,0x0, +0xf6,0x0,0xc2,0x0,0x46,0x0,0xa3,0xff,0x90,0xfe,0x2b,0xfe, +0x7e,0xff,0xa5,0x0,0x65,0x0,0xe7,0xff,0x85,0xff,0x6d,0xff, +0xc,0x0,0x77,0x0,0xa0,0x0,0xfc,0x0,0x69,0x0,0xd1,0xff, +0xe4,0x0,0x50,0x1,0x80,0x0,0x3c,0x1,0xac,0x1,0xc1,0xff, +0x21,0xff,0x24,0x0,0x81,0xff,0x2a,0xff,0x9c,0x0,0xb5,0x0, +0xbd,0xff,0xd7,0xff,0xd2,0xff,0xd0,0xff,0x88,0x0,0x3,0x0, +0xec,0xfe,0x7d,0xff,0xff,0xff,0xd6,0xff,0xe0,0x0,0x60,0x1, +0xcd,0xff,0xd6,0xfe,0x4a,0xff,0xa2,0xff,0x28,0x0,0xb6,0x0, +0x66,0x0,0xe,0x0,0xf7,0xff,0x78,0xff,0x52,0xff,0xdf,0xff, +0x2f,0x0,0x11,0x0,0xcb,0xff,0xac,0xff,0x16,0x0,0x3b,0x0, +0xc6,0xff,0x15,0x0,0x99,0x0,0x91,0xff,0x8a,0xfe,0x65,0xff, +0x85,0x0,0x7c,0x0,0x28,0x0,0xc,0x0,0xc7,0xff,0x34,0xff, +0xdf,0xfe,0x85,0xff,0x59,0x0,0xe6,0xff,0x33,0xff,0xdb,0xff, +0xa3,0x0,0x2a,0x0,0x86,0xff,0xac,0xff,0xed,0xff,0xa2,0xff, +0x28,0xff,0x3b,0xff,0xd6,0xff,0x47,0x0,0x5f,0x0,0x34,0x0, +0xb8,0xff,0x77,0xff,0x9b,0xff,0x6f,0xff,0x83,0xff,0x6d,0x0, +0x61,0x0,0x16,0xff,0x3c,0xff,0xa2,0x0,0x8f,0x0,0x90,0xff, +0x60,0xff,0x5a,0xff,0x2f,0xff,0x72,0xff,0xd,0x0,0x6,0x1, +0x62,0x1,0xce,0xff,0xa2,0xfe,0xf8,0xff,0x95,0x0,0x21,0xff, +0x33,0xff,0xb7,0x0,0x81,0x0,0x8b,0xff,0xa8,0xff,0x18,0x0, +0xae,0x0,0xe4,0x0,0xaa,0xff,0xc7,0xfe,0x7a,0xff,0xbd,0xff, +0x76,0xff,0x2b,0x0,0xb8,0x0,0x57,0x0,0x1c,0x0,0xb8,0xff, +0x3b,0xff,0xde,0xff,0x66,0x0,0x67,0xff,0x9e,0xfe,0x33,0xff, +0xea,0xff,0xf,0x0,0xe0,0xff,0xb0,0xff,0xd7,0xff,0xfd,0xff, +0xd4,0xff,0xd1,0xff,0xec,0xff,0xcb,0xff,0xb1,0xff,0xb1,0xff, +0xb5,0xff,0xf5,0xff,0x27,0x0,0x1f,0x0,0x36,0x0,0x2f,0x0, +0xb,0x0,0x41,0x0,0xf,0x0,0x6a,0xff,0xec,0xff,0xcb,0x0, +0x24,0x0,0x72,0xff,0xde,0xff,0xc2,0xff,0x6c,0xff,0x1e,0x0, +0x85,0x0,0x26,0x0,0xe5,0xff,0x6a,0xff,0x64,0xff,0x74,0x0, +0x7e,0x0,0x8a,0xff,0x19,0x0,0xd0,0x0,0xc4,0xff,0x69,0xff, +0x89,0x0,0xb1,0x0,0x48,0x0,0x6b,0x0,0xe6,0xff,0x64,0xff, +0xe6,0xff,0x2,0x0,0xe2,0xff,0x76,0x0,0x81,0x0,0xef,0xff, +0xf1,0xff,0xfa,0xff,0xb4,0xff,0x12,0x0,0x83,0x0,0xd8,0xff, +0x47,0xff,0xe4,0xff,0x64,0x0,0x1e,0x0,0xb2,0xff,0x80,0xff, +0xc6,0xff,0x4,0x0,0xe8,0xff,0x1,0x0,0xc,0x0,0xe4,0xff, +0xed,0xff,0xd3,0xff,0xc4,0xff,0x2,0x0,0xf4,0xff,0xbc,0xff, +0xc6,0xff,0xe1,0xff,0xf4,0xff,0x1f,0x0,0x1c,0x0,0xab,0xff, +0xb0,0xff,0x4a,0x0,0x0,0x0,0x82,0xff,0x0,0x0,0x2c,0x0, +0xe8,0xff,0x1a,0x0,0x10,0x0,0xb4,0xff,0x9e,0xff,0xc3,0xff, +0xe9,0xff,0xe4,0xff,0xdc,0xff,0xcf,0xff,0xb6,0xff,0xd2,0xff, +0xd9,0xff,0xe7,0xff,0x20,0x0,0xef,0xff,0xbf,0xff,0xdb,0xff, +0xbc,0xff,0xbd,0xff,0xd9,0xff,0xc7,0xff,0xe0,0xff,0xe3,0xff, +0xd1,0xff,0x3,0x0,0x24,0x0,0x4,0x0,0xa1,0xff,0x6b,0xff, +0xb8,0xff,0xc2,0xff,0x9a,0xff,0xd1,0xff,0xe,0x0,0x25,0x0, +0xf4,0xff,0xa2,0xff,0xae,0xff,0xa1,0xff,0x77,0xff,0xa8,0xff, +0xd2,0xff,0xe4,0xff,0xde,0xff,0xbf,0xff,0xbb,0xff,0x87,0xff, +0x6f,0xff,0xb4,0xff,0xb1,0xff,0xaa,0xff,0xd7,0xff,0xcb,0xff, +0xc1,0xff,0xbc,0xff,0xab,0xff,0xaf,0xff,0x94,0xff,0x80,0xff, +0x69,0xff,0x5a,0xff,0xb8,0xff,0xd7,0xff,0x8a,0xff,0x8c,0xff, +0x9e,0xff,0xa1,0xff,0x92,0xff,0x42,0xff,0x2f,0xff,0x6a,0xff, +0xac,0xff,0xd3,0xff,0x9d,0xff,0x85,0xff,0xa7,0xff,0x8f,0xff, +0x85,0xff,0x6e,0xff,0x3a,0xff,0x51,0xff,0x6a,0xff,0x88,0xff, +0xc5,0xff,0xb9,0xff,0x8d,0xff,0x65,0xff,0x62,0xff,0xa6,0xff, +0xb9,0xff,0xc5,0xff,0xe6,0xff,0xac,0xff,0x8b,0xff,0xb3,0xff, +0xad,0xff,0x73,0xff,0xa,0xff,0xd6,0xfe,0x29,0xff,0xcd,0xff, +0x9b,0x0,0xe0,0x0,0x52,0x0,0xb0,0xff,0x26,0xff,0xde,0xfe, +0x31,0xff,0xab,0xff,0xe5,0xff,0xce,0xff,0xc1,0xff,0xf5,0xff, +0xa7,0xff,0xeb,0xfe,0xaf,0xfe,0xd2,0xfe,0xf,0xff,0x9e,0xff, +0x5c,0x0,0x92,0x0,0x3,0x0,0xab,0xff,0xb5,0xff,0x33,0xff, +0x92,0xfe,0x9b,0xfe,0x6,0xff,0x9e,0xff,0x23,0x0,0x17,0x0, +0x94,0xff,0x16,0xff,0xf6,0xfe,0x46,0xff,0xc6,0xff,0xda,0xff, +0x54,0xff,0xf,0xff,0x51,0xff,0x90,0xff,0xfc,0xff,0x47,0x0, +0x70,0xff,0x37,0xfe,0xe7,0xfd,0x61,0xfe,0xc0,0xff,0xe6,0x1, +0x4c,0x2,0xa6,0xff,0x8b,0xfd,0xc5,0xfe,0xb9,0x0,0xfb,0x0, +0x97,0x0,0xc4,0xff,0x6e,0xfd,0xca,0xfa,0x49,0xfa,0x59,0xfc, +0x2,0x0,0x9e,0x4,0xd8,0x8,0xa6,0x9,0xf4,0x4,0x3f,0xfd, +0x2f,0xf8,0xba,0xf8,0xd0,0xfc,0xc7,0x0,0x74,0x2,0xb0,0x1, +0xf9,0xff,0xe3,0xfe,0x70,0xfe,0x2,0xfe,0x10,0xfe,0x42,0xff, +0xef,0x0,0x8f,0x1,0x42,0x0,0xab,0xfd,0x47,0xfb,0x4,0xfa, +0xed,0xf9,0xd6,0xfa,0xa0,0xfc,0x26,0xff,0x23,0x2,0xb9,0x4, +0x8d,0x5,0xf7,0x3,0xa4,0x0,0x20,0xfd,0x12,0xfb,0x29,0xfb, +0x90,0xfc,0x1b,0xfe,0x56,0xff,0x30,0x0,0xbc,0x0,0xfa,0x0, +0xab,0x0,0x2a,0x0,0x32,0x0,0x6e,0x0,0x6a,0x0,0xce,0x0, +0x8d,0x1,0xa1,0x1,0x4b,0x1,0x46,0x1,0x3c,0x1,0xf0,0x0, +0x6c,0x0,0x52,0xff,0x46,0xfe,0x7f,0xfe,0x7b,0xff,0x27,0x0, +0xab,0x0,0x1b,0x1,0xe2,0x0,0xf3,0xff,0xd4,0xfe,0x51,0xfe, +0x26,0xff,0x9b,0x0,0xfa,0x0,0x27,0x0,0x56,0xff,0x73,0xfe, +0xa8,0xfc,0xa4,0xfa,0xd2,0xf9,0x50,0xfa,0x5a,0xfb,0x9d,0xfc, +0x40,0xfe,0x1b,0x0,0x81,0x1,0xf2,0x1,0x8c,0x1,0x91,0x0, +0x6a,0xff,0xf1,0xfe,0xa8,0xff,0x11,0x1,0xc,0x2,0x6a,0x1, +0x41,0xff,0x5a,0xfd,0xed,0xfc,0x94,0xfd,0x0,0xff,0x0,0x1, +0xaa,0x2,0x45,0x3,0x8d,0x2,0xc2,0x0,0x25,0xff,0x76,0xfe, +0x20,0xfe,0x1c,0xfe,0xa6,0xfe,0xe,0xff,0x72,0xff,0x85,0x0, +0x77,0x1,0x70,0x1,0xed,0x0,0x69,0x0,0x2f,0x0,0x59,0x0, +0x50,0x0,0x7,0x0,0xf4,0xff,0xc1,0xff,0x73,0xff,0xa9,0xff, +0xfd,0xff,0x6,0x0,0x1d,0x0,0xf5,0xff,0x63,0xff,0xf1,0xfe, +0x72,0xfe,0xcd,0xfd,0x9a,0xfd,0x76,0xfd,0xef,0xfc,0xe3,0xfc, +0x9f,0xfd,0x90,0xfe,0xa0,0xff,0x69,0x0,0x46,0x0,0x91,0xff, +0xfe,0xfe,0xfb,0xfe,0x88,0xff,0xb1,0xff,0x22,0xff,0x5,0xff, +0x95,0xff,0xf1,0xff,0x42,0x0,0xcf,0x0,0x1,0x1,0x2,0x1, +0x6e,0x1,0xd8,0x1,0xb7,0x1,0x44,0x1,0xd1,0x0,0x80,0x0, +0x63,0x0,0x66,0x0,0x84,0x0,0xca,0x0,0x20,0x1,0x5c,0x1, +0x3d,0x1,0x84,0x0,0x75,0xff,0xe3,0xfe,0x19,0xff,0x5a,0xff, +0x2f,0xff,0x20,0xff,0x7c,0xff,0xa,0x0,0xb3,0x0,0x23,0x1, +0xee,0x0,0x76,0x0,0x28,0x0,0xb4,0xff,0x6,0xff,0x7a,0xfe, +0x31,0xfe,0x4b,0xfe,0x95,0xfe,0x90,0xfe,0x83,0xfe,0xe4,0xfe, +0x53,0xff,0xab,0xff,0x1d,0x0,0x3f,0x0,0xec,0xff,0xd0,0xff, +0x1b,0x0,0x18,0x0,0x4b,0xff,0x56,0xfe,0x36,0xfe,0x9e,0xfe, +0xc5,0xfe,0x20,0xff,0xd8,0xff,0x5,0x0,0x18,0x0,0xdc,0x0, +0x14,0x1,0x27,0x0,0x88,0xff,0xb1,0xff,0xca,0xff,0x90,0xff, +0x8,0xff,0x8d,0xfe,0xc3,0xfe,0x44,0xff,0x71,0xff,0x96,0xff, +0xa8,0xff,0x87,0xff,0xde,0xff,0x85,0x0,0x9d,0x0,0x6f,0x0, +0x54,0x0,0xf9,0xff,0xaf,0xff,0xa2,0xff,0x44,0xff,0xf1,0xfe, +0x46,0xff,0xb8,0xff,0xdc,0xff,0xce,0xff,0x89,0xff,0x90,0xff, +0x1a,0x0,0x27,0x0,0x96,0xff,0x4b,0xff,0x33,0xff,0x1f,0xff, +0x72,0xff,0xa2,0xff,0x23,0xff,0x97,0xfe,0x3a,0xfe,0xe3,0xfd, +0xea,0xfd,0x8,0xfe,0xe0,0xfd,0x19,0xfe,0xae,0xfe,0xba,0xfe, +0x77,0xfe,0x72,0xfe,0x7a,0xfe,0xb3,0xfe,0x29,0xff,0x34,0xff, +0xdc,0xfe,0xdd,0xfe,0x37,0xff,0x7b,0xff,0x7c,0xff,0x15,0xff, +0x87,0xfe,0x76,0xfe,0xe1,0xfe,0x34,0xff,0x44,0xff,0x4e,0xff, +0x57,0xff,0x75,0xff,0xed,0xff,0x42,0x0,0xb8,0xff,0xc,0xff, +0x4e,0xff,0xcb,0xff,0x95,0xff,0x49,0xff,0x6f,0xff,0xa5,0xff, +0xd4,0xff,0x0,0x0,0xbf,0xff,0x4e,0xff,0x67,0xff,0xc8,0xff, +0xb1,0xff,0x4c,0xff,0x26,0xff,0x3f,0xff,0x6e,0xff,0xbf,0xff, +0xeb,0xff,0x9f,0xff,0x59,0xff,0xa2,0xff,0xe,0x0,0x17,0x0, +0xcf,0xff,0x7e,0xff,0x73,0xff,0xb6,0xff,0xb6,0xff,0x3f,0xff, +0xef,0xfe,0xfc,0xfe,0x10,0xff,0x28,0xff,0x5a,0xff,0x9f,0xff, +0xfd,0xff,0x32,0x0,0xd,0x0,0xc4,0xff,0x55,0xff,0xe6,0xfe, +0x29,0xff,0xe3,0xff,0x34,0x0,0x74,0x0,0xe7,0x0,0xb8,0x0, +0x24,0x0,0x37,0x0,0xa4,0x0,0xdc,0x0,0x5,0x1,0xda,0x0, +0x5e,0x0,0x32,0x0,0x2b,0x0,0xe2,0xff,0xa9,0xff,0xaf,0xff, +0x3,0x0,0x97,0x0,0xba,0x0,0x6d,0x0,0x76,0x0,0x83,0x0, +0x45,0x0,0x6a,0x0,0xc3,0x0,0xe9,0x0,0xf9,0x0,0x28,0x0, +0x18,0xff,0x3d,0x0,0xe5,0x1,0x79,0x0,0x5c,0xfe,0xf9,0xfe, +0xdc,0xff,0xf4,0xfe,0x39,0xfe,0x9f,0xfe,0xb4,0xff,0x88,0x1, +0x3e,0x3,0x14,0x4,0x6f,0x4,0x9f,0x3,0xeb,0x0,0xb9,0xfd, +0x74,0xfb,0xa3,0xfa,0x52,0xfc,0x4d,0x0,0x8f,0x3,0x67,0x3, +0xa8,0x0,0x16,0xfe,0xe9,0xfc,0xb3,0xfc,0x37,0xfd,0x5f,0xfe, +0x20,0x0,0x8d,0x2,0xfb,0x3,0x58,0x2,0x7f,0xff,0x88,0xfe, +0xbb,0xfe,0xb8,0xfe,0x41,0xff,0x30,0x0,0xa5,0x0,0x6,0x1, +0x4a,0x1,0xea,0x0,0x54,0x0,0xc3,0xff,0x2d,0xff,0x19,0xff, +0x75,0xff,0xfb,0xff,0xcd,0x0,0x4,0x1,0xf,0x0,0x6a,0xff, +0xaf,0xff,0xcc,0xff,0xdd,0xff,0x83,0x0,0x3f,0x1,0x7b,0x1, +0x15,0x1,0x6e,0x0,0x7f,0x0,0x4d,0x1,0x94,0x1,0xdb,0x0, +0xd4,0xff,0x2a,0xff,0x40,0xff,0x4,0x0,0xa5,0x0,0x47,0x0, +0x43,0xff,0x31,0xff,0x5b,0x0,0xa4,0x0,0x77,0xff,0x1a,0xff, +0x22,0x0,0x21,0x1,0xb,0x2,0x9d,0x2,0x8a,0x1,0x8c,0xff, +0x40,0xfe,0x88,0xfd,0xfc,0xfc,0xf0,0xfc,0xe4,0xfd,0xef,0xff, +0xcb,0x1,0x3d,0x2,0xc8,0x1,0x1c,0x1,0x50,0x0,0xf3,0xff, +0x4c,0x0,0x9d,0x0,0x6a,0x0,0x2e,0x0,0x2b,0x0,0xca,0xff, +0x2f,0xff,0x4a,0xff,0xf4,0xff,0x9a,0x0,0x39,0x1,0x6a,0x1, +0xe2,0x0,0x7f,0x0,0x3a,0x1,0x7f,0x2,0x5b,0x2,0x93,0x0, +0x4d,0xff,0x60,0xff,0x26,0x0,0x26,0x1,0x43,0x1,0x96,0x0, +0xb8,0x0,0xc,0x1,0x7f,0x0,0xf4,0xff,0xae,0xff,0xba,0xff, +0x8c,0x0,0x23,0x1,0xe8,0x0,0x5c,0x0,0xa1,0xff,0x98,0xff, +0x8a,0x0,0xd0,0x0,0x45,0x0,0x14,0x0,0xc,0x0,0xa,0x0, +0x30,0x0,0x6,0x0,0xaf,0xff,0xa1,0xff,0xad,0xff,0xac,0xff, +0xa6,0xff,0x8a,0xff,0x92,0xff,0x26,0x0,0xd2,0x0,0xa9,0x0, +0x24,0x0,0x51,0x0,0xf0,0x0,0x53,0x1,0xf3,0x0,0xf1,0xff, +0xc4,0xff,0x94,0x0,0xf5,0x0,0xa,0x1,0xf6,0x0,0x31,0x0, +0xec,0xff,0xa4,0x0,0x8,0x1,0xf4,0x0,0xaf,0x0,0x73,0x0, +0x12,0x1,0xb7,0x1,0x36,0x1,0x82,0x0,0x77,0x0,0xdf,0x0, +0x22,0x1,0xba,0x0,0x42,0x0,0x1b,0x0,0xf2,0xff,0x7d,0x0, +0x69,0x1,0x34,0x1,0x71,0x0,0x2,0x0,0xb3,0xff,0xe9,0xff, +0x4c,0x0,0x29,0x0,0x9,0x0,0x4,0x0,0x1,0x0,0x24,0x0, +0xb5,0xff,0x32,0xff,0xbc,0xff,0x41,0x0,0x1d,0x0,0xf,0x0, +0x5,0x0,0x2d,0x0,0xb7,0x0,0xc6,0x0,0x65,0x0,0xf,0x0, +0xb5,0xff,0xc8,0xff,0xfe,0xff,0x76,0xff,0xf6,0xfe,0x6b,0xff, +0x20,0x0,0x69,0x0,0x8e,0x0,0xbe,0x0,0xb3,0x0,0x98,0x0, +0xd1,0x0,0xbf,0x0,0xa,0x0,0xa1,0xff,0xd5,0xff,0x2d,0x0, +0x5f,0x0,0x1b,0x0,0xc1,0xff,0xfa,0xff,0x7a,0x0,0xda,0x0, +0xbc,0x0,0xe,0x0,0xc,0x0,0x4,0x1,0x58,0x1,0xb8,0x0, +0x46,0x0,0x63,0x0,0xac,0x0,0xa2,0x0,0x5d,0x0,0x1a,0x0, +0xbb,0xff,0xeb,0xff,0xc3,0x0,0xce,0x0,0x3a,0x0,0x44,0x0, +0x80,0x0,0xb0,0x0,0xef,0x0,0x7e,0x0,0xb3,0xff,0x87,0xff, +0xe8,0xff,0x63,0x0,0x44,0x0,0xc0,0xff,0x6,0x0,0x60,0x0, +0x3f,0x0,0xb2,0x0,0xa4,0x0,0x6b,0xff,0x5a,0xff,0x40,0x0, +0x27,0x0,0xc6,0xff,0xb9,0xff,0xb9,0xff,0x7,0x0,0x14,0x0, +0xe4,0xff,0xea,0xff,0x90,0xff,0xc7,0xff,0xf2,0x0,0xc5,0x0, +0xda,0xff,0x38,0x0,0x71,0x0,0x16,0x0,0x49,0x0,0x40,0x0, +0xdc,0xff,0xd0,0xff,0x8,0x0,0xb9,0x0,0xec,0x0,0x1c,0x0, +0x2d,0x0,0xbb,0x0,0x55,0x0,0x64,0x0,0xca,0x0,0x52,0x0, +0x50,0x0,0xd1,0x0,0x9b,0x0,0x27,0x0,0xd1,0xff,0xf8,0xff, +0xba,0x0,0xa0,0x0,0xf5,0xff,0x21,0x0,0x66,0x0,0x8b,0x0, +0xef,0x0,0x93,0x0,0xd5,0xff,0xe0,0xff,0x38,0x0,0x6d,0x0, +0x5c,0x0,0xf0,0xff,0x0,0x0,0x89,0x0,0xa6,0x0,0x88,0x0, +0x68,0x0,0x3e,0x0,0x6a,0x0,0xb0,0x0,0xa3,0x0,0x4c,0x0, +0xd8,0xff,0xf6,0xff,0xbb,0x0,0x3,0x1,0x87,0x0,0x3,0x0, +0xe1,0xff,0x30,0x0,0x8d,0x0,0x96,0x0,0x33,0x0,0xb0,0xff, +0x2,0x0,0xe2,0x0,0xdf,0x0,0x61,0x0,0x3a,0x0,0x35,0x0, +0x8e,0x0,0xb4,0x0,0x2e,0x0,0x21,0x0,0x4e,0x0,0x3b,0x0, +0xa4,0x0,0x82,0x0,0xb6,0xff,0xf9,0xff,0x91,0x0,0xae,0x0, +0xcd,0x0,0x68,0x0,0x1,0x0,0x4f,0x0,0xa4,0x0,0xd,0x1, +0xf,0x1,0x72,0x0,0x94,0x0,0xd6,0x0,0xaa,0x0,0xe7,0x0, +0x65,0x0,0xc5,0xff,0xb6,0x0,0xee,0x0,0x30,0x0,0x84,0x0, +0x8e,0x0,0x52,0x0,0xfd,0x0,0xd0,0x0,0x6,0x0,0x48,0x0, +0xb7,0x0,0xf0,0x0,0xd,0x1,0x64,0x0,0xcd,0xff,0x37,0x0, +0xce,0x0,0xcd,0x0,0x9b,0x0,0x93,0x0,0x5b,0x0,0x59,0x0, +0xf0,0x0,0xeb,0x0,0x37,0x0,0x20,0x0,0x64,0x0,0x79,0x0, +0x87,0x0,0x6f,0x0,0x59,0x0,0x82,0x0,0x7,0x1,0x5f,0x1, +0x96,0x0,0xd2,0xff,0x1f,0x0,0x68,0x0,0xda,0x0,0x14,0x1, +0xf2,0xff,0xd2,0xff,0x38,0x1,0x62,0x1,0xf9,0x0,0x79,0x0, +0x29,0xff,0x7a,0xff,0x13,0x1,0x7,0x1,0x8b,0x0,0x9c,0x0, +0x76,0x0,0xed,0x0,0x63,0x1,0x8c,0x0,0xac,0xff,0xf1,0xff, +0xd0,0x0,0x24,0x1,0xb5,0x0,0x62,0x0,0x6d,0x0,0xdd,0x0, +0x75,0x1,0x19,0x1,0x3e,0x0,0x9,0x0,0x40,0x0,0xe8,0x0, +0x53,0x1,0xa1,0x0,0x32,0x0,0x8c,0x0,0xb4,0x0,0xb0,0x0, +0x6b,0x0,0x12,0x0,0x7,0x0,0xfd,0xff,0x88,0x0,0xb,0x1, +0x4b,0x0,0x32,0x0,0xf9,0x0,0x93,0x0,0x30,0x0,0x4f,0x0, +0xfe,0xff,0x6e,0x0,0x5,0x1,0xad,0x0,0x9d,0x0,0x44,0x0, +0xb4,0xff,0x8a,0x0,0xfe,0x0,0x14,0x0,0xef,0xff,0x8e,0x0, +0xd8,0x0,0xcd,0x0,0x7b,0x0,0x40,0x0,0x27,0x0,0x2b,0x0, +0x9b,0x0,0xa0,0x0,0xf5,0xff,0xdd,0xff,0x84,0x0,0xde,0x0, +0x66,0x0,0xe2,0xff,0x2d,0x0,0x89,0x0,0x8a,0x0,0xa6,0x0, +0x74,0x0,0x2e,0x0,0x73,0x0,0xc2,0x0,0xcb,0x0,0x3b,0x0, +0x7a,0xff,0xee,0xff,0x6f,0x0,0xe9,0xff,0xfc,0xff,0x3d,0x0, +0xdc,0xff,0x2e,0x0,0x9b,0x0,0x48,0x0,0xf7,0xff,0x90,0xff, +0xbc,0xff,0xaf,0x0,0x98,0x0,0x17,0x0,0x67,0x0,0x36,0x0, +0xe3,0xff,0x63,0x0,0x72,0x0,0xe,0x0,0x15,0x0,0x39,0x0, +0x82,0x0,0x9d,0x0,0xf1,0xff,0x97,0xff,0x17,0x0,0x47,0x0, +0x27,0x0,0x4e,0x0,0x37,0x0,0x21,0x0,0xa2,0x0,0xb4,0x0, +0xc,0x0,0xd0,0xff,0xfc,0xff,0x45,0x0,0xb4,0x0,0x79,0x0, +0xe7,0xff,0x1a,0x0,0x6e,0x0,0x72,0x0,0x6d,0x0,0xda,0xff, +0x72,0xff,0x3a,0x0,0xd7,0x0,0x81,0x0,0x15,0x0,0xdf,0xff, +0x23,0x0,0xca,0x0,0xbb,0x0,0x31,0x0,0xb,0x0,0xf9,0xff, +0x23,0x0,0xa7,0x0,0x65,0x0,0x9f,0xff,0xac,0xff,0x34,0x0, +0x70,0x0,0x59,0x0,0xf2,0xff,0xd6,0xff,0x4f,0x0,0x75,0x0, +0x36,0x0,0x1e,0x0,0xdf,0xff,0xca,0xff,0x59,0x0,0x91,0x0, +0x11,0x0,0xc9,0xff,0xf0,0xff,0x4e,0x0,0xa8,0x0,0x65,0x0, +0xcb,0xff,0xb0,0xff,0xed,0xff,0x27,0x0,0x2f,0x0,0xb0,0xff, +0x5a,0xff,0xed,0xff,0x7f,0x0,0x50,0x0,0xfb,0xff,0xd9,0xff, +0xf9,0xff,0x71,0x0,0xaf,0x0,0x44,0x0,0xb0,0xff,0xa2,0xff, +0x44,0x0,0xd2,0x0,0x51,0x0,0x6a,0xff,0x6d,0xff,0x11,0x0, +0x6a,0x0,0x61,0x0,0x1e,0x0,0xe1,0xff,0x3,0x0,0x6a,0x0, +0xbc,0x0,0xa2,0x0,0x1a,0x0,0xea,0xff,0x62,0x0,0x95,0x0, +0x42,0x0,0xb,0x0,0xf4,0xff,0xf5,0xff,0x2a,0x0,0x16,0x0, +0xc5,0xff,0xd6,0xff,0xd,0x0,0x20,0x0,0x3f,0x0,0x1c,0x0, +0xdc,0xff,0x24,0x0,0x65,0x0,0x22,0x0,0xf5,0xff,0xcc,0xff, +0x64,0xff,0x80,0xff,0x9,0x0,0x3,0x0,0xa8,0xff,0xb0,0xff, +0xf9,0xff,0x25,0x0,0x12,0x0,0xda,0xff,0xd4,0xff,0xf5,0xff, +0xe9,0xff,0xbc,0xff,0xa1,0xff,0xa8,0xff,0xdf,0xff,0x1e,0x0, +0x3,0x0,0x91,0xff,0x68,0xff,0xcd,0xff,0x26,0x0,0x18,0x0, +0xeb,0xff,0x9b,0xff,0x5a,0xff,0xb6,0xff,0x35,0x0,0x2,0x0, +0xa3,0xff,0xbc,0xff,0xfd,0xff,0x18,0x0,0xed,0xff,0x8b,0xff, +0x60,0xff,0x84,0xff,0xca,0xff,0x25,0x0,0x2c,0x0,0xd2,0xff, +0xdb,0xff,0x39,0x0,0x28,0x0,0xb7,0xff,0x69,0xff,0x94,0xff, +0x31,0x0,0x86,0x0,0x4c,0x0,0x30,0x0,0x37,0x0,0x28,0x0, +0x57,0x0,0x60,0x0,0xcf,0xff,0x71,0xff,0xbf,0xff,0x41,0x0, +0x8d,0x0,0x47,0x0,0xb2,0xff,0xb1,0xff,0x22,0x0,0x53,0x0, +0x44,0x0,0xd,0x0,0xe8,0xff,0x3f,0x0,0x82,0x0,0x24,0x0, +0xc5,0xff,0xc3,0xff,0xe1,0xff,0x1b,0x0,0x3e,0x0,0x8,0x0, +0xc2,0xff,0xc4,0xff,0x23,0x0,0x79,0x0,0x2d,0x0,0xb2,0xff, +0xd6,0xff,0x20,0x0,0x13,0x0,0x10,0x0,0x5,0x0,0xd3,0xff, +0xfb,0xff,0x4f,0x0,0x20,0x0,0xb6,0xff,0xa8,0xff,0xe9,0xff, +0x23,0x0,0x16,0x0,0xc4,0xff,0x8e,0xff,0xaf,0xff,0xf5,0xff, +0x25,0x0,0x26,0x0,0xf0,0xff,0xbf,0xff,0xf3,0xff,0x4e,0x0, +0x37,0x0,0xe3,0xff,0xe7,0xff,0x10,0x0,0x22,0x0,0x44,0x0, +0x21,0x0,0xc1,0xff,0xea,0xff,0x5d,0x0,0x52,0x0,0x20,0x0, +0xa,0x0,0xda,0xff,0xef,0xff,0x1e,0x0,0xce,0xff,0xad,0xff, +0x36,0x0,0x8e,0x0,0x74,0x0,0x32,0x0,0xc8,0xff,0xb2,0xff, +0x25,0x0,0x6f,0x0,0x6c,0x0,0x51,0x0,0x15,0x0,0x24,0x0, +0x7f,0x0,0x71,0x0,0x21,0x0,0xe,0x0,0x21,0x0,0x6f,0x0, +0xb8,0x0,0x6f,0x0,0xf,0x0,0x1f,0x0,0x43,0x0,0x5e,0x0, +0x71,0x0,0x32,0x0,0xf6,0xff,0x17,0x0,0x3e,0x0,0x46,0x0, +0x3f,0x0,0x8,0x0,0xe1,0xff,0x26,0x0,0x84,0x0,0x79,0x0, +0x26,0x0,0x12,0x0,0x5d,0x0,0x95,0x0,0x5e,0x0,0xe7,0xff, +0xc1,0xff,0x2f,0x0,0xa8,0x0,0xaa,0x0,0x66,0x0,0x1d,0x0, +0xa,0x0,0x6e,0x0,0xbe,0x0,0x8c,0x0,0x68,0x0,0x6a,0x0, +0x3f,0x0,0x38,0x0,0x1b,0x0,0x8a,0xff,0x5a,0xff,0xcb,0xff, +0xc,0x0,0x1b,0x0,0x30,0x0,0x35,0x0,0x8f,0x0,0x17,0x1, +0xc,0x1,0xa7,0x0,0x6b,0x0,0x6b,0x0,0xb6,0x0,0x99,0x0, +0x52,0xff,0xb1,0xfd,0xed,0xfc,0x57,0xfd,0xc3,0xfe,0x8d,0x0, +0x33,0x2,0xba,0x3,0xaf,0x4,0x97,0x4,0xe4,0x3,0xd5,0x2, +0x4b,0x1,0xb2,0xff,0x58,0xfe,0x34,0xfd,0xbd,0xfc,0x67,0xfd, +0xdb,0xfe,0x40,0x0,0xd1,0x0,0x68,0x0,0xd3,0xff,0xfc,0xff, +0x9d,0x0,0xb0,0x0,0x19,0x0,0x7a,0xff,0xd,0xff,0xf,0xff, +0xa1,0xff,0xdf,0xff,0x6c,0xff,0x44,0xff,0xb2,0xff,0x26,0x0, +0x7b,0x0,0x83,0x0,0x5b,0x0,0x99,0x0,0xd8,0x0,0x6c,0x0, +0xe6,0xff,0xf7,0xff,0xa4,0x0,0x7b,0x1,0x83,0x1,0xaf,0x0, +0x3c,0x0,0x6f,0x0,0x9c,0x0,0xac,0x0,0x61,0x0,0x8a,0xff, +0xf1,0xfe,0x2,0xff,0x3b,0xff,0x59,0xff,0x5f,0xff,0x71,0xff, +0xcf,0xff,0x33,0x0,0x4e,0x0,0x62,0x0,0x6a,0x0,0x4d,0x0, +0x84,0x0,0xf5,0x0,0xf0,0x0,0xbc,0x0,0xeb,0x0,0x45,0x1, +0x81,0x1,0x99,0x1,0x88,0x1,0x90,0x1,0xd6,0x1,0xe5,0x1, +0x63,0x1,0x90,0x0,0xe6,0xff,0xc2,0xff,0xfe,0xff,0xfd,0xff, +0x84,0xff,0x9,0xff,0xf9,0xfe,0x2f,0xff,0x3a,0xff,0xfa,0xfe, +0xc9,0xfe,0xc,0xff,0xc4,0xff,0x76,0x0,0x95,0x0,0x28,0x0, +0xbf,0xff,0xc6,0xff,0x11,0x0,0x23,0x0,0xe4,0xff,0xbb,0xff, +0xd2,0xff,0x17,0x0,0x78,0x0,0x9a,0x0,0x67,0x0,0x72,0x0, +0xb5,0x0,0x8c,0x0,0x19,0x0,0xb8,0xff,0x86,0xff,0xda,0xff, +0x6c,0x0,0x6c,0x0,0x24,0x0,0x39,0x0,0x78,0x0,0xa7,0x0, +0x8e,0x0,0xf8,0xff,0x85,0xff,0xac,0xff,0xeb,0xff,0xfc,0xff, +0xe9,0xff,0xa3,0xff,0x9d,0xff,0x3,0x0,0x2d,0x0,0xcf,0xff, +0x43,0xff,0xff,0xfe,0x78,0xff,0x46,0x0,0x81,0x0,0x52,0x0, +0x49,0x0,0x58,0x0,0x7a,0x0,0x90,0x0,0x44,0x0,0xf0,0xff, +0x18,0x0,0x88,0x0,0xe6,0x0,0xf5,0x0,0xb1,0x0,0x9d,0x0, +0xed,0x0,0x1c,0x1,0xee,0x0,0x99,0x0,0x4c,0x0,0x34,0x0, +0x47,0x0,0x2b,0x0,0xd0,0xff,0x9f,0xff,0xf4,0xff,0x9e,0x0, +0xe,0x1,0xf5,0x0,0x6f,0x0,0xf7,0xff,0x7,0x0,0x4d,0x0, +0x18,0x0,0xb5,0xff,0xc9,0xff,0x20,0x0,0x49,0x0,0x2b,0x0, +0xd0,0xff,0x9d,0xff,0xed,0xff,0x60,0x0,0x56,0x0,0xce,0xff, +0x67,0xff,0xa3,0xff,0x1f,0x0,0x3b,0x0,0x12,0x0,0xf3,0xff, +0xfe,0xff,0x4e,0x0,0x85,0x0,0x3b,0x0,0xdc,0xff,0xdc,0xff, +0x21,0x0,0x81,0x0,0xa1,0x0,0x56,0x0,0x2f,0x0,0x6b,0x0, +0x9b,0x0,0xa8,0x0,0x94,0x0,0x4d,0x0,0x50,0x0,0xdb,0x0, +0x35,0x1,0xef,0x0,0x79,0x0,0x4c,0x0,0x82,0x0,0xb6,0x0, +0x80,0x0,0x3d,0x0,0x73,0x0,0xde,0x0,0x1,0x1,0xca,0x0, +0x7e,0x0,0x70,0x0,0x97,0x0,0x99,0x0,0x60,0x0,0xd,0x0, +0xca,0xff,0xee,0xff,0x72,0x0,0xa7,0x0,0x57,0x0,0xd,0x0, +0x15,0x0,0x43,0x0,0x58,0x0,0x1d,0x0,0xd6,0xff,0xfc,0xff, +0x5d,0x0,0x86,0x0,0x70,0x0,0x10,0x0,0xa1,0xff,0xd7,0xff, +0x94,0x0,0xea,0x0,0xb6,0x0,0x7c,0x0,0x65,0x0,0x74,0x0, +0x89,0x0,0x45,0x0,0xb5,0xff,0x5f,0xff,0x84,0xff,0xe8,0xff, +0x1a,0x0,0x5,0x0,0x1d,0x0,0x8f,0x0,0xe2,0x0,0xd3,0x0, +0x93,0x0,0x62,0x0,0x77,0x0,0xb0,0x0,0x9e,0x0,0x60,0x0, +0x64,0x0,0x99,0x0,0xca,0x0,0xe1,0x0,0xab,0x0,0x5d,0x0, +0x64,0x0,0x88,0x0,0x81,0x0,0x72,0x0,0x45,0x0,0x13,0x0, +0x42,0x0,0x76,0x0,0x14,0x0,0x8c,0xff,0x83,0xff,0xf6,0xff, +0x92,0x0,0xca,0x0,0x74,0x0,0x31,0x0,0x53,0x0,0x7a,0x0, +0x71,0x0,0x3c,0x0,0xfa,0xff,0x2,0x0,0x53,0x0,0x8f,0x0, +0x8d,0x0,0x57,0x0,0x47,0x0,0xb5,0x0,0xf,0x1,0xc3,0x0, +0x65,0x0,0x66,0x0,0x7c,0x0,0x8c,0x0,0x82,0x0,0x39,0x0, +0x16,0x0,0x54,0x0,0x99,0x0,0xad,0x0,0x93,0x0,0x6e,0x0, +0x8e,0x0,0xce,0x0,0xc5,0x0,0x9a,0x0,0x8a,0x0,0x81,0x0, +0x88,0x0,0x98,0x0,0x79,0x0,0x3d,0x0,0x25,0x0,0x4f,0x0, +0xa2,0x0,0xb7,0x0,0x70,0x0,0x29,0x0,0x11,0x0,0x29,0x0, +0x67,0x0,0x66,0x0,0x17,0x0,0xf,0x0,0x62,0x0,0x82,0x0, +0x4c,0x0,0xf,0x0,0x1e,0x0,0x75,0x0,0xa0,0x0,0x79,0x0, +0x54,0x0,0x46,0x0,0x43,0x0,0x52,0x0,0x34,0x0,0xe8,0xff, +0xe0,0xff,0x33,0x0,0x8d,0x0,0xae,0x0,0x79,0x0,0x4b,0x0, +0x7d,0x0,0xaf,0x0,0x7f,0x0,0x23,0x0,0xd0,0xff,0xc6,0xff, +0x21,0x0,0x67,0x0,0x4b,0x0,0x25,0x0,0x2f,0x0,0x6f,0x0, +0xc1,0x0,0xbc,0x0,0x73,0x0,0x72,0x0,0xb5,0x0,0xe2,0x0, +0xd8,0x0,0x86,0x0,0x2e,0x0,0x2b,0x0,0x45,0x0,0x45,0x0, +0x46,0x0,0x32,0x0,0x28,0x0,0x6c,0x0,0xa7,0x0,0x7d,0x0, +0x36,0x0,0x21,0x0,0x5a,0x0,0xa6,0x0,0x85,0x0,0x13,0x0, +0xea,0xff,0xc,0x0,0x37,0x0,0x5a,0x0,0x4d,0x0,0x2a,0x0, +0x4a,0x0,0x86,0x0,0x94,0x0,0x79,0x0,0x43,0x0,0x2b,0x0, +0x64,0x0,0xad,0x0,0xcf,0x0,0xd0,0x0,0x9b,0x0,0x67,0x0, +0x7a,0x0,0x8c,0x0,0x73,0x0,0x70,0x0,0x82,0x0,0x84,0x0, +0x8e,0x0,0x96,0x0,0x80,0x0,0x63,0x0,0x5d,0x0,0x73,0x0, +0x7c,0x0,0x5f,0x0,0x61,0x0,0x98,0x0,0xb6,0x0,0xac,0x0, +0x94,0x0,0x67,0x0,0x49,0x0,0x4f,0x0,0x44,0x0,0x21,0x0, +0x1,0x0,0x9,0x0,0x6b,0x0,0xca,0x0,0x9a,0x0,0x42,0x0, +0x52,0x0,0x8e,0x0,0xa0,0x0,0x80,0x0,0x47,0x0,0x46,0x0, +0x74,0x0,0x84,0x0,0x83,0x0,0x68,0x0,0x22,0x0,0x2d,0x0, +0x93,0x0,0x9c,0x0,0x63,0x0,0x73,0x0,0x97,0x0,0xb2,0x0, +0xea,0x0,0xdf,0x0,0x74,0x0,0x37,0x0,0x58,0x0,0x95,0x0, +0xc3,0x0,0xc3,0x0,0xac,0x0,0xb5,0x0,0xc4,0x0,0xb0,0x0, +0x83,0x0,0x4c,0x0,0x37,0x0,0x5d,0x0,0x81,0x0,0x94,0x0, +0xc4,0x0,0xdd,0x0,0xc1,0x0,0xb7,0x0,0xac,0x0,0x69,0x0, +0x3f,0x0,0x61,0x0,0x8f,0x0,0xad,0x0,0xa1,0x0,0x5e,0x0, +0x41,0x0,0x66,0x0,0x6e,0x0,0x66,0x0,0x8f,0x0,0xa3,0x0, +0x90,0x0,0x88,0x0,0x52,0x0,0x4,0x0,0x26,0x0,0x85,0x0, +0x8b,0x0,0x57,0x0,0x43,0x0,0x6b,0x0,0xcc,0x0,0xf7,0x0, +0xa5,0x0,0x64,0x0,0x78,0x0,0x79,0x0,0x73,0x0,0xa3,0x0, +0xb2,0x0,0x86,0x0,0x86,0x0,0xa6,0x0,0x9a,0x0,0x85,0x0, +0x8e,0x0,0x92,0x0,0x88,0x0,0x99,0x0,0xb5,0x0,0x9d,0x0, +0x70,0x0,0x95,0x0,0xe6,0x0,0xd2,0x0,0x62,0x0,0xfe,0xff, +0xd0,0xff,0x9,0x0,0x85,0x0,0x98,0x0,0x57,0x0,0x7a,0x0, +0xc4,0x0,0xa2,0x0,0x63,0x0,0x3c,0x0,0x14,0x0,0x33,0x0, +0x7c,0x0,0x6a,0x0,0x4a,0x0,0x7d,0x0,0x90,0x0,0x72,0x0, +0x7a,0x0,0x69,0x0,0x3c,0x0,0x6b,0x0,0xa7,0x0,0x69,0x0, +0x14,0x0,0xa,0x0,0x15,0x0,0x31,0x0,0x79,0x0,0xb3,0x0, +0xb6,0x0,0x94,0x0,0x6c,0x0,0x52,0x0,0x35,0x0,0x1,0x0, +0xeb,0xff,0x18,0x0,0x53,0x0,0x72,0x0,0x79,0x0,0x6c,0x0, +0x58,0x0,0x62,0x0,0x92,0x0,0xbd,0x0,0xb3,0x0,0x79,0x0, +0x3e,0x0,0x1f,0x0,0x12,0x0,0x11,0x0,0x1d,0x0,0x44,0x0, +0x8d,0x0,0xc1,0x0,0xb1,0x0,0x93,0x0,0x92,0x0,0x85,0x0, +0x6f,0x0,0x76,0x0,0x73,0x0,0x50,0x0,0x55,0x0,0x87,0x0, +0x8f,0x0,0x6b,0x0,0x5a,0x0,0x55,0x0,0x48,0x0,0x4f,0x0, +0x59,0x0,0x45,0x0,0x42,0x0,0x6c,0x0,0x85,0x0,0x76,0x0, +0x61,0x0,0x31,0x0,0xf2,0xff,0xf7,0xff,0x2b,0x0,0x30,0x0, +0x22,0x0,0x44,0x0,0x6b,0x0,0x75,0x0,0x7f,0x0,0x83,0x0, +0x6d,0x0,0x4b,0x0,0x22,0x0,0xa,0x0,0x14,0x0,0x1f,0x0, +0x21,0x0,0x3e,0x0,0x59,0x0,0x4b,0x0,0x50,0x0,0x7a,0x0, +0x81,0x0,0x6e,0x0,0x76,0x0,0x7e,0x0,0x6a,0x0,0x52,0x0, +0x31,0x0,0x0,0x0,0xe0,0xff,0xda,0xff,0xe7,0xff,0x17,0x0, +0x57,0x0,0x73,0x0,0x6b,0x0,0x5e,0x0,0x60,0x0,0x65,0x0, +0x4b,0x0,0x1f,0x0,0xc,0x0,0xf8,0xff,0xe6,0xff,0x13,0x0, +0x46,0x0,0x29,0x0,0x1e,0x0,0x5c,0x0,0x66,0x0,0x3d,0x0, +0x56,0x0,0x7d,0x0,0x65,0x0,0x56,0x0,0x46,0x0,0x0,0x0, +0xe6,0xff,0x1d,0x0,0x34,0x0,0x34,0x0,0x5a,0x0,0x69,0x0, +0x75,0x0,0xb0,0x0,0x8b,0x0,0xa,0x0,0xf,0x0,0x77,0x0, +0x98,0x0,0xa8,0x0,0x8d,0x0,0xfc,0xff,0xc7,0xff,0x2b,0x0, +0x35,0x0,0xff,0xff,0x10,0x0,0x7,0x0,0x8,0x0,0x6d,0x0, +0x75,0x0,0x18,0x0,0x4b,0x0,0xba,0x0,0xad,0x0,0x84,0x0, +0x67,0x0,0x17,0x0,0xf4,0xff,0x33,0x0,0x70,0x0,0x7a,0x0, +0x7b,0x0,0x81,0x0,0x78,0x0,0x4c,0x0,0xb,0x0,0xe0,0xff, +0xf8,0xff,0x47,0x0,0x6f,0x0,0x51,0x0,0x54,0x0,0x85,0x0, +0x9f,0x0,0xbf,0x0,0xd2,0x0,0x8e,0x0,0x57,0x0,0x82,0x0, +0x8f,0x0,0x4e,0x0,0x22,0x0,0x19,0x0,0x24,0x0,0x4e,0x0, +0x5f,0x0,0x2f,0x0,0x8,0x0,0x23,0x0,0x58,0x0,0x65,0x0, +0x4e,0x0,0x34,0x0,0x18,0x0,0x14,0x0,0x4c,0x0,0x8b,0x0, +0xa6,0x0,0xb4,0x0,0xc6,0x0,0x9,0x1,0x6b,0x1,0x61,0x1, +0x25,0x1,0x6c,0x1,0xb4,0x1,0x62,0x1,0xcd,0x0,0xec,0xff, +0x14,0xff,0x5d,0xff,0xd,0x0,0xb4,0xff,0x47,0xff,0xb9,0xff, +0xfd,0xff,0xbc,0xff,0x92,0xff,0x6f,0xff,0x75,0xff,0xd2,0xff, +0xe9,0xff,0xa6,0xff,0x8d,0xff,0x7e,0xff,0x85,0xff,0xee,0xff, +0x2e,0x0,0xf5,0xff,0xc6,0xff,0x9f,0xff,0x53,0xff,0x57,0xff, +0xbd,0xff,0xfe,0xff,0x15,0x0,0x44,0x0,0x48,0x0,0xc,0x0, +0x3a,0x0,0xc9,0x0,0xf8,0x0,0xf9,0x0,0xfd,0x0,0x98,0x0, +0x65,0x0,0xf6,0x0,0x7b,0x1,0x7c,0x1,0x1d,0x1,0x58,0x0, +0xb1,0xff,0x96,0xff,0xc4,0xff,0xef,0xff,0xea,0xff,0xce,0xff, +0xe3,0xff,0x26,0x0,0x90,0x0,0xd4,0x0,0xd1,0x0,0x25,0x1, +0x80,0x1,0x7,0x1,0x70,0x0,0x61,0x0,0x77,0x0,0xc1,0x0, +0xfe,0x0,0x9a,0x0,0x9,0x0,0xd0,0xff,0xe,0x0,0xc9,0x0, +0x20,0x1,0x8e,0x0,0x0,0x0,0x7,0x0,0x5b,0x0,0xa7,0x0, +0x94,0x0,0x75,0x0,0xbc,0x0,0xc5,0x0,0x51,0x0,0xe4,0xff, +0xa8,0xff,0x0,0x0,0xa4,0x0,0x70,0x0,0xe6,0xff,0xa5,0xff, +0x26,0xff,0x79,0xff,0x95,0x0,0x62,0x0,0xc6,0xff,0x15,0x0, +0xc,0x0,0xef,0xff,0x26,0x0,0xe4,0xff,0x8,0x0,0x56,0x0, +0xae,0xff,0x72,0xff,0xd3,0xff,0xf8,0xff,0x83,0x0,0x8e,0x0, +0xb7,0xff,0x91,0xff,0x79,0xff,0x3d,0xff,0x19,0x0,0xa9,0x0, +0x2c,0x0,0x11,0x0,0x41,0x0,0x57,0x0,0x79,0x0,0x7d,0x0, +0xa8,0x0,0xb3,0x0,0x39,0x0,0x10,0x0,0x5f,0x0,0x77,0x0, +0x3d,0x0,0x25,0x0,0x6b,0x0,0x2b,0x0,0x7a,0xff,0xd4,0xff, +0x6d,0x0,0x85,0x0,0x24,0x1,0x37,0x1,0x2b,0x0,0xe1,0xff, +0x42,0x0,0x90,0x0,0xf0,0x0,0xa6,0x0,0x24,0x0,0x30,0x0, +0x39,0x0,0x8e,0x0,0xda,0x0,0x3e,0x0,0xe0,0xff,0x7,0x0, +0xe0,0xff,0xce,0xff,0xd1,0xff,0xfd,0xff,0x93,0x0,0xa9,0x0, +0x47,0x0,0x5,0x0,0xad,0xff,0xdc,0xff,0x97,0x0,0xde,0x0, +0xa9,0x0,0x20,0x0,0xdb,0xff,0x4b,0x0,0x6e,0x0,0x4b,0x0, +0x52,0x0,0xeb,0xff,0xd3,0xff,0x33,0x0,0xd,0x0,0x1e,0x0, +0x8c,0x0,0x9c,0x0,0xbb,0x0,0x65,0x0,0x8c,0xff,0x83,0xff, +0x5,0x0,0x74,0x0,0x8f,0x0,0x21,0x0,0x12,0x0,0x37,0x0, +0x2e,0x0,0xd1,0x0,0xd8,0x0,0x8,0x0,0x5c,0x0,0x7f,0x0, +0xd6,0xff,0x17,0x0,0x2c,0x0,0x27,0x0,0xeb,0x0,0x9a,0x0, +0xf6,0xff,0x53,0x0,0x31,0x0,0x71,0x0,0x4a,0x1,0xcb,0x0, +0x35,0x0,0x2a,0x0,0xd0,0xff,0x4a,0x0,0xe0,0x0,0x85,0x0, +0x9b,0x0,0x9f,0x0,0x19,0x0,0x51,0x0,0x8d,0x0,0x58,0x0, +0x7f,0x0,0x80,0x0,0x3d,0x0,0x19,0x0,0xde,0xff,0xe7,0xff, +0x38,0x0,0x71,0x0,0x90,0x0,0x2e,0x0,0xb0,0xff,0xf7,0xff, +0x7e,0x0,0xc6,0x0,0xbb,0x0,0x3e,0x0,0x12,0x0,0x5d,0x0, +0x52,0x0,0x40,0x0,0x67,0x0,0x47,0x0,0x33,0x0,0x5c,0x0, +0x38,0x0,0xe,0x0,0x67,0x0,0xe3,0x0,0x0,0x1,0xa2,0x0, +0xf4,0xff,0x94,0xff,0xf1,0xff,0x79,0x0,0x91,0x0,0x5f,0x0, +0xa,0x0,0xce,0xff,0xb,0x0,0x68,0x0,0x58,0x0,0x1a,0x0, +0x10,0x0,0x2e,0x0,0x38,0x0,0x6,0x0,0xe9,0xff,0x2b,0x0, +0x5e,0x0,0x4b,0x0,0x2c,0x0,0xe9,0xff,0xa6,0xff,0xe5,0xff, +0x57,0x0,0x5f,0x0,0x10,0x0,0xa3,0xff,0x79,0xff,0xee,0xff, +0x4f,0x0,0x12,0x0,0xef,0xff,0xd,0x0,0xd1,0xff,0xa8,0xff, +0xf4,0xff,0x7,0x0,0xd6,0xff,0xf3,0xff,0x22,0x0,0xe7,0xff, +0x80,0xff,0x8f,0xff,0x4d,0x0,0xe2,0x0,0x8d,0x0,0x15,0x0, +0x2e,0x0,0x32,0x0,0x3,0x0,0x3d,0x0,0x7b,0x0,0x14,0x0, +0x97,0xff,0xc4,0xff,0x4c,0x0,0x69,0x0,0x24,0x0,0x3d,0x0, +0x9d,0x0,0x67,0x0,0xee,0xff,0x17,0x0,0x6d,0x0,0x5b,0x0, +0x6c,0x0,0xb8,0x0,0x86,0x0,0xeb,0xff,0xd5,0xff,0x6f,0x0, +0xc1,0x0,0x4a,0x0,0xea,0xff,0x11,0x0,0x5,0x0,0xe5,0xff, +0x6c,0x0,0xd8,0x0,0x63,0x0,0x6,0x0,0x48,0x0,0x57,0x0, +0x1,0x0,0xf4,0xff,0x6c,0x0,0xd3,0x0,0x73,0x0,0xb3,0xff, +0xb5,0xff,0x44,0x0,0x6c,0x0,0x76,0x0,0xb1,0x0,0x6f,0x0, +0xe6,0xff,0x11,0x0,0x99,0x0,0x87,0x0,0x17,0x0,0x13,0x0, +0x6a,0x0,0x6d,0x0,0x10,0x0,0xb,0x0,0x7e,0x0,0xb6,0x0, +0x92,0x0,0x6e,0x0,0x3b,0x0,0xfa,0xff,0x9,0x0,0x62,0x0, +0x86,0x0,0x2b,0x0,0xa8,0xff,0x9d,0xff,0xf7,0xff,0x14,0x0, +0xfb,0xff,0x13,0x0,0x22,0x0,0xee,0xff,0xd0,0xff,0xf3,0xff, +0x29,0x0,0x51,0x0,0x63,0x0,0x65,0x0,0x3f,0x0,0xde,0xff, +0xbb,0xff,0x1d,0x0,0x5d,0x0,0x29,0x0,0x9,0x0,0xff,0xff, +0xd0,0xff,0xe5,0xff,0x47,0x0,0x54,0x0,0x5,0x0,0xe4,0xff, +0x1a,0x0,0x5f,0x0,0x52,0x0,0xd,0x0,0x2b,0x0,0x8d,0x0, +0x71,0x0,0xc,0x0,0x11,0x0,0x34,0x0,0x8,0x0,0xfa,0xff, +0x23,0x0,0xde,0xff,0x3d,0xff,0x35,0xff,0xe5,0xff,0x4c,0x0, +0x6,0x0,0xcf,0xff,0xfc,0xff,0x21,0x0,0x26,0x0,0x47,0x0, +0x63,0x0,0x3f,0x0,0x9,0x0,0x3,0x0,0xb,0x0,0xde,0xff, +0xb7,0xff,0x4,0x0,0x68,0x0,0x3e,0x0,0xe0,0xff,0xf1,0xff, +0x2f,0x0,0x3f,0x0,0x4c,0x0,0x46,0x0,0xf2,0xff,0xa6,0xff, +0xe2,0xff,0x65,0x0,0x79,0x0,0xd,0x0,0xdb,0xff,0x1e,0x0, +0x2f,0x0,0xe3,0xff,0xd2,0xff,0x4,0x0,0xa,0x0,0x7,0x0, +0x1d,0x0,0xe3,0xff,0x79,0xff,0xa2,0xff,0x52,0x0,0x9f,0x0, +0x37,0x0,0xc3,0xff,0xd7,0xff,0x3b,0x0,0x65,0x0,0x45,0x0, +0x33,0x0,0x2d,0x0,0x2,0x0,0xff,0xff,0x50,0x0,0x6a,0x0, +0x23,0x0,0x26,0x0,0x77,0x0,0x54,0x0,0xdb,0xff,0xd7,0xff, +0x42,0x0,0x7e,0x0,0x68,0x0,0x39,0x0,0x1c,0x0,0x24,0x0, +0x42,0x0,0x62,0x0,0x70,0x0,0x45,0x0,0xf0,0xff,0xcf,0xff, +0x0,0x0,0x2e,0x0,0x2e,0x0,0x33,0x0,0x52,0x0,0x64,0x0, +0x58,0x0,0x3f,0x0,0x20,0x0,0x13,0x0,0x41,0x0,0x7b,0x0, +0x5f,0x0,0x4,0x0,0xef,0xff,0x49,0x0,0xa8,0x0,0x97,0x0, +0x30,0x0,0xe7,0xff,0xe6,0xff,0xd,0x0,0x48,0x0,0x61,0x0, +0x24,0x0,0xf0,0xff,0x25,0x0,0x62,0x0,0x48,0x0,0x12,0x0, +0x10,0x0,0x49,0x0,0x75,0x0,0x45,0x0,0x3,0x0,0x2a,0x0, +0x68,0x0,0x5a,0x0,0x43,0x0,0x1d,0x0,0xc0,0xff,0xb8,0xff, +0x33,0x0,0x72,0x0,0x3d,0x0,0x1d,0x0,0x33,0x0,0x35,0x0, +0x19,0x0,0xfe,0xff,0xee,0xff,0xe4,0xff,0xdc,0xff,0xdf,0xff, +0xdd,0xff,0xc6,0xff,0xca,0xff,0x5,0x0,0x38,0x0,0x28,0x0, +0xe3,0xff,0xb8,0xff,0xe6,0xff,0x38,0x0,0x59,0x0,0x45,0x0, +0xd,0x0,0xd5,0xff,0xfb,0xff,0x4e,0x0,0x3e,0x0,0x0,0x0, +0x4,0x0,0x6,0x0,0xe8,0xff,0xf3,0xff,0x10,0x0,0x11,0x0, +0xf,0x0,0xb,0x0,0x0,0x0,0xe6,0xff,0xb2,0xff,0xb9,0xff, +0x1f,0x0,0x48,0x0,0xb,0x0,0xf1,0xff,0xf2,0xff,0xda,0xff, +0xee,0xff,0x11,0x0,0xf9,0xff,0xe8,0xff,0xed,0xff,0xd2,0xff, +0xd6,0xff,0x7,0x0,0xe,0x0,0xfe,0xff,0x3,0x0,0xef,0xff, +0xce,0xff,0xcf,0xff,0xe3,0xff,0x1,0x0,0x1d,0x0,0xf,0x0, +0xeb,0xff,0xdb,0xff,0xef,0xff,0x27,0x0,0x3d,0x0,0xf9,0xff, +0xa7,0xff,0x94,0xff,0xb2,0xff,0xda,0xff,0xd1,0xff,0xa4,0xff, +0xc1,0xff,0xf7,0xff,0xdc,0xff,0xe0,0xff,0x27,0x0,0x21,0x0, +0x7,0x0,0x44,0x0,0x3e,0x0,0xd3,0xff,0xc0,0xff,0xd,0x0, +0x31,0x0,0x15,0x0,0xe5,0xff,0xdf,0xff,0xfe,0xff,0xed,0xff, +0xdf,0xff,0x1e,0x0,0x27,0x0,0xee,0xff,0x7,0x0,0x24,0x0, +0xdd,0xff,0xcf,0xff,0x20,0x0,0x23,0x0,0xd5,0xff,0xb7,0xff, +0xf5,0xff,0x51,0x0,0x60,0x0,0x30,0x0,0x2b,0x0,0x1a,0x0, +0xcb,0xff,0xcf,0xff,0x2d,0x0,0x37,0x0,0xb,0x0,0x1b,0x0, +0x24,0x0,0xf5,0xff,0xdf,0xff,0x14,0x0,0x4a,0x0,0x24,0x0, +0xec,0xff,0xa,0x0,0x10,0x0,0xca,0xff,0xe3,0xff,0x38,0x0, +0xe,0x0,0xd1,0xff,0xf8,0xff,0xfe,0xff,0xed,0xff,0x2b,0x0, +0x60,0x0,0x55,0x0,0x2f,0x0,0xe6,0xff,0xc1,0xff,0xe6,0xff, +0xe2,0xff,0xd1,0xff,0xff,0xff,0xf0,0xff,0x9f,0xff,0xb1,0xff, +0xe7,0xff,0xe5,0xff,0xff,0xff,0x16,0x0,0xc9,0xff,0x7d,0xff, +0x8c,0xff,0xc9,0xff,0xf3,0xff,0xd9,0xff,0xb3,0xff,0xce,0xff, +0xd2,0xff,0xac,0xff,0xdb,0xff,0x24,0x0,0x8,0x0,0xea,0xff, +0xfa,0xff,0xe3,0xff,0xc0,0xff,0xc6,0xff,0xe2,0xff,0x13,0x0, +0x2f,0x0,0xd,0x0,0xee,0xff,0xf6,0xff,0x12,0x0,0x45,0x0, +0x47,0x0,0xfc,0xff,0xd8,0xff,0xd3,0xff,0xac,0xff,0xc2,0xff, +0x4,0x0,0xf2,0xff,0xe2,0xff,0x14,0x0,0xd,0x0,0xe7,0xff, +0xfe,0xff,0x10,0x0,0x1b,0x0,0x22,0x0,0xd0,0xff,0x88,0xff, +0xb9,0xff,0xce,0xff,0xa7,0xff,0xbb,0xff,0xb8,0xff,0x8a,0xff, +0xc4,0xff,0x1a,0x0,0xf3,0xff,0xb7,0xff,0xc3,0xff,0xde,0xff, +0xdb,0xff,0xbe,0xff,0xb8,0xff,0xe1,0xff,0xee,0xff,0xe2,0xff, +0xfd,0xff,0xf0,0xff,0xac,0xff,0xb4,0xff,0xdf,0xff,0xbf,0xff, +0xa3,0xff,0xb8,0xff,0xb9,0xff,0xb2,0xff,0xbf,0xff,0xe0,0xff, +0x5,0x0,0xe4,0xff,0x9d,0xff,0xc2,0xff,0x9,0x0,0xea,0xff, +0xcc,0xff,0xdf,0xff,0xc5,0xff,0xa9,0xff,0xbb,0xff,0xbd,0xff, +0xb7,0xff,0xaf,0xff,0x9c,0xff,0xc5,0xff,0xf7,0xff,0xc7,0xff, +0xb8,0xff,0x6,0x0,0xfc,0xff,0xb0,0xff,0xa1,0xff,0x9d,0xff, +0xb6,0xff,0x16,0x0,0x1c,0x0,0xb9,0xff,0xb2,0xff,0xef,0xff, +0xf5,0xff,0xf0,0xff,0xfc,0xff,0x0,0x0,0x8,0x0,0xfb,0xff, +0xd8,0xff,0xc8,0xff,0xb3,0xff,0xa1,0xff,0xce,0xff,0xf3,0xff, +0xc1,0xff,0x83,0xff,0x81,0xff,0xb9,0xff,0xf7,0xff,0xf7,0xff, +0xdc,0xff,0xe7,0xff,0xd1,0xff,0xa4,0xff,0xc7,0xff,0xdd,0xff, +0x91,0xff,0x71,0xff,0xa2,0xff,0xbc,0xff,0xd4,0xff,0xfc,0xff, +0x8,0x0,0xb,0x0,0xfb,0xff,0xc6,0xff,0xb2,0xff,0xb0,0xff, +0x8b,0xff,0x9c,0xff,0xd6,0xff,0xb9,0xff,0x97,0xff,0xcb,0xff, +0xf4,0xff,0xf8,0xff,0xfc,0xff,0xca,0xff,0x86,0xff,0x71,0xff, +0x59,0xff,0x53,0xff,0x84,0xff,0x9a,0xff,0xad,0xff,0x0,0x0, +0x16,0x0,0xcc,0xff,0xc7,0xff,0xfd,0xff,0xf0,0xff,0xcd,0xff, +0xd7,0xff,0xda,0xff,0xb5,0xff,0xa1,0xff,0xd6,0xff,0x8,0x0, +0xc8,0xff,0x70,0xff,0x8e,0xff,0xdb,0xff,0xea,0xff,0xd0,0xff, +0xad,0xff,0xa4,0xff,0xc9,0xff,0xde,0xff,0xe3,0xff,0xfb,0xff, +0xe1,0xff,0xb0,0xff,0xd8,0xff,0xf9,0xff,0xb9,0xff,0xa1,0xff, +0xda,0xff,0xf6,0xff,0xf3,0xff,0xe1,0xff,0xba,0xff,0xc8,0xff, +0x11,0x0,0x29,0x0,0x6,0x0,0xda,0xff,0xb9,0xff,0xc0,0xff, +0xcf,0xff,0xb4,0xff,0xb3,0xff,0xe7,0xff,0xf5,0xff,0xda,0xff, +0xd3,0xff,0xd1,0xff,0xd5,0xff,0xf5,0xff,0x4,0x0,0xeb,0xff, +0xd2,0xff,0xc2,0xff,0xc5,0xff,0xe6,0xff,0xee,0xff,0xbf,0xff, +0x9a,0xff,0x9d,0xff,0xaa,0xff,0xc3,0xff,0xfc,0xff,0x1c,0x0, +0xeb,0xff,0xad,0xff,0xc4,0xff,0x1,0x0,0x5,0x0,0xfa,0xff, +0xf,0x0,0xc,0x0,0xe9,0xff,0xd7,0xff,0xc3,0xff,0xaf,0xff, +0xc7,0xff,0xf2,0xff,0x5,0x0,0xfe,0xff,0xcb,0xff,0xa3,0xff, +0xed,0xff,0x4b,0x0,0x33,0x0,0xfe,0xff,0x7,0x0,0x0,0x0, +0xe3,0xff,0xf1,0xff,0x3,0x0,0xf8,0xff,0xfd,0xff,0x8,0x0, +0xee,0xff,0xc9,0xff,0xd1,0xff,0x0,0x0,0xf,0x0,0xe0,0xff, +0xbc,0xff,0xd6,0xff,0xfa,0xff,0x6,0x0,0x20,0x0,0x36,0x0, +0x18,0x0,0xe9,0xff,0xeb,0xff,0x8,0x0,0xfb,0xff,0xd6,0xff, +0xd8,0xff,0xf5,0xff,0xf1,0xff,0xcd,0xff,0xc1,0xff,0xe5,0xff, +0x7,0x0,0xff,0xff,0xf8,0xff,0x0,0x0,0xe3,0xff,0xbd,0xff, +0xdf,0xff,0x12,0x0,0xfc,0xff,0xd4,0xff,0xd9,0xff,0xe1,0xff, +0xe3,0xff,0x6,0x0,0x2f,0x0,0x36,0x0,0x2d,0x0,0x19,0x0, +0xf2,0xff,0xdf,0xff,0xdd,0xff,0xc9,0xff,0xbf,0xff,0xcd,0xff, +0xc0,0xff,0xb9,0xff,0xf8,0xff,0x21,0x0,0xf3,0xff,0xdc,0xff, +0xb,0x0,0x16,0x0,0xef,0xff,0xdd,0xff,0xe2,0xff,0xdf,0xff, +0xd6,0xff,0xc9,0xff,0xc0,0xff,0xc3,0xff,0xc9,0xff,0xd2,0xff, +0xe5,0xff,0xeb,0xff,0xdc,0xff,0xd8,0xff,0xd9,0xff,0xc4,0xff, +0xbc,0xff,0xdc,0xff,0xf1,0xff,0xe2,0xff,0xde,0xff,0xee,0xff, +0xfb,0xff,0xfb,0xff,0xe5,0xff,0xce,0xff,0xcd,0xff,0xce,0xff, +0xd7,0xff,0xfb,0xff,0xfd,0xff,0xd7,0xff,0xdc,0xff,0xef,0xff, +0xc8,0xff,0xa9,0xff,0xbc,0xff,0xc1,0xff,0xae,0xff,0xa3,0xff, +0xa8,0xff,0xc6,0xff,0xed,0xff,0xf4,0xff,0xd0,0xff,0xac,0xff, +0xc7,0xff,0x2,0x0,0xec,0xff,0xaa,0xff,0xac,0xff,0xce,0xff, +0xe5,0xff,0xfc,0xff,0xe0,0xff,0xb8,0xff,0xdb,0xff,0xec,0xff, +0xc2,0xff,0xc0,0xff,0xc6,0xff,0xbf,0xff,0xa,0x0,0x46,0x0, +0x11,0x0,0xe4,0xff,0xe1,0xff,0xcc,0xff,0xd4,0xff,0xe4,0xff, +0xc8,0xff,0xc3,0xff,0xdd,0xff,0xe3,0xff,0xe8,0xff,0xd6,0xff, +0xbc,0xff,0xdc,0xff,0xf0,0xff,0xc5,0xff,0xbc,0xff,0xd4,0xff, +0xd0,0xff,0xdc,0xff,0xee,0xff,0xe4,0xff,0xe2,0xff,0xe2,0xff, +0xe6,0xff,0x10,0x0,0x19,0x0,0xdf,0xff,0xbb,0xff,0xbc,0xff, +0xcc,0xff,0xeb,0xff,0xd9,0xff,0xab,0xff,0xc2,0xff,0xe6,0xff, +0xd6,0xff,0xce,0xff,0xc4,0xff,0xab,0xff,0xc4,0xff,0xea,0xff, +0xdd,0xff,0xcf,0xff,0xce,0xff,0xc7,0xff,0xe4,0xff,0xb,0x0, +0xed,0xff,0xb3,0xff,0xb2,0xff,0xc7,0xff,0xc0,0xff,0xbe,0xff, +0xd0,0xff,0xc3,0xff,0xb2,0xff,0xd4,0xff,0xe6,0xff,0xc0,0xff, +0xb0,0xff,0xc1,0xff,0xcd,0xff,0xd9,0xff,0xca,0xff,0xaa,0xff, +0xbe,0xff,0xe0,0xff,0xd6,0xff,0xd3,0xff,0xd9,0xff,0xcb,0xff, +0xd5,0xff,0xed,0xff,0xdc,0xff,0xb4,0xff,0x9c,0xff,0xb4,0xff, +0xf1,0xff,0xf6,0xff,0xcb,0xff,0xd5,0xff,0xfd,0xff,0x13,0x0, +0x1d,0x0,0xf9,0xff,0xd4,0xff,0xfd,0xff,0x31,0x0,0x31,0x0, +0x13,0x0,0xcf,0xff,0xb2,0xff,0xea,0xff,0xf2,0xff,0xc2,0xff, +0xda,0xff,0xf5,0xff,0xe6,0xff,0x0,0x0,0x3,0x0,0xd5,0xff, +0xdf,0xff,0xf4,0xff,0xf1,0xff,0xb,0x0,0xe9,0xff,0x8d,0xff, +0xaa,0xff,0xed,0xff,0xc9,0xff,0xc1,0xff,0xf9,0xff,0xf3,0xff, +0xd8,0xff,0xd9,0xff,0xc2,0xff,0xa4,0xff,0x98,0xff,0x96,0xff, +0xb6,0xff,0xd9,0xff,0xd2,0xff,0xce,0xff,0xe0,0xff,0xeb,0xff, +0xf4,0xff,0xef,0xff,0xd8,0xff,0xd7,0xff,0xe9,0xff,0xf7,0xff, +0xff,0xff,0xe0,0xff,0xba,0xff,0xd9,0xff,0xc,0x0,0xc,0x0, +0xfe,0xff,0xe4,0xff,0xbd,0xff,0xd3,0xff,0x5,0x0,0xea,0xff, +0xbe,0xff,0xdd,0xff,0x11,0x0,0x24,0x0,0x15,0x0,0xe8,0xff, +0xc5,0xff,0xca,0xff,0xce,0xff,0xce,0xff,0xdb,0xff,0xcd,0xff, +0xc0,0xff,0xf5,0xff,0x18,0x0,0xf9,0xff,0xf7,0xff,0xd,0x0, +0x1,0x0,0x3,0x0,0x4,0x0,0xcf,0xff,0xc6,0xff,0xfb,0xff, +0xf0,0xff,0xd3,0xff,0xf9,0xff,0x11,0x0,0x0,0x0,0xf4,0xff, +0xdf,0xff,0xd9,0xff,0xf3,0xff,0xf1,0xff,0xf5,0xff,0x24,0x0, +0x16,0x0,0xd9,0xff,0xde,0xff,0x1,0x0,0x0,0x0,0xf9,0xff, +0xfd,0xff,0xb,0x0,0xd,0x0,0xec,0xff,0xde,0xff,0xe2,0xff, +0xbd,0xff,0xc6,0xff,0xd,0x0,0xf7,0xff,0xb7,0xff,0xd2,0xff, +0xde,0xff,0xb1,0xff,0xba,0xff,0xdc,0xff,0xd7,0xff,0xd1,0xff, +0xce,0xff,0xe5,0xff,0x3,0x0,0xdc,0xff,0xc6,0xff,0x2,0x0, +0xf2,0xff,0x9f,0xff,0xb4,0xff,0xde,0xff,0xb5,0xff,0x9f,0xff, +0xb8,0xff,0xd4,0xff,0xe9,0xff,0xda,0xff,0xd8,0xff,0x9,0x0, +0xfb,0xff,0xc1,0xff,0xe9,0xff,0x13,0x0,0xdd,0xff,0xcb,0xff, +0xf2,0xff,0xdf,0xff,0xae,0xff,0xb4,0xff,0xe1,0xff,0xf1,0xff, +0xd0,0xff,0xcb,0xff,0x4,0x0,0x12,0x0,0xd6,0xff,0xbb,0xff, +0xde,0xff,0xc,0x0,0x25,0x0,0x18,0x0,0xf8,0xff,0xf1,0xff, +0xeb,0xff,0xd8,0xff,0xe0,0xff,0xf2,0xff,0xe7,0xff,0xe2,0xff, +0x7,0x0,0x17,0x0,0xef,0xff,0xd7,0xff,0xdb,0xff,0xba,0xff, +0x97,0xff,0xa9,0xff,0xc3,0xff,0xcf,0xff,0xdc,0xff,0xdc,0xff, +0xe3,0xff,0xfa,0xff,0xfb,0xff,0xf6,0xff,0xe9,0xff,0xb6,0xff, +0xb5,0xff,0x0,0x0,0x10,0x0,0xe6,0xff,0xeb,0xff,0x12,0x0, +0x29,0x0,0xd,0x0,0xc6,0xff,0xc1,0xff,0xd8,0xff,0xa0,0xff, +0xa2,0xff,0x8,0x0,0x5,0x0,0xca,0xff,0xe4,0xff,0xf2,0xff, +0xd1,0xff,0xc0,0xff,0xad,0xff,0xc0,0xff,0xe2,0xff,0xbc,0xff, +0xb8,0xff,0xdc,0xff,0xa5,0xff,0x94,0xff,0xed,0xff,0xf7,0xff, +0xe2,0xff,0x2,0x0,0xe7,0xff,0xcf,0xff,0xe7,0xff,0xb6,0xff, +0x9c,0xff,0xdb,0xff,0xce,0xff,0xb9,0xff,0xe7,0xff,0xc3,0xff, +0x96,0xff,0xce,0xff,0xe2,0xff,0xcc,0xff,0xd4,0xff,0xcb,0xff, +0xe5,0xff,0x1c,0x0,0xff,0xff,0xe4,0xff,0xe9,0xff,0xb0,0xff, +0xae,0xff,0xf9,0xff,0xf5,0xff,0xe2,0xff,0xf8,0xff,0xe5,0xff, +0xed,0xff,0x6,0x0,0xc7,0xff,0xa8,0xff,0xc4,0xff,0xb2,0xff, +0xd7,0xff,0x24,0x0,0xfe,0xff,0xd9,0xff,0xc,0x0,0x1d,0x0, +0x8,0x0,0xe4,0xff,0xb7,0xff,0xdc,0xff,0x2,0x0,0xd2,0xff, +0xd9,0xff,0xfc,0xff,0xc2,0xff,0xc3,0xff,0x1e,0x0,0x1b,0x0, +0xda,0xff,0xcb,0xff,0xd7,0xff,0xdb,0xff,0xbf,0xff,0xb1,0xff, +0xe7,0xff,0xee,0xff,0xb0,0xff,0xbb,0xff,0xda,0xff,0xb4,0xff, +0xa6,0xff,0xba,0xff,0xb5,0xff,0xa5,0xff,0x96,0xff,0xb2,0xff, +0xf7,0xff,0xed,0xff,0xb9,0xff,0xd3,0xff,0xd4,0xff,0x9c,0xff, +0xb3,0xff,0xe3,0xff,0xc4,0xff,0x9f,0xff,0xa8,0xff,0xc6,0xff, +0xd2,0xff,0xba,0xff,0xc0,0xff,0xe8,0xff,0xd8,0xff,0xc2,0xff, +0xeb,0xff,0xf5,0xff,0xdf,0xff,0xf6,0xff,0x10,0x0,0xfe,0xff, +0xdb,0xff,0xbd,0xff,0xc5,0xff,0xd7,0xff,0xc0,0xff,0xb2,0xff, +0xbc,0xff,0xb0,0xff,0xb5,0xff,0xd4,0xff,0xd3,0xff,0xc6,0xff, +0xca,0xff,0xcd,0xff,0xe5,0xff,0xf4,0xff,0xd9,0xff,0xd5,0xff, +0xf1,0xff,0xf0,0xff,0xe4,0xff,0xdf,0xff,0xd4,0xff,0xda,0xff, +0xeb,0xff,0xf0,0xff,0xef,0xff,0xd9,0xff,0xc7,0xff,0xea,0xff, +0x9,0x0,0xeb,0xff,0xc5,0xff,0xbe,0xff,0xcd,0xff,0xde,0xff, +0xca,0xff,0xb5,0xff,0xcd,0xff,0xda,0xff,0xcf,0xff,0xe6,0xff, +0xf7,0xff,0xde,0xff,0xd7,0xff,0xe8,0xff,0xe3,0xff,0xd2,0xff, +0xc1,0xff,0xba,0xff,0xcc,0xff,0xe9,0xff,0xff,0xff,0xfc,0xff, +0xe0,0xff,0xd8,0xff,0xe8,0xff,0xd5,0xff,0xb1,0xff,0xbe,0xff, +0xdd,0xff,0xd6,0xff,0xd1,0xff,0xf5,0xff,0x8,0x0,0xda,0xff, +0xb9,0xff,0xed,0xff,0x16,0x0,0xdf,0xff,0xaf,0xff,0xd8,0xff, +0xf8,0xff,0xd3,0xff,0xc3,0xff,0xeb,0xff,0xf8,0xff,0xd3,0xff, +0xbd,0xff,0xca,0xff,0xcb,0xff,0xaa,0xff,0x9b,0xff,0xc9,0xff, +0xf7,0xff,0xf1,0xff,0xfd,0xff,0x21,0x0,0xfa,0xff,0xb8,0xff, +0xc4,0xff,0xda,0xff,0xd0,0xff,0xe4,0xff,0x0,0x0,0xfb,0xff, +0xf2,0xff,0xe0,0xff,0xd0,0xff,0xd1,0xff,0xbc,0xff,0xb4,0xff, +0xdc,0xff,0xdc,0xff,0xb9,0xff,0xd3,0xff,0xed,0xff,0xd8,0xff, +0xd6,0xff,0xe1,0xff,0xd6,0xff,0xc1,0xff,0xaf,0xff,0xcc,0xff, +0xfc,0xff,0xd4,0xff,0x9f,0xff,0xc8,0xff,0xf2,0xff,0xed,0xff, +0xf0,0xff,0xf2,0xff,0xe7,0xff,0xc8,0xff,0x9b,0xff,0xb9,0xff, +0xe6,0xff,0xab,0xff,0xad,0xff,0x2f,0x0,0x49,0x0,0x1,0x0, +0xe,0x0,0x37,0x0,0x2c,0x0,0x2,0x0,0xc9,0xff,0xc9,0xff, +0xe9,0xff,0xbd,0xff,0xb3,0xff,0x6,0x0,0x9,0x0,0xd9,0xff, +0x1,0x0,0x2a,0x0,0x19,0x0,0xff,0xff,0xe1,0xff,0xd9,0xff, +0xec,0xff,0xe2,0xff,0xdd,0xff,0xe3,0xff,0xc9,0xff,0xd6,0xff, +0xa,0x0,0xfe,0xff,0xe6,0xff,0xfb,0xff,0xf7,0xff,0xeb,0xff, +0x4,0x0,0x1d,0x0,0x19,0x0,0xef,0xff,0xdd,0xff,0x1e,0x0, +0x28,0x0,0xc4,0xff,0xbd,0xff,0x13,0x0,0x3,0x0,0xc1,0xff, +0xc5,0xff,0xde,0xff,0xe2,0xff,0xd0,0xff,0xc7,0xff,0xfc,0xff, +0x19,0x0,0xdc,0xff,0xd6,0xff,0x28,0x0,0x36,0x0,0x6,0x0, +0x0,0x0,0x14,0x0,0x1,0x0,0xc7,0xff,0xad,0xff,0xd4,0xff, +0xed,0xff,0xd7,0xff,0xdc,0xff,0x6,0x0,0x12,0x0,0xff,0xff, +0x1,0x0,0x20,0x0,0x27,0x0,0xff,0xff,0xea,0xff,0xfb,0xff, +0xf2,0xff,0xd3,0xff,0xc9,0xff,0xcd,0xff,0xde,0xff,0xf6,0xff, +0xf6,0xff,0xee,0xff,0xf4,0xff,0xf7,0xff,0xfd,0xff,0x0,0x0, +0xf0,0xff,0xfe,0xff,0x29,0x0,0x22,0x0,0xf7,0xff,0xf4,0xff, +0xf6,0xff,0xd3,0xff,0xcb,0xff,0x0,0x0,0x14,0x0,0xe1,0xff, +0xd6,0xff,0x12,0x0,0x18,0x0,0xe2,0xff,0xe6,0xff,0x1c,0x0, +0x26,0x0,0x9,0x0,0xd,0x0,0x38,0x0,0x34,0x0,0xe9,0xff, +0xd7,0xff,0x11,0x0,0x3,0x0,0xc2,0xff,0xd6,0xff,0x14,0x0, +0x1a,0x0,0x0,0x0,0xf3,0xff,0xf9,0xff,0xfa,0xff,0xdc,0xff, +0xca,0xff,0xdd,0xff,0xd6,0xff,0xbd,0xff,0xca,0xff,0xde,0xff, +0xd3,0xff,0xc6,0xff,0xc1,0xff,0xcb,0xff,0xf2,0xff,0xe,0x0, +0x1,0x0,0xf3,0xff,0x7,0x0,0x10,0x0,0xdb,0xff,0xaf,0xff, +0xd5,0xff,0xf8,0xff,0xd3,0xff,0xce,0xff,0x12,0x0,0x34,0x0, +0x11,0x0,0xf7,0xff,0x11,0x0,0x2b,0x0,0x4,0x0,0xd0,0xff, +0xe6,0xff,0xc,0x0,0xeb,0xff,0xc9,0xff,0xee,0xff,0x12,0x0, +0xff,0xff,0xed,0xff,0x6,0x0,0x1e,0x0,0xa,0x0,0xf1,0xff, +0x2,0x0,0x16,0x0,0xf8,0xff,0xce,0xff,0xd5,0xff,0xe9,0xff, +0xe0,0xff,0xe1,0xff,0x5,0x0,0x14,0x0,0x4,0x0,0xfd,0xff, +0xf4,0xff,0xe8,0xff,0xf1,0xff,0xf4,0xff,0xe2,0xff,0xeb,0xff, +0xf,0x0,0x25,0x0,0x1b,0x0,0xfa,0xff,0xee,0xff,0xf,0x0, +0x18,0x0,0xf5,0xff,0xf3,0xff,0x7,0x0,0xf2,0xff,0xd8,0xff, +0xef,0xff,0x10,0x0,0xf5,0xff,0xc2,0xff,0xde,0xff,0x24,0x0, +0x1a,0x0,0xf4,0xff,0x18,0x0,0x38,0x0,0x14,0x0,0x1,0x0, +0x24,0x0,0x33,0x0,0x5,0x0,0xdd,0xff,0x4,0x0,0x2b,0x0, +0xf2,0xff,0xc2,0xff,0xf2,0xff,0x14,0x0,0xfa,0xff,0xf0,0xff, +0x1,0x0,0xc,0x0,0x4,0x0,0xf0,0xff,0xf9,0xff,0x6,0x0, +0xdd,0xff,0xcc,0xff,0x5,0x0,0x21,0x0,0x7,0x0,0x9,0x0, +0x21,0x0,0x20,0x0,0x9,0x0,0xf2,0xff,0xef,0xff,0xf4,0xff, +0xe9,0xff,0xeb,0xff,0xfe,0xff,0xfe,0xff,0xf9,0xff,0x1,0x0, +0xfe,0xff,0xf8,0xff,0xf6,0xff,0xe3,0xff,0xd5,0xff,0xe5,0xff, +0xfe,0xff,0xe,0x0,0x6,0x0,0xf0,0xff,0xfd,0xff,0x1b,0x0, +0x2,0x0,0xcd,0xff,0xc7,0xff,0xdd,0xff,0xda,0xff,0xce,0xff, +0xe8,0xff,0xa,0x0,0xf6,0xff,0xd6,0xff,0xf6,0xff,0x1a,0x0, +0xf3,0xff,0xcf,0xff,0xf6,0xff,0x18,0x0,0xf4,0xff,0xd6,0xff, +0xf7,0xff,0xf,0x0,0xf1,0xff,0xe2,0xff,0x2,0x0,0x12,0x0, +0xf2,0xff,0xe0,0xff,0xfc,0xff,0x14,0x0,0x2,0x0,0xec,0xff, +0xf3,0xff,0xf4,0xff,0xe6,0xff,0xee,0xff,0x6,0x0,0xf,0x0, +0x10,0x0,0x17,0x0,0x17,0x0,0x8,0x0,0xfb,0xff,0x6,0x0, +0xe,0x0,0xf7,0xff,0xf2,0xff,0x17,0x0,0x27,0x0,0x20,0x0, +0x2b,0x0,0x29,0x0,0x13,0x0,0x15,0x0,0x1e,0x0,0xe,0x0, +0xfc,0xff,0xf0,0xff,0xee,0xff,0xfa,0xff,0x1,0x0,0x6,0x0, +0x1d,0x0,0x2e,0x0,0x34,0x0,0x3d,0x0,0x34,0x0,0x20,0x0, +0x17,0x0,0x3,0x0,0xee,0xff,0xf6,0xff,0xfd,0xff,0xf4,0xff, +0xfb,0xff,0xa,0x0,0xc,0x0,0x3,0x0,0xf8,0xff,0xfd,0xff, +0x8,0x0,0x4,0x0,0x6,0x0,0x14,0x0,0xe,0x0,0xd,0x0, +0x2b,0x0,0x3a,0x0,0x22,0x0,0x0,0x0,0xf7,0xff,0x12,0x0, +0x1f,0x0,0xff,0xff,0xff,0xff,0x2a,0x0,0x1a,0x0,0xeb,0xff, +0xfd,0xff,0x19,0x0,0xff,0xff,0xeb,0xff,0x1,0x0,0x18,0x0, +0x14,0x0,0x5,0x0,0xf,0x0,0x2c,0x0,0x24,0x0,0x8,0x0, +0x12,0x0,0x23,0x0,0x10,0x0,0xff,0xff,0xc,0x0,0x19,0x0, +0x11,0x0,0x4,0x0,0xb,0x0,0x1f,0x0,0x1b,0x0,0x0,0x0, +0xfc,0xff,0x12,0x0,0x18,0x0,0xe,0x0,0x12,0x0,0x1f,0x0, +0x1e,0x0,0x1a,0x0,0x23,0x0,0x26,0x0,0x1a,0x0,0x18,0x0, +0x1a,0x0,0x3,0x0,0xef,0xff,0xfc,0xff,0x9,0x0,0x9,0x0, +0x14,0x0,0x1c,0x0,0x1a,0x0,0x1c,0x0,0xf,0x0,0x2,0x0, +0x14,0x0,0x20,0x0,0x12,0x0,0x18,0x0,0x26,0x0,0x18,0x0, +0x16,0x0,0x28,0x0,0x1d,0x0,0x9,0x0,0xe,0x0,0x1d,0x0, +0x23,0x0,0x1a,0x0,0x7,0x0,0x5,0x0,0xa,0x0,0x6,0x0, +0x13,0x0,0x2c,0x0,0x25,0x0,0x10,0x0,0x16,0x0,0x21,0x0, +0x16,0x0,0x9,0x0,0x4,0x0,0x1,0x0,0x6,0x0,0x19,0x0, +0x29,0x0,0x2b,0x0,0x29,0x0,0x29,0x0,0x2a,0x0,0x2c,0x0, +0x1d,0x0,0xf9,0xff,0xfe,0xff,0x32,0x0,0x45,0x0,0x2f,0x0, +0x28,0x0,0x2d,0x0,0x30,0x0,0x3e,0x0,0x42,0x0,0x36,0x0, +0x35,0x0,0x2d,0x0,0x15,0x0,0x19,0x0,0x34,0x0,0x35,0x0, +0x2d,0x0,0x39,0x0,0x4a,0x0,0x49,0x0,0x38,0x0,0x2e,0x0, +0x3c,0x0,0x45,0x0,0x29,0x0,0xf,0x0,0x1c,0x0,0x28,0x0, +0x1b,0x0,0x1e,0x0,0x3b,0x0,0x43,0x0,0x32,0x0,0x34,0x0, +0x45,0x0,0x3d,0x0,0x17,0x0,0xfe,0xff,0x1b,0x0,0x46,0x0, +0x2e,0x0,0x0,0x0,0x13,0x0,0x36,0x0,0x2e,0x0,0x36,0x0, +0x4f,0x0,0x3c,0x0,0x1c,0x0,0x22,0x0,0x26,0x0,0x11,0x0, +0x9,0x0,0x19,0x0,0x26,0x0,0x28,0x0,0x26,0x0,0x25,0x0, +0x1c,0x0,0x8,0x0,0x7,0x0,0x21,0x0,0x2f,0x0,0x29,0x0, +0x3a,0x0,0x5e,0x0,0x5b,0x0,0x37,0x0,0x30,0x0,0x3c,0x0, +0x33,0x0,0x34,0x0,0x53,0x0,0x5d,0x0,0x3e,0x0,0x27,0x0, +0x32,0x0,0x43,0x0,0x3a,0x0,0x37,0x0,0x65,0x0,0x95,0x0, +0x82,0x0,0x61,0x0,0x63,0x0,0x4c,0x0,0x11,0x0,0xf9,0xff, +0xef,0xff,0xc9,0xff,0xb7,0xff,0xc8,0xff,0xc2,0xff,0x99,0xff, +0x77,0xff,0x77,0xff,0xa6,0xff,0xf2,0xff,0x3b,0x0,0x83,0x0, +0xbc,0x0,0xb3,0x0,0x6d,0x0,0x23,0x0,0xe2,0xff,0xac,0xff, +0xa7,0xff,0xde,0xff,0x27,0x0,0x57,0x0,0x5d,0x0,0x3f,0x0, +0xe,0x0,0xdc,0xff,0xb4,0xff,0x9e,0xff,0xa4,0xff,0xcf,0xff, +0x16,0x0,0x5c,0x0,0x8c,0x0,0xab,0x0,0xc3,0x0,0xc7,0x0, +0xa5,0x0,0x74,0x0,0x52,0x0,0x36,0x0,0x2d,0x0,0x4d,0x0, +0x70,0x0,0x6d,0x0,0x5c,0x0,0x49,0x0,0x2c,0x0,0x1c,0x0, +0x18,0x0,0x24,0x0,0x5c,0x0,0x92,0x0,0x80,0x0,0x63,0x0, +0x6d,0x0,0x62,0x0,0x37,0x0,0x26,0x0,0x30,0x0,0x31,0x0, +0x26,0x0,0x24,0x0,0x3c,0x0,0x56,0x0,0x4e,0x0,0x3b,0x0, +0x36,0x0,0x28,0x0,0x11,0x0,0x9,0x0,0x15,0x0,0x2c,0x0, +0x3b,0x0,0x3f,0x0,0x47,0x0,0x4e,0x0,0x4c,0x0,0x50,0x0, +0x53,0x0,0x42,0x0,0x2e,0x0,0x23,0x0,0x19,0x0,0x5,0x0, +0xde,0xff,0xba,0xff,0xb8,0xff,0xcb,0xff,0xee,0xff,0x26,0x0, +0x4a,0x0,0x4f,0x0,0x5f,0x0,0x67,0x0,0x42,0x0,0x1e,0x0, +0x19,0x0,0x1a,0x0,0x1b,0x0,0x1b,0x0,0x16,0x0,0x24,0x0, +0x45,0x0,0x52,0x0,0x51,0x0,0x55,0x0,0x57,0x0,0x46,0x0, +0x28,0x0,0x14,0x0,0x13,0x0,0x12,0x0,0x1b,0x0,0x3e,0x0, +0x5d,0x0,0x54,0x0,0x39,0x0,0x29,0x0,0x2d,0x0,0x35,0x0, +0x31,0x0,0x28,0x0,0x27,0x0,0x2d,0x0,0x33,0x0,0x38,0x0, +0x32,0x0,0x23,0x0,0x22,0x0,0x3e,0x0,0x5b,0x0,0x52,0x0, +0x2e,0x0,0x2c,0x0,0x48,0x0,0x4a,0x0,0x3b,0x0,0x3f,0x0, +0x3f,0x0,0x2c,0x0,0x2d,0x0,0x3b,0x0,0x23,0x0,0xff,0xff, +0xb,0x0,0x27,0x0,0x11,0x0,0xee,0xff,0x4,0x0,0x32,0x0, +0x32,0x0,0x19,0x0,0x14,0x0,0x1a,0x0,0x1f,0x0,0x38,0x0, +0x5f,0x0,0x62,0x0,0x44,0x0,0x3d,0x0,0x59,0x0,0x6b,0x0, +0x5a,0x0,0x41,0x0,0x38,0x0,0x3a,0x0,0x39,0x0,0x38,0x0, +0x3a,0x0,0x3a,0x0,0x38,0x0,0x3d,0x0,0x3c,0x0,0x2e,0x0, +0x24,0x0,0x31,0x0,0x45,0x0,0x3b,0x0,0x14,0x0,0xfa,0xff, +0x2,0x0,0x18,0x0,0x2c,0x0,0x3b,0x0,0x36,0x0,0x23,0x0, +0x24,0x0,0x37,0x0,0x36,0x0,0x23,0x0,0x29,0x0,0x43,0x0, +0x45,0x0,0x39,0x0,0x40,0x0,0x42,0x0,0x21,0x0,0x6,0x0, +0xf,0x0,0x19,0x0,0xb,0x0,0xc,0x0,0x28,0x0,0x34,0x0, +0x22,0x0,0x20,0x0,0x3c,0x0,0x4b,0x0,0x39,0x0,0x2b,0x0, +0x36,0x0,0x3d,0x0,0x34,0x0,0x37,0x0,0x55,0x0,0x68,0x0, +0x5d,0x0,0x56,0x0,0x67,0x0,0x67,0x0,0x4b,0x0,0x3e,0x0, +0x4c,0x0,0x52,0x0,0x4f,0x0,0x5c,0x0,0x6a,0x0,0x5c,0x0, +0x49,0x0,0x4d,0x0,0x53,0x0,0x50,0x0,0x59,0x0,0x64,0x0, +0x51,0x0,0x3c,0x0,0x47,0x0,0x50,0x0,0x42,0x0,0x47,0x0, +0x5c,0x0,0x3e,0x0,0x3,0x0,0x3,0x0,0x2d,0x0,0x2f,0x0, +0x1f,0x0,0x3a,0x0,0x53,0x0,0x3a,0x0,0x29,0x0,0x3d,0x0, +0x31,0x0,0xf8,0xff,0xe8,0xff,0xf,0x0,0x22,0x0,0x11,0x0, +0x13,0x0,0x2c,0x0,0x2f,0x0,0x1c,0x0,0x17,0x0,0x28,0x0, +0x39,0x0,0x42,0x0,0x4d,0x0,0x53,0x0,0x3f,0x0,0x1e,0x0, +0x1f,0x0,0x3b,0x0,0x3f,0x0,0x23,0x0,0x1d,0x0,0x35,0x0, +0x44,0x0,0x49,0x0,0x55,0x0,0x52,0x0,0x3a,0x0,0x39,0x0, +0x51,0x0,0x50,0x0,0x35,0x0,0x34,0x0,0x4c,0x0,0x54,0x0, +0x47,0x0,0x3a,0x0,0x33,0x0,0x38,0x0,0x4a,0x0,0x52,0x0, +0x42,0x0,0x2e,0x0,0x2c,0x0,0x3d,0x0,0x4d,0x0,0x44,0x0, +0x25,0x0,0x19,0x0,0x32,0x0,0x41,0x0,0x2d,0x0,0x1f,0x0, +0x25,0x0,0x1f,0x0,0x11,0x0,0x1d,0x0,0x2e,0x0,0x22,0x0, +0x18,0x0,0x2e,0x0,0x3e,0x0,0x28,0x0,0x13,0x0,0x1a,0x0, +0x25,0x0,0x1f,0x0,0x16,0x0,0x13,0x0,0x12,0x0,0x16,0x0, +0x24,0x0,0x2c,0x0,0x1c,0x0,0xa,0x0,0x15,0x0,0x2e,0x0, +0x2f,0x0,0x1c,0x0,0x14,0x0,0x19,0x0,0x1d,0x0,0x24,0x0, +0x27,0x0,0x1a,0x0,0x10,0x0,0x25,0x0,0x3b,0x0,0x2b,0x0, +0x16,0x0,0x22,0x0,0x34,0x0,0x32,0x0,0x30,0x0,0x34,0x0, +0x29,0x0,0x1c,0x0,0x23,0x0,0x2b,0x0,0x27,0x0,0x2b,0x0, +0x35,0x0,0x2a,0x0,0x1c,0x0,0x22,0x0,0x27,0x0,0x1e,0x0, +0x20,0x0,0x30,0x0,0x30,0x0,0x25,0x0,0x29,0x0,0x33,0x0, +0x2e,0x0,0x21,0x0,0x1c,0x0,0x1f,0x0,0x28,0x0,0x32,0x0, +0x35,0x0,0x33,0x0,0x2c,0x0,0x20,0x0,0x1d,0x0,0x2d,0x0, +0x39,0x0,0x2c,0x0,0x22,0x0,0x32,0x0,0x3a,0x0,0x29,0x0, +0x23,0x0,0x35,0x0,0x39,0x0,0x2b,0x0,0x2b,0x0,0x34,0x0, +0x2e,0x0,0x25,0x0,0x29,0x0,0x24,0x0,0x12,0x0,0x13,0x0, +0x24,0x0,0x25,0x0,0x1c,0x0,0x23,0x0,0x2d,0x0,0x29,0x0, +0x26,0x0,0x30,0x0,0x2e,0x0,0x19,0x0,0xd,0x0,0x1a,0x0, +0x30,0x0,0x39,0x0,0x30,0x0,0x29,0x0,0x2e,0x0,0x35,0x0, +0x35,0x0,0x35,0x0,0x34,0x0,0x28,0x0,0x1f,0x0,0x22,0x0, +0x1d,0x0,0x9,0x0,0x2,0x0,0x10,0x0,0x1c,0x0,0x1f,0x0, +0x24,0x0,0x2d,0x0,0x38,0x0,0x47,0x0,0x4a,0x0,0x39,0x0, +0x2f,0x0,0x36,0x0,0x36,0x0,0x2a,0x0,0x23,0x0,0x1c,0x0, +0x14,0x0,0x23,0x0,0x39,0x0,0x32,0x0,0x2a,0x0,0x3b,0x0, +0x3d,0x0,0x22,0x0,0x23,0x0,0x3a,0x0,0x2d,0x0,0x12,0x0, +0x24,0x0,0x37,0x0,0x17,0x0,0x0,0x0,0x20,0x0,0x36,0x0, +0x1f,0x0,0x16,0x0,0x31,0x0,0x38,0x0,0x1f,0x0,0x18,0x0, +0x2c,0x0,0x30,0x0,0x20,0x0,0x1e,0x0,0x2c,0x0,0x26,0x0, +0xc,0x0,0xa,0x0,0x1e,0x0,0x17,0x0,0xfd,0xff,0x4,0x0, +0x21,0x0,0x25,0x0,0x24,0x0,0x3a,0x0,0x3f,0x0,0x1f,0x0, +0x10,0x0,0x24,0x0,0x28,0x0,0x11,0x0,0x12,0x0,0x2a,0x0, +0x33,0x0,0x2b,0x0,0x2c,0x0,0x2d,0x0,0x19,0x0,0xfa,0xff, +0xf5,0xff,0x11,0x0,0x25,0x0,0x20,0x0,0x26,0x0,0x3e,0x0, +0x37,0x0,0x11,0x0,0x6,0x0,0x1c,0x0,0x22,0x0,0x1b,0x0, +0x29,0x0,0x38,0x0,0x25,0x0,0x15,0x0,0x2e,0x0,0x3c,0x0, +0x1e,0x0,0xf,0x0,0x26,0x0,0x35,0x0,0x39,0x0,0x40,0x0, +0x32,0x0,0x1e,0x0,0x29,0x0,0x3d,0x0,0x3d,0x0,0x31,0x0, +0x2c,0x0,0x32,0x0,0x35,0x0,0x2e,0x0,0x28,0x0,0x1f,0x0, +0x12,0x0,0x1a,0x0,0x2b,0x0,0x23,0x0,0x19,0x0,0x28,0x0, +0x3a,0x0,0x43,0x0,0x38,0x0,0x14,0x0,0xd,0x0,0x28,0x0, +0x28,0x0,0x18,0x0,0x21,0x0,0x21,0x0,0x19,0x0,0x30,0x0, +0x42,0x0,0x36,0x0,0x2f,0x0,0x35,0x0,0x3e,0x0,0x45,0x0, +0x3b,0x0,0x29,0x0,0x26,0x0,0x25,0x0,0x25,0x0,0x26,0x0, +0x1a,0x0,0x16,0x0,0x24,0x0,0x2b,0x0,0x35,0x0,0x49,0x0, +0x42,0x0,0x39,0x0,0x49,0x0,0x39,0x0,0x17,0x0,0x23,0x0, +0x27,0x0,0x6,0x0,0x9,0x0,0x25,0x0,0x1e,0x0,0x13,0x0, +0x1c,0x0,0x27,0x0,0x2f,0x0,0x27,0x0,0x14,0x0,0x14,0x0, +0x20,0x0,0x21,0x0,0x1e,0x0,0x14,0x0,0xf,0x0,0x1b,0x0, +0x19,0x0,0xd,0x0,0x16,0x0,0x12,0x0,0xff,0xff,0xc,0x0, +0x18,0x0,0xb,0x0,0x1c,0x0,0x34,0x0,0x20,0x0,0x13,0x0, +0x22,0x0,0x21,0x0,0x19,0x0,0x21,0x0,0x2a,0x0,0x2b,0x0, +0x1c,0x0,0xc,0x0,0x1d,0x0,0x2c,0x0,0x13,0x0,0x11,0x0, +0x26,0x0,0x16,0x0,0xd,0x0,0x2a,0x0,0x2e,0x0,0x1d,0x0, +0x15,0x0,0x13,0x0,0x2c,0x0,0x32,0x0,0xc,0x0,0xd,0x0, +0x23,0x0,0x15,0x0,0x17,0x0,0x1e,0x0,0x8,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x14,0x0,0xc,0x0,0x13,0x0,0x39,0x0, +0x1e,0x0,0xfa,0xff,0x13,0x0,0x15,0x0,0xf,0x0,0x22,0x0, +0x1c,0x0,0x1d,0x0,0x2a,0x0,0x25,0x0,0x30,0x0,0x25,0x0, +0xff,0xff,0xb,0x0,0x17,0x0,0x10,0x0,0x24,0x0,0x17,0x0, +0xc,0x0,0x32,0x0,0x1e,0x0,0x2,0x0,0x32,0x0,0x3a,0x0, +0x27,0x0,0x23,0x0,0xe5,0xff,0xd6,0xff,0xc,0x0,0xf2,0xff, +0xf9,0xff,0x35,0x0,0xfe,0xff,0xef,0xff,0x34,0x0,0xfc,0xff, +0xd6,0xff,0x17,0x0,0x4,0x0,0x0,0x0,0x39,0x0,0x1b,0x0, +0x12,0x0,0x2c,0x0,0x8,0x0,0xe,0x0,0x1c,0x0,0x10,0x0, +0x25,0x0,0xde,0xff,0xdf,0xff,0xb0,0x0,0x75,0x0,0x89,0xff, +0xe0,0xff,0x3d,0x0,0xf8,0xff,0x42,0x0,0x5b,0x0,0xff,0xff, +0xfa,0xff,0xe0,0xff,0xf3,0xff,0x4e,0x0,0x1d,0x0,0x9,0x0, +0x2f,0x0,0xeb,0xff,0x10,0x0,0x48,0x0,0xf4,0xff,0x1e,0x0, +0x47,0x0,0xf4,0xff,0x2e,0x0,0x3d,0x0,0xe3,0xff,0x31,0x0, +0x45,0x0,0xfa,0xff,0x31,0x0,0x1a,0x0,0xf2,0xff,0x4f,0x0, +0x2c,0x0,0xe9,0xff,0x13,0x0,0xf4,0xff,0xfd,0xff,0x29,0x0, +0xe6,0xff,0xf4,0xff,0x19,0x0,0xe6,0xff,0x21,0x0,0x38,0x0, +0xdb,0xff,0x3,0x0,0x36,0x0,0x16,0x0,0x21,0x0,0x9,0x0, +0x4,0x0,0x33,0x0,0x7,0x0,0xfd,0xff,0x26,0x0,0xf2,0xff, +0xf0,0xff,0x13,0x0,0xf8,0xff,0x24,0x0,0x39,0x0,0xee,0xff, +0xfe,0xff,0x30,0x0,0x25,0x0,0x10,0x0,0xf4,0xff,0x17,0x0, +0x37,0x0,0xf8,0xff,0xee,0xff,0xff,0xff,0xe0,0xff,0xc,0x0, +0x14,0x0,0xdf,0xff,0x2b,0x0,0x5a,0x0,0x1a,0x0,0x1e,0x0, +0x2b,0x0,0x16,0x0,0x0,0x0,0xe2,0xff,0x15,0x0,0x2a,0x0, +0xdc,0xff,0x9,0x0,0x3b,0x0,0xec,0xff,0xfc,0xff,0x1b,0x0, +0xee,0xff,0x1b,0x0,0x22,0x0,0xea,0xff,0x1a,0x0,0x1c,0x0, +0xe8,0xff,0xc,0x0,0x21,0x0,0x17,0x0,0xf,0x0,0xfc,0xff, +0x26,0x0,0x21,0x0,0xdb,0xff,0x11,0x0,0x2c,0x0,0xdb,0xff, +0x0,0x0,0x2e,0x0,0xfe,0xff,0x8,0x0,0xe,0x0,0xfc,0xff, +0x27,0x0,0x27,0x0,0x5,0x0,0x12,0x0,0xb,0x0,0x12,0x0, +0x36,0x0,0x11,0x0,0xd7,0xff,0xe4,0xff,0x7,0x0,0xfb,0xff, +0xf4,0xff,0x3b,0x0,0x53,0x0,0xf7,0xff,0x4,0x0,0x57,0x0, +0xb,0x0,0xe0,0xff,0x47,0x0,0x36,0x0,0xe7,0xff,0x23,0x0, +0x22,0x0,0xbd,0xff,0xfd,0xff,0x5c,0x0,0xfa,0xff,0xec,0xff, +0x7d,0x0,0x30,0x0,0x92,0xff,0x1b,0x0,0x73,0x0,0xc7,0xff, +0xe4,0xff,0x9b,0x0,0x2f,0x0,0xbc,0xff,0x52,0x0,0x5d,0x0, +0xd2,0xff,0x29,0x0,0x73,0x0,0xd5,0xff,0xdb,0xff,0x72,0x0, +0x13,0x0,0xb9,0xff,0x49,0x0,0x38,0x0,0x97,0xff,0x6,0x0, +0x87,0x0,0xf6,0xff,0xd2,0xff,0x64,0x0,0x27,0x0,0xae,0xff, +0x13,0x0,0x3e,0x0,0xcc,0xff,0xf2,0xff,0x57,0x0,0x9,0x0, +0xd1,0xff,0x1a,0x0,0xe,0x0,0xcd,0xff,0x5,0x0,0x3e,0x0, +0x18,0x0,0xa,0x0,0x27,0x0,0x1a,0x0,0xf7,0xff,0xf2,0xff, +0xd,0x0,0x2f,0x0,0x27,0x0,0x5,0x0,0xc,0x0,0x1d,0x0, +0xa,0x0,0xc,0x0,0x1b,0x0,0x8,0x0,0x9,0x0,0x1d,0x0, +0x0,0x0,0x0,0x0,0x3e,0x0,0x29,0x0,0xe9,0xff,0x23,0x0, +0x41,0x0,0xd3,0xff,0xd2,0xff,0x57,0x0,0x42,0x0,0xdf,0xff, +0x13,0x0,0x34,0x0,0xdc,0xff,0xe2,0xff,0x2d,0x0,0xe,0x0, +0xfd,0xff,0x3d,0x0,0x28,0x0,0xeb,0xff,0xb,0x0,0x13,0x0, +0xe4,0xff,0xc,0x0,0x38,0x0,0xf7,0xff,0xdd,0xff,0x14,0x0, +0x8,0x0,0xed,0xff,0x24,0x0,0x31,0x0,0xf8,0xff,0x4,0x0, +0x2f,0x0,0x15,0x0,0x3,0x0,0x23,0x0,0x27,0x0,0xf,0x0, +0xe,0x0,0x11,0x0,0x8,0x0,0x7,0x0,0x15,0x0,0x2a,0x0, +0x1d,0x0,0xea,0xff,0xe6,0xff,0x1b,0x0,0x1b,0x0,0xf6,0xff, +0xe,0x0,0x2a,0x0,0x15,0x0,0x21,0x0,0x3e,0x0,0x1b,0x0, +0x6,0x0,0x29,0x0,0x27,0x0,0x10,0x0,0x22,0x0,0x5,0x0, +0xd2,0xff,0xc,0x0,0x43,0x0,0xfd,0xff,0xeb,0xff,0x4a,0x0, +0x4d,0x0,0xa,0x0,0x2b,0x0,0x46,0x0,0xf9,0xff,0xdd,0xff, +0x11,0x0,0xe,0x0,0xf5,0xff,0x17,0x0,0x2e,0x0,0x28,0x0, +0x37,0x0,0x31,0x0,0x3,0x0,0xf1,0xff,0x5,0x0,0x16,0x0, +0x23,0x0,0x27,0x0,0x1f,0x0,0x1e,0x0,0x18,0x0,0x6,0x0, +0x10,0x0,0x22,0x0,0x15,0x0,0x19,0x0,0x2c,0x0,0xb,0x0, +0xee,0xff,0x11,0x0,0x11,0x0,0xe7,0xff,0xfe,0xff,0x16,0x0, +0xea,0xff,0xfc,0xff,0x3c,0x0,0xf,0x0,0xe0,0xff,0x32,0x0, +0x55,0x0,0xa,0x0,0x9,0x0,0x30,0x0,0xf4,0xff,0xd4,0xff, +0x11,0x0,0x15,0x0,0xef,0xff,0xf,0x0,0x23,0x0,0x8,0x0, +0x10,0x0,0x9,0x0,0xd6,0xff,0xf5,0xff,0x32,0x0,0x4,0x0, +0xe5,0xff,0x2d,0x0,0x2b,0x0,0xe3,0xff,0x2,0x0,0x33,0x0, +0xfc,0xff,0xe3,0xff,0x1d,0x0,0x25,0x0,0xe,0x0,0x20,0x0, +0x1e,0x0,0x11,0x0,0x2e,0x0,0x24,0x0,0xec,0xff,0x3,0x0, +0x36,0x0,0x13,0x0,0xf7,0xff,0x18,0x0,0x7,0x0,0xdf,0xff, +0x8,0x0,0x29,0x0,0xfa,0xff,0xe5,0xff,0x4,0x0,0x5,0x0, +0xfb,0xff,0x10,0x0,0x15,0x0,0x0,0x0,0x3,0x0,0x13,0x0, +0xd,0x0,0xf9,0xff,0xe7,0xff,0xef,0xff,0x9,0x0,0xff,0xff, +0xe3,0xff,0xfd,0xff,0x1f,0x0,0x4,0x0,0xf8,0xff,0x24,0x0, +0x18,0x0,0xdf,0xff,0xfa,0xff,0x34,0x0,0x12,0x0,0xe4,0xff, +0x3,0x0,0x1b,0x0,0xfc,0xff,0xeb,0xff,0xf0,0xff,0xe9,0xff, +0xee,0xff,0x4,0x0,0xb,0x0,0x10,0x0,0xe,0x0,0xe9,0xff, +0xde,0xff,0x11,0x0,0x1c,0x0,0xe3,0xff,0xee,0xff,0x38,0x0, +0x27,0x0,0xe0,0xff,0xf7,0xff,0x26,0x0,0xfe,0xff,0xe4,0xff, +0x1e,0x0,0x39,0x0,0x12,0x0,0xe,0x0,0x28,0x0,0x19,0x0, +0xfa,0xff,0xf7,0xff,0x2,0x0,0x7,0x0,0x1,0x0,0xf6,0xff, +0xfb,0xff,0x5,0x0,0xf9,0xff,0xfd,0xff,0x17,0x0,0xff,0xff, +0xd3,0xff,0xf3,0xff,0x19,0x0,0xec,0xff,0xd7,0xff,0x4,0x0, +0xf5,0xff,0xca,0xff,0xfc,0xff,0x26,0x0,0xed,0xff,0xdb,0xff, +0x11,0x0,0xa,0x0,0xe7,0xff,0x2,0x0,0xb,0x0,0xf0,0xff, +0x5,0x0,0xf,0x0,0xe2,0xff,0xf0,0xff,0x1d,0x0,0xea,0xff, +0xc9,0xff,0x15,0x0,0x1e,0x0,0xd1,0xff,0xf1,0xff,0x33,0x0, +0xee,0xff,0xc9,0xff,0x2e,0x0,0x39,0x0,0xc7,0xff,0xc1,0xff, +0x12,0x0,0xb,0x0,0xee,0xff,0xe,0x0,0xa,0x0,0xda,0xff, +0xdb,0xff,0xf4,0xff,0x0,0x0,0x16,0x0,0xf,0x0,0xe3,0xff, +0xec,0xff,0x16,0x0,0x0,0x0,0xe5,0xff,0x6,0x0,0xfd,0xff, +0xc9,0xff,0xea,0xff,0x24,0x0,0xf9,0xff,0xd5,0xff,0x4,0x0, +0x3,0x0,0xce,0xff,0xe7,0xff,0xd,0x0,0xe6,0xff,0xdf,0xff, +0x10,0x0,0xff,0xff,0xd5,0xff,0xfe,0xff,0x1b,0x0,0xf7,0xff, +0xfa,0xff,0x12,0x0,0xf4,0xff,0xf6,0xff,0x2a,0x0,0xb,0x0, +0xd0,0xff,0x3,0x0,0x2d,0x0,0xf8,0xff,0xfc,0xff,0x37,0x0, +0x9,0x0,0xcd,0xff,0x3,0x0,0x13,0x0,0xc8,0xff,0xd1,0xff, +0x1d,0x0,0xc,0x0,0xe4,0xff,0x9,0x0,0x16,0x0,0xeb,0xff, +0xe9,0xff,0x5,0x0,0x1,0x0,0xf9,0xff,0xfe,0xff,0x2,0x0, +0x10,0x0,0x13,0x0,0xf4,0xff,0xee,0xff,0x5,0x0,0xf7,0xff, +0xe7,0xff,0xa,0x0,0x18,0x0,0xf6,0xff,0xf4,0xff,0x2,0x0, +0xf0,0xff,0xf3,0xff,0xd,0x0,0x1,0x0,0xfb,0xff,0x1d,0x0, +0x15,0x0,0xec,0xff,0xff,0xff,0x13,0x0,0xee,0xff,0xf4,0xff, +0x20,0x0,0x4,0x0,0xdf,0xff,0xf,0x0,0x25,0x0,0xed,0xff, +0xeb,0xff,0x21,0x0,0x1a,0x0,0xf7,0xff,0x7,0x0,0x8,0x0, +0xde,0xff,0xd9,0xff,0xfc,0xff,0x3,0x0,0xf5,0xff,0xfd,0xff, +0xd,0x0,0xa,0x0,0xf8,0xff,0xf0,0xff,0xf6,0xff,0xfe,0xff, +0x0,0x0,0xf9,0xff,0xe8,0xff,0xe4,0xff,0xfb,0xff,0xb,0x0, +0xfd,0xff,0xf6,0xff,0x3,0x0,0x1,0x0,0xfa,0xff,0x3,0x0, +0x3,0x0,0xf9,0xff,0x7,0x0,0x10,0x0,0xf8,0xff,0xf6,0xff, +0x10,0x0,0xb,0x0,0xf3,0xff,0xf5,0xff,0xfa,0xff,0xf2,0xff, +0xf8,0xff,0xfd,0xff,0xf0,0xff,0xf0,0xff,0xf5,0xff,0xef,0xff, +0xfd,0xff,0xb,0x0,0xf4,0xff,0xf5,0xff,0x1d,0x0,0xb,0x0, +0xdd,0xff,0xfb,0xff,0x17,0x0,0xe0,0xff,0xd2,0xff,0x10,0x0, +0xa,0x0,0xde,0xff,0x5,0x0,0x25,0x0,0xef,0xff,0xe3,0xff, +0x15,0x0,0xb,0x0,0xe5,0xff,0x2,0x0,0x19,0x0,0xf8,0xff, +0xe6,0xff,0xe8,0xff,0xdd,0xff,0xeb,0xff,0xd,0x0,0xf6,0xff, +0xce,0xff,0xe2,0xff,0xfe,0xff,0xeb,0xff,0xe4,0xff,0xfc,0xff, +0xf1,0xff,0xd5,0xff,0xed,0xff,0x13,0x0,0xff,0xff,0xe4,0xff, +0xfa,0xff,0xb,0x0,0xec,0xff,0xdb,0xff,0xef,0xff,0xed,0xff, +0xdd,0xff,0xf9,0xff,0x16,0x0,0xff,0xff,0xee,0xff,0x9,0x0, +0xe,0x0,0xed,0xff,0xe4,0xff,0xf9,0xff,0xfe,0xff,0xf3,0xff, +0xf3,0xff,0xf9,0xff,0xf5,0xff,0xeb,0xff,0xf1,0xff,0x4,0x0, +0xfe,0xff,0xdf,0xff,0xe2,0xff,0xfc,0xff,0xf2,0xff,0xe3,0xff, +0x1,0x0,0xb,0x0,0xe5,0xff,0xe1,0xff,0xfd,0xff,0xf0,0xff, +0xe1,0xff,0xfb,0xff,0xfd,0xff,0xe1,0xff,0xed,0xff,0xfe,0xff, +0xed,0xff,0xf2,0xff,0x4,0x0,0xe9,0xff,0xdc,0xff,0xff,0xff, +0xf4,0xff,0xc9,0xff,0xe8,0xff,0xa,0x0,0xda,0xff,0xc6,0xff, +0x1,0x0,0x8,0x0,0xd7,0xff,0xe2,0xff,0x5,0x0,0xee,0xff, +0xde,0xff,0xfa,0xff,0xf4,0xff,0xcf,0xff,0xd5,0xff,0xf3,0xff, +0xed,0xff,0xd9,0xff,0xdf,0xff,0xef,0xff,0xef,0xff,0xe7,0xff, +0xec,0xff,0xfc,0xff,0xfa,0xff,0xec,0xff,0xf1,0xff,0xfc,0xff, +0xef,0xff,0xe5,0xff,0xf8,0xff,0xfe,0xff,0xe8,0xff,0xe0,0xff, +0xf2,0xff,0xf5,0xff,0xe3,0xff,0xda,0xff,0xdc,0xff,0xdd,0xff, +0xe4,0xff,0xf0,0xff,0xef,0xff,0xe2,0xff,0xe1,0xff,0xeb,0xff, +0xed,0xff,0xe9,0xff,0xeb,0xff,0xe9,0xff,0xdf,0xff,0xdc,0xff, +0xdb,0xff,0xd4,0xff,0xd9,0xff,0xe8,0xff,0xe4,0xff,0xdb,0xff, +0xe8,0xff,0xec,0xff,0xda,0xff,0xe2,0xff,0xfb,0xff,0xe2,0xff, +0xc1,0xff,0xe0,0xff,0xff,0xff,0xe2,0xff,0xda,0xff,0x4,0x0, +0x5,0x0,0xe0,0xff,0xec,0xff,0x4,0x0,0xe5,0xff,0xd5,0xff, +0xfd,0xff,0x6,0x0,0xdc,0xff,0xda,0xff,0xfd,0xff,0xf7,0xff, +0xde,0xff,0xed,0xff,0x0,0x0,0xf0,0xff,0xe2,0xff,0xed,0xff, +0xf4,0xff,0xf4,0xff,0xfb,0xff,0xf4,0xff,0xde,0xff,0xd6,0xff, +0xda,0xff,0xd3,0xff,0xcd,0xff,0xd8,0xff,0xe1,0xff,0xe2,0xff, +0xec,0xff,0xf4,0xff,0xe9,0xff,0xdc,0xff,0xe6,0xff,0xf0,0xff, +0xe4,0xff,0xd8,0xff,0xe9,0xff,0x2,0x0,0x1,0x0,0xef,0xff, +0xe2,0xff,0xdd,0xff,0xe6,0xff,0xff,0xff,0x1,0x0,0xde,0xff, +0xd1,0xff,0xe9,0xff,0xe6,0xff,0xce,0xff,0xdf,0xff,0xf7,0xff, +0xdb,0xff,0xcb,0xff,0xf1,0xff,0xff,0xff,0xe5,0xff,0xeb,0xff, +0xf9,0xff,0xd7,0xff,0xc2,0xff,0xe7,0xff,0xfd,0xff,0xe9,0xff, +0xe2,0xff,0xed,0xff,0xf0,0xff,0xf4,0xff,0xf4,0xff,0xe9,0xff, +0xea,0xff,0xf4,0xff,0xea,0xff,0xe2,0xff,0xec,0xff,0xe5,0xff, +0xd7,0xff,0xe6,0xff,0xf5,0xff,0xe6,0xff,0xe2,0xff,0xf2,0xff, +0xf6,0xff,0xf6,0xff,0xfd,0xff,0xf9,0xff,0xf7,0xff,0x2,0x0, +0xf2,0xff,0xd0,0xff,0xde,0xff,0xfc,0xff,0xe9,0xff,0xd2,0xff, +0xe5,0xff,0xf1,0xff,0xe4,0xff,0xed,0xff,0xfb,0xff,0xed,0xff, +0xe4,0xff,0xf8,0xff,0x2,0x0,0xfa,0xff,0xfa,0xff,0xf6,0xff, +0xe3,0xff,0xdd,0xff,0xea,0xff,0xe3,0xff,0xd0,0xff,0xdb,0xff, +0xf1,0xff,0xe2,0xff,0xcc,0xff,0xe6,0xff,0x3,0x0,0xf1,0xff, +0xe4,0xff,0xfb,0xff,0xfd,0xff,0xe9,0xff,0xf6,0xff,0x0,0x0, +0xdf,0xff,0xd6,0xff,0xfc,0xff,0x3,0x0,0xeb,0xff,0xf1,0xff, +0xf8,0xff,0xe3,0xff,0xe8,0xff,0xfe,0xff,0xed,0xff,0xe2,0xff, +0x0,0x0,0x4,0x0,0xe6,0xff,0xed,0xff,0x6,0x0,0xf2,0xff, +0xd5,0xff,0xe0,0xff,0xf4,0xff,0xf8,0xff,0xfb,0xff,0xfd,0xff, +0xf8,0xff,0xed,0xff,0xe1,0xff,0xe3,0xff,0xf2,0xff,0xed,0xff, +0xdc,0xff,0xe8,0xff,0xfd,0xff,0xf2,0xff,0xe4,0xff,0xf3,0xff, +0x1,0x0,0xf9,0xff,0xec,0xff,0xe5,0xff,0xeb,0xff,0xf9,0xff, +0xf1,0xff,0xd8,0xff,0xda,0xff,0xec,0xff,0xe8,0xff,0xdf,0xff, +0xe9,0xff,0xed,0xff,0xed,0xff,0x1,0x0,0xf,0x0,0x0,0x0, +0xf3,0xff,0xf9,0xff,0xf8,0xff,0xe8,0xff,0xde,0xff,0xe6,0xff, +0xf3,0xff,0xf5,0xff,0xf2,0xff,0xf1,0xff,0xe8,0xff,0xd9,0xff, +0xe3,0xff,0xf8,0xff,0xec,0xff,0xdc,0xff,0xef,0xff,0xfb,0xff, +0xe8,0xff,0xeb,0xff,0xfb,0xff,0xe5,0xff,0xd0,0xff,0xe6,0xff, +0xf6,0xff,0xe4,0xff,0xe0,0xff,0xed,0xff,0xe7,0xff,0xda,0xff, +0xdc,0xff,0xe1,0xff,0xe5,0xff,0xe3,0xff,0xdb,0xff,0xe2,0xff, +0xf1,0xff,0xe4,0xff,0xd7,0xff,0xf1,0xff,0x1,0x0,0xe6,0xff, +0xd9,0xff,0xeb,0xff,0xe9,0xff,0xd8,0xff,0xdd,0xff,0xe8,0xff, +0xeb,0xff,0xee,0xff,0xeb,0xff,0xeb,0xff,0xf8,0xff,0xf7,0xff, +0xe6,0xff,0xf0,0xff,0xfd,0xff,0xea,0xff,0xe5,0xff,0x2,0x0, +0xfb,0xff,0xdd,0xff,0xee,0xff,0x4,0x0,0xea,0xff,0xe2,0xff, +0x1,0x0,0xff,0xff,0xde,0xff,0xdb,0xff,0xe7,0xff,0xe3,0xff, +0xdf,0xff,0xe4,0xff,0xe7,0xff,0xe8,0xff,0xe3,0xff,0xdb,0xff, +0xe6,0xff,0xee,0xff,0xe3,0xff,0xe6,0xff,0xf5,0xff,0xe5,0xff, +0xd0,0xff,0xe7,0xff,0xf5,0xff,0xdd,0xff,0xd8,0xff,0xe3,0xff, +0xd4,0xff,0xd3,0xff,0xf5,0xff,0xf9,0xff,0xde,0xff,0xe0,0xff, +0xed,0xff,0xe8,0xff,0xec,0xff,0xf4,0xff,0xe3,0xff,0xe1,0xff, +0xf0,0xff,0xdf,0xff,0xcb,0xff,0xe4,0xff,0xee,0xff,0xce,0xff, +0xd2,0xff,0xf1,0xff,0xdd,0xff,0xc5,0xff,0xe6,0xff,0xf6,0xff, +0xd3,0xff,0xd1,0xff,0xee,0xff,0xe7,0xff,0xda,0xff,0xef,0xff, +0xf3,0xff,0xd7,0xff,0xd4,0xff,0xe8,0xff,0xe8,0xff,0xe6,0xff, +0xf0,0xff,0xed,0xff,0xe6,0xff,0xe7,0xff,0xde,0xff,0xd6,0xff, +0xeb,0xff,0xf6,0xff,0xdc,0xff,0xd9,0xff,0xf7,0xff,0xfb,0xff, +0xea,0xff,0xf3,0xff,0xf9,0xff,0xe2,0xff,0xdd,0xff,0xee,0xff, +0xe6,0xff,0xd8,0xff,0xe5,0xff,0xea,0xff,0xe2,0xff,0xef,0xff, +0xfb,0xff,0xea,0xff,0xe4,0xff,0xef,0xff,0xe4,0xff,0xd9,0xff, +0xe9,0xff,0xef,0xff,0xde,0xff,0xe1,0xff,0xef,0xff,0xe9,0xff, +0xe3,0xff,0xe9,0xff,0xe5,0xff,0xe6,0xff,0xfd,0xff,0x6,0x0, +0xf6,0xff,0xf1,0xff,0xf6,0xff,0xed,0xff,0xe6,0xff,0xea,0xff, +0xea,0xff,0xe8,0xff,0xf2,0xff,0xf1,0xff,0xe3,0xff,0xe1,0xff, +0xf0,0xff,0xf7,0xff,0xf0,0xff,0xe6,0xff,0xe7,0xff,0xf2,0xff, +0xf3,0xff,0xe7,0xff,0xe1,0xff,0xe5,0xff,0xe3,0xff,0xe0,0xff, +0xe8,0xff,0xe9,0xff,0xe2,0xff,0xea,0xff,0xf7,0xff,0xf4,0xff, +0xf1,0xff,0xf4,0xff,0xed,0xff,0xe8,0xff,0xf5,0xff,0xfb,0xff, +0xec,0xff,0xe9,0xff,0xf7,0xff,0xf6,0xff,0xee,0xff,0xf7,0xff, +0xfe,0xff,0xf0,0xff,0xe7,0xff,0xf3,0xff,0xf7,0xff,0xef,0xff, +0xf1,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xf9,0xff, +0xf4,0xff,0xf6,0xff,0xf9,0xff,0xf3,0xff,0xec,0xff,0xeb,0xff, +0xed,0xff,0xf0,0xff,0xf7,0xff,0xfb,0xff,0xf8,0xff,0xf7,0xff, +0xfb,0xff,0xf7,0xff,0xec,0xff,0xec,0xff,0xf4,0xff,0xf4,0xff, +0xf2,0xff,0xf8,0xff,0xfc,0xff,0xfa,0xff,0xff,0xff,0x7,0x0, +0xfe,0xff,0xed,0xff,0xef,0xff,0xfa,0xff,0xf9,0xff,0xf2,0xff, +0xf5,0xff,0xf9,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xfc,0xff, +0xf7,0xff,0xfc,0xff,0x5,0x0,0x5,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xf9,0xff,0xf2,0xff,0xec,0xff,0xea,0xff,0xee,0xff, +0xf5,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0x1,0x0,0x7,0x0, +0x8,0x0,0x2,0x0,0xfb,0xff,0xf8,0xff,0xf9,0xff,0xf8,0xff, +0xf6,0xff,0xf5,0xff,0xf7,0xff,0xf8,0xff,0xfb,0xff,0x0,0x0, +0x2,0x0,0xfc,0xff,0xf9,0xff,0xfe,0xff,0xff,0xff,0xf3,0xff, +0xee,0xff,0xf7,0xff,0xfa,0xff,0xf4,0xff,0xf4,0xff,0xf9,0xff, +0xf7,0xff,0xf3,0xff,0xf8,0xff,0xfd,0xff,0xf9,0xff,0xf2,0xff, +0xf3,0xff,0xf9,0xff,0xfc,0xff,0xfa,0xff,0xf5,0xff,0xf3,0xff, +0xf2,0xff,0xf3,0xff,0xf8,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff, +0xfd,0xff,0x1,0x0,0xfa,0xff,0xf7,0xff,0xff,0xff,0x3,0x0, +0xfd,0xff,0xfa,0xff,0xfa,0xff,0xf5,0xff,0xf0,0xff,0xed,0xff, +0xee,0xff,0xf0,0xff,0xef,0xff,0xea,0xff,0xed,0xff,0xf7,0xff, +0xf6,0xff,0xee,0xff,0xf4,0xff,0xff,0xff,0xfa,0xff,0xef,0xff, +0xee,0xff,0xf2,0xff,0xed,0xff,0xe6,0xff,0xe9,0xff,0xf0,0xff, +0xf3,0xff,0xf3,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff,0xef,0xff, +0xf0,0xff,0xf6,0xff,0xf9,0xff,0xf7,0xff,0xf2,0xff,0xef,0xff, +0xf2,0xff,0xf6,0xff,0xf2,0xff,0xed,0xff,0xf0,0xff,0xf3,0xff, +0xec,0xff,0xe6,0xff,0xea,0xff,0xed,0xff,0xf2,0xff,0xff,0xff, +0x4,0x0,0xf3,0xff,0xe5,0xff,0xe4,0xff,0xe2,0xff,0xdb,0xff, +0xdc,0xff,0xe2,0xff,0xe4,0xff,0xe9,0xff,0xf1,0xff,0xef,0xff, +0xe7,0xff,0xea,0xff,0xf4,0xff,0xf8,0xff,0xf6,0xff,0xf5,0xff, +0xf6,0xff,0xf7,0xff,0xf5,0xff,0xee,0xff,0xe2,0xff,0xd8,0xff, +0xdb,0xff,0xe8,0xff,0xf4,0xff,0xf6,0xff,0xf9,0xff,0xff,0xff, +0xfb,0xff,0xed,0xff,0xe5,0xff,0xe8,0xff,0xec,0xff,0xee,0xff, +0xf1,0xff,0xf3,0xff,0xf6,0xff,0xfb,0xff,0xfa,0xff,0xf3,0xff, +0xf0,0xff,0xef,0xff,0xeb,0xff,0xec,0xff,0xf1,0xff,0xec,0xff, +0xe4,0xff,0xe8,0xff,0xf1,0xff,0xeb,0xff,0xe1,0xff,0xe4,0xff, +0xee,0xff,0xf5,0xff,0xfd,0xff,0x3,0x0,0xff,0xff,0xf7,0xff, +0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff,0xf3,0xff, +0xf9,0xff,0xfb,0xff,0xf5,0xff,0xeb,0xff,0xe1,0xff,0xd8,0xff, +0xd0,0xff,0xd0,0xff,0xdd,0xff,0xf2,0xff,0x3,0x0,0xb,0x0, +0x13,0x0,0x18,0x0,0xe,0x0,0xfa,0xff,0xf1,0xff,0xed,0xff, +0xde,0xff,0xd2,0xff,0xdb,0xff,0xe9,0xff,0xed,0xff,0xef,0xff, +0xf6,0xff,0xf7,0xff,0xf1,0xff,0xeb,0xff,0xe4,0xff,0xe1,0xff, +0xe6,0xff,0xee,0xff,0xf8,0xff,0x2,0x0,0x8,0x0,0x9,0x0, +0x7,0x0,0xf8,0xff,0xd9,0xff,0xc1,0xff,0xc1,0xff,0xd1,0xff, +0xe6,0xff,0x8,0x0,0x36,0x0,0x56,0x0,0x5c,0x0,0x51,0x0, +0x42,0x0,0x2b,0x0,0x6,0x0,0xdb,0xff,0xb6,0xff,0x9b,0xff, +0x98,0xff,0xcc,0xff,0x31,0x0,0x8d,0x0,0xac,0x0,0x99,0x0, +0x75,0x0,0x50,0x0,0x2b,0x0,0x7,0x0,0xd3,0xff,0x88,0xff, +0x3f,0xff,0x29,0xff,0x59,0xff,0xab,0xff,0xed,0xff,0x17,0x0, +0x41,0x0,0x5c,0x0,0x46,0x0,0xd,0x0,0xd7,0xff,0xa0,0xff, +0x58,0xff,0x22,0xff,0x26,0xff,0x56,0xff,0x90,0xff,0xd6,0xff, +0x2f,0x0,0x87,0x0,0xb0,0x0,0x99,0x0,0x5a,0x0,0x14,0x0, +0xcf,0xff,0x92,0xff,0x73,0xff,0x7a,0xff,0x92,0xff,0xad,0xff, +0xd8,0xff,0x17,0x0,0x4e,0x0,0x59,0x0,0x3a,0x0,0x11,0x0, +0xf2,0xff,0xd9,0xff,0xc5,0xff,0xbd,0xff,0xb7,0xff,0xad,0xff, +0xbd,0xff,0xf5,0xff,0x2b,0x0,0x39,0x0,0x32,0x0,0x36,0x0, +0x45,0x0,0x4e,0x0,0x4a,0x0,0x37,0x0,0x1a,0x0,0xfa,0xff, +0xe6,0xff,0xe9,0xff,0xfb,0xff,0x9,0x0,0x11,0x0,0x28,0x0, +0x48,0x0,0x4c,0x0,0x28,0x0,0xfa,0xff,0xdf,0xff,0xd3,0xff, +0xcd,0xff,0xd5,0xff,0xe9,0xff,0xfb,0xff,0x3,0x0,0xd,0x0, +0x1a,0x0,0x14,0x0,0xf8,0xff,0xe5,0xff,0xe8,0xff,0xf0,0xff, +0xee,0xff,0xed,0xff,0xf2,0xff,0xfa,0xff,0x1,0x0,0x6,0x0, +0xf,0x0,0x23,0x0,0x36,0x0,0x38,0x0,0x35,0x0,0x3c,0x0, +0x39,0x0,0x18,0x0,0xfb,0xff,0xfd,0xff,0x4,0x0,0xfd,0xff, +0x6,0x0,0x27,0x0,0x37,0x0,0x28,0x0,0x17,0x0,0x14,0x0, +0xc,0x0,0xf8,0xff,0xe6,0xff,0xde,0xff,0xdf,0xff,0xe6,0xff, +0xec,0xff,0xf8,0xff,0x11,0x0,0x21,0x0,0x1b,0x0,0x18,0x0, +0x28,0x0,0x2b,0x0,0x13,0x0,0xff,0xff,0xfc,0xff,0xed,0xff, +0xd6,0xff,0xd8,0xff,0xf0,0xff,0x4,0x0,0x11,0x0,0x1f,0x0, +0x22,0x0,0x17,0x0,0x8,0x0,0xf8,0xff,0xeb,0xff,0xed,0xff, +0xfa,0xff,0xfe,0xff,0x3,0x0,0x18,0x0,0x2c,0x0,0x29,0x0, +0x1b,0x0,0x10,0x0,0x0,0x0,0xea,0xff,0xe6,0xff,0xf6,0xff, +0x7,0x0,0x9,0x0,0xa,0x0,0x14,0x0,0x1f,0x0,0x1e,0x0, +0x16,0x0,0xe,0x0,0x8,0x0,0xff,0xff,0xf9,0xff,0xfd,0xff, +0x5,0x0,0x3,0x0,0x0,0x0,0x8,0x0,0x11,0x0,0xe,0x0, +0x8,0x0,0x8,0x0,0xc,0x0,0x16,0x0,0x1f,0x0,0x1d,0x0, +0x1b,0x0,0x1d,0x0,0xf,0x0,0xfb,0xff,0xfb,0xff,0x0,0x0, +0xfb,0xff,0x3,0x0,0x11,0x0,0xb,0x0,0xfe,0xff,0xf7,0xff, +0xe7,0xff,0xd3,0xff,0xd1,0xff,0xd9,0xff,0xe2,0xff,0xef,0xff, +0xf8,0xff,0xf4,0xff,0xf0,0xff,0xf8,0xff,0x3,0x0,0x7,0x0, +0xc,0x0,0x19,0x0,0x1f,0x0,0x11,0x0,0x5,0x0,0xd,0x0, +0xe,0x0,0x1,0x0,0x7,0x0,0x1a,0x0,0x14,0x0,0x2,0x0, +0x5,0x0,0xf,0x0,0xb,0x0,0x5,0x0,0x1,0x0,0xf1,0xff, +0xdc,0xff,0xd9,0xff,0xe4,0xff,0xea,0xff,0xe8,0xff,0xea,0xff, +0xef,0xff,0xfb,0xff,0xb,0x0,0xf,0x0,0x4,0x0,0x7,0x0, +0x13,0x0,0x6,0x0,0xf6,0xff,0xfe,0xff,0x3,0x0,0xf0,0xff, +0xe9,0xff,0xf7,0xff,0x1,0x0,0x6,0x0,0xa,0x0,0x2,0x0, +0xf7,0xff,0xf2,0xff,0xf0,0xff,0xf0,0xff,0xf5,0xff,0xfb,0xff, +0x3,0x0,0x9,0x0,0x5,0x0,0x6,0x0,0xe,0x0,0xc,0x0, +0xc,0x0,0x17,0x0,0x10,0x0,0xfd,0xff,0x5,0x0,0x11,0x0, +0xfb,0xff,0xef,0xff,0x6,0x0,0x12,0x0,0x6,0x0,0x5,0x0, +0xb,0x0,0x5,0x0,0xfa,0xff,0xf3,0xff,0xf1,0xff,0xf6,0xff, +0xfa,0xff,0xf7,0xff,0xfc,0xff,0xa,0x0,0xf,0x0,0x3,0x0, +0xf9,0xff,0x3,0x0,0xe,0x0,0x3,0x0,0xf8,0xff,0x5,0x0, +0x12,0x0,0xc,0x0,0xa,0x0,0x15,0x0,0x18,0x0,0x13,0x0, +0x14,0x0,0x17,0x0,0xe,0x0,0x3,0x0,0x0,0x0,0x1,0x0, +0xf8,0xff,0xeb,0xff,0xe4,0xff,0xe3,0xff,0xec,0xff,0x4,0x0, +0x11,0x0,0x8,0x0,0xb,0x0,0x1c,0x0,0x13,0x0,0xfe,0xff, +0x2,0x0,0x3,0x0,0xef,0xff,0xe8,0xff,0xf1,0xff,0xea,0xff, +0xe1,0xff,0xe6,0xff,0xeb,0xff,0xf0,0xff,0xfa,0xff,0xfb,0xff, +0xf8,0xff,0xfb,0xff,0xfc,0xff,0xf7,0xff,0xf7,0xff,0xfa,0xff, +0x0,0x0,0xb,0x0,0x10,0x0,0x13,0x0,0x19,0x0,0x1c,0x0, +0x20,0x0,0x31,0x0,0x38,0x0,0x27,0x0,0x1e,0x0,0x21,0x0, +0x11,0x0,0x0,0x0,0x5,0x0,0x2,0x0,0xeb,0xff,0xe8,0xff, +0xfc,0xff,0xfe,0xff,0xec,0xff,0xe3,0xff,0xed,0xff,0xf7,0xff, +0xf4,0xff,0xeb,0xff,0xe4,0xff,0xe7,0xff,0xf3,0xff,0xfb,0xff, +0xf7,0xff,0xfd,0xff,0xc,0x0,0x8,0x0,0xf9,0xff,0xfa,0xff, +0x2,0x0,0xfc,0xff,0xf9,0xff,0x7,0x0,0x16,0x0,0x17,0x0, +0x12,0x0,0x11,0x0,0x16,0x0,0x12,0x0,0x5,0x0,0x2,0x0, +0xa,0x0,0xb,0x0,0x5,0x0,0xfe,0xff,0xf9,0xff,0xfe,0xff, +0x8,0x0,0x1,0x0,0xfc,0xff,0x9,0x0,0x4,0x0,0xed,0xff, +0xf3,0xff,0x3,0x0,0xf4,0xff,0xe8,0xff,0xf6,0xff,0xfd,0xff, +0xf3,0xff,0xf0,0xff,0xf5,0xff,0xf7,0xff,0xf8,0xff,0xf6,0xff, +0xf6,0xff,0x0,0x0,0x7,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0x2,0x0,0x2,0x0,0x1,0x0,0xb,0x0,0x15,0x0, +0x12,0x0,0x11,0x0,0x14,0x0,0xd,0x0,0x4,0x0,0x9,0x0, +0xc,0x0,0x6,0x0,0x7,0x0,0xc,0x0,0x7,0x0,0xfd,0xff, +0xfd,0xff,0x4,0x0,0x3,0x0,0xfb,0xff,0xf3,0xff,0xef,0xff, +0xf0,0xff,0xf7,0xff,0xf8,0xff,0xed,0xff,0xee,0xff,0xfb,0xff, +0xfc,0xff,0xf5,0xff,0xfa,0xff,0xf9,0xff,0xee,0xff,0xf1,0xff, +0xfb,0xff,0xf1,0xff,0xe3,0xff,0xe6,0xff,0xf5,0xff,0x0,0x0, +0xfd,0xff,0xee,0xff,0xee,0xff,0xfa,0xff,0xfb,0xff,0xf7,0xff, +0xfb,0xff,0xfb,0xff,0xf7,0xff,0xfb,0xff,0xfc,0xff,0xf9,0xff, +0x1,0x0,0x5,0x0,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xf2,0xff, +0xf3,0xff,0x4,0x0,0x2,0x0,0xf4,0xff,0xf7,0xff,0xff,0xff, +0xfd,0xff,0xfa,0xff,0xf8,0xff,0xf4,0xff,0xf6,0xff,0xfa,0xff, +0xf7,0xff,0xf3,0xff,0xf2,0xff,0xf0,0xff,0xf1,0xff,0xf3,0xff, +0xf2,0xff,0xf3,0xff,0xf7,0xff,0xfc,0xff,0xfd,0xff,0xf7,0xff, +0xf0,0xff,0xf3,0xff,0xf9,0xff,0xf3,0xff,0xe6,0xff,0xe2,0xff, +0xea,0xff,0xf2,0xff,0xf4,0xff,0xf9,0xff,0x1,0x0,0x1,0x0, +0xf6,0xff,0xf6,0xff,0xfe,0xff,0xfd,0xff,0xf6,0xff,0xf5,0xff, +0xf6,0xff,0xf8,0xff,0xfc,0xff,0xf7,0xff,0xef,0xff,0xed,0xff, +0xe5,0xff,0xda,0xff,0xe1,0xff,0xeb,0xff,0xe4,0xff,0xe4,0xff, +0xf0,0xff,0xf2,0xff,0xee,0xff,0xf0,0xff,0xf0,0xff,0xf4,0xff, +0xfa,0xff,0xf3,0xff,0xf0,0xff,0xfe,0xff,0x3,0x0,0xf6,0xff, +0xf3,0xff,0xf8,0xff,0xf5,0xff,0xf4,0xff,0xf9,0xff,0xf7,0xff, +0xf2,0xff,0xed,0xff,0xeb,0xff,0xf4,0xff,0x1,0x0,0xfa,0xff, +0xec,0xff,0xef,0xff,0xf9,0xff,0xf9,0xff,0xf3,0xff,0xf1,0xff, +0xf4,0xff,0xfb,0xff,0xf8,0xff,0xee,0xff,0xec,0xff,0xf2,0xff, +0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf7,0xff,0xf4,0xff,0xf6,0xff, +0xf8,0xff,0xf3,0xff,0xef,0xff,0xf8,0xff,0x6,0x0,0x5,0x0, +0xfb,0xff,0xfb,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xfa,0xff, +0xf7,0xff,0x4,0x0,0xf,0x0,0x2,0x0,0xf5,0xff,0xf9,0xff, +0xf6,0xff,0xec,0xff,0xf1,0xff,0xfb,0xff,0xfb,0xff,0xf8,0xff, +0xf4,0xff,0xf2,0xff,0xfa,0xff,0xfb,0xff,0xf3,0xff,0xf2,0xff, +0xf5,0xff,0xf2,0xff,0xf7,0xff,0xfe,0xff,0xf8,0xff,0xf4,0xff, +0xf9,0xff,0xf3,0xff,0xef,0xff,0xf8,0xff,0xf9,0xff,0xee,0xff, +0xee,0xff,0xf0,0xff,0xf0,0xff,0xfc,0xff,0x9,0x0,0xfe,0xff, +0xf0,0xff,0xf3,0xff,0xf4,0xff,0xef,0xff,0xf3,0xff,0xf7,0xff, +0xf4,0xff,0xf2,0xff,0xf9,0xff,0x1,0x0,0x1,0x0,0xfa,0xff, +0xfa,0xff,0xfd,0xff,0xf9,0xff,0xf5,0xff,0xf9,0xff,0xfb,0xff, +0xfc,0xff,0x3,0x0,0x8,0x0,0x5,0x0,0x0,0x0,0xfd,0xff, +0xf9,0xff,0xf8,0xff,0xfc,0xff,0xfb,0xff,0xef,0xff,0xe6,0xff, +0xf1,0xff,0xfc,0xff,0xf1,0xff,0xe7,0xff,0xf5,0xff,0xff,0xff, +0xf7,0xff,0xf7,0xff,0xfc,0xff,0xf7,0xff,0xf2,0xff,0xf2,0xff, +0xea,0xff,0xec,0xff,0xfa,0xff,0xf9,0xff,0xf2,0xff,0x1,0x0, +0x9,0x0,0xf9,0xff,0xf3,0xff,0xff,0xff,0x0,0x0,0xf4,0xff, +0xef,0xff,0xf4,0xff,0xfd,0xff,0xfd,0xff,0xfa,0xff,0x1,0x0, +0x5,0x0,0xf9,0xff,0xf2,0xff,0xf9,0xff,0xf7,0xff,0xf4,0xff, +0xfd,0xff,0xfb,0xff,0xf4,0xff,0xfb,0xff,0xfc,0xff,0xe9,0xff, +0xea,0xff,0x4,0x0,0xa,0x0,0xfb,0xff,0xf6,0xff,0xfd,0xff, +0xfe,0xff,0xfa,0xff,0xf5,0xff,0xed,0xff,0xe7,0xff,0xec,0xff, +0xf1,0xff,0xe9,0xff,0xdf,0xff,0xe3,0xff,0xec,0xff,0xf2,0xff, +0xfb,0xff,0x1,0x0,0xfa,0xff,0xf7,0xff,0xfe,0xff,0xfc,0xff, +0xf2,0xff,0xf5,0xff,0xfc,0xff,0xf7,0xff,0xf0,0xff,0xf0,0xff, +0xef,0xff,0xec,0xff,0xeb,0xff,0xf1,0xff,0xf3,0xff,0xea,0xff, +0xee,0xff,0x1,0x0,0x2,0x0,0xf3,0xff,0xf9,0xff,0x0,0x0, +0xed,0xff,0xe7,0xff,0xfa,0xff,0xf9,0xff,0xe7,0xff,0xe7,0xff, +0xe9,0xff,0xe0,0xff,0xe5,0xff,0xf1,0xff,0xef,0xff,0xed,0xff, +0xf4,0xff,0xf4,0xff,0xf2,0xff,0xf6,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xf8,0xff,0xf6,0xff,0xf3,0xff,0xeb,0xff,0xeb,0xff, +0xf2,0xff,0xf1,0xff,0xed,0xff,0xf1,0xff,0xee,0xff,0xe6,0xff, +0xeb,0xff,0xed,0xff,0xe3,0xff,0xe5,0xff,0xf2,0xff,0xf0,0xff, +0xea,0xff,0xf6,0xff,0xfe,0xff,0xee,0xff,0xe2,0xff,0xe9,0xff, +0xed,0xff,0xe8,0xff,0xf1,0xff,0xff,0xff,0xf6,0xff,0xe6,0xff, +0xef,0xff,0xf8,0xff,0xec,0xff,0xe9,0xff,0xf5,0xff,0xf3,0xff, +0xe9,0xff,0xed,0xff,0xef,0xff,0xe5,0xff,0xe1,0xff,0xe6,0xff, +0xea,0xff,0xec,0xff,0xf0,0xff,0xfb,0xff,0x9,0x0,0x3,0x0, +0xee,0xff,0xe5,0xff,0xeb,0xff,0xf6,0xff,0x2,0x0,0xfc,0xff, +0xec,0xff,0xf2,0xff,0xfe,0xff,0xf2,0xff,0xe9,0xff,0xf4,0xff, +0xf3,0xff,0xed,0xff,0xf8,0xff,0xfd,0xff,0xf4,0xff,0xfc,0xff, +0x8,0x0,0xf9,0xff,0xeb,0xff,0xf1,0xff,0xf0,0xff,0xe0,0xff, +0xde,0xff,0xee,0xff,0xf7,0xff,0xf2,0xff,0xef,0xff,0xf4,0xff, +0xf4,0xff,0xee,0xff,0xf2,0xff,0xf7,0xff,0xe6,0xff,0xd7,0xff, +0xe6,0xff,0xf5,0xff,0xed,0xff,0xe9,0xff,0xf3,0xff,0xf7,0xff, +0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf0,0xff,0xf3,0xff,0xfa,0xff, +0xf9,0xff,0xf2,0xff,0xf1,0xff,0xf4,0xff,0xef,0xff,0xee,0xff, +0xf6,0xff,0xf4,0xff,0xec,0xff,0xf4,0xff,0xfc,0xff,0xf7,0xff, +0xf8,0xff,0xfd,0xff,0xf5,0xff,0xf6,0xff,0x6,0x0,0x2,0x0, +0xf0,0xff,0xf3,0xff,0x0,0x0,0xfb,0xff,0xf2,0xff,0xf4,0xff, +0xf8,0xff,0xf2,0xff,0xe8,0xff,0xed,0xff,0xfd,0xff,0xfc,0xff, +0xf0,0xff,0xf8,0xff,0x1,0x0,0xf9,0xff,0xfd,0xff,0xc,0x0, +0xfe,0xff,0xe8,0xff,0xf1,0xff,0xfb,0xff,0xef,0xff,0xee,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0x4,0x0,0xa,0x0,0x8,0x0, +0x7,0x0,0x4,0x0,0xfd,0xff,0xf8,0xff,0xfa,0xff,0x1,0x0, +0x4,0x0,0x0,0x0,0xfe,0xff,0x2,0x0,0x4,0x0,0x4,0x0, +0xff,0xff,0xf8,0xff,0xfc,0xff,0x5,0x0,0xff,0xff,0xf4,0xff, +0xfa,0xff,0x4,0x0,0x0,0x0,0xff,0xff,0xa,0x0,0xc,0x0, +0xfd,0xff,0xf7,0xff,0x4,0x0,0x5,0x0,0xf5,0xff,0xfb,0xff, +0x12,0x0,0xe,0x0,0x0,0x0,0xe,0x0,0x19,0x0,0x7,0x0, +0xff,0xff,0x6,0x0,0xfe,0xff,0xf9,0xff,0xb,0x0,0xf,0x0, +0xfc,0xff,0xf6,0xff,0x1,0x0,0x4,0x0,0xfc,0xff,0xf3,0xff, +0xf5,0xff,0xfe,0xff,0x1,0x0,0x1,0x0,0x6,0x0,0x3,0x0, +0xfa,0xff,0xfe,0xff,0x2,0x0,0xf7,0xff,0xf3,0xff,0xfc,0xff, +0x4,0x0,0x11,0x0,0x1c,0x0,0xf,0x0,0x2,0x0,0xe,0x0, +0xe,0x0,0xf8,0xff,0xf8,0xff,0xc,0x0,0xc,0x0,0x2,0x0, +0x9,0x0,0xc,0x0,0x0,0x0,0xfe,0xff,0xa,0x0,0x9,0x0, +0xfe,0xff,0x9,0x0,0x1d,0x0,0x14,0x0,0x2,0x0,0x9,0x0, +0xd,0x0,0xf8,0xff,0xf1,0xff,0x3,0x0,0x5,0x0,0xf7,0xff, +0xfe,0xff,0x15,0x0,0x16,0x0,0xa,0x0,0xf,0x0,0x1a,0x0, +0x11,0x0,0x2,0x0,0x5,0x0,0xd,0x0,0x8,0x0,0x7,0x0, +0xe,0x0,0xd,0x0,0xd,0x0,0x13,0x0,0x9,0x0,0xfc,0xff, +0xd,0x0,0x18,0x0,0x3,0x0,0xf9,0xff,0x5,0x0,0xff,0xff, +0xf7,0xff,0x4,0x0,0x6,0x0,0xf9,0xff,0x1,0x0,0x10,0x0, +0x9,0x0,0x3,0x0,0xf,0x0,0x13,0x0,0x3,0x0,0xf9,0xff, +0x5,0x0,0xd,0x0,0x2,0x0,0x4,0x0,0x1c,0x0,0x18,0x0, +0xfa,0xff,0x0,0x0,0x1c,0x0,0x11,0x0,0xfe,0xff,0xc,0x0, +0x14,0x0,0x3,0x0,0x7,0x0,0x17,0x0,0xa,0x0,0xfb,0xff, +0xd,0x0,0x1d,0x0,0xf,0x0,0x4,0x0,0xc,0x0,0xf,0x0, +0x7,0x0,0x7,0x0,0x9,0x0,0x3,0x0,0x7,0x0,0x14,0x0, +0xc,0x0,0xff,0xff,0xb,0x0,0x16,0x0,0x12,0x0,0x18,0x0, +0x23,0x0,0x15,0x0,0x8,0x0,0x15,0x0,0x1b,0x0,0x7,0x0, +0x1,0x0,0x13,0x0,0x16,0x0,0x6,0x0,0x8,0x0,0x17,0x0, +0xb,0x0,0xf1,0xff,0xf7,0xff,0x7,0x0,0xf9,0xff,0xf8,0xff, +0x1b,0x0,0x21,0x0,0x8,0x0,0x12,0x0,0x26,0x0,0xb,0x0, +0xf9,0xff,0x17,0x0,0x1e,0x0,0x1,0x0,0x0,0x0,0x13,0x0, +0xe,0x0,0x4,0x0,0xc,0x0,0xd,0x0,0x0,0x0,0xfd,0xff, +0xb,0x0,0x13,0x0,0xe,0x0,0x8,0x0,0x4,0x0,0xff,0xff, +0x7,0x0,0x1b,0x0,0x1d,0x0,0x10,0x0,0x15,0x0,0x1a,0x0, +0x5,0x0,0xfa,0xff,0x9,0x0,0x8,0x0,0xf8,0xff,0x6,0x0, +0x17,0x0,0x9,0x0,0x7,0x0,0x20,0x0,0x17,0x0,0xed,0xff, +0xed,0xff,0x10,0x0,0x10,0x0,0xfe,0xff,0xf,0x0,0x18,0x0, +0xf3,0xff,0xe3,0xff,0xb,0x0,0x1e,0x0,0xb,0x0,0xe,0x0, +0x18,0x0,0x2,0x0,0xf6,0xff,0xa,0x0,0xb,0x0,0xf8,0xff, +0x0,0x0,0x15,0x0,0x12,0x0,0xa,0x0,0x16,0x0,0x21,0x0, +0x16,0x0,0xb,0x0,0x13,0x0,0x16,0x0,0x8,0x0,0x7,0x0, +0x11,0x0,0x9,0x0,0x3,0x0,0x11,0x0,0xd,0x0,0xf9,0xff, +0x3,0x0,0x12,0x0,0x1,0x0,0x0,0x0,0x19,0x0,0xc,0x0, +0xf5,0xff,0x13,0x0,0x2d,0x0,0xe,0x0,0xfd,0xff,0x1c,0x0, +0x23,0x0,0x5,0x0,0x7,0x0,0x23,0x0,0x1b,0x0,0x1,0x0, +0x8,0x0,0x17,0x0,0xb,0x0,0x8,0x0,0x22,0x0,0x2b,0x0, +0x1a,0x0,0x17,0x0,0x22,0x0,0x1b,0x0,0x13,0x0,0x24,0x0, +0x2d,0x0,0x15,0x0,0x8,0x0,0x1a,0x0,0x20,0x0,0x13,0x0, +0x18,0x0,0x20,0x0,0x13,0x0,0x15,0x0,0x28,0x0,0x23,0x0, +0x15,0x0,0x1c,0x0,0x23,0x0,0x1b,0x0,0x1b,0x0,0x23,0x0, +0x21,0x0,0x1f,0x0,0x29,0x0,0x27,0x0,0xc,0x0,0x5,0x0, +0x1e,0x0,0x18,0x0,0x1,0x0,0x17,0x0,0x2d,0x0,0xf,0x0, +0x6,0x0,0x22,0x0,0x15,0x0,0xfc,0xff,0xb,0x0,0x12,0x0, +0xfd,0xff,0xfa,0xff,0x7,0x0,0xd,0x0,0xc,0x0,0x9,0x0, +0xf,0x0,0x12,0x0,0xfe,0xff,0x2,0x0,0x20,0x0,0x13,0x0, +0xf8,0xff,0xc,0x0,0x11,0x0,0xf4,0xff,0xfb,0xff,0xd,0x0, +0xfc,0xff,0xf7,0xff,0x9,0x0,0xe,0x0,0x10,0x0,0xf,0x0, +0x3,0x0,0x0,0x0,0x1,0x0,0x6,0x0,0x12,0x0,0x3,0x0, +0xf4,0xff,0x18,0x0,0x21,0x0,0xee,0xff,0xf7,0xff,0x25,0x0, +0x4,0x0,0xe4,0xff,0xe,0x0,0x1c,0x0,0xfe,0xff,0x7,0x0, +0x19,0x0,0xb,0x0,0x7,0x0,0x13,0x0,0xe,0x0,0xf8,0xff, +0xf1,0xff,0xb,0x0,0x1d,0x0,0xa,0x0,0xc,0x0,0x2d,0x0, +0x2e,0x0,0x19,0x0,0xa,0x0,0xf2,0xff,0xfb,0xff,0x20,0x0, +0x6,0x0,0xdd,0xff,0xfd,0xff,0xc,0x0,0xf1,0xff,0x16,0x0, +0x3a,0x0,0x1,0x0,0xef,0xff,0x3e,0x0,0x5a,0x0,0x27,0x0, +0xe,0x0,0x14,0x0,0xf8,0xff,0xc9,0xff,0xc8,0xff,0xe5,0xff, +0xe2,0xff,0xe3,0xff,0xa,0x0,0xe,0x0,0xdf,0xff,0xe9,0xff, +0x21,0x0,0xa,0x0,0xe9,0xff,0x12,0x0,0xc,0x0,0xe7,0xff, +0xfe,0xff,0xfe,0xff,0xea,0xff,0xfa,0xff,0xfe,0xff,0xf9,0xff, +0x7,0x0,0x15,0x0,0x17,0x0,0x11,0x0,0x10,0x0,0xa,0x0, +0xe,0x0,0xe,0x0,0xe5,0xff,0xf9,0xff,0x26,0x0,0xf7,0xff, +0xf7,0xff,0x19,0x0,0xf7,0xff,0x6,0x0,0x1e,0x0,0xfd,0xff, +0xfa,0xff,0x13,0x0,0x3c,0x0,0x34,0x0,0xfe,0xff,0x18,0x0, +0x17,0x0,0xd6,0xff,0xe5,0xff,0x7,0x0,0x4,0x0,0xf6,0xff, +0x5,0x0,0x30,0x0,0xfd,0xff,0xf1,0xff,0x49,0x0,0x1c,0x0, +0xec,0xff,0x15,0x0,0xe2,0xff,0xb1,0xff,0xcc,0xff,0x8,0x0, +0x29,0x0,0xe7,0xff,0xf9,0xff,0x46,0x0,0x1d,0x0,0x5,0x0, +0xf3,0xff,0xec,0xff,0x2f,0x0,0x11,0x0,0xc,0x0,0x4d,0x0, +0xf9,0xff,0xd8,0xff,0x27,0x0,0x1f,0x0,0xb,0x0,0x16,0x0, +0x1b,0x0,0x1,0x0,0xf1,0xff,0x26,0x0,0x3,0x0,0xdf,0xff, +0x24,0x0,0xe3,0xff,0xa8,0xff,0xce,0xff,0x9f,0xff,0xd8,0xff, +0x33,0x0,0xb,0x0,0x24,0x0,0x1e,0x0,0xf4,0xff,0x22,0x0, +0xf4,0xff,0xc0,0xff,0xf1,0xff,0xfe,0xff,0x12,0x0,0x3f,0x0, +0x54,0x0,0x39,0x0,0x24,0x0,0x6b,0x0,0x37,0x0,0xb6,0xff, +0xea,0xff,0xec,0xff,0xc0,0xff,0x16,0x0,0x2c,0x0,0x2b,0x0, +0x37,0x0,0xc,0x0,0x2b,0x0,0x38,0x0,0x30,0x0,0x51,0x0, +0x22,0x0,0x58,0x0,0x8f,0x0,0xc5,0xff,0x86,0xff,0xe4,0xff, +0x6b,0xff,0x17,0xff,0xab,0xff,0x15,0x0,0x1f,0x0,0xaf,0x0, +0x8,0x1,0x3d,0x0,0x30,0x0,0xee,0x0,0x89,0x0,0x60,0x0, +0xca,0x0,0x38,0x0,0x9c,0xff,0x3f,0xff,0x1c,0xff,0xbc,0xff, +0x90,0xff,0x6,0xff,0xbf,0xff,0x23,0x0,0xd7,0xff,0x31,0x0, +0x77,0x0,0x22,0x0,0x18,0x0,0x3b,0x0,0xc0,0xff,0xc3,0xff, +0xa4,0x0,0x37,0x0,0x46,0xff,0x88,0xff,0x43,0xff,0xe8,0xfe, +0xca,0xff,0x3a,0x0,0x40,0x0,0x72,0x0,0xf0,0xff,0xa1,0xff, +0x4,0x0,0xf,0x0,0xda,0xff,0xee,0xff,0x2a,0x0,0x1d,0x0, +0xdb,0xff,0xbd,0xff,0xc2,0xff,0x13,0x0,0x29,0x0,0xaa,0xff, +0xc4,0xff,0x32,0x0,0xed,0xff,0xc7,0xff,0x7,0x0,0x3a,0x0, +0x5f,0x0,0x26,0x0,0xe1,0xff,0x15,0x0,0x36,0x0,0xe,0x0, +0x24,0x0,0x96,0x0,0xc2,0x0,0x6d,0x0,0x42,0x0,0x39,0x0, +0xf4,0xff,0x1d,0x0,0x88,0x0,0x39,0x0,0xe8,0xff,0x38,0x0, +0x33,0x0,0x7,0x0,0x6f,0x0,0x5f,0x0,0xcf,0xff,0xf0,0xff, +0x2e,0x0,0xf7,0xff,0xb1,0xff,0x8d,0xff,0xb,0x0,0x73,0x0, +0xf1,0xff,0xf5,0xff,0x50,0x0,0xcf,0xff,0xc7,0xff,0x33,0x0, +0xc1,0xff,0x94,0xff,0x38,0x0,0x48,0x0,0xb0,0xff,0xc0,0xff, +0x52,0x0,0xe1,0xff,0x4b,0xff,0x15,0x0,0x58,0x0,0x85,0xff, +0x9a,0xff,0xe3,0xff,0xac,0xff,0xf5,0xff,0x25,0x0,0xc,0x0, +0x9,0x0,0xc4,0xff,0xfa,0xff,0x2f,0x0,0x8f,0xff,0xdf,0xff, +0x8b,0x0,0xe5,0xff,0xd2,0xff,0x7c,0x0,0x8,0x0,0x86,0xff, +0xfe,0xff,0x81,0x0,0x3c,0x0,0xa5,0xff,0x1,0x0,0x79,0x0, +0xf9,0xff,0xef,0xff,0x2f,0x0,0xd3,0xff,0xee,0xff,0x8,0x0, +0xb1,0xff,0xf8,0xff,0x30,0x0,0x27,0x0,0x48,0x0,0xdb,0xff, +0xe7,0xff,0x70,0x0,0xb8,0xff,0x6f,0xff,0x68,0x0,0x59,0x0, +0xc9,0xff,0xf7,0xff,0x25,0x0,0xd,0x0,0xb8,0xff,0xb9,0xff, +0x31,0x0,0x0,0x0,0xcb,0xff,0x26,0x0,0x2,0x0,0x0,0x0, +0x51,0x0,0x3,0x0,0xec,0xff,0x21,0x0,0xfe,0xff,0x2,0x0, +0xd5,0xff,0xcf,0xff,0x66,0x0,0x15,0x0,0x9d,0xff,0x4c,0x0, +0x43,0x0,0x8e,0xff,0xce,0xff,0x30,0x0,0x1d,0x0,0xe5,0xff, +0xd2,0xff,0x35,0x0,0x21,0x0,0xb0,0xff,0xa,0x0,0x2a,0x0, +0xd3,0xff,0x20,0x0,0x34,0x0,0xd7,0xff,0x2,0x0,0x4b,0x0, +0x2c,0x0,0xe3,0xff,0x10,0x0,0x95,0x0,0x9,0x0,0x5e,0xff, +0x2e,0x0,0x7c,0x0,0xc6,0xff,0xa,0x0,0x6d,0x0,0x12,0x0, +0x3,0x0,0xf,0x0,0x4,0x0,0x1e,0x0,0x15,0x0,0x2c,0x0, +0x2d,0x0,0xe6,0xff,0x1e,0x0,0x58,0x0,0x2,0x0,0xfc,0xff, +0x2f,0x0,0xc,0x0,0xd8,0xff,0xed,0xff,0x5c,0x0,0x5a,0x0, +0xdf,0xff,0x2b,0x0,0x6e,0x0,0xd1,0xff,0xde,0xff,0x56,0x0, +0x1a,0x0,0x5,0x0,0x28,0x0,0x18,0x0,0x26,0x0,0x10,0x0, +0x10,0x0,0x26,0x0,0xd0,0xff,0xf3,0xff,0x57,0x0,0xdb,0xff, +0xbf,0xff,0x3f,0x0,0x10,0x0,0xf9,0xff,0x4f,0x0,0x2b,0x0, +0xe2,0xff,0xf8,0xff,0x4c,0x0,0x47,0x0,0xcf,0xff,0xe9,0xff, +0x2d,0x0,0xe8,0xff,0x17,0x0,0x28,0x0,0xa7,0xff,0xfc,0xff, +0x51,0x0,0xe6,0xff,0x3,0x0,0x1b,0x0,0xec,0xff,0x46,0x0, +0x27,0x0,0xcc,0xff,0x15,0x0,0xf8,0xff,0xcb,0xff,0x1d,0x0, +0x2,0x0,0xec,0xff,0x1f,0x0,0x2,0x0,0xfe,0xff,0xfb,0xff, +0xef,0xff,0x2a,0x0,0xf5,0xff,0xc6,0xff,0x29,0x0,0xc,0x0, +0xea,0xff,0x33,0x0,0xfb,0xff,0xe4,0xff,0x2,0x0,0xc0,0xff, +0x0,0x0,0x2b,0x0,0xc3,0xff,0xfc,0xff,0x16,0x0,0xc9,0xff, +0x37,0x0,0x40,0x0,0xcf,0xff,0x17,0x0,0x15,0x0,0xd1,0xff, +0x12,0x0,0x0,0x0,0xf4,0xff,0x28,0x0,0xd9,0xff,0xdf,0xff, +0x43,0x0,0x10,0x0,0xee,0xff,0x11,0x0,0x24,0x0,0x2c,0x0, +0xd2,0xff,0xc4,0xff,0x1a,0x0,0xcb,0xff,0xea,0xff,0x77,0x0, +0xea,0xff,0xc0,0xff,0x7e,0x0,0x4a,0x0,0xf1,0xff,0x15,0x0, +0xb6,0xff,0x69,0xff,0x7a,0xff,0x94,0xff,0xf0,0xff,0x24,0x0, +0x89,0x0,0x50,0x1,0x24,0x1,0x97,0x0,0x94,0x0,0xe,0x0, +0x5e,0xff,0x5a,0xff,0x87,0xff,0xc4,0xff,0xac,0xff,0x75,0xff, +0xe8,0xff,0xf7,0xff,0xa8,0xff,0x11,0x0,0xf5,0xff,0x74,0xff, +0xf6,0xff,0x36,0x0,0xd4,0xff,0xfe,0xff,0x2e,0x0,0x1f,0x0, +0x1c,0x0,0x10,0x0,0x3f,0x0,0x2f,0x0,0xde,0xff,0x38,0x0, +0x69,0x0,0xfe,0xff,0xb,0x0,0x40,0x0,0x1f,0x0,0xf4,0xff, +0xca,0xff,0xe1,0xff,0xc4,0xff,0x5b,0xff,0xbd,0xff,0x12,0x0, +0xa1,0xff,0xdd,0xff,0x41,0x0,0xe5,0xff,0xfd,0xff,0x56,0x0, +0x27,0x0,0x12,0x0,0x25,0x0,0x24,0x0,0x8,0x0,0xcf,0xff, +0xff,0xff,0x36,0x0,0xde,0xff,0xd8,0xff,0x3a,0x0,0x32,0x0, +0xfd,0xff,0x1,0x0,0x37,0x0,0x35,0x0,0xe7,0xff,0xc,0x0, +0x3a,0x0,0xbd,0xff,0xb1,0xff,0xf,0x0,0xce,0xff,0xba,0xff, +0x11,0x0,0xe6,0xff,0xa8,0xff,0xd1,0xff,0x4,0x0,0x22,0x0, +0x2c,0x0,0x3c,0x0,0x55,0x0,0x32,0x0,0x1a,0x0,0x3d,0x0, +0x20,0x0,0xd0,0xff,0xe8,0xff,0x42,0x0,0x2b,0x0,0xd7,0xff, +0x9,0x0,0x51,0x0,0x4,0x0,0xd2,0xff,0xfd,0xff,0xea,0xff, +0xd6,0xff,0xfe,0xff,0xee,0xff,0xca,0xff,0xf0,0xff,0x1d,0x0, +0x17,0x0,0xf,0x0,0x24,0x0,0x33,0x0,0x15,0x0,0xf5,0xff, +0x18,0x0,0x3f,0x0,0xe,0x0,0xf3,0xff,0x34,0x0,0x38,0x0, +0x8,0x0,0x32,0x0,0x4f,0x0,0x16,0x0,0x14,0x0,0x39,0x0, +0x1a,0x0,0xe8,0xff,0xe1,0xff,0xed,0xff,0xf3,0xff,0xf2,0xff, +0xfd,0xff,0x6,0x0,0xd,0x0,0x2c,0x0,0x32,0x0,0xfc,0xff, +0xe5,0xff,0x19,0x0,0x31,0x0,0xfa,0xff,0xe8,0xff,0x1b,0x0, +0x17,0x0,0xf3,0xff,0x14,0x0,0x22,0x0,0xf3,0xff,0xf3,0xff, +0x10,0x0,0xa,0x0,0x7,0x0,0x10,0x0,0xd,0x0,0x4,0x0, +0x6,0x0,0x13,0x0,0x8,0x0,0xef,0xff,0xb,0x0,0x32,0x0, +0x10,0x0,0xfb,0xff,0x35,0x0,0x43,0x0,0x8,0x0,0xe,0x0, +0x35,0x0,0x9,0x0,0xe4,0xff,0x10,0x0,0x1c,0x0,0xf9,0xff, +0x0,0x0,0x15,0x0,0xfe,0xff,0xeb,0xff,0x1,0x0,0xf,0x0, +0xf5,0xff,0xe8,0xff,0x7,0x0,0xb,0x0,0xe3,0xff,0xf0,0xff, +0x1b,0x0,0xf7,0xff,0xd6,0xff,0x9,0x0,0xe,0x0,0xcf,0xff, +0xea,0xff,0x2b,0x0,0xa,0x0,0xf0,0xff,0x29,0x0,0x2e,0x0, +0xf3,0xff,0xfa,0xff,0x28,0x0,0x17,0x0,0xf7,0xff,0x18,0x0, +0x40,0x0,0x22,0x0,0x6,0x0,0x25,0x0,0x20,0x0,0xde,0xff, +0xea,0xff,0x26,0x0,0xfe,0xff,0xd3,0xff,0x10,0x0,0x20,0x0, +0xde,0xff,0xf5,0xff,0x30,0x0,0x4,0x0,0xe1,0xff,0x19,0x0, +0x1f,0x0,0xe5,0xff,0xf9,0xff,0x31,0x0,0xb,0x0,0xd1,0xff, +0xfe,0xff,0x3a,0x0,0xe,0x0,0xe6,0xff,0x2a,0x0,0x46,0x0, +0xfb,0xff,0xec,0xff,0x19,0x0,0xf0,0xff,0xd8,0xff,0x2a,0x0, +0x32,0x0,0xdc,0xff,0xf5,0xff,0x3e,0x0,0x9,0x0,0xd6,0xff, +0x11,0x0,0x23,0x0,0xe8,0xff,0xf4,0xff,0x2c,0x0,0x6,0x0, +0xcb,0xff,0x4,0x0,0x4d,0x0,0x1c,0x0,0xf1,0xff,0x34,0x0, +0x40,0x0,0xe8,0xff,0xf4,0xff,0x3d,0x0,0x6,0x0,0xce,0xff, +0x1d,0x0,0x30,0x0,0xdd,0xff,0xf3,0xff,0x37,0x0,0x4,0x0, +0xe1,0xff,0x34,0x0,0x4d,0x0,0xff,0xff,0xfb,0xff,0x3c,0x0, +0x20,0x0,0xd9,0xff,0xfe,0xff,0x34,0x0,0xf7,0xff,0xd5,0xff, +0x2d,0x0,0x34,0x0,0xce,0xff,0xec,0xff,0x53,0x0,0x21,0x0, +0xe4,0xff,0x2e,0x0,0x36,0x0,0xdd,0xff,0xff,0xff,0x51,0x0, +0x12,0x0,0xd3,0xff,0x1e,0x0,0x48,0x0,0xa,0x0,0x7,0x0, +0x49,0x0,0x34,0x0,0xf7,0xff,0x24,0x0,0x4f,0x0,0xf9,0xff, +0xd1,0xff,0x3a,0x0,0x49,0x0,0xe2,0xff,0x3,0x0,0x61,0x0, +0x16,0x0,0xd2,0xff,0x30,0x0,0x45,0x0,0xdf,0xff,0xf0,0xff, +0x41,0x0,0xb,0x0,0xcb,0xff,0x5,0x0,0x1b,0x0,0xda,0xff, +0xea,0xff,0x40,0x0,0x26,0x0,0xda,0xff,0x14,0x0,0x60,0x0, +0x16,0x0,0xe8,0xff,0x47,0x0,0x4c,0x0,0xe1,0xff,0x7,0x0, +0x63,0x0,0x12,0x0,0xcf,0xff,0x2c,0x0,0x34,0x0,0xc5,0xff, +0xdc,0xff,0x34,0x0,0x1,0x0,0xcd,0xff,0x20,0x0,0x49,0x0, +0xfc,0xff,0xee,0xff,0x35,0x0,0x21,0x0,0xdc,0xff,0x14,0x0, +0x52,0x0,0xfa,0xff,0xd2,0xff,0x43,0x0,0x47,0x0,0xcb,0xff, +0xeb,0xff,0x51,0x0,0xe,0x0,0xd8,0xff,0x3b,0x0,0x4c,0x0, +0xf4,0xff,0x19,0x0,0x64,0x0,0x15,0x0,0xcd,0xff,0x16,0x0, +0x38,0x0,0xe2,0xff,0xda,0xff,0x38,0x0,0x2c,0x0,0xda,0xff, +0xe,0x0,0x5c,0x0,0x12,0x0,0xe4,0xff,0x42,0x0,0x3c,0x0, +0xcc,0xff,0xf8,0xff,0x54,0x0,0x0,0x0,0xc9,0xff,0x32,0x0, +0x41,0x0,0xe0,0xff,0xfd,0xff,0x50,0x0,0x1a,0x0,0xec,0xff, +0x43,0x0,0x65,0x0,0x3,0x0,0xeb,0xff,0x42,0x0,0x35,0x0, +0xdc,0xff,0x2,0x0,0x42,0x0,0xf5,0xff,0xd3,0xff,0x3e,0x0, +0x36,0x0,0xc6,0xff,0xfb,0xff,0x5b,0x0,0x4,0x0,0xc4,0xff, +0x25,0x0,0x37,0x0,0xe0,0xff,0xfd,0xff,0x46,0x0,0xc,0x0, +0xd6,0xff,0x23,0x0,0x4c,0x0,0x1,0x0,0xf6,0xff,0x44,0x0, +0x28,0x0,0xcd,0xff,0xff,0xff,0x48,0x0,0xf7,0xff,0xd2,0xff, +0x40,0x0,0x3e,0x0,0xd1,0xff,0xff,0xff,0x54,0x0,0x0,0x0, +0xd1,0xff,0x3f,0x0,0x51,0x0,0xeb,0xff,0xf7,0xff,0x49,0x0, +0x2c,0x0,0xf9,0xff,0x27,0x0,0x3b,0x0,0xf8,0xff,0xf6,0xff, +0x42,0x0,0x27,0x0,0xdc,0xff,0x1c,0x0,0x5b,0x0,0xf6,0xff, +0xce,0xff,0x42,0x0,0x3c,0x0,0xc8,0xff,0xfe,0xff,0x67,0x0, +0x1e,0x0,0xda,0xff,0x29,0x0,0x42,0x0,0xf6,0xff,0xf8,0xff, +0x28,0x0,0x5,0x0,0xea,0xff,0x2a,0x0,0x43,0x0,0xfa,0xff, +0xf1,0xff,0x39,0x0,0x1b,0x0,0xc8,0xff,0xff,0xff,0x3d,0x0, +0xe3,0xff,0xca,0xff,0x46,0x0,0x47,0x0,0xd6,0xff,0x1,0x0, +0x5e,0x0,0x17,0x0,0xd6,0xff,0x1a,0x0,0x2c,0x0,0xe4,0xff, +0xea,0xff,0x25,0x0,0x16,0x0,0xf6,0xff,0x1c,0x0,0x26,0x0, +0xe6,0xff,0xea,0xff,0x35,0x0,0x15,0x0,0xc4,0xff,0x8,0x0, +0x59,0x0,0x4,0x0,0xd6,0xff,0x3a,0x0,0x3b,0x0,0xd6,0xff, +0xf5,0xff,0x3d,0x0,0x1,0x0,0xe0,0xff,0x35,0x0,0x4d,0x0, +0x5,0x0,0xfc,0xff,0x27,0x0,0x18,0x0,0x3,0x0,0x36,0x0, +0x48,0x0,0xfc,0xff,0xeb,0xff,0x3a,0x0,0x2c,0x0,0xd8,0xff, +0x5,0x0,0x51,0x0,0xf,0x0,0xe5,0xff,0x31,0x0,0x2a,0x0, +0xd9,0xff,0xfe,0xff,0x38,0x0,0xfc,0xff,0xde,0xff,0x26,0x0, +0x30,0x0,0xf2,0xff,0x0,0x0,0x3c,0x0,0x21,0x0,0xea,0xff, +0x12,0x0,0x45,0x0,0x13,0x0,0xf4,0xff,0x2f,0x0,0x2e,0x0, +0xed,0xff,0x13,0x0,0x48,0x0,0xfd,0xff,0xd5,0xff,0x28,0x0, +0x34,0x0,0xf5,0xff,0x11,0x0,0x3b,0x0,0x9,0x0,0xf6,0xff, +0x2e,0x0,0x23,0x0,0xdf,0xff,0xf0,0xff,0x35,0x0,0x1f,0x0, +0xdc,0xff,0xfa,0xff,0x35,0x0,0xd,0x0,0xee,0xff,0x31,0x0, +0x3d,0x0,0xf8,0xff,0xb,0x0,0x47,0x0,0x1d,0x0,0xff,0xff, +0x35,0x0,0x2e,0x0,0xfb,0xff,0x20,0x0,0x45,0x0,0xb,0x0, +0xf4,0xff,0x33,0x0,0x43,0x0,0xc,0x0,0x9,0x0,0x3f,0x0, +0x39,0x0,0x6,0x0,0x1e,0x0,0x51,0x0,0x29,0x0,0x9,0x0, +0x47,0x0,0x4d,0x0,0x0,0x0,0xd,0x0,0x4a,0x0,0x27,0x0, +0xb,0x0,0x42,0x0,0x45,0x0,0x10,0x0,0x1c,0x0,0x3b,0x0, +0x1b,0x0,0x6,0x0,0x24,0x0,0x22,0x0,0xf6,0xff,0xfa,0xff, +0x2d,0x0,0x29,0x0,0xf6,0xff,0x9,0x0,0x38,0x0,0xe,0x0, +0xed,0xff,0x32,0x0,0x44,0x0,0x0,0x0,0xf,0x0,0x48,0x0, +0x18,0x0,0xe5,0xff,0xf,0x0,0x21,0x0,0xfc,0xff,0x1,0x0, +0x1e,0x0,0x12,0x0,0x5,0x0,0x1a,0x0,0x22,0x0,0x8,0x0, +0x1,0x0,0x1d,0x0,0x10,0x0,0xe0,0xff,0xf8,0xff,0x2c,0x0, +0x4,0x0,0xe6,0xff,0x2e,0x0,0x43,0x0,0xfe,0xff,0x9,0x0, +0x42,0x0,0x18,0x0,0xe5,0xff,0x11,0x0,0x30,0x0,0xc,0x0, +0x2,0x0,0x28,0x0,0x3c,0x0,0x2e,0x0,0x1c,0x0,0x13,0x0, +0x8,0x0,0x10,0x0,0x2a,0x0,0x14,0x0,0xe3,0xff,0xd,0x0, +0x5e,0x0,0x3f,0x0,0xb,0x0,0x39,0x0,0x45,0x0,0xfa,0xff, +0xf8,0xff,0x2f,0x0,0x16,0x0,0xef,0xff,0x15,0x0,0x33,0x0, +0x16,0x0,0x6,0x0,0x20,0x0,0x2d,0x0,0x1e,0x0,0x1a,0x0, +0x25,0x0,0x17,0x0,0x9,0x0,0x2f,0x0,0x41,0x0,0xf,0x0, +0x7,0x0,0x2c,0x0,0xe,0x0,0xf4,0xff,0x33,0x0,0x3f,0x0, +0xf0,0xff,0xee,0xff,0x32,0x0,0x2e,0x0,0x9,0x0,0x1c,0x0, +0x31,0x0,0x1c,0x0,0xf,0x0,0x1e,0x0,0x1b,0x0,0xfc,0xff, +0x3,0x0,0x2f,0x0,0x25,0x0,0xf8,0xff,0xc,0x0,0x28,0x0, +0x3,0x0,0x0,0x0,0x2a,0x0,0x6,0x0,0xd5,0xff,0x6,0x0, +0x2b,0x0,0x1,0x0,0xfc,0xff,0x22,0x0,0x17,0x0,0x6,0x0, +0x24,0x0,0x29,0x0,0xfe,0xff,0xf3,0xff,0x24,0x0,0x37,0x0, +0x3,0x0,0xf1,0xff,0x27,0x0,0x31,0x0,0x7,0x0,0x19,0x0, +0x2f,0x0,0xfa,0xff,0xeb,0xff,0x22,0x0,0x1b,0x0,0xf4,0xff, +0x14,0x0,0x2d,0x0,0x10,0x0,0x17,0x0,0x2f,0x0,0xc,0x0, +0xf1,0xff,0x1c,0x0,0x37,0x0,0x8,0x0,0xe2,0xff,0x5,0x0, +0x23,0x0,0xfa,0xff,0xe9,0xff,0x1b,0x0,0x1a,0x0,0xe9,0xff, +0x3,0x0,0x29,0x0,0xfd,0xff,0xf1,0xff,0x28,0x0,0x20,0x0, +0xf9,0xff,0x17,0x0,0x29,0x0,0x4,0x0,0x7,0x0,0x29,0x0, +0x13,0x0,0xf2,0xff,0xc,0x0,0x2b,0x0,0x11,0x0,0xf5,0xff, +0x13,0x0,0x23,0x0,0xee,0xff,0xe2,0xff,0x27,0x0,0x30,0x0, +0xf8,0xff,0x7,0x0,0x29,0x0,0x2,0x0,0xf6,0xff,0x1f,0x0, +0xf,0x0,0xf7,0xff,0x29,0x0,0x39,0x0,0xfd,0xff,0xf8,0xff, +0x2e,0x0,0x2d,0x0,0xfb,0xff,0xfa,0xff,0x22,0x0,0x21,0x0, +0x3,0x0,0xf,0x0,0x20,0x0,0x1,0x0,0x3,0x0,0x3a,0x0, +0x28,0x0,0xe7,0xff,0xfd,0xff,0x21,0x0,0xfa,0xff,0xfa,0xff, +0x2f,0x0,0x1a,0x0,0xf1,0xff,0x18,0x0,0x2e,0x0,0xf9,0xff, +0xeb,0xff,0x22,0x0,0x38,0x0,0x12,0x0,0xff,0xff,0x11,0x0, +0xe,0x0,0xf8,0xff,0xd,0x0,0x1f,0x0,0xf4,0xff,0xe8,0xff, +0x1f,0x0,0x22,0x0,0xfc,0xff,0x15,0x0,0x25,0x0,0xf5,0xff, +0xfd,0xff,0x36,0x0,0x15,0x0,0xdf,0xff,0x8,0x0,0x35,0x0, +0x10,0x0,0xee,0xff,0x3,0x0,0x13,0x0,0x4,0x0,0x7,0x0, +0x21,0x0,0x15,0x0,0xf1,0xff,0x5,0x0,0x2b,0x0,0x13,0x0, +0x1,0x0,0x1f,0x0,0x15,0x0,0xfa,0xff,0x22,0x0,0x2b,0x0, +0xe4,0xff,0xdb,0xff,0x1c,0x0,0x17,0x0,0xe9,0xff,0xf8,0xff, +0x15,0x0,0xa,0x0,0x9,0x0,0x1f,0x0,0x1b,0x0,0xfc,0xff, +0xfe,0xff,0x24,0x0,0x25,0x0,0x0,0x0,0x2,0x0,0x16,0x0, +0x1,0x0,0x1,0x0,0x25,0x0,0x5,0x0,0xd3,0xff,0xfc,0xff, +0x22,0x0,0xf5,0xff,0xe7,0xff,0xa,0x0,0x4,0x0,0xfb,0xff, +0x23,0x0,0x2d,0x0,0x3,0x0,0xfd,0xff,0x2c,0x0,0x38,0x0, +0x8,0x0,0xeb,0xff,0x6,0x0,0x11,0x0,0xf8,0xff,0x2,0x0, +0x14,0x0,0xfe,0xff,0xd,0x0,0x42,0x0,0x22,0x0,0xe0,0xff, +0xfb,0xff,0x23,0x0,0x8,0x0,0x4,0x0,0x20,0x0,0xc,0x0, +0xf4,0xff,0x11,0x0,0x1f,0x0,0xfe,0xff,0xf4,0xff,0xc,0x0, +0xe,0x0,0xf0,0xff,0xf3,0xff,0x1a,0x0,0x14,0x0,0xf3,0xff, +0xe,0x0,0x2a,0x0,0xfd,0xff,0xed,0xff,0x17,0x0,0x4,0x0, +0xd4,0xff,0xf3,0xff,0xb,0x0,0xe7,0xff,0xf2,0xff,0x22,0x0, +0x5,0x0,0xcc,0xff,0xda,0xff,0xfe,0xff,0xfc,0xff,0xf9,0xff, +0x15,0x0,0x25,0x0,0xa,0x0,0xf9,0xff,0xc,0x0,0xff,0xff, +0xdd,0xff,0xf7,0xff,0x10,0x0,0xe0,0xff,0xcf,0xff,0x0,0x0, +0x8,0x0,0x6,0x0,0x42,0x0,0x4e,0x0,0x0,0x0,0xe9,0xff, +0x11,0x0,0x2,0x0,0xd5,0xff,0xe5,0xff,0x17,0x0,0x28,0x0, +0x1f,0x0,0x1f,0x0,0x1b,0x0,0x0,0x0,0xf6,0xff,0x8,0x0, +0xf4,0xff,0xd0,0xff,0xf3,0xff,0x24,0x0,0x1a,0x0,0x1b,0x0, +0x2d,0x0,0xfd,0xff,0xd8,0xff,0x7,0x0,0x12,0x0,0xd4,0xff, +0xd8,0xff,0x21,0x0,0x37,0x0,0x1d,0x0,0x15,0x0,0x16,0x0, +0x2,0x0,0xea,0xff,0xf0,0xff,0x1,0x0,0xf3,0xff,0xed,0xff, +0x16,0x0,0x31,0x0,0x24,0x0,0x1b,0x0,0xb,0x0,0xf3,0xff, +0xd,0x0,0x21,0x0,0xe4,0xff,0xc8,0xff,0x14,0x0,0x41,0x0, +0x22,0x0,0x1b,0x0,0x25,0x0,0x7,0x0,0xf0,0xff,0x0,0x0, +0x8,0x0,0xf6,0xff,0xf0,0xff,0xc,0x0,0x25,0x0,0x17,0x0, +0x5,0x0,0x7,0x0,0xfc,0xff,0xf6,0xff,0x12,0x0,0xd,0x0, +0xde,0xff,0xea,0xff,0x1b,0x0,0x15,0x0,0xe,0x0,0x28,0x0, +0x18,0x0,0xfa,0xff,0x17,0x0,0x30,0x0,0xb,0x0,0xf3,0xff, +0x13,0x0,0x32,0x0,0x28,0x0,0x8,0x0,0xfb,0xff,0x6,0x0, +0x16,0x0,0x24,0x0,0x1e,0x0,0xf2,0xff,0xe6,0xff,0x1f,0x0, +0x34,0x0,0x7,0x0,0xfe,0xff,0xe,0x0,0xf7,0xff,0xf5,0xff, +0x1b,0x0,0x10,0x0,0xef,0xff,0xd,0x0,0x31,0x0,0x1b,0x0, +0xf8,0xff,0xf6,0xff,0x3,0x0,0x9,0x0,0xb,0x0,0x12,0x0, +0xe,0x0,0xfb,0xff,0xa,0x0,0x2d,0x0,0x16,0x0,0xed,0xff, +0x1,0x0,0x14,0x0,0xfa,0xff,0xfc,0xff,0x15,0x0,0xa,0x0, +0x7,0x0,0x23,0x0,0x20,0x0,0x4,0x0,0x0,0x0,0x6,0x0, +0x4,0x0,0x9,0x0,0x16,0x0,0x1e,0x0,0x18,0x0,0xf,0x0, +0x1d,0x0,0x25,0x0,0x4,0x0,0xf2,0xff,0x10,0x0,0x15,0x0, +0xfe,0xff,0x3,0x0,0x5,0x0,0xf2,0xff,0x3,0x0,0x1e,0x0, +0x7,0x0,0xec,0xff,0xfc,0xff,0x10,0x0,0xe,0x0,0x5,0x0, +0x0,0x0,0x5,0x0,0xc,0x0,0xc,0x0,0x9,0x0,0xfc,0xff, +0xee,0xff,0x8,0x0,0x29,0x0,0x11,0x0,0xf5,0xff,0xc,0x0, +0x13,0x0,0xf7,0xff,0xf5,0xff,0x0,0x0,0xf3,0xff,0xf2,0xff, +0x6,0x0,0xa,0x0,0xff,0xff,0xf3,0xff,0xf0,0xff,0x3,0x0, +0xf,0x0,0xfd,0xff,0xec,0xff,0xf2,0xff,0x0,0x0,0x7,0x0, +0xfb,0xff,0xec,0xff,0xfd,0xff,0x13,0x0,0x5,0x0,0xfa,0xff, +0x5,0x0,0xfa,0xff,0xf4,0xff,0x1c,0x0,0x29,0x0,0xf9,0xff, +0xdf,0xff,0xf6,0xff,0x7,0x0,0xff,0xff,0xf2,0xff,0xec,0xff, +0xf6,0xff,0x5,0x0,0x9,0x0,0x7,0x0,0x4,0x0,0x1,0x0, +0x8,0x0,0xa,0x0,0xff,0xff,0xf8,0xff,0xee,0xff,0xe5,0xff, +0x0,0x0,0x1e,0x0,0x2,0x0,0xe8,0xff,0xa,0x0,0x1d,0x0, +0x0,0x0,0xf8,0xff,0x8,0x0,0x3,0x0,0x3,0x0,0x18,0x0, +0x19,0x0,0x1,0x0,0xf7,0xff,0x6,0x0,0xf,0x0,0x3,0x0, +0xf9,0xff,0xfd,0xff,0x2,0x0,0xf,0x0,0x24,0x0,0x11,0x0, +0xe3,0xff,0xef,0xff,0x19,0x0,0x9,0x0,0xec,0xff,0x4,0x0, +0x10,0x0,0xff,0xff,0x14,0x0,0x2e,0x0,0x9,0x0,0xe4,0xff, +0x4,0x0,0x29,0x0,0x13,0x0,0xee,0xff,0xf6,0xff,0xd,0x0, +0x8,0x0,0x0,0x0,0xb,0x0,0x8,0x0,0xfd,0xff,0x10,0x0, +0x1b,0x0,0xfc,0xff,0xf0,0xff,0x8,0x0,0xf,0x0,0x10,0x0, +0x1c,0x0,0x8,0x0,0xe4,0xff,0xf6,0xff,0x18,0x0,0x3,0x0, +0xe9,0xff,0xfc,0xff,0x13,0x0,0x6,0x0,0xfd,0xff,0x12,0x0, +0x1b,0x0,0x0,0x0,0xf7,0xff,0x10,0x0,0x6,0x0,0xde,0xff, +0xe9,0xff,0x16,0x0,0x15,0x0,0xfc,0xff,0xfe,0xff,0x5,0x0, +0xa,0x0,0x1a,0x0,0x15,0x0,0xf2,0xff,0xde,0xff,0xe8,0xff, +0xf8,0xff,0xff,0xff,0xff,0xff,0x4,0x0,0x13,0x0,0x1d,0x0, +0x20,0x0,0x1c,0x0,0x5,0x0,0xf3,0xff,0x4,0x0,0xf,0x0, +0xf0,0xff,0xda,0xff,0xed,0xff,0x0,0x0,0x4,0x0,0x3,0x0, +0xfa,0xff,0xf2,0xff,0xf8,0xff,0xf6,0xff,0xea,0xff,0xe2,0xff, +0xe1,0xff,0xea,0xff,0xfd,0xff,0x9,0x0,0xb,0x0,0x9,0x0, +0x1,0x0,0x4,0x0,0x13,0x0,0x7,0x0,0xe8,0xff,0xf3,0xff, +0x16,0x0,0x15,0x0,0x2,0x0,0xfd,0xff,0xf8,0xff,0xf7,0xff, +0x5,0x0,0x9,0x0,0xfb,0xff,0xf1,0xff,0xf7,0xff,0xb,0x0, +0x15,0x0,0x5,0x0,0xf4,0xff,0xfa,0xff,0xd,0x0,0x1d,0x0, +0x1f,0x0,0x9,0x0,0x4,0x0,0x23,0x0,0x2f,0x0,0x17,0x0, +0x8,0x0,0x5,0x0,0xfd,0xff,0x5,0x0,0xf,0x0,0xf9,0xff, +0xe5,0xff,0xf0,0xff,0xfe,0xff,0x4,0x0,0xd,0x0,0xc,0x0, +0x5,0x0,0x13,0x0,0x23,0x0,0x10,0x0,0xea,0xff,0xea,0xff, +0x14,0x0,0x20,0x0,0xfd,0xff,0xfa,0xff,0x1a,0x0,0x13,0x0, +0xff,0xff,0x19,0x0,0x1f,0x0,0xf6,0xff,0xf5,0xff,0x1e,0x0, +0x1e,0x0,0xa,0x0,0x16,0x0,0x1f,0x0,0x19,0x0,0x23,0x0, +0x2a,0x0,0xe,0x0,0xf5,0xff,0x6,0x0,0x18,0x0,0xfd,0xff, +0xe1,0xff,0xf2,0xff,0xfc,0xff,0xe9,0xff,0xf9,0xff,0x12,0x0, +0xf0,0xff,0xdb,0xff,0xf,0x0,0x23,0x0,0xf8,0xff,0xfb,0xff, +0x1d,0x0,0x9,0x0,0xf6,0xff,0x16,0x0,0x18,0x0,0xed,0xff, +0xf3,0xff,0x25,0x0,0x26,0x0,0x0,0x0,0xc,0x0,0x2f,0x0, +0x1a,0x0,0xf9,0xff,0x10,0x0,0x15,0x0,0xe6,0xff,0xea,0xff, +0x1c,0x0,0x10,0x0,0xed,0xff,0x8,0x0,0x1a,0x0,0xfb,0xff, +0xf8,0xff,0xd,0x0,0xfc,0xff,0xf3,0xff,0x12,0x0,0x12,0x0, +0xe7,0xff,0xe0,0xff,0xc,0x0,0x1b,0x0,0xfe,0xff,0xf8,0xff, +0xc,0x0,0x1,0x0,0xec,0xff,0x2,0x0,0x11,0x0,0xfa,0xff, +0xfd,0xff,0x13,0x0,0xff,0xff,0xef,0xff,0xa,0x0,0xe,0x0, +0xf8,0xff,0x8,0x0,0x1d,0x0,0x4,0x0,0xf1,0xff,0x6,0x0, +0xf,0x0,0xf4,0xff,0xe7,0xff,0xfd,0xff,0xa,0x0,0xf7,0xff, +0xef,0xff,0x4,0x0,0x6,0x0,0xf9,0xff,0xfe,0xff,0x0,0x0, +0xed,0xff,0xee,0xff,0xf9,0xff,0xee,0xff,0xed,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xf,0x0,0xd,0x0,0xf4,0xff,0xee,0xff, +0xf8,0xff,0xfc,0xff,0x0,0x0,0x7,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0xe,0x0,0xd,0x0,0xfb,0xff,0xf5,0xff,0x4,0x0, +0x7,0x0,0x1,0x0,0xb,0x0,0x4,0x0,0xe9,0xff,0xf2,0xff, +0xa,0x0,0xf6,0xff,0xe2,0xff,0xfe,0xff,0x1b,0x0,0x18,0x0, +0xa,0x0,0x7,0x0,0xd,0x0,0xb,0x0,0x2,0x0,0xfd,0xff, +0xfa,0xff,0xf5,0xff,0x5,0x0,0x1c,0x0,0x13,0x0,0xff,0xff, +0x0,0x0,0xfc,0xff,0xe9,0xff,0xdd,0xff,0xcc,0xff,0xb9,0xff, +0xcf,0xff,0xfc,0xff,0x9,0x0,0xff,0xff,0x2,0x0,0x10,0x0, +0x17,0x0,0x12,0x0,0xb,0x0,0x4,0x0,0xf6,0xff,0xf5,0xff, +0x12,0x0,0x14,0x0,0xf0,0xff,0xf5,0xff,0x1e,0x0,0x19,0x0, +0xfc,0xff,0x5,0x0,0x9,0x0,0xf0,0xff,0xf4,0xff,0x11,0x0, +0x5,0x0,0xe6,0xff,0xef,0xff,0x10,0x0,0xa,0x0,0xf0,0xff, +0xfa,0xff,0xc,0x0,0xfd,0xff,0x2,0x0,0x29,0x0,0x1a,0x0, +0xe6,0xff,0xf8,0xff,0x22,0x0,0xa,0x0,0xf4,0xff,0x10,0x0, +0x16,0x0,0xfe,0xff,0x1,0x0,0xff,0xff,0xd8,0xff,0xd0,0xff, +0x2,0x0,0x1a,0x0,0xf4,0xff,0xdc,0xff,0xf1,0xff,0xf0,0xff, +0xdc,0xff,0xed,0xff,0xf5,0xff,0xca,0xff,0xcf,0xff,0x18,0x0, +0x1f,0x0,0xe7,0xff,0xf1,0xff,0x19,0x0,0x8,0x0,0x2,0x0, +0x23,0x0,0x12,0x0,0xe6,0xff,0xff,0xff,0x28,0x0,0x9,0x0, +0xde,0xff,0xfd,0xff,0x27,0x0,0x12,0x0,0xf8,0xff,0xff,0xff, +0xe4,0xff,0xbb,0xff,0xdc,0xff,0x5,0x0,0xe3,0xff,0xd7,0xff, +0x10,0x0,0x21,0x0,0x4,0x0,0x10,0x0,0x19,0x0,0xf5,0xff, +0xf5,0xff,0x1d,0x0,0x15,0x0,0xee,0xff,0xfb,0xff,0x21,0x0, +0x1e,0x0,0xc,0x0,0x12,0x0,0xa,0x0,0xec,0xff,0xf6,0xff, +0x17,0x0,0xfc,0xff,0xd7,0xff,0xfb,0xff,0x20,0x0,0xd,0x0, +0xd,0x0,0x1a,0x0,0xf4,0xff,0xeb,0xff,0x28,0x0,0x2d,0x0, +0xea,0xff,0xe6,0xff,0x19,0x0,0x13,0x0,0xee,0xff,0xf5,0xff, +0xff,0xff,0xe6,0xff,0xeb,0xff,0x1e,0x0,0x23,0x0,0xf1,0xff, +0xf1,0xff,0x1e,0x0,0x14,0x0,0xf4,0xff,0xfe,0xff,0xf9,0xff, +0xe6,0xff,0x10,0x0,0x2e,0x0,0xfa,0xff,0xe8,0xff,0x22,0x0, +0x24,0x0,0xef,0xff,0xf5,0xff,0x12,0x0,0xf9,0xff,0xf3,0xff, +0x26,0x0,0x2b,0x0,0xed,0xff,0xe6,0xff,0x22,0x0,0x1b,0x0, +0xdd,0xff,0xed,0xff,0x1a,0x0,0xfa,0xff,0xed,0xff,0x27,0x0, +0x21,0x0,0xe0,0xff,0xfc,0xff,0x37,0x0,0x13,0x0,0xeb,0xff, +0x8,0x0,0xa,0x0,0xea,0xff,0x0,0x0,0x21,0x0,0xfb,0xff, +0xd7,0xff,0x2,0x0,0x24,0x0,0xf4,0xff,0xd6,0xff,0xfe,0xff, +0x4,0x0,0xe4,0xff,0x7,0x0,0x2c,0x0,0xf8,0xff,0xe3,0xff, +0x27,0x0,0x30,0x0,0xf3,0xff,0xfa,0xff,0x21,0x0,0x8,0x0, +0xfa,0xff,0x21,0x0,0x1d,0x0,0xf1,0xff,0xfd,0xff,0x29,0x0, +0xf,0x0,0xd7,0xff,0xe4,0xff,0x8,0x0,0xef,0xff,0xdc,0xff, +0x1,0x0,0x1,0x0,0xdf,0xff,0x6,0x0,0x35,0x0,0x0,0x0, +0xd7,0xff,0x5,0x0,0xf,0x0,0xe1,0xff,0xe5,0xff,0x4,0x0, +0xf7,0xff,0xf6,0xff,0x22,0x0,0x2d,0x0,0x2,0x0,0xf0,0xff, +0xe,0x0,0x11,0x0,0xed,0xff,0xee,0xff,0xa,0x0,0xfe,0xff, +0xf6,0xff,0x18,0x0,0x13,0x0,0xe7,0xff,0xef,0xff,0x7,0x0, +0xf1,0xff,0xf2,0xff,0x13,0x0,0x6,0x0,0xf3,0xff,0x17,0x0, +0x27,0x0,0xf7,0xff,0xe3,0xff,0x3,0x0,0x8,0x0,0xe8,0xff, +0xeb,0xff,0x12,0x0,0x10,0x0,0xf5,0xff,0x7,0x0,0x16,0x0, +0xe7,0xff,0xdb,0xff,0x10,0x0,0x14,0x0,0xee,0xff,0xff,0xff, +0x10,0x0,0xec,0xff,0xea,0xff,0xa,0x0,0xf6,0xff,0xdc,0xff, +0x0,0x0,0x1e,0x0,0x7,0x0,0xf5,0xff,0x2,0x0,0x5,0x0, +0xfb,0xff,0xa,0x0,0x13,0x0,0xef,0xff,0xe2,0xff,0x19,0x0, +0x21,0x0,0xdf,0xff,0xe3,0xff,0x1d,0x0,0x1,0x0,0xd9,0xff, +0xd,0x0,0x21,0x0,0xe2,0xff,0xe5,0xff,0x22,0x0,0x11,0x0, +0xdf,0xff,0xf7,0xff,0x1b,0x0,0x2,0x0,0xec,0xff,0x2,0x0, +0xfd,0xff,0xda,0xff,0xec,0xff,0x12,0x0,0xf0,0xff,0xd4,0xff, +0xf,0x0,0x21,0x0,0xe4,0xff,0xee,0xff,0x28,0x0,0xff,0xff, +0xd3,0xff,0xc,0x0,0x21,0x0,0xdf,0xff,0xde,0xff,0x23,0x0, +0x25,0x0,0xfb,0xff,0x2,0x0,0x11,0x0,0xf6,0xff,0xef,0xff, +0x18,0x0,0x16,0x0,0xe3,0xff,0xeb,0xff,0x13,0x0,0xf7,0xff, +0xde,0xff,0x11,0x0,0x16,0x0,0xde,0xff,0xf8,0xff,0x2a,0x0, +0xf2,0xff,0xc4,0xff,0x1,0x0,0x21,0x0,0xf3,0xff,0xed,0xff, +0xe,0x0,0x0,0x0,0xeb,0xff,0x9,0x0,0x17,0x0,0xe9,0xff, +0xd8,0xff,0xa,0x0,0x18,0x0,0xeb,0xff,0xf0,0xff,0x1c,0x0, +0xc,0x0,0xf4,0xff,0xf,0x0,0x8,0x0,0xdf,0xff,0xf5,0xff, +0x13,0x0,0xf6,0xff,0xef,0xff,0xf,0x0,0x7,0x0,0xfa,0xff, +0x18,0x0,0x19,0x0,0xeb,0xff,0xea,0xff,0x16,0x0,0x16,0x0, +0xea,0xff,0xea,0xff,0x11,0x0,0xd,0x0,0xf5,0xff,0xe,0x0, +0x13,0x0,0xdd,0xff,0xd9,0xff,0xc,0x0,0x0,0x0,0xdd,0xff, +0xfc,0xff,0xa,0x0,0xeb,0xff,0xfc,0xff,0x1d,0x0,0x0,0x0, +0xed,0xff,0x11,0x0,0x1a,0x0,0xfd,0xff,0xfd,0xff,0x11,0x0, +0x7,0x0,0xfa,0xff,0xf,0x0,0x15,0x0,0xed,0xff,0xe7,0xff, +0x1c,0x0,0x1d,0x0,0xeb,0xff,0xfc,0xff,0x21,0x0,0xfc,0xff, +0xee,0xff,0x1e,0x0,0xd,0x0,0xd9,0xff,0xff,0xff,0x2c,0x0, +0x0,0x0,0xde,0xff,0xfe,0xff,0xa,0x0,0xf2,0xff,0xf8,0xff, +0xd,0x0,0xfe,0xff,0xee,0xff,0xd,0x0,0x1c,0x0,0xef,0xff, +0xe1,0xff,0x11,0x0,0x15,0x0,0xee,0xff,0x3,0x0,0x19,0x0, +0xeb,0xff,0xe7,0xff,0x1f,0x0,0x11,0x0,0xd9,0xff,0xe8,0xff, +0x9,0x0,0xff,0xff,0xfe,0xff,0x16,0x0,0x18,0x0,0xb,0x0, +0x14,0x0,0x24,0x0,0x1c,0x0,0xa,0x0,0x10,0x0,0x10,0x0, +0xf1,0xff,0xe9,0xff,0x1,0x0,0xf9,0xff,0xee,0xff,0x13,0x0, +0x1d,0x0,0xf1,0xff,0xef,0xff,0xd,0x0,0xfd,0xff,0xf0,0xff, +0xe,0x0,0x12,0x0,0xf5,0xff,0xf4,0xff,0xff,0xff,0xf3,0xff, +0xe0,0xff,0xe6,0xff,0x5,0x0,0x19,0x0,0x9,0x0,0xf5,0xff, +0xf2,0xff,0xec,0xff,0xe8,0xff,0xe9,0xff,0xe2,0xff,0xea,0xff, +0x5,0x0,0x5,0x0,0x0,0x0,0x19,0x0,0x16,0x0,0xf8,0xff, +0xd,0x0,0x29,0x0,0x6,0x0,0xee,0xff,0xe,0x0,0x21,0x0, +0x15,0x0,0x10,0x0,0xb,0x0,0xf7,0xff,0xe8,0xff,0xeb,0xff, +0xf5,0xff,0xf2,0xff,0xf3,0xff,0xd,0x0,0x1d,0x0,0xb,0x0, +0xa,0x0,0x18,0x0,0x4,0x0,0xf5,0xff,0xb,0x0,0x4,0x0, +0xea,0xff,0x0,0x0,0x11,0x0,0xf1,0xff,0xe4,0xff,0xfc,0xff, +0xff,0xff,0xfa,0xff,0xa,0x0,0x12,0x0,0x3,0x0,0xf7,0xff, +0xfe,0xff,0x4,0x0,0xf2,0xff,0xe5,0xff,0xf9,0xff,0x1,0x0, +0xf5,0xff,0x9,0x0,0x20,0x0,0x1,0x0,0xed,0xff,0x9,0x0, +0x6,0x0,0xe9,0xff,0xf1,0xff,0xfe,0xff,0xf0,0xff,0xf6,0xff, +0xd,0x0,0xd,0x0,0x5,0x0,0xc,0x0,0x18,0x0,0x14,0x0, +0xfb,0xff,0xef,0xff,0xff,0xff,0x3,0x0,0xf6,0xff,0xff,0xff, +0x5,0x0,0xf6,0xff,0xf8,0xff,0x4,0x0,0xf9,0xff,0xf4,0xff, +0x5,0x0,0x5,0x0,0x2,0x0,0xa,0x0,0x5,0x0,0xfd,0xff, +0x8,0x0,0xb,0x0,0xff,0xff,0xf8,0xff,0xf2,0xff,0xf5,0xff, +0x6,0x0,0x2,0x0,0xee,0xff,0xf5,0xff,0xa,0x0,0x14,0x0, +0x14,0x0,0x6,0x0,0xfa,0xff,0x5,0x0,0x6,0x0,0xf1,0xff, +0xf2,0xff,0xfe,0xff,0xf5,0xff,0xf7,0xff,0xb,0x0,0xe,0x0, +0xa,0x0,0xb,0x0,0x3,0x0,0x5,0x0,0x10,0x0,0x5,0x0, +0xf8,0xff,0x6,0x0,0x9,0x0,0xf7,0xff,0xf3,0xff,0xfb,0xff, +0x5,0x0,0xa,0x0,0x3,0x0,0x0,0x0,0x6,0x0,0xf8,0xff, +0xed,0xff,0x1,0x0,0x5,0x0,0xec,0xff,0xf3,0xff,0xd,0x0, +0x3,0x0,0xf7,0xff,0x1,0x0,0x4,0x0,0x3,0x0,0xf,0x0, +0x16,0x0,0xe,0x0,0x0,0x0,0xfa,0xff,0xb,0x0,0x11,0x0, +0xf8,0xff,0xf0,0xff,0x5,0x0,0x9,0x0,0x8,0x0,0x13,0x0, +0x5,0x0,0xeb,0xff,0xf9,0xff,0x8,0x0,0xf7,0xff,0xef,0xff, +0xf8,0xff,0xfc,0xff,0x2,0x0,0x8,0x0,0xff,0xff,0xf2,0xff, +0xf2,0xff,0xfc,0xff,0x4,0x0,0xf5,0xff,0xe7,0xff,0x0,0x0, +0x14,0x0,0xff,0xff,0xf9,0xff,0x6,0x0,0xfb,0xff,0xf8,0xff, +0x11,0x0,0xd,0x0,0xf3,0xff,0xfc,0xff,0xe,0x0,0x5,0x0, +0xfb,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0x4,0x0,0x12,0x0, +0xc,0x0,0xee,0xff,0xef,0xff,0x17,0x0,0x1b,0x0,0xfb,0xff, +0xff,0xff,0x10,0x0,0x4,0x0,0x3,0x0,0x10,0x0,0xff,0xff, +0xf0,0xff,0x0,0x0,0xa,0x0,0x7,0x0,0x7,0x0,0xff,0xff, +0xf9,0xff,0x5,0x0,0x11,0x0,0xb,0x0,0xfc,0xff,0xf6,0xff, +0x8,0x0,0x18,0x0,0x3,0x0,0xea,0xff,0xf1,0xff,0xf7,0xff, +0xf6,0xff,0x1,0x0,0xfc,0xff,0xec,0xff,0x0,0x0,0x19,0x0, +0xd,0x0,0xfd,0xff,0xfb,0xff,0xf6,0xff,0xfd,0xff,0xb,0x0, +0x0,0x0,0xed,0xff,0xf4,0xff,0x7,0x0,0x11,0x0,0x4,0x0, +0xeb,0xff,0xe8,0xff,0xfb,0xff,0x3,0x0,0x1,0x0,0xfa,0xff, +0xea,0xff,0xed,0xff,0x7,0x0,0x3,0x0,0xea,0xff,0xec,0xff, +0xf5,0xff,0xfa,0xff,0xe,0x0,0x13,0x0,0xfa,0xff,0xf7,0xff, +0xc,0x0,0xc,0x0,0xfe,0xff,0xf9,0xff,0xf5,0xff,0xfb,0xff, +0xa,0x0,0xe,0x0,0xff,0xff,0xe9,0xff,0xe9,0xff,0x4,0x0, +0xe,0x0,0xf7,0xff,0xf4,0xff,0x6,0x0,0xfc,0xff,0xf2,0xff, +0xfe,0xff,0xf1,0xff,0xdb,0xff,0xfb,0xff,0x26,0x0,0x21,0x0, +0xd,0x0,0x7,0x0,0x6,0x0,0x9,0x0,0xa,0x0,0x0,0x0, +0xf5,0xff,0xf3,0xff,0xfd,0xff,0x6,0x0,0xf2,0xff,0xd2,0xff, +0xd5,0xff,0xeb,0xff,0xf0,0xff,0xf2,0xff,0xed,0xff,0xdb,0xff, +0xeb,0xff,0x16,0x0,0x19,0x0,0x3,0x0,0x8,0x0,0x12,0x0, +0xa,0x0,0x4,0x0,0xfb,0xff,0xe9,0xff,0xe8,0xff,0xfe,0xff, +0x17,0x0,0x1d,0x0,0x9,0x0,0x2,0x0,0x17,0x0,0x1b,0x0, +0x3,0x0,0xfa,0xff,0x1,0x0,0x8,0x0,0x1a,0x0,0x23,0x0, +0xb,0x0,0xf5,0xff,0xf7,0xff,0xfb,0xff,0x1,0x0,0x3,0x0, +0xf5,0xff,0xf0,0xff,0xfe,0xff,0x0,0x0,0xf6,0xff,0xf0,0xff, +0xec,0xff,0xf2,0xff,0x5,0x0,0x7,0x0,0xf5,0xff,0xf1,0xff, +0xfb,0xff,0x3,0x0,0xa,0x0,0x3,0x0,0xf6,0xff,0xf5,0xff, +0xfa,0xff,0xfc,0xff,0x3,0x0,0xfe,0xff,0xf3,0xff,0x6,0x0, +0x1f,0x0,0x18,0x0,0xc,0x0,0x12,0x0,0x14,0x0,0x18,0x0, +0x1b,0x0,0x5,0x0,0xef,0xff,0xf9,0xff,0x8,0x0,0x7,0x0, +0x3,0x0,0x1,0x0,0x3,0x0,0x9,0x0,0x8,0x0,0x4,0x0, +0x2,0x0,0xfb,0xff,0x8,0x0,0x27,0x0,0x29,0x0,0xf,0x0, +0x9,0x0,0x9,0x0,0xfa,0xff,0xf7,0xff,0xf9,0xff,0xec,0xff, +0xef,0xff,0x8,0x0,0xc,0x0,0xf8,0xff,0xf3,0xff,0xfc,0xff, +0x6,0x0,0xa,0x0,0xa,0x0,0x10,0x0,0x13,0x0,0x7,0x0, +0x2,0x0,0x4,0x0,0xf5,0xff,0xec,0xff,0xfb,0xff,0x2,0x0, +0xff,0xff,0xa,0x0,0xe,0x0,0x7,0x0,0xe,0x0,0x10,0x0, +0xfa,0xff,0xf0,0xff,0xfd,0xff,0x4,0x0,0x4,0x0,0x5,0x0, +0x5,0x0,0x6,0x0,0x7,0x0,0x3,0x0,0x1,0x0,0xf9,0xff, +0xea,0xff,0xed,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x8,0x0,0xff,0xff,0xf3,0xff,0xff,0xff, +0x5,0x0,0xf4,0xff,0xed,0xff,0xee,0xff,0xea,0xff,0xf1,0xff, +0x1,0x0,0xc,0x0,0xf,0x0,0xe,0x0,0xb,0x0,0xd,0x0, +0x3,0x0,0xee,0xff,0xec,0xff,0xfa,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xf9,0xff,0xa,0x0,0x1c,0x0,0xe,0x0,0xfb,0xff, +0x0,0x0,0x1,0x0,0xfa,0xff,0xfe,0xff,0xf9,0xff,0xe9,0xff, +0xec,0xff,0x0,0x0,0xa,0x0,0x7,0x0,0xff,0xff,0xfd,0xff, +0x5,0x0,0x5,0x0,0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff, +0x4,0x0,0x7,0x0,0xf5,0xff,0xf3,0xff,0x5,0x0,0x7,0x0, +0x0,0x0,0xfe,0xff,0xf6,0xff,0xf5,0xff,0x4,0x0,0xb,0x0, +0x6,0x0,0x7,0x0,0x9,0x0,0xb,0x0,0x10,0x0,0xa,0x0, +0xfa,0xff,0xf6,0xff,0xfa,0xff,0x0,0x0,0x1,0x0,0xf5,0xff, +0xee,0xff,0x2,0x0,0x12,0x0,0xb,0x0,0x5,0x0,0x2,0x0, +0xf9,0xff,0xfd,0xff,0x8,0x0,0x0,0x0,0xf3,0xff,0xf3,0xff, +0xfb,0xff,0x9,0x0,0xd,0x0,0xf7,0xff,0xe9,0xff,0xfa,0xff, +0xc,0x0,0xd,0x0,0x6,0x0,0xff,0xff,0x1,0x0,0xf,0x0, +0x10,0x0,0x5,0x0,0xff,0xff,0xfe,0xff,0x1,0x0,0xb,0x0, +0x8,0x0,0xfd,0xff,0x0,0x0,0x7,0x0,0x7,0x0,0xa,0x0, +0x1,0x0,0xec,0xff,0xf4,0xff,0x11,0x0,0xe,0x0,0xf7,0xff, +0xf3,0xff,0xfe,0xff,0x6,0x0,0x5,0x0,0xf7,0xff,0xeb,0xff, +0xf3,0xff,0x0,0x0,0x6,0x0,0x5,0x0,0xff,0xff,0xff,0xff, +0x2,0x0,0xff,0xff,0x4,0x0,0xb,0x0,0xf9,0xff,0xef,0xff, +0xd,0x0,0x1b,0x0,0xf9,0xff,0xe5,0xff,0xf5,0xff,0xfe,0xff, +0xfd,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x7,0x0,0x9,0x0, +0x4,0x0,0xfc,0xff,0xf7,0xff,0xf9,0xff,0xfe,0xff,0x2,0x0, +0x7,0x0,0xfa,0xff,0xe6,0xff,0xf3,0xff,0xb,0x0,0xf8,0xff, +0xe0,0xff,0xf3,0xff,0x5,0x0,0xf8,0xff,0xf7,0xff,0x0,0x0, +0xf6,0xff,0xf4,0xff,0x6,0x0,0x8,0x0,0xf7,0xff,0xf4,0xff, +0x3,0x0,0xd,0x0,0x8,0x0,0x1,0x0,0x1,0x0,0xfe,0xff, +0x2,0x0,0x11,0x0,0xc,0x0,0xf0,0xff,0xf2,0xff,0xc,0x0, +0xb,0x0,0x7,0x0,0x14,0x0,0xf,0x0,0xfd,0xff,0x6,0x0, +0xc,0x0,0xf4,0xff,0xe6,0xff,0xf2,0xff,0xf3,0xff,0xe4,0xff, +0xe2,0xff,0xee,0xff,0xf2,0xff,0xef,0xff,0xf9,0xff,0x6,0x0, +0xfd,0xff,0xfb,0xff,0x12,0x0,0x17,0x0,0x2,0x0,0x5,0x0, +0x11,0x0,0x2,0x0,0xfd,0xff,0x11,0x0,0xf,0x0,0xff,0xff, +0x9,0x0,0x14,0x0,0xa,0x0,0x5,0x0,0xc,0x0,0xa,0x0, +0x3,0x0,0x6,0x0,0xc,0x0,0x5,0x0,0xfe,0xff,0xc,0x0, +0x16,0x0,0x1,0x0,0xf2,0xff,0xff,0xff,0xfc,0xff,0xef,0xff, +0x1,0x0,0x11,0x0,0xff,0xff,0xfa,0xff,0xf,0x0,0xe,0x0, +0xfc,0xff,0x0,0x0,0xa,0x0,0x6,0x0,0x1,0x0,0x2,0x0, +0xff,0xff,0xfb,0xff,0x0,0x0,0x7,0x0,0x2,0x0,0xf8,0xff, +0x3,0x0,0xe,0x0,0xfc,0xff,0xf1,0xff,0xfd,0xff,0xfb,0xff, +0xf3,0xff,0x4,0x0,0xa,0x0,0xf3,0xff,0xef,0xff,0x5,0x0, +0x8,0x0,0xfc,0xff,0xfa,0xff,0x0,0x0,0x4,0x0,0xa,0x0, +0xd,0x0,0x6,0x0,0xfa,0xff,0xfa,0xff,0x5,0x0,0x1,0x0, +0xf3,0xff,0xfc,0xff,0xa,0x0,0xfe,0xff,0xf6,0xff,0x0,0x0, +0xfb,0xff,0xef,0xff,0xfd,0xff,0xc,0x0,0x4,0x0,0xfe,0xff, +0x3,0x0,0x7,0x0,0xa,0x0,0x9,0x0,0x3,0x0,0xfe,0xff, +0xff,0xff,0x4,0x0,0x3,0x0,0xf7,0xff,0xf4,0xff,0x2,0x0, +0x8,0x0,0x2,0x0,0xb,0x0,0x13,0x0,0x7,0x0,0x8,0x0, +0x1b,0x0,0x14,0x0,0xfa,0xff,0xf7,0xff,0x5,0x0,0xe,0x0, +0xf,0x0,0xb,0x0,0x4,0x0,0xff,0xff,0xfc,0xff,0xfd,0xff, +0xfa,0xff,0xeb,0xff,0xe9,0xff,0xfd,0xff,0x7,0x0,0x0,0x0, +0xfc,0xff,0xf9,0xff,0xf9,0xff,0x9,0x0,0x12,0x0,0x1,0x0, +0xfc,0xff,0xc,0x0,0xd,0x0,0xfd,0xff,0xf5,0xff,0xf6,0xff, +0xf5,0xff,0xf3,0xff,0xf6,0xff,0xf8,0xff,0xf0,0xff,0xec,0xff, +0x1,0x0,0x12,0x0,0x3,0x0,0xf3,0xff,0xf7,0xff,0xf6,0xff, +0xf1,0xff,0xf7,0xff,0xf4,0xff,0xe8,0xff,0xf3,0xff,0x6,0x0, +0x3,0x0,0xfa,0xff,0xfd,0xff,0x3,0x0,0x5,0x0,0x4,0x0, +0x1,0x0,0xf8,0xff,0xec,0xff,0xee,0xff,0xfe,0xff,0x3,0x0, +0xfd,0xff,0x2,0x0,0x7,0x0,0x1,0x0,0x7,0x0,0xf,0x0, +0xf9,0xff,0xe8,0xff,0xfa,0xff,0x3,0x0,0xf1,0xff,0xea,0xff, +0xf8,0xff,0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0xff,0xff, +0xfc,0xff,0x3,0x0,0xa,0x0,0x2,0x0,0xfc,0xff,0x2,0x0, +0x2,0x0,0xfe,0xff,0x6,0x0,0x5,0x0,0xfa,0xff,0x9,0x0, +0x20,0x0,0x12,0x0,0xfe,0xff,0x8,0x0,0x16,0x0,0x11,0x0, +0x7,0x0,0xfe,0xff,0xf4,0xff,0xed,0xff,0xf1,0xff,0xf8,0xff, +0xfa,0xff,0xfb,0xff,0x5,0x0,0xa,0x0,0x0,0x0,0xfe,0xff, +0x2,0x0,0xf7,0xff,0xf1,0xff,0x5,0x0,0xf,0x0,0xff,0xff, +0x0,0x0,0x10,0x0,0xe,0x0,0x3,0x0,0x5,0x0,0x7,0x0, +0x1,0x0,0xfd,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0xf8,0xff, +0xf5,0xff,0xf3,0xff,0xf3,0xff,0xfa,0xff,0xfb,0xff,0xf4,0xff, +0xfc,0xff,0xa,0x0,0x1,0x0,0xf7,0xff,0x4,0x0,0x9,0x0, +0xfd,0xff,0xfb,0xff,0x3,0x0,0x2,0x0,0x0,0x0,0x8,0x0, +0xf,0x0,0xd,0x0,0x7,0x0,0x6,0x0,0x8,0x0,0x2,0x0, +0xf6,0xff,0xf3,0xff,0xf4,0xff,0xf6,0xff,0x2,0x0,0xa,0x0, +0x3,0x0,0x1,0x0,0x7,0x0,0x1,0x0,0xf8,0xff,0xfd,0xff, +0x0,0x0,0xfc,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x7,0x0, +0x8,0x0,0x3,0x0,0x0,0x0,0x1,0x0,0x6,0x0,0x9,0x0, +0x2,0x0,0xff,0xff,0xa,0x0,0xc,0x0,0x1,0x0,0x1,0x0, +0x5,0x0,0xfd,0xff,0xfc,0xff,0x7,0x0,0x7,0x0,0xfc,0xff, +0xf7,0xff,0xfa,0xff,0xfe,0xff,0xfd,0xff,0xf7,0xff,0xfa,0xff, +0x0,0x0,0xfe,0xff,0xfb,0xff,0xfa,0xff,0xf7,0xff,0xfd,0xff, +0x9,0x0,0x7,0x0,0x1,0x0,0x3,0x0,0xff,0xff,0xf6,0xff, +0xfa,0xff,0xff,0xff,0xfc,0xff,0x1,0x0,0xe,0x0,0xf,0x0, +0x9,0x0,0x8,0x0,0xc,0x0,0xd,0x0,0x7,0x0,0x3,0x0, +0x1,0x0,0xf6,0xff,0xed,0xff,0xfa,0xff,0xa,0x0,0x4,0x0, +0xfd,0xff,0x0,0x0,0xfe,0xff,0xff,0xff,0x7,0x0,0x2,0x0, +0xf8,0xff,0xfd,0xff,0x1,0x0,0xfb,0xff,0xfa,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0x3,0x0,0x9,0x0,0x3,0x0,0xf9,0xff, +0xff,0xff,0xd,0x0,0x9,0x0,0xfd,0xff,0x1,0x0,0x3,0x0, +0xfd,0xff,0xff,0xff,0xff,0xff,0xf2,0xff,0xf5,0xff,0x6,0x0, +0x6,0x0,0xfd,0xff,0x2,0x0,0x6,0x0,0x5,0x0,0xc,0x0, +0x12,0x0,0xa,0x0,0xff,0xff,0x1,0x0,0x5,0x0,0xfd,0xff, +0xf4,0xff,0xfc,0xff,0x8,0x0,0x7,0x0,0xa,0x0,0x11,0x0, +0x4,0x0,0xf5,0xff,0x1,0x0,0x9,0x0,0xfc,0xff,0xfa,0xff, +0x1,0x0,0xfc,0xff,0xfe,0xff,0xf,0x0,0xb,0x0,0xf6,0xff, +0xf7,0xff,0x4,0x0,0xff,0xff,0xf6,0xff,0xfb,0xff,0x2,0x0, +0xfd,0xff,0x1,0x0,0x14,0x0,0x14,0x0,0xfc,0xff,0xf6,0xff, +0x1,0x0,0xf9,0xff,0xf1,0xff,0xfe,0xff,0x1,0x0,0xfd,0xff, +0xd,0x0,0x10,0x0,0xf6,0xff,0xf4,0xff,0xb,0x0,0x7,0x0, +0xf2,0xff,0xf7,0xff,0x4,0x0,0xf9,0xff,0xf1,0xff,0x1,0x0, +0x7,0x0,0xf5,0xff,0xf7,0xff,0x11,0x0,0xf,0x0,0xf6,0xff, +0xf7,0xff,0x2,0x0,0xf4,0xff,0xf2,0xff,0x5,0x0,0xfc,0xff, +0xea,0xff,0xfb,0xff,0x9,0x0,0xf6,0xff,0xf4,0xff,0x6,0x0, +0x0,0x0,0xf5,0xff,0x6,0x0,0x13,0x0,0x0,0x0,0xf3,0xff, +0x4,0x0,0x8,0x0,0xf4,0xff,0xf6,0xff,0x9,0x0,0xfe,0xff, +0xf2,0xff,0xc,0x0,0x14,0x0,0xf4,0xff,0xf2,0xff,0xe,0x0, +0x4,0x0,0xed,0xff,0xfb,0xff,0x0,0x0,0xea,0xff,0xf1,0xff, +0xc,0x0,0x3,0x0,0xec,0xff,0xf9,0xff,0xa,0x0,0xfa,0xff, +0xee,0xff,0xff,0xff,0x4,0x0,0xf4,0xff,0xfb,0xff,0xc,0x0, +0xfa,0xff,0xf2,0xff,0x16,0x0,0x20,0x0,0xff,0xff,0xfd,0xff, +0x10,0x0,0xfe,0xff,0xf2,0xff,0xd,0x0,0x11,0x0,0xf3,0xff, +0xf4,0xff,0xc,0x0,0x2,0x0,0xef,0xff,0xfd,0xff,0xc,0x0, +0xfa,0xff,0xf3,0xff,0x7,0x0,0x7,0x0,0xf2,0xff,0xfe,0xff, +0x14,0x0,0x1,0x0,0xf6,0xff,0x11,0x0,0x10,0x0,0xf2,0xff, +0xfd,0xff,0x16,0x0,0x2,0x0,0xf1,0xff,0x7,0x0,0xa,0x0, +0xf3,0xff,0xf7,0xff,0x7,0x0,0xfb,0xff,0xee,0xff,0x4,0x0, +0x14,0x0,0x0,0x0,0xf6,0xff,0xc,0x0,0xb,0x0,0xf3,0xff, +0xfd,0xff,0xf,0x0,0xfc,0xff,0xf3,0xff,0xa,0x0,0x4,0x0, +0xeb,0xff,0xfb,0xff,0x10,0x0,0xfd,0xff,0xf1,0xff,0x3,0x0, +0x4,0x0,0xf4,0xff,0xfd,0xff,0xf,0x0,0x4,0x0,0xf9,0xff, +0xc,0x0,0x1a,0x0,0x6,0x0,0xfd,0xff,0xf,0x0,0x7,0x0, +0xee,0xff,0xf6,0xff,0x4,0x0,0xf3,0xff,0xf4,0xff,0x10,0x0, +0xa,0x0,0xf5,0xff,0x7,0x0,0x19,0x0,0x4,0x0,0xf9,0xff, +0xa,0x0,0xd,0x0,0xfa,0xff,0xf7,0xff,0x3,0x0,0x0,0x0, +0xf8,0xff,0x5,0x0,0xf,0x0,0xfc,0xff,0xf3,0xff,0x8,0x0, +0xa,0x0,0xf9,0xff,0xfe,0xff,0x3,0x0,0xf1,0xff,0xf2,0xff, +0x3,0x0,0xf8,0xff,0xea,0xff,0xfc,0xff,0x9,0x0,0xfa,0xff, +0xf5,0xff,0x4,0x0,0x6,0x0,0xfa,0xff,0xfd,0xff,0x8,0x0, +0xfd,0xff,0xef,0xff,0x1,0x0,0x10,0x0,0xfa,0xff,0xec,0xff, +0xff,0xff,0x2,0x0,0xf2,0xff,0xfb,0xff,0x5,0x0,0xf6,0xff, +0xf3,0xff,0x6,0x0,0xc,0x0,0x7,0x0,0xd,0x0,0xf,0x0, +0x6,0x0,0x1,0x0,0x6,0x0,0x4,0x0,0xf5,0xff,0xf1,0xff, +0xff,0xff,0x0,0x0,0xf3,0xff,0xf9,0xff,0x3,0x0,0xf9,0xff, +0xfa,0xff,0xc,0x0,0x3,0x0,0xed,0xff,0xf8,0xff,0x9,0x0, +0x2,0x0,0xfd,0xff,0x6,0x0,0x5,0x0,0xfd,0xff,0x1,0x0, +0x7,0x0,0x0,0x0,0xf7,0xff,0x1,0x0,0xf,0x0,0x6,0x0, +0xfc,0xff,0x8,0x0,0xf,0x0,0x5,0x0,0x9,0x0,0xd,0x0, +0xfa,0xff,0xf7,0xff,0xc,0x0,0xa,0x0,0xf5,0xff,0xf6,0xff, +0x5,0x0,0x4,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0xfc,0xff, +0xfd,0xff,0x8,0x0,0x5,0x0,0xf3,0xff,0xf4,0xff,0x6,0x0, +0x6,0x0,0xfe,0xff,0x5,0x0,0x3,0x0,0xf6,0xff,0x3,0x0, +0x13,0x0,0x3,0x0,0xf5,0xff,0x1,0x0,0x6,0x0,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0xf8,0xff,0xf3,0xff,0xfc,0xff,0x6,0x0, +0x2,0x0,0xfa,0xff,0x2,0x0,0x3,0x0,0xf2,0xff,0xef,0xff, +0xfa,0xff,0xf4,0xff,0xf6,0xff,0x12,0x0,0x19,0x0,0x4,0x0, +0x4,0x0,0x11,0x0,0x6,0x0,0xf8,0xff,0xfb,0xff,0xfd,0xff, +0xf6,0xff,0xfa,0xff,0x7,0x0,0xa,0x0,0x0,0x0,0x2,0x0, +0x11,0x0,0xd,0x0,0xfb,0xff,0xfc,0xff,0x1,0x0,0xf7,0xff, +0xf9,0xff,0x7,0x0,0xff,0xff,0xf6,0xff,0x5,0x0,0xe,0x0, +0x4,0x0,0x2,0x0,0x3,0x0,0xfd,0xff,0x0,0x0,0xf,0x0, +0x10,0x0,0x4,0x0,0x0,0x0,0x9,0x0,0x9,0x0,0xfa,0xff, +0xf9,0xff,0x7,0x0,0x2,0x0,0xfa,0xff,0xa,0x0,0x11,0x0, +0x0,0x0,0x1,0x0,0x13,0x0,0x9,0x0,0xf7,0xff,0xfc,0xff, +0x2,0x0,0xfd,0xff,0xfd,0xff,0x0,0x0,0xfd,0xff,0xfb,0xff, +0x1,0x0,0x9,0x0,0x5,0x0,0xfb,0xff,0xfd,0xff,0x4,0x0, +0xfe,0xff,0xfa,0xff,0x1,0x0,0xfc,0xff,0xf9,0xff,0x8,0x0, +0xa,0x0,0xfc,0xff,0xff,0xff,0x9,0x0,0xff,0xff,0xf9,0xff, +0xff,0xff,0xfb,0xff,0xf4,0xff,0xfd,0xff,0x8,0x0,0x6,0x0, +0xff,0xff,0x0,0x0,0x5,0x0,0xff,0xff,0xf5,0xff,0xfc,0xff, +0x3,0x0,0xfc,0xff,0xfd,0xff,0x9,0x0,0x5,0x0,0xff,0xff, +0x7,0x0,0x5,0x0,0xfc,0xff,0x3,0x0,0x8,0x0,0xff,0xff, +0xfe,0xff,0x6,0x0,0x0,0x0,0xf7,0xff,0xf7,0xff,0xf7,0xff, +0xf2,0xff,0xf1,0xff,0xf8,0xff,0x2,0x0,0x3,0x0,0x1,0x0, +0x9,0x0,0xa,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0xf8,0xff, +0xf5,0xff,0xfd,0xff,0xf7,0xff,0xf5,0xff,0x5,0x0,0x7,0x0, +0xfb,0xff,0x0,0x0,0xa,0x0,0x2,0x0,0xfb,0xff,0xfe,0xff, +0xfe,0xff,0xfb,0xff,0xff,0xff,0x7,0x0,0x6,0x0,0xfb,0xff, +0xfe,0xff,0xb,0x0,0x3,0x0,0xf3,0xff,0xfb,0xff,0x1,0x0, +0xf6,0xff,0xfc,0xff,0x9,0x0,0xfd,0xff,0xf5,0xff,0x7,0x0, +0xa,0x0,0xfd,0xff,0xfe,0xff,0x3,0x0,0xfc,0xff,0xf9,0xff, +0xfe,0xff,0xfc,0xff,0xf7,0xff,0xff,0xff,0xe,0x0,0xa,0x0, +0xf8,0xff,0xfa,0xff,0x1,0x0,0xf0,0xff,0xe7,0xff,0xfb,0xff, +0xff,0xff,0xf5,0xff,0xa,0x0,0x1b,0x0,0x3,0x0,0xf8,0xff, +0xb,0x0,0x7,0x0,0xf1,0xff,0xf9,0xff,0xd,0x0,0x6,0x0, +0xfc,0xff,0x6,0x0,0xa,0x0,0xf7,0xff,0xf0,0xff,0x1,0x0, +0xff,0xff,0xe8,0xff,0xee,0xff,0x2,0x0,0xf8,0xff,0xf2,0xff, +0x4,0x0,0xfe,0xff,0xe8,0xff,0xf9,0xff,0xd,0x0,0x0,0x0, +0xfe,0xff,0x12,0x0,0x8,0x0,0xf0,0xff,0xfa,0xff,0xd,0x0, +0x0,0x0,0xf1,0xff,0xfe,0xff,0x7,0x0,0xf5,0xff,0xf3,0xff, +0x9,0x0,0x2,0x0,0xe9,0xff,0xfb,0xff,0x11,0x0,0xf9,0xff, +0xee,0xff,0xd,0x0,0xc,0x0,0xf1,0xff,0xfa,0xff,0xa,0x0, +0xf6,0xff,0xf0,0xff,0x7,0x0,0x7,0x0,0xf1,0xff,0xf6,0xff, +0xd,0x0,0x9,0x0,0xf8,0xff,0x1,0x0,0xa,0x0,0xf6,0xff, +0xf2,0xff,0xc,0x0,0x6,0x0,0xeb,0xff,0xfc,0xff,0x11,0x0, +0xf5,0xff,0xea,0xff,0x7,0x0,0x9,0x0,0xf4,0xff,0x0,0x0, +0xe,0x0,0xfd,0xff,0xf6,0xff,0xb,0x0,0xe,0x0,0xf8,0xff, +0xf8,0xff,0xb,0x0,0x5,0x0,0xf3,0xff,0x2,0x0,0x13,0x0, +0x0,0x0,0xfb,0xff,0x14,0x0,0xb,0x0,0xee,0xff,0xff,0xff, +0x14,0x0,0xfd,0xff,0xf4,0xff,0xd,0x0,0xb,0x0,0xf4,0xff, +0xfc,0xff,0x10,0x0,0x7,0x0,0xff,0xff,0xf,0x0,0x16,0x0, +0x0,0x0,0xfa,0xff,0xe,0x0,0xc,0x0,0xf5,0xff,0xfe,0xff, +0x12,0x0,0x2,0x0,0xf5,0xff,0x8,0x0,0x5,0x0,0xf0,0xff, +0xfa,0xff,0x9,0x0,0xfc,0xff,0xfa,0xff,0xe,0x0,0xd,0x0, +0xfe,0xff,0x3,0x0,0xe,0x0,0x8,0x0,0x0,0x0,0xa,0x0, +0xd,0x0,0xfb,0xff,0xf9,0xff,0xf,0x0,0xd,0x0,0xf4,0xff, +0xfc,0xff,0xe,0x0,0xff,0xff,0xf7,0xff,0xd,0x0,0xf,0x0, +0xfe,0xff,0x7,0x0,0x16,0x0,0xa,0x0,0xff,0xff,0x7,0x0, +0x9,0x0,0xfd,0xff,0xfa,0xff,0x6,0x0,0xa,0x0,0xfe,0xff, +0xfd,0xff,0x6,0x0,0xfd,0xff,0xf3,0xff,0x1,0x0,0x5,0x0, +0xf9,0xff,0x0,0x0,0xe,0x0,0x4,0x0,0xfe,0xff,0x9,0x0, +0x7,0x0,0xfe,0xff,0x3,0x0,0x7,0x0,0xfe,0xff,0xf9,0xff, +0x1,0x0,0x4,0x0,0xfb,0xff,0xf5,0xff,0xff,0xff,0x7,0x0, +0xfe,0xff,0xff,0xff,0xa,0x0,0x1,0x0,0xf8,0xff,0x5,0x0, +0x8,0x0,0xf8,0xff,0xf9,0xff,0x2,0x0,0xfb,0xff,0xf7,0xff, +0x2,0x0,0x5,0x0,0xfd,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfa,0xff,0xfd,0xff,0x5,0x0,0x3,0x0,0xfb,0xff,0x1,0x0, +0x8,0x0,0xfd,0xff,0xf8,0xff,0x0,0x0,0xfc,0xff,0xf8,0xff, +0x4,0x0,0x6,0x0,0xfb,0xff,0xfd,0xff,0x4,0x0,0x2,0x0, +0x2,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0xfc,0xff,0xf5,0xff,0xf7,0xff,0xf6,0xff,0xf3,0xff, +0xfd,0xff,0x4,0x0,0xff,0xff,0x4,0x0,0xd,0x0,0x1,0x0, +0xf7,0xff,0xfe,0xff,0xfc,0xff,0xf4,0xff,0xf8,0xff,0xfe,0xff, +0xfb,0xff,0xfa,0xff,0x0,0x0,0x5,0x0,0x4,0x0,0xfe,0xff, +0xfd,0xff,0x1,0x0,0xfd,0xff,0xfc,0xff,0x4,0x0,0x3,0x0, +0xfc,0xff,0x1,0x0,0x4,0x0,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xf6,0xff,0xf4,0xff,0xfa,0xff,0xf8,0xff,0xfa,0xff,0x4,0x0, +0x5,0x0,0x1,0x0,0x4,0x0,0x7,0x0,0x2,0x0,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0xfb,0xff,0xf4,0xff,0xf7,0xff,0xfd,0xff, +0xf6,0xff,0xf6,0xff,0x5,0x0,0x9,0x0,0xff,0xff,0x2,0x0, +0x6,0x0,0xfd,0xff,0xfb,0xff,0xff,0xff,0xf9,0xff,0xf3,0xff, +0xf7,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x4,0x0,0x0,0x0,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xf4,0xff,0xf4,0xff,0xfd,0xff,0xfa,0xff,0xf9,0xff, +0x5,0x0,0x4,0x0,0xf9,0xff,0xfe,0xff,0x9,0x0,0x4,0x0, +0x0,0x0,0x6,0x0,0x6,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff, +0xfb,0xff,0xf6,0xff,0xf8,0xff,0x1,0x0,0xff,0xff,0xfa,0xff, +0x1,0x0,0x3,0x0,0xf8,0xff,0xf8,0xff,0xff,0xff,0xf8,0xff, +0xf6,0xff,0x4,0x0,0x7,0x0,0x0,0x0,0x5,0x0,0xa,0x0, +0x3,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0xff,0xff, +0xfc,0xff,0x3,0x0,0x0,0x0,0xf6,0xff,0xfb,0xff,0x2,0x0, +0xfb,0xff,0xfd,0xff,0x9,0x0,0x6,0x0,0x1,0x0,0xa,0x0, +0xd,0x0,0x4,0x0,0x2,0x0,0x6,0x0,0x1,0x0,0xfa,0xff, +0xfb,0xff,0x3,0x0,0x5,0x0,0xff,0xff,0x0,0x0,0x4,0x0, +0xfd,0xff,0xfb,0xff,0x5,0x0,0x4,0x0,0xf8,0xff,0xfa,0xff, +0x0,0x0,0xfe,0xff,0x0,0x0,0x3,0x0,0xff,0xff,0x2,0x0, +0xe,0x0,0xe,0x0,0xb,0x0,0x10,0x0,0x11,0x0,0xb,0x0, +0x6,0x0,0x5,0x0,0x0,0x0,0xf9,0xff,0xf8,0xff,0xff,0xff, +0xff,0xff,0xf7,0xff,0xfd,0xff,0x8,0x0,0x1,0x0,0xfc,0xff, +0x5,0x0,0x3,0x0,0xf9,0xff,0x0,0x0,0x9,0x0,0x5,0x0, +0x5,0x0,0xb,0x0,0x7,0x0,0x1,0x0,0x3,0x0,0x5,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x2,0x0, +0x4,0x0,0xfe,0xff,0xf8,0xff,0x1,0x0,0x4,0x0,0xf9,0xff, +0xfb,0xff,0x5,0x0,0xfb,0xff,0xf2,0xff,0x0,0x0,0x6,0x0, +0xfc,0xff,0x1,0x0,0xc,0x0,0x6,0x0,0x0,0x0,0x8,0x0, +0x8,0x0,0xfc,0xff,0xf9,0xff,0x3,0x0,0x5,0x0,0xfd,0xff, +0xfe,0xff,0x6,0x0,0x0,0x0,0xfd,0xff,0xa,0x0,0xc,0x0, +0xfb,0xff,0xfc,0xff,0x8,0x0,0x0,0x0,0xfb,0xff,0x7,0x0, +0x6,0x0,0xf9,0xff,0xfe,0xff,0x6,0x0,0xfc,0xff,0xf5,0xff, +0xfe,0xff,0x3,0x0,0xfb,0xff,0xfb,0xff,0x7,0x0,0x7,0x0, +0xfe,0xff,0x3,0x0,0x9,0x0,0xf9,0xff,0xef,0xff,0xfa,0xff, +0xf8,0xff,0xed,0xff,0xfa,0xff,0x6,0x0,0xf8,0xff,0xf3,0xff, +0x6,0x0,0x8,0x0,0xfb,0xff,0x3,0x0,0xf,0x0,0x2,0x0, +0xf7,0xff,0x2,0x0,0x5,0x0,0xf2,0xff,0xed,0xff,0xfb,0xff, +0xf8,0xff,0xec,0xff,0xfa,0xff,0x11,0x0,0xe,0x0,0xd,0x0, +0x1f,0x0,0x1a,0x0,0x0,0x0,0xf9,0xff,0xf9,0xff,0xe8,0xff, +0xe3,0xff,0xf6,0xff,0xfd,0xff,0xf7,0xff,0xff,0xff,0xa,0x0, +0x7,0x0,0x2,0x0,0x7,0x0,0x2,0x0,0xf2,0xff,0xf1,0xff, +0x0,0x0,0xff,0xff,0xf5,0xff,0x1,0x0,0xa,0x0,0xfa,0xff, +0xfa,0xff,0xf,0x0,0xb,0x0,0xf8,0xff,0x0,0x0,0xb,0x0, +0xfe,0xff,0xfa,0xff,0xa,0x0,0xd,0x0,0xfe,0xff,0xfb,0xff, +0x4,0x0,0xfe,0xff,0xf7,0xff,0x0,0x0,0x6,0x0,0xfb,0xff, +0xfb,0xff,0x8,0x0,0x6,0x0,0xfc,0xff,0x3,0x0,0x6,0x0, +0xf6,0xff,0xf4,0xff,0x4,0x0,0x4,0x0,0xfc,0xff,0x4,0x0, +0x7,0x0,0xfa,0xff,0xf9,0xff,0x7,0x0,0x6,0x0,0xfb,0xff, +0xff,0xff,0x9,0x0,0x2,0x0,0xfc,0xff,0x4,0x0,0x8,0x0, +0xfb,0xff,0xf6,0xff,0xff,0xff,0xfb,0xff,0xf3,0xff,0xff,0xff, +0xb,0x0,0x1,0x0,0xfe,0xff,0x7,0x0,0x5,0x0,0xfe,0xff, +0x4,0x0,0x6,0x0,0xfd,0xff,0xfc,0xff,0x2,0x0,0xff,0xff, +0xfa,0xff,0xff,0xff,0x8,0x0,0x7,0x0,0x2,0x0,0x5,0x0, +0x2,0x0,0xf8,0xff,0xf8,0xff,0xfd,0xff,0xf8,0xff,0xf8,0xff, +0x5,0x0,0x8,0x0,0x1,0x0,0x6,0x0,0x9,0x0,0xff,0xff, +0xfb,0xff,0x1,0x0,0xfc,0xff,0xf2,0xff,0xf8,0xff,0x2,0x0, +0xff,0xff,0xfc,0xff,0x5,0x0,0x9,0x0,0x2,0x0,0x4,0x0, +0xf,0x0,0xd,0x0,0x4,0x0,0xa,0x0,0x12,0x0,0x9,0x0, +0x1,0x0,0x6,0x0,0x3,0x0,0xf8,0xff,0xfe,0xff,0xb,0x0, +0x6,0x0,0xfe,0xff,0xfe,0xff,0xfa,0xff,0xf0,0xff,0xef,0xff, +0xf2,0xff,0xf0,0xff,0xf0,0xff,0xf4,0xff,0xf8,0xff,0xfb,0xff, +0x3,0x0,0xf,0x0,0x10,0x0,0xc,0x0,0xc,0x0,0x1,0x0, +0xed,0xff,0xef,0xff,0xfa,0xff,0xf1,0xff,0xec,0xff,0xfe,0xff, +0x4,0x0,0xf8,0xff,0xfc,0xff,0xa,0x0,0x4,0x0,0xfa,0xff, +0x2,0x0,0x4,0x0,0xf5,0xff,0xed,0xff,0xfa,0xff,0xfb,0xff, +0xe7,0xff,0xe1,0xff,0xe8,0xff,0xe7,0xff,0xed,0xff,0x10,0x0, +0x32,0x0,0x43,0x0,0x50,0x0,0x4f,0x0,0x29,0x0,0xf6,0xff, +0xd8,0xff,0xc8,0xff,0xbf,0xff,0xcc,0xff,0xe9,0xff,0xfa,0xff, +0x4,0x0,0x19,0x0,0x22,0x0,0xb,0x0,0xef,0xff,0xe5,0xff, +0xdb,0xff,0xd1,0xff,0xe1,0xff,0xfd,0xff,0x7,0x0,0xe,0x0, +0x25,0x0,0x2d,0x0,0x1d,0x0,0x18,0x0,0x1c,0x0,0x8,0x0, +0xf4,0xff,0xfa,0xff,0xfc,0xff,0xf1,0xff,0xf7,0xff,0x8,0x0, +0x5,0x0,0xfc,0xff,0x4,0x0,0xd,0x0,0x2,0x0,0xfd,0xff, +0x7,0x0,0x0,0x0,0xe9,0xff,0xec,0xff,0xfd,0xff,0xf9,0xff, +0xf9,0xff,0x14,0x0,0x24,0x0,0x1c,0x0,0x1c,0x0,0x22,0x0, +0x15,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0xf4,0xff,0xf1,0xff, +0x2,0x0,0x9,0x0,0x0,0x0,0x1,0x0,0x6,0x0,0xfc,0xff, +0xf8,0xff,0x5,0x0,0x0,0x0,0xeb,0xff,0xeb,0xff,0xf8,0xff, +0xf0,0xff,0xe6,0xff,0xf3,0xff,0xfc,0xff,0xf5,0xff,0xfb,0xff, +0xd,0x0,0x7,0x0,0xfd,0xff,0xe,0x0,0x1d,0x0,0x11,0x0, +0x8,0x0,0xf,0x0,0xc,0x0,0x2,0x0,0x9,0x0,0x10,0x0, +0x1,0x0,0xf6,0xff,0xff,0xff,0x1,0x0,0xf1,0xff,0xee,0xff, +0xf6,0xff,0xf2,0xff,0xee,0xff,0xf9,0xff,0xfd,0xff,0xf7,0xff, +0xfc,0xff,0x6,0x0,0x4,0x0,0x2,0x0,0xc,0x0,0x13,0x0, +0xc,0x0,0x8,0x0,0xc,0x0,0x3,0x0,0xf5,0xff,0xfc,0xff, +0xc,0x0,0x5,0x0,0xfc,0xff,0x6,0x0,0x7,0x0,0xfb,0xff, +0xfd,0xff,0x3,0x0,0xf7,0xff,0xec,0xff,0xf4,0xff,0xf8,0xff, +0xed,0xff,0xed,0xff,0xfe,0xff,0x6,0x0,0x3,0x0,0x7,0x0, +0x9,0x0,0xfd,0xff,0xfb,0xff,0x3,0x0,0xff,0xff,0xf6,0xff, +0xfc,0xff,0x6,0x0,0x7,0x0,0x8,0x0,0xb,0x0,0x4,0x0, +0xfc,0xff,0x0,0x0,0x2,0x0,0xf4,0xff,0xed,0xff,0xf5,0xff, +0xf6,0xff,0xef,0xff,0xf1,0xff,0xf6,0xff,0xf4,0xff,0xf9,0xff, +0x5,0x0,0x9,0x0,0x3,0x0,0x1,0x0,0x7,0x0,0x9,0x0, +0x7,0x0,0x8,0x0,0x7,0x0,0x1,0x0,0x5,0x0,0xf,0x0, +0x5,0x0,0xf5,0xff,0xf9,0xff,0xff,0xff,0xf9,0xff,0xf8,0xff, +0x1,0x0,0x1,0x0,0xf9,0xff,0xfb,0xff,0x2,0x0,0xfb,0xff, +0xf2,0xff,0xf6,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff,0x2,0x0, +0x1,0x0,0x3,0x0,0xc,0x0,0x9,0x0,0xfd,0xff,0xfd,0xff, +0x1,0x0,0xff,0xff,0xff,0xff,0x4,0x0,0x1,0x0,0xff,0xff, +0x7,0x0,0xb,0x0,0x0,0x0,0xfd,0xff,0xa,0x0,0xd,0x0, +0x1,0x0,0xff,0xff,0x5,0x0,0x0,0x0,0xfd,0xff,0x7,0x0, +0xa,0x0,0x1,0x0,0xff,0xff,0x8,0x0,0x4,0x0,0xf8,0xff, +0xfa,0xff,0x3,0x0,0x2,0x0,0x1,0x0,0x8,0x0,0x6,0x0, +0xfc,0xff,0x2,0x0,0x10,0x0,0xd,0x0,0x7,0x0,0xa,0x0, +0xb,0x0,0x1,0x0,0xfc,0xff,0x3,0x0,0xff,0xff,0xf6,0xff, +0xff,0xff,0xd,0x0,0x7,0x0,0x0,0x0,0x7,0x0,0x6,0x0, +0xfe,0xff,0x2,0x0,0x3,0x0,0xf9,0xff,0xfa,0xff,0x5,0x0, +0x5,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xf9,0xff,0xf9,0xff, +0x0,0x0,0xfd,0xff,0xf5,0xff,0xfd,0xff,0x9,0x0,0x5,0x0, +0x1,0x0,0x7,0x0,0x4,0x0,0xfe,0xff,0x7,0x0,0xd,0x0, +0x4,0x0,0x1,0x0,0xa,0x0,0x9,0x0,0xfc,0xff,0xfa,0xff, +0x5,0x0,0x5,0x0,0xfb,0xff,0x0,0x0,0xb,0x0,0x4,0x0, +0xfe,0xff,0x3,0x0,0xff,0xff,0xef,0xff,0xf2,0xff,0x3,0x0, +0x4,0x0,0xfb,0xff,0xfe,0xff,0x5,0x0,0xfe,0xff,0xf7,0xff, +0xfa,0xff,0xf4,0xff,0xea,0xff,0xf1,0xff,0xff,0xff,0xff,0xff, +0xfc,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x4,0x0,0x7,0x0, +0x3,0x0,0xff,0xff,0x0,0x0,0xfe,0xff,0xf9,0xff,0xfb,0xff, +0xfe,0xff,0xfb,0xff,0xfd,0xff,0x3,0x0,0x1,0x0,0xff,0xff, +0x3,0x0,0x4,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0xfe,0xff, +0xfd,0xff,0x2,0x0,0x2,0x0,0xf9,0xff,0xf4,0xff,0xfc,0xff, +0x1,0x0,0xfb,0xff,0xfc,0xff,0x6,0x0,0x4,0x0,0xfc,0xff, +0xfe,0xff,0xfd,0xff,0xf3,0xff,0xf1,0xff,0xfd,0xff,0x7,0x0, +0x4,0x0,0x2,0x0,0xc,0x0,0xe,0x0,0x2,0x0,0x0,0x0, +0x5,0x0,0xfd,0xff,0xf7,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff, +0xfd,0xff,0x2,0x0,0x6,0x0,0x6,0x0,0x2,0x0,0x1,0x0, +0x3,0x0,0x2,0x0,0xfb,0xff,0xf7,0xff,0xfa,0xff,0x5,0x0, +0xd,0x0,0xe,0x0,0xa,0x0,0x4,0x0,0x1,0x0,0x4,0x0, +0x2,0x0,0xf9,0xff,0xf6,0xff,0xf6,0xff,0xf3,0xff,0xf4,0xff, +0xfc,0xff,0xff,0xff,0xff,0xff,0x5,0x0,0xb,0x0,0x6,0x0, +0xfc,0xff,0xf8,0xff,0xf6,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff, +0xf1,0xff,0xec,0xff,0xef,0xff,0xfc,0xff,0x7,0x0,0x7,0x0, +0x5,0x0,0x7,0x0,0x3,0x0,0xf8,0xff,0xf0,0xff,0xef,0xff, +0xf1,0xff,0xf8,0xff,0xff,0xff,0x0,0x0,0x4,0x0,0xb,0x0, +0xd,0x0,0x9,0x0,0x0,0x0,0xf8,0xff,0xf9,0xff,0xfb,0xff, +0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xfd,0xff,0x1,0x0, +0x3,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0x10,0x0, +0x0,0x0,0xfa,0xff,0xfa,0xff,0xf3,0xff,0xf5,0xff,0xfb,0xff, +0xf8,0xff,0xf8,0xff,0x5,0x0,0xa,0x0,0x4,0x0,0x2,0x0, +0xa,0x0,0xf,0x0,0xa,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x8,0x0,0x10,0x0,0xd,0x0,0xb,0x0,0x12,0x0, +0x14,0x0,0x10,0x0,0xd,0x0,0x8,0x0,0x1,0x0,0x0,0x0, +0x3,0x0,0x2,0x0,0xfb,0xff,0xf4,0xff,0xfb,0xff,0x7,0x0, +0x5,0x0,0xfb,0xff,0xf8,0xff,0xfe,0xff,0x3,0x0,0x8,0x0, +0xb,0x0,0x7,0x0,0x5,0x0,0x7,0x0,0xa,0x0,0xb,0x0, +0xa,0x0,0x4,0x0,0x6,0x0,0x10,0x0,0xc,0x0,0xff,0xff, +0x2,0x0,0x7,0x0,0xfd,0xff,0xf7,0xff,0xfb,0xff,0xfb,0xff, +0xf6,0xff,0xf8,0xff,0x1,0x0,0x4,0x0,0x1,0x0,0x7,0x0, +0x10,0x0,0x7,0x0,0xfb,0xff,0xfe,0xff,0xfd,0xff,0xf9,0xff, +0x5,0x0,0xc,0x0,0x1,0x0,0xff,0xff,0xa,0x0,0xc,0x0, +0x7,0x0,0x2,0x0,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff, +0xff,0xff,0xff,0xff,0xfc,0xff,0x4,0x0,0xa,0x0,0x3,0x0, +0xfe,0xff,0xfe,0xff,0xf9,0xff,0xf5,0xff,0xf3,0xff,0xec,0xff, +0xe8,0xff,0xef,0xff,0xfa,0xff,0x2,0x0,0x5,0x0,0xfe,0xff, +0xf8,0xff,0xf9,0xff,0xff,0xff,0xfe,0xff,0xf8,0xff,0xfc,0xff, +0x9,0x0,0x7,0x0,0xf9,0xff,0xfa,0xff,0x3,0x0,0x1,0x0, +0xff,0xff,0x6,0x0,0x1,0x0,0xf0,0xff,0xf3,0xff,0x6,0x0, +0x9,0x0,0x0,0x0,0xff,0xff,0xfb,0xff,0xf4,0xff,0xf8,0xff, +0x0,0x0,0xfd,0xff,0xfb,0xff,0x1,0x0,0x4,0x0,0xff,0xff, +0xfd,0xff,0x3,0x0,0x8,0x0,0x5,0x0,0x6,0x0,0x8,0x0, +0x2,0x0,0xfd,0xff,0x5,0x0,0x8,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0xf8,0xff,0xf6,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0x2,0x0,0x5,0x0,0x3,0x0,0xfb,0xff,0xfc,0xff,0x6,0x0, +0x7,0x0,0x2,0x0,0x3,0x0,0xfc,0xff,0xf5,0xff,0x0,0x0, +0xc,0x0,0x6,0x0,0x3,0x0,0x7,0x0,0x5,0x0,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfb,0xff,0xff,0xff,0x5,0x0,0x0,0x0, +0xf2,0xff,0xf0,0xff,0xf7,0xff,0xfa,0xff,0xfd,0xff,0x4,0x0, +0x0,0x0,0xf8,0xff,0xfe,0xff,0x4,0x0,0x0,0x0,0x1,0x0, +0x5,0x0,0x0,0x0,0xf8,0xff,0xf9,0xff,0xfc,0xff,0xfa,0xff, +0xfe,0xff,0x8,0x0,0x6,0x0,0xf9,0xff,0xf4,0xff,0xfc,0xff, +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xf8,0xff,0xf6,0xff, +0xff,0xff,0x5,0x0,0x0,0x0,0x1,0x0,0x6,0x0,0xff,0xff, +0xf7,0xff,0xff,0xff,0x7,0x0,0x0,0x0,0xfb,0xff,0xff,0xff, +0xfe,0xff,0xf4,0xff,0xf2,0xff,0xff,0xff,0xa,0x0,0x6,0x0, +0x0,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0xfe,0xff,0xf3,0xff,0xf2,0xff,0xfb,0xff,0xfc,0xff, +0x2,0x0,0x13,0x0,0x12,0x0,0x0,0x0,0xfe,0xff,0x7,0x0, +0x6,0x0,0xfd,0xff,0xfd,0xff,0x3,0x0,0x1,0x0,0xfc,0xff, +0x6,0x0,0xe,0x0,0x5,0x0,0x2,0x0,0xd,0x0,0xa,0x0, +0xfd,0xff,0xfe,0xff,0x1,0x0,0xfe,0xff,0xfc,0xff,0xff,0xff, +0x3,0x0,0xff,0xff,0xfa,0xff,0x3,0x0,0xc,0x0,0x3,0x0, +0xfb,0xff,0x3,0x0,0x2,0x0,0xf9,0xff,0xfd,0xff,0x8,0x0, +0x7,0x0,0x3,0x0,0x5,0x0,0x9,0x0,0x5,0x0,0xfd,0xff, +0xff,0xff,0x6,0x0,0x3,0x0,0xfc,0xff,0x1,0x0,0x8,0x0, +0x1,0x0,0xf9,0xff,0x0,0x0,0x5,0x0,0xfa,0xff,0xf3,0xff, +0xff,0xff,0x8,0x0,0xff,0xff,0xfe,0xff,0xc,0x0,0xd,0x0, +0xfd,0xff,0xfc,0xff,0x9,0x0,0x6,0x0,0xfa,0xff,0x1,0x0, +0x6,0x0,0xf9,0xff,0xf7,0xff,0x6,0x0,0xc,0x0,0x5,0x0, +0x4,0x0,0x8,0x0,0x5,0x0,0xf7,0xff,0xef,0xff,0xfa,0xff, +0x6,0x0,0x3,0x0,0x6,0x0,0xe,0x0,0x7,0x0,0xfe,0xff, +0x4,0x0,0x6,0x0,0xfd,0xff,0xf4,0xff,0xfa,0xff,0x8,0x0, +0xa,0x0,0x4,0x0,0xb,0x0,0x10,0x0,0x1,0x0,0xf8,0xff, +0x3,0x0,0x1,0x0,0xf5,0xff,0xf7,0xff,0x1,0x0,0x0,0x0, +0xf8,0xff,0xf8,0xff,0x4,0x0,0x6,0x0,0xfb,0xff,0xfd,0xff, +0x4,0x0,0xf7,0xff,0xf1,0xff,0x3,0x0,0xb,0x0,0xfc,0xff, +0xf9,0xff,0x1,0x0,0xfd,0xff,0xf8,0xff,0x0,0x0,0x9,0x0, +0x5,0x0,0xff,0xff,0x2,0x0,0x3,0x0,0xfc,0xff,0xfa,0xff, +0x3,0x0,0x7,0x0,0xff,0xff,0xfc,0xff,0x2,0x0,0x5,0x0, +0x1,0x0,0xfd,0xff,0xff,0xff,0x0,0x0,0xfc,0xff,0xfa,0xff, +0x1,0x0,0x3,0x0,0xf5,0xff,0xf1,0xff,0xff,0xff,0x0,0x0, +0xf3,0xff,0xf9,0xff,0xb,0x0,0xa,0x0,0x3,0x0,0x6,0x0, +0x8,0x0,0x2,0x0,0xfe,0xff,0x1,0x0,0x2,0x0,0xf4,0xff, +0xec,0xff,0xfd,0xff,0x8,0x0,0xfd,0xff,0xfb,0xff,0x5,0x0, +0x0,0x0,0xf7,0xff,0xff,0xff,0x2,0x0,0xfa,0xff,0xf6,0xff, +0xfb,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0x2,0x0,0x3,0x0, +0x1,0x0,0x4,0x0,0x4,0x0,0xfc,0xff,0xfe,0xff,0x8,0x0, +0x7,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x1,0x0,0x7,0x0, +0x3,0x0,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0x3,0x0, +0x7,0x0,0x2,0x0,0xfe,0xff,0x5,0x0,0x8,0x0,0xff,0xff, +0xfa,0xff,0x4,0x0,0x8,0x0,0x0,0x0,0xfd,0xff,0x4,0x0, +0x5,0x0,0x0,0x0,0x3,0x0,0x6,0x0,0xfc,0xff,0xf3,0xff, +0xfa,0xff,0x4,0x0,0x2,0x0,0xff,0xff,0x5,0x0,0x5,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0x0,0x0, +0x1,0x0,0xfc,0xff,0xfa,0xff,0x2,0x0,0x6,0x0,0x3,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0x3,0x0,0x7,0x0,0x0,0x0, +0xfb,0xff,0xfb,0xff,0xf7,0xff,0xf5,0xff,0xfe,0xff,0xff,0xff, +0xf6,0xff,0xf6,0xff,0x0,0x0,0x5,0x0,0xff,0xff,0xfc,0xff, +0x0,0x0,0xfe,0xff,0xfc,0xff,0x0,0x0,0xfd,0xff,0xf3,0xff, +0xf5,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0x3,0x0,0x7,0x0,0x6,0x0,0xff,0xff,0xf7,0xff,0xf3,0xff, +0xf6,0xff,0xf7,0xff,0xf5,0xff,0xf8,0xff,0xfd,0xff,0x1,0x0, +0x5,0x0,0x4,0x0,0x2,0x0,0x5,0x0,0x7,0x0,0xfe,0xff, +0xf7,0xff,0xf8,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xfb,0xff,0xfd,0xff,0x7,0x0,0x9,0x0,0x8,0x0, +0xc,0x0,0xb,0x0,0x4,0x0,0x2,0x0,0xff,0xff,0xf5,0xff, +0xf4,0xff,0xff,0xff,0x8,0x0,0x8,0x0,0xb,0x0,0x12,0x0, +0x11,0x0,0x9,0x0,0x5,0x0,0x2,0x0,0xfb,0xff,0xf9,0xff, +0xfd,0xff,0xfd,0xff,0xfa,0xff,0xfa,0xff,0xfe,0xff,0x5,0x0, +0x8,0x0,0x5,0x0,0x5,0x0,0xa,0x0,0xb,0x0,0x8,0x0, +0x6,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x8,0x0,0x9,0x0, +0x0,0x0,0xf9,0xff,0x0,0x0,0x6,0x0,0x3,0x0,0xfd,0xff, +0xfc,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0xff,0xff,0x1,0x0,0xb,0x0,0x7,0x0,0xfd,0xff,0x0,0x0, +0x2,0x0,0xfc,0xff,0xfc,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x2,0x0,0x6,0x0,0x6,0x0,0x4,0x0, +0x2,0x0,0x4,0x0,0x6,0x0,0x2,0x0,0x0,0x0,0x3,0x0, +0x1,0x0,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0x2,0x0, +0x2,0x0,0x1,0x0,0x8,0x0,0xb,0x0,0x2,0x0,0xfb,0xff, +0xfa,0xff,0xf9,0xff,0xf6,0xff,0xf7,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x6,0x0,0xa,0x0,0x5,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff, +0xfc,0xff,0x1,0x0,0xfc,0xff,0xf8,0xff,0xfc,0xff,0xfd,0xff, +0xfa,0xff,0xfb,0xff,0xff,0xff,0x4,0x0,0x8,0x0,0x8,0x0, +0x2,0x0,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0xff,0xff, +0xfd,0xff,0x4,0x0,0x7,0x0,0x5,0x0,0x9,0x0,0xa,0x0, +0x0,0x0,0xf9,0xff,0xfc,0xff,0xfd,0xff,0xf9,0xff,0xfa,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0x1,0x0,0x2,0x0,0xfc,0xff, +0xfb,0xff,0x0,0x0,0xfd,0xff,0xf9,0xff,0xfd,0xff,0xfc,0xff, +0xf8,0xff,0xfa,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x6,0x0,0x8,0x0,0x5,0x0,0xff,0xff, +0xff,0xff,0x4,0x0,0x4,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfa,0xff,0xfa,0xff,0xff,0xff,0x0,0x0,0xfc,0xff,0xfe,0xff, +0x6,0x0,0x6,0x0,0x3,0x0,0x3,0x0,0xfe,0xff,0xfc,0xff, +0x3,0x0,0x4,0x0,0xfc,0xff,0xfd,0xff,0x1,0x0,0xfd,0xff, +0xfc,0xff,0x0,0x0,0xfe,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff, +0xfc,0xff,0xfb,0xff,0x3,0x0,0xb,0x0,0x9,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0x1,0x0,0x3,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x3,0x0,0x7,0x0,0x7,0x0,0x1,0x0,0xff,0xff, +0x2,0x0,0x1,0x0,0xff,0xff,0x3,0x0,0x5,0x0,0x0,0x0, +0xfe,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x2,0x0,0x5,0x0, +0x3,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfc,0xff,0xfd,0xff,0x2,0x0,0x3,0x0,0x0,0x0, +0xfb,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfa,0xff,0xfc,0xff,0x6,0x0,0x6,0x0,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0,0xfe,0xff,0xff,0xff, +0x3,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x6,0x0, +0x5,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0x3,0x0,0x5,0x0,0x3,0x0,0x1,0x0, +0xfd,0xff,0xfc,0xff,0x0,0x0,0x4,0x0,0x2,0x0,0x1,0x0, +0x4,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x3,0x0, +0x3,0x0,0x7,0x0,0x5,0x0,0x0,0x0,0xfe,0xff,0xfb,0xff, +0xf9,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff,0xff,0xff,0x6,0x0, +0x6,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0x1,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x4,0x0,0x4,0x0,0x2,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x3,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0x0,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0x0,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0xff,0xff,0x2,0x0,0x0,0x0, +0xfe,0xff,0x1,0x0,0x2,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x2,0x0,0x4,0x0,0x1,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0xfd,0xff,0xf9,0xff, +0xfd,0xff,0x4,0x0,0x4,0x0,0x0,0x0,0x2,0x0,0x5,0x0, +0x3,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfe,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0, +0x5,0x0,0x4,0x0,0x1,0x0,0x1,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x6,0x0, +0xa,0x0,0x9,0x0,0x8,0x0,0x6,0x0,0x1,0x0,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x4,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x5,0x0,0x7,0x0,0x3,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff, +0xff,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x3,0x0,0x3,0x0,0xff,0xff,0xfe,0xff,0x1,0x0,0x0,0x0, +0xfa,0xff,0xf9,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xff,0xff, +0xfd,0xff,0xfa,0xff,0xf7,0xff,0xf6,0xff,0xf9,0xff,0xfc,0xff, +0xfe,0xff,0x1,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x2,0x0, +0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xf9,0xff,0xf9,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x2,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0xfd,0xff,0xfc,0xff, +0x1,0x0,0x1,0x0,0xfd,0xff,0xfe,0xff,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0x3,0x0,0x4,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0xff,0xff,0xfc,0xff,0xfc,0xff,0x1,0x0,0x6,0x0,0x8,0x0, +0x6,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0x2,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xff,0xff, +0x4,0x0,0x6,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x4,0x0,0xa,0x0,0xd,0x0,0xc,0x0,0xa,0x0,0x7,0x0, +0x2,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xfd,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0,0xfd,0xff,0xff,0xff, +0x6,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xf8,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xff,0xff,0x2,0x0, +0x0,0x0,0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff, +0xfb,0xff,0xf8,0xff,0xf8,0xff,0xfb,0xff,0x0,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x6,0x0,0x4,0x0,0xfe,0xff,0xfb,0xff, +0xf9,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff, +0x3,0x0,0x8,0x0,0xc,0x0,0xe,0x0,0xa,0x0,0x4,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xff,0xff,0x2,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfa,0xff,0xf9,0xff,0xfc,0xff,0x1,0x0,0x5,0x0,0xc,0x0, +0xe,0x0,0xc,0x0,0xa,0x0,0x8,0x0,0x4,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x6,0x0,0x8,0x0,0x7,0x0,0x3,0x0, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfe,0xff,0x2,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfc,0xff, +0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x2,0x0, +0xff,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xfe,0xff,0xfa,0xff, +0xfa,0xff,0xfd,0xff,0x0,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0x1,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x9,0x0,0x9,0x0,0x7,0x0, +0x5,0x0,0x2,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0x0,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x4,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xfc,0xff,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x2,0x0, +0xff,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfe,0xff,0x1,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x3,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0xfb,0xff, +0xf7,0xff,0xf7,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x4,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff, +0xf9,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x4,0x0,0x6,0x0,0x9,0x0,0xa,0x0,0x9,0x0, +0x8,0x0,0x7,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xff,0xff,0x4,0x0, +0x6,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x4,0x0,0x1,0x0, +0xfe,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0x0,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xf8,0xff, +0xf8,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x3,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xfb,0xff,0xf7,0xff,0xf7,0xff,0xfb,0xff, +0x1,0x0,0x8,0x0,0xf,0x0,0x14,0x0,0x12,0x0,0xd,0x0, +0x5,0x0,0xfd,0xff,0xf6,0xff,0xf3,0xff,0xf1,0xff,0xf1,0xff, +0xf4,0xff,0xfa,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x6,0x0, +0x8,0x0,0x6,0x0,0x2,0x0,0xfd,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x5,0x0,0xa,0x0,0xd,0x0,0xa,0x0, +0x6,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x4,0x0,0x6,0x0, +0x6,0x0,0x3,0x0,0x2,0x0,0x4,0x0,0x6,0x0,0x7,0x0, +0x7,0x0,0x7,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x2,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfb,0xff,0x0,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0xfd,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xff,0xff,0x4,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x3,0x0, +0x6,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff, +0x1,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x4,0x0, +0x6,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff, +0xfb,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x3,0x0, +0x6,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x2,0x0,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0xff,0xff,0xfe,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x4,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x5,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x1,0x0,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x4,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0x0,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x3,0x0,0x6,0x0,0x3,0x0, +0xfe,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x2,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xfb,0xff,0xf7,0xff,0xf6,0xff, +0xf9,0xff,0xfd,0xff,0x3,0x0,0x8,0x0,0xd,0x0,0x10,0x0, +0xf,0x0,0x8,0x0,0x0,0x0,0xfc,0xff,0xfb,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfd,0xff, +0xf9,0xff,0xf4,0xff,0xf3,0xff,0xf4,0xff,0xf9,0xff,0xff,0xff, +0x4,0x0,0x8,0x0,0xa,0x0,0xb,0x0,0x9,0x0,0x4,0x0, +0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0, +0x5,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x3,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x9,0x0,0x7,0x0,0x2,0x0,0xfd,0xff,0xfb,0xff,0xfd,0xff, +0x2,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0xfe,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x6,0x0,0x6,0x0, +0x4,0x0,0x2,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x3,0x0,0x7,0x0,0x8,0x0,0x5,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x2,0x0, +0xff,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0xff,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0x0,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x1,0x0, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x1,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/grass1.pcm b/src/client/sound/data/grass1.pcm new file mode 100755 index 0000000..3fd0805 --- /dev/null +++ b/src/client/sound/data/grass1.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_grass1[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,216,255,91,255,94,255,187,0,81,1,9,0,100,254,149,254, +52,255,28,252,100,249,107,251,174,253,55,255,5,1,144,1,12,2,0,1,126,254,133,254,11,255,14,0,142,0,122,249, +198,244,146,253,219,4,202,1,218,254,247,255,158,1,153,0,252,253,80,0,82,6,177,7,9,5,187,4,32,6,50,6, +251,5,160,4,153,3,84,6,155,10,117,18,26,25,31,20,167,14,96,9,226,255,206,10,87,24,121,2,63,234,84,232, +10,233,206,235,182,242,208,254,127,9,199,253,134,242,39,255,187,9,223,12,149,13,110,254,226,239,147,246,102,251,108,232, +136,216,211,229,218,244,184,241,80,241,64,249,111,0,23,6,250,5,229,255,114,253,182,2,237,6,172,4,121,255,73,247, +175,243,210,248,174,252,39,4,220,10,113,3,35,254,152,250,103,243,241,255,37,17,134,13,39,7,33,7,62,9,44,13, +83,15,227,15,216,15,78,23,229,29,54,14,188,251,208,241,108,233,173,249,200,13,87,2,207,250,106,4,76,5,163,0, +75,0,34,10,114,18,38,5,65,251,67,9,138,16,112,254,93,234,72,234,140,240,210,236,58,238,5,253,21,8,157,9, +17,10,237,4,28,250,143,251,254,253,100,239,148,231,181,232,176,230,213,245,153,6,207,253,29,238,235,227,70,229,11,240, +135,247,37,15,29,38,213,14,205,242,80,254,186,13,24,9,44,1,137,1,185,1,249,250,155,243,85,234,43,227,40,229, +101,232,229,242,87,253,120,240,191,233,0,254,185,8,223,4,151,12,251,27,199,31,58,22,118,17,46,23,86,25,201,19, +180,9,10,255,11,251,63,253,208,255,254,254,62,253,87,255,202,0,17,253,17,248,40,250,198,6,244,16,140,13,129,0, +234,249,248,10,112,25,59,6,225,242,119,246,162,253,217,6,138,15,182,14,137,3,37,241,89,241,125,3,152,8,106,11, +219,13,209,1,85,0,229,4,63,251,32,253,117,6,152,249,116,237,119,254,137,14,161,250,163,228,18,243,49,2,38,242, +214,222,86,225,153,237,22,241,232,238,13,237,6,237,37,245,132,251,152,254,125,2,113,241,237,230,8,3,1,16,150,7, +107,17,243,18,38,9,211,8,200,2,225,253,186,3,92,18,28,34,119,16,134,242,245,245,207,251,79,247,152,250,114,241, +1,234,93,0,41,14,127,250,36,235,245,241,25,243,149,234,240,241,188,0,199,255,23,0,44,16,126,20,123,10,173,16, +183,23,61,15,116,9,17,246,141,225,166,248,227,17,168,16,243,20,151,14,225,255,157,7,48,19,217,21,102,11,113,249, +39,249,223,240,65,219,236,223,139,236,25,246,224,252,163,226,36,212,218,246,142,18,33,26,113,22,138,244,24,214,72,216, +7,230,152,249,150,8,168,252,186,241,128,14,165,44,179,25,194,250,105,248,121,254,194,7,81,14,90,251,108,240,17,6, +88,16,27,6,171,2,31,254,111,247,80,0,240,10,241,0,177,241,158,248,74,5,47,248,254,238,7,13,10,36,193,14, +1,251,151,2,169,8,4,14,55,27,68,20,89,253,203,246,80,251,123,5,215,17,48,8,72,252,177,5,127,9,109,16, +172,32,119,12,10,240,150,5,88,29,166,8,147,247,159,14,0,37,168,25,104,9,57,5,50,1,151,4,195,9,31,4, +159,3,96,7,145,254,183,233,66,217,156,233,189,6,180,251,50,229,182,245,32,15,194,14,10,8,236,17,90,26,252,12, +187,1,39,251,94,234,248,248,25,25,240,255,251,219,252,239,30,11,218,18,239,20,4,8,39,253,161,252,27,248,170,252, +178,4,250,2,114,3,170,254,7,254,62,18,169,19,251,253,215,251,153,249,12,230,25,233,234,250,136,240,145,225,107,239, +141,1,225,11,180,16,110,252,138,236,158,7,100,39,204,45,198,27,148,243,97,223,230,231,120,234,177,249,151,19,59,20, +84,11,219,250,210,226,201,237,124,8,248,5,152,249,4,245,170,248,190,2,82,10,171,27,95,37,114,6,170,234,125,239, +178,251,132,21,189,34,159,253,196,218,47,213,130,215,239,245,220,17,100,246,58,222,192,251,207,22,133,4,70,233,55,241, +23,7,21,1,167,237,137,227,253,220,190,227,186,240,166,225,137,214,54,255,169,26,206,239,159,210,62,2,18,51,14,31, +25,250,46,11,212,27,5,230,99,180,180,197,75,228,242,246,147,2,144,3,51,23,248,49,192,46,190,41,206,43,248,20, +25,245,98,233,20,242,46,8,46,28,193,35,206,25,116,243,99,216,30,249,204,22,34,255,216,249,133,18,226,8,79,233, +39,217,56,223,55,234,91,221,189,219,199,255,90,32,204,60,130,79,109,56,172,22,48,0,26,243,60,252,62,255,249,233, +218,217,159,227,172,238,18,200,178,168,172,224,219,21,126,20,200,16,237,234,76,187,111,208,170,242,0,247,107,1,212,17, +33,26,80,19,158,4,134,254,4,254,111,9,160,22,211,14,218,7,178,10,151,15,200,29,12,34,251,34,51,55,218,49, +37,17,168,27,29,56,204,29,248,249,139,8,111,28,158,29,113,36,117,25,75,255,41,251,77,254,211,4,255,6,103,226, +92,199,175,215,92,230,115,5,55,38,76,253,55,211,182,248,13,28,40,14,51,4,108,28,174,49,81,17,79,236,189,252, +191,16,177,28,221,28,167,221,53,182,119,230,43,6,175,22,87,55,215,27,156,240,90,2,135,19,97,0,15,247,31,30, +46,64,143,8,83,204,251,243,147,34,8,16,210,247,148,251,164,9,56,15,245,11,43,7,85,0,135,255,88,0,87,246, +199,238,254,237,215,227,167,204,181,201,14,251,247,37,21,15,34,244,13,4,138,24,230,34,228,36,98,15,204,247,195,2, +247,22,30,9,22,241,85,236,236,227,119,209,240,206,149,224,211,236,186,232,217,233,144,236,29,227,37,232,78,249,172,254, +140,6,55,12,98,8,56,20,71,37,14,31,84,13,175,9,45,14,67,3,107,248,32,253,184,247,53,231,60,217,70,210, +244,218,111,214,97,199,241,225,248,253,125,237,100,231,35,248,178,252,46,0,154,8,63,6,244,249,26,241,49,242,236,237, +55,228,246,244,31,16,97,2,163,236,78,7,219,34,133,20,66,6,103,1,34,245,161,243,188,245,30,238,65,234,54,226, +227,215,62,224,35,240,6,255,155,13,119,11,26,5,110,11,144,10,253,11,187,24,97,10,211,247,160,11,123,23,215,19, +173,29,208,8,186,230,239,248,9,22,31,26,93,22,208,254,102,228,236,227,184,233,205,233,29,234,116,238,163,247,224,253, +43,255,199,246,102,235,24,244,32,4,44,14,159,21,89,4,208,237,171,249,207,8,210,7,120,8,108,1,105,247,127,1, +3,22,185,21,162,0,129,4,150,27,105,7,245,226,224,238,33,11,21,13,186,8,173,15,61,17,174,0,69,246,200,2, +29,13,12,6,44,250,229,248,53,0,1,249,147,235,112,242,47,253,70,255,241,0,253,0,94,3,215,248,133,228,98,247, +136,26,79,27,151,16,221,255,160,239,89,4,91,23,76,5,228,247,160,250,15,250,89,246,8,242,219,232,78,220,232,231, +48,5,65,254,232,230,24,241,53,6,198,12,203,1,180,239,75,244,225,7,59,19,97,18,96,11,125,31,0,55,98,19, +223,236,27,251,18,4,55,246,113,237,106,229,185,228,76,240,198,255,33,19,85,28,159,23,26,23,225,22,39,17,130,17, +51,18,190,12,79,18,219,31,205,32,238,30,111,26,18,0,19,234,142,239,112,255,109,28,213,51,27,34,22,10,202,255, +57,235,110,232,252,248,15,244,106,243,231,2,160,10,96,37,173,58,250,15,60,232,55,1,100,32,29,40,104,37,34,14, +76,252,132,2,247,255,187,253,229,4,127,245,57,242,49,22,32,38,161,23,156,5,118,239,73,234,164,238,55,237,137,5, +36,29,78,15,226,248,184,223,162,214,248,241,29,254,96,246,145,252,23,254,45,251,93,250,219,247,229,8,251,26,88,21, +91,16,147,15,249,10,104,12,25,14,192,2,127,242,74,246,95,1,115,244,75,233,33,239,57,242,49,1,95,18,105,7, +164,251,244,4,208,8,6,245,188,232,121,4,45,33,96,33,100,33,137,25,234,3,149,254,48,0,47,253,140,253,235,247, +218,247,123,10,103,19,81,3,60,243,41,243,69,246,194,249,30,4,71,7,217,255,248,249,165,242,110,234,61,234,172,245, +204,5,198,10,122,5,63,249,97,232,241,237,250,1,20,255,51,248,16,5,184,17,72,15,179,6,101,18,131,41,86,26, +78,248,11,251,225,9,153,5,131,0,224,245,14,230,26,240,68,1,49,253,176,249,114,244,226,232,106,243,64,0,22,251, +24,1,248,11,70,11,53,10,144,255,43,233,129,224,37,242,191,2,224,239,237,221,10,243,145,251,172,229,232,226,245,240, +78,244,46,241,43,240,149,245,6,249,81,235,87,220,226,231,4,254,202,0,175,253,67,1,254,253,108,252,132,4,78,8, +91,10,254,16,240,15,199,254,41,241,27,254,95,13,219,4,16,251,216,251,187,248,208,238,218,234,168,247,72,1,24,0, +185,13,44,23,47,12,9,17,41,27,189,15,115,4,13,245,23,225,26,244,187,21,86,5,142,230,62,240,152,255,28,253, +228,253,152,253,214,0,197,19,119,29,214,16,7,3,67,9,10,18,51,247,153,219,23,237,87,1,80,4,245,7,85,248, +134,228,33,239,15,253,237,246,188,238,227,238,137,242,201,248,218,251,175,243,61,243,78,4,120,12,112,9,146,7,159,255, +44,246,225,242,202,244,16,247,170,239,153,232,148,236,130,247,238,2,145,249,84,236,248,0,96,22,43,20,124,14,14,2, +12,247,147,242,8,236,172,250,236,18,194,17,99,8,124,5,135,1,7,252,41,252,45,6,81,6,212,255,187,1,205,239, +168,222,219,247,45,15,249,10,132,253,102,232,113,228,116,244,55,246,209,239,168,245,219,9,15,25,255,8,2,245,130,252, +97,7,137,8,112,11,160,16,135,16,87,2,181,240,192,237,158,240,132,236,167,233,167,239,189,242,78,239,41,247,195,3, +49,4,129,7,17,13,190,0,20,243,109,250,162,3,67,247,95,239,209,10,193,37,39,33,99,27,16,32,52,35,179,39, +67,38,213,29,5,15,163,236,38,212,102,227,240,243,194,238,165,234,241,235,203,238,168,245,51,252,218,3,141,9,63,4, +250,0,3,9,189,11,46,10,36,14,141,6,201,249,143,3,182,14,97,6,54,1,248,0,93,254,218,7,88,20,85,17, +78,7,35,3,123,6,8,8,188,2,227,0,141,4,85,6,184,3,214,252,199,247,182,247,100,251,126,5,45,11,143,3, +139,0,94,8,119,10,19,7,186,6,250,3,27,6,160,22,101,25,72,4,211,250,3,253,200,249,152,0,130,11,51,13, +78,15,193,15,85,16,202,12,133,249,172,245,94,8,185,10,158,0,75,247,101,241,33,2,221,17,228,5,97,251,158,251, +195,251,188,254,209,252,103,255,170,16,75,23,185,16,46,12,164,5,10,7,112,8,44,237,192,218,84,248,254,18,54,4, +249,235,138,228,6,235,97,245,206,251,189,253,79,254,199,3,38,12,188,13,51,9,196,254,254,248,106,11,52,29,60,19, +122,8,125,10,32,12,72,18,210,22,167,7,235,243,38,246,178,2,213,1,98,250,144,241,219,232,57,245,88,8,120,4, +20,254,93,0,61,0,225,5,156,7,130,252,192,248,21,254,3,4,21,10,209,8,15,2,105,252,149,249,80,255,232,7, +240,10,184,12,187,11,42,6,159,255,248,244,187,238,158,250,70,5,8,251,206,243,123,255,41,4,72,245,183,231,59,236, +240,254,156,16,224,22,241,17,81,9,80,8,103,11,203,1,228,237,43,227,70,230,28,236,216,243,89,255,37,5,137,14, +82,23,189,245,239,206,198,235,129,16,95,254,174,236,15,242,72,243,196,245,113,249,88,249,218,250,101,251,113,255,213,3, +239,1,94,6,25,10,128,3,112,3,140,5,80,3,211,10,8,16,111,6,43,254,152,253,120,253,71,246,96,236,158,241, +134,255,60,5,151,6,169,255,86,246,119,3,2,21,107,12,132,252,88,248,248,247,189,250,13,0,187,255,180,0,168,11, +59,17,166,5,98,251,201,1,98,9,240,1,44,249,26,255,169,7,157,9,31,11,140,7,110,255,240,253,159,2,135,9, +91,10,43,2,132,254,252,250,102,245,215,254,128,5,239,248,144,242,145,248,7,254,63,1,103,1,75,3,205,6,205,6, +130,4,45,252,55,248,190,3,138,9,81,3,42,2,243,4,17,5,95,0,122,249,168,249,92,0,212,7,192,10,191,6, +169,1,237,249,12,244,169,251,116,2,48,254,3,251,91,251,132,252,94,251,10,251,166,5,147,11,10,3,205,254,56,252, +63,246,145,249,166,255,7,0,32,252,126,245,140,248,143,0,218,0,26,10,144,20,43,3,73,240,125,247,133,255,84,1, +105,8,146,5,148,255,146,15,149,27,61,6,167,239,152,244,138,254,92,252,160,252,14,4,233,5,118,254,16,246,58,247, +249,252,1,246,74,236,231,243,246,252,151,248,141,247,122,1,91,6,75,253,7,243,128,243,138,250,50,3,227,7,229,3, +94,255,1,250,167,238,187,233,49,236,228,235,97,239,111,246,27,249,89,252,141,252,42,242,172,235,26,244,199,255,231,5, +5,8,86,7,152,7,49,9,82,7,26,4,126,2,158,3,138,6,92,0,136,247,178,255,36,7,123,250,124,241,5,249, +30,254,124,248,202,242,210,245,79,252,174,253,134,252,133,254,193,1,76,255,155,248,60,247,249,248,166,248,248,250,17,254, +75,255,144,3,201,6,232,2,143,253,202,253,144,2,194,5,9,6,29,6,240,4,172,2,1,2,226,1,55,0,208,254, +33,0,79,3,126,8,167,12,93,9,154,6,50,9,35,4,59,253,170,0,200,2,34,1,106,2,33,1,252,251,119,245, +70,244,18,255,202,8,134,9,102,6,217,251,244,241,35,246,227,254,121,0,10,0,20,9,135,19,236,9,133,248,167,246, +193,252,226,4,127,11,194,3,48,249,205,250,87,253,126,250,22,248,115,247,79,250,23,2,145,8,76,9,87,8,103,4, +40,254,79,2,131,8,215,0,252,250,78,251,108,245,59,247,135,1,11,2,131,3,154,13,107,18,103,18,182,19,27,18, +59,7,152,245,175,237,4,243,72,245,85,242,109,244,193,0,161,14,26,7,144,246,224,1,166,16,117,0,187,239,195,239, +196,243,217,2,79,14,225,1,98,249,46,3,208,7,88,0,15,247,210,242,176,245,147,255,83,10,141,8,20,7,167,28, +237,44,202,26,248,0,143,246,241,241,136,236,95,239,221,254,51,13,11,21,43,24,84,11,210,251,62,255,197,5,77,8, +206,12,101,9,243,5,105,8,203,2,16,254,203,0,91,253,52,249,10,252,239,0,28,8,73,9,96,252,7,241,25,244, +183,254,104,10,165,16,86,11,36,5,15,3,201,252,67,253,49,5,233,254,100,249,54,6,80,13,134,10,170,10,84,6, +98,0,170,253,115,250,158,255,140,8,41,7,189,3,164,2,21,255,226,254,131,2,228,3,28,3,220,2,233,3,211,1, +253,253,13,1,70,5,66,4,190,3,18,255,170,247,225,251,30,1,124,250,194,244,35,245,31,250,5,4,118,7,98,5, +189,6,112,5,98,5,181,10,164,10,29,9,229,9,26,6,171,1,73,250,107,242,67,252,254,9,129,3,42,251,59,3, +232,8,124,252,191,240,75,248,190,4,4,10,117,12,65,6,102,252,199,254,7,1,171,246,106,240,232,245,47,251,155,255, +224,6,176,6,177,0,39,3,46,6,159,2,229,1,59,253,200,242,189,242,251,247,114,246,119,244,47,250,211,5,178,8, +243,0,57,3,157,12,196,10,24,3,11,255,31,255,232,255,160,252,255,249,139,247,109,240,8,239,109,246,159,255,217,7, +128,5,211,252,2,253,188,252,4,249,100,254,145,3,108,0,69,255,247,4,63,12,219,9,184,0,5,1,31,4,133,1, +132,0,178,252,34,250,36,2,223,5,30,5,225,6,202,251,8,240,254,248,133,3,225,3,208,1,220,251,123,248,189,254, +209,5,122,6,146,4,66,7,62,9,21,4,49,2,189,1,105,249,113,247,223,254,85,255,19,252,86,254,32,0,11,252, +206,248,72,253,165,255,210,248,232,244,30,247,140,247,98,247,7,249,54,252,226,0,141,4,95,4,66,254,122,247,69,248, +100,252,155,254,101,0,101,255,165,252,191,252,191,252,250,248,237,242,202,239,220,243,149,249,217,250,37,253,251,1,227,0, +134,251,206,249,221,248,3,247,249,246,31,246,18,248,108,0,43,6,91,6,33,4,218,255,131,254,226,254,155,252,30,253, +149,254,242,251,57,251,16,254,144,0,95,2,10,4,121,5,25,3,96,253,65,253,22,4,66,8,20,4,122,253,5,250, +143,246,246,247,3,0,152,253,56,245,56,252,246,4,59,253,98,246,237,254,189,6,246,0,239,251,130,254,139,253,171,254, +60,5,134,2,37,251,11,250,58,250,44,252,82,0,109,2,125,4,139,3,221,253,21,252,157,254,95,254,17,253,9,255, +32,0,156,253,250,253,140,2,52,5,239,4,17,5,214,6,245,4,52,254,13,253,98,1,229,1,174,255,118,254,106,2, +7,6,55,251,48,241,42,249,117,0,6,253,199,246,22,242,95,245,175,249,124,248,223,254,115,9,14,10,173,5,41,4, +191,4,233,1,103,252,91,252,132,254,163,254,175,254,183,252,195,253,152,1,53,1,203,3,55,5,233,254,36,255,65,0, +159,251,114,2,44,10,143,5,206,4,141,4,94,253,118,253,162,4,112,9,145,9,197,4,191,2,129,4,118,2,28,1, +192,3,197,5,22,6,9,2,91,252,31,254,173,4,57,9,113,10,135,7,160,3,108,1,103,255,247,252,246,249,83,251, +33,1,160,255,16,253,85,5,8,9,90,2,1,254,60,248,6,241,1,244,101,253,71,3,139,2,124,254,249,253,216,255, +238,0,251,1,37,1,220,254,33,254,29,2,237,4,221,247,29,237,185,255,210,15,62,3,192,252,7,8,129,9,102,1, +221,0,227,4,119,6,223,11,136,18,139,11,56,2,173,10,129,16,181,255,60,241,29,248,77,1,78,254,206,247,30,245, +93,248,143,255,152,254,178,245,218,242,143,244,111,245,217,247,30,250,146,254,222,2,95,253,184,248,140,254,136,3,228,6, +58,10,38,4,206,252,255,255,100,4,12,6,172,10,48,12,245,7,61,7,192,8,4,5,79,255,197,251,44,250,89,250, +156,248,56,244,209,244,29,252,241,0,80,255,38,253,100,253,97,255,27,3,24,5,81,5,207,4,211,254,43,251,53,2, +223,6,215,3,202,254,96,247,155,244,99,246,70,246,91,254,38,9,49,6,13,0,185,254,251,254,86,4,105,8,37,7, +72,7,251,4,202,255,248,0,68,7,184,10,48,9,126,7,254,6,57,3,130,255,49,0,71,2,169,5,168,9,126,9, +192,3,147,252,110,249,113,248,208,248,67,255,150,4,184,2,97,1,4,2,229,2,244,4,113,5,33,4,13,0,189,251, +93,252,231,248,105,243,97,250,30,1,211,252,131,251,62,255,227,255,144,254,118,255,227,255,19,251,232,252,64,7,24,2, +75,245,6,250,164,1,236,255,40,0,96,2,168,2,181,255,244,250,135,253,17,3,194,0,4,253,51,253,57,253,222,253, +47,0,122,2,156,7,43,14,72,12,175,4,32,3,56,4,163,3,168,4,12,3,90,255,52,255,3,255,193,255,124,4, +251,5,220,0,247,251,29,254,63,2,158,255,78,252,13,252,48,251,248,0,129,9,86,6,229,255,206,0,147,1,47,255, +144,0,199,5,25,4,240,249,131,242,119,240,194,242,4,250,180,255,248,1,152,1,205,252,141,250,189,251,243,250,166,253, +229,1,247,254,118,251,32,255,20,2,240,251,65,245,99,246,228,249,23,0,79,5,81,255,176,252,126,6,243,12,242,15, +239,16,138,7,219,254,95,2,196,7,11,0,106,243,142,250,15,8,164,0,205,247,191,252,17,2,147,7,83,10,97,3, +141,252,154,252,145,0,189,1,85,255,87,2,145,6,3,5,28,5,173,8,37,11,126,8,249,2,62,4,46,5,218,255, +186,0,22,3,220,255,16,0,17,0,35,252,44,251,189,254,67,4,237,3,163,255,185,1,26,1,255,250,110,252,53,0, +183,255,224,255,91,255,122,253,50,253,180,254,197,255,246,254,123,255,81,0,10,0,142,2,75,3,211,0,20,0,216,252, +166,251,192,1,181,2,248,252,16,249,96,248,166,252,92,0,245,254,201,0,217,5,11,6,61,3,5,5,82,8,183,1, +29,248,137,249,26,255,205,2,2,6,85,4,92,1,196,2,51,5,62,4,115,254,105,251,106,253,60,252,225,252,140,0, +68,255,55,1,143,4,80,254,4,251,249,255,235,255,45,250,170,248,129,0,64,8,44,5,186,255,198,254,206,0,83,7, +206,8,28,0,4,251,46,253,209,0,14,4,89,2,220,253,237,251,114,249,137,247,59,248,164,248,43,251,120,252,240,245, +115,242,178,248,41,252,187,249,79,250,67,254,247,0,127,2,246,3,231,1,41,253,107,254,208,2,60,1,33,254,91,252, +210,249,212,250,237,253,52,254,94,252,207,249,66,250,20,252,122,252,118,1,62,4,54,254,61,252,120,252,7,249,45,253, +168,2,220,254,35,252,102,254,100,0,35,255,229,251,217,254,113,3,28,0,19,255,174,4,234,5,60,2,183,255,13,0, +78,3,1,8,6,10,233,4,0,254,70,254,239,255,21,253,66,253,233,0,16,1,199,0,47,2,60,255,163,249,51,247, +12,247,83,250,1,0,167,1,49,2,92,4,21,4,75,4,198,3,62,254,156,251,240,251,194,249,183,252,145,2,163,1, +204,0,216,2,191,0,169,253,120,252,105,252,177,1,114,6,32,4,140,4,182,4,77,250,202,243,38,248,26,254,92,8, +208,12,123,0,53,250,132,2,20,8,68,9,57,7,124,1,45,0,235,1,178,1,53,255,18,249,171,244,182,246,252,251, +121,0,119,254,159,248,182,250,58,2,29,2,11,253,197,0,42,6,195,253,103,247,75,0,195,4,221,255,38,254,9,254, +158,253,156,252,184,249,64,250,231,252,122,254,172,255,154,252,191,251,52,4,19,9,244,4,104,2,71,4,184,5,243,3, +21,2,105,3,106,4,70,4,120,5,25,6,64,5,106,3,96,0,45,254,72,254,42,0,21,1,143,254,26,252,108,251, +52,250,72,251,93,254,185,254,226,255,119,2,118,0,97,254,197,0,145,1,142,255,48,254,158,255,25,5,79,7,196,1, +70,251,70,245,132,241,64,245,106,250,179,253,135,0,221,253,168,251,252,255,22,2,90,3,145,7,137,7,40,6,153,7, +201,6,90,4,13,2,42,255,227,253,219,254,77,1,56,2,201,0,32,3,37,5,187,254,173,250,219,255,156,1,220,251, +9,248,64,249,127,251,176,252,4,255,107,4,220,8,151,6,90,1,27,3,1,8,252,2,220,251,112,0,91,5,15,4, +131,6,78,6,61,2,1,9,59,15,102,6,179,252,123,250,131,251,195,253,34,255,40,2,44,3,134,252,255,248,184,251, +65,254,233,3,61,7,33,3,197,1,186,2,0,0,250,253,22,254,198,253,65,253,227,254,114,1,251,255,162,254,118,1, +100,2,172,1,138,2,176,2,2,2,90,1,28,2,3,3,198,1,100,3,133,6,203,7,243,10,190,9,107,7,69,17, +23,28,34,32,93,29,76,7,80,239,243,237,202,244,12,251,244,1,62,2,101,2,212,4,80,3,208,1,12,254,100,245, +15,236,191,226,42,223,110,225,85,229,92,238,211,241,157,235,229,233,102,228,136,219,141,228,50,241,165,242,240,247,255,253, +111,254,71,1,209,0,42,252,92,253,180,254,241,254,83,11,125,27,112,25,153,15,33,21,162,32,132,35,232,30,56,16, +157,3,236,6,15,8,198,3,94,7,40,5,116,253,173,255,230,2,137,5,128,6,203,248,63,238,157,244,132,248,229,247, +146,249,129,249,237,251,55,255,55,0,171,7,217,14,228,9,217,5,128,12,146,16,156,16,206,22,236,21,94,12,204,18, +30,25,72,6,106,243,145,236,244,233,108,246,52,9,11,19,143,20,236,5,137,248,194,5,74,19,206,12,157,6,96,8, +189,8,15,5,108,2,80,4,214,6,221,8,18,10,211,8,125,6,125,254,61,245,201,245,158,245,219,241,185,243,241,240, +16,238,35,250,157,4,190,2,12,255,74,251,162,244,8,233,102,224,70,229,31,233,64,229,196,231,183,235,229,239,129,254, +27,10,15,11,3,9,127,255,233,242,162,236,78,235,34,244,43,0,38,1,153,255,193,252,208,248,110,3,12,11,191,253, +92,244,0,244,141,244,1,0,190,6,68,252,109,244,91,241,229,238,86,243,95,248,72,254,201,3,234,250,231,242,10,254, +106,8,124,7,189,9,251,15,236,12,240,251,118,234,223,230,248,234,209,237,186,241,214,244,40,248,96,2,203,10,223,9, +148,9,129,11,174,10,247,10,218,13,232,19,4,25,221,18,190,8,54,3,210,254,172,2,182,7,2,254,238,247,118,254, +161,0,43,1,142,5,66,12,42,16,62,255,124,236,236,247,166,2,173,248,244,243,236,239,243,235,51,255,94,19,94,14, +52,7,69,11,156,12,3,9,222,7,5,8,2,5,210,1,10,3,44,6,199,7,63,7,193,6,101,10,137,13,71,8, +96,0,118,253,129,251,211,246,28,244,55,248,194,252,164,247,186,240,44,244,0,248,96,242,246,238,189,244,212,247,89,243, +72,244,200,253,72,1,148,252,187,249,130,248,26,248,76,252,73,0,51,254,41,251,27,255,5,6,123,5,141,255,210,251, +68,252,238,1,10,6,94,3,218,3,254,7,72,8,127,10,186,13,158,9,218,2,27,254,191,251,1,254,31,254,150,247, +169,246,3,255,146,2,189,255,217,253,135,249,209,247,175,254,232,0,171,254,169,2,147,4,89,3,43,5,1,6,237,10, +192,17,190,13,180,9,174,13,204,12,38,7,149,6,28,11,211,13,219,10,95,8,242,9,26,12,36,14,219,13,111,11, +74,10,31,7,9,5,255,11,151,18,75,13,142,6,35,11,38,17,73,14,116,11,179,11,87,11,213,13,157,14,155,11, +116,9,8,0,182,244,146,248,200,1,125,5,242,8,233,10,201,9,216,5,108,1,213,4,15,10,17,7,139,2,238,255, +206,254,59,4,168,10,30,8,209,0,37,254,171,254,145,251,11,248,96,249,185,251,143,253,150,254,237,250,215,247,89,250, +61,250,205,244,76,241,242,241,22,246,93,251,252,251,47,250,165,252,36,1,52,5,53,11,1,16,209,13,131,6,107,0, +94,252,38,248,208,247,150,252,178,254,68,253,62,253,205,252,23,251,237,250,158,250,59,248,49,247,50,249,71,249,228,246, +114,248,227,251,161,251,99,251,200,251,106,248,155,247,96,0,237,6,27,255,227,245,48,248,244,250,250,247,7,248,142,251, +206,253,117,255,115,2,25,6,34,6,152,1,212,252,114,250,181,250,177,250,163,248,99,248,144,249,169,248,102,247,247,248, +212,251,76,249,193,245,173,252,9,3,191,253,110,248,151,246,100,247,167,255,11,5,167,1,80,0,141,2,230,2,150,1, +90,1,80,1,134,253,53,250,236,251,120,254,43,0,231,254,50,252,194,255,228,2,71,0,94,255,252,252,8,250,125,254, +29,2,133,1,161,2,120,1,12,255,144,0,119,1,184,254,151,251,74,251,78,253,200,254,196,255,123,0,112,1,70,3, +61,1,235,251,15,251,113,253,208,254,24,0,139,0,50,0,84,255,200,251,127,250,29,0,207,2,114,253,67,251,82,255, +90,2,58,4,242,3,182,255,173,253,96,254,29,254,231,254,242,254,247,252,213,252,112,253,24,254,219,254,157,252,205,251, +207,253,184,250,69,247,68,250,176,252,114,254,129,2,57,2,46,255,216,253,78,252,179,255,246,3,100,252,87,246,197,254, +20,5,147,2,193,2,182,5,58,5,205,1,217,255,58,255,245,251,37,250,104,251,151,248,5,247,155,252,9,254,149,248, +83,246,214,247,227,249,239,252,52,254,68,253,252,253,152,253,240,250,37,253,20,1,28,0,91,0,143,1,234,254,34,254, +87,255,11,0,187,2,99,2,233,254,193,255,253,3,17,9,128,9,75,1,223,252,83,1,230,3,49,3,254,2,186,2, +181,2,149,3,190,4,211,1,112,252,97,254,211,0,248,248,230,242,55,245,126,247,239,251,30,2,140,1,26,1,127,6, +224,6,173,1,20,255,18,253,136,253,97,3,141,4,190,254,67,251,190,250,61,250,7,251,207,252,167,253,220,253,136,254, +80,252,235,246,133,245,8,247,130,247,145,250,96,254,12,2,71,7,168,6,10,3,101,5,164,6,188,2,149,254,16,254, +73,1,116,252,163,246,94,8,169,26,10,16,146,5,78,12,131,14,28,11,122,7,201,252,244,244,210,250,236,2,172,2, +139,0,117,5,121,11,150,7,144,255,22,254,60,0,59,1,150,0,96,254,166,252,121,249,102,246,120,252,212,2,37,252, +32,247,143,254,185,4,244,3,237,0,188,252,63,252,14,2,56,6,128,3,185,0,144,5,42,11,87,6,3,255,40,3, +76,9,17,3,45,252,197,1,224,7,30,4,57,255,49,0,88,3,96,5,63,6,253,3,73,0,132,2,203,6,244,3, +153,255,221,254,221,254,250,0,22,3,130,2,52,2,115,255,187,251,187,253,175,0,124,2,242,5,103,5,142,2,39,3, +252,1,164,0,194,3,29,3,71,255,124,1,62,3,166,255,10,255,135,0,246,255,66,0,122,255,255,254,154,1,215,255, +171,254,94,7,132,12,67,8,199,4,18,0,187,251,77,1,211,8,210,7,145,4,154,5,212,6,160,3,163,254,212,251, +37,251,20,252,165,254,27,1,176,0,72,253,217,250,255,251,245,254,175,0,110,1,16,5,181,8,244,4,139,254,68,253, +84,255,58,3,22,5,62,255,112,250,106,254,109,1,68,0,34,1,33,254,118,246,75,247,162,251,19,247,50,245,96,253, +166,2,116,1,161,255,8,255,222,0,96,1,192,254,145,0,83,4,232,0,4,254,152,3,102,8,80,7,8,5,0,2, +83,0,208,2,15,4,129,2,211,1,201,0,150,255,161,255,79,0,161,3,185,7,129,8,239,7,252,6,46,5,19,3, +207,255,130,254,139,255,238,252,40,251,104,0,230,3,162,0,227,253,141,253,1,252,50,250,103,249,37,248,23,248,242,251, +121,255,220,253,93,252,180,0,74,6,92,8,176,6,22,1,90,253,41,0,5,1,79,251,118,246,148,246,148,249,13,251, +94,250,4,254,53,5,60,8,172,7,92,7,39,8,172,9,171,9,212,6,14,0,169,246,78,242,162,245,236,250,157,255, +248,4,46,11,111,15,177,13,210,6,72,255,78,251,94,254,2,4,34,2,251,252,41,1,203,6,113,1,172,252,207,0, +204,3,122,3,152,4,38,7,131,7,117,0,157,250,152,1,3,9,70,5,174,0,72,3,122,5,235,253,62,244,37,245, +44,250,226,251,61,254,66,0,45,2,164,7,247,10,105,6,158,255,202,253,93,253,1,251,188,251,138,252,233,250,72,254, +43,2,84,2,52,5,255,5,58,2,77,255,82,252,239,253,49,1,197,249,90,243,197,249,187,255,39,254,33,253,184,1, +57,4,110,253,54,249,168,253,75,0,139,2,212,4,165,254,198,248,222,250,14,252,208,250,162,249,143,247,205,246,223,244, +233,242,79,249,9,0,120,253,135,251,101,253,92,254,36,2,137,5,251,3,95,2,104,255,53,251,214,251,104,252,6,249, +241,247,120,250,72,252,21,251,144,250,179,254,232,0,33,253,148,250,56,251,97,252,91,255,24,2,154,1,221,0,138,1, +146,1,108,1,67,1,42,255,251,252,95,252,58,251,0,250,254,249,170,250,69,251,130,249,21,247,100,248,138,250,231,250, +205,251,75,252,14,252,199,253,131,254,140,249,235,244,76,248,63,252,146,250,125,251,133,255,242,255,94,255,79,255,128,254, +250,253,176,251,76,250,106,254,112,2,134,3,13,5,232,4,252,2,224,2,58,1,27,252,105,250,1,254,1,0,95,254, +4,254,144,0,49,1,55,254,16,253,251,253,128,252,175,250,24,251,69,254,205,2,171,1,106,253,226,253,86,253,5,250, +161,249,227,249,191,250,48,253,184,254,235,0,225,2,215,4,225,7,1,5,6,255,149,254,120,0,96,3,137,5,122,2, +151,255,175,254,249,253,107,0,217,1,156,0,168,1,153,2,12,2,221,1,12,2,50,4,109,5,182,3,53,3,12,2, +107,254,241,252,196,253,40,254,149,252,34,249,161,248,5,252,137,253,62,253,149,254,12,255,163,253,129,253,140,253,138,252, +101,254,199,4,24,11,50,12,167,9,231,6,228,2,221,0,47,0,175,246,234,238,111,249,196,5,192,6,222,7,11,9, +55,7,250,10,2,14,222,4,100,252,17,1,170,5,118,1,29,254,168,252,127,250,178,252,17,255,122,253,63,255,150,5, +145,9,20,7,56,3,219,4,86,4,114,252,104,248,218,251,244,254,209,253,70,252,183,255,187,2,183,0,142,254,233,250, +251,249,55,3,72,9,1,6,6,4,12,2,230,255,201,2,20,5,146,3,9,1,154,255,221,0,30,1,200,0,187,3, +143,4,65,2,183,1,252,0,60,255,203,253,146,253,56,0,147,2,99,4,231,5,168,0,171,252,48,6,18,18,134,21, +72,20,52,16,5,9,227,254,148,247,244,250,67,1,165,1,100,0,57,255,162,253,10,253,125,253,5,0,21,2,112,3, +168,6,131,4,38,254,21,254,107,255,94,254,19,255,226,254,169,254,239,254,149,253,40,0,19,4,115,3,37,3,55,3, +141,4,235,10,61,14,248,11,135,9,3,5,23,0,22,254,234,253,30,1,122,3,48,0,213,253,82,254,159,254,62,2, +115,5,25,1,31,253,201,255,132,2,65,4,145,6,232,5,138,4,242,3,101,1,101,1,132,3,114,0,101,253,53,1, +118,5,7,4,218,0,13,1,238,1,210,0,77,0,62,255,87,253,220,253,67,254,184,253,29,255,60,255,123,252,222,250, +144,253,150,4,49,9,59,6,19,2,3,2,211,2,170,2,189,1,81,254,38,251,153,253,17,2,2,3,68,1,136,253, +190,251,201,254,148,254,204,250,9,252,143,254,1,255,41,2,169,4,174,1,8,254,165,254,125,255,170,251,136,249,15,254, +42,2,80,3,247,4,225,5,242,4,113,2,236,255,136,0,35,2,168,1,178,255,148,252,220,250,202,251,202,251,241,250, +1,252,23,255,38,1,67,254,213,251,214,255,231,1,127,255,51,0,229,0,109,0,42,4,98,6,176,3,72,1,16,255, +28,254,242,255,141,0,6,0,128,255,42,254,23,254,187,254,59,0,251,3,243,3,0,255,171,252,10,253,170,252,135,252, +40,253,138,254,46,0,52,0,42,255,104,255,96,0,101,0,86,0,104,0,177,255,253,254,100,254,240,254,39,1,60,0, +147,253,35,0,12,3,196,0,69,255,82,255,244,251,87,249,135,251,175,252,32,252,49,255,102,1,242,254,66,253,29,253, +111,253,116,254,177,253,5,254,253,255,114,254,40,253,132,254,227,254,214,0,112,3,132,1,154,254,215,255,18,2,26,0, +134,253,45,254,165,253,19,253,122,254,224,252,246,250,55,251,18,250,28,250,16,252,222,253,169,255,239,254,142,252,120,250, +63,250,69,254,17,255,151,251,15,253,184,255,222,0,75,1,246,253,93,0,119,5,225,253,181,246,21,250,45,252,219,252, +216,253,2,251,117,248,107,250,80,255,190,1,234,255,164,253,213,251,180,253,128,1,79,253,197,247,238,249,121,252,246,253, +109,255,220,252,124,251,44,255,114,1,182,254,231,250,53,249,25,247,255,244,7,247,127,251,195,254,153,254,116,253,17,2, +208,6,202,3,227,0,31,1,239,254,32,253,160,253,119,253,34,253,60,253,162,253,127,255,47,2,21,4,163,4,0,3, +131,255,1,253,98,252,212,251,164,251,212,253,47,1,23,1,165,253,238,252,80,255,36,1,185,2,166,2,23,1,7,2, +223,1,115,252,208,246,226,244,122,245,179,247,184,249,193,248,37,248,119,252,185,0,186,2,237,5,5,6,69,5,237,10, +130,15,29,15,18,13,90,6,153,255,162,254,139,254,199,253,143,253,209,252,111,250,117,246,157,244,250,243,149,242,255,244, +41,250,161,255,49,3,81,255,12,253,86,2,116,2,209,253,117,251,119,248,151,248,161,253,44,1,77,1,3,0,83,2, +17,7,208,5,241,1,122,2,187,2,196,253,159,247,88,247,241,250,41,250,40,248,75,253,230,2,76,255,219,252,194,5, +102,13,183,11,53,7,98,0,197,249,231,248,31,252,34,3,200,9,243,9,90,10,107,15,143,16,233,8,131,3,227,9, +24,15,225,10,32,8,27,7,59,5,30,6,146,5,221,4,68,4,162,252,4,247,41,251,177,255,60,0,230,255,46,2, +123,5,37,4,114,0,197,253,48,253,98,0,111,3,20,6,219,8,164,5,209,0,146,2,165,7,58,10,49,8,56,5, +28,5,108,7,204,8,235,1,71,249,220,250,252,254,58,3,230,7,168,2,57,254,233,1,227,0,63,1,174,4,100,0, +129,252,198,251,191,249,138,251,223,254,225,0,57,2,216,0,96,255,78,253,45,251,74,254,89,2,80,4,182,5,71,5, +47,5,30,3,150,254,46,255,170,0,160,254,216,254,180,255,136,255,149,1,76,4,217,4,195,2,195,1,164,3,81,3, +12,1,146,0,88,0,196,254,245,252,15,254,196,0,19,1,208,2,234,5,206,5,22,7,89,9,106,7,74,6,131,7, +119,5,146,0,89,253,160,253,133,255,182,1,205,3,17,3,208,254,152,249,9,249,46,1,237,8,165,8,202,6,153,5, +144,4,106,6,62,5,207,254,111,251,17,252,170,252,143,252,10,252,130,252,229,253,131,0,239,3,87,1,40,251,151,253, +128,3,151,0,77,250,79,249,211,251,64,254,103,255,232,254,122,253,74,253,230,253,26,252,221,249,199,249,231,248,46,248, +203,250,65,254,119,255,218,254,228,255,212,1,103,255,167,253,172,0,157,255,135,252,245,255,203,2,213,255,253,252,214,252, +25,255,46,4,139,8,224,6,57,3,175,5,207,7,41,2,104,253,33,254,86,254,131,253,179,255,164,4,220,6,19,4, +249,255,212,251,196,249,36,253,25,1,18,1,144,0,78,2,111,3,144,1,44,1,172,3,102,2,60,254,13,253,94,254, +208,0,16,2,88,0,87,255,156,1,85,5,58,6,182,3,104,2,26,1,131,254,70,254,217,254,32,1,96,4,162,0, +238,253,245,4,25,7,92,254,167,247,207,249,94,0,115,3,166,3,99,5,140,4,161,0,86,253,47,250,253,250,217,255, +210,1,25,2,79,2,222,255,247,252,255,250,63,250,58,251,134,251,204,253,254,1,57,255,90,250,23,254,236,1,45,254, +33,251,82,253,133,255,196,253,27,251,22,252,244,254,34,1,166,1,3,254,253,250,138,255,123,5,91,5,140,3,248,4, +35,7,145,6,210,3,64,1,172,255,9,254,176,251,211,250,250,252,98,0,44,2,20,255,232,250,176,253,124,0,127,250, +77,246,7,251,0,255,133,253,128,252,246,252,166,250,24,250,145,254,93,254,217,250,243,253,249,255,176,251,225,248,214,247, +190,247,230,250,236,253,106,254,98,254,101,0,35,1,2,250,179,241,211,242,191,249,221,254,180,255,144,255,100,2,171,3, +160,1,174,0,220,255,33,255,102,254,137,250,101,249,62,254,191,0,45,255,6,254,24,255,254,0,20,253,216,246,251,250, +83,2,26,1,146,254,104,253,19,252,134,1,161,6,199,0,82,250,6,251,135,253,228,254,164,0,111,5,235,8,189,5, +146,2,178,2,115,3,155,6,237,7,189,4,44,2,72,255,119,252,93,251,74,249,71,251,43,1,122,1,38,255,193,254, +231,254,91,2,196,4,24,0,245,251,169,252,171,251,196,248,198,249,22,253,220,254,16,1,9,2,228,254,197,252,235,252, +11,252,88,253,59,1,142,2,15,1,229,255,208,0,245,2,105,4,143,5,186,5,8,2,218,251,138,248,212,249,19,251, +110,248,100,246,95,249,1,251,31,248,25,249,206,251,252,246,166,243,123,249,40,254,145,254,43,255,72,253,6,249,161,247, +166,250,201,253,135,252,59,250,217,250,110,253,145,1,187,3,16,3,51,5,180,7,168,7,11,9,132,9,131,8,73,10, +34,11,202,8,60,5,129,0,73,255,56,2,240,2,137,3,107,5,183,2,115,254,165,254,81,1,132,4,201,5,212,2, +7,1,121,3,239,5,55,7,132,6,229,1,118,254,69,0,157,1,158,255,109,0,233,4,31,5,171,0,193,255,151,2, +110,3,53,3,120,5,65,7,245,3,122,255,184,254,164,253,216,251,60,254,3,1,149,0,186,255,97,254,67,253,210,252, +152,251,213,253,118,1,165,254,100,253,87,4,200,7,17,3,147,254,114,253,206,252,142,250,240,248,183,251,97,0,85,2, +68,2,120,2,184,2,59,2,101,1,181,255,186,253,110,255,86,3,162,3,179,1,163,255,230,253,141,0,250,3,176,1, +167,255,64,2,119,4,3,4,107,2,53,2,242,2,211,255,29,252,87,0,214,6,166,4,77,255,127,255,21,0,211,254, +228,255,208,254,124,251,170,253,70,1,253,255,150,253,209,252,100,253,73,254,143,253,250,252,41,255,139,1,14,1,242,0, +68,1,213,251,14,248,214,254,165,4,235,3,115,1,45,250,42,245,162,250,222,255,17,0,134,0,208,1,28,4,143,5, +139,4,193,3,226,3,51,4,37,3,182,1,0,4,105,5,135,2,135,2,39,3,231,252,27,248,216,252,218,1,192,0, +242,255,135,1,94,4,142,8,234,9,214,9,68,9,246,2,61,254,42,255,22,254,31,254,200,254,234,252,193,254,86,254, +90,251,184,0,186,4,188,1,205,0,115,1,103,2,25,2,19,1,253,3,119,3,103,254,192,252,238,252,240,253,84,250, +194,245,8,0,149,10,36,10,110,6,118,241,100,224,253,248,82,18,246,8,215,253,145,1,196,5,66,3,111,0,74,4, +187,6,190,6,42,9,147,4,40,255,253,2,35,4,102,3,148,5,31,1,130,253,31,4,124,7,250,255,10,248,75,249, +251,255,195,1,249,254,80,255,169,2,249,3,133,2,186,0,83,0,168,1,19,2,239,254,57,252,240,253,218,255,245,253, +215,251,215,253,52,1,157,0,101,253,76,252,202,253,40,255,169,255,217,1,40,5,93,4,148,0,12,1,87,5,105,6, +185,3,108,2,211,2,82,1,117,253,183,250,128,252,122,0,72,2,207,2,47,1,5,252,130,250,75,254,214,254,115,252, +9,253,74,255,72,0,159,255,202,254,23,255,51,255,77,0,186,2,114,1,174,253,205,250,127,247,5,249,17,253,41,249, +20,247,218,251,10,255,160,9,175,14,60,246,200,228,109,245,197,6,103,13,170,17,159,12,245,5,122,3,179,255,46,0, +83,2,83,254,36,251,252,254,246,3,239,255,100,249,233,254,21,5,188,255,128,249,129,246,234,244,152,245,167,245,153,247, +118,252,165,255,254,255,229,251,54,249,2,253,195,252,16,250,230,252,138,251,36,249,112,1,129,8,132,5,112,1,76,255, +220,251,184,247,89,247,40,252,200,255,117,0,36,1,105,254,245,250,42,253,194,255,143,2,69,7,149,2,187,249,145,252, +138,1,131,0,95,2,219,5,162,5,166,2,223,255,78,2,254,4,181,0,155,253,162,0,179,2,105,1,248,255,88,254, +217,249,43,246,231,249,204,0,80,3,189,1,177,255,210,254,71,252,90,249,154,251,75,254,28,255,130,4,171,9,50,8, +142,4,67,2,193,1,32,0,97,253,45,1,144,7,165,6,113,2,63,255,198,252,126,252,194,252,11,254,149,255,102,252, +44,251,230,0,183,3,38,3,141,4,92,3,102,1,73,3,105,3,76,0,142,253,55,251,76,251,135,255,74,4,55,5, +65,3,41,3,200,2,208,253,109,249,155,249,151,252,148,255,53,255,147,0,202,4,240,0,23,252,220,0,228,2,169,0, +1,2,87,0,152,254,214,1,120,0,30,252,109,252,24,255,228,2,15,4,187,0,102,0,149,1,49,254,29,251,75,252, +45,255,188,0,182,0,164,2,19,5,48,3,22,0,13,0,247,0,113,254,198,249,223,251,139,2,14,1,146,252,140,255, +238,0,102,249,227,243,69,250,149,2,168,0,185,255,246,5,62,4,104,254,68,255,160,250,64,243,153,250,191,5,84,5, +225,2,155,5,77,6,81,3,186,1,162,1,137,0,193,254,25,0,48,5,255,5,159,1,193,255,200,255,3,1,48,1, +34,251,37,251,254,2,115,255,233,247,98,249,166,250,101,253,180,2,99,0,76,251,228,248,187,247,97,252,41,2,105,255, +213,251,177,0,220,3,123,253,140,248,194,250,160,255,223,3,75,2,10,1,88,6,138,5,84,1,205,4,183,6,44,6, +166,5,40,0,81,254,69,255,154,250,212,249,52,254,152,1,106,4,56,2,31,1,102,8,128,11,213,6,209,2,198,255, +80,254,52,254,8,253,133,254,95,1,74,255,179,252,246,253,24,254,47,253,64,252,214,248,2,251,223,4,68,8,58,3, +174,254,74,253,246,253,235,252,234,251,208,253,139,254,19,2,57,6,122,255,242,249,211,255,247,2,147,1,24,3,47,4, +171,3,114,3,83,2,54,0,10,1,169,6,143,9,96,5,56,1,234,1,39,2,92,251,176,245,11,252,6,3,87,0, +232,253,208,255,250,0,171,1,142,1,198,252,119,247,238,251,166,3,32,1,18,253,213,255,194,1,169,2,81,5,127,6, +140,5,160,3,84,2,137,0,116,253,52,252,97,250,102,248,136,251,204,255,253,2,67,5,59,3,69,2,134,4,22,4, +168,1,205,253,154,250,75,251,203,251,205,253,3,1,164,252,210,247,133,252,86,2,123,2,7,0,129,253,43,252,246,253, +171,0,235,254,91,253,134,2,149,8,185,11,75,10,171,255,240,244,230,244,136,251,170,3,7,8,59,5,222,1,65,0, +114,253,214,253,133,2,115,4,68,3,28,4,31,5,91,3,58,2,217,2,20,4,18,6,76,4,138,254,89,252,138,251, +207,247,33,248,228,253,194,1,245,1,155,0,163,255,127,255,64,254,38,253,222,254,47,2,177,3,125,0,184,251,68,251, +160,253,208,255,141,0,119,253,92,251,195,255,251,3,242,0,164,250,126,248,151,251,141,0,138,4,243,3,21,0,128,254, +42,255,90,3,78,8,2,4,81,255,201,4,80,8,133,6,167,4,250,255,202,253,129,0,234,0,44,0,42,1,81,2, +171,1,206,255,82,1,15,3,208,1,170,2,142,1,52,252,183,250,203,253,75,3,14,7,204,4,160,3,174,3,142,255, +150,252,86,250,251,247,101,252,2,2,1,1,214,254,182,255,48,0,195,253,194,249,226,244,89,243,246,249,250,254,190,252, +0,254,250,1,194,1,220,1,186,4,150,7,1,6,61,0,248,253,43,254,48,253,19,252,173,248,162,248,154,252,83,251, +59,252,21,255,225,250,120,253,155,4,189,2,184,2,206,255,153,248,193,4,59,20,86,13,24,0,156,247,184,245,225,251, +57,254,210,254,170,1,19,253,125,246,86,243,61,243,206,250,50,255,75,254,151,2,219,255,176,248,46,0,104,8,239,5, +137,5,91,8,96,9,128,9,48,9,124,9,122,7,101,255,178,249,97,0,64,7,112,0,17,249,69,247,159,243,66,248, +92,0,124,250,119,244,23,246,47,247,232,255,75,11,59,11,173,8,82,10,8,11,215,10,112,12,44,15,246,13,11,8, +168,3,158,2,97,1,111,254,108,253,242,253,26,252,138,254,236,4,242,4,134,2,36,254,186,247,150,253,204,6,65,3, +250,254,221,253,165,251,211,255,69,6,42,5,7,255,185,250,249,250,147,251,155,251,146,253,42,255,175,1,79,4,226,0, +157,249,241,244,95,250,168,9,170,17,1,14,228,10,116,9,145,6,28,0,174,248,249,253,236,7,161,1,80,249,91,253, +43,255,102,254,43,0,17,250,168,244,179,251,35,254,41,243,51,234,70,238,19,247,106,244,147,239,199,251,207,9,30,10, +117,5,101,253,60,247,24,253,124,4,70,5,8,5,137,5,28,7,48,8,64,6,81,3,107,255,116,249,233,244,123,247, +186,254,250,255,17,254,214,2,8,8,67,7,163,2,76,252,53,251,254,254,190,255,130,2,216,7,23,4,0,253,105,255, +171,4,121,5,173,6,245,7,245,5,196,3,71,1,96,253,191,253,167,2,84,2,104,250,122,247,239,255,120,7,202,5, +250,0,16,255,201,255,159,252,180,246,240,247,89,249,80,245,221,247,230,251,145,249,68,253,32,5,54,5,156,0,189,253, +69,254,42,253,7,252,41,5,48,11,108,0,97,247,192,248,30,250,219,249,166,250,2,1,187,8,172,5,79,255,77,253, +131,249,21,250,77,0,161,1,252,1,185,2,14,254,216,251,60,254,144,252,187,251,127,2,66,7,33,2,45,250,21,246, +79,245,76,248,210,253,73,2,225,5,138,8,15,7,124,0,165,250,178,250,62,252,147,253,98,0,187,254,132,250,100,250, +172,251,240,0,118,8,224,7,127,4,16,5,211,7,15,12,32,9,171,254,240,249,195,251,48,255,241,2,81,7,163,12, +65,12,190,8,228,9,64,8,151,2,128,254,96,251,175,249,191,246,228,248,85,0,52,250,96,245,15,1,229,7,197,17, +247,26,126,3,136,236,182,245,125,1,197,6,246,10,233,9,239,7,79,1,251,246,156,239,119,233,80,235,161,241,228,242, +109,250,188,7,1,14,80,14,10,11,38,7,43,4,31,254,90,249,215,251,45,255,163,248,31,242,74,255,130,15,201,12, +137,7,215,8,101,7,126,5,154,4,236,3,98,4,177,2,116,1,188,3,173,6,52,10,57,13,214,10,86,1,239,248, +74,250,132,255,230,0,252,252,35,246,215,246,162,252,56,251,87,250,221,254,93,2,164,8,206,12,69,6,232,254,161,251, +150,249,73,253,201,1,103,251,26,243,113,249,141,2,39,251,43,243,191,251,81,2,37,252,77,248,29,250,46,251,197,253, +219,1,185,3,125,2,223,254,119,253,118,0,34,4,72,7,15,9,70,9,155,8,104,4,239,2,170,7,123,6,98,2, +151,1,247,250,22,249,19,3,170,5,231,2,40,5,48,4,227,0,184,255,226,254,206,253,112,251,254,254,195,6,46,4, +52,254,80,253,216,251,48,254,13,2,48,0,52,255,106,254,175,252,79,0,175,3,119,4,231,6,169,6,24,5,178,6, +2,7,165,3,50,255,173,252,247,251,202,250,86,250,179,248,55,245,203,246,173,248,116,242,80,239,7,248,190,1,254,2, +209,0,201,1,32,2,68,0,247,0,194,1,28,2,93,5,234,5,176,3,98,3,64,0,77,252,58,253,222,252,200,249, +101,250,104,253,180,253,12,253,14,255,238,255,245,253,201,252,103,249,19,245,15,248,4,255,111,3,191,5,209,6,15,6, +28,2,45,255,34,255,101,251,69,249,137,254,215,2,129,4,205,3,163,0,47,1,112,2,163,3,226,6,34,5,23,5, +30,10,78,8,167,4,87,2,16,254,184,255,67,3,0,6,19,8,212,251,34,241,215,251,189,4,67,3,255,2,72,255, +49,253,163,3,42,7,170,3,219,0,153,0,91,253,125,247,57,246,191,247,76,247,65,248,38,251,242,250,231,249,120,0, +244,5,190,251,144,241,146,245,157,249,38,252,189,2,203,3,144,0,232,255,183,254,3,255,35,3,93,5,193,5,28,10, +94,13,25,7,130,252,192,243,176,240,186,249,178,3,118,1,159,252,152,251,189,250,252,248,117,247,127,252,231,2,228,254, +13,250,113,250,147,248,7,249,141,254,246,2,245,4,94,4,114,2,5,1,116,0,11,2,128,2,122,0,118,255,213,254, +29,1,149,6,39,6,5,1,237,254,97,254,154,254,138,0,148,1,5,2,130,4,15,9,165,10,168,4,234,253,67,253, +150,253,139,253,168,254,238,251,194,249,53,253,246,252,169,250,92,255,80,3,124,2,149,3,143,5,236,5,116,6,71,7, +244,5,61,1,253,254,30,2,127,4,13,5,74,4,236,254,249,248,70,248,104,252,202,2,188,5,207,1,147,253,165,254, +167,0,101,0,35,255,230,251,237,251,32,4,188,8,8,4,16,2,255,7,25,15,250,15,151,12,82,11,120,7,235,2, +226,5,74,4,146,251,41,252,87,1,196,1,20,3,188,4,163,4,133,4,73,1,11,251,135,247,138,247,138,248,126,253, +27,1,201,244,158,230,162,236,109,243,167,236,213,237,4,251,181,1,118,253,21,249,129,252,41,1,236,255,129,253,13,253, +97,253,22,252,48,247,244,244,193,247,35,249,41,251,195,255,107,255,44,250,244,247,42,250,73,253,31,2,188,7,156,5, +198,0,6,7,93,12,140,5,150,0,207,253,45,251,24,5,81,11,37,254,88,243,194,240,127,238,45,245,231,255,111,4, +14,5,89,2,110,1,103,2,157,1,223,8,98,14,130,2,224,249,23,253,6,254,204,1,148,5,205,254,240,250,25,253, +125,0,181,19,187,33,62,5,120,233,163,252,85,16,206,7,59,2,220,255,243,249,223,255,68,6,178,0,158,253,157,3, +196,8,5,3,130,252,215,3,109,9,117,4,23,1,95,249,85,242,8,253,98,8,157,10,157,12,172,0,168,241,69,255, +193,14,88,2,234,248,164,1,139,5,117,2,52,3,210,4,87,3,32,1,59,255,201,250,42,249,155,1,200,8,116,9, +147,11,236,4,143,248,141,253,235,2,47,246,172,242,229,253,254,1,177,3,48,9,255,11,176,11,100,4,242,250,130,251, +54,255,242,3,62,13,175,12,111,5,55,7,209,7,107,1,201,250,161,242,124,240,232,249,223,0,180,252,113,248,205,0, +30,9,146,254,98,240,151,240,94,248,25,2,134,8,125,5,145,254,249,248,121,244,246,239,190,238,148,245,140,249,228,242, +32,239,123,246,244,0,162,1,209,254,160,14,125,31,191,19,60,3,41,5,90,9,118,4,176,251,53,248,99,247,169,236, +141,224,196,224,98,229,184,230,163,232,162,240,81,250,236,249,129,245,133,250,183,1,150,1,131,255,156,3,91,14,25,21, +164,18,227,19,178,25,218,19,10,10,197,11,126,12,234,5,223,3,75,5,191,3,79,253,178,246,54,250,9,254,103,247, +192,243,38,246,26,248,196,250,77,253,15,6,231,15,247,8,95,0,226,4,59,5,139,255,192,253,105,252,62,252,11,0, +225,1,190,252,215,248,184,1,79,14,100,16,5,13,208,12,51,15,63,15,29,11,34,6,216,1,150,1,113,5,94,4, +245,0,118,2,230,3,47,4,219,2,29,253,19,250,6,252,146,0,186,8,73,12,85,10,142,13,168,14,59,6,81,2, +190,6,216,7,56,6,44,6,6,4,129,3,188,5,155,0,166,251,112,4,140,11,116,2,26,249,96,254,233,6,232,4, +135,1,81,5,122,5,119,254,234,246,103,242,62,243,63,241,84,238,44,251,28,6,231,253,136,250,62,254,60,255,221,11, +21,23,99,14,156,4,184,3,73,5,38,4,148,252,59,249,128,251,112,248,250,245,14,246,253,247,205,2,122,10,126,7, +6,4,65,0,142,252,67,247,49,239,216,242,5,252,159,250,238,248,88,248,136,244,206,248,178,1,240,4,180,4,5,4, +76,4,250,1,176,254,112,1,174,1,66,254,227,255,61,251,134,242,121,249,176,4,89,4,26,0,243,248,6,240,153,239, +95,243,140,244,217,246,108,248,17,249,136,253,175,0,61,253,232,246,75,244,124,246,232,244,175,244,103,2,85,12,239,4, +57,254,202,252,106,250,226,252,109,2,207,4,45,3,142,252,125,245,174,244,215,247,248,246,179,244,7,251,176,2,255,2, +68,4,47,7,71,8,142,9,109,7,184,5,38,10,14,15,223,17,236,16,154,13,253,12,56,10,36,8,231,10,228,6, +46,0,181,1,246,4,12,7,95,5,236,252,92,246,83,243,232,239,92,237,217,237,71,246,184,254,172,249,13,242,200,242, +225,243,208,243,217,249,44,6,229,13,147,9,21,3,139,0,186,251,188,247,189,247,128,245,181,245,125,253,173,1,251,254, +6,252,93,247,182,245,152,252,242,1,203,3,121,8,226,11,132,10,243,2,204,250,1,254,131,2,166,255,86,3,181,9, +177,9,210,12,94,14,216,5,154,253,4,252,128,255,213,3,246,0,153,249,130,248,203,252,168,254,7,254,251,250,118,245, +178,249,89,6,242,6,240,1,40,6,169,7,225,4,248,6,22,7,74,4,228,4,7,8,162,9,130,2,228,247,222,248, +137,0,244,3,85,5,159,5,235,2,218,251,189,243,38,246,87,251,166,238,44,225,51,234,242,244,127,246,175,250,167,243, +32,231,196,244,214,8,240,6,193,255,234,254,237,2,113,7,222,6,231,13,51,21,98,8,249,254,11,6,201,9,129,10, +2,12,144,14,248,15,137,1,177,246,92,5,93,14,227,5,90,1,200,255,28,253,88,250,180,244,137,240,254,238,70,239, +86,240,26,236,35,234,59,243,188,249,124,244,181,240,109,245,23,251,193,4,179,14,96,7,224,0,220,12,150,21,46,31, +240,41,165,23,197,2,0,6,160,4,242,5,5,15,51,2,56,251,185,18,20,31,208,22,250,18,23,13,231,2,253,4, +229,9,253,1,129,252,82,2,109,4,129,1,243,0,26,253,98,244,170,240,55,241,59,232,213,223,124,237,28,252,153,247, +148,243,216,241,84,236,114,243,78,0,5,1,59,2,200,14,48,21,103,8,125,250,166,248,29,248,221,249,34,0,9,2, +1,3,157,0,184,249,206,252,87,0,57,248,248,240,125,236,200,233,83,235,191,238,26,253,137,12,230,4,95,250,142,5, +132,15,145,3,17,248,35,4,82,18,137,13,74,8,29,9,45,6,41,9,147,18,23,23,89,23,42,19,216,15,179,18, +254,14,210,5,29,2,195,250,67,245,251,255,3,8,185,0,92,245,97,231,172,224,160,235,38,243,95,237,171,235,211,242, +30,248,26,242,118,235,8,246,44,4,234,8,104,15,83,21,229,22,111,22,16,14,179,9,11,13,133,2,83,248,168,5, +34,19,114,15,97,9,141,8,103,6,254,254,212,247,201,246,204,249,181,254,63,5,26,10,204,10,26,10,65,11,201,12, +155,13,1,12,163,4,104,253,226,251,205,253,170,5,94,14,46,15,78,17,192,16,239,253,11,238,28,246,17,2,236,5, +252,6,165,252,105,239,180,247,135,3,193,248,111,239,134,250,40,7,219,13,148,14,117,0,63,244,37,254,117,6,114,248, +141,235,55,238,12,241,227,240,227,244,26,251,89,255,136,252,139,249,163,3,191,11,121,3,207,253,135,2,202,4,56,6, +82,10,198,9,211,5,242,4,0,6,138,9,67,13,48,7,34,255,6,1,67,2,35,3,171,8,125,3,59,250,39,252, +237,252,104,250,239,248,41,244,119,241,131,237,176,235,170,250,160,5,171,0,228,255,21,252,4,243,179,249,92,6,56,9, +253,7,78,5,103,2,23,1,255,255,156,0,91,4,77,9,106,11,164,11,254,9,96,255,202,245,141,250,77,1,72,4, +124,7,183,2,70,248,242,240,55,239,54,248,253,0,154,251,221,245,88,249,152,252,63,254,229,254,67,248,152,240,81,244, +18,250,73,246,117,246,106,255,112,3,113,5,157,9,2,6,248,254,248,254,210,254,76,246,203,238,28,245,171,254,129,249, +200,240,128,243,165,247,235,248,252,252,63,253,134,248,133,246,69,245,219,244,186,247,222,247,143,248,222,0,98,8,162,11, +248,16,34,21,49,21,130,19,120,12,41,2,83,253,111,250,28,247,228,250,227,251,176,238,194,229,67,236,212,243,34,247, +173,250,146,0,46,5,232,255,152,250,203,0,21,5,73,5,68,9,155,6,59,254,200,253,112,0,157,250,147,242,12,248, +159,254,134,241,35,234,153,251,114,7,70,1,227,249,211,244,77,240,161,239,21,244,243,246,246,245,82,253,127,8,73,7, +43,1,80,255,77,1,48,8,179,12,86,13,54,17,12,22,14,24,51,19,233,9,55,9,141,12,73,9,57,6,219,4, +20,2,53,2,32,2,226,252,122,248,146,249,102,250,55,247,9,247,217,252,131,255,143,250,182,247,176,253,107,4,33,8, +99,10,91,3,31,249,160,251,115,3,69,7,218,7,233,4,251,7,202,16,30,17,8,12,163,7,46,3,241,1,195,0, +201,253,31,254,152,0,203,0,153,255,165,3,134,9,217,7,194,5,51,4,109,1,199,10,82,18,170,9,251,4,80,2, +78,254,27,9,185,17,129,12,75,6,58,251,26,244,16,252,71,1,73,255,60,0,103,1,240,255,90,1,37,6,86,1, +36,248,33,0,193,10,166,5,220,254,131,251,168,252,114,7,69,14,194,9,134,5,100,8,167,8,75,252,247,242,42,248, +170,254,73,3,125,5,254,3,122,6,244,2,56,251,67,4,30,14,34,10,11,7,255,0,42,248,53,251,63,251,170,234, +247,225,210,239,203,252,197,251,85,250,238,250,187,250,166,253,23,255,94,254,127,252,50,245,255,240,4,244,242,247,211,253, +23,2,140,3,146,6,186,7,255,9,90,12,51,8,167,7,67,11,70,11,164,12,37,11,139,7,36,11,27,13,181,11, +211,10,113,1,81,249,105,1,176,11,255,8,10,1,85,255,218,255,250,252,255,250,40,248,43,241,7,235,132,235,251,245, +236,255,103,254,53,251,69,250,98,249,195,253,244,255,182,253,219,253,55,247,34,240,249,248,13,2,16,255,92,252,252,254, +95,2,16,2,44,255,140,1,233,6,58,6,10,2,223,0,5,2,209,255,98,247,219,241,102,245,121,245,206,241,219,250, +49,6,186,1,242,247,210,243,110,246,154,254,239,2,151,2,198,2,122,1,219,2,167,7,200,7,146,2,255,252,120,254, +251,2,0,0,54,0,32,5,60,3,78,7,203,12,155,254,89,241,144,246,211,250,144,247,241,248,17,255,3,255,4,251, +161,253,23,0,216,251,37,247,118,244,255,245,188,249,106,252,76,0,20,252,206,244,155,254,102,10,173,11,46,15,129,12, +240,3,186,6,81,9,129,3,120,255,231,249,72,247,28,4,213,15,222,8,48,2,199,11,121,19,25,11,193,2,30,13, +56,24,176,5,76,239,83,248,33,3,46,253,194,250,188,246,217,239,82,240,168,241,216,249,136,3,225,252,10,247,41,249, +221,248,227,0,15,12,246,12,118,8,133,255,240,250,65,255,190,254,165,255,83,6,179,2,133,252,20,2,194,6,24,1, +193,252,132,0,45,0,111,248,2,246,114,248,240,250,94,0,200,3,31,3,127,1,168,251,207,247,59,253,162,1,155,1, +11,5,157,5,31,252,249,242,221,241,74,245,147,250,111,255,134,3,88,8,10,11,110,11,185,11,149,12,34,14,2,9, +59,0,34,3,152,6,127,253,206,248,169,253,148,1,85,4,82,4,123,0,153,253,180,254,106,1,184,253,108,249,249,254, +103,2,58,254,40,252,35,252,31,254,227,1,164,4,68,7,157,4,234,0,0,2,151,251,234,246,202,1,227,7,174,4, +46,3,79,254,211,251,177,253,44,250,27,250,245,255,7,2,151,3,6,3,156,252,134,249,60,251,219,249,134,246,62,248, +36,252,185,251,251,252,7,0,216,251,98,249,69,254,154,254,15,253,64,0,214,1,96,2,186,3,254,1,56,0,182,1, +80,4,216,5,98,3,109,253,122,250,16,253,18,255,166,253,23,253,37,252,200,250,91,255,241,0,215,246,63,241,138,247, +224,253,207,1,175,3,82,0,84,251,97,249,137,251,207,253,65,253,229,253,53,252,47,247,168,250,148,0,248,254,161,2, +226,8,171,1,248,248,128,253,247,4,26,5,38,4,171,8,153,9,136,255,208,246,86,249,179,255,33,3,38,4,164,1, +207,252,222,253,83,3,53,1,102,251,115,252,203,254,43,253,84,251,184,252,190,2,133,7,204,6,239,5,205,3,33,254, +19,253,214,1,163,4,240,4,64,7,229,10,243,11,204,10,245,9,242,8,51,3,217,245,189,238,49,249,18,1,98,251, +165,250,185,254,243,253,163,0,113,4,131,3,116,5,190,5,220,255,203,254,46,1,178,255,244,253,14,251,60,247,241,248, +203,253,12,3,232,6,181,2,203,252,121,252,117,250,1,249,90,253,143,1,186,3,84,0,50,249,186,251,179,1,83,0, +76,253,247,247,236,246,247,2,124,11,106,10,122,7,221,253,27,246,11,250,55,254,16,255,165,255,152,255,244,1,253,2, +159,3,89,10,69,13,163,9,98,11,87,13,97,8,9,6,208,6,191,0,67,248,185,246,115,246,109,243,233,245,217,252, +9,1,82,6,142,10,222,2,132,248,128,252,248,3,107,255,183,250,181,255,29,4,206,2,177,255,31,254,96,1,230,6, +111,7,124,2,184,0,103,5,207,6,136,3,63,1,38,251,115,249,40,6,218,11,170,3,6,1,71,0,110,252,156,254, +29,255,123,250,221,250,136,252,35,252,155,254,93,0,229,255,133,2,76,7,107,8,105,2,226,251,204,255,203,5,159,0, +222,252,131,3,44,6,22,3,213,0,95,250,88,248,62,4,116,12,119,8,90,4,54,1,139,255,225,6,34,15,120,13, +92,9,38,10,99,11,181,10,49,12,28,17,11,19,62,14,203,10,203,11,215,7,194,255,219,254,44,6,39,11,50,3, +153,246,205,248,162,255,242,245,108,236,63,245,187,251,157,242,101,240,55,0,25,10,214,0,73,250,153,2,20,8,82,2, +4,252,85,252,205,1,131,255,208,244,137,251,21,2,2,224,64,197,153,222,96,0,7,35,145,70,227,57,20,37,240,60, +232,72,145,57,193,35,34,246,13,213,228,210,66,216,76,9,97,52,123,250,68,188,200,204,192,222,241,228,91,240,121,217, +27,196,186,215,13,235,154,248,87,1,46,232,188,209,162,224,30,242,170,253,198,9,244,5,223,254,102,255,208,1,7,20, +44,37,241,26,127,17,58,21,25,20,206,22,44,32,185,35,104,34,159,29,10,22,181,12,219,2,216,254,80,251,84,245, +8,247,45,250,116,248,207,247,66,242,228,229,102,217,195,206,51,207,15,218,196,223,228,227,247,238,21,247,114,250,172,4, +230,15,191,13,64,9,52,15,18,18,176,12,72,9,151,6,222,4,208,7,168,10,118,14,203,20,128,22,23,18,88,11, +185,5,65,2,136,253,65,251,190,254,218,252,74,244,238,243,19,250,248,247,7,241,159,241,63,246,14,247,243,246,91,249, +87,252,106,252,25,251,154,255,147,3,145,251,152,243,55,247,72,3,57,24,92,38,246,33,161,38,155,55,117,56,47,48, +156,37,19,13,138,242,237,219,68,204,188,214,83,231,241,227,245,224,27,228,213,228,246,236,187,243,136,239,50,236,52,234, +224,232,34,236,194,237,16,239,224,239,203,231,81,228,49,243,216,255,221,250,133,248,253,3,218,10,105,10,161,14,191,16, +111,17,31,28,152,37,144,36,249,34,196,35,5,35,71,29,197,16,197,4,89,254,36,249,105,241,94,232,72,227,155,226, +103,226,251,229,59,234,109,228,110,222,207,229,119,238,21,238,93,236,12,237,159,239,184,244,88,249,111,255,199,8,84,14, +60,16,130,18,80,17,78,13,203,9,54,7,138,6,48,3,193,255,58,6,212,13,185,14,142,14,217,7,80,254,89,0, +201,2,70,253,29,251,73,248,164,241,163,242,165,246,208,244,135,243,27,245,130,245,114,244,179,245,93,254,184,5,166,255, +88,249,212,254,91,4,84,6,184,8,130,5,112,255,214,255,52,7,194,17,169,21,139,14,26,8,203,6,92,5,54,5, +196,6,141,7,7,6,4,0,233,251,98,255,76,1,10,255,9,0,248,0,242,0,30,6,53,9,37,6,94,6,66,7, +87,4,115,5,223,6,53,255,14,247,4,250,29,2,97,2,141,254,95,1,87,4,228,1,156,0,127,1,104,4,141,7, +129,6,54,8,249,11,25,8,99,4,166,5,121,4,52,1,115,252,35,248,82,249,225,251,153,251,75,248,234,244,14,247, +105,248,43,245,20,245,212,244,61,244,198,251,239,3,199,5,178,5,104,4,192,4,200,7,84,6,229,255,254,251,183,253, +234,255,72,255,41,0,84,2,68,3,218,5,251,6,207,2,154,254,33,252,193,249,49,251,91,255,36,254,117,250,61,254, +212,3,113,3,238,1,99,254,197,251,158,5,97,14,8,6,191,253,208,0,51,2,51,253,236,250,15,0,5,5,171,3, +149,2,72,3,211,0,137,0,143,2,211,253,9,248,53,249,182,251,86,255,43,3,173,253,158,248,157,255,165,2,57,254, +139,1,189,5,219,3,173,5,116,7,28,3,159,0,134,0,184,254,248,255,113,3,9,2,61,255,201,0,100,3,91,6, +1,9,226,4,255,255,98,4,137,8,39,4,168,255,51,255,158,253,240,248,142,245,74,248,23,254,127,0,169,0,194,1, +40,2,217,2,28,6,254,7,195,5,28,2,32,0,58,2,36,4,106,255,181,249,106,250,96,255,133,2,97,0,11,0, +143,3,129,254,34,247,32,253,52,7,33,11,168,9,74,2,49,253,193,255,186,2,57,4,238,6,138,9,101,8,45,3, +30,255,203,251,155,248,90,252,32,4,4,8,137,7,100,5,168,7,14,11,72,8,169,8,136,14,158,16,55,16,51,11, +10,1,202,252,195,252,28,251,125,252,43,255,183,253,212,249,10,248,23,250,119,254,134,4,190,7,127,4,68,3,93,6, +194,6,76,6,85,5,175,0,88,252,82,251,222,254,166,4,128,4,190,255,75,252,194,249,39,250,229,252,247,253,180,0, +24,4,117,1,65,254,247,1,100,7,197,7,238,2,182,253,117,252,45,251,178,249,44,0,83,7,69,4,26,1,155,2, +115,0,156,252,77,250,185,249,127,253,170,254,52,251,57,255,27,6,113,1,102,250,250,253,250,1,28,254,119,254,15,6, +167,5,127,253,71,252,159,254,34,251,117,249,62,252,87,250,89,248,176,251,68,251,153,248,116,250,175,251,62,253,66,0, +232,253,50,251,6,252,140,249,223,246,139,247,83,248,14,253,15,4,194,2,249,252,175,254,214,3,28,2,23,254,2,255, +49,0,167,255,211,2,150,7,157,6,224,2,206,3,109,4,125,255,32,252,9,252,150,251,13,253,18,254,128,251,210,249, +78,250,190,247,71,240,43,238,185,244,245,243,250,238,35,246,201,1,66,14,7,25,80,17,253,6,38,13,213,14,225,8, +3,9,194,7,139,4,142,2,17,254,81,254,34,0,80,246,27,235,236,235,63,239,179,236,112,235,124,237,207,238,123,243, +140,247,73,241,83,235,242,238,235,241,164,241,117,246,56,0,151,6,223,7,172,10,255,10,5,4,94,3,171,10,47,9, +82,1,91,255,170,1,167,3,165,2,233,254,51,255,11,4,71,6,51,5,120,3,203,0,96,255,161,255,31,253,226,249, +64,251,56,254,88,254,190,251,21,247,93,243,151,245,67,252,212,255,194,254,105,254,74,0,64,1,128,255,128,254,248,1, +242,2,70,254,200,0,243,9,165,10,148,6,90,6,149,3,204,255,151,3,239,6,212,1,107,254,193,255,150,253,75,252, +129,254,56,253,217,252,7,255,111,253,107,253,147,255,49,254,66,254,22,255,137,254,206,2,225,5,109,2,198,2,246,7, +143,9,226,6,14,3,187,2,118,7,192,8,59,3,240,255,190,0,33,0,73,255,79,254,18,252,96,252,155,254,130,1, +223,2,170,251,206,244,114,248,0,250,198,246,180,248,204,251,21,252,78,251,68,251,252,254,1,3,27,6,34,8,116,1, +70,250,194,255,58,7,124,6,137,2,143,1,171,5,63,9,87,7,101,3,16,1,63,0,41,254,51,252,230,252,86,251, +226,249,139,252,114,251,212,249,68,253,126,252,171,250,94,254,110,254,107,251,115,253,211,0,88,255,148,249,48,246,192,247, +191,250,129,0,25,5,87,0,53,251,149,254,171,2,4,4,151,4,197,2,12,3,137,7,93,7,99,2,18,1,52,2, +2,3,65,5,14,6,109,3,215,255,115,252,18,251,29,251,166,248,244,245,29,247,197,250,109,255,211,1,144,253,83,247, +130,246,126,250,38,1,143,6,71,5,135,3,81,6,68,5,246,1,121,4,210,6,77,4,143,1,35,3,148,8,18,10, +112,8,27,11,131,11,151,7,51,6,253,3,133,1,76,1,122,0,248,4,124,9,85,2,73,254,123,4,182,5,195,3, +80,4,68,0,26,251,15,251,223,252,8,1,199,3,65,252,52,244,11,247,177,251,49,255,159,4,117,3,1,255,68,0, +216,1,233,5,139,13,128,12,53,8,110,13,233,20,101,21,204,16,247,13,75,15,99,14,234,9,199,7,188,6,118,1, +160,250,75,249,200,252,251,255,44,0,139,251,117,247,195,246,143,242,102,241,209,246,28,244,159,241,210,252,87,4,35,2, +28,3,205,7,16,11,125,8,120,3,93,5,34,9,33,10,131,12,222,11,197,7,225,6,194,8,40,12,76,13,240,7, +205,3,223,5,121,7,229,5,189,3,59,2,55,2,182,1,232,253,2,251,146,251,59,249,29,245,29,246,33,248,231,248, +40,251,185,250,80,252,150,7,96,14,65,6,61,253,234,254,126,7,245,12,250,9,137,5,44,4,201,0,86,254,92,2, +51,7,148,6,131,255,239,247,58,247,244,246,107,245,61,253,142,4,165,254,21,248,18,248,33,250,18,254,32,1,7,4, +17,8,152,6,145,1,205,254,197,252,235,252,124,255,12,1,119,2,135,4,250,4,118,1,43,254,219,1,230,5,157,2, +207,253,29,251,119,248,28,246,98,246,14,251,91,255,115,255,132,254,70,253,27,252,129,250,238,246,153,248,124,254,101,252, +22,247,75,248,126,251,5,253,89,254,151,255,203,254,45,251,36,250,215,252,216,252,68,251,54,251,18,249,33,247,80,251, +215,0,60,0,90,252,83,251,169,252,153,252,183,251,84,254,197,2,106,2,180,255,161,1,25,5,149,3,239,255,174,1, +208,5,100,3,151,255,223,1,92,3,41,1,247,254,122,251,219,249,143,252,4,253,82,250,64,249,69,250,238,251,74,252, +157,251,230,251,36,251,140,248,40,247,68,247,12,247,4,246,240,245,99,248,227,250,226,251,224,252,41,253,21,254,34,2, +187,3,221,254,189,249,59,248,131,248,93,250,121,252,232,252,66,254,181,1,3,4,242,4,52,5,32,2,17,255,108,2, +167,6,187,4,184,1,222,1,95,3,249,5,33,7,192,3,234,255,201,255,157,1,248,2,40,2,74,254,198,251,181,255, +232,2,23,252,19,246,233,252,195,4,181,3,169,1,46,2,65,3,3,5,12,4,201,255,16,253,110,253,127,254,33,252, +27,248,218,249,235,253,54,253,248,251,26,253,36,254,25,255,170,255,50,0,181,0,236,254,56,253,219,253,159,254,41,0, +8,1,201,253,177,250,227,250,12,252,84,254,135,0,55,1,142,2,77,3,18,3,143,4,126,4,96,1,230,255,249,255, +148,254,121,251,189,249,254,252,196,255,87,252,129,249,118,251,164,253,184,253,255,252,129,254,93,0,22,254,234,252,118,255, +227,255,217,255,221,0,133,255,151,254,114,255,212,0,54,4,24,6,102,4,85,3,213,2,11,2,25,2,46,2,239,3, +161,5,106,1,114,252,140,253,184,255,52,0,59,0,222,253,184,252,243,255,92,2,189,2,225,2,80,2,252,1,173,255, +233,252,102,0,97,4,49,3,76,2,133,0,35,253,222,252,193,253,190,255,120,2,66,1,189,0,249,3,197,5,125,5, +232,2,26,255,24,254,66,254,19,254,102,253,19,253,185,1,145,6,126,4,73,1,87,1,230,2,208,3,11,3,58,4, +75,5,227,1,137,255,170,254,253,252,16,255,101,2,176,4,137,7,57,5,185,255,91,255,179,1,199,2,100,1,243,253, +212,251,225,249,28,248,24,249,1,250,131,251,156,254,13,255,163,255,154,2,176,3,79,3,207,2,7,3,29,4,103,1, +128,252,232,249,7,248,181,248,216,250,11,249,70,248,151,252,248,255,227,254,80,253,198,255,229,1,252,255,33,0,42,1, +36,0,220,3,144,8,100,6,110,3,236,2,248,1,137,2,82,4,189,3,248,1,95,1,40,0,91,254,250,254,52,0, +126,255,122,254,185,255,31,5,87,8,99,3,235,0,210,5,66,7,114,4,18,3,97,2,4,2,212,0,228,254,12,0, +159,1,239,254,114,252,247,253,63,255,2,255,2,0,1,0,212,254,253,0,172,3,197,1,40,255,255,0,185,3,28,2, +197,255,12,0,183,255,85,255,236,0,61,4,135,6,94,0,112,250,94,4,73,14,152,8,78,2,93,2,175,2,149,4, +40,6,92,3,42,255,98,252,52,250,86,250,141,253,223,251,139,247,163,254,101,7,180,1,70,250,194,252,214,0,179,255, +180,252,49,252,81,251,203,250,181,253,146,252,255,250,148,3,59,11,152,10,203,8,29,5,135,0,103,255,145,255,146,255, +212,0,67,6,85,11,48,6,52,255,193,1,91,5,120,4,189,3,96,3,91,2,133,0,225,253,9,253,19,254,235,253, +110,253,124,255,198,1,94,1,77,0,98,0,147,2,236,6,229,8,117,7,28,7,30,7,171,4,181,1,22,0,189,255, +112,1,32,5,86,7,141,5,211,2,70,2,163,3,20,7,198,10,35,11,67,10,203,10,232,8,138,3,156,255,246,254, +150,255,185,255,78,0,50,3,28,4,170,255,31,253,189,255,221,254,95,248,52,246,236,250,195,253,65,254,183,255,157,251, +112,246,23,252,242,1,33,254,89,251,18,253,7,254,86,255,223,1,58,3,130,1,237,254,235,254,118,255,33,255,105,254, +73,254,167,3,135,8,31,2,155,251,224,255,87,5,202,5,33,3,212,255,126,254,233,251,11,249,9,252,5,255,86,252, +52,251,220,255,28,4,3,2,138,255,221,3,11,8,240,8,35,11,230,8,52,3,113,5,248,9,176,6,148,1,211,0, +89,0,144,251,134,247,13,251,220,255,126,254,21,250,106,245,233,241,1,241,205,239,149,238,111,240,94,243,204,244,155,244, +19,245,143,248,240,250,200,248,75,246,122,246,15,249,187,252,157,254,227,255,165,2,243,2,238,0,99,2,152,4,60,2, +251,255,118,1,109,3,184,4,89,4,102,1,1,255,61,253,153,251,165,252,189,252,100,249,142,247,216,246,89,245,202,245, +173,247,90,250,202,252,39,251,9,249,93,251,74,254,234,255,120,1,37,1,81,255,27,254,169,253,165,253,79,253,64,253, +199,254,116,0,54,1,51,2,231,3,232,4,84,3,102,0,28,254,145,251,191,249,222,249,164,250,209,252,29,254,232,250, +196,247,46,247,15,247,226,249,194,253,2,254,178,253,221,254,104,255,173,254,229,253,69,255,10,1,16,1,62,1,21,0, +87,254,131,0,84,2,71,0,144,254,219,253,211,252,69,251,96,250,189,252,152,254,80,252,110,250,113,250,65,250,152,250, +87,251,28,252,13,253,60,253,108,253,48,255,250,0,88,0,125,255,85,1,3,3,148,2,3,2,120,1,215,0,230,255, +130,254,229,254,133,0,189,1,135,2,104,1,142,0,201,1,162,1,234,1,218,3,179,2,184,0,229,1,12,4,112,5, +101,4,148,1,101,0,174,255,200,254,245,255,33,2,66,4,134,5,132,3,116,1,188,3,146,5,75,3,193,1,51,1, +75,254,209,252,76,253,60,251,242,249,156,251,21,252,162,253,237,1,173,3,24,5,254,9,21,11,219,6,77,5,153,4, +232,0,227,254,100,254,15,254,35,1,76,3,73,1,251,0,171,1,207,255,196,254,119,254,106,253,240,254,128,1,39,1, +212,1,18,7,30,11,241,8,107,5,104,5,196,4,233,0,6,254,84,253,40,254,194,0,111,0,87,252,47,251,169,251, +39,250,75,251,219,254,87,0,182,0,150,0,126,255,221,254,82,1,115,6,48,6,217,1,158,255,175,241,0,230,98,7, +82,48,181,35,92,20,123,47,191,65,51,59,120,46,37,8,105,223,133,224,79,235,62,225,45,214,196,206,252,201,27,206, +92,210,241,215,233,225,0,228,175,230,28,245,173,1,63,9,223,11,90,1,196,248,4,253,66,0,109,4,196,11,216,6, +248,255,116,11,136,27,73,32,253,33,244,38,19,40,75,32,239,24,202,28,237,33,160,28,255,24,18,31,229,32,193,24, +162,14,221,4,77,253,67,251,63,249,132,241,115,230,148,218,191,207,197,201,181,199,166,198,7,203,149,215,128,229,74,240, +203,250,180,6,220,16,40,22,110,24,5,25,3,24,3,27,177,32,47,30,178,22,127,20,87,20,67,18,148,16,186,14, +187,11,174,7,7,3,105,0,124,254,170,249,210,246,68,250,63,252,135,247,28,243,33,244,54,246,40,245,94,245,246,250, +145,254,112,251,79,248,192,247,154,248,153,251,127,254,115,2,35,7,126,6,69,6,32,13,188,18,182,19,42,20,148,19, +161,17,122,14,19,11,5,10,194,9,235,8,62,8,138,6,0,5,53,5,213,4,231,2,86,1,84,1,40,1,221,254, +63,252,201,250,216,249,249,249,248,249,160,247,145,244,59,243,191,243,26,245,244,246,79,250,92,253,191,252,3,252,243,255, +153,3,37,2,121,0,5,2,152,3,149,3,162,3,176,4,197,4,43,2,249,255,24,0,135,255,243,253,238,252,33,251, +190,249,76,251,245,251,155,248,115,246,189,248,248,250,19,250,180,248,150,250,99,253,42,251,91,248,150,252,98,1,63,0, +239,253,196,252,234,250,248,248,210,247,36,247,151,246,99,247,192,248,66,247,50,245,175,246,52,249,36,250,75,250,198,249, +143,248,31,248,89,248,146,246,252,244,86,247,87,249,76,249,8,251,223,252,181,253,142,254,129,254,88,0,175,3,239,3, +60,3,217,3,160,3,39,2,199,1,173,4,201,6,194,4,55,3,111,2,219,0,52,1,47,1,67,0,232,0,8,0, +51,254,196,252,90,250,110,251,145,254,37,254,209,253,216,253,21,253,145,255,215,1,22,2,149,3,184,2,46,1,88,3, +37,4,255,3,22,5,246,2,184,1,43,5,51,6,179,3,17,2,89,1,253,0,27,0,120,255,218,1,120,4,185,3, +1,2,0,1,197,255,15,255,90,255,112,255,86,255,3,0,62,0,183,254,74,253,13,253,43,252,51,251,108,251,27,250, +225,248,153,253,50,3,37,2,33,0,32,1,63,1,168,1,136,2,126,0,248,254,99,1,137,4,213,4,101,3,204,4, +91,5,218,254,207,249,50,251,62,253,251,2,160,8,43,4,11,0,33,3,213,4,180,5,172,6,14,5,237,2,249,254, +74,253,182,2,217,5,165,3,188,1,212,255,228,254,247,254,206,254,169,255,15,255,71,254,172,255,241,254,143,253,55,254, +47,255,88,1,139,1,119,254,53,253,83,253,253,253,97,255,190,254,186,253,213,253,235,253,100,253,133,250,126,248,86,250, +209,251,130,251,143,251,34,253,53,255,37,255,172,254,184,254,85,254,165,255,170,255,8,253,107,252,104,252,231,252,220,254, +15,255,131,0,41,2,29,255,250,252,51,253,42,253,174,254,212,253,68,250,55,249,234,248,1,249,30,251,24,253,121,254, +170,255,145,0,72,0,122,254,28,254,166,254,68,0,32,7,244,13,90,14,15,12,230,9,107,7,65,3,155,255,132,3, +172,8,31,4,164,253,1,252,65,250,206,248,203,248,59,248,63,248,229,248,115,250,8,254,205,1,133,4,23,5,175,3, +61,2,150,254,119,252,149,2,137,7,216,4,19,3,61,4,31,5,153,3,141,0,244,3,135,8,203,3,235,254,168,254, +184,254,14,2,156,6,129,10,250,12,98,7,208,0,215,1,158,2,110,0,25,255,36,0,21,3,122,2,50,255,246,254, +176,255,54,254,160,250,3,248,128,248,246,248,188,249,96,252,147,254,88,255,50,254,46,253,180,253,4,254,218,255,169,1, +9,2,166,3,98,3,228,2,197,3,202,0,220,255,235,1,199,0,240,0,114,0,99,0,159,1,88,246,171,239,11,2, +210,20,252,30,216,37,161,26,114,11,32,16,42,21,139,8,156,253,240,2,59,7,134,255,220,245,125,233,183,220,133,221, +121,227,190,226,49,228,46,234,51,240,44,249,228,255,98,251,145,247,238,0,110,9,45,7,236,4,137,7,123,11,11,13, +222,10,61,9,0,8,190,5,143,4,215,1,121,254,108,252,254,249,116,251,234,254,176,255,244,1,145,3,49,5,93,11, +65,13,59,10,157,7,57,255,160,246,91,247,214,248,97,245,201,243,215,247,238,252,127,255,189,0,27,0,159,255,241,0, +111,0,212,1,190,5,67,4,197,1,87,2,226,2,113,7,64,12,149,10,5,9,92,9,228,8,48,10,55,11,40,9, +211,5,33,3,2,2,216,0,57,255,138,255,155,0,203,255,135,254,157,255,60,1,155,255,251,253,10,0,232,0,234,253, +254,251,55,253,164,253,224,251,155,251,16,253,90,252,7,250,10,250,155,253,47,1,93,0,120,254,18,1,81,3,177,255, +59,251,228,249,215,249,224,251,102,255,248,0,133,1,210,1,54,1,227,1,187,2,155,1,132,0,145,255,116,255,106,1, +142,2,143,3,50,5,73,3,179,0,240,1,136,3,161,4,106,5,132,2,218,254,225,254,139,255,61,254,170,252,110,252, +105,253,182,253,242,252,241,252,182,253,180,254,86,255,48,254,197,252,93,252,102,251,215,250,213,250,99,249,130,248,45,249, +0,250,114,252,172,254,253,252,172,250,223,250,127,251,220,251,25,253,170,254,76,255,98,255,187,0,105,3,134,5,182,6, +149,7,153,7,102,6,118,4,153,2,159,1,15,1,110,0,202,0,43,2,55,3,55,3,138,1,148,254,243,251,125,249, +13,247,178,246,195,248,211,251,242,254,104,0,250,0,139,3,113,5,146,3,193,1,7,2,34,2,164,2,31,4,94,5, +42,6,61,5,166,3,197,4,242,5,252,4,197,4,32,4,252,3,196,8,253,11,205,7,192,3,129,3,5,3,133,2, +112,2,227,0,130,255,124,255,0,255,124,254,249,253,236,251,249,249,66,248,168,246,15,249,171,252,255,252,90,254,203,0, +61,2,15,6,79,8,143,4,218,0,204,0,210,1,13,2,118,1,59,0,249,254,138,0,253,3,242,4,101,4,101,3, +70,2,135,3,10,5,188,5,156,6,181,4,97,1,129,254,220,251,18,254,111,1,131,254,90,251,173,251,223,250,99,249, +56,249,85,249,157,248,80,247,155,246,241,246,12,248,6,248,27,247,169,249,3,254,89,255,53,0,12,3,242,5,70,7, +169,6,222,5,105,5,121,3,137,1,154,1,103,1,202,255,47,255,48,255,204,253,17,253,62,253,250,251,229,250,49,251, +217,251,31,252,110,251,73,252,13,254,144,252,241,250,55,251,84,250,87,249,162,248,67,248,81,249,39,249,203,248,155,250, +100,252,34,254,104,255,82,255,121,255,13,255,223,254,176,0,29,3,240,5,7,8,90,9,241,9,116,6,113,3,112,3, +175,0,95,0,38,1,38,247,249,237,249,241,47,246,218,243,102,242,71,243,26,243,147,242,85,243,249,242,183,242,89,246, +176,249,93,250,181,252,15,0,109,1,79,2,60,5,216,8,172,9,226,8,174,8,93,8,91,8,216,7,17,6,202,4, +242,3,198,4,235,6,163,4,200,255,153,254,3,254,64,251,103,250,196,252,166,254,69,253,29,251,59,252,206,253,105,251, +27,249,172,250,85,253,54,0,132,2,107,2,108,2,17,2,144,0,79,2,155,4,20,4,9,4,145,1,200,253,224,255, +68,2,10,1,84,0,117,252,169,247,149,249,80,251,32,248,229,246,240,247,124,248,171,250,16,254,219,255,154,255,62,255, +206,255,67,255,110,255,126,4,129,9,97,8,168,5,53,7,152,10,199,10,118,12,51,22,181,28,93,22,24,14,68,8, +219,0,80,253,120,252,44,249,52,247,124,244,163,239,49,239,3,242,39,247,106,254,123,255,133,253,3,0,174,0,240,255, +21,1,219,253,174,250,219,253,30,1,19,3,1,4,98,1,76,0,105,2,139,4,182,7,254,9,252,10,234,11,18,8, +157,3,252,4,130,4,243,1,255,3,29,5,41,4,255,5,133,6,99,4,104,3,166,3,9,4,38,2,5,255,138,255, +146,0,66,254,88,252,231,251,75,252,95,255,81,3,175,4,223,4,67,7,72,9,100,6,106,2,64,1,115,0,220,255, +116,254,254,250,212,249,156,250,214,251,222,0,182,4,98,3,240,2,7,3,170,1,205,1,143,1,95,1,215,2,17,1, +183,254,63,1,86,3,4,3,70,3,153,1,50,255,68,1,127,5,108,7,232,7,46,8,151,6,9,3,141,1,7,4, +74,6,177,5,137,3,221,255,80,253,23,255,132,0,232,255,24,0,120,252,65,249,145,1,21,10,251,6,175,2,227,1, +145,1,14,4,128,6,16,6,67,4,166,0,124,254,244,254,200,255,242,3,125,7,115,4,241,0,182,254,221,251,88,252, +19,254,150,254,62,254,78,249,167,245,109,250,193,254,148,254,41,0,97,2,73,1,74,254,167,252,207,252,32,253,113,254, +233,255,181,255,190,0,140,2,40,3,206,5,174,8,252,7,231,5,135,3,139,1,211,0,52,0,176,0,7,1,37,255, +32,254,221,253,108,253,47,255,212,0,84,1,161,1,69,254,91,250,42,251,92,252,19,252,111,253,15,0,39,2,185,1, +221,255,41,0,29,0,82,253,73,252,127,254,172,255,13,254,234,251,89,251,217,251,118,251,47,251,147,254,232,2,229,2, +110,2,209,4,48,6,54,6,154,5,70,4,159,3,86,0,178,252,97,255,194,0,190,252,138,250,151,247,72,244,8,247, +89,249,89,247,11,246,161,244,146,242,85,242,216,244,120,249,240,252,145,255,106,1,31,254,186,250,150,253,81,1,205,2, +44,4,42,6,25,7,96,3,138,255,13,1,207,1,27,0,228,254,20,252,134,250,79,251,211,250,85,252,100,254,122,252, +90,252,122,255,247,0,90,1,209,1,9,3,249,4,105,5,245,4,44,4,112,3,183,4,52,5,25,3,225,0,45,254, +117,252,176,253,191,254,204,254,166,254,251,253,44,253,137,250,109,248,100,251,34,255,228,0,159,2,251,1,142,255,150,253, +156,251,63,252,29,254,37,254,37,255,183,254,86,252,92,254,118,255,247,250,200,248,203,248,240,247,99,250,165,253,120,253, +238,251,187,250,85,252,104,0,56,2,64,2,120,1,245,253,209,251,152,254,185,1,21,2,247,2,34,6,212,7,68,6, +8,3,171,253,57,249,125,250,101,253,7,254,96,255,146,2,172,5,181,5,90,3,214,3,106,4,122,0,181,253,82,254, +19,255,246,0,62,2,139,0,205,255,230,1,116,3,115,2,67,0,29,253,134,249,85,250,154,253,103,252,47,252,132,1, +128,5,157,6,97,6,8,4,246,2,214,3,26,5,136,7,1,9,118,9,70,9,122,5,88,2,204,2,26,1,27,255, +30,0,64,255,242,253,219,255,4,0,134,253,111,251,242,246,200,243,28,250,172,0,155,252,109,247,117,248,7,250,173,250, +212,250,116,248,65,246,124,247,38,250,165,250,152,250,3,254,170,0,49,254,165,251,138,251,159,251,223,251,18,253,3,0, +120,2,20,2,50,1,104,255,174,253,137,0,173,3,45,4,185,5,210,5,43,4,83,3,129,1,188,1,34,3,179,255, +244,252,253,253,106,254,179,0,52,3,222,0,113,253,52,251,83,250,70,253,246,0,21,1,88,255,82,254,13,253,130,250, +140,249,246,250,249,251,68,253,53,255,139,0,66,2,176,2,18,1,10,1,192,1,201,0,4,0,5,0,39,0,191,1, +83,4,104,4,130,2,59,3,192,4,49,3,114,1,136,0,213,254,23,254,1,254,232,252,205,251,8,252,216,252,206,250, +229,247,27,250,98,254,144,0,95,1,136,255,3,254,122,255,209,255,17,0,235,0,135,254,224,251,100,251,44,252,169,255, +58,2,71,1,234,0,187,1,188,2,249,2,180,0,211,255,59,1,23,0,206,255,68,4,123,7,51,6,119,4,162,4, +215,3,105,255,65,252,67,255,151,2,62,2,216,2,49,4,155,4,2,7,153,8,68,6,2,3,199,254,240,251,2,255, +185,1,52,255,236,252,192,252,18,252,228,250,18,250,96,249,111,249,175,252,16,1,73,2,215,2,132,3,51,3,21,6, +180,8,169,5,209,3,193,5,252,6,22,7,221,5,88,5,230,5,105,3,60,2,208,5,187,8,249,10,198,11,66,7, +122,1,195,252,100,250,3,0,79,6,67,2,5,254,72,4,205,9,6,7,170,5,122,6,86,3,219,1,144,2,61,0, +102,254,65,251,181,246,44,250,2,255,45,252,165,249,70,249,54,250,145,0,168,4,43,1,237,254,52,1,76,2,236,255, +150,255,35,5,157,8,60,4,190,255,240,0,82,4,245,6,98,7,79,3,36,254,67,253,212,254,189,0,252,1,8,1, +206,1,63,2,96,0,60,7,145,16,212,15,219,13,132,6,243,253,179,13,127,26,158,5,45,241,223,232,49,228,109,248, +46,16,69,8,237,253,62,4,60,8,201,9,248,9,238,1,99,251,40,252,12,254,30,0,233,1,60,2,117,2,206,0, +117,255,123,3,86,8,192,11,227,13,155,5,217,251,139,4,18,15,162,7,160,255,124,1,125,2,85,0,74,254,61,255, +124,2,221,255,12,251,253,254,60,3,193,253,252,248,130,252,99,0,121,0,8,1,222,3,14,5,212,255,171,250,140,0, +34,9,186,8,60,7,232,8,80,8,75,8,199,8,106,4,37,255,181,253,90,254,185,255,211,0,119,255,9,253,244,254, +125,3,12,3,5,1,123,2,197,1,249,253,106,251,230,249,114,248,220,244,177,240,69,241,120,243,140,243,123,243,62,243, +96,242,144,240,255,240,231,247,88,253,49,252,130,251,24,251,22,249,231,249,169,252,32,255,32,1,111,1,0,1,202,0, +159,1,156,3,106,3,41,1,88,0,191,1,184,3,5,3,252,1,161,5,55,7,47,1,234,252,48,255,117,0,57,254, +49,253,117,253,91,252,73,251,229,251,202,254,31,3,8,4,126,2,49,4,27,5,204,1,159,255,112,255,17,254,127,250, +82,246,3,245,153,245,225,246,102,249,77,249,189,247,102,247,55,246,190,248,5,252,94,247,52,244,106,246,219,246,202,249, +231,253,242,253,83,253,153,250,210,246,117,245,69,244,56,246,101,250,139,251,244,251,140,251,140,250,166,250,170,250,30,254, +32,2,2,1,137,0,127,2,107,3,85,0,174,251,88,0,211,3,203,248,113,241,108,242,35,243,169,252,179,8,29,10, +80,6,41,1,21,253,58,252,102,253,167,1,115,4,158,3,217,1,47,254,103,252,238,252,154,253,85,1,31,4,179,7, +205,12,117,7,106,0,231,1,11,3,39,8,15,14,95,8,38,3,26,4,160,1,30,253,215,251,247,254,189,0,226,254, +156,255,74,254,218,248,255,246,200,246,30,247,120,249,187,251,199,253,94,251,4,247,177,247,34,248,37,249,28,253,197,253, +177,254,0,1,198,0,113,2,114,3,198,255,0,253,172,254,180,3,248,6,76,6,236,3,76,0,209,0,253,2,248,253, +132,251,132,255,81,0,37,2,120,5,70,3,193,254,59,249,73,245,137,248,81,254,115,2,175,3,187,255,226,252,85,255, +30,1,0,0,245,254,160,0,62,4,97,3,252,254,138,0,180,3,21,255,11,251,62,254,122,0,32,255,61,253,248,249, +183,247,5,250,57,254,1,0,10,0,19,3,68,7,61,5,197,1,251,4,62,6,24,0,50,253,197,0,173,6,198,13, +238,16,162,15,32,12,178,2,192,250,135,251,135,254,102,4,244,7,142,254,221,246,120,250,10,253,51,253,133,254,128,0, +111,2,169,254,167,251,239,1,213,5,215,4,242,6,227,5,184,2,176,6,249,9,146,5,104,1,190,0,47,1,34,4, +125,6,210,4,166,4,107,6,9,7,76,10,241,11,47,7,221,3,163,1,205,253,201,254,188,0,141,255,245,255,216,254, +92,252,215,253,160,255,163,0,255,1,164,1,2,3,156,5,92,5,224,5,102,6,155,2,2,0,61,3,25,6,242,3, +41,3,213,6,164,7,99,5,67,4,237,1,172,0,254,1,252,0,218,0,60,3,108,2,241,1,95,5,133,7,119,7, +253,5,126,1,6,254,132,255,199,1,216,1,76,2,79,2,23,1,9,2,250,2,16,2,65,3,131,4,97,4,64,5, +188,3,81,2,240,3,151,0,191,251,98,253,62,255,91,0,242,1,144,255,132,255,163,4,49,7,193,7,252,6,231,2, +61,0,14,0,7,0,31,0,25,255,217,253,13,253,164,252,121,254,129,255,184,254,17,0,81,1,4,2,27,3,151,0, +128,254,123,255,171,254,65,0,92,3,170,0,66,255,31,2,56,3,101,4,72,4,5,2,14,2,24,255,178,250,62,0, +45,8,254,6,199,2,106,1,246,0,14,0,122,255,1,0,47,0,94,255,35,255,188,254,185,253,204,254,11,1,244,0, +222,1,236,6,113,8,227,2,180,254,61,254,20,254,220,255,195,1,26,0,5,255,99,1,197,3,210,4,65,5,130,3, +86,1,57,4,33,7,160,0,128,249,53,253,214,1,3,254,9,252,181,3,170,9,127,4,8,254,227,253,97,255,174,2, +201,4,90,254,64,250,0,1,174,4,176,255,63,252,226,253,210,254,78,250,148,246,96,251,230,0,156,255,65,253,114,253, +105,253,140,251,255,249,211,251,140,254,195,254,56,254,73,254,32,255,209,0,11,2,69,2,175,1,40,1,20,255,15,248, +20,243,180,246,63,250,48,250,204,251,211,252,223,251,52,251,112,251,166,254,70,1,174,254,198,251,102,251,30,252,52,254, +127,255,81,255,188,255,90,0,213,254,140,249,71,246,213,249,24,253,82,254,157,0,225,254,122,251,171,251,239,251,2,254, +151,0,251,253,173,252,42,254,208,252,51,252,21,251,114,246,88,244,126,244,187,243,56,244,66,246,40,250,38,253,169,251, +118,251,207,254,140,0,251,0,75,0,93,253,90,252,121,253,20,252,160,249,251,249,107,251,22,252,32,253,214,252,101,250, +2,249,149,248,72,248,235,248,83,249,8,251,191,253,193,252,230,250,186,251,240,251,234,251,158,251,227,247,60,245,158,248, +174,252,43,252,47,251,150,253,213,255,55,0,74,1,168,2,159,2,72,1,73,0,163,0,150,0,221,0,29,2,15,0, +88,253,31,255,174,255,51,254,24,255,163,252,12,249,61,253,29,0,92,252,111,252,17,255,53,255,126,1,145,4,183,4, +1,4,233,3,64,4,38,3,15,2,144,4,60,6,169,4,190,3,86,2,210,255,107,254,154,253,60,253,212,251,214,248, +126,249,242,255,157,6,134,7,69,4,20,3,240,2,207,255,190,253,134,255,228,255,204,253,200,253,104,255,83,1,108,4, +65,6,58,6,148,4,99,0,91,254,228,253,209,251,107,254,151,2,208,0,74,253,124,249,213,247,254,250,198,253,62,1, +16,4,124,3,192,3,186,253,235,245,6,252,40,4,167,7,109,10,2,4,108,255,43,3,231,1,188,3,175,7,106,0, +22,251,177,252,75,253,86,0,229,3,220,5,54,7,27,5,158,3,126,4,19,3,252,254,181,252,193,2,122,9,79,5, +187,2,194,9,143,11,103,5,207,2,105,2,229,255,170,3,212,10,124,8,50,4,114,3,29,1,114,5,108,11,162,6, +59,2,18,1,77,253,243,251,79,252,232,254,144,1,186,252,234,250,230,255,254,0,126,2,87,5,254,3,59,3,208,2, +234,1,247,4,250,7,253,6,69,6,6,11,193,17,142,14,202,5,28,9,94,15,42,5,191,250,140,2,44,10,157,5, +112,2,249,3,136,6,97,12,241,14,211,6,52,254,15,2,227,7,94,254,54,242,141,245,199,250,211,243,128,237,105,242, +207,247,158,245,93,244,234,248,12,254,9,0,244,0,239,6,191,11,142,4,98,255,76,7,73,13,88,11,249,8,227,7, +102,7,171,6,86,5,217,3,134,3,26,5,120,4,179,2,216,3,173,3,186,2,166,3,37,3,1,4,12,6,72,3, +212,254,42,252,195,249,164,247,19,247,102,249,216,251,72,253,101,0,113,0,63,253,226,255,214,4,80,3,105,255,7,255, +110,0,63,2,150,5,227,7,47,8,150,9,183,9,88,6,15,2,65,253,14,251,105,253,64,254,118,252,144,252,186,254, +115,254,117,249,127,246,93,248,210,248,93,248,164,249,21,252,97,254,8,252,44,249,23,251,231,251,34,253,36,0,62,255, +75,255,122,0,217,255,27,6,223,12,63,8,66,2,106,1,98,1,103,3,16,5,116,1,41,253,25,253,165,254,26,255, +37,255,223,255,17,2,35,5,146,6,85,4,222,255,148,252,39,250,17,248,94,248,81,249,174,249,225,250,114,252,178,255, +162,2,177,1,149,0,131,255,174,253,111,254,70,254,70,252,99,252,109,253,77,255,49,0,146,253,189,249,104,246,73,247, +17,250,138,248,127,249,117,254,21,1,42,3,253,3,71,4,58,4,219,253,254,248,216,252,254,0,1,1,180,255,216,2, +50,6,90,255,231,246,240,243,170,243,141,249,207,254,198,253,209,252,184,252,135,254,85,254,210,250,0,254,156,255,26,251, +97,251,228,249,2,248,79,252,132,253,41,255,36,1,251,253,204,254,61,254,89,251,70,1,148,4,170,255,129,247,1,238, +166,239,26,249,183,8,38,44,164,70,82,60,9,38,76,18,153,253,141,240,199,237,148,241,247,247,114,249,207,242,18,231, +68,218,52,206,154,200,209,207,56,221,156,231,42,236,70,234,128,226,163,211,115,202,18,216,10,237,9,249,95,4,185,13, +113,19,17,29,153,37,13,43,238,47,13,46,1,42,58,43,148,41,130,33,175,25,109,21,63,20,244,17,174,12,47,9, +238,3,237,245,249,232,244,230,0,231,159,224,7,218,67,218,126,221,147,223,148,225,76,225,242,225,99,234,194,243,71,250, +3,3,76,10,230,15,60,23,218,28,222,33,72,37,165,34,168,29,215,22,204,14,53,12,47,13,132,13,62,14,183,13, +71,9,108,1,47,251,67,250,11,251,1,251,50,251,54,252,192,252,223,248,112,242,250,238,8,238,131,239,216,242,83,245, +21,249,104,253,217,255,12,4,181,7,207,5,67,5,39,12,106,19,93,20,186,19,18,22,191,20,15,11,74,2,2,2, +77,3,182,0,19,0,233,3,49,7,239,7,36,6,36,0,26,248,123,242,238,238,98,236,215,235,100,235,170,235,28,240, +227,244,46,247,146,248,87,246,179,243,109,246,142,249,191,251,156,255,108,1,118,2,108,5,171,6,148,5,46,5,212,7, +123,9,200,3,59,254,231,255,161,1,184,0,17,255,31,252,128,249,223,245,160,243,103,249,27,1,195,3,87,4,115,3, +227,1,203,1,223,1,226,2,125,4,15,4,209,3,123,5,33,6,248,4,175,4,210,5,161,6,115,7,98,7,72,4, +6,1,141,255,30,254,13,253,98,252,192,252,71,254,220,253,206,253,132,0,71,2,120,4,72,7,104,5,68,1,134,255, +14,255,211,253,244,251,166,252,133,255,41,1,121,2,102,2,217,0,2,2,132,3,147,2,70,1,97,0,73,2,214,5, +89,6,143,6,176,7,217,5,146,2,21,1,217,0,7,0,6,255,78,255,192,254,151,252,178,250,155,248,6,248,121,250, +138,252,88,253,125,255,103,2,240,1,248,254,220,255,75,2,210,1,131,2,183,2,174,255,220,254,144,255,160,255,20,2, +182,3,50,1,40,255,185,1,224,5,60,6,37,5,210,5,108,4,251,0,244,254,60,254,251,253,223,252,14,253,133,0, +158,0,111,251,10,249,139,252,59,0,138,254,182,251,212,252,179,252,41,252,86,254,211,249,172,243,175,251,3,6,123,4, +128,2,1,5,250,4,231,4,10,6,211,3,243,0,207,1,197,3,157,2,33,0,24,1,224,2,91,0,72,252,152,250, +248,250,2,251,236,249,182,250,214,251,19,250,184,249,75,251,27,252,59,254,56,0,225,1,234,3,16,1,24,254,201,2, +9,9,253,12,188,14,182,11,110,6,237,0,21,253,182,254,33,2,4,5,166,7,246,3,6,253,97,253,18,1,67,255, +33,252,99,255,205,5,24,8,101,6,144,2,207,254,251,255,210,1,183,253,211,251,73,1,227,3,125,0,6,254,238,252, +31,252,94,253,229,254,13,0,145,1,133,1,93,0,199,254,133,253,8,0,4,3,75,2,66,1,31,255,3,252,219,253, +201,1,24,3,134,3,181,2,215,1,67,2,192,1,205,2,208,2,75,249,166,241,136,251,171,7,179,3,238,252,141,1, +12,6,218,0,76,251,100,252,141,255,54,2,63,4,150,1,168,253,59,1,197,5,198,1,155,252,117,253,210,0,107,3, +147,4,121,4,44,3,80,0,133,253,240,252,217,255,169,4,128,6,142,4,136,1,143,254,57,253,250,253,75,255,66,255, +144,253,63,254,155,255,113,251,6,248,25,252,155,3,85,10,185,10,151,5,200,3,19,2,84,255,151,3,130,7,131,5, +54,5,89,3,193,253,239,251,12,252,227,250,178,251,47,254,254,254,49,253,245,252,235,255,83,0,198,253,20,252,237,250, +127,250,229,250,119,252,167,254,172,254,158,1,20,7,177,2,148,250,197,251,88,255,2,0,125,0,199,0,252,1,129,2, +108,2,18,5,248,6,234,6,66,6,188,2,110,0,124,1,170,1,164,1,86,0,254,252,184,252,173,254,214,255,226,0, +255,0,102,0,98,255,33,254,179,254,236,255,30,1,183,3,198,4,109,2,189,255,119,255,26,1,84,1,214,255,25,255, +232,253,83,251,75,250,248,251,221,253,127,254,64,254,46,252,158,249,103,250,218,252,93,253,191,252,124,252,8,252,199,249, +185,248,50,253,86,1,250,255,85,254,86,255,68,0,69,254,212,251,158,254,178,1,82,255,131,253,237,253,70,253,148,252, +3,253,248,255,149,1,121,253,96,250,150,249,148,247,106,250,82,255,239,253,158,251,175,251,0,252,135,254,46,0,206,254, +90,255,109,0,33,255,116,254,122,253,31,251,139,249,7,247,116,245,46,249,125,254,3,3,209,6,244,6,173,5,178,3, +221,254,0,253,79,254,141,253,59,253,186,251,242,248,123,252,97,0,177,252,56,249,240,249,56,252,114,0,202,1,251,251, +108,246,248,246,88,249,6,250,182,249,98,249,188,249,72,249,230,248,85,252,64,0,233,1,155,4,125,5,105,3,114,4, +140,6,68,4,148,0,128,255,191,255,139,255,4,0,138,255,32,253,104,254,202,1,121,0,31,254,140,253,137,252,210,253, +242,1,202,4,206,4,107,4,167,4,147,1,75,254,195,2,218,8,45,8,225,4,229,3,27,4,84,2,146,0,157,2, +55,4,126,3,46,3,237,0,2,255,230,1,9,4,125,1,193,254,58,255,110,0,122,254,125,251,176,251,96,253,202,252, +147,251,214,253,174,255,138,252,63,253,216,6,50,12,238,4,55,254,88,3,122,7,225,0,248,251,71,252,63,252,90,1, +52,8,216,6,129,3,64,6,229,9,162,5,182,254,245,1,66,7,3,2,54,253,242,0,134,3,240,255,161,252,10,255, +11,2,55,0,18,254,91,254,131,255,117,2,185,5,54,6,192,5,16,7,104,6,218,0,23,253,80,255,78,2,239,1, +197,0,39,4,104,7,232,2,167,253,89,251,213,251,157,6,48,16,96,12,9,7,96,255,41,246,114,251,25,2,132,252, +48,250,241,252,83,254,9,2,243,5,74,8,131,8,87,4,139,1,44,3,144,5,98,7,212,6,55,4,14,3,224,4, +33,8,116,7,225,2,44,1,229,0,140,254,88,254,100,0,73,255,165,251,141,251,90,255,118,0,155,254,185,254,16,255, +117,254,47,0,123,1,47,255,187,253,211,255,13,2,175,1,173,255,64,253,86,251,143,252,37,255,143,253,217,250,239,251, +49,253,201,252,209,252,214,253,162,255,101,255,133,254,134,1,49,3,191,1,6,3,252,2,185,0,88,3,112,5,6,1, +119,252,190,250,236,249,66,251,243,254,87,1,71,0,41,254,85,253,145,253,59,253,16,251,109,249,48,250,21,252,210,254, +251,0,217,2,112,5,14,3,139,254,165,1,141,5,80,4,246,3,65,2,114,254,236,254,104,1,73,3,23,5,198,3, +195,1,5,3,198,3,201,1,45,0,192,0,1,2,150,2,158,2,183,0,151,254,185,1,68,5,135,1,61,254,90,1, +76,3,60,2,184,0,113,252,228,247,98,245,124,243,188,246,157,252,10,251,158,247,81,250,255,252,250,252,80,253,159,253, +121,253,226,251,63,250,234,252,177,255,104,252,87,249,6,253,100,1,17,1,42,1,152,3,203,2,50,0,131,0,223,0, +187,0,88,3,151,6,150,8,184,8,50,5,187,2,67,5,160,6,151,3,166,0,238,0,43,3,6,3,73,1,251,2, +178,3,73,0,5,1,82,4,45,2,188,0,154,2,231,255,55,252,22,253,165,252,150,250,251,251,104,254,25,255,241,254, +169,254,96,255,56,0,184,255,92,255,160,255,240,254,100,252,37,249,247,247,15,249,1,251,216,253,187,0,34,2,49,1, +12,255,237,254,232,0,26,3,163,3,85,0,120,254,68,2,143,4,163,3,124,3,92,2,58,1,126,0,103,253,134,251, +115,252,253,252,182,252,103,251,114,251,30,255,224,1,127,1,90,0,111,254,224,251,249,250,96,252,20,254,146,255,197,0, +244,255,144,255,135,0,38,255,9,255,231,1,167,1,58,0,143,0,29,255,107,253,184,254,43,1,148,0,100,253,22,254, +251,0,78,0,245,255,202,0,242,255,10,1,50,4,98,5,157,3,130,255,75,252,10,252,3,252,81,250,108,249,182,251, +70,254,18,255,75,0,72,1,219,1,52,3,146,3,248,3,252,4,41,5,178,5,163,3,246,254,177,254,24,0,122,254, +200,253,105,254,14,254,80,253,237,252,170,252,25,252,100,253,217,255,134,255,154,253,140,250,54,249,193,255,39,5,210,1, +198,255,56,1,59,1,60,1,31,1,93,1,33,2,255,0,232,255,221,255,96,0,240,1,80,3,35,7,41,9,116,255, +76,245,130,245,88,246,50,248,150,254,84,1,101,2,145,4,56,4,221,5,124,8,180,7,175,5,195,254,209,248,111,254, +80,3,166,1,136,0,122,250,148,245,82,252,41,3,248,5,19,8,217,3,153,254,221,254,47,255,220,253,22,252,171,250, +128,251,155,253,28,255,129,253,171,250,126,252,82,0,205,2,240,4,221,3,184,1,137,3,13,6,212,5,165,3,245,1, +85,1,82,255,107,254,89,0,14,1,213,0,190,255,162,251,3,248,246,246,158,247,165,250,77,254,52,0,20,0,173,254, +248,252,253,250,205,249,245,249,237,250,84,254,16,2,166,1,230,255,168,0,95,0,112,251,146,247,153,250,174,253,210,251, +214,250,68,252,57,254,166,0,169,1,174,2,153,4,255,3,138,1,223,254,42,253,7,255,1,1,244,255,223,254,158,253, +135,252,134,254,140,0,223,0,139,2,108,2,191,254,109,254,165,0,69,255,247,254,56,2,115,3,15,4,199,5,84,4, +236,1,104,3,51,5,20,3,57,1,89,3,25,5,48,4,129,2,134,255,128,253,109,254,11,255,227,254,252,254,89,255, +49,255,141,250,149,245,10,248,110,253,46,2,188,5,96,3,206,255,15,0,183,255,231,255,149,0,59,254,218,253,252,0, +149,4,234,9,12,12,92,6,219,255,164,252,37,251,211,252,246,254,133,252,49,251,242,255,112,2,209,255,159,255,46,1, +19,1,48,1,60,1,59,2,138,3,4,1,176,255,12,2,157,1,13,1,115,1,200,253,38,252,126,254,51,255,4,2, +220,4,190,1,153,255,22,1,219,2,164,6,166,9,113,9,230,7,144,2,26,252,79,250,20,250,200,250,169,254,239,0, +45,1,46,4,136,7,174,7,57,5,180,0,191,252,109,251,193,251,146,254,225,1,172,1,167,0,114,0,93,0,205,2, +1,5,139,4,112,3,8,255,80,251,90,255,41,3,114,2,198,2,8,2,33,0,189,1,136,4,253,5,165,6,38,6, +237,5,230,6,170,5,169,0,72,254,98,2,194,6,121,7,69,5,244,0,166,254,84,255,206,0,229,3,20,6,44,6, +231,6,155,5,15,2,104,0,144,0,80,2,86,4,53,4,126,2,67,254,176,249,217,249,149,252,37,255,89,1,104,1, +156,0,57,0,25,255,184,254,67,255,97,254,48,252,23,251,119,252,116,254,147,255,208,0,201,1,127,2,142,4,141,6, +33,5,54,0,253,251,115,251,68,252,229,251,30,251,255,251,194,255,22,3,129,2,11,2,59,3,200,0,188,253,6,0, +62,2,54,1,173,255,124,251,5,248,137,251,0,0,111,1,175,3,92,5,77,5,121,5,49,4,57,0,145,252,212,252, +32,255,181,254,200,252,18,252,86,252,142,253,82,254,16,254,165,253,198,252,141,252,1,252,84,250,7,251,214,252,1,254, +147,0,178,1,160,0,217,255,158,254,114,255,227,1,223,0,114,254,170,252,170,250,107,250,202,251,238,253,191,255,91,254, +51,252,196,252,45,254,194,254,125,254,129,254,207,0,97,4,155,5,47,3,107,0,132,0,188,1,67,1,51,0,137,0, +40,0,42,254,36,254,35,255,38,255,154,0,124,1,83,0,239,255,129,255,7,0,218,1,181,1,243,1,68,2,21,0, +107,254,237,250,41,247,216,250,45,254,85,250,211,247,58,249,165,249,14,248,8,248,203,251,60,255,41,1,91,3,201,2, +238,0,11,2,223,2,213,0,128,255,166,1,2,4,124,3,87,3,31,4,248,2,147,1,67,1,163,1,103,2,155,1, +140,255,121,253,101,251,182,250,68,251,10,252,237,252,185,252,240,251,165,251,126,251,223,251,220,251,180,250,255,250,217,253, +104,255,86,253,195,252,130,0,108,3,186,3,179,3,139,4,205,5,197,3,88,1,52,4,38,6,48,4,137,2,56,255, +94,251,1,250,216,248,214,248,5,250,241,249,36,250,22,252,24,255,253,255,211,253,226,252,92,253,1,255,172,1,207,255, +217,252,247,253,69,253,114,252,201,254,132,254,67,253,233,253,50,254,249,255,222,1,151,0,119,255,62,0,94,0,224,254, +208,253,226,253,171,252,60,251,241,251,215,252,223,252,15,252,63,251,99,253,215,255,104,254,167,252,80,253,13,254,194,254, +173,0,19,3,225,4,144,5,151,5,146,5,160,4,223,2,224,1,44,1,23,0,88,255,48,255,9,0,35,0,156,253, +133,252,105,255,50,2,141,2,228,1,183,1,75,2,140,3,212,4,127,2,208,254,147,1,189,3,192,251,214,244,169,247, +146,252,9,1,83,4,100,255,52,250,59,2,179,9,136,2,247,251,193,254,251,0,172,0,123,1,61,5,74,8,197,2, +120,253,91,2,245,5,59,3,185,255,82,250,252,246,35,250,161,254,224,0,29,3,20,10,74,16,103,9,41,255,213,0, +43,4,212,255,150,251,43,251,231,251,94,252,223,252,131,255,158,2,110,2,255,0,192,0,171,0,213,0,216,0,74,1, +85,3,165,2,235,255,33,2,157,4,98,1,28,254,116,253,157,253,217,254,138,0,62,2,240,2,47,3,164,4,58,4, +1,3,92,4,59,5,129,6,215,6,143,0,181,251,164,253,223,254,174,255,187,0,233,253,241,250,73,250,97,250,10,253, +134,1,62,5,115,7,199,6,214,4,233,4,153,4,96,1,196,254,33,254,254,253,217,255,235,1,27,2,163,2,118,0, +170,252,99,255,244,2,205,0,196,254,194,252,235,250,58,254,64,1,153,0,6,2,11,5,111,5,190,2,107,255,178,254, +100,255,165,254,173,253,154,254,185,0,210,0,228,254,100,255,192,1,62,2,58,2,15,2,212,0,235,1,152,4,7,4, +116,1,45,255,234,253,166,255,161,1,66,1,209,0,182,255,152,255,140,3,206,6,156,7,56,7,206,2,98,254,27,254, +84,254,55,255,112,0,67,255,28,254,94,253,69,252,230,252,19,254,127,254,102,254,182,253,30,254,22,255,135,255,140,0, +122,1,155,2,188,2,6,255,133,252,125,254,231,255,181,0,147,2,53,3,140,3,185,4,84,5,165,5,196,5,102,5, +187,4,5,3,135,1,25,2,88,2,146,0,252,254,253,253,42,253,43,254,67,255,120,253,79,252,244,254,119,1,85,1, +232,0,73,1,146,2,86,4,40,4,156,2,227,1,73,0,252,253,175,253,131,254,66,255,40,255,253,253,21,255,247,1, +86,2,174,1,2,2,109,1,51,0,100,255,39,254,44,254,95,1,252,2,172,1,197,4,97,8,133,3,192,253,36,252, +219,250,161,253,136,2,20,3,249,2,236,2,153,1,95,2,120,3,34,3,18,2,77,255,100,253,149,253,2,254,217,254, +9,0,126,2,80,4,247,1,137,255,35,254,232,251,171,253,45,0,61,253,108,251,148,253,198,254,147,254,58,254,121,254, +230,254,243,253,217,253,186,255,227,255,32,254,101,254,22,0,172,255,172,254,142,255,195,0,18,1,212,255,192,253,211,253, +248,254,82,255,126,0,82,1,25,0,131,254,59,254,145,255,98,0,192,255,10,0,186,0,185,0,12,1,202,0,21,0, +228,255,32,255,28,254,56,253,87,252,226,252,84,253,155,251,12,250,25,250,122,250,214,250,102,251,81,252,97,253,198,253, +54,254,127,255,251,255,14,255,188,253,127,251,70,249,76,249,203,250,150,252,25,254,174,254,191,255,189,0,112,255,7,254, +133,254,117,255,23,0,124,0,4,1,180,1,59,2,231,2,34,2,168,255,126,254,219,253,85,252,26,252,191,251,60,249, +13,248,52,250,186,252,70,253,23,253,168,253,251,253,144,253,77,253,19,253,219,252,7,253,14,253,74,253,218,254,137,0, +215,0,58,1,231,1,119,0,253,253,145,253,202,254,114,0,74,2,187,2,20,1,164,255,140,255,30,255,37,254,34,253, +129,251,24,251,93,252,68,252,22,252,222,253,19,255,95,255,209,255,197,255,168,255,195,254,27,253,108,253,173,254,104,254, +228,253,199,253,205,253,10,255,0,1,73,2,4,3,6,3,41,2,143,1,24,1,153,0,10,1,226,0,84,255,26,255, +150,0,41,2,184,2,178,1,177,0,202,255,27,255,220,1,173,4,185,2,255,0,63,2,23,3,219,2,30,2,211,1, +161,1,124,255,171,253,128,254,19,0,169,0,178,255,32,255,8,0,60,255,157,253,117,254,215,255,1,0,136,255,29,255, +173,255,247,255,176,255,65,1,32,3,195,2,81,2,95,2,116,1,131,1,187,2,219,2,107,3,62,4,252,2,240,1, +178,1,219,0,217,0,106,0,26,0,84,2,164,2,150,0,179,255,79,253,39,252,133,255,98,0,91,254,158,254,187,254, +6,254,193,255,145,2,232,2,60,2,167,4,172,6,10,4,248,1,164,2,110,3,206,5,157,7,145,5,188,3,59,4, +93,4,49,3,136,1,171,0,128,0,117,255,187,253,121,252,221,251,255,251,236,252,208,253,248,254,233,1,176,4,182,4, +249,3,174,3,187,3,13,5,27,5,200,2,97,1,205,0,57,0,115,0,139,0,251,0,52,1,200,255,130,255,80,0, +70,0,128,1,254,2,185,3,8,5,252,3,226,1,246,2,187,3,198,2,17,2,32,0,247,253,121,252,249,250,173,251, +70,253,165,253,12,254,60,253,68,252,161,253,0,255,110,0,51,2,200,1,64,1,35,2,167,2,193,2,127,2,73,3, +154,4,164,2,184,0,121,2,131,3,217,2,88,2,91,1,234,0,206,0,180,255,30,255,90,255,97,255,150,255,90,0, +98,1,17,2,70,2,206,1,99,0,154,255,242,255,152,255,177,254,226,254,47,0,208,0,143,0,163,1,226,2,49,2, +242,1,37,2,28,1,28,1,248,0,199,253,125,251,226,252,240,253,163,252,250,251,9,253,125,253,108,253,75,254,179,254, +125,254,97,255,140,0,237,0,187,0,5,0,201,255,18,0,105,255,205,254,60,255,57,255,3,255,101,255,89,255,44,255, +4,255,24,254,250,253,235,254,250,254,7,255,5,0,226,0,109,1,171,1,205,1,33,2,91,2,233,2,10,3,195,1, +28,1,242,1,99,2,109,1,52,0,93,1,110,3,82,2,110,0,93,0,184,255,243,254,61,255,78,255,112,255,96,255, +162,254,161,254,240,254,127,254,20,254,42,254,185,254,142,255,236,255,73,255,74,254,123,254,22,255,71,254,201,253,29,255, +221,255,223,254,86,254,28,255,27,255,234,253,61,253,228,252,246,252,153,254,54,0,86,0,78,255,130,253,13,253,11,254, +208,253,148,253,48,254,67,253,90,252,45,253,124,253,130,253,118,254,127,254,170,253,86,254,134,255,42,255,29,255,43,0, +229,255,147,255,211,0,171,0,122,255,175,255,202,255,59,0,192,1,117,1,71,0,201,0,45,1,215,0,168,0,211,255, +186,254,238,253,64,253,132,253,235,253,105,253,187,253,150,254,108,254,0,255,24,0,128,255,37,255,180,255,31,255,200,254, +34,255,62,254,168,253,158,254,117,255,53,255,37,254,36,254,117,255,179,255,131,255,75,255,186,253,162,253,123,255,198,255, +149,255,195,255,8,255,71,255,134,0,161,0,6,0,250,254,235,253,51,254,177,254,9,254,231,253,111,255,80,0,150,255, +221,255,202,0,177,0,231,1,127,3,197,1,61,255,244,254,79,255,107,255,145,255,198,255,112,0,42,1,68,1,7,1, +196,0,75,0,209,255,218,255,80,0,250,0,59,1,118,0,244,255,31,0,212,255,43,0,254,0,152,0,151,0,26,1, +163,0,255,0,204,1,22,1,75,0,224,255,153,255,254,255,239,255,157,255,236,255,43,0,186,0,6,1,68,0,253,255, +178,255,13,255,12,0,13,1,59,0,172,255,245,255,39,0,128,0,13,1,36,1,16,0,242,254,128,255,144,0,17,1, +200,1,51,2,190,1,65,1,55,1,105,1,79,1,193,0,252,255,253,254,75,254,24,254,159,253,104,253,17,254,140,254, +162,254,232,254,83,255,0,0,29,0,29,255,40,255,147,0,6,1,17,1,68,1,26,0,19,255,163,255,105,0,91,1, +184,1,94,0,113,255,76,255,218,254,136,255,172,0,5,1,188,1,206,1,252,0,114,1,238,1,33,1,203,0,245,0, +199,0,113,0,17,0,89,0,65,1,56,1,255,255,11,255,136,255,184,0,115,0,25,255,57,255,105,0,162,0,60,0, +46,0,67,0,246,255,82,255,243,254,203,254,3,255,116,0,119,1,150,0,86,0,159,1,21,2,25,1,68,0,110,1, +14,3,132,1,103,255,114,0,32,1,227,255,155,255,56,255,242,253,101,254,163,255,18,255,70,254,36,255,236,255,96,255, +222,254,173,254,91,254,202,254,163,255,178,255,178,255,67,0,196,0,43,1,145,1,173,1,176,1,189,1,208,1,60,2, +161,2,65,2,166,1,137,1,128,1,16,1,160,0,212,0,80,1,85,1,5,1,131,0,32,0,160,0,129,1,215,1, +88,1,236,255,227,254,85,255,242,255,247,255,154,0,36,2,92,2,64,0,202,254,77,255,10,0,33,1,200,1,155,0, +134,255,174,254,77,253,75,253,13,254,94,254,248,254,198,254,142,254,42,0,90,1,17,1,208,0,137,0,171,0,177,1, +70,2,249,1,160,1,147,1,171,1,153,1,25,1,135,0,77,0,230,255,91,255,90,255,96,255,120,255,222,255,16,255, +170,253,52,254,139,255,7,255,179,253,71,254,123,255,144,254,175,253,226,254,233,255,31,0,81,0,136,0,236,0,90,0, +204,255,130,1,172,2,153,1,205,0,126,0,104,0,173,0,58,0,5,0,183,0,24,1,67,1,227,0,244,255,16,0, +131,0,37,0,74,0,22,1,46,1,187,0,99,0,201,255,17,255,218,254,225,254,254,254,82,255,161,255,193,255,68,255, +247,254,74,0,95,1,201,0,59,0,177,255,3,255,16,255,202,254,112,254,185,254,68,254,208,253,50,254,89,254,63,255, +149,0,1,0,13,255,12,0,89,1,12,1,57,0,139,0,107,1,181,1,144,1,4,1,84,0,115,0,233,0,123,0, +248,255,204,0,110,1,71,0,127,255,10,0,46,0,77,0,162,0,46,0,250,255,36,0,201,255,39,0,18,1,171,0, +189,255,252,255,120,0,203,255,77,255,45,0,210,0,184,0,151,0,216,255,200,254,34,254,15,254,111,255,196,0,174,255, +134,254,59,255,191,255,249,255,92,0,220,254,137,253,97,0,74,3,163,1,169,255,74,0,186,0,164,0,187,0,247,255, +12,255,213,254,225,254,255,254,16,255,107,255,12,0,62,0,125,0,193,0,113,0,218,0,196,1,24,1,229,255,225,255, +225,255,97,255,114,255,232,255,224,255,101,255,26,255,84,255,124,255,39,255,20,255,99,255,159,255,33,0,196,0,253,0, +204,0,4,0,81,255,102,255,81,255,13,255,23,255,213,254,188,254,21,255,71,255,223,255,115,0,32,0,232,255,236,255, +197,255,75,0,245,0,207,0,109,0,213,255,9,255,8,255,133,255,45,255,100,254,90,254,223,254,117,255,19,0,39,0, +164,255,93,255,74,255,64,255,57,255,94,254,91,253,240,253,225,254,173,254,208,254,130,255,171,255,35,0,163,0,22,0, +213,255,221,255,252,254,176,254,70,255,22,255,237,254,166,255,246,255,122,255,19,255,29,255,146,255,95,0,182,0,12,0, +219,255,254,0,155,1,225,0,80,0,100,0,34,0,134,255,93,255,108,255,160,255,145,0,93,1,26,1,105,0,197,255, +164,255,208,255,144,255,191,255,218,255,175,254,49,254,241,254,120,255,30,0,108,0,17,0,227,255,9,255,6,254,56,254, +184,254,160,255,173,0,58,0,136,255,177,255,154,255,87,255,87,255,193,255,140,0,181,0,106,0,136,0,127,0,27,0, +227,255,213,255,189,255,129,255,42,255,244,254,251,254,22,255,123,255,163,0,154,1,64,1,119,0,33,0,31,0,37,0, +192,255,137,255,236,255,22,0,16,0,253,255,194,255,221,255,225,255,14,0,229,0,189,0,248,255,49,0,84,0,111,0, +179,0,196,255,40,255,253,255,108,0,139,0,224,0,158,0,69,0,90,0,38,0,150,255,165,255,67,0,72,0,89,0, +252,0,133,0,144,255,202,255,48,0,114,0,175,0,236,255,37,255,50,255,39,255,84,255,216,255,194,255,123,255,180,255, +39,0,117,0,177,0,53,1,140,1,50,1,201,0,164,0,132,0,164,0,10,1,101,1,121,1,82,1,45,1,166,0, +37,0,30,1,29,2,0,1,15,0,228,0,69,1,190,0,114,0,38,0,2,0,250,255,139,255,105,255,93,255,222,254, +121,255,6,1,111,1,80,1,79,1,56,0,26,255,140,255,20,0,177,255,64,255,207,254,151,254,125,255,163,0,162,0, +107,0,80,1,9,2,40,1,58,0,152,0,1,1,252,0,51,1,52,1,235,0,247,0,41,1,22,1,142,0,203,255, +139,255,227,255,108,0,14,1,139,1,96,1,204,0,204,0,9,1,125,0,15,0,51,0,20,0,94,0,231,0,118,0, +238,255,172,255,145,255,148,0,128,1,107,1,68,1,100,0,221,255,75,1,237,1,3,1,192,0,124,0,11,0,96,0, +168,0,223,0,216,0,211,255,64,255,136,255,89,255,53,255,97,255,71,255,105,255,158,255,127,255,195,255,31,0,148,255, +206,254,200,254,243,254,146,254,55,254,157,254,76,255,190,255,59,0,180,0,173,0,144,0,193,0,121,0,243,255,130,0, +64,1,170,0,15,0,141,0,61,1,148,1,93,1,174,0,88,0,233,255,225,254,104,254,138,254,129,254,199,254,59,255, +129,255,88,0,82,1,22,1,56,0,46,0,148,0,53,0,183,255,47,0,131,0,208,255,128,255,106,0,68,1,244,0, +33,0,188,255,122,255,31,255,28,255,93,255,137,255,154,255,165,255,197,255,151,255,11,255,3,255,84,255,91,255,202,255, +95,0,250,255,186,255,163,0,8,1,53,0,225,255,76,0,34,0,232,255,67,0,240,255,241,254,127,254,85,254,84,254, +160,254,113,254,95,254,68,255,224,255,177,255,163,255,194,255,159,255,96,255,139,255,38,0,173,0,240,0,137,0,171,255, +140,255,191,255,196,255,144,0,72,1,34,1,2,1,123,0,193,255,216,255,245,255,33,0,90,0,137,255,230,254,71,255, +124,255,172,255,213,255,84,255,188,254,138,254,224,254,122,255,156,255,132,255,185,255,72,0,200,0,144,0,60,0,26,0, +156,255,156,255,235,255,93,255,201,254,180,254,48,255,138,0,49,1,130,0,234,255,200,255,187,255,80,255,209,254,63,255, +5,0,133,0,243,0,159,0,165,255,1,255,236,254,254,254,180,254,0,255,240,255,83,255,52,254,217,254,206,255,12,0, +23,0,21,0,25,0,119,255,182,254,32,255,178,255,29,0,197,0,170,0,105,0,213,0,217,0,60,0,144,255,39,255, +41,255,100,255,216,255,10,0,22,0,249,0,66,1,185,255,191,254,120,255,74,0,171,0,247,0,156,0,169,255,133,255, +187,255,243,254,110,254,166,254,150,254,5,255,216,255,212,255,162,255,240,255,151,0,39,1,24,1,223,0,167,0,81,0, +67,0,31,0,178,255,41,255,217,254,16,0,135,1,201,0,239,255,241,0,185,1,244,0,0,0,21,0,69,0,187,255, +40,255,220,254,20,255,218,254,51,254,254,0,3,4,80,0,103,252,83,254,103,0,120,1,216,2,209,1,4,0,109,255, +201,254,72,254,46,254,239,254,215,255,215,254,80,254,247,255,223,0,171,0,152,0,138,0,214,0,10,1,13,1,85,1, +64,1,255,0,207,0,106,0,41,0,125,255,217,254,195,255,131,0,117,255,88,254,85,254,145,254,79,254,169,254,162,0, +3,2,43,1,51,0,122,0,203,0,115,0,34,0,19,0,233,255,9,0,33,0,72,255,217,254,154,255,243,255,250,255, +70,0,227,255,107,255,13,0,240,0,49,1,9,1,249,0,7,1,216,0,118,0,238,255,72,255,12,255,64,255,170,255, +65,0,39,0,126,255,165,255,229,255,76,255,5,255,99,255,158,255,173,255,172,255,216,255,37,0,223,255,84,255,92,255, +6,0,216,0,67,1,114,1,121,1,153,0,167,255,225,255,45,0,219,255,161,255,110,255,30,255,236,254,5,255,167,255, +11,0,128,255,59,255,13,0,221,0,1,1,12,1,240,0,84,0,17,0,124,0,140,0,43,0,2,0,220,255,132,255, +68,255,52,255,65,255,106,255,185,255,253,255,37,0,127,0,234,0,240,0,179,0,153,0,133,0,66,0,70,0,127,0, +250,255,101,255,200,255,2,0,244,255,164,0,12,1,169,0,106,0,0,0,206,255,206,0,74,1,35,0,139,255,105,0, +237,0,107,0,180,255,6,255,161,254,15,255,170,255,113,255,47,255,233,255,197,0,2,1,236,0,82,0,173,255,62,0, +46,1,6,1,115,0,98,0,120,0,38,0,198,255,17,0,89,0,162,255,242,254,155,255,166,0,155,0,69,0,195,0, +219,0,246,255,77,255,3,255,244,254,67,255,117,255,241,255,215,0,90,1,131,1,2,1,38,0,97,0,236,0,232,0, +243,0,136,0,229,255,234,255,22,0,124,0,45,1,187,1,208,1,110,0,24,255,212,255,147,0,162,0,50,1,15,1, +145,0,209,0,212,0,18,1,114,1,104,0,96,255,222,255,102,0,246,255,80,255,19,255,255,254,1,255,125,255,26,0, +32,0,103,255,234,254,167,255,110,0,67,0,57,0,118,0,184,0,38,1,43,1,29,1,35,1,84,0,168,255,232,255, +57,0,141,0,184,0,145,0,130,0,55,0,79,0,68,1,112,1,131,0,197,255,165,255,190,255,43,255,135,254,34,255, +220,255,252,255,40,0,239,255,179,255,53,0,174,0,184,0,153,0,177,0,235,0,53,0,87,255,227,255,191,0,51,1, +183,1,155,1,1,1,197,0,191,0,207,0,199,0,171,0,155,0,220,255,53,255,10,0,214,0,122,0,48,0,60,0, +25,0,197,255,127,255,191,255,0,0,140,255,61,255,140,255,205,255,208,255,198,255,183,255,169,255,189,255,12,0,47,0, +246,255,221,255,228,255,214,255,199,255,143,255,105,255,184,255,0,0,238,255,213,255,199,255,178,255,156,255,143,255,146,255, +140,255,162,255,176,255,44,255,220,254,150,255,40,0,18,0,67,0,68,0,172,255,145,255,228,255,207,255,164,255,191,255, +209,255,131,255,16,255,252,254,8,255,226,254,209,254,200,254,4,255,192,255,32,0,6,0,12,0,215,255,164,255,234,255, +34,0,66,0,50,0,147,255,25,255,5,255,233,254,253,254,55,255,115,255,192,255,172,255,115,255,172,255,214,255,154,255, +117,255,142,255,143,255,121,255,157,255,139,255,10,255,36,255,162,255,89,255,250,254,39,255,88,255,213,255,55,0,120,255, +210,254,93,255,202,255,177,255,217,255,207,255,122,255,145,255,207,255,248,255,29,0,185,255,61,255,113,255,244,255,120,0, +177,0,35,0,79,255,172,254,48,254,240,253,192,253,194,253,248,253,148,253,19,253,144,253,101,254,208,254,241,254,8,255, +100,255,175,255,167,255,4,0,136,0,68,0,224,255,47,0,192,0,57,1,101,1,248,0,127,0,82,0,13,0,239,255, +223,255,49,255,164,254,206,254,14,255,87,255,148,255,174,255,234,255,113,255,151,254,16,255,187,255,53,255,220,254,89,255, +247,255,67,0,55,0,88,0,110,0,251,255,191,255,243,255,25,0,65,0,69,0,19,0,228,255,178,255,166,255,177,255, +175,255,11,0,136,0,119,0,12,0,211,255,215,255,201,255,196,255,1,0,10,0,248,255,32,0,220,255,104,255,139,255, +216,255,52,0,142,0,38,0,171,255,6,0,106,0,75,0,52,0,97,0,120,0,93,0,92,0,97,0,81,0,122,0, +146,0,45,0,200,255,192,255,193,255,175,255,185,255,224,255,25,0,128,0,206,0,160,0,84,0,79,0,86,0,79,0, +72,0,56,0,13,0,208,255,211,255,38,0,145,0,27,1,111,1,60,1,214,0,111,0,67,0,154,0,215,0,155,0, +135,0,231,0,84,1,102,1,35,1,203,0,86,0,222,255,197,255,11,0,79,0,77,0,85,0,210,0,32,1,162,0, +56,0,155,0,235,0,108,0,246,255,62,0,128,0,74,0,46,0,77,0,96,0,98,0,123,0,197,0,251,0,9,1, +13,1,185,0,69,0,70,0,114,0,135,0,146,0,105,0,73,0,92,0,90,0,66,0,62,0,98,0,149,0,144,0, +112,0,70,0,17,0,63,0,169,0,181,0,150,0,126,0,108,0,120,0,83,0,224,255,169,255,234,255,103,0,220,0, +19,1,3,1,2,1,98,1,113,1,153,0,233,255,4,0,24,0,26,0,96,0,107,0,53,0,28,0,32,0,68,0, +91,0,78,0,105,0,111,0,60,0,101,0,166,0,118,0,78,0,41,0,237,255,70,0,192,0,180,0,190,0,202,0, +117,0,82,0,125,0,140,0,63,0,160,255,107,255,184,255,228,255,14,0,45,0,6,0,1,0,13,0,10,0,58,0, +100,0,143,0,196,0,163,0,121,0,110,0,97,0,164,0,208,0,140,0,99,0,57,0,249,255,253,255,245,255,250,255, +112,0,169,0,93,0,88,0,180,0,169,0,81,0,121,0,147,0,7,0,198,255,217,255,166,255,207,255,34,0,242,255, +233,255,246,255,143,255,112,255,198,255,1,0,33,0,17,0,204,255,201,255,10,0,68,0,109,0,92,0,19,0,224,255, +195,255,169,255,172,255,175,255,169,255,197,255,239,255,28,0,47,0,211,255,109,255,157,255,234,255,235,255,245,255,254,255, +205,255,143,255,125,255,140,255,156,255,206,255,246,255,179,255,160,255,27,0,51,0,237,255,0,0,245,255,165,255,150,255, +160,255,182,255,215,255,154,255,80,255,133,255,209,255,215,255,188,255,185,255,195,255,130,255,37,255,76,255,189,255,228,255, +190,255,129,255,117,255,182,255,231,255,202,255,195,255,45,0,130,0,43,0,174,255,136,255,92,255,56,255,68,255,41,255, +17,255,79,255,154,255,201,255,221,255,195,255,177,255,206,255,205,255,118,255,67,255,153,255,211,255,161,255,165,255,203,255, +184,255,190,255,184,255,82,255,251,254,15,255,110,255,193,255,192,255,149,255,105,255,22,255,233,254,50,255,130,255,133,255, +166,255,249,255,241,255,150,255,85,255,40,255,66,255,200,255,1,0,180,255,133,255,120,255,105,255,153,255,198,255,176,255, +201,255,42,0,58,0,230,255,198,255,227,255,197,255,150,255,170,255,190,255,216,255,44,0,63,0,200,255,89,255,96,255, +149,255,132,255,88,255,146,255,238,255,217,255,169,255,195,255,226,255,218,255,187,255,159,255,165,255,191,255,232,255,6,0, +199,255,105,255,103,255,133,255,137,255,149,255,165,255,215,255,32,0,6,0,191,255,230,255,23,0,224,255,176,255,184,255, +215,255,0,0,223,255,145,255,163,255,208,255,193,255,199,255,227,255,230,255,218,255,210,255,19,0,107,0,79,0,35,0, +75,0,88,0,62,0,57,0,43,0,244,255,172,255,153,255,169,255,138,255,142,255,216,255,214,255,186,255,0,0,55,0, +24,0,1,0,241,255,195,255,189,255,233,255,248,255,7,0,74,0,99,0,38,0,255,255,29,0,45,0,24,0,65,0, +148,0,141,0,81,0,13,0,194,255,208,255,255,255,230,255,7,0,73,0,24,0,232,255,244,255,237,255,229,255,184,255, +130,255,210,255,44,0,241,255,197,255,5,0,46,0,56,0,99,0,86,0,0,0,225,255,19,0,103,0,187,0,185,0, +108,0,84,0,93,0,47,0,14,0,77,0,155,0,155,0,121,0,77,0,24,0,34,0,69,0,24,0,245,255,57,0, +107,0,32,0,200,255,197,255,207,255,233,255,42,0,1,0,180,255,12,0,134,0,155,0,155,0,149,0,124,0,78,0, +46,0,74,0,59,0,19,0,71,0,80,0,52,0,140,0,195,0,135,0,74,0,54,0,117,0,180,0,125,0,51,0, +247,255,214,255,255,255,251,255,217,255,15,0,48,0,38,0,59,0,65,0,83,0,126,0,116,0,96,0,119,0,147,0, +160,0,161,0,145,0,124,0,119,0,121,0,86,0,42,0,21,0,254,255,238,255,238,255,249,255,15,0,19,0,15,0, +41,0,48,0,27,0,38,0,72,0,99,0,111,0,83,0,35,0,47,0,106,0,117,0,84,0,87,0,112,0,101,0, +56,0,51,0,124,0,170,0,119,0,36,0,246,255,34,0,113,0,86,0,21,0,45,0,89,0,97,0,93,0,103,0, +122,0,113,0,109,0,96,0,32,0,24,0,55,0,10,0,239,255,236,255,194,255,219,255,4,0,239,255,243,255,243,255, +229,255,25,0,94,0,135,0,158,0,144,0,98,0,35,0,20,0,69,0,67,0,27,0,39,0,38,0,254,255,238,255, +249,255,12,0,53,0,119,0,135,0,51,0,229,255,219,255,227,255,246,255,1,0,233,255,204,255,206,255,234,255,240,255, +248,255,34,0,13,0,200,255,193,255,197,255,184,255,195,255,210,255,238,255,3,0,0,0,32,0,62,0,52,0,33,0, +247,255,227,255,252,255,240,255,228,255,14,0,35,0,22,0,16,0,4,0,213,255,171,255,182,255,181,255,171,255,233,255, +19,0,246,255,241,255,228,255,197,255,202,255,192,255,159,255,154,255,170,255,187,255,165,255,143,255,192,255,226,255,202,255, +209,255,243,255,255,255,243,255,235,255,252,255,247,255,214,255,198,255,188,255,206,255,11,0,38,0,10,0,237,255,221,255, +211,255,211,255,217,255,202,255,191,255,227,255,234,255,190,255,201,255,232,255,224,255,241,255,1,0,220,255,193,255,205,255, +225,255,237,255,219,255,161,255,125,255,159,255,201,255,198,255,202,255,224,255,222,255,227,255,249,255,241,255,215,255,207,255, +211,255,220,255,229,255,210,255,161,255,160,255,210,255,219,255,193,255,192,255,203,255,208,255,194,255,163,255,165,255,208,255, +225,255,203,255,187,255,208,255,231,255,217,255,207,255,221,255,218,255,208,255,219,255,208,255,169,255,162,255,174,255,172,255, +177,255,184,255,195,255,229,255,223,255,185,255,194,255,209,255,199,255,218,255,243,255,244,255,243,255,238,255,231,255,243,255, +3,0,244,255,224,255,247,255,8,0,236,255,223,255,216,255,193,255,194,255,193,255,188,255,208,255,210,255,209,255,218,255, +200,255,214,255,248,255,219,255,196,255,217,255,227,255,246,255,10,0,11,0,10,0,246,255,228,255,244,255,252,255,245,255, +239,255,234,255,241,255,255,255,3,0,243,255,222,255,239,255,14,0,11,0,250,255,233,255,213,255,211,255,229,255,245,255, +250,255,251,255,1,0,254,255,254,255,14,0,14,0,8,0,20,0,22,0,15,0,15,0,16,0,15,0,7,0,15,0, +34,0,19,0,255,255,255,255,250,255,9,0,32,0,19,0,14,0,24,0,9,0,0,0,12,0,16,0,3,0,253,255, +12,0,19,0,7,0,2,0,3,0,17,0,40,0,38,0,22,0,14,0,10,0,16,0,23,0,23,0,32,0,37,0, +26,0,20,0,23,0,26,0,30,0,41,0,49,0,31,0,2,0,0,0,3,0,251,255,252,255,4,0,6,0,5,0, +5,0,251,255,239,255,246,255,2,0,252,255,248,255,251,255,249,255,252,255,3,0,12,0,18,0,18,0,25,0,25,0, +3,0,0,0,16,0,8,0,255,255,6,0,6,0,253,255,249,255,254,255,3,0,252,255,246,255,0,0,8,0,3,0, +253,255,1,0,7,0,2,0,254,255,1,0,252,255,249,255,255,255,3,0,254,255,251,255,7,0,10,0,248,255,253,255, +17,0,8,0,252,255,1,0,1,0,2,0,7,0,5,0,7,0,6,0,1,0,4,0,0,0,254,255,4,0,253,255, +239,255,236,255,245,255,5,0,10,0,4,0,4,0,255,255,250,255,3,0,2,0,242,255,239,255,250,255,4,0,4,0, +4,0,9,0,6,0,0,0,5,0,3,0,251,255,253,255,255,255,254,255,2,0,2,0,4,0,11,0,8,0,0,0, +253,255,0,0,254,255,248,255,254,255,1,0,248,255,250,255,3,0,250,255,247,255,0,0,252,255,246,255,255,255,2,0, +251,255,248,255,250,255,252,255,0,0,4,0,7,0,9,0,8,0,7,0,8,0,3,0,254,255,252,255,249,255,249,255, +2,0,4,0,253,255,252,255,252,255,0,0,11,0,11,0,255,255,252,255,2,0,3,0,0,0,249,255,246,255,253,255, +4,0,2,0,252,255,249,255,252,255,0,0,1,0,2,0,6,0,7,0,5,0,4,0,2,0,254,255,253,255,1,0, +1,0,255,255,3,0,5,0,3,0,6,0,6,0,253,255,253,255,3,0,255,255,252,255,255,255,253,255,250,255,255,255, +6,0,5,0,1,0,1,0,4,0,4,0,254,255,250,255,251,255,253,255,255,255,6,0,8,0,3,0,3,0,5,0, +4,0,6,0,8,0,0,0,253,255,1,0,254,255,255,255,7,0,5,0,254,255,254,255,0,0,2,0,4,0,4,0, +3,0,0,0,253,255,254,255,0,0,0,0,2,0,4,0,3,0,2,0,1,0,0,0,2,0,4,0,2,0,252,255, +251,255,254,255,253,255,254,255,6,0,8,0,3,0,1,0,3,0,5,0,3,0,0,0,0,0,255,255,252,255,251,255, +250,255,253,255,6,0,7,0,2,0,3,0,6,0,6,0,4,0,1,0,0,0,255,255,254,255,0,0,2,0,0,0, +0,0,3,0,4,0,1,0,3,0,7,0,6,0,2,0,254,255,252,255,3,0,7,0,2,0,2,0,4,0,1,0, +1,0,3,0,1,0,1,0,1,0,255,255,3,0,6,0,255,255,251,255,1,0,2,0,254,255,255,255,255,255,255,255, +2,0,4,0,3,0,1,0,254,255,2,0,5,0,0,0,255,255,254,255,251,255,5,0,10,0,0,0,1,0,8,0, +3,0,1,0,255,255,251,255,2,0,3,0,250,255,254,255,4,0,253,255,251,255,0,0,0,0,2,0,7,0,4,0, +0,0,1,0,4,0,3,0,0,0,255,255,255,255,252,255,249,255,254,255,1,0,2,0,3,0,255,255,0,0,7,0, +6,0,255,255,2,0,3,0,254,255,254,255,1,0,2,0,3,0,2,0,3,0,4,0,1,0,255,255,0,0,4,0, +3,0,255,255,0,0,0,0,255,255,1,0,1,0,253,255,253,255,253,255,254,255,0,0,254,255,253,255,255,255,252,255, +251,255,5,0,8,0,1,0,1,0,7,0,3,0,251,255,249,255,252,255,3,0,8,0,6,0,7,0,8,0,255,255, +252,255,5,0,8,0,255,255,248,255,254,255,4,0,2,0,255,255,1,0,4,0,5,0,3,0,1,0,1,0,255,255, +254,255,254,255,254,255,0,0,4,0,3,0,2,0,1,0,2,0,4,0,4,0,4,0,5,0,0,0,253,255,0,0, +255,255,255,255,1,0,253,255,254,255,7,0,11,0,9,0,5,0,4,0,5,0,4,0,3,0,1,0,250,255,250,255, +1,0,2,0,254,255,252,255,253,255,2,0,7,0,6,0,6,0,6,0,4,0,6,0,6,0,2,0,255,255,255,255, +0,0,3,0,7,0,5,0,1,0,2,0,4,0,5,0,7,0,5,0,1,0,1,0,5,0,10,0,11,0,6,0, +3,0,5,0,5,0,2,0,255,255,0,0,0,0,0,0,5,0,6,0,3,0,255,255,254,255,255,255,4,0,6,0, +4,0,4,0,3,0,2,0,4,0,7,0,7,0,7,0,4,0,0,0,1,0,5,0,4,0,2,0,5,0,11,0, +14,0,11,0,5,0,3,0,4,0,0,0,253,255,2,0,9,0,7,0,1,0,2,0,3,0,255,255,0,0,4,0, +255,255,251,255,253,255,1,0,4,0,4,0,4,0,5,0,3,0,3,0,3,0,255,255,255,255,255,255,253,255,2,0, +5,0,2,0,4,0,7,0,4,0,4,0,2,0,255,255,1,0,2,0,0,0,0,0,253,255,252,255,3,0,7,0, +5,0,4,0,3,0,2,0,1,0,254,255,252,255,254,255,254,255,252,255,252,255,0,0,2,0,1,0,255,255,254,255, +0,0,2,0,255,255,254,255,0,0,2,0,6,0,4,0,255,255,2,0,4,0,254,255,254,255,0,0,249,255,246,255, +252,255,255,255,255,255,0,0,4,0,4,0,255,255,254,255,3,0,5,0,0,0,252,255,249,255,250,255,251,255,252,255, +253,255,254,255,252,255,250,255,252,255,1,0,5,0,5,0,1,0,253,255,251,255,255,255,0,0,254,255,252,255,250,255, +249,255,255,255,3,0,1,0,1,0,2,0,2,0,0,0,254,255,253,255,0,0,1,0,253,255,248,255,252,255,2,0, +0,0,255,255,2,0,3,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,255,255,0,0,254,255, +254,255,253,255,254,255,4,0,7,0,1,0,252,255,0,0,2,0,0,0,2,0,2,0,252,255,253,255,5,0,3,0, +253,255,254,255,2,0,255,255,255,255,0,0,252,255,249,255,254,255,1,0,255,255,0,0,3,0,4,0,2,0,254,255, +252,255,254,255,255,255,255,255,0,0,3,0,4,0,4,0,1,0,254,255,1,0,5,0,4,0,0,0,254,255,253,255, +251,255,247,255,250,255,2,0,4,0,3,0,3,0,2,0,2,0,4,0,3,0,2,0,254,255,253,255,255,255,253,255, +249,255,249,255,254,255,2,0,2,0,254,255,0,0,4,0,4,0,0,0,253,255,255,255,1,0,255,255,254,255,1,0, +0,0,0,0,2,0,3,0,0,0,0,0,2,0,254,255,251,255,254,255,1,0,0,0,255,255,254,255,1,0,4,0, +1,0,254,255,1,0,0,0,254,255,1,0,4,0,2,0,255,255,254,255,0,0,2,0,0,0,0,0,3,0,2,0, +253,255,254,255,2,0,2,0,1,0,1,0,2,0,5,0,4,0,3,0,5,0,1,0,252,255,252,255,251,255,252,255, +2,0,3,0,4,0,7,0,4,0,0,0,255,255,254,255,254,255,255,255,253,255,252,255,253,255,254,255,0,0,2,0, +4,0,7,0,8,0,6,0,4,0,3,0,255,255,252,255,253,255,0,0,3,0,4,0,6,0,8,0,6,0,3,0, +2,0,0,0,254,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,3,0,6,0,4,0,3,0,3,0, +254,255,252,255,252,255,253,255,1,0,4,0,3,0,4,0,3,0,1,0,2,0,1,0,1,0,2,0,255,255,253,255, +2,0,3,0,0,0,0,0,1,0,255,255,253,255,255,255,2,0,3,0,1,0,255,255,1,0,1,0,255,255,1,0, +3,0,0,0,255,255,255,255,1,0,1,0,254,255,253,255,255,255,1,0,0,0,0,0,1,0,2,0,0,0,0,0, +0,0,255,255,255,255,1,0,0,0,255,255,0,0,2,0,3,0,0,0,255,255,1,0,1,0,255,255,252,255,251,255, +254,255,255,255,254,255,255,255,1,0,1,0,2,0,2,0,1,0,2,0,2,0,3,0,1,0,252,255,251,255,254,255, +253,255,254,255,0,0,2,0,2,0,1,0,255,255,0,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,254,255, +255,255,1,0,3,0,2,0,0,0,0,0,0,0,255,255,253,255,254,255,0,0,0,0,0,0,0,0,255,255,255,255, +2,0,2,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,254,255,0,0,3,0,1,0,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,1,0,1,0,255,255,0,0,2,0,0,0,255,255,1,0, +1,0,255,255,253,255,255,255,1,0,1,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,0,0,253,255, +253,255,255,255,255,255,0,0,0,0,254,255,255,255,1,0,2,0,2,0,0,0,254,255,253,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,0,0,3,0,2,0,255,255,255,255,2,0,2,0,0,0,255,255,255,255,255,255, +253,255,254,255,255,255,255,255,0,0,2,0,0,0,255,255,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,254,255,254,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,1,0, +2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,2,0,2,0,1,0,0,0,0,0,2,0, +1,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,0,0,255,255,0,0,1,0,0,0,1,0,2,0,2,0, +2,0,2,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +1,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,1,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,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,1,0,1,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,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,255,255, +0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,255,255,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +1,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,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,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,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,255,255,255,255,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,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,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,1,0,2,0,1,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,2,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,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,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0, +0,0,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,255,255, +255,255,0,0,0,0,1,0,0,0,1,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,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,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,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,1,0,1,0, +255,255,0,0,0,0,255,255,255,255,1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,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,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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, +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,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/grass2.pcm b/src/client/sound/data/grass2.pcm new file mode 100755 index 0000000..c624341 --- /dev/null +++ b/src/client/sound/data/grass2.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_grass2[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,202,255,167,255,217,255,199,255,108,255,152,255,10,0,213,255, +110,255,254,255,195,0,73,0,142,255,70,0,17,1,201,255,116,254,217,255,183,1,145,1,228,0,125,0,104,0,108,1, +235,1,5,1,15,0,101,254,249,252,20,254,141,255,165,255,20,0,102,1,85,2,81,1,16,0,10,2,240,3,67,1, +24,254,44,254,213,254,6,255,147,255,98,255,119,255,198,0,249,0,181,0,43,0,194,252,82,251,199,255,129,3,42,3, +119,1,144,255,42,254,250,252,200,250,80,247,19,246,129,251,200,1,164,2,223,2,30,4,3,4,78,2,190,255,107,2, +94,7,171,3,193,254,41,0,200,0,111,1,56,3,9,0,26,252,104,254,27,2,224,0,96,255,235,2,152,5,71,3, +191,0,74,1,149,1,125,252,17,247,65,247,96,248,19,252,64,0,221,250,65,247,130,253,131,1,160,3,94,6,194,5, +115,2,193,250,203,247,86,0,97,5,177,5,33,7,28,1,184,249,157,252,140,1,229,253,120,250,248,5,104,15,146,3, +239,249,44,0,132,4,239,1,89,255,129,3,182,10,123,7,118,255,79,253,20,255,78,3,240,5,218,9,224,15,133,10, +123,1,50,1,107,1,172,2,140,2,231,250,175,245,253,242,138,240,230,245,70,253,147,254,241,251,169,250,223,249,116,241, +88,233,159,235,58,239,98,241,6,244,139,246,182,249,141,246,65,242,11,244,176,243,144,249,51,3,18,253,132,246,205,247, +32,252,251,22,166,48,103,34,217,13,48,14,138,15,58,12,119,5,233,251,142,248,162,246,111,242,63,245,30,250,246,245, +43,244,57,2,61,15,20,13,132,9,108,4,226,250,96,1,174,16,204,14,188,6,179,9,48,7,107,240,128,228,127,248, +224,5,237,4,182,13,167,9,4,1,166,21,21,35,225,18,145,5,194,4,246,3,89,247,93,232,105,239,49,255,246,0, +48,253,243,249,29,243,187,239,107,245,173,248,174,252,75,9,255,4,98,249,213,0,104,246,99,230,84,253,48,9,126,252, +9,5,239,10,21,0,132,0,185,6,128,6,13,3,86,3,107,6,49,0,60,248,145,1,181,21,64,19,30,247,164,242, +145,1,92,249,96,249,171,13,236,8,90,245,86,244,163,255,119,5,1,9,255,21,222,21,20,6,2,8,16,11,113,2, +89,255,103,246,252,245,34,6,212,255,188,239,89,243,40,253,138,11,145,27,70,23,55,252,13,232,82,242,229,6,212,19, +162,25,114,18,142,15,80,16,45,252,240,241,175,255,124,255,240,244,20,241,134,239,121,243,210,244,174,237,212,241,201,6, +109,18,145,9,112,2,109,7,1,15,153,11,219,251,22,3,28,17,145,232,216,196,240,226,104,252,163,1,231,19,45,20, +236,9,176,17,235,22,67,19,0,7,215,241,236,234,54,238,15,239,44,0,202,19,49,11,103,255,201,255,80,248,88,250, +221,4,186,246,6,240,29,7,157,17,234,4,22,243,32,239,108,253,240,254,14,248,248,247,22,244,129,7,126,29,92,0, +116,224,248,218,154,218,14,244,214,17,148,24,176,30,204,27,238,17,237,10,18,254,138,2,26,252,249,204,253,194,136,226, +49,230,58,233,175,1,24,14,210,13,146,18,77,36,208,46,201,31,117,18,125,13,254,2,201,0,236,3,7,7,83,25, +228,44,35,42,211,28,107,22,48,9,38,240,241,226,74,216,165,215,84,11,25,57,85,40,83,20,25,7,7,239,116,233, +232,231,250,232,5,244,38,238,167,243,246,252,207,240,12,15,8,43,2,4,136,244,62,241,71,208,15,230,43,7,201,242, +232,239,138,237,113,214,96,237,97,12,6,2,221,248,41,245,242,239,140,254,250,23,98,51,250,67,1,39,41,242,85,226, +135,243,133,248,159,245,254,9,194,27,149,4,109,228,36,220,65,225,132,243,162,10,118,24,154,34,183,32,35,26,85,29, +198,15,41,242,122,222,124,222,144,251,213,18,145,15,250,18,58,13,182,250,27,244,192,224,79,207,237,204,71,197,252,222, +207,4,179,6,26,12,49,7,95,245,15,6,101,7,27,240,95,241,182,243,165,0,142,37,244,54,182,41,122,10,113,250, +43,252,158,224,141,201,189,215,203,224,89,224,113,222,203,231,35,253,253,230,5,204,187,243,115,27,26,25,214,24,193,32, +161,21,7,242,30,227,64,251,6,17,252,38,34,56,146,32,83,5,162,0,97,247,246,240,53,250,215,15,98,28,125,254, +144,224,73,250,59,26,48,17,46,1,23,4,239,10,191,1,253,238,189,244,39,5,217,242,91,228,245,4,59,41,77,57, +40,59,78,39,8,12,150,240,208,224,200,240,127,0,153,5,151,20,64,25,118,19,182,8,82,246,156,252,147,0,149,220, +83,198,114,206,141,221,199,251,88,15,50,3,189,241,72,231,5,229,194,241,177,0,108,246,123,229,190,252,23,19,6,241, +99,208,178,219,201,233,1,238,88,243,7,232,167,212,199,230,215,8,142,252,198,225,10,230,182,242,6,10,51,35,249,25, +80,12,163,15,32,9,210,250,207,237,63,235,218,252,238,11,64,13,215,6,219,248,207,243,56,241,50,219,145,210,148,238, +236,9,123,23,42,39,165,43,8,38,215,50,44,64,102,43,115,19,234,31,169,48,218,35,253,25,246,33,59,23,6,250, +12,230,243,219,107,217,130,223,255,235,192,249,28,8,205,41,82,72,156,54,89,28,175,29,0,23,106,7,52,4,10,11, +233,29,69,45,118,40,142,31,226,30,72,30,99,30,209,48,196,66,109,46,171,18,41,12,22,253,211,231,199,224,183,226, +5,226,60,208,228,198,228,224,78,247,214,247,99,248,227,249,128,248,45,243,180,244,89,4,25,8,234,253,159,244,227,226, +218,216,172,228,84,236,202,233,27,234,227,234,111,236,188,244,221,247,130,230,250,215,216,228,163,245,111,247,30,241,233,231, +232,234,108,252,47,4,152,254,216,249,155,246,216,246,245,252,242,0,120,11,60,29,227,20,119,0,154,6,158,22,147,52, +254,79,106,36,181,243,237,15,88,41,232,35,22,35,143,12,106,244,21,248,124,9,137,45,62,70,183,64,206,51,125,10, +100,218,25,212,28,221,12,242,144,8,51,240,167,216,214,233,153,236,243,221,191,221,131,229,178,248,126,22,194,34,229,17, +169,254,182,252,141,248,163,241,242,245,66,240,17,234,248,255,229,22,133,25,241,8,127,232,24,216,7,214,131,217,95,13, +171,71,77,58,143,32,98,44,51,39,47,2,137,226,155,220,25,224,55,208,20,209,132,8,169,50,40,28,217,250,182,242, +31,239,107,238,183,239,4,223,247,205,142,212,22,229,40,1,78,22,194,249,138,226,142,2,176,17,183,254,48,244,45,214, +246,175,128,180,15,207,133,237,196,8,155,9,6,7,204,11,202,4,101,253,116,252,112,19,38,48,58,6,9,211,181,233, +218,242,84,228,106,243,49,237,36,237,137,26,164,54,14,69,30,80,65,67,168,53,188,22,78,237,235,227,7,234,87,7, +64,28,140,237,196,206,136,229,145,237,11,245,134,0,195,244,159,235,132,244,10,7,82,8,174,1,209,35,173,56,142,19, +112,242,76,215,227,184,131,191,77,221,43,253,117,31,241,51,225,40,69,243,24,183,123,161,47,166,121,181,172,200,210,220, +8,237,206,218,22,191,196,198,218,217,180,251,119,36,143,22,130,249,105,4,168,0,251,226,126,218,8,226,57,229,45,221, +102,215,33,248,187,31,95,24,144,13,72,20,0,25,156,72,127,107,244,35,155,227,143,243,140,6,167,35,248,61,28,27, +1,251,31,7,10,8,40,244,240,246,104,24,3,43,17,50,93,76,145,73,230,45,254,55,217,65,126,49,101,51,173,69, +129,77,139,65,8,33,72,244,227,222,81,6,219,52,245,54,16,54,92,39,254,242,158,200,14,178,158,180,107,209,95,210, +9,208,21,252,162,31,189,22,143,253,144,236,200,248,97,29,68,43,17,7,233,228,29,248,16,20,243,13,111,1,64,5, +157,13,229,8,16,13,118,52,111,78,176,56,183,28,131,17,77,15,54,15,67,7,80,248,251,238,246,248,28,11,83,18, +147,32,166,53,223,56,79,56,120,58,122,51,47,42,133,25,160,10,230,29,127,59,208,51,8,36,136,61,239,83,158,52, +113,26,63,46,173,61,156,56,67,47,26,20,0,243,160,231,254,222,44,193,181,163,222,163,237,186,55,205,61,209,245,216, +194,233,70,236,79,223,140,217,236,212,33,197,140,194,203,218,102,231,6,213,40,198,49,196,118,194,126,203,188,226,169,10, +22,48,46,43,248,36,225,61,139,58,191,32,230,19,131,246,226,212,105,195,105,179,194,182,111,193,205,179,57,171,134,183, +221,193,162,200,126,211,143,218,119,217,98,222,36,228,99,215,154,204,60,210,217,217,25,234,186,252,81,252,13,246,185,244, +23,237,62,222,217,206,3,197,245,205,20,232,60,236,66,210,147,200,52,201,232,184,38,188,107,216,191,234,107,245,146,247, +144,242,29,250,117,3,163,6,218,9,65,1,36,247,20,250,238,246,59,237,25,235,160,236,98,244,237,251,209,250,9,7, +128,25,102,23,183,20,24,22,133,16,115,24,254,31,169,27,80,32,217,19,61,2,58,25,107,35,120,11,138,5,198,255, +198,236,55,228,20,219,72,215,53,225,78,236,202,250,247,253,38,249,137,6,212,9,57,251,98,0,217,8,250,0,200,254, +248,252,25,238,200,231,215,247,226,11,19,22,141,25,253,21,70,17,159,18,191,10,129,244,82,230,179,234,201,243,64,244, +10,246,29,5,33,14,237,2,104,252,103,19,121,56,229,74,172,80,33,90,24,82,234,58,204,31,202,230,44,190,58,232, +210,33,151,49,218,53,165,39,173,21,43,47,76,70,175,50,26,41,187,60,155,66,39,47,50,36,242,47,245,56,222,52, +70,41,8,18,57,255,233,253,212,2,184,20,214,45,160,49,228,42,216,42,109,41,178,42,166,41,218,28,12,25,116,31, +255,25,195,12,234,0,135,252,70,0,208,246,93,239,136,15,44,52,43,47,165,25,210,18,161,18,11,15,106,19,211,30, +91,32,67,36,197,37,238,3,102,221,166,217,50,239,141,27,105,57,206,34,245,13,158,27,102,41,180,48,129,52,80,42, +254,22,138,5,215,252,245,3,105,23,84,27,61,16,157,28,239,41,6,23,205,0,190,232,178,213,88,234,188,6,82,16, +15,17,57,253,223,232,67,230,120,224,105,218,109,222,188,237,56,247,178,225,63,205,189,212,37,231,23,255,92,7,160,252, +5,248,217,235,192,224,180,233,111,238,160,243,169,252,103,247,251,242,4,240,233,232,185,239,85,0,38,16,38,28,231,29, +143,19,21,2,115,251,75,252,200,248,254,3,158,21,3,31,126,36,161,12,94,238,73,245,163,252,229,251,198,3,75,245, +55,226,167,240,65,1,70,246,151,233,164,243,157,252,100,247,192,244,10,237,55,229,170,232,66,233,116,241,41,246,88,227, +37,225,247,237,249,236,98,240,250,240,125,238,190,245,33,234,48,217,140,221,172,222,96,226,81,242,149,239,183,219,174,213, +45,216,176,199,101,179,34,192,122,227,226,251,252,252,162,243,241,242,177,246,74,248,124,247,69,242,151,240,252,237,234,241, +90,250,54,213,75,185,55,249,210,42,51,16,228,249,245,227,96,201,183,215,163,226,23,197,204,182,216,216,189,252,162,249, +24,236,195,233,248,230,147,226,119,217,183,221,216,237,85,218,33,192,55,202,117,214,230,227,218,247,100,251,205,254,146,3, +70,252,223,245,128,243,223,247,114,253,11,252,32,252,154,239,98,221,53,222,141,229,195,253,250,17,0,241,230,229,22,30, +126,63,84,54,239,27,243,226,92,180,110,178,207,192,31,215,34,250,37,31,220,56,103,57,113,34,78,254,120,220,54,215, +156,227,157,222,45,214,229,228,216,249,177,255,182,251,57,249,196,249,92,2,245,23,42,37,56,35,59,46,33,58,95,44, +127,29,207,24,107,14,34,4,0,1,28,3,3,5,56,5,109,15,235,24,144,18,15,12,169,10,15,11,125,10,34,252, +0,244,223,5,134,17,71,4,35,246,227,253,140,18,53,24,12,20,149,26,182,31,228,23,182,15,240,16,175,18,137,18, +58,30,68,39,110,34,251,42,42,51,35,33,33,20,220,17,224,3,73,255,31,16,211,23,112,19,6,34,153,55,123,60, +37,62,229,39,43,1,68,14,22,36,209,12,39,0,113,238,10,207,122,238,128,31,39,26,154,8,180,5,128,6,142,250, +7,235,51,0,36,26,52,25,134,29,103,20,190,252,242,2,252,15,217,18,218,29,241,35,75,30,26,20,131,13,175,12, +55,4,105,254,89,251,128,231,132,226,32,254,62,22,44,32,124,38,255,47,170,58,119,53,26,37,103,25,231,17,100,14, +205,13,124,21,13,39,28,48,78,49,191,50,152,43,82,36,17,31,160,12,193,254,118,5,244,8,184,0,39,252,10,252, +124,254,32,3,47,9,83,33,241,67,152,77,3,66,143,40,180,251,62,218,22,206,225,199,119,210,74,231,111,247,146,251, +208,241,14,249,148,252,58,220,61,209,186,213,162,218,63,40,51,103,47,40,19,222,132,196,188,173,247,187,36,231,36,246, +84,249,231,18,0,37,244,242,185,180,34,209,234,245,85,202,232,181,208,239,129,28,207,17,181,4,124,13,253,9,19,250, +183,246,64,245,98,241,50,237,214,231,101,247,44,13,40,8,207,2,50,15,74,21,23,17,132,10,107,253,41,242,17,249, +118,2,104,248,14,234,24,227,53,224,239,226,237,228,164,238,86,249,9,229,229,218,182,253,8,16,138,5,189,1,54,248, +220,242,231,0,71,1,176,240,88,237,176,243,200,237,40,224,65,221,137,228,25,237,11,239,98,234,96,239,11,246,178,240, +120,245,227,1,85,0,5,249,178,242,8,246,87,253,61,236,72,220,191,230,199,234,137,232,82,235,224,226,28,225,54,246, +32,18,23,38,2,36,25,25,156,19,196,246,132,206,65,203,193,218,165,219,144,222,174,236,239,250,143,12,186,22,182,0, +118,226,181,227,174,248,58,11,249,15,49,0,70,245,75,249,245,249,222,253,236,253,29,244,84,255,197,14,26,7,25,4, +70,2,89,245,17,246,253,251,204,249,82,253,139,255,66,249,17,245,192,247,57,254,74,3,168,6,100,3,165,250,85,253, +33,2,18,253,168,254,154,4,117,5,158,255,84,242,48,248,208,12,108,10,85,9,29,29,66,31,238,14,156,12,122,21, +69,16,181,254,99,254,47,15,84,23,147,16,212,4,28,6,251,14,123,4,26,245,52,251,137,10,79,16,193,12,211,12, +164,16,123,18,243,19,212,6,159,249,2,11,22,26,88,19,228,11,160,0,146,253,3,8,133,10,200,7,100,2,70,8, +228,19,243,246,52,224,97,6,86,48,208,67,160,65,92,35,213,4,42,217,197,182,182,219,181,19,244,51,49,69,206,40, +40,254,57,236,223,222,94,225,220,236,134,249,227,25,251,38,251,23,86,18,107,21,130,42,236,51,126,253,249,196,32,198, +94,207,149,191,168,190,52,225,90,253,85,4,188,11,183,4,24,244,250,243,104,245,161,244,72,252,204,8,169,18,34,8, +45,244,1,235,5,232,40,251,219,22,68,22,143,13,34,8,7,7,167,22,210,22,17,8,46,10,64,3,37,240,54,238, +137,241,202,234,62,231,107,250,29,18,201,14,40,6,82,8,2,6,41,3,62,254,207,248,135,251,146,249,173,246,0,250, +93,252,210,1,13,1,192,250,19,251,99,241,107,232,62,244,218,0,198,11,155,21,240,15,146,5,48,4,234,13,29,20, +58,7,228,255,28,5,65,255,149,249,157,250,198,243,90,239,68,241,160,232,128,228,134,254,218,17,87,255,150,241,235,242, +62,244,193,9,115,19,149,251,39,243,61,250,253,9,229,46,178,68,58,69,212,55,134,15,196,245,36,251,202,3,167,16, +191,19,108,13,121,8,56,231,167,190,83,180,156,182,140,200,117,224,76,223,76,221,49,230,4,228,51,225,181,227,189,221, +120,223,78,249,174,12,201,8,146,6,165,7,164,10,94,24,163,27,102,24,82,27,168,15,50,8,133,15,157,9,17,7, +113,11,44,3,119,254,176,251,167,248,89,2,120,10,220,12,130,12,55,11,202,13,115,0,48,244,222,0,79,11,218,32, +136,50,117,9,75,229,150,240,153,249,178,10,103,27,142,14,22,13,87,23,222,23,13,31,176,29,107,12,44,252,60,244, +149,255,65,9,191,2,241,6,147,16,138,22,170,24,206,0,232,235,202,251,229,12,168,14,235,8,225,251,129,250,88,254, +56,248,40,251,99,255,71,246,129,246,23,5,191,15,218,9,100,255,87,14,11,26,165,252,113,231,52,244,141,3,133,22, +130,31,166,16,95,6,182,246,194,224,216,233,33,247,54,241,18,241,185,238,99,238,107,255,78,10,93,14,139,13,1,251, +121,243,209,250,10,247,153,255,132,19,193,9,171,243,208,240,113,242,84,240,37,246,99,4,230,14,179,9,29,253,254,250, +1,253,101,252,137,4,22,15,57,14,0,7,78,1,191,2,142,5,35,253,8,243,15,240,48,238,146,240,155,250,59,7, +87,9,146,252,113,242,230,231,207,221,200,239,163,1,118,246,122,242,69,247,121,251,115,15,124,23,61,9,31,1,139,2, +47,16,86,30,124,37,59,59,102,64,114,31,180,251,133,206,233,172,21,201,208,243,26,2,4,7,93,5,205,6,51,10, +41,253,35,240,123,236,66,239,195,248,234,243,154,229,146,223,131,219,61,232,109,253,130,248,7,243,44,0,10,5,207,3, +81,3,35,252,160,249,179,250,89,240,86,227,55,227,168,234,244,238,240,247,157,5,16,2,244,246,67,255,31,7,217,250, +193,242,39,249,132,255,0,5,149,7,128,0,225,250,46,249,61,242,12,246,57,7,172,7,106,253,182,3,64,16,170,18, +77,10,69,254,55,0,90,14,235,20,103,20,145,22,214,25,5,18,117,252,173,240,233,245,25,254,191,15,83,31,97,19, +60,7,111,17,57,19,3,1,126,241,139,237,9,238,139,241,121,249,177,252,41,250,179,250,80,248,246,246,216,254,230,251, +44,242,219,249,224,2,246,4,146,11,157,7,183,250,241,250,78,1,242,3,232,5,31,6,108,4,45,255,47,252,147,6, +175,16,34,10,141,0,131,0,29,253,130,240,168,241,128,4,16,9,196,1,217,11,171,24,139,17,44,2,24,248,97,246, +163,249,250,254,197,8,127,12,23,4,127,252,180,248,133,250,48,5,1,9,34,1,226,247,105,239,113,239,123,248,19,252, +107,253,255,7,34,19,96,13,32,253,16,253,231,8,64,7,226,254,77,0,203,9,59,20,211,22,21,17,97,11,47,13, +82,21,91,17,85,2,60,3,240,12,168,8,156,255,204,2,70,17,82,22,222,9,185,0,199,253,178,248,109,246,34,239, +108,228,114,232,16,244,109,246,243,241,139,244,146,251,241,246,246,244,207,255,184,5,14,15,153,23,91,10,15,2,137,5, +38,0,48,3,28,13,61,13,3,11,184,1,194,248,176,253,153,2,40,7,129,9,225,254,139,244,171,234,95,227,56,242, +107,255,13,247,56,246,70,255,74,254,198,252,249,250,141,233,168,223,83,243,6,6,159,10,65,13,14,255,231,239,50,252, +185,6,236,4,117,7,154,4,235,2,249,6,133,3,113,3,230,3,231,248,101,239,131,233,235,236,141,253,253,254,89,240, +83,235,32,238,122,241,226,244,107,251,112,7,79,12,177,12,145,17,112,8,206,244,69,241,255,245,97,245,173,248,16,3, +234,13,223,15,114,4,217,251,53,254,139,249,97,241,246,247,42,255,250,253,137,2,178,7,127,6,195,4,47,0,55,254, +147,1,243,249,109,235,31,234,119,242,128,247,166,251,38,6,38,16,147,15,209,8,200,0,75,250,151,251,124,253,15,250, +236,253,167,8,182,9,17,0,136,244,228,234,48,232,211,235,124,237,47,241,6,250,1,252,164,252,92,7,20,12,236,1, +172,243,203,233,47,239,94,253,142,254,241,249,32,254,90,2,187,2,113,6,249,9,40,3,15,250,175,255,63,6,217,252, +149,251,155,15,227,27,243,19,107,11,217,10,21,9,244,2,144,0,178,6,43,10,71,1,233,251,100,5,197,11,98,7, +154,3,22,4,128,7,220,6,175,0,112,255,68,252,158,245,174,252,164,7,75,9,160,7,12,3,128,7,197,18,155,10, +212,0,112,8,116,9,90,7,121,13,5,12,61,7,183,5,12,1,205,1,213,6,58,7,66,12,213,20,108,20,100,15, +109,12,76,9,172,7,245,7,7,6,12,3,43,251,33,235,79,230,170,244,87,0,212,3,4,5,187,253,116,247,94,255, +45,8,159,5,113,1,87,4,136,6,37,4,154,3,90,1,110,255,150,8,140,17,142,16,226,11,229,3,249,1,194,8, +46,8,157,7,110,12,145,8,50,4,231,0,50,248,29,254,127,11,92,6,70,255,222,4,216,13,197,22,168,22,243,9, +70,253,201,245,24,245,96,250,214,254,223,5,132,13,147,8,188,254,182,252,131,249,85,243,66,243,167,243,209,240,230,240, +207,243,126,251,105,5,72,7,117,7,51,9,116,4,250,1,239,255,18,242,74,230,252,226,98,228,223,242,35,1,73,1, +175,253,123,246,18,242,129,252,178,7,201,11,224,11,24,5,125,1,21,4,232,1,138,254,236,254,116,0,199,1,175,1, +229,2,153,2,60,253,81,253,209,3,63,5,187,3,23,7,187,9,221,1,26,250,102,255,42,2,82,252,219,252,207,254, +72,253,154,255,136,0,247,253,143,250,83,246,83,247,66,248,166,243,165,243,141,246,131,247,67,247,59,238,214,229,102,237, +107,248,251,252,227,0,255,3,226,3,40,1,19,0,96,1,64,251,18,239,170,231,139,226,195,227,210,244,136,3,86,1, +234,0,208,8,101,9,152,2,203,253,132,252,49,251,233,244,157,240,230,245,204,249,89,249,217,253,251,1,34,1,111,1, +178,255,71,246,78,240,58,251,86,9,20,6,106,253,42,253,17,252,100,251,211,255,131,0,107,255,2,1,82,0,19,2, +80,8,228,8,151,5,137,6,202,8,78,10,94,11,189,8,76,8,224,15,134,19,203,12,69,7,240,6,222,5,254,4, +179,4,151,255,44,251,223,255,160,1,109,249,27,246,230,248,81,250,100,255,10,6,139,9,86,9,191,2,38,1,240,9, +82,13,115,8,55,1,57,251,184,251,89,250,164,246,101,252,123,3,67,5,63,4,38,254,192,250,188,249,103,245,29,250, +180,2,156,0,237,255,172,6,166,10,15,9,90,5,111,3,28,3,250,4,26,8,48,4,105,253,205,251,127,250,51,251, +245,0,122,8,29,16,28,17,58,14,132,16,54,14,245,1,169,246,23,244,189,249,174,255,170,4,239,8,3,6,61,6, +195,9,212,253,185,242,153,248,115,254,70,3,136,7,126,0,248,248,223,248,185,249,53,251,204,252,84,255,120,1,173,252, +10,247,224,248,27,254,112,0,188,254,63,255,33,2,131,254,213,248,202,250,27,2,112,9,236,12,79,12,185,9,54,5, +82,3,231,5,29,7,5,7,156,5,24,0,110,253,81,0,147,0,199,254,97,255,18,255,23,0,157,6,190,7,252,252, +226,244,201,246,216,247,152,244,71,246,217,0,160,8,222,3,132,0,158,6,231,3,65,246,110,237,239,233,213,236,36,246, +136,249,138,250,92,252,178,241,238,229,96,233,204,238,120,241,11,245,62,240,83,234,100,242,190,253,29,255,83,254,90,3, +105,7,179,6,228,6,136,6,106,3,222,2,211,2,181,255,210,254,131,0,0,0,36,255,123,0,50,0,4,255,23,2, +176,3,195,0,119,255,94,252,93,252,57,8,129,14,241,10,212,9,13,255,206,239,35,244,213,0,167,6,79,8,123,4, +208,253,81,246,223,239,1,244,26,252,16,252,14,250,30,251,47,253,178,255,180,1,151,3,189,3,213,255,220,253,106,3, +167,6,192,252,140,241,204,240,65,243,21,250,26,5,129,4,110,255,92,6,50,12,228,5,107,255,143,1,109,3,181,250, +179,242,101,248,193,0,163,1,198,254,206,250,149,248,146,249,26,248,43,241,118,236,67,241,162,248,67,251,45,0,140,10, +94,16,201,12,172,6,149,3,91,1,40,255,252,255,41,2,229,255,10,249,4,248,162,2,204,10,187,5,34,255,137,0, +210,2,219,1,112,4,142,10,252,14,175,21,150,24,241,11,148,252,246,244,20,243,237,254,223,13,216,13,192,10,16,9, +59,2,221,254,79,254,220,253,231,2,241,3,252,253,220,254,179,4,186,2,239,250,197,249,20,255,199,254,0,251,50,255, +185,7,28,9,153,4,253,4,128,9,71,11,69,15,108,20,13,17,81,9,177,4,218,3,82,5,144,3,91,0,163,2, +75,6,158,6,57,6,229,5,199,2,154,252,19,250,237,253,176,255,254,250,101,247,194,251,81,2,50,3,192,2,217,3, +108,2,42,255,205,252,131,255,169,5,135,5,221,3,86,6,23,6,28,7,33,8,65,0,74,251,238,254,124,2,12,6, +141,7,47,8,181,10,212,6,185,2,38,6,25,8,39,13,155,21,12,19,164,14,134,17,165,15,25,9,76,4,189,255, +101,254,79,0,238,0,102,2,190,3,152,255,65,251,186,251,79,250,106,248,253,251,221,252,160,252,33,8,119,19,239,14, +46,7,68,7,227,6,63,1,5,251,59,247,177,246,245,248,14,250,29,250,197,253,4,1,127,255,126,253,64,250,61,245, +241,243,151,243,54,242,201,244,3,250,130,0,188,4,224,254,237,247,252,248,68,249,218,250,105,1,131,255,73,249,36,253, +108,255,7,247,7,241,251,241,51,244,212,248,194,254,19,255,216,251,74,254,4,4,248,2,189,254,77,254,18,251,69,245, +129,245,218,244,24,239,21,239,10,244,239,246,242,249,179,253,126,1,228,2,119,255,126,253,103,251,81,244,9,242,168,244, +63,246,188,254,183,8,234,7,8,5,205,7,179,11,130,12,167,8,61,3,243,255,46,255,252,254,43,251,249,244,211,241, +201,244,179,254,43,11,200,21,198,25,10,17,100,5,176,1,221,255,14,255,158,255,194,252,156,252,89,1,34,4,82,3, +109,0,244,255,243,254,75,247,242,241,239,241,59,244,241,252,98,2,242,0,138,4,196,6,239,3,206,3,68,1,184,255, +248,3,74,0,52,247,120,247,141,250,154,248,19,249,173,253,224,0,72,5,184,10,240,9,233,6,87,8,34,11,216,11, +83,9,47,7,11,6,245,253,27,244,221,242,238,245,245,248,10,253,197,5,38,15,92,12,142,8,171,16,162,19,160,13, +148,5,254,248,233,243,140,247,145,250,38,7,46,18,207,8,13,0,185,3,69,2,9,249,17,243,99,243,218,247,129,254, +234,255,32,249,149,248,203,1,81,5,46,1,169,251,217,246,243,246,159,249,37,250,15,251,124,254,77,3,130,6,197,7, +169,8,209,6,156,3,201,1,113,0,15,2,0,4,193,0,182,253,69,254,112,253,209,249,126,248,7,253,33,2,230,2, +145,1,123,2,27,6,245,0,122,245,131,250,20,3,174,247,248,238,35,244,148,246,146,249,72,252,236,246,78,245,206,249, +78,251,217,252,250,253,68,250,213,248,6,253,45,0,160,2,205,5,29,4,180,254,8,250,220,246,235,247,11,253,164,5, +194,11,79,2,95,246,139,251,70,4,18,8,12,14,0,20,194,22,223,14,20,3,187,8,202,13,74,0,155,249,70,253, +100,253,149,1,95,3,160,247,244,235,22,233,46,235,42,242,112,248,12,247,135,247,211,254,175,255,67,249,69,242,173,232, +133,231,116,244,176,253,179,253,253,253,188,2,113,3,43,244,139,230,101,237,252,246,242,252,127,4,21,0,36,248,13,0, +187,8,73,2,128,247,244,244,85,249,201,254,248,2,173,4,22,8,230,16,212,22,246,19,182,12,78,8,8,7,132,254, +52,245,143,250,198,1,187,1,254,1,168,253,70,249,114,252,5,251,116,246,77,247,92,247,233,247,68,252,186,255,68,2, +76,5,206,7,138,7,104,5,175,6,2,8,186,4,37,2,12,2,108,2,49,4,4,8,92,12,134,11,93,7,72,10, +5,15,53,10,165,3,150,4,20,5,101,254,131,249,168,252,168,1,57,6,91,8,171,0,84,245,142,242,213,245,97,249, +157,253,142,2,70,6,233,5,212,2,194,2,49,3,239,253,164,249,110,252,228,253,250,250,56,250,27,251,242,250,250,249, +141,249,164,253,9,3,89,4,188,5,74,7,24,7,147,8,198,6,190,255,39,253,250,254,102,0,8,4,37,7,76,4, +218,1,35,7,122,11,108,6,173,1,200,3,50,6,184,6,16,4,178,252,48,250,3,2,161,8,156,5,121,3,160,12, +31,21,56,15,98,4,252,0,37,2,29,3,129,3,211,1,98,0,7,5,109,9,62,4,179,0,189,8,176,15,12,13, +147,7,11,5,209,4,61,3,182,1,166,2,46,2,56,2,158,5,169,6,130,6,196,8,142,9,249,8,76,7,208,2, +157,0,217,2,113,4,225,1,139,252,207,250,213,254,155,3,235,7,31,11,192,9,51,7,233,7,250,7,54,7,35,12, +104,17,154,12,70,6,26,9,237,11,221,5,146,253,1,252,61,253,30,247,164,240,195,245,164,252,19,251,216,247,138,248, +155,250,150,249,148,246,42,245,18,244,207,245,28,248,50,241,241,233,56,235,191,236,120,240,244,244,12,242,200,243,213,252, +114,0,247,1,26,2,204,252,27,250,58,250,182,247,60,246,140,246,237,243,86,240,181,244,75,252,233,248,194,244,206,252, +21,6,95,13,88,18,93,11,20,4,20,7,242,6,151,4,122,8,12,10,86,10,42,18,227,25,90,26,127,23,161,20, +175,19,121,17,105,11,251,10,58,15,138,10,20,1,122,251,83,249,220,253,57,2,190,253,250,250,99,253,152,251,62,246, +231,243,223,247,79,252,125,248,90,241,55,239,42,241,33,243,173,244,148,248,81,249,92,243,133,240,62,239,139,235,104,240, +5,249,203,248,22,247,0,250,97,250,108,242,50,235,178,240,22,248,199,247,16,249,139,250,60,249,37,253,96,3,237,4, +33,3,150,0,251,253,9,252,88,254,193,0,182,252,186,250,23,252,35,250,202,252,152,3,130,5,21,6,117,7,231,8, +25,7,173,252,250,243,121,243,110,244,55,250,229,1,32,1,115,255,3,2,145,1,199,255,151,0,222,0,61,2,107,7, +125,8,59,2,237,252,245,248,46,245,25,247,3,250,135,248,191,247,202,248,59,250,175,253,212,2,110,6,12,5,145,0, +144,252,250,250,13,253,236,252,147,249,121,250,13,253,139,254,80,254,177,248,152,246,47,249,6,249,128,1,243,13,150,11, +136,4,230,1,228,254,17,253,44,251,244,250,130,253,20,253,108,254,233,1,218,2,100,8,147,13,211,8,193,2,39,1, +58,2,111,3,105,2,197,3,71,6,146,3,131,1,174,4,28,6,181,1,201,254,84,3,5,7,63,6,218,6,182,2, +176,249,72,249,247,253,5,255,202,0,224,2,99,3,88,6,188,9,45,11,251,12,185,12,158,8,240,3,222,0,37,2, +87,5,188,2,254,255,200,5,55,11,209,7,69,3,71,7,106,12,238,5,26,255,249,1,116,0,253,251,110,254,108,254, +146,253,221,2,143,6,137,7,243,6,223,2,27,0,25,0,204,2,171,6,230,5,107,4,102,5,95,3,131,254,122,249, +26,247,129,248,55,250,222,252,124,255,57,0,170,0,59,253,41,251,106,1,214,4,127,2,73,0,166,253,240,254,102,0, +241,252,221,253,51,2,158,5,115,8,211,3,1,255,233,2,100,4,178,255,91,251,73,252,183,0,16,254,47,249,237,249, +78,248,171,248,208,253,185,253,153,252,158,252,23,252,138,0,14,3,210,1,73,2,5,252,160,244,13,247,252,249,104,252, +174,0,52,255,27,253,217,0,33,5,150,7,190,7,219,4,186,1,116,0,149,255,28,253,68,251,216,251,180,251,250,248, +208,245,125,247,122,252,161,250,11,247,153,251,118,255,244,0,181,4,252,1,212,253,35,3,205,6,160,2,130,254,204,254, +219,2,232,3,171,2,163,6,105,8,61,4,155,255,63,247,251,241,48,247,35,251,87,252,233,254,153,253,142,251,48,249, +158,246,236,252,118,1,124,250,198,247,125,252,72,0,8,4,145,5,154,4,227,2,6,255,59,254,4,1,97,1,232,1, +91,5,209,8,52,9,247,6,181,5,63,4,79,3,51,6,99,7,163,6,75,6,79,0,208,251,193,255,27,1,63,255, +73,255,216,253,194,254,189,3,96,6,58,5,37,1,100,253,107,253,138,254,18,255,83,255,84,0,213,2,5,3,123,2, +251,4,15,5,65,3,51,5,240,6,6,6,54,4,99,1,79,0,58,1,2,1,179,255,147,253,110,253,18,0,64,253, +195,247,89,252,156,3,6,1,211,251,134,250,18,251,242,253,203,254,44,250,196,247,7,250,219,251,15,254,31,1,185,1, +173,255,101,251,36,247,161,248,60,253,220,253,34,254,246,0,118,0,4,254,180,254,171,255,48,255,49,254,133,252,254,252, +118,0,144,3,232,4,34,5,58,4,53,1,72,255,35,2,242,2,13,254,181,250,251,249,84,250,232,252,100,255,123,2, +113,4,36,1,203,254,165,254,170,253,1,2,21,6,182,1,146,255,48,2,144,2,78,4,96,6,42,4,153,2,215,2, +169,2,193,5,110,10,209,9,115,7,211,9,26,10,193,1,215,250,250,252,44,0,136,0,250,0,59,254,26,251,71,255, +32,3,60,0,232,253,33,253,252,251,79,253,42,255,87,0,55,1,116,0,129,1,140,3,88,0,72,250,128,247,236,248, +137,250,30,250,239,250,141,251,201,250,169,253,111,1,181,1,43,0,237,253,170,253,239,253,61,254,174,3,69,5,101,254, +177,251,187,251,96,251,130,0,167,2,52,251,107,244,197,248,57,0,253,248,233,241,199,254,6,10,95,10,20,10,70,3, +225,255,0,7,44,9,59,11,24,14,86,4,229,249,137,249,170,252,187,254,7,253,219,253,132,3,199,4,218,3,151,2, +175,254,17,255,232,0,198,253,238,250,191,248,152,246,235,248,21,252,202,250,62,250,4,0,208,4,53,2,255,254,148,253, +17,252,94,254,200,0,189,254,208,253,248,255,85,3,201,5,184,4,167,3,196,2,80,254,205,252,185,0,106,1,69,0, +28,2,89,255,119,248,86,250,243,1,110,3,29,2,107,3,7,4,235,2,98,1,97,253,232,247,24,250,54,4,198,7, +53,4,218,3,120,2,168,253,66,252,216,253,76,255,147,254,192,251,164,250,168,251,49,254,102,254,122,248,13,245,36,246, +72,246,130,250,150,255,62,255,199,253,146,248,64,244,54,250,199,255,105,1,99,6,35,10,122,10,254,6,249,1,204,6, +220,14,174,13,224,11,195,12,235,11,10,14,204,16,140,14,59,12,226,11,163,10,80,9,153,8,217,8,110,7,30,255, +26,248,180,251,26,0,86,0,143,0,231,252,36,250,151,253,47,255,112,1,249,4,114,255,50,249,235,250,221,250,186,246, +2,246,156,250,8,252,210,244,21,240,253,242,245,245,77,247,208,247,28,251,8,0,131,251,126,245,154,249,172,252,254,251, +132,252,82,250,182,251,176,4,61,10,75,10,255,10,205,11,127,10,85,7,218,2,122,0,36,1,99,254,189,252,77,4, +144,8,74,6,177,6,78,1,226,251,73,4,186,10,125,10,175,11,129,4,125,249,68,247,106,249,67,253,152,0,72,2, +173,4,39,1,15,251,120,253,107,0,147,251,223,246,39,250,41,254,180,248,114,244,9,250,245,253,89,254,12,254,125,248, +235,243,203,245,98,250,125,255,41,1,33,1,175,3,142,2,57,253,208,250,190,249,94,247,251,247,245,253,19,3,129,1, +236,253,22,254,127,0,235,0,246,255,239,3,100,9,129,7,77,4,203,3,188,0,238,255,70,3,54,3,83,1,72,2, +104,3,31,1,16,254,71,255,209,254,102,247,4,244,24,249,213,254,65,4,43,8,238,7,98,8,14,10,85,9,150,7, +199,4,76,1,159,255,246,252,167,249,192,250,142,252,171,250,248,249,161,251,86,250,61,248,70,252,150,2,81,3,39,2, +117,2,138,0,236,255,210,3,0,7,15,8,64,7,235,3,222,0,236,253,160,251,146,253,101,1,109,3,98,2,63,255, +153,254,134,255,227,254,209,254,120,255,65,1,209,3,214,2,35,0,137,254,109,253,251,254,146,2,144,8,206,15,125,14, +250,6,206,2,225,255,199,0,210,5,130,3,228,252,126,253,240,2,155,6,249,6,234,5,146,5,41,6,246,5,210,3, +81,3,150,3,28,1,74,3,227,6,48,255,61,248,116,253,142,2,132,1,95,255,149,255,216,0,224,255,89,255,77,254, +252,255,72,16,4,30,72,21,180,8,121,1,181,249,244,249,48,255,191,1,162,4,227,3,230,0,32,255,131,248,2,242, +2,240,122,236,77,234,115,236,95,239,223,240,12,242,217,247,81,250,129,240,12,237,204,249,99,6,178,13,158,17,18,15, +93,8,225,255,30,250,155,251,151,253,47,252,250,254,152,10,44,20,207,13,27,4,204,7,41,10,80,1,58,250,197,248, +201,248,195,247,177,245,26,248,142,253,49,3,38,10,212,10,76,7,2,10,220,11,77,9,2,7,48,0,94,248,136,246, +3,247,226,249,232,253,154,254,119,253,164,250,141,249,157,253,250,255,117,0,48,2,195,0,47,255,246,255,209,254,100,254, +252,254,204,252,25,250,249,248,23,249,115,247,236,244,217,248,140,253,223,252,197,254,132,0,169,255,152,4,63,9,9,8, +8,8,191,9,104,9,186,4,139,0,66,2,255,255,203,248,20,247,87,246,73,245,249,248,250,251,160,251,196,250,34,252, +102,252,61,243,48,236,236,244,62,255,206,0,121,0,41,0,167,254,172,252,46,251,44,251,149,251,21,252,204,253,109,255, +119,255,101,0,59,1,196,253,186,252,224,0,116,0,78,254,112,254,31,251,124,249,38,252,69,252,191,248,7,245,166,247, +17,251,57,246,182,245,15,252,138,1,80,12,67,20,129,19,123,20,130,16,66,9,207,12,48,17,77,13,12,8,1,6, +237,4,12,0,146,253,177,0,9,0,96,254,162,254,200,251,14,250,6,248,206,242,143,242,127,245,47,245,190,245,87,249, +62,252,45,254,49,1,148,2,122,2,112,4,80,4,39,2,44,0,38,249,46,246,5,0,253,6,60,3,128,0,245,4, +22,8,204,2,155,254,193,255,46,254,24,251,135,248,154,247,236,249,25,248,111,247,28,0,36,6,210,5,120,3,90,253, +146,248,86,249,176,254,8,5,9,7,179,6,3,5,231,3,35,6,93,5,230,6,45,14,146,14,210,11,202,10,16,10, +190,10,165,255,38,245,157,255,57,5,150,253,160,246,104,241,26,244,158,237,46,234,48,21,224,59,93,52,201,30,86,236, +124,186,86,202,34,233,177,245,35,9,185,10,224,2,82,14,228,21,7,22,7,21,36,11,111,5,174,10,139,16,87,12, +221,5,177,14,105,16,135,1,126,253,109,248,169,245,247,14,39,33,8,28,133,17,88,244,72,217,26,219,154,224,51,230, +243,242,29,248,93,248,138,246,9,239,209,233,192,233,237,237,169,245,35,255,167,6,43,4,53,0,97,4,114,5,115,4, +6,7,238,5,170,5,30,9,96,9,249,7,124,7,192,8,117,7,212,253,151,249,10,5,112,15,57,11,17,3,42,5, +38,11,236,9,225,5,168,2,134,1,213,5,140,9,214,10,234,11,119,6,92,2,60,10,100,14,95,7,126,1,236,248, +252,236,148,238,137,243,33,233,39,227,16,242,89,4,135,6,251,252,3,255,124,2,33,236,90,223,24,244,20,4,91,15, +248,26,45,9,132,237,36,225,221,222,145,241,159,7,217,11,71,14,103,5,188,248,217,9,225,27,130,21,10,12,224,1, +24,252,196,4,184,10,133,4,9,254,59,4,242,14,80,9,112,253,209,249,46,248,169,252,47,0,138,246,107,240,131,242, +241,240,0,237,80,238,225,253,185,12,68,5,81,250,213,248,110,248,17,253,177,255,28,253,161,254,130,249,57,243,7,253, +173,7,9,10,181,9,10,4,154,253,55,251,5,0,245,12,113,18,62,13,168,9,74,6,22,0,20,248,213,243,249,251, +29,5,162,3,49,253,20,247,243,252,95,11,8,12,2,10,154,14,248,5,254,252,244,2,150,6,13,10,6,15,62,9, +249,2,223,251,188,240,137,246,136,0,98,250,117,251,156,6,222,9,246,10,113,9,46,3,70,255,109,248,171,243,140,251, +183,3,64,6,44,9,38,7,161,253,227,244,150,242,66,243,129,241,82,241,71,245,148,245,199,241,137,241,145,242,122,240, +71,241,60,245,177,245,196,246,236,247,67,241,89,235,158,237,203,243,222,253,129,5,132,5,227,5,69,7,141,6,203,4, +250,2,137,7,82,16,85,21,135,24,100,19,215,3,64,252,87,254,123,253,47,252,27,253,60,250,32,245,232,245,240,250, +124,252,183,251,146,252,200,255,86,1,247,249,114,241,53,241,4,243,223,247,104,254,70,252,145,247,117,245,216,245,242,253, +251,3,189,2,2,2,120,254,94,253,189,4,206,10,243,15,147,17,7,10,194,7,94,14,181,16,107,10,232,2,172,5, +217,8,124,2,137,2,42,2,85,248,29,251,111,0,16,248,77,247,168,251,211,249,118,252,228,255,186,6,152,18,142,10, +62,249,55,252,1,3,32,1,187,1,34,2,153,6,237,20,128,26,175,18,131,13,244,8,164,2,161,5,0,9,163,1, +0,253,245,252,79,250,115,251,227,250,28,247,80,251,110,252,159,252,246,10,143,17,7,12,247,11,172,1,80,242,184,244, +224,247,62,242,29,239,52,241,132,247,131,246,53,243,25,1,26,13,73,4,247,245,242,236,227,232,57,228,201,226,33,240, +84,255,150,9,205,22,56,26,250,19,223,16,44,13,44,12,53,12,21,6,230,1,233,252,129,246,185,249,187,252,162,246, +139,241,228,246,165,255,221,247,34,236,13,245,3,253,102,247,117,248,78,0,117,4,160,255,33,247,40,251,227,0,86,250, +45,250,247,5,186,13,246,15,44,20,106,25,223,26,2,26,50,24,67,23,101,26,43,23,71,15,59,19,10,22,27,15, +38,11,227,1,29,248,118,0,117,10,131,9,116,7,221,5,198,2,223,250,60,242,247,244,184,254,104,6,17,9,60,5, +174,1,29,255,173,252,142,2,158,8,73,5,236,0,6,253,20,250,50,252,45,253,248,254,11,6,31,6,198,253,191,249, +219,246,240,238,249,233,229,233,113,233,174,235,140,240,35,241,150,238,0,236,233,231,91,232,111,245,46,5,22,8,188,3, +209,0,54,249,200,240,206,240,215,244,14,255,190,17,31,29,210,26,97,20,199,14,29,11,200,8,200,8,176,12,59,12, +224,6,115,10,144,17,169,12,192,4,215,3,200,2,162,2,6,7,253,7,118,2,9,250,45,247,158,3,56,15,124,3, +146,241,184,242,153,251,198,248,166,241,227,244,85,253,191,0,58,0,128,253,15,249,121,245,197,242,103,242,243,249,170,9, +182,20,26,18,176,11,5,4,76,247,69,245,5,254,118,251,63,244,23,249,99,255,231,249,217,241,91,246,36,251,222,241, +208,239,254,249,153,251,100,254,91,7,216,1,2,248,145,253,99,5,95,3,54,1,107,5,13,5,73,249,75,240,33,242, +133,244,54,246,94,253,176,2,158,254,85,248,145,246,195,245,61,243,252,240,191,238,249,236,91,242,9,254,45,0,136,246, +8,243,109,248,179,251,115,253,85,1,55,5,137,7,38,9,78,12,139,16,156,18,180,15,43,9,95,5,235,3,148,1, +225,2,242,5,211,6,255,7,233,7,205,11,248,19,151,14,22,1,53,254,153,254,87,252,203,252,43,0,117,4,217,1, +32,251,210,253,36,1,16,252,11,248,158,244,71,241,225,243,167,243,195,237,108,237,189,239,96,238,162,238,20,241,241,245, +30,255,101,2,159,255,140,3,24,7,100,3,238,5,47,17,168,22,77,13,198,255,214,254,47,1,75,250,3,247,59,251, +81,253,26,255,223,2,18,5,11,6,242,11,196,20,22,17,96,3,80,254,126,3,225,12,125,19,156,16,8,12,165,8, +173,3,213,3,54,4,98,0,219,3,166,11,34,11,12,3,239,250,216,247,23,245,77,239,37,240,149,249,147,1,106,4, +141,0,12,246,118,241,95,247,34,252,246,2,212,12,139,9,207,6,156,16,210,14,95,9,195,12,240,0,253,244,155,254, +149,2,196,250,131,248,57,255,29,9,125,5,168,253,232,7,30,17,225,12,94,6,227,252,183,248,118,252,193,251,120,253, +32,4,251,5,98,5,74,3,92,1,50,3,225,2,173,1,108,2,137,253,140,245,58,244,228,246,96,247,83,250,193,2, +88,8,118,8,165,3,241,246,91,239,214,245,101,251,130,251,40,252,204,252,255,1,32,6,209,253,205,246,46,253,253,6, +47,11,232,5,208,253,133,255,216,3,216,1,239,254,70,251,227,251,248,6,238,14,16,14,60,8,237,248,82,236,244,235, +80,233,233,233,253,247,242,255,106,253,96,2,228,9,203,4,86,254,165,6,183,15,245,12,174,10,157,7,132,253,73,250, +86,254,254,0,116,6,193,9,229,5,146,3,133,3,229,255,109,247,154,237,254,231,87,229,154,230,148,240,5,250,189,252, +120,254,214,248,34,237,4,239,217,247,36,245,33,243,126,250,208,255,4,1,206,253,16,248,1,251,70,1,249,0,23,1, +205,3,197,5,229,7,123,9,92,11,252,12,77,12,37,9,3,5,135,7,73,10,186,254,2,245,31,249,192,252,154,0, +223,3,110,254,62,252,81,253,179,249,110,253,29,5,55,4,6,4,84,9,163,14,140,19,177,18,253,8,53,5,247,15, +154,24,144,23,59,24,32,22,75,16,204,22,47,29,166,18,42,10,230,11,53,14,27,21,178,26,2,18,221,4,211,254, +58,254,255,1,207,2,63,245,227,232,76,247,26,7,230,242,11,221,43,234,208,250,30,255,57,6,223,7,148,6,185,11, +92,10,105,4,231,0,176,252,196,251,162,246,0,238,168,242,224,250,12,253,56,252,28,243,53,231,188,215,81,205,136,230, +63,1,178,239,251,222,63,238,161,250,129,243,76,232,89,232,99,238,60,241,9,249,38,3,157,8,6,11,33,9,77,16, +53,28,65,20,147,14,127,28,82,34,187,30,194,29,3,24,161,18,233,22,87,26,143,14,97,1,123,9,43,22,10,19, +128,7,81,247,150,234,122,231,122,228,21,232,14,240,68,232,13,224,159,232,119,239,31,238,69,235,134,228,12,231,148,251, +122,5,196,247,171,236,115,238,15,245,244,251,133,255,1,7,100,13,163,5,80,0,148,0,235,252,36,4,53,14,43,18, +148,27,108,23,4,11,132,19,188,29,160,31,26,22,10,239,34,208,214,211,56,220,193,234,81,253,58,247,219,230,180,229, +250,235,138,235,219,234,134,248,253,4,202,1,173,255,75,252,111,241,116,242,216,248,109,241,116,238,183,254,238,9,200,4, +205,1,202,251,172,246,111,21,84,50,35,21,233,243,202,253,205,18,107,36,238,46,40,42,114,35,77,26,167,10,239,0, +27,254,148,2,118,17,81,33,69,35,122,15,189,255,142,10,170,12,141,244,221,228,48,229,128,232,253,241,13,253,189,1, +196,255,92,244,76,231,206,232,66,243,62,248,165,253,238,1,254,249,204,244,235,246,75,240,228,236,90,244,148,249,203,254, +236,1,180,2,161,7,124,1,82,249,202,6,240,13,163,251,246,237,25,245,107,255,103,252,254,246,28,250,106,253,31,3, +106,8,129,5,204,5,19,5,166,3,42,18,10,32,221,37,20,38,196,10,152,235,118,231,183,235,133,251,202,20,186,27, +78,25,164,23,112,19,218,19,217,19,152,19,205,20,148,13,55,6,224,1,91,251,130,254,240,7,155,10,197,9,73,9, +168,6,66,252,220,241,171,241,62,242,170,247,51,4,244,2,148,250,18,249,128,247,5,247,194,246,185,252,244,9,32,2, +24,244,137,1,109,11,101,255,217,247,121,251,109,2,138,5,205,8,112,22,76,32,105,31,72,28,45,15,241,252,218,243, +46,241,181,245,206,251,12,249,243,246,239,247,33,248,84,0,11,7,12,254,248,242,97,238,151,234,93,232,0,228,218,221, +136,221,21,218,170,213,91,223,215,228,2,222,79,223,141,220,190,214,125,238,98,9,253,4,215,255,61,7,188,8,72,8, +33,8,215,5,251,10,18,19,93,22,60,29,202,35,215,29,204,22,241,28,83,37,133,33,82,21,39,11,227,4,162,254, +49,250,212,251,121,1,199,7,140,11,37,9,243,2,189,252,213,247,84,246,77,248,66,253,80,2,44,2,238,1,205,5, +105,6,81,6,101,10,46,9,164,2,135,255,129,252,101,249,49,252,63,255,242,252,224,249,116,248,253,247,170,249,68,254, +10,2,178,252,214,243,44,248,205,0,185,254,69,255,105,4,189,1,229,0,61,1,142,247,249,242,190,247,87,248,22,249, +53,248,99,240,113,238,96,241,47,243,1,252,89,3,141,1,49,1,192,254,199,251,231,6,54,18,25,16,30,13,22,8, +51,1,158,8,74,18,203,13,86,9,169,6,94,0,123,5,6,14,83,5,175,249,159,245,95,242,40,248,44,2,155,1, +13,2,124,7,65,5,218,255,207,254,164,0,151,1,101,255,122,0,9,2,136,251,241,246,248,249,28,255,57,1,120,248, +96,239,159,240,68,239,57,237,59,240,167,239,127,240,77,244,180,246,82,250,157,250,98,255,36,12,31,13,24,6,248,1, +181,253,180,0,159,6,248,7,202,9,149,7,231,3,87,2,66,0,55,4,104,7,127,10,36,21,60,20,210,14,101,20, +173,18,250,14,147,17,191,18,65,22,104,18,225,10,107,6,138,249,210,250,186,3,251,249,122,251,254,253,96,255,95,41, +79,66,104,40,175,9,108,214,45,172,217,191,177,222,130,242,41,9,240,19,160,13,194,231,53,195,249,209,198,232,186,239, +63,250,175,248,37,242,151,238,128,228,140,226,222,235,140,1,71,25,57,22,201,13,244,14,143,6,188,3,39,9,122,9, +120,10,209,5,243,1,72,5,187,0,0,255,90,4,79,3,8,5,133,10,134,11,163,7,132,255,222,254,26,4,26,3, +19,3,46,5,217,2,68,254,210,250,245,250,199,250,40,252,94,0,6,252,17,251,138,6,176,9,69,6,155,3,52,252, +106,249,169,249,157,251,127,6,182,11,95,14,251,19,47,5,6,247,9,6,154,14,96,2,145,254,106,5,189,7,84,3, +12,2,235,10,28,17,219,10,205,2,176,255,2,255,177,254,109,252,195,250,100,250,34,245,115,241,220,247,217,250,62,243, +209,238,34,240,123,241,85,247,115,254,233,252,132,247,177,244,239,241,30,240,167,238,38,237,192,240,158,242,117,240,109,249, +232,4,50,1,250,251,54,255,139,1,98,0,161,254,216,254,112,255,36,253,18,252,186,253,129,0,253,4,227,8,125,13, +188,18,169,18,30,14,228,7,26,2,223,0,128,2,87,4,114,4,211,0,236,252,19,251,147,251,44,253,127,253,123,254, +165,254,54,255,23,254,108,237,174,224,114,238,90,248,79,247,145,0,217,3,170,1,249,12,42,18,145,4,133,247,111,249, +204,3,190,6,89,2,143,254,13,253,134,0,56,5,195,9,135,13,104,5,58,252,30,1,68,5,58,4,11,6,142,6, +198,4,213,0,241,253,64,4,122,11,26,8,35,0,86,253,117,253,54,250,244,249,69,0,99,3,12,3,170,2,151,254, +7,251,243,252,82,255,189,253,127,252,118,0,99,5,138,7,137,6,134,1,161,253,217,249,108,243,87,246,172,0,193,1, +223,252,179,252,68,254,202,251,40,253,37,10,109,19,159,16,25,12,23,4,120,253,165,4,225,11,97,6,127,254,219,254, +156,4,79,5,236,1,50,0,30,253,157,252,33,1,84,2,82,0,25,1,16,5,184,5,94,0,154,254,197,255,191,251, +134,249,100,253,13,2,119,4,204,5,130,9,137,9,173,3,210,255,4,249,17,242,76,244,240,244,9,246,47,254,125,0, +125,0,189,3,127,2,61,1,76,255,201,252,81,2,122,2,114,249,176,250,201,2,246,6,150,9,5,9,138,7,235,7, +146,7,80,13,208,21,159,16,49,8,48,12,12,14,93,8,143,6,205,3,224,254,122,0,106,3,73,3,148,4,76,7, +123,8,15,7,49,5,247,0,107,249,152,249,204,255,40,255,141,252,188,251,47,249,233,248,82,248,118,244,7,243,124,243, +111,243,81,244,231,246,191,250,166,253,35,255,150,255,24,0,112,0,63,252,104,250,141,0,33,4,253,6,146,11,15,10, +158,9,49,7,51,0,204,8,109,17,130,4,205,251,150,255,14,3,108,7,83,7,139,5,68,6,156,255,80,252,167,3, +196,4,242,254,56,249,105,244,241,244,1,248,137,250,186,252,148,251,74,251,79,252,254,250,109,254,169,3,45,1,178,253, +55,252,81,248,144,247,254,251,227,255,124,3,25,6,235,3,132,2,101,6,145,7,212,2,147,254,255,253,241,255,83,255, +4,252,60,254,131,1,223,253,182,251,107,253,164,252,248,251,16,253,70,255,240,2,188,3,80,2,131,3,157,4,29,0, +148,248,126,249,56,2,159,4,113,4,80,9,102,9,213,5,214,8,190,15,132,20,97,18,201,10,67,5,167,1,171,255, +254,254,233,251,134,251,23,251,173,243,244,242,230,248,38,246,72,246,71,0,153,3,85,255,236,250,158,245,187,243,9,246, +32,244,231,237,232,237,206,245,160,249,64,248,43,251,25,254,97,253,124,255,105,0,153,252,195,250,24,251,72,250,135,248, +190,248,167,253,160,0,153,255,24,1,68,0,227,254,86,7,134,12,123,2,101,246,102,242,217,244,24,250,208,254,52,2, +136,7,6,20,221,30,160,26,13,19,195,20,212,22,134,19,42,14,196,10,147,6,215,249,100,236,145,230,35,227,84,228, +91,231,118,226,47,222,66,226,70,232,104,237,75,245,106,2,196,13,252,16,50,18,12,20,113,17,236,8,32,2,216,5, +249,10,228,6,4,0,37,250,120,246,195,245,164,242,189,239,227,239,253,241,139,248,168,252,161,252,154,255,198,1,198,4, +192,8,169,4,52,0,81,1,91,1,222,255,248,253,210,254,189,255,70,253,161,0,74,1,153,249,129,253,235,5,185,5, +94,7,165,6,182,2,101,2,60,255,46,254,217,0,48,0,92,1,114,254,25,249,130,2,59,12,203,6,15,255,214,247, +34,239,100,236,75,238,190,237,164,233,47,230,119,231,226,235,254,239,17,246,139,253,9,254,12,253,91,5,234,9,87,4, +215,3,44,9,129,13,74,17,204,18,255,18,56,19,65,20,170,22,191,19,226,13,199,12,72,12,45,12,191,12,118,10, +148,9,211,7,109,4,86,7,244,9,184,9,14,13,52,12,187,9,142,12,28,10,153,6,81,7,89,2,114,0,190,0, +63,254,171,20,57,37,210,246,196,203,177,224,224,248,190,249,200,253,222,0,84,4,190,8,134,2,218,246,180,239,223,248, +69,4,143,245,108,231,68,237,143,240,175,245,23,249,126,238,131,233,182,233,118,234,157,246,80,0,119,3,70,5,83,252, +153,243,37,244,82,245,194,245,221,243,46,245,74,250,107,247,193,246,121,253,7,0,61,4,36,9,163,6,118,3,67,1, +140,1,116,7,251,10,13,9,206,5,90,4,17,5,150,4,26,4,22,4,168,3,148,6,204,7,135,4,195,4,8,4, +210,255,55,3,202,6,205,255,240,0,49,16,0,22,254,18,152,17,81,7,200,0,115,11,40,18,174,19,238,20,249,7, +219,252,237,0,151,2,140,1,126,2,107,1,190,0,230,252,2,249,1,253,146,0,16,2,243,5,226,4,153,254,144,252, +48,255,72,255,107,252,246,249,223,246,2,246,21,246,0,242,79,243,222,249,195,249,250,248,164,251,174,0,111,9,1,11, +6,7,8,6,55,4,241,11,83,19,53,255,39,237,144,246,39,254,183,253,8,0,194,251,69,246,45,250,23,254,21,252, +238,252,130,3,207,4,40,1,98,2,27,1,9,252,227,254,83,1,9,253,16,255,215,6,225,8,92,4,187,255,14,0, +171,1,200,255,99,253,245,252,123,255,111,2,166,255,183,251,182,252,127,255,32,4,220,7,90,8,62,14,164,18,206,9, +46,3,147,3,209,254,246,0,47,12,232,8,18,253,187,252,241,255,89,254,60,254,114,1,154,2,181,255,105,0,228,5, +72,6,237,1,128,253,104,252,151,4,52,12,76,11,47,11,7,9,123,2,85,252,178,241,114,238,107,249,67,253,20,253, +204,3,212,3,123,253,154,248,245,246,2,254,90,6,58,8,3,6,250,255,169,251,128,249,114,248,185,254,247,0,236,250, +34,254,128,6,40,7,137,2,254,253,69,255,191,0,48,250,62,243,139,241,24,244,5,247,80,246,3,248,244,252,162,0, +8,4,173,3,98,1,88,0,160,252,76,253,163,3,107,6,179,7,158,6,80,4,140,8,42,12,195,9,103,7,223,8, +123,11,144,6,240,0,53,4,108,5,169,6,234,9,69,255,14,243,230,245,68,250,136,250,37,254,11,6,79,7,203,249, +207,239,96,244,191,248,255,248,112,250,59,0,240,5,143,254,133,244,176,245,245,247,13,253,186,3,255,251,25,242,245,244, +193,250,25,255,194,0,190,253,120,253,96,1,102,4,17,6,109,4,237,254,58,252,5,255,49,3,146,7,88,10,198,8, +33,7,202,5,217,1,42,1,79,3,245,1,238,0,251,1,127,0,98,252,133,250,185,253,170,253,84,247,168,246,80,249, +101,247,10,249,54,252,233,249,210,250,228,255,252,1,65,3,240,4,131,5,136,5,197,3,248,255,45,252,171,250,21,252, +161,252,98,249,55,247,15,252,163,1,7,254,66,248,136,249,235,251,238,251,40,250,240,245,183,245,158,248,53,249,94,254, +114,4,1,1,142,252,26,253,136,254,158,0,249,0,243,255,104,0,119,255,184,253,141,251,55,249,151,254,246,7,227,8, +182,4,219,2,122,1,35,255,31,253,194,250,244,248,184,251,215,255,78,255,148,253,56,252,185,250,32,253,73,255,185,254, +117,0,37,0,36,253,237,253,229,254,166,253,139,252,4,252,130,254,86,1,237,1,97,4,42,6,114,4,160,3,228,3, +174,2,160,0,91,255,12,254,123,251,82,251,214,251,233,246,199,243,89,248,57,253,32,0,118,1,193,254,165,252,93,253, +110,251,174,247,214,246,98,247,255,247,90,252,44,2,60,1,252,252,233,253,160,254,40,252,76,254,175,1,94,1,91,4, +197,7,207,4,128,2,45,3,59,2,154,1,246,1,233,0,2,255,17,255,179,0,131,254,240,251,167,255,16,2,169,0, +60,2,145,3,92,2,26,1,189,255,187,0,211,2,144,3,108,4,225,2,201,1,77,5,201,5,216,2,71,2,130,255, +54,251,255,252,240,1,65,3,242,0,242,253,94,254,88,3,111,5,120,2,187,1,157,1,141,255,212,255,8,0,231,1, +177,8,75,10,181,6,142,7,41,10,157,9,206,5,128,4,107,8,67,7,189,2,45,4,70,6,171,8,245,10,222,5, +18,1,240,1,197,2,235,3,193,3,145,1,73,1,18,1,109,0,172,0,162,0,101,255,58,251,125,248,19,252,138,1, +143,4,234,1,174,251,33,251,213,254,216,0,96,1,197,255,175,254,198,255,58,0,52,1,205,2,179,5,211,9,200,7, +163,2,232,2,105,3,54,2,7,3,204,1,135,254,255,255,138,4,208,4,25,3,146,4,56,5,122,5,165,8,25,8, +49,5,152,7,192,9,100,7,140,5,125,7,170,9,153,3,142,250,205,252,27,3,43,1,61,254,101,0,164,1,50,255, +170,255,246,5,121,8,70,3,76,252,36,242,173,232,78,235,248,242,114,245,31,249,73,0,119,6,98,11,212,14,133,18, +228,22,145,23,175,19,246,11,97,4,95,3,183,3,189,1,226,2,12,3,116,0,216,0,21,0,246,253,190,254,230,252, +34,250,4,252,148,253,104,254,145,255,0,252,145,247,62,248,238,249,94,250,3,251,35,251,86,252,5,255,218,255,80,0, +3,2,210,1,77,1,71,3,19,6,79,8,176,7,119,4,38,2,56,255,210,252,214,254,198,255,252,251,248,249,223,253, +216,1,32,255,215,251,6,254,195,254,228,252,74,252,43,251,28,251,218,250,106,248,177,249,36,252,21,252,142,253,60,252, +130,249,251,253,242,2,2,4,3,5,48,2,8,254,202,254,205,255,106,255,6,0,179,254,182,251,112,251,86,253,27,253, +4,252,77,255,247,2,51,1,16,254,110,250,172,246,90,249,105,251,254,244,148,241,160,243,190,244,77,250,2,0,52,253, +115,251,112,255,147,1,140,0,8,255,182,254,61,255,206,254,22,254,126,253,47,254,54,1,153,3,242,4,228,4,238,0, +220,252,85,251,87,250,90,250,109,251,119,253,206,254,104,252,171,249,204,248,224,248,185,251,188,253,155,253,116,0,153,2, +184,1,57,3,248,5,56,7,34,8,242,8,157,8,122,5,180,2,201,3,107,4,203,2,113,0,171,252,168,249,157,247, +244,244,230,244,147,246,92,246,232,246,127,249,237,250,152,250,82,251,20,254,152,255,116,255,250,0,199,1,254,254,118,252, +56,251,159,248,32,246,213,245,89,247,116,249,44,250,71,249,121,248,254,248,196,250,174,251,148,252,65,0,55,3,71,3, +186,2,125,0,147,254,79,255,182,254,134,253,244,253,241,254,158,1,244,2,168,2,27,6,193,8,245,6,208,4,100,3, +221,4,183,6,174,4,255,4,221,6,93,5,187,4,77,3,9,1,114,2,171,1,240,254,141,255,59,254,163,251,18,253, +190,254,24,254,97,253,58,253,223,252,142,253,178,255,137,255,180,254,72,1,146,2,68,0,203,254,144,0,11,2,125,252, +159,247,211,254,150,5,205,1,87,253,229,252,94,252,115,247,208,243,131,252,26,6,185,3,192,255,50,253,92,250,23,255, +183,5,80,5,52,4,45,6,132,7,90,6,239,2,158,254,176,252,114,255,76,2,29,1,65,0,157,2,237,4,98,3, +240,0,158,4,180,7,120,2,29,0,65,4,87,6,230,7,107,8,161,4,150,1,117,0,225,255,106,0,129,0,10,2, +85,3,13,255,44,250,57,249,110,250,137,253,235,254,58,253,46,253,73,254,97,254,244,253,198,253,17,0,201,2,77,3, +159,3,137,1,229,253,74,255,206,2,139,4,71,6,138,5,193,2,152,1,227,0,215,0,150,1,66,1,216,0,89,0, +140,0,16,3,78,4,249,2,237,1,177,1,165,2,184,3,153,3,10,4,139,4,201,3,248,2,87,3,99,5,227,5, +120,3,20,3,175,3,70,1,0,0,45,2,59,4,157,4,30,4,206,3,85,3,184,1,240,255,158,255,120,1,241,3, +91,4,245,2,142,1,208,0,126,0,89,0,43,0,174,254,112,253,90,255,204,0,111,255,61,254,153,252,162,251,249,253, +2,255,40,253,29,253,43,255,199,0,64,1,139,1,186,1,44,0,216,254,142,0,252,2,46,4,155,4,25,4,11,3, +184,1,62,0,85,0,239,2,250,5,194,6,2,5,191,2,71,2,152,3,22,4,175,2,10,1,238,0,164,1,192,255, +25,253,65,255,253,2,71,4,118,5,230,4,222,2,46,4,77,6,175,6,71,6,34,2,175,252,7,252,37,252,101,248, +111,244,76,242,211,241,161,244,250,246,252,244,63,244,198,246,124,248,98,251,160,254,74,253,41,251,33,252,180,254,77,2, +210,4,28,5,61,5,125,5,237,4,3,3,190,1,51,4,51,7,132,6,78,4,111,3,57,4,163,5,179,4,249,255, +18,253,45,1,246,4,135,1,167,253,254,253,110,254,37,252,197,248,128,249,232,253,228,255,39,0,253,255,16,255,229,0, +254,2,214,2,43,3,100,0,173,252,235,255,163,3,163,2,121,1,134,254,244,250,87,252,65,254,44,253,170,253,247,255, +41,1,78,1,158,0,223,255,199,255,252,254,103,253,120,251,55,250,208,252,190,255,180,252,77,249,170,251,177,253,85,250, +85,247,129,250,35,254,169,252,201,251,41,253,174,253,239,255,136,1,139,0,252,1,168,1,98,254,61,2,37,8,150,5, +238,2,152,6,94,7,172,2,139,1,200,3,49,2,38,0,229,1,76,3,84,2,230,255,28,254,214,255,93,2,45,3, +156,4,146,6,19,7,166,5,172,3,4,3,124,3,55,5,31,6,241,2,150,0,182,1,201,1,12,3,21,6,193,5, +235,3,225,1,223,255,200,1,61,3,58,1,220,0,71,255,130,251,123,251,185,251,99,249,158,248,30,249,153,250,137,253, +118,254,235,251,114,248,172,247,103,248,142,246,38,245,216,245,165,245,80,247,194,250,87,252,97,253,33,253,67,253,57,1, +235,3,92,4,129,5,233,4,141,4,99,5,245,4,3,7,33,10,61,9,250,7,184,8,82,8,143,4,231,0,99,2, +36,3,140,254,248,251,73,253,54,0,241,4,163,7,107,8,15,9,150,5,186,255,186,251,174,248,35,247,34,246,175,242, +170,239,126,240,116,241,233,238,71,236,92,236,232,238,21,245,169,250,162,250,212,249,165,250,19,251,17,254,123,2,168,3, +241,3,45,6,131,7,107,5,21,3,7,4,144,5,107,5,160,4,142,2,159,0,233,1,229,3,31,2,172,254,52,255, +202,2,211,3,141,2,168,2,160,2,12,255,215,251,173,254,120,2,127,1,172,255,214,254,197,253,134,253,233,252,8,252, +226,251,200,249,72,246,127,244,202,243,48,242,4,240,7,240,73,242,130,244,231,245,184,244,139,243,106,246,64,248,190,247, +120,249,56,251,145,252,65,255,170,0,42,0,7,255,239,0,29,5,140,2,89,254,192,2,198,7,81,9,248,10,162,8, +133,4,185,4,134,6,179,6,203,3,229,254,200,252,20,254,45,0,165,1,190,1,99,1,247,2,136,7,113,10,232,7, +180,5,45,6,77,4,100,1,137,255,159,252,43,250,78,249,46,249,128,251,241,254,92,255,32,255,132,2,31,5,176,3, +136,3,168,3,138,0,166,255,219,255,159,252,241,250,0,250,20,248,184,250,18,253,208,251,190,252,254,250,84,246,61,248, +79,252,172,253,64,0,115,2,10,3,242,2,144,2,106,4,25,5,92,2,170,1,223,1,59,0,26,0,150,1,0,2, +69,0,114,255,181,1,49,1,193,254,236,0,198,2,2,2,207,2,15,3,171,2,130,2,97,0,167,254,220,254,31,0, +148,1,204,0,54,0,90,1,94,1,204,2,63,5,132,4,249,3,204,5,205,6,116,5,60,4,163,6,66,8,117,5, +159,3,180,2,182,1,54,4,183,5,138,4,207,5,126,6,164,5,45,8,86,11,45,11,160,9,88,8,124,7,37,7, +179,6,14,5,170,1,121,253,82,251,2,253,94,255,137,255,185,255,115,0,17,0,138,0,167,2,34,3,165,1,56,1, +229,1,45,2,94,2,207,1,5,1,161,2,117,5,253,6,177,6,14,4,97,1,70,1,240,1,210,1,209,1,97,2, +34,2,184,0,197,0,110,2,68,4,146,7,252,11,20,16,8,18,45,15,165,10,126,7,93,4,232,3,241,5,124,5, +233,3,138,3,24,3,113,2,85,0,171,251,39,248,172,249,6,253,118,253,95,253,61,254,26,254,150,255,254,2,74,5, +7,8,214,10,64,11,113,10,0,9,202,6,201,4,163,3,242,2,84,1,55,255,52,253,220,250,211,249,121,249,167,248, +105,249,244,249,253,249,93,253,49,1,229,2,149,5,21,9,168,11,55,12,115,11,199,12,196,13,60,10,255,5,98,4, +145,3,34,2,45,0,236,253,138,251,8,250,113,249,205,248,73,250,201,254,58,2,65,2,180,0,12,0,220,254,225,250, +222,247,177,247,233,248,238,253,8,3,150,2,26,1,234,255,205,253,191,254,112,0,94,0,151,1,97,1,2,255,78,255, +117,0,131,255,94,254,116,253,142,252,203,252,18,253,174,251,34,250,78,249,236,248,33,251,182,253,55,252,208,249,57,248, +229,245,97,245,51,245,105,243,219,243,49,245,103,245,68,247,183,249,148,251,209,252,81,251,205,248,134,247,221,246,1,247, +241,246,129,246,130,246,95,245,16,245,165,248,176,252,26,254,20,254,161,253,230,252,238,251,216,250,36,250,41,251,125,254, +136,0,156,254,50,253,48,0,22,3,168,0,12,253,16,254,60,255,211,251,146,248,136,248,29,249,163,249,44,251,11,254, +113,0,97,0,22,1,153,4,63,6,226,4,248,3,48,3,80,1,142,255,143,254,124,253,164,251,99,250,147,250,119,250, +255,249,214,249,55,249,135,249,33,251,169,251,230,251,91,253,140,254,74,254,217,252,69,251,156,250,171,251,84,254,165,255, +213,254,80,255,173,0,157,0,187,0,184,1,104,2,214,2,44,3,252,2,132,1,149,255,247,254,26,255,231,254,120,254, +10,255,16,2,110,4,68,3,61,2,86,2,11,1,11,0,213,255,160,254,243,253,60,254,101,253,84,252,142,252,175,251, +220,249,145,251,166,253,96,250,186,247,220,249,13,251,215,250,68,252,249,253,99,254,13,253,185,252,186,255,61,0,150,251, +128,249,187,252,74,254,83,252,52,253,122,1,197,4,207,8,72,14,161,17,248,17,58,14,233,10,121,15,75,18,77,10, +210,3,67,5,158,5,56,2,187,254,235,252,149,252,63,251,172,248,103,247,79,247,144,247,181,247,96,245,225,242,14,246, +111,250,54,249,128,247,220,248,197,249,86,250,195,249,60,247,217,246,189,247,250,247,107,251,188,255,0,255,129,253,241,1, +160,6,247,2,248,253,181,0,143,4,157,4,35,5,209,6,202,8,114,10,77,11,240,12,120,12,236,8,74,7,177,5, +113,2,252,1,153,3,70,6,84,9,162,7,251,3,77,4,1,6,254,6,191,5,206,0,207,254,50,2,13,3,176,0, +16,1,216,2,197,1,77,254,168,251,92,252,57,254,30,254,125,254,114,255,68,254,88,255,62,3,49,3,48,1,202,0, +63,0,184,1,50,3,48,0,157,253,104,253,126,253,126,0,213,2,135,255,134,252,121,254,239,0,189,255,41,254,11,1, +6,5,252,5,191,6,97,8,67,9,224,9,101,9,201,6,116,4,244,4,168,6,213,5,27,3,3,2,114,2,211,2, +126,3,171,4,83,6,156,8,19,10,131,8,88,5,239,4,31,6,22,4,132,1,209,1,169,0,106,253,159,251,155,250, +245,250,8,253,160,254,167,1,212,4,54,3,89,0,236,255,55,255,202,253,236,252,227,252,75,253,244,252,126,253,56,1, +143,5,243,6,87,8,2,14,133,18,60,16,163,11,230,7,136,4,157,2,236,1,90,3,29,6,80,6,86,5,207,4, +168,3,97,3,211,3,193,4,119,6,234,5,162,3,14,2,20,0,241,253,152,252,160,252,243,253,130,254,212,254,196,255, +32,0,120,0,162,0,194,0,90,1,79,0,243,254,146,255,146,255,105,253,209,250,81,250,7,251,132,249,75,248,111,249, +228,249,112,250,77,251,148,250,104,250,85,251,74,252,34,254,180,0,9,3,85,3,231,1,109,1,119,0,179,254,179,255, +52,1,6,254,111,250,60,255,211,6,173,5,69,3,91,8,25,12,184,10,184,8,241,5,229,3,52,4,112,4,12,3, +8,0,111,253,133,252,152,251,244,250,169,251,215,252,41,254,133,255,177,254,151,251,68,252,205,254,168,249,184,244,55,250, +177,255,162,255,126,255,153,254,96,254,46,1,210,2,160,1,114,0,158,1,27,3,89,1,180,254,175,253,135,252,127,250, +211,248,145,249,70,251,39,251,167,251,155,252,212,252,250,255,42,3,22,3,83,3,19,1,47,252,152,252,215,254,250,252, +11,252,195,252,206,251,35,251,212,250,19,250,253,250,33,252,138,251,55,251,175,251,211,251,191,251,198,251,237,251,166,251, +83,251,3,252,84,252,127,251,112,251,123,252,55,252,51,249,28,247,244,249,105,253,75,253,232,252,90,253,214,253,57,0, +107,1,101,254,218,252,47,255,144,1,130,4,81,7,86,6,49,4,25,3,85,1,85,0,69,255,39,252,167,250,37,251, +160,250,107,250,4,251,249,250,126,250,160,250,101,252,36,254,156,254,175,255,116,0,224,255,95,255,106,254,243,253,235,254, +201,255,186,1,254,2,240,255,54,252,187,249,252,247,162,250,181,254,74,254,63,252,164,251,56,252,36,254,238,255,163,0, +154,0,67,0,45,0,60,255,39,254,5,255,102,255,249,253,242,252,88,252,150,252,40,254,131,254,121,253,190,253,131,255, +206,0,192,0,134,0,7,1,75,1,84,0,17,255,116,255,215,0,2,1,43,1,227,2,116,4,180,4,127,4,69,5, +82,6,166,4,83,2,189,3,54,5,128,2,120,255,86,255,241,255,182,255,224,254,189,252,55,250,37,250,44,251,74,250, +215,248,225,247,220,247,172,250,65,253,13,252,96,250,152,250,2,252,197,254,172,0,212,255,143,254,117,254,217,254,164,255, +20,1,134,2,92,3,70,4,159,4,220,2,59,1,145,1,232,1,2,2,147,2,67,3,157,4,119,5,109,5,135,6, +217,6,249,4,114,3,230,1,130,0,166,0,8,0,63,255,30,255,197,252,142,251,130,254,224,0,89,1,12,0,164,251, +163,248,83,249,149,250,129,252,181,254,13,255,85,254,184,253,124,253,130,253,215,253,69,255,188,0,146,1,152,2,137,2, +54,2,176,3,238,4,107,5,20,6,69,6,236,6,180,6,248,4,33,6,3,8,194,5,38,4,30,6,51,7,42,7, +190,7,226,5,93,3,35,6,38,9,99,6,156,3,71,3,144,2,10,2,176,0,67,254,78,253,96,254,200,255,210,254, +105,253,48,254,165,254,97,255,41,0,99,254,230,252,78,252,72,252,157,253,161,253,209,253,193,254,209,255,209,2,115,1, +192,253,90,0,5,3,61,5,9,8,216,4,32,2,248,1,98,0,119,0,222,254,241,253,96,255,224,253,10,1,241,5, +141,10,170,25,234,32,3,23,231,10,226,247,161,232,179,235,163,241,95,247,113,254,54,2,125,3,39,250,232,239,28,243, +57,247,38,252,225,1,181,252,131,247,28,248,233,248,93,253,251,2,28,10,245,17,245,17,242,15,115,16,33,16,106,19, +46,23,152,20,134,18,231,22,74,22,232,7,199,252,185,255,245,3,172,5,163,7,22,9,184,9,224,2,133,248,99,245, +61,245,131,246,40,250,207,251,102,252,120,250,179,246,173,245,224,243,149,241,5,242,64,244,97,247,220,246,197,245,23,250, +113,252,240,250,178,252,251,3,113,10,132,6,79,1,78,4,74,5,4,6,42,9,152,5,165,1,16,1,161,255,204,1, +254,4,79,7,1,10,102,7,34,5,39,8,162,7,43,2,25,253,232,251,11,253,1,253,143,254,64,255,117,253,204,0, +62,5,53,5,225,4,221,2,239,255,122,255,70,255,48,0,200,1,127,1,223,0,153,255,19,254,26,255,166,1,168,2, +34,1,183,254,180,252,98,252,123,254,91,255,48,255,215,0,95,1,156,1,7,3,174,1,23,0,48,1,43,2,243,2, +213,2,74,1,125,1,97,3,34,4,215,2,134,1,7,2,99,2,227,1,140,1,75,0,226,254,114,254,218,253,134,253, +115,253,66,252,26,251,98,251,108,252,161,253,132,253,118,250,201,247,47,249,99,251,205,250,156,249,82,250,179,251,204,251, +105,251,188,251,214,252,52,255,212,0,113,255,223,253,234,253,194,253,62,253,41,253,138,253,56,253,236,250,16,249,70,250, +27,252,18,252,129,252,248,254,216,0,46,1,189,0,103,254,220,251,28,252,19,253,232,252,40,253,180,253,24,254,166,255, +82,1,241,0,210,255,244,254,227,253,118,254,115,255,235,253,75,253,181,254,91,255,48,1,54,2,62,254,56,250,135,249, +66,250,226,251,128,252,92,252,185,252,239,250,45,248,186,246,66,246,87,249,134,252,232,249,52,247,111,248,156,250,244,253, +249,255,57,254,115,253,98,254,232,254,209,0,210,1,210,255,7,255,94,255,173,254,202,255,235,1,177,1,117,0,103,255, +120,254,243,253,242,253,39,0,165,1,152,253,102,250,127,253,173,0,195,0,112,0,77,1,27,2,42,255,81,252,200,255, +63,3,243,1,116,0,210,255,71,255,180,253,38,251,133,253,0,1,184,252,184,249,48,254,82,1,249,3,104,6,3,255, +82,247,106,254,30,7,16,3,101,252,41,252,29,254,75,255,92,253,140,245,101,240,171,246,52,254,75,253,200,251,65,253, +177,252,242,252,31,255,253,253,196,251,95,252,193,253,65,254,120,253,224,252,192,253,36,253,112,253,142,3,220,7,39,4, +218,0,240,2,238,5,138,7,160,7,166,6,0,6,40,4,214,1,226,3,4,7,201,4,248,2,186,6,107,9,129,8, +247,5,77,255,249,249,39,254,114,3,184,1,73,255,17,255,50,254,106,253,35,253,183,253,34,255,34,254,130,252,227,254, +231,1,15,1,81,254,83,253,153,254,145,255,25,0,127,1,103,1,67,0,31,0,64,254,46,252,91,253,63,254,140,254, +50,0,149,255,105,253,37,253,255,252,255,252,60,255,91,2,208,2,153,254,213,250,165,252,43,255,137,255,113,0,191,255, +158,254,162,1,193,3,161,1,72,0,8,0,89,0,28,3,9,5,53,5,198,5,95,4,216,2,0,5,177,6,222,5, +9,5,33,4,104,3,195,2,58,2,143,3,10,4,222,1,28,1,10,2,223,1,158,0,0,0,26,2,107,4,116,3, +151,2,238,3,175,4,57,4,136,3,116,3,101,3,77,2,93,2,163,3,170,3,197,3,16,4,199,2,223,0,135,254, +162,252,167,253,168,255,207,255,7,0,126,2,152,4,147,3,43,2,26,2,111,1,59,1,26,2,68,2,102,2,73,2, +156,1,185,1,50,1,146,0,179,1,25,1,13,255,208,0,135,3,2,1,220,253,164,1,212,5,45,2,100,254,96,0, +215,3,53,8,138,10,52,7,172,4,23,5,28,4,122,2,181,1,231,2,44,4,41,1,151,254,17,0,6,1,241,1, +40,2,69,254,142,251,213,252,166,253,225,252,80,252,192,253,83,255,249,253,156,253,221,255,70,1,204,2,148,3,92,2, +148,2,98,2,113,0,54,0,202,255,81,255,191,255,125,252,160,250,216,255,136,4,104,6,28,8,205,7,91,7,218,6, +63,4,89,3,61,4,75,3,15,1,254,254,22,254,51,254,132,254,156,254,171,253,162,254,71,1,225,254,131,251,18,255, +25,3,192,1,222,255,64,0,19,0,61,254,244,252,101,252,222,251,255,252,240,254,104,255,235,254,186,254,233,254,254,253, +198,252,140,253,4,254,226,253,75,255,131,255,6,255,191,0,74,2,240,2,5,3,84,1,243,255,207,255,253,255,126,1, +47,3,10,3,81,2,136,2,106,2,171,0,67,255,133,255,199,255,168,255,47,0,156,1,177,2,92,2,210,1,170,0, +84,255,118,1,200,3,239,1,84,0,84,0,15,0,66,1,42,2,204,0,176,255,247,254,227,253,208,253,105,254,139,254, +133,254,162,254,221,254,141,255,222,255,162,254,83,253,47,253,80,253,150,253,62,254,18,255,67,255,27,254,89,253,140,253, +142,253,210,254,123,0,201,255,189,254,3,255,168,255,85,0,1,0,35,255,247,254,2,254,153,252,29,253,195,254,105,255, +87,255,158,255,11,255,50,253,96,252,148,252,222,252,187,253,154,253,133,252,92,252,166,251,244,250,215,252,35,255,10,255, +87,253,153,252,51,253,23,252,6,250,162,250,114,252,81,253,225,253,102,254,15,255,14,255,197,253,199,252,120,252,136,252, +203,253,112,255,193,255,224,254,197,253,65,253,178,253,70,253,45,251,247,250,109,252,169,251,152,251,121,254,238,255,115,255, +195,255,162,1,19,3,206,0,59,255,189,2,99,4,177,1,94,0,196,0,139,1,187,2,34,2,220,255,246,254,56,255, +234,253,142,252,114,253,25,254,22,254,4,255,246,254,23,253,70,251,74,251,187,251,200,249,240,249,54,255,164,2,146,0, +45,252,235,250,98,253,254,250,78,247,148,253,247,3,186,0,226,253,241,255,125,255,73,251,50,250,48,254,131,1,182,254, +155,249,136,254,22,5,235,250,115,243,16,251,200,255,185,10,30,20,213,253,127,232,72,239,50,249,185,4,45,18,96,22, +119,21,123,6,154,245,230,255,113,10,155,254,215,247,123,254,78,3,106,2,28,255,79,252,49,252,218,0,241,4,136,3, +132,2,251,0,230,253,227,0,192,4,223,2,218,0,212,0,221,0,240,254,165,251,49,251,12,252,225,251,213,252,70,255, +142,1,33,1,29,255,241,254,23,255,84,255,147,0,235,0,72,1,168,1,172,0,97,0,149,1,94,3,126,4,210,3, +102,2,50,1,199,0,3,0,46,254,96,255,125,2,46,2,214,0,44,1,9,2,172,2,68,2,52,2,24,3,155,3, +104,4,131,4,130,3,91,3,221,2,161,1,74,1,140,1,157,1,225,0,89,0,24,1,81,1,77,0,116,255,247,255, +243,0,8,0,25,255,73,0,52,1,186,1,127,2,4,2,159,1,20,3,180,3,28,0,241,252,30,0,139,3,19,3, +6,3,161,1,238,255,173,2,225,4,209,4,123,5,175,4,53,3,199,1,14,0,119,1,50,3,206,1,60,0,86,254, +116,252,206,251,108,251,127,253,33,0,106,255,56,254,9,253,203,251,201,252,240,253,96,255,101,1,214,0,221,255,236,255, +247,255,214,1,61,3,198,2,7,3,63,2,248,0,19,2,37,3,169,2,248,1,21,2,105,2,19,1,31,0,169,1, +137,2,222,0,208,254,207,254,118,255,100,254,33,254,5,255,45,255,102,1,175,3,127,1,22,255,135,255,158,255,122,254, +34,254,216,254,84,255,114,0,193,1,160,0,124,255,85,0,47,1,154,2,96,3,208,1,72,0,234,254,230,253,172,254, +252,255,151,1,27,2,56,0,231,254,93,254,251,253,54,255,101,0,74,1,69,2,234,0,248,254,227,254,2,255,204,254, +207,254,24,255,159,255,106,0,167,1,219,1,28,1,213,1,27,2,178,255,155,253,115,253,245,253,231,254,59,255,199,253, +231,252,66,254,131,255,175,255,156,255,247,254,42,254,162,253,82,253,26,254,252,254,139,254,253,253,51,254,179,254,229,254, +32,255,55,0,7,1,239,0,20,1,67,1,74,1,53,1,147,0,35,0,91,0,41,1,234,1,83,1,157,0,172,0, +77,0,62,0,148,0,31,0,151,255,14,255,112,254,161,254,235,254,39,254,82,253,147,254,107,0,155,255,143,254,47,255, +237,254,103,254,103,254,198,253,97,253,250,252,203,252,158,253,219,253,181,254,165,0,137,0,136,255,77,255,25,255,164,255, +25,0,1,0,17,0,12,255,24,254,159,254,229,255,185,2,1,5,243,3,23,2,236,0,158,255,11,254,196,252,205,253, +27,255,2,253,121,251,107,253,242,254,215,254,22,255,18,0,255,0,253,0,136,0,124,0,45,0,20,255,61,254,224,254, +70,0,24,1,138,1,242,1,88,2,152,2,45,2,233,1,206,1,102,0,157,255,96,1,20,3,43,3,246,2,39,3, +170,3,236,3,205,3,3,4,245,3,214,2,1,2,69,2,10,2,214,0,137,0,133,1,180,1,51,0,203,254,192,254, +173,254,206,253,142,253,16,254,64,254,10,254,199,253,218,253,94,254,238,254,45,255,239,254,214,254,221,254,58,254,50,254, +3,255,178,254,41,254,150,254,200,254,182,254,209,254,78,255,212,255,40,255,145,254,153,255,224,0,220,1,169,2,154,2, +7,2,169,1,136,1,32,1,195,0,46,1,57,1,152,0,80,0,36,0,41,0,176,255,166,254,7,255,126,255,53,255, +197,255,88,255,78,254,45,255,46,0,133,0,144,0,31,0,9,0,1,255,12,254,247,255,96,1,132,0,91,0,160,0, +138,0,235,0,94,1,90,1,95,1,67,2,66,3,14,3,36,2,57,1,187,0,188,0,231,0,92,1,143,1,136,1, +204,1,67,1,136,0,251,0,73,1,195,0,100,0,196,0,41,1,212,0,189,0,163,0,252,255,53,0,124,0,123,255, +62,254,142,253,198,253,22,254,22,254,215,254,44,255,148,254,68,254,123,253,172,252,94,253,16,255,129,0,226,0,52,0, +122,254,58,253,150,252,254,248,170,246,219,250,85,255,68,2,207,4,127,2,244,254,189,253,136,252,197,253,226,255,202,0, +168,2,114,1,3,255,6,1,220,1,250,255,105,255,2,255,90,255,180,0,14,1,213,0,23,0,36,255,137,254,223,253, +159,253,88,253,98,253,154,254,87,255,50,255,175,254,217,253,150,253,250,252,252,251,114,252,132,253,34,254,178,254,128,255, +9,0,27,255,132,254,33,0,136,1,40,1,61,0,126,0,47,1,204,255,118,254,80,255,16,0,140,0,146,0,87,255, +190,254,65,254,123,253,72,254,28,255,92,254,205,253,253,254,77,0,151,255,8,255,232,255,57,0,54,0,24,0,90,0, +54,1,149,255,239,253,107,0,172,2,157,2,172,2,32,2,35,1,157,0,170,255,116,255,33,0,148,253,35,251,66,1, +155,7,50,4,143,0,185,0,179,0,4,4,190,7,107,9,29,11,41,6,109,255,126,1,160,3,39,1,65,255,66,252, +113,249,79,250,29,251,228,247,75,245,223,249,254,254,212,253,248,251,121,250,63,249,104,252,118,255,229,255,6,1,7,1, +69,0,9,1,243,1,127,2,214,2,179,3,139,4,57,3,169,1,65,1,150,0,223,255,32,255,73,255,93,0,51,255, +193,253,174,255,224,1,126,1,177,0,169,1,136,3,41,5,199,6,119,7,199,7,141,9,125,10,119,9,90,8,60,6, +23,4,255,3,39,3,209,0,164,255,249,254,175,253,119,252,54,251,26,250,231,249,98,250,212,250,212,250,172,250,89,251, +207,252,167,253,178,253,33,254,37,255,22,0,168,0,248,0,124,1,16,2,185,1,201,0,151,0,189,0,191,0,196,1, +12,3,28,3,222,2,245,1,184,0,86,2,25,4,113,1,54,255,195,1,56,4,72,3,39,2,195,2,92,3,50,3, +158,2,103,1,182,0,54,1,128,1,108,1,51,1,24,1,125,1,117,0,219,254,232,255,44,1,162,0,50,0,101,255, +124,254,150,254,31,254,115,253,196,253,216,253,138,253,123,253,236,253,47,255,20,0,158,255,249,254,67,255,220,255,20,0, +116,0,162,0,80,0,212,0,97,1,23,1,68,1,170,0,212,255,197,1,53,3,186,1,198,0,27,0,238,254,80,255, +69,0,226,0,42,1,197,255,116,254,63,255,71,0,76,0,239,255,248,255,68,0,167,255,236,254,64,255,109,255,87,255, +230,255,3,0,53,255,227,254,38,255,6,255,1,255,150,255,183,255,0,255,139,254,20,255,176,255,81,255,66,255,67,0, +82,0,38,255,133,254,173,254,246,254,32,255,205,255,6,1,138,1,152,1,129,1,166,0,203,255,42,255,237,254,73,255, +164,254,81,254,236,254,28,253,130,251,164,252,116,253,24,0,59,3,53,0,183,252,156,254,255,255,11,255,95,254,116,253, +88,252,123,251,17,251,158,251,145,252,174,253,236,254,211,255,201,0,23,2,157,2,66,1,198,255,253,255,224,255,211,254, +15,255,247,255,224,255,27,255,211,254,157,255,108,0,94,0,114,255,133,254,27,255,209,255,138,255,4,0,85,0,40,0, +28,1,106,1,186,0,160,0,67,0,17,0,33,0,237,254,38,254,148,255,219,0,169,255,169,253,241,252,21,253,10,254, +131,254,252,252,222,251,39,251,114,250,78,253,226,0,174,0,76,255,20,254,198,253,164,255,28,1,92,1,245,0,191,255, +113,255,101,255,37,255,137,0,250,1,101,2,71,2,155,0,101,255,12,0,38,0,98,255,153,254,194,254,155,0,32,1, +147,255,91,255,175,255,238,254,210,254,125,255,108,0,69,1,252,0,67,1,68,2,6,1,68,255,29,255,248,254,202,255, +30,2,147,3,53,3,170,1,22,1,181,1,72,1,59,1,48,2,171,1,165,0,139,0,85,0,104,255,104,254,179,254, +116,255,253,255,82,1,236,1,148,1,137,1,42,1,109,1,178,1,177,1,197,2,19,1,175,254,30,1,149,2,71,1, +103,1,37,3,27,5,44,0,209,250,73,4,2,11,143,0,77,246,170,239,131,236,124,246,50,1,162,1,1,2,215,6, +136,9,82,4,52,255,48,4,224,8,61,6,24,4,128,2,129,255,11,253,81,251,137,252,179,254,151,253,119,252,196,253, +229,254,106,254,115,254,206,0,170,2,215,2,33,3,178,2,245,1,120,1,53,0,160,0,128,2,243,1,133,0,196,0, +100,0,174,253,4,252,192,254,105,1,83,255,19,253,42,254,8,255,109,254,99,254,127,254,38,254,173,254,33,0,66,1, +120,1,166,0,53,0,81,1,171,1,1,0,15,255,201,255,13,0,99,255,42,255,166,255,4,0,159,255,252,254,165,255, +19,1,26,1,189,0,157,1,73,2,59,2,76,2,67,2,45,2,249,1,146,1,211,1,31,2,76,1,37,0,116,255, +56,255,149,255,43,0,38,0,115,255,194,254,45,254,106,253,36,253,135,253,3,254,15,255,103,0,187,0,56,0,200,255, +164,255,130,255,88,255,206,255,100,0,230,255,39,255,62,255,170,255,201,255,61,0,44,2,70,4,131,4,231,3,67,3, +141,2,147,2,24,2,95,0,171,255,68,0,142,0,81,0,128,0,132,1,189,1,27,1,84,1,234,0,129,255,116,255, +204,255,114,255,97,255,66,255,9,255,213,254,171,254,95,255,173,255,161,254,240,253,19,254,155,254,21,255,137,255,126,1, +207,2,120,0,128,254,136,255,201,255,164,254,70,254,35,254,42,254,63,255,81,0,169,0,33,1,219,1,161,2,103,3, +123,3,189,2,36,2,255,2,169,4,227,3,194,1,55,2,216,2,202,1,213,1,172,1,53,0,105,255,248,254,177,255, +0,1,195,255,240,254,191,0,149,1,14,1,111,0,255,255,75,0,36,0,83,0,233,1,206,1,224,255,94,255,68,0, +56,0,92,254,96,253,52,255,112,1,3,2,151,0,191,254,130,254,215,253,131,252,231,252,115,253,166,254,84,1,88,1, +66,255,157,254,24,255,241,0,201,2,224,1,113,255,158,253,175,253,26,255,151,255,211,255,196,0,35,1,5,1,42,1, +124,1,222,0,126,255,39,0,53,1,155,255,10,255,223,0,160,1,169,1,244,1,217,1,25,2,112,2,234,1,45,1, +188,0,239,255,185,254,154,254,70,255,125,254,10,253,192,252,195,252,95,252,228,251,215,251,73,252,118,251,253,249,47,251, +214,252,34,251,8,250,249,252,77,255,104,254,118,254,235,0,177,1,223,255,101,255,207,0,155,1,42,2,165,2,74,2, +165,1,228,255,174,254,212,0,28,2,22,0,241,254,103,0,126,2,65,0,55,251,161,253,187,1,130,252,134,248,246,250, +86,252,154,0,243,6,179,6,21,4,70,3,12,1,134,253,188,249,118,247,35,248,92,249,56,251,39,255,224,2,143,4, +239,4,235,4,11,3,82,254,227,250,172,251,198,253,191,254,209,254,79,254,2,254,109,255,223,1,167,2,23,2,144,1, +136,0,53,0,88,0,134,254,224,253,233,0,228,2,98,1,7,0,32,1,96,2,195,1,29,1,97,1,66,1,14,1, +14,1,63,0,143,254,27,253,65,253,230,254,134,0,201,0,100,255,43,254,238,253,114,253,227,253,148,255,210,255,67,255, +199,255,107,255,242,253,228,254,215,0,212,254,212,252,248,255,28,2,59,0,167,254,201,252,120,251,198,253,176,0,35,2, +57,2,185,0,33,0,238,255,95,254,184,253,78,253,211,251,205,251,28,253,230,253,63,254,94,254,98,254,217,254,57,0, +16,1,140,0,42,1,79,2,219,1,48,2,70,3,12,3,96,3,11,4,98,3,179,3,245,4,165,3,252,0,189,0, +129,1,17,1,104,0,228,254,188,252,135,252,135,253,154,254,208,255,76,0,201,0,101,0,9,255,81,0,80,1,183,254, +245,251,199,248,130,247,81,252,104,0,221,0,37,1,176,254,112,252,113,254,105,255,59,255,93,0,66,0,1,1,70,4, +103,6,146,6,210,5,235,4,139,4,145,3,81,2,53,2,229,1,181,0,114,0,27,1,11,1,16,1,98,2,60,3, +187,2,237,1,22,1,4,1,32,1,113,255,59,254,95,255,254,255,103,255,220,254,37,254,37,254,216,254,29,255,244,255, +245,0,191,0,109,0,225,255,239,254,164,255,3,1,211,0,230,255,54,255,120,255,76,0,167,255,67,254,46,254,52,255, +18,0,125,255,223,254,255,255,156,0,121,0,211,0,135,255,82,254,109,0,128,2,77,2,170,1,50,1,87,1,14,2, +254,1,171,1,59,2,44,2,229,0,102,1,87,3,229,2,99,1,87,1,220,1,246,2,115,3,3,2,6,1,221,0, +198,255,255,253,149,253,118,0,197,2,156,0,191,254,219,255,231,0,57,1,140,1,1,3,120,4,228,2,80,1,235,2, +121,4,149,3,85,2,241,3,144,4,120,255,212,251,107,252,142,252,92,0,31,5,133,2,172,254,235,252,170,250,222,251, +40,254,127,253,165,253,163,254,202,254,210,254,190,255,102,3,22,6,54,4,28,2,227,1,78,2,223,2,165,2,244,2, +64,3,149,1,235,255,214,253,209,251,204,253,154,255,23,253,253,251,57,254,163,255,238,255,210,255,1,254,195,252,142,255, +136,2,33,1,19,255,226,255,51,1,158,0,113,255,243,0,66,3,208,1,164,255,240,255,3,0,122,255,26,255,234,254, +157,255,2,255,29,254,130,1,241,4,34,3,218,0,105,1,108,1,177,255,17,255,238,0,196,2,94,2,160,0,231,254, +204,254,221,0,96,1,187,254,181,253,169,255,79,0,67,255,208,254,190,253,68,252,121,253,89,255,87,254,88,253,1,254, +207,253,58,254,164,255,8,255,156,254,103,255,124,254,167,254,241,0,220,0,148,255,131,255,166,255,136,0,193,0,52,255, +111,255,108,1,174,1,155,0,62,0,217,0,196,0,4,255,198,253,6,254,15,254,62,254,56,255,32,255,144,254,55,0, +226,1,95,0,250,253,250,252,32,253,85,254,179,254,126,253,197,253,253,255,233,0,51,255,139,253,109,254,129,255,223,254, +159,254,21,255,91,255,167,255,86,255,84,254,105,253,137,253,129,254,12,254,123,253,252,254,124,255,150,254,48,254,226,252, +127,252,2,255,65,1,1,2,131,2,146,2,102,1,63,0,155,0,24,255,10,253,216,1,239,6,91,3,161,254,11,253, +122,252,80,255,109,1,158,254,252,252,253,253,172,253,45,253,204,253,237,253,32,254,111,0,118,2,51,1,180,255,237,254, +73,252,201,250,211,251,196,251,143,251,180,252,44,253,237,252,36,252,228,250,169,251,125,254,218,0,83,2,76,2,222,255, +146,253,124,253,185,254,46,1,137,3,85,3,63,2,229,1,8,1,36,0,141,255,254,254,218,255,16,1,211,0,126,0, +231,0,195,1,128,2,149,1,150,255,101,254,18,254,127,254,88,255,111,255,205,254,55,254,161,253,42,253,186,253,46,255, +162,255,164,254,84,254,156,255,87,1,161,2,166,2,75,1,31,0,100,255,160,254,46,255,86,0,195,255,133,254,235,253, +229,253,173,254,135,255,28,1,247,2,93,1,81,255,221,1,188,4,193,4,141,3,249,0,24,255,140,255,50,0,160,0, +102,0,72,255,175,254,128,253,184,252,23,255,49,1,35,0,134,254,52,254,44,255,255,255,55,255,201,254,54,0,58,1, +42,1,160,2,98,4,118,2,87,255,29,255,92,0,26,2,73,3,224,1,236,0,223,1,210,1,238,1,2,3,103,3, +46,4,114,4,100,3,113,4,43,6,21,4,242,0,3,1,47,2,90,1,57,0,188,0,17,1,215,0,191,0,104,254, +235,251,157,254,46,2,230,0,40,255,153,255,87,255,100,255,101,0,234,255,11,255,79,255,167,255,68,0,223,0,134,0, +67,0,251,255,109,255,237,0,117,3,123,3,55,3,70,5,248,5,102,3,198,0,8,0,208,0,151,1,166,1,36,3, +84,5,198,4,143,3,138,4,16,5,198,3,44,3,9,4,108,4,245,3,12,4,236,3,8,3,203,2,71,2,8,1, +121,0,141,255,88,254,113,254,176,255,72,2,126,3,251,0,90,255,145,255,8,255,136,0,230,2,152,2,180,1,166,255, +28,253,39,255,249,1,48,0,41,254,112,254,216,253,198,251,209,250,218,251,71,252,156,251,5,252,74,252,148,252,44,255, +94,0,65,254,119,253,131,254,193,255,169,1,160,2,50,3,63,5,116,6,115,6,214,6,208,6,123,6,255,5,145,5, +253,4,142,1,188,254,116,0,250,0,214,0,105,2,61,254,248,249,12,255,118,2,81,255,189,252,8,249,127,246,217,250, +173,255,31,0,5,0,209,1,159,3,9,2,143,255,75,1,124,3,156,1,156,255,134,0,230,0,58,254,206,251,149,252, +60,254,70,254,110,254,93,1,31,4,217,1,187,254,126,255,210,255,19,255,63,0,95,0,232,254,152,254,222,254,159,255, +194,255,68,253,129,251,146,253,96,0,228,0,98,0,32,0,126,255,16,0,172,1,2,0,30,254,235,0,186,1,90,253, +85,251,17,253,99,254,24,255,202,255,90,0,137,0,88,255,208,253,11,254,25,254,30,251,185,248,209,250,165,252,75,250, +65,248,143,249,239,250,221,249,190,248,160,249,123,250,6,251,152,251,159,249,22,248,95,250,128,251,236,250,90,251,55,250, +32,250,194,253,245,255,25,0,181,255,221,253,39,253,2,253,156,251,23,252,208,252,43,251,255,250,19,253,143,254,125,254, +73,253,77,252,105,252,142,254,175,0,64,254,39,252,227,255,221,2,161,2,219,2,70,2,250,1,156,3,163,4,156,4, +193,3,182,3,186,4,150,1,252,253,114,0,13,2,153,0,208,0,237,254,52,252,125,254,50,0,16,253,123,250,170,251, +95,254,150,255,73,255,39,255,121,255,208,0,2,2,28,0,139,253,45,254,104,255,164,254,142,254,134,0,155,1,176,0, +113,0,188,1,112,2,162,1,21,0,82,254,100,254,85,2,241,4,91,0,153,251,46,254,90,1,90,255,7,253,163,253, +118,254,84,253,160,252,221,254,239,0,158,0,65,0,243,255,111,255,1,0,226,255,36,254,231,253,255,0,32,4,53,2, +183,254,122,1,121,5,211,2,97,0,7,4,45,6,247,2,149,1,191,4,180,6,91,5,248,3,103,4,174,5,95,5, +131,3,9,3,1,4,41,4,63,3,179,2,45,2,16,255,210,252,177,1,245,6,242,3,122,255,172,0,233,2,184,2, +201,2,18,3,153,1,106,0,179,0,120,0,229,255,168,255,133,255,250,255,109,0,95,0,238,255,23,255,26,255,202,255, +217,255,57,255,127,254,28,0,183,2,83,1,248,254,60,255,81,254,121,252,119,252,7,252,1,251,253,252,252,255,250,253, +237,250,169,254,18,3,231,0,123,254,231,0,87,3,154,1,250,255,196,2,140,4,7,2,202,0,81,2,32,3,86,2, +67,1,202,0,206,0,83,2,33,4,149,2,173,0,183,1,63,2,240,1,116,2,33,2,109,1,89,2,108,3,187,1, +49,255,134,255,92,0,28,0,210,0,204,0,65,0,136,1,189,1,205,255,198,254,62,255,108,255,83,254,184,253,80,254, +125,254,232,254,220,255,95,0,241,255,138,253,57,252,189,254,218,0,16,1,155,1,179,1,1,1,117,0,17,0,75,255, +251,254,10,1,249,2,249,1,206,0,34,1,168,1,81,1,202,0,76,2,79,3,248,0,227,255,111,2,248,4,60,5, +207,3,156,2,104,2,54,2,27,1,21,0,53,1,34,2,157,1,127,3,128,4,192,0,106,255,95,3,140,5,241,2, +67,0,107,0,34,1,171,2,254,3,192,0,226,253,247,255,101,1,237,0,47,0,3,254,23,253,120,255,217,1,205,0, +199,254,113,255,60,0,79,1,111,3,193,0,81,253,171,0,213,3,148,2,165,1,85,1,215,254,86,250,152,248,249,250, +69,251,113,248,224,247,237,250,75,253,162,251,51,250,66,252,55,253,175,251,48,251,186,252,167,253,44,251,74,250,117,0, +207,5,174,2,121,253,178,252,21,253,4,252,131,252,131,255,213,1,116,1,190,1,181,4,200,3,134,255,128,0,110,2, +61,1,191,0,212,254,189,255,11,5,108,2,195,253,170,2,171,7,211,7,111,5,103,0,162,252,61,249,188,247,29,253, +84,1,56,1,75,1,35,253,177,248,190,251,147,254,89,253,192,253,201,254,241,254,6,1,21,2,121,254,246,251,66,254, +150,255,202,253,44,253,175,254,23,255,184,253,28,253,252,252,244,253,86,2,68,4,206,255,177,252,127,254,189,255,87,253, +34,251,234,252,235,255,25,2,190,2,90,255,4,252,234,251,34,252,42,254,2,1,142,0,26,255,174,254,14,255,197,254, +234,252,160,253,245,255,94,255,18,254,22,253,159,252,214,254,51,2,160,5,253,7,124,6,192,2,65,1,238,2,241,2, +134,0,29,2,37,5,182,3,94,1,12,0,74,0,109,3,109,3,121,253,21,250,31,254,143,1,249,254,223,253,95,0, +65,1,22,3,128,5,202,3,137,1,103,1,185,0,250,254,127,254,218,0,15,2,74,255,224,252,12,253,68,254,186,255, +81,0,241,254,222,252,155,253,227,255,89,255,0,254,45,254,238,255,53,3,79,3,227,0,173,0,146,255,146,254,39,0, +192,255,147,255,64,1,149,255,205,253,47,255,168,255,162,255,87,0,223,254,113,253,153,0,152,2,117,253,175,249,255,252, +2,0,254,254,128,253,159,254,29,0,163,253,32,252,131,0,92,5,199,6,33,5,136,3,130,4,112,2,83,254,117,255, +222,255,31,252,84,251,87,252,179,251,146,251,75,252,201,253,63,255,209,254,247,254,14,0,144,255,69,2,91,6,193,0, +234,250,188,0,40,5,5,6,203,9,211,4,227,252,79,1,38,6,2,6,223,6,42,1,75,250,190,0,28,9,211,3, +77,252,162,1,137,8,242,2,103,251,142,251,156,253,112,255,230,0,52,255,142,254,251,1,236,2,90,255,223,252,130,251, +201,249,209,250,149,253,214,254,45,255,73,0,118,1,75,254,156,249,183,251,252,255,29,1,227,0,33,252,181,247,159,250, +182,254,212,2,86,6,177,4,238,3,129,3,59,0,113,2,50,6,105,5,110,4,242,254,128,249,68,254,40,2,38,1, +107,2,107,255,162,249,232,250,84,254,158,255,164,0,236,254,20,252,193,252,18,254,185,251,144,249,29,253,61,1,149,254, +119,250,6,252,155,255,147,0,132,0,244,0,147,0,218,254,218,253,197,255,48,2,226,0,168,254,59,0,63,3,15,4, +12,2,140,255,52,255,215,253,122,253,248,4,105,9,154,1,247,251,12,255,128,1,205,0,165,255,118,0,6,2,71,1, +217,0,150,254,5,250,0,253,222,1,237,254,41,253,46,253,185,250,251,252,255,0,2,1,110,0,65,254,17,253,195,0, +86,2,36,0,98,255,89,255,104,255,245,0,107,1,28,254,10,252,109,0,250,3,171,0,187,253,204,254,56,0,182,2, +23,5,70,1,136,252,98,2,17,9,177,1,82,250,66,1,106,7,45,1,132,251,2,1,232,6,145,3,77,0,50,1, +54,0,209,1,164,5,241,1,33,252,218,252,5,255,251,253,178,251,196,250,145,251,177,252,172,253,95,254,145,254,39,255, +200,255,23,255,133,254,184,255,238,255,77,254,88,254,124,254,144,252,182,252,61,255,168,0,244,0,136,0,158,255,193,254, +236,254,24,1,137,2,82,2,198,2,114,2,20,2,199,4,148,7,123,7,7,6,105,5,147,5,128,4,35,4,187,6, +230,7,207,5,99,4,122,4,157,3,6,1,91,255,231,0,5,3,66,2,63,0,20,0,105,0,232,255,121,255,241,253, +8,254,138,2,222,3,132,0,53,255,69,253,182,250,20,253,211,255,230,254,8,254,223,255,243,1,1,255,211,251,205,0, +161,5,146,2,37,0,151,2,86,4,112,4,20,5,44,4,147,2,173,4,104,6,130,3,66,0,30,253,41,249,128,247, +105,248,127,251,163,253,239,250,82,248,70,248,239,248,2,253,217,0,235,254,161,251,81,250,69,251,156,255,179,2,81,255, +227,250,80,253,70,1,80,255,126,253,239,254,34,0,150,4,13,9,104,5,14,2,18,7,184,11,228,8,1,5,4,8, +174,11,141,6,141,255,223,254,6,0,54,255,8,254,230,254,245,255,48,252,69,249,68,254,165,2,171,0,165,253,120,251, +124,249,81,247,107,246,29,250,227,253,234,252,230,251,79,253,74,254,63,253,225,252,144,0,211,2,100,0,22,255,56,253, +202,250,144,255,110,4,206,255,89,251,95,0,59,6,236,1,206,252,52,3,219,8,233,4,204,1,83,0,37,254,226,255, +227,0,97,255,121,1,184,3,36,3,38,4,137,6,33,8,99,7,217,1,120,252,226,253,2,0,251,252,85,251,152,252, +56,253,234,1,160,7,190,4,45,255,147,253,190,252,200,252,53,253,89,253,178,253,88,249,145,244,22,248,235,252,105,254, +125,255,33,253,51,250,237,250,67,251,143,252,178,254,178,251,87,248,200,250,84,254,12,255,244,253,228,252,103,253,210,254, +105,255,75,255,247,255,122,1,252,1,125,1,59,2,206,3,150,4,193,6,255,9,11,9,64,5,196,3,18,4,94,5, +62,6,217,4,178,4,208,5,101,5,183,5,160,5,101,3,60,2,207,1,169,1,255,2,4,3,149,1,14,2,53,4, +212,4,14,2,213,254,121,254,54,255,11,255,69,254,72,253,228,252,3,254,21,255,82,253,16,251,150,251,17,252,181,251, +18,252,105,251,217,250,155,251,114,252,35,255,245,1,123,1,17,1,250,1,76,1,180,255,139,254,201,252,192,250,144,250, +240,250,68,249,138,247,103,247,169,248,8,252,97,255,45,1,57,2,136,1,208,255,255,253,178,252,43,255,33,3,235,3, +237,3,249,4,45,5,118,3,42,1,195,0,114,1,67,3,145,6,84,6,241,4,65,9,169,11,235,5,203,1,19,5, +191,8,7,8,241,5,253,3,246,1,94,2,115,3,47,2,11,1,130,255,151,253,85,0,197,3,8,1,68,253,9,253, +15,253,214,252,151,253,122,253,109,252,229,251,101,251,1,251,111,250,170,248,36,247,88,246,105,246,172,248,86,250,122,250, +121,251,24,251,92,250,159,251,38,251,197,249,199,248,165,246,14,247,160,248,150,248,79,249,187,248,28,251,61,0,44,251, +222,248,215,7,3,21,182,26,56,27,154,9,103,245,182,243,111,244,178,237,252,234,243,238,56,244,38,248,45,251,203,252, +110,252,108,252,187,252,142,253,168,253,246,245,169,236,184,238,158,243,81,242,166,243,167,249,74,255,159,5,34,10,197,11, +148,14,25,14,223,13,235,25,207,36,243,32,225,25,83,17,87,7,21,8,50,11,121,5,136,1,206,3,225,4,219,0, +253,250,180,248,251,247,27,247,10,247,125,244,156,241,133,240,204,237,107,235,236,234,119,236,179,238,139,235,243,232,220,237, +78,243,201,248,167,254,131,0,21,2,130,2,140,255,11,255,224,1,170,6,233,10,160,11,144,13,37,17,204,19,0,23, +214,22,142,19,179,17,192,15,7,14,79,11,206,8,196,12,248,15,90,13,194,10,143,4,198,254,192,3,50,7,193,254, +199,247,68,251,241,254,154,250,251,245,127,245,229,244,13,246,206,246,8,242,178,238,245,240,117,245,248,250,32,254,33,255, +81,1,54,2,216,2,168,5,95,7,148,8,213,9,17,8,182,6,141,8,50,9,216,7,10,8,12,10,168,10,3,9, +218,8,80,10,178,10,154,12,236,13,214,7,63,1,246,2,9,5,68,1,113,254,217,253,2,251,151,250,64,253,73,249, +176,244,179,251,87,3,162,1,96,255,66,0,59,1,219,1,22,2,177,3,0,5,154,3,173,3,62,5,91,5,133,5, +223,6,243,11,206,15,155,7,99,255,12,6,51,12,105,6,84,0,51,0,146,2,91,4,112,3,96,0,49,254,90,0, +107,2,202,252,162,249,142,2,76,8,164,1,238,250,13,250,83,249,152,246,112,244,160,243,160,243,171,246,168,251,148,253, +180,252,55,251,142,250,69,253,73,1,111,3,223,3,33,2,54,1,244,4,228,7,215,3,29,255,223,1,232,5,205,3, +68,1,189,1,129,2,114,4,12,6,81,5,137,3,224,255,118,252,24,252,147,253,9,1,173,2,78,255,116,252,85,251, +231,249,187,249,198,249,120,250,4,252,56,251,175,249,181,248,161,247,223,247,80,248,127,250,36,254,246,252,164,251,17,255, +127,0,66,0,145,255,18,251,82,248,180,249,89,251,61,254,86,0,190,255,251,255,74,0,130,255,77,0,92,2,168,2, +21,1,140,1,41,2,213,252,104,249,61,0,148,5,253,1,11,0,15,3,194,3,143,2,107,1,210,251,108,247,211,253, +133,2,252,249,1,244,22,250,192,254,121,251,179,249,97,255,230,3,75,0,112,252,112,251,183,249,231,251,180,254,176,250, +253,247,162,249,254,248,1,248,92,248,21,249,137,250,88,249,81,247,117,248,119,249,1,251,78,253,170,249,207,244,3,249, +134,254,94,251,161,249,230,0,170,5,143,3,61,2,16,1,198,255,127,2,229,4,244,3,55,4,70,6,246,5,20,2, +210,254,43,254,202,253,217,254,17,1,247,0,107,0,224,0,176,0,214,255,76,254,63,255,225,3,172,5,78,4,5,5, +88,6,103,6,253,6,130,8,45,9,124,7,134,4,124,1,12,255,13,254,45,252,101,249,72,249,193,249,189,249,211,252, +242,255,157,255,195,254,45,253,197,251,131,255,143,3,51,1,31,254,226,253,132,253,0,255,220,1,210,1,141,1,100,4, +196,8,191,12,177,14,177,13,239,10,151,9,27,9,102,4,91,255,154,0,198,2,63,2,48,1,2,255,27,254,11,255, +13,255,66,0,1,1,222,254,0,254,84,253,124,252,25,1,31,6,51,3,75,255,141,3,26,9,63,6,198,0,126,0, +215,1,130,1,24,255,203,249,62,246,199,248,94,253,34,255,207,254,157,254,247,254,166,0,30,3,77,3,94,2,33,4, +188,5,110,2,218,254,214,1,146,5,220,2,173,255,81,0,221,0,68,0,55,0,74,3,139,7,98,6,117,3,186,3, +116,3,84,4,111,6,182,4,68,3,36,4,159,4,210,7,160,11,10,11,117,8,156,5,30,3,154,1,224,254,52,251, +160,248,228,248,147,252,204,254,169,254,9,2,146,5,42,3,32,1,255,3,255,4,155,1,21,0,113,2,245,3,163,2, +245,255,225,251,45,249,197,251,93,255,209,255,242,255,240,255,25,0,239,2,34,5,113,4,226,2,146,1,142,2,111,3, +200,1,83,3,9,5,172,255,137,251,46,254,234,0,108,1,166,0,222,254,208,253,254,252,143,251,119,250,242,249,141,250, +0,252,9,252,166,251,168,253,30,255,154,253,225,252,134,252,16,251,46,253,187,254,82,247,73,240,55,244,51,249,24,246, +139,243,23,246,120,246,105,246,137,249,28,249,157,246,13,248,46,249,48,249,99,250,7,250,82,248,141,246,122,246,101,251, +119,0,182,0,19,1,117,3,7,4,69,4,36,5,46,1,79,252,66,0,213,4,196,0,240,252,119,253,20,254,222,255, +117,2,253,3,50,4,55,2,215,0,161,2,10,5,150,5,62,5,210,5,211,4,39,2,111,2,193,2,17,2,105,6, +145,10,99,7,208,1,212,254,22,254,173,252,238,251,11,1,40,7,144,7,23,5,27,2,227,255,94,255,109,254,85,254, +92,0,138,1,239,0,102,0,68,0,185,253,126,250,141,252,208,255,215,254,225,253,7,253,3,250,75,248,5,248,123,247, +42,248,254,249,186,251,216,252,23,252,208,248,36,246,53,247,84,249,244,249,18,250,49,249,49,249,4,253,169,254,138,248, +134,244,57,252,140,4,129,2,170,254,55,255,242,0,52,3,199,2,244,255,208,255,2,254,132,250,161,252,184,255,164,255, +208,255,92,254,219,251,7,252,39,252,111,251,110,252,154,253,206,254,114,2,12,5,61,2,163,253,210,250,244,247,95,244, +213,240,128,238,215,238,146,239,13,240,139,243,200,247,96,250,243,255,0,8,183,13,222,19,112,26,91,27,214,26,95,30, +98,32,47,32,87,34,208,36,101,37,0,36,101,34,66,36,254,37,32,35,109,31,77,29,51,27,191,23,22,20,202,19, +31,19,212,12,78,7,1,7,191,6,192,4,73,3,216,1,174,254,240,249,62,245,20,242,254,240,18,241,184,240,26,239, +207,237,180,239,116,242,159,242,36,242,121,240,108,237,60,237,226,237,45,237,21,237,90,235,251,233,133,236,248,238,30,241, +71,243,230,241,78,241,241,245,236,250,41,251,101,248,213,247,3,249,39,249,77,250,80,252,46,253,129,252,154,249,38,247, +144,245,146,242,243,242,97,247,187,249,138,251,100,254,222,253,161,251,108,253,135,1,103,3,131,5,30,10,110,13,19,14, +177,13,85,13,133,13,132,12,196,10,1,10,226,8,21,8,237,7,238,7,151,9,101,9,6,7,161,7,127,7,80,5, +242,4,37,2,118,254,73,0,15,3,212,3,239,4,28,5,203,4,141,5,113,5,54,3,243,0,160,0,121,0,139,254, +193,251,160,249,235,249,194,251,8,252,155,251,237,251,182,251,54,251,82,250,247,248,73,250,178,252,198,250,180,248,84,251, +229,252,56,252,67,252,211,249,80,248,247,251,157,253,12,252,79,252,69,254,132,0,89,255,240,252,115,0,74,3,50,0, +251,253,90,253,149,253,118,255,202,255,215,0,94,3,205,2,147,1,39,2,164,3,17,7,114,8,11,4,85,0,248,2, +43,6,36,4,124,2,55,5,35,7,189,6,228,6,251,7,77,8,39,6,36,5,219,7,235,8,86,7,3,6,126,3, +49,1,146,1,253,2,91,4,204,4,243,3,20,3,150,2,161,1,173,254,252,252,229,0,3,3,105,254,255,251,35,253, +103,252,187,252,40,253,124,249,27,247,79,248,111,248,63,248,145,249,20,251,102,252,193,252,148,253,83,1,144,3,187,255, +151,250,27,250,59,251,48,248,11,244,44,244,147,245,68,245,99,245,54,245,178,242,209,240,34,242,204,242,220,240,231,240, +86,243,73,245,28,247,239,246,38,245,46,246,130,247,222,246,237,247,133,250,98,253,214,0,150,2,237,1,198,1,229,3, +206,6,144,9,148,11,197,9,51,7,251,8,135,9,247,6,238,6,57,8,223,8,240,7,144,4,233,2,128,2,207,1, +115,2,66,0,106,254,167,2,172,5,98,7,229,10,164,9,206,6,55,7,90,7,81,9,222,11,123,9,205,5,14,5, +221,5,175,5,154,4,176,4,138,4,44,4,22,4,59,0,13,252,1,253,10,254,215,252,67,252,245,252,114,254,42,253, +91,249,138,248,232,249,31,251,92,252,204,251,32,251,182,253,62,1,176,1,152,0,66,3,252,5,240,1,16,254,27,255, +72,255,162,0,187,3,226,1,10,255,237,255,21,1,12,3,151,4,125,1,199,252,230,249,98,249,14,251,254,251,26,253, +230,255,13,0,49,255,85,2,163,5,90,5,252,2,177,0,254,0,238,2,184,3,86,4,147,5,117,7,101,10,235,11, +90,11,133,11,229,11,36,11,16,10,135,7,85,5,171,7,167,9,3,6,223,1,61,0,111,0,211,3,69,6,213,4, +19,3,54,0,51,253,75,254,61,255,40,253,102,251,130,250,49,251,83,252,67,251,135,251,135,253,234,252,32,251,24,250, +130,249,219,249,19,250,133,250,90,251,40,250,86,249,176,251,179,253,168,253,139,253,29,254,235,254,68,255,57,255,37,254, +215,251,154,251,179,252,43,251,212,250,207,254,6,2,52,2,159,1,233,1,94,2,36,0,225,253,107,255,101,255,206,251, +5,250,205,249,37,249,93,248,40,247,132,247,232,248,242,247,29,247,19,249,188,250,196,249,247,249,174,255,159,3,188,253, +55,248,152,251,184,254,176,253,79,254,152,255,0,0,133,2,254,3,25,1,129,255,112,1,9,3,212,4,145,7,221,9, +150,10,16,7,139,3,26,6,131,7,57,3,142,255,225,253,113,253,57,254,2,254,129,255,18,3,209,2,155,0,90,1, +181,1,117,254,71,252,167,254,239,255,226,252,120,250,80,250,39,251,203,252,29,254,138,0,188,2,136,0,210,253,51,254, +55,255,174,255,214,253,113,250,10,249,140,248,22,248,234,247,182,248,46,253,229,0,64,0,217,0,139,2,91,3,55,5, +8,6,211,7,254,10,137,8,227,4,146,5,75,5,15,5,46,6,253,4,93,4,123,5,149,5,119,5,254,5,7,8, +153,9,134,6,183,1,234,254,87,253,109,253,252,254,181,0,35,1,167,254,225,251,194,251,137,253,172,0,159,3,163,4, +186,4,251,4,102,5,251,4,111,3,76,2,136,1,183,0,78,0,152,255,229,254,159,254,11,254,154,253,105,253,5,254, +214,255,117,0,174,255,131,255,142,0,100,3,24,5,125,2,88,255,163,254,44,254,111,252,254,250,3,252,178,252,142,249, +50,247,234,249,41,253,122,252,86,252,151,1,16,6,164,4,206,2,177,2,187,3,190,7,189,8,243,2,140,254,228,254, +196,255,38,0,215,0,210,0,24,255,16,254,182,254,105,253,213,251,180,253,94,255,131,255,157,0,180,1,226,2,138,4, +56,5,104,5,158,4,128,2,136,1,115,1,239,0,237,0,108,0,34,254,50,252,107,252,123,252,8,250,59,248,109,249, +143,250,120,251,111,252,244,249,205,247,33,251,240,253,29,253,13,253,106,253,43,254,244,0,196,1,204,255,22,255,140,254, +235,252,244,251,72,251,109,251,185,252,240,252,149,253,68,0,236,1,90,2,163,3,48,5,124,5,208,2,98,0,188,3, +208,6,118,2,194,253,116,254,217,255,5,255,41,254,21,255,240,255,245,254,107,255,135,2,25,4,120,3,29,3,205,2, +6,2,239,1,18,2,148,0,208,254,33,255,190,255,227,254,103,254,92,255,157,255,109,253,69,251,109,251,39,252,16,253, +64,254,186,253,51,253,18,255,114,1,28,3,83,4,240,4,1,5,248,4,225,5,68,7,16,8,191,8,30,9,142,9, +118,9,107,6,101,3,16,3,95,2,191,1,14,2,22,1,58,0,137,0,52,0,211,254,203,253,18,255,242,0,162,0, +212,255,145,255,244,255,31,1,242,0,215,0,227,1,228,0,199,255,150,0,79,0,247,254,187,253,118,252,246,250,119,248, +250,246,24,247,109,246,31,246,26,246,221,244,178,244,174,245,106,246,184,247,232,248,173,249,97,250,249,249,64,249,212,249, +248,250,132,251,236,252,160,0,99,3,106,3,236,3,59,5,245,5,1,7,43,8,61,9,31,10,184,9,181,8,227,7, +123,7,45,8,152,8,232,7,133,7,191,6,2,5,52,4,109,3,77,0,231,253,206,254,145,254,16,252,12,252,184,253, +9,254,91,254,61,254,251,251,252,249,112,250,41,251,40,250,155,249,17,251,44,252,90,252,169,253,84,255,152,255,216,255, +163,0,235,255,239,254,199,255,77,0,118,0,218,0,141,254,26,252,82,253,98,254,159,253,199,253,83,255,227,0,182,0, +114,0,118,2,221,3,163,3,197,3,201,3,29,4,20,5,6,5,140,3,204,1,193,1,62,2,183,0,96,255,226,254, +13,254,130,254,139,254,225,252,230,251,123,250,186,248,27,249,106,250,78,251,0,252,91,253,83,254,179,251,215,248,229,249, +5,252,204,254,124,1,182,0,101,255,228,255,57,0,84,0,240,0,128,3,106,6,217,5,22,5,192,6,141,7,33,7, +102,6,52,6,7,7,30,6,154,4,51,5,45,5,1,4,86,3,46,2,35,1,27,1,246,0,128,0,62,0,175,255, +107,254,44,254,209,254,85,253,147,251,35,252,176,252,71,253,205,253,21,252,114,251,154,253,202,254,156,254,253,253,212,252, +151,252,46,253,152,253,37,254,11,255,215,0,156,2,125,2,56,2,105,3,162,3,102,2,77,2,242,2,190,2,192,2, +212,2,177,1,96,0,97,255,196,254,10,0,207,1,196,1,191,1,184,2,53,3,226,3,7,5,48,5,28,5,157,5, +169,5,136,5,45,5,142,3,2,2,59,1,88,0,69,0,225,255,58,253,139,251,65,252,145,251,42,249,176,247,114,247, +44,248,163,249,84,250,140,249,53,249,15,251,36,253,220,252,10,252,110,253,4,255,37,254,27,253,56,254,190,255,102,0, +91,0,66,255,27,254,26,254,95,254,114,254,17,255,90,0,228,1,129,3,18,5,14,6,17,6,169,5,171,5,78,6, +190,6,25,6,48,5,253,4,238,4,7,5,147,5,106,5,214,4,143,5,83,6,157,5,29,5,207,5,208,6,124,7, +120,7,124,7,184,7,231,6,64,6,246,6,28,7,144,6,132,6,75,6,18,6,115,6,99,6,107,5,120,4,203,3, +251,2,139,2,224,1,217,255,219,254,45,255,196,253,11,253,52,254,16,253,20,251,178,250,161,249,200,248,161,248,218,246, +173,245,236,246,134,247,171,246,28,246,83,245,134,244,29,246,254,247,133,246,128,244,29,244,211,243,164,244,203,245,69,245, +105,245,151,246,215,246,214,246,212,246,177,246,30,247,200,247,117,248,61,249,83,250,213,251,46,253,145,254,76,255,7,254, +185,252,234,252,87,253,173,253,15,254,207,254,215,255,135,255,249,254,83,0,153,1,81,1,251,0,226,0,145,0,2,1, +162,2,196,3,228,3,226,4,18,6,195,4,221,2,225,3,84,5,117,3,172,0,10,0,202,255,128,254,191,253,127,254, +110,255,51,255,96,255,9,1,168,1,196,0,53,0,166,255,88,255,231,255,62,0,30,1,251,2,101,3,221,2,45,4, +170,5,153,4,211,2,80,2,5,2,88,1,152,0,98,0,250,0,178,0,180,255,212,255,220,255,52,255,241,254,147,254, +161,254,5,255,161,254,243,254,7,255,11,253,118,252,32,254,165,254,23,254,205,253,155,253,106,253,100,253,226,253,44,254, +180,253,202,253,205,254,218,255,215,0,212,1,72,2,242,1,234,1,170,2,93,3,150,4,165,5,74,4,107,2,70,2, +107,2,120,2,136,2,1,2,227,1,85,2,139,2,103,3,125,4,217,3,210,2,177,3,88,4,205,2,118,1,77,1, +254,0,90,1,61,2,204,1,230,0,67,1,159,2,25,4,229,4,12,5,80,5,123,5,112,5,32,6,165,6,35,5, +182,3,12,5,83,6,158,4,108,2,11,2,51,2,71,2,190,2,143,2,232,1,149,2,74,3,111,2,216,1,232,1, +134,1,11,1,130,0,164,0,115,1,168,0,88,255,207,255,206,0,231,1,149,2,40,1,134,255,156,255,167,255,125,254, +105,253,69,254,32,0,73,0,243,254,32,253,58,251,240,250,103,251,13,250,123,248,240,248,112,249,249,247,79,246,213,245, +79,245,33,245,64,246,82,247,245,247,85,248,244,247,238,247,12,249,216,250,149,252,16,253,48,253,207,253,52,254,164,255, +220,0,87,255,67,254,178,254,14,255,94,1,131,3,39,2,190,0,40,1,76,2,249,3,173,4,119,4,75,4,29,3, +113,1,106,0,245,255,47,0,175,0,116,1,116,2,188,2,222,2,150,3,233,3,48,3,219,2,200,4,101,6,154,4, +77,2,94,1,91,0,122,255,181,254,204,254,89,0,200,0,133,0,109,1,11,2,110,2,6,3,147,3,188,4,163,4, +61,3,76,3,142,3,17,3,34,3,44,3,250,2,186,2,159,2,48,3,150,3,66,4,180,4,203,2,61,2,142,5, +52,7,56,5,226,3,36,5,31,7,181,7,12,8,190,9,152,10,226,8,231,6,182,6,139,6,243,4,200,3,176,3, +130,4,206,6,235,7,189,6,25,6,179,5,13,5,107,5,84,5,141,4,165,3,250,0,124,254,137,254,24,254,234,251, +1,251,34,252,201,253,64,255,169,255,175,254,218,252,160,249,36,247,6,249,70,251,176,249,146,248,108,249,189,249,207,250, +102,251,212,248,155,246,10,247,129,247,113,247,71,247,222,245,10,245,188,246,226,247,132,247,85,248,100,249,140,250,168,253, +113,255,78,254,4,254,98,254,252,252,197,250,7,249,233,247,86,247,69,247,253,246,98,245,215,243,176,243,72,243,85,242, +38,242,178,242,252,242,1,242,132,241,208,243,159,245,87,244,131,243,234,244,168,246,84,248,46,249,60,248,252,247,110,249, +213,249,227,249,13,251,178,250,50,250,10,253,208,255,7,0,115,0,189,1,13,3,253,3,80,4,92,5,16,7,255,7, +244,8,68,10,205,10,151,10,134,10,20,11,143,11,149,11,154,11,185,10,120,9,221,9,16,10,43,8,90,6,251,5, +83,6,134,6,176,5,71,4,149,3,121,3,202,2,58,1,154,255,30,254,116,252,40,251,95,250,52,249,72,247,146,245, +125,245,168,246,168,247,114,248,213,248,94,248,80,248,89,249,81,250,215,250,11,252,119,254,90,0,20,0,131,255,25,1, +218,3,209,5,18,7,44,8,254,8,193,9,42,10,10,9,163,7,103,8,199,9,74,9,100,8,65,8,224,7,251,7, +22,9,129,9,38,9,36,9,42,9,218,8,33,8,54,7,177,6,197,5,134,4,198,4,232,4,98,2,53,0,30,1, +147,1,47,255,150,253,195,254,21,0,153,0,47,1,52,1,144,0,109,0,218,0,179,0,6,0,39,0,122,0,26,0, +201,0,143,2,117,3,245,3,126,4,61,4,225,3,253,3,221,3,153,3,47,4,132,5,72,6,74,6,189,6,7,8, +14,9,225,8,108,8,184,8,114,9,107,10,82,11,243,11,181,12,21,13,65,13,149,13,6,13,93,12,237,11,104,10, +170,8,115,6,251,3,238,3,23,4,82,2,139,0,140,253,248,250,24,253,140,255,154,253,153,250,137,249,221,248,196,246, +136,244,156,243,236,242,33,242,22,242,181,242,197,242,109,241,119,240,199,240,95,241,33,243,255,244,227,244,130,244,75,244, +110,243,238,242,231,242,168,243,51,245,58,246,87,247,30,249,116,250,154,250,219,250,127,253,122,0,79,1,47,2,195,2, +171,2,186,4,155,6,33,6,160,5,145,4,10,3,3,3,10,3,242,1,74,1,54,2,4,3,186,1,140,0,189,0, +15,0,9,255,251,254,233,254,247,254,136,255,154,255,225,254,198,254,166,255,97,255,187,253,52,253,162,254,53,0,200,255, +141,254,232,254,14,255,131,253,30,252,147,251,54,251,39,250,188,248,116,248,189,248,9,249,82,249,117,248,236,247,22,249, +36,250,201,250,99,251,48,251,49,250,238,248,93,248,107,248,140,248,238,249,239,251,150,252,151,252,45,253,173,253,218,252, +25,252,128,253,100,255,201,0,180,1,102,0,53,255,101,0,247,0,204,0,101,1,250,1,75,2,73,1,232,255,94,0, +5,1,237,1,159,3,48,3,226,1,67,2,118,2,49,2,28,2,70,1,233,0,196,2,60,5,226,5,109,5,129,5, +118,5,178,4,115,3,238,1,64,1,86,1,16,1,18,1,106,1,48,1,202,0,84,0,219,255,98,0,141,1,53,2, +156,2,24,3,104,3,133,3,145,3,37,4,61,5,231,5,169,6,16,8,46,9,80,10,0,11,212,9,153,8,146,8, +135,8,195,8,176,9,255,10,75,12,127,12,67,12,94,12,205,11,248,10,77,10,66,9,41,8,211,6,89,5,85,4, +5,3,11,1,10,255,51,253,216,250,173,247,34,245,69,243,15,241,244,239,212,239,230,238,59,238,218,238,12,240,192,240, +30,241,150,242,190,243,144,243,131,244,11,246,30,247,3,249,103,250,214,250,112,251,156,251,209,251,230,251,31,251,175,250, +88,250,69,250,205,250,195,249,182,248,237,249,207,250,11,251,184,251,133,251,85,251,94,252,147,253,203,254,101,0,248,1, +85,3,5,5,236,6,7,8,193,8,167,9,72,10,96,11,158,12,127,12,251,11,21,12,94,12,228,12,99,13,147,13, +109,13,187,12,111,12,207,12,75,12,150,10,128,8,111,6,152,4,104,2,203,255,176,253,185,251,75,249,43,247,170,245, +179,244,104,244,140,244,71,245,46,246,60,246,173,246,107,248,208,249,190,250,212,251,98,252,98,253,168,255,243,1,51,4, +69,6,8,7,49,7,147,7,238,7,99,8,97,8,120,7,140,6,40,6,155,6,87,7,25,7,205,6,53,7,15,7, +195,6,219,6,54,6,109,5,102,5,81,5,7,5,206,4,29,4,146,2,40,1,63,1,187,1,30,1,97,0,240,255, +70,255,163,254,241,253,68,253,224,252,177,252,151,252,191,251,195,250,14,251,247,250,159,249,206,248,138,248,28,248,152,247, +101,247,74,248,135,249,104,250,71,251,64,251,215,250,120,251,4,252,27,252,105,252,114,252,75,252,68,252,174,252,204,253, +162,254,22,255,175,255,224,255,207,255,224,255,68,0,152,1,218,2,219,2,155,2,230,2,39,3,177,2,23,2,130,2, +112,3,19,4,255,4,19,6,138,6,112,6,2,6,127,5,233,4,155,3,190,1,79,0,41,255,181,253,249,251,201,249, +229,247,198,247,33,248,17,247,228,245,165,245,73,245,188,244,165,244,247,244,128,245,226,245,243,245,125,246,238,247,116,249, +102,250,15,251,35,252,206,253,43,255,134,255,122,255,195,255,26,0,167,255,254,254,155,255,133,0,33,0,80,255,18,255, +133,255,24,0,0,0,122,0,150,1,80,1,15,1,64,2,222,2,174,2,226,2,62,3,167,3,155,4,3,6,108,6, +26,6,86,7,193,8,85,8,223,7,207,7,37,7,89,6,227,5,44,6,93,6,134,5,16,5,225,4,43,4,62,4, +112,4,104,3,109,2,91,2,130,2,205,1,121,0,88,0,211,0,220,255,162,254,187,254,16,255,37,255,132,255,67,255, +121,254,209,254,126,255,93,255,199,255,215,0,168,1,49,2,230,1,40,1,142,0,229,254,61,253,36,254,130,255,10,254, +56,252,62,253,110,254,116,253,244,252,33,254,7,255,229,254,187,254,121,255,7,0,52,255,252,254,185,0,87,2,116,2, +139,2,2,4,177,5,35,6,251,5,247,5,34,6,125,6,230,6,191,7,117,8,14,8,212,7,57,8,250,7,92,7, +85,6,129,4,42,3,205,2,154,2,30,2,56,1,57,0,39,255,216,253,206,252,213,251,149,250,255,249,21,250,186,249, +38,249,225,248,180,248,252,248,119,249,242,248,130,248,195,249,44,251,103,251,166,251,39,252,10,252,207,251,1,252,16,252, +64,252,37,253,19,254,19,255,63,0,114,0,46,0,124,0,122,0,26,0,250,255,240,255,75,0,203,0,1,1,99,1, +125,1,245,0,182,0,242,0,166,0,121,255,7,255,251,255,138,0,202,0,120,1,82,1,92,1,184,2,198,3,240,4, +107,6,45,6,125,5,252,5,25,6,59,6,34,7,175,6,21,5,102,4,0,4,59,3,113,2,17,1,200,255,140,255, +73,255,237,254,212,254,218,253,221,252,113,253,13,254,134,253,231,252,150,252,124,252,151,252,83,252,247,251,49,252,46,252, +171,251,143,251,67,251,80,250,251,249,163,250,164,251,160,252,2,253,198,252,212,252,106,253,181,253,177,253,100,254,54,255, +56,255,164,255,101,0,5,0,115,255,200,255,58,0,192,255,103,254,203,253,48,254,217,253,2,253,232,252,80,253,197,253, +225,253,174,253,87,253,142,252,239,251,243,251,253,251,32,252,110,252,189,252,81,253,206,253,31,254,204,254,158,255,68,0, +140,0,136,0,139,0,14,0,145,255,128,0,107,1,122,0,75,255,178,255,145,0,55,0,153,255,118,0,197,1,3,2, +131,1,92,0,25,255,199,254,169,254,72,254,47,254,143,253,121,252,99,252,253,252,85,253,122,253,181,253,79,254,27,255, +167,255,229,255,250,255,74,0,218,0,38,1,16,1,212,0,36,1,99,2,143,3,5,4,20,4,254,3,244,3,189,3, +101,3,215,2,234,1,5,2,114,2,171,0,186,254,199,254,9,255,215,254,237,254,219,255,72,0,199,253,88,251,252,251, +5,253,39,254,98,255,78,254,114,253,232,254,229,255,152,255,86,255,229,255,247,0,201,1,201,2,27,3,155,2,122,3, +63,4,84,3,180,2,245,1,243,0,117,1,56,2,36,2,218,1,36,1,128,0,50,0,158,255,36,255,50,255,165,255, +254,255,188,255,109,255,141,255,157,255,80,255,28,255,122,255,248,255,16,0,201,255,254,254,94,254,161,254,219,254,216,254, +111,255,35,0,151,0,126,1,196,2,167,3,219,3,137,3,250,2,127,2,69,2,58,2,36,2,40,2,184,2,150,3, +35,4,180,4,111,5,103,5,199,4,222,4,46,5,71,4,28,3,229,2,199,2,206,2,28,3,92,2,171,1,107,2, +192,2,20,2,30,1,253,255,229,255,97,0,37,0,105,0,199,0,184,255,132,254,219,253,44,253,47,253,239,253,128,254, +35,255,85,0,18,1,117,0,184,255,90,0,142,1,176,1,59,1,70,1,18,1,128,0,12,0,220,254,41,254,72,255, +3,0,250,255,42,0,206,255,23,0,147,1,10,2,71,1,172,0,252,0,128,1,225,0,61,0,22,0,136,255,190,255, +38,0,112,255,11,255,183,254,49,254,238,254,193,255,175,255,170,255,181,255,162,255,68,255,51,255,56,0,190,0,98,0, +116,0,19,0,246,254,66,254,245,253,248,253,198,253,239,252,250,252,68,254,7,255,0,255,215,254,72,254,128,253,208,252, +141,252,170,253,6,255,161,254,192,253,162,253,103,253,90,253,125,253,210,252,36,252,106,252,245,252,41,253,171,253,198,254, +119,255,180,255,206,255,216,254,204,253,24,254,38,254,96,253,122,253,130,254,4,255,209,254,75,255,164,0,207,1,249,2, +251,3,92,4,38,5,168,6,23,8,3,9,100,9,16,10,153,10,152,9,69,8,160,7,206,6,93,6,202,6,0,7, +116,6,81,5,13,4,53,3,109,2,78,1,35,0,235,254,10,254,131,254,89,255,240,254,33,254,132,253,208,252,183,252, +98,252,185,250,82,249,238,248,170,248,83,248,182,247,226,246,149,246,222,246,92,247,95,248,133,249,205,249,106,250,240,251, +229,252,150,254,107,0,227,254,137,253,137,255,0,1,220,1,181,2,21,1,126,255,175,255,169,255,86,0,184,1,83,2, +183,2,187,2,106,2,156,2,37,3,177,3,146,3,220,2,146,2,94,2,31,2,52,2,151,2,207,3,140,4,36,3, +202,1,13,2,146,2,52,3,114,3,163,1,147,255,169,255,98,0,198,0,25,1,50,0,192,254,222,253,221,252,116,252, +247,251,198,249,82,248,239,248,248,249,61,251,53,252,21,252,115,251,208,250,250,249,94,248,185,247,240,249,45,252,151,252, +195,252,214,252,252,252,117,253,36,254,18,0,137,1,130,0,163,255,175,0,119,1,115,0,204,255,92,1,166,2,179,2, +173,2,58,1,205,255,223,0,3,2,105,2,253,2,158,2,161,1,127,0,42,255,205,254,233,254,140,254,232,253,231,252, +118,252,245,252,59,253,122,253,253,253,39,254,122,254,92,255,239,255,171,255,121,255,78,0,220,0,68,255,163,253,216,254, +67,0,94,255,183,254,25,255,119,255,165,0,87,1,146,0,148,0,105,1,255,1,169,2,100,3,63,4,93,4,22,3, +230,1,54,1,207,0,224,0,235,0,202,1,61,3,129,3,151,3,213,3,32,3,136,2,134,2,135,2,140,2,105,2, +114,2,136,2,83,2,52,2,230,1,241,1,104,2,130,1,145,0,118,1,38,2,147,1,148,0,90,255,128,254,59,254, +14,254,237,253,184,253,81,253,27,253,120,253,186,253,49,253,32,253,32,254,186,254,176,254,214,254,247,254,245,254,135,255, +104,0,96,0,70,0,120,1,108,2,53,2,59,2,5,3,254,3,103,4,228,4,223,6,137,8,75,8,43,8,147,8, +152,8,42,9,110,9,84,7,156,4,239,3,99,3,1,1,142,255,110,0,19,2,162,4,12,7,35,7,16,6,216,4, +154,2,69,255,100,251,48,248,167,246,121,246,53,247,213,247,229,247,105,248,104,248,100,246,194,244,23,246,55,248,188,248, +129,249,58,251,233,251,215,251,23,251,179,248,136,246,194,245,213,245,79,247,59,249,132,250,204,251,126,252,18,253,8,255, +234,0,109,1,205,1,183,2,169,3,107,4,52,5,174,5,177,5,231,5,232,5,38,5,82,4,103,3,167,2,232,2, +27,3,103,2,255,1,60,2,32,2,147,1,209,0,120,255,139,254,56,255,156,255,179,254,200,253,76,252,239,250,178,251, +115,252,227,251,17,252,132,252,102,252,245,252,217,253,72,254,225,254,200,255,56,0,224,255,206,255,246,0,56,2,143,2, +14,3,46,4,8,5,199,5,151,6,155,6,108,6,166,6,126,6,80,6,51,6,58,5,251,3,252,2,14,2,49,1, +155,0,161,1,205,2,1,1,81,255,85,0,1,1,105,1,53,2,63,1,124,0,228,1,210,2,67,2,235,1,175,2, +172,3,224,3,222,3,197,3,117,3,188,3,215,3,50,3,228,2,136,2,178,1,72,1,30,1,185,0,91,0,62,0, +62,0,232,255,138,255,137,255,57,255,131,254,23,254,14,254,4,254,129,253,239,252,254,252,238,252,32,252,87,251,3,251, +92,251,170,252,208,253,194,253,111,253,114,253,89,253,66,253,82,253,152,253,65,254,218,254,253,254,123,254,247,253,198,254, +123,255,162,254,81,254,204,254,12,255,21,0,231,0,157,0,223,0,35,1,208,0,16,1,30,1,121,0,1,0,110,255, +187,254,164,254,46,255,252,255,191,0,118,1,211,1,117,1,66,1,5,2,129,2,154,1,177,0,208,0,83,0,240,254, +31,254,75,253,55,252,223,251,103,251,73,250,76,249,120,248,32,248,177,248,180,249,152,250,22,251,170,251,108,252,106,252, +77,252,51,253,18,254,35,254,33,254,121,254,7,255,182,255,106,0,34,1,241,1,149,2,233,2,72,3,151,3,129,3, +41,3,116,2,73,1,236,255,243,254,242,254,34,255,219,254,15,255,145,255,213,255,137,0,20,1,239,0,204,0,88,0, +212,255,2,0,9,0,188,255,186,255,194,255,233,255,67,0,110,0,93,0,37,0,6,0,196,255,215,254,21,254,10,254, +234,253,235,253,123,254,218,254,250,254,96,255,171,255,209,255,63,0,99,0,240,255,211,255,30,0,91,0,27,1,98,2, +65,3,160,3,7,4,126,4,125,4,242,3,60,3,80,2,188,1,41,2,124,2,20,2,153,1,32,1,46,1,221,1, +206,1,24,1,198,0,173,0,193,0,24,1,95,1,137,1,108,1,241,0,118,0,73,0,103,0,128,0,125,0,122,0, +80,0,36,0,227,255,68,255,220,254,219,254,235,254,45,255,64,255,103,255,87,0,220,0,161,0,242,0,29,1,108,0, +232,255,194,255,219,255,97,0,159,0,77,0,191,255,208,254,28,254,40,254,11,254,205,253,13,254,39,254,32,254,105,254, +187,254,84,255,223,255,6,0,168,0,38,1,79,1,138,2,130,3,40,3,251,2,199,2,168,2,175,3,93,4,174,3, +241,2,252,2,67,3,208,2,124,2,121,3,168,4,103,5,13,6,241,5,66,5,230,4,194,4,145,4,62,4,197,3, +50,3,161,2,213,1,71,0,177,254,246,253,221,253,165,254,159,255,114,255,66,255,217,255,249,255,128,255,225,254,66,254, +192,253,228,252,239,251,144,251,86,251,243,250,162,250,81,250,68,250,228,250,196,251,62,252,46,252,151,251,224,250,150,250, +101,250,52,250,51,250,232,249,168,249,199,249,206,249,70,250,198,250,69,250,225,249,235,249,192,249,6,250,152,250,9,251, +173,251,102,252,68,253,28,254,175,254,93,255,232,255,106,0,29,1,98,1,148,1,185,1,155,1,108,2,76,3,215,2, +150,2,239,2,64,3,72,4,123,5,174,5,144,5,238,5,62,6,16,6,218,5,109,5,159,4,184,4,123,5,44,5, +77,4,8,4,159,3,162,2,16,2,26,2,193,1,234,0,17,0,32,255,65,254,201,253,138,253,236,252,226,251,142,251, +217,251,154,251,117,251,187,251,19,252,24,253,203,253,65,253,14,253,113,253,98,253,9,253,251,252,129,253,22,254,108,254, +15,255,209,255,185,0,230,1,116,2,120,2,158,2,190,2,250,2,89,3,166,3,9,4,78,4,16,4,131,3,48,3, +224,2,255,1,47,1,220,0,132,0,109,0,113,0,0,0,197,255,239,255,0,0,65,0,219,0,89,1,98,1,102,1, +127,1,236,0,88,0,164,0,184,0,87,0,86,0,87,0,39,0,60,0,88,0,253,255,174,255,40,0,204,0,243,0, +15,1,54,1,73,1,27,1,94,0,166,255,71,255,213,254,128,254,120,254,124,254,95,254,114,254,24,255,136,255,95,255, +173,255,105,0,191,0,174,0,143,0,178,0,184,0,104,0,120,0,199,0,247,0,93,1,236,1,144,2,250,2,205,2, +154,2,115,2,254,1,158,1,149,1,242,1,128,2,176,2,138,2,85,2,69,2,96,2,54,2,206,1,135,1,79,1, +224,0,65,0,222,255,107,255,168,254,115,254,103,254,187,253,71,253,1,253,174,252,242,252,16,253,191,252,229,252,19,253, +228,252,225,252,19,253,50,253,98,253,206,253,19,254,18,254,67,254,170,254,47,255,165,255,166,255,183,255,2,0,244,255, +179,255,71,255,233,254,32,255,109,255,147,255,196,255,187,255,193,255,5,0,50,0,56,0,74,0,245,0,207,1,214,1, +140,1,77,1,237,0,248,0,43,1,226,0,115,0,94,0,144,0,60,0,117,255,89,255,161,255,160,255,142,255,128,255, +112,255,61,255,4,255,48,255,126,255,219,255,62,0,50,0,83,0,255,0,97,1,69,1,241,0,144,0,44,0,127,255, +174,254,9,254,235,253,170,254,175,255,86,0,126,0,58,0,229,255,55,255,126,254,188,254,250,254,186,254,2,255,66,255, +64,255,168,255,187,255,105,255,92,255,30,255,167,254,116,254,122,254,125,254,111,254,143,254,5,255,162,255,14,0,83,0, +231,0,68,1,176,0,12,0,242,255,233,255,222,255,196,255,128,255,83,255,87,255,116,255,144,255,195,255,0,0,240,255, +228,255,96,0,247,0,248,0,153,0,151,0,160,0,45,0,2,0,38,0,245,255,239,255,246,255,182,255,199,255,231,255, +255,255,105,0,163,0,225,0,115,1,150,1,116,1,165,1,181,1,60,1,174,0,149,0,183,0,213,0,235,0,102,0, +189,255,3,0,111,0,104,0,182,0,18,1,178,0,252,255,154,255,109,255,44,255,38,255,81,255,59,255,16,255,244,254, +212,254,217,254,220,254,203,254,171,254,91,254,70,254,89,254,24,254,51,254,207,254,244,254,10,255,168,255,247,255,183,255, +124,255,87,255,114,255,245,255,98,0,195,0,82,1,122,1,95,1,171,1,1,2,81,2,238,2,80,3,77,3,55,3, +9,3,22,3,130,3,194,3,176,3,84,3,161,2,206,1,58,1,30,1,255,0,116,0,49,0,112,0,93,0,202,255, +55,255,220,254,131,254,35,254,46,254,82,254,5,254,12,254,131,254,129,254,78,254,110,254,192,254,49,255,103,255,76,255, +251,254,88,254,0,254,32,254,249,253,198,253,233,253,49,254,177,254,50,255,147,255,242,255,6,0,32,0,152,0,229,0, +225,0,133,0,13,0,50,0,75,0,178,255,99,255,133,255,157,255,238,255,56,0,39,0,34,0,74,0,123,0,154,0, +183,0,43,1,147,1,88,1,237,0,191,0,212,0,44,1,86,1,65,1,72,1,40,1,233,0,242,0,1,1,252,0, +242,0,187,0,124,0,57,0,235,255,178,255,83,255,255,254,238,254,159,254,74,254,97,254,167,254,0,255,15,255,162,254, +107,254,112,254,99,254,147,254,244,254,81,255,166,255,207,255,187,255,122,255,115,255,170,255,159,255,173,255,7,0,28,0, +88,0,244,0,29,1,233,0,234,0,18,1,61,1,75,1,84,1,140,1,152,1,57,1,229,0,216,0,203,0,176,0, +146,0,77,0,8,0,249,255,14,0,67,0,105,0,111,0,126,0,74,0,18,0,135,0,251,0,188,0,70,0,233,255, +207,255,38,0,114,0,64,0,239,255,252,255,48,0,65,0,111,0,191,0,237,0,4,1,10,1,24,1,62,1,66,1, +59,1,37,1,196,0,153,0,191,0,106,0,183,255,88,255,65,255,46,255,45,255,70,255,54,255,212,254,149,254,187,254, +207,254,164,254,135,254,107,254,88,254,151,254,5,255,64,255,112,255,217,255,20,0,204,255,168,255,230,255,226,255,193,255, +222,255,185,255,86,255,56,255,51,255,25,255,51,255,167,255,32,0,56,0,14,0,202,255,140,255,152,255,204,255,245,255, +31,0,92,0,193,0,199,0,89,0,120,0,168,0,38,0,201,255,127,255,105,255,128,0,134,1,141,1,93,1,172,0, +195,255,126,255,10,255,54,254,209,253,202,253,249,253,81,254,160,254,213,254,255,254,99,255,159,255,53,255,250,254,94,255, +162,255,156,255,172,255,240,255,19,0,196,255,122,255,127,255,163,255,248,255,26,0,202,255,171,255,204,255,200,255,196,255, +211,255,246,255,241,255,106,255,7,255,78,255,150,255,156,255,170,255,179,255,156,255,93,255,42,255,85,255,141,255,137,255, +136,255,124,255,102,255,178,255,26,0,251,255,164,255,172,255,236,255,251,255,3,0,102,0,216,0,210,0,146,0,134,0, +133,0,120,0,128,0,113,0,93,0,131,0,178,0,178,0,146,0,119,0,113,0,76,0,55,0,157,0,238,0,146,0, +46,0,67,0,67,0,192,255,64,255,79,255,156,255,212,255,45,0,177,0,2,1,216,0,167,0,246,0,15,1,176,0, +171,0,165,0,143,0,135,1,110,2,194,1,236,0,232,0,21,1,118,1,237,1,248,1,219,1,220,1,190,1,78,1, +226,0,9,1,114,1,118,1,42,1,180,0,90,0,125,0,162,0,97,0,44,0,70,0,80,0,217,255,82,255,111,255, +132,255,31,255,6,255,57,255,71,255,73,255,46,255,19,255,15,255,251,254,21,255,70,255,69,255,71,255,66,255,60,255, +99,255,115,255,156,255,15,0,63,0,16,0,3,0,56,0,68,0,224,255,133,255,135,255,140,255,123,255,117,255,131,255, +168,255,178,255,173,255,220,255,17,0,16,0,247,255,225,255,205,255,217,255,0,0,240,255,208,255,242,255,8,0,26,0, +36,0,179,255,129,255,31,0,168,0,245,0,57,1,6,1,187,0,194,0,205,0,217,0,212,0,140,0,67,0,36,0, +241,255,134,255,18,255,205,254,174,254,126,254,70,254,84,254,111,254,55,254,44,254,144,254,207,254,197,254,179,254,198,254, +223,254,157,254,146,254,55,255,194,255,7,0,53,0,227,255,103,255,49,255,47,255,107,255,143,255,137,255,147,255,89,255, +17,255,42,255,85,255,140,255,209,255,229,255,239,255,254,255,11,0,36,0,66,0,120,0,160,0,147,0,130,0,84,0, +19,0,19,0,23,0,252,255,8,0,36,0,36,0,253,255,211,255,235,255,13,0,239,255,213,255,6,0,80,0,82,0, +44,0,67,0,89,0,54,0,45,0,45,0,25,0,66,0,100,0,55,0,43,0,43,0,243,255,239,255,32,0,33,0, +34,0,67,0,104,0,121,0,85,0,70,0,104,0,87,0,63,0,88,0,94,0,115,0,149,0,111,0,71,0,85,0, +130,0,217,0,24,1,34,1,73,1,111,1,108,1,127,1,155,1,141,1,128,1,142,1,163,1,183,1,165,1,86,1, +20,1,24,1,36,1,255,0,208,0,213,0,218,0,144,0,97,0,179,0,252,0,231,0,200,0,146,0,78,0,103,0, +156,0,129,0,111,0,131,0,96,0,47,0,15,0,205,255,177,255,213,255,207,255,175,255,189,255,230,255,245,255,211,255, +192,255,218,255,212,255,196,255,158,255,7,255,163,254,6,255,84,255,16,255,209,254,211,254,199,254,159,254,149,254,206,254, +3,255,249,254,12,255,127,255,231,255,3,0,15,0,25,0,34,0,76,0,128,0,171,0,204,0,221,0,219,0,160,0, +79,0,64,0,55,0,251,255,218,255,221,255,238,255,14,0,29,0,48,0,80,0,59,0,244,255,208,255,222,255,212,255, +168,255,160,255,172,255,185,255,229,255,239,255,216,255,244,255,9,0,227,255,178,255,127,255,82,255,57,255,37,255,21,255, +6,255,249,254,241,254,221,254,187,254,155,254,152,254,166,254,142,254,123,254,159,254,203,254,245,254,16,255,11,255,37,255, +74,255,60,255,62,255,120,255,146,255,95,255,74,255,129,255,154,255,185,255,0,0,186,255,85,255,196,255,50,0,1,0, +226,255,246,255,2,0,16,0,14,0,6,0,3,0,14,0,64,0,101,0,106,0,125,0,126,0,126,0,157,0,131,0, +82,0,139,0,242,0,24,1,14,1,251,0,239,0,242,0,3,1,31,1,54,1,63,1,59,1,34,1,228,0,148,0, +97,0,75,0,63,0,95,0,129,0,90,0,49,0,35,0,243,255,214,255,213,255,192,255,201,255,226,255,213,255,184,255, +167,255,206,255,252,255,220,255,192,255,171,255,128,255,154,255,175,255,114,255,71,255,14,255,232,254,52,255,100,255,95,255, +125,255,120,255,101,255,125,255,153,255,213,255,21,0,27,0,46,0,105,0,152,0,179,0,202,0,214,0,205,0,210,0, +216,0,178,0,141,0,106,0,56,0,75,0,128,0,141,0,124,0,26,0,165,255,157,255,191,255,200,255,209,255,210,255, +217,255,252,255,15,0,220,255,159,255,193,255,225,255,191,255,179,255,143,255,110,255,196,255,253,255,211,255,205,255,204,255, +184,255,233,255,53,0,73,0,54,0,61,0,67,0,21,0,5,0,42,0,31,0,231,255,178,255,147,255,165,255,211,255, +249,255,0,0,236,255,196,255,146,255,171,255,215,255,126,255,56,255,103,255,101,255,110,255,177,255,154,255,102,255,116,255, +162,255,238,255,35,0,33,0,15,0,225,255,185,255,194,255,220,255,228,255,192,255,142,255,153,255,204,255,249,255,27,0, +49,0,47,0,16,0,17,0,53,0,44,0,18,0,2,0,249,255,64,0,133,0,83,0,19,0,249,255,217,255,210,255, +213,255,230,255,27,0,39,0,3,0,234,255,221,255,230,255,9,0,28,0,32,0,45,0,73,0,100,0,101,0,84,0, +83,0,88,0,77,0,80,0,100,0,98,0,90,0,93,0,99,0,130,0,164,0,169,0,175,0,155,0,109,0,128,0, +169,0,154,0,138,0,132,0,107,0,98,0,82,0,27,0,10,0,52,0,54,0,247,255,215,255,8,0,57,0,26,0, +221,255,205,255,220,255,218,255,200,255,225,255,1,0,174,255,81,255,172,255,28,0,225,255,155,255,183,255,212,255,216,255, +234,255,33,0,116,0,155,0,146,0,140,0,132,0,111,0,74,0,26,0,7,0,247,255,215,255,12,0,134,0,177,0, +150,0,135,0,130,0,160,0,188,0,118,0,30,0,20,0,18,0,8,0,38,0,61,0,57,0,43,0,15,0,8,0, +30,0,36,0,30,0,28,0,39,0,74,0,77,0,12,0,231,255,29,0,84,0,80,0,65,0,41,0,4,0,5,0, +23,0,12,0,6,0,23,0,28,0,14,0,4,0,28,0,64,0,54,0,21,0,31,0,75,0,108,0,98,0,51,0, +14,0,24,0,42,0,23,0,254,255,16,0,36,0,1,0,207,255,207,255,221,255,200,255,195,255,234,255,230,255,188,255, +186,255,180,255,151,255,149,255,136,255,86,255,43,255,23,255,34,255,37,255,10,255,36,255,95,255,80,255,57,255,109,255, +158,255,149,255,149,255,212,255,20,0,248,255,192,255,219,255,254,255,199,255,143,255,155,255,161,255,160,255,180,255,173,255, +157,255,179,255,217,255,251,255,21,0,33,0,22,0,249,255,253,255,28,0,32,0,36,0,30,0,234,255,198,255,180,255, +163,255,192,255,241,255,31,0,51,0,247,255,190,255,185,255,192,255,240,255,5,0,219,255,238,255,253,255,208,255,253,255, +62,0,7,0,210,255,227,255,233,255,213,255,205,255,214,255,226,255,236,255,225,255,217,255,1,0,24,0,254,255,7,0, +31,0,28,0,24,0,239,255,181,255,174,255,186,255,198,255,225,255,8,0,46,0,27,0,243,255,12,0,18,0,212,255, +176,255,180,255,179,255,178,255,192,255,221,255,242,255,8,0,20,0,250,255,240,255,254,255,247,255,250,255,12,0,9,0, +9,0,17,0,26,0,23,0,246,255,243,255,18,0,7,0,254,255,16,0,251,255,229,255,252,255,14,0,18,0,23,0, +19,0,1,0,252,255,18,0,25,0,1,0,248,255,250,255,252,255,19,0,50,0,87,0,122,0,110,0,66,0,39,0, +19,0,3,0,25,0,87,0,103,0,29,0,249,255,48,0,77,0,67,0,88,0,111,0,100,0,90,0,94,0,80,0, +52,0,66,0,94,0,67,0,38,0,31,0,20,0,68,0,115,0,45,0,228,255,230,255,219,255,196,255,199,255,222,255, +244,255,216,255,180,255,210,255,231,255,210,255,193,255,177,255,172,255,181,255,182,255,202,255,233,255,241,255,238,255,232,255, +208,255,170,255,154,255,170,255,172,255,175,255,202,255,203,255,194,255,219,255,233,255,231,255,237,255,241,255,251,255,15,0, +37,0,52,0,50,0,56,0,68,0,61,0,56,0,52,0,28,0,243,255,207,255,229,255,29,0,32,0,8,0,247,255, +232,255,2,0,35,0,34,0,33,0,19,0,247,255,250,255,251,255,235,255,249,255,36,0,70,0,88,0,105,0,91,0, +37,0,40,0,76,0,18,0,204,255,235,255,9,0,239,255,219,255,213,255,199,255,186,255,181,255,168,255,145,255,166,255, +220,255,219,255,211,255,24,0,79,0,58,0,49,0,91,0,133,0,153,0,151,0,121,0,86,0,74,0,71,0,46,0, +15,0,20,0,51,0,55,0,37,0,66,0,100,0,59,0,22,0,54,0,78,0,71,0,57,0,27,0,10,0,15,0, +17,0,24,0,39,0,49,0,32,0,1,0,254,255,253,255,230,255,234,255,247,255,228,255,213,255,226,255,249,255,254,255, +235,255,231,255,238,255,227,255,218,255,218,255,205,255,193,255,200,255,213,255,226,255,240,255,242,255,236,255,238,255,236,255, +237,255,4,0,19,0,16,0,13,0,252,255,249,255,36,0,68,0,49,0,27,0,40,0,66,0,70,0,58,0,47,0, +38,0,34,0,45,0,70,0,84,0,69,0,46,0,34,0,37,0,46,0,48,0,50,0,51,0,39,0,39,0,60,0, +63,0,35,0,14,0,23,0,29,0,1,0,242,255,253,255,3,0,6,0,1,0,237,255,217,255,200,255,188,255,183,255, +171,255,163,255,162,255,159,255,165,255,174,255,181,255,195,255,201,255,204,255,221,255,241,255,251,255,244,255,225,255,210,255, +205,255,210,255,213,255,221,255,241,255,243,255,226,255,244,255,25,0,30,0,25,0,43,0,69,0,77,0,66,0,45,0, +25,0,29,0,43,0,41,0,37,0,40,0,39,0,48,0,48,0,16,0,246,255,245,255,248,255,5,0,21,0,4,0, +226,255,216,255,225,255,231,255,225,255,209,255,207,255,224,255,235,255,235,255,230,255,227,255,228,255,228,255,221,255,209,255, +205,255,199,255,176,255,164,255,174,255,179,255,185,255,191,255,190,255,204,255,224,255,233,255,237,255,218,255,203,255,230,255, +255,255,253,255,251,255,0,0,7,0,9,0,11,0,25,0,29,0,15,0,10,0,28,0,36,0,11,0,250,255,16,0, +39,0,53,0,66,0,45,0,19,0,29,0,38,0,26,0,21,0,23,0,20,0,17,0,10,0,3,0,251,255,235,255, +217,255,218,255,232,255,245,255,251,255,245,255,238,255,238,255,228,255,220,255,223,255,215,255,202,255,225,255,4,0,249,255, +232,255,12,0,36,0,1,0,231,255,245,255,255,255,249,255,239,255,228,255,222,255,236,255,253,255,242,255,230,255,248,255, +4,0,249,255,245,255,1,0,13,0,16,0,13,0,14,0,16,0,19,0,27,0,33,0,31,0,21,0,12,0,14,0, +22,0,25,0,24,0,21,0,20,0,20,0,14,0,8,0,1,0,255,255,1,0,243,255,232,255,251,255,17,0,16,0, +16,0,23,0,26,0,26,0,20,0,14,0,13,0,1,0,239,255,247,255,5,0,246,255,232,255,247,255,9,0,4,0, +249,255,249,255,1,0,3,0,3,0,11,0,16,0,8,0,254,255,245,255,236,255,234,255,234,255,235,255,241,255,239,255, +228,255,231,255,237,255,236,255,240,255,254,255,9,0,13,0,11,0,12,0,18,0,28,0,31,0,12,0,0,0,14,0, +21,0,18,0,20,0,17,0,10,0,8,0,3,0,4,0,0,0,244,255,240,255,230,255,215,255,225,255,236,255,222,255, +211,255,204,255,195,255,210,255,229,255,215,255,195,255,206,255,223,255,224,255,227,255,235,255,239,255,250,255,0,0,250,255, +248,255,245,255,237,255,247,255,255,255,250,255,255,255,5,0,7,0,14,0,14,0,13,0,21,0,22,0,17,0,24,0, +36,0,36,0,21,0,8,0,3,0,11,0,23,0,10,0,250,255,5,0,16,0,17,0,18,0,13,0,14,0,13,0, +5,0,7,0,11,0,6,0,5,0,5,0,2,0,254,255,249,255,249,255,253,255,255,255,255,255,5,0,13,0,10,0, +3,0,8,0,14,0,22,0,28,0,14,0,3,0,4,0,8,0,17,0,21,0,11,0,6,0,9,0,9,0,250,255, +235,255,249,255,5,0,248,255,244,255,1,0,9,0,0,0,244,255,2,0,21,0,16,0,5,0,11,0,20,0,6,0, +238,255,244,255,8,0,17,0,20,0,21,0,22,0,28,0,30,0,36,0,47,0,47,0,41,0,39,0,41,0,32,0, +21,0,30,0,35,0,36,0,48,0,30,0,5,0,26,0,46,0,21,0,0,0,20,0,42,0,17,0,252,255,33,0, +58,0,27,0,253,255,6,0,19,0,5,0,238,255,219,255,208,255,230,255,250,255,221,255,201,255,230,255,244,255,224,255, +211,255,227,255,244,255,233,255,221,255,236,255,253,255,2,0,1,0,251,255,244,255,245,255,246,255,239,255,238,255,249,255, +4,0,3,0,251,255,7,0,29,0,11,0,241,255,5,0,31,0,28,0,18,0,20,0,30,0,29,0,18,0,16,0, +19,0,32,0,50,0,49,0,39,0,36,0,25,0,1,0,242,255,251,255,4,0,5,0,13,0,3,0,247,255,7,0, +15,0,7,0,8,0,5,0,250,255,242,255,241,255,7,0,26,0,11,0,247,255,242,255,249,255,7,0,12,0,1,0, +247,255,251,255,6,0,9,0,12,0,13,0,3,0,0,0,1,0,242,255,229,255,236,255,247,255,239,255,230,255,243,255, +251,255,239,255,235,255,235,255,229,255,233,255,240,255,233,255,226,255,235,255,244,255,237,255,228,255,231,255,235,255,237,255, +239,255,238,255,236,255,235,255,233,255,235,255,232,255,219,255,218,255,232,255,240,255,238,255,237,255,249,255,2,0,242,255, +222,255,226,255,240,255,241,255,239,255,240,255,243,255,247,255,250,255,245,255,241,255,249,255,255,255,248,255,247,255,250,255, +237,255,235,255,248,255,243,255,232,255,236,255,243,255,245,255,242,255,240,255,245,255,253,255,2,0,0,0,251,255,254,255, +255,255,250,255,254,255,3,0,255,255,0,0,9,0,9,0,1,0,2,0,6,0,0,0,251,255,253,255,254,255,255,255, +252,255,246,255,242,255,235,255,235,255,247,255,252,255,243,255,236,255,240,255,244,255,243,255,244,255,242,255,237,255,234,255, +231,255,234,255,237,255,235,255,236,255,233,255,227,255,234,255,244,255,247,255,251,255,249,255,242,255,236,255,229,255,226,255, +223,255,223,255,232,255,231,255,227,255,244,255,6,0,4,0,254,255,2,0,3,0,247,255,239,255,253,255,11,0,8,0, +1,0,4,0,9,0,15,0,22,0,21,0,14,0,11,0,4,0,252,255,0,0,5,0,8,0,15,0,23,0,23,0, +20,0,22,0,29,0,32,0,29,0,26,0,24,0,15,0,9,0,8,0,1,0,4,0,13,0,254,255,243,255,5,0, +15,0,7,0,8,0,7,0,4,0,16,0,27,0,23,0,16,0,14,0,18,0,22,0,22,0,18,0,9,0,5,0, +11,0,14,0,9,0,10,0,13,0,255,255,239,255,238,255,245,255,247,255,245,255,247,255,255,255,4,0,5,0,4,0, +1,0,5,0,11,0,11,0,13,0,10,0,253,255,255,255,10,0,8,0,7,0,9,0,1,0,0,0,11,0,16,0, +8,0,253,255,247,255,242,255,247,255,8,0,13,0,1,0,255,255,7,0,16,0,24,0,21,0,12,0,13,0,17,0, +17,0,19,0,18,0,19,0,23,0,21,0,14,0,13,0,16,0,20,0,21,0,16,0,10,0,13,0,23,0,21,0, +15,0,22,0,26,0,21,0,19,0,17,0,11,0,8,0,3,0,247,255,239,255,247,255,6,0,7,0,4,0,5,0, +7,0,7,0,254,255,247,255,255,255,4,0,0,0,251,255,250,255,253,255,252,255,248,255,249,255,250,255,253,255,254,255, +246,255,247,255,1,0,5,0,5,0,255,255,245,255,245,255,253,255,5,0,4,0,254,255,255,255,253,255,250,255,254,255, +253,255,254,255,0,0,254,255,2,0,4,0,254,255,249,255,243,255,248,255,0,0,248,255,249,255,7,0,10,0,8,0, +3,0,253,255,253,255,0,0,3,0,7,0,9,0,13,0,13,0,0,0,249,255,0,0,6,0,3,0,2,0,3,0, +253,255,253,255,1,0,254,255,0,0,2,0,252,255,254,255,5,0,8,0,7,0,4,0,4,0,3,0,253,255,251,255, +251,255,248,255,249,255,246,255,240,255,238,255,239,255,248,255,0,0,253,255,248,255,254,255,7,0,2,0,251,255,253,255, +254,255,2,0,11,0,4,0,253,255,9,0,14,0,0,0,243,255,248,255,5,0,4,0,250,255,245,255,245,255,251,255, +255,255,252,255,249,255,249,255,251,255,251,255,250,255,251,255,249,255,251,255,1,0,254,255,250,255,253,255,253,255,255,255, +4,0,8,0,10,0,3,0,249,255,249,255,255,255,8,0,12,0,7,0,6,0,1,0,255,255,3,0,3,0,1,0, +255,255,252,255,0,0,1,0,1,0,8,0,7,0,255,255,255,255,2,0,1,0,3,0,6,0,2,0,252,255,253,255, +253,255,252,255,254,255,251,255,248,255,252,255,254,255,252,255,248,255,250,255,5,0,6,0,254,255,3,0,10,0,6,0, +6,0,8,0,4,0,255,255,251,255,251,255,254,255,0,0,3,0,4,0,5,0,6,0,7,0,6,0,0,0,253,255, +1,0,1,0,1,0,5,0,8,0,8,0,6,0,4,0,0,0,252,255,249,255,249,255,247,255,247,255,251,255,254,255, +254,255,250,255,246,255,249,255,254,255,255,255,250,255,247,255,250,255,0,0,253,255,247,255,248,255,252,255,253,255,5,0, +12,0,7,0,253,255,255,255,5,0,3,0,255,255,251,255,247,255,252,255,2,0,0,0,0,0,255,255,250,255,254,255, +5,0,4,0,255,255,253,255,251,255,252,255,254,255,250,255,247,255,252,255,2,0,2,0,3,0,5,0,7,0,6,0, +3,0,255,255,252,255,253,255,254,255,253,255,252,255,255,255,4,0,6,0,7,0,4,0,1,0,0,0,255,255,255,255, +254,255,252,255,254,255,2,0,1,0,254,255,253,255,254,255,254,255,251,255,249,255,253,255,254,255,253,255,252,255,253,255, +254,255,0,0,255,255,255,255,0,0,254,255,251,255,252,255,254,255,1,0,3,0,1,0,0,0,2,0,1,0,255,255, +1,0,4,0,0,0,250,255,251,255,0,0,2,0,0,0,1,0,1,0,1,0,0,0,251,255,249,255,254,255,0,0, +254,255,3,0,7,0,3,0,1,0,2,0,0,0,1,0,2,0,0,0,0,0,1,0,254,255,253,255,254,255,255,255, +255,255,255,255,1,0,6,0,5,0,0,0,255,255,1,0,0,0,3,0,6,0,1,0,255,255,1,0,255,255,0,0, +3,0,255,255,254,255,3,0,5,0,5,0,5,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,0,0,1,0, +255,255,255,255,0,0,1,0,5,0,7,0,4,0,255,255,253,255,0,0,5,0,5,0,4,0,0,0,251,255,251,255, +255,255,254,255,253,255,255,255,3,0,1,0,0,0,2,0,3,0,3,0,4,0,3,0,1,0,255,255,254,255,1,0, +4,0,2,0,255,255,0,0,2,0,4,0,4,0,0,0,253,255,0,0,1,0,255,255,253,255,255,255,2,0,2,0, +1,0,255,255,251,255,254,255,7,0,7,0,5,0,6,0,5,0,1,0,1,0,1,0,2,0,3,0,3,0,1,0, +1,0,2,0,3,0,2,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,4,0,2,0,255,255,1,0, +4,0,2,0,1,0,1,0,0,0,255,255,253,255,253,255,254,255,0,0,1,0,3,0,3,0,4,0,7,0,4,0, +255,255,255,255,0,0,2,0,5,0,4,0,1,0,1,0,255,255,255,255,2,0,1,0,0,0,1,0,1,0,255,255, +1,0,4,0,5,0,5,0,4,0,1,0,255,255,255,255,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,3,0,2,0,255,255,255,255,0,0,0,0,1,0,254,255,250,255,251,255,252,255,251,255,254,255,254,255, +253,255,1,0,3,0,0,0,254,255,254,255,255,255,1,0,2,0,3,0,5,0,2,0,0,0,4,0,5,0,1,0, +255,255,254,255,255,255,2,0,2,0,255,255,253,255,253,255,253,255,255,255,1,0,0,0,255,255,2,0,3,0,4,0, +4,0,2,0,255,255,255,255,0,0,1,0,2,0,255,255,254,255,0,0,1,0,2,0,2,0,255,255,253,255,255,255, +0,0,0,0,255,255,252,255,252,255,255,255,1,0,255,255,253,255,254,255,1,0,2,0,3,0,3,0,3,0,3,0, +2,0,2,0,3,0,2,0,0,0,0,0,255,255,1,0,4,0,0,0,252,255,254,255,0,0,2,0,3,0,1,0, +255,255,0,0,0,0,2,0,4,0,1,0,255,255,255,255,255,255,255,255,255,255,1,0,3,0,3,0,0,0,254,255, +253,255,252,255,252,255,255,255,2,0,5,0,4,0,0,0,252,255,253,255,254,255,254,255,255,255,255,255,253,255,255,255, +1,0,0,0,0,0,0,0,0,0,1,0,255,255,252,255,252,255,253,255,252,255,0,0,3,0,0,0,253,255,252,255, +253,255,252,255,250,255,252,255,0,0,2,0,0,0,254,255,253,255,255,255,1,0,1,0,0,0,255,255,254,255,0,0, +2,0,0,0,0,0,1,0,1,0,255,255,253,255,251,255,249,255,249,255,251,255,253,255,255,255,0,0,0,0,0,0, +0,0,1,0,4,0,3,0,0,0,2,0,5,0,1,0,253,255,253,255,254,255,0,0,2,0,1,0,0,0,253,255, +253,255,254,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,254,255,254,255,0,0,0,0,254,255,254,255,0,0, +1,0,255,255,254,255,254,255,253,255,253,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255,253,255,254,255, +255,255,253,255,252,255,255,255,255,255,255,255,0,0,254,255,253,255,254,255,2,0,4,0,2,0,0,0,0,0,255,255, +255,255,255,255,252,255,253,255,255,255,255,255,254,255,253,255,251,255,250,255,253,255,255,255,0,0,2,0,2,0,2,0, +3,0,2,0,1,0,0,0,0,0,0,0,255,255,253,255,254,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0, +255,255,252,255,250,255,254,255,1,0,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,1,0,2,0,1,0, +1,0,0,0,0,0,0,0,0,0,253,255,253,255,255,255,0,0,255,255,255,255,254,255,252,255,252,255,253,255,0,0, +254,255,252,255,252,255,251,255,252,255,1,0,3,0,1,0,0,0,255,255,254,255,253,255,254,255,255,255,254,255,252,255, +252,255,254,255,1,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,253,255, +252,255,254,255,255,255,252,255,250,255,254,255,3,0,4,0,3,0,1,0,255,255,254,255,1,0,0,0,251,255,251,255, +0,0,3,0,5,0,5,0,0,0,254,255,0,0,0,0,254,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,3,0,3,0,1,0,0,0,255,255,1,0,3,0, +0,0,255,255,2,0,0,0,0,0,2,0,0,0,254,255,254,255,253,255,252,255,255,255,1,0,1,0,255,255,254,255, +254,255,253,255,252,255,253,255,254,255,252,255,250,255,253,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,2,0,0,0,254,255,253,255,253,255,2,0,5,0,2,0,255,255,255,255,254,255,1,0, +3,0,255,255,251,255,251,255,252,255,252,255,253,255,0,0,0,0,254,255,254,255,253,255,252,255,254,255,0,0,0,0, +0,0,0,0,0,0,254,255,251,255,253,255,0,0,255,255,253,255,255,255,0,0,1,0,0,0,254,255,253,255,255,255, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,254,255,255,255, +255,255,254,255,255,255,255,255,254,255,255,255,1,0,0,0,254,255,253,255,255,255,0,0,255,255,0,0,2,0,1,0, +1,0,0,0,254,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255,253,255,254,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,0,0,0,0,0,0,255,255,254,255,254,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,2,0,0,0,255,255,0,0,0,0,0,0,255,255,254,255, +255,255,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,1,0,0,0,255,255,254,255,255,255,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +1,0,0,0,0,0,2,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,0,0,255,255,1,0,2,0,1,0,1,0,1,0,0,0, +255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,2,0,0,0, +1,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,0,0, +1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,2,0,3,0,2,0,3,0,2,0,2,0,2,0,2,0, +2,0,3,0,3,0,2,0,1,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +3,0,3,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0, +2,0,1,0,2,0,3,0,2,0,1,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,3,0,3,0, +2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0, +2,0,3,0,3,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,2,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,2,0,2,0,3,0,4,0,3,0,3,0,2,0,2,0, +2,0,3,0,4,0,4,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0, +4,0,3,0,3,0,4,0,3,0,2,0,4,0,5,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,4,0,5,0,4,0,2,0, +2,0,3,0,4,0,4,0,2,0,2,0,4,0,4,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0, +3,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,3,0,3,0, +3,0,3,0,2,0,4,0,4,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0, +3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,4,0,3,0,4,0,3,0,2,0,4,0, +4,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0, +4,0,3,0,2,0,3,0,4,0,2,0,2,0,4,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,3,0, +3,0,4,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0, +4,0,4,0,3,0,3,0,2,0,3,0,4,0,3,0,3,0,4,0,3,0,4,0,4,0,3,0,4,0,5,0, +4,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,5,0,4,0,3,0, +2,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,4,0,4,0,4,0, +4,0,4,0,4,0,5,0,4,0,3,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,3,0,4,0,5,0,5,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0, +4,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0, +4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0, +3,0,5,0,5,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0, +5,0,4,0,4,0,4,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,4,0,4,0,4,0,5,0, +5,0,4,0,5,0,6,0,5,0,4,0,4,0,4,0,5,0,6,0,5,0,4,0,5,0,5,0,5,0,5,0, +5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0,5,0,5,0, +5,0,5,0,6,0,5,0,4,0,5,0,6,0,5,0,4,0,5,0,5,0,5,0,6,0,6,0,6,0,5,0, +5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,5,0,4,0,5,0, +5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0, +6,0,6,0,6,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0, +5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,7,0,7,0,5,0,5,0,7,0,6,0,5,0, +5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,7,0, +7,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,6,0,6,0,6,0, +6,0,7,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,7,0, +7,0,7,0,7,0,7,0,6,0,7,0,7,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0, +7,0,6,0,7,0,7,0,6,0,6,0,8,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0, +7,0,7,0,8,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, +8,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,7,0,7,0,8,0, +9,0,9,0,8,0,7,0,8,0,8,0,9,0,8,0,8,0,8,0,8,0,7,0,8,0,8,0,7,0,8,0, +8,0,8,0,8,0,7,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,9,0,7,0,8,0, +8,0,8,0,8,0,9,0,8,0,7,0,8,0,8,0,8,0,8,0,8,0,9,0,8,0,9,0,9,0,9,0, +8,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,8,0,9,0,10,0,9,0,9,0,9,0,9,0,9,0, +9,0,9,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0, +10,0,9,0,9,0,9,0,8,0,8,0,9,0,9,0,9,0,9,0,8,0,9,0,9,0,9,0,9,0,10,0, +10,0,10,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0,10,0, +10,0,9,0,10,0,10,0,9,0,10,0,9,0,10,0,10,0,10,0,9,0,11,0,11,0,10,0,10,0,10,0, +10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,10,0,9,0,10,0,11,0,11,0, +10,0,10,0,10,0,10,0,11,0,11,0,11,0,10,0,10,0,11,0,11,0,11,0,11,0,11,0,10,0,10,0, +11,0,11,0,11,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,11,0,12,0,11,0,11,0,11,0,11,0, +11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,10,0,11,0,11,0,11,0,11,0, +12,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,12,0,11,0,11,0, +12,0,12,0,11,0,11,0,11,0,12,0,11,0,11,0,11,0,12,0,12,0,11,0,11,0,11,0,12,0,11,0, +12,0,13,0,13,0,11,0,11,0,11,0,11,0,11,0,12,0,13,0,12,0,11,0,12,0,12,0,12,0,12,0, +12,0,12,0,12,0,12,0,11,0,12,0,13,0,12,0,13,0,13,0,13,0,13,0,13,0,12,0,11,0,12,0, +12,0,12,0,12,0,12,0,12,0,13,0,14,0,13,0,13,0,13,0,12,0,12,0,13,0,12,0,13,0,13,0, +13,0,13,0,12,0,12,0,12,0,13,0,13,0,12,0,12,0,12,0,13,0,12,0,13,0,13,0,12,0,12,0, +13,0,13,0,12,0,12,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,12,0,12,0,13,0,13,0, +14,0,14,0,13,0,13,0,14,0,14,0,13,0,13,0,13,0,14,0,13,0,13,0,14,0,12,0,13,0,14,0, +14,0,13,0,13,0,14,0,14,0,13,0,13,0,13,0,13,0,13,0,14,0,14,0,13,0,13,0,13,0,14,0, +13,0,13,0,13,0,12,0,13,0,14,0,14,0,13,0,14,0,15,0,14,0,13,0,15,0,14,0,13,0,14,0, +14,0,14,0,14,0,15,0,14,0,13,0,14,0,14,0,13,0,14,0,14,0,14,0,14,0,14,0,13,0,14,0, +14,0,14,0,14,0,14,0,13,0,13,0,14,0,14,0,14,0,14,0,13,0,13,0,14,0,15,0,14,0,15,0, +15,0,14,0,14,0,15,0,13,0,14,0,15,0,15,0,14,0,14,0,15,0,15,0,14,0,15,0,15,0,15,0, +14,0,15,0,15,0,15,0,15,0,15,0,15,0,16,0,15,0,15,0,16,0,16,0,14,0,14,0,15,0,15,0, +15,0,15,0,15,0,15,0,15,0,14,0,14,0,15,0,15,0,14,0,14,0,15,0,15,0,15,0,15,0,14,0, +14,0,14,0,14,0,15,0,16,0,16,0,15,0,15,0,15,0,15,0,15,0,16,0,16,0,15,0,16,0,15,0, +15,0,16,0,16,0,15,0,16,0,16,0,15,0,16,0,16,0,15,0,15,0,16,0,17,0,16,0,16,0,15,0, +15,0,16,0,16,0,16,0,15,0,15,0,15,0,15,0,16,0,17,0,16,0,16,0,16,0,16,0,16,0,16,0, +16,0,16,0,16,0,16,0,17,0,17,0,16,0,16,0,17,0,17,0,16,0,16,0,17,0,16,0,16,0,17,0, +17,0,16,0,17,0,17,0,15,0,16,0,17,0,16,0,16,0,17,0,17,0,17,0,17,0,16,0,16,0,17,0, +17,0,17,0,17,0,17,0,17,0,17,0,16,0,17,0,18,0,17,0,16,0,17,0,18,0,17,0,17,0,17,0, +17,0,17,0,17,0,17,0,18,0,17,0,17,0,17,0,18,0,17,0,17,0,18,0,17,0,17,0,18,0,18,0, +18,0,17,0,17,0,17,0,17,0,17,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0, +17,0,18,0,19,0,18,0,18,0,18,0,18,0,18,0,18,0,19,0,18,0,19,0,19,0,18,0,18,0,18,0, +17,0,18,0,19,0,18,0,18,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,20,0,20,0,19,0, +18,0,18,0,20,0,20,0,18,0,18,0,19,0,19,0,18,0,19,0,20,0,19,0,19,0,19,0,19,0,19,0, +19,0,19,0,20,0,20,0,19,0,19,0,20,0,20,0,19,0,20,0,20,0,20,0,20,0,20,0,19,0,20,0, +20,0,19,0,20,0,21,0,19,0,19,0,20,0,20,0,20,0,20,0,21,0,20,0,21,0,20,0,20,0,21,0, +21,0,20,0,20,0,20,0,20,0,20,0,21,0,20,0,21,0,21,0,20,0,20,0,21,0,22,0,21,0,20,0, +20,0,21,0,21,0,21,0,22,0,21,0,20,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0,22,0, +22,0,22,0,22,0,22,0,22,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0,21,0,22,0, +22,0,22,0,22,0,22,0,21,0,21,0,22,0,22,0,21,0,22,0,22,0,22,0,22,0,23,0,22,0,22,0, +23,0,23,0,23,0,22,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,24,0,23,0,23,0,23,0,23,0, +23,0,23,0,23,0,23,0,23,0,22,0,23,0,23,0,24,0,24,0,24,0,23,0,23,0,24,0,24,0,24,0, +24,0,24,0,24,0,25,0,23,0,22,0,24,0,24,0,24,0,24,0,25,0,24,0,25,0,25,0,24,0,24,0, +25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,24,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0, +25,0,25,0,25,0,25,0,25,0,26,0,25,0,25,0,25,0,25,0,25,0,25,0,26,0,26,0,26,0,26,0, +26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,26,0,26,0,26,0,27,0,27,0, +27,0,26,0,26,0,26,0,27,0,26,0,26,0,26,0,27,0,27,0,28,0,27,0,26,0,27,0,28,0,28,0, +26,0,27,0,28,0,27,0,27,0,27,0,27,0,28,0,28,0,27,0,27,0,28,0,28,0,28,0,28,0,28,0, +27,0,28,0,28,0,28,0,28,0,27,0,28,0,29,0,28,0,28,0,28,0,28,0,28,0,29,0,29,0,28,0, +28,0,28,0,28,0,29,0,29,0,28,0,29,0,29,0,28,0,28,0,29,0,28,0,28,0,29,0,28,0,28,0, +28,0,29,0,28,0,29,0,29,0,29,0,29,0,29,0,29,0,30,0,29,0,29,0,30,0,30,0,29,0,29,0, +29,0,29,0,30,0,30,0,29,0,29,0,29,0,29,0,29,0,30,0,30,0,30,0,30,0,29,0,29,0,30,0, +30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,29,0,30,0,30,0,30,0, +30,0,31,0,30,0,29,0,30,0,31,0,30,0,30,0,30,0,31,0,31,0,30,0,30,0,31,0,31,0,30,0, +30,0,31,0,30,0,30,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,30,0,30,0,31,0,31,0, +30,0,30,0,31,0,30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0,30,0,31,0,31,0,31,0,30,0, +31,0,31,0,31,0,31,0,32,0,31,0,30,0,31,0,32,0,31,0,31,0,32,0,31,0,31,0,31,0,32,0, +32,0,32,0,31,0,31,0,32,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,32,0,32,0,31,0,31,0, +32,0,32,0,31,0,31,0,31,0,32,0,32,0,31,0,31,0,32,0,32,0,32,0,31,0,32,0,32,0,32,0, +32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,31,0,31,0,31,0,31,0,32,0,32,0, +32,0,32,0,32,0,32,0,32,0,32,0,31,0,32,0,33,0,32,0,31,0,32,0,32,0,32,0,32,0,32,0, +32,0,32,0,32,0,31,0,32,0,32,0,31,0,31,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, +32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, +32,0,33,0,32,0,31,0,32,0,33,0,32,0,31,0,32,0,32,0,31,0,32,0,32,0,32,0,33,0,32,0, +32,0,32,0,32,0,31,0,33,0,34,0,32,0,31,0,32,0,32,0,32,0,33,0,33,0,32,0,32,0,33,0, +33,0,32,0,32,0,32,0,33,0,33,0,33,0,33,0,33,0,32,0,32,0,32,0,32,0,33,0,32,0,32,0, +32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,33,0,33,0,32,0,33,0,33,0,32,0,32,0,32,0, +32,0,32,0,32,0,32,0,31,0,32,0,32,0,31,0,32,0,33,0,32,0,32,0,32,0,32,0,33,0,33,0, +33,0,32,0,32,0,32,0,32,0,33,0,33,0,32,0,32,0,32,0,32,0,33,0,33,0,33,0,32,0,32,0, +33,0,32,0,32,0,32,0,33,0,33,0,33,0,33,0,33,0,32,0,31,0,33,0,33,0,32,0,32,0,33,0, +33,0,32,0,33,0,33,0,32,0,32,0,33,0,32,0,32,0,33,0,33,0,32,0,32,0,32,0,32,0,33,0, +32,0,32,0,33,0,33,0,32,0,32,0,33,0,33,0,33,0,33,0,33,0,32,0,33,0,33,0,33,0,32,0, +32,0,33,0,33,0,32,0,33,0,33,0,32,0,33,0,34,0,33,0,33,0,33,0,33,0,32,0,32,0,32,0, +33,0,33,0,32,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0,33,0, +33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,34,0,33,0,33,0,33,0,33,0,33,0,33,0, +34,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,32,0,33,0,33,0,34,0, +33,0,33,0,33,0,33,0,33,0,33,0,34,0,33,0,33,0,33,0,33,0,32,0,33,0,34,0,33,0,33,0, +34,0,33,0,33,0,33,0,33,0,33,0,33,0,34,0,33,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0, +33,0,33,0,34,0,34,0,33,0,34,0,34,0,34,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,33,0, +33,0,33,0,34,0,33,0,34,0,35,0,34,0,33,0,34,0,34,0,34,0,34,0,34,0,34,0,33,0,33,0, +33,0,33,0,34,0,34,0,34,0,34,0,33,0,34,0,34,0,33,0,33,0,34,0,34,0,35,0,34,0,34,0, +34,0,34,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0,35,0,34,0,33,0,34,0,34,0,34,0, +34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,35,0,34,0,34,0,34,0,33,0,33,0, +34,0,35,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,35,0,35,0,35,0,35,0,35,0, +34,0,34,0,34,0,35,0,35,0,35,0,34,0,34,0,34,0,35,0,34,0,34,0,35,0,35,0,34,0,35,0, +35,0,34,0,34,0,34,0,34,0,34,0,35,0,34,0,34,0,35,0,35,0,34,0,35,0,35,0,34,0,34,0, +35,0,34,0,34,0,34,0,34,0,35,0,35,0,35,0,34,0,34,0,35,0,35,0,34,0,34,0,34,0,34,0, +34,0,35,0,35,0,35,0,35,0,35,0,34,0,34,0,35,0,34,0,34,0,35,0,34,0,34,0,35,0,34,0, +34,0,35,0,34,0,34,0,35,0,36,0,35,0,34,0,34,0,34,0,35,0,34,0,34,0,35,0,35,0,35,0, +35,0,34,0,33,0,34,0,35,0,34,0,34,0,35,0,35,0,34,0,34,0,34,0,35,0,35,0,35,0,35,0, +35,0,35,0,34,0,35,0,35,0,34,0,34,0,35,0,34,0,35,0,35,0,34,0,34,0,35,0,34,0,34,0, +34,0,35,0,34,0,34,0,35,0,35,0,35,0,35,0,34,0,35,0,35,0,34,0,34,0,35,0,35,0,34,0, +34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,33,0,34,0, +34,0,34,0,34,0,34,0,33,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,33,0,34,0,34,0, +34,0,34,0,35,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0, +34,0,33,0,33,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0,34,0,33,0,33,0,34,0,33,0, +33,0,33,0,33,0,34,0,34,0,33,0,33,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0,33,0, +33,0,33,0,33,0,33,0,33,0,34,0,33,0,33,0,33,0,34,0,33,0,32,0,32,0,33,0,34,0,34,0, +33,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0,32,0,33,0,33,0,33,0,33,0,33,0,32,0,32,0, +33,0,33,0,32,0,32,0,32,0,33,0,33,0,33,0,32,0,32,0,33,0,32,0,32,0,33,0,33,0,32,0, +32,0,33,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,33,0,32,0,31,0,32,0, +33,0,33,0,33,0,32,0,32,0,32,0,31,0,32,0,32,0,32,0,31,0,32,0,32,0,31,0,32,0,32,0, +32,0,32,0,33,0,32,0,32,0,32,0,32,0,31,0,32,0,32,0,32,0,31,0,31,0,32,0,32,0,32,0, +32,0,32,0,32,0,32,0,32,0,32,0,32,0,31,0,31,0,32,0,32,0,32,0,32,0,32,0,31,0,31,0, +31,0,32,0,31,0,31,0,32,0,32,0,32,0,32,0,32,0,31,0,32,0,31,0,31,0,31,0,31,0,31,0, +32,0,31,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,32,0,31,0,31,0,31,0,31,0, +31,0,31,0,32,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,30,0,30,0, +31,0,32,0,32,0,32,0,31,0,31,0,31,0,31,0,31,0,32,0,31,0,30,0,31,0,32,0,32,0,31,0, +31,0,31,0,31,0,31,0,31,0,31,0,31,0,30,0,31,0,32,0,31,0,30,0,31,0,32,0,31,0,31,0, +31,0,32,0,31,0,31,0,31,0,31,0,30,0,31,0,32,0,31,0,31,0,31,0,31,0,31,0,32,0,32,0, +31,0,31,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,30,0,31,0,31,0,31,0,31,0,31,0, +31,0,31,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0,30,0,30,0, +31,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,30,0,30,0, +31,0,31,0,30,0,31,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,30,0,31,0,31,0,31,0, +30,0,31,0,31,0,30,0,30,0,30,0,30,0,31,0,31,0,31,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/grass3.pcm b/src/client/sound/data/grass3.pcm new file mode 100755 index 0000000..a459261 --- /dev/null +++ b/src/client/sound/data/grass3.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_grass3[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,245,5,117,7,219,9,45,7,219,1,170,255,54,253,33,253, +20,254,92,246,223,237,132,233,102,231,74,240,78,250,29,251,171,252,39,252,70,251,51,0,146,4,14,18,204,30,62,17, +112,5,78,13,234,16,34,21,193,24,212,7,16,247,76,249,93,251,97,244,192,239,87,240,151,239,167,238,184,238,76,233, +50,227,200,226,33,228,77,234,244,240,39,237,219,234,162,242,221,247,96,247,18,247,94,247,139,248,227,250,1,251,183,246, +112,243,213,244,167,245,138,245,196,246,122,245,160,244,109,248,167,250,169,249,157,249,99,249,107,249,18,253,205,1,184,2, +192,1,31,3,252,3,105,1,127,255,197,255,60,254,72,250,131,248,227,251,249,254,55,252,204,249,11,252,248,252,5,253, +131,254,176,251,52,247,113,247,30,249,238,252,9,0,250,247,2,240,9,246,188,250,55,244,234,237,175,236,38,238,177,241, +57,245,181,245,83,244,116,247,14,250,253,239,254,229,181,236,86,245,8,242,24,238,129,241,0,245,41,244,49,242,192,239, +251,238,20,245,194,251,76,251,30,250,75,253,13,1,230,1,204,1,172,5,176,9,103,8,210,4,35,253,242,244,83,249, +231,255,4,249,72,244,173,253,124,6,249,6,30,6,81,6,100,6,165,5,104,3,254,2,200,3,217,255,217,251,62,254, +116,0,82,253,111,248,102,245,228,243,224,240,94,238,5,241,216,244,185,244,192,244,75,249,18,253,55,251,101,248,121,245, +120,242,255,247,96,0,87,254,52,250,235,252,40,1,81,3,61,2,151,255,96,254,234,253,151,254,249,254,226,254,82,1, +99,1,130,253,168,249,64,243,36,240,245,245,25,250,59,250,27,250,171,246,240,243,137,242,210,238,31,241,89,249,17,253, +215,253,55,254,65,253,91,254,179,254,163,251,161,252,7,2,102,6,62,13,28,18,246,9,63,2,160,9,67,17,89,17, +71,15,62,4,126,248,33,253,19,6,165,7,132,6,24,2,90,253,248,250,48,248,115,250,66,255,1,254,5,253,245,254, +14,254,66,252,91,251,39,249,145,247,91,252,243,2,43,253,116,243,6,248,161,254,1,251,227,248,108,251,125,251,160,248, +44,244,122,239,40,237,17,238,213,239,92,243,69,251,161,255,68,254,138,1,215,4,119,1,49,254,102,250,52,249,216,2, +251,12,187,14,128,12,53,9,188,7,69,6,82,3,90,5,147,8,87,5,13,0,53,253,68,253,9,254,128,253,188,254, +136,1,195,5,31,10,100,4,72,251,149,255,218,4,61,253,255,247,42,255,239,6,67,8,203,8,107,8,11,6,182,8, +233,10,55,5,148,1,14,0,11,253,165,0,184,4,250,4,95,7,244,2,35,253,181,4,22,11,160,10,155,13,180,12, +221,8,127,10,53,10,175,7,20,8,51,7,87,4,206,0,187,253,208,254,18,0,54,252,205,248,88,252,109,2,224,2, +167,0,121,1,24,1,194,255,69,2,65,4,33,5,166,10,111,18,140,23,166,22,3,15,241,8,214,8,2,9,9,8, +233,6,152,4,78,2,180,255,60,254,164,1,178,4,199,2,130,1,84,2,138,2,234,4,222,8,17,9,49,7,115,7, +253,6,38,4,49,2,203,0,56,1,87,8,200,16,145,17,127,13,218,10,42,9,235,4,139,0,223,1,65,4,149,1, +139,0,67,5,229,10,100,15,60,19,214,20,23,17,170,10,23,7,229,0,64,248,219,249,183,254,123,247,220,235,110,231, +1,231,41,226,165,219,214,223,133,233,61,237,99,242,141,249,24,255,180,11,244,21,215,18,169,16,202,17,120,16,2,20, +159,24,122,24,60,22,56,14,216,6,126,9,61,11,103,6,106,3,23,3,26,2,192,2,223,5,113,5,6,4,42,11, +87,16,238,10,118,9,0,13,252,13,182,17,111,20,157,17,62,14,124,8,244,3,29,8,181,12,243,9,63,6,243,7, +39,10,243,7,171,6,146,7,121,7,62,8,173,6,15,0,219,249,83,246,99,245,139,246,145,247,166,247,172,246,77,248, +225,251,48,251,67,251,142,254,215,255,179,2,148,4,103,3,192,8,46,14,0,13,244,15,193,19,120,16,47,14,217,16, +179,19,194,19,21,17,174,14,90,15,142,17,13,16,40,10,210,6,53,10,195,15,6,17,199,15,170,15,172,13,45,12, +98,13,59,13,29,16,194,18,255,13,191,13,26,15,40,7,54,3,148,2,168,254,48,4,26,9,238,254,146,249,189,2, +49,6,41,254,147,251,54,252,170,249,95,6,156,18,118,0,142,240,234,245,244,248,205,254,7,8,13,10,100,12,130,7, +136,254,58,0,25,0,27,0,19,5,110,255,95,248,170,247,114,246,77,253,13,7,22,9,183,11,142,18,60,23,12,16, +43,8,191,19,173,30,62,28,169,27,141,20,252,9,193,9,165,6,217,3,82,6,119,0,55,251,217,249,139,243,40,242, +110,242,252,235,194,233,212,237,101,240,16,238,67,238,31,252,182,9,248,8,64,8,50,13,128,14,109,10,224,2,66,253, +90,251,102,246,148,239,44,236,82,235,91,237,50,242,134,245,188,243,198,238,138,237,67,240,86,242,18,248,198,0,131,3, +229,4,153,9,178,12,125,16,23,17,121,8,49,2,131,0,169,254,132,4,250,10,43,7,239,1,16,253,149,247,59,247, +166,245,57,240,186,238,194,239,227,241,75,247,219,251,129,254,61,2,29,4,217,3,15,7,236,8,83,2,96,250,116,245, +244,242,194,246,117,251,196,252,141,254,173,251,8,248,42,254,82,4,179,4,217,3,115,254,126,248,89,247,55,247,74,249, +163,252,142,253,247,254,241,255,65,254,171,251,150,248,168,247,70,248,90,245,184,243,71,249,124,254,180,253,209,252,58,253, +6,251,135,249,150,249,240,246,231,245,122,249,212,251,52,251,32,251,14,254,205,255,179,250,222,245,70,248,148,251,144,251, +128,251,135,254,137,1,36,255,50,253,221,0,96,3,149,3,87,5,116,7,177,8,253,8,79,9,1,9,21,7,225,5, +241,2,87,253,25,250,13,248,15,248,37,252,110,254,93,254,37,253,206,249,65,247,144,245,142,248,51,0,123,3,53,7, +30,9,159,255,179,250,105,255,76,5,172,18,113,29,159,28,230,22,28,6,82,247,220,250,109,255,138,3,75,9,200,0, +8,247,105,248,96,246,123,241,116,239,193,235,64,235,166,243,125,251,247,249,81,245,195,238,59,231,232,238,23,251,48,245, +79,239,153,243,148,245,193,250,59,2,126,5,206,8,108,8,210,4,230,1,142,254,69,255,77,254,167,249,92,253,143,3, +232,5,144,6,168,0,226,249,51,246,249,244,154,248,109,243,115,234,156,235,10,231,104,230,228,234,239,212,1,203,9,235, +60,8,17,36,172,54,156,20,254,244,20,8,114,31,47,49,41,69,8,68,98,56,250,47,50,31,46,10,66,249,72,238, +254,233,65,227,40,215,247,204,127,195,121,185,151,184,214,195,31,209,55,223,200,240,139,253,211,7,137,21,81,28,26,28, +99,27,249,20,161,15,42,19,150,20,170,15,242,7,82,252,208,243,212,245,162,248,94,242,192,236,152,240,170,242,112,237, +19,239,66,253,50,12,244,20,98,26,112,27,254,24,101,26,151,24,196,9,146,249,71,238,94,226,2,219,177,215,153,209, +75,207,148,212,24,219,189,224,127,231,8,239,82,245,150,253,95,9,141,16,214,18,243,21,43,22,3,20,138,19,11,17, +33,12,246,6,245,1,55,0,4,0,9,254,70,254,41,1,151,1,61,1,120,4,96,8,195,10,16,14,253,14,240,10, +92,8,35,10,237,12,171,14,180,14,93,14,246,13,242,11,180,9,21,9,10,9,166,6,147,2,254,0,207,255,204,253, +181,253,141,250,187,246,247,250,154,254,14,252,178,250,208,248,119,244,54,241,106,239,213,240,168,243,19,244,213,245,199,249, +18,252,198,253,0,0,80,0,61,0,122,4,50,10,28,13,234,15,104,17,199,16,173,18,13,19,76,15,142,12,235,8, +93,5,4,6,68,6,92,5,48,5,36,4,6,4,140,4,20,5,144,6,30,6,173,5,214,5,122,1,154,253,222,254, +231,0,164,2,27,3,67,2,79,2,97,0,182,253,180,254,85,0,72,0,52,0,56,1,55,2,158,0,137,255,77,2, +123,5,142,7,85,7,70,3,4,0,120,254,156,250,228,246,115,247,33,251,97,254,5,0,177,0,202,254,64,252,211,253, +91,0,154,0,221,0,11,0,1,253,122,249,81,247,27,249,85,252,222,253,154,1,217,6,147,8,31,7,13,2,230,248, +234,240,182,238,233,239,18,240,104,242,115,249,194,255,226,5,80,11,232,8,137,5,122,8,44,11,146,12,136,12,136,8, +175,4,162,1,81,0,35,3,62,5,175,6,182,8,58,7,32,4,79,1,179,254,223,252,213,250,15,252,77,254,100,253, +63,254,246,252,177,250,17,0,98,4,104,10,245,20,147,17,173,14,42,29,78,38,68,39,167,36,170,17,162,251,8,243, +65,239,64,234,120,233,205,241,65,248,116,244,97,241,76,239,236,236,248,242,185,249,164,252,24,1,76,3,121,5,194,8, +132,10,238,16,14,23,1,22,72,20,211,18,51,15,163,7,63,253,83,248,79,247,190,246,176,249,253,250,62,250,68,252, +145,254,123,2,103,7,218,9,238,12,107,15,68,16,253,17,28,17,46,13,173,8,232,2,33,253,221,247,146,243,87,241, +221,239,45,240,165,243,36,249,25,254,231,254,146,253,148,253,8,254,57,255,144,0,187,2,106,7,35,9,102,7,84,8, +248,8,201,5,230,2,170,2,96,2,76,0,146,255,45,0,188,254,250,253,176,255,89,1,221,2,93,3,35,2,242,0, +154,0,177,1,57,4,185,6,242,6,113,4,173,1,103,254,180,251,58,253,219,254,192,253,125,252,148,249,169,247,137,250, +7,254,146,255,99,0,149,2,146,3,158,253,122,248,1,250,235,249,238,249,30,253,97,253,213,253,27,1,91,2,66,2, +208,2,202,3,79,4,239,3,69,4,133,4,27,5,231,7,110,10,48,12,137,13,86,13,179,12,168,10,63,8,52,7, +7,5,197,5,151,8,1,4,123,255,112,3,229,5,60,3,96,2,6,5,176,7,109,7,4,6,193,5,213,5,60,5, +171,3,244,2,188,2,134,0,22,255,4,255,166,254,41,1,25,4,54,3,82,2,106,2,97,2,102,4,121,6,230,5, +91,5,237,6,252,7,251,5,207,2,131,0,19,255,35,255,207,255,167,255,78,255,35,254,254,251,161,251,13,253,75,253, +51,253,153,254,230,254,83,254,99,0,215,2,34,4,61,7,30,10,25,10,240,9,181,10,177,10,117,9,90,7,146,4, +224,2,231,3,4,5,166,4,16,4,104,1,180,254,26,0,228,0,17,255,17,255,173,255,215,254,213,253,82,253,142,253, +198,253,133,254,25,0,75,0,39,0,181,0,222,0,100,2,71,4,29,4,60,3,236,0,71,253,152,251,4,252,39,253, +212,253,83,253,101,252,243,250,176,249,252,249,251,251,199,255,199,2,99,3,62,4,188,4,96,4,37,6,83,9,243,10, +54,9,110,5,37,3,46,1,159,255,141,1,71,3,34,2,101,255,72,250,251,246,100,248,0,250,72,251,162,252,121,252, +173,252,58,253,203,253,149,255,67,0,192,255,202,255,227,254,13,253,204,250,19,249,116,250,131,252,161,252,224,253,237,255, +222,254,22,252,89,251,42,252,142,253,91,0,188,2,254,3,59,5,74,3,12,255,181,253,233,253,62,255,17,2,255,0, +111,254,249,0,84,3,228,255,248,251,169,252,207,253,10,251,22,248,53,248,102,250,55,253,30,255,116,1,97,2,158,253, +183,250,228,254,200,2,60,4,36,4,199,1,198,255,176,253,226,250,27,248,167,245,198,247,246,250,67,249,97,249,60,252, +250,253,137,1,246,3,59,4,4,5,65,2,32,255,84,255,110,254,87,255,4,2,121,0,194,253,160,251,137,248,234,246, +129,246,22,246,217,245,126,246,159,249,143,252,91,253,59,254,142,254,69,254,246,253,27,252,236,250,173,251,241,251,215,252, +170,254,181,254,166,253,147,253,127,254,22,255,50,254,78,253,162,253,233,252,0,251,116,250,172,250,14,251,58,252,170,252, +219,252,68,253,5,252,196,251,239,252,116,251,142,250,109,252,205,252,43,252,210,251,175,250,179,249,55,248,19,246,160,245, +29,247,180,248,25,249,93,250,76,253,17,254,62,254,130,0,190,0,4,0,144,1,189,1,68,0,254,255,94,0,34,1, +47,1,74,255,59,253,83,251,124,249,227,249,124,251,241,251,28,253,56,254,208,251,167,249,55,250,45,248,103,245,72,247, +43,249,196,248,250,249,196,250,234,249,7,251,32,252,139,250,53,250,99,252,14,253,134,251,251,250,23,252,249,251,233,249, +134,248,113,248,147,249,23,252,251,252,231,251,146,251,32,251,181,251,169,254,1,0,231,255,146,0,197,255,165,254,54,255, +249,254,58,253,234,251,78,252,157,254,132,1,36,2,116,255,90,252,38,249,13,245,26,244,75,245,170,244,0,244,211,242, +223,243,90,252,207,4,59,8,85,10,102,9,58,5,241,254,64,248,74,249,143,253,96,249,106,244,167,247,187,251,116,250, +43,248,32,249,117,250,138,250,103,250,242,247,12,246,14,249,200,252,179,254,83,0,134,1,18,3,97,4,168,3,105,1, +26,255,14,254,15,253,74,251,76,250,7,249,194,247,249,247,247,246,195,244,239,243,225,244,92,248,46,252,6,254,157,255, +187,255,150,253,205,251,19,250,79,249,134,250,5,250,199,248,130,249,80,248,187,246,196,249,153,252,117,252,0,253,60,253, +14,253,151,253,200,252,228,252,207,253,169,250,231,246,231,246,15,248,154,248,148,249,181,252,224,255,45,0,179,255,47,254, +251,252,220,255,199,0,95,253,139,251,68,250,123,249,95,251,15,254,108,1,5,4,175,5,72,7,38,4,169,255,56,0, +3,1,232,255,153,254,201,252,76,251,159,248,138,246,77,247,179,247,108,249,57,251,96,249,157,250,183,254,171,255,168,0, +124,0,29,253,229,251,79,253,135,254,177,254,248,253,87,253,123,252,196,252,21,254,58,253,78,252,215,252,120,252,222,251, +113,251,154,251,1,253,214,253,89,255,93,2,253,3,87,4,45,4,38,3,86,1,241,253,165,250,246,249,176,250,147,250, +236,249,127,251,227,254,185,0,44,1,191,0,56,255,57,254,158,254,73,1,50,4,41,3,99,1,50,2,49,3,135,4, +21,5,188,2,141,1,119,2,245,0,4,254,90,252,99,250,209,249,117,253,186,0,170,1,236,3,101,5,230,4,130,5, +206,4,202,1,78,0,106,0,128,255,107,252,116,250,43,252,205,252,22,252,73,254,145,255,103,253,226,251,105,252,179,253, +55,254,255,253,253,253,18,253,200,252,54,255,192,0,64,0,181,1,202,4,253,5,188,5,160,5,197,4,20,3,103,1, +83,0,214,0,161,1,17,2,44,4,190,5,0,5,18,4,48,1,146,252,220,250,201,251,42,253,140,253,11,252,25,252, +164,254,126,0,121,1,196,0,146,254,69,255,26,1,14,0,40,0,52,2,225,1,160,1,174,2,151,1,191,0,154,1, +122,1,121,1,175,1,236,1,97,3,178,2,66,1,138,3,251,4,241,3,135,3,64,2,219,0,246,255,116,254,90,255, +13,1,93,0,82,1,35,4,59,5,135,5,44,5,14,3,231,0,77,0,224,0,199,2,103,5,200,4,75,1,143,1, +192,4,155,5,240,5,6,6,96,3,48,1,128,0,162,254,123,253,119,254,59,0,249,1,246,1,23,2,148,4,126,4, +102,2,26,3,204,2,218,1,46,4,110,5,230,4,121,4,27,3,178,3,3,4,199,0,39,255,40,254,203,252,242,255, +204,2,197,2,145,4,179,4,26,2,27,1,80,0,185,255,40,255,7,252,5,254,57,11,32,23,64,23,16,17,103,8, +96,252,222,239,168,231,5,234,193,243,200,247,207,249,91,2,199,7,244,6,145,6,74,5,57,4,102,5,194,4,157,2, +149,1,245,255,29,252,13,249,161,250,173,255,201,5,30,9,145,6,16,3,210,254,216,247,124,246,207,249,134,251,43,255, +236,0,53,254,53,254,98,255,148,255,29,0,6,255,93,255,57,1,25,1,11,3,222,6,141,6,88,2,76,255,133,255, +121,255,138,255,83,2,90,3,21,3,1,6,220,7,25,4,0,254,90,253,226,0,109,255,22,254,106,2,49,5,143,7, +124,11,140,12,19,10,33,2,121,252,154,1,30,4,49,255,151,253,111,255,243,2,56,6,206,5,248,5,56,7,28,6, +249,2,42,254,60,249,32,244,158,242,183,250,206,2,216,3,74,5,100,6,203,4,240,4,238,5,128,5,126,5,113,8, +132,10,168,5,2,0,180,254,92,253,192,252,252,252,244,253,15,3,160,5,142,2,53,1,183,255,239,250,31,248,121,251, +243,2,39,7,213,6,117,6,233,4,67,2,149,0,169,255,187,255,171,254,77,253,102,254,88,255,17,1,22,4,10,5, +63,5,38,3,242,255,82,1,38,1,69,254,88,255,30,0,24,0,118,1,4,1,23,1,142,255,28,252,166,253,57,253, +244,250,11,1,55,5,78,3,21,2,79,250,15,241,230,240,202,241,159,244,58,252,246,253,180,252,59,255,188,255,244,254, +87,0,143,0,43,255,241,253,136,254,64,1,65,3,59,5,138,6,178,2,153,254,203,254,43,255,26,2,27,5,98,253, +242,244,13,248,25,251,156,249,92,248,146,241,36,235,231,239,175,245,13,246,89,247,250,248,85,250,47,252,208,251,181,250, +179,247,57,240,136,233,120,230,66,232,61,239,130,244,24,248,225,252,213,253,107,252,146,250,85,247,60,248,145,250,154,250, +140,251,179,247,207,241,108,242,52,243,143,245,107,251,178,252,133,254,235,0,106,254,38,254,30,252,14,248,89,250,56,247, +135,244,206,4,182,20,117,21,236,18,213,15,175,11,159,7,115,2,194,255,191,3,135,16,169,27,149,25,251,24,169,32, +123,32,182,26,14,24,146,19,39,14,58,11,53,10,5,10,177,7,67,6,213,7,195,5,47,2,190,4,138,10,251,14, +12,17,195,14,198,8,159,3,133,3,164,7,159,10,39,11,190,9,220,4,145,3,60,11,197,17,172,18,195,17,14,15, +232,15,73,19,93,16,242,12,197,9,174,255,154,248,245,248,222,252,37,10,254,24,168,29,41,32,23,36,117,35,199,29, +96,21,154,14,111,12,94,13,207,15,204,19,39,25,102,26,212,22,133,23,167,25,180,22,173,20,254,17,193,10,61,4, +8,254,7,251,35,255,142,0,141,255,81,3,205,3,231,255,45,0,179,3,239,6,214,5,161,1,44,3,229,5,36,3, +121,0,241,252,8,250,131,253,25,0,211,1,144,7,245,8,48,6,207,3,196,255,158,254,61,255,151,252,159,250,89,251, +61,255,172,255,120,248,181,249,157,0,235,252,221,250,33,255,125,0,162,2,224,2,141,0,98,0,172,253,46,252,76,253, +32,251,191,250,92,252,35,254,125,255,122,251,108,249,196,248,58,245,62,249,249,249,254,244,38,247,217,236,196,233,212,19, +30,60,48,65,126,55,171,26,231,244,135,218,102,198,140,195,188,209,155,221,40,239,132,8,230,25,125,29,194,18,145,2, +111,247,136,242,43,243,10,243,230,241,15,246,82,250,118,252,213,254,247,255,70,1,133,252,73,242,163,242,177,246,171,240, +115,236,10,240,136,244,112,250,165,255,11,254,14,248,78,245,210,246,66,246,241,242,38,241,185,240,230,242,25,247,77,247, +164,247,131,255,72,8,195,11,108,13,42,14,129,9,176,253,248,243,123,245,34,249,29,246,90,245,186,250,15,252,95,246, +49,242,166,241,40,240,100,241,56,246,36,248,127,252,36,5,66,8,85,9,40,12,173,11,110,11,2,12,130,9,101,5, +70,0,174,253,79,253,157,251,27,253,218,251,66,245,130,247,120,251,182,248,34,252,223,0,79,0,195,2,221,2,16,255, +2,0,2,1,213,253,229,250,12,251,107,253,213,253,119,252,226,251,60,251,17,252,156,254,71,0,64,1,71,1,82,0, +34,0,72,1,109,2,224,1,28,1,15,1,234,0,182,1,218,255,142,250,86,249,221,249,170,247,186,248,250,251,95,251, +12,250,164,251,105,252,96,249,159,248,15,254,64,2,115,0,46,253,45,254,202,1,103,1,119,255,58,255,219,253,186,255, +198,3,182,2,31,2,243,3,246,2,90,0,49,252,161,249,170,251,57,253,191,254,110,0,131,254,218,251,88,250,55,251, +121,253,121,252,143,253,144,1,97,2,1,5,34,8,150,7,235,7,179,3,8,251,40,248,65,247,116,247,205,253,206,3, +168,6,108,9,88,10,141,8,0,6,139,4,31,3,109,0,217,254,49,255,182,0,93,3,154,6,248,8,251,7,201,6, +25,7,106,2,204,252,46,252,220,250,1,251,173,253,237,251,136,248,55,246,197,246,39,252,114,253,176,251,169,253,113,252, +33,249,207,248,240,249,135,255,98,3,77,0,253,255,247,0,67,255,169,0,178,0,29,252,18,251,25,255,132,1,201,0, +88,2,195,3,209,255,215,253,49,254,188,251,63,254,162,3,128,4,13,7,42,9,174,6,134,4,157,0,49,254,101,2, +247,3,3,2,108,1,249,253,39,251,170,252,106,253,253,254,195,2,73,4,172,3,10,3,122,2,49,0,76,252,231,250, +44,250,214,247,131,249,39,253,186,252,240,252,147,0,106,3,5,4,218,3,218,3,245,1,164,254,168,255,131,3,11,5, +228,5,144,5,229,3,41,6,214,9,174,8,209,4,47,1,177,254,82,254,42,254,52,254,79,0,212,1,117,0,27,253, +211,249,61,250,53,253,175,254,217,255,120,0,222,255,246,0,108,1,20,255,46,252,246,249,24,252,183,254,128,251,41,252, +92,0,166,253,132,252,91,255,232,0,236,6,56,9,128,1,77,253,160,253,152,254,72,2,189,3,3,3,20,1,239,252, +212,252,66,254,1,254,102,1,123,4,125,5,222,7,34,8,245,6,241,4,248,0,22,0,145,0,251,253,81,251,79,251, +210,252,251,251,156,252,27,2,204,1,137,253,50,254,147,252,79,250,13,251,254,247,222,246,194,249,46,250,18,251,243,249, +64,246,132,246,243,246,193,247,13,252,183,254,162,0,30,2,11,1,254,1,74,4,45,5,82,6,108,7,212,8,94,8, +119,4,228,2,53,4,88,4,198,4,235,6,169,7,182,3,30,255,216,255,238,0,82,252,246,247,242,249,195,250,167,244, +69,241,22,243,67,245,231,252,124,3,155,0,18,254,194,250,111,247,40,254,121,255,195,245,52,241,66,237,131,235,61,245, +109,252,163,253,91,0,29,0,69,0,96,3,111,3,123,3,79,5,92,6,4,8,228,7,88,4,142,1,206,0,117,1, +48,4,66,6,187,4,85,3,19,4,187,2,177,0,201,1,106,1,113,252,209,247,16,247,15,250,157,255,183,2,122,1, +176,254,209,245,114,237,138,247,250,4,240,2,73,0,74,253,185,245,101,248,251,251,133,249,253,252,230,252,167,250,124,1, +152,2,207,252,31,250,239,247,176,250,44,255,96,254,143,254,150,254,231,253,152,0,74,2,241,1,94,1,91,3,79,6, +26,2,120,0,94,4,243,252,89,244,176,246,5,248,158,250,74,2,74,5,244,2,221,0,213,0,195,0,158,3,75,11, +129,11,223,3,3,253,244,244,159,243,185,248,109,247,218,245,75,244,56,239,76,238,39,235,248,232,154,242,131,254,178,12, +218,25,112,24,236,17,231,9,186,254,167,250,216,245,145,238,153,238,61,236,16,233,225,238,231,245,32,251,7,0,47,1, +151,255,136,4,140,14,137,5,172,246,55,7,19,23,33,9,56,250,180,232,61,216,223,231,195,255,213,7,202,14,190,14, +191,6,190,3,7,0,234,251,234,252,250,253,255,253,255,253,149,253,117,253,86,253,231,250,252,244,79,244,229,249,251,248, +143,247,229,252,39,253,250,249,30,249,85,245,209,242,185,244,128,248,231,254,2,4,238,6,147,8,7,5,150,0,189,254, +123,252,172,251,124,252,138,254,107,3,72,8,100,10,183,7,72,4,224,6,104,9,240,8,84,7,78,255,78,249,140,252, +232,252,188,248,146,245,26,244,136,246,236,248,1,252,211,1,84,2,198,1,159,3,12,0,249,251,177,248,204,245,120,253, +93,4,14,254,247,249,133,254,221,2,28,5,135,8,135,13,160,14,114,11,93,9,240,8,161,10,244,10,162,6,75,5, +56,6,188,2,142,2,205,8,137,8,177,254,192,248,133,249,53,250,27,255,248,4,158,2,153,255,51,253,24,249,117,252, +217,2,164,5,139,7,182,4,35,255,93,250,200,247,149,253,57,2,126,254,124,253,211,255,161,0,31,255,221,255,167,9, +60,16,243,14,13,15,156,10,238,7,89,10,32,2,145,250,157,251,134,252,93,3,17,6,27,1,178,5,121,9,168,5, +109,3,0,1,249,255,67,253,221,252,81,7,144,12,209,12,46,12,2,251,14,232,50,223,105,222,73,244,51,11,198,10, +113,2,107,244,89,229,55,221,13,216,235,225,225,244,205,5,124,23,4,21,223,15,251,38,157,55,35,60,46,64,176,42, +147,24,80,36,167,44,183,47,62,47,110,28,196,9,155,1,254,0,240,12,237,24,132,27,40,25,211,18,3,11,96,0, +94,246,172,246,75,250,22,249,198,244,124,237,119,231,159,228,79,228,242,235,248,246,246,252,60,1,102,3,168,1,104,2, +74,5,214,5,140,8,181,16,238,23,147,23,99,17,31,10,95,2,111,251,74,246,232,240,98,239,153,242,189,241,179,239, +73,241,72,238,192,233,161,235,66,240,51,248,197,253,35,246,41,237,221,236,228,237,97,241,144,243,20,233,131,223,124,231, +213,244,57,250,221,250,65,249,234,244,64,239,85,233,67,231,157,235,45,240,130,241,14,244,101,248,250,250,159,251,212,252, +251,0,236,6,138,9,186,8,197,9,189,12,183,16,216,22,149,25,186,23,94,24,194,24,195,21,153,20,192,17,242,9, +225,5,157,7,233,6,13,2,209,254,97,255,163,3,219,9,80,11,138,12,134,19,146,16,9,5,236,6,17,13,255,10, +17,12,167,14,90,13,131,14,232,13,15,5,150,253,220,0,255,5,48,7,101,11,132,11,87,9,90,21,2,27,225,10, +65,252,67,241,176,234,46,246,116,1,192,1,230,1,233,254,127,251,210,250,108,250,94,0,239,6,148,13,161,25,200,24, +88,16,240,21,87,24,226,14,249,4,12,247,1,238,187,242,252,248,245,254,233,1,6,249,12,240,212,239,38,242,1,248, +203,0,199,4,176,4,255,6,1,9,49,3,98,252,14,253,210,251,150,246,108,246,194,248,129,253,51,6,208,9,92,9, +228,8,178,4,49,2,198,3,38,5,73,7,182,3,202,248,8,244,104,247,140,249,38,248,18,249,19,254,206,255,57,1, +33,5,170,255,104,246,29,243,19,238,204,236,208,241,238,241,175,243,110,252,217,7,100,20,173,22,195,11,110,1,83,255, +71,0,28,247,209,239,103,255,107,11,252,1,12,245,89,224,180,207,20,222,86,242,171,246,200,248,251,251,121,2,125,11, +131,14,138,18,8,24,249,21,176,17,63,14,128,11,133,14,196,19,21,21,199,18,131,15,142,12,121,4,242,247,138,245, +200,254,225,4,191,8,14,18,16,19,62,4,216,246,125,241,203,238,120,240,121,243,53,246,201,252,235,1,217,1,89,255, +205,253,228,2,14,9,245,7,165,3,64,253,101,250,85,3,0,11,124,8,226,5,42,6,225,3,199,251,147,244,189,246, +243,248,113,245,164,244,208,245,11,248,212,252,244,250,189,241,201,237,123,243,131,250,20,251,124,249,191,251,143,254,17,255, +43,255,243,1,68,6,13,6,46,4,61,9,251,15,205,12,82,5,233,6,11,12,229,12,126,12,181,3,201,245,27,244, +223,248,221,253,42,4,211,1,78,254,15,0,106,254,206,1,143,7,86,5,245,2,120,250,208,238,26,238,228,237,235,242, +212,255,128,254,65,250,227,255,110,2,71,5,30,7,51,3,133,255,34,247,83,241,81,247,5,253,184,0,73,1,22,251, +201,249,13,253,3,255,121,1,161,254,85,248,162,244,165,241,180,242,68,247,253,250,24,0,6,4,67,3,251,255,38,250, +181,241,80,235,73,234,207,236,204,243,12,254,37,3,95,4,195,5,134,4,54,4,251,3,123,255,232,250,42,249,214,253, +91,1,83,249,4,246,149,248,56,244,245,246,36,252,4,249,27,254,29,4,253,1,215,4,86,7,41,7,67,9,106,6, +255,0,212,252,166,249,215,247,88,243,170,243,31,248,60,243,191,238,44,241,24,243,64,247,33,250,103,250,87,254,201,0, +112,1,93,3,97,3,177,3,24,4,137,2,59,255,123,248,149,242,56,240,17,242,233,250,112,1,239,1,197,1,138,249, +232,240,39,250,152,8,136,16,146,25,141,29,226,26,61,28,78,27,92,24,245,24,161,13,173,255,242,2,62,8,14,18, +247,29,202,10,170,243,4,252,6,2,90,248,4,240,168,235,196,237,90,239,124,242,75,0,207,10,24,16,55,18,71,6, +93,248,243,247,158,253,104,248,169,244,175,18,95,40,22,8,96,230,171,217,143,209,192,223,99,240,246,245,103,0,143,249, +221,240,187,1,253,12,37,21,39,36,127,32,181,27,78,41,126,47,95,33,13,12,115,252,66,244,96,243,181,251,150,7, +9,16,186,14,58,6,12,254,237,246,25,1,29,23,168,25,6,33,201,60,152,72,57,70,244,52,119,2,27,208,181,180, +197,163,160,158,53,166,201,181,220,200,119,222,40,246,118,7,191,18,146,16,252,7,50,30,233,52,218,37,107,27,87,27, +174,30,182,66,137,100,76,101,200,89,68,62,93,26,38,250,15,220,90,212,245,216,45,214,149,218,142,223,243,222,212,224, +5,221,180,217,9,221,109,224,17,228,208,221,111,211,68,217,57,227,109,231,32,239,78,248,43,1,61,12,97,19,144,16, +122,10,152,5,181,250,207,240,68,235,161,219,166,206,151,209,255,214,190,224,34,236,69,239,45,249,17,10,186,18,103,21, +144,20,85,18,158,18,137,20,200,22,110,19,214,13,54,15,17,17,74,16,184,14,56,9,36,5,237,4,123,5,31,7, +244,5,183,3,248,1,180,248,46,237,249,232,81,232,151,233,118,236,163,236,90,236,1,240,218,242,164,240,70,240,236,243, +183,245,33,247,246,247,251,245,121,246,225,248,47,251,21,2,10,11,21,15,225,12,108,9,142,9,40,8,118,1,92,250, +255,245,177,246,218,253,54,10,70,23,88,28,229,26,197,26,122,28,29,34,93,39,65,34,109,25,129,21,64,21,199,25, +76,34,141,40,53,38,16,31,248,29,177,31,118,29,220,24,42,17,208,11,224,11,55,11,94,14,42,19,234,15,91,11, +217,6,27,1,143,0,55,252,135,243,191,243,21,245,205,242,239,243,77,243,124,242,137,248,30,254,247,253,104,252,248,253, +87,2,60,5,234,7,47,11,104,9,252,4,151,2,8,254,0,249,30,250,100,254,209,1,190,4,237,5,81,8,154,12, +124,9,10,2,44,1,182,255,107,251,98,254,49,2,2,3,52,8,250,8,137,4,1,10,249,15,50,10,197,4,49,3, +4,0,89,254,177,254,22,3,93,9,147,4,237,251,156,253,35,0,90,1,185,4,115,254,245,243,43,241,136,238,120,237, +160,240,92,240,46,241,92,243,117,244,218,254,78,10,62,9,7,3,36,248,72,234,207,229,51,232,85,238,220,249,179,1, +13,4,46,6,203,4,177,253,250,245,45,245,220,249,177,251,248,251,30,252,223,250,133,253,226,255,184,253,39,254,165,251, +145,244,7,246,145,248,55,242,209,236,159,233,186,232,115,241,159,250,82,252,10,255,250,5,15,16,248,26,120,31,160,29, +68,22,36,9,156,255,223,249,167,243,110,244,35,247,214,244,223,244,83,242,228,236,66,240,229,245,203,251,227,5,58,8, +59,6,171,9,22,12,150,14,161,12,107,255,255,248,40,254,121,2,224,10,184,17,99,7,241,249,178,249,166,252,233,251, +115,251,106,248,179,243,77,244,38,247,92,248,67,248,195,245,225,246,168,253,16,3,135,7,252,7,19,0,195,249,57,248, +170,246,217,247,17,252,248,1,136,7,108,8,0,10,90,15,159,16,39,12,222,3,228,248,51,242,83,242,177,242,197,240, +124,240,58,242,185,243,132,246,1,251,8,0,160,5,144,7,124,5,190,5,203,5,109,1,67,253,61,250,52,248,144,251, +75,255,224,251,77,248,252,250,35,0,2,5,87,5,24,254,111,244,185,236,5,237,15,246,37,250,15,250,143,255,137,3, +168,5,62,9,234,7,135,7,158,10,137,9,12,9,0,10,31,9,129,11,237,13,10,12,230,8,128,4,97,255,68,252, +208,253,4,1,232,0,166,4,212,9,216,3,7,253,85,254,202,0,121,5,144,8,150,4,147,0,244,251,87,244,131,239, +161,238,94,242,54,249,25,252,86,253,176,2,149,6,143,4,43,2,223,0,24,253,122,249,142,248,238,249,175,252,74,253, +138,255,10,6,73,8,173,7,167,7,219,3,224,1,220,1,162,254,175,255,210,2,41,2,140,2,134,255,186,248,169,247, +159,250,234,254,36,3,217,3,30,5,233,6,227,5,178,4,70,1,201,252,213,253,101,0,148,1,31,5,14,7,88,5, +99,6,176,10,7,13,163,10,86,5,50,3,20,4,9,3,143,3,58,6,30,5,240,2,43,2,93,1,7,2,251,0, +134,254,52,255,242,253,241,249,67,246,26,238,49,230,30,231,138,235,79,239,126,244,183,248,20,250,145,251,77,254,222,1, +235,6,227,8,90,6,235,6,18,10,185,11,160,11,62,6,151,1,201,2,240,1,83,1,219,1,89,254,54,254,189,255, +32,254,141,0,223,3,124,6,178,9,147,7,1,8,33,12,174,8,232,3,247,0,25,253,192,253,171,255,122,255,95,254, +23,251,79,248,105,245,236,243,70,246,30,246,113,247,249,251,112,251,225,251,54,253,142,249,106,250,206,255,233,2,70,4, +128,3,211,2,53,1,185,255,70,2,102,255,128,249,172,250,192,249,230,247,94,252,85,255,246,254,188,252,193,250,86,253, +181,254,249,253,14,255,70,0,168,4,105,9,136,7,5,2,108,251,144,245,60,243,26,245,87,250,202,252,47,253,206,255, +127,254,23,251,114,251,42,252,87,253,115,254,243,254,252,0,1,1,205,0,134,2,225,1,217,1,48,3,136,2,56,1, +164,0,178,3,235,5,131,2,130,255,189,249,153,244,59,251,180,0,213,1,255,6,129,3,227,251,112,254,99,0,170,254, +131,254,218,252,171,252,220,254,117,254,45,252,191,250,222,249,130,248,185,248,138,249,38,248,116,248,57,251,11,0,75,8, +158,12,217,11,123,10,121,6,124,4,2,5,135,2,73,2,212,2,248,255,99,255,49,0,140,255,24,253,91,250,101,253, +131,1,180,2,99,4,71,1,34,255,74,6,222,10,93,10,31,10,100,7,77,6,107,8,116,7,248,1,229,252,204,253, +212,253,21,248,248,245,73,246,184,245,4,249,80,252,229,0,210,7,49,6,68,0,237,255,237,1,92,5,243,8,205,8, +56,6,200,3,26,3,15,2,128,0,249,1,108,1,65,252,34,248,129,246,124,249,254,254,234,0,222,3,26,7,64,4, +210,1,168,1,200,255,92,0,135,2,154,3,73,5,246,3,170,255,148,252,24,250,0,250,179,251,117,251,21,252,224,252, +158,252,148,0,112,4,5,3,202,1,62,1,111,0,100,1,216,1,99,2,255,2,232,1,72,3,234,4,197,2,8,2, +185,1,100,255,188,255,12,1,206,255,174,254,231,255,231,2,89,4,176,2,178,0,218,255,244,255,123,0,198,0,74,0, +73,255,174,255,141,255,223,252,140,251,254,250,210,248,223,247,66,248,59,249,134,250,35,252,27,255,229,253,18,249,91,249, +141,251,236,252,76,254,68,251,20,249,235,251,13,254,206,251,31,248,62,2,37,15,115,254,155,235,124,246,15,2,184,5, +44,8,196,252,106,243,198,247,162,251,7,0,0,4,75,4,181,4,170,0,67,253,99,255,11,1,126,6,243,11,122,10, +24,10,37,10,28,9,159,10,16,11,205,12,76,15,13,14,63,13,76,9,31,4,143,7,38,8,227,255,111,250,177,246, +227,241,47,240,123,239,110,237,133,235,72,235,75,235,104,233,6,232,143,231,203,230,187,232,151,237,118,243,82,249,25,253, +209,255,187,2,122,4,17,6,114,9,3,14,216,15,85,12,36,8,223,7,118,9,107,9,56,8,191,8,78,9,20,7, +81,5,234,5,175,6,219,6,42,7,25,8,121,7,189,4,4,3,0,2,201,1,146,2,208,1,215,2,48,4,41,255, +46,251,195,251,20,250,76,250,73,253,135,253,13,255,170,1,93,1,58,1,191,1,175,1,173,0,111,253,254,250,65,251, +210,251,149,251,61,250,158,249,125,251,195,253,72,255,3,0,23,255,231,252,38,252,120,255,81,2,43,0,17,255,85,2, +79,6,118,9,245,8,253,4,249,2,19,3,45,3,0,3,215,2,209,3,185,3,141,2,103,2,146,254,137,249,124,251, +148,254,90,254,115,255,236,255,252,254,149,255,233,254,76,253,225,254,218,1,195,3,70,6,224,8,59,8,59,6,70,6, +39,4,112,254,17,251,31,251,228,252,50,255,181,254,45,254,247,1,114,4,32,1,68,252,175,249,180,249,40,251,159,252, +255,254,97,3,231,6,127,6,76,4,251,3,79,5,134,5,208,4,183,5,231,5,160,3,144,2,48,0,240,253,98,6, +173,13,56,3,162,247,102,248,210,251,85,254,252,255,220,254,66,253,31,252,102,253,48,0,54,1,245,4,45,9,193,7, +165,5,59,2,255,252,165,253,101,254,130,249,51,247,223,248,5,251,32,253,106,253,214,252,93,253,120,255,30,2,1,2, +155,0,58,1,208,1,98,0,234,253,56,253,89,254,68,254,243,254,167,1,149,3,51,5,134,5,183,3,95,2,51,1, +127,0,46,0,187,254,49,254,66,253,137,251,110,252,230,252,229,252,194,254,226,255,188,2,220,4,90,1,139,255,80,0, +74,0,75,2,160,2,244,0,0,0,226,253,169,253,50,252,82,251,8,7,149,15,186,6,150,253,2,248,165,242,64,245, +109,250,53,252,175,254,236,2,222,7,115,9,255,7,226,7,246,6,147,6,114,7,239,5,35,5,42,4,143,1,139,1, +152,1,136,3,204,6,116,0,28,249,37,251,184,251,88,249,24,249,17,249,17,250,181,249,54,249,26,254,204,1,218,1, +82,3,176,1,90,253,89,253,27,255,9,0,223,1,59,2,249,1,19,6,221,10,71,10,198,7,10,7,198,6,205,6, +60,6,214,3,110,1,245,0,137,1,250,255,16,253,82,253,2,0,218,2,1,4,166,0,244,253,14,255,17,253,121,249, +117,249,89,249,192,248,79,250,6,252,66,252,77,251,159,250,36,252,104,255,106,1,57,0,163,255,151,2,248,4,167,4, +252,2,69,0,149,254,21,255,166,255,33,254,158,251,75,252,54,255,86,0,58,1,77,2,24,2,35,2,59,2,13,2, +23,2,32,2,232,2,141,2,80,2,124,6,140,9,184,8,169,8,25,6,96,1,127,0,151,0,160,0,26,2,72,1, +175,255,254,255,211,254,116,252,211,251,33,252,167,252,80,254,157,255,97,254,177,253,91,0,15,3,158,3,18,3,36,2, +254,0,165,254,130,252,243,252,163,253,224,253,199,255,167,1,18,2,78,2,217,2,58,3,52,2,189,255,199,253,184,253, +14,255,200,255,152,255,234,255,166,0,253,1,232,3,65,5,122,6,91,6,121,3,67,1,135,1,28,2,149,1,3,0, +55,255,78,255,55,255,42,1,206,3,30,3,170,1,123,1,155,0,171,255,14,255,218,253,202,252,161,252,19,254,123,0, +247,0,115,254,89,251,58,251,129,253,31,254,153,253,253,253,56,254,3,255,225,255,203,254,110,254,53,255,48,255,170,1, +140,5,200,4,26,1,194,254,177,253,46,254,225,255,140,0,95,0,68,1,30,2,183,0,252,254,148,255,148,1,43,3, +226,2,221,0,172,254,183,252,176,252,233,254,206,255,32,0,45,1,202,255,89,254,199,255,182,255,91,253,64,252,114,252, +29,252,250,250,220,250,91,251,152,249,248,246,22,247,105,250,120,253,135,252,96,251,64,254,221,0,29,1,65,1,190,0, +163,255,242,254,0,255,246,255,118,0,46,1,4,3,84,3,109,2,232,1,248,255,2,253,70,251,52,251,83,252,150,253, +142,254,128,255,8,0,5,0,131,0,27,2,251,1,184,254,50,253,168,254,161,254,127,253,211,253,203,254,20,255,63,254, +140,253,233,253,138,253,142,251,137,249,49,249,125,250,94,252,96,254,71,255,22,255,176,255,253,255,189,255,15,0,181,254, +138,253,140,255,24,1,197,1,188,2,40,1,128,255,27,0,5,0,69,0,96,1,80,1,155,1,157,0,27,253,143,252, +224,251,131,244,203,239,197,244,93,252,80,4,46,11,211,10,84,7,149,5,210,2,2,1,37,0,193,252,247,250,103,252, +108,254,84,2,212,5,148,5,140,4,88,4,209,2,4,0,217,255,229,3,5,8,120,10,20,12,233,10,84,7,94,3, +7,255,129,251,64,250,237,251,250,255,232,2,65,3,19,3,213,2,142,1,240,255,94,255,55,255,235,254,186,254,104,253, +221,251,0,251,89,250,104,254,91,5,142,5,117,1,105,255,234,253,77,252,56,251,131,253,252,1,39,0,227,251,52,252, +188,252,253,254,96,2,69,0,39,254,107,254,111,253,76,255,41,2,116,2,43,4,230,5,148,5,194,5,203,6,16,8, +59,8,170,7,216,7,134,6,24,4,51,3,200,3,74,5,18,5,67,3,80,3,168,2,14,0,193,254,14,254,52,253, +200,252,184,252,114,253,55,253,128,251,150,250,108,251,243,253,20,255,53,253,133,252,113,253,4,255,135,2,250,2,137,254, +120,252,255,252,87,251,145,250,105,253,121,255,195,255,96,2,210,5,20,6,190,4,33,4,22,4,86,4,160,4,243,4, +83,5,16,6,211,6,202,5,75,4,168,4,135,4,164,2,127,1,79,1,89,255,16,252,220,251,170,253,189,252,165,251, +85,252,57,251,147,249,5,250,74,251,65,253,103,255,58,0,71,0,12,0,26,255,131,253,115,252,12,253,2,254,152,253, +84,253,15,255,55,0,138,254,183,253,136,255,134,0,166,0,105,1,81,1,210,0,144,1,250,2,158,4,112,6,38,6, +124,1,202,252,237,253,234,1,206,3,135,3,141,1,169,255,241,254,123,253,132,252,147,253,119,254,160,254,152,254,41,254, +48,254,192,254,152,254,68,253,124,253,141,1,204,2,95,252,206,247,231,249,4,253,102,3,66,11,72,10,2,6,28,6, +103,4,61,1,29,255,98,251,5,251,48,255,180,2,40,6,158,6,120,1,108,253,251,254,195,0,242,250,149,248,68,8, +125,22,115,19,67,12,192,1,138,247,167,252,161,4,89,3,238,1,239,1,96,3,49,6,237,5,94,7,133,9,164,4, +47,254,237,251,169,251,43,251,78,249,25,248,148,249,236,252,178,254,248,250,125,245,190,242,254,241,195,244,81,248,171,248, +163,248,128,246,239,243,47,249,50,255,84,253,38,251,95,252,144,253,74,0,89,3,175,1,208,254,128,0,221,2,255,2, +2,4,230,4,185,5,73,9,181,11,180,10,37,10,239,9,253,7,95,5,72,4,255,4,190,3,235,255,239,254,247,0, +221,1,169,1,21,0,130,252,158,250,78,251,50,251,113,250,234,250,6,252,67,252,60,251,117,250,211,250,25,252,229,253, +35,254,56,253,39,253,187,251,56,249,211,247,177,247,139,252,192,2,190,0,99,252,107,252,135,252,230,253,227,0,130,1, +222,1,132,2,18,3,14,6,104,8,196,7,252,6,92,6,139,5,165,4,113,2,251,255,223,254,168,253,217,251,181,252, +211,255,40,0,27,255,155,0,104,2,80,3,196,3,236,2,202,2,76,3,53,2,217,1,99,2,200,0,207,254,62,254, +109,253,235,252,53,253,98,252,4,252,231,253,174,254,3,254,11,255,177,255,247,253,77,252,216,251,144,252,211,253,250,253, +33,254,29,0,32,2,32,2,97,1,75,1,139,0,223,254,49,254,72,254,243,253,187,253,95,253,197,251,245,250,179,253, +163,0,1,0,184,255,186,1,176,2,173,3,192,5,39,6,106,5,243,4,26,4,131,3,147,3,170,3,70,4,211,5, +229,6,2,6,116,4,230,3,170,3,164,3,83,4,184,4,0,4,70,2,42,0,192,254,168,253,25,252,192,252,235,0, +127,3,234,2,189,2,16,1,249,253,166,254,255,255,217,254,8,255,27,255,233,253,70,255,154,1,107,2,25,2,96,255, +79,252,147,252,69,254,214,254,63,255,255,255,24,0,215,255,129,255,238,253,163,251,228,249,5,249,244,249,41,252,100,254, +195,0,52,2,37,2,41,1,193,255,62,0,27,2,153,2,22,3,76,3,16,2,233,1,37,1,150,253,77,251,99,251, +52,252,195,254,47,2,233,3,12,3,113,0,140,254,66,254,238,253,25,253,53,253,41,255,250,1,247,3,18,4,124,2, +250,0,108,0,31,0,53,0,22,0,6,255,195,254,206,255,116,0,11,0,252,254,199,254,12,255,113,253,155,251,155,250, +153,248,86,248,136,250,24,251,219,251,170,254,115,0,21,1,195,0,238,255,63,1,173,2,70,2,96,2,59,2,116,1, +95,2,185,3,111,3,105,2,83,2,135,3,80,4,165,3,8,3,25,4,26,5,240,2,240,255,38,255,173,254,59,255, +155,1,140,2,38,3,82,4,134,2,59,255,135,253,57,252,171,250,187,249,165,250,19,253,97,254,101,254,154,254,147,254, +174,254,38,0,137,1,195,0,74,255,216,254,77,254,150,253,34,253,93,252,68,252,198,252,2,253,158,253,214,253,182,253, +145,253,242,251,30,252,40,0,27,2,223,0,49,2,90,6,250,7,145,5,181,3,162,3,183,2,3,2,45,1,178,254, +38,254,169,0,235,2,183,3,248,3,144,4,0,4,227,1,52,1,99,1,58,1,51,2,224,2,195,2,250,2,0,2, +17,0,113,254,127,253,220,253,209,253,63,253,7,254,135,254,168,254,241,255,166,0,57,0,6,255,71,252,148,249,248,248, +117,249,68,249,87,249,243,250,16,252,21,252,109,252,38,252,156,251,217,251,40,252,173,253,185,255,40,0,139,0,142,0, +38,255,183,254,209,254,211,254,135,0,157,1,100,0,42,0,165,1,36,2,138,1,209,1,136,2,69,2,68,2,28,3, +67,3,150,2,185,1,77,1,14,2,2,3,215,2,213,1,189,0,188,255,238,254,3,255,4,255,70,253,13,252,92,253, +43,255,16,0,201,255,81,254,114,252,119,250,228,248,227,247,113,247,136,248,243,249,120,251,57,254,200,254,70,253,197,253, +76,254,38,255,113,1,25,0,148,254,84,3,170,7,195,6,100,4,167,1,170,254,22,253,220,252,112,253,249,254,143,0, +136,0,139,255,254,254,165,254,184,254,151,254,216,253,176,254,85,0,60,0,49,255,38,254,193,253,174,253,236,252,167,253, +143,255,124,255,198,254,150,254,67,254,162,254,246,254,239,254,250,255,133,1,70,2,244,1,91,1,24,1,202,0,246,0, +22,1,54,0,160,255,212,254,227,253,98,255,27,1,49,0,102,255,89,0,31,1,186,0,50,0,61,0,39,0,125,255, +29,254,102,252,75,251,210,250,129,251,204,252,233,252,91,253,37,254,17,253,113,252,87,253,143,254,194,0,160,1,95,0, +255,255,70,255,194,253,245,253,46,254,77,253,18,254,172,0,46,2,159,1,179,0,115,0,231,0,240,1,181,2,57,3, +94,4,36,6,6,7,68,5,153,2,202,0,151,254,28,253,127,252,252,250,206,250,60,251,206,250,2,253,156,254,15,252, +96,251,186,252,21,252,176,252,73,255,208,255,182,254,70,255,20,1,41,1,5,0,12,0,172,0,224,0,250,0,59,1, +137,1,53,1,50,0,105,255,118,255,41,0,179,0,59,1,202,1,3,1,161,255,159,255,60,0,51,0,66,0,231,0, +142,0,236,254,16,254,242,253,106,253,190,252,107,252,58,253,3,254,203,253,225,254,220,255,255,254,69,255,105,255,90,254, +11,255,84,255,132,254,129,255,109,0,214,0,160,1,182,0,100,255,61,255,45,255,224,255,136,0,133,255,124,254,201,254, +210,255,113,0,101,0,105,0,11,0,241,255,160,1,164,2,145,1,147,1,155,2,41,2,54,1,115,0,127,255,61,255, +237,254,23,254,24,254,56,254,238,253,114,254,237,255,211,1,150,2,38,2,104,2,234,1,148,0,182,0,32,0,191,254, +118,254,176,252,102,251,39,254,167,0,28,0,72,254,33,252,223,250,56,251,37,253,246,255,171,1,95,2,253,2,4,3, +26,3,96,3,99,2,167,0,67,0,250,0,132,0,4,255,156,253,174,251,235,250,155,252,142,253,125,253,171,254,120,255, +119,255,123,0,252,0,65,0,121,0,255,0,73,0,162,255,147,255,65,255,240,254,125,255,137,0,138,0,153,255,127,254, +12,253,201,252,55,253,31,252,148,252,38,255,197,0,19,3,59,4,79,1,117,254,217,252,222,251,219,252,193,253,90,254, +238,254,84,254,2,255,79,0,46,0,61,0,13,0,191,255,42,255,166,253,8,254,89,254,119,253,98,255,67,1,222,1, +209,2,64,1,139,0,84,2,7,2,134,1,161,1,136,0,102,254,242,251,224,251,222,250,93,251,77,6,115,14,237,11, +244,6,215,246,197,230,12,239,185,250,38,249,96,250,175,255,61,4,113,9,54,12,97,13,117,13,112,11,107,9,184,7, +6,7,155,5,163,2,244,1,62,1,20,0,110,0,80,253,193,250,189,253,143,255,222,0,221,2,80,0,38,253,50,253, +103,253,242,252,126,252,27,253,173,253,99,252,209,251,69,252,22,252,155,252,166,253,52,254,151,254,61,255,90,0,249,0, +1,2,102,4,13,5,144,3,158,2,31,2,192,1,246,1,110,2,200,2,213,2,8,3,82,3,97,3,20,4,10,5, +208,4,16,4,140,4,176,5,45,5,190,3,207,2,175,0,43,255,71,1,100,2,140,255,4,253,10,252,80,252,161,255, +236,1,43,255,241,252,224,253,241,253,125,254,176,0,195,0,229,255,170,0,23,1,242,0,196,1,33,3,222,3,41,3, +200,1,134,1,88,2,200,2,55,3,207,4,116,5,11,4,22,3,21,2,168,0,119,1,132,2,207,1,18,2,169,2, +253,1,194,1,164,1,178,0,5,0,39,0,68,1,0,3,185,3,73,3,6,3,1,3,236,2,165,2,154,1,1,1, +53,1,209,255,152,254,41,0,87,1,51,1,186,1,219,1,74,2,143,4,81,6,237,5,153,4,173,3,55,3,212,2, +164,2,79,2,85,2,21,3,193,2,33,2,124,2,171,1,174,0,53,1,179,0,124,255,251,255,25,1,102,1,70,1, +188,1,100,2,28,2,243,1,98,2,7,2,55,1,227,0,252,0,74,1,238,1,145,3,161,4,18,3,56,1,188,0, +252,255,86,255,70,255,80,255,46,0,137,0,47,0,213,1,54,3,79,2,39,2,166,1,237,255,251,255,145,0,69,1, +145,2,113,1,249,0,110,3,161,3,95,3,20,5,122,4,148,3,136,4,201,3,147,2,222,2,81,3,205,3,118,3, +102,2,235,2,249,3,105,3,227,2,223,3,200,4,164,4,195,3,61,2,32,1,216,0,148,0,114,0,137,0,76,1, +50,2,97,1,236,0,36,1,44,255,160,254,28,0,91,254,38,252,60,252,43,252,44,253,218,254,5,255,244,254,16,255, +116,255,170,0,19,2,106,3,218,3,145,3,166,3,138,3,145,3,21,4,154,4,148,4,204,2,66,1,54,1,184,255, +78,254,246,254,125,255,53,0,68,1,232,1,133,2,245,1,98,1,162,1,27,1,74,1,83,1,198,255,101,255,251,254, +40,254,192,255,102,1,199,1,176,1,104,0,247,255,135,0,134,0,207,0,159,0,28,0,245,255,16,255,11,255,221,255, +192,255,243,255,4,0,194,255,96,0,140,0,133,0,230,0,4,1,154,1,219,1,182,1,251,1,134,1,189,1,96,2, +30,1,137,0,138,0,14,255,55,254,190,253,64,254,101,1,155,2,248,0,191,0,22,1,139,0,175,0,119,1,98,1, +5,1,71,2,77,3,51,2,161,1,245,1,97,1,64,0,244,254,188,254,115,255,32,255,45,255,199,255,60,255,154,255, +200,0,61,0,104,255,186,255,38,0,237,255,186,255,217,0,221,1,234,0,214,255,206,255,164,255,89,255,20,255,70,254, +130,253,113,253,162,253,242,253,106,254,119,254,124,254,76,255,20,0,44,0,63,0,95,0,29,0,196,255,94,255,92,254, +191,253,181,254,149,255,116,255,114,255,221,254,11,254,236,254,241,255,112,255,246,254,107,255,14,0,216,255,239,254,140,254, +110,254,71,254,178,254,218,254,197,254,198,255,205,0,127,0,213,255,151,255,134,255,149,255,175,255,139,255,73,255,81,255, +233,255,48,1,59,2,255,1,91,1,209,0,10,0,253,255,158,255,42,253,128,251,78,252,108,253,210,254,37,0,210,255, +10,255,136,254,18,254,90,254,178,254,237,254,125,255,164,255,223,255,54,0,18,0,181,0,42,1,62,0,213,255,194,255, +181,255,35,1,126,2,75,2,58,1,117,255,254,253,191,253,64,254,243,254,51,255,90,255,167,255,59,255,193,254,243,254, +54,255,86,255,79,255,136,255,239,255,217,255,198,255,69,255,71,254,162,254,124,255,120,255,13,255,175,253,128,252,239,252, +156,253,62,254,249,254,14,255,14,255,32,255,228,254,142,254,142,254,146,255,157,0,226,0,65,1,73,1,223,0,117,0, +228,255,120,0,173,1,203,1,88,1,157,255,211,253,185,254,121,255,196,254,222,254,197,254,111,254,126,254,192,253,102,253, +187,253,159,253,168,253,36,253,138,252,148,253,99,254,236,253,137,253,64,253,94,253,109,254,153,255,2,0,199,255,144,255, +245,254,213,253,141,253,58,254,71,255,160,0,104,1,100,1,94,1,239,1,106,2,54,1,122,255,17,255,205,254,121,254, +140,254,49,254,3,254,23,254,230,253,250,253,186,253,165,253,96,254,58,254,78,254,171,255,228,255,95,255,34,255,65,254, +92,253,65,252,144,251,112,253,73,255,207,254,35,254,81,253,72,252,193,252,141,253,137,253,207,253,134,254,105,255,247,255, +242,255,129,0,235,0,204,255,203,254,177,254,191,254,78,255,196,255,163,255,79,255,36,254,41,253,148,253,239,253,55,254, +173,254,57,254,204,253,215,253,64,253,245,251,93,250,154,249,77,249,238,247,130,247,26,249,179,250,199,251,98,252,180,253, +110,255,7,254,112,252,180,254,100,1,221,3,38,5,198,0,179,251,79,251,140,251,31,251,242,251,165,253,83,255,82,255, +241,254,128,0,45,1,218,255,239,254,61,254,128,253,107,253,234,253,253,254,156,255,139,255,11,0,250,255,1,255,86,255, +229,255,226,254,37,254,86,254,172,254,2,0,165,1,233,1,77,1,64,0,49,255,213,254,43,254,145,253,77,254,186,254, +192,254,249,255,26,1,203,1,100,2,250,0,25,255,232,255,3,1,244,255,23,255,230,255,153,0,173,0,215,0,220,255, +89,254,205,254,234,254,140,252,2,251,131,251,170,252,84,254,44,255,119,254,181,253,128,253,255,252,89,251,33,250,25,251, +53,252,190,252,97,254,225,255,98,0,197,0,193,0,161,0,103,0,113,255,141,254,29,254,28,254,140,254,127,254,31,254, +45,254,215,254,27,0,223,0,19,1,164,1,200,1,120,1,51,1,147,0,34,0,146,255,199,254,245,254,9,255,133,254, +119,254,85,254,242,254,148,0,136,1,166,2,59,3,103,1,16,0,157,0,198,0,71,0,165,255,71,255,152,255,236,255, +19,0,0,0,188,255,71,0,16,1,191,0,40,0,100,0,183,0,93,0,9,0,211,255,91,255,202,255,94,0,43,255, +33,254,89,254,76,254,184,254,206,255,12,0,9,0,141,0,18,1,54,1,191,0,185,255,226,254,17,255,55,255,209,253, +127,252,128,252,177,252,89,253,85,254,105,254,62,254,121,254,230,254,61,255,61,255,187,255,104,0,110,0,202,0,235,0, +146,0,82,1,196,1,98,1,165,1,14,1,4,0,95,0,211,0,153,1,98,2,230,0,16,255,82,254,53,253,101,252, +192,251,212,250,73,251,125,252,159,253,143,255,251,0,217,0,4,0,231,254,72,254,93,254,191,254,14,0,33,1,16,0, +232,254,205,255,161,0,235,255,126,255,60,0,247,0,212,0,93,0,163,0,27,1,3,1,47,1,79,1,97,1,177,2, +126,3,207,2,136,2,235,1,35,1,8,2,141,2,80,1,232,255,223,254,223,253,66,252,205,250,129,250,162,250,96,252, +145,254,42,253,254,251,25,255,37,2,103,3,90,4,28,4,68,3,51,3,90,3,210,2,122,2,162,3,26,4,140,2, +90,1,99,0,52,255,61,255,47,255,144,254,172,254,206,254,242,254,72,255,82,255,0,0,142,0,233,255,14,0,248,0, +201,0,183,0,54,1,109,0,208,255,68,1,123,2,144,2,5,3,34,3,156,2,18,2,17,1,93,0,108,0,141,0, +0,1,72,1,61,1,128,1,137,1,164,1,141,1,103,0,247,255,12,0,107,255,34,0,85,1,153,0,237,255,204,0, +125,1,136,0,124,255,169,0,234,1,123,1,18,1,14,0,34,255,42,1,125,3,25,3,21,2,138,1,80,0,123,254, +216,253,77,255,18,1,164,1,86,1,147,0,215,255,147,255,65,255,52,254,64,253,133,253,19,254,113,254,100,255,9,0, +99,0,126,1,144,2,167,3,173,4,110,4,249,3,153,3,152,2,254,1,59,1,63,0,37,0,11,255,93,253,207,253, +179,254,159,254,222,254,91,255,195,255,71,0,81,0,34,255,220,253,220,254,2,1,226,1,87,2,155,2,81,2,194,2, +249,2,29,2,27,2,191,2,174,2,173,2,160,2,179,1,19,1,108,1,109,1,8,1,226,0,35,0,15,255,130,254, +39,254,174,254,207,255,194,255,79,255,14,255,79,254,40,254,90,254,228,253,225,253,45,254,91,254,75,255,33,0,127,0, +25,1,234,0,55,0,128,0,250,0,186,0,31,0,102,255,31,255,181,255,133,0,223,0,246,0,72,1,179,1,24,2, +106,2,34,2,190,1,1,2,13,2,148,1,243,0,201,255,168,254,76,254,104,254,2,255,226,255,175,0,163,1,158,2, +121,3,134,3,120,2,215,1,141,1,163,0,113,0,18,1,182,1,183,2,68,3,228,2,208,1,33,0,95,255,44,255, +147,254,125,255,178,0,30,0,22,0,173,0,125,0,172,0,2,1,79,1,202,1,39,1,52,0,23,0,24,0,109,0, +124,0,83,255,88,254,130,254,96,255,87,0,41,1,254,1,84,2,149,2,77,3,242,2,252,1,13,2,43,2,88,2, +209,2,49,2,56,1,241,0,133,0,201,255,37,255,233,254,11,255,44,255,113,255,172,255,0,0,191,0,62,1,226,1, +147,2,45,2,250,1,33,2,113,1,96,1,201,1,62,1,223,255,166,253,240,252,187,254,235,255,71,1,113,2,171,255, +123,253,14,0,36,2,201,1,152,1,153,1,164,1,226,1,101,2,166,3,59,5,130,6,67,6,41,4,211,2,212,2, +198,1,235,255,21,255,29,255,74,255,240,255,230,0,56,1,229,1,108,3,68,3,169,1,56,1,10,1,150,0,99,1, +109,2,118,2,107,2,157,2,185,2,252,2,77,3,55,3,254,2,177,2,143,1,192,0,144,1,174,1,174,0,48,1, +168,1,65,0,198,255,44,1,102,2,169,2,70,2,188,1,15,1,183,0,158,1,28,2,22,1,165,0,42,1,123,1, +90,1,167,0,174,0,145,1,43,1,115,0,148,0,26,0,225,255,126,0,129,0,93,0,229,255,193,254,187,254,9,0, +186,1,253,2,197,2,79,1,136,255,229,255,57,2,209,1,28,2,88,7,49,10,83,9,142,5,4,248,100,234,172,233, +12,236,74,236,169,240,85,247,10,255,255,6,90,12,229,19,80,26,168,21,1,16,158,18,107,19,4,17,51,15,104,8, +171,2,91,6,92,10,217,9,146,9,150,9,38,8,205,3,26,254,254,249,217,245,174,243,107,244,223,242,194,242,223,247, +94,251,31,251,134,250,125,250,203,249,80,247,81,246,147,248,120,251,123,254,219,0,148,2,166,4,0,5,82,4,85,4, +233,3,62,3,142,1,42,255,225,252,79,248,60,245,110,247,69,250,15,253,47,0,76,1,104,3,47,7,32,9,179,9, +195,9,166,8,176,6,69,5,185,4,146,3,177,2,136,2,244,0,237,254,188,253,96,253,33,254,73,254,144,254,255,255, +23,0,72,0,41,1,167,255,139,254,93,0,180,1,193,0,48,255,136,254,26,253,20,251,143,252,147,255,249,0,99,3, +149,5,80,5,175,4,160,3,19,3,190,4,91,5,13,4,103,3,178,2,9,2,221,2,81,3,51,2,176,0,79,255, +219,254,70,255,76,255,57,255,23,255,70,255,3,1,121,2,164,2,192,2,18,2,81,1,181,1,207,2,32,4,193,3, +116,3,75,4,64,3,91,5,224,6,71,252,223,243,68,247,45,251,204,3,65,12,214,5,190,253,131,250,149,248,252,0, +30,9,118,6,245,3,144,255,31,251,100,0,127,4,234,2,58,2,21,0,6,255,122,0,129,0,32,2,72,4,125,3, +21,2,110,0,47,255,132,254,68,253,118,253,62,254,137,255,121,2,248,1,161,255,209,0,110,1,227,0,1,1,139,254, +212,251,177,251,30,252,92,253,17,255,236,255,79,0,103,0,252,0,247,1,199,2,210,3,168,3,217,1,3,0,192,254, +237,253,47,252,50,250,24,250,212,249,252,248,0,250,123,251,0,252,22,252,32,252,114,252,115,252,75,252,74,252,84,252, +56,253,245,253,230,253,137,253,169,252,159,253,88,255,133,254,19,254,10,254,142,253,153,255,90,1,239,1,251,1,151,253, +153,250,135,253,62,0,47,2,176,2,184,0,100,254,24,248,147,243,86,248,159,253,66,2,225,6,227,2,57,253,231,252, +132,252,137,254,24,2,60,1,48,0,8,2,76,3,101,0,68,252,95,254,148,1,161,255,111,254,41,252,167,248,29,254, +1,4,8,254,14,248,191,249,128,251,20,253,50,0,79,0,203,254,39,0,45,1,55,254,189,251,221,253,216,255,45,254, +249,252,85,252,13,251,180,253,152,0,59,253,37,250,38,251,31,252,13,254,255,255,9,254,200,251,15,253,230,254,232,254, +40,254,227,252,168,251,216,252,239,254,254,254,193,254,210,254,47,254,44,254,168,254,63,255,69,0,83,0,136,255,202,254, +45,254,171,254,71,255,229,254,17,255,150,255,141,255,220,255,71,0,246,255,67,255,78,254,33,253,203,252,245,252,48,252, +19,252,190,253,181,254,71,254,224,253,48,254,0,255,75,255,244,255,86,1,172,1,26,2,128,2,45,1,62,0,50,255, +99,253,210,253,80,254,76,253,113,253,240,252,152,251,7,252,155,252,101,252,143,252,76,253,14,254,72,254,42,255,248,255, +248,254,214,254,21,0,197,0,133,1,2,1,46,255,195,254,8,255,68,255,87,255,3,254,179,252,73,252,228,252,144,255, +147,1,11,1,128,255,30,252,135,248,200,248,255,250,185,252,212,254,207,255,98,255,166,0,68,2,66,1,19,0,170,0, +174,1,196,2,132,2,152,255,43,253,236,253,65,0,44,2,232,2,170,2,35,2,218,0,134,254,119,252,57,251,176,250, +154,251,80,253,22,254,226,253,140,253,211,253,195,254,79,255,76,255,77,255,108,255,152,255,79,255,135,254,86,253,239,251, +245,251,29,253,251,253,86,255,250,255,251,254,77,254,69,253,237,251,232,251,8,252,158,252,18,254,243,254,47,0,70,1, +118,1,132,2,7,3,40,2,234,1,197,1,92,1,87,1,85,1,238,0,166,255,167,254,124,254,123,253,187,252,80,253, +200,253,2,254,99,254,29,255,201,255,176,255,96,255,100,254,170,253,159,254,219,254,148,254,22,255,244,254,146,255,191,255, +255,253,89,254,36,255,251,253,5,254,249,253,123,253,37,254,237,253,229,253,125,254,202,253,236,252,229,251,248,251,158,254, +155,1,17,5,203,6,192,3,70,0,27,254,153,252,38,253,173,253,58,254,239,255,45,1,102,2,36,2,85,1,198,3, +251,4,83,3,3,2,115,254,18,251,124,251,1,252,186,252,213,253,48,253,97,253,13,255,12,0,18,0,11,0,171,1, +47,3,224,2,247,1,96,254,23,250,195,250,230,252,206,252,26,253,47,254,250,254,16,255,3,255,142,0,22,2,189,1, +112,1,38,2,153,2,4,2,67,1,161,1,54,2,155,1,60,0,253,254,64,254,222,253,131,253,251,252,139,252,210,252, +65,253,171,253,102,254,30,254,148,253,147,254,6,255,68,254,234,253,184,253,54,254,28,255,165,254,221,253,203,253,39,254, +199,254,140,254,42,254,135,254,67,254,246,253,123,254,11,255,196,255,236,255,142,255,192,255,138,255,95,255,249,255,59,0, +139,0,0,0,106,254,19,255,163,0,92,0,174,255,140,254,147,253,170,254,63,0,252,0,175,0,103,255,161,254,25,254, +94,253,79,253,113,253,222,253,111,254,74,254,180,254,218,255,196,0,89,1,241,0,16,0,119,255,38,255,193,255,255,255, +211,255,196,0,170,0,147,255,150,255,80,255,150,255,192,0,74,0,168,255,147,255,198,254,215,254,113,255,202,255,225,0, +36,1,10,0,23,255,93,254,53,254,109,254,251,253,79,253,125,253,25,255,178,0,97,0,199,255,112,0,211,0,94,0, +1,0,198,255,131,255,141,255,134,255,231,254,153,254,228,254,209,254,190,254,19,255,47,255,99,255,241,255,15,0,223,255, +246,255,198,255,157,255,127,0,48,1,12,1,21,1,90,0,115,255,20,0,56,0,215,255,98,0,174,255,113,254,232,254, +99,255,129,255,248,255,16,0,3,0,216,255,124,255,103,255,88,255,73,255,72,255,165,255,184,0,141,1,234,1,217,1, +110,1,213,1,213,1,182,0,107,0,251,255,79,255,19,0,117,0,155,0,19,1,65,255,123,253,96,254,143,255,58,1, +101,2,8,0,97,253,41,253,78,253,73,254,50,0,142,0,45,0,117,0,39,0,51,255,107,254,56,254,225,254,66,255, +149,255,41,1,255,1,101,1,122,1,193,1,227,1,152,2,93,2,217,0,243,255,142,0,30,1,142,255,232,253,172,254, +172,255,15,0,224,0,44,1,85,1,40,2,136,2,239,1,149,0,83,255,88,255,121,0,171,1,117,1,2,0,139,255, +240,255,4,0,159,0,140,1,163,1,105,1,125,1,89,1,229,0,42,1,176,1,191,0,102,255,35,255,156,254,185,253, +38,254,36,255,162,255,173,0,192,1,53,1,197,0,186,1,158,1,120,0,195,255,203,253,233,251,61,253,113,255,22,1, +189,2,63,2,130,1,146,3,169,4,145,3,216,2,78,1,87,255,130,254,31,254,94,255,246,0,242,255,49,255,198,255, +140,255,50,0,46,1,131,0,132,0,240,0,0,0,193,255,88,0,143,0,63,1,2,1,17,255,118,254,135,255,158,0, +246,1,32,2,227,0,234,0,52,1,72,1,36,3,227,3,146,2,187,2,204,2,133,1,243,0,208,255,74,254,115,254, +45,255,30,0,79,1,138,1,93,1,104,1,180,1,95,2,71,2,123,1,255,0,127,0,76,0,102,0,51,0,31,1, +192,2,104,2,95,1,44,1,66,0,238,255,12,1,222,0,97,0,46,1,100,1,208,1,181,2,228,1,16,1,209,1, +110,2,254,1,35,1,101,1,99,2,127,2,240,2,160,3,66,3,249,2,61,2,120,0,1,255,128,253,203,252,240,253, +211,254,255,254,145,255,25,0,137,0,9,1,46,1,242,0,193,0,168,0,199,0,228,1,68,3,126,3,72,3,55,3, +101,3,182,3,88,3,106,3,129,3,250,1,146,1,86,2,203,1,23,2,176,2,213,1,169,1,37,1,176,255,119,255, +56,255,2,255,42,0,78,0,40,255,33,255,4,0,236,0,25,2,170,2,28,2,102,2,123,3,123,3,33,3,70,2, +169,0,23,0,160,255,45,255,225,255,95,255,130,254,70,255,117,255,119,255,221,255,108,255,181,255,147,0,10,1,253,1, +157,2,5,3,124,3,152,2,180,1,103,2,108,3,227,3,252,3,174,3,199,2,70,2,128,2,5,2,114,1,31,1, +113,0,202,0,23,1,172,0,145,1,211,1,244,0,0,1,90,0,188,255,83,0,88,0,208,0,113,1,216,0,113,0, +48,0,154,0,135,1,69,0,147,254,152,254,51,255,103,0,74,1,85,1,152,1,199,1,112,2,87,3,47,3,255,2, +140,2,75,1,189,0,187,0,138,0,71,0,49,0,171,0,192,0,131,0,63,1,122,2,186,3,50,4,250,2,116,1, +122,0,225,255,238,255,81,0,179,0,156,0,238,255,146,255,147,255,134,255,156,255,109,0,63,1,35,0,115,255,188,1, +112,3,50,3,158,2,21,1,189,255,170,255,170,255,71,255,130,254,245,254,127,0,154,0,204,0,165,1,115,1,157,1, +143,1,147,0,22,0,234,254,211,253,46,254,134,254,191,255,133,1,23,2,115,2,220,1,109,0,244,255,26,0,116,1, +165,2,43,1,144,255,77,255,143,255,94,0,119,0,99,0,155,0,130,255,14,255,79,0,219,0,128,0,243,255,165,255, +138,255,216,254,181,254,37,255,233,254,33,255,110,255,48,255,179,255,208,255,18,255,18,255,7,255,6,255,69,0,27,1, +202,0,22,1,253,1,62,2,80,2,211,2,42,3,86,3,49,3,181,1,68,0,226,0,194,1,21,1,45,0,110,255, +90,254,58,254,1,255,248,254,161,254,115,254,103,253,186,252,157,253,86,254,38,254,80,254,24,255,133,255,121,255,11,0, +226,0,136,0,153,255,52,255,251,254,195,254,4,255,225,255,250,0,198,1,253,1,159,1,50,1,24,1,13,1,254,0, +136,0,195,255,216,255,6,0,124,255,145,255,119,255,108,254,129,254,48,255,83,255,247,255,226,255,213,254,25,255,166,255, +90,255,151,255,248,255,243,255,230,255,145,255,156,255,54,0,148,0,194,0,98,0,175,255,218,255,75,0,117,0,182,0, +155,0,15,0,136,255,122,255,215,255,139,255,51,255,198,255,240,255,224,255,129,0,177,0,115,0,134,0,197,0,42,1, +25,1,168,0,83,0,121,255,1,255,161,255,254,255,6,0,247,255,158,255,179,255,30,0,152,0,219,0,165,0,143,1, +133,2,249,0,160,255,196,255,69,255,119,255,85,0,217,255,200,255,249,0,251,1,186,2,205,2,26,2,71,1,2,0, +158,254,231,253,200,253,243,253,228,253,125,253,45,253,126,253,167,254,171,255,42,0,123,0,146,255,242,253,142,253,21,254, +34,255,215,0,3,2,172,1,7,0,144,254,208,253,164,252,86,252,247,253,88,255,19,0,8,1,197,1,50,2,10,2, +163,1,208,1,185,1,234,0,25,0,230,255,8,0,62,255,39,255,50,1,104,2,129,2,175,2,238,0,221,254,55,255, +169,255,189,254,187,253,95,253,152,253,30,254,226,254,50,255,66,255,46,0,132,0,170,255,255,254,54,254,64,254,153,255, +58,0,152,0,212,0,158,255,162,254,140,254,130,254,32,255,209,255,23,0,89,0,228,255,49,255,55,255,54,255,192,254, +133,254,16,255,204,255,247,255,250,255,254,255,185,255,122,255,56,255,254,254,58,255,154,255,147,255,115,255,124,255,43,255, +201,254,21,255,100,255,190,255,124,0,21,0,214,254,119,254,122,254,185,254,103,255,182,255,238,255,58,0,50,0,10,0, +212,255,210,255,216,255,38,255,86,254,28,254,109,254,60,255,30,0,239,0,142,1,195,1,221,1,53,1,193,255,30,255, +24,255,153,254,56,254,127,254,183,254,13,254,87,253,178,253,69,254,204,254,188,255,20,0,203,255,240,255,122,0,250,0, +250,0,146,0,72,0,177,255,213,254,122,254,129,254,149,254,182,254,202,254,212,254,5,255,127,255,248,255,14,0,196,255, +56,255,232,254,103,255,56,0,122,0,13,0,38,255,231,253,255,252,26,253,178,253,47,254,160,254,217,254,33,255,222,255, +231,0,68,2,92,3,95,3,168,2,114,1,4,0,237,254,217,253,224,252,141,252,161,252,105,253,39,255,108,0,26,0, +154,255,85,0,235,0,170,0,197,0,225,0,187,0,188,0,67,0,6,0,64,0,151,255,79,255,16,0,109,0,30,1, +246,1,63,1,242,255,86,255,9,255,151,254,47,254,131,254,37,255,37,255,54,255,199,255,4,0,182,255,36,255,94,254, +16,254,177,254,35,255,6,255,21,255,160,254,29,254,238,254,129,255,59,255,62,255,214,254,197,254,18,0,221,0,166,0, +112,0,142,0,189,0,200,255,180,254,85,255,43,0,152,0,217,0,172,255,111,254,153,254,177,254,123,254,88,254,231,253, +124,253,57,253,110,253,100,254,65,255,193,255,254,255,218,255,242,255,40,0,1,0,57,0,146,0,243,255,35,255,242,254, +229,254,141,255,188,0,142,0,251,255,215,0,156,1,226,1,73,2,134,1,106,0,97,0,105,0,155,0,3,1,213,0, +124,0,66,255,219,253,4,255,187,0,195,0,10,1,122,1,131,1,53,2,98,2,130,1,196,0,13,0,174,255,241,255, +59,0,192,0,37,1,4,1,216,0,49,0,175,255,113,0,245,0,131,0,7,0,37,255,49,254,42,254,113,254,146,254, +231,254,101,255,167,255,85,255,210,254,153,254,164,254,71,255,41,0,118,0,152,0,154,0,70,0,121,0,184,0,26,0, +141,255,107,255,97,255,138,255,126,255,142,255,190,255,10,255,178,254,136,255,188,255,95,255,65,255,237,254,224,254,227,254, +183,254,129,255,12,0,50,255,166,254,170,254,186,254,36,255,52,255,49,255,169,255,180,255,173,255,254,255,14,0,152,0, +92,1,237,0,82,0,125,0,73,0,149,255,22,255,180,254,142,254,216,254,101,255,80,0,18,1,53,1,181,1,64,2, +43,2,0,3,229,3,191,2,115,1,251,0,82,0,139,0,8,1,86,0,164,255,247,254,61,254,177,254,55,255,37,255, +109,255,142,255,184,255,126,0,220,0,191,0,218,0,47,1,115,1,40,1,195,0,241,0,14,1,203,0,62,0,51,255, +89,254,26,254,186,253,38,253,24,253,146,253,244,253,68,254,217,254,166,255,189,0,213,1,179,2,203,3,129,4,120,4, +155,4,75,4,126,3,188,3,210,3,173,2,164,1,115,0,41,255,67,255,166,255,221,254,220,253,86,253,251,252,173,252, +165,252,232,252,35,253,104,253,181,253,145,253,26,253,160,252,110,252,28,253,100,254,102,255,16,0,167,0,123,1,178,2, +103,3,241,2,114,2,208,2,3,3,93,2,117,1,128,0,159,255,55,255,83,255,242,255,166,0,17,1,132,1,120,1, +3,1,125,1,2,2,130,1,33,1,217,0,175,0,110,1,148,1,180,0,35,0,252,254,227,253,11,255,104,0,68,0, +68,0,38,0,188,255,157,0,148,1,51,1,195,0,172,0,195,0,94,1,196,1,200,1,120,1,17,0,219,254,78,255, +242,255,197,255,88,255,251,254,229,254,213,254,165,254,227,254,117,255,55,0,63,1,16,2,229,2,8,4,141,4,19,4, +3,3,210,1,234,0,83,0,232,255,126,255,73,255,197,255,211,255,137,254,92,253,231,252,219,252,202,253,233,254,84,255, +188,255,220,255,158,255,230,255,222,255,248,254,121,254,144,254,158,254,203,254,34,255,150,255,5,0,3,0,231,255,34,0, +27,0,137,255,45,255,161,255,120,0,170,0,146,0,54,1,144,1,214,0,64,0,251,255,194,255,85,0,84,1,246,1, +27,2,129,1,185,0,65,0,183,255,109,255,62,255,170,254,122,254,212,254,123,255,174,0,37,1,52,0,67,255,177,254, +88,254,187,254,85,255,99,255,54,255,108,255,41,0,237,0,50,1,0,1,177,0,145,0,137,0,125,0,152,0,214,0, +245,0,184,0,91,0,105,0,157,0,156,0,205,0,7,1,26,1,134,1,1,2,29,2,30,2,0,2,224,1,252,1, +1,2,224,1,209,1,132,1,214,0,63,0,209,255,64,255,233,254,23,255,52,255,40,255,63,255,53,255,24,255,32,255, +247,254,168,254,138,254,141,254,86,254,239,253,7,254,136,254,163,254,189,254,27,255,30,255,33,255,145,255,244,255,72,0, +215,0,138,1,209,1,106,1,252,0,166,0,117,0,53,1,226,1,89,1,202,0,95,0,207,255,36,0,121,0,206,255, +100,255,79,255,87,255,87,0,104,1,109,1,30,1,6,1,23,1,62,1,90,1,73,1,216,0,175,0,46,1,54,1, +11,1,155,1,193,1,75,1,36,1,163,0,214,255,194,255,58,0,233,0,89,1,49,1,9,1,148,0,164,255,99,255, +133,255,63,255,54,255,112,255,168,255,32,0,82,0,10,0,214,255,216,255,25,0,126,0,164,0,155,0,209,0,81,1, +145,1,103,1,98,1,121,1,100,1,53,1,198,0,123,0,143,0,60,0,195,255,157,255,112,255,186,255,89,0,78,0, +22,0,229,255,125,255,173,255,246,255,119,255,102,255,15,0,49,0,251,255,220,255,28,255,158,254,229,255,248,0,10,0, +23,255,34,255,160,255,233,0,167,1,23,1,186,0,13,0,39,255,222,255,167,0,39,0,137,255,113,254,147,253,138,254, +165,255,175,255,153,255,123,255,150,255,47,0,152,0,161,0,140,0,184,0,252,0,130,0,223,255,192,255,150,255,234,255, +195,0,243,0,40,1,163,1,119,1,142,1,25,2,213,1,19,1,75,0,202,255,81,0,61,1,218,1,15,2,125,1, +252,0,16,1,228,0,196,0,153,0,154,255,188,254,108,254,6,254,236,253,246,253,181,253,176,253,219,253,244,253,70,254, +191,254,4,255,255,254,13,255,87,255,98,255,83,255,145,255,162,255,132,255,185,255,22,0,98,0,178,0,210,0,144,0, +96,0,154,0,178,0,130,0,131,0,96,0,1,0,196,255,79,255,185,254,135,254,99,254,64,254,112,254,176,254,228,254, +87,255,13,0,90,0,217,255,156,255,79,0,24,1,124,1,132,1,80,1,42,1,144,0,118,255,223,254,160,254,74,254, +47,254,248,253,197,253,48,254,176,254,243,254,56,255,148,255,50,0,197,0,42,1,174,1,180,1,78,1,57,1,227,0, +123,0,199,0,8,1,8,1,0,1,125,0,238,255,185,255,145,255,157,255,212,255,10,0,245,255,76,255,224,254,201,254, +79,254,39,254,118,254,141,254,213,254,20,255,185,254,107,254,99,254,82,254,50,254,47,254,171,254,120,255,239,255,255,255, +45,0,192,0,2,1,203,0,220,0,184,0,105,0,223,0,31,1,185,0,139,0,17,0,119,255,126,255,160,255,250,255, +92,0,202,255,181,254,183,253,58,253,178,253,61,254,136,254,5,255,5,255,202,254,81,255,3,0,90,0,157,0,212,0, +196,0,22,0,105,255,185,255,41,0,239,255,174,255,31,255,96,254,170,254,252,254,58,254,225,253,53,254,61,254,109,254, +239,254,120,255,215,255,117,255,40,255,236,255,162,0,217,0,7,1,225,0,178,0,192,0,175,0,168,0,143,0,61,0, +55,0,71,0,29,0,77,0,182,0,139,0,13,0,254,255,35,0,245,255,191,255,230,255,244,255,98,255,174,254,93,254, +35,254,32,254,100,254,76,254,33,254,91,254,200,254,173,255,102,0,18,0,128,255,234,254,41,254,32,254,108,254,104,254, +132,254,147,254,141,254,203,254,72,255,55,0,229,0,123,0,228,255,200,255,182,255,156,255,211,255,120,0,248,0,235,0, +184,0,163,0,185,0,209,0,141,0,255,255,168,255,10,0,106,0,183,255,50,255,158,255,178,255,191,255,24,0,202,255, +103,255,86,255,10,255,215,254,253,254,176,255,72,0,97,255,87,254,174,254,24,255,25,255,64,255,115,255,109,255,152,254, +179,253,42,254,239,254,246,254,252,254,38,255,107,255,255,255,58,0,216,255,161,255,241,255,43,0,213,255,164,255,33,0, +99,0,230,255,105,255,58,255,66,255,184,255,42,0,21,0,11,0,105,0,207,0,22,1,81,1,125,1,90,1,196,0, +39,0,212,255,160,255,113,255,97,255,140,255,160,255,73,255,237,254,242,254,57,255,120,255,145,255,173,255,137,255,0,255, +167,254,91,254,23,254,125,254,244,254,95,255,52,0,47,0,172,255,141,0,142,1,51,1,213,0,94,1,206,1,92,1, +194,0,156,0,111,0,71,0,66,0,13,0,244,255,222,255,215,255,161,0,124,1,152,1,131,1,20,1,89,0,9,0, +202,255,136,255,152,255,108,255,28,255,88,255,115,255,212,254,109,254,219,254,119,255,177,255,132,255,33,255,237,254,32,255, +134,255,182,255,176,255,221,255,255,255,212,255,189,255,189,255,187,255,157,255,57,255,94,255,214,255,87,255,255,254,178,255, +91,0,3,1,113,1,41,1,92,1,189,1,105,1,149,1,221,1,33,1,188,0,30,1,20,1,238,0,46,1,44,1, +190,0,68,0,219,255,184,255,165,255,43,255,213,254,229,254,171,254,122,254,216,254,35,255,24,255,246,254,212,254,226,254, +40,255,152,255,241,255,247,255,37,0,148,0,168,0,112,0,65,0,40,0,44,0,59,0,52,0,242,255,184,255,3,0, +85,0,31,0,234,255,49,0,194,0,241,0,163,0,164,0,193,0,101,0,40,0,248,255,161,255,214,255,43,0,13,0, +10,0,26,0,22,0,76,0,146,0,222,0,57,1,87,1,64,1,239,0,88,0,246,255,13,0,84,0,164,0,245,0, +238,0,88,0,209,255,203,255,248,255,64,0,113,0,40,0,215,255,219,255,222,255,198,255,203,255,254,255,67,0,166,0, +238,0,121,0,248,255,101,0,218,0,225,0,239,0,199,0,197,0,233,0,144,0,103,0,117,0,29,0,249,255,221,255, +169,255,255,255,104,0,207,0,22,1,122,0,43,0,201,0,86,1,236,1,3,2,60,1,168,0,240,255,73,255,216,255, +115,0,111,0,119,0,52,0,238,255,28,0,18,0,210,255,185,255,131,255,44,255,11,255,62,255,212,255,176,0,246,0, +152,0,180,0,10,1,10,1,196,0,162,255,223,254,198,255,127,0,161,0,207,0,38,0,162,255,178,255,68,255,172,255, +149,0,35,0,184,255,2,0,43,0,175,0,53,1,22,1,255,0,35,1,30,1,36,1,82,1,243,0,217,0,218,2, +138,4,73,3,126,1,49,0,222,254,63,255,44,0,74,255,121,254,62,255,53,0,76,0,255,255,6,0,31,0,81,0, +180,0,99,0,8,0,185,0,127,1,21,2,138,2,33,2,99,1,213,0,126,0,254,0,116,1,225,0,53,0,225,255, +241,255,205,0,162,1,190,1,140,1,21,1,149,0,148,0,151,0,43,0,195,255,196,255,95,0,30,1,4,1,137,0, +193,0,32,1,24,1,29,1,90,1,198,1,9,2,164,1,83,1,181,1,239,1,210,1,221,1,177,1,74,1,53,1, +63,1,16,1,199,0,121,0,34,0,175,255,72,255,40,255,249,254,161,254,121,254,126,254,204,254,112,255,9,0,173,0, +67,1,35,1,227,0,118,1,0,2,152,1,16,1,14,1,36,1,112,1,233,1,176,1,255,0,119,0,29,0,89,0, +201,0,207,0,215,0,118,0,209,255,14,0,93,0,90,0,171,0,96,0,62,0,11,2,252,3,66,4,227,3,131,3, +137,2,23,1,12,0,158,255,172,255,19,0,153,0,244,1,152,3,66,3,3,2,11,2,66,2,251,1,158,1,198,0, +223,255,157,255,168,255,70,255,74,255,81,1,72,3,159,2,53,1,57,0,107,255,179,255,14,0,191,255,213,255,210,255, +216,255,158,0,11,1,241,0,201,0,66,0,218,255,57,0,232,0,73,1,157,1,238,1,142,1,24,1,1,1,135,0, +72,0,106,0,73,0,171,0,32,1,47,1,133,1,47,1,176,0,38,1,20,1,185,0,180,0,62,0,78,0,135,0, +40,0,201,0,137,1,36,1,235,0,198,0,150,0,251,0,56,1,230,0,74,0,197,255,187,255,213,255,206,255,104,255, +22,255,248,255,6,1,75,1,118,1,5,1,31,0,124,255,241,254,141,255,171,0,75,0,7,0,202,0,223,0,109,0, +39,0,246,255,20,0,121,0,177,0,47,0,113,255,115,255,167,255,195,255,31,0,0,0,121,255,80,255,160,255,86,0, +180,0,116,0,50,0,175,255,73,255,192,255,53,0,51,0,16,0,203,255,196,255,227,255,228,255,95,0,242,0,0,1, +36,1,102,1,192,1,171,2,51,3,172,2,12,2,109,1,199,0,247,0,37,1,83,0,213,255,54,0,135,0,187,0, +143,0,133,255,124,254,39,254,58,254,114,254,132,254,79,254,61,254,132,254,242,254,90,255,145,255,148,255,139,255,115,255, +84,255,133,255,223,255,168,255,34,255,71,255,168,255,103,255,18,255,54,255,184,255,148,0,31,1,249,0,220,0,174,0, +114,0,209,0,19,1,248,0,223,0,202,255,192,254,153,255,139,0,92,0,40,0,238,255,192,255,221,255,215,255,3,0, +56,0,238,255,168,255,113,255,115,255,23,0,99,0,22,0,3,0,216,255,152,255,215,255,28,0,33,0,254,255,90,255, +187,254,255,254,125,255,95,255,24,255,17,255,43,255,87,255,117,255,152,255,3,0,109,0,100,0,27,0,2,0,1,0, +250,255,18,0,209,255,84,255,126,255,132,255,34,255,200,255,41,0,243,254,111,254,7,255,128,255,153,0,127,1,165,0, +203,255,65,0,122,0,181,255,252,254,219,254,4,255,53,255,48,255,0,255,1,255,36,255,49,255,20,255,28,255,209,255, +115,0,81,0,30,0,163,255,231,254,11,255,37,255,147,254,119,254,76,254,212,253,25,254,116,254,111,254,123,254,95,254, +144,254,69,255,163,255,215,255,6,0,147,255,229,254,158,254,145,254,174,254,231,254,253,254,217,254,176,254,219,254,86,255, +173,255,199,255,171,255,51,255,15,255,191,255,28,0,204,255,171,255,74,255,190,254,75,255,10,0,194,255,91,255,45,255, +240,254,1,255,44,255,53,255,74,255,33,255,181,254,92,254,83,254,230,254,55,255,90,254,230,253,198,254,50,255,203,254, +219,254,43,255,28,255,21,255,75,255,135,255,129,255,30,255,218,254,251,254,12,255,224,254,216,254,27,255,115,255,132,255, +78,255,59,255,66,255,21,255,218,254,138,254,57,254,157,254,72,255,17,255,144,254,138,254,128,254,138,254,188,254,107,254, +56,254,252,254,169,255,162,255,151,255,137,255,124,255,222,255,43,0,52,0,100,0,21,0,70,255,7,255,9,255,228,254, +0,255,250,254,223,254,75,255,154,255,86,255,253,254,176,254,109,254,105,254,194,254,59,255,77,255,66,255,76,255,181,254, +59,254,203,254,22,255,231,254,20,255,190,254,79,254,235,254,113,255,135,255,173,255,81,255,6,255,77,255,102,255,151,255, +197,255,154,255,170,255,83,255,168,254,207,254,223,254,167,254,198,254,107,254,73,254,195,254,167,254,1,255,195,255,20,255, +94,254,227,254,84,255,91,255,45,255,211,254,218,254,76,255,106,255,209,254,85,254,154,254,6,255,43,255,220,254,101,254, +84,254,213,253,82,253,112,254,236,255,173,0,66,1,231,0,34,0,4,0,138,255,23,255,117,255,125,255,95,255,249,255, +109,0,19,0,145,255,95,255,56,255,18,255,243,254,101,254,181,253,141,253,211,253,57,254,96,254,128,254,11,255,114,255, +118,255,40,255,151,254,165,254,218,254,51,254,236,253,165,254,74,255,67,255,207,254,212,254,38,255,228,254,217,254,83,255, +193,255,116,0,24,1,53,1,232,0,19,0,102,255,67,255,34,255,25,255,28,255,48,255,108,255,34,255,196,254,230,254, +230,254,46,255,226,255,225,255,89,255,48,255,81,255,25,255,226,254,137,255,29,0,244,255,197,255,40,255,146,254,209,254, +219,254,230,254,239,254,11,254,52,254,207,255,222,0,51,2,39,3,212,1,38,0,254,254,195,253,248,253,237,254,158,254, +21,254,14,254,10,254,107,254,226,254,221,254,248,254,11,255,123,254,209,253,132,253,137,253,233,253,92,254,221,254,105,255, +139,255,148,255,193,255,116,255,48,255,160,255,34,0,107,0,165,0,155,0,92,0,34,0,216,255,91,255,254,254,17,255, +71,255,146,255,5,0,23,0,231,255,17,0,139,0,66,1,206,1,158,1,32,1,195,0,82,0,189,255,100,255,172,255, +0,0,191,255,142,255,186,255,215,255,241,255,249,255,239,255,198,255,23,255,117,254,105,254,107,254,143,254,187,254,136,254, +168,254,38,255,116,255,226,255,8,0,137,255,50,255,52,255,139,255,32,0,41,0,224,255,212,255,176,255,133,255,106,255, +87,255,157,255,236,255,240,255,213,255,196,255,212,255,104,255,245,254,207,255,175,0,209,0,5,1,236,255,147,254,216,255, +9,1,3,0,67,255,100,255,174,255,227,255,148,255,204,255,110,0,15,0,158,255,169,255,120,255,150,255,34,0,114,0, +139,0,155,0,144,0,55,0,223,255,245,255,246,255,199,255,187,255,127,255,85,255,183,255,6,0,230,255,217,255,9,0, +12,0,14,0,101,0,103,0,246,255,150,255,37,255,6,255,108,255,166,255,10,0,141,0,116,0,106,0,113,0,223,255, +126,255,124,255,83,255,108,255,223,255,72,0,104,0,31,0,224,255,242,255,233,255,157,255,115,255,163,255,249,255,105,0, +216,0,236,0,230,0,213,0,101,0,13,0,2,0,251,255,82,0,222,0,21,1,14,1,202,0,84,0,35,0,135,0, +253,0,203,0,190,0,119,1,246,1,100,2,255,2,186,2,35,2,195,1,11,1,211,0,239,0,51,0,164,255,195,255, +195,255,227,255,10,0,201,255,187,255,236,255,212,255,3,0,147,0,37,0,54,255,149,255,98,0,182,0,39,1,208,0, +46,0,24,1,233,1,100,1,32,1,53,1,95,1,237,1,28,2,212,1,101,1,163,0,48,0,45,0,25,0,97,0, +227,0,246,0,198,0,109,0,61,0,20,1,34,2,183,1,165,0,125,0,167,0,134,0,133,0,138,0,123,0,109,0, +67,0,58,0,53,0,222,255,118,255,19,255,238,254,91,255,237,255,98,0,164,0,161,0,220,0,9,1,173,0,123,0, +140,0,87,0,251,255,218,255,43,0,132,0,230,0,215,1,87,2,235,1,120,1,139,0,239,255,79,1,211,2,203,2, +42,2,121,1,229,0,99,0,224,255,5,0,110,0,179,0,35,1,214,0,45,0,144,0,217,0,114,0,119,0,136,0, +130,0,28,1,196,1,229,1,177,1,78,1,33,1,68,1,19,1,162,0,114,0,33,0,218,255,89,0,192,0,130,0, +109,0,66,0,243,255,35,0,78,0,139,0,55,1,107,1,95,1,121,1,39,1,38,1,166,1,185,1,168,1,136,1, +57,1,104,1,161,1,33,1,118,0,55,0,99,0,148,0,175,0,199,0,147,0,141,0,187,0,8,0,173,255,58,1, +213,2,63,3,48,3,107,2,87,1,253,0,213,0,187,0,233,0,156,0,99,0,11,1,110,1,137,1,26,2,30,2, +207,1,44,2,57,2,202,1,156,1,58,1,181,0,87,0,26,0,132,0,223,0,103,0,35,0,74,0,117,0,235,0, +52,1,244,0,160,0,111,0,144,0,247,0,63,1,23,1,189,0,30,1,203,1,153,1,97,1,145,1,116,1,187,1, +38,2,181,1,85,1,68,1,0,1,45,1,128,1,63,1,7,1,42,1,55,1,251,0,186,0,196,0,5,1,87,1, +137,1,126,1,146,1,144,1,48,1,33,1,64,1,251,0,250,0,96,1,99,1,19,1,250,0,223,0,116,0,76,0, +122,0,49,0,213,255,250,255,33,0,150,0,67,1,250,0,61,0,37,0,97,0,160,0,231,0,48,1,151,1,19,2, +111,2,67,2,178,1,138,1,124,1,27,1,7,1,32,1,43,1,124,1,111,1,189,0,37,0,237,255,35,0,124,0, +137,0,222,0,75,1,224,0,85,0,96,0,102,0,107,0,148,0,86,0,5,0,79,0,174,0,159,0,102,0,39,0, +37,0,167,0,3,1,186,0,111,0,85,0,4,0,198,255,248,255,94,0,184,0,236,0,237,0,188,0,83,0,16,0, +50,0,49,0,36,0,157,0,247,0,222,0,214,0,140,0,67,0,185,0,74,1,168,1,251,1,186,1,96,1,78,1, +212,0,65,0,249,255,235,255,51,0,22,0,246,255,253,0,212,1,223,1,26,2,166,1,168,0,184,0,226,0,52,0, +216,255,111,0,92,1,171,1,69,1,206,0,39,0,143,255,156,255,157,255,103,255,189,255,41,0,12,0,214,255,201,255, +209,255,15,0,126,0,199,0,206,0,186,0,182,0,6,1,101,1,71,1,5,1,229,0,160,0,151,0,231,0,240,0, +180,0,149,0,187,0,25,1,83,1,97,1,70,1,246,0,255,0,110,1,158,1,165,1,165,1,122,1,41,1,117,0, +144,255,27,255,253,254,31,255,146,255,244,255,17,0,242,255,191,255,179,255,184,255,236,255,47,0,198,255,60,255,133,255, +219,255,214,255,231,255,176,255,61,255,70,255,148,255,159,255,111,255,75,255,98,255,115,255,107,255,161,255,246,255,54,0, +113,0,120,0,104,0,145,0,172,0,142,0,90,0,20,0,235,255,232,255,209,255,163,255,102,255,70,255,104,255,158,255, +241,255,72,0,59,0,251,255,188,255,131,255,157,255,162,255,74,255,72,255,61,255,201,254,192,254,225,254,215,254,112,255, +58,0,117,0,148,0,178,0,197,0,229,0,209,0,212,0,216,0,59,0,225,255,99,0,140,0,25,0,148,255,194,254, +11,254,2,254,28,254,63,254,199,254,55,255,83,255,142,255,136,255,212,254,93,254,201,254,48,255,9,255,231,254,4,255, +65,255,162,255,177,255,57,255,222,254,199,254,219,254,133,255,63,0,35,0,176,255,90,255,4,255,26,255,110,255,94,255, +101,255,187,255,193,255,168,255,200,255,180,255,122,255,127,255,106,255,24,255,16,255,62,255,90,255,174,255,248,255,167,255, +74,255,71,255,81,255,149,255,243,255,207,255,119,255,95,255,51,255,238,254,11,255,111,255,113,255,246,254,151,254,128,254, +132,254,206,254,55,255,81,255,43,255,16,255,8,255,4,255,13,255,57,255,96,255,131,255,185,255,147,255,26,255,18,255, +45,255,176,254,77,254,194,254,96,255,140,255,176,255,229,255,200,255,169,255,185,255,105,255,33,255,160,255,2,0,138,255, +253,254,207,254,194,254,195,254,183,254,154,254,181,254,21,255,89,255,77,255,76,255,133,255,171,255,183,255,207,255,207,255, +164,255,89,255,24,255,29,255,47,255,10,255,229,254,201,254,163,254,183,254,249,254,21,255,34,255,94,255,137,255,107,255, +98,255,103,255,35,255,12,255,21,255,146,254,45,254,101,254,163,254,21,255,133,255,7,255,106,254,166,254,253,254,6,255, +4,255,238,254,203,254,207,254,6,255,53,255,59,255,115,255,207,255,193,255,139,255,202,255,36,0,23,0,233,255,201,255, +122,255,85,255,168,255,195,255,116,255,71,255,45,255,42,255,64,255,239,254,145,254,123,254,76,254,127,254,237,254,143,254, +50,254,123,254,159,254,215,254,5,255,80,254,193,253,61,254,227,254,44,255,74,255,124,255,190,255,194,255,198,255,208,255, +120,255,80,255,136,255,78,255,243,254,38,255,125,255,191,255,0,0,24,0,239,255,134,255,35,255,21,255,22,255,251,254, +8,255,34,255,33,255,85,255,141,255,85,255,46,255,120,255,165,255,130,255,100,255,112,255,124,255,35,255,170,254,226,254, +123,255,184,255,224,255,35,0,42,0,240,255,210,255,243,255,200,255,37,255,229,254,49,255,100,255,139,255,168,255,124,255, +127,255,220,255,252,255,212,255,212,255,2,0,0,0,164,255,73,255,31,255,235,254,199,254,197,254,162,254,134,254,184,254, +11,255,106,255,187,255,203,255,178,255,114,255,42,255,96,255,199,255,172,255,156,255,236,255,189,255,64,255,71,255,107,255, +113,255,171,255,175,255,128,255,174,255,234,255,220,255,185,255,179,255,198,255,181,255,204,255,80,0,96,0,1,0,34,0, +115,0,227,0,96,1,205,0,249,255,72,0,122,0,233,255,123,255,49,255,5,255,20,255,58,255,179,255,243,255,90,255, +237,254,46,255,61,255,15,255,79,255,216,255,35,0,66,0,84,0,19,0,189,255,173,255,163,255,183,255,223,255,152,255, +102,255,193,255,249,255,217,255,161,255,95,255,88,255,120,255,132,255,160,255,201,255,2,0,81,0,99,0,18,0,162,255, +126,255,177,255,234,255,50,0,78,0,200,255,110,255,239,255,132,0,156,0,116,0,107,0,163,0,212,0,190,0,49,0, +127,255,116,255,169,255,145,255,160,255,171,255,156,255,214,255,16,0,111,0,205,0,87,0,219,255,220,255,149,255,160,255, +62,0,72,0,216,255,164,255,103,255,239,254,195,254,20,255,73,255,103,255,173,255,152,255,94,255,129,255,165,255,223,255, +17,0,191,255,145,255,206,255,1,0,97,0,191,0,157,0,78,0,27,0,20,0,79,0,126,0,147,0,209,0,246,0, +226,0,1,1,16,1,170,0,86,0,55,0,25,0,70,0,106,0,40,0,3,0,32,0,52,0,25,0,215,255,161,255, +118,255,182,255,32,0,165,255,111,255,144,0,202,1,19,3,221,3,134,2,180,0,213,255,31,255,0,255,28,255,172,254, +159,254,249,254,66,255,141,255,143,255,133,255,108,255,22,255,219,254,63,254,164,253,3,254,158,254,86,255,27,0,239,255, +220,255,134,0,177,0,180,0,4,1,242,0,185,0,203,0,252,0,21,1,8,1,235,0,169,0,111,0,58,0,200,255, +226,255,227,0,234,1,201,2,81,3,14,3,104,2,122,1,119,0,72,0,155,0,127,0,48,0,61,0,121,0,165,0, +167,0,18,0,64,255,89,255,202,255,89,255,181,254,168,254,220,254,20,255,84,255,196,255,61,0,77,0,42,0,47,0, +80,0,97,0,61,0,84,0,178,0,132,0,29,0,99,0,219,0,229,0,203,0,245,0,25,1,188,0,75,0,54,0, +61,0,120,0,173,0,90,0,34,0,118,0,184,0,191,0,221,0,34,1,60,1,192,0,43,0,37,0,50,0,234,255, +163,255,140,255,165,255,223,255,11,0,46,0,102,0,127,0,90,0,78,0,81,0,252,255,198,255,71,0,214,0,237,0, +241,0,224,0,131,0,97,0,180,0,241,0,238,0,226,0,225,0,15,1,80,1,88,1,82,1,66,1,254,0,230,0, +7,1,25,1,59,1,58,1,240,0,210,0,244,0,14,1,27,1,38,1,15,1,173,0,92,0,116,0,128,0,109,0, +120,0,117,0,129,0,146,0,112,0,96,0,101,0,139,0,211,0,199,0,198,0,226,0,117,0,50,0,122,0,161,0, +173,0,137,0,148,0,118,1,42,2,62,2,36,2,127,1,178,0,30,0,177,255,39,0,212,0,136,0,49,0,128,0, +243,0,24,1,233,0,249,0,17,1,183,0,130,0,131,0,125,0,175,0,208,0,217,0,7,1,45,1,78,1,27,1, +168,0,160,0,162,0,152,0,228,0,241,0,222,0,40,1,80,1,83,1,34,1,107,0,0,0,79,0,173,0,221,0, +215,0,128,0,53,0,70,0,123,0,166,0,236,0,244,0,166,0,200,0,5,1,161,0,79,0,111,0,194,0,118,1, +226,1,96,1,178,0,61,0,220,255,200,255,227,255,250,255,54,0,125,0,189,0,43,1,126,1,70,1,242,0,8,1, +31,1,244,0,230,0,240,0,227,0,242,0,31,1,41,1,4,1,215,0,187,0,145,0,96,0,110,0,134,0,48,0, +207,255,9,0,123,0,133,0,90,0,41,0,13,0,91,0,143,0,39,0,225,255,243,255,233,255,5,0,59,0,83,0, +151,0,190,0,142,0,102,0,78,0,93,0,110,0,31,0,1,0,57,0,48,0,49,0,85,0,65,0,62,0,82,0, +89,0,140,0,214,0,23,1,52,1,241,0,177,0,208,0,222,0,163,0,129,0,144,0,141,0,110,0,76,0,54,0, +94,0,172,0,207,0,198,0,168,0,119,0,83,0,93,0,97,0,34,0,22,0,146,0,211,0,176,0,171,0,140,0, +110,0,136,0,104,0,54,0,40,0,44,0,97,0,70,0,233,255,14,0,62,0,61,0,106,0,97,0,78,0,155,0, +171,0,86,0,39,0,71,0,134,0,164,0,138,0,79,0,50,0,68,0,111,0,232,0,83,1,37,1,228,0,166,0, +71,0,118,0,189,0,106,0,54,0,71,0,68,0,69,0,65,0,102,0,155,0,144,0,142,0,122,0,80,0,134,0, +159,0,86,0,70,0,71,0,7,0,219,255,206,255,196,255,217,255,242,255,254,255,37,0,50,0,39,0,65,0,251,255, +140,255,214,255,42,0,33,0,43,0,207,255,150,255,37,0,66,0,220,255,195,255,205,255,20,0,80,0,59,0,56,0, +10,0,252,255,3,0,45,255,161,254,8,255,92,255,120,0,155,1,149,0,85,255,140,255,174,255,164,255,234,255,220,255, +7,0,248,0,193,1,208,1,147,1,84,1,19,1,197,0,90,0,37,0,80,0,39,0,203,255,38,0,142,0,16,0, +153,255,209,255,247,255,217,255,219,255,239,255,26,0,75,0,64,0,53,0,44,0,214,255,130,255,80,255,46,255,120,255, +199,255,152,255,108,255,115,255,81,255,9,255,243,254,71,255,169,255,217,255,235,255,164,255,62,255,56,255,104,255,190,255, +20,0,11,0,49,0,212,0,56,1,37,1,218,0,123,0,87,0,99,0,59,0,7,0,242,255,187,255,169,255,20,0, +119,0,125,0,91,0,31,0,1,0,241,255,182,255,200,255,0,0,198,255,119,255,63,255,1,255,246,254,13,255,99,255, +227,255,241,255,198,255,175,255,130,255,133,255,136,255,52,255,23,255,69,255,113,255,170,255,196,255,215,255,51,0,134,0, +153,0,153,0,107,0,242,255,138,255,146,255,221,255,249,255,218,255,220,255,8,0,220,255,132,255,195,255,50,0,36,0, +239,255,168,255,93,255,151,255,233,255,194,255,176,255,205,255,164,255,135,255,156,255,105,255,8,255,240,254,6,255,17,255, +40,255,96,255,166,255,208,255,210,255,245,255,46,0,10,0,169,255,141,255,171,255,190,255,200,255,172,255,124,255,178,255, +10,0,214,255,121,255,114,255,113,255,128,255,177,255,155,255,123,255,164,255,170,255,164,255,215,255,229,255,230,255,39,0, +77,0,67,0,56,0,23,0,8,0,27,0,9,0,223,255,203,255,178,255,146,255,110,255,70,255,74,255,111,255,107,255, +84,255,104,255,142,255,191,255,220,255,161,255,82,255,70,255,81,255,127,255,192,255,196,255,179,255,142,255,63,255,37,255, +32,255,246,254,221,254,177,254,148,254,216,254,32,255,104,255,181,255,147,255,88,255,99,255,115,255,177,255,7,0,21,0, +0,0,230,255,222,255,253,255,235,255,160,255,104,255,68,255,58,255,70,255,89,255,154,255,211,255,165,255,85,255,55,255, +62,255,107,255,147,255,108,255,75,255,147,255,1,0,79,0,59,0,173,255,61,255,45,255,38,255,71,255,135,255,116,255, +89,255,145,255,178,255,156,255,144,255,105,255,82,255,157,255,225,255,8,0,58,0,224,255,52,255,46,255,106,255,85,255, +67,255,84,255,100,255,79,255,43,255,53,255,60,255,67,255,96,255,63,255,33,255,30,255,245,254,58,255,198,255,194,255, +160,255,170,255,124,255,87,255,84,255,54,255,41,255,88,255,138,255,121,255,74,255,45,255,32,255,92,255,160,255,140,255, +132,255,118,255,64,255,102,255,149,255,117,255,116,255,114,255,97,255,140,255,194,255,236,255,252,255,204,255,164,255,174,255, +234,255,58,0,52,0,1,0,250,255,235,255,228,255,9,0,34,0,42,0,36,0,234,255,158,255,127,255,123,255,103,255, +82,255,83,255,82,255,106,255,157,255,152,255,116,255,139,255,157,255,112,255,89,255,119,255,125,255,96,255,129,255,193,255, +184,255,202,255,13,0,215,255,159,255,243,255,44,0,76,0,134,0,83,0,251,255,209,255,146,255,145,255,205,255,198,255, +168,255,144,255,122,255,135,255,180,255,10,0,53,0,231,255,155,255,138,255,152,255,212,255,0,0,26,0,58,0,77,0, +83,0,5,0,151,255,150,255,144,255,142,255,201,255,153,255,111,255,201,255,238,255,10,0,53,0,231,255,166,255,194,255, +229,255,21,0,39,0,30,0,64,0,115,0,138,0,57,0,215,255,17,0,56,0,204,255,139,255,155,255,169,255,205,255, +246,255,6,0,7,0,246,255,231,255,246,255,3,0,249,255,232,255,173,255,99,255,144,255,242,255,11,0,17,0,252,255, +189,255,168,255,197,255,10,0,87,0,94,0,83,0,80,0,41,0,13,0,255,255,217,255,185,255,171,255,175,255,172,255, +156,255,208,255,30,0,251,255,201,255,39,0,119,0,41,0,6,0,95,0,158,0,247,0,95,1,57,1,0,1,1,1, +216,0,219,0,248,0,189,0,132,0,62,0,217,255,225,255,13,0,213,255,175,255,218,255,252,255,20,0,59,0,54,0, +22,0,34,0,55,0,70,0,70,0,3,0,197,255,190,255,172,255,179,255,253,255,96,0,153,0,101,0,52,0,103,0, +123,0,100,0,97,0,47,0,231,255,211,255,228,255,3,0,25,0,63,0,105,0,76,0,64,0,127,0,139,0,100,0, +110,0,166,0,208,0,210,0,209,0,202,0,145,0,95,0,83,0,58,0,51,0,80,0,79,0,52,0,24,0,245,255, +236,255,13,0,32,0,18,0,8,0,28,0,65,0,62,0,29,0,55,0,101,0,72,0,29,0,30,0,28,0,18,0, +33,0,69,0,81,0,48,0,37,0,66,0,82,0,98,0,98,0,40,0,15,0,58,0,74,0,78,0,114,0,124,0, +107,0,101,0,111,0,152,0,171,0,126,0,109,0,143,0,167,0,183,0,190,0,174,0,153,0,140,0,128,0,85,0, +45,0,91,0,141,0,116,0,115,0,120,0,64,0,64,0,145,0,191,0,183,0,141,0,83,0,51,0,24,0,250,255, +1,0,16,0,10,0,22,0,48,0,41,0,48,0,116,0,119,0,249,255,180,255,225,255,250,255,46,0,118,0,41,0, +227,255,71,0,127,0,93,0,89,0,58,0,49,0,130,0,178,0,196,0,207,0,136,0,80,0,95,0,97,0,127,0, +171,0,120,0,39,0,17,0,42,0,104,0,149,0,151,0,161,0,152,0,147,0,211,0,232,0,179,0,163,0,134,0, +102,0,179,0,247,0,242,0,249,0,190,0,73,0,42,0,64,0,75,0,98,0,111,0,116,0,143,0,148,0,98,0, +70,0,127,0,178,0,140,0,85,0,53,0,35,0,75,0,139,0,143,0,102,0,78,0,70,0,53,0,50,0,81,0, +116,0,113,0,70,0,33,0,17,0,27,0,90,0,151,0,154,0,126,0,101,0,128,0,167,0,121,0,53,0,230,255, +169,255,59,0,222,0,120,0,9,0,31,0,26,0,20,0,11,0,226,255,221,255,224,255,246,255,72,0,125,0,114,0, +108,0,161,0,210,0,152,0,67,0,41,0,48,0,97,0,140,0,129,0,114,0,102,0,116,0,147,0,122,0,101,0, +121,0,132,0,117,0,53,0,8,0,46,0,82,0,120,0,135,0,30,0,214,255,18,0,74,0,98,0,123,0,121,0, +96,0,73,0,66,0,57,0,45,0,36,0,13,0,34,0,69,0,16,0,232,255,228,255,199,255,18,0,121,0,57,0, +241,255,5,0,22,0,83,0,147,0,120,0,92,0,79,0,49,0,74,0,105,0,71,0,40,0,16,0,242,255,21,0, +67,0,18,0,223,255,7,0,67,0,106,0,135,0,138,0,130,0,135,0,115,0,88,0,80,0,65,0,67,0,92,0, +84,0,84,0,109,0,121,0,165,0,194,0,159,0,174,0,209,0,184,0,168,0,133,0,76,0,91,0,126,0,135,0, +130,0,107,0,120,0,152,0,148,0,151,0,165,0,178,0,190,0,146,0,85,0,76,0,68,0,34,0,35,0,79,0, +80,0,19,0,213,255,142,255,93,255,117,255,169,255,10,0,94,0,19,0,173,255,159,255,163,255,227,255,41,0,32,0, +39,0,27,0,231,255,235,255,253,255,35,0,88,0,31,0,206,255,220,255,3,0,38,0,72,0,84,0,79,0,63,0, +62,0,58,0,47,0,75,0,99,0,82,0,79,0,79,0,57,0,31,0,21,0,41,0,61,0,61,0,56,0,45,0, +49,0,65,0,69,0,84,0,77,0,9,0,220,255,223,255,214,255,209,255,240,255,30,0,74,0,136,0,193,0,177,0, +140,0,186,0,240,0,219,0,193,0,181,0,141,0,113,0,90,0,18,0,217,255,217,255,214,255,198,255,167,255,107,255, +76,255,79,255,78,255,95,255,125,255,170,255,223,255,232,255,227,255,255,255,40,0,104,0,166,0,174,0,153,0,140,0, +154,0,159,0,143,0,179,0,208,0,140,0,73,0,55,0,38,0,51,0,68,0,41,0,7,0,252,255,7,0,11,0, +252,255,238,255,218,255,218,255,236,255,198,255,148,255,159,255,164,255,159,255,180,255,189,255,194,255,205,255,220,255,33,0, +91,0,51,0,17,0,31,0,22,0,38,0,85,0,75,0,45,0,28,0,247,255,226,255,214,255,195,255,207,255,216,255, +198,255,214,255,8,0,54,0,77,0,84,0,91,0,81,0,59,0,42,0,10,0,8,0,27,0,251,255,231,255,246,255, +236,255,248,255,3,0,220,255,204,255,203,255,188,255,189,255,166,255,125,255,97,255,59,255,50,255,70,255,82,255,116,255, +157,255,191,255,209,255,142,255,85,255,124,255,166,255,226,255,22,0,219,255,177,255,221,255,237,255,247,255,2,0,223,255, +207,255,240,255,8,0,242,255,207,255,239,255,24,0,246,255,225,255,249,255,9,0,43,0,63,0,16,0,234,255,248,255, +1,0,237,255,227,255,216,255,197,255,247,255,51,0,237,255,148,255,140,255,131,255,136,255,147,255,94,255,59,255,92,255, +128,255,154,255,158,255,150,255,162,255,171,255,157,255,122,255,94,255,128,255,181,255,199,255,209,255,224,255,240,255,251,255, +255,255,8,0,3,0,246,255,243,255,215,255,187,255,211,255,235,255,220,255,183,255,147,255,120,255,111,255,139,255,183,255, +214,255,3,0,22,0,233,255,215,255,240,255,253,255,23,0,47,0,17,0,224,255,186,255,137,255,92,255,85,255,77,255, +75,255,145,255,227,255,251,255,246,255,191,255,161,255,254,255,62,0,11,0,235,255,2,0,18,0,18,0,16,0,36,0, +67,0,79,0,65,0,33,0,15,0,18,0,20,0,27,0,27,0,15,0,252,255,218,255,194,255,162,255,111,255,118,255, +163,255,156,255,151,255,202,255,239,255,224,255,197,255,181,255,174,255,214,255,253,255,209,255,145,255,102,255,87,255,163,255, +235,255,205,255,180,255,160,255,135,255,195,255,239,255,187,255,175,255,222,255,237,255,241,255,254,255,232,255,213,255,17,0, +65,0,23,0,244,255,231,255,209,255,234,255,11,0,252,255,239,255,252,255,248,255,209,255,187,255,205,255,213,255,217,255, +230,255,206,255,177,255,184,255,199,255,211,255,217,255,241,255,254,255,192,255,142,255,155,255,180,255,231,255,0,0,229,255, +224,255,205,255,168,255,174,255,186,255,208,255,218,255,179,255,183,255,236,255,15,0,53,0,60,0,43,0,46,0,28,0, +5,0,15,0,35,0,62,0,65,0,52,0,41,0,2,0,241,255,4,0,254,255,12,0,34,0,0,0,228,255,231,255, +251,255,42,0,69,0,71,0,77,0,74,0,66,0,35,0,235,255,218,255,241,255,4,0,253,255,229,255,219,255,225,255, +240,255,10,0,16,0,1,0,236,255,191,255,178,255,4,0,92,0,101,0,99,0,132,0,143,0,118,0,105,0,115,0, +108,0,32,0,208,255,236,255,20,0,241,255,229,255,216,255,180,255,230,255,44,0,59,0,81,0,85,0,81,0,119,0, +138,0,138,0,123,0,57,0,251,255,206,255,181,255,223,255,252,255,217,255,171,255,98,255,59,255,124,255,194,255,223,255, +255,255,21,0,46,0,89,0,92,0,42,0,3,0,247,255,245,255,12,0,39,0,45,0,56,0,50,0,20,0,49,0, +95,0,74,0,50,0,50,0,45,0,52,0,61,0,84,0,113,0,94,0,57,0,39,0,11,0,236,255,214,255,213,255, +227,255,213,255,202,255,214,255,226,255,1,0,29,0,25,0,24,0,10,0,233,255,229,255,0,0,46,0,67,0,45,0, +38,0,41,0,21,0,0,0,229,255,213,255,207,255,183,255,195,255,11,0,65,0,64,0,27,0,13,0,33,0,35,0, +17,0,229,255,168,255,173,255,209,255,205,255,203,255,201,255,218,255,40,0,96,0,85,0,72,0,82,0,87,0,56,0, +30,0,63,0,85,0,59,0,47,0,22,0,227,255,234,255,1,0,215,255,193,255,217,255,229,255,31,0,92,0,33,0, +240,255,43,0,75,0,52,0,42,0,53,0,72,0,63,0,56,0,69,0,67,0,114,0,175,0,150,0,118,0,121,0, +125,0,134,0,114,0,128,0,155,0,59,0,233,255,232,255,199,255,0,0,100,0,72,0,38,0,7,0,215,255,21,0, +69,0,36,0,27,0,254,255,227,255,246,255,237,255,247,255,15,0,2,0,12,0,0,0,219,255,22,0,103,0,93,0, +53,0,65,0,113,0,119,0,91,0,92,0,95,0,87,0,96,0,100,0,96,0,92,0,82,0,69,0,53,0,74,0, +110,0,71,0,19,0,37,0,58,0,50,0,38,0,7,0,240,255,15,0,49,0,44,0,47,0,78,0,101,0,109,0, +104,0,90,0,79,0,71,0,69,0,55,0,31,0,30,0,22,0,239,255,223,255,228,255,247,255,42,0,69,0,56,0, +36,0,0,0,238,255,18,0,69,0,112,0,115,0,78,0,60,0,35,0,240,255,250,255,44,0,43,0,24,0,25,0, +33,0,53,0,64,0,52,0,55,0,64,0,68,0,100,0,110,0,77,0,74,0,73,0,30,0,23,0,64,0,80,0, +77,0,103,0,120,0,74,0,41,0,78,0,102,0,102,0,124,0,126,0,118,0,140,0,146,0,113,0,78,0,61,0, +62,0,53,0,30,0,28,0,41,0,43,0,22,0,0,0,14,0,43,0,53,0,70,0,76,0,14,0,219,255,6,0, +52,0,58,0,63,0,43,0,24,0,47,0,75,0,134,0,186,0,138,0,74,0,41,0,254,255,12,0,54,0,54,0, +77,0,114,0,109,0,82,0,57,0,62,0,73,0,65,0,75,0,58,0,8,0,12,0,20,0,242,255,214,255,183,255, +195,255,26,0,84,0,94,0,116,0,142,0,158,0,155,0,141,0,127,0,94,0,84,0,98,0,42,0,227,255,252,255, +33,0,18,0,6,0,240,255,222,255,9,0,56,0,71,0,82,0,77,0,76,0,93,0,74,0,59,0,75,0,67,0, +62,0,76,0,67,0,72,0,86,0,69,0,81,0,142,0,188,0,203,0,173,0,101,0,58,0,74,0,94,0,99,0, +103,0,72,0,8,0,242,255,0,0,254,255,7,0,30,0,71,0,175,0,234,0,165,0,89,0,57,0,33,0,51,0, +83,0,88,0,85,0,44,0,252,255,3,0,2,0,232,255,240,255,5,0,15,0,16,0,255,255,2,0,41,0,75,0, +79,0,70,0,66,0,61,0,46,0,37,0,55,0,124,0,187,0,149,0,97,0,129,0,168,0,193,0,216,0,176,0, +134,0,162,0,169,0,124,0,88,0,56,0,35,0,61,0,99,0,98,0,96,0,117,0,103,0,46,0,4,0,246,255, +247,255,14,0,50,0,68,0,52,0,50,0,69,0,38,0,249,255,26,0,60,0,38,0,25,0,28,0,14,0,11,0, +27,0,47,0,77,0,102,0,100,0,82,0,76,0,75,0,81,0,120,0,158,0,149,0,117,0,73,0,25,0,10,0, +9,0,246,255,233,255,229,255,244,255,38,0,78,0,79,0,70,0,75,0,79,0,56,0,24,0,23,0,25,0,6,0, +2,0,4,0,241,255,221,255,210,255,215,255,245,255,0,0,243,255,254,255,5,0,255,255,11,0,14,0,6,0,16,0, +26,0,34,0,33,0,7,0,2,0,255,255,237,255,22,0,70,0,49,0,28,0,11,0,242,255,6,0,35,0,53,0, +72,0,46,0,28,0,59,0,59,0,49,0,55,0,22,0,243,255,237,255,236,255,11,0,33,0,12,0,1,0,231,255, +198,255,241,255,25,0,252,255,236,255,252,255,21,0,48,0,60,0,70,0,68,0,32,0,0,0,229,255,220,255,16,0, +71,0,91,0,111,0,108,0,87,0,87,0,79,0,49,0,33,0,39,0,46,0,52,0,51,0,19,0,234,255,235,255, +7,0,33,0,54,0,57,0,49,0,48,0,53,0,52,0,38,0,54,0,80,0,58,0,31,0,23,0,13,0,43,0, +76,0,43,0,234,255,182,255,167,255,183,255,197,255,211,255,216,255,216,255,211,255,168,255,136,255,134,255,146,255,244,255, +97,0,84,0,30,0,231,255,181,255,201,255,217,255,192,255,185,255,178,255,179,255,170,255,151,255,228,255,62,0,42,0, +19,0,39,0,62,0,100,0,112,0,56,0,241,255,217,255,232,255,231,255,219,255,226,255,231,255,233,255,227,255,206,255, +206,255,222,255,214,255,197,255,195,255,209,255,213,255,198,255,178,255,159,255,164,255,203,255,230,255,252,255,13,0,232,255, +191,255,208,255,225,255,217,255,213,255,202,255,197,255,222,255,239,255,233,255,230,255,234,255,243,255,251,255,254,255,10,0, +24,0,37,0,45,0,17,0,246,255,0,0,7,0,14,0,24,0,251,255,215,255,211,255,206,255,203,255,214,255,222,255, +226,255,240,255,244,255,209,255,186,255,204,255,227,255,18,0,61,0,22,0,229,255,235,255,238,255,222,255,207,255,191,255, +195,255,227,255,240,255,193,255,157,255,205,255,2,0,5,0,246,255,215,255,196,255,208,255,219,255,229,255,241,255,249,255, +1,0,238,255,222,255,239,255,252,255,10,0,11,0,225,255,201,255,217,255,222,255,201,255,177,255,177,255,186,255,171,255, +168,255,215,255,4,0,1,0,247,255,9,0,21,0,21,0,15,0,235,255,195,255,170,255,156,255,165,255,164,255,150,255, +158,255,153,255,150,255,175,255,196,255,232,255,13,0,8,0,249,255,210,255,171,255,214,255,2,0,245,255,229,255,207,255, +193,255,210,255,226,255,247,255,3,0,234,255,223,255,226,255,221,255,0,0,39,0,16,0,244,255,244,255,248,255,21,0, +53,0,47,0,32,0,11,0,236,255,234,255,242,255,229,255,217,255,214,255,212,255,212,255,205,255,203,255,210,255,220,255, +244,255,21,0,23,0,246,255,226,255,248,255,19,0,22,0,18,0,28,0,36,0,18,0,7,0,22,0,27,0,53,0, +78,0,15,0,222,255,254,255,2,0,242,255,248,255,231,255,211,255,214,255,221,255,225,255,214,255,211,255,230,255,219,255, +196,255,202,255,201,255,187,255,190,255,211,255,218,255,211,255,221,255,242,255,250,255,253,255,252,255,250,255,244,255,224,255, +208,255,214,255,227,255,227,255,220,255,215,255,212,255,222,255,248,255,253,255,238,255,232,255,240,255,4,0,17,0,15,0, +16,0,18,0,10,0,245,255,229,255,246,255,251,255,225,255,221,255,218,255,210,255,238,255,5,0,3,0,252,255,218,255, +200,255,229,255,0,0,15,0,26,0,27,0,23,0,13,0,0,0,255,255,254,255,248,255,237,255,223,255,219,255,214,255, +205,255,221,255,11,0,25,0,250,255,242,255,2,0,244,255,239,255,6,0,18,0,16,0,2,0,246,255,239,255,219,255, +195,255,162,255,135,255,172,255,217,255,202,255,180,255,176,255,191,255,243,255,20,0,21,0,17,0,244,255,225,255,233,255, +236,255,21,0,65,0,26,0,234,255,235,255,236,255,1,0,25,0,242,255,208,255,235,255,7,0,10,0,8,0,11,0, +18,0,12,0,254,255,251,255,248,255,227,255,209,255,222,255,243,255,246,255,247,255,226,255,201,255,248,255,44,0,17,0, +244,255,245,255,1,0,24,0,18,0,21,0,46,0,11,0,228,255,254,255,19,0,26,0,52,0,64,0,55,0,26,0, +1,0,7,0,5,0,241,255,233,255,224,255,215,255,214,255,214,255,216,255,215,255,226,255,251,255,6,0,17,0,27,0, +11,0,254,255,247,255,221,255,211,255,219,255,225,255,247,255,7,0,245,255,227,255,212,255,207,255,243,255,20,0,11,0, +0,0,247,255,235,255,243,255,5,0,15,0,23,0,31,0,32,0,16,0,6,0,33,0,58,0,41,0,14,0,10,0, +17,0,11,0,0,0,241,255,228,255,8,0,64,0,41,0,245,255,4,0,27,0,16,0,14,0,26,0,46,0,71,0, +76,0,66,0,63,0,60,0,63,0,73,0,82,0,98,0,95,0,47,0,10,0,17,0,23,0,27,0,34,0,6,0, +229,255,237,255,254,255,254,255,255,255,0,0,251,255,254,255,4,0,244,255,219,255,206,255,203,255,219,255,253,255,8,0, +7,0,32,0,52,0,35,0,16,0,19,0,32,0,38,0,47,0,63,0,69,0,71,0,72,0,59,0,45,0,49,0, +51,0,35,0,29,0,49,0,67,0,59,0,52,0,58,0,59,0,55,0,59,0,75,0,99,0,104,0,89,0,73,0, +55,0,43,0,33,0,2,0,233,255,250,255,15,0,254,255,235,255,0,0,17,0,2,0,1,0,10,0,14,0,40,0, +57,0,48,0,38,0,252,255,205,255,225,255,254,255,254,255,20,0,58,0,70,0,52,0,28,0,32,0,47,0,60,0, +77,0,80,0,72,0,72,0,75,0,76,0,77,0,84,0,87,0,75,0,71,0,79,0,78,0,72,0,64,0,56,0, +58,0,55,0,45,0,24,0,246,255,237,255,253,255,11,0,31,0,52,0,63,0,70,0,64,0,49,0,43,0,52,0, +63,0,39,0,8,0,27,0,42,0,13,0,9,0,39,0,54,0,59,0,66,0,54,0,30,0,31,0,51,0,53,0, +48,0,60,0,72,0,66,0,52,0,59,0,77,0,68,0,50,0,54,0,53,0,50,0,60,0,44,0,21,0,27,0, +34,0,52,0,83,0,78,0,75,0,98,0,91,0,58,0,29,0,9,0,5,0,251,255,252,255,33,0,52,0,43,0, +33,0,16,0,6,0,251,255,240,255,6,0,35,0,56,0,74,0,52,0,28,0,53,0,66,0,46,0,32,0,27,0, +24,0,24,0,22,0,13,0,15,0,28,0,19,0,15,0,37,0,46,0,47,0,50,0,45,0,53,0,55,0,26,0, +12,0,34,0,63,0,67,0,55,0,61,0,54,0,15,0,244,255,227,255,225,255,249,255,5,0,16,0,36,0,25,0, +6,0,14,0,25,0,29,0,37,0,38,0,40,0,64,0,80,0,61,0,39,0,33,0,32,0,32,0,31,0,52,0, +71,0,40,0,20,0,49,0,67,0,85,0,113,0,116,0,99,0,73,0,44,0,8,0,232,255,248,255,16,0,2,0, +9,0,37,0,54,0,70,0,77,0,86,0,95,0,70,0,39,0,19,0,1,0,12,0,30,0,26,0,23,0,25,0, +26,0,12,0,7,0,50,0,75,0,56,0,63,0,72,0,49,0,45,0,47,0,17,0,242,255,248,255,16,0,23,0, +26,0,35,0,29,0,19,0,30,0,33,0,13,0,27,0,69,0,78,0,58,0,45,0,51,0,83,0,109,0,100,0, +70,0,30,0,9,0,17,0,16,0,7,0,5,0,0,0,5,0,23,0,37,0,34,0,9,0,1,0,8,0,250,255, +250,255,15,0,16,0,8,0,253,255,228,255,214,255,219,255,231,255,243,255,251,255,251,255,245,255,249,255,6,0,8,0, +17,0,38,0,48,0,31,0,14,0,38,0,62,0,36,0,13,0,7,0,254,255,29,0,73,0,60,0,32,0,33,0, +30,0,10,0,12,0,39,0,51,0,52,0,54,0,43,0,50,0,75,0,82,0,73,0,54,0,28,0,9,0,0,0, +6,0,11,0,18,0,49,0,62,0,50,0,54,0,61,0,66,0,66,0,59,0,74,0,79,0,51,0,37,0,13,0, +235,255,249,255,17,0,12,0,9,0,19,0,21,0,9,0,8,0,32,0,54,0,70,0,79,0,62,0,47,0,53,0, +63,0,58,0,50,0,55,0,53,0,38,0,30,0,17,0,8,0,16,0,12,0,26,0,58,0,30,0,247,255,7,0, +25,0,39,0,51,0,16,0,234,255,4,0,40,0,27,0,3,0,16,0,32,0,12,0,243,255,230,255,231,255,17,0, +63,0,45,0,8,0,3,0,255,255,250,255,247,255,230,255,224,255,239,255,248,255,1,0,19,0,38,0,51,0,35,0, +7,0,1,0,252,255,239,255,235,255,223,255,219,255,250,255,18,0,16,0,10,0,240,255,216,255,240,255,3,0,239,255, +235,255,233,255,225,255,13,0,52,0,23,0,6,0,21,0,25,0,43,0,60,0,49,0,41,0,34,0,19,0,8,0, +7,0,18,0,25,0,254,255,222,255,216,255,227,255,243,255,254,255,5,0,18,0,28,0,27,0,10,0,247,255,255,255, +16,0,4,0,234,255,217,255,211,255,215,255,223,255,223,255,221,255,219,255,219,255,224,255,227,255,215,255,201,255,209,255, +229,255,243,255,246,255,243,255,253,255,22,0,30,0,14,0,251,255,238,255,231,255,231,255,235,255,233,255,229,255,237,255, +250,255,15,0,32,0,2,0,218,255,230,255,247,255,238,255,235,255,230,255,231,255,11,0,32,0,3,0,232,255,228,255, +223,255,220,255,227,255,230,255,226,255,217,255,207,255,218,255,239,255,243,255,251,255,24,0,45,0,46,0,35,0,18,0, +0,0,235,255,225,255,239,255,249,255,237,255,221,255,211,255,205,255,203,255,200,255,197,255,203,255,218,255,233,255,241,255, +235,255,226,255,235,255,243,255,242,255,248,255,241,255,219,255,206,255,192,255,176,255,182,255,198,255,211,255,219,255,215,255, +204,255,205,255,213,255,200,255,191,255,223,255,252,255,240,255,221,255,212,255,220,255,251,255,15,0,10,0,254,255,245,255, +242,255,242,255,232,255,218,255,225,255,250,255,4,0,248,255,237,255,228,255,229,255,4,0,27,0,9,0,237,255,230,255, +233,255,221,255,209,255,220,255,228,255,212,255,191,255,183,255,186,255,197,255,210,255,217,255,225,255,243,255,5,0,8,0, +9,0,6,0,3,0,17,0,18,0,251,255,251,255,8,0,10,0,21,0,20,0,243,255,225,255,228,255,227,255,242,255, +254,255,235,255,220,255,214,255,205,255,214,255,218,255,208,255,204,255,183,255,166,255,195,255,221,255,230,255,239,255,223,255, +213,255,225,255,233,255,1,0,10,0,221,255,183,255,170,255,169,255,207,255,251,255,6,0,3,0,238,255,218,255,226,255, +226,255,210,255,210,255,217,255,219,255,226,255,225,255,219,255,220,255,225,255,234,255,243,255,240,255,231,255,225,255,220,255, +222,255,227,255,227,255,217,255,204,255,218,255,236,255,223,255,224,255,243,255,236,255,229,255,236,255,238,255,236,255,221,255, +214,255,244,255,16,0,34,0,39,0,3,0,220,255,208,255,202,255,222,255,239,255,216,255,191,255,178,255,175,255,209,255, +233,255,206,255,188,255,195,255,199,255,231,255,2,0,227,255,205,255,228,255,245,255,0,0,2,0,238,255,233,255,249,255, +1,0,247,255,226,255,228,255,248,255,242,255,230,255,227,255,217,255,231,255,246,255,235,255,221,255,184,255,147,255,174,255, +210,255,215,255,222,255,213,255,205,255,236,255,5,0,255,255,238,255,215,255,200,255,197,255,208,255,241,255,6,0,248,255, +239,255,243,255,239,255,239,255,249,255,254,255,255,255,17,0,37,0,32,0,24,0,25,0,19,0,20,0,25,0,251,255, +225,255,246,255,17,0,21,0,16,0,9,0,1,0,241,255,226,255,226,255,223,255,213,255,207,255,209,255,225,255,244,255, +253,255,7,0,7,0,255,255,1,0,253,255,252,255,23,0,32,0,6,0,238,255,225,255,221,255,227,255,228,255,231,255, +248,255,4,0,5,0,250,255,235,255,243,255,6,0,249,255,230,255,245,255,10,0,6,0,2,0,8,0,10,0,5,0, +252,255,246,255,248,255,245,255,238,255,234,255,231,255,242,255,245,255,216,255,202,255,228,255,249,255,21,0,51,0,35,0, +14,0,20,0,7,0,244,255,250,255,5,0,10,0,252,255,234,255,240,255,240,255,232,255,243,255,247,255,247,255,0,0, +252,255,253,255,7,0,3,0,2,0,8,0,9,0,14,0,16,0,19,0,26,0,27,0,24,0,4,0,230,255,246,255, +23,0,28,0,25,0,10,0,246,255,254,255,9,0,2,0,5,0,27,0,43,0,33,0,24,0,42,0,49,0,45,0, +42,0,18,0,1,0,15,0,17,0,13,0,16,0,1,0,240,255,236,255,233,255,237,255,239,255,236,255,239,255,241,255, +239,255,240,255,240,255,248,255,5,0,15,0,23,0,21,0,15,0,16,0,9,0,244,255,225,255,220,255,233,255,252,255, +12,0,21,0,23,0,30,0,37,0,38,0,32,0,6,0,242,255,9,0,31,0,34,0,28,0,244,255,217,255,254,255, +26,0,9,0,255,255,2,0,255,255,1,0,7,0,2,0,0,0,14,0,20,0,3,0,248,255,251,255,1,0,17,0, +33,0,26,0,16,0,35,0,54,0,46,0,39,0,44,0,48,0,65,0,72,0,45,0,26,0,26,0,24,0,24,0, +22,0,14,0,17,0,26,0,31,0,34,0,33,0,36,0,45,0,57,0,66,0,66,0,63,0,55,0,42,0,33,0, +39,0,52,0,54,0,49,0,46,0,35,0,34,0,63,0,74,0,63,0,53,0,27,0,9,0,18,0,24,0,40,0, +59,0,36,0,11,0,19,0,29,0,34,0,43,0,43,0,38,0,38,0,30,0,3,0,244,255,252,255,1,0,15,0, +34,0,18,0,1,0,5,0,255,255,4,0,18,0,9,0,10,0,25,0,25,0,30,0,27,0,6,0,253,255,252,255, +7,0,29,0,30,0,32,0,33,0,254,255,230,255,1,0,35,0,62,0,75,0,76,0,75,0,43,0,15,0,39,0, +58,0,54,0,50,0,29,0,14,0,20,0,19,0,21,0,26,0,14,0,3,0,9,0,32,0,48,0,42,0,42,0, +51,0,48,0,50,0,65,0,75,0,66,0,48,0,50,0,55,0,48,0,41,0,20,0,5,0,22,0,45,0,57,0, +51,0,21,0,5,0,252,255,234,255,245,255,10,0,6,0,253,255,246,255,251,255,12,0,25,0,51,0,79,0,84,0, +84,0,68,0,47,0,65,0,79,0,56,0,33,0,5,0,241,255,3,0,22,0,25,0,30,0,12,0,245,255,9,0, +37,0,47,0,47,0,19,0,3,0,44,0,72,0,64,0,58,0,33,0,6,0,19,0,38,0,42,0,49,0,46,0, +38,0,41,0,39,0,27,0,20,0,13,0,255,255,251,255,4,0,3,0,252,255,11,0,33,0,35,0,32,0,41,0, +53,0,69,0,86,0,78,0,54,0,49,0,54,0,48,0,39,0,33,0,31,0,42,0,60,0,58,0,52,0,69,0, +82,0,63,0,46,0,33,0,13,0,15,0,27,0,32,0,39,0,34,0,32,0,47,0,52,0,49,0,45,0,34,0, +19,0,253,255,239,255,253,255,10,0,20,0,33,0,21,0,6,0,27,0,44,0,37,0,35,0,49,0,54,0,37,0, +30,0,49,0,65,0,64,0,61,0,62,0,56,0,61,0,81,0,75,0,56,0,50,0,43,0,58,0,77,0,36,0, +250,255,255,255,16,0,50,0,80,0,72,0,71,0,79,0,76,0,81,0,86,0,78,0,63,0,36,0,16,0,8,0, +0,0,6,0,26,0,32,0,30,0,36,0,43,0,36,0,15,0,254,255,240,255,233,255,250,255,21,0,38,0,47,0, +49,0,46,0,45,0,33,0,18,0,34,0,60,0,70,0,73,0,62,0,44,0,36,0,27,0,30,0,36,0,12,0, +249,255,253,255,2,0,30,0,52,0,27,0,12,0,31,0,46,0,58,0,67,0,58,0,42,0,34,0,34,0,41,0, +46,0,40,0,35,0,30,0,17,0,28,0,44,0,21,0,255,255,4,0,6,0,25,0,48,0,48,0,49,0,36,0, +18,0,41,0,54,0,20,0,251,255,6,0,31,0,43,0,42,0,48,0,48,0,46,0,43,0,18,0,253,255,255,255, +2,0,14,0,33,0,43,0,42,0,25,0,7,0,246,255,223,255,219,255,241,255,1,0,3,0,2,0,9,0,13,0, +15,0,26,0,32,0,37,0,50,0,39,0,26,0,43,0,57,0,64,0,69,0,59,0,51,0,49,0,42,0,44,0, +51,0,53,0,47,0,26,0,12,0,14,0,21,0,22,0,15,0,16,0,24,0,18,0,11,0,9,0,7,0,25,0, +48,0,56,0,50,0,27,0,10,0,10,0,8,0,13,0,21,0,10,0,255,255,255,255,0,0,6,0,7,0,3,0, +0,0,248,255,252,255,12,0,13,0,17,0,22,0,253,255,241,255,9,0,19,0,22,0,36,0,32,0,18,0,10,0, +7,0,9,0,4,0,252,255,252,255,245,255,246,255,15,0,26,0,5,0,246,255,1,0,14,0,6,0,251,255,243,255, +244,255,20,0,47,0,32,0,18,0,6,0,238,255,240,255,1,0,249,255,236,255,239,255,247,255,248,255,241,255,238,255, +242,255,250,255,3,0,20,0,38,0,33,0,25,0,34,0,38,0,39,0,43,0,28,0,7,0,251,255,247,255,250,255, +252,255,6,0,13,0,253,255,244,255,235,255,218,255,242,255,21,0,23,0,21,0,5,0,242,255,247,255,253,255,17,0, +36,0,7,0,239,255,238,255,235,255,255,255,22,0,21,0,14,0,248,255,226,255,226,255,232,255,251,255,7,0,236,255, +219,255,225,255,223,255,231,255,246,255,237,255,224,255,239,255,8,0,5,0,243,255,253,255,14,0,0,0,246,255,255,255, +1,0,6,0,19,0,14,0,6,0,15,0,20,0,11,0,1,0,247,255,251,255,16,0,31,0,30,0,22,0,255,255, +233,255,237,255,235,255,215,255,214,255,223,255,228,255,244,255,252,255,249,255,244,255,223,255,218,255,242,255,253,255,2,0, +8,0,2,0,5,0,9,0,11,0,32,0,46,0,48,0,56,0,43,0,15,0,252,255,239,255,242,255,246,255,232,255, +228,255,236,255,242,255,2,0,15,0,7,0,255,255,11,0,19,0,249,255,221,255,226,255,239,255,225,255,204,255,211,255, +232,255,237,255,240,255,255,255,1,0,247,255,244,255,245,255,239,255,236,255,241,255,243,255,243,255,246,255,244,255,242,255, +246,255,250,255,251,255,246,255,238,255,232,255,221,255,226,255,248,255,243,255,233,255,245,255,246,255,233,255,231,255,243,255, +2,0,4,0,6,0,15,0,16,0,23,0,33,0,35,0,36,0,19,0,250,255,249,255,255,255,7,0,20,0,7,0, +245,255,247,255,251,255,1,0,2,0,249,255,246,255,245,255,243,255,249,255,0,0,247,255,234,255,241,255,1,0,3,0, +254,255,242,255,234,255,248,255,8,0,18,0,29,0,27,0,21,0,24,0,28,0,35,0,44,0,38,0,21,0,6,0, +252,255,248,255,251,255,254,255,251,255,6,0,27,0,17,0,249,255,250,255,6,0,15,0,17,0,11,0,13,0,14,0, +13,0,27,0,36,0,22,0,4,0,249,255,243,255,240,255,247,255,1,0,255,255,255,255,10,0,24,0,34,0,25,0, +8,0,6,0,1,0,247,255,245,255,243,255,238,255,240,255,237,255,221,255,212,255,226,255,231,255,226,255,244,255,3,0, +2,0,3,0,252,255,253,255,7,0,239,255,217,255,227,255,234,255,249,255,14,0,9,0,253,255,241,255,231,255,239,255, +244,255,244,255,252,255,254,255,254,255,1,0,3,0,22,0,44,0,44,0,40,0,40,0,32,0,29,0,35,0,33,0, +24,0,15,0,10,0,10,0,10,0,12,0,19,0,11,0,249,255,246,255,246,255,238,255,242,255,253,255,0,0,248,255, +236,255,232,255,235,255,238,255,235,255,230,255,238,255,6,0,18,0,4,0,238,255,235,255,241,255,236,255,238,255,253,255, +6,0,7,0,3,0,252,255,251,255,254,255,1,0,6,0,11,0,23,0,33,0,20,0,9,0,16,0,25,0,37,0, +45,0,31,0,15,0,15,0,17,0,2,0,243,255,3,0,23,0,13,0,2,0,255,255,250,255,9,0,31,0,16,0, +251,255,3,0,9,0,253,255,244,255,246,255,253,255,250,255,241,255,253,255,10,0,3,0,250,255,243,255,234,255,232,255, +239,255,245,255,255,255,13,0,19,0,8,0,253,255,252,255,251,255,2,0,11,0,254,255,242,255,247,255,1,0,2,0, +252,255,5,0,23,0,14,0,3,0,11,0,12,0,7,0,8,0,12,0,15,0,3,0,243,255,247,255,4,0,19,0, +28,0,22,0,13,0,6,0,253,255,250,255,253,255,4,0,12,0,11,0,3,0,5,0,15,0,3,0,237,255,246,255, +8,0,0,0,254,255,8,0,3,0,241,255,230,255,234,255,243,255,254,255,6,0,0,0,250,255,245,255,236,255,7,0, +39,0,30,0,19,0,10,0,253,255,25,0,48,0,27,0,18,0,17,0,2,0,243,255,228,255,232,255,248,255,248,255, +246,255,245,255,243,255,6,0,25,0,28,0,38,0,43,0,27,0,17,0,14,0,4,0,4,0,16,0,22,0,26,0, +32,0,23,0,16,0,23,0,25,0,22,0,22,0,14,0,1,0,1,0,10,0,3,0,250,255,3,0,8,0,11,0, +29,0,24,0,7,0,17,0,27,0,35,0,40,0,27,0,21,0,21,0,18,0,29,0,34,0,23,0,16,0,3,0, +248,255,246,255,251,255,18,0,34,0,27,0,19,0,8,0,1,0,9,0,12,0,20,0,29,0,17,0,8,0,7,0, +2,0,10,0,22,0,18,0,10,0,14,0,20,0,21,0,22,0,9,0,254,255,26,0,50,0,38,0,33,0,26,0, +12,0,16,0,18,0,14,0,22,0,29,0,28,0,8,0,245,255,7,0,25,0,29,0,36,0,19,0,0,0,5,0, +6,0,16,0,27,0,3,0,242,255,254,255,8,0,21,0,31,0,31,0,35,0,33,0,22,0,10,0,254,255,2,0, +15,0,11,0,0,0,255,255,0,0,7,0,14,0,255,255,239,255,243,255,252,255,13,0,28,0,7,0,238,255,240,255, +249,255,10,0,28,0,16,0,254,255,2,0,6,0,241,255,224,255,238,255,1,0,9,0,15,0,8,0,2,0,12,0, +18,0,21,0,27,0,26,0,32,0,38,0,31,0,27,0,20,0,11,0,7,0,254,255,245,255,235,255,229,255,247,255, +10,0,15,0,17,0,1,0,248,255,10,0,17,0,18,0,23,0,8,0,251,255,6,0,11,0,254,255,245,255,2,0, +14,0,3,0,252,255,5,0,9,0,2,0,5,0,23,0,30,0,3,0,242,255,254,255,2,0,0,0,9,0,0,0, +239,255,242,255,254,255,5,0,10,0,12,0,14,0,10,0,0,0,255,255,3,0,1,0,255,255,0,0,1,0,253,255, +241,255,243,255,9,0,13,0,0,0,3,0,9,0,8,0,5,0,1,0,253,255,0,0,13,0,23,0,28,0,38,0, +43,0,28,0,9,0,252,255,248,255,9,0,24,0,20,0,23,0,32,0,28,0,17,0,10,0,6,0,6,0,255,255, +254,255,12,0,24,0,26,0,32,0,27,0,13,0,14,0,22,0,24,0,19,0,5,0,246,255,238,255,237,255,246,255, +254,255,1,0,13,0,19,0,14,0,16,0,14,0,9,0,11,0,7,0,3,0,4,0,254,255,1,0,11,0,12,0, +10,0,9,0,7,0,13,0,18,0,9,0,3,0,9,0,10,0,4,0,2,0,3,0,1,0,6,0,21,0,25,0, +19,0,12,0,3,0,250,255,249,255,254,255,4,0,9,0,13,0,8,0,0,0,254,255,4,0,14,0,16,0,2,0, +249,255,2,0,11,0,5,0,249,255,244,255,249,255,4,0,13,0,8,0,0,0,0,0,2,0,0,0,252,255,3,0, +12,0,3,0,249,255,253,255,251,255,250,255,3,0,0,0,250,255,248,255,251,255,11,0,20,0,12,0,13,0,16,0, +17,0,31,0,40,0,31,0,19,0,17,0,16,0,3,0,253,255,3,0,6,0,253,255,241,255,247,255,10,0,3,0, +243,255,253,255,8,0,7,0,7,0,5,0,4,0,8,0,7,0,2,0,6,0,21,0,30,0,19,0,4,0,254,255, +253,255,252,255,252,255,254,255,1,0,254,255,249,255,242,255,236,255,243,255,255,255,1,0,1,0,5,0,9,0,7,0, +1,0,252,255,249,255,247,255,245,255,247,255,2,0,11,0,11,0,17,0,22,0,26,0,29,0,16,0,4,0,8,0, +8,0,8,0,12,0,6,0,255,255,4,0,9,0,8,0,8,0,10,0,8,0,2,0,249,255,246,255,251,255,252,255, +247,255,0,0,11,0,10,0,10,0,4,0,253,255,6,0,15,0,9,0,5,0,8,0,17,0,24,0,25,0,32,0, +33,0,29,0,31,0,17,0,252,255,4,0,20,0,15,0,6,0,251,255,235,255,234,255,246,255,0,0,7,0,10,0, +6,0,253,255,247,255,249,255,255,255,251,255,245,255,243,255,242,255,251,255,10,0,6,0,3,0,13,0,18,0,26,0, +34,0,24,0,12,0,10,0,12,0,22,0,25,0,18,0,17,0,19,0,20,0,16,0,14,0,25,0,30,0,20,0, +18,0,20,0,9,0,250,255,245,255,4,0,22,0,21,0,12,0,5,0,254,255,2,0,2,0,250,255,251,255,254,255, +251,255,255,255,2,0,0,0,6,0,20,0,28,0,21,0,9,0,19,0,31,0,16,0,252,255,251,255,3,0,11,0, +17,0,13,0,6,0,3,0,4,0,6,0,5,0,6,0,6,0,5,0,6,0,255,255,248,255,7,0,19,0,15,0, +15,0,12,0,5,0,15,0,28,0,22,0,16,0,26,0,31,0,14,0,254,255,6,0,15,0,9,0,4,0,8,0, +11,0,11,0,13,0,9,0,2,0,6,0,18,0,23,0,20,0,10,0,3,0,13,0,22,0,26,0,28,0,23,0, +15,0,9,0,2,0,7,0,20,0,26,0,21,0,13,0,13,0,21,0,21,0,17,0,20,0,15,0,3,0,2,0, +10,0,10,0,4,0,12,0,20,0,13,0,5,0,5,0,10,0,27,0,35,0,20,0,9,0,20,0,33,0,27,0, +13,0,14,0,17,0,19,0,29,0,30,0,21,0,17,0,13,0,12,0,15,0,5,0,252,255,2,0,3,0,255,255, +255,255,1,0,1,0,0,0,8,0,24,0,30,0,21,0,14,0,19,0,22,0,17,0,15,0,13,0,12,0,14,0, +14,0,11,0,12,0,11,0,9,0,8,0,6,0,8,0,11,0,8,0,10,0,23,0,30,0,28,0,25,0,12,0, +254,255,1,0,13,0,12,0,9,0,22,0,34,0,32,0,24,0,22,0,21,0,13,0,8,0,20,0,29,0,23,0, +14,0,255,255,240,255,255,255,18,0,9,0,255,255,250,255,246,255,7,0,22,0,15,0,12,0,6,0,249,255,1,0, +16,0,19,0,20,0,19,0,13,0,11,0,11,0,10,0,11,0,15,0,16,0,7,0,255,255,1,0,3,0,6,0, +6,0,255,255,0,0,6,0,9,0,13,0,15,0,19,0,25,0,17,0,7,0,10,0,9,0,9,0,16,0,19,0, +20,0,23,0,22,0,15,0,6,0,7,0,13,0,8,0,3,0,10,0,16,0,14,0,13,0,11,0,4,0,9,0, +25,0,26,0,16,0,16,0,16,0,6,0,255,255,255,255,254,255,252,255,0,0,253,255,249,255,11,0,27,0,22,0, +15,0,13,0,10,0,18,0,22,0,15,0,11,0,9,0,8,0,13,0,14,0,10,0,12,0,9,0,2,0,252,255, +248,255,253,255,3,0,253,255,248,255,5,0,17,0,13,0,6,0,5,0,5,0,13,0,21,0,16,0,7,0,9,0, +12,0,11,0,11,0,9,0,8,0,12,0,14,0,16,0,18,0,2,0,242,255,4,0,29,0,27,0,15,0,15,0, +12,0,2,0,254,255,252,255,251,255,4,0,16,0,17,0,16,0,13,0,8,0,19,0,31,0,23,0,15,0,15,0, +12,0,19,0,29,0,22,0,9,0,2,0,3,0,7,0,7,0,3,0,2,0,2,0,3,0,0,0,254,255,15,0, +31,0,17,0,3,0,13,0,21,0,22,0,26,0,15,0,1,0,13,0,21,0,7,0,1,0,255,255,248,255,251,255, +1,0,250,255,247,255,252,255,1,0,7,0,13,0,12,0,13,0,15,0,14,0,20,0,28,0,25,0,15,0,11,0, +8,0,9,0,14,0,15,0,14,0,15,0,16,0,20,0,22,0,12,0,4,0,5,0,6,0,19,0,33,0,26,0, +12,0,4,0,1,0,7,0,14,0,16,0,17,0,10,0,2,0,8,0,15,0,11,0,9,0,19,0,29,0,20,0, +6,0,4,0,6,0,14,0,19,0,2,0,246,255,1,0,13,0,19,0,21,0,16,0,13,0,11,0,9,0,11,0, +10,0,7,0,7,0,7,0,6,0,4,0,5,0,12,0,18,0,17,0,17,0,11,0,7,0,16,0,18,0,6,0, +255,255,0,0,5,0,8,0,7,0,6,0,7,0,8,0,8,0,9,0,12,0,14,0,14,0,11,0,7,0,2,0, +254,255,255,255,4,0,3,0,255,255,0,0,0,0,3,0,11,0,11,0,8,0,13,0,16,0,14,0,14,0,14,0, +14,0,10,0,6,0,9,0,11,0,6,0,5,0,5,0,7,0,12,0,15,0,12,0,8,0,6,0,6,0,8,0, +9,0,10,0,12,0,14,0,11,0,11,0,16,0,10,0,2,0,9,0,13,0,8,0,8,0,9,0,12,0,15,0, +11,0,11,0,12,0,7,0,1,0,253,255,254,255,7,0,11,0,14,0,17,0,8,0,1,0,5,0,5,0,4,0, +6,0,3,0,0,0,2,0,1,0,3,0,6,0,4,0,2,0,7,0,8,0,6,0,6,0,1,0,252,255,7,0, +16,0,8,0,6,0,9,0,8,0,9,0,11,0,12,0,15,0,9,0,3,0,7,0,9,0,12,0,13,0,7,0, +3,0,9,0,14,0,8,0,253,255,250,255,0,0,1,0,0,0,254,255,253,255,0,0,1,0,252,255,252,255,255,255, +253,255,251,255,252,255,255,255,254,255,251,255,253,255,255,255,254,255,0,0,255,255,0,0,4,0,0,0,253,255,1,0, +0,0,253,255,252,255,252,255,253,255,253,255,251,255,253,255,252,255,251,255,254,255,0,0,0,0,254,255,252,255,255,255, +0,0,254,255,255,255,254,255,250,255,253,255,254,255,252,255,253,255,253,255,251,255,253,255,254,255,253,255,255,255,1,0, +252,255,251,255,255,255,255,255,251,255,252,255,253,255,251,255,251,255,250,255,250,255,254,255,0,0,253,255,255,255,2,0, +253,255,251,255,255,255,0,0,255,255,0,0,253,255,252,255,255,255,254,255,249,255,250,255,251,255,252,255,253,255,253,255, +254,255,255,255,253,255,252,255,252,255,253,255,254,255,253,255,253,255,0,0,0,0,254,255,253,255,254,255,255,255,253,255, +250,255,251,255,251,255,251,255,254,255,255,255,252,255,249,255,251,255,255,255,253,255,251,255,252,255,253,255,253,255,252,255, +250,255,252,255,0,0,254,255,253,255,250,255,248,255,249,255,250,255,250,255,250,255,248,255,249,255,254,255,254,255,254,255, +3,0,3,0,1,0,253,255,250,255,252,255,255,255,253,255,253,255,253,255,249,255,249,255,251,255,250,255,249,255,250,255, +250,255,251,255,252,255,251,255,251,255,254,255,255,255,253,255,253,255,252,255,253,255,255,255,252,255,251,255,254,255,254,255, +253,255,254,255,252,255,253,255,254,255,251,255,250,255,252,255,252,255,253,255,254,255,252,255,254,255,254,255,250,255,250,255, +252,255,250,255,251,255,250,255,246,255,249,255,1,0,2,0,0,0,254,255,250,255,251,255,1,0,2,0,254,255,253,255, +254,255,251,255,251,255,0,0,255,255,251,255,251,255,253,255,253,255,252,255,249,255,249,255,252,255,253,255,252,255,253,255, +255,255,0,0,253,255,252,255,254,255,0,0,2,0,0,0,251,255,249,255,249,255,251,255,253,255,251,255,249,255,250,255, +252,255,253,255,253,255,252,255,252,255,252,255,253,255,0,0,0,0,254,255,255,255,0,0,255,255,255,255,252,255,252,255, +253,255,252,255,250,255,251,255,252,255,254,255,0,0,0,0,253,255,251,255,255,255,1,0,255,255,252,255,254,255,253,255, +250,255,254,255,1,0,255,255,251,255,249,255,250,255,254,255,1,0,254,255,254,255,255,255,253,255,252,255,253,255,254,255, +254,255,253,255,254,255,254,255,253,255,251,255,250,255,252,255,255,255,255,255,254,255,1,0,0,0,253,255,254,255,255,255, +252,255,251,255,252,255,252,255,250,255,251,255,255,255,0,0,254,255,252,255,253,255,0,0,255,255,251,255,252,255,253,255, +253,255,251,255,250,255,254,255,1,0,254,255,253,255,254,255,252,255,250,255,251,255,254,255,1,0,255,255,254,255,1,0, +1,0,0,0,254,255,252,255,251,255,250,255,250,255,252,255,254,255,252,255,248,255,249,255,254,255,253,255,251,255,255,255, +0,0,254,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,251,255,254,255,255,255,251,255,252,255,254,255,254,255, +254,255,255,255,0,0,254,255,252,255,255,255,255,255,253,255,252,255,252,255,253,255,254,255,252,255,252,255,254,255,253,255, +253,255,253,255,250,255,252,255,253,255,251,255,253,255,254,255,253,255,0,0,0,0,253,255,254,255,254,255,253,255,254,255, +254,255,253,255,254,255,252,255,251,255,251,255,252,255,252,255,252,255,252,255,254,255,255,255,254,255,253,255,254,255,254,255, +252,255,252,255,252,255,251,255,251,255,253,255,253,255,252,255,253,255,253,255,254,255,0,0,254,255,249,255,252,255,0,0, +254,255,252,255,252,255,253,255,254,255,253,255,252,255,252,255,252,255,255,255,0,0,255,255,0,0,254,255,249,255,250,255, +252,255,251,255,254,255,0,0,253,255,251,255,251,255,252,255,254,255,255,255,254,255,253,255,254,255,255,255,254,255,254,255, +255,255,252,255,252,255,255,255,255,255,1,0,0,0,252,255,254,255,255,255,253,255,254,255,254,255,251,255,252,255,252,255, +250,255,251,255,252,255,253,255,253,255,251,255,253,255,255,255,254,255,254,255,0,0,254,255,251,255,250,255,252,255,255,255, +1,0,0,0,254,255,255,255,255,255,253,255,252,255,251,255,252,255,255,255,1,0,255,255,253,255,254,255,254,255,254,255, +251,255,249,255,250,255,252,255,255,255,1,0,255,255,253,255,253,255,253,255,254,255,2,0,1,0,254,255,255,255,254,255, +251,255,254,255,0,0,253,255,251,255,252,255,252,255,253,255,254,255,252,255,252,255,251,255,252,255,0,0,255,255,251,255, +254,255,255,255,253,255,0,0,2,0,255,255,253,255,253,255,254,255,0,0,1,0,255,255,252,255,251,255,250,255,252,255, +254,255,254,255,253,255,253,255,254,255,1,0,0,0,252,255,252,255,252,255,254,255,1,0,0,0,254,255,0,0,1,0, +255,255,253,255,251,255,252,255,254,255,0,0,254,255,254,255,0,0,254,255,252,255,253,255,253,255,253,255,254,255,252,255, +251,255,253,255,253,255,255,255,255,255,254,255,255,255,255,255,253,255,255,255,1,0,255,255,254,255,253,255,253,255,255,255, +255,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,0,0,0,0,253,255,252,255, +253,255,253,255,254,255,255,255,0,0,1,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,254,255,253,255,254,255,0,0,255,255,254,255,255,255,254,255,254,255,253,255,252,255,252,255,254,255,253,255,253,255, +255,255,255,255,255,255,0,0,254,255,254,255,0,0,255,255,253,255,254,255,254,255,253,255,254,255,0,0,255,255,254,255, +255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,254,255,255,255,255,255, +254,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,254,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,254,255,254,255,254,255,255,255,255,255,0,0,0,0, +0,0,254,255,255,255,1,0,0,0,254,255,254,255,255,255,255,255,255,255,0,0,1,0,255,255,254,255,255,255,255,255, +255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,254,255,255,255, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,254,255,255,255,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +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,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +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,255,255, +0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,254,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,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,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +1,0,0,0,254,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,1,0,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,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,254,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0, +0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,255,255,255,255,0,0,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,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +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,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,255,255,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/grass4.pcm b/src/client/sound/data/grass4.pcm new file mode 100755 index 0000000..73ac1db --- /dev/null +++ b/src/client/sound/data/grass4.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_grass4[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,203,255,69,0,6,0,106,255,50,255,157,255,62,0,34,0, +237,255,60,0,100,0,98,0,57,0,9,0,11,0,191,255,143,255,179,255,172,255,18,0,151,0,102,0,53,0,7,0, +144,255,116,255,113,255,4,255,221,254,192,255,253,0,105,1,182,1,231,2,138,3,7,2,31,0,63,0,96,1,220,1, +112,1,175,255,55,254,109,254,2,254,16,253,29,253,250,251,188,250,211,252,174,255,196,0,190,1,135,2,87,2,210,1, +215,0,145,255,236,254,43,255,81,255,68,254,224,253,78,255,3,0,56,0,70,1,239,1,102,2,50,2,6,1,82,0, +88,255,167,255,119,255,119,248,7,242,164,243,139,248,170,0,213,7,218,8,66,10,53,9,200,7,164,19,168,29,95,21, +73,8,101,252,88,242,205,241,72,244,202,243,99,246,53,251,87,254,66,1,207,3,167,4,40,4,10,2,81,0,232,2, +247,4,175,255,174,248,248,245,175,244,188,242,74,242,129,245,156,249,54,252,152,254,128,253,96,251,140,0,241,5,103,4, +98,2,147,1,212,255,181,253,72,252,86,253,10,0,89,4,145,7,159,4,117,1,194,0,67,0,57,6,120,11,6,7, +110,2,98,253,53,247,82,248,163,250,8,253,183,0,58,250,50,243,30,248,208,253,52,3,141,9,31,9,230,8,66,12, +170,12,247,12,64,10,1,0,147,247,97,245,244,247,157,254,141,2,121,3,109,4,168,255,165,250,8,255,184,4,61,6, +116,6,158,3,57,254,195,248,219,245,211,246,49,247,169,247,140,249,171,248,226,247,43,246,97,242,77,247,247,255,105,2, +139,6,172,11,34,14,177,18,210,20,67,18,173,13,159,6,166,1,70,253,227,247,65,250,221,1,235,7,118,11,30,7, +75,1,152,5,8,11,244,6,34,0,136,0,102,2,6,251,88,244,145,244,208,238,100,235,220,242,207,238,24,230,66,247, +11,14,241,12,141,5,109,6,169,4,97,255,158,254,20,1,213,1,242,2,2,5,64,254,153,243,151,249,224,4,4,253, +160,243,220,250,190,253,31,245,245,241,236,241,61,246,68,14,7,33,83,16,39,254,33,4,2,7,229,6,116,12,40,252, +195,233,49,1,46,26,145,12,161,255,233,5,43,10,8,17,146,23,125,11,113,0,154,8,115,11,12,255,128,246,120,245, +131,248,181,2,251,10,65,8,191,2,95,1,139,253,92,241,202,232,68,242,57,254,38,251,168,247,133,249,152,247,108,250, +221,255,120,253,198,252,81,251,149,246,185,0,174,13,192,5,83,251,232,2,54,14,142,9,90,254,36,1,77,6,44,253, +165,244,23,247,192,251,164,253,145,0,24,11,169,15,90,251,50,232,194,239,150,247,54,246,107,252,248,251,168,245,37,251, +135,251,96,250,25,0,214,242,162,231,26,239,100,236,208,249,209,18,62,3,9,249,205,11,39,9,35,7,48,21,3,22, +208,21,168,17,78,3,47,4,74,8,148,1,196,2,25,12,73,15,30,5,41,249,163,253,95,5,127,255,190,247,24,250, +160,2,127,7,26,7,60,8,247,9,217,6,250,1,127,252,168,239,160,229,41,235,6,239,169,240,94,2,21,15,63,7, +44,253,252,248,195,248,20,244,142,242,28,7,160,22,96,16,154,8,159,246,138,225,47,227,245,241,56,1,103,2,130,251, +7,7,2,10,16,0,248,12,139,16,198,250,83,244,184,0,116,13,203,6,129,243,150,246,170,255,175,1,56,15,1,16, +26,4,121,8,110,10,2,1,11,254,107,11,224,30,92,22,81,254,211,246,227,236,170,232,253,249,120,5,200,13,192,14, +79,252,170,255,238,9,146,243,132,243,56,17,94,17,65,8,185,12,191,7,24,255,109,242,94,233,129,3,237,23,38,255, +65,243,222,9,53,21,23,15,241,7,191,3,162,2,170,0,216,2,146,5,130,255,171,0,7,8,52,255,124,245,156,252, +194,253,200,242,213,245,53,254,223,242,187,234,240,240,194,233,200,224,151,236,169,247,240,235,10,216,51,225,43,248,161,234, +154,219,75,239,77,252,27,255,14,253,115,232,108,223,153,218,90,211,77,249,249,34,26,33,21,30,129,18,186,255,245,19, +170,43,123,40,22,31,2,13,137,6,64,19,218,17,15,16,28,28,54,28,110,15,65,5,110,2,28,0,148,253,65,10, +22,22,73,14,161,2,157,241,26,234,141,2,187,22,131,31,59,39,91,13,172,245,232,9,204,27,116,31,89,23,183,241, +35,211,241,200,222,192,237,199,86,218,155,253,113,34,162,11,253,223,211,217,170,217,115,234,214,4,140,238,14,213,65,229, +62,247,198,0,193,5,34,3,156,253,133,240,100,236,162,240,99,235,194,251,105,26,171,23,178,8,36,7,43,13,77,33, +85,54,219,58,83,53,180,43,167,29,156,3,61,238,136,250,254,18,96,37,86,49,222,25,51,248,147,251,79,6,126,17, +146,29,97,249,86,213,29,242,251,2,228,230,224,222,158,239,119,249,152,240,193,227,203,243,167,9,58,1,118,238,218,225, +112,224,182,231,112,234,129,247,206,1,188,234,239,219,226,241,55,5,184,247,123,219,224,227,65,3,67,0,143,255,191,30, +179,50,61,62,154,65,200,36,61,5,244,246,83,239,93,241,117,0,64,27,38,40,152,17,223,251,59,9,113,34,238,31, +43,13,144,10,183,3,200,253,54,13,129,247,187,203,78,211,82,231,11,253,44,23,224,233,164,181,168,218,56,252,180,239, +175,248,154,18,61,27,183,17,138,14,36,31,157,32,90,16,228,8,126,251,206,243,118,3,177,1,48,234,229,223,253,222, +108,230,144,252,79,21,98,50,27,60,238,13,254,228,216,254,181,17,214,231,22,205,150,237,21,13,230,10,239,4,140,255, +114,251,75,12,21,23,110,12,152,10,27,8,157,0,75,3,254,253,198,252,60,2,49,236,22,212,137,202,154,200,64,231, +39,7,166,16,188,26,80,10,230,238,91,235,41,236,78,11,206,38,214,251,102,219,3,224,24,222,189,8,216,59,195,45, +217,20,3,8,60,253,57,1,214,252,131,255,66,22,76,23,190,22,68,37,33,25,68,4,163,0,71,242,227,224,214,228, +198,235,104,237,167,241,201,232,164,215,242,218,60,231,212,233,150,231,26,220,209,213,35,232,230,247,209,246,95,243,216,228, +149,214,7,227,188,236,69,229,201,237,48,242,206,231,184,0,201,30,39,20,236,7,154,245,120,231,63,21,214,56,41,38, +129,31,146,13,29,248,40,35,65,62,141,24,11,11,60,38,214,60,203,54,187,32,62,43,144,53,231,9,192,234,168,255, +47,22,47,39,135,61,92,66,114,51,200,35,188,18,155,245,67,225,55,242,47,6,225,244,146,231,130,252,78,8,180,249, +146,233,143,233,139,1,89,16,248,0,119,2,64,18,39,9,3,1,53,252,49,240,114,3,209,27,104,10,235,250,150,5, +110,9,68,3,25,252,235,231,178,217,3,251,2,27,214,243,171,208,251,241,62,19,244,31,155,42,254,16,95,228,133,210, +222,210,8,217,46,229,223,247,58,8,52,3,54,236,45,200,42,176,120,211,7,251,21,228,206,212,50,229,233,217,161,210, +127,228,10,222,54,213,99,237,180,2,131,1,248,244,152,224,20,217,240,243,221,14,40,2,214,252,25,36,6,58,32,46, +213,38,60,12,100,240,85,7,173,26,87,11,156,6,230,0,51,239,116,234,90,238,78,251,4,3,155,238,176,234,95,6, +73,10,165,252,125,2,255,3,58,241,196,234,91,246,225,237,113,218,184,234,17,0,157,239,190,233,90,5,141,23,222,33, +181,49,34,49,32,27,233,246,97,218,205,228,253,247,48,238,63,225,131,225,12,239,187,15,163,34,27,20,184,255,121,241, +168,237,71,247,221,250,116,243,145,238,23,245,81,2,134,253,190,234,45,232,243,227,168,201,29,194,146,232,195,17,152,13, +116,248,194,12,199,42,212,10,194,209,27,202,125,215,251,208,151,210,57,223,236,227,51,245,39,15,254,15,36,7,174,26, +180,55,233,49,147,39,90,65,17,67,171,23,197,13,162,33,250,29,136,25,118,27,188,7,137,249,251,15,62,33,50,19, +218,30,142,73,138,77,127,50,214,27,241,252,217,231,136,230,195,219,209,206,37,221,43,5,200,22,176,252,245,231,253,213, +19,193,176,238,42,43,135,22,108,253,94,21,91,37,250,36,94,36,208,39,14,53,251,55,75,43,211,35,135,34,158,20, +166,252,112,6,206,39,70,26,133,6,21,52,58,84,70,51,43,28,112,29,227,32,235,62,171,80,154,49,71,29,184,26, +170,14,99,31,202,54,255,29,68,0,81,1,212,0,200,236,137,221,83,244,115,29,84,46,106,44,196,35,123,23,110,14, +84,249,125,215,145,203,93,232,176,9,209,3,122,255,138,33,135,53,127,49,21,40,113,2,210,223,72,218,102,214,229,230, +196,11,201,25,68,16,161,246,228,220,66,224,147,237,203,235,97,232,112,241,38,251,161,241,178,227,32,228,13,227,130,218, +92,214,245,221,70,237,188,253,170,21,198,26,227,6,131,30,193,56,180,250,169,202,230,241,18,12,5,12,246,25,63,11, +3,247,152,22,234,43,119,5,34,226,36,225,13,226,151,230,175,249,31,9,170,8,37,251,58,238,133,232,207,227,175,229, +22,239,16,254,79,12,69,249,240,218,71,231,238,244,222,223,162,208,234,204,17,207,131,231,130,255,118,255,47,254,20,20, +225,39,35,21,205,252,72,1,42,252,63,225,55,212,106,215,20,222,66,231,198,238,42,249,219,5,130,254,235,229,156,215, +164,210,173,220,161,254,188,7,192,244,226,5,16,34,86,24,51,5,6,249,75,250,48,9,248,2,156,250,21,11,91,11, +3,252,182,252,3,249,44,234,223,240,232,20,229,40,212,8,231,236,133,12,81,33,5,237,74,189,86,205,135,228,244,242, +115,15,76,9,214,234,107,251,51,13,76,245,154,232,151,229,225,224,11,2,226,39,49,21,248,239,140,242,74,0,156,243, +194,241,186,9,111,23,189,33,131,38,237,8,148,232,224,218,48,206,197,215,84,250,209,18,102,26,28,22,200,15,201,15, +214,15,88,22,37,10,116,202,150,159,45,198,200,248,177,4,131,7,58,17,10,15,83,234,42,202,3,243,93,36,166,251, +209,208,116,3,169,51,6,23,214,247,213,255,203,4,12,251,211,243,74,238,207,245,83,17,200,21,106,241,233,218,52,229, +84,232,147,227,82,233,25,233,52,228,46,238,187,245,34,235,79,227,102,229,148,225,149,215,86,207,223,202,38,203,149,205, +132,217,123,241,102,245,2,226,170,228,59,248,105,244,129,226,184,221,202,234,38,248,25,243,176,231,13,217,181,201,222,223, +124,0,21,245,89,237,119,253,221,255,73,21,55,50,4,19,137,235,171,251,6,15,100,0,8,243,97,248,121,249,86,247, +65,1,212,248,185,221,204,231,248,0,124,237,105,208,248,219,208,246,96,251,158,243,236,246,197,0,219,12,13,27,196,25, +226,16,181,21,116,22,69,10,33,5,163,8,200,11,186,15,176,25,7,39,251,44,161,44,151,37,163,17,108,3,42,4, +95,6,181,19,48,38,164,34,145,26,45,27,46,27,167,48,156,71,60,48,158,22,203,29,252,30,215,34,85,56,82,61, +35,50,146,33,110,12,246,12,8,28,6,34,154,42,209,48,187,51,178,67,12,68,32,41,220,31,84,43,79,38,245,19, +112,10,79,5,24,0,58,2,65,2,58,250,124,250,157,5,84,13,63,8,239,253,221,2,146,10,226,250,240,240,180,11, +85,38,77,26,152,8,191,23,160,30,69,255,236,239,86,4,86,21,114,27,114,32,125,41,130,52,176,48,130,42,21,49, +239,43,255,24,157,11,22,4,79,11,65,32,116,39,49,32,66,25,45,11,16,0,244,10,236,19,247,14,157,17,9,18, +113,8,51,3,117,1,41,18,67,38,250,6,204,223,176,243,9,17,19,11,68,2,226,12,96,19,200,2,28,250,185,3, +158,253,201,242,237,243,109,243,120,252,30,10,237,7,145,3,158,8,194,20,42,23,42,4,128,251,143,4,93,4,85,1, +57,0,114,248,75,245,158,255,82,9,196,255,225,246,18,1,177,1,161,255,129,6,236,240,145,214,248,217,244,221,86,233, +250,253,49,252,27,247,79,247,84,235,175,228,209,232,120,236,94,239,61,238,126,240,151,252,118,2,161,246,229,239,31,8, +57,30,70,13,128,242,210,228,140,223,81,233,149,242,218,232,18,225,3,234,148,242,51,241,251,237,103,229,160,223,239,244, +57,8,246,246,254,228,17,237,215,245,84,228,30,208,205,234,10,9,101,242,235,221,220,214,124,196,191,220,117,5,116,250, +237,238,153,255,57,9,122,10,38,6,67,4,16,1,211,222,53,197,199,229,123,5,198,242,162,221,118,229,229,240,140,246, +158,246,12,233,59,223,203,228,251,235,8,246,134,0,71,255,34,251,74,251,216,250,170,244,226,235,64,244,125,6,216,3, +218,251,169,6,247,13,15,4,101,253,213,255,244,250,123,240,111,240,117,247,185,247,198,235,101,224,25,235,130,250,96,239, +20,225,236,234,55,245,26,238,220,231,186,239,226,252,172,6,154,12,62,12,193,5,64,1,59,2,134,255,172,246,33,249, +18,9,165,13,164,1,45,251,21,5,142,14,78,10,190,8,181,8,8,247,96,236,213,248,193,254,58,248,171,244,21,250, +95,3,2,254,166,238,61,231,25,235,135,254,214,9,12,251,42,244,52,249,159,250,183,7,193,19,99,15,137,11,200,11, +142,13,167,14,99,14,8,18,115,12,166,0,135,1,23,2,119,253,26,254,3,5,49,20,25,23,74,7,159,3,16,7, +253,3,6,6,252,7,58,11,6,13,55,252,41,245,222,10,85,22,37,12,61,6,5,10,95,11,49,4,27,254,17,3, +146,10,160,10,25,9,7,11,180,9,27,8,78,14,80,18,122,15,103,13,31,12,55,15,35,17,52,2,147,241,199,242, +24,251,40,0,152,0,101,253,255,250,213,248,211,248,17,252,148,253,251,1,93,7,146,3,244,255,210,255,121,252,202,3, +182,15,203,5,59,247,20,249,6,250,49,249,218,2,45,12,178,12,23,7,195,2,9,11,122,23,98,23,211,16,197,14, +84,14,214,10,235,6,205,4,3,4,93,9,69,16,52,11,108,0,165,251,124,255,113,11,121,13,86,1,170,255,218,4, +12,3,236,4,35,7,248,2,160,254,9,246,81,239,50,245,143,250,209,249,194,251,180,252,140,249,159,249,145,255,31,6, +150,7,240,2,114,0,242,8,103,17,95,13,74,10,202,13,153,10,93,5,64,4,222,255,128,253,160,0,187,2,90,8, +140,14,200,10,151,5,14,4,243,0,74,3,96,8,61,4,92,1,62,6,222,6,206,3,154,0,170,249,134,245,11,249, +85,0,121,7,62,8,35,5,248,5,186,6,86,7,55,13,11,17,190,11,204,4,6,8,19,16,243,10,20,1,156,4, +84,6,123,252,26,250,232,2,164,7,87,2,14,252,82,251,8,248,236,245,43,253,148,252,200,243,79,245,44,248,77,248, +161,252,41,251,89,249,168,255,113,2,42,4,156,5,75,252,251,244,217,250,87,255,216,249,55,246,128,251,153,0,100,6, +249,10,216,252,61,240,124,254,110,10,232,5,188,1,230,252,103,250,48,255,19,7,93,17,177,18,19,9,186,2,250,0, +253,3,6,6,164,0,84,3,105,11,62,11,104,12,234,10,117,255,143,247,219,245,208,244,96,244,4,245,215,245,108,244, +176,247,38,255,33,0,209,3,166,8,138,255,182,248,43,255,105,3,23,255,243,246,53,245,123,251,167,254,212,253,36,250, +95,246,28,251,104,0,196,254,18,252,170,249,74,251,246,2,97,8,42,6,234,255,224,253,181,254,106,253,35,251,200,242, +231,236,117,247,116,3,194,9,95,12,41,1,24,244,183,238,237,233,107,236,196,240,16,244,161,255,173,2,158,253,153,0, +133,254,227,249,211,248,227,238,112,233,38,240,74,245,166,249,215,253,252,3,229,10,249,4,144,254,54,3,114,1,151,251, +74,252,205,250,98,246,88,245,212,248,14,0,231,5,233,5,200,0,149,253,241,0,74,1,178,251,136,252,185,2,176,2, +73,255,105,255,235,254,226,252,175,254,155,254,239,246,70,242,95,246,93,250,24,250,213,249,227,251,99,253,90,250,162,244, +42,244,182,250,116,255,231,255,145,0,92,254,177,252,93,3,220,5,41,255,237,254,221,0,138,254,161,6,89,16,219,8, +114,254,111,251,213,249,28,254,197,2,215,254,228,253,138,2,7,6,140,12,252,17,189,15,219,11,116,9,72,8,185,7, +67,4,5,0,70,255,157,1,59,2,158,252,122,246,229,245,101,246,197,244,28,247,118,3,236,10,201,255,146,251,162,8, +140,11,224,9,17,15,248,5,209,249,2,2,182,8,205,255,48,250,169,254,84,1,194,254,177,254,87,0,65,3,231,16, +169,29,245,23,74,19,168,32,103,43,10,36,222,18,12,1,234,246,83,249,183,252,98,247,134,244,238,252,22,6,254,6, +96,4,195,1,148,252,255,248,65,250,96,247,202,242,60,251,122,7,83,4,174,249,250,245,64,246,191,246,218,248,145,250, +58,252,85,0,88,3,90,1,252,253,254,255,45,4,189,0,88,251,155,253,98,1,70,3,143,2,209,251,55,247,210,246, +94,246,83,251,61,0,191,0,66,0,0,247,105,241,181,251,195,0,119,1,149,5,125,0,93,252,208,249,26,243,97,0, +46,16,235,3,76,246,62,241,175,235,96,241,119,249,193,251,157,252,182,243,53,238,230,247,49,255,213,4,220,10,253,4, +221,253,138,252,252,249,22,253,104,1,222,251,147,250,213,3,74,7,85,2,104,255,140,255,160,255,93,254,135,249,116,243, +142,239,33,235,24,234,186,241,143,246,175,243,11,243,121,242,82,242,173,250,101,254,150,246,173,244,26,249,141,249,148,250, +149,253,134,254,76,255,250,1,27,3,214,253,122,249,139,254,9,2,213,253,242,252,12,1,204,3,85,4,116,4,8,6, +225,6,83,5,81,5,255,6,185,6,22,4,35,1,157,255,251,253,152,251,115,251,29,253,157,254,154,0,84,1,178,255, +222,0,54,5,193,3,238,253,151,255,228,6,56,10,66,8,140,3,230,0,9,3,216,7,108,12,134,9,84,1,142,1, +216,5,101,4,64,3,168,3,10,4,1,8,103,11,185,10,199,8,137,7,49,9,152,11,114,11,30,10,42,5,244,252, +63,250,212,252,20,254,8,1,79,5,243,0,231,247,45,247,113,253,52,5,245,11,112,12,125,6,71,253,128,248,142,3, +206,18,221,17,2,9,134,7,159,12,138,18,176,19,71,16,93,14,230,14,136,14,227,11,250,8,185,7,112,7,20,9, +239,11,88,8,119,252,189,245,157,249,27,248,66,239,131,240,35,248,116,250,243,251,198,251,219,247,109,246,89,247,130,248, +249,249,87,252,187,254,211,249,104,244,100,252,104,5,250,2,37,253,71,251,108,0,57,5,213,1,220,0,172,4,238,5, +229,7,206,6,166,3,167,11,136,18,198,9,225,2,193,4,99,3,159,3,25,9,96,8,250,2,162,2,95,5,64,6, +239,3,218,0,13,2,37,7,221,10,200,7,219,255,153,252,203,251,206,247,107,247,23,249,226,247,92,250,179,254,92,255, +208,254,5,253,150,250,210,247,212,246,131,255,230,8,142,4,174,251,116,248,255,247,33,248,119,249,46,254,214,0,248,249, +225,242,204,243,89,247,209,250,77,252,105,250,174,250,43,255,40,4,1,5,252,1,170,4,72,8,175,251,131,237,181,243, +124,252,195,249,37,250,232,254,208,254,43,253,92,255,118,5,192,7,66,0,253,247,28,246,81,249,18,1,241,5,234,2, +172,1,176,5,31,5,90,0,147,2,114,6,188,255,248,247,74,247,41,247,108,249,185,251,159,247,128,246,206,249,37,250, +253,250,99,250,228,245,234,244,168,247,150,249,24,248,155,243,75,243,27,247,97,248,13,248,22,247,100,245,206,246,118,250, +16,252,252,251,246,251,87,252,174,255,187,5,146,7,233,4,62,3,233,0,11,254,245,253,216,253,169,252,247,251,74,251, +120,251,29,252,140,252,170,253,240,255,105,4,166,6,40,1,227,251,163,254,238,255,128,247,128,241,170,247,78,253,130,251, +175,249,157,246,75,243,72,246,11,252,134,1,152,4,163,1,35,254,85,253,125,254,20,3,139,5,123,3,253,1,32,1, +20,255,111,250,176,246,46,250,132,253,2,250,49,248,163,252,87,2,189,4,212,3,174,1,97,0,144,2,219,1,160,250, +157,251,154,5,55,9,155,8,212,9,30,11,165,11,209,10,34,12,112,12,61,6,163,2,198,2,126,1,244,1,58,0, +171,255,34,5,135,4,74,2,131,5,108,3,250,2,49,8,35,6,17,1,108,254,153,253,175,0,194,255,70,252,151,253, +99,252,143,250,55,252,202,250,57,250,133,253,119,254,30,252,199,251,185,3,59,9,73,1,112,253,107,2,78,2,53,3, +214,4,36,255,7,252,58,253,83,253,105,253,40,252,164,255,103,6,5,4,52,1,150,4,203,5,30,9,76,14,89,14, +145,13,103,11,53,9,205,12,22,13,215,6,194,2,113,255,20,252,64,252,216,253,83,0,77,2,239,254,95,249,202,248, +137,253,25,3,163,3,85,254,203,251,85,254,210,254,192,255,164,1,63,252,222,248,167,255,112,1,31,252,168,252,29,1, +191,3,80,5,39,6,5,7,48,7,226,3,101,255,64,1,119,7,175,7,168,4,125,3,20,1,170,2,93,6,138,3, +161,4,0,10,80,5,120,254,176,254,139,255,98,254,253,251,154,253,183,6,55,12,229,7,245,2,165,2,35,2,127,255, +136,254,224,254,47,0,22,4,61,6,187,7,255,10,15,8,133,2,155,3,23,5,63,4,31,4,137,3,213,5,59,11, +135,12,94,7,123,0,162,254,189,1,233,3,198,3,52,2,166,0,87,2,175,4,240,255,51,247,137,248,135,0,55,255, +147,250,216,251,126,253,27,0,39,1,170,251,147,248,21,249,250,248,193,252,250,255,191,253,26,252,213,253,249,0,64,1, +156,254,193,254,11,255,196,252,116,252,254,252,89,253,225,0,238,3,208,0,12,253,144,0,188,4,169,2,2,2,82,5, +199,6,90,6,110,5,167,4,134,4,122,4,26,4,59,1,57,255,185,1,22,2,78,1,10,4,226,3,185,1,129,2, +98,3,203,4,51,7,252,9,216,11,110,6,232,255,14,3,149,6,254,2,239,255,106,255,215,255,13,5,23,10,65,4, +17,251,232,249,86,250,158,250,110,254,209,254,149,253,92,0,127,1,52,2,198,4,192,3,1,1,59,255,178,253,183,254, +243,254,21,250,169,245,56,246,50,247,252,245,161,247,2,252,106,253,126,253,56,254,206,252,50,251,83,252,9,255,141,1, +159,1,103,255,190,255,245,3,223,4,233,254,11,250,69,252,37,0,129,253,220,246,191,245,81,247,252,245,139,247,44,249, +222,247,161,252,94,1,140,254,174,252,249,250,197,247,37,247,232,245,94,248,130,254,115,252,230,248,135,251,119,251,29,251, +95,255,200,0,200,255,115,2,223,3,93,255,28,252,8,254,160,255,135,0,18,2,132,0,165,252,127,250,242,250,161,251, +222,249,185,248,210,249,170,249,43,250,162,251,82,249,20,247,251,249,176,253,242,254,130,255,71,255,78,254,170,254,12,255, +212,254,148,0,253,1,157,1,47,1,129,254,80,253,52,2,139,5,46,3,244,254,152,252,3,255,184,1,146,1,215,1, +16,1,9,1,84,2,247,253,55,250,203,253,129,0,84,1,119,2,101,1,137,1,61,3,63,3,76,3,150,2,104,255, +28,252,237,250,169,252,235,255,160,2,129,4,18,6,94,7,220,6,103,4,99,2,116,2,152,5,22,9,12,9,21,8, +226,7,172,6,213,5,18,5,250,3,132,6,23,11,8,11,54,8,45,9,96,10,3,6,69,2,196,3,174,3,207,254, +25,253,108,5,178,12,151,5,41,254,109,2,6,6,12,8,91,11,250,5,163,0,196,5,31,8,219,3,31,1,122,0, +13,1,7,0,4,254,26,1,214,3,157,0,242,254,111,0,74,0,52,1,88,4,12,4,62,1,102,2,17,4,204,1, +87,1,226,1,84,255,12,0,253,1,24,254,101,252,43,0,80,2,173,3,221,4,50,4,42,4,189,1,23,252,83,251, +159,253,174,251,49,250,76,252,156,251,133,248,142,248,203,249,130,250,233,252,126,254,50,253,201,252,239,253,142,252,23,249, +46,249,51,253,169,255,217,255,34,0,239,255,255,253,5,250,131,247,181,248,73,249,142,250,239,253,13,252,79,249,102,253, +218,254,147,250,17,248,234,245,222,243,163,245,150,248,239,250,203,253,155,255,84,0,212,1,53,2,80,0,126,0,43,3, +104,4,207,4,231,3,2,0,130,253,168,254,241,255,51,255,251,253,164,254,230,255,227,0,246,1,168,255,118,252,169,253, +50,254,201,251,202,250,202,251,180,253,150,253,180,252,146,0,225,3,63,1,182,253,80,253,217,254,229,250,197,243,76,249, +24,4,48,3,70,0,184,1,234,0,247,0,138,1,121,254,36,251,131,248,18,248,61,252,150,255,1,0,16,0,79,253, +29,251,193,0,249,5,30,1,9,251,27,251,131,252,214,253,77,255,62,255,159,255,119,0,197,0,21,2,145,2,26,2, +246,3,81,5,15,2,240,252,125,251,70,254,76,0,135,0,3,1,208,255,140,254,3,1,204,3,114,4,181,4,240,4, +184,4,170,1,57,254,88,1,215,3,137,254,240,252,237,0,42,1,221,1,96,2,244,251,174,249,6,1,132,5,36,5, +213,4,242,2,28,1,134,0,199,254,22,255,32,1,116,254,61,251,121,253,146,0,123,3,222,5,181,1,230,252,24,0, +98,3,32,1,180,255,220,1,65,4,194,4,37,5,29,6,7,5,171,3,192,4,246,4,92,3,51,3,41,4,25,4, +116,4,127,6,83,6,82,2,84,255,134,255,183,0,118,1,89,1,50,0,156,255,46,2,172,3,41,0,9,255,234,0, +199,0,134,3,33,6,194,4,245,5,43,4,185,254,134,255,69,0,103,255,236,0,126,254,134,251,207,248,201,246,199,1, +186,10,33,2,41,252,20,252,91,248,92,248,225,250,225,252,17,0,251,255,74,254,245,251,199,248,208,251,150,0,119,255, +245,253,59,255,87,1,65,2,103,1,17,3,222,5,0,3,141,253,37,251,7,248,128,244,62,246,99,247,164,247,147,2, +217,13,135,11,223,5,189,1,87,254,222,255,189,0,232,255,244,0,140,255,196,253,239,252,234,251,129,0,192,4,242,1, +174,0,101,2,215,2,28,2,92,255,59,254,255,255,91,254,23,251,124,252,122,253,136,248,153,245,235,248,214,251,179,253, +44,254,151,252,84,255,180,1,153,255,199,1,59,4,157,2,98,0,133,248,112,242,54,246,49,250,32,1,190,9,194,5, +35,255,43,0,175,0,173,1,15,3,55,255,93,253,68,3,244,7,252,4,158,2,126,6,58,8,16,4,14,255,232,251, +93,251,92,251,143,251,155,254,132,1,161,2,113,3,174,2,69,1,171,254,233,251,197,254,115,2,206,1,8,1,231,253, +27,251,116,1,40,8,0,6,228,1,115,0,254,255,72,254,55,250,99,247,31,249,50,254,0,1,5,252,72,247,124,253, +202,3,5,254,33,248,250,252,106,1,145,252,216,248,248,254,152,5,163,3,132,0,160,3,211,6,246,4,231,1,28,0, +165,255,170,2,113,7,163,8,68,7,237,7,136,7,8,1,141,251,145,255,220,4,44,3,7,2,190,4,185,3,154,254, +69,251,43,250,4,248,74,244,37,242,232,243,48,248,206,250,235,249,222,249,131,251,154,250,9,250,177,252,11,254,215,253, +183,255,191,3,77,6,26,4,95,1,223,0,187,253,115,251,121,0,164,6,253,8,114,11,32,14,18,13,185,9,81,7, +118,5,180,5,197,7,122,7,15,7,136,7,99,6,74,7,31,8,173,5,129,4,240,0,133,252,160,0,110,5,236,4, +234,2,100,253,20,249,109,249,142,250,190,254,133,0,154,251,110,248,59,245,26,243,137,250,127,2,128,3,104,2,65,1, +197,1,199,0,59,252,225,250,0,250,9,246,146,246,146,251,230,255,6,4,206,7,43,9,105,6,225,2,246,1,136,254, +172,251,124,2,60,7,203,253,115,245,105,250,58,0,112,254,131,253,1,1,218,2,155,1,169,255,80,254,177,254,78,254, +228,253,37,4,204,8,26,0,122,248,66,252,120,0,227,6,77,13,140,2,151,246,185,0,222,11,190,5,76,255,68,4, +144,8,99,0,132,248,146,255,87,5,23,254,9,250,102,253,148,253,181,251,231,252,91,0,197,1,247,254,214,251,245,249, +193,248,76,250,1,252,68,251,198,249,205,246,36,245,148,248,202,252,249,255,17,3,142,2,75,0,241,0,120,1,135,255, +153,254,5,255,27,254,164,254,183,1,34,1,70,254,250,253,163,252,234,251,175,253,193,251,72,250,61,253,84,253,155,252, +86,254,84,253,99,251,105,251,136,251,139,252,74,255,99,3,136,5,241,1,91,253,100,253,237,255,25,1,237,0,140,1, +162,1,71,1,133,3,88,4,165,1,85,0,122,255,12,254,144,254,67,255,118,255,77,255,14,253,184,250,180,250,196,251, +52,252,3,253,174,254,185,253,7,252,104,254,128,0,225,255,137,0,96,2,127,3,142,2,28,255,100,250,16,248,181,253, +220,3,140,0,66,254,228,0,131,0,240,2,122,6,235,1,78,252,73,249,43,249,133,1,173,8,219,5,223,1,0,0, +40,255,135,2,215,5,90,5,129,5,41,6,116,5,142,5,55,4,85,0,171,253,29,251,176,248,99,249,195,251,244,255, +150,3,53,1,111,254,103,0,158,1,201,254,83,250,22,250,121,253,129,251,73,248,227,252,7,2,158,1,102,1,181,3, +63,5,198,5,222,4,231,254,195,248,103,249,201,251,25,254,50,2,235,3,167,4,115,4,100,2,176,5,76,8,111,2, +72,254,248,253,200,252,234,252,27,255,38,4,232,6,239,3,194,3,145,3,107,0,106,4,108,9,123,7,81,6,198,6, +94,7,23,8,181,5,140,5,205,7,245,2,128,252,240,253,102,1,182,1,126,1,95,255,240,252,54,2,89,8,172,3, +184,253,162,254,39,0,27,2,18,4,156,1,37,255,55,0,43,1,239,255,15,254,73,254,86,255,129,254,27,254,102,254, +167,253,211,254,162,1,175,1,25,1,237,3,187,6,73,5,219,3,226,7,171,11,91,8,192,5,248,9,6,13,128,13, +147,13,65,6,86,254,41,2,214,6,180,4,223,3,51,3,128,0,113,255,247,254,218,0,162,4,123,2,148,253,196,253, +168,255,249,255,106,0,168,1,254,2,82,2,123,2,122,7,145,9,215,4,128,2,70,3,96,3,221,5,207,7,147,6, +85,4,110,253,86,247,178,251,59,0,237,253,228,252,35,253,14,254,90,3,113,6,3,3,171,255,247,254,91,253,80,250, +207,250,23,1,243,4,89,0,83,250,236,248,153,248,189,247,154,249,226,252,173,252,145,248,176,244,32,245,132,248,81,249, +24,250,169,0,107,5,92,1,170,251,221,247,153,243,74,241,107,240,128,239,32,242,73,247,8,251,44,253,198,253,188,253, +43,254,162,254,39,255,236,254,230,254,49,1,51,3,178,3,35,4,10,3,3,0,174,251,173,248,157,251,98,255,80,254, +102,254,28,1,55,1,238,254,51,253,237,253,231,254,16,254,71,255,47,0,81,253,120,253,190,255,30,255,47,0,216,0, +208,253,216,252,126,252,169,251,220,253,55,253,229,250,44,255,0,3,37,0,231,252,44,253,211,254,8,253,128,250,215,254, +85,3,36,1,103,254,110,252,191,250,40,252,199,253,65,254,120,255,117,1,171,2,83,255,57,252,220,255,87,1,214,253, +119,253,194,252,249,249,82,252,80,1,128,2,5,2,119,4,35,7,171,3,146,253,169,252,213,254,157,254,91,252,203,251, +248,252,141,251,236,249,238,253,50,2,106,0,130,255,45,5,116,9,35,6,248,0,81,253,99,250,49,253,17,4,215,4, +172,2,49,5,77,6,218,3,120,3,140,1,139,254,247,1,106,4,78,255,215,249,206,243,23,239,232,245,73,255,241,253, +18,251,154,254,145,1,224,255,10,252,227,248,21,249,228,251,5,254,84,1,69,5,100,2,137,253,214,0,192,4,172,2, +81,1,100,2,187,2,64,1,162,254,190,254,92,1,216,2,147,4,179,6,179,6,22,6,181,4,237,255,222,252,234,0, +180,5,120,6,218,5,149,2,128,254,224,254,94,0,137,1,166,4,189,5,241,4,113,6,134,6,202,1,48,255,80,4, +192,8,202,6,227,5,46,6,122,3,239,1,208,2,229,5,247,8,237,5,220,1,187,0,229,254,194,1,180,6,0,4, +252,0,248,2,243,3,166,3,104,4,16,6,60,7,115,7,22,7,178,3,184,255,135,255,236,255,11,0,71,255,49,251, +24,250,191,253,82,0,60,3,193,5,20,3,103,255,168,0,131,3,226,2,6,2,166,3,159,3,164,2,243,2,57,3, +107,4,139,2,11,254,0,2,141,7,72,2,67,253,243,254,73,255,64,255,172,0,21,0,10,0,174,2,245,3,8,2, +158,254,3,251,108,249,137,251,62,254,26,255,192,255,237,254,2,252,115,252,80,0,24,1,157,255,20,0,44,0,4,254, +68,252,141,252,223,253,198,253,43,252,48,253,200,1,98,5,107,5,158,3,238,1,59,0,198,254,24,255,118,255,129,252, +43,249,248,250,221,254,20,254,246,250,162,250,144,251,100,252,21,252,16,249,228,248,93,253,134,254,186,252,222,253,75,255, +138,253,154,250,41,250,162,252,168,252,122,248,111,246,96,249,167,253,155,1,183,4,20,3,241,252,28,249,46,249,37,251, +35,255,241,0,25,0,210,3,15,9,117,8,93,5,217,2,190,0,184,0,4,2,132,4,253,6,52,3,75,251,108,248, +118,249,252,248,85,250,12,1,121,6,158,4,116,0,72,253,80,251,182,0,238,7,70,4,72,255,28,2,74,2,28,255, +163,254,244,252,45,250,121,249,178,250,69,254,68,255,125,250,187,246,150,247,255,250,159,255,122,2,133,1,217,255,247,0, +209,1,46,254,120,251,20,255,113,3,223,3,173,2,61,1,1,254,202,248,101,246,182,249,24,253,155,253,113,253,102,250, +150,246,22,249,120,254,92,1,162,2,134,0,44,253,63,253,74,254,88,1,238,4,78,1,117,253,11,255,36,254,162,254, +162,2,165,0,236,254,201,4,176,8,81,6,58,2,1,255,239,253,97,255,34,1,109,0,195,255,11,1,33,1,129,1, +206,1,199,254,192,252,52,251,189,250,60,3,167,9,89,3,77,254,18,0,255,0,48,0,185,255,124,2,103,6,155,5, +111,2,157,0,68,1,25,4,8,5,242,4,230,4,248,0,24,253,213,252,89,252,65,253,4,0,29,255,78,252,97,253, +201,0,237,1,227,1,172,3,23,4,116,0,199,253,148,254,8,255,17,255,222,255,215,254,82,254,168,1,175,4,110,5, +91,4,31,0,110,253,240,254,157,255,240,254,52,254,35,253,164,254,142,2,158,4,158,2,18,255,62,255,186,1,240,1, +62,2,204,3,54,3,109,0,52,254,6,254,6,255,183,0,18,3,62,4,114,4,55,4,41,1,68,252,30,250,166,252, +244,255,45,255,23,253,230,252,30,253,189,254,251,0,233,1,150,2,52,1,162,255,37,1,42,1,11,1,157,3,188,1, +174,252,72,252,98,255,32,3,202,4,238,1,57,255,4,1,121,3,48,1,201,252,166,253,50,2,228,2,102,0,164,255, +138,0,98,1,210,1,18,1,120,255,59,255,188,1,243,4,248,3,139,255,38,254,251,254,206,255,117,3,239,5,94,4, +77,3,225,1,9,1,52,4,44,6,125,4,104,2,119,2,120,5,0,5,74,1,212,3,117,7,195,4,192,1,28,1, +195,0,243,254,230,251,178,252,216,254,158,252,31,251,73,252,255,251,169,252,235,255,26,1,55,255,0,255,170,255,80,253, +236,252,36,0,14,1,135,2,71,5,97,3,106,1,126,2,136,2,133,3,6,4,222,0,131,255,202,0,23,0,137,253, +119,252,199,255,210,2,27,1,29,0,133,255,88,253,14,0,245,2,200,255,98,254,173,255,153,0,104,3,239,3,241,1, +243,1,230,0,246,255,88,1,251,0,246,0,138,1,251,253,127,251,104,254,246,255,63,253,196,251,147,253,43,255,101,0, +176,0,226,251,232,246,187,248,123,252,66,254,59,0,84,1,195,255,202,253,169,253,230,251,202,248,45,253,219,4,250,3, +165,0,159,1,153,1,93,0,157,255,227,253,31,254,184,1,111,3,13,0,133,253,245,0,45,3,104,255,248,251,187,250, +5,250,214,251,158,254,188,255,66,0,0,1,226,1,69,1,142,255,230,0,9,3,233,1,29,1,213,0,232,254,27,255, +250,0,28,1,210,0,205,0,32,1,227,0,120,255,48,0,129,255,92,249,9,246,73,247,230,246,172,246,132,248,40,252, +102,0,252,0,236,0,188,3,41,3,174,252,59,247,184,248,161,251,243,248,155,248,159,254,166,1,50,0,195,254,38,0, +239,2,64,255,123,250,216,254,134,3,116,3,124,4,160,5,9,6,93,5,82,2,39,1,25,2,5,1,207,254,27,254, +248,253,165,250,87,246,111,247,177,251,207,254,196,0,142,0,202,255,26,1,178,2,119,2,113,0,116,254,160,253,59,253, +160,253,239,254,189,0,93,2,77,2,213,1,51,2,216,2,45,5,226,7,22,7,49,2,100,252,179,251,211,254,36,254, +250,252,190,0,31,4,157,4,172,4,21,3,185,0,213,0,92,0,193,252,168,251,51,254,164,254,234,252,65,252,221,254, +86,3,109,3,98,1,35,2,49,1,137,255,118,255,142,252,34,251,2,255,0,2,230,1,127,1,222,3,167,5,60,0, +65,250,145,249,168,249,149,252,204,255,201,250,94,245,108,247,134,250,188,252,195,255,33,255,101,252,120,255,16,5,173,5, +154,4,199,4,98,4,97,4,67,4,84,3,134,2,82,0,110,253,231,251,142,251,168,252,20,254,192,255,242,1,13,1, +33,255,222,0,110,2,23,2,116,3,226,4,70,3,203,0,233,255,29,0,156,1,179,3,185,3,26,3,189,3,61,4, +169,3,53,0,50,252,88,252,45,253,155,253,220,255,71,0,173,1,129,6,192,6,151,2,54,0,244,255,46,1,74,2, +243,2,199,2,121,255,63,253,248,253,67,253,166,252,223,251,169,249,125,251,225,253,27,250,55,247,225,249,213,252,158,254, +172,255,203,254,240,254,98,0,220,254,222,253,251,255,115,255,202,253,160,253,86,252,213,254,162,3,247,0,13,253,125,255, +132,2,228,3,89,3,71,255,189,253,227,1,140,4,204,3,146,5,235,8,68,9,199,7,184,5,223,4,46,5,154,0, +245,251,110,255,218,2,194,2,118,2,117,254,246,252,63,2,247,4,166,6,186,8,133,3,54,253,42,252,241,251,253,252, +184,253,245,250,106,249,111,250,54,251,108,251,6,252,38,255,194,1,4,0,205,253,78,251,107,248,90,251,251,255,87,255, +29,254,7,255,7,2,230,6,214,6,193,1,126,0,99,4,114,7,11,5,123,1,245,3,113,7,18,6,50,3,155,255, +14,252,98,252,105,255,90,1,61,1,150,1,233,2,22,2,76,1,19,2,232,255,32,252,241,250,237,252,246,255,190,254, +213,250,94,249,201,249,3,255,124,6,87,7,206,6,127,8,238,7,8,9,82,9,36,3,180,254,249,254,37,255,27,255, +144,253,4,252,49,253,134,251,253,246,24,249,5,0,238,255,246,250,52,252,229,255,157,254,118,253,142,255,116,2,128,5, +98,6,169,4,140,1,14,252,164,248,230,251,35,1,115,4,52,6,91,5,135,3,255,3,19,4,253,0,113,255,146,1, +63,2,196,0,94,0,103,0,95,0,80,0,28,254,235,249,21,247,46,248,239,250,156,251,84,253,86,1,32,2,27,2, +85,3,106,254,223,248,155,252,237,0,27,1,118,1,134,253,252,249,4,1,249,6,116,2,35,254,48,254,53,255,200,1, +176,1,173,252,219,249,167,250,37,252,92,0,234,3,85,2,135,2,53,7,119,9,173,8,126,6,115,1,39,253,184,253, +172,0,56,2,161,2,53,3,11,1,82,252,251,251,71,0,190,2,178,2,199,3,182,5,139,5,200,5,255,7,210,5, +175,1,248,2,226,3,30,1,199,254,48,253,16,254,249,254,18,253,61,255,73,3,117,2,207,1,78,2,216,1,68,2, +3,0,163,250,157,247,132,248,174,250,67,249,43,247,126,251,7,1,25,2,17,2,46,2,96,2,211,2,4,1,202,252, +186,251,233,0,153,4,229,3,125,6,185,8,146,6,146,7,192,7,2,3,1,2,120,3,73,2,115,0,236,254,195,0, +111,3,189,0,7,0,248,3,133,3,211,0,178,255,52,252,201,249,72,251,86,251,215,250,18,252,5,250,187,246,222,248, +163,251,159,250,235,251,38,1,219,3,154,1,165,254,27,254,147,253,107,252,46,254,196,0,185,255,19,254,92,254,58,254, +173,254,163,0,134,1,158,1,143,255,176,249,134,246,246,246,125,246,2,250,203,253,170,248,0,246,253,251,72,0,191,4, +197,7,255,253,36,245,133,253,107,5,115,254,27,248,96,252,94,2,254,4,208,4,224,0,184,251,24,250,114,253,28,2, +123,2,113,255,157,253,244,252,235,250,124,247,110,247,245,252,106,1,153,1,224,0,176,255,245,254,82,0,121,1,47,1, +7,2,26,5,125,5,189,0,133,253,157,254,36,1,94,4,185,5,207,5,211,7,223,7,35,4,70,254,109,248,237,250, +19,3,86,3,48,0,73,3,169,6,151,6,19,6,144,3,250,255,214,254,145,252,178,247,189,246,202,251,72,1,188,0, +251,252,171,255,11,1,53,247,50,242,163,248,85,253,99,0,50,3,105,2,55,1,190,252,90,246,243,246,245,250,88,253, +129,254,77,255,11,2,167,1,181,254,30,2,29,5,142,3,4,5,245,5,99,4,249,3,109,2,159,2,176,6,174,8, +84,5,40,254,113,251,37,1,80,4,233,0,196,254,42,0,107,2,44,2,111,0,183,1,171,1,3,253,162,252,5,3, +73,6,251,2,37,1,75,4,175,5,243,3,79,3,18,1,41,255,194,3,149,5,117,254,226,250,22,254,96,255,14,255, +213,255,112,0,133,1,14,4,113,6,37,6,168,4,222,3,51,1,92,255,249,255,180,251,42,247,128,251,10,0,128,254, +127,253,163,0,105,5,160,6,195,4,198,4,52,4,230,2,253,4,110,5,136,2,39,3,98,5,252,3,146,1,55,0, +189,254,161,252,28,250,216,250,107,254,60,252,163,248,108,253,192,255,188,250,123,250,157,252,112,252,45,255,114,1,72,0, +27,253,210,246,32,243,235,244,231,246,167,249,96,254,104,1,246,1,102,3,189,5,121,4,228,1,75,1,148,1,202,7, +9,14,142,8,117,2,232,0,215,253,95,1,47,7,172,5,89,4,122,1,83,252,178,251,157,249,109,248,227,252,141,253, +235,251,128,252,203,253,242,1,78,3,2,2,52,3,86,254,117,249,235,253,160,2,116,13,171,20,74,251,236,227,149,246, +108,11,93,7,221,3,181,5,133,3,217,1,125,255,149,248,77,244,72,250,51,2,117,0,97,255,143,7,219,11,151,8, +21,5,232,0,251,253,185,255,35,5,160,10,8,11,253,9,112,10,232,6,107,4,244,5,9,4,50,3,72,5,33,2, +172,254,255,255,158,255,181,250,180,244,144,242,47,245,67,249,168,251,221,247,117,243,170,249,218,255,142,249,139,243,170,246, +247,251,64,2,161,8,102,8,195,3,125,1,12,0,79,252,29,247,248,242,187,241,169,240,45,240,183,246,116,254,244,251, +232,246,183,249,115,250,101,241,112,235,101,240,25,246,211,246,217,246,8,250,131,255,74,255,217,250,121,254,112,3,212,255, +186,254,145,2,234,2,167,3,91,6,64,5,225,2,243,4,4,11,164,16,182,15,152,6,53,255,254,0,101,4,68,5, +17,7,72,8,159,10,158,13,116,9,2,3,84,2,20,4,148,5,139,3,45,254,189,253,153,0,127,255,138,251,81,248, +97,248,204,250,41,252,245,251,37,252,131,0,203,5,8,3,169,252,121,251,227,251,102,250,217,251,113,2,117,6,17,4, +57,2,159,1,22,1,190,3,18,5,173,6,55,10,147,2,177,249,11,3,0,12,56,5,24,254,175,254,140,255,67,250, +60,249,197,10,25,27,62,20,13,9,55,8,31,6,138,1,169,0,207,254,126,252,212,2,81,11,20,8,6,3,12,7, +76,7,118,1,163,255,38,254,154,251,16,250,19,248,232,250,102,252,166,244,36,241,89,242,171,240,195,244,126,246,42,236, +104,230,89,235,6,242,193,244,81,243,242,245,198,247,204,239,234,234,15,237,109,239,241,243,232,245,250,247,202,253,238,248, +44,243,197,254,193,9,115,10,213,8,84,0,136,251,243,9,141,23,101,19,68,14,174,15,113,13,165,10,141,7,3,252, +241,244,20,253,52,7,158,14,4,23,112,26,149,23,7,19,192,12,47,6,96,4,120,6,116,7,221,8,47,11,37,10, +215,6,12,1,112,252,21,3,37,10,39,5,141,0,107,0,34,255,5,0,31,0,97,253,87,251,207,247,134,246,11,250, +135,250,119,249,248,251,250,253,219,254,208,1,118,4,1,3,121,0,132,1,190,2,171,1,68,3,51,7,157,6,220,0, +72,252,72,251,53,251,118,253,194,0,137,254,51,254,237,8,141,16,203,11,154,8,211,10,91,9,240,6,62,7,86,5, +93,2,31,3,75,5,28,4,131,1,166,4,28,11,81,11,120,8,101,9,43,9,128,5,194,5,32,12,127,14,228,6, +148,255,155,253,164,249,149,246,127,249,249,250,236,248,115,250,156,254,33,254,230,250,116,250,206,249,190,249,112,252,231,248, +37,242,123,244,242,249,123,252,75,254,6,253,230,251,1,253,79,252,105,252,14,251,190,244,251,241,49,244,47,246,246,249, +96,254,79,255,129,252,229,248,145,250,78,255,86,254,83,251,210,253,28,2,209,2,237,0,165,255,232,254,90,253,100,254, +101,1,24,0,245,254,44,3,45,6,63,7,96,8,203,4,150,0,136,1,10,1,156,250,191,245,238,250,28,0,102,248, +96,244,41,254,115,3,218,3,118,6,193,2,133,254,139,255,25,254,150,254,98,1,250,253,138,249,189,247,196,245,230,246, +14,251,81,254,196,255,224,254,213,253,180,255,15,0,224,249,193,244,244,247,179,252,174,254,36,255,54,253,112,253,196,255, +44,0,45,5,233,9,76,3,104,252,84,252,84,252,213,252,31,254,16,1,18,4,244,252,54,244,74,247,22,250,170,247, +122,248,103,248,155,246,67,248,95,252,80,3,192,7,107,2,72,250,103,246,3,247,5,251,244,252,74,252,106,252,178,251, +254,251,148,253,89,253,231,254,139,0,216,253,107,251,21,250,239,249,184,253,170,0,139,1,170,1,149,253,101,250,251,253, +53,4,238,8,203,11,177,16,91,22,159,20,92,15,135,12,241,8,79,6,179,3,252,253,66,252,100,255,32,1,74,2, +47,4,80,6,94,6,12,1,207,250,151,247,175,244,124,243,136,246,76,251,23,255,251,255,32,254,40,253,115,252,10,248, +33,243,204,242,181,246,249,252,132,255,130,251,160,249,67,251,122,251,22,254,144,2,224,5,50,8,175,3,126,254,14,4, +81,8,84,4,129,3,46,5,223,3,147,2,244,3,131,8,82,11,174,8,191,5,141,3,52,1,82,3,132,6,19,4, +91,1,55,4,77,7,79,4,124,255,31,1,63,6,220,7,209,7,207,4,210,254,36,2,41,11,40,10,192,5,251,4, +229,3,113,8,112,15,203,14,144,12,62,10,25,6,255,7,197,12,151,13,171,12,17,10,56,8,117,8,93,6,64,5, +197,7,150,7,227,3,24,3,113,5,33,2,189,250,17,252,71,0,50,252,13,249,42,251,237,253,57,4,88,9,78,7, +33,5,148,4,33,2,42,1,238,3,143,8,12,12,66,11,149,5,39,252,55,245,68,247,134,251,12,251,114,250,115,250, +12,250,217,252,95,253,199,245,102,238,74,238,125,242,243,245,161,245,88,243,241,241,223,240,29,242,245,247,204,253,93,0, +78,2,153,3,108,4,13,8,109,9,139,2,137,251,247,251,67,254,48,252,231,249,139,254,25,3,144,254,253,250,58,254, +186,0,238,3,164,7,230,5,34,3,245,2,11,4,68,6,253,5,70,3,193,0,105,253,53,252,158,253,158,252,114,250, +207,252,180,4,217,9,254,6,201,2,77,254,31,250,67,253,212,0,79,0,206,1,119,253,249,245,187,252,133,5,244,253, +79,246,142,255,81,9,234,2,103,251,5,253,88,252,199,253,60,4,22,255,141,245,72,249,162,0,201,1,126,0,45,255, +123,254,220,253,48,254,87,0,109,1,141,0,68,254,1,253,171,253,4,250,14,247,228,253,144,2,30,255,169,252,166,248, +31,243,16,243,69,245,0,248,87,250,7,249,113,248,158,247,109,244,169,246,48,251,103,250,152,248,1,248,40,249,236,252, +123,255,227,0,36,2,231,2,75,4,218,2,19,1,216,4,131,6,192,2,12,0,197,254,1,0,68,4,70,6,118,4, +21,1,48,0,158,2,118,3,200,2,172,1,122,255,197,255,199,1,43,4,50,7,110,4,107,255,51,1,183,2,229,255, +223,254,109,255,124,0,231,2,186,3,62,1,236,254,218,254,18,253,54,250,11,250,243,248,101,248,126,252,19,0,78,2, +66,4,149,3,192,1,154,252,230,247,6,252,1,1,61,4,8,8,221,0,28,247,47,251,246,0,212,0,209,0,232,255, +34,254,147,251,66,250,225,253,43,0,52,1,61,4,20,0,167,249,177,253,78,2,220,254,13,251,107,250,131,251,198,254, +231,1,10,1,219,254,143,0,235,2,198,1,18,0,248,254,253,253,226,253,228,251,81,248,197,248,220,252,143,255,190,255, +145,254,239,251,80,249,123,251,232,0,139,0,102,253,240,1,129,7,116,5,1,3,220,2,136,1,112,2,183,5,122,8, +184,10,148,9,83,6,219,5,254,5,157,4,148,2,169,0,231,0,150,0,243,252,89,249,206,246,195,246,237,250,166,255, +96,5,241,11,79,13,5,12,22,12,206,9,115,6,233,4,40,3,128,2,104,4,46,5,219,3,151,2,121,255,83,251, +54,252,166,255,177,1,175,5,226,6,16,2,212,254,226,250,210,246,115,253,97,5,147,2,18,255,50,255,200,252,217,249, +2,251,7,255,233,255,49,251,128,247,140,249,177,251,120,248,32,247,160,254,70,4,83,0,197,252,222,254,136,1,71,2, +101,2,10,4,232,6,142,9,114,10,118,7,200,4,112,5,3,5,109,4,94,3,250,253,145,252,21,3,128,6,227,3, +49,1,220,255,199,254,0,254,173,254,190,0,175,1,17,255,66,252,57,255,36,3,0,3,160,3,118,2,225,255,29,5, +130,10,139,9,205,8,201,3,62,252,38,252,143,254,34,3,27,10,83,7,228,255,56,0,117,2,21,2,158,1,141,0, +98,255,45,0,142,3,116,6,104,4,147,254,77,252,202,2,43,9,213,3,200,250,121,249,180,251,159,251,166,249,96,248, +224,248,165,249,143,252,134,1,152,2,0,0,173,253,247,251,146,251,227,251,193,251,38,252,239,252,90,254,239,0,207,3, +96,6,122,6,164,3,23,2,240,2,164,3,186,3,153,3,112,4,71,7,41,8,46,4,202,0,223,0,164,0,141,1, +89,4,156,3,110,2,95,5,169,5,143,1,20,255,72,253,39,251,246,252,34,255,49,251,161,248,103,253,173,255,216,253, +173,254,74,253,230,249,246,250,165,251,109,251,243,251,54,245,211,236,87,240,174,248,110,249,135,247,219,251,22,1,162,1, +32,3,209,2,108,253,245,254,149,4,142,0,73,251,180,253,199,2,88,8,7,12,190,11,132,7,72,254,193,248,122,252, +194,254,184,253,218,254,102,254,81,254,162,1,173,0,234,251,30,251,133,253,198,254,163,252,92,251,141,0,98,5,52,5, +164,4,224,0,111,252,201,255,13,2,83,254,44,254,128,255,197,254,163,255,213,254,67,252,103,251,176,249,151,248,60,250, +38,252,168,254,20,1,224,2,87,5,24,5,158,2,188,2,209,2,249,255,14,253,178,252,127,254,164,254,184,253,13,1, +82,4,109,1,162,255,78,3,130,3,65,254,230,251,184,251,144,250,242,254,107,5,99,2,248,252,6,254,98,253,95,249, +6,248,108,247,48,247,8,249,86,251,53,255,39,3,76,3,79,1,200,253,201,250,51,253,160,255,110,253,157,252,202,253, +84,255,82,4,100,8,122,6,166,4,233,5,89,3,227,253,160,255,191,4,160,2,112,0,162,4,41,6,116,3,3,2, +78,0,8,254,41,254,112,0,69,2,213,3,122,7,244,7,214,1,87,255,238,0,32,252,196,246,105,249,80,254,35,1, +221,2,193,3,91,3,113,0,227,253,227,255,93,3,223,3,100,1,20,254,199,253,23,1,92,3,18,2,26,255,243,253, +87,254,91,250,244,244,197,247,219,250,123,244,92,241,169,248,89,253,73,249,255,245,8,251,52,0,169,253,157,253,186,3, +135,5,28,3,187,0,206,255,35,2,102,1,58,254,224,0,144,2,93,255,113,253,190,250,125,246,85,243,162,243,231,251, +61,3,202,0,255,255,72,4,242,4,156,5,197,7,140,4,147,3,95,12,57,16,209,9,25,7,110,6,188,3,2,7, +153,10,48,10,72,10,128,4,73,255,237,4,216,7,215,5,223,7,51,7,42,2,89,253,80,250,230,252,72,1,222,2, +237,2,188,255,251,252,138,254,104,1,90,6,158,9,158,5,167,0,57,255,58,0,92,3,225,3,65,0,54,255,165,1, +242,0,23,253,133,250,10,248,109,247,77,252,74,0,0,255,154,251,225,248,4,250,180,253,9,1,152,3,149,2,61,2, +109,4,106,1,193,254,63,0,107,0,90,6,178,13,241,9,77,3,201,254,96,251,128,250,40,250,50,2,5,11,43,1, +117,248,87,255,144,0,105,249,49,244,202,243,192,248,203,249,90,249,100,1,229,7,211,6,11,3,161,255,93,0,211,254, +219,251,84,5,253,14,54,9,99,1,20,255,164,255,156,5,84,8,235,0,23,251,223,251,142,251,193,247,106,243,186,242, +31,244,134,240,88,237,67,240,94,242,245,244,248,245,128,237,2,232,32,234,203,236,137,248,223,3,114,0,78,254,165,255, +203,253,202,2,24,7,129,3,76,3,43,4,234,4,142,13,18,21,114,16,2,8,181,7,23,11,68,9,57,6,159,4, +167,4,254,9,206,12,98,8,75,4,247,254,90,249,233,251,152,1,132,2,28,3,125,8,211,11,25,6,54,255,145,251, +72,247,33,248,12,255,221,2,153,2,120,2,35,3,180,0,28,253,48,0,177,3,161,2,239,2,170,255,115,250,40,253, +205,0,113,0,47,254,241,250,225,252,238,255,219,254,221,255,72,0,247,254,82,255,57,253,230,253,106,4,157,7,134,7, +11,7,71,6,77,6,172,6,153,9,98,9,104,3,19,5,250,9,217,5,110,255,249,249,48,247,103,248,244,246,90,248, +7,254,226,253,230,250,69,246,108,241,188,244,85,249,180,251,213,255,157,253,42,247,116,245,239,246,133,251,177,255,247,255, +85,1,15,3,20,2,7,0,63,255,228,0,248,2,67,7,32,11,88,5,247,254,126,0,46,0,244,254,125,0,84,255, +243,253,103,254,189,254,95,254,246,251,238,251,221,252,247,247,44,245,150,248,238,250,253,251,32,252,35,252,239,254,164,255, +177,253,75,255,33,1,212,253,251,251,80,2,155,9,110,11,228,10,204,6,89,1,22,2,238,4,52,6,165,7,93,6, +46,5,28,7,62,8,3,9,45,9,107,7,9,6,129,4,191,2,169,0,99,254,59,255,12,0,49,0,95,3,37,3, +252,0,42,4,6,5,158,1,166,255,112,253,165,251,34,251,138,251,0,253,230,252,225,255,186,4,17,1,254,253,149,2, +120,3,10,2,222,1,112,253,148,251,159,1,28,6,184,4,153,3,27,5,164,4,124,1,200,253,6,251,81,254,160,3, +204,2,207,3,29,8,188,5,74,2,4,3,44,2,63,1,222,0,173,253,4,252,32,254,241,254,76,253,83,251,214,248, +52,247,234,247,216,249,143,254,194,2,139,255,8,253,163,1,129,4,19,4,60,2,66,254,159,252,180,249,178,245,81,251, +219,2,233,3,67,4,61,0,146,252,62,5,186,12,121,8,141,5,169,9,82,11,166,3,213,252,22,4,131,11,155,3, +37,252,19,255,29,1,24,2,83,255,102,237,47,223,185,232,124,244,25,244,177,243,210,244,60,245,161,245,234,243,184,245, +105,249,227,247,3,249,104,253,156,255,27,6,182,11,35,8,195,4,43,4,28,4,82,10,185,14,5,6,85,254,76,4, +3,9,224,3,157,0,150,255,175,253,147,2,138,7,216,3,92,254,82,247,70,244,10,0,251,9,223,5,171,1,232,255, +225,252,217,252,126,254,75,2,51,8,234,10,180,11,34,9,206,3,87,5,214,7,115,3,235,255,212,253,186,253,72,1, +32,255,87,253,139,2,183,255,234,248,181,250,24,253,103,0,178,3,52,252,5,246,52,251,65,255,167,0,198,2,87,0, +88,254,136,3,45,10,227,12,188,9,219,0,18,250,197,248,3,248,170,250,152,0,34,0,7,254,205,2,128,6,54,4, +104,2,69,5,203,5,214,251,112,242,223,242,219,241,37,237,9,237,70,242,101,246,64,239,125,232,108,243,59,253,45,251, +108,248,90,237,55,230,178,253,59,22,218,12,77,0,101,14,43,25,3,13,136,3,126,254,223,248,164,9,219,25,82,8, +99,248,72,252,27,250,238,239,176,231,16,232,217,239,121,240,219,236,183,235,141,234,98,241,75,252,112,2,236,6,99,3, +16,255,23,9,233,17,64,16,110,14,237,12,109,12,174,13,54,12,228,7,172,2,21,1,47,1,254,251,220,249,156,255, +42,3,183,3,36,6,19,9,199,7,140,0,254,250,209,249,40,248,212,248,82,252,7,255,18,2,87,3,140,3,190,6, +72,9,40,11,43,13,97,8,98,0,18,254,30,253,29,250,239,250,142,1,191,8,218,11,100,13,194,17,50,20,124,16, +50,14,118,14,124,9,172,5,44,7,190,0,31,248,85,254,10,6,207,1,2,252,236,246,118,243,219,249,90,255,218,250, +160,250,174,3,198,10,171,9,255,4,20,6,118,8,206,3,8,0,170,253,124,251,63,7,77,22,64,20,198,11,254,3, +75,252,232,252,105,253,242,247,235,244,225,239,14,237,0,245,55,250,70,250,29,251,83,246,92,241,0,240,102,237,171,241, +2,248,66,244,131,238,223,231,19,226,183,233,224,241,26,239,214,238,229,240,36,242,109,247,151,250,209,253,238,3,61,2, +253,253,80,254,57,0,106,10,225,19,45,15,189,13,252,19,14,19,233,17,45,21,247,20,131,20,26,20,246,14,244,10, +159,10,217,6,254,2,161,9,250,17,62,14,206,7,193,6,165,5,224,7,182,11,204,5,11,254,37,0,92,4,188,5, +214,6,129,3,166,0,158,8,196,12,62,0,75,246,151,248,32,250,99,248,194,246,157,246,78,249,111,249,94,249,144,255, +175,2,36,254,233,249,225,248,64,250,46,249,177,243,119,243,254,248,158,251,174,253,56,0,18,254,59,250,134,248,69,248, +88,250,125,251,112,250,161,254,255,4,64,5,95,4,232,2,91,255,123,3,20,10,186,6,173,1,148,1,25,2,128,2, +49,3,183,5,8,8,44,5,154,1,71,1,112,2,21,4,196,3,237,3,177,4,51,255,236,249,183,251,3,255,245,4, +97,10,146,6,92,2,151,4,67,5,214,2,155,1,59,2,131,3,34,3,125,2,181,5,16,8,222,1,100,250,5,251, +148,252,28,251,24,254,154,3,66,3,91,253,184,249,3,252,27,253,93,251,241,252,117,253,30,250,140,249,221,250,98,251, +119,252,32,252,162,250,95,251,206,252,83,250,62,247,54,252,161,2,148,255,109,251,154,251,174,248,57,245,192,246,69,250, +46,254,90,2,222,4,156,4,110,2,78,1,19,2,9,2,146,1,104,3,185,4,76,2,72,0,19,1,137,2,1,4, +244,2,101,0,42,0,127,253,28,249,191,249,213,250,143,250,100,251,239,249,97,249,231,250,187,250,187,253,163,0,12,253, +9,250,220,247,219,245,242,250,139,255,227,253,222,254,4,1,115,255,34,255,186,1,2,5,117,6,111,3,207,0,46,4, +35,8,229,6,101,5,85,8,104,10,161,7,222,5,102,8,111,9,133,6,80,4,175,4,80,4,134,1,163,0,118,4, +30,7,190,4,74,1,60,255,164,254,30,254,160,252,114,254,248,1,78,0,120,254,190,0,125,0,146,253,101,252,186,251, +246,252,193,2,132,5,26,255,187,248,33,247,33,246,75,252,200,5,36,3,19,0,81,7,118,8,125,1,73,253,149,250, +142,249,90,252,100,255,55,255,136,253,72,0,169,4,187,2,140,254,154,254,21,0,155,252,62,245,186,242,0,244,111,243, +202,243,17,244,96,244,205,247,107,248,119,246,137,246,38,245,138,244,136,247,50,251,76,254,157,254,79,255,170,3,211,6, +215,7,252,4,109,1,129,7,215,12,87,8,11,5,98,2,153,254,200,254,109,255,244,1,110,2,49,249,52,244,27,249, +52,253,150,1,101,5,105,4,109,3,218,3,65,3,238,1,199,2,223,5,15,6,45,6,219,8,59,7,112,4,221,4, +142,3,171,3,188,6,151,5,208,1,196,0,142,255,104,250,214,247,84,254,163,4,23,3,81,255,122,252,199,250,228,250, +23,252,57,255,128,2,235,3,183,2,153,252,217,247,46,249,191,250,191,253,222,0,60,253,155,252,177,4,251,8,164,6, +158,3,221,255,3,253,112,254,6,2,64,5,43,8,216,7,43,4,91,2,197,0,55,254,99,255,34,1,4,1,216,0, +124,254,104,255,166,4,81,4,49,3,6,5,224,1,5,254,15,252,62,249,176,251,214,255,253,255,250,1,169,3,61,2, +67,2,135,2,108,2,106,2,161,0,21,1,67,4,162,3,13,0,221,254,143,254,34,252,38,253,90,4,139,8,170,6, +173,3,140,1,172,2,110,2,216,253,120,0,5,7,101,4,228,255,17,254,62,251,54,252,17,0,226,2,99,4,141,1, +11,254,111,253,78,251,105,246,131,241,203,244,30,253,113,247,35,239,236,248,51,1,249,254,176,0,10,254,154,248,237,2, +199,12,177,2,134,248,192,251,16,255,95,0,50,3,174,254,131,246,250,244,53,247,168,253,82,3,30,254,78,251,114,3, +28,10,92,13,132,15,232,15,240,15,215,10,176,4,67,6,114,9,247,9,130,7,122,1,208,254,135,255,11,255,179,254, +53,255,181,4,243,10,70,6,23,254,120,250,119,249,238,253,194,1,58,1,49,3,103,1,221,251,225,252,124,254,49,254, +204,0,19,2,174,2,156,3,171,2,81,4,42,5,111,0,90,252,80,249,203,249,203,3,117,9,23,2,164,252,89,252, +54,251,48,255,115,4,105,1,190,254,81,1,103,0,27,253,123,252,24,251,183,248,5,249,198,249,4,248,204,246,79,248, +182,251,52,1,141,3,123,254,25,251,110,253,9,255,148,0,4,0,222,249,48,248,54,252,226,251,119,251,176,254,71,255, +73,255,233,255,75,254,90,0,172,2,252,251,185,248,76,0,15,5,76,5,80,5,135,2,136,1,164,2,157,2,114,5, +122,7,4,7,24,6,134,253,183,246,30,253,177,2,120,5,89,9,214,2,249,249,133,249,176,247,116,246,152,250,255,252, +100,253,130,253,19,254,125,0,65,0,225,254,201,1,22,6,228,9,214,11,61,10,185,9,40,10,15,7,53,3,7,2, +169,2,48,2,220,255,9,0,94,0,76,252,202,250,125,251,87,249,191,253,1,4,86,253,42,247,117,251,65,253,211,252, +219,0,253,4,189,5,89,3,188,0,100,253,9,250,225,255,26,7,14,3,78,255,148,255,26,254,57,0,98,3,182,6, +0,11,88,5,186,253,70,254,113,253,22,0,80,4,83,250,218,241,94,249,249,255,61,253,251,248,217,248,140,251,107,253, +164,253,179,249,19,246,44,252,253,4,16,7,33,4,79,255,233,252,241,251,201,250,80,255,255,4,107,5,215,5,151,5, +153,2,136,0,130,255,187,255,210,255,155,254,41,255,197,254,83,253,76,255,56,255,42,253,20,0,154,0,233,250,166,249, +135,252,123,251,231,250,68,254,196,253,3,249,218,246,42,246,243,246,42,252,13,255,73,251,231,249,143,255,104,4,106,4, +33,4,29,4,85,3,193,4,105,6,149,5,169,4,35,3,54,2,134,4,160,4,45,1,227,255,54,255,90,254,39,2, +113,4,103,252,5,245,57,249,231,253,236,251,71,250,241,248,5,247,160,249,137,255,135,4,3,7,167,6,153,4,105,1, +56,0,43,3,245,5,212,6,20,5,151,255,144,251,100,250,105,250,3,253,156,253,249,251,112,253,154,253,102,252,70,254, +72,255,73,1,28,5,98,3,92,1,193,3,252,2,211,1,148,3,254,255,81,251,81,0,223,8,98,12,17,11,108,5, +107,0,220,1,177,4,114,5,194,6,13,5,209,0,27,2,90,5,93,3,34,1,254,0,20,254,83,251,46,253,224,255, +182,0,134,255,65,252,124,251,5,254,75,254,46,253,166,253,77,254,144,255,195,0,50,0,13,1,228,4,219,6,70,3, +132,254,48,254,201,0,4,4,24,4,35,252,78,245,80,248,145,253,196,1,5,3,154,251,108,246,141,251,166,255,65,255, +241,254,85,255,26,1,114,0,142,254,222,2,201,5,164,255,82,250,128,251,183,253,206,252,181,249,82,248,63,248,214,247, +206,248,68,248,48,246,13,249,2,254,176,0,66,2,214,254,208,250,96,0,156,6,208,4,242,2,139,3,112,4,188,6, +44,7,96,5,97,4,9,3,226,3,151,7,63,7,249,4,133,7,217,10,72,10,56,7,226,3,154,2,145,2,236,1, +202,2,213,4,244,4,11,3,172,255,40,253,122,254,195,0,65,1,120,1,140,0,176,254,173,255,96,1,112,255,105,254, +4,1,10,0,70,251,160,250,163,253,248,0,62,3,37,1,227,254,127,1,91,3,84,2,7,1,117,254,49,251,187,248, +62,251,108,5,163,12,31,10,192,6,191,7,102,7,46,0,14,250,42,255,35,5,73,3,35,1,16,255,21,253,11,255, +44,255,45,253,161,253,55,254,191,255,57,1,51,255,125,253,55,254,187,0,52,3,136,1,255,254,51,0,14,2,70,0, +196,252,21,0,3,6,162,2,41,255,187,1,41,1,28,1,160,1,102,252,161,249,188,249,150,248,68,252,2,0,39,255, +7,0,165,1,199,1,107,0,90,253,36,254,150,0,124,254,244,253,166,0,34,0,19,254,11,254,107,255,39,1,50,1, +189,255,205,255,226,255,137,253,102,253,78,1,161,2,233,255,106,253,34,252,24,253,129,0,50,2,172,255,101,252,23,253, +145,254,253,250,188,246,172,246,135,247,108,248,139,251,178,255,190,0,197,253,203,253,85,2,156,2,227,254,125,253,90,252, +235,250,240,252,77,0,70,1,219,0,243,0,115,1,194,1,1,2,150,2,226,2,14,1,57,254,18,255,6,3,82,4, +0,3,215,2,141,2,50,0,67,253,172,250,25,251,5,1,145,5,10,3,89,255,79,254,29,254,40,255,98,0,84,0, +83,0,110,0,127,0,34,1,175,1,251,0,112,255,3,255,172,254,9,254,30,0,195,0,15,254,190,0,137,5,161,2, +119,254,192,0,77,4,85,1,138,251,61,253,76,1,173,255,239,254,65,254,245,250,89,253,233,0,236,253,48,252,250,254, +92,1,208,0,12,254,112,253,239,254,250,254,53,255,152,0,111,2,56,5,144,6,43,4,81,1,129,3,139,7,200,4, +8,255,59,254,36,255,187,254,97,254,185,254,28,0,175,255,159,253,209,254,91,0,200,254,69,0,103,6,142,8,209,3, +54,255,170,253,248,252,178,253,128,255,219,1,11,3,149,253,168,247,228,250,3,255,175,254,155,255,91,255,33,253,188,254, +197,2,72,4,209,2,167,1,202,0,163,252,74,249,255,250,171,254,247,4,172,10,20,8,126,3,160,3,101,3,104,2, +206,1,112,254,141,252,10,0,245,2,194,2,220,1,145,255,239,253,49,255,138,254,191,250,122,248,164,248,136,250,104,253, +187,254,148,253,5,252,215,253,145,1,108,0,188,253,166,1,90,7,72,7,183,4,248,5,166,8,212,5,114,0,210,254, +207,253,140,250,5,248,50,249,169,253,105,0,51,1,222,3,52,5,235,3,52,1,71,250,5,245,155,247,61,250,166,248, +91,248,240,251,31,0,82,2,54,5,144,7,204,5,119,5,86,6,195,1,181,253,92,253,198,251,69,253,198,1,11,1, +242,254,177,1,96,4,132,3,99,1,13,255,144,254,223,1,14,4,209,1,71,255,251,252,74,251,86,255,22,5,214,4, +201,2,97,4,160,6,70,6,92,5,157,5,33,3,219,252,236,247,95,245,27,246,75,253,70,4,48,4,191,2,249,2, +252,0,22,254,89,253,53,254,31,254,82,250,69,247,110,251,48,1,116,1,252,254,136,253,99,253,141,252,142,252,21,2, +69,6,233,2,60,0,86,254,238,249,177,250,90,254,239,254,128,255,38,254,76,252,1,254,144,254,133,0,175,4,34,1, +78,252,69,0,75,3,99,0,132,255,99,2,96,5,123,7,79,7,10,5,61,5,200,6,32,6,12,8,16,11,198,8, +97,5,160,2,100,0,253,1,131,2,75,3,88,7,121,2,47,250,45,255,191,6,137,6,166,5,20,5,71,3,11,3, +248,3,27,2,201,253,178,252,24,253,37,252,107,254,156,255,216,252,231,254,89,3,238,2,41,255,135,249,108,246,222,247, +92,249,147,250,178,250,212,250,205,254,173,255,172,252,121,0,207,4,109,255,83,251,245,0,224,5,83,5,227,3,249,252, +80,245,59,252,0,3,133,247,38,238,126,243,212,247,153,247,103,249,120,250,213,250,219,0,82,7,185,3,208,254,82,2, +71,5,136,5,119,6,247,2,28,255,248,255,82,0,127,0,33,1,2,0,218,0,130,4,209,6,53,4,182,254,211,254, +227,2,117,2,123,255,71,252,143,249,163,251,156,254,93,252,156,249,142,251,181,252,246,246,237,242,125,248,212,252,214,249, +1,249,247,253,180,3,52,5,218,1,16,0,128,2,217,3,7,3,80,4,211,5,212,1,249,254,4,6,157,9,126,254, +125,245,244,249,196,254,143,252,196,251,70,0,103,3,137,1,94,255,193,254,239,253,100,255,244,1,63,0,118,254,52,1, +233,2,150,2,192,3,111,3,159,0,157,254,163,254,96,0,201,1,0,3,13,4,250,0,93,254,222,0,126,0,75,253, +0,253,160,253,76,1,35,5,243,2,75,3,180,5,129,0,180,251,86,253,187,1,52,9,237,13,239,12,118,13,72,13, +94,8,8,5,45,6,32,8,196,5,192,253,136,249,115,254,247,0,147,252,236,251,126,254,231,252,56,251,209,251,172,252, +162,254,253,254,144,254,124,1,6,4,224,4,213,6,38,9,168,8,140,1,189,252,83,2,207,3,145,254,200,252,105,247, +149,242,124,247,129,250,58,251,86,253,60,249,137,244,176,242,43,242,141,248,185,252,109,251,215,252,55,245,213,234,108,244, +148,255,63,250,183,245,19,249,139,254,61,4,116,5,234,3,55,4,85,2,128,0,222,5,193,10,107,6,143,2,91,6, +121,8,1,6,179,6,74,9,67,7,104,2,240,254,137,252,182,251,82,254,166,2,128,6,229,7,204,5,208,4,87,5, +209,2,135,1,63,2,36,255,6,255,124,6,50,11,21,9,217,5,11,5,116,4,153,0,27,253,105,252,81,252,241,255, +238,2,40,252,4,246,193,250,52,1,71,3,44,3,127,1,175,0,138,1,180,0,22,254,57,252,215,251,45,252,70,251, +131,249,41,251,221,254,82,254,47,252,102,253,205,253,175,251,209,251,215,254,226,255,212,251,126,248,88,251,158,255,109,3, +226,4,118,252,231,243,204,247,226,252,11,253,163,255,87,3,187,6,144,9,140,8,197,7,175,7,254,3,57,2,169,4, +207,6,251,8,77,9,84,6,234,4,13,5,250,3,80,3,137,2,64,255,97,251,70,250,180,251,1,254,55,0,162,0, +28,1,169,5,127,9,112,6,14,1,28,255,79,0,109,1,14,255,138,251,133,251,235,253,105,0,153,0,170,253,236,253, +54,1,130,254,208,249,209,251,250,254,53,254,189,253,155,255,81,255,215,249,178,247,228,254,184,4,124,4,73,3,29,255, +235,250,101,250,189,248,224,249,117,252,14,247,195,243,221,246,242,245,201,247,88,252,20,247,213,242,66,249,237,253,80,251, +148,249,90,255,168,5,140,2,42,255,104,4,94,10,198,11,97,9,14,7,75,7,131,2,0,252,248,254,141,3,115,5, +85,8,151,2,169,251,5,5,135,13,8,6,23,254,94,252,137,251,0,251,130,250,233,254,133,6,175,5,176,3,42,10, +10,12,208,4,91,253,3,246,30,241,79,242,167,246,47,254,21,5,125,4,39,2,171,2,62,255,226,247,12,245,120,247, +78,249,216,249,2,250,148,246,229,240,156,238,241,239,152,242,239,245,37,250,51,255,241,2,243,4,145,6,160,7,57,10, +239,11,245,5,219,255,58,3,25,7,191,4,57,3,192,4,88,5,90,5,98,6,2,7,205,5,109,2,10,254,54,252, +131,252,46,251,238,251,104,1,152,3,108,0,75,0,150,4,194,6,63,5,114,4,132,5,133,4,90,0,36,254,144,1, +94,5,72,4,158,2,77,3,229,3,183,4,35,5,131,5,54,7,48,5,246,1,228,4,80,7,241,5,232,4,99,1, +41,254,228,254,157,255,86,1,148,1,240,252,141,250,205,250,156,250,4,253,157,255,138,0,73,255,158,250,221,249,178,253, +55,0,31,4,174,4,152,253,48,250,128,252,30,253,192,252,210,252,212,253,228,255,204,255,182,253,167,252,183,252,135,252, +42,253,153,0,147,4,95,6,158,5,64,2,179,255,172,255,25,255,203,253,65,252,177,251,172,253,40,254,231,252,141,253, +209,254,7,1,25,3,188,1,128,255,170,253,250,252,104,255,138,1,194,1,69,1,91,2,92,5,70,1,2,251,12,1, +113,7,241,4,189,2,172,254,178,251,241,255,252,0,55,255,152,0,10,0,230,255,184,0,70,255,169,1,144,4,112,0, +240,251,175,250,84,249,75,250,102,254,77,255,187,252,187,254,119,2,112,254,81,249,223,252,191,2,93,3,174,1,92,1, +219,1,228,3,186,5,3,2,253,253,191,1,19,5,76,0,242,251,223,254,222,1,141,254,109,252,206,255,44,1,52,1, +94,2,13,254,72,250,110,1,58,8,104,3,184,252,72,252,158,252,226,252,229,255,8,0,56,253,22,254,54,0,200,0, +96,1,190,0,165,254,120,252,76,253,52,2,174,4,133,3,8,3,239,1,80,255,101,251,140,249,252,253,87,0,78,253, +34,252,58,248,78,243,177,249,90,2,76,0,175,252,52,0,168,3,91,1,58,254,233,252,83,254,191,5,134,11,224,8, +131,6,211,8,19,9,167,1,51,250,85,0,47,8,54,2,201,252,97,254,203,255,88,5,123,10,123,8,142,4,75,255, +200,252,173,255,8,0,181,0,136,3,70,0,74,251,115,250,53,250,72,249,225,248,209,250,134,251,207,247,80,248,49,253, +119,254,171,1,180,7,202,7,227,4,194,4,15,5,36,3,71,0,188,0,43,3,103,1,152,254,179,0,149,3,29,3, +203,2,222,4,24,6,5,4,7,2,241,3,132,5,133,2,251,0,26,4,245,5,82,5,104,4,53,3,61,4,124,7, +51,9,112,8,207,5,54,4,250,3,239,255,251,251,41,255,122,3,199,3,24,4,131,6,223,7,150,4,141,0,69,1, +200,1,79,254,58,252,42,254,74,0,21,254,157,250,108,252,242,254,106,252,174,249,194,249,61,249,158,245,67,242,126,244, +175,248,6,250,102,250,99,249,112,248,78,250,181,251,132,253,109,0,115,255,182,252,170,250,130,248,136,249,136,251,15,252, +202,253,237,252,43,250,212,251,208,253,230,253,135,254,108,252,42,250,37,253,177,0,87,1,80,2,26,5,25,8,149,8, +85,6,111,4,248,3,152,4,98,6,191,6,129,4,109,2,22,1,196,255,137,254,48,253,99,254,64,2,23,4,86,3, +213,0,45,254,219,254,12,0,74,1,40,5,100,6,42,6,77,6,184,255,25,250,45,253,42,255,129,254,5,254,224,252, +220,252,99,248,213,242,136,247,182,252,41,252,181,252,185,249,5,245,150,247,25,252,87,252,217,249,56,249,140,252,197,253, +218,252,180,0,175,5,153,5,60,4,5,6,175,6,226,2,33,0,36,0,53,0,103,1,112,1,43,255,106,254,229,254, +30,255,162,252,219,248,219,251,253,255,81,253,63,251,49,249,138,246,182,253,222,6,135,5,252,2,210,5,136,6,122,2, +87,0,102,3,231,5,29,4,94,1,126,1,135,3,42,2,180,254,163,255,27,2,225,1,16,2,214,3,25,5,34,4, +29,3,113,6,47,9,174,4,38,255,33,254,214,252,89,250,192,251,196,255,247,1,1,3,74,3,165,2,79,2,182,0, +20,0,65,4,161,5,194,255,49,252,105,254,94,255,10,253,73,251,128,250,250,248,184,248,160,249,41,248,247,246,32,250, +208,252,240,248,32,243,214,242,49,244,151,243,115,246,3,251,197,252,24,254,252,252,208,249,181,249,70,249,12,249,112,254, +181,1,156,252,7,249,97,254,95,3,41,255,192,250,50,253,221,0,141,6,218,12,51,11,58,8,184,10,210,10,134,9, +27,12,87,12,223,7,91,4,174,3,35,4,86,4,73,5,2,8,45,9,236,8,149,12,96,15,246,8,76,1,139,1, +38,4,86,5,89,6,11,4,1,0,177,255,120,0,166,254,96,252,169,251,240,252,232,255,228,3,64,8,71,9,97,5, +202,2,133,3,134,2,188,0,50,0,145,253,65,250,40,250,100,251,57,252,89,252,206,249,1,246,218,244,185,246,160,250, +84,254,80,253,53,251,195,255,154,3,186,253,34,247,9,247,174,248,234,249,68,250,109,249,102,251,178,0,201,4,125,5, +161,4,18,5,194,4,181,0,171,254,234,2,0,6,32,3,207,255,1,0,158,2,153,5,32,7,26,9,172,11,88,9, +100,5,154,6,159,5,251,253,193,249,18,253,192,0,238,255,15,254,146,0,197,5,83,8,227,6,172,3,183,0,227,253, +123,253,201,0,73,2,28,2,214,2,64,255,147,251,30,255,51,2,195,1,29,2,200,0,83,255,222,0,46,0,35,252, +94,250,246,251,6,254,131,255,40,255,138,252,47,253,8,2,175,2,245,253,70,250,1,250,66,252,216,254,26,1,144,2, +181,255,59,251,78,252,115,1,1,3,78,254,102,251,136,255,53,2,248,255,139,254,237,254,126,0,55,0,116,253,1,0, +36,4,84,1,251,254,73,0,39,0,182,0,219,1,143,1,10,1,89,254,185,251,177,253,13,0,137,0,178,2,147,5, +231,5,222,3,29,2,173,1,198,1,203,3,217,4,110,255,19,251,98,254,30,0,104,254,239,254,223,252,118,249,88,253, +190,2,78,1,193,254,139,1,178,3,27,255,50,252,78,0,211,1,177,254,185,254,115,3,145,8,232,7,26,3,169,1, +63,0,91,252,227,250,41,248,215,244,119,250,233,1,66,255,239,252,117,5,124,11,226,5,249,255,55,253,151,249,53,250, +59,253,87,252,155,250,175,248,8,248,188,253,39,2,58,253,31,249,147,254,80,4,186,3,139,2,188,0,151,255,42,5, +126,9,100,10,180,9,10,249,154,234,177,251,143,13,253,10,81,8,230,0,210,247,61,0,208,8,81,7,49,5,1,252, +35,245,50,252,170,1,17,3,236,4,139,0,7,253,103,255,175,0,168,1,174,2,238,3,109,5,146,255,252,247,25,248, +88,249,1,252,188,0,10,255,24,253,190,255,252,254,163,252,17,252,94,251,61,251,94,250,153,249,201,249,114,249,17,252, +210,254,232,253,0,254,134,251,188,247,66,252,175,1,212,2,23,3,180,252,173,246,217,251,6,1,80,0,242,0,131,3, +105,4,199,0,106,252,230,253,139,0,59,0,57,1,72,3,109,4,2,5,97,4,156,5,239,8,240,5,192,254,186,254, +89,1,213,254,25,252,124,249,78,247,6,251,244,254,93,0,11,2,126,253,203,250,19,5,206,10,248,3,74,255,83,255, +94,0,10,1,254,255,223,2,4,7,133,3,65,255,157,0,54,2,11,3,239,4,192,5,153,3,56,255,217,251,187,251, +183,253,183,254,37,253,64,252,246,252,236,250,79,249,187,253,252,0,94,253,228,250,223,253,49,0,239,255,34,1,235,2, +47,2,23,1,83,0,203,252,241,248,247,248,165,251,57,255,100,2,99,3,44,2,234,254,73,252,61,253,17,255,69,1, +214,3,50,1,149,254,211,4,238,8,35,3,140,254,2,255,53,1,54,6,210,7,109,1,127,252,177,253,122,255,222,255, +156,255,134,255,114,1,229,4,24,7,249,4,51,1,249,2,9,6,244,1,141,252,25,252,133,254,215,2,53,6,200,6, +124,7,180,6,158,3,112,2,23,2,75,0,72,255,165,255,204,255,148,254,144,253,12,0,177,3,30,4,154,2,15,0, +83,253,28,255,189,1,219,252,145,247,75,250,127,253,60,253,224,253,156,253,219,251,175,252,212,255,48,3,60,4,234,0, +178,253,204,254,0,0,151,253,29,251,88,251,211,252,212,254,44,0,87,0,97,1,33,1,194,255,237,3,92,7,144,255, +156,247,181,250,196,255,73,0,174,254,165,249,210,246,76,254,128,3,40,252,49,247,143,252,139,2,36,4,129,2,57,2, +102,4,26,2,232,253,232,254,86,1,159,1,157,1,174,4,226,6,234,254,211,246,122,250,121,254,59,254,3,255,163,255, +118,1,12,0,70,250,160,251,56,0,68,1,2,3,21,1,213,254,255,3,221,6,86,5,133,4,131,0,231,252,200,253, +202,254,117,255,112,0,171,1,238,1,173,254,94,253,254,0,180,3,22,6,40,8,249,3,97,254,77,255,28,1,166,253, +64,250,255,251,117,255,101,0,69,254,137,249,197,245,241,247,168,251,151,250,63,251,21,1,157,4,76,6,207,6,200,1, +95,254,175,255,144,255,218,1,211,4,3,1,247,252,32,252,201,252,88,2,21,7,236,5,118,5,122,6,41,5,251,2, +206,1,1,1,211,254,73,252,60,252,43,254,20,0,32,1,51,2,219,3,134,5,26,8,198,7,129,1,204,253,102,254, +14,253,190,253,146,0,223,255,208,254,244,253,2,252,28,252,168,251,57,250,172,251,221,253,114,0,212,2,201,1,128,1, +106,1,25,252,66,249,82,253,102,0,249,0,49,0,146,253,174,252,16,252,221,249,152,251,104,255,44,255,210,253,229,253, +150,253,56,253,139,253,251,254,246,0,89,1,251,1,224,5,165,8,208,5,237,1,119,0,246,255,18,2,187,4,51,3, +228,1,104,2,99,2,132,6,13,10,126,4,92,255,116,1,6,4,45,4,227,3,123,5,64,7,246,4,200,1,58,0, +140,254,115,254,182,255,223,1,209,3,38,0,107,252,39,0,135,3,104,3,54,4,74,4,83,4,243,4,87,3,242,2, +41,5,67,4,168,0,141,255,168,255,14,253,211,249,19,249,118,250,94,253,186,253,51,249,24,247,141,249,13,252,119,0, +55,3,29,254,85,249,11,250,84,251,172,252,107,252,143,250,205,251,18,251,133,247,207,250,172,255,199,253,102,251,248,252, +151,2,11,8,67,5,179,255,111,255,246,255,191,254,40,253,249,252,4,1,38,5,5,6,81,7,180,9,244,9,102,4, +33,253,124,254,99,4,3,5,249,3,128,4,136,2,188,253,230,251,200,255,0,3,190,2,24,3,5,3,156,0,138,252, +137,249,142,251,194,253,74,254,1,2,230,1,155,253,158,254,124,255,199,254,78,1,146,0,246,254,214,1,135,2,140,0, +154,254,42,253,224,254,162,255,78,253,159,252,132,253,157,255,123,0,49,251,129,246,208,249,146,254,192,254,38,255,109,4, +175,9,85,8,78,2,90,255,38,1,48,255,138,250,210,254,182,4,219,0,148,252,222,251,232,249,65,250,69,253,226,255, +225,255,39,250,118,246,239,250,8,254,194,252,95,253,130,255,106,0,32,255,115,253,70,255,170,1,96,0,250,255,223,2, +173,3,70,1,205,254,193,252,140,252,109,254,93,255,254,255,176,255,90,251,79,249,178,255,181,6,14,6,19,2,66,2, +254,2,113,254,109,250,89,250,84,251,81,1,167,9,168,9,208,4,87,2,175,255,190,253,182,255,187,1,158,2,229,6, +13,10,57,5,105,1,185,4,243,6,177,7,4,7,37,255,205,250,6,2,176,6,235,2,200,255,193,0,120,1,88,253, +235,248,162,251,110,0,64,255,106,251,56,252,232,255,7,0,82,255,248,1,147,3,64,2,96,255,110,251,239,250,252,254, +201,1,211,0,75,255,100,0,7,2,102,1,95,0,48,0,244,0,80,1,109,254,59,251,119,250,162,250,200,250,18,248, +124,246,149,251,222,254,126,254,143,255,248,252,18,250,180,251,70,251,15,251,98,253,189,254,73,1,175,1,157,0,101,5, +13,9,212,7,19,6,103,0,76,251,112,253,244,0,212,2,157,3,76,3,253,3,167,2,26,254,107,252,162,253,246,253, +166,255,142,2,135,1,146,255,87,0,165,253,120,250,15,254,19,1,72,1,106,2,70,0,125,253,237,252,25,251,187,251, +166,252,81,249,198,249,101,253,14,254,24,1,101,5,71,4,220,2,206,5,73,7,50,5,214,3,179,1,7,255,197,1, +21,5,209,2,254,255,184,253,107,250,130,248,207,247,169,248,171,250,187,250,100,250,130,251,254,251,118,251,195,251,120,253, +11,0,172,4,222,9,129,11,169,10,171,7,161,3,147,4,11,6,192,2,153,0,48,255,47,254,249,0,175,1,179,0, +135,3,8,5,120,3,107,2,114,0,200,252,85,251,79,254,193,0,25,1,148,1,199,253,111,250,8,255,207,2,221,3, +150,4,12,0,232,253,236,1,53,3,35,2,154,0,154,0,54,3,229,1,152,255,171,254,75,251,229,251,35,254,137,252, +66,252,63,249,193,246,84,252,206,255,78,3,1,9,60,2,35,248,23,249,100,253,190,2,120,7,225,4,105,1,91,5, +221,10,27,8,54,2,26,2,40,2,168,2,81,6,91,1,130,250,179,2,6,12,233,8,209,3,177,1,44,0,94,1, +199,1,77,252,111,247,104,249,3,253,48,254,40,0,199,4,253,6,11,2,186,252,140,252,33,252,59,252,137,255,85,1, +155,0,179,253,232,251,208,0,221,4,239,2,178,1,245,0,150,254,177,251,242,249,229,252,251,255,182,255,100,255,225,250, +228,245,42,249,140,252,217,252,142,254,141,253,167,252,244,255,124,2,154,4,49,6,235,3,83,1,99,0,35,255,205,253, +6,253,56,254,22,1,142,2,108,3,225,4,3,4,211,1,172,1,166,0,227,254,85,2,183,5,171,255,30,247,185,245, +189,247,141,248,149,250,202,254,83,2,230,3,87,4,159,3,251,1,44,2,226,2,26,253,81,247,54,255,131,8,161,4, +0,1,230,2,54,2,87,3,246,6,156,9,80,11,163,6,254,0,76,1,243,255,184,0,136,5,191,2,207,255,192,4, +40,8,119,10,183,14,70,16,153,14,122,11,57,13,92,23,106,29,28,23,152,13,108,7,20,3,231,0,89,251,101,235, +70,221,248,218,252,216,38,211,19,206,153,201,246,201,160,205,5,207,251,209,60,214,241,218,233,225,8,231,89,237,21,247, +212,255,116,12,171,27,196,38,92,47,116,49,120,47,194,49,238,48,61,43,91,37,34,28,229,20,167,17,90,12,70,8, +169,2,182,246,188,237,165,234,231,231,64,231,9,235,183,238,169,238,231,239,69,244,236,244,172,243,38,248,121,1,49,10, +236,15,101,23,116,31,32,29,5,23,2,27,56,33,43,34,177,32,172,25,44,16,128,12,96,9,207,1,255,252,0,253, +237,251,173,250,94,252,29,252,35,248,31,246,61,244,119,238,45,236,72,240,78,243,164,244,123,246,202,247,144,248,139,245, +36,244,120,254,251,7,154,6,8,5,32,4,53,3,127,7,227,9,223,8,96,10,106,11,21,10,171,5,4,1,11,1, +239,255,127,254,68,0,149,253,96,251,139,253,210,250,107,248,38,249,125,245,168,242,194,243,142,244,37,245,142,244,109,241, +168,237,167,240,111,250,238,253,30,254,99,2,68,2,169,0,19,0,93,250,48,248,234,249,103,249,79,253,66,1,170,0, +101,255,17,250,176,245,110,246,59,249,199,2,217,9,158,5,52,2,92,255,177,251,97,0,24,5,20,2,1,254,41,252, +171,251,186,249,179,249,2,0,191,4,232,5,113,6,52,2,119,253,33,253,105,254,251,0,100,0,235,251,202,250,94,250, +71,247,183,244,134,243,201,246,55,253,125,255,132,255,172,0,247,255,208,253,117,253,38,1,177,6,161,7,231,6,34,11, +120,13,54,9,231,5,91,5,23,4,14,2,76,0,42,2,127,5,11,3,92,253,86,248,39,246,46,252,100,2,15,1, +22,1,127,1,34,254,4,255,130,0,40,251,32,247,17,251,202,0,212,255,72,253,139,1,126,4,192,2,11,4,235,4, +180,2,169,1,97,3,157,10,216,16,200,13,140,9,174,7,129,5,136,7,138,9,44,6,170,4,15,7,133,8,7,8, +45,6,173,3,226,1,3,3,116,5,175,3,8,0,107,254,39,251,100,248,42,250,29,250,240,247,180,251,244,1,135,2, +34,255,229,251,14,251,198,253,24,0,99,255,244,254,159,255,108,0,50,2,224,3,254,4,63,6,141,5,211,2,181,1, +151,3,87,6,79,7,199,6,20,6,79,3,225,255,145,1,30,5,156,3,141,0,113,254,114,251,92,252,108,255,238,252, +98,251,0,255,194,1,120,6,88,11,170,8,188,4,151,1,33,252,241,252,144,0,1,253,247,251,214,0,128,1,100,255, +174,254,230,253,94,254,194,0,151,2,115,0,253,251,173,252,146,0,30,1,168,1,122,2,224,0,116,1,80,2,175,254, +115,252,6,254,201,254,110,254,134,255,155,2,216,2,156,253,3,249,85,246,74,244,201,246,199,249,200,248,63,247,190,243, +220,240,20,245,14,250,152,251,136,254,166,2,191,4,241,2,223,0,29,4,120,7,108,6,145,4,35,3,191,2,234,0, +246,252,23,255,163,2,131,254,182,251,165,251,200,248,184,251,153,1,226,252,121,245,144,247,228,250,95,247,155,246,151,253, +127,1,167,0,163,1,72,1,189,0,253,4,220,7,54,7,247,7,55,8,94,7,27,8,49,6,253,254,25,250,232,251, +79,253,217,250,103,248,209,244,61,241,199,242,121,245,57,248,85,253,183,251,80,245,63,248,129,254,216,254,162,255,58,2, +55,3,208,2,76,2,33,5,24,7,110,2,247,254,86,0,25,2,26,5,30,7,194,5,199,3,221,0,86,255,107,1, +168,2,120,1,89,255,25,255,181,255,3,250,215,245,66,253,103,3,44,2,177,1,159,1,103,2,244,3,85,2,160,1, +254,1,154,0,100,2,205,4,71,3,36,2,99,0,86,252,70,251,204,253,146,0,25,2,25,1,112,254,183,250,35,244, +90,239,63,243,82,250,87,254,172,2,136,5,230,4,85,6,168,7,46,5,215,2,14,1,161,0,39,3,166,4,113,5, +73,8,184,11,145,13,7,11,133,6,130,3,170,255,191,254,243,0,15,253,21,249,136,253,235,0,3,254,45,251,73,252, +116,254,214,252,186,250,167,251,93,252,234,254,174,2,185,1,125,0,96,1,223,0,200,2,38,6,226,6,41,7,218,3, +69,254,18,255,51,1,167,254,83,252,237,250,127,250,206,252,76,254,143,253,195,252,103,253,185,255,239,0,230,0,170,1, +214,1,239,1,132,3,67,6,141,9,132,9,164,5,159,3,189,3,76,2,32,1,149,4,203,7,179,2,154,253,121,255, +149,255,220,255,205,3,175,2,89,255,198,253,45,251,100,253,253,1,15,2,132,1,250,255,95,254,184,255,245,0,166,5, +31,10,237,4,252,255,117,0,100,0,53,3,81,6,46,5,3,4,3,2,176,1,89,6,31,7,145,2,127,255,70,252, +236,249,32,253,20,0,6,254,158,251,120,248,117,245,105,249,2,252,253,245,197,244,19,251,42,254,111,253,223,252,238,255, +0,4,179,3,196,2,48,0,99,253,164,3,116,8,254,5,130,5,212,253,173,245,99,1,246,13,225,13,2,13,36,6, +179,254,140,5,45,11,216,6,221,3,52,255,50,248,60,248,21,251,91,251,55,252,236,250,132,247,14,249,0,252,216,249, +18,248,190,250,179,252,155,251,5,251,211,251,9,253,181,0,92,4,37,3,197,0,9,255,181,252,187,255,120,5,129,4, +110,1,149,1,119,1,198,0,139,1,203,3,84,4,175,0,130,253,16,253,116,252,173,252,214,254,91,1,237,1,153,255, +11,254,28,253,97,250,18,251,253,254,114,255,186,253,247,251,158,250,74,252,132,253,102,250,245,246,197,246,98,248,73,249, +109,249,108,249,94,249,195,251,124,255,67,0,41,0,133,255,218,252,190,253,199,1,200,3,44,5,57,4,47,2,172,6, +138,11,225,7,56,2,121,1,190,4,154,8,125,10,180,10,240,7,255,1,249,254,44,1,102,2,223,254,115,251,87,252, +73,254,84,255,219,254,124,251,26,251,106,254,196,253,19,253,73,254,68,250,237,247,2,253,139,255,251,253,180,254,183,0, +209,1,161,2,184,2,100,1,121,0,244,0,67,0,201,254,246,254,91,255,21,255,138,254,166,253,179,253,169,253,66,251, +132,249,167,252,189,0,127,255,45,254,207,1,149,2,48,0,183,0,215,253,218,248,129,253,194,4,100,3,71,1,69,3, +114,1,203,252,5,253,239,254,133,254,215,255,211,1,73,0,240,254,95,1,133,3,130,1,99,255,170,1,89,4,193,3, +44,2,19,1,180,0,169,0,42,0,43,1,113,2,65,254,42,248,210,249,11,254,99,251,5,249,195,250,200,250,251,252, +43,0,104,254,191,253,19,252,127,248,230,253,239,3,111,3,168,4,2,2,229,253,207,2,47,8,202,11,245,13,61,8, +69,3,141,1,25,0,249,5,171,9,35,5,69,2,103,252,115,247,162,254,104,7,137,13,186,17,143,12,233,5,66,3, +16,255,95,255,128,4,240,4,166,1,47,255,250,253,200,252,13,254,239,4,203,7,227,0,34,250,2,245,205,239,180,241, +211,246,144,245,152,242,186,245,43,251,117,251,155,249,193,250,53,251,95,251,35,254,66,255,127,255,166,0,155,255,231,0, +225,5,181,7,196,7,3,8,85,7,83,9,14,11,157,6,59,1,5,1,251,1,15,254,148,249,47,250,130,249,105,246, +201,246,239,245,145,244,112,249,148,252,168,249,82,248,35,250,150,253,45,1,120,3,127,6,224,7,97,6,165,6,255,6, +87,6,54,8,45,10,72,10,215,9,30,9,206,8,201,6,20,5,155,8,238,10,61,9,44,8,144,3,169,254,80,1, +104,3,182,1,218,1,154,1,85,0,227,254,42,253,60,254,33,0,117,1,204,0,180,248,198,242,129,247,150,252,206,255, +167,1,18,253,249,249,99,252,161,255,130,5,247,8,164,4,18,255,247,251,195,251,46,254,171,0,236,2,42,3,146,0, +147,252,233,246,84,244,247,247,23,252,123,252,9,251,161,253,231,0,115,251,200,246,146,250,121,252,130,252,59,251,81,242, +97,235,103,237,109,243,180,254,66,10,194,11,104,9,97,12,163,15,41,16,71,14,93,1,57,246,192,5,78,20,229,2, +99,241,56,244,139,249,243,254,189,4,209,5,160,7,191,10,46,10,4,4,135,253,193,255,233,4,61,6,251,4,82,250, +158,237,71,238,217,240,86,237,76,237,95,239,179,241,176,247,210,252,49,255,117,1,245,0,29,253,39,252,162,255,219,1, +60,1,146,0,81,1,188,3,221,3,145,0,73,0,61,2,215,2,72,6,119,10,199,9,85,8,173,9,231,10,253,9, +184,9,108,13,130,15,227,9,139,3,10,3,101,3,41,0,122,252,123,252,85,254,102,254,215,253,12,253,215,251,5,253, +86,253,89,249,230,246,135,247,44,248,24,250,207,251,48,252,102,253,254,253,37,254,193,254,84,254,9,255,52,255,179,251, +75,250,152,251,57,252,12,1,21,7,92,5,112,2,65,6,198,8,34,5,186,2,252,2,43,3,94,6,102,9,95,6, +52,1,100,253,29,251,248,249,59,248,188,249,7,254,34,253,172,250,25,253,161,0,144,2,129,3,85,4,92,4,124,2, +201,1,246,0,23,254,18,254,10,255,139,255,58,2,158,0,170,252,90,253,166,252,91,252,188,254,169,251,91,249,101,252, +55,254,44,2,53,4,220,253,27,250,71,250,88,250,91,0,79,5,131,2,197,255,135,252,79,249,111,253,100,3,189,4, +197,3,123,1,112,255,15,254,92,252,172,252,221,253,61,253,11,253,68,255,20,1,171,253,69,250,215,254,120,1,159,253, +127,255,181,3,22,3,63,4,185,5,43,5,3,6,247,4,38,4,119,6,189,6,31,7,180,6,119,255,253,249,163,251, +160,252,16,252,65,253,184,255,125,0,110,252,107,250,196,0,135,4,189,255,129,253,10,1,120,3,150,4,111,6,127,7, +225,5,52,1,39,254,210,0,216,3,192,1,101,255,14,3,166,6,148,1,26,252,213,254,252,0,178,253,163,251,207,254, +14,5,126,6,170,2,156,3,150,6,252,2,234,254,170,0,233,2,184,0,76,255,135,2,5,4,166,4,147,8,153,8, +82,7,106,11,95,12,152,9,153,6,224,253,159,247,190,251,23,255,88,254,44,254,114,251,23,248,117,249,95,251,215,250, +24,252,208,254,179,0,230,3,59,4,196,253,71,251,150,1,247,5,152,5,217,4,231,2,228,1,72,4,200,4,164,1, +43,0,203,1,67,3,51,2,150,255,249,252,208,248,235,245,253,248,104,251,142,250,231,254,185,3,109,0,57,252,144,251, +99,251,89,253,241,0,186,1,112,255,172,252,36,250,223,247,185,247,175,249,62,251,250,251,216,252,73,255,230,1,55,0, +252,252,227,252,147,253,222,254,123,1,226,2,86,3,229,2,97,1,41,0,63,254,68,253,161,255,18,2,183,2,15,2, +9,0,226,253,107,252,148,253,102,0,106,254,197,250,254,253,208,2,0,3,49,2,206,255,143,252,18,0,58,5,214,2, +149,255,255,254,31,253,133,253,57,254,46,250,81,248,171,251,34,255,203,0,203,0,166,1,176,2,24,0,66,254,55,0, +166,2,72,5,31,5,140,0,193,254,138,0,0,0,125,254,22,254,235,251,91,250,242,253,212,1,49,2,136,2,172,1, +96,255,199,255,183,0,244,0,222,0,7,253,255,249,138,251,211,250,149,248,117,249,42,249,5,247,123,248,67,253,74,0, +136,0,19,1,173,1,253,255,232,253,170,254,121,1,174,3,244,5,34,8,208,6,96,4,115,4,76,4,37,3,129,0, +37,252,113,252,118,0,122,0,12,255,178,0,181,2,150,0,142,251,19,252,33,0,131,254,38,254,164,3,219,5,202,5, +177,5,78,0,254,251,61,254,157,254,181,251,119,251,119,252,45,253,40,255,192,255,6,255,169,1,201,4,7,5,224,6, +50,8,230,3,90,255,187,254,107,0,28,2,80,1,132,1,4,2,10,252,10,248,95,251,205,251,58,252,193,255,81,254, +215,253,34,2,169,3,147,5,188,8,93,7,181,4,203,4,100,6,35,5,221,0,113,0,116,0,224,251,76,250,2,252, +17,253,49,0,158,3,164,5,179,6,126,6,165,6,170,3,141,255,5,3,158,7,36,7,122,5,199,0,38,252,171,252, +38,254,77,0,64,2,161,1,62,2,20,1,155,253,82,0,15,3,133,254,30,253,212,1,134,3,129,1,186,255,172,253, +20,251,241,249,247,250,126,251,92,249,11,248,5,250,221,251,226,252,215,253,178,252,97,251,112,252,25,255,111,1,189,254, +83,250,189,252,169,255,148,252,108,250,104,252,115,0,1,4,91,3,23,0,166,253,176,252,70,252,210,249,119,248,58,253, +52,3,103,4,200,2,13,2,74,2,77,2,150,2,62,2,127,1,177,2,3,3,189,1,42,2,213,1,95,1,187,3, +138,4,16,3,34,2,86,1,125,0,55,254,103,253,0,2,75,5,103,4,141,4,36,5,66,5,158,5,189,4,208,2, +224,255,201,253,128,254,168,253,45,251,63,252,112,255,24,2,103,4,24,5,145,3,202,0,80,254,6,253,165,251,236,249, +73,249,170,249,153,250,160,253,58,3,45,7,102,6,122,3,249,0,51,0,140,0,49,254,236,251,206,254,152,0,18,254, +79,253,67,253,253,252,247,0,23,5,121,5,19,5,182,2,34,0,84,1,87,1,80,254,164,251,12,249,41,249,43,253, +101,0,147,1,96,0,215,253,174,253,133,253,222,252,100,255,192,1,218,2,20,4,41,1,113,254,150,2,157,5,122,2, +82,255,105,255,113,1,77,1,26,254,47,255,36,4,207,4,204,3,148,4,20,3,55,1,233,1,254,1,179,255,136,250, +81,246,171,248,131,251,197,249,150,250,206,254,225,255,21,255,193,2,5,11,170,15,249,12,209,7,75,1,78,251,227,251, +44,255,177,255,253,0,19,3,40,3,42,2,8,0,36,254,242,253,235,252,188,251,61,252,184,253,127,1,119,4,247,1, +130,255,60,0,246,254,26,251,65,248,149,249,106,253,181,253,170,252,106,253,61,253,213,255,191,3,196,0,228,253,58,2, +203,5,147,3,238,255,181,255,41,1,9,2,81,4,219,3,102,1,58,5,60,8,125,5,45,5,89,5,121,4,208,5, +189,5,80,5,88,5,95,3,254,1,223,254,28,251,183,252,221,253,44,252,48,252,34,253,235,254,248,253,244,249,141,250, +142,252,93,253,85,1,41,3,190,2,4,6,161,7,107,3,231,254,249,255,201,0,243,247,99,242,5,252,36,4,200,0, +129,251,80,248,39,246,175,245,186,247,213,251,167,255,252,2,60,5,156,4,185,2,1,1,106,0,141,1,17,2,82,1, +129,255,16,253,196,251,77,249,220,246,109,249,42,252,207,251,31,253,104,254,26,254,31,1,48,5,114,3,160,255,219,0, +251,1,11,253,193,248,210,249,162,252,115,254,205,253,57,252,57,252,212,251,19,251,22,252,143,253,213,254,151,0,205,2, +139,4,185,4,161,4,200,4,60,4,152,3,170,2,100,2,26,3,61,1,178,254,181,254,91,254,193,253,70,253,162,251, +25,251,195,250,233,252,61,5,32,9,186,4,100,2,15,2,10,2,34,4,27,3,169,255,148,253,71,251,131,250,187,249, +242,247,78,251,164,254,156,251,213,250,216,253,25,253,5,250,23,250,54,254,17,3,228,4,2,3,175,254,163,251,77,253, +71,0,74,255,3,254,255,2,218,6,56,1,51,253,145,0,71,1,10,1,119,3,129,2,180,1,108,3,85,2,68,2, +42,4,38,3,130,2,188,2,4,2,152,4,231,7,80,6,167,2,88,255,67,252,80,251,73,252,175,252,179,252,59,254, +202,255,135,255,24,0,167,1,206,1,129,2,246,2,211,0,139,0,226,2,18,3,45,1,227,254,209,252,94,250,68,247, +98,248,187,252,211,252,209,249,48,247,128,247,91,251,207,249,14,247,224,0,46,11,0,9,252,3,27,1,179,253,152,250, +182,250,143,254,94,2,167,9,254,15,124,4,166,245,133,247,202,249,22,247,0,250,178,254,151,2,141,1,45,253,226,2, +114,8,240,1,2,253,74,253,246,252,90,252,107,252,152,1,217,6,184,3,100,255,40,255,238,1,253,4,217,4,210,8, +153,12,202,1,12,248,100,253,247,3,225,7,62,11,3,9,155,5,141,3,57,0,185,1,57,5,239,254,12,248,31,253, +223,2,106,3,68,3,47,251,235,243,190,253,35,6,231,0,157,254,41,0,160,255,201,1,119,4,101,5,182,6,35,7, +8,5,72,0,156,254,70,2,135,3,135,3,153,4,223,0,71,254,118,1,15,2,191,0,110,1,93,1,61,1,84,1, +17,1,34,2,137,3,204,5,45,8,142,5,187,1,91,3,124,4,198,255,95,251,175,251,111,253,79,254,14,254,48,252, +225,251,223,254,51,0,2,255,187,254,115,253,177,251,89,253,212,253,43,249,51,246,97,249,143,253,54,254,167,253,39,255, +5,1,38,0,176,252,252,248,22,247,223,246,129,248,121,253,162,2,192,3,141,4,241,8,142,11,72,7,121,2,82,4, +213,6,122,4,249,2,78,3,229,1,229,1,46,4,92,5,107,4,118,1,170,254,112,253,172,254,9,5,12,9,98,2, +133,251,99,253,57,0,32,254,20,252,92,255,59,1,210,250,125,247,247,254,5,5,240,1,24,253,97,253,133,254,127,251, +247,250,94,255,72,3,166,8,86,11,177,4,108,255,42,0,217,255,182,1,131,5,54,4,207,1,244,1,220,0,11,0, +206,1,226,1,220,255,224,255,6,0,12,254,207,250,54,245,19,243,170,249,1,0,78,1,95,0,235,252,233,250,162,250, +33,248,77,248,251,250,166,251,173,253,3,0,91,0,163,1,42,3,127,3,200,1,81,255,136,255,232,254,116,252,33,252, +33,253,170,0,29,3,154,255,192,253,142,251,12,246,225,250,134,4,28,4,101,1,89,1,199,255,152,251,42,247,43,252, +212,4,246,255,20,248,174,250,71,254,83,255,144,255,142,249,197,242,57,246,139,252,147,251,231,250,249,252,248,252,102,3, +69,10,102,1,49,251,92,6,251,14,61,13,224,7,18,0,202,251,59,252,92,252,221,253,161,255,7,255,49,0,172,3, +169,4,136,3,222,2,99,254,223,247,249,250,202,1,219,255,20,254,85,0,232,254,178,254,32,1,239,255,30,253,208,249, +206,248,74,255,159,4,200,0,8,252,239,253,75,1,103,255,214,253,45,2,200,6,92,10,122,11,235,3,0,253,112,254, +251,254,152,254,166,1,63,4,122,5,140,3,225,0,244,3,148,4,79,255,131,254,79,0,45,0,46,0,8,254,165,252, +224,255,135,2,126,2,42,1,189,255,251,255,215,0,154,2,185,3,71,1,251,1,182,7,214,8,205,4,239,0,190,252, +242,249,44,253,243,0,123,251,106,246,89,254,160,6,176,6,252,4,128,255,102,250,152,251,122,251,138,253,127,3,8,1, +35,252,159,253,184,254,10,0,106,4,182,9,151,12,173,6,176,255,221,2,16,6,138,2,105,0,216,1,143,4,237,6, +216,5,207,1,196,255,64,1,106,1,210,255,87,1,123,4,54,6,101,5,37,0,169,251,48,252,158,252,99,252,89,255, +111,3,50,5,220,5,215,7,177,9,45,11,202,12,244,10,58,9,162,11,217,10,233,6,78,3,55,252,63,246,194,243, +193,240,203,242,92,247,26,245,62,239,192,232,166,227,75,226,92,224,169,224,66,228,57,227,12,228,229,236,122,242,139,241, +54,242,20,246,151,249,175,253,252,3,186,5,15,3,53,7,152,14,212,15,182,14,130,14,122,16,142,21,112,25,163,27, +26,28,19,25,220,21,11,17,105,10,225,8,63,9,94,7,145,6,67,4,247,1,186,3,40,2,210,252,230,251,189,253, +131,255,215,2,166,5,114,4,225,0,40,1,150,3,249,255,230,251,182,255,150,3,122,2,59,2,209,3,168,4,245,4, +215,4,215,3,102,2,34,2,141,2,184,0,197,252,255,248,49,246,140,244,52,244,178,245,32,248,244,248,179,248,48,249, +103,249,14,248,72,247,151,250,13,255,241,255,151,255,199,253,145,250,238,252,123,0,91,254,121,254,219,0,9,255,128,253, +118,254,40,1,104,3,8,255,31,251,184,254,232,0,11,1,145,1,237,252,199,248,15,250,2,250,63,249,117,251,76,254, +215,255,146,255,4,0,217,2,117,4,31,4,20,3,164,0,53,255,89,0,137,1,201,1,79,0,211,252,140,252,3,0, +162,254,55,250,70,251,193,252,21,252,92,255,35,1,215,253,137,252,235,252,199,253,48,255,18,253,189,252,108,0,68,254, +202,250,128,255,44,4,249,1,171,253,123,251,7,252,192,253,231,254,62,255,138,255,186,0,73,1,87,255,172,253,163,255, +193,1,206,255,164,254,7,1,97,1,24,1,12,3,187,1,130,255,50,3,201,7,162,6,206,2,113,3,126,6,16,4, +59,1,183,4,60,8,51,8,159,5,210,2,77,4,226,4,39,2,156,4,139,8,199,6,144,3,123,1,59,1,37,1, +77,254,47,254,231,0,19,0,146,254,66,254,37,253,187,253,51,0,196,1,227,0,92,255,124,0,70,1,180,0,172,2, +39,4,157,3,161,3,148,2,59,2,177,3,56,4,230,5,88,6,117,2,59,0,240,254,213,251,18,253,5,1,248,0, +59,255,16,255,0,254,17,250,87,248,14,252,130,254,113,254,101,255,215,253,115,252,98,255,142,0,176,0,253,1,87,254, +13,249,7,248,242,248,108,251,21,254,112,0,160,3,233,1,26,254,35,0,191,1,167,1,225,3,206,2,146,1,234,3, +200,2,139,2,186,5,245,2,95,255,31,2,228,2,203,254,156,252,107,254,123,255,77,253,206,251,226,251,6,252,112,253, +204,253,143,252,193,252,207,252,85,253,122,255,69,1,126,5,130,9,191,6,111,2,128,0,241,255,82,3,122,6,231,5, +91,5,194,2,9,255,249,255,244,0,68,254,61,252,26,252,4,253,90,253,220,251,106,251,228,251,220,250,0,251,232,253, +206,255,0,254,249,252,228,1,175,5,253,0,112,251,200,250,87,251,130,252,154,253,168,252,21,251,252,248,81,248,25,252, +148,255,169,255,3,0,179,0,92,0,130,0,251,1,39,4,16,4,127,0,22,254,108,254,160,254,77,0,9,4,215,4, +1,3,92,2,73,1,101,0,254,1,79,2,81,1,215,1,206,0,24,255,179,255,150,0,131,1,174,0,213,254,27,3, +104,8,228,6,253,2,97,253,241,248,117,252,117,0,61,0,130,0,98,255,237,252,11,251,41,250,1,254,100,1,207,255, +116,0,52,2,111,1,135,1,215,1,113,2,235,0,106,251,233,251,170,255,172,252,116,252,105,0,147,255,63,255,239,255, +206,253,19,254,1,0,10,2,19,5,2,4,137,1,204,2,76,3,56,3,204,3,209,0,239,252,16,252,240,251,194,251, +196,252,166,255,254,2,203,3,198,3,48,5,191,3,49,254,69,251,126,254,190,3,254,5,201,4,243,3,35,4,123,1, +49,254,248,254,109,0,45,255,245,252,155,251,152,251,71,250,198,249,146,0,118,6,186,2,149,255,155,1,199,2,0,4, +30,3,166,252,155,248,148,251,220,254,14,254,91,252,34,254,69,1,246,255,32,252,140,252,104,255,215,254,171,253,201,255, +138,1,170,0,106,0,225,2,180,4,128,2,166,0,130,2,99,4,57,5,128,4,44,1,195,253,3,250,77,248,203,251, +7,254,130,255,117,3,233,1,148,253,174,252,3,251,56,253,180,3,138,4,181,1,218,253,77,250,222,252,77,255,154,253, +200,253,227,252,112,250,220,250,234,251,196,254,5,2,100,255,100,252,11,254,134,254,216,253,194,0,86,4,238,4,28,6, +32,9,179,8,12,5,25,4,35,5,69,3,47,1,73,4,157,7,211,5,126,3,185,0,47,252,189,252,78,0,164,255, +224,254,178,0,1,2,154,2,192,2,34,3,205,3,84,3,143,2,67,1,235,254,29,254,120,0,237,4,180,7,245,6, +224,5,64,4,65,1,203,255,214,254,139,254,241,0,183,1,50,0,129,255,4,254,14,253,163,252,26,249,3,248,196,252, +128,255,73,254,253,253,25,0,102,2,34,1,50,255,234,1,239,3,234,0,193,253,191,252,113,253,68,255,240,255,168,255, +210,255,230,0,87,1,105,253,48,249,204,250,93,253,236,253,136,255,99,1,144,3,223,6,210,8,72,7,253,2,53,1, +10,3,83,2,177,255,57,255,240,255,50,0,0,255,115,255,54,1,111,253,23,251,145,1,95,6,233,5,225,4,162,3, +149,3,11,1,82,252,228,253,24,0,25,253,124,251,215,249,177,246,137,247,3,249,236,245,242,241,233,241,164,245,174,250, +93,255,87,1,236,0,156,0,224,254,136,252,115,252,171,252,177,252,22,253,234,253,20,0,111,0,183,255,103,1,215,1, +32,2,227,4,161,6,240,8,21,10,46,6,139,3,112,2,155,254,123,251,221,250,109,253,64,0,174,253,241,250,232,251, +189,252,222,252,46,251,84,250,169,253,127,255,188,255,204,0,116,255,66,255,205,0,144,254,54,252,143,253,226,0,221,4, +247,6,134,6,83,6,126,9,0,12,202,5,31,0,56,5,242,8,141,6,199,4,161,0,92,252,90,252,165,251,153,250, +102,250,4,249,207,249,118,252,255,253,48,0,59,2,118,2,212,1,64,0,67,255,30,1,109,2,33,255,168,252,5,0, +166,1,161,253,182,250,147,250,37,251,143,251,43,251,112,253,82,1,201,0,216,254,193,255,3,0,36,253,95,250,212,251, +8,255,74,255,127,254,133,254,50,254,74,253,153,252,45,254,157,255,241,253,33,254,163,0,150,1,186,2,45,2,14,255, +28,255,209,0,238,255,145,254,75,254,67,254,81,253,89,252,50,253,120,254,166,255,35,1,84,1,253,0,190,1,199,2, +163,2,100,1,250,0,243,0,233,0,4,2,168,1,134,0,129,0,191,252,142,248,218,250,155,253,97,252,153,251,110,254, +148,2,16,3,60,2,73,3,67,2,148,0,29,1,212,2,187,5,101,4,14,0,235,2,78,6,129,1,99,253,200,254, +62,1,57,3,91,4,216,2,78,0,41,1,32,3,100,3,235,3,62,0,244,249,164,250,116,253,33,254,92,0,75,1, +62,3,22,7,146,7,209,10,18,14,184,5,3,252,230,251,103,254,214,252,46,248,171,246,197,248,252,248,68,250,36,254, +237,0,117,5,117,9,57,6,248,1,170,2,78,3,242,2,237,2,118,255,153,251,181,252,89,254,218,254,120,0,85,0, +231,254,195,254,72,0,145,4,224,7,53,7,58,5,202,1,18,254,9,253,204,254,84,3,188,5,31,3,229,1,93,3, +248,3,51,3,209,1,38,3,103,5,133,2,193,254,192,255,13,0,184,251,114,249,23,252,248,253,129,255,57,1,225,255, +151,255,13,255,5,253,54,3,67,10,173,6,176,2,192,4,120,7,187,4,222,0,214,6,150,10,188,3,222,254,159,246, +250,238,225,247,198,2,92,8,118,13,165,13,73,10,25,248,216,228,255,246,78,12,88,1,157,250,239,1,216,7,205,12, +136,11,52,11,55,9,71,247,165,232,166,231,43,236,48,250,22,5,94,2,9,254,174,251,162,249,232,246,87,247,136,2, +233,11,64,10,24,6,62,253,222,241,44,240,191,243,169,243,189,245,249,0,139,11,63,11,139,6,250,255,27,249,246,250, +98,0,118,4,2,11,209,12,210,9,116,9,150,7,30,4,102,2,4,1,25,1,50,1,247,0,195,3,115,5,35,2, +163,254,111,254,241,253,79,251,237,250,62,253,98,255,43,1,139,0,53,254,196,252,108,250,128,247,245,243,81,242,82,249, +185,255,78,252,58,250,29,251,182,248,86,251,162,0,177,251,205,246,74,253,194,1,73,255,174,254,114,252,115,248,59,249, +128,251,193,254,251,1,246,0,226,0,45,1,180,0,15,5,214,7,116,8,54,10,123,4,1,254,85,252,117,250,6,2, +207,9,179,2,220,251,150,247,85,244,92,252,138,3,177,6,116,12,15,8,16,1,245,3,32,5,183,5,168,8,123,6, +184,2,214,254,186,251,107,253,209,252,114,249,122,250,43,253,187,255,169,2,59,4,164,5,241,5,212,4,41,5,173,4, +41,3,162,4,26,5,106,1,212,254,111,253,71,252,70,255,181,1,34,255,205,253,159,254,5,255,76,0,35,1,131,1, +2,0,106,249,1,245,211,247,163,250,188,250,151,251,201,251,182,248,11,247,96,249,104,248,234,245,187,250,119,0,89,0, +155,255,52,1,233,2,238,1,74,0,20,0,184,254,128,0,142,4,159,1,1,254,220,253,203,252,86,1,184,6,214,3, +62,1,120,255,201,253,235,3,44,10,10,10,133,8,212,4,67,0,14,254,55,254,91,2,13,6,231,4,199,3,249,4, +61,5,196,2,156,0,48,2,41,4,92,4,20,5,58,5,81,4,125,4,107,4,6,1,200,252,243,252,243,253,104,252, +14,254,165,0,115,0,155,3,157,5,217,0,38,255,42,2,237,3,11,6,230,5,74,1,199,254,89,255,156,255,34,0, +199,254,41,250,116,248,144,252,24,1,84,2,5,1,167,254,174,252,160,251,244,250,215,249,18,249,100,251,84,254,62,252, +254,248,115,251,94,0,190,1,227,255,170,254,17,0,128,1,221,0,240,0,7,3,158,4,61,4,177,1,25,0,228,3, +38,7,198,2,174,254,94,0,130,0,7,254,115,253,53,253,35,253,124,255,195,1,83,1,0,0,119,0,62,1,14,254, +22,250,148,252,225,255,123,252,84,250,145,253,239,255,73,1,78,0,186,251,168,251,95,255,184,255,183,254,106,254,134,0, +30,3,150,254,16,250,205,253,107,255,130,250,117,248,61,255,19,7,18,3,214,251,150,254,196,1,234,0,34,0,125,251, +159,248,238,252,130,255,97,254,153,254,93,0,42,1,211,255,145,255,82,0,4,255,251,253,54,253,187,251,181,252,1,255, +142,0,212,1,32,2,252,1,149,1,70,1,229,1,93,1,202,0,125,2,72,3,247,0,41,254,73,255,115,2,20,1, +235,254,173,0,196,1,55,2,206,2,67,0,150,252,74,251,32,254,115,1,16,0,170,0,167,3,211,255,69,252,163,253, +153,253,17,1,186,5,153,2,104,0,45,2,218,255,129,252,200,250,20,250,66,253,202,255,217,254,75,255,245,254,100,252, +239,252,183,255,20,1,137,0,182,254,135,254,214,254,200,252,232,251,114,252,199,252,10,0,61,3,31,3,2,3,10,2, +118,1,244,4,3,7,69,5,185,4,9,5,122,3,65,0,65,254,202,255,106,1,253,0,8,1,63,1,15,1,188,2, +202,5,78,6,117,3,228,0,2,255,133,252,59,252,2,254,182,255,212,1,188,1,159,255,65,0,94,1,68,0,213,255, +8,0,241,255,54,0,165,255,196,254,202,255,50,1,119,0,135,255,59,0,84,0,148,255,118,255,253,254,219,254,78,0, +224,1,50,2,195,0,224,255,140,1,124,2,220,1,146,1,171,0,134,0,190,1,61,2,28,3,41,3,61,1,77,1, +244,1,109,0,41,0,134,0,152,255,92,0,234,1,20,2,176,2,33,2,98,255,161,255,43,2,69,1,13,255,49,254, +39,253,206,253,221,0,53,4,133,5,224,0,253,251,96,255,16,2,114,254,189,253,200,255,43,255,155,253,19,253,50,255, +72,1,227,255,245,255,82,1,179,255,23,255,247,255,10,0,255,255,35,252,156,247,73,249,200,251,125,253,0,0,92,253, +28,251,55,255,217,255,139,253,134,254,139,253,113,252,96,255,61,1,160,1,252,1,240,1,205,2,64,1,51,255,137,2, +204,3,228,255,82,255,91,0,115,255,200,0,35,3,174,2,206,0,142,0,143,1,202,0,177,0,201,3,60,4,149,1, +96,1,239,0,95,254,108,254,154,0,167,1,163,2,158,3,246,2,52,1,16,255,195,253,2,255,18,0,171,254,80,254, +206,255,186,0,67,1,73,0,57,254,159,254,184,255,60,0,209,2,232,3,45,1,43,0,149,1,188,1,21,1,40,1, +108,2,226,2,51,0,39,254,206,254,12,255,148,0,248,2,242,1,125,2,42,6,180,4,34,0,113,254,86,253,147,253, +238,255,212,0,184,1,33,3,234,1,115,0,202,0,172,0,72,0,119,0,150,0,230,0,254,0,6,0,203,254,68,254, +233,253,232,252,162,252,106,254,185,255,186,254,75,253,55,252,198,252,35,0,67,1,65,254,52,253,226,253,122,252,231,251, +132,252,154,251,17,252,47,255,94,1,221,1,87,1,166,255,24,255,164,0,250,1,204,2,165,2,174,0,198,255,52,255, +96,253,18,255,190,1,218,255,145,254,30,254,107,251,198,251,228,253,159,253,241,253,159,253,229,251,19,252,165,252,141,252, +125,252,75,252,252,253,49,1,3,3,121,2,101,0,99,254,192,251,148,250,157,254,94,1,170,255,12,1,68,4,211,3, +139,1,78,255,146,254,114,255,71,0,180,1,47,1,132,252,99,248,115,247,102,249,179,253,208,255,181,254,85,255,254,0, +197,255,55,254,95,255,91,1,121,2,85,2,135,1,61,2,162,3,5,3,126,0,37,254,60,254,60,255,105,255,146,1, +119,3,62,2,252,1,227,0,73,254,243,255,118,1,123,0,170,1,142,255,168,250,30,251,195,252,69,253,105,254,170,251, +148,248,62,250,25,252,148,254,205,1,204,255,157,253,106,2,134,6,102,4,131,2,83,3,210,2,33,1,49,0,29,255, +121,254,227,255,174,1,240,1,242,0,6,255,235,253,81,255,167,0,210,0,141,1,207,0,109,254,47,254,70,255,36,0, +17,1,65,0,40,255,189,255,150,255,67,0,155,3,121,5,144,5,168,6,14,7,37,5,59,2,225,0,154,2,10,5, +113,5,188,3,117,1,135,0,78,0,161,0,152,2,144,2,29,1,41,4,84,7,253,5,196,3,241,255,151,252,215,253, +212,253,75,252,72,253,61,252,75,251,144,254,209,0,85,2,159,4,29,3,176,255,126,255,6,2,176,3,15,4,155,6, +46,8,253,3,72,255,168,252,43,250,27,251,126,254,150,255,209,0,237,3,162,3,49,254,238,249,5,249,112,247,154,246, +248,247,23,248,221,248,217,252,135,0,200,2,251,4,194,5,114,4,45,3,21,2,35,255,164,252,164,253,246,255,76,1, +108,1,104,1,251,0,45,253,179,250,25,255,7,3,126,3,27,5,230,4,252,1,42,0,11,255,198,254,205,255,54,2, +136,6,76,9,84,10,158,12,92,12,190,7,49,2,152,251,125,245,246,243,213,245,65,249,13,254,250,0,130,1,26,3, +51,4,188,2,235,0,56,255,140,254,44,255,30,254,59,254,2,1,22,0,181,253,166,255,203,0,57,254,29,253,249,254, +210,254,238,249,66,246,135,248,219,251,105,252,223,252,230,254,38,0,36,255,246,254,54,1,211,1,72,255,216,253,77,255, +70,0,114,255,71,255,65,0,90,1,101,2,199,2,135,2,36,2,106,2,176,3,191,3,127,3,93,5,161,5,253,3, +157,4,196,4,54,2,151,0,23,1,149,1,79,0,30,254,26,253,133,253,220,254,148,255,33,255,11,0,33,2,101,2, +48,0,175,253,55,253,38,253,58,252,251,252,240,254,168,0,181,1,145,255,196,251,228,249,191,249,111,251,194,253,126,255, +124,1,9,1,195,253,70,252,160,252,30,252,88,251,208,252,45,255,52,254,149,252,212,252,62,251,254,250,145,254,247,255, +40,0,88,2,174,3,80,4,198,3,53,0,78,253,224,252,122,252,226,251,203,251,7,252,113,252,11,253,4,254,189,255, +98,2,237,3,134,2,241,0,180,1,180,2,234,1,75,0,16,0,230,1,118,3,217,2,188,0,154,254,162,254,47,1, +224,2,154,2,42,2,75,1,74,0,60,0,205,0,219,2,140,4,13,2,96,255,222,0,71,2,76,1,195,0,216,0, +180,0,167,1,65,3,11,3,228,1,35,2,169,2,149,2,88,2,13,1,209,255,55,0,183,0,254,0,149,1,218,0, +166,254,72,253,179,253,192,254,175,254,148,252,200,250,110,252,206,254,83,254,145,253,76,254,180,255,9,2,218,2,253,0, +142,255,87,254,158,252,181,252,27,254,120,255,50,1,151,1,151,255,164,254,94,1,35,4,56,3,189,1,62,2,131,1, +229,255,104,1,27,3,3,1,219,254,163,254,75,254,7,255,81,0,4,0,93,255,135,253,30,251,53,252,112,254,86,255, +166,0,245,255,78,254,125,0,240,1,124,254,203,251,201,252,48,254,147,254,48,254,160,252,216,250,200,250,36,253,242,255, +114,255,246,252,71,253,84,254,114,253,147,253,91,254,145,254,33,0,213,1,226,2,19,4,111,3,217,1,145,1,223,0, +178,0,9,3,132,3,214,255,136,253,21,255,177,0,144,0,172,255,111,255,134,1,62,5,199,7,30,7,87,5,39,7, +10,9,7,4,63,254,186,255,223,2,178,1,149,255,47,255,78,254,177,252,188,251,163,251,16,253,247,253,163,253,195,0, +120,3,120,255,183,251,34,252,25,253,213,254,81,0,79,1,103,2,192,0,128,254,237,253,74,253,206,253,248,254,217,0, +102,3,179,1,87,255,201,0,240,0,193,0,93,1,240,255,108,255,149,254,233,252,58,255,249,0,200,254,128,253,115,254, +21,0,86,255,20,254,203,1,202,4,103,3,72,3,170,3,161,3,101,4,80,3,88,2,174,2,239,0,103,255,74,0, +58,1,220,1,10,3,38,4,195,3,128,2,215,1,11,0,48,254,12,0,158,1,127,254,73,252,227,254,199,1,157,2, +116,2,239,0,214,255,15,0,172,255,68,0,141,1,218,0,170,0,160,0,88,255,236,0,184,2,82,0,134,254,180,255, +126,1,131,2,219,1,186,0,222,254,197,251,63,251,11,254,4,0,145,254,48,253,36,1,214,4,125,2,43,1,176,3, +219,4,180,1,79,253,167,1,149,7,3,254,50,245,226,253,182,6,15,8,168,8,173,5,151,255,167,248,93,242,86,242, +86,247,101,254,20,5,215,4,17,1,130,0,221,0,173,0,219,255,152,255,29,0,114,252,127,248,176,250,117,254,193,1, +220,3,29,3,12,3,220,0,84,252,189,254,249,3,49,3,175,0,101,0,65,0,254,253,112,251,189,252,140,254,133,252, +237,250,209,252,172,254,3,254,237,253,3,0,174,0,168,255,17,255,236,254,228,254,173,252,250,250,60,255,52,3,141,1, +103,255,123,255,206,0,243,0,188,255,232,0,228,2,47,4,181,5,197,3,65,0,222,254,72,253,195,253,89,0,122,0, +55,0,152,0,213,0,150,2,133,3,158,2,234,1,104,0,140,253,95,251,52,252,174,254,105,255,95,255,248,254,168,253, +96,253,206,252,40,252,158,254,42,1,249,255,49,253,107,253,147,255,171,253,125,251,229,253,52,255,232,255,136,1,129,254, +50,251,213,253,235,1,125,2,101,1,26,5,181,8,133,2,171,252,110,254,106,255,208,0,210,3,11,3,212,1,139,1, +146,255,99,254,81,254,161,254,4,0,188,0,248,255,28,255,28,255,205,254,90,254,103,0,76,1,74,254,34,254,72,1, +103,2,247,2,243,3,65,4,117,4,100,3,93,1,63,0,148,255,67,255,107,255,117,255,151,255,162,255,112,255,107,255, +149,254,117,252,243,251,18,254,27,255,13,255,149,0,90,0,126,253,150,253,235,255,226,255,156,254,7,254,3,253,106,251, +245,250,146,251,254,251,191,252,206,252,17,251,254,250,127,253,146,255,125,0,248,255,40,255,16,0,182,0,11,1,11,3, +152,3,249,0,97,255,151,1,192,4,53,5,168,4,163,5,92,6,250,4,60,2,156,1,99,3,169,1,85,254,28,0, +36,3,69,3,7,1,137,252,196,250,11,253,179,254,22,1,66,4,206,4,161,3,100,1,211,255,205,0,156,1,242,1, +17,2,74,0,25,255,155,255,117,255,202,254,128,255,197,1,130,2,207,1,146,2,200,1,254,254,23,254,74,254,170,255, +56,0,234,252,204,251,121,253,113,253,44,0,81,4,163,3,92,1,36,0,230,254,226,253,189,252,142,251,126,251,205,253, +238,255,93,254,149,253,33,0,219,1,156,2,207,2,148,2,90,2,252,254,90,252,147,255,118,2,143,2,209,1,52,254, +194,251,178,254,234,1,194,1,158,0,113,1,157,3,76,3,183,0,241,0,250,2,222,0,2,254,44,0,126,2,143,1, +175,255,255,253,99,254,94,254,212,252,187,255,195,2,184,0,83,255,69,253,180,250,201,253,246,0,116,0,2,0,192,254, +33,254,98,255,116,255,12,255,236,254,229,254,179,255,200,255,36,255,25,255,250,254,127,254,222,254,10,1,125,2,153,1, +182,0,130,255,49,254,220,253,128,252,141,252,79,254,90,253,127,253,200,255,87,0,201,2,160,5,102,4,188,2,77,1, +49,1,151,5,28,8,181,4,168,1,194,1,205,1,41,0,43,254,26,253,69,253,37,254,214,254,118,0,235,1,23,255, +196,251,11,254,243,0,11,255,163,252,228,252,231,252,77,253,64,0,173,1,35,0,58,255,143,255,75,1,206,2,6,2, +35,2,19,2,214,0,221,3,52,7,176,5,28,4,186,2,134,0,152,254,181,251,179,251,105,253,138,250,144,248,11,250, +48,251,20,255,65,2,185,255,67,253,73,251,101,249,16,253,137,1,171,1,91,1,15,0,143,254,15,0,168,255,12,253, +253,252,112,253,103,255,131,3,134,4,67,5,117,6,148,2,93,255,192,255,240,254,11,1,73,5,209,4,15,3,128,2, +61,1,11,0,189,254,21,255,134,0,78,254,86,252,3,255,243,1,224,3,136,4,252,0,219,253,11,0,158,2,23,3, +5,4,13,3,236,0,162,2,57,4,218,1,189,255,3,255,155,254,41,254,24,253,130,253,106,254,122,254,79,255,228,252, +170,249,49,254,3,3,80,1,221,255,122,255,114,254,182,254,40,255,123,0,204,2,176,2,222,0,141,255,142,254,126,253, +31,253,13,255,13,1,83,0,207,255,237,0,17,1,10,0,166,255,138,0,87,1,9,1,56,1,115,2,86,1,28,252, +8,249,143,252,34,0,119,0,225,0,159,255,183,253,115,255,34,1,249,255,115,255,209,0,132,1,119,0,124,0,147,0, +35,254,171,253,53,254,114,251,228,250,158,253,5,0,247,2,30,4,85,4,12,5,60,1,178,252,123,251,115,250,248,252, +84,0,94,254,3,254,108,1,171,3,113,4,210,3,97,4,178,4,4,0,126,252,62,253,214,253,193,255,235,1,60,2, +88,3,187,2,117,255,46,254,115,254,235,253,186,253,30,255,39,1,130,2,169,2,75,0,182,253,164,254,131,255,238,254, +228,255,191,255,238,253,62,253,85,253,210,254,234,255,99,254,72,254,125,0,186,1,116,1,243,0,188,2,16,5,16,4, +39,2,212,0,108,0,162,3,186,5,120,2,183,255,72,255,96,254,78,255,66,2,245,2,144,1,76,1,177,1,74,1, +188,0,252,255,171,255,232,0,153,1,224,0,105,0,120,255,118,254,252,254,161,255,181,0,53,2,139,0,25,254,6,255, +250,255,23,0,128,0,87,253,86,249,203,250,174,253,185,253,29,254,180,0,232,2,71,2,210,0,186,0,173,0,81,1, +91,2,129,1,13,1,9,1,83,255,253,254,154,255,169,254,152,254,1,255,161,254,26,255,227,255,122,0,107,0,194,254, +140,253,123,253,123,253,30,254,237,254,119,255,169,255,143,254,172,253,101,254,11,255,95,255,45,0,52,0,137,255,161,0, +65,2,245,0,45,255,93,0,225,1,184,1,18,2,129,3,231,3,1,3,247,1,52,0,66,255,113,1,75,3,128,2, +246,0,205,254,254,252,74,252,93,252,151,254,246,255,67,254,1,254,44,255,27,255,77,254,102,253,13,255,87,1,156,255, +188,253,114,253,201,253,243,1,160,4,6,1,208,254,180,255,92,254,201,251,88,251,254,252,25,254,109,254,139,255,23,255, +10,253,90,253,18,255,35,0,78,1,190,1,79,1,56,1,203,0,235,255,238,254,246,252,203,251,241,252,214,253,165,254, +64,0,30,0,119,255,220,254,174,252,115,253,184,255,203,252,115,251,54,1,194,5,57,4,163,0,98,255,154,255,15,254, +71,252,202,252,63,254,186,253,13,253,238,0,58,2,181,251,144,247,245,245,235,247,239,8,49,24,222,19,93,11,88,4, +194,250,81,245,27,243,53,244,56,251,180,1,95,6,38,9,173,7,238,4,215,0,179,253,14,254,99,252,206,250,125,252, +67,254,235,1,254,3,96,1,62,255,129,251,218,248,59,253,43,0,193,0,17,3,25,0,249,251,92,254,161,0,3,1, +96,2,162,1,87,0,126,2,53,5,214,5,224,5,175,4,214,2,182,3,6,4,149,1,87,1,11,1,135,254,160,255, +127,1,239,255,40,0,253,1,29,2,150,2,226,2,240,0,238,254,210,254,119,254,217,252,70,253,173,255,124,1,181,3, +162,4,116,2,11,1,67,1,1,2,215,3,27,4,250,2,240,2,1,1,50,254,161,255,245,1,21,1,243,255,153,255, +47,255,13,1,131,3,166,1,185,254,162,255,48,1,176,1,151,2,60,2,96,1,38,1,65,0,5,2,63,5,205,2, +64,255,235,255,237,255,125,0,39,2,195,254,234,251,22,255,85,0,182,254,189,254,171,253,114,252,130,254,138,0,164,0, +241,0,52,1,157,0,250,255,29,255,201,253,49,253,76,253,209,253,97,255,107,0,79,0,128,0,98,0,201,0,89,2, +220,1,86,0,148,0,150,0,152,255,67,254,115,253,255,254,216,0,163,1,144,2,92,1,150,255,43,1,79,2,17,1, +25,1,183,1,245,0,65,0,11,0,118,255,136,255,190,0,146,0,55,255,192,255,153,0,4,0,241,0,57,3,71,3, +176,1,140,1,240,1,225,255,53,253,158,253,48,255,131,254,155,253,55,255,213,0,111,0,149,255,189,253,249,251,112,253, +157,254,238,253,189,254,187,253,122,251,29,254,208,0,156,255,250,254,6,254,94,252,150,253,112,255,43,255,98,254,85,254, +200,254,7,255,181,255,238,0,202,0,229,255,127,255,119,254,192,253,37,254,88,253,29,252,159,252,130,252,172,251,252,253, +64,1,127,1,14,1,112,1,176,1,4,2,96,1,22,0,239,255,247,255,245,255,28,0,74,255,118,254,113,254,189,254, +60,255,227,254,130,254,227,255,138,1,33,2,118,1,154,255,217,254,90,0,128,1,0,0,116,254,108,0,45,2,203,255, +102,253,19,253,130,252,128,252,26,254,22,0,249,0,123,0,86,0,181,0,97,0,249,255,202,255,168,255,201,255,220,255, +254,255,217,255,63,255,226,254,206,253,11,252,37,252,183,254,120,1,178,1,6,0,70,255,95,255,123,0,58,2,31,1, +75,255,192,0,255,1,64,1,77,1,66,2,84,2,107,0,21,255,40,1,154,2,194,0,78,255,73,255,32,255,209,254, +184,254,123,255,63,1,1,3,92,3,245,1,1,1,154,1,100,1,76,255,74,253,127,253,168,254,130,253,1,252,3,254, +29,1,104,2,213,2,105,2,82,1,13,1,28,1,176,0,89,0,25,0,14,0,225,0,136,1,230,0,52,0,247,255, +141,255,253,255,250,0,126,0,221,255,99,0,246,255,97,255,1,1,172,2,125,2,152,1,79,0,153,255,41,0,219,255, +247,254,114,255,238,255,52,0,86,1,178,1,7,1,86,0,175,255,193,0,163,2,247,1,53,0,161,255,175,255,104,0, +72,1,55,2,242,2,1,1,171,254,162,255,176,0,213,0,185,1,102,0,105,254,252,255,121,1,144,0,255,255,10,255, +58,253,171,252,252,252,215,253,143,255,203,255,153,254,154,255,171,1,88,1,91,0,113,0,174,0,212,1,76,3,224,2, +132,1,190,0,162,0,230,0,47,0,139,254,231,253,164,254,186,255,51,0,91,0,182,0,174,0,241,0,21,1,224,254, +122,252,42,252,128,252,80,254,104,1,238,2,226,2,102,1,84,255,34,255,25,255,77,254,176,254,181,254,26,254,161,254, +222,254,182,254,69,255,72,0,166,1,130,1,226,255,175,255,76,255,42,254,56,255,254,255,1,255,151,255,153,0,103,0, +184,0,41,0,22,254,130,253,155,254,109,255,161,255,31,255,253,253,143,253,149,254,35,0,91,1,205,1,182,1,123,2, +64,3,12,2,202,0,165,0,31,0,228,255,43,0,83,0,174,0,196,255,11,254,154,253,191,253,13,255,64,0,78,254, +14,253,40,254,3,254,42,254,16,255,104,255,177,0,66,0,93,254,10,0,5,2,247,0,68,0,240,0,226,1,190,1, +189,0,128,1,235,2,125,3,245,3,87,3,71,2,223,0,142,254,21,255,54,1,247,255,16,254,136,254,170,255,60,255, +176,253,120,255,154,2,49,1,126,255,14,0,82,255,2,0,194,1,231,255,168,253,189,253,58,254,18,255,176,255,141,255, +53,255,23,254,127,253,116,254,26,255,117,255,201,255,170,254,67,254,114,0,130,1,47,0,149,255,169,255,94,255,127,255, +96,255,199,254,8,255,36,0,207,0,254,255,34,255,190,255,191,255,3,255,110,255,141,255,27,255,19,255,214,254,115,255, +82,0,131,255,253,254,137,255,226,255,254,255,71,255,156,254,166,254,112,254,166,255,80,1,187,0,128,0,187,0,188,255, +204,255,174,255,178,254,77,0,48,2,218,1,33,2,186,2,193,1,53,0,183,255,240,0,82,2,230,2,99,3,244,2, +115,1,29,0,143,255,104,0,116,1,89,1,233,0,250,255,112,255,207,0,139,1,95,0,188,255,105,0,32,1,180,0, +18,0,94,0,27,0,181,255,34,0,83,255,78,254,246,254,249,255,134,1,137,2,53,1,100,0,96,1,202,1,152,0, +169,254,236,254,228,0,1,0,146,254,218,0,87,2,21,0,60,255,229,1,146,3,62,2,108,0,128,255,167,255,177,0, +151,0,16,255,122,254,79,255,134,0,169,1,20,2,123,1,210,0,146,0,189,255,42,255,52,0,114,0,54,255,7,255, +60,255,15,255,63,255,237,254,43,255,205,0,49,1,24,0,88,255,0,255,191,254,30,255,229,255,3,255,147,253,80,255, +153,1,59,1,128,0,92,255,246,253,144,254,104,255,190,255,196,0,24,1,198,0,172,0,137,0,227,0,57,1,30,1, +42,1,189,0,127,255,79,254,89,254,130,255,145,0,21,2,163,3,95,3,115,2,167,1,186,0,105,0,202,255,90,255, +154,255,62,254,185,252,228,252,76,253,113,254,165,255,170,255,156,255,15,255,44,255,126,0,211,255,102,254,220,253,177,252, +190,252,242,253,47,254,129,254,129,254,42,254,84,254,183,253,192,253,27,255,66,255,34,255,186,255,142,255,253,254,31,255, +149,255,203,254,207,253,159,255,136,1,119,0,66,255,114,255,40,0,142,0,225,255,166,255,243,255,119,255,169,255,45,0, +220,255,235,255,223,255,42,0,228,1,54,2,209,0,165,0,28,1,38,1,161,1,8,2,66,1,24,0,32,0,7,1, +147,1,30,2,68,2,235,0,210,255,163,0,192,1,249,1,227,1,162,1,146,1,210,1,49,1,25,0,192,255,212,254, +115,253,60,254,52,0,170,0,97,0,150,0,214,0,146,0,129,255,134,254,141,254,178,254,220,254,247,255,250,0,188,0, +9,0,54,0,211,0,188,255,89,254,200,255,68,1,156,0,84,0,154,255,70,254,46,255,99,0,27,0,196,255,47,255, +231,254,159,254,31,254,106,0,240,2,131,1,130,255,79,254,180,253,242,255,156,1,91,0,7,0,117,0,39,0,130,0, +181,0,189,255,207,254,238,254,232,255,248,0,238,1,189,1,194,255,190,254,63,255,117,254,139,253,85,255,6,2,97,2, +61,1,104,1,207,1,142,0,35,0,170,1,124,2,59,2,166,1,209,255,105,254,166,255,84,0,59,254,66,253,128,254, +190,254,129,254,60,255,139,255,111,255,116,255,216,254,112,254,78,255,77,0,43,0,241,254,16,254,73,255,174,0,29,255, +156,253,188,255,96,1,57,255,82,253,188,254,165,0,84,0,209,255,246,0,138,1,160,0,193,255,136,255,4,0,192,255, +222,254,196,0,200,2,20,0,41,253,57,254,155,255,62,255,84,255,171,0,136,1,81,1,220,0,224,255,101,255,142,0, +223,0,181,255,2,255,206,254,67,255,237,255,217,255,188,0,69,2,20,2,11,1,194,0,26,1,31,1,119,0,180,0, +161,1,94,1,204,0,190,0,109,0,61,0,40,0,49,255,31,254,132,254,70,255,117,254,163,253,157,254,107,255,10,255, +112,255,206,0,3,1,211,255,12,255,185,254,110,254,250,254,141,255,126,255,156,255,66,255,234,254,241,255,243,0,49,1, +66,1,76,1,157,1,87,1,149,0,126,0,12,0,222,255,214,0,163,0,206,255,33,0,72,0,19,0,242,255,173,255, +118,255,174,254,87,254,172,255,206,0,23,1,68,1,98,1,207,1,127,1,120,0,213,0,120,1,176,0,207,255,80,255, +170,254,57,254,119,254,248,254,54,255,217,255,147,0,136,0,122,0,64,0,238,255,124,0,69,0,129,255,22,0,16,0, +143,255,134,0,230,0,167,0,63,1,192,0,132,255,117,255,149,255,123,255,249,255,202,0,219,0,199,255,84,255,124,0, +38,1,129,0,76,0,218,0,186,0,174,255,231,254,238,254,187,255,5,1,148,1,98,1,114,1,229,0,192,255,2,0, +235,0,202,0,175,0,31,1,113,1,213,1,212,1,1,1,0,0,186,254,196,253,84,254,92,255,182,255,165,255,48,255, +13,255,171,255,57,0,209,0,92,1,46,1,193,0,49,0,89,255,220,254,192,254,27,255,251,255,172,0,1,1,156,0, +201,255,40,0,164,0,123,255,164,254,84,255,190,255,93,255,153,255,184,0,53,1,141,0,194,255,71,255,38,255,77,255, +109,255,87,255,140,254,191,253,38,254,135,254,125,254,71,255,232,255,216,255,239,255,173,255,140,255,56,0,73,0,103,255, +216,254,40,255,140,255,45,255,255,254,130,255,182,255,25,0,134,0,164,255,36,255,71,0,177,0,228,255,232,255,152,0, +128,0,7,0,231,255,137,255,79,255,100,0,152,1,78,1,120,0,55,0,218,255,237,254,181,254,243,255,14,1,252,0, +211,0,195,0,37,0,191,255,244,255,224,255,166,255,222,255,184,255,223,254,225,254,56,0,207,0,232,255,203,255,249,0, +69,1,158,0,16,0,56,255,154,254,180,254,233,254,228,255,44,1,198,0,199,255,192,255,0,0,64,0,62,0,206,255, +185,255,166,255,104,255,14,0,220,0,143,0,36,0,153,0,231,0,71,0,173,255,55,255,177,254,147,255,253,0,151,0, +243,255,82,0,156,0,16,1,252,0,22,0,40,0,227,255,228,254,8,0,217,0,136,254,31,253,166,254,154,0,166,1, +204,1,238,1,43,2,32,1,227,255,14,0,23,0,91,255,59,255,141,255,140,255,100,255,17,255,162,254,219,254,10,0, +74,1,150,1,92,1,239,1,28,2,208,255,240,253,99,255,219,0,235,0,125,1,142,0,231,254,14,1,62,3,180,0, +154,254,98,0,188,1,91,0,139,254,254,253,12,254,40,254,146,254,100,254,9,254,157,255,76,1,172,0,171,255,51,255, +64,255,93,1,87,3,85,2,234,0,242,0,167,0,143,255,14,255,226,255,200,0,157,0,93,0,221,255,252,254,20,0, +197,1,228,0,15,0,7,1,91,1,171,1,175,2,243,1,43,0,185,255,196,255,178,255,244,255,15,0,99,0,14,1, +226,0,100,0,104,0,80,0,29,0,198,255,80,255,87,255,14,255,186,254,114,255,57,255,53,254,16,255,18,0,163,255, +47,255,134,254,4,254,150,254,61,255,223,255,134,0,84,0,234,255,255,255,126,0,36,1,226,0,170,255,14,255,214,255, +240,0,7,1,93,0,93,255,156,254,182,255,30,1,96,0,160,255,24,0,99,0,220,0,96,1,49,1,194,0,15,0, +81,255,200,254,160,254,143,255,50,0,185,255,196,255,140,255,126,254,110,254,182,254,183,254,186,255,181,0,134,0,98,0, +110,0,233,255,157,255,28,0,80,0,5,0,251,255,198,255,82,255,112,255,0,0,23,0,146,255,224,255,217,0,42,0, +5,255,99,255,213,255,53,0,118,0,164,255,50,255,192,254,17,254,131,255,228,0,146,0,230,0,58,0,184,254,202,255, +80,1,61,1,197,0,231,255,84,255,32,255,152,254,248,254,223,255,235,255,181,255,233,255,112,0,65,0,111,255,195,255, +63,0,161,255,143,255,7,0,225,255,142,255,238,255,48,1,120,1,195,255,138,254,227,254,88,255,110,255,159,255,76,0, +237,0,224,0,177,0,115,0,170,255,183,254,139,254,150,255,109,0,227,255,75,255,157,255,32,0,5,0,222,255,223,0, +113,1,68,0,189,255,29,0,253,255,84,0,157,0,51,0,62,0,238,255,220,254,34,254,49,254,213,255,109,1,166,0, +222,255,97,0,81,0,251,255,170,255,228,254,231,254,208,255,72,0,69,0,104,0,60,0,99,255,56,255,157,255,187,254, +44,254,50,255,93,255,37,255,187,255,4,255,16,254,54,255,131,0,142,0,72,0,30,0,73,0,98,0,240,255,171,255, +179,255,128,255,160,255,135,0,222,0,164,255,162,254,83,255,42,0,6,0,9,0,247,0,196,1,34,1,49,0,182,0, +110,1,194,0,190,255,156,255,212,255,124,255,112,255,125,0,225,0,28,0,13,0,147,0,155,0,96,0,84,0,125,0, +12,0,78,255,146,255,221,255,102,255,23,255,223,254,77,255,120,0,92,0,95,255,49,255,148,255,108,0,226,0,226,255, +245,254,102,255,34,0,232,255,70,255,178,255,120,0,83,0,5,0,173,255,38,255,101,255,203,255,137,255,233,255,12,1, +112,1,75,1,165,1,188,1,29,1,201,0,161,0,92,0,128,0,110,0,73,0,16,1,93,1,81,0,192,255,103,0, +65,1,179,1,179,1,33,1,146,0,206,0,186,0,194,255,111,255,127,255,129,255,95,0,172,0,173,255,97,255,73,0, +102,1,255,0,168,255,12,1,122,2,77,255,195,252,145,254,77,0,24,1,3,2,64,1,243,255,4,0,73,0,139,0, +191,0,160,255,210,254,53,0,108,1,65,1,48,1,178,0,154,255,74,255,194,255,186,0,86,1,143,0,189,255,104,255, +21,255,195,255,124,0,12,0,20,0,169,0,197,0,199,0,139,0,32,0,232,255,151,255,119,255,153,255,201,255,118,0, +242,0,137,0,97,0,8,1,104,1,173,0,146,255,131,255,254,255,139,255,39,255,46,0,21,1,139,0,202,255,133,255, +51,255,255,254,110,255,72,0,165,0,51,0,232,255,16,0,68,0,205,0,96,1,59,1,197,0,195,0,207,0,251,255, +23,255,57,255,133,255,196,255,214,255,203,254,92,254,70,255,200,255,231,0,245,1,76,0,181,254,137,255,64,0,144,255, +201,254,104,255,91,0,213,255,44,255,184,254,82,254,200,255,18,1,124,0,58,0,146,255,224,254,48,0,191,0,14,0, +76,0,174,255,195,254,236,255,48,1,47,1,159,0,164,255,91,255,64,0,217,0,155,0,57,0,218,255,74,255,190,254, +143,254,193,254,213,254,186,254,41,255,207,255,239,255,237,255,168,255,3,255,190,254,142,254,190,254,220,255,68,0,192,255, +224,255,248,255,125,255,150,255,45,0,78,0,76,0,142,0,67,0,192,255,233,255,93,255,122,254,98,255,126,0,116,0, +113,0,15,0,95,255,94,255,128,255,189,255,18,0,217,255,125,255,62,255,20,255,104,255,186,255,133,255,77,255,120,255, +139,255,78,255,102,255,125,255,56,255,148,255,11,0,210,255,248,255,56,0,176,255,31,255,14,255,128,255,38,0,104,0, +98,0,86,0,100,0,49,0,148,255,229,255,198,0,83,0,186,255,40,0,95,0,23,0,211,255,211,255,35,0,75,0, +75,0,49,0,43,0,254,0,110,1,36,0,42,255,197,255,105,0,131,0,179,0,161,0,252,255,154,255,225,255,12,0, +202,255,161,255,227,255,26,0,208,255,181,255,255,255,221,255,157,255,185,255,217,255,5,0,9,0,253,255,60,0,21,0, +245,255,8,1,55,2,68,2,124,1,110,0,175,255,65,255,239,254,48,255,208,255,245,255,214,255,63,0,160,0,12,0, +155,255,253,255,252,255,193,255,234,255,222,255,246,255,92,0,92,0,42,0,238,255,218,255,46,0,24,0,155,255,99,255, +78,255,177,255,86,0,131,0,117,0,255,255,130,255,5,0,138,0,104,0,115,0,59,0,135,255,81,255,140,255,123,255, +91,255,238,255,131,0,0,0,160,255,107,0,227,0,70,0,181,255,204,255,253,255,216,255,185,255,204,255,212,255,203,255, +184,255,203,255,252,255,219,255,193,255,17,0,94,0,27,0,168,255,167,0,238,1,100,0,162,254,161,255,174,0,119,1, +91,2,103,0,78,254,7,0,178,1,210,0,216,255,55,255,221,254,158,255,60,0,157,255,70,255,64,0,18,1,196,0, +81,0,84,0,122,0,120,0,34,0,176,255,158,255,255,255,39,0,137,255,25,255,189,255,75,0,203,255,119,255,29,0, +108,0,213,255,153,255,216,255,206,255,201,255,24,0,120,0,121,0,253,255,213,255,11,0,17,0,89,0,155,0,115,0, +120,0,46,0,178,255,0,0,55,0,3,0,14,0,200,255,124,255,190,255,253,255,97,0,184,0,59,0,213,255,45,0, +65,0,169,255,51,255,130,255,226,255,140,255,91,255,242,255,79,0,248,255,179,255,201,255,208,255,203,255,2,0,76,0, +86,0,30,0,245,255,8,0,13,0,190,255,135,255,236,255,91,0,2,0,146,255,181,255,221,255,19,0,120,0,95,0, +35,0,50,0,250,255,164,255,132,255,121,255,179,255,5,0,65,0,116,0,65,0,4,0,14,0,202,255,170,255,58,0, +173,0,173,0,156,0,159,0,123,0,225,255,115,255,176,255,212,255,166,255,143,255,160,255,224,255,254,255,248,255,61,0, +117,0,113,0,102,0,59,0,46,0,26,0,237,255,84,0,176,0,85,0,26,0,26,0,41,0,114,0,150,0,221,0, +33,1,143,0,255,255,242,255,206,255,228,255,14,0,193,255,120,255,129,255,201,255,34,0,39,0,231,255,187,255,203,255, +206,255,115,255,87,255,161,255,158,255,157,255,226,255,201,255,134,255,159,255,180,255,136,255,176,255,35,0,50,0,75,0, +160,0,79,0,237,255,45,0,112,0,218,0,86,1,51,1,198,0,40,0,155,255,211,255,49,0,49,0,33,0,228,255, +184,255,209,255,215,255,208,255,189,255,157,255,173,255,249,255,59,0,226,255,87,255,153,255,255,255,217,255,231,255,64,0, +63,0,212,255,170,255,29,0,79,0,221,255,148,255,149,255,173,255,210,255,195,255,203,255,34,0,104,0,117,0,87,0, +54,0,24,0,205,255,195,255,4,0,237,255,196,255,228,255,9,0,89,0,157,0,101,0,58,0,74,0,30,0,7,0, +38,0,10,0,246,255,35,0,46,0,4,0,226,255,1,0,60,0,237,255,99,255,154,255,48,0,99,0,122,0,177,0, +179,0,93,0,9,0,249,255,28,0,87,0,71,0,189,255,111,255,166,255,252,255,105,0,172,0,125,0,73,0,70,0, +66,0,46,0,15,0,14,0,37,0,238,255,134,255,125,255,160,255,127,255,117,255,138,255,81,255,53,255,69,255,234,254, +208,254,119,255,253,255,32,0,41,0,9,0,10,0,74,0,75,0,10,0,255,255,59,0,102,0,81,0,36,0,22,0, +29,0,32,0,42,0,234,255,118,255,142,255,152,255,160,254,206,253,19,254,210,254,187,255,178,0,82,1,140,1,152,1, +165,1,131,1,78,1,89,1,17,1,94,0,7,0,199,255,42,255,149,254,103,254,182,254,50,255,140,255,211,255,7,0, +77,0,150,0,139,0,150,0,210,0,168,0,86,0,44,0,214,255,97,255,23,255,2,255,15,255,35,255,59,255,128,255, +211,255,198,255,144,255,202,255,30,0,25,0,248,255,232,255,255,255,253,255,181,255,153,255,131,255,86,255,158,255,213,255, +124,255,60,255,97,255,200,255,27,0,23,0,53,0,130,0,117,0,29,0,210,255,223,255,23,0,8,0,209,255,152,255, +162,255,35,0,87,0,43,0,57,0,25,0,217,255,252,255,14,0,234,255,233,255,4,0,36,0,33,0,230,255,167,255, +148,255,209,255,51,0,103,0,125,0,167,0,183,0,123,0,64,0,72,0,69,0,44,0,31,0,254,255,222,255,168,255, +113,255,194,255,51,0,89,0,137,0,137,0,107,0,120,0,60,0,253,255,1,0,192,255,134,255,148,255,155,255,184,255, +191,255,190,255,249,255,239,255,204,255,238,255,225,255,14,0,123,0,69,0,249,255,27,0,35,0,44,0,30,0,202,255, +186,255,200,255,171,255,203,255,25,0,88,0,135,0,141,0,106,0,55,0,25,0,11,0,202,255,162,255,205,255,232,255, +228,255,211,255,191,255,239,255,28,0,8,0,4,0,13,0,26,0,21,0,219,255,18,0,129,0,24,0,131,255,165,255, +234,255,6,0,21,0,248,255,227,255,238,255,31,0,154,0,223,0,147,0,75,0,68,0,53,0,55,0,68,0,54,0, +44,0,249,255,156,255,189,255,22,0,227,255,185,255,19,0,57,0,6,0,247,255,246,255,226,255,233,255,252,255,251,255, +228,255,190,255,171,255,183,255,226,255,43,0,64,0,26,0,49,0,112,0,112,0,45,0,233,255,2,0,68,0,43,0, +246,255,217,255,197,255,232,255,7,0,248,255,27,0,94,0,106,0,48,0,21,0,96,0,103,0,6,0,15,0,88,0, +78,0,10,0,191,255,184,255,216,255,216,255,234,255,231,255,204,255,6,0,80,0,131,0,149,0,37,0,207,255,10,0, +53,0,47,0,12,0,222,255,9,0,23,0,216,255,14,0,103,0,73,0,19,0,249,255,254,255,34,0,5,0,187,255, +164,255,185,255,217,255,206,255,158,255,184,255,2,0,19,0,16,0,1,0,220,255,229,255,239,255,217,255,254,255,58,0, +45,0,15,0,31,0,44,0,17,0,1,0,251,255,206,255,181,255,205,255,208,255,202,255,210,255,212,255,220,255,226,255, +240,255,25,0,54,0,73,0,70,0,30,0,21,0,59,0,71,0,45,0,37,0,38,0,244,255,222,255,9,0,245,255, +214,255,255,255,14,0,21,0,39,0,17,0,16,0,251,255,196,255,241,255,41,0,32,0,39,0,13,0,215,255,212,255, +214,255,226,255,13,0,26,0,245,255,209,255,230,255,32,0,64,0,46,0,245,255,216,255,223,255,194,255,161,255,202,255, +33,0,44,0,210,255,191,255,252,255,13,0,58,0,96,0,29,0,1,0,21,0,237,255,214,255,236,255,240,255,226,255, +252,255,56,0,21,0,200,255,231,255,18,0,7,0,11,0,24,0,35,0,42,0,33,0,10,0,218,255,204,255,229,255, +229,255,244,255,7,0,253,255,4,0,6,0,7,0,11,0,222,255,223,255,2,0,228,255,220,255,235,255,221,255,241,255, +249,255,229,255,249,255,14,0,13,0,7,0,248,255,247,255,253,255,11,0,19,0,241,255,216,255,230,255,4,0,48,0, +52,0,240,255,158,255,125,255,176,255,243,255,241,255,237,255,22,0,41,0,16,0,252,255,4,0,27,0,48,0,19,0, +229,255,244,255,6,0,244,255,255,255,15,0,253,255,219,255,192,255,218,255,3,0,4,0,11,0,31,0,57,0,60,0, +19,0,46,0,101,0,41,0,245,255,10,0,3,0,240,255,230,255,218,255,216,255,216,255,216,255,206,255,228,255,32,0, +12,0,223,255,245,255,242,255,9,0,63,0,24,0,0,0,18,0,231,255,231,255,39,0,67,0,53,0,245,255,210,255, +239,255,198,255,149,255,211,255,244,255,212,255,241,255,19,0,241,255,223,255,241,255,250,255,4,0,6,0,251,255,17,0, +51,0,54,0,53,0,41,0,241,255,196,255,217,255,255,255,250,255,223,255,201,255,204,255,236,255,0,0,247,255,252,255, +18,0,28,0,10,0,238,255,252,255,28,0,12,0,240,255,253,255,12,0,254,255,240,255,238,255,235,255,16,0,74,0, +62,0,14,0,247,255,231,255,250,255,58,0,86,0,50,0,1,0,230,255,227,255,246,255,17,0,4,0,232,255,240,255, +238,255,229,255,250,255,243,255,225,255,2,0,32,0,20,0,251,255,252,255,23,0,28,0,24,0,29,0,8,0,248,255, +237,255,203,255,220,255,9,0,242,255,222,255,255,255,19,0,5,0,241,255,3,0,41,0,36,0,23,0,35,0,25,0, +4,0,6,0,0,0,242,255,250,255,5,0,243,255,218,255,221,255,248,255,5,0,252,255,247,255,6,0,16,0,12,0, +20,0,23,0,9,0,19,0,26,0,250,255,231,255,251,255,15,0,2,0,227,255,245,255,16,0,232,255,207,255,232,255, +239,255,251,255,18,0,16,0,19,0,21,0,1,0,252,255,14,0,24,0,2,0,234,255,249,255,252,255,230,255,232,255, +237,255,235,255,253,255,0,0,237,255,225,255,230,255,255,255,38,0,64,0,41,0,245,255,229,255,240,255,252,255,29,0, +39,0,254,255,234,255,243,255,241,255,244,255,250,255,238,255,236,255,9,0,19,0,252,255,246,255,11,0,27,0,23,0, +6,0,255,255,251,255,230,255,222,255,231,255,234,255,249,255,15,0,255,255,232,255,252,255,30,0,35,0,31,0,30,0, +12,0,0,0,11,0,14,0,8,0,1,0,245,255,254,255,11,0,241,255,226,255,250,255,235,255,203,255,233,255,255,255, +244,255,11,0,36,0,33,0,22,0,248,255,243,255,6,0,252,255,13,0,40,0,14,0,5,0,7,0,245,255,9,0, +28,0,0,0,239,255,239,255,236,255,233,255,237,255,246,255,249,255,1,0,1,0,246,255,15,0,43,0,23,0,15,0, +25,0,17,0,10,0,4,0,0,0,3,0,242,255,230,255,238,255,248,255,3,0,1,0,249,255,255,255,250,255,246,255, +10,0,24,0,17,0,8,0,10,0,18,0,22,0,6,0,242,255,249,255,2,0,233,255,211,255,225,255,5,0,33,0, +22,0,252,255,247,255,251,255,0,0,8,0,9,0,8,0,1,0,251,255,6,0,15,0,10,0,253,255,250,255,3,0, +254,255,247,255,252,255,244,255,246,255,0,0,245,255,246,255,2,0,254,255,6,0,11,0,2,0,2,0,3,0,3,0, +6,0,252,255,246,255,253,255,10,0,16,0,8,0,2,0,3,0,6,0,7,0,247,255,237,255,5,0,19,0,6,0, +248,255,244,255,247,255,244,255,244,255,249,255,247,255,6,0,27,0,19,0,12,0,9,0,247,255,248,255,7,0,253,255, +235,255,235,255,246,255,252,255,254,255,6,0,10,0,6,0,0,0,246,255,247,255,5,0,13,0,7,0,254,255,251,255, +244,255,242,255,3,0,11,0,10,0,14,0,0,0,243,255,253,255,255,255,252,255,0,0,249,255,249,255,253,255,246,255, +251,255,254,255,241,255,245,255,4,0,5,0,8,0,15,0,10,0,0,0,1,0,5,0,6,0,7,0,3,0,253,255, +248,255,246,255,251,255,255,255,251,255,251,255,253,255,249,255,254,255,7,0,6,0,5,0,8,0,5,0,253,255,253,255, +3,0,1,0,250,255,252,255,3,0,6,0,4,0,3,0,1,0,252,255,246,255,249,255,255,255,255,255,252,255,248,255, +250,255,2,0,4,0,255,255,254,255,4,0,8,0,6,0,255,255,255,255,3,0,252,255,247,255,254,255,3,0,4,0, +1,0,250,255,253,255,4,0,3,0,0,0,253,255,251,255,253,255,253,255,1,0,2,0,251,255,250,255,254,255,2,0, +5,0,0,0,253,255,7,0,7,0,254,255,253,255,2,0,4,0,0,0,253,255,1,0,254,255,247,255,251,255,0,0, +1,0,2,0,255,255,250,255,255,255,4,0,2,0,253,255,251,255,253,255,1,0,0,0,254,255,255,255,0,0,0,0, +3,0,4,0,2,0,1,0,2,0,1,0,255,255,254,255,253,255,251,255,250,255,254,255,252,255,251,255,254,255,0,0, +255,255,0,0,0,0,254,255,255,255,1,0,2,0,2,0,0,0,254,255,255,255,0,0,0,0,255,255,253,255,251,255, +253,255,0,0,0,0,254,255,253,255,254,255,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,255,255,252,255,252,255,0,0,0,0,252,255,252,255,254,255,255,255,1,0,2,0,0,0,0,0,254,255,253,255, +255,255,255,255,253,255,255,255,2,0,1,0,0,0,0,0,1,0,255,255,252,255,253,255,0,0,254,255,251,255,254,255, +0,0,254,255,0,0,1,0,254,255,254,255,0,0,1,0,1,0,0,0,255,255,0,0,255,255,254,255,254,255,254,255, +255,255,255,255,252,255,252,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,2,0,0,0,255,255,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,2,0,1,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255, +255,255,255,255,1,0,3,0,2,0,255,255,255,255,255,255,0,0,2,0,1,0,1,0,2,0,2,0,1,0,254,255, +254,255,0,0,1,0,2,0,4,0,3,0,1,0,2,0,1,0,1,0,2,0,3,0,1,0,0,0,0,0,1,0, +1,0,1,0,3,0,3,0,1,0,2,0,2,0,0,0,254,255,254,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,2,0,2,0,1,0,1,0,0,0,1,0,3,0,2,0,0,0,1,0,3,0,2,0,1,0,3,0, +3,0,1,0,0,0,1,0,0,0,2,0,2,0,253,255,255,255,4,0,3,0,1,0,2,0,2,0,1,0,1,0, +255,255,1,0,1,0,0,0,0,0,3,0,3,0,2,0,2,0,1,0,253,255,252,255,0,0,2,0,1,0,2,0, +2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,0,0, +0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,2,0,1,0,0,0,255,255,0,0, +2,0,1,0,0,0,1,0,1,0,2,0,3,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,3,0, +3,0,0,0,1,0,2,0,1,0,0,0,3,0,1,0,0,0,2,0,2,0,0,0,2,0,2,0,0,0,1,0, +2,0,3,0,2,0,0,0,255,255,0,0,0,0,0,0,255,255,254,255,0,0,1,0,1,0,2,0,2,0,1,0, +0,0,255,255,255,255,255,255,1,0,3,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,254,255,255,255,1,0,2,0,1,0,1,0, +2,0,1,0,255,255,0,0,1,0,254,255,254,255,0,0,2,0,3,0,2,0,1,0,1,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,2,0,3,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,2,0,2,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,255,255,254,255,0,0,2,0,1,0,1,0,2,0,1,0, +0,0,255,255,255,255,255,255,0,0,2,0,2,0,0,0,0,0,0,0,253,255,254,255,0,0,255,255,1,0,3,0, +3,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,1,0,2,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,1,0,3,0,1,0,255,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,254,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,1,0,1,0,255,255, +255,255,255,255,255,255,0,0,2,0,1,0,1,0,0,0,254,255,255,255,0,0,1,0,2,0,0,0,255,255,0,0, +0,0,255,255,255,255,254,255,255,255,0,0,255,255,0,0,1,0,254,255,254,255,1,0,0,0,254,255,254,255,254,255, +255,255,2,0,2,0,1,0,255,255,255,255,0,0,254,255,254,255,255,255,254,255,255,255,255,255,253,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,255,255, +254,255,255,255,254,255,254,255,255,255,2,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,0,0,1,0,255,255,255,255,255,255,255,255,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,2,0,2,0,1,0,255,255,0,0,1,0,0,0,1,0,1,0,255,255,254,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +254,255,255,255,1,0,255,255,254,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,0,0, +255,255,0,0,0,0,254,255,0,0,2,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +255,255,254,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,254,255,254,255,255,255,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,254,255,254,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,2,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,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,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +1,0,2,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,1,0,0,0, +1,0,1,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,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,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,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,255,255,255,255, +0,0,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,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,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,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,254,255,255,255,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,1,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,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,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,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,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,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,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/gravel1.pcm b/src/client/sound/data/gravel1.pcm new file mode 100755 index 0000000..886d038 --- /dev/null +++ b/src/client/sound/data/gravel1.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_gravel1[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,46,0,14,0,250,255,237,255,224,255,219,255,224,255,231,255, +229,255,222,255,230,255,245,255,251,255,254,255,3,0,10,0,10,0,6,0,27,0,78,0,124,0,129,0,85,0,42,0, +40,0,53,0,64,0,80,0,115,0,175,0,216,0,195,0,148,0,128,0,134,0,115,0,57,0,246,255,187,255,127,255, +37,255,183,254,149,254,223,254,118,255,72,0,212,0,141,0,200,255,240,254,243,253,253,252,152,252,240,252,182,253,105,254, +165,254,123,254,102,254,155,254,20,255,13,0,80,1,219,1,50,1,36,0,175,255,252,255,151,0,215,0,93,0,191,255, +133,255,26,255,121,254,185,254,197,255,98,0,72,0,43,0,134,0,65,1,233,1,5,2,165,1,53,1,239,0,225,0, +19,1,52,1,174,0,111,255,109,254,86,254,114,254,49,254,59,254,230,254,129,255,121,255,86,255,247,255,240,0,35,1, +123,0,167,255,137,255,75,0,168,0,4,0,95,255,57,255,67,255,166,255,249,0,0,3,165,4,160,5,150,5,11,3, +181,254,148,251,216,250,24,252,231,254,104,2,60,5,86,5,32,2,81,254,38,252,131,251,152,252,95,255,113,2,155,4, +114,5,141,4,226,1,244,254,4,254,73,255,134,0,232,255,65,254,227,253,7,255,214,255,18,0,70,0,188,255,184,254, +181,254,13,0,11,2,205,3,62,4,69,2,135,254,79,252,178,253,98,0,57,1,163,0,247,0,24,2,147,2,154,2, +88,2,187,1,116,1,143,1,42,2,1,4,89,7,63,11,253,12,199,10,201,4,61,252,154,244,204,239,77,239,68,247, +95,1,215,1,8,255,86,4,198,11,73,11,27,6,163,5,53,6,47,251,150,232,108,223,176,229,170,243,135,255,239,6, +7,11,108,9,182,4,132,3,228,4,41,5,112,3,214,255,45,252,62,250,190,250,57,252,32,250,163,243,214,238,50,241, +27,249,212,0,213,5,21,8,183,7,78,7,143,7,167,5,213,2,135,3,178,7,188,10,207,10,189,10,183,10,245,7, +150,2,32,252,99,246,57,245,220,250,236,2,182,5,94,2,159,254,166,252,122,251,139,251,237,252,61,255,58,2,85,5, +245,7,175,9,219,10,240,10,230,8,224,5,12,3,183,1,232,2,126,3,240,1,77,1,31,1,99,254,198,249,104,246, +223,244,138,242,39,241,252,245,212,254,197,4,78,5,3,2,20,254,213,251,110,251,247,251,20,252,13,252,162,253,150,0, +44,2,131,0,85,254,255,254,220,0,113,2,102,4,211,4,185,2,233,0,72,1,6,2,162,0,115,254,250,253,147,254, +228,254,75,254,213,253,197,255,237,1,205,0,84,254,96,253,217,253,89,254,106,254,190,255,94,2,245,3,109,3,173,255, +14,250,79,248,194,251,168,255,164,1,71,3,210,5,153,6,56,1,77,248,28,244,51,246,192,249,155,254,134,6,242,11, +111,9,200,3,82,2,239,5,81,11,63,14,192,12,251,8,173,4,143,255,4,252,210,254,211,7,200,14,35,12,165,1, +198,244,239,232,114,226,217,227,244,233,63,242,27,253,189,6,187,9,23,8,76,7,224,7,87,7,68,4,158,255,42,253, +184,255,198,5,228,10,138,11,188,9,133,9,1,8,7,0,128,245,87,241,50,245,87,250,227,250,63,247,199,243,37,244, +255,247,218,252,90,2,12,8,77,11,137,11,60,10,126,7,143,3,183,255,149,252,53,250,151,248,26,248,94,249,246,251, +10,254,85,253,31,250,255,247,95,248,31,249,58,250,22,254,89,5,154,13,201,18,3,18,229,10,109,0,63,248,118,245, +149,248,124,1,152,9,96,8,64,0,213,249,168,248,75,252,222,3,238,11,130,13,2,7,42,1,1,1,119,1,19,0, +215,254,135,252,92,247,22,241,58,236,251,233,204,235,77,242,57,250,233,255,25,3,87,5,110,9,229,14,203,15,210,10, +65,5,202,1,51,0,21,0,90,0,229,255,61,254,188,253,227,0,66,4,103,4,135,3,21,2,71,253,22,246,201,240, +115,239,26,242,216,249,206,6,39,20,97,26,115,22,234,13,116,7,44,1,245,247,228,240,251,240,99,245,16,247,230,241, +209,234,77,233,239,235,210,238,194,243,26,251,179,1,112,6,137,9,49,12,48,17,146,23,10,25,75,18,229,8,221,3, +48,3,158,4,66,8,132,11,170,9,235,1,92,248,48,243,90,244,251,246,236,247,111,249,8,252,252,251,129,247,38,242, +13,239,170,238,197,243,132,254,121,7,158,10,97,12,10,16,174,17,192,11,237,0,177,248,31,244,90,242,75,247,130,4, +160,19,122,26,192,21,80,12,69,3,210,249,128,241,212,237,37,239,31,242,49,243,198,242,22,243,1,245,39,249,193,254, +216,2,135,2,196,254,209,252,74,254,251,255,3,2,179,5,61,9,115,10,82,8,102,5,92,4,69,2,206,253,111,249, +66,245,100,243,5,247,237,251,41,252,36,250,52,253,121,5,127,10,48,9,127,7,209,9,124,15,246,20,82,22,81,18, +241,9,161,0,229,250,150,249,49,251,98,254,66,1,53,2,171,255,53,250,122,246,83,246,85,247,229,248,138,250,25,250, +133,247,245,245,0,249,243,255,115,5,144,5,239,0,70,252,95,252,219,255,160,2,187,4,6,7,71,7,163,4,159,2, +35,4,213,7,124,11,35,13,81,11,219,7,239,3,144,254,232,249,18,248,79,248,140,249,35,248,151,243,23,243,180,247, +37,250,112,249,158,250,76,253,169,252,28,250,179,251,181,0,139,5,30,11,168,16,79,18,255,13,23,5,89,252,156,246, +186,244,30,249,22,0,192,1,215,255,119,1,227,5,77,7,248,7,151,15,229,23,200,17,203,253,67,233,213,221,107,222, +197,232,166,247,87,3,189,5,99,2,125,0,5,2,5,7,106,14,50,20,124,20,106,16,93,13,108,11,77,6,56,255, +160,249,54,247,229,247,179,247,98,245,60,243,170,240,57,239,190,240,43,242,91,243,40,246,107,249,28,253,182,1,21,7, +52,13,133,18,206,21,240,22,79,22,132,19,23,12,162,3,16,1,15,255,27,246,243,235,69,232,170,234,174,238,123,241, +225,243,249,245,171,246,36,247,246,248,199,253,178,5,247,11,69,13,138,11,112,8,77,5,171,4,247,5,160,6,175,7, +36,9,113,5,161,252,207,247,189,249,119,252,52,254,245,1,137,7,62,10,137,6,83,255,29,250,171,247,67,246,207,246, +128,250,216,0,26,9,108,15,218,13,50,5,29,253,246,250,114,254,207,4,37,11,50,13,163,7,125,254,115,248,94,245, +9,243,238,243,230,248,203,252,66,252,223,250,103,255,171,15,138,38,137,47,193,31,154,6,35,247,67,243,218,239,240,229, +160,222,188,226,16,235,205,238,177,237,167,235,154,238,241,248,214,6,192,18,204,25,208,28,145,26,180,16,115,4,252,252, +66,251,64,253,73,1,175,6,229,10,2,10,87,6,25,5,87,5,64,1,152,245,1,233,217,229,163,237,221,252,139,15, +171,29,94,32,90,24,202,11,146,255,172,244,40,239,70,244,101,254,77,2,7,255,236,251,9,250,150,245,131,242,245,244, +163,247,223,247,154,250,165,2,104,11,131,13,9,11,46,11,145,10,20,5,159,0,192,0,63,2,111,1,242,252,89,247, +80,244,11,244,67,243,252,239,165,237,153,240,231,249,20,7,39,17,3,20,58,19,96,17,150,13,226,8,49,6,72,6, +54,6,80,4,170,1,150,254,94,252,158,251,77,250,8,248,82,245,165,244,225,248,240,251,121,249,97,249,208,253,174,254, +199,251,130,252,88,0,139,255,26,249,147,243,165,246,116,9,192,37,243,51,96,38,180,13,123,8,84,23,51,19,95,238, +194,207,136,206,236,216,84,227,188,239,142,249,44,254,183,1,191,2,188,253,184,247,153,246,196,249,14,255,129,4,249,9, +71,16,68,19,239,15,79,10,87,6,17,5,159,5,226,6,100,9,195,10,122,7,63,1,122,251,105,248,96,248,227,248, +206,248,185,248,133,249,110,252,110,255,151,255,18,254,46,253,72,253,187,253,211,255,56,4,82,6,235,4,244,4,52,6, +201,4,51,255,70,247,7,244,180,247,41,252,141,0,136,6,36,10,45,10,231,8,70,5,83,254,115,246,191,240,144,242, +102,3,137,30,60,43,140,20,124,231,93,202,172,205,205,219,94,232,115,1,230,34,20,51,198,41,98,18,50,253,254,248, +89,5,46,17,101,15,220,4,117,254,103,0,56,5,70,7,39,8,237,13,225,21,187,21,117,11,237,251,122,234,152,219, +151,213,78,220,128,236,31,252,164,4,195,8,32,14,243,21,7,26,235,19,63,7,88,252,180,245,147,242,251,243,120,249, +255,253,231,252,171,248,105,246,175,243,85,236,2,231,211,235,143,245,70,251,232,254,51,7,9,20,19,34,223,48,123,57, +71,46,254,16,64,243,26,223,38,213,50,214,6,224,4,237,188,248,142,255,106,0,112,255,247,1,161,9,70,19,179,23, +138,18,189,9,241,4,65,3,245,1,91,0,158,253,168,253,232,3,94,9,181,7,77,4,4,5,177,6,107,5,222,2, +107,0,243,252,95,249,84,248,179,251,255,2,175,10,72,15,118,15,224,12,148,10,12,6,226,250,150,238,231,233,8,236, +9,238,42,236,170,232,181,231,38,236,18,247,183,3,119,11,132,16,176,22,34,25,71,19,51,8,90,253,116,245,64,240, +102,238,87,242,80,251,175,4,85,9,208,6,249,0,22,253,80,249,247,242,47,239,255,242,10,250,37,253,227,252,158,254, +117,3,28,9,107,13,182,14,213,14,195,16,111,18,21,17,73,13,142,8,233,4,13,1,228,248,114,240,45,240,24,246, +91,250,25,253,65,2,90,6,166,3,81,253,69,251,148,255,175,5,191,6,179,254,248,242,253,238,62,243,76,244,171,240, +176,242,74,252,247,4,209,4,245,250,146,240,91,239,122,247,175,5,28,22,65,32,112,29,181,18,253,11,89,11,77,8, +193,0,251,249,28,246,181,244,180,244,11,244,134,242,201,243,120,252,18,9,155,14,236,9,230,0,39,248,63,243,220,243, +9,247,23,251,178,1,213,9,95,14,103,12,58,7,31,3,202,255,254,249,21,240,103,229,40,223,174,221,122,223,200,230, +101,243,160,254,195,4,101,9,175,15,208,23,130,32,190,37,168,37,84,35,188,32,193,30,175,28,198,20,219,6,125,252, +17,249,254,246,55,243,25,237,61,227,231,215,5,210,2,215,228,229,7,248,169,5,175,11,250,11,16,8,108,2,225,255, +24,0,93,0,30,5,9,18,242,31,24,34,25,19,1,255,4,247,167,250,158,254,167,255,239,254,225,250,181,242,58,234, +61,231,150,233,124,236,180,239,45,244,196,247,26,252,54,5,109,17,196,26,229,28,40,25,245,21,178,22,143,23,53,21, +17,17,152,12,204,8,191,6,165,3,95,252,43,243,251,235,193,231,181,227,91,222,82,219,173,218,5,217,86,219,33,230, +179,241,137,246,68,246,168,246,247,254,181,21,198,57,216,92,240,107,2,95,100,57,3,5,132,209,11,175,32,173,92,210, +145,10,168,53,64,69,207,56,196,20,251,232,76,202,211,192,81,196,239,203,60,216,92,233,146,251,194,12,232,25,189,33, +223,38,123,39,198,33,11,26,72,16,213,0,171,239,157,227,198,220,222,215,170,213,168,218,129,232,202,250,216,10,55,21, +150,25,7,23,108,13,164,0,24,247,113,247,62,4,95,23,74,39,138,46,225,40,6,19,65,246,1,230,212,231,208,238, +124,241,130,239,93,232,111,223,161,222,14,234,100,250,245,6,70,14,177,18,6,20,192,16,157,11,41,10,60,14,182,22, +105,32,229,34,167,25,144,12,229,2,245,250,68,244,97,243,89,249,87,0,189,3,56,4,71,1,128,249,206,240,100,237, +118,240,71,244,160,244,136,246,232,253,55,5,61,7,124,5,251,3,4,4,102,4,209,4,89,3,22,255,76,252,41,250, +14,245,216,243,114,253,105,15,212,34,171,43,0,34,254,12,77,248,181,233,202,226,62,229,30,243,112,6,178,18,186,17, +66,5,51,244,12,232,97,228,39,230,137,233,130,238,82,250,1,11,180,17,46,7,94,247,79,242,165,250,87,5,219,10, +110,13,252,12,229,8,117,7,60,12,146,18,59,20,127,14,168,3,110,248,81,242,186,245,136,254,126,3,181,3,162,4, +250,5,88,2,179,249,180,240,220,231,163,223,233,220,234,224,202,232,145,241,77,247,121,250,113,0,254,9,213,18,182,23, +98,24,48,20,122,9,151,252,179,244,130,242,11,245,23,251,174,253,195,247,156,237,108,231,229,232,53,238,188,242,77,246, +214,250,41,4,109,20,25,38,0,48,121,44,94,31,114,22,145,23,147,22,238,10,250,252,249,244,175,242,111,244,194,246, +71,247,58,249,81,251,126,246,234,236,235,232,93,238,21,248,154,255,217,1,213,254,31,250,221,249,181,0,237,11,76,23, +7,31,193,32,130,28,80,20,194,10,243,0,101,246,244,235,66,230,111,233,13,242,81,249,68,253,85,255,227,1,105,6, +218,10,223,13,236,14,76,10,50,0,230,246,93,241,58,239,5,243,254,253,164,8,215,9,49,3,14,250,74,239,251,232, +43,240,206,0,163,13,36,17,167,16,98,16,169,12,225,3,10,252,70,250,75,255,206,7,177,12,208,10,200,6,178,5, +184,8,41,13,253,12,202,4,204,250,55,249,192,1,65,13,215,19,109,18,89,13,146,9,114,4,61,251,71,242,139,237, +93,234,138,228,185,223,92,226,92,232,223,234,52,236,86,239,223,242,183,245,12,249,89,0,46,10,115,15,123,16,89,19, +189,24,32,30,101,33,86,32,181,25,164,14,87,3,118,251,73,247,186,245,202,244,188,242,163,239,143,237,64,240,217,246, +139,251,153,253,139,255,45,1,152,2,214,3,76,4,71,4,146,3,137,3,136,6,236,10,41,13,166,12,188,11,45,10, +24,3,97,247,176,240,86,243,254,248,240,250,208,248,20,244,26,237,55,233,31,240,193,255,250,13,149,20,32,20,148,14, +9,6,216,253,172,246,8,242,44,249,221,12,118,25,185,17,46,3,83,253,243,247,138,232,204,221,155,231,254,250,18,7, +223,8,39,3,232,250,137,246,199,247,109,252,236,1,61,6,83,8,111,9,196,13,252,21,238,26,58,24,238,19,212,19, +76,21,32,20,123,14,142,2,1,242,113,226,183,214,19,208,193,209,132,219,92,231,124,240,61,247,41,252,165,252,15,250, +92,251,246,0,3,5,7,9,247,18,193,32,180,41,122,41,173,37,235,34,4,27,242,11,51,255,214,247,100,240,161,232, +226,229,111,235,176,243,63,245,231,240,231,237,165,240,122,249,159,255,83,250,135,240,227,236,185,239,92,246,49,1,44,14, +99,21,17,20,5,16,97,8,53,252,47,248,48,1,51,11,59,16,141,17,133,11,210,253,100,241,75,235,176,231,78,231, +123,239,146,252,70,8,220,17,34,20,190,7,65,243,55,233,160,243,152,8,30,24,180,28,128,26,174,23,239,19,230,9, +81,253,77,246,16,243,57,240,154,239,120,241,202,244,149,249,123,0,144,7,40,7,139,253,188,245,132,245,164,245,19,242, +178,241,113,249,223,2,151,7,185,9,156,9,215,4,22,255,171,253,180,0,82,3,250,255,79,248,33,244,75,247,42,254, +155,3,181,7,171,12,162,16,164,17,212,15,102,10,109,2,151,251,38,248,41,248,87,250,52,253,95,255,235,255,211,0, +245,3,36,6,46,4,137,1,119,4,171,12,234,17,205,13,51,2,31,245,66,235,55,230,211,228,243,229,204,234,226,242, +27,249,50,251,125,252,255,253,240,253,171,252,207,252,102,1,202,8,24,13,9,14,43,16,3,20,132,22,175,21,60,18, +52,13,25,6,202,254,125,250,62,248,76,246,22,245,108,244,190,244,105,247,123,251,86,255,23,2,99,1,45,252,69,246, +84,244,67,247,69,253,38,4,176,9,172,11,201,9,227,5,153,0,121,250,41,247,112,248,48,251,69,253,4,255,119,255, +7,254,221,252,178,253,13,0,166,2,9,4,70,4,192,4,13,5,2,5,28,6,181,7,38,8,47,7,167,4,11,1, +182,252,161,247,178,243,106,243,18,248,162,255,221,3,60,1,14,250,155,243,29,244,224,250,49,0,1,2,156,3,21,6, +31,8,119,6,82,0,99,250,6,248,254,248,234,252,57,2,5,6,220,6,132,5,57,3,157,0,91,254,205,253,206,1, +87,12,89,24,29,28,16,20,5,5,20,244,169,227,21,217,186,218,196,230,184,245,46,3,134,12,75,14,166,7,14,253, +2,246,230,246,250,253,126,7,151,17,138,26,15,31,251,29,42,26,85,22,69,19,111,16,59,11,167,1,236,244,251,231, +158,222,117,219,53,221,206,225,185,232,174,239,245,243,228,246,219,250,109,255,62,4,47,10,226,16,130,22,190,24,216,21, +23,15,209,8,104,6,158,7,234,8,76,5,218,251,184,242,137,238,154,237,242,238,132,242,218,244,137,244,236,244,244,247, +195,252,21,3,197,10,227,18,247,27,96,37,106,42,78,41,175,35,7,23,44,3,202,240,156,230,101,226,187,223,174,222, +12,224,123,224,174,222,235,221,243,222,87,224,54,226,72,230,41,239,34,253,201,14,236,33,245,47,68,52,137,49,242,42, +179,35,145,31,83,29,51,26,39,22,231,16,166,9,179,0,157,247,192,239,168,232,128,226,241,222,200,222,18,226,3,232, +148,238,242,243,84,247,98,249,84,251,113,253,12,0,202,3,57,8,155,11,183,12,173,12,56,12,91,10,153,8,93,8, +139,6,82,2,161,255,96,255,71,255,51,255,192,255,255,255,246,255,223,0,160,1,201,255,218,251,164,248,133,248,61,251, +188,252,87,250,181,247,142,249,182,255,109,6,225,9,235,8,35,5,207,0,140,253,11,251,2,248,200,245,57,247,174,251, +217,255,37,2,86,2,206,0,52,0,189,1,54,2,136,0,238,255,18,1,64,1,10,0,55,0,41,3,76,6,229,6, +96,5,226,2,109,255,163,251,104,249,226,248,201,247,48,246,21,247,52,251,40,0,77,3,254,3,85,3,222,1,145,0, +214,0,158,1,149,1,95,1,57,2,102,5,6,9,200,8,184,4,155,0,207,254,118,255,126,1,8,4,40,6,10,6, +54,2,113,251,78,245,148,242,5,243,252,246,244,253,219,3,186,5,234,3,155,0,177,253,206,250,92,249,254,253,186,9, +48,20,62,17,36,5,123,4,132,18,16,27,46,19,184,4,98,253,76,255,94,1,46,253,114,245,99,239,65,236,218,232, +48,228,7,226,194,229,106,239,25,248,49,246,70,236,83,230,42,234,37,246,117,5,121,17,79,22,131,21,88,18,47,15, +180,15,209,21,10,28,172,28,79,25,139,20,31,14,253,6,142,1,30,255,210,254,31,254,65,250,112,243,215,238,189,239, +139,241,139,240,180,240,35,245,104,250,19,252,159,250,244,250,208,254,154,1,88,1,242,0,86,0,195,253,103,250,129,249, +42,255,222,9,214,16,252,16,230,15,65,16,147,14,58,7,201,250,23,237,16,227,55,226,155,235,26,249,91,4,192,10, +111,12,113,11,13,9,213,5,13,3,21,2,73,4,100,8,200,10,178,10,45,9,179,6,236,4,17,5,159,5,252,3, +2,0,36,252,214,248,116,245,190,243,106,244,106,246,38,249,73,251,179,252,230,254,35,1,2,2,130,2,115,4,71,7, +176,7,248,4,249,2,141,3,46,4,152,2,162,255,207,253,189,253,199,253,23,253,206,251,218,249,59,248,65,249,85,253, +42,1,98,2,157,3,65,7,45,10,67,8,93,2,165,252,4,250,123,250,236,251,180,252,52,254,23,2,254,5,88,6, +227,2,107,253,134,248,195,246,139,247,145,248,248,249,204,252,123,0,143,3,163,4,27,4,36,4,3,5,176,4,8,3, +242,1,138,1,27,0,23,254,3,254,203,255,128,0,32,255,80,253,45,252,106,251,38,250,50,248,141,247,34,250,72,254, +237,0,127,1,99,1,203,1,248,2,140,4,222,5,199,5,98,3,195,255,18,253,194,251,109,251,6,253,23,0,173,1, +60,1,232,0,48,1,165,1,202,2,91,4,138,4,85,2,103,255,195,254,14,1,155,2,219,255,142,251,100,250,135,251, +24,252,82,251,30,250,182,251,193,0,75,4,39,4,134,3,66,4,7,5,252,3,129,1,64,0,98,1,25,3,126,3, +175,2,206,1,133,1,67,2,178,3,12,5,61,6,221,5,212,2,249,255,3,255,133,253,26,251,97,251,83,0,171,5, +89,5,189,255,35,250,155,247,88,247,101,247,149,247,193,248,156,250,51,252,166,252,36,253,229,0,8,7,192,10,203,9, +245,4,44,255,233,252,24,0,218,5,151,9,59,10,246,9,41,9,153,7,214,6,88,6,3,4,120,0,38,254,78,254, +224,255,213,0,167,0,5,0,92,255,83,254,174,252,140,251,47,251,153,249,90,246,115,243,106,242,128,243,152,245,206,247, +244,250,95,254,111,255,221,253,7,252,152,252,65,0,123,4,2,7,157,8,175,10,95,12,219,10,251,5,15,2,127,1, +180,2,93,4,52,6,50,8,196,9,123,9,189,6,100,1,242,250,158,247,53,248,38,249,116,249,110,251,79,0,117,5, +168,6,114,3,44,254,98,249,99,247,116,247,1,248,242,249,164,252,140,253,33,252,53,250,74,250,145,252,28,255,254,0, +150,1,93,0,144,254,109,254,62,1,119,5,104,8,184,9,139,10,22,12,148,13,225,10,50,3,5,253,59,253,91,0, +0,1,6,0,213,0,37,2,172,0,33,252,7,247,115,244,233,244,31,246,6,246,142,244,232,243,86,246,137,251,171,0, +176,2,123,2,128,3,175,5,68,7,155,8,121,10,181,12,96,13,247,10,168,7,101,5,109,3,74,1,219,254,219,251, +106,248,19,245,190,242,64,241,230,240,72,243,248,246,128,249,229,251,10,255,175,1,29,3,78,4,136,6,99,8,143,7, +234,4,79,2,233,0,190,1,184,3,23,5,11,6,52,6,33,4,191,0,92,254,128,252,185,249,251,247,84,249,133,251, +169,251,60,250,231,249,150,252,14,1,227,3,46,3,75,0,54,254,243,253,12,254,43,254,49,255,178,0,196,1,254,1, +210,1,129,2,53,3,77,2,169,1,145,2,139,2,64,1,166,0,20,0,208,254,104,254,32,255,120,255,75,255,245,255, +164,1,251,2,83,3,214,2,18,1,236,253,231,250,187,249,40,250,250,250,142,252,250,254,13,0,243,254,237,253,138,254, +232,255,68,0,19,255,248,253,96,254,205,255,207,1,71,4,33,6,95,6,191,4,204,1,77,255,93,254,126,254,55,0, +65,4,129,8,210,9,221,6,169,0,58,250,234,245,2,244,16,245,36,249,22,254,79,2,152,5,67,7,21,7,109,5, +91,2,129,254,118,250,182,246,88,245,85,248,252,254,173,6,137,12,232,14,157,13,58,9,117,3,123,254,234,250,11,248, +35,246,128,246,195,248,45,251,136,253,205,255,119,0,88,255,61,254,17,254,152,254,220,255,104,1,217,1,135,1,52,2, +128,3,74,4,190,4,132,4,98,3,10,2,77,0,5,254,109,252,179,252,36,254,156,254,53,253,214,250,150,248,191,247, +3,249,167,251,191,254,75,1,127,2,120,2,13,2,76,2,195,1,36,255,220,1,129,18,180,40,178,48,22,36,155,16, +246,3,161,251,165,239,232,226,143,222,147,228,10,238,213,242,254,240,18,238,197,238,168,238,231,231,230,222,222,220,127,228, +154,241,239,254,230,9,108,18,43,25,107,31,207,37,56,42,83,42,234,38,85,33,84,25,194,15,154,6,174,254,70,249, +82,247,37,246,1,244,164,244,116,250,146,255,110,252,184,242,64,235,93,234,161,236,137,237,127,237,128,240,100,247,60,254, +72,2,206,4,129,7,210,9,215,9,202,5,92,254,147,248,229,248,42,253,121,0,148,1,201,2,81,6,211,10,220,12, +253,11,167,10,33,10,154,9,59,8,160,6,254,4,39,2,82,254,144,251,3,251,148,251,71,251,136,249,214,247,244,247, +183,249,33,251,110,251,212,251,117,252,26,252,249,250,51,251,35,254,68,2,89,5,224,6,70,7,12,7,142,6,20,6, +97,6,158,7,91,8,233,6,16,4,220,2,59,3,96,1,255,252,193,249,248,248,84,249,55,250,210,251,190,253,152,255, +167,1,83,3,238,3,81,4,14,5,120,6,134,9,229,12,210,12,70,7,70,254,43,246,194,241,215,240,65,242,226,245, +249,251,106,2,73,5,1,3,194,253,150,249,131,248,118,248,197,247,244,247,73,250,119,254,176,3,8,9,44,14,253,18, +43,22,123,21,23,17,149,12,29,9,66,4,128,254,153,250,160,248,67,247,73,246,18,246,29,246,179,245,46,246,12,249, +247,252,139,255,185,255,181,254,210,254,93,0,239,1,2,3,242,3,16,5,223,5,133,5,72,4,105,3,238,3,7,5, +143,3,46,254,68,248,200,245,160,246,197,247,188,247,59,248,253,249,70,250,140,247,146,244,228,244,161,249,235,0,93,7, +45,12,67,17,89,21,130,20,1,16,38,13,104,12,240,9,13,5,61,0,155,252,250,248,176,243,251,236,2,232,166,231, +179,234,96,237,32,239,12,243,246,248,252,252,186,254,218,0,226,3,41,7,181,10,45,14,45,17,148,19,131,20,211,18, +168,14,111,9,62,4,112,255,147,251,7,249,56,247,214,245,172,245,18,247,216,248,209,249,44,250,126,250,12,251,94,252, +84,254,78,255,217,254,21,255,77,1,244,3,22,5,217,4,168,4,245,4,57,5,187,4,179,2,102,255,50,252,64,250, +77,250,225,251,159,253,128,255,217,1,228,3,68,5,22,6,12,6,123,4,36,1,239,253,23,253,16,253,220,250,234,246, +92,244,248,244,96,247,62,249,48,250,119,251,115,253,208,254,249,254,147,255,28,2,229,5,56,9,50,11,246,11,191,11, +233,10,234,9,138,8,113,6,27,4,134,2,58,2,32,2,106,0,241,252,148,249,76,248,198,248,69,249,168,249,21,250, +150,249,246,248,56,250,131,253,119,1,11,4,42,4,93,3,48,3,99,3,111,3,76,2,142,255,149,253,205,253,56,254, +225,253,68,254,16,0,69,2,68,3,88,2,125,0,56,255,124,255,144,0,246,0,121,1,115,3,69,5,38,5,219,3, +113,2,199,0,178,254,155,252,74,251,157,251,56,253,67,254,61,254,93,254,221,254,37,255,22,255,101,255,8,1,73,3, +172,4,246,4,72,4,35,3,43,2,96,1,63,1,172,1,103,1,35,0,205,253,170,250,11,248,46,246,241,244,216,244, +45,246,107,249,138,253,31,0,181,1,90,4,247,7,11,11,151,11,246,8,115,5,78,3,34,2,239,0,29,0,20,0, +105,0,246,0,74,1,223,0,102,0,19,0,191,254,196,251,77,248,228,246,68,248,43,250,236,250,74,251,239,252,40,0, +112,3,156,5,228,5,252,3,59,2,181,2,62,4,48,5,14,5,136,4,155,4,28,4,148,1,53,254,57,252,104,252, +123,253,229,253,224,253,80,254,13,255,36,255,84,254,152,253,89,253,85,253,80,254,162,0,15,3,131,4,245,4,3,5, +21,5,166,4,123,3,100,2,8,2,65,2,89,2,95,1,177,255,16,255,165,255,128,255,5,254,152,252,225,251,143,251, +78,252,177,254,221,0,4,1,63,0,5,0,54,0,97,0,135,0,21,1,156,1,4,1,62,0,190,0,105,1,240,0, +70,0,156,0,5,1,207,255,234,253,65,254,73,1,183,3,139,2,162,255,122,255,45,3,204,7,149,9,55,7,122,3, +169,1,184,1,212,1,128,0,163,253,47,251,253,250,87,252,2,253,16,252,82,250,127,248,14,247,206,246,206,247,75,249, +62,251,20,254,216,0,45,2,239,2,99,4,86,5,133,4,89,3,151,3,83,4,191,3,128,2,246,1,147,1,116,0, +192,254,115,253,201,253,153,255,106,1,28,2,78,1,174,255,72,254,70,253,7,253,84,254,104,0,85,1,206,0,146,0, +145,1,172,2,218,2,3,2,103,0,48,255,116,255,31,0,200,255,2,255,133,254,85,254,207,254,70,255,212,253,171,250, +139,248,77,249,11,252,228,254,227,0,36,2,70,3,203,3,83,2,250,255,20,255,109,255,31,0,196,0,137,0,228,255, +217,255,24,0,29,0,104,255,178,253,87,252,39,253,219,255,19,2,102,2,248,1,54,2,71,3,193,3,230,1,60,255, +195,254,196,255,190,255,181,254,81,254,99,255,25,1,217,1,129,0,174,253,191,251,81,252,93,254,57,255,119,253,64,251, +219,251,18,255,254,1,254,2,40,3,219,3,149,4,177,4,59,4,211,2,237,0,131,255,134,254,53,254,15,255,65,0, +202,0,213,0,189,0,185,255,88,253,89,251,227,250,159,250,10,250,89,250,244,251,60,254,82,0,137,1,208,1,96,1, +119,0,159,255,148,255,193,0,61,2,68,2,180,0,26,255,153,254,87,255,89,0,63,0,40,255,118,254,59,255,176,0, +155,0,76,255,130,255,135,1,115,3,48,4,75,3,47,0,235,251,195,250,4,254,8,0,254,254,166,255,175,1,88,1, +75,255,166,253,53,253,82,253,144,252,193,251,28,252,124,252,105,252,28,253,19,254,119,253,208,252,128,254,206,255,241,254, +44,255,249,0,150,2,218,4,141,7,245,8,80,8,194,5,43,3,220,1,245,0,191,0,196,1,160,2,30,2,74,0, +204,254,246,255,130,2,150,2,11,0,63,254,197,254,66,0,18,1,225,0,245,255,85,254,222,252,1,253,101,254,172,255, +20,1,111,3,103,4,180,255,91,247,124,243,118,246,141,251,74,255,174,0,193,255,163,253,25,252,4,254,106,4,173,11, +132,15,153,15,81,15,169,15,141,12,30,6,175,1,246,254,240,250,30,248,41,249,151,252,72,0,223,1,27,254,218,244, +197,234,215,227,77,224,51,224,57,228,82,235,21,243,71,249,5,253,95,255,109,2,137,7,88,13,20,17,175,18,27,20, +54,22,150,25,28,30,247,32,156,31,114,27,246,21,95,12,169,254,234,244,49,243,108,243,122,242,83,243,72,245,239,244, +168,241,64,237,43,234,162,232,192,230,92,229,79,231,246,236,44,245,234,254,133,7,42,13,70,18,1,24,248,26,12,26, +70,23,72,19,222,14,252,10,217,6,139,2,230,254,149,251,216,248,89,247,116,246,117,245,253,244,205,245,245,246,157,247, +88,249,45,253,49,1,114,3,227,4,175,7,15,11,245,11,12,10,9,7,124,3,173,255,19,252,74,249,30,248,38,248, +201,248,113,250,206,252,144,254,204,253,149,249,4,245,7,244,75,246,210,249,172,254,82,5,240,11,150,15,247,15,220,14, +13,13,28,11,54,10,37,10,31,9,90,6,149,3,229,1,127,255,217,251,9,249,16,248,120,248,91,249,200,249,194,249, +237,248,60,247,77,247,103,250,43,254,203,0,27,2,0,2,143,0,88,254,192,252,186,252,34,254,208,0,219,2,114,2, +180,2,13,6,227,7,221,3,87,254,210,254,31,3,113,2,231,253,119,253,166,0,172,2,136,3,32,5,210,7,76,9, +199,7,46,6,138,5,24,2,109,252,94,249,202,248,67,246,112,241,246,238,54,240,170,241,76,242,7,244,196,246,124,249, +48,252,150,254,86,0,158,2,194,6,169,11,153,15,109,18,146,19,60,18,123,15,145,12,14,10,217,8,254,8,31,9, +7,8,179,5,250,2,198,0,186,255,169,255,14,255,174,252,169,249,92,248,53,249,17,250,170,249,220,248,14,248,82,247, +115,247,216,247,74,247,30,247,219,248,69,251,86,253,155,255,100,1,211,1,250,1,133,2,6,3,108,3,131,3,65,3, +85,3,32,4,46,5,91,5,118,4,80,4,82,5,167,5,189,4,107,3,86,2,191,1,112,1,37,1,159,0,203,255, +231,254,116,253,246,250,167,248,140,248,142,251,197,255,229,1,233,0,57,254,124,252,12,253,169,253,103,254,102,2,59,6, +192,3,252,252,15,248,58,247,182,248,168,250,212,253,8,2,24,4,52,3,69,2,178,2,107,2,29,0,31,254,188,254, +208,0,211,1,165,0,163,254,225,253,43,254,3,254,130,253,45,254,56,0,245,1,204,2,50,3,143,2,184,0,136,254, +9,253,47,253,26,254,221,254,126,0,100,2,175,2,94,1,110,255,111,254,179,254,65,254,136,253,1,255,117,1,86,1, +158,254,104,253,27,255,167,255,166,253,198,252,45,254,192,255,16,1,249,2,219,4,28,5,243,3,6,3,191,2,225,2, +186,3,226,4,207,4,225,2,181,0,197,255,188,255,90,0,15,1,87,0,175,254,25,254,133,254,108,254,164,253,119,253, +63,254,223,254,215,254,80,254,154,253,110,253,158,253,185,253,41,254,139,254,157,254,76,255,171,0,230,1,31,2,239,0, +196,255,91,255,52,254,244,252,59,254,84,1,22,3,190,2,216,1,35,1,8,1,17,2,135,2,229,0,107,255,220,255, +4,1,240,1,224,1,77,0,13,255,211,255,159,1,198,2,177,2,225,1,100,1,247,1,137,3,122,4,76,2,150,253, +83,250,174,249,250,248,69,248,240,249,146,252,122,253,88,253,42,253,159,252,86,252,137,252,38,252,216,251,198,253,106,1, +209,3,3,4,138,3,209,3,20,5,101,6,186,6,59,6,156,5,124,5,184,5,139,4,56,1,133,253,176,250,205,248, +39,248,216,248,230,250,233,253,98,0,142,1,47,2,198,2,196,2,194,1,177,0,77,0,138,255,187,253,184,251,54,250, +119,249,154,249,87,250,119,251,195,252,162,253,37,254,90,255,65,1,138,2,98,3,196,4,90,5,221,3,230,1,15,1, +29,1,140,1,89,2,170,3,23,5,17,6,174,6,211,6,40,6,149,4,194,1,181,253,169,249,43,247,65,247,180,249, +245,252,180,255,140,1,42,2,54,1,20,255,73,253,83,253,187,254,136,255,59,255,109,255,214,0,86,2,206,2,243,1, +197,0,121,0,71,0,148,255,196,255,50,1,144,2,43,3,93,3,156,3,242,2,147,0,152,254,143,254,206,254,150,254, +94,255,58,1,53,2,105,1,255,255,176,254,184,253,80,254,140,0,181,2,100,3,4,2,187,255,212,254,174,255,253,0, +161,1,75,1,24,1,239,1,46,3,208,3,27,3,174,1,193,0,149,255,91,253,224,250,63,248,8,246,171,245,125,246, +207,247,15,251,222,255,109,3,117,4,211,3,4,3,249,2,87,3,159,3,17,4,173,4,58,5,90,5,100,4,244,2, +143,2,55,3,177,3,219,2,176,0,190,254,204,253,251,252,0,252,8,251,21,250,184,249,230,249,168,249,26,249,83,249, +150,250,205,251,26,252,251,251,32,252,209,252,25,254,94,255,35,0,145,0,214,0,3,2,245,4,68,7,63,6,184,3, +232,2,104,3,195,2,142,0,255,254,151,0,30,5,186,8,218,7,194,3,146,0,146,255,152,254,97,252,107,250,208,249, +43,249,21,247,149,244,197,243,64,245,222,247,95,250,71,252,215,253,103,0,206,4,74,9,96,11,191,10,8,9,252,7, +127,7,58,6,158,4,246,3,157,3,140,2,63,1,107,0,179,255,21,254,201,251,74,250,204,249,67,249,195,248,248,248, +155,249,102,250,40,252,49,255,58,2,68,4,112,5,235,5,213,5,207,4,138,2,173,0,77,0,209,255,96,255,198,0, +47,2,3,1,196,254,156,253,50,253,153,252,64,252,235,252,143,253,4,253,118,252,236,252,232,253,5,255,16,0,111,1, +76,3,30,4,84,3,76,2,152,1,51,1,78,1,201,1,181,2,188,3,209,3,240,2,224,1,220,0,29,0,126,255, +75,254,63,253,121,253,248,253,244,253,68,254,97,254,244,252,4,251,137,250,112,251,85,252,146,252,69,252,31,252,43,253, +5,255,45,0,90,0,140,0,136,1,165,2,189,2,123,2,238,2,126,3,53,3,5,2,219,0,117,0,88,0,67,0, +166,0,140,1,87,2,32,2,109,1,125,1,210,1,181,1,221,0,246,254,68,253,165,252,44,252,201,251,230,251,93,252, +4,253,111,253,185,253,81,254,9,255,213,255,162,0,89,1,212,1,199,1,14,2,226,2,158,2,150,1,212,1,87,3, +114,4,15,4,136,2,87,0,184,253,233,251,99,251,59,251,177,251,161,253,18,1,237,4,29,7,242,6,159,5,211,3, +183,1,247,255,5,255,55,254,121,253,73,254,50,0,184,0,21,0,160,0,221,2,55,4,196,1,166,253,162,252,43,254, +121,254,35,253,22,252,35,252,235,252,84,254,87,0,156,1,23,1,84,0,189,0,68,1,246,0,203,255,236,253,249,252, +236,253,150,254,243,253,13,254,158,255,90,1,195,2,251,3,88,4,56,4,198,5,234,8,180,10,16,10,65,8,55,6, +223,3,247,0,133,254,178,253,152,253,212,252,152,251,221,250,198,250,139,250,231,249,83,249,128,249,188,250,182,251,83,251, +39,251,230,252,173,255,16,1,20,0,183,254,193,254,109,255,237,255,143,0,94,1,184,1,16,1,240,255,26,255,53,254, +69,253,45,253,27,254,108,255,132,0,55,1,20,2,97,4,41,9,241,15,224,21,216,22,203,16,46,6,98,252,47,247, +56,245,35,242,196,236,246,231,105,230,251,232,149,239,159,249,146,4,93,11,121,11,215,7,77,3,207,253,134,248,94,247, +30,253,247,6,73,15,162,20,112,24,251,25,242,23,230,18,63,12,92,5,153,255,209,251,175,249,31,248,152,246,89,245, +193,244,42,245,102,246,57,247,245,246,29,247,196,248,191,250,117,252,133,254,254,0,85,3,122,4,51,4,207,3,110,3, +88,2,92,1,67,1,192,1,129,2,117,3,70,4,133,3,218,0,191,254,80,254,175,253,235,251,39,250,208,249,225,250, +16,252,245,252,13,254,96,255,143,0,214,0,225,255,158,254,180,254,2,1,163,3,55,4,251,3,210,4,185,5,131,5, +185,4,255,3,197,2,148,0,137,254,73,253,68,252,201,251,233,251,145,251,64,250,28,248,98,246,16,247,183,249,228,251, +157,252,237,252,217,253,63,255,227,0,171,2,130,3,3,3,124,2,126,2,61,2,94,1,132,0,44,0,171,255,188,254, +82,254,137,254,218,254,164,255,37,1,193,2,152,3,95,3,43,3,13,4,85,5,145,5,103,4,219,2,6,2,59,2, +217,2,97,2,224,0,107,0,217,0,159,255,180,252,183,250,222,250,130,251,124,251,120,252,54,255,131,1,239,1,87,1, +36,1,170,1,170,1,203,0,197,0,82,2,2,4,135,4,71,4,243,3,28,3,197,1,190,0,244,255,89,255,27,255, +121,254,101,253,12,253,161,253,29,254,219,253,95,253,202,253,162,255,190,1,44,2,248,0,12,0,70,0,107,1,58,3, +33,5,128,6,195,6,99,5,120,2,195,254,244,251,204,251,150,253,33,255,21,0,52,1,231,1,51,1,101,255,50,253, +18,251,11,250,235,250,212,252,91,254,83,255,32,0,160,0,170,0,46,0,207,255,93,1,228,4,186,7,221,8,16,10, +178,11,160,11,205,8,32,4,22,254,30,248,123,245,247,246,15,250,154,252,28,254,225,254,237,253,234,249,7,245,33,243, +11,245,190,248,58,252,22,255,101,1,253,2,79,4,86,5,242,5,60,7,129,9,166,11,182,12,121,12,142,11,173,9, +25,6,135,2,151,0,218,254,182,251,55,248,162,246,189,246,74,246,93,245,74,245,213,245,235,246,130,249,222,253,100,2, +204,4,12,5,234,4,72,5,9,6,182,6,164,6,186,5,102,4,239,2,11,2,172,2,162,3,171,2,72,0,66,254, +162,252,247,250,189,249,27,250,87,252,140,254,34,255,167,254,82,254,175,254,51,255,104,255,176,255,211,255,165,255,208,255, +15,0,182,255,61,255,138,255,152,0,93,1,136,1,189,1,233,1,203,1,123,1,243,0,105,0,253,255,156,255,143,255, +11,0,2,1,30,2,193,2,186,2,95,2,51,2,13,2,43,1,61,0,161,0,114,1,254,0,118,255,2,254,163,252, +211,250,162,249,31,250,7,251,60,251,195,251,137,253,156,255,163,0,26,1,16,2,253,2,251,2,54,2,99,1,59,1, +32,2,114,3,139,3,72,2,8,2,210,2,245,1,169,255,27,254,138,253,72,253,0,253,13,253,215,253,174,254,83,255, +40,0,185,0,206,0,130,0,173,255,210,254,68,254,163,253,19,253,245,252,156,253,42,255,236,0,27,2,118,2,30,2, +230,1,90,2,236,2,255,2,56,2,131,0,155,254,39,253,15,252,107,251,223,251,187,253,0,0,42,1,76,1,51,1, +171,0,7,0,95,0,36,1,251,0,112,0,217,0,167,1,84,1,126,0,156,0,230,0,66,0,60,255,98,254,242,253, +78,254,1,255,59,255,73,255,0,0,204,0,127,0,215,255,255,255,98,0,88,0,17,0,220,255,240,255,190,255,198,254, +230,253,233,253,117,254,217,254,248,254,158,255,228,0,162,1,126,1,16,1,150,0,41,0,237,255,190,255,107,255,21,255, +22,255,227,255,188,1,118,3,3,3,169,0,193,254,11,254,153,253,101,253,22,254,20,255,70,255,252,254,17,255,93,255, +88,255,204,254,244,253,72,253,212,252,154,252,230,252,220,253,69,255,137,0,89,1,76,2,118,3,214,3,68,3,224,2, +219,2,75,2,120,1,39,1,247,0,65,1,190,2,178,3,40,2,168,255,10,255,220,255,127,255,28,254,145,253,92,253, +140,252,255,251,100,252,55,253,222,253,183,254,36,0,103,1,6,2,31,2,177,1,149,1,92,2,231,2,83,2,32,1, +99,0,166,0,69,1,91,1,156,0,93,255,96,254,210,253,104,253,58,253,99,253,201,253,88,254,241,254,94,255,90,255, +13,255,236,254,38,255,217,255,191,0,63,1,95,1,48,1,181,0,105,0,95,0,82,0,80,0,65,0,20,0,222,255, +175,255,164,255,165,255,155,255,128,255,28,255,201,254,249,254,39,255,6,255,72,255,55,0,250,0,229,0,103,0,20,0, +235,255,200,255,127,255,62,255,90,255,125,255,84,255,36,255,9,255,5,255,252,254,179,254,195,254,202,255,211,0,244,0, +30,1,238,1,102,2,66,2,96,2,137,2,229,1,157,0,102,255,208,254,63,255,12,0,193,255,59,254,231,252,178,252, +24,253,250,252,177,252,233,253,91,0,245,1,196,1,33,0,149,254,208,254,44,0,1,1,203,0,211,255,91,255,154,0, +183,2,190,3,67,3,25,3,27,4,128,4,158,3,223,2,48,2,78,0,188,253,88,252,74,252,212,251,200,250,167,250, +107,251,239,251,41,252,181,252,167,253,235,254,122,0,78,1,182,0,59,0,253,0,204,1,175,1,69,1,101,1,235,1, +74,2,172,2,49,3,121,3,105,3,213,2,180,1,114,0,40,255,245,253,32,253,89,252,166,251,168,251,89,252,237,252, +174,252,12,252,60,252,95,253,234,254,211,0,148,2,162,3,249,4,93,7,185,9,226,10,51,10,244,6,199,1,44,253, +79,251,223,251,70,252,11,251,242,249,215,250,216,252,252,253,123,253,28,252,44,251,28,251,83,251,156,251,204,252,109,255, +179,2,96,5,210,6,67,7,117,7,175,7,85,7,21,6,143,4,87,3,87,2,33,1,90,255,124,253,98,252,188,251, +6,251,203,250,40,251,104,251,144,251,37,252,54,253,114,254,169,255,253,0,113,2,117,3,54,3,198,1,128,0,83,0, +192,0,225,0,91,0,192,255,209,255,113,0,43,1,196,1,48,2,131,2,162,2,149,2,161,2,103,2,182,1,37,1, +198,0,19,0,34,255,173,254,211,254,175,254,26,254,1,254,79,254,128,254,237,254,120,255,153,255,145,255,192,255,61,0, +225,0,5,1,122,0,36,0,151,0,121,1,75,2,204,2,4,3,16,3,201,2,22,2,32,1,85,0,8,0,206,255, +68,255,205,254,141,254,70,254,33,254,119,254,60,255,249,255,103,0,159,0,142,0,74,0,68,0,143,0,208,0,183,0, +73,0,187,255,253,254,55,254,236,253,34,254,122,254,162,254,178,254,31,255,175,255,248,255,110,0,244,0,200,0,83,0, +155,0,102,1,163,1,90,1,108,1,162,1,122,1,89,1,95,1,29,1,178,0,169,0,220,0,165,0,97,0,153,0, +130,0,203,255,79,255,57,255,58,255,75,255,74,255,36,255,35,255,147,255,57,0,169,0,19,1,150,1,228,1,52,2, +184,2,231,2,128,2,222,1,76,1,183,0,236,255,47,255,198,254,124,254,85,254,96,254,119,254,239,254,130,255,35,255, +136,254,236,254,103,255,123,255,65,0,148,1,186,2,237,3,127,4,48,3,188,0,38,255,255,254,36,255,180,254,200,253, +198,252,69,252,176,252,149,253,26,254,210,253,221,252,166,251,216,250,17,251,8,252,36,253,5,255,152,2,221,6,233,9, +140,11,148,12,183,12,180,11,47,10,73,8,192,5,182,2,78,255,219,251,248,248,241,246,217,245,211,245,36,247,180,249, +203,252,109,255,220,0,121,1,29,2,94,2,186,1,214,0,3,0,73,255,27,255,79,255,47,255,162,254,62,254,35,254, +172,253,249,252,17,253,55,254,202,255,252,0,156,1,42,2,149,2,166,2,198,2,42,3,223,3,106,4,176,3,5,2, +141,0,94,255,77,254,21,253,126,251,91,250,254,249,206,249,74,250,85,252,20,255,206,0,94,1,193,1,203,1,89,1, +125,1,16,2,197,1,195,0,73,0,176,0,227,0,11,0,45,255,82,255,240,255,35,0,130,255,109,254,195,253,253,253, +116,255,195,1,41,3,207,2,209,1,28,1,123,0,200,255,173,255,30,0,200,255,104,254,205,252,43,251,90,250,166,251, +113,254,251,0,76,2,88,2,115,1,15,0,216,254,146,254,129,255,70,1,28,3,71,4,88,4,128,3,182,2,126,2, +95,2,250,1,1,1,68,255,145,253,140,252,159,251,131,250,237,249,17,250,136,250,144,251,68,253,151,254,90,255,163,0, +11,2,50,2,111,1,8,1,75,1,130,1,20,1,73,0,193,255,122,255,36,255,249,254,95,255,246,255,10,0,118,255, +123,254,180,253,201,253,105,254,210,254,18,255,155,255,68,0,162,0,238,0,142,1,237,1,141,1,50,1,80,1,84,1, +231,0,87,0,77,0,216,0,246,0,52,0,66,255,242,254,161,255,137,0,201,0,74,0,167,254,232,252,142,253,191,255, +127,0,129,255,90,254,112,254,151,255,30,0,241,255,36,0,97,0,39,0,165,255,64,255,72,255,139,255,84,0,210,1, +170,2,86,2,18,2,106,2,194,2,79,2,13,1,214,255,204,254,239,253,90,254,66,0,223,1,236,1,87,1,74,1, +249,0,161,255,105,254,238,253,62,253,124,252,243,252,150,254,27,0,7,1,204,1,125,2,152,2,10,2,65,1,124,0, +232,255,184,255,235,255,72,0,83,0,222,255,165,255,23,0,121,0,249,255,214,254,4,254,177,253,115,253,63,253,222,252, +121,252,226,252,156,253,10,254,209,254,200,255,103,0,252,0,119,1,173,1,188,1,128,1,7,1,50,0,234,254,9,254, +2,254,35,254,25,254,133,254,189,255,234,0,91,1,152,1,1,2,94,2,167,2,179,2,69,2,181,1,104,1,39,1, +175,0,105,0,156,0,206,0,204,0,242,0,81,1,150,1,99,1,145,0,74,255,9,254,128,253,252,253,38,255,124,0, +149,1,63,2,121,2,87,2,37,2,250,1,118,1,180,0,134,0,48,1,7,2,106,2,126,2,184,2,226,2,44,2, +133,0,216,254,193,253,39,253,210,252,170,252,222,252,74,253,71,253,228,252,239,252,205,253,2,255,140,255,27,255,131,254, +104,254,177,254,23,255,81,255,77,255,113,255,56,0,128,1,114,2,157,2,159,2,16,3,121,3,33,3,107,2,16,2, +198,1,85,1,58,1,96,1,43,1,144,0,232,255,59,255,110,254,199,253,197,253,93,254,168,254,35,254,191,253,83,254, +51,255,161,255,192,255,229,255,80,0,242,0,137,1,17,2,94,2,59,2,247,1,203,1,122,1,250,0,195,0,245,0, +237,0,96,0,151,255,126,254,246,252,115,251,181,250,39,251,40,252,209,252,69,253,235,253,145,254,17,255,163,255,155,0, +196,1,122,2,155,2,109,2,33,2,7,2,19,2,177,1,179,0,153,255,6,255,4,255,244,254,139,254,33,254,39,254, +157,254,11,255,95,255,238,255,143,0,255,0,22,1,199,0,166,0,13,1,175,1,109,2,226,2,125,2,150,1,204,0, +41,0,135,255,207,254,237,253,30,253,225,252,25,253,53,253,70,253,93,253,20,253,196,252,225,252,13,253,77,253,250,253, +181,254,70,255,253,255,175,0,220,0,204,0,14,1,67,1,247,0,159,0,179,0,245,0,25,1,96,1,14,2,141,2, +5,2,139,0,0,255,26,254,233,253,42,254,149,254,226,254,39,255,116,255,69,255,176,254,193,254,228,255,203,1,246,3, +53,5,62,4,131,1,8,255,234,253,188,253,29,254,248,254,32,0,117,1,75,2,25,2,151,1,98,1,14,1,42,0, +170,254,213,252,63,251,94,250,48,250,123,250,24,251,173,251,240,251,91,252,66,253,81,254,119,255,158,0,97,1,223,1, +96,2,209,2,28,3,56,3,51,3,44,3,231,2,49,2,108,1,234,0,89,0,88,255,60,254,171,253,195,253,37,254, +107,254,103,254,83,254,122,254,191,254,35,255,201,255,112,0,12,1,174,1,220,1,161,1,173,1,217,1,156,1,14,1, +113,0,12,0,0,0,236,255,171,255,140,255,150,255,136,255,93,255,106,255,163,255,165,255,211,255,174,0,111,1,92,1, +7,1,30,1,133,1,203,1,184,1,93,1,211,0,95,0,57,0,15,0,184,255,127,255,91,255,57,255,54,255,52,255, +96,255,2,0,95,0,2,0,16,0,36,1,226,1,116,1,5,1,137,1,74,2,117,2,44,2,183,1,25,1,124,0, +9,0,232,255,70,0,216,0,36,1,20,1,204,0,134,0,92,0,17,0,173,255,137,255,169,255,180,255,139,255,134,255, +159,255,47,255,156,254,246,254,184,255,230,255,215,255,7,0,41,0,224,255,106,255,103,255,234,255,85,0,54,0,191,255, +137,255,169,255,193,255,172,255,87,255,47,255,223,255,217,0,66,1,46,1,197,0,97,0,100,0,150,0,203,0,198,0, +82,0,251,255,23,0,114,0,193,0,166,0,118,0,126,0,19,0,14,255,23,254,210,253,212,253,6,253,108,253,198,0, +102,2,39,0,196,255,81,2,90,2,207,255,59,255,154,0,187,0,88,0,222,1,107,3,246,2,40,2,235,1,8,2, +119,2,245,1,1,1,137,1,99,2,0,2,28,1,124,0,115,0,128,0,190,255,203,254,92,254,63,254,73,254,21,254, +126,253,210,252,25,252,171,251,190,251,236,251,74,252,39,253,145,254,86,0,164,1,97,2,73,3,9,4,76,4,163,4, +194,4,31,4,173,3,43,4,80,4,240,2,17,1,238,255,115,255,68,255,24,255,240,254,24,255,72,255,101,255,155,255, +90,255,192,254,168,254,198,254,167,254,148,254,138,254,92,254,30,254,35,254,113,254,126,254,125,254,1,255,178,255,91,0, +212,0,174,0,170,0,82,1,214,1,63,2,22,3,238,3,73,4,249,3,91,3,88,3,199,3,121,3,73,2,34,1, +126,0,239,255,252,254,2,254,142,253,99,253,33,253,251,252,6,253,48,253,131,253,217,253,95,254,67,255,195,255,159,255, +176,255,28,0,100,0,117,0,119,0,125,0,125,0,141,0,175,0,152,0,103,0,61,0,187,255,72,255,131,255,200,255, +162,255,154,255,230,255,30,0,208,255,20,255,147,254,153,254,206,254,239,254,35,255,139,255,255,255,52,0,21,0,246,255, +27,0,76,0,120,0,196,0,245,0,217,0,138,0,46,0,9,0,14,0,225,255,163,255,170,255,246,255,56,0,60,0, +59,0,91,0,126,0,173,0,188,0,127,0,76,0,44,0,209,255,65,255,161,254,21,254,228,253,47,254,138,254,91,254, +204,253,128,253,178,253,78,254,17,255,173,255,114,0,179,1,197,2,220,2,54,2,77,1,238,255,30,254,167,252,27,252, +80,252,198,252,29,253,126,253,34,254,244,254,210,255,139,0,13,1,135,1,224,1,218,1,131,1,14,1,202,0,225,0, +31,1,100,1,160,1,173,1,157,1,136,1,67,1,151,0,159,255,206,254,70,254,196,253,85,253,50,253,89,253,147,253, +141,253,127,253,186,253,204,253,157,253,215,253,163,254,199,255,233,0,134,1,185,1,8,2,132,2,237,2,16,3,192,2, +251,1,22,1,100,0,195,255,30,255,159,254,46,254,195,253,185,253,66,254,253,254,104,255,116,255,96,255,85,255,128,255, +182,255,161,255,84,255,6,255,226,254,0,255,43,255,112,255,19,0,0,1,226,1,21,2,75,1,75,0,207,255,205,255, +222,255,194,255,196,255,15,0,57,0,31,0,228,255,175,255,161,255,175,255,3,0,187,0,62,1,76,1,133,1,31,2, +170,2,213,2,71,2,196,0,254,254,179,253,156,252,212,251,36,252,117,253,216,254,147,255,18,0,21,1,149,1,93,0, +165,254,239,253,255,253,49,254,120,254,22,255,242,255,154,0,249,0,47,1,32,1,220,0,216,0,59,1,134,1,112,1, +76,1,72,1,68,1,25,1,187,0,77,0,254,255,12,0,53,0,202,255,61,255,119,255,250,255,11,0,226,255,234,255, +42,0,75,0,51,0,86,0,191,0,221,0,117,0,249,255,239,255,102,0,248,0,47,1,37,1,79,1,109,1,22,1, +148,0,47,0,241,255,220,255,176,255,103,255,78,255,102,255,119,255,118,255,122,255,155,255,248,255,121,0,144,0,57,0, +54,0,173,0,31,1,73,1,45,1,17,1,32,1,50,1,41,1,10,1,225,0,160,0,50,0,192,255,104,255,31,255, +254,254,254,254,251,254,3,255,27,255,90,255,190,255,216,255,151,255,169,255,43,0,95,0,60,0,90,0,149,0,184,0, +247,0,32,1,28,1,10,1,183,0,86,0,85,0,140,0,172,0,134,0,31,0,200,255,115,255,229,254,109,254,99,254, +187,254,81,255,10,0,184,0,48,1,130,1,206,1,8,2,255,1,144,1,13,1,215,0,217,0,230,0,199,0,73,0, +214,255,220,255,20,0,23,0,220,255,214,255,31,0,247,255,66,255,228,254,23,255,115,255,192,255,218,255,207,255,249,255, +114,0,183,0,70,0,85,255,173,254,229,254,135,255,191,255,176,255,199,255,9,0,120,0,165,0,58,0,253,255,79,1, +101,4,102,6,56,5,75,4,21,6,37,7,120,5,160,2,36,255,53,251,76,248,230,247,177,249,14,251,217,250,84,251, +9,254,62,1,108,2,175,1,171,0,251,254,209,251,77,248,79,245,252,242,28,242,107,243,22,247,195,252,165,3,243,10, +165,17,81,22,49,24,157,23,119,21,108,18,153,14,73,9,246,1,42,250,72,244,179,240,105,238,26,237,34,237,123,238, +157,240,31,243,234,245,7,249,82,252,41,255,28,1,138,2,194,3,176,4,149,5,140,6,250,6,141,6,204,5,44,5, +163,4,227,3,222,2,4,2,120,1,233,0,93,0,242,255,100,255,150,254,169,253,183,252,228,251,99,251,90,251,172,251, +75,252,82,253,143,254,201,255,252,0,223,1,63,2,59,2,250,1,157,1,59,1,224,0,116,0,206,255,35,255,191,254, +168,254,233,254,81,255,175,255,35,0,118,0,113,0,95,0,126,0,228,0,129,1,241,1,237,1,139,1,82,1,144,1, +162,1,27,1,154,0,123,0,112,0,83,0,57,0,9,0,108,255,95,254,80,253,122,252,242,251,11,252,251,252,116,254, +245,255,33,1,218,1,79,2,147,2,92,2,183,1,32,1,233,0,61,1,199,1,195,1,54,1,165,0,1,0,56,255, +166,254,100,254,65,254,111,254,65,255,88,0,212,0,119,0,176,255,195,254,180,253,162,252,208,251,118,251,183,251,128,252, +140,253,171,254,192,255,166,0,83,1,214,1,30,2,19,2,208,1,146,1,83,1,249,0,164,0,97,0,16,0,213,255, +214,255,216,255,189,255,181,255,214,255,24,0,110,0,166,0,139,0,61,0,249,255,197,255,161,255,180,255,239,255,243,255, +168,255,100,255,89,255,111,255,171,255,250,255,255,255,160,255,45,255,194,254,95,254,28,254,219,253,151,253,163,253,19,254, +159,254,58,255,246,255,166,0,29,1,114,1,176,1,176,1,122,1,65,1,19,1,239,0,218,0,232,0,47,1,173,1, +44,2,102,2,73,2,228,1,58,1,78,0,71,255,107,254,239,253,174,253,107,253,51,253,56,253,139,253,29,254,197,254, +91,255,219,255,86,0,185,0,218,0,200,0,195,0,199,0,198,0,219,0,212,0,138,0,93,0,116,0,129,0,113,0, +111,0,142,0,196,0,229,0,213,0,188,0,204,0,244,0,250,0,202,0,141,0,103,0,73,0,20,0,197,255,137,255, +118,255,91,255,52,255,42,255,58,255,92,255,140,255,172,255,193,255,234,255,7,0,8,0,22,0,49,0,62,0,86,0, +123,0,147,0,176,0,209,0,191,0,118,0,62,0,55,0,66,0,63,0,50,0,24,0,227,255,166,255,121,255,119,255, +173,255,236,255,28,0,61,0,45,0,13,0,22,0,37,0,41,0,50,0,56,0,68,0,72,0,34,0,251,255,237,255, +237,255,17,0,50,0,17,0,238,255,251,255,238,255,196,255,210,255,16,0,59,0,79,0,88,0,95,0,124,0,169,0, +193,0,171,0,149,0,179,0,208,0,203,0,180,0,82,0,166,255,40,255,11,255,34,255,31,255,252,254,23,255,98,255, +135,255,170,255,0,0,94,0,152,0,193,0,247,0,239,0,135,0,55,0,13,0,189,255,121,255,58,255,147,254,225,253, +77,254,17,0,174,1,214,1,252,0,28,0,123,255,2,255,174,254,113,254,20,254,190,253,242,253,185,254,167,255,134,0, +104,1,98,2,74,3,245,3,91,4,79,4,226,3,73,3,67,2,163,0,167,254,10,253,184,252,31,253,193,252,225,251, +194,251,122,252,80,253,225,253,98,254,8,255,143,255,198,255,238,255,87,0,253,0,113,1,120,1,74,1,5,1,161,0, +52,0,214,255,156,255,126,255,74,255,249,254,222,254,50,255,210,255,147,0,68,1,163,1,164,1,102,1,12,1,187,0, +100,0,6,0,241,255,69,0,213,0,111,1,201,1,194,1,156,1,150,1,169,1,149,1,75,1,4,1,195,0,86,0, +168,255,196,254,233,253,107,253,60,253,20,253,252,252,56,253,180,253,44,254,196,254,171,255,164,0,109,1,2,2,119,2, +210,2,242,2,187,2,60,2,205,1,140,1,34,1,131,0,252,255,138,255,66,255,81,255,102,255,49,255,227,254,212,254, +14,255,90,255,171,255,11,0,97,0,164,0,192,0,165,0,109,0,31,0,203,255,161,255,148,255,152,255,195,255,246,255, +18,0,37,0,46,0,45,0,50,0,57,0,52,0,38,0,12,0,225,255,212,255,19,0,117,0,168,0,151,0,114,0, +97,0,63,0,255,255,215,255,190,255,144,255,113,255,124,255,145,255,128,255,68,255,4,255,227,254,248,254,62,255,126,255, +161,255,202,255,11,0,70,0,110,0,165,0,239,0,44,1,105,1,181,1,212,1,130,1,234,0,117,0,39,0,191,255, +122,255,143,255,157,255,128,255,132,255,169,255,163,255,94,255,39,255,33,255,29,255,14,255,8,255,251,254,3,255,60,255, +140,255,217,255,33,0,87,0,103,0,97,0,115,0,171,0,232,0,248,0,201,0,165,0,188,0,205,0,176,0,128,0, +98,0,100,0,91,0,50,0,40,0,77,0,76,0,253,255,148,255,71,255,11,255,236,254,11,255,52,255,57,255,65,255, +109,255,169,255,225,255,10,0,33,0,23,0,237,255,198,255,194,255,216,255,227,255,227,255,250,255,47,0,108,0,158,0, +188,0,195,0,176,0,133,0,87,0,49,0,0,0,195,255,155,255,137,255,120,255,108,255,102,255,89,255,83,255,94,255, +129,255,205,255,13,0,18,0,29,0,72,0,93,0,95,0,110,0,122,0,95,0,53,0,54,0,82,0,70,0,15,0, +214,255,172,255,134,255,95,255,74,255,81,255,95,255,123,255,193,255,30,0,102,0,156,0,209,0,243,0,0,1,10,1, +249,0,198,0,154,0,124,0,84,0,23,0,208,255,192,255,238,255,1,0,226,255,220,255,5,0,31,0,9,0,249,255, +32,0,88,0,93,0,42,0,247,255,230,255,204,255,156,255,144,255,172,255,199,255,239,255,54,0,119,0,137,0,122,0, +127,0,161,0,169,0,120,0,48,0,244,255,196,255,155,255,146,255,172,255,199,255,219,255,242,255,233,255,196,255,168,255, +155,255,165,255,208,255,243,255,255,255,31,0,88,0,123,0,104,0,44,0,236,255,212,255,245,255,11,0,239,255,226,255, +255,255,23,0,44,0,77,0,85,0,49,0,27,0,68,0,108,0,76,0,20,0,5,0,10,0,250,255,219,255,213,255, +234,255,236,255,222,255,223,255,239,255,239,255,229,255,248,255,29,0,33,0,18,0,1,0,232,255,224,255,240,255,6,0, +25,0,21,0,0,0,246,255,249,255,251,255,244,255,233,255,243,255,12,0,33,0,46,0,43,0,23,0,8,0,6,0, +0,0,221,255,177,255,171,255,197,255,227,255,242,255,236,255,216,255,176,255,132,255,129,255,151,255,170,255,205,255,241,255, +247,255,238,255,246,255,36,0,105,0,134,0,93,0,43,0,47,0,69,0,45,0,10,0,3,0,7,0,15,0,39,0, +76,0,120,0,150,0,143,0,91,0,26,0,235,255,197,255,159,255,121,255,56,255,246,254,232,254,229,254,207,254,220,254, +35,255,128,255,220,255,46,0,104,0,130,0,136,0,146,0,171,0,213,0,3,1,21,1,249,0,199,0,156,0,107,0, +29,0,216,255,183,255,148,255,99,255,53,255,5,255,218,254,200,254,198,254,213,254,241,254,2,255,10,255,49,255,125,255, +200,255,0,0,45,0,83,0,122,0,172,0,206,0,215,0,241,0,27,1,30,1,239,0,180,0,128,0,80,0,49,0, +31,0,248,255,183,255,127,255,92,255,70,255,65,255,65,255,56,255,43,255,34,255,39,255,54,255,63,255,81,255,135,255, +208,255,6,0,35,0,61,0,99,0,146,0,185,0,193,0,161,0,100,0,40,0,3,0,236,255,210,255,187,255,182,255, +193,255,197,255,192,255,229,255,68,0,155,0,202,0,217,0,186,0,121,0,69,0,34,0,243,255,170,255,78,255,242,254, +174,254,144,254,149,254,175,254,223,254,24,255,54,255,71,255,122,255,207,255,35,0,120,0,220,0,59,1,109,1,111,1, +90,1,50,1,246,0,188,0,148,0,110,0,44,0,219,255,176,255,163,255,132,255,93,255,81,255,90,255,97,255,91,255, +80,255,90,255,134,255,187,255,205,255,201,255,227,255,34,0,89,0,109,0,109,0,109,0,105,0,81,0,47,0,27,0, +29,0,29,0,24,0,23,0,7,0,241,255,241,255,242,255,241,255,4,0,11,0,236,255,206,255,236,255,74,0,146,0, +127,0,51,0,237,255,219,255,13,0,91,0,168,0,230,0,249,0,243,0,217,0,120,0,202,255,32,255,214,254,229,254, +252,254,13,255,68,255,152,255,213,255,236,255,247,255,0,0,11,0,50,0,96,0,104,0,105,0,131,0,158,0,158,0, +126,0,98,0,96,0,88,0,67,0,36,0,243,255,210,255,200,255,193,255,208,255,242,255,1,0,243,255,220,255,230,255, +10,0,15,0,223,255,163,255,162,255,235,255,32,0,22,0,248,255,218,255,195,255,178,255,151,255,134,255,148,255,190,255, +232,255,232,255,223,255,4,0,53,0,87,0,120,0,137,0,148,0,169,0,168,0,121,0,55,0,12,0,251,255,231,255, +211,255,205,255,209,255,229,255,9,0,36,0,46,0,49,0,45,0,22,0,232,255,179,255,135,255,109,255,99,255,96,255, +113,255,145,255,149,255,139,255,176,255,238,255,20,0,45,0,87,0,128,0,137,0,116,0,98,0,84,0,51,0,7,0, +237,255,227,255,204,255,180,255,191,255,220,255,233,255,237,255,249,255,16,0,44,0,62,0,60,0,40,0,10,0,249,255, +253,255,253,255,239,255,226,255,222,255,224,255,239,255,1,0,249,255,228,255,233,255,249,255,247,255,236,255,234,255,10,0, +80,0,127,0,109,0,63,0,42,0,51,0,63,0,62,0,67,0,75,0,58,0,27,0,3,0,235,255,201,255,163,255, +142,255,167,255,217,255,234,255,237,255,16,0,42,0,22,0,6,0,22,0,24,0,242,255,224,255,13,0,62,0,55,0, +30,0,32,0,57,0,71,0,29,0,212,255,190,255,220,255,230,255,203,255,191,255,218,255,0,0,16,0,29,0,58,0, +67,0,27,0,245,255,242,255,250,255,247,255,235,255,220,255,213,255,212,255,211,255,210,255,194,255,166,255,157,255,172,255, +187,255,190,255,177,255,164,255,184,255,244,255,51,0,90,0,110,0,109,0,93,0,90,0,91,0,68,0,32,0,1,0, +242,255,242,255,235,255,222,255,229,255,248,255,0,0,241,255,204,255,178,255,195,255,225,255,236,255,223,255,201,255,196,255, +206,255,212,255,224,255,242,255,1,0,16,0,21,0,10,0,3,0,8,0,16,0,18,0,17,0,23,0,25,0,14,0, +8,0,5,0,251,255,247,255,251,255,251,255,241,255,228,255,232,255,250,255,252,255,231,255,215,255,220,255,224,255,211,255, +203,255,222,255,247,255,11,0,28,0,36,0,36,0,32,0,19,0,255,255,231,255,214,255,220,255,235,255,233,255,227,255, +240,255,12,0,39,0,54,0,59,0,61,0,61,0,53,0,31,0,2,0,235,255,215,255,199,255,197,255,208,255,226,255, +250,255,23,0,55,0,79,0,83,0,71,0,56,0,37,0,7,0,229,255,210,255,203,255,203,255,217,255,242,255,16,0, +44,0,49,0,32,0,19,0,16,0,14,0,254,255,216,255,184,255,174,255,173,255,172,255,178,255,189,255,208,255,225,255, +224,255,209,255,202,255,218,255,2,0,63,0,151,0,18,1,167,1,29,2,22,2,150,1,17,1,206,0,157,0,56,0, +152,255,238,254,105,254,36,254,33,254,72,254,129,254,183,254,214,254,224,254,234,254,14,255,87,255,186,255,34,0,129,0, +222,0,62,1,134,1,160,1,151,1,108,1,31,1,195,0,106,0,21,0,207,255,164,255,146,255,143,255,157,255,175,255, +170,255,143,255,118,255,106,255,110,255,119,255,130,255,160,255,213,255,16,0,67,0,107,0,139,0,159,0,163,0,166,0, +162,0,133,0,96,0,65,0,28,0,242,255,208,255,187,255,173,255,160,255,153,255,141,255,119,255,105,255,103,255,103,255, +114,255,136,255,161,255,198,255,246,255,36,0,76,0,113,0,135,0,137,0,132,0,135,0,135,0,118,0,96,0,80,0, +56,0,22,0,249,255,223,255,198,255,176,255,157,255,143,255,138,255,143,255,147,255,142,255,140,255,152,255,167,255,187,255, +228,255,18,0,47,0,58,0,63,0,76,0,85,0,80,0,80,0,83,0,73,0,63,0,70,0,77,0,57,0,23,0, +10,0,4,0,237,255,223,255,230,255,222,255,194,255,172,255,163,255,151,255,140,255,148,255,173,255,192,255,202,255,213,255, +223,255,232,255,234,255,235,255,242,255,251,255,6,0,29,0,55,0,70,0,73,0,75,0,85,0,106,0,120,0,107,0, +61,0,12,0,253,255,2,0,254,255,245,255,239,255,233,255,226,255,217,255,205,255,198,255,198,255,202,255,211,255,221,255, +226,255,231,255,239,255,240,255,236,255,238,255,249,255,12,0,25,0,30,0,38,0,45,0,44,0,45,0,57,0,67,0, +58,0,40,0,33,0,33,0,32,0,28,0,21,0,6,0,245,255,245,255,250,255,233,255,208,255,211,255,237,255,8,0, +23,0,23,0,14,0,254,255,232,255,218,255,217,255,213,255,198,255,184,255,185,255,196,255,197,255,203,255,233,255,6,0, +9,0,255,255,244,255,235,255,235,255,243,255,254,255,21,0,58,0,83,0,87,0,84,0,75,0,55,0,40,0,34,0, +27,0,8,0,241,255,232,255,230,255,221,255,212,255,211,255,206,255,199,255,196,255,202,255,213,255,216,255,220,255,237,255, +252,255,2,0,6,0,3,0,5,0,21,0,34,0,36,0,33,0,31,0,33,0,34,0,29,0,26,0,30,0,31,0, +26,0,13,0,249,255,232,255,220,255,210,255,207,255,215,255,226,255,233,255,231,255,224,255,223,255,228,255,230,255,224,255, +221,255,228,255,234,255,230,255,228,255,239,255,251,255,255,255,255,255,2,0,8,0,14,0,19,0,20,0,13,0,6,0, +0,0,240,255,229,255,237,255,250,255,253,255,248,255,246,255,254,255,4,0,254,255,246,255,247,255,252,255,254,255,249,255, +247,255,1,0,13,0,13,0,4,0,9,0,17,0,10,0,1,0,4,0,18,0,36,0,39,0,23,0,15,0,26,0, +44,0,55,0,45,0,28,0,24,0,23,0,10,0,247,255,233,255,232,255,235,255,229,255,220,255,224,255,246,255,10,0, +0,0,232,255,227,255,241,255,252,255,246,255,235,255,240,255,3,0,25,0,49,0,69,0,82,0,96,0,110,0,113,0, +91,0,45,0,246,255,200,255,173,255,171,255,179,255,187,255,197,255,205,255,213,255,237,255,21,0,42,0,39,0,37,0, +41,0,46,0,50,0,51,0,35,0,255,255,226,255,226,255,238,255,248,255,6,0,18,0,11,0,245,255,232,255,233,255, +235,255,234,255,237,255,249,255,8,0,23,0,28,0,16,0,251,255,232,255,220,255,212,255,211,255,228,255,251,255,9,0, +18,0,26,0,33,0,34,0,32,0,36,0,37,0,24,0,15,0,24,0,36,0,41,0,43,0,37,0,26,0,12,0, +252,255,242,255,233,255,222,255,219,255,214,255,208,255,208,255,212,255,215,255,217,255,223,255,241,255,3,0,5,0,0,0, +3,0,11,0,14,0,14,0,21,0,38,0,56,0,62,0,55,0,45,0,41,0,43,0,42,0,36,0,30,0,18,0, +251,255,232,255,225,255,222,255,216,255,208,255,201,255,204,255,219,255,234,255,240,255,228,255,218,255,230,255,249,255,5,0, +15,0,19,0,22,0,32,0,35,0,27,0,13,0,253,255,243,255,246,255,254,255,5,0,8,0,5,0,3,0,253,255, +241,255,237,255,242,255,237,255,232,255,246,255,12,0,23,0,25,0,19,0,13,0,13,0,13,0,14,0,23,0,30,0, +24,0,9,0,252,255,236,255,211,255,186,255,179,255,185,255,188,255,186,255,193,255,209,255,227,255,249,255,16,0,31,0, +39,0,48,0,55,0,57,0,49,0,36,0,23,0,4,0,240,255,236,255,238,255,238,255,246,255,253,255,252,255,246,255, +240,255,241,255,245,255,247,255,254,255,10,0,18,0,26,0,33,0,36,0,44,0,57,0,73,0,97,0,120,0,129,0, +126,0,118,0,101,0,56,0,243,255,168,255,110,255,89,255,92,255,90,255,81,255,82,255,106,255,152,255,201,255,240,255, +13,0,24,0,21,0,13,0,7,0,7,0,15,0,30,0,51,0,76,0,99,0,120,0,141,0,159,0,168,0,164,0, +148,0,127,0,104,0,79,0,54,0,29,0,4,0,236,255,211,255,182,255,152,255,129,255,115,255,105,255,100,255,100,255, +110,255,132,255,164,255,201,255,236,255,13,0,46,0,81,0,113,0,129,0,125,0,113,0,102,0,89,0,76,0,68,0, +67,0,63,0,41,0,6,0,232,255,208,255,187,255,166,255,157,255,159,255,163,255,172,255,190,255,211,255,229,255,241,255, +253,255,15,0,29,0,31,0,28,0,23,0,18,0,16,0,16,0,19,0,27,0,33,0,39,0,41,0,35,0,30,0, +32,0,31,0,24,0,9,0,248,255,240,255,237,255,230,255,220,255,211,255,209,255,216,255,223,255,226,255,227,255,232,255, +241,255,240,255,229,255,229,255,243,255,252,255,252,255,3,0,13,0,17,0,21,0,37,0,52,0,50,0,39,0,36,0, +37,0,29,0,17,0,12,0,8,0,2,0,250,255,240,255,228,255,216,255,209,255,209,255,215,255,225,255,233,255,235,255, +236,255,245,255,1,0,5,0,255,255,250,255,251,255,254,255,4,0,14,0,17,0,12,0,6,0,5,0,15,0,25,0, +24,0,19,0,16,0,17,0,19,0,12,0,2,0,1,0,255,255,242,255,223,255,203,255,190,255,186,255,189,255,198,255, +211,255,213,255,210,255,218,255,236,255,7,0,45,0,92,0,141,0,180,0,189,0,172,0,145,0,112,0,79,0,58,0, +44,0,32,0,12,0,231,255,182,255,126,255,63,255,3,255,218,254,201,254,209,254,231,254,4,255,50,255,112,255,180,255, +1,0,88,0,174,0,246,0,48,1,94,1,123,1,128,1,110,1,69,1,0,1,164,0,68,0,240,255,162,255,91,255, +38,255,4,255,242,254,242,254,0,255,28,255,75,255,127,255,174,255,218,255,5,0,43,0,77,0,107,0,128,0,136,0, +135,0,129,0,115,0,92,0,62,0,27,0,248,255,219,255,200,255,189,255,188,255,196,255,211,255,227,255,244,255,4,0, +16,0,28,0,39,0,46,0,42,0,30,0,19,0,14,0,9,0,0,0,244,255,235,255,226,255,212,255,201,255,195,255, +189,255,186,255,189,255,202,255,226,255,247,255,3,0,14,0,27,0,41,0,54,0,60,0,59,0,55,0,48,0,42,0, +35,0,22,0,8,0,252,255,235,255,218,255,215,255,223,255,223,255,214,255,214,255,225,255,233,255,235,255,237,255,244,255, +3,0,16,0,19,0,19,0,21,0,26,0,33,0,30,0,14,0,2,0,4,0,6,0,2,0,253,255,249,255,248,255, +252,255,255,255,255,255,250,255,242,255,237,255,236,255,236,255,235,255,232,255,229,255,233,255,242,255,248,255,251,255,249,255, +244,255,243,255,244,255,248,255,255,255,4,0,12,0,23,0,31,0,32,0,29,0,23,0,16,0,14,0,14,0,7,0, +250,255,245,255,245,255,244,255,241,255,239,255,241,255,244,255,241,255,234,255,234,255,242,255,250,255,252,255,255,255,6,0, +12,0,17,0,21,0,24,0,28,0,28,0,24,0,18,0,12,0,8,0,1,0,244,255,231,255,225,255,223,255,225,255, +229,255,233,255,238,255,246,255,249,255,248,255,248,255,247,255,251,255,4,0,15,0,25,0,32,0,32,0,31,0,31,0, +30,0,28,0,23,0,13,0,1,0,244,255,232,255,226,255,226,255,228,255,234,255,240,255,244,255,246,255,248,255,250,255, +252,255,253,255,254,255,1,0,5,0,13,0,18,0,17,0,12,0,6,0,1,0,252,255,242,255,235,255,235,255,234,255, +235,255,243,255,249,255,254,255,10,0,19,0,18,0,15,0,15,0,17,0,18,0,18,0,19,0,16,0,8,0,255,255, +250,255,247,255,241,255,236,255,231,255,225,255,223,255,228,255,235,255,241,255,250,255,4,0,12,0,12,0,7,0,6,0, +6,0,8,0,12,0,13,0,12,0,14,0,15,0,14,0,15,0,14,0,12,0,11,0,6,0,0,0,252,255,247,255, +240,255,236,255,234,255,233,255,237,255,243,255,248,255,250,255,248,255,248,255,253,255,254,255,251,255,251,255,254,255,4,0, +7,0,6,0,6,0,7,0,8,0,13,0,15,0,14,0,13,0,11,0,10,0,12,0,15,0,14,0,9,0,4,0, +1,0,254,255,249,255,242,255,231,255,224,255,225,255,228,255,232,255,239,255,245,255,249,255,253,255,1,0,5,0,8,0, +6,0,7,0,12,0,15,0,15,0,14,0,14,0,11,0,7,0,9,0,12,0,11,0,6,0,4,0,4,0,5,0, +2,0,254,255,248,255,243,255,241,255,240,255,238,255,236,255,238,255,242,255,245,255,249,255,255,255,2,0,2,0,1,0, +0,0,1,0,4,0,8,0,9,0,11,0,14,0,15,0,13,0,12,0,11,0,11,0,9,0,6,0,1,0,252,255, +248,255,246,255,243,255,239,255,239,255,240,255,241,255,241,255,242,255,245,255,249,255,252,255,1,0,8,0,12,0,14,0, +16,0,17,0,16,0,14,0,12,0,11,0,9,0,3,0,253,255,249,255,245,255,244,255,242,255,241,255,242,255,244,255, +248,255,253,255,0,0,1,0,3,0,5,0,9,0,12,0,13,0,11,0,10,0,8,0,5,0,2,0,255,255,254,255, +253,255,252,255,252,255,251,255,252,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,254,255,255,255,0,0, +1,0,1,0,1,0,0,0,0,0,2,0,4,0,4,0,3,0,3,0,2,0,0,0,253,255,251,255,251,255,251,255, +255,255,1,0,0,0,1,0,1,0,0,0,2,0,4,0,3,0,4,0,4,0,4,0,4,0,6,0,7,0,6,0, +6,0,6,0,5,0,2,0,0,0,255,255,254,255,252,255,251,255,251,255,252,255,253,255,252,255,252,255,252,255,250,255, +250,255,250,255,251,255,254,255,1,0,4,0,7,0,9,0,11,0,11,0,9,0,9,0,9,0,6,0,1,0,254,255, +252,255,249,255,248,255,248,255,250,255,250,255,252,255,253,255,253,255,255,255,2,0,4,0,6,0,8,0,9,0,8,0, +6,0,5,0,2,0,255,255,252,255,250,255,249,255,251,255,252,255,252,255,253,255,254,255,254,255,254,255,0,0,255,255, +254,255,1,0,2,0,1,0,1,0,2,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,1,0,2,0, +0,0,1,0,3,0,3,0,2,0,1,0,2,0,3,0,2,0,0,0,255,255,253,255,252,255,251,255,250,255,249,255, +249,255,249,255,250,255,250,255,251,255,253,255,255,255,255,255,255,255,1,0,4,0,6,0,8,0,10,0,11,0,10,0, +9,0,9,0,7,0,5,0,4,0,1,0,254,255,251,255,249,255,247,255,247,255,247,255,246,255,245,255,246,255,248,255, +250,255,253,255,255,255,255,255,0,0,2,0,5,0,6,0,8,0,9,0,9,0,8,0,7,0,6,0,4,0,3,0, +0,0,253,255,252,255,251,255,248,255,248,255,249,255,250,255,251,255,253,255,0,0,3,0,6,0,7,0,7,0,7,0, +7,0,6,0,4,0,5,0,4,0,0,0,253,255,250,255,248,255,247,255,246,255,245,255,246,255,246,255,247,255,250,255, +251,255,253,255,1,0,3,0,6,0,9,0,10,0,12,0,13,0,13,0,12,0,11,0,9,0,7,0,6,0,4,0, +1,0,254,255,251,255,247,255,243,255,243,255,243,255,243,255,244,255,245,255,246,255,248,255,252,255,255,255,2,0,5,0, +7,0,9,0,10,0,11,0,11,0,12,0,11,0,7,0,5,0,4,0,2,0,0,0,0,0,255,255,254,255,253,255, +253,255,251,255,251,255,252,255,253,255,252,255,251,255,252,255,252,255,252,255,253,255,254,255,255,255,1,0,2,0,3,0, +3,0,2,0,3,0,3,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,3,0,3,0,4,0,4,0, +2,0,1,0,1,0,0,0,253,255,251,255,251,255,251,255,249,255,249,255,249,255,249,255,250,255,253,255,254,255,255,255, +1,0,3,0,6,0,8,0,8,0,8,0,9,0,8,0,6,0,5,0,4,0,2,0,255,255,254,255,253,255,251,255, +250,255,248,255,246,255,245,255,245,255,245,255,247,255,250,255,252,255,255,255,1,0,4,0,7,0,9,0,10,0,11,0, +13,0,13,0,11,0,10,0,7,0,3,0,0,0,254,255,250,255,248,255,246,255,245,255,244,255,244,255,245,255,246,255, +247,255,247,255,250,255,252,255,254,255,0,0,3,0,7,0,10,0,13,0,14,0,13,0,13,0,14,0,11,0,7,0, +5,0,3,0,254,255,250,255,246,255,242,255,241,255,241,255,242,255,246,255,249,255,251,255,253,255,255,255,2,0,5,0, +7,0,10,0,11,0,11,0,11,0,9,0,6,0,5,0,2,0,254,255,253,255,252,255,252,255,251,255,252,255,252,255, +252,255,252,255,253,255,255,255,255,255,0,0,1,0,3,0,4,0,5,0,4,0,3,0,2,0,0,0,254,255,253,255, +252,255,252,255,251,255,251,255,253,255,255,255,1,0,2,0,4,0,6,0,6,0,6,0,6,0,6,0,5,0,4,0, +3,0,2,0,254,255,251,255,251,255,251,255,248,255,247,255,245,255,246,255,249,255,252,255,253,255,255,255,1,0,3,0, +5,0,7,0,9,0,10,0,11,0,12,0,11,0,9,0,8,0,5,0,1,0,0,0,253,255,250,255,247,255,244,255, +244,255,246,255,246,255,245,255,246,255,248,255,250,255,253,255,255,255,2,0,4,0,5,0,7,0,9,0,9,0,9,0, +9,0,9,0,8,0,7,0,5,0,1,0,255,255,254,255,252,255,249,255,249,255,248,255,246,255,246,255,248,255,247,255, +248,255,250,255,252,255,253,255,0,0,3,0,6,0,9,0,11,0,10,0,8,0,7,0,5,0,3,0,4,0,3,0, +1,0,255,255,255,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,254,255,253,255,252,255,253,255,253,255, +252,255,254,255,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0, +3,0,2,0,0,0,0,0,0,0,0,0,0,0,254,255,254,255,254,255,252,255,252,255,253,255,251,255,251,255,253,255, +253,255,254,255,255,255,0,0,1,0,3,0,5,0,6,0,6,0,6,0,4,0,2,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,0,0,255,255,0,0,255,255, +255,255,255,255,254,255,253,255,252,255,253,255,253,255,254,255,255,255,1,0,3,0,5,0,6,0,6,0,8,0,10,0, +10,0,9,0,8,0,5,0,3,0,1,0,254,255,250,255,247,255,245,255,244,255,242,255,242,255,243,255,244,255,246,255, +249,255,251,255,254,255,2,0,4,0,8,0,11,0,14,0,16,0,17,0,16,0,15,0,11,0,8,0,6,0,1,0, +254,255,252,255,249,255,245,255,245,255,243,255,242,255,243,255,244,255,246,255,247,255,250,255,253,255,255,255,1,0,4,0, +6,0,6,0,7,0,8,0,8,0,8,0,8,0,7,0,6,0,3,0,2,0,2,0,1,0,255,255,254,255,253,255, +252,255,252,255,252,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,255,255,2,0, +4,0,4,0,5,0,6,0,5,0,3,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0, +0,0,0,0,255,255,253,255,253,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255, +254,255,255,255,0,0,0,0,0,0,2,0,4,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,4,0, +3,0,1,0,254,255,253,255,253,255,251,255,249,255,248,255,247,255,246,255,247,255,249,255,250,255,250,255,252,255,255,255, +1,0,4,0,6,0,7,0,10,0,11,0,11,0,10,0,9,0,7,0,5,0,2,0,1,0,255,255,253,255,251,255, +250,255,249,255,248,255,247,255,247,255,249,255,249,255,250,255,253,255,255,255,1,0,2,0,2,0,4,0,6,0,6,0, +5,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,1,0,1,0,2,0,4,0,3,0,3,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,255,255,254,255,253,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,2,0, +2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,254,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0, +1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,254,255, +253,255,252,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0, +3,0,2,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255, +254,255,255,255,255,255,254,255,255,255,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0, +0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0, +2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255, +255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,1,0, +0,0,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,2,0,1,0, +255,255,0,0,2,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,1,0,0,0,255,255,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,2,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,255,255,254,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0, +0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,1,0,0,0,254,255, +255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255, +0,0,255,255,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,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,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,255,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,255,255, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,254,255,0,0,1,0,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0, +1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,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,255,255,255,255,255,255,0,0,1,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,2,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,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,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,255,255,254,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,2,0,0,0,255,255,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,1,0,255,255,0,0,1,0,255,255,254,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +1,0,0,0,254,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,2,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,1,0,0,0,255,255, +0,0,255,255,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,2,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,255,255,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255,254,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255, +255,255,1,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,1,0, +1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,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,255,255,254,255,0,0,0,0,0,0,0,0,0,0, +1,0,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,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,2,0,2,0,0,0,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +1,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255, +254,255,0,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,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, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,255,255,255,255,1,0,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,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,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,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,1,0, +1,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,2,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,255,255,254,255,0,0,1,0,0,0, +255,255,255,255,1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,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, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,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, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,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,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,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,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,1,0,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, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,1,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,2,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,255,255,254,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,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,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +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,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,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/gravel2.pcm b/src/client/sound/data/gravel2.pcm new file mode 100755 index 0000000..5b33faa --- /dev/null +++ b/src/client/sound/data/gravel2.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_gravel2[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,3,0,9,0,11,0,12,0,9,0,4,0,5,0,10,0, +18,0,23,0,20,0,12,0,5,0,2,0,247,255,231,255,222,255,220,255,223,255,223,255,224,255,243,255,8,0,19,0, +23,0,28,0,45,0,58,0,43,0,18,0,3,0,10,0,25,0,24,0,20,0,7,0,245,255,225,255,158,255,89,255, +112,255,189,255,244,255,255,255,8,0,63,0,100,0,64,0,21,0,37,0,89,0,115,0,149,0,234,0,31,1,31,1, +234,0,79,0,193,255,152,255,153,255,161,255,60,255,121,254,104,254,13,255,120,255,146,255,206,255,30,0,20,0,188,255, +138,255,182,255,83,0,22,1,105,1,99,1,72,1,211,0,196,255,129,254,203,253,151,253,101,253,126,253,49,254,44,255, +212,255,192,255,104,255,56,255,234,254,198,254,42,255,182,255,42,0,91,0,46,0,242,255,234,255,12,0,12,0,188,255, +139,255,191,255,26,0,82,0,24,0,150,255,116,255,193,255,254,255,22,0,54,0,26,0,158,255,55,255,36,255,45,255, +69,255,145,255,12,0,87,0,97,0,154,0,220,0,188,0,172,0,216,0,144,0,220,255,126,255,173,255,42,0,206,0, +94,1,202,1,21,2,187,1,149,0,110,255,231,254,54,255,89,0,194,1,180,2,217,2,128,2,31,2,123,1,157,0, +34,0,229,255,205,255,75,0,186,0,15,0,175,254,159,253,52,253,90,253,239,253,188,254,27,0,94,2,72,4,186,4, +87,4,220,3,16,3,135,1,170,255,147,254,252,253,206,252,117,251,136,250,219,249,172,249,76,250,215,251,23,254,51,0, +1,2,196,3,129,4,148,3,80,2,57,2,155,3,47,5,139,4,206,1,83,0,2,1,33,1,204,254,105,251,60,251, +106,255,126,2,58,2,237,2,25,5,31,5,81,2,247,254,68,254,72,0,7,1,32,0,201,0,165,2,172,3,134,3, +117,2,233,1,186,2,250,2,86,1,38,255,242,253,158,253,54,253,5,253,147,253,7,254,109,254,93,255,171,255,254,254, +163,254,134,254,249,253,77,253,254,252,79,253,235,253,5,254,162,253,0,254,65,0,143,4,254,10,30,18,114,21,92,19, +171,15,158,11,16,5,26,253,72,246,215,240,187,236,146,234,193,234,247,236,219,239,202,241,128,242,166,243,103,246,221,249, +168,253,181,1,102,4,203,5,179,7,113,9,166,9,238,8,118,8,129,8,234,7,156,6,212,6,128,8,1,9,200,7, +194,5,209,3,119,2,171,0,71,254,14,253,190,252,205,251,184,250,83,250,135,250,144,251,63,253,96,254,106,254,26,254, +62,254,252,254,182,255,151,255,14,255,116,255,113,0,161,0,126,0,10,1,205,1,125,2,97,3,13,4,45,4,0,4, +114,3,79,2,15,1,61,0,179,255,122,255,161,255,99,255,37,255,229,255,226,255,151,253,51,251,232,250,186,252,148,255, +242,0,87,255,98,253,203,253,15,255,51,255,71,255,68,0,39,1,114,1,32,2,73,3,16,3,204,0,177,254,97,254, +77,255,185,0,242,1,41,2,179,1,169,1,221,1,223,0,180,254,252,252,144,252,57,253,44,254,111,254,76,254,154,254, +238,254,127,254,194,253,184,253,17,254,15,254,67,254,252,254,68,255,216,254,168,254,49,255,17,0,9,1,189,1,109,1, +182,0,209,0,79,1,168,1,0,2,14,2,212,1,24,1,158,255,160,254,206,254,118,255,137,0,173,1,75,1,52,255, +96,253,117,252,243,250,75,249,179,249,222,251,181,253,180,254,238,255,14,2,198,3,79,3,84,1,106,0,239,1,84,4, +141,4,117,2,64,2,227,4,226,4,59,1,144,255,107,0,193,255,69,253,84,251,192,251,228,253,48,255,92,255,70,255, +114,254,229,252,110,251,217,250,68,251,180,252,60,0,141,4,171,6,115,7,239,8,92,10,235,9,59,7,95,4,137,2, +199,0,120,255,114,254,39,252,104,249,57,248,196,248,83,249,205,249,6,253,171,1,154,2,151,0,246,255,234,0,121,1, +55,1,166,0,53,0,38,1,154,3,110,4,57,2,53,255,157,253,94,254,104,254,150,250,168,247,208,249,88,253,147,255, +145,1,123,3,76,4,184,2,113,255,255,252,216,251,35,251,230,250,2,251,231,250,73,250,230,249,250,250,85,253,146,255, +210,0,106,1,24,2,72,3,17,5,110,6,246,5,165,4,99,4,214,4,163,4,72,3,64,1,68,255,83,253,54,252, +93,253,38,255,173,254,233,252,146,252,156,253,98,254,181,254,212,255,120,2,236,5,195,8,162,10,195,12,71,15,155,15, +207,11,207,5,53,0,142,250,126,244,69,240,251,238,119,239,4,241,20,243,11,245,252,246,160,248,232,249,164,251,231,253, +49,0,25,3,198,7,35,13,236,15,28,15,83,12,148,8,224,4,15,2,143,255,26,253,193,250,240,248,164,248,243,248, +110,248,16,248,0,249,209,250,65,253,163,1,169,7,241,10,214,9,217,7,71,6,22,4,147,1,235,255,76,0,108,1, +243,0,139,255,74,254,48,253,244,252,199,253,92,254,158,253,171,253,204,0,196,2,30,255,185,249,160,248,79,253,228,4, +69,10,229,10,28,9,214,7,252,5,242,1,84,254,29,253,169,252,139,251,48,249,225,246,65,247,112,249,91,251,192,253, +93,1,7,5,215,6,147,6,239,5,177,5,187,5,27,6,66,6,99,5,195,3,231,2,47,2,240,254,94,250,12,247, +67,244,122,242,131,243,186,246,226,250,217,255,135,5,81,10,45,12,38,11,200,7,4,3,59,255,223,252,99,251,42,251, +212,250,112,249,247,248,145,250,67,253,79,0,2,4,204,7,67,10,92,11,37,11,235,8,58,5,31,1,136,253,238,250, +221,248,97,248,209,250,220,254,167,2,241,4,60,5,207,4,106,4,149,3,37,2,30,0,253,253,107,252,207,251,192,252, +190,254,254,255,223,255,130,255,207,255,95,0,39,1,175,2,65,4,6,5,13,5,31,4,59,2,230,255,174,253,166,252, +74,253,118,254,221,254,85,254,31,254,115,255,139,1,12,3,249,3,92,4,161,3,226,1,220,255,98,254,81,253,101,251, +28,249,126,248,71,249,58,250,87,251,80,252,224,252,155,253,203,254,105,0,51,2,93,3,108,3,252,2,170,2,244,1, +250,0,208,0,252,0,161,0,2,0,118,255,156,255,110,0,5,1,98,1,63,1,101,0,228,255,65,255,121,253,53,252, +212,252,61,254,4,255,233,254,117,254,5,254,255,253,189,254,167,255,71,0,222,0,11,1,163,0,236,0,25,2,225,1, +209,255,239,254,47,0,226,0,89,255,168,252,29,251,202,251,50,253,28,254,78,255,49,1,70,2,114,0,149,252,34,251, +247,253,150,1,55,3,24,4,211,4,136,3,210,255,120,251,153,248,126,249,241,253,129,2,251,4,65,5,119,3,74,0, +155,252,174,249,70,248,86,247,31,247,240,248,75,251,84,252,168,252,134,253,61,255,114,1,138,4,140,8,251,10,245,9, +179,6,150,3,61,2,27,2,34,2,2,3,143,4,64,5,182,4,239,2,157,255,31,251,16,247,160,245,57,247,211,250, +161,255,209,3,101,5,108,4,39,2,227,255,211,253,249,251,191,252,105,1,118,6,2,8,124,5,181,0,90,252,92,250, +31,251,76,253,157,254,168,254,25,255,113,0,100,1,186,1,232,2,0,5,102,6,183,6,125,6,149,5,229,3,162,1, +206,254,76,251,112,247,48,244,50,242,11,242,199,244,5,250,175,255,17,4,253,6,85,9,224,10,131,10,34,9,14,8, +226,6,95,5,189,3,173,1,93,254,62,249,155,244,1,244,250,246,118,250,83,253,35,0,125,3,56,6,254,5,218,3, +6,3,173,2,83,0,144,253,201,252,247,252,139,252,40,252,157,252,144,253,29,255,54,1,51,2,188,1,104,1,117,1, +180,1,149,2,62,3,219,2,214,1,166,0,3,0,151,0,25,2,138,3,184,3,134,2,120,0,102,253,194,249,76,247, +139,247,10,250,169,252,58,255,42,3,221,6,148,7,69,5,75,1,44,253,123,250,26,250,200,251,76,254,5,1,26,4, +175,6,207,7,4,8,214,7,181,6,132,4,32,2,156,255,5,253,150,251,100,251,103,251,41,251,23,250,247,248,151,249, +98,251,65,253,163,255,80,2,68,4,227,4,201,4,130,4,102,2,66,254,82,251,34,251,99,252,137,253,207,253,246,253, +56,254,84,254,153,0,225,5,101,10,246,11,97,12,172,12,189,11,156,8,205,3,219,254,145,250,25,246,197,240,255,235, +231,233,253,234,87,238,19,243,203,248,84,254,135,1,165,2,175,4,47,8,203,10,197,11,6,12,240,11,154,11,14,11, +217,9,255,7,243,6,69,7,127,6,15,3,234,254,46,251,217,246,203,242,204,240,246,239,188,238,80,238,171,240,244,244, +246,248,130,252,31,0,243,2,138,4,116,5,180,5,254,4,221,3,120,3,30,4,169,4,134,4,253,3,8,3,195,2, +187,3,117,4,81,7,65,18,43,36,65,50,190,49,232,33,215,10,195,244,186,229,78,224,23,223,83,219,106,214,161,213, +24,219,176,229,220,242,86,255,154,7,110,10,251,9,140,8,196,6,209,4,93,3,168,3,153,6,239,11,67,17,219,18, +59,16,145,12,160,9,186,6,82,3,195,255,224,252,28,251,106,250,156,250,192,250,231,249,24,249,77,249,16,249,249,247, +138,248,95,252,205,3,229,14,110,26,100,32,210,28,156,17,47,6,61,255,225,249,54,243,167,235,112,228,78,225,80,229, +241,238,124,251,16,6,146,8,8,4,92,254,86,250,250,247,51,247,40,248,94,249,48,248,45,246,142,247,219,252,170,3, +8,10,49,15,96,17,217,14,213,11,33,13,144,15,43,15,198,12,236,9,136,7,175,5,22,4,184,1,64,252,194,245, +239,243,4,247,228,250,222,252,14,252,18,249,3,246,85,245,236,246,33,248,91,248,59,249,87,251,119,253,129,254,16,0, +239,2,126,4,87,4,85,4,109,4,170,4,230,5,136,8,209,11,51,13,168,11,216,8,208,5,2,3,161,0,77,254, +236,251,38,249,74,245,216,240,195,237,106,237,32,239,90,242,10,247,134,251,144,254,147,0,214,1,48,2,173,1,78,1, +73,2,154,4,184,7,56,10,16,11,165,11,99,12,37,12,147,11,139,11,234,11,48,12,72,11,179,8,183,4,99,0, +71,253,49,251,24,249,215,246,159,244,52,243,153,242,161,241,129,240,151,240,98,242,6,246,223,252,82,7,162,17,65,24, +158,26,105,23,245,14,72,6,3,2,16,1,175,254,235,250,1,249,39,246,169,241,161,242,111,250,237,2,27,7,171,3, +99,249,70,238,1,232,27,232,44,236,102,242,180,250,46,2,248,5,232,6,218,5,199,3,203,2,81,3,247,4,232,7, +40,11,197,12,242,12,92,15,173,20,85,22,99,17,59,11,240,5,60,255,108,247,72,239,245,232,230,231,247,233,80,235, +22,236,97,236,30,237,96,241,225,249,135,4,27,13,16,16,239,15,135,16,33,16,74,12,120,6,107,1,118,254,57,254, +45,1,161,4,91,4,194,1,25,1,76,2,237,3,159,5,167,6,103,8,18,12,212,14,175,15,207,16,80,16,246,9, +34,255,250,244,140,236,100,228,98,223,57,224,212,227,195,231,224,236,227,242,78,249,138,0,211,7,124,13,77,16,204,15, +201,11,106,5,80,0,185,254,154,255,51,2,69,5,135,5,135,2,192,255,22,254,203,250,233,246,58,247,90,251,24,255, +255,1,65,5,98,8,56,10,87,9,107,6,82,4,231,3,211,3,241,2,236,0,191,254,182,253,11,254,29,255,202,255, +229,254,203,252,246,251,240,253,26,1,188,3,148,5,106,6,55,6,228,4,197,2,128,1,22,1,176,255,42,253,46,250, +15,247,250,244,38,245,153,247,230,250,143,253,198,255,131,1,180,1,118,1,72,3,184,6,182,8,151,7,2,4,175,255, +14,253,92,253,39,255,72,0,123,255,22,253,52,251,73,251,50,253,209,255,187,1,20,3,19,4,142,3,26,2,199,0, +182,254,25,252,130,250,254,250,50,253,6,255,160,0,190,3,98,5,191,2,156,255,187,254,198,253,88,252,249,252,140,255, +199,1,123,2,12,1,227,253,2,251,247,248,26,247,9,247,43,251,221,1,52,6,49,7,235,8,164,12,108,14,41,11, +184,4,58,255,189,250,222,244,161,238,156,233,65,231,191,235,239,247,229,5,190,13,111,11,108,4,177,0,40,255,72,253, +112,254,49,3,19,7,81,7,75,5,233,4,103,8,140,13,29,17,224,18,241,18,116,14,14,5,229,251,221,245,68,241, +83,237,211,234,217,234,223,237,123,241,203,243,39,247,125,252,6,1,209,4,152,9,115,12,92,10,59,5,154,255,180,250, +230,247,76,247,206,247,253,249,254,255,224,7,199,11,244,11,83,13,156,14,2,13,37,11,107,10,88,8,212,3,173,254, +152,250,122,247,238,245,79,247,194,249,140,250,226,250,68,253,129,1,69,6,177,11,234,16,222,18,105,17,79,15,204,12, +43,9,206,5,114,3,107,0,202,251,17,248,76,247,202,247,172,248,250,250,170,253,52,255,160,255,67,255,250,254,183,255, +219,0,58,1,31,1,203,0,21,255,235,252,184,252,55,253,171,252,130,252,183,252,57,252,32,252,79,252,48,251,109,249, +236,248,20,250,176,251,203,252,69,254,67,0,112,0,105,255,119,1,58,5,87,5,181,3,104,4,192,4,116,2,199,255, +222,253,123,252,53,252,5,253,119,253,174,252,208,252,99,255,175,0,213,253,223,250,15,252,71,0,2,5,184,8,53,10, +168,9,79,7,254,2,138,255,127,255,40,0,82,255,130,254,19,254,76,253,213,252,72,253,37,254,71,254,155,253,104,253, +166,253,50,253,176,252,205,253,107,0,145,2,42,3,53,3,134,3,16,3,11,1,82,255,152,255,170,0,170,1,30,3, +106,4,12,5,201,4,149,2,39,255,237,252,113,253,23,0,63,1,235,254,223,251,113,249,205,246,169,245,144,247,205,250, +100,252,45,251,179,249,45,250,46,251,1,252,220,253,146,0,47,3,152,5,77,8,42,11,129,12,88,12,252,12,152,13, +107,11,78,7,12,4,251,2,33,3,137,2,77,1,206,255,164,253,144,252,184,252,29,252,205,251,171,251,57,252,248,2, +23,11,253,5,22,245,212,231,204,228,99,231,249,235,164,245,130,4,136,14,103,13,255,6,170,2,78,3,179,8,111,16, +218,23,154,27,130,24,103,15,201,4,152,252,136,246,230,240,197,237,246,237,194,236,54,232,11,228,171,226,203,227,214,231, +181,239,242,249,171,2,29,8,137,11,74,13,131,13,93,13,207,12,21,12,128,11,154,8,204,2,60,253,45,249,142,246, +123,245,214,244,81,244,19,244,209,245,236,253,182,8,127,11,168,6,239,2,200,2,235,4,67,9,38,15,240,20,51,23, +152,18,115,9,6,2,251,253,64,251,221,250,109,252,60,251,203,247,182,246,157,247,210,248,173,251,119,0,50,4,144,3, +199,255,167,252,161,250,121,249,55,251,7,0,125,5,33,9,162,9,158,8,19,9,92,10,206,8,225,3,203,254,182,251, +206,250,239,250,233,250,89,252,223,255,165,1,4,0,234,253,74,253,164,253,177,253,199,252,109,251,235,249,37,248,196,246, +239,246,147,249,214,254,118,5,145,10,66,12,9,12,64,11,27,9,182,5,82,2,34,0,168,255,198,255,198,255,36,0, +111,0,111,255,48,252,43,247,156,242,46,240,68,240,250,241,99,243,70,244,10,246,63,249,239,252,107,255,24,1,106,3, +214,5,29,8,108,10,103,12,159,15,222,19,145,21,128,19,182,14,94,9,33,6,223,3,25,1,157,255,222,254,252,251, +240,246,52,242,16,240,104,240,104,241,161,242,154,244,68,247,223,250,38,255,56,2,249,3,65,6,177,7,231,6,21,7, +22,9,59,10,36,10,144,8,63,5,56,2,251,255,235,253,186,252,183,252,156,253,59,254,213,253,153,253,78,253,68,252, +9,252,243,252,225,253,72,254,202,253,13,253,250,252,181,253,142,255,16,2,163,4,202,7,141,10,233,9,79,5,92,1, +213,1,13,3,97,0,134,251,188,247,160,245,73,245,239,246,164,249,164,251,35,252,69,251,192,249,204,249,203,252,145,1, +147,6,107,10,8,12,78,11,218,8,145,6,225,5,116,6,160,7,52,7,122,3,100,254,173,249,125,246,14,247,231,249, +128,251,135,252,18,255,123,1,17,1,228,255,179,1,138,4,53,4,33,1,90,255,214,0,86,2,86,2,159,4,34,8, +146,7,198,3,34,0,12,253,53,250,197,247,222,246,203,247,8,248,106,246,1,245,120,245,223,247,11,252,235,0,241,3, +245,4,222,6,129,9,44,10,247,8,170,7,126,7,88,8,117,8,74,7,211,5,241,3,16,1,247,253,226,251,101,250, +194,248,126,248,109,250,104,252,153,252,168,251,212,251,229,253,176,255,126,255,234,253,6,253,20,255,124,3,255,6,187,7, +53,7,62,8,157,9,219,7,73,4,229,1,160,0,204,255,118,254,93,252,84,251,152,251,65,251,170,249,64,248,124,248, +105,249,119,249,81,249,51,250,78,252,17,254,199,253,139,253,24,0,178,3,107,5,38,5,67,4,16,3,171,1,117,1, +21,2,155,1,237,255,40,253,217,249,145,248,213,249,146,251,152,252,47,253,166,254,219,0,192,1,131,1,212,1,58,2, +53,1,196,254,213,252,10,253,160,254,124,0,191,2,238,4,19,6,3,7,28,9,223,10,59,10,182,8,67,8,201,7, +253,5,87,3,121,0,221,252,173,247,73,242,63,239,142,238,77,239,10,242,27,246,184,249,34,253,45,1,254,4,12,7, +160,7,223,9,81,14,49,16,143,14,38,14,42,15,190,13,154,9,195,4,43,255,199,247,149,240,158,236,24,235,40,235, +140,237,39,240,78,242,76,247,149,254,165,3,208,4,235,4,209,6,18,8,187,6,119,7,35,11,145,11,16,8,108,5, +171,4,255,2,122,254,221,249,57,249,24,251,186,252,15,255,192,1,57,3,78,4,8,5,12,4,33,2,246,0,69,0, +255,254,93,253,194,251,86,250,192,250,33,253,73,254,191,253,245,253,157,254,144,254,214,254,128,0,16,3,205,4,154,4, +78,3,226,1,139,0,235,255,206,0,216,2,92,4,155,4,133,4,210,3,100,1,146,254,55,253,23,253,220,253,76,255, +153,255,175,253,104,251,29,251,235,252,36,255,91,0,104,0,51,0,68,1,44,3,229,2,70,0,198,254,251,254,161,254, +214,253,87,254,237,255,129,0,77,255,252,253,218,253,7,254,224,253,224,254,168,1,255,3,27,5,88,6,149,6,84,4, +73,1,228,254,9,253,97,252,209,253,104,0,41,2,249,3,230,7,50,11,118,10,191,7,192,5,7,4,246,1,88,0, +81,0,185,1,105,2,189,255,117,249,92,243,163,240,80,239,75,237,146,236,232,238,116,243,123,248,78,252,11,255,72,3, +229,9,78,15,203,16,7,17,106,18,239,18,40,17,108,13,136,7,174,1,234,254,67,253,152,249,82,245,30,243,103,243, +87,245,217,247,202,249,57,251,154,253,159,0,27,2,85,2,80,3,75,5,73,7,232,7,232,6,17,6,174,5,168,4, +133,3,99,2,129,0,17,254,206,250,16,247,108,245,189,246,1,249,173,251,125,255,213,2,78,3,24,1,0,254,151,251, +47,251,4,253,32,255,168,255,22,0,137,2,253,5,60,9,202,11,144,11,141,8,168,5,250,2,244,254,125,250,114,247, +65,246,251,244,22,242,154,239,73,239,149,240,143,243,212,246,195,247,33,248,203,250,239,253,72,0,54,4,205,9,60,14, +0,17,93,19,142,20,209,18,226,14,104,11,69,9,89,7,32,5,175,2,191,255,63,252,215,248,88,246,201,244,235,243, +226,243,98,244,55,245,220,246,7,249,224,250,24,252,202,252,153,253,151,254,118,255,46,1,226,3,5,6,229,6,191,6, +82,6,124,6,217,6,209,6,1,6,54,4,144,2,133,1,94,0,48,255,222,253,203,252,39,253,169,253,161,252,34,251, +137,250,0,251,0,252,128,253,4,0,191,1,32,1,142,0,39,1,184,0,93,255,55,255,222,255,70,255,133,253,141,252, +83,253,133,255,138,2,231,5,118,9,25,12,59,12,117,10,36,8,65,5,230,1,64,254,251,249,10,246,63,243,114,240, +230,237,249,237,142,240,169,243,204,246,212,249,62,252,94,254,25,1,241,4,223,8,119,11,61,13,157,14,114,14,33,13, +176,12,7,13,28,12,216,9,122,7,66,4,117,255,168,250,38,247,176,244,176,242,104,241,183,241,36,243,246,244,156,247, +103,250,107,252,169,254,109,2,98,7,41,11,175,11,216,9,4,8,43,8,119,9,151,8,166,6,0,8,113,11,2,12, +129,8,61,4,197,1,237,254,121,249,67,243,91,238,110,235,138,234,84,234,222,234,78,238,40,244,15,250,206,255,89,5, +82,9,147,11,111,12,223,11,19,11,244,10,113,11,131,12,11,13,69,12,199,10,157,7,176,1,222,250,167,246,152,246, +47,248,178,248,13,248,147,245,138,241,50,239,213,239,31,242,76,245,232,248,130,252,126,255,56,1,23,2,210,2,17,4, +223,6,230,10,161,13,223,13,227,13,196,14,62,14,165,11,171,8,243,5,15,3,72,255,232,250,17,248,220,247,246,248, +225,249,45,250,68,250,197,250,187,251,68,253,254,255,238,2,250,3,161,3,8,3,29,2,213,2,21,6,53,9,113,11, +222,12,27,11,77,5,202,253,131,247,162,243,225,241,229,242,6,246,117,248,129,249,239,250,209,253,54,1,22,5,176,10, +178,13,207,9,130,5,114,6,76,8,120,7,14,5,244,1,141,253,79,248,153,245,94,246,211,247,227,248,119,249,124,249, +45,249,21,248,26,248,226,250,251,253,142,0,134,3,36,6,49,8,113,9,205,9,212,9,90,8,97,5,7,3,61,1, +221,254,5,252,75,249,87,247,236,246,192,248,126,251,121,252,112,252,141,253,45,255,215,0,217,2,36,4,171,4,121,5, +124,5,221,3,148,2,156,2,204,2,194,2,29,2,127,0,59,255,189,254,209,253,180,252,67,252,118,252,113,253,205,254, +92,255,128,255,111,0,164,1,238,1,68,1,90,0,242,255,56,0,82,0,18,255,247,252,32,252,109,252,75,252,170,252, +159,253,253,253,110,255,166,1,192,1,131,1,169,3,62,6,236,6,139,6,189,6,98,6,168,3,89,0,117,254,73,253, +76,252,119,251,36,250,210,247,240,245,231,246,86,249,92,250,40,251,58,253,136,255,9,1,61,1,60,1,212,2,21,5, +233,5,52,5,75,4,8,4,208,3,201,2,251,0,249,254,38,253,127,251,204,250,218,251,64,253,190,253,68,254,75,255, +71,0,39,1,190,1,207,1,243,1,59,2,157,1,52,0,44,255,5,255,152,255,9,0,13,0,211,0,2,2,41,2, +101,1,252,255,95,254,127,253,73,253,141,253,10,254,27,254,252,253,69,254,95,255,95,0,115,255,253,253,229,253,6,254, +24,254,119,254,207,254,102,255,119,254,217,251,53,252,8,0,41,3,20,5,242,6,2,8,138,7,228,5,227,3,7,2, +230,0,198,0,49,0,87,254,139,252,161,251,61,251,163,250,175,249,141,249,148,250,214,251,97,253,98,255,189,0,241,0, +87,1,213,2,177,4,194,6,23,9,11,10,120,8,249,4,108,0,173,252,82,251,78,251,62,251,97,251,77,252,197,253, +170,254,160,254,164,254,252,254,129,255,142,0,196,1,198,2,255,3,185,4,154,3,86,1,215,255,143,255,243,255,229,0, +17,2,190,2,84,2,223,0,138,255,198,254,5,254,122,254,137,0,23,2,31,3,89,4,90,4,15,3,64,1,10,255, +233,253,88,254,212,254,30,255,45,255,34,254,19,252,213,249,191,248,133,250,0,255,44,3,245,3,173,1,246,254,107,253, +138,253,126,255,95,2,63,4,244,3,194,2,107,2,29,3,117,4,24,5,217,3,172,2,206,2,135,2,126,1,152,0, +5,0,109,255,152,253,132,251,195,251,15,253,116,253,19,254,115,255,209,0,134,1,59,1,165,0,213,255,95,254,141,253, +22,254,255,254,210,255,87,0,30,0,155,255,226,255,242,0,187,1,76,2,242,2,106,2,100,0,115,254,134,253,36,253, +132,252,237,251,10,252,97,252,167,252,85,253,197,254,230,0,125,2,209,2,181,2,49,2,152,1,17,2,43,3,1,4, +237,3,141,2,106,1,44,1,124,0,99,255,212,254,158,255,114,1,199,1,74,0,139,255,151,255,48,255,178,254,102,254, +51,254,50,254,215,254,71,0,168,0,113,255,69,255,146,0,216,1,15,3,27,3,230,1,110,1,1,0,174,252,102,251, +13,252,242,250,243,248,242,248,22,251,238,252,44,253,178,254,179,3,65,10,245,14,170,15,139,13,162,9,155,3,82,255, +211,254,129,253,159,250,247,249,7,252,2,254,243,252,55,251,126,253,180,0,225,255,67,252,244,247,113,243,29,240,147,240, +160,245,55,251,102,254,110,1,102,5,83,9,118,13,45,17,80,18,61,16,62,13,4,11,144,7,239,1,235,252,139,250, +108,250,27,251,203,251,57,253,194,254,140,254,26,253,195,251,111,250,160,248,234,246,160,247,26,251,188,253,153,254,92,0, +146,2,3,3,75,2,90,2,224,3,107,5,159,5,79,5,157,4,109,2,76,255,234,252,62,252,23,252,134,250,86,249, +88,251,218,254,190,0,209,0,145,0,106,0,204,255,140,255,109,0,125,1,110,2,85,3,225,3,70,4,123,4,222,4, +125,5,191,4,62,3,0,3,159,2,147,0,32,254,32,252,133,250,235,249,175,250,76,252,51,254,208,255,85,0,145,255, +78,254,56,254,168,255,85,0,117,0,123,2,138,4,121,4,200,3,50,3,196,2,235,1,156,255,23,254,82,254,230,253, +150,253,184,254,187,255,73,0,247,0,51,1,155,0,233,255,225,255,133,255,41,254,126,253,38,254,228,254,102,255,29,0, +251,0,113,1,68,1,203,0,7,0,136,254,144,252,170,251,54,252,104,252,192,252,249,254,50,1,218,1,20,2,58,2, +139,2,163,3,20,5,11,6,141,5,240,3,184,2,130,1,110,255,168,253,191,253,30,255,94,255,50,254,62,253,72,252, +150,251,53,252,131,252,86,252,235,253,205,255,95,255,230,253,131,253,41,254,138,254,140,254,158,255,127,1,135,2,14,3, +13,4,251,4,243,4,227,3,157,2,158,1,184,0,104,0,208,0,31,1,13,1,53,0,118,254,17,253,93,252,101,251, +171,249,165,247,169,246,29,247,18,248,79,249,152,250,140,251,193,252,134,254,159,0,141,2,129,3,141,3,132,3,181,4, +133,7,198,9,237,10,203,12,240,13,185,11,216,6,239,0,8,251,162,246,164,244,192,243,114,242,15,242,202,243,9,246, +180,247,62,249,107,251,146,254,91,1,17,3,222,4,6,7,28,9,206,10,185,11,236,11,180,10,24,8,107,6,181,5, +212,3,72,1,81,255,95,253,221,250,148,248,40,248,97,249,236,249,194,249,254,250,95,253,59,255,144,0,217,1,158,2, +129,2,27,2,35,2,84,2,49,2,245,1,199,1,186,1,99,2,134,3,187,3,132,2,249,0,37,0,107,0,165,1, +21,2,115,0,238,254,254,254,158,254,177,253,99,254,248,255,64,0,40,0,154,1,218,2,209,1,111,0,118,255,169,253, +215,252,21,253,136,251,6,250,227,250,167,251,182,251,38,253,110,255,231,0,149,1,111,2,161,3,30,4,134,3,215,2, +191,2,250,2,247,2,32,2,86,0,224,254,238,254,27,255,41,254,219,253,191,254,11,255,195,254,177,254,150,254,180,254, +31,255,228,255,137,1,245,2,9,3,28,2,246,255,66,253,160,251,229,250,248,250,17,252,41,253,96,254,83,0,151,1, +47,1,162,0,131,1,139,2,170,1,214,255,198,254,190,254,8,0,183,1,111,2,14,3,252,3,169,3,163,1,45,255, +80,253,180,251,245,249,230,248,9,249,225,249,21,251,115,252,157,253,85,254,133,255,52,2,199,4,30,6,202,7,177,8, +169,6,10,4,37,2,174,255,200,254,208,255,140,254,215,251,126,251,240,251,136,251,157,251,239,251,220,251,231,251,57,252, +29,253,189,254,205,0,77,3,141,5,158,6,10,7,120,7,171,7,6,8,223,8,163,8,117,6,118,4,57,4,74,4, +158,2,123,255,103,253,121,253,190,253,190,252,86,251,17,251,190,251,58,251,151,249,4,249,81,249,248,249,203,251,30,254, +16,0,136,1,168,1,84,0,213,254,195,253,168,252,181,251,244,251,25,253,62,254,81,0,31,3,234,4,163,6,195,8, +104,8,124,5,98,3,157,2,57,1,229,254,41,253,111,253,11,255,17,0,250,255,51,255,65,254,118,254,57,0,227,1, +44,2,133,1,8,1,38,1,53,1,251,0,233,0,203,0,202,0,136,1,185,1,218,255,56,253,162,251,50,251,106,251, +216,251,116,252,112,253,167,254,53,0,232,1,4,3,240,3,2,5,132,5,136,5,114,5,34,5,54,4,80,2,201,0, +55,0,146,254,62,253,181,254,196,255,139,255,218,1,191,4,239,3,166,0,204,253,205,252,133,252,107,250,187,248,186,250, +182,253,34,255,1,0,120,0,153,0,203,0,40,0,36,255,57,255,46,0,101,1,191,2,205,3,86,4,159,4,166,4, +250,3,216,2,36,2,178,1,74,1,56,2,220,4,41,7,178,6,26,3,175,254,109,251,43,249,83,248,130,249,226,250, +161,250,128,249,252,248,85,249,225,249,154,250,182,251,131,252,67,253,227,254,129,0,201,1,208,3,128,5,32,5,170,3, +199,2,186,2,228,2,2,3,130,3,193,3,202,2,158,1,236,0,10,0,43,255,92,254,14,253,201,251,50,251,70,251, +253,251,243,252,169,253,34,254,207,254,213,255,28,0,40,255,106,254,99,254,110,254,3,255,1,0,58,0,223,255,175,255, +122,255,84,255,8,0,201,1,82,3,44,3,222,1,66,1,66,2,237,3,250,3,109,1,125,254,173,253,219,254,229,255, +42,255,48,254,36,255,101,0,3,0,21,255,110,254,21,254,48,254,28,254,127,254,184,0,98,3,163,4,228,4,139,4, +15,3,244,0,101,255,206,253,172,251,194,250,112,251,82,252,35,254,29,1,29,3,220,3,144,4,10,5,249,4,141,4, +70,3,236,0,191,254,171,253,28,253,202,252,228,252,17,253,31,253,170,252,131,251,234,250,87,251,254,251,164,252,204,253, +150,1,206,8,144,14,156,14,154,11,87,9,182,7,35,5,44,2,174,0,5,0,84,254,7,252,220,249,254,247,86,247, +160,247,150,247,97,247,144,247,17,248,58,249,89,251,216,253,13,0,222,1,204,3,154,5,164,5,56,4,206,3,105,4, +195,4,11,5,2,5,73,4,251,2,4,1,141,255,146,255,68,0,253,0,160,1,45,2,103,2,133,1,2,0,174,254, +215,252,78,250,69,248,248,247,33,249,32,250,235,250,141,252,158,254,150,0,183,2,14,5,84,7,48,9,53,10,226,9, +55,8,129,5,6,2,198,254,139,252,188,251,16,253,117,255,181,0,64,0,219,254,174,253,184,252,192,251,89,252,46,254, +17,255,126,255,52,0,29,0,245,254,241,253,50,254,17,255,152,255,242,255,158,255,173,254,138,254,148,255,2,1,101,1, +27,0,96,254,138,253,207,254,224,1,65,4,204,5,251,7,202,9,203,9,178,8,223,7,236,6,45,5,208,3,161,2, +32,0,230,252,199,249,226,246,122,244,154,242,212,240,130,238,168,237,73,240,108,243,6,246,216,250,179,0,88,4,214,4, +134,3,61,1,77,252,40,247,9,248,196,1,142,20,99,42,62,59,207,69,27,68,213,51,28,38,218,33,50,25,189,8, +250,246,150,227,108,205,24,184,215,168,244,161,76,161,100,164,6,171,98,182,96,197,144,213,23,233,130,0,26,22,189,40, +113,60,106,81,172,100,17,114,37,119,13,118,180,109,65,88,173,55,6,22,124,248,45,222,9,200,254,184,245,176,2,174, +138,176,60,184,124,193,136,202,72,212,3,223,94,235,74,249,107,7,114,21,216,33,241,41,227,45,58,47,160,46,196,43, +46,38,64,30,191,19,131,7,14,253,76,245,168,238,84,233,111,229,119,226,227,224,224,225,76,230,177,236,154,242,219,247, +31,254,89,6,227,13,164,17,150,19,188,21,134,22,144,21,133,19,203,16,243,13,183,10,54,8,133,7,213,5,35,1, +21,251,82,245,85,240,55,236,137,233,28,232,196,230,19,231,171,234,10,239,104,242,78,245,113,247,193,248,22,250,36,252, +11,255,64,2,124,5,180,8,75,12,90,16,228,18,54,19,223,18,49,17,35,13,255,7,195,2,248,253,23,250,233,246, +208,244,51,244,80,244,161,244,158,245,72,247,56,249,58,252,61,0,76,3,149,5,155,8,29,11,125,11,51,11,196,12, +254,15,240,18,202,20,220,19,243,13,105,4,227,249,174,239,223,231,142,228,116,229,130,232,100,236,75,241,9,247,226,252, +103,2,244,6,127,9,83,9,221,8,106,11,78,14,30,15,90,18,145,24,7,27,218,23,168,19,99,16,206,11,167,5, +7,0,16,251,245,245,216,240,218,235,107,231,88,228,190,227,214,229,224,232,206,236,39,243,122,250,117,0,242,4,232,8, +31,13,201,16,240,18,178,19,90,18,178,14,154,10,79,7,191,3,146,254,234,248,200,244,34,242,211,240,106,241,159,243, +193,246,187,249,10,252,211,254,61,2,25,5,68,7,23,9,253,9,245,8,106,6,144,3,118,0,232,253,56,253,234,252, +139,251,61,250,30,249,0,247,89,244,30,243,155,244,232,247,48,251,95,254,41,2,38,5,71,5,172,3,13,3,73,3, +217,2,27,2,38,2,62,3,229,4,61,6,224,6,212,6,43,6,216,4,138,2,211,255,149,253,140,251,31,250,64,250, +122,251,89,253,158,255,69,1,196,1,119,1,90,1,127,1,93,0,248,254,209,255,35,1,30,1,232,1,217,3,7,5, +112,5,89,5,2,4,122,1,251,254,250,253,93,254,54,254,24,253,194,252,123,253,234,253,16,254,182,254,180,255,234,0, +124,2,232,3,189,4,59,5,148,5,122,5,201,4,12,4,60,3,104,1,240,254,45,253,60,252,30,252,155,252,42,252, +73,251,94,252,201,254,64,0,103,0,245,255,212,255,180,255,6,254,170,251,240,250,245,251,195,253,80,255,223,255,116,0, +93,2,31,5,43,7,195,7,172,7,98,7,85,6,102,4,214,1,207,254,26,251,169,246,148,243,133,243,195,244,225,245, +99,247,99,249,140,251,135,253,244,254,175,255,47,0,209,1,84,4,195,5,11,6,70,6,2,7,243,7,128,7,176,5, +6,4,25,2,248,255,162,254,125,253,35,252,146,250,217,248,220,247,103,247,160,247,168,249,76,252,54,254,206,255,44,1, +145,2,13,4,40,5,227,5,167,5,61,4,149,2,144,1,72,2,75,4,174,5,92,6,217,6,134,6,45,4,29,0, +246,253,0,254,73,252,216,250,15,253,59,255,138,254,59,253,197,253,227,254,147,252,245,248,251,249,230,252,142,252,112,251, +188,252,66,255,59,1,26,3,211,5,225,7,62,8,132,8,105,9,58,10,250,9,46,8,119,6,195,5,99,4,81,1, +54,253,149,249,167,247,53,247,241,247,38,249,93,249,67,249,65,250,189,251,237,252,102,253,20,253,214,252,145,252,26,252, +225,252,167,254,17,0,230,1,19,4,215,4,56,4,31,3,206,1,129,0,119,255,39,255,96,255,63,255,24,255,70,255, +150,255,252,255,246,254,78,252,17,251,213,251,175,252,215,253,144,0,6,4,196,4,128,2,107,2,107,4,51,3,83,0, +12,0,145,1,99,2,225,0,105,254,7,254,179,254,69,254,123,253,76,253,218,253,223,254,111,0,145,2,189,3,255,3, +74,5,81,7,230,8,34,9,61,7,168,4,99,2,125,255,95,252,139,249,182,246,216,244,2,245,162,246,240,247,182,248, +19,251,114,254,93,0,221,1,63,4,144,6,168,8,91,10,249,10,215,10,143,9,199,6,152,4,201,3,231,1,76,255, +194,254,44,254,112,250,200,246,157,246,15,248,118,248,201,247,87,248,8,251,16,253,223,253,3,0,125,2,24,3,163,2, +254,1,105,1,63,1,214,0,3,0,224,255,239,0,77,2,205,2,176,2,125,2,198,1,165,1,39,3,240,3,151,2, +124,1,186,1,163,1,151,0,132,255,184,254,43,254,205,253,164,252,207,250,235,249,208,249,209,249,194,250,221,252,220,255, +31,3,224,4,170,4,101,3,1,2,254,1,107,3,185,5,83,9,228,11,141,10,249,6,52,3,241,253,79,246,101,239, +55,236,203,234,103,234,225,237,246,242,67,246,126,250,170,0,90,6,79,11,189,15,84,19,160,21,48,21,85,18,235,14, +73,11,126,7,72,4,213,1,250,255,229,254,68,254,71,253,57,252,81,251,237,249,214,248,184,248,178,248,3,249,48,250, +162,251,149,252,173,252,15,253,212,253,130,253,247,253,251,255,13,0,252,254,143,255,224,255,69,255,168,255,242,0,235,1, +205,1,124,1,94,2,41,3,150,2,244,1,42,2,84,2,96,1,189,255,224,254,45,255,246,255,234,0,223,2,38,6, +88,8,48,8,106,8,237,9,148,9,182,5,166,255,35,249,188,243,20,240,175,236,184,232,132,230,133,231,37,234,239,237, +15,244,10,252,196,3,228,9,115,14,244,16,223,16,62,16,163,16,150,16,17,15,103,12,87,9,99,7,130,6,16,5, +55,3,250,1,229,0,123,255,11,254,101,252,216,249,184,246,81,244,114,243,117,243,68,243,45,243,15,244,186,245,209,247, +10,250,28,252,248,254,138,3,187,8,159,12,115,14,214,14,65,14,166,12,227,10,146,9,218,7,184,5,193,3,79,1, +78,254,22,252,17,251,227,250,255,251,205,253,76,254,28,254,71,255,165,0,156,0,134,0,185,1,79,3,157,3,109,2, +208,1,11,3,95,3,82,0,111,253,2,254,84,254,215,251,6,250,178,250,64,252,233,252,243,251,166,251,97,253,195,254, +250,255,247,2,166,5,104,5,217,2,86,0,162,255,9,0,74,0,248,0,166,2,173,4,183,5,163,4,26,2,125,255, +188,252,238,249,134,248,20,249,39,251,97,254,95,1,80,3,121,4,133,3,63,1,58,1,68,2,60,1,66,255,191,253, +152,252,180,250,206,246,190,243,78,244,16,246,240,247,166,251,23,0,167,2,86,3,61,4,145,5,34,6,9,7,90,8, +30,8,61,7,183,6,169,5,39,5,176,5,47,5,12,3,203,0,167,255,39,255,152,253,130,250,147,247,135,246,35,247, +62,248,122,249,177,250,80,252,251,254,159,1,130,3,189,4,253,3,130,1,211,255,104,255,103,255,247,255,117,1,137,3, +23,5,120,5,15,5,167,4,233,4,6,5,41,4,192,3,21,4,2,3,97,0,151,254,32,255,163,0,27,0,244,252, +255,250,144,252,221,253,154,252,100,252,122,253,211,252,124,252,164,253,47,253,0,252,110,252,139,252,145,251,250,251,95,254, +197,0,80,2,64,3,202,2,131,1,145,1,78,2,104,2,8,3,241,3,62,3,159,1,9,1,41,1,215,0,133,0, +168,0,51,0,124,254,165,252,251,251,25,252,65,252,199,252,218,252,73,251,130,249,61,249,136,250,61,253,55,1,145,5, +194,7,176,6,76,5,126,4,120,2,100,0,82,255,111,254,123,253,196,251,226,250,184,253,78,1,104,0,143,251,33,249, +237,252,190,0,120,255,107,254,224,255,212,255,51,255,216,0,33,3,73,3,213,1,154,1,110,2,11,3,95,5,169,8, +62,9,214,7,170,6,179,4,188,0,152,252,227,250,53,250,43,248,217,246,174,247,108,248,162,248,156,249,74,251,98,253, +208,255,208,1,165,2,201,2,46,3,152,3,85,3,77,2,124,0,151,254,0,254,110,254,61,254,68,253,180,252,211,252, +2,253,10,253,17,253,205,252,46,252,118,252,139,254,110,1,41,4,98,6,159,7,60,8,55,8,177,6,142,4,56,3, +39,2,64,0,87,253,223,250,79,250,5,251,68,252,164,253,18,254,179,253,53,253,164,252,118,252,27,252,17,251,193,250, +77,251,226,251,94,253,13,0,184,2,96,4,245,4,98,5,42,6,198,6,217,6,126,6,24,6,139,5,38,4,255,1, +218,255,117,254,247,253,184,253,154,253,186,253,248,253,149,255,154,2,35,4,72,3,237,1,204,0,166,255,194,254,55,254, +75,253,124,252,242,253,7,1,216,2,165,3,135,4,213,4,33,5,187,5,62,5,220,3,130,2,134,0,187,253,114,251, +18,250,165,248,69,247,21,247,220,247,45,249,202,251,181,255,227,3,16,7,244,7,203,6,85,5,167,4,170,4,161,4, +25,4,193,3,234,3,108,3,178,1,174,255,7,254,56,252,12,250,120,248,30,248,131,248,111,249,40,251,206,252,28,253, +196,252,17,253,188,253,159,254,119,0,225,2,107,4,105,4,83,3,214,1,131,0,217,255,112,255,176,254,62,254,221,253, +173,252,76,252,201,253,9,255,16,255,72,255,177,0,64,2,2,2,224,0,49,1,223,1,211,0,104,254,61,252,119,251, +91,251,177,251,23,254,41,1,59,2,168,2,33,4,148,5,121,5,160,3,86,1,238,254,197,252,142,253,50,0,186,255, +27,253,158,252,133,253,100,253,225,252,91,253,112,254,89,255,21,0,171,0,216,1,43,4,186,5,153,5,151,5,237,5, +142,5,149,4,2,3,248,0,61,255,192,253,102,252,63,252,188,253,175,255,138,1,254,3,121,6,185,7,230,7,62,7, +107,5,237,2,253,0,96,0,120,0,209,255,240,253,204,251,177,250,191,250,47,251,136,251,11,251,211,249,219,249,40,251, +171,251,156,251,89,252,16,254,78,0,60,2,161,3,15,5,109,6,42,7,237,6,56,6,220,5,42,5,109,3,154,1, +125,0,255,255,60,255,100,253,99,251,253,249,230,248,189,248,199,249,76,251,11,253,149,254,228,255,89,1,45,2,60,2, +230,1,101,0,147,254,87,254,17,255,128,255,78,255,168,254,233,254,48,0,108,0,110,255,249,254,24,255,162,254,34,254, +205,254,101,255,169,254,126,254,146,255,230,255,174,255,81,0,118,1,195,2,215,3,87,4,57,5,92,6,242,5,248,3, +73,2,183,1,17,1,51,255,40,253,76,252,27,252,169,251,53,251,181,251,250,252,77,253,218,252,229,253,18,0,66,1, +187,1,134,2,204,2,226,1,98,1,245,2,67,5,69,6,169,6,78,7,11,7,128,5,28,4,102,3,72,2,33,0, +118,253,186,250,127,248,211,247,225,248,2,251,93,253,183,254,12,255,160,255,7,0,26,255,246,253,65,254,161,255,227,0, +190,1,89,2,91,2,240,1,28,2,165,2,126,2,68,2,173,2,127,2,72,1,83,0,178,255,251,254,207,254,133,254, +215,252,185,250,49,249,6,248,181,247,47,248,89,248,138,248,213,249,19,252,145,254,142,0,226,1,178,3,83,6,7,8, +212,7,254,6,129,6,204,5,128,4,53,3,136,2,58,2,117,1,141,0,107,0,42,0,60,255,172,254,226,253,162,252, +9,253,24,254,130,252,39,249,222,246,49,246,191,246,84,248,162,250,74,253,29,0,40,3,179,5,241,6,88,7,90,7, +40,7,238,6,203,5,161,3,67,2,62,2,23,2,73,1,5,1,168,1,9,2,94,2,134,3,60,4,207,3,123,3, +73,3,72,2,24,0,38,253,132,251,97,252,181,253,206,253,86,253,251,252,189,252,113,252,193,251,168,250,248,249,91,250, +70,251,28,252,7,253,211,253,107,254,187,255,212,1,170,3,221,4,103,5,118,5,250,5,228,6,232,6,40,6,171,5, +89,5,235,4,113,4,130,3,13,2,220,0,249,255,254,253,186,250,186,248,148,249,99,251,48,252,40,252,29,252,95,252, +154,252,147,252,108,252,227,251,19,251,239,250,238,251,205,253,254,255,22,2,10,4,91,5,108,5,156,4,165,3,24,3, +14,3,24,3,43,3,33,3,120,2,159,1,26,1,138,0,199,255,34,255,250,254,44,255,13,255,173,254,147,254,140,254, +73,254,244,253,230,253,6,254,3,254,101,254,157,255,243,0,184,1,196,1,88,1,229,0,60,0,84,255,111,254,77,253, +131,252,255,252,10,254,203,254,130,255,155,0,202,1,43,2,56,2,36,3,221,3,62,3,118,2,56,2,197,1,24,1, +82,1,112,2,102,2,194,0,91,255,49,254,157,252,203,251,88,252,146,253,77,254,253,253,72,254,202,255,83,0,102,255, +122,254,200,253,14,253,199,252,137,253,197,254,47,255,30,255,175,255,128,0,182,0,155,0,127,1,72,3,225,3,89,3, +103,3,118,3,207,2,225,1,140,0,130,255,76,255,164,254,131,253,59,253,114,253,30,253,161,252,198,252,80,253,182,253, +38,254,213,254,172,255,132,0,24,1,83,1,89,1,95,1,127,1,123,1,91,1,88,1,22,1,130,0,1,0,159,255, +107,255,191,255,217,0,69,2,228,2,191,2,209,2,245,2,199,2,103,2,223,1,143,1,128,1,245,0,229,255,221,254, +20,254,115,253,241,252,230,252,98,253,205,253,30,254,224,254,247,255,166,0,175,0,202,0,110,1,54,2,172,2,139,2, +26,2,236,1,194,1,63,1,224,0,7,1,0,1,241,255,220,254,113,255,14,1,69,2,9,3,58,3,134,2,124,1, +183,0,237,255,203,254,252,253,1,254,107,254,210,254,194,254,129,254,94,255,166,0,170,0,87,0,216,0,121,1,230,1, +145,2,106,3,237,3,237,3,183,3,16,3,159,1,27,0,42,255,110,254,200,253,130,253,62,253,231,252,111,253,176,254, +43,255,143,254,231,253,206,253,194,253,30,253,139,252,243,252,166,253,163,253,52,253,24,253,100,253,203,253,85,254,241,254, +76,255,135,255,245,255,120,0,216,0,244,0,163,0,30,0,24,0,135,0,131,0,14,0,129,255,168,254,77,254,51,255, +65,0,160,0,199,0,170,0,209,255,134,254,93,253,168,252,167,252,13,253,14,253,115,252,126,251,169,250,229,250,123,252, +156,254,71,0,219,0,220,0,81,1,16,2,175,2,125,3,92,4,183,4,127,4,21,4,170,3,29,3,64,2,7,1, +209,255,10,255,124,254,175,253,210,252,113,252,70,252,231,251,53,252,162,253,10,255,253,255,242,0,195,1,247,1,69,1, +93,0,77,0,5,1,7,2,137,2,117,2,206,3,99,6,69,7,225,6,58,7,2,7,202,4,236,1,76,255,174,251, +152,247,179,245,201,245,4,246,10,247,129,249,31,252,193,253,151,254,72,255,169,255,243,255,105,1,156,3,122,4,193,3, +28,4,229,6,121,8,220,6,136,5,1,5,160,2,151,255,199,253,43,253,193,254,215,1,10,3,9,2,132,1,65,1, +223,255,245,254,67,254,60,251,162,247,160,245,110,243,203,241,85,243,52,246,64,248,35,251,241,255,106,5,182,10,145,15, +204,18,244,18,47,16,64,12,160,8,90,5,202,1,165,253,105,249,35,246,191,244,52,245,151,246,91,248,84,250,177,251, +15,252,112,252,122,253,170,254,130,255,253,255,32,0,196,255,222,254,141,253,39,252,184,251,14,253,38,0,62,5,233,11, +227,18,71,25,26,29,71,29,181,28,252,27,70,22,152,9,201,249,18,234,42,218,152,202,205,191,99,189,98,194,9,205, +66,220,186,237,2,255,79,14,150,26,147,35,75,40,12,40,18,36,38,30,78,24,58,20,206,17,220,16,100,17,11,18, +234,17,91,17,69,16,16,14,251,9,3,4,87,253,81,246,235,238,126,232,221,227,81,224,151,221,143,220,240,221,222,224, +215,227,80,231,222,236,105,244,204,252,132,5,23,14,212,21,180,28,66,34,217,36,77,36,38,34,121,30,116,24,101,16, +137,7,106,255,38,248,222,240,241,234,18,232,31,231,106,231,107,234,41,240,72,246,34,251,107,255,252,3,34,8,61,11, +17,13,10,13,127,11,77,9,196,6,97,4,246,1,215,254,2,252,127,250,207,249,152,249,240,249,15,251,186,252,134,253, +21,253,250,252,10,254,165,255,221,0,119,1,29,2,221,2,15,3,201,2,90,2,213,1,150,1,151,1,57,1,223,0, +159,1,197,2,204,2,252,1,245,0,131,255,0,254,1,253,121,252,248,251,83,251,78,251,48,252,28,253,225,253,217,254, +255,255,45,1,242,1,39,2,16,2,181,1,49,1,176,0,76,0,213,255,184,254,138,253,76,253,71,253,239,252,239,252, +125,253,102,254,134,255,228,0,84,2,34,3,72,3,21,3,71,2,106,1,41,1,37,1,62,1,102,1,56,1,217,0, +183,0,205,0,197,0,129,0,15,0,16,255,111,253,236,251,253,250,139,250,200,250,211,251,224,252,124,253,199,254,35,1, +150,3,242,5,161,7,116,7,102,6,243,5,185,5,104,5,103,5,89,5,171,4,140,3,227,1,89,255,186,252,167,250, +228,248,180,247,32,247,115,247,247,249,110,253,12,255,98,255,102,0,187,1,8,2,135,1,32,2,247,3,101,4,152,2, +235,0,246,0,4,2,141,2,35,2,236,1,108,2,149,2,3,2,138,1,81,1,250,0,234,0,114,1,26,2,136,2, +190,2,101,2,3,1,19,255,189,253,51,253,186,252,60,252,65,252,199,252,102,253,217,253,218,253,128,253,110,253,212,253, +222,253,13,253,115,252,21,253,60,254,248,254,88,255,126,255,177,255,86,0,85,1,176,2,98,4,178,5,239,5,65,5, +117,4,195,3,119,2,196,0,113,255,48,254,25,253,15,253,225,253,151,254,183,254,154,254,175,254,132,254,26,254,164,254, +37,0,47,1,59,1,207,0,70,0,159,255,254,254,201,254,34,255,216,255,164,0,54,1,151,1,5,2,72,2,34,2, +9,2,147,2,28,3,66,2,247,255,158,253,104,252,87,252,143,252,206,252,167,253,14,255,129,0,218,1,8,3,250,3, +45,4,47,3,208,1,254,0,167,0,121,0,67,0,94,0,61,1,15,2,162,1,44,0,250,254,193,254,7,255,63,255, +42,255,151,254,42,254,90,254,98,254,17,254,33,254,146,254,231,254,13,255,109,255,88,0,86,1,225,1,38,2,44,2, +212,1,144,1,113,1,212,0,218,255,30,255,209,254,145,255,81,1,100,2,47,2,218,1,208,1,138,1,211,0,236,255, +7,255,45,254,187,253,2,254,135,254,191,254,240,254,180,255,159,0,152,0,188,255,230,254,32,254,31,253,6,252,110,251, +100,251,27,251,17,251,152,252,23,255,65,1,221,2,25,4,206,4,101,4,50,3,122,2,230,1,184,0,15,0,124,0, +132,0,99,255,123,254,135,254,68,254,143,253,175,253,120,254,58,255,26,0,211,0,209,0,88,0,89,0,3,1,202,1, +223,2,20,4,135,4,160,4,144,4,97,3,94,1,67,255,37,253,182,251,146,251,9,252,211,251,9,251,39,251,20,252, +227,252,85,254,90,0,139,1,238,1,104,2,64,3,182,3,12,3,88,2,153,2,218,2,103,2,155,1,249,0,190,0, +80,0,109,255,241,254,24,255,57,255,234,254,11,254,2,253,181,252,33,253,195,253,205,254,213,255,24,0,77,0,239,0, +67,1,17,1,170,0,156,0,252,0,140,0,58,255,190,254,109,255,44,0,87,0,230,255,99,255,78,255,101,255,83,255, +92,255,155,255,144,255,255,254,130,254,225,254,23,0,10,1,15,1,170,0,51,0,176,255,102,255,150,255,57,0,193,0, +186,0,156,0,119,0,138,255,11,254,94,253,245,253,147,254,164,254,11,255,16,0,233,0,250,0,122,0,25,0,3,0, +6,0,248,255,144,255,9,255,235,254,68,255,26,0,28,1,165,1,136,1,9,1,222,0,36,1,252,0,96,0,155,255, +160,254,69,254,186,254,39,255,154,255,250,255,171,255,82,255,105,255,49,255,175,254,210,254,146,255,235,255,99,255,219,254, +148,255,52,1,28,2,201,1,78,1,168,1,112,2,206,2,8,3,68,3,211,2,213,1,26,1,36,1,216,0,146,254, +158,252,123,253,43,254,219,252,186,251,92,251,80,251,104,251,77,251,210,251,30,253,98,254,236,255,158,1,120,2,9,2, +51,1,90,1,217,1,105,1,140,0,173,255,149,254,31,253,210,251,232,251,20,253,224,255,14,6,194,11,88,11,24,6, +8,1,206,254,151,253,51,252,77,255,62,7,50,12,27,12,169,10,49,7,208,0,82,250,171,244,99,238,229,232,172,231, +220,234,138,240,173,247,54,254,168,2,99,6,10,10,44,12,219,11,203,9,147,7,162,5,133,3,217,1,14,1,209,0, +149,1,58,3,51,4,210,3,220,2,188,1,59,0,154,254,184,253,50,254,173,255,53,1,21,2,6,2,35,1,28,0, +151,255,175,255,101,0,139,1,75,2,180,1,204,255,186,253,125,252,196,251,29,251,37,251,58,252,109,253,70,254,64,255, +30,0,119,0,191,0,34,1,144,1,69,2,227,2,204,2,7,2,41,1,197,0,203,0,255,0,124,1,241,1,244,1, +194,1,208,1,227,1,90,1,172,0,113,0,251,255,171,255,100,0,230,0,134,0,55,0,173,255,49,254,118,252,214,251, +179,252,206,253,102,254,20,255,204,255,213,255,35,255,130,254,107,254,241,253,142,252,121,251,194,251,14,253,102,254,146,255, +237,0,212,1,238,1,75,2,35,3,68,3,255,1,87,0,199,255,235,255,23,0,216,0,95,1,203,0,186,0,187,1, +243,1,209,0,131,255,186,254,49,254,119,253,151,252,55,252,177,252,95,253,202,253,114,254,144,255,204,0,190,1,13,2, +252,1,219,1,103,1,159,0,222,255,120,255,116,255,33,255,119,254,163,254,133,255,248,255,15,0,58,0,64,0,4,0, +204,255,243,255,108,0,197,0,18,1,191,1,127,2,171,2,106,2,45,2,125,1,22,0,10,255,0,255,24,255,141,254, +228,253,237,253,74,254,62,254,60,254,195,254,90,255,169,255,210,255,250,255,59,0,151,0,32,1,188,1,251,1,226,1, +168,1,51,1,165,0,60,0,217,255,142,255,143,255,158,255,129,255,129,255,192,255,229,255,235,255,33,0,83,0,23,0, +176,255,150,255,183,255,225,255,247,255,197,255,162,255,245,255,73,0,77,0,65,0,15,0,183,255,176,255,15,0,66,0, +1,0,214,255,230,255,144,255,37,255,82,255,246,255,244,0,189,1,131,1,236,0,210,0,223,0,196,0,176,0,200,0, +211,0,114,0,29,0,115,0,225,0,179,0,40,0,138,255,195,254,69,254,180,254,98,255,114,255,125,255,230,255,226,255, +57,255,141,254,69,254,93,254,196,254,99,255,18,0,192,0,81,1,157,1,188,1,193,1,164,1,152,1,132,1,51,1, +244,0,213,0,149,0,111,0,135,0,142,0,112,0,90,0,33,0,171,255,117,255,158,255,149,255,103,255,127,255,180,255, +226,255,244,255,202,255,206,255,46,0,97,0,42,0,201,255,133,255,101,255,30,255,199,254,227,254,86,255,140,255,113,255, +104,255,155,255,196,255,200,255,6,0,117,0,151,0,138,0,181,0,247,0,248,0,154,0,48,0,59,0,139,0,166,0, +176,0,210,0,209,0,138,0,22,0,174,255,104,255,84,255,120,255,150,255,154,255,137,255,60,255,10,255,60,255,84,255, +66,255,119,255,224,255,64,0,181,0,104,1,26,2,132,2,14,3,171,3,119,3,66,2,154,0,61,255,166,254,58,254, +167,253,173,253,64,254,202,254,73,255,201,255,57,0,109,0,252,255,5,255,106,254,211,254,140,255,79,255,133,254,190,254, +81,0,28,2,237,2,247,2,27,3,0,3,3,2,155,0,104,255,149,254,255,253,117,253,39,253,62,253,121,253,155,253, +176,253,214,253,26,254,183,254,212,255,218,0,133,1,149,2,28,4,39,5,35,5,70,4,73,3,108,2,57,1,209,255, +216,254,73,254,222,253,165,253,161,253,173,253,203,253,52,254,203,254,37,255,83,255,177,255,33,0,117,0,214,0,21,1, +230,0,176,0,219,0,255,0,219,0,170,0,115,0,39,0,202,255,72,255,212,254,188,254,210,254,215,254,205,254,235,254, +89,255,158,255,57,255,175,254,165,254,249,254,127,255,20,0,84,0,26,0,191,255,197,255,81,0,70,1,215,2,164,4, +45,5,202,3,189,1,92,0,195,255,139,255,194,255,106,0,198,0,80,0,82,255,44,254,67,253,215,252,182,252,154,252, +78,252,178,251,18,251,209,250,4,251,132,251,100,252,28,254,172,0,69,3,79,5,201,6,204,7,59,8,208,7,193,6, +143,5,14,4,21,2,33,0,111,254,235,252,184,251,240,250,132,250,86,250,91,250,231,250,11,252,43,253,3,254,188,254, +97,255,45,0,41,1,27,2,49,3,16,4,202,3,202,2,25,2,168,1,19,1,93,0,158,255,246,254,108,254,51,254, +140,254,36,255,110,255,103,255,111,255,166,255,231,255,37,0,93,0,125,0,132,0,119,0,126,0,166,0,169,0,137,0, +94,0,240,255,82,255,227,254,215,254,23,255,67,255,115,255,3,0,142,0,186,0,202,0,215,0,227,0,242,0,228,0, +187,0,123,0,118,0,19,1,183,1,161,1,23,1,176,0,151,0,131,0,80,0,51,0,30,0,226,255,176,255,204,255, +47,0,128,0,143,0,150,0,132,0,44,0,218,255,200,255,191,255,146,255,132,255,215,255,48,0,149,0,83,1,166,1, +42,1,214,0,228,0,186,0,79,0,1,0,17,0,71,0,91,0,151,0,4,1,33,1,213,0,58,0,153,255,154,255, +20,0,18,0,127,255,10,255,251,254,46,255,90,255,117,255,169,255,174,255,135,255,25,0,89,1,23,2,14,2,219,1, +202,1,193,1,92,1,146,0,226,255,128,255,82,255,30,255,169,254,68,254,87,254,118,254,77,254,59,254,58,254,0,254, +253,253,117,254,7,255,155,255,30,0,91,0,181,0,105,1,251,1,7,2,228,1,30,2,35,2,35,1,63,0,136,0, +213,0,74,0,185,255,187,255,216,255,101,255,180,254,136,254,175,254,134,254,254,253,175,253,33,254,6,255,205,255,80,0, +94,0,28,0,4,0,15,0,6,0,226,255,182,255,171,255,143,255,87,255,108,255,206,255,24,0,19,0,212,255,174,255, +144,255,57,255,10,255,55,255,100,255,129,255,178,255,206,255,177,255,203,255,135,0,26,1,152,0,159,255,35,255,14,255, +255,254,228,254,236,254,64,255,168,255,187,255,106,255,33,255,51,255,111,255,173,255,23,0,167,0,34,1,121,1,155,1, +102,1,9,1,175,0,57,0,218,255,219,255,206,255,135,255,183,255,125,0,51,1,170,1,213,1,165,1,141,1,120,1, +192,0,198,255,16,255,65,254,115,253,18,253,237,252,225,252,236,252,23,253,140,253,248,253,58,254,211,254,160,255,48,0, +155,0,237,0,59,1,198,1,85,2,125,2,96,2,80,2,38,2,195,1,126,1,63,1,171,0,8,0,130,255,15,255, +215,254,155,254,31,254,176,253,156,253,232,253,72,254,147,254,223,254,21,255,104,255,15,0,130,0,168,0,239,0,29,1, +252,0,202,0,158,0,101,0,17,0,223,255,19,0,100,0,140,0,138,0,106,0,70,0,26,0,233,255,223,255,2,0, +55,0,60,0,8,0,9,0,42,0,232,255,93,255,12,255,77,255,165,255,114,255,66,255,95,255,37,255,206,254,203,254, +227,254,92,255,61,0,188,0,168,0,120,0,101,0,74,0,36,0,30,0,21,0,239,255,220,255,227,255,255,255,26,0, +5,0,237,255,5,0,25,0,7,0,216,255,187,255,222,255,12,0,23,0,5,0,210,255,150,255,146,255,224,255,64,0, +109,0,150,0,193,0,138,0,31,0,18,0,101,0,185,0,209,0,147,0,74,0,120,0,222,0,186,0,31,0,126,255, +232,254,160,254,158,254,112,254,81,254,114,254,154,254,232,254,21,255,202,254,193,254,73,255,189,255,3,0,121,0,40,1, +157,1,135,1,75,1,51,1,6,1,201,0,148,0,88,0,52,0,21,0,208,255,170,255,189,255,204,255,233,255,40,0, +57,0,29,0,50,0,119,0,173,0,214,0,217,0,122,0,255,255,210,255,208,255,190,255,199,255,1,0,37,0,17,0, +15,0,63,0,88,0,94,0,144,0,176,0,141,0,69,0,205,255,90,255,119,255,6,0,81,0,38,0,10,0,51,0, +39,0,196,255,108,255,50,255,28,255,116,255,30,0,158,0,213,0,251,0,16,1,227,0,145,0,75,0,22,0,23,0, +110,0,20,1,228,1,130,2,225,2,42,3,245,2,27,2,76,1,214,0,130,0,50,0,200,255,81,255,240,254,120,254, +229,253,126,253,73,253,27,253,1,253,44,253,160,253,29,254,127,254,250,254,170,255,73,0,172,0,4,1,85,1,145,1, +211,1,235,1,177,1,111,1,83,1,102,1,185,1,253,1,244,1,221,1,201,1,112,1,207,0,66,0,242,255,129,255, +231,254,168,254,161,254,72,254,190,253,82,253,44,253,95,253,189,253,35,254,153,254,22,255,175,255,122,0,106,1,79,2, +206,2,243,2,94,3,20,4,114,4,86,4,242,3,13,3,150,1,28,0,218,254,130,253,81,252,162,251,47,251,229,250, +237,250,55,251,189,251,80,252,226,252,183,253,137,254,1,255,124,255,67,0,79,1,103,2,22,3,113,3,217,3,43,4, +63,4,29,4,185,3,39,3,122,2,178,1,222,0,16,0,116,255,3,255,94,254,129,253,229,252,15,253,242,253,150,254, +119,254,90,254,168,254,252,254,28,255,32,255,112,255,0,0,7,0,252,255,16,1,135,2,20,3,255,2,208,2,126,2, +29,2,200,1,81,1,122,0,87,255,78,254,127,253,241,252,219,252,23,253,51,253,53,253,111,253,207,253,20,254,94,254, +249,254,227,255,205,0,117,1,241,1,126,2,244,2,15,3,233,2,191,2,139,2,12,2,79,1,176,0,26,0,94,255, +244,254,22,255,78,255,66,255,13,255,248,254,5,255,239,254,223,254,52,255,174,255,216,255,230,255,69,0,163,0,128,0, +34,0,238,255,212,255,194,255,199,255,235,255,39,0,63,0,29,0,243,255,243,255,45,0,110,0,134,0,130,0,115,0, +100,0,91,0,46,0,224,255,140,255,32,255,193,254,163,254,181,254,228,254,29,255,75,255,135,255,215,255,22,0,51,0, +72,0,133,0,223,0,29,1,51,1,54,1,65,1,91,1,84,1,12,1,174,0,102,0,52,0,230,255,75,255,144,254, +27,254,11,254,33,254,48,254,63,254,74,254,84,254,112,254,155,254,220,254,57,255,142,255,177,255,194,255,33,0,212,0, +80,1,110,1,161,1,6,2,69,2,40,2,180,1,14,1,118,0,47,0,14,0,190,255,111,255,129,255,244,255,126,0, +210,0,26,1,99,1,12,1,16,0,69,255,253,254,251,254,229,254,137,254,69,254,78,254,110,254,133,254,134,254,151,254, +250,254,113,255,193,255,11,0,101,0,194,0,2,1,31,1,73,1,139,1,231,1,88,2,192,2,24,3,6,3,81,2, +168,1,87,1,237,0,99,0,183,255,221,254,49,254,188,253,89,253,65,253,110,253,173,253,10,254,141,254,51,255,233,255, +158,0,79,1,179,1,166,1,131,1,143,1,163,1,114,1,10,1,225,0,228,0,152,0,2,0,94,255,232,254,227,254, +41,255,103,255,143,255,166,255,203,255,13,0,62,0,53,0,250,255,201,255,204,255,208,255,221,255,25,0,58,0,40,0, +39,0,36,0,0,0,224,255,213,255,202,255,188,255,184,255,176,255,159,255,153,255,148,255,167,255,223,255,243,255,229,255, +231,255,207,255,154,255,123,255,116,255,126,255,127,255,94,255,63,255,78,255,162,255,21,0,94,0,124,0,116,0,63,0, +35,0,40,0,26,0,35,0,64,0,43,0,6,0,33,0,94,0,92,0,26,0,3,0,33,0,23,0,216,255,153,255, +103,255,63,255,23,255,2,255,17,255,30,255,51,255,113,255,164,255,159,255,101,255,27,255,48,255,186,255,51,0,101,0, +126,0,130,0,95,0,30,0,236,255,210,255,181,255,204,255,49,0,136,0,182,0,220,0,234,0,206,0,132,0,56,0, +49,0,88,0,116,0,126,0,114,0,72,0,250,255,163,255,110,255,95,255,116,255,143,255,134,255,128,255,142,255,141,255, +167,255,255,255,103,0,200,0,12,1,5,1,188,0,123,0,107,0,89,0,40,0,30,0,56,0,43,0,253,255,214,255, +187,255,182,255,191,255,195,255,208,255,205,255,150,255,95,255,102,255,155,255,220,255,242,255,207,255,205,255,234,255,195,255, +159,255,237,255,90,0,149,0,208,0,17,1,29,1,6,1,238,0,171,0,81,0,59,0,60,0,231,255,125,255,108,255, +124,255,87,255,32,255,12,255,46,255,114,255,185,255,40,0,172,0,188,0,107,0,72,0,75,0,62,0,55,0,41,0, +9,0,0,0,28,0,36,0,243,255,180,255,165,255,201,255,234,255,218,255,197,255,225,255,6,0,18,0,24,0,25,0, +0,0,230,255,1,0,51,0,54,0,32,0,26,0,16,0,2,0,3,0,10,0,2,0,7,0,59,0,101,0,105,0, +148,0,225,0,11,1,8,1,224,0,185,0,175,0,169,0,168,0,158,0,109,0,52,0,20,0,21,0,11,0,194,255, +130,255,128,255,123,255,100,255,73,255,60,255,103,255,166,255,186,255,172,255,164,255,191,255,253,255,59,0,70,0,36,0, +39,0,49,0,252,255,0,0,99,0,140,0,115,0,81,0,19,0,236,255,243,255,216,255,170,255,184,255,222,255,216,255, +195,255,210,255,9,0,92,0,159,0,145,0,59,0,246,255,255,255,39,0,41,0,27,0,8,0,200,255,132,255,116,255, +123,255,139,255,163,255,158,255,138,255,130,255,119,255,128,255,189,255,3,0,24,0,255,255,238,255,4,0,24,0,8,0, +241,255,235,255,243,255,250,255,253,255,20,0,40,0,7,0,198,255,144,255,133,255,165,255,180,255,190,255,229,255,222,255, +165,255,136,255,133,255,160,255,231,255,35,0,28,0,225,255,189,255,187,255,152,255,102,255,102,255,133,255,168,255,205,255, +254,255,38,0,23,0,242,255,231,255,211,255,200,255,227,255,227,255,181,255,148,255,138,255,131,255,141,255,162,255,168,255, +184,255,227,255,251,255,241,255,243,255,37,0,102,0,127,0,128,0,145,0,151,0,123,0,71,0,15,0,217,255,145,255, +85,255,84,255,101,255,109,255,107,255,68,255,25,255,36,255,91,255,142,255,164,255,180,255,218,255,14,0,53,0,50,0, +59,0,130,0,169,0,146,0,149,0,152,0,90,0,3,0,208,255,184,255,139,255,86,255,60,255,25,255,0,255,48,255, +143,255,204,255,192,255,171,255,202,255,226,255,216,255,230,255,15,0,54,0,54,0,12,0,245,255,18,0,63,0,90,0, +112,0,139,0,126,0,94,0,91,0,62,0,20,0,45,0,92,0,111,0,127,0,133,0,116,0,65,0,239,255,184,255, +173,255,161,255,136,255,100,255,60,255,66,255,146,255,235,255,24,0,71,0,151,0,221,0,248,0,250,0,234,0,173,0, +87,0,70,0,120,0,132,0,97,0,88,0,114,0,150,0,189,0,203,0,175,0,166,0,190,0,188,0,188,0,217,0, +212,0,161,0,117,0,105,0,99,0,51,0,247,255,233,255,244,255,233,255,183,255,164,255,242,255,55,0,34,0,16,0, +52,0,92,0,82,0,48,0,56,0,56,0,15,0,25,0,60,0,51,0,48,0,60,0,47,0,26,0,7,0,2,0, +22,0,38,0,34,0,14,0,244,255,239,255,249,255,236,255,220,255,15,0,114,0,169,0,165,0,146,0,121,0,105,0, +142,0,203,0,201,0,156,0,135,0,89,0,249,255,185,255,167,255,150,255,108,255,41,255,247,254,251,254,35,255,72,255, +71,255,50,255,47,255,47,255,50,255,102,255,202,255,39,0,105,0,160,0,212,0,234,0,212,0,179,0,178,0,179,0, +163,0,175,0,193,0,147,0,51,0,211,255,155,255,135,255,100,255,52,255,20,255,7,255,10,255,16,255,36,255,60,255, +47,255,32,255,44,255,56,255,100,255,158,255,179,255,200,255,235,255,15,0,63,0,92,0,98,0,104,0,149,0,230,0, +187,0,73,0,156,0,25,1,171,0,11,0,239,255,240,255,211,255,167,255,94,255,6,255,214,254,234,254,12,255,14,255, +8,255,26,255,55,255,73,255,85,255,86,255,82,255,130,255,234,255,47,0,45,0,48,0,117,0,165,0,127,0,115,0, +182,0,223,0,199,0,134,0,60,0,33,0,23,0,247,255,225,255,217,255,215,255,221,255,222,255,217,255,212,255,204,255, +193,255,175,255,136,255,82,255,66,255,132,255,190,255,173,255,173,255,213,255,214,255,209,255,238,255,10,0,42,0,71,0, +48,0,246,255,194,255,164,255,187,255,248,255,22,0,13,0,5,0,17,0,36,0,44,0,56,0,68,0,66,0,79,0, +105,0,114,0,103,0,78,0,53,0,37,0,15,0,14,0,47,0,78,0,97,0,103,0,101,0,112,0,119,0,98,0, +66,0,35,0,3,0,220,255,183,255,171,255,175,255,197,255,2,0,54,0,54,0,31,0,12,0,0,0,18,0,83,0, +145,0,160,0,172,0,213,0,251,0,13,1,36,1,66,1,71,1,44,1,20,1,247,0,202,0,174,0,133,0,48,0, +202,255,100,255,13,255,232,254,231,254,246,254,8,255,13,255,18,255,50,255,111,255,188,255,8,0,66,0,96,0,126,0, +179,0,211,0,203,0,183,0,172,0,185,0,202,0,203,0,209,0,220,0,225,0,234,0,223,0,180,0,143,0,126,0, +105,0,78,0,82,0,113,0,128,0,132,0,133,0,113,0,99,0,94,0,66,0,46,0,54,0,54,0,37,0,18,0, +237,255,178,255,135,255,114,255,96,255,86,255,101,255,131,255,157,255,168,255,183,255,204,255,201,255,195,255,229,255,29,0, +63,0,54,0,45,0,56,0,34,0,251,255,245,255,235,255,209,255,175,255,126,255,111,255,147,255,167,255,165,255,161,255, +155,255,161,255,159,255,137,255,148,255,215,255,29,0,44,0,23,0,30,0,67,0,93,0,99,0,77,0,20,0,226,255, +221,255,233,255,228,255,215,255,218,255,216,255,177,255,165,255,217,255,227,255,165,255,149,255,199,255,239,255,245,255,226,255, +203,255,178,255,143,255,124,255,122,255,105,255,99,255,149,255,241,255,63,0,105,0,153,0,206,0,193,0,114,0,26,0, +207,255,146,255,100,255,87,255,138,255,208,255,215,255,167,255,114,255,72,255,45,255,47,255,74,255,101,255,117,255,151,255, +209,255,250,255,255,255,5,0,36,0,72,0,96,0,125,0,171,0,206,0,219,0,3,1,70,1,101,1,83,1,40,1, +241,0,195,0,162,0,111,0,45,0,243,255,182,255,84,255,215,254,114,254,74,254,93,254,145,254,202,254,250,254,25,255, +47,255,97,255,187,255,24,0,130,0,7,1,97,1,136,1,174,1,178,1,136,1,107,1,74,1,28,1,253,0,209,0, +130,0,32,0,162,255,64,255,59,255,77,255,41,255,254,254,4,255,27,255,44,255,101,255,170,255,183,255,169,255,179,255, +203,255,232,255,5,0,23,0,23,0,253,255,222,255,225,255,0,0,29,0,43,0,42,0,11,0,210,255,170,255,157,255, +145,255,150,255,199,255,252,255,1,0,239,255,236,255,218,255,178,255,166,255,182,255,194,255,184,255,137,255,81,255,62,255, +73,255,107,255,176,255,0,0,52,0,54,0,19,0,231,255,186,255,152,255,146,255,158,255,165,255,154,255,137,255,149,255, +189,255,213,255,213,255,215,255,231,255,8,0,71,0,135,0,136,0,75,0,244,255,144,255,54,255,228,254,154,254,177,254, +85,255,14,0,94,0,52,0,212,255,129,255,82,255,89,255,168,255,15,0,105,0,193,0,0,1,4,1,205,0,114,0, +23,0,214,255,188,255,214,255,24,0,80,0,106,0,169,0,254,0,233,0,115,0,8,0,184,255,158,255,196,255,218,255, +205,255,171,255,95,255,23,255,3,255,32,255,108,255,197,255,13,0,55,0,65,0,97,0,145,0,128,0,83,0,79,0, +73,0,57,0,54,0,40,0,11,0,239,255,211,255,183,255,157,255,129,255,111,255,110,255,113,255,122,255,156,255,209,255, +254,255,8,0,251,255,250,255,5,0,24,0,60,0,74,0,46,0,25,0,41,0,64,0,61,0,43,0,35,0,22,0, +0,0,2,0,16,0,11,0,248,255,206,255,162,255,175,255,227,255,249,255,238,255,223,255,219,255,220,255,218,255,229,255, +246,255,247,255,24,0,86,0,82,0,48,0,93,0,160,0,157,0,87,0,13,0,5,0,32,0,10,0,213,255,209,255, +11,0,82,0,133,0,161,0,160,0,137,0,113,0,92,0,95,0,109,0,107,0,110,0,82,0,8,0,244,255,16,0, +19,0,47,0,98,0,93,0,51,0,51,0,123,0,212,0,228,0,172,0,104,0,44,0,15,0,35,0,53,0,17,0, +231,255,226,255,215,255,216,255,5,0,26,0,245,255,205,255,185,255,188,255,213,255,227,255,221,255,210,255,216,255,250,255, +6,0,221,255,210,255,254,255,19,0,11,0,16,0,23,0,26,0,25,0,21,0,27,0,12,0,232,255,215,255,208,255, +209,255,226,255,225,255,205,255,173,255,131,255,118,255,127,255,138,255,156,255,146,255,132,255,165,255,206,255,226,255,243,255, +247,255,232,255,220,255,218,255,195,255,152,255,138,255,132,255,100,255,91,255,109,255,122,255,153,255,235,255,98,0,174,0, +188,0,242,0,78,1,120,1,101,1,36,1,215,0,156,0,79,0,215,255,39,255,63,254,123,253,41,253,51,253,93,253, +159,253,27,254,189,254,67,255,185,255,69,0,212,0,70,1,170,1,14,2,69,2,71,2,86,2,114,2,100,2,43,2, +206,1,78,1,180,0,21,0,166,255,104,255,39,255,241,254,233,254,251,254,29,255,75,255,124,255,186,255,254,255,37,0, +69,0,103,0,108,0,116,0,149,0,174,0,198,0,206,0,122,0,240,255,175,255,218,255,24,0,37,0,27,0,2,0, +207,255,190,255,228,255,22,0,78,0,134,0,150,0,108,0,33,0,233,255,207,255,178,255,140,255,100,255,55,255,10,255, +234,254,243,254,15,255,253,254,216,254,236,254,37,255,86,255,115,255,106,255,94,255,159,255,20,0,86,0,99,0,107,0, +112,0,117,0,121,0,113,0,97,0,41,0,178,255,87,255,94,255,138,255,148,255,136,255,149,255,192,255,218,255,211,255, +211,255,240,255,29,0,61,0,84,0,126,0,136,0,52,0,219,255,240,255,57,0,86,0,63,0,18,0,233,255,216,255, +220,255,218,255,197,255,171,255,156,255,163,255,211,255,36,0,99,0,110,0,104,0,129,0,155,0,147,0,132,0,118,0, +90,0,69,0,59,0,48,0,47,0,42,0,41,0,67,0,97,0,93,0,55,0,28,0,57,0,128,0,197,0,238,0, +233,0,190,0,162,0,168,0,143,0,47,0,209,255,167,255,145,255,128,255,126,255,127,255,104,255,82,255,106,255,168,255, +254,255,121,0,7,1,127,1,181,1,156,1,128,1,122,1,68,1,226,0,122,0,5,0,172,255,145,255,145,255,129,255, +71,255,4,255,249,254,27,255,70,255,117,255,159,255,183,255,170,255,156,255,204,255,12,0,17,0,251,255,244,255,248,255, +3,0,28,0,47,0,17,0,213,255,207,255,1,0,52,0,110,0,160,0,168,0,178,0,220,0,246,0,240,0,233,0, +220,0,157,0,39,0,158,255,15,255,152,254,112,254,146,254,192,254,196,254,150,254,107,254,114,254,189,254,67,255,194,255, +28,0,128,0,235,0,62,1,121,1,152,1,176,1,184,1,127,1,43,1,18,1,43,1,47,1,214,0,76,0,30,0, +52,0,254,255,159,255,127,255,124,255,105,255,81,255,63,255,89,255,160,255,194,255,168,255,171,255,237,255,61,0,116,0, +125,0,96,0,87,0,96,0,62,0,6,0,255,255,38,0,87,0,114,0,112,0,91,0,33,0,224,255,244,255,96,0, +179,0,134,0,232,255,98,255,58,255,70,255,115,255,167,255,176,255,163,255,198,255,19,0,51,0,39,0,67,0,100,0, +86,0,101,0,186,0,7,1,7,1,196,0,104,0,247,255,162,255,163,255,184,255,175,255,168,255,158,255,125,255,68,255, +16,255,43,255,126,255,187,255,235,255,11,0,11,0,21,0,43,0,39,0,27,0,36,0,51,0,57,0,66,0,72,0, +59,0,39,0,12,0,227,255,191,255,177,255,171,255,163,255,168,255,184,255,173,255,149,255,126,255,86,255,78,255,122,255, +160,255,189,255,202,255,172,255,159,255,197,255,14,0,107,0,176,0,201,0,221,0,251,0,24,1,44,1,75,1,127,1, +156,1,99,1,175,0,140,255,69,254,59,253,170,252,140,252,226,252,195,253,226,254,200,255,76,0,112,0,112,0,120,0, +92,0,88,0,201,0,90,1,174,1,192,1,113,1,220,0,85,0,232,255,127,255,48,255,10,255,255,254,15,255,50,255, +80,255,129,255,203,255,13,0,69,0,113,0,140,0,164,0,154,0,95,0,17,0,166,255,60,255,32,255,74,255,138,255, +202,255,242,255,5,0,34,0,81,0,101,0,68,0,31,0,18,0,248,255,200,255,170,255,164,255,150,255,132,255,133,255, +141,255,140,255,139,255,139,255,123,255,109,255,124,255,153,255,189,255,246,255,51,0,80,0,77,0,76,0,117,0,159,0, +148,0,120,0,110,0,90,0,46,0,242,255,187,255,160,255,159,255,187,255,230,255,237,255,220,255,236,255,8,0,251,255, +211,255,197,255,214,255,227,255,221,255,203,255,191,255,205,255,229,255,241,255,238,255,233,255,241,255,13,0,44,0,72,0, +98,0,107,0,114,0,140,0,160,0,181,0,248,0,62,1,67,1,34,1,248,0,191,0,99,0,221,255,111,255,84,255, +88,255,79,255,65,255,55,255,70,255,112,255,155,255,191,255,232,255,9,0,23,0,28,0,43,0,74,0,112,0,136,0, +138,0,142,0,147,0,124,0,83,0,64,0,73,0,69,0,31,0,250,255,213,255,163,255,128,255,109,255,105,255,119,255, +134,255,169,255,220,255,245,255,19,0,66,0,71,0,37,0,9,0,1,0,251,255,246,255,11,0,32,0,22,0,255,255, +211,255,150,255,119,255,125,255,143,255,137,255,128,255,183,255,249,255,253,255,250,255,11,0,26,0,17,0,228,255,215,255, +6,0,28,0,23,0,44,0,54,0,1,0,182,255,190,255,19,0,41,0,237,255,186,255,166,255,161,255,182,255,214,255, +209,255,167,255,156,255,192,255,219,255,223,255,224,255,234,255,5,0,43,0,73,0,70,0,41,0,22,0,2,0,204,255, +130,255,70,255,35,255,26,255,25,255,45,255,98,255,158,255,202,255,231,255,8,0,60,0,86,0,59,0,31,0,19,0, +245,255,205,255,188,255,195,255,190,255,152,255,115,255,122,255,149,255,159,255,152,255,141,255,150,255,184,255,223,255,23,0, +89,0,126,0,153,0,228,0,65,1,9,1,9,0,93,255,168,255,224,255,154,255,156,255,217,255,203,255,121,255,47,255, +78,255,185,255,233,255,2,0,72,0,102,0,52,0,6,0,32,0,57,0,6,0,1,0,98,0,150,0,121,0,79,0, +23,0,217,255,178,255,171,255,181,255,165,255,136,255,168,255,22,0,141,0,209,0,4,1,89,1,150,1,134,1,83,1, +16,1,171,0,57,0,222,255,156,255,89,255,22,255,234,254,224,254,241,254,0,255,248,254,243,254,36,255,131,255,208,255, +254,255,62,0,131,0,166,0,183,0,195,0,181,0,139,0,125,0,175,0,222,0,220,0,194,0,144,0,63,0,235,255, +174,255,144,255,120,255,104,255,117,255,133,255,132,255,131,255,151,255,194,255,214,255,193,255,178,255,173,255,169,255,183,255, +190,255,180,255,189,255,234,255,48,0,109,0,137,0,133,0,103,0,71,0,50,0,38,0,53,0,65,0,42,0,31,0, +31,0,13,0,6,0,21,0,39,0,46,0,29,0,1,0,241,255,249,255,15,0,17,0,245,255,205,255,166,255,150,255, +156,255,163,255,174,255,186,255,193,255,216,255,254,255,22,0,34,0,56,0,92,0,126,0,145,0,133,0,94,0,50,0, +26,0,9,0,236,255,216,255,227,255,246,255,255,255,8,0,28,0,44,0,30,0,30,0,95,0,153,0,129,0,96,0, +129,0,153,0,77,0,224,255,183,255,185,255,199,255,219,255,198,255,142,255,113,255,92,255,57,255,61,255,135,255,218,255, +242,255,236,255,252,255,35,0,86,0,124,0,124,0,106,0,86,0,75,0,94,0,117,0,121,0,117,0,105,0,105,0, +133,0,135,0,93,0,53,0,38,0,30,0,4,0,215,255,193,255,195,255,197,255,203,255,207,255,187,255,166,255,158,255, +163,255,190,255,227,255,0,0,11,0,7,0,18,0,25,0,7,0,248,255,237,255,218,255,230,255,10,0,18,0,5,0, +12,0,39,0,67,0,94,0,104,0,75,0,56,0,83,0,112,0,121,0,134,0,159,0,173,0,145,0,95,0,59,0, +26,0,253,255,243,255,255,255,27,0,11,0,204,255,180,255,204,255,222,255,233,255,252,255,23,0,36,0,28,0,29,0, +37,0,39,0,46,0,59,0,69,0,64,0,48,0,49,0,57,0,54,0,63,0,73,0,62,0,32,0,251,255,235,255, +245,255,248,255,243,255,239,255,230,255,221,255,221,255,223,255,227,255,230,255,231,255,238,255,246,255,240,255,253,255,42,0, +70,0,74,0,79,0,61,0,24,0,250,255,238,255,250,255,13,0,16,0,15,0,20,0,8,0,233,255,210,255,210,255, +217,255,221,255,226,255,228,255,225,255,220,255,220,255,231,255,233,255,221,255,214,255,219,255,238,255,0,0,2,0,1,0, +241,255,224,255,253,255,36,0,27,0,8,0,8,0,6,0,247,255,231,255,227,255,229,255,216,255,183,255,148,255,130,255, +127,255,119,255,111,255,119,255,136,255,145,255,171,255,234,255,33,0,59,0,89,0,117,0,113,0,92,0,80,0,82,0, +88,0,83,0,59,0,32,0,27,0,37,0,35,0,13,0,234,255,194,255,161,255,150,255,162,255,168,255,168,255,196,255, +230,255,234,255,227,255,246,255,36,0,60,0,52,0,67,0,76,0,38,0,23,0,47,0,47,0,21,0,5,0,11,0, +1,0,214,255,203,255,228,255,234,255,230,255,226,255,222,255,218,255,189,255,170,255,197,255,220,255,223,255,229,255,233,255, +245,255,8,0,10,0,254,255,255,255,29,0,55,0,51,0,40,0,26,0,13,0,13,0,241,255,176,255,138,255,157,255, +191,255,191,255,184,255,217,255,1,0,2,0,253,255,7,0,18,0,25,0,37,0,57,0,62,0,24,0,229,255,226,255, +8,0,22,0,3,0,3,0,20,0,25,0,27,0,29,0,21,0,11,0,12,0,24,0,40,0,66,0,91,0,79,0, +45,0,33,0,37,0,48,0,68,0,78,0,55,0,18,0,3,0,254,255,226,255,206,255,224,255,237,255,229,255,224,255, +228,255,238,255,235,255,219,255,233,255,19,0,35,0,18,0,13,0,32,0,40,0,39,0,66,0,95,0,91,0,77,0, +70,0,54,0,27,0,9,0,13,0,13,0,240,255,197,255,174,255,190,255,228,255,236,255,213,255,206,255,213,255,217,255, +244,255,45,0,121,0,203,0,227,0,196,0,201,0,195,0,91,0,238,255,200,255,183,255,173,255,171,255,166,255,148,255, +97,255,64,255,113,255,178,255,195,255,194,255,226,255,45,0,99,0,97,0,105,0,149,0,183,0,199,0,226,0,242,0, +207,0,177,0,212,0,216,0,122,0,19,0,203,255,152,255,150,255,152,255,96,255,26,255,8,255,31,255,48,255,60,255, +90,255,132,255,180,255,217,255,229,255,250,255,45,0,99,0,127,0,130,0,137,0,153,0,165,0,174,0,163,0,127,0, +88,0,48,0,27,0,32,0,15,0,228,255,192,255,155,255,97,255,43,255,35,255,49,255,53,255,61,255,57,255,47,255, +61,255,62,255,56,255,80,255,95,255,119,255,169,255,225,255,56,0,135,0,35,1,213,2,142,4,151,4,96,3,84,2, +203,1,231,0,44,255,200,253,121,253,41,253,72,252,131,251,58,251,65,251,107,251,203,251,94,252,255,252,232,253,63,255, +157,0,188,1,147,2,34,3,125,3,172,3,191,3,182,3,128,3,42,3,174,2,244,1,27,1,72,0,114,255,154,254, +226,253,102,253,36,253,40,253,121,253,219,253,58,254,180,254,42,255,119,255,175,255,240,255,52,0,92,0,107,0,132,0, +158,0,162,0,136,0,86,0,54,0,57,0,60,0,59,0,73,0,84,0,69,0,42,0,23,0,2,0,226,255,209,255, +223,255,241,255,220,255,180,255,168,255,183,255,208,255,233,255,250,255,20,0,57,0,87,0,129,0,181,0,188,0,135,0, +62,0,25,0,47,0,82,0,79,0,42,0,244,255,170,255,77,255,0,255,216,254,192,254,184,254,201,254,238,254,36,255, +91,255,136,255,192,255,7,0,59,0,72,0,70,0,110,0,201,0,12,1,0,1,188,0,117,0,84,0,66,0,32,0, +15,0,19,0,253,255,220,255,208,255,202,255,193,255,188,255,189,255,187,255,165,255,140,255,140,255,169,255,228,255,33,0, +58,0,58,0,66,0,93,0,121,0,127,0,133,0,161,0,182,0,183,0,160,0,113,0,79,0,70,0,68,0,55,0, +23,0,247,255,240,255,243,255,245,255,243,255,239,255,1,0,21,0,14,0,251,255,244,255,241,255,241,255,21,0,70,0, +31,0,204,255,228,255,50,0,43,0,236,255,217,255,245,255,241,255,201,255,212,255,17,0,41,0,23,0,5,0,21,0, +73,0,102,0,88,0,92,0,120,0,130,0,135,0,146,0,148,0,158,0,173,0,155,0,120,0,105,0,102,0,94,0, +65,0,22,0,3,0,6,0,240,255,204,255,181,255,171,255,179,255,209,255,241,255,242,255,212,255,205,255,237,255,4,0, +251,255,239,255,238,255,248,255,22,0,42,0,27,0,8,0,13,0,13,0,246,255,210,255,175,255,147,255,134,255,146,255, +174,255,188,255,194,255,210,255,219,255,217,255,213,255,194,255,166,255,154,255,147,255,128,255,106,255,97,255,99,255,105,255, +116,255,140,255,149,255,143,255,178,255,247,255,26,0,24,0,49,0,102,0,108,0,52,0,4,0,231,255,186,255,133,255, +103,255,98,255,107,255,121,255,146,255,167,255,179,255,213,255,255,255,14,0,30,0,73,0,127,0,182,0,235,0,11,1, +10,1,250,0,230,0,178,0,96,0,19,0,225,255,198,255,175,255,160,255,181,255,220,255,248,255,8,0,12,0,24,0, +51,0,66,0,78,0,97,0,102,0,93,0,79,0,52,0,8,0,213,255,183,255,185,255,195,255,199,255,208,255,244,255, +40,0,69,0,66,0,50,0,39,0,38,0,48,0,84,0,123,0,126,0,132,0,157,0,150,0,144,0,160,0,121,0, +22,0,217,255,240,255,7,0,185,255,87,255,88,255,134,255,136,255,110,255,105,255,139,255,158,255,127,255,119,255,170,255, +228,255,2,0,14,0,36,0,70,0,83,0,81,0,106,0,134,0,122,0,86,0,59,0,54,0,60,0,51,0,30,0, +10,0,234,255,204,255,198,255,186,255,165,255,158,255,149,255,139,255,139,255,127,255,106,255,95,255,97,255,119,255,141,255, +133,255,131,255,165,255,203,255,233,255,7,0,26,0,53,0,105,0,142,0,147,0,150,0,167,0,180,0,175,0,149,0, +113,0,84,0,65,0,40,0,8,0,241,255,227,255,226,255,249,255,25,0,47,0,58,0,63,0,73,0,91,0,112,0, +126,0,127,0,124,0,115,0,92,0,69,0,44,0,19,0,17,0,16,0,252,255,246,255,4,0,18,0,38,0,52,0, +49,0,45,0,54,0,68,0,66,0,47,0,43,0,56,0,55,0,31,0,19,0,29,0,38,0,49,0,74,0,90,0, +102,0,118,0,115,0,106,0,108,0,104,0,89,0,81,0,87,0,82,0,38,0,238,255,209,255,205,255,200,255,188,255, +178,255,170,255,156,255,128,255,98,255,105,255,153,255,197,255,233,255,23,0,56,0,76,0,90,0,94,0,101,0,102,0, +90,0,82,0,63,0,40,0,30,0,4,0,235,255,224,255,192,255,162,255,164,255,149,255,121,255,121,255,144,255,178,255, +202,255,203,255,205,255,228,255,7,0,46,0,69,0,63,0,51,0,50,0,40,0,34,0,43,0,36,0,14,0,3,0, +252,255,227,255,180,255,163,255,203,255,218,255,167,255,125,255,147,255,217,255,251,255,179,255,94,255,105,255,151,255,159,255, +142,255,136,255,182,255,241,255,242,255,224,255,246,255,21,0,53,0,102,0,144,0,173,0,180,0,144,0,82,0,29,0, +243,255,194,255,139,255,94,255,61,255,43,255,63,255,94,255,95,255,92,255,107,255,138,255,178,255,206,255,227,255,2,0, +21,0,31,0,62,0,102,0,129,0,140,0,166,0,195,0,165,0,106,0,101,0,115,0,79,0,28,0,15,0,26,0, +11,0,228,255,198,255,182,255,170,255,171,255,181,255,203,255,230,255,238,255,222,255,197,255,182,255,201,255,238,255,251,255, +244,255,247,255,18,0,55,0,58,0,24,0,2,0,1,0,237,255,200,255,182,255,199,255,235,255,2,0,20,0,52,0, +70,0,44,0,252,255,223,255,220,255,216,255,186,255,153,255,161,255,198,255,224,255,248,255,25,0,41,0,43,0,50,0, +62,0,75,0,70,0,40,0,10,0,252,255,248,255,243,255,220,255,186,255,179,255,202,255,214,255,201,255,193,255,196,255, +194,255,197,255,208,255,215,255,210,255,202,255,217,255,250,255,6,0,23,0,66,0,91,0,103,0,132,0,138,0,95,0, +58,0,67,0,85,0,55,0,250,255,197,255,153,255,132,255,136,255,111,255,46,255,2,255,24,255,76,255,103,255,118,255, +150,255,194,255,233,255,4,0,27,0,59,0,89,0,98,0,88,0,79,0,90,0,100,0,85,0,76,0,86,0,93,0, +88,0,79,0,74,0,77,0,74,0,44,0,229,255,156,255,127,255,105,255,72,255,71,255,66,255,30,255,15,255,34,255, +62,255,96,255,123,255,153,255,200,255,232,255,247,255,13,0,47,0,91,0,127,0,134,0,138,0,162,0,185,0,185,0, +168,0,155,0,142,0,109,0,70,0,50,0,27,0,232,255,179,255,157,255,151,255,142,255,137,255,127,255,121,255,142,255, +168,255,175,255,190,255,235,255,37,0,80,0,99,0,103,0,98,0,90,0,81,0,52,0,19,0,13,0,23,0,32,0, +45,0,57,0,51,0,17,0,232,255,211,255,203,255,202,255,204,255,203,255,211,255,229,255,238,255,237,255,234,255,231,255, +235,255,251,255,19,0,49,0,74,0,84,0,82,0,78,0,75,0,68,0,57,0,50,0,58,0,74,0,75,0,54,0, +29,0,9,0,247,255,228,255,207,255,194,255,201,255,220,255,229,255,222,255,220,255,228,255,225,255,209,255,203,255,224,255, +248,255,252,255,247,255,241,255,234,255,240,255,1,0,16,0,30,0,39,0,33,0,29,0,34,0,41,0,49,0,61,0, +63,0,60,0,76,0,80,0,30,0,216,255,190,255,213,255,223,255,183,255,165,255,209,255,238,255,212,255,182,255,181,255, +196,255,202,255,203,255,207,255,205,255,212,255,241,255,16,0,49,0,82,0,93,0,89,0,89,0,91,0,78,0,40,0, +246,255,194,255,161,255,166,255,169,255,168,255,220,255,44,0,92,0,117,0,126,0,101,0,41,0,231,255,190,255,178,255, +190,255,225,255,0,0,9,0,15,0,44,0,84,0,99,0,95,0,114,0,143,0,135,0,94,0,59,0,44,0,24,0, +248,255,234,255,235,255,230,255,218,255,192,255,157,255,138,255,136,255,149,255,171,255,182,255,191,255,203,255,213,255,236,255, +27,0,74,0,97,0,97,0,102,0,124,0,137,0,121,0,87,0,61,0,51,0,30,0,251,255,241,255,252,255,243,255, +218,255,206,255,202,255,189,255,183,255,196,255,208,255,209,255,208,255,219,255,239,255,4,0,20,0,19,0,8,0,18,0, +43,0,52,0,48,0,48,0,48,0,41,0,40,0,44,0,37,0,23,0,12,0,2,0,248,255,247,255,0,0,8,0, +4,0,251,255,254,255,254,255,235,255,224,255,230,255,239,255,246,255,248,255,252,255,7,0,15,0,23,0,38,0,42,0, +36,0,40,0,54,0,67,0,73,0,72,0,58,0,32,0,11,0,4,0,16,0,33,0,27,0,6,0,251,255,1,0, +12,0,17,0,22,0,15,0,229,255,192,255,204,255,226,255,223,255,225,255,249,255,24,0,38,0,46,0,67,0,71,0, +49,0,40,0,38,0,21,0,8,0,9,0,14,0,19,0,30,0,47,0,61,0,52,0,20,0,236,255,196,255,164,255, +153,255,166,255,190,255,222,255,3,0,34,0,53,0,59,0,49,0,38,0,35,0,36,0,37,0,38,0,39,0,31,0, +9,0,250,255,253,255,1,0,255,255,4,0,10,0,2,0,240,255,224,255,220,255,227,255,233,255,233,255,240,255,252,255, +3,0,17,0,34,0,47,0,55,0,48,0,33,0,32,0,30,0,16,0,3,0,252,255,248,255,248,255,251,255,251,255, +245,255,237,255,226,255,207,255,191,255,194,255,207,255,213,255,210,255,210,255,216,255,223,255,230,255,236,255,240,255,248,255, +255,255,2,0,13,0,30,0,49,0,65,0,70,0,67,0,57,0,35,0,14,0,252,255,239,255,243,255,0,0,11,0, +9,0,246,255,235,255,239,255,234,255,228,255,229,255,222,255,222,255,239,255,247,255,240,255,237,255,241,255,238,255,231,255, +238,255,251,255,4,0,11,0,14,0,19,0,28,0,24,0,9,0,7,0,13,0,11,0,246,255,221,255,231,255,6,0, +15,0,11,0,14,0,24,0,26,0,15,0,2,0,3,0,11,0,18,0,24,0,16,0,252,255,242,255,241,255,238,255, +233,255,225,255,218,255,228,255,238,255,234,255,232,255,238,255,245,255,1,0,17,0,30,0,39,0,37,0,26,0,19,0, +22,0,36,0,43,0,31,0,25,0,42,0,44,0,22,0,5,0,4,0,9,0,6,0,248,255,246,255,3,0,8,0, +0,0,254,255,6,0,8,0,250,255,242,255,252,255,5,0,11,0,15,0,12,0,10,0,7,0,246,255,235,255,245,255, +2,0,8,0,5,0,250,255,240,255,237,255,237,255,238,255,241,255,249,255,251,255,246,255,241,255,235,255,225,255,224,255, +230,255,236,255,244,255,252,255,250,255,240,255,226,255,216,255,208,255,199,255,196,255,197,255,193,255,190,255,193,255,205,255, +221,255,223,255,220,255,229,255,235,255,229,255,229,255,227,255,217,255,213,255,224,255,235,255,230,255,221,255,224,255,233,255, +236,255,236,255,236,255,233,255,224,255,219,255,229,255,235,255,230,255,234,255,245,255,245,255,241,255,246,255,248,255,232,255, +222,255,230,255,226,255,214,255,219,255,221,255,215,255,219,255,225,255,224,255,225,255,230,255,245,255,4,0,7,0,2,0, +255,255,252,255,250,255,248,255,244,255,240,255,243,255,251,255,255,255,0,0,5,0,11,0,11,0,7,0,1,0,254,255, +255,255,2,0,4,0,0,0,252,255,252,255,252,255,1,0,11,0,17,0,30,0,42,0,37,0,37,0,47,0,49,0, +46,0,39,0,22,0,254,255,236,255,239,255,249,255,244,255,240,255,241,255,239,255,248,255,6,0,10,0,3,0,255,255, +14,0,37,0,43,0,37,0,31,0,22,0,18,0,20,0,23,0,31,0,34,0,24,0,10,0,1,0,2,0,5,0, +251,255,245,255,5,0,15,0,7,0,8,0,22,0,18,0,251,255,241,255,252,255,1,0,248,255,249,255,5,0,5,0, +245,255,237,255,247,255,8,0,21,0,29,0,24,0,17,0,28,0,38,0,24,0,12,0,19,0,23,0,18,0,15,0, +17,0,24,0,25,0,10,0,247,255,242,255,251,255,9,0,17,0,19,0,19,0,12,0,250,255,236,255,234,255,238,255, +243,255,251,255,7,0,20,0,17,0,3,0,0,0,1,0,252,255,250,255,248,255,244,255,250,255,4,0,4,0,3,0, +15,0,34,0,39,0,36,0,35,0,30,0,29,0,38,0,44,0,45,0,42,0,32,0,25,0,27,0,27,0,22,0, +16,0,15,0,9,0,248,255,245,255,6,0,3,0,238,255,226,255,222,255,221,255,224,255,229,255,234,255,246,255,6,0, +9,0,250,255,237,255,240,255,252,255,254,255,249,255,252,255,4,0,6,0,16,0,32,0,38,0,35,0,36,0,38,0, +31,0,30,0,42,0,48,0,41,0,28,0,9,0,251,255,243,255,230,255,227,255,234,255,238,255,242,255,247,255,252,255, +4,0,11,0,19,0,28,0,28,0,26,0,30,0,35,0,38,0,28,0,11,0,9,0,17,0,22,0,24,0,22,0, +14,0,0,0,243,255,239,255,236,255,236,255,238,255,233,255,235,255,0,0,15,0,11,0,4,0,7,0,17,0,17,0, +1,0,244,255,243,255,241,255,235,255,248,255,21,0,27,0,17,0,20,0,15,0,249,255,237,255,238,255,238,255,235,255, +245,255,11,0,20,0,13,0,2,0,245,255,237,255,238,255,240,255,245,255,247,255,241,255,234,255,229,255,229,255,237,255, +240,255,239,255,237,255,234,255,233,255,234,255,233,255,228,255,220,255,222,255,231,255,232,255,232,255,246,255,8,0,26,0, +38,0,30,0,7,0,242,255,230,255,226,255,229,255,237,255,245,255,247,255,244,255,246,255,3,0,17,0,18,0,17,0, +21,0,16,0,4,0,1,0,2,0,0,0,1,0,7,0,16,0,27,0,33,0,31,0,26,0,18,0,2,0,239,255, +224,255,206,255,185,255,171,255,172,255,183,255,197,255,202,255,200,255,202,255,213,255,229,255,249,255,20,0,51,0,69,0, +70,0,75,0,79,0,69,0,63,0,64,0,57,0,50,0,32,0,10,0,18,0,24,0,239,255,210,255,222,255,219,255, +187,255,170,255,178,255,186,255,187,255,192,255,206,255,233,255,6,0,19,0,16,0,14,0,19,0,25,0,30,0,37,0, +42,0,37,0,32,0,30,0,19,0,2,0,249,255,247,255,247,255,248,255,247,255,238,255,227,255,226,255,230,255,230,255, +230,255,233,255,235,255,234,255,238,255,254,255,12,0,12,0,14,0,17,0,11,0,5,0,252,255,243,255,244,255,243,255, +237,255,242,255,249,255,244,255,235,255,236,255,249,255,1,0,252,255,247,255,247,255,251,255,255,255,254,255,5,0,23,0, +32,0,24,0,8,0,2,0,7,0,8,0,8,0,8,0,253,255,238,255,233,255,231,255,225,255,218,255,212,255,206,255, +197,255,195,255,203,255,210,255,217,255,226,255,242,255,8,0,19,0,18,0,19,0,22,0,21,0,20,0,23,0,27,0, +22,0,8,0,4,0,5,0,254,255,246,255,245,255,243,255,241,255,246,255,1,0,5,0,246,255,229,255,231,255,244,255, +253,255,7,0,25,0,32,0,23,0,8,0,244,255,226,255,219,255,222,255,227,255,231,255,232,255,236,255,248,255,5,0, +10,0,7,0,1,0,250,255,247,255,247,255,245,255,243,255,249,255,254,255,255,255,3,0,8,0,11,0,13,0,11,0, +3,0,253,255,250,255,252,255,254,255,248,255,241,255,232,255,221,255,218,255,225,255,231,255,235,255,239,255,244,255,253,255, +3,0,9,0,20,0,24,0,22,0,27,0,35,0,35,0,28,0,16,0,4,0,252,255,253,255,5,0,10,0,9,0, +4,0,0,0,7,0,19,0,20,0,16,0,16,0,16,0,19,0,25,0,26,0,28,0,29,0,20,0,11,0,8,0, +250,255,232,255,235,255,251,255,3,0,7,0,13,0,18,0,21,0,17,0,9,0,2,0,4,0,13,0,13,0,3,0, +9,0,26,0,30,0,25,0,25,0,26,0,29,0,31,0,28,0,28,0,32,0,34,0,31,0,17,0,3,0,255,255, +255,255,254,255,255,255,254,255,253,255,254,255,252,255,253,255,254,255,254,255,1,0,255,255,249,255,253,255,2,0,1,0, +5,0,10,0,3,0,251,255,252,255,1,0,14,0,28,0,28,0,20,0,19,0,21,0,17,0,10,0,0,0,246,255, +241,255,240,255,237,255,234,255,227,255,217,255,213,255,218,255,227,255,237,255,248,255,6,0,24,0,37,0,39,0,33,0, +28,0,21,0,12,0,3,0,251,255,241,255,230,255,227,255,224,255,219,255,221,255,231,255,237,255,238,255,233,255,230,255, +235,255,243,255,245,255,242,255,240,255,242,255,251,255,7,0,12,0,8,0,2,0,255,255,255,255,254,255,248,255,242,255, +243,255,248,255,251,255,252,255,245,255,235,255,240,255,251,255,4,0,17,0,23,0,24,0,42,0,51,0,37,0,26,0, +17,0,254,255,238,255,232,255,232,255,238,255,243,255,250,255,0,0,253,255,246,255,250,255,10,0,36,0,58,0,65,0, +61,0,56,0,49,0,36,0,21,0,15,0,18,0,16,0,8,0,1,0,247,255,234,255,225,255,226,255,232,255,235,255, +233,255,233,255,235,255,237,255,246,255,4,0,15,0,23,0,30,0,37,0,43,0,36,0,18,0,11,0,12,0,12,0, +12,0,11,0,9,0,5,0,0,0,248,255,234,255,230,255,243,255,255,255,0,0,4,0,12,0,16,0,16,0,17,0, +19,0,13,0,253,255,246,255,249,255,250,255,246,255,240,255,232,255,226,255,224,255,230,255,233,255,230,255,232,255,241,255, +248,255,251,255,254,255,254,255,251,255,253,255,253,255,247,255,247,255,2,0,9,0,11,0,18,0,19,0,10,0,1,0, +253,255,246,255,241,255,247,255,2,0,4,0,3,0,4,0,5,0,255,255,248,255,249,255,252,255,246,255,245,255,0,0, +9,0,7,0,4,0,10,0,17,0,19,0,11,0,3,0,2,0,2,0,253,255,252,255,4,0,12,0,18,0,20,0, +17,0,13,0,9,0,4,0,8,0,16,0,24,0,25,0,18,0,19,0,29,0,28,0,24,0,30,0,35,0,30,0, +20,0,12,0,6,0,3,0,1,0,254,255,247,255,242,255,241,255,238,255,234,255,230,255,229,255,227,255,228,255,235,255, +245,255,244,255,237,255,242,255,1,0,9,0,10,0,20,0,29,0,29,0,27,0,23,0,13,0,7,0,5,0,4,0, +0,0,244,255,238,255,242,255,247,255,249,255,246,255,237,255,234,255,232,255,225,255,221,255,224,255,227,255,231,255,240,255, +246,255,245,255,241,255,234,255,232,255,238,255,241,255,242,255,253,255,7,0,2,0,247,255,239,255,240,255,247,255,253,255, +3,0,5,0,254,255,246,255,247,255,251,255,252,255,247,255,237,255,226,255,224,255,234,255,240,255,242,255,247,255,254,255, +8,0,16,0,16,0,15,0,15,0,16,0,24,0,31,0,29,0,24,0,20,0,18,0,21,0,23,0,19,0,15,0, +13,0,9,0,3,0,251,255,242,255,240,255,246,255,252,255,252,255,252,255,253,255,0,0,4,0,4,0,2,0,1,0, +255,255,254,255,3,0,6,0,3,0,2,0,6,0,6,0,0,0,251,255,255,255,3,0,1,0,253,255,253,255,250,255, +250,255,2,0,3,0,249,255,239,255,235,255,239,255,245,255,252,255,9,0,18,0,7,0,253,255,4,0,9,0,6,0, +3,0,6,0,2,0,241,255,235,255,251,255,13,0,20,0,22,0,26,0,38,0,43,0,31,0,14,0,254,255,239,255, +224,255,211,255,201,255,193,255,185,255,186,255,192,255,195,255,200,255,217,255,236,255,247,255,0,0,13,0,25,0,28,0, +26,0,32,0,37,0,28,0,19,0,15,0,7,0,255,255,254,255,248,255,238,255,236,255,238,255,242,255,246,255,244,255, +242,255,250,255,5,0,10,0,16,0,29,0,41,0,37,0,15,0,1,0,20,0,46,0,42,0,24,0,11,0,248,255, +224,255,204,255,194,255,192,255,194,255,198,255,204,255,208,255,209,255,217,255,235,255,253,255,6,0,14,0,32,0,48,0, +51,0,55,0,65,0,68,0,56,0,46,0,47,0,46,0,36,0,31,0,31,0,42,0,62,0,65,0,62,0,94,0, +138,0,135,0,68,0,217,255,122,255,80,255,75,255,72,255,80,255,101,255,108,255,97,255,100,255,133,255,179,255,219,255, +6,0,58,0,99,0,119,0,141,0,171,0,197,0,218,0,217,0,188,0,167,0,170,0,159,0,112,0,56,0,9,0, +219,255,175,255,141,255,124,255,122,255,119,255,116,255,134,255,164,255,190,255,223,255,2,0,25,0,34,0,32,0,32,0, +38,0,41,0,32,0,17,0,3,0,246,255,232,255,222,255,222,255,221,255,218,255,222,255,233,255,238,255,237,255,235,255, +228,255,219,255,216,255,222,255,228,255,229,255,228,255,235,255,246,255,247,255,243,255,241,255,238,255,232,255,228,255,232,255, +239,255,234,255,223,255,218,255,210,255,205,255,212,255,219,255,219,255,220,255,226,255,232,255,234,255,235,255,238,255,243,255, +249,255,254,255,254,255,1,0,8,0,14,0,22,0,37,0,49,0,54,0,57,0,59,0,60,0,61,0,54,0,43,0, +37,0,30,0,18,0,12,0,11,0,6,0,2,0,2,0,255,255,244,255,223,255,208,255,206,255,215,255,225,255,228,255, +232,255,246,255,5,0,17,0,30,0,44,0,58,0,61,0,52,0,46,0,44,0,38,0,29,0,18,0,7,0,2,0, +254,255,248,255,246,255,239,255,227,255,222,255,224,255,223,255,220,255,223,255,227,255,222,255,212,255,211,255,223,255,239,255, +249,255,255,255,9,0,16,0,14,0,3,0,250,255,251,255,252,255,252,255,0,0,1,0,252,255,246,255,244,255,247,255, +252,255,255,255,2,0,4,0,0,0,250,255,247,255,247,255,252,255,5,0,12,0,13,0,9,0,0,0,253,255,255,255, +253,255,247,255,248,255,251,255,247,255,240,255,243,255,255,255,6,0,4,0,11,0,24,0,25,0,13,0,3,0,9,0, +17,0,4,0,254,255,20,0,37,0,37,0,34,0,36,0,37,0,25,0,4,0,254,255,6,0,10,0,10,0,8,0, +9,0,15,0,19,0,20,0,26,0,32,0,29,0,24,0,25,0,31,0,29,0,20,0,21,0,23,0,17,0,10,0, +11,0,11,0,5,0,255,255,249,255,246,255,248,255,252,255,253,255,252,255,250,255,250,255,249,255,247,255,250,255,249,255, +248,255,0,0,13,0,18,0,10,0,254,255,244,255,238,255,237,255,236,255,229,255,223,255,222,255,220,255,222,255,232,255, +240,255,242,255,242,255,242,255,246,255,250,255,252,255,248,255,241,255,244,255,250,255,251,255,4,0,20,0,25,0,21,0, +12,0,2,0,254,255,2,0,8,0,8,0,4,0,254,255,243,255,230,255,226,255,232,255,241,255,243,255,241,255,238,255, +238,255,237,255,237,255,245,255,2,0,10,0,9,0,6,0,2,0,253,255,0,0,8,0,12,0,11,0,7,0,4,0, +3,0,255,255,248,255,242,255,241,255,245,255,252,255,7,0,14,0,17,0,21,0,28,0,36,0,40,0,35,0,32,0, +30,0,16,0,6,0,12,0,16,0,7,0,0,0,0,0,252,255,243,255,244,255,255,255,7,0,6,0,0,0,254,255, +3,0,9,0,12,0,14,0,17,0,25,0,30,0,28,0,24,0,20,0,17,0,13,0,1,0,247,255,242,255,235,255, +228,255,228,255,229,255,228,255,223,255,218,255,224,255,237,255,245,255,246,255,251,255,6,0,16,0,21,0,24,0,23,0, +17,0,8,0,255,255,251,255,254,255,9,0,13,0,0,0,244,255,244,255,246,255,250,255,0,0,4,0,8,0,7,0, +1,0,252,255,249,255,249,255,255,255,3,0,2,0,0,0,0,0,3,0,0,0,249,255,246,255,248,255,254,255,6,0, +13,0,17,0,21,0,28,0,31,0,30,0,33,0,31,0,19,0,13,0,14,0,11,0,9,0,12,0,11,0,7,0, +5,0,7,0,11,0,12,0,10,0,12,0,14,0,12,0,7,0,4,0,3,0,252,255,244,255,244,255,247,255,250,255, +0,0,4,0,6,0,10,0,18,0,19,0,13,0,12,0,14,0,14,0,14,0,11,0,6,0,9,0,14,0,13,0, +13,0,17,0,21,0,20,0,19,0,23,0,28,0,29,0,27,0,22,0,22,0,24,0,17,0,9,0,5,0,3,0, +5,0,7,0,8,0,10,0,13,0,16,0,19,0,21,0,22,0,19,0,15,0,11,0,7,0,1,0,255,255,2,0, +5,0,5,0,3,0,0,0,252,255,254,255,255,255,251,255,249,255,248,255,247,255,250,255,251,255,250,255,255,255,6,0, +10,0,13,0,10,0,2,0,1,0,3,0,5,0,8,0,13,0,21,0,25,0,21,0,15,0,11,0,6,0,253,255, +245,255,243,255,238,255,229,255,230,255,242,255,252,255,254,255,254,255,254,255,251,255,244,255,238,255,242,255,253,255,5,0, +7,0,10,0,16,0,15,0,15,0,18,0,20,0,18,0,12,0,2,0,250,255,244,255,241,255,241,255,233,255,232,255, +242,255,246,255,242,255,243,255,247,255,250,255,255,255,5,0,11,0,13,0,11,0,7,0,5,0,6,0,8,0,8,0, +9,0,12,0,12,0,6,0,1,0,0,0,0,0,252,255,248,255,249,255,251,255,252,255,250,255,246,255,247,255,248,255, +248,255,249,255,247,255,245,255,245,255,245,255,249,255,254,255,251,255,248,255,249,255,252,255,0,0,6,0,14,0,14,0, +6,0,253,255,248,255,248,255,255,255,255,255,252,255,255,255,3,0,6,0,7,0,2,0,254,255,248,255,239,255,233,255, +234,255,240,255,244,255,247,255,251,255,248,255,244,255,250,255,0,0,255,255,252,255,252,255,251,255,250,255,253,255,255,255, +251,255,248,255,251,255,253,255,1,0,3,0,2,0,0,0,2,0,3,0,255,255,251,255,254,255,2,0,1,0,254,255, +253,255,255,255,254,255,252,255,253,255,251,255,249,255,249,255,248,255,247,255,246,255,243,255,240,255,238,255,242,255,249,255, +249,255,247,255,247,255,244,255,239,255,234,255,235,255,243,255,247,255,248,255,249,255,253,255,5,0,9,0,10,0,12,0, +8,0,6,0,8,0,7,0,5,0,4,0,255,255,253,255,253,255,252,255,248,255,245,255,247,255,246,255,242,255,243,255, +247,255,246,255,243,255,236,255,229,255,227,255,232,255,239,255,241,255,237,255,238,255,242,255,242,255,237,255,237,255,243,255, +246,255,247,255,250,255,251,255,250,255,247,255,247,255,254,255,5,0,9,0,11,0,11,0,11,0,7,0,254,255,247,255, +243,255,243,255,244,255,241,255,239,255,240,255,243,255,244,255,240,255,235,255,237,255,242,255,250,255,0,0,3,0,7,0, +9,0,9,0,8,0,3,0,0,0,7,0,13,0,9,0,2,0,255,255,252,255,247,255,244,255,247,255,248,255,247,255, +247,255,248,255,245,255,241,255,243,255,248,255,250,255,251,255,255,255,3,0,4,0,0,0,251,255,251,255,249,255,247,255, +249,255,255,255,6,0,14,0,19,0,19,0,16,0,15,0,16,0,20,0,26,0,36,0,42,0,38,0,29,0,21,0, +11,0,250,255,230,255,212,255,200,255,198,255,200,255,204,255,216,255,237,255,3,0,17,0,21,0,19,0,18,0,18,0, +22,0,27,0,32,0,34,0,35,0,34,0,32,0,26,0,11,0,249,255,240,255,237,255,230,255,219,255,215,255,222,255, +234,255,241,255,244,255,251,255,5,0,10,0,11,0,10,0,13,0,15,0,13,0,13,0,17,0,19,0,14,0,7,0, +3,0,3,0,7,0,8,0,3,0,254,255,250,255,247,255,248,255,252,255,0,0,3,0,8,0,9,0,8,0,5,0, +1,0,253,255,250,255,250,255,250,255,247,255,244,255,246,255,248,255,250,255,253,255,2,0,4,0,5,0,5,0,2,0, +0,0,2,0,6,0,5,0,254,255,250,255,251,255,255,255,4,0,9,0,13,0,14,0,17,0,26,0,34,0,37,0, +32,0,21,0,10,0,1,0,250,255,241,255,231,255,226,255,226,255,228,255,231,255,240,255,251,255,6,0,15,0,22,0, +27,0,31,0,31,0,23,0,7,0,245,255,228,255,216,255,210,255,212,255,221,255,232,255,239,255,245,255,254,255,4,0, +5,0,6,0,12,0,18,0,25,0,32,0,39,0,46,0,48,0,48,0,45,0,40,0,32,0,18,0,1,0,245,255, +240,255,234,255,229,255,230,255,233,255,235,255,238,255,239,255,241,255,249,255,0,0,1,0,1,0,2,0,5,0,8,0, +10,0,10,0,8,0,7,0,7,0,4,0,254,255,250,255,245,255,235,255,227,255,223,255,221,255,218,255,218,255,223,255, +232,255,239,255,243,255,250,255,5,0,15,0,26,0,37,0,38,0,27,0,20,0,21,0,18,0,8,0,4,0,10,0, +9,0,2,0,253,255,255,255,1,0,0,0,254,255,255,255,5,0,13,0,15,0,14,0,12,0,12,0,16,0,20,0, +22,0,23,0,23,0,16,0,8,0,4,0,2,0,1,0,255,255,254,255,1,0,5,0,5,0,2,0,253,255,250,255, +249,255,247,255,245,255,247,255,249,255,251,255,253,255,253,255,255,255,3,0,6,0,9,0,12,0,9,0,7,0,4,0, +255,255,251,255,252,255,1,0,5,0,5,0,4,0,2,0,254,255,252,255,251,255,245,255,239,255,239,255,237,255,235,255, +241,255,250,255,0,0,6,0,12,0,6,0,254,255,8,0,28,0,33,0,18,0,252,255,239,255,235,255,230,255,224,255, +223,255,227,255,236,255,244,255,250,255,0,0,0,0,249,255,244,255,243,255,244,255,250,255,5,0,12,0,15,0,15,0, +17,0,20,0,23,0,25,0,24,0,22,0,22,0,19,0,6,0,249,255,247,255,249,255,243,255,233,255,235,255,247,255, +1,0,5,0,8,0,13,0,16,0,14,0,8,0,4,0,6,0,6,0,0,0,253,255,253,255,252,255,251,255,255,255, +254,255,246,255,241,255,243,255,241,255,233,255,228,255,233,255,240,255,244,255,248,255,252,255,0,0,12,0,29,0,36,0, +33,0,31,0,34,0,30,0,18,0,8,0,0,0,246,255,237,255,223,255,210,255,210,255,216,255,212,255,197,255,184,255, +184,255,189,255,192,255,199,255,223,255,1,0,28,0,42,0,52,0,65,0,84,0,104,0,110,0,113,0,144,0,207,0, +12,1,21,1,226,0,186,0,171,0,86,0,169,255,1,255,145,254,82,254,59,254,71,254,117,254,177,254,232,254,31,255, +94,255,165,255,248,255,78,0,158,0,227,0,16,1,42,1,67,1,87,1,87,1,71,1,42,1,252,0,193,0,134,0, +72,0,251,255,167,255,96,255,52,255,38,255,42,255,49,255,58,255,75,255,105,255,145,255,190,255,242,255,49,0,110,0, +145,0,118,0,28,0,198,255,172,255,193,255,224,255,241,255,244,255,245,255,245,255,243,255,245,255,0,0,22,0,46,0, +58,0,51,0,39,0,39,0,38,0,24,0,13,0,8,0,2,0,254,255,249,255,240,255,233,255,228,255,218,255,214,255, +215,255,216,255,213,255,215,255,226,255,240,255,2,0,18,0,27,0,26,0,17,0,6,0,6,0,7,0,6,0,5,0, +4,0,255,255,243,255,229,255,221,255,222,255,229,255,241,255,254,255,11,0,20,0,22,0,22,0,25,0,29,0,33,0, +43,0,56,0,60,0,55,0,47,0,38,0,28,0,8,0,241,255,230,255,221,255,205,255,191,255,187,255,195,255,206,255, +211,255,219,255,227,255,231,255,237,255,244,255,3,0,35,0,74,0,102,0,108,0,114,0,155,0,188,0,153,0,68,0, +240,255,188,255,168,255,153,255,123,255,93,255,88,255,95,255,103,255,128,255,171,255,210,255,240,255,17,0,51,0,73,0, +80,0,94,0,116,0,127,0,126,0,122,0,118,0,111,0,96,0,75,0,51,0,29,0,15,0,253,255,226,255,211,255, +216,255,205,255,171,255,153,255,163,255,172,255,177,255,197,255,219,255,240,255,0,0,9,0,23,0,38,0,46,0,51,0, +54,0,59,0,49,0,14,0,2,0,33,0,48,0,23,0,249,255,239,255,236,255,228,255,223,255,221,255,213,255,203,255, +201,255,210,255,226,255,241,255,255,255,9,0,20,0,30,0,37,0,42,0,46,0,43,0,35,0,25,0,18,0,12,0, +2,0,250,255,245,255,237,255,228,255,220,255,217,255,219,255,220,255,226,255,240,255,244,255,239,255,239,255,249,255,10,0, +14,0,3,0,0,0,18,0,37,0,40,0,37,0,37,0,34,0,29,0,22,0,9,0,3,0,6,0,8,0,2,0, +248,255,244,255,244,255,240,255,234,255,232,255,236,255,242,255,245,255,249,255,254,255,0,0,2,0,2,0,7,0,12,0, +10,0,5,0,4,0,2,0,255,255,253,255,253,255,0,0,255,255,252,255,250,255,248,255,245,255,242,255,240,255,242,255, +242,255,243,255,249,255,254,255,2,0,5,0,4,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,2,0,3,0, +8,0,10,0,7,0,6,0,7,0,255,255,239,255,230,255,230,255,231,255,229,255,227,255,234,255,244,255,250,255,7,0, +25,0,38,0,40,0,35,0,37,0,40,0,32,0,21,0,15,0,8,0,254,255,240,255,226,255,221,255,219,255,214,255, +209,255,203,255,202,255,206,255,211,255,219,255,235,255,2,0,25,0,46,0,67,0,77,0,74,0,71,0,69,0,61,0, +46,0,29,0,23,0,31,0,35,0,21,0,1,0,243,255,222,255,188,255,168,255,168,255,169,255,167,255,169,255,177,255, +195,255,221,255,248,255,15,0,34,0,51,0,64,0,69,0,63,0,50,0,34,0,18,0,7,0,1,0,255,255,3,0, +13,0,21,0,24,0,27,0,29,0,32,0,31,0,19,0,3,0,243,255,225,255,207,255,191,255,181,255,188,255,206,255, +229,255,254,255,19,0,30,0,29,0,16,0,255,255,246,255,245,255,248,255,1,0,19,0,48,0,81,0,101,0,105,0, +98,0,77,0,41,0,252,255,199,255,147,255,110,255,82,255,65,255,61,255,67,255,96,255,137,255,177,255,215,255,250,255, +35,0,74,0,105,0,192,0,117,1,45,2,151,2,192,2,179,2,82,2,162,1,209,0,209,255,149,254,113,253,175,252, +66,252,20,252,42,252,147,252,60,253,234,253,129,254,15,255,152,255,47,0,220,0,136,1,29,2,140,2,207,2,238,2, +227,2,169,2,79,2,228,1,111,1,242,0,111,0,232,255,90,255,213,254,110,254,43,254,22,254,39,254,81,254,150,254, +245,254,98,255,206,255,43,0,112,0,156,0,180,0,187,0,176,0,150,0,110,0,53,0,5,0,237,255,213,255,174,255, +133,255,114,255,120,255,140,255,179,255,231,255,26,0,66,0,90,0,102,0,108,0,106,0,98,0,89,0,73,0,51,0, +31,0,18,0,8,0,255,255,252,255,255,255,254,255,1,0,17,0,29,0,21,0,252,255,253,255,27,0,8,0,189,255, +140,255,128,255,122,255,125,255,141,255,161,255,179,255,189,255,196,255,209,255,230,255,5,0,34,0,57,0,79,0,100,0, +114,0,121,0,121,0,118,0,113,0,106,0,97,0,80,0,61,0,44,0,24,0,250,255,218,255,196,255,186,255,176,255, +169,255,173,255,187,255,205,255,220,255,235,255,254,255,16,0,24,0,24,0,23,0,19,0,13,0,7,0,4,0,1,0, +247,255,233,255,223,255,216,255,216,255,225,255,238,255,250,255,4,0,11,0,13,0,15,0,25,0,38,0,45,0,37,0, +22,0,18,0,27,0,30,0,23,0,14,0,9,0,2,0,246,255,239,255,237,255,232,255,225,255,220,255,215,255,212,255, +218,255,232,255,244,255,248,255,255,255,11,0,19,0,27,0,37,0,41,0,41,0,42,0,38,0,26,0,12,0,6,0, +3,0,252,255,243,255,238,255,237,255,236,255,230,255,223,255,218,255,217,255,219,255,223,255,232,255,249,255,9,0,17,0, +20,0,21,0,20,0,19,0,20,0,22,0,30,0,39,0,42,0,42,0,36,0,27,0,17,0,9,0,3,0,252,255, +247,255,244,255,243,255,240,255,237,255,235,255,233,255,233,255,236,255,241,255,248,255,250,255,251,255,253,255,252,255,253,255, +1,0,4,0,7,0,10,0,11,0,13,0,17,0,20,0,23,0,27,0,28,0,26,0,21,0,15,0,10,0,5,0, +1,0,255,255,252,255,247,255,239,255,229,255,220,255,215,255,214,255,216,255,219,255,223,255,229,255,239,255,255,255,16,0, +26,0,31,0,33,0,33,0,31,0,25,0,19,0,15,0,11,0,5,0,0,0,252,255,249,255,245,255,241,255,240,255, +241,255,244,255,246,255,248,255,250,255,251,255,253,255,2,0,5,0,5,0,5,0,8,0,8,0,8,0,9,0,8,0, +6,0,4,0,0,0,253,255,250,255,247,255,245,255,243,255,243,255,245,255,247,255,246,255,245,255,245,255,247,255,249,255, +251,255,254,255,1,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,0,0,254,255,1,0,8,0,12,0,12,0, +9,0,4,0,1,0,254,255,249,255,248,255,250,255,250,255,250,255,250,255,248,255,244,255,244,255,246,255,247,255,251,255, +1,0,6,0,8,0,10,0,10,0,11,0,11,0,7,0,5,0,7,0,6,0,6,0,8,0,10,0,11,0,10,0, +6,0,3,0,253,255,247,255,244,255,244,255,246,255,250,255,253,255,0,0,1,0,254,255,253,255,254,255,1,0,5,0, +6,0,4,0,3,0,2,0,3,0,5,0,7,0,7,0,6,0,4,0,3,0,2,0,2,0,3,0,2,0,2,0, +4,0,2,0,255,255,255,255,1,0,2,0,1,0,3,0,6,0,5,0,4,0,4,0,6,0,6,0,5,0,6,0, +7,0,2,0,253,255,254,255,254,255,250,255,249,255,248,255,247,255,250,255,250,255,248,255,251,255,0,0,2,0,2,0, +1,0,2,0,2,0,0,0,1,0,5,0,9,0,10,0,11,0,15,0,17,0,15,0,14,0,15,0,11,0,6,0, +1,0,248,255,240,255,235,255,231,255,229,255,230,255,231,255,233,255,237,255,241,255,247,255,253,255,0,0,0,0,0,0, +0,0,255,255,0,0,5,0,8,0,13,0,18,0,18,0,16,0,14,0,12,0,8,0,4,0,1,0,0,0,255,255, +253,255,252,255,249,255,247,255,246,255,244,255,240,255,238,255,238,255,239,255,238,255,236,255,237,255,242,255,249,255,254,255, +0,0,0,0,1,0,2,0,1,0,3,0,3,0,3,0,8,0,11,0,11,0,8,0,7,0,10,0,11,0,6,0, +2,0,253,255,250,255,250,255,251,255,249,255,249,255,250,255,251,255,250,255,249,255,247,255,247,255,248,255,247,255,245,255, +244,255,242,255,240,255,240,255,243,255,247,255,253,255,2,0,6,0,8,0,8,0,10,0,21,0,32,0,32,0,25,0, +17,0,12,0,7,0,3,0,1,0,255,255,249,255,240,255,235,255,235,255,240,255,245,255,250,255,254,255,255,255,0,0, +2,0,1,0,255,255,0,0,0,0,1,0,2,0,4,0,9,0,14,0,14,0,13,0,13,0,13,0,11,0,6,0, +2,0,255,255,253,255,249,255,247,255,248,255,250,255,251,255,253,255,254,255,254,255,253,255,1,0,4,0,4,0,5,0, +10,0,12,0,11,0,10,0,9,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,3,0,0,0,254,255,250,255, +248,255,248,255,248,255,247,255,247,255,249,255,251,255,253,255,1,0,2,0,3,0,6,0,8,0,10,0,12,0,13,0, +17,0,22,0,22,0,16,0,10,0,11,0,16,0,19,0,17,0,10,0,252,255,233,255,218,255,210,255,210,255,218,255, +227,255,236,255,247,255,255,255,4,0,9,0,11,0,11,0,9,0,7,0,7,0,8,0,9,0,12,0,13,0,15,0, +18,0,20,0,18,0,15,0,11,0,5,0,255,255,253,255,252,255,250,255,249,255,249,255,250,255,252,255,253,255,254,255, +255,255,0,0,253,255,251,255,253,255,252,255,252,255,253,255,254,255,255,255,0,0,2,0,2,0,255,255,254,255,252,255, +252,255,254,255,255,255,1,0,4,0,2,0,253,255,254,255,0,0,255,255,0,0,2,0,1,0,255,255,255,255,1,0, +1,0,1,0,3,0,3,0,4,0,7,0,8,0,5,0,3,0,1,0,1,0,0,0,253,255,252,255,250,255,247,255, +247,255,248,255,245,255,243,255,245,255,246,255,247,255,250,255,254,255,1,0,4,0,7,0,7,0,7,0,6,0,4,0, +4,0,5,0,6,0,5,0,6,0,5,0,2,0,255,255,252,255,249,255,248,255,248,255,252,255,0,0,2,0,4,0, +3,0,2,0,0,0,252,255,249,255,249,255,248,255,248,255,249,255,248,255,249,255,252,255,251,255,251,255,252,255,252,255, +253,255,255,255,2,0,7,0,10,0,11,0,12,0,10,0,9,0,8,0,4,0,2,0,2,0,0,0,252,255,250,255, +249,255,247,255,244,255,244,255,245,255,246,255,249,255,253,255,0,0,0,0,1,0,2,0,0,0,0,0,0,0,1,0, +3,0,6,0,7,0,6,0,5,0,3,0,255,255,253,255,251,255,250,255,251,255,251,255,251,255,253,255,0,0,2,0, +4,0,5,0,3,0,1,0,0,0,0,0,255,255,0,0,2,0,2,0,0,0,1,0,1,0,1,0,1,0,255,255, +253,255,252,255,249,255,247,255,248,255,250,255,252,255,254,255,0,0,2,0,3,0,2,0,3,0,5,0,5,0,6,0, +4,0,2,0,2,0,2,0,1,0,255,255,254,255,253,255,250,255,248,255,249,255,249,255,248,255,248,255,248,255,250,255, +251,255,251,255,252,255,255,255,2,0,3,0,5,0,8,0,9,0,8,0,6,0,5,0,4,0,5,0,6,0,7,0, +8,0,6,0,1,0,0,0,255,255,252,255,251,255,251,255,249,255,247,255,246,255,247,255,249,255,250,255,252,255,0,0, +3,0,5,0,8,0,10,0,11,0,12,0,12,0,14,0,12,0,10,0,9,0,5,0,1,0,0,0,253,255,250,255, +250,255,250,255,249,255,248,255,247,255,248,255,249,255,251,255,254,255,1,0,2,0,3,0,6,0,6,0,4,0,4,0, +7,0,8,0,7,0,6,0,6,0,5,0,6,0,6,0,4,0,1,0,253,255,252,255,253,255,255,255,0,0,2,0, +3,0,3,0,1,0,1,0,1,0,255,255,254,255,0,0,2,0,3,0,3,0,1,0,1,0,2,0,1,0,0,0, +0,0,253,255,251,255,251,255,252,255,255,255,0,0,0,0,3,0,4,0,4,0,3,0,3,0,2,0,255,255,252,255, +254,255,0,0,0,0,0,0,0,0,255,255,252,255,250,255,249,255,247,255,248,255,251,255,253,255,254,255,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,254,255,255,255,0,0, +1,0,1,0,0,0,255,255,254,255,254,255,254,255,0,0,1,0,1,0,3,0,2,0,0,0,255,255,254,255,253,255, +253,255,252,255,253,255,0,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255,255,255,255,255,0,0,3,0,5,0, +6,0,7,0,6,0,3,0,2,0,2,0,2,0,0,0,255,255,254,255,254,255,254,255,0,0,0,0,0,0,1,0, +2,0,2,0,1,0,0,0,255,255,254,255,253,255,254,255,0,0,1,0,2,0,4,0,5,0,4,0,3,0,3,0, +3,0,0,0,0,0,1,0,255,255,254,255,252,255,250,255,251,255,252,255,253,255,254,255,255,255,255,255,0,0,1,0, +1,0,2,0,2,0,4,0,5,0,4,0,4,0,5,0,5,0,6,0,6,0,3,0,1,0,0,0,253,255,252,255, +251,255,250,255,249,255,249,255,250,255,251,255,252,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +2,0,2,0,3,0,4,0,3,0,2,0,2,0,0,0,255,255,253,255,251,255,250,255,250,255,251,255,252,255,255,255, +3,0,5,0,5,0,5,0,3,0,0,0,254,255,253,255,253,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0, +254,255,254,255,255,255,255,255,253,255,253,255,252,255,252,255,253,255,254,255,1,0,3,0,5,0,4,0,3,0,2,0, +1,0,255,255,254,255,253,255,254,255,254,255,253,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255, +0,0,1,0,3,0,6,0,7,0,7,0,5,0,2,0,0,0,0,0,255,255,253,255,252,255,253,255,253,255,252,255, +253,255,253,255,252,255,252,255,253,255,253,255,254,255,0,0,0,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0, +4,0,4,0,5,0,3,0,2,0,2,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,255,255, +1,0,0,0,254,255,255,255,255,255,255,255,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0, +254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,1,0,3,0,5,0,4,0, +3,0,3,0,2,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0, +2,0,4,0,5,0,5,0,4,0,4,0,4,0,1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,2,0,2,0,0,0,255,255,0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,0,0,0,0,1,0, +2,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,2,0,2,0,2,0,0,0, +255,255,0,0,3,0,4,0,2,0,0,0,255,255,254,255,252,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255, +254,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +4,0,2,0,0,0,255,255,254,255,253,255,252,255,253,255,253,255,253,255,254,255,0,0,255,255,254,255,0,0,1,0, +1,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,254,255,255,255,1,0,0,0,255,255,1,0,1,0,1,0, +2,0,3,0,3,0,4,0,4,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,255,255,255,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,2,0, +1,0,1,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255, +254,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0, +254,255,254,255,254,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,1,0,0,0, +1,0,1,0,255,255,254,255,254,255,253,255,253,255,254,255,253,255,253,255,255,255,255,255,0,0,0,0,1,0,2,0, +1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0, +0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,254,255,253,255,255,255,255,255,255,255, +254,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0, +0,0,0,0,2,0,2,0,0,0,0,0,2,0,2,0,1,0,1,0,0,0,1,0,0,0,254,255,255,255,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +2,0,0,0,255,255,255,255,253,255,253,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,255,255,255,255,254,255,253,255,252,255,252,255,253,255,255,255,255,255,0,0,0,0,1,0,2,0,3,0,3,0, +2,0,2,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,2,0,3,0,3,0,4,0,3,0,2,0,1,0,1,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,3,0, +3,0,1,0,1,0,2,0,2,0,2,0,0,0,255,255,255,255,254,255,253,255,254,255,255,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,0,0,1,0, +1,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,255,255, +0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0, +254,255,254,255,255,255,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,254,255,254,255,254,255,254,255,0,0, +0,0,255,255,0,0,2,0,2,0,2,0,2,0,3,0,1,0,0,0,2,0,2,0,0,0,1,0,2,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,0,0,1,0, +1,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,255,255,255,255,0,0,254,255,254,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,254,255,254,255,254,255,255,255,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,254,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,254,255,255,255,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,2,0, +1,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255,0,0,1,0, +0,0,255,255,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,0,0, +1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,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, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +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,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0,0,0,255,255,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,1,0,1,0, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,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,1,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +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,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,255,255,255,255, +1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,0,0,255,255, +255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,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,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/gravel3.pcm b/src/client/sound/data/gravel3.pcm new file mode 100755 index 0000000..dc87988 --- /dev/null +++ b/src/client/sound/data/gravel3.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_gravel3[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,240,255,243,255,25,0,44,0,18,0,1,0,1,0,253,255, +237,255,228,255,255,255,14,0,2,0,8,0,254,255,230,255,229,255,210,255,192,255,223,255,254,255,238,255,236,255,59,0, +117,0,71,0,47,0,77,0,76,0,75,0,104,0,95,0,26,0,238,255,202,255,92,255,60,255,195,255,65,0,127,0, +173,0,210,0,123,0,110,255,1,255,41,255,135,254,126,254,117,255,125,255,124,255,46,0,80,0,97,0,158,0,28,0, +87,255,119,255,34,0,195,255,99,255,117,0,13,0,38,254,192,254,129,0,170,0,28,0,146,255,248,255,182,0,248,254, +58,252,139,252,186,254,85,255,127,255,150,0,240,255,173,254,99,0,13,2,49,1,239,255,33,254,41,252,179,251,228,251, +110,252,103,253,139,254,104,0,225,1,143,2,169,3,195,3,206,1,69,255,20,253,130,251,195,250,30,251,24,252,210,252, +51,254,144,255,37,255,111,255,129,1,119,2,171,2,135,3,125,3,67,2,247,1,33,3,107,3,146,2,104,3,125,4, +106,2,127,0,156,2,112,5,98,5,20,3,132,255,230,253,49,1,45,3,135,255,164,254,52,4,161,8,126,7,212,3, +228,3,187,6,41,4,102,255,91,0,92,3,173,4,152,3,177,255,151,254,40,1,16,2,197,1,88,1,137,255,240,251, +112,248,128,249,22,252,46,252,9,255,181,0,57,248,204,239,48,250,232,18,249,23,217,4,42,7,12,28,162,16,253,244, +138,242,136,249,238,246,134,240,30,239,177,250,117,5,89,255,142,249,53,2,52,13,142,13,77,4,34,0,99,5,70,4, +116,250,210,245,89,248,1,250,111,248,15,250,30,1,166,3,243,254,176,253,250,1,184,3,75,1,47,0,112,2,36,5, +41,5,99,0,168,250,218,251,36,1,7,2,175,255,167,254,247,254,205,253,114,250,142,250,175,255,15,2,253,254,236,251, +195,252,177,255,205,0,33,2,217,6,43,9,81,4,179,254,253,254,46,2,120,3,61,3,232,1,68,0,6,1,25,2, +143,0,37,255,27,1,213,5,77,7,11,3,244,2,193,9,80,10,89,1,193,249,101,247,245,247,80,254,249,6,153,4, +179,250,4,251,172,2,18,2,75,251,204,250,16,1,188,4,45,5,220,6,1,5,154,255,218,254,64,0,166,254,204,252, +13,253,178,255,242,1,42,1,108,0,23,1,176,1,158,1,114,1,189,3,107,4,19,254,55,249,24,252,139,255,63,254, +4,250,131,249,130,254,31,255,66,249,66,246,205,247,168,252,223,4,134,7,251,255,4,249,43,249,243,250,29,251,221,251, +179,254,157,0,170,252,206,245,107,244,204,248,250,251,48,251,183,251,33,1,18,5,185,1,84,252,197,252,149,0,153,255, +46,252,0,253,177,254,168,253,165,251,116,250,197,250,123,249,206,248,95,254,99,1,53,252,123,249,96,253,141,3,198,6, +98,1,189,247,243,243,240,248,45,2,199,7,250,6,138,4,144,4,248,3,153,252,231,243,249,244,174,252,190,0,242,253, +240,250,222,255,254,5,161,4,251,1,240,0,99,254,32,254,115,2,189,7,187,9,106,7,212,5,7,6,39,1,69,249, +217,248,62,253,63,252,202,248,131,249,9,253,189,1,116,4,199,2,249,2,45,7,35,8,66,5,106,6,191,10,210,5, +122,247,86,240,160,244,30,249,137,250,19,253,141,255,30,1,141,7,2,16,97,15,202,8,117,2,105,249,119,243,36,246, +122,251,178,0,72,3,229,0,210,253,207,250,52,248,1,250,195,255,196,5,231,6,76,3,206,0,185,253,58,250,119,253, +98,3,30,3,227,254,116,254,184,2,242,4,47,5,190,6,143,5,121,3,210,3,111,1,183,253,95,252,1,251,33,250, +88,249,224,247,205,248,227,251,179,255,224,1,210,255,206,254,214,1,234,3,106,3,110,1,214,254,131,253,38,254,6,0, +9,0,231,252,188,250,162,251,248,253,222,254,143,252,132,251,125,255,154,5,71,10,18,10,140,5,170,2,67,1,156,253, +52,251,61,253,16,255,78,254,173,255,92,1,169,252,245,246,178,247,185,250,239,252,123,0,130,4,184,6,211,7,193,9, +94,10,242,6,190,2,48,1,24,2,191,3,145,2,108,254,112,252,230,254,208,0,189,252,13,248,116,250,252,255,239,3, +132,5,222,2,194,0,57,3,198,4,59,4,91,5,144,6,203,4,21,1,232,253,96,251,217,250,4,254,89,0,133,255, +108,254,247,252,32,253,200,0,209,2,50,0,106,251,31,249,239,250,180,250,32,247,231,247,162,253,247,0,45,0,135,1, +229,5,30,6,66,3,61,3,136,3,147,0,209,251,125,249,77,251,201,252,114,253,192,0,52,4,125,5,180,5,200,4, +231,2,34,2,159,4,229,7,134,7,214,3,35,255,103,252,122,253,248,0,122,6,140,10,22,9,117,6,112,5,65,3, +245,0,20,2,28,5,193,3,249,255,40,1,251,2,4,1,212,255,107,0,77,1,148,2,128,4,33,4,35,255,30,0, +111,9,61,12,245,10,41,14,210,13,67,7,142,0,0,254,63,254,98,250,4,245,200,245,106,249,236,246,31,243,108,3, +148,28,226,24,96,10,98,20,123,33,102,27,180,9,181,240,17,220,98,226,71,252,216,255,42,232,208,226,39,246,167,1, +229,2,208,4,162,7,138,8,70,4,90,1,72,4,88,8,176,11,163,9,212,2,238,252,135,243,37,235,238,238,188,249, +59,1,148,1,218,255,131,0,255,253,67,250,108,250,10,251,173,254,8,5,86,6,202,4,38,5,250,5,130,3,104,254, +147,255,58,5,146,3,1,254,45,253,206,254,215,254,147,254,73,1,112,4,208,3,203,1,243,0,162,2,172,5,20,3, +159,252,183,251,215,254,109,0,102,1,63,2,111,1,134,255,57,253,24,250,175,248,80,252,30,2,135,4,200,1,211,252, +102,250,62,250,213,248,163,247,87,249,62,252,232,254,78,1,117,1,30,0,62,1,0,2,150,254,121,252,107,254,236,0, +88,3,69,3,118,255,60,255,91,4,96,6,58,4,19,4,253,3,185,0,128,255,81,1,85,1,208,255,93,254,37,254, +183,255,40,255,147,252,133,252,105,254,93,255,53,253,26,248,201,244,7,248,17,1,229,6,194,4,224,2,197,3,199,3, +8,5,27,4,156,253,5,248,4,246,72,247,117,251,218,254,47,3,113,9,13,12,99,10,190,5,125,255,79,254,222,1, +87,0,143,248,239,244,194,248,235,250,28,250,112,253,161,0,57,255,92,0,49,4,107,4,159,2,80,0,77,252,192,250, +52,255,49,7,36,15,111,18,241,12,67,3,233,252,210,247,51,241,31,238,209,239,168,241,165,242,193,244,108,249,98,255, +213,2,107,2,49,255,62,251,245,248,189,246,242,243,12,244,238,245,161,245,89,244,118,247,116,0,233,5,37,2,146,255, +209,3,204,8,175,11,152,10,10,6,118,4,16,6,254,6,186,6,26,5,198,3,131,0,130,248,89,246,41,254,51,0, +219,247,27,245,221,251,125,248,218,232,139,237,62,10,45,21,247,5,116,253,88,5,37,13,225,8,73,253,209,248,49,250, +255,245,122,241,136,245,98,253,75,2,71,3,92,0,168,249,84,246,28,254,196,7,189,7,54,5,72,7,225,7,31,3, +179,253,152,254,226,4,23,7,181,3,19,2,190,3,116,5,48,4,255,254,113,251,189,254,224,4,231,6,206,3,230,255, +158,253,97,251,11,250,115,251,150,252,163,251,44,251,168,250,36,248,136,248,221,0,240,9,194,9,108,5,197,5,41,5, +219,253,243,245,51,243,9,246,230,248,203,246,213,248,241,1,91,3,255,253,37,0,217,10,119,23,225,24,144,9,112,254, +255,0,224,254,210,243,69,237,93,239,243,244,174,250,108,1,106,10,105,21,197,28,208,23,166,11,218,2,28,251,200,243, +104,241,207,242,28,248,242,254,22,0,112,253,14,253,206,254,227,0,136,2,255,3,116,6,42,9,246,8,17,6,122,5, +156,8,232,13,235,18,127,17,238,11,4,10,104,5,56,247,58,231,94,222,215,221,15,225,235,228,150,235,164,246,37,4, +96,13,159,14,115,14,160,16,81,18,36,16,134,8,245,2,29,4,147,5,220,5,251,6,102,8,83,5,72,246,192,229, +191,227,161,235,68,245,32,254,5,5,111,9,208,10,234,19,187,32,22,21,247,248,30,236,60,237,83,238,128,238,162,248, +129,12,193,13,246,247,148,236,137,248,91,17,125,43,208,53,15,37,183,8,189,252,121,251,216,236,162,220,208,219,135,224, +118,229,73,235,218,240,149,250,126,8,1,21,122,27,60,28,71,29,109,30,97,25,253,9,41,244,100,229,231,224,198,223, +65,228,245,236,250,240,195,241,110,246,138,253,164,254,103,251,58,0,118,15,103,36,105,62,220,89,47,106,160,92,22,45, +133,240,207,187,138,152,193,138,85,142,122,156,44,179,102,212,49,252,6,28,227,46,6,61,61,72,10,77,79,72,130,56, +93,35,163,14,210,250,6,233,11,220,180,214,138,217,14,226,55,237,183,249,220,5,161,10,94,6,119,4,221,10,3,18, +35,16,84,8,53,11,11,21,46,17,155,6,151,3,63,1,70,252,108,246,168,237,9,230,134,230,226,240,216,251,3,253, +175,250,171,253,1,3,126,5,56,7,54,15,191,22,204,18,67,14,9,18,229,23,11,31,3,37,223,34,170,18,54,240, +221,202,56,183,79,180,130,187,127,202,15,227,244,7,70,44,245,64,226,68,53,62,50,57,224,51,81,31,202,255,156,220, +2,192,61,195,50,212,34,200,105,184,107,213,234,13,12,48,162,51,87,59,200,72,6,53,166,10,243,244,40,239,233,229, +166,219,249,209,24,206,196,216,148,239,222,7,56,21,197,23,207,24,108,20,57,4,230,241,70,238,197,251,244,6,112,5, +231,3,127,6,82,5,231,253,45,243,221,237,200,241,239,248,140,1,167,9,126,14,102,19,246,22,11,27,99,35,132,27, +228,246,131,211,163,202,223,210,212,221,4,231,165,239,248,249,81,2,76,4,222,3,71,9,208,22,116,35,26,36,86,26, +197,15,86,6,65,249,211,232,182,221,222,224,215,237,156,247,206,255,23,13,83,20,74,17,215,19,232,27,198,24,79,10, +161,251,62,238,67,224,191,216,149,223,195,239,171,253,195,4,33,9,38,16,200,22,0,21,188,13,114,12,30,16,216,10, +247,251,17,242,150,239,61,239,96,244,22,251,15,251,144,250,223,255,76,6,92,9,94,10,205,13,133,17,253,15,200,13, +24,14,78,11,66,4,126,250,132,238,30,229,65,226,135,227,36,229,57,236,153,0,102,22,127,27,65,23,150,25,18,29, +149,18,177,253,151,243,19,249,154,252,217,247,118,243,170,243,98,247,254,249,171,248,199,247,11,249,213,250,144,254,128,4, +215,8,31,7,187,2,120,3,207,5,124,4,95,4,130,6,198,6,72,4,0,1,212,255,220,252,37,245,252,241,82,245, +232,246,239,247,14,252,229,0,33,4,203,4,251,3,151,2,47,0,236,253,35,252,35,251,110,252,214,254,45,0,11,0, +118,255,21,254,44,250,195,247,174,250,47,254,50,0,231,2,4,5,190,5,47,5,51,3,87,1,227,0,87,2,12,3, +15,1,93,1,191,3,110,1,161,252,105,250,86,249,230,248,246,251,39,3,127,9,219,10,37,10,32,9,198,5,82,1, +222,253,200,251,144,251,58,252,114,252,38,253,160,254,111,254,184,251,54,250,68,253,131,3,35,9,210,11,28,12,29,11, +232,8,253,4,172,255,246,251,112,251,21,253,98,2,218,8,49,9,111,4,108,254,89,245,160,236,60,237,208,247,45,2, +204,4,102,4,199,5,9,5,185,1,134,1,193,4,118,6,196,5,69,5,204,3,75,255,121,249,168,244,230,242,6,244, +215,245,24,250,168,0,146,4,168,6,86,10,128,13,41,13,59,8,5,255,123,244,34,238,75,239,113,243,228,245,173,248, +169,252,215,0,156,5,37,10,151,14,210,16,93,11,52,1,41,250,45,248,205,249,162,250,26,250,208,254,208,4,22,3, +39,255,125,253,195,249,160,246,121,247,34,250,99,255,20,6,206,9,245,11,252,14,111,16,183,14,134,10,101,2,110,246, +207,237,107,237,34,240,32,242,0,247,11,0,47,8,10,11,71,9,161,4,36,254,114,248,44,245,71,245,192,250,42,3, +235,9,236,13,233,13,128,9,57,3,24,252,111,245,62,242,242,242,71,246,168,251,198,1,1,5,52,3,214,255,218,253, +12,253,119,255,198,5,179,12,105,16,194,12,103,3,178,252,227,252,181,3,33,14,200,19,169,14,145,0,128,239,17,226, +209,218,61,217,12,222,141,233,145,251,120,17,24,35,225,43,201,45,214,38,18,23,35,9,206,1,218,249,46,240,129,233, +201,227,106,223,220,228,230,243,248,0,239,7,72,13,185,15,186,11,230,4,193,254,130,248,33,244,225,244,10,249,124,252, +48,253,252,252,90,0,168,6,175,10,61,13,78,16,9,16,187,10,58,1,171,246,121,242,157,242,99,239,108,237,197,242, +129,253,45,10,41,18,112,17,118,12,115,6,40,255,20,249,6,248,158,250,17,252,227,251,212,250,38,249,113,250,77,254, +104,0,167,0,245,0,250,1,52,1,109,0,88,6,74,9,12,0,102,252,117,5,166,8,217,0,217,249,199,250,72,255, +200,255,110,0,40,6,67,9,150,4,200,251,197,243,78,239,9,238,131,240,73,246,37,253,75,6,142,14,224,14,185,8, +193,1,70,254,131,255,233,255,175,253,226,254,89,4,204,8,35,9,160,5,11,0,101,250,170,246,38,246,212,248,221,252, +255,254,121,255,6,2,111,6,125,9,36,10,122,8,74,5,223,1,245,253,79,250,231,249,12,252,253,252,54,254,135,4, +149,14,104,21,201,21,123,16,168,2,20,237,93,219,251,211,249,211,57,222,25,246,192,19,220,43,229,54,99,49,180,31, +32,13,196,255,159,244,13,234,88,226,68,223,99,226,227,236,204,252,129,8,30,8,53,4,211,4,57,4,145,0,238,255, +58,7,157,16,229,11,162,251,69,243,247,243,203,245,38,250,171,1,60,9,250,13,128,15,36,13,140,4,226,250,192,246, +11,246,88,246,156,247,127,250,68,255,103,2,152,2,219,1,119,1,253,2,239,5,209,8,49,8,19,0,80,247,39,245, +168,245,69,248,136,0,224,11,0,21,213,25,21,27,229,19,137,0,229,235,240,224,193,224,222,233,96,246,121,0,46,7, +244,8,13,7,34,6,82,7,96,8,232,7,195,7,7,10,179,13,89,14,160,6,249,249,183,241,4,239,236,238,67,241, +160,245,247,251,209,3,214,9,89,10,250,5,32,1,72,254,154,254,11,2,198,5,40,8,124,4,201,246,188,232,41,229, +9,239,186,5,119,29,238,39,72,34,123,17,160,255,51,243,230,234,156,229,78,230,224,245,124,17,79,37,120,38,132,9, +56,204,195,160,111,184,55,254,192,58,201,80,155,80,250,78,125,62,250,26,51,249,175,221,81,198,67,185,62,184,88,197, +210,220,35,240,44,252,154,7,230,14,147,12,243,6,75,7,137,13,121,17,195,15,3,15,71,16,249,12,117,5,184,251, +102,240,50,234,27,239,74,0,190,20,103,25,168,9,199,242,92,226,247,224,162,235,137,250,56,12,135,28,181,36,33,33, +79,16,214,247,26,228,65,226,148,242,9,3,169,9,68,12,24,12,183,7,188,1,209,253,250,254,145,2,63,3,35,0, +172,252,118,251,3,250,88,247,123,243,244,236,9,237,161,248,227,1,251,5,154,14,73,23,140,23,19,19,83,16,226,10, +247,252,137,241,249,241,110,245,249,246,152,250,97,254,202,254,171,253,236,254,101,2,195,3,213,1,68,255,61,254,155,254, +247,254,184,255,147,255,76,252,92,251,20,0,82,2,191,254,205,250,244,246,71,243,181,245,6,255,18,10,132,19,228,21, +55,13,125,0,23,247,223,238,135,229,214,224,1,234,232,255,76,19,136,24,204,19,60,14,47,9,160,4,233,6,3,14, +100,12,12,0,86,243,161,235,86,233,165,238,38,255,194,20,219,29,91,21,41,8,254,254,54,251,93,253,141,0,150,253, +134,245,94,240,169,241,249,245,235,249,102,251,139,249,236,247,130,251,228,3,115,11,193,14,245,14,185,12,59,8,8,3, +154,253,16,249,129,249,223,255,244,4,212,2,79,254,206,252,40,252,235,250,189,249,210,247,241,247,111,255,159,13,68,27, +174,32,203,25,233,8,51,246,132,232,54,226,17,228,178,235,153,244,17,254,37,8,122,14,100,14,79,12,43,12,69,12, +142,10,221,4,186,249,42,239,53,237,239,242,199,248,158,251,15,255,153,2,151,3,58,6,99,11,129,14,143,13,23,7, +202,255,14,254,42,252,226,245,162,240,122,239,244,241,252,247,6,3,192,15,35,21,67,21,172,21,167,14,228,252,185,234, +101,226,30,229,147,236,56,246,180,255,253,1,239,0,73,3,155,4,207,3,91,5,47,9,195,9,10,2,252,248,33,248, +103,252,240,0,80,6,8,14,87,20,143,16,185,6,255,1,195,254,145,248,43,245,159,245,107,245,129,244,25,247,147,252, +241,255,225,2,60,8,237,11,208,10,25,6,16,0,70,249,220,242,242,241,170,245,177,247,156,249,206,253,106,1,146,5, +13,14,84,25,9,32,255,28,90,18,79,4,203,246,166,235,232,225,76,221,215,225,65,234,161,239,64,242,39,245,153,249, +177,6,38,30,171,37,93,18,169,10,203,28,143,39,178,31,151,11,254,236,225,219,28,225,166,220,225,205,90,215,251,246, +41,21,112,45,156,56,143,42,28,13,232,246,199,239,85,237,150,233,242,236,239,249,74,6,148,10,172,7,235,0,144,245, +212,230,117,224,143,232,199,247,140,9,129,26,134,34,168,31,13,22,9,7,139,243,170,226,190,221,235,227,203,235,200,240, +198,243,118,247,165,0,192,16,116,34,79,45,15,45,207,39,169,33,248,16,130,243,204,217,223,204,64,199,88,200,130,211, +90,231,60,1,109,27,73,45,155,53,214,54,220,43,0,19,42,249,194,233,91,227,194,225,56,227,163,232,176,245,253,6, +34,18,186,20,86,20,97,20,74,20,136,15,89,3,220,246,11,243,119,246,149,248,69,245,194,240,53,239,0,240,197,244, +51,255,166,8,105,11,178,12,185,17,30,21,103,16,216,7,3,2,53,252,170,243,140,237,238,237,113,243,31,251,193,1, +184,5,95,7,43,7,114,5,92,2,197,253,208,247,37,243,239,243,230,247,186,248,57,247,83,247,60,250,70,1,221,10, +135,19,107,26,253,27,83,20,221,7,149,252,62,242,21,233,52,229,210,230,88,234,154,239,121,246,57,254,190,9,231,21, +185,25,3,22,41,16,18,8,252,254,202,247,109,243,169,244,132,253,50,10,249,20,46,26,89,23,60,14,134,5,109,254, +114,244,223,233,253,228,113,230,215,234,210,239,68,247,224,1,105,11,78,20,184,29,165,32,137,26,197,16,42,7,7,0, +185,249,196,242,105,241,116,245,227,245,199,243,14,246,82,252,206,1,170,1,101,252,73,249,245,251,236,0,209,3,23,3, +9,1,178,255,136,254,136,255,240,3,244,6,254,6,84,8,197,9,186,6,144,1,158,253,109,248,47,243,43,244,162,249, +238,252,186,254,2,1,159,1,22,1,236,1,12,4,8,6,162,6,183,5,176,3,193,0,53,254,34,253,118,253,249,253, +142,252,12,251,50,252,187,252,145,251,232,252,142,1,131,6,194,7,207,4,0,3,19,3,153,0,213,252,240,252,164,1, +55,5,157,4,172,4,114,5,236,2,92,0,96,0,29,1,179,0,204,252,84,249,68,251,78,253,154,253,61,2,57,8, +74,7,21,1,68,253,29,254,199,255,150,254,249,250,211,248,71,251,224,0,187,4,206,4,37,5,221,6,253,4,196,0, +212,254,169,252,30,249,156,248,202,252,31,2,33,5,164,8,123,14,216,15,92,10,207,3,53,254,10,248,117,240,181,232, +191,229,225,234,109,245,13,0,6,8,230,13,251,16,112,16,167,14,213,12,134,8,150,1,180,253,0,0,171,3,163,5, +206,5,209,1,68,252,129,249,208,246,184,243,122,243,75,244,5,245,24,249,12,0,72,5,137,8,110,11,30,11,191,6, +3,3,63,2,159,1,156,254,82,251,252,249,227,248,8,249,27,252,79,254,78,254,91,255,209,3,80,10,99,11,193,4, +217,254,53,252,219,248,217,245,234,245,200,249,20,255,58,1,80,0,49,255,83,255,148,2,223,7,198,10,10,9,182,3, +122,0,109,4,120,8,153,3,136,251,41,248,205,247,181,248,169,249,206,248,227,249,61,254,73,1,55,2,131,1,254,254, +97,252,180,248,105,244,170,243,189,246,67,253,126,7,192,16,229,18,200,12,118,6,124,6,14,4,201,249,34,241,110,237, +38,235,156,235,2,240,144,247,4,1,114,11,207,21,91,25,77,17,38,4,116,250,36,246,11,243,78,239,98,240,157,246, +130,252,29,4,230,15,222,25,115,28,14,24,159,15,36,5,130,250,209,241,40,234,183,227,109,227,213,232,152,236,24,238, +124,241,170,246,31,255,140,10,165,17,80,20,158,22,68,22,122,20,191,17,170,11,159,7,22,5,64,254,67,248,122,245, +240,242,104,242,249,242,227,242,60,242,110,241,16,245,77,0,85,14,161,16,74,3,58,255,150,10,43,11,149,3,238,4, +233,5,77,1,104,255,219,2,86,5,92,254,49,245,26,244,137,246,58,252,224,4,170,8,126,9,190,10,57,10,229,7, +32,4,239,1,248,1,124,0,108,254,13,252,24,250,137,251,27,252,167,250,160,251,220,252,247,252,76,254,156,0,43,2, +26,2,192,3,176,6,212,3,220,254,222,1,60,10,130,14,176,12,22,10,28,8,150,3,38,254,204,249,54,245,237,241, +53,242,111,245,125,248,15,249,25,249,88,250,114,253,42,2,95,3,53,0,199,255,88,3,237,5,213,5,2,5,199,5, +26,6,133,0,254,247,132,246,128,250,80,251,189,252,90,2,36,4,138,1,81,0,205,253,9,250,111,251,59,255,87,253, +88,248,139,247,186,249,98,251,245,252,90,255,96,4,175,10,241,12,27,11,192,7,149,3,173,255,122,251,202,248,56,249, +73,246,227,240,78,243,5,250,227,251,144,252,20,0,53,3,29,4,54,3,249,1,163,2,44,4,70,4,105,3,89,2, +125,1,22,1,237,255,166,254,72,255,43,0,96,255,202,254,241,255,21,1,235,255,147,253,155,253,146,0,247,2,170,1, +216,253,121,251,8,251,132,249,134,247,183,248,49,253,43,2,204,6,226,11,49,16,71,16,233,10,248,2,83,252,144,248, +28,246,70,243,250,241,184,244,75,250,183,255,78,3,104,4,145,3,20,3,210,3,198,3,148,2,88,1,177,255,155,254, +227,254,74,254,180,252,90,252,147,253,203,255,221,1,94,3,140,5,179,6,22,4,99,0,96,255,133,255,72,254,11,253, +178,253,165,255,20,2,178,4,89,6,107,5,49,2,162,255,33,255,98,255,45,0,62,1,8,1,188,255,197,254,241,254, +203,0,253,2,127,2,82,0,67,0,206,0,217,255,25,0,43,1,213,0,15,0,167,254,217,252,207,252,12,0,194,3, +101,255,4,248,247,0,255,23,168,34,160,10,120,220,30,207,226,244,42,18,12,4,147,237,252,237,102,0,38,16,71,21, +151,27,188,31,213,16,129,243,121,217,246,207,220,219,127,245,254,16,113,34,128,33,99,22,52,14,107,7,70,252,53,240, +122,234,15,237,24,243,55,248,111,254,66,6,88,9,68,6,39,4,193,6,164,9,150,4,207,247,198,241,74,250,95,6, +182,9,77,2,143,247,75,244,73,250,94,1,114,3,201,2,31,4,44,6,123,5,31,3,76,0,53,252,118,248,231,248, +167,254,239,5,41,10,227,9,28,7,141,4,100,1,231,252,114,250,53,251,37,253,209,254,87,255,251,255,94,1,255,0, +199,254,79,252,184,249,214,247,219,247,143,250,213,255,39,7,87,16,28,23,144,22,205,15,60,3,108,243,215,235,25,238, +60,237,228,233,14,240,84,250,109,254,71,3,227,12,113,18,241,16,196,11,125,6,183,4,126,3,101,255,83,252,25,251, +94,249,111,250,71,0,59,5,227,3,91,254,62,249,134,245,101,244,133,247,205,251,99,253,4,253,169,253,177,0,135,4, +181,7,198,9,220,8,163,5,111,3,173,0,93,251,28,248,245,248,119,248,78,245,185,245,116,251,192,0,175,2,58,4, +64,8,29,13,228,14,245,13,198,12,203,10,110,7,200,0,207,247,109,245,46,247,32,241,164,234,207,238,18,246,147,250, +179,254,38,1,234,0,39,1,177,4,146,8,131,7,195,3,90,2,135,2,178,0,107,253,189,255,89,8,53,13,6,11, +173,5,15,0,183,254,144,255,235,251,228,247,77,249,164,253,95,2,33,6,170,6,90,3,40,251,24,240,112,238,34,251, +159,3,252,253,112,251,22,3,149,8,37,8,237,7,51,12,142,17,193,15,162,8,232,3,35,1,243,253,201,250,5,248, +116,246,232,245,194,245,20,247,127,251,188,1,131,5,72,5,48,2,28,255,80,0,104,1,25,252,74,247,236,249,85,0, +59,3,198,1,113,6,45,13,156,1,4,240,24,245,114,5,218,7,76,255,36,250,245,251,51,255,203,0,176,3,222,8, +218,12,90,11,132,3,125,249,42,242,50,241,178,246,63,253,165,1,186,5,60,9,122,9,64,6,118,1,235,252,191,251, +142,254,103,255,199,253,107,0,19,5,76,5,101,3,82,3,181,4,17,5,234,2,14,1,126,1,207,0,152,253,61,251, +238,248,135,243,243,241,119,250,122,3,90,5,202,5,3,7,219,4,98,0,130,255,201,2,42,4,37,3,202,3,80,4, +200,2,235,255,72,252,182,250,103,250,126,248,119,248,157,251,56,255,228,2,53,5,149,6,187,8,123,8,178,5,132,3, +145,0,187,253,163,254,31,1,108,1,104,255,167,251,239,246,6,244,88,245,26,249,208,251,88,253,163,254,147,255,76,2, +215,7,220,10,215,6,110,255,226,251,114,254,167,1,77,2,73,4,146,6,226,4,44,2,152,0,211,255,60,2,169,4, +232,1,50,253,102,251,11,253,16,0,117,2,132,3,128,1,211,253,203,252,86,252,170,251,72,255,185,3,254,2,154,255, +125,254,133,1,164,3,188,254,44,249,5,251,223,255,130,2,242,3,43,4,27,2,5,0,152,0,193,1,12,1,252,0, +123,2,78,2,108,0,168,255,135,0,116,1,57,1,12,0,10,254,166,251,56,251,40,254,113,3,22,8,111,8,13,6, +213,4,245,2,124,255,127,253,129,252,106,251,137,251,171,251,88,251,113,254,166,6,121,15,213,19,245,17,223,8,79,252, +189,245,181,245,190,243,165,238,158,235,252,238,209,247,231,252,253,252,183,0,82,3,89,2,1,12,211,24,53,20,84,8, +42,0,249,243,52,236,184,240,39,246,7,252,175,2,171,255,150,250,169,255,141,7,70,10,14,8,158,3,217,255,53,251, +236,245,181,244,157,247,7,251,225,255,11,10,117,17,89,7,234,244,197,241,210,254,115,10,163,8,245,253,159,248,169,251, +163,255,209,0,48,255,28,254,115,255,55,255,18,253,20,252,117,252,216,253,92,255,19,1,10,4,123,6,173,6,225,6, +62,11,171,15,39,7,30,243,177,230,215,234,127,246,141,254,216,1,250,3,44,3,239,0,30,4,207,10,154,16,149,21, +89,20,121,7,217,244,242,230,194,226,25,232,85,244,135,0,7,6,90,6,56,7,232,10,127,13,35,10,44,3,30,253, +213,248,180,245,157,243,6,246,158,251,62,252,11,251,92,253,163,253,79,253,43,255,167,252,121,246,245,242,165,245,113,254, +112,4,220,3,80,4,171,7,109,11,49,15,144,17,98,17,177,12,20,4,56,252,196,246,191,244,192,245,68,246,78,249, +194,0,198,4,72,3,133,2,179,3,232,3,48,3,2,3,245,1,107,254,168,250,57,250,124,253,171,255,192,253,98,253, +146,1,69,4,139,3,226,2,21,2,79,0,132,255,68,0,179,1,55,4,164,6,1,6,155,3,70,3,152,4,155,4, +105,2,108,0,13,1,221,2,240,3,144,3,99,0,19,252,215,250,51,254,195,3,41,6,231,3,242,1,192,0,116,252, +72,247,213,245,209,247,194,249,214,249,136,250,164,253,175,0,127,2,123,4,139,6,206,7,7,8,210,6,119,4,146,2, +150,1,105,0,127,255,124,254,151,251,107,250,82,254,187,2,23,5,235,5,160,2,52,254,100,253,234,250,196,244,227,243, +189,250,159,254,35,249,156,243,153,245,152,248,58,250,29,255,39,4,248,6,118,10,236,11,81,8,83,2,181,253,179,255, +215,9,174,17,32,12,24,254,12,244,137,240,102,241,45,247,170,253,180,255,91,255,243,254,98,255,92,3,245,7,91,6, +11,1,228,255,114,2,45,3,176,0,235,253,25,255,138,3,154,5,74,5,69,6,73,7,147,6,23,4,107,255,125,250, +39,248,214,248,147,250,140,251,90,253,255,0,250,3,79,5,216,5,253,5,192,5,54,4,171,0,17,251,30,246,186,247, +187,254,111,2,12,1,48,0,209,1,189,2,72,1,147,255,99,254,48,253,143,254,150,2,18,3,221,253,130,249,173,249, +128,251,175,254,191,2,56,3,35,1,41,0,83,255,166,255,220,1,213,2,64,3,182,4,115,5,168,5,64,6,27,6, +74,4,211,0,80,253,126,251,122,250,117,249,128,250,247,253,9,0,181,255,7,0,234,0,18,0,243,253,182,252,108,252, +69,251,72,251,74,254,182,255,13,0,122,4,57,8,204,5,153,1,59,0,200,0,230,255,0,254,246,254,184,0,29,255, +40,252,84,250,239,249,0,251,73,252,42,254,107,2,245,5,2,4,116,255,78,253,45,252,237,251,200,253,243,253,238,253, +123,2,3,6,161,3,14,0,117,254,105,253,87,253,233,255,186,1,53,255,82,253,42,255,108,0,139,255,11,253,202,250, +192,252,82,0,139,1,62,2,87,2,78,1,66,2,163,5,94,7,14,5,164,1,198,254,108,251,130,251,165,255,178,0, +192,254,182,254,51,255,212,254,78,255,180,0,94,1,158,0,237,255,9,0,207,255,210,254,234,253,176,253,184,252,219,250, +38,251,92,252,133,251,186,251,254,253,240,254,130,255,171,1,137,3,115,3,26,2,69,1,213,1,57,2,112,0,134,254, +181,0,154,5,140,7,29,5,167,3,183,7,39,9,60,254,14,242,86,242,64,247,67,247,107,245,222,245,174,250,174,1, +169,3,72,0,184,254,232,0,206,2,104,3,217,3,218,1,149,253,139,252,27,255,51,0,64,255,130,255,108,2,183,6, +24,10,132,10,166,6,31,1,98,254,224,252,194,249,132,248,187,252,225,3,184,7,11,6,14,3,43,255,19,250,239,250, +78,255,98,252,201,247,69,249,181,249,109,248,75,252,179,1,131,3,26,4,122,4,69,2,122,253,212,249,52,251,188,0, +58,5,104,6,154,6,237,5,107,3,222,1,114,2,121,2,125,0,150,253,118,252,183,253,34,255,204,0,156,2,208,2, +207,2,119,3,200,3,152,4,207,4,130,3,177,3,219,4,37,4,157,2,109,255,194,248,180,243,237,243,239,245,153,249, +141,255,21,2,253,255,162,253,201,251,125,251,135,253,152,254,20,254,147,255,29,5,180,10,106,10,23,7,230,6,75,9, +2,10,237,4,215,0,206,7,29,11,122,253,237,242,204,246,174,250,219,251,74,255,67,255,168,251,178,252,155,1,168,3, +192,2,54,1,50,255,9,255,190,0,141,0,152,254,82,251,125,246,38,245,105,249,241,253,213,255,110,255,185,251,2,246, +213,242,11,243,44,244,151,247,159,255,92,10,66,20,30,26,89,27,43,25,149,18,95,10,248,6,12,6,184,1,195,252, +14,252,140,254,55,0,162,254,106,250,246,244,72,239,251,235,212,236,241,238,32,240,211,242,171,246,156,248,196,251,109,3, +221,9,194,10,41,13,110,21,104,25,235,18,70,10,85,3,158,253,206,253,75,255,237,250,168,248,175,252,178,255,208,255, +163,253,48,249,131,246,63,246,100,246,221,247,107,250,10,255,144,7,142,14,154,13,156,6,239,255,13,254,60,0,77,3, +18,6,93,6,89,2,247,252,250,247,22,243,61,241,11,243,184,244,38,245,121,245,179,246,173,250,116,0,50,3,156,1, +74,0,100,2,7,7,34,13,4,19,124,22,145,23,70,23,17,23,214,23,253,22,4,18,187,9,191,0,200,250,78,248, +123,245,165,241,94,239,200,238,110,238,52,238,191,238,52,239,234,238,195,239,23,243,112,248,201,254,79,4,98,9,138,15, +156,20,125,22,12,22,254,19,178,17,139,16,173,14,209,10,184,6,35,2,129,252,128,249,116,249,239,246,46,242,243,239, +79,240,113,242,156,246,161,249,187,248,230,245,11,244,34,244,111,246,139,249,27,251,67,253,1,2,35,4,140,1,196,255, +36,0,184,255,82,255,102,1,233,4,193,6,225,6,234,6,171,6,115,6,97,5,41,2,202,0,211,2,32,3,141,0, +143,254,201,254,242,255,28,255,132,253,252,253,3,253,93,249,84,248,164,249,178,248,149,246,207,246,145,249,5,253,153,255, +19,1,15,2,146,2,171,2,221,2,67,3,18,4,27,5,52,5,105,4,134,3,130,2,204,2,94,5,108,7,240,6, +14,5,112,2,145,255,215,253,47,253,75,252,34,251,64,251,107,253,155,255,252,255,221,255,124,0,210,1,144,3,43,4, +252,3,207,4,120,4,93,2,122,1,225,0,3,0,72,0,55,255,1,253,103,251,67,248,1,249,56,3,77,11,6,9, +62,6,224,6,157,2,53,249,239,242,181,242,250,245,187,250,145,255,86,3,169,6,117,10,129,12,128,10,103,7,228,5, +78,3,33,255,95,253,183,254,10,255,140,252,219,250,112,252,171,255,15,3,129,3,59,254,234,248,162,250,56,0,231,0, +205,251,83,250,127,255,61,3,7,4,171,6,38,10,204,10,233,5,145,252,241,245,47,246,246,249,110,252,231,251,135,250, +7,251,51,255,41,5,123,6,2,4,208,4,43,7,175,6,164,4,154,1,42,254,93,252,169,251,232,250,145,250,146,251, +178,253,3,255,194,254,161,254,210,255,200,0,10,0,47,255,237,254,252,253,121,253,253,254,119,1,48,2,207,255,195,253, +73,254,97,254,9,254,230,254,143,254,32,253,5,253,108,253,128,254,80,1,5,3,239,1,17,1,134,1,173,1,173,1, +65,1,20,0,100,0,107,2,151,3,12,3,165,2,117,4,239,5,42,4,112,2,125,1,106,254,170,251,7,251,141,250, +195,249,217,248,69,250,223,254,0,1,229,255,215,0,61,3,25,4,228,3,110,3,147,3,240,4,94,6,86,6,188,4, +146,3,143,4,176,5,5,4,114,0,126,253,163,251,123,250,144,249,72,248,159,247,68,249,147,251,224,250,78,249,216,251, +209,254,223,253,185,253,39,255,50,254,160,253,106,255,85,1,25,3,26,3,213,0,105,0,208,2,56,4,96,2,229,255, +94,0,50,2,66,2,41,1,100,0,143,255,46,253,97,250,123,249,86,248,150,245,80,244,64,245,144,247,3,252,39,2, +75,7,78,8,101,6,245,5,155,6,140,5,134,3,87,2,200,1,152,0,54,0,147,2,234,4,143,5,123,6,149,6, +131,4,181,2,101,1,108,253,193,247,185,245,55,247,216,247,50,249,203,253,89,1,73,0,203,253,43,254,133,0,75,1, +150,254,228,247,75,241,83,241,1,247,131,253,44,3,100,7,100,11,200,14,31,14,222,11,253,11,211,11,247,9,175,8, +99,7,80,4,188,0,110,254,90,252,108,249,222,246,227,245,245,246,254,248,221,249,44,250,91,250,61,248,93,245,15,247, +206,253,228,3,100,6,73,8,54,10,247,9,25,8,204,4,207,0,104,0,102,3,189,4,96,3,90,1,168,255,60,254, +172,252,51,252,154,253,32,254,48,253,95,253,50,253,50,251,107,250,53,250,254,247,157,246,6,248,211,251,81,2,167,7, +141,9,204,12,225,16,143,15,175,9,94,3,35,253,130,248,47,247,144,247,123,250,181,2,211,10,187,9,156,0,218,247, +235,242,203,240,80,242,159,247,222,251,207,251,122,251,34,255,187,4,135,7,28,7,101,7,183,8,68,7,125,3,118,1, +149,1,87,1,208,0,57,1,155,0,129,253,88,250,211,248,220,248,111,250,150,252,179,253,199,251,146,247,236,245,82,247, +188,248,237,251,50,1,134,4,132,5,152,5,7,5,11,5,177,5,167,5,231,4,22,4,137,3,244,2,244,1,50,1, +90,1,246,1,22,2,138,1,194,0,82,255,211,252,81,250,250,248,95,249,47,251,76,253,126,255,137,1,42,2,227,1, +19,2,12,2,174,1,110,2,11,4,48,5,138,5,105,5,172,5,25,6,189,4,21,2,39,0,73,254,130,252,60,252, +179,251,231,249,65,249,94,250,73,252,87,254,133,255,72,0,162,0,59,255,114,253,186,252,202,252,135,255,234,4,153,8, +110,8,154,5,225,1,162,255,41,1,88,6,239,10,69,10,25,5,135,0,103,0,63,2,176,0,190,252,24,250,63,249, +211,251,211,255,192,253,179,247,120,247,54,252,226,253,177,252,75,253,32,254,131,253,5,255,172,2,138,4,27,4,136,3, +151,4,208,5,225,4,197,4,222,6,5,7,128,5,100,5,136,5,1,4,128,0,72,252,202,249,191,249,208,250,8,251, +243,249,7,249,154,248,246,248,238,250,190,252,152,253,245,255,196,3,251,5,218,5,133,5,63,6,125,6,233,4,59,3, +119,3,67,4,163,3,232,2,12,3,5,2,155,255,96,254,169,255,65,2,200,3,163,3,181,2,144,0,173,253,19,252, +225,251,37,252,16,252,221,250,139,250,82,254,162,4,73,8,137,7,228,4,125,2,26,1,231,0,92,1,205,2,81,5, +123,6,160,4,118,1,40,255,140,253,154,251,51,251,64,254,148,0,124,254,5,252,236,252,141,255,70,1,168,255,66,251, +186,248,154,249,86,251,23,252,160,252,89,1,239,9,226,11,141,2,214,247,55,246,219,252,109,1,63,254,58,250,196,250, +55,252,193,252,17,254,176,254,200,252,220,250,57,251,26,252,147,252,158,253,215,254,80,0,220,1,25,2,219,0,18,254, +40,251,124,251,104,255,126,5,47,11,143,11,197,5,186,254,195,251,22,253,173,252,107,249,118,249,165,253,2,2,168,4, +242,5,147,7,202,8,184,7,249,4,128,0,25,251,213,246,229,243,110,243,22,245,58,246,216,247,93,250,199,251,220,252, +203,254,163,1,203,4,58,6,21,6,229,6,193,9,216,12,2,13,40,11,7,11,38,12,30,11,196,6,12,1,222,251, +126,247,128,245,209,246,45,249,142,250,220,249,12,248,176,247,87,248,138,250,92,0,218,5,168,6,79,5,97,5,154,5, +140,2,224,253,69,252,17,253,247,253,20,0,109,4,190,8,227,7,230,0,188,249,90,246,207,246,160,250,75,255,174,1, +212,0,109,255,128,0,95,1,165,255,201,253,128,252,229,251,253,252,117,255,164,4,249,8,118,4,78,253,77,255,208,4, +6,3,15,252,108,247,158,247,62,249,179,248,114,248,26,252,214,0,208,1,119,255,209,253,247,254,129,1,63,3,136,4, +51,7,145,9,190,7,250,2,186,255,200,254,253,254,109,0,196,2,165,3,98,1,194,255,28,2,103,4,71,4,243,3, +124,2,69,0,219,255,4,254,135,248,150,245,45,250,234,0,189,1,2,255,124,255,106,1,83,1,119,1,6,3,135,3, +255,1,82,1,3,3,51,3,119,0,77,255,130,1,71,4,64,5,61,4,216,2,236,1,84,0,235,253,137,251,168,248, +21,246,223,245,6,247,45,250,152,1,191,6,5,4,223,0,171,1,151,0,232,251,227,249,6,0,222,8,152,10,132,8, +90,10,67,13,38,13,190,10,137,7,69,4,161,0,147,254,223,255,173,0,187,254,33,253,166,252,130,250,252,247,177,249, +254,251,217,248,211,245,204,246,40,247,66,248,137,251,60,253,102,255,141,3,82,5,4,4,69,2,125,1,8,2,208,3, +199,6,27,8,21,5,213,0,19,254,196,251,158,250,151,252,3,2,247,7,170,9,30,7,174,3,125,255,34,251,214,249, +114,251,170,252,123,252,211,251,103,251,85,252,99,255,221,2,236,3,212,1,226,254,186,253,230,253,166,253,186,253,2,255, +236,255,208,255,246,255,25,0,7,255,65,254,32,0,36,4,209,7,183,8,93,6,132,3,130,1,170,254,73,252,44,252, +156,251,117,250,239,251,31,254,5,254,218,253,23,255,172,255,106,255,29,0,60,1,80,1,15,1,243,0,14,0,116,254, +9,253,76,253,240,0,74,5,9,5,125,1,28,0,46,0,17,255,235,254,152,255,27,255,137,0,60,3,3,1,123,251, +17,249,100,250,102,252,9,253,17,254,162,1,67,3,225,254,0,249,157,247,155,250,0,253,218,252,4,255,171,4,199,7, +20,7,142,6,168,6,54,6,88,5,178,3,71,2,84,2,236,1,189,0,62,1,204,1,148,255,246,252,147,252,226,252, +231,251,178,250,182,251,32,254,223,254,71,254,84,254,80,254,92,253,188,252,74,253,1,254,22,254,70,254,50,255,172,255, +121,254,70,253,239,253,168,254,171,254,144,0,173,3,119,4,36,3,188,2,100,4,131,6,70,7,144,6,217,4,7,3, +76,2,241,1,130,0,23,254,224,250,116,247,130,246,186,249,108,254,11,1,247,1,1,3,88,3,122,2,177,2,159,4, +136,5,33,4,131,1,41,255,87,255,24,2,219,3,180,3,233,3,195,4,235,4,164,3,212,1,153,0,82,254,127,251, +28,252,134,254,58,255,15,1,50,4,236,3,211,0,163,253,151,250,255,249,165,252,243,254,209,255,79,0,242,255,17,255, +133,254,128,254,234,254,169,254,142,254,234,0,227,3,140,4,52,4,166,4,130,4,60,2,227,255,202,255,121,0,126,0, +38,0,63,255,158,254,91,254,83,252,150,249,108,249,68,251,226,252,71,254,250,255,91,1,35,2,103,2,133,1,184,255, +205,254,166,255,206,0,207,0,170,0,83,1,144,1,195,0,50,255,63,253,242,251,68,251,194,251,76,254,43,0,123,0, +188,1,51,2,78,0,2,255,213,254,213,253,51,252,71,251,192,251,248,252,197,253,251,253,129,254,248,255,240,1,154,3, +253,2,223,255,151,254,118,255,219,254,37,255,89,1,61,1,116,255,128,254,66,254,232,254,96,255,38,255,79,255,36,255, +147,254,247,254,189,0,214,2,231,2,253,0,59,255,222,253,131,253,209,254,153,0,224,1,78,1,92,255,25,255,246,255, +162,255,6,255,81,255,41,0,176,0,117,0,252,255,10,0,23,1,183,1,116,0,124,255,112,0,130,1,108,1,188,0, +210,0,131,1,232,0,127,255,20,254,134,251,59,249,239,249,126,253,95,1,228,2,161,2,201,2,96,2,42,0,254,253, +169,253,33,255,116,1,235,2,99,2,155,1,47,2,47,2,255,0,183,0,224,0,73,0,103,255,179,254,105,255,212,0, +41,0,219,254,103,255,132,0,205,1,47,3,182,2,69,1,36,1,38,1,12,0,77,255,136,255,26,255,91,253,172,251, +214,250,30,251,117,253,131,0,117,1,17,1,62,1,96,1,73,1,23,1,102,255,6,253,39,253,4,0,171,2,158,3, +97,3,10,2,27,0,18,255,147,254,97,253,248,252,88,255,47,2,199,1,250,255,139,0,68,1,107,255,196,253,134,254, +11,0,152,0,91,0,52,0,229,255,214,254,91,253,84,252,250,252,188,254,175,255,95,0,207,1,2,3,62,3,157,2, +223,1,31,1,197,255,252,254,23,255,137,255,152,1,62,3,127,1,102,255,71,255,35,255,250,253,69,252,165,250,226,248, +133,247,179,249,143,255,171,4,51,7,195,9,253,11,10,8,136,0,177,0,236,4,61,2,96,253,217,252,186,253,252,253, +120,253,32,254,137,1,12,3,202,0,5,254,153,250,103,246,227,243,88,244,219,246,119,249,105,253,230,3,203,8,217,10, +118,13,238,15,137,15,170,12,170,8,50,4,205,0,34,0,36,0,88,254,236,252,157,253,7,255,246,255,102,255,159,253, +222,251,202,249,219,247,119,247,230,248,44,252,167,255,177,0,137,255,146,254,66,255,244,0,199,2,21,5,145,6,127,5, +111,3,255,1,188,0,191,255,164,255,101,0,6,1,108,0,162,255,74,0,98,1,13,1,167,255,208,254,107,255,27,1, +253,1,201,0,76,255,33,255,69,255,39,255,118,255,55,0,106,0,108,255,129,254,178,254,30,255,201,255,89,1,129,2, +186,1,169,255,86,254,66,254,255,253,197,253,228,254,37,0,220,255,188,254,52,254,254,254,130,0,242,0,108,0,2,1, +69,2,83,2,112,1,79,0,142,255,109,255,148,254,188,253,112,254,191,254,102,254,36,255,194,255,10,0,247,0,111,1, +33,1,89,0,107,255,221,255,44,1,138,1,120,1,27,2,195,2,180,1,15,0,119,0,31,1,247,255,4,255,12,255, +59,255,176,255,73,0,198,0,173,0,29,0,118,0,216,1,78,3,134,3,129,1,86,255,248,254,46,255,81,255,105,255, +11,255,163,254,59,254,199,253,230,253,66,254,128,254,145,254,125,253,255,251,15,253,142,0,248,2,164,3,146,4,145,5, +78,5,116,3,176,0,168,254,3,254,147,254,254,255,215,255,9,253,149,250,118,250,236,251,238,253,142,255,90,0,180,0, +158,1,252,2,189,2,181,0,168,254,120,252,143,250,17,251,117,253,213,254,146,254,104,254,21,255,89,0,20,2,69,3, +148,3,163,3,152,2,245,0,209,0,229,0,214,255,95,255,105,255,130,254,53,254,134,255,225,255,173,254,165,254,36,255, +94,254,176,254,84,0,41,0,56,255,110,255,10,255,95,254,183,255,77,1,226,0,48,0,62,0,175,255,107,254,175,253, +80,254,173,255,161,0,167,1,79,2,179,1,220,1,154,2,128,1,78,0,59,0,145,255,194,254,124,254,33,254,177,253, +76,253,12,253,74,252,23,251,149,251,179,253,143,255,2,1,70,2,15,4,155,6,114,7,109,5,217,2,3,1,15,255, +160,253,242,253,237,253,166,252,84,253,174,255,46,0,80,255,121,255,111,0,78,0,183,255,78,1,72,3,142,2,234,0, +249,255,61,255,210,254,182,254,14,255,97,255,242,254,122,254,41,254,196,254,170,0,5,1,97,0,104,1,170,1,155,0, +54,1,110,2,89,2,232,1,203,1,141,1,18,1,255,0,77,1,93,1,1,1,238,255,169,254,247,253,17,254,166,255, +28,1,202,0,44,1,53,2,41,1,125,255,15,255,223,255,242,0,166,255,149,253,100,254,22,255,10,253,3,252,191,253, +115,255,222,255,19,0,72,0,82,0,190,0,103,1,184,1,171,1,70,1,253,0,61,1,133,1,51,1,130,0,151,0, +56,1,213,0,21,0,44,0,129,0,33,1,247,1,11,2,128,1,143,0,24,255,197,253,56,253,29,253,230,252,62,253, +27,254,130,253,216,251,61,251,147,251,116,252,103,253,133,253,170,253,133,254,249,255,225,1,86,2,28,1,173,0,202,0, +29,0,130,255,48,255,134,254,103,254,159,255,141,0,240,255,152,255,229,255,176,254,41,253,171,253,101,254,228,253,203,253, +151,254,120,255,56,0,74,0,185,255,237,255,34,1,224,1,115,1,233,0,38,1,11,1,223,255,252,254,235,254,44,255, +139,255,140,255,209,255,37,1,15,2,234,1,8,2,74,2,157,1,176,0,214,0,231,0,147,255,4,255,67,0,172,0, +199,255,31,0,215,1,40,2,223,0,171,0,150,0,36,255,143,255,251,1,148,2,134,1,191,0,157,0,148,0,149,255, +132,254,114,254,116,254,97,254,194,254,242,255,54,1,13,1,0,1,19,2,211,1,177,0,231,0,166,1,29,1,8,255, +221,253,150,254,244,254,134,255,201,0,135,0,245,255,161,0,128,1,77,2,51,2,71,1,241,255,183,250,222,243,66,246, +50,0,108,2,3,255,110,4,6,9,101,255,129,247,59,250,54,250,19,249,168,253,255,255,246,255,168,3,167,6,21,7, +147,9,1,12,140,9,169,5,245,4,78,3,191,253,164,249,4,249,77,248,24,247,241,246,182,247,27,249,240,250,114,252, +200,253,36,0,35,2,213,1,129,1,10,2,16,1,63,0,193,1,249,2,213,2,26,3,90,3,53,2,94,0,94,255, +40,255,104,254,174,253,200,254,67,0,226,255,152,255,162,0,167,0,29,0,201,0,182,0,83,255,189,254,102,254,125,253, +212,253,210,255,130,1,1,2,191,1,17,1,81,0,236,255,116,0,152,1,85,1,232,255,53,0,170,1,220,1,135,1, +141,1,141,1,136,1,23,1,95,0,94,0,190,0,151,0,15,0,6,0,206,0,183,1,103,2,9,3,156,3,36,4, +251,3,84,2,97,0,37,0,9,1,0,1,105,0,137,0,9,1,247,1,10,3,169,2,118,1,4,1,207,0,133,0, +156,0,241,0,237,0,107,0,165,0,201,1,220,1,170,0,232,255,71,0,43,1,190,1,241,1,135,1,70,0,145,255, +199,255,15,0,8,1,19,2,138,1,165,0,73,1,241,2,121,3,43,2,36,1,2,1,237,255,94,254,166,253,79,253, +55,254,213,0,142,1,80,255,94,254,207,254,146,253,239,252,10,254,147,253,231,252,20,255,123,1,225,1,152,2,169,4, +255,4,187,1,114,253,13,251,0,251,71,252,87,254,73,1,154,2,30,1,87,1,128,3,135,3,5,4,210,6,129,7, +159,5,52,4,81,3,142,1,64,254,122,251,158,251,86,252,191,251,156,252,202,254,134,254,24,253,200,253,166,254,128,254, +81,255,222,255,246,254,245,254,238,255,14,0,26,0,2,1,202,1,173,1,54,1,37,1,162,1,245,1,207,0,160,254, +80,253,197,252,255,251,104,251,123,251,23,252,154,252,28,253,50,255,240,1,77,2,131,1,188,2,102,4,220,3,134,2, +190,1,152,0,71,255,247,253,69,252,199,251,188,252,94,253,179,253,113,253,122,252,75,253,239,255,8,2,54,3,143,3, +2,3,142,1,49,255,187,253,203,253,123,253,66,253,80,254,123,255,99,0,102,1,0,2,14,2,131,1,148,0,84,0, +203,0,212,0,47,0,54,255,64,254,47,254,28,255,148,255,85,255,14,255,45,254,116,253,242,254,224,0,146,0,11,0, +185,0,58,0,197,254,198,254,96,255,117,255,19,0,205,0,174,0,88,0,209,255,218,254,251,253,66,253,229,252,16,253, +59,253,243,253,89,255,182,255,99,255,27,0,11,1,239,0,183,255,23,254,202,253,112,254,246,253,161,253,160,254,191,254, +237,253,12,254,53,254,96,253,229,252,109,253,221,253,181,253,79,253,114,252,156,251,61,252,170,253,81,254,214,254,251,255, +243,0,35,1,228,0,233,0,73,1,74,1,95,0,203,254,168,253,167,253,10,254,10,254,152,253,61,253,10,254,103,255, +174,255,122,255,176,255,144,255,28,255,164,254,18,254,128,254,182,255,179,255,177,255,123,1,35,2,207,0,134,1,66,3, +231,1,16,0,170,0,189,0,244,254,163,253,183,253,98,254,134,254,42,254,169,254,194,255,73,0,217,0,155,1,149,1, +145,1,159,2,96,3,138,2,101,1,116,1,187,1,14,1,185,0,4,1,21,0,150,254,78,254,122,254,207,254,8,0, +63,1,145,1,87,1,199,0,197,255,61,255,83,0,131,1,118,1,159,1,115,1,42,0,24,0,139,0,252,255,148,0, +50,1,169,255,217,255,77,3,14,5,212,3,111,3,107,3,52,1,237,255,72,1,245,0,226,254,58,254,140,253,120,251, +246,249,27,251,129,254,156,0,76,0,66,0,135,0,221,255,141,255,136,0,48,2,175,3,124,4,141,4,13,4,133,3, +4,3,231,1,120,0,103,255,172,254,25,254,200,253,21,254,216,254,127,255,4,0,147,0,136,1,165,2,175,2,63,2, +138,2,148,2,2,2,161,1,43,1,107,0,155,255,28,255,145,255,64,0,30,0,67,0,180,1,160,2,43,1,211,254, +207,253,255,253,182,254,165,255,43,0,7,0,78,255,180,254,68,255,19,0,1,0,62,0,72,1,21,2,106,2,21,2, +108,1,188,1,76,2,249,1,155,1,71,1,182,0,134,0,128,1,167,4,98,6,91,1,189,251,27,254,185,2,255,1, +92,255,74,255,0,0,245,254,231,253,202,254,88,255,103,254,79,254,252,255,218,1,229,1,129,0,122,0,194,1,30,2, +141,1,176,0,161,255,9,255,20,255,198,254,243,253,118,254,122,0,92,1,255,0,26,1,37,1,208,0,198,0,165,0, +29,0,97,255,128,254,6,254,183,254,254,255,120,0,131,0,33,1,211,1,85,2,117,2,110,1,81,0,94,0,69,0, +88,255,224,254,225,254,46,254,100,253,169,253,67,254,121,254,95,254,21,254,117,254,37,255,3,255,93,255,126,0,120,0, +236,255,76,0,210,0,205,0,134,0,150,0,243,0,145,0,113,255,211,254,0,255,67,255,11,255,108,254,231,253,245,253, +136,254,194,254,125,254,255,254,231,255,77,255,71,254,12,255,252,255,72,255,142,254,196,254,31,255,79,255,78,255,229,255, +119,1,126,2,119,2,192,1,29,0,9,255,110,255,105,255,165,254,213,254,4,0,202,0,165,0,82,0,45,0,29,0, +101,0,148,0,75,0,17,0,192,255,82,255,137,255,22,0,19,0,142,255,97,255,232,255,63,0,41,0,146,0,53,1, +64,1,222,0,89,0,16,0,149,0,61,1,219,0,89,0,250,0,224,1,152,2,31,3,65,2,31,1,90,1,142,0, +74,254,208,253,227,254,82,255,163,255,227,0,103,2,175,2,220,1,154,1,233,1,218,1,144,1,60,1,55,1,137,1, +52,1,94,0,29,0,53,0,27,0,8,0,74,0,177,0,156,0,213,255,17,255,11,255,89,255,39,255,246,254,83,255, +154,255,214,255,81,0,120,0,95,0,105,0,100,0,77,0,50,0,37,0,60,0,58,0,105,0,243,0,45,1,242,0, +175,0,211,0,126,1,192,1,89,1,103,1,157,1,239,0,49,0,57,0,255,255,37,255,217,254,246,254,153,254,121,254, +42,255,26,0,165,0,91,0,144,255,103,254,60,253,53,254,171,0,228,0,141,255,109,255,168,255,112,255,168,255,108,0, +14,1,180,0,201,255,195,255,61,0,49,0,248,255,144,255,191,254,71,254,76,254,47,254,19,254,40,254,14,254,128,253, +117,252,236,251,124,253,78,0,134,1,137,0,206,255,176,0,124,1,11,1,59,0,104,255,170,254,212,254,192,255,62,0, +201,255,42,255,5,255,168,254,22,254,40,254,66,254,0,254,4,254,255,253,12,254,230,254,214,255,55,0,158,0,58,1, +134,1,78,1,225,0,109,0,251,255,141,255,215,254,164,253,130,252,98,252,120,253,243,254,250,255,18,0,100,255,221,254, +159,254,85,254,149,254,79,255,222,255,149,0,125,1,231,1,145,1,236,0,147,0,90,0,61,0,191,0,31,1,173,0, +58,0,22,0,255,255,20,0,135,0,30,1,238,0,45,0,180,0,38,2,20,2,193,0,66,0,71,0,192,255,189,255, +153,0,201,0,26,0,193,255,62,0,242,0,254,0,174,0,149,0,153,0,27,1,175,1,102,1,41,1,136,1,140,1, +253,0,130,0,232,0,167,1,28,1,37,0,112,0,211,0,139,0,57,1,45,3,132,4,114,4,228,3,85,3,175,2, +7,2,127,1,61,1,243,0,109,0,49,0,36,0,6,0,124,0,149,1,118,2,76,2,143,1,199,1,136,2,95,2, +206,1,98,1,239,0,219,0,15,1,28,1,238,0,162,0,161,0,211,0,220,0,218,0,202,0,201,0,234,0,224,0, +176,0,140,0,177,0,90,1,25,2,83,2,185,1,185,0,111,0,189,0,224,0,223,0,75,0,112,255,171,255,80,0, +244,255,82,255,109,255,2,0,170,0,112,1,208,1,224,0,102,255,28,255,198,255,19,0,230,255,183,255,130,255,65,255, +64,255,91,255,68,255,106,255,205,255,189,255,153,255,212,255,182,255,84,255,157,255,75,0,155,0,13,0,200,254,163,254, +219,255,212,255,37,255,8,0,79,0,215,254,152,254,31,0,71,1,249,0,173,255,45,255,50,255,92,253,53,251,9,252, +160,254,122,255,195,253,228,252,181,255,120,2,156,1,54,0,177,255,168,253,48,251,131,250,27,251,190,252,108,255,201,1, +4,3,190,3,165,4,104,5,147,5,110,5,253,4,237,3,81,2,128,0,16,255,93,254,34,254,253,253,148,253,35,253, +103,253,8,254,47,254,39,254,111,254,231,254,67,255,74,255,15,255,190,254,139,254,49,255,187,0,178,1,137,1,34,1, +94,0,213,254,79,253,120,252,108,252,30,253,14,254,198,254,79,255,247,255,164,0,246,0,73,1,126,1,196,0,40,0, +112,0,72,0,192,255,200,255,186,255,18,255,11,254,68,253,74,253,167,253,40,254,191,254,203,254,253,254,194,255,239,255, +206,255,52,0,80,0,206,255,115,255,112,255,75,255,186,254,54,254,88,254,251,254,156,255,247,255,61,0,178,0,194,0, +221,255,10,255,139,255,201,0,66,1,73,0,206,254,161,254,188,255,95,0,54,0,8,0,231,255,192,255,156,255,143,255, +207,255,55,0,124,0,53,0,13,255,242,253,237,253,84,254,88,254,93,254,168,254,237,254,44,255,124,255,201,255,41,0, +118,0,138,0,195,0,11,1,230,0,111,0,8,0,248,255,244,255,114,255,224,254,213,254,20,255,113,255,252,255,141,0, +214,0,182,0,61,0,129,255,39,255,180,255,106,0,175,0,132,0,15,0,0,0,83,0,45,0,119,255,156,254,78,254, +135,254,98,254,80,254,185,254,139,254,227,253,237,253,174,254,54,255,91,255,83,0,227,1,142,2,240,2,168,3,182,3, +175,2,95,1,52,1,79,1,81,255,21,253,44,253,240,253,234,253,87,253,137,252,49,252,122,252,187,253,228,255,230,0, +38,0,98,255,76,255,157,255,36,0,139,0,197,0,0,1,58,1,67,1,86,1,198,1,44,2,60,2,155,1,235,255, +75,254,157,253,61,253,32,253,127,253,8,254,202,254,232,255,51,1,97,2,15,3,232,2,241,1,240,0,160,0,151,0, +86,0,29,0,45,0,22,0,44,255,48,254,72,254,203,254,39,255,164,255,218,255,223,255,28,0,239,255,126,255,136,255, +148,255,62,255,228,254,194,254,2,255,76,255,27,255,5,255,139,255,38,0,151,0,242,0,31,1,254,0,130,0,87,0, +205,0,159,0,162,255,92,255,158,255,89,255,69,255,246,255,52,0,105,255,251,254,123,255,171,255,58,255,237,254,232,254, +12,255,123,255,58,0,223,0,186,0,209,255,33,255,128,255,17,0,71,255,66,254,203,254,121,255,40,255,16,255,144,255, +15,0,31,0,217,255,35,0,204,0,4,1,27,1,234,0,72,0,10,0,15,0,2,0,46,0,41,0,213,255,189,255, +190,255,153,255,95,255,88,255,252,255,191,0,145,0,217,255,150,255,179,255,196,255,197,255,155,255,71,255,90,255,223,255, +25,0,5,0,93,0,254,0,49,1,44,1,123,1,189,1,130,1,41,1,1,1,1,1,45,1,64,1,2,1,177,0, +146,0,186,0,217,0,180,0,173,0,127,0,253,255,8,0,34,0,99,255,223,254,239,254,238,254,139,255,177,0,41,1, +226,0,138,0,128,0,128,0,46,0,236,255,245,255,47,0,125,0,97,0,27,0,78,0,143,0,168,0,223,0,26,1, +68,1,1,1,40,0,174,255,60,0,46,1,98,1,174,0,46,0,40,0,243,255,227,255,26,0,51,0,127,0,244,0, +16,1,9,1,255,0,193,0,86,0,182,255,63,255,130,255,50,0,204,0,75,1,137,1,72,1,197,0,173,0,16,1, +227,0,240,255,103,255,160,255,15,0,137,0,188,0,66,0,148,255,127,255,223,255,30,0,94,0,184,0,195,0,150,0, +151,0,240,0,124,1,160,1,92,1,37,1,204,0,70,0,209,255,172,255,57,0,185,0,109,0,40,0,43,0,14,0, +35,0,199,0,158,1,131,1,163,0,157,0,213,0,36,0,202,255,61,0,122,0,27,0,118,255,130,255,41,0,117,0, +190,0,18,1,180,0,83,0,216,0,158,1,167,1,90,1,135,1,174,1,101,1,12,1,182,0,189,0,23,1,242,0, +161,0,175,0,174,0,93,0,239,255,202,255,214,255,156,255,110,255,74,255,201,254,128,254,186,254,251,254,24,255,69,255, +225,255,108,0,241,255,32,255,16,255,107,255,134,255,120,255,164,255,181,255,103,255,132,255,26,0,86,0,97,0,129,0, +64,0,174,255,105,255,86,255,7,255,255,254,171,255,37,0,214,255,63,255,249,254,98,255,12,0,34,0,226,255,215,255, +186,255,93,255,28,255,49,255,124,255,181,255,191,255,189,255,216,255,31,0,119,0,151,0,56,0,139,255,10,255,205,254, +152,254,101,254,136,254,6,255,94,255,113,255,145,255,159,255,105,255,81,255,161,255,225,255,158,255,36,255,187,254,116,254, +153,254,3,255,12,255,146,254,24,254,30,254,152,254,250,254,27,255,107,255,253,255,56,0,232,255,182,255,250,255,88,0, +110,0,1,0,96,255,241,254,157,254,133,254,197,254,5,255,57,255,111,255,128,255,89,255,10,255,238,254,15,255,9,255, +24,255,133,255,24,0,140,0,107,0,193,255,76,255,100,255,201,255,29,0,151,0,52,1,240,0,62,0,255,255,184,254, +130,252,170,251,199,251,228,251,154,253,12,1,42,3,171,2,69,2,23,3,157,2,160,0,119,255,88,255,76,255,48,255, +244,254,26,254,234,252,147,253,21,0,17,0,66,252,52,249,242,249,167,252,238,253,51,253,254,252,70,254,163,255,165,0, +137,1,91,2,162,3,28,5,171,5,104,5,92,5,128,5,242,4,117,3,71,1,229,254,88,253,200,252,54,252,179,251, +18,252,37,253,195,254,25,1,32,3,229,3,180,3,85,2,152,255,50,253,252,252,228,254,81,1,164,2,216,2,151,2, +218,1,5,1,80,0,190,254,101,252,178,250,103,250,103,251,209,252,232,253,21,255,165,0,121,2,192,4,251,6,32,8, +29,8,133,7,71,6,7,4,30,1,22,254,135,251,169,250,98,251,46,252,121,253,52,0,215,2,27,4,164,4,222,4, +129,4,52,3,1,1,205,254,21,253,90,251,252,249,238,249,186,250,137,251,109,252,125,253,189,254,59,0,115,1,17,2, +126,2,12,3,178,3,53,4,69,4,26,4,52,4,21,4,255,2,129,1,138,0,11,0,168,255,42,255,125,254,6,254, +201,253,103,253,54,253,135,253,10,254,167,254,142,255,208,0,0,2,165,2,66,3,82,4,71,5,121,5,182,4,103,3, +21,2,198,0,188,255,18,255,19,254,243,252,180,252,46,253,156,253,242,253,145,254,39,255,19,255,223,254,67,255,205,255, +14,0,33,0,62,0,181,0,103,1,253,1,134,2,1,3,43,3,217,2,12,2,14,1,32,0,71,255,184,254,181,254, +255,254,19,255,218,254,195,254,50,255,157,255,91,255,52,255,218,255,88,0,99,0,207,0,90,1,88,1,189,0,210,255, +87,255,111,255,133,255,195,255,85,0,176,0,225,0,52,1,68,1,226,0,141,0,94,0,246,255,123,255,15,255,148,254, +105,254,151,254,188,254,49,255,239,255,46,0,6,0,31,0,177,0,98,1,140,1,89,1,124,1,161,1,18,1,19,0, +116,255,94,255,112,255,224,255,178,0,218,0,62,0,0,0,76,0,157,0,239,0,57,1,81,1,90,1,95,1,20,1, +109,0,252,255,23,0,97,0,133,0,109,0,42,0,34,0,67,0,0,0,204,255,57,0,128,0,83,0,123,0,229,0, +26,1,62,1,29,1,179,0,166,0,175,0,56,0,247,255,106,0,204,0,127,0,250,255,236,255,36,0,31,0,14,0, +63,0,146,0,181,0,120,0,119,0,48,1,161,1,45,1,198,0,177,0,107,0,73,0,153,0,237,0,26,1,56,1, +230,0,254,255,34,255,129,254,227,253,227,253,172,254,16,255,149,254,24,254,84,254,111,255,201,0,169,0,134,254,181,252, +208,252,78,253,43,253,82,253,233,253,92,254,97,254,1,254,18,254,225,254,119,255,117,255,48,255,195,254,142,254,26,255, +97,0,88,1,39,1,194,0,16,1,124,1,166,1,170,1,142,1,108,1,235,0,204,255,180,254,67,254,124,254,255,254, +113,255,171,255,153,255,209,255,158,0,179,0,237,255,222,255,107,0,166,0,179,0,83,0,138,255,102,255,232,255,37,0, +245,255,178,255,177,255,38,0,178,0,184,0,87,0,42,0,91,0,198,0,99,1,248,1,26,2,110,1,59,0,166,255, +253,255,38,0,217,255,163,255,137,255,180,255,82,0,199,0,193,0,142,0,98,0,88,0,76,0,3,0,188,255,206,255, +27,0,59,0,3,0,174,255,79,255,218,254,121,254,50,254,28,254,112,254,209,254,201,254,134,254,123,254,197,254,28,255, +126,255,241,255,240,255,233,255,180,0,69,1,225,0,151,0,114,0,201,255,1,255,81,254,166,253,89,253,171,253,150,254, +175,255,120,0,27,1,130,1,254,0,178,255,52,254,142,252,67,251,75,251,150,252,95,254,29,0,74,1,150,1,79,1, +230,0,159,0,115,0,52,0,224,255,96,255,177,254,51,254,253,253,14,254,171,254,130,255,5,0,128,0,61,1,177,1, +130,1,58,1,68,1,64,1,247,0,117,0,156,255,201,254,124,254,165,254,23,255,86,255,248,254,194,254,91,255,49,0, +227,0,107,1,165,1,206,1,255,1,3,2,23,2,70,2,15,2,111,1,211,0,46,0,108,255,233,254,202,254,221,254, +19,255,99,255,181,255,8,0,84,0,204,0,144,1,243,1,178,1,133,1,104,1,226,0,61,0,185,255,86,255,71,255, +119,255,181,255,229,255,195,255,90,255,16,255,34,255,135,255,255,255,106,0,211,0,17,1,33,1,255,0,131,0,246,255, +183,255,253,255,255,0,253,1,235,1,38,1,122,0,18,0,225,255,243,255,129,0,48,1,11,1,77,0,225,255,188,255, +148,255,119,255,140,255,5,0,159,0,251,0,74,1,163,1,218,1,213,1,136,1,45,1,190,0,17,0,166,255,166,255, +167,255,150,255,113,255,181,255,157,0,180,0,205,255,194,255,72,0,4,0,178,255,21,0,151,0,138,0,20,0,6,0, +96,0,112,0,86,0,80,0,91,0,172,0,252,0,238,0,181,0,101,0,0,0,147,255,239,254,64,254,21,254,122,254, +246,254,89,255,206,255,253,255,147,255,72,255,131,255,158,255,121,255,135,255,167,255,176,255,247,255,81,0,78,0,81,0, +164,0,225,0,207,0,75,0,140,255,132,255,26,0,37,0,188,255,172,255,208,255,207,255,240,255,95,0,148,0,140,0, +7,1,142,1,25,1,114,0,157,0,201,0,64,0,174,255,104,255,244,254,41,254,109,253,73,253,198,253,107,254,45,255, +245,255,52,0,43,0,68,0,20,0,169,255,104,255,68,255,40,255,222,254,150,254,210,254,21,255,32,255,159,255,93,0, +145,0,67,0,29,0,108,0,181,0,228,0,119,1,247,1,162,1,103,0,176,254,177,253,42,254,29,255,135,255,152,255, +174,255,185,255,152,255,95,255,39,255,24,255,158,255,164,0,88,1,122,1,121,1,87,1,6,1,218,0,156,0,43,0, +55,0,123,0,58,0,0,0,253,255,187,255,107,255,13,255,200,254,32,255,173,255,5,0,58,0,54,0,60,0,67,0, +241,255,167,255,130,255,76,255,80,255,116,255,133,255,174,255,219,255,253,255,0,0,218,255,2,0,112,0,155,0,184,0, +22,1,58,1,168,0,208,255,146,255,215,255,224,255,165,255,98,255,18,255,247,254,72,255,180,255,28,0,141,0,158,0, +83,0,98,0,191,0,241,0,252,0,211,0,156,0,151,0,95,0,203,255,74,255,16,255,36,255,87,255,139,255,8,0, +122,0,93,0,54,0,114,0,144,0,96,0,51,0,249,255,198,255,4,0,113,0,108,0,16,0,199,255,184,255,177,255, +140,255,175,255,69,0,210,0,24,1,21,1,7,1,53,1,15,1,58,0,128,255,74,255,60,255,27,255,245,254,224,254, +186,254,136,254,181,254,58,255,171,255,215,255,208,255,230,255,47,0,85,0,99,0,137,0,132,0,48,0,193,255,117,255, +121,255,180,255,210,255,212,255,3,0,51,0,11,0,173,255,91,255,47,255,57,255,114,255,178,255,162,255,77,255,101,255, +229,255,36,0,67,0,146,0,196,0,119,0,211,255,133,255,204,255,35,0,78,0,116,0,154,0,164,0,121,0,55,0, +232,255,153,255,173,255,247,255,227,255,170,255,143,255,94,255,44,255,29,255,45,255,88,255,138,255,171,255,172,255,203,255, +79,0,198,0,201,0,184,0,231,0,37,1,50,1,26,1,14,1,250,0,190,0,114,0,38,0,218,255,124,255,31,255, +7,255,59,255,144,255,227,255,37,0,121,0,172,0,107,0,29,0,47,0,102,0,105,0,43,0,13,0,75,0,97,0, +17,0,203,255,229,255,73,0,125,0,91,0,96,0,135,0,104,0,53,0,56,0,105,0,152,0,120,0,57,0,57,0, +59,0,16,0,244,255,244,255,18,0,65,0,76,0,68,0,48,0,232,255,147,255,95,255,58,255,39,255,33,255,49,255, +148,255,16,0,81,0,150,0,243,0,253,0,177,0,122,0,93,0,19,0,217,255,227,255,192,255,82,255,37,255,97,255, +207,255,64,0,119,0,99,0,37,0,212,255,134,255,96,255,112,255,166,255,226,255,254,255,223,255,153,255,100,255,79,255, +62,255,68,255,143,255,200,255,141,255,91,255,153,255,206,255,182,255,137,255,91,255,58,255,58,255,86,255,130,255,164,255, +208,255,12,0,22,0,234,255,194,255,161,255,102,255,14,255,249,254,99,255,205,255,242,255,42,0,102,0,65,0,219,255, +168,255,188,255,182,255,132,255,100,255,66,255,22,255,17,255,27,255,28,255,66,255,135,255,212,255,50,0,109,0,78,0, +35,0,56,0,89,0,65,0,14,0,40,0,129,0,143,0,92,0,84,0,100,0,92,0,75,0,59,0,69,0,101,0, +104,0,93,0,128,0,184,0,179,0,119,0,100,0,106,0,85,0,60,0,21,0,236,255,214,255,166,255,137,255,176,255, +189,255,193,255,235,255,226,255,190,255,222,255,47,0,141,0,205,0,221,0,204,0,105,0,210,255,124,255,98,255,99,255, +154,255,246,255,65,0,78,0,40,0,24,0,62,0,110,0,116,0,59,0,12,0,45,0,90,0,61,0,16,0,16,0, +13,0,221,255,154,255,113,255,130,255,181,255,209,255,220,255,245,255,3,0,214,255,136,255,126,255,185,255,190,255,136,255, +120,255,151,255,179,255,188,255,185,255,183,255,149,255,66,255,6,255,13,255,43,255,66,255,117,255,224,255,74,0,103,0, +87,0,108,0,128,0,81,0,15,0,240,255,237,255,238,255,224,255,216,255,232,255,232,255,233,255,29,0,70,0,56,0, +41,0,28,0,1,0,245,255,9,0,36,0,9,0,186,255,139,255,148,255,193,255,16,0,91,0,152,0,203,0,200,0, +158,0,135,0,125,0,124,0,133,0,146,0,207,0,23,1,255,0,189,0,162,0,118,0,43,0,1,0,227,255,152,255, +92,255,126,255,208,255,13,0,45,0,62,0,107,0,158,0,123,0,65,0,110,0,199,0,232,0,194,0,112,0,41,0, +248,255,212,255,238,255,49,0,86,0,106,0,121,0,95,0,45,0,31,0,39,0,22,0,12,0,54,0,87,0,49,0, +3,0,36,0,86,0,48,0,247,255,16,0,39,0,12,0,14,0,59,0,103,0,126,0,95,0,49,0,43,0,61,0, +84,0,106,0,89,0,50,0,47,0,80,0,95,0,81,0,77,0,87,0,68,0,23,0,2,0,13,0,8,0,241,255, +240,255,3,0,16,0,6,0,231,255,200,255,178,255,161,255,163,255,175,255,172,255,167,255,176,255,198,255,224,255,214,255, +150,255,116,255,154,255,177,255,171,255,194,255,212,255,232,255,31,0,14,0,160,255,117,255,129,255,102,255,123,255,236,255, +47,0,4,0,212,255,223,255,222,255,181,255,141,255,79,255,3,255,250,254,13,255,253,254,14,255,73,255,111,255,131,255, +141,255,132,255,148,255,214,255,3,0,5,0,34,0,96,0,117,0,86,0,47,0,31,0,42,0,53,0,69,0,115,0, +154,0,142,0,81,0,249,255,176,255,165,255,200,255,210,255,162,255,119,255,147,255,215,255,2,0,4,0,243,255,233,255, +230,255,220,255,204,255,192,255,211,255,242,255,212,255,142,255,104,255,110,255,164,255,246,255,34,0,48,0,82,0,105,0, +75,0,48,0,84,0,133,0,156,0,185,0,215,0,220,0,199,0,147,0,95,0,45,0,220,255,170,255,183,255,184,255, +175,255,193,255,220,255,255,255,37,0,50,0,46,0,46,0,47,0,30,0,1,0,235,255,241,255,43,0,96,0,59,0, +242,255,225,255,247,255,255,255,226,255,201,255,200,255,162,255,125,255,167,255,211,255,212,255,213,255,221,255,249,255,45,0, +95,0,119,0,105,0,77,0,69,0,54,0,15,0,224,255,173,255,127,255,93,255,100,255,154,255,213,255,5,0,31,0, +21,0,2,0,215,255,162,255,161,255,176,255,172,255,186,255,189,255,153,255,137,255,174,255,229,255,7,0,34,0,54,0, +22,0,224,255,187,255,147,255,141,255,162,255,158,255,164,255,168,255,135,255,121,255,145,255,181,255,234,255,9,0,11,0, +26,0,23,0,233,255,203,255,223,255,248,255,242,255,239,255,6,0,14,0,247,255,229,255,237,255,6,0,16,0,244,255, +187,255,130,255,117,255,161,255,208,255,223,255,239,255,27,0,63,0,61,0,47,0,50,0,44,0,22,0,31,0,66,0, +74,0,64,0,66,0,55,0,43,0,41,0,24,0,13,0,26,0,46,0,74,0,80,0,47,0,41,0,57,0,37,0, +32,0,70,0,109,0,133,0,139,0,145,0,159,0,140,0,103,0,95,0,86,0,72,0,83,0,103,0,126,0,164,0, +185,0,181,0,168,0,149,0,138,0,142,0,138,0,138,0,163,0,170,0,120,0,44,0,242,255,202,255,178,255,174,255, +184,255,200,255,203,255,180,255,167,255,187,255,221,255,13,0,43,0,44,0,67,0,78,0,26,0,255,255,29,0,38,0, +26,0,14,0,4,0,16,0,15,0,238,255,220,255,224,255,226,255,222,255,209,255,213,255,253,255,30,0,32,0,37,0, +60,0,71,0,73,0,92,0,103,0,75,0,34,0,254,255,213,255,171,255,138,255,108,255,91,255,98,255,108,255,106,255, +119,255,143,255,143,255,123,255,96,255,77,255,97,255,133,255,132,255,110,255,91,255,65,255,68,255,110,255,122,255,106,255, +130,255,157,255,153,255,153,255,129,255,78,255,71,255,96,255,109,255,116,255,113,255,133,255,187,255,195,255,152,255,144,255, +173,255,167,255,116,255,117,255,203,255,0,0,225,255,192,255,195,255,211,255,207,255,153,255,93,255,97,255,136,255,143,255, +117,255,90,255,67,255,57,255,54,255,48,255,93,255,211,255,48,0,60,0,48,0,56,0,80,0,109,0,138,0,173,0, +208,0,242,0,26,1,60,1,74,1,72,1,68,1,73,1,95,1,147,1,215,1,11,2,51,2,94,2,115,2,79,2, +232,1,111,1,36,1,234,0,160,0,113,0,98,0,70,0,16,0,226,255,209,255,190,255,152,255,144,255,196,255,253,255, +248,255,225,255,22,0,98,0,105,0,111,0,165,0,179,0,142,0,134,0,159,0,162,0,120,0,83,0,107,0,157,0, +156,0,114,0,74,0,30,0,243,255,239,255,251,255,230,255,191,255,156,255,119,255,96,255,85,255,71,255,58,255,23,255, +244,254,14,255,40,255,241,254,179,254,175,254,179,254,164,254,161,254,189,254,220,254,230,254,246,254,36,255,98,255,173,255, +255,255,36,0,251,255,156,255,53,255,246,254,250,254,58,255,167,255,59,0,198,0,7,1,252,0,212,0,182,0,168,0, +132,0,68,0,17,0,240,255,213,255,195,255,193,255,195,255,189,255,188,255,216,255,235,255,205,255,155,255,127,255,121,255, +101,255,52,255,16,255,24,255,47,255,61,255,81,255,112,255,128,255,144,255,187,255,213,255,219,255,0,0,56,0,102,0, +142,0,168,0,189,0,217,0,5,1,32,1,254,0,225,0,252,0,6,1,44,1,187,1,19,2,135,1,150,0,87,0, +183,0,163,0,88,0,167,0,219,0,116,0,62,0,126,0,174,0,120,0,42,0,62,0,90,0,47,0,51,0,80,0, +45,0,16,0,12,0,254,255,229,255,227,255,51,0,162,0,199,0,196,0,177,0,124,0,83,0,66,0,41,0,17,0, +16,0,45,0,61,0,51,0,81,0,136,0,146,0,137,0,120,0,50,0,210,255,182,255,211,255,195,255,141,255,157,255, +232,255,245,255,193,255,177,255,210,255,228,255,208,255,158,255,104,255,95,255,127,255,157,255,182,255,209,255,214,255,192,255, +169,255,171,255,163,255,120,255,90,255,95,255,98,255,83,255,55,255,43,255,64,255,86,255,85,255,77,255,80,255,94,255, +97,255,96,255,111,255,127,255,136,255,139,255,139,255,154,255,191,255,217,255,206,255,174,255,164,255,181,255,190,255,194,255, +207,255,212,255,192,255,155,255,142,255,163,255,166,255,137,255,119,255,122,255,129,255,131,255,141,255,158,255,162,255,155,255, +152,255,157,255,164,255,173,255,179,255,167,255,155,255,182,255,214,255,224,255,255,255,31,0,17,0,12,0,37,0,50,0, +29,0,236,255,219,255,253,255,13,0,8,0,23,0,29,0,19,0,20,0,36,0,76,0,115,0,115,0,89,0,71,0, +76,0,105,0,136,0,143,0,136,0,140,0,149,0,130,0,92,0,70,0,69,0,83,0,102,0,99,0,79,0,81,0, +100,0,100,0,90,0,110,0,158,0,191,0,178,0,144,0,135,0,145,0,133,0,106,0,90,0,89,0,108,0,128,0, +119,0,89,0,62,0,39,0,25,0,39,0,78,0,113,0,119,0,109,0,96,0,73,0,47,0,34,0,23,0,2,0, +222,255,197,255,225,255,4,0,234,255,202,255,202,255,189,255,168,255,171,255,184,255,193,255,181,255,154,255,159,255,191,255, +208,255,201,255,193,255,226,255,20,0,30,0,18,0,9,0,232,255,197,255,212,255,7,0,36,0,12,0,223,255,189,255, +144,255,85,255,50,255,58,255,87,255,96,255,85,255,106,255,159,255,174,255,150,255,153,255,195,255,236,255,254,255,8,0, +40,0,79,0,84,0,71,0,62,0,42,0,22,0,25,0,38,0,34,0,238,255,168,255,145,255,151,255,131,255,107,255, +150,255,3,0,71,0,52,0,49,0,111,0,162,0,160,0,134,0,108,0,65,0,250,255,207,255,221,255,237,255,234,255, +244,255,11,0,33,0,49,0,58,0,64,0,76,0,85,0,76,0,58,0,40,0,14,0,247,255,234,255,231,255,250,255, +32,0,61,0,60,0,36,0,23,0,35,0,44,0,40,0,43,0,54,0,59,0,60,0,64,0,59,0,38,0,21,0, +10,0,251,255,241,255,245,255,2,0,14,0,9,0,251,255,247,255,246,255,242,255,240,255,231,255,216,255,215,255,229,255, +243,255,242,255,252,255,25,0,20,0,243,255,244,255,10,0,10,0,253,255,242,255,241,255,235,255,212,255,201,255,227,255, +5,0,12,0,1,0,254,255,12,0,17,0,254,255,242,255,1,0,10,0,244,255,216,255,195,255,177,255,200,255,5,0, +46,0,48,0,34,0,9,0,233,255,211,255,214,255,229,255,226,255,228,255,7,0,40,0,43,0,36,0,18,0,232,255, +200,255,207,255,223,255,227,255,247,255,10,0,243,255,204,255,190,255,208,255,251,255,27,0,42,0,62,0,85,0,102,0, +110,0,95,0,58,0,251,255,177,255,137,255,147,255,182,255,224,255,244,255,226,255,195,255,173,255,168,255,176,255,188,255, +211,255,243,255,253,255,234,255,211,255,202,255,203,255,210,255,235,255,16,0,57,0,99,0,119,0,111,0,92,0,59,0, +13,0,236,255,220,255,204,255,191,255,194,255,193,255,171,255,153,255,154,255,154,255,154,255,181,255,225,255,243,255,239,255, +241,255,245,255,242,255,254,255,32,0,68,0,65,0,9,0,218,255,231,255,2,0,246,255,224,255,227,255,232,255,222,255, +222,255,248,255,19,0,31,0,35,0,32,0,11,0,225,255,187,255,170,255,167,255,180,255,201,255,201,255,182,255,174,255, +191,255,228,255,14,0,40,0,41,0,48,0,65,0,54,0,32,0,38,0,53,0,59,0,58,0,48,0,37,0,27,0, +17,0,9,0,250,255,238,255,239,255,243,255,250,255,245,255,225,255,239,255,37,0,80,0,79,0,51,0,37,0,18,0, +226,255,228,255,34,0,53,0,33,0,34,0,38,0,12,0,218,255,182,255,189,255,210,255,217,255,227,255,7,0,54,0, +69,0,54,0,40,0,27,0,15,0,15,0,15,0,1,0,239,255,236,255,243,255,0,0,25,0,43,0,42,0,32,0, +3,0,221,255,202,255,189,255,177,255,184,255,201,255,221,255,239,255,231,255,202,255,195,255,251,255,52,0,24,0,229,255, +246,255,23,0,23,0,24,0,47,0,68,0,53,0,2,0,196,255,133,255,94,255,96,255,120,255,167,255,230,255,24,0, +59,0,80,0,81,0,88,0,116,0,129,0,107,0,84,0,90,0,116,0,102,0,16,0,177,255,149,255,183,255,235,255, +13,0,3,0,234,255,238,255,3,0,18,0,38,0,71,0,100,0,121,0,138,0,139,0,122,0,109,0,107,0,102,0, +84,0,48,0,6,0,232,255,217,255,214,255,215,255,219,255,226,255,230,255,235,255,255,255,20,0,21,0,6,0,245,255, +243,255,7,0,39,0,57,0,48,0,18,0,230,255,184,255,160,255,163,255,197,255,249,255,25,0,31,0,44,0,61,0, +72,0,92,0,114,0,117,0,100,0,76,0,57,0,39,0,15,0,243,255,219,255,199,255,190,255,194,255,202,255,203,255, +209,255,221,255,234,255,245,255,255,255,16,0,24,0,11,0,2,0,6,0,9,0,15,0,19,0,29,0,67,0,92,0, +67,0,26,0,252,255,227,255,201,255,203,255,246,255,32,0,26,0,235,255,177,255,147,255,154,255,184,255,248,255,69,0, +117,0,145,0,140,0,77,0,252,255,188,255,139,255,116,255,127,255,166,255,209,255,245,255,32,0,74,0,95,0,90,0, +59,0,2,0,188,255,131,255,104,255,91,255,84,255,96,255,123,255,163,255,222,255,26,0,75,0,114,0,139,0,151,0, +146,0,126,0,97,0,58,0,24,0,6,0,244,255,225,255,218,255,219,255,208,255,184,255,166,255,168,255,182,255,202,255, +230,255,253,255,10,0,19,0,26,0,34,0,41,0,49,0,56,0,51,0,28,0,254,255,233,255,223,255,210,255,197,255, +197,255,218,255,0,0,29,0,23,0,240,255,197,255,170,255,162,255,179,255,229,255,35,0,75,0,93,0,92,0,66,0, +27,0,250,255,232,255,228,255,231,255,243,255,12,0,40,0,52,0,42,0,21,0,8,0,10,0,14,0,12,0,5,0, +1,0,2,0,1,0,0,0,9,0,14,0,247,255,220,255,218,255,228,255,239,255,253,255,9,0,7,0,250,255,241,255, +246,255,9,0,34,0,41,0,25,0,14,0,23,0,32,0,35,0,34,0,21,0,1,0,234,255,219,255,234,255,8,0, +21,0,28,0,34,0,19,0,255,255,253,255,253,255,239,255,227,255,230,255,243,255,255,255,6,0,2,0,252,255,255,255, +2,0,4,0,11,0,11,0,7,0,9,0,3,0,250,255,247,255,237,255,220,255,204,255,200,255,216,255,240,255,3,0, +13,0,17,0,28,0,41,0,36,0,23,0,19,0,21,0,17,0,255,255,233,255,220,255,215,255,208,255,198,255,195,255, +204,255,223,255,0,0,26,0,15,0,254,255,9,0,20,0,8,0,241,255,225,255,216,255,211,255,208,255,200,255,204,255, +224,255,236,255,233,255,229,255,228,255,225,255,223,255,226,255,224,255,212,255,214,255,235,255,247,255,243,255,234,255,253,255, +49,0,48,0,237,255,224,255,23,0,40,0,4,0,229,255,210,255,192,255,212,255,14,0,25,0,238,255,216,255,233,255, +14,0,59,0,78,0,60,0,23,0,251,255,255,255,10,0,4,0,1,0,6,0,10,0,9,0,248,255,219,255,194,255, +193,255,219,255,237,255,236,255,239,255,249,255,255,255,4,0,14,0,22,0,27,0,40,0,45,0,28,0,16,0,16,0, +11,0,16,0,25,0,16,0,6,0,7,0,6,0,1,0,252,255,247,255,242,255,239,255,248,255,12,0,31,0,42,0, +34,0,18,0,6,0,247,255,239,255,254,255,18,0,25,0,25,0,21,0,18,0,25,0,43,0,54,0,52,0,55,0, +58,0,32,0,241,255,216,255,219,255,224,255,223,255,222,255,224,255,233,255,248,255,5,0,16,0,28,0,34,0,25,0, +8,0,5,0,14,0,15,0,12,0,11,0,4,0,1,0,4,0,8,0,19,0,32,0,28,0,15,0,9,0,8,0, +7,0,4,0,1,0,255,255,254,255,248,255,244,255,250,255,255,255,254,255,0,0,5,0,9,0,2,0,246,255,238,255, +233,255,230,255,230,255,232,255,243,255,2,0,2,0,249,255,244,255,247,255,10,0,26,0,22,0,14,0,7,0,252,255, +241,255,233,255,229,255,228,255,229,255,237,255,252,255,14,0,20,0,9,0,255,255,4,0,7,0,253,255,243,255,240,255, +239,255,241,255,246,255,254,255,12,0,23,0,23,0,16,0,2,0,241,255,242,255,3,0,24,0,39,0,35,0,21,0, +9,0,249,255,237,255,238,255,244,255,248,255,241,255,240,255,12,0,35,0,28,0,18,0,20,0,23,0,17,0,4,0, +254,255,251,255,250,255,7,0,24,0,32,0,38,0,38,0,29,0,17,0,6,0,255,255,254,255,249,255,238,255,227,255, +223,255,230,255,239,255,244,255,251,255,251,255,249,255,0,0,12,0,18,0,27,0,39,0,45,0,42,0,33,0,20,0, +3,0,245,255,244,255,243,255,234,255,237,255,253,255,3,0,252,255,248,255,247,255,249,255,247,255,236,255,232,255,248,255, +13,0,14,0,253,255,240,255,242,255,247,255,243,255,238,255,244,255,5,0,16,0,9,0,243,255,227,255,223,255,229,255, +242,255,249,255,242,255,237,255,239,255,244,255,250,255,255,255,3,0,9,0,15,0,14,0,9,0,6,0,7,0,1,0, +244,255,233,255,224,255,222,255,224,255,225,255,237,255,1,0,5,0,1,0,253,255,249,255,245,255,239,255,234,255,237,255, +240,255,243,255,252,255,2,0,7,0,13,0,15,0,15,0,14,0,9,0,2,0,251,255,247,255,248,255,254,255,4,0, +2,0,244,255,233,255,238,255,247,255,250,255,3,0,15,0,16,0,11,0,10,0,7,0,253,255,242,255,240,255,244,255, +247,255,248,255,246,255,249,255,5,0,12,0,9,0,1,0,252,255,4,0,10,0,253,255,242,255,252,255,10,0,18,0, +22,0,20,0,20,0,28,0,30,0,17,0,2,0,251,255,250,255,254,255,11,0,24,0,28,0,24,0,17,0,12,0, +7,0,0,0,244,255,240,255,251,255,3,0,255,255,255,255,6,0,11,0,12,0,8,0,2,0,252,255,248,255,251,255, +254,255,251,255,252,255,5,0,14,0,17,0,22,0,28,0,22,0,4,0,248,255,243,255,235,255,229,255,233,255,246,255, +254,255,252,255,250,255,0,0,5,0,6,0,8,0,14,0,18,0,15,0,10,0,6,0,4,0,254,255,245,255,242,255, +244,255,245,255,248,255,248,255,247,255,251,255,3,0,13,0,14,0,5,0,0,0,253,255,248,255,250,255,255,255,0,0, +6,0,9,0,7,0,9,0,12,0,9,0,1,0,251,255,250,255,249,255,248,255,248,255,250,255,3,0,11,0,7,0, +254,255,250,255,254,255,6,0,16,0,20,0,13,0,0,0,251,255,0,0,255,255,250,255,248,255,250,255,255,255,254,255, +245,255,236,255,238,255,244,255,249,255,253,255,5,0,9,0,8,0,2,0,250,255,248,255,251,255,252,255,252,255,0,0, +6,0,9,0,11,0,12,0,11,0,5,0,254,255,252,255,252,255,252,255,254,255,255,255,254,255,252,255,245,255,237,255, +235,255,240,255,244,255,248,255,252,255,2,0,8,0,12,0,15,0,17,0,15,0,8,0,1,0,255,255,254,255,253,255, +1,0,7,0,10,0,11,0,9,0,7,0,9,0,2,0,245,255,240,255,241,255,243,255,244,255,244,255,248,255,0,0, +4,0,6,0,9,0,7,0,2,0,254,255,2,0,12,0,18,0,17,0,13,0,8,0,3,0,254,255,250,255,248,255, +248,255,251,255,255,255,2,0,1,0,255,255,2,0,7,0,5,0,255,255,248,255,244,255,245,255,245,255,247,255,253,255, +2,0,5,0,7,0,9,0,8,0,3,0,255,255,253,255,252,255,254,255,1,0,0,0,254,255,252,255,250,255,249,255, +246,255,244,255,246,255,252,255,254,255,254,255,253,255,250,255,246,255,248,255,254,255,1,0,3,0,5,0,7,0,8,0, +8,0,4,0,255,255,255,255,2,0,255,255,249,255,248,255,250,255,251,255,253,255,255,255,0,0,255,255,252,255,251,255, +255,255,4,0,7,0,5,0,4,0,4,0,2,0,255,255,2,0,4,0,1,0,252,255,252,255,0,0,8,0,12,0, +11,0,8,0,4,0,255,255,252,255,253,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,255,255,253,255,254,255, +0,0,2,0,4,0,2,0,0,0,1,0,2,0,4,0,7,0,7,0,7,0,7,0,8,0,7,0,4,0,2,0, +1,0,255,255,255,255,2,0,1,0,254,255,253,255,251,255,250,255,251,255,252,255,251,255,252,255,253,255,252,255,247,255, +246,255,246,255,248,255,252,255,3,0,8,0,9,0,10,0,9,0,4,0,255,255,255,255,1,0,5,0,6,0,4,0, +2,0,2,0,2,0,0,0,253,255,251,255,252,255,255,255,1,0,0,0,0,0,1,0,1,0,1,0,3,0,4,0, +3,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,253,255,254,255,253,255,255,255,3,0, +2,0,1,0,1,0,0,0,0,0,2,0,3,0,2,0,3,0,3,0,2,0,0,0,0,0,255,255,254,255,253,255, +252,255,252,255,253,255,255,255,0,0,0,0,2,0,4,0,4,0,4,0,2,0,3,0,3,0,1,0,1,0,2,0, +0,0,254,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,0,0,0,0,0,0, +2,0,3,0,2,0,255,255,254,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,254,255,0,0,2,0,1,0, +255,255,254,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,254,255, +255,255,255,255,255,255,255,255,1,0,0,0,255,255,0,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0, +0,0,254,255,253,255,255,255,255,255,0,0,1,0,2,0,2,0,0,0,254,255,254,255,255,255,0,0,0,0,1,0, +0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,1,0,1,0,255,255, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +1,0,2,0,3,0,2,0,255,255,254,255,0,0,2,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255, +255,255,0,0,0,0,254,255,255,255,0,0,0,0,1,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,2,0, +1,0,254,255,254,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,0,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,254,255,255,255,0,0,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,0,0,1,0,0,0,254,255,255,255,0,0,255,255,255,255,1,0,1,0,1,0,0,0, +254,255,255,255,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,253,255,255,255,255,255,253,255, +254,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,255,255, +254,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,0,0,0,0,0,0, +1,0,2,0,0,0,255,255,0,0,255,255,254,255,255,255,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +0,0,1,0,3,0,2,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0, +0,0,0,0,2,0,1,0,255,255,253,255,254,255,0,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0, +2,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,254,255,254,255,255,255,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255, +0,0,1,0,0,0,255,255,255,255,255,255,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,254,255,255,255,0,0,0,0,0,0,254,255,254,255,255,255,0,0,1,0,2,0,2,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,1,0,0,0, +254,255,254,255,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,3,0,2,0, +2,0,0,0,0,0,1,0,255,255,253,255,253,255,255,255,0,0,254,255,253,255,254,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0, +1,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0, +0,0,255,255,254,255,254,255,254,255,255,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,255,255, +0,0,1,0,1,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,255,255,255,255,255,255,255,255,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,254,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,1,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +1,0,2,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,255,255,255,255,1,0,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,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,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,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,0,0,255,255,0,0,0,0,255,255,0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,0,0,255,255,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,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,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0, +1,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,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, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,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,255,255, +255,255,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,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, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,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,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,254,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +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,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,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,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,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,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,254,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,255,255,255,255,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,254,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,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, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,0,0, +0,0,255,255,255,255,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,1,0,1,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,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,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,1,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +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,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,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,255,255, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,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,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,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,255,255,0,0,0,0,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,1,0,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,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,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,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,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,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255, +0,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +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,1,0,1,0,0,0,254,255,255,255,1,0,1,0,255,255,255,255,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,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,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,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, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,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,1,0,1,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0, +0,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,1,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,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,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,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,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0, +0,0,255,255,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/gravel4.pcm b/src/client/sound/data/gravel4.pcm new file mode 100755 index 0000000..fa2088f --- /dev/null +++ b/src/client/sound/data/gravel4.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_gravel4[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,232,255,41,0,72,0,44,0,249,255,222,255,214,255,207,255, +210,255,212,255,208,255,226,255,14,0,56,0,68,0,56,0,32,0,3,0,247,255,237,255,220,255,252,255,66,0,92,0, +73,0,77,0,136,0,196,0,222,0,192,0,49,0,111,255,15,255,42,255,103,255,93,255,71,255,221,255,35,1,128,2, +0,3,4,2,110,0,86,255,189,254,127,254,209,254,185,255,109,0,69,0,222,255,196,255,218,255,243,255,184,255,131,255, +222,255,115,0,235,0,249,0,217,0,107,1,12,2,96,1,115,255,170,253,92,253,229,253,99,254,153,255,109,1,197,2, +71,3,193,2,159,0,161,252,42,249,112,249,138,252,109,255,176,0,98,1,61,4,71,8,113,9,99,7,48,4,50,1, +103,254,139,251,247,251,72,0,166,1,225,253,2,250,167,248,186,249,187,251,141,252,157,253,132,0,45,3,205,3,228,1, +110,253,37,249,255,247,218,249,64,254,238,3,232,6,253,5,162,4,45,5,22,7,183,8,65,8,197,4,125,254,171,247, +88,244,37,246,250,249,196,251,131,251,5,252,41,253,90,253,166,254,18,2,144,3,131,1,69,255,180,255,131,4,200,10, +65,11,48,8,101,10,25,17,1,24,83,29,225,26,120,12,14,248,138,232,4,228,6,230,89,231,137,230,236,228,169,229, +215,236,22,250,67,7,35,14,126,15,114,13,109,5,151,250,6,245,180,247,105,3,25,19,237,25,73,20,188,12,94,11, +10,12,157,7,254,253,161,244,213,241,32,244,128,243,206,242,133,249,136,2,4,7,57,9,187,13,200,16,31,9,211,251, +122,245,59,245,8,248,91,255,114,8,113,12,35,5,112,251,5,253,89,0,200,251,104,249,211,252,132,254,204,251,13,253, +41,9,34,16,175,5,186,253,77,4,169,9,166,5,249,0,55,0,26,254,42,250,138,251,27,0,148,0,50,255,157,254, +116,253,198,253,96,0,83,2,136,3,119,5,75,6,172,3,208,254,32,251,100,250,254,250,206,250,59,249,126,246,53,247, +67,1,253,14,184,18,36,10,61,3,5,7,124,9,243,0,73,249,58,251,172,254,135,252,91,247,220,245,168,248,130,249, +46,247,158,243,203,239,6,241,227,248,191,255,241,254,24,249,124,249,219,3,52,13,33,16,89,17,91,17,151,12,128,2, +38,250,172,249,74,251,20,253,141,4,142,9,75,1,130,242,185,232,186,230,94,233,51,238,56,246,204,0,100,9,247,11, +57,9,214,6,2,9,134,14,105,19,114,19,46,15,106,13,186,17,109,22,92,19,244,7,54,252,100,246,29,243,132,237, +47,233,15,234,96,235,71,231,9,225,147,228,248,245,186,7,38,16,209,18,163,17,19,17,173,24,49,34,38,32,244,15, +89,253,218,246,9,252,74,1,78,0,218,249,44,242,144,236,162,232,42,231,42,233,51,236,206,239,40,247,145,255,211,1, +69,0,159,0,224,255,97,253,139,255,215,9,113,22,21,26,110,21,11,16,4,7,77,253,169,250,50,249,60,247,104,249, +220,250,24,249,21,248,218,249,198,251,185,249,132,248,213,250,225,248,82,245,156,248,141,0,187,8,177,12,180,9,157,4, +240,2,144,6,140,11,224,9,28,1,173,248,34,247,198,251,74,253,166,246,255,239,220,241,193,248,89,255,5,7,27,9, +101,254,136,245,30,248,194,251,24,2,174,16,23,27,186,20,196,252,8,229,115,230,75,247,42,252,136,247,3,247,10,251, +26,254,223,251,241,255,108,20,248,36,245,34,183,24,66,9,255,246,5,237,6,238,18,248,110,1,18,252,99,240,1,240, +164,250,183,3,219,1,229,252,59,254,198,252,237,247,141,250,44,254,144,254,105,6,163,17,25,18,22,9,252,0,250,0, +30,10,132,21,82,27,180,21,164,3,219,246,69,252,230,254,190,244,40,243,92,250,147,246,64,233,168,227,109,238,218,254, +78,8,139,12,222,10,173,1,26,250,15,250,175,1,255,10,234,10,59,5,194,4,51,6,84,1,246,248,57,250,206,3, +125,2,45,247,10,245,212,253,164,4,112,3,82,1,177,4,242,8,4,11,42,10,232,3,195,252,11,250,60,251,48,252, +154,248,84,246,239,249,148,253,175,3,220,12,54,14,149,10,71,10,91,8,76,4,179,2,234,0,174,255,71,2,207,2, +71,252,177,242,35,237,224,239,54,244,188,244,43,249,69,254,15,255,22,9,212,19,58,8,184,242,71,229,244,223,156,232, +75,255,17,20,171,26,211,22,68,17,57,9,232,4,100,12,152,13,27,255,188,243,10,240,110,238,194,247,57,12,86,20, +119,6,142,254,111,5,94,255,124,242,53,248,210,2,132,1,148,253,202,1,136,8,3,3,185,247,107,247,100,253,55,5, +223,15,137,20,4,18,228,12,5,4,37,248,89,236,22,233,132,245,111,10,181,27,71,30,4,14,193,246,6,227,236,212, +179,210,198,221,57,237,152,250,28,255,101,246,229,243,191,11,119,41,109,49,36,40,196,22,238,253,114,229,153,217,177,224, +26,240,249,247,35,252,99,4,76,11,198,12,246,10,70,10,238,11,55,8,9,250,162,233,34,229,205,238,12,249,16,0, +198,11,129,20,67,20,32,26,254,37,4,36,70,20,203,3,208,246,38,241,150,237,34,223,177,208,11,215,38,235,28,247, +40,248,39,1,199,24,87,44,110,47,142,34,247,9,193,247,226,247,178,254,17,2,105,5,116,12,114,13,75,255,123,243, +40,248,94,255,186,1,21,3,244,255,178,246,71,238,246,242,183,2,238,7,94,255,41,247,235,240,162,240,55,248,129,246, +240,238,84,251,96,16,130,13,140,251,91,252,198,18,136,28,243,9,49,254,164,7,174,1,29,236,231,232,158,243,25,251, +94,254,175,254,201,255,247,0,203,0,152,0,238,254,130,0,223,3,85,11,144,34,205,42,62,12,156,241,46,235,154,225, +80,223,172,245,210,22,193,27,17,252,15,238,82,254,37,255,121,246,67,254,247,6,95,1,23,245,98,240,168,237,26,229, +214,237,10,7,239,15,138,11,37,18,100,48,254,86,46,82,81,27,204,244,53,253,110,12,72,0,138,227,247,203,148,186, +62,178,232,195,237,237,154,25,180,55,185,65,37,52,55,25,131,2,47,248,111,252,98,8,130,9,87,250,110,233,210,229, +35,241,108,2,0,23,129,38,66,28,20,2,215,242,150,233,251,219,105,211,238,219,14,242,20,252,223,243,118,244,154,1, +139,8,188,5,236,0,144,2,214,4,23,253,6,248,60,0,196,11,37,18,159,14,61,4,26,254,50,251,87,244,57,234, +5,228,133,233,61,244,191,248,237,250,80,254,171,0,79,3,88,1,194,251,184,1,100,18,29,29,190,25,168,13,43,8, +4,7,234,247,181,234,236,245,120,2,101,250,199,236,52,239,50,3,14,19,252,18,86,15,80,13,29,13,198,14,190,8, +148,1,116,7,5,17,212,19,205,17,85,13,238,8,198,3,11,254,230,252,121,255,128,253,122,243,32,236,97,239,253,241, +188,239,129,243,63,252,88,255,25,252,27,255,121,15,121,29,98,27,98,17,159,8,107,255,240,244,75,244,237,1,51,7, +222,247,83,233,81,235,136,247,50,2,194,5,142,4,70,254,39,246,250,247,64,2,117,8,158,4,126,245,86,227,7,222, +86,229,182,233,206,233,26,241,233,251,9,254,111,248,164,246,218,1,194,17,61,24,244,25,126,30,63,37,77,43,107,41, +209,35,1,30,158,15,6,11,149,28,247,33,172,14,61,255,45,2,96,10,110,1,124,232,129,208,167,183,104,162,82,159, +141,168,56,180,246,191,3,209,39,237,134,4,40,18,103,41,67,68,56,80,254,77,131,64,217,45,178,32,244,25,244,18, +55,6,0,247,185,236,96,235,110,246,108,5,54,5,63,245,225,231,134,230,91,233,182,233,65,237,233,245,75,252,45,0, +124,10,102,30,203,48,168,53,174,46,122,34,224,21,30,10,242,250,72,237,154,233,182,231,230,226,183,230,17,245,87,2, +44,7,196,3,243,254,153,255,43,255,26,247,203,243,19,252,51,3,21,4,55,2,220,252,117,249,192,254,6,8,250,10, +105,3,102,248,214,240,5,239,153,247,195,7,138,24,35,40,164,43,252,23,191,244,153,212,182,201,60,209,54,219,98,239, +21,16,140,27,198,2,253,230,161,233,59,4,253,25,4,30,2,17,66,248,252,232,198,239,198,254,220,10,246,16,73,14, +166,5,99,247,47,231,225,223,136,224,171,229,55,239,149,244,57,249,177,7,55,21,151,29,149,46,81,68,43,79,65,76, +192,63,239,44,82,24,141,7,217,249,204,235,247,223,88,210,84,188,235,165,187,152,101,153,3,166,83,176,146,184,56,205, +123,234,28,8,254,36,11,60,254,73,233,73,43,60,16,50,204,50,41,52,173,49,199,46,115,44,85,33,47,8,137,239, +168,228,196,233,42,249,39,255,236,241,5,222,204,206,111,203,148,215,25,238,47,9,98,31,138,37,216,30,79,24,155,25, +148,31,59,33,146,27,108,18,135,3,178,232,187,206,137,205,108,228,64,0,149,15,69,7,145,246,31,246,42,255,199,255, +218,247,192,245,2,2,87,8,44,252,39,244,62,247,1,249,219,251,29,1,106,5,173,7,16,5,50,4,215,8,200,9, +209,4,19,254,134,251,9,0,175,0,169,252,139,0,166,6,12,3,246,247,143,236,197,232,23,238,211,243,162,246,104,252, +228,5,139,9,230,0,53,247,31,2,108,31,216,41,70,22,69,13,71,22,251,7,206,226,2,207,68,216,35,235,184,243, +178,243,90,249,179,1,39,5,227,10,88,20,125,23,1,18,182,10,51,2,137,246,115,243,251,255,19,13,95,16,247,14, +7,13,71,11,25,8,143,3,254,0,49,254,209,248,238,241,146,230,191,217,106,215,51,224,191,232,219,240,247,255,251,11, +97,9,193,3,236,4,244,8,101,12,20,10,161,5,24,9,98,11,147,5,91,4,12,8,120,4,7,254,97,3,128,15, +199,11,116,247,102,231,209,224,4,224,93,231,203,241,166,249,93,2,20,9,162,5,147,255,149,4,118,12,236,8,233,0, +113,0,51,8,44,15,26,11,124,2,255,254,183,251,15,249,68,249,131,248,214,252,38,4,76,2,188,253,71,252,43,247, +53,242,96,248,37,14,247,36,108,34,13,10,124,247,173,243,231,246,169,247,129,243,242,242,249,247,210,255,53,11,96,17, +138,11,162,0,140,248,154,249,102,255,59,254,210,252,110,2,120,4,194,255,58,250,126,247,3,252,203,5,96,14,118,17, +105,11,227,1,228,253,181,253,40,253,72,250,188,246,6,251,141,8,234,21,167,27,133,21,183,4,16,244,201,236,55,238, +244,246,216,7,10,25,35,29,10,17,36,254,162,239,24,234,194,239,144,254,138,4,53,249,55,242,221,250,140,5,123,9, +168,5,48,0,11,2,197,4,196,1,166,254,33,251,41,245,23,242,127,242,171,241,114,241,110,246,113,251,166,251,235,254, +228,7,31,14,131,15,67,14,229,9,119,5,108,7,168,15,37,19,198,10,174,255,232,252,103,0,163,1,212,255,39,0, +54,1,222,255,200,254,214,255,100,2,248,2,197,255,177,254,32,254,255,246,67,242,174,247,243,252,175,251,135,249,176,249, +218,251,92,4,219,19,62,24,107,3,100,237,146,242,29,4,8,13,32,19,120,16,107,254,161,248,223,8,93,19,251,13, +104,4,144,254,105,246,244,224,60,208,106,214,221,220,43,217,102,219,233,225,123,232,81,245,49,9,43,32,219,48,67,54, +3,55,139,56,219,58,219,50,54,26,111,7,136,4,98,250,61,230,11,219,156,216,139,217,20,228,223,242,112,245,231,240, +247,247,2,4,134,3,14,0,7,9,231,18,124,14,179,5,104,10,165,27,229,42,78,50,51,52,152,46,0,33,71,11, +11,241,41,235,125,251,41,243,195,207,169,201,60,228,246,237,122,220,205,208,156,216,52,224,219,226,220,235,203,240,75,236, +232,236,229,244,14,0,204,11,170,21,200,33,145,39,244,27,201,12,40,7,146,10,162,18,42,21,245,19,11,24,12,24, +149,15,227,13,47,20,120,17,211,0,252,234,82,215,71,206,16,210,174,215,206,222,14,241,222,2,188,1,97,246,178,243, +188,246,76,247,94,253,192,8,167,12,252,13,197,24,89,38,215,39,127,25,164,7,138,255,227,0,15,5,243,5,103,2, +98,0,65,255,213,247,121,238,212,237,207,242,156,243,148,241,37,240,77,239,184,244,173,255,18,8,159,13,142,16,38,17, +17,17,121,13,6,12,246,13,26,5,218,246,76,243,14,247,187,253,82,6,173,11,121,11,57,4,87,251,49,250,8,254, +213,0,134,1,246,255,36,251,175,241,2,235,70,237,35,239,68,238,35,246,70,8,254,21,133,17,61,4,153,255,165,0, +230,4,50,18,235,32,250,42,178,51,239,52,148,36,219,4,249,232,71,225,106,225,46,217,202,209,116,214,20,226,214,234, +228,238,26,246,212,255,78,0,233,249,188,247,251,249,97,255,198,5,254,6,108,8,192,16,47,23,116,23,172,24,92,26, +236,21,108,11,24,1,148,250,203,245,11,242,88,239,36,234,22,231,193,239,247,250,230,249,11,246,127,252,184,5,247,12, +144,21,17,22,79,10,147,2,142,5,237,7,72,6,88,5,11,2,139,249,17,242,201,239,179,242,2,251,194,1,185,254, +148,246,204,243,169,248,120,253,227,253,165,0,182,5,112,5,215,4,252,9,224,14,213,16,29,18,94,17,229,12,230,4, +150,252,5,249,148,250,5,253,49,253,179,252,47,255,216,0,184,250,130,242,255,240,225,241,222,242,69,249,135,0,50,2, +180,3,127,9,208,13,141,9,215,0,188,253,129,254,112,253,163,252,97,252,165,251,83,250,200,247,195,249,154,0,233,2, +187,1,86,2,65,3,197,4,85,6,81,8,134,14,212,19,110,17,189,12,38,12,209,12,83,9,27,3,150,0,52,1, +170,252,161,241,197,233,52,234,116,237,177,239,62,240,103,237,24,235,106,239,198,247,209,254,232,6,164,18,93,26,177,23, +213,15,187,9,31,9,83,12,248,11,12,9,75,9,0,10,150,8,17,4,147,251,66,245,183,242,230,237,152,232,232,231, +102,235,160,240,46,245,131,249,234,254,172,1,228,254,222,250,20,250,220,250,33,252,236,0,22,8,61,13,182,15,201,14, +240,10,199,9,101,13,90,18,171,20,53,14,232,255,166,245,97,241,219,235,38,231,236,229,216,230,55,233,207,230,176,226, +149,234,191,249,35,5,211,13,26,16,169,9,172,2,20,0,72,2,245,5,148,8,15,14,114,19,249,18,238,15,121,10, +92,1,80,250,130,247,147,246,208,246,7,248,13,250,89,252,100,254,207,0,108,4,226,7,184,7,49,5,21,6,108,9, +186,7,169,254,46,245,14,242,61,243,199,244,47,246,46,247,128,248,197,250,153,253,15,1,207,3,25,6,137,8,100,8, +43,7,115,8,175,10,232,12,170,15,93,18,66,18,186,11,238,3,78,2,250,2,197,0,32,253,142,251,149,252,86,250, +94,244,68,242,201,242,141,242,235,246,16,0,81,7,150,10,238,10,210,9,51,9,25,8,39,5,232,2,6,2,22,255, +58,250,120,248,115,252,221,255,235,250,179,243,200,243,117,246,2,245,3,243,200,246,214,255,190,5,103,5,254,5,241,10, +218,15,68,15,193,10,220,9,224,9,43,4,225,254,88,254,17,254,221,253,8,255,187,253,41,247,129,240,255,239,251,241, +76,242,55,244,98,249,3,0,63,5,120,6,210,4,95,3,213,4,2,7,0,4,38,0,160,4,199,14,194,18,97,8, +96,249,117,246,18,250,226,246,133,242,122,245,93,251,173,252,110,248,239,241,163,236,141,237,68,244,137,248,7,250,1,254, +131,2,247,4,235,5,205,6,221,8,65,9,253,7,35,10,139,13,58,13,186,10,185,7,213,3,96,255,84,251,216,250, +123,254,137,0,88,255,0,255,138,254,226,251,135,250,132,251,183,251,27,251,105,252,61,255,182,255,208,253,0,253,196,252, +213,252,219,255,167,4,89,6,225,2,232,255,59,2,7,4,216,3,102,7,215,9,44,6,142,1,126,254,242,252,55,253, +10,253,216,250,211,245,55,240,114,239,65,243,49,246,19,245,140,242,239,242,253,244,163,249,233,6,4,25,74,34,168,27, +92,15,221,10,216,7,11,0,109,255,253,5,205,7,148,7,148,9,182,9,126,7,180,5,27,4,61,253,156,240,191,233, +67,237,44,243,55,248,160,253,160,2,13,7,78,9,204,6,216,1,203,255,249,0,41,1,3,1,229,4,36,10,49,10, +202,4,227,253,138,248,84,246,134,245,173,244,236,246,182,250,83,248,41,242,127,242,163,247,76,247,224,242,14,245,92,252, +248,253,45,252,180,255,157,4,202,3,47,255,108,252,169,254,220,3,5,7,211,6,56,7,173,10,143,10,60,1,219,247, +127,247,156,252,102,2,49,5,69,3,68,2,167,3,175,2,48,0,240,254,193,0,7,6,80,8,199,4,229,1,223,2, +143,5,221,6,156,6,169,9,250,13,214,11,138,6,149,4,250,3,83,3,118,4,39,6,71,5,19,1,143,251,16,248, +49,249,123,252,125,253,185,253,168,254,254,253,58,253,137,254,139,0,119,1,150,255,32,253,252,253,176,255,4,255,162,252, +76,250,68,250,191,251,63,253,250,255,243,1,200,1,233,2,12,6,124,9,34,11,121,7,59,0,194,251,59,251,185,251, +97,254,123,6,176,16,139,21,79,18,156,8,221,252,53,244,56,237,30,227,91,217,195,217,127,230,11,246,110,255,164,1, +151,254,190,249,127,249,241,0,137,11,227,18,137,19,126,13,53,8,132,11,51,17,173,16,159,14,43,17,113,22,144,23, +162,14,40,0,66,245,25,240,10,238,222,234,88,231,96,233,183,237,50,239,35,244,80,255,215,8,48,12,164,11,185,8, +168,3,139,0,219,1,26,3,125,2,85,2,188,2,181,3,30,5,235,6,38,8,157,3,209,250,106,246,93,246,103,246, +64,246,223,245,22,247,243,250,194,253,169,254,133,2,90,9,68,10,177,3,32,0,237,2,47,8,234,13,200,14,111,8, +223,254,41,246,35,245,248,251,55,2,88,5,158,1,196,246,207,243,252,251,221,255,92,249,223,241,156,245,236,255,207,254, +154,244,108,241,223,246,109,0,214,9,250,11,78,7,57,3,143,3,36,7,205,10,116,11,107,7,158,1,16,255,142,255, +86,2,153,8,73,13,165,10,210,3,222,253,61,250,125,249,174,249,62,248,184,247,149,250,209,253,214,254,103,255,14,2, +171,3,81,254,197,246,216,245,138,248,32,250,232,252,37,2,48,6,100,4,232,0,99,1,81,254,225,246,10,247,7,253, +127,0,255,2,69,7,84,14,12,23,6,32,65,40,84,37,104,18,244,254,10,246,255,243,163,244,85,245,45,244,240,239, +37,232,247,224,106,223,78,227,116,232,11,236,90,240,221,247,24,1,31,10,99,18,145,25,165,30,57,33,70,33,174,28, +218,20,242,15,46,14,96,11,31,7,14,2,60,252,48,246,187,239,155,234,0,235,217,239,170,242,19,243,198,245,19,251, +100,2,54,9,221,8,96,3,34,1,140,2,81,4,39,6,151,8,204,9,14,7,115,2,153,254,243,251,173,253,227,1, +201,1,108,255,31,0,94,1,89,254,99,250,168,253,99,5,229,8,201,9,56,11,29,10,99,5,39,1,53,1,177,0, +62,250,3,244,209,241,172,240,188,242,37,249,123,1,64,10,200,12,251,3,178,247,188,241,169,241,89,244,232,250,249,2, +102,7,56,9,27,10,244,8,104,7,233,6,150,6,27,6,101,6,229,7,10,8,217,6,37,8,221,9,2,8,221,3, +120,255,134,252,75,251,226,249,195,248,71,250,91,255,205,3,74,1,195,250,216,247,121,248,140,247,99,243,237,242,243,250, +116,2,109,3,35,3,129,3,4,3,135,0,48,251,244,247,194,250,45,0,38,5,122,7,63,5,240,1,220,0,6,0, +14,255,75,255,25,254,48,251,45,251,182,253,15,255,17,255,51,254,39,253,80,253,31,254,3,255,150,255,151,255,32,1, +65,4,102,5,176,3,57,1,94,254,20,251,173,249,55,250,240,248,102,246,152,247,68,252,164,254,84,254,115,1,208,5, +226,3,141,0,250,255,100,252,239,250,116,2,58,10,40,14,127,18,127,20,111,17,85,13,173,12,196,13,142,9,87,255, +135,245,230,238,204,234,129,232,43,232,30,234,67,235,47,234,249,233,94,234,110,233,214,232,47,234,231,237,232,245,37,4, +179,19,180,26,254,25,212,26,68,29,70,28,123,25,102,26,25,31,147,30,45,22,148,16,135,15,164,10,187,2,50,252, +21,247,95,242,61,236,112,231,45,232,187,234,51,235,188,234,234,234,136,236,183,237,228,238,214,244,140,253,21,3,15,6, +83,10,169,17,184,23,210,22,249,18,33,16,196,8,137,252,251,244,176,246,12,253,119,5,169,16,220,23,57,20,254,11, +213,4,24,249,184,230,30,216,181,214,177,220,49,224,191,228,21,240,99,254,198,12,165,26,65,34,156,29,70,14,121,252, +168,240,221,240,49,253,226,9,234,11,192,8,195,10,228,16,161,17,177,9,58,1,100,252,182,247,175,245,111,248,142,250, +209,249,163,248,76,249,59,251,73,250,247,246,231,245,237,248,237,0,196,9,190,13,223,16,122,19,55,12,46,253,161,243, +60,244,144,248,58,250,164,250,39,254,20,3,171,4,124,3,200,3,4,5,85,3,196,254,31,249,251,245,178,250,127,3, +18,7,196,5,230,4,26,5,93,4,116,1,133,254,111,254,117,255,201,254,84,252,230,248,219,245,234,243,140,242,44,243, +31,247,80,251,228,252,131,253,59,255,129,1,72,3,85,5,142,8,89,10,119,8,48,6,207,6,53,8,53,7,54,5, +218,4,254,3,97,1,255,255,85,255,60,253,45,250,206,246,102,245,215,245,108,245,188,246,83,249,123,249,84,252,209,3, +131,8,54,8,78,7,6,9,213,9,101,5,33,2,86,4,81,5,78,3,139,2,67,3,241,1,111,253,36,251,219,251, +34,249,21,245,2,245,151,246,225,247,215,249,251,252,247,254,108,253,248,252,98,0,46,3,0,4,39,4,70,5,141,8, +40,10,228,9,17,11,40,9,95,1,204,250,70,252,87,2,76,1,49,248,75,243,62,245,140,246,55,244,6,240,237,237, +197,240,222,247,214,0,218,7,11,11,8,11,155,7,77,3,80,2,248,4,87,8,205,7,163,2,162,254,153,255,237,3, +140,7,211,7,149,6,185,3,130,253,152,248,198,248,52,252,238,1,154,7,25,9,213,6,26,5,205,7,46,13,225,14, +102,10,64,0,9,242,29,230,187,225,170,227,111,231,21,232,8,230,162,230,157,234,219,240,2,251,36,6,168,12,108,14, +225,13,152,13,204,16,224,22,146,27,252,28,193,27,19,24,217,18,97,14,65,11,105,7,193,1,189,251,27,247,33,244, +252,241,52,240,146,238,53,236,31,233,106,230,199,229,57,234,240,242,114,250,119,0,56,7,224,10,204,9,215,8,165,10, +71,13,146,13,200,10,157,7,1,6,44,6,86,7,179,7,29,7,103,5,31,1,247,251,167,249,117,252,144,3,58,10, +156,13,73,15,41,15,21,11,107,3,1,252,233,246,209,241,66,238,111,240,220,244,254,246,194,247,195,246,129,242,60,236, +247,231,173,234,188,243,119,253,92,5,67,12,172,19,34,28,10,34,198,33,85,29,39,24,246,18,35,14,198,10,152,8, +146,5,104,0,180,250,155,246,125,243,80,240,219,237,216,236,223,237,17,241,26,245,202,248,249,250,15,251,123,251,177,254, +173,3,2,8,39,10,189,9,213,7,239,6,188,7,34,7,128,4,136,3,43,4,211,2,117,255,169,252,193,251,159,252, +61,254,55,255,96,255,241,255,75,1,238,1,163,0,85,255,35,0,65,0,2,254,219,252,232,252,107,252,65,253,39,255, +255,0,80,3,81,4,210,3,68,3,111,1,157,254,244,251,148,249,41,249,21,251,16,254,18,1,98,2,161,1,210,255, +17,254,235,252,176,250,144,248,91,250,63,254,94,1,81,4,5,6,100,5,142,3,200,1,69,1,191,1,118,1,61,0, +190,255,14,0,253,254,76,253,124,253,13,254,156,253,254,252,180,251,194,250,28,252,95,254,133,255,176,255,244,255,93,0, +201,255,199,254,75,255,168,1,141,4,203,6,178,7,37,6,187,2,203,0,11,1,74,1,17,1,127,0,107,255,121,254, +147,254,58,0,119,1,199,255,209,252,174,251,202,252,5,255,184,1,136,4,224,5,24,5,234,3,117,2,208,255,166,253, +171,253,154,254,82,254,22,254,140,0,214,3,224,4,199,4,72,5,153,5,52,4,161,0,219,251,35,248,66,248,188,251, +135,254,248,254,119,254,252,253,132,253,206,252,233,252,66,254,117,254,78,253,129,253,197,255,218,2,95,4,72,3,224,2, +52,5,151,7,239,8,116,10,199,10,199,8,152,6,59,4,211,255,125,251,62,249,135,247,53,246,7,246,21,246,185,246, +112,248,91,249,248,248,151,249,237,251,118,254,157,0,136,2,123,4,203,6,106,8,146,8,74,8,75,8,133,8,139,8, +156,7,75,5,27,2,17,0,161,255,224,254,46,254,187,253,248,251,149,250,148,250,227,249,196,248,152,248,228,249,233,251, +178,252,101,253,232,255,4,4,38,9,165,10,215,5,179,1,52,2,182,3,43,5,32,8,96,10,133,5,39,250,61,243, +234,242,66,241,9,239,176,240,170,243,222,244,108,245,107,248,55,253,177,255,235,0,0,4,245,6,220,8,204,11,6,15, +148,16,156,16,164,14,100,9,125,3,236,0,4,0,186,253,32,252,99,253,95,255,118,255,57,254,66,253,87,252,93,251, +217,250,131,249,150,247,235,247,210,249,37,251,21,254,95,3,78,6,138,4,78,1,105,255,238,254,140,255,67,1,99,3, +63,4,45,3,170,1,43,1,68,2,130,4,181,5,21,5,11,4,80,2,39,255,70,251,149,247,79,246,157,248,121,251, +255,252,136,254,53,0,50,1,75,2,51,4,64,5,75,4,23,3,4,2,172,255,75,253,113,252,72,252,141,251,189,250, +27,252,67,254,142,253,182,252,184,254,122,0,88,1,173,3,27,7,226,9,192,10,152,10,105,10,140,8,115,5,78,3, +216,1,87,0,218,254,174,254,73,0,70,0,7,254,242,252,87,252,20,250,166,247,61,247,134,248,6,249,17,249,127,251, +207,254,52,0,171,0,168,1,22,3,184,3,204,2,209,1,179,1,99,2,48,4,13,5,94,3,87,2,223,3,9,5, +103,4,231,2,22,0,146,252,160,250,119,250,78,251,15,252,222,250,146,249,12,252,181,0,128,3,14,4,60,3,124,1, +60,0,172,255,249,254,234,255,47,3,29,5,217,3,122,1,224,255,121,255,136,255,19,0,51,2,128,4,123,4,61,2, +156,255,227,253,176,252,136,252,38,254,104,254,133,252,80,252,237,253,217,255,244,1,149,2,205,1,125,0,175,254,9,255, +96,1,156,1,111,255,11,253,96,252,66,253,97,252,164,250,181,251,160,253,67,253,165,250,65,248,112,249,56,252,245,252, +31,254,220,0,226,1,162,1,245,2,230,4,255,4,12,4,94,4,108,5,183,5,184,5,17,6,38,6,185,4,244,1, +217,255,196,254,234,253,169,253,54,253,106,251,156,248,240,244,168,242,129,245,134,251,200,254,187,253,206,251,196,251,184,252, +159,253,64,0,226,4,229,7,26,7,199,4,154,3,118,3,73,3,27,3,224,2,157,1,129,255,86,254,149,254,200,254, +16,254,84,253,178,253,147,254,202,254,186,254,96,254,5,253,221,251,231,251,89,252,11,253,9,254,56,255,119,0,88,0, +204,254,71,254,7,0,94,3,85,6,165,6,228,4,52,3,196,1,111,0,50,0,0,1,113,1,49,1,121,1,1,3, +123,4,210,3,225,1,49,1,165,0,54,254,157,251,142,250,76,250,17,250,149,250,218,252,63,255,91,255,44,254,60,254, +87,0,187,2,100,3,55,3,20,3,64,2,179,1,51,2,66,2,243,0,1,255,85,253,254,251,181,251,20,253,49,254, +97,254,133,254,152,253,28,252,66,251,144,250,97,251,215,253,133,255,20,0,52,0,111,0,122,0,118,0,160,2,42,3, +93,253,59,249,106,252,64,0,165,1,35,2,20,1,195,255,131,0,180,2,156,3,240,1,31,0,151,0,197,2,29,5, +209,6,107,7,68,5,211,255,99,250,234,247,104,248,172,250,9,253,20,254,5,253,113,250,154,248,33,249,234,251,79,255, +40,2,3,5,175,6,165,6,86,8,126,11,235,11,247,8,160,3,33,253,171,248,118,248,220,251,151,255,75,0,115,254, +34,252,50,250,70,250,11,253,219,254,85,253,160,252,62,255,213,0,55,255,23,254,187,255,195,1,227,1,165,1,88,2, +144,2,124,2,36,3,168,3,167,3,72,3,67,2,79,0,7,254,44,254,255,0,82,2,49,1,54,0,168,255,244,254, +5,255,103,0,198,1,101,1,65,255,25,252,252,248,47,248,204,250,79,254,137,255,110,255,172,0,25,2,75,2,233,2, +51,4,128,4,56,3,178,1,197,1,53,2,169,1,147,2,5,5,187,5,180,4,101,3,146,0,176,251,67,248,61,249, +36,252,218,253,52,255,6,1,75,1,150,254,174,251,11,252,76,254,53,0,86,2,250,3,109,3,74,1,198,255,241,0, +185,4,136,8,11,10,204,8,112,5,41,1,124,254,24,255,155,0,60,0,70,254,151,251,19,249,184,247,200,247,192,249, +236,252,39,255,251,255,27,0,35,0,231,0,101,2,87,4,238,5,237,4,13,2,210,1,25,5,213,7,252,7,197,6, +153,4,181,1,2,0,195,255,116,254,7,252,49,251,247,251,191,252,202,253,238,254,105,255,114,0,214,2,112,3,220,254, +133,248,147,247,123,252,226,1,239,4,82,6,233,6,150,5,229,1,89,255,232,255,209,0,9,0,249,253,108,252,13,253, +189,254,248,255,18,1,49,2,131,3,112,5,86,7,215,7,213,6,190,5,70,4,34,1,129,253,81,251,1,252,23,255, +219,0,100,0,116,255,128,253,223,251,159,252,97,253,141,252,8,252,37,253,132,254,50,254,70,254,93,1,99,4,226,3, +69,1,209,255,209,0,251,2,219,4,78,5,228,3,99,2,226,1,50,2,182,2,0,1,41,254,232,253,242,253,129,252, +245,252,191,254,156,254,183,252,207,250,126,250,155,251,209,252,89,254,186,255,155,255,54,255,39,0,168,1,127,2,131,2, +114,2,239,2,77,3,157,2,158,1,195,1,195,2,223,2,244,1,93,1,53,0,21,253,50,250,115,249,201,249,205,250, +33,252,108,252,228,251,77,251,175,250,148,250,146,251,150,253,203,255,7,1,20,1,33,1,126,2,25,4,182,3,54,2, +204,1,72,2,149,2,75,2,158,1,66,0,119,253,18,251,3,251,93,251,103,250,18,249,200,248,30,250,190,251,175,252, +232,253,3,255,22,255,9,255,200,255,190,1,75,4,120,5,129,4,147,2,124,1,227,1,61,2,199,1,81,1,160,0, +104,0,101,2,255,4,243,5,184,5,172,3,183,254,14,249,54,245,234,243,89,245,61,248,189,250,50,252,181,252,23,253, +25,254,58,0,239,3,52,7,160,7,154,6,144,5,18,4,29,3,234,3,244,5,18,7,125,4,232,254,170,250,252,249, +143,251,104,253,41,254,214,253,138,253,83,253,134,252,189,251,218,251,229,252,147,254,27,0,51,1,45,2,102,2,224,1, +247,1,237,2,209,3,177,3,157,2,226,1,204,1,59,1,92,255,144,252,242,250,45,252,165,255,207,3,233,6,218,7, +15,6,147,1,123,255,225,6,98,21,224,30,183,26,199,11,54,250,147,237,42,237,225,247,137,1,84,1,94,246,1,228, +26,212,185,208,164,219,57,238,128,252,97,255,217,250,217,247,32,254,209,13,140,30,230,40,192,42,97,39,65,37,71,37, +24,35,224,28,0,20,171,10,138,1,4,248,70,239,89,232,103,226,53,221,221,217,101,218,220,223,143,232,14,241,30,246, +41,248,47,251,69,1,178,9,151,18,4,25,35,27,47,24,197,16,92,10,200,9,187,11,70,11,29,9,185,6,24,3, +214,254,184,251,54,249,233,246,193,245,149,245,94,246,141,248,111,250,101,250,179,249,225,249,192,250,228,251,123,253,216,255, +150,2,71,4,33,4,249,2,210,1,103,1,101,2,33,4,21,5,91,5,4,6,52,6,59,4,120,1,160,0,36,1, +200,0,96,255,236,253,174,252,157,251,52,251,164,251,73,252,233,252,232,253,193,254,35,254,242,251,136,250,214,252,73,2, +222,5,111,3,248,252,54,248,148,248,254,252,176,1,133,4,78,6,228,6,97,5,32,3,180,1,122,1,42,2,241,2, +35,3,50,1,155,252,152,248,234,246,164,246,219,248,123,253,56,1,253,1,56,0,198,253,75,252,7,252,241,252,219,254, +54,1,155,2,95,1,127,255,78,0,91,2,40,3,16,3,204,1,214,254,132,252,41,253,88,255,224,0,28,2,39,3, +200,2,207,1,35,2,51,3,35,3,21,2,226,0,238,254,242,252,226,252,86,253,36,252,62,251,8,253,205,255,39,0, +199,253,119,251,98,251,190,253,241,0,183,2,35,3,125,3,58,3,61,2,0,2,204,2,197,3,166,4,20,5,100,4, +132,2,71,0,33,255,75,255,52,255,191,254,146,254,16,254,29,254,13,255,135,254,197,253,199,255,74,2,99,2,64,1, +42,0,128,254,225,252,145,253,134,255,36,0,89,1,76,4,98,5,218,3,180,2,197,2,138,2,35,1,185,255,41,255, +76,254,13,253,75,253,152,255,77,2,184,3,34,3,29,0,32,252,127,250,154,251,40,253,137,254,36,0,186,1,156,2, +69,2,122,1,87,1,228,1,126,2,176,2,168,2,60,2,27,1,246,255,226,254,95,253,241,251,76,251,244,251,33,253, +194,252,232,251,42,253,44,255,60,0,40,2,85,5,251,6,88,6,131,5,99,5,85,5,121,4,34,2,173,255,96,255, +15,0,67,254,150,250,113,249,244,250,81,251,186,250,24,251,167,251,41,252,20,253,79,254,188,255,66,0,178,255,172,255, +168,0,229,1,115,2,120,2,44,3,176,3,213,2,146,1,70,0,240,254,227,253,21,253,225,252,11,252,58,249,57,247, +47,248,250,249,196,250,67,251,3,253,75,0,81,3,160,4,204,4,0,5,35,5,178,4,249,3,79,3,7,3,239,2, +131,1,15,255,147,253,170,252,82,251,90,250,168,250,68,252,190,253,189,253,157,253,147,254,64,255,39,255,124,255,251,255, +250,255,69,0,101,0,141,255,223,255,102,2,0,5,136,6,183,6,246,4,209,1,203,254,242,253,204,255,15,1,127,254, +63,249,118,245,70,246,118,250,188,253,65,254,242,253,53,254,167,254,158,255,47,1,255,1,183,1,9,1,99,0,82,0, +246,0,26,2,63,3,116,3,236,2,44,2,54,1,59,1,98,2,17,3,246,2,170,1,167,254,136,251,197,249,221,249, +253,251,108,254,174,255,218,0,97,2,98,2,202,255,62,252,252,249,200,249,157,251,225,254,194,1,132,2,227,0,90,254, +198,253,227,0,117,5,107,7,0,6,114,3,213,0,88,254,242,252,159,252,5,252,23,251,33,251,202,252,229,255,116,3, +173,5,9,6,69,5,52,3,246,0,161,1,174,4,135,6,138,6,91,5,22,2,229,253,24,252,97,253,19,255,49,255, +250,254,193,255,2,0,186,254,75,253,178,252,221,252,67,253,158,253,190,254,24,0,226,255,1,255,55,255,66,0,107,1, +229,1,119,1,111,1,83,2,154,3,187,4,117,4,215,2,238,1,24,2,28,2,254,1,233,1,32,1,68,255,230,252, +75,251,78,251,82,252,128,253,44,254,119,253,11,252,204,251,28,253,248,254,166,0,84,2,249,3,89,4,107,3,171,2, +14,2,36,1,150,0,118,0,99,0,243,255,164,254,22,253,174,252,215,253,133,255,171,0,219,1,60,3,145,3,226,2, +233,1,197,0,50,0,137,0,248,0,33,1,229,0,158,255,211,253,80,253,224,253,207,253,101,253,33,253,105,252,35,252, +27,253,148,254,98,0,50,2,2,3,148,2,148,1,42,1,201,1,216,2,167,3,152,3,15,3,221,2,41,2,190,0, +34,0,110,0,140,0,99,0,65,0,2,0,163,255,120,255,60,255,166,254,68,254,94,254,28,255,41,0,9,0,38,255, +114,255,154,0,108,1,134,1,0,1,77,0,0,255,92,253,70,253,106,254,17,255,132,255,180,0,138,2,49,3,147,1, +156,0,245,1,25,3,27,3,145,2,52,1,215,255,204,254,141,253,39,253,132,253,76,253,49,253,226,253,203,254,212,255, +220,0,118,1,60,1,81,0,192,255,214,255,29,0,106,0,37,0,151,255,178,255,220,255,220,255,68,0,215,0,211,1, +86,3,180,4,204,5,204,5,223,3,93,1,226,255,61,255,233,254,162,255,1,1,59,1,133,1,209,1,60,254,96,249, +67,249,110,250,46,246,204,238,124,237,140,244,10,251,21,254,162,3,54,9,254,9,125,9,81,9,117,7,236,3,102,255, +200,251,152,250,41,251,141,253,197,0,69,2,52,2,239,1,185,1,163,1,187,1,20,3,168,6,220,9,209,8,229,3, +242,254,92,252,209,251,151,252,84,254,153,255,144,254,219,251,143,249,91,248,234,248,181,251,173,254,21,0,131,0,41,0, +89,255,184,255,79,1,7,2,129,1,103,1,199,1,107,1,157,0,48,0,21,0,216,255,102,255,198,255,234,0,166,0, +220,254,202,253,178,253,215,253,158,254,116,255,123,255,238,255,120,1,103,2,225,1,10,1,72,1,29,3,192,4,208,3, +249,0,65,254,121,252,86,252,0,254,34,0,31,1,82,0,9,255,6,255,180,255,123,255,61,254,252,252,250,252,117,254, +40,0,126,1,192,2,54,3,202,2,196,2,221,2,189,1,25,0,168,255,253,255,1,255,20,253,3,253,189,254,138,255, +232,254,63,254,122,254,150,255,250,0,134,2,22,4,125,4,76,3,193,1,20,1,70,1,133,1,31,1,12,0,12,255, +226,254,2,255,182,254,150,254,25,255,252,255,11,1,154,1,242,0,228,255,206,255,96,0,123,0,45,0,17,0,25,0, +237,255,248,255,22,1,190,2,180,3,206,3,45,3,129,2,137,2,81,2,226,1,44,2,88,1,56,254,90,251,59,251, +193,252,153,252,156,251,128,253,34,0,91,0,141,0,113,1,72,1,248,0,2,1,209,0,65,1,92,2,151,2,163,1, +168,0,91,0,207,0,202,1,111,2,130,2,108,2,255,1,107,1,206,0,183,255,206,254,27,254,7,253,33,253,19,255, +29,1,141,2,106,3,18,3,114,1,224,255,182,255,41,0,44,0,49,0,205,255,175,254,49,254,136,254,223,254,26,255, +63,255,139,255,249,255,20,0,252,255,204,255,109,255,19,255,132,254,221,253,12,254,210,254,80,255,59,0,29,2,55,3, +169,2,119,2,6,3,7,2,122,0,116,1,40,3,7,2,29,255,230,252,179,251,31,251,195,250,220,250,103,252,26,255, +102,1,18,2,78,1,250,0,232,1,59,2,228,0,39,255,248,253,9,253,250,251,226,250,64,250,77,250,219,250,88,252, +204,254,178,0,138,1,68,2,11,3,32,4,53,5,6,5,107,4,27,4,151,2,136,0,146,255,131,254,76,252,188,250, +147,251,233,252,250,252,238,253,169,255,177,255,21,0,192,3,76,9,158,11,190,6,190,255,197,253,20,255,51,0,92,0, +220,255,182,1,176,3,118,255,106,249,177,249,202,253,243,255,223,255,201,254,119,252,92,250,70,251,73,254,38,0,190,0, +7,2,11,4,249,4,68,4,180,2,163,0,19,255,29,255,174,0,51,3,134,4,102,3,199,1,163,0,76,0,178,1, +31,3,116,3,5,4,46,4,165,2,85,0,239,254,94,254,175,252,43,250,89,249,221,250,240,252,89,253,224,252,59,253, +179,252,183,252,178,0,168,3,92,1,20,255,210,255,152,0,97,0,158,0,74,1,7,1,37,0,137,0,118,2,240,3, +170,3,28,3,26,3,9,2,188,0,221,0,150,0,40,255,18,254,195,253,71,254,248,254,13,255,16,255,214,254,27,254, +205,253,33,254,197,254,90,255,85,255,17,255,27,255,25,255,144,254,169,253,39,253,148,253,115,254,233,254,69,255,45,0, +246,0,131,1,22,2,102,1,213,255,91,255,159,255,83,0,188,1,150,2,102,2,132,1,47,0,169,255,252,255,243,255, +248,255,68,0,134,255,241,253,79,253,139,253,169,253,52,254,94,254,11,253,145,252,161,253,236,253,213,253,144,254,162,255, +217,0,73,1,161,0,214,0,50,2,114,2,254,0,150,255,40,255,37,255,106,255,233,255,247,255,101,255,199,254,250,254, +238,255,83,0,236,255,134,255,72,255,34,255,245,254,164,254,57,254,99,253,43,252,121,251,210,252,147,0,115,3,228,2, +88,1,120,0,41,255,82,255,36,2,196,2,253,255,201,255,177,1,68,0,246,253,104,254,157,255,107,0,84,0,100,255, +210,255,135,0,128,255,151,254,155,254,231,254,175,255,32,0,133,255,91,254,105,253,126,253,122,254,193,255,213,0,107,1, +228,1,243,1,237,0,138,255,91,254,130,253,154,253,60,254,128,254,25,255,74,1,211,3,34,4,100,2,76,0,180,254, +200,254,29,0,152,255,254,252,60,253,251,1,113,4,251,0,197,253,45,254,229,254,100,254,173,253,123,254,64,0,163,255, +175,254,50,1,214,3,255,2,78,255,30,251,36,250,106,252,136,255,199,4,247,10,29,12,92,7,74,2,64,0,75,255, +48,254,158,254,119,255,69,254,182,252,130,252,124,252,33,252,193,251,46,252,195,254,88,1,88,0,189,253,80,253,89,254, +48,255,248,255,201,0,207,1,185,2,169,2,10,2,158,1,103,1,46,1,175,0,136,0,92,1,50,2,109,2,93,2, +245,1,135,1,105,1,121,1,235,1,66,2,184,1,225,0,224,255,27,254,153,252,109,252,126,252,10,252,39,252,67,253, +112,254,73,255,240,255,47,0,127,0,205,1,106,3,234,3,83,3,108,2,158,1,228,0,130,0,253,0,150,1,85,1, +15,1,29,1,152,0,239,255,19,0,121,0,56,0,105,255,195,254,182,254,95,255,65,0,152,0,213,0,89,1,64,1, +141,0,188,255,11,255,90,255,226,255,38,255,120,254,22,255,169,255,52,255,116,254,2,254,48,253,194,252,33,255,42,3, +250,4,211,3,13,2,239,0,102,255,185,253,96,254,140,0,3,1,194,255,118,254,81,254,12,0,100,1,109,255,115,252, +199,252,45,255,219,255,131,255,123,0,96,2,36,4,211,5,141,8,163,11,83,11,46,7,63,2,236,252,170,247,233,243, +222,240,14,239,35,240,211,242,9,246,189,250,118,0,4,5,74,7,166,7,162,6,203,4,152,2,146,0,42,0,168,1, +73,3,13,4,51,4,145,4,48,5,4,4,94,1,126,0,135,1,148,2,85,3,203,3,165,3,95,2,225,255,62,253, +43,251,201,249,43,249,26,249,170,249,153,250,75,251,22,252,56,253,79,254,214,254,154,254,202,254,24,0,118,1,98,2, +194,2,113,2,55,2,125,2,210,2,211,2,19,2,200,0,179,255,62,255,132,255,224,255,171,255,120,255,145,255,138,255, +217,255,109,0,158,255,226,253,155,253,3,254,110,253,141,253,42,255,145,0,121,1,84,2,201,2,204,2,48,2,154,0, +129,254,27,253,60,253,50,254,226,254,73,255,205,255,192,0,233,1,63,2,154,1,12,1,11,1,28,1,216,0,141,0, +155,0,148,0,87,0,227,0,66,2,165,2,124,1,133,0,126,0,144,0,159,0,97,0,9,255,153,253,144,253,43,254, +39,254,230,253,72,254,134,255,10,1,250,1,105,2,162,2,8,2,184,0,151,255,176,254,127,254,74,255,95,255,158,254, +91,255,93,1,6,2,215,0,156,255,172,255,200,0,10,2,203,2,234,2,186,2,77,2,174,1,117,1,120,1,219,0, +45,0,33,0,109,255,172,253,51,253,129,254,18,255,108,254,73,254,219,254,123,255,69,0,52,1,200,1,245,1,79,2, +147,2,30,2,149,1,16,1,197,255,128,254,81,254,252,254,29,0,43,1,199,1,203,1,223,0,199,255,77,255,151,254, +116,253,243,252,97,253,51,254,180,254,32,255,48,0,90,1,35,2,168,2,48,2,8,1,169,0,201,0,164,0,118,0, +14,0,205,255,181,0,207,1,191,1,57,1,209,0,235,255,193,254,130,254,140,255,153,0,117,0,213,255,126,255,0,255, +174,254,73,255,99,0,9,1,243,0,225,0,41,1,79,1,226,1,219,2,243,2,238,2,109,3,41,3,169,2,189,2, +190,2,227,2,139,2,227,0,193,255,170,255,217,254,187,253,147,253,136,253,108,252,15,251,14,251,254,251,148,252,24,253, +0,254,32,255,61,0,18,1,252,1,7,3,20,3,55,2,244,1,171,2,93,3,102,3,54,3,40,3,173,2,143,1, +78,0,5,255,186,253,10,253,62,253,158,253,221,253,164,254,9,0,69,1,101,1,68,0,107,255,207,255,52,0,17,0, +82,0,32,1,204,1,238,1,209,1,142,1,98,0,128,254,183,253,128,254,23,255,203,254,181,254,125,254,141,253,209,253, +149,255,106,0,39,0,81,0,16,1,215,1,251,1,166,1,186,1,50,2,147,2,51,2,197,0,112,255,201,254,101,254, +190,254,222,255,124,0,172,255,43,254,132,253,115,253,20,253,95,253,105,254,250,254,149,255,220,0,245,1,35,2,205,1, +14,2,137,2,177,1,87,0,61,0,172,0,164,0,143,0,155,0,128,0,29,0,121,255,239,254,191,254,199,254,249,254, +224,254,8,254,10,253,101,252,30,252,136,252,56,253,214,253,132,255,98,2,108,4,92,4,144,3,23,4,202,4,62,3, +32,1,201,0,145,0,247,254,137,253,217,253,19,255,12,255,107,253,238,251,181,251,229,252,134,254,76,254,221,251,206,249, +132,249,25,250,100,251,246,253,41,1,51,4,243,6,131,8,69,8,38,7,127,5,248,2,152,0,182,255,234,255,229,255, +154,255,41,0,62,1,102,1,217,0,159,0,91,0,39,255,24,253,197,251,94,252,94,253,140,253,90,254,182,255,110,255, +38,254,100,254,214,255,176,0,47,1,213,1,155,1,178,0,127,0,147,0,18,0,109,255,227,254,199,254,150,255,123,0, +97,0,123,255,237,254,221,255,67,2,126,5,233,8,71,10,26,7,82,0,170,249,67,246,27,247,176,250,234,253,163,254, +100,253,116,252,60,253,77,255,145,1,1,3,6,3,7,2,67,0,233,253,144,252,57,253,60,255,255,1,70,4,194,4, +229,3,255,1,171,255,2,255,49,0,165,1,196,2,236,2,4,2,87,1,32,1,105,0,46,255,130,254,233,254,102,255, +11,255,101,254,112,254,48,255,108,255,146,254,250,253,85,254,161,254,234,254,8,0,15,1,241,0,218,0,167,1,24,2, +221,1,49,2,194,2,97,2,128,1,254,0,167,0,38,0,125,255,165,254,179,253,221,252,124,252,176,252,208,252,165,252, +236,252,145,253,67,254,106,255,191,0,218,1,145,2,67,2,204,1,144,2,114,3,76,3,13,3,60,3,235,2,96,1, +141,255,208,254,250,254,51,255,14,255,92,254,160,253,106,253,105,253,29,253,157,252,46,252,192,251,190,251,225,252,159,254, +255,255,170,0,125,0,43,0,142,0,113,1,132,2,251,2,198,1,255,255,33,255,141,254,0,254,62,254,196,254,0,255, +212,255,26,1,105,1,225,0,79,0,175,255,227,254,219,253,99,253,118,254,174,255,159,255,99,255,167,255,187,255,113,255, +60,255,143,255,35,0,31,0,90,255,150,254,100,254,63,254,184,253,170,253,122,254,252,254,144,254,73,254,236,254,165,255, +36,0,15,1,162,1,255,0,44,0,63,0,78,1,126,2,162,2,241,1,46,1,136,0,42,0,175,255,228,254,168,254, +235,254,185,254,102,254,174,254,250,254,167,254,137,254,31,255,144,255,158,255,164,255,160,255,197,255,33,0,144,0,1,1, +6,1,158,0,107,0,168,0,59,1,116,1,219,0,118,0,165,0,89,0,136,255,39,255,141,255,73,0,151,0,58,0, +227,255,44,0,162,0,137,0,246,255,160,255,31,0,3,1,6,1,42,0,121,255,46,255,114,255,65,0,129,0,236,255, +98,255,3,255,195,254,25,255,173,255,237,255,108,0,105,1,194,1,55,1,233,0,6,1,231,0,105,0,156,255,191,254, +116,254,215,254,72,255,173,255,150,0,139,1,152,1,79,1,98,1,72,1,220,0,103,0,207,255,77,255,67,255,104,255, +60,255,2,255,53,255,115,255,115,255,186,255,24,0,251,255,247,255,142,0,65,1,190,1,25,2,59,2,0,2,135,1, +22,1,193,0,130,0,76,0,208,255,18,255,230,254,140,255,249,255,212,255,27,0,180,0,117,0,153,255,23,255,44,255, +201,255,71,0,17,0,27,0,7,1,186,1,117,1,195,0,80,0,78,0,180,0,62,1,92,1,3,1,201,0,209,0, +211,0,134,0,227,255,191,255,79,0,79,0,150,255,9,255,147,254,24,254,252,253,23,254,65,254,243,254,7,0,141,0, +198,0,153,1,49,2,201,1,99,1,163,1,70,2,128,2,54,1,95,255,215,254,211,254,63,254,35,254,10,255,0,0, +50,0,143,255,164,254,42,254,77,254,193,254,96,255,233,255,44,0,172,0,86,1,46,1,72,0,130,255,45,255,100,255, +0,0,136,0,209,0,164,0,209,255,242,254,194,254,45,255,225,255,160,0,228,0,179,0,112,0,170,255,175,254,240,254, +24,0,135,0,42,0,45,0,198,0,203,0,58,0,135,0,63,1,11,1,104,0,226,255,116,255,85,255,248,254,87,254, +197,254,76,0,101,1,134,1,89,1,47,1,225,0,109,0,237,255,127,255,36,255,249,254,82,255,233,255,41,0,52,0, +74,0,111,0,127,0,66,0,61,0,169,0,188,0,83,0,172,255,98,255,125,0,184,1,76,1,146,0,188,0,239,0, +211,0,163,0,71,0,121,255,38,254,11,253,206,252,25,253,94,253,158,253,52,254,195,254,241,254,172,255,235,0,98,1, +89,1,191,1,91,2,204,2,230,2,152,2,14,2,128,1,246,0,247,255,115,254,124,253,171,253,80,254,123,254,251,253, +139,253,122,253,100,253,112,253,241,253,167,254,36,255,44,255,53,255,228,255,217,0,110,1,191,1,46,2,174,2,160,2, +217,1,76,1,86,1,24,1,73,0,124,255,235,254,126,254,53,254,40,254,125,254,251,254,48,255,57,255,104,255,172,255, +245,255,44,0,1,0,154,255,136,255,236,255,92,0,155,0,195,0,241,0,31,1,37,1,226,0,169,0,168,0,161,0, +180,0,13,1,60,1,247,0,102,0,224,255,166,255,115,255,26,255,241,254,2,255,13,255,227,254,153,254,196,254,94,255, +161,255,169,255,234,255,36,0,63,0,110,0,174,0,198,0,149,0,116,0,173,0,202,0,122,0,252,255,134,255,76,255, +87,255,98,255,130,255,232,255,36,0,236,255,204,255,26,0,113,0,138,0,174,0,0,1,11,1,160,0,43,0,212,255, +127,255,52,255,231,254,220,254,61,255,116,255,94,255,110,255,144,255,189,255,24,0,117,0,157,0,78,0,238,255,97,0, +27,1,12,1,167,0,196,0,113,1,240,1,146,1,253,0,186,0,57,0,170,255,131,255,85,255,92,255,235,255,43,0, +9,0,84,0,163,0,100,0,48,0,56,0,224,255,81,255,48,255,87,255,71,255,43,255,97,255,172,255,186,255,164,255, +158,255,178,255,205,255,254,255,97,0,178,0,200,0,10,1,158,1,236,1,138,1,229,0,143,0,150,0,202,0,216,0, +121,0,14,0,225,255,110,255,169,254,40,254,12,254,42,254,121,254,246,254,123,255,198,255,201,255,209,255,63,0,16,1, +163,1,129,1,2,1,211,0,38,1,88,1,253,0,150,0,114,0,104,0,104,0,68,0,249,255,195,255,188,255,248,255, +3,0,109,255,233,254,22,255,128,255,156,255,109,255,131,255,11,0,88,0,64,0,62,0,64,0,4,0,192,255,161,255, +142,255,74,255,204,254,163,254,99,255,112,0,191,0,124,0,114,0,210,0,39,1,210,0,63,0,129,0,72,1,116,1, +246,0,126,0,54,0,170,255,5,255,232,254,248,254,175,254,104,254,104,254,178,254,59,255,215,255,114,0,175,0,107,0, +128,0,54,1,195,1,14,2,85,2,42,2,111,1,175,0,30,0,178,255,104,255,18,255,183,254,108,254,249,253,161,253, +146,253,53,253,193,252,252,252,128,253,233,253,178,254,197,255,145,0,76,1,66,2,235,2,17,3,36,3,245,2,58,2, +132,1,67,1,27,1,137,0,172,255,32,255,1,255,243,254,226,254,255,254,99,255,200,255,236,255,19,0,74,0,89,0, +98,0,105,0,52,0,139,255,79,254,50,253,46,253,29,254,61,255,11,0,33,0,154,255,102,255,33,0,80,1,91,2, +219,2,129,2,207,1,120,1,197,1,193,2,95,3,164,2,100,1,101,0,143,255,25,255,211,254,75,254,127,253,100,252, +153,251,249,251,190,252,215,252,188,252,83,253,125,254,107,255,251,255,200,0,206,1,145,2,47,3,210,3,56,4,45,4, +118,3,40,2,1,1,22,0,197,254,80,253,127,252,118,252,206,252,244,252,205,252,5,253,250,253,88,255,180,0,183,1, +22,2,252,1,251,1,254,1,136,1,21,1,44,1,62,1,216,0,88,0,18,0,167,255,246,254,190,254,1,255,244,254, +214,254,55,255,232,255,142,0,177,0,112,0,122,0,192,0,53,1,230,1,255,1,73,1,140,0,253,255,140,255,67,255, +236,254,160,254,178,254,237,254,225,254,155,254,159,254,82,255,79,0,190,0,178,0,242,0,114,1,163,1,139,1,142,1, +159,1,82,1,249,0,49,1,11,1,188,255,136,254,60,254,253,253,104,253,243,252,206,252,186,252,171,252,50,253,130,254, +219,255,132,0,135,0,126,0,209,0,15,1,210,0,132,0,126,0,148,0,179,0,179,0,90,0,35,0,121,0,179,0, +72,0,167,255,92,255,149,255,6,0,76,0,98,0,26,0,84,255,220,254,96,255,68,0,155,0,94,0,8,0,181,255, +108,255,139,255,244,255,247,255,119,255,245,254,217,254,50,255,193,255,60,0,136,0,129,0,66,0,101,0,20,1,166,1, +176,1,83,1,191,0,49,0,244,255,42,0,172,0,7,1,251,0,182,0,83,0,166,255,218,254,144,254,248,254,142,255, +252,255,70,0,92,0,44,0,238,255,13,0,158,0,27,1,255,0,62,0,65,255,183,254,219,254,38,255,100,255,231,255, +87,0,42,0,246,255,60,0,91,0,56,0,114,0,232,0,10,1,230,0,227,0,231,0,182,0,207,0,73,1,121,1, +129,1,119,1,211,0,244,255,79,255,182,254,78,254,0,254,200,253,19,254,92,254,40,254,75,254,50,255,85,0,53,1, +170,1,211,1,204,1,180,1,209,1,1,2,198,1,14,1,78,0,198,255,42,255,72,254,158,253,253,253,84,255,125,0, +153,0,162,255,253,253,168,252,142,252,166,253,105,255,42,1,112,2,73,3,167,3,116,3,235,2,44,2,90,1,168,0, +33,0,194,255,93,255,218,254,131,254,107,254,70,254,12,254,22,254,126,254,251,254,130,255,24,0,104,0,113,0,117,0, +89,0,255,255,131,255,19,255,205,254,143,254,66,254,56,254,185,254,119,255,25,0,173,0,243,0,162,0,58,0,11,0, +227,255,197,255,140,255,65,255,65,255,116,255,10,0,71,1,73,2,155,1,187,254,175,251,105,251,113,253,250,254,67,255, +77,255,219,255,22,1,211,2,57,4,174,3,60,1,6,255,4,254,214,253,131,254,130,255,205,255,70,255,161,254,104,254, +135,254,228,254,137,255,2,0,29,0,68,0,186,0,139,1,86,2,104,2,193,1,251,0,124,0,13,0,96,255,11,255, +71,255,3,255,98,254,232,254,69,0,230,0,220,0,255,0,28,1,177,0,242,255,115,255,102,255,110,255,79,255,31,255, +254,254,46,255,143,255,137,255,35,255,233,254,229,254,15,255,155,255,53,0,76,0,48,0,137,0,37,1,126,1,145,1, +133,1,117,1,135,1,198,1,214,1,78,1,178,0,189,0,209,0,89,0,205,255,76,255,170,254,0,254,90,253,15,253, +54,253,86,253,124,253,215,253,127,254,179,255,189,0,15,1,162,1,114,2,105,2,246,1,203,1,145,1,48,1,240,0, +204,0,155,0,146,0,11,1,124,1,13,1,27,0,77,255,172,254,143,254,62,255,72,0,36,1,113,1,10,1,59,0, +115,255,249,254,216,254,11,255,131,255,245,255,55,0,151,0,35,1,96,1,28,1,214,0,230,0,155,0,87,255,208,253, +5,253,20,253,111,253,166,253,243,253,197,254,240,255,226,0,52,1,13,1,4,1,105,1,10,2,120,2,124,2,95,2, +59,2,184,1,241,0,105,0,29,0,154,255,218,254,118,254,185,254,75,255,241,255,134,0,181,0,128,0,63,0,45,0, +85,0,170,0,216,0,138,0,16,0,255,255,63,0,71,0,243,255,162,255,166,255,16,0,75,1,107,3,59,5,166,5, +28,4,65,0,190,251,125,249,130,250,201,253,237,0,38,1,42,254,188,250,20,250,144,252,58,255,64,0,6,1,93,2, +99,3,146,3,231,2,176,1,185,0,206,0,217,1,54,2,167,0,151,254,87,254,136,0,174,3,60,5,239,3,4,1, +89,254,165,252,235,251,73,252,133,253,129,254,138,254,29,254,161,253,38,253,38,253,224,253,215,254,130,255,159,255,51,255, +163,254,124,254,11,255,18,0,27,1,250,1,165,2,19,3,63,3,249,2,97,2,17,2,25,2,244,1,131,1,33,1, +239,0,151,0,7,0,155,255,69,255,178,254,2,254,101,253,255,252,216,252,182,252,169,252,238,252,110,253,4,254,168,254, +117,255,113,0,74,1,229,1,69,2,64,2,25,2,13,2,180,1,3,1,138,0,119,0,69,0,151,255,249,254,251,254, +56,255,31,255,199,254,173,254,28,255,254,255,254,0,115,1,34,1,185,0,170,0,187,0,161,0,72,0,0,0,230,255, +230,255,71,0,185,0,142,0,239,255,69,255,216,254,183,254,174,254,197,254,94,254,89,253,181,253,187,255,168,0,166,255, +200,254,97,255,90,0,132,0,203,0,155,1,191,1,94,1,82,1,100,1,54,1,173,0,83,0,111,0,196,255,45,254, +74,253,128,253,253,253,97,254,18,255,83,0,87,1,174,1,0,2,86,2,101,2,114,2,205,2,102,3,93,3,253,1, +33,0,172,254,119,253,169,252,194,252,135,253,81,254,19,255,235,255,81,0,248,255,117,255,53,255,71,255,201,255,148,0, +108,1,70,2,195,2,112,2,151,1,217,0,89,0,16,0,17,0,79,0,141,0,136,0,41,0,169,255,70,255,51,255, +149,255,46,0,148,0,230,0,81,1,96,1,205,0,61,0,14,0,219,255,157,255,177,255,231,255,213,255,145,255,127,255, +192,255,14,0,15,0,180,255,110,255,181,255,96,0,4,1,87,1,66,1,60,1,166,1,2,2,215,1,91,1,180,0, +203,255,250,254,174,254,156,254,131,254,163,254,223,254,23,255,114,255,158,255,141,255,186,255,41,0,139,0,162,0,78,0, +218,255,142,255,127,255,200,255,57,0,125,0,103,0,16,0,214,255,218,255,8,0,101,0,143,0,74,0,35,0,90,0, +133,0,87,0,15,0,19,0,59,0,34,0,199,255,63,255,161,254,80,254,169,254,102,255,219,255,252,255,51,0,124,0, +180,0,221,0,219,0,187,0,157,0,121,0,100,0,75,0,6,0,176,255,138,255,187,255,247,255,230,255,192,255,164,255, +100,255,64,255,117,255,180,255,209,255,239,255,254,255,209,255,121,255,59,255,69,255,133,255,206,255,44,0,180,0,41,1, +53,1,231,0,143,0,42,0,152,255,85,255,216,255,162,0,2,1,196,0,30,0,164,255,160,255,199,255,212,255,187,255, +157,255,161,255,169,255,166,255,163,255,127,255,68,255,10,255,167,254,26,254,212,253,31,254,170,254,39,255,154,255,196,255, +170,255,233,255,139,0,242,0,26,1,135,1,19,2,17,2,159,1,101,1,58,1,183,0,248,255,58,255,171,254,59,254, +213,253,190,253,244,253,48,254,104,254,157,254,225,254,68,255,205,255,178,0,145,1,185,1,107,1,58,1,52,1,23,1, +180,0,101,0,121,0,120,0,44,0,231,255,186,255,146,255,119,255,108,255,116,255,113,255,76,255,46,255,65,255,121,255, +204,255,38,0,55,0,251,255,233,255,221,255,63,255,74,254,164,253,169,253,105,254,105,255,20,0,88,0,83,0,36,0, +252,255,239,255,28,0,186,0,171,1,103,2,144,2,58,2,182,1,78,1,253,0,124,0,223,255,142,255,91,255,171,254, +155,253,252,252,36,253,158,253,250,253,74,254,227,254,201,255,120,0,154,0,161,0,45,1,32,2,232,2,72,3,76,3, +27,3,213,2,67,2,85,1,170,0,116,0,25,0,85,255,134,254,26,254,0,254,217,253,226,253,128,254,91,255,17,0, +141,0,190,0,209,0,216,0,181,0,168,0,228,0,45,1,77,1,42,1,204,0,84,0,241,255,17,0,180,0,27,1, +5,1,208,0,141,0,66,0,11,0,226,255,199,255,177,255,143,255,103,255,53,255,249,254,205,254,2,255,210,255,139,0, +125,0,46,0,29,0,52,0,132,0,246,0,93,1,181,1,189,1,135,1,100,1,32,1,179,0,117,0,97,0,25,0, +83,255,88,254,175,253,50,253,222,252,82,253,137,254,196,255,137,0,222,0,38,1,141,1,172,1,70,1,174,0,70,0, +54,0,102,0,118,0,71,0,37,0,50,0,58,0,58,0,75,0,77,0,46,0,19,0,229,255,122,255,43,255,62,255, +106,255,158,255,0,0,122,0,224,0,227,0,115,0,0,0,177,255,107,255,88,255,100,255,74,255,21,255,231,254,200,254, +183,254,200,254,20,255,85,255,52,255,251,254,59,255,238,255,142,0,198,0,195,0,187,0,160,0,109,0,53,0,3,0, +216,255,175,255,122,255,89,255,104,255,150,255,213,255,19,0,22,0,198,255,105,255,88,255,110,255,23,255,122,254,113,254, +253,254,107,255,157,255,195,255,166,255,36,255,185,254,231,254,73,255,97,255,103,255,117,255,107,255,124,255,186,255,227,255, +217,255,188,255,170,255,183,255,236,255,44,0,85,0,109,0,137,0,176,0,186,0,145,0,130,0,219,0,113,1,103,1, +237,255,230,253,232,252,17,253,217,253,200,254,240,254,244,253,174,252,89,252,93,253,181,254,137,255,78,0,106,1,128,2, +14,3,236,2,112,2,204,1,2,1,95,0,247,255,151,255,70,255,23,255,254,254,216,254,182,254,209,254,52,255,213,255, +142,0,19,1,94,1,97,1,230,0,53,0,196,255,190,255,12,0,89,0,109,0,74,0,26,0,30,0,81,0,149,0, +239,0,54,1,72,1,48,1,238,0,103,0,157,255,34,255,114,255,241,255,6,0,251,255,21,0,64,0,39,0,163,255, +77,255,166,255,60,0,124,0,97,0,40,0,1,0,28,0,133,0,214,0,204,0,157,0,125,0,100,0,34,0,144,255, +233,254,130,254,126,254,210,254,101,255,7,0,89,0,97,0,153,0,244,0,31,1,63,1,107,1,93,1,240,0,75,0, +194,255,162,255,253,255,126,0,184,0,204,0,4,1,49,1,56,1,88,1,145,1,115,1,221,0,71,0,251,255,210,255, +180,255,155,255,127,255,88,255,55,255,91,255,130,255,68,255,47,255,179,255,68,0,160,0,223,0,218,0,188,0,213,0, +218,0,142,0,100,0,171,0,242,0,231,0,189,0,152,0,121,0,92,0,42,0,222,255,155,255,128,255,129,255,143,255, +147,255,110,255,97,255,141,255,126,255,96,255,217,255,165,0,29,1,27,1,190,0,101,0,88,0,120,0,144,0,138,0, +116,0,78,0,19,0,240,255,242,255,238,255,222,255,204,255,193,255,201,255,231,255,23,0,72,0,73,0,247,255,115,255, +11,255,234,254,19,255,101,255,156,255,160,255,187,255,62,0,19,1,162,1,129,1,10,1,187,0,146,0,77,0,199,255, +57,255,8,255,59,255,124,255,137,255,123,255,94,255,36,255,35,255,145,255,232,255,232,255,253,255,71,0,103,0,37,0, +190,255,134,255,141,255,159,255,126,255,60,255,52,255,156,255,71,0,171,0,142,0,88,0,57,0,23,0,42,0,104,0, +113,0,64,0,29,0,73,0,169,0,239,0,4,1,200,0,37,0,114,255,239,254,166,254,179,254,222,254,236,254,13,255, +86,255,130,255,117,255,74,255,36,255,72,255,205,255,77,0,134,0,171,0,196,0,209,0,4,1,46,1,230,0,95,0, +24,0,254,255,188,255,88,255,4,255,238,254,52,255,166,255,9,0,87,0,119,0,88,0,30,0,244,255,223,255,203,255, +168,255,141,255,138,255,161,255,215,255,32,0,83,0,77,0,37,0,17,0,26,0,52,0,90,0,139,0,172,0,139,0, +64,0,28,0,33,0,21,0,216,255,135,255,97,255,108,255,158,255,0,0,78,0,80,0,63,0,71,0,84,0,92,0, +71,0,20,0,243,255,238,255,207,255,143,255,98,255,99,255,134,255,164,255,171,255,183,255,212,255,244,255,15,0,22,0, +52,0,140,0,181,0,135,0,122,0,154,0,136,0,67,0,6,0,219,255,183,255,182,255,193,255,152,255,101,255,102,255, +121,255,120,255,117,255,123,255,137,255,173,255,223,255,254,255,28,0,85,0,141,0,190,0,232,0,228,0,189,0,123,0, +47,0,9,0,215,255,138,255,131,255,155,255,107,255,42,255,30,255,48,255,78,255,143,255,229,255,32,0,52,0,25,0, +217,255,202,255,6,0,81,0,128,0,132,0,133,0,150,0,127,0,84,0,78,0,64,0,4,0,180,255,155,255,214,255, +22,0,48,0,65,0,41,0,239,255,228,255,245,255,230,255,229,255,23,0,46,0,18,0,14,0,30,0,34,0,51,0, +80,0,105,0,93,0,7,0,147,255,59,255,7,255,13,255,66,255,128,255,191,255,233,255,254,255,21,0,36,0,22,0, +253,255,3,0,43,0,65,0,46,0,30,0,65,0,129,0,167,0,167,0,120,0,30,0,226,255,246,255,41,0,47,0, +246,255,179,255,164,255,197,255,244,255,26,0,36,0,250,255,169,255,133,255,165,255,195,255,199,255,207,255,221,255,241,255, +9,0,5,0,224,255,216,255,3,0,17,0,234,255,223,255,7,0,51,0,75,0,89,0,91,0,60,0,2,0,192,255, +130,255,111,255,139,255,165,255,179,255,171,255,134,255,138,255,217,255,53,0,89,0,78,0,82,0,96,0,89,0,76,0, +39,0,222,255,176,255,200,255,3,0,26,0,245,255,207,255,184,255,145,255,113,255,114,255,145,255,193,255,229,255,249,255, +29,0,90,0,140,0,165,0,190,0,186,0,118,0,55,0,34,0,249,255,177,255,147,255,178,255,185,255,123,255,51,255, +28,255,120,255,65,0,184,0,117,0,249,255,190,255,182,255,173,255,214,255,103,0,202,0,183,0,180,0,205,0,189,0, +192,0,248,0,54,1,85,1,55,1,194,0,251,255,39,255,142,254,43,254,1,254,72,254,252,254,176,255,9,0,60,0, +142,0,210,0,222,0,200,0,168,0,152,0,166,0,192,0,217,0,226,0,184,0,102,0,12,0,177,255,98,255,61,255, +62,255,67,255,70,255,72,255,95,255,175,255,5,0,22,0,10,0,51,0,135,0,163,0,85,0,227,255,154,255,116,255, +104,255,133,255,180,255,187,255,135,255,63,255,18,255,15,255,51,255,123,255,211,255,38,0,130,0,212,0,246,0,13,1, +66,1,117,1,121,1,63,1,221,0,139,0,105,0,100,0,55,0,197,255,92,255,59,255,55,255,21,255,221,254,207,254, +9,255,79,255,133,255,205,255,41,0,112,0,152,0,183,0,201,0,177,0,120,0,65,0,21,0,235,255,215,255,239,255, +25,0,96,0,234,0,101,1,76,1,159,0,214,255,129,255,164,255,157,255,66,255,40,255,137,255,250,255,31,0,197,255, +174,254,83,253,16,253,64,254,177,255,152,0,57,1,202,1,36,2,46,2,16,2,226,1,95,1,123,0,155,255,10,255, +229,254,59,255,236,255,188,0,107,1,169,1,89,1,206,0,82,0,228,255,106,255,239,254,160,254,150,254,167,254,205,254, +36,255,124,255,158,255,196,255,45,0,157,0,186,0,144,0,78,0,249,255,177,255,163,255,185,255,192,255,177,255,195,255, +251,255,21,0,24,0,45,0,39,0,254,255,231,255,228,255,237,255,244,255,237,255,243,255,8,0,9,0,245,255,208,255, +177,255,199,255,230,255,184,255,121,255,156,255,253,255,44,0,17,0,1,0,50,0,93,0,75,0,41,0,251,255,190,255, +172,255,199,255,210,255,197,255,209,255,23,0,106,0,156,0,165,0,96,0,227,255,161,255,160,255,135,255,83,255,63,255, +79,255,109,255,163,255,229,255,33,0,114,0,191,0,174,0,77,0,252,255,216,255,199,255,181,255,156,255,143,255,162,255, +221,255,49,0,114,0,135,0,140,0,155,0,163,0,153,0,135,0,100,0,58,0,32,0,14,0,242,255,189,255,115,255, +71,255,93,255,143,255,156,255,118,255,73,255,54,255,89,255,178,255,23,0,99,0,128,0,104,0,79,0,83,0,71,0, +24,0,216,255,174,255,171,255,190,255,249,255,86,0,140,0,165,0,208,0,232,0,202,0,117,0,0,0,164,255,120,255, +109,255,128,255,159,255,176,255,195,255,247,255,46,0,56,0,33,0,26,0,56,0,82,0,59,0,13,0,234,255,193,255, +149,255,132,255,137,255,130,255,88,255,50,255,57,255,120,255,211,255,10,0,20,0,49,0,84,0,108,0,153,0,179,0, +167,0,152,0,126,0,101,0,84,0,37,0,229,255,191,255,169,255,129,255,79,255,82,255,130,255,136,255,117,255,136,255, +176,255,205,255,226,255,248,255,24,0,66,0,109,0,130,0,138,0,154,0,147,0,112,0,106,0,121,0,107,0,81,0, +74,0,66,0,32,0,234,255,173,255,125,255,110,255,104,255,105,255,125,255,130,255,106,255,87,255,103,255,163,255,214,255, +218,255,221,255,234,255,227,255,222,255,241,255,17,0,47,0,59,0,66,0,74,0,64,0,29,0,235,255,194,255,174,255, +161,255,154,255,151,255,130,255,116,255,136,255,154,255,146,255,147,255,180,255,223,255,250,255,1,0,253,255,250,255,225,255, +169,255,135,255,149,255,178,255,204,255,240,255,17,0,33,0,31,0,10,0,230,255,193,255,164,255,150,255,166,255,195,255, +206,255,207,255,205,255,201,255,221,255,37,0,149,0,239,0,15,1,18,1,2,1,197,0,119,0,79,0,82,0,75,0, +3,0,124,255,230,254,114,254,34,254,219,253,176,253,214,253,78,254,227,254,119,255,42,0,252,0,168,1,9,2,57,2, +75,2,62,2,16,2,214,1,166,1,94,1,245,0,148,0,53,0,202,255,111,255,35,255,199,254,109,254,61,254,67,254, +112,254,180,254,2,255,83,255,156,255,213,255,21,0,108,0,191,0,255,0,47,1,57,1,21,1,225,0,186,0,169,0, +154,0,120,0,73,0,19,0,223,255,174,255,136,255,134,255,149,255,136,255,134,255,182,255,237,255,8,0,34,0,56,0, +54,0,55,0,84,0,111,0,119,0,116,0,120,0,148,0,162,0,129,0,88,0,62,0,32,0,3,0,238,255,224,255, +204,255,170,255,171,255,228,255,2,0,231,255,218,255,230,255,232,255,238,255,3,0,22,0,30,0,22,0,16,0,37,0, +56,0,45,0,26,0,30,0,46,0,29,0,224,255,187,255,202,255,225,255,244,255,252,255,219,255,163,255,125,255,121,255, +152,255,201,255,247,255,40,0,86,0,108,0,109,0,106,0,113,0,145,0,170,0,135,0,64,0,29,0,40,0,31,0, +236,255,208,255,231,255,251,255,250,255,0,0,20,0,36,0,21,0,250,255,19,0,77,0,99,0,95,0,94,0,94,0, +113,0,142,0,127,0,83,0,51,0,17,0,236,255,233,255,9,0,37,0,45,0,40,0,22,0,252,255,239,255,244,255, +246,255,222,255,201,255,223,255,6,0,20,0,39,0,80,0,109,0,118,0,116,0,94,0,66,0,65,0,93,0,100,0, +53,0,252,255,235,255,247,255,252,255,223,255,172,255,143,255,143,255,148,255,170,255,231,255,36,0,61,0,63,0,63,0, +62,0,69,0,76,0,56,0,14,0,237,255,220,255,192,255,163,255,180,255,230,255,7,0,35,0,66,0,74,0,77,0, +82,0,51,0,242,255,192,255,191,255,211,255,223,255,246,255,21,0,42,0,55,0,59,0,50,0,23,0,239,255,206,255, +183,255,171,255,179,255,186,255,182,255,190,255,208,255,238,255,27,0,63,0,74,0,79,0,96,0,117,0,121,0,107,0, +77,0,45,0,46,0,60,0,48,0,31,0,17,0,240,255,201,255,169,255,147,255,130,255,107,255,91,255,106,255,156,255, +224,255,22,0,55,0,75,0,63,0,23,0,251,255,1,0,24,0,37,0,31,0,22,0,31,0,45,0,36,0,19,0, +20,0,25,0,14,0,250,255,244,255,254,255,248,255,223,255,209,255,200,255,192,255,188,255,167,255,154,255,176,255,187,255, +172,255,179,255,211,255,234,255,251,255,34,0,74,0,71,0,43,0,24,0,7,0,248,255,229,255,212,255,231,255,249,255, +212,255,181,255,210,255,254,255,10,0,247,255,233,255,239,255,233,255,226,255,248,255,20,0,37,0,43,0,37,0,44,0, +54,0,31,0,255,255,241,255,231,255,226,255,237,255,253,255,255,255,225,255,190,255,199,255,232,255,238,255,218,255,202,255, +189,255,176,255,186,255,210,255,202,255,159,255,130,255,140,255,166,255,193,255,224,255,245,255,252,255,23,0,70,0,98,0, +99,0,101,0,120,0,137,0,120,0,79,0,54,0,46,0,26,0,251,255,231,255,211,255,186,255,178,255,180,255,170,255, +150,255,130,255,141,255,202,255,7,0,20,0,3,0,5,0,27,0,32,0,30,0,56,0,78,0,72,0,64,0,56,0, +42,0,41,0,39,0,20,0,246,255,222,255,214,255,217,255,231,255,248,255,247,255,224,255,206,255,209,255,222,255,222,255, +219,255,235,255,5,0,24,0,30,0,24,0,41,0,89,0,107,0,71,0,22,0,246,255,226,255,207,255,197,255,200,255, +198,255,180,255,161,255,160,255,159,255,134,255,104,255,111,255,162,255,238,255,45,0,75,0,100,0,131,0,143,0,116,0, +69,0,49,0,59,0,63,0,46,0,3,0,207,255,183,255,177,255,168,255,173,255,190,255,213,255,242,255,6,0,11,0, +10,0,13,0,27,0,41,0,41,0,34,0,31,0,32,0,25,0,17,0,12,0,252,255,250,255,18,0,6,0,204,255, +173,255,181,255,192,255,189,255,187,255,200,255,208,255,200,255,214,255,12,0,66,0,85,0,83,0,81,0,71,0,62,0, +66,0,67,0,55,0,44,0,30,0,1,0,234,255,233,255,241,255,239,255,232,255,219,255,201,255,204,255,222,255,228,255, +228,255,232,255,232,255,236,255,0,0,31,0,64,0,84,0,79,0,56,0,21,0,240,255,221,255,214,255,215,255,216,255, +208,255,225,255,36,0,101,0,116,0,93,0,39,0,211,255,118,255,51,255,47,255,96,255,146,255,182,255,213,255,4,0, +68,0,109,0,108,0,85,0,50,0,20,0,3,0,252,255,2,0,17,0,20,0,6,0,246,255,250,255,24,0,52,0, +52,0,31,0,6,0,236,255,218,255,219,255,223,255,229,255,247,255,5,0,14,0,26,0,35,0,36,0,31,0,19,0, +4,0,246,255,243,255,255,255,12,0,16,0,14,0,23,0,49,0,63,0,53,0,30,0,248,255,205,255,190,255,215,255, +10,0,61,0,87,0,74,0,29,0,2,0,22,0,53,0,52,0,3,0,187,255,139,255,118,255,119,255,146,255,165,255, +171,255,196,255,254,255,63,0,95,0,95,0,100,0,100,0,78,0,60,0,66,0,75,0,46,0,245,255,223,255,241,255, +255,255,245,255,223,255,209,255,211,255,224,255,247,255,7,0,9,0,20,0,37,0,34,0,20,0,16,0,17,0,19,0, +18,0,9,0,255,255,250,255,244,255,248,255,3,0,254,255,233,255,220,255,219,255,221,255,220,255,213,255,207,255,210,255, +230,255,252,255,251,255,247,255,0,0,7,0,16,0,32,0,27,0,4,0,253,255,8,0,16,0,15,0,4,0,239,255, +221,255,216,255,221,255,229,255,232,255,228,255,227,255,238,255,4,0,24,0,33,0,40,0,60,0,86,0,89,0,68,0, +57,0,62,0,57,0,32,0,9,0,252,255,237,255,221,255,228,255,242,255,228,255,194,255,173,255,178,255,203,255,225,255, +242,255,2,0,11,0,19,0,21,0,12,0,12,0,23,0,24,0,12,0,254,255,235,255,224,255,238,255,1,0,6,0, +2,0,252,255,248,255,245,255,235,255,230,255,240,255,249,255,250,255,244,255,240,255,248,255,7,0,24,0,47,0,55,0, +46,0,37,0,27,0,20,0,17,0,9,0,9,0,25,0,36,0,26,0,1,0,245,255,242,255,229,255,229,255,242,255, +239,255,237,255,4,0,38,0,53,0,37,0,20,0,13,0,6,0,13,0,23,0,8,0,237,255,228,255,250,255,19,0, +9,0,240,255,227,255,206,255,183,255,190,255,221,255,238,255,232,255,231,255,240,255,249,255,7,0,20,0,25,0,29,0, +23,0,16,0,23,0,21,0,254,255,220,255,188,255,169,255,167,255,174,255,186,255,190,255,188,255,194,255,206,255,229,255, +4,0,19,0,13,0,14,0,25,0,32,0,32,0,22,0,255,255,233,255,221,255,229,255,244,255,233,255,206,255,205,255, +217,255,218,255,216,255,222,255,234,255,228,255,203,255,212,255,18,0,61,0,49,0,12,0,246,255,247,255,245,255,228,255, +236,255,10,0,33,0,53,0,67,0,54,0,21,0,11,0,31,0,0,0,147,255,70,255,85,255,134,255,180,255,220,255, +250,255,1,0,233,255,225,255,11,0,63,0,91,0,89,0,63,0,40,0,27,0,17,0,10,0,247,255,224,255,226,255, +252,255,28,0,47,0,45,0,44,0,47,0,33,0,8,0,248,255,240,255,229,255,226,255,232,255,233,255,244,255,6,0, +0,0,232,255,210,255,195,255,190,255,212,255,23,0,83,0,70,0,44,0,64,0,76,0,57,0,43,0,57,0,89,0, +89,0,50,0,26,0,25,0,26,0,31,0,32,0,8,0,203,255,157,255,192,255,10,0,55,0,86,0,108,0,94,0, +48,0,4,0,254,255,29,0,58,0,58,0,42,0,27,0,8,0,252,255,5,0,9,0,244,255,228,255,239,255,10,0, +37,0,55,0,57,0,52,0,57,0,71,0,70,0,54,0,39,0,29,0,25,0,31,0,47,0,70,0,82,0,72,0, +58,0,49,0,29,0,6,0,254,255,1,0,255,255,248,255,243,255,240,255,237,255,241,255,1,0,23,0,46,0,69,0, +75,0,63,0,52,0,47,0,49,0,57,0,56,0,37,0,17,0,14,0,16,0,1,0,233,255,216,255,204,255,201,255, +210,255,209,255,202,255,209,255,215,255,207,255,208,255,231,255,1,0,3,0,240,255,225,255,227,255,232,255,244,255,14,0, +36,0,45,0,45,0,41,0,38,0,23,0,255,255,250,255,7,0,28,0,47,0,48,0,34,0,18,0,252,255,237,255, +231,255,224,255,231,255,249,255,248,255,224,255,193,255,178,255,194,255,222,255,239,255,239,255,226,255,216,255,223,255,243,255, +255,255,255,255,0,0,6,0,10,0,8,0,3,0,250,255,240,255,231,255,226,255,223,255,218,255,210,255,200,255,191,255, +180,255,173,255,177,255,186,255,192,255,195,255,199,255,209,255,217,255,213,255,210,255,218,255,233,255,250,255,0,0,248,255, +232,255,217,255,221,255,234,255,237,255,232,255,219,255,206,255,222,255,7,0,25,0,6,0,239,255,239,255,249,255,245,255, +225,255,215,255,228,255,245,255,254,255,255,255,0,0,25,0,66,0,82,0,81,0,80,0,75,0,67,0,52,0,35,0, +23,0,8,0,255,255,13,0,30,0,31,0,24,0,26,0,42,0,40,0,20,0,11,0,9,0,2,0,252,255,248,255, +249,255,255,255,255,255,250,255,248,255,3,0,28,0,60,0,88,0,92,0,67,0,40,0,20,0,2,0,252,255,249,255, +240,255,237,255,249,255,0,0,248,255,237,255,234,255,249,255,14,0,6,0,229,255,217,255,234,255,251,255,252,255,251,255, +10,0,31,0,39,0,35,0,30,0,30,0,36,0,27,0,5,0,2,0,22,0,30,0,9,0,222,255,182,255,170,255, +175,255,176,255,179,255,181,255,167,255,153,255,149,255,159,255,178,255,185,255,187,255,198,255,209,255,216,255,224,255,238,255, +5,0,20,0,24,0,40,0,52,0,40,0,21,0,14,0,7,0,251,255,237,255,222,255,211,255,212,255,216,255,214,255, +213,255,218,255,214,255,193,255,176,255,185,255,212,255,227,255,226,255,219,255,220,255,231,255,242,255,243,255,237,255,241,255, +255,255,253,255,246,255,2,0,10,0,2,0,0,0,9,0,21,0,29,0,28,0,20,0,12,0,12,0,14,0,9,0, +7,0,6,0,246,255,233,255,246,255,26,0,66,0,84,0,74,0,61,0,59,0,47,0,13,0,244,255,247,255,255,255, +1,0,4,0,8,0,14,0,11,0,255,255,252,255,250,255,241,255,245,255,15,0,50,0,70,0,67,0,61,0,64,0, +63,0,54,0,40,0,26,0,11,0,244,255,223,255,217,255,211,255,198,255,201,255,222,255,237,255,250,255,12,0,24,0, +37,0,58,0,67,0,50,0,30,0,35,0,52,0,50,0,39,0,31,0,18,0,3,0,0,0,15,0,37,0,35,0, +10,0,243,255,219,255,192,255,191,255,211,255,217,255,198,255,187,255,202,255,213,255,212,255,231,255,9,0,30,0,34,0, +41,0,64,0,83,0,79,0,65,0,53,0,33,0,11,0,2,0,0,0,242,255,223,255,209,255,197,255,201,255,220,255, +231,255,238,255,0,0,11,0,5,0,5,0,19,0,26,0,21,0,18,0,19,0,15,0,9,0,4,0,253,255,242,255, +234,255,231,255,231,255,234,255,230,255,217,255,207,255,215,255,229,255,237,255,234,255,228,255,228,255,237,255,244,255,246,255, +246,255,244,255,239,255,241,255,253,255,9,0,12,0,5,0,254,255,0,0,11,0,22,0,16,0,7,0,20,0,34,0, +29,0,17,0,8,0,3,0,248,255,226,255,210,255,210,255,222,255,233,255,232,255,239,255,4,0,17,0,21,0,25,0, +27,0,29,0,27,0,24,0,25,0,14,0,249,255,236,255,232,255,232,255,237,255,253,255,22,0,35,0,24,0,14,0, +16,0,14,0,8,0,11,0,20,0,21,0,12,0,3,0,254,255,239,255,215,255,200,255,199,255,195,255,189,255,192,255, +203,255,219,255,229,255,230,255,232,255,242,255,8,0,33,0,44,0,46,0,45,0,40,0,35,0,30,0,23,0,20,0, +24,0,30,0,28,0,15,0,3,0,1,0,2,0,3,0,255,255,248,255,241,255,233,255,233,255,245,255,248,255,239,255, +234,255,242,255,5,0,17,0,17,0,20,0,26,0,30,0,32,0,32,0,32,0,35,0,36,0,29,0,17,0,7,0, +5,0,254,255,241,255,238,255,244,255,249,255,251,255,0,0,10,0,22,0,23,0,16,0,13,0,8,0,255,255,251,255, +2,0,18,0,27,0,21,0,13,0,1,0,244,255,244,255,253,255,5,0,10,0,17,0,30,0,36,0,25,0,12,0, +8,0,10,0,12,0,11,0,8,0,7,0,0,0,249,255,251,255,2,0,7,0,14,0,23,0,26,0,26,0,23,0, +21,0,20,0,18,0,8,0,0,0,250,255,245,255,246,255,253,255,6,0,13,0,15,0,18,0,25,0,20,0,7,0, +250,255,239,255,237,255,245,255,251,255,249,255,244,255,235,255,228,255,232,255,242,255,241,255,234,255,240,255,251,255,250,255, +252,255,6,0,10,0,7,0,5,0,8,0,8,0,6,0,7,0,7,0,10,0,18,0,23,0,13,0,255,255,250,255, +250,255,252,255,251,255,244,255,238,255,239,255,247,255,0,0,0,0,254,255,1,0,5,0,8,0,7,0,1,0,251,255, +251,255,253,255,251,255,248,255,250,255,252,255,250,255,251,255,247,255,235,255,229,255,232,255,237,255,239,255,239,255,239,255, +238,255,235,255,240,255,246,255,249,255,1,0,6,0,3,0,253,255,247,255,239,255,239,255,248,255,252,255,249,255,248,255, +1,0,12,0,12,0,255,255,247,255,252,255,254,255,250,255,247,255,254,255,8,0,5,0,254,255,1,0,7,0,7,0, +5,0,7,0,8,0,2,0,251,255,255,255,6,0,4,0,252,255,243,255,239,255,243,255,248,255,251,255,253,255,3,0, +11,0,7,0,252,255,252,255,0,0,1,0,253,255,253,255,6,0,13,0,13,0,12,0,15,0,19,0,20,0,13,0, +6,0,5,0,2,0,251,255,250,255,255,255,1,0,254,255,254,255,0,0,0,0,255,255,1,0,6,0,13,0,17,0, +16,0,18,0,17,0,4,0,247,255,245,255,244,255,239,255,235,255,230,255,226,255,227,255,235,255,241,255,245,255,252,255, +6,0,11,0,11,0,12,0,18,0,28,0,33,0,32,0,25,0,16,0,9,0,4,0,251,255,247,255,250,255,255,255, +0,0,0,0,254,255,253,255,254,255,0,0,5,0,9,0,15,0,22,0,26,0,25,0,26,0,27,0,20,0,11,0, +6,0,255,255,248,255,249,255,252,255,252,255,254,255,0,0,1,0,1,0,6,0,14,0,12,0,8,0,11,0,16,0, +15,0,10,0,8,0,5,0,254,255,254,255,5,0,7,0,2,0,255,255,254,255,246,255,237,255,239,255,245,255,246,255, +246,255,251,255,5,0,12,0,13,0,11,0,15,0,17,0,8,0,1,0,5,0,11,0,6,0,4,0,13,0,16,0, +2,0,246,255,244,255,246,255,246,255,244,255,241,255,245,255,2,0,11,0,9,0,4,0,1,0,4,0,9,0,9,0, +2,0,252,255,252,255,252,255,250,255,249,255,247,255,242,255,239,255,243,255,248,255,245,255,238,255,238,255,244,255,249,255, +254,255,7,0,15,0,19,0,18,0,9,0,1,0,1,0,6,0,11,0,10,0,6,0,254,255,242,255,236,255,238,255, +238,255,234,255,232,255,232,255,236,255,243,255,246,255,249,255,254,255,0,0,1,0,3,0,3,0,4,0,3,0,253,255, +248,255,250,255,255,255,1,0,0,0,255,255,0,0,4,0,8,0,11,0,14,0,14,0,7,0,254,255,250,255,244,255, +238,255,239,255,247,255,1,0,5,0,2,0,254,255,252,255,253,255,252,255,250,255,253,255,5,0,9,0,9,0,9,0, +6,0,3,0,3,0,4,0,5,0,4,0,2,0,0,0,255,255,1,0,7,0,15,0,27,0,38,0,38,0,25,0, +6,0,240,255,221,255,211,255,204,255,205,255,222,255,239,255,241,255,240,255,244,255,249,255,250,255,0,0,14,0,21,0, +18,0,18,0,21,0,19,0,8,0,3,0,5,0,1,0,248,255,246,255,249,255,246,255,238,255,234,255,237,255,241,255, +241,255,240,255,242,255,244,255,247,255,0,0,15,0,27,0,31,0,29,0,22,0,13,0,7,0,5,0,255,255,250,255, +243,255,231,255,226,255,239,255,252,255,252,255,248,255,251,255,1,0,2,0,0,0,5,0,13,0,19,0,23,0,21,0, +10,0,1,0,254,255,252,255,252,255,252,255,247,255,239,255,237,255,243,255,248,255,251,255,254,255,2,0,3,0,2,0, +2,0,5,0,7,0,8,0,9,0,4,0,252,255,250,255,250,255,249,255,249,255,249,255,247,255,250,255,252,255,251,255, +250,255,252,255,255,255,2,0,4,0,8,0,9,0,4,0,2,0,5,0,2,0,253,255,251,255,250,255,250,255,251,255, +253,255,2,0,9,0,13,0,11,0,8,0,7,0,8,0,10,0,11,0,13,0,16,0,14,0,7,0,2,0,1,0, +1,0,0,0,253,255,249,255,248,255,249,255,250,255,250,255,251,255,251,255,252,255,252,255,1,0,10,0,11,0,4,0, +3,0,7,0,9,0,4,0,253,255,247,255,245,255,246,255,248,255,250,255,253,255,255,255,255,255,254,255,1,0,6,0, +7,0,9,0,11,0,11,0,10,0,11,0,13,0,11,0,7,0,5,0,5,0,2,0,0,0,0,0,255,255,253,255, +252,255,253,255,0,0,3,0,6,0,6,0,7,0,12,0,16,0,15,0,12,0,12,0,13,0,12,0,10,0,8,0, +7,0,2,0,251,255,248,255,246,255,246,255,249,255,252,255,255,255,254,255,253,255,255,255,254,255,250,255,251,255,254,255, +252,255,250,255,254,255,5,0,7,0,2,0,1,0,2,0,252,255,248,255,253,255,254,255,245,255,237,255,242,255,253,255, +254,255,248,255,250,255,255,255,255,255,253,255,253,255,252,255,251,255,253,255,0,0,0,0,255,255,255,255,253,255,251,255, +250,255,251,255,254,255,4,0,10,0,17,0,26,0,34,0,35,0,29,0,20,0,5,0,240,255,233,255,238,255,229,255, +206,255,196,255,193,255,192,255,203,255,227,255,251,255,13,0,23,0,30,0,39,0,44,0,45,0,46,0,43,0,32,0, +15,0,253,255,240,255,238,255,246,255,253,255,249,255,238,255,234,255,235,255,238,255,241,255,248,255,3,0,13,0,20,0, +23,0,23,0,24,0,25,0,24,0,23,0,19,0,11,0,2,0,252,255,245,255,239,255,234,255,232,255,232,255,231,255, +233,255,239,255,242,255,245,255,252,255,4,0,9,0,16,0,18,0,17,0,17,0,16,0,15,0,14,0,11,0,7,0, +0,0,251,255,246,255,239,255,232,255,229,255,228,255,229,255,234,255,240,255,246,255,251,255,0,0,4,0,7,0,8,0, +9,0,9,0,6,0,5,0,6,0,7,0,4,0,1,0,253,255,250,255,245,255,242,255,243,255,244,255,245,255,249,255, +254,255,1,0,254,255,254,255,2,0,5,0,7,0,9,0,10,0,10,0,8,0,3,0,1,0,0,0,253,255,251,255, +247,255,245,255,248,255,252,255,251,255,250,255,251,255,253,255,255,255,0,0,0,0,3,0,6,0,9,0,9,0,8,0, +8,0,11,0,12,0,10,0,7,0,4,0,2,0,0,0,0,0,255,255,252,255,251,255,252,255,254,255,255,255,255,255, +255,255,2,0,4,0,3,0,1,0,0,0,255,255,255,255,253,255,253,255,253,255,252,255,255,255,4,0,6,0,5,0, +5,0,6,0,7,0,5,0,3,0,1,0,252,255,249,255,251,255,255,255,255,255,0,0,1,0,3,0,3,0,1,0, +2,0,2,0,1,0,1,0,4,0,7,0,8,0,5,0,0,0,0,0,1,0,255,255,251,255,250,255,250,255,248,255, +246,255,249,255,255,255,1,0,1,0,255,255,255,255,255,255,0,0,6,0,11,0,11,0,9,0,10,0,8,0,3,0, +0,0,2,0,5,0,4,0,255,255,250,255,240,255,232,255,232,255,237,255,245,255,254,255,2,0,0,0,253,255,254,255, +1,0,2,0,0,0,1,0,4,0,6,0,8,0,7,0,7,0,8,0,6,0,4,0,8,0,10,0,7,0,3,0, +1,0,254,255,250,255,245,255,243,255,242,255,243,255,246,255,247,255,246,255,249,255,254,255,3,0,4,0,7,0,13,0, +16,0,15,0,13,0,9,0,4,0,3,0,3,0,5,0,3,0,255,255,255,255,1,0,253,255,248,255,249,255,254,255, +1,0,2,0,3,0,6,0,8,0,8,0,8,0,5,0,1,0,1,0,1,0,254,255,253,255,254,255,252,255,251,255, +251,255,251,255,250,255,250,255,251,255,253,255,255,255,0,0,255,255,0,0,2,0,4,0,6,0,6,0,4,0,3,0, +4,0,2,0,2,0,1,0,0,0,255,255,253,255,254,255,2,0,2,0,2,0,2,0,3,0,5,0,6,0,5,0, +5,0,7,0,7,0,7,0,7,0,6,0,3,0,1,0,1,0,0,0,253,255,254,255,255,255,254,255,253,255,253,255, +252,255,255,255,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,3,0,1,0,1,0,3,0,2,0,2,0, +5,0,5,0,2,0,1,0,2,0,2,0,255,255,252,255,250,255,249,255,250,255,252,255,252,255,252,255,254,255,255,255, +255,255,253,255,253,255,255,255,255,255,255,255,255,255,253,255,250,255,248,255,249,255,249,255,248,255,250,255,255,255,1,0, +0,0,255,255,254,255,252,255,252,255,251,255,251,255,253,255,253,255,253,255,254,255,253,255,254,255,1,0,3,0,3,0, +3,0,2,0,254,255,251,255,253,255,0,0,255,255,0,0,2,0,254,255,252,255,255,255,255,255,254,255,0,0,2,0, +1,0,255,255,255,255,1,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0,0,1,0,255,255, +253,255,254,255,255,255,254,255,254,255,0,0,0,0,254,255,254,255,0,0,255,255,248,255,248,255,3,0,10,0,5,0, +252,255,250,255,254,255,255,255,1,0,1,0,0,0,254,255,252,255,251,255,252,255,252,255,252,255,0,0,3,0,4,0, +3,0,254,255,250,255,254,255,1,0,255,255,253,255,255,255,0,0,0,0,254,255,254,255,0,0,2,0,3,0,2,0, +1,0,2,0,6,0,9,0,7,0,4,0,2,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255, +255,255,1,0,2,0,2,0,2,0,2,0,3,0,5,0,6,0,6,0,6,0,5,0,3,0,1,0,255,255,254,255, +254,255,252,255,252,255,253,255,254,255,253,255,255,255,0,0,0,0,0,0,0,0,1,0,3,0,5,0,5,0,5,0, +5,0,4,0,1,0,1,0,255,255,252,255,252,255,255,255,254,255,252,255,251,255,253,255,0,0,2,0,1,0,0,0, +0,0,1,0,2,0,1,0,1,0,1,0,0,0,254,255,253,255,253,255,254,255,254,255,255,255,254,255,253,255,255,255, +1,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0,1,0,0,0,254,255,254,255,255,255,255,255,255,255, +2,0,4,0,3,0,4,0,4,0,4,0,5,0,4,0,2,0,2,0,3,0,2,0,0,0,0,0,1,0,0,0, +254,255,255,255,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,3,0,4,0,2,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,254,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0, +2,0,4,0,3,0,0,0,253,255,253,255,253,255,254,255,0,0,1,0,0,0,1,0,1,0,254,255,254,255,255,255, +255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0,2,0,3,0,2,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,255,255,0,0,0,0,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255, +253,255,253,255,253,255,255,255,0,0,254,255,0,0,2,0,2,0,2,0,1,0,255,255,0,0,0,0,0,0,255,255, +254,255,254,255,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,0,0,1,0,2,0,2,0, +2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +1,0,1,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,255,255,254,255,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,255,255,0,0,2,0,3,0,5,0,5,0,5,0,0,0, +249,255,247,255,248,255,251,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,0,0,1,0,2,0,3,0,2,0, +2,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,252,255,252,255,253,255,254,255, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,255,255, +254,255,255,255,254,255,254,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0, +2,0,4,0,3,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,254,255, +255,255,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,2,0,3,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,255,255,254,255,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,253,255,255,255, +255,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,0,0,2,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,2,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,254,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255, +255,255,0,0,0,0,255,255,254,255,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,254,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,0,0,1,0, +0,0,254,255,0,0,1,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,3,0, +1,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,1,0,1,0,0,0,255,255,0,0,255,255,0,0, +2,0,2,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,255,255,254,255,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +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, +1,0,1,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0, +1,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,254,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,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,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,2,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,254,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,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,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,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,255,255,255,255,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,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,255,255,254,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,255,255,0,0,1,0, +0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,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,255,255,0,0,1,0,0,0, +1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,255,255,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,1,0,1,0,255,255,0,0,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,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0, +1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,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,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,2,0,1,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,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,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,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,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0, +0,0,255,255,0,0,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,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,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,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,255,255,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,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,255,255,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,255,255, +0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0, +255,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,254,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255, +255,255,254,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,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,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,2,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0, +3,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0, +2,0,2,0,2,0,3,0,2,0,2,0,4,0,3,0,1,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0, +2,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0, +2,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,5,0,4,0,4,0,4,0,3,0,4,0,5,0, +4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0,5,0,4,0,4,0, +5,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,5,0,5,0,5,0, +5,0,5,0,5,0,6,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,6,0,4,0,5,0,6,0, +5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,6,0,5,0,6,0,6,0,6,0,5,0,6,0,5,0,6,0,7,0,7,0,6,0, +7,0,6,0,5,0,6,0,6,0,7,0,6,0,6,0,7,0,8,0,7,0,7,0,7,0,6,0,6,0,7,0, +7,0,7,0,6,0,6,0,7,0,8,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,7,0,8,0, +7,0,8,0,8,0,7,0,8,0,8,0,7,0,7,0,8,0,8,0,9,0,8,0,7,0,7,0,8,0,8,0, +8,0,7,0,8,0,7,0,7,0,8,0,7,0,7,0,9,0,8,0,8,0,8,0,8,0,8,0,9,0,8,0, +8,0,8,0,8,0,8,0,8,0,9,0,9,0,9,0,8,0,8,0,9,0,9,0,9,0,9,0,9,0,9,0, +9,0,9,0,9,0,9,0,9,0,8,0,10,0,10,0,9,0,10,0,10,0,9,0,9,0,9,0,8,0,10,0, +10,0,8,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,10,0,11,0, +11,0,10,0,10,0,11,0,10,0,11,0,11,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,10,0,11,0, +11,0,12,0,11,0,10,0,11,0,11,0,11,0,11,0,11,0,12,0,10,0,11,0,12,0,11,0,11,0,12,0, +12,0,12,0,11,0,11,0,11,0,12,0,12,0,12,0,12,0,13,0,13,0,12,0,12,0,11,0,11,0,12,0, +13,0,12,0,12,0,12,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,12,0,12,0,13,0,13,0,13,0, +14,0,13,0,13,0,13,0,13,0,13,0,14,0,13,0,13,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, +14,0,13,0,13,0,14,0,14,0,13,0,14,0,14,0,14,0,14,0,14,0,13,0,14,0,13,0,13,0,14,0, +14,0,14,0,14,0,13,0,14,0,15,0,15,0,14,0,14,0,15,0,16,0,15,0,14,0,15,0,15,0,15,0, +15,0,15,0,15,0,15,0,14,0,15,0,15,0,14,0,14,0,15,0,15,0,15,0,16,0,16,0,15,0,15,0, +16,0,16,0,15,0,16,0,16,0,15,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,15,0, +15,0,16,0,16,0,15,0,15,0,16,0,16,0,15,0,15,0,16,0,16,0,16,0,16,0,16,0,16,0,17,0, +17,0,16,0,16,0,17,0,16,0,16,0,16,0,16,0,16,0,17,0,16,0,16,0,16,0,18,0,17,0,16,0, +17,0,16,0,16,0,17,0,18,0,17,0,17,0,17,0,17,0,17,0,17,0,18,0,17,0,16,0,17,0,17,0, +18,0,18,0,17,0,18,0,19,0,17,0,17,0,19,0,18,0,17,0,18,0,18,0,17,0,18,0,18,0,18,0, +18,0,18,0,18,0,18,0,18,0,17,0,18,0,19,0,18,0,18,0,19,0,18,0,18,0,18,0,18,0,18,0, +19,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,19,0,20,0,19,0,19,0,19,0,19,0,20,0,20,0, +19,0,20,0,19,0,19,0,19,0,19,0,20,0,20,0,20,0,20,0,19,0,20,0,20,0,20,0,20,0,20,0, +20,0,20,0,20,0,20,0,20,0,21,0,20,0,20,0,20,0,21,0,21,0,20,0,21,0,21,0,20,0,21,0, +21,0,20,0,20,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0,21,0,21,0,21,0,22,0,21,0, +23,0,22,0,21,0,21,0,22,0,22,0,21,0,22,0,22,0,22,0,22,0,21,0,21,0,22,0,23,0,22,0, +22,0,23,0,23,0,23,0,24,0,23,0,23,0,23,0,22,0,23,0,23,0,23,0,24,0,24,0,23,0,23,0, +23,0,24,0,24,0,23,0,23,0,24,0,23,0,23,0,24,0,24,0,24,0,24,0,24,0,24,0,25,0,25,0, +24,0,23,0,24,0,25,0,25,0,24,0,24,0,25,0,25,0,25,0,25,0,25,0,24,0,25,0,25,0,25,0, +25,0,26,0,25,0,26,0,25,0,24,0,25,0,26,0,25,0,26,0,26,0,26,0,27,0,26,0,26,0,27,0, +26,0,27,0,26,0,25,0,26,0,26,0,25,0,27,0,28,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, +27,0,27,0,28,0,27,0,27,0,29,0,28,0,27,0,28,0,28,0,28,0,28,0,28,0,29,0,28,0,28,0, +28,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,30,0,30,0,29,0,29,0,29,0,28,0,29,0,29,0, +29,0,30,0,30,0,29,0,29,0,30,0,29,0,30,0,31,0,31,0,30,0,29,0,30,0,30,0,30,0,30,0, +30,0,31,0,31,0,31,0,31,0,30,0,31,0,32,0,31,0,30,0,32,0,31,0,30,0,32,0,32,0,31,0, +32,0,32,0,31,0,32,0,32,0,32,0,32,0,32,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0,32,0, +33,0,33,0,33,0,32,0,33,0,34,0,34,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,34,0,34,0, +33,0,34,0,34,0,35,0,35,0,34,0,33,0,34,0,34,0,35,0,35,0,34,0,35,0,35,0,34,0,35,0, +35,0,35,0,35,0,35,0,35,0,36,0,36,0,36,0,36,0,35,0,35,0,36,0,35,0,35,0,36,0,37,0, +37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,38,0,38,0,38,0, +38,0,39,0,38,0,38,0,38,0,38,0,39,0,39,0,39,0,39,0,39,0,38,0,38,0,40,0,40,0,39,0, +39,0,40,0,39,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,41,0,41,0,41,0,41,0, +41,0,40,0,40,0,41,0,41,0,42,0,42,0,42,0,42,0,42,0,42,0,43,0,42,0,42,0,42,0,43,0, +43,0,43,0,43,0,43,0,42,0,42,0,43,0,43,0,43,0,44,0,44,0,43,0,44,0,45,0,44,0,44,0, +45,0,45,0,44,0,44,0,45,0,45,0,45,0,45,0,45,0,46,0,45,0,45,0,46,0,46,0,45,0,45,0, +45,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,47,0,46,0,46,0,47,0,46,0,47,0, +48,0,48,0,47,0,47,0,47,0,48,0,48,0,47,0,47,0,47,0,48,0,48,0,49,0,48,0,49,0,48,0, +48,0,49,0,49,0,48,0,48,0,48,0,49,0,49,0,49,0,49,0,49,0,48,0,49,0,50,0,49,0,49,0, +49,0,50,0,50,0,50,0,49,0,49,0,50,0,50,0,50,0,50,0,50,0,50,0,49,0,50,0,51,0,51,0, +50,0,50,0,50,0,51,0,50,0,50,0,50,0,51,0,51,0,51,0,51,0,51,0,51,0,52,0,52,0,52,0, +52,0,51,0,51,0,52,0,52,0,52,0,52,0,52,0,52,0,53,0,52,0,52,0,52,0,52,0,53,0,53,0, +52,0,52,0,53,0,53,0,54,0,54,0,53,0,53,0,53,0,53,0,54,0,54,0,54,0,54,0,54,0,54,0, +54,0,54,0,54,0,54,0,54,0,54,0,55,0,55,0,54,0,54,0,55,0,56,0,55,0,55,0,56,0,56,0, +55,0,56,0,56,0,55,0,55,0,55,0,55,0,56,0,57,0,55,0,55,0,56,0,56,0,56,0,56,0,56,0, +56,0,57,0,56,0,56,0,56,0,57,0,56,0,57,0,57,0,57,0,57,0,57,0,57,0,57,0,58,0,58,0, +56,0,56,0,57,0,57,0,57,0,57,0,58,0,58,0,58,0,58,0,59,0,59,0,58,0,59,0,59,0,58,0, +58,0,59,0,58,0,58,0,59,0,59,0,58,0,59,0,59,0,59,0,59,0,60,0,59,0,59,0,60,0,60,0, +59,0,60,0,61,0,59,0,59,0,60,0,60,0,60,0,60,0,60,0,60,0,61,0,61,0,61,0,61,0,60,0, +60,0,61,0,61,0,60,0,60,0,61,0,62,0,62,0,62,0,62,0,61,0,61,0,61,0,62,0,62,0,62,0, +61,0,61,0,63,0,62,0,62,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, +63,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,63,0,64,0,65,0,65,0,65,0,65,0,65,0,64,0, +65,0,66,0,65,0,65,0,66,0,66,0,66,0,66,0,66,0,65,0,66,0,66,0,66,0,66,0,66,0,66,0, +66,0,67,0,67,0,66,0,66,0,67,0,67,0,67,0,67,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0, +68,0,68,0,68,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,70,0,70,0,69,0,69,0,70,0,69,0, +69,0,70,0,70,0,70,0,70,0,70,0,70,0,71,0,71,0,71,0,71,0,70,0,71,0,72,0,72,0,72,0, +72,0,71,0,72,0,73,0,72,0,72,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0, +74,0,74,0,74,0,73,0,74,0,74,0,74,0,75,0,74,0,74,0,74,0,75,0,75,0,75,0,76,0,75,0, +75,0,76,0,76,0,76,0,75,0,76,0,76,0,76,0,77,0,77,0,76,0,76,0,77,0,77,0,77,0,77,0, +76,0,77,0,78,0,77,0,78,0,78,0,77,0,77,0,78,0,78,0,79,0,78,0,78,0,79,0,79,0,79,0, +79,0,79,0,79,0,79,0,79,0,80,0,80,0,80,0,80,0,80,0,81,0,81,0,81,0,80,0,81,0,81,0, +81,0,80,0,81,0,81,0,82,0,83,0,82,0,82,0,82,0,82,0,82,0,83,0,82,0,82,0,82,0,83,0, +83,0,83,0,83,0,83,0,82,0,82,0,84,0,83,0,83,0,83,0,83,0,83,0,85,0,85,0,84,0,85,0, +85,0,85,0,86,0,85,0,85,0,86,0,86,0,85,0,86,0,86,0,86,0,86,0,87,0,86,0,86,0,87,0, +86,0,86,0,87,0,88,0,87,0,87,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0, +88,0,88,0,89,0,87,0,88,0,90,0,89,0,89,0,90,0,90,0,90,0,90,0,91,0,90,0,90,0,91,0, +91,0,91,0,91,0,90,0,91,0,92,0,92,0,91,0,91,0,92,0,91,0,91,0,91,0,91,0,92,0,93,0, +92,0,92,0,92,0,92,0,92,0,93,0,93,0,91,0,92,0,93,0,94,0,93,0,93,0,94,0,94,0,93,0, +94,0,95,0,95,0,95,0,94,0,94,0,95,0,96,0,95,0,95,0,96,0,96,0,96,0,95,0,95,0,97,0, +97,0,97,0,96,0,97,0,97,0,97,0,97,0,97,0,98,0,97,0,97,0,98,0,98,0,97,0,97,0,98,0, +99,0,99,0,98,0,99,0,99,0,99,0,98,0,99,0,100,0,100,0,99,0,99,0,101,0,100,0,99,0,100,0, +101,0,100,0,100,0,101,0,101,0,101,0,101,0,101,0,101,0,102,0,101,0,101,0,102,0,102,0,102,0,102,0, +102,0,102,0,102,0,103,0,103,0,103,0,103,0,104,0,104,0,104,0,104,0,104,0,103,0,104,0,104,0,105,0, +105,0,105,0,105,0,105,0,105,0,104,0,105,0,105,0,105,0,105,0,105,0,106,0,106,0,106,0,107,0,106,0, +106,0,107,0,107,0,106,0,107,0,107,0,106,0,108,0,108,0,107,0,107,0,108,0,107,0,108,0,109,0,109,0, +108,0,108,0,108,0,109,0,109,0,109,0,110,0,109,0,109,0,110,0,110,0,110,0,109,0,110,0,110,0,110,0, +111,0,111,0,111,0,111,0,111,0,111,0,110,0,111,0,111,0,112,0,112,0,112,0,112,0,112,0,112,0,113,0, +113,0,113,0,113,0,114,0,112,0,112,0,114,0,114,0,113,0,114,0,115,0,115,0,114,0,113,0,114,0,115,0, +115,0,114,0,115,0,115,0,115,0,116,0,116,0,115,0,116,0,117,0,116,0,115,0,115,0,117,0,117,0,116,0, +117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,118,0,119,0,118,0,117,0,118,0,118,0,118,0,118,0, +119,0,119,0,119,0,119,0,119,0,120,0,119,0,119,0,120,0,120,0,121,0,120,0,120,0,121,0,121,0,120,0, +121,0,122,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,122,0,123,0,122,0,121,0,122,0, +122,0,122,0,123,0,123,0,123,0,122,0,123,0,124,0,124,0,123,0,123,0,124,0,125,0,125,0,124,0,124,0, +125,0,124,0,125,0,126,0,125,0,124,0,126,0,126,0,125,0,126,0,127,0,126,0,126,0,127,0,126,0,127,0, +127,0,127,0,127,0,127,0,127,0,127,0,127,0,128,0,128,0,128,0,128,0,128,0,128,0,129,0,129,0,129,0, +129,0,129,0,129,0,130,0,130,0,129,0,130,0,130,0,131,0,131,0,131,0,130,0,130,0,131,0,130,0,130,0, +131,0,131,0,131,0,131,0,132,0,132,0,131,0,131,0,132,0,132,0,132,0,133,0,133,0,133,0,133,0,133,0, +134,0,134,0,133,0,133,0,133,0,133,0,133,0,134,0,135,0,135,0,134,0,134,0,135,0,135,0,134,0,134,0, +135,0,136,0,136,0,136,0,135,0,136,0,137,0,137,0,137,0,137,0,137,0,138,0,137,0,136,0,137,0,137,0, +137,0,138,0,138,0,138,0,138,0,138,0,138,0,139,0,139,0,139,0,139,0,139,0,139,0,140,0,140,0,140,0, +140,0,140,0,140,0,140,0,140,0,140,0,140,0,140,0,140,0,141,0,141,0,141,0,141,0,141,0,142,0,141,0, +142,0,142,0,141,0,141,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,144,0,143,0,143,0,144,0, +144,0,144,0,143,0,144,0,144,0,144,0,144,0,145,0,145,0,145,0,145,0,144,0,144,0,145,0,146,0,146,0, +145,0,146,0,146,0,146,0,146,0,147,0,146,0,146,0,147,0,147,0,147,0,147,0,147,0,148,0,147,0,147,0, +147,0,148,0,148,0,148,0,148,0,148,0,148,0,149,0,149,0,149,0,148,0,149,0,149,0,149,0,149,0,149,0, +149,0,149,0,149,0,149,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,151,0,150,0,150,0,150,0,150,0, +151,0,151,0,151,0,151,0,151,0,151,0,151,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0, +152,0,152,0,152,0,153,0,154,0,153,0,153,0,153,0,153,0,153,0,153,0,154,0,153,0,154,0,154,0,153,0, +154,0,154,0,154,0,154,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,156,0,155,0,155,0,155,0, +155,0,155,0,156,0,155,0,155,0,156,0,156,0,156,0,156,0,156,0,157,0,157,0,157,0,157,0,157,0,157,0, +158,0,158,0,157,0,157,0,157,0,158,0,158,0,158,0,157,0,158,0,158,0,158,0,159,0,159,0,159,0,159,0, +159,0,159,0,159,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,161,0,161,0,160,0,160,0,161,0,161,0, +161,0,161,0,161,0,161,0,162,0,162,0,162,0,162,0,162,0,162,0,162,0,162,0,162,0,162,0,162,0,162,0, +163,0,163,0,163,0,163,0,163,0,163,0,163,0,164,0,164,0,164,0,164,0,165,0,165,0,164,0,163,0,164,0, +164,0,165,0,165,0,165,0,166,0,165,0,165,0,165,0,165,0,165,0,166,0,166,0,166,0,167,0,166,0,166,0, +166,0,166,0,166,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,168,0,168,0,168,0,168,0,168,0, +168,0,168,0,168,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,170,0,169,0,169,0,170,0,170,0, +170,0,170,0,171,0,170,0,170,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0, +171,0,171,0,172,0,172,0,172,0,172,0,172,0,172,0,172,0,171,0,172,0,172,0,172,0,172,0,172,0,173,0, +173,0,173,0,173,0,173,0,173,0,173,0,173,0,173,0,173,0,174,0,174,0,174,0,174,0,174,0,174,0,174,0, +174,0,174,0,174,0,175,0,174,0,174,0,174,0,175,0,175,0,175,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/hurt.pcm b/src/client/sound/data/hurt.pcm new file mode 100755 index 0000000..94e3ce4 --- /dev/null +++ b/src/client/sound/data/hurt.pcm @@ -0,0 +1,7202 @@ +unsigned char PCM_hurt[86392] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0xb4,0xa8,0x0,0x0,0xdc,0xff,0xfe,0xff,0x9,0x0,0xf6,0xff, +0xdc,0xff,0xb5,0xff,0x76,0xff,0x61,0xff,0xa4,0xff,0xdd,0xff, +0xe0,0xff,0xc8,0xff,0x96,0xff,0x86,0xff,0x8f,0xff,0x61,0xff, +0x54,0xff,0x8b,0xff,0xa1,0xff,0x99,0xff,0x98,0xff,0x8f,0xff, +0x89,0xff,0x8c,0xff,0xa7,0xff,0xc3,0xff,0xb8,0xff,0xb2,0xff, +0xc1,0xff,0xc7,0xff,0xce,0xff,0xdf,0xff,0x7,0x0,0x3b,0x0, +0x4a,0x0,0x2d,0x0,0xfd,0xff,0xed,0xff,0x11,0x0,0x31,0x0, +0x4e,0x0,0x70,0x0,0x67,0x0,0x40,0x0,0x14,0x0,0xee,0xff, +0x1,0x0,0x28,0x0,0x2c,0x0,0x32,0x0,0x29,0x0,0xfa,0xff, +0xcd,0xff,0xac,0xff,0x8f,0xff,0x79,0xff,0x62,0xff,0x46,0xff, +0x22,0xff,0x2,0xff,0x1,0xff,0x28,0xff,0x62,0xff,0x9a,0xff, +0xbe,0xff,0xbe,0xff,0xa6,0xff,0x90,0xff,0x76,0xff,0x60,0xff, +0x69,0xff,0x8c,0xff,0xad,0xff,0xb7,0xff,0xab,0xff,0x9a,0xff, +0x82,0xff,0x70,0xff,0x84,0xff,0xad,0xff,0xe5,0xff,0x41,0x0, +0x85,0x0,0x73,0x0,0x44,0x0,0x35,0x0,0x38,0x0,0x46,0x0, +0x57,0x0,0x45,0x0,0x3,0x0,0x85,0xff,0xd8,0xfe,0x73,0xfe, +0xa0,0xfe,0xfc,0xfe,0x47,0xff,0x70,0xff,0x3b,0xff,0xe3,0xfe, +0xd9,0xfe,0xd,0xff,0x4c,0xff,0x7c,0xff,0x83,0xff,0x62,0xff, +0x1e,0xff,0xcd,0xfe,0x93,0xfe,0x91,0xfe,0xc4,0xfe,0xf9,0xfe, +0x1a,0xff,0xfe,0xfe,0x69,0xfe,0xdb,0xfd,0xdd,0xfd,0x3e,0xfe, +0xdc,0xfe,0x7a,0xff,0x89,0xff,0x11,0xff,0x6d,0xfe,0x13,0xfe, +0x72,0xfe,0x1c,0xff,0x81,0xff,0xa4,0xff,0x65,0xff,0xc9,0xfe, +0x4f,0xfe,0x2c,0xfe,0x50,0xfe,0xc1,0xfe,0x55,0xff,0x84,0xff, +0x6,0xff,0x48,0xfe,0xc2,0xfd,0xbf,0xfd,0x64,0xfe,0x4a,0xff, +0xe8,0xff,0xf1,0xff,0x4d,0xff,0x7f,0xfe,0x21,0xfe,0x3d,0xfe, +0xb7,0xfe,0x31,0xff,0xc,0xff,0x59,0xfe,0x87,0xfd,0xdf,0xfc, +0xbf,0xfc,0x47,0xfd,0x17,0xfe,0xb2,0xfe,0xc3,0xfe,0x40,0xfe, +0x87,0xfd,0x37,0xfd,0x8c,0xfd,0x75,0xfe,0x86,0xff,0xc4,0xff, +0x4,0xff,0xf0,0xfd,0x2e,0xfd,0x2c,0xfd,0xab,0xfd,0x3d,0xfe, +0xa6,0xfe,0x9b,0xfe,0xe,0xfe,0x7e,0xfd,0x7b,0xfd,0xf2,0xfd, +0xbd,0xfe,0xa4,0xff,0x1e,0x0,0xf8,0xff,0x56,0xff,0x9a,0xfe, +0x57,0xfe,0xdd,0xfe,0xc2,0xff,0x4b,0x0,0x49,0x0,0xb9,0xff, +0xe3,0xfe,0x57,0xfe,0x7b,0xfe,0x4e,0xff,0x15,0x0,0x40,0x0, +0xc9,0xff,0x1a,0xff,0xb4,0xfe,0x9a,0xfe,0xee,0xfe,0x85,0xff, +0xbd,0xff,0x89,0xff,0x2d,0xff,0x8c,0xfe,0xcc,0xfd,0xbc,0xfd, +0x50,0xfe,0xec,0xfe,0x5b,0xff,0x77,0xff,0x30,0xff,0x59,0xfe, +0xa,0xfe,0xa,0xff,0xbc,0xff,0xb7,0xff,0xde,0xff,0x11,0x0, +0xe8,0xff,0xb2,0xff,0x4a,0x0,0x4f,0x1,0xfb,0x1,0x6a,0x2, +0xb3,0x2,0x7f,0x2,0x5f,0x1,0x4d,0x0,0xae,0x0,0xf6,0x1, +0x85,0x2,0x45,0x2,0x33,0x2,0x9c,0x1,0x91,0x0,0xe8,0x0, +0x36,0x2,0xec,0x2,0xe8,0x2,0x59,0x2,0x38,0x1,0x3a,0x0, +0x11,0x0,0x8e,0x0,0x5e,0x1,0x92,0x1,0xbd,0x0,0xc4,0xff, +0x16,0xff,0xc6,0xfe,0xea,0xfe,0xb1,0xff,0xbc,0x0,0xd9,0x0, +0x1,0x0,0x3a,0xff,0x5,0xff,0x2b,0xff,0xab,0xff,0xa3,0x0, +0x17,0x1,0x2,0x0,0x50,0xfe,0x9f,0xfd,0x82,0xfd,0x8e,0xfd, +0xa1,0xfe,0xd1,0xff,0xfc,0xff,0x67,0xff,0x7f,0xfe,0x9f,0xfd, +0x72,0xfd,0xdf,0xfe,0x63,0x0,0x5c,0x0,0xd2,0xff,0x18,0xff, +0x27,0xfe,0x9b,0xfd,0x56,0xfe,0x5,0x0,0x8b,0x0,0x25,0x0, +0xb5,0xff,0x79,0xfe,0x43,0xfd,0x5b,0xfd,0x5e,0xfe,0x46,0xff, +0xc1,0xff,0xa3,0xff,0x87,0xfe,0x2c,0xfd,0xc9,0xfc,0x4a,0xfd, +0x5,0xfe,0xf2,0xfe,0x83,0xff,0xbe,0xfe,0xd,0xfd,0xd6,0xfb, +0xf3,0xfb,0x19,0xfd,0xac,0xfe,0x4a,0xff,0x17,0xfe,0x5c,0xfc, +0xda,0xfa,0x21,0xfa,0xf3,0xfa,0x9c,0xfc,0xfb,0xfd,0x4e,0xfe, +0xce,0xfd,0xc6,0xfc,0xc6,0xfb,0xa,0xfc,0x60,0xfd,0xa4,0xfe, +0x5,0xff,0xaf,0xfe,0xd2,0xfd,0x3b,0xfc,0x9d,0xfb,0xce,0xfc, +0x3f,0xfe,0x2e,0xff,0x99,0xff,0x42,0xff,0x3a,0xfe,0x62,0xfd, +0xe7,0xfd,0xb5,0xff,0x72,0x1,0x28,0x2,0xfe,0x1,0x8f,0x1, +0x8,0x1,0x69,0x0,0xc0,0x0,0x2,0x2,0x56,0x2,0x6d,0x1, +0x1f,0x0,0x7a,0xfe,0xce,0xfc,0x70,0xfc,0xac,0xfd,0x33,0xff, +0xfe,0xff,0xe7,0xff,0x9e,0xff,0x21,0xff,0xa6,0xfe,0x8d,0xff, +0x21,0x1,0x2e,0x2,0x75,0x2,0xa6,0x1,0xb2,0x0,0x4a,0x0, +0x28,0x0,0x66,0x0,0xae,0x1,0x26,0x3,0x4f,0x3,0x36,0x3, +0x3b,0x3,0x1d,0x3,0x2c,0x4,0x50,0x6,0x35,0x8,0x8d,0x8, +0x90,0x7,0xb7,0x6,0xf7,0x5,0x6f,0x5,0x99,0x5,0x0,0x6, +0x7,0x6,0x54,0x5,0xb1,0x4,0x80,0x4,0x20,0x4,0x33,0x4, +0xed,0x4,0x9e,0x5,0xf7,0x5,0x40,0x5,0xff,0x3,0x52,0x3, +0x29,0x3,0x67,0x3,0xa0,0x3,0xad,0x3,0x6,0x3,0x94,0x1, +0xca,0x0,0xaa,0x0,0xf0,0x0,0x41,0x1,0x34,0x1,0x56,0x1, +0x6d,0x0,0x47,0xff,0x89,0xff,0x79,0xff,0x32,0xff,0x9e,0xff, +0xf5,0xff,0x77,0xff,0x6c,0xfe,0xff,0xfd,0x8,0xfe,0x8f,0xfe, +0x6e,0xff,0x94,0xff,0x65,0xff,0xd2,0xfe,0x30,0xfe,0x7b,0xfe, +0xe9,0xfe,0x3,0xff,0xca,0xfe,0x14,0xfe,0x68,0xfd,0x7,0xfd, +0x10,0xfd,0xc6,0xfd,0xb8,0xfe,0x3f,0xff,0x4b,0xff,0x1c,0xff, +0x77,0xfe,0x97,0xfd,0x8e,0xfd,0xa,0xfe,0x3e,0xfe,0x34,0xfe, +0xa8,0xfd,0xcf,0xfc,0xa8,0xfb,0xb2,0xfa,0x3f,0xfb,0x51,0xfc, +0xd2,0xfc,0x11,0xfd,0xd4,0xfc,0x3,0xfc,0x64,0xfb,0xf5,0xfb, +0x28,0xfd,0xfa,0xfd,0x12,0xfe,0x38,0xfd,0x16,0xfc,0xc8,0xfa, +0xc2,0xf9,0x23,0xfa,0x36,0xfb,0x18,0xfc,0x5c,0xfc,0xec,0xfb, +0x6c,0xfb,0x32,0xfb,0x96,0xfb,0xcd,0xfc,0x48,0xfe,0x21,0xff, +0xcb,0xfe,0xb9,0xfd,0x1c,0xfd,0x27,0xfd,0x54,0xfd,0x64,0xfe, +0x6,0x0,0x79,0x0,0xeb,0xff,0xad,0xff,0x4,0x0,0x5a,0x0, +0xed,0x0,0x22,0x2,0x36,0x3,0x54,0x3,0x7b,0x2,0xbc,0x1, +0xa5,0x1,0x2f,0x2,0x82,0x3,0xe3,0x4,0x6c,0x5,0x96,0x4, +0x53,0x3,0x1e,0x3,0x2d,0x3,0xd9,0x2,0x23,0x2,0xea,0x0, +0xce,0xff,0x7b,0xfe,0xd8,0xfc,0x26,0xfc,0x3f,0xfc,0xda,0xfc, +0xb7,0xfe,0xb2,0x0,0x4d,0x1,0x2b,0x1,0x90,0x1,0xff,0x2, +0xbc,0x3,0x1e,0x3,0x8f,0x3,0x36,0x4,0xdd,0x2,0x5b,0x1, +0x39,0x1,0x77,0x1,0xd8,0x1,0x76,0x3,0x3e,0x6,0xb6,0x7, +0xec,0x6,0x34,0x7,0x4c,0x9,0xe7,0x9,0x72,0x9,0xc,0xa, +0xe6,0xa,0x52,0xa,0xcc,0x8,0x1f,0x8,0x4c,0x7,0xe5,0x5, +0xc1,0x5,0x37,0x6,0x3d,0x6,0xdb,0x5,0xb,0x5,0xd8,0x4, +0x2f,0x5,0x7c,0x4,0xe8,0x3,0xf0,0x4,0xe4,0x4,0xd8,0x2, +0x40,0x1,0x89,0x0,0xcc,0xff,0x46,0xfe,0x9d,0xfd,0xfd,0xfe, +0x16,0xff,0xd7,0xfd,0xc4,0xfd,0x57,0xfd,0xe9,0xfb,0x7,0xfb, +0x8c,0xfb,0xbc,0xfc,0xdf,0xfb,0xcb,0xf9,0x9a,0xf9,0x92,0xf9, +0xc3,0xf8,0x5b,0xf9,0xda,0xfa,0xca,0xfb,0x67,0xfc,0x3c,0xfd, +0xc6,0xfc,0xbd,0xfa,0x69,0xfa,0xbb,0xfb,0x53,0xfc,0x5d,0xfc, +0xb4,0xfb,0xe9,0xf9,0x29,0xf8,0xee,0xf7,0xb1,0xf8,0x89,0xf9, +0xfc,0xfa,0x5b,0xfc,0x97,0xfc,0x57,0xfc,0x53,0xfc,0x76,0xfc, +0xe9,0xfc,0xde,0xfd,0x40,0xfe,0x3a,0xfd,0x10,0xfb,0x7e,0xf8, +0xe3,0xf6,0x8d,0xf6,0xc1,0xf6,0x7e,0xf7,0x9a,0xf8,0x1a,0xf9, +0xc2,0xf8,0x2b,0xf8,0x58,0xf8,0xba,0xf9,0xc7,0xfa,0xf1,0xfa, +0xad,0xfa,0x25,0xf9,0xde,0xf6,0x6e,0xf5,0x24,0xf5,0x36,0xf5, +0x97,0xf5,0xd7,0xf6,0x62,0xf7,0x7d,0xf6,0xc5,0xf5,0xfa,0xf5, +0x13,0xf7,0xcb,0xf8,0xd6,0xfa,0xd,0xfc,0x7f,0xfb,0x94,0xfa, +0x2c,0xfa,0xda,0xf9,0x13,0xfa,0x3b,0xfb,0x89,0xfc,0x5e,0xfd, +0x85,0xfd,0xee,0xfc,0x23,0xfd,0xa0,0xfe,0xdb,0xff,0x1f,0x1, +0x97,0x2,0xa3,0x2,0x6d,0x1,0xf2,0x0,0x32,0x1,0xe1,0x0, +0xfc,0x0,0x59,0x2,0x54,0x3,0x7,0x3,0x44,0x2,0xbc,0x1, +0xd7,0x0,0x12,0xff,0x79,0xfe,0xec,0xfe,0x2,0xfd,0x88,0xfa, +0xfb,0xf9,0x6b,0xf9,0x4e,0xf9,0x9f,0xfa,0x4e,0xfc,0x28,0xfd, +0xd,0xfd,0xf9,0xfd,0xc9,0xfe,0xb0,0xfd,0x51,0xfd,0x81,0xfe, +0x1b,0xff,0x5d,0xfe,0xb9,0xfd,0xc7,0xfd,0xa,0xfd,0x5e,0xfc, +0x32,0xfe,0xf7,0x0,0x94,0x1,0xe9,0x1,0x84,0x4,0x16,0x7, +0x4b,0x7,0x90,0x6,0xca,0x7,0x1b,0x9,0xb4,0x7,0x60,0x7, +0x75,0x8,0xef,0x6,0x5a,0x4,0xc5,0x2,0x64,0x2,0xf2,0x2, +0x29,0x3,0x4b,0x4,0x4f,0x6,0x7,0x6,0x50,0x4,0xec,0x3, +0xf1,0x3,0xb2,0x2,0x28,0x1,0x61,0x1,0xe6,0x1,0x87,0xff, +0xf6,0xfb,0x91,0xfa,0x7,0xfa,0x14,0xf9,0xca,0xf9,0xa5,0xfb, +0x8c,0xfb,0x0,0xf9,0x1a,0xf7,0xba,0xf7,0x65,0xf7,0x52,0xf6, +0x1b,0xf8,0x4f,0xf9,0xbd,0xf7,0xf6,0xf5,0xe9,0xf4,0x8,0xf4, +0x4b,0xf3,0x61,0xf5,0x52,0xf8,0x10,0xf8,0xb9,0xf7,0xb0,0xf7, +0x21,0xf6,0x7e,0xf5,0xe9,0xf6,0x16,0xf9,0xd7,0xf9,0x38,0xf9, +0x7,0xf8,0x85,0xf5,0xfd,0xf3,0x26,0xf5,0x8a,0xf7,0x74,0xfa, +0x83,0xfc,0x7a,0xfc,0x6b,0xfb,0x38,0xfa,0x2,0xf9,0xec,0xf8, +0x59,0xfa,0x7b,0xfb,0x68,0xfb,0x4e,0xfa,0x82,0xf7,0x23,0xf4, +0x2,0xf3,0xe9,0xf4,0xfc,0xf7,0xc3,0xf9,0xd4,0xf9,0x9d,0xf8, +0xa2,0xf6,0x8d,0xf5,0xf2,0xf5,0x3c,0xf7,0x19,0xf8,0xeb,0xf7, +0x60,0xf7,0xf0,0xf4,0x49,0xf1,0xf3,0xef,0xeb,0xf0,0xbd,0xf2, +0x92,0xf4,0xff,0xf5,0x1a,0xf6,0x6b,0xf4,0xcc,0xf3,0x7e,0xf5, +0xbd,0xf7,0xab,0xf9,0xef,0xfa,0x8d,0xfa,0x48,0xf8,0x69,0xf6, +0x57,0xf6,0x7c,0xf7,0x7f,0xf9,0x85,0xfb,0x24,0xfd,0x21,0xfe, +0x9,0xfe,0x86,0xfd,0x2,0xfe,0x3c,0x0,0xbc,0x2,0xa2,0x4, +0xd2,0x5,0x7e,0x4,0xbc,0x1,0x9c,0x0,0x5c,0x1,0x11,0x3, +0x5a,0x4,0xb0,0x4,0xf4,0x3,0xb1,0x0,0x60,0xfd,0x6,0xfd, +0x3a,0xfd,0x4c,0xfd,0x43,0xfe,0xa6,0xfe,0x6a,0xfd,0x76,0xfb, +0xc5,0xfa,0x24,0xfa,0xe4,0xf8,0xc0,0xfa,0x7,0xfe,0xc2,0xfd, +0x37,0xfb,0xc4,0xf9,0xff,0xf9,0xbd,0xfa,0x26,0xfc,0x70,0xfe, +0x81,0xfe,0xbc,0xfb,0x10,0xfb,0x26,0xfd,0xe6,0xfd,0xf9,0xfd, +0x84,0x0,0x6,0x5,0xbb,0x7,0xd,0x7,0xc5,0x6,0x97,0x7, +0xed,0x6,0xd6,0x6,0x72,0x8,0xb3,0x8,0x84,0x6,0xbd,0x3, +0x77,0x2,0xb7,0x2,0xe0,0x2,0xdc,0x3,0x9b,0x6,0x1e,0x8, +0x29,0x7,0xd7,0x5,0x41,0x5,0xbd,0x4,0x44,0x3,0xe0,0x2, +0x75,0x4,0x4,0x4,0xdc,0x0,0x11,0xfe,0x25,0xfc,0x5e,0xfa, +0x84,0xf9,0xbc,0xfa,0x40,0xfc,0xb3,0xfa,0xf0,0xf7,0x16,0xf8, +0x23,0xf9,0xc4,0xf8,0x21,0xf9,0x74,0xfa,0x6b,0xfa,0xa4,0xf8, +0x1e,0xf7,0x70,0xf5,0x83,0xf2,0xed,0xf1,0xa,0xf4,0x0,0xf5, +0x33,0xf5,0xe5,0xf5,0xe,0xf6,0x9d,0xf5,0x14,0xf6,0x63,0xf7, +0xd6,0xf7,0x2f,0xf8,0x1,0xf9,0x46,0xf8,0x8d,0xf6,0x4a,0xf6, +0x95,0xf7,0x87,0xf9,0x71,0xfb,0x6e,0xfc,0xe,0xfc,0x2b,0xfb, +0x3c,0xfb,0xcb,0xfb,0xc2,0xfb,0xcd,0xfb,0x7f,0xfc,0x59,0xfd, +0x26,0xfd,0xa8,0xfb,0xdf,0xf9,0xac,0xf8,0x2e,0xf9,0xbb,0xfa, +0x77,0xfb,0xd,0xfb,0x58,0xfa,0x15,0xfa,0xb5,0xf9,0xb1,0xf9, +0x24,0xfa,0xac,0xf9,0x8d,0xf9,0xae,0xf9,0xb9,0xf7,0x7b,0xf4, +0x85,0xf2,0x63,0xf2,0x46,0xf2,0xad,0xf2,0x88,0xf4,0x68,0xf5, +0x72,0xf5,0x40,0xf6,0xbe,0xf6,0x18,0xf7,0x4c,0xf8,0x7b,0xf9, +0x7a,0xf9,0x46,0xf8,0x55,0xf7,0x9f,0xf7,0x25,0xf8,0x82,0xf8, +0x42,0xf9,0x78,0xfa,0x1d,0xfc,0x6a,0xfd,0xe5,0xfd,0x56,0xfe, +0x3a,0xff,0x14,0x1,0x2a,0x4,0x94,0x6,0xa6,0x6,0xf8,0x5, +0xd,0x6,0x40,0x6,0xd,0x6,0xdf,0x5,0x4a,0x6,0x7f,0x6, +0xc6,0x5,0x3d,0x4,0x94,0x1,0x1a,0xff,0x40,0xfe,0x7a,0xfe, +0x82,0xfe,0x6a,0xfd,0x3a,0xfc,0xe,0xfc,0x6e,0xfc,0xa8,0xfc, +0xe8,0xfc,0x14,0xfe,0x20,0x0,0x9,0x2,0xe,0x2,0x0,0x0, +0x3,0xfe,0xd2,0xfc,0xda,0xfc,0x9c,0xfd,0x2b,0xfd,0x4c,0xfc, +0x61,0xfc,0x4f,0xfd,0x83,0xfe,0xcd,0xff,0x4c,0x2,0x12,0x6, +0x44,0xa,0xfe,0xd,0x5d,0xf,0x4a,0xe,0xbf,0xc,0xf2,0xb, +0xda,0xb,0x24,0xb,0xcf,0x9,0xec,0x8,0x12,0x7,0x70,0x4, +0x6a,0x3,0x4d,0x4,0x53,0x6,0xdd,0x8,0xdc,0xb,0xd9,0xd, +0x79,0xd,0xbb,0xc,0xd7,0xb,0x47,0xa,0xa0,0x9,0xad,0x9, +0x9a,0x8,0x33,0x5,0xe8,0x0,0x23,0xfd,0xf2,0xf9,0xc2,0xf9, +0x47,0xfc,0xb0,0xfd,0x8d,0xfd,0x2,0xfd,0x3e,0xfc,0x4c,0xfb, +0xcc,0xfa,0x89,0xfb,0x9d,0xfc,0x64,0xfd,0x9e,0xfd,0x6a,0xfb, +0x3a,0xf7,0x13,0xf4,0x87,0xf3,0x1,0xf5,0xcc,0xf6,0x73,0xf8, +0xf5,0xf8,0x5b,0xf7,0xf1,0xf5,0x62,0xf5,0x5d,0xf5,0xfe,0xf6, +0xbc,0xf9,0xa8,0xfb,0xb4,0xfa,0xe7,0xf8,0x77,0xf8,0xd0,0xf7, +0x79,0xf9,0xa,0xfe,0x81,0x0,0x43,0x0,0x61,0xff,0x1f,0xfe, +0xfb,0xfb,0x54,0xfa,0x31,0xfb,0xb8,0xfc,0x1d,0xfd,0xcd,0xfc, +0x2b,0xfb,0x56,0xf8,0xba,0xf6,0x4b,0xf8,0xaf,0xfb,0xa1,0xfe, +0x81,0x0,0x29,0x0,0xf2,0xfd,0x6a,0xfc,0xc4,0xfb,0x6f,0xfb, +0x5a,0xfb,0xc4,0xfa,0x80,0xf9,0x97,0xf6,0x74,0xf2,0xb8,0xef, +0x1f,0xef,0xcf,0xf0,0x66,0xf4,0xa9,0xf7,0xe0,0xf8,0x8a,0xf8, +0x56,0xf8,0x4c,0xf8,0xef,0xf8,0x5d,0xfb,0x67,0xfd,0xe4,0xfc, +0xb8,0xfa,0x6b,0xf8,0x94,0xf6,0xc4,0xf5,0x8c,0xf6,0xbe,0xf8, +0x2,0xfc,0xff,0xfe,0x3f,0x0,0x44,0x0,0x8a,0x0,0x3b,0x2, +0xdf,0x4,0x86,0x7,0xb6,0x9,0x1c,0xa,0x76,0x8,0xd9,0x6, +0x44,0x6,0x1a,0x6,0xf2,0x6,0x69,0x8,0x96,0x8,0x1b,0x7, +0x23,0x4,0x21,0x1,0x69,0xff,0x2d,0xfe,0xf1,0xfd,0x81,0xfe, +0x43,0xfe,0xa8,0xfd,0xa3,0xfd,0x1c,0xfe,0x3c,0xfe,0xa0,0xfe, +0x55,0x1,0x86,0x4,0x2e,0x4,0xf0,0x0,0x2c,0xfe,0xe3,0xfc, +0x64,0xfc,0x62,0xfc,0xd8,0xfc,0x9c,0xfc,0x51,0xfb,0x4d,0xfb, +0xcc,0xfc,0x73,0xfd,0x6f,0xfe,0xe5,0x2,0x88,0x9,0x41,0xe, +0xc9,0xf,0xd8,0xf,0xb9,0xf,0xb7,0xe,0x79,0xd,0xbb,0xd, +0x90,0xd,0xea,0xa,0x3,0x7,0xe4,0x3,0x7e,0x2,0x56,0x2, +0x2a,0x4,0x61,0x8,0x64,0xc,0x58,0xe,0x17,0xf,0x83,0xf, +0xb1,0xe,0xc6,0xc,0xd8,0xb,0x40,0xc,0x81,0xb,0x9e,0x7, +0xbe,0x2,0xc3,0xfe,0x42,0xfb,0xc8,0xf9,0xbf,0xfa,0xcd,0xfb, +0x7c,0xfb,0xc2,0xfa,0x10,0xfb,0x3e,0xfb,0xf3,0xfa,0xcf,0xfb, +0x85,0xfd,0xb2,0xfe,0x9e,0xfe,0xf2,0xfc,0x38,0xf9,0xf7,0xf4, +0x69,0xf3,0x34,0xf4,0xa,0xf5,0x86,0xf5,0xb0,0xf5,0x96,0xf5, +0x1,0xf5,0x57,0xf4,0xb,0xf5,0xc2,0xf6,0xc4,0xf8,0x3c,0xfa, +0xbe,0xf9,0x66,0xf8,0x7f,0xf7,0xb0,0xf7,0xdd,0xf9,0xbe,0xfc, +0xf9,0xfe,0xd4,0xff,0x93,0xff,0xf4,0xfe,0x2,0xfd,0x28,0xfb, +0x21,0xfb,0x9a,0xfb,0xed,0xfb,0xf1,0xfb,0x2,0xfb,0xe1,0xf8, +0x45,0xf7,0x44,0xf8,0xc8,0xfa,0x1,0xfd,0xf1,0xfd,0x2,0xfe, +0x1b,0xfe,0x8c,0xfd,0x91,0xfc,0xaf,0xfb,0xfc,0xfa,0xac,0xfa, +0x29,0xf9,0x3,0xf6,0xda,0xf2,0x28,0xf0,0x6f,0xee,0x71,0xee, +0xe6,0xef,0x51,0xf2,0x6d,0xf4,0x78,0xf5,0x77,0xf6,0x70,0xf7, +0x79,0xf8,0x54,0xfa,0xa7,0xfb,0x2b,0xfb,0x90,0xf9,0xf9,0xf7, +0xc4,0xf6,0x89,0xf5,0xf8,0xf4,0x2e,0xf6,0x6e,0xf8,0x77,0xfa, +0x24,0xfc,0x7a,0xfd,0x77,0xfe,0xcc,0xff,0x7d,0x2,0x3b,0x6, +0xce,0x8,0x97,0x9,0xcf,0x9,0x7f,0x9,0xdb,0x8,0x77,0x8, +0x5b,0x8,0x65,0x8,0x41,0x8,0x9a,0x7,0xda,0x5,0x8,0x3, +0xdd,0xff,0xb9,0xfd,0xc0,0xfd,0x20,0xfe,0xae,0xfd,0x2,0xfe, +0x34,0xff,0xed,0xff,0x1a,0x0,0xb0,0x0,0xbc,0x1,0x8,0x3, +0x86,0x4,0xa0,0x4,0x38,0x2,0xdd,0xfe,0x31,0xfd,0xc,0xfd, +0x5a,0xfc,0x96,0xfb,0x88,0xfb,0xc8,0xfb,0x9a,0xfc,0xd9,0xfd, +0xc0,0xff,0x3a,0x3,0x2c,0x8,0x38,0xe,0xc7,0x13,0xef,0x15, +0xc8,0x14,0xeb,0x12,0xb5,0x11,0xea,0x10,0xac,0xf,0xe7,0xd, +0x35,0xb,0x49,0x7,0x33,0x4,0x5d,0x3,0xab,0x4,0xf2,0x7, +0x3,0xc,0x7,0x10,0x4e,0x13,0x75,0x14,0xc0,0x13,0x7e,0x12, +0x17,0x11,0x71,0x10,0x63,0x10,0x8e,0xe,0x7b,0xa,0xb9,0x4, +0x85,0xfe,0x9,0xfb,0xad,0xfa,0xfd,0xfb,0xa3,0xfd,0xf2,0xfd, +0xa0,0xfd,0x6b,0xfd,0x22,0xfd,0x96,0xfd,0xf2,0xfe,0x54,0x1, +0x79,0x3,0x82,0x2,0xaa,0xfe,0x87,0xf9,0x9a,0xf4,0xff,0xf2, +0xbf,0xf4,0xa3,0xf6,0x35,0xf7,0xa9,0xf6,0x88,0xf5,0xea,0xf3, +0xc,0xf3,0xbc,0xf4,0x84,0xf7,0x92,0xf9,0xee,0xfa,0x2f,0xfb, +0xc5,0xf9,0xf,0xf8,0xe3,0xf8,0x24,0xfc,0xe4,0xff,0xc2,0x2, +0xe0,0x2,0x8e,0x0,0x5b,0xfd,0xb8,0xfa,0x5a,0xfa,0x63,0xfb, +0xc0,0xfc,0x38,0xfe,0xb6,0xfd,0xdd,0xfa,0x5b,0xf8,0x7,0xf8, +0x15,0xfa,0x11,0xfe,0xd,0x2,0xa9,0x3,0x0,0x3,0x46,0x1, +0x40,0xff,0x4e,0xfe,0x80,0xfe,0x58,0xfe,0x34,0xfd,0x8c,0xfa, +0x36,0xf6,0xf9,0xf0,0xbc,0xec,0x29,0xec,0xc8,0xee,0x7d,0xf2, +0x3e,0xf6,0x69,0xf8,0xf1,0xf8,0xf3,0xf8,0x92,0xf9,0xcb,0xfb, +0xfb,0xfd,0xa,0xff,0xc7,0xfe,0xf,0xfc,0x6b,0xf8,0xfb,0xf5, +0xbf,0xf4,0x1b,0xf5,0x62,0xf7,0xb7,0xfa,0x8d,0xfd,0xa4,0xfe, +0xf,0xff,0xc0,0x0,0xb1,0x3,0xab,0x7,0x1f,0xc,0xdd,0xe, +0x5d,0xf,0xa3,0xe,0x1f,0xd,0xea,0xb,0x9b,0xb,0x5e,0xb, +0x93,0xb,0x2f,0xc,0x1f,0xb,0x2b,0x8,0x5b,0x4,0xd3,0x0, +0xa2,0xff,0x1a,0x0,0x43,0x0,0x3e,0x0,0x2f,0x0,0x4c,0x0, +0x40,0x1,0x23,0x3,0xdf,0x4,0x74,0x5,0xe6,0x6,0xc8,0x9, +0x3a,0x9,0xee,0x3,0x60,0xff,0x69,0xfd,0xef,0xfb,0x3e,0xfb, +0xba,0xfb,0x38,0xfc,0xbf,0xfb,0xea,0xfb,0x15,0xff,0xbf,0x2, +0x60,0x5,0xb6,0xa,0xb5,0x12,0xaf,0x18,0x35,0x1a,0x25,0x19, +0x2e,0x18,0x28,0x16,0x9f,0x12,0x68,0x10,0xe9,0xe,0x1a,0xc, +0x9d,0x8,0x54,0x5,0x76,0x3,0xa2,0x3,0x2f,0x6,0x5b,0xc, +0x16,0x14,0x1d,0x19,0xd1,0x1a,0xce,0x1a,0xbe,0x18,0xab,0x14, +0x62,0x11,0x77,0x10,0xd3,0xf,0x21,0xc,0x95,0x5,0x59,0xff, +0x4c,0xfa,0xab,0xf7,0x8,0xf9,0x4e,0xfc,0xf6,0xfe,0x22,0x0, +0xbe,0x0,0xc5,0x0,0xc3,0xfe,0xae,0xfd,0x81,0x0,0x47,0x4, +0x63,0x5,0xf9,0x2,0x4f,0xfd,0xd9,0xf5,0xd5,0xf0,0xc9,0xf0, +0xba,0xf2,0xc3,0xf4,0x6,0xf7,0xbf,0xf7,0x1f,0xf6,0x8e,0xf3, +0x92,0xf2,0x9a,0xf4,0x9e,0xf8,0x42,0xfd,0xc0,0xff,0x39,0xfe, +0xf5,0xfa,0x2d,0xf8,0x36,0xf8,0xb8,0xfc,0x98,0x2,0xf9,0x5, +0xa4,0x5,0xa,0x2,0xab,0xfc,0x26,0xf8,0x15,0xf7,0x4a,0xf9, +0xaa,0xfc,0xf3,0xfe,0x69,0xfe,0x81,0xfb,0x6d,0xf8,0xfd,0xf7, +0x96,0xfb,0x94,0x1,0xfe,0x6,0x54,0x9,0xab,0x7,0x30,0x3, +0x1b,0xfe,0x8a,0xfa,0xb,0xfa,0x5,0xfc,0x7b,0xfc,0xd8,0xf8, +0x12,0xf3,0x9a,0xed,0x22,0xea,0x47,0xea,0x30,0xee,0xbe,0xf4, +0x19,0xfb,0xf0,0xfd,0x55,0xfd,0x6f,0xfb,0x6,0xfa,0xfd,0xfa, +0xf8,0xfd,0xcf,0xff,0x10,0xfe,0x1c,0xf9,0x7d,0xf3,0x61,0xef, +0x30,0xee,0x2e,0xf1,0x27,0xf7,0xa0,0xfc,0xcc,0xff,0x92,0x1, +0xb3,0x2,0x54,0x3,0x2c,0x5,0xe6,0x9,0x8a,0xf,0x52,0x12, +0x52,0x11,0x8d,0xe,0x67,0xb,0x45,0x8,0x35,0x7,0x80,0x9, +0x41,0xc,0x86,0xc,0x87,0x9,0xce,0x3,0xaa,0xfe,0xd8,0xfc, +0x83,0xfd,0x58,0xff,0x6f,0x1,0xb2,0x2,0x5e,0x3,0x17,0x4, +0x79,0x3,0xf6,0x1,0xb7,0x3,0x96,0x8,0x1,0xb,0xa0,0x8, +0x93,0x4,0x45,0x1,0x54,0xfd,0xc4,0xf9,0x44,0xfa,0x8f,0xfc, +0xeb,0xfc,0x32,0xfd,0x77,0xfe,0xa4,0xff,0x61,0x1,0x71,0x5, +0x42,0xd,0x1d,0x16,0x49,0x1b,0x20,0x1d,0x44,0x1d,0xe6,0x1a, +0x89,0x16,0x8d,0x12,0x8f,0x10,0x3b,0xf,0x43,0xc,0x5a,0x8, +0xe,0x5,0x50,0x2,0xc8,0x1,0x62,0x6,0x13,0xf,0xfb,0x16, +0x27,0x1b,0x6d,0x1d,0x87,0x1e,0x7a,0x1b,0x82,0x16,0xea,0x14, +0x91,0x14,0x9b,0x11,0xc1,0xc,0xe8,0x6,0x9c,0xff,0x1c,0xf8, +0xe9,0xf4,0x4b,0xf7,0x89,0xfa,0x43,0xfd,0xea,0x0,0x26,0x3, +0xf2,0x1,0x8c,0xff,0x58,0x0,0x1f,0x4,0x32,0x6,0xee,0x5, +0x1a,0x3,0xf7,0xfb,0x4d,0xf4,0xc7,0xef,0xc4,0xed,0x95,0xee, +0x5,0xf2,0x42,0xf5,0xc,0xf6,0x77,0xf4,0x2b,0xf2,0xcd,0xf1, +0xe2,0xf4,0x7d,0xf9,0xe3,0xfc,0xbf,0xfe,0x2,0xff,0x23,0xfc, +0x19,0xf8,0xb4,0xf8,0x50,0xfd,0xbb,0x0,0x3,0x3,0xc4,0x3, +0x23,0x0,0x98,0xfa,0x76,0xf7,0x2f,0xf7,0xd9,0xf8,0xed,0xfb, +0x89,0xfe,0x46,0xfe,0xd6,0xfb,0xd1,0xf9,0xa1,0xf9,0xe2,0xfb, +0x44,0x0,0x58,0x5,0xa2,0x8,0x97,0x7,0xbc,0x2,0x71,0xfd, +0x91,0xfa,0x2a,0xfa,0x54,0xfa,0x36,0xf9,0xed,0xf5,0x64,0xf1, +0x96,0xec,0x68,0xe8,0x4e,0xe8,0x69,0xed,0x40,0xf4,0x62,0xfa, +0x8a,0xfe,0x3c,0xff,0x21,0xfd,0x77,0xfb,0x16,0xfc,0x4b,0xfd, +0xc3,0xfd,0xb8,0xfc,0x9d,0xf8,0x7,0xf3,0x36,0xef,0x68,0xee, +0xce,0xf0,0x17,0xf5,0xdf,0xf9,0x1a,0xff,0xb,0x3,0x55,0x4, +0x46,0x5,0xdd,0x7,0xca,0xb,0x25,0x10,0xd8,0x12,0xab,0x12, +0x3f,0x10,0xa5,0xb,0x59,0x7,0xdb,0x6,0x70,0x8,0x4e,0x9, +0xa9,0x8,0xc1,0x5,0x10,0x2,0x90,0xff,0x67,0xfe,0xc9,0xfe, +0x67,0x0,0xc5,0x2,0xa4,0x5,0x34,0x7,0xbe,0x5,0xb8,0x2, +0xf4,0x1,0x46,0x5,0x35,0x9,0x8e,0x9,0xd6,0x7,0xfc,0x5, +0x3,0x2,0x6f,0xfd,0xe9,0xfb,0x3a,0xfc,0x5f,0xfc,0x65,0xfd, +0x56,0x0,0x4f,0x2,0x27,0x1,0x78,0x2,0x7e,0x9,0x3a,0x11, +0x5c,0x17,0x84,0x1c,0x7d,0x1f,0xe9,0x1e,0x23,0x1b,0x2,0x18, +0x53,0x16,0x68,0x12,0xff,0xd,0x18,0xc,0x3,0xa,0x54,0x6, +0x8c,0x3,0x8d,0x4,0xc6,0x9,0x34,0x10,0x41,0x16,0x74,0x1c, +0xe6,0x1f,0x7c,0x1e,0xbc,0x1b,0x79,0x1a,0x6e,0x19,0x91,0x16, +0x94,0x12,0x6e,0xe,0x3f,0x7,0x4d,0xfe,0x6f,0xf9,0xa2,0xf7, +0xaa,0xf6,0x5b,0xf8,0xc9,0xfc,0xda,0x1,0x63,0x3,0xee,0x1, +0x76,0x3,0x6d,0x6,0x75,0x7,0x86,0x8,0xf1,0x7,0x2d,0x3, +0x88,0xfc,0x91,0xf6,0x8b,0xf1,0xd8,0xed,0xe6,0xed,0x19,0xf1, +0xef,0xf2,0xc6,0xf2,0xcb,0xf2,0x38,0xf3,0xa5,0xf4,0xee,0xf7, +0xcd,0xfb,0x4c,0xff,0xbc,0x1,0xbc,0x0,0x9c,0xfd,0x82,0xfc, +0xea,0xfc,0x98,0xfd,0x88,0xff,0x53,0x1,0x98,0x0,0x58,0xfd, +0xaa,0xf9,0x47,0xf7,0x1a,0xf7,0xc,0xfa,0x47,0xfe,0x97,0x0, +0x2a,0x0,0x34,0xfe,0x44,0xfd,0x28,0xfe,0xdc,0xff,0xd9,0x2, +0x89,0x6,0x54,0x8,0xcb,0x6,0xd7,0x2,0xd4,0xfe,0x1f,0xfc, +0xd5,0xfa,0x40,0xfa,0x3,0xf9,0x51,0xf6,0xef,0xf1,0x9a,0xed, +0xe,0xec,0xa0,0xed,0x80,0xf1,0xac,0xf6,0xe0,0xfb,0x9a,0xff, +0x41,0x0,0x13,0xff,0x13,0xfe,0x91,0xfd,0x1b,0xfe,0x90,0xfe, +0xc5,0xfc,0x96,0xf8,0x79,0xf3,0x95,0xf0,0x10,0xf1,0x44,0xf3, +0x52,0xf7,0xce,0xfc,0x5c,0x1,0x37,0x4,0x7e,0x6,0xaf,0x9, +0xce,0xd,0x94,0x11,0xae,0x14,0x7b,0x16,0xbc,0x15,0xd7,0x12, +0xd8,0xe,0xd1,0xa,0x2,0x9,0xbc,0x9,0x49,0xa,0x2,0x9, +0xe2,0x5,0x60,0x2,0x9,0x1,0x72,0x1,0x27,0x2,0x6b,0x4, +0x45,0x8,0xf9,0xa,0xa3,0xa,0x67,0x8,0x8,0x7,0x43,0x7, +0x11,0x8,0x11,0x9,0xb3,0x9,0x40,0x8,0x5f,0x4,0x7,0x1, +0x8f,0xff,0xcf,0xfd,0xfd,0xfc,0x9f,0xff,0xf5,0x2,0x87,0x4, +0x77,0x5,0xb7,0x6,0x68,0x9,0x4f,0xe,0x7d,0x14,0xba,0x1a, +0xdd,0x1e,0x83,0x1f,0xc5,0x1e,0xd6,0x1d,0x2e,0x1b,0x5,0x17, +0x70,0x13,0x24,0x11,0xe8,0xe,0xb4,0xb,0xc0,0x8,0xf3,0x7, +0xd4,0x9,0x6b,0xe,0xef,0x14,0xf9,0x1a,0xbf,0x1e,0x44,0x20, +0x1b,0x20,0xd7,0x1e,0xe8,0x1c,0xb3,0x1a,0x15,0x18,0xfa,0x13, +0x2f,0xe,0xb9,0x7,0x7b,0x1,0x5c,0xfc,0xf5,0xf8,0x3b,0xf8, +0xd5,0xfa,0x76,0xfe,0x24,0x1,0x45,0x3,0x66,0x4,0x1f,0x5, +0x57,0x7,0xe8,0x9,0x32,0xa,0xa2,0x7,0x20,0x3,0x98,0xfd, +0x94,0xf7,0xd6,0xf1,0xea,0xed,0xd7,0xec,0xd9,0xed,0xef,0xef, +0x22,0xf2,0xef,0xf2,0x75,0xf3,0x5,0xf6,0xd4,0xf9,0xb8,0xfd, +0xf1,0x0,0xee,0x1,0xb7,0x1,0xd3,0x1,0x87,0x0,0x2,0xfe, +0xa5,0xfd,0xf4,0xfe,0xab,0xfe,0x1b,0xfd,0x7a,0xfb,0x1b,0xf9, +0xf7,0xf6,0x56,0xf7,0x7d,0xfa,0x32,0xfe,0x71,0x0,0x89,0x1, +0xdc,0x1,0x6e,0x1,0x96,0x1,0xa3,0x2,0xa8,0x3,0x6,0x5, +0x59,0x6,0x71,0x5,0x13,0x2,0xe,0xfe,0xa0,0xfa,0xdf,0xf8, +0x66,0xf8,0x0,0xf7,0xbc,0xf4,0xbe,0xf2,0xb9,0xf0,0x6e,0xef, +0x1a,0xf0,0xf4,0xf2,0xca,0xf7,0xd9,0xfc,0x25,0x0,0x7e,0x1, +0xd4,0x0,0x79,0xfe,0x77,0xfc,0xe5,0xfb,0x5f,0xfb,0xf1,0xf9, +0xbb,0xf7,0xb9,0xf4,0x1d,0xf2,0xbb,0xf1,0xe1,0xf3,0xb2,0xf7, +0x13,0xfc,0x81,0x0,0xe9,0x4,0xb1,0x8,0xb7,0xb,0xa1,0xe, +0x52,0x11,0x5a,0x13,0xbe,0x14,0x2c,0x15,0xcf,0x13,0x9,0x10, +0x45,0xb,0xab,0x8,0x74,0x8,0xf1,0x7,0xb5,0x6,0xec,0x5, +0x30,0x5,0xfb,0x3,0x77,0x3,0x89,0x4,0x51,0x6,0x93,0x8, +0x7,0xb,0x7f,0xb,0xc8,0x9,0xbe,0x7,0x23,0x6,0x51,0x5, +0xf,0x5,0xfc,0x4,0xa5,0x4,0x96,0x2,0x4b,0xff,0x8e,0xfc, +0x99,0xfa,0x54,0xfa,0xc2,0xfc,0x8a,0x0,0xb2,0x3,0x9d,0x5, +0xc2,0x6,0x4d,0x8,0x94,0xb,0x21,0x10,0x97,0x14,0xa5,0x18, +0x40,0x1b,0x4e,0x1b,0x9e,0x19,0xc9,0x16,0xed,0x12,0x88,0xf, +0x0,0xe,0x97,0xd,0xf6,0xc,0x9c,0xb,0xf1,0x9,0xbd,0x9, +0xc,0xc,0xf4,0x10,0x45,0x18,0x15,0x1e,0x6a,0x1f,0xa2,0x1e, +0xc1,0x1c,0x97,0x19,0x77,0x16,0xa3,0x13,0xca,0x10,0xea,0xc, +0x39,0x7,0xda,0x0,0x13,0xfb,0x79,0xf7,0x5d,0xf7,0x32,0xfa, +0xf6,0xfd,0xb4,0x0,0x7f,0x2,0x35,0x3,0x94,0x2,0xdf,0x2, +0x7e,0x4,0x6e,0x5,0xf7,0x4,0x24,0x2,0xf8,0xfb,0xc0,0xf3, +0x9f,0xec,0xc9,0xe8,0x5c,0xe8,0xa1,0xea,0xcd,0xed,0xc2,0xef, +0xe8,0xef,0xb8,0xef,0x7f,0xf1,0x36,0xf5,0x2d,0xfa,0x70,0xff, +0x96,0x1,0x9b,0x0,0xf2,0xfe,0xc9,0xfb,0x47,0xf8,0x6f,0xf7, +0xd3,0xf8,0xae,0xfa,0x9c,0xfb,0x20,0xfa,0x57,0xf6,0x8b,0xf3, +0xb1,0xf4,0xb8,0xf8,0x42,0xfd,0xd3,0x0,0xc0,0x2,0xc5,0x2, +0x14,0x1,0xcc,0xff,0x20,0x0,0x27,0x1,0xcd,0x2,0x11,0x4, +0xe8,0x2,0x22,0xff,0x6d,0xfa,0x95,0xf6,0x84,0xf4,0x38,0xf5, +0xb,0xf7,0xb,0xf6,0xd4,0xf2,0x17,0xf0,0x94,0xee,0x13,0xef, +0x6d,0xf1,0x38,0xf5,0xa6,0xf9,0xb0,0xfc,0x94,0xfd,0xcb,0xfb, +0x24,0xf8,0x11,0xf6,0x3d,0xf6,0x80,0xf6,0xdd,0xf5,0x15,0xf4, +0x9,0xf1,0xe4,0xed,0x11,0xed,0xae,0xef,0x87,0xf4,0xae,0xf9, +0x17,0xfe,0xf3,0x1,0x2a,0x5,0x86,0x7,0x6f,0x9,0x2f,0xb, +0x65,0xd,0xa6,0xf,0x37,0x10,0x70,0xe,0xa6,0xa,0x81,0x6, +0x5d,0x4,0x8c,0x4,0x63,0x5,0x4d,0x5,0xb6,0x4,0x4e,0x4, +0xa6,0x3,0xaa,0x3,0x4,0x5,0xa4,0x6,0xca,0x7,0x64,0x8, +0x9c,0x8,0x2e,0x7,0xa5,0x3,0x13,0x1,0x20,0x0,0xe9,0xfe, +0x24,0xfe,0x0,0xfe,0xc,0xfd,0x80,0xfb,0xc8,0xfa,0x7d,0xfb, +0x7b,0xfc,0x38,0xfd,0xfa,0xfe,0x8e,0x1,0x78,0x3,0x83,0x4, +0x88,0x5,0x6b,0x7,0x70,0x9,0x14,0xb,0x1d,0xe,0xc,0x11, +0x12,0x11,0x37,0x11,0xe4,0x12,0x60,0x12,0x88,0xf,0x69,0xd, +0xd7,0xc,0x2d,0xc,0x58,0xb,0xf1,0xc,0x55,0xf,0x11,0xf, +0xc5,0xe,0x61,0x11,0x21,0x15,0x90,0x17,0x25,0x19,0xd2,0x1a, +0xaa,0x19,0x27,0x15,0xad,0x11,0xb,0xf,0xdc,0xa,0x4f,0x7, +0xef,0x5,0x83,0x4,0xe0,0x0,0x6b,0xfc,0x41,0xfa,0x88,0xfa, +0x10,0xfc,0x5a,0xff,0x6c,0x3,0x13,0x5,0x90,0x3,0x1d,0x1, +0xf6,0xfe,0x64,0xfc,0xaf,0xf9,0x88,0xf8,0x4c,0xf7,0xd8,0xf2, +0x19,0xed,0xec,0xe8,0x7e,0xe6,0xe7,0xe6,0x53,0xea,0x2,0xef, +0xe,0xf3,0x58,0xf4,0x93,0xf3,0x9e,0xf3,0xd0,0xf4,0xe,0xf6, +0xf2,0xf7,0xb2,0xfa,0x14,0xfb,0xc6,0xf7,0x2,0xf4,0xeb,0xf0, +0x54,0xef,0xc8,0xf1,0xf9,0xf5,0xff,0xf7,0x3b,0xf8,0xb7,0xf7, +0xbb,0xf6,0xd4,0xf6,0xb6,0xf9,0x68,0xfe,0x4a,0x2,0xb9,0x3, +0x4,0x2,0x23,0xfe,0x8e,0xfa,0xb5,0xf8,0xd7,0xf8,0x9d,0xfa, +0xc5,0xfc,0x5f,0xfd,0xd,0xfb,0xbf,0xf6,0x42,0xf3,0xb7,0xf2, +0x91,0xf4,0xcc,0xf6,0x44,0xf8,0xa3,0xf7,0x50,0xf4,0xd5,0xf0, +0x79,0xef,0x5d,0xf0,0x77,0xf3,0x35,0xf7,0xd1,0xf8,0xf4,0xf7, +0xb2,0xf5,0x5f,0xf2,0xb8,0xef,0x1d,0xf0,0x97,0xf2,0x69,0xf4, +0xa9,0xf4,0x97,0xf3,0xac,0xf1,0xcd,0xf0,0xf5,0xf2,0x2a,0xf7, +0xb4,0xfb,0x29,0x0,0x23,0x3,0xf0,0x3,0xa,0x4,0x67,0x4, +0xab,0x5,0x1a,0x8,0xbd,0xa,0x2c,0xc,0x75,0xa,0x3c,0x6, +0x83,0x3,0x7a,0x3,0x34,0x4,0x2c,0x5,0x74,0x6,0xe3,0x6, +0x9e,0x5,0xd9,0x3,0xf4,0x2,0x62,0x2,0x29,0x2,0x3d,0x3, +0x43,0x4,0x3d,0x3,0x91,0x0,0xa0,0xfd,0x56,0xfb,0xe5,0xf9, +0x6e,0xf9,0x8c,0xfa,0x9f,0xfb,0xa9,0xfa,0xdd,0xf9,0xc8,0xfa, +0x80,0xfb,0xd3,0xfb,0x49,0xfd,0xd,0x0,0x6c,0x2,0x3,0x3, +0x87,0x3,0x86,0x4,0x36,0x4,0x24,0x4,0x53,0x6,0x78,0x9, +0xa0,0xb,0x59,0xc,0xc3,0xd,0xb8,0xf,0x39,0xf,0xe4,0xd, +0xa4,0xd,0xe4,0xc,0x7b,0xc,0xc5,0xd,0xb4,0xf,0xf6,0xf, +0x8f,0xd,0x6f,0xc,0xa7,0xe,0x1f,0x11,0xe4,0x12,0x3,0x14, +0x67,0x13,0xb,0x11,0xf9,0xd,0xf1,0xb,0xfa,0x9,0x18,0x7, +0xbb,0x6,0xfe,0x7,0xe9,0x5,0x43,0x1,0x5b,0xfd,0x45,0xfb, +0xee,0xfa,0x19,0xfc,0xb5,0xfe,0xb3,0x0,0x61,0xff,0xd1,0xfb, +0x9d,0xf8,0x9e,0xf6,0x28,0xf6,0x3a,0xf7,0xfb,0xf7,0x46,0xf6, +0x5d,0xf2,0xef,0xed,0xfe,0xe9,0x6d,0xe8,0x56,0xeb,0x91,0xf0, +0x35,0xf4,0x51,0xf5,0xbf,0xf3,0x7,0xf1,0x45,0xf0,0x23,0xf1, +0xa,0xf3,0x86,0xf6,0xab,0xf8,0x59,0xf7,0x50,0xf4,0x4d,0xf1, +0xa0,0xef,0xe8,0xf0,0x97,0xf5,0x17,0xfb,0xab,0xfd,0x6c,0xfc, +0xc3,0xf8,0xcd,0xf5,0xf8,0xf6,0x59,0xfb,0x88,0xff,0xa7,0x1, +0x68,0x0,0x64,0xfc,0xb4,0xf8,0x9b,0xf6,0xf1,0xf5,0xf5,0xf7, +0xeb,0xfb,0x7b,0xfe,0xe,0xfe,0x93,0xfa,0x7a,0xf5,0xc2,0xf2, +0x37,0xf4,0x7d,0xf7,0xc4,0xf9,0x43,0xf9,0x78,0xf5,0x4f,0xf0, +0xe9,0xec,0x68,0xec,0x31,0xee,0xa3,0xf1,0x8d,0xf4,0xcd,0xf4, +0x14,0xf3,0x3c,0xf0,0x7f,0xed,0xa4,0xed,0xe3,0xf0,0xd5,0xf4, +0x56,0xf7,0x73,0xf6,0x16,0xf3,0x1d,0xf1,0xee,0xf1,0xae,0xf4, +0xe3,0xf8,0xf2,0xfc,0xbf,0xfe,0x54,0xfe,0x89,0xfd,0xb2,0xfd, +0x42,0xff,0x86,0x2,0x5e,0x6,0x15,0x9,0x22,0xa,0xcb,0x8, +0xe5,0x5,0x5e,0x4,0x41,0x5,0x1a,0x8,0xf2,0xa,0x45,0xa, +0x50,0x6,0x52,0x2,0x72,0xff,0x80,0xfd,0xf4,0xfc,0xf4,0xfd, +0x65,0xff,0x2a,0x0,0x31,0xff,0x4,0xfc,0xa1,0xf9,0x89,0xfa, +0xb4,0xfc,0x51,0xfe,0x35,0xff,0x4a,0xfe,0x4f,0xfb,0x80,0xf8, +0xe8,0xf7,0xbb,0xf8,0xb4,0xf9,0xd9,0xfa,0xe5,0xfb,0xcd,0xfc, +0x5b,0xfd,0x1f,0xfd,0xb7,0xfd,0x7b,0x0,0x82,0x4,0xaf,0x8, +0xba,0xb,0xbb,0xc,0xc8,0xc,0xc5,0xd,0xbe,0xf,0x97,0x10, +0x79,0xf,0x9b,0xd,0xac,0xb,0x1d,0xa,0x94,0x9,0xf9,0x9, +0xd9,0xa,0xc5,0xb,0x62,0xd,0x5e,0x10,0xba,0x12,0x2b,0x13, +0x11,0x13,0xbf,0x12,0x37,0x12,0xa8,0x11,0x67,0xf,0x20,0xb, +0x2d,0x7,0x5c,0x5,0xec,0x4,0x6c,0x3,0x76,0x0,0xa1,0xfd, +0xb0,0xfb,0x1,0xfb,0x28,0xfb,0x9e,0xfb,0x8e,0xfc,0xb1,0xfc, +0x84,0xfb,0xf8,0xf9,0xba,0xf7,0x62,0xf5,0x62,0xf4,0xf1,0xf3, +0xa7,0xf2,0x92,0xf0,0x62,0xee,0x6,0xec,0xa,0xea,0x76,0xea, +0x46,0xed,0xf8,0xef,0xee,0xf0,0x62,0xf0,0xaf,0xef,0xc6,0xef, +0x2a,0xf0,0x7c,0xf0,0xaf,0xf1,0x25,0xf4,0x10,0xf6,0xdb,0xf5, +0x29,0xf4,0xc7,0xf2,0x80,0xf3,0x55,0xf6,0xfb,0xf8,0x9f,0xf9, +0x74,0xf8,0x9c,0xf6,0x35,0xf5,0xa5,0xf5,0x73,0xf8,0x6e,0xfb, +0x6b,0xfc,0x2d,0xfc,0xb7,0xfb,0x8d,0xfa,0xaf,0xf8,0x9d,0xf7, +0xbe,0xf8,0xa3,0xfb,0x10,0xfe,0xc7,0xfd,0x90,0xfa,0x84,0xf6, +0x50,0xf4,0x8c,0xf4,0x79,0xf5,0xd0,0xf5,0x20,0xf5,0x1f,0xf3, +0x9d,0xf0,0x7c,0xee,0xb6,0xed,0x8e,0xef,0xc3,0xf2,0x1c,0xf5, +0x2e,0xf6,0xb2,0xf5,0x48,0xf3,0x3d,0xf0,0x2b,0xef,0xbd,0xf0, +0xe5,0xf2,0x29,0xf4,0xa7,0xf3,0x9a,0xf1,0xde,0xf0,0x7f,0xf2, +0xed,0xf4,0xbb,0xf7,0x80,0xfa,0x87,0xfc,0xc7,0xfd,0x29,0xfe, +0x42,0xfe,0x14,0xff,0x33,0x1,0x85,0x4,0x9a,0x7,0xcb,0x8, +0xa6,0x7,0x87,0x5,0xb6,0x4,0xad,0x5,0xeb,0x7,0x7b,0xa, +0x4c,0xa,0xbb,0x6,0x31,0x3,0xb0,0x0,0x3c,0xfe,0xb6,0xfc, +0x90,0xfc,0xef,0xfc,0xce,0xfd,0x9d,0xfe,0x1a,0xfd,0x54,0xfa, +0xfa,0xfa,0x6b,0xfe,0x25,0x0,0x6a,0x0,0x8e,0x0,0x2d,0xff, +0x4e,0xfc,0x86,0xf9,0x2a,0xf8,0x5e,0xf8,0xd9,0xf8,0x5d,0xf9, +0x4d,0xfa,0x2d,0xfb,0xb,0xfc,0x7f,0xfd,0xbb,0xff,0xf0,0x2, +0x5a,0x7,0x9f,0xb,0xfd,0xc,0x42,0xc,0x2b,0xd,0x67,0xf, +0x30,0x10,0xea,0xe,0x4d,0xc,0xcb,0x9,0x20,0x8,0xd5,0x6, +0xa8,0x6,0xfa,0x7,0xb5,0x9,0xc5,0xb,0x9f,0xe,0xbc,0x11, +0xec,0x13,0x8e,0x14,0x41,0x14,0x9d,0x13,0xe8,0x12,0x95,0x11, +0xf7,0xd,0xd4,0x8,0x2c,0x5,0xc7,0x3,0x57,0x3,0x6,0x2, +0x6a,0xff,0xb1,0xfd,0x6a,0xfd,0xcf,0xfc,0x37,0xfc,0x2e,0xfd, +0xf,0xff,0xe9,0xff,0x3f,0xff,0x59,0xfd,0xf2,0xf9,0xc2,0xf6, +0x9e,0xf5,0xb7,0xf4,0xe9,0xf2,0x9,0xf1,0xa8,0xee,0x18,0xec, +0xd6,0xea,0x42,0xeb,0x2d,0xed,0x52,0xef,0x13,0xf0,0x51,0xf0, +0x90,0xf1,0x96,0xf2,0xc8,0xf1,0xf8,0xf0,0x7d,0xf2,0x63,0xf5, +0xa4,0xf7,0xc0,0xf7,0xa1,0xf5,0x4a,0xf4,0x8f,0xf5,0x60,0xf7, +0x41,0xf8,0x44,0xf8,0x74,0xf7,0x67,0xf6,0xea,0xf5,0xe0,0xf6, +0x67,0xf9,0xd8,0xfb,0x4a,0xfd,0x5b,0xfe,0x3,0xff,0x96,0xfe, +0x1b,0xfd,0xc8,0xfb,0x4,0xfc,0xd4,0xfd,0x54,0xff,0xc1,0xfd, +0x3d,0xf9,0x5e,0xf5,0xba,0xf3,0xe,0xf3,0xd9,0xf2,0x28,0xf3, +0x9c,0xf3,0x67,0xf3,0x4,0xf2,0xcc,0xf0,0x36,0xf1,0xee,0xf2, +0xfc,0xf4,0x92,0xf6,0x47,0xf7,0x81,0xf6,0xa2,0xf3,0xfe,0xef, +0xa0,0xed,0x9a,0xed,0xae,0xef,0xb,0xf1,0x34,0xf0,0xfb,0xef, +0x6,0xf2,0xd8,0xf4,0x26,0xf7,0xf8,0xf8,0x3,0xfb,0x4e,0xfd, +0x0,0xff,0x8d,0xff,0x6e,0xff,0x3c,0x0,0x51,0x2,0x7a,0x4, +0x1e,0x6,0x7b,0x6,0xbc,0x5,0x85,0x5,0xf,0x6,0x99,0x7, +0x90,0xa,0xcc,0xc,0x43,0xc,0x54,0x9,0xe0,0x5,0x83,0x3, +0x99,0x1,0xa5,0xff,0x9f,0xfe,0x46,0xfe,0x9f,0xfd,0x75,0xfc, +0x7b,0xfb,0x83,0xfb,0xd1,0xfc,0x90,0xff,0x17,0x2,0x1c,0x2, +0x9e,0x0,0x84,0xfe,0x1c,0xfb,0xc5,0xf7,0x88,0xf6,0xb3,0xf7, +0x37,0xf9,0xfe,0xf8,0xf8,0xf8,0xa2,0xfa,0xce,0xfb,0x9e,0xfc, +0x89,0xff,0x4e,0x4,0xc5,0x8,0xfa,0xb,0x91,0xd,0x92,0xc, +0x13,0xb,0xe1,0xc,0xdf,0xf,0xdc,0xf,0xe4,0xd,0x3b,0xc, +0xc5,0xa,0x27,0x9,0x95,0x8,0x61,0xa,0x25,0xd,0x7c,0xf, +0x88,0x12,0xbb,0x15,0xdd,0x16,0x5,0x16,0xc7,0x14,0xfd,0x13, +0x79,0x13,0x98,0x12,0x6d,0x10,0x19,0xc,0x20,0x7,0x64,0x4, +0xfd,0x3,0x23,0x4,0xde,0x3,0x22,0x3,0x8e,0x2,0x55,0x1, +0x3a,0xfe,0xea,0xfb,0xd2,0xfc,0x40,0xfe,0x1f,0xfe,0x8a,0xfd, +0xb,0xfc,0x7d,0xf8,0xb2,0xf4,0xa4,0xf2,0xac,0xf1,0x84,0xf1, +0x40,0xf2,0xa7,0xf1,0x33,0xef,0x9d,0xed,0xaf,0xed,0x51,0xee, +0xdc,0xee,0x85,0xef,0xe4,0xf1,0xc8,0xf4,0x14,0xf4,0xc0,0xf0, +0x52,0xef,0xb6,0xf0,0xc6,0xf3,0x3a,0xf7,0xc5,0xf8,0x38,0xf8, +0x2f,0xf8,0xf2,0xf8,0x87,0xf8,0x54,0xf7,0xe7,0xf6,0x6d,0xf7, +0xc0,0xf8,0x17,0xfa,0x66,0xfa,0x65,0xfa,0x4,0xfb,0x1c,0xfc, +0xf,0xfe,0x73,0x0,0xd2,0x0,0xe8,0xfe,0x6b,0xfd,0x3d,0xfd, +0x95,0xfd,0xc1,0xfd,0x87,0xfc,0x4d,0xfa,0x8a,0xf8,0xea,0xf6, +0x13,0xf5,0x95,0xf3,0xee,0xf2,0x42,0xf3,0xeb,0xf3,0x79,0xf4, +0xb2,0xf4,0x66,0xf4,0x51,0xf4,0x87,0xf4,0x17,0xf5,0x61,0xf6, +0x7d,0xf6,0x6d,0xf4,0xb7,0xf1,0x44,0xef,0x41,0xee,0xcd,0xee, +0xc,0xef,0xb0,0xef,0x8d,0xf2,0x49,0xf6,0x51,0xf8,0x95,0xf8, +0x42,0xf9,0x12,0xfb,0x31,0xfd,0x64,0xff,0xfc,0x0,0xbc,0x1, +0x6b,0x2,0xf7,0x2,0x68,0x3,0xa,0x4,0xaf,0x4,0xaf,0x5, +0x2,0x7,0x69,0x8,0x7d,0xa,0x6f,0xc,0x92,0xc,0xa8,0xb, +0xb0,0xa,0xc8,0x8,0x65,0x6,0x4f,0x4,0x5c,0x1,0x36,0xfe, +0x2b,0xfc,0x0,0xfa,0x54,0xf8,0xc,0xf9,0xa7,0xfa,0x53,0xfb, +0x43,0xfc,0x8c,0xfe,0x17,0x0,0x5d,0xff,0xbd,0xfd,0x1d,0xfb, +0x63,0xf7,0x1f,0xf5,0xe7,0xf4,0x5c,0xf5,0x66,0xf5,0xdb,0xf4, +0xcc,0xf5,0xea,0xf7,0x3e,0xf9,0x9a,0xfb,0x5b,0xff,0x62,0x2, +0x21,0x5,0x30,0x8,0x6f,0xa,0x46,0xa,0xd2,0x8,0xc2,0x9, +0xf9,0xb,0x61,0xc,0x62,0xc,0xab,0xc,0xe,0xc,0x9d,0xa, +0xa6,0x9,0x3a,0xb,0x55,0xe,0xd1,0x10,0xe1,0x13,0x9d,0x16, +0xaa,0x16,0x76,0x15,0x1c,0x14,0x4f,0x12,0xdb,0x10,0x92,0x10, +0xbd,0x10,0xbd,0xe,0x83,0xa,0xbe,0x7,0x31,0x7,0xe3,0x6, +0xff,0x5,0xaf,0x4,0x22,0x4,0x53,0x3,0x8,0x0,0x8f,0xfc, +0x29,0xfb,0x53,0xfb,0x3b,0xfd,0x90,0xfe,0x8c,0xfc,0x1f,0xf9, +0x5a,0xf6,0x5d,0xf4,0x66,0xf3,0xab,0xf3,0x4a,0xf5,0x7e,0xf6, +0xee,0xf4,0x60,0xf1,0x50,0xee,0x7f,0xed,0x40,0xee,0x73,0xef, +0x40,0xf2,0x8,0xf5,0x70,0xf4,0x4,0xf2,0x56,0xf0,0xba,0xf0, +0x4b,0xf4,0x10,0xf9,0xc6,0xfc,0xba,0xfe,0xf2,0xfd,0x38,0xfb, +0x38,0xf8,0xf6,0xf5,0xf6,0xf5,0x5b,0xf8,0x2d,0xfb,0x12,0xfc, +0xa0,0xfa,0x1,0xf9,0x9c,0xf8,0x59,0xfa,0x7,0xff,0xb4,0x3, +0xf5,0x4,0x3d,0x3,0x59,0x0,0x36,0xfe,0xd3,0xfd,0xe8,0xfd, +0x3d,0xfd,0x57,0xfc,0xd5,0xfb,0x87,0xfa,0x10,0xf7,0xdb,0xf2, +0xdb,0xf0,0x7d,0xf2,0x25,0xf6,0x51,0xf8,0x92,0xf7,0x65,0xf5, +0x65,0xf3,0xd1,0xf2,0x7f,0xf4,0x43,0xf7,0xdc,0xf8,0x1f,0xf8, +0xe3,0xf4,0x92,0xf0,0x27,0xee,0x5d,0xee,0xe9,0xef,0xd7,0xf2, +0x68,0xf6,0x88,0xf8,0xdd,0xf8,0x6,0xf8,0xe2,0xf6,0x8d,0xf7, +0x64,0xfb,0x83,0x0,0x9c,0x3,0xf0,0x3,0xff,0x2,0x1d,0x2, +0x49,0x2,0xb9,0x3,0x40,0x6,0x6f,0x9,0x8f,0xb,0x8,0xc, +0xc7,0xb,0xcb,0xa,0xd4,0x9,0x5f,0xa,0x23,0xc,0x4f,0xd, +0xf2,0xb,0x36,0x8,0xfc,0x3,0x48,0x0,0x6,0xfe,0x82,0xfd, +0x87,0xfd,0xe0,0xfd,0xdb,0xfe,0x5a,0xff,0x81,0xfe,0xb9,0xfd, +0x7d,0xfe,0x43,0xff,0xe1,0xfe,0x6f,0xfe,0xdf,0xfc,0x31,0xf9, +0x11,0xf6,0x20,0xf5,0x68,0xf5,0x7f,0xf6,0x46,0xf8,0xf,0xfa, +0x7a,0xfb,0xe2,0xfc,0x7e,0xfe,0x62,0x0,0x52,0x3,0x6d,0x7, +0x58,0xb,0xcd,0xd,0x47,0xe,0x64,0xd,0x95,0xc,0x82,0xc, +0x3d,0xd,0xbc,0xe,0xf2,0xf,0xee,0xf,0x1b,0xf,0x3b,0xe, +0x4e,0xe,0x49,0x10,0x68,0x13,0x5b,0x16,0x5,0x19,0x5,0x1b, +0x35,0x1b,0xd4,0x18,0xea,0x14,0x6e,0x12,0xd6,0x12,0xd2,0x13, +0xa4,0x12,0x76,0xf,0x18,0xc,0x33,0x9,0xc9,0x6,0xea,0x4, +0x38,0x3,0xe5,0x2,0xa1,0x4,0xf7,0x4,0x86,0x2,0x4f,0x0, +0x70,0xff,0xd2,0xff,0x47,0x1,0x75,0x1,0x77,0xff,0xe7,0xfc, +0xde,0xf9,0xe7,0xf5,0xd2,0xf2,0x67,0xf2,0x4a,0xf3,0x55,0xf3, +0x8d,0xf2,0x94,0xf1,0x31,0xf1,0xe2,0xf1,0xf2,0xf2,0xc6,0xf4, +0xf3,0xf7,0x80,0xfa,0x6,0xfb,0x41,0xfa,0x35,0xf9,0xb,0xf9, +0x3a,0xfa,0x13,0xfc,0x94,0xfd,0x66,0xfd,0x81,0xfb,0xb0,0xf9, +0xf5,0xf8,0x50,0xf9,0xf9,0xfa,0xc3,0xfd,0xf8,0x0,0xa8,0x3, +0xc1,0x4,0xc,0x4,0x16,0x3,0xcd,0x3,0xda,0x5,0x4e,0x7, +0x33,0x7,0x5b,0x5,0xa7,0x2,0xa9,0x0,0xbd,0xfe,0x62,0xfc, +0x8b,0xfb,0x31,0xfc,0x23,0xfc,0xe1,0xfa,0x11,0xf9,0xc3,0xf7, +0xe4,0xf7,0xf1,0xf8,0xf7,0xf9,0xac,0xfa,0x32,0xfb,0x13,0xfb, +0x91,0xf9,0x4f,0xf7,0x63,0xf5,0x50,0xf4,0x5,0xf4,0xf5,0xf2, +0xdc,0xf0,0xe3,0xef,0x4b,0xf0,0x19,0xf1,0xc3,0xf2,0x40,0xf5, +0xee,0xf7,0x77,0xfa,0x2e,0xfc,0x1d,0xfd,0x4b,0xfe,0x2f,0x0, +0x39,0x2,0xd6,0x3,0xfe,0x4,0x74,0x5,0x22,0x5,0xf2,0x4, +0x69,0x5,0x65,0x6,0x26,0x8,0x55,0xa,0x24,0xc,0xe5,0xd, +0xfe,0xf,0xb7,0x11,0xc4,0x12,0xe2,0x13,0x4f,0x15,0xc6,0x15, +0xc3,0x13,0xf4,0xf,0x36,0xc,0xa6,0x8,0xb6,0x4,0x2a,0x1, +0xd3,0xfe,0xc8,0xfd,0xd9,0xfd,0x5e,0xfe,0xa5,0xfe,0x39,0xff, +0x9b,0x0,0x7d,0x1,0x5,0x1,0x40,0x0,0xad,0xff,0xa5,0xfe, +0xe2,0xfc,0xfd,0xfa,0xdb,0xf9,0x2d,0xf9,0xeb,0xf7,0x72,0xf6, +0xe9,0xf5,0xe8,0xf6,0x79,0xf9,0xe5,0xfc,0x34,0x0,0x1e,0x3, +0xd8,0x5,0x1d,0x8,0xa0,0x9,0x31,0xb,0x53,0xd,0xb,0xf, +0xca,0xf,0xf4,0xf,0xf0,0xf,0x42,0x10,0xa7,0x10,0xad,0x10, +0x99,0x11,0x3e,0x14,0xf6,0x16,0x62,0x18,0xdf,0x18,0x3d,0x19, +0xfd,0x19,0xb2,0x1a,0x9d,0x1a,0x64,0x1a,0x1,0x1b,0xcd,0x1b, +0x44,0x1b,0xf8,0x18,0x4b,0x16,0x79,0x14,0xab,0x12,0xbc,0xf, +0x70,0xc,0x5a,0xa,0x64,0x9,0xa,0x8,0xe2,0x5,0xdb,0x3, +0xb7,0x2,0xb9,0x2,0x11,0x3,0x70,0x2,0x45,0x1,0xa4,0x0, +0xbc,0xff,0x70,0xfd,0xd8,0xfa,0x89,0xf9,0x2d,0xf9,0x98,0xf8, +0x20,0xf7,0x9,0xf5,0x6a,0xf3,0x4b,0xf2,0xcf,0xf0,0xb9,0xef, +0x6a,0xf0,0x9d,0xf2,0x2b,0xf5,0x22,0xf7,0x41,0xf8,0x66,0xf9, +0x74,0xfb,0xc8,0xfd,0xa,0xff,0x5,0xff,0x5e,0xfe,0x42,0xfd, +0xc6,0xfb,0x86,0xfa,0x37,0xfa,0x46,0xfb,0x96,0xfd,0xd3,0xff, +0xb6,0x0,0x7,0x1,0x12,0x2,0xdf,0x3,0x4d,0x6,0x0,0x9, +0xe5,0xa,0x31,0xb,0xeb,0x9,0x98,0x7,0xb2,0x4,0x15,0x2, +0xf1,0x0,0xe4,0x0,0x5e,0x0,0xb6,0xfe,0x2c,0xfc,0xf9,0xf9, +0x62,0xf9,0x28,0xfa,0xb5,0xfb,0xe3,0xfd,0xaa,0xff,0x8b,0xff, +0x46,0xfd,0xf4,0xf9,0x1c,0xf7,0xeb,0xf5,0xf9,0xf5,0x8e,0xf5, +0x29,0xf4,0x7b,0xf2,0xca,0xf0,0x6f,0xef,0x6,0xef,0x27,0xf0, +0xf5,0xf2,0x8,0xf6,0x97,0xf7,0x84,0xf7,0x6b,0xf7,0xc1,0xf8, +0xc6,0xfa,0x35,0xfc,0x98,0xfd,0x4f,0xff,0x7e,0x0,0xcb,0x0, +0xa9,0x0,0x36,0x1,0xcd,0x3,0xdf,0x7,0x1f,0xb,0xdc,0xc, +0x28,0xe,0x2c,0xf,0xc6,0xf,0x9c,0x10,0x21,0x12,0x48,0x14, +0x2d,0x16,0x33,0x16,0x11,0x14,0x62,0x11,0x56,0xf,0xa5,0xd, +0x61,0xc,0xdf,0xb,0x8,0xb,0x5,0x9,0xba,0x5,0x8,0x1, +0x50,0xfd,0x6,0xfd,0x2a,0xfe,0x85,0xfe,0x1e,0xff,0x3e,0x0, +0xc9,0xff,0x24,0xfd,0xf3,0xfa,0xbe,0xfa,0x31,0xfb,0xa5,0xfb, +0xeb,0xfb,0x11,0xfb,0x1f,0xf9,0xcd,0xf6,0x93,0xf4,0xa2,0xf3, +0x5d,0xf5,0x1d,0xf9,0xac,0xfc,0x2a,0xff,0x22,0x1,0x3c,0x3, +0xbe,0x5,0x4,0x8,0xe4,0xa,0x12,0x10,0x9e,0x14,0x85,0x14, +0xbc,0x11,0x29,0x10,0x3d,0x10,0xbb,0x10,0x4c,0x11,0x2d,0x12, +0xa2,0x13,0xcf,0x15,0x49,0x17,0x19,0x17,0xc,0x18,0xb,0x1c, +0x42,0x20,0x0,0x22,0xd4,0x21,0x11,0x21,0x6a,0x1f,0xd0,0x1b, +0x6d,0x17,0xb3,0x14,0xb8,0x13,0x2e,0x12,0x78,0xe,0xa9,0x9, +0x1d,0x6,0xcc,0x4,0xcc,0x4,0x28,0x5,0x62,0x6,0x6e,0x8, +0x8,0x9,0xcb,0x6,0x37,0x3,0xd1,0x0,0xa1,0x0,0xbc,0x0, +0x9e,0xfe,0xe6,0xfa,0x9d,0xf7,0xa7,0xf4,0x71,0xf1,0x6a,0xef, +0x6b,0xef,0x55,0xf0,0x66,0xf1,0xb,0xf2,0x15,0xf2,0xd4,0xf2, +0x27,0xf4,0xf4,0xf4,0x5b,0xf6,0xce,0xf8,0xbd,0xfa,0x65,0xfb, +0x9b,0xfa,0xe5,0xf8,0xb3,0xf7,0x9,0xf7,0x59,0xf6,0x92,0xf6, +0xd4,0xf7,0xae,0xf8,0xc,0xf9,0xd8,0xf9,0x4d,0xfb,0xc2,0xfd, +0xba,0x0,0xf,0x3,0x49,0x5,0x8a,0x7,0x4c,0x8,0x85,0x7, +0x6e,0x6,0x93,0x5,0xd3,0x4,0x4f,0x3,0x96,0x0,0x32,0xfe, +0x63,0xfd,0xae,0xfc,0x79,0xfa,0x41,0xf8,0x6,0xf8,0x63,0xf9, +0xcb,0xfa,0x6b,0xfb,0xf8,0xfb,0xf0,0xfc,0xf5,0xfc,0xd5,0xfb, +0xc7,0xfa,0x82,0xf9,0xbf,0xf7,0xb1,0xf5,0xb8,0xf2,0x95,0xef, +0xeb,0xed,0x34,0xed,0x96,0xec,0xe1,0xec,0x95,0xee,0xce,0xf0, +0x92,0xf2,0xa3,0xf3,0xd5,0xf4,0x77,0xf7,0xf4,0xfa,0x8,0xfd, +0x8b,0xfd,0x12,0xfe,0x8f,0xfe,0x4a,0xfe,0xd4,0xfd,0x33,0xfe, +0xcd,0xff,0xec,0x1,0x9f,0x3,0xe4,0x4,0x50,0x6,0x8d,0x8, +0x9c,0xb,0x19,0xf,0x41,0x13,0x5c,0x17,0x94,0x19,0x72,0x19, +0xc8,0x17,0x2d,0x16,0xca,0x15,0x92,0x15,0xe1,0x14,0x75,0x14, +0xc7,0x13,0x64,0x11,0xd4,0xc,0xfc,0x7,0x4d,0x5,0x3f,0x4, +0x7d,0x3,0x86,0x2,0xa9,0x0,0x18,0xff,0x5e,0xff,0xc3,0xff, +0xa7,0xfe,0x38,0xfe,0x20,0x0,0x7e,0x0,0x6b,0xfc,0xe2,0xf7, +0x2d,0xf5,0x35,0xf2,0x66,0xef,0xa,0xee,0xb4,0xed,0xfc,0xed, +0x42,0xee,0x3a,0xee,0x80,0xee,0x85,0xf0,0x7,0xf5,0x1a,0xfa, +0xdc,0xfd,0x3c,0x0,0xd8,0x1,0x21,0x3,0x18,0x3,0xce,0x2, +0x69,0x5,0x87,0x8,0xf2,0x7,0x6a,0x5,0xa,0x4,0x1e,0x4, +0xb1,0x5,0x2c,0x9,0x1a,0xe,0x90,0x14,0x63,0x1c,0x51,0x21, +0xc5,0x20,0xb6,0x1f,0x7d,0x21,0xe7,0x22,0x66,0x21,0x18,0x1e, +0x39,0x1b,0xfb,0x18,0x90,0x15,0xf6,0x10,0x6,0xe,0x60,0xf, +0x41,0x13,0xfe,0x14,0x9e,0x13,0x98,0x11,0x68,0x10,0x82,0xf, +0x7e,0xd,0x5f,0xb,0x8c,0xb,0xa1,0xc,0xa6,0xa,0x1f,0x4, +0x55,0xfc,0x1a,0xf8,0x32,0xf7,0xc5,0xf5,0x82,0xf3,0xec,0xf2, +0x29,0xf4,0xe7,0xf4,0xbc,0xf3,0x1,0xf2,0x62,0xf2,0xf7,0xf4, +0xbb,0xf6,0x3d,0xf6,0x95,0xf4,0x6b,0xf2,0x77,0xf0,0xae,0xef, +0xc2,0xef,0xbf,0xf0,0x70,0xf3,0x5b,0xf6,0xfe,0xf6,0xee,0xf5, +0xfb,0xf4,0x54,0xf4,0xab,0xf4,0x9a,0xf6,0xc7,0xf8,0x7d,0xfa, +0x18,0xfc,0x56,0xfd,0x32,0xfe,0x59,0xff,0x42,0x1,0xa3,0x3, +0xec,0x5,0x29,0x7,0x2f,0x6,0xea,0x3,0x54,0x2,0xa7,0x1, +0x5f,0x1,0x4,0x1,0xc3,0x0,0x26,0x1,0xb4,0x0,0x41,0xfe, +0x80,0xfb,0x9b,0xfa,0x63,0xfc,0x23,0xff,0x41,0x0,0x24,0x0, +0x50,0x0,0xd2,0xff,0x13,0xfd,0x21,0xf9,0x66,0xf6,0x1e,0xf5, +0xcb,0xf3,0xde,0xf0,0x5,0xec,0x24,0xe8,0xc2,0xe7,0xb1,0xe9, +0xb0,0xec,0xb6,0xf0,0x10,0xf5,0x4d,0xf8,0xe1,0xf8,0x2a,0xf7, +0xf3,0xf5,0xaa,0xf6,0x9d,0xf7,0x88,0xf7,0x4d,0xf7,0xf8,0xf6, +0xba,0xf5,0x18,0xf4,0x1b,0xf3,0x5,0xf4,0xe0,0xf7,0x77,0xfd, +0x3d,0x2,0x3c,0x5,0xba,0x7,0xa3,0xa,0x82,0xd,0x66,0x10, +0x67,0x13,0xb4,0x15,0x39,0x16,0xf1,0x13,0xb8,0xf,0xd,0xc, +0x54,0xa,0xb7,0xa,0xc4,0xc,0xab,0xf,0x1d,0x12,0xdf,0x12, +0x6c,0x12,0xd2,0x10,0xb8,0xd,0x68,0xb,0x9f,0xa,0xba,0x8, +0x30,0x5,0xfc,0x0,0xe7,0xfb,0x5b,0xf7,0x25,0xf6,0x24,0xf7, +0x9d,0xf7,0xae,0xf8,0x18,0xfa,0x63,0xf8,0x33,0xf4,0xaa,0xf0, +0xd2,0xee,0xb7,0xee,0x8b,0xef,0x66,0xf0,0x60,0xf0,0x77,0xee, +0xbc,0xeb,0x4c,0xea,0x7b,0xeb,0x39,0xef,0x8a,0xf3,0xd9,0xf6, +0xc5,0xf8,0xef,0xf9,0xaa,0xfb,0xe5,0xfc,0xbb,0xfc,0x4b,0xfe, +0x3b,0x3,0xa0,0x7,0x5c,0x7,0x14,0x4,0x89,0x2,0xbc,0x4, +0xf5,0x9,0x28,0x10,0xf5,0x15,0x2d,0x1c,0x46,0x21,0x59,0x21, +0x38,0x1d,0x82,0x1a,0x48,0x1c,0xc7,0x1e,0xbc,0x1d,0xb,0x1b, +0x4f,0x19,0x6f,0x17,0x92,0x14,0x56,0x12,0x6e,0x13,0x76,0x18, +0x9d,0x1d,0x73,0x1d,0x63,0x17,0x4e,0x11,0xd1,0xe,0x2d,0xd, +0xaf,0xa,0xe1,0x8,0x4d,0x8,0x29,0x7,0x13,0x2,0xea,0xf8, +0xf7,0xf1,0xf7,0xf1,0xc5,0xf5,0xc2,0xf8,0x23,0xfa,0x33,0xfa, +0x31,0xf9,0x1e,0xf7,0xe4,0xf3,0x37,0xf2,0xd8,0xf3,0x23,0xf5, +0x50,0xf3,0x73,0xef,0x78,0xea,0xce,0xe5,0x48,0xe4,0xd4,0xe6, +0xc8,0xeb,0x70,0xf1,0xbb,0xf5,0x4e,0xf6,0x61,0xf4,0x2e,0xf3, +0x93,0xf3,0x75,0xf5,0xfa,0xf7,0x62,0xf9,0x2d,0xf9,0x7f,0xf7, +0x56,0xf5,0xb5,0xf4,0x4f,0xf6,0xa1,0xf9,0xa4,0xfd,0xcc,0x0, +0xe3,0x1,0xd3,0x0,0x3c,0xff,0x54,0xff,0x11,0x2,0xf5,0x5, +0xb0,0x7,0x49,0x6,0x63,0x3,0xf9,0xff,0xe5,0xfc,0x9e,0xfa, +0xbf,0xf9,0xde,0xfb,0xe,0xff,0xf1,0xfe,0xc9,0xfb,0xe4,0xf8, +0x48,0xf7,0x98,0xf6,0x12,0xf7,0xd8,0xf7,0x3,0xf7,0x34,0xf4, +0xdb,0xef,0x4a,0xeb,0x50,0xe9,0x91,0xea,0x1a,0xed,0x9e,0xef, +0x6f,0xf1,0x3b,0xf2,0xf,0xf2,0xae,0xf0,0xae,0xee,0x21,0xee, +0xa,0xf0,0x42,0xf2,0xa2,0xf2,0xb3,0xf1,0xc4,0xf0,0xec,0xf0, +0x7b,0xf2,0xbf,0xf4,0x12,0xf8,0xac,0xfc,0x4,0x1,0xbe,0x3, +0xdb,0x4,0xdd,0x5,0x2a,0x8,0x1c,0xb,0x87,0xd,0xcc,0xe, +0xbf,0xe,0xfe,0xd,0x1f,0xd,0x89,0xc,0xfd,0xc,0x17,0xf, +0x9c,0x12,0x2a,0x16,0x74,0x18,0x78,0x19,0xcc,0x19,0xb9,0x19, +0x4f,0x19,0xcc,0x18,0xe8,0x17,0x7d,0x15,0x6b,0x10,0xbb,0x8, +0xe,0x1,0x9b,0xfc,0xf6,0xfa,0xf4,0xf9,0x1a,0xf9,0xa5,0xf8, +0x84,0xf8,0x3d,0xf8,0x11,0xf7,0xc1,0xf5,0xe1,0xf6,0x8,0xfa, +0x58,0xfa,0x2b,0xf6,0x9c,0xf0,0xfb,0xea,0xb8,0xe5,0x86,0xe2, +0xc,0xe2,0xcc,0xe3,0x4,0xe6,0xc4,0xe6,0x4f,0xe6,0xb3,0xe6, +0xef,0xe9,0x1e,0xef,0xf4,0xf3,0x7c,0xf8,0xb3,0xfc,0xd,0xff, +0x9b,0xfd,0x9f,0xf8,0x92,0xf6,0xe5,0xfb,0x83,0x2,0x86,0x4, +0x1f,0x4,0xd1,0x4,0xe6,0x6,0x8a,0x9,0x8d,0xc,0x8b,0x10, +0x15,0x17,0x9b,0x1e,0xbf,0x20,0xf4,0x1c,0x71,0x1a,0xe5,0x1b, +0x6a,0x1e,0xed,0x1f,0x55,0x20,0x9d,0x20,0x80,0x1f,0x91,0x1a, +0x54,0x14,0xdf,0x11,0xe6,0x13,0xa9,0x16,0xb3,0x16,0xc6,0x13, +0x3,0x10,0x56,0xd,0x15,0xb,0x59,0x8,0xcb,0x7,0x90,0xa, +0x23,0xc,0xc5,0x8,0xb5,0x1,0x2f,0xfb,0x91,0xf8,0x30,0xf8, +0xcf,0xf6,0xff,0xf4,0x82,0xf3,0x47,0xf1,0x24,0xee,0xa9,0xea, +0x93,0xe8,0x88,0xe9,0x1b,0xec,0x96,0xee,0x3f,0xf0,0x94,0xef, +0x71,0xed,0xf7,0xec,0x9b,0xee,0xd1,0xf0,0xbf,0xf2,0x9c,0xf3, +0xbd,0xf2,0xa4,0xf0,0x63,0xee,0xf6,0xec,0x8d,0xed,0x7a,0xf0, +0x64,0xf4,0x84,0xf7,0x16,0xf9,0x4b,0xfa,0x77,0xfc,0xf6,0xfe, +0x57,0x1,0x41,0x4,0x37,0x7,0x60,0x8,0x4e,0x6,0x86,0x2, +0x2f,0x0,0xd8,0xff,0xd,0x0,0xae,0xff,0xe4,0xfe,0x32,0xff, +0x67,0x0,0x43,0x0,0xa3,0xfe,0x39,0xfe,0xc2,0x0,0xe6,0x3, +0xb,0x4,0x5a,0x1,0x69,0xfe,0x35,0xfc,0x5,0xfa,0x7d,0xf7, +0x4b,0xf5,0xaa,0xf3,0x10,0xf2,0xc4,0xef,0x97,0xec,0x3b,0xea, +0x62,0xea,0xed,0xeb,0x13,0xed,0xe6,0xed,0xfc,0xee,0xb8,0xef, +0x78,0xef,0xe6,0xee,0x15,0xef,0xf6,0xf0,0xaf,0xf3,0x7b,0xf4, +0x57,0xf3,0x83,0xf2,0x4a,0xf2,0x91,0xf2,0x8d,0xf3,0xdc,0xf4, +0xec,0xf6,0xf3,0xf9,0x92,0xfc,0x1f,0xfe,0xe,0x0,0x9a,0x3, +0x2,0x8,0x19,0xc,0x3b,0xf,0x10,0x11,0x5,0x12,0x6f,0x12, +0x46,0x12,0xf3,0x11,0xcc,0x11,0xac,0x11,0x57,0x11,0xed,0x10, +0xb2,0x10,0x72,0x10,0x5d,0x10,0xd8,0x10,0x95,0x11,0x62,0x12, +0xdd,0x12,0x62,0x12,0x4d,0x11,0xe8,0xf,0x58,0xd,0xdc,0x8, +0x3d,0x3,0x2f,0xfe,0xc,0xfa,0x1d,0xf6,0x4c,0xf2,0xd5,0xee, +0x41,0xec,0x11,0xeb,0xce,0xea,0x12,0xeb,0x5b,0xec,0x98,0xee, +0xe,0xf0,0x2e,0xef,0xd9,0xec,0x97,0xea,0x5a,0xe8,0x2,0xe6, +0x58,0xe4,0xab,0xe3,0x18,0xe3,0x38,0xe1,0xf0,0xdd,0x9e,0xdb, +0x97,0xdc,0x7d,0xe0,0xbf,0xe5,0x49,0xeb,0x5e,0xf0,0x67,0xf4, +0xb3,0xf6,0xfb,0xf7,0xb,0xfb,0xd4,0x0,0x9f,0x6,0x92,0x9, +0x9f,0x9,0x68,0x8,0x4c,0x7,0x5b,0x7,0xdb,0x8,0x43,0xc, +0x36,0x13,0x5d,0x1b,0xe7,0x1e,0x16,0x1e,0x6e,0x1e,0x14,0x22, +0xd5,0x26,0x17,0x2a,0xca,0x2a,0x81,0x29,0x75,0x27,0x1c,0x24, +0x78,0x1e,0x94,0x19,0xbc,0x18,0x3f,0x1a,0xc8,0x1a,0x54,0x18, +0xbf,0x13,0x27,0x10,0x3b,0xe,0x48,0xd,0xff,0xd,0xe8,0xf, +0xef,0x10,0x2a,0xf,0xa,0xa,0x30,0x3,0x14,0xfe,0x4,0xfd, +0x41,0xfd,0xd0,0xfa,0xad,0xf6,0x45,0xf3,0x71,0xf0,0xab,0xed, +0xfe,0xeb,0xf3,0xec,0xdd,0xef,0x67,0xf2,0x27,0xf2,0xf5,0xed, +0x91,0xe9,0x7c,0xe9,0x12,0xec,0xd,0xee,0xba,0xee,0x89,0xee, +0x6c,0xee,0x1a,0xee,0x58,0xec,0xbc,0xea,0xc1,0xec,0xf,0xf2, +0x1b,0xf6,0x98,0xf6,0x2f,0xf5,0x60,0xf4,0x76,0xf5,0xf,0xf7, +0x6f,0xf8,0x95,0xfb,0xd2,0xff,0xc6,0x1,0x84,0x0,0xdc,0xfd, +0x7d,0xfc,0x8c,0xfd,0xa9,0xff,0x8,0x1,0x3d,0x1,0xf5,0x0, +0xd4,0xff,0xf5,0xfc,0xc4,0xf9,0xa3,0xf8,0xa9,0xf9,0x8e,0xfa, +0x6a,0xf9,0x24,0xf7,0xa,0xf6,0xab,0xf6,0xcf,0xf6,0xd5,0xf4, +0xc9,0xf2,0x82,0xf2,0x6b,0xf2,0x99,0xf0,0x27,0xed,0xeb,0xe9, +0x6c,0xe8,0x12,0xe8,0x8b,0xe7,0x8c,0xe6,0x1,0xe6,0x9d,0xe6, +0xa7,0xe7,0x57,0xe8,0xd3,0xe8,0x27,0xea,0x9b,0xec,0xdf,0xed, +0xf5,0xec,0x6d,0xec,0xc6,0xed,0xcf,0xef,0x17,0xf1,0xc6,0xf1, +0x4f,0xf3,0x8,0xf6,0x86,0xf8,0x93,0xf9,0x77,0xfa,0x9e,0xfd, +0x60,0x2,0x63,0x6,0x37,0x9,0xc5,0xb,0xc5,0xe,0x53,0x11, +0xc7,0x11,0x9e,0x10,0x1d,0x10,0xbf,0x11,0x44,0x14,0x52,0x15, +0x23,0x15,0x2a,0x15,0x84,0x15,0x6c,0x15,0x6c,0x14,0xf1,0x13, +0x6c,0x15,0x2b,0x17,0xd3,0x16,0x90,0x14,0xeb,0x11,0x96,0xf, +0x54,0xd,0xe0,0xa,0xd7,0x7,0x7,0x4,0xfa,0xff,0x23,0xfc, +0x1d,0xf8,0x0,0xf4,0x30,0xf1,0x72,0xef,0xc7,0xed,0xc6,0xed, +0x7,0xef,0x30,0xef,0x62,0xef,0xae,0xef,0x32,0xee,0x2,0xec, +0xa1,0xe9,0x5,0xe6,0xa,0xe2,0x93,0xdf,0xcc,0xdf,0x94,0xe1, +0xc6,0xe2,0x6d,0xe3,0xd2,0xe4,0x88,0xe7,0x1d,0xeb,0x6d,0xef, +0xaf,0xf4,0xfa,0xf9,0x1,0xff,0xf1,0x2,0xd8,0x2,0xd9,0xff, +0x40,0xff,0xae,0x2,0x1,0x7,0xf,0x9,0x1d,0x9,0xd,0x9, +0x27,0x9,0x88,0x9,0x7c,0xb,0x8f,0x10,0x7a,0x18,0x62,0x1f, +0x91,0x21,0xc1,0x1f,0x63,0x1d,0x12,0x1c,0x28,0x1a,0x19,0x17, +0x4f,0x15,0x31,0x15,0x6d,0x13,0xd3,0xd,0x12,0x7,0x2f,0x4, +0x10,0x7,0x8,0xc,0x6b,0xd,0x44,0xb,0x11,0xa,0x11,0x9, +0xad,0x4,0xf8,0xfe,0x97,0xfc,0x6a,0xfe,0x9b,0x0,0xd9,0xfd, +0x22,0xf6,0xad,0xef,0xad,0xed,0xcd,0xec,0x95,0xeb,0x3a,0xec, +0x9f,0xee,0x9d,0xf0,0xb1,0xef,0xa2,0xeb,0x4,0xea,0xa9,0xed, +0x62,0xf1,0x5f,0xf2,0xe9,0xf2,0x9c,0xf3,0x7f,0xf3,0x4a,0xf2, +0x8c,0xf0,0x1,0xf1,0x27,0xf6,0x65,0xfc,0x46,0xfe,0x59,0xfd, +0xc4,0xfd,0x1e,0xff,0x58,0xff,0x4c,0xfe,0xf2,0xfd,0xa,0x0, +0xea,0x2,0x66,0x3,0x7a,0x1,0x77,0x0,0xc5,0x1,0xa,0x3, +0x31,0x3,0x47,0x3,0x8e,0x3,0xc9,0x3,0x6c,0x3,0x35,0x2, +0xe9,0x0,0xb,0x0,0xa1,0xff,0x44,0xff,0xac,0xfe,0x50,0xfe, +0x8,0xfe,0x82,0xfd,0xd2,0xfc,0xfa,0xfb,0x97,0xfb,0xb0,0xfb, +0x6e,0xfb,0xe1,0xfa,0xf3,0xf9,0x46,0xf8,0x1b,0xf6,0x2d,0xf3, +0x22,0xef,0x87,0xea,0xa7,0xe6,0xe4,0xe4,0xd2,0xe4,0x62,0xe4, +0x20,0xe3,0xe7,0xe2,0xb6,0xe4,0x2e,0xe7,0xbb,0xe8,0x8f,0xe9, +0x59,0xeb,0x4d,0xee,0xef,0xef,0x70,0xef,0xb1,0xee,0x7f,0xee, +0xf4,0xee,0x26,0xf0,0xcd,0xf1,0xd2,0xf4,0x60,0xf9,0xf7,0xfc, +0x56,0xfe,0x8c,0xff,0xb7,0x2,0x6d,0x7,0xd9,0xb,0x4,0xf, +0x4c,0x11,0xd4,0x12,0x99,0x12,0x3b,0x10,0x8a,0xd,0xb0,0xc, +0xbb,0xd,0xe8,0xe,0xf2,0xe,0x50,0xe,0xce,0xd,0x56,0xd, +0x8,0xd,0x28,0xe,0x2a,0x11,0xdc,0x13,0xcc,0x13,0xa6,0x10, +0xf6,0xb,0x31,0x8,0x38,0x6,0xd,0x5,0x4f,0x4,0xd1,0x3, +0x77,0x2,0x3d,0xff,0x90,0xfa,0xba,0xf6,0xb5,0xf5,0xfe,0xf6, +0x4,0xf8,0x40,0xf6,0xac,0xf1,0x9,0xec,0xe1,0xe6,0xe0,0xe3, +0xd2,0xe3,0x8f,0xe5,0xea,0xe6,0xfe,0xe5,0xb,0xe3,0x32,0xe0, +0x14,0xdf,0xe8,0xdf,0x93,0xe1,0x1b,0xe3,0xf8,0xe3,0x21,0xe3, +0xbc,0xe0,0x47,0xde,0x4d,0xdd,0x9b,0xdf,0xf4,0xe4,0x48,0xea, +0x67,0xed,0x3d,0xee,0xcf,0xed,0x33,0xee,0x76,0xf1,0x61,0xf7, +0xc5,0xfd,0xb1,0x2,0x3e,0x4,0xbd,0x1,0x55,0xfe,0xb1,0xfd, +0x7c,0x0,0xcd,0x5,0x88,0xb,0xbb,0xe,0x2d,0xe,0x16,0xc, +0x60,0xc,0x5f,0x10,0x73,0x16,0xe2,0x1c,0xd7,0x21,0x58,0x23, +0xe2,0x20,0xd,0x1c,0xef,0x17,0xce,0x16,0xe5,0x18,0x29,0x1d, +0xae,0x20,0xfb,0x1f,0x53,0x1b,0xaa,0x16,0x72,0x15,0x8d,0x18, +0x3a,0x1e,0x73,0x22,0xb,0x22,0xed,0x1d,0xab,0x18,0x6d,0x13, +0x98,0xf,0xda,0xe,0x5,0x11,0x40,0x14,0xcd,0x14,0x72,0xf, +0xc1,0x7,0x80,0x4,0x4f,0x6,0xb5,0x9,0xaf,0xc,0xee,0xd, +0x84,0xc,0x51,0x8,0x5,0x2,0x90,0xfc,0x4e,0xfb,0xc8,0xfd, +0x1e,0x0,0xc6,0xff,0xc2,0xfd,0xb4,0xfb,0xa5,0xf9,0xd0,0xf7, +0xc,0xf8,0x1b,0xfc,0xf5,0x1,0xe1,0x3,0x51,0xff,0x77,0xf8, +0x61,0xf4,0x9e,0xf3,0x7,0xf4,0x66,0xf4,0x87,0xf5,0xfa,0xf7, +0x1c,0xf9,0x58,0xf6,0xb6,0xf2,0x20,0xf3,0x7c,0xf7,0xef,0xfb, +0x55,0xfd,0x79,0xfb,0x34,0xf8,0x91,0xf4,0x15,0xf1,0x2,0xef, +0xfe,0xee,0x6f,0xf0,0x91,0xf1,0x9c,0xf0,0x2a,0xee,0xd,0xec, +0x11,0xeb,0xc9,0xeb,0x59,0xee,0x93,0xf1,0xb6,0xf3,0xf,0xf3, +0x49,0xef,0x91,0xea,0xaa,0xe7,0x25,0xe7,0x4f,0xe7,0xed,0xe6, +0x9e,0xe6,0x7b,0xe6,0xd7,0xe5,0x5b,0xe5,0x18,0xe6,0x83,0xe8, +0xa6,0xec,0x8,0xf1,0x3a,0xf3,0x1a,0xf2,0xf6,0xee,0xb7,0xec, +0xcd,0xec,0x26,0xee,0x9b,0xef,0xdc,0xf0,0xbd,0xf1,0x1d,0xf2, +0x4,0xf2,0x86,0xf2,0x6a,0xf5,0xac,0xfa,0x1d,0x0,0xdf,0x3, +0xaf,0x5,0x2,0x6,0x6a,0x5,0xba,0x4,0x26,0x5,0x7c,0x7, +0x95,0xa,0xff,0xb,0xc9,0xa,0x59,0x8,0x59,0x7,0x56,0x9, +0xc1,0xc,0xac,0xf,0x87,0x12,0x58,0x15,0x26,0x16,0xf1,0x13, +0x28,0x11,0xfc,0x10,0x2b,0x13,0x28,0x15,0x3f,0x15,0x34,0x13, +0x84,0x10,0x83,0xe,0xdb,0xc,0xde,0xb,0x98,0xc,0x81,0xe, +0xdc,0xf,0x26,0xf,0xa3,0xc,0x2c,0xa,0xe9,0x8,0xf3,0x8, +0xe8,0x9,0xb9,0xa,0x88,0x9,0xcc,0x4,0xfc,0xfd,0x44,0xf8, +0xa1,0xf4,0xd8,0xf2,0x2f,0xf2,0x18,0xf1,0x22,0xf0,0x43,0xf0, +0x20,0xf0,0x35,0xf0,0xa8,0xf2,0xe1,0xf6,0x9e,0xfa,0xd9,0xfb, +0x11,0xfa,0xe5,0xf6,0x69,0xf3,0x35,0xf0,0x18,0xef,0xd5,0xf0, +0xdb,0xf3,0xf3,0xf5,0x28,0xf6,0xe0,0xf5,0x65,0xf7,0x85,0xfb, +0x42,0x1,0x5a,0x7,0x4f,0xd,0xff,0x11,0x45,0x13,0xf0,0x10, +0x2,0xe,0xb7,0xd,0xae,0xf,0x6e,0x10,0xaa,0xe,0x3c,0xc, +0xf7,0x9,0x6d,0x7,0x94,0x5,0xb3,0x6,0x48,0xc,0x3f,0x14, +0x91,0x19,0xc7,0x19,0x18,0x17,0x16,0x14,0xee,0x10,0xf0,0xd, +0xd9,0xc,0x70,0xd,0xab,0xc,0x44,0x8,0xa6,0x0,0x6a,0xf9, +0xc,0xf7,0xa4,0xf8,0xe7,0xf9,0x3,0xfb,0x83,0xfd,0xf8,0xfe, +0xe5,0xfc,0xe9,0xf7,0xe0,0xf3,0x52,0xf5,0xf7,0xf9,0x27,0xfb, +0x86,0xf8,0x62,0xf5,0xc2,0xf1,0x86,0xed,0xbc,0xe9,0x84,0xe7, +0x61,0xe9,0xe1,0xee,0x9e,0xf2,0xaf,0xf2,0x86,0xf2,0xaf,0xf3, +0x4e,0xf5,0x7e,0xf7,0x80,0xfa,0x5,0xfe,0x12,0x1,0x4c,0x1, +0xf1,0xfd,0x9e,0xfa,0xce,0xfa,0x38,0xfd,0x4a,0xff,0x8,0x1, +0x8,0x3,0xa0,0x4,0x3,0x5,0x6c,0x4,0xbe,0x4,0x67,0x8, +0x18,0xf,0x2f,0x15,0xf1,0x17,0xb5,0x17,0x2f,0x15,0x2,0x11, +0x38,0xd,0xec,0xa,0xad,0x9,0xe6,0x9,0x66,0xb,0x7c,0xc, +0x87,0xc,0x27,0xc,0x82,0xc,0x89,0xe,0xcc,0x10,0x93,0x10, +0xf7,0xc,0x94,0x6,0x97,0xfe,0x2,0xf7,0x2a,0xf2,0x6c,0xf1, +0xde,0xf3,0xee,0xf6,0x7f,0xf8,0x35,0xf8,0xcb,0xf7,0xf0,0xf8, +0xfa,0xfa,0x34,0xfd,0x74,0x0,0xce,0x3,0x1f,0x4,0x16,0x0, +0xc9,0xf9,0x6d,0xf5,0xfa,0xf5,0x22,0xf9,0x73,0xfa,0x2c,0xfa, +0x59,0xfa,0xc2,0xf9,0xb5,0xf7,0xac,0xf6,0xbf,0xf9,0xe2,0x1, +0xb8,0xa,0x1b,0xe,0x39,0xc,0xd3,0x8,0xb,0x5,0x7b,0x1, +0xc1,0xff,0xdc,0x0,0xff,0x3,0xb7,0x5,0x88,0x3,0x32,0x0, +0x5e,0x0,0xd3,0x4,0x61,0xa,0x4b,0xe,0x9f,0x10,0xc0,0x11, +0x57,0x10,0x35,0xb,0x1e,0x5,0xdd,0x3,0x38,0x8,0xc1,0xb, +0xfb,0x9,0xc9,0x4,0xbb,0xff,0x66,0xfc,0x46,0xfa,0x19,0xf9, +0x1e,0xfa,0xe1,0xfc,0x26,0xfe,0xfe,0xfb,0xf1,0xf7,0xdd,0xf4, +0x59,0xf4,0xb1,0xf5,0xc7,0xf6,0x52,0xf6,0x4f,0xf4,0x98,0xf0, +0x15,0xec,0xdd,0xe9,0xa2,0xeb,0xc2,0xef,0xc6,0xf3,0x58,0xf5, +0x20,0xf3,0x84,0xee,0xe2,0xe9,0x59,0xe6,0xf5,0xe4,0x8e,0xe6, +0xba,0xe9,0xbe,0xeb,0x5b,0xeb,0x6f,0xe9,0x44,0xe8,0xb,0xea, +0x51,0xee,0x8,0xf2,0xd9,0xf2,0x23,0xf1,0x9b,0xee,0x31,0xec, +0x37,0xea,0x29,0xe9,0xe,0xea,0x42,0xee,0xc,0xf4,0xa4,0xf6, +0xa1,0xf5,0x17,0xf5,0x9a,0xf6,0x99,0xf9,0x70,0xfd,0x9,0x1, +0x46,0x4,0x29,0x6,0xfa,0x4,0x5,0x3,0x66,0x3,0x27,0x5, +0x6c,0x6,0x78,0x6,0xa9,0x5,0xa1,0x5,0x47,0x6,0x49,0x6, +0xc2,0x7,0xc1,0xd,0xfa,0x15,0x61,0x1b,0x5,0x1d,0x3d,0x1d, +0x4,0x1e,0xf7,0x1f,0xb6,0x20,0xed,0x1e,0x20,0x1f,0x2d,0x23, +0x99,0x25,0xe3,0x23,0xb3,0x21,0x4a,0x22,0xea,0x25,0x17,0x2a, +0xec,0x2c,0xcf,0x2f,0xc7,0x32,0x32,0x33,0x4d,0x31,0xfd,0x2f, +0x4c,0x30,0x71,0x31,0xf3,0x31,0x1f,0x30,0x6b,0x2c,0x97,0x28, +0xfd,0x23,0x92,0x1e,0x17,0x1c,0x24,0x1e,0x10,0x21,0x92,0x21, +0xc2,0x1f,0x72,0x1d,0xf4,0x1b,0x75,0x1a,0xa1,0x17,0x3e,0x14, +0xa9,0x11,0x18,0xf,0xdc,0xa,0x37,0x5,0xc7,0xff,0x0,0xfc, +0xd3,0xfa,0x6a,0xfb,0xcd,0xfb,0xc5,0xfa,0x6b,0xf7,0xc3,0xf2, +0x29,0xf0,0x41,0xf0,0xd2,0xf0,0xe1,0xf0,0x45,0xf0,0x41,0xef, +0x33,0xee,0xfd,0xeb,0xf2,0xe8,0xaf,0xe7,0xa3,0xe8,0x19,0xea, +0xad,0xea,0x9e,0xe9,0xb5,0xe7,0x60,0xe6,0x31,0xe6,0xc8,0xe7, +0xea,0xea,0x24,0xed,0xcc,0xec,0xfc,0xea,0x52,0xe9,0xa2,0xe8, +0x38,0xe9,0x87,0xea,0x7a,0xec,0x98,0xef,0xc1,0xf1,0x1e,0xf0, +0xa7,0xec,0x29,0xeb,0xfb,0xeb,0x6f,0xed,0xf3,0xed,0x3e,0xed, +0xb2,0xec,0x71,0xec,0x79,0xeb,0xda,0xea,0x6c,0xec,0x19,0xf0, +0xb8,0xf3,0x7e,0xf4,0x71,0xf2,0x5e,0xf0,0x59,0xef,0x94,0xee, +0x2c,0xee,0xcc,0xee,0x50,0xf0,0x30,0xf1,0x0,0xf0,0x33,0xee, +0x3e,0xee,0x24,0xf0,0xc4,0xf2,0x2f,0xf5,0xef,0xf6,0xb8,0xf8, +0x5a,0xfa,0x93,0xfa,0x2d,0xfa,0xd9,0xfa,0xe5,0xfc,0x76,0xff, +0x9a,0x0,0xae,0xff,0xd8,0xfe,0x8c,0xff,0x78,0x1,0x41,0x4, +0x78,0x7,0xd4,0xa,0x36,0xe,0x26,0x11,0x39,0x13,0x75,0x14, +0xc7,0x15,0xdf,0x17,0xe3,0x19,0x7d,0x1b,0xd0,0x1c,0xa,0x1d, +0x97,0x1c,0xd1,0x1c,0xe0,0x1d,0x89,0x1f,0x3c,0x21,0x50,0x22, +0xe2,0x22,0xc1,0x22,0x14,0x22,0xbf,0x21,0xd6,0x21,0x25,0x22, +0x71,0x22,0x46,0x22,0xac,0x21,0x49,0x20,0xdc,0x1d,0x31,0x1b, +0xa9,0x18,0x93,0x16,0x1e,0x15,0xb9,0x12,0x6c,0xe,0x92,0x9, +0x99,0x5,0xd1,0x2,0xa,0x1,0x3c,0x0,0x3d,0x0,0x75,0x0, +0x1d,0x0,0xf6,0xfd,0x7a,0xfa,0x83,0xf8,0xfd,0xf7,0x44,0xf6, +0xbe,0xf3,0x88,0xf1,0xbc,0xee,0x6b,0xeb,0x4b,0xe9,0x35,0xea, +0x43,0xee,0x68,0xf2,0x10,0xf4,0x1f,0xf4,0xf5,0xf3,0xbf,0xf3, +0x13,0xf4,0xfb,0xf4,0x6,0xf6,0x8e,0xf8,0xdb,0xfb,0x52,0xfb, +0x97,0xf7,0xd8,0xf6,0x86,0xf9,0x94,0xfb,0xa5,0xfc,0x5b,0xfe, +0xbb,0x0,0xe7,0x1,0xf4,0xff,0x37,0xfd,0x87,0xfe,0xaa,0x3, +0xa9,0x7,0xda,0x7,0x84,0x5,0x6,0x3,0x90,0x1,0x57,0xff, +0xa2,0xfb,0x42,0xfb,0xcf,0xff,0x47,0x2,0x1a,0xff,0xda,0xfa, +0x75,0xf9,0xcb,0xfa,0xdf,0xfb,0x6e,0xfa,0x23,0xf9,0xcf,0xf9, +0x47,0xf8,0x36,0xf2,0x72,0xec,0x15,0xec,0x19,0xf0,0x8c,0xf3, +0xd1,0xf2,0x41,0xef,0x85,0xed,0xb2,0xed,0x94,0xeb,0xe5,0xe8, +0xea,0xea,0x2c,0xf0,0xf,0xf3,0x2f,0xf1,0x54,0xed,0xbb,0xec, +0xc,0xf0,0x83,0xf3,0x14,0xf6,0xdf,0xf8,0x33,0xfb,0xc5,0xfb, +0xa4,0xfa,0x1d,0xfa,0x95,0xfd,0x32,0x5,0x1e,0xc,0x37,0xe, +0x89,0xd,0x8e,0xd,0xb1,0xd,0x73,0xd,0xe5,0xe,0xb5,0x12, +0x68,0x17,0x1,0x1b,0x49,0x1c,0x8d,0x1c,0x55,0x1e,0x96,0x22, +0x3c,0x28,0xfe,0x2c,0x2,0x2f,0xf6,0x2d,0x30,0x2a,0x78,0x24, +0xed,0x1e,0xcc,0x1b,0x21,0x1b,0x66,0x1b,0x45,0x1b,0xe2,0x19, +0xa2,0x17,0xe3,0x16,0x89,0x19,0xc1,0x1e,0x1d,0x24,0x52,0x27, +0xe9,0x26,0x5d,0x22,0x1a,0x1a,0xe,0x10,0x4b,0x7,0x7f,0x1, +0x71,0xfd,0xe0,0xf8,0x88,0xf3,0x9d,0xef,0xe4,0xee,0xa6,0xf0, +0x2c,0xf4,0x2a,0xfa,0x4b,0x1,0x82,0x5,0x3b,0x4,0xb2,0xfe, +0xba,0xf8,0x1c,0xf5,0xc3,0xf2,0xb9,0xef,0x55,0xec,0xe6,0xe8, +0x80,0xe4,0x70,0xdf,0xb,0xdc,0x4b,0xdd,0x39,0xe4,0x8e,0xed, +0xcc,0xf4,0xa3,0xf9,0xee,0xfd,0xd,0x1,0xa5,0x1,0x67,0x0, +0x14,0xff,0x60,0xfe,0xf9,0xfb,0x6e,0xf5,0xe6,0xed,0x8e,0xea, +0xb2,0xeb,0x43,0xef,0xb1,0xf4,0x8c,0xfb,0xa1,0x2,0x3,0x8, +0x28,0xa,0x7f,0xa,0xd9,0xb,0xd4,0xd,0x6c,0xd,0x70,0x9, +0xb0,0x3,0x5d,0xfe,0xea,0xf9,0xee,0xf5,0x40,0xf3,0x2a,0xf3, +0xc8,0xf4,0xf1,0xf5,0xf2,0xf5,0x8f,0xf5,0xae,0xf5,0x9c,0xf6, +0xa,0xf8,0xa6,0xf9,0xf3,0xfa,0xe2,0xfa,0x64,0xf8,0x8a,0xf3, +0x30,0xee,0x97,0xea,0x70,0xe9,0x12,0xea,0xa8,0xeb,0xd0,0xed, +0x30,0xf0,0x9,0xf2,0x46,0xf3,0x5b,0xf4,0xbd,0xf4,0x19,0xf4, +0x52,0xf3,0x96,0xf2,0x51,0xf1,0xb,0xf0,0x9,0xf0,0xb9,0xf1, +0x74,0xf4,0x38,0xf7,0x75,0xf9,0x11,0xfb,0x89,0xfb,0x25,0xfa, +0xb0,0xf7,0x5,0xf6,0xd2,0xf5,0x57,0xf6,0xc8,0xf6,0x82,0xf7, +0x40,0xf9,0xec,0xfa,0x1e,0xfb,0xb0,0xfa,0x9b,0xfb,0xf4,0xfe, +0x54,0x3,0x75,0x5,0xc9,0x4,0xca,0x3,0x6b,0x3,0xa0,0x2, +0xe8,0x0,0x21,0xff,0x83,0xfe,0x7e,0xfe,0x15,0xfd,0x4b,0xfa, +0x87,0xf8,0x40,0xf9,0xc,0xfc,0x9a,0x0,0x5d,0x6,0x82,0xb, +0x57,0xe,0xdd,0xd,0xbc,0xa,0x2,0x8,0x0,0x7,0x1,0x6, +0xb4,0x4,0x5c,0x4,0x5b,0x5,0xe8,0x6,0xc,0x8,0xb0,0x9, +0x9c,0xd,0x78,0x13,0xa2,0x19,0x88,0x1e,0x34,0x21,0x3c,0x22, +0xb4,0x22,0x5e,0x23,0x4c,0x24,0xaa,0x24,0xfb,0x24,0x8f,0x26, +0x9a,0x28,0xb6,0x29,0xef,0x29,0x50,0x2a,0xf4,0x2b,0x28,0x2f, +0xe9,0x33,0xbf,0x38,0xba,0x3a,0x92,0x3a,0x6b,0x3b,0x1d,0x3c, +0x7e,0x3a,0xe4,0x37,0x1b,0x35,0x85,0x31,0x6,0x2e,0x74,0x2b, +0x26,0x29,0xbe,0x26,0x6d,0x24,0x82,0x22,0xbd,0x21,0x95,0x21, +0xd7,0x1f,0xa3,0x1b,0xd3,0x15,0xfd,0xf,0x56,0xb,0x96,0x6, +0xdd,0x0,0x94,0xfc,0x1a,0xfa,0x58,0xf6,0x68,0xf0,0x95,0xea, +0xa4,0xe7,0xc9,0xe7,0xbe,0xe7,0x8f,0xe5,0xef,0xe2,0x41,0xe1, +0xc1,0xdf,0x3d,0xdd,0x3a,0xda,0x2,0xd9,0x81,0xda,0x9a,0xdc, +0xad,0xdc,0xcf,0xda,0x58,0xd9,0xf5,0xd8,0xd3,0xd8,0x13,0xda, +0xde,0xdd,0x14,0xe2,0x27,0xe3,0xde,0xdf,0xa8,0xdb,0xeb,0xda, +0x9e,0xdc,0x11,0xdd,0xd2,0xdc,0x7c,0xde,0x85,0xe1,0x7b,0xe3, +0x60,0xe3,0xc7,0xe2,0xdf,0xe4,0x38,0xea,0x84,0xee,0x57,0xee, +0xa6,0xeb,0x65,0xe9,0xbf,0xe7,0x4e,0xe6,0x2c,0xe6,0xad,0xe8, +0x3e,0xec,0x91,0xed,0xfb,0xec,0x74,0xed,0x96,0xef,0x72,0xf2, +0x71,0xf5,0xec,0xf7,0xd2,0xf9,0x9b,0xfa,0x6a,0xf8,0xd5,0xf3, +0xc2,0xf0,0x10,0xf1,0x7f,0xf2,0xd8,0xf2,0x82,0xf2,0x81,0xf2, +0x1b,0xf3,0x95,0xf4,0x32,0xf7,0x70,0xfb,0x89,0x1,0x16,0x7, +0xe8,0x8,0xb0,0x7,0x2e,0x6,0x20,0x5,0x39,0x4,0xb5,0x3, +0xfa,0x3,0x62,0x5,0x7a,0x7,0x57,0x9,0x69,0xb,0xbd,0xe, +0x54,0x13,0x83,0x18,0x34,0x1d,0x92,0x20,0xd1,0x22,0xc3,0x23, +0x10,0x23,0x35,0x22,0xad,0x22,0xdf,0x23,0xac,0x24,0x7e,0x24, +0xa4,0x23,0x7a,0x23,0xa1,0x24,0x69,0x26,0xf8,0x27,0xdf,0x28, +0x73,0x29,0xf6,0x29,0x8e,0x29,0xa8,0x27,0x15,0x25,0x1d,0x23, +0x6c,0x22,0x22,0x22,0xa5,0x20,0xc8,0x1d,0x88,0x1a,0x80,0x17, +0xbc,0x14,0x11,0x12,0x81,0xf,0x18,0xd,0xdf,0x9,0xe0,0x4, +0xd2,0xfe,0x86,0xf8,0x25,0xf2,0xc6,0xec,0x21,0xe9,0x94,0xe6, +0xf8,0xe4,0xa8,0xe3,0x81,0xe1,0xab,0xdf,0x36,0xdf,0xba,0xde, +0x6c,0xdd,0x7f,0xdb,0x90,0xd8,0xa2,0xd4,0x28,0xd0,0xe8,0xcb, +0xf2,0xc8,0x3a,0xc7,0x4d,0xc6,0xb5,0xc6,0x32,0xc9,0xe3,0xcd, +0xf4,0xd3,0xa1,0xda,0x2f,0xe2,0x22,0xea,0xb8,0xf0,0xb5,0xf4, +0x83,0xf6,0x38,0xf8,0xd8,0xfa,0x14,0xfc,0x8b,0xfa,0x99,0xf8, +0x89,0xf8,0x61,0xfa,0x49,0xfd,0xd8,0x0,0x71,0x6,0x7b,0xf, +0x96,0x19,0xe7,0x20,0xf1,0x24,0x49,0x27,0xd9,0x28,0xb4,0x29, +0xe5,0x28,0xd4,0x25,0x79,0x21,0x12,0x1c,0x3c,0x15,0xa6,0xe, +0xe8,0xa,0x84,0xa,0xc2,0xb,0x70,0xd,0xf5,0xf,0x71,0x12, +0x11,0x13,0x90,0x12,0x5f,0x12,0xf8,0x11,0x8d,0x10,0x7a,0xd, +0x10,0x8,0xa3,0x0,0x59,0xf8,0x4,0xf1,0xab,0xec,0xa8,0xeb, +0xc6,0xec,0xa8,0xee,0x35,0xf0,0x19,0xf1,0xb0,0xf1,0xf1,0xf1, +0x33,0xf2,0x14,0xf4,0xa6,0xf7,0x7d,0xf9,0xda,0xf6,0x7e,0xf1, +0x25,0xed,0x64,0xeb,0x39,0xeb,0xa1,0xeb,0x54,0xed,0xce,0xf0, +0x73,0xf4,0x5d,0xf6,0x8b,0xf6,0xe5,0xf6,0xad,0xf9,0x1a,0xff, +0xcb,0x4,0x64,0x8,0xbe,0x9,0x4d,0x9,0xbe,0x6,0xe1,0x3, +0xb7,0x4,0xb3,0x9,0x12,0xf,0x2a,0x12,0xbc,0x12,0x6d,0x11, +0x85,0xf,0x52,0xe,0x21,0xf,0xd8,0x12,0xe0,0x17,0x6f,0x1b, +0xf2,0x1c,0x9c,0x1d,0xbd,0x1e,0x5c,0x21,0xe8,0x24,0x85,0x27, +0x4f,0x28,0xdc,0x26,0xbf,0x21,0x59,0x18,0x67,0xd,0xa1,0x5, +0x2,0x4,0x4a,0x8,0xc2,0xf,0x72,0x16,0x48,0x19,0xbe,0x17, +0xd0,0x13,0xad,0x10,0xb,0x10,0xa3,0x10,0x63,0xf,0x3,0x9, +0x14,0xfd,0xa9,0xf0,0x44,0xea,0x1a,0xeb,0x47,0xef,0x38,0xf3, +0x5a,0xf5,0xc,0xf4,0x17,0xef,0x96,0xe9,0x3c,0xe7,0x8c,0xea, +0x91,0xf3,0x67,0xfd,0xbe,0x2,0x28,0x3,0x1c,0x0,0x9f,0xfa, +0x32,0xf4,0xa7,0xee,0x49,0xec,0x38,0xed,0x19,0xed,0x59,0xe9, +0x1,0xe6,0x61,0xe8,0x72,0xf1,0x1c,0xfe,0xc6,0x9,0x7e,0x10, +0x8d,0x10,0xb0,0xa,0x66,0x1,0x44,0xf9,0xee,0xf6,0xee,0xf9, +0x78,0xfd,0x52,0xfe,0x8c,0xfc,0xe8,0xf9,0xab,0xf7,0x90,0xf5, +0x73,0xf4,0x4d,0xf6,0xfa,0xf9,0x40,0xfc,0xba,0xfb,0x47,0xf9, +0x77,0xf7,0xa4,0xf8,0x1d,0xfc,0x24,0xff,0x42,0xff,0x91,0xfa, +0x4,0xf1,0x3e,0xe6,0x65,0xdf,0xb6,0xde,0x8d,0xe2,0xf0,0xe7, +0xb5,0xec,0x11,0xf0,0xb9,0xf1,0x32,0xf1,0x13,0xef,0x8d,0xed, +0xf0,0xed,0x26,0xef,0x82,0xef,0xa9,0xee,0xc7,0xed,0xbc,0xee, +0x50,0xf2,0x9,0xf7,0xde,0xfa,0xd0,0xfc,0xfa,0xfb,0x9d,0xf7, +0xb3,0xf0,0x15,0xea,0x47,0xe7,0xd9,0xe9,0xce,0xef,0x1b,0xf6, +0x6c,0xfb,0x6a,0xff,0x51,0x1,0x92,0x0,0x2f,0xfe,0x6,0xfc, +0xf9,0xfa,0x52,0xfa,0x54,0xf8,0xe9,0xf4,0xd4,0xf2,0x99,0xf3, +0xc5,0xf5,0xd2,0xf7,0xb1,0xf8,0x1,0xf8,0x87,0xf6,0x5b,0xf4, +0xf,0xf2,0x25,0xf2,0x20,0xf6,0xf,0xfd,0x1f,0x4,0x7,0x8, +0xed,0x7,0x8a,0x4,0x2a,0xfe,0x61,0xf6,0x29,0xf0,0x43,0xed, +0xe0,0xec,0x0,0xed,0x53,0xed,0x15,0xef,0xe3,0xf2,0x6f,0xf8, +0x80,0xfe,0xe1,0x3,0x25,0x8,0x95,0x9,0x9d,0x6,0x5e,0x1, +0xe4,0xfc,0x10,0xfa,0x86,0xf9,0xc6,0xfb,0x7e,0xff,0xab,0x2, +0xd1,0x3,0x53,0x2,0x27,0x0,0xa0,0x0,0x32,0x4,0x16,0x9, +0x15,0xe,0x17,0x12,0xc2,0x14,0x6c,0x16,0x92,0x16,0x37,0x16, +0xc5,0x17,0xec,0x19,0x36,0x19,0x37,0x16,0x5b,0x14,0x16,0x15, +0xc6,0x17,0xb5,0x1b,0xda,0x20,0x1c,0x28,0xf7,0x30,0x6c,0x37, +0xd4,0x38,0x46,0x37,0xe9,0x35,0x3c,0x36,0x2d,0x37,0xdb,0x36, +0xfd,0x36,0x6a,0x39,0xe5,0x3b,0x6,0x3e,0xf2,0x41,0xe6,0x45, +0x90,0x46,0x6a,0x44,0xc3,0x41,0x8e,0x3f,0x6e,0x3d,0x71,0x3a, +0xf3,0x36,0x93,0x35,0x91,0x36,0xfc,0x35,0xdd,0x31,0xfa,0x2b, +0xcb,0x26,0xac,0x23,0xf5,0x1f,0xeb,0x18,0x44,0x12,0x18,0xf, +0x26,0xc,0xf5,0x6,0x5b,0x1,0x87,0xfd,0x57,0xfa,0x82,0xf4, +0x0,0xec,0x60,0xe4,0xdc,0xdf,0x84,0xdd,0x8d,0xdb,0xba,0xda, +0xc4,0xdc,0xf7,0xdf,0xb1,0xe0,0x4c,0xdd,0x7c,0xd8,0xa5,0xd6, +0xbf,0xd5,0xac,0xd0,0xad,0xc9,0x1b,0xc6,0x26,0xc6,0xb9,0xc6, +0xd1,0xc5,0x7d,0xc5,0x43,0xc9,0x6d,0xcf,0xd2,0xd2,0x43,0xd2, +0xaf,0xd0,0x8,0xd0,0x31,0xd0,0xa2,0xd0,0xa6,0xd0,0xd3,0xd0, +0xf7,0xd1,0xde,0xd1,0x4,0xd0,0x7c,0xd0,0x74,0xd4,0x82,0xd8, +0x94,0xda,0xf3,0xdb,0xaa,0xde,0x20,0xe2,0x1b,0xe5,0xcf,0xe8, +0x93,0xed,0xfd,0xf1,0xec,0xf4,0x1e,0xf5,0xe,0xf3,0x9,0xf1, +0xd1,0xef,0xb5,0xee,0x98,0xed,0x70,0xee,0xdc,0xf2,0xeb,0xf7, +0x76,0xfa,0xb8,0xfb,0x7a,0xfd,0xcc,0xff,0x7c,0x1,0xe4,0x0, +0x55,0xfe,0x80,0xfb,0x56,0xf9,0xcc,0xf7,0xb,0xf7,0x66,0xf8, +0xa9,0xfb,0x51,0xfe,0x5c,0xff,0x95,0xff,0x49,0x0,0x5c,0x2, +0x4b,0x4,0x2e,0x5,0xd0,0x6,0x7c,0x9,0xa9,0xb,0xa6,0xc, +0xfa,0xc,0x6,0xe,0x25,0x10,0x3b,0x12,0x74,0x13,0x22,0x14, +0xc4,0x15,0xfa,0x18,0x7d,0x1c,0x4d,0x1f,0x77,0x21,0x7,0x24, +0x79,0x27,0x32,0x29,0xca,0x27,0xe2,0x25,0x90,0x24,0xe1,0x22, +0xce,0x21,0x40,0x22,0x62,0x23,0xeb,0x24,0xb5,0x26,0x79,0x27, +0x34,0x27,0x3c,0x27,0xe3,0x26,0xc9,0x24,0x38,0x21,0xd5,0x1c, +0x8e,0x18,0x28,0x15,0x5c,0x12,0x6a,0x10,0x53,0xf,0x1b,0xe, +0x3d,0xc,0xa3,0x8,0x68,0x2,0x9a,0xfa,0xb8,0xf2,0x61,0xec, +0x5,0xe8,0x97,0xe3,0x36,0xde,0xad,0xd8,0xed,0xd2,0x83,0xcd, +0xde,0xc9,0xea,0xc7,0xd7,0xc5,0x95,0xc2,0xe2,0xbe,0xd3,0xba, +0xf8,0xb5,0xa0,0xb1,0x19,0xaf,0x42,0xae,0x49,0xae,0x15,0xae, +0x1a,0xad,0xc5,0xaa,0x96,0xa7,0xe4,0xa6,0x25,0xab,0xc0,0xb3, +0xa2,0xbe,0xbd,0xc8,0x66,0xd0,0xd,0xd6,0xc9,0xda,0x77,0xe0, +0x3d,0xe7,0x99,0xed,0xfd,0xf3,0xea,0xf9,0xc,0xfd,0x6f,0xfe, +0xee,0x1,0xbd,0x9,0xed,0x14,0x38,0x21,0xcd,0x2c,0x55,0x35, +0x8f,0x39,0x2,0x3b,0x1f,0x3b,0x34,0x3b,0xce,0x3c,0xd2,0x3e, +0x54,0x3e,0x1,0x3a,0x55,0x33,0xcc,0x2c,0x13,0x27,0x12,0x23, +0xf8,0x22,0xfc,0x25,0x41,0x28,0xef,0x26,0xde,0x22,0xc4,0x1f, +0x3e,0x1f,0x8e,0x1f,0x81,0x1f,0xeb,0x1e,0x79,0x1c,0xcb,0x15, +0xa3,0xa,0x6f,0xfe,0x8,0xf5,0x4b,0xf0,0x2f,0xef,0xc5,0xee, +0xef,0xee,0x6e,0xf0,0xe,0xf0,0xd1,0xeb,0x64,0xe7,0xc8,0xe7, +0xdd,0xec,0x57,0xf0,0xf,0xee,0x71,0xe8,0x42,0xe2,0x9a,0xdc, +0x33,0xd9,0xb5,0xd9,0x49,0xde,0x27,0xe4,0x5a,0xe7,0xcc,0xe6, +0x75,0xe5,0x2,0xe8,0xaa,0xee,0xcd,0xf5,0xf9,0xfd,0xfb,0x8, +0xa4,0x13,0xc8,0x19,0xa0,0x1a,0x36,0x1a,0x8d,0x1d,0x8c,0x23, +0xf4,0x28,0x86,0x2d,0x39,0x30,0xeb,0x2f,0x62,0x2e,0xaa,0x2e, +0x9d,0x33,0x66,0x3d,0x7b,0x47,0xb,0x4c,0x42,0x49,0x36,0x42, +0x82,0x3a,0x5b,0x33,0xbf,0x2d,0x80,0x2b,0xd,0x2c,0xa,0x2b, +0xa,0x26,0x51,0x20,0x6c,0x1c,0xba,0x18,0x2d,0x14,0xae,0xf, +0xa1,0xb,0x17,0x6,0x14,0xfc,0x1f,0xee,0xaa,0xe0,0x80,0xd8, +0x73,0xd7,0x58,0xda,0x99,0xdc,0xaf,0xdb,0x78,0xd6,0x7c,0xce, +0x18,0xc7,0x25,0xc3,0x46,0xc4,0x95,0xc7,0x4a,0xc8,0x75,0xc6, +0xbc,0xc3,0x8c,0xc0,0xb8,0xbe,0xfa,0xbf,0xda,0xc3,0x4d,0xc7, +0xbb,0xc7,0x3d,0xc7,0x92,0xc8,0xa1,0xcb,0xc0,0xd0,0xbc,0xd8, +0x5,0xe3,0x80,0xed,0x5,0xf5,0x4a,0xf7,0x5,0xf4,0xa4,0xee, +0xb3,0xec,0x63,0xef,0x7f,0xf4,0x92,0xfa,0xbc,0xff,0xa,0x3, +0x96,0x5,0x7c,0x9,0xe2,0x10,0xdd,0x18,0xc3,0x1b,0x59,0x1a, +0x6e,0x18,0x7a,0x16,0xff,0x13,0x12,0x11,0x94,0xe,0xef,0xd, +0xd6,0xe,0x33,0xf,0xc5,0xc,0x32,0x7,0xde,0x0,0x24,0xfc, +0xdd,0xf9,0x2d,0xfa,0x2d,0xfc,0xa4,0xfd,0x4b,0xfc,0xb8,0xf8, +0x8d,0xf5,0xa2,0xf2,0x3d,0xee,0x28,0xe9,0xd1,0xe4,0xb0,0xe0, +0x1,0xdc,0x37,0xd8,0x92,0xd7,0xff,0xd9,0xee,0xdd,0x29,0xe2, +0x3,0xe6,0x54,0xe9,0x1f,0xeb,0xc,0xea,0x5,0xe7,0x79,0xe4, +0xc4,0xe4,0x6c,0xe8,0x7,0xed,0x18,0xf1,0x53,0xf5,0x56,0xf9, +0x47,0xfc,0x60,0xfe,0xc0,0x0,0x44,0x4,0x81,0x7,0x14,0x9, +0x46,0xa,0x5c,0xc,0x9f,0xf,0xe1,0x13,0x20,0x18,0xc0,0x1b, +0xc3,0x1d,0xa2,0x1c,0xe0,0x18,0x29,0x14,0xb2,0xf,0x47,0xc, +0xe2,0x9,0xf4,0x8,0x19,0xa,0x7b,0xb,0x27,0xa,0x15,0x5, +0x18,0xfe,0x3e,0xf8,0x61,0xf4,0x81,0xf1,0x1d,0xef,0x99,0xec, +0x68,0xe9,0xe2,0xe5,0xcd,0xe2,0x42,0xe1,0xeb,0xe0,0x1e,0xdf, +0x56,0xda,0xd,0xd4,0x7a,0xce,0x97,0xca,0x0,0xc8,0xdd,0xc6, +0xe2,0xc8,0x96,0xce,0xb1,0xd5,0x74,0xdb,0xbf,0xde,0x6,0xe0, +0x39,0xe0,0xf7,0xdf,0x36,0xe0,0x3a,0xe2,0x5f,0xe5,0x6b,0xe7, +0x1e,0xe8,0xe6,0xe9,0xbb,0xee,0x79,0xf5,0x20,0xfb,0xb9,0xfe, +0xda,0x1,0xa2,0x5,0xd3,0x9,0xeb,0xd,0x1c,0x12,0xbe,0x16, +0xdd,0x1a,0x5,0x1e,0x51,0x21,0xa,0x24,0x23,0x24,0xdf,0x21, +0xe,0x1f,0x2c,0x1e,0xca,0x20,0xc9,0x23,0xd5,0x23,0x74,0x24, +0x1,0x2a,0xb3,0x31,0xb3,0x36,0x8b,0x38,0xda,0x38,0xe3,0x38, +0x97,0x38,0x2f,0x36,0x3a,0x33,0x45,0x34,0xaa,0x37,0x66,0x38, +0xa2,0x37,0xf9,0x38,0xa6,0x3c,0xe9,0x3f,0xaa,0x3f,0x46,0x3e, +0x46,0x40,0x7e,0x42,0x91,0x40,0x11,0x3e,0x17,0x3f,0x19,0x42, +0x26,0x42,0x49,0x3b,0xc5,0x31,0x2e,0x2e,0x5c,0x2e,0xf4,0x28, +0x8d,0x1e,0xfa,0x17,0x84,0x18,0x8e,0x1b,0xcb,0x1a,0x68,0x15, +0x94,0x11,0x3a,0x11,0x82,0xc,0xf0,0x0,0xab,0xf7,0xeb,0xf4, +0x2d,0xf2,0x20,0xeb,0xdb,0xe2,0x65,0xdf,0x36,0xe3,0xce,0xe6, +0x58,0xe2,0xf8,0xdb,0xc0,0xdb,0x87,0xdd,0xaa,0xdb,0x2a,0xd7, +0xe8,0xd3,0x68,0xd5,0x4f,0xd8,0x57,0xd6,0x4d,0xd3,0xee,0xd4, +0x8a,0xd6,0xde,0xd2,0xbe,0xcc,0xdd,0xc9,0x6b,0xcc,0xff,0xcf, +0x71,0xce,0x76,0xc9,0x2,0xc9,0x44,0xcf,0x6f,0xd5,0x3b,0xd6, +0x9,0xd4,0xef,0xd2,0x55,0xd3,0x70,0xd2,0xd1,0xce,0xf0,0xcb, +0xa5,0xcc,0xaf,0xce,0x8c,0xd0,0x8f,0xd3,0xc1,0xd7,0xcc,0xdb, +0x5d,0xde,0x24,0xdf,0x50,0xe0,0xe3,0xe3,0x17,0xe8,0xed,0xe9, +0x3e,0xea,0x47,0xec,0x5d,0xf0,0x28,0xf4,0x4b,0xf6,0x8e,0xf7, +0xa0,0xf9,0xbf,0xfb,0xf,0xfb,0x81,0xf8,0x53,0xf8,0x4f,0xfb, +0xc6,0xfe,0xf7,0x0,0x53,0x2,0x83,0x4,0xb9,0x7,0x8d,0x9, +0xef,0x8,0x82,0x8,0x4f,0xa,0x9b,0xc,0xea,0xc,0x2,0xc, +0xa,0xd,0x53,0x10,0xed,0x11,0xcf,0xf,0x72,0xd,0x54,0xe, +0xe3,0x10,0x74,0x11,0xfd,0xf,0xd0,0xf,0xdb,0x12,0x93,0x17, +0xb4,0x1a,0x93,0x1b,0x47,0x1d,0x5f,0x20,0x79,0x21,0x3,0x20, +0x52,0x1e,0x76,0x1d,0xb0,0x1c,0x3b,0x1a,0x51,0x17,0x11,0x18, +0xa4,0x1b,0x9f,0x1d,0xb9,0x1d,0x44,0x1e,0x2c,0x20,0xb6,0x22, +0xf5,0x23,0xcd,0x22,0x76,0x20,0xd4,0x1e,0xfc,0x1d,0x94,0x1c, +0x6c,0x1a,0xe3,0x17,0x5d,0x14,0xf1,0xf,0xc7,0xb,0xc8,0x8, +0xd9,0x6,0x14,0x4,0x66,0xff,0xe3,0xfa,0x5c,0xf8,0xc3,0xf6, +0xd,0xf4,0x55,0xef,0x56,0xe9,0x44,0xe3,0xfb,0xdd,0x86,0xd9, +0xe5,0xd4,0xa6,0xcf,0x7b,0xca,0x3,0xc6,0x89,0xc2,0x22,0xc0, +0xe,0xbe,0x15,0xba,0xb2,0xb3,0x7e,0xaf,0x53,0xb0,0x60,0xb1, +0xaa,0xae,0x26,0xab,0xd5,0xaa,0xdd,0xad,0x8b,0xb1,0x1f,0xb4, +0xdf,0xb6,0x43,0xbb,0x6,0xc0,0xc7,0xc2,0x6e,0xc4,0xc5,0xc8, +0x9b,0xd0,0x60,0xd9,0x3e,0xe1,0x17,0xe9,0xee,0xf3,0x6a,0x0, +0x6a,0x8,0xa,0xd,0x46,0x15,0x82,0x20,0xdd,0x28,0xa1,0x2c, +0x90,0x2e,0x40,0x32,0xb1,0x37,0x78,0x3a,0xc5,0x38,0xaf,0x37, +0xf4,0x3a,0x7,0x3e,0x38,0x3c,0x17,0x38,0x70,0x36,0xb7,0x37, +0x91,0x36,0x69,0x30,0xcc,0x2c,0x92,0x2f,0xc4,0x30,0x50,0x2c, +0xf7,0x26,0xa0,0x24,0x9,0x25,0xda,0x23,0x7c,0x1e,0xf1,0x19, +0x2,0x1a,0x48,0x1a,0x4d,0x16,0x53,0x10,0xef,0xc,0x8c,0xc, +0xa4,0xb,0x83,0x7,0xd7,0x2,0xdd,0x2,0x18,0x5,0x8c,0x2, +0x84,0xfd,0x95,0xfc,0xaf,0xfe,0x47,0xff,0xf2,0xfc,0xab,0xf9, +0x86,0xf8,0x40,0xf9,0xe4,0xf8,0x50,0xf7,0x7c,0xf7,0x7d,0xfa, +0x62,0xfd,0x92,0xfd,0xbc,0xfc,0x2d,0xfe,0x7c,0x1,0x63,0x3, +0xb4,0x4,0xef,0x8,0x33,0xe,0xee,0x10,0x6d,0x12,0x34,0x15, +0xf7,0x19,0xa8,0x1f,0x31,0x24,0x94,0x27,0x28,0x2b,0xef,0x2e, +0xf1,0x31,0x41,0x33,0x21,0x34,0x98,0x36,0x2f,0x3a,0xe6,0x3d, +0x5d,0x40,0x3c,0x3f,0xc9,0x3a,0x2f,0x35,0x30,0x30,0x8a,0x2d, +0x6e,0x2c,0xe9,0x29,0xe7,0x25,0x1a,0x23,0x5d,0x22,0x8e,0x21, +0x42,0x1f,0xdf,0x1b,0x67,0x16,0x1a,0xd,0x8e,0x0,0x3b,0xf3, +0x2b,0xe7,0x95,0xdc,0x28,0xd3,0xd0,0xcb,0x20,0xc8,0x94,0xc8, +0x1,0xcb,0x1e,0xcc,0xcf,0xca,0xd,0xc8,0x7d,0xc5,0xaa,0xc3, +0x97,0xc1,0x96,0xbf,0x99,0xbd,0xf0,0xb9,0x89,0xb6,0xd0,0xb6, +0xe4,0xb9,0xcf,0xbc,0x68,0xbd,0x43,0xbc,0x5a,0xbc,0xc0,0xbe, +0xfc,0xc2,0xfe,0xc8,0xc5,0xd0,0xdc,0xda,0x11,0xe6,0x90,0xef, +0x42,0xf6,0x86,0xf9,0xf7,0xf8,0xf6,0xf5,0xa5,0xf2,0xa7,0xf1, +0x7f,0xf3,0xe6,0xf5,0xbe,0xf8,0x14,0xfe,0xfd,0x6,0xd,0x12, +0x64,0x1b,0x3b,0x21,0x47,0x24,0x5,0x24,0x61,0x21,0xde,0x1e, +0x16,0x1d,0xee,0x1b,0x40,0x1b,0xa0,0x1a,0xc3,0x19,0xa7,0x17, +0xd8,0x13,0xeb,0xe,0xa6,0x9,0xda,0x5,0x85,0x4,0xbb,0x4, +0xfc,0x5,0xd0,0x7,0x4e,0x9,0x0,0xa,0x58,0x9,0x1c,0x7, +0x65,0x3,0xcd,0xfd,0x7f,0xf6,0x19,0xef,0x97,0xe9,0xca,0xe6, +0xa6,0xe6,0x4a,0xe9,0x17,0xee,0x92,0xf3,0x3f,0xf8,0xad,0xfa, +0xa6,0xfa,0x4d,0xf9,0xce,0xf7,0xdd,0xf6,0x4a,0xf6,0x9c,0xf6, +0x8a,0xf9,0x91,0xfe,0xe6,0x3,0xfe,0x8,0xf2,0xc,0x21,0xf, +0x20,0x10,0x55,0x10,0x88,0x10,0x74,0x11,0xa5,0x12,0x6c,0x14, +0x5c,0x18,0x3d,0x1e,0x64,0x23,0x1e,0x26,0x86,0x26,0x9b,0x24, +0x64,0x21,0x57,0x1e,0xdd,0x1a,0x30,0x17,0xb4,0x14,0xdf,0x12, +0x68,0x11,0xea,0x10,0x34,0x10,0x34,0xd,0x23,0x7,0x7f,0xff, +0x22,0xf8,0xa2,0xf0,0xe2,0xe8,0xaa,0xe2,0xdc,0xde,0xb8,0xdc, +0xc3,0xda,0x5d,0xd8,0x2c,0xd6,0xed,0xd2,0x6c,0xcc,0xac,0xc3, +0x5f,0xbb,0xdd,0xb4,0x3f,0xb0,0xce,0xac,0xf9,0xa9,0xc4,0xa8, +0x90,0xaa,0x71,0xae,0x24,0xb2,0x57,0xb5,0xe5,0xb8,0x7b,0xbc, +0x8a,0xbf,0xd2,0xc2,0xa2,0xc7,0xc8,0xcd,0xd3,0xd3,0x89,0xd9, +0xc3,0xdf,0x4f,0xe6,0x7f,0xeb,0x27,0xee,0xa8,0xef,0x45,0xf2, +0x98,0xf6,0xc9,0xfb,0x63,0x0,0xf8,0x4,0x3c,0xc,0xf4,0x14, +0x8,0x1b,0xdf,0x1e,0xf5,0x22,0x5e,0x26,0xf8,0x26,0xe9,0x24, +0xe7,0x22,0x71,0x23,0xa5,0x25,0xce,0x26,0x1e,0x27,0xbc,0x29, +0xe9,0x2e,0xf1,0x32,0x2a,0x34,0xf4,0x33,0x9e,0x33,0x53,0x34, +0xb0,0x35,0xfc,0x35,0xb5,0x35,0xc0,0x35,0x38,0x35,0x7d,0x34, +0xd4,0x34,0xa4,0x35,0x2d,0x35,0xe2,0x32,0x81,0x30,0x96,0x2f, +0x24,0x2f,0x24,0x2e,0xf5,0x2c,0x9e,0x2c,0xa8,0x2e,0xa0,0x32, +0xde,0x35,0xe,0x37,0xc3,0x35,0x60,0x32,0xdd,0x2f,0xce,0x2f, +0x70,0x30,0xfc,0x30,0x2,0x32,0xd3,0x32,0x45,0x32,0xa3,0x30, +0xc3,0x2f,0xc7,0x30,0xf8,0x32,0x75,0x35,0x95,0x37,0x8a,0x38, +0x41,0x38,0xef,0x36,0x16,0x34,0x3d,0x2f,0x3f,0x29,0xb1,0x23, +0xb0,0x1e,0xb8,0x18,0x38,0x11,0xb5,0xa,0xd2,0x8,0xc0,0xb, +0xb1,0x10,0x94,0x15,0xec,0x17,0xf3,0x14,0x60,0xd,0xc5,0x3, +0xcd,0xf9,0xf1,0xf0,0x62,0xe9,0x82,0xe1,0x8a,0xd9,0xb1,0xd4, +0x93,0xd3,0x33,0xd2,0xb6,0xcf,0x4,0xd0,0x2f,0xd3,0x1c,0xd5, +0xfe,0xd3,0x91,0xd0,0x39,0xcc,0x6e,0xc8,0x21,0xc6,0x96,0xc5, +0x3c,0xc5,0x77,0xc2,0xd3,0xbc,0xca,0xb5,0xb1,0xae,0x4f,0xa9, +0x35,0xa8,0x43,0xac,0x95,0xb3,0x17,0xbc,0x1a,0xc4,0x8c,0xc9, +0x32,0xcc,0x27,0xce,0x86,0xd0,0xa1,0xd1,0xb,0xcf,0x81,0xc9, +0x99,0xc4,0x22,0xc2,0x3f,0xc2,0x24,0xc6,0x48,0xce,0xbf,0xd8, +0x7c,0xe3,0x45,0xed,0x31,0xf4,0xaa,0xf7,0xc7,0xfa,0xb3,0xff, +0xca,0x4,0xeb,0x8,0x68,0xc,0xfe,0xd,0x56,0xc,0x4b,0x9, +0xf8,0x7,0x0,0x8,0xbe,0x7,0x80,0x8,0xe1,0xa,0x2f,0xd, +0x80,0xf,0x46,0x13,0xc0,0x18,0x84,0x1e,0xbe,0x22,0xd,0x25, +0xd5,0x24,0xeb,0x20,0xba,0x1a,0x8c,0x14,0x46,0xf,0xce,0xb, +0x8,0xb,0xe1,0xc,0xc4,0xf,0x30,0x12,0x8a,0x14,0xb0,0x16, +0x24,0x18,0xe,0x1a,0x15,0x1c,0x39,0x1c,0x7d,0x1a,0xdf,0x18, +0xd5,0x18,0x51,0x19,0x3d,0x19,0xf3,0x19,0x67,0x1b,0x96,0x1b, +0x3,0x1a,0x74,0x17,0x3e,0x15,0x20,0x14,0x2c,0x14,0x6d,0x16, +0x48,0x1a,0xc5,0x1d,0x55,0x21,0x7b,0x24,0xc0,0x24,0x5c,0x22, +0x5c,0x1f,0xa2,0x1c,0x32,0x1a,0x7a,0x18,0x72,0x17,0x8d,0x15, +0x45,0x13,0x6d,0x13,0x5f,0x15,0xf3,0x15,0x9b,0x14,0x9b,0x12, +0x9b,0x10,0x3f,0xe,0x72,0xb,0xa0,0x8,0x5b,0x5,0xbc,0x1, +0x46,0xff,0x13,0xfe,0xe2,0xfb,0x79,0xf6,0x98,0xed,0xc2,0xe2, +0x66,0xd8,0xec,0xd0,0x37,0xcc,0x67,0xc8,0x2c,0xc5,0xc1,0xc2, +0x80,0xc0,0xf2,0xbd,0x95,0xbb,0x78,0xba,0xf0,0xb8,0x6d,0xb4, +0x8f,0xaf,0xa8,0xac,0x6a,0xa8,0x66,0xa1,0x24,0x9b,0x70,0x99, +0x33,0x9d,0x68,0xa3,0x64,0xa8,0x8f,0xab,0x74,0xae,0x68,0xb2, +0x5f,0xb7,0x97,0xbd,0x67,0xc6,0x3e,0xd1,0xe1,0xda,0xc4,0xe0, +0x9f,0xe4,0x49,0xea,0xa8,0xf0,0x9d,0xf4,0xd2,0xf8,0xc2,0x0, +0x64,0xa,0x56,0x11,0x7d,0x13,0x3c,0x14,0x16,0x19,0xf0,0x21, +0xce,0x2a,0x1d,0x32,0x47,0x37,0x77,0x38,0x22,0x35,0x72,0x2f, +0xcb,0x2b,0xbe,0x2e,0x70,0x36,0x9c,0x3b,0xe,0x3d,0xb3,0x3e, +0x19,0x40,0x92,0x3f,0xcc,0x3e,0x32,0x40,0x47,0x44,0x8d,0x47, +0x62,0x46,0x8d,0x42,0xf1,0x3e,0x3,0x3c,0x93,0x3a,0x5a,0x3b, +0x7f,0x3d,0x8b,0x3f,0x49,0x3f,0x63,0x3a,0x7c,0x32,0x1e,0x2d, +0x45,0x2c,0x8d,0x2d,0x9f,0x2f,0xb7,0x30,0xac,0x2e,0xc7,0x29, +0xd9,0x22,0x8f,0x1c,0xbe,0x19,0x83,0x17,0x4d,0x14,0x43,0x13, +0xa3,0x12,0x9c,0xe,0x69,0x9,0x97,0x6,0xe,0x7,0xf6,0x9, +0xe6,0xb,0xde,0x9,0x51,0x5,0x40,0x0,0x25,0xfa,0xbd,0xf4, +0xdc,0xf3,0x61,0xf7,0xa,0xfc,0x8c,0xfe,0xa8,0xfd,0x62,0xfc, +0x77,0xfc,0x8b,0xfb,0xba,0xfa,0xcf,0xfd,0x8f,0x3,0x2a,0x7, +0x0,0x6,0xd5,0x2,0x39,0x3,0xbf,0x7,0xc6,0xb,0x8b,0xd, +0x5c,0xf,0x27,0x12,0x7d,0x14,0xab,0x14,0x46,0x12,0x4a,0x10, +0x62,0x11,0x1f,0x12,0x6,0xf,0x93,0xa,0x49,0x6,0xda,0xff, +0x92,0xf7,0xf3,0xf1,0x5,0xf3,0xc3,0xf9,0x75,0x0,0xf3,0x2, +0x19,0x2,0xb1,0xff,0x8c,0xfb,0xa1,0xf5,0x19,0xee,0xa9,0xe4, +0x6f,0xda,0x24,0xd0,0xaa,0xc5,0x7f,0xbe,0xe8,0xbd,0x67,0xc1, +0x26,0xc6,0x25,0xcc,0x3b,0xd3,0x19,0xda,0x21,0xde,0x79,0xdd, +0x44,0xd9,0x2d,0xd4,0x22,0xd1,0xe,0xd1,0x2f,0xd1,0xe7,0xce, +0xae,0xca,0x16,0xc7,0xce,0xc6,0x48,0xca,0xba,0xcf,0x52,0xd5, +0xd9,0xda,0x80,0xe1,0xd8,0xe9,0x60,0xf3,0xb7,0xfc,0xe8,0x3, +0xa1,0x8,0x99,0xb,0xc9,0xc,0xdb,0xb,0x4e,0x7,0x3c,0xff, +0xfb,0xf8,0x98,0xf9,0x28,0x1,0xb6,0xc,0x72,0x18,0xe2,0x22, +0x95,0x2c,0x42,0x34,0x74,0x38,0xb6,0x39,0x3f,0x38,0x6b,0x33, +0xb0,0x2b,0xfb,0x22,0x2c,0x1b,0xbe,0x15,0xc7,0x13,0x51,0x14, +0xdd,0x15,0x61,0x18,0x84,0x1a,0xef,0x19,0x9,0x17,0x4f,0x14, +0x8a,0x13,0x8e,0x14,0x2f,0x16,0x9e,0x17,0x78,0x17,0x34,0x14, +0x3b,0xe,0x2c,0x7,0xbc,0x0,0x35,0xfc,0x46,0xf9,0xe5,0xf6, +0x5b,0xf5,0xcd,0xf5,0x44,0xf8,0x7a,0xfb,0x9d,0xfe,0x3,0x2, +0x9f,0x5,0xad,0x7,0x71,0x6,0x87,0x2,0xe8,0xfd,0xeb,0xf9, +0xfb,0xf6,0x21,0xf5,0xea,0xf4,0x69,0xf6,0xab,0xf8,0x84,0xfb, +0x78,0xfe,0x98,0x0,0x25,0x3,0x95,0x6,0x31,0x9,0x54,0xb, +0x26,0xe,0x50,0x11,0x6e,0x14,0xe3,0x16,0x93,0x18,0xda,0x19, +0xf0,0x19,0x76,0x18,0xfe,0x15,0xc5,0x12,0x50,0xf,0x53,0xc, +0x6b,0xa,0xbb,0x9,0x60,0x9,0x28,0x9,0x23,0x9,0x7f,0x8, +0x4a,0x7,0x37,0x5,0xda,0x0,0x4b,0xfb,0x56,0xf7,0xf7,0xf4, +0x3c,0xf1,0x35,0xea,0x9d,0xe1,0x52,0xda,0x33,0xd4,0x18,0xcd, +0xe5,0xc4,0x8b,0xbd,0x9f,0xb7,0xed,0xb2,0x83,0xb0,0xda,0xb0, +0x61,0xb3,0x39,0xb7,0x5d,0xba,0x9f,0xbb,0x73,0xbb,0x4d,0xb9, +0xa7,0xb4,0xe3,0xae,0x8b,0xaa,0xf0,0xa9,0x81,0xac,0xd2,0xaf, +0x47,0xb4,0xdf,0xbb,0x34,0xc6,0xe5,0xd1,0xa8,0xde,0x7c,0xeb, +0x63,0xf6,0x65,0xfe,0x2c,0x3,0x88,0x5,0x77,0x8,0x90,0xc, +0x1b,0xf,0xb1,0xf,0xd6,0xf,0x31,0x10,0x44,0x11,0x81,0x12, +0xa7,0x13,0x8d,0x16,0x66,0x1b,0x74,0x20,0x8b,0x25,0xed,0x2a, +0x85,0x2f,0x47,0x32,0xa6,0x33,0xd8,0x34,0x1e,0x35,0x1c,0x32, +0x12,0x2c,0x25,0x26,0x5a,0x22,0xc8,0x20,0x6e,0x21,0xa,0x24, +0x76,0x27,0x53,0x2a,0x5,0x2c,0xc7,0x2d,0x8,0x31,0x8a,0x34, +0x71,0x36,0x28,0x37,0xc0,0x37,0x5e,0x38,0x71,0x38,0xe6,0x36, +0xbe,0x33,0xe6,0x30,0xe1,0x2f,0x3a,0x30,0xc,0x31,0x8c,0x31, +0x6a,0x30,0x96,0x2d,0x5b,0x2b,0x4b,0x2c,0xc4,0x30,0x9d,0x35, +0x1d,0x37,0x2d,0x36,0xee,0x35,0xec,0x35,0x67,0x33,0xdd,0x2d, +0x4e,0x28,0x4f,0x26,0x2,0x27,0xdf,0x25,0x9e,0x21,0xc0,0x1d, +0xa,0x1c,0x5b,0x1a,0x4d,0x18,0x5f,0x18,0x76,0x1b,0x3e,0x1f, +0xe5,0x1f,0x73,0x1d,0xaa,0x1d,0x7a,0x22,0x9e,0x26,0x63,0x27, +0xb4,0x26,0xa6,0x25,0xfd,0x22,0x9e,0x1b,0x3e,0xf,0x7e,0x3, +0xfc,0xfb,0x7d,0xf6,0xeb,0xf1,0xb,0xf0,0x2d,0xf1,0xc3,0xf3, +0x12,0xf6,0x76,0xf8,0x20,0xfe,0xaa,0x6,0x5d,0xa,0xc9,0x3, +0x79,0xf6,0xea,0xe7,0xf2,0xd9,0x87,0xcc,0x15,0xc0,0xff,0xb6, +0x73,0xb3,0x43,0xb3,0x81,0xb3,0xe1,0xb5,0x82,0xbc,0x29,0xc5, +0xf5,0xcc,0x42,0xd3,0xca,0xd7,0xbd,0xd9,0xa7,0xd7,0x9b,0xd0, +0xe4,0xc7,0xc8,0xc2,0x60,0xc1,0x9c,0xbf,0x94,0xbb,0xda,0xb6, +0x3c,0xb4,0x45,0xb5,0xc5,0xb9,0x64,0xc2,0x17,0xd0,0x33,0xe0, +0x9e,0xed,0xc3,0xf5,0x68,0xf9,0x34,0xfa,0xea,0xf8,0x41,0xf5, +0x3b,0xef,0x84,0xe8,0x1e,0xe3,0x35,0xdf,0xe1,0xdc,0x50,0xde, +0xb1,0xe5,0xba,0xf2,0x8f,0x2,0xd3,0x10,0x80,0x1a,0x79,0x1f, +0xc8,0x20,0xcf,0x1f,0xef,0x1d,0xa4,0x1b,0x63,0x19,0x43,0x17, +0xf,0x14,0xc5,0xf,0x4c,0xc,0xc3,0xa,0xcd,0xa,0xd8,0xb, +0x4d,0xe,0xb0,0x12,0x63,0x17,0x96,0x1a,0x3a,0x1d,0xdf,0x20, +0x70,0x25,0x4a,0x29,0xe6,0x29,0x8d,0x26,0x72,0x21,0x2b,0x1c, +0x72,0x16,0xef,0x10,0xcc,0xd,0x5a,0xe,0xaf,0x11,0x8b,0x15, +0x96,0x18,0xf9,0x1a,0xaf,0x1c,0x56,0x1d,0x77,0x1d,0xc0,0x1d, +0xf6,0x1d,0x3c,0x1d,0x25,0x1b,0xd8,0x18,0xe4,0x17,0xc,0x18, +0xc7,0x17,0xea,0x15,0x96,0x12,0xac,0xe,0x5f,0xa,0x99,0x5, +0x6,0x1,0x49,0xfe,0x40,0xff,0xa6,0x3,0x27,0x9,0x6b,0xe, +0xa3,0x12,0x6e,0x14,0x58,0x13,0x75,0x10,0x95,0xd,0x56,0xb, +0x32,0x8,0x3d,0x3,0x9a,0xfd,0xf3,0xf8,0x4e,0xf6,0x55,0xf5, +0xe6,0xf4,0x91,0xf4,0x9c,0xf4,0x63,0xf5,0x78,0xf6,0x2b,0xf7, +0x21,0xf8,0x13,0xfa,0xb1,0xfc,0x9e,0xff,0xff,0x1,0x3,0x2, +0x9f,0xfd,0x3,0xf4,0x75,0xe7,0xb0,0xdb,0x96,0xd2,0x71,0xcc, +0x15,0xc9,0x3c,0xc8,0xae,0xc9,0xd9,0xcc,0x63,0xd1,0x78,0xd7, +0xd6,0xdd,0x63,0xe1,0xdc,0xdf,0xd0,0xd9,0x22,0xd1,0x31,0xc7, +0x4d,0xbd,0x3,0xb5,0x86,0xaf,0x7c,0xad,0x4f,0xae,0x7a,0xb0, +0x36,0xb3,0xe7,0xb6,0x73,0xbc,0x7d,0xc4,0x84,0xce,0xf7,0xd8, +0x0,0xe2,0x4e,0xe8,0xae,0xeb,0x46,0xed,0xdb,0xee,0xb0,0xf0, +0xda,0xf0,0x24,0xee,0x55,0xea,0x53,0xe8,0x2b,0xe9,0x40,0xec, +0xd,0xf2,0x1d,0xfc,0x1b,0xa,0xaa,0x18,0xaf,0x23,0xd4,0x29, +0x94,0x2c,0x47,0x2d,0xda,0x2c,0x37,0x2c,0xf9,0x2a,0x8d,0x28, +0x25,0x26,0x7b,0x25,0xe3,0x26,0x57,0x29,0x91,0x2c,0xc5,0x31, +0xe9,0x38,0xc8,0x3f,0x1d,0x45,0x8e,0x49,0x94,0x4d,0xd0,0x50, +0x37,0x53,0x65,0x55,0x89,0x57,0x3c,0x58,0x55,0x55,0xbc,0x4e, +0x29,0x47,0x5a,0x41,0x2d,0x3e,0x82,0x3d,0xf8,0x3e,0x7b,0x41, +0xb7,0x43,0xe1,0x44,0x13,0x45,0xdb,0x45,0x9,0x48,0x99,0x48, +0xb0,0x44,0xd6,0x3d,0xdb,0x35,0xef,0x2c,0x24,0x24,0xb7,0x1c, +0x1e,0x18,0x4c,0x17,0xae,0x16,0x44,0x11,0x0,0x8,0x86,0x0, +0xe5,0xfd,0xbe,0xfd,0x43,0xfc,0x7c,0xf8,0xfb,0xf3,0x19,0xf0, +0x6,0xec,0x38,0xe7,0xa0,0xe3,0xc,0xe1,0x5c,0xdc,0xba,0xd5, +0x50,0xd0,0xe3,0xcd,0x5e,0xcd,0x50,0xcb,0x68,0xc7,0xbf,0xc6, +0xf7,0xcb,0x89,0xd3,0xa7,0xd8,0x29,0xd9,0xb8,0xd6,0x85,0xd4, +0xc2,0xd3,0x4e,0xd4,0x8b,0xd6,0x31,0xda,0xcb,0xdc,0x28,0xdc, +0x4d,0xda,0x55,0xdb,0x6c,0xe0,0xa1,0xe7,0xf7,0xed,0xa,0xf2, +0xa6,0xf5,0x81,0xfa,0xf6,0xff,0x18,0x5,0x85,0x9,0xec,0xc, +0xe7,0xe,0xca,0xe,0x7,0xc,0x25,0x6,0x47,0xfe,0x4f,0xf8, +0xd0,0xf6,0x48,0xf9,0xae,0xfe,0x57,0x5,0x9d,0xb,0x3c,0x11, +0x19,0x16,0x87,0x1a,0xd8,0x1d,0x41,0x1c,0xd5,0x13,0xba,0x7, +0xdd,0xfb,0xd9,0xf1,0x7d,0xe9,0x22,0xe3,0xa0,0xe0,0xdf,0xe2, +0xe9,0xe8,0x98,0xf0,0xa9,0xf7,0x76,0xfd,0xa0,0x1,0x2d,0x3, +0x83,0x2,0xf5,0x0,0x77,0xff,0x54,0xfd,0xe6,0xf7,0xb2,0xef, +0x74,0xe9,0x86,0xe7,0x9d,0xe8,0x20,0xeb,0x4f,0xee,0x61,0xf2, +0xe9,0xf7,0x5a,0xff,0xb5,0x8,0x9f,0x12,0x39,0x1b,0x11,0x21, +0x80,0x23,0x80,0x23,0xf3,0x21,0x1,0x1e,0xe0,0x16,0x67,0xe, +0x42,0x9,0x1e,0xa,0x5f,0xe,0x22,0x13,0xb7,0x18,0xb9,0x1f, +0x7e,0x27,0xfd,0x2e,0x78,0x35,0x44,0x3a,0x8e,0x3b,0xb9,0x37, +0x12,0x30,0x95,0x27,0xf1,0x1f,0x47,0x19,0x64,0x13,0x65,0xe, +0x3e,0xb,0x59,0xa,0xf9,0x9,0x1,0x9,0xcf,0x8,0x35,0xa, +0x30,0xc,0x35,0xd,0x30,0xc,0xee,0x8,0x18,0x3,0xe4,0xfa, +0x42,0xf2,0x73,0xea,0xb8,0xe3,0xc8,0xde,0x2a,0xdb,0xc6,0xd7, +0xe1,0xd4,0x90,0xd3,0xe0,0xd4,0x90,0xd8,0x9c,0xdc,0x6,0xdf, +0x7f,0xde,0xf7,0xda,0xe,0xd6,0x9f,0xd1,0xc5,0xce,0x87,0xcd, +0x4d,0xcd,0xfa,0xcd,0x97,0xcf,0x6c,0xd2,0xa0,0xd6,0xd4,0xda, +0x7,0xde,0xfe,0xe0,0x2b,0xe4,0x55,0xe7,0x54,0xea,0xf8,0xec, +0x53,0xef,0x2,0xf2,0x81,0xf6,0xa5,0xfd,0x78,0x5,0x80,0xb, +0x14,0xf,0x76,0x10,0xee,0x10,0x27,0x12,0x8,0x14,0x14,0x15, +0x58,0x14,0x96,0x12,0x83,0x11,0xca,0x11,0xbc,0x12,0x55,0x13, +0x1f,0x13,0x88,0x12,0xf8,0x11,0x23,0x11,0x94,0xf,0xf6,0xc, +0x67,0x9,0xad,0x5,0x3b,0x2,0xb2,0xfe,0x20,0xfa,0xa5,0xf3, +0xf4,0xeb,0xe8,0xe4,0x33,0xdf,0xd0,0xda,0x17,0xd8,0x99,0xd6, +0xbb,0xd5,0xe5,0xd5,0xe9,0xd6,0xe2,0xd7,0xbe,0xd8,0xff,0xd8, +0x43,0xd7,0x8a,0xd3,0x29,0xcf,0xf5,0xca,0x5d,0xc7,0x65,0xc4, +0x7b,0xc1,0xaf,0xbf,0xa1,0xc1,0x25,0xc7,0x29,0xcd,0x7e,0xd2, +0x2e,0xd8,0x96,0xde,0x9,0xe5,0x77,0xea,0x6b,0xee,0xc7,0xf1, +0xfb,0xf4,0x29,0xf7,0xfe,0xf7,0x4b,0xf8,0xa2,0xf8,0xf0,0xf8, +0x93,0xf9,0xf3,0xfb,0x39,0x1,0x7c,0x8,0x47,0xf,0x9c,0x14, +0x38,0x1a,0x78,0x21,0x8a,0x28,0x82,0x2c,0xcc,0x2c,0x48,0x2b, +0xa8,0x29,0x63,0x27,0x55,0x23,0xef,0x1e,0xa,0x1d,0x50,0x1e, +0x46,0x21,0x96,0x24,0x21,0x28,0x53,0x2c,0x5e,0x30,0xb4,0x32, +0x85,0x33,0x5f,0x34,0x56,0x35,0xe9,0x34,0xb5,0x32,0x5c,0x30, +0x6e,0x2f,0x24,0x30,0x8d,0x31,0x62,0x32,0x8a,0x32,0x58,0x32, +0x6d,0x31,0x51,0x30,0xf2,0x2f,0xa4,0x2f,0x49,0x2e,0xd2,0x2b, +0xf7,0x29,0xa2,0x2a,0xda,0x2b,0xa9,0x29,0xae,0x24,0x7c,0x21, +0x4b,0x22,0x43,0x24,0x3,0x23,0x37,0x1d,0x67,0x15,0x8f,0xf, +0xf2,0xc,0xc6,0xa,0x90,0x6,0x71,0x0,0x1e,0xfa,0x4f,0xf6, +0x21,0xf6,0xb,0xf8,0xb,0xfa,0x92,0xfa,0xb0,0xfa,0x57,0xfd, +0x69,0x1,0xf1,0x2,0xd1,0x0,0x84,0xfc,0x39,0xf8,0x84,0xf5, +0x88,0xf4,0xf5,0xf4,0xdf,0xf6,0x10,0xfb,0xa2,0x1,0x4d,0x8, +0xff,0xc,0xad,0xf,0x6d,0x10,0xb7,0xe,0xf0,0x9,0xab,0x2, +0x79,0xfb,0xcf,0xf6,0xfc,0xf4,0x1,0xf5,0xdd,0xf6,0xe7,0xfb, +0xbb,0x3,0x44,0xb,0xb,0xf,0x1f,0xd,0xd0,0x6,0x21,0xff, +0xf6,0xf6,0xb9,0xed,0xa9,0xe3,0x74,0xda,0xeb,0xd4,0x38,0xd4, +0xac,0xd6,0x27,0xda,0x7d,0xdd,0x34,0xe0,0xb4,0xe1,0xab,0xe1, +0x1d,0xe1,0x45,0xe0,0x87,0xdd,0xec,0xd8,0x63,0xd5,0x2c,0xd5, +0x24,0xd6,0xed,0xd3,0x94,0xce,0xe1,0xc9,0xdd,0xc6,0x38,0xc4, +0x5c,0xc2,0x94,0xc3,0xdc,0xc9,0x39,0xd4,0x8d,0xde,0xe,0xe6, +0x25,0xec,0xf3,0xf2,0x26,0xf9,0x52,0xfb,0xd3,0xf7,0x28,0xf0, +0x84,0xe7,0xa2,0xe0,0xb0,0xdd,0x50,0xe0,0x77,0xe7,0xf5,0xf0, +0xec,0xfc,0x3b,0xb,0x2a,0x19,0xcc,0x23,0x43,0x29,0xe7,0x29, +0xb5,0x28,0xa4,0x27,0xcf,0x25,0xc6,0x21,0xf2,0x1b,0xea,0x16, +0x8a,0x14,0xee,0x13,0x14,0x14,0x30,0x15,0x17,0x17,0x38,0x19, +0x7d,0x1b,0x75,0x1e,0x7f,0x22,0xc0,0x26,0xde,0x29,0xa2,0x2a, +0x5b,0x28,0xbf,0x23,0xc0,0x1d,0x5a,0x16,0x11,0xe,0x8b,0x6, +0x85,0x1,0xbe,0xff,0xbf,0x0,0xfb,0x3,0xb4,0x8,0x32,0xd, +0x31,0x10,0xa1,0x11,0x73,0x11,0x3a,0xf,0xc8,0xa,0xf1,0x4, +0x14,0xff,0x72,0xfa,0x35,0xf8,0x37,0xf8,0x21,0xf9,0x5c,0xfa, +0xd5,0xfb,0xca,0xfc,0xf4,0xfb,0xec,0xf8,0xaf,0xf5,0x8d,0xf4, +0xab,0xf5,0xb6,0xf7,0x10,0xf9,0xa2,0xf9,0xd2,0xfa,0x9c,0xfc, +0x2d,0xfe,0xda,0xfe,0xb9,0xfd,0x9b,0xfb,0xae,0xf9,0xa6,0xf7, +0x75,0xf6,0xfb,0xf6,0x12,0xf8,0x5e,0xf9,0x1b,0xfb,0xb8,0xfc, +0x8c,0xfd,0xd6,0xfc,0xca,0xfa,0xa3,0xf8,0x69,0xf7,0xd7,0xf7, +0x8e,0xf9,0xa0,0xfb,0x1c,0xfe,0x79,0x0,0x6e,0x1,0x74,0x0, +0x55,0xfd,0x4c,0xf8,0x41,0xf2,0xff,0xeb,0x4e,0xe6,0x28,0xe2, +0x55,0xe0,0xec,0xe0,0xb3,0xe3,0x50,0xe8,0xa6,0xec,0xfe,0xed, +0xeb,0xeb,0x66,0xe7,0xd5,0xe1,0x37,0xdc,0xcc,0xd5,0xb3,0xce, +0xf5,0xc8,0x74,0xc5,0xec,0xc3,0xa7,0xc3,0xef,0xc3,0xd5,0xc5, +0x9f,0xc9,0x9a,0xcc,0x42,0xcd,0x2e,0xcd,0x2c,0xce,0x59,0xd0, +0x7e,0xd2,0x39,0xd4,0x4b,0xd6,0x27,0xd8,0x6a,0xd8,0x87,0xd7, +0x62,0xd7,0x35,0xd9,0x4d,0xdc,0xf,0xdf,0x46,0xe2,0x7b,0xe8, +0x9d,0xf1,0xe3,0xfa,0x21,0x2,0x9e,0x7,0x28,0xd,0x7a,0x12, +0xf4,0x14,0xfb,0x13,0x67,0x11,0xa5,0xf,0xd1,0x10,0x66,0x14, +0xde,0x18,0xe8,0x1e,0x46,0x26,0xad,0x2c,0x69,0x31,0x71,0x35, +0xe2,0x39,0xab,0x3e,0xc1,0x41,0x8d,0x42,0x0,0x43,0x63,0x43, +0xd0,0x42,0x57,0x42,0x5f,0x43,0xba,0x45,0xe8,0x47,0x82,0x47, +0x4b,0x44,0x9c,0x41,0x3d,0x41,0x4b,0x41,0x24,0x41,0x5f,0x42, +0xdc,0x44,0x11,0x46,0xea,0x43,0x9d,0x3f,0x10,0x3c,0x71,0x39, +0x26,0x36,0x2d,0x32,0xfa,0x2d,0x66,0x29,0x90,0x24,0xd3,0x1f, +0x7b,0x1c,0x81,0x1b,0x33,0x1a,0xff,0x14,0xc7,0xc,0x34,0x5, +0x4b,0x0,0x20,0xfd,0x26,0xf9,0xb,0xf4,0xcf,0xf0,0xcd,0xf0, +0x47,0xf1,0xc9,0xef,0x83,0xed,0xe,0xec,0xce,0xe9,0x28,0xe5, +0xde,0xdf,0x44,0xdc,0x81,0xda,0x50,0xd8,0xcb,0xd3,0x24,0xd0, +0xa6,0xd1,0x12,0xd6,0xe9,0xd8,0xdb,0xd9,0x99,0xda,0xd4,0xdb, +0xae,0xdc,0x57,0xdc,0x72,0xdc,0x16,0xde,0xc1,0xde,0xb0,0xdc, +0xee,0xd9,0x73,0xd8,0x65,0xd7,0x95,0xd5,0x98,0xd3,0x1b,0xd3, +0x9e,0xd5,0x29,0xda,0x73,0xdd,0x4,0xdf,0x33,0xe2,0x27,0xe8, +0xef,0xed,0xa3,0xf0,0x3b,0xf0,0x1e,0xef,0xa5,0xef,0xa4,0xf1, +0xec,0xf3,0xe4,0xf6,0xff,0xfa,0x93,0xff,0xa5,0x4,0x3b,0xa, +0xd5,0xe,0xe1,0x10,0x7f,0xf,0xe0,0xa,0x89,0x5,0xfd,0x1, +0xe5,0xff,0xb6,0xfe,0xf,0x0,0xd9,0x4,0x80,0xb,0xe1,0x11, +0x94,0x16,0xa4,0x19,0x4,0x1c,0x81,0x1c,0xdd,0x18,0x7d,0x11, +0x44,0x8,0x7d,0xff,0xcf,0xf9,0x6f,0xf7,0x38,0xf7,0xba,0xf9, +0xf9,0xfe,0x41,0x5,0x6f,0xb,0x5e,0x11,0xe8,0x16,0x3a,0x1b, +0x69,0x1d,0xc9,0x1d,0x48,0x1d,0xdf,0x1b,0xe6,0x18,0xc0,0x14, +0xfd,0x10,0x57,0xe,0x9d,0xc,0xab,0xb,0xf5,0xa,0x7c,0xa, +0xb1,0xb,0x64,0xf,0xe4,0x14,0x14,0x1b,0xd3,0x20,0xf2,0x24, +0x5e,0x26,0xf6,0x24,0x97,0x21,0xd3,0x1c,0xa5,0x16,0xc1,0xe, +0xa8,0x5,0xca,0xfd,0x9a,0xf9,0x24,0xf9,0x15,0xfb,0x50,0xfe, +0x9e,0x2,0x96,0x8,0xa9,0xf,0x27,0x15,0xc7,0x16,0xd1,0x14, +0x5b,0x10,0xf2,0x9,0x96,0x2,0x2a,0xfb,0xb6,0xf3,0xa9,0xec, +0x17,0xe7,0x7,0xe4,0x39,0xe4,0x39,0xe7,0x71,0xeb,0xb6,0xef, +0xc9,0xf3,0x67,0xf7,0xb4,0xf9,0xeb,0xf9,0x22,0xf8,0xfb,0xf4, +0xd9,0xf0,0x77,0xeb,0x5b,0xe5,0xae,0xe0,0x6f,0xde,0xa2,0xdd, +0xd8,0xdd,0x60,0xdf,0x62,0xe2,0xcb,0xe6,0x96,0xeb,0x91,0xef, +0x82,0xf2,0x97,0xf4,0xfd,0xf5,0x4b,0xf6,0xbc,0xf4,0x31,0xf2, +0x33,0xf0,0x89,0xee,0xcb,0xec,0xd7,0xeb,0x60,0xec,0x89,0xee, +0xc7,0xf1,0xc3,0xf4,0x6f,0xf7,0xd1,0xfa,0x88,0xfe,0x82,0x1, +0x44,0x3,0xc1,0x3,0xb5,0x3,0xa4,0x3,0x2f,0x3,0xae,0x2, +0xc7,0x2,0xfb,0x2,0xb7,0x2,0x92,0x2,0x79,0x3,0xe2,0x4, +0x78,0x5,0x35,0x5,0x86,0x4,0x6b,0x3,0x62,0x2,0x96,0x1, +0xb4,0x0,0x13,0x0,0x24,0x0,0xf3,0x0,0x20,0x2,0x25,0x3, +0x36,0x4,0x5f,0x5,0xf6,0x5,0xcc,0x5,0x94,0x4,0x84,0x1, +0x26,0xfd,0xa,0xf9,0xc4,0xf5,0x48,0xf3,0xfd,0xf1,0xa,0xf2, +0x44,0xf3,0xf9,0xf5,0xe1,0xf9,0x9b,0xfd,0x5f,0x0,0xc6,0x1, +0x21,0x1,0x35,0xfe,0x8,0xf9,0x1f,0xf2,0xdb,0xea,0x52,0xe4, +0x2f,0xdf,0x13,0xdc,0x25,0xdb,0x2c,0xdc,0xaa,0xde,0x45,0xe2, +0x23,0xe7,0x67,0xec,0x1b,0xf0,0x88,0xf1,0x22,0xf1,0x20,0xef, +0xa8,0xeb,0x2d,0xe7,0x75,0xe2,0x97,0xde,0x51,0xdc,0xad,0xdb, +0x94,0xdc,0xcb,0xde,0xf0,0xe1,0x8,0xe6,0xed,0xea,0xe1,0xef, +0xa4,0xf4,0x3e,0xf9,0xf,0xfd,0x71,0xff,0x30,0x0,0x6a,0xff, +0xcb,0xfd,0x95,0xfc,0xcc,0xfc,0x16,0xfe,0x78,0xff,0x31,0x1, +0x25,0x4,0xb0,0x8,0x60,0xe,0xe8,0x13,0xe5,0x18,0x5d,0x1e, +0xd3,0x23,0x2a,0x27,0xd7,0x27,0x3f,0x27,0xdf,0x26,0x3,0x27, +0x1f,0x27,0x97,0x27,0x3c,0x29,0x78,0x2b,0xa1,0x2d,0x26,0x30, +0xb1,0x32,0x4b,0x34,0x3d,0x35,0x70,0x36,0xe2,0x37,0x74,0x38, +0x26,0x37,0x92,0x34,0x32,0x32,0xf7,0x30,0xe9,0x30,0xe8,0x30, +0xc4,0x2f,0xa9,0x2d,0x6f,0x2b,0xb9,0x29,0x7b,0x28,0xf6,0x26, +0x2d,0x25,0x55,0x23,0x3f,0x20,0x29,0x1b,0xf1,0x14,0x87,0xe, +0xb4,0x8,0x6d,0x4,0xe1,0x1,0xd1,0xff,0x7e,0xfc,0xdb,0xf7, +0xe0,0xf3,0xd3,0xf1,0xe4,0xf0,0x94,0xef,0x62,0xec,0xd0,0xe6, +0x3b,0xe1,0x9e,0xdd,0x5,0xda,0x40,0xd5,0x8c,0xd1,0x62,0xd0, +0x88,0xd1,0xdb,0xd3,0x63,0xd5,0x26,0xd6,0x90,0xd7,0xc8,0xd9, +0x9a,0xdc,0x26,0xdf,0xe,0xe0,0xd2,0xdf,0x87,0xdf,0x74,0xdf, +0xf1,0xdf,0x4,0xe1,0xf4,0xe2,0x48,0xe6,0xfe,0xe9,0xdd,0xec, +0x55,0xef,0x78,0xf2,0x25,0xf7,0x75,0xfd,0xfa,0x3,0xdb,0x8, +0x92,0xb,0x10,0xd,0xdb,0xe,0xf8,0x11,0xe6,0x15,0x55,0x19, +0xba,0x1b,0x6c,0x1d,0xcf,0x1e,0x97,0x1f,0xc0,0x1e,0x2d,0x1c, +0x42,0x19,0x58,0x17,0x5d,0x16,0xb7,0x14,0x99,0x11,0xe6,0xe, +0x95,0xe,0x64,0x10,0x99,0x12,0xa9,0x13,0xca,0x13,0x27,0x13, +0x88,0xf,0xf2,0x7,0xce,0xfe,0x6d,0xf6,0x82,0xef,0xc3,0xe9, +0x75,0xe4,0x50,0xe0,0x1f,0xdf,0x38,0xe1,0x79,0xe5,0x94,0xea, +0x68,0xef,0xa,0xf3,0xe0,0xf4,0x4,0xf5,0x8c,0xf4,0xc3,0xf3, +0x67,0xf1,0xd6,0xed,0xb8,0xeb,0xfd,0xeb,0xfc,0xec,0x42,0xed, +0xfe,0xec,0x5,0xee,0x14,0xf2,0x50,0xf8,0x30,0xfe,0x93,0x2, +0x89,0x6,0x5e,0xb,0xbd,0x10,0x5b,0x15,0x73,0x18,0x8b,0x19, +0x3b,0x18,0x1f,0x15,0xe4,0x11,0x81,0xf,0x7e,0xd,0xa5,0xb, +0xf1,0xa,0xac,0xc,0x64,0x11,0x6,0x18,0x5d,0x1e,0x29,0x23, +0x75,0x26,0x1,0x28,0x0,0x27,0x76,0x23,0x80,0x1e,0xd7,0x18, +0x36,0x12,0xac,0xa,0x5a,0x3,0xd0,0xfd,0xf8,0xfa,0x32,0xfa, +0x24,0xfa,0xaf,0xfa,0x3b,0xfc,0xe6,0xfd,0x6a,0xfe,0x3e,0xfd, +0x7a,0xfa,0x1f,0xf7,0xde,0xf3,0xdd,0xef,0xa2,0xea,0x8,0xe5, +0xdd,0xdf,0xcb,0xdb,0x23,0xd9,0x92,0xd7,0xc,0xd7,0xb2,0xd7, +0x1a,0xd9,0xca,0xda,0x81,0xdc,0x1c,0xde,0xb1,0xdf,0x66,0xe1, +0x47,0xe3,0xfd,0xe4,0xee,0xe5,0xf0,0xe5,0xaa,0xe5,0x31,0xe6, +0xf4,0xe7,0x1e,0xea,0xd9,0xeb,0x9c,0xed,0x3e,0xf0,0x86,0xf3, +0xbc,0xf6,0xdc,0xf9,0x5f,0xfd,0xb9,0x1,0xfe,0x6,0x58,0xc, +0xc4,0x10,0x17,0x14,0xa3,0x16,0xce,0x18,0x98,0x1a,0x88,0x1b, +0x4a,0x1b,0x9d,0x19,0xa5,0x16,0x9f,0x13,0xb7,0x11,0x4d,0x11, +0x18,0x12,0xf7,0x12,0x4a,0x13,0xc8,0x13,0xb7,0x14,0x6d,0x15, +0x59,0x15,0x35,0x14,0x3e,0x12,0x4,0x10,0x58,0xd,0x9d,0x9, +0xf5,0x4,0xf5,0xff,0xf5,0xfa,0x6b,0xf6,0xd2,0xf2,0x4,0xf0, +0x81,0xed,0x42,0xeb,0x1b,0xea,0xfd,0xea,0xb5,0xed,0x11,0xf1, +0xec,0xf3,0xb2,0xf5,0x5b,0xf6,0xbf,0xf5,0x7d,0xf3,0x9b,0xef, +0x7f,0xea,0xed,0xe4,0xc8,0xdf,0x3c,0xdb,0xc6,0xd7,0xd9,0xd6, +0xd7,0xd8,0xaa,0xdc,0x53,0xe1,0x8c,0xe6,0x64,0xec,0x4e,0xf2, +0xeb,0xf6,0x55,0xf9,0x94,0xf9,0xf2,0xf7,0xb2,0xf4,0x52,0xf0, +0xd7,0xeb,0x5f,0xe8,0x40,0xe6,0x4b,0xe5,0xde,0xe5,0xcc,0xe8, +0xcd,0xed,0xc,0xf3,0x3e,0xf7,0xf1,0xfa,0xff,0xfe,0xfe,0x2, +0x62,0x5,0xf9,0x4,0x7f,0x2,0x8f,0xff,0x31,0xfc,0xf7,0xf7, +0x58,0xf4,0x2,0xf3,0xe3,0xf3,0x38,0xf6,0x92,0xf9,0xe8,0xfd, +0x86,0x3,0xbe,0x9,0xa0,0xe,0x87,0x11,0x13,0x14,0xef,0x16, +0x47,0x18,0xdd,0x16,0x1a,0x14,0x97,0x12,0x71,0x13,0xc8,0x14, +0x21,0x15,0x74,0x16,0xcc,0x19,0xe5,0x1c,0x81,0x1e,0x9b,0x1f, +0x76,0x21,0x32,0x24,0xc1,0x25,0x25,0x25,0x1b,0x25,0x52,0x27, +0x4e,0x29,0x8e,0x28,0xc,0x26,0x76,0x24,0x73,0x24,0xb,0x24, +0x74,0x21,0x85,0x1d,0x0,0x1b,0xc7,0x1a,0xbd,0x1a,0xbc,0x19, +0xec,0x18,0xea,0x18,0xeb,0x18,0xe5,0x17,0xc4,0x15,0xa5,0x13, +0xf8,0x11,0x6,0x10,0xc8,0xd,0xc8,0xb,0x9a,0x9,0x29,0x6, +0x41,0x1,0x2b,0xfc,0xad,0xf8,0x24,0xf7,0x9b,0xf5,0xf,0xf2, +0xd1,0xed,0xf8,0xeb,0x91,0xec,0x9,0xed,0x64,0xec,0xbd,0xeb, +0xb8,0xeb,0x57,0xeb,0x2f,0xe9,0xb7,0xe5,0xab,0xe2,0x29,0xe0, +0x64,0xdd,0xf7,0xda,0xce,0xd9,0xd2,0xd9,0x9d,0xda,0x23,0xdc, +0xc6,0xde,0x46,0xe2,0x69,0xe5,0xcf,0xe7,0xd,0xea,0x37,0xec, +0xd1,0xed,0x18,0xee,0xd4,0xec,0x19,0xeb,0x8,0xea,0xe8,0xe9, +0xf5,0xe9,0xd5,0xe8,0x2f,0xe7,0x38,0xe7,0x49,0xe9,0x6d,0xec, +0x29,0xf0,0x0,0xf4,0xb9,0xf7,0x2,0xfb,0xb,0xfd,0x11,0xfe, +0xd5,0xfe,0xf9,0xfe,0x6,0xfe,0x44,0xfc,0x37,0xfa,0x49,0xf8, +0x9a,0xf6,0xef,0xf5,0xc,0xf8,0x3d,0xfd,0xae,0x3,0x1a,0xa, +0x94,0x10,0x2a,0x17,0x70,0x1d,0x3f,0x22,0x26,0x24,0x5,0x23, +0xbc,0x1f,0xd6,0x1a,0xdd,0x14,0xa3,0xe,0x41,0x9,0x19,0x6, +0xb8,0x5,0xd,0x8,0xb2,0xd,0x9a,0x16,0xe6,0x20,0xfd,0x29, +0xe2,0x2f,0x49,0x32,0xb9,0x31,0x17,0x2e,0x5f,0x27,0xee,0x1d, +0x97,0x12,0xa5,0x7,0x15,0xff,0xb2,0xf9,0x9e,0xf8,0x14,0xfc, +0xac,0x2,0x20,0xb,0x45,0x14,0x6,0x1d,0x41,0x24,0xf,0x28, +0xdb,0x27,0xb8,0x24,0x11,0x1f,0x38,0x17,0xe3,0xd,0xd0,0x3, +0xd8,0xfa,0x73,0xf4,0x5b,0xf0,0xc7,0xee,0x84,0xf0,0x3d,0xf5, +0xd4,0xfb,0xb4,0x2,0x46,0x8,0x23,0xc,0x98,0xe,0x56,0xf, +0xb2,0xd,0x41,0x9,0x2,0x2,0xdb,0xf8,0x67,0xef,0x15,0xe7, +0x16,0xe1,0xdd,0xdd,0xae,0xdc,0x58,0xdd,0xcf,0xe0,0x33,0xe7, +0x1d,0xef,0xac,0xf6,0x99,0xfc,0x79,0x0,0x10,0x2,0x3d,0x1, +0xf1,0xfd,0xfc,0xf7,0x8,0xf0,0xb8,0xe7,0x8c,0xe0,0xcd,0xdb, +0xf2,0xd9,0x31,0xda,0xd0,0xdb,0xd1,0xde,0x95,0xe3,0x3f,0xea, +0xb8,0xf1,0xee,0xf7,0x59,0xfb,0x2,0xfc,0xe7,0xfa,0x8b,0xf8, +0x11,0xf5,0xde,0xf0,0x54,0xec,0x6f,0xe8,0x57,0xe6,0xd6,0xe5, +0x66,0xe6,0x40,0xe8,0x40,0xeb,0x42,0xef,0x5b,0xf4,0xc7,0xf9, +0x5e,0xfe,0x8e,0x1,0x2d,0x3,0x94,0x3,0x6c,0x3,0xe0,0x2, +0xba,0x1,0x14,0x0,0x59,0xfe,0x32,0xfd,0x9,0xfd,0x69,0xfd, +0x23,0xfe,0x1,0x0,0xb,0x3,0x3e,0x6,0x16,0x9,0x72,0xb, +0x48,0xd,0xf7,0xe,0x9d,0x10,0xf2,0x11,0xed,0x12,0xa1,0x13, +0xd,0x14,0x1f,0x14,0xd0,0x13,0x58,0x13,0xd4,0x12,0xfa,0x11, +0xa4,0x10,0x41,0xf,0x69,0xe,0x23,0xe,0xff,0xd,0x2,0xe, +0xc4,0xe,0x88,0x10,0xeb,0x12,0x6d,0x15,0x7e,0x17,0x91,0x18, +0x90,0x18,0x79,0x17,0x31,0x15,0x2b,0x12,0xae,0xe,0x8a,0xa, +0x4d,0x6,0xa6,0x2,0xe2,0xff,0x9f,0xfe,0xe9,0xfe,0x5e,0x0, +0x4f,0x3,0x4a,0x7,0xe0,0xa,0x80,0xd,0x69,0xf,0xd1,0x10, +0x15,0x11,0xe2,0xe,0x38,0xa,0x6c,0x4,0x82,0xfe,0x1d,0xf9, +0x59,0xf4,0x37,0xf0,0xad,0xed,0xa8,0xed,0xd0,0xef,0xe8,0xf2, +0xc3,0xf5,0x2,0xf8,0xac,0xf9,0x97,0xfa,0x75,0xfa,0xb8,0xf8, +0x28,0xf5,0x46,0xf0,0x79,0xea,0x23,0xe4,0xdc,0xdd,0x3c,0xd8, +0x19,0xd4,0xb,0xd2,0x40,0xd2,0x89,0xd4,0x78,0xd7,0x55,0xd9, +0x7,0xda,0xf1,0xda,0x79,0xdd,0xc3,0xe0,0x65,0xe2,0x6d,0xe2, +0x62,0xe2,0xf4,0xe1,0x6a,0xe0,0xed,0xdd,0x81,0xdb,0x83,0xdb, +0xd1,0xde,0x3f,0xe3,0x4b,0xe7,0xdf,0xeb,0x18,0xf2,0xd0,0xf9, +0xf3,0x1,0xbd,0x9,0x44,0x11,0x6d,0x18,0xc5,0x1d,0xb7,0x1f, +0xf9,0x1e,0xa3,0x1d,0x77,0x1c,0xa3,0x1b,0xdf,0x1b,0x3a,0x1d, +0x4c,0x1f,0xc6,0x21,0xa,0x24,0x6e,0x26,0x40,0x2a,0xf4,0x2e, +0x7d,0x32,0x3b,0x34,0xca,0x34,0x5c,0x34,0x77,0x32,0x7e,0x2e, +0x92,0x29,0xbe,0x26,0xa8,0x26,0x13,0x26,0xaf,0x22,0x15,0x1e, +0x61,0x1b,0xaf,0x1b,0x17,0x1d,0x71,0x1d,0x25,0x1d,0x7b,0x1d, +0xd8,0x1d,0xaa,0x1c,0xce,0x19,0x76,0x16,0x73,0x13,0xab,0x10, +0xc7,0xd,0x7b,0xa,0x69,0x6,0x32,0x1,0x52,0xfb,0xb8,0xf6, +0xde,0xf4,0xad,0xf4,0xf9,0xf3,0xa,0xf2,0xe8,0xef,0x18,0xef, +0x93,0xef,0xb9,0xef,0x44,0xef,0x68,0xef,0xd1,0xef,0x20,0xef, +0xdf,0xec,0x6a,0xe9,0x3f,0xe6,0xca,0xe4,0x1a,0xe4,0xfb,0xe2, +0xb,0xe2,0xd,0xe2,0x53,0xe3,0xd5,0xe5,0x4a,0xe9,0xb,0xee, +0xb4,0xf3,0x78,0xf8,0xd6,0xfb,0x3d,0xfe,0x32,0xff,0x7d,0xfe, +0xc1,0xfc,0xcf,0xfa,0x63,0xf9,0x79,0xf8,0x80,0xf7,0x5c,0xf6, +0xd2,0xf5,0x1c,0xf7,0x2d,0xfa,0x3,0xfe,0xad,0x2,0xd6,0x7, +0x65,0xb,0x27,0xc,0xe,0xb,0x75,0x9,0xf4,0x7,0x46,0x6, +0xed,0x3,0xd1,0x0,0x46,0xfd,0x8,0xfa,0xc3,0xf7,0xbb,0xf6, +0x4a,0xf7,0x8d,0xf9,0xeb,0xfc,0xed,0x0,0x5e,0x5,0x71,0x9, +0x8b,0xc,0x37,0xf,0xf2,0x11,0x39,0x14,0x0,0x15,0x29,0x13, +0xf7,0xe,0x35,0xa,0x99,0x5,0xa,0x1,0xd4,0xfd,0x63,0xfd, +0x0,0x0,0x4e,0x5,0x46,0xc,0xd6,0x13,0x48,0x1b,0xcd,0x21, +0x1d,0x27,0xf6,0x2a,0x0,0x2c,0xf2,0x28,0xd5,0x21,0x4b,0x18, +0x8,0xf,0x95,0x7,0xd5,0x1,0x5,0xfe,0x31,0xfd,0x4,0x0, +0xc2,0x5,0x92,0xc,0x2c,0x13,0x1b,0x19,0xe0,0x1d,0x3b,0x21, +0x94,0x22,0x86,0x20,0xdc,0x1a,0xfd,0x12,0x4a,0xa,0xdf,0x1, +0xbf,0xfa,0x56,0xf5,0xcc,0xf1,0xa,0xf0,0xc0,0xef,0x4b,0xf1, +0x7,0xf5,0xce,0xf9,0x2a,0xfe,0xae,0x1,0x24,0x4,0xec,0x4, +0x6a,0x3,0x89,0xff,0xe,0xfa,0xec,0xf3,0x7c,0xed,0x13,0xe7, +0x56,0xe1,0xec,0xdc,0x68,0xda,0xfa,0xd9,0xad,0xdb,0xc4,0xdf, +0xcf,0xe5,0x7e,0xec,0x8f,0xf2,0x1c,0xf7,0xe5,0xf9,0x31,0xfb, +0xe9,0xfa,0xd1,0xf8,0x17,0xf5,0x21,0xf0,0xdc,0xea,0x6b,0xe6, +0x34,0xe3,0x7c,0xe1,0xeb,0xe1,0xe6,0xe4,0x1c,0xea,0x89,0xf0, +0xec,0xf6,0x9a,0xfc,0x3e,0x1,0x54,0x4,0x6c,0x5,0xc1,0x4, +0x22,0x3,0xf2,0x0,0x21,0xfe,0x1f,0xfb,0x7f,0xf8,0xba,0xf6, +0xa0,0xf6,0x4e,0xf8,0x16,0xfb,0x8f,0xfe,0xf9,0x1,0xc1,0x4, +0x8b,0x7,0x8d,0xa,0xe,0xd,0xbe,0xe,0x68,0xf,0xd5,0xe, +0x7e,0xd,0xe6,0xb,0x19,0xa,0x14,0x8,0x21,0x6,0xb2,0x4, +0x5,0x4,0x35,0x4,0xe,0x5,0xf4,0x5,0xd6,0x6,0x2d,0x8, +0x6,0xa,0x9,0xc,0x74,0xd,0x97,0xd,0xde,0xc,0xbe,0xb, +0x30,0xa,0xe7,0x8,0x52,0x8,0xb9,0x7,0xc5,0x6,0x9d,0x5, +0x5b,0x4,0x5a,0x3,0xaa,0x2,0x13,0x2,0xd8,0x1,0x5b,0x2, +0xa8,0x3,0x88,0x5,0xa2,0x7,0x98,0x9,0x29,0xb,0x82,0xc, +0x3,0xe,0x24,0xf,0xcd,0xe,0xbc,0xc,0xc0,0x9,0xc9,0x6, +0x15,0x4,0x96,0x1,0xb4,0xff,0x2,0xff,0xcf,0xff,0xf8,0x1, +0xa7,0x4,0x1e,0x7,0x90,0x9,0x2e,0xc,0x4d,0xe,0x2c,0xf, +0xa3,0xe,0xc3,0xc,0xa0,0x9,0xc7,0x5,0x53,0x2,0xea,0xff, +0x15,0xfe,0xfe,0xfb,0x7f,0xf9,0x72,0xf7,0xbb,0xf6,0x13,0xf7, +0xdd,0xf7,0x2e,0xf9,0xe4,0xfa,0xfd,0xfb,0xa4,0xfb,0x20,0xfa, +0x1a,0xf8,0x6b,0xf5,0xac,0xf1,0x72,0xed,0xcc,0xe9,0xfd,0xe6, +0x89,0xe4,0x5a,0xe2,0xda,0xe0,0xb8,0xdf,0xaa,0xde,0xc0,0xde, +0x8c,0xe0,0xea,0xe2,0x97,0xe4,0x4f,0xe5,0xb8,0xe5,0x53,0xe6, +0xa0,0xe6,0x78,0xe6,0x98,0xe6,0x2e,0xe7,0xe8,0xe7,0x9d,0xe8, +0xdb,0xe8,0xa1,0xe8,0xe,0xe9,0xf7,0xea,0xd4,0xed,0xea,0xf0, +0x90,0xf4,0x59,0xf9,0xd2,0xfe,0xfb,0x3,0x7e,0x8,0x99,0xc, +0x0,0x10,0xe9,0x11,0xeb,0x12,0x91,0x14,0xaa,0x16,0xbb,0x17, +0x71,0x17,0xcb,0x16,0xe3,0x16,0xe2,0x17,0x17,0x19,0x42,0x1a, +0xbc,0x1b,0x6d,0x1d,0xe1,0x1e,0xea,0x1f,0x8d,0x20,0xdc,0x20, +0xc6,0x20,0xa0,0x1f,0x1c,0x1d,0x94,0x1a,0xe4,0x18,0xa1,0x16, +0x1b,0x13,0xb7,0xf,0x42,0xd,0x67,0xb,0xc6,0x9,0xaf,0x8, +0x33,0x9,0x8,0xb,0x35,0xc,0x4b,0xc,0x64,0xc,0x7f,0xc, +0xb9,0xb,0x9f,0x9,0xa9,0x6,0xd4,0x3,0x2d,0x1,0x21,0xfe, +0x35,0xfb,0x7c,0xf9,0xa,0xf9,0xd9,0xf8,0x55,0xf8,0x4c,0xf8, +0x45,0xf9,0x6e,0xfa,0x3,0xfb,0xfa,0xfa,0xb3,0xfa,0x85,0xfa, +0xbf,0xf9,0xa4,0xf7,0x74,0xf5,0xeb,0xf4,0xa1,0xf5,0xbb,0xf5, +0x61,0xf4,0xd7,0xf2,0x1,0xf3,0xd0,0xf4,0x7f,0xf6,0x13,0xf7, +0x22,0xf7,0xb9,0xf7,0xe9,0xf8,0xc1,0xf9,0x54,0xfa,0xfe,0xfa, +0x84,0xfa,0xae,0xf8,0x4c,0xf7,0xda,0xf6,0x4d,0xf6,0x31,0xf5, +0xe9,0xf3,0x63,0xf3,0x3e,0xf4,0xe9,0xf5,0x24,0xf7,0x47,0xf7, +0x15,0xf7,0x65,0xf7,0xdc,0xf7,0xfe,0xf7,0x95,0xf7,0x92,0xf6, +0x9b,0xf5,0x5,0xf5,0x2f,0xf4,0x48,0xf3,0x2e,0xf3,0xd6,0xf3, +0xb5,0xf4,0x94,0xf5,0x6e,0xf6,0x9b,0xf7,0x16,0xf9,0x41,0xfa, +0x74,0xfb,0x57,0xfd,0x82,0xff,0xac,0x1,0xad,0x3,0x12,0x5, +0x62,0x6,0x79,0x8,0x68,0xb,0x1,0xf,0x53,0x12,0x21,0x14, +0xb6,0x14,0xd9,0x14,0x84,0x14,0xd7,0x13,0xe,0x13,0x3e,0x12, +0xaf,0x11,0xab,0x11,0x9e,0x12,0xc,0x15,0x8c,0x18,0x4f,0x1c, +0xef,0x1f,0xe7,0x22,0x9b,0x24,0x86,0x24,0x25,0x22,0xa9,0x1d, +0x1e,0x18,0x6e,0x12,0xd2,0xc,0x9c,0x7,0xde,0x3,0x32,0x2, +0x40,0x2,0xbc,0x3,0x61,0x6,0xca,0x9,0x7a,0xd,0x71,0x10, +0x98,0x11,0x70,0x10,0x3d,0xd,0xd5,0x8,0xce,0x3,0x6a,0xfe, +0xe8,0xf8,0x7a,0xf3,0xd6,0xee,0xbb,0xeb,0x3d,0xea,0x78,0xea, +0x22,0xec,0x58,0xee,0xf6,0xf0,0xdc,0xf3,0x40,0xf6,0xb9,0xf7, +0x27,0xf8,0x7f,0xf7,0x20,0xf6,0x15,0xf4,0x22,0xf1,0x90,0xed, +0xf3,0xe9,0xe3,0xe6,0xdc,0xe4,0x31,0xe4,0x46,0xe5,0x27,0xe8, +0x2d,0xec,0xb3,0xf0,0x68,0xf5,0xc3,0xf9,0x30,0xfd,0xbc,0xff, +0x75,0x1,0xbf,0x1,0x52,0x0,0xc7,0xfd,0xc6,0xfa,0xe7,0xf7, +0xaf,0xf5,0x2f,0xf4,0x64,0xf3,0x83,0xf3,0xee,0xf4,0xba,0xf7, +0x39,0xfb,0xb0,0xfe,0xc9,0x1,0x36,0x4,0xd8,0x5,0xa3,0x6, +0x62,0x6,0x45,0x5,0xc2,0x3,0xe9,0x1,0xad,0xff,0x91,0xfd, +0xf9,0xfb,0xa4,0xfa,0x94,0xf9,0x14,0xf9,0x2f,0xf9,0x15,0xfa, +0x98,0xfb,0x3a,0xfd,0x19,0xff,0xf,0x1,0xa5,0x2,0xec,0x3, +0xac,0x4,0x8f,0x4,0xaf,0x3,0x4,0x2,0xb9,0xff,0x5f,0xfd, +0x5b,0xfb,0xf3,0xf9,0x65,0xf9,0xec,0xf9,0x9f,0xfb,0x15,0xfe, +0xbc,0x0,0x52,0x3,0xce,0x5,0x31,0x8,0x48,0xa,0xc0,0xb, +0x7a,0xc,0x99,0xc,0x5a,0xc,0xe4,0xb,0x31,0xb,0x5b,0xa, +0x95,0x9,0xd4,0x8,0x1e,0x8,0xbd,0x7,0xca,0x7,0x60,0x8, +0x81,0x9,0xc9,0xa,0x46,0xc,0x32,0xe,0x31,0x10,0xe9,0x11, +0xc,0x13,0x37,0x13,0x6f,0x12,0xdc,0x10,0x8c,0xe,0x85,0xb, +0x3,0x8,0x99,0x4,0xab,0x1,0x74,0xff,0x5d,0xfe,0x82,0xfe, +0xa9,0xff,0x8b,0x1,0xea,0x3,0x85,0x6,0xdf,0x8,0x71,0xa, +0xc3,0xa,0x96,0x9,0x62,0x7,0x75,0x4,0xb0,0x0,0x97,0xfc, +0xfa,0xf8,0x5e,0xf6,0xd5,0xf4,0x2a,0xf4,0x9e,0xf4,0x40,0xf6, +0x4d,0xf8,0x75,0xfa,0x3,0xfd,0x7,0x0,0xb9,0x2,0xc6,0x3, +0xe9,0x2,0xd7,0x0,0xf6,0xfd,0x86,0xfa,0xbe,0xf6,0xfd,0xf2, +0x46,0xf0,0x28,0xef,0x5c,0xef,0xd7,0xf0,0x71,0xf3,0x59,0xf6, +0x2,0xf9,0x7b,0xfb,0xb7,0xfd,0x34,0xff,0x62,0xff,0x57,0xfe, +0x87,0xfc,0x14,0xfa,0x28,0xf7,0x3c,0xf4,0xb6,0xf1,0xe4,0xef, +0xf7,0xee,0xe3,0xee,0x73,0xef,0x26,0xf0,0xa6,0xf0,0x62,0xf1, +0xb1,0xf2,0xff,0xf3,0xde,0xf4,0x85,0xf5,0xbf,0xf5,0x16,0xf5, +0xa0,0xf3,0xa9,0xf1,0xd2,0xef,0xf1,0xee,0xfe,0xee,0x79,0xef, +0x56,0xf0,0xaa,0xf1,0x91,0xf3,0xda,0xf5,0xcd,0xf7,0x34,0xf9, +0xc3,0xfa,0xc9,0xfc,0x8a,0xfe,0x7e,0xff,0xdb,0xff,0xdf,0xff, +0xef,0xff,0x6a,0x0,0xf2,0x0,0x7c,0x1,0x90,0x2,0xe5,0x3, +0xce,0x4,0x4a,0x5,0xa6,0x5,0x31,0x6,0xfa,0x6,0xa7,0x7, +0x15,0x8,0x9e,0x8,0x46,0x9,0xa9,0x9,0xee,0x9,0xa1,0xa, +0x91,0xb,0xef,0xb,0xae,0xb,0x7a,0xb,0x8a,0xb,0xa3,0xb, +0x56,0xb,0xb4,0xa,0xb9,0xa,0x5b,0xb,0x6c,0xb,0xe7,0xa, +0x67,0xa,0x6b,0xa,0x44,0xb,0xda,0xb,0x68,0xb,0x5,0xb, +0x1c,0xb,0x32,0xb,0x51,0xb,0x2c,0xb,0x55,0xa,0x25,0x9, +0xe7,0x7,0x95,0x6,0x6c,0x5,0x6d,0x4,0x74,0x3,0xd5,0x2, +0xcd,0x2,0x48,0x3,0xed,0x3,0xf,0x4,0xd6,0x3,0xd6,0x3, +0xca,0x3,0x5d,0x3,0x2e,0x2,0x18,0x0,0x33,0xfe,0x12,0xfd, +0x2f,0xfc,0x62,0xfb,0x94,0xfa,0x15,0xfa,0x8c,0xfa,0x73,0xfb, +0x24,0xfc,0xc6,0xfc,0x41,0xfd,0x5e,0xfd,0x37,0xfd,0xd2,0xfc, +0x26,0xfc,0x2c,0xfb,0xce,0xf9,0x1e,0xf8,0x7a,0xf6,0x50,0xf5, +0xb6,0xf4,0x63,0xf4,0x4f,0xf4,0xd9,0xf4,0xea,0xf5,0xfc,0xf6, +0xc1,0xf7,0x2c,0xf8,0x93,0xf8,0xfa,0xf8,0x9e,0xf8,0x8f,0xf7, +0x78,0xf6,0x5d,0xf5,0x57,0xf4,0x77,0xf3,0x9d,0xf2,0x67,0xf2, +0x35,0xf3,0x60,0xf4,0x59,0xf5,0x5d,0xf6,0xfe,0xf7,0xed,0xf9, +0x41,0xfb,0xdf,0xfb,0x55,0xfc,0x1b,0xfd,0x50,0xfe,0x9e,0xff, +0xb0,0x0,0xa4,0x1,0xe6,0x2,0x9c,0x4,0x66,0x6,0xc6,0x7, +0x6e,0x8,0x70,0x8,0x34,0x8,0xea,0x7,0x83,0x7,0x15,0x7, +0x0,0x7,0xa8,0x7,0x2e,0x9,0x7b,0xb,0x32,0xe,0x8a,0x10, +0x27,0x12,0x82,0x13,0x8b,0x14,0x51,0x14,0x6d,0x12,0x49,0xf, +0x89,0xb,0xee,0x7,0xb3,0x4,0x79,0x1,0xaf,0xfe,0x8d,0xfd, +0x66,0xfe,0x72,0x0,0xf8,0x2,0xdc,0x5,0x6,0x9,0xf1,0xb, +0xeb,0xd,0x3f,0xe,0xa0,0xc,0x92,0x9,0xaf,0x5,0x3a,0x1, +0xab,0xfc,0xa7,0xf8,0x71,0xf5,0x2f,0xf3,0x59,0xf2,0x31,0xf3, +0x4d,0xf5,0x19,0xf8,0x32,0xfb,0x43,0xfe,0xbf,0x0,0xfe,0x1, +0xd5,0x1,0x80,0x0,0x47,0xfe,0x6d,0xfb,0x16,0xf8,0xa3,0xf4, +0xbc,0xf1,0xaa,0xef,0x7d,0xee,0x72,0xee,0x9a,0xef,0xb4,0xf1, +0xa8,0xf4,0x78,0xf8,0x73,0xfc,0xc3,0xff,0x6e,0x2,0x63,0x4, +0x26,0x5,0xa5,0x4,0xa,0x3,0x8d,0x0,0x92,0xfd,0x70,0xfa, +0xa4,0xf7,0xcd,0xf5,0x38,0xf5,0xd9,0xf5,0xab,0xf7,0x89,0xfa, +0xf5,0xfd,0x82,0x1,0xa1,0x4,0x97,0x6,0x21,0x7,0x6d,0x6, +0xdf,0x4,0xbf,0x2,0xed,0xff,0xd1,0xfc,0x42,0xfa,0x74,0xf8, +0x73,0xf7,0x7e,0xf7,0x7b,0xf8,0xd5,0xf9,0x0,0xfb,0x10,0xfc, +0x4,0xfd,0x7e,0xfd,0xa7,0xfd,0xa9,0xfd,0x61,0xfd,0xb4,0xfc, +0x84,0xfb,0x35,0xfa,0x3c,0xf9,0x5b,0xf8,0x69,0xf7,0x90,0xf6, +0xe,0xf6,0x2a,0xf6,0xd4,0xf6,0xbd,0xf7,0xbc,0xf8,0xcf,0xf9, +0x0,0xfb,0x3e,0xfc,0x90,0xfd,0xdc,0xfe,0xba,0xff,0x2c,0x0, +0x90,0x0,0x13,0x1,0xb7,0x1,0x5d,0x2,0xeb,0x2,0x38,0x3, +0x40,0x3,0x50,0x3,0x82,0x3,0xb9,0x3,0xf2,0x3,0x5a,0x4, +0x36,0x5,0x46,0x6,0x20,0x7,0xfc,0x7,0x22,0x9,0x75,0xa, +0x8e,0xb,0x13,0xc,0x29,0xc,0xc6,0xb,0x7f,0xa,0x87,0x8, +0x7e,0x6,0xc6,0x4,0x63,0x3,0x3b,0x2,0x74,0x1,0x4d,0x1, +0xcd,0x1,0xcd,0x2,0x2,0x4,0x10,0x5,0xd9,0x5,0x95,0x6, +0x23,0x7,0xcb,0x6,0x4b,0x5,0x18,0x3,0x98,0x0,0xf7,0xfd, +0x49,0xfb,0xdd,0xf8,0x41,0xf7,0xa8,0xf6,0xdd,0xf6,0xb4,0xf7, +0x22,0xf9,0xfc,0xfa,0xec,0xfc,0xec,0xfe,0x26,0x1,0x1,0x3, +0x69,0x3,0x40,0x2,0x4f,0x0,0x14,0xfe,0xae,0xfb,0x32,0xf9, +0xdb,0xf6,0x64,0xf5,0x53,0xf5,0x5f,0xf6,0x50,0xf8,0xfa,0xfa, +0xcc,0xfd,0x57,0x0,0x5a,0x2,0xae,0x3,0x8d,0x4,0xcd,0x4, +0xc7,0x3,0xbd,0x1,0xaf,0xff,0xb7,0xfd,0x99,0xfb,0xbb,0xf9, +0x73,0xf8,0xf4,0xf7,0x65,0xf8,0x3f,0xf9,0xff,0xf9,0xcb,0xfa, +0xcf,0xfb,0xa,0xfd,0x39,0xfe,0xed,0xfe,0xe1,0xfe,0xf2,0xfd, +0x29,0xfc,0xb0,0xf9,0xae,0xf6,0x8a,0xf3,0xcb,0xf0,0xd5,0xee, +0xe9,0xed,0xbb,0xed,0xc9,0xed,0x50,0xee,0x9c,0xef,0x14,0xf1, +0x49,0xf2,0x7b,0xf3,0x8c,0xf4,0xfc,0xf4,0x78,0xf4,0x2f,0xf3, +0xe8,0xf1,0xfc,0xf0,0xeb,0xef,0xad,0xee,0x1e,0xee,0xb4,0xee, +0x95,0xef,0x4,0xf0,0xa0,0xf0,0xe5,0xf1,0xb6,0xf3,0xd7,0xf5, +0xa3,0xf7,0x15,0xf9,0xda,0xfa,0xa8,0xfc,0xaa,0xfd,0xdd,0xfd, +0x0,0xfe,0x7b,0xfe,0xc2,0xfe,0x54,0xfe,0x4d,0xfd,0xb9,0xfc, +0xdf,0xfd,0xa8,0xff,0x5a,0x0,0x1c,0x1,0x5e,0x3,0x4b,0x6, +0x8a,0x8,0x86,0x9,0xd7,0x9,0xac,0xa,0xbe,0xb,0xa4,0xb, +0x94,0xa,0xd,0xa,0xef,0x9,0x22,0x9,0xd6,0x7,0xf8,0x6, +0x47,0x7,0x61,0x8,0xca,0x8,0x76,0x8,0xd3,0x8,0x19,0xa, +0x5e,0xb,0xf,0xc,0x26,0xc,0xe1,0xb,0x78,0xb,0xa3,0xa, +0x24,0x9,0xb6,0x7,0xa3,0x6,0xd6,0x4,0x2a,0x2,0x15,0x0, +0xcb,0xff,0x13,0x1,0x1d,0x2,0x7c,0x1,0x95,0x0,0x8f,0x1, +0xd9,0x3,0x21,0x5,0x8a,0x4,0x30,0x3,0x31,0x2,0x93,0x1, +0xae,0x0,0xfd,0xfe,0xc9,0xfc,0xff,0xfa,0xfd,0xf9,0x5e,0xf9, +0x41,0xf9,0xdf,0xf9,0x8f,0xfa,0xe8,0xfa,0x4f,0xfb,0x7b,0xfc, +0x8c,0xfe,0xd0,0xff,0x0,0xff,0xb2,0xfd,0x58,0xfd,0x2e,0xfd, +0x37,0xfc,0x4a,0xfa,0x4,0xf8,0x7e,0xf6,0x8,0xf6,0xbf,0xf5, +0x50,0xf5,0x9e,0xf5,0x96,0xf6,0x47,0xf7,0xf8,0xf7,0x8,0xf9, +0x13,0xfa,0xc2,0xfa,0x64,0xfa,0x9,0xf9,0x55,0xf8,0x8f,0xf8, +0x2f,0xf8,0xdb,0xf6,0x94,0xf5,0x25,0xf5,0x9e,0xf5,0x66,0xf6, +0x1,0xf7,0xcf,0xf7,0x60,0xf9,0x62,0xfb,0x40,0xfd,0x4d,0xff, +0x10,0x2,0x13,0x5,0x58,0x7,0x7c,0x8,0x27,0x9,0xd9,0x9, +0x97,0x9,0xb2,0x7,0x5d,0x5,0xa5,0x3,0x73,0x2,0xa2,0x1, +0x4b,0x1,0x12,0x2,0x96,0x4,0x32,0x8,0xbe,0xb,0xd8,0xe, +0xb3,0x11,0xfc,0x13,0xad,0x14,0x59,0x13,0x71,0x10,0xa0,0xc, +0x81,0x8,0x20,0x4,0xaf,0xff,0x4d,0xfc,0x92,0xfa,0xe,0xfa, +0xbb,0xfa,0xfd,0xfc,0x84,0x0,0x63,0x4,0xa1,0x7,0xa8,0x9, +0xcb,0xa,0x51,0xb,0x50,0xa,0x57,0x7,0x42,0x3,0xf0,0xfe, +0xf2,0xfa,0x37,0xf7,0xb2,0xf3,0x7e,0xf1,0x2e,0xf1,0x18,0xf2, +0xf8,0xf3,0xd1,0xf6,0x57,0xfa,0x6,0xfe,0x1f,0x1,0xf6,0x2, +0x53,0x3,0x89,0x2,0xe7,0x0,0x25,0xfe,0x60,0xfa,0x77,0xf6, +0xd,0xf3,0x7b,0xf0,0x2d,0xef,0x33,0xef,0x6a,0xf0,0xf2,0xf2, +0x88,0xf6,0x98,0xfa,0xfb,0xfe,0x17,0x3,0xe9,0x5,0x48,0x7, +0x56,0x7,0x47,0x6,0x93,0x4,0xfc,0x1,0x54,0xfe,0x9a,0xfa, +0xee,0xf7,0xa6,0xf6,0x8e,0xf6,0x7b,0xf7,0x60,0xf9,0x23,0xfc, +0x9f,0xff,0x34,0x3,0x12,0x6,0xeb,0x7,0x6e,0x8,0x95,0x7, +0xea,0x5,0x9f,0x3,0xb,0x1,0x92,0xfe,0x2,0xfc,0xc2,0xf9, +0xe6,0xf8,0x55,0xf9,0x22,0xfa,0xe,0xfb,0x23,0xfc,0x20,0xfd, +0x31,0xfe,0x48,0xff,0xd5,0xff,0x0,0x0,0xe2,0xff,0x37,0xff, +0x7d,0xfe,0xf2,0xfd,0x34,0xfd,0x50,0xfc,0x63,0xfb,0x6d,0xfa, +0x9f,0xf9,0x36,0xf9,0x6c,0xf9,0x24,0xfa,0xe9,0xfa,0xb4,0xfb, +0xe2,0xfc,0x8f,0xfe,0x70,0x0,0x20,0x2,0x4c,0x3,0xf7,0x3, +0x8a,0x4,0x11,0x5,0x2a,0x5,0xc2,0x4,0xe,0x4,0x5f,0x3, +0x12,0x3,0x2c,0x3,0x62,0x3,0x73,0x3,0x65,0x3,0xa9,0x3, +0xb3,0x4,0x40,0x6,0xa6,0x7,0xc2,0x8,0xe0,0x9,0x27,0xb, +0x90,0xc,0x7b,0xd,0x1b,0xd,0xb6,0xb,0xe,0xa,0x3b,0x8, +0x3f,0x6,0x62,0x4,0xab,0x2,0x23,0x1,0x42,0x0,0x81,0x0, +0xcb,0x1,0x6e,0x3,0xdd,0x4,0x2d,0x6,0x70,0x7,0x58,0x8, +0x8c,0x8,0xa8,0x7,0xc5,0x5,0x84,0x3,0x22,0x1,0xb7,0xfe, +0xaa,0xfc,0x1b,0xfb,0x3,0xfa,0x99,0xf9,0x1f,0xfa,0xb3,0xfb, +0xf1,0xfd,0xf1,0xff,0x4c,0x1,0x4e,0x2,0x31,0x3,0xde,0x3, +0x22,0x4,0x9a,0x3,0x2e,0x2,0x4b,0x0,0x40,0xfe,0x4f,0xfc, +0xb7,0xfa,0x84,0xf9,0xc,0xf9,0x99,0xf9,0xf2,0xfa,0xc7,0xfc, +0x98,0xfe,0x52,0x0,0x2b,0x2,0x95,0x3,0x54,0x4,0xb8,0x4, +0x74,0x4,0x6a,0x3,0xe1,0x1,0xfb,0xff,0x2f,0xfe,0xd0,0xfc, +0xb1,0xfb,0xd0,0xfa,0x67,0xfa,0xae,0xfa,0x88,0xfb,0x80,0xfc, +0x4b,0xfd,0xd,0xfe,0xd7,0xfe,0x6f,0xff,0xa8,0xff,0x5f,0xff, +0x96,0xfe,0x78,0xfd,0xf5,0xfb,0x46,0xfa,0xb2,0xf8,0x14,0xf7, +0xc9,0xf5,0x18,0xf5,0xa5,0xf4,0x9d,0xf4,0x3d,0xf5,0x1b,0xf6, +0xd8,0xf6,0x81,0xf7,0x5c,0xf8,0x27,0xf9,0x6a,0xf9,0x44,0xf9, +0xea,0xf8,0x63,0xf8,0xa0,0xf7,0x8f,0xf6,0xb6,0xf5,0x73,0xf5, +0x70,0xf5,0x7c,0xf5,0x7a,0xf5,0x69,0xf5,0xe2,0xf5,0x37,0xf7, +0xdb,0xf8,0x22,0xfa,0x25,0xfb,0x50,0xfc,0x88,0xfd,0x8c,0xfe, +0x48,0xff,0xa5,0xff,0xa7,0xff,0x69,0xff,0x46,0xff,0x8f,0xff, +0xbd,0xff,0x5d,0xff,0xef,0xfe,0x21,0xff,0xfd,0xff,0xf7,0x0, +0xe5,0x1,0xfb,0x2,0x3b,0x4,0xa3,0x5,0xb4,0x6,0x14,0x7, +0x6a,0x7,0xdd,0x7,0xd9,0x7,0x3a,0x7,0x34,0x6,0x3a,0x5, +0x70,0x4,0x80,0x3,0x9f,0x2,0x6f,0x2,0xf9,0x2,0x84,0x3, +0xe3,0x3,0xa4,0x4,0xc4,0x5,0xc3,0x6,0x73,0x7,0xca,0x7, +0xb2,0x7,0x1b,0x7,0x1e,0x6,0xdd,0x4,0x70,0x3,0x22,0x2, +0x9,0x1,0xdc,0xff,0xdc,0xfe,0xc3,0xfe,0x88,0xff,0x77,0x0, +0x41,0x1,0xeb,0x1,0xad,0x2,0xf1,0x3,0xf,0x5,0xe3,0x4, +0xcc,0x3,0xde,0x2,0x37,0x2,0x59,0x1,0x2c,0x0,0x29,0xff, +0x98,0xfe,0x6e,0xfe,0xb8,0xfe,0x60,0xff,0x2b,0x0,0xa,0x1, +0xca,0x1,0x2c,0x2,0x82,0x2,0xfc,0x2,0x15,0x3,0x9c,0x2, +0xe4,0x1,0x13,0x1,0x68,0x0,0xf7,0xff,0x62,0xff,0xd6,0xfe, +0xae,0xfe,0xa6,0xfe,0x9b,0xfe,0x7d,0xfe,0x15,0xfe,0xc3,0xfd, +0xba,0xfd,0x84,0xfd,0x1a,0xfd,0xde,0xfc,0xd7,0xfc,0xb3,0xfc, +0x40,0xfc,0xda,0xfb,0x3,0xfc,0x5b,0xfc,0xcc,0xfb,0x77,0xfa, +0xaf,0xf9,0x87,0xf9,0x32,0xf9,0x81,0xf8,0x8a,0xf7,0xe8,0xf6, +0x2e,0xf7,0xdf,0xf7,0x7f,0xf8,0x29,0xf9,0x4,0xfa,0xf3,0xfa, +0xbf,0xfb,0x7c,0xfc,0x1a,0xfd,0x61,0xfd,0x3d,0xfd,0xd3,0xfc, +0xbe,0xfc,0x29,0xfd,0x89,0xfd,0xd0,0xfd,0x58,0xfe,0x6d,0xff, +0x14,0x1,0xd5,0x2,0x65,0x4,0x26,0x6,0x9b,0x8,0xb2,0xb, +0xa3,0xe,0x9f,0x10,0xc5,0x11,0xb4,0x12,0x36,0x13,0xaf,0x12, +0x39,0x11,0x59,0xf,0x9a,0xd,0x25,0xc,0xe2,0xa,0x89,0xa, +0x89,0xb,0x42,0xd,0x66,0xf,0xbe,0x11,0xf0,0x13,0xfc,0x15, +0x24,0x17,0x34,0x16,0x6e,0x13,0xdf,0xf,0xd5,0xb,0x2e,0x7, +0x1e,0x2,0x58,0xfd,0xb6,0xf9,0xc4,0xf7,0x54,0xf7,0xd4,0xf7, +0x38,0xf9,0x7f,0xfb,0x3,0xfe,0x1a,0x0,0x5a,0x1,0xac,0x1, +0xc,0x1,0x1,0xff,0xbb,0xfb,0x47,0xf8,0x18,0xf5,0xf1,0xf1, +0xbf,0xee,0x2a,0xec,0x15,0xeb,0xb7,0xeb,0x9e,0xed,0xd6,0xef, +0xf0,0xf1,0x9b,0xf4,0xc7,0xf7,0x43,0xfa,0x82,0xfb,0xd9,0xfb, +0x72,0xfb,0x40,0xfa,0x95,0xf8,0x9c,0xf6,0x95,0xf4,0x40,0xf3, +0x8e,0xf2,0x3b,0xf2,0x1,0xf3,0x12,0xf5,0xc6,0xf7,0xc4,0xfa, +0xca,0xfd,0xaf,0x0,0x7c,0x3,0x92,0x5,0x34,0x6,0xf0,0x5, +0x6a,0x5,0x50,0x4,0xb5,0x2,0xfd,0x0,0x50,0xff,0x13,0xfe, +0x83,0xfd,0x79,0xfd,0x9,0xfe,0x78,0xff,0x65,0x1,0x11,0x3, +0x61,0x4,0x79,0x5,0x2b,0x6,0x46,0x6,0x7b,0x5,0xd7,0x3, +0xf6,0x1,0x3d,0x0,0xc4,0xfe,0x64,0xfd,0x20,0xfc,0x87,0xfb, +0xad,0xfb,0xf9,0xfb,0x5a,0xfc,0xf5,0xfc,0x78,0xfd,0xb6,0xfd, +0xd3,0xfd,0xc8,0xfd,0x92,0xfd,0x2e,0xfd,0x8b,0xfc,0x5,0xfc, +0xf4,0xfb,0x2,0xfc,0xc4,0xfb,0x7f,0xfb,0x9f,0xfb,0x1c,0xfc, +0xd9,0xfc,0x77,0xfd,0xb2,0xfd,0x44,0xfe,0xa7,0xff,0x21,0x1, +0x11,0x2,0xa8,0x2,0x50,0x3,0xf,0x4,0xb7,0x4,0x40,0x5, +0x98,0x5,0xbb,0x5,0xdb,0x5,0x2e,0x6,0xbb,0x6,0x3f,0x7, +0x8b,0x7,0xbf,0x7,0x2,0x8,0x51,0x8,0xb4,0x8,0x16,0x9, +0x2e,0x9,0x46,0x9,0xaf,0x9,0x1,0xa,0x23,0xa,0x17,0xa, +0xa9,0x9,0x1d,0x9,0x87,0x8,0xc1,0x7,0xbf,0x6,0x66,0x5, +0xfb,0x3,0xba,0x2,0xad,0x1,0x27,0x1,0x12,0x1,0x13,0x1, +0xa,0x1,0x11,0x1,0x59,0x1,0xa4,0x1,0x68,0x1,0x6b,0x0, +0x0,0xff,0x9b,0xfd,0x3a,0xfc,0xbf,0xfa,0x1e,0xf9,0x75,0xf7, +0x74,0xf6,0x61,0xf6,0xcd,0xf6,0x8f,0xf7,0x89,0xf8,0x6a,0xf9, +0x45,0xfa,0x63,0xfb,0x8f,0xfc,0x36,0xfd,0x18,0xfd,0x87,0xfc, +0xd8,0xfb,0x20,0xfb,0x49,0xfa,0x33,0xf9,0x27,0xf8,0xc0,0xf7, +0x1c,0xf8,0x22,0xf9,0x94,0xfa,0xe8,0xfb,0x36,0xfd,0xbc,0xfe, +0x9,0x0,0xde,0x0,0x5f,0x1,0xb2,0x1,0xb7,0x1,0x36,0x1, +0x52,0x0,0x54,0xff,0x8f,0xfe,0xf4,0xfd,0x49,0xfd,0x13,0xfd, +0x9e,0xfd,0x61,0xfe,0xde,0xfe,0xf0,0xfe,0x16,0xff,0xe2,0xff, +0xf3,0x0,0x84,0x1,0x5d,0x1,0x9,0x1,0xdb,0x0,0x79,0x0, +0x96,0xff,0x35,0xfe,0xc2,0xfc,0xac,0xfb,0xc9,0xfa,0x1b,0xfa, +0xe7,0xf9,0x10,0xfa,0x4d,0xfa,0xa4,0xfa,0x56,0xfb,0x66,0xfc, +0x64,0xfd,0xca,0xfd,0xa7,0xfd,0x8f,0xfd,0x84,0xfd,0x0,0xfd, +0x3,0xfc,0xc,0xfb,0x64,0xfa,0x10,0xfa,0x0,0xfa,0xf9,0xf9, +0xf2,0xf9,0x50,0xfa,0x2,0xfb,0x8d,0xfb,0xdd,0xfb,0x3f,0xfc, +0xf4,0xfc,0xaa,0xfd,0xe7,0xfd,0xee,0xfd,0x36,0xfe,0xa6,0xfe, +0xe8,0xfe,0xf2,0xfe,0xc9,0xfe,0x93,0xfe,0x83,0xfe,0x4c,0xfe, +0xf0,0xfd,0xec,0xfd,0xf9,0xfd,0xe8,0xfd,0x32,0xfe,0xe3,0xfe, +0xb1,0xff,0x7f,0x0,0x5a,0x1,0x2f,0x2,0xc1,0x2,0xe5,0x2, +0x99,0x2,0x25,0x2,0x94,0x1,0x9d,0x0,0x51,0xff,0xf,0xfe, +0x3c,0xfd,0xe6,0xfc,0xc7,0xfc,0xf0,0xfc,0x6d,0xfd,0x33,0xfe, +0x2a,0xff,0xde,0xff,0x5c,0x0,0xdb,0x0,0xc,0x1,0xd7,0x0, +0x26,0x0,0xdf,0xfe,0x8b,0xfd,0xa9,0xfc,0xf4,0xfb,0x41,0xfb, +0xf5,0xfa,0x27,0xfb,0xb3,0xfb,0xa4,0xfc,0x9f,0xfd,0xa1,0xfe, +0xb,0x0,0x2c,0x1,0x6f,0x1,0x5b,0x1,0x1f,0x1,0xb3,0x0, +0x33,0x0,0x91,0xff,0x55,0xff,0x91,0xff,0x3c,0xff,0xc7,0xfe, +0x7d,0xff,0xf7,0x0,0x4d,0x2,0xd1,0x2,0x87,0x2,0xd5,0x2, +0x54,0x4,0xb7,0x5,0xb4,0x5,0xb5,0x4,0x3f,0x4,0xbf,0x4, +0x49,0x5,0xa,0x5,0x3c,0x4,0xe0,0x3,0x24,0x4,0x61,0x4, +0x91,0x4,0xf1,0x4,0x20,0x5,0xcc,0x4,0xb2,0x4,0x56,0x5, +0xf0,0x5,0xb5,0x5,0x59,0x4,0xbc,0x2,0x79,0x2,0xd4,0x2, +0x15,0x2,0x7d,0x0,0xe,0xff,0xa4,0xfe,0x4e,0xff,0x6d,0xff, +0x45,0xfe,0x43,0xfd,0x1a,0xfd,0xed,0xfc,0x68,0xfc,0xce,0xfb, +0x50,0xfb,0xec,0xfa,0x2e,0xfa,0x67,0xf9,0xa6,0xf9,0x63,0xfa, +0x3e,0xfa,0x54,0xf9,0xcf,0xf8,0x31,0xf9,0xc1,0xf9,0x8a,0xf9, +0xbe,0xf8,0x72,0xf8,0x11,0xf9,0xd4,0xf9,0x1a,0xfa,0x45,0xfa, +0xca,0xfa,0x6c,0xfb,0xef,0xfb,0x78,0xfc,0x25,0xfd,0xf1,0xfd, +0x2e,0xfe,0xa1,0xfd,0x9b,0xfd,0x92,0xfe,0x6b,0xff,0x7b,0xff, +0xf4,0xfe,0xd6,0xfe,0xfa,0xff,0x91,0x1,0x78,0x2,0xe7,0x2, +0xbc,0x3,0x21,0x5,0x90,0x6,0x90,0x7,0xf6,0x7,0x1f,0x8, +0x6f,0x8,0xbb,0x8,0xf7,0x8,0x87,0x9,0x86,0xa,0x66,0xb, +0x19,0xc,0x45,0xd,0xd2,0xe,0xfc,0xf,0x17,0x10,0x46,0xf, +0x87,0xe,0xe8,0xd,0xbf,0xc,0x47,0xb,0xfd,0x9,0x67,0x9, +0xea,0x9,0xff,0xa,0xe6,0xb,0x84,0xc,0x29,0xd,0xab,0xd, +0x50,0xd,0xba,0xb,0x49,0x9,0x65,0x6,0x21,0x3,0xc1,0xff, +0xd9,0xfc,0xe9,0xfa,0x4b,0xfa,0x8d,0xfa,0xe,0xfb,0x3d,0xfc, +0x4e,0xfe,0x60,0x0,0xb8,0x1,0xd,0x2,0x7f,0x1,0xa0,0x0, +0x79,0xff,0x6e,0xfd,0xcc,0xfa,0x74,0xf8,0xa1,0xf6,0x74,0xf5, +0xa,0xf5,0x34,0xf5,0xf3,0xf5,0x27,0xf7,0x8a,0xf8,0x2,0xfa, +0x95,0xfb,0x2f,0xfd,0x1f,0xfe,0xfd,0xfd,0x56,0xfd,0x9d,0xfc, +0xc0,0xfb,0x53,0xfa,0x80,0xf8,0x30,0xf7,0x82,0xf6,0x43,0xf6, +0xaf,0xf6,0x92,0xf7,0xdb,0xf8,0xd7,0xfa,0x1e,0xfd,0x10,0xff, +0xc9,0x0,0x56,0x2,0xfe,0x2,0x6f,0x2,0x57,0x1,0x20,0x0, +0xb2,0xfe,0x31,0xfd,0xad,0xfb,0x46,0xfa,0xa5,0xf9,0xf6,0xf9, +0xdb,0xfa,0x55,0xfc,0x2b,0xfe,0xf7,0xff,0x82,0x1,0x8d,0x2, +0x46,0x3,0x7f,0x3,0xaa,0x2,0x2f,0x1,0xa4,0xff,0x32,0xfe, +0x4,0xfd,0x32,0xfc,0xbf,0xfb,0xbe,0xfb,0x9d,0xfc,0x3c,0xfe, +0xc2,0xff,0x33,0x1,0x90,0x2,0x72,0x3,0xfc,0x3,0x23,0x4, +0xf2,0x3,0xc1,0x3,0x5f,0x3,0xa2,0x2,0xc9,0x1,0x73,0x1, +0xf8,0x1,0x93,0x2,0xd5,0x2,0x4b,0x3,0x31,0x4,0x41,0x5, +0x36,0x6,0x1a,0x7,0x11,0x8,0xde,0x8,0x37,0x9,0x39,0x9, +0x2f,0x9,0x53,0x9,0x9a,0x9,0x9f,0x9,0x57,0x9,0x55,0x9, +0xd0,0x9,0x5d,0xa,0x7c,0xa,0x49,0xa,0x5f,0xa,0xa8,0xa, +0xbc,0xa,0xb0,0xa,0x7b,0xa,0x9,0xa,0x96,0x9,0x35,0x9, +0xe8,0x8,0xd0,0x8,0xbc,0x8,0x6b,0x8,0x25,0x8,0xa,0x8, +0xd5,0x7,0x49,0x7,0x30,0x6,0xdc,0x4,0xe0,0x3,0x2b,0x3, +0x42,0x2,0xef,0x0,0xda,0xff,0xab,0xff,0xfc,0xff,0x3f,0x0, +0x49,0x0,0x62,0x0,0xcf,0x0,0x4,0x1,0xd5,0x0,0x65,0x0, +0x6b,0xff,0x19,0xfe,0xc2,0xfc,0xb4,0xfb,0x28,0xfb,0x8f,0xfa, +0xd5,0xf9,0xae,0xf9,0x4c,0xfa,0x61,0xfb,0x59,0xfc,0xee,0xfc, +0x70,0xfd,0x35,0xfe,0x17,0xff,0x59,0xff,0xc3,0xfe,0x0,0xfe, +0x6d,0xfd,0xe9,0xfc,0x5d,0xfc,0xd2,0xfb,0x9f,0xfb,0xfa,0xfb, +0x89,0xfc,0x33,0xfd,0x45,0xfe,0x6e,0xff,0x43,0x0,0xc8,0x0, +0x24,0x1,0xaa,0x1,0x34,0x2,0x1a,0x2,0x57,0x1,0x76,0x0, +0xdc,0xff,0x79,0xff,0x5,0xff,0x74,0xfe,0x1a,0xfe,0x5d,0xfe, +0xec,0xfe,0x1d,0xff,0x49,0xff,0xf3,0xff,0xa6,0x0,0xeb,0x0, +0xf7,0x0,0xf2,0x0,0xc8,0x0,0x71,0x0,0xd9,0xff,0x22,0xff, +0xa0,0xfe,0x3c,0xfe,0xd7,0xfd,0x82,0xfd,0x5d,0xfd,0x97,0xfd, +0xf1,0xfd,0x3a,0xfe,0x8b,0xfe,0xdc,0xfe,0x54,0xff,0xb5,0xff, +0x8c,0xff,0x3c,0xff,0x3f,0xff,0x7b,0xff,0x91,0xff,0x76,0xff, +0x71,0xff,0x98,0xff,0xe2,0xff,0x28,0x0,0x5b,0x0,0xa7,0x0, +0xe1,0x0,0x13,0x1,0x74,0x1,0xd5,0x1,0x57,0x2,0xf7,0x2, +0x6f,0x3,0xf3,0x3,0x95,0x4,0x25,0x5,0xac,0x5,0x6,0x6, +0xf1,0x5,0x8c,0x5,0x19,0x5,0xca,0x4,0xb1,0x4,0x95,0x4, +0x63,0x4,0x68,0x4,0x94,0x4,0xc6,0x4,0x1b,0x5,0x6c,0x5, +0xaf,0x5,0xfb,0x5,0x14,0x6,0xd5,0x5,0x66,0x5,0xe7,0x4, +0x42,0x4,0x7f,0x3,0xcb,0x2,0x21,0x2,0x8e,0x1,0x1b,0x1, +0x99,0x0,0x10,0x0,0xc3,0xff,0xc7,0xff,0xc9,0xff,0x8b,0xff, +0x69,0xff,0x93,0xff,0xa0,0xff,0x46,0xff,0xb2,0xfe,0x10,0xfe, +0x6b,0xfd,0xca,0xfc,0x8,0xfc,0x3c,0xfb,0xa4,0xfa,0x45,0xfa, +0x43,0xfa,0x83,0xfa,0xe4,0xfa,0x76,0xfb,0xd7,0xfb,0x2c,0xfc, +0xb4,0xfc,0xd6,0xfc,0xae,0xfc,0x99,0xfc,0x45,0xfc,0xfa,0xfb, +0x35,0xfc,0x85,0xfc,0x66,0xfc,0x59,0xfc,0xfb,0xfc,0xee,0xfd, +0xab,0xfe,0xf6,0xfe,0xf0,0xfe,0x41,0xff,0xfd,0xff,0x6c,0x0, +0x19,0x0,0xb7,0xff,0x3b,0x0,0x34,0x1,0xdc,0x1,0x39,0x2, +0x6c,0x2,0xec,0x2,0xf8,0x3,0xd7,0x4,0x9,0x5,0xdb,0x4, +0xb8,0x4,0xd4,0x4,0x1f,0x5,0x58,0x5,0x45,0x5,0xf9,0x4, +0xc6,0x4,0x12,0x5,0xed,0x5,0xc9,0x6,0xf9,0x6,0xb7,0x6, +0xf2,0x6,0xe1,0x7,0xb2,0x8,0x60,0x8,0xe,0x7,0x8a,0x6, +0x4d,0x7,0x5a,0x7,0x19,0x6,0x4,0x5,0xde,0x4,0x4f,0x5, +0xc3,0x5,0xdb,0x5,0xff,0x5,0xb8,0x6,0x67,0x7,0x74,0x7, +0x7b,0x7,0x94,0x7,0x36,0x7,0x68,0x6,0x6d,0x5,0xbd,0x4, +0x76,0x4,0x0,0x4,0x40,0x3,0xb9,0x2,0xf2,0x2,0xbd,0x3, +0x4a,0x4,0x6f,0x4,0xb1,0x4,0x60,0x5,0xe4,0x5,0x6f,0x5, +0x98,0x4,0x36,0x4,0xcd,0x3,0xbe,0x2,0x51,0x1,0x33,0x0, +0x98,0xff,0x14,0xff,0x4b,0xfe,0x86,0xfd,0x8a,0xfd,0x38,0xfe, +0x65,0xfe,0xf6,0xfd,0xd5,0xfd,0xfd,0xfd,0xd1,0xfd,0xf3,0xfc, +0x69,0xfb,0x13,0xfa,0x4e,0xf9,0x51,0xf8,0x2b,0xf7,0x51,0xf6, +0xc9,0xf5,0xd9,0xf5,0x32,0xf6,0xa3,0xf6,0x89,0xf7,0x24,0xf8, +0x23,0xf8,0x46,0xf8,0xaa,0xf8,0x17,0xf9,0x1a,0xf9,0x9a,0xf8, +0x4c,0xf8,0x69,0xf8,0xc6,0xf8,0x27,0xf9,0x48,0xf9,0x8d,0xf9, +0x48,0xfa,0x37,0xfb,0x41,0xfc,0x34,0xfd,0xe1,0xfd,0x9e,0xfe, +0xa0,0xff,0xc9,0x0,0xb,0x2,0x6,0x3,0x8f,0x3,0x2a,0x4, +0x0,0x5,0xe1,0x5,0xd1,0x6,0xb1,0x7,0x87,0x8,0x88,0x9, +0xab,0xa,0xe7,0xb,0x4b,0xd,0xa8,0xe,0xfe,0xf,0xac,0x11, +0x7d,0x13,0xc5,0x14,0x56,0x15,0x43,0x15,0xe0,0x14,0x58,0x14, +0x49,0x13,0xd0,0x11,0x5e,0x10,0x1e,0xf,0x5b,0xe,0x31,0xe, +0x64,0xe,0xc9,0xe,0x8b,0xf,0xa0,0x10,0x3e,0x11,0x0,0x11, +0x5,0x10,0x3b,0xe,0xa8,0xb,0x69,0x8,0xef,0x4,0xc6,0x1, +0xea,0xfe,0x8e,0xfc,0x34,0xfb,0x14,0xfb,0xe0,0xfb,0xd3,0xfc, +0xbc,0xfd,0xd6,0xfe,0xe9,0xff,0x65,0x0,0xc4,0xff,0x49,0xfe, +0x7d,0xfc,0x39,0xfa,0x7b,0xf7,0xb7,0xf4,0x83,0xf2,0x4d,0xf1, +0xc7,0xf0,0xb2,0xf0,0x3e,0xf1,0x4e,0xf2,0xb8,0xf3,0x5d,0xf5, +0xc2,0xf6,0xc5,0xf7,0xab,0xf8,0x2e,0xf9,0xed,0xf8,0x21,0xf8, +0x2d,0xf7,0x47,0xf6,0x65,0xf5,0x9c,0xf4,0x67,0xf4,0xcd,0xf4, +0x4d,0xf5,0xa,0xf6,0x99,0xf7,0xc3,0xf9,0xf5,0xfb,0xf8,0xfd, +0x8e,0xff,0xae,0x0,0x5d,0x1,0x50,0x1,0x98,0x0,0x86,0xff, +0x9a,0xfe,0xf5,0xfd,0xf2,0xfc,0xa,0xfc,0x1c,0xfc,0xd1,0xfc, +0xeb,0xfd,0x1a,0xff,0xb,0x0,0x9,0x1,0xed,0x1,0x6e,0x2, +0x59,0x2,0xa4,0x1,0xec,0x0,0x45,0x0,0x7a,0xff,0xb5,0xfe, +0x3,0xfe,0xc8,0xfd,0x0,0xfe,0x27,0xfe,0x6f,0xfe,0x7,0xff, +0xb8,0xff,0x5d,0x0,0xc9,0x0,0xf,0x1,0x55,0x1,0x76,0x1, +0x46,0x1,0x4,0x1,0x1a,0x1,0x52,0x1,0x41,0x1,0x2b,0x1, +0x78,0x1,0x2b,0x2,0xe7,0x2,0x4c,0x3,0xae,0x3,0x67,0x4, +0x28,0x5,0xe1,0x5,0x85,0x6,0xbb,0x6,0xd2,0x6,0x42,0x7, +0xf6,0x7,0x88,0x8,0xaa,0x8,0xd9,0x8,0x7b,0x9,0x20,0xa, +0xa9,0xa,0x1c,0xb,0x44,0xb,0x1c,0xb,0xdb,0xa,0xd1,0xa, +0xd0,0xa,0x91,0xa,0x33,0xa,0xa9,0x9,0x3e,0x9,0x36,0x9, +0x1a,0x9,0xc2,0x8,0x64,0x8,0x34,0x8,0x4b,0x8,0x47,0x8, +0xe3,0x7,0x46,0x7,0x9b,0x6,0xe5,0x5,0xe9,0x4,0x92,0x3, +0xe,0x2,0x8b,0x0,0x26,0xff,0xfd,0xfd,0x37,0xfd,0xbf,0xfc, +0x6b,0xfc,0x57,0xfc,0x8a,0xfc,0xdd,0xfc,0xc,0xfd,0xd5,0xfc, +0x42,0xfc,0x83,0xfb,0x83,0xfa,0x8,0xf9,0x6c,0xf7,0x2c,0xf6, +0x2d,0xf5,0x6e,0xf4,0x3b,0xf4,0x8d,0xf4,0x2f,0xf5,0xa,0xf6, +0x23,0xf7,0x48,0xf8,0x33,0xf9,0xc2,0xf9,0xd4,0xf9,0x90,0xf9, +0x29,0xf9,0x86,0xf8,0xc6,0xf7,0x18,0xf7,0x80,0xf6,0x40,0xf6, +0x85,0xf6,0x1f,0xf7,0xff,0xf7,0x2c,0xf9,0x63,0xfa,0x8e,0xfb, +0xca,0xfc,0xd3,0xfd,0x7a,0xfe,0xc2,0xfe,0xb2,0xfe,0x66,0xfe, +0xc3,0xfd,0xe8,0xfc,0x5,0xfc,0x1,0xfb,0x5b,0xfa,0x85,0xfa, +0x34,0xfb,0x31,0xfc,0x31,0xfd,0xd,0xfe,0x8,0xff,0xf9,0xff, +0x8b,0x0,0xb8,0x0,0x72,0x0,0xda,0xff,0x3c,0xff,0x9c,0xfe, +0xf7,0xfd,0x5e,0xfd,0xdd,0xfc,0xaa,0xfc,0xd5,0xfc,0x2e,0xfd, +0xae,0xfd,0x20,0xfe,0x74,0xfe,0x0,0xff,0xa7,0xff,0x17,0x0, +0x3e,0x0,0x26,0x0,0x10,0x0,0x1a,0x0,0x21,0x0,0xf7,0xff, +0x8f,0xff,0x39,0xff,0x30,0xff,0x7a,0xff,0x7,0x0,0x82,0x0, +0xc0,0x0,0x10,0x1,0xc6,0x1,0xb2,0x2,0x8e,0x3,0x50,0x4, +0x99,0x4,0x62,0x4,0x5f,0x4,0xa4,0x4,0xcd,0x4,0xa6,0x4, +0x38,0x4,0xa,0x4,0x48,0x4,0x73,0x4,0x5e,0x4,0x3c,0x4, +0x36,0x4,0x39,0x4,0xb,0x4,0xb1,0x3,0x8a,0x3,0xb2,0x3, +0xba,0x3,0x7e,0x3,0x51,0x3,0x42,0x3,0xc,0x3,0x74,0x2, +0xa7,0x1,0x2a,0x1,0xcc,0x0,0xc0,0xff,0x26,0xfe,0x25,0xfd, +0x33,0xfd,0x8e,0xfd,0x77,0xfd,0xf,0xfd,0xeb,0xfc,0x15,0xfd, +0x26,0xfd,0xfb,0xfc,0xad,0xfc,0x50,0xfc,0xd1,0xfb,0x1d,0xfb, +0x64,0xfa,0xc2,0xf9,0x3c,0xf9,0xc2,0xf8,0x26,0xf8,0x94,0xf7, +0x75,0xf7,0xc4,0xf7,0xec,0xf7,0xb9,0xf7,0xcb,0xf7,0x64,0xf8, +0x1f,0xf9,0x7d,0xf9,0x56,0xf9,0x5b,0xf9,0xd6,0xf9,0x10,0xfa, +0xed,0xf9,0xc5,0xf9,0xa0,0xf9,0x6c,0xf9,0x34,0xf9,0x4e,0xf9, +0xd2,0xf9,0x64,0xfa,0xc6,0xfa,0x26,0xfb,0xf6,0xfb,0x17,0xfd, +0xfb,0xfd,0x90,0xfe,0xd1,0xfe,0xde,0xfe,0x44,0xff,0xdf,0xff, +0x25,0x0,0x1b,0x0,0xfc,0xff,0x5,0x0,0x46,0x0,0x83,0x0, +0xad,0x0,0xb4,0x0,0x9c,0x0,0xfe,0x0,0xbe,0x1,0x1e,0x2, +0x53,0x2,0x96,0x2,0xd3,0x2,0x70,0x3,0x3d,0x4,0xa5,0x4, +0x7c,0x4,0xb6,0x3,0x2f,0x3,0xb5,0x3,0x10,0x4,0x42,0x3, +0x6b,0x2,0x92,0x2,0x87,0x3,0x8b,0x4,0xc9,0x4,0x9c,0x4, +0xea,0x4,0x90,0x5,0x35,0x6,0x89,0x6,0x34,0x6,0xb4,0x5, +0x7b,0x5,0x64,0x5,0x51,0x5,0x1c,0x5,0xbd,0x4,0x23,0x4, +0x62,0x3,0x61,0x3,0x3d,0x4,0x99,0x4,0xec,0x3,0x31,0x3, +0x84,0x3,0xcf,0x4,0x58,0x5,0x62,0x4,0xa5,0x3,0xd1,0x3, +0xb5,0x3,0xe6,0x2,0xaf,0x1,0xa3,0x0,0xc,0x0,0x1d,0xff, +0xe4,0xfd,0x5f,0xfd,0x5c,0xfd,0x42,0xfd,0xa,0xfd,0xbd,0xfc, +0x92,0xfc,0xc0,0xfc,0xbe,0xfc,0xd2,0xfb,0x8a,0xfa,0xce,0xf9, +0x35,0xf9,0x18,0xf8,0xa0,0xf6,0x4b,0xf5,0x95,0xf4,0x46,0xf4, +0xd2,0xf3,0x70,0xf3,0x6e,0xf3,0xa0,0xf3,0xd0,0xf3,0xe4,0xf3, +0xc,0xf4,0x4b,0xf4,0x3d,0xf4,0xea,0xf3,0x89,0xf3,0x35,0xf3, +0x32,0xf3,0x2e,0xf3,0xc9,0xf2,0x9e,0xf2,0xe,0xf3,0xc6,0xf3, +0x86,0xf4,0x40,0xf5,0x3e,0xf6,0x7b,0xf7,0x7a,0xf8,0x46,0xf9, +0x21,0xfa,0xe2,0xfa,0x65,0xfb,0xcf,0xfb,0x76,0xfc,0x4c,0xfd, +0xd0,0xfd,0x12,0xfe,0xa7,0xfe,0x9a,0xff,0xa2,0x0,0xaa,0x1, +0x8e,0x2,0x4b,0x3,0x14,0x4,0xd,0x5,0x22,0x6,0xc3,0x6, +0xe5,0x6,0x49,0x7,0xf4,0x7,0x73,0x8,0xd3,0x8,0x22,0x9, +0x88,0x9,0xf3,0x9,0x36,0xa,0xbe,0xa,0x86,0xb,0x8,0xc, +0x4d,0xc,0x9a,0xc,0x17,0xd,0xa9,0xd,0xfc,0xd,0x32,0xe, +0x7e,0xe,0xc6,0xe,0x3b,0xf,0xe8,0xf,0xa0,0x10,0x82,0x11, +0x72,0x12,0x2d,0x13,0x90,0x13,0x48,0x13,0x89,0x12,0xda,0x11, +0xf3,0x10,0x82,0xf,0xe1,0xd,0xa5,0xc,0x19,0xc,0x7,0xc, +0x47,0xc,0xcb,0xc,0x55,0xd,0xc0,0xd,0xc6,0xd,0x22,0xd, +0xe7,0xb,0xdf,0x9,0xf5,0x6,0xce,0x3,0xf4,0x0,0x72,0xfe, +0x39,0xfc,0x42,0xfa,0xeb,0xf8,0x9b,0xf8,0xd9,0xf8,0xea,0xf8, +0xe9,0xf8,0x29,0xf9,0x79,0xf9,0x74,0xf9,0xc1,0xf8,0x6e,0xf7, +0xef,0xf5,0x84,0xf4,0xec,0xf2,0x0,0xf1,0x39,0xef,0x4,0xee, +0x1b,0xed,0x2f,0xec,0x76,0xeb,0x67,0xeb,0x27,0xec,0x31,0xed, +0x0,0xee,0xe6,0xee,0x2d,0xf0,0x53,0xf1,0xe1,0xf1,0xc3,0xf1, +0x22,0xf1,0x76,0xf0,0xba,0xef,0x96,0xee,0xaa,0xed,0xa9,0xed, +0x4c,0xee,0x47,0xef,0xbc,0xf0,0xa7,0xf2,0xcf,0xf4,0xee,0xf6, +0xd9,0xf8,0x9f,0xfa,0x11,0xfc,0xc8,0xfc,0xd,0xfd,0x6a,0xfd, +0xdb,0xfd,0x35,0xfe,0x5b,0xfe,0x7b,0xfe,0x14,0xff,0x6,0x0, +0xef,0x0,0x9,0x2,0x6a,0x3,0xb2,0x4,0xc6,0x5,0xc5,0x6, +0xb7,0x7,0x93,0x8,0x39,0x9,0x7c,0x9,0x4b,0x9,0xd2,0x8, +0x78,0x8,0x66,0x8,0x6d,0x8,0x39,0x8,0xb1,0x7,0x7c,0x7, +0xfb,0x7,0x74,0x8,0x95,0x8,0xa3,0x8,0x6a,0x8,0xb,0x8, +0xcd,0x7,0x5a,0x7,0xbf,0x6,0x55,0x6,0xf,0x6,0xf2,0x5, +0xf8,0x5,0x1a,0x6,0x78,0x6,0xe4,0x6,0x29,0x7,0x4b,0x7, +0x36,0x7,0xf4,0x6,0x87,0x6,0xde,0x5,0x5c,0x5,0x30,0x5, +0xc,0x5,0x2,0x5,0x5e,0x5,0x1c,0x6,0x3,0x7,0xc5,0x7, +0x39,0x8,0x77,0x8,0x77,0x8,0x22,0x8,0xb1,0x7,0x29,0x7, +0x5f,0x6,0xab,0x5,0x1b,0x5,0x62,0x4,0xd9,0x3,0xc7,0x3, +0xf5,0x3,0x31,0x4,0x55,0x4,0xa0,0x4,0x1f,0x5,0x3d,0x5, +0x4,0x5,0xa6,0x4,0x2,0x4,0x51,0x3,0x5a,0x2,0xd2,0x0, +0x41,0xff,0xd0,0xfd,0x8d,0xfc,0xb3,0xfb,0xf2,0xfa,0x7a,0xfa, +0xb7,0xfa,0x23,0xfb,0x73,0xfb,0xdf,0xfb,0x14,0xfc,0xb6,0xfb, +0xcb,0xfa,0x8a,0xf9,0x42,0xf8,0xe1,0xf6,0x3c,0xf5,0xce,0xf3, +0xfa,0xf2,0x86,0xf2,0x6f,0xf2,0xbe,0xf2,0x43,0xf3,0x9,0xf4, +0xed,0xf4,0xa3,0xf5,0x2b,0xf6,0x54,0xf6,0x27,0xf6,0x1e,0xf6, +0xff,0xf5,0x8a,0xf5,0x1f,0xf5,0xe0,0xf4,0xd6,0xf4,0x5,0xf5, +0x54,0xf5,0xfa,0xf5,0xf7,0xf6,0xf6,0xf7,0xfb,0xf8,0x26,0xfa, +0x66,0xfb,0x79,0xfc,0x2c,0xfd,0xa7,0xfd,0xc,0xfe,0x55,0xfe, +0x7a,0xfe,0x5a,0xfe,0x2,0xfe,0xdd,0xfd,0x29,0xfe,0xb3,0xfe, +0x51,0xff,0x5,0x0,0xa8,0x0,0x34,0x1,0xd9,0x1,0x5b,0x2, +0x86,0x2,0x8f,0x2,0x7a,0x2,0x3e,0x2,0xf5,0x1,0xba,0x1, +0xb3,0x1,0xb7,0x1,0x95,0x1,0x74,0x1,0x49,0x1,0xb,0x1, +0xcb,0x0,0x5c,0x0,0xe2,0xff,0xae,0xff,0x90,0xff,0x4f,0xff, +0xd,0xff,0xe,0xff,0x6d,0xff,0xd3,0xff,0xea,0xff,0xd3,0xff, +0xa2,0xff,0x55,0xff,0x1c,0xff,0xfa,0xfe,0x9d,0xfe,0xd8,0xfd, +0x16,0xfd,0xed,0xfc,0x3d,0xfd,0x77,0xfd,0x8e,0xfd,0xc2,0xfd, +0x14,0xfe,0x89,0xfe,0x3d,0xff,0xed,0xff,0x33,0x0,0x32,0x0, +0x4d,0x0,0x79,0x0,0xad,0x0,0x7,0x1,0x6,0x1,0x65,0x0, +0xe5,0xff,0x2,0x0,0x6e,0x0,0xa7,0x0,0x79,0x0,0x76,0x0, +0x23,0x1,0x19,0x2,0xd8,0x2,0x36,0x3,0x47,0x3,0x61,0x3, +0x68,0x3,0x6,0x3,0x69,0x2,0xd8,0x1,0x3e,0x1,0x66,0x0, +0x8f,0xff,0x69,0xff,0xc0,0xff,0x8d,0xff,0xcb,0xfe,0x7e,0xfe, +0xe,0xff,0xbc,0xff,0x7f,0xff,0x62,0xfe,0x9a,0xfd,0xb0,0xfd, +0xb6,0xfd,0xea,0xfc,0xc2,0xfb,0xc,0xfb,0xf8,0xfa,0xed,0xfa, +0x57,0xfa,0x8c,0xf9,0x54,0xf9,0xab,0xf9,0xdb,0xf9,0xcf,0xf9, +0xf0,0xf9,0x22,0xfa,0x32,0xfa,0x2f,0xfa,0x31,0xfa,0x87,0xfa, +0xc0,0xfa,0x6,0xfa,0x4a,0xf9,0xc1,0xf9,0x99,0xfa,0xc1,0xfa, +0x57,0xfa,0x1d,0xfa,0xc4,0xfa,0xe9,0xfb,0x8f,0xfc,0xab,0xfc, +0xdd,0xfc,0x64,0xfd,0x1,0xfe,0x78,0xfe,0xe2,0xfe,0x63,0xff, +0xdc,0xff,0x15,0x0,0x39,0x0,0xcd,0x0,0xcf,0x1,0x57,0x2, +0x2,0x2,0xc0,0x1,0x47,0x2,0xf,0x3,0x4e,0x3,0xf6,0x2, +0xca,0x2,0x52,0x3,0xe6,0x3,0xed,0x3,0xd2,0x3,0x2,0x4, +0x5b,0x4,0x84,0x4,0x76,0x4,0x58,0x4,0x7,0x4,0xc3,0x3, +0xc5,0x3,0x4d,0x3,0x7e,0x2,0x3d,0x2,0x2d,0x2,0xe6,0x1, +0x8f,0x1,0x46,0x1,0x81,0x1,0xcf,0x1,0x63,0x1,0x10,0x1, +0x79,0x1,0xb0,0x1,0x2f,0x1,0x65,0x0,0xe3,0xff,0xb4,0xff, +0x34,0xff,0x2a,0xfe,0x4a,0xfd,0xf5,0xfc,0xcc,0xfc,0x9c,0xfc, +0x72,0xfc,0x63,0xfc,0xbe,0xfc,0x4d,0xfd,0x8d,0xfd,0xc1,0xfd, +0x27,0xfe,0x87,0xfe,0x91,0xfe,0xd8,0xfd,0xd3,0xfc,0x73,0xfc, +0x50,0xfc,0x93,0xfb,0x83,0xfa,0x18,0xfa,0x87,0xfa,0xd0,0xfa, +0x9c,0xfa,0xc2,0xfa,0x97,0xfb,0xa3,0xfc,0x21,0xfd,0xd3,0xfc, +0x85,0xfc,0x72,0xfc,0x12,0xfc,0x42,0xfb,0xf9,0xf9,0xb3,0xf8, +0x15,0xf8,0xa6,0xf7,0xe,0xf7,0xc2,0xf6,0xc7,0xf6,0x1c,0xf7, +0xe7,0xf7,0xc4,0xf8,0x6d,0xf9,0xe0,0xf9,0xf7,0xf9,0xcf,0xf9, +0xae,0xf9,0x6c,0xf9,0xbc,0xf8,0xbc,0xf7,0xde,0xf6,0x7a,0xf6, +0x8b,0xf6,0xc0,0xf6,0xcb,0xf6,0xdd,0xf6,0x6e,0xf7,0x77,0xf8, +0x6f,0xf9,0xdc,0xf9,0xf7,0xf9,0x6f,0xfa,0x7,0xfb,0xc,0xfb, +0xc5,0xfa,0xcc,0xfa,0xc,0xfb,0x18,0xfb,0xe9,0xfa,0x21,0xfb, +0xdb,0xfb,0x46,0xfc,0x63,0xfc,0xdc,0xfc,0xb6,0xfd,0xb4,0xfe, +0x9e,0xff,0x54,0x0,0xce,0x0,0x9,0x1,0x8f,0x1,0x72,0x2, +0xd9,0x2,0xdb,0x2,0x23,0x3,0xac,0x3,0x51,0x4,0xdc,0x4, +0x46,0x5,0xf0,0x5,0x83,0x6,0xaa,0x6,0xb,0x7,0xd5,0x7, +0x83,0x8,0xf3,0x8,0x71,0x9,0x4e,0xa,0x70,0xb,0x4a,0xc, +0xb8,0xc,0x35,0xd,0xf3,0xd,0xad,0xe,0x4c,0xf,0xee,0xf, +0x95,0x10,0x5c,0x11,0x5a,0x12,0x39,0x13,0x98,0x13,0x73,0x13, +0xdc,0x12,0xe0,0x11,0xb8,0x10,0xa2,0xf,0x90,0xe,0x6c,0xd, +0x79,0xc,0x11,0xc,0x1a,0xc,0x4c,0xc,0xa7,0xc,0xdf,0xc, +0x67,0xc,0x6b,0xb,0x34,0xa,0x4a,0x8,0x31,0x5,0x8d,0x1, +0xab,0xfe,0x89,0xfc,0x1d,0xfa,0xa5,0xf7,0x29,0xf6,0xa9,0xf5, +0x6b,0xf5,0x3,0xf5,0xce,0xf4,0xee,0xf4,0xa5,0xf4,0xec,0xf3, +0x2a,0xf3,0xe9,0xf1,0x2e,0xf0,0x9f,0xee,0x52,0xed,0xfa,0xeb, +0x60,0xea,0xde,0xe8,0xfb,0xe7,0x7e,0xe7,0x34,0xe7,0x67,0xe7, +0x2a,0xe8,0x59,0xe9,0xa1,0xea,0xe3,0xeb,0x66,0xed,0xc7,0xee, +0x71,0xef,0xa1,0xef,0x84,0xef,0xef,0xee,0x2b,0xee,0x9f,0xed, +0x6a,0xed,0x88,0xed,0x7,0xee,0x44,0xef,0x64,0xf1,0xc1,0xf3, +0xa,0xf6,0x79,0xf8,0xaf,0xfa,0x4e,0xfc,0x8c,0xfd,0x6f,0xfe, +0xd6,0xfe,0xd2,0xfe,0xb8,0xfe,0xe1,0xfe,0x17,0xff,0x1a,0xff, +0x4f,0xff,0xe,0x0,0x22,0x1,0x15,0x2,0xf1,0x2,0xf8,0x3, +0xdf,0x4,0x9d,0x5,0x5d,0x6,0xb0,0x6,0xa8,0x6,0x9a,0x6, +0x5d,0x6,0xe5,0x5,0x10,0x5,0x2d,0x4,0xeb,0x3,0xb7,0x3, +0x9,0x3,0x89,0x2,0x80,0x2,0xc6,0x2,0x2f,0x3,0x5d,0x3, +0x59,0x3,0x7e,0x3,0xe2,0x3,0x26,0x4,0xf0,0x3,0x7c,0x3, +0x22,0x3,0x24,0x3,0x5c,0x3,0x2f,0x3,0x7,0x3,0x88,0x3, +0xf7,0x3,0x17,0x4,0x84,0x4,0x29,0x5,0xbd,0x5,0x28,0x6, +0x75,0x6,0xed,0x6,0x7e,0x7,0xeb,0x7,0x51,0x8,0x96,0x8, +0xb4,0x8,0xfb,0x8,0x47,0x9,0x2d,0x9,0xc0,0x8,0x5e,0x8, +0x3b,0x8,0x2f,0x8,0xed,0x7,0x90,0x7,0x41,0x7,0xe2,0x6, +0x9d,0x6,0x80,0x6,0x28,0x6,0x94,0x5,0x13,0x5,0xad,0x4, +0x4f,0x4,0xf6,0x3,0x63,0x3,0x64,0x2,0x44,0x1,0x3a,0x0, +0x1b,0xff,0xd8,0xfd,0x5d,0xfc,0xcc,0xfa,0xad,0xf9,0xfc,0xf8, +0x65,0xf8,0xf0,0xf7,0xa4,0xf7,0xa8,0xf7,0xc7,0xf7,0x76,0xf7, +0xf5,0xf6,0x79,0xf6,0xb0,0xf5,0xbe,0xf4,0xae,0xf3,0x7a,0xf2, +0x80,0xf1,0xc8,0xf0,0x53,0xf0,0x55,0xf0,0x93,0xf0,0x8,0xf1, +0xdf,0xf1,0xca,0xf2,0x93,0xf3,0x69,0xf4,0x5d,0xf5,0x29,0xf6, +0x8c,0xf6,0xd4,0xf6,0x41,0xf7,0x98,0xf7,0xd7,0xf7,0x3d,0xf8, +0xc4,0xf8,0x6a,0xf9,0x2e,0xfa,0xc,0xfb,0x35,0xfc,0x99,0xfd, +0xee,0xfe,0x34,0x0,0x5d,0x1,0x53,0x2,0xd,0x3,0x2a,0x3, +0xbb,0x2,0x84,0x2,0xad,0x2,0xbf,0x2,0x72,0x2,0xd7,0x1, +0x83,0x1,0xd6,0x1,0x80,0x2,0x2b,0x3,0xb3,0x3,0xe6,0x3, +0xab,0x3,0x5e,0x3,0x80,0x3,0xa1,0x3,0xd1,0x2,0x4a,0x1, +0x18,0x0,0x95,0xff,0x63,0xff,0x3,0xff,0x59,0xfe,0xc8,0xfd, +0x9b,0xfd,0xb9,0xfd,0xcc,0xfd,0xa5,0xfd,0x82,0xfd,0xa7,0xfd, +0xc3,0xfd,0x6d,0xfd,0xeb,0xfc,0xc0,0xfc,0xc4,0xfc,0x7d,0xfc, +0xf9,0xfb,0xbf,0xfb,0xed,0xfb,0xf8,0xfb,0xc5,0xfb,0x5,0xfc, +0xf3,0xfc,0xff,0xfd,0x92,0xfe,0x97,0xfe,0xb6,0xfe,0x8a,0xff, +0x72,0x0,0x79,0x0,0xdb,0xff,0xa0,0xff,0x27,0x0,0xd5,0x0, +0x26,0x1,0x46,0x1,0xb1,0x1,0x7a,0x2,0x17,0x3,0x6d,0x3, +0xd8,0x3,0x1f,0x4,0x7,0x4,0xc6,0x3,0x78,0x3,0x44,0x3, +0x22,0x3,0xae,0x2,0xa,0x2,0xd2,0x1,0x16,0x2,0x49,0x2, +0x8,0x2,0x7f,0x1,0xb,0x1,0xfe,0x0,0xd,0x1,0x71,0x0, +0x3b,0xff,0x1f,0xfe,0x55,0xfd,0xdb,0xfc,0x7a,0xfc,0xdd,0xfb, +0x26,0xfb,0x8c,0xfa,0xfb,0xf9,0x98,0xf9,0xb3,0xf9,0x2,0xfa, +0xf7,0xf9,0x8d,0xf9,0xd,0xf9,0xdc,0xf8,0x24,0xf9,0xd,0xf9, +0x2b,0xf8,0x65,0xf7,0x1c,0xf7,0x13,0xf7,0x3d,0xf7,0x59,0xf7, +0x8a,0xf7,0x32,0xf8,0xf7,0xf8,0x87,0xf9,0x31,0xfa,0x34,0xfb, +0x28,0xfc,0x83,0xfc,0x93,0xfc,0xdf,0xfc,0x50,0xfd,0xaa,0xfd, +0xde,0xfd,0x1f,0xfe,0xbd,0xfe,0x8b,0xff,0x28,0x0,0xb3,0x0, +0x7f,0x1,0x68,0x2,0xc,0x3,0x62,0x3,0xad,0x3,0x3f,0x4, +0x11,0x5,0x7a,0x5,0x4a,0x5,0x35,0x5,0x7f,0x5,0xbc,0x5, +0xbc,0x5,0xa5,0x5,0xa7,0x5,0xbd,0x5,0xaf,0x5,0x81,0x5, +0x8e,0x5,0xd9,0x5,0xe4,0x5,0x84,0x5,0x22,0x5,0x13,0x5, +0x3d,0x5,0x22,0x5,0x89,0x4,0xe7,0x3,0x7b,0x3,0x17,0x3, +0xc8,0x2,0x86,0x2,0x2a,0x2,0xc6,0x1,0x85,0x1,0x68,0x1, +0x35,0x1,0xef,0x0,0xd7,0x0,0xae,0x0,0x4f,0x0,0x31,0x0, +0x5f,0x0,0x7e,0x0,0x5e,0x0,0xf2,0xff,0xa8,0xff,0xd5,0xff, +0xfe,0xff,0xd8,0xff,0xc4,0xff,0xe7,0xff,0x13,0x0,0x2e,0x0, +0x31,0x0,0x30,0x0,0x58,0x0,0xaa,0x0,0xfe,0x0,0x52,0x1, +0xa0,0x1,0xbe,0x1,0xc0,0x1,0xe3,0x1,0x26,0x2,0x6e,0x2, +0xae,0x2,0xcf,0x2,0xd1,0x2,0xdc,0x2,0xfb,0x2,0x8,0x3, +0xd6,0x2,0x81,0x2,0x89,0x2,0xdb,0x2,0xc1,0x2,0x5a,0x2, +0x38,0x2,0x2e,0x2,0x5,0x2,0xde,0x1,0xc0,0x1,0x8b,0x1, +0x12,0x1,0x5c,0x0,0xbf,0xff,0x53,0xff,0xd9,0xfe,0x2c,0xfe, +0x6d,0xfd,0xe4,0xfc,0xba,0xfc,0xa3,0xfc,0x39,0xfc,0xb1,0xfb, +0x63,0xfb,0x30,0xfb,0x3,0xfb,0xbd,0xfa,0x37,0xfa,0xbb,0xf9, +0x69,0xf9,0x24,0xf9,0xe5,0xf8,0x8e,0xf8,0x69,0xf8,0xa5,0xf8, +0xc7,0xf8,0xcd,0xf8,0xff,0xf8,0x4a,0xf9,0xaa,0xf9,0xeb,0xf9, +0x13,0xfa,0x94,0xfa,0x27,0xfb,0x59,0xfb,0x60,0xfb,0x8b,0xfb, +0xf6,0xfb,0x87,0xfc,0x11,0xfd,0x93,0xfd,0x2d,0xfe,0xf9,0xfe, +0xd6,0xff,0xa4,0x0,0x7f,0x1,0x5d,0x2,0x1d,0x3,0xcb,0x3, +0x5d,0x4,0xcb,0x4,0x3a,0x5,0xbe,0x5,0x2a,0x6,0x84,0x6, +0x4,0x7,0x96,0x7,0xe,0x8,0x61,0x8,0xb3,0x8,0x4f,0x9, +0xf2,0x9,0x31,0xa,0x61,0xa,0xc4,0xa,0x31,0xb,0x95,0xb, +0xd1,0xb,0xdc,0xb,0xfe,0xb,0x70,0xc,0xf5,0xc,0x2e,0xd, +0x4b,0xd,0xa3,0xd,0x20,0xe,0x9a,0xe,0xf9,0xe,0x5e,0xf, +0xef,0xf,0x44,0x10,0x23,0x10,0xd1,0xf,0x5e,0xf,0xb7,0xe, +0xf9,0xd,0x4c,0xd,0xb5,0xc,0x28,0xc,0xc8,0xb,0x95,0xb, +0x6c,0xb,0x63,0xb,0x62,0xb,0x14,0xb,0x78,0xa,0xae,0x9, +0xc4,0x8,0xbd,0x7,0x58,0x6,0x81,0x4,0xdb,0x2,0xca,0x1, +0xb2,0x0,0x58,0xff,0x57,0xfe,0xca,0xfd,0x68,0xfd,0x20,0xfd, +0xc3,0xfc,0x4d,0xfc,0xd0,0xfb,0x35,0xfb,0xa3,0xfa,0x7,0xfa, +0x7,0xf9,0xf9,0xf7,0x42,0xf7,0x85,0xf6,0x86,0xf5,0x7e,0xf4, +0xbf,0xf3,0x7d,0xf3,0x62,0xf3,0x48,0xf3,0x96,0xf3,0x38,0xf4, +0xd0,0xf4,0x50,0xf5,0xa1,0xf5,0xd2,0xf5,0xe7,0xf5,0xc3,0xf5, +0xae,0xf5,0xb0,0xf5,0x75,0xf5,0x34,0xf5,0x5a,0xf5,0xe3,0xf5, +0x80,0xf6,0x34,0xf7,0x47,0xf8,0x7e,0xf9,0x6f,0xfa,0x47,0xfb, +0x4a,0xfc,0x43,0xfd,0xd0,0xfd,0x1b,0xfe,0xa0,0xfe,0x38,0xff, +0x96,0xff,0xca,0xff,0xe,0x0,0x8b,0x0,0xc,0x1,0x7c,0x1, +0xe,0x2,0xaf,0x2,0x45,0x3,0xca,0x3,0x3c,0x4,0xc6,0x4, +0x30,0x5,0x5b,0x5,0x82,0x5,0x95,0x5,0xac,0x5,0xf0,0x5, +0x2d,0x6,0x38,0x6,0xd4,0x5,0x5b,0x5,0x9b,0x5,0x6,0x6, +0xce,0x5,0x71,0x5,0x75,0x5,0xb6,0x5,0xd1,0x5,0x93,0x5, +0x73,0x5,0xb7,0x5,0xdc,0x5,0xb4,0x5,0x91,0x5,0x97,0x5, +0xc0,0x5,0xd1,0x5,0xb0,0x5,0xb6,0x5,0xcd,0x5,0xbc,0x5, +0xb0,0x5,0x5e,0x5,0xdc,0x4,0xe3,0x4,0x2d,0x5,0x42,0x5, +0x3c,0x5,0x4a,0x5,0xb9,0x5,0x1e,0x6,0xf7,0x5,0xf7,0x5, +0x56,0x6,0x63,0x6,0x17,0x6,0xc9,0x5,0x60,0x5,0xd2,0x4, +0x6c,0x4,0x1e,0x4,0xb3,0x3,0x78,0x3,0x5a,0x3,0x3,0x3, +0xa7,0x2,0x7f,0x2,0xb8,0x2,0x1,0x3,0x98,0x2,0xca,0x1, +0x60,0x1,0x45,0x1,0xdc,0x0,0xcf,0xff,0xc0,0xfe,0x2d,0xfe, +0xb5,0xfd,0x31,0xfd,0x9e,0xfc,0x2a,0xfc,0x1a,0xfc,0x10,0xfc, +0xf6,0xfb,0xee,0xfb,0xc8,0xfb,0xb7,0xfb,0xb1,0xfb,0x4f,0xfb, +0xbc,0xfa,0x3f,0xfa,0x7,0xfa,0xd5,0xf9,0x4d,0xf9,0xf9,0xf8, +0x29,0xf9,0x7c,0xf9,0xc0,0xf9,0xff,0xf9,0x72,0xfa,0x4,0xfb, +0x5c,0xfb,0xbd,0xfb,0x5b,0xfc,0xd5,0xfc,0xf8,0xfc,0x19,0xfd, +0x92,0xfd,0x2,0xfe,0x25,0xfe,0x7c,0xfe,0xfb,0xfe,0x48,0xff, +0xa9,0xff,0x41,0x0,0xe6,0x0,0x8d,0x1,0x3d,0x2,0xe4,0x2, +0x63,0x3,0xd2,0x3,0x4b,0x4,0xc2,0x4,0x2a,0x5,0x56,0x5, +0x45,0x5,0x37,0x5,0x50,0x5,0xad,0x5,0xf5,0x5,0xcc,0x5, +0xbb,0x5,0x2,0x6,0x20,0x6,0x5,0x6,0xec,0x5,0xe0,0x5, +0xd6,0x5,0xae,0x5,0x71,0x5,0x17,0x5,0x81,0x4,0x0,0x4, +0xd8,0x3,0xb5,0x3,0x35,0x3,0xa3,0x2,0x85,0x2,0x82,0x2, +0x2c,0x2,0xed,0x1,0xb8,0x1,0x30,0x1,0xb5,0x0,0x82,0x0, +0x6e,0x0,0x46,0x0,0xeb,0xff,0x98,0xff,0x57,0xff,0x1c,0xff, +0x31,0xff,0x44,0xff,0x9,0xff,0xc7,0xfe,0x87,0xfe,0x77,0xfe, +0xab,0xfe,0xb2,0xfe,0x8a,0xfe,0x5e,0xfe,0x35,0xfe,0x3e,0xfe, +0x65,0xfe,0x71,0xfe,0x46,0xfe,0x3,0xfe,0xff,0xfd,0x10,0xfe, +0x18,0xfe,0x3c,0xfe,0x51,0xfe,0x6b,0xfe,0x9b,0xfe,0x98,0xfe, +0x8f,0xfe,0xc1,0xfe,0xf3,0xfe,0xe8,0xfe,0xa8,0xfe,0x8d,0xfe, +0xc1,0xfe,0xd,0xff,0x46,0xff,0x5f,0xff,0x80,0xff,0xbd,0xff, +0xfa,0xff,0x1b,0x0,0xb,0x0,0xe,0x0,0x33,0x0,0x18,0x0, +0x4,0x0,0x2e,0x0,0x49,0x0,0x61,0x0,0x60,0x0,0x2b,0x0, +0x1d,0x0,0x59,0x0,0xb1,0x0,0xcb,0x0,0x89,0x0,0x62,0x0, +0x74,0x0,0x87,0x0,0x83,0x0,0x55,0x0,0x2a,0x0,0x7,0x0, +0xe2,0xff,0xf7,0xff,0x15,0x0,0xf8,0xff,0xbe,0xff,0x86,0xff, +0x8e,0xff,0xc8,0xff,0xdb,0xff,0xd5,0xff,0xd0,0xff,0xc5,0xff, +0xb9,0xff,0xae,0xff,0xac,0xff,0x94,0xff,0x5a,0xff,0x3a,0xff, +0x49,0xff,0x67,0xff,0x63,0xff,0x63,0xff,0xbc,0xff,0x23,0x0, +0x50,0x0,0x7a,0x0,0xb4,0x0,0xef,0x0,0xf1,0x0,0xbb,0x0, +0xc9,0x0,0xf7,0x0,0xe5,0x0,0xde,0x0,0x20,0x1,0x84,0x1, +0xa9,0x1,0x7d,0x1,0x88,0x1,0xc4,0x1,0xe6,0x1,0x2d,0x2, +0x59,0x2,0x1c,0x2,0xff,0x1,0x2b,0x2,0x48,0x2,0x4d,0x2, +0x39,0x2,0x23,0x2,0x35,0x2,0x49,0x2,0x4a,0x2,0x44,0x2, +0x25,0x2,0xfd,0x1,0xf0,0x1,0xfd,0x1,0x1a,0x2,0x1b,0x2, +0xea,0x1,0xbb,0x1,0xc4,0x1,0x2,0x2,0x39,0x2,0x47,0x2, +0x45,0x2,0x25,0x2,0xe3,0x1,0xd9,0x1,0x1,0x2,0xf1,0x1, +0xbc,0x1,0x9a,0x1,0x70,0x1,0x47,0x1,0x54,0x1,0x64,0x1, +0x2b,0x1,0xf9,0x0,0x16,0x1,0x2f,0x1,0x24,0x1,0xc,0x1, +0xd4,0x0,0xad,0x0,0xc0,0x0,0xdd,0x0,0xc9,0x0,0x5e,0x0, +0x2,0x0,0xc,0x0,0x1,0x0,0xda,0xff,0xef,0xff,0xf3,0xff, +0xdf,0xff,0xd9,0xff,0xba,0xff,0xa9,0xff,0xb0,0xff,0x9c,0xff, +0x7b,0xff,0x4d,0xff,0x26,0xff,0x1a,0xff,0x13,0xff,0x25,0xff, +0x24,0xff,0xe4,0xfe,0xe8,0xfe,0x30,0xff,0x13,0xff,0xcf,0xfe, +0xf2,0xfe,0x20,0xff,0xf6,0xfe,0xc8,0xfe,0xd5,0xfe,0xdf,0xfe, +0xa9,0xfe,0x66,0xfe,0x59,0xfe,0x59,0xfe,0x56,0xfe,0x74,0xfe, +0x7d,0xfe,0x7e,0xfe,0xaa,0xfe,0xbd,0xfe,0xb4,0xfe,0xc4,0xfe, +0xe1,0xfe,0xb,0xff,0x16,0xff,0xfa,0xfe,0xf1,0xfe,0xe7,0xfe, +0xd6,0xfe,0xc4,0xfe,0x94,0xfe,0x7e,0xfe,0xa4,0xfe,0xe4,0xfe, +0x22,0xff,0x46,0xff,0x82,0xff,0xd8,0xff,0xe5,0xff,0xcb,0xff, +0xe1,0xff,0x3,0x0,0x5,0x0,0xf7,0xff,0xe,0x0,0x3e,0x0, +0x50,0x0,0x58,0x0,0x73,0x0,0xb3,0x0,0x16,0x1,0x3f,0x1, +0x2b,0x1,0x49,0x1,0x8a,0x1,0xa0,0x1,0xa1,0x1,0xb3,0x1, +0xc2,0x1,0xce,0x1,0xf7,0x1,0x26,0x2,0x3f,0x2,0x51,0x2, +0x5b,0x2,0x7b,0x2,0xc4,0x2,0xe2,0x2,0xe3,0x2,0x37,0x3, +0x97,0x3,0xa7,0x3,0xc5,0x3,0x14,0x4,0x53,0x4,0x8d,0x4, +0xd7,0x4,0xf,0x5,0x22,0x5,0x42,0x5,0x9a,0x5,0xf6,0x5, +0x39,0x6,0x82,0x6,0xd1,0x6,0x32,0x7,0x9e,0x7,0x7,0x8, +0xb0,0x8,0x74,0x9,0xe3,0x9,0xc,0xa,0x2b,0xa,0x53,0xa, +0x67,0xa,0x2e,0xa,0xc7,0x9,0x57,0x9,0xe7,0x8,0x93,0x8, +0x47,0x8,0x17,0x8,0xb,0x8,0xc1,0x7,0x6c,0x7,0x75,0x7, +0x67,0x7,0xee,0x6,0x52,0x6,0x92,0x5,0x9e,0x4,0xa1,0x3, +0x88,0x2,0x45,0x1,0xf7,0xff,0xb2,0xfe,0xb6,0xfd,0x2,0xfd, +0x32,0xfc,0x5a,0xfb,0xc0,0xfa,0x63,0xfa,0x2e,0xfa,0xe4,0xf9, +0x78,0xf9,0x17,0xf9,0x98,0xf8,0xfa,0xf7,0x68,0xf7,0xd1,0xf6, +0x31,0xf6,0x72,0xf5,0x7d,0xf4,0xb0,0xf3,0x4b,0xf3,0x16,0xf3, +0xb,0xf3,0x32,0xf3,0x5c,0xf3,0xcd,0xf3,0xb2,0xf4,0x66,0xf5, +0xb9,0xf5,0x7,0xf6,0x45,0xf6,0x83,0xf6,0xaf,0xf6,0xa1,0xf6, +0xa9,0xf6,0xbf,0xf6,0xda,0xf6,0x54,0xf7,0x3,0xf8,0xc6,0xf8, +0xc3,0xf9,0xd1,0xfa,0xe9,0xfb,0xdb,0xfc,0x93,0xfd,0x73,0xfe, +0x27,0xff,0x44,0xff,0x5c,0xff,0xc0,0xff,0x16,0x0,0x35,0x0, +0x5b,0x0,0xbc,0x0,0x31,0x1,0x74,0x1,0x92,0x1,0xe8,0x1, +0x6b,0x2,0xab,0x2,0xc5,0x2,0xe9,0x2,0x6,0x3,0x2c,0x3, +0x1f,0x3,0xb8,0x2,0x5e,0x2,0x3d,0x2,0x33,0x2,0xfe,0x1, +0x95,0x1,0x70,0x1,0xa2,0x1,0xcc,0x1,0xa6,0x1,0x42,0x1, +0x32,0x1,0x6d,0x1,0x53,0x1,0xed,0x0,0x8c,0x0,0x63,0x0, +0x81,0x0,0x89,0x0,0x3e,0x0,0xfd,0xff,0x23,0x0,0x7d,0x0, +0xae,0x0,0xbc,0x0,0xee,0x0,0x4d,0x1,0x76,0x1,0x46,0x1, +0x4b,0x1,0x9c,0x1,0xb2,0x1,0x99,0x1,0x77,0x1,0x4e,0x1, +0x83,0x1,0x1,0x2,0x47,0x2,0x70,0x2,0xb7,0x2,0xe7,0x2, +0xed,0x2,0x4,0x3,0x29,0x3,0x30,0x3,0x3,0x3,0x9b,0x2, +0x3a,0x2,0x1d,0x2,0x6,0x2,0xaa,0x1,0x1e,0x1,0xb7,0x0, +0xa9,0x0,0xb0,0x0,0x7b,0x0,0x19,0x0,0xcf,0xff,0xc9,0xff, +0xa1,0xff,0x6,0xff,0x71,0xfe,0x32,0xfe,0xe6,0xfd,0x4a,0xfd, +0xa0,0xfc,0x28,0xfc,0xc5,0xfb,0x6a,0xfb,0xf3,0xfa,0x59,0xfa, +0x1f,0xfa,0x1d,0xfa,0xcc,0xf9,0x85,0xf9,0x6b,0xf9,0x4d,0xf9, +0x5c,0xf9,0x3c,0xf9,0xa9,0xf8,0x54,0xf8,0x75,0xf8,0x69,0xf8, +0x1e,0xf8,0x13,0xf8,0x5b,0xf8,0xc8,0xf8,0x2f,0xf9,0x6a,0xf9, +0xb2,0xf9,0x21,0xfa,0x93,0xfa,0xff,0xfa,0x41,0xfb,0x83,0xfb, +0x19,0xfc,0xc8,0xfc,0x54,0xfd,0xab,0xfd,0xf7,0xfd,0x8b,0xfe, +0xd,0xff,0x43,0xff,0x94,0xff,0x11,0x0,0xa3,0x0,0xd,0x1, +0x16,0x1,0x44,0x1,0xc5,0x1,0x1b,0x2,0x47,0x2,0x54,0x2, +0x48,0x2,0x71,0x2,0x9f,0x2,0x8b,0x2,0x6f,0x2,0x71,0x2, +0x73,0x2,0x3b,0x2,0xb2,0x1,0x5d,0x1,0x66,0x1,0x2e,0x1, +0xba,0x0,0x8c,0x0,0x62,0x0,0x18,0x0,0xd0,0xff,0x5a,0xff, +0xf4,0xfe,0xd3,0xfe,0x8d,0xfe,0x2f,0xfe,0xcc,0xfd,0x43,0xfd, +0xfe,0xfc,0xf5,0xfc,0xa1,0xfc,0x19,0xfc,0xd1,0xfb,0xc1,0xfb, +0x65,0xfb,0xdf,0xfa,0xcf,0xfa,0xe5,0xfa,0xb8,0xfa,0x7e,0xfa, +0x66,0xfa,0x93,0xfa,0xde,0xfa,0xe6,0xfa,0xc5,0xfa,0xc0,0xfa, +0xea,0xfa,0x18,0xfb,0x1e,0xfb,0x12,0xfb,0x2,0xfb,0x2,0xfb, +0x3c,0xfb,0x99,0xfb,0xe6,0xfb,0x2b,0xfc,0x74,0xfc,0xae,0xfc, +0xf0,0xfc,0x5e,0xfd,0xdf,0xfd,0x1d,0xfe,0xea,0xfd,0xbf,0xfd, +0x7,0xfe,0x5c,0xfe,0x78,0xfe,0x7e,0xfe,0x73,0xfe,0x63,0xfe, +0x62,0xfe,0x7f,0xfe,0xb1,0xfe,0xac,0xfe,0x65,0xfe,0x3b,0xfe, +0x5d,0xfe,0xa2,0xfe,0xb5,0xfe,0x81,0xfe,0x43,0xfe,0x11,0xfe, +0xf9,0xfd,0xf5,0xfd,0xbf,0xfd,0x68,0xfd,0x1c,0xfd,0xc7,0xfc, +0x94,0xfc,0x95,0xfc,0xaf,0xfc,0xeb,0xfc,0xda,0xfc,0x67,0xfc, +0x5c,0xfc,0xb7,0xfc,0xd8,0xfc,0xd1,0xfc,0xce,0xfc,0xae,0xfc, +0x96,0xfc,0xac,0xfc,0xa6,0xfc,0x7a,0xfc,0x8f,0xfc,0xd3,0xfc, +0x0,0xfd,0x26,0xfd,0x4e,0xfd,0x92,0xfd,0xf1,0xfd,0xf,0xfe, +0x3,0xfe,0x4f,0xfe,0xdd,0xfe,0x3c,0xff,0x64,0xff,0x63,0xff, +0x61,0xff,0x9c,0xff,0xc6,0xff,0xc6,0xff,0x5,0x0,0x64,0x0, +0x85,0x0,0x75,0x0,0x88,0x0,0xde,0x0,0x35,0x1,0x5c,0x1, +0x46,0x1,0x24,0x1,0x52,0x1,0x79,0x1,0x3c,0x1,0xe3,0x0, +0x8f,0x0,0x40,0x0,0x17,0x0,0xa,0x0,0x2,0x0,0xde,0xff, +0x99,0xff,0x62,0xff,0x56,0xff,0x60,0xff,0x4b,0xff,0x11,0xff, +0xcf,0xfe,0x75,0xfe,0x30,0xfe,0x48,0xfe,0x3d,0xfe,0x94,0xfd, +0xf0,0xfc,0xda,0xfc,0xe9,0xfc,0xb7,0xfc,0x64,0xfc,0x44,0xfc, +0x5e,0xfc,0x40,0xfc,0xfd,0xfb,0x21,0xfc,0x45,0xfc,0xeb,0xfb, +0xc0,0xfb,0x5,0xfc,0x16,0xfc,0xfb,0xfb,0xa,0xfc,0x23,0xfc, +0x15,0xfc,0xe1,0xfb,0xcf,0xfb,0xfe,0xfb,0x20,0xfc,0x21,0xfc, +0x40,0xfc,0x8e,0xfc,0xc8,0xfc,0xf2,0xfc,0x5a,0xfd,0xa3,0xfd, +0x99,0xfd,0xb3,0xfd,0xdc,0xfd,0xfb,0xfd,0x2c,0xfe,0x3d,0xfe, +0x4a,0xfe,0x54,0xfe,0x39,0xfe,0x48,0xfe,0x78,0xfe,0x97,0xfe, +0xb2,0xfe,0xc2,0xfe,0xd0,0xfe,0xde,0xfe,0x5,0xff,0x51,0xff, +0x5e,0xff,0x26,0xff,0xfc,0xfe,0xe6,0xfe,0xf6,0xfe,0x6,0xff, +0xc5,0xfe,0x90,0xfe,0xa0,0xfe,0xb7,0xfe,0xc7,0xfe,0x93,0xfe, +0x18,0xfe,0xd9,0xfd,0xd5,0xfd,0xd3,0xfd,0xcc,0xfd,0xcc,0xfd, +0xde,0xfd,0xcc,0xfd,0xb9,0xfd,0xd0,0xfd,0xd4,0xfd,0xf1,0xfd, +0xf5,0xfd,0x9d,0xfd,0x9b,0xfd,0xd9,0xfd,0xcd,0xfd,0xa3,0xfd, +0x53,0xfd,0x33,0xfd,0xa3,0xfd,0x6,0xfe,0x2a,0xfe,0x65,0xfe, +0x96,0xfe,0xc2,0xfe,0x11,0xff,0x3f,0xff,0x37,0xff,0x75,0xff, +0xda,0xff,0xd3,0xff,0xa0,0xff,0xc2,0xff,0x11,0x0,0x33,0x0, +0x27,0x0,0x4b,0x0,0xa9,0x0,0xbb,0x0,0x82,0x0,0x9b,0x0, +0xe,0x1,0x5a,0x1,0x46,0x1,0x23,0x1,0x42,0x1,0x62,0x1, +0x56,0x1,0x41,0x1,0x6,0x1,0xb0,0x0,0x81,0x0,0x59,0x0, +0x23,0x0,0x8,0x0,0x9,0x0,0xfe,0xff,0xd7,0xff,0xcb,0xff, +0x1,0x0,0x55,0x0,0x68,0x0,0x1f,0x0,0xd4,0xff,0x99,0xff, +0x4b,0xff,0xe1,0xfe,0x53,0xfe,0xfa,0xfd,0xd9,0xfd,0x8e,0xfd, +0x70,0xfd,0x91,0xfd,0x80,0xfd,0x67,0xfd,0x85,0xfd,0x9d,0xfd, +0x8a,0xfd,0x86,0xfd,0x9b,0xfd,0x88,0xfd,0x54,0xfd,0x29,0xfd, +0x19,0xfd,0xf4,0xfc,0x85,0xfc,0x39,0xfc,0x59,0xfc,0x7c,0xfc, +0x7d,0xfc,0x89,0xfc,0xb0,0xfc,0xe1,0xfc,0x15,0xfd,0x64,0xfd, +0xca,0xfd,0x18,0xfe,0x3b,0xfe,0x53,0xfe,0x80,0xfe,0xa4,0xfe, +0xb4,0xfe,0xba,0xfe,0xb4,0xfe,0xaf,0xfe,0xc8,0xfe,0x23,0xff, +0x9c,0xff,0xf3,0xff,0x34,0x0,0x7e,0x0,0xf1,0x0,0x65,0x1, +0x94,0x1,0xb4,0x1,0xe9,0x1,0x19,0x2,0x4b,0x2,0x5b,0x2, +0x55,0x2,0x55,0x2,0x5f,0x2,0x9e,0x2,0xd1,0x2,0xd4,0x2, +0xa,0x3,0x42,0x3,0x4f,0x3,0x80,0x3,0xa6,0x3,0xb6,0x3, +0xd8,0x3,0xd7,0x3,0xdf,0x3,0x1e,0x4,0x4b,0x4,0x4b,0x4, +0x3e,0x4,0x98,0x4,0x66,0x5,0xef,0x5,0x3f,0x6,0xb1,0x6, +0x22,0x7,0xa9,0x7,0x0,0x8,0xca,0x7,0x67,0x7,0x3a,0x7, +0x2d,0x7,0xf5,0x6,0xac,0x6,0x91,0x6,0x79,0x6,0x7b,0x6, +0x92,0x6,0x90,0x6,0xb9,0x6,0xd0,0x6,0x6d,0x6,0xe7,0x5, +0x88,0x5,0x5,0x5,0x1,0x4,0xce,0x2,0xd0,0x1,0xd0,0x0, +0xe1,0xff,0x29,0xff,0x7e,0xfe,0xf1,0xfd,0x81,0xfd,0x3,0xfd, +0x69,0xfc,0xe3,0xfb,0xb2,0xfb,0x84,0xfb,0x2,0xfb,0x62,0xfa, +0xbf,0xf9,0x1d,0xf9,0x78,0xf8,0xbb,0xf7,0x5,0xf7,0x62,0xf6, +0xab,0xf5,0xf2,0xf4,0x75,0xf4,0x53,0xf4,0xa3,0xf4,0x29,0xf5, +0x7b,0xf5,0xc1,0xf5,0x50,0xf6,0xeb,0xf6,0x47,0xf7,0x65,0xf7, +0x54,0xf7,0x44,0xf7,0x6c,0xf7,0xa4,0xf7,0xcb,0xf7,0x20,0xf8, +0xab,0xf8,0x4d,0xf9,0x8,0xfa,0xd5,0xfa,0xd7,0xfb,0xde,0xfc, +0xbd,0xfd,0xc4,0xfe,0xaf,0xff,0x34,0x0,0xbc,0x0,0x50,0x1, +0xd2,0x1,0x5e,0x2,0xd3,0x2,0xb,0x3,0x20,0x3,0x59,0x3, +0xd6,0x3,0x4e,0x4,0xb5,0x4,0x3c,0x5,0xb3,0x5,0xb,0x6, +0x62,0x6,0xa0,0x6,0xd7,0x6,0x2,0x7,0xe6,0x6,0xa4,0x6, +0x5a,0x6,0xd,0x6,0xde,0x5,0xac,0x5,0x6a,0x5,0x2f,0x5, +0x6,0x5,0x6,0x5,0x8,0x5,0xa,0x5,0xfc,0x4,0x9a,0x4, +0x4c,0x4,0x29,0x4,0xc6,0x3,0x5e,0x3,0x10,0x3,0xd4,0x2, +0xcf,0x2,0xc1,0x2,0x91,0x2,0x6d,0x2,0x6e,0x2,0x7b,0x2, +0x4b,0x2,0xef,0x1,0xb0,0x1,0x97,0x1,0x87,0x1,0x5d,0x1, +0x34,0x1,0x23,0x1,0xff,0x0,0xe0,0x0,0xf7,0x0,0x18,0x1, +0x39,0x1,0x83,0x1,0xab,0x1,0x6f,0x1,0x28,0x1,0x16,0x1, +0x2f,0x1,0x47,0x1,0x20,0x1,0xf4,0x0,0xdd,0x0,0xa7,0x0, +0x73,0x0,0x4c,0x0,0x16,0x0,0xb,0x0,0x3f,0x0,0x58,0x0, +0x38,0x0,0x37,0x0,0x61,0x0,0x75,0x0,0x52,0x0,0xd1,0xff, +0x43,0xff,0xff,0xfe,0x9f,0xfe,0x8,0xfe,0x90,0xfd,0x3a,0xfd, +0x11,0xfd,0x4,0xfd,0xe5,0xfc,0xf3,0xfc,0x2b,0xfd,0x22,0xfd, +0xed,0xfc,0xbc,0xfc,0x7b,0xfc,0x62,0xfc,0x69,0xfc,0x29,0xfc, +0xad,0xfb,0x5e,0xfb,0x76,0xfb,0xb0,0xfb,0xc6,0xfb,0xea,0xfb, +0x34,0xfc,0x90,0xfc,0xe9,0xfc,0x28,0xfd,0x79,0xfd,0xfc,0xfd, +0x75,0xfe,0xd5,0xfe,0x43,0xff,0xa3,0xff,0xf4,0xff,0x55,0x0, +0x84,0x0,0x95,0x0,0xea,0x0,0x3f,0x1,0x7e,0x1,0xdd,0x1, +0x3b,0x2,0xb0,0x2,0x34,0x3,0xb9,0x3,0x4d,0x4,0x9e,0x4, +0xd4,0x4,0x26,0x5,0x4b,0x5,0x4d,0x5,0x2c,0x5,0xf4,0x4, +0xea,0x4,0xe1,0x4,0xe4,0x4,0x1d,0x5,0x29,0x5,0xe7,0x4, +0xad,0x4,0x82,0x4,0x37,0x4,0xf1,0x3,0xb2,0x3,0x53,0x3, +0x25,0x3,0x3,0x3,0x91,0x2,0x4d,0x2,0x45,0x2,0xf7,0x1, +0x83,0x1,0x1a,0x1,0xbd,0x0,0x72,0x0,0x22,0x0,0xd4,0xff, +0x8c,0xff,0x2f,0xff,0xd8,0xfe,0xa7,0xfe,0x8a,0xfe,0x7c,0xfe, +0x66,0xfe,0x39,0xfe,0x21,0xfe,0x26,0xfe,0x1a,0xfe,0xfb,0xfd, +0xe0,0xfd,0xe1,0xfd,0xf9,0xfd,0x17,0xfe,0x2c,0xfe,0x38,0xfe, +0x3a,0xfe,0x29,0xfe,0x42,0xfe,0x9e,0xfe,0xdc,0xfe,0x4,0xff, +0x4b,0xff,0x8a,0xff,0xde,0xff,0x5d,0x0,0xb5,0x0,0xe0,0x0, +0x15,0x1,0x51,0x1,0x7b,0x1,0x95,0x1,0xa8,0x1,0x96,0x1, +0x64,0x1,0x68,0x1,0xc1,0x1,0x8,0x2,0x24,0x2,0x45,0x2, +0x5c,0x2,0x85,0x2,0xaa,0x2,0xa1,0x2,0xae,0x2,0xaa,0x2, +0x65,0x2,0x28,0x2,0xe7,0x1,0x8a,0x1,0x3a,0x1,0x14,0x1, +0xe4,0x0,0x91,0x0,0x73,0x0,0x5a,0x0,0x1,0x0,0xde,0xff, +0xf4,0xff,0xef,0xff,0xc3,0xff,0x82,0xff,0x69,0xff,0x44,0xff, +0xdf,0xfe,0x8f,0xfe,0x5a,0xfe,0x11,0xfe,0xab,0xfd,0x60,0xfd, +0x82,0xfd,0xac,0xfd,0x77,0xfd,0x4e,0xfd,0x6e,0xfd,0x8c,0xfd, +0x8e,0xfd,0x97,0xfd,0xa8,0xfd,0xb3,0xfd,0xaa,0xfd,0x9b,0xfd, +0xb9,0xfd,0xda,0xfd,0xc5,0xfd,0xde,0xfd,0x2e,0xfe,0x50,0xfe, +0x81,0xfe,0xdb,0xfe,0xc,0xff,0x4f,0xff,0xb9,0xff,0x7,0x0, +0x53,0x0,0x71,0x0,0x72,0x0,0xc4,0x0,0x7,0x1,0x1f,0x1, +0x46,0x1,0x4e,0x1,0x73,0x1,0xbf,0x1,0xe8,0x1,0x11,0x2, +0x14,0x2,0xff,0x1,0x15,0x2,0x5,0x2,0xe5,0x1,0xb,0x2, +0x41,0x2,0x4b,0x2,0x19,0x2,0xf8,0x1,0x23,0x2,0x45,0x2, +0x1d,0x2,0xdb,0x1,0xc1,0x1,0xd3,0x1,0xd0,0x1,0xa0,0x1, +0x70,0x1,0x51,0x1,0x3d,0x1,0x34,0x1,0xfc,0x0,0x9c,0x0, +0x6d,0x0,0x79,0x0,0x76,0x0,0x35,0x0,0xea,0xff,0xd3,0xff, +0xd3,0xff,0xdf,0xff,0xe9,0xff,0xc3,0xff,0xaf,0xff,0xc9,0xff, +0xc1,0xff,0x82,0xff,0x4e,0xff,0x45,0xff,0x2d,0xff,0xf2,0xfe, +0xc5,0xfe,0xae,0xfe,0xad,0xfe,0xa0,0xfe,0x83,0xfe,0x88,0xfe, +0xb5,0xfe,0xb,0xff,0x38,0xff,0x11,0xff,0x13,0xff,0x34,0xff, +0x27,0xff,0x12,0xff,0xfe,0xfe,0xee,0xfe,0xdd,0xfe,0xc3,0xfe, +0xbf,0xfe,0xcb,0xfe,0xea,0xfe,0x2,0xff,0xb,0xff,0x2e,0xff, +0x23,0xff,0xee,0xfe,0xf4,0xfe,0xc0,0xfe,0x24,0xfe,0xf3,0xfd, +0x27,0xfe,0x7,0xfe,0xa8,0xfd,0x67,0xfd,0x3d,0xfd,0x2e,0xfd, +0x40,0xfd,0x56,0xfd,0x5a,0xfd,0x2c,0xfd,0xd8,0xfc,0xa9,0xfc, +0xaf,0xfc,0xaa,0xfc,0x79,0xfc,0x1d,0xfc,0xaa,0xfb,0x9f,0xfb, +0xa,0xfc,0x43,0xfc,0x32,0xfc,0x30,0xfc,0x60,0xfc,0xba,0xfc, +0xec,0xfc,0xe4,0xfc,0xf4,0xfc,0x16,0xfd,0x29,0xfd,0x3e,0xfd, +0x4c,0xfd,0x55,0xfd,0x83,0xfd,0xc1,0xfd,0xda,0xfd,0x2e,0xfe, +0xf6,0xfe,0x81,0xff,0x81,0xff,0xa9,0xff,0x45,0x0,0xef,0x0, +0x94,0x1,0x16,0x2,0x28,0x2,0x3b,0x2,0xc0,0x2,0x45,0x3, +0x4f,0x3,0x0,0x3,0xc,0x3,0x96,0x3,0x6,0x4,0x46,0x4, +0x8c,0x4,0xfb,0x4,0x9a,0x5,0xc,0x6,0x3c,0x6,0x70,0x6, +0xb2,0x6,0xcb,0x6,0x92,0x6,0x34,0x6,0xe8,0x5,0xbd,0x5, +0x9c,0x5,0x40,0x5,0xf1,0x4,0x1f,0x5,0x58,0x5,0x1d,0x5, +0xc1,0x4,0xb2,0x4,0xbb,0x4,0x9b,0x4,0x58,0x4,0xec,0x3, +0x9b,0x3,0x6a,0x3,0xf8,0x2,0x7a,0x2,0x19,0x2,0xb6,0x1, +0x6b,0x1,0xb,0x1,0xac,0x0,0x93,0x0,0x86,0x0,0x7e,0x0, +0x5f,0x0,0xfb,0xff,0x9f,0xff,0x55,0xff,0xfa,0xfe,0x8d,0xfe, +0xf4,0xfd,0x78,0xfd,0x50,0xfd,0x5,0xfd,0x80,0xfc,0x3a,0xfc, +0x44,0xfc,0x41,0xfc,0x1c,0xfc,0xf,0xfc,0x17,0xfc,0x20,0xfc, +0x27,0xfc,0xf5,0xfb,0xb0,0xfb,0x9a,0xfb,0x7c,0xfb,0x62,0xfb, +0x63,0xfb,0x65,0xfb,0x65,0xfb,0x34,0xfb,0x31,0xfb,0xab,0xfb, +0xe0,0xfb,0xeb,0xfb,0x4f,0xfc,0xb5,0xfc,0x3,0xfd,0x3e,0xfd, +0x49,0xfd,0x4d,0xfd,0x65,0xfd,0x80,0xfd,0x7b,0xfd,0x5e,0xfd, +0x4f,0xfd,0x60,0xfd,0xa7,0xfd,0xfd,0xfd,0x5d,0xfe,0xd4,0xfe, +0xc,0xff,0x29,0xff,0x71,0xff,0xa6,0xff,0xd5,0xff,0x13,0x0, +0xd,0x0,0xd6,0xff,0xd1,0xff,0x10,0x0,0x5b,0x0,0x78,0x0, +0x6b,0x0,0x71,0x0,0xb3,0x0,0x10,0x1,0x3c,0x1,0x25,0x1, +0x20,0x1,0x4b,0x1,0x68,0x1,0x73,0x1,0x76,0x1,0x7f,0x1, +0xb6,0x1,0xdf,0x1,0xef,0x1,0x21,0x2,0x4d,0x2,0x5a,0x2, +0x6c,0x2,0x88,0x2,0xae,0x2,0xd3,0x2,0xcd,0x2,0xa2,0x2, +0xa6,0x2,0xd7,0x2,0x6,0x3,0x31,0x3,0x1f,0x3,0xff,0x2, +0x59,0x3,0xdc,0x3,0xf4,0x3,0xcb,0x3,0xd6,0x3,0x19,0x4, +0x4d,0x4,0x51,0x4,0x1a,0x4,0xe3,0x3,0xde,0x3,0xcb,0x3, +0x9c,0x3,0x8e,0x3,0x92,0x3,0x74,0x3,0x4b,0x3,0x6a,0x3, +0xcf,0x3,0x1a,0x4,0x20,0x4,0x6,0x4,0xf5,0x3,0xfc,0x3, +0xff,0x3,0xbf,0x3,0x60,0x3,0x19,0x3,0xe3,0x2,0xbf,0x2, +0xa4,0x2,0x91,0x2,0x9e,0x2,0xb6,0x2,0xc9,0x2,0xe7,0x2, +0x18,0x3,0x5e,0x3,0x80,0x3,0x77,0x3,0x7b,0x3,0x8c,0x3, +0x81,0x3,0x19,0x3,0x63,0x2,0xec,0x1,0xb8,0x1,0x86,0x1, +0x61,0x1,0x26,0x1,0xd7,0x0,0xa0,0x0,0x7e,0x0,0x79,0x0, +0x94,0x0,0xad,0x0,0x73,0x0,0xfd,0xff,0xc2,0xff,0x99,0xff, +0x3e,0xff,0xca,0xfe,0x16,0xfe,0x40,0xfd,0xbe,0xfc,0x97,0xfc, +0x68,0xfc,0xf5,0xfb,0x9d,0xfb,0xc5,0xfb,0x6,0xfc,0xf3,0xfb, +0xd7,0xfb,0xec,0xfb,0x10,0xfc,0x19,0xfc,0xef,0xfb,0xe2,0xfb, +0x4,0xfc,0xcf,0xfb,0x71,0xfb,0x7c,0xfb,0xc4,0xfb,0xff,0xfb, +0xe,0xfc,0xf2,0xfb,0x12,0xfc,0x9c,0xfc,0x45,0xfd,0xb5,0xfd, +0xe2,0xfd,0x7,0xfe,0x5b,0xfe,0xd7,0xfe,0x24,0xff,0x20,0xff, +0x20,0xff,0x5e,0xff,0xc7,0xff,0xf8,0xff,0xc,0x0,0x89,0x0, +0x7,0x1,0x27,0x1,0x68,0x1,0xd8,0x1,0x5f,0x2,0xe4,0x2, +0x8,0x3,0x5,0x3,0x62,0x3,0xe4,0x3,0x1a,0x4,0x16,0x4, +0x6,0x4,0x26,0x4,0x7b,0x4,0x97,0x4,0x6e,0x4,0x6e,0x4, +0xb6,0x4,0xed,0x4,0xcf,0x4,0xa5,0x4,0xa5,0x4,0xb6,0x4, +0xab,0x4,0x83,0x4,0x68,0x4,0x5a,0x4,0x6d,0x4,0x85,0x4, +0x4d,0x4,0x2a,0x4,0x53,0x4,0x43,0x4,0xdd,0x3,0xa9,0x3, +0xc7,0x3,0xa8,0x3,0x5e,0x3,0x3f,0x3,0xfd,0x2,0xcc,0x2, +0xbf,0x2,0x5c,0x2,0xf9,0x1,0xf1,0x1,0xdb,0x1,0x9b,0x1, +0x5f,0x1,0x27,0x1,0xf8,0x0,0xcd,0x0,0xa8,0x0,0x95,0x0, +0x96,0x0,0x99,0x0,0x6f,0x0,0x26,0x0,0xf6,0xff,0xd0,0xff, +0xaf,0xff,0x8b,0xff,0x65,0xff,0x59,0xff,0x71,0xff,0x96,0xff, +0x81,0xff,0x5c,0xff,0x7b,0xff,0xa1,0xff,0xc9,0xff,0xd7,0xff, +0x8c,0xff,0x5d,0xff,0x60,0xff,0x2d,0xff,0xfe,0xfe,0xf,0xff, +0xfc,0xfe,0xd0,0xfe,0xf9,0xfe,0x4a,0xff,0x90,0xff,0xbc,0xff, +0xb3,0xff,0xba,0xff,0xed,0xff,0xb,0x0,0xf5,0xff,0xd3,0xff, +0xb9,0xff,0xa8,0xff,0xb6,0xff,0x9d,0xff,0x56,0xff,0x6a,0xff, +0xb5,0xff,0xdb,0xff,0xf6,0xff,0x3,0x0,0x12,0x0,0x5a,0x0, +0xa0,0x0,0xa2,0x0,0x95,0x0,0x8e,0x0,0x76,0x0,0x6a,0x0, +0x67,0x0,0x62,0x0,0x7d,0x0,0x93,0x0,0x84,0x0,0x8e,0x0, +0xc8,0x0,0xd,0x1,0x51,0x1,0x79,0x1,0x9c,0x1,0xd1,0x1, +0xf1,0x1,0x8,0x2,0x34,0x2,0x57,0x2,0x63,0x2,0x70,0x2, +0x71,0x2,0x70,0x2,0x95,0x2,0xc2,0x2,0xfe,0x2,0x4e,0x3, +0x83,0x3,0xab,0x3,0xce,0x3,0xe,0x4,0x52,0x4,0x49,0x4, +0x4b,0x4,0x5e,0x4,0x4b,0x4,0x28,0x4,0x4,0x4,0xd,0x4, +0x18,0x4,0x2,0x4,0xfc,0x3,0xfa,0x3,0xeb,0x3,0xce,0x3, +0xc5,0x3,0xd5,0x3,0xcb,0x3,0xaf,0x3,0x94,0x3,0x85,0x3, +0x33,0x3,0xbe,0x2,0xa8,0x2,0x80,0x2,0x28,0x2,0xf,0x2, +0xb,0x2,0xe3,0x1,0xa7,0x1,0x7c,0x1,0x38,0x1,0xde,0x0, +0xb0,0x0,0x7c,0x0,0x2e,0x0,0xf2,0xff,0xd2,0xff,0xb1,0xff, +0x77,0xff,0x33,0xff,0x9,0xff,0x28,0xff,0x42,0xff,0xc,0xff, +0xd0,0xfe,0xa8,0xfe,0x9c,0xfe,0x98,0xfe,0x76,0xfe,0x6b,0xfe, +0x77,0xfe,0x73,0xfe,0x74,0xfe,0x8a,0xfe,0x8d,0xfe,0x91,0xfe, +0xb0,0xfe,0xd4,0xfe,0x17,0xff,0x3d,0xff,0x53,0xff,0xb1,0xff, +0xff,0xff,0x50,0x0,0xb4,0x0,0xc8,0x0,0xc2,0x0,0xd4,0x0, +0x6,0x1,0x5d,0x1,0x9b,0x1,0xbc,0x1,0xf3,0x1,0x3f,0x2, +0x6e,0x2,0x9c,0x2,0xea,0x2,0x2c,0x3,0x5d,0x3,0x84,0x3, +0xad,0x3,0xc3,0x3,0xb5,0x3,0xa7,0x3,0x97,0x3,0x98,0x3, +0x88,0x3,0x68,0x3,0x64,0x3,0x4d,0x3,0x39,0x3,0x23,0x3, +0xf4,0x2,0xf4,0x2,0xff,0x2,0xfd,0x2,0xea,0x2,0xb6,0x2, +0x76,0x2,0x16,0x2,0xca,0x1,0x98,0x1,0x46,0x1,0x17,0x1, +0xff,0x0,0xbf,0x0,0x89,0x0,0x88,0x0,0x99,0x0,0x77,0x0, +0x49,0x0,0x51,0x0,0x56,0x0,0x4a,0x0,0x4d,0x0,0x3e,0x0, +0x1a,0x0,0xf0,0xff,0xeb,0xff,0x1e,0x0,0x2b,0x0,0x1a,0x0, +0x39,0x0,0x4f,0x0,0x50,0x0,0x80,0x0,0xc3,0x0,0xd9,0x0, +0xeb,0x0,0x7,0x1,0x10,0x1,0x21,0x1,0x23,0x1,0x1d,0x1, +0x38,0x1,0x55,0x1,0x75,0x1,0x91,0x1,0xb2,0x1,0xde,0x1, +0x1e,0x2,0x7f,0x2,0x7e,0x2,0x38,0x2,0x3c,0x2,0x69,0x2, +0x99,0x2,0x9b,0x2,0x75,0x2,0x4b,0x2,0xf7,0x1,0xdf,0x1, +0x19,0x2,0x11,0x2,0xc4,0x1,0x8d,0x1,0x69,0x1,0x60,0x1, +0x91,0x1,0x9f,0x1,0x75,0x1,0x40,0x1,0xfb,0x0,0xd4,0x0, +0x91,0x0,0x38,0x0,0x1c,0x0,0xc,0x0,0xfa,0xff,0xc8,0xff, +0xa5,0xff,0xb0,0xff,0x89,0xff,0x8a,0xff,0x9e,0xff,0x74,0xff, +0x8e,0xff,0xc9,0xff,0xe0,0xff,0xdc,0xff,0xac,0xff,0xad,0xff, +0xe3,0xff,0xda,0xff,0xbb,0xff,0xe0,0xff,0x20,0x0,0x3f,0x0, +0x68,0x0,0xc0,0x0,0xa,0x1,0x3d,0x1,0x8c,0x1,0xb9,0x1, +0xd5,0x1,0x23,0x2,0x50,0x2,0x60,0x2,0x59,0x2,0x36,0x2, +0x5e,0x2,0x8e,0x2,0x76,0x2,0x5c,0x2,0x77,0x2,0xc0,0x2, +0xf4,0x2,0xb,0x3,0x14,0x3,0x1,0x3,0x0,0x3,0x1a,0x3, +0x20,0x3,0xfa,0x2,0xcc,0x2,0xa5,0x2,0x70,0x2,0x39,0x2, +0xf,0x2,0xf8,0x1,0xe9,0x1,0xda,0x1,0xba,0x1,0x77,0x1, +0x4e,0x1,0x31,0x1,0xf7,0x0,0xc9,0x0,0x83,0x0,0x27,0x0, +0xed,0xff,0xb5,0xff,0x6b,0xff,0x36,0xff,0x1d,0xff,0xfe,0xfe, +0xd9,0xfe,0xb2,0xfe,0x9e,0xfe,0xcc,0xfe,0xe2,0xfe,0xac,0xfe, +0x97,0xfe,0xb4,0xfe,0xc8,0xfe,0xc1,0xfe,0xa7,0xfe,0xa1,0xfe, +0xa8,0xfe,0xb2,0xfe,0xb5,0xfe,0x9f,0xfe,0xac,0xfe,0xee,0xfe, +0x38,0xff,0x7f,0xff,0xb1,0xff,0xd7,0xff,0xff,0xff,0x28,0x0, +0x71,0x0,0xc6,0x0,0xed,0x0,0xd1,0x0,0xc7,0x0,0x4,0x1, +0x27,0x1,0x26,0x1,0x3a,0x1,0x60,0x1,0x98,0x1,0xcb,0x1, +0xf9,0x1,0x11,0x2,0x6,0x2,0x17,0x2,0x42,0x2,0x48,0x2, +0x17,0x2,0xfe,0x1,0x2,0x2,0xdc,0x1,0xbc,0x1,0xab,0x1, +0x99,0x1,0x98,0x1,0x7e,0x1,0x62,0x1,0x4f,0x1,0x4f,0x1, +0x70,0x1,0x6e,0x1,0x4f,0x1,0x2c,0x1,0xf6,0x0,0xb8,0x0, +0x7e,0x0,0x5d,0x0,0x3f,0x0,0x7,0x0,0xd5,0xff,0xcf,0xff, +0xd8,0xff,0xc3,0xff,0xc3,0xff,0xd8,0xff,0xc9,0xff,0xb1,0xff, +0xad,0xff,0xb0,0xff,0x97,0xff,0x7e,0xff,0x86,0xff,0x8c,0xff, +0x93,0xff,0x8d,0xff,0x8e,0xff,0xba,0xff,0xd3,0xff,0xe5,0xff, +0x13,0x0,0x2c,0x0,0x2c,0x0,0x42,0x0,0x6e,0x0,0x81,0x0, +0x8c,0x0,0xa0,0x0,0x9c,0x0,0x9f,0x0,0xb0,0x0,0xa5,0x0, +0xa5,0x0,0xd4,0x0,0xea,0x0,0xde,0x0,0xe0,0x0,0xf0,0x0, +0x7,0x1,0xfb,0x0,0xcb,0x0,0xa9,0x0,0x87,0x0,0x5d,0x0, +0x3c,0x0,0x28,0x0,0x7,0x0,0xcd,0xff,0xb6,0xff,0xa4,0xff, +0x59,0xff,0x2f,0xff,0x3e,0xff,0x3c,0xff,0x35,0xff,0x3f,0xff, +0x1b,0xff,0xc9,0xfe,0x7f,0xfe,0x38,0xfe,0x4,0xfe,0xfa,0xfd, +0xee,0xfd,0xcb,0xfd,0xc3,0xfd,0xcf,0xfd,0xb3,0xfd,0xa3,0xfd, +0xb0,0xfd,0x96,0xfd,0x79,0xfd,0x7e,0xfd,0x93,0xfd,0xb9,0xfd, +0xe9,0xfd,0xfd,0xfd,0xf7,0xfd,0x0,0xfe,0xe,0xfe,0x29,0xfe, +0x4b,0xfe,0x51,0xfe,0x61,0xfe,0x88,0xfe,0xb2,0xfe,0xe9,0xfe, +0x1d,0xff,0x3e,0xff,0x6c,0xff,0xc1,0xff,0xf5,0xff,0xe,0x0, +0x34,0x0,0x48,0x0,0x63,0x0,0x78,0x0,0x81,0x0,0x9a,0x0, +0xb3,0x0,0xf0,0x0,0x6,0x1,0xd8,0x0,0xdd,0x0,0xee,0x0, +0xdd,0x0,0xef,0x0,0xd,0x1,0xfd,0x0,0xe6,0x0,0xc8,0x0, +0x8f,0x0,0x7a,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x4c,0x0, +0x9,0x0,0xf7,0xff,0xff,0xff,0xe5,0xff,0xb7,0xff,0x8f,0xff, +0x35,0xff,0xfc,0xfe,0xf5,0xfe,0xbf,0xfe,0xa9,0xfe,0xad,0xfe, +0x88,0xfe,0x54,0xfe,0x23,0xfe,0x27,0xfe,0x25,0xfe,0x7,0xfe, +0x28,0xfe,0x5b,0xfe,0x45,0xfe,0xc,0xfe,0xe3,0xfd,0xce,0xfd, +0xe0,0xfd,0xec,0xfd,0xc6,0xfd,0xb3,0xfd,0xc1,0xfd,0xc8,0xfd, +0xcf,0xfd,0x7,0xfe,0x44,0xfe,0x36,0xfe,0x47,0xfe,0x6a,0xfe, +0x67,0xfe,0x8d,0xfe,0xa2,0xfe,0xa1,0xfe,0xba,0xfe,0xb6,0xfe, +0xb2,0xfe,0xc8,0xfe,0xef,0xfe,0x1f,0xff,0x53,0xff,0x5f,0xff, +0x38,0xff,0x31,0xff,0x37,0xff,0x4c,0xff,0x8b,0xff,0xa0,0xff, +0x9c,0xff,0x99,0xff,0x88,0xff,0x76,0xff,0x3e,0xff,0xb,0xff, +0xf,0xff,0x4,0xff,0xdf,0xfe,0xde,0xfe,0xce,0xfe,0xa2,0xfe, +0x9d,0xfe,0x9c,0xfe,0xa9,0xfe,0xc9,0xfe,0xbe,0xfe,0xa6,0xfe, +0x8c,0xfe,0x7f,0xfe,0x8c,0xfe,0x84,0xfe,0x70,0xfe,0x5b,0xfe, +0x5d,0xfe,0x5f,0xfe,0x34,0xfe,0x30,0xfe,0x5a,0xfe,0x63,0xfe, +0x54,0xfe,0x55,0xfe,0x63,0xfe,0x74,0xfe,0x88,0xfe,0x96,0xfe, +0xa2,0xfe,0xbe,0xfe,0xe4,0xfe,0xef,0xfe,0xcc,0xfe,0xae,0xfe, +0xb0,0xfe,0xea,0xfe,0x39,0xff,0x3f,0xff,0x26,0xff,0x23,0xff, +0x25,0xff,0x23,0xff,0x2e,0xff,0x57,0xff,0x69,0xff,0x68,0xff, +0x71,0xff,0x85,0xff,0xa4,0xff,0x8e,0xff,0x5d,0xff,0x5a,0xff, +0x82,0xff,0x8f,0xff,0x54,0xff,0x48,0xff,0x43,0xff,0xc,0xff, +0x15,0xff,0x9,0xff,0xcf,0xfe,0xcb,0xfe,0xce,0xfe,0xce,0xfe, +0xd1,0xfe,0xbd,0xfe,0x95,0xfe,0x6b,0xfe,0x5a,0xfe,0x4e,0xfe, +0x2d,0xfe,0x16,0xfe,0x15,0xfe,0xea,0xfd,0xbe,0xfd,0xca,0xfd, +0xc6,0xfd,0xa7,0xfd,0x7c,0xfd,0x5b,0xfd,0x5f,0xfd,0x5b,0xfd, +0x68,0xfd,0x7c,0xfd,0x7b,0xfd,0x90,0xfd,0x73,0xfd,0x3e,0xfd, +0x4d,0xfd,0x5f,0xfd,0x58,0xfd,0x5e,0xfd,0x73,0xfd,0x8e,0xfd, +0x8c,0xfd,0x84,0xfd,0xc1,0xfd,0x7,0xfe,0x10,0xfe,0x17,0xfe, +0x20,0xfe,0x3c,0xfe,0x8b,0xfe,0xaf,0xfe,0xa2,0xfe,0xb5,0xfe, +0xbb,0xfe,0xa1,0xfe,0x9f,0xfe,0xa3,0xfe,0xb6,0xfe,0xed,0xfe, +0xe7,0xfe,0xdf,0xfe,0x22,0xff,0x44,0xff,0x38,0xff,0x1a,0xff, +0x5,0xff,0x1f,0xff,0x1c,0xff,0xf6,0xfe,0xef,0xfe,0x3,0xff, +0xf7,0xfe,0xd0,0xfe,0xd1,0xfe,0xc9,0xfe,0xb5,0xfe,0x9d,0xfe, +0x74,0xfe,0x89,0xfe,0xa4,0xfe,0x91,0xfe,0x82,0xfe,0x4b,0xfe, +0x17,0xfe,0x3e,0xfe,0x65,0xfe,0x37,0xfe,0x8,0xfe,0x4,0xfe, +0x6,0xfe,0x3,0xfe,0xe3,0xfd,0xdf,0xfd,0x4,0xfe,0xea,0xfd, +0xc8,0xfd,0xda,0xfd,0xf7,0xfd,0x21,0xfe,0x3a,0xfe,0x32,0xfe, +0x2f,0xfe,0x34,0xfe,0x30,0xfe,0x35,0xfe,0x51,0xfe,0x5f,0xfe, +0x71,0xfe,0x9b,0xfe,0xaa,0xfe,0xaf,0xfe,0xd0,0xfe,0xed,0xfe, +0x5,0xff,0x2a,0xff,0x37,0xff,0x11,0xff,0xb,0xff,0x33,0xff, +0x3b,0xff,0x37,0xff,0x3c,0xff,0x2f,0xff,0x35,0xff,0x4e,0xff, +0x49,0xff,0x47,0xff,0x47,0xff,0x36,0xff,0x40,0xff,0x50,0xff, +0x43,0xff,0x35,0xff,0x3c,0xff,0x43,0xff,0x2a,0xff,0xb,0xff, +0x6,0xff,0xf,0xff,0x5,0xff,0xea,0xfe,0x0,0xff,0x1c,0xff, +0xd,0xff,0x12,0xff,0x14,0xff,0x3,0xff,0x8,0xff,0x8,0xff, +0xe9,0xfe,0xcd,0xfe,0xe5,0xfe,0xe9,0xfe,0xb5,0xfe,0x9d,0xfe, +0x8e,0xfe,0x6a,0xfe,0x69,0xfe,0x84,0xfe,0x96,0xfe,0x90,0xfe, +0x7d,0xfe,0x7b,0xfe,0x8f,0xfe,0x95,0xfe,0x88,0xfe,0x76,0xfe, +0x5b,0xfe,0x50,0xfe,0x43,0xfe,0x3b,0xfe,0x61,0xfe,0x6a,0xfe, +0x63,0xfe,0x7b,0xfe,0x75,0xfe,0x84,0xfe,0x9f,0xfe,0x83,0xfe, +0x79,0xfe,0x84,0xfe,0xb7,0xfe,0xfa,0xfe,0xdb,0xfe,0xb8,0xfe, +0xb8,0xfe,0xad,0xfe,0xc4,0xfe,0xee,0xfe,0xc,0xff,0x4,0xff, +0xea,0xfe,0x1,0xff,0x9,0xff,0xf5,0xfe,0xa,0xff,0x27,0xff, +0x35,0xff,0x3e,0xff,0x37,0xff,0x37,0xff,0x3d,0xff,0x2c,0xff, +0x46,0xff,0x5d,0xff,0x27,0xff,0x9,0xff,0xfe,0xfe,0xfd,0xfe, +0x22,0xff,0x17,0xff,0xfe,0xfe,0xd1,0xfe,0x92,0xfe,0xaa,0xfe, +0xc3,0xfe,0xcb,0xfe,0xf3,0xfe,0xf0,0xfe,0xf8,0xfe,0x27,0xff, +0x29,0xff,0x10,0xff,0x1e,0xff,0x48,0xff,0x52,0xff,0x53,0xff, +0x6c,0xff,0x6f,0xff,0x4d,0xff,0x29,0xff,0x29,0xff,0x35,0xff, +0x35,0xff,0x4e,0xff,0x6a,0xff,0x7e,0xff,0x94,0xff,0x96,0xff, +0xa1,0xff,0xb0,0xff,0xaf,0xff,0xc8,0xff,0xde,0xff,0xcf,0xff, +0xcb,0xff,0xe3,0xff,0xf8,0xff,0xde,0xff,0xb9,0xff,0xc1,0xff, +0xbf,0xff,0xa1,0xff,0x9c,0xff,0xba,0xff,0xf7,0xff,0x13,0x0, +0xf2,0xff,0xeb,0xff,0x8,0x0,0x21,0x0,0x21,0x0,0x4,0x0, +0x2,0x0,0xb,0x0,0xea,0xff,0xd6,0xff,0xd5,0xff,0xb6,0xff, +0xb1,0xff,0xb0,0xff,0x8f,0xff,0xa0,0xff,0xa7,0xff,0x7b,0xff, +0x82,0xff,0x93,0xff,0x80,0xff,0x71,0xff,0x69,0xff,0x55,0xff, +0x3b,0xff,0x35,0xff,0x33,0xff,0x1c,0xff,0xff,0xfe,0xf,0xff, +0x4b,0xff,0x53,0xff,0x3a,0xff,0x40,0xff,0x3b,0xff,0x26,0xff, +0x37,0xff,0x62,0xff,0x6d,0xff,0x64,0xff,0x50,0xff,0x35,0xff, +0x4a,0xff,0x65,0xff,0x4f,0xff,0x40,0xff,0x49,0xff,0x56,0xff, +0x76,0xff,0x89,0xff,0x90,0xff,0xa9,0xff,0xa7,0xff,0xae,0xff, +0xd3,0xff,0xcd,0xff,0xbf,0xff,0xaf,0xff,0xa5,0xff,0xd6,0xff, +0xde,0xff,0xb4,0xff,0xba,0xff,0xce,0xff,0xcc,0xff,0xe0,0xff, +0x4,0x0,0x2,0x0,0xfd,0xff,0x1,0x0,0x2,0x0,0xf,0x0, +0x4,0x0,0xf6,0xff,0xf1,0xff,0xd6,0xff,0xd5,0xff,0xe6,0xff, +0xe9,0xff,0xf5,0xff,0xfd,0xff,0xf0,0xff,0xc8,0xff,0xb8,0xff, +0xc4,0xff,0xbd,0xff,0xb2,0xff,0xba,0xff,0xc3,0xff,0xa3,0xff, +0x8d,0xff,0x9c,0xff,0x88,0xff,0x85,0xff,0x86,0xff,0x6c,0xff, +0x83,0xff,0x98,0xff,0x96,0xff,0x8d,0xff,0x7e,0xff,0x8d,0xff, +0xaa,0xff,0xcf,0xff,0xcd,0xff,0xbd,0xff,0xcd,0xff,0xab,0xff, +0x8e,0xff,0x97,0xff,0xaf,0xff,0xdb,0xff,0xde,0xff,0xe5,0xff, +0xf6,0xff,0xef,0xff,0xb,0x0,0x27,0x0,0x25,0x0,0x3a,0x0, +0x4e,0x0,0x3e,0x0,0x31,0x0,0x13,0x0,0xe3,0xff,0xec,0xff, +0xe6,0xff,0xc6,0xff,0xda,0xff,0xe6,0xff,0xd3,0xff,0xdf,0xff, +0x1b,0x0,0x3d,0x0,0x42,0x0,0x3f,0x0,0x2,0x0,0xf4,0xff, +0x35,0x0,0x4b,0x0,0x2d,0x0,0xf4,0xff,0xe6,0xff,0x1,0x0, +0xf2,0xff,0xdc,0xff,0xcc,0xff,0xc0,0xff,0xc2,0xff,0xb8,0xff, +0xc6,0xff,0xe1,0xff,0xc7,0xff,0x9a,0xff,0x95,0xff,0xbf,0xff, +0xdf,0xff,0xba,0xff,0x7d,0xff,0x5f,0xff,0x4d,0xff,0x47,0xff, +0x38,0xff,0x1e,0xff,0x2b,0xff,0x31,0xff,0x2e,0xff,0x42,0xff, +0x2b,0xff,0x43,0xff,0xa3,0xff,0xae,0xff,0x99,0xff,0x90,0xff, +0x7d,0xff,0x89,0xff,0x79,0xff,0x6c,0xff,0x91,0xff,0x96,0xff, +0x9c,0xff,0xc9,0xff,0xea,0xff,0xf3,0xff,0x9,0x0,0x13,0x0, +0x12,0x0,0x4d,0x0,0x7c,0x0,0x65,0x0,0x45,0x0,0x2e,0x0, +0x48,0x0,0x80,0x0,0x70,0x0,0x54,0x0,0x5c,0x0,0x53,0x0, +0x4c,0x0,0x50,0x0,0x4d,0x0,0x4e,0x0,0x54,0x0,0x59,0x0, +0x46,0x0,0x39,0x0,0x49,0x0,0x3c,0x0,0x19,0x0,0x8,0x0, +0x4,0x0,0xf6,0xff,0xe3,0xff,0xdd,0xff,0xca,0xff,0xbf,0xff, +0xd4,0xff,0xf4,0xff,0xea,0xff,0xb3,0xff,0x96,0xff,0x8b,0xff, +0x85,0xff,0x8a,0xff,0x90,0xff,0x9a,0xff,0x7c,0xff,0x53,0xff, +0x5a,0xff,0x6b,0xff,0x61,0xff,0x5c,0xff,0x80,0xff,0x8d,0xff, +0x83,0xff,0x7d,0xff,0x56,0xff,0x63,0xff,0x9d,0xff,0xa7,0xff, +0x9f,0xff,0xa4,0xff,0xa1,0xff,0x8e,0xff,0x9a,0xff,0xb8,0xff, +0xbb,0xff,0xbe,0xff,0xb1,0xff,0xa6,0xff,0xb4,0xff,0x9f,0xff, +0x86,0xff,0xa3,0xff,0xca,0xff,0xdf,0xff,0xe5,0xff,0xd1,0xff, +0xb5,0xff,0xaf,0xff,0xcf,0xff,0xfc,0xff,0xfb,0xff,0xdb,0xff, +0xc6,0xff,0xc7,0xff,0xde,0xff,0xdf,0xff,0xe4,0xff,0x1c,0x0, +0x1f,0x0,0xf0,0xff,0xce,0xff,0x96,0xff,0x9f,0xff,0xd4,0xff, +0xb2,0xff,0x84,0xff,0x75,0xff,0x83,0xff,0xab,0xff,0xa9,0xff, +0x7d,0xff,0x63,0xff,0x6c,0xff,0x7b,0xff,0x9d,0xff,0xb9,0xff, +0x9b,0xff,0x86,0xff,0x92,0xff,0xad,0xff,0xae,0xff,0x7f,0xff, +0x67,0xff,0x72,0xff,0x9f,0xff,0xc6,0xff,0xbe,0xff,0xcd,0xff, +0xe8,0xff,0xd7,0xff,0xb3,0xff,0xb9,0xff,0xc5,0xff,0x9a,0xff, +0x96,0xff,0xbc,0xff,0xbf,0xff,0xc2,0xff,0xc7,0xff,0xc5,0xff, +0xca,0xff,0xd7,0xff,0xf1,0xff,0xfc,0xff,0xeb,0xff,0xf4,0xff, +0x14,0x0,0x12,0x0,0xf8,0xff,0xec,0xff,0xf2,0xff,0xe6,0xff, +0xd6,0xff,0xf9,0xff,0x11,0x0,0xf2,0xff,0xe6,0xff,0x5,0x0, +0x23,0x0,0x34,0x0,0x29,0x0,0xfd,0xff,0xe1,0xff,0xd0,0xff, +0xb0,0xff,0x89,0xff,0x7a,0xff,0x8e,0xff,0x85,0xff,0x6c,0xff, +0x4e,0xff,0x1a,0xff,0x19,0xff,0x22,0xff,0x7,0xff,0xff,0xfe, +0x9,0xff,0x2a,0xff,0x37,0xff,0xf9,0xfe,0xcb,0xfe,0xd7,0xfe, +0xe6,0xfe,0xf4,0xfe,0xf2,0xfe,0xce,0xfe,0xb2,0xfe,0xb8,0xfe, +0xf0,0xfe,0x18,0xff,0xfe,0xfe,0xed,0xfe,0x4,0xff,0x1b,0xff, +0xe,0xff,0x2,0xff,0xf,0xff,0x3,0xff,0x0,0xff,0x2c,0xff, +0x5b,0xff,0x4e,0xff,0x2a,0xff,0x30,0xff,0x49,0xff,0x75,0xff, +0x86,0xff,0x72,0xff,0x71,0xff,0x51,0xff,0x54,0xff,0xa2,0xff, +0xd9,0xff,0xf2,0xff,0xe3,0xff,0xbe,0xff,0xb2,0xff,0xb6,0xff, +0xcd,0xff,0xd4,0xff,0xb6,0xff,0xbb,0xff,0xed,0xff,0x0,0x0, +0xed,0xff,0xf0,0xff,0xfa,0xff,0xd2,0xff,0xba,0xff,0xe3,0xff, +0xc,0x0,0xd,0x0,0xe6,0xff,0xc7,0xff,0xb8,0xff,0xac,0xff, +0xb9,0xff,0xab,0xff,0x98,0xff,0xaa,0xff,0xaa,0xff,0xa3,0xff, +0xbc,0xff,0xd9,0xff,0xb1,0xff,0x77,0xff,0x90,0xff,0xc5,0xff, +0xdd,0xff,0xd0,0xff,0xa6,0xff,0x8e,0xff,0xaa,0xff,0xca,0xff, +0xae,0xff,0xa1,0xff,0xbe,0xff,0xc8,0xff,0xc9,0xff,0xcf,0xff, +0xdd,0xff,0xcb,0xff,0x9a,0xff,0x82,0xff,0x82,0xff,0x95,0xff, +0x9b,0xff,0x74,0xff,0x6b,0xff,0x8f,0xff,0xa0,0xff,0xab,0xff, +0xc0,0xff,0xd0,0xff,0xd8,0xff,0xc6,0xff,0xae,0xff,0x91,0xff, +0x7a,0xff,0x89,0xff,0x8e,0xff,0x98,0xff,0xa2,0xff,0x79,0xff, +0x54,0xff,0x4d,0xff,0x73,0xff,0x9a,0xff,0x96,0xff,0x92,0xff, +0x88,0xff,0x79,0xff,0x6a,0xff,0x55,0xff,0x54,0xff,0x5d,0xff, +0x5c,0xff,0x49,0xff,0x33,0xff,0x2b,0xff,0x30,0xff,0x35,0xff, +0x31,0xff,0x2d,0xff,0x29,0xff,0x36,0xff,0x50,0xff,0x57,0xff, +0x48,0xff,0x40,0xff,0x4b,0xff,0x37,0xff,0x24,0xff,0x40,0xff, +0x3a,0xff,0x42,0xff,0x6c,0xff,0x54,0xff,0x37,0xff,0x33,0xff, +0x36,0xff,0x5e,0xff,0x70,0xff,0x89,0xff,0xae,0xff,0x8e,0xff, +0x90,0xff,0xbb,0xff,0xc8,0xff,0xbd,0xff,0xa9,0xff,0xad,0xff, +0xa6,0xff,0xb6,0xff,0xef,0xff,0x1,0x0,0xf4,0xff,0xd7,0xff, +0xd3,0xff,0xd4,0xff,0xcd,0xff,0xd1,0xff,0x8c,0xff,0x6f,0xff, +0xa1,0xff,0x98,0xff,0xa4,0xff,0xd5,0xff,0xd5,0xff,0xc5,0xff, +0xbb,0xff,0xb7,0xff,0xca,0xff,0xd7,0xff,0xe1,0xff,0xff,0xff, +0xf1,0xff,0xd9,0xff,0xd9,0xff,0xc0,0xff,0xa9,0xff,0x99,0xff, +0x9b,0xff,0xa3,0xff,0xa2,0xff,0xc3,0xff,0xd8,0xff,0xdb,0xff, +0xd7,0xff,0xc9,0xff,0xdb,0xff,0xdc,0xff,0xb8,0xff,0x9c,0xff, +0x97,0xff,0x89,0xff,0x60,0xff,0x65,0xff,0x7a,0xff,0x6c,0xff, +0x6a,0xff,0x7c,0xff,0x8d,0xff,0x88,0xff,0x7c,0xff,0x86,0xff, +0x71,0xff,0x4c,0xff,0x5f,0xff,0x7b,0xff,0x83,0xff,0x78,0xff, +0x64,0xff,0x70,0xff,0x65,0xff,0x44,0xff,0x31,0xff,0x6,0xff, +0x13,0xff,0x4e,0xff,0x67,0xff,0x8c,0xff,0xb2,0xff,0xd4,0xff, +0xf6,0xff,0xe9,0xff,0xd1,0xff,0xc4,0xff,0xa4,0xff,0x95,0xff, +0xb0,0xff,0xc1,0xff,0x94,0xff,0x70,0xff,0x99,0xff,0xa8,0xff, +0x8a,0xff,0x86,0xff,0x99,0xff,0xb3,0xff,0xc1,0xff,0xc8,0xff, +0xc0,0xff,0xc9,0xff,0xfe,0xff,0xf9,0xff,0xf3,0xff,0x9,0x0, +0xf8,0xff,0x11,0x0,0x37,0x0,0x3d,0x0,0x47,0x0,0x52,0x0, +0x60,0x0,0x5d,0x0,0x46,0x0,0x53,0x0,0x8f,0x0,0xb5,0x0, +0xb7,0x0,0x94,0x0,0x78,0x0,0xa6,0x0,0xa3,0x0,0x89,0x0, +0xc7,0x0,0xd8,0x0,0xaa,0x0,0xa2,0x0,0xba,0x0,0xaf,0x0, +0xa1,0x0,0xad,0x0,0x81,0x0,0x58,0x0,0x54,0x0,0x56,0x0, +0x50,0x0,0x30,0x0,0x4d,0x0,0x6c,0x0,0x43,0x0,0x23,0x0, +0x25,0x0,0x49,0x0,0x49,0x0,0x2e,0x0,0x2d,0x0,0x16,0x0, +0x11,0x0,0x34,0x0,0x48,0x0,0x2a,0x0,0xa,0x0,0x2e,0x0, +0x3f,0x0,0xb,0x0,0xef,0xff,0x1c,0x0,0x52,0x0,0x50,0x0, +0x50,0x0,0x4f,0x0,0x2d,0x0,0x39,0x0,0x53,0x0,0x46,0x0, +0x34,0x0,0x23,0x0,0xd,0x0,0x1,0x0,0x28,0x0,0x51,0x0, +0x46,0x0,0x4a,0x0,0x44,0x0,0x33,0x0,0x46,0x0,0x60,0x0, +0x6d,0x0,0x65,0x0,0x81,0x0,0xa9,0x0,0x8a,0x0,0x72,0x0, +0x6c,0x0,0x65,0x0,0x75,0x0,0x7f,0x0,0x6f,0x0,0x65,0x0, +0x8b,0x0,0xa4,0x0,0x9f,0x0,0x96,0x0,0x8b,0x0,0xa5,0x0, +0xbc,0x0,0xb3,0x0,0x96,0x0,0x73,0x0,0x7f,0x0,0xa3,0x0, +0xc0,0x0,0xca,0x0,0xae,0x0,0x91,0x0,0x92,0x0,0x9e,0x0, +0xab,0x0,0xab,0x0,0x7b,0x0,0x78,0x0,0xa4,0x0,0xa9,0x0, +0xd7,0x0,0xe3,0x0,0xad,0x0,0xa7,0x0,0x98,0x0,0x86,0x0, +0x82,0x0,0x6d,0x0,0x67,0x0,0x68,0x0,0x79,0x0,0xa3,0x0, +0xc9,0x0,0xdd,0x0,0xea,0x0,0xfd,0x0,0x6,0x1,0xf5,0x0, +0xd5,0x0,0xd1,0x0,0xdd,0x0,0xce,0x0,0xbf,0x0,0xbb,0x0, +0xc9,0x0,0xeb,0x0,0xf3,0x0,0xea,0x0,0xec,0x0,0xe0,0x0, +0xe6,0x0,0x6,0x1,0xa,0x1,0xf,0x1,0x10,0x1,0xfe,0x0, +0xec,0x0,0xcf,0x0,0xb9,0x0,0xaa,0x0,0xa4,0x0,0xc0,0x0, +0xdb,0x0,0xe7,0x0,0xfb,0x0,0xfd,0x0,0xc3,0x0,0xc3,0x0, +0xff,0x0,0xf7,0x0,0x6,0x1,0x25,0x1,0x7,0x1,0xf7,0x0, +0x5,0x1,0x10,0x1,0xeb,0x0,0xc9,0x0,0xb9,0x0,0x92,0x0, +0xa8,0x0,0xc6,0x0,0xc3,0x0,0xeb,0x0,0xf6,0x0,0xeb,0x0, +0xef,0x0,0xe2,0x0,0xed,0x0,0xea,0x0,0xb8,0x0,0x9b,0x0, +0xaa,0x0,0xc8,0x0,0xde,0x0,0xf0,0x0,0xe9,0x0,0xe7,0x0, +0x19,0x1,0x28,0x1,0x23,0x1,0x34,0x1,0x30,0x1,0x1d,0x1, +0xf9,0x0,0xf7,0x0,0xf6,0x0,0xf5,0x0,0x2f,0x1,0x38,0x1, +0x44,0x1,0x7c,0x1,0x86,0x1,0x7d,0x1,0x6d,0x1,0x6f,0x1, +0x7a,0x1,0x8f,0x1,0x91,0x1,0x57,0x1,0x5d,0x1,0x78,0x1, +0x71,0x1,0x94,0x1,0xaa,0x1,0x94,0x1,0x7b,0x1,0x7e,0x1, +0x6b,0x1,0x4e,0x1,0x69,0x1,0x84,0x1,0x9c,0x1,0xac,0x1, +0xb1,0x1,0xb7,0x1,0xa1,0x1,0x9e,0x1,0xa5,0x1,0xaa,0x1, +0xa8,0x1,0x79,0x1,0x82,0x1,0xb8,0x1,0xd6,0x1,0xfa,0x1, +0xfd,0x1,0xda,0x1,0xe1,0x1,0x4,0x2,0xed,0x1,0xb9,0x1, +0x9c,0x1,0x84,0x1,0x7e,0x1,0x84,0x1,0x89,0x1,0x86,0x1, +0x72,0x1,0x90,0x1,0xa6,0x1,0x80,0x1,0x7e,0x1,0x87,0x1, +0x8d,0x1,0xb3,0x1,0xc4,0x1,0xdd,0x1,0xfa,0x1,0xe4,0x1, +0xc2,0x1,0xc5,0x1,0xd0,0x1,0xc0,0x1,0xbf,0x1,0xbd,0x1, +0xbe,0x1,0xc6,0x1,0xb4,0x1,0xc7,0x1,0xca,0x1,0xb4,0x1, +0xae,0x1,0x94,0x1,0xbf,0x1,0xd8,0x1,0xc7,0x1,0xfb,0x1, +0xe6,0x1,0x94,0x1,0x78,0x1,0x8b,0x1,0xc3,0x1,0xd7,0x1, +0xaf,0x1,0x80,0x1,0x85,0x1,0xa1,0x1,0xb5,0x1,0xd0,0x1, +0xc4,0x1,0xb0,0x1,0xaf,0x1,0x9c,0x1,0x8d,0x1,0x8f,0x1, +0x98,0x1,0xa7,0x1,0xc0,0x1,0xb8,0x1,0x86,0x1,0x90,0x1, +0xbf,0x1,0xb9,0x1,0xb4,0x1,0xc8,0x1,0xbf,0x1,0xc8,0x1, +0xf6,0x1,0x3,0x2,0xf2,0x1,0xe4,0x1,0xf2,0x1,0x9,0x2, +0xf6,0x1,0xe7,0x1,0xe,0x2,0x2d,0x2,0x22,0x2,0x27,0x2, +0x38,0x2,0x2f,0x2,0x23,0x2,0x25,0x2,0x45,0x2,0x6f,0x2, +0x86,0x2,0x90,0x2,0x83,0x2,0x80,0x2,0x9b,0x2,0x8e,0x2, +0x5d,0x2,0x5d,0x2,0x6c,0x2,0x62,0x2,0x6c,0x2,0x74,0x2, +0x64,0x2,0x52,0x2,0x4d,0x2,0x58,0x2,0x5e,0x2,0x61,0x2, +0x4a,0x2,0x26,0x2,0xc,0x2,0xf3,0x1,0xf1,0x1,0xf3,0x1, +0xed,0x1,0xd9,0x1,0xc4,0x1,0xd0,0x1,0xd1,0x1,0xcb,0x1, +0xc0,0x1,0xa2,0x1,0x94,0x1,0x9d,0x1,0xc2,0x1,0xde,0x1, +0xde,0x1,0xba,0x1,0x79,0x1,0x57,0x1,0x5e,0x1,0x81,0x1, +0x6c,0x1,0x27,0x1,0x28,0x1,0x44,0x1,0x4a,0x1,0x3d,0x1, +0x2d,0x1,0x3e,0x1,0x3e,0x1,0x2d,0x1,0x2e,0x1,0x36,0x1, +0x46,0x1,0x47,0x1,0x2b,0x1,0x1c,0x1,0x27,0x1,0x3f,0x1, +0x5f,0x1,0x76,0x1,0x71,0x1,0x72,0x1,0x82,0x1,0x7b,0x1, +0x82,0x1,0xac,0x1,0xc8,0x1,0xc6,0x1,0xad,0x1,0xb4,0x1, +0xd6,0x1,0xde,0x1,0xf1,0x1,0xe8,0x1,0xc9,0x1,0xdf,0x1, +0xf9,0x1,0x2,0x2,0x8,0x2,0x1a,0x2,0x31,0x2,0x45,0x2, +0x59,0x2,0x46,0x2,0x2e,0x2,0x15,0x2,0xff,0x1,0x1b,0x2, +0x2d,0x2,0x1c,0x2,0xfa,0x1,0xe8,0x1,0x7,0x2,0x17,0x2, +0x3,0x2,0xf2,0x1,0xe8,0x1,0xe4,0x1,0xee,0x1,0xda,0x1, +0xa8,0x1,0xac,0x1,0xdd,0x1,0xf1,0x1,0xd6,0x1,0xd3,0x1, +0xe5,0x1,0xce,0x1,0xc2,0x1,0xb3,0x1,0xa8,0x1,0xd8,0x1, +0xf0,0x1,0xfe,0x1,0xc,0x2,0x3,0x2,0xa,0x2,0xfa,0x1, +0xe3,0x1,0xe7,0x1,0xde,0x1,0xc8,0x1,0xc6,0x1,0xde,0x1, +0xe7,0x1,0xde,0x1,0xec,0x1,0xf8,0x1,0xe2,0x1,0xaf,0x1, +0x86,0x1,0x9c,0x1,0xb0,0x1,0x76,0x1,0x4c,0x1,0x6d,0x1, +0x7b,0x1,0x53,0x1,0x3f,0x1,0x55,0x1,0x64,0x1,0x59,0x1, +0x49,0x1,0x3f,0x1,0x2e,0x1,0x28,0x1,0x3f,0x1,0x43,0x1, +0x35,0x1,0x3f,0x1,0x5f,0x1,0x5c,0x1,0x3b,0x1,0x51,0x1, +0x7c,0x1,0x76,0x1,0x5a,0x1,0x55,0x1,0x49,0x1,0x41,0x1, +0x77,0x1,0x7f,0x1,0x7c,0x1,0xa0,0x1,0x84,0x1,0x75,0x1, +0x70,0x1,0x63,0x1,0x69,0x1,0x4b,0x1,0x5b,0x1,0x86,0x1, +0x7b,0x1,0x4d,0x1,0x2e,0x1,0x41,0x1,0x38,0x1,0x41,0x1, +0x56,0x1,0x3a,0x1,0x5c,0x1,0x80,0x1,0x6c,0x1,0x51,0x1, +0x44,0x1,0x68,0x1,0x75,0x1,0x60,0x1,0x58,0x1,0x4b,0x1, +0x5c,0x1,0x76,0x1,0x80,0x1,0x85,0x1,0x62,0x1,0x4d,0x1, +0x6d,0x1,0x66,0x1,0x53,0x1,0x64,0x1,0x4f,0x1,0x21,0x1, +0x11,0x1,0x9,0x1,0x6,0x1,0x11,0x1,0x16,0x1,0x2e,0x1, +0x58,0x1,0x5b,0x1,0x40,0x1,0x21,0x1,0x13,0x1,0x15,0x1, +0x5,0x1,0xfb,0x0,0x13,0x1,0x2d,0x1,0x2c,0x1,0x38,0x1, +0x4f,0x1,0x44,0x1,0x45,0x1,0x3a,0x1,0x12,0x1,0x7,0x1, +0x9,0x1,0x1d,0x1,0x26,0x1,0x17,0x1,0x2,0x1,0xd1,0x0, +0xd2,0x0,0x7,0x1,0x2,0x1,0xc8,0x0,0xae,0x0,0xc1,0x0, +0xc5,0x0,0xad,0x0,0x6e,0x0,0x37,0x0,0x5a,0x0,0x68,0x0, +0x3a,0x0,0x3e,0x0,0x62,0x0,0x60,0x0,0x42,0x0,0x30,0x0, +0x27,0x0,0x1b,0x0,0x18,0x0,0x10,0x0,0x9,0x0,0xb,0x0, +0x4,0x0,0x9,0x0,0x1d,0x0,0x2c,0x0,0x2b,0x0,0xd,0x0, +0xf,0x0,0x2c,0x0,0x15,0x0,0xe1,0xff,0xda,0xff,0x8,0x0, +0x23,0x0,0x2b,0x0,0x39,0x0,0x2a,0x0,0x17,0x0,0x2,0x0, +0xfd,0xff,0x9,0x0,0xfd,0xff,0x9,0x0,0x32,0x0,0x3d,0x0, +0x1a,0x0,0x11,0x0,0x40,0x0,0x4c,0x0,0x38,0x0,0x1e,0x0, +0x1a,0x0,0x33,0x0,0x3c,0x0,0x5f,0x0,0x68,0x0,0x3f,0x0, +0x3c,0x0,0x5e,0x0,0x7c,0x0,0x6a,0x0,0x59,0x0,0x55,0x0, +0x44,0x0,0x5d,0x0,0x7e,0x0,0x85,0x0,0x85,0x0,0x77,0x0, +0x5d,0x0,0x2f,0x0,0x1b,0x0,0x23,0x0,0x1f,0x0,0x1f,0x0, +0x27,0x0,0x36,0x0,0x2a,0x0,0xfc,0xff,0x2,0x0,0x26,0x0, +0x35,0x0,0x49,0x0,0x47,0x0,0x32,0x0,0x32,0x0,0x34,0x0, +0x27,0x0,0x33,0x0,0x54,0x0,0x50,0x0,0x68,0x0,0x95,0x0, +0x8b,0x0,0x89,0x0,0x6d,0x0,0x50,0x0,0x64,0x0,0x53,0x0, +0x40,0x0,0x3a,0x0,0x46,0x0,0x75,0x0,0x7d,0x0,0x65,0x0, +0x27,0x0,0xf8,0xff,0x26,0x0,0x52,0x0,0x58,0x0,0x65,0x0, +0x53,0x0,0x17,0x0,0xf9,0xff,0x9,0x0,0xfc,0xff,0xca,0xff, +0xb9,0xff,0xc0,0xff,0xa3,0xff,0xa3,0xff,0xb9,0xff,0xa1,0xff, +0x8f,0xff,0x93,0xff,0x9c,0xff,0xa4,0xff,0xbb,0xff,0xbd,0xff, +0x7e,0xff,0x69,0xff,0x79,0xff,0x80,0xff,0xa6,0xff,0xb9,0xff, +0xb3,0xff,0xb2,0xff,0xbd,0xff,0xaf,0xff,0x84,0xff,0x8a,0xff, +0xa0,0xff,0xb3,0xff,0xaa,0xff,0x91,0xff,0xcc,0xff,0xf4,0xff, +0xcf,0xff,0xab,0xff,0x8b,0xff,0x90,0xff,0xaa,0xff,0xa8,0xff, +0xaf,0xff,0xbc,0xff,0xa6,0xff,0xab,0xff,0xd7,0xff,0xca,0xff, +0xaf,0xff,0xbf,0xff,0xd8,0xff,0xf0,0xff,0xf0,0xff,0xea,0xff, +0xef,0xff,0xf0,0xff,0xf5,0xff,0xf9,0xff,0xfa,0xff,0xfd,0xff, +0xe,0x0,0x11,0x0,0x12,0x0,0x2a,0x0,0x29,0x0,0x2f,0x0, +0x2e,0x0,0xff,0xff,0xe,0x0,0x3d,0x0,0x37,0x0,0x23,0x0, +0x14,0x0,0x11,0x0,0xf,0x0,0x1c,0x0,0x19,0x0,0xda,0xff, +0xbb,0xff,0xba,0xff,0xa5,0xff,0x9c,0xff,0xa0,0xff,0x96,0xff, +0x77,0xff,0x4f,0xff,0x2a,0xff,0x39,0xff,0x62,0xff,0x65,0xff, +0x70,0xff,0x69,0xff,0x4b,0xff,0x41,0xff,0x41,0xff,0x3e,0xff, +0x18,0xff,0x7,0xff,0x17,0xff,0x16,0xff,0x14,0xff,0x3,0xff, +0xf8,0xfe,0xef,0xfe,0xeb,0xfe,0xed,0xfe,0xe1,0xfe,0x13,0xff, +0x2a,0xff,0xfa,0xfe,0xe0,0xfe,0xd3,0xfe,0xe6,0xfe,0xf4,0xfe, +0xf0,0xfe,0xe8,0xfe,0xc3,0xfe,0xd1,0xfe,0xf9,0xfe,0xfb,0xfe, +0xf6,0xfe,0xb,0xff,0x2d,0xff,0x38,0xff,0x48,0xff,0x35,0xff, +0x17,0xff,0x31,0xff,0x26,0xff,0x11,0xff,0x22,0xff,0x29,0xff, +0x35,0xff,0x30,0xff,0x21,0xff,0x27,0xff,0x31,0xff,0x3c,0xff, +0x37,0xff,0x28,0xff,0x2b,0xff,0x33,0xff,0x3b,0xff,0x50,0xff, +0x6a,0xff,0x87,0xff,0xa2,0xff,0x91,0xff,0x7b,0xff,0x86,0xff, +0x75,0xff,0x71,0xff,0xa3,0xff,0xb1,0xff,0x9b,0xff,0x82,0xff, +0x79,0xff,0x9a,0xff,0x99,0xff,0x78,0xff,0x8b,0xff,0x9e,0xff, +0x8b,0xff,0x8c,0xff,0x93,0xff,0x6b,0xff,0x5a,0xff,0x71,0xff, +0x77,0xff,0x69,0xff,0x68,0xff,0x7c,0xff,0x53,0xff,0x1d,0xff, +0x32,0xff,0x35,0xff,0x34,0xff,0x49,0xff,0x37,0xff,0x35,0xff, +0x58,0xff,0x67,0xff,0x5b,0xff,0x4f,0xff,0x35,0xff,0x16,0xff, +0x17,0xff,0xf,0xff,0x5,0xff,0x11,0xff,0x11,0xff,0x1a,0xff, +0x36,0xff,0x54,0xff,0x4d,0xff,0x2a,0xff,0x36,0xff,0x51,0xff, +0x46,0xff,0x3a,0xff,0x3f,0xff,0x3d,0xff,0x1c,0xff,0xa,0xff, +0x1e,0xff,0xf,0xff,0xe3,0xfe,0xe9,0xfe,0xc,0xff,0x1e,0xff, +0x26,0xff,0x20,0xff,0x6,0xff,0x0,0xff,0x18,0xff,0xf,0xff, +0x16,0xff,0x40,0xff,0x32,0xff,0x1e,0xff,0x1f,0xff,0x7,0xff, +0xf1,0xfe,0xdf,0xfe,0xfa,0xfe,0x2e,0xff,0x35,0xff,0x24,0xff, +0x5,0xff,0xf8,0xfe,0x12,0xff,0x26,0xff,0x2a,0xff,0x18,0xff, +0xc,0xff,0x26,0xff,0x3a,0xff,0x3a,0xff,0x36,0xff,0x1a,0xff, +0x0,0xff,0x13,0xff,0x14,0xff,0x10,0xff,0x34,0xff,0x2f,0xff, +0x4c,0xff,0xa5,0xff,0xa2,0xff,0x7f,0xff,0x7f,0xff,0x69,0xff, +0x55,0xff,0x4e,0xff,0x4b,0xff,0x56,0xff,0x72,0xff,0x8f,0xff, +0xa3,0xff,0xb8,0xff,0xbd,0xff,0xaf,0xff,0xb0,0xff,0xb0,0xff, +0xab,0xff,0xca,0xff,0xce,0xff,0xa2,0xff,0xcb,0xff,0x2,0x0, +0xe6,0xff,0xc2,0xff,0xc5,0xff,0xf1,0xff,0xe8,0xff,0xc4,0xff, +0xdc,0xff,0xd1,0xff,0xbd,0xff,0xaf,0xff,0x9f,0xff,0xc3,0xff, +0xe0,0xff,0xdf,0xff,0xcf,0xff,0xb6,0xff,0xa8,0xff,0xaa,0xff, +0xa7,0xff,0x7f,0xff,0x81,0xff,0x96,0xff,0x8e,0xff,0x9e,0xff, +0x93,0xff,0x92,0xff,0xa5,0xff,0x9a,0xff,0xaf,0xff,0xac,0xff, +0x88,0xff,0x8d,0xff,0xa3,0xff,0x96,0xff,0x5a,0xff,0x48,0xff, +0x60,0xff,0x66,0xff,0x7d,0xff,0x8e,0xff,0x82,0xff,0x84,0xff, +0x85,0xff,0x68,0xff,0x42,0xff,0x18,0xff,0xd,0xff,0x27,0xff, +0x18,0xff,0xc,0xff,0x2f,0xff,0x33,0xff,0x1c,0xff,0x18,0xff, +0x23,0xff,0x2c,0xff,0x2f,0xff,0x2e,0xff,0x1a,0xff,0x7,0xff, +0xf5,0xfe,0xec,0xfe,0xa,0xff,0x25,0xff,0x31,0xff,0x64,0xff, +0x9a,0xff,0x89,0xff,0x5c,0xff,0x58,0xff,0x74,0xff,0x95,0xff, +0x9d,0xff,0x8d,0xff,0xa7,0xff,0xdb,0xff,0xd7,0xff,0xd1,0xff, +0xe9,0xff,0xdd,0xff,0xc2,0xff,0xb1,0xff,0xc8,0xff,0xf3,0xff, +0xca,0xff,0xaf,0xff,0xb7,0xff,0xac,0xff,0xf4,0xff,0x3f,0x0, +0x45,0x0,0x2b,0x0,0xf5,0xff,0xd,0x0,0x36,0x0,0x26,0x0, +0x28,0x0,0x25,0x0,0x2f,0x0,0x48,0x0,0x44,0x0,0x3e,0x0, +0x52,0x0,0x7e,0x0,0x81,0x0,0x62,0x0,0x5f,0x0,0x67,0x0, +0x61,0x0,0x44,0x0,0x27,0x0,0xe,0x0,0x3,0x0,0x2a,0x0, +0x3e,0x0,0x3d,0x0,0x57,0x0,0x66,0x0,0x5c,0x0,0x29,0x0, +0xfe,0xff,0xc,0x0,0x11,0x0,0x16,0x0,0x1a,0x0,0x18,0x0, +0x35,0x0,0x1f,0x0,0xea,0xff,0xe5,0xff,0xca,0xff,0xb0,0xff, +0xb0,0xff,0xaa,0xff,0xc9,0xff,0xe2,0xff,0xc6,0xff,0xad,0xff, +0xad,0xff,0xbb,0xff,0xc3,0xff,0xc2,0xff,0xc9,0xff,0xd7,0xff, +0xda,0xff,0xba,0xff,0xb0,0xff,0xdb,0xff,0xdc,0xff,0xb0,0xff, +0xac,0xff,0xc6,0xff,0xd2,0xff,0xcf,0xff,0xc6,0xff,0xd0,0xff, +0xe2,0xff,0xd4,0xff,0xc9,0xff,0xe4,0xff,0xfd,0xff,0xf2,0xff, +0xd5,0xff,0xd8,0xff,0xef,0xff,0xda,0xff,0xb4,0xff,0xb0,0xff, +0xb2,0xff,0xa0,0xff,0x98,0xff,0xb2,0xff,0xcc,0xff,0xce,0xff, +0xd2,0xff,0xda,0xff,0xe8,0xff,0xf6,0xff,0xf8,0xff,0x15,0x0, +0x2c,0x0,0x1e,0x0,0x2e,0x0,0x4d,0x0,0x48,0x0,0x21,0x0, +0x9,0x0,0x20,0x0,0x30,0x0,0x2b,0x0,0x2a,0x0,0x42,0x0, +0x68,0x0,0x86,0x0,0xa7,0x0,0x95,0x0,0x6b,0x0,0x68,0x0, +0x64,0x0,0x7f,0x0,0xa0,0x0,0x85,0x0,0x77,0x0,0x86,0x0, +0x84,0x0,0x76,0x0,0x76,0x0,0x7f,0x0,0x6a,0x0,0x45,0x0, +0x3e,0x0,0x4f,0x0,0x51,0x0,0x50,0x0,0x63,0x0,0x6d,0x0, +0x61,0x0,0x47,0x0,0x3a,0x0,0x36,0x0,0x1e,0x0,0xd,0x0, +0xe,0x0,0xe,0x0,0xf8,0xff,0xd3,0xff,0xc5,0xff,0xc0,0xff, +0xc7,0xff,0xe5,0xff,0xe8,0xff,0xc8,0xff,0xaf,0xff,0xaf,0xff, +0xc0,0xff,0xc4,0xff,0xb5,0xff,0xb8,0xff,0xb6,0xff,0x9e,0xff, +0xac,0xff,0xbe,0xff,0xa9,0xff,0x92,0xff,0x7f,0xff,0x7f,0xff, +0x80,0xff,0x77,0xff,0x8d,0xff,0x9c,0xff,0x87,0xff,0x89,0xff, +0xa6,0xff,0xac,0xff,0x93,0xff,0xb1,0xff,0x0,0x0,0xe1,0xff, +0x93,0xff,0xa6,0xff,0xb9,0xff,0xb9,0xff,0xd2,0xff,0xdf,0xff, +0xff,0xff,0xff,0xff,0xd8,0xff,0xe1,0xff,0xdc,0xff,0xd5,0xff, +0xb,0x0,0x1b,0x0,0xf7,0xff,0xf6,0xff,0x3,0x0,0x5,0x0, +0x12,0x0,0x12,0x0,0xfa,0xff,0xe2,0xff,0xe9,0xff,0x5,0x0, +0xff,0xff,0xf7,0xff,0xc,0x0,0x1b,0x0,0x2b,0x0,0x33,0x0, +0x2c,0x0,0x1e,0x0,0x1b,0x0,0x24,0x0,0x1d,0x0,0x15,0x0, +0x18,0x0,0x1a,0x0,0x10,0x0,0x3,0x0,0x12,0x0,0x19,0x0, +0x1a,0x0,0x28,0x0,0xf,0x0,0x2,0x0,0x1b,0x0,0x1a,0x0, +0xf8,0xff,0xd8,0xff,0xd3,0xff,0xe1,0xff,0xee,0xff,0xe7,0xff, +0xe8,0xff,0xe8,0xff,0xd3,0xff,0xd1,0xff,0xb6,0xff,0xb7,0xff, +0x5,0x0,0x16,0x0,0xf1,0xff,0xc6,0xff,0xab,0xff,0xbb,0xff, +0xb5,0xff,0xc7,0xff,0xd5,0xff,0xbc,0xff,0xeb,0xff,0xfc,0xff, +0xce,0xff,0xd0,0xff,0xb7,0xff,0x9b,0xff,0x98,0xff,0x7e,0xff, +0x7d,0xff,0x75,0xff,0x54,0xff,0x57,0xff,0x64,0xff,0x59,0xff, +0x41,0xff,0x28,0xff,0x9,0xff,0xb,0xff,0x33,0xff,0x35,0xff, +0x22,0xff,0xf,0xff,0x0,0xff,0x0,0xff,0xfe,0xfe,0x13,0xff, +0x8,0xff,0xfb,0xfe,0x2f,0xff,0x21,0xff,0x14,0xff,0x3e,0xff, +0x3e,0xff,0x3b,0xff,0x24,0xff,0xc,0xff,0x5,0xff,0xf6,0xfe, +0x11,0xff,0x1f,0xff,0x1d,0xff,0x27,0xff,0x20,0xff,0x28,0xff, +0x9,0xff,0xda,0xfe,0xf2,0xfe,0x1e,0xff,0x2e,0xff,0x1d,0xff, +0x6,0xff,0x14,0xff,0x3a,0xff,0x45,0xff,0x3d,0xff,0x4e,0xff, +0x53,0xff,0x54,0xff,0x78,0xff,0x7b,0xff,0x51,0xff,0x48,0xff, +0x68,0xff,0x8c,0xff,0xb3,0xff,0xb3,0xff,0x89,0xff,0x6f,0xff, +0x57,0xff,0x4d,0xff,0x74,0xff,0xa0,0xff,0x9d,0xff,0x85,0xff, +0x8b,0xff,0xa0,0xff,0xa8,0xff,0x93,0xff,0x7f,0xff,0x90,0xff, +0x91,0xff,0x7f,0xff,0x76,0xff,0x66,0xff,0x64,0xff,0x6f,0xff, +0x6a,0xff,0x6a,0xff,0x72,0xff,0x5f,0xff,0x4b,0xff,0x4b,0xff, +0x36,0xff,0x31,0xff,0x3e,0xff,0x3e,0xff,0x36,0xff,0x17,0xff, +0x27,0xff,0x40,0xff,0x16,0xff,0x7,0xff,0x5,0xff,0x0,0xff, +0x23,0xff,0x36,0xff,0x2f,0xff,0x2d,0xff,0x30,0xff,0x1d,0xff, +0xfb,0xfe,0xeb,0xfe,0xe3,0xfe,0xd5,0xfe,0xbf,0xfe,0xa9,0xfe, +0x9b,0xfe,0xa3,0xfe,0xc1,0xfe,0xc2,0xfe,0xac,0xfe,0x93,0xfe, +0x74,0xfe,0x6f,0xfe,0x71,0xfe,0x76,0xfe,0x87,0xfe,0x84,0xfe, +0x79,0xfe,0x6d,0xfe,0x6a,0xfe,0x6b,0xfe,0x5d,0xfe,0x61,0xfe, +0x69,0xfe,0x6f,0xfe,0x7d,0xfe,0x84,0xfe,0xa1,0xfe,0xa8,0xfe, +0x82,0xfe,0x8f,0xfe,0xb7,0xfe,0xba,0xfe,0xb6,0xfe,0xa7,0xfe, +0x90,0xfe,0x86,0xfe,0x8e,0xfe,0x87,0xfe,0x68,0xfe,0x6e,0xfe, +0x98,0xfe,0xae,0xfe,0xad,0xfe,0xad,0xfe,0xab,0xfe,0x97,0xfe, +0x9d,0xfe,0xa2,0xfe,0x83,0xfe,0x88,0xfe,0xa4,0xfe,0xbd,0xfe, +0xd9,0xfe,0xef,0xfe,0x8,0xff,0xf4,0xfe,0xee,0xfe,0x5,0xff, +0xde,0xfe,0xea,0xfe,0x1e,0xff,0x14,0xff,0x12,0xff,0x1d,0xff, +0x1d,0xff,0xff,0xfe,0xf3,0xfe,0x20,0xff,0x11,0xff,0xf1,0xfe, +0xee,0xfe,0xd2,0xfe,0xca,0xfe,0xca,0xfe,0xcc,0xfe,0xd2,0xfe, +0xca,0xfe,0xd9,0xfe,0xd1,0xfe,0xb8,0xfe,0xd1,0xfe,0xec,0xfe, +0xf2,0xfe,0xee,0xfe,0xe8,0xfe,0xea,0xfe,0xe4,0xfe,0xd1,0xfe, +0xc2,0xfe,0xbf,0xfe,0xc3,0xfe,0xc7,0xfe,0xc9,0xfe,0xbc,0xfe, +0xac,0xfe,0xa6,0xfe,0x93,0xfe,0x8b,0xfe,0x97,0xfe,0x92,0xfe, +0x8e,0xfe,0x88,0xfe,0x87,0xfe,0x8f,0xfe,0x74,0xfe,0x6a,0xfe, +0x83,0xfe,0x6f,0xfe,0x61,0xfe,0x80,0xfe,0x92,0xfe,0x8d,0xfe, +0x7d,0xfe,0x60,0xfe,0x3f,0xfe,0x34,0xfe,0x3b,0xfe,0x45,0xfe, +0x6b,0xfe,0x7c,0xfe,0x5e,0xfe,0x57,0xfe,0x6b,0xfe,0x81,0xfe, +0x7d,0xfe,0x53,0xfe,0x29,0xfe,0x10,0xfe,0x2d,0xfe,0x59,0xfe, +0x55,0xfe,0x51,0xfe,0x3d,0xfe,0x10,0xfe,0xa,0xfe,0x40,0xfe, +0x74,0xfe,0x61,0xfe,0x69,0xfe,0x82,0xfe,0x5e,0xfe,0x68,0xfe, +0x80,0xfe,0x6f,0xfe,0x78,0xfe,0x95,0xfe,0xb4,0xfe,0xb3,0xfe, +0x99,0xfe,0x8f,0xfe,0x78,0xfe,0x68,0xfe,0x67,0xfe,0x51,0xfe, +0x4b,0xfe,0x65,0xfe,0x74,0xfe,0x84,0xfe,0x9e,0xfe,0x98,0xfe, +0x8c,0xfe,0x9f,0xfe,0xd7,0xfe,0x7,0xff,0x8,0xff,0xee,0xfe, +0xbd,0xfe,0x99,0xfe,0x97,0xfe,0x91,0xfe,0x95,0xfe,0xb6,0xfe, +0xc6,0xfe,0xc0,0xfe,0xd4,0xfe,0xcc,0xfe,0xac,0xfe,0xd0,0xfe, +0xf0,0xfe,0xe4,0xfe,0xd6,0xfe,0xe1,0xfe,0xc,0xff,0x13,0xff, +0xff,0xfe,0xd5,0xfe,0xb6,0xfe,0xbf,0xfe,0x9e,0xfe,0x94,0xfe, +0xa9,0xfe,0x98,0xfe,0xa5,0xfe,0xc5,0xfe,0xc2,0xfe,0xab,0xfe, +0x9a,0xfe,0x86,0xfe,0x7d,0xfe,0x8f,0xfe,0x81,0xfe,0x71,0xfe, +0x86,0xfe,0x98,0xfe,0x88,0xfe,0x75,0xfe,0x79,0xfe,0x64,0xfe, +0x4f,0xfe,0x50,0xfe,0x4a,0xfe,0x4f,0xfe,0x4a,0xfe,0x62,0xfe, +0x71,0xfe,0x53,0xfe,0x5b,0xfe,0x4f,0xfe,0x2f,0xfe,0x2c,0xfe, +0x24,0xfe,0x1b,0xfe,0x11,0xfe,0x7,0xfe,0xf4,0xfd,0xe8,0xfd, +0xf5,0xfd,0x4,0xfe,0xc,0xfe,0x6,0xfe,0xfe,0xfd,0xee,0xfd, +0xe8,0xfd,0xc,0xfe,0x22,0xfe,0x2a,0xfe,0x2c,0xfe,0x1f,0xfe, +0x14,0xfe,0x1a,0xfe,0x46,0xfe,0x68,0xfe,0x60,0xfe,0x5d,0xfe, +0x6b,0xfe,0x70,0xfe,0x7a,0xfe,0x8d,0xfe,0x82,0xfe,0x79,0xfe, +0x7a,0xfe,0x80,0xfe,0xa8,0xfe,0xc0,0xfe,0xda,0xfe,0xd4,0xfe, +0xaa,0xfe,0xbf,0xfe,0xbb,0xfe,0xb1,0xfe,0xd9,0xfe,0xd6,0xfe, +0xcb,0xfe,0xc5,0xfe,0xc8,0xfe,0xdc,0xfe,0xe1,0xfe,0x0,0xff, +0x7,0xff,0xe8,0xfe,0xf0,0xfe,0x1d,0xff,0x4a,0xff,0x4f,0xff, +0x4a,0xff,0x40,0xff,0x31,0xff,0x39,0xff,0x2b,0xff,0x1d,0xff, +0x21,0xff,0x17,0xff,0x13,0xff,0x14,0xff,0xe,0xff,0xf0,0xfe, +0xf7,0xfe,0x17,0xff,0x0,0xff,0x1,0xff,0x0,0xff,0xde,0xfe, +0xec,0xfe,0xf6,0xfe,0xfa,0xfe,0x3,0xff,0xee,0xfe,0xdf,0xfe, +0xe9,0xfe,0xf9,0xfe,0xf9,0xfe,0x5,0xff,0x3,0xff,0xd9,0xfe, +0xdb,0xfe,0xe8,0xfe,0xd7,0xfe,0xcc,0xfe,0xcb,0xfe,0xe7,0xfe, +0xf0,0xfe,0xe5,0xfe,0xed,0xfe,0xe8,0xfe,0xd8,0xfe,0xd3,0xfe, +0xf2,0xfe,0xfd,0xfe,0xd2,0xfe,0xd1,0xfe,0xf5,0xfe,0xff,0xfe, +0xef,0xfe,0xdf,0xfe,0xe5,0xfe,0xe4,0xfe,0xd8,0xfe,0xcf,0xfe, +0xbb,0xfe,0xbb,0xfe,0xd0,0xfe,0xc7,0xfe,0xbe,0xfe,0xd6,0xfe, +0xca,0xfe,0xb3,0xfe,0xc1,0xfe,0xa6,0xfe,0x99,0xfe,0xc9,0xfe, +0xd6,0xfe,0xd5,0xfe,0xd0,0xfe,0xb0,0xfe,0xb6,0xfe,0xdc,0xfe, +0xec,0xfe,0xe7,0xfe,0x3,0xff,0x21,0xff,0x1c,0xff,0x30,0xff, +0x43,0xff,0x27,0xff,0xe,0xff,0x14,0xff,0x34,0xff,0x3d,0xff, +0x32,0xff,0x31,0xff,0x19,0xff,0x12,0xff,0x4a,0xff,0x5e,0xff, +0x39,0xff,0x41,0xff,0x4c,0xff,0x37,0xff,0x65,0xff,0xa1,0xff, +0x99,0xff,0x7f,0xff,0x74,0xff,0x87,0xff,0xaa,0xff,0xaa,0xff, +0xb1,0xff,0xb9,0xff,0x92,0xff,0x8c,0xff,0xa1,0xff,0x97,0xff, +0xb6,0xff,0xd5,0xff,0xd3,0xff,0xdf,0xff,0xc8,0xff,0xc1,0xff, +0xe5,0xff,0xe8,0xff,0xd2,0xff,0xbc,0xff,0xa2,0xff,0x87,0xff, +0x76,0xff,0x5f,0xff,0x61,0xff,0x87,0xff,0x80,0xff,0x70,0xff, +0x6d,0xff,0x4b,0xff,0x42,0xff,0x49,0xff,0x45,0xff,0x47,0xff, +0x3f,0xff,0x2d,0xff,0x3e,0xff,0x77,0xff,0x85,0xff,0x65,0xff, +0x66,0xff,0x64,0xff,0x3a,0xff,0x29,0xff,0x3c,0xff,0x3f,0xff, +0x3c,0xff,0x4d,0xff,0x5d,0xff,0x74,0xff,0x95,0xff,0x98,0xff, +0x80,0xff,0x76,0xff,0x7a,0xff,0x96,0xff,0xa7,0xff,0x86,0xff, +0x79,0xff,0x8c,0xff,0x9c,0xff,0x98,0xff,0x84,0xff,0x9b,0xff, +0xba,0xff,0xc2,0xff,0xd1,0xff,0xd7,0xff,0xe1,0xff,0xf3,0xff, +0xfc,0xff,0xf9,0xff,0xd,0x0,0x26,0x0,0x17,0x0,0x17,0x0, +0x1e,0x0,0x21,0x0,0x3f,0x0,0x4b,0x0,0x46,0x0,0x37,0x0, +0x2a,0x0,0x31,0x0,0x60,0x0,0xa5,0x0,0x89,0x0,0x44,0x0, +0x40,0x0,0x5e,0x0,0x85,0x0,0x73,0x0,0x58,0x0,0x6d,0x0, +0x63,0x0,0x5b,0x0,0x63,0x0,0x54,0x0,0x47,0x0,0x3e,0x0, +0x49,0x0,0x66,0x0,0x6b,0x0,0x63,0x0,0x52,0x0,0x4d,0x0, +0x68,0x0,0x61,0x0,0x3e,0x0,0x47,0x0,0x69,0x0,0x88,0x0, +0x99,0x0,0x8f,0x0,0x8a,0x0,0x9e,0x0,0x7e,0x0,0x56,0x0, +0x91,0x0,0xbc,0x0,0xb2,0x0,0xb2,0x0,0x9e,0x0,0x94,0x0, +0xa0,0x0,0xc0,0x0,0xde,0x0,0xd8,0x0,0xd1,0x0,0xbd,0x0, +0xb4,0x0,0xc0,0x0,0xaa,0x0,0x95,0x0,0x85,0x0,0x73,0x0, +0x85,0x0,0x97,0x0,0x73,0x0,0x55,0x0,0x62,0x0,0x65,0x0, +0x5d,0x0,0x63,0x0,0x7f,0x0,0x93,0x0,0x6e,0x0,0x60,0x0, +0x77,0x0,0x67,0x0,0x7a,0x0,0xa4,0x0,0x93,0x0,0x7d,0x0, +0x6e,0x0,0x5f,0x0,0x94,0x0,0xc4,0x0,0xae,0x0,0xa4,0x0, +0xba,0x0,0xb3,0x0,0x94,0x0,0x8b,0x0,0x8b,0x0,0x8e,0x0, +0x94,0x0,0x90,0x0,0x99,0x0,0x9c,0x0,0xa1,0x0,0xb4,0x0, +0xbf,0x0,0xd7,0x0,0xd5,0x0,0xca,0x0,0xd2,0x0,0xba,0x0, +0x96,0x0,0x9f,0x0,0xc9,0x0,0xc5,0x0,0xc8,0x0,0xde,0x0, +0xcf,0x0,0xf0,0x0,0xe6,0x0,0xd1,0x0,0x1a,0x1,0x18,0x1, +0x1,0x1,0x1f,0x1,0x2a,0x1,0x32,0x1,0x31,0x1,0x26,0x1, +0x16,0x1,0x2c,0x1,0x3f,0x1,0x33,0x1,0x42,0x1,0x27,0x1, +0x11,0x1,0x14,0x1,0xa,0x1,0x16,0x1,0xee,0x0,0xd9,0x0, +0x8,0x1,0xa,0x1,0x18,0x1,0x3f,0x1,0x38,0x1,0x1d,0x1, +0x26,0x1,0x3d,0x1,0x2a,0x1,0x20,0x1,0x2e,0x1,0x23,0x1, +0x19,0x1,0x15,0x1,0xfa,0x0,0xde,0x0,0xde,0x0,0xe8,0x0, +0xf4,0x0,0x4,0x1,0xfd,0x0,0xef,0x0,0xe2,0x0,0xb4,0x0, +0x99,0x0,0xa0,0x0,0x99,0x0,0x97,0x0,0x94,0x0,0xa9,0x0, +0xbb,0x0,0x88,0x0,0x6c,0x0,0x5c,0x0,0x4a,0x0,0x55,0x0, +0x4f,0x0,0x4e,0x0,0x2d,0x0,0x29,0x0,0x6d,0x0,0x62,0x0, +0x38,0x0,0x2c,0x0,0x27,0x0,0x2c,0x0,0x2c,0x0,0x51,0x0, +0x5b,0x0,0x39,0x0,0x37,0x0,0x39,0x0,0x4c,0x0,0x57,0x0, +0x44,0x0,0x48,0x0,0x52,0x0,0x5e,0x0,0x78,0x0,0x80,0x0, +0x81,0x0,0x98,0x0,0xb8,0x0,0xbd,0x0,0xb1,0x0,0x9a,0x0, +0x90,0x0,0xbc,0x0,0xd0,0x0,0xb6,0x0,0xc1,0x0,0xb1,0x0, +0x8b,0x0,0x92,0x0,0x8f,0x0,0xa5,0x0,0xb6,0x0,0xae,0x0, +0xc6,0x0,0xb2,0x0,0xc5,0x0,0xe,0x1,0xfb,0x0,0xd5,0x0, +0xe1,0x0,0xf0,0x0,0xe3,0x0,0xd8,0x0,0xda,0x0,0xc2,0x0, +0xca,0x0,0xd7,0x0,0xbe,0x0,0xd4,0x0,0xf8,0x0,0xee,0x0, +0xfc,0x0,0x26,0x1,0x1c,0x1,0x0,0x1,0x4,0x1,0xe5,0x0, +0xaf,0x0,0xab,0x0,0xd6,0x0,0xe8,0x0,0xc9,0x0,0xbe,0x0, +0xce,0x0,0xd2,0x0,0xd2,0x0,0xcb,0x0,0xca,0x0,0xda,0x0, +0xc0,0x0,0xa0,0x0,0xe2,0x0,0x2f,0x1,0x1f,0x1,0xee,0x0, +0xdc,0x0,0xe5,0x0,0xee,0x0,0xec,0x0,0xde,0x0,0xe3,0x0, +0xd,0x1,0x16,0x1,0xfa,0x0,0xf3,0x0,0xee,0x0,0xe1,0x0, +0xd6,0x0,0xd7,0x0,0xf8,0x0,0x7,0x1,0xf1,0x0,0xeb,0x0, +0xd8,0x0,0xbd,0x0,0xc5,0x0,0xb4,0x0,0xa8,0x0,0xa6,0x0, +0x74,0x0,0x5e,0x0,0x6f,0x0,0x78,0x0,0x6e,0x0,0x48,0x0, +0x46,0x0,0x4f,0x0,0x40,0x0,0x4b,0x0,0x69,0x0,0x75,0x0, +0x47,0x0,0x2d,0x0,0x54,0x0,0x55,0x0,0x4d,0x0,0x51,0x0, +0x43,0x0,0x45,0x0,0x45,0x0,0x42,0x0,0x3d,0x0,0x38,0x0, +0x43,0x0,0x24,0x0,0x1c,0x0,0x46,0x0,0x36,0x0,0x6,0x0, +0xe7,0xff,0xdf,0xff,0xea,0xff,0xf9,0xff,0x18,0x0,0x22,0x0, +0x13,0x0,0x16,0x0,0x19,0x0,0x21,0x0,0x34,0x0,0x2d,0x0, +0x1c,0x0,0x31,0x0,0x31,0x0,0x1b,0x0,0x44,0x0,0x68,0x0, +0x64,0x0,0x75,0x0,0x6f,0x0,0x5a,0x0,0x74,0x0,0x97,0x0, +0x8e,0x0,0x6e,0x0,0x71,0x0,0x90,0x0,0x8a,0x0,0x5c,0x0, +0x55,0x0,0x73,0x0,0x81,0x0,0x9d,0x0,0xce,0x0,0xdc,0x0, +0xdb,0x0,0xe9,0x0,0xe7,0x0,0xf9,0x0,0x13,0x1,0xf1,0x0, +0xe5,0x0,0x16,0x1,0x14,0x1,0xe7,0x0,0xe5,0x0,0x6,0x1, +0xfe,0x0,0xc9,0x0,0xbe,0x0,0xce,0x0,0xb5,0x0,0xb6,0x0, +0xdf,0x0,0xc2,0x0,0x72,0x0,0x4a,0x0,0x4a,0x0,0x43,0x0, +0x26,0x0,0xd,0x0,0x10,0x0,0x3a,0x0,0x61,0x0,0x42,0x0, +0x12,0x0,0x1d,0x0,0x24,0x0,0xf5,0xff,0xc2,0xff,0x98,0xff, +0x71,0xff,0x4c,0xff,0x4a,0xff,0x77,0xff,0x78,0xff,0x61,0xff, +0x66,0xff,0x60,0xff,0x60,0xff,0x5d,0xff,0x6e,0xff,0x82,0xff, +0x60,0xff,0x56,0xff,0x59,0xff,0x53,0xff,0x6e,0xff,0x7d,0xff, +0x64,0xff,0x39,0xff,0x37,0xff,0x58,0xff,0x77,0xff,0x90,0xff, +0x7c,0xff,0x73,0xff,0x99,0xff,0xcd,0xff,0xe1,0xff,0xce,0xff, +0xdc,0xff,0xd7,0xff,0xbb,0xff,0xc0,0xff,0xab,0xff,0xaa,0xff, +0xcd,0xff,0xde,0xff,0xdb,0xff,0xd6,0xff,0xf3,0xff,0xfb,0xff, +0xec,0xff,0x8,0x0,0xc,0x0,0xf7,0xff,0x8,0x0,0x10,0x0, +0xc,0x0,0x11,0x0,0xa,0x0,0x1f,0x0,0x29,0x0,0x13,0x0, +0x1e,0x0,0x25,0x0,0x27,0x0,0x26,0x0,0x12,0x0,0x23,0x0, +0x33,0x0,0x47,0x0,0x75,0x0,0x63,0x0,0x40,0x0,0x47,0x0, +0x36,0x0,0x1a,0x0,0x1a,0x0,0xc,0x0,0xf4,0xff,0xe4,0xff, +0xd7,0xff,0xcd,0xff,0xc7,0xff,0xe1,0xff,0xff,0xff,0xef,0xff, +0xdc,0xff,0xe1,0xff,0xde,0xff,0xe8,0xff,0xd,0x0,0x3,0x0, +0xf7,0xff,0x28,0x0,0x16,0x0,0xd8,0xff,0xe0,0xff,0x10,0x0, +0x18,0x0,0xea,0xff,0xcb,0xff,0xb2,0xff,0xac,0xff,0xcf,0xff, +0xd4,0xff,0xd3,0xff,0xcb,0xff,0xb6,0xff,0xb5,0xff,0xa5,0xff, +0x83,0xff,0x5f,0xff,0x54,0xff,0x5f,0xff,0x57,0xff,0x51,0xff, +0x63,0xff,0x65,0xff,0x4b,0xff,0x4e,0xff,0x5f,0xff,0x4d,0xff, +0x27,0xff,0xff,0xfe,0xa,0xff,0x37,0xff,0x3f,0xff,0x4d,0xff, +0x74,0xff,0x86,0xff,0x77,0xff,0x6b,0xff,0x75,0xff,0x83,0xff, +0x7a,0xff,0x6e,0xff,0x7a,0xff,0x7f,0xff,0x72,0xff,0x4c,0xff, +0x49,0xff,0x75,0xff,0x7b,0xff,0x97,0xff,0xc3,0xff,0xc2,0xff, +0xb4,0xff,0xb6,0xff,0xd1,0xff,0xc3,0xff,0xc4,0xff,0xe9,0xff, +0xd6,0xff,0xd3,0xff,0xd1,0xff,0xd5,0xff,0xf5,0xff,0xee,0xff, +0xe2,0xff,0xda,0xff,0xc,0x0,0x21,0x0,0xd0,0xff,0xdd,0xff, +0x10,0x0,0x5,0x0,0xfe,0xff,0x28,0x0,0x5b,0x0,0x2a,0x0, +0xfe,0xff,0xd,0x0,0xc,0x0,0x22,0x0,0x1e,0x0,0xc,0x0, +0xe,0x0,0x1c,0x0,0x35,0x0,0xfb,0xff,0xd5,0xff,0x5,0x0, +0x14,0x0,0x10,0x0,0xe0,0xff,0xc6,0xff,0xf7,0xff,0xe,0x0, +0x44,0x0,0x4f,0x0,0xd,0x0,0xf8,0xff,0xc4,0xff,0xa3,0xff, +0xb4,0xff,0xb4,0xff,0xb9,0xff,0xae,0xff,0xc6,0xff,0xce,0xff, +0xb2,0xff,0xd4,0xff,0xbc,0xff,0x70,0xff,0x64,0xff,0x7c,0xff, +0x96,0xff,0x9e,0xff,0xa1,0xff,0xa7,0xff,0xdc,0xff,0xf5,0xff, +0xab,0xff,0x87,0xff,0x98,0xff,0x95,0xff,0x80,0xff,0x81,0xff, +0x9e,0xff,0x92,0xff,0x91,0xff,0x8c,0xff,0x53,0xff,0x43,0xff, +0x4e,0xff,0x46,0xff,0x49,0xff,0x50,0xff,0x4e,0xff,0x56,0xff, +0x4a,0xff,0x43,0xff,0x70,0xff,0x6d,0xff,0x58,0xff,0x6e,0xff, +0x6a,0xff,0x6d,0xff,0x61,0xff,0x5b,0xff,0x78,0xff,0x71,0xff, +0x8c,0xff,0xad,0xff,0x93,0xff,0x88,0xff,0x93,0xff,0xa0,0xff, +0x9b,0xff,0x95,0xff,0x9e,0xff,0x8c,0xff,0x87,0xff,0x95,0xff, +0x97,0xff,0xbc,0xff,0xe6,0xff,0xdc,0xff,0xd4,0xff,0xd5,0xff, +0xc2,0xff,0xd5,0xff,0x5,0x0,0x13,0x0,0xfe,0xff,0xed,0xff, +0x15,0x0,0x41,0x0,0x21,0x0,0xf9,0xff,0xfa,0xff,0x2,0x0, +0x6,0x0,0x2,0x0,0x16,0x0,0x35,0x0,0x38,0x0,0x53,0x0, +0x7f,0x0,0x7f,0x0,0x54,0x0,0x37,0x0,0x59,0x0,0x60,0x0, +0x41,0x0,0x51,0x0,0x55,0x0,0x31,0x0,0x24,0x0,0x35,0x0, +0x43,0x0,0x39,0x0,0x29,0x0,0x1e,0x0,0xc,0x0,0xfa,0xff, +0xfb,0xff,0xf9,0xff,0xff,0xff,0x2d,0x0,0x44,0x0,0x20,0x0, +0xf5,0xff,0xf0,0xff,0xf3,0xff,0xc8,0xff,0xbc,0xff,0xe0,0xff, +0xec,0xff,0xf1,0xff,0xdd,0xff,0xa8,0xff,0xa4,0xff,0xd9,0xff, +0xea,0xff,0xc7,0xff,0xc8,0xff,0xe5,0xff,0xda,0xff,0xc7,0xff, +0xc9,0xff,0xc8,0xff,0xca,0xff,0xc5,0xff,0xb5,0xff,0xb2,0xff, +0xac,0xff,0xac,0xff,0xb4,0xff,0xb2,0xff,0xd1,0xff,0xdf,0xff, +0xb4,0xff,0xb3,0xff,0xc2,0xff,0xb3,0xff,0xba,0xff,0xd1,0xff, +0xd4,0xff,0xbf,0xff,0xc4,0xff,0xec,0xff,0xdc,0xff,0xa6,0xff, +0x9f,0xff,0xab,0xff,0xb7,0xff,0xcc,0xff,0xcd,0xff,0xd4,0xff, +0xf1,0xff,0xeb,0xff,0xe9,0xff,0xa,0x0,0x7,0x0,0x3,0x0, +0x2a,0x0,0x4a,0x0,0x53,0x0,0x45,0x0,0x2c,0x0,0x40,0x0, +0x69,0x0,0x72,0x0,0x80,0x0,0x8f,0x0,0x81,0x0,0x92,0x0, +0xb5,0x0,0xac,0x0,0x8d,0x0,0x75,0x0,0x72,0x0,0x67,0x0, +0x6d,0x0,0x9b,0x0,0x9f,0x0,0x88,0x0,0x8a,0x0,0x96,0x0, +0x9b,0x0,0x7e,0x0,0x79,0x0,0x90,0x0,0x74,0x0,0x43,0x0, +0x3d,0x0,0x58,0x0,0x65,0x0,0x76,0x0,0x84,0x0,0x64,0x0, +0x46,0x0,0x48,0x0,0x48,0x0,0x33,0x0,0x1b,0x0,0x26,0x0, +0x48,0x0,0x4b,0x0,0x2c,0x0,0x1a,0x0,0x2e,0x0,0x3d,0x0, +0x19,0x0,0xf8,0xff,0x1c,0x0,0x34,0x0,0x1a,0x0,0x7,0x0, +0xec,0xff,0xcd,0xff,0xe4,0xff,0x6,0x0,0xfa,0xff,0xfb,0xff, +0x3,0x0,0xe3,0xff,0xd8,0xff,0xe6,0xff,0xed,0xff,0xf0,0xff, +0xec,0xff,0xfc,0xff,0x0,0x0,0xed,0xff,0xf8,0xff,0xe,0x0, +0x1d,0x0,0x1c,0x0,0x3,0x0,0x5,0x0,0x1a,0x0,0xb,0x0, +0xf9,0xff,0xf0,0xff,0xdf,0xff,0xe9,0xff,0xff,0xff,0xa,0x0, +0x10,0x0,0x10,0x0,0x20,0x0,0x2e,0x0,0x34,0x0,0x3d,0x0, +0x38,0x0,0x38,0x0,0x48,0x0,0x4a,0x0,0x44,0x0,0x67,0x0, +0x94,0x0,0x94,0x0,0x81,0x0,0x7c,0x0,0x90,0x0,0xac,0x0, +0xc3,0x0,0xe5,0x0,0xfa,0x0,0xf0,0x0,0xda,0x0,0xd1,0x0, +0xd3,0x0,0xe2,0x0,0xfd,0x0,0xf8,0x0,0xee,0x0,0x0,0x1, +0xb,0x1,0x10,0x1,0xd,0x1,0xfd,0x0,0x1,0x1,0xc,0x1, +0xf6,0x0,0xea,0x0,0xe5,0x0,0xda,0x0,0xf5,0x0,0xec,0x0, +0xdb,0x0,0xee,0x0,0xd4,0x0,0xc8,0x0,0xd0,0x0,0xce,0x0, +0xde,0x0,0xd8,0x0,0xd5,0x0,0xd8,0x0,0xdf,0x0,0xe8,0x0, +0xd8,0x0,0xe5,0x0,0xf6,0x0,0xfd,0x0,0x11,0x1,0xef,0x0, +0xc7,0x0,0xe2,0x0,0xfb,0x0,0xed,0x0,0xe6,0x0,0xdf,0x0, +0xc5,0x0,0xb9,0x0,0xb8,0x0,0xbc,0x0,0xbc,0x0,0xb2,0x0, +0xc0,0x0,0xcb,0x0,0xb8,0x0,0xae,0x0,0xa2,0x0,0x86,0x0, +0xa2,0x0,0xe1,0x0,0xdd,0x0,0xbe,0x0,0xb9,0x0,0xb9,0x0, +0xb9,0x0,0xb3,0x0,0x9f,0x0,0xa6,0x0,0xbd,0x0,0xa6,0x0, +0xa0,0x0,0xb8,0x0,0xc2,0x0,0xe3,0x0,0xe7,0x0,0xd2,0x0, +0xd3,0x0,0xd6,0x0,0xd8,0x0,0xc5,0x0,0xbb,0x0,0xb5,0x0, +0x9e,0x0,0xa9,0x0,0xb0,0x0,0xac,0x0,0xb5,0x0,0xb3,0x0, +0xb0,0x0,0x9d,0x0,0x8c,0x0,0xa5,0x0,0xb5,0x0,0xa9,0x0, +0xbb,0x0,0xce,0x0,0xc4,0x0,0xd2,0x0,0xdb,0x0,0xd2,0x0, +0xd7,0x0,0xd8,0x0,0xd9,0x0,0xd9,0x0,0xdf,0x0,0xf8,0x0, +0x8,0x1,0x16,0x1,0x1f,0x1,0xd,0x1,0xa,0x1,0x26,0x1, +0x2e,0x1,0x33,0x1,0x4c,0x1,0x52,0x1,0x5e,0x1,0x6b,0x1, +0x52,0x1,0x39,0x1,0x34,0x1,0x47,0x1,0x60,0x1,0x63,0x1, +0x5b,0x1,0x49,0x1,0x32,0x1,0x21,0x1,0x12,0x1,0xe,0x1, +0x12,0x1,0x21,0x1,0x3c,0x1,0x33,0x1,0x1a,0x1,0x2b,0x1, +0x2a,0x1,0x21,0x1,0x29,0x1,0x0,0x1,0xef,0x0,0x1,0x1, +0xdf,0x0,0xb8,0x0,0xa6,0x0,0x94,0x0,0x9e,0x0,0xc4,0x0, +0xdb,0x0,0xdd,0x0,0xe9,0x0,0x4,0x1,0x0,0x1,0xce,0x0, +0xb8,0x0,0xbc,0x0,0xbc,0x0,0xc2,0x0,0xaf,0x0,0xa4,0x0, +0xa8,0x0,0x9c,0x0,0x98,0x0,0x8b,0x0,0x78,0x0,0x6f,0x0, +0x71,0x0,0x6c,0x0,0x50,0x0,0x52,0x0,0x63,0x0,0x73,0x0, +0x91,0x0,0x92,0x0,0x91,0x0,0x91,0x0,0x82,0x0,0x88,0x0, +0xa2,0x0,0xb8,0x0,0xb4,0x0,0xae,0x0,0xb9,0x0,0xbb,0x0, +0xb4,0x0,0xb0,0x0,0xb4,0x0,0xb1,0x0,0x9a,0x0,0xa0,0x0, +0xc5,0x0,0xd0,0x0,0xc1,0x0,0xb2,0x0,0xa2,0x0,0xa7,0x0, +0xbc,0x0,0xc9,0x0,0xc3,0x0,0xac,0x0,0xb9,0x0,0xd6,0x0, +0xc5,0x0,0xc8,0x0,0xe2,0x0,0xd2,0x0,0xc2,0x0,0xb6,0x0, +0xb1,0x0,0xd9,0x0,0xf0,0x0,0xf9,0x0,0x16,0x1,0x14,0x1, +0xb,0x1,0x20,0x1,0x2e,0x1,0x38,0x1,0x42,0x1,0x3b,0x1, +0x2c,0x1,0x20,0x1,0x2d,0x1,0x44,0x1,0x3b,0x1,0x3c,0x1, +0x41,0x1,0x30,0x1,0x39,0x1,0x3c,0x1,0x20,0x1,0x0,0x1, +0xd5,0x0,0xc5,0x0,0xc0,0x0,0xc0,0x0,0xd0,0x0,0xd0,0x0, +0xda,0x0,0xc8,0x0,0xb4,0x0,0xcb,0x0,0xb1,0x0,0x9c,0x0, +0xb3,0x0,0xb9,0x0,0xa3,0x0,0x76,0x0,0x66,0x0,0x6a,0x0, +0x7a,0x0,0x9f,0x0,0x8e,0x0,0x67,0x0,0x49,0x0,0x2f,0x0, +0x37,0x0,0x2e,0x0,0x18,0x0,0x21,0x0,0x2d,0x0,0x28,0x0, +0x22,0x0,0x1f,0x0,0xb,0x0,0xb,0x0,0x16,0x0,0x7,0x0, +0x9,0x0,0x16,0x0,0x10,0x0,0x3,0x0,0xe,0x0,0x24,0x0, +0x16,0x0,0xa,0x0,0x12,0x0,0xe,0x0,0xf6,0xff,0xd9,0xff, +0xe9,0xff,0xf7,0xff,0xe5,0xff,0xe9,0xff,0xe5,0xff,0xe3,0xff, +0xf3,0xff,0x2,0x0,0x14,0x0,0xfc,0xff,0xe0,0xff,0xde,0xff, +0xce,0xff,0xdf,0xff,0xb,0x0,0x14,0x0,0x2,0x0,0xf5,0xff, +0xe,0x0,0x44,0x0,0x54,0x0,0x39,0x0,0x3d,0x0,0x4f,0x0, +0x42,0x0,0x42,0x0,0x48,0x0,0x38,0x0,0x21,0x0,0x24,0x0, +0x43,0x0,0x47,0x0,0x49,0x0,0x5e,0x0,0x6b,0x0,0x79,0x0, +0x6e,0x0,0x62,0x0,0x7a,0x0,0x74,0x0,0x56,0x0,0x59,0x0, +0x5b,0x0,0x4b,0x0,0x4e,0x0,0x4e,0x0,0x45,0x0,0x6c,0x0, +0x93,0x0,0x8f,0x0,0x7e,0x0,0x71,0x0,0x6b,0x0,0x58,0x0, +0x5b,0x0,0x77,0x0,0x65,0x0,0x58,0x0,0x50,0x0,0x2e,0x0, +0x28,0x0,0x16,0x0,0xf6,0xff,0xf4,0xff,0x0,0x0,0x11,0x0, +0xe,0x0,0xee,0xff,0xb5,0xff,0xa9,0xff,0xe0,0xff,0xde,0xff, +0xb9,0xff,0xad,0xff,0x91,0xff,0x8a,0xff,0x8e,0xff,0x75,0xff, +0x7c,0xff,0x9c,0xff,0x94,0xff,0x7d,0xff,0x98,0xff,0xa8,0xff, +0x85,0xff,0x7b,0xff,0x8c,0xff,0x99,0xff,0x92,0xff,0x7a,0xff, +0x83,0xff,0x82,0xff,0x61,0xff,0x65,0xff,0x6a,0xff,0x5d,0xff, +0x5a,0xff,0x39,0xff,0x27,0xff,0x3a,0xff,0x33,0xff,0x3a,0xff, +0x65,0xff,0x7d,0xff,0x78,0xff,0x76,0xff,0x90,0xff,0xa6,0xff, +0xb0,0xff,0xd0,0xff,0xc9,0xff,0xa3,0xff,0xb5,0xff,0xc4,0xff, +0xa8,0xff,0xba,0xff,0xe6,0xff,0x2,0x0,0x11,0x0,0xe8,0xff, +0xc8,0xff,0xef,0xff,0xf5,0xff,0xe1,0xff,0xe9,0xff,0xf5,0xff, +0xb,0x0,0x13,0x0,0xf,0x0,0x2a,0x0,0x2f,0x0,0x11,0x0, +0xf,0x0,0x2b,0x0,0x42,0x0,0x35,0x0,0xe,0x0,0x3,0x0, +0x15,0x0,0x16,0x0,0x19,0x0,0x26,0x0,0xfd,0xff,0xc6,0xff, +0xce,0xff,0xe2,0xff,0xee,0xff,0x7,0x0,0xed,0xff,0xc7,0xff, +0xdc,0xff,0xe5,0xff,0xde,0xff,0xdb,0xff,0xca,0xff,0xd3,0xff, +0xce,0xff,0xc0,0xff,0xe1,0xff,0xe3,0xff,0xd0,0xff,0xcc,0xff, +0xab,0xff,0x93,0xff,0x88,0xff,0x79,0xff,0x7c,0xff,0x84,0xff, +0x7e,0xff,0x5a,0xff,0x44,0xff,0x4e,0xff,0x4c,0xff,0x50,0xff, +0x51,0xff,0x44,0xff,0x3a,0xff,0x28,0xff,0x28,0xff,0x26,0xff, +0x13,0xff,0x21,0xff,0x5c,0xff,0x88,0xff,0x70,0xff,0x47,0xff, +0x44,0xff,0x3e,0xff,0x33,0xff,0x3b,0xff,0x3f,0xff,0x46,0xff, +0x61,0xff,0x68,0xff,0x53,0xff,0x5a,0xff,0x6d,0xff,0x69,0xff, +0x56,0xff,0x55,0xff,0x69,0xff,0x64,0xff,0x61,0xff,0x73,0xff, +0x63,0xff,0x41,0xff,0x31,0xff,0x26,0xff,0x1f,0xff,0x2d,0xff, +0x2c,0xff,0x14,0xff,0xa,0xff,0xf6,0xfe,0xef,0xfe,0x0,0xff, +0x2,0xff,0x9,0xff,0xfa,0xfe,0x3,0xff,0x22,0xff,0xfb,0xfe, +0x4,0xff,0x38,0xff,0x2e,0xff,0x39,0xff,0x4b,0xff,0x48,0xff, +0x5a,0xff,0x89,0xff,0xa4,0xff,0x7a,0xff,0x64,0xff,0x7d,0xff, +0x97,0xff,0xab,0xff,0x90,0xff,0x75,0xff,0x78,0xff,0x7b,0xff, +0x87,0xff,0x73,0xff,0x56,0xff,0x51,0xff,0x64,0xff,0x81,0xff, +0x7c,0xff,0x8c,0xff,0x98,0xff,0x88,0xff,0x97,0xff,0x8e,0xff, +0x83,0xff,0x95,0xff,0x82,0xff,0x83,0xff,0xa1,0xff,0x92,0xff, +0x7b,0xff,0x88,0xff,0x85,0xff,0x6c,0xff,0x6a,0xff,0x69,0xff, +0x4d,0xff,0x1f,0xff,0x9,0xff,0xb,0xff,0x10,0xff,0x39,0xff, +0x44,0xff,0x2c,0xff,0x33,0xff,0x18,0xff,0xf6,0xfe,0xeb,0xfe, +0xdc,0xfe,0xf1,0xfe,0xb,0xff,0x15,0xff,0x8,0xff,0x5,0xff, +0x14,0xff,0xf0,0xfe,0xf3,0xfe,0x12,0xff,0xfc,0xfe,0x0,0xff, +0xf3,0xfe,0xed,0xfe,0x4,0xff,0xd4,0xfe,0xb3,0xfe,0xce,0xfe, +0xe8,0xfe,0x9,0xff,0x22,0xff,0x16,0xff,0x2,0xff,0x17,0xff, +0x1d,0xff,0x0,0xff,0x4,0xff,0x16,0xff,0x19,0xff,0xb,0xff, +0xa,0xff,0x2,0xff,0xd6,0xfe,0xe5,0xfe,0xf1,0xfe,0xd3,0xfe, +0xdb,0xfe,0xc5,0xfe,0xbc,0xfe,0xd9,0xfe,0xca,0xfe,0xd4,0xfe, +0xe0,0xfe,0xcb,0xfe,0xe0,0xfe,0x15,0xff,0x32,0xff,0x20,0xff, +0x16,0xff,0x2a,0xff,0x27,0xff,0x24,0xff,0x25,0xff,0x3b,0xff, +0x7b,0xff,0x86,0xff,0x6a,0xff,0x84,0xff,0xa0,0xff,0x99,0xff, +0x92,0xff,0x84,0xff,0x78,0xff,0x7e,0xff,0x88,0xff,0x80,0xff, +0x67,0xff,0x6d,0xff,0x93,0xff,0xa9,0xff,0x98,0xff,0x68,0xff, +0x59,0xff,0x6b,0xff,0x5f,0xff,0x61,0xff,0x75,0xff,0x6d,0xff, +0x62,0xff,0x60,0xff,0x56,0xff,0x4d,0xff,0x4b,0xff,0x3f,0xff, +0x46,0xff,0x6d,0xff,0x89,0xff,0x92,0xff,0x7d,0xff,0x66,0xff, +0x6e,0xff,0x5c,0xff,0x59,0xff,0x74,0xff,0x74,0xff,0x74,0xff, +0x63,0xff,0x54,0xff,0x6b,0xff,0x75,0xff,0x6e,0xff,0x53,0xff, +0x43,0xff,0x41,0xff,0x21,0xff,0x26,0xff,0x4a,0xff,0x4a,0xff, +0x40,0xff,0x36,0xff,0x2a,0xff,0x1f,0xff,0x19,0xff,0x14,0xff, +0x9,0xff,0x12,0xff,0x1c,0xff,0x27,0xff,0x48,0xff,0x53,0xff, +0x45,0xff,0x52,0xff,0x70,0xff,0x6e,0xff,0x76,0xff,0x85,0xff, +0x61,0xff,0x5d,0xff,0x7b,0xff,0x68,0xff,0x4d,0xff,0x4d,0xff, +0x87,0xff,0x9f,0xff,0x4c,0xff,0x3c,0xff,0x6a,0xff,0x83,0xff, +0xa1,0xff,0x8e,0xff,0x73,0xff,0x88,0xff,0xa4,0xff,0xa9,0xff, +0x7b,0xff,0x69,0xff,0x7c,0xff,0x6a,0xff,0x61,0xff,0x72,0xff, +0x80,0xff,0x7d,0xff,0x72,0xff,0x89,0xff,0x8f,0xff,0x77,0xff, +0x80,0xff,0x96,0xff,0x9d,0xff,0xaa,0xff,0xc1,0xff,0xba,0xff, +0xaa,0xff,0xa8,0xff,0xa0,0xff,0xaa,0xff,0xa4,0xff,0x97,0xff, +0xb6,0xff,0xc0,0xff,0xbf,0xff,0xb6,0xff,0x86,0xff,0x85,0xff, +0xa1,0xff,0xaf,0xff,0xc5,0xff,0xd5,0xff,0xe5,0xff,0xe7,0xff, +0xd3,0xff,0xcf,0xff,0xfa,0xff,0x22,0x0,0xfc,0xff,0xd4,0xff, +0xe6,0xff,0xf2,0xff,0xd0,0xff,0xa6,0xff,0xbc,0xff,0xf8,0xff, +0x2a,0x0,0x32,0x0,0xff,0xff,0xfe,0xff,0x28,0x0,0x43,0x0, +0x5b,0x0,0x3b,0x0,0x24,0x0,0x31,0x0,0x1f,0x0,0x3a,0x0, +0x50,0x0,0x3e,0x0,0x41,0x0,0x20,0x0,0xb,0x0,0x22,0x0, +0x7,0x0,0xcf,0xff,0xc3,0xff,0xe9,0xff,0xee,0xff,0xcc,0xff, +0xbd,0xff,0x9f,0xff,0x8f,0xff,0x96,0xff,0x9d,0xff,0xc2,0xff, +0xc6,0xff,0x9f,0xff,0x9a,0xff,0xa7,0xff,0xb5,0xff,0xae,0xff, +0x8d,0xff,0x7c,0xff,0x7c,0xff,0x8b,0xff,0xa2,0xff,0xa5,0xff, +0x9f,0xff,0xa4,0xff,0xb7,0xff,0xb8,0xff,0x99,0xff,0x95,0xff, +0xac,0xff,0xae,0xff,0x9d,0xff,0x93,0xff,0xa6,0xff,0xbf,0xff, +0xce,0xff,0xc8,0xff,0xbc,0xff,0xd7,0xff,0xe6,0xff,0xd8,0xff, +0xe5,0xff,0xe9,0xff,0xe0,0xff,0xe9,0xff,0xf7,0xff,0xfa,0xff, +0xd,0x0,0x47,0x0,0x5b,0x0,0x67,0x0,0x84,0x0,0x76,0x0, +0x9e,0x0,0xd6,0x0,0xb4,0x0,0xa1,0x0,0xb1,0x0,0xa8,0x0, +0x9d,0x0,0xce,0x0,0x0,0x1,0xce,0x0,0xcc,0x0,0xb,0x1, +0x3,0x1,0xfb,0x0,0xf5,0x0,0xcb,0x0,0xba,0x0,0xcd,0x0, +0xf4,0x0,0xc,0x1,0xf,0x1,0x12,0x1,0x1,0x1,0xed,0x0, +0xe2,0x0,0xde,0x0,0xc9,0x0,0xb2,0x0,0xd5,0x0,0xd4,0x0, +0xa7,0x0,0xb6,0x0,0xc0,0x0,0xb6,0x0,0xad,0x0,0x89,0x0, +0x80,0x0,0x9c,0x0,0xc7,0x0,0xdd,0x0,0xd6,0x0,0xee,0x0, +0xf9,0x0,0xe3,0x0,0xd1,0x0,0xc9,0x0,0xcc,0x0,0xc2,0x0, +0xba,0x0,0xc7,0x0,0xc4,0x0,0xbd,0x0,0xc6,0x0,0xc8,0x0, +0xb7,0x0,0xab,0x0,0xbb,0x0,0xd8,0x0,0xd8,0x0,0xa9,0x0, +0x7f,0x0,0x79,0x0,0x91,0x0,0xbf,0x0,0xd6,0x0,0xd9,0x0, +0xd7,0x0,0xd1,0x0,0xd6,0x0,0xcb,0x0,0xbd,0x0,0xc4,0x0, +0xb4,0x0,0xa0,0x0,0xbe,0x0,0xdc,0x0,0xc8,0x0,0xba,0x0, +0xdc,0x0,0xd4,0x0,0xa7,0x0,0xb4,0x0,0xae,0x0,0x95,0x0, +0xc2,0x0,0xd7,0x0,0xc3,0x0,0xd6,0x0,0xf0,0x0,0xee,0x0, +0xc9,0x0,0xb4,0x0,0xcf,0x0,0xd6,0x0,0xd6,0x0,0xe2,0x0, +0xce,0x0,0xb5,0x0,0xc1,0x0,0xcb,0x0,0xda,0x0,0x1a,0x1, +0x43,0x1,0x2c,0x1,0x24,0x1,0x34,0x1,0x19,0x1,0xee,0x0, +0xe5,0x0,0xdf,0x0,0xd9,0x0,0xf7,0x0,0xf,0x1,0x16,0x1, +0x1b,0x1,0x14,0x1,0x22,0x1,0x3e,0x1,0x44,0x1,0x3b,0x1, +0x3c,0x1,0x33,0x1,0x13,0x1,0x26,0x1,0x48,0x1,0x3f,0x1, +0x48,0x1,0x40,0x1,0x37,0x1,0x4e,0x1,0x28,0x1,0xf3,0x0, +0xea,0x0,0xfc,0x0,0x24,0x1,0x1d,0x1,0xe5,0x0,0xc9,0x0, +0xdd,0x0,0xe8,0x0,0xd4,0x0,0xca,0x0,0xa6,0x0,0x80,0x0, +0x84,0x0,0x83,0x0,0x84,0x0,0x88,0x0,0x86,0x0,0x85,0x0, +0x7f,0x0,0x72,0x0,0x62,0x0,0x84,0x0,0xac,0x0,0x8b,0x0, +0x5d,0x0,0x56,0x0,0x60,0x0,0x56,0x0,0x4a,0x0,0x52,0x0, +0x5c,0x0,0x68,0x0,0x62,0x0,0x55,0x0,0x5d,0x0,0x5b,0x0, +0x44,0x0,0x28,0x0,0x1d,0x0,0x3a,0x0,0x6d,0x0,0x89,0x0, +0x9e,0x0,0xb8,0x0,0xb1,0x0,0xb4,0x0,0xb1,0x0,0x9c,0x0, +0xbd,0x0,0xbc,0x0,0xaa,0x0,0xd0,0x0,0xda,0x0,0xea,0x0, +0x4,0x1,0xf1,0x0,0xeb,0x0,0xf0,0x0,0xfd,0x0,0x17,0x1, +0x11,0x1,0x2,0x1,0x7,0x1,0x12,0x1,0x13,0x1,0xe,0x1, +0x9,0x1,0xf5,0x0,0xf4,0x0,0xe,0x1,0x11,0x1,0x9,0x1, +0xf9,0x0,0xf2,0x0,0xe,0x1,0x21,0x1,0x15,0x1,0xe,0x1, +0x27,0x1,0x19,0x1,0xe5,0x0,0xe1,0x0,0xed,0x0,0x5,0x1, +0x20,0x1,0x11,0x1,0xd,0x1,0x0,0x1,0xfb,0x0,0x1b,0x1, +0x26,0x1,0x31,0x1,0x2e,0x1,0x21,0x1,0x31,0x1,0x21,0x1, +0x3,0x1,0x6,0x1,0xfa,0x0,0xf1,0x0,0xfb,0x0,0xe2,0x0, +0xbc,0x0,0xc5,0x0,0xec,0x0,0x9,0x1,0xc,0x1,0x7,0x1, +0x3,0x1,0xf5,0x0,0xeb,0x0,0xe0,0x0,0xc2,0x0,0x99,0x0, +0x9a,0x0,0xb6,0x0,0xa3,0x0,0xb0,0x0,0xdb,0x0,0xcc,0x0, +0xc8,0x0,0xb6,0x0,0x78,0x0,0x6c,0x0,0x81,0x0,0x90,0x0, +0x8e,0x0,0x7d,0x0,0x72,0x0,0x5d,0x0,0x5a,0x0,0x78,0x0, +0x72,0x0,0x4a,0x0,0x63,0x0,0xac,0x0,0xb1,0x0,0x90,0x0, +0x72,0x0,0x60,0x0,0x88,0x0,0x8d,0x0,0x60,0x0,0x58,0x0, +0x4e,0x0,0x40,0x0,0x22,0x0,0x15,0x0,0x5c,0x0,0x74,0x0, +0x49,0x0,0x34,0x0,0x2b,0x0,0x2f,0x0,0x4d,0x0,0x85,0x0, +0x9a,0x0,0x7f,0x0,0x6b,0x0,0x57,0x0,0x69,0x0,0x98,0x0, +0xa5,0x0,0xa4,0x0,0x9a,0x0,0x8e,0x0,0x8d,0x0,0x9a,0x0, +0xbf,0x0,0xbd,0x0,0x97,0x0,0x9e,0x0,0xb0,0x0,0xb1,0x0, +0xa6,0x0,0x85,0x0,0x7b,0x0,0x85,0x0,0x93,0x0,0xaf,0x0, +0xa2,0x0,0x96,0x0,0xa7,0x0,0x9e,0x0,0xa0,0x0,0xac,0x0, +0xbf,0x0,0xc9,0x0,0x9c,0x0,0x74,0x0,0x69,0x0,0x80,0x0, +0xa3,0x0,0xb7,0x0,0xe4,0x0,0xde,0x0,0xb1,0x0,0xab,0x0, +0x9c,0x0,0x9c,0x0,0x9e,0x0,0x7d,0x0,0x69,0x0,0x49,0x0, +0x3c,0x0,0x4f,0x0,0x4c,0x0,0x3f,0x0,0x17,0x0,0xf9,0xff, +0x20,0x0,0x37,0x0,0x12,0x0,0xe4,0xff,0xc9,0xff,0xca,0xff, +0xe3,0xff,0xd4,0xff,0xb3,0xff,0xcd,0xff,0xd8,0xff,0xbf,0xff, +0xb2,0xff,0xa1,0xff,0xa4,0xff,0xa9,0xff,0xad,0xff,0xb1,0xff, +0xb3,0xff,0xc6,0xff,0xac,0xff,0xa3,0xff,0xc4,0xff,0xae,0xff, +0x90,0xff,0x7d,0xff,0x97,0xff,0xd0,0xff,0xd6,0xff,0xf2,0xff, +0x9,0x0,0xfb,0xff,0xf0,0xff,0xe0,0xff,0xdd,0xff,0xc1,0xff, +0xad,0xff,0xbc,0xff,0xaf,0xff,0xba,0xff,0xd0,0xff,0xc2,0xff, +0xb9,0xff,0xb5,0xff,0xaf,0xff,0xab,0xff,0x9a,0xff,0x9a,0xff, +0xd1,0xff,0xf1,0xff,0xd5,0xff,0xd3,0xff,0xd9,0xff,0xc7,0xff, +0xc2,0xff,0xc7,0xff,0xd2,0xff,0xdb,0xff,0xd4,0xff,0xc4,0xff, +0xaa,0xff,0xa5,0xff,0xc1,0xff,0xd0,0xff,0xde,0xff,0xda,0xff, +0xce,0xff,0xf5,0xff,0x0,0x0,0xf5,0xff,0x10,0x0,0xe,0x0, +0x3,0x0,0xf2,0xff,0xda,0xff,0xf9,0xff,0x15,0x0,0x3,0x0, +0xfc,0xff,0x1e,0x0,0x2b,0x0,0xd,0x0,0xf6,0xff,0xed,0xff, +0x1,0x0,0x11,0x0,0x9,0x0,0x10,0x0,0x19,0x0,0x19,0x0, +0xc,0x0,0xfa,0xff,0xf6,0xff,0xff,0xff,0xc,0x0,0x3,0x0, +0xe6,0xff,0xc9,0xff,0xbe,0xff,0xb2,0xff,0xa2,0xff,0xb1,0xff, +0xc2,0xff,0xd4,0xff,0xd2,0xff,0xb2,0xff,0xcc,0xff,0xe0,0xff, +0xbe,0xff,0xb4,0xff,0xcd,0xff,0xe0,0xff,0xc3,0xff,0xb6,0xff, +0xdf,0xff,0xef,0xff,0xdb,0xff,0xd4,0xff,0xd5,0xff,0xc1,0xff, +0xb1,0xff,0xb8,0xff,0xb9,0xff,0xd1,0xff,0xed,0xff,0xd3,0xff, +0xc3,0xff,0xde,0xff,0xe0,0xff,0xda,0xff,0xf1,0xff,0xfe,0xff, +0x6,0x0,0x0,0x0,0xe1,0xff,0xe3,0xff,0xe1,0xff,0xcc,0xff, +0xe1,0xff,0xf4,0xff,0xfa,0xff,0xf8,0xff,0xe1,0xff,0xe7,0xff, +0xde,0xff,0xb1,0xff,0xa5,0xff,0xa4,0xff,0x94,0xff,0x8d,0xff, +0x96,0xff,0x8d,0xff,0x80,0xff,0x88,0xff,0x72,0xff,0x74,0xff, +0xb7,0xff,0xce,0xff,0xb3,0xff,0xb3,0xff,0xcf,0xff,0xcb,0xff, +0xc1,0xff,0xe1,0xff,0xfa,0xff,0xc,0x0,0x15,0x0,0x18,0x0, +0x2c,0x0,0x33,0x0,0x44,0x0,0x55,0x0,0x36,0x0,0x10,0x0, +0x9,0x0,0x11,0x0,0x9,0x0,0xf4,0xff,0xde,0xff,0xe9,0xff, +0x1a,0x0,0x2c,0x0,0x14,0x0,0x2,0x0,0x0,0x0,0xfb,0xff, +0xfe,0xff,0xf5,0xff,0xe5,0xff,0xff,0xff,0xeb,0xff,0xc0,0xff, +0xf6,0xff,0x20,0x0,0xa,0x0,0xfa,0xff,0x3,0x0,0x7,0x0, +0x0,0x0,0x0,0x0,0xfd,0xff,0x1e,0x0,0x34,0x0,0x7,0x0, +0xe3,0xff,0xca,0xff,0xaf,0xff,0x8e,0xff,0x74,0xff,0x9c,0xff, +0xcb,0xff,0xb8,0xff,0x9d,0xff,0xaa,0xff,0xa5,0xff,0x95,0xff, +0x94,0xff,0x81,0xff,0x8d,0xff,0xaf,0xff,0xb3,0xff,0x98,0xff, +0x6c,0xff,0x68,0xff,0x6f,0xff,0x63,0xff,0x5b,0xff,0x59,0xff, +0x59,0xff,0x6f,0xff,0x8d,0xff,0x6b,0xff,0x44,0xff,0x4b,0xff, +0x3c,0xff,0x34,0xff,0x43,0xff,0x54,0xff,0x59,0xff,0x49,0xff, +0x3b,0xff,0x37,0xff,0x47,0xff,0x44,0xff,0x41,0xff,0x56,0xff, +0x54,0xff,0x5e,0xff,0x5b,0xff,0x53,0xff,0x6c,0xff,0x70,0xff, +0x7e,0xff,0x7f,0xff,0x62,0xff,0x79,0xff,0x8e,0xff,0x8b,0xff, +0xa6,0xff,0xae,0xff,0x97,0xff,0x9d,0xff,0xa9,0xff,0xb1,0xff, +0xd0,0xff,0xd8,0xff,0xc1,0xff,0xc2,0xff,0xe1,0xff,0xe7,0xff, +0xec,0xff,0x8,0x0,0xf0,0xff,0xe8,0xff,0xa,0x0,0x0,0x0, +0xfc,0xff,0xa,0x0,0xf1,0xff,0xba,0xff,0xa8,0xff,0xbc,0xff, +0xc5,0xff,0xdd,0xff,0xde,0xff,0xe0,0xff,0x7,0x0,0x15,0x0, +0x20,0x0,0x16,0x0,0xed,0xff,0xd7,0xff,0xdc,0xff,0xf5,0xff, +0xfd,0xff,0x3,0x0,0x7,0x0,0xdf,0xff,0xce,0xff,0xed,0xff, +0xfa,0xff,0xf1,0xff,0xe4,0xff,0xe4,0xff,0xef,0xff,0xdd,0xff, +0xc4,0xff,0xe0,0xff,0x16,0x0,0x10,0x0,0xc0,0xff,0x9f,0xff, +0xb5,0xff,0xb2,0xff,0xb2,0xff,0xb7,0xff,0xb9,0xff,0xad,0xff, +0x90,0xff,0x88,0xff,0x72,0xff,0x79,0xff,0x90,0xff,0x7c,0xff, +0x95,0xff,0xb3,0xff,0xa9,0xff,0x8f,0xff,0x56,0xff,0x43,0xff, +0x5c,0xff,0x7c,0xff,0x92,0xff,0x75,0xff,0x56,0xff,0x89,0xff, +0xab,0xff,0x71,0xff,0x6b,0xff,0xa6,0xff,0xb7,0xff,0xae,0xff, +0x9b,0xff,0x97,0xff,0xa9,0xff,0xc0,0xff,0xe0,0xff,0xd1,0xff, +0xc1,0xff,0xe9,0xff,0xf4,0xff,0xc6,0xff,0xab,0xff,0xba,0xff, +0xd3,0xff,0xda,0xff,0xc2,0xff,0xb0,0xff,0xbd,0xff,0xe6,0xff, +0x20,0x0,0x1e,0x0,0xed,0xff,0xdb,0xff,0xdf,0xff,0xea,0xff, +0xfb,0xff,0x8,0x0,0x9,0x0,0xe,0x0,0xf,0x0,0xfa,0xff, +0x4,0x0,0x2a,0x0,0x2f,0x0,0x16,0x0,0x17,0x0,0x47,0x0, +0x68,0x0,0x70,0x0,0x80,0x0,0x8a,0x0,0x7b,0x0,0x5f,0x0, +0x5f,0x0,0x65,0x0,0x5b,0x0,0x5f,0x0,0x68,0x0,0x8b,0x0, +0xa0,0x0,0x6b,0x0,0x49,0x0,0x4e,0x0,0x41,0x0,0x3d,0x0, +0x48,0x0,0x2b,0x0,0x2,0x0,0x14,0x0,0x4d,0x0,0x57,0x0, +0x27,0x0,0x21,0x0,0x3d,0x0,0x27,0x0,0x26,0x0,0x33,0x0, +0x3b,0x0,0x48,0x0,0x20,0x0,0x21,0x0,0x4a,0x0,0x52,0x0, +0x64,0x0,0x3b,0x0,0x13,0x0,0x2d,0x0,0x26,0x0,0x12,0x0, +0xc,0x0,0x19,0x0,0x21,0x0,0x11,0x0,0x9,0x0,0xfd,0xff, +0xff,0xff,0xf4,0xff,0xd2,0xff,0xd7,0xff,0xe5,0xff,0xe5,0xff, +0xeb,0xff,0xe6,0xff,0xcd,0xff,0xc0,0xff,0xcf,0xff,0xd9,0xff, +0xc2,0xff,0xb4,0xff,0xf8,0xff,0x20,0x0,0xfa,0xff,0xfc,0xff, +0xf5,0xff,0xfb,0xff,0x2b,0x0,0x2b,0x0,0x1b,0x0,0xfc,0xff, +0xa,0x0,0x5d,0x0,0x74,0x0,0x75,0x0,0x63,0x0,0x48,0x0, +0x60,0x0,0x57,0x0,0x5c,0x0,0x79,0x0,0x6d,0x0,0x9e,0x0, +0xcc,0x0,0xa4,0x0,0x96,0x0,0xa1,0x0,0xab,0x0,0xac,0x0, +0xa0,0x0,0xc0,0x0,0xda,0x0,0xec,0x0,0x1,0x1,0xf1,0x0, +0xeb,0x0,0xe7,0x0,0xec,0x0,0xb,0x1,0x23,0x1,0x24,0x1, +0xf3,0x0,0xe5,0x0,0x8,0x1,0x12,0x1,0x23,0x1,0x2c,0x1, +0x26,0x1,0x18,0x1,0xd,0x1,0x19,0x1,0x4,0x1,0xf,0x1, +0x31,0x1,0x9,0x1,0xf1,0x0,0xfd,0x0,0xe7,0x0,0xd8,0x0, +0xee,0x0,0xe,0x1,0x20,0x1,0x4,0x1,0xe2,0x0,0xe4,0x0, +0xec,0x0,0x1b,0x1,0x3e,0x1,0x1e,0x1,0x15,0x1,0x1,0x1, +0xdc,0x0,0xe5,0x0,0xc3,0x0,0x93,0x0,0xad,0x0,0xc8,0x0, +0xcb,0x0,0xdc,0x0,0xeb,0x0,0xec,0x0,0xd6,0x0,0xbd,0x0, +0xca,0x0,0xc7,0x0,0xb0,0x0,0xcd,0x0,0xf6,0x0,0xee,0x0, +0xe3,0x0,0xdc,0x0,0xb8,0x0,0xac,0x0,0xb4,0x0,0xa7,0x0, +0xbe,0x0,0xe3,0x0,0xc3,0x0,0x86,0x0,0x89,0x0,0xa6,0x0, +0x88,0x0,0x71,0x0,0x99,0x0,0xb5,0x0,0xa4,0x0,0x81,0x0, +0x75,0x0,0x9c,0x0,0xca,0x0,0xcf,0x0,0xbc,0x0,0x94,0x0, +0x96,0x0,0xc5,0x0,0xc6,0x0,0xc8,0x0,0xce,0x0,0xbd,0x0, +0xdf,0x0,0x0,0x1,0xfe,0x0,0xfe,0x0,0x4,0x1,0x0,0x1, +0xfb,0x0,0x19,0x1,0x2e,0x1,0x24,0x1,0xf,0x1,0x4,0x1, +0x1b,0x1,0x23,0x1,0x2b,0x1,0x42,0x1,0x49,0x1,0x3b,0x1, +0x21,0x1,0x14,0x1,0x6,0x1,0x24,0x1,0x4a,0x1,0x35,0x1, +0x3d,0x1,0x52,0x1,0x5c,0x1,0x5d,0x1,0x58,0x1,0x62,0x1, +0x58,0x1,0x66,0x1,0x6f,0x1,0x65,0x1,0x7d,0x1,0x6d,0x1, +0x48,0x1,0x37,0x1,0x3e,0x1,0x5a,0x1,0x4a,0x1,0x3c,0x1, +0x4b,0x1,0x50,0x1,0x4b,0x1,0x44,0x1,0x38,0x1,0x20,0x1, +0x19,0x1,0x29,0x1,0x33,0x1,0x0,0x1,0xc9,0x0,0xe1,0x0, +0xdf,0x0,0xca,0x0,0xc0,0x0,0x8d,0x0,0x87,0x0,0xb0,0x0, +0xaa,0x0,0x8f,0x0,0x87,0x0,0x89,0x0,0x98,0x0,0xb8,0x0, +0xb8,0x0,0x9d,0x0,0x8d,0x0,0x88,0x0,0x9c,0x0,0xb2,0x0, +0x9c,0x0,0x9a,0x0,0xad,0x0,0x81,0x0,0x62,0x0,0x6a,0x0, +0x6c,0x0,0x8b,0x0,0x89,0x0,0x6f,0x0,0x72,0x0,0x78,0x0, +0x92,0x0,0x8b,0x0,0x76,0x0,0x88,0x0,0x97,0x0,0xa3,0x0, +0xa0,0x0,0x8a,0x0,0x93,0x0,0xab,0x0,0x87,0x0,0x60,0x0, +0x66,0x0,0x52,0x0,0x59,0x0,0x7b,0x0,0x8b,0x0,0x9e,0x0, +0xa2,0x0,0xc6,0x0,0xd9,0x0,0xc4,0x0,0xd6,0x0,0xd5,0x0, +0xbb,0x0,0x9c,0x0,0x99,0x0,0xc4,0x0,0xd3,0x0,0xe5,0x0, +0xe5,0x0,0xbb,0x0,0xaf,0x0,0xc9,0x0,0xf5,0x0,0x0,0x1, +0xec,0x0,0xe6,0x0,0xe7,0x0,0xef,0x0,0xf9,0x0,0x8,0x1, +0x13,0x1,0x7,0x1,0xf5,0x0,0xf1,0x0,0xf7,0x0,0xe8,0x0, +0xb8,0x0,0xaf,0x0,0xdb,0x0,0xd5,0x0,0xbd,0x0,0xcf,0x0, +0xd2,0x0,0xc0,0x0,0xa0,0x0,0x9f,0x0,0xc7,0x0,0xc4,0x0, +0xbf,0x0,0xd5,0x0,0xe4,0x0,0xe0,0x0,0xd0,0x0,0xdb,0x0, +0xd9,0x0,0xbd,0x0,0xad,0x0,0xa9,0x0,0xc2,0x0,0xc3,0x0, +0x86,0x0,0x56,0x0,0x66,0x0,0x75,0x0,0x5f,0x0,0x6f,0x0, +0x87,0x0,0x61,0x0,0x48,0x0,0x4d,0x0,0x25,0x0,0x3,0x0, +0x8,0x0,0x13,0x0,0x1d,0x0,0x1,0x0,0xfb,0xff,0x15,0x0, +0xf1,0xff,0xdc,0xff,0xd7,0xff,0xdb,0xff,0xed,0xff,0xc8,0xff, +0xdd,0xff,0xf5,0xff,0xd4,0xff,0xeb,0xff,0xd0,0xff,0xa4,0xff, +0xb3,0xff,0xb2,0xff,0xb4,0xff,0xb2,0xff,0xad,0xff,0xa4,0xff, +0xa2,0xff,0xb8,0xff,0xbb,0xff,0xca,0xff,0xc9,0xff,0xb0,0xff, +0xb7,0xff,0xac,0xff,0x9a,0xff,0x9a,0xff,0x9f,0xff,0xad,0xff, +0xbb,0xff,0xc5,0xff,0xca,0xff,0xc9,0xff,0xbd,0xff,0xd5,0xff, +0x13,0x0,0x12,0x0,0xcf,0xff,0xaf,0xff,0xe1,0xff,0xf3,0xff, +0xcf,0xff,0xf6,0xff,0x28,0x0,0x25,0x0,0x4,0x0,0xd4,0xff, +0xe2,0xff,0x18,0x0,0x29,0x0,0x32,0x0,0x51,0x0,0x4a,0x0, +0x19,0x0,0x2,0x0,0xfe,0xff,0x1,0x0,0xf9,0xff,0x2,0x0, +0x36,0x0,0x32,0x0,0x27,0x0,0x47,0x0,0x41,0x0,0x1b,0x0, +0xfd,0xff,0x9,0x0,0xc,0x0,0xef,0xff,0x4,0x0,0x8,0x0, +0xdc,0xff,0xd5,0xff,0xe3,0xff,0xe5,0xff,0xe1,0xff,0xe9,0xff, +0x6,0x0,0xff,0xff,0xd0,0xff,0xbc,0xff,0xb7,0xff,0xb7,0xff, +0xaf,0xff,0x9e,0xff,0xb2,0xff,0xb0,0xff,0x8e,0xff,0x8b,0xff, +0x84,0xff,0x6d,0xff,0x56,0xff,0x77,0xff,0xab,0xff,0x95,0xff, +0x87,0xff,0x79,0xff,0x61,0xff,0x63,0xff,0x44,0xff,0x26,0xff, +0x7,0xff,0xeb,0xfe,0x14,0xff,0x4f,0xff,0x6e,0xff,0x73,0xff, +0x69,0xff,0x5a,0xff,0x42,0xff,0x23,0xff,0x5,0xff,0x8,0xff, +0x26,0xff,0x29,0xff,0xd,0xff,0x3,0xff,0xa,0xff,0xfa,0xfe, +0xe6,0xfe,0xee,0xfe,0x11,0xff,0xe,0xff,0xd6,0xfe,0xc6,0xfe, +0xd6,0xfe,0xeb,0xfe,0x15,0xff,0x22,0xff,0xc,0xff,0x0,0xff, +0xe,0xff,0x1e,0xff,0x1b,0xff,0xb,0xff,0xee,0xfe,0xec,0xfe, +0x20,0xff,0x40,0xff,0x13,0xff,0xf2,0xfe,0x4,0xff,0x13,0xff, +0x24,0xff,0x18,0xff,0x18,0xff,0x46,0xff,0x39,0xff,0x15,0xff, +0x15,0xff,0x28,0xff,0x47,0xff,0x50,0xff,0x5c,0xff,0x6e,0xff, +0x6e,0xff,0x60,0xff,0x58,0xff,0x70,0xff,0x6d,0xff,0x60,0xff, +0x67,0xff,0x4f,0xff,0x3e,0xff,0x4f,0xff,0x4e,0xff,0x39,0xff, +0x3b,0xff,0x4d,0xff,0x4d,0xff,0x47,0xff,0x45,0xff,0x49,0xff, +0x43,0xff,0x3f,0xff,0x36,0xff,0x8,0xff,0xb,0xff,0x34,0xff, +0x30,0xff,0x39,0xff,0x6b,0xff,0x7b,0xff,0x47,0xff,0x1c,0xff, +0x28,0xff,0x52,0xff,0x69,0xff,0x3f,0xff,0x21,0xff,0x38,0xff, +0x3d,0xff,0x2a,0xff,0x17,0xff,0x11,0xff,0x16,0xff,0x12,0xff, +0xed,0xfe,0xb8,0xfe,0xb3,0xfe,0xb8,0xfe,0xad,0xfe,0xac,0xfe, +0x8c,0xfe,0x77,0xfe,0x8a,0xfe,0x7f,0xfe,0x73,0xfe,0xaa,0xfe, +0xed,0xfe,0xfb,0xfe,0xcb,0xfe,0xa1,0xfe,0xad,0xfe,0xa6,0xfe, +0x7c,0xfe,0x63,0xfe,0x7e,0xfe,0x9e,0xfe,0x8a,0xfe,0x97,0xfe, +0xae,0xfe,0x87,0xfe,0x78,0xfe,0xa2,0xfe,0xbe,0xfe,0xb4,0xfe, +0xa2,0xfe,0x8a,0xfe,0xa5,0xfe,0xde,0xfe,0xb7,0xfe,0x90,0xfe, +0x96,0xfe,0x99,0xfe,0xb1,0xfe,0x96,0xfe,0x99,0xfe,0xd8,0xfe, +0xce,0xfe,0xbe,0xfe,0xb5,0xfe,0x8e,0xfe,0x8c,0xfe,0xb1,0xfe, +0xbe,0xfe,0x90,0xfe,0x7b,0xfe,0xa4,0xfe,0xa0,0xfe,0x94,0xfe, +0xca,0xfe,0xdb,0xfe,0xcb,0xfe,0xd9,0xfe,0xf2,0xfe,0xf2,0xfe, +0xba,0xfe,0xbb,0xfe,0xd6,0xfe,0xbe,0xfe,0xcf,0xfe,0xbb,0xfe, +0x98,0xfe,0xb5,0xfe,0xb4,0xfe,0xae,0xfe,0xa4,0xfe,0x94,0xfe, +0x95,0xfe,0x96,0xfe,0xad,0xfe,0xb9,0xfe,0xb6,0xfe,0xad,0xfe, +0xa0,0xfe,0xac,0xfe,0xd3,0xfe,0x2,0xff,0x9,0xff,0xf8,0xfe, +0xe2,0xfe,0xd6,0xfe,0xdd,0xfe,0xd9,0xfe,0xec,0xfe,0xd2,0xfe, +0xc3,0xfe,0xf6,0xfe,0xd4,0xfe,0xba,0xfe,0xc9,0xfe,0xd1,0xfe, +0x9,0xff,0x15,0xff,0xe,0xff,0xa,0xff,0xe8,0xfe,0xe0,0xfe, +0xb7,0xfe,0x8f,0xfe,0xa7,0xfe,0xa4,0xfe,0x8e,0xfe,0x9f,0xfe, +0xc0,0xfe,0xc3,0xfe,0x9d,0xfe,0x8b,0xfe,0x83,0xfe,0x5c,0xfe, +0x4d,0xfe,0x54,0xfe,0x58,0xfe,0x51,0xfe,0x31,0xfe,0x45,0xfe, +0x76,0xfe,0x86,0xfe,0x7d,0xfe,0x55,0xfe,0x43,0xfe,0x4d,0xfe, +0x48,0xfe,0x48,0xfe,0x50,0xfe,0x3e,0xfe,0x1e,0xfe,0x36,0xfe, +0x67,0xfe,0x76,0xfe,0x80,0xfe,0x7f,0xfe,0x6f,0xfe,0x6e,0xfe, +0x6e,0xfe,0x5d,0xfe,0x6b,0xfe,0x80,0xfe,0x85,0xfe,0xb1,0xfe, +0xbb,0xfe,0xa6,0xfe,0xb7,0xfe,0xb0,0xfe,0xa1,0xfe,0xb3,0xfe, +0xbe,0xfe,0x91,0xfe,0x6f,0xfe,0x92,0xfe,0x82,0xfe,0x6b,0xfe, +0xac,0xfe,0xc0,0xfe,0x89,0xfe,0x7c,0xfe,0xa2,0xfe,0xbe,0xfe, +0xdc,0xfe,0xef,0xfe,0xdd,0xfe,0xd2,0xfe,0xd1,0xfe,0xd4,0xfe, +0xdf,0xfe,0xf5,0xfe,0x18,0xff,0x39,0xff,0x4a,0xff,0x3a,0xff, +0x1a,0xff,0x22,0xff,0x3e,0xff,0x35,0xff,0x32,0xff,0x48,0xff, +0x33,0xff,0x20,0xff,0x27,0xff,0x18,0xff,0x18,0xff,0x1d,0xff, +0xb,0xff,0xfd,0xfe,0xf4,0xfe,0xfc,0xfe,0xfc,0xfe,0xcf,0xfe, +0xd1,0xfe,0xe,0xff,0xe,0xff,0xfc,0xfe,0x4,0xff,0xf2,0xfe, +0xea,0xfe,0xdd,0xfe,0xe5,0xfe,0x3,0xff,0xe1,0xfe,0xc8,0xfe, +0xc8,0xfe,0xc0,0xfe,0xc4,0xfe,0xba,0xfe,0xc4,0xfe,0xd3,0xfe, +0xcb,0xfe,0xb8,0xfe,0x8e,0xfe,0x85,0xfe,0x7f,0xfe,0x69,0xfe, +0x82,0xfe,0x8d,0xfe,0x96,0xfe,0xaa,0xfe,0x80,0xfe,0x63,0xfe, +0x8f,0xfe,0xaa,0xfe,0x84,0xfe,0x6f,0xfe,0x94,0xfe,0xa1,0xfe, +0xa2,0xfe,0xab,0xfe,0x94,0xfe,0xa1,0xfe,0xd2,0xfe,0xd8,0xfe, +0xf6,0xfe,0x28,0xff,0x1f,0xff,0x20,0xff,0x1d,0xff,0xf5,0xfe, +0xfb,0xfe,0x6,0xff,0x12,0xff,0x29,0xff,0xb,0xff,0x0,0xff, +0x1b,0xff,0x32,0xff,0x47,0xff,0x6d,0xff,0x9d,0xff,0x89,0xff, +0x5a,0xff,0x55,0xff,0x58,0xff,0x56,0xff,0x48,0xff,0x51,0xff, +0x66,0xff,0x79,0xff,0x7a,0xff,0x61,0xff,0x76,0xff,0x7a,0xff, +0x63,0xff,0x6c,0xff,0x6a,0xff,0x6f,0xff,0x73,0xff,0x7f,0xff, +0x87,0xff,0x5e,0xff,0x6c,0xff,0xa1,0xff,0x9e,0xff,0x94,0xff, +0x9d,0xff,0x9c,0xff,0xa5,0xff,0xa0,0xff,0x7c,0xff,0x8d,0xff, +0xa2,0xff,0x89,0xff,0x96,0xff,0x93,0xff,0x76,0xff,0x72,0xff, +0x58,0xff,0x51,0xff,0x92,0xff,0xa4,0xff,0x68,0xff,0x58,0xff, +0x5c,0xff,0x33,0xff,0x18,0xff,0x35,0xff,0x68,0xff,0x6a,0xff, +0x56,0xff,0x4f,0xff,0x3a,0xff,0x4a,0xff,0x72,0xff,0x6c,0xff, +0x61,0xff,0x6d,0xff,0x58,0xff,0x1e,0xff,0x26,0xff,0x66,0xff, +0x63,0xff,0x39,0xff,0x4e,0xff,0x5c,0xff,0x3e,0xff,0x2a,0xff, +0x1f,0xff,0x46,0xff,0x59,0xff,0x1f,0xff,0xf3,0xfe,0xd9,0xfe, +0xff,0xfe,0x49,0xff,0x34,0xff,0xf4,0xfe,0xdc,0xfe,0xe8,0xfe, +0xf1,0xfe,0x8,0xff,0x5,0xff,0xde,0xfe,0xfe,0xfe,0x29,0xff, +0x29,0xff,0x25,0xff,0x2d,0xff,0x59,0xff,0x61,0xff,0x42,0xff, +0x4d,0xff,0x79,0xff,0x99,0xff,0xa2,0xff,0xa3,0xff,0xa0,0xff, +0x8e,0xff,0x7c,0xff,0x96,0xff,0xb6,0xff,0xc9,0xff,0xf6,0xff, +0xee,0xff,0xd0,0xff,0xcc,0xff,0xcc,0xff,0xe4,0xff,0xcd,0xff, +0xbf,0xff,0xf2,0xff,0x1,0x0,0xfb,0xff,0x9,0x0,0x17,0x0, +0x3,0x0,0xed,0xff,0xf8,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0, +0x11,0x0,0x29,0x0,0x1e,0x0,0xfe,0xff,0xf1,0xff,0x16,0x0, +0x21,0x0,0x10,0x0,0x23,0x0,0x1d,0x0,0xfa,0xff,0xfb,0xff, +0x38,0x0,0x70,0x0,0x6e,0x0,0x5e,0x0,0x39,0x0,0x13,0x0, +0x18,0x0,0x16,0x0,0xff,0xff,0xf6,0xff,0x3,0x0,0x20,0x0, +0x2a,0x0,0x11,0x0,0x1f,0x0,0x2d,0x0,0x7,0x0,0xc,0x0, +0xf,0x0,0xe5,0xff,0xf5,0xff,0xf,0x0,0xef,0xff,0xdb,0xff, +0xe1,0xff,0xff,0xff,0x1f,0x0,0xf4,0xff,0xe9,0xff,0x13,0x0, +0xfe,0xff,0xa,0x0,0x2a,0x0,0x20,0x0,0x1a,0x0,0xfd,0xff, +0xf2,0xff,0xe7,0xff,0xd2,0xff,0xf2,0xff,0xf6,0xff,0xf6,0xff, +0x15,0x0,0x19,0x0,0x2c,0x0,0x36,0x0,0x1b,0x0,0x10,0x0, +0x2,0x0,0xf9,0xff,0xf,0x0,0x1b,0x0,0xb,0x0,0xf9,0xff, +0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0x5,0x0,0x20,0x0, +0x20,0x0,0x22,0x0,0x34,0x0,0x36,0x0,0x31,0x0,0x25,0x0, +0x33,0x0,0x5d,0x0,0x6a,0x0,0x77,0x0,0x6b,0x0,0x5a,0x0, +0x78,0x0,0x89,0x0,0x86,0x0,0x82,0x0,0xa6,0x0,0xb6,0x0, +0x76,0x0,0x81,0x0,0xa9,0x0,0x93,0x0,0x97,0x0,0x99,0x0, +0x8a,0x0,0x85,0x0,0x85,0x0,0x8c,0x0,0x9a,0x0,0xae,0x0, +0x98,0x0,0x86,0x0,0x9b,0x0,0x9a,0x0,0x9a,0x0,0xae,0x0, +0xd1,0x0,0xe8,0x0,0xc8,0x0,0xc2,0x0,0xd7,0x0,0xcb,0x0, +0xd9,0x0,0xf4,0x0,0xd8,0x0,0xd3,0x0,0xf2,0x0,0xe1,0x0, +0xdd,0x0,0xe8,0x0,0xbd,0x0,0xc1,0x0,0xe5,0x0,0xe7,0x0, +0xd1,0x0,0xa2,0x0,0xbc,0x0,0xd7,0x0,0xaa,0x0,0xc0,0x0, +0xb2,0x0,0x67,0x0,0x78,0x0,0x76,0x0,0x2e,0x0,0x11,0x0, +0xe,0x0,0x4,0x0,0x20,0x0,0x3b,0x0,0x2c,0x0,0x23,0x0, +0x1f,0x0,0xf,0x0,0xea,0xff,0xda,0xff,0xef,0xff,0xe2,0xff, +0xc8,0xff,0xbd,0xff,0xc6,0xff,0xd2,0xff,0xb9,0xff,0xb7,0xff, +0xd6,0xff,0xda,0xff,0xcb,0xff,0xc1,0xff,0xb9,0xff,0xa2,0xff, +0xb3,0xff,0xd6,0xff,0xed,0xff,0x17,0x0,0x22,0x0,0x19,0x0, +0x16,0x0,0xfa,0xff,0x10,0x0,0x39,0x0,0x20,0x0,0x11,0x0, +0x2e,0x0,0x48,0x0,0x4e,0x0,0x3c,0x0,0x4e,0x0,0x81,0x0, +0x8d,0x0,0x7f,0x0,0x78,0x0,0x96,0x0,0xaa,0x0,0x89,0x0, +0x81,0x0,0x82,0x0,0x6b,0x0,0x64,0x0,0x72,0x0,0x85,0x0, +0x88,0x0,0x8e,0x0,0x8c,0x0,0x6b,0x0,0x73,0x0,0xa2,0x0, +0xad,0x0,0xa5,0x0,0xb5,0x0,0xc3,0x0,0xcb,0x0,0xc6,0x0, +0xa6,0x0,0x90,0x0,0x88,0x0,0x90,0x0,0x95,0x0,0x8d,0x0, +0x91,0x0,0x85,0x0,0x7b,0x0,0x7c,0x0,0x62,0x0,0x48,0x0, +0x42,0x0,0x54,0x0,0x6e,0x0,0x75,0x0,0x70,0x0,0x75,0x0, +0x80,0x0,0x7e,0x0,0x73,0x0,0x64,0x0,0x5c,0x0,0x5b,0x0, +0x77,0x0,0xa0,0x0,0x93,0x0,0x80,0x0,0x73,0x0,0x6d,0x0, +0x86,0x0,0x85,0x0,0x81,0x0,0x6b,0x0,0x38,0x0,0x2d,0x0, +0x2f,0x0,0x3d,0x0,0x4e,0x0,0x52,0x0,0x55,0x0,0x39,0x0, +0x12,0x0,0x24,0x0,0x43,0x0,0x11,0x0,0xf4,0xff,0x1a,0x0, +0x1c,0x0,0x2a,0x0,0x35,0x0,0x16,0x0,0xd,0x0,0x9,0x0, +0xe6,0xff,0xbf,0xff,0xbe,0xff,0xc7,0xff,0xc5,0xff,0xdc,0xff, +0xf1,0xff,0xd8,0xff,0xbd,0xff,0xc8,0xff,0xc1,0xff,0xa9,0xff, +0x8e,0xff,0x66,0xff,0x8b,0xff,0xbe,0xff,0xa8,0xff,0x9d,0xff, +0xa1,0xff,0x9e,0xff,0xb0,0xff,0xbe,0xff,0x9f,0xff,0x89,0xff, +0x82,0xff,0x80,0xff,0xbd,0xff,0xde,0xff,0xbd,0xff,0xc7,0xff, +0xef,0xff,0x8,0x0,0xf,0x0,0x23,0x0,0x39,0x0,0x2b,0x0, +0x1f,0x0,0x27,0x0,0x46,0x0,0x56,0x0,0x43,0x0,0x41,0x0, +0x4d,0x0,0x63,0x0,0x5c,0x0,0x3a,0x0,0x44,0x0,0x3f,0x0, +0x16,0x0,0x1d,0x0,0x37,0x0,0x24,0x0,0xf9,0xff,0xf7,0xff, +0x19,0x0,0x17,0x0,0x12,0x0,0x24,0x0,0x23,0x0,0x33,0x0, +0x40,0x0,0x46,0x0,0x62,0x0,0x53,0x0,0x39,0x0,0x2f,0x0, +0x11,0x0,0x1,0x0,0xe,0x0,0x28,0x0,0x2e,0x0,0x2d,0x0, +0x35,0x0,0x39,0x0,0x35,0x0,0xf,0x0,0xdf,0xff,0xc4,0xff, +0xd1,0xff,0xf3,0xff,0xf7,0xff,0xe8,0xff,0xbd,0xff,0x95,0xff, +0x85,0xff,0x64,0xff,0x59,0xff,0x66,0xff,0x6f,0xff,0x7d,0xff, +0x73,0xff,0x51,0xff,0x44,0xff,0x61,0xff,0x81,0xff,0x79,0xff, +0x56,0xff,0x39,0xff,0x35,0xff,0x3c,0xff,0xb,0xff,0xcd,0xfe, +0x17,0xff,0x6e,0xff,0x4c,0xff,0x3b,0xff,0x38,0xff,0x2c,0xff, +0x26,0xff,0x1d,0xff,0x2f,0xff,0x28,0xff,0x43,0xff,0x70,0xff, +0x37,0xff,0x1f,0xff,0x3e,0xff,0x3c,0xff,0x39,0xff,0x36,0xff, +0x31,0xff,0x29,0xff,0x43,0xff,0x6f,0xff,0x6a,0xff,0x7b,0xff, +0x92,0xff,0x8c,0xff,0x95,0xff,0x8c,0xff,0x85,0xff,0x7d,0xff, +0x66,0xff,0x6a,0xff,0x74,0xff,0x77,0xff,0x70,0xff,0x69,0xff, +0x79,0xff,0x9a,0xff,0xcb,0xff,0xe0,0xff,0xf1,0xff,0xf,0x0, +0xf7,0xff,0xd3,0xff,0xc0,0xff,0xc0,0xff,0xde,0xff,0xe5,0xff, +0xea,0xff,0xed,0xff,0xd1,0xff,0xd8,0xff,0x0,0x0,0xb,0x0, +0xec,0xff,0xa5,0xff,0x78,0xff,0x89,0xff,0x82,0xff,0x72,0xff, +0x90,0xff,0xa7,0xff,0xc0,0xff,0xda,0xff,0xd1,0xff,0xb6,0xff, +0xa8,0xff,0xc8,0xff,0xd0,0xff,0xa6,0xff,0x9a,0xff,0x99,0xff, +0xa9,0xff,0xc4,0xff,0xb8,0xff,0xb1,0xff,0xbd,0xff,0xae,0xff, +0x8b,0xff,0x8a,0xff,0xad,0xff,0x97,0xff,0x6b,0xff,0x7a,0xff, +0x89,0xff,0x8a,0xff,0x85,0xff,0x72,0xff,0x79,0xff,0x7a,0xff, +0x5f,0xff,0x38,0xff,0x24,0xff,0x2c,0xff,0x17,0xff,0xb,0xff, +0x16,0xff,0xf8,0xfe,0xed,0xfe,0xe,0xff,0x21,0xff,0x2,0xff, +0xe1,0xfe,0xeb,0xfe,0xe4,0xfe,0xd7,0xfe,0xdf,0xfe,0xe6,0xfe, +0x7,0xff,0x5,0xff,0xf1,0xfe,0x13,0xff,0x7,0xff,0xf0,0xfe, +0x1a,0xff,0x1d,0xff,0x19,0xff,0x3c,0xff,0x3b,0xff,0x1c,0xff, +0x1d,0xff,0x50,0xff,0x67,0xff,0x5a,0xff,0x5f,0xff,0x3b,0xff, +0x32,0xff,0x63,0xff,0x52,0xff,0x3b,0xff,0x67,0xff,0x7d,0xff, +0x67,0xff,0x74,0xff,0x81,0xff,0x6d,0xff,0x7a,0xff,0x9b,0xff, +0xa6,0xff,0x8c,0xff,0x88,0xff,0xb2,0xff,0xd1,0xff,0xf2,0xff, +0xe8,0xff,0xbf,0xff,0xab,0xff,0xae,0xff,0xdd,0xff,0xd9,0xff, +0xc4,0xff,0xdf,0xff,0xe6,0xff,0xf9,0xff,0xfc,0xff,0xf0,0xff, +0x7,0x0,0x8,0x0,0x3,0x0,0x1b,0x0,0x2b,0x0,0xd,0x0, +0xed,0xff,0xfa,0xff,0x17,0x0,0x18,0x0,0xf4,0xff,0xe2,0xff, +0xe2,0xff,0xeb,0xff,0xf7,0xff,0xe9,0xff,0xef,0xff,0xdd,0xff, +0xc9,0xff,0xf9,0xff,0xfe,0xff,0xce,0xff,0xb6,0xff,0xb4,0xff, +0x9a,0xff,0x94,0xff,0xc3,0xff,0xc4,0xff,0xa4,0xff,0x99,0xff, +0x93,0xff,0x90,0xff,0x92,0xff,0xab,0xff,0xac,0xff,0x8d,0xff, +0x81,0xff,0x94,0xff,0xac,0xff,0x8d,0xff,0x71,0xff,0x6a,0xff, +0x55,0xff,0x65,0xff,0x67,0xff,0x3d,0xff,0x3d,0xff,0x66,0xff, +0x74,0xff,0x57,0xff,0x47,0xff,0x58,0xff,0x66,0xff,0x4c,0xff, +0x16,0xff,0xfd,0xfe,0x8,0xff,0x25,0xff,0x47,0xff,0x4b,0xff, +0x47,0xff,0x48,0xff,0x34,0xff,0x35,0xff,0x39,0xff,0x25,0xff, +0x4e,0xff,0x8f,0xff,0xb1,0xff,0xcf,0xff,0xcf,0xff,0xc2,0xff, +0xc4,0xff,0xcd,0xff,0xe1,0xff,0xe1,0xff,0xd0,0xff,0xc3,0xff, +0x92,0xff,0x87,0xff,0xda,0xff,0xe7,0xff,0xa8,0xff,0xa6,0xff, +0xc7,0xff,0xd4,0xff,0xde,0xff,0x4,0x0,0xb,0x0,0xd9,0xff, +0xbb,0xff,0xb0,0xff,0xbf,0xff,0xda,0xff,0xea,0xff,0xfd,0xff, +0x5,0x0,0x1d,0x0,0x22,0x0,0x5,0x0,0x2,0x0,0xc,0x0, +0x10,0x0,0xe,0x0,0x47,0x0,0x6b,0x0,0x2e,0x0,0x22,0x0, +0x2b,0x0,0x2b,0x0,0x43,0x0,0x41,0x0,0x40,0x0,0x32,0x0, +0x2c,0x0,0x4d,0x0,0x57,0x0,0x47,0x0,0x1d,0x0,0x6,0x0, +0x22,0x0,0x22,0x0,0xf2,0xff,0xcf,0xff,0xd0,0xff,0xe2,0xff, +0xf7,0xff,0xf7,0xff,0xe8,0xff,0xf2,0xff,0xf0,0xff,0xe5,0xff, +0xf1,0xff,0xf3,0xff,0xe9,0xff,0xd8,0xff,0xb9,0xff,0xc0,0xff, +0xe5,0xff,0xfb,0xff,0xe,0x0,0xc,0x0,0xe0,0xff,0xaa,0xff, +0x90,0xff,0xa3,0xff,0xaf,0xff,0xa9,0xff,0xbb,0xff,0xbf,0xff, +0x94,0xff,0x75,0xff,0x8c,0xff,0xa4,0xff,0x9c,0xff,0x8c,0xff, +0x67,0xff,0x6b,0xff,0xb3,0xff,0xcb,0xff,0xb6,0xff,0x97,0xff, +0x71,0xff,0x8e,0xff,0xc8,0xff,0xd3,0xff,0xd1,0xff,0xe5,0xff, +0xf4,0xff,0xdd,0xff,0xd9,0xff,0xf7,0xff,0x10,0x0,0x20,0x0, +0xf9,0xff,0xdf,0xff,0xfa,0xff,0xf1,0xff,0x4,0x0,0x3b,0x0, +0x4f,0x0,0x60,0x0,0x60,0x0,0x4e,0x0,0x46,0x0,0x45,0x0, +0x40,0x0,0x1b,0x0,0x1,0x0,0xe,0x0,0x23,0x0,0x4c,0x0, +0x4d,0x0,0x21,0x0,0x31,0x0,0x41,0x0,0x2a,0x0,0x4d,0x0, +0x59,0x0,0x1e,0x0,0x11,0x0,0x25,0x0,0x30,0x0,0x51,0x0, +0x62,0x0,0x3f,0x0,0x31,0x0,0x41,0x0,0x40,0x0,0x4b,0x0, +0x61,0x0,0x80,0x0,0x8c,0x0,0x6b,0x0,0x6e,0x0,0x8c,0x0, +0x9e,0x0,0xae,0x0,0xaa,0x0,0xa1,0x0,0x86,0x0,0x7a,0x0, +0x96,0x0,0x9d,0x0,0xa9,0x0,0xae,0x0,0x96,0x0,0x93,0x0, +0x96,0x0,0x9c,0x0,0x98,0x0,0x8c,0x0,0x8d,0x0,0x96,0x0, +0xa6,0x0,0x98,0x0,0x93,0x0,0xa5,0x0,0x93,0x0,0x86,0x0, +0x8f,0x0,0xa5,0x0,0xb7,0x0,0xb5,0x0,0xc6,0x0,0xb7,0x0, +0x9f,0x0,0x9c,0x0,0x80,0x0,0x8f,0x0,0x9f,0x0,0x81,0x0, +0x81,0x0,0xa4,0x0,0xbe,0x0,0xab,0x0,0xb5,0x0,0xb8,0x0, +0x71,0x0,0x55,0x0,0x56,0x0,0x4e,0x0,0x64,0x0,0x7b,0x0, +0x75,0x0,0x5f,0x0,0x74,0x0,0x86,0x0,0x89,0x0,0xa0,0x0, +0x89,0x0,0x77,0x0,0x91,0x0,0x95,0x0,0x84,0x0,0x8b,0x0, +0xa1,0x0,0x9a,0x0,0xa5,0x0,0xbe,0x0,0xb6,0x0,0xaa,0x0, +0xcb,0x0,0x7,0x1,0xe6,0x0,0xba,0x0,0xd8,0x0,0xc8,0x0, +0xba,0x0,0xd7,0x0,0xf1,0x0,0x4,0x1,0x9,0x1,0x1e,0x1, +0x17,0x1,0xf2,0x0,0xf3,0x0,0x5,0x1,0x16,0x1,0x23,0x1, +0x36,0x1,0x56,0x1,0x57,0x1,0x31,0x1,0x17,0x1,0x6,0x1, +0xe,0x1,0x47,0x1,0x59,0x1,0x53,0x1,0x5c,0x1,0x5d,0x1, +0x7c,0x1,0x80,0x1,0x5e,0x1,0x4b,0x1,0x4b,0x1,0x73,0x1, +0x74,0x1,0x65,0x1,0x82,0x1,0x7e,0x1,0x6d,0x1,0x5d,0x1, +0x5c,0x1,0x6c,0x1,0x55,0x1,0x49,0x1,0x53,0x1,0x51,0x1, +0x3f,0x1,0x35,0x1,0x44,0x1,0x45,0x1,0x3e,0x1,0x27,0x1, +0x15,0x1,0x3f,0x1,0x50,0x1,0x38,0x1,0x39,0x1,0x47,0x1, +0x55,0x1,0x57,0x1,0x4b,0x1,0x1f,0x1,0xe7,0x0,0xe4,0x0, +0xf2,0x0,0x4,0x1,0x24,0x1,0x24,0x1,0x21,0x1,0x2c,0x1, +0x36,0x1,0x49,0x1,0x30,0x1,0xff,0x0,0x2,0x1,0x1,0x1, +0xf2,0x0,0xa,0x1,0x19,0x1,0x8,0x1,0xe3,0x0,0xc4,0x0, +0xe8,0x0,0x1e,0x1,0x10,0x1,0xe5,0x0,0xdb,0x0,0xe7,0x0, +0xf7,0x0,0x5,0x1,0xfc,0x0,0xf9,0x0,0xf4,0x0,0xd6,0x0, +0xd7,0x0,0xe3,0x0,0xe8,0x0,0xff,0x0,0xd,0x1,0x1a,0x1, +0x1f,0x1,0x1d,0x1,0xc,0x1,0xf8,0x0,0x15,0x1,0x26,0x1, +0x1c,0x1,0x1a,0x1,0x2b,0x1,0x4d,0x1,0x4d,0x1,0x55,0x1, +0x6a,0x1,0x4b,0x1,0x30,0x1,0x41,0x1,0x50,0x1,0x45,0x1, +0x4e,0x1,0x63,0x1,0x51,0x1,0x4f,0x1,0x64,0x1,0x73,0x1, +0x72,0x1,0x5f,0x1,0x6b,0x1,0x7a,0x1,0x6b,0x1,0x6c,0x1, +0x8c,0x1,0x9c,0x1,0x80,0x1,0x6d,0x1,0x72,0x1,0x71,0x1, +0x56,0x1,0x5e,0x1,0x98,0x1,0xa2,0x1,0x95,0x1,0x73,0x1, +0x3f,0x1,0x50,0x1,0x6e,0x1,0x86,0x1,0x84,0x1,0x58,0x1, +0x4a,0x1,0x26,0x1,0x11,0x1,0x2a,0x1,0x19,0x1,0x19,0x1, +0x24,0x1,0xd,0x1,0x2,0x1,0x4,0x1,0x17,0x1,0x24,0x1, +0xd,0x1,0xee,0x0,0xdd,0x0,0xd2,0x0,0xc9,0x0,0xd5,0x0, +0xd0,0x0,0xb3,0x0,0xb5,0x0,0xde,0x0,0xe,0x1,0xef,0x0, +0xa2,0x0,0xad,0x0,0xc8,0x0,0xb6,0x0,0xb5,0x0,0xc1,0x0, +0xcf,0x0,0xd6,0x0,0xe3,0x0,0xee,0x0,0xd9,0x0,0xd4,0x0, +0xe1,0x0,0xe9,0x0,0x8,0x1,0xff,0x0,0xd3,0x0,0xb7,0x0, +0x9e,0x0,0xcf,0x0,0x26,0x1,0x18,0x1,0xfc,0x0,0x4,0x1, +0xe3,0x0,0xc5,0x0,0xb5,0x0,0x9a,0x0,0xad,0x0,0xc7,0x0, +0xbe,0x0,0xc6,0x0,0xe2,0x0,0xd,0x1,0x12,0x1,0xe4,0x0, +0xdf,0x0,0xef,0x0,0x1,0x1,0xd,0x1,0xfa,0x0,0xe,0x1, +0x28,0x1,0xf,0x1,0x6,0x1,0x18,0x1,0x36,0x1,0x4d,0x1, +0x4e,0x1,0x35,0x1,0xd,0x1,0x7,0x1,0x1a,0x1,0x32,0x1, +0x44,0x1,0x43,0x1,0x4a,0x1,0x3b,0x1,0x1c,0x1,0x32,0x1, +0x40,0x1,0x24,0x1,0x29,0x1,0x38,0x1,0x22,0x1,0x12,0x1, +0x2,0x1,0xe8,0x0,0xe4,0x0,0xcf,0x0,0xbb,0x0,0xdb,0x0, +0xf8,0x0,0xe9,0x0,0xcf,0x0,0xd9,0x0,0xed,0x0,0xdb,0x0, +0xc4,0x0,0x98,0x0,0x68,0x0,0x86,0x0,0xba,0x0,0xc0,0x0, +0xbc,0x0,0xab,0x0,0x7e,0x0,0x61,0x0,0x6f,0x0,0x85,0x0, +0x98,0x0,0x98,0x0,0x7a,0x0,0x80,0x0,0x97,0x0,0x7b,0x0, +0x4d,0x0,0x34,0x0,0x3d,0x0,0x46,0x0,0x29,0x0,0x25,0x0, +0x3c,0x0,0x45,0x0,0x37,0x0,0x2b,0x0,0x3f,0x0,0x2e,0x0, +0x0,0x0,0x12,0x0,0x22,0x0,0x7,0x0,0x19,0x0,0x47,0x0, +0x3d,0x0,0x29,0x0,0x47,0x0,0x4b,0x0,0x2a,0x0,0x30,0x0, +0x47,0x0,0x39,0x0,0x1e,0x0,0x12,0x0,0xb,0x0,0xff,0xff, +0xd6,0xff,0xd5,0xff,0x21,0x0,0x23,0x0,0xf1,0xff,0xe,0x0, +0x21,0x0,0xc,0x0,0x8,0x0,0x4,0x0,0x10,0x0,0x20,0x0, +0x12,0x0,0xd,0x0,0x1a,0x0,0x18,0x0,0x1f,0x0,0x34,0x0, +0x2c,0x0,0x2a,0x0,0x4b,0x0,0x47,0x0,0x27,0x0,0x30,0x0, +0x45,0x0,0x33,0x0,0x13,0x0,0x15,0x0,0x27,0x0,0x26,0x0, +0x2a,0x0,0x38,0x0,0x31,0x0,0x2d,0x0,0x24,0x0,0x0,0x0, +0xdf,0xff,0xdb,0xff,0xf5,0xff,0xf4,0xff,0xcb,0xff,0xca,0xff, +0xd5,0xff,0xc3,0xff,0xa0,0xff,0x7c,0xff,0x7f,0xff,0x93,0xff, +0x8d,0xff,0x87,0xff,0x90,0xff,0xa8,0xff,0xb8,0xff,0x9e,0xff, +0x86,0xff,0x8f,0xff,0x79,0xff,0x69,0xff,0x8c,0xff,0x77,0xff, +0x4b,0xff,0x63,0xff,0x7a,0xff,0x72,0xff,0x53,0xff,0x3a,0xff, +0x3f,0xff,0x3c,0xff,0x48,0xff,0x5c,0xff,0x51,0xff,0x48,0xff, +0x3a,0xff,0x27,0xff,0x16,0xff,0xf2,0xfe,0xe0,0xfe,0xf5,0xfe, +0x9,0xff,0xe,0xff,0xfe,0xfe,0xe2,0xfe,0xe6,0xfe,0xef,0xfe, +0xc2,0xfe,0xb4,0xfe,0x6,0xff,0x3a,0xff,0x30,0xff,0x1e,0xff, +0xee,0xfe,0xdf,0xfe,0xec,0xfe,0xdb,0xfe,0xe3,0xfe,0xf8,0xfe, +0x3,0xff,0xa,0xff,0x2,0xff,0xfe,0xfe,0xef,0xfe,0x10,0xff, +0x4a,0xff,0x25,0xff,0x0,0xff,0x11,0xff,0x1c,0xff,0x34,0xff, +0x30,0xff,0xfe,0xfe,0xf3,0xfe,0x14,0xff,0x17,0xff,0x9,0xff, +0x1c,0xff,0x3d,0xff,0x69,0xff,0x72,0xff,0x54,0xff,0x56,0xff, +0x5a,0xff,0x4a,0xff,0x66,0xff,0x98,0xff,0x94,0xff,0x82,0xff, +0x86,0xff,0x77,0xff,0x68,0xff,0x6b,0xff,0x78,0xff,0x76,0xff, +0x6e,0xff,0x9d,0xff,0x9f,0xff,0x6e,0xff,0x92,0xff,0xb8,0xff, +0xac,0xff,0xae,0xff,0xc0,0xff,0xb3,0xff,0x82,0xff,0x6a,0xff, +0x59,0xff,0x59,0xff,0x76,0xff,0x70,0xff,0x77,0xff,0x70,0xff, +0x2f,0xff,0x13,0xff,0x1d,0xff,0x22,0xff,0x34,0xff,0x3f,0xff, +0x25,0xff,0x14,0xff,0x20,0xff,0x32,0xff,0x47,0xff,0x3d,0xff, +0x35,0xff,0x33,0xff,0x1f,0xff,0x20,0xff,0xb,0xff,0xea,0xfe, +0xf1,0xfe,0xf8,0xfe,0x2,0xff,0xf5,0xfe,0xf0,0xfe,0x7,0xff, +0xe1,0xfe,0xbe,0xfe,0xd7,0xfe,0xdc,0xfe,0xce,0xfe,0xce,0xfe, +0xcd,0xfe,0xc0,0xfe,0xa8,0xfe,0x93,0xfe,0x8e,0xfe,0x83,0xfe, +0x74,0xfe,0x78,0xfe,0x7e,0xfe,0x8d,0xfe,0x9f,0xfe,0x8b,0xfe, +0x70,0xfe,0x8e,0xfe,0xc1,0xfe,0xc9,0xfe,0xbf,0xfe,0xbf,0xfe, +0xc3,0xfe,0xd2,0xfe,0xcb,0xfe,0xbe,0xfe,0xba,0xfe,0xb8,0xfe, +0xd4,0xfe,0xfe,0xfe,0x1b,0xff,0x18,0xff,0xfd,0xfe,0xf3,0xfe, +0xf5,0xfe,0xf6,0xfe,0xee,0xfe,0xfc,0xfe,0x17,0xff,0x16,0xff, +0x8,0xff,0xf1,0xfe,0xf1,0xfe,0xa,0xff,0x6,0xff,0xef,0xfe, +0xea,0xfe,0xf3,0xfe,0xf2,0xfe,0xed,0xfe,0xde,0xfe,0xe2,0xfe, +0xb,0xff,0x7,0xff,0x8,0xff,0x13,0xff,0x6,0xff,0x28,0xff, +0x1e,0xff,0xf7,0xfe,0xfe,0xfe,0xdf,0xfe,0xd8,0xfe,0xea,0xfe, +0xfa,0xfe,0x2,0xff,0xdc,0xfe,0xe0,0xfe,0xec,0xfe,0xd3,0xfe, +0xce,0xfe,0xc8,0xfe,0xd2,0xfe,0xde,0xfe,0xe7,0xfe,0x0,0xff, +0x3,0xff,0xf2,0xfe,0xe0,0xfe,0xf0,0xfe,0xe6,0xfe,0xae,0xfe, +0xac,0xfe,0xac,0xfe,0x8d,0xfe,0x83,0xfe,0x76,0xfe,0x5f,0xfe, +0x4d,0xfe,0x5c,0xfe,0x7f,0xfe,0x97,0xfe,0x94,0xfe,0x6a,0xfe, +0x65,0xfe,0x99,0xfe,0xa3,0xfe,0x85,0xfe,0x7f,0xfe,0x91,0xfe, +0xab,0xfe,0xb4,0xfe,0xa9,0xfe,0xa2,0xfe,0x90,0xfe,0x77,0xfe, +0x62,0xfe,0x4b,0xfe,0x50,0xfe,0x63,0xfe,0x6b,0xfe,0x61,0xfe, +0x47,0xfe,0x4a,0xfe,0x46,0xfe,0x42,0xfe,0x5a,0xfe,0x4f,0xfe, +0x4e,0xfe,0x5c,0xfe,0x58,0xfe,0x62,0xfe,0x59,0xfe,0x48,0xfe, +0x47,0xfe,0x39,0xfe,0x3b,0xfe,0x61,0xfe,0x7c,0xfe,0x6f,0xfe, +0x6c,0xfe,0x81,0xfe,0xa1,0xfe,0xc2,0xfe,0xb7,0xfe,0xb7,0xfe, +0xcd,0xfe,0xc9,0xfe,0xda,0xfe,0xd4,0xfe,0xb0,0xfe,0xba,0xfe, +0xbb,0xfe,0xb2,0xfe,0xc4,0xfe,0xc2,0xfe,0xb6,0xfe,0xc6,0xfe, +0xe9,0xfe,0xff,0xfe,0x4,0xff,0xf1,0xfe,0xd0,0xfe,0xcb,0xfe, +0xd9,0xfe,0xf2,0xfe,0x21,0xff,0x27,0xff,0xd,0xff,0xf,0xff, +0x1d,0xff,0x13,0xff,0xdf,0xfe,0xb8,0xfe,0xcb,0xfe,0xcf,0xfe, +0xcf,0xfe,0xf3,0xfe,0x3,0xff,0x3,0xff,0x18,0xff,0x2e,0xff, +0x25,0xff,0x7,0xff,0xea,0xfe,0xd5,0xfe,0xd0,0xfe,0xbc,0xfe, +0x99,0xfe,0xa0,0xfe,0xc8,0xfe,0xe3,0xfe,0xd6,0xfe,0xad,0xfe, +0x98,0xfe,0xa9,0xfe,0xbf,0xfe,0xbb,0xfe,0xb0,0xfe,0xb4,0xfe, +0xac,0xfe,0xb7,0xfe,0xd4,0xfe,0xd1,0xfe,0xd7,0xfe,0xe2,0xfe, +0xbd,0xfe,0x9c,0xfe,0xb6,0xfe,0xe3,0xfe,0xd6,0xfe,0xbd,0xfe, +0xda,0xfe,0xdf,0xfe,0xd0,0xfe,0xe5,0xfe,0xf4,0xfe,0xff,0xfe, +0xef,0xfe,0xbe,0xfe,0xb4,0xfe,0xc0,0xfe,0xc7,0xfe,0xd9,0xfe, +0xda,0xfe,0xab,0xfe,0x8d,0xfe,0xce,0xfe,0xc,0xff,0xf3,0xfe, +0xde,0xfe,0xd5,0xfe,0xc3,0xfe,0xde,0xfe,0xf4,0xfe,0xe8,0xfe, +0xed,0xfe,0xea,0xfe,0xeb,0xfe,0x5,0xff,0xa,0xff,0xb,0xff, +0xe,0xff,0xf0,0xfe,0xd1,0xfe,0xc2,0xfe,0xca,0xfe,0xf4,0xfe, +0xfe,0xfe,0xee,0xfe,0x10,0xff,0x1f,0xff,0xa,0xff,0x1c,0xff, +0x2a,0xff,0x3d,0xff,0x6c,0xff,0x60,0xff,0x2d,0xff,0x2b,0xff, +0x45,0xff,0x40,0xff,0x46,0xff,0x77,0xff,0x8a,0xff,0x76,0xff, +0x76,0xff,0xa1,0xff,0xb7,0xff,0x8b,0xff,0x70,0xff,0x5d,0xff, +0x54,0xff,0x72,0xff,0x69,0xff,0x5e,0xff,0x6a,0xff,0x80,0xff, +0xa7,0xff,0x99,0xff,0x87,0xff,0x7e,0xff,0x73,0xff,0x9e,0xff, +0xaf,0xff,0xa5,0xff,0xa4,0xff,0x97,0xff,0xb4,0xff,0xc0,0xff, +0xb0,0xff,0xbc,0xff,0xc5,0xff,0xc7,0xff,0xae,0xff,0x87,0xff, +0x82,0xff,0x8e,0xff,0x74,0xff,0x62,0xff,0x95,0xff,0x93,0xff, +0x63,0xff,0x6c,0xff,0x94,0xff,0xb7,0xff,0x95,0xff,0x67,0xff, +0x60,0xff,0x48,0xff,0x52,0xff,0x52,0xff,0x3c,0xff,0x44,0xff, +0x3e,0xff,0x4b,0xff,0x5a,0xff,0x63,0xff,0x7a,0xff,0x55,0xff, +0x38,0xff,0x43,0xff,0x28,0xff,0x25,0xff,0x35,0xff,0x24,0xff, +0x3e,0xff,0x60,0xff,0x4a,0xff,0x53,0xff,0x63,0xff,0x54,0xff, +0x5b,0xff,0x5e,0xff,0x47,0xff,0x22,0xff,0x23,0xff,0x45,0xff, +0x46,0xff,0x4e,0xff,0x5a,0xff,0x5e,0xff,0x7e,0xff,0x85,0xff, +0x71,0xff,0x6a,0xff,0x69,0xff,0x4b,0xff,0x32,0xff,0x6b,0xff, +0xa2,0xff,0xaa,0xff,0xc2,0xff,0xd6,0xff,0xc6,0xff,0xbf,0xff, +0xe0,0xff,0x3,0x0,0xb,0x0,0xfd,0xff,0x8,0x0,0x22,0x0, +0x1e,0x0,0x1d,0x0,0x1c,0x0,0x31,0x0,0x3b,0x0,0xfa,0xff, +0xe5,0xff,0xf7,0xff,0xf7,0xff,0x13,0x0,0x20,0x0,0x21,0x0, +0x43,0x0,0x59,0x0,0x3d,0x0,0x43,0x0,0x54,0x0,0x21,0x0, +0x25,0x0,0x3e,0x0,0x34,0x0,0x53,0x0,0x46,0x0,0x32,0x0, +0x4e,0x0,0x49,0x0,0x3b,0x0,0x37,0x0,0x47,0x0,0x6d,0x0, +0x78,0x0,0x69,0x0,0x5c,0x0,0x5a,0x0,0x69,0x0,0x79,0x0, +0x5f,0x0,0x4e,0x0,0x51,0x0,0x37,0x0,0x30,0x0,0x43,0x0, +0x65,0x0,0x69,0x0,0x52,0x0,0x6f,0x0,0x44,0x0,0xfe,0xff, +0x26,0x0,0x16,0x0,0xe7,0xff,0x9,0x0,0x19,0x0,0x9,0x0, +0x9,0x0,0x29,0x0,0x40,0x0,0xe,0x0,0xfa,0xff,0x1c,0x0, +0xf7,0xff,0xd4,0xff,0xe6,0xff,0xe8,0xff,0xf8,0xff,0x14,0x0, +0x19,0x0,0x18,0x0,0x12,0x0,0xd,0x0,0x1f,0x0,0x2c,0x0, +0x16,0x0,0x10,0x0,0x11,0x0,0xe,0x0,0x35,0x0,0x33,0x0, +0x5,0x0,0xb,0x0,0x2c,0x0,0x37,0x0,0x3a,0x0,0x4c,0x0, +0x48,0x0,0x2e,0x0,0xc,0x0,0xfa,0xff,0x33,0x0,0x58,0x0, +0x34,0x0,0x25,0x0,0x30,0x0,0x43,0x0,0x7e,0x0,0xaa,0x0, +0x6d,0x0,0x54,0x0,0x74,0x0,0x5d,0x0,0x8d,0x0,0xc7,0x0, +0xb9,0x0,0xc1,0x0,0xa6,0x0,0x91,0x0,0x93,0x0,0x94,0x0, +0xbc,0x0,0xc7,0x0,0xc1,0x0,0xc4,0x0,0xcb,0x0,0xd9,0x0, +0xd4,0x0,0xde,0x0,0xd4,0x0,0xac,0x0,0x9d,0x0,0x9b,0x0, +0xab,0x0,0xc5,0x0,0xc5,0x0,0xbf,0x0,0xb2,0x0,0x96,0x0, +0x97,0x0,0xa5,0x0,0x9c,0x0,0x99,0x0,0x92,0x0,0x99,0x0, +0xa9,0x0,0x9c,0x0,0x8f,0x0,0x7c,0x0,0x75,0x0,0x8a,0x0, +0x8e,0x0,0x88,0x0,0x86,0x0,0x7a,0x0,0x6c,0x0,0x70,0x0, +0x7f,0x0,0x8d,0x0,0x7e,0x0,0x4c,0x0,0x41,0x0,0x35,0x0, +0xa,0x0,0x16,0x0,0x3d,0x0,0x50,0x0,0x30,0x0,0x4,0x0, +0x19,0x0,0x13,0x0,0xf5,0xff,0x13,0x0,0x31,0x0,0x2d,0x0, +0x17,0x0,0x1,0x0,0x1,0x0,0xa,0x0,0x19,0x0,0x13,0x0, +0xe3,0xff,0xea,0xff,0x15,0x0,0xf7,0xff,0xec,0xff,0xec,0xff, +0xcf,0xff,0xf3,0xff,0x0,0x0,0xe1,0xff,0xf3,0xff,0xeb,0xff, +0xc3,0xff,0xc4,0xff,0xca,0xff,0xa3,0xff,0x85,0xff,0x89,0xff, +0x79,0xff,0x78,0xff,0xa6,0xff,0xc8,0xff,0xdc,0xff,0xf9,0xff, +0xf7,0xff,0xe5,0xff,0xe1,0xff,0xd1,0xff,0xdc,0xff,0xef,0xff, +0xee,0xff,0xf8,0xff,0xe7,0xff,0xe1,0xff,0x2,0x0,0xc,0x0, +0x18,0x0,0x2c,0x0,0x19,0x0,0xfc,0xff,0x13,0x0,0x35,0x0, +0x32,0x0,0x40,0x0,0x50,0x0,0x46,0x0,0x43,0x0,0x40,0x0, +0x48,0x0,0x54,0x0,0x42,0x0,0x40,0x0,0x5c,0x0,0x5a,0x0, +0x54,0x0,0x60,0x0,0x60,0x0,0x65,0x0,0x54,0x0,0x3d,0x0, +0x4a,0x0,0x43,0x0,0x38,0x0,0x3a,0x0,0x2d,0x0,0x33,0x0, +0x3f,0x0,0x2b,0x0,0x13,0x0,0x11,0x0,0x13,0x0,0xa,0x0, +0xf9,0xff,0xe1,0xff,0xe5,0xff,0xfd,0xff,0xff,0xff,0xf9,0xff, +0xf1,0xff,0xec,0xff,0xf7,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xc,0x0,0x18,0x0,0xfb,0xff,0xe3,0xff,0xda,0xff, +0xc9,0xff,0xd0,0xff,0xd9,0xff,0xd3,0xff,0xc8,0xff,0xb3,0xff, +0xa4,0xff,0x9e,0xff,0x8f,0xff,0x82,0xff,0x94,0xff,0x9e,0xff, +0x87,0xff,0x7d,0xff,0x82,0xff,0x8a,0xff,0x71,0xff,0x48,0xff, +0x63,0xff,0x7b,0xff,0x6c,0xff,0x89,0xff,0xab,0xff,0xa6,0xff, +0xac,0xff,0xcc,0xff,0xe1,0xff,0xef,0xff,0xdf,0xff,0xbd,0xff, +0xb2,0xff,0xa4,0xff,0xac,0xff,0xb8,0xff,0x9d,0xff,0x96,0xff, +0xb3,0xff,0xe1,0xff,0xe8,0xff,0xd2,0xff,0xce,0xff,0xae,0xff, +0xaf,0xff,0xe8,0xff,0x4,0x0,0x10,0x0,0x19,0x0,0x1c,0x0, +0xfd,0xff,0xce,0xff,0xca,0xff,0xd3,0xff,0xed,0xff,0x7,0x0, +0xf5,0xff,0xf5,0xff,0x2,0x0,0xf1,0xff,0xe6,0xff,0xf3,0xff, +0xfe,0xff,0x8,0x0,0x1d,0x0,0x2d,0x0,0x4b,0x0,0x5d,0x0, +0x2d,0x0,0xf9,0xff,0xf2,0xff,0xf,0x0,0x1f,0x0,0xec,0xff, +0xd1,0xff,0xe7,0xff,0xe3,0xff,0xea,0xff,0xf4,0xff,0xd7,0xff, +0xc1,0xff,0xbc,0xff,0xc0,0xff,0xe9,0xff,0xff,0xff,0xd9,0xff, +0xcd,0xff,0xe0,0xff,0xce,0xff,0xa4,0xff,0x93,0xff,0xb4,0xff, +0x9f,0xff,0x5e,0xff,0x75,0xff,0x95,0xff,0x7f,0xff,0x78,0xff, +0x8b,0xff,0x8e,0xff,0x4e,0xff,0x16,0xff,0x3b,0xff,0x5c,0xff, +0x46,0xff,0x2f,0xff,0x2c,0xff,0x27,0xff,0xff,0xfe,0xed,0xfe, +0x1d,0xff,0x1f,0xff,0xe2,0xfe,0xcd,0xfe,0xe1,0xfe,0xfb,0xfe, +0xf2,0xfe,0xdb,0xfe,0xf0,0xfe,0xfd,0xfe,0x1,0xff,0xf1,0xfe, +0xbc,0xfe,0xcd,0xfe,0x5,0xff,0xc,0xff,0xc,0xff,0x17,0xff, +0x18,0xff,0x9,0xff,0xa,0xff,0xa,0xff,0xed,0xfe,0xe3,0xfe, +0xe1,0xfe,0xdb,0xfe,0xfd,0xfe,0x16,0xff,0x11,0xff,0x20,0xff, +0x35,0xff,0x48,0xff,0x47,0xff,0x2c,0xff,0x2a,0xff,0x29,0xff, +0x15,0xff,0x32,0xff,0x75,0xff,0x91,0xff,0x78,0xff,0x65,0xff, +0x7b,0xff,0x7e,0xff,0x63,0xff,0x5c,0xff,0x67,0xff,0x69,0xff, +0x5b,0xff,0x4a,0xff,0x48,0xff,0x48,0xff,0x4c,0xff,0x54,0xff, +0x55,0xff,0x6e,0xff,0x70,0xff,0x49,0xff,0x37,0xff,0x1c,0xff, +0x1c,0xff,0x5e,0xff,0x86,0xff,0x77,0xff,0x50,0xff,0x4d,0xff, +0x62,0xff,0x58,0xff,0x48,0xff,0x2e,0xff,0x2b,0xff,0x36,0xff, +0x20,0xff,0x30,0xff,0x35,0xff,0x15,0xff,0xf,0xff,0xea,0xfe, +0xcd,0xfe,0xd0,0xfe,0xaf,0xfe,0xb8,0xfe,0xd5,0xfe,0x9d,0xfe, +0x8a,0xfe,0xb2,0xfe,0xb2,0xfe,0xbd,0xfe,0xc4,0xfe,0xaa,0xfe, +0xb3,0xfe,0xc3,0xfe,0xb4,0xfe,0xb3,0xfe,0xc9,0xfe,0xc6,0xfe, +0xc1,0xfe,0xc0,0xfe,0x9f,0xfe,0xa4,0xfe,0xb1,0xfe,0x95,0xfe, +0xa2,0xfe,0xb6,0xfe,0xbf,0xfe,0xd1,0xfe,0xbe,0xfe,0xaf,0xfe, +0xb8,0xfe,0xb2,0xfe,0xb4,0xfe,0xb9,0xfe,0xa7,0xfe,0x93,0xfe, +0xb2,0xfe,0xdc,0xfe,0xce,0xfe,0xc3,0xfe,0xea,0xfe,0x3,0xff, +0xe5,0xfe,0xc8,0xfe,0xe3,0xfe,0x2,0xff,0xf1,0xfe,0xf9,0xfe, +0x28,0xff,0x40,0xff,0x52,0xff,0x44,0xff,0x3d,0xff,0x72,0xff, +0x65,0xff,0x3f,0xff,0x6f,0xff,0x81,0xff,0x6b,0xff,0x57,0xff, +0x32,0xff,0x31,0xff,0x35,0xff,0x2e,0xff,0x46,0xff,0x2f,0xff, +0x1,0xff,0x12,0xff,0x30,0xff,0x2c,0xff,0x13,0xff,0xe,0xff, +0x11,0xff,0x4,0xff,0x18,0xff,0x3a,0xff,0x3a,0xff,0x22,0xff, +0x9,0xff,0x21,0xff,0x4e,0xff,0x54,0xff,0x51,0xff,0x54,0xff, +0x45,0xff,0x37,0xff,0x40,0xff,0x41,0xff,0x41,0xff,0x59,0xff, +0x59,0xff,0x5e,0xff,0x88,0xff,0x91,0xff,0x79,0xff,0x6b,0xff, +0x69,0xff,0x70,0xff,0x5c,0xff,0x41,0xff,0x52,0xff,0x44,0xff, +0x21,0xff,0x49,0xff,0x80,0xff,0x77,0xff,0x60,0xff,0x57,0xff, +0x3c,0xff,0x25,0xff,0x37,0xff,0x45,0xff,0x2c,0xff,0xc,0xff, +0x15,0xff,0x29,0xff,0x1e,0xff,0x2c,0xff,0x50,0xff,0x61,0xff, +0x62,0xff,0x4a,0xff,0x53,0xff,0x7e,0xff,0x76,0xff,0x63,0xff, +0x5e,0xff,0x44,0xff,0x24,0xff,0x1c,0xff,0x32,0xff,0x35,0xff, +0x22,0xff,0x19,0xff,0xff,0xfe,0xc,0xff,0x2b,0xff,0x13,0xff, +0x11,0xff,0x18,0xff,0xfa,0xfe,0x2,0xff,0x1d,0xff,0x1e,0xff, +0x1f,0xff,0x19,0xff,0x21,0xff,0x44,0xff,0x41,0xff,0x2d,0xff, +0x2b,0xff,0x2a,0xff,0x3d,0xff,0x44,0xff,0x45,0xff,0x4c,0xff, +0x1e,0xff,0x25,0xff,0x5d,0xff,0x5e,0xff,0x54,0xff,0x4d,0xff, +0x66,0xff,0x80,0xff,0x75,0xff,0x78,0xff,0x51,0xff,0x41,0xff, +0x6d,0xff,0x84,0xff,0x9d,0xff,0x9a,0xff,0x9e,0xff,0xb6,0xff, +0x8e,0xff,0x7d,0xff,0x9b,0xff,0xa2,0xff,0x9e,0xff,0x9c,0xff, +0x8a,0xff,0x78,0xff,0x6c,0xff,0x68,0xff,0x87,0xff,0x81,0xff, +0x65,0xff,0xa6,0xff,0xdb,0xff,0xc0,0xff,0xb7,0xff,0xbc,0xff, +0xbb,0xff,0xcb,0xff,0xc8,0xff,0xb6,0xff,0xb7,0xff,0x9f,0xff, +0x8f,0xff,0xc3,0xff,0xd2,0xff,0xc3,0xff,0xdc,0xff,0xd9,0xff, +0xc3,0xff,0xd0,0xff,0xd8,0xff,0xcf,0xff,0xd1,0xff,0xd4,0xff, +0xbe,0xff,0xa0,0xff,0xb1,0xff,0xc2,0xff,0x98,0xff,0x87,0xff, +0x8a,0xff,0x89,0xff,0x9a,0xff,0x91,0xff,0x84,0xff,0x8a,0xff, +0x97,0xff,0xb7,0xff,0xb9,0xff,0x86,0xff,0x5f,0xff,0x69,0xff, +0x65,0xff,0x4d,0xff,0x64,0xff,0x85,0xff,0x96,0xff,0xab,0xff, +0xd2,0xff,0xe0,0xff,0xc4,0xff,0xbb,0xff,0xb0,0xff,0xa4,0xff, +0x9e,0xff,0x91,0xff,0x8b,0xff,0x6d,0xff,0x7f,0xff,0xbd,0xff, +0xc4,0xff,0xc2,0xff,0xbb,0xff,0xba,0xff,0xc4,0xff,0xbe,0xff, +0xb6,0xff,0xa6,0xff,0xb0,0xff,0xde,0xff,0xf4,0xff,0xd0,0xff, +0xc0,0xff,0xe5,0xff,0xdb,0xff,0xc8,0xff,0xdd,0xff,0xf0,0xff, +0xed,0xff,0xdd,0xff,0xf8,0xff,0xa,0x0,0xf7,0xff,0xfa,0xff, +0x10,0x0,0x35,0x0,0x3b,0x0,0x1a,0x0,0x23,0x0,0x4d,0x0, +0x50,0x0,0x2d,0x0,0x33,0x0,0x31,0x0,0xb,0x0,0x11,0x0, +0x20,0x0,0x33,0x0,0x4a,0x0,0x3d,0x0,0x42,0x0,0x54,0x0, +0x46,0x0,0x5b,0x0,0x61,0x0,0x13,0x0,0xa,0x0,0x35,0x0, +0x42,0x0,0x54,0x0,0x41,0x0,0x68,0x0,0xae,0x0,0x94,0x0, +0x7d,0x0,0x81,0x0,0x9b,0x0,0xb7,0x0,0x9d,0x0,0x96,0x0, +0xb2,0x0,0xb1,0x0,0x8d,0x0,0xa2,0x0,0xd3,0x0,0xac,0x0, +0x6f,0x0,0x67,0x0,0x8b,0x0,0xac,0x0,0x9f,0x0,0x77,0x0, +0x6b,0x0,0x9e,0x0,0xbc,0x0,0xac,0x0,0xae,0x0,0xae,0x0, +0xa9,0x0,0x8f,0x0,0x75,0x0,0x6a,0x0,0x5a,0x0,0x55,0x0, +0x4a,0x0,0x4d,0x0,0x4a,0x0,0x2a,0x0,0x43,0x0,0x78,0x0, +0x7a,0x0,0x6d,0x0,0x5e,0x0,0x55,0x0,0x78,0x0,0x89,0x0, +0x7c,0x0,0x84,0x0,0x71,0x0,0x66,0x0,0x87,0x0,0x92,0x0, +0x84,0x0,0x7f,0x0,0x7d,0x0,0x64,0x0,0x78,0x0,0x95,0x0, +0x7f,0x0,0xa0,0x0,0xb2,0x0,0x85,0x0,0x78,0x0,0x8a,0x0, +0xab,0x0,0xb1,0x0,0xab,0x0,0xa8,0x0,0xa1,0x0,0xad,0x0, +0xa2,0x0,0xa1,0x0,0xa9,0x0,0x9b,0x0,0x93,0x0,0xa0,0x0, +0xdb,0x0,0xdf,0x0,0xb6,0x0,0xce,0x0,0xee,0x0,0xf4,0x0, +0xcf,0x0,0xab,0x0,0xb2,0x0,0xbf,0x0,0xd3,0x0,0xcc,0x0, +0xcc,0x0,0xf0,0x0,0xfb,0x0,0x9,0x1,0x23,0x1,0x3e,0x1, +0x49,0x1,0x3c,0x1,0x4d,0x1,0x73,0x1,0x83,0x1,0x7a,0x1, +0x70,0x1,0x6a,0x1,0x6a,0x1,0x78,0x1,0x6e,0x1,0x49,0x1, +0x42,0x1,0x5b,0x1,0x5d,0x1,0x5b,0x1,0x88,0x1,0xa3,0x1, +0x8a,0x1,0x73,0x1,0x71,0x1,0x82,0x1,0x78,0x1,0x3e,0x1, +0x24,0x1,0x43,0x1,0x68,0x1,0x77,0x1,0x61,0x1,0x37,0x1, +0x1b,0x1,0xa,0x1,0x13,0x1,0x31,0x1,0x43,0x1,0x40,0x1, +0x1b,0x1,0x8,0x1,0x19,0x1,0x12,0x1,0xa,0x1,0x10,0x1, +0x12,0x1,0x25,0x1,0x23,0x1,0xf4,0x0,0xe0,0x0,0xe0,0x0, +0xcb,0x0,0xdc,0x0,0xf2,0x0,0xf6,0x0,0x19,0x1,0xa,0x1, +0x2,0x1,0x27,0x1,0x9,0x1,0xfd,0x0,0x1b,0x1,0x1f,0x1, +0x26,0x1,0x21,0x1,0x1c,0x1,0x42,0x1,0x68,0x1,0x4f,0x1, +0x3a,0x1,0x55,0x1,0x66,0x1,0x64,0x1,0x48,0x1,0x3f,0x1, +0x54,0x1,0x4e,0x1,0x4a,0x1,0x5c,0x1,0x80,0x1,0x97,0x1, +0x90,0x1,0x8c,0x1,0x9f,0x1,0xc5,0x1,0xb5,0x1,0xa9,0x1, +0xdc,0x1,0xdb,0x1,0xb7,0x1,0xb1,0x1,0xb2,0x1,0xb5,0x1, +0xbf,0x1,0xb0,0x1,0xb5,0x1,0xea,0x1,0xda,0x1,0xcb,0x1, +0x3,0x2,0x6,0x2,0xc,0x2,0x1a,0x2,0xe9,0x1,0xdb,0x1, +0x0,0x2,0xd,0x2,0x2,0x2,0xee,0x1,0xcf,0x1,0xd2,0x1, +0xe4,0x1,0xda,0x1,0xcd,0x1,0xc2,0x1,0xb5,0x1,0xa3,0x1, +0xa5,0x1,0xaa,0x1,0x98,0x1,0x92,0x1,0x86,0x1,0x84,0x1, +0x87,0x1,0x76,0x1,0x7c,0x1,0x7e,0x1,0x8c,0x1,0xa3,0x1, +0x95,0x1,0x8d,0x1,0x83,0x1,0x7d,0x1,0x9c,0x1,0xa0,0x1, +0x80,0x1,0x7c,0x1,0x6f,0x1,0x54,0x1,0x6d,0x1,0x92,0x1, +0x91,0x1,0x78,0x1,0x4b,0x1,0x1e,0x1,0x20,0x1,0x40,0x1, +0x31,0x1,0x17,0x1,0x9,0x1,0xf2,0x0,0x2,0x1,0x20,0x1, +0x27,0x1,0x33,0x1,0x38,0x1,0x25,0x1,0x14,0x1,0xb,0x1, +0x0,0x1,0x1e,0x1,0x43,0x1,0x42,0x1,0x47,0x1,0x4c,0x1, +0x35,0x1,0x29,0x1,0x55,0x1,0x5d,0x1,0x2b,0x1,0x43,0x1, +0x61,0x1,0x49,0x1,0x3f,0x1,0x35,0x1,0x30,0x1,0x31,0x1, +0x30,0x1,0x20,0x1,0xa,0x1,0x22,0x1,0x47,0x1,0x66,0x1, +0x7e,0x1,0x6e,0x1,0x7a,0x1,0xa0,0x1,0x85,0x1,0x76,0x1, +0x78,0x1,0x53,0x1,0x64,0x1,0x85,0x1,0x82,0x1,0x88,0x1, +0x68,0x1,0x46,0x1,0x55,0x1,0x69,0x1,0x89,0x1,0xa9,0x1, +0xa8,0x1,0xb7,0x1,0xe7,0x1,0xe4,0x1,0xc8,0x1,0xce,0x1, +0xdc,0x1,0xe8,0x1,0xe0,0x1,0xd0,0x1,0xdc,0x1,0xf6,0x1, +0xe6,0x1,0xb8,0x1,0xc9,0x1,0xfa,0x1,0x13,0x2,0x12,0x2, +0xfc,0x1,0xe3,0x1,0xb5,0x1,0x9c,0x1,0xa9,0x1,0xa4,0x1, +0x8f,0x1,0xa0,0x1,0xc4,0x1,0xaf,0x1,0xa9,0x1,0xc5,0x1, +0xc7,0x1,0xd6,0x1,0xc9,0x1,0xa3,0x1,0x89,0x1,0x80,0x1, +0xa0,0x1,0xa9,0x1,0x98,0x1,0x9e,0x1,0xac,0x1,0x92,0x1, +0x68,0x1,0x6a,0x1,0x5d,0x1,0x4b,0x1,0x43,0x1,0x1d,0x1, +0x28,0x1,0x41,0x1,0x34,0x1,0x2f,0x1,0xf,0x1,0xea,0x0, +0x3,0x1,0xa,0x1,0xe5,0x0,0xf9,0x0,0x9,0x1,0xee,0x0, +0xfa,0x0,0xf3,0x0,0xe0,0x0,0xee,0x0,0xee,0x0,0xf3,0x0, +0xee,0x0,0xd6,0x0,0xe6,0x0,0x4,0x1,0x16,0x1,0x2c,0x1, +0x2e,0x1,0x21,0x1,0xf,0x1,0x6,0x1,0x46,0x1,0x70,0x1, +0x30,0x1,0x11,0x1,0x21,0x1,0xf,0x1,0x9,0x1,0x1e,0x1, +0x11,0x1,0xfa,0x0,0xa,0x1,0x0,0x1,0xf1,0x0,0x7,0x1, +0xe,0x1,0xc,0x1,0x8,0x1,0x2,0x1,0xf6,0x0,0xef,0x0, +0x8,0x1,0x8,0x1,0xf5,0x0,0xf4,0x0,0x4,0x1,0x24,0x1, +0x2f,0x1,0x29,0x1,0xf,0x1,0xc,0x1,0x31,0x1,0x2f,0x1, +0x24,0x1,0x3b,0x1,0x42,0x1,0x21,0x1,0xc,0x1,0x7,0x1, +0x7,0x1,0x33,0x1,0x4d,0x1,0x2a,0x1,0x4,0x1,0xfc,0x0, +0x4,0x1,0xf7,0x0,0x1,0x1,0x16,0x1,0x12,0x1,0x21,0x1, +0x41,0x1,0x44,0x1,0x18,0x1,0xff,0x0,0xfe,0x0,0xe1,0x0, +0xce,0x0,0xe1,0x0,0xa,0x1,0xfc,0x0,0xd5,0x0,0xdc,0x0, +0xd4,0x0,0xd6,0x0,0xdf,0x0,0xe0,0x0,0xde,0x0,0xb6,0x0, +0xa9,0x0,0xad,0x0,0xc8,0x0,0xf6,0x0,0xd5,0x0,0xc3,0x0, +0xe4,0x0,0xc0,0x0,0xa1,0x0,0xbe,0x0,0xb4,0x0,0x8e,0x0, +0x72,0x0,0x59,0x0,0x78,0x0,0x96,0x0,0x68,0x0,0x27,0x0, +0x1e,0x0,0x41,0x0,0x46,0x0,0x3c,0x0,0x3d,0x0,0x2e,0x0, +0x30,0x0,0x41,0x0,0x2f,0x0,0x21,0x0,0x26,0x0,0x6,0x0, +0x3,0x0,0x1f,0x0,0x27,0x0,0x48,0x0,0x42,0x0,0x36,0x0, +0x62,0x0,0x76,0x0,0x64,0x0,0x4a,0x0,0x59,0x0,0x6e,0x0, +0x81,0x0,0xb6,0x0,0xaa,0x0,0x98,0x0,0xb6,0x0,0x9e,0x0, +0x7f,0x0,0x8e,0x0,0x97,0x0,0x8f,0x0,0x96,0x0,0x9b,0x0, +0x86,0x0,0x7f,0x0,0x9a,0x0,0xa3,0x0,0x9e,0x0,0xad,0x0, +0xa5,0x0,0x98,0x0,0x8b,0x0,0x73,0x0,0x80,0x0,0x7e,0x0, +0x71,0x0,0x7b,0x0,0x87,0x0,0x99,0x0,0x86,0x0,0x72,0x0, +0x77,0x0,0x78,0x0,0x84,0x0,0x9a,0x0,0xaf,0x0,0xa3,0x0, +0x92,0x0,0x72,0x0,0x48,0x0,0x5e,0x0,0x7a,0x0,0x74,0x0, +0x66,0x0,0x60,0x0,0x65,0x0,0x52,0x0,0x2e,0x0,0x2e,0x0, +0x5b,0x0,0x5b,0x0,0x4f,0x0,0x72,0x0,0x5b,0x0,0x25,0x0, +0x24,0x0,0x3d,0x0,0x3c,0x0,0x23,0x0,0x2c,0x0,0x47,0x0, +0x45,0x0,0x37,0x0,0x33,0x0,0x1d,0x0,0x22,0x0,0x4a,0x0, +0x3a,0x0,0x16,0x0,0x8,0x0,0x1b,0x0,0x3a,0x0,0x3c,0x0, +0x44,0x0,0x42,0x0,0x32,0x0,0x2b,0x0,0x38,0x0,0x4a,0x0, +0x41,0x0,0x38,0x0,0x2b,0x0,0x42,0x0,0x47,0x0,0xd,0x0, +0xe,0x0,0x19,0x0,0x24,0x0,0x33,0x0,0x22,0x0,0x26,0x0, +0x9,0x0,0x19,0x0,0x49,0x0,0x34,0x0,0x56,0x0,0x70,0x0, +0x50,0x0,0x44,0x0,0x23,0x0,0xf,0x0,0x6,0x0,0x6,0x0, +0x45,0x0,0x4f,0x0,0x23,0x0,0x2d,0x0,0x30,0x0,0x32,0x0, +0x38,0x0,0x18,0x0,0x2b,0x0,0x4f,0x0,0x2c,0x0,0xf8,0xff, +0xf7,0xff,0x12,0x0,0x15,0x0,0xf1,0xff,0xcf,0xff,0xf9,0xff, +0x24,0x0,0xc,0x0,0xec,0xff,0xe1,0xff,0xf6,0xff,0xf4,0xff, +0xdd,0xff,0xd8,0xff,0xe2,0xff,0x13,0x0,0x1a,0x0,0x8,0x0, +0x10,0x0,0x1,0x0,0x3,0x0,0x23,0x0,0x3f,0x0,0x4e,0x0, +0x5f,0x0,0x4d,0x0,0x14,0x0,0x24,0x0,0x62,0x0,0x82,0x0, +0x82,0x0,0x70,0x0,0x64,0x0,0x50,0x0,0x4b,0x0,0x68,0x0, +0x7c,0x0,0x56,0x0,0x49,0x0,0x7e,0x0,0x7b,0x0,0x58,0x0, +0x53,0x0,0x69,0x0,0x8f,0x0,0x81,0x0,0x57,0x0,0x4f,0x0, +0x48,0x0,0x18,0x0,0xe6,0xff,0xc5,0xff,0xb7,0xff,0xcd,0xff, +0xc7,0xff,0xc7,0xff,0xf8,0xff,0x10,0x0,0xe3,0xff,0x9f,0xff, +0xaa,0xff,0xc3,0xff,0xb3,0xff,0xa7,0xff,0xbb,0xff,0xde,0xff, +0xc3,0xff,0xbc,0xff,0xc0,0xff,0xa0,0xff,0xa0,0xff,0x8b,0xff, +0x88,0xff,0x99,0xff,0x9d,0xff,0xa9,0xff,0x81,0xff,0x7c,0xff, +0x87,0xff,0x59,0xff,0x52,0xff,0x77,0xff,0x94,0xff,0x9a,0xff, +0x94,0xff,0x95,0xff,0x99,0xff,0x87,0xff,0x6e,0xff,0x6c,0xff, +0x73,0xff,0x98,0xff,0xa8,0xff,0xa3,0xff,0xcd,0xff,0xeb,0xff, +0xf5,0xff,0xee,0xff,0xde,0xff,0xe8,0xff,0xe7,0xff,0xdc,0xff, +0xe1,0xff,0xf9,0xff,0x7,0x0,0x1d,0x0,0x36,0x0,0x33,0x0, +0x39,0x0,0x20,0x0,0xfe,0xff,0xfd,0xff,0xd,0x0,0x33,0x0, +0x38,0x0,0x3e,0x0,0x42,0x0,0x25,0x0,0x36,0x0,0x4d,0x0, +0x46,0x0,0x36,0x0,0x34,0x0,0x3f,0x0,0x3b,0x0,0x2b,0x0, +0x1f,0x0,0x51,0x0,0x62,0x0,0x20,0x0,0x20,0x0,0x3e,0x0, +0x47,0x0,0x4b,0x0,0x47,0x0,0x40,0x0,0x17,0x0,0x15,0x0, +0x2c,0x0,0x13,0x0,0x1,0x0,0xf6,0xff,0xff,0xff,0x2f,0x0, +0x47,0x0,0x22,0x0,0xe6,0xff,0xe6,0xff,0xf4,0xff,0xdc,0xff, +0xe0,0xff,0xea,0xff,0xd3,0xff,0xbb,0xff,0xac,0xff,0x9c,0xff, +0x87,0xff,0x8d,0xff,0x8d,0xff,0x61,0xff,0x62,0xff,0x86,0xff, +0x83,0xff,0x7f,0xff,0x95,0xff,0xac,0xff,0x89,0xff,0x78,0xff, +0xb1,0xff,0xa4,0xff,0x7f,0xff,0x89,0xff,0x95,0xff,0xb4,0xff, +0xa2,0xff,0x80,0xff,0x9d,0xff,0xbc,0xff,0xc5,0xff,0xbc,0xff, +0xbf,0xff,0xcb,0xff,0xc2,0xff,0xbe,0xff,0xe2,0xff,0x10,0x0, +0xf0,0xff,0xe5,0xff,0xc,0x0,0xf6,0xff,0xf9,0xff,0x10,0x0, +0x7,0x0,0x16,0x0,0x16,0x0,0x1,0x0,0x1,0x0,0xd,0x0, +0xe,0x0,0x22,0x0,0x31,0x0,0xd,0x0,0xfa,0xff,0x8,0x0, +0x23,0x0,0x28,0x0,0x9,0x0,0x17,0x0,0x3c,0x0,0x4d,0x0, +0x60,0x0,0x65,0x0,0x6e,0x0,0x76,0x0,0x57,0x0,0x3a,0x0, +0x5b,0x0,0x90,0x0,0xa0,0x0,0x89,0x0,0x5b,0x0,0x43,0x0, +0x4f,0x0,0x53,0x0,0x58,0x0,0x6c,0x0,0x60,0x0,0x4e,0x0, +0x39,0x0,0x34,0x0,0x8d,0x0,0xbe,0x0,0x90,0x0,0x62,0x0, +0x44,0x0,0x51,0x0,0x54,0x0,0x4e,0x0,0x4c,0x0,0x40,0x0, +0x5e,0x0,0x57,0x0,0x2d,0x0,0x27,0x0,0x35,0x0,0x5e,0x0, +0x67,0x0,0x3f,0x0,0x26,0x0,0x2e,0x0,0x2d,0x0,0x34,0x0, +0x49,0x0,0x35,0x0,0x2d,0x0,0x39,0x0,0x5c,0x0,0x9c,0x0, +0x8b,0x0,0x59,0x0,0x35,0x0,0x0,0x0,0xfc,0xff,0x31,0x0, +0x55,0x0,0x3a,0x0,0xf,0x0,0xa,0x0,0x15,0x0,0x15,0x0, +0x16,0x0,0xfb,0xff,0xd2,0xff,0xf0,0xff,0x15,0x0,0x15,0x0, +0x10,0x0,0x25,0x0,0x43,0x0,0xfd,0xff,0xd2,0xff,0xfd,0xff, +0xff,0xff,0x15,0x0,0x32,0x0,0x2f,0x0,0x28,0x0,0x1e,0x0, +0xb,0x0,0xf6,0xff,0x10,0x0,0x1d,0x0,0x10,0x0,0x22,0x0, +0x3a,0x0,0x50,0x0,0x59,0x0,0x56,0x0,0x4b,0x0,0x56,0x0, +0x6c,0x0,0x63,0x0,0x65,0x0,0x69,0x0,0x59,0x0,0x58,0x0, +0x6c,0x0,0x5f,0x0,0x32,0x0,0x4a,0x0,0x65,0x0,0x57,0x0, +0x4d,0x0,0x31,0x0,0x34,0x0,0x50,0x0,0x57,0x0,0x5d,0x0, +0x5b,0x0,0x50,0x0,0x37,0x0,0x28,0x0,0x41,0x0,0x5f,0x0, +0x71,0x0,0x71,0x0,0x46,0x0,0x48,0x0,0x87,0x0,0x8f,0x0, +0x88,0x0,0x7f,0x0,0x69,0x0,0x76,0x0,0x6d,0x0,0x57,0x0, +0x4b,0x0,0x4d,0x0,0x68,0x0,0x6e,0x0,0x6d,0x0,0x75,0x0, +0x8f,0x0,0x99,0x0,0x7a,0x0,0x67,0x0,0x71,0x0,0xac,0x0, +0xb8,0x0,0x7b,0x0,0x7e,0x0,0x95,0x0,0x8a,0x0,0x7f,0x0, +0x81,0x0,0x99,0x0,0x91,0x0,0x79,0x0,0x7b,0x0,0x75,0x0, +0x69,0x0,0x5a,0x0,0x5c,0x0,0x63,0x0,0x49,0x0,0x4e,0x0, +0x66,0x0,0x6a,0x0,0x5d,0x0,0x34,0x0,0x33,0x0,0x32,0x0, +0xf,0x0,0x12,0x0,0x2f,0x0,0x62,0x0,0x62,0x0,0x41,0x0, +0x3e,0x0,0x31,0x0,0x55,0x0,0x56,0x0,0x27,0x0,0x28,0x0, +0x17,0x0,0x15,0x0,0x1a,0x0,0x1e,0x0,0x32,0x0,0x35,0x0, +0x60,0x0,0x6f,0x0,0x42,0x0,0x43,0x0,0x60,0x0,0x75,0x0, +0x7e,0x0,0x60,0x0,0x44,0x0,0x47,0x0,0x4c,0x0,0x60,0x0, +0x60,0x0,0x5a,0x0,0x80,0x0,0x87,0x0,0x84,0x0,0x97,0x0, +0x9d,0x0,0xa5,0x0,0xa3,0x0,0xb3,0x0,0xcc,0x0,0xda,0x0, +0xce,0x0,0xa2,0x0,0x8a,0x0,0x85,0x0,0x99,0x0,0x92,0x0, +0x74,0x0,0x8c,0x0,0x97,0x0,0x7e,0x0,0x73,0x0,0x7f,0x0, +0x9a,0x0,0xc1,0x0,0xf3,0x0,0xed,0x0,0xb5,0x0,0x90,0x0, +0x77,0x0,0x50,0x0,0x4b,0x0,0x63,0x0,0x5c,0x0,0x6b,0x0, +0x76,0x0,0x68,0x0,0x7a,0x0,0x76,0x0,0x65,0x0,0x55,0x0, +0x3d,0x0,0x36,0x0,0x35,0x0,0x2e,0x0,0x1c,0x0,0x31,0x0, +0x2e,0x0,0xf6,0xff,0xf4,0xff,0xf6,0xff,0xe4,0xff,0xec,0xff, +0xf3,0xff,0x3,0x0,0x22,0x0,0x22,0x0,0xf2,0xff,0xda,0xff, +0xd9,0xff,0xc3,0xff,0xb8,0xff,0xad,0xff,0x91,0xff,0x90,0xff, +0xac,0xff,0xa5,0xff,0x8f,0xff,0x88,0xff,0x76,0xff,0x8b,0xff, +0xb6,0xff,0xc6,0xff,0xb7,0xff,0x99,0xff,0x9f,0xff,0x8f,0xff, +0x76,0xff,0x98,0xff,0xb2,0xff,0xbc,0xff,0xb2,0xff,0x9c,0xff, +0xb7,0xff,0xd2,0xff,0xd4,0xff,0xc3,0xff,0xaa,0xff,0xb0,0xff, +0xc5,0xff,0xe1,0xff,0xe4,0xff,0xba,0xff,0xa5,0xff,0x91,0xff, +0x93,0xff,0xbd,0xff,0xbe,0xff,0xbf,0xff,0xbb,0xff,0x99,0xff, +0x8a,0xff,0x93,0xff,0xb4,0xff,0xc8,0xff,0xea,0xff,0xfd,0xff, +0xb3,0xff,0xae,0xff,0xf6,0xff,0xfe,0xff,0xe5,0xff,0xca,0xff, +0xbb,0xff,0xc8,0xff,0xf5,0xff,0x1d,0x0,0xc,0x0,0x3,0x0, +0x12,0x0,0x14,0x0,0x18,0x0,0x19,0x0,0x2f,0x0,0x42,0x0, +0x2d,0x0,0x23,0x0,0x18,0x0,0xf8,0xff,0xe4,0xff,0xde,0xff, +0xf1,0xff,0x1a,0x0,0x15,0x0,0xd9,0xff,0xcb,0xff,0x1,0x0, +0xc,0x0,0xf3,0xff,0xed,0xff,0xda,0xff,0xc1,0xff,0xbb,0xff, +0xc9,0xff,0xd2,0xff,0xcb,0xff,0xd3,0xff,0xcd,0xff,0xbb,0xff, +0xbc,0xff,0xac,0xff,0x9b,0xff,0x98,0xff,0xa3,0xff,0xbc,0xff, +0xaf,0xff,0xa0,0xff,0xaf,0xff,0xb2,0xff,0xa9,0xff,0x7f,0xff, +0x5b,0xff,0x51,0xff,0x46,0xff,0x6f,0xff,0x84,0xff,0x73,0xff, +0xa0,0xff,0xbf,0xff,0xa2,0xff,0x7f,0xff,0x7c,0xff,0x8d,0xff, +0x80,0xff,0x64,0xff,0x59,0xff,0x5d,0xff,0x71,0xff,0x6c,0xff, +0x39,0xff,0x1c,0xff,0x2a,0xff,0x33,0xff,0x34,0xff,0x33,0xff, +0x38,0xff,0x36,0xff,0x24,0xff,0x29,0xff,0x44,0xff,0x5a,0xff, +0x55,0xff,0x3c,0xff,0x2b,0xff,0x31,0xff,0x48,0xff,0x55,0xff, +0x63,0xff,0x4f,0xff,0x15,0xff,0x9,0xff,0x28,0xff,0x40,0xff, +0x34,0xff,0x28,0xff,0x24,0xff,0x1a,0xff,0x1b,0xff,0xc,0xff, +0x12,0xff,0x25,0xff,0x24,0xff,0x29,0xff,0x27,0xff,0x27,0xff, +0x27,0xff,0x24,0xff,0xa,0xff,0xf1,0xfe,0x7,0xff,0x3,0xff, +0x1b,0xff,0x41,0xff,0x31,0xff,0x2f,0xff,0x26,0xff,0x1e,0xff, +0x28,0xff,0x30,0xff,0x4e,0xff,0x6c,0xff,0x68,0xff,0x44,0xff, +0x34,0xff,0x29,0xff,0x22,0xff,0x49,0xff,0x4d,0xff,0x24,0xff, +0xfb,0xfe,0xfd,0xfe,0x1a,0xff,0x11,0xff,0xfc,0xfe,0xd5,0xfe, +0xc3,0xfe,0xe5,0xfe,0xf1,0xfe,0xe9,0xfe,0xf5,0xfe,0x12,0xff, +0xd,0xff,0xfd,0xfe,0xfc,0xfe,0xf4,0xfe,0xfa,0xfe,0xe9,0xfe, +0xd8,0xfe,0xf8,0xfe,0xff,0xfe,0xe3,0xfe,0xd9,0xfe,0xcd,0xfe, +0xc4,0xfe,0xcc,0xfe,0xb8,0xfe,0xbf,0xfe,0xe7,0xfe,0xd7,0xfe, +0xb9,0xfe,0xa7,0xfe,0xa6,0xfe,0xa7,0xfe,0x9f,0xfe,0xae,0xfe, +0x80,0xfe,0x4c,0xfe,0x5b,0xfe,0x4b,0xfe,0x3e,0xfe,0x3f,0xfe, +0x30,0xfe,0x32,0xfe,0x34,0xfe,0x32,0xfe,0x3d,0xfe,0x57,0xfe, +0x72,0xfe,0x77,0xfe,0x6e,0xfe,0x6b,0xfe,0x76,0xfe,0x7d,0xfe, +0x7a,0xfe,0x62,0xfe,0x3c,0xfe,0x53,0xfe,0x81,0xfe,0x7e,0xfe, +0x85,0xfe,0xa2,0xfe,0x9f,0xfe,0x98,0xfe,0x8e,0xfe,0x69,0xfe, +0x6a,0xfe,0x96,0xfe,0xaa,0xfe,0xaf,0xfe,0xaf,0xfe,0xa9,0xfe, +0xb2,0xfe,0xb7,0xfe,0xbc,0xfe,0xd5,0xfe,0xf0,0xfe,0xef,0xfe, +0xe8,0xfe,0xfa,0xfe,0x1,0xff,0x6,0xff,0x10,0xff,0x1b,0xff, +0x2b,0xff,0x19,0xff,0x17,0xff,0xa,0xff,0xf7,0xfe,0x2a,0xff, +0x27,0xff,0xfc,0xfe,0xfd,0xfe,0x3,0xff,0x1e,0xff,0x29,0xff, +0x1d,0xff,0x1a,0xff,0x1f,0xff,0x1a,0xff,0xff,0xfe,0xfe,0xfe, +0x5,0xff,0x5,0xff,0x8,0xff,0x11,0xff,0x2c,0xff,0x38,0xff, +0x1f,0xff,0xfe,0xfe,0x4,0xff,0xb,0xff,0xf5,0xfe,0xf7,0xfe, +0xa,0xff,0x21,0xff,0x12,0xff,0xf2,0xfe,0xfc,0xfe,0xf3,0xfe, +0xe4,0xfe,0xe1,0xfe,0xdb,0xfe,0xd9,0xfe,0xcf,0xfe,0xd5,0xfe, +0xbc,0xfe,0x8f,0xfe,0x9d,0xfe,0xad,0xfe,0xa7,0xfe,0xa2,0xfe, +0x9a,0xfe,0x9c,0xfe,0x9b,0xfe,0x9d,0xfe,0xbf,0xfe,0xc1,0xfe, +0x8e,0xfe,0x8b,0xfe,0xad,0xfe,0xb6,0xfe,0xae,0xfe,0xa7,0xfe, +0xa9,0xfe,0xa1,0xfe,0xa6,0xfe,0xc9,0xfe,0xd0,0xfe,0xc2,0xfe, +0xc4,0xfe,0xb7,0xfe,0xb4,0xfe,0xd5,0xfe,0xd3,0xfe,0xce,0xfe, +0xdb,0xfe,0xcc,0xfe,0xcd,0xfe,0xd9,0xfe,0xdf,0xfe,0xcf,0xfe, +0xb3,0xfe,0xbb,0xfe,0xd0,0xfe,0xe1,0xfe,0xdf,0xfe,0xd0,0xfe, +0xe2,0xfe,0xf2,0xfe,0xec,0xfe,0xea,0xfe,0xeb,0xfe,0xef,0xfe, +0xf8,0xfe,0xe8,0xfe,0xce,0xfe,0xe4,0xfe,0xe,0xff,0x22,0xff, +0x1c,0xff,0x7,0xff,0x4,0xff,0x1a,0xff,0x32,0xff,0x46,0xff, +0x51,0xff,0x45,0xff,0x42,0xff,0x4f,0xff,0x3b,0xff,0x32,0xff, +0x45,0xff,0x5c,0xff,0x75,0xff,0x6a,0xff,0x4a,0xff,0x48,0xff, +0x5c,0xff,0x52,0xff,0x57,0xff,0x7f,0xff,0x81,0xff,0x86,0xff, +0x83,0xff,0x71,0xff,0x8d,0xff,0x96,0xff,0x92,0xff,0x97,0xff, +0x89,0xff,0x96,0xff,0x94,0xff,0x77,0xff,0x6e,0xff,0x54,0xff, +0x3a,0xff,0x42,0xff,0x50,0xff,0x56,0xff,0x55,0xff,0x42,0xff, +0x24,0xff,0x31,0xff,0x57,0xff,0x53,0xff,0x3d,0xff,0x28,0xff, +0x12,0xff,0x19,0xff,0x2f,0xff,0x3f,0xff,0x36,0xff,0x19,0xff, +0x15,0xff,0x22,0xff,0x37,0xff,0x2e,0xff,0xff,0xfe,0x2,0xff, +0x21,0xff,0x2f,0xff,0x57,0xff,0x70,0xff,0x59,0xff,0x47,0xff, +0x2a,0xff,0x1a,0xff,0x2e,0xff,0x21,0xff,0xf,0xff,0x22,0xff, +0x41,0xff,0x5a,0xff,0x3f,0xff,0xd,0xff,0xf4,0xfe,0xe4,0xfe, +0x0,0xff,0x3f,0xff,0x45,0xff,0x39,0xff,0x45,0xff,0x2d,0xff, +0x12,0xff,0x1b,0xff,0x34,0xff,0x45,0xff,0x2a,0xff,0x1d,0xff, +0x35,0xff,0x42,0xff,0x3a,0xff,0x45,0xff,0x74,0xff,0x71,0xff, +0x4b,0xff,0x4f,0xff,0x5e,0xff,0x65,0xff,0x6a,0xff,0x84,0xff, +0x94,0xff,0x8b,0xff,0x8d,0xff,0x73,0xff,0x6e,0xff,0x94,0xff, +0xa5,0xff,0xb1,0xff,0xbc,0xff,0xc0,0xff,0xbd,0xff,0xbe,0xff, +0xb5,0xff,0xae,0xff,0xd9,0xff,0xec,0xff,0xe8,0xff,0xfb,0xff, +0x8,0x0,0x19,0x0,0x23,0x0,0x30,0x0,0x4a,0x0,0x43,0x0, +0x40,0x0,0x58,0x0,0x5f,0x0,0x52,0x0,0x5e,0x0,0x6f,0x0, +0x56,0x0,0x5b,0x0,0x7d,0x0,0x74,0x0,0x6b,0x0,0x79,0x0, +0x80,0x0,0x70,0x0,0x57,0x0,0x56,0x0,0x5c,0x0,0x59,0x0, +0x57,0x0,0x5f,0x0,0x65,0x0,0x58,0x0,0x56,0x0,0x50,0x0, +0x46,0x0,0x4a,0x0,0x36,0x0,0x34,0x0,0x58,0x0,0x6a,0x0, +0x68,0x0,0x63,0x0,0x6b,0x0,0x75,0x0,0x6f,0x0,0x5c,0x0, +0x4c,0x0,0x59,0x0,0x7a,0x0,0x7d,0x0,0x5d,0x0,0x4e,0x0, +0x5a,0x0,0x60,0x0,0x66,0x0,0x5e,0x0,0x4b,0x0,0x44,0x0, +0x50,0x0,0x5a,0x0,0x42,0x0,0x37,0x0,0x4c,0x0,0x3d,0x0, +0x26,0x0,0x32,0x0,0x34,0x0,0x29,0x0,0x25,0x0,0x19,0x0, +0x1a,0x0,0x1e,0x0,0x15,0x0,0x31,0x0,0x46,0x0,0x42,0x0, +0x5b,0x0,0x65,0x0,0x51,0x0,0x56,0x0,0x6e,0x0,0x78,0x0, +0x7b,0x0,0x8a,0x0,0xa0,0x0,0x9d,0x0,0x8d,0x0,0x9c,0x0, +0xae,0x0,0xb7,0x0,0xae,0x0,0xa1,0x0,0xcc,0x0,0xe6,0x0, +0xe4,0x0,0x7,0x1,0x24,0x1,0x27,0x1,0xa,0x1,0xdd,0x0, +0xcf,0x0,0xe5,0x0,0x8,0x1,0x0,0x1,0xee,0x0,0xf5,0x0, +0x3,0x1,0x20,0x1,0x2d,0x1,0x26,0x1,0x11,0x1,0xf4,0x0, +0xf8,0x0,0x8,0x1,0x21,0x1,0x27,0x1,0x4,0x1,0x8,0x1, +0x1d,0x1,0x1d,0x1,0x27,0x1,0x1a,0x1,0x19,0x1,0x31,0x1, +0x1c,0x1,0xfe,0x0,0x8,0x1,0x1,0x1,0xdb,0x0,0xd4,0x0, +0xe1,0x0,0xe8,0x0,0xff,0x0,0xfa,0x0,0xd7,0x0,0xd4,0x0, +0xe3,0x0,0xee,0x0,0xe6,0x0,0xc6,0x0,0xb6,0x0,0xd2,0x0, +0xf2,0x0,0xea,0x0,0xef,0x0,0xfe,0x0,0xf3,0x0,0xef,0x0, +0xe5,0x0,0xed,0x0,0xa,0x1,0xf8,0x0,0xe4,0x0,0xf0,0x0, +0xf9,0x0,0xec,0x0,0xd4,0x0,0xd3,0x0,0xdd,0x0,0xd2,0x0, +0xba,0x0,0xab,0x0,0xa0,0x0,0x96,0x0,0x96,0x0,0x9b,0x0, +0xa4,0x0,0x9e,0x0,0x9b,0x0,0xa2,0x0,0x7f,0x0,0x80,0x0, +0xb5,0x0,0xbb,0x0,0xac,0x0,0x9d,0x0,0x7e,0x0,0x6b,0x0, +0x87,0x0,0xb9,0x0,0xbe,0x0,0xa2,0x0,0x89,0x0,0x7f,0x0, +0x85,0x0,0x7a,0x0,0x74,0x0,0x84,0x0,0x9e,0x0,0xbc,0x0, +0xb9,0x0,0x9d,0x0,0xa2,0x0,0xbd,0x0,0xc2,0x0,0xcd,0x0, +0xe1,0x0,0xc6,0x0,0xaf,0x0,0xbc,0x0,0xb7,0x0,0xc0,0x0, +0xe8,0x0,0xda,0x0,0xb0,0x0,0xd6,0x0,0xa,0x1,0xf9,0x0, +0xf6,0x0,0xc,0x1,0xc,0x1,0x1b,0x1,0x24,0x1,0x1e,0x1, +0x53,0x1,0x78,0x1,0x4e,0x1,0x41,0x1,0x51,0x1,0x3a,0x1, +0x1d,0x1,0x25,0x1,0x2b,0x1,0xf,0x1,0x23,0x1,0x5a,0x1, +0x5d,0x1,0x4c,0x1,0x37,0x1,0x3f,0x1,0x6b,0x1,0x65,0x1, +0x48,0x1,0x3b,0x1,0x20,0x1,0x13,0x1,0x27,0x1,0x3d,0x1, +0x36,0x1,0x27,0x1,0x35,0x1,0x33,0x1,0x25,0x1,0x47,0x1, +0x53,0x1,0x39,0x1,0x3a,0x1,0x33,0x1,0x13,0x1,0xf4,0x0, +0xeb,0x0,0x1,0x1,0xd,0x1,0xf9,0x0,0xe6,0x0,0xe6,0x0, +0xec,0x0,0xf7,0x0,0xf8,0x0,0xf2,0x0,0xf7,0x0,0xcc,0x0, +0xa4,0x0,0xa6,0x0,0x9a,0x0,0xb1,0x0,0xb7,0x0,0xa6,0x0, +0xbe,0x0,0xb8,0x0,0xb3,0x0,0xa1,0x0,0x89,0x0,0xab,0x0, +0xa3,0x0,0xa6,0x0,0xc1,0x0,0x94,0x0,0x84,0x0,0xa6,0x0, +0xa5,0x0,0x8f,0x0,0x95,0x0,0x9d,0x0,0x7c,0x0,0x55,0x0, +0x51,0x0,0x7b,0x0,0x89,0x0,0x61,0x0,0x72,0x0,0x92,0x0, +0x9b,0x0,0xb8,0x0,0xb7,0x0,0xad,0x0,0xb0,0x0,0xba,0x0, +0xea,0x0,0x3,0x1,0xe8,0x0,0xd7,0x0,0xea,0x0,0xf0,0x0, +0xdf,0x0,0xf3,0x0,0x1,0x1,0xfd,0x0,0x5,0x1,0xd5,0x0, +0xc4,0x0,0xf2,0x0,0xe0,0x0,0xd4,0x0,0xde,0x0,0xcf,0x0, +0xeb,0x0,0xf3,0x0,0xbc,0x0,0x87,0x0,0x85,0x0,0xbd,0x0, +0xe7,0x0,0xd1,0x0,0xae,0x0,0xc0,0x0,0xce,0x0,0xb9,0x0, +0xd2,0x0,0xea,0x0,0xd5,0x0,0xe0,0x0,0xfe,0x0,0xec,0x0, +0xd4,0x0,0xec,0x0,0xef,0x0,0xe5,0x0,0xf9,0x0,0xfa,0x0, +0xe9,0x0,0xc2,0x0,0xcd,0x0,0xe,0x1,0x1,0x1,0xe0,0x0, +0xd3,0x0,0xc5,0x0,0xca,0x0,0xb7,0x0,0xad,0x0,0xc3,0x0, +0xd9,0x0,0xcf,0x0,0xa9,0x0,0xa3,0x0,0xca,0x0,0xf0,0x0, +0xcf,0x0,0xa9,0x0,0xb6,0x0,0x99,0x0,0x88,0x0,0x96,0x0, +0xa3,0x0,0xc4,0x0,0xb3,0x0,0x83,0x0,0x64,0x0,0x66,0x0, +0x75,0x0,0x53,0x0,0x51,0x0,0x63,0x0,0x29,0x0,0xf3,0xff, +0xf6,0xff,0x8,0x0,0x33,0x0,0x49,0x0,0x13,0x0,0xf,0x0, +0x30,0x0,0xfd,0xff,0xe7,0xff,0x0,0x0,0xfd,0xff,0xec,0xff, +0xd0,0xff,0xd0,0xff,0xc5,0xff,0xad,0xff,0xcc,0xff,0xf2,0xff, +0x3,0x0,0xeb,0xff,0xb7,0xff,0xd0,0xff,0x1d,0x0,0x4a,0x0, +0x65,0x0,0x6d,0x0,0x45,0x0,0x21,0x0,0x20,0x0,0x23,0x0, +0x29,0x0,0x2e,0x0,0x21,0x0,0x19,0x0,0x21,0x0,0x1c,0x0, +0x8,0x0,0xc,0x0,0x14,0x0,0x15,0x0,0x23,0x0,0x2c,0x0, +0x24,0x0,0x1a,0x0,0x26,0x0,0x3e,0x0,0x46,0x0,0x45,0x0, +0x2f,0x0,0x17,0x0,0x2b,0x0,0x43,0x0,0x43,0x0,0x51,0x0, +0x52,0x0,0x3d,0x0,0x4c,0x0,0x51,0x0,0x3d,0x0,0x61,0x0, +0x92,0x0,0x9e,0x0,0x97,0x0,0x80,0x0,0x76,0x0,0x75,0x0, +0x74,0x0,0x89,0x0,0x8f,0x0,0x7e,0x0,0x80,0x0,0x83,0x0, +0x6f,0x0,0x52,0x0,0x3a,0x0,0x34,0x0,0x3d,0x0,0x4b,0x0, +0x57,0x0,0x5c,0x0,0x5e,0x0,0x46,0x0,0x3d,0x0,0x55,0x0, +0x44,0x0,0x36,0x0,0x36,0x0,0x14,0x0,0x14,0x0,0x3b,0x0, +0x53,0x0,0x5a,0x0,0x65,0x0,0x62,0x0,0x3f,0x0,0x4c,0x0, +0x58,0x0,0x17,0x0,0x10,0x0,0x31,0x0,0x21,0x0,0x2e,0x0, +0x3d,0x0,0x35,0x0,0x40,0x0,0x31,0x0,0x18,0x0,0x29,0x0, +0x32,0x0,0x19,0x0,0xf9,0xff,0xfa,0xff,0x1d,0x0,0x19,0x0, +0xf7,0xff,0xf9,0xff,0x6,0x0,0x9,0x0,0x0,0x0,0xe9,0xff, +0xdb,0xff,0xce,0xff,0xda,0xff,0xf2,0xff,0x1,0x0,0xfd,0xff, +0xc4,0xff,0xbe,0xff,0xf0,0xff,0xdc,0xff,0xcf,0xff,0xea,0xff, +0xf9,0xff,0xea,0xff,0xd3,0xff,0xe8,0xff,0xf4,0xff,0x9,0x0, +0x3c,0x0,0x34,0x0,0x17,0x0,0x1e,0x0,0x4d,0x0,0x68,0x0, +0x5b,0x0,0x65,0x0,0x5b,0x0,0x48,0x0,0x56,0x0,0x5b,0x0, +0x53,0x0,0x47,0x0,0x3d,0x0,0x1a,0x0,0x3,0x0,0x2b,0x0, +0x44,0x0,0x42,0x0,0x42,0x0,0x54,0x0,0x74,0x0,0x69,0x0, +0x3f,0x0,0x25,0x0,0x2c,0x0,0x41,0x0,0x3e,0x0,0x27,0x0, +0x11,0x0,0x1c,0x0,0x2c,0x0,0x33,0x0,0x4d,0x0,0x58,0x0, +0x45,0x0,0x2e,0x0,0x43,0x0,0x59,0x0,0x30,0x0,0x16,0x0, +0x8,0x0,0xf2,0xff,0xef,0xff,0xf3,0xff,0x6,0x0,0x18,0x0, +0x2b,0x0,0x26,0x0,0x7,0x0,0xfd,0xff,0xf3,0xff,0xf7,0xff, +0xf8,0xff,0xe6,0xff,0xe9,0xff,0x4,0x0,0x1e,0x0,0xd8,0xff, +0x92,0xff,0xcc,0xff,0xfb,0xff,0xf8,0xff,0xe1,0xff,0xc4,0xff, +0xd6,0xff,0xd4,0xff,0xae,0xff,0xa8,0xff,0xaf,0xff,0xa7,0xff, +0xa5,0xff,0xb4,0xff,0xc5,0xff,0xc7,0xff,0x9c,0xff,0x7d,0xff, +0xa5,0xff,0xca,0xff,0xd4,0xff,0xea,0xff,0xed,0xff,0xcf,0xff, +0xc7,0xff,0xd4,0xff,0xcf,0xff,0xbd,0xff,0xbd,0xff,0xe1,0xff, +0x4,0x0,0x1,0x0,0xee,0xff,0xf5,0xff,0x11,0x0,0x2f,0x0, +0x4e,0x0,0x39,0x0,0x23,0x0,0x3b,0x0,0x36,0x0,0x27,0x0, +0x24,0x0,0x49,0x0,0x6f,0x0,0x5b,0x0,0x79,0x0,0x83,0x0, +0x5f,0x0,0x68,0x0,0x4c,0x0,0x45,0x0,0x65,0x0,0x76,0x0, +0x8b,0x0,0x73,0x0,0x71,0x0,0x81,0x0,0x68,0x0,0x5c,0x0, +0x4f,0x0,0x47,0x0,0x3d,0x0,0x35,0x0,0x48,0x0,0x50,0x0, +0x6f,0x0,0x84,0x0,0x60,0x0,0x4e,0x0,0x61,0x0,0x67,0x0, +0x5b,0x0,0x61,0x0,0x61,0x0,0x60,0x0,0x6d,0x0,0x55,0x0, +0x61,0x0,0x90,0x0,0x72,0x0,0x40,0x0,0x3a,0x0,0x45,0x0, +0x59,0x0,0x5b,0x0,0x48,0x0,0x6c,0x0,0x96,0x0,0x80,0x0, +0x6e,0x0,0x56,0x0,0x3f,0x0,0x58,0x0,0x61,0x0,0x58,0x0, +0x5e,0x0,0x64,0x0,0x43,0x0,0x15,0x0,0x2c,0x0,0x63,0x0, +0x79,0x0,0x6a,0x0,0x5b,0x0,0x61,0x0,0x5f,0x0,0x6d,0x0, +0x8a,0x0,0x8c,0x0,0x82,0x0,0x74,0x0,0x6e,0x0,0x88,0x0, +0x99,0x0,0x7b,0x0,0x6d,0x0,0x7e,0x0,0x78,0x0,0x7d,0x0, +0x95,0x0,0x95,0x0,0x80,0x0,0x6b,0x0,0x70,0x0,0x82,0x0, +0x7f,0x0,0x77,0x0,0x77,0x0,0x7c,0x0,0x99,0x0,0x9f,0x0, +0x72,0x0,0x68,0x0,0x82,0x0,0x7c,0x0,0x7a,0x0,0x93,0x0, +0x88,0x0,0x76,0x0,0x9b,0x0,0xa9,0x0,0xa0,0x0,0xc3,0x0, +0xd9,0x0,0xdc,0x0,0xe5,0x0,0xd9,0x0,0xd8,0x0,0x4,0x1, +0x2a,0x1,0x19,0x1,0xf3,0x0,0xe2,0x0,0xe2,0x0,0xce,0x0, +0xc7,0x0,0xf3,0x0,0xf4,0x0,0xe6,0x0,0xd,0x1,0x3,0x1, +0xcc,0x0,0xb5,0x0,0xaf,0x0,0xc7,0x0,0xee,0x0,0xe2,0x0, +0xdb,0x0,0x15,0x1,0x33,0x1,0x14,0x1,0xec,0x0,0xdc,0x0, +0xf9,0x0,0x1c,0x1,0x28,0x1,0x23,0x1,0x11,0x1,0xb,0x1, +0xa,0x1,0x2,0x1,0xd,0x1,0x26,0x1,0x2f,0x1,0x1f,0x1, +0x14,0x1,0xfe,0x0,0xe1,0x0,0xef,0x0,0xfe,0x0,0x4,0x1, +0xfd,0x0,0xe9,0x0,0xe9,0x0,0xd2,0x0,0xd8,0x0,0xf0,0x0, +0xd9,0x0,0xeb,0x0,0xfc,0x0,0xe0,0x0,0xdd,0x0,0xd2,0x0, +0xc3,0x0,0xcf,0x0,0xf2,0x0,0xf5,0x0,0xc9,0x0,0xd2,0x0, +0xd5,0x0,0x97,0x0,0x92,0x0,0xb2,0x0,0xb0,0x0,0xb5,0x0, +0xb1,0x0,0xbe,0x0,0xf0,0x0,0xf9,0x0,0xe3,0x0,0xd9,0x0, +0xc7,0x0,0xb7,0x0,0xd7,0x0,0xea,0x0,0xd3,0x0,0xfe,0x0, +0x18,0x1,0xe9,0x0,0xe7,0x0,0xc,0x1,0x22,0x1,0x8,0x1, +0xe8,0x0,0xcd,0x0,0xbe,0x0,0xe8,0x0,0xea,0x0,0xe7,0x0, +0xc,0x1,0x2,0x1,0xee,0x0,0xe2,0x0,0xeb,0x0,0x0,0x1, +0x8,0x1,0x5,0x1,0xe5,0x0,0xdc,0x0,0xd9,0x0,0xf8,0x0, +0x46,0x1,0x4a,0x1,0x36,0x1,0x32,0x1,0x1e,0x1,0x1e,0x1, +0x24,0x1,0x37,0x1,0x60,0x1,0x82,0x1,0x79,0x1,0x70,0x1, +0x7c,0x1,0x61,0x1,0x50,0x1,0x6a,0x1,0x6c,0x1,0x43,0x1, +0x2f,0x1,0x4d,0x1,0x45,0x1,0x30,0x1,0x48,0x1,0x4f,0x1, +0x4b,0x1,0x3b,0x1,0x28,0x1,0x41,0x1,0x54,0x1,0x35,0x1, +0xc,0x1,0xa,0x1,0x19,0x1,0x17,0x1,0x10,0x1,0x13,0x1, +0x18,0x1,0x2,0x1,0xa,0x1,0x33,0x1,0x24,0x1,0xfc,0x0, +0xea,0x0,0x4,0x1,0x1e,0x1,0x16,0x1,0x2f,0x1,0x31,0x1, +0x12,0x1,0x16,0x1,0x24,0x1,0x32,0x1,0x1f,0x1,0x7,0x1, +0xfc,0x0,0xeb,0x0,0xef,0x0,0xf4,0x0,0x1,0x1,0xe,0x1, +0xd,0x1,0xb,0x1,0xfa,0x0,0xf0,0x0,0xe3,0x0,0xcb,0x0, +0xd3,0x0,0xb,0x1,0x33,0x1,0x23,0x1,0x12,0x1,0xf,0x1, +0xc,0x1,0xfe,0x0,0xe,0x1,0x3e,0x1,0x2d,0x1,0x12,0x1, +0x1e,0x1,0x21,0x1,0x1f,0x1,0x29,0x1,0x3d,0x1,0x45,0x1, +0x5b,0x1,0x68,0x1,0x57,0x1,0x52,0x1,0x54,0x1,0x41,0x1, +0xb,0x1,0xa,0x1,0x26,0x1,0x17,0x1,0x26,0x1,0x17,0x1, +0xfd,0x0,0x16,0x1,0x13,0x1,0x18,0x1,0xe,0x1,0xef,0x0, +0xfd,0x0,0x10,0x1,0x1a,0x1,0xfe,0x0,0xdc,0x0,0xed,0x0, +0xf4,0x0,0xf1,0x0,0xd,0x1,0xf,0x1,0xfb,0x0,0x1d,0x1, +0x3a,0x1,0x2a,0x1,0x2f,0x1,0x23,0x1,0x16,0x1,0x29,0x1, +0x21,0x1,0x2d,0x1,0x52,0x1,0x49,0x1,0x1c,0x1,0xff,0x0, +0x11,0x1,0x12,0x1,0x2,0x1,0x28,0x1,0x35,0x1,0x21,0x1, +0x28,0x1,0x39,0x1,0x41,0x1,0x30,0x1,0x1e,0x1,0x21,0x1, +0x1f,0x1,0x2c,0x1,0x5f,0x1,0x76,0x1,0x5c,0x1,0x39,0x1, +0x1,0x1,0xfd,0x0,0x38,0x1,0x49,0x1,0x42,0x1,0x40,0x1, +0x2c,0x1,0xc,0x1,0xfc,0x0,0x2,0x1,0x13,0x1,0x2f,0x1, +0x1a,0x1,0xf9,0x0,0xe5,0x0,0xac,0x0,0x98,0x0,0xb4,0x0, +0xb0,0x0,0x9a,0x0,0xae,0x0,0xcc,0x0,0xc9,0x0,0xb9,0x0, +0x96,0x0,0x91,0x0,0x9a,0x0,0x70,0x0,0x63,0x0,0x71,0x0, +0x70,0x0,0x81,0x0,0x7f,0x0,0x6b,0x0,0x88,0x0,0x95,0x0, +0x6a,0x0,0x4d,0x0,0x38,0x0,0x54,0x0,0x8d,0x0,0x7c,0x0, +0x6b,0x0,0x6e,0x0,0x64,0x0,0x73,0x0,0x7e,0x0,0x6a,0x0, +0x72,0x0,0x7a,0x0,0x62,0x0,0x97,0x0,0xcc,0x0,0xb0,0x0, +0xa5,0x0,0x91,0x0,0x99,0x0,0xb7,0x0,0xb0,0x0,0xd8,0x0, +0x0,0x1,0xf5,0x0,0xc9,0x0,0xb6,0x0,0xff,0x0,0x1b,0x1, +0xec,0x0,0xe3,0x0,0xf5,0x0,0x20,0x1,0x40,0x1,0x38,0x1, +0x4a,0x1,0x6c,0x1,0x60,0x1,0x40,0x1,0x33,0x1,0x29,0x1, +0x24,0x1,0x2c,0x1,0x26,0x1,0x22,0x1,0x1e,0x1,0xc,0x1, +0x18,0x1,0x33,0x1,0x26,0x1,0xfa,0x0,0xec,0x0,0xe9,0x0, +0xda,0x0,0xf7,0x0,0xf0,0x0,0xbf,0x0,0xd8,0x0,0xea,0x0, +0xb0,0x0,0x89,0x0,0x9d,0x0,0xb7,0x0,0xae,0x0,0x7a,0x0, +0x51,0x0,0x58,0x0,0x3d,0x0,0x4,0x0,0xee,0xff,0x5,0x0, +0x26,0x0,0x1a,0x0,0xf,0x0,0xfe,0xff,0xde,0xff,0xca,0xff, +0xb9,0xff,0xd0,0xff,0xc5,0xff,0x9b,0xff,0xc5,0xff,0x2,0x0, +0xff,0xff,0xc1,0xff,0xa1,0xff,0xb0,0xff,0xcb,0xff,0xe7,0xff, +0xc8,0xff,0x88,0xff,0x68,0xff,0x84,0xff,0xac,0xff,0xb8,0xff, +0xe0,0xff,0xd2,0xff,0x97,0xff,0xb3,0xff,0xd6,0xff,0xc0,0xff, +0xb0,0xff,0xae,0xff,0xa9,0xff,0xaa,0xff,0xc3,0xff,0xf4,0xff, +0xe2,0xff,0xb7,0xff,0xd8,0xff,0xda,0xff,0xd0,0xff,0xf4,0xff, +0xf0,0xff,0xe4,0xff,0x8,0x0,0x4a,0x0,0x5d,0x0,0x4a,0x0, +0x5c,0x0,0x5c,0x0,0x42,0x0,0x3e,0x0,0x54,0x0,0x60,0x0, +0x58,0x0,0x6c,0x0,0x77,0x0,0x73,0x0,0x73,0x0,0x5b,0x0, +0x68,0x0,0x82,0x0,0x83,0x0,0x7c,0x0,0x4c,0x0,0x3b,0x0, +0x34,0x0,0x1a,0x0,0x31,0x0,0x1f,0x0,0xfd,0xff,0xa,0x0, +0x25,0x0,0x3a,0x0,0x0,0x0,0xf6,0xff,0x28,0x0,0x1,0x0, +0xe6,0xff,0xe8,0xff,0xf0,0xff,0xed,0xff,0xc5,0xff,0xd2,0xff, +0xd1,0xff,0x9e,0xff,0x90,0xff,0x94,0xff,0x89,0xff,0x71,0xff, +0x55,0xff,0x41,0xff,0x42,0xff,0x32,0xff,0x13,0xff,0x14,0xff, +0x23,0xff,0x29,0xff,0x1d,0xff,0x1a,0xff,0x21,0xff,0x1e,0xff, +0x22,0xff,0x22,0xff,0x23,0xff,0x2a,0xff,0x28,0xff,0x15,0xff, +0x24,0xff,0x65,0xff,0x62,0xff,0x46,0xff,0x46,0xff,0x35,0xff, +0x30,0xff,0x2d,0xff,0x2c,0xff,0x2b,0xff,0x2b,0xff,0x50,0xff, +0x59,0xff,0x36,0xff,0x25,0xff,0x27,0xff,0x3e,0xff,0x52,0xff, +0x65,0xff,0x5d,0xff,0xb,0xff,0xf7,0xfe,0x36,0xff,0x41,0xff, +0x4a,0xff,0x63,0xff,0x5f,0xff,0x59,0xff,0x5e,0xff,0x77,0xff, +0x82,0xff,0x79,0xff,0x67,0xff,0x64,0xff,0x7c,0xff,0x7b,0xff, +0x96,0xff,0xb5,0xff,0x9d,0xff,0x99,0xff,0x9e,0xff,0x9b,0xff, +0xa2,0xff,0x8d,0xff,0x7c,0xff,0x8f,0xff,0x91,0xff,0x9f,0xff, +0xcb,0xff,0xbb,0xff,0x83,0xff,0x5e,0xff,0x62,0xff,0x8c,0xff, +0x88,0xff,0x6b,0xff,0x5c,0xff,0x60,0xff,0x86,0xff,0x7d,0xff, +0x46,0xff,0x45,0xff,0x68,0xff,0x57,0xff,0x3b,0xff,0x4c,0xff, +0x48,0xff,0x29,0xff,0x3b,0xff,0x70,0xff,0x75,0xff,0x4c,0xff, +0x41,0xff,0x2b,0xff,0xfd,0xfe,0xf6,0xfe,0xd,0xff,0x1a,0xff, +0x24,0xff,0x13,0xff,0xf6,0xfe,0x13,0xff,0x3e,0xff,0x40,0xff, +0x27,0xff,0x16,0xff,0x34,0xff,0x3f,0xff,0x13,0xff,0xfe,0xfe, +0x1a,0xff,0x2f,0xff,0x22,0xff,0x2,0xff,0xc7,0xfe,0xae,0xfe, +0xdf,0xfe,0xf2,0xfe,0xe7,0xfe,0xf0,0xfe,0xd1,0xfe,0xc0,0xfe, +0xd5,0xfe,0xbf,0xfe,0xa7,0xfe,0xa1,0xfe,0xa0,0xfe,0xa7,0xfe, +0x91,0xfe,0x93,0xfe,0xb6,0xfe,0xbd,0xfe,0xa2,0xfe,0x79,0xfe, +0x6e,0xfe,0x61,0xfe,0x69,0xfe,0x88,0xfe,0x75,0xfe,0x7e,0xfe, +0x96,0xfe,0x7a,0xfe,0x74,0xfe,0x99,0xfe,0xb0,0xfe,0xa5,0xfe, +0x8e,0xfe,0x77,0xfe,0x7f,0xfe,0x88,0xfe,0x80,0xfe,0xaa,0xfe, +0xbb,0xfe,0x8b,0xfe,0x80,0xfe,0x96,0xfe,0xa6,0xfe,0xc7,0xfe, +0xc6,0xfe,0xab,0xfe,0xc3,0xfe,0xc3,0xfe,0xba,0xfe,0xdf,0xfe, +0xe8,0xfe,0xe0,0xfe,0xc7,0xfe,0xbd,0xfe,0xd5,0xfe,0xca,0xfe, +0xcd,0xfe,0xe9,0xfe,0xfb,0xfe,0xff,0xfe,0xe8,0xfe,0xe2,0xfe, +0x2,0xff,0xf3,0xfe,0xb4,0xfe,0xb1,0xfe,0xcb,0xfe,0xc5,0xfe, +0xca,0xfe,0xd4,0xfe,0xdd,0xfe,0xfa,0xfe,0xe0,0xfe,0x99,0xfe, +0x91,0xfe,0x97,0xfe,0x8a,0xfe,0x92,0xfe,0x82,0xfe,0x7e,0xfe, +0xac,0xfe,0xd6,0xfe,0xef,0xfe,0xfd,0xfe,0xff,0xfe,0xf9,0xfe, +0xf3,0xfe,0xc7,0xfe,0x9b,0xfe,0xb6,0xfe,0xbf,0xfe,0xa9,0xfe, +0x9a,0xfe,0x99,0xfe,0xc7,0xfe,0xea,0xfe,0xda,0xfe,0xbf,0xfe, +0xc4,0xfe,0xd3,0xfe,0xba,0xfe,0x94,0xfe,0x73,0xfe,0x65,0xfe, +0x7d,0xfe,0x7c,0xfe,0x4a,0xfe,0x3c,0xfe,0x6c,0xfe,0x86,0xfe, +0x72,0xfe,0x6a,0xfe,0x76,0xfe,0x71,0xfe,0x68,0xfe,0x80,0xfe, +0xa8,0xfe,0xb3,0xfe,0xa4,0xfe,0x94,0xfe,0x7f,0xfe,0x82,0xfe, +0xa4,0xfe,0xa1,0xfe,0x81,0xfe,0x7b,0xfe,0x91,0xfe,0x9e,0xfe, +0xa3,0xfe,0xac,0xfe,0xa0,0xfe,0xa4,0xfe,0xbf,0xfe,0xd7,0xfe, +0xd3,0xfe,0x9c,0xfe,0x93,0xfe,0xc6,0xfe,0xc0,0xfe,0x98,0xfe, +0x9d,0xfe,0xa8,0xfe,0x96,0xfe,0x88,0xfe,0xa1,0xfe,0xda,0xfe, +0xf4,0xfe,0xf3,0xfe,0xd5,0xfe,0xa5,0xfe,0xad,0xfe,0xc3,0xfe, +0xde,0xfe,0xe4,0xfe,0xc3,0xfe,0xd1,0xfe,0xd7,0xfe,0xd9,0xfe, +0xeb,0xfe,0xe4,0xfe,0xf9,0xfe,0x13,0xff,0x14,0xff,0xfc,0xfe, +0x0,0xff,0x2c,0xff,0x21,0xff,0x10,0xff,0x24,0xff,0x49,0xff, +0x74,0xff,0x7e,0xff,0x74,0xff,0x55,0xff,0x2c,0xff,0x29,0xff, +0x2b,0xff,0x12,0xff,0xb,0xff,0x36,0xff,0x51,0xff,0x5a,0xff, +0x75,0xff,0x66,0xff,0x3d,0xff,0x5a,0xff,0x80,0xff,0x5a,0xff, +0x3a,0xff,0x3f,0xff,0x41,0xff,0x3e,0xff,0x45,0xff,0x51,0xff, +0x3a,0xff,0x31,0xff,0x51,0xff,0x51,0xff,0x3c,0xff,0x30,0xff, +0x33,0xff,0x45,0xff,0x54,0xff,0x82,0xff,0x9a,0xff,0x67,0xff, +0x5d,0xff,0x79,0xff,0x67,0xff,0x45,0xff,0x34,0xff,0x4b,0xff, +0x4e,0xff,0x43,0xff,0x5f,0xff,0x5e,0xff,0x62,0xff,0x85,0xff, +0x7c,0xff,0x5f,0xff,0x62,0xff,0x83,0xff,0x91,0xff,0x95,0xff, +0x6c,0xff,0x36,0xff,0x4f,0xff,0x54,0xff,0x4d,0xff,0x68,0xff, +0x54,0xff,0x55,0xff,0x71,0xff,0x5a,0xff,0x5e,0xff,0x76,0xff, +0x5e,0xff,0x72,0xff,0x92,0xff,0x6a,0xff,0x60,0xff,0x65,0xff, +0x58,0xff,0x65,0xff,0x6b,0xff,0x6e,0xff,0x85,0xff,0x8d,0xff, +0x82,0xff,0x94,0xff,0xa3,0xff,0x95,0xff,0x9d,0xff,0xb2,0xff, +0xc1,0xff,0xcf,0xff,0xd8,0xff,0xdc,0xff,0xbf,0xff,0xa0,0xff, +0xb9,0xff,0xe4,0xff,0xe2,0xff,0xe2,0xff,0x6,0x0,0x18,0x0, +0x26,0x0,0x2b,0x0,0x24,0x0,0x29,0x0,0x1b,0x0,0xd,0x0, +0x1e,0x0,0x19,0x0,0xc,0x0,0x31,0x0,0x3d,0x0,0x20,0x0, +0x34,0x0,0x3c,0x0,0x26,0x0,0x33,0x0,0x2e,0x0,0xe7,0xff, +0xb0,0xff,0xd3,0xff,0xc,0x0,0x1d,0x0,0xe,0x0,0xe6,0xff, +0xd1,0xff,0xeb,0xff,0x11,0x0,0x25,0x0,0x2f,0x0,0x25,0x0, +0x8,0x0,0xd3,0xff,0xb4,0xff,0xcf,0xff,0xe1,0xff,0x18,0x0, +0x42,0x0,0xfe,0xff,0xde,0xff,0xe8,0xff,0xec,0xff,0x8,0x0, +0xe,0x0,0x6,0x0,0xf6,0xff,0xdc,0xff,0xd3,0xff,0xdd,0xff, +0xf8,0xff,0x11,0x0,0x2,0x0,0xdb,0xff,0xd7,0xff,0xee,0xff, +0xee,0xff,0xc8,0xff,0x9a,0xff,0x90,0xff,0x85,0xff,0x7f,0xff, +0xa6,0xff,0xbf,0xff,0xbc,0xff,0xca,0xff,0xd6,0xff,0xd6,0xff, +0xf3,0xff,0x10,0x0,0x9,0x0,0xfe,0xff,0xec,0xff,0xdf,0xff, +0xf8,0xff,0x1a,0x0,0x22,0x0,0x23,0x0,0x32,0x0,0x2f,0x0, +0x15,0x0,0x1d,0x0,0x36,0x0,0x31,0x0,0x24,0x0,0x26,0x0, +0x40,0x0,0x38,0x0,0xf,0x0,0x1e,0x0,0x20,0x0,0x1d,0x0, +0x35,0x0,0x31,0x0,0x42,0x0,0x54,0x0,0x6c,0x0,0x8d,0x0, +0x90,0x0,0x9e,0x0,0x7c,0x0,0x52,0x0,0x69,0x0,0x88,0x0, +0x9d,0x0,0x94,0x0,0x74,0x0,0x71,0x0,0x9d,0x0,0xa4,0x0, +0x7b,0x0,0x8e,0x0,0xbe,0x0,0xcc,0x0,0xc0,0x0,0xab,0x0, +0xa1,0x0,0xa5,0x0,0xcb,0x0,0xf3,0x0,0xfe,0x0,0xea,0x0, +0xc2,0x0,0xc6,0x0,0xe0,0x0,0xd1,0x0,0xb6,0x0,0xaa,0x0, +0xb9,0x0,0xe7,0x0,0xcf,0x0,0x79,0x0,0x99,0x0,0xed,0x0, +0xe0,0x0,0xab,0x0,0x83,0x0,0x93,0x0,0xc4,0x0,0xab,0x0, +0x7d,0x0,0x7c,0x0,0x7e,0x0,0x91,0x0,0xa2,0x0,0xa1,0x0, +0xb9,0x0,0xb0,0x0,0x8b,0x0,0x8a,0x0,0x9b,0x0,0x99,0x0, +0x78,0x0,0x89,0x0,0x99,0x0,0x6b,0x0,0x5e,0x0,0x5c,0x0, +0x6e,0x0,0x9a,0x0,0x7c,0x0,0x43,0x0,0x3c,0x0,0x4e,0x0, +0x4f,0x0,0x45,0x0,0x48,0x0,0x4d,0x0,0x4d,0x0,0x4e,0x0, +0x4f,0x0,0x4b,0x0,0x51,0x0,0x4f,0x0,0x51,0x0,0x8e,0x0, +0xbd,0x0,0xa1,0x0,0x9a,0x0,0xbc,0x0,0xa9,0x0,0x7e,0x0, +0x9d,0x0,0xcd,0x0,0xb2,0x0,0xa5,0x0,0xc3,0x0,0xa7,0x0, +0x9d,0x0,0xd5,0x0,0xf7,0x0,0x1,0x1,0xe9,0x0,0xcb,0x0, +0xca,0x0,0xbd,0x0,0xb9,0x0,0xdd,0x0,0xf7,0x0,0x3,0x1, +0x19,0x1,0xe,0x1,0xf9,0x0,0xf7,0x0,0xe1,0x0,0xdc,0x0, +0xe0,0x0,0xcb,0x0,0xce,0x0,0xf2,0x0,0xf6,0x0,0xd5,0x0, +0xec,0x0,0x8,0x1,0xff,0x0,0xfb,0x0,0xce,0x0,0xb9,0x0, +0xcf,0x0,0xd3,0x0,0xe8,0x0,0xf4,0x0,0xdb,0x0,0xc3,0x0, +0xb3,0x0,0xa9,0x0,0xb2,0x0,0xc0,0x0,0xbf,0x0,0xae,0x0, +0xa2,0x0,0xab,0x0,0x9b,0x0,0x7e,0x0,0x72,0x0,0x5c,0x0, +0x50,0x0,0x50,0x0,0x48,0x0,0x2f,0x0,0x37,0x0,0x53,0x0, +0x27,0x0,0xe,0x0,0x1d,0x0,0x25,0x0,0x3d,0x0,0x35,0x0, +0x24,0x0,0x33,0x0,0x4d,0x0,0x55,0x0,0x50,0x0,0x46,0x0, +0x1c,0x0,0x1f,0x0,0x3c,0x0,0x23,0x0,0xf3,0xff,0xdf,0xff, +0x28,0x0,0x63,0x0,0x48,0x0,0x4c,0x0,0x5f,0x0,0x49,0x0, +0x26,0x0,0x23,0x0,0x27,0x0,0xd,0x0,0x8,0x0,0x5,0x0, +0x1,0x0,0x1a,0x0,0x17,0x0,0x6,0x0,0xf9,0xff,0xea,0xff, +0xf5,0xff,0x0,0x0,0x13,0x0,0x3c,0x0,0x33,0x0,0x5,0x0, +0x15,0x0,0x2c,0x0,0x1e,0x0,0x37,0x0,0x29,0x0,0x16,0x0, +0x5c,0x0,0x89,0x0,0xa6,0x0,0xa9,0x0,0x6e,0x0,0x52,0x0, +0x54,0x0,0x59,0x0,0x62,0x0,0x7a,0x0,0x6b,0x0,0x41,0x0, +0x6c,0x0,0x8d,0x0,0x66,0x0,0x50,0x0,0x77,0x0,0x90,0x0, +0x5e,0x0,0x5c,0x0,0x76,0x0,0x6b,0x0,0x64,0x0,0x50,0x0, +0x50,0x0,0x4c,0x0,0x46,0x0,0x5c,0x0,0x57,0x0,0x55,0x0, +0x62,0x0,0x79,0x0,0x6a,0x0,0x43,0x0,0x5b,0x0,0x7a,0x0, +0x6d,0x0,0x3d,0x0,0x23,0x0,0x31,0x0,0x21,0x0,0x11,0x0, +0x19,0x0,0x15,0x0,0xfd,0xff,0xe7,0xff,0xff,0xff,0x19,0x0, +0x4,0x0,0xee,0xff,0xdb,0xff,0xc6,0xff,0xd7,0xff,0xec,0xff, +0xfe,0xff,0x13,0x0,0xe9,0xff,0xb7,0xff,0xd0,0xff,0xf3,0xff, +0xef,0xff,0xda,0xff,0xd0,0xff,0xcc,0xff,0xcf,0xff,0xdb,0xff, +0xf7,0xff,0xe,0x0,0xf9,0xff,0xe0,0xff,0xd5,0xff,0xe9,0xff, +0x1e,0x0,0x12,0x0,0xd6,0xff,0xbd,0xff,0xd3,0xff,0xe2,0xff, +0xd0,0xff,0xdf,0xff,0xe2,0xff,0xc0,0xff,0xe2,0xff,0xc,0x0, +0xee,0xff,0xc8,0xff,0xb1,0xff,0xb0,0xff,0xcb,0xff,0xd9,0xff, +0xdb,0xff,0xd1,0xff,0xaf,0xff,0xc1,0xff,0xed,0xff,0xcc,0xff, +0xbb,0xff,0xd4,0xff,0xc3,0xff,0xac,0xff,0xb5,0xff,0xc9,0xff, +0xbc,0xff,0xb4,0xff,0xbf,0xff,0xa9,0xff,0xc8,0xff,0xf1,0xff, +0xd9,0xff,0xc1,0xff,0xa5,0xff,0xad,0xff,0xc2,0xff,0xd1,0xff, +0xef,0xff,0xe3,0xff,0xdd,0xff,0xdc,0xff,0xdd,0xff,0xd3,0xff, +0xb0,0xff,0xe2,0xff,0x2,0x0,0xcb,0xff,0xb7,0xff,0xc4,0xff, +0xe3,0xff,0xf4,0xff,0xe0,0xff,0xcd,0xff,0xd4,0xff,0xdb,0xff, +0xc1,0xff,0xbb,0xff,0xc0,0xff,0xbc,0xff,0xd9,0xff,0xe5,0xff, +0xc8,0xff,0xc5,0xff,0xde,0xff,0xe9,0xff,0xe5,0xff,0xd7,0xff, +0xcd,0xff,0xbc,0xff,0xb4,0xff,0xd1,0xff,0xd7,0xff,0xbe,0xff, +0xb3,0xff,0xbb,0xff,0xc0,0xff,0xb7,0xff,0xcc,0xff,0xde,0xff, +0xc8,0xff,0xbc,0xff,0xb1,0xff,0x9e,0xff,0x94,0xff,0x8e,0xff, +0x86,0xff,0x89,0xff,0x92,0xff,0x8d,0xff,0x7a,0xff,0x62,0xff, +0x66,0xff,0x54,0xff,0x20,0xff,0x37,0xff,0x5f,0xff,0x57,0xff, +0x44,0xff,0x1e,0xff,0x13,0xff,0x3d,0xff,0x62,0xff,0x4f,0xff, +0x47,0xff,0x65,0xff,0x46,0xff,0x23,0xff,0x27,0xff,0x1a,0xff, +0x2e,0xff,0x48,0xff,0x3f,0xff,0x3e,0xff,0x37,0xff,0x1e,0xff, +0x1c,0xff,0x2a,0xff,0x1c,0xff,0x1a,0xff,0x26,0xff,0x1b,0xff, +0xe,0xff,0xf5,0xfe,0x8,0xff,0x18,0xff,0xf6,0xfe,0x20,0xff, +0x37,0xff,0x34,0xff,0x64,0xff,0x4a,0xff,0x40,0xff,0x58,0xff, +0x43,0xff,0x4a,0xff,0x5a,0xff,0x67,0xff,0x81,0xff,0x92,0xff, +0x8d,0xff,0x82,0xff,0x7b,0xff,0x75,0xff,0x86,0xff,0x9e,0xff, +0xab,0xff,0x8d,0xff,0x60,0xff,0x6d,0xff,0x73,0xff,0x85,0xff, +0x9f,0xff,0x85,0xff,0x80,0xff,0x96,0xff,0xa4,0xff,0x9b,0xff, +0x8d,0xff,0xa1,0xff,0xa9,0xff,0xb8,0xff,0xca,0xff,0xb6,0xff, +0xaa,0xff,0xac,0xff,0xa1,0xff,0x95,0xff,0x98,0xff,0x93,0xff, +0x76,0xff,0x7a,0xff,0xac,0xff,0xac,0xff,0x74,0xff,0x71,0xff, +0x7a,0xff,0x79,0xff,0x8f,0xff,0x79,0xff,0x7d,0xff,0x8e,0xff, +0x76,0xff,0x9b,0xff,0x94,0xff,0x5f,0xff,0x92,0xff,0xaa,0xff, +0x87,0xff,0x82,0xff,0x5a,0xff,0x36,0xff,0x4b,0xff,0x59,0xff, +0x4c,0xff,0x40,0xff,0x50,0xff,0x52,0xff,0x38,0xff,0x4f,0xff, +0x68,0xff,0x50,0xff,0x46,0xff,0x50,0xff,0x66,0xff,0x72,0xff, +0x54,0xff,0x45,0xff,0x4a,0xff,0x44,0xff,0x43,0xff,0x55,0xff, +0x6f,0xff,0x70,0xff,0x62,0xff,0x52,0xff,0x53,0xff,0x59,0xff, +0x31,0xff,0xd,0xff,0x15,0xff,0x24,0xff,0xc,0xff,0xfd,0xfe, +0x27,0xff,0x21,0xff,0x1b,0xff,0x40,0xff,0x2a,0xff,0x3,0xff, +0x7,0xff,0x26,0xff,0x30,0xff,0x30,0xff,0x5f,0xff,0x74,0xff, +0x64,0xff,0x66,0xff,0x87,0xff,0xa8,0xff,0x9a,0xff,0x8f,0xff, +0xa1,0xff,0xca,0xff,0xca,0xff,0xa5,0xff,0xae,0xff,0x91,0xff, +0x76,0xff,0xa8,0xff,0xb3,0xff,0x9d,0xff,0xa4,0xff,0xac,0xff, +0x99,0xff,0xa8,0xff,0xc1,0xff,0xa8,0xff,0xba,0xff,0xb2,0xff, +0x6b,0xff,0x71,0xff,0x8c,0xff,0x7f,0xff,0x75,0xff,0x95,0xff, +0xaf,0xff,0x9b,0xff,0x98,0xff,0x89,0xff,0x8a,0xff,0xc0,0xff, +0xc2,0xff,0x98,0xff,0x8e,0xff,0xaf,0xff,0xa3,0xff,0x57,0xff, +0x4a,0xff,0x67,0xff,0x64,0xff,0x50,0xff,0x43,0xff,0x42,0xff, +0x43,0xff,0x68,0xff,0x8d,0xff,0x90,0xff,0xa4,0xff,0x96,0xff, +0x55,0xff,0x2f,0xff,0x2b,0xff,0x2d,0xff,0x47,0xff,0x73,0xff, +0x72,0xff,0x72,0xff,0xa2,0xff,0xa9,0xff,0x89,0xff,0x81,0xff, +0x70,0xff,0x5c,0xff,0x63,0xff,0x6d,0xff,0x7e,0xff,0x84,0xff, +0x68,0xff,0x68,0xff,0x6d,0xff,0x49,0xff,0x35,0xff,0x56,0xff, +0x6b,0xff,0x4e,0xff,0x4f,0xff,0x59,0xff,0x4a,0xff,0x4d,0xff, +0x4b,0xff,0x51,0xff,0x64,0xff,0x6f,0xff,0xa1,0xff,0xca,0xff, +0xb1,0xff,0x7c,0xff,0x65,0xff,0x6f,0xff,0x86,0xff,0xbf,0xff, +0xda,0xff,0xa5,0xff,0x79,0xff,0x7d,0xff,0x88,0xff,0x91,0xff, +0x96,0xff,0x89,0xff,0x7d,0xff,0x7d,0xff,0x95,0xff,0xae,0xff, +0xa9,0xff,0xaf,0xff,0x8a,0xff,0x5d,0xff,0xa4,0xff,0xde,0xff, +0xdb,0xff,0xe7,0xff,0xe0,0xff,0xcf,0xff,0xc0,0xff,0xd6,0xff, +0xfb,0xff,0xd1,0xff,0xac,0xff,0xcb,0xff,0xe7,0xff,0xe9,0xff, +0xeb,0xff,0xf2,0xff,0xea,0xff,0xcf,0xff,0xa8,0xff,0xb1,0xff, +0xe0,0xff,0xdb,0xff,0xe3,0xff,0xf5,0xff,0xc6,0xff,0xc1,0xff, +0xe2,0xff,0xcd,0xff,0xb5,0xff,0xc8,0xff,0xda,0xff,0xd6,0xff, +0xbd,0xff,0xab,0xff,0xc6,0xff,0xdb,0xff,0xc0,0xff,0xac,0xff, +0xad,0xff,0xc2,0xff,0xdc,0xff,0xc3,0xff,0xa6,0xff,0xb5,0xff, +0xc6,0xff,0xda,0xff,0xf1,0xff,0xff,0xff,0xe,0x0,0xff,0xff, +0xec,0xff,0x3,0x0,0xf,0x0,0xf,0x0,0xe4,0xff,0x9c,0xff, +0xbe,0xff,0xf1,0xff,0xec,0xff,0xf5,0xff,0xdd,0xff,0xc6,0xff, +0xce,0xff,0xcc,0xff,0xdc,0xff,0xcf,0xff,0xc2,0xff,0xef,0xff, +0xf8,0xff,0xe3,0xff,0xf1,0xff,0xf4,0xff,0xdc,0xff,0xd2,0xff, +0xce,0xff,0xd2,0xff,0x4,0x0,0x16,0x0,0xf7,0xff,0x4,0x0, +0xc,0x0,0xe8,0xff,0xe1,0xff,0xf7,0xff,0xf1,0xff,0xdc,0xff, +0xdc,0xff,0xe8,0xff,0xf3,0xff,0x3,0x0,0x25,0x0,0x49,0x0, +0x50,0x0,0x36,0x0,0x12,0x0,0x18,0x0,0x2f,0x0,0x3e,0x0, +0x5c,0x0,0x4c,0x0,0x42,0x0,0x6e,0x0,0x7b,0x0,0x81,0x0, +0x7b,0x0,0x70,0x0,0x8e,0x0,0x86,0x0,0x6b,0x0,0x85,0x0, +0xb8,0x0,0xd2,0x0,0xda,0x0,0xed,0x0,0xe5,0x0,0xcd,0x0, +0xd7,0x0,0xef,0x0,0xf3,0x0,0xda,0x0,0xda,0x0,0xe4,0x0, +0xd8,0x0,0xd4,0x0,0xb8,0x0,0xa5,0x0,0xb6,0x0,0xaa,0x0, +0x98,0x0,0xb2,0x0,0xdb,0x0,0xd3,0x0,0xae,0x0,0x99,0x0, +0x8c,0x0,0x8e,0x0,0x91,0x0,0x95,0x0,0xc8,0x0,0xea,0x0, +0xc6,0x0,0xbe,0x0,0xdf,0x0,0xc9,0x0,0xb3,0x0,0xc0,0x0, +0xb5,0x0,0xae,0x0,0xa4,0x0,0xa1,0x0,0xbc,0x0,0xb7,0x0, +0xb8,0x0,0xca,0x0,0xab,0x0,0xa1,0x0,0xba,0x0,0xa8,0x0, +0x98,0x0,0x9d,0x0,0xa4,0x0,0xb1,0x0,0x8a,0x0,0x67,0x0, +0x85,0x0,0x8d,0x0,0x86,0x0,0x8d,0x0,0x8b,0x0,0x95,0x0, +0xae,0x0,0xc8,0x0,0xae,0x0,0x7b,0x0,0x77,0x0,0x89,0x0, +0x88,0x0,0x74,0x0,0x78,0x0,0x8b,0x0,0xa1,0x0,0xca,0x0, +0xd6,0x0,0xd1,0x0,0xcc,0x0,0xc2,0x0,0xcc,0x0,0xd0,0x0, +0xc9,0x0,0xba,0x0,0xb0,0x0,0xbe,0x0,0xcd,0x0,0xe2,0x0, +0xf6,0x0,0x4,0x1,0x2,0x1,0xfc,0x0,0xa,0x1,0x3,0x1, +0xff,0x0,0x20,0x1,0x44,0x1,0x5a,0x1,0x51,0x1,0x31,0x1, +0x12,0x1,0x20,0x1,0x2b,0x1,0xfd,0x0,0xed,0x0,0xec,0x0, +0xda,0x0,0xe6,0x0,0x4,0x1,0x22,0x1,0x23,0x1,0x15,0x1, +0x1c,0x1,0x2b,0x1,0x34,0x1,0x37,0x1,0x52,0x1,0x54,0x1, +0x22,0x1,0xfe,0x0,0x5,0x1,0x2d,0x1,0x38,0x1,0x36,0x1, +0x5a,0x1,0x62,0x1,0x49,0x1,0x39,0x1,0x3c,0x1,0x3f,0x1, +0x3b,0x1,0x34,0x1,0xf,0x1,0xfd,0x0,0x12,0x1,0x12,0x1, +0xc,0x1,0xf9,0x0,0xd8,0x0,0xd4,0x0,0xdb,0x0,0xd0,0x0, +0xd9,0x0,0xf2,0x0,0xf5,0x0,0xf2,0x0,0xf5,0x0,0xb,0x1, +0x22,0x1,0x1f,0x1,0x24,0x1,0xd,0x1,0xfa,0x0,0x17,0x1, +0xd,0x1,0x2,0x1,0x19,0x1,0x1e,0x1,0x28,0x1,0x44,0x1, +0x5a,0x1,0x49,0x1,0x3c,0x1,0x4a,0x1,0x32,0x1,0x25,0x1, +0x38,0x1,0x2e,0x1,0x2a,0x1,0x38,0x1,0x4b,0x1,0x62,0x1, +0x48,0x1,0x2c,0x1,0x5d,0x1,0x87,0x1,0x87,0x1,0x8d,0x1, +0x7a,0x1,0x65,0x1,0x65,0x1,0x47,0x1,0x3b,0x1,0x66,0x1, +0x76,0x1,0x67,0x1,0x5e,0x1,0x61,0x1,0x86,0x1,0xab,0x1, +0xa5,0x1,0x83,0x1,0x6a,0x1,0x86,0x1,0x9a,0x1,0x79,0x1, +0x63,0x1,0x64,0x1,0x65,0x1,0x5a,0x1,0x66,0x1,0x88,0x1, +0x77,0x1,0x5d,0x1,0x43,0x1,0x33,0x1,0x4c,0x1,0x3b,0x1, +0x16,0x1,0x11,0x1,0xe,0x1,0x25,0x1,0x5a,0x1,0x7f,0x1, +0x88,0x1,0x87,0x1,0x8d,0x1,0x8c,0x1,0x76,0x1,0x7d,0x1, +0x9c,0x1,0x77,0x1,0x6d,0x1,0x97,0x1,0x85,0x1,0x9e,0x1, +0xc9,0x1,0xa5,0x1,0x8f,0x1,0x8c,0x1,0x8b,0x1,0x8b,0x1, +0x8b,0x1,0x97,0x1,0x86,0x1,0x78,0x1,0x75,0x1,0x53,0x1, +0x44,0x1,0x5a,0x1,0x5f,0x1,0x4c,0x1,0x2f,0x1,0xe,0x1, +0x22,0x1,0x47,0x1,0x39,0x1,0x37,0x1,0x41,0x1,0x3c,0x1, +0x37,0x1,0x1f,0x1,0x32,0x1,0x5b,0x1,0x60,0x1,0x65,0x1, +0x44,0x1,0x37,0x1,0x73,0x1,0x8d,0x1,0x78,0x1,0x57,0x1, +0x3d,0x1,0x49,0x1,0x4f,0x1,0x33,0x1,0x1d,0x1,0x30,0x1, +0x45,0x1,0x32,0x1,0x23,0x1,0xe,0x1,0x1,0x1,0x22,0x1, +0x29,0x1,0x29,0x1,0x22,0x1,0xee,0x0,0xf3,0x0,0x5,0x1, +0xef,0x0,0xe8,0x0,0xe2,0x0,0x3,0x1,0x25,0x1,0x4,0x1, +0xf1,0x0,0xef,0x0,0xe9,0x0,0xfb,0x0,0xf7,0x0,0xe4,0x0, +0x6,0x1,0x28,0x1,0x1d,0x1,0x17,0x1,0x13,0x1,0x1c,0x1, +0x15,0x1,0x1,0x1,0x26,0x1,0x41,0x1,0x3c,0x1,0x3e,0x1, +0x2f,0x1,0x30,0x1,0x30,0x1,0x2c,0x1,0x3e,0x1,0x4b,0x1, +0x4e,0x1,0x50,0x1,0x55,0x1,0x47,0x1,0x39,0x1,0x3f,0x1, +0x31,0x1,0x32,0x1,0x52,0x1,0x88,0x1,0xae,0x1,0x82,0x1, +0x50,0x1,0x42,0x1,0x42,0x1,0x45,0x1,0x34,0x1,0x3f,0x1, +0x47,0x1,0x38,0x1,0x49,0x1,0x45,0x1,0x29,0x1,0x10,0x1, +0xdb,0x0,0xc4,0x0,0xdb,0x0,0xda,0x0,0xd0,0x0,0xee,0x0, +0x17,0x1,0x18,0x1,0xfb,0x0,0xec,0x0,0xe8,0x0,0xdb,0x0, +0xee,0x0,0x1c,0x1,0x19,0x1,0xf7,0x0,0xf6,0x0,0x4,0x1, +0xb,0x1,0x1,0x1,0xe2,0x0,0xd2,0x0,0xdc,0x0,0xe9,0x0, +0xf2,0x0,0xeb,0x0,0xee,0x0,0xe7,0x0,0xb5,0x0,0xa6,0x0, +0xc1,0x0,0xc4,0x0,0xb1,0x0,0x9d,0x0,0x9a,0x0,0xa2,0x0, +0xb1,0x0,0xbf,0x0,0xb1,0x0,0x97,0x0,0x96,0x0,0xb6,0x0, +0xd0,0x0,0xc7,0x0,0xb1,0x0,0x96,0x0,0x76,0x0,0x78,0x0, +0xa4,0x0,0xc9,0x0,0xc8,0x0,0x98,0x0,0x6a,0x0,0x6d,0x0, +0x63,0x0,0x60,0x0,0x8d,0x0,0x9b,0x0,0x80,0x0,0x6c,0x0, +0x8b,0x0,0xa6,0x0,0x77,0x0,0x65,0x0,0x78,0x0,0x73,0x0, +0x87,0x0,0x95,0x0,0x78,0x0,0x69,0x0,0x7a,0x0,0x7d,0x0, +0x6d,0x0,0x64,0x0,0x64,0x0,0x78,0x0,0x7a,0x0,0x55,0x0, +0x50,0x0,0x66,0x0,0x5f,0x0,0x49,0x0,0x4e,0x0,0x5e,0x0, +0x61,0x0,0x60,0x0,0x53,0x0,0x3c,0x0,0x29,0x0,0x32,0x0, +0x59,0x0,0x56,0x0,0x34,0x0,0x3c,0x0,0x5c,0x0,0x5e,0x0, +0x53,0x0,0x70,0x0,0x85,0x0,0x78,0x0,0x74,0x0,0x5c,0x0, +0x51,0x0,0x63,0x0,0x68,0x0,0x6c,0x0,0x4f,0x0,0x46,0x0, +0x6f,0x0,0x6a,0x0,0x61,0x0,0x60,0x0,0x45,0x0,0x4c,0x0, +0x5a,0x0,0x56,0x0,0x40,0x0,0x12,0x0,0x14,0x0,0x34,0x0, +0x1d,0x0,0xfc,0xff,0x2,0x0,0x9,0x0,0x9,0x0,0x1d,0x0, +0x1e,0x0,0xd,0x0,0xf9,0xff,0xd7,0xff,0xd6,0xff,0xf0,0xff, +0x1,0x0,0xfe,0xff,0xca,0xff,0xad,0xff,0xcd,0xff,0xd6,0xff, +0xc5,0xff,0xc7,0xff,0xca,0xff,0xc5,0xff,0xbd,0xff,0xb3,0xff, +0xa9,0xff,0xa7,0xff,0xc9,0xff,0xf0,0xff,0xe3,0xff,0xce,0xff, +0xbd,0xff,0xc0,0xff,0xf3,0xff,0xfb,0xff,0xde,0xff,0xd5,0xff, +0xd6,0xff,0xe2,0xff,0xc8,0xff,0xb6,0xff,0xca,0xff,0xb5,0xff, +0xae,0xff,0xc6,0xff,0xc7,0xff,0xaf,0xff,0x9c,0xff,0xbb,0xff, +0xdb,0xff,0xc8,0xff,0xa4,0xff,0x90,0xff,0xab,0xff,0xd8,0xff, +0xd4,0xff,0xb9,0xff,0xb4,0xff,0xb1,0xff,0xaa,0xff,0xac,0xff, +0xc2,0xff,0xeb,0xff,0x3,0x0,0x7,0x0,0xfa,0xff,0xf3,0xff, +0x7,0x0,0xf9,0xff,0xe6,0xff,0x1,0x0,0x16,0x0,0x10,0x0, +0x8,0x0,0xd,0x0,0x2,0x0,0xec,0xff,0x3,0x0,0x11,0x0, +0xf1,0xff,0xcb,0xff,0xc1,0xff,0xd3,0xff,0xd3,0xff,0xc7,0xff, +0xc2,0xff,0x94,0xff,0x5e,0xff,0x69,0xff,0x88,0xff,0x81,0xff, +0x74,0xff,0x82,0xff,0x88,0xff,0x7a,0xff,0x7c,0xff,0x6a,0xff, +0x3c,0xff,0x56,0xff,0x89,0xff,0x80,0xff,0x6c,0xff,0x60,0xff, +0x62,0xff,0x57,0xff,0x45,0xff,0x63,0xff,0x70,0xff,0x47,0xff, +0x30,0xff,0x45,0xff,0x43,0xff,0x24,0xff,0x2d,0xff,0x2c,0xff, +0x28,0xff,0x47,0xff,0x43,0xff,0x26,0xff,0x1d,0xff,0x29,0xff, +0x20,0xff,0x1c,0xff,0x50,0xff,0x5d,0xff,0x45,0xff,0x3d,0xff, +0x42,0xff,0x66,0xff,0x68,0xff,0x61,0xff,0x79,0xff,0x76,0xff, +0x77,0xff,0x8d,0xff,0xa4,0xff,0xa0,0xff,0x83,0xff,0x76,0xff, +0x6d,0xff,0x65,0xff,0x4f,0xff,0x38,0xff,0x59,0xff,0x75,0xff, +0x64,0xff,0x5b,0xff,0x5e,0xff,0x61,0xff,0x7b,0xff,0x90,0xff, +0x86,0xff,0x73,0xff,0x63,0xff,0x7c,0xff,0x95,0xff,0x88,0xff, +0x83,0xff,0x78,0xff,0x83,0xff,0x8e,0xff,0x72,0xff,0x90,0xff, +0xb0,0xff,0x9b,0xff,0x8b,0xff,0x71,0xff,0x6d,0xff,0x89,0xff, +0x90,0xff,0x84,0xff,0x7a,0xff,0x69,0xff,0x50,0xff,0x4a,0xff, +0x57,0xff,0x54,0xff,0x44,0xff,0x48,0xff,0x61,0xff,0x74,0xff, +0x68,0xff,0x49,0xff,0x4c,0xff,0x66,0xff,0x6d,0xff,0x69,0xff, +0x4d,0xff,0x36,0xff,0x40,0xff,0x44,0xff,0x3e,0xff,0x36,0xff, +0x34,0xff,0x39,0xff,0x3f,0xff,0x2f,0xff,0x16,0xff,0x1a,0xff, +0xd,0xff,0xf8,0xfe,0xf2,0xfe,0xeb,0xfe,0xa,0xff,0x22,0xff, +0x20,0xff,0x1f,0xff,0x1b,0xff,0x3a,0xff,0x3a,0xff,0x9,0xff, +0x4,0xff,0x24,0xff,0x29,0xff,0x11,0xff,0x14,0xff,0x17,0xff, +0x10,0xff,0x14,0xff,0xfd,0xfe,0x2,0xff,0x1d,0xff,0x1c,0xff, +0x12,0xff,0xf4,0xfe,0xf3,0xfe,0xfd,0xfe,0xfc,0xfe,0x17,0xff, +0x1d,0xff,0x25,0xff,0x2f,0xff,0x17,0xff,0x6,0xff,0xd,0xff, +0x2b,0xff,0x36,0xff,0x32,0xff,0x3b,0xff,0x29,0xff,0x29,0xff, +0x4b,0xff,0x5c,0xff,0x4a,0xff,0x27,0xff,0x2d,0xff,0x32,0xff, +0x24,0xff,0x2f,0xff,0x26,0xff,0x19,0xff,0x25,0xff,0x13,0xff, +0x4,0xff,0x18,0xff,0x29,0xff,0x1f,0xff,0x8,0xff,0x12,0xff, +0x2b,0xff,0x40,0xff,0x50,0xff,0x33,0xff,0x2c,0xff,0x41,0xff, +0x2e,0xff,0x3b,0xff,0x4d,0xff,0x33,0xff,0x26,0xff,0x1c,0xff, +0x26,0xff,0x36,0xff,0x32,0xff,0x46,0xff,0x59,0xff,0x5a,0xff, +0x62,0xff,0x5a,0xff,0x42,0xff,0x34,0xff,0x32,0xff,0x49,0xff, +0x7c,0xff,0x6f,0xff,0x30,0xff,0x21,0xff,0x2f,0xff,0x45,0xff, +0x5a,0xff,0x64,0xff,0x57,0xff,0x2f,0xff,0x2a,0xff,0x41,0xff, +0x4f,0xff,0x50,0xff,0x45,0xff,0x44,0xff,0x3b,0xff,0x3a,0xff, +0x2c,0xff,0x3,0xff,0x2,0xff,0xc,0xff,0x1a,0xff,0x28,0xff, +0x14,0xff,0x6,0xff,0xf8,0xfe,0x1,0xff,0x1f,0xff,0x19,0xff, +0x14,0xff,0xe,0xff,0xee,0xfe,0xcd,0xfe,0xce,0xfe,0xec,0xfe, +0xe8,0xfe,0xcf,0xfe,0xd8,0xfe,0xe9,0xfe,0xd7,0xfe,0xce,0xfe, +0xee,0xfe,0x4,0xff,0x10,0xff,0xb,0xff,0x1,0xff,0x21,0xff, +0x28,0xff,0x10,0xff,0x14,0xff,0x1f,0xff,0x15,0xff,0x11,0xff, +0x2a,0xff,0x3c,0xff,0x37,0xff,0x26,0xff,0x24,0xff,0x45,0xff, +0x3a,0xff,0x13,0xff,0x20,0xff,0x40,0xff,0x5e,0xff,0x72,0xff, +0x69,0xff,0x5a,0xff,0x6b,0xff,0x7c,0xff,0x73,0xff,0x84,0xff, +0x88,0xff,0x79,0xff,0x79,0xff,0x54,0xff,0x45,0xff,0x65,0xff, +0x79,0xff,0x83,0xff,0x86,0xff,0x8f,0xff,0x75,0xff,0x5b,0xff, +0x80,0xff,0x90,0xff,0x86,0xff,0x83,0xff,0x70,0xff,0x6e,0xff, +0x85,0xff,0x88,0xff,0x8d,0xff,0xa1,0xff,0x90,0xff,0x8c,0xff, +0xb3,0xff,0xab,0xff,0xa6,0xff,0xc4,0xff,0xc6,0xff,0xb6,0xff, +0x95,0xff,0x85,0xff,0x97,0xff,0x8e,0xff,0x68,0xff,0x4b,0xff, +0x52,0xff,0x86,0xff,0x99,0xff,0x69,0xff,0x50,0xff,0x5a,0xff, +0x3f,0xff,0x1d,0xff,0x2f,0xff,0x63,0xff,0x66,0xff,0x41,0xff, +0x59,0xff,0x5d,0xff,0x36,0xff,0x41,0xff,0x38,0xff,0x22,0xff, +0x33,0xff,0x2a,0xff,0x19,0xff,0x1e,0xff,0x2b,0xff,0x43,0xff, +0x4b,0xff,0x41,0xff,0x3b,0xff,0x2f,0xff,0x31,0xff,0x55,0xff, +0x58,0xff,0x3e,0xff,0x38,0xff,0x38,0xff,0x60,0xff,0x7d,0xff, +0x59,0xff,0x3a,0xff,0x28,0xff,0x40,0xff,0x65,0xff,0x6b,0xff, +0x89,0xff,0x93,0xff,0xac,0xff,0xe6,0xff,0xc5,0xff,0x9a,0xff, +0xa9,0xff,0xc8,0xff,0xe4,0xff,0xdf,0xff,0xde,0xff,0xdd,0xff, +0xdb,0xff,0xf4,0xff,0xe0,0xff,0xb4,0xff,0xab,0xff,0xb4,0xff, +0xc4,0xff,0xc5,0xff,0xbf,0xff,0xcf,0xff,0xe8,0xff,0xed,0xff, +0xda,0xff,0xcf,0xff,0xd0,0xff,0xc7,0xff,0xc6,0xff,0xe4,0xff, +0xed,0xff,0xb9,0xff,0x9b,0xff,0xd0,0xff,0xfa,0xff,0xe5,0xff, +0xe1,0xff,0xe6,0xff,0xe4,0xff,0xfe,0xff,0xef,0xff,0xf6,0xff, +0x28,0x0,0x16,0x0,0x1f,0x0,0x37,0x0,0x1f,0x0,0x39,0x0, +0x4c,0x0,0x38,0x0,0x2e,0x0,0x1f,0x0,0x20,0x0,0x3a,0x0, +0x47,0x0,0x2e,0x0,0x7,0x0,0xef,0xff,0x2,0x0,0x14,0x0, +0xf1,0xff,0xd,0x0,0x40,0x0,0x23,0x0,0x19,0x0,0x2e,0x0, +0x33,0x0,0x1d,0x0,0x8,0x0,0x1,0x0,0xe3,0xff,0xf0,0xff, +0x3,0x0,0xe7,0xff,0xde,0xff,0xe6,0xff,0x2,0x0,0x2,0x0, +0xce,0xff,0xa4,0xff,0xa1,0xff,0xec,0xff,0x13,0x0,0xf7,0xff, +0xd,0x0,0x21,0x0,0x14,0x0,0x8,0x0,0x12,0x0,0x35,0x0, +0x2f,0x0,0xe,0x0,0xf7,0xff,0xe1,0xff,0xf2,0xff,0xf,0x0, +0x9,0x0,0xa,0x0,0x13,0x0,0x14,0x0,0x24,0x0,0x1a,0x0, +0x13,0x0,0x39,0x0,0x36,0x0,0x21,0x0,0x33,0x0,0x4a,0x0, +0x6b,0x0,0x7c,0x0,0x69,0x0,0x5e,0x0,0x69,0x0,0x72,0x0, +0x77,0x0,0x75,0x0,0x6c,0x0,0x75,0x0,0x62,0x0,0x49,0x0, +0x82,0x0,0xb6,0x0,0xc2,0x0,0xd1,0x0,0xb9,0x0,0x98,0x0, +0xa5,0x0,0xb7,0x0,0xb3,0x0,0xbc,0x0,0xcc,0x0,0xbd,0x0, +0xa4,0x0,0x9d,0x0,0xb2,0x0,0xc1,0x0,0xa9,0x0,0xa7,0x0, +0x9f,0x0,0x95,0x0,0xcb,0x0,0xe0,0x0,0xd6,0x0,0xf4,0x0, +0xeb,0x0,0xd0,0x0,0xcd,0x0,0xbb,0x0,0xbc,0x0,0xdb,0x0, +0xf2,0x0,0xdc,0x0,0xb5,0x0,0xbc,0x0,0xc8,0x0,0xbe,0x0, +0xc1,0x0,0xbd,0x0,0xad,0x0,0xaf,0x0,0xc5,0x0,0xc1,0x0, +0xa5,0x0,0xb6,0x0,0xc5,0x0,0xb6,0x0,0x99,0x0,0x76,0x0, +0x81,0x0,0xa2,0x0,0xbd,0x0,0xad,0x0,0x6a,0x0,0x5d,0x0, +0x7b,0x0,0xae,0x0,0xe1,0x0,0xc4,0x0,0xab,0x0,0xc1,0x0, +0xbf,0x0,0xaf,0x0,0xab,0x0,0xb2,0x0,0xb2,0x0,0xa7,0x0, +0x9e,0x0,0x97,0x0,0x8d,0x0,0x95,0x0,0xae,0x0,0x92,0x0, +0x76,0x0,0x9c,0x0,0xb1,0x0,0xac,0x0,0xb0,0x0,0xbe,0x0, +0xbd,0x0,0xa5,0x0,0xad,0x0,0xb2,0x0,0xb0,0x0,0xc2,0x0, +0xb8,0x0,0xa1,0x0,0x8d,0x0,0x89,0x0,0x99,0x0,0xa7,0x0, +0xe1,0x0,0x4,0x1,0xe3,0x0,0xe4,0x0,0xea,0x0,0xe4,0x0, +0xe1,0x0,0xc1,0x0,0xc5,0x0,0xdd,0x0,0xdc,0x0,0xe5,0x0, +0xe7,0x0,0x7,0x1,0x39,0x1,0x27,0x1,0x7,0x1,0x7,0x1, +0x1d,0x1,0x37,0x1,0x61,0x1,0x82,0x1,0x4d,0x1,0x47,0x1, +0x66,0x1,0x18,0x1,0xff,0x0,0x34,0x1,0x2d,0x1,0xd,0x1, +0x7,0x1,0x1d,0x1,0x18,0x1,0xff,0x0,0xf9,0x0,0xe9,0x0, +0xe8,0x0,0xe0,0x0,0xd4,0x0,0xe6,0x0,0xe0,0x0,0xb3,0x0, +0x89,0x0,0x9c,0x0,0xde,0x0,0xf8,0x0,0xe1,0x0,0xd1,0x0, +0xf9,0x0,0x16,0x1,0x4,0x1,0xff,0x0,0xf3,0x0,0xeb,0x0, +0xe8,0x0,0xc8,0x0,0xad,0x0,0xbd,0x0,0xf5,0x0,0xd,0x1, +0xef,0x0,0xcc,0x0,0xaa,0x0,0xab,0x0,0xb3,0x0,0xa5,0x0, +0xa0,0x0,0x8b,0x0,0x7e,0x0,0x89,0x0,0x82,0x0,0x6b,0x0, +0x5a,0x0,0x7e,0x0,0xc3,0x0,0xe3,0x0,0xd2,0x0,0xab,0x0, +0xa8,0x0,0xb6,0x0,0xae,0x0,0xa6,0x0,0x8a,0x0,0x72,0x0, +0x80,0x0,0x92,0x0,0x99,0x0,0xa2,0x0,0xa9,0x0,0xa4,0x0, +0xa4,0x0,0xa6,0x0,0x8d,0x0,0x77,0x0,0x8d,0x0,0xb8,0x0, +0xba,0x0,0x9d,0x0,0x9f,0x0,0x9d,0x0,0x8d,0x0,0xa9,0x0, +0xd9,0x0,0xfe,0x0,0xf,0x1,0xf9,0x0,0xcc,0x0,0xbf,0x0, +0xd4,0x0,0xda,0x0,0xf7,0x0,0x28,0x1,0x22,0x1,0xef,0x0, +0xd0,0x0,0xe2,0x0,0xf7,0x0,0xee,0x0,0xd5,0x0,0xbd,0x0, +0xd3,0x0,0xe5,0x0,0xdb,0x0,0xd5,0x0,0xc8,0x0,0xf0,0x0, +0x17,0x1,0xf4,0x0,0xe1,0x0,0xe8,0x0,0xea,0x0,0xe9,0x0, +0xed,0x0,0xe2,0x0,0xbc,0x0,0xd0,0x0,0xf3,0x0,0xe1,0x0, +0xd1,0x0,0xd1,0x0,0xf5,0x0,0x0,0x1,0xe2,0x0,0x0,0x1, +0x17,0x1,0xd,0x1,0x13,0x1,0xf7,0x0,0xea,0x0,0xff,0x0, +0xef,0x0,0xe3,0x0,0xf6,0x0,0xf2,0x0,0xcf,0x0,0xb8,0x0, +0xbf,0x0,0xca,0x0,0xc6,0x0,0xa7,0x0,0xa6,0x0,0xda,0x0, +0xe9,0x0,0xe1,0x0,0xd4,0x0,0xb6,0x0,0xb9,0x0,0xa7,0x0, +0x8e,0x0,0xa5,0x0,0xaa,0x0,0xa5,0x0,0x90,0x0,0x68,0x0, +0x60,0x0,0x63,0x0,0x6a,0x0,0x60,0x0,0x5a,0x0,0x74,0x0, +0x61,0x0,0x37,0x0,0x35,0x0,0x3c,0x0,0x28,0x0,0x14,0x0, +0x18,0x0,0x10,0x0,0x1e,0x0,0x3f,0x0,0x40,0x0,0x45,0x0, +0x59,0x0,0x65,0x0,0x51,0x0,0x47,0x0,0x66,0x0,0x5f,0x0, +0x50,0x0,0x71,0x0,0x86,0x0,0x6d,0x0,0x4b,0x0,0x67,0x0, +0x84,0x0,0x6c,0x0,0x71,0x0,0x82,0x0,0x79,0x0,0x76,0x0, +0x76,0x0,0x68,0x0,0x54,0x0,0x4d,0x0,0x5a,0x0,0x51,0x0, +0x2d,0x0,0x18,0x0,0xd,0x0,0x25,0x0,0x61,0x0,0x6f,0x0, +0x66,0x0,0x56,0x0,0x40,0x0,0x58,0x0,0x6c,0x0,0x76,0x0, +0x8c,0x0,0x8d,0x0,0x8b,0x0,0x86,0x0,0x73,0x0,0x72,0x0, +0x80,0x0,0x7a,0x0,0x69,0x0,0x65,0x0,0x5c,0x0,0x50,0x0, +0x2e,0x0,0x4,0x0,0xfe,0xff,0xde,0xff,0xb7,0xff,0xbd,0xff, +0xd3,0xff,0xe0,0xff,0xd2,0xff,0xc6,0xff,0xd2,0xff,0xf1,0xff, +0xe2,0xff,0xa3,0xff,0xae,0xff,0xb2,0xff,0x97,0xff,0xbb,0xff, +0xc6,0xff,0xd2,0xff,0xe1,0xff,0xa3,0xff,0x8b,0xff,0xb4,0xff, +0xc1,0xff,0xbf,0xff,0xcd,0xff,0xe8,0xff,0xfb,0xff,0xeb,0xff, +0xd3,0xff,0xe0,0xff,0xd6,0xff,0xa4,0xff,0xa0,0xff,0xb0,0xff, +0xb9,0xff,0xdb,0xff,0xdb,0xff,0xb2,0xff,0xb9,0xff,0xca,0xff, +0xb4,0xff,0xae,0xff,0xa0,0xff,0x7c,0xff,0x73,0xff,0x6a,0xff, +0x63,0xff,0x70,0xff,0x8b,0xff,0xa6,0xff,0x89,0xff,0x62,0xff, +0x6d,0xff,0x81,0xff,0x91,0xff,0xa2,0xff,0xa6,0xff,0x8f,0xff, +0x79,0xff,0x8b,0xff,0x96,0xff,0x8d,0xff,0xab,0xff,0xcb,0xff, +0xb7,0xff,0xa6,0xff,0xbc,0xff,0xd6,0xff,0xe0,0xff,0xd2,0xff, +0xc7,0xff,0xc4,0xff,0xc2,0xff,0xe2,0xff,0xf3,0xff,0xe8,0xff, +0xec,0xff,0xea,0xff,0xee,0xff,0xe0,0xff,0xb7,0xff,0xae,0xff, +0xae,0xff,0xa8,0xff,0xbf,0xff,0xc0,0xff,0xa8,0xff,0xac,0xff, +0xbc,0xff,0xbf,0xff,0xbf,0xff,0xbc,0xff,0xc0,0xff,0xc4,0xff, +0xb1,0xff,0xb6,0xff,0xc4,0xff,0xbe,0xff,0xd6,0xff,0xe5,0xff, +0xdf,0xff,0xfa,0xff,0xff,0xff,0xe7,0xff,0xe4,0xff,0xf2,0xff, +0xb,0x0,0xf7,0xff,0xcc,0xff,0xd8,0xff,0xe8,0xff,0xd1,0xff, +0xb0,0xff,0x9e,0xff,0xb5,0xff,0xcb,0xff,0xc1,0xff,0xc2,0xff, +0xd3,0xff,0xc3,0xff,0x9c,0xff,0xa6,0xff,0xc7,0xff,0xc1,0xff, +0xaa,0xff,0xaf,0xff,0xe0,0xff,0xf2,0xff,0xd9,0xff,0xee,0xff, +0x10,0x0,0x1c,0x0,0x1b,0x0,0xf4,0xff,0xe9,0xff,0xec,0xff, +0xc4,0xff,0xa4,0xff,0x8c,0xff,0x9b,0xff,0xaf,0xff,0x7f,0xff, +0x71,0xff,0x79,0xff,0x61,0xff,0x4c,0xff,0x44,0xff,0x57,0xff, +0x5c,0xff,0x6a,0xff,0x9e,0xff,0xa6,0xff,0x9f,0xff,0x8c,0xff, +0x62,0xff,0x61,0xff,0x7a,0xff,0x90,0xff,0xa7,0xff,0xba,0xff, +0xad,0xff,0x97,0xff,0xb1,0xff,0xc0,0xff,0xaa,0xff,0x8b,0xff, +0x7e,0xff,0x87,0xff,0x88,0xff,0xa0,0xff,0xac,0xff,0xa4,0xff, +0xab,0xff,0x86,0xff,0x80,0xff,0xad,0xff,0x9d,0xff,0x6b,0xff, +0x52,0xff,0x67,0xff,0x85,0xff,0x89,0xff,0x97,0xff,0xb2,0xff, +0xbc,0xff,0xb2,0xff,0xb2,0xff,0xb2,0xff,0xb8,0xff,0xe7,0xff, +0xfa,0xff,0xdf,0xff,0xd9,0xff,0xf2,0xff,0xfa,0xff,0xd7,0xff, +0xd0,0xff,0xf8,0xff,0xe,0x0,0x17,0x0,0x24,0x0,0x22,0x0, +0xc,0x0,0xf3,0xff,0xe8,0xff,0xe2,0xff,0xd9,0xff,0xdf,0xff, +0xfb,0xff,0xed,0xff,0xb3,0xff,0xa9,0xff,0xd3,0xff,0xec,0xff, +0xd3,0xff,0xaf,0xff,0xa1,0xff,0x9c,0xff,0xb3,0xff,0xd6,0xff, +0xf2,0xff,0x4,0x0,0xf2,0xff,0xd6,0xff,0xc8,0xff,0xbe,0xff, +0xbb,0xff,0xa1,0xff,0x95,0xff,0xb4,0xff,0xa6,0xff,0x76,0xff, +0x75,0xff,0x7a,0xff,0x70,0xff,0x73,0xff,0x80,0xff,0x97,0xff, +0xa9,0xff,0x95,0xff,0x77,0xff,0x82,0xff,0xa2,0xff,0xb9,0xff, +0xb2,0xff,0x8c,0xff,0x85,0xff,0x9c,0xff,0xb0,0xff,0xbd,0xff, +0xa1,0xff,0xa9,0xff,0xd3,0xff,0xb5,0xff,0x7e,0xff,0x65,0xff, +0x80,0xff,0xa1,0xff,0x84,0xff,0x66,0xff,0x63,0xff,0x96,0xff, +0xd3,0xff,0xc9,0xff,0xc6,0xff,0xdf,0xff,0xd8,0xff,0xc9,0xff, +0xd7,0xff,0xd5,0xff,0xbd,0xff,0xe0,0xff,0xf2,0xff,0xf1,0xff, +0x1e,0x0,0x15,0x0,0xa,0x0,0x39,0x0,0x4a,0x0,0x34,0x0, +0x1b,0x0,0x37,0x0,0x5b,0x0,0x5b,0x0,0x6b,0x0,0x65,0x0, +0x51,0x0,0x36,0x0,0x1c,0x0,0x35,0x0,0x32,0x0,0x2c,0x0, +0x61,0x0,0x6f,0x0,0x7c,0x0,0x98,0x0,0x7a,0x0,0x69,0x0, +0x6d,0x0,0x62,0x0,0x62,0x0,0x53,0x0,0x41,0x0,0x42,0x0, +0x54,0x0,0x76,0x0,0x7a,0x0,0x5f,0x0,0x39,0x0,0x24,0x0, +0x2c,0x0,0x3a,0x0,0x46,0x0,0x2d,0x0,0xa,0x0,0xfe,0xff, +0x1,0x0,0x15,0x0,0xf4,0xff,0xd3,0xff,0xe9,0xff,0xd5,0xff, +0xb7,0xff,0xab,0xff,0xa7,0xff,0xb4,0xff,0xaf,0xff,0xb8,0xff, +0xc1,0xff,0xaf,0xff,0xaf,0xff,0xd6,0xff,0xed,0xff,0xda,0xff, +0xf1,0xff,0xa,0x0,0x1,0x0,0xfd,0xff,0xe2,0xff,0xfb,0xff, +0x24,0x0,0x22,0x0,0x3a,0x0,0x40,0x0,0x3e,0x0,0x44,0x0, +0x3d,0x0,0x2f,0x0,0x12,0x0,0x1e,0x0,0x1e,0x0,0xfb,0xff, +0x11,0x0,0x3e,0x0,0x5e,0x0,0x4f,0x0,0x35,0x0,0x4b,0x0, +0x60,0x0,0x65,0x0,0x45,0x0,0x42,0x0,0x84,0x0,0x93,0x0, +0x7b,0x0,0x5f,0x0,0x55,0x0,0x77,0x0,0x92,0x0,0xc2,0x0, +0xec,0x0,0xc6,0x0,0x97,0x0,0x9a,0x0,0xc1,0x0,0xc3,0x0, +0x91,0x0,0x9e,0x0,0xc2,0x0,0xb9,0x0,0xd9,0x0,0xe5,0x0, +0xc3,0x0,0xd6,0x0,0xdb,0x0,0xd5,0x0,0xf5,0x0,0xf2,0x0, +0xdc,0x0,0xc4,0x0,0xb9,0x0,0xda,0x0,0xea,0x0,0xde,0x0, +0xde,0x0,0xec,0x0,0xf8,0x0,0x0,0x1,0xee,0x0,0xb3,0x0, +0xb9,0x0,0xf5,0x0,0xf8,0x0,0xef,0x0,0xfe,0x0,0xe,0x1, +0x8,0x1,0xfb,0x0,0x7,0x1,0x3,0x1,0xff,0x0,0xe0,0x0, +0xa7,0x0,0xdd,0x0,0x26,0x1,0xd,0x1,0xf3,0x0,0xed,0x0, +0xe4,0x0,0xd7,0x0,0xe3,0x0,0x11,0x1,0x17,0x1,0xa,0x1, +0xd,0x1,0xf5,0x0,0xd0,0x0,0xcc,0x0,0xdf,0x0,0xcd,0x0, +0xaa,0x0,0xa9,0x0,0xbe,0x0,0xdf,0x0,0xe4,0x0,0xce,0x0, +0xca,0x0,0xd5,0x0,0xe0,0x0,0xc2,0x0,0xa8,0x0,0xc1,0x0, +0xcd,0x0,0xcb,0x0,0xcd,0x0,0xbc,0x0,0xaa,0x0,0xb1,0x0, +0xc2,0x0,0xd0,0x0,0xe0,0x0,0xcd,0x0,0xbf,0x0,0xd6,0x0, +0xe5,0x0,0x3,0x1,0xfd,0x0,0xcd,0x0,0xda,0x0,0xe5,0x0, +0xe1,0x0,0x1,0x1,0xf0,0x0,0xb3,0x0,0xa2,0x0,0xb5,0x0, +0xbb,0x0,0xbb,0x0,0xad,0x0,0xa6,0x0,0xcd,0x0,0xe1,0x0, +0xea,0x0,0x4,0x1,0xff,0x0,0x5,0x1,0x12,0x1,0x8,0x1, +0x2,0x1,0x0,0x1,0x11,0x1,0x24,0x1,0x22,0x1,0x26,0x1, +0x1c,0x1,0x9,0x1,0x26,0x1,0x38,0x1,0x24,0x1,0x43,0x1, +0x76,0x1,0x84,0x1,0x7b,0x1,0x51,0x1,0x38,0x1,0x4b,0x1, +0x5a,0x1,0x49,0x1,0x32,0x1,0x4b,0x1,0x60,0x1,0x68,0x1, +0x77,0x1,0x4e,0x1,0x27,0x1,0x31,0x1,0x52,0x1,0x78,0x1, +0x57,0x1,0x3b,0x1,0x44,0x1,0x28,0x1,0x4c,0x1,0x82,0x1, +0x58,0x1,0x50,0x1,0x77,0x1,0x6f,0x1,0x4e,0x1,0x3c,0x1, +0x60,0x1,0x7d,0x1,0x5b,0x1,0x40,0x1,0x34,0x1,0x2d,0x1, +0x41,0x1,0x41,0x1,0x18,0x1,0xb,0x1,0x1d,0x1,0xa,0x1, +0xd,0x1,0x3f,0x1,0x2f,0x1,0xfb,0x0,0xe2,0x0,0xd2,0x0, +0xd3,0x0,0xd3,0x0,0xcd,0x0,0xde,0x0,0xf5,0x0,0xda,0x0, +0xc0,0x0,0xdc,0x0,0xdf,0x0,0xcb,0x0,0xc2,0x0,0xd9,0x0, +0x7,0x1,0xef,0x0,0xf2,0x0,0x12,0x1,0xde,0x0,0xd7,0x0, +0xf8,0x0,0xec,0x0,0xeb,0x0,0xf0,0x0,0xed,0x0,0xee,0x0, +0xfc,0x0,0x3,0x1,0xf3,0x0,0xf5,0x0,0x8,0x1,0x11,0x1, +0x8,0x1,0x17,0x1,0x42,0x1,0x38,0x1,0x18,0x1,0x1,0x1, +0xee,0x0,0x3,0x1,0x27,0x1,0x3e,0x1,0x41,0x1,0x2d,0x1, +0x26,0x1,0x37,0x1,0x46,0x1,0x59,0x1,0x62,0x1,0x45,0x1, +0x41,0x1,0x4b,0x1,0x39,0x1,0x2a,0x1,0x1,0x1,0xf0,0x0, +0x27,0x1,0x41,0x1,0x2f,0x1,0x29,0x1,0x39,0x1,0x42,0x1, +0x40,0x1,0x4e,0x1,0x69,0x1,0x81,0x1,0x7e,0x1,0x75,0x1, +0x7c,0x1,0x6f,0x1,0x4f,0x1,0x45,0x1,0x5c,0x1,0x65,0x1, +0x63,0x1,0x52,0x1,0x2b,0x1,0x3e,0x1,0x5a,0x1,0x52,0x1, +0x67,0x1,0x67,0x1,0x54,0x1,0x5f,0x1,0x7f,0x1,0x90,0x1, +0x74,0x1,0x59,0x1,0x3f,0x1,0x2e,0x1,0x35,0x1,0x3d,0x1, +0x46,0x1,0x32,0x1,0x35,0x1,0x52,0x1,0x4b,0x1,0x56,0x1, +0x4c,0x1,0x21,0x1,0x1e,0x1,0x19,0x1,0x2,0x1,0xe3,0x0, +0xd6,0x0,0xf4,0x0,0xc,0x1,0x1,0x1,0xeb,0x0,0xe3,0x0, +0xd8,0x0,0xe1,0x0,0xf7,0x0,0xdb,0x0,0xc6,0x0,0xde,0x0, +0xeb,0x0,0xe0,0x0,0xdd,0x0,0xd2,0x0,0xa7,0x0,0x9e,0x0, +0xb7,0x0,0xae,0x0,0xb5,0x0,0xe1,0x0,0xd6,0x0,0x9b,0x0, +0x99,0x0,0xb3,0x0,0xa7,0x0,0x90,0x0,0x73,0x0,0x69,0x0, +0x81,0x0,0x97,0x0,0x98,0x0,0x85,0x0,0x98,0x0,0xbb,0x0, +0xb5,0x0,0xb3,0x0,0xb1,0x0,0xad,0x0,0xb6,0x0,0xb6,0x0, +0xad,0x0,0xac,0x0,0xbf,0x0,0xcf,0x0,0xcd,0x0,0xc5,0x0, +0xb6,0x0,0xa6,0x0,0x88,0x0,0x80,0x0,0xa8,0x0,0xbd,0x0, +0xb3,0x0,0xb6,0x0,0xd8,0x0,0xf8,0x0,0xee,0x0,0xeb,0x0, +0xd,0x1,0x6,0x1,0xcb,0x0,0xa9,0x0,0xc6,0x0,0xe9,0x0, +0xe2,0x0,0xe9,0x0,0xfd,0x0,0xe4,0x0,0xe5,0x0,0xb,0x1, +0xf7,0x0,0xd2,0x0,0xd1,0x0,0xe0,0x0,0xdf,0x0,0xc3,0x0, +0xbd,0x0,0xcd,0x0,0xd3,0x0,0xed,0x0,0xf8,0x0,0xe2,0x0, +0xf4,0x0,0x13,0x1,0xf9,0x0,0xda,0x0,0xd7,0x0,0xd5,0x0, +0xc4,0x0,0xac,0x0,0x90,0x0,0x6b,0x0,0x5a,0x0,0x5e,0x0, +0x69,0x0,0x81,0x0,0x8f,0x0,0x84,0x0,0x4f,0x0,0x28,0x0, +0x3f,0x0,0x3f,0x0,0x46,0x0,0x5f,0x0,0x37,0x0,0x1c,0x0, +0x26,0x0,0x24,0x0,0x1b,0x0,0x9,0x0,0x2,0x0,0x2,0x0, +0x14,0x0,0x3d,0x0,0x3a,0x0,0x19,0x0,0x18,0x0,0x3,0x0, +0xd2,0xff,0xe2,0xff,0xd,0x0,0x14,0x0,0x1b,0x0,0x6,0x0, +0xfa,0xff,0x16,0x0,0x13,0x0,0xa,0x0,0x11,0x0,0xd,0x0, +0x23,0x0,0x43,0x0,0x3c,0x0,0x27,0x0,0x34,0x0,0x38,0x0, +0x39,0x0,0x4b,0x0,0x3a,0x0,0x3c,0x0,0x47,0x0,0x2e,0x0, +0x43,0x0,0x62,0x0,0x63,0x0,0x53,0x0,0x30,0x0,0x2f,0x0, +0x26,0x0,0x1d,0x0,0x2b,0x0,0x18,0x0,0x1a,0x0,0x30,0x0, +0x34,0x0,0x47,0x0,0x3b,0x0,0x31,0x0,0x40,0x0,0x37,0x0, +0x30,0x0,0x36,0x0,0x38,0x0,0x2e,0x0,0x1a,0x0,0x1a,0x0, +0x2f,0x0,0x50,0x0,0x66,0x0,0x59,0x0,0x3a,0x0,0x3c,0x0, +0x4a,0x0,0x22,0x0,0xf8,0xff,0xe3,0xff,0xd8,0xff,0xef,0xff, +0xe9,0xff,0xe4,0xff,0xf1,0xff,0xda,0xff,0xcb,0xff,0xad,0xff, +0x9d,0xff,0xc8,0xff,0xc2,0xff,0x9b,0xff,0x99,0xff,0x92,0xff, +0x65,0xff,0x50,0xff,0x7b,0xff,0x95,0xff,0x76,0xff,0x4e,0xff, +0x6a,0xff,0xb4,0xff,0x98,0xff,0x68,0xff,0x87,0xff,0x90,0xff, +0x96,0xff,0xbd,0xff,0xba,0xff,0x94,0xff,0xa0,0xff,0xc7,0xff, +0xb1,0xff,0x88,0xff,0x81,0xff,0x92,0xff,0xaa,0xff,0xa4,0xff, +0x7e,0xff,0x5d,0xff,0x56,0xff,0x7d,0xff,0xab,0xff,0xa0,0xff, +0x89,0xff,0xac,0xff,0xbb,0xff,0x8b,0xff,0x71,0xff,0x88,0xff, +0x9d,0xff,0xa4,0xff,0xba,0xff,0xbb,0xff,0x8e,0xff,0x5d,0xff, +0x51,0xff,0x6c,0xff,0x76,0xff,0x71,0xff,0x77,0xff,0x7d,0xff, +0x81,0xff,0x77,0xff,0x8a,0xff,0x94,0xff,0x5b,0xff,0x58,0xff, +0x7e,0xff,0x9b,0xff,0xb8,0xff,0xa9,0xff,0x92,0xff,0x73,0xff, +0x60,0xff,0x7c,0xff,0x87,0xff,0x93,0xff,0x99,0xff,0x7e,0xff, +0x66,0xff,0x58,0xff,0x6b,0xff,0x81,0xff,0x77,0xff,0x70,0xff, +0x5f,0xff,0x47,0xff,0x49,0xff,0x54,0xff,0x67,0xff,0x76,0xff, +0x4f,0xff,0x36,0xff,0x57,0xff,0x4e,0xff,0x38,0xff,0x37,0xff, +0x2a,0xff,0x30,0xff,0x27,0xff,0x1c,0xff,0x2c,0xff,0x14,0xff, +0x12,0xff,0x37,0xff,0x36,0xff,0x2a,0xff,0xb,0xff,0xef,0xfe, +0x17,0xff,0x12,0xff,0xd7,0xfe,0xea,0xfe,0x6,0xff,0x8,0xff, +0xd,0xff,0xf7,0xfe,0xef,0xfe,0xeb,0xfe,0xe5,0xfe,0xfa,0xfe, +0xf0,0xfe,0xdf,0xfe,0xdf,0xfe,0xba,0xfe,0x9e,0xfe,0xc8,0xfe, +0xf6,0xfe,0xf4,0xfe,0xe9,0xfe,0xd9,0xfe,0xe1,0xfe,0xf6,0xfe, +0xef,0xfe,0xeb,0xfe,0xd1,0xfe,0xc3,0xfe,0xe7,0xfe,0xf8,0xfe, +0xed,0xfe,0xe6,0xfe,0x1e,0xff,0x3e,0xff,0xf2,0xfe,0xf3,0xfe, +0x23,0xff,0x2,0xff,0xf1,0xfe,0xf3,0xfe,0xe3,0xfe,0xd9,0xfe, +0xea,0xfe,0x14,0xff,0x1a,0xff,0xf0,0xfe,0xdf,0xfe,0xef,0xfe, +0xdd,0xfe,0xdd,0xfe,0x16,0xff,0x22,0xff,0xf3,0xfe,0xd6,0xfe, +0xe5,0xfe,0x4,0xff,0xb,0xff,0x6,0xff,0x4,0xff,0xff,0xfe, +0xb,0xff,0x30,0xff,0x3f,0xff,0x44,0xff,0x6a,0xff,0x7a,0xff, +0x67,0xff,0x5e,0xff,0x5c,0xff,0x4e,0xff,0x3c,0xff,0x4c,0xff, +0x6d,0xff,0x7d,0xff,0x68,0xff,0x45,0xff,0x49,0xff,0x41,0xff, +0x2e,0xff,0x38,0xff,0x3a,0xff,0x45,0xff,0x4c,0xff,0x42,0xff, +0x38,0xff,0x36,0xff,0x3c,0xff,0x13,0xff,0xf7,0xfe,0xd,0xff, +0xa,0xff,0x16,0xff,0x38,0xff,0x34,0xff,0x16,0xff,0x3,0xff, +0xff,0xfe,0xd,0xff,0x34,0xff,0x45,0xff,0x45,0xff,0x47,0xff, +0x35,0xff,0x35,0xff,0x3b,0xff,0x2c,0xff,0x16,0xff,0x11,0xff, +0x2a,0xff,0x14,0xff,0xe6,0xfe,0xf6,0xfe,0x18,0xff,0x1b,0xff, +0xef,0xfe,0xce,0xfe,0xe6,0xfe,0xe3,0xfe,0xd3,0xfe,0x1,0xff, +0x2b,0xff,0x26,0xff,0x10,0xff,0xdd,0xfe,0xc7,0xfe,0xf4,0xfe, +0x7,0xff,0x7,0xff,0xb,0xff,0xf6,0xfe,0xe4,0xfe,0xd8,0xfe, +0xf0,0xfe,0x7,0xff,0xec,0xfe,0xf2,0xfe,0xf8,0xfe,0xe7,0xfe, +0xf8,0xfe,0x15,0xff,0x1a,0xff,0xe7,0xfe,0xb9,0xfe,0xd1,0xfe, +0xde,0xfe,0xe2,0xfe,0xf6,0xfe,0xf6,0xfe,0xf7,0xfe,0xf9,0xfe, +0xfa,0xfe,0xc,0xff,0x13,0xff,0x15,0xff,0x20,0xff,0x7,0xff, +0xef,0xfe,0x13,0xff,0x3d,0xff,0x3b,0xff,0x17,0xff,0x8,0xff, +0x2d,0xff,0x3a,0xff,0x33,0xff,0x39,0xff,0x33,0xff,0x53,0xff, +0x75,0xff,0x6a,0xff,0x68,0xff,0x6b,0xff,0x65,0xff,0x5d,0xff, +0x62,0xff,0x64,0xff,0x48,0xff,0x42,0xff,0x60,0xff,0x78,0xff, +0x7c,0xff,0x7a,0xff,0x81,0xff,0x75,0xff,0x67,0xff,0x61,0xff, +0x5a,0xff,0x74,0xff,0x75,0xff,0x51,0xff,0x42,0xff,0x51,0xff, +0x6a,0xff,0x58,0xff,0x61,0xff,0x7f,0xff,0x45,0xff,0x42,0xff, +0x6f,0xff,0x52,0xff,0x4c,0xff,0x57,0xff,0x50,0xff,0x42,0xff, +0x2a,0xff,0x51,0xff,0x83,0xff,0x7e,0xff,0x72,0xff,0x6a,0xff, +0x6d,0xff,0x6f,0xff,0x64,0xff,0x5c,0xff,0x44,0xff,0x29,0xff, +0x2e,0xff,0x4c,0xff,0x5c,0xff,0x47,0xff,0x19,0xff,0xf8,0xfe, +0x0,0xff,0x20,0xff,0x2d,0xff,0x2a,0xff,0x29,0xff,0x15,0xff, +0xf9,0xfe,0xf7,0xfe,0x19,0xff,0x4a,0xff,0x44,0xff,0x11,0xff, +0xd,0xff,0x1c,0xff,0xf,0xff,0x12,0xff,0x36,0xff,0x5d,0xff, +0x70,0xff,0x69,0xff,0x51,0xff,0x3b,0xff,0x32,0xff,0x38,0xff, +0x38,0xff,0x2c,0xff,0x41,0xff,0x4d,0xff,0x39,0xff,0x5a,0xff, +0x78,0xff,0x64,0xff,0x69,0xff,0x71,0xff,0x6f,0xff,0x82,0xff, +0xa2,0xff,0xbe,0xff,0xc4,0xff,0xaf,0xff,0x8a,0xff,0x77,0xff, +0x95,0xff,0xad,0xff,0x91,0xff,0x8e,0xff,0xc7,0xff,0xee,0xff, +0xfb,0xff,0xf4,0xff,0xde,0xff,0xe3,0xff,0xe8,0xff,0xe6,0xff, +0xec,0xff,0xe8,0xff,0xfe,0xff,0x33,0x0,0x59,0x0,0x56,0x0, +0x47,0x0,0x51,0x0,0x55,0x0,0x63,0x0,0x7e,0x0,0x62,0x0, +0x39,0x0,0x42,0x0,0x51,0x0,0x57,0x0,0x59,0x0,0x4d,0x0, +0x3c,0x0,0x2f,0x0,0x40,0x0,0x4b,0x0,0x2a,0x0,0x21,0x0, +0x28,0x0,0x20,0x0,0x13,0x0,0xf1,0xff,0xd7,0xff,0xda,0xff, +0xf0,0xff,0xf4,0xff,0xef,0xff,0xc,0x0,0x2,0x0,0xf8,0xff, +0xf6,0xff,0xac,0xff,0x98,0xff,0xbc,0xff,0xe8,0xff,0x27,0x0, +0x5,0x0,0xd5,0xff,0xec,0xff,0xfc,0xff,0xf4,0xff,0xe0,0xff, +0xed,0xff,0xfc,0xff,0xe6,0xff,0xec,0xff,0x4,0x0,0xfa,0xff, +0xec,0xff,0xed,0xff,0xe9,0xff,0x1,0x0,0x17,0x0,0xe6,0xff, +0xce,0xff,0xdf,0xff,0xd8,0xff,0xd0,0xff,0xcd,0xff,0xdd,0xff, +0xf2,0xff,0xf2,0xff,0xe8,0xff,0xd5,0xff,0xe7,0xff,0x21,0x0, +0x41,0x0,0x2a,0x0,0x14,0x0,0x29,0x0,0x2f,0x0,0x30,0x0, +0x2e,0x0,0x1b,0x0,0x2f,0x0,0x3f,0x0,0x20,0x0,0xd,0x0, +0x17,0x0,0x36,0x0,0x75,0x0,0xa9,0x0,0x97,0x0,0x55,0x0, +0x1c,0x0,0x1a,0x0,0x3e,0x0,0x44,0x0,0x3d,0x0,0x48,0x0, +0x50,0x0,0x64,0x0,0x8c,0x0,0x92,0x0,0x70,0x0,0x69,0x0, +0x6b,0x0,0x5a,0x0,0x60,0x0,0x64,0x0,0x7f,0x0,0xa4,0x0, +0x7c,0x0,0x4f,0x0,0x53,0x0,0x49,0x0,0x41,0x0,0x70,0x0, +0x93,0x0,0x71,0x0,0x5b,0x0,0x6b,0x0,0x6e,0x0,0x5f,0x0, +0x64,0x0,0x7e,0x0,0x87,0x0,0x98,0x0,0x90,0x0,0x70,0x0, +0x66,0x0,0x28,0x0,0x12,0x0,0x58,0x0,0x69,0x0,0x61,0x0, +0x55,0x0,0x56,0x0,0x6f,0x0,0x5e,0x0,0x64,0x0,0x75,0x0, +0x73,0x0,0x7e,0x0,0x5d,0x0,0x3f,0x0,0x45,0x0,0x60,0x0, +0x8a,0x0,0x84,0x0,0x6e,0x0,0x75,0x0,0x71,0x0,0x68,0x0, +0x76,0x0,0x85,0x0,0x7d,0x0,0x78,0x0,0x7b,0x0,0x5c,0x0, +0x34,0x0,0x37,0x0,0x30,0x0,0xb,0x0,0xc,0x0,0x21,0x0, +0x22,0x0,0x30,0x0,0x4e,0x0,0x64,0x0,0x58,0x0,0x42,0x0, +0x45,0x0,0x4c,0x0,0x62,0x0,0x71,0x0,0x61,0x0,0x64,0x0, +0x6b,0x0,0x5e,0x0,0x6a,0x0,0x7b,0x0,0x5a,0x0,0x43,0x0, +0x60,0x0,0x56,0x0,0x38,0x0,0x55,0x0,0x76,0x0,0x74,0x0, +0x7b,0x0,0x95,0x0,0x8c,0x0,0x54,0x0,0x25,0x0,0x26,0x0, +0x3f,0x0,0x40,0x0,0x45,0x0,0x65,0x0,0x65,0x0,0x56,0x0, +0x67,0x0,0x64,0x0,0x52,0x0,0x65,0x0,0x83,0x0,0x87,0x0, +0x80,0x0,0x91,0x0,0xa3,0x0,0x9c,0x0,0xa6,0x0,0xc7,0x0, +0xe0,0x0,0xd6,0x0,0xb7,0x0,0xc9,0x0,0xd7,0x0,0xab,0x0, +0xa2,0x0,0xcb,0x0,0xef,0x0,0x5,0x1,0x0,0x1,0xdd,0x0, +0xd0,0x0,0xdd,0x0,0xc2,0x0,0x9e,0x0,0xab,0x0,0xcc,0x0, +0xe4,0x0,0xc8,0x0,0x94,0x0,0xa0,0x0,0xb7,0x0,0xa4,0x0, +0x8f,0x0,0x7d,0x0,0x8b,0x0,0xa8,0x0,0xa1,0x0,0xaf,0x0, +0xaa,0x0,0x78,0x0,0x75,0x0,0x80,0x0,0x82,0x0,0x91,0x0, +0x83,0x0,0x56,0x0,0x48,0x0,0x7b,0x0,0x77,0x0,0x39,0x0, +0x57,0x0,0x84,0x0,0x88,0x0,0x90,0x0,0x86,0x0,0x70,0x0, +0x4f,0x0,0x4a,0x0,0x5a,0x0,0x56,0x0,0x6a,0x0,0x6b,0x0, +0x47,0x0,0x31,0x0,0x35,0x0,0x3e,0x0,0x35,0x0,0x4b,0x0, +0x64,0x0,0x42,0x0,0x2c,0x0,0x2e,0x0,0x41,0x0,0x6a,0x0, +0x62,0x0,0x42,0x0,0x4b,0x0,0x68,0x0,0x7a,0x0,0x65,0x0, +0x3b,0x0,0x2e,0x0,0x39,0x0,0x5a,0x0,0x85,0x0,0x93,0x0, +0x90,0x0,0x92,0x0,0xa4,0x0,0xc6,0x0,0xce,0x0,0xb3,0x0, +0xbd,0x0,0xdd,0x0,0xcf,0x0,0xbb,0x0,0xbd,0x0,0xcc,0x0, +0xd4,0x0,0xcc,0x0,0xc5,0x0,0xa9,0x0,0x9c,0x0,0xa4,0x0, +0xa7,0x0,0xb1,0x0,0xb0,0x0,0xc7,0x0,0xb1,0x0,0x5e,0x0, +0x83,0x0,0xb8,0x0,0x9c,0x0,0xad,0x0,0xd0,0x0,0xd4,0x0, +0xbe,0x0,0xa2,0x0,0xae,0x0,0xd6,0x0,0xe9,0x0,0xd8,0x0, +0xc5,0x0,0xbe,0x0,0xd7,0x0,0x1,0x1,0xfa,0x0,0xeb,0x0, +0xf2,0x0,0xdd,0x0,0xbc,0x0,0xb8,0x0,0xaa,0x0,0x95,0x0, +0xb7,0x0,0xba,0x0,0x83,0x0,0x95,0x0,0xb8,0x0,0x8d,0x0, +0x72,0x0,0x85,0x0,0x7e,0x0,0x6e,0x0,0x69,0x0,0x54,0x0, +0x3e,0x0,0x2b,0x0,0x31,0x0,0x41,0x0,0x2d,0x0,0x10,0x0, +0xfa,0xff,0xfd,0xff,0x5,0x0,0xf9,0xff,0xf3,0xff,0xd9,0xff, +0xc6,0xff,0xe5,0xff,0x4,0x0,0x4,0x0,0xa,0x0,0xfb,0xff, +0xc4,0xff,0xc7,0xff,0xf5,0xff,0x14,0x0,0x1a,0x0,0xde,0xff, +0xc1,0xff,0xe0,0xff,0xea,0xff,0xf0,0xff,0xe6,0xff,0xc3,0xff, +0x8b,0xff,0x8e,0xff,0xd8,0xff,0xf3,0xff,0xe1,0xff,0xc7,0xff, +0xbc,0xff,0xcd,0xff,0xe0,0xff,0xd7,0xff,0xaa,0xff,0xb7,0xff, +0xe7,0xff,0x9,0x0,0x28,0x0,0x18,0x0,0x25,0x0,0x41,0x0, +0x45,0x0,0x48,0x0,0x19,0x0,0x16,0x0,0x31,0x0,0x32,0x0, +0x5a,0x0,0x5b,0x0,0x46,0x0,0x5a,0x0,0x69,0x0,0x6f,0x0, +0x6f,0x0,0x66,0x0,0x64,0x0,0x6d,0x0,0x63,0x0,0x4a,0x0, +0x47,0x0,0x4c,0x0,0x45,0x0,0x3f,0x0,0x5e,0x0,0x65,0x0, +0x4a,0x0,0x6c,0x0,0x80,0x0,0x4d,0x0,0x37,0x0,0x46,0x0, +0x4b,0x0,0x4c,0x0,0x4d,0x0,0x34,0x0,0x1a,0x0,0x2b,0x0, +0x3d,0x0,0x2a,0x0,0x1d,0x0,0x22,0x0,0xb,0x0,0xfd,0xff, +0x0,0x0,0xf6,0xff,0x3,0x0,0xf6,0xff,0xc9,0xff,0xbd,0xff, +0xc6,0xff,0xd8,0xff,0xcd,0xff,0xba,0xff,0xbb,0xff,0xb0,0xff, +0xc0,0xff,0xcd,0xff,0xb0,0xff,0x95,0xff,0x89,0xff,0x86,0xff, +0x7f,0xff,0x79,0xff,0x61,0xff,0x3a,0xff,0x5d,0xff,0x8c,0xff, +0x6c,0xff,0x5d,0xff,0x6b,0xff,0x5e,0xff,0x5b,0xff,0x5b,0xff, +0x61,0xff,0x70,0xff,0x60,0xff,0x49,0xff,0x48,0xff,0x4b,0xff, +0x4c,0xff,0x67,0xff,0x88,0xff,0x8a,0xff,0x8a,0xff,0x6e,0xff, +0x42,0xff,0x3c,0xff,0x40,0xff,0x57,0xff,0x71,0xff,0x6d,0xff, +0x69,0xff,0x5f,0xff,0x4f,0xff,0x47,0xff,0x47,0xff,0x4a,0xff, +0x46,0xff,0x4b,0xff,0x56,0xff,0x61,0xff,0x6c,0xff,0x82,0xff, +0xa8,0xff,0xc0,0xff,0xd0,0xff,0xd0,0xff,0xb5,0xff,0xbd,0xff, +0xe0,0xff,0xe5,0xff,0xf9,0xff,0x19,0x0,0xf,0x0,0x12,0x0, +0xa,0x0,0xed,0xff,0x1b,0x0,0x44,0x0,0x37,0x0,0x33,0x0, +0x7,0x0,0xc3,0xff,0xdd,0xff,0x27,0x0,0x22,0x0,0xb,0x0, +0x5,0x0,0xf0,0xff,0x18,0x0,0x4d,0x0,0x5e,0x0,0x5e,0x0, +0x33,0x0,0xa,0x0,0xe,0x0,0x2a,0x0,0x24,0x0,0xf4,0xff, +0xe5,0xff,0xf7,0xff,0x3,0x0,0xf8,0xff,0xf0,0xff,0xed,0xff, +0xf2,0xff,0x3,0x0,0xea,0xff,0xe0,0xff,0xed,0xff,0xe5,0xff, +0xed,0xff,0xe9,0xff,0xf2,0xff,0xea,0xff,0xbe,0xff,0xc6,0xff, +0xad,0xff,0x75,0xff,0x6e,0xff,0x86,0xff,0x93,0xff,0x68,0xff, +0x52,0xff,0x62,0xff,0x68,0xff,0x77,0xff,0x7d,0xff,0x7e,0xff, +0x7a,0xff,0x74,0xff,0x74,0xff,0x52,0xff,0x2a,0xff,0x31,0xff, +0x5b,0xff,0x65,0xff,0x4c,0xff,0x4b,0xff,0x50,0xff,0x35,0xff, +0x27,0xff,0x41,0xff,0x4b,0xff,0x52,0xff,0x66,0xff,0x56,0xff, +0x49,0xff,0x47,0xff,0x56,0xff,0x88,0xff,0x9f,0xff,0x8f,0xff, +0x7c,0xff,0x84,0xff,0x95,0xff,0x9c,0xff,0xb0,0xff,0xb4,0xff, +0xb0,0xff,0xaa,0xff,0xa9,0xff,0xd0,0xff,0xd3,0xff,0xb9,0xff, +0xd4,0xff,0xe8,0xff,0xd0,0xff,0xc3,0xff,0xb6,0xff,0xb8,0xff, +0xe8,0xff,0x8,0x0,0x14,0x0,0x13,0x0,0xf2,0xff,0xe8,0xff, +0xe6,0xff,0xe9,0xff,0x8,0x0,0x15,0x0,0x8,0x0,0xf7,0xff, +0xed,0xff,0x3,0x0,0x2e,0x0,0x1d,0x0,0xf5,0xff,0x0,0x0, +0xf9,0xff,0xf7,0xff,0x4,0x0,0xf8,0xff,0xef,0xff,0xed,0xff, +0xfc,0xff,0xdd,0xff,0xb7,0xff,0xd9,0xff,0xd6,0xff,0xce,0xff, +0xd7,0xff,0xd0,0xff,0xd6,0xff,0xd9,0xff,0xf7,0xff,0xd9,0xff, +0x95,0xff,0xa3,0xff,0xbc,0xff,0xe0,0xff,0xec,0xff,0xca,0xff, +0xbc,0xff,0xaa,0xff,0xac,0xff,0xb7,0xff,0xae,0xff,0xae,0xff, +0xa8,0xff,0xb9,0xff,0xdb,0xff,0xe1,0xff,0xbe,0xff,0xb7,0xff, +0xe7,0xff,0xd2,0xff,0x9b,0xff,0xb0,0xff,0xab,0xff,0x8a,0xff, +0x92,0xff,0x91,0xff,0x9c,0xff,0xb1,0xff,0xb0,0xff,0xad,0xff, +0x93,0xff,0xa4,0xff,0xcd,0xff,0xab,0xff,0x93,0xff,0x91,0xff, +0x88,0xff,0x73,0xff,0x4f,0xff,0x62,0xff,0x5c,0xff,0x4e,0xff, +0x91,0xff,0xa3,0xff,0x8e,0xff,0xa8,0xff,0xad,0xff,0x8b,0xff, +0x7d,0xff,0x80,0xff,0x88,0xff,0x94,0xff,0x67,0xff,0x19,0xff, +0x2,0xff,0x30,0xff,0x66,0xff,0x55,0xff,0x4d,0xff,0x61,0xff, +0x4a,0xff,0x3b,0xff,0x40,0xff,0x59,0xff,0x71,0xff,0x65,0xff, +0x5d,0xff,0x49,0xff,0x4c,0xff,0x67,0xff,0x69,0xff,0x87,0xff, +0xc0,0xff,0xe4,0xff,0xe3,0xff,0xcc,0xff,0xc6,0xff,0xd0,0xff, +0xdf,0xff,0xe6,0xff,0xea,0xff,0x6,0x0,0xb,0x0,0x1,0x0, +0xe,0x0,0x16,0x0,0x0,0x0,0xe3,0xff,0xe0,0xff,0xe2,0xff, +0xf4,0xff,0x2b,0x0,0x39,0x0,0x2f,0x0,0x2d,0x0,0x1e,0x0, +0x31,0x0,0x29,0x0,0xe3,0xff,0xdd,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0x4,0x0,0x3,0x0,0x17,0x0,0x1e,0x0,0x5,0x0, +0x26,0x0,0x30,0x0,0x7,0x0,0x23,0x0,0x1d,0x0,0xed,0xff, +0xf6,0xff,0xb,0x0,0x12,0x0,0x2b,0x0,0x65,0x0,0x54,0x0, +0x0,0x0,0xd,0x0,0x22,0x0,0xf0,0xff,0xcc,0xff,0xd4,0xff, +0xf,0x0,0x43,0x0,0x1c,0x0,0xe2,0xff,0x0,0x0,0x14,0x0, +0xf0,0xff,0xf2,0xff,0x5,0x0,0xf7,0xff,0xe3,0xff,0xfb,0xff, +0x17,0x0,0xfc,0xff,0xf8,0xff,0x10,0x0,0xe,0x0,0x3,0x0, +0x10,0x0,0x25,0x0,0x16,0x0,0x2a,0x0,0x56,0x0,0x58,0x0, +0x53,0x0,0x3f,0x0,0x2d,0x0,0x22,0x0,0x2a,0x0,0x4a,0x0, +0x4e,0x0,0x5c,0x0,0x70,0x0,0x69,0x0,0x62,0x0,0x6e,0x0, +0x84,0x0,0x79,0x0,0x75,0x0,0x83,0x0,0x89,0x0,0x98,0x0, +0x8c,0x0,0x9e,0x0,0xc0,0x0,0xb5,0x0,0xbe,0x0,0xdb,0x0, +0xf6,0x0,0xed,0x0,0xd2,0x0,0xd7,0x0,0xe6,0x0,0xfd,0x0, +0x4,0x1,0x21,0x1,0x52,0x1,0x3e,0x1,0x26,0x1,0x2e,0x1, +0x31,0x1,0x3e,0x1,0x40,0x1,0x40,0x1,0x54,0x1,0x3d,0x1, +0x18,0x1,0x2d,0x1,0x4a,0x1,0x5c,0x1,0x5a,0x1,0x44,0x1, +0x3a,0x1,0xe,0x1,0xf0,0x0,0xfc,0x0,0xe2,0x0,0xc8,0x0, +0xdd,0x0,0xa,0x1,0x1b,0x1,0x21,0x1,0x27,0x1,0xfe,0x0, +0xf0,0x0,0x9,0x1,0x3,0x1,0xe4,0x0,0xd9,0x0,0xf7,0x0, +0x1,0x1,0xb,0x1,0x15,0x1,0xf5,0x0,0xf3,0x0,0xff,0x0, +0xfc,0x0,0x0,0x1,0xff,0x0,0xf9,0x0,0xfd,0x0,0x16,0x1, +0xf5,0x0,0xd3,0x0,0x4,0x1,0xd,0x1,0xff,0x0,0x3,0x1, +0xf6,0x0,0xf7,0x0,0xf2,0x0,0x4,0x1,0x5,0x1,0xc0,0x0, +0xa8,0x0,0xb8,0x0,0xb8,0x0,0xc1,0x0,0xcb,0x0,0xdb,0x0, +0xca,0x0,0xa4,0x0,0xaa,0x0,0xc8,0x0,0xd9,0x0,0xde,0x0, +0xe4,0x0,0xda,0x0,0xc4,0x0,0xce,0x0,0xba,0x0,0x9d,0x0, +0xcf,0x0,0xf8,0x0,0xff,0x0,0x9,0x1,0xf1,0x0,0xe1,0x0, +0xfc,0x0,0x16,0x1,0x21,0x1,0x29,0x1,0x1c,0x1,0xfd,0x0, +0xfe,0x0,0x17,0x1,0x17,0x1,0xd,0x1,0x5,0x1,0x9,0x1, +0x2f,0x1,0x4a,0x1,0x37,0x1,0x12,0x1,0xf4,0x0,0xf6,0x0, +0x14,0x1,0x39,0x1,0x51,0x1,0x4d,0x1,0x59,0x1,0x71,0x1, +0x73,0x1,0x81,0x1,0x74,0x1,0x52,0x1,0x78,0x1,0xad,0x1, +0xc0,0x1,0xca,0x1,0xca,0x1,0xc1,0x1,0x9d,0x1,0x85,0x1, +0x98,0x1,0x8f,0x1,0x6e,0x1,0x64,0x1,0x76,0x1,0x99,0x1, +0xb0,0x1,0xac,0x1,0x91,0x1,0x7a,0x1,0x7b,0x1,0x7e,0x1, +0x78,0x1,0x86,0x1,0x94,0x1,0x70,0x1,0x66,0x1,0x98,0x1, +0x9a,0x1,0x7d,0x1,0x85,0x1,0x8b,0x1,0x65,0x1,0x48,0x1, +0x53,0x1,0x51,0x1,0x5a,0x1,0x65,0x1,0x3e,0x1,0x26,0x1, +0x31,0x1,0x2d,0x1,0x16,0x1,0x1,0x1,0x8,0x1,0x11,0x1, +0x18,0x1,0x1e,0x1,0x5,0x1,0xf9,0x0,0x19,0x1,0x1e,0x1, +0xf2,0x0,0xe9,0x0,0x17,0x1,0x25,0x1,0xed,0x0,0xb0,0x0, +0xc9,0x0,0x23,0x1,0x42,0x1,0x39,0x1,0x3a,0x1,0x27,0x1, +0x17,0x1,0x1,0x1,0xfd,0x0,0x2c,0x1,0x36,0x1,0x2a,0x1, +0x34,0x1,0x3d,0x1,0x48,0x1,0x4e,0x1,0x5e,0x1,0x71,0x1, +0x75,0x1,0x6e,0x1,0x59,0x1,0x4d,0x1,0x5f,0x1,0x89,0x1, +0x8a,0x1,0x7a,0x1,0x89,0x1,0x7a,0x1,0x69,0x1,0x60,0x1, +0x6f,0x1,0xab,0x1,0x96,0x1,0x72,0x1,0x88,0x1,0x8e,0x1, +0x9b,0x1,0xa9,0x1,0xae,0x1,0xb8,0x1,0xbc,0x1,0xbd,0x1, +0xb0,0x1,0xb8,0x1,0xb8,0x1,0x8e,0x1,0x7e,0x1,0x82,0x1, +0x7e,0x1,0x96,0x1,0xb4,0x1,0xb3,0x1,0xca,0x1,0xef,0x1, +0xd1,0x1,0x81,0x1,0x5e,0x1,0x7a,0x1,0x8e,0x1,0x85,0x1, +0x75,0x1,0x69,0x1,0x64,0x1,0x4f,0x1,0x33,0x1,0x22,0x1, +0x34,0x1,0x3a,0x1,0xe,0x1,0x8,0x1,0x1a,0x1,0x2f,0x1, +0x4f,0x1,0x37,0x1,0x27,0x1,0x23,0x1,0xfc,0x0,0xf4,0x0, +0xf7,0x0,0xf7,0x0,0x0,0x1,0xf8,0x0,0xf1,0x0,0x9,0x1, +0x24,0x1,0xf,0x1,0x8,0x1,0x2d,0x1,0x1e,0x1,0x2,0x1, +0x18,0x1,0x1a,0x1,0x16,0x1,0x1d,0x1,0x13,0x1,0x19,0x1, +0x32,0x1,0x2c,0x1,0x1,0x1,0xec,0x0,0x4,0x1,0x18,0x1, +0xf,0x1,0xf5,0x0,0xdb,0x0,0xe3,0x0,0xf8,0x0,0xf4,0x0, +0xda,0x0,0xc4,0x0,0xde,0x0,0xf6,0x0,0xd2,0x0,0xd0,0x0, +0xea,0x0,0xef,0x0,0xb,0x1,0xfc,0x0,0xd4,0x0,0xda,0x0, +0xe3,0x0,0xf5,0x0,0xfd,0x0,0x4,0x1,0x22,0x1,0x1d,0x1, +0xfd,0x0,0xd0,0x0,0xb7,0x0,0xd0,0x0,0xde,0x0,0xcf,0x0, +0xe9,0x0,0x1e,0x1,0xa,0x1,0xf3,0x0,0x10,0x1,0x14,0x1, +0xf,0x1,0x7,0x1,0xfd,0x0,0xf0,0x0,0xe6,0x0,0xe9,0x0, +0xc9,0x0,0xbe,0x0,0xdf,0x0,0xf1,0x0,0xf1,0x0,0xdb,0x0, +0xd8,0x0,0xf8,0x0,0x1c,0x1,0x2d,0x1,0x2f,0x1,0x43,0x1, +0x3a,0x1,0xa,0x1,0xf4,0x0,0xef,0x0,0xdb,0x0,0xc4,0x0, +0xd7,0x0,0xee,0x0,0xd3,0x0,0xbb,0x0,0xda,0x0,0xf8,0x0, +0xda,0x0,0xcf,0x0,0xca,0x0,0x88,0x0,0x72,0x0,0x76,0x0, +0x63,0x0,0x68,0x0,0x68,0x0,0x71,0x0,0x68,0x0,0x22,0x0, +0xc,0x0,0x24,0x0,0x30,0x0,0x1d,0x0,0xf4,0xff,0xe3,0xff, +0xc7,0xff,0xb3,0xff,0xad,0xff,0xa2,0xff,0xb5,0xff,0xab,0xff, +0xb9,0xff,0xea,0xff,0xe2,0xff,0x8,0x0,0x53,0x0,0x71,0x0, +0x6c,0x0,0x59,0x0,0x55,0x0,0x3d,0x0,0x52,0x0,0x7a,0x0, +0x4a,0x0,0x2e,0x0,0x43,0x0,0x45,0x0,0x24,0x0,0xc,0x0, +0xa,0x0,0xc4,0xff,0x94,0xff,0xb4,0xff,0xb3,0xff,0xc8,0xff, +0xee,0xff,0xe,0x0,0x54,0x0,0x6f,0x0,0x87,0x0,0xb8,0x0, +0xae,0x0,0x9e,0x0,0x99,0x0,0x95,0x0,0xbf,0x0,0x6,0x1, +0x2b,0x1,0x5,0x1,0xda,0x0,0xbb,0x0,0xa0,0x0,0x9f,0x0, +0x7c,0x0,0x5c,0x0,0x56,0x0,0x59,0x0,0x63,0x0,0x33,0x0, +0xf,0x0,0xff,0xff,0xe1,0xff,0xf5,0xff,0xf2,0xff,0xea,0xff, +0xf2,0xff,0xc6,0xff,0xa8,0xff,0x99,0xff,0x75,0xff,0x62,0xff, +0x76,0xff,0xa1,0xff,0xa9,0xff,0x94,0xff,0x94,0xff,0x9e,0xff, +0xa3,0xff,0xb2,0xff,0xcf,0xff,0xdb,0xff,0xbf,0xff,0x9f,0xff, +0xa9,0xff,0xbb,0xff,0xb5,0xff,0xb3,0xff,0xc3,0xff,0xd0,0xff, +0xb8,0xff,0x8e,0xff,0x7f,0xff,0x79,0xff,0x78,0xff,0x8e,0xff, +0x8e,0xff,0x8e,0xff,0xaf,0xff,0xbe,0xff,0xc8,0xff,0xc6,0xff, +0xa8,0xff,0x87,0xff,0x6f,0xff,0x6e,0xff,0x4d,0xff,0x29,0xff, +0x33,0xff,0x36,0xff,0x56,0xff,0x7a,0xff,0x8d,0xff,0x96,0xff, +0x6d,0xff,0x44,0xff,0x31,0xff,0x25,0xff,0x2a,0xff,0x40,0xff, +0x58,0xff,0x5c,0xff,0x6c,0xff,0x6a,0xff,0x61,0xff,0x64,0xff, +0x46,0xff,0x38,0xff,0x3c,0xff,0x37,0xff,0xa,0xff,0xae,0xfe, +0x88,0xfe,0x8c,0xfe,0xa1,0xfe,0xb0,0xfe,0x9f,0xfe,0xb6,0xfe, +0xdb,0xfe,0xe8,0xfe,0xe5,0xfe,0xdc,0xfe,0x2,0xff,0x16,0xff, +0xf9,0xfe,0xef,0xfe,0xe2,0xfe,0xd0,0xfe,0xcf,0xfe,0xcd,0xfe, +0x1,0xff,0x5b,0xff,0x78,0xff,0x81,0xff,0x9e,0xff,0xa7,0xff, +0xb5,0xff,0xd1,0xff,0xe2,0xff,0x8,0x0,0x2e,0x0,0x2d,0x0, +0x37,0x0,0x3d,0x0,0x2b,0x0,0x25,0x0,0x12,0x0,0xfa,0xff, +0xfa,0xff,0x9,0x0,0xff,0xff,0xc6,0xff,0xaf,0xff,0xa8,0xff, +0x74,0xff,0x45,0xff,0x14,0xff,0xdf,0xfe,0xd2,0xfe,0xc3,0xfe, +0xad,0xfe,0xc0,0xfe,0xba,0xfe,0x98,0xfe,0xa2,0xfe,0xac,0xfe, +0x9e,0xfe,0x95,0xfe,0xae,0xfe,0xd5,0xfe,0xd8,0xfe,0xf7,0xfe, +0x17,0xff,0x1,0xff,0x3,0xff,0xe,0xff,0xf5,0xfe,0xe2,0xfe, +0xe9,0xfe,0xe5,0xfe,0xdf,0xfe,0xf6,0xfe,0xd,0xff,0x2e,0xff, +0x4d,0xff,0x3c,0xff,0x9,0xff,0xd8,0xfe,0xca,0xfe,0xd8,0xfe, +0xe2,0xfe,0xe3,0xfe,0xea,0xfe,0xd2,0xfe,0xa0,0xfe,0xa9,0xfe, +0xa3,0xfe,0x7c,0xfe,0x7e,0xfe,0x6d,0xfe,0x4d,0xfe,0x3e,0xfe, +0x15,0xfe,0xf5,0xfd,0x13,0xfe,0x40,0xfe,0x41,0xfe,0x3b,0xfe, +0x4a,0xfe,0x66,0xfe,0x9a,0xfe,0xab,0xfe,0x98,0xfe,0xa3,0xfe, +0x92,0xfe,0x5e,0xfe,0x56,0xfe,0x6a,0xfe,0x78,0xfe,0x82,0xfe, +0xa1,0xfe,0xbd,0xfe,0xa4,0xfe,0xb4,0xfe,0xfb,0xfe,0x13,0xff, +0x1a,0xff,0x2f,0xff,0x50,0xff,0x6e,0xff,0x65,0xff,0x70,0xff, +0x9e,0xff,0x95,0xff,0x72,0xff,0x71,0xff,0x63,0xff,0x6b,0xff, +0x96,0xff,0xa9,0xff,0xb2,0xff,0x99,0xff,0x6c,0xff,0x58,0xff, +0x30,0xff,0xfd,0xfe,0xe5,0xfe,0xf8,0xfe,0x11,0xff,0x1b,0xff, +0x2a,0xff,0x12,0xff,0xec,0xfe,0xf7,0xfe,0x1c,0xff,0x2e,0xff, +0x2b,0xff,0x35,0xff,0x44,0xff,0x3e,0xff,0x36,0xff,0x2e,0xff, +0x16,0xff,0xf,0xff,0x17,0xff,0xd,0xff,0x6,0xff,0x2,0xff, +0xf,0xff,0x22,0xff,0xf,0xff,0xfc,0xfe,0xf6,0xfe,0xdf,0xfe, +0xb9,0xfe,0xa5,0xfe,0xa6,0xfe,0x8f,0xfe,0x94,0xfe,0xb1,0xfe, +0xb4,0xfe,0xd2,0xfe,0xf5,0xfe,0xd3,0xfe,0xa5,0xfe,0xbd,0xfe, +0xd1,0xfe,0xbb,0xfe,0xa3,0xfe,0x8a,0xfe,0x8a,0xfe,0x86,0xfe, +0x60,0xfe,0x45,0xfe,0x57,0xfe,0x77,0xfe,0x70,0xfe,0x90,0xfe, +0xbd,0xfe,0xad,0xfe,0xbf,0xfe,0xe3,0xfe,0xe6,0xfe,0xd5,0xfe, +0xe7,0xfe,0x26,0xff,0x2a,0xff,0x28,0xff,0x54,0xff,0x63,0xff, +0x61,0xff,0x68,0xff,0x6a,0xff,0x47,0xff,0x38,0xff,0x5b,0xff, +0x56,0xff,0x51,0xff,0x68,0xff,0x51,0xff,0x2a,0xff,0x33,0xff, +0x33,0xff,0x0,0xff,0xfd,0xfe,0x1f,0xff,0x3,0xff,0xeb,0xfe, +0xc9,0xfe,0x9f,0xfe,0x9a,0xfe,0x74,0xfe,0x83,0xfe,0xa4,0xfe, +0x80,0xfe,0x89,0xfe,0x81,0xfe,0x69,0xfe,0x73,0xfe,0x77,0xfe, +0x95,0xfe,0x88,0xfe,0x93,0xfe,0xc3,0xfe,0xa9,0xfe,0xb4,0xfe, +0xbc,0xfe,0x8c,0xfe,0x8c,0xfe,0xb2,0xfe,0xd6,0xfe,0xfb,0xfe, +0x25,0xff,0x27,0xff,0x1f,0xff,0x31,0xff,0x45,0xff,0x70,0xff, +0x6d,0xff,0x53,0xff,0x80,0xff,0xad,0xff,0xab,0xff,0x9e,0xff, +0xb4,0xff,0xd7,0xff,0xca,0xff,0xc4,0xff,0xe8,0xff,0xf8,0xff, +0xe4,0xff,0xd5,0xff,0xd0,0xff,0xc1,0xff,0xa8,0xff,0x94,0xff, +0x9a,0xff,0xac,0xff,0xa5,0xff,0x93,0xff,0x7e,0xff,0x4a,0xff, +0x24,0xff,0x20,0xff,0x1d,0xff,0x40,0xff,0x5c,0xff,0x42,0xff, +0x28,0xff,0x26,0xff,0x4a,0xff,0x51,0xff,0x2a,0xff,0x23,0xff, +0x27,0xff,0x34,0xff,0x4a,0xff,0x3e,0xff,0x35,0xff,0x43,0xff, +0x57,0xff,0x55,0xff,0xa,0xff,0xcb,0xfe,0xe7,0xfe,0xe4,0xfe, +0xc1,0xfe,0xca,0xfe,0xd9,0xfe,0xfe,0xfe,0x8,0xff,0xd1,0xfe, +0xb5,0xfe,0xb1,0xfe,0xab,0xfe,0x97,0xfe,0x7a,0xfe,0x70,0xfe, +0x78,0xfe,0x73,0xfe,0x5a,0xfe,0x71,0xfe,0xa3,0xfe,0x9c,0xfe, +0x93,0xfe,0xa2,0xfe,0xbd,0xfe,0xe9,0xfe,0xf3,0xfe,0xfa,0xfe, +0xd,0xff,0xf0,0xfe,0xf1,0xfe,0x26,0xff,0x4d,0xff,0x7e,0xff, +0xa3,0xff,0xa3,0xff,0x90,0xff,0x77,0xff,0x74,0xff,0x75,0xff, +0x87,0xff,0xac,0xff,0xca,0xff,0xd0,0xff,0xab,0xff,0xb0,0xff, +0xe2,0xff,0xe7,0xff,0xca,0xff,0xb4,0xff,0xa7,0xff,0x9e,0xff, +0xac,0xff,0x99,0xff,0x63,0xff,0x5d,0xff,0x61,0xff,0x65,0xff, +0x75,0xff,0x68,0xff,0x53,0xff,0x5a,0xff,0x68,0xff,0x50,0xff, +0x1c,0xff,0xf0,0xfe,0xed,0xfe,0xfe,0xfe,0xe6,0xfe,0xdb,0xfe, +0xed,0xfe,0x8,0xff,0x2a,0xff,0x1b,0xff,0xfd,0xfe,0xfe,0xfe, +0xfc,0xfe,0xe3,0xfe,0xce,0xfe,0xdc,0xfe,0xf1,0xfe,0x1,0xff, +0xf9,0xfe,0xe5,0xfe,0xf0,0xfe,0xe6,0xfe,0xd9,0xfe,0xef,0xfe, +0xeb,0xfe,0xe4,0xfe,0xf9,0xfe,0x8,0xff,0xfd,0xfe,0xda,0xfe, +0xd1,0xfe,0xe5,0xfe,0xfd,0xfe,0x1c,0xff,0x18,0xff,0x27,0xff, +0x54,0xff,0x2c,0xff,0x13,0xff,0x23,0xff,0xf8,0xfe,0xed,0xfe, +0x11,0xff,0x1a,0xff,0x13,0xff,0xfb,0xfe,0x0,0xff,0x38,0xff, +0x39,0xff,0x18,0xff,0x32,0xff,0x30,0xff,0x11,0xff,0x1f,0xff, +0x32,0xff,0x53,0xff,0x87,0xff,0xa9,0xff,0xaa,0xff,0x81,0xff, +0x5b,0xff,0x67,0xff,0x86,0xff,0x92,0xff,0x9a,0xff,0xab,0xff, +0xc5,0xff,0xc5,0xff,0xa6,0xff,0xa2,0xff,0x9e,0xff,0x90,0xff, +0x8e,0xff,0x95,0xff,0xae,0xff,0xac,0xff,0xaf,0xff,0xbd,0xff, +0xae,0xff,0xc2,0xff,0xd4,0xff,0xb0,0xff,0x97,0xff,0xa1,0xff, +0x9b,0xff,0x7b,0xff,0x8b,0xff,0xa5,0xff,0xb1,0xff,0xc6,0xff, +0xcb,0xff,0xde,0xff,0xef,0xff,0xf3,0xff,0xf2,0xff,0xc8,0xff, +0xb6,0xff,0xe0,0xff,0xf,0x0,0x36,0x0,0x39,0x0,0x12,0x0, +0x12,0x0,0x36,0x0,0x3c,0x0,0x31,0x0,0x28,0x0,0x2d,0x0, +0x4a,0x0,0x76,0x0,0x8f,0x0,0x6c,0x0,0x40,0x0,0x34,0x0, +0x20,0x0,0xf,0x0,0x13,0x0,0x16,0x0,0x14,0x0,0x12,0x0, +0xe,0x0,0xfa,0xff,0xf4,0xff,0x4,0x0,0xf2,0xff,0xcc,0xff, +0xb8,0xff,0xb9,0xff,0xfa,0xff,0x2a,0x0,0x16,0x0,0x1d,0x0, +0x22,0x0,0x26,0x0,0x49,0x0,0x46,0x0,0x21,0x0,0x6,0x0, +0x1c,0x0,0x55,0x0,0x82,0x0,0x8a,0x0,0x70,0x0,0x60,0x0, +0x63,0x0,0x60,0x0,0x38,0x0,0x26,0x0,0x3a,0x0,0xfa,0xff, +0xb6,0xff,0xbe,0xff,0xbc,0xff,0xbe,0xff,0xd1,0xff,0xea,0xff, +0xeb,0xff,0xc0,0xff,0xcc,0xff,0x7,0x0,0x1b,0x0,0x34,0x0, +0x5d,0x0,0x5a,0x0,0x48,0x0,0x49,0x0,0x36,0x0,0x6,0x0, +0xf4,0xff,0xfc,0xff,0xed,0xff,0xf5,0xff,0x16,0x0,0x27,0x0, +0x18,0x0,0xd9,0xff,0xdb,0xff,0x15,0x0,0x16,0x0,0x15,0x0, +0x1d,0x0,0x1a,0x0,0x23,0x0,0x39,0x0,0x54,0x0,0x6c,0x0, +0x9d,0x0,0xb9,0x0,0xad,0x0,0xb8,0x0,0xb6,0x0,0xb2,0x0, +0xcd,0x0,0xcd,0x0,0xdb,0x0,0xa,0x1,0x8,0x1,0xef,0x0, +0xda,0x0,0xa7,0x0,0x6e,0x0,0x46,0x0,0x38,0x0,0x2e,0x0, +0x2a,0x0,0x4a,0x0,0x5b,0x0,0x4f,0x0,0x49,0x0,0x14,0x0, +0xca,0xff,0xac,0xff,0x85,0xff,0x60,0xff,0x74,0xff,0xa6,0xff, +0xfb,0xff,0x34,0x0,0x46,0x0,0x85,0x0,0x8c,0x0,0x41,0x0, +0x1,0x0,0xd9,0xff,0xdc,0xff,0xfa,0xff,0x48,0x0,0x9c,0x0, +0x9e,0x0,0x8e,0x0,0x74,0x0,0x45,0x0,0x2b,0x0,0x18,0x0, +0x6,0x0,0x17,0x0,0x48,0x0,0x75,0x0,0x8a,0x0,0x57,0x0, +0xdf,0xff,0x5f,0xff,0x3,0xff,0xf4,0xfe,0x15,0xff,0x67,0xff, +0xc,0x0,0xc8,0x0,0x28,0x1,0xd,0x1,0xba,0x0,0x48,0x0, +0xd7,0xff,0x7d,0xff,0x70,0xff,0xea,0xff,0x6b,0x0,0xbd,0x0, +0xe0,0x0,0x87,0x0,0xfb,0xff,0x9a,0xff,0x64,0xff,0x44,0xff, +0x37,0xff,0x3d,0xff,0x51,0xff,0x80,0xff,0xab,0xff,0xf0,0xff, +0x28,0x0,0x1a,0x0,0x3f,0x0,0x9c,0x0,0xd0,0x0,0xc4,0x0, +0xce,0x0,0x19,0x1,0x16,0x1,0xda,0x0,0xc0,0x0,0x92,0x0, +0x4f,0x0,0x2a,0x0,0x38,0x0,0x4a,0x0,0x40,0x0,0x4b,0x0, +0x50,0x0,0x22,0x0,0xf4,0xff,0xda,0xff,0xb7,0xff,0xa1,0xff, +0xa8,0xff,0xc1,0xff,0xe4,0xff,0xe8,0xff,0xe8,0xff,0x15,0x0, +0x2c,0x0,0x29,0x0,0x3b,0x0,0x3f,0x0,0x40,0x0,0x4f,0x0, +0x57,0x0,0x85,0x0,0xbd,0x0,0xc6,0x0,0xca,0x0,0xcb,0x0, +0xc3,0x0,0xbe,0x0,0x97,0x0,0x78,0x0,0x5a,0x0,0x8,0x0, +0xcb,0xff,0x8d,0xff,0x46,0xff,0x4f,0xff,0x70,0xff,0x80,0xff, +0x93,0xff,0xad,0xff,0xbb,0xff,0x9d,0xff,0x8f,0xff,0x95,0xff, +0x85,0xff,0x81,0xff,0x75,0xff,0x6d,0xff,0x7b,0xff,0x7c,0xff, +0x62,0xff,0x5e,0xff,0x66,0xff,0x1d,0xff,0xdc,0xfe,0xd9,0xfe, +0xbb,0xfe,0xa2,0xfe,0xbc,0xfe,0xdf,0xfe,0xe1,0xfe,0x1,0xff, +0x23,0xff,0xe8,0xfe,0xd8,0xfe,0xfb,0xfe,0xe9,0xfe,0xe5,0xfe, +0xe6,0xfe,0xf1,0xfe,0x3e,0xff,0x77,0xff,0x77,0xff,0x9e,0xff, +0xc8,0xff,0xa8,0xff,0x98,0xff,0xbd,0xff,0xdd,0xff,0xf3,0xff, +0x2,0x0,0xfc,0xff,0xe3,0xff,0xcf,0xff,0xa5,0xff,0x80,0xff, +0x9c,0xff,0xb7,0xff,0xaa,0xff,0xb4,0xff,0xd4,0xff,0xb8,0xff, +0x6f,0xff,0x4b,0xff,0x57,0xff,0x63,0xff,0x55,0xff,0x69,0xff, +0x9a,0xff,0xb6,0xff,0xc7,0xff,0xdc,0xff,0xe2,0xff,0xbe,0xff, +0xa3,0xff,0x80,0xff,0x41,0xff,0x59,0xff,0x90,0xff,0xad,0xff, +0xd9,0xff,0xd3,0xff,0x9a,0xff,0x67,0xff,0x4e,0xff,0x42,0xff, +0x28,0xff,0xc,0xff,0x3,0xff,0x29,0xff,0x4e,0xff,0x50,0xff, +0x5d,0xff,0x6d,0xff,0x74,0xff,0x68,0xff,0x48,0xff,0x34,0xff, +0x17,0xff,0xe9,0xfe,0xdd,0xfe,0xe8,0xfe,0xf8,0xfe,0x28,0xff, +0x58,0xff,0x62,0xff,0x70,0xff,0x7e,0xff,0x4a,0xff,0x13,0xff, +0x24,0xff,0x2d,0xff,0xe,0xff,0xf7,0xfe,0xf6,0xfe,0x7,0xff, +0x9,0xff,0xc,0xff,0x19,0xff,0x21,0xff,0x32,0xff,0x23,0xff, +0x8,0xff,0x1d,0xff,0x39,0xff,0x44,0xff,0x52,0xff,0x47,0xff, +0x2e,0xff,0x51,0xff,0x60,0xff,0x38,0xff,0x2f,0xff,0x24,0xff, +0x1f,0xff,0x37,0xff,0x4d,0xff,0x64,0xff,0x6b,0xff,0x5e,0xff, +0x40,0xff,0x3d,0xff,0x59,0xff,0x45,0xff,0x19,0xff,0xf1,0xfe, +0xc9,0xfe,0xdd,0xfe,0x1c,0xff,0x2b,0xff,0x1a,0xff,0x12,0xff, +0x6,0xff,0xf7,0xfe,0xd5,0xfe,0xc3,0xfe,0xeb,0xfe,0xfa,0xfe, +0xfb,0xfe,0x7,0xff,0xfe,0xfe,0x13,0xff,0x18,0xff,0xfb,0xfe, +0xeb,0xfe,0xcf,0xfe,0xc6,0xfe,0xe3,0xfe,0xc,0xff,0x2e,0xff, +0xa,0xff,0xc9,0xfe,0xa5,0xfe,0xa7,0xfe,0xcd,0xfe,0xd0,0xfe, +0xcc,0xfe,0xd1,0xfe,0xb6,0xfe,0xbe,0xfe,0xd4,0xfe,0xd4,0xfe, +0xe0,0xfe,0xed,0xfe,0xfe,0xfe,0xeb,0xfe,0xcf,0xfe,0xd6,0xfe, +0xc9,0xfe,0xc3,0xfe,0xdd,0xfe,0xe2,0xfe,0xea,0xfe,0x1,0xff, +0xe0,0xfe,0xa7,0xfe,0xa5,0xfe,0x9a,0xfe,0x5d,0xfe,0x27,0xfe, +0x1e,0xfe,0x19,0xfe,0xf7,0xfd,0xf1,0xfd,0x5,0xfe,0x24,0xfe, +0x3f,0xfe,0x3a,0xfe,0x32,0xfe,0x16,0xfe,0xc,0xfe,0x2b,0xfe, +0x51,0xfe,0x90,0xfe,0xbb,0xfe,0xdf,0xfe,0x14,0xff,0x20,0xff, +0x12,0xff,0xf3,0xfe,0xcf,0xfe,0xb3,0xfe,0x9c,0xfe,0x98,0xfe, +0x8b,0xfe,0x8d,0xfe,0x8d,0xfe,0x5d,0xfe,0x37,0xfe,0x25,0xfe, +0xc,0xfe,0x8,0xfe,0x23,0xfe,0x36,0xfe,0x34,0xfe,0x37,0xfe, +0x2f,0xfe,0x4d,0xfe,0x8f,0xfe,0x7e,0xfe,0x63,0xfe,0x86,0xfe, +0xa4,0xfe,0xce,0xfe,0xef,0xfe,0xfd,0xfe,0x18,0xff,0x1b,0xff, +0x19,0xff,0x13,0xff,0xf1,0xfe,0xfd,0xfe,0x22,0xff,0xb,0xff, +0xea,0xfe,0x1,0xff,0x3,0xff,0xd9,0xfe,0xd4,0xfe,0xde,0xfe, +0xbc,0xfe,0x82,0xfe,0x83,0xfe,0xfa,0xfe,0x4e,0xff,0x37,0xff, +0x31,0xff,0x3a,0xff,0x4b,0xff,0x55,0xff,0xf,0xff,0xf7,0xfe, +0x3d,0xff,0x4e,0xff,0x39,0xff,0x4f,0xff,0x54,0xff,0x40,0xff, +0x44,0xff,0x2f,0xff,0x2a,0xff,0x48,0xff,0x3e,0xff,0x50,0xff, +0x64,0xff,0x5d,0xff,0x60,0xff,0x3f,0xff,0x44,0xff,0x56,0xff, +0x3e,0xff,0x34,0xff,0x30,0xff,0x54,0xff,0x73,0xff,0x71,0xff, +0x70,0xff,0x5d,0xff,0x4b,0xff,0x37,0xff,0x53,0xff,0x54,0xff, +0x17,0xff,0x2f,0xff,0x4e,0xff,0x3b,0xff,0x23,0xff,0xb,0xff, +0x12,0xff,0x9,0xff,0xfd,0xfe,0xfa,0xfe,0x2,0xff,0x5,0xff, +0xe5,0xfe,0xdc,0xfe,0xc1,0xfe,0x88,0xfe,0x7a,0xfe,0xa2,0xfe, +0xcb,0xfe,0xb2,0xfe,0xb4,0xfe,0xae,0xfe,0x61,0xfe,0x44,0xfe, +0x48,0xfe,0x4a,0xfe,0x4a,0xfe,0x44,0xfe,0x52,0xfe,0x65,0xfe, +0x78,0xfe,0x73,0xfe,0x67,0xfe,0x77,0xfe,0x85,0xfe,0x87,0xfe, +0x82,0xfe,0x86,0xfe,0x75,0xfe,0x60,0xfe,0x6c,0xfe,0x63,0xfe, +0x59,0xfe,0x76,0xfe,0x73,0xfe,0x5c,0xfe,0x82,0xfe,0xa5,0xfe, +0x95,0xfe,0x84,0xfe,0x79,0xfe,0x94,0xfe,0xbf,0xfe,0xb9,0xfe, +0xa4,0xfe,0xa4,0xfe,0xb2,0xfe,0xc3,0xfe,0xd1,0xfe,0xc0,0xfe, +0xb2,0xfe,0xba,0xfe,0xa3,0xfe,0xb7,0xfe,0xed,0xfe,0xf4,0xfe, +0xef,0xfe,0xe0,0xfe,0xe7,0xfe,0xfe,0xfe,0x3,0xff,0x1,0xff, +0x1,0xff,0x2d,0xff,0x38,0xff,0x27,0xff,0x48,0xff,0x4e,0xff, +0x45,0xff,0x4a,0xff,0x58,0xff,0x55,0xff,0x25,0xff,0x2b,0xff, +0x63,0xff,0x89,0xff,0xa0,0xff,0xa0,0xff,0x97,0xff,0x9b,0xff, +0xa4,0xff,0x8b,0xff,0x98,0xff,0xdd,0xff,0xed,0xff,0xf3,0xff, +0xe,0x0,0x12,0x0,0xef,0xff,0xc1,0xff,0xde,0xff,0x16,0x0, +0x11,0x0,0xe7,0xff,0xd7,0xff,0xd7,0xff,0xb3,0xff,0x98,0xff, +0x94,0xff,0xaa,0xff,0xd0,0xff,0xcc,0xff,0xdb,0xff,0x2,0x0, +0x10,0x0,0x6,0x0,0xf8,0xff,0x12,0x0,0x2a,0x0,0x29,0x0, +0x20,0x0,0x13,0x0,0x16,0x0,0x29,0x0,0x3f,0x0,0x39,0x0, +0x4d,0x0,0x69,0x0,0x58,0x0,0x58,0x0,0x3b,0x0,0x30,0x0, +0x51,0x0,0x2d,0x0,0x1d,0x0,0x2e,0x0,0x1d,0x0,0x5,0x0, +0xf9,0xff,0x14,0x0,0x1f,0x0,0x10,0x0,0x20,0x0,0x3c,0x0, +0x43,0x0,0x20,0x0,0xf9,0xff,0xf,0x0,0x37,0x0,0x3,0x0, +0xe4,0xff,0x34,0x0,0x5a,0x0,0x51,0x0,0x48,0x0,0x34,0x0, +0x2e,0x0,0x25,0x0,0x29,0x0,0x27,0x0,0x16,0x0,0x9,0x0, +0xe8,0xff,0xee,0xff,0x5,0x0,0x16,0x0,0x32,0x0,0x2d,0x0, +0x1e,0x0,0x9,0x0,0xd,0x0,0x25,0x0,0x20,0x0,0x3c,0x0, +0x37,0x0,0xd,0x0,0x36,0x0,0x68,0x0,0x6a,0x0,0x43,0x0, +0x8,0x0,0x12,0x0,0x27,0x0,0x7,0x0,0xf4,0xff,0x2,0x0, +0x23,0x0,0x2a,0x0,0xf1,0xff,0xd6,0xff,0xf6,0xff,0x13,0x0, +0x1b,0x0,0x2,0x0,0xe9,0xff,0xd4,0xff,0xbd,0xff,0xe4,0xff, +0xf,0x0,0x7,0x0,0xb,0x0,0x1b,0x0,0x2c,0x0,0x2f,0x0, +0x2d,0x0,0x42,0x0,0x46,0x0,0x4d,0x0,0x6f,0x0,0x70,0x0, +0x5a,0x0,0x60,0x0,0x72,0x0,0x69,0x0,0x60,0x0,0x4e,0x0, +0x2d,0x0,0x38,0x0,0x5a,0x0,0x82,0x0,0x8f,0x0,0x64,0x0, +0x6e,0x0,0x98,0x0,0x9f,0x0,0x9d,0x0,0x7d,0x0,0x73,0x0, +0x8f,0x0,0x94,0x0,0x8e,0x0,0x89,0x0,0x78,0x0,0x71,0x0, +0x93,0x0,0xac,0x0,0xac,0x0,0x9f,0x0,0x81,0x0,0x99,0x0, +0xcc,0x0,0xce,0x0,0xbf,0x0,0xbb,0x0,0xdf,0x0,0xe,0x1, +0xf,0x1,0xff,0x0,0xed,0x0,0xe9,0x0,0x0,0x1,0x1c,0x1, +0x24,0x1,0xe,0x1,0xb,0x1,0x1d,0x1,0x28,0x1,0x37,0x1, +0x3e,0x1,0x37,0x1,0x42,0x1,0x45,0x1,0x26,0x1,0x3d,0x1, +0x88,0x1,0x9c,0x1,0x95,0x1,0x9b,0x1,0x8f,0x1,0x95,0x1, +0xb1,0x1,0xb9,0x1,0xa2,0x1,0x82,0x1,0x89,0x1,0xb4,0x1, +0xd6,0x1,0xe4,0x1,0xf2,0x1,0xf6,0x1,0xde,0x1,0xdb,0x1, +0xf2,0x1,0xff,0x1,0x1d,0x2,0x25,0x2,0xfe,0x1,0xde,0x1, +0xe1,0x1,0xa,0x2,0x6,0x2,0xcb,0x1,0xbe,0x1,0xc7,0x1, +0xd6,0x1,0xf7,0x1,0xf4,0x1,0xcb,0x1,0xb4,0x1,0xc2,0x1, +0xd8,0x1,0xea,0x1,0xe1,0x1,0xca,0x1,0xc0,0x1,0xce,0x1, +0xee,0x1,0xe9,0x1,0xcf,0x1,0xab,0x1,0x7e,0x1,0x94,0x1, +0x8d,0x1,0x54,0x1,0x47,0x1,0x40,0x1,0x48,0x1,0x47,0x1, +0x1e,0x1,0x12,0x1,0x27,0x1,0x35,0x1,0x19,0x1,0xf7,0x0, +0xf0,0x0,0xf6,0x0,0x2,0x1,0xf9,0x0,0xf2,0x0,0xf6,0x0, +0xf0,0x0,0xdd,0x0,0xba,0x0,0xb2,0x0,0xab,0x0,0xaf,0x0, +0xdc,0x0,0xef,0x0,0xe2,0x0,0xc3,0x0,0xae,0x0,0xa5,0x0, +0x9c,0x0,0xbc,0x0,0xce,0x0,0xb1,0x0,0x97,0x0,0x81,0x0, +0x6d,0x0,0x79,0x0,0x9a,0x0,0x91,0x0,0x78,0x0,0x7d,0x0, +0x8c,0x0,0x90,0x0,0x7c,0x0,0x7c,0x0,0x84,0x0,0x8b,0x0, +0xb1,0x0,0xa1,0x0,0x72,0x0,0x74,0x0,0x7a,0x0,0x8b,0x0, +0x91,0x0,0x85,0x0,0x94,0x0,0x98,0x0,0x88,0x0,0x94,0x0, +0xb5,0x0,0xc7,0x0,0xd2,0x0,0xe3,0x0,0xf4,0x0,0xee,0x0, +0xcd,0x0,0xc4,0x0,0xdc,0x0,0xe9,0x0,0xe0,0x0,0xc0,0x0, +0xa7,0x0,0xca,0x0,0xf4,0x0,0x1,0x1,0x1e,0x1,0x2e,0x1, +0x2c,0x1,0x29,0x1,0x1c,0x1,0x25,0x1,0x4e,0x1,0x74,0x1, +0x5d,0x1,0x26,0x1,0x1a,0x1,0xa,0x1,0x16,0x1,0x3d,0x1, +0x33,0x1,0x3d,0x1,0x44,0x1,0x27,0x1,0x4d,0x1,0x82,0x1, +0x62,0x1,0x4d,0x1,0x75,0x1,0x6d,0x1,0x3e,0x1,0x33,0x1, +0x30,0x1,0x2f,0x1,0x50,0x1,0x75,0x1,0x6d,0x1,0x64,0x1, +0x54,0x1,0x13,0x1,0x1e,0x1,0x62,0x1,0x65,0x1,0x4c,0x1, +0x2b,0x1,0x9,0x1,0xc,0x1,0x1a,0x1,0x9,0x1,0xb,0x1, +0x2e,0x1,0x32,0x1,0x25,0x1,0xb,0x1,0x1,0x1,0x2,0x1, +0xfa,0x0,0x12,0x1,0x16,0x1,0x7,0x1,0x1,0x1,0xf0,0x0, +0xf3,0x0,0xfb,0x0,0xff,0x0,0xe3,0x0,0xcd,0x0,0xd0,0x0, +0x9d,0x0,0xa6,0x0,0xc8,0x0,0x9a,0x0,0x80,0x0,0x80,0x0, +0x8e,0x0,0x92,0x0,0x95,0x0,0xae,0x0,0x9d,0x0,0x80,0x0, +0x59,0x0,0x40,0x0,0x5b,0x0,0x5a,0x0,0x4b,0x0,0x5a,0x0, +0x75,0x0,0x66,0x0,0x58,0x0,0x6b,0x0,0x60,0x0,0x5a,0x0, +0x52,0x0,0x4e,0x0,0x58,0x0,0x50,0x0,0x49,0x0,0x28,0x0, +0x14,0x0,0x18,0x0,0x16,0x0,0x3e,0x0,0x55,0x0,0x4a,0x0, +0x34,0x0,0x2a,0x0,0x2a,0x0,0xe5,0xff,0xd1,0xff,0xe9,0xff, +0xcf,0xff,0xe7,0xff,0xfb,0xff,0xe6,0xff,0xea,0xff,0xf2,0xff, +0xf4,0xff,0x1,0x0,0x15,0x0,0x0,0x0,0xe0,0xff,0xf0,0xff, +0xf0,0xff,0xe7,0xff,0xf3,0xff,0xde,0xff,0xc1,0xff,0xbe,0xff, +0xb2,0xff,0xad,0xff,0xbb,0xff,0xd1,0xff,0xe6,0xff,0xd7,0xff, +0xcf,0xff,0xd3,0xff,0xb8,0xff,0xb9,0xff,0xcc,0xff,0xca,0xff, +0xc5,0xff,0xb3,0xff,0xa6,0xff,0xb3,0xff,0xcc,0xff,0xc7,0xff, +0xae,0xff,0x9f,0xff,0x88,0xff,0x7a,0xff,0x6e,0xff,0x68,0xff, +0x7d,0xff,0x8a,0xff,0x9c,0xff,0xae,0xff,0xa5,0xff,0x84,0xff, +0x61,0xff,0x6b,0xff,0x74,0xff,0x54,0xff,0x53,0xff,0x79,0xff, +0x86,0xff,0x80,0xff,0x9b,0xff,0xa7,0xff,0x8e,0xff,0x9a,0xff, +0xb1,0xff,0xbc,0xff,0xc2,0xff,0xac,0xff,0xaf,0xff,0xcb,0xff, +0xc9,0xff,0xc3,0xff,0xc4,0xff,0xd6,0xff,0xfc,0xff,0xfc,0xff, +0xca,0xff,0xa2,0xff,0xb7,0xff,0xe6,0xff,0x7,0x0,0xc,0x0, +0x3,0x0,0x24,0x0,0x41,0x0,0x28,0x0,0x2d,0x0,0x3f,0x0, +0x26,0x0,0x1a,0x0,0x2b,0x0,0x3b,0x0,0x66,0x0,0xa7,0x0, +0xae,0x0,0xa7,0x0,0xbc,0x0,0xb1,0x0,0xb5,0x0,0xc1,0x0, +0xb7,0x0,0xb9,0x0,0xaf,0x0,0xb9,0x0,0xc7,0x0,0xba,0x0, +0xad,0x0,0x94,0x0,0x97,0x0,0x96,0x0,0x7e,0x0,0x88,0x0, +0x81,0x0,0x6a,0x0,0x59,0x0,0x52,0x0,0x74,0x0,0x88,0x0, +0x88,0x0,0x82,0x0,0x64,0x0,0x47,0x0,0x32,0x0,0x21,0x0, +0xff,0xff,0xe7,0xff,0xeb,0xff,0xef,0xff,0xd,0x0,0x1e,0x0, +0x1a,0x0,0x14,0x0,0xf2,0xff,0xec,0xff,0xe5,0xff,0xdb,0xff, +0xf0,0xff,0xde,0xff,0xd5,0xff,0xd9,0xff,0xca,0xff,0xd8,0xff, +0xdb,0xff,0xcf,0xff,0xbd,0xff,0x9f,0xff,0x8c,0xff,0x83,0xff, +0x77,0xff,0x53,0xff,0x41,0xff,0x35,0xff,0x33,0xff,0x3a,0xff, +0xff,0xfe,0x10,0xff,0x4b,0xff,0x22,0xff,0x2f,0xff,0x42,0xff, +0x26,0xff,0x1e,0xff,0x1d,0xff,0x4a,0xff,0x5b,0xff,0x46,0xff, +0x4d,0xff,0x46,0xff,0x3a,0xff,0x37,0xff,0x4c,0xff,0x52,0xff, +0x3f,0xff,0x3c,0xff,0x35,0xff,0x53,0xff,0x6f,0xff,0x6a,0xff, +0x75,0xff,0x66,0xff,0x62,0xff,0x72,0xff,0x6e,0xff,0x69,0xff, +0x44,0xff,0x39,0xff,0x65,0xff,0x72,0xff,0x86,0xff,0xaf,0xff, +0xa7,0xff,0x97,0xff,0xa2,0xff,0xa2,0xff,0x9f,0xff,0x9b,0xff, +0x93,0xff,0xa5,0xff,0xc0,0xff,0xcc,0xff,0xd8,0xff,0xe8,0xff, +0xe3,0xff,0xe5,0xff,0x17,0x0,0x48,0x0,0x4b,0x0,0x3a,0x0, +0x50,0x0,0x6f,0x0,0x67,0x0,0x6c,0x0,0x76,0x0,0x7d,0x0, +0x9e,0x0,0xaa,0x0,0x91,0x0,0x6c,0x0,0x62,0x0,0x72,0x0, +0x84,0x0,0xa4,0x0,0xb0,0x0,0x9d,0x0,0x7a,0x0,0x5e,0x0, +0x56,0x0,0x47,0x0,0x43,0x0,0x54,0x0,0x70,0x0,0x6f,0x0, +0x6c,0x0,0xa8,0x0,0xae,0x0,0x8a,0x0,0x9b,0x0,0x9a,0x0, +0x93,0x0,0x85,0x0,0x76,0x0,0x9c,0x0,0xb5,0x0,0x9f,0x0, +0x87,0x0,0x8f,0x0,0x94,0x0,0x87,0x0,0x7f,0x0,0x75,0x0, +0x74,0x0,0x6a,0x0,0x69,0x0,0x71,0x0,0x49,0x0,0x3f,0x0, +0x4d,0x0,0x47,0x0,0x62,0x0,0x6a,0x0,0x59,0x0,0x5c,0x0, +0x56,0x0,0x5b,0x0,0x62,0x0,0x49,0x0,0x33,0x0,0x32,0x0, +0x1a,0x0,0xf7,0xff,0xe1,0xff,0xc7,0xff,0xdf,0xff,0xf8,0xff, +0xb4,0xff,0xa6,0xff,0xce,0xff,0xc6,0xff,0xdc,0xff,0xf4,0xff, +0xe6,0xff,0xda,0xff,0xcd,0xff,0xc8,0xff,0xb4,0xff,0xb4,0xff, +0xc0,0xff,0xa0,0xff,0xbb,0xff,0xf4,0xff,0xed,0xff,0xdd,0xff, +0xcd,0xff,0xd0,0xff,0xe6,0xff,0xde,0xff,0xc3,0xff,0xaf,0xff, +0xa4,0xff,0xa8,0xff,0xc4,0xff,0xd3,0xff,0xc9,0xff,0xc7,0xff, +0xd6,0xff,0xe5,0xff,0xcb,0xff,0xb8,0xff,0xe6,0xff,0x0,0x0, +0xe1,0xff,0xda,0xff,0xf5,0xff,0xf0,0xff,0xdc,0xff,0xde,0xff, +0xe0,0xff,0xd8,0xff,0xd0,0xff,0xe8,0xff,0xf6,0xff,0xdb,0xff, +0xd6,0xff,0xdb,0xff,0xe0,0xff,0xf9,0xff,0x2,0x0,0xf3,0xff, +0xdc,0xff,0xe6,0xff,0xe5,0xff,0xc5,0xff,0xce,0xff,0xcc,0xff, +0xac,0xff,0xa0,0xff,0x9a,0xff,0xaa,0xff,0xb6,0xff,0xa8,0xff, +0xb0,0xff,0xaa,0xff,0x9e,0xff,0xc2,0xff,0xbb,0xff,0x7b,0xff, +0x68,0xff,0x84,0xff,0xaa,0xff,0xab,0xff,0x8b,0xff,0x7f,0xff, +0x69,0xff,0x57,0xff,0x7e,0xff,0xad,0xff,0xb4,0xff,0xa2,0xff, +0x95,0xff,0x95,0xff,0xa2,0xff,0xa8,0xff,0xaa,0xff,0xbd,0xff, +0xd3,0xff,0xc9,0xff,0xa5,0xff,0xaa,0xff,0xd3,0xff,0xec,0xff, +0xf4,0xff,0xdd,0xff,0xd2,0xff,0xcd,0xff,0xae,0xff,0xb4,0xff, +0xce,0xff,0xcf,0xff,0xca,0xff,0xd4,0xff,0xe5,0xff,0xe4,0xff, +0xd0,0xff,0xc2,0xff,0xd8,0xff,0xd5,0xff,0xcc,0xff,0xc,0x0, +0x21,0x0,0x7,0x0,0x10,0x0,0xe,0x0,0x13,0x0,0x16,0x0, +0x1c,0x0,0x3a,0x0,0x31,0x0,0x28,0x0,0x30,0x0,0x1e,0x0, +0x1f,0x0,0x3c,0x0,0x4b,0x0,0x50,0x0,0x3e,0x0,0x2a,0x0, +0x37,0x0,0x2e,0x0,0x17,0x0,0x1c,0x0,0x28,0x0,0x2c,0x0, +0x20,0x0,0x19,0x0,0x19,0x0,0x18,0x0,0x2e,0x0,0x2f,0x0, +0xfe,0xff,0xd5,0xff,0xe2,0xff,0x3,0x0,0x2,0x0,0x6,0x0, +0x7,0x0,0xda,0xff,0xc4,0xff,0xd1,0xff,0xf1,0xff,0x20,0x0, +0x32,0x0,0x2c,0x0,0xfc,0xff,0xbf,0xff,0xcd,0xff,0xe7,0xff, +0xde,0xff,0xd7,0xff,0xd4,0xff,0xe0,0xff,0xea,0xff,0xe2,0xff, +0xc6,0xff,0x95,0xff,0x94,0xff,0x9e,0xff,0x81,0xff,0x74,0xff, +0x60,0xff,0x45,0xff,0x3e,0xff,0x42,0xff,0x6e,0xff,0x7e,0xff, +0x4f,0xff,0x2c,0xff,0x1,0xff,0xdf,0xfe,0xde,0xfe,0xe6,0xfe, +0xd,0xff,0x12,0xff,0xf6,0xfe,0x14,0xff,0x1d,0xff,0xf3,0xfe, +0xe4,0xfe,0xe4,0xfe,0xdf,0xfe,0xeb,0xfe,0x8,0xff,0x18,0xff, +0x1,0xff,0xdf,0xfe,0xd6,0xfe,0xde,0xfe,0xd1,0xfe,0xc3,0xfe, +0xd9,0xfe,0xf0,0xfe,0xfb,0xfe,0xeb,0xfe,0xcd,0xfe,0xd4,0xfe, +0xd1,0xfe,0xd4,0xfe,0xf9,0xfe,0x0,0xff,0x28,0xff,0x56,0xff, +0x41,0xff,0x43,0xff,0x53,0xff,0x5f,0xff,0x99,0xff,0xba,0xff, +0xa2,0xff,0x84,0xff,0x78,0xff,0x86,0xff,0x94,0xff,0xb1,0xff, +0xe7,0xff,0xef,0xff,0xfd,0xff,0x33,0x0,0x38,0x0,0x31,0x0, +0x29,0x0,0x5,0x0,0xef,0xff,0xfd,0xff,0xa,0x0,0xd9,0xff, +0xd9,0xff,0x23,0x0,0x2d,0x0,0x1a,0x0,0xd,0x0,0xc,0x0, +0x32,0x0,0x66,0x0,0x83,0x0,0x75,0x0,0x7c,0x0,0x95,0x0, +0x8c,0x0,0x76,0x0,0x6f,0x0,0x87,0x0,0x91,0x0,0x92,0x0, +0x9a,0x0,0x9c,0x0,0xaa,0x0,0x9d,0x0,0x8e,0x0,0x95,0x0, +0x8f,0x0,0x89,0x0,0x8a,0x0,0x7f,0x0,0x69,0x0,0x7d,0x0, +0x7c,0x0,0x44,0x0,0x3e,0x0,0x49,0x0,0x57,0x0,0x5b,0x0, +0x39,0x0,0x36,0x0,0x3d,0x0,0x4d,0x0,0x45,0x0,0x21,0x0, +0x2c,0x0,0x34,0x0,0x41,0x0,0x4f,0x0,0x2a,0x0,0x19,0x0, +0x52,0x0,0x6d,0x0,0x1e,0x0,0x8,0x0,0x2e,0x0,0x1a,0x0, +0x15,0x0,0x29,0x0,0x3c,0x0,0x46,0x0,0x66,0x0,0x91,0x0, +0x5e,0x0,0x1b,0x0,0x1b,0x0,0x30,0x0,0x35,0x0,0x3b,0x0, +0x3c,0x0,0x2,0x0,0xdc,0xff,0xd7,0xff,0xda,0xff,0xfb,0xff, +0xd6,0xff,0x9b,0xff,0xbc,0xff,0xfb,0xff,0xfe,0xff,0xdd,0xff, +0xed,0xff,0xe2,0xff,0xb9,0xff,0xbd,0xff,0xbc,0xff,0xbd,0xff, +0xca,0xff,0xd5,0xff,0xdc,0xff,0xfd,0xff,0x1c,0x0,0xf3,0xff, +0xeb,0xff,0x4,0x0,0x19,0x0,0x38,0x0,0x1f,0x0,0x18,0x0, +0x47,0x0,0x5c,0x0,0x4a,0x0,0x32,0x0,0x28,0x0,0x26,0x0, +0x58,0x0,0x80,0x0,0x72,0x0,0x71,0x0,0x73,0x0,0x85,0x0, +0x82,0x0,0x72,0x0,0x85,0x0,0x89,0x0,0x98,0x0,0x9d,0x0, +0x89,0x0,0x8a,0x0,0x98,0x0,0xc4,0x0,0xe7,0x0,0xe8,0x0, +0xc7,0x0,0x91,0x0,0x71,0x0,0x86,0x0,0xc0,0x0,0xdd,0x0, +0x15,0x1,0x5f,0x1,0x64,0x1,0x67,0x1,0x60,0x1,0x6d,0x1, +0x8d,0x1,0x68,0x1,0x59,0x1,0x4f,0x1,0x9,0x1,0xf5,0x0, +0x2e,0x1,0x51,0x1,0x59,0x1,0x73,0x1,0x73,0x1,0x5c,0x1, +0x5f,0x1,0x78,0x1,0x9d,0x1,0xc0,0x1,0xc9,0x1,0x8c,0x1, +0x6e,0x1,0xab,0x1,0xa6,0x1,0x87,0x1,0x9f,0x1,0xa7,0x1, +0xaa,0x1,0x99,0x1,0x6c,0x1,0x69,0x1,0x77,0x1,0x71,0x1, +0x83,0x1,0x92,0x1,0x6d,0x1,0x5b,0x1,0x6b,0x1,0x58,0x1, +0x32,0x1,0x39,0x1,0x61,0x1,0x6c,0x1,0x68,0x1,0x62,0x1, +0x4d,0x1,0x60,0x1,0x9f,0x1,0xbf,0x1,0x88,0x1,0x2c,0x1, +0x21,0x1,0x61,0x1,0x9d,0x1,0xbc,0x1,0xbf,0x1,0xc1,0x1, +0xd0,0x1,0xd6,0x1,0xcb,0x1,0xb0,0x1,0x87,0x1,0x6d,0x1, +0x66,0x1,0x6d,0x1,0x78,0x1,0x87,0x1,0xa3,0x1,0xa7,0x1, +0xa9,0x1,0xdf,0x1,0xfd,0x1,0xfd,0x1,0x10,0x2,0x5,0x2, +0xf8,0x1,0xfd,0x1,0xdd,0x1,0xcf,0x1,0xdc,0x1,0xe4,0x1, +0xd,0x2,0x1a,0x2,0x2,0x2,0xb,0x2,0xf9,0x1,0xdf,0x1, +0xf9,0x1,0x0,0x2,0xf7,0x1,0x7,0x2,0x5,0x2,0xd3,0x1, +0x83,0x1,0x73,0x1,0xa3,0x1,0xae,0x1,0xa3,0x1,0x8e,0x1, +0x82,0x1,0xc8,0x1,0xe3,0x1,0x93,0x1,0x6e,0x1,0x77,0x1, +0x74,0x1,0x72,0x1,0x65,0x1,0x70,0x1,0x7c,0x1,0x5b,0x1, +0x4d,0x1,0x4b,0x1,0x1b,0x1,0xf3,0x0,0x12,0x1,0x58,0x1, +0x50,0x1,0xe8,0x0,0xb2,0x0,0xc1,0x0,0xc0,0x0,0xc9,0x0, +0xf7,0x0,0x24,0x1,0x3e,0x1,0x3b,0x1,0x13,0x1,0xe4,0x0, +0xca,0x0,0xa5,0x0,0x88,0x0,0xb7,0x0,0xe6,0x0,0xcb,0x0, +0xb3,0x0,0xb2,0x0,0xb5,0x0,0xd2,0x0,0xec,0x0,0xed,0x0, +0xf2,0x0,0xfa,0x0,0xeb,0x0,0xcb,0x0,0xb6,0x0,0x96,0x0, +0x67,0x0,0x64,0x0,0x81,0x0,0x90,0x0,0x8d,0x0,0x74,0x0, +0x7a,0x0,0x9d,0x0,0x83,0x0,0x75,0x0,0xa0,0x0,0x9f,0x0, +0x93,0x0,0xb3,0x0,0xd2,0x0,0xf0,0x0,0xb,0x1,0x13,0x1, +0x1a,0x1,0x11,0x1,0xed,0x0,0xcc,0x0,0xc6,0x0,0xcb,0x0, +0xd4,0x0,0xf7,0x0,0xd,0x1,0x2,0x1,0x1f,0x1,0x3c,0x1, +0x28,0x1,0x2f,0x1,0x3d,0x1,0x1a,0x1,0x8,0x1,0x12,0x1, +0x1e,0x1,0x2e,0x1,0x34,0x1,0x36,0x1,0x30,0x1,0x1b,0x1, +0x1d,0x1,0x2e,0x1,0x17,0x1,0xe5,0x0,0xd9,0x0,0xf3,0x0, +0xfe,0x0,0xfe,0x0,0xfc,0x0,0xe4,0x0,0xe4,0x0,0xf3,0x0, +0xd1,0x0,0xb6,0x0,0xc3,0x0,0xc0,0x0,0xbd,0x0,0xb9,0x0, +0xa3,0x0,0x9b,0x0,0x90,0x0,0x6c,0x0,0x57,0x0,0x5d,0x0, +0x6b,0x0,0x75,0x0,0x76,0x0,0x6a,0x0,0x68,0x0,0x92,0x0, +0x9d,0x0,0x64,0x0,0x59,0x0,0x71,0x0,0x54,0x0,0x47,0x0, +0x5e,0x0,0x49,0x0,0x27,0x0,0x20,0x0,0xd,0x0,0xe1,0xff, +0xc1,0xff,0xbf,0xff,0xcf,0xff,0xf4,0xff,0x8,0x0,0xe6,0xff, +0xd0,0xff,0xe0,0xff,0xe7,0xff,0xee,0xff,0xd1,0xff,0x87,0xff, +0x71,0xff,0x81,0xff,0x70,0xff,0x70,0xff,0x85,0xff,0x72,0xff, +0x57,0xff,0x61,0xff,0x61,0xff,0x3a,0xff,0x29,0xff,0x2f,0xff, +0x21,0xff,0x2a,0xff,0x42,0xff,0x3e,0xff,0x49,0xff,0x46,0xff, +0x1d,0xff,0x2e,0xff,0x5f,0xff,0x45,0xff,0x1b,0xff,0x23,0xff, +0x32,0xff,0x2d,0xff,0x32,0xff,0x47,0xff,0x4a,0xff,0x2e,0xff, +0xd,0xff,0xff,0xfe,0x11,0xff,0x36,0xff,0x3c,0xff,0x10,0xff, +0xf2,0xfe,0x13,0xff,0x37,0xff,0x3a,0xff,0x47,0xff,0x51,0xff, +0x4e,0xff,0x5f,0xff,0x5d,0xff,0x49,0xff,0x54,0xff,0x44,0xff, +0x23,0xff,0x42,0xff,0x53,0xff,0x2b,0xff,0x28,0xff,0x24,0xff, +0xef,0xfe,0xe6,0xfe,0x0,0xff,0xf1,0xfe,0xe8,0xfe,0xee,0xfe, +0xd1,0xfe,0xae,0xfe,0x9a,0xfe,0x93,0xfe,0xb8,0xfe,0xde,0xfe, +0xd2,0xfe,0xc1,0xfe,0xc8,0xfe,0xd0,0xfe,0xc5,0xfe,0xaa,0xfe, +0xa0,0xfe,0xa8,0xfe,0xac,0xfe,0xc9,0xfe,0xf7,0xfe,0x5,0xff, +0xf6,0xfe,0xc7,0xfe,0x95,0xfe,0x9a,0xfe,0xb2,0xfe,0xb5,0xfe, +0xc1,0xfe,0xb7,0xfe,0x9e,0xfe,0xb4,0xfe,0xcf,0xfe,0xc3,0xfe, +0xab,0xfe,0x8a,0xfe,0x86,0xfe,0xb3,0xfe,0xc7,0xfe,0xb7,0xfe, +0x96,0xfe,0x70,0xfe,0x91,0xfe,0xca,0xfe,0x97,0xfe,0x5c,0xfe, +0x78,0xfe,0x89,0xfe,0x7e,0xfe,0x7c,0xfe,0x63,0xfe,0x55,0xfe, +0x71,0xfe,0x80,0xfe,0x71,0xfe,0x72,0xfe,0x94,0xfe,0xb7,0xfe, +0xb6,0xfe,0x97,0xfe,0x85,0xfe,0x9b,0xfe,0xab,0xfe,0x8d,0xfe, +0x80,0xfe,0x98,0xfe,0x9e,0xfe,0x9d,0xfe,0xbf,0xfe,0xf2,0xfe, +0x6,0xff,0xdb,0xfe,0xb5,0xfe,0xe9,0xfe,0xe,0xff,0xd9,0xfe, +0xd0,0xfe,0xee,0xfe,0xb3,0xfe,0x7a,0xfe,0x71,0xfe,0x62,0xfe, +0x91,0xfe,0xc3,0xfe,0x9d,0xfe,0x95,0xfe,0xa2,0xfe,0x7b,0xfe, +0x74,0xfe,0x82,0xfe,0x5b,0xfe,0x1f,0xfe,0x15,0xfe,0x50,0xfe, +0x72,0xfe,0x66,0xfe,0x77,0xfe,0x8a,0xfe,0x8e,0xfe,0x9d,0xfe, +0x96,0xfe,0x88,0xfe,0x8d,0xfe,0x80,0xfe,0x61,0xfe,0x53,0xfe, +0x56,0xfe,0x52,0xfe,0x53,0xfe,0x60,0xfe,0x6c,0xfe,0x79,0xfe, +0x63,0xfe,0x41,0xfe,0x54,0xfe,0x5e,0xfe,0x4a,0xfe,0x5f,0xfe, +0x7f,0xfe,0x81,0xfe,0x75,0xfe,0x75,0xfe,0x81,0xfe,0x56,0xfe, +0x1a,0xfe,0x1e,0xfe,0x23,0xfe,0x1d,0xfe,0x2f,0xfe,0x3a,0xfe, +0x4e,0xfe,0x6a,0xfe,0x79,0xfe,0x75,0xfe,0x3e,0xfe,0x0,0xfe, +0x6,0xfe,0x2d,0xfe,0x48,0xfe,0x4d,0xfe,0x38,0xfe,0x30,0xfe, +0x41,0xfe,0x4e,0xfe,0x4e,0xfe,0x45,0xfe,0x3c,0xfe,0x41,0xfe, +0x39,0xfe,0x12,0xfe,0xef,0xfd,0xe4,0xfd,0xf3,0xfd,0x4c,0xfe, +0xc7,0xfe,0xd8,0xfe,0x69,0xfe,0xf6,0xfd,0xcb,0xfd,0xc1,0xfd, +0x9c,0xfd,0x9c,0xfd,0x56,0xfe,0x81,0xff,0xfb,0xff,0xaf,0xff, +0x70,0xff,0x5e,0xff,0x5f,0xff,0x9c,0xff,0xe3,0xff,0xce,0xff, +0x1d,0xff,0x2b,0xfe,0x96,0xfd,0x57,0xfd,0x6d,0xfd,0x8,0xfe, +0xdb,0xfe,0x86,0xff,0xdd,0xff,0xe4,0xff,0xa9,0xff,0x34,0xff, +0xef,0xfe,0xf5,0xfe,0xa7,0xfe,0x2b,0xfe,0x53,0xfe,0x2f,0xff, +0x2f,0x0,0x9d,0x0,0x70,0x0,0x74,0x0,0x82,0x0,0xed,0xff, +0x26,0xff,0xd8,0xfe,0xc,0xff,0x34,0xff,0xe2,0xfe,0x96,0xfe, +0xe8,0xfe,0x89,0xff,0xaf,0xff,0x5a,0xff,0x33,0xff,0x36,0xff, +0xd,0xff,0xcb,0xfe,0xc5,0xfe,0xf9,0xfe,0x2,0xff,0x16,0xff, +0x75,0xff,0xc6,0xff,0x3,0x0,0x2c,0x0,0x22,0x0,0xfc,0xff, +0xba,0xff,0x43,0xff,0xcf,0xfe,0x18,0xff,0xe6,0xff,0xe,0x0, +0xc2,0xff,0xd9,0xff,0xf4,0xff,0x81,0xff,0x12,0xff,0x45,0xff, +0x7d,0xff,0x40,0xff,0xe2,0xfe,0xb2,0xfe,0x9f,0xfe,0x80,0xfe, +0x9d,0xfe,0x23,0xff,0xb3,0xff,0xe5,0xff,0xa8,0xff,0x60,0xff, +0x19,0xff,0xcb,0xfe,0xda,0xfe,0x40,0xff,0xa5,0xff,0x98,0xff, +0x4d,0xff,0x52,0xff,0x43,0xff,0x26,0xff,0x3b,0xff,0x45,0xff, +0x7d,0xff,0xb5,0xff,0xd5,0xff,0x20,0x0,0x44,0x0,0x2c,0x0, +0xda,0xff,0x45,0xff,0xaf,0xfe,0x21,0xfe,0xde,0xfd,0x41,0xfe, +0x21,0xff,0xd5,0xff,0xf2,0xff,0xee,0xff,0xf8,0xff,0xc3,0xff, +0x5f,0xff,0x2d,0xff,0x5f,0xff,0x6c,0xff,0x2c,0xff,0x40,0xff, +0xae,0xff,0x8,0x0,0x21,0x0,0x34,0x0,0x55,0x0,0x3a,0x0, +0xf5,0xff,0xa4,0xff,0x5c,0xff,0x53,0xff,0x6a,0xff,0x97,0xff, +0xe3,0xff,0x17,0x0,0x27,0x0,0x28,0x0,0x0,0x0,0x89,0xff, +0x15,0xff,0x2a,0xff,0x9a,0xff,0xed,0xff,0x42,0x0,0xad,0x0, +0x8e,0x0,0xe2,0xff,0x59,0xff,0xe2,0xfe,0x5c,0xfe,0x28,0xfe, +0x78,0xfe,0x3d,0xff,0xd,0x0,0xb0,0x0,0x3f,0x1,0xa8,0x1, +0xcf,0x1,0x94,0x1,0x1b,0x1,0x91,0x0,0x1a,0x0,0xfc,0xff, +0x1f,0x0,0x54,0x0,0x57,0x0,0xc,0x0,0xfc,0xff,0x6,0x0, +0xae,0xff,0x3b,0xff,0x27,0xff,0x68,0xff,0x8a,0xff,0x98,0xff, +0xf2,0xff,0x50,0x0,0x68,0x0,0x60,0x0,0x34,0x0,0xd0,0xff, +0x80,0xff,0x51,0xff,0x22,0xff,0x51,0xff,0xd4,0xff,0x20,0x0, +0x41,0x0,0x42,0x0,0xf4,0xff,0xaf,0xff,0xb5,0xff,0xc8,0xff, +0xca,0xff,0xbe,0xff,0xc6,0xff,0xe8,0xff,0xda,0xff,0xb6,0xff, +0x96,0xff,0x60,0xff,0x2e,0xff,0x2,0xff,0x3,0xff,0x37,0xff, +0x69,0xff,0xbe,0xff,0x31,0x0,0x83,0x0,0xad,0x0,0xd2,0x0, +0xd3,0x0,0xaf,0x0,0xd5,0x0,0xe,0x1,0x1a,0x1,0x31,0x1, +0x26,0x1,0x4,0x1,0xf1,0x0,0xfe,0x0,0x30,0x1,0x39,0x1, +0x10,0x1,0xbf,0x0,0x69,0x0,0x55,0x0,0x43,0x0,0xfe,0xff, +0xcc,0xff,0xc2,0xff,0x96,0xff,0x45,0xff,0x7,0xff,0xe7,0xfe, +0xcd,0xfe,0xc1,0xfe,0xd3,0xfe,0xe1,0xfe,0xf8,0xfe,0x6,0xff, +0x6,0xff,0x45,0xff,0x83,0xff,0xc7,0xff,0x4,0x0,0xef,0xff, +0xfd,0xff,0x2,0x0,0xcb,0xff,0x91,0xff,0x56,0xff,0x57,0xff, +0x6a,0xff,0x61,0xff,0x53,0xff,0x52,0xff,0x7e,0xff,0xaa,0xff, +0xbe,0xff,0xb2,0xff,0xb3,0xff,0xe2,0xff,0x15,0x0,0x59,0x0, +0x79,0x0,0x67,0x0,0x5b,0x0,0x3e,0x0,0x15,0x0,0xfd,0xff, +0x11,0x0,0x2a,0x0,0x47,0x0,0xa5,0x0,0xdf,0x0,0xd4,0x0, +0xd6,0x0,0xa8,0x0,0x56,0x0,0x44,0x0,0x40,0x0,0x2e,0x0, +0x29,0x0,0x6,0x0,0xcf,0xff,0x8a,0xff,0x36,0xff,0x0,0xff, +0xf7,0xfe,0x18,0xff,0x30,0xff,0x44,0xff,0x6c,0xff,0x7a,0xff, +0x84,0xff,0x8b,0xff,0x90,0xff,0xb8,0xff,0xd1,0xff,0xc7,0xff, +0xb9,0xff,0xc6,0xff,0xd9,0xff,0xd2,0xff,0xf5,0xff,0x2f,0x0, +0x34,0x0,0x3c,0x0,0x4d,0x0,0x3b,0x0,0x2c,0x0,0xb,0x0, +0x3,0x0,0x2f,0x0,0xfd,0xff,0xc0,0xff,0xd0,0xff,0xbd,0xff, +0xa6,0xff,0x98,0xff,0x86,0xff,0x92,0xff,0x8f,0xff,0xa5,0xff, +0xe1,0xff,0xd,0x0,0x2e,0x0,0x3b,0x0,0x55,0x0,0x70,0x0, +0x5f,0x0,0x49,0x0,0x28,0x0,0x1a,0x0,0x3b,0x0,0x31,0x0, +0x13,0x0,0x18,0x0,0x3a,0x0,0x6c,0x0,0x80,0x0,0xa0,0x0, +0xc6,0x0,0xe2,0x0,0xd,0x1,0xf9,0x0,0xdb,0x0,0xdd,0x0, +0xbd,0x0,0xa3,0x0,0x99,0x0,0xad,0x0,0xca,0x0,0xb6,0x0, +0xba,0x0,0xd9,0x0,0xe7,0x0,0xec,0x0,0xd5,0x0,0xb2,0x0, +0xb2,0x0,0xc6,0x0,0xcd,0x0,0xd6,0x0,0xe4,0x0,0xd5,0x0, +0xa2,0x0,0x58,0x0,0x1f,0x0,0x1e,0x0,0x2e,0x0,0x19,0x0, +0x0,0x0,0xfb,0xff,0x16,0x0,0x50,0x0,0x66,0x0,0x6a,0x0, +0x75,0x0,0x67,0x0,0x53,0x0,0x30,0x0,0x18,0x0,0x22,0x0, +0x1c,0x0,0xa,0x0,0xed,0xff,0xde,0xff,0xf0,0xff,0xf9,0xff, +0xfb,0xff,0xe4,0xff,0xd8,0xff,0xff,0xff,0xe8,0xff,0xc8,0xff, +0xea,0xff,0xf5,0xff,0xed,0xff,0xcf,0xff,0xbb,0xff,0xd1,0xff, +0xc1,0xff,0xc3,0xff,0xcd,0xff,0xba,0xff,0xd6,0xff,0xee,0xff, +0xef,0xff,0xe5,0xff,0xc1,0xff,0xae,0xff,0xb0,0xff,0xe8,0xff, +0x1c,0x0,0x20,0x0,0x32,0x0,0x3b,0x0,0x2f,0x0,0x1c,0x0, +0xd,0x0,0x1e,0x0,0x35,0x0,0x51,0x0,0x69,0x0,0x63,0x0, +0x75,0x0,0x97,0x0,0x98,0x0,0x9a,0x0,0xb2,0x0,0xcc,0x0, +0xcd,0x0,0xb2,0x0,0x9f,0x0,0xa6,0x0,0xab,0x0,0x89,0x0, +0x74,0x0,0x87,0x0,0x73,0x0,0x68,0x0,0x78,0x0,0x86,0x0, +0xad,0x0,0xb5,0x0,0xbb,0x0,0xc2,0x0,0xb1,0x0,0xbd,0x0, +0xbd,0x0,0xc8,0x0,0xcc,0x0,0xc0,0x0,0xe2,0x0,0xd8,0x0, +0xbf,0x0,0xd8,0x0,0xe4,0x0,0x7,0x1,0x30,0x1,0x22,0x1, +0xe,0x1,0x16,0x1,0x18,0x1,0x10,0x1,0xd,0x1,0x18,0x1, +0x24,0x1,0xc,0x1,0xff,0x0,0x9,0x1,0xa,0x1,0x29,0x1, +0x40,0x1,0x2f,0x1,0x2b,0x1,0x3b,0x1,0x3d,0x1,0x35,0x1, +0x2e,0x1,0x26,0x1,0x2c,0x1,0x30,0x1,0x33,0x1,0x32,0x1, +0x12,0x1,0xfe,0x0,0xf5,0x0,0xf8,0x0,0x8,0x1,0xf6,0x0, +0xe7,0x0,0xee,0x0,0xde,0x0,0xc1,0x0,0xcc,0x0,0xe8,0x0, +0xd4,0x0,0xc0,0x0,0xb5,0x0,0x9c,0x0,0xc3,0x0,0x20,0x1, +0x39,0x1,0x1d,0x1,0x24,0x1,0x2c,0x1,0x22,0x1,0x1e,0x1, +0x22,0x1,0x3c,0x1,0x46,0x1,0x4d,0x1,0x66,0x1,0x68,0x1, +0x6b,0x1,0x6d,0x1,0x5c,0x1,0x45,0x1,0x2e,0x1,0x16,0x1, +0x21,0x1,0x4d,0x1,0x52,0x1,0x41,0x1,0x39,0x1,0x2d,0x1, +0x3a,0x1,0x4b,0x1,0x5f,0x1,0x68,0x1,0x6d,0x1,0x85,0x1, +0x76,0x1,0x56,0x1,0x62,0x1,0x86,0x1,0xa8,0x1,0xba,0x1, +0xb5,0x1,0xad,0x1,0xb7,0x1,0xc2,0x1,0xbd,0x1,0xa1,0x1, +0x7c,0x1,0x69,0x1,0x64,0x1,0x8c,0x1,0xa9,0x1,0x91,0x1, +0x91,0x1,0x7d,0x1,0x51,0x1,0x54,0x1,0x4e,0x1,0x2b,0x1, +0x1b,0x1,0x2e,0x1,0x4b,0x1,0x52,0x1,0x44,0x1,0x26,0x1, +0x11,0x1,0xa,0x1,0xfe,0x0,0x2,0x1,0xc,0x1,0xe,0x1, +0x12,0x1,0xfe,0x0,0xe2,0x0,0xe6,0x0,0xdf,0x0,0xb1,0x0, +0x9a,0x0,0xaa,0x0,0xa5,0x0,0x88,0x0,0x7b,0x0,0x69,0x0, +0x4e,0x0,0x57,0x0,0x74,0x0,0x6d,0x0,0x56,0x0,0x4c,0x0, +0x44,0x0,0x42,0x0,0x45,0x0,0x61,0x0,0x89,0x0,0x6d,0x0, +0x37,0x0,0x33,0x0,0x2f,0x0,0xc,0x0,0xa,0x0,0x30,0x0, +0x4a,0x0,0x44,0x0,0x40,0x0,0x5b,0x0,0x4e,0x0,0x26,0x0, +0x22,0x0,0x2e,0x0,0x4f,0x0,0x6d,0x0,0x7b,0x0,0x86,0x0, +0x88,0x0,0xa1,0x0,0xb0,0x0,0xb6,0x0,0xc6,0x0,0xc0,0x0, +0xc0,0x0,0xbc,0x0,0xc7,0x0,0xd4,0x0,0xca,0x0,0xe4,0x0, +0xfa,0x0,0xe7,0x0,0xce,0x0,0xdb,0x0,0x2,0x1,0x10,0x1, +0x16,0x1,0x1f,0x1,0x45,0x1,0x54,0x1,0x40,0x1,0x5a,0x1, +0x60,0x1,0x61,0x1,0x6c,0x1,0x64,0x1,0x7b,0x1,0x85,0x1, +0x88,0x1,0x80,0x1,0x5b,0x1,0x58,0x1,0x5c,0x1,0x4e,0x1, +0x48,0x1,0x6a,0x1,0x8a,0x1,0x78,0x1,0x63,0x1,0x64,0x1, +0x7c,0x1,0x7d,0x1,0x70,0x1,0x6c,0x1,0x49,0x1,0x34,0x1, +0x26,0x1,0x1c,0x1,0x36,0x1,0x36,0x1,0x35,0x1,0x53,0x1, +0x5b,0x1,0x43,0x1,0x44,0x1,0x38,0x1,0xb,0x1,0xa,0x1, +0x13,0x1,0x14,0x1,0xf,0x1,0xef,0x0,0xf9,0x0,0x11,0x1, +0x5,0x1,0xc,0x1,0x24,0x1,0x20,0x1,0x8,0x1,0xff,0x0, +0xa,0x1,0x2d,0x1,0x44,0x1,0x3f,0x1,0x34,0x1,0x1a,0x1, +0xe,0x1,0xf9,0x0,0xdf,0x0,0xef,0x0,0xe2,0x0,0xc2,0x0, +0xe0,0x0,0xc,0x1,0x6,0x1,0x8,0x1,0x25,0x1,0x10,0x1, +0xf8,0x0,0x2,0x1,0x2,0x1,0x10,0x1,0x11,0x1,0x4,0x1, +0xc,0x1,0xf,0x1,0x1e,0x1,0x32,0x1,0x44,0x1,0x49,0x1, +0x11,0x1,0xe6,0x0,0xfc,0x0,0xb,0x1,0x13,0x1,0x47,0x1, +0x75,0x1,0x41,0x1,0xe5,0x0,0xc4,0x0,0xd6,0x0,0xe0,0x0, +0xc4,0x0,0xbd,0x0,0xd5,0x0,0xcd,0x0,0xbb,0x0,0xd2,0x0, +0xf2,0x0,0xd0,0x0,0xa7,0x0,0xb3,0x0,0xae,0x0,0xb0,0x0, +0xb2,0x0,0xac,0x0,0xb7,0x0,0x9c,0x0,0x83,0x0,0x87,0x0, +0x9f,0x0,0xc4,0x0,0xb2,0x0,0xa5,0x0,0xbe,0x0,0xc1,0x0, +0xb1,0x0,0xab,0x0,0xb0,0x0,0x92,0x0,0x80,0x0,0x8c,0x0, +0x80,0x0,0x99,0x0,0x9b,0x0,0x60,0x0,0x50,0x0,0x54,0x0, +0x6c,0x0,0xaa,0x0,0xb0,0x0,0x99,0x0,0x83,0x0,0x5c,0x0, +0x57,0x0,0x47,0x0,0x28,0x0,0x4a,0x0,0x6f,0x0,0x6c,0x0, +0x6b,0x0,0x6b,0x0,0x5d,0x0,0x74,0x0,0xa9,0x0,0x8e,0x0, +0x73,0x0,0x8b,0x0,0x8f,0x0,0x9c,0x0,0x87,0x0,0x69,0x0, +0x83,0x0,0x79,0x0,0x65,0x0,0x7a,0x0,0x7d,0x0,0x6d,0x0, +0x64,0x0,0x60,0x0,0x5d,0x0,0x66,0x0,0x72,0x0,0x62,0x0, +0x5a,0x0,0x78,0x0,0x8b,0x0,0x7e,0x0,0x6d,0x0,0x63,0x0, +0x54,0x0,0x3a,0x0,0x42,0x0,0x66,0x0,0x5b,0x0,0x46,0x0, +0x42,0x0,0x3e,0x0,0x4e,0x0,0x41,0x0,0x29,0x0,0x45,0x0, +0x4d,0x0,0x50,0x0,0x76,0x0,0x74,0x0,0x7a,0x0,0x87,0x0, +0x69,0x0,0x75,0x0,0x88,0x0,0x95,0x0,0xb7,0x0,0xa1,0x0, +0x90,0x0,0xab,0x0,0xaf,0x0,0x8d,0x0,0x7e,0x0,0xb8,0x0, +0xd7,0x0,0xb5,0x0,0xb5,0x0,0xd3,0x0,0xda,0x0,0xce,0x0, +0xc3,0x0,0xbe,0x0,0xd3,0x0,0xcb,0x0,0xa2,0x0,0x99,0x0, +0x92,0x0,0x8d,0x0,0x95,0x0,0x96,0x0,0x8e,0x0,0x82,0x0, +0x7b,0x0,0x6c,0x0,0x7f,0x0,0xa2,0x0,0x77,0x0,0x3d,0x0, +0x2c,0x0,0x19,0x0,0xc,0x0,0x17,0x0,0xf4,0xff,0xcc,0xff, +0xda,0xff,0xca,0xff,0xcf,0xff,0xde,0xff,0xbd,0xff,0xce,0xff, +0xe8,0xff,0xd8,0xff,0xaa,0xff,0x79,0xff,0x6a,0xff,0x50,0xff, +0x5c,0xff,0x6c,0xff,0x4c,0xff,0x51,0xff,0x5a,0xff,0x46,0xff, +0x22,0xff,0xfa,0xfe,0x1,0xff,0x4,0xff,0xe7,0xfe,0xfe,0xfe, +0x41,0xff,0x4f,0xff,0x19,0xff,0xee,0xfe,0x0,0xff,0x16,0xff, +0x11,0xff,0x15,0xff,0xb,0xff,0x11,0xff,0x21,0xff,0xff,0xfe, +0xe2,0xfe,0xef,0xfe,0x7,0xff,0xef,0xfe,0xcf,0xfe,0xe6,0xfe, +0xe1,0xfe,0xc4,0xfe,0xae,0xfe,0xa4,0xfe,0xcc,0xfe,0xe4,0xfe, +0xee,0xfe,0xb,0xff,0x1b,0xff,0xf,0xff,0xde,0xfe,0xd5,0xfe, +0xe3,0xfe,0xc5,0xfe,0xbd,0xfe,0xc1,0xfe,0xb5,0xfe,0xc8,0xfe, +0xe8,0xfe,0xf0,0xfe,0xe4,0xfe,0xe6,0xfe,0xfd,0xfe,0xa,0xff, +0x1e,0xff,0x13,0xff,0xd4,0xfe,0xe2,0xfe,0x1c,0xff,0x20,0xff, +0x22,0xff,0x15,0xff,0x1,0xff,0xfc,0xfe,0x4,0xff,0x23,0xff, +0x24,0xff,0xb,0xff,0xe6,0xfe,0xc6,0xfe,0xe9,0xfe,0x18,0xff, +0x3a,0xff,0x5c,0xff,0x52,0xff,0x48,0xff,0x3c,0xff,0x8,0xff, +0xfc,0xfe,0x1f,0xff,0x2d,0xff,0x16,0xff,0xf6,0xfe,0xf0,0xfe, +0xf3,0xfe,0x2,0xff,0x12,0xff,0x12,0xff,0x1e,0xff,0x19,0xff, +0x19,0xff,0x36,0xff,0x44,0xff,0x4d,0xff,0x3a,0xff,0x1e,0xff, +0x14,0xff,0x1b,0xff,0x1d,0xff,0xed,0xfe,0xd5,0xfe,0xdd,0xfe, +0xd2,0xfe,0xdf,0xfe,0xea,0xfe,0xda,0xfe,0xe4,0xfe,0xfb,0xfe, +0xed,0xfe,0xb9,0xfe,0x95,0xfe,0xa3,0xfe,0xb4,0xfe,0x9a,0xfe, +0x91,0xfe,0xa9,0xfe,0xb0,0xfe,0x9c,0xfe,0x83,0xfe,0x72,0xfe, +0x75,0xfe,0x91,0xfe,0x9e,0xfe,0xa1,0xfe,0x9e,0xfe,0x75,0xfe, +0x51,0xfe,0x2f,0xfe,0x3a,0xfe,0x73,0xfe,0x8e,0xfe,0x8e,0xfe, +0x6a,0xfe,0x69,0xfe,0x77,0xfe,0x4e,0xfe,0x53,0xfe,0x7b,0xfe, +0x89,0xfe,0x77,0xfe,0x54,0xfe,0x48,0xfe,0x2c,0xfe,0x1e,0xfe, +0x4f,0xfe,0x89,0xfe,0x9f,0xfe,0x98,0xfe,0x63,0xfe,0x45,0xfe, +0x86,0xfe,0x9c,0xfe,0x87,0xfe,0x8f,0xfe,0x91,0xfe,0xb9,0xfe, +0xda,0xfe,0xd4,0xfe,0xcc,0xfe,0xbc,0xfe,0xb4,0xfe,0xc6,0xfe, +0x5,0xff,0x1e,0xff,0x19,0xff,0x33,0xff,0x2e,0xff,0x3e,0xff, +0x3a,0xff,0xea,0xfe,0xc4,0xfe,0xc7,0xfe,0xda,0xfe,0xfe,0xfe, +0x15,0xff,0x23,0xff,0xf,0xff,0xf1,0xfe,0x2,0xff,0x1c,0xff, +0x14,0xff,0x3,0xff,0xfb,0xfe,0xd,0xff,0xf,0xff,0xf6,0xfe, +0x8,0xff,0x8,0xff,0xfb,0xfe,0x2c,0xff,0x30,0xff,0xf8,0xfe, +0xdc,0xfe,0xdc,0xfe,0xd0,0xfe,0xd2,0xfe,0xf3,0xfe,0xf5,0xfe, +0xec,0xfe,0xd1,0xfe,0xb5,0xfe,0xb5,0xfe,0x90,0xfe,0x8c,0xfe, +0xb8,0xfe,0xcf,0xfe,0xcf,0xfe,0xad,0xfe,0xa6,0xfe,0xae,0xfe, +0xa4,0xfe,0xaa,0xfe,0x8b,0xfe,0x58,0xfe,0x56,0xfe,0x7a,0xfe, +0x85,0xfe,0x7d,0xfe,0x87,0xfe,0x80,0xfe,0x7a,0xfe,0x85,0xfe, +0x81,0xfe,0x73,0xfe,0x76,0xfe,0x82,0xfe,0x64,0xfe,0x45,0xfe, +0x4f,0xfe,0x52,0xfe,0x4f,0xfe,0x76,0xfe,0xbb,0xfe,0xd9,0xfe, +0xd9,0xfe,0xc6,0xfe,0x9e,0xfe,0x8e,0xfe,0x9e,0xfe,0xcc,0xfe, +0xfd,0xfe,0xe9,0xfe,0xaf,0xfe,0x9e,0xfe,0x9a,0xfe,0xa8,0xfe, +0xdc,0xfe,0xef,0xfe,0xdd,0xfe,0xd5,0xfe,0xef,0xfe,0x18,0xff, +0x2a,0xff,0x4a,0xff,0x58,0xff,0x50,0xff,0x5f,0xff,0x64,0xff, +0x67,0xff,0x76,0xff,0x93,0xff,0xb6,0xff,0xc5,0xff,0xc4,0xff, +0xd7,0xff,0xfc,0xff,0xf5,0xff,0xdf,0xff,0xe9,0xff,0xfe,0xff, +0x13,0x0,0x18,0x0,0x1a,0x0,0x9,0x0,0x1,0x0,0x24,0x0, +0x3c,0x0,0x1f,0x0,0xf0,0xff,0x0,0x0,0x12,0x0,0xec,0xff, +0xdd,0xff,0xeb,0xff,0xd7,0xff,0xc0,0xff,0xfd,0xff,0x11,0x0, +0xc9,0xff,0xc6,0xff,0xd7,0xff,0xe2,0xff,0xfe,0xff,0xf1,0xff, +0xd1,0xff,0xb2,0xff,0xa2,0xff,0xa1,0xff,0xa1,0xff,0x9b,0xff, +0x88,0xff,0x93,0xff,0x9b,0xff,0x73,0xff,0x72,0xff,0x96,0xff, +0x86,0xff,0x79,0xff,0xa2,0xff,0xc8,0xff,0xb9,0xff,0x6a,0xff, +0x46,0xff,0x67,0xff,0x71,0xff,0x71,0xff,0x6c,0xff,0x58,0xff, +0x45,0xff,0x42,0xff,0x5a,0xff,0x67,0xff,0x62,0xff,0x55,0xff, +0x50,0xff,0x5c,0xff,0x54,0xff,0x56,0xff,0x6e,0xff,0x73,0xff, +0x7c,0xff,0x72,0xff,0x41,0xff,0x39,0xff,0x76,0xff,0xbc,0xff, +0xc0,0xff,0x8e,0xff,0x97,0xff,0xbb,0xff,0xa4,0xff,0x8b,0xff, +0x91,0xff,0x96,0xff,0x97,0xff,0xb3,0xff,0xd7,0xff,0xdb,0xff, +0xd4,0xff,0xe0,0xff,0xfb,0xff,0x7,0x0,0xff,0xff,0xee,0xff, +0xeb,0xff,0xfb,0xff,0xf5,0xff,0xf0,0xff,0xfa,0xff,0xfd,0xff, +0x17,0x0,0x35,0x0,0x49,0x0,0x6b,0x0,0x80,0x0,0x7d,0x0, +0x71,0x0,0x6b,0x0,0x74,0x0,0x93,0x0,0xac,0x0,0x9b,0x0, +0x96,0x0,0xae,0x0,0xca,0x0,0xeb,0x0,0x11,0x1,0x34,0x1, +0x1e,0x1,0x6,0x1,0x23,0x1,0x1c,0x1,0x11,0x1,0x2a,0x1, +0x3e,0x1,0x3f,0x1,0x42,0x1,0x50,0x1,0x41,0x1,0x40,0x1, +0x51,0x1,0x49,0x1,0x5b,0x1,0x7e,0x1,0x85,0x1,0x73,0x1, +0x71,0x1,0x69,0x1,0x51,0x1,0x60,0x1,0x58,0x1,0x40,0x1, +0x28,0x1,0x16,0x1,0x37,0x1,0x33,0x1,0xe,0x1,0xfd,0x0, +0x10,0x1,0x21,0x1,0xfa,0x0,0xf4,0x0,0x9,0x1,0xa,0x1, +0x6,0x1,0xee,0x0,0xc7,0x0,0xbe,0x0,0xdc,0x0,0xca,0x0, +0xbd,0x0,0xcf,0x0,0xb0,0x0,0x9a,0x0,0xa2,0x0,0xc5,0x0, +0xef,0x0,0xfa,0x0,0xea,0x0,0xbf,0x0,0xb0,0x0,0xb3,0x0, +0xbb,0x0,0xc6,0x0,0xbb,0x0,0xbf,0x0,0xd5,0x0,0xde,0x0, +0xb4,0x0,0xb3,0x0,0xd9,0x0,0xb0,0x0,0xa5,0x0,0xc2,0x0, +0xba,0x0,0xac,0x0,0xb8,0x0,0xd5,0x0,0xc3,0x0,0xaf,0x0, +0xc2,0x0,0xd1,0x0,0xd0,0x0,0xbc,0x0,0xa5,0x0,0x98,0x0, +0xba,0x0,0xd9,0x0,0xb2,0x0,0x89,0x0,0x87,0x0,0xac,0x0, +0xc8,0x0,0xbc,0x0,0xb3,0x0,0xb0,0x0,0xba,0x0,0xb9,0x0, +0xa1,0x0,0xaf,0x0,0xbe,0x0,0xb0,0x0,0xb0,0x0,0xad,0x0, +0x9d,0x0,0x8d,0x0,0x96,0x0,0xc2,0x0,0xba,0x0,0xc3,0x0, +0xf4,0x0,0xd7,0x0,0xb2,0x0,0xa8,0x0,0x9a,0x0,0xa0,0x0, +0xa9,0x0,0xa6,0x0,0x90,0x0,0x7c,0x0,0x76,0x0,0x85,0x0, +0x9d,0x0,0x97,0x0,0x91,0x0,0x8e,0x0,0x8e,0x0,0x9d,0x0, +0x92,0x0,0xa8,0x0,0xb9,0x0,0x8e,0x0,0x91,0x0,0x8a,0x0, +0x6b,0x0,0x86,0x0,0x94,0x0,0xa4,0x0,0xa2,0x0,0x88,0x0, +0xa8,0x0,0xa9,0x0,0x88,0x0,0x78,0x0,0x51,0x0,0x4c,0x0, +0x6f,0x0,0x80,0x0,0x71,0x0,0x50,0x0,0x79,0x0,0xbe,0x0, +0xa3,0x0,0x7f,0x0,0x88,0x0,0x94,0x0,0xa1,0x0,0x97,0x0, +0xa9,0x0,0xd5,0x0,0xbd,0x0,0x8b,0x0,0x74,0x0,0x71,0x0, +0x6a,0x0,0x4d,0x0,0x39,0x0,0x35,0x0,0x22,0x0,0xf0,0xff, +0xe4,0xff,0xf3,0xff,0xe0,0xff,0xcf,0xff,0xd2,0xff,0xce,0xff, +0xb9,0xff,0xb1,0xff,0xbb,0xff,0xbc,0xff,0xba,0xff,0xbd,0xff, +0xd3,0xff,0xcf,0xff,0xab,0xff,0xa9,0xff,0xc6,0xff,0xd8,0xff, +0xd7,0xff,0xf9,0xff,0x6,0x0,0xce,0xff,0xa2,0xff,0xa3,0xff, +0xdc,0xff,0xff,0xff,0xd5,0xff,0xba,0xff,0xbc,0xff,0xb9,0xff, +0xb5,0xff,0xa4,0xff,0x8a,0xff,0x86,0xff,0x8a,0xff,0x88,0xff, +0x84,0xff,0x73,0xff,0x7d,0xff,0x82,0xff,0x6a,0xff,0x6a,0xff, +0x67,0xff,0x61,0xff,0x75,0xff,0x84,0xff,0x73,0xff,0x63,0xff, +0x6e,0xff,0x81,0xff,0x88,0xff,0x7b,0xff,0x84,0xff,0x89,0xff, +0x7a,0xff,0x83,0xff,0x85,0xff,0x6c,0xff,0x4d,0xff,0x6a,0xff, +0x80,0xff,0x50,0xff,0x61,0xff,0xa6,0xff,0xa5,0xff,0x69,0xff, +0x65,0xff,0x80,0xff,0x84,0xff,0xbb,0xff,0xa8,0xff,0x4c,0xff, +0x4a,0xff,0x6e,0xff,0x74,0xff,0x6b,0xff,0x87,0xff,0x96,0xff, +0x90,0xff,0xa6,0xff,0x96,0xff,0x8a,0xff,0x93,0xff,0x9a,0xff, +0xa4,0xff,0x8d,0xff,0x79,0xff,0x92,0xff,0xa7,0xff,0x95,0xff, +0x88,0xff,0x7e,0xff,0x73,0xff,0x78,0xff,0x72,0xff,0x89,0xff, +0x96,0xff,0x8e,0xff,0x95,0xff,0x72,0xff,0x6e,0xff,0x97,0xff, +0x86,0xff,0x62,0xff,0x70,0xff,0x8d,0xff,0x84,0xff,0x75,0xff, +0x75,0xff,0x8b,0xff,0x93,0xff,0x8a,0xff,0xaa,0xff,0x78,0xff, +0x18,0xff,0x3c,0xff,0x73,0xff,0x92,0xff,0xbf,0xff,0xc8,0xff, +0xcc,0xff,0xcd,0xff,0xc3,0xff,0xc9,0xff,0xd7,0xff,0xe6,0xff, +0xe7,0xff,0xd3,0xff,0xc9,0xff,0xd7,0xff,0xec,0xff,0x7,0x0, +0xfc,0xff,0xc7,0xff,0xc0,0xff,0xd8,0xff,0x1,0x0,0x12,0x0, +0xd7,0xff,0xc3,0xff,0xe3,0xff,0x0,0x0,0xd,0x0,0x9,0x0, +0x17,0x0,0xfd,0xff,0xeb,0xff,0x14,0x0,0x28,0x0,0x26,0x0, +0x1e,0x0,0x1e,0x0,0x2f,0x0,0x68,0x0,0xb5,0x0,0xae,0x0, +0x77,0x0,0x66,0x0,0x76,0x0,0x78,0x0,0x88,0x0,0xc5,0x0, +0xd0,0x0,0x9e,0x0,0x8c,0x0,0x8d,0x0,0x7a,0x0,0x71,0x0, +0x50,0x0,0x34,0x0,0x51,0x0,0x33,0x0,0x17,0x0,0x40,0x0, +0x46,0x0,0x37,0x0,0x23,0x0,0xc,0x0,0x6,0x0,0xfa,0xff, +0xca,0xff,0xa0,0xff,0xae,0xff,0xb1,0xff,0x93,0xff,0x88,0xff, +0xbb,0xff,0xe1,0xff,0xb3,0xff,0xa8,0xff,0xaa,0xff,0xa4,0xff, +0xd4,0xff,0xce,0xff,0xa2,0xff,0xab,0xff,0xab,0xff,0xb0,0xff, +0xe2,0xff,0xd1,0xff,0x9c,0xff,0x97,0xff,0x8e,0xff,0x92,0xff, +0x94,0xff,0x78,0xff,0x70,0xff,0x93,0xff,0xca,0xff,0xbe,0xff, +0x7d,0xff,0x76,0xff,0x9d,0xff,0x98,0xff,0x86,0xff,0xa8,0xff, +0xc0,0xff,0xc6,0xff,0xa0,0xff,0x74,0xff,0xac,0xff,0xd3,0xff, +0xd6,0xff,0xf2,0xff,0xec,0xff,0xbd,0xff,0xb0,0xff,0xd2,0xff, +0xd3,0xff,0xe3,0xff,0x14,0x0,0x13,0x0,0x10,0x0,0x26,0x0, +0x20,0x0,0x10,0x0,0x22,0x0,0x10,0x0,0xee,0xff,0x2,0x0, +0xfd,0xff,0xee,0xff,0xfd,0xff,0x11,0x0,0x16,0x0,0x19,0x0, +0x4c,0x0,0x76,0x0,0x68,0x0,0x4a,0x0,0x3c,0x0,0x4d,0x0, +0x57,0x0,0x47,0x0,0x3e,0x0,0x51,0x0,0x5c,0x0,0x50,0x0, +0x40,0x0,0x42,0x0,0x5e,0x0,0x5c,0x0,0x4c,0x0,0x46,0x0, +0x38,0x0,0x3f,0x0,0x48,0x0,0x52,0x0,0x6e,0x0,0x71,0x0, +0x67,0x0,0x6c,0x0,0x5c,0x0,0x44,0x0,0x40,0x0,0x37,0x0, +0x2a,0x0,0x4,0x0,0xeb,0xff,0xf6,0xff,0xe8,0xff,0xfa,0xff, +0x10,0x0,0xec,0xff,0xe7,0xff,0xeb,0xff,0xc8,0xff,0xc3,0xff, +0xeb,0xff,0xf3,0xff,0xc1,0xff,0xa9,0xff,0xb8,0xff,0xbe,0xff, +0xbf,0xff,0xc9,0xff,0xc6,0xff,0xb5,0xff,0xc3,0xff,0xcd,0xff, +0xaf,0xff,0xb1,0xff,0xbe,0xff,0xb7,0xff,0xd4,0xff,0xe6,0xff, +0xe8,0xff,0xfe,0xff,0xfc,0xff,0xdc,0xff,0xb9,0xff,0xbb,0xff, +0xe6,0xff,0xea,0xff,0xcc,0xff,0xcd,0xff,0xd1,0xff,0xbd,0xff, +0xb9,0xff,0xc6,0xff,0xce,0xff,0xd0,0xff,0xbf,0xff,0xa6,0xff, +0xab,0xff,0xab,0xff,0x92,0xff,0xa4,0xff,0xb5,0xff,0xa7,0xff, +0xad,0xff,0xba,0xff,0xd5,0xff,0xd8,0xff,0xd4,0xff,0xe7,0xff, +0xc3,0xff,0x95,0xff,0x8c,0xff,0x9c,0xff,0x93,0xff,0x7a,0xff, +0x99,0xff,0xa0,0xff,0x92,0xff,0x95,0xff,0xa5,0xff,0xbd,0xff, +0xab,0xff,0xa9,0xff,0x9a,0xff,0x8b,0xff,0xb2,0xff,0xb7,0xff, +0xa4,0xff,0x93,0xff,0x91,0xff,0x9f,0xff,0xab,0xff,0xaa,0xff, +0xaa,0xff,0xc9,0xff,0xb9,0xff,0x82,0xff,0x69,0xff,0x6e,0xff, +0x9b,0xff,0xaf,0xff,0xab,0xff,0xb2,0xff,0xbd,0xff,0xb9,0xff, +0xa8,0xff,0xc2,0xff,0xd9,0xff,0xd3,0xff,0xd7,0xff,0xd6,0xff, +0xbc,0xff,0xb3,0xff,0xca,0xff,0xad,0xff,0x83,0xff,0x7c,0xff, +0x74,0xff,0x68,0xff,0x65,0xff,0x93,0xff,0x99,0xff,0x70,0xff, +0x85,0xff,0x95,0xff,0x7f,0xff,0x62,0xff,0x56,0xff,0x52,0xff, +0x3b,0xff,0x24,0xff,0x1c,0xff,0x4d,0xff,0x7c,0xff,0x5c,0xff, +0x4d,0xff,0x65,0xff,0x63,0xff,0x4b,0xff,0x44,0xff,0x51,0xff, +0x4a,0xff,0x45,0xff,0x77,0xff,0x96,0xff,0x8b,0xff,0x79,0xff, +0x6b,0xff,0x8a,0xff,0xaa,0xff,0xb2,0xff,0xae,0xff,0x8c,0xff, +0x93,0xff,0xac,0xff,0xb8,0xff,0xd5,0xff,0xd2,0xff,0xc0,0xff, +0xcd,0xff,0xd2,0xff,0xd3,0xff,0xe3,0xff,0xd9,0xff,0xca,0xff, +0xd9,0xff,0xef,0xff,0xfb,0xff,0xf3,0xff,0xfa,0xff,0x9,0x0, +0xfb,0xff,0xe6,0xff,0xe8,0xff,0xb,0x0,0x10,0x0,0xa,0x0, +0x27,0x0,0x30,0x0,0x3f,0x0,0x62,0x0,0x66,0x0,0x4a,0x0, +0x4a,0x0,0x5d,0x0,0x35,0x0,0x21,0x0,0x34,0x0,0x38,0x0, +0x54,0x0,0x62,0x0,0x54,0x0,0x4b,0x0,0x49,0x0,0x50,0x0, +0x3b,0x0,0x24,0x0,0x2e,0x0,0x32,0x0,0x32,0x0,0x1f,0x0, +0x15,0x0,0x49,0x0,0x69,0x0,0x51,0x0,0x31,0x0,0x27,0x0, +0x2c,0x0,0x2a,0x0,0x3b,0x0,0x39,0x0,0x1f,0x0,0x1e,0x0, +0x1b,0x0,0x2e,0x0,0x37,0x0,0xf8,0xff,0xd6,0xff,0xfd,0xff, +0x16,0x0,0x2,0x0,0xed,0xff,0xef,0xff,0xe1,0xff,0xd0,0xff, +0xe9,0xff,0xe7,0xff,0xc1,0xff,0xb7,0xff,0xbd,0xff,0xcd,0xff, +0xc2,0xff,0xac,0xff,0xad,0xff,0x9f,0xff,0xa6,0xff,0xb7,0xff, +0xb4,0xff,0xae,0xff,0xaf,0xff,0xaf,0xff,0xa4,0xff,0xb8,0xff, +0xbb,0xff,0x9b,0xff,0x8f,0xff,0x85,0xff,0x9b,0xff,0xa2,0xff, +0x7c,0xff,0x55,0xff,0x42,0xff,0x55,0xff,0x64,0xff,0x77,0xff, +0x86,0xff,0x6c,0xff,0x41,0xff,0x1d,0xff,0x22,0xff,0x3d,0xff, +0x49,0xff,0x47,0xff,0x42,0xff,0x42,0xff,0x47,0xff,0x39,0xff, +0xb,0xff,0xe,0xff,0x57,0xff,0xa0,0xff,0xbd,0xff,0xa8,0xff, +0x80,0xff,0x67,0xff,0x72,0xff,0x76,0xff,0x76,0xff,0x94,0xff, +0xb5,0xff,0xb9,0xff,0xa7,0xff,0xd3,0xff,0xf6,0xff,0xe4,0xff, +0xee,0xff,0xd1,0xff,0xb6,0xff,0xc3,0xff,0xd3,0xff,0xfc,0xff, +0xf0,0xff,0xc4,0xff,0xc4,0xff,0xe1,0xff,0xf3,0xff,0xef,0xff, +0xf3,0xff,0xfd,0xff,0x1,0x0,0xf5,0xff,0xf2,0xff,0xef,0xff, +0xd5,0xff,0xe5,0xff,0x1b,0x0,0x4c,0x0,0x4d,0x0,0x18,0x0, +0xf3,0xff,0xf0,0xff,0xf8,0xff,0xfe,0xff,0x25,0x0,0x6a,0x0, +0x76,0x0,0x3b,0x0,0x18,0x0,0x1d,0x0,0x10,0x0,0x17,0x0, +0x25,0x0,0x12,0x0,0x10,0x0,0xf9,0xff,0xd8,0xff,0xe4,0xff, +0xeb,0xff,0xf0,0xff,0xfd,0xff,0x6,0x0,0x4,0x0,0xf2,0xff, +0xed,0xff,0xf1,0xff,0xdb,0xff,0xcb,0xff,0xdd,0xff,0xe4,0xff, +0xc8,0xff,0xb6,0xff,0xbc,0xff,0xaf,0xff,0x9f,0xff,0xaa,0xff, +0xba,0xff,0xad,0xff,0x9a,0xff,0x92,0xff,0x81,0xff,0x78,0xff, +0x7e,0xff,0xa1,0xff,0xc1,0xff,0xaa,0xff,0x91,0xff,0x9a,0xff, +0xbe,0xff,0xc4,0xff,0xaa,0xff,0xa7,0xff,0xa5,0xff,0xb5,0xff, +0xac,0xff,0xa9,0xff,0xea,0xff,0xd9,0xff,0xb6,0xff,0xd1,0xff, +0xe6,0xff,0x0,0x0,0x0,0x0,0x9,0x0,0x30,0x0,0x37,0x0, +0x2e,0x0,0x27,0x0,0x23,0x0,0x39,0x0,0x46,0x0,0x32,0x0, +0x44,0x0,0x4b,0x0,0x26,0x0,0x2d,0x0,0x48,0x0,0x5c,0x0, +0x61,0x0,0x69,0x0,0x8d,0x0,0x9c,0x0,0xab,0x0,0xc3,0x0, +0xd1,0x0,0xdb,0x0,0xcb,0x0,0xa2,0x0,0x97,0x0,0xc7,0x0, +0xe7,0x0,0xd3,0x0,0xb8,0x0,0x9b,0x0,0x96,0x0,0x87,0x0, +0x3b,0x0,0x1c,0x0,0x3f,0x0,0x57,0x0,0x61,0x0,0x43,0x0, +0x33,0x0,0x4c,0x0,0x30,0x0,0x32,0x0,0x4f,0x0,0x26,0x0, +0x1b,0x0,0x38,0x0,0x46,0x0,0x49,0x0,0x3a,0x0,0x42,0x0, +0x44,0x0,0x20,0x0,0x22,0x0,0x4c,0x0,0x4c,0x0,0x34,0x0, +0x3e,0x0,0x3a,0x0,0x22,0x0,0x30,0x0,0x3f,0x0,0x4c,0x0, +0x4d,0x0,0x14,0x0,0x1b,0x0,0x50,0x0,0x52,0x0,0x58,0x0, +0x66,0x0,0x84,0x0,0x76,0x0,0x5b,0x0,0x7d,0x0,0x70,0x0, +0x5e,0x0,0x68,0x0,0x5e,0x0,0x63,0x0,0x65,0x0,0x5d,0x0, +0x4b,0x0,0x52,0x0,0x68,0x0,0x5d,0x0,0x65,0x0,0x6b,0x0, +0x6b,0x0,0x67,0x0,0x51,0x0,0x61,0x0,0x70,0x0,0x5d,0x0, +0x61,0x0,0x75,0x0,0x84,0x0,0xb6,0x0,0xe1,0x0,0xe4,0x0, +0xeb,0x0,0xe0,0x0,0xc4,0x0,0xa5,0x0,0x9f,0x0,0xbc,0x0, +0xd4,0x0,0xe1,0x0,0xdd,0x0,0xe9,0x0,0xf6,0x0,0x5,0x1, +0x2f,0x1,0x1b,0x1,0x14,0x1,0x47,0x1,0x47,0x1,0x2f,0x1, +0x1e,0x1,0x10,0x1,0xfd,0x0,0xef,0x0,0xf3,0x0,0xec,0x0, +0xf0,0x0,0x5,0x1,0x13,0x1,0x25,0x1,0x43,0x1,0x55,0x1, +0x43,0x1,0x33,0x1,0x2b,0x1,0x27,0x1,0x42,0x1,0x54,0x1, +0x49,0x1,0x45,0x1,0x44,0x1,0x4a,0x1,0x46,0x1,0x34,0x1, +0x3d,0x1,0x3f,0x1,0x29,0x1,0x7,0x1,0xfc,0x0,0x1e,0x1, +0x13,0x1,0xf3,0x0,0x4,0x1,0x11,0x1,0x14,0x1,0xa,0x1, +0x5,0x1,0x21,0x1,0x1a,0x1,0xf9,0x0,0x0,0x1,0xff,0x0, +0xe3,0x0,0xe4,0x0,0xff,0x0,0x16,0x1,0x22,0x1,0x29,0x1, +0x34,0x1,0x25,0x1,0xb,0x1,0x9,0x1,0xb,0x1,0x1a,0x1, +0x2a,0x1,0xe6,0x0,0xc1,0x0,0xfd,0x0,0xe7,0x0,0xb1,0x0, +0xba,0x0,0xc1,0x0,0xc5,0x0,0xb6,0x0,0xae,0x0,0xc4,0x0, +0xbb,0x0,0x9e,0x0,0x93,0x0,0xa4,0x0,0xce,0x0,0xd7,0x0, +0xc7,0x0,0xe5,0x0,0xfc,0x0,0xf6,0x0,0xf9,0x0,0xee,0x0, +0xfd,0x0,0xfc,0x0,0xdf,0x0,0xfb,0x0,0x12,0x1,0xff,0x0, +0xe7,0x0,0xd1,0x0,0xd8,0x0,0xfa,0x0,0xd,0x1,0xf8,0x0, +0xe2,0x0,0xdb,0x0,0xdd,0x0,0xe1,0x0,0xef,0x0,0xc,0x1, +0x1,0x1,0xfb,0x0,0xa,0x1,0x0,0x1,0xc,0x1,0x17,0x1, +0x1a,0x1,0x17,0x1,0x1a,0x1,0x32,0x1,0x14,0x1,0xfb,0x0, +0xd,0x1,0x4,0x1,0x1a,0x1,0x30,0x1,0x2c,0x1,0x52,0x1, +0x3d,0x1,0xfe,0x0,0xb,0x1,0x4,0x1,0xf1,0x0,0xfb,0x0, +0xf2,0x0,0xed,0x0,0xd0,0x0,0xa3,0x0,0x94,0x0,0xa2,0x0, +0xd2,0x0,0xf4,0x0,0xff,0x0,0xf4,0x0,0xe2,0x0,0xee,0x0, +0xd9,0x0,0xba,0x0,0xad,0x0,0xa1,0x0,0xb4,0x0,0xbc,0x0, +0xc9,0x0,0xe9,0x0,0xee,0x0,0xfb,0x0,0xe9,0x0,0xad,0x0, +0x8d,0x0,0xa7,0x0,0xd9,0x0,0xb5,0x0,0x8c,0x0,0xaf,0x0, +0xa1,0x0,0x65,0x0,0x65,0x0,0x9e,0x0,0xaf,0x0,0xa0,0x0, +0x98,0x0,0x79,0x0,0x76,0x0,0x69,0x0,0x55,0x0,0x70,0x0, +0x5e,0x0,0x58,0x0,0x77,0x0,0x58,0x0,0x45,0x0,0x54,0x0, +0x3a,0x0,0x30,0x0,0x52,0x0,0x61,0x0,0x6c,0x0,0x5a,0x0, +0x34,0x0,0x3e,0x0,0x45,0x0,0x50,0x0,0x53,0x0,0x2c,0x0, +0x39,0x0,0x58,0x0,0x3d,0x0,0x24,0x0,0x3c,0x0,0x4f,0x0, +0x58,0x0,0x7a,0x0,0x8a,0x0,0x89,0x0,0x9a,0x0,0xc1,0x0, +0xc3,0x0,0xa2,0x0,0xa1,0x0,0x85,0x0,0x68,0x0,0x6f,0x0, +0x75,0x0,0x8a,0x0,0x77,0x0,0x4e,0x0,0x44,0x0,0x59,0x0, +0x61,0x0,0x1a,0x0,0x16,0x0,0x53,0x0,0x51,0x0,0x75,0x0, +0x86,0x0,0x6a,0x0,0x90,0x0,0xaa,0x0,0xa3,0x0,0xa6,0x0, +0xc3,0x0,0xfb,0x0,0xf2,0x0,0xcf,0x0,0xc2,0x0,0xa8,0x0, +0x8d,0x0,0x56,0x0,0x24,0x0,0x1d,0x0,0x14,0x0,0xfa,0xff, +0xc7,0xff,0x9e,0xff,0x90,0xff,0x7f,0xff,0x7a,0xff,0x6b,0xff, +0x56,0xff,0x41,0xff,0x2d,0xff,0x43,0xff,0x71,0xff,0x88,0xff, +0x78,0xff,0x64,0xff,0x72,0xff,0x77,0xff,0x67,0xff,0x44,0xff, +0x26,0xff,0x39,0xff,0x4d,0xff,0x4d,0xff,0x5d,0xff,0x5d,0xff, +0x37,0xff,0x13,0xff,0x18,0xff,0x27,0xff,0xd,0xff,0xf9,0xfe, +0x1e,0xff,0x30,0xff,0x20,0xff,0x2b,0xff,0x31,0xff,0x39,0xff, +0x3f,0xff,0x1d,0xff,0x27,0xff,0x5d,0xff,0x84,0xff,0x97,0xff, +0x8f,0xff,0x9a,0xff,0xa2,0xff,0x9f,0xff,0x9f,0xff,0x83,0xff, +0x69,0xff,0x57,0xff,0x63,0xff,0x88,0xff,0x87,0xff,0x84,0xff, +0x82,0xff,0x95,0xff,0xaf,0xff,0x89,0xff,0x7e,0xff,0xa3,0xff, +0x9d,0xff,0x86,0xff,0x73,0xff,0x5f,0xff,0x67,0xff,0x72,0xff, +0x57,0xff,0x2c,0xff,0x24,0xff,0x4d,0xff,0x6d,0xff,0x7a,0xff, +0x7b,0xff,0x53,0xff,0x50,0xff,0x8b,0xff,0xba,0xff,0xbd,0xff, +0x96,0xff,0x91,0xff,0xb9,0xff,0xda,0xff,0xeb,0xff,0xc9,0xff, +0x9c,0xff,0x93,0xff,0x82,0xff,0x78,0xff,0x93,0xff,0xa6,0xff, +0x80,0xff,0x54,0xff,0x50,0xff,0x5f,0xff,0x56,0xff,0x23,0xff, +0x2,0xff,0x7,0xff,0x3,0xff,0xd,0xff,0x36,0xff,0x69,0xff, +0x85,0xff,0x85,0xff,0x7b,0xff,0x5d,0xff,0x3c,0xff,0x1f,0xff, +0xe,0xff,0xf,0xff,0xa,0xff,0x20,0xff,0x39,0xff,0x37,0xff, +0x3a,0xff,0x35,0xff,0x35,0xff,0x1b,0xff,0xf6,0xfe,0xf8,0xfe, +0xde,0xfe,0xd2,0xfe,0xe0,0xfe,0xdc,0xfe,0xe6,0xfe,0xea,0xfe, +0x12,0xff,0x66,0xff,0xa5,0xff,0xbb,0xff,0x94,0xff,0x82,0xff, +0x96,0xff,0x7d,0xff,0x50,0xff,0x26,0xff,0x9,0xff,0xd8,0xfe, +0xa3,0xfe,0xb6,0xfe,0xb1,0xfe,0x9b,0xfe,0xab,0xfe,0x89,0xfe, +0x7f,0xfe,0x8a,0xfe,0x60,0xfe,0x54,0xfe,0x2a,0xfe,0xf7,0xfd, +0x11,0xfe,0x14,0xfe,0x0,0xfe,0xe0,0xfd,0xa3,0xfd,0x81,0xfd, +0x7e,0xfd,0x81,0xfd,0x76,0xfd,0x89,0xfd,0xa6,0xfd,0x8f,0xfd, +0xa6,0xfd,0xc7,0xfd,0xc3,0xfd,0xdd,0xfd,0xe9,0xfd,0x10,0xfe, +0x40,0xfe,0x2c,0xfe,0x3b,0xfe,0x51,0xfe,0x34,0xfe,0x40,0xfe, +0x61,0xfe,0x6d,0xfe,0x7f,0xfe,0x8f,0xfe,0x93,0xfe,0xa4,0xfe, +0xb8,0xfe,0xc4,0xfe,0xd2,0xfe,0xda,0xfe,0xec,0xfe,0xb,0xff, +0x43,0xff,0x7d,0xff,0x75,0xff,0x6b,0xff,0x81,0xff,0x7a,0xff, +0x6e,0xff,0x77,0xff,0x73,0xff,0x52,0xff,0x41,0xff,0x25,0xff, +0xf1,0xfe,0xe4,0xfe,0xd7,0xfe,0xc4,0xfe,0xb3,0xfe,0xa1,0xfe, +0xa8,0xfe,0x93,0xfe,0x8b,0xfe,0x85,0xfe,0x4d,0xfe,0x38,0xfe, +0x2c,0xfe,0xd,0xfe,0x0,0xfe,0x1,0xfe,0x36,0xfe,0x6d,0xfe, +0x6d,0xfe,0x6e,0xfe,0x83,0xfe,0x77,0xfe,0x50,0xfe,0x5a,0xfe, +0x76,0xfe,0x8c,0xfe,0x8f,0xfe,0x66,0xfe,0x69,0xfe,0x66,0xfe, +0x2d,0xfe,0x42,0xfe,0x88,0xfe,0x98,0xfe,0x8b,0xfe,0x94,0xfe, +0xa8,0xfe,0x9b,0xfe,0x8d,0xfe,0xb1,0xfe,0xc7,0xfe,0x9d,0xfe, +0x83,0xfe,0xa7,0xfe,0xc2,0xfe,0xa0,0xfe,0x80,0xfe,0x97,0xfe, +0x8d,0xfe,0x64,0xfe,0x81,0xfe,0xa4,0xfe,0x8d,0xfe,0x75,0xfe, +0x8a,0xfe,0xa3,0xfe,0x97,0xfe,0x88,0xfe,0x8c,0xfe,0x98,0xfe, +0x8d,0xfe,0x79,0xfe,0x8a,0xfe,0x9c,0xfe,0x8f,0xfe,0x81,0xfe, +0x91,0xfe,0xb5,0xfe,0xad,0xfe,0xbd,0xfe,0xf,0xff,0x14,0xff, +0xd9,0xfe,0xd0,0xfe,0xd6,0xfe,0xcb,0xfe,0xd6,0xfe,0xdb,0xfe, +0xb6,0xfe,0xab,0xfe,0xbe,0xfe,0xbb,0xfe,0xc0,0xfe,0xd5,0xfe, +0xd3,0xfe,0xd1,0xfe,0xe9,0xfe,0xde,0xfe,0xce,0xfe,0x1,0xff, +0xff,0xfe,0xc4,0xfe,0xc5,0xfe,0xdd,0xfe,0xe1,0xfe,0xc1,0xfe, +0x9b,0xfe,0xa0,0xfe,0xb6,0xfe,0xd2,0xfe,0xcf,0xfe,0xbf,0xfe, +0xc6,0xfe,0xb9,0xfe,0xb7,0xfe,0xab,0xfe,0x91,0xfe,0xa3,0xfe, +0xb3,0xfe,0xa2,0xfe,0x91,0xfe,0xb3,0xfe,0xce,0xfe,0xce,0xfe, +0xf2,0xfe,0xf0,0xfe,0xd9,0xfe,0xd3,0xfe,0xbf,0xfe,0xde,0xfe, +0xfd,0xfe,0xf5,0xfe,0xea,0xfe,0xe1,0xfe,0xf0,0xfe,0xd8,0xfe, +0xab,0xfe,0xbd,0xfe,0xc3,0xfe,0xac,0xfe,0x9f,0xfe,0x80,0xfe, +0x5e,0xfe,0x59,0xfe,0x61,0xfe,0x64,0xfe,0x4f,0xfe,0x3a,0xfe, +0x44,0xfe,0x30,0xfe,0x10,0xfe,0x13,0xfe,0x11,0xfe,0x12,0xfe, +0x19,0xfe,0xd,0xfe,0xfe,0xfd,0x5,0xfe,0x2c,0xfe,0x3c,0xfe, +0x1c,0xfe,0xf,0xfe,0x2b,0xfe,0x39,0xfe,0x40,0xfe,0x5f,0xfe, +0x76,0xfe,0x80,0xfe,0x87,0xfe,0x85,0xfe,0x87,0xfe,0xa8,0xfe, +0xe9,0xfe,0x0,0xff,0xe6,0xfe,0xe1,0xfe,0xe9,0xfe,0xfa,0xfe, +0x2b,0xff,0x5b,0xff,0x54,0xff,0x3a,0xff,0x3a,0xff,0x34,0xff, +0x32,0xff,0x2f,0xff,0x25,0xff,0x14,0xff,0xf,0xff,0x28,0xff, +0xfc,0xfe,0xcc,0xfe,0x7,0xff,0x2b,0xff,0x11,0xff,0xef,0xfe, +0xe6,0xfe,0xd,0xff,0x42,0xff,0x53,0xff,0x25,0xff,0xc,0xff, +0x2e,0xff,0x37,0xff,0x14,0xff,0x0,0xff,0x33,0xff,0x63,0xff, +0x55,0xff,0x3c,0xff,0x26,0xff,0x1d,0xff,0x1a,0xff,0x11,0xff, +0xa,0xff,0xfa,0xfe,0xec,0xfe,0xeb,0xfe,0xee,0xfe,0xf0,0xfe, +0xef,0xfe,0xe6,0xfe,0xf1,0xfe,0x5,0xff,0xfa,0xfe,0xe8,0xfe, +0xde,0xfe,0xf8,0xfe,0x12,0xff,0x14,0xff,0x50,0xff,0x6c,0xff, +0x56,0xff,0x50,0xff,0x34,0xff,0x34,0xff,0x3a,0xff,0x30,0xff, +0x1f,0xff,0xf6,0xfe,0xf7,0xfe,0xeb,0xfe,0xc2,0xfe,0xb0,0xfe, +0x99,0xfe,0x94,0xfe,0x81,0xfe,0x76,0xfe,0x8e,0xfe,0x7f,0xfe, +0x73,0xfe,0x96,0xfe,0xbe,0xfe,0xbc,0xfe,0x9a,0xfe,0x88,0xfe, +0x90,0xfe,0x9e,0xfe,0xa2,0xfe,0xc1,0xfe,0xeb,0xfe,0xed,0xfe, +0xed,0xfe,0xe5,0xfe,0xdb,0xfe,0xdc,0xfe,0xd1,0xfe,0xcf,0xfe, +0xcc,0xfe,0xc5,0xfe,0xe1,0xfe,0xea,0xfe,0xd2,0xfe,0xeb,0xfe, +0x5,0xff,0xa,0xff,0x24,0xff,0x1c,0xff,0x33,0xff,0x6c,0xff, +0x76,0xff,0x7f,0xff,0x7e,0xff,0x83,0xff,0x8b,0xff,0x6a,0xff, +0x5e,0xff,0x66,0xff,0x7a,0xff,0x80,0xff,0x63,0xff,0x52,0xff, +0x44,0xff,0x55,0xff,0x6f,0xff,0x65,0xff,0x69,0xff,0x7d,0xff, +0x8d,0xff,0x93,0xff,0xac,0xff,0xc3,0xff,0xa0,0xff,0x84,0xff, +0x8a,0xff,0xa5,0xff,0xc1,0xff,0xb9,0xff,0xe4,0xff,0x2f,0x0, +0x1a,0x0,0x9,0x0,0x44,0x0,0x4e,0x0,0x27,0x0,0x1b,0x0, +0x30,0x0,0x42,0x0,0x34,0x0,0x39,0x0,0x41,0x0,0x44,0x0, +0x69,0x0,0x70,0x0,0x5c,0x0,0x4f,0x0,0x45,0x0,0x4f,0x0, +0x61,0x0,0x94,0x0,0x9f,0x0,0x7a,0x0,0x77,0x0,0x5a,0x0, +0x52,0x0,0x6e,0x0,0x5c,0x0,0x38,0x0,0x2d,0x0,0x51,0x0, +0x69,0x0,0x62,0x0,0x5e,0x0,0x35,0x0,0x2f,0x0,0x65,0x0, +0x71,0x0,0x67,0x0,0x89,0x0,0xb4,0x0,0xb1,0x0,0xa7,0x0, +0x93,0x0,0x74,0x0,0x75,0x0,0x65,0x0,0x4c,0x0,0x51,0x0, +0x5e,0x0,0x72,0x0,0x7f,0x0,0x7c,0x0,0x5d,0x0,0x3c,0x0, +0x46,0x0,0x4c,0x0,0x3d,0x0,0xa,0x0,0xd5,0xff,0xf4,0xff, +0x0,0x0,0xde,0xff,0xf7,0xff,0x30,0x0,0x5a,0x0,0x4b,0x0, +0x1b,0x0,0xf9,0xff,0xfe,0xff,0x5c,0x0,0x81,0x0,0x4a,0x0, +0x6c,0x0,0x8c,0x0,0x65,0x0,0x5f,0x0,0x7b,0x0,0x89,0x0, +0x78,0x0,0x88,0x0,0xbb,0x0,0xc2,0x0,0x9a,0x0,0x7b,0x0, +0x83,0x0,0x82,0x0,0x72,0x0,0x6a,0x0,0x34,0x0,0x6,0x0, +0x3d,0x0,0x68,0x0,0x53,0x0,0x5a,0x0,0x82,0x0,0x98,0x0, +0x76,0x0,0x5c,0x0,0x89,0x0,0x89,0x0,0x65,0x0,0x6f,0x0, +0x79,0x0,0xa3,0x0,0xbc,0x0,0x9a,0x0,0x89,0x0,0x8d,0x0, +0x9c,0x0,0xa8,0x0,0xa0,0x0,0x74,0x0,0x4b,0x0,0x53,0x0, +0x60,0x0,0x86,0x0,0x85,0x0,0x57,0x0,0x40,0x0,0x1e,0x0, +0x41,0x0,0x74,0x0,0x59,0x0,0x60,0x0,0x7b,0x0,0x76,0x0, +0x5d,0x0,0x5b,0x0,0x76,0x0,0x75,0x0,0x6e,0x0,0x5b,0x0, +0x42,0x0,0x31,0x0,0x20,0x0,0x34,0x0,0x57,0x0,0x60,0x0, +0x56,0x0,0x66,0x0,0x6d,0x0,0x51,0x0,0x4b,0x0,0x21,0x0, +0xf,0x0,0x33,0x0,0x1a,0x0,0x9,0x0,0x1d,0x0,0x3b,0x0, +0x4b,0x0,0x43,0x0,0x56,0x0,0x57,0x0,0x57,0x0,0x65,0x0, +0x4a,0x0,0x27,0x0,0x12,0x0,0x18,0x0,0x11,0x0,0x0,0x0, +0x24,0x0,0x4b,0x0,0x3c,0x0,0x14,0x0,0x2d,0x0,0x51,0x0, +0x3c,0x0,0x3e,0x0,0x2f,0x0,0x5,0x0,0xa,0x0,0x11,0x0, +0xd,0x0,0x21,0x0,0x2a,0x0,0x2b,0x0,0x4a,0x0,0x45,0x0, +0x19,0x0,0x25,0x0,0x3b,0x0,0x35,0x0,0x48,0x0,0x5b,0x0, +0x4a,0x0,0x50,0x0,0x64,0x0,0x3e,0x0,0x2c,0x0,0x4c,0x0, +0x68,0x0,0x68,0x0,0x1e,0x0,0xec,0xff,0xf3,0xff,0xec,0xff, +0xf3,0xff,0xf2,0xff,0xf0,0xff,0xef,0xff,0xee,0xff,0xf7,0xff, +0xe9,0xff,0xea,0xff,0xf0,0xff,0xe8,0xff,0xf3,0xff,0xfa,0xff, +0xfe,0xff,0xfc,0xff,0xf1,0xff,0xe6,0xff,0xe5,0xff,0xf2,0xff, +0xf0,0xff,0xf3,0xff,0xf2,0xff,0xea,0xff,0xf9,0xff,0xfc,0xff, +0x2,0x0,0x8,0x0,0xfd,0xff,0xfd,0xff,0xf3,0xff,0xef,0xff, +0xf9,0xff,0xff,0xff,0x1,0x0,0xfa,0xff,0xf9,0xff,0xf6,0xff, +0xeb,0xff,0xeb,0xff,0xf2,0xff,0xef,0xff,0xe3,0xff,0xde,0xff, +0xe4,0xff,0xee,0xff,0xf1,0xff,0xf2,0xff,0xfa,0xff,0xff,0xff, +0x8,0x0,0x1,0x0,0xf4,0xff,0x5,0x0,0xd,0x0,0x8,0x0, +0x7,0x0,0xfc,0xff,0xfa,0xff,0x1,0x0,0xfc,0xff,0xed,0xff, +0xf8,0xff,0x5,0x0,0xf3,0xff,0xef,0xff,0xfb,0xff,0x2,0x0, +0x3,0x0,0xfc,0xff,0xa,0x0,0xf,0x0,0xfe,0xff,0x0,0x0, +0x5,0x0,0xfd,0xff,0xee,0xff,0xef,0xff,0xf3,0xff,0xea,0xff, +0xf3,0xff,0xfd,0xff,0xfb,0xff,0xf1,0xff,0xea,0xff,0xf7,0xff, +0xfc,0xff,0xf9,0xff,0xfc,0xff,0xfd,0xff,0xf6,0xff,0xec,0xff, +0xfe,0xff,0x8,0x0,0x1,0x0,0x0,0x0,0xf5,0xff,0xfd,0xff, +0x3,0x0,0xfa,0xff,0x5,0x0,0x4,0x0,0xfe,0xff,0xf8,0xff, +0xe9,0xff,0xf7,0xff,0x5,0x0,0xfe,0xff,0xf7,0xff,0xf7,0xff, +0x1,0x0,0x5,0x0,0xff,0xff,0xf9,0xff,0xfb,0xff,0x2,0x0, +0x7,0x0,0x6,0x0,0x5,0x0,0x6,0x0,0xff,0xff,0x4,0x0, +0x12,0x0,0x9,0x0,0x9,0x0,0x14,0x0,0x15,0x0,0x15,0x0, +0x16,0x0,0x1c,0x0,0x12,0x0,0x0,0x0,0x0,0x0,0x5,0x0, +0x3,0x0,0x0,0x0,0x1,0x0,0xfc,0xff,0xf8,0xff,0xf6,0xff, +0xf7,0xff,0x1,0x0,0xf7,0xff,0xed,0xff,0xfb,0xff,0x0,0x0, +0xc,0x0,0x10,0x0,0xa,0x0,0x1c,0x0,0x1d,0x0,0xf,0x0, +0xd,0x0,0x9,0x0,0xe,0x0,0xc,0x0,0xff,0xff,0xa,0x0, +0xa,0x0,0xfb,0xff,0x6,0x0,0xc,0x0,0x1,0x0,0xfa,0xff, +0xf3,0xff,0xf7,0xff,0xf6,0xff,0xf2,0xff,0xfc,0xff,0x1,0x0, +0x8,0x0,0x4,0x0,0xfb,0xff,0x9,0x0,0x7,0x0,0xfe,0xff, +0xd,0x0,0xe,0x0,0x5,0x0,0x8,0x0,0xb,0x0,0x19,0x0, +0x19,0x0,0xc,0x0,0x10,0x0,0x9,0x0,0x0,0x0,0xfc,0xff, +0xef,0xff,0xf8,0xff,0x2,0x0,0xf6,0xff,0xf4,0xff,0xf9,0xff, +0xfc,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfe,0xff,0xc,0x0,0x16,0x0,0x11,0x0,0xd,0x0,0xf,0x0, +0x11,0x0,0x9,0x0,0x6,0x0,0xc,0x0,0x4,0x0,0xff,0xff, +0x2,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x3,0x0,0xfc,0xff, +0xfa,0xff,0xff,0xff,0x3,0x0,0x2,0x0,0xfc,0xff,0xf8,0xff, +0xfb,0xff,0x2,0x0,0xfb,0xff,0xf0,0xff,0xf9,0xff,0xfd,0xff, +0x3,0x0,0x5,0x0,0xfc,0xff,0x1,0x0,0xfc,0xff,0xf7,0xff, +0xff,0xff,0x1,0x0,0x6,0x0,0xfd,0xff,0xf3,0xff,0xf9,0xff, +0xfc,0xff,0xfc,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xf1,0xff, +0xf2,0xff,0xfa,0xff,0xfd,0xff,0xf6,0xff,0xef,0xff,0xf3,0xff, +0xf3,0xff,0xf4,0xff,0xfe,0xff,0x4,0x0,0xff,0xff,0xfc,0xff, +0xa,0x0,0x8,0x0,0xfe,0xff,0x4,0x0,0x2,0x0,0xfa,0xff, +0xf4,0xff,0xf6,0xff,0x0,0x0,0xfa,0xff,0xf4,0xff,0xfa,0xff, +0xfe,0xff,0xfb,0xff,0xfa,0xff,0x0,0x0,0x2,0x0,0x6,0x0, +0x2,0x0,0xfb,0xff,0x2,0x0,0x4,0x0,0xff,0xff,0xfb,0xff, +0xf6,0xff,0xf8,0xff,0xf6,0xff,0xef,0xff,0xec,0xff,0xf0,0xff, +0xf5,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff,0xfa,0xff,0xfb,0xff, +0xfa,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff,0xf6,0xff,0xf9,0xff, +0xfe,0xff,0xff,0xff,0x6,0x0,0x2,0x0,0xff,0xff,0xff,0xff, +0xf6,0xff,0xf9,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf1,0xff, +0xf1,0xff,0xf8,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, +0xf4,0xff,0xf9,0xff,0xf6,0xff,0xf5,0xff,0xfc,0xff,0xf8,0xff, +0xf9,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff,0xf8,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfd,0xff,0xfd,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfd,0xff,0xf9,0xff,0xf7,0xff,0xf8,0xff,0xfc,0xff,0xfd,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff, +0xf3,0xff,0xf8,0xff,0xfd,0xff,0x0,0x0,0x3,0x0,0xfa,0xff, +0xfc,0xff,0x3,0x0,0xfd,0xff,0xfd,0xff,0xff,0xff,0xfc,0xff, +0xf9,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x7,0x0,0xff,0xff, +0x1,0x0,0x3,0x0,0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0x3,0x0,0xff,0xff,0x0,0x0,0x3,0x0, +0x1,0x0,0x7,0x0,0x7,0x0,0x9,0x0,0xa,0x0,0x5,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0x1,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0x6,0x0,0x2,0x0,0xf7,0xff,0xf9,0xff, +0xfd,0xff,0x3,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0xfe,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0x1,0x0,0xfe,0xff,0xfd,0xff,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0x0,0x0, +0x0,0x0,0xfd,0xff,0xfc,0xff,0x0,0x0,0x4,0x0,0x3,0x0, +0x6,0x0,0x9,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0xfb,0xff, +0x1,0x0,0x1,0x0,0xfe,0xff,0xff,0xff,0x1,0x0,0x6,0x0, +0x4,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x4,0x0,0x2,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x6,0x0,0x4,0x0,0x1,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xfd,0xff,0x1,0x0, +0x0,0x0,0xfe,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x4,0x0,0x2,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0x0,0x0, +0x0,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x2,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfd,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x3,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/pig1.pcm b/src/client/sound/data/pig1.pcm new file mode 100755 index 0000000..f8569d9 --- /dev/null +++ b/src/client/sound/data/pig1.pcm @@ -0,0 +1,951 @@ +unsigned char PCM_pig1[30336] = { +1,0,0,0,2,0,0,0,68,172,0,0,56,59,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +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,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,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,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255, +255,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +1,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,2,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255,1,0, +1,0,255,255,0,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,255,255,255,255,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,254,255,255,255,255,255,254,255,254,255,255,255, +0,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,1,0,3,0,1,0,255,255, +255,255,254,255,254,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,1,0,2,0,1,0, +0,0,255,255,255,255,0,0,1,0,255,255,254,255,0,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255, +254,255,254,255,0,0,1,0,1,0,0,0,0,0,2,0,1,0,255,255,255,255,255,255,255,255,0,0,1,0,255,255, +255,255,0,0,0,0,1,0,2,0,1,0,0,0,255,255,254,255,255,255,0,0,255,255,0,0,2,0,2,0,1,0, +1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,255,255,254,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,254,255,253,255,254,255,0,0,0,0,255,255,255,255,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +2,0,2,0,1,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,1,0,2,0,1,0,0,0,0,0,255,255, +255,255,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,255,255,1,0,2,0,0,0,0,0,0,0,254,255, +253,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,254,255,253,255,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,1,0,3,0,0,0,253,255,254,255,255,255,254,255,0,0,2,0,2,0,3,0, +3,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,1,0,1,0,1,0,0,0,0,0,1,0,0,0, +253,255,253,255,0,0,3,0,3,0,2,0,2,0,1,0,0,0,1,0,1,0,255,255,0,0,3,0,3,0,2,0, +1,0,254,255,252,255,255,255,1,0,255,255,0,0,2,0,3,0,4,0,3,0,1,0,0,0,255,255,254,255,255,255, +1,0,3,0,3,0,3,0,3,0,4,0,1,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,2,0,3,0, +1,0,2,0,3,0,255,255,253,255,255,255,255,255,255,255,0,0,0,0,0,0,2,0,1,0,1,0,2,0,255,255, +253,255,0,0,1,0,0,0,0,0,0,0,0,0,2,0,2,0,255,255,255,255,1,0,0,0,255,255,255,255,255,255, +0,0,255,255,252,255,252,255,254,255,0,0,1,0,2,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,0,0, +2,0,1,0,0,0,0,0,255,255,255,255,255,255,253,255,253,255,255,255,0,0,1,0,4,0,4,0,2,0,2,0, +2,0,0,0,0,0,1,0,0,0,252,255,251,255,254,255,255,255,255,255,0,0,2,0,1,0,0,0,0,0,255,255, +0,0,0,0,255,255,254,255,255,255,255,255,0,0,1,0,255,255,255,255,1,0,0,0,255,255,1,0,255,255,253,255, +254,255,0,0,0,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,255,255,253,255,255,255,0,0,1,0,1,0, +255,255,255,255,0,0,255,255,252,255,255,255,1,0,253,255,253,255,254,255,253,255,253,255,254,255,253,255,254,255,3,0, +4,0,3,0,0,0,250,255,247,255,250,255,253,255,254,255,255,255,2,0,4,0,6,0,4,0,0,0,254,255,252,255, +252,255,255,255,0,0,254,255,254,255,254,255,254,255,1,0,3,0,3,0,1,0,0,0,254,255,255,255,1,0,2,0, +0,0,253,255,253,255,253,255,253,255,255,255,1,0,1,0,3,0,5,0,2,0,253,255,253,255,255,255,255,255,255,255, +255,255,254,255,255,255,2,0,3,0,3,0,2,0,0,0,254,255,254,255,254,255,253,255,254,255,2,0,3,0,1,0, +0,0,3,0,4,0,4,0,4,0,254,255,250,255,252,255,253,255,252,255,0,0,1,0,255,255,1,0,3,0,1,0, +1,0,2,0,1,0,1,0,2,0,254,255,252,255,255,255,255,255,255,255,2,0,1,0,255,255,1,0,2,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,2,0,3,0,3,0,1,0,1,0,0,0,1,0,2,0, +1,0,255,255,255,255,253,255,252,255,1,0,3,0,255,255,254,255,1,0,255,255,255,255,0,0,0,0,0,0,3,0, +4,0,3,0,1,0,253,255,253,255,1,0,1,0,254,255,0,0,2,0,0,0,1,0,4,0,5,0,3,0,255,255, +253,255,254,255,254,255,253,255,253,255,255,255,1,0,3,0,7,0,8,0,5,0,2,0,0,0,252,255,250,255,251,255, +253,255,253,255,0,0,2,0,1,0,4,0,7,0,4,0,1,0,2,0,0,0,252,255,254,255,255,255,254,255,1,0, +4,0,3,0,5,0,5,0,0,0,252,255,255,255,2,0,1,0,254,255,254,255,0,0,2,0,4,0,5,0,2,0, +0,0,2,0,2,0,0,0,255,255,255,255,0,0,3,0,3,0,0,0,3,0,6,0,3,0,0,0,255,255,255,255, +1,0,2,0,253,255,254,255,3,0,4,0,1,0,0,0,254,255,252,255,254,255,255,255,0,0,4,0,4,0,1,0, +3,0,6,0,3,0,1,0,2,0,1,0,255,255,254,255,0,0,3,0,4,0,4,0,6,0,8,0,7,0,4,0, +1,0,255,255,0,0,2,0,4,0,5,0,5,0,6,0,6,0,4,0,3,0,2,0,0,0,255,255,1,0,4,0, +4,0,4,0,1,0,255,255,0,0,1,0,254,255,253,255,1,0,2,0,255,255,254,255,254,255,254,255,255,255,255,255, +254,255,253,255,251,255,252,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,254,255,255,255,1,0,2,0,2,0, +254,255,250,255,251,255,253,255,252,255,254,255,0,0,254,255,255,255,1,0,255,255,255,255,0,0,251,255,246,255,248,255, +246,255,243,255,248,255,254,255,253,255,252,255,253,255,254,255,252,255,249,255,248,255,252,255,255,255,252,255,250,255,253,255, +255,255,255,255,255,255,254,255,0,0,4,0,4,0,255,255,251,255,250,255,252,255,254,255,255,255,2,0,7,0,11,0, +8,0,255,255,248,255,250,255,252,255,248,255,248,255,254,255,253,255,251,255,252,255,250,255,251,255,0,0,1,0,255,255, +254,255,250,255,247,255,247,255,248,255,251,255,0,0,2,0,1,0,0,0,1,0,1,0,2,0,0,0,251,255,252,255, +0,0,2,0,4,0,11,0,13,0,10,0,8,0,5,0,250,255,247,255,255,255,4,0,2,0,2,0,255,255,250,255, +254,255,6,0,9,0,9,0,8,0,1,0,252,255,254,255,1,0,253,255,249,255,252,255,1,0,5,0,8,0,7,0, +4,0,3,0,4,0,5,0,6,0,7,0,4,0,4,0,6,0,8,0,6,0,2,0,0,0,3,0,4,0,3,0, +4,0,2,0,254,255,253,255,253,255,0,0,6,0,4,0,254,255,254,255,1,0,4,0,6,0,5,0,4,0,3,0, +254,255,252,255,254,255,252,255,251,255,2,0,3,0,255,255,255,255,253,255,249,255,249,255,250,255,255,255,5,0,3,0, +255,255,1,0,255,255,249,255,249,255,251,255,248,255,246,255,247,255,250,255,250,255,249,255,250,255,253,255,254,255,255,255, +0,0,251,255,250,255,253,255,254,255,254,255,253,255,250,255,247,255,244,255,243,255,250,255,5,0,10,0,7,0,1,0, +252,255,249,255,245,255,246,255,252,255,255,255,253,255,252,255,249,255,245,255,244,255,244,255,244,255,246,255,249,255,252,255, +252,255,253,255,2,0,3,0,254,255,0,0,4,0,252,255,241,255,239,255,241,255,246,255,253,255,2,0,4,0,3,0, +4,0,13,0,21,0,16,0,9,0,1,0,244,255,242,255,251,255,251,255,246,255,254,255,8,0,7,0,5,0,6,0, +4,0,0,0,3,0,8,0,5,0,254,255,254,255,4,0,7,0,9,0,10,0,3,0,252,255,255,255,8,0,11,0, +9,0,3,0,248,255,243,255,246,255,252,255,0,0,252,255,244,255,250,255,10,0,9,0,253,255,251,255,248,255,238,255, +237,255,251,255,8,0,5,0,252,255,249,255,250,255,245,255,238,255,236,255,240,255,244,255,247,255,248,255,250,255,249,255, +239,255,227,255,230,255,244,255,250,255,247,255,250,255,252,255,241,255,234,255,236,255,235,255,240,255,6,0,13,0,4,0, +4,0,3,0,247,255,242,255,244,255,240,255,243,255,251,255,252,255,252,255,255,255,254,255,255,255,2,0,3,0,8,0, +12,0,7,0,0,0,249,255,240,255,235,255,235,255,238,255,244,255,251,255,253,255,5,0,19,0,21,0,13,0,1,0, +239,255,224,255,229,255,246,255,3,0,10,0,12,0,12,0,3,0,240,255,232,255,242,255,255,255,3,0,3,0,4,0, +14,0,27,0,27,0,17,0,9,0,251,255,239,255,254,255,20,0,19,0,6,0,254,255,245,255,239,255,246,255,3,0, +12,0,17,0,22,0,22,0,3,0,229,255,215,255,218,255,230,255,5,0,36,0,33,0,13,0,10,0,3,0,240,255, +237,255,247,255,249,255,255,255,14,0,26,0,33,0,20,0,249,255,247,255,15,0,25,0,26,0,33,0,33,0,18,0, +1,0,236,255,223,255,234,255,0,0,9,0,2,0,249,255,248,255,248,255,244,255,243,255,245,255,247,255,253,255,14,0, +29,0,22,0,3,0,255,255,251,255,230,255,230,255,253,255,1,0,0,0,11,0,5,0,250,255,1,0,255,255,252,255, +11,0,11,0,0,0,7,0,4,0,245,255,251,255,4,0,3,0,16,0,25,0,15,0,6,0,3,0,7,0,17,0, +16,0,9,0,10,0,0,0,240,255,240,255,250,255,253,255,245,255,234,255,241,255,255,255,248,255,244,255,252,255,239,255, +224,255,232,255,236,255,229,255,225,255,223,255,234,255,251,255,255,255,3,0,14,0,18,0,22,0,16,0,249,255,245,255, +3,0,2,0,254,255,1,0,252,255,2,0,11,0,1,0,7,0,37,0,38,0,13,0,252,255,234,255,218,255,229,255, +0,0,17,0,24,0,29,0,25,0,8,0,253,255,8,0,26,0,22,0,4,0,0,0,18,0,32,0,28,0,10,0, +238,255,214,255,219,255,236,255,241,255,253,255,17,0,12,0,247,255,235,255,227,255,229,255,248,255,5,0,22,0,50,0, +47,0,14,0,2,0,245,255,209,255,214,255,19,0,63,0,65,0,53,0,29,0,253,255,236,255,232,255,233,255,248,255, +14,0,31,0,38,0,25,0,250,255,223,255,212,255,214,255,233,255,5,0,25,0,33,0,32,0,10,0,235,255,221,255, +222,255,217,255,217,255,241,255,16,0,21,0,4,0,242,255,234,255,240,255,1,0,17,0,30,0,43,0,43,0,22,0, +247,255,215,255,200,255,217,255,245,255,5,0,19,0,36,0,38,0,28,0,13,0,240,255,220,255,231,255,248,255,251,255, +1,0,11,0,11,0,250,255,224,255,214,255,231,255,246,255,251,255,5,0,10,0,8,0,12,0,2,0,233,255,228,255, +225,255,209,255,224,255,3,0,9,0,6,0,17,0,11,0,253,255,9,0,21,0,12,0,14,0,42,0,61,0,48,0, +25,0,16,0,15,0,9,0,3,0,3,0,12,0,30,0,49,0,59,0,52,0,30,0,2,0,241,255,1,0,37,0, +48,0,34,0,35,0,39,0,21,0,19,0,37,0,37,0,26,0,28,0,27,0,21,0,17,0,2,0,240,255,237,255, +243,255,5,0,24,0,17,0,255,255,246,255,237,255,227,255,222,255,224,255,232,255,240,255,239,255,249,255,16,0,23,0, +14,0,2,0,231,255,216,255,243,255,9,0,253,255,254,255,18,0,11,0,251,255,249,255,239,255,223,255,219,255,220,255, +217,255,205,255,192,255,213,255,247,255,248,255,243,255,253,255,244,255,243,255,27,0,45,0,13,0,247,255,1,0,10,0, +9,0,12,0,27,0,33,0,26,0,36,0,57,0,60,0,49,0,35,0,14,0,14,0,37,0,59,0,81,0,83,0, +50,0,21,0,9,0,254,255,253,255,7,0,15,0,33,0,44,0,25,0,10,0,24,0,36,0,18,0,249,255,4,0, +27,0,15,0,14,0,53,0,63,0,47,0,54,0,56,0,48,0,61,0,58,0,33,0,23,0,10,0,11,0,48,0, +63,0,49,0,55,0,64,0,55,0,37,0,26,0,52,0,84,0,60,0,38,0,56,0,44,0,13,0,11,0,253,255, +237,255,10,0,45,0,51,0,48,0,36,0,8,0,237,255,233,255,253,255,2,0,255,255,27,0,46,0,39,0,54,0, +61,0,28,0,20,0,42,0,38,0,18,0,13,0,24,0,29,0,6,0,244,255,6,0,18,0,13,0,12,0,2,0, +243,255,227,255,188,255,181,255,236,255,7,0,253,255,3,0,253,255,232,255,225,255,206,255,186,255,192,255,204,255,238,255, +33,0,32,0,255,255,233,255,185,255,148,255,177,255,208,255,206,255,209,255,222,255,238,255,248,255,240,255,235,255,245,255, +244,255,234,255,233,255,234,255,231,255,237,255,253,255,242,255,196,255,173,255,182,255,184,255,205,255,242,255,237,255,242,255, +51,0,81,0,54,0,42,0,33,0,28,0,50,0,52,0,27,0,13,0,241,255,220,255,9,0,50,0,19,0,235,255, +229,255,225,255,224,255,246,255,250,255,219,255,212,255,236,255,231,255,225,255,3,0,7,0,224,255,223,255,249,255,250,255, +240,255,221,255,206,255,236,255,15,0,254,255,218,255,191,255,176,255,180,255,203,255,233,255,248,255,230,255,210,255,202,255, +176,255,160,255,170,255,158,255,140,255,164,255,198,255,196,255,157,255,110,255,100,255,123,255,134,255,141,255,154,255,149,255, +138,255,132,255,115,255,97,255,90,255,118,255,200,255,14,0,11,0,234,255,217,255,214,255,220,255,227,255,241,255,4,0, +9,0,26,0,57,0,35,0,240,255,239,255,14,0,39,0,59,0,50,0,34,0,48,0,52,0,37,0,29,0,3,0, +242,255,45,0,113,0,104,0,71,0,76,0,69,0,16,0,243,255,14,0,60,0,120,0,170,0,119,0,13,0,226,255, +205,255,170,255,211,255,43,0,81,0,99,0,116,0,73,0,241,255,173,255,156,255,172,255,187,255,226,255,32,0,45,0, +6,0,221,255,174,255,140,255,155,255,188,255,223,255,3,0,12,0,14,0,14,0,235,255,214,255,236,255,240,255,245,255, +26,0,33,0,13,0,2,0,218,255,182,255,194,255,210,255,234,255,43,0,85,0,66,0,32,0,7,0,247,255,219,255, +181,255,220,255,95,0,184,0,150,0,60,0,238,255,188,255,161,255,170,255,225,255,47,0,116,0,133,0,90,0,66,0, +90,0,74,0,37,0,66,0,114,0,125,0,128,0,114,0,80,0,51,0,3,0,241,255,60,0,114,0,87,0,101,0, +159,0,140,0,72,0,27,0,11,0,33,0,71,0,92,0,131,0,169,0,137,0,79,0,47,0,3,0,235,255,34,0, +100,0,122,0,130,0,115,0,73,0,35,0,247,255,219,255,17,0,100,0,121,0,105,0,73,0,12,0,222,255,206,255, +194,255,223,255,45,0,102,0,122,0,121,0,94,0,58,0,31,0,16,0,45,0,115,0,153,0,122,0,63,0,22,0, +1,0,244,255,2,0,48,0,73,0,70,0,93,0,130,0,110,0,32,0,212,255,180,255,201,255,27,0,117,0,128,0, +82,0,50,0,243,255,142,255,117,255,156,255,164,255,190,255,250,255,252,255,221,255,217,255,196,255,156,255,160,255,200,255, +251,255,41,0,45,0,11,0,219,255,157,255,104,255,95,255,128,255,200,255,39,0,85,0,45,0,221,255,161,255,144,255, +158,255,183,255,213,255,247,255,6,0,219,255,143,255,110,255,125,255,141,255,150,255,167,255,188,255,216,255,244,255,254,255, +244,255,224,255,197,255,159,255,137,255,184,255,246,255,220,255,179,255,212,255,204,255,117,255,90,255,136,255,162,255,179,255, +218,255,5,0,10,0,192,255,95,255,73,255,115,255,176,255,238,255,246,255,203,255,180,255,181,255,187,255,200,255,175,255, +115,255,108,255,173,255,239,255,3,0,3,0,19,0,7,0,195,255,130,255,89,255,82,255,187,255,81,0,96,0,29,0, +14,0,251,255,181,255,138,255,142,255,163,255,192,255,215,255,230,255,235,255,208,255,150,255,96,255,85,255,135,255,194,255, +212,255,222,255,211,255,140,255,101,255,163,255,229,255,251,255,39,0,102,0,129,0,122,0,84,0,1,0,159,255,113,255, +167,255,20,0,103,0,164,0,217,0,179,0,48,0,209,255,182,255,163,255,166,255,227,255,49,0,82,0,38,0,228,255, +214,255,211,255,184,255,202,255,8,0,26,0,4,0,249,255,238,255,200,255,145,255,122,255,160,255,230,255,54,0,111,0, +96,0,65,0,73,0,43,0,251,255,36,0,101,0,126,0,178,0,183,0,69,0,232,255,214,255,175,255,151,255,213,255, +50,0,97,0,87,0,62,0,41,0,230,255,152,255,156,255,201,255,218,255,240,255,4,0,243,255,214,255,195,255,187,255, +187,255,192,255,230,255,27,0,25,0,7,0,20,0,0,0,205,255,175,255,139,255,153,255,26,0,119,0,72,0,26,0, +49,0,62,0,59,0,71,0,105,0,152,0,174,0,142,0,83,0,36,0,5,0,235,255,225,255,252,255,26,0,26,0, +11,0,254,255,1,0,20,0,252,255,214,255,7,0,68,0,16,0,196,255,193,255,226,255,0,0,255,255,240,255,42,0, +125,0,129,0,107,0,76,0,240,255,185,255,221,255,245,255,18,0,103,0,148,0,121,0,97,0,75,0,53,0,65,0, +77,0,61,0,71,0,118,0,131,0,90,0,45,0,6,0,201,255,157,255,174,255,227,255,21,0,51,0,47,0,25,0, +247,255,205,255,203,255,252,255,48,0,82,0,77,0,25,0,242,255,219,255,167,255,157,255,230,255,50,0,92,0,106,0, +89,0,86,0,76,0,242,255,141,255,135,255,193,255,2,0,72,0,129,0,110,0,248,255,144,255,152,255,181,255,185,255, +230,255,17,0,32,0,95,0,113,0,252,255,166,255,197,255,227,255,243,255,45,0,104,0,114,0,95,0,72,0,30,0, +212,255,177,255,217,255,11,0,61,0,112,0,80,0,1,0,243,255,3,0,16,0,65,0,114,0,132,0,141,0,117,0, +71,0,32,0,238,255,222,255,33,0,104,0,144,0,200,0,225,0,181,0,141,0,129,0,113,0,110,0,150,0,201,0, +196,0,139,0,118,0,115,0,54,0,2,0,16,0,23,0,55,0,155,0,181,0,96,0,40,0,247,255,144,255,111,255, +175,255,215,255,233,255,14,0,20,0,243,255,189,255,116,255,111,255,194,255,247,255,10,0,82,0,149,0,140,0,81,0, +240,255,137,255,131,255,221,255,36,0,58,0,84,0,100,0,64,0,240,255,160,255,128,255,165,255,223,255,250,255,13,0, +21,0,231,255,159,255,101,255,60,255,100,255,224,255,35,0,45,0,115,0,170,0,105,0,8,0,215,255,191,255,198,255, +227,255,253,255,26,0,27,0,202,255,96,255,75,255,152,255,251,255,65,0,124,0,189,0,206,0,134,0,15,0,152,255, +52,255,38,255,174,255,100,0,163,0,133,0,114,0,73,0,231,255,153,255,160,255,245,255,111,0,188,0,170,0,95,0, +24,0,224,255,171,255,145,255,180,255,219,255,220,255,1,0,93,0,106,0,217,255,29,255,211,254,251,254,47,255,99,255, +181,255,226,255,190,255,107,255,19,255,1,255,78,255,158,255,230,255,79,0,123,0,57,0,222,255,131,255,70,255,99,255, +172,255,234,255,33,0,45,0,32,0,36,0,253,255,168,255,117,255,93,255,73,255,57,255,30,255,52,255,128,255,121,255, +66,255,120,255,225,255,248,255,212,255,177,255,177,255,195,255,184,255,212,255,55,0,77,0,14,0,16,0,55,0,20,0, +205,255,142,255,101,255,112,255,162,255,243,255,99,0,149,0,104,0,49,0,231,255,138,255,149,255,240,255,13,0,25,0, +74,0,79,0,50,0,53,0,19,0,185,255,143,255,153,255,144,255,149,255,236,255,94,0,146,0,166,0,191,0,153,0, +62,0,13,0,248,255,236,255,19,0,97,0,200,0,28,1,234,0,146,0,186,0,188,0,55,0,11,0,57,0,32,0, +26,0,70,0,59,0,69,0,117,0,74,0,8,0,17,0,7,0,194,255,152,255,185,255,4,0,34,0,18,0,49,0, +116,0,133,0,107,0,83,0,48,0,235,255,162,255,132,255,132,255,142,255,200,255,30,0,74,0,80,0,65,0,21,0, +247,255,238,255,230,255,246,255,18,0,32,0,67,0,103,0,108,0,95,0,28,0,187,255,188,255,7,0,46,0,47,0, +253,255,179,255,187,255,217,255,187,255,192,255,236,255,214,255,176,255,170,255,134,255,86,255,72,255,60,255,67,255,138,255, +217,255,226,255,213,255,240,255,235,255,159,255,130,255,173,255,194,255,230,255,70,0,134,0,133,0,98,0,27,0,232,255, +254,255,39,0,58,0,40,0,228,255,178,255,192,255,205,255,187,255,182,255,206,255,232,255,197,255,99,255,56,255,99,255, +109,255,78,255,94,255,124,255,107,255,83,255,95,255,122,255,119,255,75,255,58,255,112,255,190,255,249,255,9,0,215,255, +163,255,158,255,105,255,31,255,95,255,223,255,3,0,30,0,75,0,5,0,147,255,135,255,145,255,105,255,76,255,88,255, +143,255,227,255,4,0,231,255,232,255,5,0,232,255,186,255,206,255,240,255,238,255,249,255,13,0,4,0,5,0,22,0, +4,0,232,255,215,255,193,255,221,255,27,0,25,0,247,255,230,255,191,255,166,255,172,255,154,255,157,255,202,255,197,255, +173,255,182,255,154,255,119,255,157,255,211,255,230,255,230,255,204,255,186,255,172,255,102,255,32,255,26,255,24,255,242,254, +175,254,103,254,118,254,188,254,157,254,110,254,203,254,17,255,192,254,134,254,164,254,163,254,148,254,173,254,211,254,65,255, +6,0,157,0,26,1,0,2,240,2,119,3,221,3,46,4,67,4,83,4,99,4,98,4,141,4,178,4,118,4,48,4, +38,4,16,4,231,3,193,3,95,3,202,2,78,2,216,1,77,1,243,0,212,0,137,0,10,0,184,255,144,255,89,255, +15,255,175,254,93,254,106,254,191,254,37,255,160,255,240,255,8,0,104,0,245,0,32,1,21,1,29,1,20,1,11,1, +10,1,225,0,200,0,235,0,252,0,240,0,251,0,1,1,209,0,97,0,234,255,172,255,111,255,222,254,74,254,14,254, +245,253,230,253,0,254,12,254,211,253,151,253,135,253,136,253,160,253,222,253,37,254,104,254,174,254,239,254,61,255,160,255, +234,255,27,0,87,0,149,0,196,0,227,0,239,0,16,1,71,1,77,1,33,1,6,1,9,1,36,1,52,1,23,1, +5,1,12,1,221,0,172,0,190,0,177,0,106,0,80,0,91,0,100,0,126,0,125,0,81,0,81,0,128,0,151,0, +149,0,139,0,123,0,127,0,131,0,96,0,60,0,38,0,245,255,214,255,250,255,33,0,47,0,75,0,66,0,4,0, +222,255,187,255,86,255,237,254,188,254,169,254,151,254,91,254,246,253,188,253,183,253,164,253,167,253,239,253,46,254,21,254, +212,253,193,253,220,253,249,253,42,254,138,254,246,254,82,255,164,255,4,0,121,0,197,0,236,0,77,1,181,1,188,1, +179,1,207,1,208,1,207,1,198,1,101,1,3,1,252,0,241,0,191,0,149,0,93,0,36,0,242,255,138,255,12,255, +198,254,149,254,91,254,75,254,87,254,45,254,204,253,149,253,174,253,199,253,192,253,224,253,69,254,225,254,143,255,3,0, +34,0,9,0,202,255,164,255,184,255,162,255,82,255,61,255,72,255,6,255,181,254,166,254,150,254,99,254,74,254,74,254, +61,254,63,254,106,254,137,254,108,254,45,254,13,254,58,254,128,254,131,254,116,254,186,254,30,255,67,255,82,255,149,255, +254,255,73,0,104,0,148,0,199,0,171,0,73,0,1,0,244,255,0,0,5,0,244,255,231,255,224,255,183,255,95,255, +2,255,183,254,122,254,96,254,140,254,212,254,246,254,245,254,226,254,222,254,62,255,221,255,43,0,64,0,140,0,0,1, +108,1,208,1,61,2,208,2,76,3,88,3,70,3,87,3,77,3,65,3,80,3,11,3,135,2,66,2,27,2,229,1, +189,1,115,1,245,0,156,0,98,0,2,0,148,255,88,255,70,255,36,255,227,254,181,254,158,254,108,254,71,254,114,254, +182,254,225,254,37,255,147,255,252,255,73,0,89,0,32,0,244,255,1,0,18,0,48,0,122,0,173,0,176,0,165,0, +110,0,23,0,250,255,10,0,5,0,16,0,96,0,200,0,242,0,196,0,108,0,10,0,173,255,141,255,187,255,248,255, +52,0,121,0,179,0,246,0,89,1,176,1,234,1,50,2,149,2,239,2,27,3,34,3,47,3,57,3,40,3,14,3, +234,2,190,2,189,2,253,2,52,3,9,3,148,2,64,2,255,1,124,1,5,1,252,0,27,1,31,1,15,1,219,0, +180,0,203,0,205,0,161,0,159,0,180,0,168,0,166,0,206,0,249,0,19,1,34,1,26,1,17,1,41,1,36,1, +198,0,142,0,189,0,191,0,145,0,182,0,229,0,199,0,166,0,146,0,116,0,68,0,201,255,58,255,255,254,191,254, +80,254,22,254,253,253,221,253,210,253,156,253,77,253,86,253,153,253,228,253,62,254,93,254,73,254,88,254,87,254,73,254, +131,254,204,254,14,255,120,255,185,255,186,255,209,255,195,255,126,255,107,255,102,255,97,255,193,255,54,0,39,0,227,255, +219,255,240,255,245,255,227,255,215,255,228,255,235,255,233,255,236,255,210,255,170,255,153,255,141,255,147,255,196,255,217,255, +191,255,190,255,224,255,39,0,155,0,231,0,240,0,252,0,251,0,211,0,187,0,154,0,70,0,0,0,224,255,206,255, +204,255,189,255,137,255,99,255,95,255,102,255,69,255,222,254,137,254,146,254,187,254,233,254,27,255,2,255,205,254,234,254, +28,255,73,255,160,255,218,255,238,255,44,0,86,0,76,0,108,0,179,0,252,0,58,1,37,1,244,0,30,1,83,1, +55,1,9,1,218,0,135,0,51,0,17,0,21,0,230,255,117,255,60,255,43,255,200,254,89,254,64,254,61,254,58,254, +78,254,102,254,156,254,238,254,41,255,91,255,107,255,53,255,30,255,76,255,117,255,184,255,53,0,157,0,202,0,211,0, +198,0,183,0,161,0,147,0,165,0,140,0,36,0,208,255,169,255,109,255,31,255,228,254,212,254,237,254,254,254,1,255, +24,255,37,255,11,255,232,254,195,254,160,254,137,254,104,254,76,254,83,254,74,254,26,254,24,254,112,254,217,254,6,255, +10,255,14,255,254,254,197,254,117,254,28,254,228,253,241,253,0,254,214,253,160,253,123,253,90,253,56,253,248,252,180,252, +195,252,15,253,65,253,104,253,138,253,103,253,11,253,206,252,225,252,55,253,196,253,152,254,142,255,49,0,144,0,34,1, +154,1,148,1,194,1,158,2,82,3,88,3,47,3,34,3,17,3,13,3,38,3,50,3,22,3,218,2,143,2,65,2, +5,2,218,1,122,1,232,0,157,0,142,0,67,0,12,0,47,0,24,0,177,255,160,255,214,255,238,255,35,0,188,0, +106,1,175,1,137,1,112,1,151,1,207,1,17,2,80,2,122,2,219,2,104,3,153,3,138,3,151,3,109,3,255,2, +194,2,148,2,39,2,176,1,63,1,203,0,140,0,71,0,136,255,183,254,108,254,97,254,66,254,52,254,45,254,16,254, +26,254,108,254,219,254,58,255,110,255,146,255,181,255,149,255,93,255,135,255,203,255,234,255,80,0,206,0,222,0,228,0, +42,1,76,1,69,1,75,1,64,1,36,1,10,1,230,0,183,0,119,0,65,0,53,0,10,0,179,255,169,255,226,255, +252,255,3,0,239,255,178,255,156,255,161,255,104,255,29,255,29,255,103,255,182,255,191,255,172,255,229,255,56,0,81,0, +95,0,125,0,130,0,122,0,118,0,91,0,39,0,240,255,199,255,181,255,169,255,121,255,3,255,117,254,44,254,10,254, +186,253,105,253,87,253,62,253,236,252,159,252,143,252,165,252,154,252,99,252,71,252,79,252,69,252,39,252,243,251,152,251, +95,251,138,251,221,251,51,252,192,252,138,253,87,254,7,255,175,255,107,0,45,1,185,1,2,2,55,2,106,2,127,2, +142,2,221,2,94,3,175,3,198,3,231,3,4,4,221,3,150,3,97,3,36,3,194,2,89,2,10,2,197,1,90,1, +215,0,138,0,134,0,156,0,192,0,235,0,27,1,115,1,180,1,113,1,9,1,31,1,128,1,178,1,217,1,67,2, +227,2,132,3,245,3,20,4,222,3,122,3,2,3,102,2,215,1,169,1,171,1,147,1,144,1,162,1,98,1,211,0, +78,0,9,0,7,0,248,255,185,255,186,255,9,0,25,0,214,255,167,255,174,255,223,255,6,0,241,255,238,255,62,0, +129,0,126,0,116,0,104,0,86,0,107,0,153,0,211,0,52,1,114,1,69,1,17,1,1,1,195,0,115,0,77,0, +37,0,28,0,113,0,178,0,150,0,123,0,109,0,51,0,7,0,51,0,137,0,190,0,197,0,206,0,227,0,210,0, +144,0,64,0,253,255,224,255,198,255,104,255,226,254,128,254,79,254,52,254,8,254,220,253,24,254,179,254,26,255,50,255, +68,255,87,255,86,255,38,255,192,254,91,254,239,253,111,253,73,253,142,253,178,253,154,253,126,253,80,253,0,253,145,252, +11,252,159,251,65,251,204,250,112,250,61,250,21,250,233,249,125,249,8,249,54,249,195,249,48,250,1,251,65,252,50,253, +6,254,46,255,87,0,88,1,69,2,16,3,246,3,230,4,136,5,31,6,184,6,224,6,230,6,9,7,155,6,195,5, +78,5,237,4,43,4,120,3,249,2,82,2,127,1,179,0,241,255,24,255,44,254,131,253,71,253,30,253,215,252,195,252, +7,253,98,253,157,253,190,253,239,253,88,254,242,254,129,255,240,255,122,0,29,1,137,1,214,1,51,2,79,2,55,2, +101,2,152,2,103,2,29,2,212,1,101,1,6,1,172,0,52,0,245,255,227,255,145,255,49,255,253,254,194,254,167,254, +213,254,6,255,57,255,157,255,241,255,4,0,244,255,210,255,178,255,188,255,247,255,59,0,80,0,41,0,26,0,104,0, +213,0,241,0,208,0,237,0,86,1,148,1,132,1,114,1,140,1,200,1,1,2,33,2,94,2,207,2,14,3,11,3, +39,3,86,3,71,3,11,3,196,2,132,2,74,2,216,1,43,1,191,0,171,0,115,0,243,255,113,255,2,255,180,254, +157,254,125,254,17,254,127,253,6,253,187,252,174,252,186,252,160,252,107,252,71,252,78,252,137,252,194,252,188,252,161,252, +152,252,123,252,86,252,60,252,11,252,207,251,162,251,106,251,51,251,4,251,187,250,120,250,68,250,208,249,85,249,72,249, +96,249,64,249,19,249,245,248,2,249,107,249,18,250,227,250,247,251,19,253,10,254,217,254,75,255,135,255,32,0,19,1, +27,2,76,3,90,4,246,4,141,5,72,6,170,6,160,6,129,6,116,6,142,6,170,6,157,6,176,6,239,6,206,6, +52,6,126,5,183,4,234,3,75,3,174,2,2,2,166,1,152,1,92,1,232,0,144,0,93,0,35,0,217,255,150,255, +106,255,65,255,5,255,219,254,221,254,228,254,212,254,196,254,211,254,19,255,114,255,194,255,24,0,171,0,68,1,136,1, +145,1,144,1,132,1,124,1,124,1,106,1,114,1,192,1,5,2,4,2,254,1,254,1,162,1,204,0,220,255,78,255, +78,255,151,255,220,255,54,0,196,0,62,1,89,1,31,1,195,0,120,0,89,0,102,0,176,0,58,1,213,1,128,2, +90,3,45,4,190,4,70,5,229,5,82,6,113,6,102,6,47,6,207,5,104,5,0,5,179,4,185,4,225,4,221,4, +211,4,220,4,167,4,22,4,64,3,65,2,103,1,174,0,185,255,207,254,118,254,103,254,100,254,140,254,141,254,52,254, +210,253,94,253,194,252,85,252,255,251,151,251,151,251,15,252,132,252,215,252,20,253,64,253,118,253,118,253,44,253,16,253, +23,253,243,252,235,252,11,253,22,253,46,253,28,253,149,252,19,252,199,251,91,251,229,250,99,250,171,249,30,249,208,248, +111,248,38,248,10,248,240,247,17,248,57,248,16,248,32,248,122,248,149,248,214,248,138,249,15,250,99,250,200,250,230,250, +229,250,29,251,47,251,7,251,249,250,239,250,231,250,234,250,193,250,185,250,37,251,140,251,150,251,168,251,0,252,104,252, +166,252,204,252,249,252,1,253,208,252,146,252,35,252,117,251,239,250,166,250,104,250,90,250,134,250,185,250,203,250,171,250, +168,250,26,251,175,251,111,252,229,253,138,255,175,0,212,1,26,3,253,3,186,4,136,5,48,6,225,6,191,7,198,8, +104,10,149,12,181,14,191,16,181,18,87,20,219,21,48,23,218,23,56,24,179,24,221,24,162,24,106,24,19,24,86,23, +74,22,245,20,12,19,90,16,47,13,23,10,30,7,17,4,54,1,217,254,196,252,186,250,190,248,217,246,0,245,74,243, +240,241,243,240,76,240,46,240,128,240,223,240,114,241,124,242,155,243,140,244,129,245,123,246,95,247,51,248,251,248,219,249, +221,250,168,251,39,252,181,252,108,253,34,254,187,254,59,255,190,255,48,0,95,0,106,0,109,0,94,0,127,0,249,0, +131,1,4,2,127,2,222,2,64,3,133,3,81,3,6,3,25,3,32,3,224,2,196,2,244,2,91,3,191,3,218,3, +228,3,25,4,17,4,191,3,175,3,234,3,28,4,60,4,75,4,59,4,41,4,59,4,100,4,78,4,183,3,185,2, +96,1,144,255,111,253,23,251,104,248,138,245,16,243,132,241,221,240,114,240,16,240,42,240,82,240,200,239,241,238,15,238, +155,236,223,234,129,233,114,232,36,232,48,233,252,234,27,237,36,240,27,244,122,248,23,253,168,1,241,5,49,10,82,14, +13,18,156,21,210,24,17,27,123,28,102,29,130,29,181,28,76,27,44,25,86,22,72,19,44,16,14,13,120,10,120,8, +92,6,15,4,11,2,48,0,43,254,35,252,108,250,120,249,121,249,237,249,153,250,26,252,112,254,217,0,75,3,21,6, +13,9,64,12,244,15,221,19,154,23,247,26,114,29,176,30,202,30,187,29,154,27,216,24,177,21,88,18,84,15,130,12, +32,9,49,5,80,1,109,253,54,249,225,244,204,240,43,237,61,234,26,232,161,230,225,229,222,229,238,229,117,229,13,229, +132,229,187,230,124,232,246,234,246,237,27,241,92,244,169,247,200,250,112,253,75,255,121,0,156,1,1,3,149,4,81,6, +250,7,68,9,11,10,254,9,24,9,28,8,137,7,39,7,248,6,82,7,35,8,246,8,123,9,199,9,7,10,56,10, +87,10,128,10,205,10,106,11,43,12,111,12,19,12,121,11,188,10,227,9,0,9,223,7,187,6,255,5,42,5,228,3, +188,2,156,1,25,0,166,254,91,253,211,251,128,250,169,249,180,248,128,247,67,246,185,244,234,242,51,241,146,239,32,238, +53,237,249,236,152,237,219,238,240,239,169,240,169,241,211,242,99,243,116,243,200,243,134,244,99,245,91,246,138,247,214,248, +0,250,179,250,206,250,170,250,173,250,236,250,133,251,158,252,237,253,234,254,94,255,112,255,64,255,187,254,253,253,127,253, +104,253,96,253,72,253,66,253,60,253,235,252,16,252,184,250,78,249,71,248,252,247,126,248,96,249,84,250,136,251,218,252, +229,253,175,254,36,255,39,255,74,255,225,255,108,0,205,0,52,1,120,1,189,1,56,2,117,2,64,2,222,1,57,1, +88,0,170,255,20,255,74,254,161,253,83,253,36,253,252,252,228,252,207,252,213,252,30,253,151,253,17,254,139,254,32,255, +198,255,93,0,254,0,175,1,44,2,116,2,243,2,186,3,116,4,22,5,197,5,80,6,123,6,95,6,37,6,170,5, +214,4,245,3,57,3,90,2,89,1,184,0,102,0,224,255,106,255,124,255,167,255,115,255,34,255,9,255,86,255,13,0, +178,0,13,1,164,1,143,2,89,3,14,4,228,4,191,5,163,6,167,7,194,8,231,9,203,10,34,11,23,11,228,10, +127,10,230,9,0,9,181,7,55,6,164,4,4,3,147,1,89,0,25,255,205,253,162,252,189,251,250,250,251,249,240,248, +77,248,206,247,93,247,151,247,77,248,225,248,148,249,103,250,214,250,55,251,6,252,237,252,178,253,103,254,253,254,163,255, +171,0,18,2,123,3,92,4,194,4,89,5,3,6,34,6,239,5,171,5,22,5,128,4,89,4,83,4,71,4,101,4, +136,4,119,4,254,3,244,2,231,1,135,1,122,1,52,1,206,0,103,0,33,0,82,0,225,0,139,1,87,2,243,2, +240,2,161,2,120,2,125,2,213,2,62,3,4,3,87,2,199,1,251,0,211,255,249,254,68,254,17,253,202,251,21,251, +152,250,181,249,131,248,127,247,222,246,173,246,50,247,54,248,247,248,103,249,214,249,229,249,187,249,86,250,169,251,237,252, +33,254,97,255,107,0,96,1,106,2,93,3,36,4,166,4,244,4,103,5,193,5,133,5,12,5,162,4,32,4,244,3, +89,4,140,4,56,4,175,3,235,2,23,2,185,1,170,1,173,1,237,1,49,2,23,2,219,1,229,1,79,2,195,2, +207,2,169,2,185,2,236,2,67,3,188,3,241,3,238,3,240,3,191,3,135,3,167,3,192,3,167,3,155,3,93,3, +201,2,37,2,129,1,3,1,204,0,88,0,59,255,206,253,110,252,251,250,98,249,218,247,91,246,200,244,108,243,81,242, +52,241,121,240,114,240,177,240,11,241,143,241,54,242,84,243,218,244,68,246,144,247,150,248,30,249,192,249,127,250,181,250, +179,250,169,250,46,250,122,249,214,248,69,248,219,247,40,247,49,246,145,245,249,244,103,244,146,244,196,244,16,244,198,242, +238,240,37,239,201,238,176,239,84,241,33,244,190,247,97,251,207,254,232,1,19,5,199,8,199,12,27,17,155,21,150,25, +27,29,70,32,193,34,224,36,157,38,114,39,201,39,178,39,117,38,55,36,39,33,54,29,7,25,177,20,224,15,245,10, +239,5,175,0,220,251,147,247,168,243,79,240,55,237,53,234,176,231,185,229,149,228,62,228,232,227,239,227,45,229,20,231, +160,233,140,237,99,242,160,247,29,253,40,2,103,6,219,9,130,12,242,14,40,17,64,18,30,18,8,17,102,15,43,14, +69,13,233,11,70,10,108,8,39,6,196,3,205,0,207,252,142,248,101,244,124,240,168,237,225,235,200,234,193,234,160,235, +171,236,125,237,3,238,240,238,48,241,231,244,229,249,62,255,205,3,11,8,143,12,202,16,187,20,110,24,96,27,25,30, +255,32,16,35,231,35,224,35,240,34,78,33,46,31,104,28,19,25,98,21,194,17,197,14,25,12,108,9,100,7,247,5, +35,4,148,1,215,254,161,252,57,251,117,250,87,250,217,250,203,251,73,253,233,254,213,255,123,0,167,1,17,3,150,4, +69,6,105,7,156,7,41,7,249,5,232,3,96,1,249,254,16,253,164,251,100,250,3,249,78,247,98,245,192,243,154,242, +126,241,51,240,47,239,183,238,79,238,178,237,83,237,121,237,11,238,22,239,143,240,55,242,12,244,253,245,236,247,66,250, +62,253,44,0,127,2,112,4,39,6,160,7,27,9,165,10,246,11,231,12,45,13,116,12,37,11,237,9,177,8,3,7, +223,4,129,2,65,0,69,254,35,252,177,249,172,247,160,246,43,246,213,245,152,245,111,245,85,245,125,245,49,246,137,247, +58,249,177,250,196,251,175,252,75,253,113,253,153,253,16,254,172,254,133,255,139,0,49,1,134,1,230,1,237,1,85,1, +136,0,162,255,159,254,240,253,188,253,155,253,45,253,78,252,42,251,49,250,176,249,161,249,222,249,107,250,111,251,168,252, +119,253,187,253,234,253,94,254,29,255,245,255,168,0,35,1,75,1,57,1,96,1,210,1,96,2,6,3,69,3,130,2, +55,1,16,0,41,255,172,254,95,254,189,253,49,253,12,253,137,252,121,251,137,250,227,249,108,249,41,249,242,248,167,248, +83,248,56,248,169,248,65,249,146,249,75,250,210,251,81,253,80,254,255,254,129,255,60,0,116,1,193,2,188,3,68,4, +95,4,76,4,2,4,107,3,250,2,215,2,175,2,105,2,192,1,108,0,239,254,162,253,83,252,65,251,150,250,240,249, +85,249,10,249,37,249,206,249,188,250,95,251,246,251,235,252,24,254,74,255,100,0,106,1,157,2,198,3,141,4,75,5, +20,6,158,6,42,7,205,7,35,8,74,8,108,8,84,8,24,8,197,7,26,7,40,6,14,5,238,3,56,3,233,2, +121,2,174,1,161,0,151,255,211,254,11,254,21,253,128,252,83,252,228,251,43,251,167,250,136,250,186,250,251,250,16,251, +10,251,0,251,4,251,48,251,104,251,190,251,102,252,217,252,128,252,249,251,245,251,63,252,194,252,124,253,221,253,212,253, +246,253,58,254,39,254,167,253,8,253,178,252,163,252,142,252,171,252,3,253,12,253,251,252,95,253,245,253,144,254,94,255, +82,0,141,1,246,2,219,3,58,4,165,4,45,5,197,5,79,6,153,6,244,6,135,7,214,7,161,7,13,7,143,6, +174,6,9,7,253,6,143,6,172,5,146,4,12,4,218,3,113,3,58,3,254,2,47,2,76,1,141,0,172,255,32,255, +38,255,65,255,45,255,242,254,215,254,55,255,202,255,28,0,48,0,56,0,112,0,199,0,245,0,44,1,151,1,18,2, +221,2,222,3,97,4,98,4,44,4,186,3,66,3,173,2,194,1,20,1,210,0,82,0,130,255,152,254,148,253,224,252, +169,252,144,252,119,252,80,252,237,251,98,251,171,250,211,249,49,249,212,248,198,248,34,249,172,249,105,250,145,251,220,252, +45,254,131,255,117,0,60,1,109,2,187,3,185,4,96,5,152,5,171,5,228,5,26,6,105,6,175,6,62,6,67,5, +83,4,101,3,181,2,118,2,46,2,226,1,214,1,188,1,173,1,16,2,159,2,1,3,82,3,151,3,188,3,237,3, +120,4,77,5,17,6,188,6,86,7,173,7,237,7,48,8,28,8,249,7,63,8,120,8,97,8,35,8,96,7,22,6, +221,4,162,3,70,2,32,1,16,0,242,254,13,254,102,253,10,253,0,253,209,252,120,252,120,252,159,252,188,252,31,253, +137,253,160,253,150,253,140,253,200,253,142,254,91,255,198,255,10,0,56,0,115,0,234,0,32,1,224,0,125,0,227,255, +20,255,85,254,119,253,138,252,214,251,1,251,23,250,116,249,181,248,235,247,140,247,10,247,74,246,9,246,6,246,224,245, +209,245,154,245,98,245,222,245,172,246,74,247,242,247,106,248,157,248,41,249,10,250,248,250,19,252,248,252,93,253,220,253, +209,254,225,255,190,0,102,1,21,2,205,2,37,3,213,2,10,2,37,1,118,0,244,255,123,255,11,255,138,254,248,253, +130,253,13,253,155,252,137,252,213,252,116,253,128,254,133,255,45,0,230,0,208,1,140,2,218,2,154,2,27,2,205,1, +116,1,233,0,138,0,123,0,210,0,152,1,106,2,42,3,21,4,9,5,237,5,175,6,227,6,145,6,33,6,189,5, +152,5,129,5,7,5,170,4,185,4,108,4,170,3,5,3,124,2,34,2,10,2,233,1,13,2,165,2,247,2,254,2, +46,3,48,3,22,3,103,3,193,3,244,3,186,4,43,6,180,7,44,9,136,10,152,11,56,12,48,12,100,11,21,10, +137,8,216,6,35,5,132,3,233,1,82,0,5,255,16,254,56,253,127,252,239,251,64,251,138,250,38,250,213,249,114,249, +117,249,206,249,202,249,77,249,165,248,236,247,97,247,81,247,166,247,90,248,145,249,252,250,44,252,54,253,45,254,219,254, +72,255,164,255,226,255,245,255,220,255,144,255,102,255,212,255,201,0,252,1,98,3,226,4,92,6,207,7,234,8,41,9, +155,8,129,7,198,5,162,3,128,1,67,255,248,252,73,251,87,250,152,249,41,249,100,249,226,249,76,250,222,250,141,251, +249,251,34,252,58,252,63,252,53,252,63,252,102,252,100,252,181,251,65,250,159,248,103,247,206,246,201,246,177,246,229,245, +92,245,101,246,133,247,135,245,159,239,195,231,213,223,44,217,130,213,221,213,93,217,179,222,247,229,168,239,40,250,238,1, +26,5,88,5,72,5,221,5,130,7,83,11,123,17,92,24,8,31,180,38,19,48,165,56,191,60,246,59,46,57,72,54, +157,50,188,45,55,40,216,33,55,26,145,18,103,12,101,7,44,2,57,252,139,246,220,242,164,241,43,241,101,239,5,236, +61,232,107,229,46,228,88,228,168,229,67,232,145,236,92,243,1,253,247,7,181,17,27,25,133,30,151,34,229,37,59,40, +132,40,178,38,52,36,241,33,213,31,200,29,86,27,168,23,237,18,91,14,171,10,36,7,44,2,243,250,63,242,49,233, +165,224,209,217,64,213,13,210,35,208,252,208,251,212,192,218,207,224,199,229,163,232,233,233,232,234,72,236,52,238,178,240, +248,243,212,248,64,255,66,5,65,9,108,11,205,11,42,10,242,7,88,7,250,8,150,11,99,13,227,13,244,13,92,13, +195,10,156,6,150,2,83,255,140,253,130,254,159,1,216,4,254,6,203,7,116,7,174,6,220,5,15,5,154,4,157,4, +60,5,47,7,57,10,89,12,22,12,217,9,208,6,59,4,228,2,78,2,195,1,142,1,205,1,0,2,5,2,92,1, +3,255,43,251,197,246,60,242,157,238,69,237,230,237,118,239,151,241,203,243,79,245,150,245,61,244,177,241,78,239,20,238, +116,238,145,240,109,243,156,245,35,247,156,248,128,249,109,249,96,249,45,250,216,251,84,254,20,1,57,3,111,4,85,4, +208,2,46,1,48,0,55,255,182,254,125,255,191,0,196,1,104,2,187,1,66,255,131,251,209,246,245,241,51,238,236,235, +47,235,21,236,210,237,130,239,1,241,75,242,76,243,251,243,169,244,44,246,177,248,123,251,99,254,113,1,250,3,182,5, +13,7,95,8,29,10,39,12,186,13,202,14,81,15,75,14,133,11,20,8,119,4,206,0,185,253,125,251,253,249,97,249, +152,249,59,250,31,251,5,252,169,252,63,253,240,253,132,254,26,255,28,0,157,1,122,3,139,5,179,7,14,10,138,12, +169,14,4,16,130,16,74,16,165,15,106,14,92,12,5,10,247,7,38,6,159,4,85,3,208,1,24,0,125,254,242,252, +155,251,168,250,189,249,148,248,117,247,207,246,208,246,40,247,177,247,182,248,52,250,42,252,2,255,59,2,178,4,75,6, +64,7,126,7,123,7,199,7,87,8,249,8,130,9,230,9,96,10,203,10,165,10,170,9,221,7,245,5,46,5,164,5, +249,5,9,5,31,3,85,1,253,255,103,254,129,252,3,251,37,250,187,249,197,249,39,250,194,250,140,251,83,252,216,252, +244,252,173,252,90,252,80,252,190,252,218,253,203,255,116,2,108,5,35,8,119,10,115,12,159,13,186,13,59,13,98,12, +57,11,1,10,236,8,41,8,183,7,249,6,163,5,11,4,66,2,100,0,215,254,114,253,196,251,232,249,72,248,251,246, +166,245,63,244,129,243,209,243,168,244,118,245,247,245,61,246,161,246,216,246,74,246,130,245,102,245,236,245,168,246,52,247, +107,247,206,247,185,248,189,249,85,250,112,250,109,250,205,250,110,251,187,251,165,251,142,251,138,251,118,251,106,251,110,251, +37,251,152,250,108,250,173,250,26,251,13,252,97,253,70,254,211,254,115,255,245,255,104,0,252,0,127,1,14,2,203,2, +115,3,63,4,148,5,6,7,254,7,129,8,242,8,129,9,205,9,104,9,136,8,208,7,169,7,205,7,143,7,180,6, +123,5,71,4,165,3,137,3,38,3,124,2,58,2,90,2,135,2,182,2,236,2,48,3,66,3,221,2,112,2,91,2, +119,2,5,3,244,3,64,4,201,3,110,3,73,3,238,2,81,2,112,1,77,0,30,255,33,254,134,253,16,253,63,252, +48,251,117,250,52,250,56,250,82,250,71,250,234,249,79,249,147,248,207,247,53,247,204,246,109,246,41,246,14,246,10,246, +107,246,87,247,51,248,168,248,15,249,160,249,116,250,79,251,165,251,229,251,213,252,229,253,139,254,31,255,118,255,130,255, +202,255,12,0,238,255,238,255,0,0,168,255,13,255,87,254,164,253,84,253,75,253,12,253,139,252,241,251,104,251,22,251, +14,251,101,251,217,251,11,252,108,252,143,253,17,255,90,0,89,1,56,2,40,3,76,4,180,5,93,7,3,9,83,10, +108,11,187,12,80,14,122,15,170,15,73,15,147,14,39,13,142,11,188,10,108,10,11,10,146,9,27,9,236,8,3,9, +173,8,171,7,86,6,252,4,35,4,39,4,181,4,112,5,39,6,203,6,129,7,244,7,222,7,228,7,41,8,11,8, +188,7,185,7,199,7,157,7,33,7,132,6,51,6,220,5,248,4,226,3,223,2,212,1,23,1,186,0,40,0,18,255, +164,253,72,252,105,251,225,250,92,250,236,249,185,249,228,249,117,250,35,251,173,251,250,251,210,251,72,251,195,250,118,250, +110,250,175,250,78,251,116,252,218,253,251,254,193,255,46,0,2,0,83,255,152,254,97,254,11,255,31,0,253,0,215,1, +207,2,109,3,136,3,68,3,169,2,17,2,239,1,61,2,212,2,104,3,94,3,147,2,172,1,12,1,95,0,103,255, +119,254,13,254,43,254,115,254,3,255,30,0,15,1,39,1,230,0,175,0,62,0,191,255,116,255,76,255,140,255,34,0, +158,0,61,1,212,1,142,1,217,0,156,0,111,0,232,255,56,255,81,254,92,253,186,252,72,252,178,251,209,250,189,249, +238,248,133,248,58,248,239,247,133,247,38,247,46,247,37,247,192,246,198,246,47,247,48,247,33,247,131,247,55,248,88,249, +160,250,112,251,16,252,240,252,202,253,110,254,184,254,100,254,208,253,162,253,237,253,118,254,248,254,15,255,174,254,99,254, +120,254,98,254,208,253,73,253,21,253,2,253,61,253,207,253,61,254,113,254,221,254,196,255,3,1,30,2,208,2,88,3, +248,3,188,4,178,5,214,6,21,8,38,9,141,9,119,9,136,9,192,9,241,9,64,10,89,10,201,9,225,8,38,8, +150,7,230,6,1,6,51,5,174,4,28,4,22,3,178,1,111,0,159,255,251,254,109,254,107,254,209,254,243,254,203,254, +144,254,42,254,206,253,227,253,128,254,154,255,246,0,44,2,45,3,6,4,119,4,117,4,129,4,220,4,16,5,227,4, +224,4,44,5,72,5,53,5,11,5,66,4,201,2,77,1,16,0,7,255,62,254,129,253,183,252,29,252,183,251,134,251, +177,251,238,251,0,252,86,252,4,253,123,253,223,253,144,254,18,255,70,255,224,255,180,0,27,1,93,1,186,1,222,1, +239,1,20,2,246,1,185,1,158,1,84,1,217,0,123,0,8,0,46,255,232,253,94,252,244,250,250,249,109,249,57,249, +84,249,173,249,65,250,237,250,87,251,93,251,97,251,209,251,115,252,227,252,83,253,210,253,243,253,2,254,166,254,166,255, +111,0,225,0,38,1,136,1,219,1,149,1,3,1,196,0,162,0,158,0,73,1,90,2,4,3,53,3,54,3,72,3, +129,3,118,3,211,2,37,2,239,1,215,1,113,1,197,0,232,255,206,254,149,253,127,252,194,251,80,251,247,250,207,250, +244,250,39,251,92,251,191,251,3,252,226,251,162,251,119,251,123,251,220,251,112,252,23,253,242,253,189,254,76,255,215,255, +42,0,21,0,238,255,182,255,96,255,71,255,71,255,37,255,53,255,66,255,226,254,136,254,97,254,27,254,237,253,239,253, +179,253,67,253,237,252,176,252,156,252,179,252,228,252,63,253,154,253,201,253,31,254,165,254,255,254,107,255,34,0,139,0, +126,0,157,0,241,0,11,1,235,0,148,0,4,0,176,255,195,255,218,255,245,255,21,0,223,255,163,255,227,255,26,0, +244,255,255,255,83,0,159,0,14,1,189,1,133,2,141,3,202,4,214,5,174,6,148,7,71,8,110,8,68,8,57,8, +68,8,35,8,238,7,190,7,66,7,77,6,57,5,80,4,127,3,148,2,86,1,243,255,247,254,57,254,47,253,41,252, +151,251,62,251,254,250,203,250,93,250,241,249,211,249,196,249,220,249,31,250,242,249,174,249,59,250,43,251,228,251,168,252, +88,253,182,253,23,254,173,254,131,255,126,0,3,1,244,0,192,0,55,0,44,255,24,254,58,253,157,252,112,252,137,252, +175,252,200,252,137,252,250,251,154,251,144,251,163,251,193,251,6,252,124,252,7,253,181,253,136,254,33,255,102,255,144,255, +109,255,23,255,43,255,105,255,80,255,45,255,234,254,9,254,225,252,237,251,67,251,47,251,171,251,30,252,66,252,94,252, +193,252,61,253,63,253,237,252,255,252,105,253,217,253,96,254,227,254,93,255,16,0,198,0,111,1,104,2,69,3,138,3, +206,3,23,4,169,3,4,3,229,2,184,2,52,2,229,1,158,1,5,1,86,0,106,255,32,254,27,253,127,252,246,251, +188,251,202,251,158,251,111,251,137,251,153,251,170,251,0,252,106,252,220,252,104,253,215,253,64,254,229,254,120,255,187,255, +246,255,79,0,140,0,147,0,154,0,216,0,36,1,48,1,2,1,208,0,172,0,154,0,169,0,217,0,6,1,16,1, +243,0,175,0,92,0,30,0,253,255,23,0,121,0,207,0,22,1,188,1,135,2,210,2,185,2,200,2,43,3,166,3, +12,4,137,4,25,5,74,5,37,5,23,5,47,5,88,5,115,5,68,5,22,5,61,5,134,5,7,6,187,6,235,6, +153,6,144,6,226,6,32,7,31,7,200,6,76,6,8,6,17,6,57,6,37,6,196,5,131,5,116,5,74,5,248,4, +114,4,198,3,35,3,73,2,100,1,29,1,1,1,150,0,157,0,41,1,116,1,150,1,223,1,44,2,123,2,159,2, +132,2,144,2,170,2,139,2,123,2,120,2,49,2,216,1,137,1,23,1,162,0,80,0,4,0,170,255,73,255,238,254, +148,254,56,254,211,253,48,253,118,252,68,252,119,252,92,252,37,252,72,252,156,252,238,252,61,253,131,253,197,253,236,253, +255,253,59,254,137,254,211,254,97,255,58,0,15,1,187,1,109,2,104,3,95,4,207,4,6,5,82,5,99,5,133,5, +24,6,152,6,227,6,42,7,22,7,229,6,5,7,247,6,181,6,189,6,140,6,228,5,125,5,93,5,2,5,127,4, +252,3,93,3,180,2,57,2,254,1,190,1,69,1,190,0,60,0,190,255,120,255,114,255,106,255,30,255,106,254,165,253, +74,253,15,253,158,252,83,252,106,252,175,252,241,252,6,253,0,253,238,252,186,252,190,252,69,253,240,253,154,254,59,255, +92,255,53,255,113,255,207,255,10,0,82,0,103,0,64,0,51,0,238,255,67,255,213,254,196,254,165,254,139,254,188,254, +42,255,109,255,9,255,36,254,107,253,40,253,63,253,133,253,168,253,126,253,64,253,34,253,7,253,187,252,106,252,124,252, +207,252,238,252,236,252,14,253,44,253,15,253,201,252,153,252,193,252,18,253,18,253,176,252,37,252,144,251,22,251,180,250, +39,250,115,249,221,248,108,248,220,247,241,246,237,245,152,245,56,246,8,247,109,247,204,247,145,248,104,249,222,249,7,250, +50,250,60,250,209,249,42,249,235,248,85,249,42,250,12,251,182,251,1,252,4,252,27,252,136,252,24,253,147,253,69,254, +121,255,18,1,16,3,140,5,75,8,65,11,135,14,160,17,33,20,108,22,167,24,125,26,73,28,123,30,144,32,241,33, +107,34,184,33,1,32,254,29,210,27,15,25,185,21,30,18,117,14,229,10,92,7,187,3,251,255,220,251,77,247,247,242, +112,239,151,236,31,234,226,231,200,229,255,227,208,226,70,226,112,226,119,227,63,229,121,231,4,234,206,236,203,239,24,243, +181,246,90,250,210,253,250,0,174,3,33,6,131,8,125,10,244,11,75,13,78,14,118,14,224,13,171,12,176,10,64,8, +193,5,52,3,227,0,28,255,133,253,191,251,215,249,223,247,11,246,159,244,158,243,29,243,69,243,220,243,146,244,94,245, +34,246,195,246,131,247,184,248,134,250,239,252,184,255,119,2,242,4,71,7,167,9,240,11,220,13,95,15,133,16,69,17, +207,17,109,18,3,19,88,19,109,19,60,19,188,18,11,18,28,17,202,15,31,14,23,12,158,9,0,7,135,4,34,2, +239,255,49,254,194,252,105,251,58,250,37,249,13,248,63,247,230,246,185,246,153,246,161,246,197,246,10,247,117,247,184,247, +192,247,211,247,245,247,22,248,84,248,147,248,146,248,86,248,251,247,177,247,164,247,139,247,46,247,229,246,205,246,173,246, +208,246,115,247,36,248,148,248,232,248,70,249,221,249,208,250,252,251,78,253,224,254,128,0,230,1,55,3,162,4,245,5, +35,7,115,8,223,9,60,11,163,12,249,13,235,14,121,15,174,15,137,15,94,15,9,15,220,13,253,11,33,10,91,8, +139,6,167,4,107,2,232,255,134,253,72,251,46,249,92,247,190,245,111,244,142,243,181,242,206,241,70,241,236,240,94,240, +5,240,52,240,167,240,90,241,137,242,1,244,107,245,217,246,84,248,138,249,105,250,103,251,174,252,240,253,30,255,107,0, +230,1,125,3,247,4,37,6,31,7,248,7,147,8,238,8,46,9,86,9,66,9,214,8,22,8,52,7,89,6,132,5, +153,4,142,3,122,2,126,1,154,0,180,255,177,254,139,253,90,252,75,251,162,250,136,250,183,250,218,250,10,251,75,251, +112,251,170,251,11,252,62,252,80,252,171,252,92,253,94,254,191,255,58,1,129,2,116,3,244,3,48,4,142,4,28,5, +200,5,161,6,147,7,121,8,53,9,115,9,30,9,156,8,27,8,99,7,147,6,33,6,6,6,186,5,9,5,45,4, +80,3,103,2,112,1,133,0,201,255,69,255,226,254,163,254,114,254,12,254,105,253,163,252,171,251,175,250,2,250,131,249, +230,248,60,248,172,247,84,247,77,247,131,247,208,247,61,248,210,248,98,249,178,249,227,249,79,250,249,250,232,251,119,253, +129,255,80,1,185,2,234,3,203,4,93,5,211,5,73,6,201,6,47,7,66,7,19,7,202,6,110,6,253,5,82,5, +114,4,166,3,237,2,34,2,104,1,167,0,169,255,175,254,240,253,102,253,25,253,221,252,134,252,88,252,121,252,169,252, +209,252,250,252,46,253,162,253,113,254,115,255,97,0,25,1,223,1,246,2,25,4,248,4,158,5,25,6,108,6,180,6, +238,6,238,6,163,6,62,6,252,5,190,5,73,5,187,4,51,4,150,3,223,2,17,2,57,1,167,0,130,0,124,0, +96,0,48,0,211,255,47,255,110,254,240,253,211,253,192,253,141,253,93,253,21,253,147,252,254,251,82,251,132,250,219,249, +106,249,249,248,149,248,87,248,30,248,231,247,210,247,227,247,254,247,252,247,228,247,242,247,51,248,117,248,182,248,43,249, +221,249,156,250,79,251,11,252,200,252,92,253,184,253,15,254,125,254,200,254,216,254,249,254,75,255,194,255,113,0,32,1, +113,1,147,1,183,1,160,1,76,1,240,0,137,0,33,0,227,255,211,255,220,255,202,255,131,255,56,255,251,254,180,254, +128,254,107,254,107,254,149,254,199,254,195,254,171,254,182,254,226,254,17,255,18,255,241,254,242,254,253,254,246,254,6,255, +5,255,170,254,8,254,64,253,109,252,217,251,155,251,140,251,143,251,154,251,172,251,181,251,146,251,75,251,252,250,205,250, +236,250,49,251,102,251,194,251,61,252,151,252,12,253,170,253,24,254,105,254,215,254,91,255,21,0,238,0,132,1,201,1, +202,1,169,1,230,1,132,2,250,2,66,3,137,3,143,3,81,3,33,3,8,3,212,2,132,2,77,2,35,2,178,1, +41,1,250,0,1,1,237,0,225,0,11,1,91,1,148,1,159,1,196,1,33,2,105,2,133,2,162,2,226,2,121,3, +62,4,208,4,107,5,63,6,227,6,70,7,133,7,86,7,228,6,189,6,211,6,220,6,240,6,42,7,97,7,63,7, +151,6,187,5,33,5,217,4,155,4,40,4,136,3,218,2,43,2,151,1,53,1,237,0,172,0,106,0,56,0,50,0, +24,0,188,255,166,255,29,0,153,0,203,0,200,0,162,0,171,0,20,1,155,1,51,2,206,2,40,3,96,3,143,3, +140,3,150,3,220,3,21,4,52,4,77,4,71,4,83,4,109,4,30,4,117,3,251,2,222,2,254,2,6,3,161,2, +29,2,255,1,40,2,28,2,199,1,125,1,101,1,105,1,167,1,39,2,148,2,235,2,108,3,248,3,106,4,202,4, +2,5,53,5,155,5,6,6,79,6,115,6,102,6,82,6,69,6,238,5,115,5,75,5,67,5,253,4,155,4,73,4, +252,3,135,3,231,2,95,2,248,1,121,1,231,0,97,0,11,0,33,0,114,0,155,0,204,0,49,1,131,1,156,1, +125,1,41,1,234,0,231,0,11,1,99,1,196,1,213,1,193,1,196,1,200,1,208,1,201,1,139,1,87,1,64,1, +227,0,53,0,115,255,154,254,203,253,65,253,232,252,162,252,90,252,222,251,57,251,175,250,62,250,195,249,107,249,116,249, +197,249,23,250,99,250,182,250,239,250,32,251,137,251,6,252,74,252,86,252,61,252,32,252,70,252,153,252,197,252,207,252, +237,252,34,253,75,253,66,253,21,253,253,252,235,252,176,252,108,252,67,252,17,252,205,251,171,251,197,251,223,251,191,251, +127,251,65,251,15,251,14,251,77,251,165,251,20,252,144,252,219,252,238,252,227,252,193,252,214,252,66,253,148,253,174,253, +230,253,20,254,0,254,245,253,36,254,95,254,160,254,240,254,24,255,213,254,57,254,167,253,89,253,64,253,52,253,251,252, +138,252,35,252,199,251,67,251,167,250,23,250,115,249,163,248,205,247,80,247,82,247,119,247,125,247,149,247,174,247,147,247, +111,247,113,247,149,247,215,247,236,247,141,247,28,247,58,247,253,247,27,249,91,250,207,251,120,253,252,254,24,0,245,0, +188,1,112,2,55,3,40,4,4,5,167,5,138,6,60,8,125,10,126,12,203,13,143,14,48,15,192,15,225,15,163,15, +176,15,19,16,30,16,171,15,28,15,135,14,196,13,224,12,253,11,254,10,192,9,144,8,168,7,146,6,234,4,1,3, +79,1,22,0,84,255,202,254,111,254,84,254,37,254,151,253,206,252,20,252,202,251,15,252,109,252,184,252,64,253,238,253, +83,254,90,254,45,254,19,254,87,254,240,254,174,255,129,0,69,1,187,1,203,1,111,1,206,0,76,0,24,0,239,255, +179,255,131,255,42,255,90,254,121,253,18,253,250,252,234,252,7,253,93,253,185,253,240,253,229,253,182,253,179,253,18,254, +211,254,202,255,169,0,114,1,86,2,50,3,241,3,194,4,128,5,11,6,181,6,126,7,236,7,251,7,9,8,26,8, +3,8,223,7,248,7,64,8,67,8,199,7,46,7,188,6,38,6,60,5,69,4,116,3,195,2,37,2,105,1,98,0, +71,255,107,254,183,253,226,252,3,252,144,251,179,251,238,251,180,251,22,251,113,250,247,249,200,249,245,249,120,250,51,251, +235,251,109,252,187,252,232,252,252,252,252,252,231,252,201,252,194,252,187,252,116,252,222,251,41,251,138,250,16,250,154,249, +19,249,161,248,101,248,81,248,60,248,245,247,128,247,64,247,145,247,84,248,38,249,217,249,121,250,238,250,29,251,78,251, +245,251,33,253,137,254,232,255,45,1,89,2,84,3,237,3,24,4,26,4,74,4,204,4,127,5,24,6,76,6,30,6, +213,5,124,5,210,4,232,3,31,3,152,2,41,2,140,1,111,0,255,254,255,253,152,253,34,253,109,252,236,251,190,251, +156,251,129,251,161,251,243,251,46,252,46,252,29,252,35,252,71,252,164,252,69,253,254,253,203,254,209,255,231,0,172,1, +242,1,232,1,242,1,51,2,100,2,106,2,132,2,214,2,87,3,229,3,53,4,43,4,11,4,6,4,242,3,160,3, +75,3,68,3,102,3,102,3,73,3,253,2,90,2,167,1,35,1,154,0,252,255,146,255,116,255,92,255,236,254,20,254, +49,253,134,252,19,252,194,251,96,251,35,251,133,251,254,251,172,251,2,251,188,250,154,250,112,250,113,250,167,250,83,251, +147,252,172,253,255,253,228,253,244,253,89,254,234,254,158,255,131,0,75,1,170,1,202,1,199,1,165,1,232,1,201,2, +146,3,226,3,17,4,30,4,210,3,134,3,143,3,183,3,233,3,70,4,131,4,68,4,175,3,241,2,31,2,131,1, +40,1,209,0,157,0,166,0,146,0,66,0,215,255,48,255,101,254,233,253,200,253,170,253,94,253,6,253,210,252,175,252, +105,252,17,252,205,251,153,251,154,251,238,251,83,252,156,252,210,252,202,252,104,252,243,251,192,251,200,251,226,251,7,252, +41,252,13,252,170,251,75,251,0,251,143,250,25,250,251,249,36,250,79,250,91,250,37,250,183,249,117,249,154,249,244,249, +60,250,69,250,22,250,250,249,43,250,176,250,139,251,181,252,8,254,73,255,70,0,16,1,214,1,121,2,199,2,229,2, +24,3,124,3,255,3,124,4,212,4,218,4,133,4,79,4,130,4,160,4,77,4,213,3,112,3,37,3,249,2,202,2, +168,2,200,2,239,2,215,2,152,2,65,2,4,2,4,2,222,1,103,1,20,1,251,0,214,0,191,0,208,0,212,0, +154,0,18,0,100,255,209,254,111,254,55,254,4,254,178,253,116,253,109,253,93,253,49,253,24,253,43,253,120,253,212,253, +239,253,236,253,28,254,122,254,226,254,53,255,114,255,211,255,93,0,222,0,71,1,140,1,166,1,184,1,185,1,153,1, +124,1,100,1,81,1,97,1,115,1,124,1,159,1,132,1,224,0,18,0,121,255,45,255,30,255,230,254,95,254,13,254, +89,254,52,255,78,0,51,1,182,1,214,1,118,1,210,0,129,0,168,0,27,1,187,1,130,2,135,3,169,4,151,5, +80,6,206,6,188,6,48,6,138,5,252,4,178,4,137,4,61,4,30,4,85,4,66,4,176,3,29,3,192,2,113,2, +21,2,172,1,74,1,207,0,19,0,78,255,206,254,216,254,167,255,231,0,12,2,31,3,10,4,77,4,14,4,1,4, +81,4,197,4,96,5,63,6,38,7,173,7,203,7,187,7,114,7,214,6,42,6,185,5,140,5,117,5,53,5,209,4, +130,4,39,4,115,3,153,2,23,2,231,1,183,1,176,1,42,2,204,2,8,3,226,2,158,2,92,2,54,2,0,2, +125,1,32,1,97,1,233,1,102,2,19,3,229,3,108,4,178,4,244,4,232,4,48,4,28,3,59,2,176,1,120,1, +155,1,226,1,239,1,177,1,71,1,155,0,159,255,169,254,23,254,198,253,84,253,202,252,123,252,112,252,116,252,131,252, +205,252,90,253,246,253,102,254,135,254,90,254,23,254,250,253,14,254,87,254,238,254,193,255,85,0,82,0,8,0,255,255, +38,0,19,0,190,255,128,255,118,255,84,255,248,254,193,254,199,254,142,254,9,254,182,253,169,253,183,253,212,253,209,253, +173,253,201,253,44,254,126,254,141,254,78,254,247,253,216,253,235,253,27,254,110,254,163,254,153,254,178,254,29,255,143,255, +197,255,184,255,130,255,7,255,37,254,74,253,222,252,142,252,37,252,220,251,147,251,15,251,130,250,17,250,137,249,201,248, +255,247,129,247,63,247,221,246,112,246,93,246,190,246,107,247,12,248,80,248,82,248,74,248,39,248,235,247,239,247,135,248, +158,249,180,250,125,251,35,252,220,252,213,253,255,254,190,255,193,255,157,255,149,255,54,255,92,254,88,253,152,252,115,252, +176,252,182,252,70,252,120,251,98,250,34,249,254,247,74,247,22,247,18,247,255,246,225,246,230,246,107,247,163,248,114,250, +190,252,95,255,18,2,221,4,191,7,129,10,48,13,230,15,137,18,38,21,169,23,193,25,136,27,41,29,82,30,222,30, +3,31,174,30,153,29,170,27,11,25,30,22,16,19,188,15,45,12,137,8,183,4,123,0,221,251,109,247,198,243,188,240, +241,237,156,235,211,233,79,232,29,231,128,230,144,230,102,231,221,232,146,234,135,236,226,238,106,241,4,244,235,246,11,250, +4,253,173,255,255,1,244,3,197,5,143,7,5,9,15,10,252,10,147,11,74,11,80,10,32,9,173,7,235,5,38,4, +142,2,41,1,229,255,152,254,33,253,150,251,26,250,211,248,227,247,94,247,85,247,212,247,176,248,133,249,29,250,193,250, +202,251,57,253,233,254,197,0,179,2,122,4,213,5,206,6,230,7,82,9,170,10,159,11,45,12,52,12,202,11,80,11, +227,10,115,10,23,10,207,9,100,9,176,8,176,7,95,6,203,4,70,3,53,2,144,1,12,1,168,0,137,0,148,0, +145,0,114,0,71,0,15,0,181,255,91,255,62,255,64,255,52,255,76,255,135,255,108,255,208,254,2,254,61,253,153,252, +23,252,110,251,123,250,140,249,176,248,155,247,143,246,0,246,158,245,24,245,230,244,74,245,233,245,171,246,180,247,228,248, +4,250,252,250,200,251,144,252,105,253,77,254,100,255,216,0,144,2,123,4,128,6,56,8,67,9,184,9,236,9,9,10, +236,9,115,9,205,8,53,8,133,7,120,6,34,5,239,3,0,3,245,1,162,0,89,255,50,254,237,252,111,251,190,249, +244,247,77,246,223,244,172,243,254,242,255,242,112,243,35,244,25,245,51,246,51,247,238,247,110,248,239,248,177,249,230,250, +174,252,214,254,7,1,14,3,203,4,2,6,119,6,23,6,72,5,197,4,241,4,173,5,178,6,142,7,192,7,23,7, +181,5,2,4,134,2,127,1,239,0,224,0,32,1,74,1,67,1,19,1,166,0,15,0,143,255,92,255,162,255,110,0, +129,1,128,2,27,3,12,3,63,2,15,1,20,0,172,255,217,255,95,0,211,0,205,0,31,0,225,254,79,253,173,251, +66,250,89,249,18,249,33,249,54,249,85,249,121,249,122,249,109,249,117,249,141,249,210,249,107,250,91,251,154,252,253,253, +57,255,76,0,89,1,93,2,75,3,26,4,177,4,23,5,107,5,189,5,254,5,0,6,183,5,68,5,198,4,105,4, +71,4,240,3,237,2,153,1,113,0,67,255,191,253,253,251,84,250,252,248,254,247,105,247,92,247,186,247,74,248,221,248, +42,249,33,249,17,249,50,249,179,249,216,250,128,252,66,254,236,255,76,1,77,2,67,3,94,4,77,5,229,5,91,6, +175,6,113,6,137,5,172,4,74,4,235,3,54,3,113,2,194,1,26,1,115,0,156,255,143,254,184,253,102,253,134,253, +242,253,143,254,57,255,187,255,213,255,145,255,91,255,147,255,52,0,14,1,254,1,200,2,43,3,48,3,231,2,55,2, +91,1,177,0,40,0,171,255,112,255,94,255,29,255,148,254,220,253,38,253,198,252,223,252,96,253,14,254,142,254,178,254, +148,254,97,254,68,254,69,254,100,254,226,254,230,255,17,1,236,1,72,2,61,2,26,2,250,1,177,1,77,1,15,1, +253,0,232,0,159,0,34,0,162,255,21,255,98,254,192,253,75,253,204,252,35,252,106,251,207,250,123,250,87,250,36,250, +234,249,229,249,19,250,50,250,73,250,202,250,199,251,201,252,146,253,58,254,195,254,64,255,214,255,124,0,48,1,17,2, +7,3,189,3,13,4,28,4,36,4,44,4,29,4,224,3,109,3,233,2,103,2,194,1,5,1,115,0,4,0,135,255, +229,254,26,254,76,253,167,252,54,252,1,252,245,251,224,251,195,251,146,251,9,251,74,250,192,249,120,249,90,249,105,249, +152,249,246,249,145,250,42,251,103,251,44,251,156,250,251,249,143,249,175,249,130,250,146,251,89,252,223,252,77,253,138,253, +140,253,108,253,103,253,175,253,71,254,66,255,164,0,238,1,152,2,165,2,115,2,79,2,58,2,43,2,84,2,192,2, +55,3,191,3,100,4,254,4,138,5,238,5,238,5,162,5,61,5,212,4,174,4,231,4,65,5,123,5,92,5,28,5, +106,5,53,6,184,6,198,6,162,6,98,6,13,6,154,5,42,5,30,5,112,5,220,5,100,6,255,6,128,7,182,7, +110,7,226,6,111,6,220,5,1,5,74,4,13,4,92,4,250,4,95,5,114,5,86,5,186,4,154,3,127,2,164,1, +17,1,203,0,127,0,10,0,167,255,73,255,204,254,68,254,190,253,61,253,219,252,189,252,10,253,162,253,26,254,72,254, +66,254,31,254,14,254,62,254,183,254,103,255,24,0,158,0,19,1,138,1,17,2,217,2,180,3,22,4,248,3,205,3, +177,3,111,3,37,3,26,3,86,3,189,3,46,4,107,4,95,4,63,4,246,3,53,3,46,2,104,1,12,1,2,1, +51,1,114,1,184,1,49,2,211,2,95,3,184,3,238,3,11,4,21,4,43,4,104,4,219,4,143,5,78,6,144,6, +21,6,87,5,228,4,179,4,156,4,242,4,198,5,74,6,244,5,65,5,194,4,97,4,159,3,26,2,0,0,12,254, +206,252,133,252,91,253,254,254,107,0,193,0,240,255,142,254,90,253,186,252,131,252,96,252,73,252,76,252,66,252,83,252, +237,252,244,253,219,254,91,255,80,255,154,254,140,253,192,252,126,252,168,252,247,252,53,253,92,253,83,253,245,252,122,252, +97,252,214,252,133,253,244,253,218,253,44,253,18,252,208,250,200,249,139,249,109,250,226,251,233,252,20,253,159,252,227,251, +32,251,112,250,244,249,1,250,185,250,158,251,39,252,103,252,146,252,125,252,45,252,4,252,5,252,30,252,171,252,193,253, +237,254,229,255,85,0,220,255,183,254,68,253,161,251,89,250,237,249,12,250,69,250,82,250,183,249,52,248,41,246,35,244, +160,242,246,241,48,242,2,243,244,243,231,244,14,246,46,247,223,247,68,248,222,248,30,250,23,252,147,254,150,1,28,5, +120,8,7,11,210,12,7,14,222,14,128,15,161,15,66,15,24,15,127,15,37,16,156,16,129,16,158,15,225,13,93,11, +178,8,150,6,253,4,143,3,56,2,233,0,145,255,86,254,137,253,125,253,32,254,248,254,201,255,145,0,33,1,57,1, +222,0,159,0,76,1,31,3,151,5,34,8,28,10,215,10,93,10,103,9,90,8,33,7,208,5,160,4,124,3,64,2, +12,1,249,255,242,254,244,253,201,252,27,251,59,249,217,247,247,246,70,246,230,245,255,245,84,246,170,246,22,247,224,247, +32,249,132,250,183,251,186,252,168,253,128,254,58,255,207,255,52,0,145,0,32,1,203,1,58,2,57,2,229,1,139,1, +92,1,102,1,208,1,154,2,74,3,110,3,14,3,99,2,192,1,141,1,252,1,10,3,126,4,207,5,175,6,85,7, +211,7,255,7,241,7,202,7,75,7,55,6,228,4,6,4,220,3,15,4,46,4,218,3,212,2,48,1,69,255,133,253, +28,252,185,250,82,249,152,248,250,248,20,250,14,251,51,251,160,250,25,250,226,249,207,249,12,250,164,250,61,251,200,251, +99,252,232,252,47,253,66,253,79,253,94,253,43,253,142,252,202,251,64,251,26,251,38,251,7,251,163,250,30,250,167,249, +155,249,7,250,79,250,28,250,251,249,118,250,93,251,63,252,242,252,118,253,189,253,0,254,137,254,27,255,99,255,148,255, +5,0,215,0,196,1,41,2,196,1,22,1,145,0,76,0,72,0,103,0,131,0,150,0,173,0,217,0,13,1,34,1, +58,1,143,1,231,1,236,1,152,1,19,1,154,0,142,0,36,1,35,2,5,3,109,3,60,3,113,2,58,1,218,255, +149,254,196,253,149,253,203,253,69,254,32,255,57,0,51,1,140,1,250,0,21,0,148,255,102,255,158,255,175,0,89,2, +239,3,42,5,214,5,198,5,60,5,176,4,111,4,125,4,165,4,177,4,137,4,29,4,94,3,98,2,137,1,9,1, +145,0,6,0,170,255,70,255,146,254,248,253,237,253,123,254,89,255,212,255,165,255,132,255,0,0,224,0,190,1,98,2, +221,2,84,3,180,3,235,3,17,4,67,4,180,4,65,5,100,5,25,5,158,4,191,3,160,2,228,1,136,1,16,1, +100,0,141,255,150,254,170,253,222,252,41,252,144,251,39,251,24,251,91,251,148,251,134,251,71,251,8,251,248,250,63,251, +224,251,199,252,226,253,32,255,37,0,121,0,54,0,231,255,178,255,125,255,95,255,105,255,170,255,36,0,118,0,60,0, +153,255,188,254,162,253,143,252,234,251,208,251,43,252,202,252,96,253,178,253,188,253,123,253,227,252,31,252,167,251,219,251, +147,252,75,253,195,253,251,253,222,253,136,253,93,253,125,253,178,253,213,253,206,253,173,253,157,253,97,253,177,252,249,251, +164,251,138,251,142,251,184,251,232,251,31,252,117,252,180,252,163,252,95,252,35,252,4,252,255,251,30,252,130,252,51,253, +6,254,159,254,188,254,98,254,187,253,254,252,135,252,139,252,226,252,73,253,125,253,103,253,93,253,157,253,215,253,178,253, +68,253,231,252,229,252,32,253,76,253,98,253,118,253,150,253,9,254,229,254,162,255,240,255,42,0,160,0,24,1,53,1, +248,0,216,0,70,1,40,2,1,3,154,3,28,4,153,4,220,4,202,4,117,4,235,3,59,3,177,2,179,2,58,3, +251,3,193,4,54,5,230,4,229,3,175,2,165,1,25,1,6,1,243,0,200,0,224,0,35,1,63,1,44,1,239,0, +144,0,42,0,204,255,161,255,249,255,190,0,112,1,177,1,95,1,154,0,240,255,17,0,235,0,183,1,56,2,208,2, +111,3,183,3,182,3,130,3,22,3,159,2,67,2,29,2,61,2,74,2,249,1,107,1,185,0,14,0,191,255,185,255, +181,255,148,255,35,255,135,254,80,254,95,254,34,254,186,253,159,253,243,253,177,254,189,255,236,0,23,2,13,3,154,3, +163,3,80,3,41,3,153,3,132,4,152,5,133,6,251,6,17,7,30,7,37,7,220,6,35,6,56,5,126,4,9,4, +192,3,164,3,159,3,139,3,99,3,25,3,174,2,103,2,93,2,97,2,95,2,128,2,249,2,191,3,106,4,191,4, +11,5,144,5,27,6,82,6,53,6,51,6,132,6,216,6,236,6,221,6,215,6,243,6,53,7,79,7,216,6,219,5, +212,4,28,4,161,3,29,3,62,2,67,1,41,1,81,2,140,3,159,3,168,2,150,1,35,1,30,1,211,0,106,0, +129,0,116,0,68,255,168,253,65,253,118,254,38,0,10,1,251,0,122,0,159,255,119,254,162,253,130,253,109,253,125,252, +228,250,202,249,198,249,104,250,67,251,57,252,239,252,2,253,168,252,102,252,83,252,236,251,255,250,80,250,154,250,129,251, +74,252,6,253,44,254,136,255,93,0,127,0,98,0,29,0,98,255,74,254,117,253,129,253,143,254,29,0,106,1,219,1, +24,1,134,255,56,254,164,253,90,253,55,253,77,253,33,253,115,252,220,251,202,251,250,251,1,252,141,251,197,250,71,250, +76,250,94,250,82,250,116,250,176,250,142,250,25,250,249,249,121,250,38,251,147,251,188,251,208,251,22,252,111,252,39,252, +29,251,30,250,146,249,30,249,117,248,164,247,206,246,3,246,41,245,99,244,11,244,255,243,204,243,130,243,141,243,52,244, +99,245,192,246,31,248,192,249,201,251,248,253,32,0,111,2,200,4,125,6,93,7,53,8,179,9,192,11,25,14,100,16, +18,18,197,18,110,18,57,17,194,15,106,14,216,12,250,10,113,9,163,8,117,8,138,8,47,8,237,6,35,5,90,3, +184,1,107,0,175,255,143,255,7,0,26,1,152,2,32,4,57,5,173,5,201,5,29,6,253,6,88,8,209,9,7,11, +179,11,132,11,111,10,24,9,254,7,233,6,156,5,65,4,250,2,197,1,153,0,98,255,15,254,117,252,78,250,186,247, +105,245,12,244,178,243,192,243,198,243,246,243,137,244,85,245,17,246,124,246,188,246,62,247,237,247,114,248,45,249,177,250, +188,252,124,254,137,255,92,0,155,1,14,3,248,3,11,4,157,3,86,3,138,3,226,3,64,4,210,4,46,5,233,4, +106,4,5,4,179,3,126,3,57,3,178,2,20,2,109,1,201,0,122,0,111,0,90,0,84,0,112,0,161,0,20,1, +167,1,204,1,89,1,164,0,40,0,58,0,185,0,84,1,224,1,45,2,37,2,242,1,168,1,97,1,63,1,18,1, +176,0,79,0,255,255,163,255,66,255,202,254,30,254,77,253,96,252,108,251,171,250,28,250,152,249,4,249,58,248,89,247, +181,246,38,246,131,245,52,245,111,245,251,245,145,246,193,246,105,246,39,246,123,246,82,247,125,248,172,249,154,250,101,251, +49,252,236,252,133,253,205,253,185,253,167,253,195,253,243,253,90,254,16,255,233,255,195,0,85,1,60,1,140,0,195,255, +91,255,155,255,86,0,27,1,176,1,32,2,120,2,151,2,64,2,174,1,128,1,211,1,89,2,249,2,153,3,9,4, +73,4,74,4,234,3,71,3,149,2,34,2,104,2,97,3,89,4,192,4,150,4,51,4,222,3,127,3,16,3,232,2, +23,3,69,3,73,3,39,3,19,3,105,3,1,4,73,4,55,4,25,4,251,3,210,3,145,3,39,3,187,2,149,2, +236,2,169,3,29,4,184,3,193,2,152,1,76,0,42,255,93,254,197,253,166,253,26,254,147,254,221,254,17,255,204,254, +231,253,233,252,67,252,3,252,29,252,148,252,148,253,218,254,153,255,138,255,21,255,171,254,135,254,133,254,106,254,119,254, +235,254,126,255,6,0,136,0,213,0,223,0,180,0,104,0,82,0,143,0,217,0,82,1,9,2,117,2,106,2,56,2, +247,1,220,1,5,2,22,2,10,2,78,2,187,2,234,2,238,2,236,2,196,2,94,2,225,1,138,1,111,1,157,1, +31,2,161,2,196,2,166,2,114,2,37,2,244,1,226,1,151,1,64,1,68,1,98,1,58,1,240,0,194,0,193,0, +241,0,65,1,115,1,43,1,83,0,82,255,169,254,122,254,144,254,136,254,35,254,128,253,208,252,44,252,180,251,123,251, +86,251,19,251,175,250,70,250,228,249,154,249,162,249,14,250,114,250,116,250,86,250,114,250,174,250,199,250,204,250,251,250, +94,251,209,251,68,252,172,252,237,252,252,252,232,252,203,252,197,252,204,252,177,252,154,252,219,252,92,253,185,253,244,253, +70,254,160,254,209,254,235,254,16,255,85,255,213,255,138,0,43,1,116,1,112,1,110,1,146,1,168,1,176,1,21,2, +224,2,160,3,34,4,84,4,39,4,254,3,51,4,96,4,23,4,145,3,51,3,43,3,123,3,245,3,66,4,37,4, +190,3,45,3,80,2,74,1,138,0,16,0,176,255,166,255,237,255,0,0,188,255,81,255,178,254,214,253,3,253,146,252, +159,252,225,252,253,252,247,252,243,252,217,252,131,252,5,252,152,251,68,251,231,250,169,250,193,250,241,250,14,251,71,251, +116,251,39,251,104,250,159,249,38,249,56,249,177,249,24,250,49,250,42,250,57,250,104,250,208,250,124,251,5,252,243,251, +99,251,202,250,133,250,194,250,130,251,131,252,92,253,193,253,227,253,36,254,149,254,40,255,203,255,9,0,162,255,57,255, +159,255,227,0,118,2,188,3,124,4,209,4,193,4,99,4,254,3,212,3,28,4,217,4,149,5,13,6,134,6,238,6, +230,6,151,6,82,6,6,6,185,5,171,5,205,5,228,5,230,5,242,5,23,6,50,6,3,6,128,5,226,4,70,4, +186,3,151,3,249,3,77,4,51,4,247,3,177,3,73,3,8,3,46,3,140,3,234,3,10,4,191,3,108,3,174,3, +108,4,248,4,250,4,162,4,38,4,178,3,144,3,187,3,217,3,220,3,192,3,81,3,193,2,122,2,76,2,232,1, +112,1,9,1,171,0,77,0,251,255,254,255,156,0,146,1,69,2,103,2,73,2,102,2,193,2,25,3,108,3,156,3, +166,3,22,4,254,4,153,5,187,5,199,5,168,5,91,5,50,5,52,5,75,5,79,5,190,4,150,3,133,2,211,1, +122,1,153,1,222,1,194,1,133,1,167,1,24,2,120,2,136,2,36,2,84,1,74,0,93,255,19,255,215,255,113,1, +30,3,68,4,171,4,65,4,91,3,217,2,9,3,20,3,59,2,211,0,144,255,193,254,161,254,149,255,109,1,230,2, +146,2,106,0,248,253,176,252,167,252,50,253,208,253,240,253,13,253,192,251,111,251,114,252,185,253,64,254,218,253,248,252, +103,252,167,252,98,253,248,253,16,254,167,253,67,253,123,253,248,253,21,254,3,254,47,254,144,254,8,255,97,255,60,255, +133,254,92,253,23,252,169,251,122,252,117,253,144,253,1,253,89,252,219,251,177,251,189,251,125,251,187,250,246,249,222,249, +108,250,6,251,60,251,1,251,140,250,39,250,233,249,6,250,196,250,170,251,223,251,130,251,64,251,49,251,213,250,221,249, +222,248,168,248,226,248,206,248,162,248,138,248,229,247,135,246,18,245,49,244,44,244,162,244,8,245,128,245,108,246,159,247, +129,248,136,248,227,247,128,247,12,248,176,249,118,252,204,255,188,2,232,4,41,6,126,6,170,6,41,7,156,7,41,8, +73,9,116,10,16,11,118,11,231,11,38,12,7,12,105,11,50,10,159,8,227,6,34,5,250,3,228,3,34,4,166,3, +112,2,37,1,30,0,161,255,10,0,53,1,128,2,115,3,228,3,200,3,86,3,241,2,241,2,177,3,85,5,98,7, +17,9,216,9,116,9,44,8,229,6,54,6,230,5,118,5,132,4,28,3,228,1,88,1,24,1,95,0,170,254,22,252, +114,249,141,247,150,246,119,246,14,247,212,247,221,247,205,246,137,245,44,245,177,245,148,246,206,247,87,249,254,250,190,252, +36,254,156,254,183,254,112,255,218,0,164,2,144,4,31,6,4,7,134,7,9,8,183,8,129,9,5,10,213,9,12,9, +57,8,181,7,138,7,194,7,34,8,33,8,140,7,123,6,252,4,127,3,141,2,25,2,218,1,168,1,81,1,235,0, +199,0,173,0,44,0,112,255,226,254,147,254,95,254,75,254,145,254,29,255,138,255,196,255,220,255,153,255,20,255,190,254, +145,254,63,254,229,253,190,253,182,253,126,253,212,252,233,251,38,251,134,250,209,249,39,249,163,248,250,247,21,247,107,246, +96,246,198,246,27,247,14,247,189,246,153,246,225,246,118,247,77,248,121,249,164,250,70,251,132,251,8,252,17,253,58,254, +20,255,126,255,152,255,184,255,33,0,153,0,199,0,197,0,208,0,225,0,241,0,12,1,245,0,97,0,104,255,119,254, +234,253,211,253,15,254,98,254,174,254,36,255,220,255,115,0,132,0,34,0,162,255,114,255,225,255,212,0,19,2,106,3, +86,4,123,4,50,4,221,3,113,3,243,2,164,2,141,2,104,2,249,1,93,1,249,0,224,0,191,0,90,0,192,255, +14,255,94,254,200,253,76,253,244,252,3,253,150,253,88,254,245,254,82,255,71,255,208,254,98,254,103,254,208,254,93,255, +240,255,147,0,96,1,58,2,197,2,183,2,50,2,175,1,115,1,137,1,50,2,84,3,252,3,189,3,90,3,96,3, +151,3,197,3,198,3,142,3,84,3,47,3,19,3,27,3,40,3,231,2,104,2,8,2,242,1,11,2,42,2,52,2, +12,2,173,1,120,1,173,1,246,1,40,2,89,2,45,2,141,1,64,1,172,1,88,2,216,2,29,3,39,3,26,3, +29,3,34,3,10,3,178,2,2,2,36,1,132,0,134,0,14,1,135,1,125,1,7,1,120,0,255,255,165,255,61,255, +157,254,255,253,190,253,192,253,142,253,9,253,178,252,227,252,46,253,10,253,176,252,123,252,27,252,117,251,39,251,106,251, +162,251,110,251,251,250,137,250,88,250,134,250,217,250,42,251,155,251,30,252,86,252,22,252,147,251,16,251,183,250,189,250, +23,251,87,251,82,251,75,251,96,251,134,251,177,251,189,251,185,251,235,251,70,252,160,252,14,253,106,253,110,253,63,253, +36,253,64,253,198,253,177,254,159,255,61,0,129,0,155,0,178,0,195,0,206,0,234,0,42,1,128,1,182,1,150,1, +98,1,96,1,88,1,36,1,252,0,11,1,103,1,243,1,69,2,56,2,238,1,78,1,105,0,182,255,109,255,110,255, +172,255,32,0,153,0,204,0,158,0,76,0,4,0,202,255,169,255,128,255,34,255,230,254,27,255,128,255,237,255,78,0, +62,0,194,255,91,255,36,255,11,255,54,255,105,255,45,255,166,254,86,254,97,254,127,254,99,254,7,254,163,253,115,253, +153,253,251,253,64,254,45,254,235,253,175,253,137,253,136,253,176,253,230,253,41,254,139,254,246,254,62,255,108,255,156,255, +234,255,95,0,212,0,29,1,61,1,73,1,74,1,67,1,43,1,10,1,17,1,76,1,140,1,174,1,183,1,169,1, +105,1,238,0,115,0,50,0,27,0,42,0,107,0,174,0,186,0,143,0,96,0,140,0,42,1,195,1,1,2,34,2, +71,2,60,2,222,1,87,1,249,0,228,0,231,0,9,1,95,1,146,1,120,1,112,1,157,1,198,1,214,1,190,1, +124,1,71,1,68,1,105,1,194,1,66,2,175,2,0,3,73,3,129,3,152,3,128,3,55,3,240,2,236,2,39,3, +138,3,20,4,144,4,186,4,161,4,102,4,21,4,231,3,231,3,231,3,24,4,200,4,169,5,90,6,199,6,202,6, +97,6,216,5,86,5,250,4,245,4,3,5,192,4,79,4,248,3,195,3,163,3,122,3,29,3,101,2,77,1,93,0, +58,0,176,0,34,1,78,1,25,1,147,0,73,0,159,0,96,1,41,2,153,2,125,2,42,2,47,2,178,2,115,3, +26,4,67,4,196,3,212,2,169,1,104,0,168,255,62,0,222,1,226,2,243,1,163,255,217,253,163,253,73,254,197,254, +237,254,108,254,125,252,180,249,72,248,185,249,62,253,158,0,27,2,139,1,234,255,98,254,249,253,2,255,81,0,92,0, +99,255,10,255,20,0,243,1,207,3,212,4,99,4,188,2,241,0,247,255,233,255,6,0,159,255,21,255,79,255,62,0, +222,0,140,0,163,255,240,254,237,254,125,255,58,0,172,0,57,0,178,254,253,252,110,252,137,253,150,255,232,0,34,0, +253,253,177,252,30,253,254,253,253,253,27,253,251,251,234,250,243,249,102,249,146,249,22,250,42,250,146,249,212,248,167,248, +30,249,140,249,135,249,86,249,29,249,194,248,144,248,183,248,214,248,194,248,214,248,61,249,206,249,98,250,167,250,15,250, +188,248,170,247,138,247,38,248,219,248,14,249,198,248,200,248,66,249,126,249,46,249,144,248,237,247,1,248,71,249,237,250, +33,252,249,252,126,253,158,253,187,253,80,254,160,255,90,1,115,2,142,2,203,2,19,4,5,6,231,7,61,9,216,9, +227,9,153,9,48,9,44,9,195,9,64,10,41,10,40,10,182,10,38,11,3,11,231,10,40,11,50,11,143,10,115,9, +67,8,46,7,84,6,224,5,217,5,29,6,132,6,184,6,76,6,51,5,170,3,33,2,84,1,120,1,179,1,96,1, +206,0,102,0,60,0,52,0,34,0,26,0,73,0,84,0,203,255,197,254,174,253,25,253,89,253,0,254,98,254,50,254, +111,253,98,252,114,251,173,250,12,250,181,249,181,249,248,249,66,250,14,250,42,249,38,248,184,247,11,248,180,248,76,249, +26,250,148,251,96,253,173,254,81,255,210,255,103,0,195,0,5,1,250,1,6,4,169,6,241,8,20,10,27,10,216,9, +212,9,5,10,50,10,219,9,210,8,206,7,73,7,226,6,96,6,199,5,229,4,193,3,142,2,92,1,81,0,120,255, +159,254,240,253,154,253,56,253,172,252,106,252,131,252,184,252,245,252,34,253,104,253,49,254,68,255,1,0,86,0,92,0, +2,0,136,255,81,255,96,255,133,255,142,255,81,255,213,254,20,254,9,253,44,252,229,251,189,251,3,251,205,249,188,248, +58,248,10,248,146,247,188,246,254,245,126,245,45,245,78,245,3,246,209,246,52,247,40,247,221,246,142,246,171,246,130,247, +178,248,161,249,77,250,4,251,208,251,156,252,103,253,57,254,16,255,185,255,23,0,147,0,138,1,161,2,117,3,19,4, +129,4,137,4,50,4,233,3,10,4,89,4,132,4,189,4,40,5,84,5,233,4,20,4,28,3,57,2,143,1,68,1, +132,1,13,2,103,2,156,2,208,2,193,2,119,2,47,2,173,1,2,1,232,0,146,1,148,2,175,3,157,4,231,4, +106,4,128,3,211,2,228,2,100,3,178,3,215,3,47,4,119,4,55,4,173,3,87,3,33,3,194,2,91,2,4,2, +141,1,9,1,203,0,227,0,36,1,77,1,39,1,184,0,23,0,62,255,109,254,30,254,88,254,179,254,221,254,163,254, +16,254,96,253,173,252,12,252,232,251,87,252,197,252,232,252,252,252,235,252,131,252,58,252,125,252,252,252,118,253,45,254, +47,255,62,0,69,1,59,2,224,2,5,3,212,2,173,2,234,2,172,3,189,4,166,5,253,5,203,5,110,5,47,5, +252,4,159,4,31,4,172,3,37,3,129,2,43,2,16,2,122,1,149,0,50,0,26,0,158,255,3,255,232,254,41,255, +51,255,244,254,255,254,126,255,183,255,71,255,208,254,198,254,253,254,76,255,168,255,232,255,233,255,173,255,134,255,211,255, +56,0,245,255,32,255,119,254,58,254,22,254,213,253,148,253,98,253,13,253,126,252,25,252,82,252,253,252,134,253,176,253, +112,253,156,252,152,251,61,251,155,251,15,252,92,252,175,252,48,253,213,253,40,254,220,253,106,253,91,253,169,253,28,254, +105,254,118,254,160,254,249,254,33,255,54,255,131,255,184,255,140,255,56,255,237,254,206,254,37,255,252,255,222,0,45,1, +197,0,31,0,207,255,26,0,215,0,143,1,21,2,167,2,60,3,146,3,157,3,80,3,186,2,62,2,18,2,44,2, +140,2,4,3,83,3,108,3,47,3,132,2,171,1,215,0,3,0,32,255,22,254,79,253,120,253,39,254,77,254,183,253, +216,252,37,252,4,252,51,252,7,252,131,251,17,251,222,250,20,251,156,251,38,252,187,252,76,253,95,253,4,253,214,252, +251,252,46,253,111,253,227,253,115,254,223,254,226,254,95,254,132,253,209,252,175,252,40,253,234,253,55,254,125,253,87,252, +233,251,92,252,39,253,227,253,24,254,165,253,62,253,88,253,157,253,220,253,39,254,97,254,145,254,242,254,134,255,16,0, +72,0,30,0,218,255,171,255,136,255,150,255,223,255,230,255,122,255,71,255,214,255,209,0,126,1,109,1,205,0,88,0, +139,0,11,1,78,1,114,1,218,1,132,2,55,3,199,3,1,4,224,3,201,3,29,4,194,4,122,5,16,6,51,6, +186,5,217,4,210,3,246,2,198,2,43,3,91,3,253,2,133,2,84,2,90,2,80,2,8,2,129,1,200,0,10,0, +164,255,190,255,46,0,218,0,153,1,49,2,164,2,222,2,196,2,220,2,124,3,211,3,107,3,255,2,16,3,127,3, +63,4,6,5,59,5,214,4,78,4,2,4,11,4,30,4,238,3,174,3,163,3,160,3,112,3,42,3,23,3,112,3, +220,3,174,3,14,3,198,2,215,2,152,2,25,2,11,2,148,2,36,3,61,3,227,2,112,2,10,2,156,1,96,1, +163,1,24,2,42,2,232,1,218,1,41,2,108,2,70,2,247,1,247,1,40,2,15,2,182,1,134,1,124,1,78,1, +47,1,152,1,79,2,135,2,13,2,99,1,182,0,223,255,94,255,33,0,224,1,241,2,58,2,118,0,30,255,235,254, +177,255,214,0,163,1,134,1,104,0,239,254,66,254,2,255,123,0,61,1,140,0,4,255,219,253,174,253,88,254,91,255, +12,0,204,255,179,254,171,253,130,253,28,254,198,254,245,254,154,254,32,254,29,254,130,254,164,254,124,254,163,254,50,255, +222,255,130,0,215,0,181,0,119,0,99,0,105,0,115,0,55,0,111,255,123,254,231,253,215,253,58,254,209,254,17,255, +125,254,19,253,89,251,1,250,59,249,158,248,221,247,59,247,25,247,81,247,120,247,146,247,215,247,244,247,153,247,64,247, +110,247,227,247,25,248,19,248,68,248,209,248,125,249,38,250,197,250,67,251,181,251,29,252,43,252,197,251,77,251,10,251, +249,250,9,251,54,251,127,251,180,251,177,251,184,251,245,251,16,252,218,251,160,251,150,251,176,251,207,251,32,252,22,253, +146,254,210,255,161,0,85,1,236,1,99,2,7,3,228,3,195,4,145,5,116,6,142,7,144,8,1,9,31,9,146,9, +110,10,79,11,201,11,182,11,116,11,67,11,11,11,5,11,72,11,59,11,145,10,155,9,99,8,251,6,7,6,38,6, +82,7,122,8,212,7,206,4,31,1,30,255,143,255,65,1,109,2,15,2,185,255,174,251,7,248,137,247,157,250,226,254, +117,1,239,0,40,254,119,251,236,250,11,253,22,0,250,0,168,254,199,251,119,251,249,253,78,1,109,3,115,3,200,1, +117,255,136,253,206,252,231,252,80,252,184,250,194,249,110,250,179,251,36,252,91,251,220,249,142,248,59,248,108,249,3,252, +66,254,28,254,78,252,221,251,103,254,224,2,224,6,79,8,103,7,186,6,9,8,117,10,51,12,100,12,141,11,211,10, +146,10,86,10,26,10,255,9,131,9,102,8,59,7,63,6,251,4,50,3,68,1,167,255,153,254,14,254,159,253,182,252, +28,251,112,249,230,248,19,250,14,252,69,253,244,252,179,251,192,250,189,250,83,251,15,252,194,252,70,253,19,254,222,255, +201,1,221,1,171,255,237,252,177,251,120,252,235,253,164,254,181,254,162,254,30,254,213,252,42,251,231,249,77,249,155,248, +76,247,64,246,79,246,22,247,228,247,57,248,235,247,182,247,5,248,4,248,129,247,111,247,22,248,45,249,144,250,138,251, +175,251,252,251,53,253,241,254,190,0,34,2,106,2,194,1,12,1,215,0,89,1,60,2,182,2,216,2,114,3,80,4, +108,4,131,3,35,2,15,1,230,0,122,1,240,1,233,1,190,1,161,1,152,1,198,1,33,2,61,2,174,1,119,0, +93,255,162,255,158,1,239,3,227,4,66,4,13,3,24,2,120,1,246,0,185,0,43,1,31,2,199,2,188,2,70,2, +165,1,229,0,56,0,214,255,183,255,166,255,141,255,168,255,68,0,69,1,33,2,62,2,69,1,146,255,124,254,62,255, +96,1,61,3,28,4,47,4,96,3,240,1,9,1,41,1,112,1,13,1,13,0,42,255,65,255,53,0,209,0,101,0, +76,255,241,253,109,252,15,251,124,250,42,251,165,252,223,253,97,254,131,254,150,254,158,254,179,254,38,255,22,0,36,1, +239,1,153,2,84,3,16,4,239,4,31,6,49,7,126,7,35,7,204,6,145,6,4,6,97,5,100,5,249,5,122,6, +151,6,37,6,18,5,191,3,154,2,219,1,173,1,185,1,63,1,58,0,103,255,63,255,153,255,13,0,64,0,27,0, +173,255,12,255,103,254,244,253,197,253,244,253,136,254,44,255,98,255,23,255,172,254,87,254,255,253,196,253,213,253,235,253, +179,253,51,253,141,252,243,251,132,251,31,251,220,250,23,251,142,251,155,251,73,251,24,251,25,251,251,250,179,250,157,250, +250,250,118,251,139,251,87,251,138,251,105,252,122,253,110,254,102,255,11,0,211,255,25,255,153,254,112,254,149,254,33,255, +214,255,82,0,114,0,77,0,60,0,108,0,127,0,27,0,92,255,131,254,255,253,64,254,56,255,114,0,102,1,179,1, +151,1,141,1,135,1,149,1,67,2,126,3,150,4,93,5,222,5,237,5,216,5,249,5,220,5,69,5,214,4,209,4, +176,4,27,4,4,3,149,1,98,0,138,255,87,254,150,252,251,250,222,249,6,249,78,248,201,247,131,247,71,247,216,246, +132,246,173,246,28,247,142,247,19,248,171,248,77,249,242,249,130,250,63,251,110,252,186,253,205,254,156,255,241,255,237,255, +14,0,76,0,103,0,97,0,0,0,68,255,211,254,219,254,242,254,19,255,52,255,243,254,81,254,183,253,102,253,63,253, +225,252,84,252,49,252,187,252,147,253,72,254,130,254,94,254,96,254,131,254,106,254,78,254,119,254,175,254,253,254,143,255, +23,0,99,0,163,0,208,0,226,0,78,1,61,2,9,3,47,3,253,2,216,2,201,2,222,2,30,3,104,3,173,3, +233,3,254,3,249,3,247,3,190,3,57,3,237,2,27,3,45,3,176,2,23,2,218,1,197,1,188,1,9,2,107,2, +48,2,96,1,157,0,92,0,216,0,230,1,209,2,57,3,64,3,255,2,176,2,177,2,197,2,136,2,98,2,200,2, +152,3,141,4,49,5,24,5,181,4,196,4,27,5,56,5,242,4,73,4,148,3,117,3,14,4,28,5,56,6,143,6, +231,5,65,5,34,5,251,4,165,4,66,4,161,3,24,3,56,3,186,3,15,4,245,3,56,3,58,2,202,1,227,1, +244,1,210,1,118,1,226,0,119,0,122,0,162,0,144,0,66,0,6,0,67,0,7,1,202,1,1,2,185,1,60,1, +145,0,5,0,71,0,90,1,104,2,237,2,246,2,185,2,140,2,164,2,191,2,143,2,15,2,109,1,20,1,78,1, +202,1,244,1,153,1,240,0,75,0,206,255,118,255,57,255,223,254,34,254,59,253,196,252,6,253,183,253,52,254,25,254, +178,253,145,253,219,253,101,254,4,255,119,255,121,255,40,255,20,255,166,255,176,0,150,1,209,1,103,1,8,1,57,1, +144,1,134,1,50,1,176,0,16,0,200,255,21,0,111,0,66,0,138,255,169,254,40,254,71,254,188,254,243,254,135,254, +160,253,236,252,243,252,84,253,52,253,102,252,169,251,166,251,70,252,252,252,39,253,97,252,6,251,251,249,178,249,229,249, +24,250,234,249,83,249,199,248,214,248,126,249,49,250,86,250,191,249,221,248,102,248,140,248,235,248,86,249,249,249,177,250, +67,251,239,251,197,252,34,253,152,252,164,251,16,251,55,251,235,251,184,252,55,253,85,253,61,253,241,252,126,252,100,252, +228,252,106,253,112,253,29,253,189,252,164,252,41,253,25,254,232,254,123,255,251,255,138,0,75,1,14,2,129,2,188,2, +248,2,91,3,56,4,158,5,28,7,84,8,12,9,40,9,38,9,174,9,165,10,103,11,132,11,2,11,108,10,91,10, +188,10,222,10,247,9,207,7,148,5,59,5,51,7,80,9,174,8,207,4,115,0,183,254,225,255,252,1,63,3,81,2, +96,254,51,249,244,246,201,249,73,255,45,3,39,3,16,0,175,252,144,251,72,253,1,0,212,0,191,254,21,252,206,251, +55,254,54,1,192,2,101,2,204,0,162,254,211,252,72,252,63,252,28,251,104,249,16,249,84,250,206,251,46,252,35,251, +161,249,207,248,245,248,46,250,63,252,156,253,30,253,228,251,244,251,77,254,31,2,249,4,44,5,219,3,127,3,49,5, +213,7,68,9,187,8,140,7,231,6,179,6,180,6,215,6,187,6,21,6,252,4,207,3,25,3,216,2,84,2,61,1, +255,255,9,255,144,254,124,254,69,254,185,253,110,253,213,253,164,254,80,255,101,255,226,254,101,254,101,254,170,254,2,255, +109,255,156,255,130,255,202,255,167,0,49,1,126,0,175,254,23,253,32,253,102,254,32,255,185,254,10,254,123,253,228,252, +100,252,27,252,246,251,208,251,53,251,2,250,23,249,78,249,85,250,44,251,22,251,63,250,158,249,172,249,229,249,5,250, +81,250,154,250,183,250,35,251,3,252,203,252,55,253,114,253,183,253,92,254,107,255,123,0,70,1,176,1,159,1,83,1, +27,1,242,0,4,1,173,1,161,2,26,3,183,2,218,1,90,1,132,1,164,1,28,1,69,0,191,255,192,255,29,0, +148,0,12,1,94,1,30,1,77,0,190,255,40,0,72,1,62,2,132,2,68,2,248,1,229,1,250,1,254,1,242,1, +12,2,54,2,58,2,60,2,59,2,203,1,244,0,71,0,23,0,51,0,48,0,228,255,204,255,76,0,241,0,34,1, +188,0,230,255,44,255,50,255,241,255,223,0,137,1,185,1,147,1,97,1,37,1,238,0,26,1,152,1,184,1,46,1, +154,0,167,0,19,1,12,1,74,0,91,255,208,254,158,254,122,254,98,254,111,254,108,254,60,254,52,254,116,254,146,254, +64,254,196,253,179,253,99,254,152,255,212,0,196,1,35,2,255,1,0,2,140,2,64,3,179,3,229,3,230,3,222,3, +249,3,34,4,46,4,254,3,131,3,246,2,156,2,81,2,217,1,51,1,120,0,235,255,217,255,3,0,221,255,105,255, +19,255,238,254,212,254,208,254,231,254,255,254,29,255,77,255,115,255,152,255,230,255,63,0,84,0,36,0,230,255,189,255, +173,255,155,255,88,255,246,254,199,254,234,254,19,255,240,254,121,254,213,253,52,253,200,252,180,252,248,252,98,253,162,253, +158,253,146,253,179,253,0,254,65,254,16,254,114,253,42,253,175,253,143,254,77,255,192,255,191,255,113,255,79,255,97,255, +80,255,25,255,12,255,68,255,158,255,1,0,100,0,139,0,44,0,136,255,41,255,52,255,115,255,160,255,151,255,154,255, +247,255,133,0,0,1,92,1,101,1,240,0,102,0,81,0,193,0,124,1,41,2,103,2,42,2,221,1,232,1,81,2, +166,2,97,2,147,1,196,0,68,0,46,0,137,0,240,0,222,0,92,0,177,255,253,254,117,254,19,254,143,253,22,253, +22,253,102,253,159,253,138,253,6,253,101,252,79,252,201,252,58,253,67,253,8,253,236,252,22,253,81,253,150,253,249,253, +34,254,218,253,131,253,130,253,227,253,118,254,211,254,195,254,121,254,51,254,62,254,190,254,38,255,4,255,198,254,209,254, +247,254,22,255,63,255,107,255,134,255,107,255,44,255,46,255,140,255,246,255,39,0,6,0,191,255,192,255,42,0,157,0, +184,0,100,0,222,255,164,255,254,255,177,0,45,1,20,1,176,0,156,0,233,0,83,1,179,1,191,1,77,1,203,0, +170,0,224,0,67,1,162,1,204,1,194,1,141,1,48,1,248,0,22,1,51,1,0,1,161,0,126,0,233,0,157,1, +220,1,123,1,249,0,141,0,53,0,33,0,74,0,101,0,108,0,126,0,150,0,177,0,187,0,140,0,79,0,61,0, +68,0,112,0,232,0,76,1,60,1,29,1,106,1,241,1,67,2,56,2,242,1,190,1,226,1,103,2,251,2,34,3, +192,2,75,2,45,2,115,2,237,2,54,3,236,2,61,2,181,1,157,1,210,1,13,2,30,2,3,2,205,1,136,1, +91,1,124,1,183,1,150,1,27,1,181,0,130,0,108,0,154,0,7,1,94,1,111,1,43,1,145,0,253,255,216,255, +20,0,112,0,189,0,226,0,9,1,85,1,129,1,100,1,46,1,247,0,197,0,170,0,155,0,160,0,231,0,80,1, +137,1,131,1,80,1,253,0,137,0,232,255,53,255,184,254,149,254,215,254,96,255,181,255,122,255,252,254,162,254,133,254, +171,254,235,254,211,254,80,254,10,254,137,254,127,255,65,0,105,0,6,0,170,255,222,255,106,0,214,0,30,1,58,1, +230,0,105,0,81,0,153,0,226,0,247,0,222,0,214,0,2,1,26,1,226,0,101,0,198,255,90,255,130,255,6,0, +55,0,224,255,120,255,102,255,142,255,174,255,178,255,131,255,35,255,223,254,230,254,29,255,93,255,97,255,248,254,119,254, +69,254,58,254,35,254,10,254,200,253,73,253,239,252,253,252,75,253,182,253,32,254,40,254,164,253,251,252,173,252,209,252, +42,253,122,253,180,253,243,253,53,254,93,254,112,254,135,254,173,254,249,254,83,255,86,255,214,254,58,254,247,253,39,254, +152,254,235,254,245,254,224,254,184,254,98,254,248,253,185,253,184,253,231,253,64,254,192,254,61,255,136,255,194,255,28,0, +118,0,192,0,36,1,148,1,255,1,163,2,120,3,22,4,86,4,77,4,16,4,248,3,83,4,224,4,49,5,11,5, +101,4,135,3,251,2,12,3,104,3,80,3,78,2,241,0,52,0,82,0,205,0,31,1,235,0,33,0,58,255,191,254, +194,254,15,255,112,255,179,255,182,255,126,255,82,255,143,255,36,0,119,0,63,0,208,255,155,255,206,255,74,0,169,0, +150,0,20,0,110,255,26,255,90,255,208,255,233,255,92,255,61,254,0,253,63,252,64,252,236,252,243,253,147,254,26,254, +206,252,227,251,90,252,252,253,144,255,8,0,36,255,108,253,68,252,28,253,214,255,184,2,22,4,138,3,18,2,61,1, +211,1,86,3,130,4,55,4,163,2,85,1,138,1,223,2,6,4,32,4,73,3,20,2,255,0,132,0,174,0,162,0, +187,255,176,254,143,254,102,255,80,0,81,0,71,255,20,254,156,253,25,254,77,255,95,0,69,0,19,255,5,254,34,254, +93,255,176,0,251,0,24,0,236,254,143,254,101,255,184,0,84,1,200,0,168,255,177,254,80,254,168,254,109,255,250,255, +219,255,48,255,143,254,114,254,203,254,7,255,153,254,156,253,217,252,228,252,107,253,186,253,155,253,80,253,15,253,232,252, +245,252,58,253,146,253,213,253,232,253,190,253,127,253,129,253,8,254,6,255,12,0,148,0,131,0,53,0,30,0,132,0, +58,1,175,1,137,1,22,1,216,0,225,0,246,0,16,1,66,1,75,1,209,0,255,255,92,255,38,255,66,255,119,255, +156,255,179,255,213,255,240,255,243,255,228,255,190,255,155,255,212,255,107,0,237,0,44,1,93,1,145,1,165,1,149,1, +132,1,147,1,191,1,195,1,110,1,222,0,88,0,21,0,66,0,175,0,218,0,144,0,24,0,194,255,170,255,168,255, +125,255,67,255,95,255,222,255,99,0,172,0,197,0,201,0,177,0,123,0,68,0,51,0,98,0,202,0,37,1,31,1, +206,0,124,0,60,0,12,0,243,255,219,255,182,255,145,255,106,255,61,255,33,255,22,255,15,255,29,255,69,255,91,255, +68,255,48,255,107,255,254,255,160,0,4,1,25,1,10,1,14,1,54,1,109,1,163,1,205,1,229,1,2,2,27,2, +245,1,172,1,149,1,164,1,151,1,117,1,92,1,61,1,248,0,137,0,19,0,214,255,222,255,237,255,228,255,232,255, +10,0,46,0,65,0,60,0,15,0,194,255,142,255,164,255,238,255,38,0,40,0,9,0,233,255,222,255,243,255,20,0, +12,0,216,255,167,255,136,255,113,255,104,255,103,255,95,255,82,255,58,255,35,255,49,255,82,255,79,255,44,255,8,255, +238,254,239,254,247,254,223,254,206,254,232,254,11,255,44,255,63,255,16,255,184,254,160,254,208,254,12,255,65,255,89,255, +68,255,49,255,71,255,121,255,179,255,216,255,205,255,166,255,153,255,203,255,51,0,148,0,165,0,97,0,10,0,234,255, +27,0,108,0,150,0,147,0,139,0,148,0,176,0,203,0,196,0,160,0,139,0,148,0,163,0,166,0,171,0,196,0, +221,0,228,0,224,0,209,0,168,0,124,0,103,0,89,0,69,0,47,0,13,0,232,255,215,255,198,255,156,255,105,255, +51,255,241,254,178,254,140,254,140,254,184,254,232,254,234,254,201,254,167,254,133,254,106,254,104,254,132,254,185,254,242,254, +25,255,57,255,92,255,107,255,102,255,118,255,167,255,217,255,238,255,227,255,202,255,192,255,215,255,9,0,52,0,44,0, +231,255,139,255,79,255,86,255,142,255,196,255,197,255,137,255,53,255,4,255,25,255,93,255,143,255,137,255,102,255,88,255, +122,255,199,255,20,0,45,0,22,0,248,255,241,255,23,0,119,0,210,0,222,0,174,0,122,0,102,0,137,0,199,0, +229,0,214,0,174,0,118,0,81,0,102,0,149,0,173,0,170,0,147,0,115,0,89,0,74,0,71,0,92,0,120,0, +114,0,77,0,49,0,47,0,67,0,104,0,120,0,82,0,20,0,251,255,19,0,68,0,117,0,133,0,108,0,84,0, +90,0,109,0,128,0,144,0,148,0,139,0,137,0,164,0,223,0,25,1,39,1,10,1,234,0,221,0,227,0,243,0, +251,0,246,0,239,0,242,0,1,1,12,1,254,0,219,0,185,0,174,0,190,0,206,0,188,0,154,0,150,0,170,0, +188,0,190,0,164,0,115,0,91,0,109,0,137,0,155,0,158,0,134,0,99,0,85,0,89,0,102,0,121,0,132,0, +116,0,84,0,63,0,77,0,121,0,154,0,143,0,107,0,81,0,78,0,94,0,118,0,142,0,164,0,174,0,164,0, +131,0,81,0,28,0,252,255,5,0,39,0,53,0,32,0,254,255,230,255,218,255,220,255,219,255,191,255,143,255,101,255, +84,255,109,255,166,255,213,255,225,255,207,255,163,255,124,255,137,255,187,255,226,255,235,255,223,255,211,255,230,255,11,0, +30,0,25,0,3,0,221,255,195,255,206,255,234,255,8,0,36,0,40,0,17,0,250,255,240,255,230,255,216,255,191,255, +156,255,142,255,161,255,180,255,183,255,178,255,151,255,89,255,29,255,17,255,34,255,33,255,3,255,219,254,198,254,217,254, +2,255,23,255,12,255,235,254,190,254,159,254,174,254,231,254,31,255,47,255,31,255,23,255,45,255,77,255,100,255,106,255, +85,255,50,255,42,255,77,255,125,255,152,255,139,255,94,255,49,255,33,255,40,255,53,255,68,255,78,255,78,255,80,255, +94,255,103,255,95,255,89,255,108,255,140,255,162,255,181,255,217,255,13,0,57,0,83,0,106,0,133,0,156,0,174,0, +195,0,220,0,242,0,12,1,53,1,102,1,139,1,145,1,123,1,95,1,88,1,114,1,151,1,159,1,125,1,77,1, +50,1,59,1,81,1,78,1,28,1,205,0,131,0,101,0,120,0,137,0,112,0,54,0,236,255,176,255,168,255,203,255, +229,255,211,255,145,255,68,255,45,255,84,255,120,255,121,255,112,255,110,255,122,255,154,255,199,255,236,255,255,255,243,255, +201,255,161,255,154,255,186,255,235,255,1,0,222,255,146,255,92,255,120,255,222,255,59,0,46,0,157,255,233,254,179,254, +57,255,20,0,168,0,151,0,236,255,40,255,248,254,157,255,178,0,125,1,120,1,194,0,24,0,37,0,232,0,186,1, +228,1,67,1,115,0,45,0,145,0,45,1,126,1,92,1,242,0,139,0,88,0,93,0,107,0,72,0,246,255,182,255, +193,255,12,0,71,0,49,0,225,255,154,255,140,255,191,255,12,0,46,0,4,0,188,255,151,255,180,255,246,255,19,0, +232,255,168,255,153,255,193,255,238,255,237,255,185,255,126,255,97,255,79,255,58,255,58,255,81,255,94,255,83,255,61,255, +48,255,59,255,86,255,83,255,36,255,252,254,251,254,15,255,32,255,36,255,28,255,17,255,10,255,20,255,66,255,131,255, +166,255,155,255,128,255,118,255,146,255,197,255,235,255,246,255,243,255,241,255,15,0,93,0,168,0,185,0,154,0,110,0, +75,0,65,0,71,0,72,0,66,0,58,0,51,0,38,0,13,0,236,255,216,255,211,255,204,255,190,255,187,255,196,255, +206,255,200,255,185,255,191,255,226,255,253,255,253,255,251,255,16,0,56,0,90,0,105,0,105,0,106,0,115,0,129,0, +127,0,93,0,55,0,50,0,76,0,99,0,94,0,57,0,20,0,18,0,43,0,49,0,14,0,214,255,176,255,181,255, +222,255,3,0,8,0,239,255,206,255,193,255,215,255,255,255,20,0,255,255,207,255,170,255,182,255,234,255,23,0,24,0, +252,255,229,255,219,255,219,255,218,255,210,255,197,255,194,255,212,255,245,255,13,0,6,0,230,255,204,255,208,255,249,255, +43,0,59,0,38,0,11,0,255,255,20,0,75,0,130,0,136,0,98,0,63,0,61,0,87,0,115,0,124,0,113,0, +94,0,84,0,85,0,79,0,64,0,54,0,54,0,57,0,59,0,60,0,59,0,50,0,23,0,243,255,222,255,232,255, +11,0,41,0,40,0,12,0,245,255,236,255,241,255,6,0,21,0,6,0,231,255,211,255,208,255,223,255,244,255,0,0, +253,255,240,255,228,255,225,255,228,255,223,255,215,255,212,255,204,255,196,255,203,255,218,255,226,255,224,255,215,255,205,255, +200,255,201,255,211,255,228,255,232,255,214,255,189,255,178,255,192,255,223,255,245,255,245,255,235,255,224,255,219,255,226,255, +243,255,253,255,255,255,1,0,8,0,14,0,12,0,10,0,22,0,46,0,69,0,77,0,64,0,46,0,44,0,53,0, +57,0,58,0,53,0,33,0,22,0,47,0,96,0,128,0,106,0,34,0,222,255,214,255,15,0,96,0,147,0,116,0, +1,0,138,255,118,255,217,255,94,0,142,0,63,0,187,255,115,255,155,255,8,0,80,0,41,0,177,255,84,255,87,255, +161,255,233,255,1,0,236,255,204,255,192,255,209,255,237,255,243,255,209,255,160,255,148,255,199,255,21,0,67,0,50,0, +246,255,193,255,189,255,236,255,38,0,54,0,6,0,191,255,165,255,208,255,14,0,22,0,229,255,187,255,190,255,222,255, +249,255,246,255,212,255,183,255,178,255,185,255,195,255,206,255,204,255,193,255,194,255,210,255,229,255,246,255,252,255,245,255, +236,255,237,255,255,255,26,0,41,0,38,0,34,0,36,0,41,0,51,0,68,0,79,0,80,0,79,0,72,0,59,0, +44,0,29,0,20,0,27,0,48,0,60,0,44,0,11,0,246,255,254,255,25,0,49,0,48,0,21,0,234,255,201,255, +206,255,252,255,45,0,53,0,24,0,244,255,226,255,234,255,2,0,28,0,46,0,49,0,32,0,12,0,4,0,9,0, +17,0,24,0,29,0,32,0,34,0,36,0,46,0,61,0,66,0,58,0,55,0,57,0,53,0,45,0,37,0,27,0, +17,0,10,0,18,0,43,0,64,0,62,0,38,0,11,0,246,255,235,255,240,255,5,0,29,0,28,0,254,255,222,255, +219,255,248,255,25,0,38,0,25,0,0,0,238,255,243,255,14,0,44,0,51,0,36,0,19,0,17,0,29,0,43,0, +52,0,58,0,59,0,58,0,61,0,61,0,56,0,53,0,51,0,41,0,29,0,22,0,17,0,15,0,13,0,2,0, +241,255,235,255,240,255,242,255,227,255,201,255,188,255,197,255,211,255,216,255,219,255,223,255,222,255,219,255,221,255,227,255, +237,255,242,255,239,255,238,255,242,255,240,255,231,255,229,255,242,255,2,0,7,0,1,0,247,255,244,255,251,255,8,0, +13,0,4,0,242,255,227,255,225,255,237,255,252,255,3,0,3,0,253,255,246,255,245,255,252,255,2,0,0,0,245,255, +230,255,225,255,240,255,7,0,18,0,10,0,245,255,221,255,212,255,224,255,242,255,244,255,230,255,211,255,208,255,220,255, +229,255,218,255,203,255,200,255,208,255,223,255,234,255,234,255,228,255,225,255,226,255,233,255,243,255,250,255,251,255,251,255, +246,255,235,255,232,255,243,255,1,0,7,0,1,0,240,255,225,255,224,255,233,255,243,255,248,255,247,255,243,255,236,255, +229,255,230,255,244,255,4,0,13,0,13,0,5,0,252,255,255,255,14,0,33,0,45,0,43,0,34,0,30,0,34,0, +44,0,53,0,58,0,55,0,46,0,37,0,38,0,49,0,55,0,49,0,37,0,25,0,19,0,23,0,35,0,47,0, +46,0,29,0,6,0,249,255,250,255,3,0,14,0,13,0,0,0,245,255,244,255,253,255,13,0,21,0,10,0,245,255, +230,255,230,255,244,255,5,0,11,0,8,0,5,0,6,0,9,0,11,0,8,0,3,0,0,0,253,255,252,255,1,0, +9,0,10,0,1,0,242,255,233,255,236,255,250,255,5,0,0,0,240,255,229,255,230,255,239,255,249,255,0,0,0,0, +250,255,248,255,253,255,8,0,20,0,28,0,31,0,28,0,25,0,26,0,29,0,32,0,37,0,45,0,51,0,52,0, +48,0,38,0,23,0,15,0,17,0,21,0,22,0,16,0,4,0,248,255,242,255,243,255,248,255,249,255,245,255,236,255, +230,255,231,255,238,255,247,255,252,255,250,255,247,255,249,255,255,255,5,0,9,0,8,0,5,0,3,0,4,0,5,0, +3,0,0,0,254,255,254,255,252,255,245,255,236,255,229,255,225,255,227,255,228,255,224,255,218,255,219,255,224,255,224,255, +221,255,217,255,214,255,217,255,222,255,225,255,226,255,228,255,230,255,233,255,237,255,240,255,241,255,240,255,237,255,236,255, +241,255,252,255,8,0,13,0,7,0,252,255,248,255,251,255,1,0,5,0,5,0,0,0,252,255,254,255,5,0,11,0, +13,0,7,0,254,255,248,255,248,255,253,255,3,0,6,0,3,0,255,255,0,0,4,0,4,0,2,0,2,0,2,0, +0,0,0,0,1,0,2,0,0,0,255,255,1,0,6,0,8,0,5,0,0,0,252,255,254,255,6,0,14,0,16,0, +9,0,253,255,247,255,251,255,6,0,15,0,16,0,10,0,0,0,252,255,2,0,11,0,14,0,8,0,255,255,252,255, +0,0,6,0,6,0,3,0,0,0,254,255,254,255,3,0,8,0,7,0,1,0,250,255,247,255,250,255,0,0,2,0, +253,255,246,255,242,255,246,255,254,255,4,0,3,0,253,255,249,255,248,255,249,255,252,255,253,255,0,0,1,0,255,255, +251,255,251,255,254,255,1,0,2,0,1,0,0,0,1,0,4,0,5,0,4,0,0,0,252,255,253,255,4,0,8,0, +7,0,5,0,1,0,253,255,254,255,3,0,8,0,8,0,4,0,255,255,253,255,254,255,2,0,5,0,5,0,3,0, +0,0,255,255,5,0,10,0,10,0,3,0,253,255,253,255,2,0,6,0,7,0,4,0,1,0,0,0,3,0,6,0, +6,0,4,0,254,255,248,255,245,255,249,255,1,0,9,0,11,0,5,0,253,255,250,255,251,255,254,255,3,0,5,0, +1,0,253,255,254,255,1,0,5,0,7,0,3,0,251,255,246,255,246,255,250,255,255,255,2,0,0,0,253,255,250,255, +251,255,254,255,0,0,0,0,254,255,252,255,252,255,255,255,2,0,4,0,5,0,5,0,2,0,0,0,0,0,0,0, +254,255,251,255,253,255,0,0,4,0,4,0,0,0,251,255,249,255,250,255,253,255,3,0,7,0,4,0,254,255,248,255, +246,255,249,255,2,0,9,0,7,0,255,255,249,255,250,255,2,0,11,0,11,0,2,0,246,255,241,255,247,255,3,0, +10,0,8,0,0,0,249,255,249,255,0,0,7,0,8,0,2,0,249,255,245,255,249,255,3,0,11,0,10,0,2,0, +248,255,246,255,255,255,9,0,13,0,9,0,0,0,249,255,250,255,1,0,6,0,5,0,1,0,252,255,250,255,253,255, +1,0,4,0,5,0,3,0,254,255,251,255,252,255,1,0,3,0,2,0,254,255,252,255,254,255,0,0,1,0,0,0, +254,255,253,255,254,255,0,0,1,0,1,0,253,255,248,255,248,255,253,255,3,0,4,0,0,0,251,255,248,255,251,255, +0,0,5,0,8,0,6,0,255,255,250,255,251,255,255,255,3,0,6,0,5,0,1,0,255,255,255,255,255,255,254,255, +255,255,1,0,1,0,255,255,251,255,251,255,254,255,0,0,255,255,253,255,252,255,252,255,254,255,1,0,4,0,5,0, +1,0,252,255,252,255,2,0,8,0,10,0,8,0,3,0,255,255,0,0,4,0,7,0,7,0,2,0,252,255,251,255, +254,255,1,0,3,0,3,0,0,0,253,255,253,255,254,255,253,255,252,255,255,255,1,0,3,0,2,0,0,0,254,255, +253,255,253,255,255,255,3,0,6,0,7,0,5,0,1,0,254,255,255,255,2,0,4,0,7,0,8,0,5,0,2,0, +0,0,1,0,5,0,9,0,10,0,6,0,0,0,252,255,253,255,4,0,9,0,6,0,254,255,248,255,246,255,252,255, +3,0,5,0,2,0,254,255,251,255,251,255,254,255,255,255,254,255,251,255,250,255,252,255,0,0,3,0,3,0,0,0, +253,255,252,255,255,255,2,0,1,0,254,255,251,255,251,255,253,255,1,0,3,0,0,0,252,255,250,255,249,255,251,255, +253,255,254,255,254,255,253,255,253,255,253,255,254,255,0,0,1,0,1,0,0,0,253,255,251,255,254,255,0,0,2,0, +5,0,8,0,6,0,255,255,250,255,250,255,254,255,2,0,3,0,1,0,255,255,253,255,252,255,253,255,0,0,1,0, + +}; \ No newline at end of file diff --git a/src/client/sound/data/pig2.pcm b/src/client/sound/data/pig2.pcm new file mode 100755 index 0000000..e584bf0 --- /dev/null +++ b/src/client/sound/data/pig2.pcm @@ -0,0 +1,1812 @@ +unsigned char PCM_pig2[57898] = { +1,0,0,0,2,0,0,0,68,172,0,0,13,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,255,255,255,255, +0,0,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,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +1,0,1,0,255,255,255,255,0,0,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,1,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,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,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,255,255, +255,255,1,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,1,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,1,0,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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,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,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,2,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,254,255,254,255,255,255,0,0,255,255,255,255,255,255, +254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,1,0,2,0,1,0,0,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,254,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,2,0,2,0, +1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0, +1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +1,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,2,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0, +0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255, +253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255, +251,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,253,255,252,255,253,255,254,255,254,255, +255,255,254,255,253,255,253,255,254,255,255,255,255,255,253,255,253,255,252,255,251,255,251,255,251,255,250,255,250,255,250,255, +250,255,251,255,251,255,249,255,247,255,248,255,250,255,251,255,252,255,253,255,252,255,252,255,253,255,254,255,255,255,0,0, +1,0,1,0,2,0,3,0,4,0,4,0,5,0,6,0,7,0,8,0,8,0,7,0,6,0,6,0,8,0,8,0, +8,0,8,0,6,0,4,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0,3,0, +4,0,7,0,7,0,6,0,5,0,6,0,9,0,11,0,13,0,14,0,15,0,16,0,17,0,17,0,17,0,17,0, +16,0,16,0,17,0,17,0,14,0,12,0,10,0,8,0,8,0,7,0,6,0,3,0,1,0,0,0,254,255,253,255, +252,255,251,255,250,255,251,255,252,255,253,255,254,255,255,255,254,255,255,255,2,0,5,0,7,0,8,0,8,0,7,0, +7,0,8,0,8,0,6,0,5,0,4,0,4,0,3,0,0,0,253,255,249,255,247,255,245,255,245,255,245,255,243,255, +240,255,237,255,236,255,236,255,237,255,238,255,240,255,241,255,242,255,242,255,241,255,242,255,245,255,247,255,249,255,252,255, +252,255,252,255,251,255,251,255,251,255,251,255,252,255,251,255,249,255,247,255,246,255,244,255,244,255,243,255,241,255,240,255, +240,255,241,255,240,255,239,255,238,255,238,255,239,255,241,255,244,255,245,255,248,255,250,255,251,255,251,255,252,255,251,255, +252,255,0,0,4,0,6,0,5,0,2,0,254,255,253,255,254,255,0,0,2,0,2,0,0,0,253,255,249,255,247,255, +247,255,248,255,249,255,248,255,246,255,245,255,245,255,246,255,248,255,249,255,250,255,251,255,254,255,0,0,0,0,0,0, +2,0,5,0,7,0,8,0,9,0,9,0,10,0,11,0,11,0,12,0,13,0,12,0,11,0,12,0,12,0,9,0, +7,0,6,0,4,0,1,0,3,0,7,0,9,0,6,0,0,0,252,255,255,255,5,0,7,0,7,0,7,0,8,0, +9,0,11,0,15,0,17,0,18,0,21,0,22,0,20,0,19,0,20,0,22,0,26,0,30,0,32,0,29,0,25,0, +23,0,21,0,21,0,24,0,26,0,23,0,19,0,16,0,14,0,14,0,12,0,6,0,3,0,7,0,14,0,14,0, +10,0,5,0,2,0,4,0,10,0,16,0,20,0,21,0,17,0,13,0,11,0,12,0,14,0,19,0,27,0,27,0, +19,0,10,0,5,0,3,0,7,0,15,0,21,0,21,0,14,0,2,0,248,255,247,255,0,0,7,0,7,0,3,0, +255,255,253,255,255,255,1,0,1,0,1,0,1,0,254,255,251,255,252,255,0,0,5,0,11,0,13,0,8,0,253,255, +245,255,245,255,253,255,7,0,11,0,7,0,0,0,249,255,242,255,241,255,250,255,0,0,254,255,251,255,250,255,245,255, +240,255,241,255,247,255,252,255,3,0,11,0,13,0,11,0,12,0,20,0,30,0,35,0,35,0,33,0,31,0,27,0, +26,0,32,0,38,0,35,0,32,0,37,0,40,0,31,0,20,0,18,0,18,0,12,0,9,0,13,0,17,0,15,0, +11,0,9,0,8,0,10,0,15,0,21,0,26,0,33,0,39,0,38,0,34,0,35,0,44,0,59,0,71,0,76,0, +72,0,62,0,56,0,58,0,60,0,55,0,51,0,57,0,66,0,62,0,42,0,20,0,11,0,12,0,17,0,21,0, +22,0,17,0,9,0,1,0,246,255,236,255,232,255,236,255,244,255,251,255,254,255,250,255,241,255,237,255,237,255,235,255, +235,255,243,255,255,255,5,0,3,0,2,0,3,0,6,0,11,0,14,0,10,0,6,0,5,0,4,0,6,0,14,0, +18,0,5,0,239,255,229,255,231,255,233,255,229,255,226,255,223,255,219,255,213,255,207,255,198,255,194,255,198,255,200,255, +198,255,198,255,202,255,205,255,199,255,188,255,183,255,190,255,203,255,211,255,215,255,217,255,221,255,227,255,228,255,220,255, +210,255,209,255,223,255,242,255,246,255,235,255,216,255,191,255,175,255,179,255,190,255,204,255,219,255,218,255,197,255,168,255, +149,255,152,255,172,255,190,255,201,255,208,255,199,255,172,255,139,255,113,255,108,255,128,255,157,255,181,255,188,255,178,255, +166,255,153,255,132,255,126,255,149,255,181,255,209,255,227,255,224,255,215,255,214,255,200,255,177,255,174,255,197,255,239,255, +26,0,46,0,41,0,16,0,238,255,228,255,2,0,45,0,75,0,87,0,75,0,48,0,19,0,255,255,5,0,23,0, +32,0,39,0,40,0,12,0,224,255,191,255,182,255,209,255,2,0,34,0,36,0,15,0,242,255,229,255,232,255,231,255, +238,255,19,0,77,0,143,0,207,0,247,0,255,0,235,0,203,0,186,0,199,0,230,0,23,1,74,1,89,1,52,1, +229,0,131,0,55,0,20,0,30,0,86,0,153,0,186,0,175,0,123,0,46,0,245,255,227,255,236,255,21,0,94,0, +160,0,199,0,219,0,215,0,185,0,151,0,147,0,178,0,215,0,240,0,246,0,217,0,157,0,95,0,38,0,237,255, +195,255,163,255,121,255,68,255,23,255,6,255,18,255,23,255,22,255,41,255,55,255,34,255,9,255,28,255,108,255,247,255, +128,0,199,0,202,0,163,0,113,0,94,0,142,0,0,1,142,1,235,1,228,1,142,1,13,1,118,0,241,255,182,255, +209,255,10,0,23,0,215,255,77,255,158,254,24,254,209,253,167,253,185,253,31,254,124,254,147,254,149,254,128,254,45,254, +205,253,195,253,57,254,4,255,222,255,142,0,221,0,188,0,122,0,86,0,41,0,33,0,183,0,174,1,78,2,86,2, +220,1,1,1,43,0,195,255,217,255,52,0,144,0,183,0,136,0,236,255,6,255,69,254,1,254,71,254,215,254,53,255, +39,255,243,254,197,254,129,254,87,254,131,254,213,254,42,255,148,255,248,255,57,0,93,0,61,0,209,255,154,255,224,255, +89,0,198,0,22,1,26,1,226,0,182,0,126,0,6,0,168,255,221,255,113,0,220,0,245,0,192,0,56,0,152,255, +80,255,115,255,196,255,33,0,102,0,103,0,66,0,33,0,246,255,193,255,181,255,220,255,10,0,47,0,82,0,111,0, +126,0,131,0,121,0,90,0,61,0,56,0,58,0,53,0,60,0,83,0,124,0,166,0,154,0,57,0,189,255,117,255, +102,255,111,255,159,255,2,0,69,0,25,0,186,255,107,255,33,255,253,254,48,255,129,255,201,255,27,0,70,0,24,0, +215,255,191,255,203,255,8,0,121,0,240,0,54,1,58,1,35,1,18,1,248,0,224,0,2,1,75,1,115,1,109,1, +66,1,247,0,171,0,85,0,215,255,126,255,148,255,198,255,177,255,91,255,227,254,83,254,202,253,134,253,179,253,40,254, +123,254,136,254,97,254,9,254,211,253,32,254,165,254,32,255,213,255,142,0,205,0,232,0,51,1,87,1,92,1,152,1, +227,1,35,2,122,2,175,2,136,2,42,2,160,1,241,0,114,0,90,0,107,0,69,0,212,255,70,255,163,254,230,253, +97,253,74,253,75,253,46,253,61,253,152,253,232,253,239,253,231,253,23,254,109,254,203,254,73,255,218,255,63,0,128,0, +224,0,96,1,198,1,222,1,170,1,103,1,87,1,147,1,252,1,68,2,55,2,226,1,78,1,128,0,213,255,170,255, +214,255,18,0,70,0,39,0,107,255,143,254,83,254,192,254,106,255,244,255,20,0,247,255,31,0,119,0,149,0,172,0, +7,1,108,1,197,1,36,2,63,2,251,1,189,1,189,1,232,1,30,2,34,2,198,1,68,1,220,0,128,0,48,0, +11,0,255,255,226,255,163,255,54,255,182,254,98,254,49,254,15,254,45,254,121,254,163,254,191,254,249,254,34,255,52,255, +69,255,69,255,105,255,234,255,101,0,138,0,152,0,170,0,150,0,104,0,63,0,23,0,237,255,209,255,189,255,156,255, +113,255,57,255,192,254,23,254,179,253,155,253,130,253,130,253,164,253,148,253,85,253,33,253,230,252,203,252,30,253,188,253, +114,254,24,255,58,255,197,254,124,254,232,254,192,255,157,0,66,1,108,1,43,1,251,0,17,1,56,1,81,1,96,1, +90,1,66,1,45,1,6,1,167,0,25,0,135,255,7,255,151,254,85,254,73,254,51,254,240,253,164,253,73,253,206,252, +144,252,214,252,95,253,211,253,37,254,97,254,137,254,151,254,171,254,243,254,111,255,26,0,233,0,136,1,178,1,136,1, +89,1,113,1,210,1,4,2,191,1,84,1,2,1,198,0,181,0,181,0,86,0,118,255,141,254,38,254,59,254,103,254, +137,254,150,254,98,254,33,254,29,254,40,254,55,254,156,254,49,255,131,255,152,255,190,255,40,0,205,0,92,1,170,1, +205,1,177,1,105,1,118,1,2,2,165,2,15,3,41,3,210,2,32,2,131,1,97,1,180,1,27,2,42,2,201,1, +46,1,150,0,59,0,99,0,235,0,68,1,53,1,251,0,175,0,119,0,188,0,115,1,244,1,252,1,242,1,21,2, +52,2,79,2,145,2,190,2,181,2,232,2,101,3,183,3,233,3,24,4,201,3,17,3,193,2,28,3,205,3,128,4, +187,4,65,4,106,3,154,2,236,1,135,1,157,1,34,2,179,2,225,2,146,2,249,1,75,1,200,0,165,0,219,0, +82,1,237,1,91,2,76,2,239,1,172,1,141,1,144,1,226,1,48,2,5,2,242,1,148,2,79,3,117,3,25,3, +121,2,21,2,71,2,145,2,187,2,33,3,106,3,55,3,10,3,243,2,135,2,3,2,136,1,224,0,150,0,35,1, +239,1,78,2,10,2,20,1,230,255,64,255,63,255,177,255,119,0,8,1,226,0,60,0,111,255,179,254,148,254,56,255, +213,255,248,255,239,255,205,255,153,255,181,255,23,0,87,0,105,0,82,0,0,0,186,255,208,255,78,0,30,1,217,1, +227,1,51,1,109,0,21,0,44,0,147,0,38,1,127,1,102,1,57,1,41,1,233,0,97,0,167,255,209,254,112,254, +230,254,128,255,111,255,204,254,16,254,149,253,110,253,99,253,72,253,31,253,3,253,26,253,75,253,90,253,89,253,89,253, +71,253,82,253,110,253,77,253,64,253,174,253,47,254,109,254,162,254,186,254,117,254,20,254,3,254,91,254,240,254,116,255, +143,255,12,255,14,254,30,253,214,252,100,253,101,254,11,255,163,254,70,253,249,251,180,251,86,252,35,253,224,253,127,254, +143,254,207,253,165,252,233,251,43,252,247,252,97,253,93,253,78,253,25,253,202,252,193,252,227,252,199,252,114,252,75,252, +154,252,28,253,74,253,61,253,89,253,111,253,44,253,205,252,204,252,93,253,55,254,172,254,103,254,223,253,145,253,84,253, +5,253,1,253,94,253,182,253,239,253,31,254,38,254,241,253,119,253,213,252,180,252,112,253,69,254,105,254,234,253,25,253, +69,252,159,251,106,251,29,252,115,253,87,254,144,254,98,254,91,253,226,251,122,251,75,252,123,253,226,254,0,0,188,255, +69,254,219,252,39,252,88,252,146,253,58,255,10,0,107,255,25,254,34,253,201,252,186,252,211,252,44,253,137,253,139,253, +84,253,59,253,45,253,34,253,68,253,86,253,243,252,72,252,192,251,158,251,250,251,158,252,40,253,88,253,35,253,236,252, +84,253,134,254,79,0,110,2,51,4,239,4,244,4,44,5,12,6,149,7,158,9,194,11,133,13,144,14,195,14,104,14, +53,14,148,14,107,15,181,16,41,18,169,18,154,17,169,15,134,13,141,11,90,10,242,9,104,9,32,8,67,6,38,4, +36,2,106,0,246,254,199,253,186,252,192,251,31,251,17,251,135,251,41,252,97,252,24,252,9,252,193,252,52,254,44,0, +38,2,136,3,79,4,223,4,107,5,252,5,178,6,179,7,214,8,151,9,148,9,190,8,67,7,207,5,6,5,152,4, +235,3,252,2,196,1,243,255,175,253,154,251,29,250,34,249,83,248,140,247,250,246,172,246,110,246,47,246,25,246,52,246, +153,246,160,247,42,249,145,250,191,251,223,252,170,253,77,254,110,255,167,0,61,1,168,1,109,2,8,3,19,3,205,2, +86,2,150,1,188,0,36,0,182,255,21,255,56,254,56,253,11,252,244,250,53,250,134,249,193,248,51,248,241,247,240,247, +74,248,215,248,53,249,74,249,73,249,132,249,73,250,162,251,19,253,254,253,107,254,198,254,12,255,72,255,250,255,245,0, +80,1,232,0,93,0,7,0,234,255,242,255,244,255,219,255,147,255,8,255,109,254,11,254,250,253,26,254,25,254,206,253, +144,253,201,253,115,254,51,255,197,255,64,0,166,0,200,0,245,0,160,1,143,2,177,3,82,5,183,6,194,6,223,5, +27,5,200,4,52,5,128,6,180,7,249,7,157,7,202,6,99,5,49,4,244,3,24,4,247,3,205,3,187,3,127,3, +248,2,43,2,75,1,146,0,189,255,156,254,226,253,103,254,40,0,67,2,127,3,25,3,62,1,232,254,89,253,105,253, +36,255,236,1,129,4,134,5,165,4,110,2,187,255,200,253,113,253,72,254,112,255,139,0,76,1,69,1,66,0,151,254, +243,252,158,251,165,250,130,250,119,251,44,253,62,255,220,0,10,1,9,0,155,254,17,253,89,252,99,253,184,255,140,2, +86,5,251,6,239,6,7,6,250,4,8,4,183,3,65,4,84,5,178,6,230,7,53,8,144,7,73,6,27,4,22,1, +148,254,193,253,108,254,241,255,92,1,81,1,115,255,180,252,231,249,205,247,92,247,142,248,70,250,154,251,52,252,65,252, +39,252,227,251,126,251,130,251,64,252,144,253,63,255,242,0,68,2,36,3,159,3,174,3,28,3,187,1,106,0,123,0, +161,1,146,2,10,3,220,2,87,1,244,254,249,252,180,251,19,251,15,251,207,250,216,249,30,249,24,249,31,249,231,248, +105,248,157,247,78,247,24,248,84,249,186,250,156,252,86,254,24,255,54,255,46,255,93,255,129,0,149,2,100,4,48,5, +54,5,202,4,73,4,41,4,100,4,145,4,133,4,27,4,239,2,33,1,130,255,130,254,214,253,52,253,162,252,9,252, +7,251,162,249,151,248,113,248,227,248,88,249,115,249,75,249,135,249,150,250,31,252,152,253,139,254,203,254,251,254,190,255, +230,0,83,2,254,3,86,5,19,6,82,6,189,5,107,4,116,3,131,3,34,4,133,4,66,4,88,3,211,1,226,255, +39,254,14,253,90,252,234,251,219,251,14,252,63,252,8,252,70,251,116,250,15,250,81,250,103,251,238,252,82,254,178,255, +18,1,246,1,109,2,196,2,4,3,132,3,149,4,252,5,72,7,218,7,110,7,170,6,1,6,66,5,112,4,134,3, +148,2,35,2,22,2,148,1,133,0,69,255,234,253,213,252,67,252,208,251,99,251,94,251,190,251,19,252,27,252,23,252, +88,252,182,252,37,253,228,253,166,254,15,255,141,255,132,0,157,1,68,2,64,2,223,1,131,1,70,1,109,1,251,1, +28,2,140,1,6,1,159,0,251,255,106,255,244,254,74,254,225,253,255,253,0,254,153,253,21,253,168,252,188,252,138,253, +74,254,72,254,248,253,246,253,58,254,177,254,92,255,251,255,119,0,244,0,73,1,74,1,79,1,170,1,36,2,106,2, +106,2,70,2,51,2,46,2,243,1,128,1,51,1,42,1,10,1,149,0,2,0,157,255,106,255,84,255,79,255,48,255, +193,254,37,254,214,253,232,253,224,253,137,253,65,253,112,253,19,254,183,254,254,254,13,255,17,255,253,254,1,255,67,255, +155,255,17,0,153,0,196,0,167,0,171,0,190,0,225,0,65,1,139,1,147,1,129,1,27,1,124,0,104,0,230,0, +89,1,144,1,148,1,88,1,241,0,162,0,182,0,25,1,67,1,6,1,183,0,154,0,223,0,97,1,115,1,249,0, +170,0,214,0,34,1,54,1,23,1,29,1,93,1,101,1,10,1,169,0,138,0,190,0,55,1,156,1,147,1,29,1, +137,0,83,0,198,0,142,1,252,1,213,1,109,1,226,0,49,0,211,255,20,0,150,0,63,1,241,1,197,1,149,0, +158,255,127,255,223,255,137,0,40,1,117,1,137,1,67,1,176,0,95,0,62,0,254,255,42,0,221,0,91,1,119,1, +86,1,218,0,121,0,160,0,217,0,244,0,87,1,210,1,203,1,56,1,155,0,132,0,215,0,218,0,164,0,238,0, +32,1,70,0,77,255,106,255,9,0,142,0,41,1,111,1,4,1,128,0,58,0,29,0,110,0,6,1,108,1,239,1, +209,2,104,3,64,3,134,2,123,1,166,0,182,0,185,1,26,3,53,4,127,4,184,3,104,2,98,1,191,0,89,0, +147,0,88,1,197,1,135,1,232,0,24,0,133,255,126,255,140,255,116,255,173,255,65,0,194,0,241,0,186,0,58,0, +192,255,123,255,144,255,24,0,240,0,233,1,182,2,202,2,2,2,36,1,25,1,217,1,182,2,105,3,240,3,236,3, +96,3,0,3,211,2,61,2,134,1,132,1,29,2,116,2,41,2,143,1,223,0,253,255,40,255,213,254,1,255,102,255, +150,255,47,255,165,254,138,254,132,254,114,254,199,254,37,255,9,255,223,254,252,254,70,255,191,255,46,0,97,0,135,0, +131,0,58,0,251,255,178,255,49,255,239,254,21,255,81,255,158,255,206,255,149,255,80,255,37,255,131,254,141,253,71,253, +18,254,36,255,116,255,172,254,112,253,200,252,63,253,133,254,162,255,173,255,197,254,248,253,17,254,7,255,73,0,9,1, +205,0,242,255,234,254,0,254,19,254,97,255,100,0,5,0,22,255,95,254,208,253,101,253,2,253,183,252,254,252,131,253, +102,253,174,252,210,251,53,251,105,251,66,252,185,252,150,252,86,252,42,252,31,252,20,252,0,252,109,252,86,253,228,253, +36,254,146,254,187,254,113,254,47,254,217,253,142,253,46,254,138,255,109,0,87,0,101,255,209,253,81,252,175,251,12,252, +227,252,121,253,148,253,67,253,56,252,156,250,150,249,129,249,151,249,237,249,32,251,114,252,158,252,174,251,172,250,120,250, +51,251,100,252,119,253,42,254,178,254,129,255,151,0,74,1,62,1,239,0,252,0,140,1,124,2,133,3,52,4,103,4, +116,4,74,4,133,3,154,2,98,2,173,2,225,2,240,2,178,2,221,1,213,0,63,0,39,0,57,0,46,0,213,255, +76,255,54,255,236,255,186,0,242,0,217,0,172,0,147,0,43,1,78,2,57,3,27,4,9,5,91,5,112,5,172,5, +105,5,71,5,34,6,191,6,169,6,255,6,5,7,205,5,189,4,125,4,28,4,138,3,42,3,225,2,187,2,116,2, +195,1,23,1,134,0,188,255,16,255,215,254,212,254,245,254,68,255,149,255,174,255,89,255,201,254,158,254,59,255,150,0, +0,2,70,2,68,1,95,0,138,0,115,1,124,2,53,3,89,3,250,2,126,2,56,2,27,2,33,2,125,2,226,2, +212,2,141,2,5,2,229,0,241,255,253,255,97,0,95,0,228,255,243,254,28,254,254,253,28,254,251,253,231,253,221,253, +164,253,129,253,148,253,153,253,97,253,221,252,70,252,45,252,199,252,100,253,66,253,139,252,216,251,54,251,183,250,224,250, +162,251,106,252,251,252,17,253,135,252,7,252,239,251,5,252,218,252,170,254,22,0,97,0,64,0,235,255,121,255,212,255, +28,1,111,2,153,3,185,4,81,5,45,5,186,4,67,4,243,3,21,4,184,4,120,5,193,5,64,5,17,4,143,2, +65,1,148,0,105,0,91,0,67,0,246,255,56,255,52,254,42,253,45,252,144,251,140,251,239,251,185,252,206,253,123,254, +126,254,92,254,100,254,217,254,37,0,233,1,88,3,95,4,62,5,217,5,42,6,101,6,157,6,219,6,70,7,195,7, +216,7,89,7,148,6,149,5,112,4,178,3,80,3,101,2,223,0,141,255,178,254,40,254,208,253,74,253,119,252,164,251, +225,250,66,250,49,250,149,250,241,250,93,251,10,252,148,252,201,252,25,253,196,253,169,254,199,255,245,0,170,1,204,1, +193,1,147,1,56,1,65,1,6,2,205,2,184,2,213,1,198,0,206,255,209,254,247,253,138,253,108,253,96,253,62,253, +166,252,137,251,151,250,96,250,193,250,71,251,124,251,78,251,56,251,105,251,136,251,169,251,59,252,39,253,4,254,142,254, +175,254,164,254,200,254,22,255,102,255,168,255,184,255,193,255,27,0,79,0,171,255,152,254,209,253,94,253,76,253,155,253, +182,253,54,253,63,252,44,251,167,250,30,251,241,251,99,252,103,252,29,252,209,251,4,252,186,252,157,253,124,254,39,255, +122,255,156,255,204,255,52,0,203,0,111,1,35,2,187,2,214,2,119,2,220,1,34,1,163,0,156,0,183,0,161,0, +55,0,108,255,152,254,240,253,41,253,95,252,253,251,224,251,200,251,167,251,90,251,17,251,7,251,3,251,10,251,106,251, +226,251,69,252,224,252,141,253,232,253,27,254,115,254,255,254,181,255,96,0,192,0,220,0,204,0,128,0,27,0,14,0, +134,0,13,1,35,1,197,0,31,0,50,255,26,254,93,253,132,253,48,254,89,254,199,253,43,253,211,252,171,252,225,252, +98,253,189,253,227,253,22,254,68,254,108,254,12,255,72,0,50,1,34,1,209,0,236,0,56,1,181,1,115,2,206,2, +158,2,128,2,117,2,59,2,42,2,73,2,41,2,205,1,101,1,254,0,207,0,214,0,171,0,78,0,34,0,51,0, +97,0,194,0,51,1,87,1,61,1,47,1,69,1,170,1,100,2,1,3,63,3,112,3,217,3,153,4,171,5,152,6, +241,6,182,6,68,6,84,6,79,7,130,8,30,9,43,9,205,8,18,8,98,7,28,7,91,7,229,7,15,8,134,7, +198,6,71,6,38,6,62,6,37,6,212,5,180,5,173,5,90,5,200,4,66,4,15,4,27,4,251,3,207,3,13,4, +65,4,218,3,67,3,15,3,75,3,158,3,123,3,1,3,211,2,214,2,196,2,244,2,88,3,104,3,11,3,79,2, +106,1,236,0,226,0,221,0,242,0,65,1,116,1,55,1,107,0,90,255,228,254,106,255,54,0,138,0,46,0,75,255, +122,254,82,254,219,254,150,255,185,255,25,255,180,254,42,255,180,255,167,255,87,255,40,255,10,255,198,254,145,254,10,255, +248,255,63,0,209,255,132,255,90,255,52,255,101,255,108,255,197,254,65,254,96,254,147,254,175,254,193,254,102,254,204,253, +112,253,45,253,246,252,47,253,192,253,63,254,118,254,59,254,186,253,107,253,38,253,163,252,147,252,91,253,247,253,205,253, +122,253,48,253,222,252,25,253,183,253,147,253,163,252,187,251,235,250,44,250,250,249,95,250,241,250,91,251,62,251,103,250, +31,249,250,247,159,247,87,248,168,249,222,250,155,251,191,251,116,251,31,251,251,250,14,251,62,251,116,251,210,251,112,252, +21,253,99,253,25,253,74,252,123,251,81,251,251,251,218,252,244,252,72,252,230,251,43,252,127,252,184,252,0,253,63,253, +149,253,35,254,145,254,226,254,137,255,125,0,114,1,98,2,55,3,201,3,97,4,74,5,92,6,103,7,119,8,102,9, +16,10,150,10,210,10,132,10,50,10,107,10,206,10,12,11,91,11,88,11,119,10,2,9,164,7,252,6,109,7,83,8, +107,8,78,7,98,5,76,3,248,1,204,1,27,2,67,2,91,2,72,2,176,1,209,0,51,0,240,255,251,255,99,0, +1,1,124,1,163,1,129,1,94,1,130,1,225,1,30,2,243,1,198,1,93,2,92,3,159,3,103,3,200,3,69,4, +230,3,10,3,50,2,98,1,32,1,165,1,23,2,202,1,216,0,131,255,36,254,21,253,90,252,239,251,237,251,0,252, +143,251,160,250,204,249,87,249,19,249,203,248,69,248,170,247,146,247,250,247,79,248,153,248,44,249,230,249,122,250,125,250, +215,249,127,249,110,250,74,252,35,254,32,255,33,255,32,255,141,255,163,255,100,255,126,255,196,255,38,0,239,0,122,1, +47,1,100,0,99,255,132,254,39,254,229,253,96,253,192,252,234,251,31,251,216,250,119,250,162,249,29,249,249,248,204,248, +235,248,57,249,79,249,172,249,102,250,253,250,179,251,156,252,31,253,91,253,189,253,70,254,47,255,102,0,71,1,221,1, +117,2,191,2,204,2,243,2,224,2,111,2,59,2,157,2,58,3,83,3,137,2,117,1,159,0,200,255,245,254,123,254, +81,254,159,254,87,255,140,255,220,254,232,253,249,252,110,252,2,253,86,254,109,255,78,0,58,1,230,1,47,2,21,2, +148,1,24,1,38,1,197,1,188,2,156,3,227,3,144,3,246,2,245,1,83,0,142,254,139,253,135,253,0,254,97,254, +60,254,99,253,36,252,238,250,217,249,15,249,227,248,89,249,61,250,98,251,137,252,146,253,122,254,21,255,104,255,241,255, +254,0,85,2,181,3,49,5,229,6,148,8,172,9,194,9,241,8,197,7,246,6,252,6,154,7,18,8,212,7,213,6, +84,5,127,3,146,1,229,255,164,254,198,253,57,253,212,252,87,252,139,251,103,250,91,249,251,248,70,249,242,249,220,250, +209,251,182,252,208,253,24,255,45,0,33,1,65,2,148,3,14,5,118,6,88,7,166,7,184,7,189,7,204,7,239,7, +249,7,162,7,183,6,67,5,187,3,115,2,66,1,43,0,81,255,85,254,219,252,46,251,182,249,157,248,17,248,38,248, +176,248,63,249,108,249,120,249,17,250,61,251,131,252,234,253,138,255,0,1,45,2,134,3,43,5,146,6,43,7,12,7, +232,6,71,7,8,8,158,8,117,8,130,7,85,6,42,5,188,3,75,2,96,1,212,0,27,0,224,254,32,253,90,251, +44,250,153,249,118,249,193,249,4,250,202,249,145,249,249,249,204,250,158,251,77,252,216,252,140,253,184,254,11,0,1,1, +172,1,75,2,211,2,54,3,98,3,249,2,1,2,103,1,232,1,223,2,253,2,232,1,117,0,96,255,162,254,255,253, +139,253,120,253,203,253,34,254,0,254,119,253,243,252,148,252,127,252,13,253,67,254,205,255,57,1,3,2,49,2,108,2, +230,2,78,3,188,3,104,4,61,5,54,6,251,6,164,6,24,5,125,3,187,2,173,2,198,2,143,2,195,1,136,0, +61,255,4,254,221,252,242,251,101,251,44,251,44,251,54,251,45,251,69,251,124,251,128,251,113,251,154,251,194,251,230,251, +157,252,3,254,121,255,101,0,113,0,195,255,17,255,250,254,133,255,77,0,202,0,199,0,104,0,175,255,178,254,226,253, +100,253,8,253,202,252,145,252,28,252,84,251,64,250,42,249,165,248,193,248,244,248,220,248,108,248,3,248,92,248,102,249, +42,250,69,250,54,250,139,250,116,251,149,252,122,253,49,254,182,254,218,254,255,254,150,255,115,0,112,1,90,2,139,2, +242,1,73,1,230,0,169,0,142,0,174,0,25,1,123,1,46,1,34,0,211,254,159,253,251,252,22,253,61,253,245,252, +167,252,164,252,181,252,110,252,146,251,193,250,208,250,110,251,237,251,73,252,120,252,136,252,4,253,192,253,209,253,80,253, +62,253,18,254,116,255,187,0,100,1,74,1,177,0,91,0,215,0,140,1,181,1,172,1,231,1,24,2,241,1,105,1, +177,0,110,0,211,0,55,1,95,1,127,1,50,1,87,0,165,255,104,255,83,255,96,255,104,255,66,255,149,255,190,0, +191,1,212,1,107,1,251,0,219,0,143,1,183,2,71,3,68,3,110,3,220,3,87,4,228,4,98,5,131,5,21,5, +64,4,166,3,195,3,84,4,223,4,22,5,212,4,114,4,83,4,22,4,89,3,135,2,42,2,108,2,254,2,35,3, +202,2,196,2,56,3,117,3,60,3,204,2,79,2,35,2,194,2,45,4,200,5,206,6,252,6,181,6,125,6,167,6, +37,7,154,7,238,7,20,8,202,7,126,7,207,7,8,8,142,7,41,7,239,6,246,5,112,4,40,3,58,2,216,1, +26,2,114,2,146,2,96,2,156,1,196,0,128,0,139,0,169,0,5,1,131,1,83,2,192,3,239,4,5,5,143,4, +129,4,65,5,125,6,38,7,186,6,43,6,107,6,83,7,15,8,169,7,38,6,252,4,228,4,166,4,124,3,93,2, +252,1,214,1,123,1,227,0,213,255,102,254,49,253,131,252,61,252,75,252,122,252,155,252,236,252,126,253,6,254,156,254, +95,255,10,0,173,0,145,1,152,2,209,3,82,5,83,6,75,6,249,5,10,6,83,6,140,6,129,6,4,6,26,5, +214,3,118,2,110,1,183,0,217,255,211,254,232,253,11,253,43,252,93,251,150,250,218,249,115,249,137,249,194,249,208,249, +235,249,78,250,226,250,193,251,225,252,143,253,140,253,177,253,166,254,36,0,126,1,13,2,188,1,37,1,183,0,180,0, +80,1,190,1,254,0,192,255,18,255,129,254,137,253,173,252,14,252,254,250,47,249,67,247,66,246,65,246,57,246,220,245, +206,245,216,245,64,245,95,244,10,244,129,244,163,245,232,246,182,247,96,248,81,249,11,250,87,250,213,250,190,251,207,252, +211,253,88,254,38,254,213,253,208,253,30,254,243,254,166,255,243,254,65,253,253,251,67,251,199,250,212,250,11,251,230,250, +205,250,164,250,187,249,98,248,56,247,109,246,177,246,83,248,81,250,195,251,41,252,10,251,70,249,118,248,193,248,10,250, +222,252,113,0,220,2,53,3,74,1,207,253,64,251,163,251,148,254,114,2,65,5,113,5,97,3,114,0,102,253,85,251, +89,251,217,252,98,254,254,254,246,253,133,251,221,248,120,246,98,244,55,243,40,243,240,243,143,245,71,247,211,247,79,247, +212,246,75,247,66,249,64,252,50,255,49,2,141,5,60,8,170,9,231,10,221,12,136,15,164,18,143,21,155,23,226,24, +234,25,151,26,78,26,38,25,19,24,194,23,215,23,27,23,120,20,116,16,175,12,107,9,221,5,44,2,187,254,110,251, +129,248,217,245,226,242,50,240,109,238,243,236,207,235,160,235,249,235,248,236,108,239,162,242,179,245,219,248,241,251,249,254, +147,2,41,6,70,9,255,12,72,17,0,21,4,24,236,25,62,26,49,26,113,26,71,26,235,25,102,25,122,23,20,20, +218,15,195,10,178,5,174,1,29,254,166,250,121,247,184,243,64,239,97,235,107,232,28,230,252,228,24,229,251,229,144,231, +95,233,7,235,16,237,164,239,100,242,185,245,17,250,222,254,170,3,106,8,114,12,192,14,111,15,238,15,105,17,108,19, +166,20,110,20,14,19,23,17,229,14,158,12,36,10,240,6,149,2,150,253,16,249,208,245,222,243,87,242,15,240,213,236, +98,233,117,230,197,228,228,228,193,230,209,233,81,237,111,240,196,242,96,244,176,245,193,247,141,251,223,0,170,6,182,11, +17,15,194,16,122,17,128,17,32,17,26,17,168,17,30,18,137,17,126,15,156,12,126,9,181,5,77,1,135,253,205,250, +108,248,26,246,198,243,82,241,76,239,63,238,222,237,199,237,231,237,112,238,225,239,48,242,169,244,46,247,55,250,216,253, +210,1,214,5,107,9,78,12,131,14,21,16,92,17,205,18,101,20,185,21,80,22,223,21,165,20,252,18,174,16,137,13, +222,9,41,6,5,3,243,0,124,255,101,253,45,250,142,246,124,243,54,241,134,239,119,238,90,238,67,239,215,240,115,242, +196,243,36,245,247,246,24,249,70,251,128,253,234,255,227,2,156,6,106,10,72,13,226,14,117,15,105,15,87,15,182,15, +77,16,148,16,81,16,111,15,213,13,215,11,238,9,20,8,251,5,131,3,212,0,127,254,0,253,7,252,18,251,33,250, +45,249,25,248,45,247,174,246,163,246,25,247,246,247,30,249,165,250,24,252,242,252,181,253,241,254,79,0,132,1,105,2, +206,2,62,3,46,4,5,5,160,5,139,6,22,7,48,6,106,4,243,2,52,2,27,2,52,2,197,1,162,0,48,255, +191,253,118,252,131,251,1,251,219,250,189,250,61,250,61,249,57,248,253,247,217,248,63,250,110,251,30,252,81,252,63,252, +127,252,136,253,22,255,133,0,124,1,24,2,178,2,130,3,64,4,139,4,143,4,162,4,171,4,149,4,158,4,187,4, +166,4,125,4,77,4,175,3,116,2,245,0,143,255,154,254,76,254,58,254,180,253,184,252,178,251,195,250,223,249,26,249, +128,248,58,248,123,248,2,249,103,249,182,249,253,249,46,250,166,250,158,251,151,252,54,253,198,253,124,254,61,255,232,255, +117,0,239,0,73,1,87,1,45,1,15,1,21,1,30,1,217,0,33,0,93,255,198,254,238,253,194,252,196,251,31,251, +142,250,217,249,2,249,108,248,79,248,66,248,0,248,180,247,114,247,146,247,145,248,6,250,29,251,162,251,178,251,193,251, +173,252,147,254,133,0,206,1,92,2,109,2,126,2,214,2,42,3,16,3,148,2,35,2,247,1,199,1,82,1,176,0, +234,255,227,254,164,253,83,252,51,251,134,250,53,250,31,250,101,250,208,250,203,250,77,250,211,249,183,249,48,250,69,251, +168,252,8,254,63,255,39,0,175,0,8,1,114,1,241,1,88,2,161,2,33,3,27,4,16,5,27,5,14,4,159,2, +93,1,66,0,63,255,118,254,225,253,104,253,2,253,136,252,202,251,217,250,220,249,14,249,221,248,120,249,127,250,106,251, +2,252,119,252,41,253,34,254,9,255,190,255,125,0,109,1,138,2,185,3,213,4,202,5,104,6,146,6,160,6,228,6, +29,7,5,7,169,6,39,6,199,5,156,5,27,5,240,3,128,2,32,1,5,0,108,255,238,254,43,254,195,253,254,253, +4,254,100,253,176,252,130,252,1,253,236,253,247,254,55,0,173,1,231,2,214,3,225,4,218,5,59,6,49,6,129,6, +149,7,48,9,200,10,167,11,39,11,155,9,25,8,18,7,69,6,218,5,239,5,252,5,148,5,198,4,164,3,47,2, +144,0,61,255,198,254,17,255,132,255,17,0,4,1,26,2,171,2,114,2,219,1,212,1,242,2,228,4,230,6,94,8, +49,9,192,9,69,10,153,10,183,10,175,10,89,10,206,9,121,9,103,9,43,9,115,8,89,7,23,6,163,4,238,2, +104,1,132,0,22,0,148,255,186,254,199,253,36,253,222,252,192,252,193,252,234,252,63,253,232,253,251,254,54,0,56,1, +223,1,106,2,61,3,88,4,86,5,251,5,77,6,128,6,212,6,41,7,59,7,42,7,21,7,184,6,22,6,115,5, +154,4,86,3,61,2,214,1,170,1,255,0,223,255,205,254,231,253,32,253,190,252,223,252,11,253,237,252,205,252,225,252, +27,253,120,253,238,253,122,254,75,255,82,0,64,1,25,2,232,2,89,3,78,3,246,2,140,2,161,2,91,3,214,3, +142,3,252,2,79,2,98,1,82,0,24,255,201,253,201,252,0,252,58,251,189,250,107,250,238,249,136,249,48,249,130,248, +221,247,179,247,218,247,84,248,36,249,3,250,6,251,39,252,221,252,33,253,77,253,126,253,254,253,245,254,206,255,61,0, +150,0,228,0,219,0,99,0,184,255,64,255,243,254,105,254,190,253,81,253,243,252,82,252,125,251,160,250,184,249,159,248, +122,247,179,246,43,246,141,245,62,245,156,245,75,246,221,246,16,247,15,247,172,247,11,249,25,250,116,250,196,250,71,251, +226,251,159,252,60,253,137,253,1,254,7,255,17,0,32,0,33,255,45,254,199,253,143,253,190,253,126,254,173,254,174,253, +109,252,141,251,220,250,77,250,211,249,77,249,7,249,32,249,15,249,103,248,120,247,214,246,170,246,237,246,221,247,97,249, +170,250,61,251,75,251,0,251,167,250,156,250,197,250,54,251,76,252,112,253,146,253,233,252,108,252,147,252,122,253,9,255, +171,0,162,1,175,1,63,1,177,0,217,255,221,254,137,254,18,255,221,255,162,0,78,1,139,1,61,1,147,0,251,255, +40,0,80,1,249,2,13,5,142,7,147,9,22,10,30,9,187,7,116,7,4,9,148,11,225,13,108,15,105,16,47,17, +144,17,2,17,165,15,8,14,124,12,174,11,75,12,161,13,97,14,35,14,39,13,206,11,88,10,163,8,191,6,78,5, +168,4,165,4,41,5,233,5,121,6,177,6,121,6,216,5,85,5,114,5,19,6,216,6,167,7,188,8,31,10,46,11, +55,11,69,10,1,9,24,8,204,7,207,7,169,7,45,7,173,6,155,6,165,6,252,5,169,4,54,3,127,1,75,255, +246,252,231,250,140,249,97,249,41,250,6,251,51,251,76,250,135,248,170,246,107,245,19,245,120,245,84,246,223,247,15,250, +174,251,225,251,107,251,58,251,90,251,157,251,23,252,37,253,239,254,223,0,76,2,29,3,25,3,236,1,16,0,139,254, +234,253,221,253,141,253,143,252,79,251,55,250,61,249,107,248,211,247,31,247,227,245,63,244,220,242,59,242,78,242,226,242, +237,243,82,245,190,246,198,247,242,247,39,247,2,246,113,245,252,245,153,247,235,249,121,252,179,254,19,0,72,0,47,255, +26,253,254,250,243,249,140,250,110,252,67,254,234,254,179,254,126,254,90,254,199,253,110,252,131,250,13,249,3,249,63,250, +33,252,91,254,128,0,2,2,147,2,4,2,101,0,153,254,231,253,250,254,132,1,139,4,255,6,63,8,53,8,55,7, +191,5,51,4,236,2,79,2,126,2,57,3,61,4,94,5,11,6,119,5,102,3,107,0,164,253,58,252,120,252,132,253, +165,254,226,255,19,1,164,1,88,1,112,0,103,255,200,254,202,254,61,255,6,0,83,1,54,3,89,5,253,6,129,7, +228,6,170,5,143,4,40,4,130,4,65,5,28,6,248,6,170,7,212,7,0,7,40,5,7,3,116,1,168,0,127,0, +233,0,184,1,124,2,186,2,41,2,202,0,8,255,174,253,122,253,158,254,153,0,158,2,30,4,199,4,127,4,178,3, +247,2,100,2,0,2,61,2,56,3,104,4,88,5,214,5,179,5,236,4,172,3,59,2,1,1,60,0,223,255,208,255, +224,255,219,255,196,255,139,255,227,254,174,253,45,252,245,250,196,250,169,251,239,252,23,254,227,254,232,254,70,254,187,253, +129,253,114,253,201,253,158,254,122,255,14,0,101,0,74,0,157,255,223,254,128,254,40,254,128,253,219,252,140,252,119,252, +126,252,147,252,121,252,238,251,3,251,24,250,144,249,113,249,127,249,158,249,226,249,84,250,191,250,212,250,209,250,85,251, +87,252,28,253,68,253,25,253,35,253,218,253,33,255,35,0,67,0,214,255,160,255,209,255,219,255,79,255,150,254,102,254, +206,254,55,255,4,255,254,253,171,252,247,251,29,252,68,252,159,251,138,250,25,250,216,250,47,252,246,252,138,252,93,251, +109,250,60,250,128,250,223,250,141,251,211,252,80,254,55,255,32,255,90,254,153,253,79,253,128,253,31,254,22,255,2,0, +142,0,184,0,129,0,252,255,123,255,57,255,54,255,92,255,103,255,85,255,169,255,100,0,152,0,227,255,19,255,10,255, +205,255,159,0,205,0,76,0,150,255,52,255,119,255,38,0,157,0,141,0,88,0,133,0,240,0,231,0,63,0,161,255, +135,255,202,255,0,0,221,255,145,255,144,255,205,255,208,255,116,255,243,254,192,254,47,255,236,255,119,0,194,0,208,0, +167,0,131,0,107,0,82,0,118,0,246,0,180,1,95,2,79,2,140,1,42,1,138,1,221,1,190,1,115,1,77,1, +136,1,217,1,176,1,22,1,118,0,11,0,239,255,211,255,112,255,77,255,217,255,127,0,141,0,10,0,98,255,4,255, +23,255,130,255,47,0,4,1,233,1,209,2,103,3,79,3,217,2,162,2,222,2,104,3,232,3,251,3,210,3,0,4, +148,4,23,5,29,5,162,4,9,4,153,3,224,2,127,1,46,0,226,255,145,0,107,1,162,1,6,1,79,0,47,0, +105,0,113,0,16,0,88,255,236,254,161,255,35,1,59,2,91,2,206,1,68,1,117,1,87,2,6,3,1,3,180,2, +210,2,165,3,196,4,95,5,38,5,162,4,123,4,166,4,149,4,37,4,155,3,30,3,215,2,11,3,121,3,143,3, +56,3,149,2,150,1,135,0,247,255,249,255,69,0,194,0,93,1,217,1,39,2,121,2,243,2,80,3,40,3,182,2, +202,2,148,3,131,4,69,5,230,5,97,6,181,6,249,6,19,7,195,6,238,5,23,5,35,5,9,6,190,6,190,6, +109,6,20,6,214,5,233,5,22,6,194,5,191,4,172,3,108,3,32,4,223,4,212,4,14,4,50,3,192,2,168,2, +125,2,61,2,87,2,194,2,245,2,199,2,132,2,87,2,55,2,10,2,174,1,81,1,90,1,191,1,24,2,53,2, +250,1,105,1,10,1,58,1,84,1,183,0,184,255,246,254,182,254,244,254,70,255,10,255,80,254,243,253,53,254,77,254, +217,253,87,253,4,253,199,252,186,252,175,252,76,252,229,251,255,251,126,252,13,253,100,253,102,253,115,253,160,253,52,253, +22,252,109,251,210,251,137,252,203,252,98,252,98,251,36,250,45,249,207,248,243,248,21,249,227,248,32,249,217,250,140,253, +19,255,170,253,214,249,0,246,43,244,150,244,151,246,75,249,163,251,255,252,27,253,95,251,234,247,105,244,178,242,172,243, +53,247,152,251,70,254,11,254,196,251,255,248,177,246,32,245,147,244,121,245,231,247,51,251,160,253,49,253,17,250,148,246, +67,244,55,243,170,243,128,245,130,247,137,248,23,248,56,246,9,244,31,243,219,243,108,245,0,247,14,248,89,248,69,248, +104,248,175,248,190,248,211,248,165,249,185,251,203,254,132,1,147,2,95,2,143,2,9,4,51,6,207,7,60,8,69,8, +14,9,81,10,209,10,98,10,50,10,248,10,231,11,12,12,152,11,242,10,37,10,152,9,126,9,51,9,146,8,21,8, +145,7,221,6,46,6,42,5,249,3,187,3,84,4,128,4,30,4,249,3,198,4,208,6,199,8,199,8,77,7,95,6, +203,6,7,8,14,9,104,9,53,10,137,12,110,15,30,17,177,16,176,14,227,12,73,12,7,12,133,11,71,11,132,11, +14,12,105,12,130,11,35,9,107,6,53,4,200,2,84,2,82,2,30,2,236,1,149,1,57,0,216,253,126,251,41,250, +89,250,107,251,205,251,60,251,35,251,38,252,59,253,48,253,235,251,216,250,136,251,120,253,196,254,183,254,37,254,62,254, +91,255,76,0,251,255,76,255,136,255,143,0,117,1,34,1,58,255,48,253,149,252,44,253,213,253,163,253,103,252,97,251, +159,251,255,251,239,250,182,248,253,246,18,247,110,248,246,248,179,247,13,246,159,245,87,246,239,246,98,246,76,245,105,245, +38,247,202,248,192,248,75,247,229,245,223,245,26,247,5,248,210,247,154,247,90,248,165,249,151,250,148,250,242,249,21,250, +158,251,99,253,20,254,143,253,209,252,10,253,17,254,126,254,220,253,90,253,29,254,221,255,245,0,15,0,219,253,49,252, +229,251,34,252,158,251,62,250,54,249,93,249,35,250,80,250,73,249,175,247,171,246,160,246,27,247,131,247,188,247,136,248, +74,250,207,251,36,252,1,252,57,252,210,252,182,253,213,254,63,0,67,2,231,4,174,7,157,9,194,9,119,8,44,7, +144,6,91,6,78,6,121,6,41,7,83,8,238,8,16,8,244,5,99,3,53,1,247,255,32,255,11,254,93,253,191,253, +117,254,119,254,134,253,22,252,250,250,205,250,126,251,213,252,178,254,179,0,123,2,244,3,10,5,5,6,115,7,26,9, +91,10,89,11,85,12,92,13,218,14,144,16,57,17,153,16,195,15,75,15,241,14,11,14,242,11,44,9,36,7,84,6, +14,6,114,5,249,3,246,1,46,0,145,254,110,252,190,249,160,247,109,247,34,249,7,251,152,251,3,251,90,250,69,250, +203,250,199,251,43,253,5,255,95,1,31,4,165,6,241,7,178,7,225,6,169,6,21,7,150,7,61,8,77,9,81,10, +150,10,202,9,224,7,82,5,250,2,65,1,252,255,18,255,148,254,75,254,160,253,55,252,105,250,210,248,182,247,54,247, +87,247,167,247,203,247,29,248,21,249,106,250,104,251,237,251,139,252,180,253,44,255,123,0,125,1,103,2,106,3,111,4, +74,5,221,5,255,5,158,5,10,5,160,4,74,4,184,3,225,2,254,1,51,1,142,0,2,0,39,255,148,253,139,251, +171,249,77,248,170,247,217,247,63,248,37,248,188,247,155,247,188,247,209,247,232,247,66,248,14,249,87,250,207,251,254,252, +149,253,146,253,123,253,15,254,37,255,234,255,71,0,198,0,117,1,231,1,175,1,168,0,72,255,59,254,179,253,142,253, +162,253,150,253,10,253,238,251,156,250,136,249,200,248,59,248,30,248,149,248,34,249,113,249,195,249,26,250,68,250,111,250, +210,250,103,251,81,252,161,253,254,254,30,0,255,0,176,1,32,2,30,2,159,1,51,1,100,1,248,1,128,2,228,2, +251,2,178,2,72,2,212,1,34,1,33,0,11,255,70,254,252,253,222,253,177,253,156,253,163,253,158,253,120,253,26,253, +164,252,127,252,222,252,157,253,137,254,112,255,42,0,137,0,110,0,35,0,23,0,81,0,176,0,37,1,162,1,50,2, +194,2,20,3,49,3,7,3,43,2,228,0,18,0,205,255,137,255,3,255,54,254,120,253,89,253,189,253,203,253,37,253, +104,252,54,252,99,252,140,252,181,252,254,252,111,253,30,254,226,254,87,255,113,255,134,255,233,255,193,0,199,1,138,2, +237,2,35,3,85,3,123,3,85,3,202,2,47,2,241,1,32,2,76,2,242,1,48,1,189,0,248,0,80,1,250,0, +26,0,151,255,177,255,207,255,140,255,21,255,212,254,37,255,221,255,147,0,46,1,156,1,197,1,10,2,165,2,23,3, +8,3,229,2,70,3,86,4,148,5,19,6,113,5,150,4,184,4,142,5,205,5,79,5,242,4,248,4,37,5,43,5, +157,4,178,3,33,3,245,2,242,2,37,3,59,3,236,2,181,2,250,2,91,3,50,3,102,2,185,1,194,1,35,2, +107,2,125,2,68,2,55,2,214,2,122,3,116,3,60,3,68,3,98,3,134,3,173,3,186,3,205,3,15,4,89,4, +137,4,189,4,247,4,9,5,239,4,179,4,78,4,4,4,36,4,83,4,37,4,207,3,150,3,127,3,163,3,232,3, +215,3,73,3,203,2,233,2,116,3,198,3,153,3,56,3,13,3,44,3,3,3,61,2,149,1,179,1,74,2,11,3, +228,3,101,4,72,4,191,3,235,2,233,1,242,0,72,0,117,0,168,1,251,2,103,3,226,2,246,1,19,1,101,0, +221,255,121,255,116,255,243,255,201,0,121,1,152,1,52,1,175,0,71,0,239,255,175,255,201,255,56,0,167,0,250,0, +58,1,73,1,27,1,193,0,54,0,153,255,29,255,198,254,173,254,5,255,171,255,60,0,107,0,50,0,181,255,226,254, +151,253,56,252,107,251,103,251,207,251,249,251,204,251,238,251,100,252,89,252,149,251,150,250,186,249,78,249,136,249,75,250, +84,251,33,252,81,252,99,252,179,252,149,252,188,251,252,250,246,250,120,251,28,252,151,252,197,252,168,252,123,252,179,252, +62,253,83,253,181,252,18,252,187,251,124,251,62,251,235,250,162,250,243,250,207,251,34,252,56,251,103,249,105,247,2,246, +206,245,226,246,166,248,54,250,58,251,11,252,106,252,95,251,254,248,197,246,41,246,182,247,179,250,132,253,255,254,245,254, +168,253,188,251,237,249,148,248,41,248,78,249,161,251,175,253,69,254,33,253,228,250,164,248,32,247,108,246,63,246,114,246, +51,247,115,248,103,249,119,249,243,248,102,248,21,248,50,248,191,248,134,249,111,250,137,251,5,253,228,254,126,0,103,1, +102,2,6,4,96,5,218,5,76,6,149,7,165,9,219,11,117,13,51,14,110,14,117,14,89,14,44,14,247,13,195,13, +152,13,86,13,1,13,181,12,62,12,143,11,2,11,115,10,73,9,110,7,132,5,92,4,65,4,147,4,172,4,179,4, +1,5,110,5,133,5,233,4,211,3,17,3,62,3,93,4,30,6,230,7,16,9,138,9,169,9,92,9,151,8,30,8, +191,8,50,10,155,11,108,12,111,12,186,11,153,10,77,9,39,8,93,7,199,6,88,6,45,6,254,5,64,5,177,3, +173,1,14,0,26,255,56,254,88,253,247,252,213,252,152,252,82,252,177,251,141,250,135,249,225,248,116,248,139,248,56,249, +22,250,252,250,213,251,126,252,247,252,12,253,130,252,215,251,152,251,197,251,126,252,243,253,141,255,113,0,143,0,61,0, +119,255,47,254,211,252,10,252,55,252,44,253,78,254,254,254,196,254,124,253,183,251,54,250,34,249,84,248,207,247,186,247, +87,248,123,249,56,250,210,249,117,248,205,246,155,245,79,245,180,245,85,246,233,246,133,247,110,248,77,249,142,249,145,249, +249,249,177,250,174,251,237,252,210,253,22,254,71,254,221,254,228,255,6,1,163,1,156,1,149,1,244,1,83,2,32,2, +127,1,60,1,187,1,144,2,39,3,18,3,36,2,181,0,108,255,188,254,111,254,244,253,118,253,135,253,201,253,149,253, +12,253,67,252,42,251,104,250,144,250,60,251,216,251,94,252,8,253,195,253,33,254,254,253,198,253,224,253,110,254,108,255, +169,0,251,1,71,3,54,4,97,4,216,3,1,3,77,2,10,2,70,2,177,2,209,2,133,2,22,2,166,1,253,0, +249,255,190,254,170,253,22,253,224,252,169,252,95,252,20,252,220,251,228,251,24,252,30,252,2,252,69,252,34,253,64,254, +63,255,23,0,224,0,194,1,248,2,69,4,24,5,101,5,111,5,100,5,153,5,38,6,167,6,24,7,179,7,40,8, +27,8,119,7,46,6,157,4,115,3,202,2,77,2,209,1,93,1,232,0,53,0,38,255,5,254,229,252,145,251,128,250, +103,250,11,251,187,251,67,252,175,252,10,253,100,253,194,253,32,254,171,254,168,255,22,1,131,2,126,3,17,4,123,4, +195,4,203,4,190,4,236,4,50,5,42,5,245,4,228,4,173,4,239,3,237,2,30,2,129,1,194,0,193,255,209,254, +66,254,11,254,235,253,146,253,241,252,122,252,129,252,198,252,5,253,66,253,134,253,5,254,218,254,165,255,59,0,222,0, +145,1,58,2,249,2,147,3,205,3,25,4,143,4,164,4,148,4,251,4,74,5,218,4,54,4,243,3,211,3,140,3, +13,3,49,2,224,0,102,255,114,254,84,254,117,254,36,254,119,253,212,252,102,252,35,252,206,251,74,251,249,250,75,251, +40,252,217,252,170,252,255,251,2,252,204,252,70,253,28,253,7,253,103,253,22,254,234,254,151,255,195,255,128,255,35,255, +221,254,182,254,175,254,213,254,55,255,179,255,239,255,183,255,43,255,146,254,15,254,175,253,145,253,180,253,208,253,180,253, +121,253,44,253,231,252,0,253,99,253,105,253,0,253,239,252,101,253,180,253,182,253,239,253,94,254,146,254,159,254,194,254, +215,254,229,254,52,255,148,255,168,255,174,255,5,0,89,0,53,0,195,255,83,255,231,254,143,254,110,254,102,254,68,254, +29,254,13,254,205,253,15,253,18,252,124,251,153,251,14,252,94,252,92,252,17,252,151,251,33,251,221,250,208,250,240,250, +66,251,195,251,104,252,43,253,213,253,5,254,198,253,157,253,196,253,245,253,8,254,34,254,112,254,23,255,238,255,102,0, +72,0,246,255,169,255,75,255,244,254,168,254,60,254,240,253,42,254,169,254,202,254,82,254,135,253,235,252,186,252,173,252, +153,252,183,252,30,253,165,253,27,254,60,254,244,253,160,253,137,253,205,253,163,254,218,255,197,0,66,1,160,1,217,1, +250,1,43,2,22,2,165,1,130,1,203,1,3,2,63,2,167,2,220,2,213,2,162,2,215,1,177,0,52,0,103,0, +106,0,11,0,156,255,86,255,131,255,15,0,84,0,17,0,192,255,170,255,182,255,214,255,44,0,235,0,7,2,246,2, +36,3,185,2,124,2,215,2,94,3,163,3,230,3,97,4,191,4,227,4,247,4,176,4,226,3,53,3,40,3,100,3, +121,3,91,3,79,3,170,3,32,4,244,3,66,3,166,2,7,2,52,1,183,0,229,0,106,1,241,1,78,2,135,2, +190,2,169,2,255,1,76,1,32,1,93,1,248,1,215,2,109,3,184,3,47,4,131,4,98,4,73,4,66,4,239,3, +203,3,54,4,160,4,194,4,222,4,242,4,31,5,95,5,242,4,197,3,24,3,104,3,188,3,119,3,219,2,58,2, +247,1,85,2,198,2,134,2,189,1,27,1,207,0,173,0,187,0,45,1,254,1,171,2,152,2,234,1,116,1,150,1, +238,1,31,2,68,2,160,2,35,3,127,3,179,3,214,3,131,3,185,2,104,2,239,2,112,3,123,3,171,3,93,4, +7,5,238,4,47,4,140,3,26,3,111,2,247,1,66,2,227,2,77,3,107,3,54,3,228,2,149,2,226,1,236,0, +112,0,105,0,125,0,201,0,38,1,63,1,57,1,13,1,144,0,41,0,33,0,54,0,96,0,174,0,216,0,187,0, +132,0,90,0,81,0,103,0,168,0,4,1,5,1,161,0,142,0,207,0,197,0,187,0,39,1,142,1,170,1,184,1, +144,1,51,1,26,1,72,1,124,1,178,1,185,1,97,1,233,0,154,0,117,0,73,0,213,255,67,255,243,254,242,254, +53,255,141,255,82,255,123,254,9,254,73,254,101,254,231,253,52,253,208,252,206,252,203,252,155,252,107,252,54,252,249,251, +249,251,12,252,233,251,228,251,36,252,78,252,116,252,185,252,201,252,176,252,200,252,241,252,2,253,252,252,154,252,250,251, +190,251,230,251,212,251,94,251,215,250,120,250,46,250,209,249,117,249,82,249,114,249,146,249,125,249,124,249,255,249,148,250, +139,250,96,250,190,250,5,251,114,250,106,249,230,248,133,249,198,250,90,251,233,250,77,250,236,249,179,249,184,249,190,249, +148,249,156,249,197,249,181,249,233,249,173,250,70,251,84,251,37,251,186,250,252,249,42,249,152,248,176,248,143,249,119,250, +149,250,231,249,247,248,82,248,71,248,166,248,251,248,249,248,137,248,243,247,228,247,188,248,14,250,30,251,120,251,77,251, +43,251,100,251,3,252,37,253,200,254,127,0,192,1,52,2,7,2,36,2,113,3,221,5,184,8,68,11,154,12,81,12, +63,11,95,10,135,9,37,8,100,6,34,5,49,5,127,6,61,8,59,10,207,12,235,14,44,14,111,9,133,2,47,253, +66,252,128,255,198,4,112,10,255,14,79,16,32,13,77,6,69,254,193,248,89,249,70,0,19,10,227,18,92,24,31,25, +222,20,50,13,68,5,73,0,27,0,249,4,143,13,131,22,101,27,185,25,140,18,81,9,50,2,229,255,251,1,40,6, +187,10,64,14,182,14,250,10,25,4,11,253,104,249,180,250,155,254,70,1,225,0,63,254,127,251,62,250,7,250,109,249, +183,248,91,249,69,251,243,252,84,253,76,252,229,250,57,251,45,254,143,1,107,2,181,0,40,255,231,255,63,2,163,3, +160,2,142,0,191,255,146,0,140,1,135,1,132,0,77,255,4,255,179,255,92,255,122,252,152,248,116,246,252,246,98,249, +11,252,226,252,255,250,226,247,91,245,99,243,130,241,173,240,108,242,230,246,254,251,112,254,208,252,32,249,87,246,134,245, +92,246,120,248,88,251,133,254,109,1,98,2,2,0,9,252,196,249,15,250,149,251,78,253,184,254,179,255,166,0,1,1, +63,255,218,251,107,249,83,249,9,251,147,253,137,255,184,255,211,254,53,254,148,253,20,252,36,250,237,248,110,249,3,252, +72,255,156,0,9,255,101,252,244,250,227,250,178,250,191,249,120,249,54,251,245,253,116,255,194,254,170,252,114,250,9,249, +200,248,139,249,241,250,137,252,19,254,125,255,101,0,63,0,34,255,251,253,23,254,58,0,82,3,254,4,158,4,4,4, +36,4,207,3,120,2,99,1,238,1,34,4,106,6,178,6,236,4,45,3,136,2,75,2,35,2,93,2,183,2,198,2, +72,2,226,0,217,254,41,253,85,252,142,252,33,254,53,0,20,1,126,0,137,255,196,254,127,254,20,255,237,255,117,0, +127,1,147,3,164,5,203,6,65,7,103,7,179,7,138,8,86,9,85,9,22,9,119,9,96,10,124,11,80,12,170,11, +44,9,112,6,209,4,232,3,71,3,78,3,184,3,158,3,200,2,60,1,144,254,46,251,201,248,136,248,233,249,170,251, +237,252,101,253,38,253,86,252,106,251,84,251,131,252,49,254,189,255,113,1,32,3,232,3,215,3,208,3,23,4,166,4, +175,5,172,6,194,6,65,6,253,5,202,5,79,5,232,4,180,4,62,4,92,3,42,2,200,0,178,255,65,255,213,254, +230,253,247,252,123,252,24,252,172,251,140,251,170,251,187,251,205,251,246,251,21,252,31,252,45,252,110,252,47,253,121,254, +176,255,50,0,14,0,206,255,244,255,172,0,147,1,16,2,10,2,240,1,238,1,183,1,16,1,57,0,164,255,107,255, +77,255,35,255,235,254,103,254,128,253,184,252,120,252,91,252,243,251,115,251,25,251,210,250,193,250,10,251,92,251,123,251, +185,251,61,252,170,252,213,252,17,253,135,253,235,253,250,253,213,253,220,253,45,254,143,254,214,254,19,255,75,255,98,255, +64,255,200,254,239,253,15,253,174,252,237,252,125,253,1,254,25,254,148,253,201,252,69,252,29,252,16,252,22,252,96,252, +25,253,53,254,47,255,93,255,215,254,95,254,102,254,202,254,71,255,150,255,175,255,23,0,27,1,236,1,143,1,69,0, +33,255,216,254,98,255,8,0,224,255,228,254,1,254,184,253,160,253,103,253,29,253,188,252,81,252,35,252,37,252,252,251, +195,251,224,251,79,252,175,252,207,252,200,252,234,252,121,253,59,254,151,254,91,254,26,254,145,254,208,255,7,1,105,1, +31,1,236,0,22,1,74,1,85,1,67,1,21,1,226,0,230,0,38,1,91,1,80,1,11,1,180,0,102,0,14,0, +138,255,254,254,198,254,20,255,184,255,28,0,189,255,228,254,124,254,228,254,142,255,214,255,178,255,127,255,174,255,95,0, +25,1,79,1,15,1,221,0,23,1,144,1,197,1,165,1,188,1,56,2,127,2,82,2,45,2,69,2,83,2,80,2, +65,2,237,1,118,1,80,1,130,1,194,1,245,1,9,2,241,1,233,1,245,1,157,1,211,0,92,0,218,0,253,1, +222,2,244,2,134,2,44,2,9,2,229,1,180,1,159,1,208,1,84,2,244,2,70,3,49,3,251,2,214,2,187,2, +143,2,69,2,251,1,252,1,108,2,39,3,223,3,52,4,246,3,109,3,14,3,252,2,14,3,16,3,17,3,125,3, +109,4,33,5,230,4,31,4,151,3,115,3,119,3,132,3,161,3,237,3,124,4,11,5,62,5,2,5,114,4,183,3, +37,3,247,2,10,3,14,3,220,2,137,2,72,2,37,2,248,1,213,1,248,1,67,2,113,2,146,2,172,2,154,2, +158,2,23,3,187,3,5,4,6,4,21,4,66,4,113,4,147,4,171,4,196,4,200,4,143,4,31,4,168,3,84,3, +72,3,113,3,115,3,39,3,188,2,65,2,201,1,182,1,36,2,126,2,78,2,208,1,108,1,45,1,5,1,2,1, +52,1,142,1,231,1,9,2,195,1,25,1,111,0,72,0,182,0,81,1,194,1,242,1,219,1,139,1,71,1,45,1, +254,0,166,0,118,0,153,0,202,0,189,0,94,0,208,255,90,255,36,255,18,255,1,255,242,254,2,255,102,255,254,255, +42,0,134,255,125,254,191,253,173,253,72,254,19,255,125,255,154,255,191,255,196,255,104,255,205,254,69,254,29,254,101,254, +184,254,194,254,159,254,75,254,163,253,4,253,200,252,179,252,148,252,144,252,157,252,143,252,106,252,44,252,178,251,255,250, +67,250,186,249,134,249,151,249,231,249,121,250,247,250,242,250,137,250,36,250,249,249,25,250,107,250,193,250,20,251,82,251, +89,251,103,251,178,251,214,251,153,251,92,251,60,251,29,251,48,251,72,251,244,250,139,250,137,250,161,250,145,250,131,250, +53,250,131,249,243,248,221,248,32,249,147,249,201,249,134,249,126,249,37,250,177,250,109,250,133,249,111,248,211,247,34,248, +206,248,27,249,46,249,74,249,95,249,166,249,21,250,11,250,166,249,181,249,21,250,51,250,118,250,46,251,192,251,207,251, +154,251,104,251,143,251,15,252,114,252,190,252,78,253,248,253,107,254,168,254,228,254,161,255,21,1,164,2,216,3,209,4, +135,5,228,5,50,6,161,6,242,6,185,6,9,6,176,5,34,6,238,6,200,7,12,9,0,11,24,13,230,13,137,12, +234,9,145,7,90,6,217,6,19,9,8,12,85,14,229,14,110,13,146,10,56,7,153,4,48,4,11,6,214,8,183,11, +234,13,62,14,156,12,225,9,198,6,122,4,105,4,164,6,241,9,225,12,88,14,182,13,222,10,219,6,191,3,175,2, +78,3,13,5,33,7,102,8,82,8,220,6,49,4,100,1,186,255,127,255,63,0,86,1,27,2,21,2,51,1,7,0, +23,255,23,254,29,253,248,252,146,253,123,254,212,255,184,0,19,0,0,255,202,254,0,255,91,255,17,0,169,0,232,0, +242,0,89,0,24,255,50,254,44,254,111,254,94,254,24,254,220,253,100,253,162,252,214,251,183,250,72,249,136,248,209,248, +144,249,138,250,108,251,165,251,65,251,112,250,52,249,19,248,141,247,154,247,81,248,211,249,214,251,151,253,34,254,64,253, +192,251,119,250,255,249,167,250,216,251,14,253,70,254,167,254,124,253,214,251,163,250,148,249,214,248,223,248,83,249,238,249, +175,250,16,251,172,250,222,249,19,249,121,248,101,248,62,249,196,250,35,252,248,252,59,253,214,252,86,252,141,252,81,253, +44,254,66,255,108,0,47,1,111,1,47,1,168,0,110,0,135,0,129,0,111,0,117,0,65,0,204,255,107,255,14,255, +104,254,121,253,140,252,225,251,138,251,107,251,33,251,82,250,60,249,124,248,87,248,156,248,11,249,168,249,134,250,68,251, +111,251,92,251,166,251,65,252,11,253,61,254,202,255,118,1,29,3,79,4,170,4,164,4,188,4,187,4,167,4,3,5, +208,5,168,6,114,7,233,7,161,7,222,6,20,6,32,5,6,4,71,3,237,2,171,2,145,2,132,2,26,2,110,1, +215,0,51,0,118,255,4,255,227,254,192,254,156,254,132,254,77,254,42,254,135,254,74,255,22,0,213,0,110,1,183,1, +225,1,56,2,174,2,52,3,245,3,220,4,172,5,104,6,9,7,55,7,243,6,204,6,237,6,218,6,104,6,23,6, +47,6,97,6,107,6,88,6,31,6,165,5,244,4,33,4,40,3,21,2,18,1,78,0,1,0,34,0,56,0,201,255, +205,254,132,253,88,252,193,251,172,251,145,251,133,251,6,252,184,252,207,252,126,252,126,252,250,252,216,253,254,254,241,255, +81,0,105,0,183,0,120,1,170,2,226,3,157,4,9,5,157,5,30,6,36,6,243,5,8,6,94,6,171,6,192,6, +152,6,81,6,25,6,244,5,178,5,40,5,86,4,63,3,227,1,135,0,154,255,40,255,217,254,127,254,0,254,28,253, +212,251,153,250,203,249,144,249,199,249,1,250,252,249,2,250,55,250,90,250,145,250,58,251,30,252,227,252,162,253,100,254, +255,254,147,255,83,0,39,1,252,1,179,2,234,2,143,2,29,2,241,1,1,2,31,2,4,2,121,1,155,0,162,255, +186,254,8,254,101,253,111,252,56,251,54,250,127,249,204,248,21,248,153,247,145,247,236,247,61,248,58,248,5,248,211,247, +220,247,133,248,202,249,20,251,19,252,254,252,1,254,253,254,174,255,253,255,54,0,171,0,79,1,246,1,146,2,13,3, +66,3,43,3,214,2,44,2,59,1,107,0,230,255,107,255,233,254,102,254,182,253,230,252,33,252,113,251,22,251,44,251, +76,251,52,251,229,250,76,250,206,249,0,250,207,250,225,251,252,252,223,253,126,254,239,254,20,255,247,254,243,254,85,255, +33,0,254,0,145,1,194,1,121,1,218,0,98,0,255,255,101,255,223,254,139,254,33,254,197,253,150,253,85,253,251,252, +135,252,219,251,47,251,224,250,8,251,90,251,98,251,78,251,169,251,83,252,1,253,200,253,122,254,241,254,102,255,201,255, +6,0,93,0,210,0,88,1,3,2,153,2,229,2,232,2,106,2,154,1,17,1,213,0,156,0,94,0,14,0,171,255, +62,255,191,254,117,254,130,254,93,254,184,253,242,252,135,252,217,252,203,253,206,254,176,255,123,0,23,1,144,1,214,1, +244,1,138,2,186,3,216,4,199,5,169,6,13,7,221,6,133,6,64,6,51,6,87,6,100,6,66,6,248,5,141,5, +32,5,162,4,255,3,80,3,115,2,123,1,240,0,212,0,181,0,106,0,195,255,231,254,136,254,177,254,226,254,41,255, +148,255,224,255,16,0,61,0,93,0,145,0,17,1,13,2,124,3,244,4,23,6,196,6,240,6,239,6,29,7,78,7, +86,7,63,7,242,6,144,6,95,6,66,6,25,6,223,5,94,5,142,4,187,3,47,3,3,3,213,2,54,2,114,1, +225,0,75,0,176,255,53,255,177,254,95,254,204,254,184,255,66,0,23,0,174,255,143,255,198,255,64,0,8,1,223,1, +141,2,63,3,229,3,53,4,125,4,2,5,59,5,243,4,213,4,43,5,120,5,124,5,102,5,84,5,75,5,53,5, +212,4,49,4,148,3,22,3,238,2,123,3,99,4,195,4,107,4,199,3,48,3,230,2,241,2,254,2,251,2,7,3, +244,2,179,2,134,2,121,2,117,2,149,2,219,2,26,3,36,3,200,2,50,2,231,1,237,1,248,1,52,2,162,2, +162,2,8,2,106,1,56,1,152,1,65,2,111,2,30,2,36,2,110,2,63,2,226,1,216,1,215,1,207,1,254,1, +16,2,234,1,7,2,79,2,96,2,107,2,103,2,237,1,18,1,28,0,53,255,205,254,3,255,66,255,42,255,154,254, +119,253,74,252,177,251,80,251,213,250,173,250,223,250,17,251,72,251,98,251,37,251,217,250,158,250,79,250,75,250,205,250, +118,251,50,252,14,253,146,253,167,253,168,253,132,253,76,253,109,253,150,253,74,253,7,253,75,253,189,253,16,254,100,254, +156,254,120,254,10,254,141,253,24,253,174,252,113,252,90,252,248,251,8,251,251,249,90,249,40,249,24,249,233,248,136,248, +247,247,37,247,69,246,217,245,234,245,247,245,206,245,169,245,196,245,85,246,64,247,252,247,61,248,15,248,165,247,145,247, +53,248,239,248,14,249,220,248,180,248,118,248,47,248,31,248,78,248,160,248,226,248,219,248,149,248,86,248,61,248,55,248, +64,248,157,248,135,249,162,250,80,251,105,251,32,251,214,250,28,251,42,252,158,253,3,255,24,0,201,0,98,1,43,2, +253,2,192,3,140,4,58,5,177,5,16,6,35,6,181,5,24,5,159,4,70,4,44,4,149,4,144,5,11,7,248,8, +7,11,48,12,233,10,222,6,5,2,24,255,130,255,205,2,10,7,20,10,191,10,216,8,16,5,73,1,77,255,154,255, +50,2,175,6,90,11,107,14,97,15,37,14,47,11,91,8,64,7,248,7,97,10,23,14,113,17,211,18,237,17,13,15, +11,11,161,7,120,6,12,8,104,11,107,14,41,15,61,13,140,9,101,5,28,2,138,0,203,0,106,2,69,4,230,4, +179,3,51,1,78,254,15,252,79,251,207,251,144,252,22,253,112,253,185,253,35,254,181,254,232,254,121,254,2,254,24,254, +146,254,252,254,24,255,16,255,107,255,104,0,111,1,209,1,169,1,84,1,191,0,239,255,84,255,16,255,203,254,90,254, +186,253,206,252,193,251,235,250,84,250,40,250,204,250,211,251,22,252,15,251,218,248,221,245,97,243,228,242,116,244,225,246, +227,248,117,249,119,248,11,247,84,246,107,246,253,246,2,248,117,249,249,250,221,251,147,251,58,250,186,248,83,248,169,249, +244,251,181,253,48,254,185,253,11,253,156,252,37,252,84,251,4,251,41,252,46,254,212,255,109,0,120,255,29,253,218,250, +241,249,70,250,87,251,173,252,180,253,59,254,62,254,111,253,9,252,209,250,254,249,182,249,107,250,120,251,155,251,24,251, +255,250,37,251,254,250,203,250,204,250,210,250,225,250,34,251,136,251,225,251,249,251,188,251,82,251,11,251,58,251,230,251, +176,252,122,253,151,254,239,255,211,0,251,0,191,0,134,0,165,0,71,1,80,2,159,3,11,5,29,6,102,6,237,5, +245,4,210,3,226,2,104,2,137,2,86,3,117,4,77,5,138,5,35,5,43,4,248,2,205,1,159,0,152,255,43,255, +125,255,71,0,5,1,49,1,218,0,138,0,104,0,88,0,136,0,252,0,132,1,88,2,141,3,158,4,101,5,54,6, +229,6,73,7,222,7,163,8,239,8,201,8,226,8,89,9,189,9,184,9,77,9,240,8,21,9,123,9,95,9,90,8, +187,6,31,5,219,3,214,2,12,2,172,1,159,1,118,1,205,0,168,255,110,254,123,253,208,252,106,252,93,252,92,252, +46,252,96,252,117,253,253,254,72,0,14,1,60,1,241,0,164,0,175,0,16,1,183,1,167,2,201,3,203,4,98,5, +197,5,70,6,162,6,104,6,169,5,148,4,61,3,31,2,196,1,244,1,21,2,224,1,66,1,65,0,30,255,28,254, +68,253,129,252,201,251,58,251,6,251,49,251,145,251,12,252,129,252,153,252,16,252,26,251,97,250,114,250,76,251,127,252, +164,253,111,254,170,254,123,254,88,254,146,254,31,255,187,255,11,0,227,255,125,255,58,255,63,255,117,255,192,255,236,255, +177,255,10,255,57,254,128,253,7,253,224,252,218,252,161,252,46,252,202,251,193,251,35,252,164,252,204,252,122,252,240,251, +74,251,164,250,110,250,231,250,162,251,47,252,150,252,216,252,203,252,137,252,101,252,98,252,84,252,70,252,94,252,144,252, +205,252,30,253,111,253,143,253,113,253,43,253,232,252,230,252,50,253,130,253,164,253,194,253,253,253,51,254,69,254,63,254, +46,254,34,254,52,254,101,254,174,254,24,255,142,255,217,255,241,255,250,255,244,255,205,255,162,255,149,255,138,255,97,255, +45,255,9,255,249,254,247,254,2,255,249,254,185,254,84,254,9,254,7,254,43,254,40,254,246,253,216,253,230,253,246,253, +8,254,53,254,93,254,95,254,77,254,59,254,51,254,87,254,201,254,109,255,247,255,56,0,52,0,12,0,245,255,19,0, +70,0,110,0,157,0,208,0,228,0,241,0,32,1,79,1,76,1,26,1,232,0,204,0,163,0,108,0,93,0,114,0, +124,0,124,0,106,0,56,0,30,0,52,0,64,0,58,0,34,0,203,255,75,255,223,254,153,254,157,254,243,254,81,255, +160,255,234,255,243,255,183,255,139,255,133,255,165,255,14,0,171,0,50,1,119,1,143,1,197,1,41,2,79,2,32,2, +23,2,113,2,223,2,12,3,6,3,49,3,168,3,7,4,8,4,216,3,201,3,9,4,101,4,130,4,106,4,61,4, +242,3,202,3,240,3,12,4,247,3,202,3,77,3,147,2,36,2,3,2,236,1,253,1,38,2,26,2,223,1,174,1, +181,1,248,1,47,2,78,2,134,2,159,2,138,2,195,2,57,3,81,3,40,3,48,3,95,3,168,3,44,4,188,4, +251,4,221,4,167,4,140,4,120,4,104,4,124,4,152,4,166,4,194,4,194,4,89,4,180,3,44,3,219,2,201,2, +225,2,251,2,21,3,29,3,237,2,131,2,235,1,89,1,57,1,127,1,179,1,204,1,234,1,233,1,202,1,167,1, +109,1,68,1,111,1,216,1,86,2,201,2,1,3,21,3,59,3,87,3,98,3,120,3,117,3,109,3,165,3,227,3, +222,3,198,3,159,3,83,3,30,3,15,3,254,2,246,2,244,2,217,2,211,2,241,2,237,2,196,2,164,2,137,2, +106,2,76,2,32,2,243,1,213,1,164,1,54,1,154,0,20,0,201,255,162,255,164,255,225,255,32,0,63,0,82,0, +55,0,251,255,16,0,78,0,40,0,209,255,162,255,112,255,65,255,49,255,24,255,54,255,169,255,193,255,91,255,33,255, +28,255,247,254,213,254,196,254,186,254,243,254,87,255,125,255,79,255,237,254,146,254,144,254,223,254,50,255,101,255,78,255, +229,254,113,254,7,254,141,253,33,253,195,252,83,252,9,252,55,252,181,252,27,253,46,253,32,253,27,253,206,252,249,251, +231,250,200,249,141,248,125,247,3,247,66,247,49,248,202,249,244,251,30,254,9,255,210,253,9,251,77,248,36,247,15,248, +90,250,4,253,34,255,163,255,67,254,240,251,120,249,88,247,125,246,88,247,92,249,227,251,31,254,22,255,151,254,248,252, +125,250,6,248,195,246,11,247,130,248,136,250,33,252,144,252,176,251,188,249,179,247,20,247,57,248,22,250,174,251,134,252, +43,252,189,250,83,249,173,248,154,248,22,249,60,250,76,251,156,251,113,251,4,251,98,250,229,249,137,249,54,249,154,249, +237,250,71,252,62,253,14,254,150,254,195,254,169,254,41,254,177,253,17,254,53,255,136,0,186,1,125,2,191,2,242,2, +94,3,17,4,10,5,239,5,129,6,14,7,147,7,197,7,225,7,22,8,46,8,83,8,208,8,132,9,115,10,162,11, +149,12,8,13,4,13,6,12,255,9,72,8,222,7,110,8,155,9,252,10,161,11,49,11,51,10,215,8,67,7,49,6, +242,5,35,6,153,6,35,7,25,7,39,6,177,4,33,3,179,1,192,0,135,0,241,0,191,1,158,2,41,3,43,3, +236,2,225,2,72,3,64,4,199,5,81,7,28,8,250,7,40,7,243,5,22,5,49,5,238,5,163,6,64,7,193,7, +212,7,107,7,198,6,241,5,251,4,26,4,78,3,81,2,27,1,244,255,250,254,1,254,15,253,67,252,104,251,84,250, +69,249,127,248,46,248,83,248,106,248,240,247,88,247,85,247,220,247,137,248,32,249,140,249,254,249,143,250,237,250,248,250, +11,251,110,251,72,252,138,253,192,254,165,255,81,0,152,0,105,0,58,0,36,0,207,255,78,255,208,254,89,254,62,254, +162,254,219,254,102,254,120,253,104,252,86,251,37,250,195,248,172,247,90,247,122,247,133,247,99,247,18,247,191,246,216,246, +108,247,51,248,26,249,4,250,166,250,230,250,251,250,95,251,122,252,16,254,128,255,137,0,49,1,109,1,86,1,35,1, +237,0,205,0,225,0,38,1,125,1,197,1,232,1,207,1,94,1,160,0,191,255,159,254,70,253,99,252,115,252,237,252, +24,253,218,252,107,252,251,251,156,251,97,251,120,251,191,251,172,251,27,251,117,250,5,250,247,249,86,250,195,250,19,251, +138,251,4,252,58,252,134,252,11,253,79,253,57,253,15,253,227,252,225,252,56,253,230,253,18,255,150,0,143,1,138,1, +29,1,210,0,216,0,72,1,236,1,138,2,65,3,6,4,171,4,62,5,162,5,137,5,28,5,161,4,29,4,208,3, +247,3,65,4,102,4,111,4,60,4,208,3,128,3,69,3,213,2,48,2,87,1,56,0,17,255,55,254,191,253,197,253, +94,254,63,255,228,255,234,255,91,255,196,254,162,254,241,254,132,255,70,0,39,1,47,2,97,3,135,4,122,5,47,6, +134,6,159,6,217,6,71,7,187,7,42,8,150,8,241,8,37,9,10,9,146,8,200,7,169,6,98,5,76,4,90,3, +88,2,115,1,202,0,53,0,175,255,40,255,87,254,39,253,215,251,185,250,29,250,250,249,251,249,25,250,121,250,239,250, +98,251,255,251,217,252,224,253,226,254,172,255,85,0,17,1,224,1,243,2,118,4,237,5,215,6,88,7,174,7,240,7, +97,8,244,8,50,9,239,8,95,8,184,7,32,7,151,6,255,5,79,5,110,4,63,3,224,1,116,0,4,255,194,253, +207,252,21,252,136,251,26,251,167,250,70,250,25,250,255,249,211,249,116,249,240,248,197,248,75,249,46,250,37,251,38,252, +226,252,53,253,143,253,57,254,5,255,197,255,86,0,166,0,203,0,233,0,28,1,106,1,166,1,180,1,151,1,53,1, +154,0,25,0,194,255,109,255,35,255,210,254,97,254,253,253,163,253,26,253,136,252,28,252,167,251,44,251,213,250,139,250, +78,250,71,250,92,250,100,250,108,250,121,250,145,250,211,250,62,251,154,251,195,251,192,251,201,251,15,252,123,252,216,252, +18,253,44,253,58,253,87,253,134,253,197,253,33,254,139,254,224,254,15,255,31,255,21,255,253,254,230,254,218,254,227,254, +23,255,118,255,222,255,34,0,18,0,144,255,214,254,90,254,73,254,125,254,217,254,42,255,39,255,226,254,155,254,76,254, +246,253,187,253,130,253,43,253,228,252,207,252,201,252,195,252,185,252,141,252,56,252,226,251,178,251,182,251,215,251,253,251, +55,252,134,252,197,252,1,253,105,253,244,253,110,254,196,254,6,255,78,255,178,255,56,0,218,0,97,1,121,1,35,1, +205,0,161,0,115,0,78,0,78,0,77,0,61,0,57,0,44,0,11,0,0,0,13,0,9,0,236,255,158,255,1,255, +91,254,254,253,217,253,196,253,209,253,13,254,115,254,238,254,88,255,139,255,145,255,145,255,170,255,226,255,65,0,217,0, +166,1,135,2,114,3,86,4,248,4,77,5,132,5,155,5,134,5,122,5,133,5,122,5,105,5,112,5,119,5,95,5, +12,5,114,4,235,3,183,3,127,3,40,3,10,3,0,3,158,2,26,2,186,1,101,1,56,1,87,1,123,1,122,1, +139,1,201,1,39,2,147,2,230,2,36,3,99,3,102,3,25,3,250,2,86,3,248,3,153,4,229,4,181,4,108,4, +91,4,84,4,86,4,140,4,196,4,208,4,201,4,171,4,114,4,69,4,253,3,106,3,226,2,161,2,104,2,40,2, +18,2,25,2,27,2,10,2,214,1,158,1,137,1,111,1,51,1,9,1,247,0,205,0,183,0,234,0,72,1,162,1, +219,1,203,1,133,1,90,1,106,1,150,1,189,1,203,1,200,1,203,1,212,1,234,1,43,2,123,2,164,2,189,2, +232,2,251,2,224,2,212,2,11,3,110,3,209,3,34,4,99,4,157,4,220,4,34,5,97,5,137,5,152,5,137,5, +86,5,54,5,86,5,119,5,80,5,249,4,150,4,41,4,196,3,99,3,219,2,42,2,121,1,222,0,103,0,24,0, +219,255,147,255,35,255,144,254,39,254,3,254,228,253,221,253,55,254,177,254,243,254,49,255,137,255,187,255,215,255,35,0, +160,0,38,1,155,1,238,1,44,2,100,2,133,2,137,2,103,2,32,2,234,1,218,1,175,1,96,1,57,1,57,1, +36,1,235,0,138,0,6,0,128,255,253,254,128,254,25,254,178,253,63,253,254,252,232,252,168,252,67,252,255,251,249,251, +27,252,34,252,218,251,138,251,104,251,50,251,212,250,128,250,46,250,249,249,21,250,52,250,32,250,93,250,54,251,132,252, +102,254,193,0,149,2,215,2,76,1,156,254,31,252,5,251,146,251,62,253,254,254,198,255,103,255,67,254,113,252,88,250, +223,248,86,248,125,248,94,249,203,250,6,252,110,252,211,251,123,250,14,249,224,247,243,246,217,246,253,247,136,249,102,250, +68,250,48,249,187,247,216,246,184,246,28,247,51,248,163,249,52,250,144,249,125,248,144,247,8,247,38,247,218,247,192,248, +93,249,80,249,196,248,78,248,29,248,13,248,47,248,145,248,251,248,68,249,124,249,198,249,46,250,146,250,213,250,23,251, +143,251,72,252,43,253,15,254,173,254,219,254,204,254,225,254,110,255,157,0,49,2,147,3,108,4,194,4,185,4,180,4, +251,4,84,5,138,5,163,5,122,5,63,5,129,5,40,6,189,6,73,7,194,7,197,7,42,7,235,5,33,4,160,2, +112,2,156,3,62,5,157,6,122,7,142,7,189,6,176,5,38,5,34,5,136,5,111,6,152,7,166,8,92,9,128,9, +96,9,160,9,81,10,48,11,45,12,14,13,152,13,212,13,192,13,122,13,83,13,73,13,57,13,43,13,16,13,214,12, +111,12,140,11,37,10,183,8,156,7,227,6,107,6,217,5,5,5,19,4,1,3,221,1,238,0,67,0,204,255,107,255, +212,254,244,253,252,252,247,251,22,251,198,250,15,251,178,251,104,252,209,252,220,252,213,252,212,252,228,252,47,253,142,253, +197,253,223,253,9,254,121,254,51,255,229,255,86,0,145,0,148,0,130,0,125,0,92,0,20,0,199,255,94,255,211,254, +73,254,171,253,245,252,66,252,106,251,99,250,115,249,197,248,121,248,156,248,225,248,7,249,20,249,227,248,76,248,113,247, +183,246,125,246,161,246,188,246,230,246,66,247,108,247,61,247,250,246,193,246,187,246,35,247,240,247,5,249,39,250,229,250, +73,251,166,251,220,251,232,251,56,252,196,252,35,253,73,253,84,253,75,253,87,253,157,253,18,254,134,254,194,254,170,254, +75,254,204,253,95,253,27,253,245,252,200,252,101,252,203,251,74,251,24,251,28,251,38,251,3,251,171,250,84,250,32,250, +252,249,222,249,200,249,182,249,171,249,158,249,152,249,183,249,222,249,223,249,220,249,250,249,51,250,154,250,76,251,59,252, +75,253,70,254,254,254,164,255,90,0,232,0,117,1,116,2,158,3,78,4,130,4,149,4,172,4,228,4,71,5,170,5, +250,5,60,6,84,6,62,6,31,6,227,5,104,5,200,4,25,4,105,3,231,2,153,2,94,2,57,2,31,2,211,1, +100,1,27,1,255,0,236,0,243,0,59,1,176,1,5,2,14,2,17,2,105,2,10,3,194,3,124,4,17,5,109,5, +204,5,88,6,5,7,204,7,144,8,30,9,110,9,122,9,40,9,174,8,82,8,249,7,159,7,124,7,108,7,37,7, +188,6,59,6,117,5,150,4,237,3,99,3,191,2,6,2,105,1,13,1,209,0,105,0,222,255,119,255,68,255,48,255, +53,255,56,255,49,255,71,255,119,255,161,255,218,255,62,0,184,0,17,1,42,1,56,1,151,1,31,2,115,2,187,2, +39,3,110,3,118,3,128,3,119,3,65,3,33,3,36,3,247,2,136,2,16,2,169,1,68,1,208,0,93,0,9,0, +180,255,59,255,221,254,177,254,107,254,9,254,200,253,133,253,32,253,227,252,234,252,247,252,237,252,222,252,208,252,189,252, +164,252,151,252,176,252,224,252,4,253,26,253,27,253,14,253,46,253,125,253,178,253,198,253,234,253,19,254,64,254,132,254, +181,254,200,254,255,254,67,255,73,255,63,255,82,255,68,255,25,255,10,255,223,254,98,254,218,253,127,253,55,253,248,252, +185,252,93,252,253,251,183,251,117,251,36,251,210,250,130,250,47,250,221,249,149,249,109,249,107,249,116,249,125,249,157,249, +226,249,72,250,165,250,219,250,39,251,182,251,35,252,57,252,87,252,167,252,17,253,181,253,97,254,170,254,226,254,106,255, +204,255,199,255,209,255,246,255,242,255,1,0,67,0,100,0,93,0,80,0,29,0,199,255,138,255,102,255,59,255,4,255, +201,254,170,254,156,254,89,254,232,253,169,253,156,253,116,253,57,253,26,253,255,252,206,252,182,252,215,252,245,252,228,252, +215,252,240,252,5,253,5,253,4,253,0,253,38,253,179,253,116,254,15,255,137,255,235,255,38,0,81,0,133,0,197,0, +30,1,101,1,82,1,23,1,4,1,243,0,195,0,176,0,207,0,251,0,15,1,236,0,152,0,57,0,223,255,165,255, +166,255,185,255,227,255,88,0,212,0,240,0,198,0,132,0,57,0,52,0,123,0,172,0,191,0,195,0,111,0,243,255, +202,255,213,255,232,255,31,0,62,0,33,0,49,0,93,0,80,0,100,0,202,0,10,1,40,1,113,1,187,1,21,2, +199,2,128,3,243,3,83,4,134,4,123,4,173,4,50,5,131,5,140,5,152,5,170,5,168,5,124,5,38,5,237,4, +235,4,203,4,128,4,78,4,36,4,225,3,162,3,92,3,14,3,226,2,158,2,8,2,126,1,65,1,40,1,31,1, +11,1,220,0,213,0,232,0,178,0,131,0,198,0,45,1,141,1,37,2,202,2,40,3,93,3,169,3,19,4,99,4, +118,4,145,4,230,4,88,5,219,5,72,6,92,6,59,6,8,6,148,5,24,5,243,4,11,5,66,5,87,5,232,4, +59,4,189,3,36,3,109,2,34,2,42,2,7,2,169,1,65,1,1,1,0,1,33,1,73,1,78,1,14,1,224,0, +15,1,88,1,156,1,238,1,41,2,75,2,111,2,124,2,137,2,199,2,18,3,85,3,148,3,154,3,98,3,57,3, +62,3,113,3,197,3,0,4,6,4,228,3,147,3,57,3,30,3,51,3,64,3,55,3,24,3,218,2,104,2,209,1, +100,1,68,1,37,1,182,0,2,0,107,255,70,255,111,255,129,255,105,255,71,255,37,255,13,255,251,254,212,254,164,254, +152,254,198,254,14,255,65,255,111,255,188,255,251,255,248,255,193,255,107,255,34,255,22,255,36,255,16,255,197,254,76,254, +248,253,246,253,239,253,200,253,192,253,164,253,74,253,253,252,189,252,124,252,140,252,220,252,19,253,37,253,240,252,119,252, +71,252,113,252,115,252,82,252,94,252,148,252,220,252,18,253,40,253,69,253,97,253,88,253,66,253,52,253,26,253,227,252, +106,252,146,251,100,250,11,249,53,248,159,248,40,250,93,252,207,254,88,0,12,0,112,254,111,252,158,250,161,249,166,249, +68,250,67,251,108,252,65,253,132,253,0,253,134,251,166,249,104,248,101,248,163,249,155,251,126,253,221,254,123,255,225,254, +48,253,115,251,117,250,106,250,69,251,94,252,185,252,56,252,88,251,80,250,143,249,179,249,115,250,26,251,132,251,154,251, +15,251,47,250,152,249,129,249,172,249,139,249,219,248,48,248,15,248,92,248,3,249,209,249,19,250,191,249,146,249,202,249, +58,250,6,251,42,252,68,253,37,254,190,254,1,255,19,255,34,255,69,255,135,255,187,255,172,255,152,255,231,255,198,0, +45,2,192,3,249,4,180,5,15,6,41,6,63,6,104,6,131,6,205,6,124,7,24,8,65,8,82,8,169,8,82,9, +83,10,105,11,250,11,162,11,118,10,244,8,185,7,20,7,1,7,102,7,235,7,13,8,148,7,166,6,159,5,234,4, +161,4,176,4,27,5,169,5,224,5,164,5,20,5,55,4,102,3,26,3,28,3,252,2,226,2,17,3,125,3,6,4, +116,4,138,4,117,4,144,4,226,4,111,5,100,6,146,7,61,8,231,7,218,6,204,5,74,5,146,5,131,6,145,7, +33,8,3,8,104,7,155,6,200,5,246,4,52,4,172,3,70,3,147,2,83,1,212,255,144,254,175,253,6,253,92,252, +144,251,162,250,173,249,237,248,153,248,180,248,236,248,208,248,71,248,190,247,153,247,221,247,103,248,37,249,227,249,93,250, +149,250,223,250,115,251,39,252,193,252,102,253,77,254,88,255,71,0,5,1,132,1,159,1,86,1,211,0,49,0,120,255, +220,254,165,254,200,254,245,254,247,254,164,254,206,253,159,252,139,251,215,250,146,250,178,250,225,250,157,250,193,249,134,248, +76,247,124,246,90,246,225,246,252,247,117,249,214,250,191,251,37,252,18,252,185,251,151,251,4,252,231,252,5,254,46,255, +28,0,159,0,213,0,235,0,225,0,152,0,22,0,184,255,234,255,150,0,61,1,128,1,57,1,137,0,227,255,125,255, +23,255,146,254,1,254,93,253,180,252,57,252,225,251,165,251,160,251,172,251,155,251,135,251,109,251,70,251,85,251,152,251, +194,251,213,251,200,251,87,251,188,250,115,250,144,250,29,251,35,252,49,253,205,253,231,253,151,253,49,253,32,253,105,253, +238,253,187,254,152,255,49,0,133,0,165,0,145,0,118,0,135,0,208,0,82,1,253,1,180,2,101,3,14,4,179,4, +67,5,148,5,169,5,192,5,239,5,22,6,25,6,246,5,189,5,93,5,184,4,45,4,58,4,151,4,155,4,41,4, +92,3,69,2,20,1,246,255,38,255,209,254,163,254,62,254,255,253,41,254,90,254,107,254,146,254,196,254,246,254,51,255, +101,255,176,255,74,0,10,1,209,1,189,2,172,3,122,4,64,5,229,5,78,6,173,6,252,6,9,7,7,7,83,7, +239,7,136,8,188,8,110,8,182,7,168,6,133,5,175,4,38,4,156,3,230,2,1,2,28,1,133,0,65,0,15,0, +177,255,248,254,252,253,14,253,71,252,189,251,175,251,250,251,60,252,134,252,14,253,181,253,107,254,79,255,83,0,68,1, +247,1,95,2,169,2,13,3,141,3,58,4,32,5,221,5,14,6,241,5,221,5,212,5,236,5,24,6,229,5,46,5, +80,4,143,3,10,3,188,2,104,2,244,1,83,1,72,0,246,254,228,253,45,253,180,252,117,252,93,252,106,252,165,252, +198,252,168,252,148,252,170,252,205,252,201,252,118,252,35,252,44,252,90,252,145,252,247,252,103,253,203,253,66,254,170,254, +250,254,73,255,81,255,15,255,211,254,143,254,103,254,176,254,4,255,254,254,232,254,215,254,157,254,90,254,19,254,179,253, +102,253,69,253,58,253,35,253,236,252,223,252,23,253,30,253,214,252,138,252,32,252,149,251,54,251,236,250,180,250,211,250, +2,251,237,250,222,250,3,251,52,251,71,251,16,251,182,250,150,250,177,250,216,250,248,250,3,251,26,251,91,251,164,251, +20,252,201,252,87,253,146,253,180,253,172,253,158,253,243,253,124,254,245,254,139,255,23,0,69,0,43,0,242,255,158,255, +86,255,54,255,51,255,27,255,207,254,135,254,114,254,89,254,36,254,231,253,124,253,232,252,129,252,80,252,47,252,48,252, +63,252,40,252,243,251,212,251,254,251,112,252,221,252,21,253,53,253,72,253,81,253,126,253,222,253,100,254,4,255,146,255, +6,0,122,0,193,0,197,0,208,0,241,0,7,1,5,1,204,0,128,0,139,0,206,0,240,0,11,1,32,1,249,0, +140,0,228,255,67,255,242,254,186,254,103,254,44,254,14,254,11,254,63,254,102,254,87,254,62,254,22,254,0,254,49,254, +90,254,138,254,26,255,167,255,12,0,185,0,93,1,173,1,21,2,144,2,255,2,142,3,213,3,202,3,33,4,166,4, +207,4,239,4,12,5,216,4,157,4,124,4,87,4,80,4,38,4,149,3,33,3,19,3,19,3,252,2,241,2,9,3, +46,3,4,3,111,2,228,1,182,1,186,1,159,1,118,1,127,1,139,1,91,1,59,1,95,1,152,1,224,1,29,2, +36,2,34,2,39,2,34,2,67,2,109,2,106,2,149,2,21,3,151,3,15,4,96,4,75,4,11,4,199,3,107,3, +42,3,34,3,81,3,195,3,16,4,225,3,133,3,29,3,181,2,175,2,231,2,243,2,235,2,204,2,145,2,152,2, +195,2,199,2,208,2,199,2,118,2,23,2,172,1,42,1,13,1,122,1,10,2,131,2,174,2,107,2,2,2,168,1, +98,1,79,1,100,1,110,1,113,1,136,1,180,1,245,1,110,2,32,3,170,3,216,3,240,3,19,4,40,4,55,4, +64,4,81,4,154,4,232,4,254,4,34,5,95,5,135,5,190,5,237,5,216,5,211,5,241,5,191,5,85,5,246,4, +120,4,217,3,53,3,102,2,140,1,0,1,199,0,189,0,204,0,204,0,149,0,54,0,245,255,1,0,26,0,14,0, +21,0,73,0,102,0,94,0,93,0,120,0,185,0,11,1,51,1,43,1,31,1,28,1,42,1,82,1,144,1,236,1, +80,2,116,2,117,2,173,2,220,2,163,2,39,2,133,1,206,0,111,0,99,0,24,0,133,255,9,255,151,254,55,254, +21,254,233,253,100,253,189,252,56,252,230,251,228,251,36,252,80,252,46,252,203,251,80,251,220,250,131,250,54,250,201,249, +62,249,214,248,184,248,241,248,214,249,163,251,210,253,134,255,64,0,219,255,153,254,63,253,95,252,28,252,147,252,156,253, +161,254,51,255,52,255,157,254,158,253,130,252,132,251,252,250,39,251,242,251,12,253,228,253,23,254,202,253,16,253,228,251, +190,250,28,250,41,250,222,250,184,251,1,252,141,251,130,250,56,249,75,248,245,247,36,248,235,248,239,249,112,250,75,250, +237,249,173,249,180,249,0,250,90,250,123,250,93,250,78,250,103,250,126,250,143,250,151,250,152,250,204,250,40,251,107,251, +195,251,79,252,210,252,63,253,145,253,172,253,202,253,35,254,144,254,248,254,82,255,126,255,112,255,78,255,109,255,8,0, +1,1,41,2,52,3,176,3,180,3,172,3,166,3,178,3,212,3,189,3,136,3,151,3,186,3,192,3,226,3,62,4, +226,4,176,5,34,6,208,5,202,4,129,3,157,2,96,2,148,2,33,3,202,3,9,4,174,3,13,3,150,2,141,2, +222,2,139,3,147,4,119,5,210,5,216,5,194,5,203,5,34,6,155,6,47,7,18,8,247,8,132,9,206,9,209,9, +151,9,79,9,237,8,134,8,118,8,182,8,225,8,171,8,6,8,42,7,72,6,115,5,241,4,220,4,222,4,148,4, +176,3,67,2,224,0,229,255,95,255,97,255,136,255,55,255,116,254,130,253,138,252,218,251,155,251,191,251,71,252,5,253, +162,253,240,253,241,253,208,253,196,253,219,253,9,254,63,254,91,254,111,254,164,254,2,255,112,255,165,255,134,255,108,255, +124,255,123,255,121,255,131,255,85,255,6,255,226,254,219,254,222,254,222,254,161,254,31,254,139,253,231,252,59,252,194,251, +159,251,183,251,201,251,166,251,98,251,37,251,235,250,181,250,179,250,5,251,131,251,233,251,8,252,200,251,51,251,132,250, +7,250,254,249,123,250,65,251,248,251,119,252,176,252,154,252,93,252,51,252,41,252,74,252,188,252,100,253,234,253,39,254, +46,254,25,254,8,254,22,254,59,254,93,254,122,254,173,254,254,254,75,255,106,255,76,255,249,254,169,254,142,254,143,254, +135,254,114,254,64,254,217,253,93,253,16,253,18,253,48,253,23,253,189,252,86,252,255,251,203,251,212,251,6,252,53,252, +75,252,61,252,1,252,165,251,104,251,131,251,221,251,79,252,233,252,167,253,67,254,171,254,21,255,167,255,84,0,2,1, +152,1,4,2,65,2,93,2,125,2,183,2,2,3,71,3,126,3,186,3,9,4,94,4,158,4,167,4,126,4,86,4, +62,4,17,4,201,3,101,3,203,2,30,2,170,1,91,1,251,0,148,0,60,0,4,0,252,255,21,0,44,0,49,0, +36,0,21,0,35,0,105,0,223,0,93,1,195,1,19,2,90,2,161,2,243,2,89,3,197,3,30,4,88,4,135,4, +197,4,17,5,88,5,140,5,148,5,108,5,47,5,232,4,164,4,120,4,88,4,37,4,224,3,134,3,18,3,161,2, +66,2,218,1,88,1,215,0,108,0,21,0,223,255,206,255,194,255,168,255,146,255,113,255,49,255,253,254,243,254,251,254, +19,255,66,255,107,255,127,255,148,255,188,255,246,255,43,0,81,0,133,0,203,0,6,1,67,1,154,1,239,1,36,2, +59,2,56,2,30,2,247,1,218,1,216,1,227,1,213,1,169,1,112,1,33,1,187,0,112,0,91,0,65,0,246,255, +173,255,153,255,159,255,150,255,117,255,70,255,3,255,170,254,87,254,43,254,25,254,18,254,40,254,63,254,40,254,247,253, +182,253,82,253,248,252,237,252,39,253,138,253,254,253,84,254,133,254,180,254,220,254,221,254,202,254,211,254,4,255,65,255, +130,255,200,255,236,255,230,255,6,0,118,0,228,0,8,1,243,0,202,0,131,0,14,0,126,255,244,254,113,254,208,253, +14,253,115,252,43,252,11,252,238,251,223,251,188,251,142,251,213,251,186,252,177,253,81,254,166,254,196,254,170,254,119,254, +95,254,101,254,63,254,211,253,127,253,141,253,230,253,108,254,251,254,94,255,166,255,4,0,79,0,98,0,99,0,95,0, +53,0,248,255,234,255,19,0,68,0,92,0,71,0,241,255,124,255,38,255,249,254,208,254,167,254,158,254,188,254,205,254, +176,254,129,254,78,254,255,253,161,253,85,253,21,253,219,252,181,252,162,252,132,252,77,252,46,252,120,252,38,253,223,253, +107,254,207,254,45,255,162,255,15,0,82,0,140,0,206,0,235,0,224,0,223,0,245,0,0,1,231,0,190,0,171,0, +160,0,131,0,113,0,138,0,172,0,179,0,186,0,204,0,195,0,165,0,171,0,208,0,226,0,218,0,165,0,35,0, +156,255,111,255,138,255,188,255,247,255,14,0,228,255,179,255,171,255,177,255,170,255,162,255,170,255,206,255,25,0,109,0, +163,0,196,0,233,0,7,1,31,1,52,1,53,1,50,1,78,1,107,1,127,1,179,1,236,1,239,1,230,1,13,2, +66,2,79,2,60,2,49,2,50,2,25,2,244,1,239,1,245,1,226,1,235,1,33,2,38,2,212,1,130,1,103,1, +89,1,75,1,78,1,68,1,37,1,30,1,37,1,12,1,234,0,223,0,214,0,213,0,244,0,14,1,242,0,181,0, +153,0,179,0,219,0,243,0,13,1,65,1,139,1,211,1,248,1,243,1,233,1,232,1,228,1,228,1,244,1,19,2, +48,2,72,2,110,2,154,2,158,2,128,2,106,2,92,2,78,2,74,2,68,2,38,2,235,1,162,1,108,1,93,1, +81,1,39,1,245,0,204,0,158,0,111,0,84,0,72,0,50,0,39,0,78,0,125,0,120,0,100,0,129,0,173,0, +178,0,168,0,186,0,228,0,5,1,17,1,21,1,43,1,86,1,115,1,126,1,159,1,205,1,233,1,17,2,65,2, +63,2,51,2,98,2,147,2,141,2,116,2,85,2,33,2,249,1,229,1,198,1,131,1,18,1,158,0,116,0,141,0, +172,0,178,0,144,0,66,0,248,255,218,255,202,255,160,255,106,255,74,255,85,255,131,255,170,255,181,255,185,255,177,255, +144,255,128,255,168,255,227,255,21,0,57,0,60,0,44,0,41,0,35,0,10,0,248,255,246,255,12,0,58,0,95,0, +100,0,92,0,66,0,19,0,231,255,193,255,177,255,223,255,38,0,70,0,75,0,87,0,94,0,94,0,87,0,48,0, +236,255,195,255,219,255,19,0,54,0,42,0,6,0,244,255,246,255,235,255,214,255,184,255,93,255,194,254,66,254,30,254, +77,254,196,254,115,255,46,0,180,0,204,0,129,0,22,0,184,255,117,255,104,255,153,255,248,255,124,0,247,0,26,1, +203,0,63,0,180,255,63,255,248,254,7,255,119,255,42,0,230,0,77,1,41,1,175,0,34,0,161,255,102,255,142,255, +226,255,60,0,136,0,131,0,17,0,123,255,4,255,198,254,223,254,64,255,160,255,217,255,245,255,255,255,247,255,225,255, +165,255,55,255,227,254,224,254,247,254,1,255,45,255,128,255,177,255,151,255,98,255,85,255,120,255,179,255,16,0,152,0, +22,1,84,1,83,1,39,1,232,0,173,0,132,0,106,0,86,0,55,0,18,0,241,255,225,255,240,255,15,0,46,0, +90,0,138,0,147,0,116,0,69,0,20,0,254,255,12,0,18,0,5,0,24,0,92,0,169,0,229,0,18,1,33,1, +16,1,5,1,9,1,254,0,240,0,9,1,52,1,67,1,46,1,3,1,212,0,186,0,199,0,4,1,85,1,128,1, +116,1,89,1,71,1,65,1,69,1,64,1,50,1,53,1,51,1,1,1,177,0,124,0,100,0,57,0,1,0,224,255, +198,255,162,255,153,255,194,255,2,0,60,0,78,0,61,0,59,0,84,0,116,0,171,0,228,0,238,0,226,0,230,0, +217,0,185,0,177,0,202,0,243,0,45,1,96,1,96,1,38,1,200,0,93,0,252,255,171,255,93,255,51,255,79,255, +119,255,109,255,75,255,42,255,245,254,184,254,138,254,100,254,75,254,87,254,143,254,228,254,47,255,81,255,70,255,24,255, +226,254,205,254,234,254,57,255,182,255,37,0,79,0,80,0,64,0,11,0,196,255,161,255,181,255,240,255,37,0,61,0, +75,0,86,0,64,0,8,0,205,255,165,255,150,255,165,255,210,255,17,0,65,0,56,0,237,255,137,255,49,255,232,254, +191,254,203,254,249,254,47,255,115,255,185,255,234,255,11,0,28,0,12,0,227,255,181,255,140,255,114,255,96,255,88,255, +124,255,188,255,228,255,232,255,205,255,146,255,96,255,87,255,105,255,136,255,165,255,168,255,153,255,136,255,110,255,84,255, +87,255,109,255,113,255,90,255,62,255,44,255,42,255,50,255,66,255,98,255,146,255,186,255,206,255,213,255,199,255,162,255, +124,255,97,255,79,255,81,255,101,255,134,255,177,255,190,255,140,255,70,255,30,255,19,255,29,255,40,255,35,255,24,255, +17,255,254,254,233,254,226,254,236,254,16,255,75,255,128,255,161,255,189,255,228,255,25,0,83,0,127,0,153,0,178,0, +233,0,55,1,111,1,135,1,155,1,177,1,190,1,194,1,170,1,112,1,55,1,27,1,11,1,254,0,13,1,48,1, +56,1,27,1,9,1,12,1,250,0,200,0,149,0,103,0,48,0,239,255,195,255,188,255,195,255,205,255,234,255,13,0, +23,0,18,0,23,0,35,0,48,0,76,0,135,0,211,0,17,1,68,1,116,1,140,1,148,1,159,1,152,1,120,1, +101,1,105,1,120,1,146,1,166,1,158,1,126,1,82,1,47,1,41,1,42,1,24,1,252,0,231,0,212,0,198,0, +185,0,166,0,148,0,150,0,161,0,159,0,155,0,160,0,158,0,142,0,127,0,102,0,77,0,90,0,135,0,176,0, +217,0,10,1,39,1,24,1,233,0,183,0,161,0,156,0,152,0,165,0,194,0,209,0,213,0,217,0,202,0,158,0, +119,0,108,0,119,0,134,0,131,0,99,0,61,0,42,0,30,0,16,0,2,0,234,255,193,255,157,255,129,255,94,255, +67,255,59,255,56,255,69,255,101,255,114,255,97,255,88,255,87,255,66,255,31,255,12,255,254,254,227,254,195,254,170,254, +150,254,150,254,177,254,209,254,240,254,8,255,2,255,229,254,218,254,233,254,247,254,238,254,220,254,228,254,251,254,254,254, +7,255,43,255,59,255,54,255,71,255,102,255,120,255,128,255,114,255,82,255,60,255,44,255,28,255,26,255,31,255,39,255, +55,255,58,255,30,255,2,255,243,254,233,254,237,254,0,255,10,255,5,255,248,254,215,254,166,254,130,254,114,254,103,254, +104,254,124,254,144,254,166,254,217,254,41,255,112,255,152,255,173,255,191,255,192,255,172,255,170,255,195,255,213,255,225,255, +1,0,35,0,47,0,53,0,60,0,63,0,60,0,45,0,24,0,12,0,4,0,246,255,238,255,228,255,191,255,147,255, +137,255,148,255,146,255,136,255,124,255,110,255,101,255,90,255,64,255,56,255,73,255,79,255,80,255,100,255,112,255,112,255, +133,255,165,255,176,255,181,255,196,255,223,255,3,0,44,0,91,0,143,0,176,0,181,0,166,0,137,0,102,0,67,0, +30,0,10,0,15,0,18,0,14,0,17,0,14,0,252,255,227,255,192,255,156,255,143,255,146,255,134,255,108,255,99,255, +123,255,164,255,199,255,238,255,25,0,40,0,31,0,35,0,46,0,39,0,38,0,71,0,121,0,165,0,207,0,243,0, +5,1,10,1,8,1,253,0,237,0,224,0,221,0,244,0,30,1,54,1,37,1,253,0,207,0,165,0,134,0,117,0, +115,0,122,0,132,0,144,0,150,0,120,0,49,0,237,255,205,255,191,255,186,255,203,255,229,255,239,255,244,255,248,255, +234,255,210,255,206,255,220,255,246,255,42,0,116,0,184,0,239,0,23,1,38,1,13,1,216,0,175,0,179,0,213,0, +252,0,31,1,64,1,95,1,111,1,97,1,64,1,35,1,16,1,14,1,27,1,28,1,2,1,226,0,202,0,187,0, +179,0,170,0,153,0,139,0,137,0,146,0,166,0,188,0,194,0,181,0,164,0,152,0,144,0,140,0,145,0,151,0, +151,0,146,0,136,0,129,0,137,0,163,0,199,0,239,0,16,1,32,1,38,1,44,1,49,1,54,1,65,1,79,1, +87,1,89,1,98,1,112,1,119,1,114,1,101,1,83,1,62,1,37,1,5,1,238,0,233,0,236,0,242,0,1,1, +18,1,17,1,253,0,239,0,239,0,222,0,185,0,152,0,129,0,102,0,81,0,68,0,54,0,40,0,34,0,21,0, +254,255,233,255,219,255,211,255,208,255,212,255,227,255,250,255,17,0,40,0,67,0,83,0,76,0,48,0,10,0,244,255, +247,255,10,0,32,0,39,0,36,0,48,0,77,0,85,0,56,0,17,0,238,255,208,255,180,255,142,255,87,255,48,255, +56,255,90,255,113,255,109,255,101,255,108,255,117,255,106,255,85,255,75,255,83,255,99,255,108,255,101,255,89,255,76,255, +58,255,40,255,32,255,22,255,6,255,2,255,10,255,13,255,7,255,255,254,243,254,216,254,165,254,118,254,123,254,203,254, +83,255,227,255,69,0,88,0,35,0,200,255,107,255,35,255,1,255,18,255,67,255,127,255,175,255,181,255,144,255,86,255, +4,255,156,254,89,254,102,254,175,254,22,255,122,255,169,255,154,255,100,255,9,255,156,254,88,254,95,254,148,254,201,254, +232,254,249,254,247,254,199,254,112,254,33,254,11,254,60,254,139,254,192,254,214,254,232,254,247,254,246,254,238,254,232,254, +240,254,12,255,34,255,31,255,25,255,32,255,37,255,33,255,33,255,38,255,46,255,53,255,57,255,65,255,80,255,82,255, +59,255,35,255,41,255,74,255,106,255,125,255,131,255,120,255,107,255,113,255,117,255,108,255,135,255,230,255,99,0,208,0, +35,1,80,1,75,1,22,1,211,0,175,0,199,0,11,1,78,1,101,1,93,1,103,1,130,1,133,1,111,1,98,1, +99,1,97,1,80,1,58,1,65,1,94,1,99,1,69,1,31,1,254,0,238,0,251,0,30,1,64,1,84,1,94,1, +104,1,101,1,64,1,8,1,227,0,210,0,218,0,16,1,100,1,170,1,204,1,209,1,202,1,195,1,190,1,182,1, +171,1,172,1,192,1,214,1,218,1,206,1,183,1,142,1,88,1,49,1,53,1,99,1,139,1,118,1,39,1,209,0, +138,0,77,0,38,0,36,0,53,0,70,0,78,0,63,0,5,0,180,255,122,255,97,255,88,255,108,255,163,255,211,255, +227,255,224,255,203,255,154,255,95,255,48,255,32,255,52,255,85,255,109,255,124,255,138,255,149,255,156,255,153,255,140,255, +140,255,155,255,171,255,184,255,187,255,176,255,177,255,195,255,206,255,197,255,178,255,158,255,170,255,235,255,58,0,97,0, +78,0,13,0,204,255,188,255,195,255,166,255,93,255,23,255,251,254,16,255,43,255,40,255,17,255,254,254,234,254,214,254, +217,254,251,254,37,255,65,255,66,255,54,255,53,255,61,255,53,255,21,255,231,254,193,254,186,254,209,254,225,254,224,254, +229,254,238,254,233,254,231,254,247,254,16,255,52,255,95,255,120,255,117,255,112,255,114,255,108,255,96,255,94,255,103,255, +113,255,126,255,142,255,145,255,127,255,107,255,99,255,97,255,96,255,101,255,96,255,76,255,51,255,31,255,22,255,29,255, +35,255,25,255,18,255,26,255,18,255,239,254,209,254,207,254,229,254,10,255,47,255,65,255,73,255,92,255,126,255,152,255, +155,255,150,255,164,255,198,255,233,255,9,0,37,0,51,0,52,0,61,0,85,0,117,0,162,0,216,0,251,0,2,1, +255,0,1,1,254,0,237,0,217,0,208,0,211,0,220,0,228,0,225,0,201,0,165,0,137,0,118,0,102,0,95,0, +95,0,83,0,62,0,62,0,88,0,114,0,132,0,147,0,153,0,147,0,134,0,115,0,101,0,107,0,131,0,157,0, +168,0,159,0,147,0,158,0,194,0,237,0,5,1,253,0,230,0,215,0,208,0,202,0,211,0,233,0,246,0,249,0, +245,0,235,0,228,0,227,0,219,0,205,0,188,0,157,0,123,0,114,0,122,0,124,0,117,0,107,0,102,0,105,0, +97,0,70,0,45,0,43,0,62,0,88,0,98,0,87,0,72,0,71,0,74,0,63,0,30,0,248,255,236,255,247,255, +2,0,6,0,7,0,2,0,250,255,249,255,2,0,15,0,25,0,34,0,45,0,53,0,50,0,37,0,19,0,248,255, +217,255,200,255,202,255,215,255,233,255,247,255,239,255,216,255,200,255,186,255,163,255,150,255,153,255,152,255,143,255,134,255, +131,255,138,255,146,255,131,255,100,255,76,255,61,255,53,255,59,255,59,255,45,255,43,255,63,255,82,255,86,255,77,255, +73,255,85,255,93,255,88,255,92,255,103,255,107,255,114,255,132,255,146,255,158,255,171,255,171,255,159,255,158,255,166,255, +168,255,156,255,141,255,144,255,164,255,176,255,168,255,160,255,154,255,146,255,138,255,130,255,116,255,95,255,76,255,71,255, +77,255,79,255,81,255,92,255,112,255,137,255,161,255,173,255,176,255,182,255,185,255,176,255,165,255,166,255,177,255,189,255, +199,255,205,255,203,255,198,255,203,255,223,255,248,255,6,0,5,0,252,255,252,255,9,0,15,0,6,0,251,255,242,255, +233,255,226,255,221,255,215,255,208,255,200,255,196,255,197,255,192,255,180,255,181,255,198,255,213,255,223,255,232,255,234,255, +226,255,212,255,201,255,201,255,211,255,227,255,243,255,251,255,254,255,2,0,14,0,35,0,58,0,75,0,83,0,81,0, +69,0,52,0,39,0,32,0,33,0,34,0,24,0,12,0,7,0,0,0,255,255,8,0,4,0,242,255,239,255,250,255, +253,255,250,255,251,255,249,255,241,255,233,255,226,255,228,255,239,255,246,255,247,255,251,255,4,0,17,0,24,0,26,0, +49,0,94,0,129,0,143,0,146,0,136,0,116,0,99,0,91,0,90,0,92,0,92,0,92,0,101,0,105,0,92,0, +73,0,66,0,62,0,50,0,36,0,30,0,25,0,19,0,18,0,31,0,48,0,57,0,57,0,64,0,84,0,102,0, +108,0,109,0,108,0,105,0,107,0,116,0,122,0,121,0,111,0,98,0,98,0,112,0,127,0,136,0,144,0,151,0, +148,0,136,0,123,0,114,0,106,0,97,0,91,0,95,0,111,0,127,0,127,0,114,0,97,0,78,0,64,0,71,0, +89,0,92,0,84,0,88,0,105,0,124,0,132,0,123,0,103,0,83,0,65,0,52,0,43,0,33,0,27,0,40,0, +77,0,127,0,184,0,234,0,250,0,222,0,163,0,101,0,61,0,56,0,84,0,131,0,170,0,181,0,162,0,121,0, +74,0,36,0,11,0,3,0,22,0,69,0,134,0,185,0,186,0,139,0,76,0,23,0,244,255,244,255,28,0,90,0, +151,0,191,0,190,0,145,0,83,0,35,0,9,0,5,0,27,0,65,0,97,0,109,0,105,0,88,0,67,0,44,0, +28,0,31,0,47,0,57,0,52,0,38,0,14,0,235,255,199,255,169,255,151,255,149,255,152,255,148,255,144,255,151,255, +160,255,154,255,130,255,103,255,91,255,99,255,118,255,131,255,128,255,116,255,111,255,117,255,135,255,166,255,210,255,6,0, +53,0,81,0,85,0,72,0,53,0,35,0,25,0,26,0,36,0,53,0,76,0,93,0,92,0,78,0,60,0,42,0, +18,0,251,255,236,255,226,255,224,255,229,255,223,255,193,255,149,255,105,255,70,255,58,255,72,255,89,255,94,255,88,255, +67,255,37,255,9,255,246,254,240,254,250,254,13,255,32,255,48,255,63,255,79,255,95,255,114,255,137,255,159,255,178,255, +200,255,227,255,0,0,18,0,23,0,21,0,25,0,37,0,47,0,54,0,66,0,87,0,112,0,124,0,105,0,55,0, +0,0,222,255,213,255,215,255,217,255,219,255,214,255,196,255,168,255,139,255,107,255,77,255,58,255,47,255,37,255,32,255, +34,255,37,255,34,255,24,255,7,255,243,254,224,254,217,254,229,254,0,255,31,255,60,255,88,255,107,255,110,255,107,255, +109,255,120,255,140,255,170,255,199,255,216,255,227,255,239,255,246,255,247,255,254,255,21,0,50,0,67,0,68,0,64,0, +65,0,73,0,79,0,82,0,78,0,70,0,57,0,41,0,28,0,22,0,17,0,4,0,236,255,208,255,193,255,197,255, +209,255,214,255,206,255,189,255,167,255,148,255,139,255,150,255,178,255,212,255,237,255,247,255,241,255,233,255,230,255,232,255, +241,255,10,0,46,0,77,0,99,0,113,0,119,0,123,0,135,0,156,0,179,0,199,0,216,0,234,0,254,0,15,1, +21,1,18,1,10,1,253,0,232,0,214,0,207,0,211,0,216,0,214,0,203,0,185,0,167,0,151,0,135,0,119,0, +101,0,78,0,53,0,32,0,18,0,10,0,6,0,6,0,9,0,11,0,6,0,253,255,250,255,1,0,14,0,31,0, +45,0,52,0,47,0,38,0,34,0,39,0,56,0,81,0,108,0,130,0,141,0,141,0,138,0,139,0,139,0,140,0, +147,0,151,0,146,0,139,0,141,0,146,0,149,0,144,0,130,0,115,0,100,0,87,0,79,0,75,0,68,0,57,0, +42,0,25,0,9,0,253,255,240,255,226,255,216,255,208,255,198,255,187,255,173,255,162,255,157,255,157,255,155,255,150,255, +142,255,135,255,131,255,131,255,129,255,124,255,115,255,110,255,111,255,115,255,119,255,130,255,149,255,167,255,177,255,179,255, +177,255,175,255,178,255,191,255,211,255,231,255,248,255,0,0,252,255,246,255,243,255,245,255,249,255,254,255,254,255,251,255, +246,255,240,255,235,255,232,255,227,255,221,255,213,255,202,255,188,255,175,255,163,255,152,255,140,255,125,255,110,255,98,255, +93,255,92,255,92,255,94,255,97,255,99,255,100,255,103,255,107,255,112,255,119,255,128,255,135,255,143,255,153,255,167,255, +185,255,207,255,228,255,241,255,249,255,255,255,4,0,11,0,19,0,24,0,26,0,24,0,20,0,14,0,9,0,6,0, +6,0,7,0,9,0,12,0,10,0,2,0,248,255,238,255,231,255,230,255,228,255,223,255,218,255,212,255,206,255,207,255, +214,255,221,255,224,255,224,255,222,255,222,255,226,255,231,255,240,255,251,255,4,0,9,0,15,0,20,0,23,0,28,0, +36,0,44,0,49,0,52,0,57,0,64,0,71,0,75,0,77,0,76,0,71,0,64,0,60,0,60,0,62,0,64,0, +65,0,65,0,64,0,61,0,54,0,48,0,48,0,53,0,59,0,63,0,66,0,66,0,65,0,65,0,67,0,69,0, +70,0,76,0,84,0,92,0,96,0,97,0,93,0,87,0,83,0,82,0,82,0,81,0,82,0,84,0,89,0,91,0, +85,0,74,0,66,0,64,0,66,0,73,0,80,0,81,0,75,0,64,0,50,0,37,0,30,0,31,0,39,0,49,0, +56,0,57,0,53,0,47,0,41,0,36,0,33,0,34,0,40,0,47,0,53,0,53,0,53,0,52,0,48,0,39,0, +31,0,28,0,24,0,21,0,20,0,19,0,18,0,17,0,12,0,2,0,244,255,231,255,223,255,221,255,222,255,225,255, +229,255,234,255,234,255,229,255,221,255,213,255,206,255,201,255,199,255,198,255,196,255,194,255,194,255,194,255,192,255,188,255, +183,255,181,255,181,255,185,255,192,255,200,255,203,255,204,255,205,255,208,255,208,255,206,255,204,255,205,255,209,255,217,255, +224,255,228,255,228,255,225,255,222,255,218,255,212,255,206,255,204,255,212,255,225,255,239,255,253,255,7,0,7,0,253,255, +236,255,218,255,205,255,201,255,205,255,214,255,224,255,230,255,228,255,219,255,207,255,196,255,190,255,192,255,199,255,204,255, +204,255,201,255,200,255,205,255,215,255,220,255,218,255,217,255,221,255,225,255,228,255,233,255,240,255,243,255,243,255,242,255, +238,255,234,255,234,255,239,255,249,255,4,0,12,0,15,0,15,0,12,0,8,0,2,0,253,255,248,255,246,255,246,255, +248,255,248,255,249,255,252,255,252,255,246,255,235,255,224,255,217,255,216,255,218,255,222,255,224,255,222,255,220,255,219,255, +222,255,225,255,228,255,232,255,231,255,226,255,221,255,220,255,226,255,236,255,247,255,0,0,5,0,4,0,254,255,246,255, +241,255,244,255,1,0,15,0,23,0,23,0,21,0,18,0,12,0,7,0,3,0,254,255,252,255,0,0,6,0,9,0, +7,0,3,0,252,255,242,255,234,255,230,255,231,255,236,255,243,255,252,255,3,0,4,0,254,255,245,255,240,255,240,255, +242,255,247,255,1,0,12,0,21,0,26,0,27,0,25,0,23,0,21,0,20,0,20,0,25,0,30,0,32,0,33,0, +34,0,35,0,34,0,33,0,32,0,34,0,38,0,42,0,43,0,42,0,37,0,32,0,31,0,30,0,26,0,19,0, +16,0,18,0,23,0,28,0,29,0,24,0,17,0,12,0,8,0,6,0,10,0,17,0,24,0,24,0,20,0,16,0, +13,0,10,0,10,0,14,0,24,0,32,0,37,0,39,0,40,0,42,0,44,0,48,0,53,0,58,0,62,0,64,0, +66,0,70,0,72,0,71,0,66,0,62,0,61,0,63,0,63,0,57,0,44,0,29,0,13,0,5,0,15,0,41,0, +71,0,93,0,102,0,92,0,60,0,19,0,242,255,228,255,238,255,13,0,49,0,74,0,80,0,66,0,41,0,16,0, +0,0,255,255,16,0,43,0,70,0,90,0,100,0,97,0,82,0,64,0,51,0,45,0,46,0,59,0,80,0,97,0, +101,0,90,0,69,0,44,0,24,0,17,0,26,0,47,0,65,0,69,0,62,0,48,0,31,0,18,0,12,0,12,0, +16,0,19,0,17,0,6,0,248,255,237,255,232,255,229,255,230,255,236,255,242,255,245,255,246,255,248,255,252,255,0,0, +254,255,251,255,249,255,252,255,3,0,13,0,20,0,22,0,18,0,10,0,2,0,254,255,0,0,8,0,21,0,32,0, +34,0,24,0,9,0,249,255,237,255,235,255,242,255,250,255,255,255,2,0,255,255,249,255,245,255,244,255,242,255,237,255, +231,255,227,255,226,255,226,255,225,255,225,255,225,255,224,255,219,255,215,255,216,255,221,255,228,255,239,255,250,255,0,0, +1,0,253,255,244,255,236,255,233,255,234,255,238,255,245,255,251,255,0,0,1,0,0,0,250,255,246,255,246,255,247,255, +246,255,249,255,1,0,8,0,11,0,10,0,3,0,246,255,232,255,224,255,225,255,234,255,246,255,253,255,251,255,242,255, +228,255,213,255,203,255,204,255,214,255,229,255,241,255,244,255,240,255,229,255,217,255,205,255,200,255,201,255,206,255,212,255, +218,255,222,255,221,255,216,255,211,255,207,255,203,255,199,255,198,255,207,255,222,255,236,255,241,255,239,255,232,255,222,255, +214,255,209,255,210,255,215,255,219,255,221,255,220,255,216,255,212,255,210,255,213,255,221,255,231,255,237,255,237,255,229,255, +221,255,217,255,217,255,220,255,226,255,232,255,233,255,230,255,227,255,223,255,222,255,224,255,229,255,237,255,246,255,254,255, +3,0,6,0,6,0,255,255,244,255,237,255,237,255,243,255,255,255,15,0,27,0,31,0,28,0,22,0,17,0,15,0, +19,0,26,0,35,0,42,0,44,0,43,0,40,0,39,0,37,0,37,0,38,0,40,0,41,0,40,0,38,0,36,0, +37,0,39,0,39,0,35,0,29,0,24,0,20,0,19,0,21,0,24,0,25,0,24,0,21,0,18,0,14,0,10,0, +8,0,10,0,13,0,15,0,16,0,15,0,12,0,9,0,8,0,8,0,9,0,12,0,17,0,24,0,32,0,37,0, +38,0,35,0,30,0,26,0,26,0,27,0,28,0,32,0,35,0,35,0,34,0,37,0,41,0,42,0,41,0,36,0, +28,0,20,0,14,0,9,0,6,0,7,0,11,0,13,0,11,0,5,0,252,255,244,255,241,255,239,255,238,255,240,255, +241,255,238,255,234,255,229,255,222,255,216,255,217,255,223,255,229,255,234,255,237,255,238,255,239,255,239,255,237,255,236,255, +237,255,241,255,245,255,247,255,247,255,244,255,242,255,242,255,243,255,246,255,251,255,253,255,252,255,247,255,243,255,238,255, +234,255,233,255,236,255,238,255,241,255,242,255,240,255,235,255,229,255,225,255,223,255,225,255,229,255,229,255,226,255,222,255, +218,255,215,255,212,255,211,255,212,255,214,255,215,255,216,255,217,255,217,255,215,255,215,255,217,255,218,255,219,255,220,255, +222,255,225,255,228,255,229,255,229,255,228,255,227,255,229,255,231,255,233,255,234,255,234,255,235,255,235,255,234,255,235,255, +238,255,240,255,243,255,246,255,249,255,250,255,248,255,245,255,244,255,244,255,246,255,248,255,249,255,248,255,246,255,245,255, +247,255,249,255,250,255,251,255,251,255,249,255,248,255,248,255,246,255,242,255,240,255,241,255,245,255,249,255,252,255,255,255, +1,0,2,0,255,255,251,255,249,255,252,255,1,0,8,0,12,0,11,0,9,0,7,0,4,0,3,0,6,0,12,0, +18,0,24,0,25,0,22,0,17,0,14,0,13,0,13,0,16,0,18,0,19,0,19,0,18,0,17,0,18,0,21,0, +22,0,21,0,19,0,17,0,14,0,12,0,10,0,9,0,10,0,13,0,14,0,14,0,15,0,15,0,13,0,11,0, +11,0,11,0,12,0,14,0,15,0,16,0,17,0,16,0,13,0,11,0,11,0,12,0,13,0,13,0,13,0,12,0, +11,0,11,0,10,0,9,0,9,0,9,0,10,0,10,0,9,0,7,0,7,0,9,0,8,0,5,0,2,0,0,0, +255,255,0,0,2,0,4,0,6,0,5,0,0,0,250,255,245,255,243,255,244,255,248,255,254,255,2,0,3,0,1,0, +254,255,250,255,248,255,247,255,248,255,248,255,251,255,254,255,254,255,251,255,248,255,245,255,242,255,241,255,243,255,245,255, +246,255,246,255,247,255,245,255,243,255,241,255,242,255,243,255,244,255,244,255,244,255,244,255,243,255,242,255,243,255,246,255, +248,255,249,255,249,255,248,255,245,255,243,255,241,255,241,255,243,255,246,255,247,255,247,255,248,255,249,255,249,255,248,255, +248,255,246,255,244,255,244,255,244,255,244,255,247,255,249,255,250,255,248,255,247,255,246,255,245,255,246,255,248,255,249,255, +250,255,252,255,252,255,251,255,250,255,249,255,249,255,250,255,254,255,0,0,1,0,2,0,2,0,0,0,255,255,254,255, +252,255,252,255,253,255,255,255,2,0,4,0,4,0,1,0,255,255,254,255,253,255,253,255,255,255,0,0,0,0,255,255, +254,255,252,255,251,255,252,255,252,255,252,255,252,255,253,255,252,255,250,255,250,255,250,255,250,255,251,255,250,255,250,255, +252,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,253,255,253,255,252,255,252,255, +253,255,255,255,1,0,1,0,1,0,1,0,0,0,0,0,1,0,4,0,5,0,4,0,2,0,1,0,255,255,253,255, +252,255,253,255,254,255,255,255,0,0,255,255,253,255,251,255,251,255,251,255,251,255,252,255,254,255,0,0,0,0,255,255, +254,255,254,255,255,255,254,255,255,255,0,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,6,0, +6,0,7,0,6,0,5,0,4,0,6,0,7,0,6,0,7,0,8,0,7,0,5,0,4,0,3,0,2,0,4,0, +5,0,5,0,4,0,3,0,1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,4,0,4,0,4,0,5,0,5,0,5,0,6,0,8,0,8,0, +7,0,8,0,8,0,7,0,7,0,7,0,6,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,7,0,9,0, +8,0,5,0,2,0,0,0,255,255,1,0,3,0,5,0,6,0,6,0,4,0,2,0,0,0,254,255,253,255,255,255, +3,0,6,0,8,0,9,0,7,0,5,0,3,0,1,0,1,0,2,0,6,0,10,0,12,0,12,0,9,0,5,0, +1,0,255,255,254,255,0,0,3,0,5,0,7,0,8,0,7,0,5,0,2,0,0,0,0,0,1,0,1,0,3,0, +4,0,3,0,2,0,0,0,0,0,254,255,252,255,253,255,254,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,3,0,3,0,2,0,1,0,0,0, +255,255,254,255,253,255,254,255,255,255,1,0,1,0,0,0,0,0,255,255,253,255,253,255,255,255,0,0,0,0,2,0, +2,0,0,0,254,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,254,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255, +253,255,253,255,253,255,253,255,253,255,254,255,253,255,252,255,253,255,253,255,253,255,252,255,253,255,252,255,252,255,253,255, +253,255,253,255,254,255,254,255,253,255,253,255,254,255,0,0,0,0,0,0,1,0,0,0,255,255,254,255,253,255,252,255, +253,255,255,255,0,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255, +253,255,253,255,252,255,251,255,252,255,253,255,253,255,254,255,253,255,253,255,253,255,252,255,253,255,254,255,0,0,2,0, +3,0,2,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,2,0,4,0,4,0,3,0,2,0,3,0,3,0, +3,0,4,0,6,0,6,0,6,0,6,0,5,0,3,0,3,0,2,0,3,0,5,0,6,0,7,0,7,0,5,0, +2,0,0,0,0,0,0,0,1,0,3,0,5,0,5,0,5,0,3,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,2,0,3,0,3,0,3,0,3,0,2,0, +2,0,2,0,1,0,2,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,1,0,1,0,3,0,3,0, +3,0,3,0,3,0,2,0,1,0,0,0,254,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,255,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,254,255,253,255,252,255, +253,255,254,255,255,255,0,0,255,255,0,0,0,0,255,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,255,255,254,255, +254,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,1,0,255,255,254,255,255,255,255,255, +255,255,1,0,2,0,1,0,0,0,1,0,0,0,254,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,2,0,4,0,3,0,1,0,2,0,2,0,1,0, +1,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,2,0, +1,0,0,0,1,0,2,0,2,0,3,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,254,255,255,255,0,0, +1,0,2,0,0,0,255,255,0,0,0,0,254,255,254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255, +0,0,255,255,254,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0, +2,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,1,0,2,0,0,0,255,255,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,2,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,1,0,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,1,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,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,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255, +255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,1,0,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,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,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,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255, +0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +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,255,255, +255,255,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,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,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +2,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,254,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,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,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,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, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,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,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,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,1,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,255,255,255,255,0,0,1,0,1,0, +1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255, +254,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,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,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,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,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,255,255,255,255,0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,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,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,1,0,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,1,0,1,0,0,0, +255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,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,1,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,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,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,255,255,255,255,1,0,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,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0, +1,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +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,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,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,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,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,255,255,255,255,1,0,1,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,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,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,2,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,254,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,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,1,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,255,255,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +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,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,1,0,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, +1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,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,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,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,255,255,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,254,255,255,255,1,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,254,255,255,255,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/pig3.pcm b/src/client/sound/data/pig3.pcm new file mode 100755 index 0000000..c599dfc --- /dev/null +++ b/src/client/sound/data/pig3.pcm @@ -0,0 +1,1037 @@ +unsigned char PCM_pig3[33092] = { +1,0,0,0,2,0,0,0,68,172,0,0,154,64,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0, +3,0,2,0,1,0,2,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0, +254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,1,0,2,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0, +4,0,4,0,2,0,1,0,0,0,0,0,1,0,0,0,254,255,255,255,255,255,254,255,253,255,253,255,253,255,252,255, +252,255,253,255,253,255,253,255,254,255,255,255,254,255,254,255,255,255,0,0,0,0,1,0,3,0,3,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,255,255,254,255,255,255,254,255,252,255,251,255,252,255,251,255, +250,255,250,255,251,255,251,255,251,255,251,255,251,255,252,255,254,255,254,255,253,255,253,255,0,0,1,0,0,0,0,0, +2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0,254,255,251,255, +249,255,249,255,252,255,254,255,252,255,249,255,246,255,244,255,243,255,245,255,248,255,250,255,250,255,248,255,246,255,245,255, +246,255,248,255,252,255,0,0,1,0,2,0,2,0,4,0,5,0,5,0,4,0,3,0,2,0,4,0,8,0,9,0, +8,0,5,0,255,255,249,255,245,255,245,255,247,255,250,255,252,255,250,255,243,255,234,255,232,255,239,255,248,255,252,255, +252,255,250,255,251,255,254,255,2,0,7,0,13,0,18,0,22,0,24,0,23,0,21,0,23,0,28,0,32,0,30,0, +25,0,22,0,22,0,19,0,14,0,11,0,11,0,11,0,7,0,1,0,0,0,2,0,2,0,255,255,249,255,245,255, +248,255,2,0,9,0,8,0,1,0,1,0,9,0,18,0,20,0,19,0,21,0,28,0,34,0,37,0,36,0,35,0, +36,0,39,0,38,0,31,0,26,0,28,0,34,0,37,0,35,0,27,0,18,0,10,0,6,0,7,0,13,0,18,0, +15,0,4,0,246,255,239,255,245,255,2,0,14,0,17,0,16,0,15,0,15,0,12,0,9,0,12,0,26,0,43,0, +51,0,44,0,32,0,25,0,26,0,31,0,38,0,40,0,36,0,29,0,25,0,18,0,6,0,250,255,247,255,253,255, +4,0,7,0,2,0,247,255,234,255,225,255,222,255,227,255,237,255,245,255,249,255,249,255,245,255,239,255,237,255,241,255, +250,255,1,0,4,0,2,0,253,255,247,255,239,255,237,255,243,255,249,255,244,255,234,255,231,255,232,255,234,255,237,255, +241,255,241,255,237,255,234,255,234,255,235,255,242,255,253,255,10,0,19,0,24,0,28,0,33,0,38,0,44,0,50,0, +57,0,61,0,61,0,58,0,54,0,49,0,46,0,45,0,41,0,35,0,30,0,25,0,13,0,0,0,247,255,238,255, +226,255,219,255,220,255,221,255,218,255,214,255,211,255,210,255,212,255,216,255,223,255,235,255,251,255,10,0,15,0,11,0, +7,0,12,0,27,0,41,0,48,0,56,0,64,0,64,0,52,0,36,0,22,0,17,0,21,0,22,0,12,0,251,255, +240,255,233,255,221,255,204,255,188,255,182,255,184,255,181,255,169,255,160,255,161,255,167,255,171,255,173,255,178,255,187,255, +201,255,217,255,230,255,235,255,239,255,247,255,2,0,11,0,14,0,18,0,31,0,45,0,49,0,39,0,27,0,22,0, +24,0,32,0,35,0,24,0,1,0,233,255,215,255,205,255,199,255,197,255,195,255,188,255,176,255,163,255,157,255,161,255, +166,255,165,255,156,255,151,255,154,255,162,255,166,255,165,255,167,255,179,255,196,255,208,255,212,255,211,255,209,255,209,255, +215,255,224,255,226,255,219,255,207,255,199,255,193,255,182,255,170,255,166,255,172,255,175,255,163,255,145,255,128,255,113,255, +101,255,95,255,95,255,93,255,92,255,97,255,100,255,94,255,85,255,88,255,104,255,119,255,130,255,147,255,168,255,176,255, +170,255,163,255,173,255,206,255,255,255,40,0,54,0,46,0,38,0,45,0,59,0,72,0,81,0,80,0,67,0,50,0, +36,0,22,0,2,0,243,255,240,255,239,255,229,255,212,255,196,255,184,255,173,255,168,255,171,255,176,255,182,255,188,255, +195,255,200,255,210,255,237,255,21,0,52,0,64,0,68,0,79,0,107,0,142,0,170,0,192,0,216,0,236,0,236,0, +219,0,208,0,216,0,234,0,240,0,218,0,177,0,141,0,122,0,111,0,92,0,62,0,36,0,26,0,18,0,1,0, +246,255,1,0,14,0,5,0,245,255,248,255,16,0,47,0,76,0,101,0,131,0,169,0,206,0,231,0,251,0,19,1, +52,1,90,1,119,1,127,1,117,1,95,1,70,1,52,1,42,1,23,1,252,0,234,0,217,0,176,0,121,0,75,0, +33,0,236,255,185,255,155,255,151,255,152,255,137,255,105,255,83,255,87,255,114,255,153,255,189,255,210,255,231,255,12,0, +54,0,81,0,98,0,115,0,135,0,167,0,204,0,222,0,214,0,205,0,200,0,183,0,151,0,114,0,82,0,53,0, +18,0,225,255,169,255,115,255,65,255,25,255,3,255,246,254,232,254,226,254,228,254,225,254,225,254,247,254,29,255,65,255, +90,255,110,255,136,255,177,255,226,255,10,0,46,0,94,0,145,0,181,0,195,0,192,0,182,0,174,0,168,0,150,0, +119,0,79,0,32,0,244,255,215,255,186,255,142,255,92,255,53,255,28,255,13,255,244,254,197,254,149,254,127,254,127,254, +142,254,176,254,207,254,217,254,223,254,252,254,41,255,90,255,135,255,165,255,183,255,198,255,212,255,227,255,241,255,244,255, +235,255,228,255,226,255,220,255,213,255,199,255,168,255,134,255,116,255,99,255,67,255,34,255,11,255,249,254,234,254,216,254, +197,254,196,254,218,254,248,254,18,255,39,255,57,255,83,255,125,255,175,255,228,255,20,0,45,0,54,0,77,0,118,0, +159,0,197,0,229,0,246,0,251,0,247,0,231,0,201,0,166,0,128,0,95,0,71,0,41,0,0,0,218,255,199,255, +199,255,210,255,212,255,193,255,169,255,156,255,152,255,169,255,209,255,237,255,231,255,215,255,219,255,250,255,42,0,79,0, +86,0,92,0,124,0,174,0,211,0,217,0,192,0,165,0,154,0,152,0,154,0,164,0,166,0,147,0,119,0,90,0, +52,0,16,0,3,0,5,0,4,0,249,255,230,255,212,255,200,255,180,255,156,255,163,255,209,255,252,255,4,0,247,255, +249,255,32,0,90,0,130,0,153,0,185,0,217,0,232,0,241,0,253,0,6,1,23,1,56,1,81,1,83,1,68,1, +48,1,39,1,40,1,26,1,255,0,243,0,241,0,232,0,214,0,177,0,128,0,103,0,110,0,119,0,136,0,168,0, +195,0,205,0,211,0,217,0,231,0,1,1,21,1,27,1,26,1,31,1,63,1,125,1,175,1,188,1,188,1,193,1, +191,1,171,1,144,1,125,1,102,1,47,1,223,0,149,0,72,0,242,255,187,255,196,255,251,255,50,0,64,0,39,0, +2,0,221,255,201,255,236,255,63,0,133,0,161,0,158,0,156,0,181,0,217,0,234,0,253,0,38,1,70,1,90,1, +108,1,82,1,10,1,203,0,163,0,128,0,116,0,120,0,112,0,91,0,56,0,252,255,193,255,159,255,137,255,141,255, +185,255,220,255,199,255,142,255,86,255,52,255,62,255,114,255,164,255,180,255,176,255,182,255,195,255,210,255,233,255,251,255, +243,255,235,255,4,0,57,0,119,0,148,0,90,0,246,255,196,255,205,255,226,255,236,255,216,255,178,255,160,255,139,255, +83,255,19,255,223,254,184,254,180,254,208,254,211,254,172,254,117,254,61,254,14,254,238,253,208,253,185,253,194,253,243,253, +58,254,120,254,136,254,97,254,34,254,225,253,169,253,151,253,180,253,213,253,205,253,132,253,239,252,89,252,45,252,81,252, +85,252,31,252,206,251,107,251,1,251,154,250,100,250,177,250,106,251,9,252,79,252,87,252,64,252,48,252,54,252,102,252, +20,253,57,254,34,255,94,255,64,255,90,255,239,255,183,0,40,1,55,1,91,1,229,1,187,2,135,3,2,4,50,4, +32,4,208,3,142,3,164,3,254,3,98,4,146,4,138,4,153,4,196,4,151,4,215,3,167,2,128,1,52,1,7,2, +120,3,125,5,228,7,39,9,219,7,77,4,15,0,53,253,10,253,231,254,111,1,199,3,242,4,26,4,140,1,64,254, +126,251,235,250,70,253,99,1,231,4,215,5,40,4,198,1,135,0,193,0,176,1,108,2,1,3,75,4,61,6,140,7, +108,7,84,6,102,5,139,5,71,6,34,6,208,4,120,3,238,2,5,3,53,3,23,3,124,2,51,1,4,255,43,252, +129,249,229,247,177,247,154,248,9,250,166,251,44,253,217,253,229,252,214,250,106,249,230,249,21,252,215,254,4,1,19,2, +87,2,108,2,191,2,135,3,101,4,179,4,189,4,86,5,105,6,97,7,224,7,162,7,200,6,120,5,8,3,108,255, +56,252,189,250,253,250,55,252,205,252,119,251,201,248,219,245,235,242,73,240,159,238,139,238,120,240,162,243,48,246,44,247, +237,246,58,246,36,246,72,247,67,249,232,251,77,255,216,2,188,5,115,7,152,7,171,6,227,5,230,5,210,6,75,8, +20,9,92,8,200,6,24,5,91,3,64,1,59,254,164,250,24,248,76,247,27,247,53,246,14,244,51,241,106,239,203,239, +56,241,250,241,172,241,67,241,114,242,1,246,109,250,157,253,64,255,146,0,190,2,179,5,10,8,240,8,143,9,106,11, +97,14,210,16,211,16,15,14,226,10,7,10,77,11,253,11,223,9,42,5,74,0,178,253,100,253,36,253,65,251,60,248, +191,245,174,244,105,244,194,243,143,242,12,242,83,243,211,245,252,247,38,249,3,250,141,251,7,254,140,0,220,1,42,2, +62,3,68,6,67,10,32,13,152,13,56,12,138,10,167,9,222,9,0,11,90,12,237,12,18,12,224,9,255,6,44,4, +232,1,122,0,193,255,26,255,248,253,127,252,80,251,197,250,144,250,7,250,219,248,131,247,228,246,116,247,244,248,13,251, +94,253,1,255,59,255,145,254,149,254,107,0,128,3,7,6,41,7,205,7,224,8,11,10,116,10,19,10,198,9,25,10, +135,10,85,10,63,9,180,7,189,6,151,6,242,5,167,3,24,0,209,252,145,251,109,252,51,253,36,252,240,249,33,248, +102,247,83,247,17,247,217,246,215,247,244,249,144,251,209,251,159,251,102,252,141,254,21,1,168,2,26,3,152,3,10,5, +4,7,116,8,177,8,220,7,13,7,44,7,113,7,140,6,195,4,100,3,19,3,74,3,156,2,5,0,132,252,53,250, +197,249,235,249,43,249,119,247,30,246,244,245,15,246,47,245,202,243,158,243,134,245,115,248,129,250,241,250,250,250,63,252, +219,254,164,1,220,3,214,5,26,8,94,10,162,11,135,11,245,10,8,11,247,11,23,13,140,13,247,12,159,11,250,9, +81,8,161,6,217,4,60,3,7,2,205,0,240,254,139,252,87,250,230,248,250,247,230,246,167,245,231,244,2,245,210,245, +243,246,191,247,248,247,93,248,171,249,153,251,139,253,113,255,107,1,76,3,192,4,143,5,197,5,240,5,154,6,103,7, +104,7,100,6,248,4,214,3,62,3,142,2,173,0,193,253,93,251,65,250,163,249,210,248,203,247,160,246,127,245,112,244, +55,243,82,242,213,242,181,244,154,246,125,247,165,247,50,248,212,249,245,251,181,253,34,255,206,0,211,2,159,4,148,5, +233,5,128,6,195,7,47,9,221,9,67,9,194,7,65,6,60,5,113,4,96,3,19,2,15,1,59,0,202,254,140,252, +55,250,143,248,246,247,43,248,121,248,114,248,51,248,42,248,148,248,10,249,50,249,160,249,207,250,111,252,37,254,118,255, +209,255,179,255,31,0,10,1,179,1,186,1,105,1,97,1,168,1,136,1,186,0,159,255,162,254,22,254,195,253,0,253, +221,251,211,250,207,249,214,248,75,248,3,248,197,247,11,248,209,248,64,249,24,249,222,248,234,248,137,249,25,251,74,253, +81,255,164,0,251,0,135,0,80,0,53,1,241,2,181,4,222,5,23,6,155,5,13,5,176,4,79,4,207,3,148,3, +251,3,130,4,69,4,72,3,38,2,31,1,102,0,37,0,20,0,59,0,1,1,188,1,121,1,221,0,10,1,202,1, +150,2,101,3,9,4,146,4,115,5,101,6,220,6,55,7,196,7,17,8,7,8,242,7,195,7,131,7,124,7,155,7, +159,7,76,7,79,6,232,4,3,4,237,3,20,4,236,3,81,3,122,2,216,1,162,1,201,1,68,2,214,2,42,3, +100,3,148,3,89,3,212,2,1,3,151,4,53,7,111,9,233,9,211,8,180,7,146,7,59,8,42,9,67,10,132,11, +92,12,16,12,160,10,143,8,124,6,83,5,132,5,56,6,95,6,159,5,25,4,106,2,78,1,159,0,236,255,131,255, +215,255,149,0,12,1,204,0,238,255,83,255,248,255,138,1,179,2,228,2,159,2,156,2,163,3,166,5,17,7,15,7, +210,6,32,7,83,7,27,7,185,6,137,6,253,6,159,7,17,7,48,5,95,3,101,2,183,1,175,0,121,255,169,254, +80,254,224,253,228,252,156,251,208,250,214,250,51,251,106,251,97,251,51,251,64,251,182,251,45,252,116,252,206,252,87,253, +25,254,0,255,138,255,139,255,180,255,161,0,244,1,156,2,18,2,35,1,219,0,66,1,171,1,95,1,78,0,95,255, +34,255,202,254,122,253,147,251,48,250,238,249,63,250,19,250,0,249,109,247,53,246,249,245,106,246,216,246,74,247,19,248, +248,248,117,249,49,249,87,248,187,247,19,248,51,249,95,250,43,251,187,251,39,252,21,252,105,251,173,250,134,250,49,251, +76,252,27,253,86,253,54,253,168,252,110,251,218,249,196,248,222,248,23,250,102,251,149,251,109,250,245,248,79,248,155,248, +52,249,176,249,58,250,39,251,90,252,41,253,9,253,61,252,206,251,154,252,87,254,233,255,120,0,223,255,199,254,49,254, +7,254,135,253,27,253,179,253,241,254,160,255,225,254,245,252,115,251,111,251,240,251,214,251,110,251,45,251,232,250,81,250, +58,249,17,248,220,247,226,248,15,250,119,250,84,250,2,250,121,249,79,249,65,250,200,251,230,252,116,253,142,253,59,253, +194,252,76,252,25,252,231,252,196,254,96,0,134,0,105,255,45,254,187,253,11,254,142,254,248,254,76,255,119,255,107,255, +74,255,40,255,31,255,151,255,198,0,34,2,6,3,51,3,217,2,216,2,228,3,114,5,219,6,76,8,187,9,218,10, +192,11,119,12,8,13,245,13,134,15,131,17,163,19,87,21,12,22,241,21,164,21,63,21,104,20,12,19,140,17,39,16, +15,15,89,14,250,12,189,9,124,5,6,2,215,255,65,254,89,252,32,250,214,248,164,248,14,248,195,246,151,245,214,244, +229,244,242,245,38,247,70,248,205,249,151,251,150,253,247,255,65,2,48,4,5,6,143,7,193,8,37,10,205,11,42,13, +237,13,67,14,67,14,109,13,110,11,236,8,156,6,138,4,134,2,111,0,60,254,192,251,157,248,72,245,246,242,185,241, +194,240,62,240,156,240,41,241,48,241,39,241,212,241,68,243,48,245,163,247,170,250,240,253,206,0,162,2,178,3,17,5, +235,6,156,8,87,10,62,12,84,13,34,13,58,12,211,10,235,8,246,6,72,5,165,3,200,1,180,255,93,253,159,250, +182,247,17,245,227,242,44,241,169,239,18,238,243,236,231,236,102,237,191,237,13,238,174,238,255,239,209,241,93,243,130,244, +166,245,236,246,208,248,103,251,61,253,164,253,214,253,135,254,19,255,219,254,239,253,69,253,222,253,40,255,180,255,22,255, +48,254,40,254,26,255,252,255,2,0,75,255,158,254,238,254,239,255,28,0,67,255,1,255,46,0,232,1,229,2,191,2, +105,2,26,3,193,4,56,6,168,6,34,6,100,5,83,5,239,5,252,5,159,4,227,2,82,2,195,2,190,2,121,1, +198,255,32,255,4,0,112,1,241,1,242,0,111,255,47,255,179,0,176,2,225,3,109,4,71,5,152,6,73,7,185,6, +234,5,50,6,147,7,0,9,144,9,57,9,99,8,142,7,107,7,240,7,56,8,40,8,25,8,26,7,60,4,98,0, +99,253,151,252,222,253,129,255,253,255,93,255,53,254,193,252,27,251,219,249,50,250,157,252,28,0,28,3,95,4,191,3, +146,2,243,1,204,1,88,2,2,4,20,6,186,7,220,8,75,9,172,8,5,7,251,4,171,3,126,3,138,3,12,3, +114,2,110,2,178,2,72,2,216,0,238,254,23,253,155,251,153,250,54,250,4,251,51,253,119,255,70,0,120,255,251,253, +11,253,83,253,91,254,123,255,175,0,5,2,53,3,182,3,221,2,189,0,158,254,3,254,25,255,130,0,31,1,31,1, +187,0,173,255,7,254,44,252,180,250,80,250,201,250,111,251,35,252,82,252,70,251,222,249,67,249,85,249,206,249,189,250, +226,251,251,252,210,253,47,254,46,254,239,253,126,253,74,253,184,253,140,254,34,255,1,255,77,254,99,253,63,252,27,251, +100,250,231,249,118,249,145,249,69,250,191,250,90,250,32,249,183,247,228,246,17,247,44,248,143,249,99,250,151,250,166,250, +197,250,227,250,213,250,218,250,217,251,217,253,129,255,46,0,117,0,148,0,102,0,19,0,239,255,81,0,61,1,47,2, +193,2,236,2,143,2,154,1,120,0,185,255,144,255,11,0,47,1,121,2,22,3,212,2,24,2,61,1,147,0,86,0, +180,0,236,1,128,3,95,4,133,4,115,4,189,3,92,2,109,1,156,1,145,2,117,3,102,3,162,2,50,2,24,2, +176,1,5,1,74,0,120,255,207,254,174,254,60,255,60,0,211,0,91,0,94,255,193,254,169,254,225,254,66,255,147,255, +14,0,91,1,253,2,75,3,0,2,211,0,253,0,40,2,114,3,19,4,225,3,158,3,224,3,91,4,131,4,244,3, +212,2,43,2,151,2,8,3,82,2,224,0,189,255,102,255,189,255,28,0,15,0,238,255,221,255,155,255,138,255,231,255, +3,0,241,255,164,0,6,2,72,3,23,4,52,4,165,3,35,3,70,3,30,4,50,5,162,5,93,5,48,5,51,5, +217,4,42,4,92,3,115,2,167,1,60,1,65,1,108,1,0,1,203,255,193,254,133,254,90,254,103,253,24,252,175,251, +179,252,73,254,16,255,138,254,164,253,165,253,114,254,239,254,188,254,131,254,29,255,163,0,221,1,188,1,6,1,250,0, +141,1,27,2,35,2,132,1,18,1,122,1,14,2,39,2,219,1,27,1,25,0,128,255,36,255,108,254,208,253,229,253, +59,254,80,254,23,254,126,253,197,252,144,252,222,252,9,253,240,252,17,253,168,253,86,254,152,254,97,254,3,254,187,253, +186,253,25,254,153,254,36,255,236,255,175,0,2,1,249,0,129,0,161,255,65,255,236,255,223,0,81,1,255,0,247,255, +250,254,170,254,182,254,228,254,50,255,46,255,179,254,59,254,20,254,86,254,207,254,250,254,239,254,42,255,87,255,246,254, +80,254,9,254,180,254,51,0,106,1,136,1,183,0,121,255,146,254,190,254,232,255,82,1,47,2,63,2,231,1,38,1, +207,255,7,255,214,255,99,1,114,2,101,2,12,1,160,255,140,255,255,255,203,255,178,255,174,0,89,2,66,3,43,2, +231,255,160,254,47,255,22,1,78,3,61,4,95,3,36,2,191,1,21,2,139,2,149,2,140,2,93,3,187,4,51,5, +20,4,107,2,219,1,96,2,171,2,178,2,241,2,201,2,37,2,179,1,42,1,96,0,3,0,43,0,159,0,50,1, +64,1,205,0,144,0,101,0,81,0,234,0,153,1,141,1,94,1,168,1,1,2,154,1,51,0,24,255,233,255,17,2, +179,3,241,3,253,2,164,1,233,0,59,1,78,2,59,3,56,3,188,2,147,2,122,2,7,2,82,1,220,0,148,1, +31,3,159,3,194,2,151,1,49,0,10,255,115,255,35,1,163,2,1,3,205,1,169,255,66,254,123,254,233,255,73,1, +104,1,186,0,99,0,250,255,181,254,43,253,117,252,38,253,202,254,246,255,195,255,164,254,148,253,86,253,208,253,97,254, +225,254,40,255,247,254,216,254,18,255,242,254,154,254,207,254,80,255,156,255,178,255,135,255,101,255,137,255,96,255,172,254, +1,254,179,253,203,253,40,254,43,254,133,253,178,252,12,252,144,251,86,251,115,251,162,251,135,251,47,251,240,250,211,250, +171,250,153,250,218,250,102,251,14,252,184,252,107,253,230,253,187,253,108,253,240,253,224,254,76,255,111,255,178,255,14,0, +213,0,194,1,171,1,176,0,56,0,146,0,30,1,121,1,52,1,71,0,135,255,67,255,24,255,35,255,80,255,254,254, +153,254,216,254,247,254,125,254,99,254,215,254,44,255,165,255,60,0,37,0,243,255,157,0,99,1,192,1,133,2,153,3, +33,4,61,4,47,4,33,4,199,4,199,5,200,5,46,5,69,5,162,5,156,5,167,5,152,5,32,5,7,5,59,5, +163,4,180,3,103,3,11,3,38,2,142,1,107,1,49,1,250,0,191,0,29,0,90,255,204,254,92,254,117,254,86,255, +242,255,136,255,172,254,221,253,51,253,249,252,6,253,231,252,255,252,160,253,243,253,115,253,207,252,168,252,8,253,188,253, +68,254,66,254,247,253,143,253,12,253,228,252,77,253,156,253,90,253,225,252,159,252,219,252,138,253,243,253,163,253,81,253, +183,253,109,254,187,254,155,254,121,254,121,254,95,254,88,254,220,254,163,255,254,255,16,0,55,0,67,0,82,0,179,0, +18,1,115,1,94,2,86,3,136,3,120,3,180,3,202,3,205,3,80,4,14,5,134,5,140,5,236,4,14,4,247,3, +145,4,212,4,99,4,110,3,113,2,78,2,255,2,66,3,157,2,172,1,229,0,155,0,197,0,123,0,114,255,174,254, +157,254,183,254,206,254,160,254,205,253,252,252,245,252,63,253,70,253,11,253,145,252,66,252,167,252,12,253,166,252,28,252, +7,252,29,252,94,252,217,252,39,253,70,253,87,253,253,252,134,252,212,252,152,253,230,253,210,253,174,253,101,253,46,253, +74,253,157,253,22,254,117,254,67,254,172,253,57,253,213,252,115,252,109,252,169,252,194,252,171,252,79,252,203,251,194,251, +51,252,90,252,72,252,174,252,79,253,152,253,185,253,247,253,71,254,197,254,103,255,200,255,251,255,119,0,32,1,125,1, +133,1,112,1,68,1,24,1,44,1,119,1,154,1,83,1,186,0,23,0,150,255,68,255,37,255,25,255,202,254,23,254, +78,253,189,252,98,252,47,252,20,252,246,251,237,251,38,252,113,252,152,252,214,252,84,253,218,253,83,254,215,254,72,255, +162,255,49,0,241,0,123,1,176,1,206,1,250,1,38,2,46,2,231,1,83,1,187,0,90,0,34,0,250,255,209,255, +116,255,192,254,235,253,71,253,243,252,253,252,59,253,47,253,191,252,118,252,129,252,114,252,89,252,182,252,108,253,6,254, +140,254,14,255,71,255,68,255,120,255,254,255,140,0,233,0,29,1,84,1,152,1,153,1,45,1,174,0,108,0,84,0, +109,0,197,0,235,0,128,0,197,255,6,255,78,254,253,253,94,254,232,254,2,255,222,254,199,254,165,254,131,254,161,254, +243,254,88,255,248,255,205,0,130,1,223,1,248,1,14,2,103,2,239,2,68,3,103,3,196,3,91,4,168,4,119,4, +12,4,161,3,88,3,89,3,163,3,226,3,188,3,39,3,116,2,251,1,182,1,107,1,20,1,215,0,169,0,85,0, +210,255,85,255,3,255,206,254,178,254,219,254,79,255,198,255,18,0,91,0,192,0,44,1,139,1,200,1,197,1,183,1, +7,2,157,2,237,2,172,2,20,2,149,1,134,1,199,1,199,1,82,1,234,0,218,0,196,0,105,0,254,255,138,255, +236,254,107,254,94,254,152,254,190,254,215,254,0,255,41,255,67,255,90,255,116,255,185,255,98,0,53,1,171,1,192,1, +248,1,137,2,46,3,205,3,117,4,239,4,244,4,185,4,186,4,32,5,142,5,131,5,216,4,246,3,98,3,70,3, +108,3,126,3,46,3,146,2,55,2,72,2,55,2,207,1,174,1,25,2,112,2,101,2,115,2,196,2,234,2,223,2, +20,3,144,3,10,4,138,4,41,5,165,5,196,5,155,5,73,5,243,4,228,4,47,5,109,5,66,5,200,4,52,4, +156,3,47,3,35,3,84,3,98,3,7,3,91,2,199,1,128,1,49,1,186,0,166,0,32,1,106,1,9,1,93,0, +225,255,198,255,35,0,180,0,223,0,147,0,149,0,87,1,17,2,227,1,81,1,81,1,196,1,10,2,23,2,17,2, +242,1,202,1,143,1,21,1,138,0,68,0,56,0,40,0,255,255,191,255,86,255,166,254,205,253,76,253,103,253,193,253, +255,253,69,254,187,254,53,255,66,255,174,254,9,254,8,254,132,254,229,254,213,254,55,254,142,253,230,253,27,255,158,255, +193,254,142,253,56,253,251,253,16,255,72,255,54,254,132,252,80,251,136,251,240,252,251,253,189,253,248,252,93,252,199,251, +81,251,85,251,157,251,176,251,45,251,13,250,2,249,211,248,55,249,45,249,68,248,17,247,158,246,69,247,57,248,138,248, +14,248,29,247,64,246,254,245,134,246,136,247,87,248,107,248,21,248,245,247,216,247,66,247,137,246,54,246,108,246,45,247, +246,247,2,248,149,247,142,247,230,247,44,248,80,248,58,248,18,248,114,248,52,249,148,249,134,249,41,249,66,248,88,247, +52,247,97,247,31,247,138,246,171,245,61,244,178,242,86,242,54,244,210,247,22,251,68,252,98,251,208,249,114,249,218,251, +39,1,0,8,156,14,31,20,101,25,16,31,47,35,87,35,8,32,30,28,187,26,150,29,110,35,107,41,150,45,13,46, +7,41,232,31,34,23,75,18,0,18,58,20,178,21,131,19,207,11,253,254,92,241,111,232,69,230,162,232,23,235,5,234, +146,229,161,224,137,221,164,221,100,225,83,231,69,237,185,241,143,243,121,243,77,245,222,252,228,9,152,23,70,32,95,34, +119,33,152,33,164,35,48,38,205,39,114,40,17,41,222,41,105,41,67,37,85,28,112,17,19,9,144,4,196,1,104,253, +217,244,177,233,143,225,152,222,245,220,10,217,186,210,122,204,136,202,245,206,128,214,236,220,127,225,191,229,101,235,209,242, +222,249,68,254,24,1,24,6,221,15,208,28,220,39,206,44,207,43,160,40,215,38,133,38,58,37,247,33,235,29,164,26, +208,24,76,22,246,14,177,2,159,246,155,238,75,234,103,231,141,227,192,222,225,219,193,219,105,219,190,216,245,212,68,211, +192,214,2,223,192,231,123,237,92,240,167,242,180,246,5,253,71,3,233,6,149,8,144,11,78,17,252,22,209,24,95,22, +96,18,38,16,50,17,9,19,242,16,151,9,182,0,248,250,178,249,175,249,141,246,87,240,85,235,7,234,167,234,18,234, +224,230,228,226,246,225,199,229,27,236,56,241,187,242,165,241,36,242,233,246,202,253,235,2,48,5,177,6,220,9,81,14, +110,17,239,17,22,17,181,16,82,17,132,17,167,15,81,12,120,9,56,8,23,8,230,6,255,2,48,254,21,251,100,249, +200,247,245,245,66,244,5,244,245,245,191,247,254,246,184,244,135,243,233,244,93,248,94,251,23,252,247,251,148,253,67,1, +228,4,243,5,38,4,31,2,138,2,61,5,230,7,167,8,158,7,118,6,140,6,137,7,236,7,185,6,133,4,230,2, +17,3,230,4,18,7,239,7,207,6,190,4,158,3,84,4,23,6,81,7,15,7,231,5,124,5,189,6,156,8,216,8, +117,6,8,3,32,1,145,1,199,2,176,2,238,0,2,255,81,254,120,254,195,253,79,251,98,248,13,247,215,247,157,249, +239,250,1,251,95,250,115,250,191,251,179,253,208,255,170,1,36,3,204,4,160,6,233,7,212,8,9,10,83,11,35,12, +96,12,110,12,178,12,206,12,226,11,176,9,240,6,224,4,3,4,56,3,67,1,90,254,56,251,130,248,203,246,183,245, +130,244,102,243,209,242,146,242,142,242,179,242,218,242,54,243,228,243,246,244,251,246,65,250,9,254,51,1,24,3,12,4, +21,5,168,6,103,8,204,9,93,10,50,10,48,10,167,10,157,10,255,8,195,5,23,2,153,255,137,254,110,253,32,251, +31,248,136,245,220,243,229,242,220,241,19,240,45,238,191,237,70,239,179,241,224,243,127,245,10,247,59,249,34,252,76,255, +146,2,206,5,156,8,16,11,136,13,0,16,40,18,143,19,203,19,37,19,88,18,132,17,88,16,173,14,86,12,55,9, +201,5,181,2,10,0,61,253,215,249,36,246,0,243,218,240,116,239,136,238,253,237,232,237,150,238,219,239,24,241,91,242, +34,244,96,246,3,249,84,252,9,0,72,3,155,5,51,7,137,8,220,9,39,11,119,12,114,13,27,13,41,11,169,8, +182,6,114,5,12,4,135,1,251,253,135,250,255,247,55,246,84,244,216,241,115,239,38,238,242,237,32,238,43,238,33,238, +152,238,50,240,11,243,104,246,13,249,192,250,201,252,251,255,167,3,216,6,8,9,55,10,41,11,134,12,24,14,94,15, +223,15,58,15,193,13,50,12,184,10,10,9,247,6,125,4,237,1,175,255,209,253,11,252,25,250,227,247,176,245,74,244, +67,244,9,245,129,245,114,245,144,245,160,246,173,248,198,250,28,252,61,253,16,255,126,1,221,3,125,5,27,6,108,6, +45,7,24,8,142,8,51,8,246,6,124,5,155,4,43,4,53,3,60,1,212,254,212,252,58,251,151,249,25,248,233,246, +184,245,154,244,232,243,126,243,48,243,33,243,127,243,122,244,12,246,186,247,52,249,172,250,61,252,191,253,75,255,57,1, +142,3,180,5,37,7,31,8,81,9,217,10,236,11,231,11,83,11,31,11,85,11,91,11,217,10,207,9,143,8,148,7, +204,6,142,5,168,3,157,1,24,0,145,255,220,255,254,255,89,255,76,254,98,253,231,252,26,253,221,253,195,254,151,255, +80,0,7,1,235,1,207,2,149,3,162,4,238,5,218,6,85,7,186,7,247,7,195,7,71,7,48,7,190,7,6,8, +57,7,199,5,78,4,21,3,151,2,189,2,159,2,221,1,206,0,223,255,84,255,246,254,103,254,236,253,2,254,175,254, +111,255,143,255,37,255,40,255,62,0,69,2,144,4,23,6,126,6,92,6,52,6,113,6,133,7,252,8,247,9,77,10, +26,10,128,9,197,8,220,7,190,6,215,5,80,5,251,4,162,4,214,3,119,2,8,1,248,255,109,255,77,255,26,255, +193,254,178,254,242,254,113,255,83,0,54,1,204,1,137,2,157,3,211,4,8,6,179,6,166,6,220,6,224,7,13,9, +227,9,58,10,200,9,202,8,201,7,225,6,248,5,8,5,28,4,104,3,213,2,215,1,72,0,123,254,164,252,4,251, +238,249,103,249,70,249,53,249,251,248,247,248,96,249,201,249,76,250,83,251,133,252,160,253,230,254,28,0,40,1,130,2, +217,3,127,4,189,4,7,5,91,5,184,5,220,5,98,5,118,4,135,3,212,2,94,2,157,1,23,0,61,254,172,252, +97,251,47,250,60,249,173,248,78,248,200,247,32,247,127,246,224,245,90,245,60,245,223,245,84,247,227,248,160,249,165,249, +185,249,91,250,195,251,162,253,3,255,93,255,35,255,25,255,168,255,107,0,150,0,220,255,163,254,193,253,207,253,47,254, +163,253,241,251,218,249,86,248,224,247,167,247,163,246,74,245,133,244,77,244,105,244,163,244,130,244,45,244,103,244,95,245, +136,246,71,247,104,247,108,247,4,248,67,249,167,250,185,251,68,252,104,252,142,252,29,253,4,254,188,254,208,254,100,254, +25,254,102,254,16,255,89,255,193,254,122,253,80,252,230,251,0,252,226,251,66,251,92,250,160,249,114,249,150,249,94,249, +185,248,62,248,70,248,195,248,140,249,95,250,2,251,121,251,217,251,1,252,227,251,233,251,145,252,191,253,224,254,133,255, +139,255,51,255,26,255,157,255,85,0,190,0,244,0,72,1,177,1,245,1,4,2,13,2,80,2,182,2,236,2,7,3, +52,3,103,3,218,3,146,4,225,4,176,4,194,4,26,5,79,5,197,5,184,6,123,7,126,7,230,6,64,6,39,6, +190,6,125,7,179,7,76,7,220,6,188,6,172,6,113,6,7,6,136,5,67,5,87,5,130,5,141,5,65,5,156,4, +87,4,250,4,241,5,136,6,170,6,145,6,160,6,20,7,187,7,89,8,215,8,56,9,122,9,87,9,223,8,224,8, +149,9,68,10,123,10,27,10,17,9,235,7,38,7,135,6,16,6,225,5,114,5,97,4,244,2,146,1,168,0,62,0, +196,255,19,255,143,254,38,254,188,253,149,253,175,253,242,253,127,254,7,255,35,255,58,255,209,255,205,0,14,2,75,3, +181,3,8,3,54,2,84,2,117,3,155,4,171,4,166,3,129,2,235,1,181,1,49,1,9,0,180,254,178,253,221,252, +1,252,248,250,129,249,240,247,252,246,178,246,193,246,205,246,65,246,48,245,139,244,158,244,234,244,60,245,153,245,250,245, +154,246,162,247,170,248,44,249,55,249,78,249,199,249,191,250,27,252,6,253,148,252,80,251,144,250,194,250,89,251,116,251, +147,250,138,249,121,249,229,249,145,249,82,248,244,246,105,246,24,247,58,248,186,248,163,248,154,248,193,248,4,249,161,249, +181,250,255,251,91,253,216,254,67,0,42,1,105,1,105,1,212,1,246,2,95,4,104,5,224,5,228,5,123,5,203,4, +72,4,25,4,227,3,91,3,135,2,154,1,229,0,94,0,127,255,69,254,98,253,33,253,46,253,37,253,158,252,171,251, +41,251,160,251,121,252,228,252,239,252,119,253,238,254,171,0,190,1,227,1,157,1,214,1,8,3,187,4,27,6,159,6, +112,6,73,6,85,6,243,5,28,5,98,4,14,4,38,4,53,4,112,3,27,2,238,0,190,255,156,254,37,254,14,254, +217,253,180,253,118,253,220,252,123,252,213,252,158,253,82,254,203,254,84,255,62,0,90,1,44,2,164,2,83,3,193,4, +149,6,12,8,225,8,9,9,202,8,254,8,202,9,40,10,196,9,70,9,234,8,164,8,109,8,200,7,110,6,29,5, +94,4,179,3,203,2,244,1,72,1,186,0,93,0,234,255,47,255,196,254,14,255,111,255,55,255,143,254,68,254,212,254, +216,255,172,0,51,1,132,1,191,1,232,1,194,1,114,1,129,1,231,1,79,2,115,2,211,1,160,0,183,255,20,255, +99,254,207,253,14,253,2,252,85,251,235,250,28,250,46,249,113,248,219,247,160,247,152,247,118,247,134,247,217,247,43,248, +142,248,3,249,114,249,42,250,55,251,1,252,15,252,166,251,153,251,58,252,6,253,169,253,50,254,135,254,174,254,166,254, +74,254,237,253,215,253,205,253,217,253,247,253,161,253,13,253,214,252,149,252,253,251,146,251,109,251,116,251,0,252,231,252, +116,253,136,253,130,253,153,253,204,253,255,253,61,254,202,254,167,255,106,0,191,0,174,0,114,0,64,0,22,0,197,255, +91,255,2,255,183,254,146,254,141,254,37,254,84,253,184,252,84,252,230,251,175,251,181,251,190,251,215,251,206,251,137,251, +140,251,231,251,58,252,190,252,120,253,217,253,251,253,109,254,36,255,187,255,26,0,115,0,218,0,26,1,29,1,18,1, +14,1,20,1,28,1,249,0,172,0,72,0,181,255,39,255,210,254,132,254,58,254,3,254,170,253,112,253,146,253,153,253, +127,253,209,253,104,254,255,254,187,255,113,0,20,1,245,1,245,2,230,3,0,5,18,6,219,6,189,7,199,8,152,9, +65,10,229,10,106,11,243,11,116,12,170,12,195,12,207,12,114,12,223,11,142,11,109,11,118,11,169,11,147,11,23,11, +140,10,213,9,224,8,1,8,83,7,252,6,46,7,107,7,21,7,64,6,84,5,198,4,180,4,177,4,175,4,233,4, +253,4,190,4,182,4,235,4,220,4,112,4,223,3,132,3,158,3,217,3,190,3,71,3,158,2,250,1,146,1,105,1, +83,1,12,1,131,0,23,0,219,255,123,255,21,255,237,254,199,254,162,254,215,254,54,255,48,255,167,254,250,253,133,253, +93,253,137,253,248,253,82,254,140,254,245,254,76,255,55,255,20,255,54,255,133,255,37,0,35,1,16,2,105,2,240,1, +31,1,236,0,118,1,40,2,210,2,57,3,253,2,112,2,4,2,142,1,235,0,71,0,207,255,190,255,240,255,239,255, +181,255,87,255,153,254,197,253,107,253,102,253,96,253,69,253,229,252,84,252,229,251,131,251,22,251,200,250,125,250,11,250, +167,249,111,249,64,249,0,249,194,248,189,248,203,248,82,248,91,247,176,246,143,246,110,246,250,245,96,245,234,244,154,244, +49,244,177,243,89,243,48,243,255,242,147,242,7,242,186,241,196,241,229,241,14,242,79,242,167,242,19,243,106,243,123,243, +90,243,45,243,29,243,108,243,32,244,4,245,36,246,139,247,229,248,251,249,8,251,123,252,120,254,145,0,44,2,89,3, +192,4,174,6,226,8,75,11,228,13,26,16,164,17,52,19,67,21,131,23,155,25,24,27,136,27,82,27,34,27,228,26, +114,26,63,26,102,26,1,26,77,24,162,21,154,18,131,15,18,13,148,11,234,9,55,7,230,3,88,0,176,252,98,249, +204,246,45,245,188,244,35,245,205,245,138,246,110,247,101,248,5,249,69,249,6,250,231,251,110,254,14,1,163,3,29,6, +149,8,236,10,222,12,143,14,0,16,10,17,13,18,238,18,209,18,151,17,235,15,29,14,20,12,189,9,84,7,245,4, +38,2,251,254,49,252,158,249,252,246,238,244,81,243,126,241,252,239,66,239,216,238,190,238,114,239,26,241,101,243,231,245, +190,248,0,252,233,254,63,1,183,3,75,6,185,8,79,11,205,13,198,15,121,17,218,18,158,19,167,19,156,18,206,16, +51,15,137,13,251,10,220,7,156,4,2,1,28,253,73,249,172,245,44,242,200,238,217,235,134,233,141,231,14,230,41,229, +70,228,91,227,40,227,203,227,12,229,20,231,155,233,51,236,252,238,194,241,7,244,26,246,123,248,254,250,74,253,40,255, +157,0,249,1,42,3,131,3,239,2,49,2,156,1,224,0,209,255,103,254,152,252,156,250,175,248,137,246,12,244,208,241, +85,240,120,239,12,239,24,239,137,239,21,240,141,240,13,241,195,241,198,242,120,244,31,247,248,249,82,252,185,254,97,1, +150,3,90,5,57,7,46,9,26,11,206,12,219,13,87,14,120,14,4,14,40,13,44,12,226,10,166,9,197,8,127,7, +152,5,185,3,217,1,203,255,7,254,175,252,125,251,116,250,154,249,227,248,103,248,40,248,48,248,121,248,212,248,95,249, +86,250,112,251,95,252,56,253,9,254,225,254,217,255,170,0,47,1,10,2,198,3,213,5,50,7,111,7,241,6,109,6, +75,6,144,6,72,7,85,8,7,9,240,8,119,8,212,7,240,6,92,6,167,6,82,7,204,7,53,8,93,8,155,7, +27,6,187,4,174,3,224,2,201,2,69,3,115,3,38,3,109,2,193,0,129,254,246,252,108,252,94,252,152,252,231,252, +18,253,7,253,168,252,47,252,60,252,2,253,73,254,8,0,46,2,63,4,178,5,170,6,140,7,76,8,34,9,172,10, +147,12,8,14,11,15,154,15,104,15,185,14,184,13,82,12,33,11,98,10,68,9,101,7,14,5,65,2,60,255,153,252, +105,250,89,248,114,246,241,244,219,243,43,243,194,242,47,242,116,241,105,241,96,242,214,243,195,245,79,248,206,250,192,252, +131,254,100,0,104,2,173,4,42,7,149,9,165,11,14,13,130,13,51,13,216,12,136,12,189,11,138,10,34,9,2,7, +62,4,139,1,188,254,156,251,195,248,58,246,166,243,111,241,191,239,31,238,190,236,26,236,232,235,207,235,40,236,60,237, +204,238,221,240,167,243,188,246,144,249,38,252,160,254,98,1,232,4,129,8,65,11,122,13,103,15,158,16,98,17,255,17, +51,18,17,18,157,17,121,16,199,14,195,12,49,10,65,7,154,4,120,2,122,0,38,254,124,251,222,248,157,246,14,245, +68,244,212,243,157,243,211,243,76,244,4,245,18,246,19,247,48,248,53,250,223,252,56,255,20,1,193,2,120,4,92,6, +30,8,73,9,248,9,122,10,216,10,227,10,118,10,150,9,66,8,115,6,119,4,145,2,132,0,69,254,68,252,113,250, +60,248,187,245,149,243,255,241,203,240,245,239,149,239,148,239,148,239,95,239,130,239,176,240,203,242,88,245,208,247,158,249, +37,251,56,253,99,255,39,1,15,3,7,5,149,6,21,8,75,9,145,9,137,9,179,9,111,9,180,8,238,7,250,6, +207,5,141,4,4,3,50,1,75,255,107,253,181,251,65,250,1,249,235,247,251,246,90,246,56,246,125,246,25,247,219,247, +63,248,118,248,81,249,183,250,38,252,225,253,244,255,186,1,251,2,248,3,171,4,58,5,33,6,65,7,207,7,147,7, +14,7,103,6,111,5,83,4,68,3,15,2,119,0,148,254,236,252,202,251,184,250,101,249,34,248,242,246,185,245,241,244, +191,244,171,244,180,244,45,245,11,246,25,247,5,248,179,248,186,249,147,251,157,253,23,255,32,0,53,1,152,2,85,4, +36,6,93,7,185,7,222,7,98,8,222,8,224,8,167,8,67,8,128,7,161,6,216,5,216,4,180,3,220,2,39,2, +77,1,152,0,53,0,207,255,103,255,87,255,107,255,69,255,39,255,65,255,111,255,239,255,223,0,184,1,78,2,230,2, +113,3,9,4,240,4,228,5,185,6,117,7,206,7,215,7,3,8,54,8,98,8,171,8,175,8,86,8,18,8,163,7, +210,6,71,6,53,6,15,6,98,5,32,4,218,2,45,2,226,1,178,1,191,1,233,1,236,1,195,1,128,1,64,1, +6,1,250,0,164,1,206,2,175,3,67,4,128,4,36,4,228,3,68,4,230,4,223,5,238,6,48,7,13,7,87,7, +180,7,230,7,38,8,116,8,221,8,33,9,20,9,40,9,31,9,133,8,17,8,234,7,116,7,4,7,149,6,141,5, +181,4,199,4,254,4,199,4,32,4,40,3,137,2,151,2,10,3,164,3,161,3,149,2,154,1,115,1,156,1,198,1, +243,1,11,2,26,2,16,2,242,1,246,1,236,1,236,1,110,2,1,3,7,3,207,2,125,2,6,2,231,1,57,2, +129,2,152,2,90,2,147,1,154,0,3,0,221,255,186,255,109,255,78,255,122,255,119,255,34,255,203,254,135,254,92,254, +129,254,218,254,2,255,233,254,207,254,178,254,98,254,21,254,12,254,0,254,195,253,139,253,71,253,235,252,228,252,58,253, +65,253,173,252,233,251,110,251,108,251,179,251,251,251,49,252,40,252,154,251,219,250,134,250,141,250,160,250,222,250,72,251, +118,251,53,251,203,250,137,250,125,250,143,250,206,250,76,251,203,251,11,252,236,251,114,251,12,251,254,250,195,250,42,250, +218,249,236,249,179,249,221,248,185,247,200,246,51,246,162,245,47,245,37,245,253,244,125,244,96,244,195,244,27,245,100,245, +172,245,208,245,230,245,22,246,158,246,152,247,122,248,240,248,95,249,230,249,92,250,224,250,104,251,229,251,165,252,124,253, +201,253,175,253,194,253,199,253,45,253,98,252,58,252,123,252,106,252,242,251,80,251,158,250,225,249,12,249,70,248,234,247, +231,247,7,248,44,248,241,247,79,247,247,246,65,247,254,247,248,248,199,249,84,250,242,250,100,251,72,251,246,250,207,250, +245,250,119,251,253,251,96,252,212,252,242,252,103,252,237,251,236,251,246,251,19,252,147,252,59,253,230,253,209,254,222,255, +187,0,150,1,203,2,71,4,242,5,246,7,62,10,160,12,6,15,213,16,153,17,51,18,179,19,66,22,194,25,94,29, +86,31,40,31,36,30,56,29,80,28,75,27,241,25,236,23,87,21,136,18,132,15,9,12,252,7,184,3,206,255,221,252, +78,251,169,250,216,249,106,248,168,246,185,244,217,242,170,241,170,241,0,243,151,245,248,248,93,252,36,255,90,1,201,3, +14,7,244,10,244,14,121,18,1,21,209,22,166,24,72,26,163,26,105,25,161,23,82,22,147,21,8,21,191,19,15,16, +205,9,27,3,118,253,224,248,202,245,18,244,227,241,52,238,246,233,64,230,149,227,78,226,157,226,74,228,173,230,87,233, +82,236,65,239,169,241,24,244,110,247,163,251,44,0,235,4,18,10,9,15,173,18,232,20,38,22,78,22,53,22,3,23, +199,23,12,23,185,20,202,16,223,11,197,7,197,4,135,1,116,253,128,248,234,242,216,237,4,234,12,231,134,228,85,226, +203,224,152,224,158,225,27,227,185,228,116,230,119,232,16,235,55,238,228,241,36,246,106,250,64,254,225,1,53,5,229,7, +77,10,201,12,6,15,162,16,99,17,0,17,145,15,178,13,208,11,202,9,34,7,73,3,116,254,15,250,28,247,3,245, +0,243,190,240,159,237,13,234,240,231,197,231,52,232,246,232,104,234,201,235,13,237,79,239,80,242,13,245,26,248,34,252, +84,0,71,4,114,8,55,12,98,14,61,15,36,16,130,17,159,18,102,19,122,20,78,21,174,20,233,18,142,16,17,13, +217,8,116,5,52,3,132,1,55,0,220,254,157,252,70,249,154,245,185,242,41,241,214,240,208,241,217,243,240,245,58,247, +127,247,11,247,195,246,157,247,11,250,187,253,143,1,168,4,14,7,175,8,128,9,22,10,143,10,205,10,144,11,245,12, +12,14,141,14,119,14,92,13,123,11,147,9,18,8,47,7,179,6,90,6,50,6,171,5,85,4,14,3,45,2,10,1, +240,255,106,255,21,255,4,255,154,255,108,0,4,1,10,1,249,255,106,254,200,253,90,254,87,255,251,255,210,255,45,255, +207,254,181,254,94,254,203,253,69,253,12,253,96,253,10,254,108,254,93,254,36,254,236,253,240,253,103,254,10,255,159,255, +143,0,235,1,244,2,111,3,233,3,110,4,191,4,69,5,28,6,92,6,150,5,154,4,61,4,117,4,172,4,58,4, +213,2,221,0,59,255,152,254,138,254,24,254,2,253,169,251,105,250,188,249,185,249,164,249,47,249,248,248,82,249,69,250, +233,251,146,253,105,254,225,254,190,255,206,0,188,1,176,2,231,3,124,5,9,7,171,7,14,7,216,5,227,4,183,4, +36,5,61,5,78,4,178,2,26,1,173,255,25,254,49,252,28,250,28,248,194,246,179,246,99,247,95,247,99,246,51,245, +16,244,107,243,50,244,42,246,53,248,254,249,128,251,108,252,250,252,182,253,171,254,185,255,12,1,159,2,255,3,187,4, +198,4,68,4,99,3,95,2,106,1,169,0,50,0,206,255,56,255,113,254,81,253,168,251,230,249,119,248,102,247,22,247, +152,247,25,248,106,248,14,249,171,249,192,249,240,249,220,250,68,252,9,254,91,0,212,2,155,4,137,5,45,6,182,6, +2,7,104,7,48,8,251,8,78,9,226,8,192,7,116,6,94,5,31,4,63,2,192,255,57,253,165,251,91,251,104,251, +183,250,249,248,133,246,89,244,152,243,70,244,99,245,50,246,164,246,245,246,139,247,185,248,77,250,204,251,10,253,54,254, +138,255,42,1,232,2,79,4,60,5,212,5,242,5,122,5,216,4,127,4,97,4,67,4,228,3,232,2,30,1,232,254, +23,253,54,252,227,251,66,251,6,250,163,248,198,247,208,247,128,248,43,249,128,249,161,249,208,249,137,250,67,252,139,254, +104,0,150,1,130,2,101,3,75,4,121,5,246,6,70,8,31,9,203,9,98,10,138,10,33,10,101,9,131,8,131,7, +133,6,171,5,215,4,238,3,21,3,22,2,123,0,175,254,129,253,216,252,120,252,190,252,133,253,33,254,136,254,237,254, +79,255,221,255,179,0,159,1,190,2,104,4,97,6,187,7,237,7,193,7,29,8,167,8,22,9,247,9,12,11,90,11, +212,10,229,9,205,8,240,7,74,7,82,6,27,5,247,3,200,2,195,1,44,1,98,0,229,254,120,253,21,253,166,253, +122,254,50,255,190,255,21,0,103,0,229,0,92,1,189,1,110,2,153,3,240,4,253,5,107,6,113,6,165,6,36,7, +153,7,172,7,44,7,117,6,25,6,253,5,219,5,173,5,234,4,75,3,197,1,236,0,71,0,232,255,16,0,9,0, +93,255,199,254,228,254,101,255,161,255,111,255,106,255,13,0,37,1,110,2,158,3,46,4,43,4,75,4,219,4,171,5, +125,6,245,6,236,6,201,6,209,6,184,6,29,6,32,5,81,4,235,3,157,3,55,3,203,2,58,2,104,1,135,0, +160,255,181,254,54,254,116,254,253,254,28,255,193,254,113,254,108,254,132,254,193,254,115,255,162,0,242,1,231,2,62,3, +27,3,220,2,227,2,52,3,69,3,205,2,101,2,83,2,35,2,210,1,103,1,60,0,126,254,71,253,168,252,22,252, +157,251,19,251,26,250,21,249,88,248,161,247,255,246,163,246,85,246,19,246,37,246,148,246,77,247,46,248,202,248,251,248, +54,249,202,249,124,250,36,251,237,251,227,252,198,253,120,254,4,255,101,255,161,255,200,255,165,255,39,255,185,254,133,254, +60,254,210,253,101,253,199,252,239,251,71,251,228,250,115,250,253,249,161,249,17,249,78,248,242,247,23,248,66,248,101,248, +168,248,212,248,235,248,31,249,73,249,110,249,211,249,58,250,111,250,221,250,136,251,241,251,39,252,101,252,99,252,47,252, +36,252,8,252,150,251,52,251,39,251,32,251,210,250,44,250,70,249,130,248,56,248,37,248,187,247,230,246,21,246,150,245, +45,245,118,244,154,243,50,243,105,243,170,243,96,243,160,242,212,241,53,241,2,241,210,241,222,243,90,246,72,248,83,249, +143,249,95,249,135,249,129,250,35,252,12,254,204,255,53,1,194,2,202,4,126,6,215,6,58,6,52,6,153,7,200,9, +236,11,216,13,84,15,239,15,139,15,54,14,102,12,122,11,78,12,5,14,108,15,204,15,102,14,167,11,150,9,33,9, +58,9,90,9,250,9,212,10,41,11,220,10,30,10,65,9,226,8,49,9,20,10,203,11,211,13,203,14,245,14,116,15, +71,15,189,13,74,13,64,15,100,17,149,18,181,19,6,20,126,18,90,16,156,14,0,13,41,12,150,12,168,12,13,11, +148,8,18,6,122,3,41,1,50,255,186,252,60,250,136,249,59,250,12,250,125,248,134,246,168,244,178,243,54,244,26,245, +166,245,177,246,87,248,189,249,148,250,191,250,164,250,187,251,93,254,243,0,138,2,109,3,200,3,28,4,60,5,151,6, +230,6,101,6,21,6,250,5,185,5,95,5,191,4,165,3,62,2,90,0,247,253,80,252,0,252,163,251,98,250,11,249, +233,247,203,246,85,246,139,246,60,246,82,245,40,245,46,246,120,247,94,248,232,248,5,249,215,248,26,249,242,249,166,250, +105,251,2,253,178,254,96,255,78,255,180,254,153,253,52,253,4,254,85,254,56,253,249,251,97,251,171,250,102,249,35,248, +81,247,140,246,71,245,217,243,41,243,107,243,247,243,73,244,80,244,233,243,77,243,161,243,103,245,255,246,223,246,33,246, +149,246,42,248,245,249,139,251,141,252,210,252,242,252,92,253,186,253,226,253,63,254,23,255,58,0,60,1,105,1,99,0, +17,255,181,254,22,255,20,255,130,254,39,254,153,254,151,255,60,0,228,255,208,254,156,253,13,253,238,253,238,255,182,1, +163,2,227,2,164,2,105,2,189,2,103,3,29,4,252,4,227,5,177,6,118,7,184,7,1,7,220,5,30,5,13,5, +154,5,61,6,39,6,106,5,211,4,130,4,240,3,228,2,124,1,73,0,89,0,165,1,145,2,58,2,81,1,176,0, +214,0,196,1,111,2,36,2,213,1,139,2,246,3,78,5,213,5,15,5,207,3,167,3,171,4,158,5,4,6,1,6, +71,5,50,4,246,3,111,4,104,4,219,3,69,3,97,2,117,1,83,1,141,1,43,1,107,0,236,255,126,255,3,255, +246,254,61,255,28,255,188,254,246,254,180,255,56,0,110,0,192,0,104,1,43,2,152,2,174,2,192,2,211,2,33,3, +19,4,3,5,241,4,60,4,159,3,10,3,159,2,198,2,31,3,14,3,121,2,115,1,105,0,249,255,203,255,2,255, +201,253,236,252,184,252,24,253,172,253,176,253,206,252,155,251,253,250,85,251,46,252,210,252,12,253,5,253,234,252,254,252, +79,253,129,253,80,253,17,253,98,253,50,254,158,254,103,254,5,254,99,253,135,252,63,252,150,252,188,252,111,252,219,251, +76,251,3,251,122,250,109,249,188,248,185,248,221,248,32,249,86,249,246,248,77,248,4,248,72,248,239,248,115,249,128,249, +131,249,221,249,136,250,99,251,22,252,133,252,208,252,217,252,4,253,244,253,7,255,104,255,138,255,222,255,45,0,129,0, +212,0,214,0,174,0,200,0,14,1,44,1,60,1,107,1,95,1,219,0,93,0,21,0,171,255,109,255,212,255,80,0, +72,0,231,255,96,255,207,254,158,254,245,254,96,255,146,255,170,255,136,255,251,254,106,254,58,254,37,254,230,253,185,253, +214,253,29,254,81,254,86,254,12,254,105,253,233,252,10,253,107,253,177,253,2,254,22,254,219,253,2,254,99,254,60,254, +241,253,30,254,125,254,209,254,14,255,255,254,213,254,15,255,193,255,120,0,180,0,130,0,92,0,117,0,206,0,89,1, +197,1,4,2,81,2,157,2,205,2,198,2,102,2,24,2,66,2,153,2,249,2,115,3,176,3,183,3,177,3,71,3, +193,2,218,2,62,3,107,3,162,3,5,4,121,4,223,4,211,4,55,4,143,3,89,3,188,3,124,4,253,4,14,5, +249,4,207,4,127,4,12,4,121,3,44,3,135,3,233,3,113,3,94,2,151,1,134,1,231,1,13,2,110,1,74,0, +129,255,145,255,2,0,35,0,24,0,86,0,129,0,14,0,111,255,86,255,201,255,135,0,90,1,216,1,194,1,107,1, +95,1,202,1,82,2,185,2,3,3,37,3,47,3,47,3,246,2,236,2,195,3,164,4,75,4,130,3,163,3,87,4, +202,4,190,4,64,4,189,3,155,3,158,3,170,3,247,3,80,4,120,4,162,4,199,4,167,4,120,4,157,4,4,5, +87,5,121,5,169,5,31,6,159,6,208,6,189,6,165,6,196,6,47,7,138,7,116,7,71,7,149,7,77,8,226,8, +162,8,131,7,150,6,129,6,161,6,110,6,10,6,126,5,237,4,155,4,80,4,175,3,211,2,23,2,171,1,120,1, +77,1,237,0,51,0,149,255,132,255,132,255,81,255,91,255,127,255,101,255,88,255,94,255,78,255,104,255,87,255,194,254, +145,254,90,255,72,0,172,0,145,0,30,0,172,255,193,255,102,0,234,0,206,0,139,0,148,0,145,0,52,0,156,255, +13,255,243,254,78,255,121,255,8,255,52,254,154,253,128,253,74,253,185,252,118,252,105,252,15,252,244,251,66,252,17,252, +63,251,157,250,162,250,3,251,13,251,136,250,5,250,222,249,253,249,40,250,19,250,3,250,99,250,209,250,12,251,72,251, +69,251,223,250,152,250,157,250,171,250,138,250,53,250,6,250,30,250,10,250,109,249,81,248,77,247,36,247,112,247,83,247, +5,247,199,246,59,246,87,245,50,244,10,243,103,242,239,241,8,241,47,240,195,239,167,239,26,240,192,240,166,240,186,239, +140,238,221,237,114,238,104,240,56,243,7,246,232,247,243,248,229,249,244,250,95,252,14,254,7,255,95,255,91,0,104,2, +95,5,208,8,95,11,65,12,241,11,45,11,246,10,230,11,95,13,222,14,89,16,33,17,113,16,57,14,58,11,22,9, +3,9,149,10,62,12,5,12,24,9,175,5,206,4,95,6,195,7,8,7,136,4,190,2,224,3,220,6,103,8,69,7, +69,5,125,4,232,5,16,9,200,11,126,12,54,12,37,12,244,11,121,11,29,11,35,11,11,12,230,13,132,15,197,15, +139,14,12,12,243,8,228,6,248,6,197,7,217,6,232,3,169,0,218,254,45,255,255,255,123,254,176,250,124,247,206,246, +140,248,132,250,170,249,72,246,6,244,195,244,80,247,236,249,18,251,146,250,66,250,162,251,194,253,247,254,87,255,31,0, +131,1,250,2,93,4,45,5,22,5,8,5,169,5,116,6,252,6,191,6,125,5,146,4,16,5,182,5,2,5,1,3, +132,0,151,254,241,253,15,254,227,253,53,253,56,252,174,250,7,249,141,248,254,248,176,248,125,247,90,246,124,245,70,245, +50,246,97,247,227,247,180,247,213,246,221,245,3,246,38,247,75,248,84,249,13,250,176,249,113,248,156,247,251,247,46,249, +20,250,204,249,202,248,80,248,145,248,177,248,88,248,186,247,194,246,163,245,231,244,117,244,239,243,169,243,30,244,33,245, +200,245,50,245,189,243,224,242,87,243,129,244,171,245,183,246,139,247,18,248,242,248,210,250,247,252,235,253,131,253,35,253, +17,254,13,0,226,1,8,3,193,3,30,4,61,4,157,4,49,5,94,5,29,5,224,4,217,4,252,4,39,5,76,5, +109,5,46,5,52,4,229,2,241,1,125,1,44,1,187,0,145,0,46,1,239,1,205,1,253,0,70,0,237,255,53,0, +68,1,102,2,209,2,184,2,252,2,51,4,209,5,173,6,127,6,241,5,148,5,220,5,2,7,130,8,137,9,159,9, +239,8,89,8,113,8,144,8,22,8,97,7,247,6,250,6,78,7,109,7,228,6,239,5,225,4,210,3,17,3,194,2, +106,2,211,1,141,1,249,1,158,2,166,2,116,1,107,255,42,254,212,254,149,0,247,1,113,2,53,2,3,2,181,2, +228,3,85,4,249,3,224,3,154,4,235,5,130,7,229,8,129,9,105,9,39,9,224,8,190,8,41,9,244,9,162,10, +16,11,6,11,126,10,240,9,69,9,55,8,109,7,51,7,242,6,99,6,121,5,61,4,88,3,9,3,153,2,178,1, +152,0,139,255,164,254,197,253,15,253,249,252,45,253,238,252,85,252,200,251,142,251,254,251,161,252,139,252,247,251,229,251, +205,252,38,254,197,254,72,254,172,253,195,253,106,254,50,255,151,255,90,255,195,254,38,254,186,253,143,253,76,253,160,252, +156,251,125,250,170,249,80,249,248,248,37,248,205,246,104,245,226,244,74,245,99,245,178,244,8,244,255,243,183,244,214,245, +83,246,237,245,213,245,243,246,244,248,182,250,62,251,247,250,49,251,98,252,4,254,108,255,32,0,54,0,29,0,58,0, +206,0,126,1,113,1,153,0,176,255,87,255,163,255,182,255,171,254,57,253,111,252,43,252,41,252,74,252,239,251,11,251, +91,250,37,250,27,250,229,249,148,249,210,249,162,250,52,251,147,251,45,252,154,252,197,252,29,253,167,253,99,254,22,255, +33,255,201,254,214,254,59,255,195,255,53,0,240,255,1,255,49,254,224,253,3,254,26,254,100,253,52,252,139,251,126,251, +127,251,80,251,6,251,223,250,204,250,152,250,131,250,230,250,143,251,4,252,3,252,250,251,126,252,89,253,42,254,24,255, +19,0,245,0,245,1,219,2,72,3,102,3,91,3,118,3,89,4,144,5,11,6,218,5,140,5,46,5,237,4,203,4, +82,4,125,3,235,2,243,2,65,3,80,3,211,2,186,1,116,0,240,255,84,0,190,0,239,0,71,1,117,1,70,1, +65,1,120,1,145,1,162,1,239,1,166,2,157,3,24,4,233,3,208,3,11,4,50,4,91,4,181,4,214,4,88,4, +123,3,233,2,251,2,67,3,59,3,211,2,29,2,84,1,215,0,163,0,147,0,174,0,159,0,69,0,48,0,108,0, +120,0,128,0,210,0,71,1,218,1,118,2,197,2,230,2,17,3,63,3,191,3,167,4,92,5,174,5,230,5,238,5, +226,5,20,6,85,6,101,6,100,6,78,6,42,6,54,6,52,6,157,5,195,4,117,4,190,4,15,5,15,5,152,4, +161,3,168,2,74,2,100,2,130,2,162,2,181,2,137,2,105,2,181,2,43,3,84,3,20,3,168,2,159,2,55,3, +220,3,36,4,92,4,160,4,221,4,73,5,167,5,120,5,37,5,71,5,149,5,156,5,69,5,178,4,88,4,124,4, +189,4,148,4,214,3,239,2,151,2,175,2,104,2,212,1,170,1,224,1,216,1,68,1,117,0,29,0,140,0,49,1, +62,1,202,0,181,0,61,1,168,1,159,1,92,1,240,0,177,0,30,1,212,1,20,2,223,1,169,1,200,1,35,2, +58,2,227,1,169,1,233,1,35,2,181,1,0,1,203,0,212,0,123,0,241,255,119,255,12,255,4,255,44,255,191,254, +225,253,71,253,17,253,41,253,64,253,202,252,23,252,241,251,8,252,142,251,174,250,16,250,241,249,86,250,16,251,85,251, +193,250,63,250,153,250,56,251,113,251,99,251,66,251,60,251,156,251,52,252,116,252,64,252,246,251,196,251,138,251,72,251, +40,251,60,251,115,251,165,251,156,251,85,251,10,251,247,250,11,251,233,250,150,250,99,250,14,250,95,249,214,248,147,248, +61,248,251,247,212,247,142,247,92,247,39,247,171,246,155,246,87,247,251,247,16,248,235,247,169,247,91,247,61,247,54,247, +220,246,54,246,233,245,3,246,190,245,21,245,188,244,3,245,3,246,62,247,92,247,27,246,166,244,198,243,226,243,99,245, +219,247,15,250,10,251,41,251,102,251,193,251,60,252,125,253,206,254,79,255,9,0,104,1,218,2,197,4,118,6,146,6, +121,6,140,7,113,8,100,8,129,8,174,9,173,11,47,13,23,13,144,11,119,9,75,8,4,9,168,10,30,12,134,12, +196,10,213,8,194,9,124,11,243,10,56,9,169,7,244,6,133,8,83,11,178,12,113,12,128,11,79,10,215,9,160,10, +194,11,56,12,174,12,76,14,72,15,98,13,250,10,159,10,234,10,119,11,246,12,121,13,47,12,88,10,172,7,25,5, +18,5,248,5,155,4,219,1,145,255,194,253,30,253,50,254,154,254,60,252,115,249,90,249,246,250,210,251,26,251,23,249, +201,247,47,249,81,251,205,251,41,252,104,253,39,254,170,254,169,255,245,255,180,255,155,0,81,2,111,3,12,4,99,4, +43,4,255,3,54,4,234,3,96,3,194,3,212,3,31,2,137,0,213,0,118,1,238,0,153,255,218,253,6,252,238,250, +187,250,191,250,140,250,11,250,79,249,7,249,135,249,143,249,114,248,185,247,15,248,85,248,209,248,98,250,248,251,125,252, +50,252,136,251,98,251,118,252,209,253,144,254,54,255,243,255,31,0,191,255,152,255,212,255,199,255,125,255,189,255,67,0, +27,0,44,255,3,254,112,253,181,253,193,253,231,252,182,251,55,250,167,248,67,248,203,248,213,248,134,248,121,248,120,248, +159,248,209,248,105,248,204,247,196,247,245,247,44,248,6,249,44,250,109,250,9,250,87,250,87,251,252,251,52,252,136,252, +236,252,79,253,239,253,189,254,108,255,195,255,168,255,83,255,42,255,7,255,124,254,2,254,147,254,201,255,59,0,228,255, +211,255,249,255,132,255,157,254,38,254,103,254,227,254,72,255,190,255,35,0,13,0,158,255,90,255,137,255,9,0,87,0, +54,0,248,255,200,255,210,255,151,0,208,1,139,2,149,2,88,2,40,2,38,2,236,1,97,1,124,1,196,2,87,4, +49,5,249,4,7,4,87,3,149,3,107,4,53,5,165,5,200,5,0,6,181,6,175,7,18,8,94,7,23,6,31,5, +8,5,240,5,31,7,110,7,173,6,193,5,94,5,83,5,9,5,73,4,92,3,147,2,94,2,225,2,44,3,108,2, +65,1,128,0,33,0,210,255,64,255,101,254,10,254,191,254,238,255,169,0,140,0,183,255,165,254,50,254,33,255,211,0, +175,1,124,1,85,1,163,1,62,2,237,2,232,2,3,2,74,1,49,1,87,1,215,1,167,2,3,3,139,2,173,1, +5,1,193,0,143,0,52,0,192,255,69,255,11,255,61,255,87,255,243,254,83,254,201,253,138,253,149,253,95,253,177,252, +95,252,31,253,130,254,112,255,86,255,182,254,89,254,129,254,58,255,68,0,235,0,9,1,48,1,136,1,197,1,207,1, +179,1,107,1,254,0,169,0,189,0,32,1,120,1,159,1,90,1,140,0,202,255,118,255,49,255,233,254,198,254,128,254, +28,254,17,254,56,254,249,253,60,253,114,252,28,252,116,252,25,253,106,253,84,253,104,253,227,253,90,254,98,254,10,254, +194,253,41,254,48,255,215,255,163,255,47,255,243,254,252,254,73,255,122,255,78,255,55,255,98,255,93,255,32,255,241,254, +198,254,138,254,36,254,111,253,223,252,250,252,74,253,40,253,177,252,53,252,246,251,65,252,188,252,175,252,82,252,107,252, +237,252,55,253,36,253,28,253,90,253,186,253,32,254,106,254,103,254,107,254,241,254,130,255,127,255,59,255,43,255,75,255, +139,255,182,255,165,255,137,255,114,255,74,255,31,255,240,254,209,254,241,254,21,255,229,254,109,254,226,253,143,253,159,253, +195,253,192,253,185,253,182,253,205,253,32,254,97,254,63,254,226,253,167,253,232,253,141,254,19,255,102,255,182,255,218,255, +203,255,177,255,121,255,85,255,133,255,182,255,168,255,132,255,71,255,246,254,186,254,130,254,65,254,26,254,2,254,222,253, +195,253,196,253,206,253,205,253,216,253,232,253,208,253,212,253,90,254,0,255,36,255,221,254,176,254,2,255,204,255,134,0, +200,0,216,0,6,1,49,1,81,1,169,1,54,2,127,2,100,2,50,2,241,1,161,1,131,1,132,1,115,1,117,1, +98,1,254,0,147,0,63,0,234,255,249,255,128,0,206,0,146,0,48,0,22,0,114,0,4,1,88,1,79,1,48,1, +97,1,241,1,133,2,241,2,72,3,130,3,201,3,52,4,116,4,109,4,92,4,71,4,76,4,129,4,151,4,128,4, +127,4,114,4,52,4,237,3,153,3,48,3,210,2,147,2,123,2,80,2,218,1,118,1,97,1,63,1,24,1,57,1, +92,1,76,1,62,1,40,1,24,1,93,1,230,1,100,2,189,2,226,2,217,2,219,2,249,2,24,3,64,3,122,3, +167,3,193,3,227,3,241,3,190,3,98,3,9,3,186,2,126,2,111,2,125,2,119,2,68,2,32,2,55,2,54,2, +204,1,86,1,73,1,147,1,228,1,0,2,237,1,253,1,69,2,97,2,56,2,34,2,47,2,57,2,72,2,100,2, +117,2,137,2,187,2,245,2,255,2,185,2,107,2,137,2,233,2,217,2,95,2,38,2,52,2,41,2,2,2,193,1, +90,1,31,1,36,1,14,1,233,0,252,0,23,1,13,1,255,0,228,0,171,0,139,0,151,0,180,0,227,0,11,1, +249,0,203,0,174,0,149,0,168,0,248,0,250,0,115,0,241,255,186,255,136,255,78,255,47,255,61,255,90,255,51,255, +200,254,114,254,31,254,174,253,104,253,58,253,218,252,161,252,218,252,50,253,96,253,82,253,19,253,234,252,234,252,216,252, +199,252,255,252,102,253,175,253,190,253,181,253,204,253,6,254,42,254,36,254,25,254,28,254,27,254,19,254,11,254,236,253, +183,253,148,253,111,253,31,253,216,252,205,252,217,252,227,252,240,252,227,252,187,252,143,252,88,252,39,252,20,252,8,252, +237,251,223,251,232,251,240,251,228,251,175,251,72,251,218,250,177,250,214,250,250,250,208,250,83,250,193,249,93,249,36,249, +226,248,137,248,57,248,18,248,26,248,56,248,124,248,250,248,82,249,26,249,172,248,165,248,38,249,24,250,120,251,23,253, +136,254,87,255,108,255,36,255,241,254,65,255,70,0,129,1,84,2,196,2,22,3,123,3,38,4,219,4,37,5,36,5, +27,5,228,4,129,4,60,4,42,4,68,4,120,4,114,4,218,3,229,2,55,2,16,2,4,2,227,1,7,2,94,2, +137,2,206,2,108,3,206,3,136,3,10,3,11,3,6,4,207,5,67,7,126,7,8,7,189,6,184,6,12,7,215,7, +170,8,35,9,103,9,73,9,103,8,20,7,40,6,59,6,60,7,25,8,148,7,208,5,240,3,114,2,53,1,99,0, +41,0,36,0,177,255,159,254,136,253,46,253,107,253,113,253,3,253,121,252,51,252,126,252,60,253,169,253,114,253,83,253, +16,254,145,255,248,0,67,1,151,0,68,0,236,0,223,1,129,2,208,2,13,3,130,3,238,3,172,3,205,2,231,1, +80,1,102,1,3,2,11,2,37,1,54,0,131,255,207,254,157,254,9,255,25,255,108,254,138,253,194,252,79,252,144,252, +66,253,165,253,135,253,73,253,37,253,26,253,37,253,24,253,232,252,15,253,196,253,108,254,158,254,164,254,156,254,93,254, +11,254,207,253,177,253,229,253,109,254,191,254,137,254,38,254,205,253,74,253,196,252,150,252,121,252,70,252,111,252,184,252, +85,252,154,251,105,251,185,251,255,251,221,251,57,251,140,250,117,250,230,250,118,251,210,251,175,251,32,251,182,250,211,250, +76,251,178,251,197,251,150,251,104,251,113,251,179,251,14,252,107,252,156,252,156,252,224,252,142,253,246,253,205,253,181,253, +39,254,251,254,197,255,34,0,36,0,39,0,79,0,177,0,57,1,121,1,94,1,85,1,140,1,8,2,162,2,205,2, +68,2,136,1,39,1,55,1,109,1,113,1,38,1,155,0,37,0,65,0,176,0,172,0,40,0,165,255,133,255,234,255, +76,0,26,0,248,255,128,0,24,1,105,1,192,1,234,1,212,1,20,2,176,2,34,3,113,3,199,3,233,3,249,3, +105,4,252,4,31,5,227,4,137,4,253,3,127,3,109,3,119,3,68,3,233,2,99,2,191,1,60,1,178,0,229,255, +72,255,57,255,80,255,21,255,161,254,76,254,61,254,78,254,75,254,54,254,80,254,178,254,44,255,152,255,244,255,47,0, +91,0,167,0,25,1,145,1,244,1,65,2,154,2,250,2,42,3,47,3,50,3,69,3,129,3,166,3,63,3,138,2, +18,2,204,1,165,1,168,1,142,1,38,1,133,0,201,255,80,255,65,255,56,255,45,255,94,255,123,255,60,255,220,254, +173,254,247,254,149,255,234,255,227,255,240,255,24,0,62,0,142,0,0,1,87,1,136,1,169,1,173,1,106,1,10,1, +250,0,61,1,124,1,122,1,17,1,104,0,239,255,173,255,96,255,20,255,217,254,177,254,190,254,191,254,94,254,224,253, +133,253,47,253,243,252,233,252,238,252,255,252,51,253,121,253,158,253,122,253,63,253,79,253,163,253,243,253,34,254,37,254, +22,254,34,254,59,254,57,254,17,254,215,253,222,253,80,254,180,254,175,254,137,254,124,254,127,254,141,254,135,254,84,254, +32,254,54,254,164,254,22,255,59,255,63,255,98,255,131,255,126,255,98,255,73,255,103,255,190,255,251,255,253,255,0,0, +34,0,76,0,96,0,91,0,94,0,105,0,89,0,56,0,9,0,185,255,168,255,17,0,70,0,214,255,62,255,233,254, +215,254,6,255,73,255,103,255,110,255,101,255,55,255,238,254,158,254,107,254,128,254,192,254,244,254,36,255,92,255,132,255, +134,255,77,255,234,254,143,254,82,254,56,254,83,254,148,254,239,254,97,255,162,255,89,255,184,254,73,254,70,254,108,254, +106,254,90,254,100,254,106,254,121,254,175,254,194,254,149,254,141,254,200,254,22,255,115,255,198,255,224,255,239,255,52,0, +141,0,178,0,162,0,171,0,1,1,110,1,214,1,79,2,159,2,134,2,82,2,59,2,10,2,173,1,82,1,40,1, +87,1,169,1,168,1,90,1,25,1,249,0,229,0,216,0,200,0,163,0,69,0,179,255,89,255,114,255,177,255,225,255, +34,0,111,0,173,0,227,0,19,1,56,1,60,1,20,1,245,0,15,1,58,1,94,1,143,1,206,1,14,2,43,2, +16,2,0,2,23,2,11,2,224,1,193,1,113,1,239,0,155,0,128,0,129,0,183,0,1,1,18,1,225,0,147,0, +89,0,107,0,178,0,215,0,176,0,128,0,161,0,239,0,5,1,253,0,40,1,111,1,162,1,217,1,48,2,138,2, +181,2,180,2,171,2,129,2,43,2,24,2,117,2,208,2,219,2,192,2,208,2,37,3,98,3,35,3,179,2,132,2, +115,2,53,2,211,1,128,1,92,1,110,1,174,1,237,1,215,1,125,1,85,1,117,1,137,1,110,1,35,1,196,0, +153,0,191,0,11,1,97,1,157,1,148,1,108,1,112,1,175,1,241,1,243,1,189,1,144,1,133,1,124,1,88,1, +10,1,183,0,164,0,209,0,253,0,252,0,198,0,146,0,152,0,152,0,79,0,241,255,188,255,155,255,121,255,80,255, +45,255,50,255,86,255,107,255,129,255,178,255,213,255,194,255,151,255,111,255,68,255,52,255,110,255,191,255,185,255,109,255, +72,255,103,255,161,255,209,255,232,255,255,255,34,0,6,0,152,255,59,255,15,255,221,254,186,254,211,254,9,255,53,255, +98,255,141,255,136,255,57,255,216,254,166,254,142,254,108,254,69,254,32,254,12,254,38,254,87,254,105,254,91,254,80,254, +96,254,124,254,137,254,136,254,145,254,139,254,90,254,28,254,230,253,184,253,160,253,177,253,229,253,31,254,58,254,51,254, +21,254,227,253,168,253,132,253,120,253,95,253,31,253,207,252,161,252,177,252,202,252,167,252,81,252,13,252,15,252,95,252, +209,252,27,253,15,253,184,252,50,252,158,251,77,251,167,251,185,252,1,254,217,254,31,255,27,255,250,254,212,254,212,254, +253,254,77,255,229,255,156,0,7,1,19,1,235,0,203,0,21,1,198,1,74,2,124,2,175,2,216,2,222,2,1,3, +30,3,210,2,102,2,80,2,93,2,68,2,47,2,22,2,191,1,142,1,23,2,254,2,107,3,17,3,40,2,71,1, +50,1,244,1,196,2,43,3,61,3,5,3,196,2,226,2,16,3,220,2,207,2,124,3,113,4,1,5,228,4,253,3, +224,2,170,2,108,3,22,4,11,4,125,3,214,2,144,2,173,2,142,2,245,1,77,1,192,0,64,0,19,0,45,0, +243,255,72,255,200,254,172,254,175,254,180,254,159,254,49,254,170,253,168,253,84,254,73,255,217,255,130,255,188,254,160,254, +71,255,195,255,167,255,104,255,156,255,127,0,148,1,235,1,102,1,246,0,48,1,157,1,195,1,164,1,67,1,193,0, +140,0,185,0,215,0,163,0,58,0,206,255,142,255,123,255,110,255,127,255,160,255,76,255,130,254,12,254,36,254,45,254, +221,253,132,253,116,253,181,253,4,254,28,254,30,254,97,254,218,254,50,255,60,255,252,254,158,254,122,254,181,254,247,254, +250,254,251,254,31,255,63,255,92,255,118,255,107,255,114,255,184,255,202,255,91,255,215,254,140,254,100,254,75,254,19,254, +168,253,94,253,94,253,116,253,161,253,231,253,234,253,160,253,130,253,176,253,191,253,135,253,87,253,69,253,29,253,3,253, +62,253,151,253,187,253,180,253,185,253,11,254,171,254,25,255,6,255,218,254,230,254,13,255,68,255,116,255,89,255,31,255, +79,255,235,255,119,0,159,0,114,0,62,0,94,0,214,0,45,1,7,1,171,0,134,0,148,0,160,0,159,0,137,0, +79,0,253,255,198,255,228,255,62,0,106,0,71,0,36,0,53,0,83,0,62,0,215,255,75,255,232,254,240,254,118,255, +42,0,128,0,102,0,85,0,147,0,235,0,18,1,24,1,72,1,177,1,26,2,86,2,92,2,52,2,7,2,246,1, +9,2,75,2,149,2,164,2,134,2,132,2,163,2,196,2,208,2,156,2,23,2,117,1,238,0,144,0,89,0,51,0, +18,0,21,0,76,0,114,0,68,0,226,255,163,255,170,255,204,255,225,255,242,255,11,0,9,0,223,255,200,255,233,255, +38,0,88,0,129,0,176,0,236,0,46,1,116,1,184,1,218,1,198,1,159,1,132,1,106,1,66,1,21,1,5,1, +37,1,69,1,51,1,1,1,213,0,191,0,187,0,168,0,124,0,88,0,58,0,10,0,226,255,215,255,207,255,193,255, +167,255,129,255,112,255,144,255,208,255,20,0,60,0,61,0,57,0,66,0,67,0,40,0,1,0,241,255,9,0,44,0, +58,0,42,0,16,0,18,0,41,0,33,0,253,255,239,255,250,255,6,0,24,0,24,0,237,255,168,255,95,255,18,255, +211,254,190,254,211,254,248,254,20,255,41,255,56,255,55,255,34,255,249,254,208,254,223,254,24,255,48,255,29,255,252,254, +203,254,168,254,175,254,174,254,153,254,163,254,204,254,241,254,24,255,69,255,101,255,113,255,99,255,65,255,21,255,228,254, +194,254,195,254,231,254,48,255,124,255,145,255,118,255,96,255,91,255,109,255,157,255,197,255,217,255,243,255,9,0,253,255, +214,255,161,255,112,255,97,255,112,255,133,255,164,255,209,255,247,255,254,255,233,255,206,255,195,255,203,255,207,255,188,255, +169,255,181,255,211,255,213,255,183,255,158,255,159,255,165,255,152,255,135,255,147,255,196,255,246,255,10,0,1,0,240,255, +214,255,176,255,131,255,83,255,49,255,63,255,101,255,123,255,142,255,172,255,179,255,163,255,154,255,134,255,97,255,94,255, +141,255,188,255,198,255,174,255,143,255,130,255,140,255,154,255,161,255,174,255,199,255,219,255,240,255,30,0,78,0,85,0, +58,0,20,0,235,255,210,255,209,255,222,255,253,255,41,0,56,0,29,0,7,0,25,0,37,0,13,0,2,0,40,0, +84,0,97,0,93,0,99,0,135,0,180,0,171,0,103,0,47,0,40,0,74,0,120,0,151,0,175,0,209,0,233,0, +237,0,229,0,204,0,188,0,206,0,222,0,213,0,206,0,210,0,217,0,208,0,144,0,58,0,40,0,99,0,159,0, +177,0,161,0,154,0,173,0,172,0,132,0,97,0,103,0,138,0,162,0,138,0,103,0,118,0,157,0,177,0,186,0, +188,0,191,0,214,0,232,0,227,0,241,0,26,1,52,1,35,1,242,0,190,0,157,0,149,0,153,0,154,0,143,0, +136,0,154,0,184,0,193,0,170,0,137,0,122,0,115,0,102,0,93,0,92,0,80,0,61,0,48,0,44,0,49,0, +60,0,63,0,62,0,72,0,97,0,125,0,145,0,161,0,186,0,200,0,181,0,159,0,166,0,196,0,218,0,216,0, +211,0,224,0,230,0,206,0,183,0,187,0,217,0,4,1,23,1,245,0,193,0,177,0,196,0,211,0,201,0,179,0, +168,0,165,0,150,0,130,0,114,0,103,0,96,0,86,0,67,0,54,0,71,0,101,0,108,0,93,0,78,0,69,0, +68,0,57,0,11,0,217,255,219,255,10,0,42,0,35,0,5,0,248,255,12,0,28,0,14,0,249,255,253,255,27,0, +53,0,46,0,10,0,226,255,191,255,176,255,188,255,194,255,179,255,165,255,149,255,137,255,147,255,162,255,168,255,181,255, +181,255,149,255,115,255,98,255,83,255,60,255,36,255,28,255,44,255,49,255,26,255,6,255,2,255,14,255,56,255,101,255, +111,255,93,255,74,255,63,255,57,255,41,255,10,255,255,254,33,255,91,255,118,255,91,255,50,255,39,255,49,255,60,255, +71,255,71,255,65,255,62,255,52,255,29,255,255,254,211,254,168,254,155,254,153,254,137,254,119,254,119,254,127,254,123,254, +104,254,89,254,73,254,35,254,248,253,220,253,195,253,172,253,145,253,99,253,67,253,92,253,150,253,196,253,214,253,215,253, +220,253,231,253,244,253,33,254,110,254,182,254,8,255,116,255,198,255,227,255,234,255,243,255,23,0,93,0,157,0,195,0, +238,0,34,1,74,1,102,1,112,1,94,1,76,1,89,1,113,1,107,1,80,1,62,1,40,1,10,1,1,1,254,0, +225,0,197,0,190,0,166,0,119,0,93,0,95,0,124,0,190,0,5,1,34,1,41,1,46,1,29,1,24,1,91,1, +196,1,21,2,79,2,107,2,91,2,83,2,104,2,119,2,138,2,185,2,232,2,246,2,223,2,156,2,69,2,17,2, +15,2,25,2,3,2,186,1,79,1,232,0,166,0,110,0,12,0,158,255,107,255,86,255,43,255,0,255,230,254,209,254, +215,254,248,254,5,255,242,254,214,254,205,254,242,254,59,255,127,255,197,255,33,0,96,0,78,0,37,0,59,0,131,0, +194,0,232,0,254,0,14,1,51,1,81,1,49,1,253,0,0,1,32,1,26,1,217,0,115,0,25,0,247,255,1,0, +4,0,219,255,147,255,92,255,65,255,28,255,222,254,175,254,191,254,249,254,2,255,196,254,170,254,222,254,6,255,241,254, +199,254,182,254,213,254,6,255,21,255,23,255,58,255,107,255,140,255,149,255,129,255,114,255,145,255,195,255,211,255,183,255, +136,255,112,255,122,255,129,255,113,255,98,255,93,255,89,255,59,255,250,254,197,254,199,254,212,254,195,254,166,254,145,254, +145,254,170,254,178,254,149,254,135,254,158,254,171,254,158,254,135,254,106,254,94,254,119,254,149,254,151,254,146,254,168,254, +197,254,207,254,218,254,241,254,6,255,38,255,104,255,172,255,210,255,224,255,216,255,200,255,210,255,235,255,245,255,12,0, +68,0,108,0,120,0,148,0,178,0,165,0,134,0,121,0,115,0,126,0,167,0,186,0,159,0,136,0,127,0,96,0, +43,0,246,255,199,255,174,255,188,255,219,255,227,255,208,255,199,255,217,255,247,255,15,0,17,0,3,0,17,0,62,0, +101,0,129,0,168,0,202,0,225,0,251,0,22,1,48,1,81,1,107,1,100,1,85,1,111,1,166,1,188,1,159,1, +127,1,110,1,86,1,43,1,243,0,196,0,184,0,192,0,185,0,149,0,92,0,25,0,227,255,193,255,177,255,169,255, +166,255,173,255,186,255,184,255,183,255,202,255,228,255,244,255,249,255,244,255,10,0,71,0,115,0,122,0,132,0,169,0, +210,0,238,0,246,0,254,0,20,1,42,1,46,1,30,1,13,1,14,1,15,1,253,0,237,0,219,0,178,0,134,0, +101,0,58,0,27,0,38,0,59,0,55,0,36,0,9,0,243,255,237,255,234,255,225,255,220,255,223,255,228,255,229,255, +224,255,208,255,192,255,196,255,217,255,227,255,232,255,0,0,21,0,23,0,26,0,34,0,27,0,17,0,12,0,253,255, +236,255,236,255,243,255,248,255,253,255,250,255,233,255,223,255,223,255,218,255,208,255,200,255,188,255,179,255,178,255,171,255, +153,255,140,255,138,255,136,255,125,255,112,255,104,255,95,255,82,255,74,255,70,255,66,255,61,255,53,255,39,255,28,255, +30,255,48,255,76,255,91,255,88,255,95,255,120,255,143,255,159,255,167,255,164,255,169,255,192,255,213,255,222,255,233,255, +245,255,254,255,8,0,15,0,11,0,5,0,9,0,19,0,29,0,39,0,41,0,23,0,253,255,240,255,240,255,239,255, +240,255,242,255,232,255,215,255,207,255,201,255,185,255,169,255,159,255,152,255,162,255,185,255,190,255,183,255,185,255,187,255, +184,255,186,255,184,255,177,255,178,255,187,255,202,255,218,255,225,255,225,255,228,255,234,255,239,255,239,255,233,255,236,255, +249,255,0,0,255,255,251,255,244,255,233,255,221,255,212,255,213,255,221,255,226,255,226,255,222,255,211,255,197,255,189,255, +187,255,190,255,190,255,190,255,194,255,192,255,183,255,177,255,174,255,173,255,179,255,189,255,203,255,218,255,227,255,233,255, +239,255,245,255,0,0,15,0,25,0,38,0,52,0,58,0,65,0,77,0,82,0,80,0,74,0,69,0,79,0,89,0, +85,0,85,0,93,0,95,0,96,0,96,0,79,0,56,0,52,0,65,0,81,0,89,0,84,0,74,0,63,0,49,0, +36,0,26,0,21,0,31,0,48,0,58,0,62,0,68,0,74,0,72,0,62,0,58,0,68,0,80,0,86,0,83,0, +78,0,85,0,99,0,100,0,86,0,75,0,77,0,86,0,90,0,84,0,74,0,71,0,81,0,93,0,94,0,89,0, +87,0,79,0,68,0,65,0,68,0,75,0,88,0,97,0,96,0,91,0,88,0,90,0,90,0,79,0,73,0,86,0, +100,0,100,0,87,0,71,0,69,0,77,0,81,0,79,0,78,0,74,0,72,0,73,0,69,0,65,0,68,0,77,0, +84,0,88,0,92,0,94,0,88,0,74,0,68,0,72,0,77,0,75,0,68,0,66,0,74,0,86,0,98,0,106,0, +103,0,87,0,76,0,73,0,70,0,67,0,70,0,75,0,76,0,72,0,60,0,38,0,15,0,7,0,6,0,8,0, +13,0,17,0,12,0,2,0,252,255,250,255,246,255,234,255,223,255,222,255,224,255,226,255,222,255,214,255,213,255,219,255, +214,255,209,255,219,255,224,255,221,255,227,255,236,255,238,255,239,255,244,255,246,255,244,255,241,255,237,255,230,255,218,255, +210,255,209,255,207,255,200,255,190,255,183,255,179,255,173,255,164,255,158,255,153,255,145,255,142,255,141,255,133,255,124,255, +121,255,125,255,132,255,137,255,139,255,138,255,141,255,149,255,152,255,150,255,151,255,155,255,160,255,172,255,183,255,186,255, +185,255,182,255,179,255,183,255,184,255,173,255,166,255,167,255,167,255,166,255,158,255,141,255,128,255,121,255,114,255,111,255, +112,255,104,255,91,255,80,255,74,255,73,255,69,255,60,255,54,255,46,255,38,255,39,255,40,255,33,255,35,255,57,255, +86,255,104,255,98,255,76,255,60,255,65,255,89,255,123,255,165,255,207,255,238,255,4,0,17,0,12,0,252,255,246,255, +1,0,30,0,72,0,108,0,126,0,131,0,125,0,114,0,113,0,131,0,153,0,159,0,157,0,164,0,166,0,142,0, +114,0,99,0,93,0,104,0,123,0,120,0,99,0,77,0,55,0,57,0,97,0,137,0,145,0,132,0,115,0,104,0, +107,0,125,0,153,0,186,0,213,0,232,0,235,0,219,0,198,0,185,0,189,0,217,0,254,0,13,1,253,0,226,0, +201,0,184,0,185,0,201,0,204,0,178,0,139,0,106,0,85,0,67,0,34,0,242,255,211,255,204,255,198,255,179,255, +154,255,138,255,147,255,178,255,204,255,199,255,158,255,115,255,104,255,120,255,150,255,194,255,236,255,5,0,14,0,5,0, +248,255,252,255,2,0,4,0,19,0,47,0,75,0,96,0,98,0,78,0,63,0,67,0,71,0,55,0,25,0,6,0, +8,0,21,0,27,0,8,0,213,255,169,255,162,255,169,255,164,255,157,255,160,255,163,255,161,255,154,255,139,255,132,255, +145,255,155,255,145,255,143,255,155,255,161,255,170,255,195,255,211,255,213,255,220,255,224,255,212,255,198,255,198,255,211,255, +227,255,232,255,226,255,218,255,217,255,219,255,204,255,180,255,174,255,184,255,189,255,184,255,166,255,140,255,134,255,140,255, +131,255,119,255,120,255,124,255,132,255,146,255,147,255,134,255,133,255,149,255,157,255,143,255,122,255,118,255,131,255,150,255, +162,255,165,255,169,255,175,255,169,255,158,255,156,255,164,255,175,255,188,255,197,255,198,255,197,255,210,255,227,255,227,255, +219,255,224,255,238,255,249,255,255,255,0,0,10,0,34,0,42,0,26,0,17,0,26,0,39,0,50,0,54,0,51,0, +51,0,55,0,56,0,49,0,35,0,23,0,23,0,30,0,31,0,20,0,0,0,249,255,4,0,13,0,10,0,8,0, +12,0,17,0,19,0,18,0,23,0,34,0,41,0,53,0,77,0,98,0,101,0,89,0,77,0,77,0,92,0,111,0, +123,0,124,0,118,0,109,0,103,0,105,0,100,0,82,0,69,0,68,0,71,0,70,0,60,0,33,0,8,0,252,255, +247,255,246,255,241,255,225,255,210,255,212,255,223,255,228,255,220,255,209,255,211,255,223,255,235,255,246,255,249,255,248,255, +1,0,21,0,37,0,44,0,45,0,43,0,44,0,51,0,61,0,70,0,74,0,69,0,60,0,55,0,56,0,56,0, +45,0,28,0,18,0,19,0,25,0,23,0,7,0,245,255,233,255,226,255,225,255,226,255,221,255,219,255,226,255,234,255, +236,255,237,255,243,255,250,255,255,255,10,0,19,0,14,0,7,0,12,0,17,0,25,0,41,0,47,0,38,0,31,0, +29,0,24,0,20,0,18,0,14,0,7,0,3,0,5,0,10,0,3,0,245,255,235,255,229,255,222,255,219,255,219,255, +221,255,219,255,213,255,212,255,216,255,216,255,212,255,213,255,223,255,232,255,225,255,210,255,209,255,221,255,233,255,242,255, +244,255,240,255,232,255,224,255,222,255,228,255,228,255,224,255,222,255,222,255,221,255,219,255,214,255,208,255,204,255,201,255, +199,255,202,255,207,255,214,255,219,255,220,255,224,255,226,255,221,255,219,255,228,255,241,255,254,255,1,0,253,255,251,255, +251,255,251,255,0,0,8,0,11,0,10,0,9,0,11,0,11,0,3,0,249,255,246,255,247,255,248,255,249,255,246,255, +238,255,233,255,231,255,225,255,213,255,204,255,209,255,218,255,222,255,224,255,221,255,218,255,223,255,228,255,226,255,226,255, +228,255,230,255,234,255,239,255,237,255,236,255,238,255,239,255,241,255,244,255,247,255,247,255,240,255,230,255,226,255,231,255, +236,255,234,255,228,255,229,255,232,255,229,255,221,255,214,255,210,255,215,255,229,255,236,255,229,255,217,255,209,255,211,255, +220,255,227,255,234,255,239,255,243,255,249,255,250,255,248,255,250,255,253,255,254,255,3,0,13,0,21,0,22,0,15,0, +14,0,22,0,20,0,10,0,3,0,4,0,14,0,26,0,31,0,28,0,22,0,12,0,7,0,12,0,20,0,28,0, +34,0,37,0,39,0,36,0,26,0,21,0,29,0,37,0,41,0,45,0,50,0,49,0,39,0,32,0,38,0,48,0, +48,0,40,0,35,0,38,0,45,0,46,0,41,0,33,0,31,0,38,0,41,0,33,0,27,0,24,0,22,0,27,0, +34,0,32,0,28,0,33,0,39,0,40,0,37,0,34,0,35,0,38,0,41,0,43,0,45,0,47,0,48,0,42,0, +37,0,45,0,55,0,56,0,52,0,46,0,42,0,44,0,45,0,40,0,32,0,28,0,28,0,34,0,35,0,30,0, +27,0,30,0,33,0,33,0,30,0,29,0,29,0,31,0,32,0,31,0,30,0,33,0,38,0,39,0,39,0,38,0, +39,0,43,0,42,0,39,0,38,0,42,0,48,0,53,0,51,0,46,0,46,0,47,0,50,0,50,0,39,0,29,0, +30,0,34,0,33,0,30,0,27,0,22,0,19,0,15,0,13,0,15,0,17,0,19,0,16,0,11,0,12,0,13,0, +9,0,6,0,7,0,8,0,14,0,21,0,23,0,19,0,17,0,21,0,26,0,23,0,15,0,11,0,14,0,20,0, +20,0,12,0,4,0,7,0,12,0,12,0,6,0,4,0,0,0,250,255,245,255,249,255,255,255,0,0,255,255,252,255, +248,255,245,255,240,255,236,255,241,255,250,255,255,255,0,0,254,255,244,255,237,255,238,255,245,255,250,255,249,255,245,255, +246,255,248,255,244,255,237,255,231,255,231,255,233,255,233,255,231,255,231,255,230,255,227,255,224,255,222,255,219,255,215,255, +210,255,209,255,215,255,223,255,227,255,222,255,211,255,205,255,208,255,213,255,217,255,217,255,214,255,213,255,216,255,217,255, +212,255,208,255,207,255,209,255,208,255,204,255,200,255,197,255,199,255,203,255,205,255,206,255,203,255,195,255,192,255,197,255, +203,255,210,255,222,255,232,255,237,255,241,255,242,255,239,255,234,255,232,255,236,255,246,255,5,0,19,0,27,0,31,0, +33,0,31,0,28,0,33,0,40,0,45,0,49,0,52,0,50,0,42,0,36,0,30,0,26,0,27,0,30,0,28,0, +23,0,22,0,22,0,18,0,19,0,24,0,25,0,25,0,25,0,22,0,22,0,30,0,38,0,42,0,48,0,54,0, +56,0,55,0,57,0,57,0,57,0,59,0,65,0,69,0,70,0,70,0,67,0,65,0,67,0,68,0,61,0,50,0, +42,0,34,0,26,0,19,0,12,0,5,0,255,255,252,255,250,255,247,255,240,255,234,255,233,255,239,255,246,255,246,255, +241,255,235,255,232,255,232,255,237,255,245,255,0,0,8,0,13,0,16,0,17,0,15,0,12,0,12,0,17,0,25,0, +29,0,31,0,31,0,26,0,20,0,20,0,22,0,20,0,18,0,16,0,12,0,9,0,5,0,252,255,239,255,232,255, +234,255,239,255,242,255,241,255,234,255,225,255,221,255,222,255,221,255,221,255,227,255,232,255,231,255,229,255,225,255,222,255, +222,255,228,255,232,255,234,255,237,255,240,255,236,255,232,255,231,255,231,255,231,255,234,255,234,255,230,255,229,255,232,255, +235,255,236,255,235,255,231,255,229,255,228,255,225,255,222,255,221,255,224,255,225,255,224,255,225,255,224,255,222,255,223,255, +227,255,228,255,228,255,228,255,226,255,222,255,220,255,217,255,217,255,219,255,222,255,222,255,219,255,217,255,218,255,221,255, +222,255,222,255,223,255,227,255,233,255,239,255,240,255,238,255,239,255,245,255,250,255,254,255,3,0,7,0,10,0,13,0, +14,0,13,0,14,0,17,0,20,0,23,0,27,0,31,0,30,0,25,0,20,0,16,0,14,0,15,0,15,0,12,0, +7,0,6,0,4,0,0,0,251,255,244,255,242,255,247,255,254,255,2,0,4,0,3,0,2,0,4,0,9,0,11,0, +11,0,14,0,19,0,25,0,33,0,39,0,38,0,37,0,41,0,46,0,47,0,45,0,42,0,40,0,42,0,46,0, +46,0,42,0,37,0,32,0,27,0,23,0,20,0,15,0,8,0,4,0,2,0,2,0,3,0,0,0,248,255,241,255, +241,255,244,255,247,255,249,255,250,255,250,255,254,255,2,0,3,0,3,0,4,0,10,0,17,0,22,0,23,0,22,0, +22,0,26,0,32,0,34,0,33,0,30,0,26,0,24,0,26,0,28,0,27,0,24,0,21,0,18,0,16,0,15,0, +13,0,8,0,4,0,3,0,3,0,3,0,3,0,1,0,251,255,248,255,250,255,253,255,255,255,2,0,2,0,1,0, +2,0,2,0,0,0,254,255,0,0,1,0,2,0,3,0,2,0,0,0,2,0,6,0,6,0,4,0,2,0,255,255, +251,255,251,255,0,0,2,0,0,0,252,255,247,255,245,255,247,255,250,255,248,255,244,255,241,255,240,255,242,255,243,255, +243,255,242,255,240,255,237,255,234,255,234,255,233,255,233,255,234,255,236,255,234,255,230,255,228,255,227,255,226,255,228,255, +231,255,232,255,230,255,230,255,231,255,233,255,238,255,242,255,241,255,239,255,241,255,244,255,245,255,246,255,246,255,246,255, +247,255,249,255,251,255,253,255,254,255,253,255,252,255,253,255,254,255,252,255,250,255,249,255,250,255,250,255,248,255,247,255, +246,255,247,255,246,255,244,255,243,255,243,255,243,255,244,255,245,255,248,255,250,255,251,255,251,255,251,255,251,255,252,255, +255,255,1,0,2,0,2,0,1,0,0,0,1,0,3,0,3,0,1,0,2,0,3,0,2,0,0,0,0,0,255,255, +253,255,252,255,252,255,251,255,249,255,247,255,246,255,246,255,247,255,247,255,245,255,244,255,245,255,246,255,246,255,246,255, +247,255,247,255,247,255,247,255,249,255,252,255,252,255,252,255,252,255,254,255,255,255,254,255,253,255,252,255,253,255,1,0, +3,0,3,0,1,0,255,255,253,255,254,255,255,255,254,255,254,255,0,0,2,0,1,0,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,6,0,7,0,8,0,9,0,8,0, +7,0,7,0,7,0,6,0,5,0,4,0,1,0,2,0,4,0,5,0,5,0,5,0,4,0,2,0,1,0,2,0, +3,0,4,0,4,0,4,0,4,0,6,0,7,0,8,0,10,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0, +11,0,13,0,15,0,15,0,13,0,13,0,13,0,12,0,11,0,11,0,11,0,11,0,11,0,11,0,10,0,9,0, +7,0,6,0,7,0,8,0,9,0,9,0,10,0,10,0,9,0,10,0,10,0,8,0,8,0,11,0,14,0,16,0, +18,0,17,0,15,0,15,0,16,0,16,0,15,0,16,0,19,0,20,0,20,0,20,0,20,0,19,0,17,0,14,0, +13,0,13,0,14,0,14,0,14,0,11,0,9,0,9,0,8,0,7,0,8,0,8,0,8,0,7,0,5,0,2,0, +2,0,4,0,6,0,5,0,4,0,3,0,2,0,1,0,3,0,4,0,4,0,3,0,3,0,2,0,2,0,4,0, +4,0,2,0,1,0,255,255,255,255,255,255,255,255,255,255,253,255,251,255,250,255,251,255,250,255,248,255,247,255,248,255, +250,255,252,255,252,255,250,255,249,255,248,255,248,255,249,255,248,255,246,255,246,255,248,255,249,255,248,255,247,255,245,255, +244,255,246,255,248,255,247,255,245,255,244,255,245,255,244,255,246,255,248,255,246,255,242,255,243,255,245,255,243,255,241,255, +239,255,236,255,237,255,242,255,246,255,245,255,244,255,244,255,243,255,244,255,245,255,244,255,243,255,243,255,243,255,240,255, +238,255,236,255,233,255,232,255,233,255,233,255,232,255,230,255,228,255,226,255,226,255,226,255,223,255,220,255,218,255,217,255, +215,255,214,255,213,255,212,255,214,255,218,255,222,255,225,255,226,255,225,255,225,255,229,255,234,255,239,255,245,255,252,255, +2,0,5,0,7,0,7,0,7,0,7,0,10,0,12,0,15,0,18,0,20,0,21,0,23,0,22,0,18,0,14,0, +15,0,18,0,19,0,18,0,15,0,12,0,8,0,5,0,2,0,2,0,4,0,6,0,5,0,5,0,5,0,5,0, +6,0,10,0,17,0,22,0,23,0,24,0,26,0,26,0,28,0,32,0,37,0,42,0,47,0,49,0,50,0,50,0, +49,0,46,0,43,0,43,0,45,0,45,0,45,0,42,0,38,0,35,0,32,0,27,0,22,0,17,0,11,0,6,0, +3,0,255,255,249,255,244,255,246,255,247,255,245,255,243,255,241,255,239,255,239,255,241,255,241,255,242,255,245,255,250,255, +252,255,254,255,1,0,5,0,9,0,11,0,13,0,15,0,18,0,21,0,22,0,20,0,19,0,20,0,22,0,22,0, +19,0,14,0,11,0,11,0,11,0,9,0,5,0,3,0,3,0,1,0,249,255,240,255,235,255,234,255,235,255,238,255, +238,255,236,255,234,255,234,255,232,255,230,255,230,255,231,255,233,255,236,255,237,255,238,255,240,255,243,255,246,255,248,255, +248,255,249,255,251,255,252,255,250,255,249,255,250,255,252,255,252,255,252,255,252,255,250,255,249,255,249,255,247,255,244,255, +242,255,241,255,239,255,236,255,234,255,232,255,232,255,233,255,233,255,231,255,230,255,230,255,231,255,231,255,231,255,230,255, +231,255,233,255,233,255,231,255,230,255,231,255,233,255,237,255,239,255,238,255,236,255,238,255,240,255,241,255,241,255,241,255, +241,255,243,255,247,255,248,255,247,255,248,255,250,255,251,255,252,255,253,255,253,255,254,255,1,0,2,0,3,0,4,0, +4,0,3,0,3,0,5,0,7,0,9,0,11,0,11,0,8,0,5,0,6,0,6,0,3,0,2,0,3,0,4,0, +4,0,2,0,0,0,254,255,0,0,4,0,5,0,4,0,2,0,4,0,7,0,9,0,10,0,10,0,11,0,15,0, +19,0,20,0,19,0,19,0,21,0,24,0,28,0,28,0,28,0,28,0,28,0,27,0,26,0,24,0,23,0,23,0, +23,0,22,0,19,0,16,0,14,0,12,0,11,0,9,0,6,0,2,0,254,255,252,255,252,255,254,255,0,0,254,255, +253,255,254,255,0,0,1,0,3,0,3,0,4,0,7,0,11,0,13,0,12,0,11,0,11,0,13,0,17,0,20,0, +21,0,20,0,20,0,20,0,20,0,19,0,17,0,15,0,16,0,15,0,12,0,11,0,10,0,8,0,6,0,6,0, +6,0,3,0,0,0,254,255,254,255,255,255,1,0,0,0,255,255,255,255,254,255,255,255,2,0,4,0,3,0,1,0, +1,0,4,0,6,0,7,0,8,0,8,0,8,0,9,0,8,0,7,0,7,0,7,0,7,0,8,0,8,0,5,0, +2,0,0,0,255,255,255,255,255,255,255,255,253,255,252,255,250,255,249,255,248,255,246,255,245,255,244,255,245,255,246,255, +245,255,243,255,242,255,241,255,243,255,245,255,245,255,244,255,245,255,246,255,246,255,247,255,248,255,247,255,247,255,247,255, +249,255,250,255,250,255,249,255,248,255,247,255,248,255,250,255,251,255,250,255,250,255,249,255,249,255,250,255,250,255,249,255, +248,255,249,255,250,255,250,255,249,255,247,255,247,255,248,255,250,255,251,255,252,255,252,255,251,255,251,255,252,255,252,255, +251,255,250,255,252,255,253,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +0,0,255,255,255,255,255,255,254,255,253,255,253,255,255,255,255,255,254,255,253,255,251,255,251,255,251,255,252,255,251,255, +250,255,250,255,251,255,252,255,253,255,252,255,250,255,250,255,250,255,250,255,250,255,249,255,248,255,247,255,247,255,248,255, +248,255,248,255,248,255,248,255,248,255,249,255,249,255,248,255,247,255,248,255,249,255,251,255,251,255,251,255,250,255,250,255, +252,255,253,255,254,255,253,255,252,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,255,255, +1,0,2,0,1,0,255,255,255,255,255,255,254,255,255,255,0,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0, +3,0,3,0,3,0,4,0,4,0,5,0,5,0,5,0,6,0,7,0,6,0,4,0,4,0,4,0,4,0,4,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,3,0,3,0,3,0,3,0,3,0,2,0, +3,0,4,0,3,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,5,0,5,0,4,0,3,0, +4,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,5,0,5,0,5,0,5,0,7,0, +8,0,8,0,8,0,8,0,8,0,8,0,10,0,11,0,10,0,10,0,10,0,11,0,10,0,10,0,10,0,10,0, +10,0,10,0,9,0,8,0,8,0,7,0,8,0,9,0,8,0,5,0,4,0,5,0,6,0,6,0,5,0,5,0, +6,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,6,0,5,0,4,0,4,0,4,0,4,0,5,0, +4,0,3,0,2,0,2,0,2,0,0,0,255,255,254,255,254,255,254,255,253,255,251,255,249,255,248,255,249,255,249,255, +249,255,249,255,249,255,250,255,250,255,249,255,248,255,249,255,249,255,249,255,250,255,251,255,251,255,251,255,251,255,251,255, +251,255,253,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,253,255, +253,255,253,255,253,255,253,255,251,255,250,255,250,255,249,255,249,255,249,255,249,255,248,255,248,255,248,255,248,255,247,255, +247,255,247,255,247,255,247,255,246,255,245,255,245,255,245,255,245,255,244,255,244,255,243,255,242,255,243,255,244,255,243,255, +240,255,240,255,240,255,239,255,238,255,237,255,236,255,236,255,236,255,236,255,236,255,235,255,236,255,237,255,239,255,240,255, +239,255,239,255,242,255,244,255,247,255,250,255,253,255,255,255,255,255,1,0,2,0,2,0,3,0,4,0,5,0,8,0, +11,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,13,0,13,0,12,0,12,0,11,0,10,0,8,0,6,0, +6,0,7,0,9,0,9,0,9,0,8,0,6,0,8,0,11,0,15,0,16,0,17,0,16,0,16,0,17,0,19,0, +21,0,23,0,26,0,27,0,26,0,26,0,26,0,25,0,23,0,22,0,22,0,22,0,22,0,21,0,19,0,19,0, +18,0,16,0,11,0,7,0,4,0,1,0,0,0,255,255,253,255,249,255,248,255,249,255,252,255,252,255,250,255,248,255, +249,255,250,255,250,255,251,255,254,255,255,255,255,255,0,0,1,0,2,0,4,0,6,0,6,0,7,0,8,0,10,0, +10,0,9,0,8,0,8,0,9,0,10,0,8,0,5,0,3,0,3,0,4,0,4,0,3,0,0,0,255,255,0,0, +254,255,251,255,247,255,246,255,246,255,247,255,248,255,248,255,247,255,247,255,247,255,246,255,245,255,244,255,243,255,243,255, +245,255,246,255,245,255,244,255,246,255,248,255,248,255,248,255,248,255,248,255,248,255,248,255,246,255,246,255,247,255,248,255, +248,255,248,255,249,255,249,255,250,255,250,255,249,255,247,255,247,255,248,255,248,255,247,255,245,255,244,255,245,255,246,255, +244,255,243,255,243,255,243,255,241,255,240,255,240,255,240,255,240,255,239,255,238,255,236,255,236,255,238,255,239,255,239,255, +239,255,240,255,242,255,243,255,243,255,243,255,244,255,247,255,250,255,251,255,251,255,252,255,255,255,2,0,5,0,7,0, +7,0,8,0,9,0,9,0,9,0,9,0,9,0,10,0,11,0,10,0,10,0,11,0,11,0,9,0,6,0,5,0, +4,0,3,0,3,0,2,0,1,0,0,0,1,0,1,0,255,255,254,255,254,255,0,0,2,0,4,0,2,0,1,0, +2,0,5,0,9,0,11,0,11,0,10,0,10,0,12,0,14,0,17,0,18,0,20,0,20,0,19,0,18,0,17,0, +16,0,16,0,16,0,15,0,15,0,15,0,12,0,10,0,8,0,6,0,4,0,3,0,2,0,0,0,253,255,253,255, +255,255,254,255,251,255,250,255,250,255,251,255,252,255,253,255,253,255,253,255,253,255,0,0,3,0,5,0,5,0,4,0, +5,0,6,0,7,0,9,0,11,0,12,0,12,0,12,0,13,0,12,0,12,0,10,0,9,0,10,0,12,0,12,0, +10,0,8,0,8,0,8,0,7,0,6,0,3,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0, +255,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0, +3,0,3,0,3,0,2,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +252,255,251,255,251,255,251,255,250,255,249,255,249,255,249,255,248,255,247,255,246,255,246,255,245,255,244,255,245,255,247,255, +247,255,245,255,245,255,246,255,246,255,246,255,246,255,246,255,246,255,248,255,249,255,250,255,251,255,251,255,251,255,252,255, +253,255,254,255,253,255,254,255,255,255,255,255,0,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255, +255,255,0,0,255,255,254,255,253,255,252,255,251,255,250,255,250,255,250,255,251,255,252,255,251,255,250,255,251,255,253,255, +252,255,250,255,249,255,250,255,251,255,253,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255, +254,255,255,255,255,255,0,0,255,255,255,255,254,255,253,255,252,255,253,255,253,255,252,255,253,255,254,255,254,255,252,255, +252,255,252,255,251,255,251,255,253,255,252,255,251,255,251,255,253,255,252,255,251,255,251,255,251,255,252,255,252,255,253,255, +253,255,253,255,253,255,253,255,254,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,4,0,5,0,5,0,4,0,4,0,4,0,3,0,3,0,5,0,5,0,4,0, +3,0,3,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,1,0,0,0,2,0,3,0,3,0,2,0,2,0, +1,0,2,0,2,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,4,0,5,0, +5,0,6,0,6,0,5,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,1,0,1,0, +2,0,3,0,3,0,3,0,3,0,2,0,2,0,4,0,6,0,5,0,4,0,4,0,4,0,5,0,5,0,6,0, +7,0,6,0,5,0,5,0,6,0,6,0,5,0,6,0,7,0,7,0,6,0,6,0,7,0,6,0,7,0,7,0, +6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,3,0,4,0,4,0,4,0,3,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255, +253,255,254,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,253,255,251,255,251,255,252,255,252,255,251,255, +251,255,251,255,252,255,251,255,251,255,251,255,251,255,251,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255, +253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255, +252,255,252,255,251,255,251,255,250,255,249,255,248,255,247,255,247,255,247,255,247,255,246,255,246,255,246,255,246,255,245,255, +245,255,245,255,244,255,243,255,244,255,245,255,244,255,243,255,242,255,242,255,243,255,245,255,245,255,245,255,246,255,247,255, +248,255,249,255,248,255,249,255,250,255,252,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,4,0, +6,0,6,0,6,0,6,0,7,0,8,0,9,0,9,0,8,0,8,0,7,0,6,0,6,0,7,0,6,0,5,0, +6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,7,0,8,0,9,0,10,0,10,0,11,0,11,0,12,0, +12,0,13,0,14,0,16,0,18,0,17,0,16,0,17,0,18,0,17,0,15,0,14,0,14,0,13,0,12,0,12,0, +10,0,10,0,9,0,8,0,6,0,4,0,2,0,255,255,253,255,253,255,253,255,251,255,250,255,251,255,252,255,252,255, +252,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,5,0,6,0,6,0, +7,0,8,0,6,0,5,0,6,0,7,0,7,0,6,0,5,0,3,0,2,0,2,0,2,0,2,0,1,0,0,0, +255,255,255,255,254,255,252,255,250,255,250,255,250,255,250,255,250,255,251,255,250,255,250,255,251,255,252,255,251,255,250,255, +250,255,251,255,251,255,251,255,250,255,250,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,251,255,251,255, +251,255,251,255,250,255,251,255,252,255,251,255,250,255,250,255,249,255,249,255,250,255,250,255,249,255,248,255,249,255,248,255, +248,255,248,255,249,255,249,255,248,255,248,255,248,255,247,255,248,255,249,255,249,255,248,255,246,255,246,255,246,255,246,255, +247,255,247,255,248,255,249,255,249,255,250,255,250,255,248,255,249,255,250,255,251,255,251,255,252,255,253,255,253,255,254,255, +255,255,255,255,255,255,0,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0, +3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0, +2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,5,0,6,0,5,0,6,0,8,0,9,0,9,0,8,0, +8,0,8,0,8,0,8,0,7,0,7,0,7,0,8,0,7,0,6,0,6,0,4,0,3,0,4,0,3,0,2,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,1,0, +1,0,3,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,5,0,5,0,5,0,6,0,5,0,4,0,5,0, +5,0,6,0,5,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +254,255,254,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255, +251,255,251,255,252,255,253,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255, +255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255, +254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255, +254,255,254,255,254,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,253,255,252,255, +252,255,253,255,254,255,255,255,254,255,253,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255,253,255,254,255,255,255, +254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,3,0,2,0, +2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,5,0,4,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,253,255,253,255,253,255,254,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255, +254,255,253,255,253,255,253,255,253,255,251,255,250,255,251,255,252,255,251,255,251,255,251,255,250,255,248,255,249,255,250,255, +249,255,248,255,249,255,249,255,248,255,249,255,250,255,250,255,250,255,250,255,250,255,251,255,252,255,252,255,252,255,254,255, +0,0,0,0,0,0,1,0,1,0,2,0,3,0,3,0,3,0,4,0,5,0,5,0,5,0,6,0,5,0,5,0, +5,0,5,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0,1,0,2,0,3,0,2,0,1,0,2,0,2,0, +1,0,1,0,2,0,2,0,4,0,6,0,6,0,5,0,5,0,5,0,5,0,7,0,8,0,8,0,8,0,8,0, +8,0,8,0,8,0,8,0,7,0,8,0,7,0,6,0,5,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0, +0,0,255,255,254,255,254,255,252,255,251,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,254,255,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0, +3,0,3,0,3,0,2,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255, +254,255,252,255,253,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,255,255,254,255, +254,255,254,255,253,255,252,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255, +251,255,251,255,251,255,252,255,253,255,252,255,252,255,252,255,252,255,251,255,250,255,251,255,252,255,252,255,252,255,253,255, +253,255,252,255,252,255,253,255,253,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,3,0,3,0,4,0,4,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,3,0,4,0,4,0,4,0, +4,0,4,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0, +255,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0, +3,0,3,0,5,0,5,0,4,0,4,0,4,0,4,0,3,0,2,0,3,0,4,0,4,0,3,0,2,0,3,0, +2,0,2,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,254,255, +255,255,0,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255, +253,255,253,255,252,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255, +253,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,255,255,255,255,255,255,254,255,0,0,0,0, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,0,0,255,255,255,255,0,0,1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,1,0,2,0,2,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0, +2,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,254,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,253,255, +253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,2,0,2,0, +2,0,2,0,3,0,2,0,2,0,3,0,3,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0, +2,0,1,0,1,0,2,0,3,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0, +4,0,4,0,3,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,2,0,1,0, +0,0,1,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255, +253,255,254,255,254,255,254,255,254,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,254,255,254,255,255,255,254,255,253,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,254,255,254,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0, +2,0,2,0,3,0,3,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,2,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255, +253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255, +254,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,255,255,254,255,0,0,1,0,255,255,255,255,0,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,2,0,1,0, +1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,254,255,255,255,254,255,254,255,255,255,255,255,253,255,253,255,255,255,1,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,254,255,254,255,255,255,0,0,255,255,254,255,254,255, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,255,255,255,255,0,0,255,255, +254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255, +255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,0,0,1,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +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,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,2,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,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, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/pigdeath.pcm b/src/client/sound/data/pigdeath.pcm new file mode 100755 index 0000000..1b17741 --- /dev/null +++ b/src/client/sound/data/pigdeath.pcm @@ -0,0 +1,1455 @@ +unsigned char PCM_pigdeath[46482] = { +1,0,0,0,2,0,0,0,68,172,0,0,193,90,0,0,152,0,227,0,232,0,24,1,48,1,194,0,28,0,182,255, +43,0,179,0,224,0,195,0,119,0,110,0,114,0,165,0,157,0,104,0,90,0,58,0,80,0,159,0,168,0,112,0, +101,0,62,0,64,0,89,0,100,0,178,0,185,0,112,0,94,0,160,0,192,0,147,0,93,0,71,0,245,255,138,255, +170,255,47,0,198,0,18,1,242,0,97,0,195,255,159,255,19,0,129,0,32,0,125,255,124,255,39,0,136,0,76,0, +244,255,198,255,182,255,193,255,5,0,71,0,118,0,180,0,183,0,76,0,41,0,107,0,153,0,149,0,116,0,72,0, +26,0,4,0,176,255,104,255,142,255,225,255,243,255,134,255,14,255,228,254,242,254,18,255,6,255,192,254,246,254,165,255, +58,0,129,0,80,0,200,255,48,255,241,254,49,255,204,255,83,0,99,0,205,255,17,255,191,254,220,254,71,255,122,255, +164,255,215,255,190,255,119,255,81,255,63,255,87,255,202,255,208,255,90,255,46,255,182,255,106,0,176,0,136,0,35,0, +252,255,20,0,92,0,169,0,182,0,173,0,206,0,208,0,130,0,31,0,5,0,66,0,10,0,178,255,206,255,67,0, +164,0,103,0,3,0,230,255,3,0,81,0,229,0,35,1,188,0,6,0,90,255,80,255,151,255,156,255,128,255,118,255, +115,255,172,255,46,0,114,0,109,0,124,0,125,0,72,0,109,0,227,0,9,1,229,0,191,0,171,0,134,0,107,0, +112,0,107,0,88,0,25,0,219,255,146,255,54,255,68,255,102,255,248,254,191,254,45,255,168,255,187,255,72,255,41,255, +138,255,228,255,182,255,40,255,190,254,133,254,143,254,169,254,180,254,163,254,119,254,51,254,23,254,236,253,158,253,160,253, +206,253,126,253,184,252,129,252,255,252,88,253,11,253,127,252,85,252,35,253,114,254,142,255,127,0,106,1,105,2,249,2, +102,2,4,1,163,255,176,254,122,254,115,254,61,254,223,253,196,253,236,253,5,254,253,253,171,253,188,253,99,254,101,255, +227,255,99,255,1,254,31,252,255,250,37,251,222,251,37,253,226,254,66,0,110,1,75,2,199,2,216,2,97,2,98,1, +52,0,116,255,66,255,155,255,57,0,163,0,107,0,175,255,20,255,27,255,89,255,118,255,98,255,232,255,89,1,152,2, +145,2,2,1,206,255,57,0,22,1,191,0,194,255,32,255,170,254,31,254,164,253,83,253,36,253,97,253,179,253,253,253, +178,254,242,255,42,1,200,1,142,1,49,1,76,1,113,1,62,1,178,0,178,0,18,2,40,4,97,5,136,5,53,5, +208,4,67,4,118,3,181,2,68,2,0,2,112,1,250,0,204,0,219,0,4,1,8,1,245,0,58,1,207,1,79,2, +120,2,108,2,194,2,36,3,124,3,192,3,193,3,148,3,100,3,64,3,49,3,191,3,179,4,11,5,166,4,37,4, +47,4,211,4,57,5,45,5,218,4,91,4,247,3,250,3,38,4,2,4,142,3,22,3,63,3,213,3,46,4,18,4, +7,4,70,4,4,4,4,3,224,1,33,1,240,0,14,1,27,1,28,1,106,1,19,2,136,2,135,2,87,2,51,2, +66,2,117,2,177,2,19,3,133,3,213,3,196,3,43,3,150,2,102,2,72,2,29,2,16,2,219,1,91,1,251,0, +150,0,245,255,100,255,47,255,61,255,30,255,152,254,228,253,126,253,57,253,147,252,154,251,218,250,180,250,110,250,162,249, +12,249,25,249,216,249,9,251,136,252,87,254,33,0,139,1,50,2,5,2,125,1,10,1,157,0,57,0,70,0,126,0, +77,0,146,255,134,254,122,253,209,252,223,252,76,253,139,253,69,253,125,252,79,251,196,249,139,248,10,248,43,248,196,248, +62,249,180,249,181,250,243,251,239,252,110,253,131,253,140,253,165,253,197,253,227,253,241,253,21,254,102,254,236,254,57,255, +226,254,85,254,205,253,68,253,224,252,182,252,138,252,248,251,128,251,163,251,3,252,91,252,235,252,123,253,9,253,173,251, +150,250,83,250,169,250,186,250,41,250,96,249,126,248,152,247,16,247,106,247,153,248,226,249,218,250,106,251,98,251,186,250, +49,250,154,250,193,251,43,253,77,254,249,254,234,255,38,1,243,1,58,2,133,2,26,3,110,3,72,3,102,2,171,0, +98,255,40,255,54,255,197,254,16,254,177,253,127,253,128,253,89,253,156,252,199,251,12,251,4,251,188,251,66,252,107,252, +102,252,207,252,112,253,213,253,191,254,213,255,185,0,159,1,91,2,210,2,121,2,248,1,69,2,38,3,49,4,130,4, +101,4,102,4,27,4,148,3,159,2,222,1,193,1,108,1,228,0,117,0,100,0,80,0,251,255,247,255,163,255,99,255, +210,255,25,0,66,0,240,255,43,255,228,254,237,254,29,255,182,255,7,1,182,2,203,3,255,3,155,3,110,3,111,3, +28,3,74,3,83,4,188,5,189,6,157,6,4,6,230,5,83,6,175,6,114,6,175,5,128,4,67,3,171,2,175,2, +238,2,208,3,251,4,78,5,14,5,129,4,116,3,98,2,131,1,38,1,137,1,11,2,92,2,225,2,166,3,82,4, +221,4,44,5,86,5,96,5,225,4,190,4,13,5,233,4,32,5,148,5,209,5,89,6,226,6,135,7,21,8,228,7, +46,7,2,6,115,4,190,2,135,1,129,1,42,2,230,2,105,3,78,3,143,2,211,1,176,1,180,1,157,1,111,1, +0,1,21,1,207,1,111,2,47,3,97,4,168,5,70,6,24,6,173,5,77,5,246,4,64,4,80,3,229,2,233,2, +16,3,37,3,49,3,101,3,64,3,171,2,201,1,140,0,151,255,33,255,218,254,90,254,177,253,141,253,171,253,24,254, +255,254,77,255,40,255,66,255,118,255,126,255,214,254,212,253,49,253,75,253,48,254,2,255,138,255,27,0,184,0,105,1, +115,1,213,0,35,0,69,255,250,254,98,255,108,255,14,255,203,254,232,254,92,255,0,0,126,0,104,0,229,255,207,254, +35,253,141,251,54,250,94,249,255,248,166,248,189,248,72,249,223,249,86,250,105,250,88,250,36,250,149,249,69,249,104,249, +221,249,124,250,246,250,105,251,210,251,113,252,138,253,20,254,133,253,148,252,236,251,149,251,226,250,52,250,162,250,173,251, +191,252,152,253,123,253,128,252,120,251,224,250,101,250,145,249,254,248,214,248,147,248,131,248,228,248,110,249,227,249,53,250, +153,250,218,250,178,250,102,250,56,250,77,250,125,250,194,250,125,251,110,252,94,253,89,254,216,254,244,254,35,255,28,255, +160,254,239,253,206,253,99,254,184,254,210,254,25,255,3,255,137,254,35,254,227,253,111,253,185,252,95,252,70,252,47,252, +87,252,29,252,140,251,177,251,118,252,79,253,213,253,204,253,160,253,138,253,168,253,32,254,128,254,199,254,132,255,62,0, +23,0,196,255,107,0,87,1,76,1,175,0,154,0,71,1,250,1,31,2,237,1,173,1,167,1,20,2,163,2,229,2, +178,2,65,2,23,2,27,2,200,1,118,1,135,1,198,1,29,2,100,2,73,2,28,2,8,2,191,1,136,1,191,1, +72,2,209,2,28,3,50,3,108,3,246,3,161,4,74,5,111,5,199,4,75,4,135,4,202,4,245,4,249,4,182,4, +173,4,194,4,180,4,54,4,247,2,154,1,9,1,86,1,194,1,185,1,151,1,181,1,97,1,199,0,90,0,31,0, +117,0,174,0,78,0,243,255,51,0,43,1,75,2,222,2,218,2,144,2,103,2,147,2,201,2,33,3,153,3,17,4, +128,4,198,4,228,4,192,4,118,4,36,4,28,4,187,4,142,5,136,5,10,5,227,4,63,4,62,3,1,3,98,3, +44,3,251,1,39,1,172,1,3,2,31,1,101,0,178,0,120,1,99,1,235,0,46,1,190,1,174,2,153,3,216,3, +166,3,135,3,116,3,80,3,187,3,80,4,45,4,93,3,125,2,146,2,135,3,6,4,231,3,158,3,88,3,200,2, +241,1,197,1,185,1,43,1,173,0,124,0,75,0,179,255,159,254,117,253,194,252,136,252,11,253,212,253,58,254,102,254, +5,254,90,253,253,252,14,253,150,253,92,254,12,255,133,255,235,255,171,0,94,1,111,1,108,1,96,1,43,1,4,1, +206,0,210,0,46,1,33,1,185,0,191,0,157,0,169,255,92,254,163,253,201,253,57,254,28,254,68,253,157,252,189,252, +165,253,90,254,114,253,130,251,183,250,0,252,131,253,5,254,225,253,90,253,27,253,58,253,31,253,206,252,213,252,83,253, +92,254,171,255,2,0,3,255,55,254,29,255,208,0,220,0,161,254,175,252,45,253,31,255,11,0,141,255,0,255,30,255, +86,255,111,254,236,252,75,252,4,253,120,253,241,252,157,252,191,252,241,252,22,252,161,250,95,250,166,251,24,253,61,253, +67,252,174,251,76,252,103,253,66,254,254,253,128,253,24,254,19,255,173,255,126,255,100,255,110,0,248,1,107,2,212,0, +45,254,96,252,89,252,190,253,165,254,23,254,245,253,120,254,57,254,34,253,159,251,7,251,55,252,166,253,2,254,154,253, +37,253,77,253,228,253,117,253,110,252,46,252,175,252,230,253,190,254,244,254,41,255,236,255,207,0,80,0,228,254,219,253, +19,254,14,255,67,0,145,1,230,2,150,3,220,2,144,1,221,0,80,1,159,1,30,1,83,0,105,0,161,1,164,2, +84,2,246,0,66,0,62,0,230,0,233,0,100,255,43,253,200,251,117,253,37,0,106,1,176,0,218,254,69,254,175,255, +245,0,136,0,203,255,12,0,107,1,116,2,113,2,186,1,106,1,228,2,182,4,25,5,209,4,133,4,10,4,238,3, +250,3,249,3,177,3,51,3,120,3,255,3,120,3,176,1,61,0,91,0,208,0,31,0,191,254,212,253,212,253,102,254, +189,254,194,254,229,254,78,255,8,0,142,0,76,0,15,0,158,0,187,1,152,2,166,2,88,2,166,2,181,3,176,4, +5,5,158,4,83,4,207,4,64,5,194,4,62,3,253,1,255,1,205,2,178,3,19,4,229,3,71,3,69,2,18,1, +60,0,246,255,191,255,230,255,16,0,184,255,103,255,118,255,133,255,193,254,199,253,94,253,35,253,189,252,199,252,106,253, +51,254,24,255,94,255,255,254,10,254,210,252,102,252,168,252,16,253,72,253,156,253,193,253,43,253,56,252,41,251,115,250, +182,250,182,251,44,253,3,255,165,0,67,2,36,3,148,2,212,1,153,1,201,1,229,1,129,1,254,0,27,1,3,1, +250,255,159,254,243,252,42,251,79,249,44,248,7,248,59,248,79,249,84,250,151,250,193,250,195,250,206,250,26,251,207,251, +51,253,135,254,95,255,92,0,102,1,228,1,133,1,232,0,253,0,198,1,247,2,254,3,121,4,93,4,37,4,218,4, +104,5,141,4,247,2,83,1,196,0,26,1,38,1,225,0,248,255,132,254,42,253,19,252,222,250,11,249,49,247,58,246, +101,246,203,247,116,249,69,250,202,250,138,251,199,252,109,254,161,255,89,0,120,1,110,3,111,5,157,6,202,6,149,6, +9,7,201,7,202,7,200,6,89,5,79,4,209,3,209,3,209,3,70,3,177,2,71,2,55,2,125,2,191,2,104,3, +194,3,116,3,155,3,251,3,40,4,143,3,34,2,137,1,185,1,185,1,90,1,165,0,169,0,114,1,23,2,123,2, +160,2,193,2,238,2,132,3,238,4,125,6,220,7,198,8,251,8,54,9,113,9,79,9,230,8,126,8,150,8,135,8, +11,8,204,7,48,7,198,5,93,4,141,3,53,3,235,2,114,2,195,1,100,1,207,1,115,2,113,2,224,1,44,1, +50,0,116,255,9,255,91,254,80,254,40,255,3,0,61,0,117,255,148,254,114,254,22,255,44,0,75,1,145,2,112,3, +181,3,29,4,175,4,8,5,224,4,106,4,218,3,43,3,138,2,57,2,42,2,117,1,18,0,114,254,173,252,57,251, +191,249,125,248,228,247,180,247,27,248,22,248,61,247,226,245,235,243,120,242,177,241,252,240,201,240,50,241,211,241,233,242, +233,244,102,247,24,250,76,252,157,253,33,255,143,0,212,1,90,3,44,4,46,4,204,3,124,3,182,2,213,0,35,255, +250,253,64,253,46,253,217,252,195,251,184,250,89,250,244,249,116,249,199,248,126,247,124,246,161,245,239,244,249,244,18,245, +21,245,7,245,145,245,216,246,59,247,204,246,208,246,175,247,240,248,134,250,157,252,163,254,177,0,75,2,245,2,145,3, +197,4,96,6,59,7,154,7,58,8,191,8,129,9,70,9,96,7,84,5,229,2,195,255,22,253,214,250,64,248,147,246, +83,246,95,245,205,243,213,242,34,242,1,242,250,242,171,244,57,246,138,248,29,252,215,254,133,0,78,1,220,0,72,0, +22,0,92,0,17,1,56,2,137,3,233,4,224,5,62,6,31,7,39,8,198,8,225,8,253,8,74,10,206,11,65,12, +190,11,133,10,163,8,232,5,212,2,190,0,152,255,205,254,10,254,223,252,139,251,245,249,29,248,111,246,199,245,254,245, +228,246,40,249,244,251,207,254,66,1,180,3,6,6,255,6,138,7,214,7,126,8,243,9,139,11,4,13,192,13,182,13, +199,12,48,11,47,9,175,6,92,4,144,3,104,4,171,5,177,6,218,6,130,5,209,2,121,0,147,254,230,252,227,252, +40,254,96,255,179,255,125,255,108,254,120,252,93,250,33,248,94,247,61,248,48,250,226,252,79,255,104,1,254,2,173,3, +115,3,28,3,47,3,20,4,21,6,236,8,79,11,27,12,237,11,209,10,179,8,123,5,228,2,251,2,19,4,118,4, +99,4,107,4,67,3,5,1,183,254,11,252,106,250,102,250,99,251,239,252,147,254,161,255,201,255,53,255,177,253,226,251, +112,250,229,249,157,250,245,252,42,0,190,2,62,4,33,4,223,2,70,1,216,0,193,1,10,3,254,4,161,6,232,7, +146,8,228,7,226,6,201,5,15,4,10,2,6,1,96,1,8,2,221,1,35,1,31,0,187,254,63,253,108,251,0,250, +214,249,83,250,10,251,209,252,158,254,32,255,25,255,96,254,211,253,165,253,248,252,166,252,51,253,103,254,207,255,68,1, +21,2,155,1,203,0,57,1,108,2,203,2,212,2,91,3,106,4,134,4,32,3,189,1,179,0,248,255,64,255,140,254, +253,253,88,253,169,252,185,251,250,250,13,250,206,248,160,248,91,249,246,249,81,250,148,251,72,253,76,253,13,253,179,253, +98,253,85,252,80,252,124,253,163,254,172,255,158,0,69,1,13,2,165,1,33,0,183,255,89,0,166,0,44,0,154,255, +118,255,196,255,9,0,146,255,178,254,189,253,137,252,44,251,68,250,68,250,178,250,26,251,139,251,161,251,174,250,91,249, +92,248,153,247,136,247,90,248,185,249,218,250,112,251,213,251,0,252,105,252,96,253,230,254,194,0,102,2,49,3,56,2, +11,1,19,1,47,1,48,1,72,1,0,2,66,3,255,3,151,3,83,2,58,1,214,255,66,254,251,253,98,254,160,254, +16,254,245,252,162,252,243,252,156,253,72,254,201,254,119,254,55,253,21,253,141,254,168,255,142,255,76,255,84,0,35,1, +217,0,174,0,112,0,2,0,217,255,56,0,69,1,218,2,207,3,216,3,149,3,109,3,8,3,155,2,25,3,75,4, +220,4,244,4,158,4,214,3,167,2,249,0,178,255,9,255,59,255,143,255,197,255,66,0,151,0,82,0,25,0,2,0, +231,255,2,0,63,0,234,255,107,255,163,255,67,0,135,0,125,0,217,0,123,1,13,2,30,2,183,2,103,3,156,3, +38,3,119,2,3,3,198,3,28,4,138,4,149,4,148,4,95,4,127,4,68,5,234,4,22,4,79,3,253,2,222,2, +79,2,141,1,147,0,138,255,118,255,220,255,162,255,11,255,111,254,250,253,180,253,20,254,78,254,186,253,146,253,180,254, +234,255,124,0,125,0,149,0,161,0,58,1,230,1,147,1,96,1,123,1,190,1,202,1,199,1,217,1,82,1,143,0, +107,0,130,0,211,0,243,0,198,0,74,0,219,255,250,255,124,0,186,0,89,0,16,0,223,255,230,255,85,255,60,254, +0,253,29,252,229,251,47,252,4,252,238,251,31,252,31,252,22,252,57,252,124,252,192,252,35,253,3,254,248,254,22,255, +95,255,24,0,120,1,162,2,45,3,114,3,143,3,218,2,140,1,153,0,136,0,155,0,210,0,221,0,154,0,27,0, +207,255,167,255,245,254,25,254,173,253,193,253,183,253,118,253,139,253,133,253,58,253,0,253,59,253,215,253,34,254,131,254, +233,254,217,254,247,253,104,253,104,253,24,254,182,254,3,255,220,255,23,1,69,1,249,0,180,0,117,0,231,255,130,255, +74,255,39,255,8,255,29,255,217,255,68,0,47,0,54,0,60,0,129,255,99,254,224,253,250,253,235,253,4,254,108,254, +20,255,159,255,24,0,11,0,188,255,47,255,153,254,93,254,26,255,251,255,127,0,44,1,207,1,163,1,217,0,226,255, +120,0,130,0,227,0,213,1,255,0,73,1,245,1,25,2,46,2,58,2,240,1,130,2,88,2,243,1,88,1,32,1, +192,1,189,0,108,1,236,2,244,1,227,0,175,0,70,1,85,1,3,0,75,255,40,255,50,255,77,0,203,255,34,255, +218,255,56,0,142,0,66,1,214,0,202,254,176,254,15,1,163,1,109,0,229,255,4,1,146,1,60,1,56,4,221,3, +53,3,91,3,198,1,176,2,139,2,56,1,225,1,89,1,198,255,120,1,103,1,186,255,176,253,100,254,196,1,11,0, +235,253,147,253,192,254,156,0,189,255,0,255,29,0,122,255,250,255,186,0,171,255,169,255,20,255,93,0,111,0,104,0, +69,0,234,254,172,255,149,1,147,2,249,255,26,253,244,255,96,2,200,255,211,254,98,255,81,0,14,1,27,1,115,255, +189,254,65,255,70,255,67,254,190,252,110,254,184,254,39,255,49,0,141,0,118,0,86,254,83,253,60,254,166,254,221,252, +132,253,175,255,222,254,136,254,248,255,151,0,135,255,101,255,214,255,127,255,178,0,51,1,141,1,228,1,3,1,163,1, +167,2,205,1,233,0,122,1,222,0,111,0,84,1,228,0,73,255,253,254,141,255,49,255,189,255,105,0,92,255,252,254, +83,255,83,255,152,254,146,254,138,255,74,255,36,0,211,0,203,254,150,254,14,1,240,0,239,254,186,253,233,254,199,255, +193,255,153,0,6,0,120,254,139,255,251,1,93,1,119,0,136,0,158,0,30,1,148,2,235,1,0,1,77,0,217,0, +246,2,173,1,85,0,95,255,57,255,126,255,133,255,69,254,123,253,161,253,177,253,99,255,180,254,41,253,87,253,184,254, +143,255,187,255,254,255,184,254,171,253,111,255,249,0,110,1,216,1,121,1,52,0,56,1,50,3,81,2,9,1,225,255, +110,0,160,1,84,2,43,3,108,2,170,1,126,1,166,1,114,1,11,0,207,255,229,0,104,0,196,255,221,255,51,255, +138,254,59,253,3,254,132,254,130,253,45,253,234,252,154,251,108,253,77,0,245,254,207,253,1,254,65,255,102,255,128,255, +251,255,246,254,125,255,120,0,134,0,180,255,117,254,232,254,157,0,58,1,120,255,145,255,68,0,157,0,20,0,203,254, +149,255,229,255,234,253,7,255,124,0,93,255,30,254,130,253,1,255,233,255,56,254,115,253,8,253,192,253,164,0,197,255, +10,254,49,253,179,254,171,0,34,1,171,255,180,252,75,252,39,254,65,255,159,0,201,2,142,2,156,1,120,2,203,1, +195,0,174,0,62,1,75,3,221,4,172,3,136,255,252,252,74,255,110,0,133,255,52,255,177,254,34,255,139,253,104,253, +218,255,18,1,22,0,93,255,225,254,4,254,251,253,140,253,109,253,238,254,170,255,37,0,7,0,105,253,73,253,187,253, +199,252,111,255,216,0,173,255,169,0,33,255,188,253,169,255,145,2,77,3,30,2,148,0,10,1,76,1,230,254,21,252, +152,253,146,0,83,2,3,2,255,254,63,250,59,248,6,251,229,253,140,0,28,255,123,251,22,250,107,250,250,250,237,253, +168,254,215,251,106,251,106,250,78,250,8,254,29,0,200,253,235,253,176,254,215,254,169,0,61,255,152,252,161,253,203,0, +27,1,19,0,114,254,160,254,41,2,154,4,142,2,55,1,67,1,64,2,217,0,137,255,210,0,225,255,56,253,216,252, +239,253,61,255,171,254,177,251,40,250,124,253,7,0,1,0,86,255,127,253,217,254,205,1,22,4,98,5,91,4,126,1, +7,1,81,2,191,3,168,4,215,2,255,255,17,1,88,4,146,6,0,4,109,2,208,1,164,1,20,3,214,2,63,1, +163,1,37,4,188,5,130,4,67,1,233,1,163,6,231,6,187,2,207,0,30,1,88,2,132,2,186,255,179,255,195,3, +152,3,9,1,225,1,91,3,6,4,1,6,146,7,15,8,119,8,144,7,183,6,251,7,74,9,74,10,166,10,49,8, +35,6,192,6,77,7,58,6,20,7,208,8,92,8,55,7,193,5,18,6,188,6,229,5,162,5,21,6,116,8,228,9, +11,8,171,7,181,8,70,9,211,10,151,9,194,7,185,7,223,6,197,6,114,6,231,6,9,7,50,5,79,5,232,8, +186,10,77,8,197,6,170,8,72,9,82,7,186,4,208,5,67,9,195,8,172,7,157,6,22,5,53,5,23,7,192,9, +137,9,245,5,71,2,200,0,216,0,134,1,156,1,64,3,175,4,29,1,58,253,55,253,5,252,147,250,232,251,239,249, +204,247,139,248,150,248,187,246,140,244,123,242,151,239,147,238,106,238,50,237,97,234,115,232,177,233,135,237,90,244,45,251, +183,0,167,7,217,10,31,9,65,7,35,3,236,253,138,248,225,244,94,244,116,247,210,252,120,255,111,253,197,248,248,248, +25,252,100,251,16,248,85,248,132,250,199,249,4,249,149,249,196,248,178,243,43,238,114,235,200,234,128,236,23,241,230,243, +90,245,221,248,185,248,76,244,60,239,242,233,45,229,114,229,149,235,228,243,54,250,57,254,143,3,163,7,62,6,56,2, +157,0,86,0,21,1,175,3,183,6,25,9,242,7,66,2,232,251,59,245,133,237,147,234,115,237,144,240,119,241,165,241, +59,241,225,238,255,232,28,226,169,222,172,223,97,230,171,240,71,250,64,0,5,3,247,3,95,1,91,250,57,241,101,234, +24,232,57,234,59,241,177,251,17,4,129,7,135,6,20,3,183,1,126,2,61,3,173,5,75,10,10,14,7,16,21,16, +120,12,121,7,111,2,123,253,237,252,14,1,171,5,180,9,147,12,64,12,95,8,181,1,106,249,155,240,179,234,236,233, +42,236,79,243,76,254,220,5,161,8,118,9,42,10,181,10,175,9,212,8,249,10,129,13,56,15,94,17,69,17,133,14, +204,10,102,7,177,7,73,12,131,16,196,18,234,21,234,24,196,23,206,16,192,7,39,2,0,0,170,255,12,3,42,8, +129,10,109,12,47,14,252,11,88,6,8,0,200,251,189,249,224,248,197,248,43,249,246,250,204,253,39,0,48,2,141,4, +145,5,207,4,20,5,111,7,150,9,188,9,214,8,148,8,195,8,186,8,56,10,199,13,2,18,242,20,205,21,164,23, +220,24,222,21,194,16,114,10,187,3,0,0,89,255,50,255,250,254,128,255,175,1,67,4,85,4,136,3,82,3,33,2, +11,2,18,3,77,2,151,1,80,1,12,0,19,255,38,255,163,0,223,2,136,5,115,8,151,10,47,12,217,11,32,10, +251,8,70,7,54,6,12,6,143,5,139,6,199,7,168,7,228,7,100,8,145,8,109,8,7,7,227,4,77,4,246,4, +51,4,81,2,10,2,201,2,115,1,16,255,249,252,181,249,30,248,160,249,208,250,17,251,159,250,93,250,141,251,214,252, +86,253,209,252,12,252,97,252,62,253,230,253,113,255,153,2,239,3,252,2,148,3,25,4,108,4,175,5,12,5,1,4, +92,3,190,1,83,0,166,254,28,252,183,249,130,249,14,252,52,254,77,254,162,253,175,253,9,255,132,254,80,250,25,246, +134,244,129,245,229,247,78,250,55,252,164,254,76,1,62,1,234,252,203,248,212,248,129,248,246,247,173,248,63,247,82,246, +217,246,170,247,228,249,33,252,233,253,11,0,61,2,172,3,231,1,153,254,13,253,123,250,89,247,230,245,212,245,110,246, +44,246,61,245,190,244,12,245,186,243,252,241,246,242,102,245,19,246,180,243,175,242,7,244,0,246,146,248,230,249,14,250, +243,250,170,251,3,252,204,253,83,254,56,252,102,250,177,251,70,255,44,1,53,255,200,250,156,248,142,249,157,251,19,252, +4,251,80,250,144,249,155,251,196,253,180,252,93,252,236,253,219,254,180,253,201,251,94,250,214,248,230,246,181,245,28,244, +250,242,42,244,97,246,42,249,45,251,64,252,182,252,12,253,106,253,51,254,43,255,52,254,86,253,163,253,144,255,123,2, +57,4,83,5,61,5,154,4,36,4,9,2,21,254,19,251,6,250,217,249,195,248,11,248,82,250,250,251,214,251,117,252, +196,254,139,0,61,0,247,255,209,255,226,255,187,255,82,255,171,254,30,254,43,255,122,0,42,2,89,4,201,5,89,7, +89,8,107,7,125,6,100,5,213,2,243,255,55,0,182,4,99,7,90,8,96,10,214,12,8,15,21,13,172,7,251,3, +119,5,40,8,52,7,55,6,190,6,129,5,80,3,196,2,104,2,171,1,53,1,60,1,11,1,53,0,96,0,167,1, +139,3,129,4,34,4,66,4,152,4,53,3,141,2,72,4,217,4,39,4,30,3,59,3,220,3,211,4,23,7,156,6, +224,5,122,7,232,8,161,8,181,6,190,4,65,2,34,1,48,2,22,3,245,3,174,5,173,6,198,6,6,8,248,7, +104,5,69,2,193,255,106,254,233,253,98,254,242,254,241,255,106,1,18,2,67,3,204,4,36,4,15,3,41,4,222,4, +107,4,255,3,165,3,13,4,48,5,129,6,89,7,246,8,192,9,106,7,155,6,121,8,132,7,219,3,20,2,76,1, +7,0,92,255,62,0,182,1,32,2,10,3,141,2,245,0,8,0,106,254,4,254,64,253,185,252,52,253,101,252,76,252, +197,252,27,254,100,255,248,254,135,254,145,254,170,255,145,0,76,0,22,0,120,255,210,254,202,254,186,254,28,255,196,255, +226,0,54,2,94,2,84,2,58,1,202,255,44,255,208,253,225,252,164,252,179,253,133,254,41,254,27,254,243,252,127,252, +195,252,74,253,32,254,128,252,85,251,44,252,189,252,68,254,162,0,3,0,219,253,197,254,52,0,230,255,92,255,107,255, +46,0,31,0,7,255,217,253,225,252,80,253,195,254,60,255,253,254,238,254,105,254,224,253,105,254,98,254,167,252,72,251, +168,251,11,253,222,253,65,253,151,252,53,253,216,253,13,254,241,253,235,253,183,255,62,0,108,255,202,255,157,254,7,255, +64,1,239,255,147,253,246,252,149,253,139,254,83,255,106,255,151,254,81,254,10,254,30,254,58,255,211,254,207,253,48,254, +61,254,213,253,43,253,171,251,177,251,113,253,1,254,74,253,122,253,39,255,48,0,144,255,111,254,181,253,225,253,113,254, +93,254,210,253,1,254,193,254,156,255,171,0,156,0,99,255,188,254,89,255,57,255,124,253,236,252,246,253,92,255,131,0, +215,255,199,253,85,253,240,254,245,255,129,255,131,254,255,253,59,254,208,254,253,254,100,253,121,252,0,253,196,252,125,253, +42,255,68,0,211,255,246,253,211,252,38,253,81,254,102,255,154,255,7,255,157,254,94,255,134,0,143,1,129,2,181,1, +154,0,117,0,178,0,92,1,92,1,100,0,192,255,168,0,134,1,103,1,167,0,161,255,22,0,51,0,239,253,100,253, +170,255,148,0,218,255,124,255,150,254,24,255,28,1,116,1,135,1,41,0,44,255,165,255,40,255,201,254,139,254,216,254, +31,255,77,255,178,255,72,0,151,0,160,0,82,1,110,1,187,0,0,0,37,0,74,1,237,0,55,255,123,254,43,255, +78,0,240,255,23,255,97,255,80,255,178,253,192,253,34,255,131,254,201,253,22,254,118,254,106,254,157,255,231,0,11,1, +27,1,247,0,108,1,69,2,54,2,191,1,52,2,35,2,24,2,64,2,36,1,92,0,52,0,115,255,165,254,207,254, +100,255,68,255,252,254,146,255,14,1,45,2,85,2,19,3,177,2,93,1,247,0,114,1,129,2,210,2,108,2,192,0, +199,255,138,0,46,1,148,1,83,2,3,3,104,2,244,0,86,0,36,0,186,255,104,255,26,255,116,0,12,2,243,2, +169,3,49,3,18,3,186,2,10,1,64,0,97,0,161,255,138,253,173,251,188,251,129,252,110,253,193,253,172,254,0,0, +132,255,199,254,13,254,167,253,235,253,7,255,121,0,106,1,100,3,136,5,218,5,232,5,67,6,32,6,204,5,109,5, +79,5,121,4,71,2,219,255,196,254,19,255,149,255,30,0,86,0,190,255,142,255,176,255,170,255,105,0,107,0,51,0, +30,1,27,1,224,0,234,1,122,2,122,3,54,5,119,5,233,4,45,4,128,3,64,3,164,3,56,4,170,3,231,2, +134,3,217,4,5,6,151,6,148,5,90,4,201,4,9,6,254,6,124,7,13,7,82,5,160,3,56,2,242,0,92,1, +174,2,152,3,85,3,206,1,197,0,133,0,153,0,248,0,17,1,77,0,214,255,48,0,248,255,28,0,254,0,213,1, +253,2,62,4,43,5,68,5,160,4,43,3,152,1,165,1,37,2,80,2,57,2,188,1,159,1,172,0,92,255,248,254, +102,254,94,253,50,252,244,251,91,252,134,251,44,250,142,250,152,251,211,250,106,249,246,248,84,249,195,248,110,247,164,246, +226,244,0,244,232,244,245,244,83,244,65,243,135,241,144,239,183,237,96,236,203,235,202,235,105,237,79,242,210,249,191,1, +212,7,163,12,107,16,196,16,128,13,169,7,164,0,249,250,78,248,104,247,120,246,156,245,254,244,240,245,150,248,24,249, +115,246,3,244,202,243,78,245,120,246,167,246,78,248,2,252,179,254,55,254,183,251,134,249,97,249,81,250,249,249,139,249, +164,250,48,252,139,253,53,254,108,253,45,252,250,250,55,249,32,248,137,248,63,250,82,253,214,0,211,3,221,6,32,11, +232,14,235,15,86,14,131,10,39,6,221,2,14,255,227,248,19,242,25,239,85,240,96,241,213,240,147,240,162,241,46,243, +132,243,96,243,10,244,96,244,20,245,208,247,170,251,179,255,253,3,124,8,84,12,76,14,241,14,188,15,201,15,235,13, +13,11,130,7,102,4,146,3,154,3,86,3,181,3,46,4,9,5,236,7,59,11,152,12,121,12,97,12,206,13,167,14, +39,12,72,9,243,8,211,9,49,9,227,6,193,4,52,3,52,3,23,4,94,4,60,5,121,6,36,7,56,7,244,6, +188,7,207,9,26,11,124,11,28,12,141,12,152,14,223,18,214,21,20,22,105,21,210,20,201,19,244,17,84,14,155,11, +14,13,232,14,20,14,141,11,165,9,81,9,106,8,95,5,122,1,107,255,82,255,210,0,123,3,219,4,36,5,4,6, +236,6,139,6,133,4,45,2,8,1,110,0,97,0,162,1,12,4,37,7,251,8,102,9,75,9,68,9,24,9,112,7, +225,5,141,4,197,2,6,1,4,0,169,255,152,252,236,248,181,248,206,250,98,252,55,252,19,253,240,254,228,255,190,255, +85,254,246,252,232,251,79,250,202,247,39,246,225,246,96,248,1,250,49,251,215,250,159,249,239,248,37,249,118,249,88,249, +116,249,151,250,3,252,131,252,147,251,237,249,232,248,250,247,2,247,65,247,88,248,179,249,120,251,104,253,180,254,9,254, +245,251,66,249,201,244,28,240,226,237,24,238,128,239,107,240,109,241,250,243,231,246,244,248,199,249,152,249,29,249,19,249, +175,249,190,249,77,249,129,249,47,250,79,251,25,252,94,251,12,250,153,249,143,249,32,248,135,245,38,244,167,243,126,242, +7,242,215,241,32,241,133,241,62,242,136,242,143,242,67,242,56,243,254,244,70,245,237,244,17,246,199,247,36,249,27,250, +222,249,172,249,97,250,89,250,38,249,1,248,152,247,94,248,142,250,11,253,232,254,149,0,104,2,87,3,60,3,37,2, +194,255,221,253,199,252,70,252,160,252,200,252,13,253,97,253,147,253,203,253,172,253,115,253,49,253,112,253,96,254,66,0, +177,2,99,3,87,2,4,1,206,255,170,255,140,1,45,4,79,6,155,8,147,10,99,11,196,10,202,8,237,6,33,5, +88,3,196,2,100,2,238,1,40,2,214,1,229,0,224,0,221,1,52,3,245,4,180,7,190,10,80,11,194,8,135,5, +15,3,203,0,12,254,14,252,186,252,202,255,152,3,178,7,129,11,14,13,6,12,155,9,102,7,134,5,103,3,156,3, +55,6,14,8,118,8,238,8,64,10,131,10,216,8,58,7,217,6,134,7,248,8,138,9,33,8,152,6,216,4,178,1, +220,253,54,251,240,251,99,254,233,0,106,5,194,10,15,13,21,12,156,9,70,7,60,6,88,5,89,5,255,6,185,8, +7,10,220,9,245,7,55,5,135,2,49,1,1,2,29,4,8,6,218,7,109,8,145,7,72,6,240,3,154,1,250,255, +159,255,57,1,91,3,63,5,34,6,43,5,50,3,155,1,99,0,22,255,221,254,120,0,162,2,163,3,7,3,65,2, +73,2,126,1,123,255,184,254,168,255,141,1,221,4,41,8,236,9,82,10,142,9,177,9,76,11,9,11,128,7,80,3, +221,1,179,2,66,2,244,255,217,253,83,252,201,251,138,252,16,253,94,253,104,253,214,252,169,252,147,252,178,251,202,249, +188,247,10,247,108,248,82,250,131,251,146,253,208,255,246,0,57,1,6,0,227,253,158,252,206,252,253,252,221,252,179,252, +221,252,41,254,11,255,168,254,238,253,93,253,180,253,1,255,237,255,77,1,90,3,179,2,214,255,107,253,24,252,29,251, +63,249,38,248,129,248,106,249,200,250,139,251,248,250,57,250,159,250,243,250,133,250,161,250,158,251,79,252,24,252,10,252, +163,252,224,253,208,255,163,1,72,2,254,1,184,1,199,1,207,1,237,0,37,0,11,0,37,255,72,253,135,251,134,250, +93,249,76,248,58,248,205,248,111,249,70,249,20,249,163,248,254,246,185,245,211,245,149,246,148,247,248,248,180,249,29,249, +72,248,154,247,95,246,97,245,66,246,33,248,37,250,211,251,97,252,113,252,51,252,168,251,12,251,147,250,118,250,135,250, +219,250,241,250,146,250,250,250,102,252,39,253,138,252,133,251,23,251,115,251,32,252,208,252,115,253,89,254,248,254,14,255, +143,255,58,0,241,0,21,2,133,3,187,3,177,1,46,0,184,0,106,1,183,0,237,254,120,253,79,253,83,254,19,255, +22,255,86,254,163,252,44,252,168,253,3,255,140,255,87,0,146,1,142,2,126,3,238,3,117,3,153,2,113,2,225,3, +19,5,133,4,228,2,1,1,223,255,12,0,145,1,241,2,115,2,144,1,60,2,201,3,82,5,115,6,150,6,109,6, +89,6,250,5,118,5,227,4,123,4,152,4,111,5,47,6,244,6,35,8,50,8,247,6,139,4,159,1,245,255,5,255, +221,253,1,253,15,254,253,0,72,3,209,3,44,4,122,5,77,6,59,6,201,6,61,8,67,9,2,9,207,7,215,6, +71,7,211,7,148,7,210,7,178,8,172,9,240,9,127,8,4,6,95,4,162,3,244,2,160,2,178,1,24,0,226,255, +249,0,81,2,229,2,244,1,101,1,156,1,208,1,93,2,189,1,194,255,64,254,151,254,187,0,177,2,25,3,4,2, +181,1,215,2,157,3,160,3,1,3,187,2,236,3,144,5,76,5,47,4,8,4,109,3,35,3,154,3,49,3,20,2, +248,0,67,0,217,0,45,2,65,2,215,1,208,1,9,2,48,2,182,1,23,1,135,255,138,254,35,255,94,255,1,255, +191,253,146,252,27,252,85,252,8,253,197,252,127,252,107,252,14,252,49,252,186,252,67,253,94,253,205,252,236,251,52,252, +229,253,223,254,110,254,13,254,54,254,31,254,79,253,177,251,231,250,251,251,255,252,89,252,41,251,41,251,136,251,164,251, +183,251,134,251,189,251,130,252,233,253,91,255,70,255,143,254,147,254,23,255,23,255,190,253,63,252,176,251,107,252,83,254, +95,255,53,255,230,254,119,254,13,254,17,253,51,252,1,253,217,253,150,253,206,253,162,254,90,255,201,255,128,255,40,255, +84,255,121,255,188,254,218,253,193,254,160,255,108,254,122,253,215,252,96,251,1,252,49,254,117,254,122,252,158,249,51,249, +221,250,137,250,140,247,144,244,115,244,141,245,43,245,53,244,220,243,80,244,242,245,126,248,0,251,27,254,111,1,9,4, +185,5,118,6,72,7,132,7,139,6,93,4,47,2,73,1,255,255,113,254,150,252,131,250,85,249,98,248,17,247,156,244, +105,242,204,241,232,242,110,245,115,246,13,247,192,250,255,255,138,3,57,5,196,6,156,8,243,9,120,9,104,7,33,6, +138,5,159,3,154,1,121,1,133,2,210,2,131,1,231,255,152,254,255,253,216,253,47,252,92,250,171,250,18,253,129,0, +41,3,191,4,79,6,18,8,114,9,230,9,183,8,114,5,26,2,141,0,1,255,45,252,41,249,164,246,127,245,184,245, +91,246,5,248,12,251,175,253,181,254,182,255,253,1,228,4,114,7,101,8,125,8,117,9,26,11,152,12,215,12,66,12, +95,12,104,12,220,11,241,10,124,9,126,8,93,7,9,5,75,2,14,0,6,255,68,254,126,253,67,253,69,253,156,254, +69,1,79,4,183,6,48,7,121,7,53,8,243,7,143,7,68,7,3,6,103,4,201,3,86,4,253,5,142,7,167,7, +130,7,161,7,146,7,147,7,223,7,100,8,72,8,134,7,178,7,248,9,229,10,127,8,118,6,14,5,50,4,68,4, +205,3,122,3,102,3,73,4,150,5,172,5,155,5,12,5,243,3,140,3,176,3,19,3,180,1,75,1,75,1,224,0, +230,0,114,1,100,2,42,3,63,3,34,4,15,6,58,7,174,7,221,7,168,7,45,7,78,6,99,5,53,4,110,2, +35,1,227,0,59,1,172,1,175,1,9,2,54,3,142,3,29,2,75,0,253,254,3,253,252,250,53,250,247,249,205,249, +178,249,0,250,234,250,76,252,47,253,235,252,91,252,140,251,199,250,108,249,37,247,61,245,164,242,66,239,237,236,167,235, +76,234,81,233,255,234,51,240,184,246,51,252,225,0,6,5,103,7,55,7,104,5,91,2,160,253,173,249,166,247,237,246, +107,248,22,251,8,253,36,254,96,254,113,253,0,251,132,246,4,242,87,239,31,237,157,235,239,235,231,237,67,240,31,242, +176,244,137,248,75,252,8,255,78,1,147,2,26,3,224,3,222,3,131,2,26,0,244,252,4,249,254,245,249,244,214,244, +104,245,44,246,7,248,104,250,202,251,180,252,86,253,109,254,225,254,57,255,73,0,142,0,192,0,28,0,78,254,201,252, +135,251,196,249,81,247,100,245,49,244,253,243,237,244,89,245,28,245,91,245,173,245,230,245,73,246,63,246,66,246,212,245, +163,245,206,247,171,250,55,253,9,0,144,2,88,4,82,6,220,9,53,13,84,14,85,13,0,11,241,8,190,6,146,2, +35,254,106,251,204,249,67,250,3,253,35,0,96,3,220,6,96,10,170,12,123,11,242,7,244,4,82,2,106,255,162,252, +55,250,243,249,142,252,20,0,5,4,222,7,190,9,141,10,83,11,197,10,249,8,174,6,112,4,247,2,91,2,70,2, +58,2,155,2,20,4,114,6,193,8,113,10,35,12,226,12,235,11,244,10,5,10,59,8,30,6,15,4,243,1,111,0, +236,0,133,2,98,3,210,3,111,4,139,5,152,6,80,7,171,7,21,7,107,6,204,5,48,5,67,5,120,5,232,5, +128,6,173,6,193,6,186,6,64,6,222,5,246,5,73,6,85,7,254,8,25,10,225,9,25,9,141,8,200,7,26,7, +56,6,11,5,253,4,152,5,152,5,223,4,31,4,28,4,116,4,109,4,33,4,56,4,3,5,12,6,211,6,14,7, +93,6,156,5,87,5,37,5,224,4,246,3,151,3,141,4,149,5,89,6,45,6,212,4,242,2,65,1,91,0,191,255, +69,255,251,254,243,254,14,255,94,255,19,0,253,255,192,255,149,0,112,1,183,1,48,2,38,3,124,3,101,3,174,3, +230,3,210,3,58,3,196,2,43,3,61,3,64,2,134,1,27,1,80,0,111,0,8,1,167,0,253,255,160,255,145,255, +8,0,182,0,141,0,121,255,68,255,253,255,164,255,209,254,111,254,168,253,181,252,38,251,141,249,57,249,42,249,253,248, +252,248,159,249,109,250,41,250,212,249,60,250,173,250,97,250,138,249,44,249,184,248,132,247,54,247,222,247,255,247,169,248, +204,249,36,250,33,250,17,250,170,249,71,248,173,246,146,245,18,244,96,242,236,240,16,239,97,237,20,237,80,236,236,234, +145,235,218,238,240,245,169,0,207,11,62,19,94,19,107,12,251,0,29,244,60,233,129,226,245,225,241,232,253,244,90,2, +198,13,115,19,235,16,19,7,35,251,213,240,161,232,244,227,241,226,157,229,169,236,207,246,128,1,0,9,118,10,176,6, +206,0,217,251,141,249,210,249,196,251,181,253,131,254,181,253,249,249,125,244,240,239,51,238,56,241,250,248,42,2,147,7, +125,6,233,0,154,250,161,245,182,242,39,243,99,248,198,1,108,11,180,17,50,19,121,15,10,7,98,252,30,243,53,237, +200,236,148,242,194,251,123,5,179,12,195,14,172,11,152,4,83,252,215,246,153,244,209,244,247,247,166,252,1,1,186,3, +86,4,4,4,68,4,46,6,136,9,67,13,175,16,45,19,161,19,37,17,172,11,18,4,175,251,186,244,109,242,139,245, +112,253,87,8,17,18,210,23,67,24,167,19,102,11,111,1,167,248,234,242,191,241,226,244,11,250,202,255,35,5,146,9, +237,12,208,14,1,15,190,13,156,11,60,9,160,7,180,7,65,8,125,7,146,5,207,3,227,3,90,5,118,7,81,10, +103,12,208,13,89,14,207,12,58,10,236,6,120,3,201,1,94,2,184,4,163,7,113,9,234,9,62,9,244,7,12,7, +7,6,164,4,55,3,84,2,80,3,245,5,113,8,62,9,199,8,194,7,69,5,128,1,122,253,135,249,206,247,141,249, +173,252,148,255,106,1,21,2,28,2,30,2,115,2,244,1,129,1,83,1,213,0,17,2,174,3,38,4,48,4,37,3, +119,1,112,255,99,253,195,251,122,250,119,250,118,251,66,252,40,252,102,251,191,250,253,249,198,249,27,251,159,252,171,252, +240,251,170,251,251,251,66,252,65,252,147,253,195,0,212,3,126,5,192,5,157,4,74,1,197,252,167,249,251,247,167,247, +170,248,228,249,231,251,166,254,202,0,239,1,243,1,145,0,165,253,4,251,89,250,78,251,77,253,108,254,70,254,0,254, +219,253,110,254,226,254,106,254,245,252,21,251,227,249,43,248,173,245,191,243,198,242,182,242,32,243,134,243,96,244,199,246, +244,249,92,252,88,253,226,252,134,251,18,250,123,249,107,249,193,248,6,248,192,248,148,252,239,1,188,4,92,4,114,3, +245,2,228,1,32,1,137,0,99,255,163,253,197,251,146,251,75,253,27,255,206,0,139,3,46,6,243,7,130,8,21,8, +80,8,42,9,87,8,159,5,77,2,206,255,144,255,220,0,20,2,240,2,133,4,10,6,34,7,100,7,142,6,60,5, +92,4,85,3,62,1,42,0,252,0,14,3,178,4,65,5,224,5,6,7,239,6,25,6,163,5,102,5,67,5,201,4, +116,4,210,3,206,3,246,4,153,6,231,5,239,1,175,253,227,250,24,250,180,251,146,253,176,254,238,0,38,4,84,7, +50,8,50,6,43,2,202,255,216,0,45,3,201,5,122,6,46,5,186,3,113,3,121,4,46,5,158,3,27,1,197,255, +88,0,11,1,140,1,225,1,184,0,72,255,158,253,27,253,52,253,86,252,248,250,6,250,146,250,231,251,252,251,117,250, +99,248,63,246,43,244,251,242,170,243,79,244,70,246,182,249,20,253,96,0,140,2,212,3,94,4,170,3,204,0,138,253, +169,251,176,250,48,251,157,253,227,254,168,254,109,254,93,254,231,253,195,251,254,248,203,245,32,243,166,241,53,242,22,245, +155,248,252,250,214,251,49,253,46,0,249,1,179,0,24,255,94,254,93,254,228,253,181,252,121,251,27,251,214,251,177,252, +82,253,222,253,90,255,60,1,111,2,32,3,62,4,181,3,100,1,77,0,123,0,250,0,0,2,3,3,159,3,74,4, +66,4,10,3,167,255,59,250,106,244,136,240,56,239,97,239,228,240,80,243,25,246,181,248,173,250,149,251,54,251,225,249, +58,249,195,249,197,250,216,251,163,252,165,253,141,255,39,2,214,4,42,7,0,8,56,7,55,6,3,6,182,5,30,4, +96,1,56,254,242,251,95,251,81,252,48,254,156,0,119,3,213,5,220,6,209,6,226,5,213,4,9,4,131,2,59,0, +226,253,128,252,241,252,174,254,0,1,49,3,140,4,130,5,203,6,129,8,177,9,124,9,164,8,4,8,46,8,75,9, +35,10,148,10,228,11,172,13,173,14,6,15,125,15,35,16,105,16,159,15,191,13,179,11,151,9,213,6,75,4,175,2, +68,1,56,0,227,255,172,255,85,0,216,1,148,2,192,2,75,2,157,0,135,255,109,0,125,2,91,4,93,5,10,6, +18,7,119,8,139,9,15,9,27,7,160,5,98,5,135,5,106,5,42,5,56,5,58,5,58,5,51,5,72,4,145,2, +67,0,123,254,83,254,152,254,14,255,165,255,238,255,151,0,26,1,95,1,252,1,136,2,56,3,191,3,148,3,127,3, +37,3,187,1,81,0,191,255,127,255,112,254,2,253,147,252,53,252,216,251,185,251,153,250,108,249,72,248,33,247,122,247, +145,248,159,249,72,250,100,250,7,250,9,249,213,248,220,248,249,247,69,247,122,246,155,245,72,245,22,245,65,245,52,246, +249,247,237,250,197,254,175,1,150,2,115,2,187,2,134,3,136,3,28,2,105,255,241,252,47,252,23,252,215,251,106,251, +116,250,205,248,160,246,231,244,209,243,248,242,179,242,114,243,40,245,216,246,226,247,103,248,219,248,134,249,34,250,121,250, +99,250,236,250,181,252,23,255,185,1,254,2,102,2,31,1,84,255,73,253,71,251,41,250,106,250,149,251,93,253,229,254, +85,0,118,1,116,1,28,1,173,0,208,255,111,254,65,253,253,252,184,252,237,251,128,250,75,248,174,245,32,243,195,241, +14,242,97,243,38,245,142,246,62,247,161,247,175,247,209,246,254,244,167,243,143,244,63,247,143,250,85,254,237,1,153,4, +196,5,221,5,108,5,250,3,205,2,180,2,141,3,83,5,115,6,201,6,112,6,46,5,214,3,193,1,102,255,70,254, +213,254,235,0,207,2,168,3,134,3,95,2,145,0,248,253,188,251,75,251,37,252,149,253,100,255,134,1,43,4,7,7, +148,8,125,8,194,7,39,6,59,5,225,6,117,9,239,11,31,14,21,15,90,15,145,15,67,15,220,13,68,12,128,12, +252,13,78,15,155,16,41,17,82,16,53,14,67,11,159,8,114,6,186,4,94,4,249,4,67,5,39,5,225,4,172,3, +136,1,226,255,114,255,197,255,86,0,221,0,117,1,125,2,176,3,36,4,206,3,175,3,1,4,207,3,141,3,161,4, +64,6,253,6,78,6,221,3,185,0,101,254,224,253,179,255,238,2,79,6,33,9,102,11,27,13,16,13,40,11,154,8, +8,6,221,3,189,2,161,3,232,5,157,7,162,8,8,9,23,8,162,5,213,1,4,254,219,251,156,251,155,252,241,253, +241,254,225,255,72,1,88,2,132,2,10,2,154,0,128,255,164,255,167,255,62,255,32,254,79,252,16,251,146,250,178,250, +32,251,136,252,220,255,43,3,119,5,175,6,150,5,40,3,98,0,173,253,209,252,223,253,28,0,83,3,23,6,202,6, +82,5,186,2,37,255,255,249,56,244,139,239,80,237,133,237,80,238,226,238,52,240,37,242,229,243,134,245,166,246,254,246, +196,247,179,249,73,251,253,250,228,249,149,249,182,249,118,249,210,248,220,248,44,250,4,252,67,254,27,0,210,255,159,253, +138,250,177,247,237,245,226,244,26,245,71,247,218,250,24,255,131,2,129,4,255,5,126,6,24,5,30,2,17,254,214,249, +196,246,121,245,178,245,87,247,215,249,123,251,229,251,243,251,159,251,237,250,23,250,135,249,175,249,179,249,113,249,245,249, +206,250,169,251,18,253,198,254,138,0,227,1,255,1,16,1,44,255,56,252,27,249,232,246,222,245,8,245,243,243,57,244, +129,246,218,248,2,250,34,250,80,249,135,248,244,247,129,246,152,244,83,243,119,243,242,244,20,247,165,249,231,251,38,253, +60,254,206,255,90,2,56,6,96,9,118,10,103,9,165,6,193,3,100,0,255,252,216,251,55,253,118,0,107,4,243,6, +140,7,140,5,228,0,217,252,246,249,179,247,224,247,98,251,99,1,186,7,44,13,143,16,140,17,21,17,99,15,124,13, +115,12,59,11,107,9,230,8,126,9,125,10,29,11,245,9,63,8,207,6,63,6,91,7,29,9,161,10,202,11,16,11, +73,8,251,5,14,4,143,2,108,3,39,7,112,11,7,14,166,15,225,15,160,12,100,5,198,253,9,249,188,246,47,246, +142,247,59,251,135,255,223,2,61,4,202,3,168,2,60,0,62,254,171,254,180,1,71,6,43,10,8,13,4,14,118,11, +21,7,34,3,115,0,58,0,118,1,201,3,170,6,213,7,112,6,129,1,255,251,89,248,236,245,72,246,119,249,22,254, +72,2,31,5,82,6,111,5,132,3,113,1,198,255,149,255,16,1,117,2,34,3,57,3,176,2,200,1,14,0,243,253, +72,253,93,255,191,2,225,5,24,8,151,8,85,7,136,5,148,3,183,255,252,252,56,254,54,1,251,4,222,7,18,9, +234,8,90,7,115,4,66,0,31,252,196,248,180,247,158,249,129,252,166,254,203,255,114,0,51,0,160,254,44,253,12,253, +236,252,144,252,212,252,125,254,249,255,216,254,113,252,109,250,31,250,205,250,106,251,251,252,253,254,141,0,65,1,28,1, +176,255,174,252,19,250,24,249,60,249,230,249,50,251,214,253,83,0,229,0,171,255,32,253,75,250,115,248,132,247,181,247, +53,249,125,250,25,251,153,251,22,252,238,251,126,251,177,251,197,252,62,254,108,255,145,0,47,1,74,0,121,253,186,249, +97,246,205,244,102,245,57,247,94,249,200,251,28,255,145,2,42,4,167,2,104,255,147,251,40,248,245,245,119,245,135,247, +62,251,190,255,3,4,185,6,161,6,82,4,234,0,28,253,250,249,9,248,132,247,194,247,5,249,169,251,198,253,23,254, +2,254,244,254,250,0,87,2,155,2,125,2,191,1,93,0,51,255,19,255,193,254,204,254,233,255,13,2,252,3,250,4, +57,5,47,4,219,2,85,0,196,253,102,251,70,249,39,249,118,250,96,253,180,0,173,3,26,6,157,7,167,7,226,5, +7,4,34,3,127,2,58,2,73,3,63,5,179,6,9,7,4,7,5,6,125,4,18,4,238,3,43,3,71,2,29,2, +28,2,142,1,121,0,50,255,217,253,96,252,74,252,173,253,168,254,13,255,85,255,76,255,47,254,48,251,227,247,99,246, +1,246,154,245,243,244,32,244,17,243,245,241,52,242,11,245,170,251,171,5,255,16,9,27,111,31,178,27,135,17,27,5, +81,250,114,243,253,241,126,246,81,0,62,13,203,23,158,26,151,20,148,8,232,250,118,238,204,229,7,227,204,231,48,243, +228,0,224,12,37,19,79,18,33,13,181,6,28,0,164,250,104,249,122,253,177,5,85,14,236,17,35,15,176,6,146,250, +29,240,255,235,59,240,154,250,95,7,10,20,98,28,229,27,203,17,187,2,68,245,240,237,68,239,66,249,173,8,64,23, +107,32,243,33,37,25,167,7,79,243,98,226,254,217,210,219,160,230,97,246,56,5,222,13,71,14,103,8,31,255,244,244, +100,237,69,237,191,245,44,2,175,13,169,20,127,20,249,12,156,1,186,247,85,242,115,243,180,251,129,8,123,20,72,25, +234,20,241,9,84,251,73,236,170,225,147,223,243,230,204,246,244,10,41,28,9,36,52,32,136,19,21,3,3,243,169,230, +171,225,100,230,185,242,93,1,246,12,13,18,116,15,150,7,62,255,13,248,7,243,183,242,217,247,184,0,182,8,196,11, +145,8,235,0,35,250,239,247,28,251,121,1,168,7,136,13,154,18,230,19,32,15,89,5,167,250,183,242,161,239,247,241, +71,248,112,255,113,5,223,9,82,11,110,8,83,1,131,248,1,242,250,239,37,242,68,247,132,253,136,2,121,5,154,6, +213,4,166,255,61,249,71,245,209,246,91,253,190,4,237,9,133,11,112,8,47,2,67,251,108,245,235,241,34,241,244,243, +83,249,154,253,64,0,68,2,160,2,74,1,205,255,235,254,18,254,191,253,87,255,167,2,32,6,158,6,221,3,34,1, +45,255,7,254,50,254,192,255,254,1,94,3,210,3,139,3,1,2,42,254,228,248,24,245,236,243,174,245,50,249,58,253, +178,0,145,1,211,0,114,255,122,253,42,252,142,251,136,251,161,252,218,254,25,1,157,2,34,3,215,1,160,254,11,251, +63,249,97,249,32,251,191,254,70,3,96,7,204,9,199,9,78,7,215,3,253,0,133,254,84,252,179,250,214,250,86,253, +111,0,140,2,84,2,56,0,32,254,40,252,1,251,99,251,185,251,127,251,204,251,166,252,226,252,105,251,70,249,67,248, +227,248,177,251,194,255,208,2,74,4,244,4,162,5,205,5,208,3,36,0,63,253,119,252,106,253,8,255,66,0,178,0, +217,1,110,4,243,5,101,5,167,3,40,1,135,255,85,255,77,255,165,254,137,253,187,252,61,252,98,252,113,253,223,253, +199,253,128,255,162,2,121,4,169,3,44,1,20,255,52,253,222,250,72,249,10,249,8,251,121,255,215,3,114,6,190,7, +121,8,22,9,229,9,183,10,16,11,41,11,102,11,201,11,75,12,250,11,196,10,86,10,109,10,76,10,164,9,178,7, +76,5,67,3,5,2,110,1,135,0,55,255,45,254,11,255,246,0,159,2,136,4,88,5,239,5,251,6,228,6,103,6, +107,5,219,3,164,2,164,2,56,4,141,4,242,2,170,1,8,1,200,1,250,2,227,0,199,251,114,247,163,245,81,246, +170,248,25,251,123,253,141,0,126,4,246,8,1,12,216,11,47,9,140,5,202,1,151,254,61,252,72,250,17,249,221,249, +173,252,7,0,218,1,191,0,181,253,131,250,156,247,149,245,206,244,132,244,69,244,75,244,176,245,84,248,143,250,97,252, +12,254,24,0,50,3,229,5,45,7,212,6,249,3,134,255,184,251,141,248,201,245,51,245,203,246,76,249,21,252,230,253, +152,254,67,255,244,255,136,255,161,253,162,251,148,250,244,250,65,253,188,255,252,0,5,1,37,255,0,253,75,251,121,249, +95,249,75,250,178,251,234,253,95,255,128,255,66,253,30,249,18,245,84,242,65,241,200,240,60,242,29,246,130,250,99,254, +83,0,240,0,217,0,134,255,246,253,118,252,56,251,121,250,134,250,236,251,210,253,183,254,96,253,72,251,130,250,55,250, +112,250,79,251,184,251,102,252,120,253,42,253,183,250,239,246,67,244,175,244,46,247,167,250,162,254,198,1,30,4,167,5, +80,5,15,3,60,255,79,251,188,249,170,251,220,254,226,0,253,2,35,5,155,5,238,3,142,0,176,253,19,252,185,251, +226,254,28,5,54,10,153,12,76,13,216,11,182,8,36,5,176,1,222,0,193,3,178,8,136,14,159,18,53,18,90,14, +95,9,195,4,155,1,198,255,77,255,185,0,231,3,238,7,66,10,224,8,142,5,55,2,7,255,35,254,98,255,217,255, +56,1,34,5,151,9,246,12,254,14,142,15,116,14,94,13,44,13,162,13,245,14,111,15,199,14,248,13,189,12,208,10, +157,7,8,4,157,1,81,1,190,2,242,2,142,1,94,0,122,255,123,254,217,251,135,248,94,248,0,251,208,253,219,0, +103,4,213,5,252,2,154,253,82,248,137,245,226,245,4,248,161,252,184,4,17,14,47,20,114,21,132,19,211,13,93,4, +131,250,103,243,92,242,68,249,39,4,48,14,35,21,47,23,248,20,48,15,175,5,223,250,167,241,31,236,86,235,121,239, +56,247,110,254,10,2,38,3,65,2,83,254,155,249,204,245,103,244,113,247,55,252,166,0,53,4,232,5,51,5,81,1, +138,251,81,246,252,244,157,248,146,255,235,7,237,13,103,16,246,13,143,5,54,251,8,242,157,236,89,236,164,239,49,246, +57,255,103,6,248,7,112,4,32,253,255,242,132,233,55,229,172,230,252,234,250,240,58,248,183,254,1,2,146,1,60,254, +3,249,88,244,49,242,193,243,154,248,193,253,94,1,244,2,241,1,68,254,83,250,196,248,205,249,239,252,203,0,66,4, +171,6,199,5,73,0,230,248,170,241,26,235,182,232,156,235,37,243,248,253,3,7,220,12,65,15,166,11,124,2,35,247, +112,237,213,231,118,232,170,238,236,246,173,254,44,4,58,7,30,7,25,4,210,255,253,250,143,248,9,250,171,253,66,2, +101,6,26,8,125,6,202,3,198,1,115,0,32,1,185,3,50,7,94,11,44,14,13,13,106,8,155,2,204,253,253,250, +230,249,61,250,136,252,8,1,206,5,18,9,49,11,132,10,42,6,86,1,243,253,251,252,69,255,190,3,134,8,246,11, +166,13,157,12,21,9,45,5,40,1,175,254,144,255,41,3,15,8,224,10,63,10,126,7,172,3,221,255,140,252,7,251, +194,251,90,253,78,255,184,1,182,3,146,3,6,2,80,0,192,254,75,255,200,1,134,5,124,9,6,11,127,12,229,13, +229,10,138,4,152,253,138,249,71,250,231,252,202,255,210,2,160,5,237,5,236,1,56,252,81,246,96,240,115,235,20,233, +198,234,116,239,23,247,130,1,123,11,190,18,65,21,8,18,229,9,153,255,70,248,146,244,184,243,108,247,36,254,121,6, +129,14,68,18,124,17,158,12,4,5,255,252,163,244,149,238,215,237,96,241,183,247,156,255,183,5,138,7,239,6,76,6, +80,5,42,2,34,254,107,253,209,255,238,2,112,4,65,2,185,254,3,251,197,246,122,244,9,244,16,245,63,250,133,2, +33,9,211,10,178,7,31,2,105,251,94,246,145,245,31,247,37,252,32,5,221,13,83,20,17,21,204,14,234,5,115,252, +71,244,87,239,254,236,137,238,189,244,214,251,123,0,69,1,113,252,32,244,189,237,85,237,208,243,213,251,73,1,224,5, +110,8,163,7,3,5,193,255,249,248,48,246,145,251,85,7,173,18,55,25,190,26,211,23,20,17,6,6,179,247,206,233, +142,225,235,227,237,239,0,0,187,13,162,21,93,24,195,21,33,14,215,2,228,246,142,239,128,239,45,246,194,255,10,8, +199,12,238,12,169,10,67,7,63,3,56,1,239,1,50,5,68,9,171,10,173,8,107,3,168,252,92,248,23,247,235,247, +25,250,52,254,38,6,142,14,220,18,197,17,237,11,22,4,174,252,251,248,158,249,71,251,237,252,176,255,203,3,51,7, +238,7,143,4,196,254,212,251,46,252,134,254,243,1,156,3,186,3,191,3,188,2,91,255,17,250,126,245,78,244,199,246, +44,252,8,4,181,11,230,14,3,12,175,6,202,1,20,253,103,249,131,247,84,248,252,250,91,254,26,2,121,2,57,255, +177,251,204,248,245,245,17,244,92,245,251,247,86,249,128,249,185,249,220,249,103,248,2,248,141,248,48,248,103,250,0,255, +175,2,96,5,48,7,250,6,28,5,206,2,141,0,211,254,188,253,39,254,90,255,150,255,210,254,162,252,201,250,59,250, +243,248,45,247,215,244,9,244,171,248,209,254,151,1,83,1,214,254,249,252,188,252,125,251,10,249,73,247,206,247,204,249, +209,252,238,0,103,3,232,2,112,0,66,254,157,253,94,253,7,253,132,252,157,252,219,252,101,252,67,252,11,252,166,251, +47,252,25,255,97,3,132,5,100,6,201,6,183,4,112,0,151,251,203,247,115,244,148,241,238,241,16,245,220,248,62,252, +91,254,72,0,143,2,126,3,237,1,231,254,178,252,3,252,53,252,105,253,198,255,151,2,147,4,20,5,143,5,232,6, +254,7,173,8,114,8,34,7,128,6,27,6,254,4,178,3,186,1,204,255,94,0,131,2,113,3,222,3,212,4,160,6, +105,9,219,10,206,9,16,7,7,4,178,2,242,3,105,6,149,6,165,5,86,7,98,9,240,9,123,9,122,7,68,5, +79,4,51,5,203,6,137,6,135,5,68,5,190,5,21,7,70,7,47,6,29,5,95,4,104,5,143,7,63,8,171,6, +25,5,221,5,133,8,35,11,81,11,135,10,1,11,246,10,21,10,42,9,247,6,217,2,90,255,140,254,50,255,36,0, +3,1,159,2,89,5,61,7,83,7,135,5,158,1,142,253,235,251,115,251,106,250,206,249,59,250,230,251,61,254,52,255, +184,253,137,250,123,246,197,241,236,237,189,236,100,238,11,243,88,251,225,5,196,14,101,18,176,15,53,8,84,254,228,244, +36,239,114,239,31,245,5,254,105,9,188,19,137,25,211,25,85,19,200,7,181,248,107,233,11,224,171,223,23,232,216,243, +171,253,37,3,190,3,243,1,61,254,25,249,137,243,33,240,118,242,21,250,66,4,226,10,154,10,161,5,157,254,163,248, +13,245,86,245,219,249,118,1,194,11,205,21,44,25,75,16,190,255,88,240,172,229,96,225,36,226,242,230,121,240,222,252, +233,8,163,16,111,15,133,6,50,254,63,249,134,245,6,242,27,239,27,242,49,252,170,7,176,14,248,12,175,4,220,252, +120,251,104,0,112,5,39,5,66,0,84,250,114,243,150,235,180,227,101,222,75,224,27,234,194,250,140,13,73,26,121,30, +133,28,53,22,240,10,64,250,122,231,155,218,194,217,134,229,212,250,216,15,59,28,57,32,8,30,119,23,251,11,148,251, +230,235,252,226,132,227,147,236,156,247,26,254,252,0,65,4,160,9,12,15,12,16,91,13,242,12,166,15,60,16,97,11, +174,0,206,243,125,235,193,234,121,240,156,247,159,252,1,2,95,8,128,11,196,8,156,2,9,252,59,247,157,245,118,246, +186,248,130,249,104,249,55,252,3,0,16,4,136,9,69,13,78,14,190,14,166,14,50,14,99,13,105,10,75,4,255,251, +216,245,37,244,32,244,58,245,133,247,19,250,221,253,162,2,16,5,89,3,95,0,175,254,82,254,32,254,74,252,12,248, +207,242,122,240,111,242,216,246,137,252,56,3,124,10,228,14,113,14,150,10,50,4,194,253,67,249,108,246,7,245,255,245, +48,251,191,2,31,9,251,13,236,16,123,16,66,12,142,6,169,3,67,5,116,8,103,9,62,8,238,6,197,5,137,4, +198,1,175,252,244,246,239,243,101,246,53,251,181,254,180,1,98,3,18,3,193,1,70,254,255,248,43,245,106,244,161,247, +5,255,11,7,104,11,212,11,152,10,134,7,33,2,15,253,110,250,37,251,80,255,125,5,69,11,131,14,121,13,249,6, +177,253,245,245,217,241,238,241,85,246,39,254,42,6,168,11,57,12,84,6,177,252,210,244,60,244,139,249,175,255,248,5, +132,11,145,14,202,13,251,7,217,253,40,242,148,233,48,232,175,238,202,249,12,6,224,16,196,22,154,22,252,15,80,3, +75,245,48,234,250,228,99,231,124,240,67,255,161,14,35,24,168,25,62,18,208,6,68,254,224,249,175,250,184,0,122,9, +229,16,22,19,62,15,103,6,235,251,58,244,121,242,217,245,27,252,78,5,211,14,100,21,59,22,45,14,129,255,133,240, +2,232,6,233,71,240,171,249,67,3,53,12,94,18,71,18,41,11,103,0,52,247,89,243,188,245,176,252,139,4,204,10, +226,14,158,15,20,11,228,0,75,246,116,241,146,242,218,247,82,0,5,11,201,19,152,22,8,20,95,12,203,1,201,248, +159,244,46,246,69,251,104,2,210,8,229,11,215,11,39,9,254,4,99,255,173,249,34,247,234,248,185,253,211,2,136,5, +112,4,171,1,159,254,13,251,114,249,161,250,220,253,79,3,63,9,217,12,243,12,98,9,222,3,22,255,77,251,110,249, +110,249,101,250,93,253,53,1,123,3,24,2,208,253,202,249,221,247,243,247,99,248,3,249,125,248,190,247,173,248,145,247, +67,243,75,236,245,228,106,225,131,226,239,233,236,247,70,9,54,24,88,31,77,29,16,18,33,0,177,237,121,225,50,222, +192,228,59,243,64,3,38,17,4,26,138,28,8,25,176,13,94,251,165,231,222,218,249,215,129,221,130,233,136,246,56,0, +170,4,101,5,111,4,67,2,104,1,145,2,48,5,24,7,56,6,35,4,129,1,73,254,25,251,215,248,139,247,199,247, +209,251,45,3,131,10,180,14,229,14,165,9,199,253,35,239,58,228,106,227,19,236,226,247,226,3,78,15,248,25,5,33, +65,31,251,18,133,255,190,237,3,229,130,229,164,235,52,244,133,255,79,12,28,21,137,20,210,8,76,248,172,234,106,229, +21,236,120,247,37,255,164,2,154,3,30,4,31,2,118,252,145,248,129,250,245,2,167,15,226,26,139,32,23,33,215,28, +41,19,216,4,108,243,229,229,5,227,2,233,195,245,199,6,129,21,73,28,209,24,217,13,51,1,72,247,176,241,200,239, +127,241,107,247,223,0,8,11,41,16,78,12,189,3,228,255,234,3,35,10,105,14,134,16,112,16,112,14,84,9,49,255, +71,241,150,229,84,227,225,235,143,249,191,6,101,18,74,27,114,31,209,28,7,17,170,1,207,247,13,246,24,252,28,6, +248,14,64,22,61,27,125,26,143,18,178,6,91,252,216,245,167,241,5,239,95,239,98,242,80,246,60,249,57,247,77,240, +153,234,116,234,181,238,158,243,186,248,254,255,80,9,144,17,157,19,216,13,228,3,58,252,19,252,227,1,122,8,130,12, +86,14,225,16,16,19,233,15,248,6,210,251,211,241,180,236,252,236,229,239,188,243,255,247,255,252,201,1,248,3,193,2, +56,255,215,250,12,247,76,245,26,246,128,248,52,250,36,251,247,252,38,255,9,1,185,1,40,0,199,252,119,250,204,251, +4,255,16,1,199,254,184,249,222,246,196,245,113,244,111,242,172,242,4,249,143,5,252,19,108,28,68,28,138,20,186,8, +0,254,9,244,46,236,143,233,8,237,75,244,157,251,160,3,92,10,205,11,211,6,6,254,36,246,107,240,123,238,92,239, +58,240,105,241,214,241,166,242,35,245,42,248,107,252,125,2,21,10,200,17,88,24,255,26,80,22,173,12,136,2,75,249, +72,240,116,233,114,233,53,240,126,250,121,5,62,15,164,21,224,19,39,11,208,2,151,252,106,246,42,240,180,236,11,238, +155,242,225,248,228,253,104,255,127,0,13,4,112,8,58,10,37,9,145,7,227,6,231,6,97,5,150,255,130,246,156,239, +125,238,52,242,86,248,35,254,41,4,55,12,38,19,29,21,48,17,145,9,195,2,244,253,39,250,3,248,149,247,174,249, +143,0,175,10,142,17,186,17,112,14,64,10,15,6,84,2,101,254,41,252,228,251,182,252,203,255,208,1,216,0,87,0, +162,1,32,3,235,1,240,254,192,253,100,254,78,0,129,2,190,4,106,7,69,8,68,7,112,6,87,6,192,5,104,3, +121,0,234,253,236,252,47,254,97,255,181,254,100,253,243,253,37,0,56,2,48,3,15,3,201,3,209,5,55,7,252,5, +188,2,214,255,60,254,83,255,8,3,225,6,101,9,170,11,210,15,209,19,220,18,33,12,226,3,68,254,39,252,189,251, +181,249,138,246,147,246,81,251,200,0,63,3,105,3,142,2,13,2,112,2,187,2,38,2,129,0,109,255,192,255,200,0, +23,1,99,0,98,0,171,1,84,5,38,10,188,12,224,11,95,7,173,1,166,252,68,247,231,241,253,238,23,239,46,239, +200,238,37,240,67,242,187,242,216,242,111,245,64,251,103,3,106,10,242,12,63,10,130,4,82,0,175,254,220,252,160,248, +99,245,182,249,51,4,75,14,220,18,56,17,228,14,23,13,131,6,28,250,214,235,23,226,110,225,56,232,252,242,69,251, +144,253,135,254,48,255,209,255,60,0,57,253,87,251,41,255,95,5,53,8,124,4,95,253,16,248,76,247,0,249,220,249, +153,249,122,249,206,253,90,6,207,12,163,15,104,15,206,11,185,4,136,250,178,241,115,239,243,243,19,251,159,3,147,14, +183,23,7,27,18,23,40,12,157,255,128,247,33,246,99,247,248,245,77,243,106,244,201,249,14,253,120,251,92,248,73,247, +33,249,16,251,233,252,255,254,217,0,247,2,173,3,239,2,146,255,249,249,139,248,43,254,25,8,134,18,61,27,169,31, +67,30,162,23,83,10,250,248,52,234,93,226,198,227,215,235,235,246,94,4,39,17,232,24,142,23,112,11,35,253,127,245, +120,243,169,243,133,242,167,241,181,247,133,2,160,9,242,9,87,6,251,3,184,6,39,11,204,11,76,9,97,5,8,2, +115,255,32,250,83,243,131,238,178,236,30,239,25,245,16,253,48,6,84,12,219,10,165,3,28,251,135,243,171,240,80,245, +244,255,15,13,190,22,249,24,207,19,23,10,235,1,158,253,207,251,48,253,164,2,119,10,49,16,249,16,218,13,223,9, +68,5,137,254,243,245,196,235,89,228,60,226,153,228,134,237,151,249,29,3,191,6,135,2,123,249,37,242,1,241,195,243, +113,248,92,254,33,4,100,7,95,3,201,250,73,243,160,240,152,244,189,251,185,2,234,6,185,11,168,19,113,25,101,25, +71,17,27,5,178,251,82,246,42,243,157,241,137,244,158,252,207,8,78,21,128,28,161,25,134,10,126,247,75,233,255,226, +106,228,167,234,75,245,104,1,102,10,122,11,224,1,35,243,85,232,70,233,126,244,86,2,228,15,165,27,104,34,109,31, +111,17,170,254,12,239,144,232,224,236,47,248,24,7,120,22,232,33,156,39,143,37,31,26,10,7,168,241,173,224,30,216, +182,219,54,233,144,249,75,8,213,15,188,14,212,6,148,250,119,239,1,234,76,237,36,247,90,0,30,3,158,254,217,246, +34,239,170,232,228,228,47,232,88,243,51,2,92,18,4,30,183,30,43,21,140,7,242,251,205,243,184,237,158,232,172,231, +246,237,251,249,69,8,225,17,138,19,147,16,147,11,91,5,74,253,57,245,227,241,249,244,84,250,91,251,190,248,63,247, +32,247,183,248,172,250,50,250,5,251,255,0,252,8,105,12,96,8,69,0,33,248,166,242,202,240,241,241,233,245,7,251, +214,0,4,9,86,18,18,24,171,23,192,19,16,14,89,6,135,254,162,249,179,249,44,253,16,1,178,4,130,7,188,8, +33,8,145,6,125,4,75,0,138,251,178,248,254,247,12,250,44,253,83,0,12,4,14,6,142,5,162,5,172,7,157,8, +14,7,6,5,86,3,47,2,187,2,21,5,243,6,111,7,220,6,104,5,91,4,252,3,16,5,198,7,211,9,137,8, +236,3,225,255,255,253,105,253,13,254,58,2,193,10,195,18,113,24,221,26,51,23,53,14,63,4,103,255,96,255,15,0, +207,0,239,3,167,9,229,13,94,16,0,16,101,11,198,5,70,0,109,252,10,251,87,251,64,252,61,253,68,0,230,3, +77,6,234,5,133,1,230,252,249,249,151,248,55,248,55,247,77,246,201,246,213,249,41,255,17,3,213,3,222,2,176,0, +198,253,232,251,73,253,219,255,145,255,231,254,174,0,55,3,151,3,20,1,235,255,183,1,172,4,227,6,19,4,194,251, +116,243,29,240,41,242,181,246,111,250,43,251,105,250,153,251,93,254,216,254,202,251,39,249,161,250,54,254,0,1,81,1, +79,253,228,248,190,248,18,251,114,252,159,251,203,250,188,251,125,253,93,255,60,1,192,2,182,4,11,6,52,2,75,251, +252,244,82,239,93,238,53,241,210,245,88,255,223,10,45,18,182,17,163,9,154,253,203,242,3,237,45,236,34,238,245,239, +103,242,205,247,181,253,63,0,209,254,252,253,3,0,146,0,196,252,87,247,151,245,99,248,251,251,56,252,14,247,73,241, +121,240,29,243,56,247,62,253,218,5,98,17,139,26,103,24,199,9,18,247,67,233,84,227,38,228,127,234,222,244,172,1, +51,16,53,27,27,26,7,14,72,1,219,250,160,250,76,252,156,251,71,249,98,249,239,252,42,2,221,3,184,255,202,253, +94,2,92,8,206,9,210,5,210,2,53,5,19,9,5,8,95,1,129,248,116,240,171,236,82,238,101,245,60,255,144,7, +239,11,210,10,210,8,68,7,0,2,110,253,146,254,107,3,186,8,20,13,152,14,253,11,23,8,84,5,37,5,159,7, +243,11,170,17,213,19,23,17,187,14,48,13,219,8,201,1,48,251,12,246,253,241,59,240,212,240,222,242,212,247,241,0, +174,9,83,11,19,5,251,250,132,241,59,236,116,235,228,237,74,244,202,254,78,10,70,18,169,19,154,13,48,3,24,252, +223,250,130,251,37,253,73,2,232,11,94,21,105,23,178,16,171,5,255,252,36,252,42,1,80,3,162,254,198,251,7,4, +209,17,33,23,196,13,193,252,78,239,152,230,225,223,144,223,112,233,19,253,6,19,223,30,144,27,23,10,229,242,0,228, +112,225,114,230,90,239,194,251,81,10,93,21,164,23,100,17,152,6,245,251,119,248,24,253,54,1,223,1,29,3,50,7, +86,12,157,12,193,5,140,254,189,252,15,253,74,253,70,255,162,1,49,4,174,8,216,10,242,4,146,251,125,246,66,245, +238,244,129,243,254,243,165,252,217,7,22,11,119,6,102,254,229,245,92,241,222,242,208,247,253,252,45,1,221,4,189,5, +193,0,55,250,101,249,131,255,136,7,156,12,247,12,191,7,176,255,168,249,141,246,167,244,48,243,113,245,235,253,128,6, +81,9,80,7,3,4,241,1,229,255,61,253,119,249,134,243,46,240,5,243,128,248,69,252,145,254,9,2,118,5,37,6, +185,4,61,2,185,254,67,254,35,3,85,6,6,4,33,0,37,254,23,254,47,253,131,251,88,252,153,1,101,9,3,16, +106,19,250,16,59,9,159,2,208,0,207,0,233,254,0,252,67,251,186,253,185,0,188,1,126,0,179,253,201,254,251,4, +226,7,134,5,230,1,108,0,143,3,156,5,54,2,12,252,101,245,7,243,100,247,136,255,247,8,193,18,61,28,57,33, +227,29,209,17,125,1,197,246,48,244,113,245,179,248,56,254,204,6,236,15,242,20,209,18,163,9,255,253,248,246,199,246, +75,248,248,249,43,253,120,0,138,4,107,7,105,3,255,249,61,244,130,245,14,249,49,253,254,1,7,5,107,4,123,0, +228,250,232,243,28,237,52,232,61,229,127,232,79,245,54,8,199,24,226,29,210,22,151,8,5,248,70,236,138,233,83,238, +199,248,24,7,124,21,205,29,240,27,149,17,246,4,5,254,4,253,10,250,101,243,102,239,108,243,173,252,38,2,70,0, +0,249,46,241,70,238,116,239,14,244,153,251,107,2,87,9,128,15,250,14,101,4,212,242,50,229,3,226,224,230,184,241, +77,254,54,8,244,16,6,25,32,27,55,19,145,3,170,241,14,231,128,232,111,238,5,246,125,254,58,1,249,0,129,3, +202,6,33,7,224,2,20,254,124,253,224,253,108,250,124,243,54,237,5,237,253,240,226,241,74,240,50,241,79,246,215,252, +147,1,217,4,59,6,169,3,86,252,154,244,106,239,119,234,176,232,246,236,193,245,60,0,67,9,57,17,156,21,23,19, +108,14,111,13,182,12,228,6,237,254,190,247,96,243,97,243,1,245,251,247,139,252,59,2,44,9,130,14,138,14,207,7, +101,253,150,244,19,240,37,240,124,244,223,248,40,249,219,249,139,252,243,253,220,0,128,6,190,12,148,17,181,18,18,19, +63,21,113,20,0,14,242,5,58,255,249,248,100,245,92,248,111,254,225,3,112,10,245,17,234,23,12,25,249,18,21,7, +154,249,240,239,82,236,146,236,50,241,151,251,107,7,128,16,165,20,36,19,77,13,185,4,41,0,72,1,52,3,202,7, +47,14,55,17,146,15,183,10,69,4,220,253,24,250,73,249,56,253,111,5,29,13,127,19,211,21,33,18,20,11,76,1, +91,246,9,239,231,238,173,243,239,250,127,5,237,15,119,19,100,15,169,7,86,252,28,241,139,236,85,237,205,241,235,248, +236,0,10,10,210,16,173,16,181,8,103,252,32,243,241,240,194,244,44,252,83,4,248,12,110,21,130,25,184,23,218,15, +211,2,171,246,119,241,250,245,86,1,34,12,103,18,65,19,91,13,235,1,19,244,113,231,67,224,164,223,120,229,154,242, +202,2,209,13,68,17,229,14,129,5,60,247,146,234,148,227,4,227,111,232,40,246,20,8,47,19,245,21,48,20,152,14, +251,5,84,253,216,247,79,246,99,248,117,252,159,0,254,2,160,1,78,254,178,252,221,252,55,252,26,251,186,250,197,250, +129,252,209,255,39,2,40,1,7,252,134,244,39,238,185,235,130,235,137,236,6,242,29,251,234,3,192,9,133,10,165,6, +199,255,31,248,166,242,201,239,97,239,210,242,117,248,51,252,238,254,84,4,163,10,135,14,11,16,226,15,215,13,55,9, +181,2,194,251,117,246,210,244,158,245,67,248,39,253,111,2,90,6,253,7,211,7,77,6,153,3,224,0,212,252,7,247, +61,242,25,239,224,237,146,239,18,243,142,247,42,253,84,2,26,5,34,6,254,6,168,7,11,8,172,8,7,9,57,7, +17,3,61,255,11,253,130,251,80,251,47,255,246,6,105,15,213,21,55,24,187,22,173,17,7,9,159,0,219,251,67,250, +216,249,122,249,156,250,202,253,66,0,182,0,249,0,127,1,61,2,146,3,144,4,99,5,116,5,135,4,255,3,80,1, +152,251,126,247,195,247,116,252,177,3,227,10,94,17,81,21,99,21,250,17,253,10,234,2,234,253,6,254,147,1,3,6, +75,10,151,11,175,8,49,3,37,252,91,245,58,242,170,244,32,249,198,252,245,254,16,253,111,248,77,244,231,240,11,238, +220,237,151,242,117,250,62,3,148,10,164,12,105,7,93,254,80,248,134,247,172,251,225,2,161,9,248,14,157,17,128,17, +22,16,114,12,80,6,145,255,88,250,122,248,180,250,155,254,227,0,26,1,117,0,101,254,22,249,81,242,240,237,17,238, +42,243,178,252,148,7,61,13,83,11,109,4,198,249,209,237,233,228,112,226,28,231,20,242,103,0,240,11,146,18,9,20, +47,14,228,4,252,252,104,246,133,242,124,243,208,248,206,255,186,5,0,9,9,9,177,7,137,6,12,6,178,6,111,5, +39,0,205,249,214,245,68,246,255,250,182,0,165,2,187,254,4,248,28,242,225,236,34,233,162,234,183,242,25,253,72,3, +140,3,86,254,50,244,226,234,181,231,30,234,173,238,206,244,17,255,244,10,235,18,221,20,57,18,254,13,19,10,76,5, +90,253,86,245,31,242,164,245,148,255,56,10,239,16,46,19,93,16,162,10,83,5,29,1,179,252,231,248,3,248,120,249, +67,251,118,251,96,248,19,242,209,237,9,241,232,248,94,1,43,9,53,14,190,16,200,17,238,14,130,7,181,255,226,251, +114,252,64,254,137,255,27,1,31,3,167,6,75,13,70,22,193,29,214,30,213,24,67,14,53,2,231,248,95,244,149,243, +80,246,180,252,237,3,149,7,130,6,230,3,248,1,220,255,226,254,66,1,115,5,16,8,29,7,225,3,156,255,250,249, +20,245,10,243,83,244,117,250,186,4,29,15,186,22,141,25,149,22,116,16,77,9,110,1,68,251,168,248,70,249,126,252, +207,1,178,7,205,10,0,10,212,5,139,254,247,246,40,242,68,242,104,246,109,251,196,1,37,8,255,10,136,8,204,255, +153,244,75,236,34,233,101,236,205,245,35,2,134,12,231,18,73,21,3,19,98,12,171,2,9,249,171,243,223,244,128,251, +224,3,13,11,173,14,250,14,61,13,230,7,110,255,202,246,158,241,68,242,118,246,33,252,63,2,57,7,27,10,194,8, +157,2,61,249,192,237,164,227,2,224,231,228,211,239,198,251,119,5,212,11,24,13,103,8,116,255,249,244,129,237,255,236, +19,243,130,252,54,5,101,10,202,11,12,10,187,5,124,0,139,252,217,250,12,253,109,4,54,13,159,16,202,10,14,255, +136,244,85,238,18,236,91,237,41,242,212,249,145,1,132,4,7,0,148,247,181,239,35,235,43,236,33,240,157,242,138,243, +92,244,255,245,134,247,43,248,211,248,242,249,22,253,140,3,156,11,124,17,165,18,221,15,166,10,117,4,137,253,202,246, +234,243,169,246,103,255,104,12,232,23,248,27,120,22,128,12,58,3,6,252,195,248,221,247,20,248,138,251,171,0,238,3, +80,3,236,253,139,246,40,243,111,246,216,253,132,5,182,10,50,13,42,13,91,9,46,1,47,247,235,240,217,242,232,252, +255,8,114,16,70,18,49,16,235,12,140,10,43,9,14,9,39,10,225,11,194,12,5,12,81,10,58,7,34,3,159,255, +224,253,155,253,20,254,100,255,143,0,107,1,107,2,232,2,35,1,130,251,112,245,38,242,232,241,179,245,107,251,78,0, +136,3,112,5,60,7,110,7,130,4,83,255,152,250,238,249,1,254,182,4,124,10,185,11,188,6,94,253,252,244,139,241, +254,243,48,252,14,8,234,18,88,24,43,22,169,11,156,251,207,235,142,225,255,224,26,234,33,248,148,6,159,18,240,24, +65,23,227,14,155,3,143,248,154,238,47,232,189,232,150,239,177,249,218,2,217,6,21,4,65,253,223,247,114,245,45,244, +150,244,102,250,58,7,191,21,114,31,237,30,73,17,145,251,121,231,109,220,248,218,232,224,90,238,3,2,20,23,174,37, +144,39,199,27,10,6,205,238,89,223,25,221,13,230,120,242,127,252,159,3,209,8,148,8,126,0,172,244,253,234,3,234, +233,243,200,1,11,10,6,9,108,4,215,2,116,4,120,6,140,6,29,3,111,252,212,245,201,242,181,244,98,250,255,0, +131,8,188,16,171,21,50,19,238,8,235,251,183,241,49,237,233,238,134,244,3,252,185,2,102,5,152,4,138,1,54,252, +69,245,214,238,187,236,99,242,3,255,120,11,20,17,166,16,174,14,247,12,211,8,174,0,250,247,179,243,43,246,101,253, +52,6,63,14,66,19,65,19,170,13,223,5,77,255,202,250,0,250,206,252,2,2,106,9,178,15,245,15,160,8,22,253, +36,243,231,238,8,242,39,251,55,5,119,10,175,10,192,9,9,9,90,9,106,10,79,9,183,6,181,5,95,6,191,6, +37,5,121,1,164,254,254,0,35,9,47,19,7,26,146,26,32,21,93,11,213,1,211,252,199,250,185,250,98,253,6,1, +141,3,163,2,223,253,136,247,253,241,176,239,209,240,55,243,202,246,69,254,53,9,9,17,110,16,49,8,33,253,146,243, +95,237,217,236,50,243,144,254,50,12,197,24,208,32,18,33,48,24,94,8,54,247,27,236,42,235,203,243,52,1,91,12, +11,17,128,13,145,2,47,244,254,230,185,223,194,223,52,230,24,243,144,3,150,16,2,20,38,14,124,4,165,252,95,248, +10,245,166,241,49,240,152,243,161,250,210,254,176,0,236,3,208,7,196,11,28,12,176,8,83,6,244,3,95,0,201,252, +109,250,90,250,37,249,62,244,188,239,37,240,207,243,183,247,4,252,172,255,19,3,188,7,120,11,173,11,156,8,130,5, +236,1,179,250,165,241,48,233,18,229,101,231,167,236,236,245,100,3,110,14,162,18,237,14,80,6,167,252,231,241,122,233, +94,232,168,237,11,246,68,252,234,252,231,251,7,251,163,248,31,247,62,250,189,3,2,17,149,26,192,25,176,14,236,255, +127,244,85,239,61,237,121,236,42,240,22,247,134,254,227,4,124,6,173,2,177,250,228,241,193,237,0,239,151,241,236,240, +184,239,235,242,213,248,7,255,116,2,12,2,129,0,148,0,152,3,90,6,60,8,244,9,186,8,8,7,77,7,98,6, +77,3,135,0,152,1,74,8,144,16,125,20,77,18,236,10,227,1,186,252,6,253,18,0,89,3,158,6,27,10,244,10, +166,6,66,254,226,243,225,236,58,239,169,250,119,9,114,20,245,22,87,17,74,8,62,255,227,246,180,240,144,239,63,247, +56,6,117,21,162,30,123,30,203,23,126,16,216,11,143,8,249,3,89,254,86,251,168,253,218,2,130,8,236,12,82,13, +100,10,87,7,114,5,22,3,85,0,54,255,153,1,128,6,90,8,55,4,124,251,183,242,8,239,65,241,149,247,74,254, +166,2,235,4,3,5,17,2,142,251,195,242,132,236,158,238,160,249,108,7,126,15,247,13,92,6,13,252,214,243,154,241, +4,243,84,247,173,0,191,14,115,27,145,31,119,24,104,8,127,246,200,233,153,227,67,228,245,235,198,247,230,4,14,16, +84,22,36,20,95,7,6,247,228,233,222,228,31,231,95,234,64,240,224,251,96,12,31,24,96,21,107,10,41,255,143,248, +18,250,87,255,130,7,158,17,243,22,64,19,193,12,239,9,236,5,180,254,63,245,97,241,171,253,23,14,186,18,139,12, +61,2,116,251,191,250,212,251,129,249,127,243,121,240,112,243,16,250,110,252,197,248,8,245,56,243,41,245,192,250,126,2, +37,9,101,9,166,2,229,252,195,252,76,250,111,242,135,240,120,247,15,253,244,252,212,254,170,8,167,23,32,30,157,12, +60,240,133,231,27,243,248,1,107,8,137,8,73,7,61,6,44,8,62,1,99,246,43,244,248,250,113,2,29,7,0,7, +67,7,219,13,12,14,78,2,248,240,202,229,194,233,34,251,37,14,81,24,35,15,78,252,14,244,28,251,84,7,141,10, +239,255,120,240,206,242,209,15,1,38,180,31,237,10,65,247,134,239,51,245,44,0,109,3,22,7,5,12,28,11,27,7, +214,6,68,9,240,8,70,1,114,247,6,248,80,255,169,5,236,6,151,2,75,253,104,1,83,4,187,1,126,254,200,248, +29,245,196,249,60,2,211,10,121,14,14,10,110,6,182,4,229,2,98,255,134,246,149,239,186,239,141,245,231,1,229,7, +86,8,42,7,237,2,54,253,213,244,245,233,146,231,174,239,223,243,229,245,222,247,185,249,110,252,166,249,184,245,137,242, +140,233,79,235,164,252,6,5,63,10,190,16,95,9,214,2,169,6,28,253,61,233,142,224,227,229,159,240,161,0,91,15, +167,17,10,12,158,3,98,5,178,255,117,241,196,243,45,244,42,239,161,248,187,1,111,255,2,250,193,252,116,253,174,242, +191,234,118,233,80,239,148,6,181,33,217,30,181,6,119,249,248,247,215,243,52,238,41,238,77,239,65,242,22,252,154,8, +190,13,25,16,188,20,57,5,165,252,63,253,90,250,219,253,231,1,27,8,172,10,112,3,21,248,151,243,14,249,46,8, +126,21,215,7,6,248,60,1,230,15,206,27,52,9,151,243,125,237,220,242,191,255,139,2,115,253,225,237,192,232,123,248, +153,255,235,251,173,252,96,247,119,243,229,3,154,17,198,8,14,255,232,245,148,251,180,10,82,14,46,6,43,252,61,254, +14,16,185,25,7,17,171,4,173,252,128,253,65,6,3,9,112,3,237,1,17,4,44,255,217,248,228,254,31,3,124,253, +162,247,3,246,73,240,139,244,105,254,130,5,210,4,75,252,15,252,58,6,188,11,45,13,185,11,19,13,221,21,5,27, +253,20,194,14,131,17,149,10,3,11,228,14,235,13,50,16,230,17,95,16,61,13,252,8,58,8,139,14,125,23,94,25, +132,16,63,9,229,6,1,3,13,2,203,9,153,8,119,253,39,248,216,251,194,253,99,0,12,5,69,253,108,249,252,252, +0,0,145,254,77,245,106,242,168,241,130,240,38,248,231,3,7,2,27,244,46,236,216,239,125,251,124,10,10,21,56,27, +117,25,82,17,228,9,5,251,196,232,201,222,158,230,225,246,97,4,95,18,0,32,35,33,106,23,162,14,41,4,65,0, +15,254,60,243,209,234,99,240,147,254,215,8,227,4,216,243,146,224,160,211,126,211,86,221,65,236,179,248,191,8,205,26, +247,29,21,22,86,12,10,251,154,230,161,218,116,212,231,214,88,228,49,244,90,0,7,16,58,27,199,27,38,24,233,12, +131,250,36,239,80,246,20,253,154,255,64,4,225,2,158,251,43,248,31,252,61,249,26,239,89,238,254,247,218,4,123,13, +226,11,194,6,144,1,40,2,255,0,136,244,20,229,237,219,241,221,125,229,6,240,221,248,240,1,41,9,1,10,213,6, +153,0,5,251,89,246,175,243,248,239,50,241,21,0,102,9,89,255,230,244,202,245,251,251,215,254,125,2,98,5,208,2, +49,4,107,7,250,8,217,2,238,249,170,241,8,232,177,231,75,239,187,246,107,250,225,252,125,1,72,5,175,2,25,251, +201,244,198,241,148,240,10,246,142,253,215,255,244,0,205,3,75,8,96,12,103,17,133,19,101,18,163,11,151,7,165,14, +207,15,21,8,127,1,251,255,156,0,217,0,253,2,224,9,175,17,72,19,205,10,144,0,132,253,9,251,190,246,61,248, +170,1,31,10,176,14,166,14,134,8,50,2,109,254,21,248,69,246,112,1,203,13,145,19,67,22,38,21,4,12,86,2, +22,251,132,243,235,239,32,246,147,1,229,11,97,24,190,31,213,29,218,18,203,3,151,249,139,243,0,243,232,248,32,1, +232,9,74,21,41,31,143,31,99,22,216,8,248,251,85,244,135,242,153,250,184,10,10,21,223,19,79,13,220,1,72,241, +151,230,198,227,116,230,9,237,197,244,147,250,137,254,101,5,101,13,234,20,146,22,18,14,76,3,232,251,137,242,20,233, +65,231,69,237,73,246,58,254,112,6,15,15,254,23,154,28,129,24,204,16,156,9,223,3,92,255,102,250,40,247,76,249, +60,251,69,244,77,236,214,234,235,233,254,234,93,238,41,242,115,247,170,0,121,15,197,26,240,27,116,22,66,10,158,247, +44,232,113,221,124,216,29,223,85,239,239,4,84,20,183,20,182,13,102,10,206,10,241,8,180,5,163,4,43,5,156,6, +66,6,252,255,244,245,246,235,16,229,233,230,152,242,139,1,83,11,170,14,147,13,43,6,47,253,227,248,121,248,204,248, +106,252,22,6,167,13,240,12,128,4,128,247,118,235,212,230,197,234,163,241,32,248,12,254,119,4,239,9,148,12,238,10, +76,4,206,254,108,254,67,0,171,254,119,251,228,253,164,5,245,14,212,17,25,11,7,255,202,242,254,238,81,246,132,3, +29,14,51,17,64,15,183,13,161,12,250,5,164,248,86,235,14,231,74,239,254,254,184,11,69,12,136,0,61,241,22,234, +230,238,183,247,234,254,86,5,14,13,211,19,0,20,176,13,39,4,153,250,66,244,57,242,250,243,177,247,55,250,50,253, +100,3,254,13,13,27,177,34,118,32,141,22,172,10,222,254,55,246,159,244,220,245,156,246,39,252,100,6,193,13,215,16, +38,16,185,13,117,10,17,6,247,2,138,1,108,3,199,6,212,5,35,2,207,252,243,245,135,240,161,237,28,240,164,247, +126,0,130,7,160,12,126,15,196,15,30,13,211,4,228,248,208,236,243,228,206,226,75,230,36,238,166,245,118,250,182,250, +108,246,207,243,76,249,18,5,55,14,248,14,216,12,244,10,82,6,165,254,18,243,1,227,69,215,77,217,15,232,113,253, +23,16,52,27,110,31,65,30,115,24,243,14,35,2,108,245,62,238,246,237,10,244,175,250,204,251,127,244,146,234,170,230, +27,233,226,239,100,249,154,3,105,13,20,22,196,27,78,27,84,16,244,252,188,234,115,224,28,220,5,220,147,225,21,239, +127,1,254,15,249,21,194,17,104,9,210,3,115,3,204,5,5,6,111,2,40,253,176,250,15,251,174,252,149,250,81,243, +227,237,234,240,179,252,239,9,226,17,55,19,74,15,122,11,125,7,106,254,63,244,124,238,51,239,77,244,73,250,78,252, +69,250,35,249,87,250,69,253,233,255,38,0,62,252,194,248,153,250,107,1,69,8,74,10,52,8,118,3,90,252,137,245, +68,243,151,244,164,248,10,0,87,9,198,16,170,18,206,13,56,4,208,250,126,247,198,250,226,253,58,255,241,2,220,9, +136,16,0,19,65,13,68,2,112,247,205,240,194,240,25,244,215,250,56,2,37,8,32,14,255,16,142,11,90,255,226,245, +149,243,31,247,5,255,202,7,54,14,185,17,103,18,175,15,48,8,148,254,139,247,18,246,100,249,236,0,225,10,109,18, +50,23,109,23,177,18,102,11,238,4,41,0,41,253,109,255,232,4,122,9,72,11,3,10,49,6,57,1,253,252,152,252, +135,0,88,2,102,1,149,2,89,4,246,3,97,0,205,250,68,246,108,245,142,249,10,254,177,1,174,5,134,9,167,13, +119,15,248,11,118,4,237,252,243,247,43,247,60,249,37,254,92,4,44,9,172,12,239,12,134,10,241,6,65,4,239,3, +96,6,120,10,103,11,232,6,117,255,1,251,248,249,116,247,154,244,171,244,155,248,248,254,226,5,97,10,100,9,97,6, +145,3,43,255,48,249,1,244,135,239,167,235,59,234,194,234,17,239,115,247,166,2,230,12,198,16,170,15,77,12,130,7, +217,0,5,249,100,243,114,243,156,248,106,254,21,2,161,3,79,4,23,4,247,4,114,6,108,4,128,1,62,255,218,253, +223,254,201,0,5,2,55,0,244,250,22,245,0,241,65,238,255,237,215,240,57,245,54,252,102,3,139,7,94,6,167,0, +35,253,84,253,41,255,3,1,128,253,9,244,81,235,228,230,221,232,79,241,63,251,93,5,224,14,156,20,231,21,91,17, +247,5,185,248,196,239,48,237,0,242,207,249,170,255,137,4,138,9,41,13,185,10,246,0,42,245,133,238,190,239,191,246, +143,255,42,7,129,12,208,13,132,10,176,3,171,251,54,244,168,240,97,244,74,252,170,3,63,7,201,5,91,2,76,255, +192,252,89,252,198,255,85,5,189,10,4,15,115,13,102,6,240,254,185,249,197,250,100,0,110,4,200,5,240,5,113,5, +193,4,128,4,112,5,145,4,1,0,133,251,243,251,86,2,23,10,120,15,213,16,197,13,212,6,31,253,148,240,218,228, +60,226,178,232,198,242,204,251,62,255,181,252,26,248,71,248,61,2,239,18,153,34,230,39,30,30,9,10,120,244,103,226, +167,218,210,225,102,242,68,9,98,31,139,44,129,45,51,33,26,14,222,253,238,247,117,253,78,9,194,19,121,23,220,17, +139,6,92,250,167,236,32,222,81,212,7,214,176,227,141,247,173,9,162,20,72,23,76,19,122,11,1,1,115,244,56,233, +136,228,58,233,227,241,245,245,79,244,85,239,56,235,106,236,124,245,237,4,185,20,87,30,211,32,114,32,249,28,215,17, +166,254,239,234,215,223,227,225,79,236,193,248,115,4,188,13,7,21,59,23,85,15,119,255,224,240,164,233,216,235,210,245, +153,2,22,13,166,15,98,7,33,247,202,229,232,218,71,218,54,226,163,241,202,3,41,14,25,13,134,4,214,247,246,237, +69,236,102,241,65,250,22,2,1,7,76,9,85,9,44,6,50,3,136,2,208,1,33,3,143,5,138,7,105,8,172,7, +80,8,38,11,133,11,100,6,200,251,174,240,63,239,159,246,204,254,134,5,57,8,178,4,152,254,246,246,98,238,251,230, +36,224,58,223,235,232,110,247,241,3,35,10,235,9,101,7,225,3,69,0,66,254,13,252,63,248,218,247,239,253,12,9, +211,19,198,23,184,21,66,15,29,8,148,4,102,2,136,253,77,250,109,253,237,4,172,16,122,25,44,23,243,12,237,2, +172,253,49,251,181,248,253,245,82,245,101,250,179,4,5,12,205,9,111,2,152,250,47,243,24,241,222,244,142,251,14,4, +238,12,149,21,107,26,164,21,167,7,105,249,170,242,175,245,217,255,103,10,146,15,211,14,165,12,72,11,43,9,235,5, +60,2,139,255,240,0,20,9,28,20,141,24,49,22,102,19,178,17,245,14,16,8,108,254,19,245,188,238,222,239,248,247, +193,1,244,7,44,9,157,10,192,13,195,15,192,13,148,4,221,250,217,247,109,250,218,253,13,252,217,245,112,240,254,239, +198,244,189,249,175,251,0,250,158,247,127,248,217,252,52,6,251,21,162,37,107,41,127,29,80,9,0,247,158,234,133,226, +213,222,45,228,196,244,221,8,202,21,51,22,95,13,0,4,113,255,56,254,37,251,30,246,51,244,122,249,91,3,72,11, +134,13,230,5,233,244,183,227,157,217,80,215,73,220,226,231,229,249,32,18,57,41,118,53,99,49,88,31,0,10,212,250, +176,242,122,234,0,224,197,217,36,223,16,239,242,255,78,10,36,11,85,6,252,0,170,253,151,254,66,255,127,253,144,253, +28,0,165,3,98,4,251,252,178,238,209,225,182,221,130,228,3,241,246,250,198,1,103,9,129,18,125,26,52,28,61,20, +149,9,22,4,136,2,223,1,15,254,122,245,52,235,147,229,64,234,251,245,146,255,70,2,148,0,238,255,204,2,37,4, +98,0,20,249,71,240,118,234,189,232,110,231,239,230,168,233,143,241,58,0,188,16,244,24,236,19,73,5,230,244,186,235, +107,236,87,243,155,250,182,253,183,1,191,9,224,15,214,15,236,8,219,255,160,251,191,253,189,4,92,12,38,17,245,18, +33,17,60,12,187,5,86,252,219,239,136,230,88,230,14,240,183,0,180,16,124,25,230,26,36,21,75,11,247,0,35,245, +175,235,255,233,136,241,246,255,176,13,126,15,233,3,240,243,47,231,19,228,241,234,206,248,67,9,35,24,26,36,221,42, +79,40,255,25,228,4,194,238,183,223,70,223,81,235,178,252,100,11,8,21,70,27,99,28,122,19,113,0,209,236,234,227, +253,233,241,249,56,12,117,25,216,27,115,20,225,7,194,249,80,235,48,223,249,216,195,220,47,237,39,3,87,20,217,27, +90,26,202,20,1,15,245,7,56,255,156,246,224,243,129,253,178,13,151,23,22,21,197,9,96,255,164,251,31,250,4,248, +196,246,98,248,65,0,32,12,241,22,8,28,50,23,63,10,104,252,38,243,47,240,243,240,46,241,1,242,246,246,16,254, +154,2,112,2,255,249,38,237,21,232,234,238,225,252,145,11,43,23,202,29,42,31,234,26,85,14,112,250,61,230,138,217, +103,217,225,228,233,245,240,5,160,17,107,24,36,26,44,24,126,18,94,10,190,2,72,253,214,252,65,1,157,7,103,9, +179,3,104,251,105,242,196,234,111,230,124,230,56,236,126,247,68,6,97,17,202,19,157,13,108,4,45,1,73,6,109,12, +52,11,50,0,88,240,61,229,114,225,192,226,76,232,245,242,55,1,147,16,57,31,220,37,120,33,170,20,113,6,165,253, +128,251,148,255,66,6,252,10,105,9,148,4,32,1,85,251,13,241,148,231,81,230,244,238,97,254,234,14,101,27,62,35, +252,35,173,27,28,16,58,3,85,245,159,235,226,231,102,234,233,240,31,247,218,251,81,0,181,1,73,255,100,255,59,2, +240,6,191,13,248,19,222,21,109,17,230,6,89,249,4,243,101,244,67,248,227,253,247,1,210,3,94,3,178,0,131,253, +76,251,114,249,151,249,48,255,116,7,188,13,77,16,52,15,249,9,245,0,45,245,187,232,235,222,4,218,71,220,192,230, +100,246,47,6,59,19,132,26,211,26,222,18,69,3,70,243,182,232,204,228,192,229,86,235,197,244,53,0,220,11,191,19, +168,21,126,16,138,5,178,249,184,242,138,241,40,244,199,250,238,2,56,8,251,7,181,3,49,253,62,243,123,232,23,227, +51,229,202,236,218,248,187,6,50,16,59,21,198,22,77,15,172,2,152,247,60,238,232,231,132,228,92,227,198,229,174,238, +160,252,3,10,31,18,77,20,34,20,103,17,168,10,108,4,83,1,41,252,9,246,152,241,237,237,212,236,181,236,32,239, +25,245,6,254,58,9,213,16,180,18,96,16,99,13,151,10,145,5,191,0,202,253,101,252,62,253,53,253,116,248,60,239, +194,230,117,225,18,224,12,234,59,252,157,13,25,26,205,28,16,23,15,13,245,255,52,241,166,232,148,232,148,237,162,246, +151,253,100,0,159,1,222,1,61,1,21,5,227,13,92,20,101,24,204,25,133,24,211,21,217,17,150,13,224,6,237,251, +148,243,195,243,204,247,221,251,23,0,234,4,53,7,52,6,83,2,80,254,179,255,149,1,205,5,78,12,56,14,165,13, +171,8,155,254,103,246,102,243,125,242,189,245,225,253,179,7,220,17,116,21,49,20,248,19,210,17,126,14,185,14,117,17, +4,19,21,18,160,11,249,0,10,249,133,244,251,242,151,247,147,0,104,8,192,10,40,11,170,13,169,13,182,8,230,255, +88,247,61,243,190,245,33,252,144,255,217,1,27,5,44,7,209,5,246,253,15,242,20,234,145,233,60,240,143,254,20,14, +42,23,242,23,103,16,89,4,160,247,31,239,151,239,160,242,55,246,200,255,93,9,203,12,211,9,70,1,34,249,147,248, +135,252,78,255,45,1,254,1,129,4,114,6,96,5,181,3,235,254,12,247,216,241,162,241,67,240,15,240,191,244,218,249, +41,255,29,4,61,4,139,251,228,244,130,244,78,240,209,237,210,242,22,251,122,2,108,6,126,8,101,9,58,6,247,1, +241,254,49,250,236,247,106,251,240,0,29,4,128,3,253,2,79,6,80,7,144,2,180,254,53,251,201,249,106,251,53,250, +2,252,125,0,138,255,26,252,20,246,142,239,77,239,103,241,186,241,153,245,18,1,228,8,245,7,2,7,176,3,119,253, +218,250,2,251,145,251,18,255,248,3,3,6,173,5,166,2,64,255,50,0,46,3,150,3,252,2,209,255,153,251,240,249, +168,250,11,1,133,4,119,4,121,4,240,255,128,253,151,251,68,248,199,247,165,248,219,249,107,253,87,2,5,6,90,10, +110,8,62,0,152,253,2,0,17,3,66,3,98,255,115,255,6,2,71,2,21,6,5,8,78,4,200,0,205,253,30,250, +218,246,152,248,178,254,96,5,174,8,49,12,231,16,145,13,101,7,146,2,73,0,192,2,55,4,152,4,131,3,164,2, +164,4,151,5,214,4,116,3,109,2,121,2,59,5,61,10,20,11,63,6,230,255,20,255,229,4,1,8,144,5,81,0, +6,251,255,247,167,247,108,251,137,3,252,10,25,10,88,3,248,254,177,251,77,247,45,248,5,253,63,0,74,4,33,7, +30,7,167,2,227,248,111,240,53,235,165,234,131,240,16,248,161,254,160,4,80,7,18,7,80,7,78,5,230,253,70,244, +17,237,129,236,125,242,140,247,50,250,89,253,106,1,230,5,190,8,253,8,236,3,213,252,29,250,195,251,252,0,178,6, +176,7,232,3,233,255,27,253,186,250,121,246,30,238,165,227,146,223,73,233,250,251,125,14,42,27,145,34,78,34,227,23, +248,6,83,242,22,224,5,214,97,218,140,235,0,254,234,11,105,18,97,15,55,7,9,1,60,252,255,251,144,4,219,15, +92,23,230,23,56,18,146,6,50,247,245,232,203,225,50,227,150,233,148,247,36,8,38,20,25,30,47,34,49,28,38,17, +178,5,190,252,250,249,131,251,202,253,189,255,133,255,99,254,1,251,10,242,198,235,127,237,49,243,93,0,253,20,4,36, +217,39,226,35,186,21,128,2,24,244,208,235,100,234,142,238,27,248,160,4,76,13,196,17,141,18,248,13,207,7,87,4, +55,3,85,5,38,9,1,12,3,13,55,11,134,6,156,254,169,244,150,233,182,226,136,227,170,232,211,239,74,246,67,253, +111,6,64,15,27,22,158,28,12,32,73,24,88,7,81,246,249,237,203,239,95,243,154,249,132,8,99,27,6,41,125,40, +115,26,25,13,24,8,196,7,219,10,52,18,130,26,156,31,193,28,71,15,181,252,240,234,128,222,78,219,238,223,184,235, +225,251,218,7,115,13,83,13,211,5,223,251,235,242,254,233,24,230,190,235,61,249,73,8,180,14,70,9,211,253,94,242, +32,234,47,229,112,228,49,234,143,249,123,16,122,38,195,50,174,45,41,27,252,1,63,232,42,217,8,215,3,225,27,243, +182,5,218,21,29,28,67,21,199,5,249,240,225,223,114,218,153,224,77,239,200,254,217,7,214,11,73,14,174,11,213,2, +122,246,82,230,126,217,111,216,68,226,193,240,188,250,188,253,195,0,45,4,80,3,128,253,122,243,198,237,172,241,223,250, +26,2,168,2,60,1,65,255,189,253,37,254,122,254,176,252,2,248,61,246,77,247,30,249,7,253,220,1,33,5,253,4, +216,4,163,5,27,6,159,4,8,254,241,244,55,241,83,242,96,240,30,237,135,235,217,234,104,235,244,238,146,246,228,252, +135,255,43,0,103,0,237,1,50,1,240,250,118,245,51,245,129,247,17,253,222,2,57,7,192,10,134,7,129,1,150,0, +181,1,205,0,176,254,144,253,66,254,182,255,57,3,217,10,14,16,241,12,126,4,2,251,18,243,89,237,204,233,119,234, +90,242,30,254,231,6,5,9,207,5,148,1,84,251,0,245,39,244,182,248,155,0,204,8,46,15,180,18,67,20,252,20, +114,19,108,15,94,9,205,1,33,252,172,252,155,0,51,6,129,14,216,20,60,23,227,20,65,14,76,6,227,254,184,251, +81,255,233,8,7,20,250,27,212,28,237,19,216,5,100,248,44,237,20,230,69,231,143,242,81,3,240,18,96,29,16,31, +64,25,57,17,8,5,108,245,168,235,26,235,251,241,196,253,22,10,14,19,244,20,80,15,235,5,160,252,145,247,99,248, +25,254,46,8,253,20,90,33,18,38,48,31,71,18,44,3,234,244,74,238,53,242,150,253,217,10,250,20,128,25,153,24, +164,18,122,8,98,252,109,241,89,236,213,239,235,248,142,3,151,13,106,19,50,18,163,10,164,255,128,244,200,234,132,229, +107,231,220,241,81,2,26,16,1,23,185,22,183,16,28,8,123,255,140,250,218,249,12,253,225,2,30,7,246,8,127,9, +160,7,125,3,197,254,0,251,33,249,197,247,241,247,140,249,235,249,11,249,80,247,96,247,151,247,43,246,32,244,91,239, +142,234,78,233,202,238,1,249,5,2,116,8,197,8,154,4,228,254,246,247,123,243,179,242,252,244,252,249,234,1,34,10, +58,16,109,18,245,14,35,9,161,2,6,253,31,251,0,252,152,252,218,251,87,251,66,251,130,251,130,250,228,246,138,241, +47,236,125,234,187,237,165,244,123,253,96,4,20,8,198,9,97,6,87,253,232,242,193,234,236,231,101,234,144,241,30,251, +170,1,149,2,235,0,225,0,236,1,52,4,205,8,134,12,190,13,31,13,194,9,160,5,56,2,250,252,160,246,129,243, +162,245,214,248,253,249,178,250,122,252,142,255,29,3,221,7,3,11,6,9,186,3,190,254,120,252,237,250,245,249,179,250, +228,250,121,249,225,246,112,244,179,244,144,247,130,250,39,255,114,5,88,10,48,13,25,12,237,8,121,6,241,3,59,3, +171,4,149,5,153,4,154,2,96,2,74,4,173,5,44,6,244,8,203,12,56,14,164,14,57,14,73,13,156,12,250,9, +99,6,252,3,212,1,139,254,207,250,98,249,45,250,173,250,190,250,78,251,206,253,21,1,11,2,116,1,206,1,112,4, +235,6,155,8,120,10,212,9,32,7,134,3,24,1,205,1,76,3,220,6,116,13,238,17,200,17,163,15,67,13,102,10, +115,8,59,9,218,9,70,9,34,8,208,6,6,8,82,6,9,255,144,247,6,242,78,240,120,240,173,238,215,236,39,238, +135,238,202,234,115,230,30,227,231,226,92,233,190,248,22,13,146,26,140,24,95,10,136,250,95,239,234,230,126,221,73,216, +131,223,14,245,220,16,87,36,217,39,255,29,234,15,130,5,127,255,6,250,36,246,123,247,214,251,165,2,84,7,177,3, +232,250,227,239,111,229,109,223,35,222,120,224,111,229,6,237,170,246,227,1,10,15,40,24,129,22,45,13,128,0,218,242, +127,230,107,216,231,202,225,200,54,213,117,234,140,0,33,15,74,23,118,31,19,37,78,33,210,18,85,252,66,233,124,227, +157,230,49,238,96,248,200,2,35,12,184,16,177,12,185,1,85,246,16,239,144,239,238,248,188,5,145,16,198,23,198,25, +184,19,156,7,71,248,109,230,134,216,10,212,104,215,187,224,38,239,68,255,194,9,130,11,120,10,184,10,50,10,255,5, +24,255,224,248,27,245,112,245,141,246,171,244,44,244,234,248,128,1,104,10,56,17,58,23,79,27,80,24,178,16,163,8, +193,1,106,1,80,5,159,6,146,6,74,10,150,13,128,8,230,255,166,249,26,247,248,250,214,3,54,11,95,13,37,13, +146,13,160,13,233,10,206,8,165,8,142,6,120,5,159,7,157,9,111,10,246,10,95,10,32,10,34,13,197,19,155,26, +176,27,188,23,231,17,83,12,196,9,245,8,142,7,103,4,127,2,101,5,144,11,151,15,124,13,84,8,143,3,5,2, +128,5,124,8,166,8,247,9,101,12,61,14,222,13,190,9,140,1,19,246,0,238,208,238,105,247,18,5,155,18,128,24, +210,19,80,10,175,2,252,254,25,253,46,252,212,255,78,7,28,13,70,14,14,10,157,1,106,249,165,244,191,243,86,245, +167,247,88,253,185,7,211,16,162,18,127,14,2,8,249,1,74,254,196,250,192,246,81,243,91,242,218,245,218,250,49,254, +20,253,64,246,141,240,144,241,187,245,39,251,5,2,152,6,236,7,175,7,8,5,75,254,255,242,192,230,134,224,51,227, +91,237,136,250,54,4,247,8,159,10,28,9,195,4,38,255,136,250,116,248,137,247,196,249,68,0,11,5,15,6,129,4, +5,1,160,251,65,244,32,237,100,232,10,233,127,239,72,249,222,1,125,7,111,10,184,7,163,1,182,249,168,240,100,234, +170,232,93,236,76,241,222,243,199,246,150,252,153,2,21,4,241,2,208,2,185,1,91,255,211,253,46,252,201,250,195,249, +129,248,115,247,147,246,135,247,136,249,229,249,123,249,21,251,90,253,30,255,158,1,73,1,172,252,66,247,66,244,90,244, +155,246,178,250,47,254,93,255,240,254,134,253,212,251,239,250,80,251,72,253,157,1,34,6,109,7,95,6,227,4,243,2, +22,2,242,1,166,0,73,254,77,252,10,253,7,254,108,253,102,253,89,255,61,4,105,9,212,10,202,6,11,255,180,248, +225,245,192,244,114,244,176,245,89,249,180,254,19,4,36,7,185,5,34,3,67,1,100,254,103,252,86,252,9,254,62,1, +15,5,116,8,30,10,146,9,142,6,248,1,235,253,251,252,192,255,253,3,27,8,47,12,13,15,198,14,243,11,78,6, +137,254,119,249,168,249,119,253,213,0,90,1,120,1,99,0,46,252,141,248,116,247,118,249,147,253,109,1,68,4,27,4, +66,2,151,0,222,253,239,249,77,247,165,247,69,250,85,255,171,4,108,7,134,7,14,7,23,8,110,9,232,8,2,6, +164,2,107,1,8,3,173,5,81,8,68,9,222,7,209,6,40,5,39,3,241,1,207,0,92,0,236,255,85,0,144,2, +66,5,65,6,157,4,209,1,38,0,183,0,82,1,172,255,83,252,196,249,214,249,105,251,155,252,241,253,76,0,249,3, +225,7,150,8,19,6,174,2,95,0,110,255,142,254,99,254,5,255,176,0,140,2,174,2,156,2,244,3,25,4,145,1, +149,254,103,251,5,249,180,248,40,250,5,253,89,255,96,0,254,0,44,2,98,2,242,0,230,255,186,255,139,255,235,253, +70,252,11,251,29,249,235,248,210,250,63,254,2,4,157,10,27,16,217,18,65,17,58,11,27,3,56,253,123,251,173,252, +193,255,14,4,217,7,5,9,78,8,170,7,13,7,210,5,98,4,60,3,138,4,189,8,191,10,102,9,49,7,238,3, +52,255,209,250,173,247,103,244,199,242,235,243,160,246,38,249,85,249,236,247,127,246,233,246,221,248,9,252,255,1,0,10, +234,17,214,20,122,14,238,0,182,242,122,233,106,231,114,236,221,247,154,7,31,23,228,33,48,36,46,29,153,16,244,3, +48,252,163,251,30,1,202,9,193,16,179,16,209,10,210,1,31,246,176,234,255,227,155,229,213,238,149,252,252,11,73,24, +31,28,3,23,22,14,53,4,242,249,20,242,28,239,88,242,149,251,239,4,39,8,20,6,118,1,236,251,175,247,135,247, +178,252,202,6,185,18,81,27,170,29,31,24,157,10,238,247,28,231,222,221,26,221,209,228,127,240,30,251,243,1,76,3, +114,255,195,247,90,240,131,236,33,238,47,245,103,254,74,6,131,10,166,10,163,5,24,250,121,234,14,221,18,215,121,218, +110,231,229,250,8,14,100,26,144,30,61,27,160,16,229,1,138,243,157,233,35,231,14,235,90,243,245,253,183,5,5,7, +40,3,170,252,186,244,93,237,237,233,202,236,255,244,217,253,191,4,55,10,16,14,185,14,118,10,176,0,117,243,242,231, +150,225,204,225,221,232,250,242,221,252,61,6,146,13,206,16,3,15,69,7,126,252,185,245,3,247,242,252,81,1,98,2, +158,1,212,0,163,255,176,253,59,252,79,250,49,249,66,252,254,2,222,9,93,13,240,12,71,11,42,9,186,5,158,1, +58,252,141,246,164,243,76,245,169,251,44,2,232,3,255,255,208,248,201,243,48,244,229,246,244,248,52,253,10,5,22,12, +254,13,233,7,103,250,64,237,31,231,147,232,194,239,163,249,230,3,215,10,183,12,212,11,107,7,240,255,158,249,197,247, +215,252,38,7,234,17,210,24,147,23,158,16,63,10,76,4,25,253,63,247,88,246,88,252,16,9,149,22,70,30,54,31, +223,26,223,20,145,14,24,7,74,0,230,252,147,255,202,6,248,13,83,17,191,14,223,8,42,3,229,255,81,1,46,5, +86,8,194,11,221,15,210,18,136,17,106,10,222,255,167,245,133,239,179,238,102,241,143,245,73,250,42,0,164,7,208,15, +246,20,48,20,127,15,250,9,182,5,118,2,83,254,178,249,79,247,128,249,73,253,18,255,47,0,107,0,185,255,248,255, +185,1,52,5,53,8,80,9,225,9,158,9,171,7,237,3,121,254,108,247,206,239,138,234,205,232,68,233,189,235,226,240, +22,248,74,0,122,9,5,17,138,18,33,14,84,6,23,254,44,247,159,241,244,237,41,235,32,234,123,236,80,239,157,241, +198,245,174,252,43,4,214,9,187,14,62,18,243,17,36,14,184,6,63,253,101,245,53,240,253,236,120,235,185,236,203,240, +115,246,232,252,39,2,150,5,15,8,172,9,121,10,99,9,10,7,46,5,79,3,148,0,183,251,55,245,131,239,35,235, +60,233,88,235,69,241,148,249,8,1,2,6,211,8,158,9,232,9,67,9,245,5,240,0,224,250,168,245,164,243,108,243, +253,243,129,245,127,247,23,251,102,1,130,8,229,12,21,13,123,10,156,7,97,6,209,5,63,4,10,2,36,255,185,251, +240,248,147,246,129,244,249,243,246,244,77,246,179,248,83,252,151,255,244,1,68,2,182,0,196,255,120,255,213,254,185,252, +240,249,190,250,231,254,95,3,74,7,43,9,138,9,43,10,165,10,81,10,225,9,192,11,20,16,162,20,196,24,232,26, +122,25,201,21,19,18,20,15,72,11,213,7,31,7,22,7,98,6,183,5,69,4,30,2,99,0,106,255,37,255,230,255, +124,1,217,2,182,3,247,3,128,3,143,2,239,255,59,251,146,246,177,243,23,244,211,247,14,252,90,255,123,2,2,6, +136,9,57,11,230,9,169,6,113,3,58,1,243,255,239,254,222,253,61,253,217,252,139,252,29,252,135,251,227,251,251,252, +4,255,88,1,201,1,7,2,141,2,251,0,228,253,87,250,166,246,215,243,18,242,24,241,252,241,59,245,99,249,179,252, +31,255,178,0,152,255,217,252,157,249,220,244,147,241,109,241,200,242,1,245,15,247,204,248,148,249,209,248,67,248,242,248, +100,251,180,255,118,3,111,5,99,7,74,8,9,6,39,1,207,250,153,245,50,242,156,239,122,239,158,242,63,247,170,251, +8,0,160,3,195,5,136,7,57,7,132,3,254,253,105,248,9,244,246,240,131,239,121,239,230,240,75,244,43,248,243,251, +30,0,255,3,68,6,121,6,237,5,228,5,73,5,239,2,146,0,102,254,96,252,242,251,187,250,239,247,240,245,81,246, +107,250,172,0,150,6,155,10,242,11,111,11,77,9,162,5,121,1,169,253,120,250,181,248,51,248,253,247,20,248,168,247, +128,247,86,249,116,253,169,3,70,9,130,11,123,10,13,8,67,5,124,1,62,253,13,249,252,246,29,249,92,252,72,255, +17,1,155,0,51,1,89,4,159,8,179,11,20,13,214,13,225,13,173,13,178,12,24,10,52,6,115,3,38,3,28,4, +78,6,166,8,67,10,231,11,243,13,245,14,97,14,169,12,214,9,252,7,172,7,126,8,135,9,71,9,31,8,99,6, +44,5,180,4,106,3,58,2,64,3,65,6,176,10,137,14,248,15,166,14,19,11,19,9,68,8,53,7,239,5,47,4, +157,4,57,6,107,8,21,10,80,8,97,5,196,3,191,3,172,3,35,2,206,255,169,253,230,252,147,253,238,253,180,253, +125,252,190,250,47,251,3,252,45,252,34,252,56,252,102,253,181,253,47,253,140,251,87,249,46,249,46,252,37,2,212,7, +72,9,250,4,225,253,213,246,180,242,0,244,216,247,162,251,111,0,214,6,66,10,39,8,216,0,214,245,164,238,28,238, +173,241,213,247,147,253,226,0,126,2,187,1,170,253,119,247,96,240,227,234,240,233,97,238,231,245,204,254,137,5,171,7, +50,9,95,7,230,255,139,247,224,240,29,237,232,237,99,244,114,251,13,255,76,0,186,254,71,250,53,245,79,242,4,241, +178,241,49,247,131,255,23,4,33,3,103,255,47,249,214,242,248,239,128,239,185,238,10,239,141,242,205,247,149,252,220,255, +233,1,29,1,199,253,219,251,49,252,32,252,108,251,19,252,234,252,232,253,90,254,169,251,106,245,49,238,43,237,166,243, +111,252,166,4,156,10,107,12,147,9,94,4,195,253,21,246,60,240,183,238,61,241,57,246,192,252,151,1,156,0,24,252, +53,248,95,245,150,245,103,250,100,2,13,11,249,17,53,23,244,23,201,16,241,4,242,249,217,242,185,240,92,244,211,252, +197,7,15,19,130,27,209,29,183,24,155,15,128,8,20,5,209,4,179,7,147,11,138,14,43,15,133,12,124,7,171,0, +239,250,22,250,112,253,170,2,247,8,77,15,148,19,43,21,96,20,235,16,27,12,72,6,62,0,183,253,70,254,194,255, +120,2,181,4,202,5,239,6,113,7,223,7,19,10,65,12,226,12,200,13,9,13,213,7,110,0,215,248,224,242,144,239, +163,237,118,239,146,246,73,0,218,10,206,18,226,19,15,15,203,8,174,2,65,251,218,244,198,243,5,248,55,255,251,5, +197,8,119,7,101,5,236,4,180,4,251,2,40,1,164,1,213,3,70,5,168,5,129,4,168,0,76,252,59,248,90,243, +171,239,157,237,164,235,98,235,151,240,34,252,241,8,124,17,221,19,83,17,135,12,49,5,251,249,42,236,158,225,84,225, +105,233,89,243,184,252,58,5,15,12,53,17,103,21,48,21,207,14,69,7,208,1,121,255,34,255,69,254,84,252,130,247, +60,242,206,240,204,240,178,241,40,245,113,250,16,2,100,10,238,15,153,16,158,10,23,1,130,251,177,251,60,253,125,252, +141,247,232,240,211,238,210,240,65,242,86,243,201,246,108,255,45,12,163,23,68,29,169,26,206,18,212,10,105,2,244,247, +251,237,40,233,135,234,244,239,61,249,115,3,200,8,177,8,151,4,105,254,254,250,105,251,83,253,225,255,201,3,1,10, +154,14,92,11,88,255,77,240,206,230,226,229,225,234,24,242,117,250,87,5,244,15,173,21,20,20,235,11,84,2,67,253, +0,254,239,255,149,1,24,4,186,5,81,6,101,5,61,3,71,1,53,254,203,252,56,0,144,6,52,15,7,23,44,26, +175,25,42,23,91,18,7,10,123,0,73,250,109,250,85,255,56,4,52,7,136,7,84,5,171,1,201,254,214,253,68,253, +17,253,30,254,116,1,18,5,46,5,237,0,8,250,250,242,41,237,189,232,209,228,102,225,245,222,228,223,151,231,158,248, +151,19,81,48,159,63,45,54,89,24,22,248,58,226,215,212,23,206,252,210,75,230,176,5,229,35,90,51,206,48,249,32, +140,14,104,1,198,251,210,249,223,250,243,255,148,3,189,4,192,6,169,5,178,249,23,227,105,203,57,196,231,210,232,234, +38,2,252,18,136,33,179,47,83,49,251,27,8,246,107,212,208,197,111,203,148,217,26,228,212,233,237,236,2,239,98,239, +144,240,167,247,198,5,78,25,100,45,113,56,235,49,163,25,38,248,224,217,160,199,96,195,240,199,33,209,239,223,158,245, +98,15,163,35,154,44,172,43,9,36,212,21,112,4,29,249,86,244,112,243,192,244,95,245,145,242,21,232,207,213,125,197, +40,196,204,212,136,243,147,21,42,47,187,60,43,60,220,47,0,28,66,3,185,234,143,217,217,209,21,209,218,215,227,227, +162,239,149,248,130,2,15,16,222,30,74,41,248,40,145,33,177,24,108,17,105,12,7,5,253,249,178,237,17,225,141,212, +237,206,11,212,229,225,150,248,6,16,76,31,121,38,188,35,164,23,126,9,251,254,92,252,43,0,5,2,229,251,148,238, +25,226,187,222,192,229,29,240,133,249,113,4,160,17,177,31,197,41,82,46,202,45,104,38,82,28,64,19,150,9,216,250, +10,231,7,217,247,217,97,233,52,1,214,21,57,30,120,29,104,27,170,28,33,30,91,25,78,16,148,7,43,1,202,254, +223,253,212,250,67,245,156,239,237,240,101,252,74,10,214,15,34,10,134,2,201,4,111,17,35,30,210,33,108,27,92,17, +126,9,68,0,205,243,193,233,187,231,19,241,122,0,231,12,73,19,43,19,147,15,112,13,216,13,107,15,105,16,186,15, +205,14,127,15,5,17,7,18,207,15,88,7,151,252,207,245,80,243,221,243,60,248,23,1,33,14,217,26,66,32,254,26, +189,11,236,248,42,235,9,230,204,230,207,231,182,232,214,235,9,242,46,251,50,2,19,4,60,1,8,251,203,247,193,249, +10,253,193,254,222,253,77,253,30,1,213,7,132,11,221,9,112,4,207,253,27,250,252,249,158,251,5,254,61,0,197,3, +190,8,17,11,237,7,124,255,244,243,42,234,149,230,147,232,56,236,46,239,100,242,71,248,190,0,179,7,194,8,37,4, +117,252,56,243,5,235,103,230,241,230,113,236,135,243,61,251,139,4,2,12,165,13,194,10,42,8,55,8,231,7,130,2, +55,248,90,238,172,233,100,237,17,247,106,254,210,0,15,0,148,253,104,250,41,245,253,239,105,239,116,244,215,252,250,3, +129,7,1,6,145,255,131,247,147,239,172,233,126,231,221,233,123,240,38,249,58,3,89,11,68,14,58,13,64,10,54,8, +11,6,63,2,147,253,254,247,240,244,138,243,92,241,126,242,173,247,53,254,0,4,145,9,77,15,131,17,47,16,127,12, +215,5,58,254,79,248,215,244,14,243,31,247,51,3,247,14,27,18,116,9,243,250,100,240,8,237,25,241,219,246,20,248, +164,246,2,246,108,249,163,0,160,9,247,21,240,35,99,42,116,32,75,9,180,240,241,224,246,223,7,236,44,0,169,23, +0,44,230,54,243,50,51,33,24,11,138,252,93,253,7,10,117,25,237,36,66,38,115,26,12,6,49,243,185,231,236,224, +121,222,200,229,89,247,230,12,41,32,141,43,230,43,39,35,223,20,13,5,11,246,138,231,164,221,156,222,142,232,79,243, +127,248,53,246,190,238,41,231,54,231,201,245,189,14,53,39,8,57,149,62,239,50,181,25,124,250,230,218,70,195,192,189, +177,202,67,224,25,245,29,5,161,16,205,23,189,26,128,28,93,29,121,25,255,16,198,8,156,2,150,251,206,241,9,231, +187,220,126,209,65,200,228,201,239,216,48,240,87,11,219,36,248,51,113,52,159,41,132,23,219,0,3,235,123,219,91,213, +53,217,77,225,239,229,173,230,83,231,123,234,85,242,63,0,138,19,91,39,21,53,255,57,211,50,110,28,197,254,118,230, +112,216,15,212,11,214,239,218,215,224,32,230,241,237,101,252,234,11,118,21,138,25,2,25,126,18,44,7,38,253,205,249, +183,248,172,243,227,236,81,230,228,223,55,222,212,227,4,237,120,248,64,8,175,24,125,33,127,32,218,27,197,24,124,21, +250,14,1,6,178,251,1,240,53,229,2,223,23,223,86,231,195,247,112,10,131,24,144,29,69,26,21,20,43,13,81,4, +175,250,120,244,244,243,129,245,141,244,74,241,12,238,139,234,2,231,200,231,60,240,204,253,92,10,176,19,201,25,64,27, +198,25,251,21,123,14,222,5,62,255,100,252,222,253,65,2,233,8,24,18,230,27,173,34,22,36,112,30,219,19,99,10, +240,3,155,0,63,1,252,4,60,10,0,14,126,13,140,8,192,1,129,251,55,246,10,243,82,243,57,248,128,0,238,7, +188,12,11,13,177,6,80,252,126,243,97,239,36,239,169,242,11,250,172,2,80,9,177,12,112,14,147,14,174,11,18,6, +97,254,203,247,186,246,105,252,72,5,205,11,144,14,112,14,209,11,225,6,178,0,91,252,210,250,113,250,207,249,28,250, +134,253,166,1,187,2,179,255,117,249,227,240,102,230,245,221,179,219,3,224,30,235,64,252,119,14,135,25,185,25,63,18, +84,6,59,248,13,235,48,228,245,229,212,236,79,246,190,0,239,9,67,16,77,18,11,15,39,8,114,2,114,0,95,0, +15,1,162,2,208,5,69,8,4,6,113,0,131,249,30,243,171,238,59,236,131,236,122,240,168,247,89,255,182,6,145,11, +149,10,133,4,72,252,79,244,81,239,123,238,134,242,197,247,206,248,56,248,40,249,174,251,110,253,37,255,34,3,153,8, +145,14,110,19,25,22,245,20,204,15,88,8,252,0,148,250,218,245,227,243,62,245,182,248,59,253,70,2,36,4,99,1, +147,250,143,244,219,242,37,245,96,251,187,2,81,7,172,6,45,2,12,251,255,242,181,236,179,233,39,234,180,238,212,246, +63,0,25,9,189,16,112,21,186,19,79,16,58,14,118,13,22,15,108,17,173,18,52,17,231,14,199,12,30,10,245,5, +52,4,21,8,97,13,203,17,32,21,160,22,177,21,248,17,58,13,180,9,192,6,255,4,173,3,109,2,153,0,13,253, +227,248,227,243,14,241,116,242,118,248,210,255,221,5,229,10,26,14,255,15,100,15,176,11,43,5,127,253,13,247,198,242, +143,238,107,234,65,231,141,228,10,228,185,230,73,241,143,7,225,38,25,65,71,68,225,46,4,16,131,246,40,227,115,210, +186,201,87,208,110,231,217,6,121,29,208,35,237,27,46,11,4,249,103,231,56,218,75,216,81,229,180,248,235,10,86,28, +209,36,198,28,197,2,190,219,61,185,116,169,151,172,161,189,255,217,5,3,246,49,230,86,99,98,247,82,119,49,81,5, +96,221,156,196,2,186,107,188,181,202,106,223,194,249,249,21,45,42,90,49,102,38,52,18,125,0,87,242,88,235,52,236, +85,243,106,254,123,10,10,16,233,7,143,245,236,223,194,208,247,203,93,207,4,222,161,244,111,10,75,29,147,45,63,54, +216,48,111,29,81,3,81,235,132,214,12,197,168,191,239,203,95,226,226,249,138,14,38,31,226,43,184,45,150,30,56,8, +252,249,93,247,216,249,221,251,39,253,113,2,231,9,190,9,182,254,234,240,35,237,152,244,225,249,202,248,137,252,205,8, +149,20,254,23,119,19,227,12,240,8,57,4,156,247,164,232,93,225,184,227,190,234,194,237,168,240,119,251,118,8,5,16, +20,17,64,16,74,17,184,15,27,9,203,2,69,0,40,1,30,4,187,8,140,12,250,12,236,11,127,8,107,3,214,255, +38,1,53,9,186,15,48,17,63,18,251,20,171,19,240,9,212,255,16,248,107,241,115,235,20,230,197,230,104,236,55,244, +28,4,0,27,78,41,247,34,60,10,125,241,216,231,46,233,239,239,135,252,116,17,105,43,27,63,237,60,148,31,172,247, +97,219,73,216,59,233,232,3,122,35,176,60,239,69,135,61,51,39,50,10,104,237,12,215,167,206,111,216,24,239,220,6, +138,19,65,20,253,16,225,11,234,3,13,247,171,231,21,225,75,232,160,245,74,0,194,7,155,9,104,1,95,243,52,232, +150,230,128,235,142,243,132,1,108,19,26,33,252,36,196,30,138,14,226,250,218,238,113,236,148,236,52,236,130,239,172,251, +244,11,194,18,152,17,228,15,28,12,172,5,17,0,38,255,185,0,185,0,157,253,236,249,248,247,38,245,164,242,219,241, +23,243,104,250,197,3,143,7,197,3,147,250,166,242,20,237,102,235,83,239,30,246,173,255,40,7,64,9,241,5,251,253, +212,244,201,236,220,233,55,237,82,245,35,2,41,16,176,24,252,26,117,26,254,21,215,11,148,255,180,245,240,236,130,228, +228,226,244,237,128,255,4,12,126,16,186,14,123,5,233,245,17,231,222,223,119,227,49,237,140,247,62,1,24,6,198,2, +119,251,61,246,248,241,53,235,167,230,68,235,221,243,83,250,218,1,43,12,42,20,183,19,182,15,168,12,164,7,155,255, +151,247,170,243,199,243,46,250,122,5,73,14,242,15,90,10,198,1,136,249,113,244,41,244,51,248,64,254,1,3,241,3, +175,255,64,248,69,241,169,236,68,233,41,231,253,232,124,238,21,246,88,253,58,2,40,8,91,14,125,16,48,15,5,12, +135,8,41,4,6,0,166,254,177,0,156,3,254,3,99,5,99,8,126,10,108,13,170,18,217,22,194,19,145,11,97,7, +120,8,94,7,223,3,28,4,172,6,117,4,62,253,162,246,188,241,146,238,156,240,84,250,150,7,120,18,185,24,230,25, +151,20,150,10,124,2,143,252,13,246,69,240,196,237,46,240,125,247,190,0,0,8,231,12,74,17,42,22,182,24,54,23, +54,18,151,10,232,2,113,254,132,0,12,7,225,11,178,9,174,1,106,248,96,240,57,235,113,233,164,236,63,242,102,249, +83,6,22,23,108,36,86,38,92,27,95,10,164,249,235,233,128,219,108,211,62,214,128,228,100,251,193,19,141,36,20,39, +50,30,27,18,147,6,72,254,80,252,40,1,120,4,191,255,26,247,164,239,1,234,179,227,110,227,87,239,237,2,211,20, +84,27,233,21,63,10,161,255,91,250,197,251,76,2,176,8,158,11,102,11,158,8,80,255,207,239,105,224,227,216,86,220, +24,233,184,253,221,17,231,31,13,40,27,41,223,33,59,17,209,249,242,225,168,209,230,205,60,215,195,234,40,0,245,14, +140,16,241,4,15,247,18,241,118,244,173,254,254,14,70,31,15,36,207,24,180,2,135,235,185,213,164,198,25,203,79,229, +42,8,247,31,89,38,87,32,161,19,23,6,41,252,25,247,175,245,77,248,139,253,163,3,245,6,165,3,179,249,227,235, +92,222,196,214,153,221,104,242,222,12,38,33,217,43,136,51,158,48,57,26,30,248,195,221,195,214,36,223,15,240,118,255, +112,6,103,5,253,0,203,254,3,254,139,254,94,3,138,11,199,20,8,28,28,27,190,14,32,253,236,237,192,229,197,228, +184,229,235,232,191,238,179,246,247,3,163,18,112,27,142,27,78,20,41,9,250,252,113,243,95,243,125,252,168,5,62,8, +4,3,31,247,227,231,91,223,151,225,53,238,235,4,171,29,52,50,91,59,113,52,247,32,123,8,210,244,92,234,13,230, +91,231,110,241,70,253,201,4,144,9,199,12,199,16,56,20,229,18,157,9,130,254,3,252,112,0,165,6,39,13,114,18, +97,20,135,15,153,3,159,241,155,222,195,216,73,230,89,253,130,16,38,27,81,29,171,21,60,8,90,251,187,244,36,246, +108,251,67,0,71,2,124,2,98,254,197,242,242,232,113,231,248,233,147,240,232,251,74,5,209,5,207,3,71,7,107,12, +17,12,60,3,88,249,127,241,115,236,5,240,44,250,181,2,81,1,150,249,188,244,132,244,23,246,163,248,168,255,9,12, +64,28,142,42,198,43,108,24,12,250,150,227,12,220,61,223,35,232,61,241,46,247,59,0,47,11,74,14,25,10,151,2, +126,250,168,245,119,248,148,255,191,2,47,3,120,4,103,7,230,11,71,17,89,18,214,3,38,236,91,222,127,221,92,227, +83,238,9,254,89,12,147,24,194,37,26,43,42,30,92,4,209,239,67,232,220,231,9,232,140,230,23,228,119,231,161,243, +55,0,190,10,189,13,124,7,177,255,219,250,80,252,200,254,119,0,172,2,112,5,55,9,118,9,80,3,16,243,158,222, +10,211,202,214,0,231,228,248,207,8,111,21,244,28,78,32,202,29,39,22,3,9,247,247,246,234,76,230,180,232,235,236, +201,238,120,237,93,237,73,244,243,254,251,6,206,9,117,10,240,13,152,19,88,22,113,19,103,10,17,255,27,247,17,242, +83,241,244,242,210,244,161,248,33,253,86,4,62,12,92,17,153,18,135,17,232,17,90,19,19,21,130,20,136,15,137,6, +231,253,255,247,184,242,134,239,144,238,164,241,59,251,32,8,1,20,154,27,99,28,85,22,129,13,149,5,220,255,101,251, +137,246,79,244,161,245,249,248,254,252,19,254,35,253,238,249,245,248,183,255,219,8,61,18,120,23,46,22,49,18,216,12, +246,6,167,0,89,252,199,249,58,250,9,0,87,6,3,9,225,8,42,7,211,3,144,2,167,4,55,7,46,10,84,13, +127,15,21,15,54,12,44,9,183,3,4,251,177,244,202,243,66,246,208,249,145,0,128,7,189,9,186,10,118,10,78,7, +35,3,148,0,53,0,200,0,111,2,88,3,43,1,113,251,7,243,96,235,252,232,76,238,11,249,179,4,198,18,202,30, +31,30,62,19,81,5,181,247,154,234,83,228,69,233,158,242,201,254,27,10,176,15,204,13,109,6,175,0,193,251,210,246, +87,242,215,239,162,243,232,248,69,251,202,249,32,247,143,248,235,250,51,255,114,4,189,3,11,254,199,247,225,244,127,241, +95,240,213,248,140,5,8,17,42,20,61,12,75,254,193,237,213,223,192,217,127,221,126,234,169,254,234,19,94,31,56,27, +53,12,112,251,161,239,41,231,95,225,188,226,87,233,2,241,90,249,96,3,172,10,117,11,156,9,212,6,216,2,108,254, +93,250,228,247,204,246,61,248,11,253,78,0,4,255,96,249,54,241,246,235,114,239,180,252,236,10,252,19,52,22,189,17, +232,10,78,2,22,250,77,244,179,240,87,241,188,247,193,254,227,254,255,248,226,242,180,241,236,244,211,248,250,251,148,255, +223,5,108,15,36,27,178,33,164,26,11,8,152,245,30,235,3,230,239,227,29,232,148,246,20,12,123,30,147,40,95,41, +141,32,173,17,21,3,24,251,21,251,176,2,104,13,77,19,170,17,247,9,111,3,135,253,60,242,201,229,65,227,9,241, +253,6,0,27,144,38,202,40,73,38,245,31,45,20,64,2,254,238,128,226,128,226,32,236,30,247,167,252,155,251,175,249, +4,251,156,1,195,11,145,21,181,27,160,27,115,21,89,11,38,0,178,243,38,233,181,228,216,229,244,235,147,242,37,246, +210,247,91,249,185,254,13,8,57,17,221,21,241,20,151,18,254,15,34,13,81,8,112,255,68,244,92,232,230,222,105,221, +115,229,39,239,27,246,22,255,43,13,126,26,17,29,255,19,16,6,117,252,83,250,156,251,204,249,16,242,166,234,24,232, +28,233,24,234,174,236,92,244,16,0,36,11,91,16,73,18,73,19,181,17,174,12,231,6,195,5,111,10,240,13,170,6, +179,247,59,234,90,227,201,228,78,234,232,240,224,248,60,3,159,16,32,28,243,31,213,27,148,19,245,8,229,251,53,241, +124,234,191,228,214,225,215,229,246,238,204,246,156,250,13,250,4,248,19,250,69,3,169,15,195,22,197,21,30,16,56,8, +128,253,171,243,56,237,232,234,175,236,156,237,82,238,214,241,233,248,169,0,12,6,23,11,249,16,221,22,244,25,156,21, +21,7,128,246,192,236,215,232,173,231,90,230,92,230,42,235,207,243,82,252,69,2,243,6,234,12,211,18,187,19,63,15, +215,8,220,2,178,254,255,252,137,254,97,3,114,8,24,11,243,9,161,6,145,5,23,7,144,10,43,16,237,21,126,25, +220,28,155,31,154,28,19,21,195,13,152,8,141,2,238,250,214,246,116,246,31,247,244,252,126,9,37,20,182,23,152,20, +167,13,204,7,218,4,71,4,77,4,91,2,17,255,99,251,170,247,12,247,138,246,215,244,237,246,24,253,146,4,233,8, +212,9,83,8,221,3,38,255,32,253,44,253,252,252,119,253,11,254,215,252,50,250,225,246,248,242,243,238,225,236,149,239, +134,248,168,6,248,20,201,23,107,13,218,0,101,247,253,239,103,232,94,228,125,233,185,245,121,4,225,17,48,25,23,21, +54,7,38,250,24,242,84,237,59,236,151,239,52,247,13,254,188,4,47,13,182,15,232,7,19,251,120,241,127,237,21,238, +97,242,201,250,216,7,221,23,72,35,19,33,233,18,55,253,85,232,168,223,16,229,154,242,216,255,161,9,8,17,87,23, +199,25,193,19,209,6,251,247,118,238,225,237,187,243,203,249,91,249,73,244,149,241,190,245,205,252,235,254,73,252,208,248, +249,248,83,253,226,0,89,255,225,247,11,240,105,238,167,243,165,248,83,248,139,247,41,252,188,3,88,6,152,1,199,248, +56,243,107,245,167,253,185,9,234,20,89,27,91,26,186,19,91,10,84,253,84,240,251,230,119,229,97,239,98,1,124,18, +7,25,201,21,146,14,220,6,137,0,127,250,48,243,156,237,31,240,209,249,235,2,4,6,57,3,185,251,186,243,16,242, +192,245,160,250,123,253,189,0,100,8,139,15,3,18,17,14,181,6,237,3,87,8,44,16,124,22,195,23,123,17,235,7, +109,0,21,252,147,250,123,249,10,250,36,254,142,6,95,17,119,23,223,20,41,10,222,250,198,235,206,223,244,215,35,214, +234,221,53,243,197,17,218,39,183,39,203,18,83,248,229,229,213,220,164,221,185,230,227,246,213,13,95,37,84,52,180,50, +229,32,46,6,67,240,27,234,226,239,179,249,144,2,48,10,157,18,21,26,105,28,91,20,207,255,217,233,135,227,227,236, +49,249,238,3,6,15,32,23,92,24,179,19,63,9,250,247,94,225,41,208,115,209,217,226,146,245,247,253,4,254,103,255, +102,6,250,12,120,12,94,7,193,0,196,252,17,0,211,4,3,2,93,246,197,233,210,229,46,236,160,246,133,253,161,0, +136,5,234,14,204,27,230,38,107,40,81,30,53,14,117,255,204,246,163,243,97,238,2,228,181,221,249,224,244,234,240,248, +55,7,84,17,77,21,52,21,99,20,17,18,247,8,116,249,42,238,213,234,37,234,54,234,230,232,76,230,85,229,58,231, +21,239,7,251,44,5,4,13,184,21,154,33,86,42,122,39,184,27,180,12,140,251,249,233,65,222,123,222,8,231,202,238, +32,246,93,4,53,22,168,31,45,29,253,21,143,16,204,11,217,6,195,4,20,4,193,255,218,245,171,234,160,228,15,226, +148,221,186,217,67,222,155,235,137,249,247,4,51,15,181,22,17,28,110,30,58,27,46,19,202,5,84,243,191,222,43,207, +47,206,21,218,78,234,200,250,108,10,117,25,155,37,59,44,204,43,75,34,246,18,30,4,98,250,251,246,118,246,147,244, +77,240,94,236,218,234,73,236,45,239,111,240,254,242,186,251,132,10,67,25,145,31,242,28,160,19,28,5,237,246,42,237, +161,231,157,226,136,222,62,225,229,235,81,251,106,9,224,17,159,22,183,26,113,32,137,37,157,36,3,28,42,16,127,9, +249,9,219,10,144,5,194,251,1,246,187,246,65,249,140,251,206,255,103,8,24,20,178,30,49,35,46,31,94,20,158,5, +242,246,48,236,245,230,195,230,228,232,162,234,27,236,143,240,42,250,226,4,67,9,250,6,162,6,201,12,108,20,141,23, +50,21,8,15,120,6,186,253,146,247,105,245,237,244,54,243,21,244,120,252,72,9,102,17,23,16,83,10,44,5,153,0, +40,252,106,249,18,248,31,244,204,237,122,233,127,233,157,236,26,239,134,241,58,247,31,255,183,4,118,5,95,3,114,255, +247,249,22,247,194,249,5,0,113,4,195,4,177,4,38,6,154,7,86,6,53,2,60,254,4,252,242,252,187,0,204,5, +35,10,246,10,135,9,64,7,39,3,166,252,104,245,57,241,231,242,224,251,89,7,140,13,138,12,75,6,28,255,29,249, +73,243,108,238,19,235,0,235,57,241,33,252,58,7,65,15,37,19,36,18,53,13,140,7,231,0,17,250,135,245,250,243, +127,246,67,251,66,255,23,0,249,253,47,252,151,252,27,0,68,5,102,9,111,9,253,4,128,0,49,254,243,253,29,254, +153,252,82,249,44,245,176,241,176,238,94,235,241,233,55,238,113,248,90,4,113,12,45,13,129,7,105,255,1,248,177,242, +114,240,89,242,67,250,106,6,194,16,52,20,74,14,223,3,44,252,171,249,91,253,126,6,155,18,74,30,53,39,144,43, +101,40,171,29,13,15,31,2,195,251,242,252,180,2,102,8,138,10,138,8,20,4,17,255,132,250,162,246,91,243,33,242, +227,247,252,3,105,14,26,19,45,15,211,3,206,248,216,240,132,234,153,229,129,227,197,230,226,240,20,255,47,11,127,17, +186,19,209,21,87,24,152,25,32,23,235,16,223,10,220,6,24,5,1,2,41,249,128,236,133,223,0,214,214,213,2,227, +189,250,99,22,174,46,20,57,215,46,207,22,174,253,171,230,50,208,105,192,176,191,204,206,161,231,231,1,205,20,82,28, +125,26,105,19,134,14,5,13,69,8,9,3,110,4,138,12,88,24,209,32,148,30,199,13,92,240,28,214,167,205,234,212, +63,230,103,0,46,30,94,54,206,69,32,72,2,51,144,8,136,220,87,196,132,196,234,207,8,217,170,221,63,229,252,243, +75,3,117,11,192,12,142,7,147,253,166,252,125,7,116,9,5,252,67,239,75,234,110,234,55,239,220,244,183,243,221,232, +207,223,176,230,74,249,33,11,40,26,68,38,21,43,182,44,202,42,243,27,128,255,141,220,49,195,127,191,128,208,24,235, +45,254,109,9,201,18,17,25,208,28,56,25,104,7,160,239,96,229,114,233,4,239,191,242,141,242,18,239,251,235,185,232, +149,229,235,224,111,216,24,213,228,223,163,248,144,24,248,46,15,53,217,46,66,30,82,8,184,242,9,227,225,214,26,207, +36,218,241,249,46,26,24,41,244,42,169,39,141,33,159,27,81,22,45,16,157,4,20,249,242,248,144,255,116,3,226,253, +13,238,185,224,164,222,104,225,57,227,244,232,231,243,211,1,98,20,203,38,60,49,136,43,71,20,218,249,18,229,183,216, +31,218,10,225,117,229,79,236,109,252,50,18,62,32,241,37,107,36,187,29,134,25,78,22,178,18,19,10,111,252,10,240, +207,232,175,233,224,237,26,243,241,247,236,250,54,0,35,8,149,16,117,22,248,22,50,23,171,24,40,22,96,15,10,5, +92,248,51,236,3,230,134,232,194,240,156,252,242,7,168,16,13,25,119,34,127,40,172,37,176,29,109,22,196,17,4,18, +14,17,151,7,135,251,91,244,206,246,181,250,32,250,83,252,186,1,143,10,150,21,227,32,53,39,2,37,91,29,147,16, +127,4,242,252,222,247,44,240,101,230,203,224,244,226,144,237,13,250,47,3,233,5,237,5,145,10,175,17,2,20,84,15, +95,6,46,251,223,243,120,241,54,240,98,238,99,236,158,237,29,247,82,8,27,18,146,15,168,8,203,4,162,7,42,11, +19,14,89,16,82,14,32,9,161,4,78,0,122,249,116,240,5,231,44,226,228,230,46,244,66,0,160,5,227,7,123,9, +195,10,166,10,63,8,254,255,243,242,67,233,149,231,2,236,160,239,110,240,202,242,35,249,254,1,66,9,191,10,242,6, +199,1,63,255,44,2,62,9,184,13,218,10,122,6,139,6,200,8,151,5,153,250,144,239,195,233,7,235,89,243,16,254, +184,4,213,5,85,5,19,6,98,6,209,1,94,248,132,238,201,232,184,231,77,235,55,242,175,247,42,249,120,247,53,247, +158,248,11,248,33,243,196,235,149,233,85,241,170,255,207,11,253,16,238,13,90,5,227,250,38,241,121,233,39,226,41,224, +224,229,130,240,86,252,141,5,40,8,23,4,165,2,229,1,138,253,134,249,202,247,91,249,166,252,70,2,34,7,151,6, +253,2,212,254,242,252,239,251,42,251,98,253,177,1,60,9,31,16,108,20,153,22,4,19,142,11,132,1,81,252,23,253, +178,252,214,251,78,252,143,255,244,0,165,0,60,0,45,0,216,2,254,3,38,5,91,8,252,10,114,9,183,3,80,254, +62,252,247,251,13,249,33,245,115,243,212,244,144,247,114,251,219,255,88,3,193,6,17,7,7,4,44,0,147,254,165,253, +224,250,217,251,146,255,153,1,205,0,105,252,141,246,158,240,81,237,23,240,194,247,183,1,26,12,70,21,225,24,6,21, +151,13,242,4,187,253,243,249,117,249,208,251,23,0,73,4,98,6,250,5,242,1,207,252,65,251,103,253,4,0,14,3, +95,8,155,13,92,16,24,15,164,9,158,2,138,252,53,247,39,244,242,245,147,249,226,254,74,6,194,10,197,10,59,9, +118,7,66,5,208,4,51,6,231,5,193,5,172,7,188,5,17,254,11,246,41,240,197,235,234,233,184,237,219,245,100,254, +43,6,99,10,243,9,1,7,240,1,195,251,135,247,22,247,213,246,146,243,102,241,202,242,128,245,245,248,205,254,166,7, +93,15,242,16,52,13,47,8,127,3,169,255,85,255,56,3,32,8,5,11,244,10,189,8,140,4,88,254,173,248,30,248, +66,254,56,7,229,16,42,25,53,26,168,20,145,13,246,6,61,0,249,248,41,245,204,246,164,251,30,2,13,8,104,11, +86,10,200,6,180,4,31,3,14,2,104,2,126,3,87,6,243,10,254,14,85,15,79,11,187,4,79,254,105,251,250,251, +7,254,97,0,88,3,122,7,191,10,234,11,9,10,60,5,121,255,200,250,74,250,163,251,255,250,91,249,81,247,153,246, +43,247,89,247,226,246,33,246,233,248,214,255,74,7,114,12,152,12,184,8,179,3,205,255,245,253,13,253,99,253,37,0, +215,5,204,12,175,17,20,19,133,18,183,17,124,15,224,12,132,12,229,13,103,14,129,11,216,8,101,8,112,6,145,3, +158,255,11,251,219,249,154,251,188,253,101,255,115,1,14,4,87,6,45,7,145,4,237,255,118,250,131,244,2,240,66,236, +113,234,28,236,46,239,69,242,42,245,123,248,156,251,84,253,187,253,165,253,218,254,61,0,2,0,126,254,104,251,224,246, +218,241,20,238,116,236,8,237,75,240,230,245,199,253,217,5,100,11,114,14,253,13,131,9,94,3,34,254,103,249,200,242, +4,235,61,229,180,227,229,229,16,234,97,238,163,240,242,242,184,246,186,249,149,252,218,254,84,0,139,2,251,3,175,3, +179,0,235,249,39,241,82,232,242,225,160,224,193,228,177,237,168,249,4,6,242,15,220,21,157,24,235,24,191,21,154,13, +81,2,62,249,53,243,29,238,119,235,172,235,49,238,123,243,219,249,139,255,231,3,204,7,170,11,118,13,5,14,179,14, +196,13,123,10,31,4,101,250,143,239,137,230,247,224,95,222,144,223,232,230,119,243,190,1,77,14,10,23,101,27,54,26, +14,20,42,12,20,3,36,248,210,237,141,230,134,226,198,225,170,227,34,231,35,239,254,254,153,17,88,30,201,33,173,28, +31,18,56,7,233,254,13,248,33,243,105,243,221,248,239,255,73,5,124,6,204,1,187,249,101,246,249,252,186,10,216,25, +5,37,247,40,48,38,132,31,12,21,239,4,138,242,12,229,205,225,80,234,169,249,142,8,66,20,223,28,19,34,213,35, +195,33,73,25,148,11,86,1,236,255,130,4,0,10,94,12,26,11,228,7,15,5,23,4,121,1,12,253,98,253,244,3, +213,13,33,23,50,26,110,20,208,7,70,251,116,244,183,240,52,237,37,235,163,235,23,239,15,246,140,255,179,7,162,12, +76,15,126,15,26,13,222,7,86,254,67,241,75,230,50,228,79,236,122,250,203,9,223,21,54,26,166,22,169,14,80,4, +74,251,179,246,222,245,187,248,251,254,209,5,141,9,119,7,212,254,41,243,173,234,204,232,126,238,34,249,115,4,117,15, +105,24,217,29,21,31,35,25,75,10,50,246,59,230,61,224,88,227,211,236,150,247,212,0,161,9,228,18,93,26,249,26, +252,18,44,5,81,248,155,242,88,243,29,246,33,247,50,247,94,248,189,250,140,253,35,252,28,245,125,237,185,234,246,240, +6,254,146,11,153,22,133,30,166,32,46,26,230,11,48,247,198,224,14,208,101,201,80,207,193,223,190,244,37,8,133,22, +9,32,96,34,73,27,202,11,81,248,107,233,213,227,132,230,99,237,117,242,228,241,51,237,138,233,88,232,83,232,31,233, +44,236,195,245,125,5,5,22,35,33,86,33,16,23,210,6,253,246,93,235,29,226,96,219,45,219,225,228,77,246,243,8, +198,22,253,28,112,30,217,29,17,28,102,25,58,20,108,13,1,7,207,2,87,1,50,255,62,251,215,246,226,243,250,244, +242,250,155,4,135,14,172,22,39,29,195,33,162,34,254,28,83,17,202,0,197,239,124,228,5,223,76,223,223,228,215,237, +113,249,179,4,241,12,216,16,204,15,33,11,57,6,16,3,206,0,123,255,106,253,184,249,185,246,143,244,179,242,164,241, +6,243,67,248,187,255,5,7,11,13,39,17,17,19,139,19,27,18,33,14,168,8,185,2,218,253,3,250,141,246,203,244, +108,244,157,245,65,250,36,0,230,4,81,9,201,12,47,15,30,16,210,13,109,9,52,4,251,254,70,252,166,251,187,250, +104,250,134,251,47,253,161,255,83,3,147,7,147,10,246,12,170,15,150,17,117,19,110,18,110,11,2,2,62,250,253,245, +134,243,182,241,252,241,122,243,230,244,197,245,250,245,247,246,114,252,20,7,32,18,41,25,192,23,129,12,79,251,228,232, +174,218,217,212,253,215,157,226,2,242,146,1,146,12,143,15,124,9,39,254,111,243,22,239,239,242,81,250,238,255,151,0, +162,253,107,251,211,248,90,243,62,238,207,235,91,236,217,240,106,247,154,255,81,10,246,21,202,32,243,39,244,38,243,26, +13,7,24,242,41,226,42,219,230,220,30,230,205,244,157,4,45,17,93,23,213,21,155,13,254,2,47,251,148,249,49,252, +29,253,217,249,177,242,62,233,178,224,161,220,204,223,244,235,244,254,205,15,229,23,84,24,67,21,149,17,117,12,142,5, +83,255,212,251,51,251,85,254,225,5,5,13,205,12,6,7,89,4,43,5,74,6,219,8,218,11,19,14,116,14,241,12, +81,12,163,9,25,253,17,233,237,218,180,216,135,223,11,237,130,254,192,16,249,31,43,39,199,33,146,14,81,243,251,220, +121,216,51,231,182,252,117,11,223,16,143,18,249,22,214,27,23,23,57,8,94,249,69,244,244,251,154,11,166,24,111,24, +185,12,54,1,166,254,232,3,179,7,33,3,3,246,236,232,74,230,254,238,130,254,29,16,41,31,9,40,123,43,6,41, +1,23,25,243,246,206,16,191,94,201,151,227,59,253,50,17,163,34,64,44,116,39,65,22,182,254,251,233,1,226,18,232, +35,246,102,4,78,10,67,8,147,3,119,251,101,241,16,235,139,234,6,237,65,240,156,247,174,7,195,29,220,48,226,57, +240,52,242,32,138,3,93,230,175,210,172,206,181,216,28,233,165,249,238,8,17,21,152,26,59,24,194,14,206,3,67,252, +91,249,235,252,210,3,9,6,180,0,119,248,46,241,95,237,93,235,233,228,231,220,97,219,84,225,60,234,130,248,191,19, +41,56,85,85,243,88,185,60,54,11,254,217,50,185,122,171,137,174,23,191,125,222,162,11,12,58,206,86,183,83,118,52, +180,12,59,240,105,229,95,235,84,251,67,8,174,10,228,3,16,252,192,244,206,231,248,212,229,198,114,204,250,231,154,12, +18,43,94,62,179,70,252,66,240,48,196,13,171,223,240,180,109,157,175,162,78,192,101,229,215,1,187,18,111,30,31,43, +73,49,142,37,63,13,159,249,50,246,40,0,161,13,220,16,223,5,44,245,77,231,170,227,26,233,194,239,86,240,67,241, +22,0,58,27,47,58,174,77,149,71,188,44,81,12,193,244,95,232,123,216,248,190,103,176,98,189,98,221,115,252,18,10, +224,8,243,12,78,30,171,45,156,46,214,32,186,7,102,236,239,219,133,219,89,228,246,236,151,235,166,230,248,237,27,253, +49,9,144,12,0,11,168,14,242,26,92,42,181,48,27,40,194,17,214,249,64,236,33,229,230,225,177,222,243,215,47,213, +96,221,176,234,2,250,116,18,241,42,41,56,216,60,159,52,31,25,5,245,8,218,254,206,131,209,121,216,251,222,255,231, +179,242,194,251,60,2,19,8,4,14,54,21,78,24,193,19,145,18,167,21,2,19,36,6,193,243,188,228,15,222,72,221, +74,218,16,213,95,212,29,227,156,4,146,44,185,74,8,81,30,64,242,29,95,247,5,221,223,208,81,208,108,211,189,216, +37,231,166,254,233,20,82,28,255,18,40,1,232,249,172,0,103,8,225,12,105,10,150,6,50,6,145,6,79,3,172,249, +33,236,198,219,99,214,187,225,141,245,94,13,10,33,190,46,144,53,57,52,179,43,249,25,171,1,167,238,43,236,220,241, +81,247,43,255,103,8,107,15,250,16,73,16,170,13,50,7,64,255,211,248,253,250,74,5,97,13,211,8,191,247,228,230, +229,222,232,220,197,218,55,223,201,241,35,12,162,37,112,49,224,39,244,16,163,251,244,241,6,242,72,250,252,9,163,25, +59,31,181,25,40,17,9,8,157,0,47,252,6,252,130,5,140,19,200,28,27,25,181,9,106,251,2,244,143,242,210,242, +79,242,65,242,244,245,242,255,151,11,93,21,80,26,99,23,180,12,187,254,57,243,63,234,124,232,98,240,7,253,86,10, +62,18,40,19,3,15,70,7,89,254,82,248,115,247,139,250,209,2,202,12,123,16,74,9,182,249,12,234,2,226,85,229, +108,239,8,251,104,3,51,6,30,7,220,6,230,7,83,10,202,9,76,4,251,251,73,245,89,239,245,234,16,232,135,232, +224,243,141,6,160,21,234,24,204,16,236,4,202,252,100,249,93,247,46,250,107,1,243,6,9,8,212,2,133,247,215,232, +255,220,122,216,66,223,157,244,194,16,76,40,11,52,228,47,57,29,164,3,171,236,147,221,208,213,222,213,144,224,159,242, +69,5,238,18,24,24,139,19,66,7,120,251,59,245,121,245,173,252,76,5,156,10,19,11,180,5,81,253,144,244,203,235, +79,227,162,219,222,218,53,233,132,3,148,29,165,44,75,45,208,34,25,17,233,251,29,233,235,221,237,219,3,225,92,232, +46,239,169,244,194,248,172,252,119,255,186,1,219,3,241,5,71,10,173,13,123,12,236,7,175,2,60,253,72,245,179,236, +72,232,25,235,68,244,26,0,110,13,169,27,98,39,167,45,69,45,243,35,106,18,211,254,37,240,120,234,171,237,180,245, +47,252,80,255,71,0,201,253,197,248,168,244,102,245,228,252,158,8,3,21,213,29,154,30,209,22,74,8,91,244,183,224, +197,213,205,214,248,224,108,239,159,255,223,14,253,25,213,30,165,26,103,16,187,7,58,4,145,5,237,6,245,3,6,255, +29,250,102,245,109,242,200,241,133,244,240,250,39,3,164,12,145,22,40,30,225,32,156,29,5,22,249,13,131,7,149,0, +26,246,169,232,127,221,147,219,60,229,60,245,178,4,255,14,158,17,25,14,205,8,181,4,26,2,146,255,66,252,151,249, +101,249,225,249,67,247,147,241,69,236,71,234,200,236,246,243,218,255,225,14,4,29,232,37,69,39,100,33,2,22,58,7, +243,246,150,232,167,224,85,225,33,234,30,248,254,5,23,15,178,17,125,14,151,7,145,254,45,246,247,242,24,246,185,251, +5,253,157,247,245,239,31,233,109,227,76,224,246,224,109,228,38,235,76,247,211,8,230,25,40,33,213,28,45,19,4,10, +217,1,107,249,178,241,49,235,130,232,159,236,32,247,89,3,191,11,99,15,6,15,157,12,7,9,9,4,93,254,201,247, +47,241,217,236,192,236,126,238,246,238,133,237,197,234,88,234,176,236,15,240,27,244,99,249,4,1,142,9,160,14,70,12, +130,4,165,249,146,238,171,233,5,236,176,243,120,254,185,8,67,15,48,17,37,16,70,14,201,12,222,11,136,11,182,10, +20,10,136,9,106,7,82,4,58,1,234,0,210,2,20,5,132,7,210,7,77,6,49,4,91,3,185,3,84,2,111,254, +8,249,62,246,155,247,114,249,36,248,143,244,215,243,45,248,121,255,47,6,225,9,207,9,79,7,179,5,111,6,160,7, +19,7,80,6,93,8,171,14,53,23,254,28,240,27,104,20,177,11,206,6,216,7,54,11,54,12,1,10,162,6,121,6, +21,7,170,4,123,255,183,248,182,245,130,249,181,1,6,9,3,13,217,13,54,12,127,11,251,10,89,7,123,255,226,246, +120,242,252,243,252,250,233,2,248,8,202,12,133,14,117,12,168,4,162,249,70,237,100,229,86,231,222,244,130,12,98,36, +126,50,32,46,78,24,208,252,136,230,155,218,68,213,180,216,195,235,157,11,222,46,217,71,9,73,108,48,146,10,220,231, +124,211,101,205,151,209,148,224,4,248,64,18,47,37,226,38,217,22,198,251,42,224,219,205,128,203,47,216,217,235,42,2, +94,29,86,57,121,71,65,60,47,22,14,228,46,188,97,171,23,182,4,212,231,247,82,27,121,58,125,80,248,81,246,53, +228,2,46,209,183,187,75,198,178,226,46,254,120,12,114,17,192,20,9,22,179,14,39,249,142,217,105,193,18,193,179,215, +25,250,122,28,38,54,64,65,197,58,103,34,190,250,11,204,115,161,8,142,27,163,119,217,172,22,40,64,13,75,22,62, +3,38,223,10,14,241,61,221,65,210,5,215,141,239,62,17,194,41,83,43,54,24,170,255,68,239,115,232,171,231,127,234, +66,239,35,251,31,15,147,36,13,49,144,40,151,12,223,233,143,207,53,197,98,199,148,210,210,228,63,250,135,11,17,19, +147,14,142,0,65,241,243,232,203,235,188,244,188,252,222,254,209,253,185,1,103,7,161,9,107,4,9,248,123,238,173,237, +57,246,158,4,145,19,241,30,254,36,161,39,251,35,133,20,77,250,218,221,17,203,101,206,202,236,222,25,110,60,205,63, +166,39,39,9,190,242,201,229,211,221,151,218,94,228,81,1,233,38,208,63,89,61,93,33,249,253,208,231,205,229,1,241, +41,0,252,10,67,16,166,23,1,30,68,24,244,5,16,237,150,217,4,217,86,234,104,0,28,15,146,22,117,28,21,33, +18,30,133,7,162,225,103,194,149,189,171,215,18,253,45,23,88,31,104,28,189,21,111,15,201,9,167,249,123,228,49,223, +39,240,180,12,140,29,142,23,62,5,59,247,163,244,7,251,49,3,148,254,18,238,78,225,208,226,32,243,197,8,30,27, +158,35,130,32,9,20,73,3,209,239,18,212,136,189,196,194,120,229,249,19,131,53,93,57,121,35,78,7,153,241,86,229, +87,225,21,228,193,240,93,7,215,31,219,45,200,42,196,21,183,244,247,213,232,197,124,204,195,228,56,0,65,21,77,33, +49,39,239,39,103,31,32,10,38,241,226,223,171,218,106,229,193,248,197,7,132,11,204,6,76,2,77,255,50,255,157,255, +82,251,138,247,40,249,208,253,212,255,127,253,156,252,27,1,180,5,27,3,42,248,112,232,197,218,102,214,88,226,32,252, +95,19,189,30,223,33,161,33,175,29,184,20,113,7,121,243,150,221,117,211,182,220,6,244,208,8,27,17,102,18,38,21, +55,25,209,20,112,4,253,239,5,225,188,225,68,244,252,10,120,22,2,17,144,253,106,231,48,219,43,219,181,226,199,238, +69,254,37,16,188,32,166,41,102,37,47,20,113,0,32,247,178,248,236,250,111,247,207,241,26,242,142,253,31,17,103,34, +156,40,148,33,12,20,169,10,243,7,26,7,140,3,237,254,65,255,108,5,194,11,147,11,118,2,130,245,255,238,208,240, +32,245,244,252,97,7,4,15,24,22,99,30,77,32,219,22,64,5,67,239,103,220,80,214,158,224,87,245,233,8,171,22, +201,29,1,30,133,22,120,6,192,247,229,244,169,254,231,15,203,31,219,37,116,31,120,18,228,4,125,250,3,246,189,245, +109,248,78,255,57,10,141,20,150,25,87,26,223,22,171,12,39,0,174,247,232,240,105,235,77,235,66,240,132,250,35,7, +211,13,159,12,53,5,244,249,109,242,11,243,66,249,241,1,167,10,223,15,103,14,205,8,177,3,40,254,136,245,242,235, +143,228,66,223,2,222,151,227,155,243,170,14,16,42,41,58,102,56,202,37,174,8,157,231,28,207,190,199,253,207,53,226, +70,248,176,13,10,28,251,30,201,23,54,13,188,5,166,1,200,254,57,250,129,245,163,241,163,237,71,239,19,247,21,253, +249,251,54,244,145,235,175,230,105,230,14,237,217,254,160,23,76,42,252,46,1,35,69,8,209,234,231,213,134,205,195,208, +62,218,122,230,26,246,129,10,17,30,108,39,12,39,222,30,64,12,0,241,133,213,105,194,220,185,68,193,186,223,48,13, +203,51,150,60,98,36,117,255,0,223,236,199,173,191,66,205,18,239,84,26,32,65,29,84,53,73,231,34,156,240,189,202, +49,191,180,197,17,213,114,236,35,8,242,35,192,59,155,69,115,55,5,18,4,226,34,187,125,176,247,194,104,227,247,8, +23,48,30,76,128,73,157,35,199,237,36,194,196,176,248,187,155,219,118,255,49,27,133,44,34,54,86,57,162,44,255,11, +119,228,183,198,221,189,199,201,87,226,243,249,243,8,168,20,164,31,175,36,124,24,228,246,152,208,53,193,217,214,15,2, +44,40,36,56,109,48,211,25,150,252,138,227,55,214,63,210,139,213,67,230,124,8,96,42,48,55,18,50,117,39,235,29, +140,16,195,247,112,217,67,194,130,192,228,215,205,252,199,34,83,58,5,58,140,36,222,1,59,224,230,206,146,216,161,247, +185,25,214,47,192,52,70,45,247,28,4,5,54,235,146,218,204,212,113,213,100,226,191,251,192,23,132,40,222,39,209,30, +227,19,49,6,205,239,103,213,146,197,152,203,143,234,35,17,60,44,243,49,245,30,40,253,73,224,236,214,137,221,128,237, +106,1,87,25,104,51,25,60,49,47,233,25,255,2,172,237,12,225,79,223,50,222,53,224,91,241,102,17,70,50,192,61, +220,46,58,21,20,251,132,226,130,213,15,220,180,236,129,251,74,9,171,24,26,30,99,14,21,243,154,225,17,229,44,247, +144,8,208,15,48,20,206,28,47,39,154,46,75,42,54,17,248,234,125,209,121,207,41,220,70,238,153,1,178,24,141,44, +115,51,59,44,253,23,11,251,248,225,50,222,216,238,161,4,176,15,92,11,184,2,174,253,201,255,3,2,212,253,174,246, +17,241,9,244,21,251,213,3,104,14,221,19,96,21,158,19,175,12,94,251,171,226,171,210,104,213,48,234,206,4,129,27, +153,39,235,37,203,31,198,29,114,30,216,21,61,4,127,247,113,243,64,245,94,249,111,1,58,11,231,14,202,13,35,9, +29,254,103,237,85,222,40,218,55,230,89,255,148,21,49,29,129,23,164,8,223,244,132,223,87,204,90,192,137,193,150,211, +118,242,158,20,19,46,204,56,153,53,168,36,35,10,252,238,115,220,172,215,210,225,107,249,184,19,196,35,141,35,195,20, +169,254,83,233,94,223,84,227,88,238,199,254,176,17,97,29,112,26,12,11,45,247,22,229,168,214,46,203,159,199,228,207, +37,226,18,253,214,25,143,46,45,53,171,45,169,27,82,0,125,227,200,209,124,207,182,218,240,238,171,5,223,24,173,33, +190,25,63,7,59,246,53,237,48,240,41,250,136,6,234,20,244,31,36,35,18,27,226,9,99,245,79,229,122,222,110,222, +224,230,123,244,183,7,44,35,3,55,70,54,231,34,187,7,168,234,210,208,61,197,59,200,214,214,215,235,139,0,119,16, +234,20,184,10,14,243,1,217,223,200,117,203,56,229,109,13,195,52,18,73,148,68,115,45,108,10,54,229,208,197,223,184, +103,199,186,236,60,27,176,66,93,89,188,87,149,65,222,36,135,6,233,232,8,213,171,211,227,225,145,244,189,4,206,16, +128,21,148,13,100,251,175,232,144,222,91,226,42,246,2,23,173,57,94,78,142,73,159,42,136,252,219,207,245,180,57,181, +102,201,204,231,84,11,57,42,148,63,45,70,151,57,183,32,53,7,126,244,92,230,60,222,188,222,111,231,109,248,52,9, +61,17,179,13,170,255,13,234,132,216,217,217,190,235,158,7,175,38,145,64,191,73,166,53,60,12,27,226,66,197,51,179, +188,172,237,189,34,226,1,10,221,38,225,52,10,54,93,42,250,25,228,4,190,236,186,218,36,212,66,221,9,237,193,247, +224,249,240,247,210,245,21,239,172,234,244,239,125,255,53,22,0,41,142,53,208,57,51,46,24,18,204,239,35,216,89,205, +203,200,31,203,251,214,17,237,52,7,121,28,151,39,15,40,141,35,50,28,212,14,163,251,75,232,153,221,116,223,49,233, +89,244,49,250,144,246,27,242,63,245,29,254,177,8,117,13,138,14,119,20,59,30,250,37,79,32,80,9,127,234,218,209, +7,198,199,190,13,187,15,194,151,216,28,252,195,28,100,49,76,57,228,50,26,32,197,8,62,248,226,237,244,226,211,218, +95,219,74,228,173,240,2,251,205,254,36,1,105,10,150,24,47,36,0,36,243,24,245,13,196,8,87,6,247,251,118,231, +133,211,73,204,152,211,217,219,228,224,26,235,8,249,56,8,84,27,110,45,96,52,86,40,211,16,63,2,146,254,249,248, +31,236,63,223,14,224,14,238,139,255,188,14,130,21,180,20,1,19,149,21,135,28,207,28,149,18,178,7,133,2,155,3, +175,3,68,254,26,243,30,227,67,219,253,225,9,244,74,9,132,25,189,45,186,70,230,82,17,70,21,37,9,2,26,233, +131,221,208,222,42,233,87,244,153,249,79,252,24,1,116,6,216,7,244,5,120,4,143,7,114,18,186,29,136,34,65,29, +167,16,208,6,231,254,142,243,136,227,59,217,41,224,195,244,148,14,44,36,56,50,218,54,65,48,50,33,161,12,205,247, +177,228,116,216,23,216,68,223,218,230,80,235,5,239,198,243,152,253,34,11,191,19,164,19,88,13,121,8,30,8,197,10, +233,11,78,8,155,2,230,252,124,246,11,237,214,228,193,226,247,233,181,252,80,20,188,40,255,48,248,41,104,26,100,8, +160,246,207,228,58,215,127,210,197,214,226,227,128,245,164,6,77,20,154,27,228,27,7,22,202,10,84,0,45,254,136,1, +41,5,4,8,249,9,14,9,57,3,145,251,142,245,148,244,14,248,20,253,88,6,236,17,114,25,100,25,226,17,212,5, +107,250,100,243,39,238,139,232,100,226,47,223,181,228,78,242,163,0,184,10,2,18,64,20,50,16,88,6,167,246,90,233, +185,227,233,228,204,236,44,248,196,0,164,3,95,2,26,254,238,246,30,239,32,235,92,236,170,242,132,252,18,7,108,18, +63,27,158,27,103,19,24,5,159,240,151,218,7,207,24,213,166,233,135,5,153,30,180,42,112,43,228,35,200,17,242,249, +10,229,44,217,204,218,73,235,135,255,142,8,249,4,14,249,192,236,244,231,18,232,153,231,192,229,242,230,194,241,32,7, +7,29,243,37,77,30,123,12,249,246,117,226,40,213,77,210,70,218,91,239,73,15,93,48,82,68,178,65,122,45,245,18, +103,254,60,245,201,241,107,240,112,241,156,246,188,0,78,8,31,3,165,242,255,225,191,216,229,213,79,214,67,218,82,225, +218,239,65,9,37,38,224,58,240,55,81,26,66,244,199,216,121,204,242,203,189,216,12,242,45,20,241,59,170,90,106,94, +34,68,125,25,117,247,100,236,135,240,34,249,184,0,74,7,37,14,231,16,0,10,98,248,64,227,21,213,71,215,185,236, +150,11,191,38,17,58,212,69,25,67,81,42,41,255,12,209,28,176,175,165,134,182,64,221,7,9,232,38,252,46,164,38, +217,19,49,253,56,237,235,233,94,241,193,253,228,10,235,20,132,19,45,4,42,241,39,232,57,236,96,244,67,250,39,2, +128,19,31,41,94,55,73,58,173,50,137,35,245,13,94,244,196,220,44,205,114,198,245,199,113,215,125,238,22,255,236,8, +176,16,185,21,128,18,119,6,113,245,27,227,106,217,195,223,225,241,43,4,133,12,53,12,138,9,99,4,224,248,184,235, +143,234,201,252,187,28,92,58,75,71,85,63,134,39,40,9,252,235,30,216,153,207,47,208,208,218,240,238,162,4,113,15, +155,13,218,5,94,255,78,253,205,251,194,249,195,249,81,252,117,255,147,1,201,254,14,246,155,236,179,229,158,228,202,234, +44,246,205,3,129,16,5,25,9,28,103,28,167,26,80,21,203,10,2,252,28,239,49,230,70,220,102,210,126,210,154,225, +204,252,232,24,241,42,79,50,182,47,223,34,64,15,133,251,54,234,55,221,12,220,34,230,107,242,226,249,142,251,39,250, +100,245,168,238,97,234,91,238,218,252,106,14,136,28,27,33,9,23,33,3,47,239,110,228,83,226,24,225,131,224,39,234, +114,254,154,17,246,32,26,44,49,47,26,41,237,28,224,16,95,6,36,252,61,241,100,236,43,243,95,253,209,2,55,2, +39,255,57,251,182,247,21,250,135,1,160,7,222,11,42,18,122,26,207,32,66,32,139,22,159,4,231,237,234,216,119,208, +103,219,45,242,156,11,83,37,22,60,7,70,42,57,42,25,210,247,233,230,173,231,63,242,148,255,132,6,124,4,150,255, +215,251,247,246,254,239,187,236,63,242,206,254,165,13,205,23,6,23,68,12,182,252,196,238,96,234,151,243,85,2,208,10, +253,10,94,7,255,2,153,253,81,248,12,246,167,251,83,12,236,37,44,63,168,67,60,43,19,6,16,233,51,223,149,226, +203,232,229,239,130,248,158,0,24,5,114,3,43,250,50,238,174,232,195,235,116,245,207,0,153,8,46,15,7,22,240,25, +213,20,160,2,251,231,104,209,240,204,252,221,118,252,14,26,48,42,234,42,27,36,132,26,123,12,180,254,40,246,141,245, +42,250,175,250,23,246,9,242,182,243,80,249,88,1,140,10,172,12,78,5,47,248,55,236,10,234,88,246,111,12,235,32, +115,38,156,19,118,243,240,215,154,199,22,194,61,197,235,211,192,237,3,7,162,20,243,21,242,14,175,3,163,251,154,250, +77,251,212,249,64,251,140,5,81,17,88,17,55,6,134,250,76,244,150,241,138,242,195,251,135,13,112,33,192,43,227,37, +228,19,176,252,202,230,145,217,214,215,251,219,25,225,224,230,203,235,50,234,62,226,237,222,188,232,248,252,118,17,101,30, +146,34,128,32,18,25,41,12,221,252,58,239,238,230,147,232,239,245,59,6,4,17,241,22,38,25,199,22,136,14,86,3, +217,251,183,252,112,1,161,2,136,0,64,251,150,241,192,229,85,221,199,218,69,222,72,231,72,239,252,242,207,243,56,244, +249,249,200,10,42,34,116,48,213,43,94,22,107,248,67,220,245,201,225,197,78,211,30,242,125,26,232,62,166,78,65,66, +179,35,255,5,71,247,154,246,233,250,81,0,185,8,56,18,27,21,142,10,209,243,133,220,61,208,30,211,120,231,156,9, +158,45,30,75,2,89,252,75,0,34,67,231,214,179,146,157,201,170,191,206,19,248,141,29,86,52,31,50,228,25,98,246, +16,214,82,201,199,213,83,247,202,33,193,64,97,71,237,53,254,19,196,238,97,211,196,198,10,201,123,220,103,5,151,59, +224,99,77,102,137,67,191,23,189,249,80,231,247,215,104,198,150,187,212,197,122,225,238,253,104,12,8,7,15,248,122,243, +82,251,21,1,73,254,238,249,20,2,102,26,104,50,0,55,53,34,243,251,162,214,4,197,37,204,190,223,178,247,117,21, +139,53,16,83,34,96,115,78,199,37,205,246,138,207,222,187,128,191,66,210,128,232,225,255,94,25,202,43,253,39,203,8, +94,223,202,197,227,203,105,238,195,21,207,48,58,58,114,49,72,28,17,251,2,209,10,169,205,151,3,172,182,216,239,12, +236,55,91,76,210,78,119,67,74,41,82,4,242,220,250,192,110,191,45,218,144,255,90,24,135,28,65,18,148,1,149,243, +135,238,4,241,39,250,57,11,39,30,255,39,101,34,80,17,203,251,214,228,130,209,225,196,118,194,159,206,90,226,159,247, +152,14,27,32,43,38,71,34,190,23,79,11,210,255,185,246,125,242,65,246,32,0,218,8,105,12,155,9,141,3,11,0, +11,3,236,10,197,16,144,17,244,16,104,21,186,28,226,30,13,23,42,3,164,234,113,219,94,218,193,224,41,234,87,244, +18,254,222,8,175,18,123,21,161,13,173,3,77,0,252,3,39,10,190,10,108,4,111,250,100,242,23,239,123,239,104,240, +120,239,77,243,85,255,136,16,75,30,71,32,17,27,66,21,171,16,128,9,146,252,238,239,103,233,222,234,131,244,18,0, +69,4,81,0,25,250,62,248,161,253,56,4,194,6,14,6,57,7,85,12,238,13,65,11,109,5,129,248,223,234,215,230, +173,238,137,251,140,7,239,18,173,27,244,30,247,29,126,26,252,18,170,7,235,250,72,243,182,245,53,251,32,253,172,249, +46,245,49,244,143,244,212,245,193,248,187,254,34,6,218,9,140,9,93,9,49,7,237,0,90,251,46,245,37,238,67,234, +176,234,100,238,214,241,75,244,55,250,10,6,178,18,99,27,20,30,153,26,119,18,25,6,37,248,87,235,120,226,87,225, +14,234,44,250,199,10,177,20,9,21,220,16,233,11,118,7,191,3,186,253,48,246,107,237,166,229,151,228,124,232,99,236, +165,239,237,245,198,253,162,255,141,253,87,251,61,249,77,253,239,6,108,12,68,8,241,252,136,241,15,237,55,240,30,246, +110,250,106,250,208,248,126,247,247,247,179,0,141,16,127,30,250,34,154,27,209,10,178,246,135,230,179,223,197,226,243,236, +50,250,59,2,61,2,43,252,232,242,179,239,136,245,243,252,49,255,120,254,216,0,231,6,98,12,228,12,156,7,149,253, +79,241,94,230,78,224,225,224,66,233,239,249,165,13,249,28,1,36,30,35,186,28,181,20,221,13,245,6,36,255,113,246, +168,235,181,228,173,234,208,252,163,19,186,35,38,35,244,18,90,255,42,243,38,240,4,245,28,252,14,1,70,5,141,6, +5,2,248,248,57,237,68,225,177,218,5,223,116,239,228,8,247,36,180,61,240,75,152,71,67,46,105,7,49,226,210,203, +215,202,142,223,76,1,62,30,250,42,218,37,18,19,44,255,10,243,126,242,72,253,186,11,249,20,95,22,79,19,164,14, +234,7,182,253,123,242,143,233,67,229,95,234,208,249,132,11,84,23,34,26,42,20,62,7,218,246,231,232,125,225,25,228, +171,242,83,5,64,15,200,11,42,255,30,244,142,243,180,251,51,6,111,11,68,8,32,2,138,1,41,9,177,17,148,22, +255,21,212,13,41,3,102,249,45,238,208,225,185,220,187,227,4,243,191,5,137,18,222,19,10,13,225,5,88,1,194,250, +195,240,71,230,73,226,183,235,205,0,76,21,144,30,77,26,20,13,194,255,33,248,203,246,141,249,212,0,57,12,97,22, +74,24,226,15,186,255,139,237,232,226,8,229,178,242,138,0,179,5,163,7,27,10,250,12,204,12,69,5,36,250,91,243, +246,244,52,250,99,253,169,252,112,248,230,246,34,251,181,255,13,1,40,255,94,252,152,253,124,2,0,3,154,252,55,246, +225,243,218,246,149,253,9,2,145,0,112,251,217,246,178,244,35,246,189,249,12,254,111,2,130,7,123,12,230,12,222,7, +244,254,22,246,47,239,90,234,46,234,169,238,253,244,63,252,85,5,70,11,123,9,30,0,251,241,238,232,77,234,127,243, +223,0,233,13,220,20,47,18,251,10,59,3,159,250,44,245,6,249,158,4,66,17,14,27,221,29,168,26,161,21,245,14, +2,6,30,251,149,240,111,234,102,235,26,243,63,252,87,2,40,7,131,11,170,13,43,11,82,4,79,251,25,246,165,250, +82,3,133,10,244,14,33,13,12,6,125,255,34,251,164,248,49,246,169,242,82,242,185,249,183,8,62,22,64,26,254,20, +188,8,242,250,146,240,186,234,32,235,222,240,216,250,183,7,127,19,0,25,142,20,71,9,93,254,23,251,69,254,241,1, +197,1,120,253,186,250,70,252,144,255,20,255,120,249,144,243,122,241,62,244,190,250,38,0,212,1,180,1,184,1,32,2, +10,1,117,254,239,251,246,253,152,4,71,10,254,11,103,9,56,5,248,3,207,6,252,10,44,14,24,12,224,6,151,3, +248,1,224,0,201,253,196,250,202,250,185,253,243,1,238,4,140,6,241,4,147,0,129,252,213,247,132,242,160,238,145,239, +39,247,35,2,153,12,106,19,100,18,53,10,84,255,12,246,114,242,209,242,141,245,32,250,82,255,179,2,250,0,209,251, +117,246,138,244,196,246,141,250,197,254,27,4,19,9,56,11,195,10,29,7,156,1,69,253,13,249,67,246,214,249,155,2, +68,13,80,21,212,21,11,15,233,4,163,253,156,250,13,249,48,246,122,241,25,238,32,239,204,244,223,249,94,251,55,252, +178,253,131,254,157,253,175,251,68,251,23,254,180,2,208,7,61,11,199,9,117,3,92,252,10,249,44,250,3,252,116,250, +88,250,114,254,10,3,148,6,107,8,158,7,29,2,244,251,210,246,209,240,189,236,47,236,207,239,152,248,94,3,161,10, +79,15,186,16,94,11,197,2,203,251,118,247,105,245,85,247,193,253,2,4,156,7,39,9,65,8,102,2,112,247,105,237, +6,232,144,232,153,236,215,242,79,250,90,255,159,4,155,7,82,4,99,0,118,255,173,0,251,2,117,4,60,6,98,9, +192,12,119,14,203,12,65,9,29,7,9,7,113,5,216,3,127,4,88,6,74,7,233,5,179,3,160,255,224,248,35,242, +163,239,151,239,95,239,228,241,241,248,195,3,2,15,199,20,30,19,77,13,250,5,162,255,106,251,65,249,77,250,119,255, +240,4,0,7,58,6,70,2,171,252,177,247,132,243,128,244,151,251,173,2,33,7,98,10,53,13,144,10,84,3,143,252, +185,246,104,243,78,244,177,251,247,7,214,18,253,21,36,21,31,20,161,13,199,1,227,246,94,242,47,243,133,245,68,250, +185,255,252,254,119,251,158,248,4,244,126,240,248,240,70,247,114,255,75,4,86,8,116,14,126,17,153,13,136,7,245,2, +31,254,16,249,8,249,190,253,84,2,158,6,170,10,32,12,147,9,153,4,16,0,6,253,184,251,140,250,184,248,83,249, +179,252,101,255,147,0,215,1,85,2,216,0,233,254,247,254,68,2,39,5,64,5,246,5,52,6,155,3,32,0,25,254, +75,252,142,247,97,243,29,244,63,248,134,253,168,2,201,5,186,5,247,1,30,253,107,249,47,245,96,242,210,243,206,249, +134,2,194,9,139,12,149,10,105,5,201,0,29,255,17,255,192,255,151,1,241,3,67,5,77,6,43,7,51,5,225,254, +220,246,109,241,106,241,176,246,119,252,85,1,142,6,23,9,182,8,167,5,183,254,225,248,186,246,100,248,240,254,191,5, +225,7,43,6,102,3,172,1,59,1,143,1,10,2,201,255,111,253,112,254,140,1,107,3,155,1,4,255,29,253,106,251, +215,250,246,251,27,253,39,255,159,3,135,8,237,10,193,10,167,9,110,6,196,0,117,251,225,250,79,252,103,253,254,0, +49,5,82,8,148,10,49,9,203,2,23,251,53,247,82,248,126,251,44,255,13,0,209,254,139,253,239,250,60,249,116,248, +2,248,173,249,233,252,1,1,205,5,150,8,67,10,230,10,147,9,233,5,20,255,217,249,132,250,38,1,58,7,148,9, +69,10,130,9,45,6,160,0,125,252,26,250,224,249,211,251,124,254,248,1,71,4,218,3,28,2,55,255,106,252,248,250, +20,251,170,253,17,0,65,1,110,3,54,6,255,6,255,3,44,253,203,244,177,239,15,241,175,245,176,248,130,249,179,250, +138,253,232,0,98,3,119,4,6,6,97,7,241,6,122,5,94,4,182,4,202,6,250,8,64,10,255,11,87,11,188,6, +4,0,255,249,156,247,196,247,222,246,187,244,75,244,174,245,38,248,220,247,190,244,92,243,103,243,241,244,10,248,158,251, +150,0,206,6,109,11,32,11,174,7,214,5,71,3,143,254,100,252,20,254,53,1,101,3,213,3,141,1,129,252,73,248, +117,247,194,247,25,246,225,244,191,246,39,251,38,0,239,2,138,4,181,3,239,255,248,254,223,1,254,4,128,5,154,3, +132,1,15,0,200,0,58,1,47,253,201,248,111,247,75,247,41,246,162,244,74,244,207,245,232,248,135,252,79,0,181,1, +160,0,77,253,119,249,76,247,34,246,199,248,147,255,45,7,203,12,142,14,230,12,104,9,226,4,227,0,62,253,223,249, +150,248,81,250,154,253,114,255,85,255,49,254,1,253,19,249,64,243,51,240,233,240,90,244,70,248,22,253,226,2,245,5, +3,6,215,6,209,7,216,7,172,7,231,8,41,11,182,10,11,9,82,8,109,4,133,253,228,249,184,248,121,247,173,247, +53,251,246,1,155,6,170,5,131,3,48,3,124,3,245,1,243,253,213,251,146,251,192,252,167,1,0,7,220,8,103,8, +149,6,93,5,245,5,15,6,233,7,233,10,42,11,240,6,216,254,104,246,121,241,67,241,140,244,71,248,63,251,217,253, +190,253,88,255,14,4,153,8,234,12,93,14,134,12,148,9,38,7,51,5,164,3,59,3,130,3,129,3,237,3,177,2, +74,1,5,2,87,0,20,255,193,2,11,7,64,7,169,3,229,254,172,252,19,253,85,254,189,1,75,6,143,10,3,14, +78,14,247,11,0,9,133,4,116,0,64,255,161,0,180,2,55,2,238,255,221,254,20,255,116,0,150,0,5,253,228,250, +58,251,223,252,136,1,161,5,253,7,253,9,2,10,6,9,27,8,82,5,66,2,59,1,108,2,238,4,159,5,36,5, +253,3,248,255,199,251,87,250,221,249,146,248,120,248,108,249,158,250,53,252,245,252,91,253,235,253,220,254,228,253,65,253, +202,255,107,2,43,4,58,4,253,3,130,4,46,4,59,2,88,0,72,0,206,1,16,4,125,4,166,1,118,254,19,254, +40,254,140,252,252,249,94,247,234,245,203,245,204,246,109,249,172,253,126,1,168,3,220,2,71,254,242,250,12,250,182,249, +190,250,212,252,204,255,23,3,92,5,141,4,242,2,70,1,208,253,92,249,168,246,113,248,149,251,173,255,161,3,131,4, +218,1,140,253,80,251,125,250,63,248,45,247,238,250,247,255,74,5,45,8,180,6,142,3,16,255,221,250,201,247,70,246, +162,247,198,250,170,253,162,0,197,0,181,252,202,248,19,246,3,245,148,246,202,249,226,253,228,255,154,255,178,255,108,254, +122,253,18,254,89,253,209,251,72,252,175,254,177,0,181,0,48,0,99,0,146,254,147,251,12,249,112,248,176,248,74,249, +140,251,48,254,131,255,116,253,155,250,240,248,164,249,114,252,124,254,49,255,141,255,48,0,19,254,70,251,183,251,120,254, +244,2,102,6,76,6,206,5,7,6,56,4,240,0,63,253,218,249,79,249,202,251,209,254,222,0,99,1,166,1,145,1, +42,0,1,255,147,254,144,252,155,249,199,248,137,252,62,2,219,5,197,7,60,7,228,5,102,3,197,254,17,252,227,251, +182,252,163,254,29,1,49,3,236,6,94,10,28,10,115,8,53,7,254,3,111,254,7,252,243,253,181,255,7,0,85,1, +55,3,177,4,226,3,255,255,9,252,251,249,170,250,97,253,76,1,140,5,0,9,30,11,234,9,225,5,10,1,215,253, +97,253,208,253,90,255,240,1,2,6,172,9,184,9,86,8,86,6,59,4,77,3,104,3,169,5,131,7,55,6,135,4, +254,3,4,3,64,1,185,254,244,250,187,247,189,247,134,250,155,253,95,0,39,4,202,7,76,8,98,4,204,1,62,1, +203,255,94,0,81,3,96,6,236,6,184,4,129,1,38,0,50,0,5,1,239,0,208,254,61,0,213,4,64,7,93,7, +119,6,196,4,225,4,35,4,132,0,178,255,142,2,211,4,171,4,176,5,134,8,4,11,48,9,49,2,121,253,14,254, +173,255,237,255,203,254,220,253,171,255,193,1,112,255,238,251,201,249,245,247,123,248,189,250,102,254,67,2,70,4,103,4, +81,5,16,8,182,7,25,3,186,254,172,251,167,250,122,253,212,255,64,0,106,2,107,3,233,255,44,252,209,250,78,250, +207,250,16,251,122,251,2,254,48,3,52,5,66,0,145,249,129,245,44,246,60,249,113,251,27,253,35,254,251,254,92,1, +14,4,61,4,235,1,40,0,12,255,71,255,97,255,121,253,124,251,135,248,252,247,202,249,212,248,121,247,251,248,143,252, +32,254,185,253,155,252,53,252,63,254,121,253,130,250,70,252,142,252,221,247,146,244,240,244,22,250,28,0,163,2,34,2, +217,0,79,0,101,1,151,2,75,2,229,2,253,2,27,0,30,252,204,250,30,252,19,252,111,249,13,247,169,250,57,0, +47,2,66,2,34,1,75,0,117,0,45,255,1,252,172,249,236,249,212,250,2,253,148,0,177,1,8,0,219,251,73,248, +250,249,216,254,174,1,199,255,132,253,93,255,193,1,197,2,15,2,45,0,98,254,222,252,5,252,180,253,196,0,126,0, +101,255,254,0,32,4,68,7,181,8,150,7,190,3,235,0,6,1,2,1,18,0,220,0,240,1,84,2,245,2,80,3, +64,4,121,2,68,253,186,249,241,249,110,253,175,1,240,3,174,4,250,2,218,0,11,255,226,251,106,250,176,250,228,251, +245,254,148,1,130,5,120,9,69,10,179,8,61,6,28,4,1,1,210,254,137,0,90,6,235,10,69,10,51,8,123,6, +95,5,191,2,188,253,84,249,41,248,240,250,0,0,104,6,9,10,179,7,217,3,71,0,2,251,206,246,68,245,221,246, +231,250,1,255,207,2,197,5,100,5,190,4,176,4,107,3,34,1,48,254,78,254,138,1,19,3,213,2,248,4,232,7, +73,8,94,5,31,0,126,250,196,247,156,248,240,251,144,2,70,8,43,10,110,8,158,4,255,255,156,251,239,248,126,247, +130,249,219,252,198,0,19,6,174,9,245,7,148,2,111,252,49,248,127,248,123,250,189,252,123,255,242,2,195,4,82,3, +101,2,45,1,113,253,163,247,78,244,77,246,8,250,8,254,89,2,73,6,127,6,52,4,150,2,11,0,214,253,154,254, +169,0,94,2,237,2,170,2,170,2,59,3,207,2,163,0,252,254,177,254,111,254,192,254,231,255,135,1,121,2,0,2, +123,0,56,254,185,251,61,250,32,250,157,248,78,248,97,253,219,1,245,3,179,4,159,1,13,255,28,255,141,0,182,2, +46,3,194,1,132,2,123,5,68,8,186,7,162,3,171,254,199,250,155,248,250,247,40,251,52,255,22,0,14,0,59,0, +254,0,17,2,65,2,156,255,192,250,71,247,86,248,32,254,85,4,13,8,67,7,232,2,214,255,153,255,48,255,101,254, +108,254,205,254,179,1,232,4,195,3,99,0,118,253,221,252,52,252,99,250,165,250,218,252,138,253,18,253,138,254,46,1, +53,2,36,3,76,3,121,1,221,0,116,1,189,1,40,1,29,0,86,255,77,254,146,253,38,253,106,253,218,254,176,254, +81,255,19,0,137,255,37,255,214,254,251,255,203,255,140,254,140,253,104,253,111,255,39,0,203,255,18,255,147,255,228,255, +5,254,137,254,21,2,234,3,27,3,63,1,142,255,229,254,10,255,112,254,8,252,139,248,233,247,126,252,128,0,141,1, +157,0,13,255,245,254,73,255,26,0,45,1,94,0,38,255,75,254,14,255,65,0,251,255,135,254,20,254,13,0,153,0, +73,0,192,255,61,254,115,254,177,255,145,1,192,2,173,2,185,1,209,255,249,254,173,254,213,252,34,250,146,249,165,251, +198,253,82,0,247,2,58,3,77,2,4,0,152,252,163,249,117,248,98,249,6,252,48,0,219,3,232,3,106,1,193,254, +65,255,254,0,128,0,39,254,117,251,44,252,234,255,119,4,54,7,4,6,180,2,250,255,99,254,170,252,223,251,30,253, +101,255,38,1,189,3,227,7,52,7,118,1,179,252,140,251,13,254,210,0,0,1,109,0,36,1,91,3,83,5,181,5, +241,3,97,1,91,254,53,252,58,253,208,255,131,1,204,3,52,5,148,4,40,3,32,1,0,1,229,0,236,255,223,255, +115,0,120,2,114,4,227,4,138,3,107,1,28,0,90,253,58,252,144,254,193,1,132,4,120,5,56,5,71,5,186,4, +42,2,1,255,144,252,163,250,168,251,139,255,27,3,207,4,17,5,230,3,141,1,211,255,5,255,49,253,198,251,202,251, +216,253,68,3,89,7,87,7,26,6,27,4,65,1,146,254,14,253,106,254,53,1,187,3,190,3,77,2,106,2,178,3, +96,3,211,1,15,0,207,254,128,253,46,252,57,254,254,0,101,2,124,3,79,3,221,1,227,255,180,253,159,252,128,254, +143,255,55,255,120,0,51,3,96,5,145,4,20,2,33,255,10,253,31,253,240,253,141,253,142,255,181,3,13,5,216,3, +211,1,99,255,114,253,245,252,39,252,6,252,33,255,174,0,138,1,47,2,89,1,185,0,224,254,178,251,170,248,242,247, +224,250,239,255,53,4,80,5,119,4,224,3,101,2,64,0,20,254,159,252,163,250,135,250,203,254,168,2,212,3,245,1, +41,0,113,1,178,3,23,3,238,253,83,249,32,248,186,250,85,255,84,2,2,2,189,0,21,255,148,253,88,253,126,252, +250,251,11,253,13,255,239,0,56,1,190,0,36,2,64,2,132,254,178,251,152,251,222,252,111,253,223,251,193,252,123,0, +129,2,200,0,202,254,103,253,237,251,185,252,73,254,225,254,92,255,141,255,148,255,140,255,218,255,39,255,192,252,91,251, +164,251,253,251,113,252,126,253,161,255,164,1,49,2,39,1,246,254,94,254,237,255,221,255,179,252,175,250,30,253,221,0, +135,2,198,2,217,1,64,1,80,0,83,254,81,252,102,252,146,254,125,0,133,0,30,0,212,0,184,1,168,0,16,255, +190,254,240,252,147,251,236,251,139,253,224,255,70,1,191,3,161,5,199,4,103,1,25,254,45,252,118,250,155,251,230,253, +193,255,140,1,19,2,12,1,119,255,225,254,249,254,33,255,47,0,240,0,10,0,66,255,54,0,126,1,51,1,64,255, +112,255,59,254,177,251,59,253,243,254,127,255,212,1,140,3,244,2,225,2,135,1,100,255,32,254,134,253,247,254,55,0, +127,255,127,254,228,254,244,1,221,5,227,5,179,2,72,0,58,254,242,254,236,2,219,6,5,7,153,3,30,1,171,0, +105,0,131,255,146,0,144,2,168,1,241,255,114,255,165,1,105,4,47,4,122,2,112,0,126,254,0,255,142,255,5,254, +143,253,131,254,30,1,132,3,105,2,147,254,113,253,174,255,26,2,80,3,128,3,110,1,70,254,47,255,133,3,230,4, +204,1,184,255,158,0,190,1,219,1,237,1,0,3,36,3,188,1,21,1,66,2,182,1,79,0,72,1,36,2,213,1, +17,1,66,0,167,255,74,0,23,1,81,2,220,3,100,3,23,2,73,0,19,255,213,255,85,0,150,1,252,1,91,0, +183,254,178,254,169,255,177,255,225,255,231,0,156,0,14,0,250,255,152,255,110,255,158,255,88,1,125,3,202,3,224,1, +88,0,252,255,80,255,63,0,156,2,109,3,10,3,20,2,85,1,52,1,9,0,194,253,1,253,96,254,167,255,129,255, +45,254,8,253,149,253,49,254,13,255,191,255,66,255,31,255,85,0,167,255,65,253,38,252,38,253,25,0,28,2,13,2, +166,255,177,252,165,252,6,254,165,254,32,0,154,1,235,1,186,0,90,255,244,254,139,254,63,254,117,253,8,252,117,250, +178,249,83,251,223,252,29,254,169,255,17,0,168,254,229,252,135,251,126,251,188,254,33,2,221,2,230,1,223,255,130,254, +141,254,154,253,211,251,77,251,180,250,137,251,208,254,170,1,171,2,111,1,165,255,62,255,253,255,111,254,239,251,8,251, +229,252,212,255,127,0,26,255,35,254,51,254,40,254,62,254,147,254,152,255,160,0,34,1,64,2,110,2,29,2,44,2, +123,1,189,255,153,252,249,249,132,249,199,251,112,255,58,2,112,3,228,2,183,1,15,1,194,1,74,1,220,254,231,253, +77,254,110,0,77,2,206,1,251,255,0,0,141,0,127,255,148,254,189,254,217,0,194,3,12,5,38,5,208,4,203,3, +35,1,169,253,252,251,150,252,213,254,13,0,232,255,91,1,77,2,31,2,241,1,130,0,171,255,186,254,124,254,196,255, +186,1,55,3,134,2,149,1,38,2,203,2,239,0,183,253,188,252,24,254,39,0,133,3,66,7,193,6,14,4,32,2, +60,1,171,0,141,255,70,254,55,253,135,252,82,253,206,255,130,1,149,2,154,2,161,1,23,0,68,255,177,255,85,255, +103,255,162,0,43,1,125,1,165,1,79,1,31,0,159,254,44,253,14,253,51,255,66,2,201,3,80,3,162,3,195,4, +50,4,85,1,201,253,221,251,212,251,111,253,50,0,73,1,50,0,115,0,178,0,226,255,214,255,111,255,42,255,106,255, +207,255,139,0,190,1,199,1,216,0,208,0,240,0,222,254,118,252,36,253,80,255,154,255,132,0,233,1,9,2,71,2, +195,1,158,0,218,254,211,252,151,252,30,253,106,253,2,255,196,1,183,2,159,1,203,255,179,254,148,0,173,1,65,0, +10,255,195,255,167,1,185,2,68,2,14,0,101,254,201,253,132,252,15,252,144,253,141,255,13,1,36,2,183,1,157,1, +1,0,159,253,106,253,101,253,219,252,115,252,95,253,187,254,245,255,84,1,78,1,254,0,133,1,238,0,38,0,184,0, +253,1,75,2,54,1,46,0,35,255,30,254,84,255,107,0,96,0,230,255,110,253,26,252,23,254,110,0,65,2,43,3, +87,1,35,255,46,255,198,254,3,254,206,253,244,253,93,254,12,0,235,1,130,1,183,1,134,2,190,2,217,2,80,0, +118,253,25,254,188,255,203,0,62,1,235,0,186,255,3,254,63,253,171,253,13,254,167,254,213,255,45,1,23,2,200,3, +6,3,111,0,253,255,109,0,159,1,219,1,25,0,103,253,42,252,50,254,52,1,219,2,232,2,159,1,230,254,21,253, +5,254,223,255,171,0,108,0,183,255,132,255,48,0,148,0,197,255,47,255,193,0,100,1,107,0,247,255,247,0,94,2, +174,3,42,4,7,3,9,1,63,255,54,255,92,255,134,254,69,254,198,254,173,254,2,255,8,2,118,3,117,1,119,255, +253,254,64,0,105,1,159,0,73,255,14,0,122,0,135,255,194,254,37,255,169,255,220,254,215,254,87,255,201,255,90,1, +183,2,224,1,227,0,127,1,105,0,64,254,22,253,120,252,242,252,240,254,79,0,148,0,22,0,133,255,59,0,216,0, +235,255,66,254,143,253,228,253,82,255,213,0,126,0,184,254,76,253,36,253,120,254,14,0,182,0,211,255,112,254,181,254, +161,0,132,2,244,2,121,2,191,1,128,255,112,254,233,254,223,253,86,253,131,254,52,255,25,254,80,253,26,254,151,255, +105,1,142,1,17,0,6,254,135,253,252,254,74,255,251,255,111,1,146,1,175,0,135,254,67,253,127,254,255,255,125,1, +122,1,232,0,66,1,108,1,44,1,48,0,166,255,76,255,108,254,117,254,115,254,118,253,190,252,184,253,139,255,148,0, +81,0,20,0,88,1,166,1,127,0,217,255,176,255,249,255,164,255,40,255,211,255,47,255,180,253,59,253,106,254,29,1, +2,2,64,0,186,254,106,0,37,3,153,3,58,2,229,255,156,255,107,0,191,0,141,0,228,255,7,0,179,0,101,1, +8,2,100,3,60,3,190,0,28,255,32,255,114,255,54,255,246,255,221,0,249,0,131,1,124,0,66,255,189,254,179,252, +197,251,238,253,23,0,77,0,35,255,140,254,53,0,110,2,1,3,170,2,182,1,88,255,12,253,67,253,63,255,215,0, +117,1,202,1,97,1,87,0,7,0,61,0,144,0,25,1,39,1,179,0,120,1,183,3,157,4,97,3,235,1,237,0, +225,0,249,0,90,1,115,2,241,2,206,2,51,3,29,4,139,4,51,3,119,0,66,255,6,0,42,1,199,1,117,1, +161,2,21,4,86,3,96,1,38,255,164,254,9,255,202,255,103,1,44,2,219,1,190,0,164,255,160,255,3,0,89,255, +219,253,127,252,213,251,150,252,71,255,27,2,28,2,153,0,64,255,161,254,253,254,212,255,180,255,194,254,111,254,130,254, +84,255,173,0,245,1,246,1,66,0,216,254,199,254,228,254,160,254,13,255,246,254,139,255,227,0,108,0,22,0,73,0, +140,0,44,0,34,255,230,254,204,254,213,254,19,255,62,255,11,0,34,0,178,254,248,253,52,254,15,255,2,0,156,255, +16,255,254,254,241,254,20,254,193,253,105,255,113,0,213,255,215,254,83,254,6,255,51,0,204,0,63,1,173,0,99,255, +43,255,198,254,183,253,238,253,140,255,84,0,248,255,232,255,144,255,245,254,88,254,124,254,117,255,20,255,200,253,214,253, +119,255,142,255,37,254,84,254,157,254,121,255,59,0,193,254,105,254,34,255,211,255,71,0,227,254,92,253,1,254,106,0, +201,0,205,255,209,255,19,255,209,254,25,255,100,255,64,0,130,0,75,0,69,0,133,0,164,0,46,0,82,255,153,254, +217,254,249,254,179,254,182,255,147,0,212,0,18,1,136,0,189,255,14,254,9,253,13,254,78,255,15,0,212,255,230,255, +52,0,47,0,9,1,42,1,214,255,82,255,176,255,148,255,144,255,224,255,173,255,50,255,229,255,188,0,44,0,203,255, +85,255,199,254,50,255,214,255,71,0,92,0,7,0,24,255,52,254,16,255,0,0,52,255,107,254,53,254,150,254,99,255, +114,255,179,255,143,0,58,1,136,1,201,0,162,255,152,255,42,0,121,0,147,0,240,0,81,1,250,0,3,1,47,1, +134,0,67,0,202,0,197,1,108,2,207,1,76,0,160,255,163,0,176,1,209,1,242,0,16,0,149,0,181,1,240,2, +191,2,100,0,160,255,160,0,203,0,167,0,178,0,253,0,213,0,125,0,160,0,44,0,59,0,15,1,58,1,19,1, +77,0,211,255,201,0,168,1,12,2,233,1,140,1,81,2,199,2,155,1,222,0,77,1,143,0,73,255,201,255,108,0, +84,0,83,0,141,0,38,1,59,1,250,0,199,0,110,0,151,0,234,0,113,1,190,1,0,1,27,0,66,255,138,255, +25,1,207,1,122,1,123,0,224,255,179,0,171,1,234,1,222,1,130,1,159,0,242,255,40,0,56,0,179,255,10,0, +230,0,161,1,120,1,172,255,53,255,33,0,210,0,6,2,232,1,62,0,229,254,82,254,154,254,188,255,209,0,65,0, +84,255,131,255,4,0,56,0,211,255,66,255,88,255,44,0,120,0,42,0,154,255,194,254,185,254,46,254,70,253,176,253, +171,254,8,0,218,0,219,0,99,1,165,1,230,255,136,253,36,253,207,254,11,1,119,1,62,0,103,255,221,254,92,254, +210,253,165,253,137,253,89,253,74,254,132,255,64,0,212,0,251,0,64,0,234,254,87,254,101,254,107,254,121,254,137,254, +34,255,62,0,177,0,2,0,78,255,21,255,188,255,254,0,255,0,186,255,85,254,80,254,212,255,145,0,197,255,180,254, +43,254,32,254,190,254,227,254,44,254,88,254,59,255,22,0,209,0,220,0,118,0,2,0,249,254,215,253,53,253,16,253, +13,254,85,255,244,255,152,0,149,1,114,1,166,255,209,254,121,255,193,255,253,254,18,254,110,254,194,255,172,0,209,0, +148,0,244,255,148,255,131,255,198,254,118,254,123,255,89,0,65,0,27,0,17,0,142,255,60,255,118,255,127,255,247,254, +149,254,59,255,13,0,208,0,72,1,96,0,121,255,127,255,219,255,33,0,27,0,47,0,95,0,181,0,209,0,201,0, +213,0,86,0,211,255,159,255,214,255,201,0,113,1,226,0,223,255,132,255,176,255,218,255,225,255,9,0,183,0,60,1, +162,0,199,255,209,255,88,0,95,0,231,255,178,255,73,0,232,0,166,0,114,0,124,0,158,0,1,1,152,0,160,255, +85,255,219,255,162,0,61,1,50,1,182,0,145,0,90,0,242,255,57,0,197,0,137,0,64,0,18,0,6,0,190,0, +251,0,173,0,102,0,251,255,56,0,39,1,152,1,117,1,17,1,28,0,251,255,210,0,191,0,21,0,235,255,31,0, +20,0,225,255,255,255,74,0,99,0,157,0,16,1,25,1,167,0,183,0,43,1,140,0,161,255,109,255,199,255,95,0, +143,0,66,1,21,2,90,1,68,0,29,0,15,0,215,255,238,255,137,0,79,1,112,1,251,0,46,0,197,255,123,0, +12,1,114,0,136,255,107,255,82,0,127,1,143,1,248,0,200,0,60,0,72,255,138,254,185,254,82,0,218,1,27,2, +60,1,252,255,177,255,35,0,176,0,79,1,13,1,27,0,145,255,194,255,29,0,31,0,133,0,1,1,121,0,78,255, +95,254,141,254,151,255,85,0,227,0,232,0,34,0,100,255,94,255,195,255,60,255,122,254,95,254,212,254,218,255,92,0, +228,255,16,255,136,254,68,254,71,254,119,254,199,254,30,255,4,255,63,255,184,255,185,255,91,255,7,255,29,255,108,255, +188,255,19,255,243,253,208,253,60,254,218,254,208,255,129,0,17,0,233,254,6,254,8,254,235,254,143,255,77,255,9,255, +218,254,252,254,186,255,166,255,158,255,57,0,51,0,216,255,39,255,186,254,66,255,68,0,205,0,255,255,196,254,214,253, +103,253,224,253,248,253,47,253,205,252,110,253,28,255,220,0,195,1,231,1,91,1,97,0,112,255,6,255,67,255,240,255, +96,0,248,255,31,255,168,254,23,255,203,255,20,0,110,0,231,0,141,0,103,255,174,254,93,255,200,0,24,1,81,0, +154,255,41,255,200,254,161,254,13,255,115,255,117,255,216,255,181,0,49,1,247,0,196,0,56,1,99,1,218,0,220,0, +191,1,94,2,252,1,77,1,118,0,230,254,164,253,5,254,200,255,211,1,196,2,239,1,26,1,211,1,228,2,215,2, +242,1,246,0,65,0,157,0,80,2,192,3,23,3,29,1,188,255,75,255,96,255,26,0,229,1,125,3,128,3,216,1, +201,255,101,255,95,0,96,1,168,1,32,1,89,0,155,255,175,255,20,1,126,2,113,2,150,1,226,0,20,0,89,255, +36,255,158,255,92,0,195,0,223,0,236,0,145,0,173,255,60,255,109,0,136,2,64,3,50,2,27,1,91,1,58,2, +215,1,193,0,84,0,71,0,98,0,144,0,199,0,170,0,196,255,249,254,245,254,203,255,24,1,134,1,0,1,27,0, +46,255,70,255,42,0,89,0,18,0,234,255,208,255,85,0,179,0,214,255,250,254,228,255,208,1,69,2,27,1,80,255, +211,253,39,254,66,255,98,255,43,255,236,254,111,254,1,254,132,253,119,253,78,254,29,255,26,255,145,254,8,254,122,253, +90,253,89,253,197,252,35,253,6,255,72,0,110,255,126,253,225,252,176,254,196,0,131,0,103,254,234,252,69,253,68,254, +116,254,67,254,25,255,125,0,80,0,35,254,198,252,76,254,142,0,234,0,199,255,142,254,52,254,150,255,25,1,43,1, +70,1,81,1,229,255,245,253,237,252,189,252,209,253,101,0,163,1,216,255,25,254,234,253,41,254,130,254,187,254,77,255, +248,255,250,255,196,255,140,0,109,1,20,0,12,254,229,253,208,255,180,1,58,2,13,2,247,0,54,255,108,254,143,255, +245,0,132,1,18,1,152,255,100,254,248,253,204,254,95,0,123,1,121,1,180,0,177,0,2,1,131,0,69,255,83,254, +107,254,223,255,226,1,130,1,207,255,108,255,234,255,237,0,151,1,136,1,3,1,186,0,11,1,234,0,98,0,219,0, +246,2,120,3,71,1,22,255,211,253,202,254,200,0,118,1,73,1,138,0,233,255,38,0,79,1,7,2,61,1,213,0, +203,0,188,0,59,1,217,0,201,0,66,1,251,0,53,1,121,0,128,254,2,254,243,254,237,0,194,2,39,2,169,1, +191,3,220,4,83,2,86,255,229,253,47,253,167,255,95,3,164,3,11,2,178,0,97,255,90,254,5,255,153,0,237,1, +232,2,22,2,218,0,74,1,128,1,68,0,84,255,15,255,137,254, +}; \ No newline at end of file diff --git a/src/client/sound/data/pop.pcm b/src/client/sound/data/pop.pcm new file mode 100755 index 0000000..4e038c4 --- /dev/null +++ b/src/client/sound/data/pop.pcm @@ -0,0 +1,1282 @@ +unsigned char PCM_pop[15356] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0xf6,0x1d,0x0,0x0,0x5,0x2,0x2f,0x2,0x15,0x2,0xc6,0x2, +0x4e,0x3,0xd,0x3,0x19,0x2,0x1f,0x1,0x71,0x1,0x87,0x2, +0x2a,0x2,0x32,0x0,0xc4,0xfe,0x6e,0xff,0xe1,0x0,0x7e,0x0, +0xa3,0xfe,0x14,0xfd,0xbe,0xfb,0xa3,0xfb,0xdf,0xfd,0xfa,0xff, +0xf0,0xff,0xb8,0xfe,0x91,0xfd,0xc7,0xfd,0xf8,0xff,0xbf,0x2, +0xb1,0x4,0x72,0x5,0xdc,0x4,0xd5,0x3,0x90,0x4,0xa6,0x9, +0xeb,0x16,0x43,0x29,0x9d,0x2e,0x24,0x23,0xba,0x25,0x7b,0x41, +0xea,0x50,0xff,0x41,0xcd,0x33,0xdc,0x3f,0xbc,0x5c,0x2d,0x6d, +0xb3,0x5e,0x8c,0x42,0xeb,0x34,0x41,0x3a,0xc0,0x48,0xc3,0x54, +0xde,0x53,0x1d,0x45,0xdc,0x2c,0x50,0x15,0xe0,0x11,0xc2,0x25, +0xe2,0x37,0xc,0x33,0xe4,0x1d,0xd4,0xe,0x78,0x12,0x8e,0x1d, +0xd6,0x1d,0x76,0x15,0x5b,0x12,0xa7,0x12,0xd5,0xa,0x2c,0xfc, +0x2a,0xf0,0x38,0xe9,0x99,0xe2,0x89,0xd9,0x86,0xd2,0x3d,0xd2, +0x4f,0xd4,0x86,0xcf,0x37,0xc2,0xa5,0xb9,0xc1,0xc4,0xc1,0xdb, +0xa4,0xe8,0xb7,0xe6,0xcc,0xe2,0x33,0xe4,0xd,0xe5,0xc6,0xde, +0x7f,0xd8,0xbb,0xdc,0xfd,0xe3,0x66,0xe2,0x31,0xe0,0xc1,0xe7, +0x79,0xed,0x36,0xe3,0xd0,0xce,0x41,0xbd,0x6c,0xb3,0xbf,0xaf, +0xd1,0xab,0x50,0xa1,0x7d,0x94,0xfd,0x90,0x5,0x9a,0x3e,0xa6, +0x12,0xae,0x2d,0xb4,0x60,0xbc,0x4e,0xc5,0x5b,0xcc,0xb1,0xd1, +0xce,0xd9,0xf0,0xe6,0xfc,0xf1,0x88,0xf4,0x99,0xf3,0x0,0xf8, +0xac,0x2,0x87,0xc,0xe4,0x10,0xa3,0x13,0x95,0x1a,0xa4,0x26, +0x5d,0x33,0x21,0x3c,0xd0,0x43,0x71,0x4f,0xb8,0x5a,0xb5,0x5d, +0xf7,0x59,0xe5,0x59,0xa2,0x62,0xe6,0x6b,0xd1,0x6c,0x2d,0x68, +0x5b,0x64,0x91,0x62,0xc2,0x60,0x49,0x5d,0xfc,0x57,0xfc,0x4f, +0x63,0x45,0x57,0x3c,0xc5,0x36,0x50,0x31,0xb9,0x29,0x8f,0x21, +0xac,0x1b,0xb3,0x17,0x84,0x11,0xcc,0x8,0xb1,0x0,0xf2,0xf8, +0x94,0xf0,0x5b,0xe7,0x2a,0xdc,0x7b,0xd2,0xb2,0xce,0x88,0xcc, +0x3d,0xc6,0x47,0xbc,0x9a,0xb2,0x65,0xaf,0x99,0xb3,0x51,0xb5, +0xc8,0xae,0x0,0xa9,0xdc,0xab,0x8c,0xb1,0xb0,0xb3,0x7a,0xb6, +0x92,0xbe,0x9,0xc9,0xdd,0xd1,0x2b,0xda,0x74,0xe5,0x8,0xf4, +0x24,0x2,0xb3,0xb,0x15,0x12,0x32,0x1b,0x6e,0x27,0x6d,0x32, +0xa9,0x3b,0x80,0x43,0x4a,0x49,0x4d,0x4e,0x87,0x52,0x36,0x55, +0xfc,0x57,0x5f,0x5a,0xa3,0x58,0x57,0x52,0x5,0x4b,0x10,0x45, +0xa,0x40,0x9d,0x39,0x89,0x30,0x9f,0x26,0x4c,0x1d,0x1e,0x14, +0x98,0x9,0x1a,0xfc,0x95,0xed,0x7c,0xe1,0x7e,0xd7,0x66,0xcd, +0x2d,0xc3,0x73,0xbb,0xdd,0xb6,0x7f,0xb2,0x8c,0xad,0x5c,0xaa, +0xfc,0xaa,0xa2,0xae,0xb4,0xb1,0xa3,0xb2,0x91,0xb3,0xf9,0xb7, +0x6,0xc1,0x14,0xcb,0x7b,0xd3,0xfc,0xdb,0x9c,0xe6,0x4c,0xf3, +0x75,0xff,0xeb,0x9,0xfa,0x13,0xf9,0x1c,0x4f,0x24,0x15,0x2b, +0xcd,0x32,0x33,0x3c,0x2c,0x44,0xd0,0x47,0x4,0x49,0x77,0x4a, +0x19,0x4c,0xf7,0x4b,0x90,0x49,0x28,0x45,0xb6,0x3d,0x54,0x34, +0x83,0x2b,0xe8,0x23,0x38,0x1d,0xc6,0x15,0x91,0xb,0x4f,0xff, +0x78,0xf3,0x45,0xe9,0x3a,0xe0,0x60,0xd7,0xce,0xcd,0x22,0xc4, +0x1a,0xbc,0x50,0xb6,0x1e,0xb3,0xa2,0xb1,0xd9,0xaf,0xa0,0xae, +0x75,0xaf,0xcf,0xb1,0xe6,0xb5,0xa4,0xbb,0x2f,0xc1,0x4d,0xc6, +0x8c,0xcc,0xc0,0xd4,0xbb,0xdf,0xb0,0xec,0x51,0xf8,0x7e,0x1, +0xf3,0x9,0xba,0x13,0xc4,0x1e,0x21,0x28,0xd,0x2f,0xc4,0x34, +0x53,0x39,0x84,0x3d,0x5f,0x41,0x9e,0x44,0x6f,0x47,0x93,0x47, +0x70,0x44,0xff,0x3f,0xd,0x3b,0xb8,0x35,0x98,0x2e,0xe3,0x24, +0xc4,0x1a,0x8c,0x11,0x9d,0x8,0x60,0xff,0x57,0xf6,0xc6,0xed, +0x49,0xe4,0xd3,0xd9,0x75,0xd0,0x58,0xc9,0xe0,0xc3,0x7,0xbf, +0x84,0xba,0xda,0xb6,0x3c,0xb5,0x52,0xb6,0x28,0xb9,0xd0,0xbc, +0x19,0xc1,0x8a,0xc5,0xf7,0xc9,0xb8,0xcf,0xd6,0xd7,0xef,0xe0, +0xa4,0xe9,0x2b,0xf2,0x22,0xfb,0xb7,0x4,0x97,0xe,0xbe,0x18, +0xec,0x21,0xca,0x28,0x8d,0x2e,0x58,0x33,0xff,0x36,0x78,0x3a, +0x32,0x3c,0x2b,0x3b,0x1c,0x39,0x9b,0x37,0x55,0x36,0x64,0x33, +0xdb,0x2e,0xd,0x29,0x4f,0x21,0xd2,0x18,0x25,0x10,0x66,0x7, +0xe7,0xfe,0xf,0xf6,0x88,0xed,0x5b,0xe5,0x8d,0xdd,0x5d,0xd7, +0x4c,0xd2,0xee,0xcd,0x33,0xca,0xe6,0xc6,0x37,0xc4,0x5,0xc2, +0xe7,0xc1,0x15,0xc4,0x98,0xc6,0xdd,0xc9,0xc2,0xce,0x69,0xd5, +0xee,0xdc,0x65,0xe4,0x8b,0xec,0x21,0xf4,0xf2,0xfa,0xde,0x2, +0x9,0xb,0xa4,0x12,0xcb,0x19,0x85,0x20,0x58,0x26,0xc0,0x2a, +0xa1,0x2f,0x34,0x34,0x2d,0x36,0xb5,0x36,0xc8,0x35,0x76,0x33, +0xeb,0x30,0xa5,0x2d,0x3a,0x29,0xba,0x23,0x51,0x1e,0xe0,0x18, +0x41,0x12,0xd9,0xb,0x31,0x5,0x8c,0xfd,0x34,0xf6,0xe1,0xee, +0xe,0xe8,0x30,0xe2,0x39,0xdd,0x78,0xd9,0xc2,0xd5,0xc2,0xd2, +0x6a,0xd1,0x3f,0xd1,0x5b,0xd2,0x5f,0xd3,0x8b,0xd4,0x22,0xd7, +0x8a,0xda,0x74,0xdf,0x61,0xe5,0x12,0xeb,0x36,0xf1,0x2e,0xf8, +0xc,0x0,0xb1,0x7,0x95,0xe,0x4a,0x15,0xe1,0x1a,0xe,0x20, +0x3a,0x25,0xc0,0x28,0x3a,0x2b,0x73,0x2d,0xdc,0x2e,0x45,0x2f, +0xb9,0x2e,0x3f,0x2d,0xc9,0x2a,0xa9,0x27,0x5d,0x23,0xb3,0x1d, +0xff,0x17,0x59,0x12,0x15,0xd,0x1f,0x8,0x3a,0x2,0xb3,0xfc, +0xc6,0xf7,0x30,0xf2,0x4f,0xed,0x90,0xe9,0x1,0xe6,0x87,0xe2, +0x6,0xdf,0xcf,0xdb,0xd4,0xd9,0x6,0xda,0xd5,0xdb,0xd9,0xdd, +0x4c,0xe0,0xb1,0xe3,0xc1,0xe7,0x4b,0xec,0x19,0xf1,0xc4,0xf5, +0x1d,0xfa,0x0,0xff,0xa0,0x4,0xe7,0x9,0xd8,0xe,0x91,0x13, +0xc4,0x17,0xcc,0x1b,0x78,0x1f,0x7b,0x22,0xde,0x24,0xbc,0x25, +0x66,0x24,0xe2,0x21,0x68,0x1f,0xc8,0x1c,0x88,0x19,0x99,0x15, +0x12,0x11,0xc8,0xc,0xbb,0x8,0x4,0x4,0x64,0xff,0x9,0xfb, +0x6,0xf6,0xe,0xf1,0x99,0xec,0x0,0xe9,0xc,0xe7,0x81,0xe5, +0xee,0xe3,0x69,0xe3,0xc0,0xe3,0x8,0xe5,0xd0,0xe6,0x22,0xe8, +0xbd,0xe9,0x8,0xec,0xc0,0xee,0xce,0xf1,0x79,0xf5,0x1b,0xfa, +0xbd,0xfe,0x5d,0x3,0x9,0x8,0xbc,0xb,0xa6,0xf,0xb4,0x13, +0x53,0x16,0x3,0x18,0xce,0x18,0x6a,0x19,0x6c,0x1a,0xb9,0x1a, +0x64,0x1a,0x9,0x19,0xe3,0x16,0xff,0x14,0x56,0x12,0xcc,0xe, +0xb4,0xa,0x2a,0x6,0xe4,0x1,0xc,0xfd,0xe,0xf8,0xff,0xf3, +0x3c,0xf0,0xce,0xec,0xc8,0xe9,0x6e,0xe7,0x0,0xe6,0xf,0xe5, +0xbd,0xe4,0x98,0xe4,0xff,0xe4,0x89,0xe6,0x4e,0xe8,0xae,0xea, +0xb4,0xed,0xcf,0xf0,0x8a,0xf4,0xa0,0xf8,0xff,0xfc,0x73,0x1, +0x5e,0x5,0x3,0x9,0x30,0xc,0x21,0xf,0x4b,0x12,0x2f,0x15, +0x5d,0x17,0xa6,0x18,0xb2,0x19,0x95,0x1a,0xd8,0x1a,0x8e,0x1a, +0x20,0x19,0x3b,0x17,0x2b,0x15,0xb9,0x11,0xea,0xd,0x27,0xa, +0x4,0x6,0x4d,0x2,0x7e,0xfe,0x8d,0xfa,0xd5,0xf6,0x12,0xf3, +0xb7,0xef,0x78,0xec,0x95,0xe9,0x96,0xe7,0xf4,0xe5,0x14,0xe5, +0x9,0xe5,0x8e,0xe5,0x25,0xe7,0x85,0xe9,0x23,0xec,0xce,0xee, +0xd9,0xf1,0xb1,0xf5,0x93,0xf9,0x6,0xfd,0xbb,0x0,0xed,0x4, +0x14,0x9,0x33,0xd,0xb,0x11,0xbd,0x13,0x18,0x16,0x81,0x18, +0xce,0x19,0x3b,0x1a,0x17,0x1a,0x65,0x19,0x2d,0x18,0xd8,0x15, +0x35,0x13,0x7f,0x10,0x13,0xd,0xe5,0x9,0xd1,0x6,0x2a,0x3, +0x7,0xff,0x36,0xfa,0x7c,0xf5,0x3e,0xf1,0x67,0xed,0x70,0xea, +0xba,0xe7,0x5c,0xe5,0xf0,0xe3,0xc9,0xe2,0x2e,0xe2,0x99,0xe2, +0xb9,0xe3,0x63,0xe5,0x14,0xe7,0x46,0xe9,0x8b,0xec,0xe3,0xef, +0x7d,0xf3,0xc8,0xf7,0xfe,0xfb,0x80,0x0,0xfc,0x4,0x7c,0x8, +0xe3,0xb,0x69,0xf,0x5b,0x12,0x73,0x14,0xae,0x15,0xd8,0x16, +0xbc,0x17,0xd9,0x17,0xe3,0x17,0x28,0x17,0x13,0x15,0xd7,0x12, +0xbf,0x10,0x2a,0xe,0xff,0xa,0x91,0x7,0xee,0x3,0x1a,0x0, +0x69,0xfc,0xdb,0xf8,0xbc,0xf5,0xb,0xf3,0x83,0xf0,0xa2,0xee, +0x11,0xed,0xac,0xeb,0xe6,0xea,0xb,0xea,0xa4,0xe9,0xc7,0xea, +0xbc,0xec,0xa6,0xee,0x98,0xf0,0x1c,0xf3,0xe9,0xf5,0xf0,0xf8, +0x7d,0xfc,0x9d,0xff,0x56,0x2,0xc7,0x4,0x99,0x6,0xa7,0x8, +0x4c,0xa,0x71,0xb,0xfb,0xc,0x53,0xd,0xa3,0xc,0x7d,0xc, +0x27,0xc,0x1b,0xb,0x76,0x9,0x68,0x7,0x1,0x5,0xf4,0x1, +0xbf,0xfe,0xe4,0xfb,0x6d,0xf9,0xcf,0xf6,0xf8,0xf3,0xa3,0xf1, +0x41,0xef,0xfc,0xec,0xe4,0xeb,0x10,0xeb,0xad,0xe9,0x4f,0xe8, +0xe8,0xe7,0x8a,0xe8,0x53,0xe9,0x58,0xea,0xd9,0xeb,0x7d,0xed, +0x3e,0xef,0xa3,0xf1,0xf9,0xf4,0xa9,0xf7,0x78,0xf9,0x6,0xfc, +0x68,0xfe,0x38,0x0,0x42,0x2,0xc4,0x3,0xda,0x4,0xb8,0x5, +0x15,0x6,0x31,0x6,0xc1,0x5,0xf4,0x4,0xdd,0x3,0x48,0x2, +0x7e,0x0,0x43,0xfe,0x35,0xfc,0x4e,0xfa,0x5f,0xf7,0xc4,0xf4, +0x43,0xf3,0x80,0xf1,0x9e,0xef,0x11,0xee,0xe8,0xec,0x51,0xec, +0x83,0xeb,0x6f,0xea,0x2,0xea,0xf9,0xe9,0x57,0xea,0xcd,0xeb, +0x76,0xed,0x64,0xee,0x74,0xef,0x5d,0xf1,0x83,0xf3,0x28,0xf5, +0x5,0xf7,0x88,0xf9,0x2a,0xfb,0x37,0xfc,0x12,0xfe,0xa5,0xff, +0x6e,0x0,0xa,0x1,0x5f,0x1,0x90,0x1,0x8b,0x1,0x20,0x1, +0x3b,0x0,0xfd,0xfe,0x18,0xfe,0xfe,0xfc,0x4d,0xfb,0xae,0xf9, +0x9f,0xf7,0xa3,0xf5,0x71,0xf4,0xcd,0xf2,0x2b,0xf1,0x6e,0xf0, +0xbe,0xef,0x42,0xef,0x7a,0xef,0xe7,0xef,0x2c,0xf0,0x63,0xf0, +0xf3,0xf0,0x40,0xf2,0xfe,0xf3,0x7a,0xf5,0xfd,0xf6,0xf8,0xf8, +0xcf,0xfa,0x8c,0xfc,0x64,0xfe,0xfa,0xff,0x9e,0x1,0x4a,0x3, +0xc6,0x4,0xfa,0x5,0xbe,0x6,0x93,0x7,0xf0,0x7,0x9e,0x7, +0xc7,0x7,0xe0,0x7,0x9f,0x7,0x35,0x7,0xcb,0x5,0x3b,0x4, +0xf2,0x2,0x67,0x1,0x32,0x0,0x85,0xfe,0x11,0xfc,0x4a,0xfa, +0x2d,0xf9,0x25,0xf8,0xfd,0xf6,0xf0,0xf5,0xb1,0xf5,0xaf,0xf5, +0x32,0xf5,0x2a,0xf5,0x21,0xf6,0x40,0xf7,0x29,0xf8,0xf8,0xf8, +0xf5,0xf9,0xf1,0xfb,0x7c,0xfe,0x76,0x0,0xa,0x2,0x7a,0x3, +0xef,0x4,0x6a,0x6,0x92,0x7,0xd6,0x8,0x12,0xa,0xa2,0xa, +0xa6,0xa,0x1a,0xa,0x90,0x9,0x8a,0x9,0x58,0x9,0x92,0x8, +0xca,0x7,0x2e,0x7,0xe8,0x5,0xfc,0x3,0x77,0x2,0x81,0x1, +0x8c,0x0,0x40,0xff,0xaf,0xfd,0xeb,0xfb,0xa3,0xfa,0x9c,0xfa, +0x93,0xfa,0x3f,0xfa,0x9c,0xfa,0xd0,0xfa,0xde,0xfa,0x32,0xfb, +0xec,0xfb,0xa9,0xfd,0xf7,0xfe,0xcb,0xff,0x2f,0x1,0x4e,0x2, +0xd2,0x3,0x7f,0x5,0x4c,0x6,0x6,0x7,0xa8,0x7,0x45,0x8, +0xb1,0x8,0x95,0x8,0x8d,0x8,0x11,0x8,0x64,0x7,0x4,0x7, +0x6a,0x6,0x10,0x6,0x32,0x5,0x83,0x3,0xe,0x2,0xce,0x0, +0xa,0x0,0xf7,0xfe,0x80,0xfd,0xc4,0xfc,0xc8,0xfb,0x0,0xfb, +0xf4,0xfa,0xa5,0xfa,0x94,0xfa,0xc2,0xfa,0xf1,0xfa,0x5a,0xfb, +0xa0,0xfb,0x18,0xfc,0xdd,0xfc,0x8c,0xfd,0x3a,0xfe,0x37,0xff, +0xb7,0x0,0x35,0x2,0x69,0x3,0xff,0x3,0xe,0x4,0xa8,0x4, +0x24,0x5,0x0,0x5,0xf6,0x4,0xed,0x4,0xeb,0x4,0x8c,0x4, +0xd2,0x3,0x6,0x3,0x5f,0x2,0x72,0x2,0xa4,0x1,0x28,0x0, +0x7d,0xff,0x1b,0xfe,0xdd,0xfc,0x8e,0xfc,0xaf,0xfb,0xfc,0xfa, +0x80,0xfa,0x43,0xfa,0x94,0xfa,0x5c,0xfa,0x12,0xfa,0xd9,0xf9, +0x9d,0xf9,0xc6,0xf9,0xc3,0xf9,0xd1,0xf9,0x99,0xf9,0x64,0xf9, +0x21,0xfa,0xb1,0xfa,0x10,0xfb,0x7c,0xfb,0xd,0xfc,0x38,0xfd, +0xbb,0xfd,0xfb,0xfd,0x83,0xfe,0xdd,0xfe,0xc8,0xff,0x30,0x0, +0xfd,0xff,0x5a,0x0,0xba,0x0,0x79,0x1,0x26,0x2,0x34,0x2, +0x50,0x2,0x5e,0x2,0xa7,0x2,0x96,0x2,0xd9,0x1,0xe0,0x1, +0x4b,0x2,0x2b,0x2,0x4a,0x2,0xd5,0x2,0x1,0x3,0xf3,0x2, +0x19,0x3,0x22,0x3,0x2,0x3,0x8a,0x2,0xea,0x1,0xfb,0x1, +0xa3,0x1,0xc8,0x0,0x68,0x0,0x37,0xff,0x29,0xfe,0xf,0xfe, +0x5a,0xfd,0xb9,0xfc,0x37,0xfc,0x53,0xfb,0x76,0xfa,0xa7,0xf9, +0x8d,0xf9,0xd7,0xf9,0xa6,0xf9,0x1c,0xf9,0xec,0xf8,0xab,0xf9, +0x3d,0xfa,0x40,0xfa,0xcb,0xfa,0xe,0xfb,0xf,0xfb,0xda,0xfb, +0x2c,0xfc,0xc,0xfc,0x8b,0xfc,0xd,0xfd,0x7f,0xfd,0x27,0xfe, +0xa6,0xfe,0xe2,0xfe,0xe,0xff,0x9,0xff,0x18,0xff,0x3a,0xff, +0xad,0xfe,0x10,0xfe,0xc2,0xfd,0x4c,0xfd,0x22,0xfd,0x4,0xfd, +0x5f,0xfc,0xb8,0xfb,0x56,0xfb,0xc4,0xfa,0xd,0xfa,0x8c,0xf9, +0xd4,0xf8,0x3a,0xf8,0x3b,0xf8,0xed,0xf7,0xca,0xf7,0x41,0xf8, +0x72,0xf8,0x9b,0xf8,0xff,0xf8,0xe0,0xf9,0xa,0xfb,0xdc,0xfb, +0xc7,0xfc,0x82,0xfd,0xf2,0xfd,0xd6,0xfe,0xf0,0xff,0xd1,0x0, +0xf7,0x0,0xeb,0x0,0xba,0x1,0x2e,0x2,0x0,0x2,0x0,0x2, +0xbb,0x1,0x63,0x1,0x24,0x1,0xb,0x1,0xa7,0x0,0xa,0x0, +0x15,0x0,0x58,0xff,0x36,0xfe,0xd3,0xfd,0x3f,0xfd,0xe2,0xfc, +0x5d,0xfc,0x4f,0xfb,0xf2,0xfa,0xf,0xfb,0x48,0xfa,0xb6,0xf8, +0x21,0xf8,0x20,0xf9,0xfb,0xf9,0x33,0xfa,0xd0,0xfa,0x8,0xfb, +0xfa,0xfa,0x9c,0xfb,0x5a,0xfc,0x49,0xfd,0x89,0xfe,0xcb,0xff, +0xaf,0x0,0x2e,0x1,0x90,0x1,0x43,0x2,0x5a,0x3,0xd2,0x3, +0xc9,0x3,0xb0,0x3,0xea,0x3,0x69,0x4,0x77,0x4,0x60,0x4, +0xbb,0x3,0x14,0x3,0xf,0x3,0x49,0x2,0xcd,0x0,0xc3,0xff, +0x7d,0xff,0x73,0xff,0xa4,0xfe,0x12,0xfd,0xd7,0xfb,0x26,0xfb, +0x3,0xfb,0xc3,0xfa,0xfb,0xf9,0xc5,0xf9,0x57,0xf9,0xfc,0xf8, +0x29,0xf9,0xd5,0xf8,0x63,0xf9,0x2b,0xfa,0x4e,0xfa,0x8,0xfb, +0x6c,0xfb,0xd2,0xfb,0xcf,0xfc,0xf1,0xfc,0x28,0xfd,0x29,0xfe, +0xfb,0xfe,0x2d,0x0,0x58,0x1,0xdf,0x1,0x62,0x2,0xdb,0x2, +0x59,0x3,0xfb,0x3,0x7b,0x4,0x6b,0x4,0x26,0x4,0x51,0x4, +0x8b,0x4,0x87,0x4,0x3c,0x4,0xc6,0x3,0x93,0x3,0x7f,0x3, +0x4,0x3,0x6a,0x2,0xd2,0x1,0x43,0x1,0x12,0x1,0x6a,0x0, +0x4e,0xff,0xf7,0xfe,0xf2,0xfe,0x92,0xfe,0x22,0xfe,0xa7,0xfd, +0x9b,0xfd,0xb8,0xfd,0x1c,0xfd,0x92,0xfc,0x5e,0xfc,0x43,0xfc, +0x3e,0xfc,0x34,0xfc,0x4f,0xfc,0x71,0xfc,0xad,0xfc,0xc2,0xfc, +0x1a,0xfd,0xb1,0xfd,0xe5,0xfd,0x67,0xfe,0xf3,0xfe,0x72,0xff, +0x1c,0x0,0xd6,0x0,0xe1,0x1,0x7e,0x2,0x8b,0x2,0xd3,0x2, +0x4c,0x3,0x83,0x3,0x6,0x4,0xc2,0x4,0x89,0x4,0xe4,0x3, +0xee,0x3,0xd3,0x3,0x61,0x3,0x6f,0x3,0xe7,0x2,0x4,0x2, +0xb0,0x1,0x42,0x1,0xdc,0x0,0x2e,0x0,0x82,0xff,0x28,0xff, +0xfc,0xfe,0xc3,0xfe,0xf7,0xfd,0xae,0xfd,0xb2,0xfd,0xb3,0xfd, +0xf9,0xfd,0xdf,0xfd,0x20,0xfe,0xdd,0xfe,0x65,0xff,0xb3,0xff, +0xe8,0xff,0x37,0x0,0x98,0x0,0xb,0x1,0x80,0x1,0xad,0x1, +0x3b,0x2,0x79,0x3,0x11,0x4,0x27,0x4,0x4c,0x4,0x77,0x4, +0xff,0x4,0x4c,0x5,0x60,0x5,0x4b,0x5,0xee,0x4,0xa0,0x4, +0x3e,0x4,0x20,0x4,0x41,0x4,0x3e,0x4,0x6,0x4,0x71,0x3, +0x7,0x3,0x12,0x3,0xd8,0x2,0x78,0x2,0x86,0x2,0xa6,0x2, +0x8a,0x2,0x40,0x2,0x3d,0x2,0x57,0x2,0x24,0x2,0x6e,0x2, +0xfc,0x2,0x4d,0x3,0xa7,0x3,0x8d,0x3,0x5a,0x3,0x62,0x3, +0x1e,0x3,0xc4,0x2,0x43,0x2,0xf1,0x1,0xec,0x1,0x77,0x1, +0xfa,0x0,0xe6,0x0,0xfa,0x0,0xc2,0x0,0x50,0x0,0xf6,0xff, +0xb7,0xff,0xef,0xff,0x2b,0x0,0x5a,0x0,0x5d,0x0,0xec,0xff, +0x1d,0x0,0xac,0x0,0xe7,0x0,0x55,0x1,0x87,0x1,0x4,0x1, +0xe4,0x0,0x8a,0x1,0xa,0x2,0xf7,0x1,0xcb,0x1,0xa,0x2, +0x3d,0x2,0x19,0x2,0xc0,0x1,0xab,0x1,0xc9,0x1,0xe5,0x1, +0x1d,0x2,0x5f,0x1,0xe0,0x0,0x27,0x1,0xe8,0x0,0x3,0x1, +0x25,0x1,0xc,0x1,0x1a,0x1,0x23,0x1,0x11,0x1,0xf6,0x0, +0x5,0x1,0xce,0x0,0xcb,0x0,0xd8,0x0,0xa7,0x0,0xbe,0x0, +0xeb,0x0,0xc,0x1,0xc,0x1,0x34,0x1,0x53,0x1,0x49,0x1, +0x92,0x1,0xef,0x1,0xed,0x1,0xcc,0x1,0xaf,0x1,0x90,0x1, +0x4,0x2,0x4b,0x2,0x14,0x2,0x9d,0x1,0xb8,0x0,0xcc,0xff, +0x79,0xfe,0x5a,0xfd,0xce,0xfc,0xfb,0xfc,0xdd,0xfd,0x7c,0xfe, +0x84,0xff,0x67,0x0,0x94,0x0,0x96,0x0,0xfa,0xff,0xe2,0xfe, +0x26,0xfe,0x6e,0xfe,0x7,0xff,0x7c,0xff,0x6c,0x0,0x69,0x1, +0xeb,0x1,0x2c,0x2,0x21,0x2,0xe,0x2,0x71,0x2,0xf9,0x2, +0xa,0x3,0x4,0x3,0xfb,0x3,0x8,0x5,0x78,0x5,0x1b,0x6, +0x39,0x6,0xf0,0x5,0xd8,0x5,0x39,0x5,0x30,0x4,0x80,0x3, +0x68,0x3,0xcd,0x3,0x1b,0x4,0xeb,0x3,0xe1,0x3,0xe6,0x3, +0xbb,0x3,0x9a,0x3,0x80,0x3,0x47,0x3,0xb9,0x2,0xf8,0x1, +0x41,0x1,0xe0,0x0,0x91,0x0,0xee,0x0,0xb8,0x1,0x57,0x1, +0x19,0x1,0x2a,0x1,0x50,0x0,0x7d,0xff,0x36,0xff,0xca,0xfe, +0xb0,0xfe,0x35,0xff,0x92,0xff,0xc8,0xff,0x79,0xff,0x7f,0xff, +0xb0,0xff,0x5a,0xff,0xac,0xff,0x7d,0xff,0x1a,0xff,0x26,0xff, +0x34,0xff,0x8e,0xff,0xba,0xff,0x4c,0x0,0xf6,0x0,0x8d,0x1, +0x28,0x2,0x52,0x2,0x3f,0x2,0x2a,0x2,0x71,0x2,0xbc,0x2, +0x27,0x3,0x91,0x3,0xef,0x3,0xb,0x4,0xda,0x3,0xfd,0x3, +0xb3,0x3,0x8d,0x3,0xd6,0x3,0xbe,0x3,0x1f,0x3,0x86,0x2, +0x55,0x2,0xc8,0x1,0x2c,0x1,0x9b,0x0,0x72,0x0,0x3e,0x0, +0xb1,0xff,0x9a,0xff,0x4,0xff,0xd8,0xfe,0x1,0xff,0xc1,0xfe, +0x0,0xff,0xfc,0xfe,0x6,0xff,0x6e,0xff,0x7d,0xff,0xa3,0xff, +0x63,0x0,0xad,0x0,0x74,0x0,0xf8,0x0,0x42,0x1,0x3b,0x1, +0xdd,0x1,0x57,0x2,0x37,0x2,0x88,0x2,0x38,0x3,0x5a,0x3, +0x78,0x3,0xc9,0x3,0x23,0x4,0x4f,0x4,0x2c,0x4,0x4f,0x4, +0x94,0x4,0xd4,0x4,0xe,0x5,0xd,0x5,0xed,0x4,0x87,0x4, +0x24,0x4,0x22,0x4,0xdc,0x3,0x7b,0x3,0x58,0x3,0xda,0x2, +0x77,0x2,0x8f,0x2,0x5a,0x2,0xdf,0x1,0xaa,0x1,0x92,0x1, +0x5b,0x1,0x36,0x1,0x7b,0x1,0xac,0x1,0x53,0x1,0x7f,0x1, +0xc2,0x1,0x8d,0x1,0x8c,0x1,0x56,0x1,0x2f,0x1,0x7d,0x1, +0xae,0x1,0xbb,0x1,0x3d,0x2,0xa2,0x2,0xd2,0x2,0x5f,0x3, +0x5a,0x3,0x50,0x3,0xab,0x3,0xce,0x3,0x9b,0x3,0x51,0x3, +0x8c,0x3,0x8d,0x3,0xce,0x3,0x51,0x4,0xb,0x4,0xe3,0x3, +0xe5,0x3,0xa9,0x3,0x5c,0x3,0x5f,0x3,0x56,0x3,0xe9,0x2, +0xae,0x2,0x9f,0x2,0x7e,0x2,0x24,0x2,0xd6,0x1,0xc1,0x1, +0xbc,0x1,0x7a,0x1,0x22,0x1,0xe6,0x0,0xbe,0x0,0xfd,0x0, +0xb6,0x0,0x6b,0x0,0xc3,0x0,0xde,0x0,0xf7,0x0,0xc9,0x0, +0xb8,0x0,0xfb,0x0,0xfb,0x0,0x23,0x1,0x82,0x1,0xa7,0x1, +0x3a,0x1,0xe7,0x0,0xc2,0x0,0x81,0x0,0xf5,0x0,0xab,0x1, +0xf1,0x1,0x35,0x2,0xb9,0x2,0x2d,0x3,0x40,0x3,0x3a,0x3, +0x76,0x3,0x2,0x4,0x7a,0x4,0x64,0x4,0x1f,0x4,0xcc,0x3, +0xb0,0x3,0x12,0x4,0xd3,0x3,0x91,0x3,0x53,0x4,0xc0,0x4, +0x46,0x4,0x89,0x3,0x11,0x3,0x34,0x3,0x6f,0x3,0x8,0x3, +0x6b,0x2,0xfe,0x1,0x89,0x1,0xef,0x0,0x4b,0x0,0xee,0xff, +0xdf,0xff,0xd3,0xff,0x48,0xff,0xaa,0xfe,0x54,0xfe,0x35,0xfe, +0x28,0xfe,0x8c,0xfd,0x3f,0xfd,0x7d,0xfd,0xc0,0xfd,0xdf,0xfd, +0xab,0xfd,0xd3,0xfd,0x0,0xfe,0x2f,0xfe,0x49,0xfe,0x44,0xfe, +0xbf,0xfe,0x14,0xff,0x37,0xff,0x53,0xff,0x92,0xff,0xfc,0xff, +0x65,0x0,0xa7,0x0,0x95,0x0,0xc2,0x0,0xe,0x1,0x47,0x1, +0x51,0x1,0x74,0x1,0xc6,0x1,0xf3,0x1,0x18,0x2,0xd5,0x1, +0xa0,0x1,0xa7,0x1,0x9d,0x1,0x6d,0x1,0x39,0x1,0x42,0x1, +0x1e,0x1,0xfe,0x0,0x9a,0x0,0x4a,0x0,0x4d,0x0,0x18,0x0, +0xee,0xff,0x9e,0xff,0x75,0xff,0x64,0xff,0x2b,0xff,0xdb,0xfe, +0xb1,0xfe,0xe2,0xfe,0xdf,0xfe,0xbf,0xfe,0x86,0xfe,0x75,0xfe, +0x79,0xfe,0x6b,0xfe,0x83,0xfe,0x82,0xfe,0xb9,0xfe,0xe6,0xfe, +0xfa,0xfe,0x1e,0xff,0x3e,0xff,0x7c,0xff,0xb4,0xff,0xe6,0xff, +0xb,0x0,0x5a,0x0,0x8f,0x0,0xa9,0x0,0xbf,0x0,0xd0,0x0, +0xc,0x1,0x1f,0x1,0x35,0x1,0x35,0x1,0x49,0x1,0x6b,0x1, +0x55,0x1,0x4b,0x1,0x36,0x1,0x29,0x1,0xfb,0x0,0xda,0x0, +0xad,0x0,0x7e,0x0,0x8a,0x0,0x4b,0x0,0x10,0x0,0xcd,0xff, +0x81,0xff,0x68,0xff,0x3b,0xff,0x19,0xff,0xa,0xff,0xee,0xfe, +0xe7,0xfe,0xf1,0xfe,0xcf,0xfe,0xea,0xfe,0xf7,0xfe,0xd6,0xfe, +0xed,0xfe,0xec,0xfe,0x27,0xff,0x5b,0xff,0x7a,0xff,0xaa,0xff, +0xa5,0xff,0xd0,0xff,0x16,0x0,0x2b,0x0,0x35,0x0,0x6d,0x0, +0x76,0x0,0x7a,0x0,0x96,0x0,0x88,0x0,0xbc,0x0,0xcd,0x0, +0xc2,0x0,0xc6,0x0,0xaf,0x0,0xaa,0x0,0x88,0x0,0x5b,0x0, +0x5f,0x0,0x74,0x0,0x50,0x0,0x38,0x0,0x1a,0x0,0xf1,0xff, +0xd8,0xff,0xa6,0xff,0xa3,0xff,0x96,0xff,0x99,0xff,0x8e,0xff, +0x70,0xff,0x70,0xff,0x49,0xff,0x46,0xff,0x21,0xff,0xfc,0xfe, +0xfb,0xfe,0xde,0xfe,0xe0,0xfe,0xf1,0xfe,0x8,0xff,0x2f,0xff, +0x7b,0xff,0x94,0xff,0x9f,0xff,0xb4,0xff,0xa0,0xff,0xad,0xff, +0xa8,0xff,0xc1,0xff,0xdb,0xff,0xf8,0xff,0x39,0x0,0x59,0x0, +0x7b,0x0,0x97,0x0,0xb3,0x0,0xa3,0x0,0x8f,0x0,0x90,0x0, +0x9f,0x0,0xc1,0x0,0xaa,0x0,0xa9,0x0,0xa6,0x0,0xb2,0x0, +0x9d,0x0,0x59,0x0,0x51,0x0,0xa,0x0,0xe4,0xff,0xe9,0xff, +0xc2,0xff,0xcf,0xff,0xee,0xff,0xe6,0xff,0xc6,0xff,0xa7,0xff, +0x87,0xff,0x81,0xff,0x5f,0xff,0x2e,0xff,0x47,0xff,0x69,0xff, +0x7e,0xff,0x92,0xff,0xb9,0xff,0xcc,0xff,0xd1,0xff,0xe9,0xff, +0xf2,0xff,0xf9,0xff,0xf1,0xff,0x1,0x0,0x24,0x0,0x32,0x0, +0x40,0x0,0x43,0x0,0x4d,0x0,0x3b,0x0,0x29,0x0,0x49,0x0, +0x43,0x0,0x3f,0x0,0x45,0x0,0x26,0x0,0x28,0x0,0x36,0x0, +0x3e,0x0,0x3d,0x0,0x33,0x0,0x2e,0x0,0x1e,0x0,0x15,0x0, +0xf5,0xff,0xef,0xff,0xf2,0xff,0xdc,0xff,0xf2,0xff,0xf1,0xff, +0xec,0xff,0xf3,0xff,0xe7,0xff,0xe0,0xff,0xde,0xff,0xe1,0xff, +0xda,0xff,0xdd,0xff,0xe3,0xff,0xeb,0xff,0xe0,0xff,0xd3,0xff, +0xd0,0xff,0xc7,0xff,0xc4,0xff,0xac,0xff,0xbb,0xff,0xad,0xff, +0x9f,0xff,0xbb,0xff,0x9e,0xff,0x9c,0xff,0x94,0xff,0x94,0xff, +0x95,0xff,0x89,0xff,0x90,0xff,0x7b,0xff,0x94,0xff,0xa5,0xff, +0xba,0xff,0xe1,0xff,0xf2,0xff,0x7,0x0,0xe2,0xff,0xd7,0xff, +0xf0,0xff,0xe7,0xff,0xf2,0xff,0xf,0x0,0x8,0x0,0x12,0x0, +0x2d,0x0,0x7,0x0,0xf1,0xff,0xf6,0xff,0xe4,0xff,0xba,0xff, +0xa1,0xff,0xa5,0xff,0x97,0xff,0xaa,0xff,0xb8,0xff,0xb1,0xff, +0xbe,0xff,0xc9,0xff,0xab,0xff,0x88,0xff,0x91,0xff,0x7b,0xff, +0x6a,0xff,0x6e,0xff,0x76,0xff,0x92,0xff,0x9d,0xff,0xb0,0xff, +0xa5,0xff,0xa1,0xff,0xcd,0xff,0xcc,0xff,0xbe,0xff,0xdd,0xff, +0xcb,0xff,0xca,0xff,0xf9,0xff,0xf4,0xff,0x13,0x0,0x2f,0x0, +0x33,0x0,0x23,0x0,0xfd,0xff,0xf8,0xff,0xc4,0xff,0xa5,0xff, +0xaa,0xff,0xaf,0xff,0xa7,0xff,0x9c,0xff,0xad,0xff,0x9d,0xff, +0xa9,0xff,0xa4,0xff,0xa0,0xff,0x9c,0xff,0x87,0xff,0xa0,0xff, +0x9e,0xff,0xbb,0xff,0xd5,0xff,0xdd,0xff,0xf1,0xff,0xf1,0xff, +0xf0,0xff,0xe0,0xff,0xe0,0xff,0xd9,0xff,0xd5,0xff,0xb3,0xff, +0xb3,0xff,0xd6,0xff,0xc3,0xff,0xd8,0xff,0xdc,0xff,0xe2,0xff, +0xde,0xff,0xdd,0xff,0xe1,0xff,0xae,0xff,0xbd,0xff,0xbd,0xff, +0xd0,0xff,0xe6,0xff,0xcf,0xff,0xde,0xff,0xed,0xff,0x18,0x0, +0x27,0x0,0x1e,0x0,0x8,0x0,0xfc,0xff,0x16,0x0,0x13,0x0, +0x10,0x0,0x3,0x0,0x26,0x0,0x5e,0x0,0x62,0x0,0x5c,0x0, +0x56,0x0,0x42,0x0,0x34,0x0,0x39,0x0,0x7,0x0,0x8,0x0, +0x12,0x0,0xe7,0xff,0xf9,0xff,0xe4,0xff,0xc8,0xff,0xce,0xff, +0xc0,0xff,0xb6,0xff,0xba,0xff,0xbc,0xff,0xbf,0xff,0xbd,0xff, +0xb2,0xff,0xd4,0xff,0xd4,0xff,0xbf,0xff,0xdd,0xff,0xe5,0xff, +0xd6,0xff,0xd2,0xff,0xf1,0xff,0x9,0x0,0x7,0x0,0xf0,0xff, +0xf5,0xff,0x7,0x0,0x4,0x0,0x27,0x0,0x2a,0x0,0x28,0x0, +0x33,0x0,0x38,0x0,0x4d,0x0,0x49,0x0,0x48,0x0,0x2a,0x0, +0x1a,0x0,0x1c,0x0,0x1e,0x0,0x35,0x0,0x21,0x0,0x8,0x0, +0xf,0x0,0x14,0x0,0xd,0x0,0x2c,0x0,0x3e,0x0,0x40,0x0, +0x48,0x0,0x2c,0x0,0x35,0x0,0x15,0x0,0x2,0x0,0x5,0x0, +0xd6,0xff,0xeb,0xff,0xe1,0xff,0xd7,0xff,0xec,0xff,0xec,0xff, +0xfd,0xff,0xfb,0xff,0xf4,0xff,0xe2,0xff,0xe7,0xff,0xe3,0xff, +0xd8,0xff,0xfa,0xff,0xc,0x0,0x1d,0x0,0x2b,0x0,0x31,0x0, +0x24,0x0,0x1c,0x0,0x28,0x0,0x1b,0x0,0xb,0x0,0x11,0x0, +0x27,0x0,0x29,0x0,0x49,0x0,0x5f,0x0,0x41,0x0,0x4b,0x0, +0x4e,0x0,0x3b,0x0,0x1a,0x0,0xfe,0xff,0xf2,0xff,0xe4,0xff, +0xfb,0xff,0x1,0x0,0xf9,0xff,0xee,0xff,0xe5,0xff,0xe5,0xff, +0xc9,0xff,0xe2,0xff,0xe7,0xff,0xc8,0xff,0xd9,0xff,0xc8,0xff, +0xda,0xff,0xfe,0xff,0xfa,0xff,0x1a,0x0,0x26,0x0,0x1b,0x0, +0x2c,0x0,0x2d,0x0,0x1e,0x0,0x2f,0x0,0x34,0x0,0x26,0x0, +0x36,0x0,0x43,0x0,0x4b,0x0,0x4e,0x0,0x53,0x0,0x5a,0x0, +0x4d,0x0,0x45,0x0,0x2f,0x0,0xc,0x0,0xf7,0xff,0x7,0x0, +0x7,0x0,0xf0,0xff,0x6,0x0,0x1,0x0,0xf5,0xff,0xf5,0xff, +0xe1,0xff,0xe3,0xff,0xdb,0xff,0xdf,0xff,0x4,0x0,0xf,0x0, +0xfe,0xff,0x16,0x0,0x2d,0x0,0x16,0x0,0x28,0x0,0x3f,0x0, +0x3a,0x0,0x36,0x0,0x3a,0x0,0x38,0x0,0x1c,0x0,0x17,0x0, +0x17,0x0,0xc,0x0,0x18,0x0,0x31,0x0,0x45,0x0,0x32,0x0, +0x14,0x0,0xc,0x0,0x9,0x0,0x2,0x0,0xf4,0xff,0xec,0xff, +0xdd,0xff,0xc4,0xff,0xb7,0xff,0xa9,0xff,0xa6,0xff,0xa8,0xff, +0xb0,0xff,0xb7,0xff,0xb7,0xff,0xc9,0xff,0xc7,0xff,0xd2,0xff, +0xe8,0xff,0xd9,0xff,0xe7,0xff,0xf5,0xff,0xfd,0xff,0xd,0x0, +0x18,0x0,0x29,0x0,0x33,0x0,0x54,0x0,0x74,0x0,0x73,0x0, +0x63,0x0,0x58,0x0,0x4b,0x0,0x4d,0x0,0x5e,0x0,0x55,0x0, +0x4e,0x0,0x3b,0x0,0x32,0x0,0x3f,0x0,0x58,0x0,0x5f,0x0, +0x3c,0x0,0x43,0x0,0x1b,0x0,0xf2,0xff,0xf4,0xff,0xd3,0xff, +0xe4,0xff,0xfb,0xff,0xfc,0xff,0xef,0xff,0xfb,0xff,0x17,0x0, +0xb,0x0,0x14,0x0,0xff,0xff,0x0,0x0,0x16,0x0,0xe,0x0, +0x1c,0x0,0x33,0x0,0x4b,0x0,0x48,0x0,0x61,0x0,0x6c,0x0, +0x53,0x0,0x5a,0x0,0x5b,0x0,0x5d,0x0,0x62,0x0,0x67,0x0, +0x61,0x0,0x66,0x0,0x6d,0x0,0x6c,0x0,0x65,0x0,0x44,0x0, +0x48,0x0,0x35,0x0,0x28,0x0,0x33,0x0,0x15,0x0,0x17,0x0, +0xd,0x0,0xfe,0xff,0xf1,0xff,0xdc,0xff,0xd3,0xff,0xd3,0xff, +0xda,0xff,0xbd,0xff,0xd0,0xff,0xee,0xff,0xe7,0xff,0xf4,0xff, +0xee,0xff,0xf5,0xff,0xfb,0xff,0xf4,0xff,0x3,0x0,0x18,0x0, +0x36,0x0,0x4a,0x0,0x47,0x0,0x52,0x0,0x61,0x0,0x50,0x0, +0x46,0x0,0x35,0x0,0x25,0x0,0x28,0x0,0x1f,0x0,0x26,0x0, +0x1e,0x0,0x12,0x0,0x1a,0x0,0x12,0x0,0xfd,0xff,0xe8,0xff, +0xda,0xff,0xd1,0xff,0xea,0xff,0xf7,0xff,0xfe,0xff,0x15,0x0, +0x6,0x0,0xf9,0xff,0xfd,0xff,0x0,0x0,0x3,0x0,0xfa,0xff, +0x2,0x0,0x7,0x0,0x4,0x0,0xb,0x0,0x12,0x0,0x1f,0x0, +0x27,0x0,0x18,0x0,0x12,0x0,0xff,0xff,0xfb,0xff,0x1a,0x0, +0x1d,0x0,0x36,0x0,0x3e,0x0,0x1e,0x0,0x20,0x0,0x19,0x0, +0x18,0x0,0x15,0x0,0xf,0x0,0x14,0x0,0x1,0x0,0xf8,0xff, +0xfe,0xff,0xff,0xff,0xf7,0xff,0xeb,0xff,0xfb,0xff,0x17,0x0, +0x13,0x0,0x3,0x0,0x4,0x0,0xf8,0xff,0xf8,0xff,0x4,0x0, +0x3,0x0,0x13,0x0,0x16,0x0,0xfa,0xff,0xeb,0xff,0xf6,0xff, +0xff,0xff,0xfe,0xff,0xf8,0xff,0x0,0x0,0x13,0x0,0xd,0x0, +0x13,0x0,0x16,0x0,0x17,0x0,0x1d,0x0,0x1b,0x0,0x38,0x0, +0x30,0x0,0x1a,0x0,0x17,0x0,0xfb,0xff,0xff,0xff,0x10,0x0, +0x15,0x0,0x22,0x0,0x1c,0x0,0x10,0x0,0xa,0x0,0x4,0x0, +0x7,0x0,0x2,0x0,0xfc,0xff,0x3,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0x5,0x0,0x12,0x0,0xfe,0xff,0xf9,0xff,0xee,0xff, +0xda,0xff,0xe1,0xff,0xed,0xff,0xfd,0xff,0xe,0x0,0x14,0x0, +0xe,0x0,0x17,0x0,0x1d,0x0,0x18,0x0,0x1e,0x0,0x1b,0x0, +0x28,0x0,0x34,0x0,0x3c,0x0,0x48,0x0,0x3d,0x0,0x34,0x0, +0x36,0x0,0x28,0x0,0x12,0x0,0x2,0x0,0xf8,0xff,0xfc,0xff, +0xf8,0xff,0xf4,0xff,0xf8,0xff,0xef,0xff,0xf4,0xff,0xdf,0xff, +0xd2,0xff,0xe6,0xff,0xe2,0xff,0xe2,0xff,0xe8,0xff,0xf7,0xff, +0xff,0xff,0x9,0x0,0x10,0x0,0xf,0x0,0x22,0x0,0x1b,0x0, +0x23,0x0,0x2f,0x0,0x2c,0x0,0x41,0x0,0x45,0x0,0x45,0x0, +0x41,0x0,0x3d,0x0,0x40,0x0,0x3d,0x0,0x39,0x0,0x37,0x0, +0x37,0x0,0x32,0x0,0x41,0x0,0x3a,0x0,0x2b,0x0,0x2c,0x0, +0x1e,0x0,0x10,0x0,0x8,0x0,0xd,0x0,0x0,0x0,0xff,0xff, +0xb,0x0,0x6,0x0,0xd,0x0,0xfd,0xff,0xf7,0xff,0xfe,0xff, +0xfe,0xff,0xf1,0xff,0xe8,0xff,0xfa,0xff,0xf9,0xff,0x10,0x0, +0x25,0x0,0x21,0x0,0x34,0x0,0x30,0x0,0x22,0x0,0x1b,0x0, +0x20,0x0,0x29,0x0,0x2d,0x0,0x31,0x0,0x28,0x0,0x27,0x0, +0x2d,0x0,0x32,0x0,0x3a,0x0,0x3a,0x0,0x29,0x0,0x19,0x0, +0x13,0x0,0xb,0x0,0x6,0x0,0xfe,0xff,0xfa,0xff,0xf3,0xff, +0xec,0xff,0xf4,0xff,0xea,0xff,0xe4,0xff,0xe6,0xff,0xdd,0xff, +0xde,0xff,0xdb,0xff,0xd7,0xff,0xd7,0xff,0xd9,0xff,0xdf,0xff, +0xe5,0xff,0xf1,0xff,0xf8,0xff,0xfb,0xff,0x2,0x0,0x5,0x0, +0x6,0x0,0x9,0x0,0x16,0x0,0x1e,0x0,0x15,0x0,0xb,0x0, +0x6,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0x18,0x0,0x18,0x0, +0x16,0x0,0x17,0x0,0x19,0x0,0x10,0x0,0x9,0x0,0x11,0x0, +0x8,0x0,0xff,0xff,0x5,0x0,0x1,0x0,0xf3,0xff,0xf1,0xff, +0xf4,0xff,0xf4,0xff,0xfb,0xff,0xfb,0xff,0xff,0xff,0x1,0x0, +0xf9,0xff,0x1,0x0,0x1,0x0,0xfc,0xff,0x3,0x0,0x10,0x0, +0x17,0x0,0x1a,0x0,0x1e,0x0,0x1c,0x0,0x1a,0x0,0x19,0x0, +0x16,0x0,0x12,0x0,0xd,0x0,0x12,0x0,0x10,0x0,0xb,0x0, +0x10,0x0,0xf,0x0,0xa,0x0,0xd,0x0,0x9,0x0,0xff,0xff, +0x1,0x0,0xf6,0xff,0xf0,0xff,0xf5,0xff,0xf0,0xff,0xf9,0xff, +0xf8,0xff,0xf0,0xff,0xf8,0xff,0xf8,0xff,0xfb,0xff,0xfe,0xff, +0x0,0x0,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xfe,0xff,0x6,0x0, +0xf,0x0,0x14,0x0,0x13,0x0,0x10,0x0,0x18,0x0,0x12,0x0, +0x9,0x0,0x9,0x0,0x3,0x0,0x2,0x0,0x6,0x0,0x9,0x0, +0x6,0x0,0x8,0x0,0xc,0x0,0xa,0x0,0x7,0x0,0x3,0x0, +0xff,0xff,0xf7,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0xfd,0xff,0xfd,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xf8,0xff,0x2,0x0,0x1,0x0,0x5,0x0,0xc,0x0, +0xa,0x0,0xf,0x0,0xd,0x0,0xc,0x0,0x9,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0x5,0x0,0x9,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x6,0x0,0xb,0x0,0xb,0x0,0xc,0x0, +0x8,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x0,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0x1,0x0,0x2,0x0,0xfe,0xff, +0xfa,0xff,0xfa,0xff,0xfd,0xff,0xfc,0xff,0xf8,0xff,0xfb,0xff, +0xfb,0xff,0xf6,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff, +0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xfd,0xff,0x0,0x0, +0xfd,0xff,0x3,0x0,0x1,0x0,0x1,0x0,0x7,0x0,0x6,0x0, +0x7,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x3,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0xfe,0xff,0xff,0xff, +0x2,0x0,0x3,0x0,0x1,0x0,0xfd,0xff,0xfc,0xff,0xfa,0xff, +0xfd,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff, +0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfb,0xff,0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/pop2.pcm b/src/client/sound/data/pop2.pcm new file mode 100755 index 0000000..3a66c2d --- /dev/null +++ b/src/client/sound/data/pop2.pcm @@ -0,0 +1,583 @@ +unsigned char PCM_pop2[18544] = { +1,0,0,0,2,0,0,0,68,172,0,0,48,36,0,0,62,3,60,3,41,3,248,2,176,2,100,2,18,2,189,1, +126,1,98,1,109,1,132,1,178,1,238,1,21,2,1,2,196,1,95,1,194,0,250,255,42,255,106,254,188,253,37,253, +217,252,188,252,189,252,220,252,251,252,39,253,255,252,188,252,68,252,173,251,232,250,28,250,89,249,153,248,227,247,41,247, +131,246,220,245,92,245,19,245,228,244,20,245,130,245,31,246,193,246,98,247,232,247,58,248,63,248,32,248,217,247,105,247, +239,246,117,246,2,246,168,245,111,245,128,245,178,245,46,246,246,246,226,247,228,248,250,249,16,251,14,252,242,252,192,253, +133,254,22,255,171,255,43,0,137,0,220,0,49,1,127,1,204,1,55,2,222,2,176,3,169,4,84,6,89,8,175,10, +107,14,147,18,37,23,127,28,219,33,210,38,198,41,170,43,125,44,194,42,96,40,18,38,211,37,246,38,157,41,222,47, +116,55,48,63,81,69,248,73,230,76,184,75,128,72,111,68,84,64,184,60,41,58,212,58,164,61,165,65,210,71,253,78, +32,86,227,91,63,96,43,99,148,98,79,95,189,90,108,84,56,77,3,70,50,64,196,59,61,56,170,54,191,54,146,55, +89,57,240,59,179,62,87,65,162,67,140,69,91,70,207,69,148,68,3,66,19,62,109,57,223,51,78,45,103,38,90,31, +129,24,23,18,27,13,91,10,219,8,43,9,7,12,132,15,62,19,160,22,95,25,184,26,95,25,252,22,80,19,205,13, +251,7,62,2,81,253,11,249,222,245,242,244,224,244,120,245,12,247,151,248,246,249,248,249,141,249,160,248,168,246,148,244, +134,242,48,241,29,240,95,239,22,239,207,238,128,238,44,237,142,235,157,233,242,230,30,228,114,225,30,223,21,221,101,219, +85,218,123,217,196,216,11,216,81,215,128,214,97,213,69,212,49,211,96,210,219,209,164,209,66,210,64,211,187,212,135,214, +122,216,114,218,225,219,210,220,98,221,12,221,78,220,54,219,123,218,42,218,84,218,43,220,67,223,48,227,52,232,221,237, +167,243,181,248,5,253,155,0,0,3,87,4,49,5,190,5,42,6,167,6,107,7,144,8,188,9,223,10,238,11,192,12, +47,13,13,13,192,12,85,12,1,12,203,11,48,12,88,13,209,14,130,16,86,18,224,19,205,20,240,20,146,20,226,19, +25,19,101,18,16,18,114,18,19,19,166,19,22,20,32,20,138,19,151,17,254,14,208,11,168,7,63,3,168,254,64,250, +2,246,254,241,174,238,165,235,236,232,193,230,192,228,210,226,216,224,205,222,133,220,173,217,163,214,115,211,29,208,211,204, +187,201,116,199,114,197,197,195,1,195,138,194,39,194,254,193,214,193,182,193,78,193,202,192,110,192,254,191,148,191,102,191, +92,191,115,191,159,191,216,191,24,192,80,192,114,192,124,192,136,192,144,192,131,192,200,192,60,193,247,193,24,195,163,196, +115,198,125,200,127,202,111,204,62,206,182,207,196,208,201,209,151,210,83,211,30,212,38,213,112,214,226,215,166,217,174,219, +244,221,66,224,167,226,35,229,153,231,219,233,33,236,103,238,147,240,211,242,26,245,165,247,64,250,13,253,25,0,61,3, +125,6,194,9,16,13,76,16,86,19,88,22,85,25,63,28,75,31,98,34,187,37,9,41,70,44,100,47,59,50,176,52, +148,54,70,56,149,57,159,58,114,59,71,60,49,61,44,62,55,63,166,64,57,66,204,67,102,69,204,70,225,71,101,72, +146,72,75,72,156,71,203,70,212,69,230,68,4,68,67,67,158,66,12,66,130,65,247,64,73,64,112,63,79,62,43,61, +167,59,25,58,94,56,118,54,91,52,25,50,127,47,188,44,216,41,219,38,228,35,246,32,13,30,59,27,126,24,183,21, +0,19,62,16,134,13,190,10,230,7,253,4,10,2,21,255,46,252,96,249,158,246,248,243,94,241,208,238,77,236,198,233, +70,231,241,228,180,226,122,224,110,222,114,220,144,218,192,216,10,215,93,213,201,211,61,210,188,208,68,207,217,205,112,204, +29,203,210,201,133,200,77,199,30,198,31,197,82,196,237,195,184,195,235,195,82,196,228,196,119,197,17,198,153,198,52,199, +218,199,143,200,106,201,128,202,182,203,39,205,221,206,209,208,232,210,51,213,162,215,16,218,140,220,243,222,117,225,245,227, +111,230,207,232,36,235,109,237,163,239,217,241,29,244,143,246,42,249,232,251,169,254,123,1,56,4,241,6,141,9,39,12, +183,14,59,17,196,19,69,22,186,24,39,27,138,29,190,31,220,33,224,35,148,37,71,39,230,40,171,42,113,44,69,46, +6,48,178,49,59,51,62,52,16,53,194,53,38,54,110,54,164,54,115,54,43,54,195,53,28,53,92,52,148,51,192,50, +233,49,10,49,10,48,251,46,210,45,134,44,11,43,143,41,212,39,14,38,56,36,107,34,157,32,218,30,19,29,70,27, +109,25,101,23,58,21,18,19,224,16,199,14,161,12,137,10,80,8,25,6,175,3,55,1,177,254,55,252,198,249,88,247, +241,244,135,242,30,240,198,237,125,235,70,233,46,231,51,229,76,227,122,225,208,223,54,222,190,220,125,219,54,218,5,217, +201,215,149,214,108,213,103,212,109,211,174,210,35,210,186,209,107,209,81,209,70,209,103,209,170,209,18,210,106,210,203,210, +29,211,115,211,206,211,58,212,189,212,136,213,94,214,83,215,96,216,143,217,193,218,82,220,231,221,170,223,145,225,131,227, +117,229,89,231,62,233,35,235,30,237,39,239,58,241,119,243,197,245,33,248,169,250,66,253,215,255,108,2,238,4,104,7, +188,9,6,12,72,14,135,16,186,18,226,20,221,22,180,24,139,26,57,28,253,29,169,31,110,33,25,35,189,36,30,38, +75,39,110,40,78,41,47,42,246,42,190,43,124,44,42,45,196,45,63,46,170,46,241,46,26,47,49,47,42,47,252,46, +203,46,108,46,255,45,110,45,206,44,255,43,46,43,62,42,60,41,44,40,247,38,152,37,31,36,125,34,167,32,206,30, +228,28,6,27,31,25,69,23,100,21,139,19,185,17,241,15,62,14,138,12,233,10,63,9,126,7,152,5,169,3,186,1, +223,255,13,254,87,252,172,250,13,249,85,247,138,245,180,243,235,241,59,240,167,238,38,237,222,235,159,234,105,233,62,232, +14,231,232,229,187,228,154,227,113,226,77,225,35,224,1,223,232,221,220,220,221,219,27,219,121,218,241,217,218,217,233,217, +20,218,156,218,36,219,208,219,110,220,31,221,204,221,142,222,90,223,60,224,62,225,97,226,130,227,209,228,31,230,130,231, +245,232,112,234,247,235,131,237,27,239,172,240,68,242,200,243,81,245,203,246,55,248,178,249,52,251,206,252,117,254,61,0, +14,2,234,3,184,5,115,7,55,9,218,10,132,12,31,14,188,15,73,17,215,18,77,20,178,21,24,23,109,24,198,25, +23,27,92,28,156,29,198,30,231,31,232,32,229,33,203,34,156,35,91,36,245,36,76,37,139,37,135,37,42,37,188,36, +17,36,84,35,118,34,167,33,208,32,255,31,46,31,81,30,112,29,132,28,116,27,102,26,59,25,252,23,172,22,79,21, +216,19,91,18,221,16,111,15,3,14,163,12,76,11,242,9,144,8,10,7,128,5,237,3,98,2,217,0,96,255,233,253, +123,252,255,250,99,249,193,247,19,246,109,244,198,242,50,241,166,239,53,238,195,236,126,235,75,234,60,233,99,232,202,231, +32,231,163,230,31,230,149,229,17,229,141,228,21,228,201,227,155,227,118,227,127,227,154,227,189,227,15,228,117,228,231,228, +121,229,6,230,155,230,27,231,138,231,2,232,116,232,3,233,135,233,60,234,239,234,187,235,144,236,115,237,91,238,84,239, +77,240,91,241,110,242,163,243,224,244,66,246,191,247,71,249,208,250,95,252,223,253,103,255,237,0,112,2,5,4,139,5, +13,7,123,8,183,9,249,10,44,12,117,13,191,14,23,16,111,17,186,18,235,19,213,20,181,21,114,22,8,23,154,23, +6,24,94,24,157,24,212,24,10,25,61,25,126,25,208,25,32,26,100,26,147,26,159,26,183,26,152,26,129,26,79,26, +241,25,123,25,248,24,70,24,150,23,230,22,62,22,161,21,239,20,43,20,67,19,85,18,57,17,10,16,222,14,140,13, +50,12,209,10,87,9,219,7,97,6,237,4,135,3,19,2,145,0,245,254,90,253,176,251,12,250,117,248,255,246,168,245, +82,244,17,243,210,241,150,240,108,239,68,238,43,237,28,236,28,235,34,234,69,233,117,232,192,231,34,231,164,230,51,230, +204,229,131,229,48,229,4,229,225,228,199,228,187,228,167,228,164,228,169,228,196,228,243,228,70,229,187,229,66,230,204,230, +100,231,252,231,168,232,101,233,55,234,22,235,23,236,14,237,23,238,24,239,36,240,65,241,109,242,180,243,240,244,83,246, +162,247,13,249,116,250,231,251,95,253,214,254,77,0,181,1,11,3,82,4,152,5,206,6,255,7,43,9,61,10,75,11, +75,12,76,13,62,14,66,15,68,16,84,17,86,18,87,19,68,20,48,21,246,21,168,22,89,23,201,23,63,24,160,24, +253,24,85,25,171,25,253,25,70,26,135,26,171,26,193,26,208,26,198,26,174,26,129,26,45,26,175,25,50,25,154,24, +243,23,94,23,177,22,4,22,70,21,73,20,47,19,3,18,198,16,135,15,69,14,12,13,199,11,141,10,48,9,222,7, +127,6,56,5,249,3,191,2,134,1,66,0,3,255,178,253,107,252,30,251,219,249,164,248,98,247,44,246,232,244,180,243, +131,242,101,241,75,240,50,239,36,238,20,237,8,236,21,235,37,234,82,233,168,232,248,231,100,231,213,230,79,230,225,229, +135,229,73,229,21,229,16,229,13,229,20,229,68,229,107,229,188,229,52,230,185,230,95,231,24,232,232,232,179,233,148,234, +106,235,79,236,43,237,17,238,247,238,241,239,246,240,9,242,67,243,132,244,209,245,26,247,95,248,166,249,195,250,245,251, +15,253,73,254,125,255,197,0,28,2,127,3,228,4,64,6,165,7,254,8,93,10,181,11,21,13,91,14,171,15,209,16, +221,17,187,18,155,19,99,20,44,21,246,21,195,22,139,23,77,24,217,24,79,25,174,25,230,25,19,26,41,26,56,26, +37,26,26,26,234,25,181,25,116,25,33,25,191,24,71,24,173,23,236,22,40,22,73,21,114,20,139,19,182,18,202,17, +225,16,217,15,193,14,156,13,138,12,111,11,110,10,98,9,99,8,86,7,62,6,13,5,214,3,144,2,54,1,212,255, +90,254,207,252,52,251,161,249,10,248,128,246,4,245,151,243,51,242,215,240,140,239,81,238,36,237,33,236,36,235,57,234, +77,233,112,232,137,231,194,230,248,229,82,229,194,228,88,228,217,227,133,227,25,227,200,226,139,226,85,226,65,226,76,226, +121,226,164,226,254,226,91,227,198,227,78,228,215,228,101,229,247,229,133,230,26,231,197,231,129,232,77,233,79,234,96,235, +119,236,149,237,178,238,198,239,249,240,27,242,102,243,182,244,36,246,142,247,243,248,91,250,192,251,48,253,176,254,45,0, +171,1,44,3,146,4,219,5,12,7,40,8,78,9,103,10,139,11,182,12,220,13,1,15,14,16,12,17,250,17,205,18, +130,19,40,20,177,20,27,21,134,21,229,21,72,22,169,22,1,23,83,23,146,23,190,23,203,23,215,23,218,23,220,23, +222,23,195,23,147,23,71,23,212,22,51,22,127,21,199,20,7,20,78,19,149,18,233,17,46,17,116,16,157,15,191,14, +213,13,203,12,194,11,171,10,140,9,106,8,67,7,18,6,221,4,166,3,99,2,30,1,227,255,162,254,114,253,55,252, +13,251,220,249,194,248,168,247,169,246,170,245,189,244,227,243,247,242,37,242,80,241,128,240,224,239,49,239,173,238,20,238, +157,237,19,237,152,236,40,236,183,235,111,235,41,235,234,234,164,234,96,234,21,234,235,233,195,233,186,233,243,233,80,234, +187,234,86,235,241,235,158,236,61,237,227,237,130,238,36,239,200,239,118,240,51,241,11,242,224,242,199,243,180,244,157,245, +154,246,145,247,160,248,180,249,226,250,5,252,38,253,43,254,53,255,32,0,16,1,239,1,206,2,158,3,98,4,23,5, +180,5,83,6,240,6,161,7,66,8,238,8,121,9,254,9,116,10,210,10,62,11,172,11,40,12,165,12,254,12,48,13, +67,13,53,13,2,13,207,12,160,12,147,12,125,12,117,12,92,12,57,12,11,12,184,11,94,11,246,10,110,10,230,9, +76,9,166,8,242,7,70,7,117,6,179,5,206,4,221,3,216,2,211,1,193,0,181,255,171,254,181,253,196,252,218,251, +5,251,52,250,98,249,143,248,169,247,206,246,217,245,238,244,6,244,53,243,113,242,170,241,234,240,25,240,89,239,134,238, +211,237,28,237,168,236,68,236,244,235,168,235,105,235,17,235,179,234,60,234,197,233,81,233,217,232,118,232,47,232,15,232, +245,231,21,232,62,232,123,232,186,232,248,232,69,233,135,233,229,233,58,234,173,234,39,235,168,235,49,236,184,236,69,237, +213,237,103,238,255,238,178,239,111,240,74,241,59,242,80,243,99,244,107,245,86,246,47,247,234,247,135,248,41,249,219,249, +170,250,130,251,87,252,42,253,233,253,159,254,54,255,220,255,113,0,37,1,199,1,101,2,242,2,104,3,221,3,58,4, +149,4,237,4,53,5,131,5,184,5,223,5,0,6,16,6,39,6,35,6,40,6,7,6,227,5,180,5,114,5,49,5, +229,4,146,4,49,4,204,3,76,3,199,2,65,2,165,1,24,1,107,0,198,255,253,254,74,254,143,253,229,252,61,252, +159,251,250,250,78,250,100,249,119,248,122,247,146,246,178,245,237,244,84,244,208,243,85,243,194,242,56,242,153,241,251,240, +95,240,193,239,55,239,179,238,49,238,198,237,96,237,8,237,195,236,144,236,91,236,34,236,227,235,152,235,67,235,234,234, +149,234,88,234,51,234,13,234,6,234,249,233,255,233,9,234,36,234,80,234,157,234,16,235,143,235,25,236,164,236,44,237, +151,237,239,237,62,238,138,238,228,238,68,239,188,239,89,240,246,240,172,241,90,242,17,243,177,243,68,244,209,244,92,245, +245,245,153,246,77,247,27,248,234,248,167,249,68,250,197,250,60,251,144,251,250,251,93,252,245,252,141,253,39,254,186,254, +52,255,171,255,240,255,56,0,115,0,170,0,217,0,11,1,40,1,71,1,94,1,112,1,129,1,138,1,147,1,138,1, +136,1,104,1,68,1,29,1,213,0,145,0,53,0,215,255,110,255,7,255,184,254,100,254,32,254,195,253,113,253,252,252, +135,252,240,251,102,251,221,250,76,250,199,249,33,249,120,248,199,247,23,247,113,246,211,245,93,245,236,244,138,244,12,244, +138,243,249,242,106,242,224,241,97,241,3,241,196,240,124,240,80,240,14,240,216,239,165,239,119,239,88,239,78,239,91,239, +114,239,142,239,177,239,213,239,242,239,10,240,34,240,50,240,72,240,90,240,123,240,163,240,219,240,36,241,140,241,250,241, +128,242,9,243,161,243,42,244,168,244,46,245,155,245,40,246,161,246,53,247,214,247,123,248,31,249,197,249,86,250,245,250, +129,251,26,252,174,252,76,253,227,253,120,254,7,255,134,255,20,0,151,0,36,1,175,1,63,2,201,2,84,3,212,3, +79,4,205,4,51,5,155,5,246,5,59,6,131,6,188,6,8,7,71,7,140,7,184,7,210,7,234,7,209,7,193,7, +163,7,171,7,178,7,196,7,209,7,217,7,219,7,204,7,182,7,162,7,136,7,94,7,52,7,213,6,99,6,235,5, +95,5,224,4,95,4,237,3,127,3,12,3,150,2,16,2,152,1,32,1,186,0,78,0,217,255,81,255,180,254,3,254, +52,253,109,252,187,251,26,251,142,250,24,250,182,249,90,249,252,248,172,248,74,248,250,247,144,247,51,247,210,246,117,246, +43,246,228,245,212,245,181,245,184,245,177,245,174,245,157,245,117,245,84,245,50,245,38,245,49,245,70,245,151,245,226,245, +61,246,161,246,247,246,85,247,161,247,240,247,55,248,131,248,190,248,15,249,87,249,176,249,30,250,177,250,94,251,21,252, +234,252,185,253,141,254,54,255,228,255,123,0,10,1,139,1,17,2,138,2,6,3,125,3,248,3,114,4,240,4,109,5, +234,5,98,6,200,6,43,7,144,7,241,7,98,8,202,8,53,9,162,9,250,9,64,10,111,10,149,10,165,10,168,10, +159,10,132,10,82,10,39,10,243,9,198,9,162,9,140,9,140,9,135,9,129,9,110,9,93,9,36,9,239,8,167,8, +99,8,36,8,223,7,175,7,113,7,66,7,231,6,139,6,16,6,136,5,232,4,74,4,180,3,49,3,182,2,79,2, +250,1,168,1,88,1,13,1,179,0,91,0,234,255,130,255,3,255,133,254,255,253,113,253,226,252,73,252,199,251,76,251, +239,250,172,250,152,250,157,250,152,250,159,250,150,250,136,250,106,250,88,250,76,250,99,250,133,250,152,250,185,250,194,250, +209,250,212,250,220,250,228,250,0,251,25,251,62,251,115,251,176,251,11,252,137,252,30,253,171,253,39,254,150,254,242,254, +62,255,133,255,214,255,68,0,181,0,40,1,141,1,240,1,78,2,197,2,68,3,199,3,96,4,224,4,106,5,184,5, +8,6,65,6,132,6,187,6,252,6,49,7,109,7,154,7,213,7,3,8,54,8,103,8,132,8,166,8,165,8,164,8, +154,8,148,8,144,8,136,8,116,8,73,8,34,8,231,7,176,7,126,7,80,7,49,7,14,7,226,6,180,6,131,6, +89,6,57,6,26,6,230,5,170,5,78,5,232,4,90,4,210,3,71,3,206,2,78,2,224,1,113,1,14,1,182,0, +112,0,43,0,234,255,140,255,57,255,189,254,81,254,211,253,116,253,43,253,234,252,169,252,92,252,6,252,186,251,105,251, +54,251,5,251,249,250,247,250,231,250,217,250,190,250,164,250,157,250,148,250,155,250,166,250,181,250,195,250,211,250,224,250, +252,250,18,251,61,251,87,251,117,251,138,251,165,251,199,251,237,251,32,252,84,252,160,252,215,252,24,253,81,253,135,253, +198,253,248,253,61,254,129,254,217,254,50,255,168,255,36,0,164,0,36,1,162,1,29,2,137,2,241,2,80,3,144,3, +203,3,235,3,4,4,6,4,18,4,54,4,96,4,151,4,201,4,241,4,19,5,27,5,14,5,11,5,250,4,252,4, +244,4,245,4,241,4,239,4,238,4,233,4,236,4,213,4,194,4,150,4,108,4,43,4,244,3,175,3,110,3,45,3, +229,2,182,2,121,2,110,2,97,2,106,2,81,2,26,2,212,1,103,1,247,0,120,0,33,0,213,255,162,255,76,255, +238,254,113,254,252,253,138,253,42,253,223,252,191,252,154,252,122,252,50,252,243,251,161,251,102,251,43,251,243,250,209,250, +160,250,129,250,98,250,85,250,73,250,102,250,117,250,142,250,129,250,114,250,91,250,62,250,43,250,14,250,6,250,230,249, +221,249,190,249,180,249,160,249,174,249,177,249,199,249,192,249,201,249,195,249,200,249,203,249,205,249,194,249,180,249,154,249, +134,249,118,249,112,249,153,249,210,249,13,250,76,250,117,250,170,250,195,250,236,250,4,251,46,251,76,251,116,251,154,251, +201,251,4,252,80,252,180,252,9,253,88,253,130,253,173,253,194,253,221,253,242,253,26,254,67,254,106,254,147,254,174,254, +213,254,8,255,81,255,153,255,220,255,0,0,31,0,35,0,20,0,15,0,11,0,41,0,68,0,102,0,137,0,167,0, +212,0,14,1,75,1,145,1,199,1,0,2,33,2,44,2,54,2,52,2,67,2,71,2,78,2,90,2,87,2,104,2, +122,2,145,2,164,2,168,2,155,2,133,2,77,2,19,2,225,1,215,1,214,1,233,1,12,2,41,2,69,2,65,2, +56,2,47,2,51,2,57,2,84,2,117,2,170,2,204,2,234,2,241,2,1,3,250,2,247,2,248,2,250,2,16,3, +17,3,32,3,30,3,31,3,27,3,13,3,2,3,226,2,189,2,143,2,92,2,39,2,0,2,235,1,243,1,240,1, +236,1,205,1,168,1,104,1,37,1,230,0,178,0,151,0,99,0,42,0,197,255,98,255,248,254,160,254,79,254,45,254, +24,254,11,254,235,253,179,253,123,253,59,253,3,253,212,252,163,252,121,252,78,252,12,252,206,251,121,251,53,251,231,250, +160,250,90,250,17,250,213,249,165,249,152,249,141,249,159,249,169,249,202,249,201,249,200,249,178,249,149,249,109,249,61,249, +25,249,5,249,245,248,6,249,52,249,119,249,178,249,239,249,21,250,56,250,58,250,68,250,75,250,117,250,156,250,204,250, +232,250,255,250,11,251,8,251,13,251,32,251,82,251,151,251,212,251,251,251,27,252,34,252,34,252,20,252,22,252,52,252, +88,252,139,252,180,252,225,252,10,253,42,253,90,253,118,253,183,253,225,253,31,254,78,254,115,254,160,254,179,254,205,254, +220,254,239,254,250,254,10,255,15,255,7,255,16,255,7,255,15,255,26,255,30,255,47,255,49,255,23,255,243,254,187,254, +139,254,83,254,38,254,2,254,231,253,200,253,172,253,130,253,96,253,71,253,46,253,43,253,28,253,21,253,7,253,228,252, +181,252,126,252,66,252,13,252,213,251,172,251,136,251,104,251,63,251,23,251,222,250,174,250,109,250,52,250,3,250,206,249, +173,249,112,249,65,249,1,249,195,248,145,248,89,248,70,248,54,248,60,248,45,248,32,248,4,248,237,247,216,247,210,247, +216,247,247,247,32,248,60,248,88,248,101,248,117,248,127,248,144,248,158,248,192,248,220,248,12,249,71,249,150,249,231,249, +69,250,170,250,3,251,79,251,153,251,218,251,39,252,115,252,192,252,3,253,69,253,116,253,166,253,198,253,245,253,51,254, +123,254,204,254,38,255,130,255,221,255,47,0,122,0,184,0,225,0,232,0,248,0,235,0,240,0,243,0,31,1,92,1, +162,1,212,1,6,2,24,2,36,2,21,2,5,2,4,2,254,1,253,1,243,1,218,1,200,1,168,1,141,1,113,1, +86,1,67,1,45,1,33,1,22,1,14,1,250,0,222,0,183,0,140,0,86,0,45,0,14,0,16,0,11,0,247,255, +199,255,128,255,50,255,204,254,124,254,43,254,14,254,225,253,197,253,144,253,103,253,55,253,19,253,250,252,209,252,179,252, +124,252,69,252,238,251,153,251,80,251,34,251,7,251,250,250,252,250,8,251,252,250,204,250,137,250,50,250,179,249,54,249, +187,248,121,248,68,248,61,248,111,248,202,248,28,249,114,249,182,249,243,249,8,250,36,250,54,250,101,250,150,250,199,250, +228,250,253,250,255,250,4,251,252,250,4,251,41,251,89,251,149,251,209,251,15,252,84,252,150,252,232,252,58,253,156,253, +3,254,111,254,218,254,67,255,174,255,254,255,82,0,148,0,204,0,249,0,30,1,70,1,96,1,138,1,178,1,238,1, +46,2,125,2,213,2,50,3,106,3,162,3,189,3,207,3,207,3,203,3,195,3,190,3,181,3,187,3,199,3,226,3, +253,3,43,4,77,4,104,4,112,4,118,4,117,4,107,4,102,4,67,4,31,4,222,3,168,3,108,3,58,3,27,3, +16,3,12,3,247,2,195,2,126,2,36,2,170,1,52,1,188,0,95,0,6,0,198,255,164,255,140,255,128,255,120,255, +118,255,98,255,45,255,229,254,144,254,16,254,146,253,14,253,160,252,56,252,218,251,151,251,93,251,44,251,25,251,9,251, +3,251,242,250,222,250,187,250,130,250,67,250,8,250,234,249,213,249,195,249,166,249,135,249,90,249,60,249,25,249,7,249, +14,249,22,249,31,249,18,249,246,248,232,248,248,248,28,249,90,249,150,249,223,249,13,250,52,250,57,250,88,250,116,250, +182,250,234,250,32,251,68,251,98,251,123,251,161,251,196,251,14,252,85,252,163,252,212,252,230,252,241,252,251,252,2,253, +39,253,85,253,169,253,249,253,72,254,145,254,215,254,43,255,136,255,240,255,87,0,189,0,26,1,101,1,151,1,197,1, +238,1,26,2,68,2,110,2,154,2,188,2,235,2,13,3,61,3,104,3,155,3,210,3,4,4,49,4,91,4,116,4, +121,4,114,4,100,4,77,4,61,4,41,4,57,4,63,4,84,4,104,4,122,4,136,4,141,4,135,4,133,4,107,4, +90,4,52,4,25,4,232,3,205,3,175,3,165,3,147,3,145,3,131,3,124,3,90,3,49,3,10,3,209,2,165,2, +111,2,62,2,13,2,216,1,169,1,120,1,80,1,54,1,37,1,13,1,236,0,178,0,118,0,29,0,197,255,110,255, +57,255,22,255,0,255,248,254,246,254,238,254,223,254,185,254,162,254,120,254,85,254,51,254,3,254,229,253,182,253,167,253, +157,253,154,253,166,253,170,253,175,253,153,253,109,253,57,253,6,253,212,252,169,252,143,252,117,252,106,252,88,252,82,252, +72,252,67,252,66,252,59,252,64,252,53,252,60,252,50,252,70,252,67,252,85,252,94,252,102,252,124,252,136,252,159,252, +173,252,182,252,191,252,202,252,227,252,255,252,42,253,85,253,138,253,173,253,198,253,219,253,235,253,24,254,58,254,113,254, +154,254,202,254,246,254,30,255,76,255,118,255,174,255,228,255,30,0,88,0,152,0,217,0,47,1,130,1,216,1,26,2, +72,2,119,2,127,2,139,2,141,2,160,2,180,2,210,2,248,2,31,3,67,3,90,3,112,3,131,3,161,3,209,3, +251,3,60,4,118,4,167,4,183,4,169,4,139,4,96,4,37,4,255,3,229,3,231,3,233,3,235,3,227,3,212,3, +184,3,147,3,117,3,101,3,104,3,102,3,86,3,46,3,252,2,184,2,115,2,42,2,250,1,216,1,188,1,156,1, +123,1,87,1,52,1,16,1,240,0,191,0,141,0,82,0,22,0,221,255,167,255,121,255,88,255,60,255,33,255,21,255, +2,255,253,254,225,254,212,254,169,254,108,254,49,254,241,253,216,253,187,253,180,253,176,253,177,253,178,253,175,253,180,253, +186,253,208,253,227,253,244,253,240,253,234,253,228,253,245,253,5,254,45,254,97,254,161,254,218,254,17,255,54,255,105,255, +122,255,160,255,172,255,199,255,212,255,234,255,1,0,25,0,54,0,85,0,117,0,150,0,185,0,224,0,5,1,48,1, +84,1,118,1,142,1,156,1,175,1,208,1,250,1,56,2,144,2,242,2,89,3,157,3,218,3,254,3,21,4,29,4, +40,4,46,4,64,4,67,4,89,4,93,4,121,4,148,4,188,4,239,4,7,5,49,5,60,5,80,5,87,5,90,5, +96,5,85,5,78,5,57,5,31,5,255,4,227,4,200,4,173,4,145,4,114,4,82,4,60,4,45,4,37,4,39,4, +46,4,59,4,61,4,67,4,61,4,56,4,39,4,20,4,241,3,205,3,146,3,109,3,63,3,32,3,16,3,7,3, +17,3,9,3,255,2,234,2,209,2,175,2,149,2,124,2,124,2,128,2,135,2,149,2,154,2,165,2,157,2,147,2, +139,2,105,2,95,2,63,2,63,2,58,2,64,2,72,2,83,2,78,2,74,2,50,2,50,2,51,2,82,2,110,2, +152,2,206,2,237,2,23,3,45,3,75,3,103,3,133,3,155,3,160,3,153,3,134,3,122,3,97,3,89,3,83,3, +79,3,81,3,63,3,45,3,19,3,246,2,216,2,183,2,147,2,105,2,63,2,31,2,252,1,235,1,221,1,217,1, +211,1,190,1,156,1,118,1,76,1,36,1,255,0,236,0,219,0,221,0,218,0,224,0,231,0,219,0,213,0,186,0, +165,0,127,0,97,0,63,0,35,0,9,0,237,255,222,255,201,255,201,255,209,255,229,255,245,255,9,0,29,0,39,0, +59,0,66,0,83,0,82,0,85,0,69,0,41,0,14,0,242,255,0,0,6,0,39,0,73,0,115,0,148,0,167,0, +188,0,203,0,233,0,6,1,32,1,60,1,63,1,70,1,37,1,2,1,227,0,202,0,199,0,198,0,237,0,21,1, +70,1,106,1,145,1,166,1,173,1,166,1,157,1,145,1,129,1,128,1,129,1,150,1,160,1,181,1,190,1,201,1, +198,1,185,1,178,1,148,1,135,1,102,1,99,1,81,1,89,1,80,1,98,1,94,1,107,1,110,1,117,1,135,1, +142,1,151,1,127,1,84,1,37,1,245,0,212,0,184,0,187,0,195,0,215,0,204,0,207,0,178,0,181,0,181,0, +183,0,201,0,202,0,216,0,206,0,210,0,197,0,198,0,203,0,197,0,209,0,202,0,212,0,205,0,206,0,195,0, +193,0,182,0,183,0,172,0,183,0,175,0,182,0,163,0,158,0,142,0,142,0,137,0,145,0,140,0,151,0,140,0, +135,0,125,0,113,0,122,0,119,0,131,0,139,0,148,0,157,0,166,0,169,0,178,0,177,0,174,0,182,0,178,0, +195,0,199,0,207,0,215,0,215,0,215,0,214,0,211,0,226,0,233,0,0,1,15,1,37,1,47,1,57,1,50,1, +52,1,42,1,37,1,26,1,27,1,9,1,14,1,251,0,250,0,247,0,1,1,26,1,41,1,68,1,72,1,89,1, +79,1,75,1,56,1,42,1,15,1,247,0,209,0,165,0,126,0,74,0,38,0,239,255,188,255,128,255,65,255,3,255, +212,254,154,254,128,254,92,254,74,254,67,254,72,254,84,254,117,254,146,254,198,254,223,254,5,255,32,255,71,255,112,255, +161,255,205,255,247,255,30,0,51,0,67,0,71,0,77,0,77,0,76,0,66,0,46,0,16,0,240,255,193,255,150,255, +106,255,74,255,44,255,30,255,34,255,47,255,66,255,90,255,115,255,139,255,155,255,178,255,199,255,235,255,17,0,51,0, +99,0,129,0,171,0,186,0,211,0,225,0,236,0,244,0,251,0,252,0,248,0,246,0,238,0,237,0,238,0,243,0, +3,1,16,1,35,1,54,1,68,1,73,1,79,1,72,1,75,1,67,1,76,1,92,1,130,1,153,1,202,1,225,1, +8,2,19,2,41,2,47,2,69,2,83,2,100,2,111,2,112,2,111,2,102,2,90,2,79,2,71,2,66,2,54,2, +47,2,16,2,3,2,218,1,193,1,152,1,129,1,100,1,82,1,67,1,60,1,59,1,61,1,70,1,81,1,88,1, +98,1,101,1,106,1,93,1,95,1,79,1,83,1,75,1,77,1,74,1,73,1,68,1,63,1,58,1,48,1,48,1, +36,1,37,1,29,1,27,1,21,1,13,1,5,1,251,0,239,0,220,0,206,0,183,0,166,0,144,0,127,0,106,0, +93,0,83,0,69,0,65,0,51,0,50,0,42,0,48,0,54,0,67,0,85,0,100,0,114,0,105,0,103,0,87,0, +85,0,73,0,74,0,71,0,76,0,69,0,60,0,38,0,23,0,1,0,245,255,227,255,222,255,214,255,210,255,201,255, +200,255,184,255,188,255,180,255,185,255,191,255,199,255,211,255,217,255,224,255,234,255,233,255,243,255,241,255,241,255,238,255, +230,255,231,255,229,255,231,255,236,255,234,255,243,255,235,255,234,255,229,255,230,255,233,255,240,255,238,255,240,255,235,255, +229,255,229,255,218,255,223,255,218,255,223,255,221,255,224,255,225,255,228,255,232,255,237,255,239,255,245,255,242,255,253,255, +252,255,7,0,13,0,19,0,27,0,35,0,35,0,49,0,46,0,59,0,58,0,63,0,68,0,61,0,71,0,56,0, +69,0,53,0,64,0,51,0,59,0,53,0,59,0,58,0,59,0,62,0,59,0,63,0,66,0,66,0,65,0,72,0, +64,0,75,0,67,0,72,0,68,0,70,0,65,0,64,0,59,0,61,0,54,0,58,0,52,0,51,0,48,0,46,0, +41,0,42,0,35,0,40,0,34,0,37,0,31,0,32,0,30,0,24,0,26,0,17,0,20,0,11,0,16,0,9,0, +10,0,8,0,6,0,4,0,6,0,255,255,4,0,0,0,255,255,2,0,254,255,1,0,0,0,0,0,1,0,254,255, +3,0,253,255,2,0,0,0,254,255,2,0,255,255,0,0,0,0,1,0,254,255,2,0,0,0,253,255,4,0,254,255, +255,255,5,0,248,255,8,0,250,255,3,0,0,0,253,255,4,0,253,255,1,0,1,0,254,255,1,0,0,0,0,0, +0,0,0,0,1,0,254,255,2,0,255,255,0,0,2,0,252,255,4,0,252,255,4,0,254,255,1,0,253,255,4,0, +252,255,5,0,252,255,1,0,2,0,252,255,5,0,253,255,0,0,2,0,253,255,4,0,252,255,2,0,0,0,255,255, +1,0,0,0,255,255,1,0,0,0,254,255,2,0,0,0,254,255,3,0,254,255,255,255,4,0,249,255,8,0,250,255, +2,0,1,0,254,255,3,0,254,255,0,0,255,255,3,0,254,255,1,0,0,0,254,255,2,0,0,0,254,255,3,0, +252,255,5,0,250,255,7,0,249,255,6,0,252,255,2,0,0,0,255,255,0,0,1,0,255,255,1,0,1,0,253,255, +4,0,252,255,3,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,254,255,4,0,251,255,7,0, +248,255,7,0,251,255,3,0,254,255,1,0,0,0,0,0,0,0,1,0,254,255,2,0,255,255,255,255,3,0,253,255, +3,0,253,255,1,0,1,0,255,255,0,0,1,0,253,255,5,0,250,255,6,0,252,255,1,0,1,0,254,255,4,0, +251,255,4,0,253,255,2,0,0,0,255,255,1,0,255,255,0,0,1,0,0,0,255,255,2,0,253,255,4,0,252,255, +4,0,252,255,4,0,252,255,4,0,253,255,1,0,0,0,0,0,1,0,255,255,255,255,2,0,255,255,0,0,1,0, +254,255,1,0,2,0,252,255,4,0,252,255,4,0,253,255,2,0,255,255,255,255,4,0,250,255,7,0,249,255,6,0, +251,255,4,0,254,255,1,0,0,0,254,255,4,0,252,255,3,0,254,255,1,0,0,0,255,255,2,0,253,255,3,0, +253,255,3,0,253,255,3,0,252,255,4,0,253,255,3,0,253,255,1,0,0,0,255,255,3,0,253,255,1,0,0,0, +255,255,3,0,253,255,3,0,253,255,3,0,253,255,3,0,254,255,2,0,253,255,3,0,255,255,255,255,2,0,254,255, +0,0,3,0,251,255,5,0,253,255,1,0,255,255,1,0,255,255,2,0,254,255,1,0,255,255,3,0,252,255,4,0, +253,255,1,0,2,0,252,255,4,0,254,255,0,0,1,0,254,255,2,0,255,255,1,0,254,255,2,0,253,255,5,0, +250,255,7,0,249,255,5,0,253,255,2,0,255,255,1,0,254,255,1,0,1,0,255,255,0,0,1,0,253,255,5,0, +250,255,6,0,251,255,3,0,1,0,252,255,4,0,253,255,2,0,0,0,254,255,2,0,254,255,2,0,255,255,255,255, +2,0,254,255,2,0,255,255,254,255,4,0,252,255,3,0,255,255,255,255,2,0,254,255,1,0,0,0,255,255,2,0, +254,255,1,0,0,0,1,0,253,255,4,0,251,255,4,0,254,255,3,0,251,255,5,0,251,255,5,0,253,255,2,0, +254,255,1,0,0,0,0,0,1,0,255,255,255,255,2,0,254,255,3,0,253,255,2,0,255,255,0,0,2,0,253,255, +3,0,254,255,0,0,3,0,250,255,9,0,245,255,10,0,248,255,7,0,249,255,6,0,251,255,4,0,254,255,255,255, +2,0,254,255,2,0,254,255,2,0,254,255,1,0,0,0,0,0,0,0,1,0,254,255,2,0,254,255,3,0,252,255, +3,0,255,255,255,255,3,0,252,255,3,0,255,255,0,0,0,0,1,0,253,255,4,0,252,255,3,0,255,255,255,255, +2,0,253,255,2,0,255,255,2,0,254,255,1,0,255,255,0,0,2,0,254,255,2,0,254,255,2,0,254,255,3,0, +252,255,5,0,251,255,4,0,254,255,255,255,4,0,251,255,4,0,253,255,1,0,1,0,255,255,0,0,1,0,255,255, +0,0,2,0,251,255,7,0,249,255,6,0,252,255,1,0,0,0,0,0,1,0,0,0,253,255,3,0,254,255,3,0, +253,255,3,0,252,255,4,0,253,255,1,0,1,0,255,255,0,0,0,0,254,255,4,0,253,255,2,0,254,255,1,0, +254,255,4,0,252,255,3,0,0,0,252,255,6,0,250,255,5,0,253,255,1,0,0,0,255,255,3,0,251,255,5,0, +252,255,2,0,255,255,2,0,253,255,3,0,254,255,255,255,4,0,250,255,6,0,253,255,0,0,1,0,253,255,4,0, +254,255,1,0,254,255,2,0,255,255,0,0,1,0,253,255,4,0,253,255,2,0,253,255,4,0,252,255,4,0,254,255, +254,255,3,0,255,255,255,255,2,0,255,255,253,255,6,0,248,255,8,0,249,255,7,0,249,255,6,0,250,255,6,0, +252,255,2,0,254,255,2,0,255,255,2,0,252,255,3,0,254,255,2,0,0,0,254,255,2,0,254,255,2,0,255,255, +0,0,0,0,1,0,254,255,3,0,252,255,4,0,254,255,0,0,2,0,252,255,5,0,252,255,2,0,255,255,1,0, +255,255,1,0,254,255,2,0,255,255,1,0,254,255,2,0,255,255,0,0,255,255,3,0,253,255,3,0,252,255,3,0, +1,0,253,255,4,0,251,255,4,0,253,255,4,0,252,255,4,0,252,255,3,0,254,255,2,0,255,255,255,255,3,0, +252,255,2,0,1,0,253,255,2,0,255,255,255,255,4,0,251,255,3,0,255,255,0,0,2,0,253,255,2,0,0,0, +255,255,1,0,255,255,2,0,254,255,2,0,254,255,0,0,2,0,255,255,0,0,0,0,255,255,1,0,1,0,254,255, +2,0,254,255,1,0,0,0,0,0,2,0,253,255,1,0,0,0,1,0,0,0,255,255,1,0,253,255,6,0,250,255, +5,0,252,255,2,0,255,255,2,0,253,255,4,0,252,255,3,0,253,255,3,0,254,255,2,0,252,255,5,0,252,255, +4,0,251,255,4,0,253,255,3,0,254,255,0,0,2,0,252,255,5,0,251,255,5,0,251,255,5,0,251,255,4,0, +254,255,1,0,254,255,4,0,251,255,5,0,251,255,3,0,0,0,255,255,2,0,252,255,4,0,253,255,2,0,0,0, +255,255,0,0,2,0,252,255,5,0,251,255,5,0,250,255,7,0,249,255,7,0,249,255,5,0,253,255,2,0,0,0, +255,255,0,0,2,0,253,255,3,0,254,255,2,0,254,255,2,0,253,255,2,0,1,0,252,255,6,0,249,255,5,0, +254,255,0,0,2,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,1,0,255,255,1,0,254,255,2,0, +255,255,0,0,1,0,254,255,4,0,250,255,6,0,252,255,2,0,255,255,1,0,254,255,2,0,255,255,255,255,1,0, +0,0,0,0,0,0,0,0,254,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,0,0,2,0,253,255,3,0, +252,255,4,0,253,255,3,0,252,255,4,0,253,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +254,255,4,0,250,255,6,0,251,255,4,0,253,255,2,0,254,255,2,0,254,255,2,0,254,255,1,0,1,0,253,255, +5,0,250,255,6,0,251,255,4,0,252,255,4,0,252,255,3,0,255,255,255,255,2,0,254,255,1,0,0,0,255,255, +2,0,254,255,2,0,254,255,3,0,252,255,5,0,250,255,5,0,255,255,255,255,0,0,1,0,253,255,5,0,251,255, +3,0,255,255,0,0,255,255,2,0,254,255,2,0,255,255,255,255,2,0,254,255,1,0,2,0,251,255,6,0,250,255, +5,0,253,255,2,0,254,255,2,0,255,255,255,255,3,0,253,255,2,0,255,255,255,255,2,0,0,0,253,255,4,0, +252,255,3,0,0,0,253,255,4,0,252,255,4,0,253,255,2,0,253,255,4,0,253,255,2,0,255,255,0,0,0,0, +0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,0,0,1,0,254,255,2,0,255,255,0,0,1,0,255,255, +1,0,255,255,1,0,255,255,2,0,253,255,2,0,0,0,254,255,3,0,253,255,2,0,254,255,3,0,253,255,2,0, +255,255,0,0,2,0,254,255,0,0,1,0,254,255,4,0,252,255,2,0,255,255,255,255,3,0,253,255,2,0,254,255, +3,0,252,255,4,0,253,255,0,0,4,0,250,255,6,0,252,255,2,0,255,255,2,0,252,255,5,0,252,255,3,0, +254,255,0,0,1,0,255,255,2,0,253,255,3,0,254,255,0,0,2,0,254,255,0,0,2,0,252,255,6,0,251,255, +1,0,2,0,253,255,4,0,253,255,0,0,2,0,253,255,4,0,252,255,3,0,253,255,2,0,255,255,1,0,255,255, +0,0,0,0,1,0,0,0,255,255,2,0,253,255,3,0,255,255,0,0,1,0,254,255,2,0,255,255,1,0,255,255, +0,0,0,0,2,0,253,255,3,0,254,255,0,0,3,0,251,255,5,0,253,255,1,0,1,0,254,255,1,0,0,0, +0,0,255,255,3,0,252,255,3,0,254,255,0,0,3,0,253,255,2,0,255,255,0,0,1,0,255,255,0,0,1,0, +254,255,2,0,255,255,0,0,255,255,1,0,255,255,2,0,254,255,2,0,253,255,3,0,255,255,254,255,5,0,251,255, +2,0,0,0,0,0,255,255,2,0,253,255,2,0,255,255,1,0,255,255,1,0,255,255,1,0,254,255,3,0,253,255, +2,0,255,255,1,0,254,255,2,0,253,255,5,0,251,255,3,0,255,255,254,255,5,0,251,255,2,0,2,0,251,255, +5,0,254,255,254,255,5,0,250,255,7,0,250,255,3,0,255,255,255,255,4,0,252,255,3,0,253,255,3,0,254,255, +2,0,254,255,2,0,254,255,2,0,254,255,3,0,253,255,1,0,0,0,0,0,0,0,0,0,1,0,253,255,4,0, +252,255,4,0,252,255,5,0,250,255,5,0,254,255,0,0,1,0,0,0,253,255,5,0,252,255,3,0,0,0,252,255, +5,0,253,255,0,0,3,0,251,255,5,0,253,255,1,0,0,0,255,255,2,0,253,255,3,0,255,255,254,255,5,0, +250,255,4,0,254,255,0,0,2,0,255,255,254,255,3,0,252,255,6,0,250,255,4,0,253,255,2,0,254,255,3,0, +254,255,1,0,0,0,253,255,5,0,252,255,2,0,1,0,251,255,7,0,249,255,6,0,251,255,5,0,250,255,6,0, +251,255,3,0,255,255,255,255,1,0,0,0,255,255,1,0,254,255,2,0,0,0,254,255,3,0,251,255,6,0,251,255, +3,0,254,255,1,0,0,0,0,0,255,255,2,0,253,255,3,0,254,255,1,0,0,0,0,0,0,0,0,0,255,255, +1,0,1,0,254,255,3,0,253,255,1,0,2,0,252,255,4,0,254,255,0,0,1,0,254,255,2,0,253,255,4,0, +253,255,1,0,0,0,255,255,0,0,2,0,253,255,2,0,0,0,254,255,2,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,254,255,2,0,254,255,1,0,1,0,253,255,5,0,250,255,6,0,251,255,3,0, +255,255,255,255,3,0,253,255,3,0,253,255,1,0,1,0,253,255,5,0,251,255,3,0,0,0,253,255,5,0,251,255, +4,0,254,255,0,0,0,0,0,0,2,0,254,255,0,0,1,0,253,255,5,0,252,255,2,0,0,0,255,255,255,255, +4,0,250,255,6,0,252,255,1,0,1,0,255,255,0,0,1,0,255,255,0,0,2,0,252,255,6,0,250,255,3,0, +0,0,255,255,2,0,254,255,0,0,1,0,254,255,3,0,253,255,1,0,0,0,255,255,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,255,255,0,0,255,255,1,0,1,0,254,255,3,0,253,255,2,0,255,255,1,0,0,0, +255,255,0,0,2,0,252,255,6,0,249,255,7,0,250,255,4,0,254,255,1,0,0,0,255,255,2,0,254,255,2,0, +254,255,1,0,255,255,2,0,254,255,1,0,255,255,0,0,1,0,0,0,255,255,1,0,255,255,2,0,254,255,1,0, +0,0,0,0,1,0,255,255,0,0,255,255,3,0,254,255,0,0,2,0,251,255,7,0,250,255,5,0,251,255,4,0, +253,255,3,0,254,255,0,0,2,0,252,255,6,0,251,255,3,0,255,255,254,255,4,0,253,255,3,0,252,255,4,0, +251,255,6,0,251,255,3,0,255,255,1,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,254,255,4,0,251,255, +5,0,253,255,1,0,0,0,255,255,2,0,254,255,1,0,1,0,254,255,2,0,255,255,1,0,255,255,2,0,253,255, +2,0,1,0,253,255,4,0,253,255,1,0,255,255,1,0,255,255,1,0,0,0,255,255,0,0,0,0,1,0,255,255, +1,0,254,255,2,0,254,255,3,0,253,255,1,0,1,0,255,255,1,0,254,255,2,0,254,255,3,0,253,255,2,0, +0,0,254,255,2,0,254,255,1,0,1,0,254,255,2,0,254,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +255,255,1,0,254,255,3,0,253,255,2,0,255,255,1,0,255,255,1,0,254,255,2,0,255,255,2,0,253,255,2,0, +0,0,255,255,3,0,251,255,4,0,253,255,3,0,254,255,2,0,253,255,2,0,255,255,0,0,2,0,253,255,4,0, +252,255,2,0,255,255,1,0,0,0,255,255,3,0,251,255,6,0,249,255,6,0,253,255,1,0,0,0,254,255,2,0, +0,0,255,255,0,0,0,0,255,255,2,0,0,0,254,255,2,0,254,255,1,0,1,0,255,255,0,0,1,0,253,255, +3,0,255,255,255,255,2,0,253,255,2,0,255,255,1,0,255,255,1,0,255,255,0,0,0,0,0,0,0,0,1,0, +254,255,2,0,254,255,1,0,0,0,0,0,0,0,255,255,1,0,0,0,1,0,253,255,4,0,250,255,9,0,247,255, +7,0,250,255,5,0,253,255,1,0,0,0,0,0,0,0,1,0,254,255,2,0,255,255,1,0,254,255,3,0,253,255, +2,0,0,0,254,255,2,0,255,255,255,255,3,0,253,255,2,0,0,0,254,255,3,0,252,255,4,0,253,255,3,0, +253,255,3,0,252,255,4,0,253,255,1,0,1,0,253,255,5,0,251,255,4,0,252,255,3,0,0,0,254,255,3,0, +252,255,5,0,250,255,6,0,251,255,4,0,253,255,0,0,2,0,253,255,4,0,252,255,4,0,252,255,2,0,0,0, +255,255,3,0,252,255,2,0,1,0,254,255,2,0,255,255,0,0,1,0,255,255,255,255,4,0,253,255,2,0,254,255, +0,0,1,0,1,0,254,255,2,0,253,255,3,0,254,255,2,0,253,255,3,0,254,255,1,0,1,0,253,255,3,0, +255,255,255,255,2,0,253,255,4,0,252,255,4,0,251,255,6,0,250,255,7,0,249,255,5,0,254,255,255,255,4,0, +251,255,6,0,249,255,6,0,252,255,2,0,0,0,0,0,253,255,6,0,249,255,5,0,253,255,1,0,0,0,1,0, +254,255,2,0,254,255,1,0,0,0,0,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,255,255,1,0,253,255, +4,0,253,255,1,0,1,0,254,255,2,0,254,255,2,0,254,255,2,0,0,0,253,255,6,0,249,255,6,0,252,255, +2,0,255,255,2,0,254,255,1,0,0,0,255,255,1,0,255,255,3,0,252,255,3,0,254,255,0,0,3,0,252,255, +4,0,252,255,3,0,255,255,255,255,3,0,252,255,5,0,251,255,3,0,255,255,0,0,2,0,254,255,255,255,2,0, +255,255,0,0,1,0,255,255,0,0,1,0,254,255,1,0,0,0,1,0,254,255,3,0,251,255,6,0,251,255,3,0, +255,255,255,255,3,0,253,255,1,0,0,0,0,0,0,0,0,0,0,0,255,255,2,0,254,255,1,0,0,0,255,255, +2,0,254,255,1,0,0,0,0,0,0,0,1,0,254,255,1,0,1,0,255,255,1,0,255,255,255,255,2,0,254,255, +2,0,254,255,0,0,2,0,253,255,2,0,255,255,0,0,2,0,253,255,3,0,253,255,4,0,251,255,6,0,249,255, +8,0,248,255,7,0,250,255,5,0,253,255,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,255,255,2,0, +253,255,4,0,252,255,5,0,250,255,4,0,254,255,0,0,3,0,252,255,3,0,254,255,1,0,0,0,0,0,1,0, +253,255,4,0,252,255,3,0,0,0,252,255,6,0,250,255,4,0,254,255,1,0,255,255,2,0,253,255,1,0,1,0, +255,255,0,0,0,0,1,0,253,255,5,0,251,255,3,0,0,0,253,255,5,0,251,255,5,0,252,255,2,0,254,255, +2,0,255,255,0,0,0,0,255,255,1,0,0,0,255,255,1,0,254,255,3,0,254,255,0,0,3,0,250,255,8,0, +248,255,6,0,253,255,2,0,254,255,1,0,0,0,0,0,0,0,1,0,252,255,6,0,249,255,8,0,248,255,7,0, +249,255,5,0,255,255,255,255,2,0,253,255,2,0,0,0,255,255,3,0,251,255,5,0,252,255,4,0,253,255,2,0, +254,255,2,0,0,0,254,255,3,0,252,255,5,0,251,255,4,0,253,255,2,0,255,255,0,0,255,255,2,0,255,255, +255,255,3,0,251,255,7,0,249,255,5,0,253,255,2,0,254,255,2,0,255,255,255,255,2,0,252,255,5,0,252,255, +4,0,250,255,5,0,254,255,0,0,1,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,254,255,1,0,1,0, +254,255,3,0,253,255,2,0,254,255,2,0,253,255,4,0,253,255,1,0,0,0,255,255,2,0,254,255,1,0,0,0, +1,0,253,255,3,0,254,255,1,0,1,0,253,255,3,0,254,255,1,0,0,0,0,0,255,255,2,0,255,255,255,255, +3,0,251,255,5,0,254,255,254,255,4,0,252,255,3,0,254,255,1,0,254,255,3,0,254,255,0,0,1,0,254,255, +3,0,254,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,254,255,2,0,254,255,3,0,253,255,3,0, +254,255,2,0,254,255,0,0,2,0,252,255,6,0,250,255,5,0,251,255,4,0,254,255,1,0,255,255,0,0,1,0, +0,0,1,0,252,255,4,0,255,255,0,0,1,0,254,255,0,0,3,0,253,255,1,0,1,0,253,255,5,0,249,255, +8,0,248,255,7,0,252,255,1,0,1,0,254,255,2,0,254,255,4,0,250,255,6,0,252,255,2,0,0,0,255,255, +1,0,0,0,0,0,255,255,2,0,254,255,1,0,0,0,0,0,255,255,2,0,253,255,2,0,0,0,255,255,1,0, +254,255,2,0,254,255,3,0,253,255,2,0,255,255,255,255,3,0,252,255,4,0,255,255,255,255,0,0,0,0,0,0, +2,0,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,254,255,3,0,254,255,1,0,0,0,254,255,4,0, +251,255,5,0,251,255,4,0,254,255,1,0,255,255,1,0,254,255,3,0,253,255,2,0,255,255,0,0,0,0,1,0, +255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,253,255,4,0,253,255,3,0,252,255,5,0, +250,255,5,0,254,255,255,255,3,0,253,255,2,0,255,255,0,0,0,0,2,0,252,255,3,0,0,0,253,255,5,0, +250,255,4,0,0,0,254,255,3,0,252,255,3,0,0,0,254,255,2,0,255,255,255,255,4,0,251,255,4,0,253,255, +1,0,1,0,255,255,2,0,252,255,4,0,252,255,3,0,1,0,252,255,4,0,252,255,3,0,254,255,2,0,255,255, +1,0,254,255,2,0,253,255,6,0,248,255,8,0,248,255,8,0,249,255,6,0,250,255,5,0,253,255,1,0,0,0, +255,255,1,0,0,0,255,255,2,0,254,255,1,0,254,255,3,0,254,255,2,0,254,255,255,255,2,0,0,0,255,255, +1,0,254,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,2,0,253,255,2,0,255,255,1,0,254,255,3,0, +253,255,2,0,0,0,254,255,2,0,255,255,255,255,2,0,254,255,2,0,254,255,1,0,1,0,253,255,3,0,254,255, +1,0,255,255,2,0,252,255,6,0,250,255,4,0,253,255,1,0,2,0,253,255,2,0,0,0,253,255,5,0,250,255, +6,0,252,255,2,0,255,255,0,0,0,0,1,0,254,255,3,0,253,255,2,0,254,255,2,0,254,255,3,0,252,255, +2,0,1,0,253,255,4,0,252,255,3,0,253,255,4,0,252,255,4,0,253,255,1,0,1,0,254,255,2,0,255,255, +255,255,2,0,255,255,1,0,254,255,1,0,255,255,3,0,253,255,3,0,252,255,4,0,254,255,0,0,1,0,254,255, +3,0,253,255,2,0,0,0,254,255,4,0,252,255,2,0,0,0,255,255,2,0,0,0,253,255,4,0,252,255,5,0, +252,255,3,0,253,255,3,0,254,255,1,0,1,0,254,255,1,0,0,0,255,255,1,0,0,0,255,255,1,0,255,255, +2,0,254,255,0,0,1,0,255,255,2,0,254,255,0,0,2,0,253,255,3,0,253,255,2,0,0,0,255,255,1,0, +254,255,2,0,255,255,0,0,2,0,252,255,3,0,255,255,0,0,1,0,255,255,0,0,1,0,254,255,2,0,255,255, +1,0,255,255,1,0,254,255,3,0,254,255,0,0,2,0,253,255,3,0,254,255,1,0,0,0,0,0,255,255,3,0, +251,255,6,0,252,255,1,0,1,0,254,255,2,0,1,0,251,255,6,0,251,255,3,0,255,255,0,0,0,0,0,0, +1,0,254,255,2,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,255,255,1,0,1,0,253,255,5,0,250,255, +4,0,254,255,0,0,2,0,253,255,4,0,250,255,7,0,250,255,5,0,252,255,2,0,255,255,1,0,1,0,253,255, +3,0,254,255,0,0,1,0,0,0,255,255,2,0,252,255,4,0,253,255,2,0,0,0,253,255,6,0,248,255,8,0, +250,255,4,0,253,255,2,0,0,0,254,255,2,0,254,255,2,0,255,255,255,255,0,0,2,0,253,255,4,0,252,255, +2,0,255,255,1,0,255,255,2,0,253,255,2,0,255,255,2,0,253,255,1,0,2,0,252,255,5,0,252,255,1,0, +0,0,1,0,255,255,1,0,254,255,2,0,254,255,2,0,0,0,254,255,3,0,255,255,254,255,4,0,251,255,5,0, +254,255,255,255,2,0,253,255,3,0,255,255,0,0,0,0,1,0,254,255,2,0,255,255,0,0,1,0,255,255,0,0, +0,0,0,0,0,0,0,0,254,255,4,0,251,255,5,0,253,255,0,0,1,0,255,255,2,0,255,255,0,0,1,0, +253,255,5,0,251,255,4,0,253,255,1,0,1,0,254,255,2,0,255,255,255,255,2,0,253,255,3,0,254,255,2,0, +254,255,0,0,1,0,0,0,0,0,1,0,252,255,5,0,253,255,1,0,2,0,251,255,6,0,251,255,3,0,254,255, +1,0,1,0,253,255,4,0,251,255,5,0,253,255,0,0,1,0,255,255,3,0,251,255,5,0,251,255,6,0,251,255, +4,0,251,255,5,0,252,255,4,0,253,255,3,0,252,255,3,0,0,0,254,255,4,0,252,255,3,0,254,255,1,0, +255,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0, +254,255,2,0,255,255,255,255,2,0,253,255,3,0,254,255,1,0,0,0,253,255,4,0,253,255,3,0,253,255,1,0, +0,0,0,0,1,0,254,255,2,0,253,255,4,0,252,255,3,0,255,255,255,255,1,0,1,0,254,255,3,0,253,255, +2,0,255,255,1,0,255,255,1,0,0,0,255,255,1,0,255,255,2,0,254,255,1,0,255,255,2,0,254,255,2,0, +254,255,1,0,1,0,252,255,7,0,248,255,8,0,249,255,4,0,255,255,255,255,2,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,254,255,2,0,254,255,1,0,1,0,254,255,2,0,253,255,3,0,254,255,2,0,254,255,1,0, +0,0,0,0,255,255,2,0,254,255,2,0,255,255,254,255,3,0,254,255,1,0,0,0,255,255,0,0,1,0,254,255, +2,0,255,255,1,0,0,0,255,255,1,0,254,255,4,0,252,255,3,0,253,255,3,0,255,255,255,255,1,0,255,255, +0,0,2,0,253,255,3,0,254,255,0,0,0,0,1,0,254,255,2,0,254,255,2,0,254,255,2,0,253,255,2,0, +0,0,255,255,1,0,255,255,0,0,2,0,253,255,2,0,254,255,2,0,255,255,2,0,252,255,3,0,255,255,0,0, +1,0,255,255,0,0,1,0,255,255,1,0,254,255,3,0,253,255,3,0,254,255,1,0,255,255,0,0,2,0,254,255, +2,0,255,255,255,255,2,0,0,0,254,255,3,0,252,255,4,0,253,255,3,0,252,255,3,0,254,255,1,0,1,0, +254,255,1,0,0,0,254,255,3,0,255,255,255,255,1,0,255,255,0,0,2,0,253,255,1,0,2,0,253,255,3,0, +253,255,2,0,254,255,2,0,255,255,0,0,0,0,255,255,2,0,254,255,1,0,1,0,254,255,2,0,254,255,2,0, +255,255,2,0,252,255,4,0,253,255,2,0,0,0,254,255,3,0,251,255,5,0,252,255,4,0,252,255,3,0,253,255, +3,0,255,255,255,255,1,0,255,255,0,0,4,0,249,255,7,0,250,255,4,0,254,255,1,0,0,0,0,0,255,255, +2,0,253,255,4,0,253,255,1,0,1,0,253,255,3,0,255,255,255,255,2,0,253,255,2,0,0,0,255,255,1,0, +254,255,2,0,255,255,0,0,1,0,255,255,0,0,1,0,255,255,1,0,255,255,1,0,255,255,1,0,0,0,255,255, +2,0,254,255,1,0,255,255,3,0,252,255,3,0,255,255,255,255,3,0,252,255,4,0,252,255,5,0,250,255,7,0, +249,255,7,0,250,255,3,0,1,0,253,255,3,0,254,255,0,0,1,0,0,0,255,255,0,0,2,0,251,255,8,0, +246,255,9,0,250,255,3,0,0,0,254,255,2,0,253,255,4,0,253,255,2,0,255,255,255,255,2,0,255,255,0,0, +1,0,255,255,0,0,1,0,255,255,0,0,1,0,255,255,0,0,1,0,253,255,4,0,253,255,2,0,254,255,2,0, +254,255,2,0,255,255,255,255,2,0,254,255,2,0,254,255,1,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0, +254,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0,254,255,1,0,1,0,254,255,2,0,254,255,2,0,254,255, +2,0,255,255,0,0,1,0,253,255,4,0,253,255,3,0,252,255,3,0,254,255,2,0,255,255,0,0,1,0,253,255, +3,0,255,255,0,0,1,0,253,255,4,0,252,255,4,0,253,255,0,0,2,0,254,255,2,0,253,255,3,0,253,255, +4,0,252,255,3,0,253,255,3,0,254,255,1,0,255,255,2,0,253,255,4,0,251,255,5,0,252,255,3,0,253,255, +4,0,251,255,4,0,254,255,0,0,2,0,253,255,3,0,254,255,1,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,1,0,255,255,1,0,1,0,254,255,1,0,255,255,0,0,3,0,252,255,3,0,253,255,2,0,255,255,2,0, +254,255,2,0,254,255,0,0,1,0,255,255,2,0,253,255,4,0,252,255,3,0,255,255,254,255,4,0,252,255,3,0, +0,0,254,255,1,0,0,0,255,255,2,0,255,255,255,255,2,0,255,255,0,0,0,0,255,255,3,0,252,255,4,0, +252,255,3,0,0,0,253,255,4,0,252,255,3,0,255,255,255,255,2,0,254,255,2,0,255,255,0,0,255,255,3,0, +251,255,7,0,248,255,7,0,252,255,1,0,1,0,253,255,5,0,250,255,6,0,251,255,4,0,255,255,253,255,5,0, +252,255,1,0,3,0,251,255,4,0,254,255,0,0,2,0,253,255,3,0,252,255,4,0,255,255,254,255,4,0,250,255, +6,0,252,255,2,0,0,0,254,255,3,0,252,255,4,0,253,255,1,0,1,0,255,255,1,0,255,255,0,0,0,0, +2,0,253,255,4,0,252,255,3,0,253,255,3,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,2,0, +254,255,2,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,1,0,0,0,255,255,1,0,254,255,3,0, +253,255,2,0,255,255,0,0,1,0,253,255,4,0,252,255,4,0,252,255,3,0,255,255,0,0,0,0,255,255,2,0, +253,255,5,0,249,255,8,0,248,255,6,0,253,255,1,0,1,0,254,255,1,0,0,0,0,0,0,0,1,0,253,255, +4,0,252,255,2,0,0,0,255,255,2,0,252,255,6,0,249,255,7,0,249,255,6,0,252,255,3,0,255,255,254,255, +3,0,254,255,2,0,254,255,2,0,254,255,2,0,255,255,0,0,0,0,1,0,254,255,2,0,255,255,0,0,0,0, +0,0,1,0,254,255,2,0,254,255,2,0,253,255,4,0,253,255,1,0,0,0,0,0,0,0,0,0,1,0,254,255, +3,0,253,255,2,0,254,255,2,0,255,255,0,0,1,0,254,255,2,0,254,255,2,0,254,255,3,0,253,255,1,0, +1,0,254,255,2,0,255,255,0,0,1,0,255,255,1,0,255,255,0,0,2,0,253,255,3,0,253,255,1,0,1,0, +255,255,0,0,1,0,253,255,3,0,255,255,0,0,0,0,1,0,253,255,3,0,255,255,255,255,2,0,253,255,3,0, +254,255,2,0,253,255,3,0,255,255,0,0,1,0,254,255,2,0,0,0,254,255,2,0,255,255,0,0,2,0,251,255, +6,0,250,255,6,0,251,255,3,0,0,0,254,255,2,0,255,255,0,0,1,0,255,255,0,0,2,0,253,255,2,0, +255,255,0,0,2,0,253,255,2,0,0,0,254,255,5,0,250,255,3,0,0,0,254,255,4,0,254,255,253,255,5,0, +251,255,6,0,251,255,2,0,254,255,3,0,254,255,3,0,251,255,4,0,252,255,6,0,250,255,4,0,253,255,2,0, +255,255,2,0,254,255,1,0,255,255,2,0,252,255,8,0,246,255,9,0,249,255,4,0,255,255,254,255,3,0,254,255, +1,0,1,0,252,255,3,0,0,0,255,255,2,0,253,255,2,0,255,255,2,0,253,255,3,0,253,255,4,0,252,255, +2,0,255,255,1,0,255,255,1,0,255,255,0,0,1,0,254,255,2,0,254,255,4,0,250,255,6,0,250,255,5,0, +254,255,255,255,3,0,252,255,3,0,255,255,255,255,2,0,255,255,254,255,5,0,250,255,6,0,251,255,3,0,254,255, +0,0,2,0,255,255,0,0,0,0,255,255,1,0,1,0,254,255,2,0,254,255,2,0,255,255,0,0,1,0,255,255, +1,0,255,255,1,0,255,255,2,0,254,255,2,0,253,255,4,0,251,255,7,0,248,255,7,0,250,255,6,0,252,255, +1,0,0,0,255,255,2,0,0,0,254,255,1,0,0,0,0,0,1,0,255,255,255,255,2,0,254,255,2,0,255,255, +255,255,3,0,252,255,3,0,0,0,254,255,2,0,255,255,255,255,3,0,253,255,3,0,251,255,7,0,249,255,5,0, +253,255,0,0,2,0,254,255,3,0,251,255,6,0,250,255,4,0,0,0,253,255,4,0,252,255,4,0,252,255,4,0, +251,255,6,0,250,255,6,0,251,255,2,0,2,0,251,255,6,0,251,255,3,0,255,255,255,255,2,0,254,255,1,0, +0,0,255,255,2,0,253,255,3,0,254,255,1,0,0,0,255,255,2,0,254,255,2,0,254,255,2,0,254,255,2,0, +253,255,4,0,252,255,3,0,254,255,1,0,255,255,2,0,254,255,2,0,254,255,1,0,0,0,255,255,3,0,251,255, +5,0,252,255,2,0,255,255,1,0,255,255,1,0,255,255,0,0,1,0,255,255,1,0,0,0,254,255,3,0,254,255, +2,0,253,255,3,0,254,255,2,0,255,255,255,255,1,0,0,0,0,0,1,0,254,255,3,0,251,255,6,0,251,255, +4,0,254,255,0,0,1,0,253,255,4,0,253,255,3,0,253,255,1,0,0,0,1,0,254,255,3,0,252,255,5,0, +251,255,4,0,253,255,2,0,255,255,2,0,252,255,5,0,250,255,7,0,251,255,2,0,255,255,1,0,255,255,2,0, +253,255,2,0,0,0,254,255,3,0,254,255,1,0,255,255,1,0,0,0,0,0,0,0,255,255,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,1,0,0,0,254,255,4,0,251,255,4,0,253,255,2,0,255,255,0,0,0,0,0,0, +0,0,1,0,255,255,0,0,0,0,1,0,254,255,3,0,253,255,2,0,0,0,255,255,0,0,1,0,255,255,0,0, +1,0,255,255,0,0,1,0,254,255,2,0,254,255,2,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,253,255, +4,0,252,255,2,0,0,0,255,255,3,0,250,255,6,0,252,255,3,0,255,255,255,255,0,0,1,0,0,0,255,255, +1,0,255,255,0,0,1,0,0,0,255,255,1,0,254,255,3,0,254,255,0,0,2,0,252,255,4,0,254,255,255,255, +3,0,253,255,2,0,255,255,255,255,2,0,255,255,0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,255,255, +1,0,0,0,255,255,1,0,255,255,1,0,1,0,254,255,2,0,253,255,4,0,252,255,4,0,252,255,4,0,253,255, +1,0,0,0,255,255,2,0,253,255,4,0,253,255,2,0,254,255,1,0,0,0,0,0,1,0,254,255,2,0,255,255, +0,0,1,0,254,255,2,0,0,0,254,255,3,0,253,255,2,0,0,0,254,255,4,0,251,255,5,0,253,255,0,0, +3,0,251,255,4,0,253,255,3,0,253,255,2,0,254,255,1,0,1,0,254,255,0,0,3,0,252,255,3,0,255,255, +255,255,2,0,255,255,255,255,3,0,252,255,3,0,255,255,0,0,0,0,0,0,255,255,3,0,252,255,3,0,253,255, +3,0,254,255,1,0,255,255,1,0,254,255,3,0,253,255,3,0,253,255,3,0,253,255,3,0,254,255,1,0,255,255, +3,0,251,255,5,0,252,255,3,0,255,255,1,0,252,255,6,0,251,255,3,0,255,255,254,255,3,0,254,255,2,0, +254,255,0,0,0,0,0,0,1,0,255,255,0,0,0,0,0,0,255,255,2,0,253,255,4,0,253,255,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,254,255,2,0,254,255,1,0,0,0,0,0,255,255,2,0,254,255,2,0,253,255, +4,0,251,255,7,0,250,255,2,0,1,0,254,255,3,0,254,255,0,0,1,0,255,255,2,0,254,255,0,0,2,0, +253,255,4,0,251,255,5,0,253,255,0,0,2,0,252,255,6,0,250,255,5,0,252,255,2,0,1,0,253,255,4,0, +253,255,1,0,0,0,0,0,1,0,253,255,5,0,249,255,8,0,250,255,4,0,252,255,4,0,252,255,4,0,252,255, +5,0,249,255,8,0,249,255,3,0,1,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,1,0,0,0, +255,255,1,0,255,255,1,0,255,255,0,0,1,0,255,255,1,0,255,255,0,0,2,0,252,255,4,0,253,255,2,0, +0,0,254,255,1,0,1,0,254,255,2,0,255,255,1,0,255,255,0,0,0,0,1,0,254,255,3,0,253,255,2,0, +1,0,252,255,4,0,253,255,3,0,254,255,0,0,3,0,251,255,5,0,251,255,4,0,253,255,4,0,252,255,3,0, +254,255,0,0,2,0,254,255,2,0,254,255,1,0,255,255,3,0,253,255,2,0,254,255,1,0,0,0,0,0,1,0, +254,255,3,0,252,255,4,0,254,255,0,0,1,0,255,255,2,0,254,255,0,0,2,0,253,255,5,0,249,255,5,0, +254,255,1,0,1,0,252,255,4,0,253,255,2,0,0,0,254,255,3,0,253,255,3,0,253,255,2,0,254,255,3,0, +253,255,3,0,251,255,5,0,253,255,2,0,0,0,253,255,3,0,255,255,0,0,1,0,255,255,0,0,1,0,255,255, +0,0,1,0,255,255,2,0,254,255,1,0,255,255,2,0,254,255,2,0,254,255,2,0,254,255,3,0,252,255,3,0, +0,0,254,255,2,0,255,255,0,0,0,0,2,0,252,255,5,0,250,255,5,0,254,255,0,0,2,0,251,255,5,0, +253,255,3,0,253,255,2,0,255,255,0,0,1,0,254,255,1,0,1,0,254,255,2,0,255,255,0,0,0,0,0,0, +255,255,3,0,252,255,4,0,252,255,3,0,254,255,1,0,255,255,1,0,0,0,254,255,3,0,253,255,3,0,253,255, +3,0,253,255,4,0,252,255,2,0,0,0,255,255,2,0,255,255,255,255,3,0,250,255,9,0,246,255,10,0,248,255, +5,0,253,255,1,0,0,0,0,0,0,0,0,0,254,255,4,0,252,255,4,0,251,255,4,0,255,255,0,0,1,0, +253,255,4,0,252,255,3,0,255,255,255,255,2,0,253,255,3,0,254,255,1,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,1,0,1,0,253,255,3,0,252,255,6,0,249,255,7,0,250,255,4,0,255,255,254,255,3,0,255,255, +255,255,2,0,254,255,1,0,0,0,1,0,254,255,2,0,255,255,0,0,0,0,2,0,252,255,5,0,251,255,3,0, +0,0,255,255,1,0,255,255,0,0,255,255,3,0,252,255,5,0,250,255,4,0,254,255,2,0,254,255,1,0,255,255, +2,0,254,255,2,0,253,255,2,0,0,0,0,0,255,255,0,0,1,0,255,255,1,0,0,0,254,255,3,0,253,255, +2,0,0,0,255,255,3,0,250,255,6,0,252,255,2,0,1,0,254,255,0,0,2,0,253,255,4,0,252,255,4,0, +252,255,3,0,254,255,2,0,255,255,0,0,0,0,0,0,0,0,1,0,254,255,2,0,255,255,0,0,255,255,2,0, +255,255,0,0,0,0,255,255,1,0,1,0,254,255,3,0,253,255,1,0,1,0,255,255,0,0,2,0,253,255,3,0, +254,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,255,255,1,0,255,255,1,0,255,255,1,0,255,255, +0,0,1,0,0,0,255,255,1,0,255,255,1,0,0,0,0,0,255,255,2,0,254,255,2,0,254,255,2,0,253,255, +5,0,250,255,5,0,252,255,4,0,253,255,3,0,253,255,2,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,1,0,253,255,5,0,249,255,6,0,252,255,3,0,254,255,0,0,1,0,255,255,2,0,253,255,3,0, +253,255,4,0,252,255,3,0,255,255,255,255,3,0,251,255,6,0,250,255,5,0,253,255,1,0,0,0,0,0,255,255, +3,0,251,255,5,0,252,255,3,0,255,255,0,0,0,0,254,255,3,0,254,255,1,0,1,0,254,255,1,0,1,0, +254,255,2,0,255,255,1,0,0,0,255,255,1,0,255,255,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0, +254,255,3,0,255,255,254,255,2,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,254,255, +3,0,253,255,3,0,252,255,3,0,254,255,1,0,1,0,254,255,1,0,1,0,252,255,6,0,251,255,3,0,255,255, +254,255,4,0,251,255,7,0,248,255,7,0,250,255,4,0,254,255,1,0,1,0,254,255,3,0,250,255,8,0,247,255, +9,0,249,255,5,0,253,255,1,0,0,0,255,255,0,0,3,0,251,255,5,0,251,255,4,0,254,255,0,0,1,0, +254,255,3,0,254,255,0,0,0,0,2,0,252,255,6,0,249,255,6,0,253,255,0,0,0,0,1,0,0,0,0,0, +255,255,1,0,254,255,5,0,250,255,6,0,250,255,5,0,254,255,255,255,3,0,253,255,2,0,255,255,255,255,1,0, +1,0,254,255,2,0,254,255,1,0,255,255,2,0,255,255,0,0,1,0,254,255,3,0,253,255,2,0,255,255,2,0, +252,255,6,0,248,255,8,0,250,255,4,0,254,255,0,0,2,0,252,255,5,0,252,255,1,0,1,0,254,255,3,0, +254,255,0,0,1,0,255,255,1,0,255,255,2,0,253,255,4,0,251,255,3,0,1,0,252,255,5,0,250,255,5,0, +254,255,0,0,1,0,254,255,0,0,4,0,251,255,5,0,251,255,4,0,253,255,3,0,254,255,0,0,1,0,255,255, +0,0,1,0,254,255,2,0,0,0,253,255,5,0,250,255,7,0,250,255,3,0,1,0,252,255,5,0,251,255,4,0, +254,255,1,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,254,255, +2,0,254,255,3,0,253,255,3,0,252,255,4,0,252,255,4,0,253,255,2,0,0,0,254,255,1,0,255,255,2,0, +254,255,2,0,253,255,3,0,253,255,3,0,253,255,2,0,255,255,3,0,251,255,6,0,249,255,7,0,250,255,6,0, +250,255,5,0,253,255,0,0,2,0,254,255,0,0,2,0,252,255,4,0,254,255,1,0,255,255,1,0,254,255,4,0, +252,255,3,0,254,255,1,0,0,0,0,0,0,0,255,255,2,0,254,255,1,0,0,0,0,0,255,255,1,0,0,0, +0,0,0,0,255,255,1,0,255,255,2,0,253,255,2,0,0,0,255,255,2,0,253,255,2,0,0,0,254,255,4,0, +251,255,5,0,251,255,4,0,253,255,2,0,254,255,4,0,250,255,6,0,250,255,6,0,251,255,4,0,252,255,3,0, +254,255,2,0,254,255,2,0,254,255,2,0,253,255,3,0,0,0,254,255,3,0,252,255,3,0,255,255,1,0,255,255, +255,255,3,0,252,255,4,0,253,255,1,0,1,0,253,255,5,0,250,255,6,0,252,255,1,0,1,0,255,255,0,0, +1,0,253,255,4,0,253,255,0,0,2,0,252,255,6,0,250,255,4,0,254,255,1,0,0,0,255,255,1,0,255,255, +2,0,253,255,3,0,254,255,1,0,255,255,2,0,253,255,5,0,251,255,3,0,254,255,0,0,1,0,1,0,253,255, +4,0,250,255,5,0,254,255,0,0,2,0,253,255,3,0,253,255,3,0,252,255,4,0,255,255,254,255,3,0,253,255, +1,0,3,0,250,255,7,0,250,255,4,0,254,255,255,255,5,0,249,255,7,0,249,255,6,0,251,255,4,0,254,255, +0,0,0,0,1,0,254,255,2,0,254,255,2,0,255,255,2,0,253,255,2,0,254,255,3,0,253,255,4,0,251,255, +4,0,253,255,2,0,255,255,255,255,3,0,252,255,5,0,251,255,3,0,255,255,0,0,1,0,255,255,1,0,255,255, +0,0,1,0,255,255,2,0,253,255,3,0,253,255,2,0,0,0,255,255,2,0,252,255,4,0,253,255,1,0,1,0, +255,255,1,0,255,255,255,255,3,0,254,255,1,0,0,0,255,255,1,0,0,0,0,0,255,255,2,0,252,255,5,0, +251,255,5,0,252,255,2,0,254,255,2,0,254,255,3,0,253,255,1,0,0,0,255,255,3,0,252,255,2,0,0,0, +0,0,0,0,254,255,4,0,251,255,6,0,250,255,4,0,255,255,0,0,0,0,1,0,253,255,4,0,252,255,3,0, +255,255,255,255,3,0,251,255,5,0,253,255,1,0,2,0,251,255,5,0,254,255,255,255,2,0,255,255,255,255,3,0, +252,255,2,0,0,0,255,255,2,0,255,255,254,255,4,0,250,255,7,0,250,255,5,0,253,255,255,255,3,0,252,255, +4,0,254,255,0,0,1,0,254,255,2,0,255,255,2,0,253,255,3,0,254,255,1,0,1,0,254,255,1,0,1,0, +253,255,5,0,251,255,3,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,255,255,0,0,0,0,255,255,1,0, +0,0,254,255,4,0,252,255,3,0,254,255,0,0,1,0,255,255,1,0,0,0,254,255,3,0,253,255,4,0,251,255, +4,0,252,255,4,0,253,255,2,0,254,255,1,0,0,0,0,0,255,255,2,0,253,255,3,0,255,255,0,0,0,0, +0,0,255,255,2,0,255,255,0,0,0,0,255,255,3,0,252,255,5,0,250,255,5,0,253,255,2,0,255,255,0,0, +1,0,255,255,1,0,255,255,0,0,1,0,1,0,253,255,3,0,254,255,0,0,2,0,252,255,5,0,251,255,5,0, +251,255,3,0,255,255,0,0,1,0,255,255,255,255,3,0,253,255,3,0,253,255,2,0,255,255,0,0,1,0,254,255, +1,0,1,0,254,255,2,0,254,255,0,0,2,0,254,255,2,0,255,255,254,255,4,0,253,255,1,0,1,0,253,255, +3,0,254,255,2,0,254,255,2,0,253,255,2,0,0,0,255,255,0,0,2,0,253,255,3,0,253,255,2,0,254,255, +4,0,251,255,5,0,251,255,3,0,255,255,0,0,2,0,253,255,3,0,252,255,4,0,253,255,3,0,254,255,0,0, +1,0,255,255,1,0,0,0,255,255,2,0,254,255,1,0,255,255,2,0,253,255,4,0,252,255,3,0,254,255,0,0, +2,0,252,255,6,0,250,255,5,0,252,255,2,0,0,0,0,0,0,0,255,255,2,0,254,255,2,0,255,255,0,0, +0,0,1,0,254,255,3,0,253,255,2,0,255,255,0,0,2,0,252,255,4,0,253,255,1,0,1,0,254,255,2,0, +255,255,0,0,1,0,255,255,0,0,1,0,254,255,4,0,251,255,5,0,252,255,2,0,1,0,252,255,6,0,251,255, +3,0,255,255,255,255,1,0,1,0,253,255,4,0,252,255,3,0,253,255,3,0,253,255,3,0,254,255,255,255,3,0, +253,255,1,0,1,0,253,255,5,0,250,255,5,0,252,255,3,0,254,255,1,0,255,255,2,0,254,255,2,0,254,255, +0,0,3,0,252,255,4,0,253,255,1,0,0,0,255,255,1,0,1,0,254,255,1,0,0,0,255,255,2,0,254,255, +0,0,2,0,253,255,5,0,249,255,6,0,252,255,2,0,1,0,253,255,3,0,253,255,3,0,255,255,254,255,4,0, +251,255,5,0,252,255,1,0,2,0,253,255,3,0,253,255,2,0,0,0,254,255,4,0,250,255,7,0,250,255,4,0, +255,255,254,255,3,0,254,255,2,0,254,255,0,0,2,0,254,255,1,0,255,255,0,0,2,0,253,255,2,0,254,255, +1,0,2,0,252,255,4,0,253,255,0,0,3,0,253,255,2,0,255,255,255,255,1,0,0,0,1,0,253,255,2,0, +0,0,0,0,0,0,0,0,0,0,255,255,2,0,254,255,2,0,0,0,254,255,1,0,0,0,0,0,0,0,0,0, +255,255,2,0,254,255,1,0,255,255,1,0,255,255,2,0,253,255,3,0,253,255,3,0,254,255,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,2,0,253,255,3,0,253,255,3,0,254,255,2,0,253,255,2,0, +254,255,4,0,253,255,1,0,1,0,252,255,6,0,250,255,6,0,252,255,2,0,255,255,1,0,255,255,2,0,252,255, +5,0,253,255,2,0,254,255,2,0,253,255,4,0,254,255,254,255,6,0,248,255,7,0,252,255,0,0,4,0,251,255, +3,0,254,255,2,0,254,255,3,0,251,255,5,0,253,255,2,0,254,255,1,0,255,255,3,0,253,255,3,0,252,255, +4,0,253,255,2,0,0,0,255,255,1,0,0,0,254,255,5,0,250,255,4,0,0,0,252,255,6,0,250,255,5,0, +251,255,5,0,252,255,3,0,253,255,3,0,252,255,5,0,251,255,4,0,254,255,1,0,255,255,0,0,1,0,0,0, +254,255,4,0,251,255,5,0,252,255,3,0,253,255,3,0,253,255,4,0,250,255,9,0,245,255,10,0,248,255,5,0, +254,255,2,0,253,255,3,0,252,255,4,0,254,255,2,0,254,255,1,0,255,255,2,0,253,255,4,0,253,255,1,0, +0,0,255,255,0,0,2,0,254,255,0,0,2,0,252,255,4,0,254,255,1,0,255,255,0,0,1,0,255,255,2,0, +254,255,0,0,3,0,252,255,5,0,250,255,5,0,253,255,3,0,253,255,2,0,254,255,2,0,254,255,2,0,254,255, +2,0,254,255,1,0,254,255,4,0,252,255,4,0,251,255,4,0,253,255,4,0,251,255,4,0,254,255,1,0,0,0, +255,255,1,0,254,255,4,0,253,255,0,0,2,0,253,255,4,0,252,255,4,0,252,255,4,0,253,255,1,0,1,0, +254,255,2,0,255,255,255,255,3,0,252,255,3,0,254,255,1,0,0,0,255,255,2,0,254,255,2,0,253,255,3,0, +254,255,2,0,255,255,0,0,1,0,254,255,1,0,0,0,0,0,1,0,254,255,1,0,0,0,0,0,255,255,2,0, +254,255,1,0,0,0,255,255,1,0,255,255,1,0,0,0,255,255,1,0,0,0,254,255,5,0,250,255,4,0,0,0, +253,255,4,0,252,255,4,0,252,255,4,0,251,255,6,0,250,255,4,0,255,255,255,255,1,0,255,255,0,0,2,0, +253,255,3,0,253,255,2,0,1,0,252,255,5,0,252,255,1,0,2,0,253,255,2,0,0,0,254,255,3,0,253,255, +2,0,0,0,254,255,3,0,254,255,0,0,2,0,252,255,3,0,0,0,255,255,2,0,253,255,1,0,2,0,253,255, +4,0,252,255,2,0,0,0,0,0,1,0,255,255,0,0, +}; +SoundDesc SA_pop2((char*)PCM_pop2); diff --git a/src/client/sound/data/sand1.pcm b/src/client/sound/data/sand1.pcm new file mode 100755 index 0000000..b7fa683 --- /dev/null +++ b/src/client/sound/data/sand1.pcm @@ -0,0 +1,864 @@ +unsigned char PCM_sand1[27580] = { +1,0,0,0,2,0,0,0,68,172,0,0,214,53,0,0,228,255,206,255,185,255,221,255,34,0,229,255,245,255,97,0, +68,0,242,255,198,255,227,255,6,0,186,255,169,255,176,255,131,255,238,255,61,0,43,0,82,0,174,255,24,255,4,0, +171,0,53,0,140,255,45,255,80,255,96,255,167,255,120,0,207,0,23,1,30,1,55,0,229,255,218,255,159,255,223,255, +20,255,198,254,86,0,23,0,54,255,64,0,223,0,28,1,134,0,156,254,221,254,255,255,192,255,50,0,55,0,236,255, +219,0,59,0,236,254,49,255,223,254,187,254,108,0,144,1,207,0,244,255,177,0,210,1,247,1,82,1,186,255,60,255, +6,0,124,255,5,1,82,4,3,3,101,0,182,255,35,254,29,254,251,255,2,1,31,1,115,255,58,255,174,0,134,254, +9,254,65,0,116,253,252,251,177,255,172,0,176,255,211,254,59,253,105,252,210,250,1,251,213,253,38,252,62,250,252,253, +221,255,217,253,169,251,202,250,184,253,80,0,100,254,102,253,7,255,69,255,33,254,119,254,186,1,24,6,82,8,159,6, +61,3,162,1,111,255,61,254,116,3,82,5,99,254,112,251,189,252,208,251,39,254,72,2,5,3,42,3,229,2,176,1, +160,0,72,0,48,1,201,255,30,254,49,0,133,255,202,254,236,2,95,1,199,253,94,2,85,5,245,3,69,3,221,254, +120,251,206,254,224,0,218,255,210,0,42,2,67,1,201,255,13,0,85,2,80,5,106,5,46,1,217,255,231,2,188,0, +51,253,131,1,59,5,81,4,148,3,11,254,43,249,116,0,151,6,165,2,63,1,139,1,193,253,27,0,161,8,143,8, +173,0,140,254,98,0,146,254,197,255,183,3,28,2,165,1,216,4,20,4,140,0,22,252,29,250,140,253,18,255,64,255, +151,0,49,0,102,3,196,3,244,252,208,255,153,4,191,254,189,254,41,1,64,251,225,249,163,251,198,250,34,255,244,1, +6,253,113,251,5,254,109,253,153,254,16,2,81,254,173,250,90,1,41,6,26,3,125,1,39,2,76,0,74,250,80,247, +56,254,138,4,234,5,165,8,158,5,13,253,44,252,134,2,62,6,62,3,85,0,232,0,127,253,59,251,77,0,136,4, +148,7,24,8,36,3,150,2,226,3,9,255,150,250,112,249,201,250,42,252,207,251,14,254,155,252,131,250,80,5,186,11, +226,5,173,4,170,254,149,244,125,251,14,5,68,2,218,0,161,3,67,3,121,1,176,1,44,2,171,1,184,2,153,2, +39,0,219,1,168,3,47,254,127,247,215,246,62,251,156,254,65,255,47,0,27,254,27,251,0,0,122,6,241,4,96,0, +235,254,18,255,64,0,188,3,239,3,197,0,220,3,251,5,240,255,196,255,29,5,126,3,179,253,116,250,189,253,11,1, +221,251,212,250,154,0,160,254,1,251,142,254,135,2,196,2,72,0,42,255,11,255,227,252,131,253,125,253,194,248,31,250, +39,0,237,0,253,255,21,255,170,252,68,252,119,254,179,255,1,253,207,250,67,255,66,3,11,0,88,253,34,1,185,5, +118,4,174,255,43,253,210,252,186,252,111,252,194,252,171,0,81,4,108,0,247,250,102,252,205,255,53,0,104,0,29,1, +83,1,201,0,98,253,37,250,142,252,109,255,34,254,67,254,209,255,230,254,60,255,84,0,234,252,54,250,28,254,110,1, +217,254,99,253,188,0,246,2,121,2,241,2,239,2,143,1,71,3,128,5,137,0,20,249,231,248,79,253,67,0,123,3, +52,7,68,7,86,4,127,2,218,1,5,1,84,0,160,254,40,251,215,249,52,253,155,1,142,3,120,2,240,254,189,252, +232,254,14,2,153,2,180,1,189,0,223,255,214,255,137,1,202,4,82,6,88,3,101,255,77,254,242,253,132,252,15,252, +189,254,239,3,62,7,224,5,132,2,27,255,203,252,90,254,187,0,9,0,113,0,227,1,141,255,16,254,222,255,132,254, +223,252,12,1,9,5,30,4,29,1,165,253,78,252,123,254,36,1,54,4,77,6,165,2,119,253,20,252,52,250,208,248, +141,252,102,255,102,254,2,0,26,3,176,1,73,252,89,246,194,245,155,254,144,8,162,9,96,4,157,254,207,250,42,252, +28,1,96,2,235,255,211,0,197,4,240,3,149,253,7,250,188,251,90,251,186,247,30,249,248,254,34,0,216,253,58,254, +201,253,73,251,69,253,130,2,190,5,142,8,95,9,5,5,86,2,73,4,209,2,94,254,203,254,68,1,255,254,167,250, +126,250,247,254,183,2,93,1,183,253,37,254,15,3,152,5,70,2,21,255,216,255,58,0,153,255,133,0,197,255,24,254, +83,1,186,4,130,0,53,249,238,246,153,250,251,253,145,251,25,250,24,0,121,3,29,255,207,252,40,253,165,252,54,1, +144,6,184,2,225,253,191,255,22,0,1,253,252,253,208,2,105,5,59,3,208,255,231,255,127,1,157,1,125,2,158,2, +231,254,42,252,190,253,237,255,103,0,53,254,58,250,63,250,152,254,80,1,223,2,230,3,0,255,23,248,84,249,246,254, +199,0,101,2,184,5,2,4,36,254,42,252,71,254,3,0,250,0,110,1,88,0,180,254,202,254,145,0,129,0,117,253, +170,252,193,255,68,1,80,1,211,2,18,1,155,252,42,255,247,5,92,4,243,251,221,247,176,249,237,251,165,252,208,252, +5,252,237,250,252,252,161,1,242,2,202,255,1,253,160,252,222,252,77,253,66,0,101,5,99,6,111,2,236,2,103,8, +251,7,227,0,134,251,118,250,184,252,140,0,176,2,253,2,235,1,93,255,146,254,190,254,40,252,6,252,40,1,65,3, +163,0,199,254,79,253,79,253,190,1,199,5,163,5,250,3,93,1,251,253,226,251,3,251,56,252,63,0,229,2,79,1, +156,253,78,250,241,249,11,253,192,255,37,0,254,255,254,254,166,251,82,247,5,246,177,250,155,1,101,3,148,0,93,0, +99,3,71,3,52,255,11,253,216,253,117,253,85,252,99,252,79,251,215,250,224,255,251,5,53,6,183,3,208,2,116,1, +213,255,75,1,64,4,110,4,37,2,173,0,44,1,238,2,116,5,133,7,210,6,211,2,178,255,27,2,35,6,252,3, +163,254,168,253,110,254,201,253,233,255,120,3,169,3,7,4,94,6,12,5,125,0,184,254,239,255,106,1,20,3,239,3, +79,2,242,0,129,2,18,2,165,252,17,250,57,254,165,2,77,5,224,6,19,4,187,0,117,2,240,3,201,2,242,2, +48,2,88,1,235,3,186,1,162,249,205,249,118,0,116,255,115,250,125,250,31,252,32,253,242,255,25,2,167,0,103,253, +122,250,62,249,178,252,85,4,238,6,181,255,46,249,221,250,205,254,58,2,68,5,47,2,149,251,172,250,122,252,79,253, +126,2,20,8,21,5,132,254,55,252,236,252,5,255,250,1,166,3,157,4,174,5,146,4,237,0,79,253,72,252,72,255, +197,2,22,1,8,253,187,252,80,253,38,251,176,250,86,253,204,254,59,255,30,0,195,255,72,255,16,255,87,251,18,247, +32,250,225,1,160,4,45,0,108,250,131,248,120,250,54,254,119,2,100,4,111,1,130,252,199,250,153,253,106,1,25,2, +140,2,139,6,213,6,96,255,70,251,202,254,148,0,131,254,108,252,107,250,42,251,131,255,205,0,118,253,172,251,78,254, +135,2,18,4,202,2,229,1,186,0,48,255,83,0,75,0,173,252,109,253,51,2,175,2,160,1,124,1,227,253,96,251, +137,253,19,254,167,254,91,3,78,5,97,3,244,3,137,4,96,2,128,1,23,2,94,2,57,2,0,255,50,250,78,250, +36,254,241,255,10,0,219,255,68,254,158,252,254,252,135,254,44,0,149,1,116,1,252,254,152,251,53,250,217,252,154,1, +235,3,48,2,239,254,128,253,148,255,5,3,41,4,214,3,55,4,89,3,90,0,69,253,169,250,213,249,237,251,237,253, +250,254,225,0,215,1,228,2,150,6,117,6,36,0,173,253,217,0,140,2,179,3,51,5,81,3,255,1,48,5,38,7, +11,5,129,2,116,0,60,255,174,0,123,2,144,1,216,0,106,2,193,1,43,255,9,2,169,7,38,7,206,3,61,2, +253,254,163,253,88,1,219,0,228,251,130,251,153,251,201,248,198,250,69,255,177,255,39,0,39,1,213,255,154,0,2,2, +24,255,212,254,194,3,246,3,227,255,100,0,167,2,193,0,58,254,205,254,185,0,38,2,107,2,37,1,254,255,23,1, +44,3,200,2,227,254,25,250,12,248,118,250,195,255,33,3,164,0,24,252,44,253,38,2,232,2,233,255,142,254,219,254, +195,255,196,0,39,0,110,0,30,3,136,2,224,254,18,255,229,0,103,255,133,254,187,0,103,2,197,1,45,0,130,255, +115,255,228,253,73,253,59,0,234,1,179,255,163,253,213,253,142,1,231,7,209,7,212,254,72,249,230,252,106,1,129,1, +221,254,174,251,161,250,95,253,64,1,16,2,56,255,133,252,233,252,113,254,255,253,236,252,57,255,173,3,4,4,139,0, +7,0,223,1,140,0,183,253,81,253,3,255,174,1,73,3,145,2,178,2,17,4,104,2,146,254,206,252,29,253,42,254, +107,255,136,255,164,254,119,254,124,255,169,0,102,0,201,254,125,254,140,0,152,2,129,3,137,4,114,4,89,0,192,251, +142,253,27,3,51,4,163,0,21,252,10,248,72,248,188,253,95,2,60,3,253,1,16,0,107,0,16,3,215,3,178,3, +74,4,91,2,108,255,113,255,251,0,241,3,170,6,150,2,89,251,96,250,139,252,163,252,46,253,19,254,136,254,95,0, +244,0,229,255,169,1,202,2,234,254,208,252,69,0,31,3,121,3,210,4,125,6,173,5,52,2,63,253,201,249,103,252, +113,3,175,5,66,1,164,255,252,2,110,3,39,1,112,1,73,1,118,254,145,253,227,254,147,255,115,0,58,0,241,253, +191,254,217,1,199,255,236,251,52,253,198,254,181,254,209,2,239,5,226,0,130,252,221,255,89,3,227,1,24,255,66,253, +25,251,54,248,191,248,191,254,118,1,82,252,5,250,102,254,43,0,119,255,58,2,197,3,219,0,117,255,73,0,188,253, +231,249,86,252,220,2,78,5,217,5,53,8,209,4,1,252,70,250,11,254,83,254,219,254,83,0,236,253,150,253,167,0, +111,254,36,251,77,254,13,1,113,255,223,253,249,252,7,254,233,1,241,2,198,0,35,1,237,1,9,255,60,252,55,253, +73,255,105,254,10,252,240,252,97,255,82,254,197,252,44,254,236,253,90,251,133,252,127,0,9,1,71,255,36,1,190,5, +159,6,38,3,57,0,52,254,88,252,103,254,74,2,211,0,135,253,88,255,123,1,29,255,179,252,31,253,208,255,210,3, +230,3,84,254,195,250,252,251,147,253,143,255,46,1,138,254,243,251,137,254,249,0,109,255,135,253,86,253,30,254,231,253, +47,251,106,249,238,250,205,252,221,254,171,0,152,254,201,252,209,255,30,1,191,254,59,255,150,1,90,3,200,6,113,7, +133,1,179,252,57,254,97,1,210,1,117,0,106,0,72,1,159,255,99,253,225,253,255,253,117,253,97,0,106,3,87,1, +40,254,73,255,56,2,245,1,39,0,63,1,234,2,83,3,150,6,96,8,129,1,113,251,146,254,204,1,197,0,192,0, +9,1,19,1,62,2,17,0,1,252,50,254,133,3,37,4,55,2,176,1,132,1,235,0,148,0,110,0,221,255,218,255, +46,2,31,5,243,5,0,5,46,2,209,254,94,255,150,1,194,255,0,254,225,0,19,3,38,2,223,1,242,0,38,253, +4,252,30,1,58,5,3,3,192,0,117,2,17,3,40,2,60,3,49,3,110,0,216,254,242,254,125,0,83,3,29,2, +121,252,7,250,233,251,79,254,15,1,84,2,80,255,146,250,24,249,36,253,78,2,224,1,125,254,34,254,160,255,147,2, +208,6,3,6,202,0,207,254,125,254,74,253,191,255,15,3,167,0,255,252,57,254,187,1,80,3,240,1,101,254,186,251, +106,253,100,1,55,1,39,253,183,251,81,253,210,254,24,0,84,255,168,253,130,0,97,3,118,0,40,255,214,1,232,1, +243,1,118,3,92,1,245,0,150,5,10,5,134,254,119,250,25,248,53,246,138,247,214,250,157,255,185,3,183,0,181,250, +176,250,143,252,13,252,197,254,39,4,37,5,154,2,79,1,231,255,241,251,38,250,29,255,243,4,19,5,203,2,187,1, +13,1,43,1,154,0,34,254,23,255,236,3,96,5,53,4,6,4,21,0,113,249,131,249,198,254,75,0,9,255,127,0, +11,3,150,2,37,0,112,255,224,0,212,1,45,1,175,255,39,254,175,253,198,254,120,0,182,1,74,1,54,255,200,254, +237,0,162,0,51,252,34,249,195,250,152,254,241,1,78,4,132,5,57,4,215,0,21,0,242,2,80,3,118,0,235,255, +83,1,240,2,98,6,188,7,84,4,85,3,42,6,96,5,66,1,233,254,75,254,193,254,88,0,244,1,217,2,122,1, +251,254,230,255,127,2,146,2,233,1,235,255,195,251,76,252,211,0,131,0,200,254,188,0,63,255,133,250,202,251,62,0, +64,0,123,254,179,254,17,255,46,255,240,0,197,2,152,1,235,255,159,1,99,3,17,2,169,1,56,3,152,2,28,0, +130,254,124,253,32,253,97,254,127,0,98,2,142,3,185,3,19,3,156,2,220,2,191,1,199,254,229,254,156,2,26,3, +193,0,203,1,14,4,36,3,145,1,181,1,82,2,72,1,90,253,117,249,114,248,203,247,123,247,150,251,225,1,188,3, +237,255,43,251,126,250,12,253,45,254,35,254,220,254,182,253,43,251,82,252,95,0,194,1,65,255,121,252,205,252,242,254, +218,254,100,253,71,255,236,3,21,6,98,4,145,1,165,254,50,252,98,253,152,1,28,3,120,1,155,0,134,255,11,253, +109,252,97,254,108,0,81,1,225,0,155,255,132,252,15,247,244,245,66,253,123,3,53,2,38,255,211,252,167,250,195,252, +29,2,61,4,134,3,26,3,224,1,117,0,16,2,155,5,59,6,123,2,68,254,99,253,33,255,121,255,202,252,10,252, +59,0,154,2,158,0,185,1,100,4,84,1,80,254,95,0,118,0,249,253,96,254,125,255,94,0,66,3,124,3,7,255, +195,252,239,253,5,253,173,250,90,251,166,253,98,254,58,255,125,0,185,254,79,252,149,253,161,254,239,253,54,0,57,2, +239,255,109,255,130,1,66,0,114,254,191,255,168,0,20,0,86,255,51,255,56,2,46,6,119,5,23,2,166,0,101,1, +245,3,37,5,223,1,206,255,155,2,106,3,247,255,7,255,10,2,87,3,209,0,243,254,69,1,223,3,71,2,12,0, +244,0,81,1,94,254,144,251,80,252,126,0,96,5,151,6,160,2,204,253,132,252,242,253,226,254,180,253,116,251,192,251, +247,255,127,3,27,3,255,1,52,2,77,2,41,3,15,5,106,4,63,1,101,0,65,2,42,2,98,255,94,254,148,0, +151,1,164,254,37,251,100,251,52,255,215,1,215,254,208,249,44,251,135,1,98,3,241,255,117,253,121,252,93,252,45,0, +78,5,130,5,139,2,145,0,5,254,25,251,253,250,92,252,31,253,210,254,62,1,20,2,215,0,189,254,224,254,93,2, +161,3,195,255,189,252,27,253,234,252,197,252,237,254,53,0,121,255,201,255,96,0,110,254,239,250,68,248,162,248,49,253, +121,1,36,0,138,252,137,252,103,255,185,2,75,4,37,0,157,249,89,250,193,0,179,2,191,255,56,254,33,255,15,0, +107,0,82,1,150,2,240,1,56,0,97,0,232,255,223,252,233,252,202,1,208,4,76,3,13,1,242,255,170,254,243,252, +90,252,232,252,226,253,191,0,54,3,33,0,22,253,152,1,46,5,239,0,14,254,163,0,49,2,49,2,94,2,41,0, +67,253,160,254,138,3,76,6,249,3,199,1,112,4,55,6,92,2,81,254,160,253,64,254,89,0,53,3,89,3,157,0, +0,254,169,253,86,254,127,252,24,250,185,252,223,0,32,255,117,251,193,253,119,2,217,1,115,254,24,255,35,1,217,254, +10,252,194,253,76,0,86,0,111,0,114,1,110,1,97,0,135,255,217,254,112,253,8,252,5,253,177,255,107,0,17,255, +84,254,180,254,162,255,223,0,214,0,230,254,148,253,162,254,129,0,167,1,98,2,209,2,196,2,140,2,20,2,74,1, +73,0,150,254,62,253,79,254,82,0,102,0,182,254,23,253,79,253,211,254,234,254,38,255,13,2,20,3,34,0,61,254, +255,253,164,253,150,254,170,255,17,1,16,4,131,2,0,253,22,254,8,2,3,0,133,254,215,255,78,254,220,254,38,3, +168,2,250,254,25,254,57,254,77,255,130,1,137,1,59,1,211,2,153,2,177,255,220,253,10,254,194,252,132,249,106,251, +199,2,113,4,167,0,139,0,134,0,89,254,227,255,46,0,64,252,86,253,238,0,236,254,76,253,240,255,35,2,165,2, +22,1,135,254,87,254,179,254,98,255,154,2,20,3,237,255,0,0,159,1,116,1,231,1,74,1,109,0,167,3,4,6, +172,3,244,0,27,255,176,255,164,3,119,4,131,2,87,3,12,2,149,253,113,253,125,255,8,255,13,254,225,252,185,252, +206,253,84,251,36,249,143,253,120,1,2,1,222,1,179,2,45,1,155,0,116,0,7,0,20,1,192,1,35,1,237,255, +131,253,46,253,200,0,174,3,5,4,68,2,87,254,217,252,209,255,215,2,103,4,86,3,201,254,54,253,130,0,56,2, +107,2,115,3,205,2,151,1,91,1,253,255,155,254,239,253,109,252,165,252,184,255,84,2,251,2,191,1,199,0,123,2, +7,3,204,0,116,0,203,0,91,255,24,255,138,254,54,253,243,255,215,2,134,1,254,1,42,3,170,255,209,253,166,0, +165,1,92,0,60,255,172,253,82,253,4,254,137,253,181,253,245,254,211,254,252,253,15,253,224,250,92,248,108,247,251,248, +74,252,114,255,200,1,72,2,192,0,161,0,23,1,98,254,146,253,68,1,142,1,1,255,215,0,124,3,95,3,247,3, +28,4,86,2,223,1,213,2,254,3,107,4,80,1,24,253,124,252,136,253,80,255,16,3,231,3,106,255,6,251,79,250, +103,253,32,2,68,3,88,0,92,253,180,250,235,248,76,250,67,253,237,255,6,2,185,1,191,255,207,254,55,254,103,254, +163,0,213,0,223,253,255,253,226,1,55,3,135,0,31,253,176,251,95,254,19,3,173,2,58,253,50,252,129,0,156,0, +22,253,200,254,216,2,209,1,178,254,131,253,129,253,230,255,43,3,233,1,235,253,183,252,223,253,141,255,28,1,191,0, +241,255,228,1,167,3,231,0,51,252,112,250,26,252,157,254,62,0,210,0,18,0,28,254,111,253,96,0,92,4,191,4, +111,2,234,1,95,2,24,0,216,252,210,251,115,252,26,255,78,3,11,4,25,1,18,0,194,0,1,1,123,3,248,5, +154,2,130,253,168,253,203,255,121,255,149,255,75,1,32,1,46,0,54,2,6,4,202,1,223,255,13,1,130,1,247,0, +62,1,228,255,207,253,68,255,18,2,229,1,238,255,96,255,56,1,174,2,254,0,112,255,120,0,144,0,64,0,139,2, +5,3,141,254,162,250,206,251,100,0,87,3,233,1,207,255,153,255,232,254,175,254,226,255,11,255,190,253,40,255,227,255, +107,255,88,0,144,0,37,0,96,0,34,254,201,251,27,254,224,0,94,1,16,2,20,1,182,254,212,254,127,255,60,0, +2,4,24,7,74,6,246,3,187,255,218,251,156,254,83,4,43,5,146,3,174,3,39,3,37,1,127,0,253,0,117,0, +191,0,182,2,194,1,153,254,33,255,112,0,48,255,125,0,246,1,118,254,234,253,12,2,234,0,151,253,77,255,252,0, +200,1,113,4,99,3,192,255,164,0,116,1,255,253,45,252,67,253,20,254,241,254,109,255,215,255,226,1,132,2,130,0, +109,0,95,1,174,254,153,251,15,253,40,0,188,0,76,0,151,1,93,3,156,2,10,0,157,255,43,2,138,3,22,1, +67,254,15,255,171,1,38,2,81,0,9,254,213,252,56,254,166,0,6,0,4,254,172,255,69,2,46,1,176,255,188,255, +49,254,10,253,204,254,184,255,77,255,220,255,28,255,179,253,253,254,41,0,124,0,224,3,124,6,222,2,130,253,112,251, +236,251,18,254,235,0,18,2,191,0,59,255,182,255,71,0,101,255,250,255,40,1,72,255,7,254,245,255,157,0,122,0, +253,1,57,2,219,1,172,2,44,1,253,253,59,252,110,251,171,253,188,1,87,1,113,0,106,3,58,2,32,253,236,253, +82,1,211,255,246,252,31,253,198,254,202,254,216,253,26,0,145,2,156,255,116,253,48,0,235,255,99,252,157,252,181,255, +225,2,249,3,25,0,113,252,254,253,193,255,109,255,221,254,187,253,159,255,109,4,80,3,195,253,227,252,95,254,3,254, +155,254,234,255,105,0,44,1,70,0,223,252,175,251,11,255,232,2,226,2,59,0,40,255,183,255,24,0,28,1,18,2, +193,1,23,2,165,2,25,1,168,255,127,0,223,1,213,1,195,255,252,253,139,255,177,1,32,1,242,255,253,254,127,253, +102,253,70,254,196,254,137,1,229,5,26,7,59,5,97,2,188,254,175,252,156,253,91,254,237,253,115,254,20,255,134,254, +216,254,32,0,83,255,62,253,97,253,22,255,236,255,252,255,4,0,82,0,47,0,121,254,71,254,112,2,148,5,171,3, +63,1,110,0,73,255,63,255,171,0,218,0,191,255,232,254,157,255,232,1,93,2,158,0,239,0,87,1,232,253,159,251, +64,254,249,0,117,1,162,2,16,4,246,1,166,253,185,253,172,1,214,1,184,255,135,1,188,2,231,255,22,255,89,0, +198,255,153,0,218,2,14,2,251,0,52,2,104,1,67,254,70,253,87,255,103,2,49,4,100,3,97,1,225,255,15,255, +115,255,7,1,172,1,250,255,73,253,126,251,94,251,96,253,95,0,253,0,190,255,170,0,133,1,192,254,121,253,245,255, +97,0,21,0,79,3,228,3,42,255,200,252,125,253,153,252,66,252,152,253,135,253,119,253,183,254,213,254,137,255,214,2, +54,4,233,1,69,0,95,0,21,1,172,3,185,6,37,6,163,1,147,252,85,251,255,255,0,5,12,3,12,253,68,251, +122,254,219,0,29,255,45,252,83,252,96,254,235,254,246,254,119,255,108,254,177,253,170,0,164,3,208,1,65,254,149,253, +153,254,35,255,186,255,118,255,108,253,119,253,166,1,185,4,61,3,229,255,252,252,233,251,115,253,202,254,47,255,58,1, +204,2,164,1,209,0,247,255,33,253,129,252,12,255,214,255,201,254,204,253,122,252,73,253,75,0,92,0,37,254,64,254, +127,255,229,255,255,255,28,255,32,254,227,254,48,255,25,254,206,254,36,1,56,2,134,2,183,2,79,1,205,255,180,1, +47,5,10,5,242,1,224,0,15,1,239,253,194,249,208,250,3,0,93,3,99,4,18,5,123,2,82,252,94,250,71,255, +137,3,196,3,157,3,139,3,244,1,127,255,41,253,81,253,218,0,106,2,250,255,23,255,18,0,253,254,55,254,110,255, +117,255,243,254,73,255,77,254,153,253,52,255,114,255,25,254,36,255,37,1,245,1,3,3,192,2,37,0,244,254,64,255, +135,254,47,255,162,1,197,1,24,0,220,254,137,252,165,250,252,252,25,1,137,2,173,1,11,1,163,1,12,1,56,253, +220,251,109,1,122,5,30,2,119,255,255,0,130,0,25,255,24,1,63,2,230,255,119,254,120,255,251,0,67,2,153,2, +160,2,196,3,194,3,212,0,169,254,206,255,49,1,39,0,164,254,137,255,50,2,201,3,51,3,13,1,115,254,84,253, +42,254,184,254,117,254,110,255,56,1,11,1,229,254,155,253,41,254,57,255,23,1,13,4,59,4,228,255,16,253,82,255, +166,1,32,1,130,0,9,0,99,254,201,253,35,255,77,255,26,254,52,255,217,1,7,2,225,0,225,0,11,0,239,254, +46,0,133,255,201,250,135,249,158,253,255,255,196,255,215,255,107,255,207,255,199,1,92,1,143,255,181,0,229,1,14,0, +65,254,212,253,35,254,7,0,142,1,142,0,232,255,35,1,48,1,239,255,157,0,57,2,151,1,77,1,94,4,35,5, +164,255,223,251,181,254,170,0,28,254,105,252,86,253,199,254,20,0,26,0,45,255,66,255,234,254,152,253,106,254,46,0, +158,255,242,254,96,255,52,254,82,252,240,251,114,252,193,254,120,2,129,2,154,254,166,252,21,253,93,252,142,252,167,0, +238,4,43,4,65,255,185,251,7,253,249,0,92,3,35,3,27,1,209,253,107,252,239,255,129,3,210,0,105,252,84,253, +123,0,249,0,166,0,58,1,168,1,113,1,48,0,50,255,126,0,82,1,131,255,168,254,246,254,157,253,16,254,41,2, +125,4,242,3,186,3,191,2,124,0,46,255,178,254,221,254,172,255,18,255,177,254,244,0,17,1,124,253,79,253,130,0, +6,0,139,253,41,254,106,255,15,255,74,255,193,255,235,254,164,253,232,251,109,250,40,252,226,254,249,253,87,253,68,0, +19,0,107,252,182,253,159,0,9,254,47,253,177,1,131,2,183,255,100,255,180,253,168,250,9,254,144,4,162,5,201,2, +223,255,53,253,172,251,131,251,171,253,235,2,155,5,170,2,239,0,158,1,78,254,96,250,252,252,184,1,30,2,63,0, +254,255,74,1,72,1,168,254,114,253,140,0,171,3,176,3,243,2,196,1,60,255,80,254,254,255,221,0,29,0,220,255, +43,1,4,4,81,5,78,1,85,252,245,252,149,255,119,255,195,255,36,0,210,252,110,250,112,252,192,252,89,250,10,251, +60,254,248,0,233,3,109,5,179,3,211,0,160,254,24,255,227,2,112,4,134,1,38,0,193,0,32,255,39,254,178,255, +167,255,192,254,146,255,135,255,165,254,134,255,20,0,50,255,28,255,172,254,22,253,226,253,253,0,245,1,97,0,35,255, +194,254,241,254,165,0,188,2,13,2,169,255,250,255,171,1,233,255,214,252,237,252,201,253,133,253,183,255,42,3,66,2, +76,255,216,255,38,1,231,255,55,0,76,3,165,3,111,0,174,254,43,0,175,2,130,3,165,1,60,0,130,1,26,2, +43,1,56,2,54,3,224,0,197,255,37,2,160,2,58,0,41,255,115,255,107,255,209,255,51,0,74,255,79,254,202,254, +192,255,210,255,200,255,253,255,135,254,80,252,57,253,168,255,121,255,207,255,222,3,213,5,121,1,126,252,136,252,117,255, +88,1,29,2,104,2,31,1,112,255,153,255,116,255,33,254,116,255,104,1,249,254,71,253,216,0,125,2,153,255,112,255, +161,2,119,3,117,1,87,255,161,254,141,255,83,0,17,0,211,255,87,255,227,254,246,255,21,1,145,0,204,255,249,254, +174,253,219,253,60,255,12,255,49,254,137,255,43,2,199,2,158,0,117,254,179,254,182,0,131,2,55,2,102,255,222,252, +21,253,224,254,140,0,159,0,254,253,34,252,131,254,62,1,122,0,36,255,180,0,30,5,205,8,186,6,233,0,223,254, +129,0,236,0,21,1,55,2,67,1,113,254,126,253,200,254,16,0,222,0,74,1,154,255,115,252,117,252,233,254,82,254, +156,253,159,1,20,4,172,0,51,253,95,251,209,249,197,251,127,255,49,0,181,0,111,2,191,1,71,0,125,255,187,252, +137,251,91,255,175,1,16,255,54,253,166,254,71,0,7,0,135,254,80,254,91,0,2,2,246,1,239,1,51,2,38,1, +124,254,125,252,136,253,65,0,27,1,41,255,130,252,79,252,44,255,155,0,127,254,178,253,205,255,179,0,220,255,112,254, +136,251,187,249,16,252,214,255,115,2,241,3,169,3,29,3,158,4,89,5,64,2,167,254,109,255,170,3,111,5,94,2, +95,255,196,255,6,1,38,1,6,0,169,254,172,255,66,1,156,255,171,254,121,0,122,254,211,250,149,253,234,0,40,254, +145,252,100,254,182,252,25,250,208,252,147,0,195,0,202,0,67,2,113,1,100,254,254,253,150,0,60,2,209,2,84,3, +2,2,173,255,148,254,78,254,226,255,28,3,145,3,240,1,158,1,201,255,54,253,226,254,70,1,169,1,24,4,47,5, +130,1,26,0,143,1,118,0,76,0,211,1,90,0,90,0,247,3,179,3,211,0,6,1,201,0,188,255,34,2,94,4, +44,3,14,2,166,1,220,0,103,1,74,2,197,0,75,254,74,254,215,0,165,2,137,2,218,2,58,3,209,1,178,0, +95,0,120,254,42,253,173,254,63,0,61,1,31,2,84,0,247,252,191,251,156,251,152,251,95,253,184,255,28,1,102,2, +167,2,9,1,218,255,108,0,110,1,62,1,30,255,84,253,90,255,177,2,216,0,87,251,10,251,104,0,252,2,116,1, +85,0,120,254,59,252,166,254,61,2,178,0,6,254,118,253,47,252,18,252,3,254,100,253,79,252,70,255,42,2,234,1, +111,0,206,253,112,252,245,254,118,0,17,255,136,255,135,255,72,251,214,248,85,251,229,253,239,255,150,2,238,1,86,253, +27,250,60,251,18,255,179,1,14,1,13,0,191,0,12,1,113,1,140,3,154,4,64,4,170,5,66,6,192,2,21,255, +251,253,69,254,178,0,33,3,94,1,73,255,136,1,224,3,164,3,243,2,90,0,251,252,90,255,56,5,238,5,195,2, +233,1,162,2,218,2,97,3,17,3,4,1,128,255,67,255,44,255,84,255,245,254,41,253,5,252,136,252,69,253,48,255, +228,2,192,4,51,2,20,253,216,249,49,252,5,0,96,254,6,252,5,0,119,3,156,0,23,254,104,254,13,254,191,254, +87,0,211,254,249,252,28,254,163,254,151,253,216,253,201,254,159,255,25,1,17,1,118,254,57,253,10,255,16,0,222,254, +101,254,255,253,45,251,215,249,60,253,11,0,43,255,142,254,128,255,247,0,218,2,7,2,204,253,164,251,106,252,254,252, +244,254,9,2,143,2,125,2,195,3,21,3,90,1,191,1,102,1,246,254,86,254,183,255,173,0,50,2,66,4,216,3, +114,0,137,252,174,250,150,252,77,0,52,1,187,255,19,0,54,1,240,0,148,2,163,6,192,7,47,5,131,2,146,0, +11,0,6,1,133,0,200,255,227,2,12,6,121,4,73,2,165,2,111,2,77,1,19,1,74,0,22,255,22,0,243,1, +247,1,233,0,19,255,56,252,164,251,37,254,222,254,234,252,247,251,195,251,184,251,77,254,215,1,205,2,116,2,220,1, +209,0,186,1,119,3,144,1,217,254,147,0,156,3,90,3,90,1,218,255,236,254,67,255,223,0,170,1,220,0,189,255, +59,254,145,252,193,253,152,1,181,3,96,3,164,1,89,253,98,249,180,249,223,251,152,254,85,2,234,1,175,253,7,254, +193,0,21,255,135,254,201,2,138,4,170,1,0,255,201,253,162,253,132,254,157,254,192,253,62,254,232,255,77,255,229,251, +243,250,209,254,107,2,23,3,95,2,131,255,221,252,219,254,53,1,229,255,0,0,157,2,24,4,244,5,124,7,253,4, +65,2,196,2,70,2,190,255,9,255,68,0,216,0,8,0,28,255,200,254,33,254,152,254,179,1,157,2,96,255,13,255, +87,2,243,1,246,254,143,254,20,255,95,255,141,0,199,255,210,252,179,252,27,255,107,255,205,254,105,0,162,1,232,255, +28,254,195,253,200,252,166,252,12,0,56,3,89,2,145,0,69,0,111,255,124,254,49,255,136,255,148,254,17,255,109,0, +246,255,222,255,143,1,217,0,3,254,115,254,162,0,82,0,229,255,180,0,112,0,127,0,90,1,245,255,84,254,112,255, +26,0,157,255,94,1,80,3,114,1,94,253,165,250,34,251,175,254,26,2,62,2,67,0,80,255,184,255,56,255,241,253, +204,254,113,1,88,2,250,0,170,255,255,255,40,2,81,4,162,4,201,3,204,1,59,254,84,252,22,254,220,255,137,255, +62,255,167,255,219,255,70,0,112,1,65,2,154,0,110,253,222,253,14,2,206,2,72,255,79,254,106,255,122,253,174,251, +50,254,103,1,161,2,243,2,187,1,73,0,2,1,143,0,229,253,108,254,132,0,119,254,197,252,170,255,33,1,194,254, +58,253,238,253,156,0,172,4,75,5,184,0,143,252,127,252,165,254,245,255,37,255,27,254,202,254,182,255,164,255,3,255, +196,253,178,253,60,0,79,1,77,254,233,251,108,253,199,255,80,0,224,255,95,255,238,254,100,255,167,0,176,0,11,0, +25,1,58,1,34,254,117,253,146,1,192,3,253,1,233,0,35,1,86,1,207,1,82,1,181,255,139,254,137,253,212,253, +179,0,128,1,4,254,50,252,19,254,64,255,199,254,215,253,109,252,154,252,11,255,147,0,227,0,79,2,14,4,75,4, +220,2,214,0,90,0,120,0,194,253,43,251,151,253,74,0,48,254,95,252,116,254,6,0,170,254,198,252,66,252,203,252, +108,253,139,255,241,3,9,5,180,255,147,251,91,254,151,3,6,6,205,4,152,2,114,2,158,1,12,254,150,253,24,1, +215,1,85,0,204,255,141,254,225,254,23,2,241,1,239,254,202,254,238,254,150,254,151,1,21,3,30,0,229,0,251,5, +167,6,234,2,135,255,157,252,212,251,160,255,185,3,9,3,133,0,137,1,45,4,3,3,21,255,157,253,245,254,171,255, +59,255,238,255,252,1,179,2,214,0,147,254,101,254,208,0,196,3,37,4,215,2,204,2,56,2,3,0,71,0,43,2, +119,0,191,253,173,254,29,0,72,255,5,255,149,0,38,2,212,2,148,2,220,1,46,2,26,3,149,1,109,254,82,254, +42,0,252,255,145,0,131,2,60,0,88,253,6,1,37,5,191,3,124,1,221,255,135,254,233,0,47,3,158,255,44,251, +129,250,147,251,100,253,183,254,143,254,80,255,90,0,115,255,104,254,93,253,252,251,172,253,214,0,127,0,135,254,124,253, +92,252,243,252,46,0,42,2,209,0,74,254,93,253,219,253,28,253,253,251,222,252,77,253,78,252,105,252,143,252,179,252, +219,254,159,255,199,254,164,1,235,3,152,0,38,255,49,1,157,254,62,250,6,252,15,1,112,3,127,2,106,0,226,255, +145,0,81,0,13,0,209,0,141,1,201,1,168,0,26,254,20,253,40,254,154,254,140,254,75,255,194,255,219,255,83,0, +49,255,204,251,139,250,171,253,195,0,121,1,37,2,203,1,104,255,235,254,254,255,107,255,211,0,131,4,65,3,115,254, +240,252,120,253,150,254,29,2,193,4,6,3,70,255,100,253,91,255,132,1,150,254,152,250,184,251,92,255,60,2,92,3, +152,0,67,253,4,254,81,255,171,254,231,254,238,255,243,0,199,1,52,0,178,254,217,0,219,1,67,255,179,254,63,1, +113,3,70,4,154,2,138,255,224,255,191,3,193,6,226,6,114,4,102,1,117,0,148,1,77,2,136,0,127,253,215,253, +193,1,41,3,148,0,125,254,184,254,118,0,175,2,194,3,78,3,137,1,37,255,243,254,38,0,134,254,175,252,0,255, +134,1,36,1,136,0,144,255,163,253,13,254,219,0,142,2,95,2,28,1,182,255,211,255,176,0,115,255,138,252,164,251, +182,253,122,255,27,255,238,253,232,251,74,249,11,250,203,254,23,2,104,1,14,255,139,252,206,250,228,250,41,252,198,253, +89,255,244,255,231,255,172,0,172,1,140,0,102,253,45,252,10,255,47,2,44,2,193,0,170,255,22,255,47,0,180,1, +160,0,173,254,45,255,168,0,181,0,254,0,187,3,228,5,241,2,189,254,76,0,177,3,12,2,131,255,44,0,179,255, +13,254,134,255,242,0,11,254,188,250,210,251,79,0,21,4,151,3,90,255,35,252,254,252,142,255,21,0,217,254,191,254, +159,255,143,255,94,255,43,255,119,253,26,253,120,0,115,2,52,0,126,254,14,255,98,255,15,255,98,253,202,250,231,251, +139,0,55,2,100,0,40,0,69,2,166,3,150,2,72,0,74,255,109,255,254,254,157,255,253,2,128,6,191,6,111,3, +204,255,76,255,107,0,227,255,46,255,169,0,203,2,22,3,42,1,54,0,129,3,234,6,126,4,12,0,36,0,187,2, +25,3,112,1,124,255,200,253,141,253,212,255,77,2,26,2,160,0,231,255,158,255,61,0,242,255,113,251,115,248,5,253, +132,1,50,0,157,254,146,253,107,251,149,252,173,254,29,252,130,250,191,252,214,252,139,252,195,255,106,1,215,255,4,255, +79,254,74,253,230,254,25,2,27,3,36,1,130,254,75,254,189,0,1,3,11,3,169,0,1,254,187,254,41,2,94,3, +0,1,17,255,31,1,141,4,32,3,169,253,70,251,43,253,140,255,83,1,236,1,240,0,34,0,6,0,106,0,80,1, +105,0,38,254,201,254,43,1,51,1,133,255,250,253,17,254,141,0,204,1,85,0,185,255,30,255,190,252,3,253,24,1, +83,4,107,4,205,1,81,255,158,0,50,3,251,2,206,1,157,1,222,1,155,2,121,2,165,0,91,255,139,255,97,0, +89,1,139,1,183,0,222,254,100,253,60,0,57,4,79,1,19,253,97,0,215,3,238,1,74,1,6,2,2,1,166,1, +14,2,143,254,162,252,146,254,240,255,225,0,80,2,184,1,188,255,131,255,125,1,231,2,148,1,16,0,134,0,155,0, +42,0,236,255,73,254,239,254,255,2,40,1,193,250,238,251,209,0,156,0,202,0,168,2,23,0,233,252,107,253,227,253, +13,254,102,255,200,255,134,255,96,0,174,1,30,2,164,0,173,255,73,2,212,3,118,0,169,253,232,254,20,2,133,5, +128,5,214,0,248,253,238,254,55,255,214,254,20,255,68,254,151,253,255,254,84,0,41,255,167,252,120,252,107,255,228,0, +122,254,0,252,246,252,172,0,124,3,41,2,121,254,113,252,177,252,17,254,125,255,92,0,238,0,19,0,77,254,131,255, +104,2,172,2,232,1,119,0,210,252,7,252,26,255,194,255,197,254,55,254,11,251,85,249,94,253,163,0,89,0,67,0, +125,255,22,254,206,254,80,255,98,253,33,251,64,250,123,251,2,254,148,255,244,255,144,254,87,251,70,251,242,255,18,3, +128,2,216,1,129,1,93,0,94,255,129,255,244,0,181,1,177,255,86,254,131,0,8,1,190,253,23,254,169,3,197,5, +140,2,202,0,193,1,51,2,36,2,241,1,134,1,31,2,7,2,99,255,185,254,104,2,222,3,88,0,223,254,199,1, +235,2,137,1,87,1,22,0,3,254,114,1,162,6,124,4,93,255,11,254,61,253,200,252,46,0,150,3,132,3,62,2, +188,255,255,251,80,251,100,254,114,0,53,0,134,0,103,0,153,253,51,252,154,254,119,255,147,254,102,1,134,4,127,2, +192,255,218,255,136,255,51,254,99,254,51,255,182,254,46,255,82,2,57,3,230,255,17,255,204,1,189,2,63,3,72,3, +101,254,251,250,100,255,196,2,213,255,80,253,74,254,140,0,211,1,216,0,102,0,182,1,104,1,141,0,88,1,193,0, +65,255,225,255,132,0,37,0,43,0,16,255,142,253,46,254,122,254,127,253,111,255,148,3,199,4,121,3,26,3,61,3, +217,2,144,2,149,1,206,255,99,255,211,255,144,255,206,0,15,4,104,5,73,4,243,3,142,3,10,0,202,252,172,254, +10,1,5,255,127,254,229,0,231,254,189,251,191,253,138,254,32,252,246,252,145,254,82,254,244,255,42,0,60,253,63,254, +134,1,109,0,118,254,59,254,39,252,65,250,120,252,172,254,87,252,173,250,14,255,0,3,252,0,65,255,199,255,11,254, +62,254,236,2,240,3,67,0,177,254,2,255,51,255,13,1,60,3,175,2,210,0,178,0,69,1,174,0,69,1,123,2, +39,0,118,254,11,1,21,0,146,251,234,252,218,0,63,1,107,1,252,255,185,251,19,252,173,255,163,254,94,252,129,253, +187,254,79,255,217,0,99,0,45,252,117,249,145,252,28,1,115,2,56,2,14,0,135,252,67,254,117,2,245,255,110,252, +178,254,78,0,26,1,148,5,29,6,225,255,84,253,76,0,85,1,193,255,162,254,249,253,119,253,156,253,161,254,148,0, +200,2,47,3,206,0,83,255,197,1,116,3,49,1,54,0,41,1,229,254,53,253,252,0,108,3,170,1,1,3,15,6, +146,3,97,255,77,255,64,0,161,255,33,255,217,255,174,1,167,2,225,1,28,2,104,2,79,255,33,252,124,252,148,253, +65,253,13,252,118,251,47,253,225,254,7,255,239,0,152,2,166,0,90,0,124,2,117,1,225,255,48,0,162,254,154,253, +117,255,158,255,181,254,32,0,119,1,171,1,153,1,108,0,252,255,254,1,234,3,26,3,125,255,66,253,199,255,172,1, +220,255,56,0,243,1,236,255,99,254,185,255,124,255,242,254,116,0,22,1,54,0,74,254,116,251,173,252,230,2,148,5, +115,1,253,252,190,251,141,251,231,251,118,254,102,1,105,0,211,252,69,252,137,254,23,255,32,254,225,254,114,1,71,3, +237,2,220,1,226,1,128,1,37,255,117,253,220,254,17,1,122,1,14,1,97,1,44,2,156,2,22,2,78,0,114,254, +47,254,205,254,221,254,20,255,81,255,109,254,251,254,145,2,57,4,203,1,141,255,82,254,125,253,177,255,250,1,222,255, +76,255,222,3,215,5,10,3,83,1,43,0,227,252,33,251,99,253,192,0,137,2,165,2,218,1,235,0,59,0,48,255, +22,254,152,255,226,2,136,2,163,255,241,255,206,0,199,254,170,254,254,0,240,0,50,0,220,0,78,0,59,255,226,254, +8,254,68,255,218,2,141,2,187,254,250,253,240,255,200,0,105,0,119,255,7,255,29,0,201,0,121,0,51,1,38,2, +86,2,127,3,145,4,6,3,75,0,73,254,99,253,227,254,195,1,49,2,121,0,67,0,10,1,28,0,53,255,48,0, +25,0,160,254,40,255,105,255,26,253,186,252,101,253,69,251,169,252,198,2,92,3,153,255,60,255,130,254,42,252,89,253, +42,255,107,255,67,1,161,1,207,254,230,253,206,254,218,254,191,255,112,1,157,1,105,255,235,251,176,250,97,252,175,253, +48,254,129,254,94,255,235,2,123,4,235,255,106,253,138,255,255,254,226,254,98,2,4,2,218,254,174,254,108,254,94,254, +45,0,9,255,195,253,174,0,84,0,164,252,28,255,13,4,108,3,9,1,4,1,169,1,109,2,167,3,221,4,173,4, +13,1,250,251,240,249,68,250,77,250,61,251,97,253,92,254,174,254,32,0,21,1,76,0,248,255,82,1,179,2,220,2, +13,2,214,0,130,0,114,2,103,4,152,2,234,255,85,1,91,3,183,2,45,3,86,3,36,0,248,255,205,3,68,3, +195,255,102,255,49,0,159,0,102,0,171,253,37,253,33,2,184,5,203,4,38,3,9,1,86,254,136,253,230,254,136,0, +60,0,48,254,175,253,200,255,146,2,240,3,155,2,21,1,11,1,87,255,246,253,130,0,95,1,240,254,210,254,227,254, +104,253,131,254,100,255,1,254,215,254,231,255,117,255,82,1,145,1,27,253,114,251,33,254,111,255,224,255,196,1,155,2, +143,255,81,251,209,251,51,255,70,255,34,255,180,1,150,1,223,254,47,254,216,254,30,0,213,0,217,254,128,254,95,1, +26,1,199,254,192,255,173,0,128,255,61,0,65,2,29,2,8,1,140,1,244,2,89,3,22,3,226,2,222,1,251,0, +105,1,33,1,90,0,156,1,223,2,249,1,63,1,9,1,250,254,89,252,177,252,171,255,40,1,238,255,113,255,218,0, +2,1,143,254,47,252,106,252,81,254,140,0,107,4,31,8,87,6,229,0,48,254,15,254,205,253,5,254,25,255,26,0, +34,0,184,255,182,0,227,1,11,1,146,255,117,254,183,254,124,1,28,2,175,255,89,1,135,4,205,2,208,1,73,3, +28,1,143,253,141,251,37,250,75,252,80,255,10,254,15,254,14,1,67,0,48,253,83,252,28,253,19,255,209,255,115,254, +95,254,193,253,220,251,82,254,61,2,80,1,198,254,35,253,227,252,51,0,201,1,239,253,39,252,165,254,106,0,22,1, +60,0,107,254,171,0,152,4,146,3,82,0,13,255,62,254,63,254,134,0,161,2,165,2,35,2,5,2,66,1,158,0, +135,1,2,2,42,1,254,1,146,3,242,1,175,255,7,1,110,2,18,0,162,254,193,1,181,3,98,1,104,0,48,1, +131,254,79,251,158,252,228,255,63,2,131,2,112,255,176,252,161,253,48,255,201,255,138,0,182,255,255,252,52,251,217,250, +153,250,221,250,51,253,117,0,41,1,120,255,207,253,29,252,27,252,179,255,92,2,87,1,137,0,200,0,247,255,214,254, +110,254,223,254,61,255,192,253,68,252,22,253,27,254,161,254,113,255,198,254,72,253,66,253,213,253,245,254,201,0,3,1, +20,0,39,0,247,0,48,2,145,2,167,0,35,255,21,0,185,1,209,2,96,2,210,0,32,1,32,2,241,0,3,0, +95,0,199,255,138,255,248,0,247,2,149,5,15,7,142,5,139,4,117,5,225,3,77,255,243,252,151,254,82,0,43,0, +210,0,71,2,229,0,240,253,136,253,209,254,117,255,241,255,216,0,53,1,76,255,236,251,75,251,178,253,233,254,87,254, +137,253,145,252,4,253,228,254,211,254,40,253,231,252,96,254,164,1,18,5,39,4,68,0,124,255,18,1,28,1,36,1, +127,2,157,2,108,1,22,1,196,0,228,254,190,252,197,252,217,255,29,3,139,2,220,255,209,255,227,0,66,255,74,253, +234,253,15,255,204,255,209,1,232,2,176,255,16,252,116,253,146,0,185,0,32,0,19,0,120,255,219,0,91,3,67,2, +25,1,160,3,192,3,188,255,253,252,201,251,137,252,81,1,179,3,181,255,40,253,181,254,174,254,208,253,93,255,42,0, +139,253,156,250,67,251,31,254,63,254,116,252,1,254,172,0,67,255,79,253,235,254,198,0,242,0,49,1,178,0,227,254, +53,254,181,255,227,2,183,6,83,7,185,2,195,254,222,0,234,4,216,4,230,1,207,255,40,255,168,255,14,0,2,254, +199,251,188,253,64,1,213,1,121,1,123,1,122,255,84,253,209,253,206,254,6,0,145,3,142,6,163,5,95,2,241,254, +125,253,32,0,9,4,10,5,4,4,89,2,248,255,94,255,38,1,162,1,228,0,202,1,46,2,152,255,245,252,96,252, +37,252,224,251,109,253,231,0,63,3,31,2,104,255,72,253,25,251,35,250,212,252,218,255,0,255,37,253,32,254,8,0, +30,0,44,255,21,255,139,0,194,2,120,3,141,1,151,255,185,255,44,0,130,0,217,1,159,1,125,255,128,255,139,255, +140,252,162,252,112,1,44,3,9,1,182,255,105,255,161,0,197,2,171,1,253,254,36,255,197,0,104,3,244,6,197,5, +74,255,67,251,252,251,46,253,160,253,49,255,158,1,1,2,192,255,181,254,189,0,206,2,98,2,31,0,141,254,242,254, +176,254,2,253,19,254,166,1,34,2,235,254,223,251,113,251,65,254,77,1,80,0,245,252,57,251,85,251,116,253,206,0, +154,0,223,252,238,251,50,254,213,255,26,1,169,0,57,253,133,253,230,2,228,3,115,0,247,255,176,255,33,253,208,252, +90,253,67,253,224,0,121,4,13,2,243,254,199,254,199,253,121,253,254,255,172,0,130,254,250,253,211,254,20,254,76,253, +42,254,113,254,102,254,176,0,103,2,86,0,253,253,23,253,43,252,51,253,115,255,111,255,31,0,123,2,167,0,179,252, +72,253,143,254,68,252,12,252,5,0,205,1,201,255,244,254,24,0,116,0,111,0,179,0,7,1,37,3,155,5,34,4, +148,0,22,255,217,255,146,2,246,4,88,4,242,3,120,4,69,2,187,0,10,2,203,0,193,254,149,0,237,1,247,0, +4,1,146,1,136,2,97,3,213,0,35,254,135,255,246,0,28,1,94,2,200,1,2,255,36,255,250,1,160,3,72,3, +135,1,72,255,70,254,114,255,56,1,203,0,65,255,80,0,185,2,194,2,240,0,97,255,213,254,0,255,129,254,146,253, +195,253,251,253,95,253,14,254,5,0,81,0,36,255,248,255,237,2,230,3,150,1,216,254,131,253,248,253,126,255,5,0, +146,0,239,2,169,3,248,0,246,254,91,255,114,0,16,1,73,0,27,255,34,255,135,255,165,255,110,254,41,251,70,250, +198,253,147,0,58,1,220,0,195,253,69,251,229,253,166,1,87,2,5,1,253,255,75,1,21,2,164,254,64,252,81,254, +243,254,139,253,202,254,125,0,37,255,187,253,218,255,225,2,202,1,211,254,210,254,14,255,111,254,236,0,13,3,21,1, +190,0,178,3,65,5,193,4,80,2,128,254,149,253,193,255,219,0,115,0,198,0,239,2,183,4,74,2,31,254,39,254, +177,1,135,4,120,4,88,1,107,255,58,2,233,4,229,2,44,0,56,0,152,255,236,252,99,253,178,1,64,3,245,1, +13,3,191,3,238,0,195,255,164,1,103,2,78,2,27,2,199,255,8,254,42,1,239,4,198,2,158,254,74,255,7,1, +140,255,79,255,190,0,199,255,138,255,46,2,83,3,105,2,191,0,160,253,99,252,244,254,96,0,164,254,132,253,58,255, +231,1,235,1,243,254,171,252,127,252,157,252,64,252,96,253,73,1,10,3,71,255,226,253,64,2,105,3,163,0,148,0, +217,0,195,255,186,0,41,1,132,255,121,255,179,0,149,2,118,5,153,4,111,255,69,252,249,251,160,252,213,255,115,3, +71,2,228,253,99,252,0,254,233,253,115,252,101,253,246,254,84,255,33,1,24,2,8,254,96,249,124,249,50,252,219,253, +137,253,46,252,210,251,35,253,200,254,136,255,154,255,207,255,149,255,141,254,187,254,149,0,198,1,224,1,27,2,192,2, +179,3,247,3,239,2,42,2,171,2,126,3,68,3,212,1,114,1,142,2,142,1,208,254,246,254,223,1,53,4,62,4, +108,1,69,254,226,253,245,254,88,0,127,2,26,3,24,1,252,254,36,253,161,250,217,249,14,253,240,0,203,0,226,254, +197,255,255,0,116,255,41,253,92,251,174,251,245,255,121,2,21,255,110,252,226,253,19,255,182,255,210,0,145,255,6,253, +237,253,226,0,159,0,224,254,132,0,204,1,247,254,5,254,69,0,116,0,114,1,90,4,185,2,100,0,122,2,74,1, +85,253,152,255,9,3,97,2,180,3,206,4,121,0,99,254,78,1,116,0,37,252,180,251,20,254,132,255,135,255,47,253, +181,250,95,252,220,254,194,253,70,253,116,255,105,255,27,254,39,0,246,1,21,255,227,251,18,253,9,0,81,1,194,1, +98,2,124,2,76,2,147,1,188,255,83,255,245,0,139,0,53,254,205,253,182,254,36,255,163,255,122,0,129,1,77,1, +182,255,17,0,105,0,225,252,222,251,239,255,137,0,243,254,97,1,221,1,173,254,247,254,166,0,123,0,51,2,186,2, +87,254,197,252,151,1,42,5,112,4,56,3,87,2,154,1,234,2,47,4,169,1,44,255,17,1,0,3,195,1,235,255, +254,253,12,253,122,255,97,1,220,255,157,255,155,1,67,2,92,2,43,2,205,255,14,255,73,3,139,6,18,4,244,0, +232,0,56,0,127,254,82,255,221,0,5,1,16,2,11,2,109,254,96,252,57,254,95,255,136,255,167,0,145,0,120,255, +21,0,209,0,171,255,95,254,144,253,52,252,212,251,244,253,53,0,9,0,253,253,84,252,99,253,243,255,56,0,89,0, +75,4,155,6,146,2,156,254,75,255,251,0,141,1,173,1,224,0,224,254,75,253,32,255,245,3,183,6,248,5,143,4, +64,3,150,2,105,2,236,255,84,253,178,255,63,4,172,5,59,4,212,1,220,254,173,251,232,250,21,254,150,255,209,252, +231,252,166,254,169,250,81,248,164,253,49,0,207,253,173,254,79,255,171,251,236,250,17,255,74,2,11,3,156,2,84,1, +94,0,54,0,163,255,34,254,245,252,94,253,23,255,222,0,56,1,8,0,71,0,250,2,1,3,58,254,48,251,30,253, +91,254,19,253,163,254,64,2,51,1,17,253,38,252,154,253,99,255,220,2,61,5,77,3,93,0,99,255,241,255,18,2, +196,3,225,1,123,254,241,253,181,255,251,255,171,254,215,254,20,0,21,0,134,255,113,254,236,252,181,254,65,3,196,4, +58,3,119,1,205,254,41,253,86,255,254,1,144,1,206,255,57,255,51,255,157,254,76,255,30,1,61,255,28,251,63,252, +62,0,93,255,48,252,31,253,96,1,51,4,10,3,93,0,4,0,232,0,10,0,224,253,18,252,173,250,96,249,35,250, +148,254,251,1,44,0,28,254,215,255,230,1,45,1,81,253,54,250,58,254,94,4,183,2,117,254,139,254,86,253,215,250, +242,253,36,2,173,0,180,253,13,253,208,252,47,253,214,255,248,2,50,3,240,255,41,252,20,251,6,253,39,0,158,2, +101,3,194,2,51,2,25,2,60,1,180,255,181,254,70,254,44,254,56,254,20,254,181,254,234,255,214,255,224,255,112,1, +147,1,0,0,183,255,68,0,197,0,126,1,98,0,116,253,91,252,87,254,113,1,153,2,241,0,111,0,41,3,227,5, +176,6,169,5,106,3,49,2,223,1,105,1,124,2,22,3,0,1,233,0,165,2,181,0,116,254,118,255,115,255,211,254, +174,0,9,2,31,2,233,2,213,1,101,254,108,253,12,0,65,2,44,2,56,2,173,3,12,4,66,2,112,0,143,255, +80,255,126,255,31,255,39,254,69,254,180,255,40,0,177,254,152,254,23,1,246,0,220,253,210,254,177,1,148,254,121,250, +60,253,120,1,180,0,89,254,126,254,217,255,126,0,76,1,217,2,130,2,182,254,54,251,127,252,36,1,24,3,89,0, +185,253,162,253,190,252,127,250,5,250,93,251,133,252,119,253,219,254,135,255,64,254,57,253,6,255,119,1,213,1,26,1, +61,0,49,255,66,254,109,253,124,253,34,255,103,1,166,3,165,4,115,3,213,2,65,3,195,1,248,0,254,2,237,2, +160,0,118,0,172,0,31,255,176,253,48,253,11,254,175,255,228,255,41,255,38,254,160,252,181,253,103,1,76,2,125,255, +192,251,210,248,177,249,56,254,82,1,225,0,111,254,25,252,234,251,7,253,141,254,174,1,150,3,194,1,117,0,244,0, +165,255,235,253,104,254,214,255,167,1,95,2,215,255,55,254,173,0,83,1,87,254,195,254,249,1,73,1,195,255,100,1, +212,0,145,253,187,253,215,255,117,0,233,1,72,3,141,1,136,255,204,255,153,0,45,1,87,2,57,3,36,2,186,0, +37,2,215,3,118,2,233,1,185,3,51,3,187,1,148,3,34,5,186,2,152,255,141,255,26,2,116,3,235,1,100,0, +139,0,245,0,240,0,27,1,114,2,140,3,225,1,81,1,255,4,74,5,71,255,88,252,61,255,48,1,145,255,149,252, +151,251,4,254,147,255,138,253,11,252,140,253,34,255,174,254,41,254,191,255,84,1,210,0,17,0,120,255,232,254,183,0, +237,2,182,2,122,3,231,4,138,2,221,255,138,1,139,4,146,4,69,0,62,251,197,251,98,0,78,3,72,4,67,3, +230,255,198,254,220,0,43,1,56,255,235,253,206,253,239,254,81,0,212,255,167,254,133,255,25,1,138,0,233,254,143,254, +33,255,8,0,251,0,231,0,235,0,93,1,219,254,19,251,97,251,124,253,249,253,202,254,155,254,145,251,203,249,73,251, +41,253,110,253,159,252,224,253,86,1,107,1,127,254,49,255,233,1,189,0,22,254,90,255,184,2,205,2,107,0,223,255, +211,255,105,255,30,2,207,4,62,3,108,2,18,3,184,0,154,255,137,1,111,0,253,254,79,2,137,4,64,2,61,0, +159,255,102,254,10,254,17,0,212,1,144,0,168,254,25,255,249,255,112,255,124,254,21,254,163,255,170,2,73,3,49,1, +8,0,192,0,197,1,89,1,21,0,124,1,142,4,226,4,132,4,7,6,107,5,60,2,98,1,187,2,164,2,136,1, +76,1,84,0,169,253,241,252,14,255,181,255,35,255,195,255,197,254,158,252,122,253,183,254,115,254,125,0,63,2,73,255, +235,252,61,255,94,1,69,0,199,254,169,255,93,2,242,2,49,255,159,251,94,252,190,254,44,1,213,4,199,4,29,254, +218,249,147,252,24,255,54,255,164,255,43,255,86,255,103,1,105,0,23,253,16,253,81,254,207,253,88,253,193,253,241,254, +21,255,13,252,207,250,213,254,57,1,244,254,30,254,243,255,212,255,206,253,90,254,0,1,169,0,145,254,31,255,119,255, +123,254,18,0,85,0,16,252,115,250,202,252,232,253,169,255,32,2,149,0,209,253,37,254,204,254,44,254,32,254,73,254, +223,253,183,254,97,1,93,2,89,0,92,255,176,0,238,1,8,3,44,3,51,1,152,0,34,2,208,1,215,255,107,254, +138,253,87,254,169,0,40,2,52,2,18,1,128,0,194,1,96,1,90,255,156,0,103,2,174,0,63,0,105,2,16,2, +21,255,102,252,176,251,51,254,88,1,244,0,100,253,211,249,107,249,3,253,174,0,58,0,185,252,24,251,229,253,74,1, +156,1,49,1,144,1,45,1,121,0,22,255,16,252,79,251,154,255,81,4,230,3,101,255,27,253,255,254,49,0,226,255, +101,1,169,2,180,1,109,1,5,2,76,1,175,255,88,255,229,1,133,4,135,3,238,1,157,1,130,255,219,253,50,255, +3,0,120,0,232,1,146,1,151,1,84,4,240,4,214,1,205,253,25,250,183,249,220,252,94,254,231,252,152,250,195,249, +197,252,135,255,206,253,156,252,0,253,14,251,73,251,14,255,108,255,70,254,193,255,112,255,241,253,110,255,69,0,236,255, +165,2,204,4,216,2,239,1,137,3,81,3,45,2,232,2,29,3,1,1,135,254,74,253,109,254,109,1,28,2,211,255, +242,255,88,3,214,4,1,3,11,1,188,0,59,1,59,1,114,0,240,254,209,252,156,251,152,252,150,254,171,255,229,254, +250,253,184,255,123,1,245,254,221,251,201,252,43,255,23,1,1,3,238,2,224,0,143,255,39,255,133,255,12,1,99,1, +193,255,127,255,223,0,23,0,2,254,246,254,255,0,183,255,228,253,58,255,157,1,164,2,1,1,26,253,139,252,28,1, +94,4,160,4,255,4,214,4,137,4,134,4,15,1,212,251,26,251,71,254,65,2,239,5,6,6,237,1,202,254,112,255, +119,1,218,1,211,0,11,1,187,2,113,3,19,2,248,255,191,0,252,4,148,6,6,4,148,3,212,4,46,3,167,1, +49,2,234,0,228,254,221,255,162,1,37,1,204,255,64,255,161,254,24,254,188,255,231,1,94,0,48,253,143,253,122,255, +85,254,192,252,50,255,248,1,16,255,176,249,40,249,192,253,175,2,247,3,119,1,245,255,234,0,26,0,129,254,109,255, +47,0,143,0,49,3,96,5,146,5,244,4,164,2,42,1,243,1,12,0,59,253,59,255,27,2,18,2,96,1,120,0, +67,0,225,0,17,255,186,252,102,253,29,255,7,1,204,1,221,254,223,252,136,254,242,254,24,255,151,1,44,2,26,0, +197,253,166,251,253,252,196,0,129,0,89,254,188,254,136,254,159,253,30,255,167,0,231,255,126,254,69,254,107,255,57,255, +89,252,184,250,158,252,103,255,117,0,221,254,241,251,205,250,122,252,60,255,229,0,176,0,160,255,71,254,195,253,242,255, +0,2,77,0,140,253,5,252,37,252,133,0,26,5,19,3,239,255,80,1,56,1,89,254,125,254,222,255,134,254,208,253, +150,0,125,3,123,3,103,2,93,2,84,2,158,1,217,0,86,0,109,1,174,3,99,3,242,0,226,0,41,3,167,3, +58,1,129,255,211,0,58,1,104,254,188,252,219,252,240,251,115,252,138,254,46,254,198,253,10,0,120,1,172,1,33,2, +68,0,192,252,247,251,42,254,161,0,158,1,10,1,26,0,26,255,13,254,112,254,91,0,90,1,11,0,116,254,66,255, +42,1,232,1,238,2,180,3,145,1,27,0,62,2,27,3,190,1,179,1,80,0,233,252,215,253,62,2,7,3,218,0, +179,255,22,255,151,255,159,1,130,0,127,252,119,253,191,2,239,3,161,1,119,0,180,254,255,252,7,255,168,1,57,1, +31,0,157,255,26,255,195,255,113,0,235,254,6,254,17,0,9,1,100,255,114,255,243,0,98,0,35,0,220,1,253,2, +187,4,64,6,213,2,120,255,184,1,61,2,90,254,65,253,39,255,231,0,7,2,160,255,235,251,210,252,82,254,193,252, +204,253,254,0,72,255,97,250,106,249,14,252,147,252,139,251,81,254,119,2,55,2,35,0,171,255,96,255,144,255,167,0, +203,1,226,3,187,4,125,1,69,254,217,254,86,1,108,3,65,3,2,1,183,255,137,255,38,255,97,255,74,0,94,2, +94,5,191,4,250,255,160,252,202,251,214,251,193,253,87,0,7,1,9,0,105,254,69,253,59,253,144,253,54,254,25,255, +135,255,169,255,8,255,243,253,155,254,236,255,102,255,176,254,77,255,55,0,182,0,101,0,74,0,63,1,39,1,225,255, +96,255,228,254,228,254,33,0,11,0,164,255,101,1,228,1,128,255,93,253,188,253,185,1,97,5,86,3,118,0,226,0, +177,255,143,254,189,1,70,3,52,0,69,253,58,252,20,253,47,254,83,253,109,254,162,1,240,255,254,251,129,252,0,254, +26,254,108,255,58,0,193,255,136,0,8,1,93,255,9,254,143,255,129,3,13,7,66,7,212,3,91,255,4,254,4,1, +30,4,70,4,170,2,50,0,29,254,18,254,79,254,165,253,210,254,22,2,112,3,75,1,139,254,121,253,33,253,209,252, +245,252,151,252,129,252,216,254,172,0,55,255,51,254,15,255,15,255,102,255,197,0,183,255,182,253,149,255,194,2,227,1, +221,254,254,253,130,254,194,254,61,255,3,255,81,254,82,0,102,3,38,3,139,1,219,0,179,254,203,252,231,254,213,1, +249,1,174,1,118,2,91,2,74,1,28,1,162,1,144,1,246,0,209,255,96,254,188,254,129,0,252,255,190,253,14,254, +197,0,41,2,17,1,124,255,177,254,153,253,240,252,2,255,215,0,33,255,67,254,222,0,36,2,48,0,253,253,32,253, +6,254,25,0,17,1,42,0,186,254,18,254,25,254,152,253,64,253,184,254,199,0,126,2,121,4,145,4,246,1,196,0, +3,2,252,1,249,255,148,254,61,255,79,1,192,2,119,2,250,1,105,2,190,2,10,3,241,3,28,3,182,255,177,253, +29,254,123,254,45,255,66,255,3,253,238,252,128,255,124,254,236,252,36,255,89,254,95,250,220,250,10,253,206,252,63,253, +65,254,254,254,97,0,37,0,193,255,5,2,44,2,119,255,179,255,219,1,155,2,150,2,162,1,255,0,41,2,226,2, +148,2,15,1,14,253,18,251,234,253,70,0,90,0,153,255,46,253,200,252,70,0,80,1,21,0,23,2,97,3,254,255, +26,253,246,252,152,252,2,253,95,0,65,3,244,1,237,254,193,253,174,254,114,1,22,4,8,3,65,0,190,255,108,255, +218,253,68,254,187,0,243,1,151,1,39,2,21,4,214,3,154,0,102,255,118,1,242,2,133,3,147,3,177,1,225,255, +171,255,29,255,37,255,133,1,107,3,214,1,142,254,254,253,77,0,241,0,128,0,185,2,1,4,101,1,148,255,37,0, +200,0,6,2,106,3,151,3,63,3,71,2,194,1,83,3,173,3,64,1,67,0,129,1,120,2,172,2,11,1,50,254, +44,254,200,0,245,1,204,0,159,254,252,252,109,253,82,254,22,253,33,252,179,254,110,1,253,255,10,253,82,252,30,253, +215,254,80,0,150,254,115,252,98,254,64,0,112,254,39,253,226,253,160,254,186,0,204,3,115,4,143,3,107,4,241,5, +254,3,188,254,80,252,142,255,87,3,127,3,81,1,106,255,130,255,106,0,160,255,205,254,149,255,127,255,7,255,6,0, +84,255,12,253,7,254,11,0,135,254,144,252,156,252,179,252,68,253,92,254,17,254,245,253,220,254,109,254,13,254,210,254, +165,253,3,252,165,252,114,252,123,252,51,0,234,1,196,254,144,253,43,255,181,255,170,0,207,1,213,0,24,0,127,0, +237,255,78,255,236,255,122,1,147,3,14,4,210,1,59,255,9,254,179,254,158,0,88,1,238,0,142,1,48,2,33,1, +61,255,107,254,101,0,213,2,243,0,59,253,121,253,194,255,45,0,5,0,22,0,205,254,81,253,50,254,238,255,93,255, +104,254,235,255,215,0,136,255,202,255,204,0,137,254,48,252,247,253,26,1,58,3,133,5,64,6,40,3,189,255,108,255, +49,0,239,0,190,1,198,255,243,252,166,254,221,0,130,255,87,0,218,2,69,0,135,252,207,252,98,253,90,253,215,254, +236,255,217,255,253,255,13,0,104,255,239,253,247,252,144,253,155,253,90,253,242,254,57,255,146,253,207,254,227,0,204,255, +22,255,99,0,14,1,90,1,244,1,125,2,209,2,231,1,119,0,148,255,42,254,41,254,170,0,197,0,119,254,192,254, +202,255,185,254,242,253,179,253,144,252,227,251,208,252,244,254,61,1,101,2,2,2,215,255,29,253,149,252,246,253,187,255, +28,2,121,3,152,2,58,1,158,255,160,254,41,0,195,1,109,2,219,3,172,2,72,255,64,0,88,2,120,0,112,0, +48,3,8,3,79,2,124,2,216,255,74,254,125,1,64,3,126,1,30,1,200,1,11,1,74,1,121,3,97,4,20,3, +8,2,56,2,20,2,163,0,108,255,64,0,147,1,154,0,121,254,62,254,9,0,24,2,131,2,184,0,129,255,80,0, +112,0,59,0,255,1,65,2,215,254,2,253,57,254,211,253,213,252,79,255,252,1,75,1,211,0,141,1,201,255,237,253, +97,255,137,255,204,252,148,252,161,254,216,254,18,254,214,253,155,254,8,1,80,2,232,0,26,0,198,255,81,254,70,255, +172,2,22,3,242,0,80,0,155,0,129,0,209,0,185,0,196,254,66,252,193,251,183,253,50,0,196,0,198,254,15,253, +146,254,227,0,197,0,171,0,186,1,83,0,37,254,201,255,169,1,21,0,119,255,95,1,8,2,163,1,94,1,6,0, +12,255,19,255,77,254,62,255,156,2,122,2,122,255,60,0,230,2,161,2,14,1,50,0,35,0,162,0,143,255,46,253, +161,252,101,253,254,253,85,255,42,0,245,254,42,254,147,255,248,0,5,0,7,254,115,253,99,253,16,253,208,254,140,1, +135,1,223,255,204,254,200,253,244,252,167,252,168,253,231,0,232,2,86,1,32,0,39,0,24,255,255,254,113,0,121,0, +42,255,56,254,80,255,145,2,99,3,11,1,157,0,178,0,14,255,172,0,247,3,118,2,216,255,43,0,213,255,186,255, +226,2,10,5,125,3,177,1,120,0,8,255,37,0,121,3,179,3,22,1,186,0,192,1,232,0,166,255,12,255,137,254, +121,255,96,1,151,1,5,0,34,254,231,253,70,0,96,1,104,254,179,251,149,252,132,254,75,255,38,255,137,254,156,254, +72,0,65,1,99,254,201,250,201,252,46,2,7,4,61,3,24,3,196,1,203,255,120,0,31,2,194,1,131,0,253,255, +158,255,253,254,245,254,174,255,49,0,70,0,202,255,189,254,190,254,82,255,239,253,8,253,15,0,127,3,22,3,238,255, +84,253,108,253,171,254,205,254,132,255,235,0,147,0,158,0,41,2,105,1,96,255,137,255,31,0,70,0,88,1,171,1, +174,0,55,0,179,255,74,254,150,253,144,254,180,255,71,255,91,254,59,255,247,0,146,0,26,254,108,253,85,0,111,2, +36,1,93,1,57,4,190,3,196,255,223,253,60,255,252,0,133,0,6,255,39,0,224,1,147,0,231,255,185,1,26,2, +154,1,39,2,60,1,39,255,225,254,206,255,134,0,93,1,248,1,94,1,201,0,161,2,68,4,50,1,83,253,234,253, +245,255,9,1,213,1,15,0,150,252,217,251,139,253,223,255,238,1,112,1,75,255,44,254,94,253,210,252,146,253,244,254, +21,1,49,3,84,3,103,2,86,1,71,0,30,1,122,2,174,1,34,1,155,1,143,0,172,255,128,0,97,0,149,254, +44,253,198,253,10,0,253,0,162,255,255,254,1,0,141,0,185,255,226,253,233,251,136,251,111,253,0,255,211,253,50,253, +104,255,164,255,151,253,131,254,195,255,192,254,106,0,136,2,208,255,73,253,35,254,189,254,243,254,26,255,103,254,24,254, +52,253,57,252,159,254,7,1,157,255,213,254,179,0,11,2,155,1,164,255,90,254,106,255,37,0,244,255,7,0,101,254, +201,252,128,254,149,0,167,1,235,2,64,1,6,253,227,251,47,254,39,0,87,0,94,0,69,2,182,3,19,2,174,255, +20,253,150,250,14,253,95,2,143,2,91,255,0,254,167,253,38,254,210,255,84,0,225,255,147,0,171,2,183,4,216,3, +252,255,50,253,246,252,88,254,36,1,166,2,146,0,132,254,238,255,69,2,43,2,235,0,148,1,87,3,57,3,183,1, +69,1,148,1,133,0,155,254,248,254,37,1,250,0,116,255,180,0,126,2,60,1,74,255,48,255,197,255,18,0,204,0, +142,1,184,255,164,251,26,250,36,252,204,254,20,1,81,1,50,255,72,255,63,1,241,0,32,1,10,3,193,2,127,2, +83,4,127,3,231,0,110,1,211,2,136,2,191,2,29,3,6,1,39,254,97,254,89,0,39,0,107,255,228,255,224,254, +13,254,4,0,74,0,109,254,197,254,210,254,182,253,123,255,200,0,207,254,211,254,135,0,207,255,119,255,21,1,96,1, +228,255,140,254,32,255,239,1,147,3,65,2,172,0,147,255,51,254,51,254,71,255,215,254,36,254,193,255,86,1,192,255, +194,253,59,255,184,1,103,1,43,0,198,0,166,1,66,1,126,0,118,255,111,254,109,255,159,1,126,1,173,255,231,254, +37,254,52,253,107,254,40,0,198,255,38,255,28,255,59,254,114,254,45,1,188,2,57,1,110,0,23,2,160,2,63,1, +118,1,162,2,235,1,240,0,165,0,234,255,84,0,148,0,56,253,1,251,60,254,252,0,61,0,4,0,23,0,164,254, +1,254,7,255,253,255,7,0,202,254,171,253,118,255,70,3,221,4,252,2,70,0,141,254,56,254,160,255,137,0,13,255, +16,255,168,1,170,0,247,252,174,253,15,0,79,255,244,255,103,2,221,0,58,254,91,255,192,255,132,253,74,254,190,1, +128,2,161,1,215,1,159,0,136,253,213,252,92,255,90,1,213,0,158,255,3,0,158,1,184,2,196,2,97,1,127,255, +82,0,170,2,118,1,151,254,78,255,56,1,217,0,178,0,202,0,205,253,204,250,53,253,37,2,42,4,208,3,217,1, +161,253,229,251,166,255,157,2,133,1,232,0,67,1,233,255,156,254,148,254,100,254,220,254,207,0,13,2,0,1,60,255, +247,254,147,255,235,254,119,253,115,253,14,255,74,0,40,0,158,0,89,2,210,1,24,255,110,255,90,2,151,2,102,0, +52,255,211,255,89,1,1,2,22,1,204,255,96,254,54,253,201,253,88,255,245,255,165,255,195,255,35,1,6,2,225,0, +34,0,104,0,88,255,50,255,218,1,20,3,123,1,136,255,179,253,226,253,254,0,24,2,113,255,2,254,163,255,11,1, +60,0,162,254,237,253,171,253,177,253,117,254,224,254,107,255,211,0,146,255,56,252,93,253,11,1,109,255,180,250,38,250, +109,253,79,255,74,254,234,253,162,255,31,0,7,255,248,254,170,254,132,253,128,254,214,0,97,1,23,1,119,1,68,1, +44,0,179,255,28,0,67,0,67,0,208,0,234,0,170,255,1,254,33,253,126,253,155,254,55,0,184,2,224,3,152,1, +222,255,110,1,79,2,91,1,84,1,214,1,241,1,167,1,227,255,245,253,76,254,249,255,57,1,151,1,205,1,194,2, +211,2,117,1,98,1,198,1,93,0,63,255,64,255,56,255,86,255,5,254,151,252,144,255,74,2,241,254,110,252,119,255, +94,1,97,255,247,253,124,254,103,254,140,253,138,254,59,0,85,255,140,254,1,0,66,0,159,0,14,3,29,2,82,254, +110,254,177,0,28,2,192,4,0,6,190,2,174,254,83,253,225,254,173,1,214,2,148,2,116,2,27,1,48,255,159,255, +185,1,220,2,15,2,75,0,167,255,214,255,3,255,15,254,211,253,121,253,4,254,200,255,31,0,180,254,102,254,28,0, +8,2,133,2,81,1,191,255,231,255,105,1,64,1,38,255,18,254,218,254,201,0,25,3,215,2,133,255,3,254,17,0, +242,1,128,1,20,0,161,255,157,255,255,253,236,252,98,255,63,2,135,2,202,1,189,0,241,255,99,0,104,0,15,0, +24,1,232,0,34,254,231,252,230,254,223,0,240,255,222,252,70,251,179,252,19,255,103,0,28,0,221,255,19,1,131,0, +235,253,217,254,164,1,38,1,148,0,120,1,196,0,243,0,220,2,197,2,95,2,73,2,4,255,42,252,164,253,234,254, +245,253,131,253,26,254,196,255,86,1,248,255,90,253,44,253,144,254,49,255,134,254,0,253,65,252,182,253,250,255,65,0, +238,254,104,255,131,1,218,1,51,1,234,1,35,2,186,0,181,255,225,255,216,0,169,1,161,0,200,254,235,254,135,0, +94,1,251,0,38,0,169,255,85,255,152,254,94,254,104,255,9,0,41,255,212,254,91,0,40,1,225,255,105,255,226,255, +114,254,189,253,92,0,12,1,124,254,100,255,242,2,43,2,96,255,104,0,139,2,207,1,93,0,65,0,42,0,166,255, +197,255,250,0,187,2,32,3,248,0,65,255,5,1,181,3,7,4,124,2,2,0,131,253,75,253,118,255,157,1,174,2, +164,2,93,1,57,255,180,252,249,250,239,251,0,255,218,0,0,0,119,254,57,254,82,254,213,253,199,254,63,1,55,1, +236,254,128,255,2,2,54,1,5,255,236,255,145,1,78,1,97,1,191,1,156,0,110,0,27,2,198,1,129,255,32,255, +30,0,70,0,124,0,184,1,163,2,47,1,14,254,84,253,185,255,151,1,157,2,122,3,220,1,229,255,18,1,54,1, +118,254,47,254,33,0,137,0,9,1,60,1,124,254,125,252,17,254,87,255,206,254,147,254,126,254,96,254,88,255,79,0, +128,255,191,253,218,252,89,253,187,254,118,255,225,253,203,251,168,252,140,254,196,253,203,252,33,254,1,255,246,254,237,255, +69,0,186,255,241,0,139,2,163,1,74,255,113,253,53,253,67,255,110,1,231,0,41,255,51,255,74,0,37,0,89,255, +34,255,33,255,229,0,9,5,158,5,63,0,6,253,115,255,240,0,194,255,57,0,220,1,212,1,179,0,10,0,3,0, +141,255,119,254,22,255,221,1,162,3,68,3,186,1,9,255,152,253,20,0,201,2,25,2,22,1,31,1,170,255,173,254, +164,0,12,2,91,1,32,1,126,0,203,254,63,255,89,1,0,2,80,2,214,2,78,1,55,255,208,255,167,1,129,1, +147,255,60,254,117,254,209,255,192,1,41,2,205,255,147,254,233,0,35,2,15,0,172,254,14,255,66,255,156,255,30,0, +204,255,115,255,189,255,65,0,121,1,75,3,148,3,167,1,66,0,224,0,71,1,193,0,210,0,158,0,136,255,9,255, +103,254,121,253,78,254,5,255,16,254,238,254,217,0,30,0,152,255,3,1,219,0,177,255,202,255,186,255,92,255,111,255, +56,255,180,255,82,1,28,2,195,1,139,0,166,254,161,254,202,0,145,1,81,0,125,255,6,0,1,1,194,0,168,255, +0,0,124,0,241,254,39,254,110,255,157,255,195,254,192,254,104,254,243,253,183,254,175,254,70,253,142,253,160,255,216,0, +224,0,35,0,178,254,127,254,121,0,194,1,215,0,116,0,200,1,27,2,145,0,150,255,35,0,13,1,48,1,240,255, +147,254,254,254,124,255,40,254,130,253,182,254,134,255,235,255,0,0,41,254,199,252,130,254,34,0,239,255,67,0,130,0, +133,255,246,254,137,254,162,253,157,254,63,1,246,1,104,0,67,255,25,255,149,254,104,254,6,0,89,1,127,0,253,255, +127,0,251,255,22,0,24,1,181,255,176,254,126,1,146,2,187,255,8,255,134,0,22,0,102,255,121,255,64,254,164,253, +105,255,122,0,95,255,39,254,208,253,23,254,244,254,84,0,248,1,189,2,96,1,90,255,79,255,215,0,216,1,192,1, +248,0,47,0,255,255,193,255,90,255,72,0,171,1,10,1,241,255,46,1,57,3,43,3,17,1,49,255,47,255,190,255, +42,255,168,254,231,254,241,254,225,255,200,1,190,1,57,0,244,255,60,0,91,0,208,0,179,255,229,252,7,252,128,253, +56,254,200,253,13,254,46,255,183,255,74,255,253,254,37,255,206,255,214,1,36,4,47,4,184,2,65,2,112,2,127,1, +204,255,114,255,62,0,128,255,41,254,101,255,29,1,130,0,143,255,239,254,43,254,63,255,148,0,127,255,139,255,188,1, +131,1,106,255,169,254,217,254,43,0,228,1,28,1,213,255,246,0,144,1,74,0,151,255,23,255,241,253,27,254,38,0, +194,1,253,0,28,255,18,255,84,0,99,0,217,255,140,255,49,255,153,0,104,3,68,3,92,0,16,255,177,255,121,0, +159,1,92,2,44,1,95,255,67,255,143,0,24,1,13,0,211,254,46,254,113,253,99,253,87,255,83,1,213,0,144,255, +197,255,43,0,22,0,255,0,200,1,96,0,211,254,40,255,77,255,34,254,145,253,56,254,83,255,202,0,187,1,255,0, +179,255,135,255,114,0,176,1,98,2,176,1,71,0,221,255,178,0,145,1,161,1,55,1,53,1,167,1,228,1,239,1, +188,1,191,0,25,0,30,1,2,2,12,1,226,255,8,0,215,0,115,1,3,1,164,255,117,255,45,1,139,2,88,2, +123,1,231,0,117,1,111,2,53,1,150,254,222,254,81,1,233,0,76,254,244,253,88,255,165,255,145,255,45,0,77,0, +92,255,77,254,104,254,73,0,74,2,165,1,240,254,20,254,79,0,50,2,110,1,1,0,243,255,203,0,118,1,223,0, +237,254,29,254,198,255,14,1,236,255,68,254,179,253,243,253,76,255,137,1,106,2,255,0,106,255,16,255,95,255,110,0, +245,1,103,2,26,2,6,2,19,1,233,255,229,0,78,2,64,1,118,255,56,255,117,255,31,255,32,255,38,0,44,1, +5,1,23,0,241,254,241,253,185,254,2,1,49,1,212,254,234,253,146,255,169,0,152,255,152,254,138,255,165,0,104,0, +84,0,57,0,195,254,90,254,92,0,216,1,166,1,160,0,201,254,216,253,28,255,70,0,218,255,206,254,48,254,3,255, +113,0,66,0,176,254,149,252,178,250,187,251,241,254,215,255,247,254,209,254,83,254,123,254,81,0,39,0,232,253,183,253, +211,254,35,255,110,255,228,254,178,253,174,254,199,0,53,1,14,1,226,0,172,255,71,255,224,0,101,1,163,255,229,254, +240,255,82,255,106,253,70,254,107,0,205,255,200,254,36,0,66,1,142,1,172,2,99,2,22,0,247,255,98,2,25,3, +96,1,42,0,98,0,92,0,183,255,28,0,127,1,216,1,217,0,193,255,107,255,22,0,135,0,18,0,176,0,212,1, +24,0,74,253,128,253,69,255,47,0,151,0,17,0,50,255,144,255,82,255,157,253,116,253,95,254,139,253,199,252,234,253, +246,254,247,254,88,254,97,253,220,253,210,255,100,0,214,255,50,0,106,0,148,0,51,2,189,2,156,0,150,255,190,0, +155,0,212,254,20,254,49,255,204,0,17,1,84,0,55,0,206,255,160,254,0,255,22,0,171,255,47,0,213,1,159,0, +196,254,104,0,133,1,66,255,102,254,74,0,209,0,222,255,34,0,188,0,7,0,117,255,211,255,23,255,70,253,141,253, +53,0,71,2,128,2,28,1,221,254,65,254,62,0,33,2,92,2,56,2,227,1,129,0,121,255,123,0,106,1,250,255, +249,254,121,0,23,1,225,255,181,255,125,255,40,254,210,254,95,0,19,255,137,253,146,254,136,255,37,255,21,255,240,255, +187,0,210,255,74,254,66,255,130,0,143,254,113,253,17,0,11,2,112,1,35,0,129,254,70,254,164,0,194,1,250,255, +219,254,82,255,128,255,154,255,74,0,198,0,50,0,153,254,138,253,132,254,88,0,213,0,249,255,62,255,126,255,96,0, +230,0,128,0,209,255,1,0,79,1,188,2,25,3,97,2,201,1,103,1,181,255,17,254,178,255,26,2,38,1,209,255, +163,0,62,0,95,255,52,1,2,2,233,255,189,255,80,1,43,1,47,1,166,1,196,255,92,254,129,0,62,2,246,0, +144,255,79,255,188,254,31,254,130,254,46,255,165,255,144,0,247,0,200,255,134,255,107,1,234,1,85,0,55,0,29,1, +100,0,126,255,225,255,36,0,248,255,240,255,140,255,59,255,22,0,32,1,141,0,240,254,130,254,228,255,148,1,45,2, +202,1,111,1,84,1,208,0,157,0,66,1,109,0,114,254,212,255,56,3,133,2,66,255,118,254,192,254,53,254,66,254, +191,254,86,255,57,0,35,255,160,252,60,253,206,255,160,255,73,254,181,254,254,254,91,254,121,254,247,254,122,255,193,0, +129,1,245,0,250,0,107,1,157,0,58,0,203,1,160,2,3,1,183,255,203,0,29,2,54,1,62,255,134,254,209,254, +53,255,37,0,22,1,198,0,209,255,80,255,105,255,18,0,139,0,26,0,95,255,210,254,151,254,77,255,42,0,176,255, +131,254,249,253,129,254,154,255,105,255,225,253,195,253,193,254,77,254,217,253,20,255,253,255,14,0,132,0,122,0,76,255, +71,254,39,254,197,254,230,255,66,1,37,2,120,1,84,0,13,1,246,1,174,0,0,0,206,1,50,3,243,2,50,2, +123,1,224,1,207,2,18,2,228,0,251,0,177,0,228,255,207,255,210,255,129,0,210,1,190,0,105,254,48,255,134,1, +109,1,106,255,223,253,74,254,39,0,201,0,226,255,173,255,43,0,94,0,63,0,37,255,152,253,220,253,199,255,195,0, +20,0,239,255,139,1,14,2,218,255,116,254,16,255,198,254,104,254,206,255,150,0,8,0,192,255,210,254,139,253,32,254, +64,255,6,255,193,254,102,255,77,0,163,0,252,255,137,255,76,0,232,0,182,0,233,0,90,1,189,0,84,255,42,255, +239,0,215,1,131,0,123,0,168,2,217,2,232,0,87,0,82,0,179,255,10,1,102,3,218,2,24,1,128,1,246,1, +222,0,188,0,93,1,95,0,101,255,145,0,53,2,170,2,244,1,98,0,105,255,201,255,165,255,120,254,38,254,155,254, +107,254,101,254,88,255,97,255,171,253,19,253,247,254,81,0,167,255,37,255,79,255,77,255,252,255,230,0,107,0,236,255, +159,0,112,0,47,255,70,255,19,0,143,255,42,255,121,0,122,1,134,0,75,255,108,255,51,0,29,0,166,254,139,253, +237,254,70,1,198,1,58,1,253,0,28,0,24,255,132,255,157,0,100,1,195,1,227,0,40,255,124,254,249,254,163,255, +68,0,107,0,31,0,19,0,180,255,121,254,172,253,96,254,33,0,46,1,10,0,142,254,69,255,16,0,212,254,145,254, +127,0,57,1,6,0,104,255,255,255,239,0,5,1,105,255,111,254,56,0,83,1,245,254,45,253,29,255,129,1,183,1, +18,1,84,0,180,255,147,0,42,2,198,1,224,255,30,255,175,255,209,255,7,255,230,254,75,0,212,0,79,255,231,254, +78,0,90,0,155,255,11,0,163,255,55,254,149,254,194,255,190,255,1,0,3,1,228,0,117,255,175,254,179,255,196,0, +10,0,55,255,38,0,136,1,169,1,249,255,251,253,227,254,78,1,14,1,42,0,85,1,120,1,144,0,164,1,92,2, +37,1,246,0,62,1,37,0,1,0,56,1,45,1,127,0,253,0,98,1,109,0,98,255,48,255,69,255,47,0,28,2, +2,2,159,255,130,255,27,1,9,0,184,254,251,255,95,0,250,255,228,1,195,2,18,0,46,254,203,254,97,255,163,255, +170,255,172,254,241,253,72,254,23,254,88,253,28,254,57,0,244,0,141,255,170,254,161,255,93,0,228,255,210,255,99,0, +77,0,196,255,194,255,27,0,66,0,89,0,147,0,166,0,195,0,140,1,19,2,229,0,114,255,209,255,254,0,159,1, +60,2,144,2,201,1,181,0,51,0,120,0,130,1,196,1,114,0,35,0,97,1,220,0,18,255,127,255,189,0,32,0, +87,255,143,255,119,255,63,255,149,255,211,255,170,255,49,255,23,255,49,0,182,0,28,255,47,254,73,255,150,255,255,254, +229,255,23,1,133,0,116,255,199,255,253,0,29,1,222,255,48,255,129,255,154,255,176,255,138,255,222,253,86,252,95,253, +77,255,180,255,53,255,237,254,211,254,10,255,223,255,197,0,25,1,75,1,152,1,20,1,205,255,34,255,138,255,151,0, +132,1,89,1,107,0,131,255,124,254,39,254,13,255,89,255,194,254,6,255,111,255,232,254,178,254,53,255,213,255,133,0, +183,0,29,0,21,255,0,254,134,254,184,0,0,1,108,255,221,255,200,0,24,255,199,253,254,254,108,0,83,1,200,1, +160,0,6,255,226,254,132,255,115,0,197,1,237,1,145,0,201,255,57,0,155,0,65,0,39,255,239,253,24,254,158,255, +137,0,116,0,123,0,21,0,19,255,160,255,126,1,201,1,41,1,144,1,34,1,112,255,71,255,233,255,52,255,39,255, +108,0,108,0,213,255,210,0,171,1,195,0,206,255,211,255,150,255,182,254,95,254,170,254,85,254,113,253,49,253,219,253, +48,255,71,0,226,255,49,255,240,255,200,0,189,0,221,0,192,0,162,255,149,254,179,254,20,0,253,0,76,255,60,253, +26,254,204,255,170,255,10,255,58,255,70,0,171,1,198,1,101,0,29,255,162,254,106,255,36,1,222,1,73,1,114,0, +86,255,179,254,80,255,35,0,179,0,240,0,43,0,86,255,170,255,157,0,156,1,153,1,243,255,20,255,111,0,249,1, +110,2,6,2,66,1,84,1,178,1,12,1,191,0,219,0,73,255,179,253,142,254,197,255,155,255,88,255,69,255,28,255, +163,255,25,0,244,254,167,253,99,254,213,255,244,255,150,255,157,255,63,255,170,254,13,255,73,0,170,0,83,255,108,254, +168,255,172,0,27,0,236,255,205,255,159,254,106,254,28,255,65,254,44,253,217,253,169,254,126,254,130,254,153,255,26,1, +47,1,162,255,190,254,75,255,223,255,45,0,203,0,91,1,55,1,228,0,146,1,95,2,82,1,243,255,242,0,93,2, +109,1,252,255,70,0,213,0,100,0,107,0,112,1,196,1,61,1,3,1,125,0,150,255,222,255,116,0,139,255,201,254, +117,255,172,255,241,254,212,254,53,255,87,255,194,255,8,0,33,255,11,254,146,253,184,252,21,252,199,252,94,253,170,253, +6,255,143,255,111,254,193,254,3,0,47,255,40,254,228,254,104,255,113,255,59,0,150,0,176,255,30,255,42,0,227,1, +49,2,225,0,46,0,253,0,112,1,141,0,196,255,111,255,92,254,32,254,120,0,0,2,160,0,182,255,246,255,175,255, +144,0,115,2,171,2,8,2,125,1,132,0,60,0,219,255,161,254,196,255,42,2,89,1,237,255,203,0,144,0,231,254, +231,254,207,255,32,0,137,0,197,0,244,255,54,255,73,0,117,1,17,0,199,254,82,0,108,1,204,0,208,0,35,0, +87,254,215,254,227,0,143,1,164,1,170,1,22,1,186,0,134,0,8,0,214,255,189,255,118,255,117,255,148,255,197,255, +15,0,11,0,16,0,81,0,127,0,227,0,171,0,53,255,252,254,196,0,65,1,243,255,1,0,203,1,160,2,165,1, +205,0,39,1,66,1,127,0,36,0,141,0,206,0,81,0,189,255,100,0,146,1,51,1,19,0,32,0,117,0,226,255, +11,255,169,254,250,254,148,255,178,255,185,255,32,0,32,0,145,255,94,255,194,255,64,0,124,0,16,0,239,254,129,254, +183,255,139,0,210,255,244,255,82,1,78,1,43,0,162,255,162,255,71,0,193,0,131,255,50,254,142,254,26,255,19,255, +231,254,78,254,211,253,224,253,203,253,174,253,2,254,34,255,172,0,129,0,208,254,161,254,119,255,67,255,28,255,58,255, +211,254,38,255,12,0,90,0,223,0,51,1,107,0,12,0,67,0,133,255,187,254,49,255,210,255,121,255,204,254,232,254, +102,255,75,255,1,255,21,255,145,255,173,0,78,1,137,0,7,0,144,0,180,0,49,0,154,255,41,255,34,255,69,255, +183,255,129,0,60,0,108,255,234,255,63,0,158,255,75,0,157,1,77,1,111,0,140,0,71,1,79,1,236,255,64,255, +181,0,146,1,168,0,16,0,63,0,167,0,42,1,3,1,45,0,111,255,62,255,197,255,215,255,93,255,161,0,89,2, +139,1,70,0,30,0,83,255,9,255,125,0,166,1,229,1,94,1,232,255,214,255,103,1,47,1,188,255,43,0,72,1, +32,1,14,1,141,1,234,0,200,255,72,0,252,0,36,0,7,0,19,1,225,0,188,0,121,1,54,0,78,254,20,255, +57,0,246,255,14,0,10,0,177,255,195,0,155,1,38,0,245,254,1,0,60,1,12,1,41,0,83,255,255,254,185,255, +157,0,94,0,72,0,104,1,92,1,91,255,120,254,121,255,20,0,15,0,57,0,178,255,229,254,200,255,22,1,87,0, +135,255,154,0,14,1,70,0,131,0,246,0,166,0,217,0,202,0,243,255,46,0,208,0,65,0,127,255,42,255,162,255, +71,1,207,1,76,0,148,255,132,0,64,1,233,0,227,255,35,255,192,254,109,254,104,255,2,1,203,0,42,0,113,0, +180,255,8,255,6,0,50,0,97,255,140,255,128,255,224,254,28,255,156,255,204,255,216,255,100,255,95,255,83,0,202,0, +137,0,187,0,169,1,136,2,39,2,12,1,190,0,124,0,193,255,195,255,246,255,243,255,205,0,40,1,221,255,216,254, +163,254,123,254,13,255,54,0,1,1,54,1,191,0,134,0,101,1,219,1,198,0,105,255,50,255,57,0,13,1,190,0, +86,0,13,0,152,255,74,0,121,1,165,0,223,254,127,254,46,255,231,255,213,255,213,254,62,254,30,254,181,253,44,254, +118,255,149,255,227,254,210,254,6,255,159,255,81,1,141,2,144,1,234,255,185,255,19,0,201,255,138,255,120,255,49,255, +36,255,83,255,205,255,172,0,158,0,230,255,77,0,151,0,19,0,18,1,46,2,145,0,207,254,27,255,158,255,189,255, +222,255,121,255,237,254,107,254,188,253,230,253,254,254,167,255,172,255,112,255,28,255,82,255,7,0,106,0,144,0,180,0, +57,0,109,255,212,255,2,1,252,0,150,0,92,1,52,1,111,255,64,255,126,0,105,0,250,255,54,0,162,255,8,255, +160,255,152,255,164,254,29,255,160,0,184,0,219,255,231,255,104,0,111,0,67,0,152,255,162,254,204,254,194,255,109,0, +216,0,23,0,113,254,207,254,166,0,201,0,200,255,63,255,55,255,61,0,105,1,29,1,107,0,44,0,18,0,210,0, +171,1,30,1,52,0,247,255,133,0,38,2,32,3,8,2,237,0,51,1,158,1,45,1,3,0,115,255,89,0,55,1, +26,1,232,0,225,0,212,0,122,0,155,255,123,255,119,0,189,0,248,255,240,254,1,254,88,254,71,255,154,254,206,253, +198,254,192,255,159,255,231,254,58,254,25,255,161,0,54,0,103,255,4,0,247,255,13,255,44,255,213,255,76,0,141,0, +6,0,106,255,147,255,173,255,159,255,193,255,105,255,16,255,150,255,253,255,210,255,59,0,11,1,168,0,54,255,232,254, +67,0,221,0,253,255,219,255,143,0,83,0,254,255,60,0,98,255,121,254,191,255,242,0,74,0,67,0,228,0,247,255, +24,255,22,0,114,1,11,2,147,1,72,0,81,0,166,1,89,1,238,255,189,255,239,255,155,255,129,255,134,255,140,255, +189,255,151,255,94,255,174,255,211,255,120,255,111,255,249,255,116,0,84,0,206,255,120,255,101,255,137,255,223,255,40,0, +153,0,249,0,32,0,217,254,247,254,143,255,106,255,138,255,25,0,37,0,217,255,174,255,232,255,170,0,251,0,254,255, +215,254,245,254,213,255,233,255,16,255,222,254,223,255,156,0,30,0,85,255,119,255,1,0,181,255,28,255,102,255,5,0, +133,0,35,1,214,0,121,255,28,255,73,0,162,1,135,2,140,2,108,1,57,0,26,0,181,0,152,0,124,255,105,255, +203,0,243,0,177,255,116,255,222,255,203,255,77,0,238,0,55,0,156,255,79,0,194,0,186,0,95,1,139,1,67,0, +102,255,125,255,39,255,114,255,252,0,224,0,50,255,108,255,150,0,18,0,119,255,160,255,63,255,119,255,153,0,6,0, +34,254,193,253,149,254,51,255,1,0,220,0,133,0,51,255,113,254,148,254,186,254,226,254,70,255,242,254,238,253,169,253, +23,254,56,254,95,254,242,254,209,255,223,0,36,1,27,0,132,255,104,0,60,1,254,0,108,0,45,0,107,0,22,1, +133,1,20,1,114,0,220,0,176,1,53,1,12,0,215,255,231,255,134,255,176,255,6,0,158,255,149,255,90,0,165,0, +96,0,27,0,208,255,244,255,102,0,87,0,98,0,6,1,17,1,62,0,146,255,75,255,39,255,34,255,59,255,103,255, +81,255,241,254,242,254,71,255,104,255,193,255,114,0,183,0,150,0,75,0,108,255,164,254,28,255,5,0,37,0,106,0, +71,1,250,0,196,255,30,0,28,1,151,0,129,0,140,1,212,0,165,255,250,0,167,1,116,255,110,254,247,255,241,0, +181,0,76,0,213,255,208,255,54,0,31,0,170,255,79,255,52,255,145,255,226,255,213,255,20,0,60,0,209,255,230,255, +69,0,121,255,94,254,161,254,226,255,254,0,53,1,183,0,181,0,32,1,197,0,20,0,30,0,166,0,90,1,209,1, +38,1,201,255,39,255,108,255,197,255,199,255,178,255,185,255,165,255,230,255,222,0,56,1,116,0,61,0,111,0,193,255, +168,255,218,0,232,0,135,255,56,255,66,0,151,0,84,255,3,254,114,254,131,255,27,255,109,254,71,255,30,0,93,255, +77,254,135,254,217,255,199,0,100,0,208,255,67,0,216,0,172,0,61,0,248,255,55,0,249,0,188,0,91,255,119,255, +38,1,50,1,169,255,89,255,31,0,103,0,51,0,196,255,129,255,237,255,26,0,125,255,55,255,139,255,217,255,6,0, +222,255,181,255,49,0,107,0,220,255,182,255,7,0,26,0,103,0,217,0,192,0,78,0,133,255,160,254,183,254,109,255, +121,255,66,255,82,255,35,255,14,255,180,255,53,0,217,255,169,255,42,0,13,0,55,255,162,255,42,1,59,1,194,255, +20,255,124,255,106,255,198,254,234,254,234,255,88,0,67,0,217,0,14,1,224,255,83,255,28,0,58,0,206,255,224,255, +71,255,79,254,255,254,67,0,18,0,114,255,174,255,48,0,69,0,180,255,228,254,213,254,115,255,243,255,116,0,222,0, +153,0,13,0,233,255,112,0,159,1,255,1,97,0,201,254,242,254,149,255,11,0,145,0,83,0,202,255,21,0,40,0, +216,255,105,0,203,0,18,0,200,255,12,0,218,255,187,255,113,255,86,254,16,254,87,255,42,0,244,255,6,0,140,0, +222,0,166,0,0,0,232,255,231,0,158,1,1,1,228,255,47,255,72,255,51,0,182,0,50,0,42,0,196,0,93,0, +153,255,199,255,156,255,207,254,11,255,197,255,133,255,1,255,230,254,28,255,35,0,50,1,174,0,165,255,255,255,234,0, +239,0,52,0,102,255,82,255,36,0,85,0,110,255,27,255,74,255,198,254,172,254,102,255,93,255,58,255,67,0,247,0, +182,0,123,0,247,255,82,255,92,255,141,255,245,255,137,0,209,255,18,255,68,0,239,0,5,0,59,0,212,0,24,0, +37,0,24,1,211,0,149,0,58,1,247,0,33,0,24,0,115,0,247,0,104,1,229,0,35,0,64,0,163,0,160,0, +100,0,83,0,190,0,238,0,6,0,254,254,245,254,146,255,43,0,13,0,35,255,218,254,77,255,217,254,99,254,156,255, +140,0,132,255,178,254,119,255,56,0,249,255,126,255,176,255,142,0,12,1,158,0,57,0,154,0,31,1,22,1,186,0, +163,0,207,0,237,0,7,1,242,0,132,0,94,0,139,0,82,0,77,0,255,0,13,1,16,0,78,255,15,255,236,254, +239,254,70,255,74,0,62,1,106,0,133,254,212,253,101,254,85,255,37,0,255,255,158,255,67,0,142,0,195,255,175,255, +38,0,219,255,229,255,193,0,32,1,211,0,5,0,218,254,198,254,228,255,56,0,194,255,239,255,72,0,255,255,146,255, +83,255,20,255,38,255,184,255,197,255,130,254,183,253,25,255,159,0,141,0,176,0,91,1,226,0,67,0,93,0,218,255, +160,255,193,0,254,0,30,0,77,0,86,0,33,255,36,255,142,0,225,0,89,0,98,0,176,0,228,0,239,0,132,0, +254,255,31,0,189,0,172,0,152,255,32,255,251,255,67,0,64,255,149,254,207,254,71,255,161,255,81,255,202,254,95,255, +97,0,104,0,208,255,244,254,50,254,209,254,35,0,30,0,141,255,5,0,158,0,150,0,194,0,24,1,191,0,15,0, +6,0,171,0,31,1,219,0,250,255,247,254,170,254,62,255,209,255,35,0,86,0,165,255,150,254,242,254,37,0,128,0, +91,0,28,0,185,255,19,0,155,0,11,0,204,255,167,0,156,0,201,255,251,255,104,0,35,0,8,0,224,255,25,255, +216,254,199,255,166,0,97,0,218,255,93,0,214,0,222,255,36,255,220,255,50,0,244,255,151,0,12,1,95,0,255,255, +98,0,220,0,248,0,239,255,178,254,83,255,141,0,111,0,67,0,108,0,174,255,47,255,239,255,138,0,170,0,161,0, +199,255,255,254,146,255,27,0,112,255,211,254,29,255,182,255,226,255,88,255,200,254,35,255,2,0,119,0,152,0,197,0, +182,0,59,0,208,255,184,255,173,255,199,255,67,0,143,0,88,0,68,0,122,0,189,0,3,1,156,0,100,255,234,254, +148,255,26,0,88,0,127,0,232,255,35,255,36,255,64,255,35,255,89,255,130,255,76,255,40,255,10,255,234,254,47,255, +212,255,155,0,21,1,219,0,168,0,3,1,242,0,126,0,170,0,230,0,174,0,200,0,3,1,240,0,36,1,61,1, +157,0,26,0,253,255,192,255,214,255,67,0,52,0,16,0,114,0,176,0,89,0,224,255,222,255,102,0,167,0,72,0, +53,0,124,0,86,0,45,0,71,0,252,255,173,255,199,255,113,255,238,254,80,255,191,255,76,255,9,255,166,255,73,0, +109,0,43,0,137,255,34,255,181,255,133,0,110,0,53,0,221,0,95,1,23,1,24,1,82,1,237,0,161,0,167,0, +9,0,113,255,213,255,26,0,187,255,189,255,35,0,55,0,232,255,93,255,10,255,60,255,130,255,193,255,243,255,121,255, +228,254,84,255,213,255,148,255,173,255,43,0,11,0,233,255,100,0,194,0,169,0,64,0,188,255,178,255,223,255,157,255, +204,255,200,0,6,1,101,0,122,0,32,1,27,1,133,0,239,255,145,255,191,255,38,0,242,255,140,255,215,255,32,0, +141,255,41,255,227,255,158,0,104,0,217,255,119,255,62,255,55,255,18,255,195,254,7,255,208,255,59,0,96,0,144,0, +67,0,154,255,143,255,30,0,131,0,137,0,59,0,168,255,110,255,5,0,160,0,129,0,124,0,255,0,228,0,60,0, +88,0,139,0,243,255,224,255,93,0,205,255,49,255,17,0,237,0,200,0,184,0,176,0,10,0,82,255,1,255,81,255, +55,0,131,0,247,255,244,255,30,0,52,255,99,254,205,254,81,255,113,255,208,255,17,0,204,255,142,255,194,255,106,0, +6,1,191,0,253,255,3,0,149,0,190,0,201,0,241,0,125,0,173,255,211,255,210,0,17,1,87,0,33,0,208,0, +19,1,112,0,214,255,203,255,40,0,166,0,154,0,192,255,243,254,169,254,145,254,237,254,149,255,94,255,155,254,210,254, +143,255,157,255,143,255,191,255,157,255,195,255,118,0,93,0,153,255,149,255,184,255,80,255,136,255,56,0,28,0,242,255, +42,0,118,255,140,254,73,255,110,0,41,0,174,255,46,0,172,0,114,0,246,255,148,255,171,255,136,0,97,1,65,1, +163,0,83,0,18,0,237,255,128,0,1,1,115,0,230,255,25,0,254,255,152,255,220,255,32,0,217,255,227,255,31,0, +233,255,212,255,231,255,121,255,95,255,33,0,75,0,119,255,25,255,116,255,168,255,196,255,34,0,124,0,147,0,106,0, +34,0,251,255,253,255,14,0,78,0,140,0,119,0,127,0,205,0,179,0,79,0,96,0,167,0,219,0,40,1,2,1, +112,0,165,0,29,1,82,0,73,255,90,255,100,255,214,254,230,254,127,255,106,255,191,254,112,254,214,254,124,255,150,255, +48,255,96,255,82,0,182,0,6,0,122,255,207,255,42,0,7,0,2,0,37,0,13,0,55,0,187,0,169,0,14,0, +212,255,209,255,156,255,162,255,230,255,239,255,193,255,112,255,38,255,116,255,49,0,104,0,238,255,86,255,252,254,22,255, +127,255,173,255,162,255,177,255,202,255,2,0,99,0,74,0,170,255,142,255,31,0,104,0,35,0,202,255,179,255,25,0, +199,0,237,0,91,0,237,255,55,0,226,0,79,1,17,1,72,0,196,255,222,255,249,255,217,255,250,255,21,0,156,255, +79,255,250,255,213,0,218,0,49,0,185,255,241,255,76,0,18,0,190,255,253,255,81,0,68,0,45,0,47,0,38,0, +0,0,173,255,114,255,156,255,207,255,216,255,31,0,93,0,182,255,158,254,168,254,212,255,42,0,77,255,73,255,57,0, +253,255,212,254,124,254,168,254,231,254,169,255,22,0,181,255,203,255,103,0,116,0,75,0,106,0,100,0,62,0,77,0, +149,0,215,0,121,0,168,255,174,255,125,0,188,0,113,0,108,0,165,0,233,0,32,1,15,1,233,0,226,0,197,0, +170,0,150,0,81,0,71,0,187,0,236,0,131,0,10,0,194,255,204,255,77,0,185,0,158,0,64,0,187,255,38,255, +24,255,173,255,55,0,32,0,85,255,184,254,57,255,242,255,147,255,7,255,91,255,133,255,27,255,63,255,196,255,162,255, +113,255,224,255,54,0,54,0,112,0,113,0,197,255,119,255,236,255,247,255,121,255,129,255,204,255,169,255,167,255,4,0, +48,0,71,0,98,0,18,0,184,255,189,255,121,255,253,254,87,255,29,0,16,0,170,255,16,0,201,0,193,0,24,0, +182,255,22,0,214,0,252,0,93,0,25,0,115,0,59,0,160,255,228,255,110,0,67,0,42,0,121,0,132,0,112,0, +114,0,45,0,246,255,30,0,83,0,137,0,142,0,10,0,165,255,199,255,191,255,136,255,165,255,197,255,183,255,200,255, +195,255,134,255,123,255,202,255,55,0,127,0,146,0,162,0,151,0,34,0,164,255,202,255,93,0,172,0,121,0,28,0, +247,255,213,255,145,255,184,255,70,0,96,0,36,0,77,0,150,0,141,0,138,0,141,0,37,0,163,255,174,255,20,0, +46,0,236,255,188,255,204,255,234,255,211,255,133,255,64,255,20,255,245,254,71,255,2,0,44,0,167,255,136,255,189,255, +118,255,69,255,176,255,210,255,133,255,177,255,49,0,74,0,1,0,173,255,186,255,87,0,200,0,149,0,91,0,95,0, +74,0,45,0,41,0,78,0,180,0,199,0,90,0,106,0,199,0,113,0,51,0,157,0,131,0,43,0,138,0,134,0, +185,255,153,255,22,0,68,0,109,0,113,0,236,255,159,255,198,255,187,255,146,255,143,255,134,255,143,255,154,255,118,255, +136,255,236,255,26,0,235,255,168,255,129,255,146,255,196,255,223,255,213,255,196,255,232,255,56,0,67,0,255,255,228,255, +251,255,7,0,9,0,250,255,237,255,11,0,33,0,255,255,216,255,190,255,151,255,133,255,187,255,10,0,238,255,150,255, +220,255,115,0,99,0,44,0,85,0,5,0,124,255,215,255,60,0,212,255,216,255,123,0,88,0,152,255,91,255,135,255, +172,255,220,255,0,0,251,255,243,255,243,255,215,255,150,255,105,255,144,255,233,255,42,0,84,0,90,0,10,0,161,255, +142,255,195,255,10,0,85,0,100,0,27,0,237,255,21,0,26,0,185,255,122,255,213,255,94,0,100,0,18,0,14,0, +67,0,57,0,12,0,245,255,226,255,249,255,74,0,106,0,39,0,225,255,222,255,230,255,204,255,205,255,12,0,36,0, +214,255,127,255,120,255,188,255,14,0,28,0,1,0,226,255,150,255,137,255,51,0,153,0,58,0,60,0,160,0,93,0, +14,0,68,0,35,0,219,255,67,0,172,0,129,0,96,0,100,0,45,0,240,255,19,0,135,0,194,0,103,0,239,255, +204,255,190,255,192,255,244,255,218,255,82,255,33,255,113,255,152,255,119,255,135,255,167,255,125,255,136,255,20,0,67,0, +216,255,208,255,38,0,1,0,192,255,237,255,254,255,214,255,26,0,116,0,33,0,167,255,235,255,95,0,51,0,250,255, +44,0,25,0,214,255,57,0,178,0,112,0,37,0,74,0,85,0,63,0,59,0,9,0,200,255,214,255,16,0,58,0, +69,0,22,0,216,255,203,255,198,255,157,255,136,255,190,255,21,0,49,0,0,0,232,255,20,0,39,0,251,255,231,255, +4,0,12,0,255,255,18,0,36,0,236,255,130,255,92,255,172,255,19,0,53,0,20,0,196,255,120,255,136,255,208,255, +230,255,226,255,243,255,248,255,250,255,12,0,29,0,79,0,124,0,78,0,18,0,17,0,1,0,1,0,43,0,253,255, +161,255,167,255,203,255,241,255,73,0,82,0,255,255,239,255,232,255,182,255,245,255,101,0,59,0,218,255,244,255,72,0, +74,0,1,0,236,255,22,0,15,0,254,255,29,0,5,0,235,255,87,0,151,0,49,0,246,255,28,0,23,0,11,0, +37,0,27,0,233,255,208,255,244,255,53,0,58,0,15,0,242,255,193,255,163,255,238,255,16,0,180,255,151,255,211,255, +211,255,190,255,204,255,199,255,232,255,60,0,56,0,247,255,247,255,3,0,217,255,189,255,207,255,242,255,12,0,14,0, +33,0,78,0,66,0,6,0,16,0,75,0,101,0,95,0,59,0,21,0,39,0,35,0,224,255,220,255,252,255,228,255, +254,255,43,0,188,255,91,255,193,255,22,0,242,255,238,255,252,255,242,255,18,0,41,0,28,0,54,0,66,0,34,0, +61,0,103,0,82,0,82,0,99,0,51,0,13,0,35,0,33,0,14,0,46,0,70,0,21,0,229,255,242,255,244,255, +204,255,198,255,230,255,234,255,220,255,213,255,216,255,7,0,48,0,1,0,197,255,224,255,40,0,72,0,27,0,234,255, +34,0,77,0,224,255,156,255,255,255,48,0,222,255,185,255,232,255,23,0,17,0,186,255,103,255,131,255,203,255,228,255, +230,255,234,255,233,255,245,255,25,0,51,0,28,0,250,255,30,0,104,0,104,0,40,0,13,0,33,0,23,0,207,255, +156,255,199,255,15,0,19,0,236,255,226,255,228,255,186,255,140,255,190,255,31,0,33,0,232,255,226,255,211,255,172,255, +207,255,15,0,23,0,38,0,61,0,25,0,0,0,38,0,62,0,65,0,88,0,86,0,46,0,28,0,34,0,41,0, +52,0,46,0,30,0,56,0,92,0,84,0,70,0,62,0,21,0,253,255,9,0,253,255,253,255,26,0,250,255,222,255, +39,0,73,0,26,0,49,0,102,0,82,0,72,0,62,0,252,255,250,255,42,0,246,255,174,255,203,255,229,255,195,255, +175,255,201,255,242,255,17,0,38,0,46,0,7,0,200,255,179,255,191,255,219,255,14,0,4,0,172,255,150,255,220,255, +27,0,58,0,37,0,205,255,149,255,204,255,40,0,62,0,13,0,246,255,16,0,245,255,181,255,199,255,16,0,51,0, +48,0,16,0,227,255,222,255,253,255,36,0,73,0,51,0,235,255,226,255,33,0,57,0,10,0,233,255,27,0,83,0, +37,0,231,255,5,0,14,0,200,255,189,255,242,255,249,255,234,255,246,255,253,255,2,0,14,0,0,0,240,255,8,0, +26,0,3,0,253,255,32,0,52,0,18,0,223,255,209,255,245,255,32,0,35,0,5,0,227,255,199,255,204,255,234,255, +231,255,198,255,206,255,14,0,77,0,74,0,249,255,156,255,138,255,208,255,39,0,48,0,243,255,200,255,177,255,150,255, +193,255,28,0,39,0,242,255,215,255,217,255,236,255,241,255,219,255,248,255,41,0,4,0,236,255,37,0,24,0,215,255, +239,255,6,0,227,255,233,255,247,255,229,255,12,0,62,0,6,0,183,255,197,255,247,255,245,255,241,255,51,0,96,0, +29,0,218,255,236,255,11,0,49,0,86,0,54,0,40,0,103,0,92,0,4,0,0,0,28,0,253,255,232,255,240,255, +4,0,45,0,35,0,213,255,198,255,2,0,17,0,242,255,215,255,193,255,204,255,247,255,245,255,185,255,147,255,178,255, +255,255,55,0,37,0,248,255,1,0,29,0,3,0,218,255,213,255,220,255,224,255,237,255,242,255,216,255,174,255,174,255, +228,255,251,255,204,255,176,255,187,255,203,255,252,255,22,0,210,255,171,255,228,255,0,0,253,255,27,0,21,0,244,255, +4,0,12,0,1,0,33,0,35,0,241,255,239,255,10,0,19,0,46,0,55,0,6,0,243,255,252,255,210,255,164,255, +180,255,201,255,208,255,254,255,58,0,56,0,11,0,232,255,205,255,207,255,26,0,88,0,36,0,211,255,219,255,9,0, +21,0,32,0,70,0,85,0,44,0,5,0,14,0,22,0,255,255,245,255,3,0,12,0,10,0,11,0,28,0,36,0, +244,255,190,255,208,255,252,255,12,0,26,0,45,0,47,0,40,0,22,0,250,255,221,255,203,255,235,255,37,0,34,0, +253,255,5,0,30,0,49,0,48,0,241,255,194,255,252,255,42,0,255,255,225,255,224,255,225,255,12,0,43,0,252,255, +218,255,255,255,37,0,27,0,3,0,31,0,87,0,53,0,220,255,222,255,20,0,9,0,228,255,214,255,217,255,253,255, +30,0,251,255,209,255,225,255,246,255,246,255,250,255,239,255,217,255,224,255,240,255,235,255,240,255,253,255,235,255,199,255, +196,255,237,255,34,0,40,0,254,255,237,255,0,0,7,0,22,0,39,0,8,0,247,255,29,0,25,0,0,0,59,0, +114,0,73,0,33,0,39,0,36,0,14,0,248,255,251,255,38,0,61,0,38,0,16,0,247,255,212,255,213,255,249,255, +21,0,31,0,12,0,245,255,251,255,250,255,225,255,217,255,227,255,241,255,2,0,253,255,228,255,214,255,216,255,252,255, +63,0,67,0,11,0,16,0,63,0,41,0,244,255,250,255,35,0,39,0,12,0,2,0,7,0,248,255,242,255,19,0, +34,0,255,255,229,255,236,255,232,255,212,255,201,255,205,255,212,255,226,255,235,255,213,255,191,255,207,255,225,255,231,255, +10,0,49,0,38,0,13,0,15,0,24,0,32,0,37,0,29,0,8,0,246,255,246,255,1,0,249,255,235,255,250,255, +10,0,20,0,49,0,59,0,32,0,16,0,7,0,245,255,3,0,37,0,36,0,16,0,4,0,4,0,27,0,43,0, +17,0,248,255,254,255,1,0,243,255,238,255,239,255,224,255,207,255,223,255,255,255,3,0,253,255,250,255,231,255,232,255, +18,0,29,0,254,255,244,255,255,255,5,0,11,0,254,255,224,255,219,255,238,255,2,0,15,0,11,0,253,255,255,255, +5,0,1,0,0,0,252,255,247,255,9,0,34,0,28,0,1,0,252,255,8,0,2,0,247,255,7,0,15,0,245,255, +234,255,252,255,254,255,244,255,253,255,11,0,9,0,249,255,231,255,226,255,235,255,252,255,7,0,253,255,252,255,21,0, +23,0,243,255,236,255,16,0,39,0,38,0,37,0,28,0,4,0,0,0,31,0,42,0,14,0,10,0,36,0,33,0, +13,0,10,0,2,0,1,0,16,0,254,255,223,255,235,255,8,0,23,0,16,0,237,255,221,255,254,255,14,0,253,255, +254,255,255,255,243,255,253,255,15,0,8,0,250,255,242,255,244,255,252,255,254,255,1,0,10,0,11,0,23,0,38,0, +19,0,0,0,12,0,6,0,243,255,0,0,13,0,251,255,234,255,229,255,230,255,244,255,6,0,19,0,22,0,7,0, +253,255,12,0,22,0,13,0,10,0,10,0,3,0,5,0,11,0,254,255,243,255,250,255,242,255,221,255,235,255,15,0, +18,0,0,0,0,0,11,0,19,0,21,0,1,0,241,255,7,0,37,0,41,0,31,0,19,0,3,0,246,255,249,255, +8,0,4,0,229,255,222,255,238,255,231,255,229,255,250,255,248,255,234,255,248,255,3,0,252,255,1,0,3,0,253,255, +10,0,17,0,245,255,218,255,216,255,226,255,243,255,3,0,3,0,249,255,1,0,24,0,20,0,243,255,231,255,246,255, +252,255,255,255,7,0,2,0,250,255,252,255,246,255,246,255,10,0,11,0,243,255,242,255,13,0,27,0,16,0,6,0, +253,255,233,255,235,255,15,0,20,0,239,255,229,255,2,0,13,0,2,0,2,0,15,0,23,0,15,0,252,255,244,255, +247,255,250,255,253,255,3,0,14,0,17,0,5,0,2,0,9,0,6,0,5,0,13,0,5,0,248,255,251,255,251,255, +251,255,255,255,244,255,244,255,10,0,1,0,230,255,241,255,2,0,246,255,242,255,247,255,242,255,241,255,254,255,7,0, +2,0,240,255,241,255,11,0,25,0,11,0,1,0,252,255,251,255,6,0,13,0,6,0,1,0,253,255,250,255,4,0, +11,0,2,0,4,0,18,0,18,0,5,0,250,255,247,255,252,255,6,0,3,0,250,255,1,0,12,0,8,0,0,0, +247,255,236,255,241,255,1,0,1,0,4,0,26,0,28,0,1,0,242,255,246,255,250,255,2,0,11,0,12,0,7,0, +3,0,3,0,2,0,252,255,247,255,244,255,247,255,6,0,9,0,249,255,239,255,239,255,239,255,254,255,9,0,250,255, +244,255,2,0,253,255,245,255,254,255,0,0,255,255,5,0,250,255,242,255,7,0,14,0,0,0,9,0,26,0,11,0, +241,255,236,255,247,255,255,255,252,255,247,255,248,255,249,255,245,255,241,255,241,255,248,255,253,255,250,255,251,255,6,0, +6,0,254,255,255,255,3,0,1,0,2,0,9,0,7,0,246,255,234,255,241,255,252,255,253,255,250,255,250,255,251,255, +254,255,0,0,6,0,13,0,12,0,10,0,13,0,13,0,11,0,6,0,2,0,7,0,17,0,13,0,3,0,254,255, +251,255,250,255,254,255,4,0,8,0,7,0,1,0,3,0,10,0,6,0,254,255,251,255,249,255,251,255,249,255,233,255, +226,255,244,255,255,255,245,255,243,255,253,255,4,0,3,0,2,0,3,0,2,0,250,255,244,255,249,255,254,255,248,255, +241,255,244,255,254,255,5,0,11,0,14,0,8,0,254,255,255,255,5,0,5,0,2,0,255,255,255,255,254,255,247,255, +241,255,244,255,253,255,2,0,255,255,249,255,251,255,1,0,254,255,252,255,2,0,6,0,5,0,6,0,8,0,9,0, +8,0,4,0,5,0,6,0,4,0,1,0,1,0,3,0,8,0,1,0,241,255,239,255,252,255,254,255,249,255,252,255, +0,0,4,0,8,0,6,0,0,0,250,255,248,255,1,0,9,0,8,0,3,0,250,255,241,255,246,255,3,0,5,0, +4,0,5,0,2,0,3,0,5,0,1,0,254,255,254,255,253,255,254,255,2,0,5,0,2,0,252,255,252,255,6,0, +10,0,6,0,10,0,11,0,254,255,251,255,10,0,16,0,8,0,5,0,7,0,7,0,3,0,255,255,1,0,1,0, +252,255,247,255,246,255,246,255,248,255,250,255,250,255,251,255,1,0,5,0,2,0,2,0,8,0,10,0,4,0,252,255, +250,255,254,255,0,0,255,255,255,255,1,0,2,0,1,0,0,0,255,255,9,0,22,0,17,0,4,0,2,0,2,0, +2,0,3,0,254,255,244,255,249,255,2,0,254,255,244,255,243,255,253,255,1,0,251,255,252,255,2,0,252,255,246,255, +254,255,5,0,3,0,0,0,253,255,254,255,7,0,11,0,3,0,251,255,253,255,4,0,8,0,4,0,3,0,5,0, +4,0,5,0,7,0,0,0,251,255,253,255,251,255,252,255,2,0,252,255,245,255,252,255,254,255,248,255,250,255,2,0, +1,0,247,255,239,255,245,255,4,0,7,0,255,255,254,255,2,0,2,0,0,0,1,0,2,0,1,0,1,0,1,0, +252,255,252,255,5,0,8,0,2,0,2,0,6,0,1,0,254,255,2,0,5,0,5,0,3,0,0,0,255,255,3,0, +5,0,1,0,252,255,251,255,253,255,255,255,253,255,251,255,252,255,253,255,251,255,253,255,3,0,5,0,6,0,7,0, +1,0,247,255,248,255,251,255,255,255,7,0,8,0,251,255,247,255,253,255,2,0,1,0,252,255,247,255,255,255,5,0, +252,255,254,255,10,0,7,0,1,0,12,0,14,0,2,0,255,255,4,0,255,255,250,255,254,255,3,0,2,0,253,255, +249,255,248,255,254,255,3,0,253,255,249,255,253,255,255,255,254,255,255,255,1,0,0,0,251,255,254,255,10,0,14,0, +1,0,252,255,5,0,1,0,248,255,250,255,251,255,251,255,2,0,5,0,255,255,252,255,254,255,254,255,254,255,0,0, +253,255,245,255,245,255,1,0,5,0,0,0,4,0,5,0,254,255,2,0,6,0,250,255,247,255,4,0,6,0,255,255, +255,255,255,255,3,0,7,0,0,0,255,255,6,0,2,0,254,255,4,0,1,0,251,255,3,0,8,0,3,0,0,0, +252,255,249,255,0,0,6,0,4,0,5,0,5,0,255,255,255,255,2,0,254,255,251,255,253,255,254,255,1,0,4,0, +253,255,249,255,3,0,3,0,249,255,251,255,6,0,6,0,4,0,2,0,250,255,247,255,253,255,3,0,8,0,8,0, +0,0,250,255,253,255,3,0,5,0,2,0,1,0,4,0,5,0,4,0,4,0,3,0,4,0,5,0,252,255,245,255, +255,255,1,0,247,255,249,255,1,0,250,255,249,255,3,0,4,0,0,0,0,0,254,255,254,255,0,0,255,255,0,0, +3,0,4,0,3,0,0,0,255,255,4,0,4,0,253,255,253,255,3,0,6,0,8,0,7,0,255,255,250,255,255,255, +4,0,1,0,251,255,252,255,2,0,5,0,3,0,254,255,252,255,1,0,2,0,252,255,254,255,8,0,5,0,253,255, +254,255,255,255,252,255,0,0,3,0,255,255,250,255,249,255,0,0,8,0,5,0,251,255,252,255,2,0,3,0,0,0, +255,255,253,255,250,255,251,255,3,0,11,0,5,0,249,255,246,255,253,255,2,0,1,0,252,255,250,255,254,255,3,0, +3,0,4,0,8,0,8,0,0,0,250,255,248,255,250,255,254,255,2,0,0,0,0,0,3,0,2,0,255,255,254,255, +255,255,1,0,255,255,252,255,3,0,9,0,3,0,255,255,3,0,2,0,255,255,3,0,4,0,4,0,6,0,3,0, +0,0,1,0,2,0,0,0,253,255,247,255,247,255,253,255,255,255,251,255,255,255,6,0,7,0,1,0,254,255,3,0, +2,0,252,255,254,255,0,0,254,255,255,255,1,0,252,255,251,255,2,0,7,0,4,0,0,0,254,255,0,0,0,0, +254,255,254,255,0,0,0,0,255,255,254,255,253,255,254,255,0,0,0,0,0,0,0,0,1,0,3,0,0,0,253,255, +253,255,254,255,0,0,2,0,253,255,250,255,254,255,0,0,0,0,3,0,1,0,250,255,248,255,251,255,255,255,0,0, +254,255,0,0,2,0,251,255,248,255,2,0,3,0,251,255,255,255,3,0,254,255,253,255,1,0,1,0,2,0,6,0, +2,0,254,255,255,255,255,255,252,255,255,255,4,0,0,0,253,255,0,0,255,255,252,255,253,255,1,0,1,0,255,255, +255,255,2,0,1,0,0,0,2,0,1,0,251,255,253,255,2,0,254,255,250,255,255,255,3,0,255,255,254,255,3,0, +4,0,254,255,252,255,2,0,6,0,1,0,255,255,3,0,4,0,4,0,2,0,1,0,3,0,1,0,254,255,3,0, +7,0,1,0,0,0,3,0,2,0,3,0,3,0,254,255,254,255,5,0,4,0,2,0,3,0,1,0,1,0,5,0, +1,0,253,255,0,0,1,0,0,0,2,0,3,0,4,0,2,0,254,255,0,0,5,0,2,0,252,255,255,255,4,0, +3,0,255,255,0,0,3,0,0,0,251,255,253,255,2,0,255,255,254,255,1,0,2,0,0,0,1,0,1,0,255,255, +255,255,1,0,2,0,254,255,252,255,0,0,1,0,255,255,255,255,1,0,254,255,251,255,253,255,254,255,253,255,1,0, +4,0,2,0,1,0,2,0,254,255,254,255,2,0,255,255,253,255,2,0,1,0,251,255,252,255,2,0,1,0,255,255, +1,0,0,0,253,255,250,255,252,255,2,0,3,0,1,0,1,0,255,255,252,255,255,255,3,0,0,0,253,255,254,255, +254,255,255,255,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,254,255,255,255, +1,0,0,0,254,255,255,255,2,0,4,0,1,0,253,255,254,255,1,0,1,0,0,0,1,0,0,0,255,255,1,0, +2,0,0,0,1,0,3,0,3,0,0,0,254,255,255,255,255,255,252,255,251,255,254,255,254,255,255,255,0,0,0,0, +2,0,3,0,2,0,2,0,2,0,0,0,1,0,1,0,255,255,1,0,4,0,1,0,255,255,255,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/sand2.pcm b/src/client/sound/data/sand2.pcm new file mode 100755 index 0000000..3ea7bf1 --- /dev/null +++ b/src/client/sound/data/sand2.pcm @@ -0,0 +1,864 @@ +unsigned char PCM_sand2[27580] = { +1,0,0,0,2,0,0,0,68,172,0,0,214,53,0,0,237,255,9,0,46,0,246,255,210,255,32,0,7,0,0,0, +52,0,243,255,239,255,7,0,212,255,253,255,58,0,105,0,129,0,20,0,246,255,25,0,242,255,57,0,94,0,244,255, +241,255,57,0,95,0,14,0,117,255,172,255,237,255,163,255,254,255,75,0,230,255,194,255,175,255,168,255,17,0,80,0, +43,0,183,255,12,255,213,254,36,255,101,255,132,255,121,255,46,255,123,255,145,0,195,0,193,255,243,254,145,254,144,254, +150,254,5,254,234,253,117,254,153,254,140,254,157,254,159,255,77,1,80,1,174,0,194,0,19,0,30,0,155,1,207,1, +214,0,48,0,153,0,77,1,184,255,62,254,206,255,184,0,0,0,57,0,48,1,157,2,37,3,254,1,146,1,72,1, +136,0,246,0,31,0,31,254,82,254,36,254,172,253,82,1,70,5,130,4,226,1,171,255,209,252,47,251,210,253,47,1, +219,255,0,254,187,255,130,255,154,252,92,252,7,254,238,255,254,0,61,254,30,251,21,252,64,254,97,255,93,255,136,254, +13,255,202,255,152,255,235,0,233,1,100,0,117,255,210,255,251,255,252,255,206,255,70,0,21,1,35,1,168,2,200,5, +117,6,142,3,23,0,177,254,17,254,108,253,124,0,168,4,205,2,123,255,90,0,187,1,255,3,235,6,229,4,113,1, +142,0,167,253,44,250,86,250,155,251,162,251,94,251,20,253,195,0,56,3,38,3,179,0,152,253,147,252,232,253,65,2, +89,5,53,1,125,254,217,2,11,4,202,0,71,255,255,253,169,253,177,0,90,3,35,3,83,1,114,254,91,253,20,1, +202,4,163,4,85,3,61,1,123,0,58,3,234,4,29,5,211,3,32,255,69,253,253,253,165,251,194,250,112,251,68,250, +159,251,158,255,51,0,88,252,182,250,47,253,60,254,80,1,196,6,255,4,144,0,151,255,66,253,55,251,3,252,159,254, +173,1,96,1,47,255,54,253,122,253,214,2,167,2,184,250,29,251,97,1,152,1,48,0,124,0,216,253,145,250,3,254, +18,3,226,1,186,2,156,6,255,2,139,252,193,251,6,0,101,4,214,2,209,255,190,255,149,254,188,254,209,0,48,1, +98,1,210,0,69,0,104,1,137,2,100,5,193,6,114,3,51,2,2,3,17,2,240,1,218,2,175,2,14,0,173,253, +108,255,167,2,131,4,1,2,236,252,9,254,96,255,208,251,108,253,96,255,236,252,134,0,162,5,177,3,29,255,185,250, +58,249,159,252,235,254,243,251,247,249,42,253,63,254,253,252,164,254,125,254,26,0,96,6,170,5,9,3,236,6,255,6, +248,3,229,4,190,5,16,6,135,6,44,3,148,253,158,253,243,2,2,3,156,254,222,253,54,254,52,254,74,255,219,0, +110,4,37,5,58,0,235,252,247,252,109,255,240,2,167,2,163,0,159,254,76,250,222,247,7,250,119,253,127,255,82,255, +58,254,40,253,65,252,186,251,141,252,216,0,185,3,139,0,193,254,115,0,246,254,80,252,115,253,177,0,5,2,114,0, +150,254,83,254,22,1,242,4,208,2,20,253,10,253,197,0,142,2,54,2,138,255,178,252,32,254,162,1,110,1,66,254, +110,252,73,252,71,252,74,252,12,253,146,254,243,254,146,254,65,0,173,1,216,255,88,254,251,254,205,254,87,254,23,255, +115,254,4,253,232,254,25,1,175,254,70,252,80,254,226,0,201,1,91,2,106,1,83,255,125,254,77,254,84,254,228,254, +42,254,32,253,171,254,8,0,92,254,0,254,18,2,247,4,149,1,12,253,115,253,128,254,201,251,30,250,97,252,213,254, +211,255,44,0,43,0,45,1,141,3,83,4,172,0,176,251,94,252,247,0,161,0,147,253,160,255,96,2,20,0,199,253, +108,255,128,1,86,0,8,254,75,255,39,1,217,254,187,254,118,3,39,3,165,253,17,253,108,1,221,4,116,5,151,2, +250,253,170,251,94,254,9,3,122,1,63,252,176,254,247,2,13,255,77,253,131,2,68,3,16,0,212,255,55,0,63,0, +184,255,26,254,112,0,159,3,27,0,249,252,144,254,123,253,81,252,47,0,112,3,116,4,88,5,241,3,184,1,235,0, +111,0,180,1,95,3,50,2,188,1,50,2,141,255,105,254,221,0,114,0,253,254,174,0,36,0,90,253,138,254,186,0, +26,0,224,255,83,255,14,253,3,254,92,1,141,0,114,253,161,252,84,253,151,255,121,1,186,254,244,251,35,253,188,251, +44,249,192,253,232,2,63,0,173,252,12,254,235,0,95,1,186,253,175,249,7,250,79,251,177,251,79,255,240,2,200,1, +225,255,67,255,80,254,157,254,138,255,1,0,10,2,186,2,131,255,243,253,46,255,103,254,227,252,126,253,115,255,163,1, +162,0,54,252,82,251,231,253,226,253,63,253,123,253,254,251,236,252,241,255,66,253,68,250,166,254,255,1,61,0,41,0, +61,1,248,0,57,1,16,1,132,1,115,3,162,1,232,253,87,254,77,255,13,0,46,4,250,5,13,3,76,0,152,252, +252,250,171,0,187,3,52,0,94,2,212,8,228,8,210,5,111,3,228,255,35,255,79,2,233,3,129,3,151,3,52,3, +174,0,87,253,192,254,201,5,102,8,135,2,248,253,224,254,121,255,233,254,63,255,91,254,215,252,42,254,117,0,230,0, +134,1,216,2,170,2,37,2,183,2,222,2,110,2,63,2,17,2,61,2,70,3,212,4,71,4,204,254,225,250,61,0, +211,5,226,2,219,255,138,255,57,252,68,252,148,2,91,3,39,253,247,250,151,255,251,4,73,5,145,1,248,255,239,255, +253,253,253,252,238,253,165,254,21,255,60,254,94,254,213,1,80,1,160,252,206,253,145,0,176,254,46,0,65,3,96,0, +238,254,42,0,141,252,146,251,76,2,193,4,203,255,246,252,248,253,8,254,58,253,248,254,149,1,188,255,52,252,122,253, +104,0,210,0,189,1,178,2,120,0,72,254,88,255,16,1,184,1,175,2,24,3,213,0,10,255,146,1,122,4,78,3, +78,0,254,253,16,254,60,1,217,1,4,254,238,253,240,1,242,0,222,251,208,250,158,253,65,254,225,251,146,251,228,253, +235,253,93,253,222,255,46,0,46,253,213,253,89,0,236,254,14,253,235,254,214,2,162,5,219,4,59,2,50,1,42,1, +91,2,16,5,199,4,15,2,171,2,6,4,44,2,18,1,116,2,55,4,206,5,244,4,111,1,95,255,70,254,78,252, +96,252,121,253,161,252,55,253,152,255,98,255,53,255,233,2,27,6,183,4,22,1,215,254,125,254,242,253,40,253,249,252, +163,250,128,247,177,250,106,1,171,1,147,252,4,250,4,252,35,0,88,2,182,0,77,254,68,253,151,253,21,0,156,2, +244,1,159,255,189,254,170,0,14,3,17,1,201,252,210,252,98,0,68,3,39,3,248,254,64,252,36,255,226,0,3,255, +2,254,167,252,200,251,252,253,246,253,233,251,207,252,229,252,167,253,206,3,99,6,51,3,31,4,46,6,34,5,121,6, +113,6,33,1,19,254,123,254,39,255,216,0,130,255,228,250,176,250,17,254,74,0,169,1,107,0,226,253,28,255,212,0, +205,255,36,0,8,2,18,3,112,3,174,0,235,250,112,249,238,254,19,4,146,2,185,254,209,255,46,3,56,3,81,2, +135,1,204,253,52,251,227,254,93,3,215,1,135,253,234,252,26,255,100,255,147,254,115,255,229,0,122,1,8,1,90,0, +233,0,97,0,247,253,161,254,179,255,2,252,69,251,102,254,171,250,231,246,217,253,179,3,38,1,43,0,183,1,76,0, +29,255,218,0,193,2,97,2,95,0,121,255,87,254,62,251,89,251,14,254,180,252,170,252,36,2,29,3,221,254,69,254, +100,254,146,252,253,253,192,255,153,254,66,255,28,0,86,254,60,255,40,1,5,254,210,250,144,251,249,251,157,252,138,255, +16,1,249,255,49,254,246,252,151,254,176,1,1,2,44,1,99,1,30,1,154,1,105,3,192,4,152,6,114,6,5,1, +85,253,71,255,2,0,26,255,27,0,254,255,85,255,38,1,5,2,2,1,217,0,243,0,232,1,167,3,244,1,119,253, +254,250,6,251,124,252,185,254,94,0,215,0,190,255,208,254,36,0,96,255,17,251,225,250,202,254,155,255,13,255,176,255, +73,255,98,0,45,3,38,2,117,255,144,255,35,0,197,1,101,5,210,4,124,0,77,0,160,1,109,254,46,252,91,254, +35,255,114,254,169,255,185,254,169,251,193,253,231,2,128,3,157,0,236,253,167,252,179,254,109,1,214,255,80,253,110,255, +179,2,175,1,35,255,181,255,110,0,65,254,123,253,218,253,50,250,115,248,44,254,22,1,2,253,131,252,113,0,193,0, +154,254,229,253,249,253,45,255,44,1,19,1,31,255,243,254,125,1,187,2,251,255,31,253,233,253,23,0,73,1,213,1, +73,1,165,255,158,254,61,255,130,1,177,3,224,2,102,0,162,0,18,2,69,0,98,253,28,253,0,254,158,255,51,2, +235,1,251,254,39,254,92,254,154,254,167,2,185,7,239,7,249,4,40,2,17,1,218,1,151,0,32,254,192,255,8,1, +4,254,99,253,46,255,191,253,168,252,186,254,86,0,169,0,231,0,173,2,84,5,91,2,24,251,251,249,48,254,186,1, +148,6,149,9,63,5,106,0,255,0,80,2,247,0,202,253,91,250,214,248,61,249,120,250,108,252,49,253,167,251,234,250, +248,252,89,255,34,0,3,1,240,1,255,255,174,253,208,254,234,254,85,253,48,1,55,6,9,4,232,0,157,1,154,0, +211,254,228,255,244,255,110,254,38,255,129,0,80,255,109,253,253,253,60,255,227,253,109,253,15,1,163,2,208,255,109,255, +101,1,5,0,1,254,64,0,165,3,94,2,155,252,12,249,177,251,154,255,105,255,252,253,118,0,95,4,46,3,58,255, +74,0,255,3,56,4,48,4,208,5,177,4,211,2,23,4,232,3,25,0,244,254,1,2,211,2,125,0,196,0,36,2, +43,255,73,253,181,1,113,4,198,1,52,0,102,255,213,252,197,253,7,2,43,2,254,253,166,250,220,249,22,251,25,253, +3,254,222,252,206,250,18,250,65,250,88,249,169,249,52,254,103,3,119,4,122,2,37,1,4,1,170,255,90,253,139,253, +167,255,35,0,135,255,245,254,118,253,132,252,174,252,186,251,166,251,191,253,180,252,82,249,165,250,194,252,209,249,200,249, +167,255,124,0,94,252,133,253,65,0,36,254,129,254,245,3,41,6,201,4,153,4,109,3,128,1,111,3,60,6,75,5, +122,4,89,6,50,7,175,6,9,7,113,6,105,4,126,4,129,6,203,5,19,2,46,1,18,4,112,2,248,250,242,248, +179,253,15,255,224,254,14,2,228,0,79,252,76,255,63,4,96,1,147,253,236,253,135,253,109,252,53,253,162,254,108,255, +162,253,169,249,36,249,158,252,205,253,135,251,158,249,77,249,148,250,93,253,31,255,149,254,206,254,88,0,129,255,38,254, +116,1,113,5,173,3,33,0,1,1,234,3,243,2,38,254,0,252,242,254,66,1,184,0,9,1,173,1,59,0,46,255, +81,1,89,4,44,3,38,255,245,255,96,3,123,0,167,250,101,248,115,248,220,251,125,0,109,255,61,254,47,2,135,2, +34,255,169,255,29,1,176,1,50,3,157,1,247,254,48,0,65,1,231,1,7,4,97,2,118,255,51,1,74,1,128,253, +45,253,73,0,16,2,129,0,188,252,56,252,7,255,221,255,29,1,70,3,246,0,50,255,92,2,152,2,86,255,174,254, +3,255,176,255,150,1,179,1,50,2,34,4,242,0,28,251,240,250,48,253,128,253,220,254,167,0,199,255,54,254,165,254, +13,255,74,252,255,249,215,253,188,2,243,1,242,255,128,255,211,253,188,254,37,3,11,3,249,255,226,1,233,4,150,3, +48,2,224,2,186,1,234,254,204,255,226,4,105,6,176,1,66,255,90,1,121,0,15,254,134,255,158,0,69,0,6,3, +86,4,156,0,210,254,133,0,27,1,236,1,230,2,12,0,103,252,192,252,94,254,245,253,196,252,198,252,103,254,70,0, +134,0,24,255,198,253,252,254,167,2,249,3,250,255,166,251,128,252,55,0,199,1,161,0,199,254,2,254,124,255,77,1, +244,0,5,1,120,3,237,3,251,0,206,255,38,2,46,4,160,2,154,254,55,253,130,255,148,0,255,0,11,4,142,4, +232,255,150,253,167,255,179,255,101,252,146,250,19,253,49,1,119,2,189,1,178,2,145,4,210,4,199,3,223,2,155,2, +30,2,49,1,208,0,79,0,57,0,176,2,0,4,174,0,44,254,20,255,242,254,17,254,235,254,201,255,16,0,176,0, +142,1,106,1,136,253,154,248,32,250,186,255,217,1,40,2,35,3,29,2,237,255,244,254,226,254,199,255,219,0,220,0, +51,0,121,254,144,252,198,253,137,1,56,4,73,4,117,2,138,1,201,2,232,3,82,4,57,3,202,254,90,252,180,255, +163,0,37,252,155,250,12,253,59,253,225,250,231,249,188,252,177,0,183,255,193,252,90,0,39,6,17,5,244,1,238,2, +68,2,68,254,11,254,140,0,116,0,184,1,50,5,126,3,124,255,164,0,167,1,112,255,217,0,160,2,82,253,134,248, +32,251,223,253,68,253,61,254,28,0,89,0,178,1,189,2,225,255,155,254,199,1,191,1,44,255,210,1,228,4,68,2, +126,255,76,255,184,255,183,1,101,2,6,255,116,252,246,252,130,254,36,0,115,255,39,254,208,0,74,2,48,255,29,255, +145,1,154,255,68,253,120,254,130,254,53,253,15,255,238,2,33,3,72,254,220,250,189,252,209,254,133,254,212,254,194,255, +47,0,64,0,9,0,213,0,235,0,18,254,77,253,127,255,131,254,237,253,173,2,77,6,136,6,157,6,72,4,233,0, +161,0,119,0,54,0,222,2,187,4,59,4,131,4,66,4,235,2,160,2,22,1,107,253,44,252,195,254,76,1,183,0, +181,254,92,254,151,254,112,254,230,255,207,0,248,254,35,255,11,2,211,1,255,254,183,253,136,252,46,250,245,249,232,252, +66,254,67,251,109,249,62,252,75,254,83,254,223,0,144,2,94,255,64,253,56,255,244,0,250,1,102,3,123,3,58,3, +12,4,72,3,48,0,96,254,47,0,223,3,113,5,217,3,186,2,81,3,143,2,129,0,45,255,118,253,201,251,109,252, +63,253,95,252,228,252,186,255,78,2,2,4,14,5,101,5,83,5,127,3,237,255,96,254,208,255,32,1,8,1,160,0, +177,0,131,0,248,254,118,253,19,253,18,252,188,251,76,254,58,0,165,255,137,255,27,255,106,253,251,253,167,255,156,253, +118,249,180,247,233,248,16,251,83,252,30,253,139,254,151,254,103,252,73,252,81,255,171,255,248,252,93,254,54,2,98,0, +214,252,14,254,53,254,40,252,192,254,59,1,76,255,121,1,145,5,65,1,46,252,216,255,134,3,187,0,40,254,32,0, +71,3,136,3,244,0,175,255,71,1,126,1,60,254,22,252,241,253,4,0,214,255,80,255,181,254,31,254,233,254,16,255, +17,254,166,254,32,255,104,255,159,2,175,3,222,255,153,254,101,255,43,254,197,254,197,254,134,251,89,253,117,2,148,2, +80,2,212,1,243,251,109,248,109,250,65,251,229,252,241,254,224,251,79,250,155,254,114,1,218,1,145,2,35,2,190,1, +212,1,8,1,34,1,89,1,82,0,148,0,50,1,68,0,135,255,45,255,22,0,57,2,54,1,190,255,162,2,172,3, +41,1,154,1,13,3,40,3,26,4,103,2,7,255,18,0,134,1,85,0,243,0,126,1,20,0,247,255,212,254,33,252, +253,252,7,255,110,254,68,254,225,254,142,255,176,2,139,4,65,0,151,251,138,252,6,255,198,254,114,253,33,252,237,250, +188,251,23,253,36,252,125,252,185,255,98,0,65,255,67,0,242,254,80,251,194,252,91,0,75,0,42,1,31,3,222,255, +101,252,6,0,252,3,119,2,219,1,81,4,199,4,110,4,187,4,45,2,29,0,59,1,164,254,102,251,76,0,4,4, +163,255,41,255,25,4,173,3,4,0,251,254,25,255,215,0,114,3,232,2,2,0,250,252,253,250,101,252,103,255,216,0, +50,2,219,2,239,0,14,0,165,1,148,1,197,255,178,255,211,0,119,0,67,255,138,255,60,0,44,255,108,254,2,0, +80,1,163,0,201,255,235,255,134,0,67,0,221,253,236,250,52,250,231,250,237,250,239,250,64,251,245,250,218,251,68,254, +238,253,248,251,253,253,112,0,32,254,88,252,104,254,126,255,119,254,45,254,10,255,177,255,180,254,254,253,78,0,20,2, +102,1,216,2,86,5,52,4,246,1,19,2,29,4,48,6,124,5,191,3,31,5,47,7,214,7,242,8,61,8,252,4, +62,3,155,2,206,0,33,254,17,252,202,254,126,3,105,0,144,250,139,252,119,255,100,253,249,252,151,254,95,254,247,253, +122,254,172,0,106,3,160,1,153,253,121,253,166,254,101,254,26,254,243,252,102,252,63,254,157,254,166,252,208,251,74,252, +84,253,98,254,125,254,62,255,13,1,232,1,190,1,240,255,236,252,34,253,211,255,165,255,74,254,136,255,16,1,205,0, +215,0,130,2,113,3,125,2,8,3,154,4,3,2,101,254,246,255,84,2,43,1,222,0,226,2,79,3,100,1,170,255, +108,255,13,0,111,1,196,2,185,0,150,252,62,252,7,254,8,253,201,251,200,252,243,254,52,2,67,4,162,3,213,2, +20,1,119,254,90,255,195,0,114,254,164,253,18,255,51,253,33,251,14,253,220,254,135,254,136,254,44,254,155,251,245,248, +140,249,173,252,255,254,218,254,224,252,10,252,210,253,2,254,104,252,67,255,92,3,117,1,139,254,192,254,234,253,181,253, +157,0,34,2,218,1,120,2,138,2,68,2,88,3,66,4,38,3,37,0,216,254,11,2,14,4,228,0,244,254,154,0, +5,1,170,0,204,1,122,2,211,1,18,1,226,1,216,4,229,5,36,2,175,254,144,255,86,0,255,253,122,253,39,0, +65,255,8,251,86,251,111,254,78,254,108,253,83,253,176,252,65,254,122,0,108,255,163,254,224,254,50,253,12,254,171,2, +39,5,222,5,203,5,59,2,195,255,96,2,126,4,82,3,146,1,109,0,228,0,225,1,36,1,222,1,183,4,32,3, +124,254,253,254,110,1,209,254,176,252,161,255,90,0,218,252,219,251,44,253,5,254,224,255,203,255,81,252,220,251,218,253, +190,252,166,251,30,252,85,251,189,252,226,255,56,254,87,251,33,253,181,255,30,1,52,3,161,3,239,1,112,1,217,1, +207,0,219,254,92,254,235,255,119,1,194,1,93,1,241,0,111,1,246,1,9,1,151,1,229,3,24,2,26,254,9,255, +165,1,221,0,32,0,163,1,194,3,74,5,225,3,41,0,19,255,176,0,227,0,133,255,183,254,102,254,81,253,246,251, +104,252,203,253,86,253,177,252,62,254,225,254,169,252,191,251,1,255,41,3,104,3,202,255,155,253,249,255,200,2,161,1, +80,255,79,0,205,2,96,3,203,3,164,5,167,5,252,2,10,2,97,3,124,2,206,255,212,255,214,0,49,255,124,254, +52,1,51,2,152,255,16,254,130,255,87,1,150,0,179,253,184,253,0,1,211,0,171,253,241,253,174,255,226,254,100,254, +40,255,127,254,91,253,44,254,57,0,227,0,143,255,167,254,189,254,74,254,213,254,75,1,155,2,205,1,147,0,142,255, +237,254,238,253,63,253,221,255,129,2,37,0,104,254,122,1,122,2,107,255,154,253,73,253,62,253,223,253,58,253,50,252, +146,253,25,254,190,251,107,251,118,254,165,0,51,1,169,1,244,0,78,255,236,255,170,2,173,3,228,2,114,3,116,4, +253,2,146,0,84,0,30,1,53,0,191,254,127,255,171,1,210,2,87,2,31,1,138,1,66,4,178,4,94,1,64,0, +137,2,242,2,84,1,84,0,151,255,218,255,21,1,72,0,45,254,56,254,248,255,147,0,87,254,78,251,1,252,59,255, +250,255,168,255,142,0,4,255,13,251,31,250,147,252,13,254,108,253,116,253,98,255,138,0,0,0,101,0,174,0,5,255, +194,255,85,3,83,2,24,253,9,252,105,255,144,0,110,254,198,253,10,0,220,0,253,254,109,255,91,2,47,2,128,255, +25,255,197,0,9,2,35,2,25,1,126,255,248,253,199,253,15,255,146,254,230,252,189,254,97,0,106,253,147,253,49,3, +98,4,31,1,69,1,233,2,221,1,217,255,156,254,37,255,30,1,25,2,78,2,87,2,195,0,40,255,110,255,34,0, +194,0,116,0,17,254,185,252,82,253,106,252,76,251,71,252,30,253,133,253,39,254,210,253,254,253,186,254,139,253,221,253, +202,1,229,2,23,0,2,0,185,2,145,3,117,2,114,1,122,1,196,2,206,3,232,2,23,1,65,0,246,255,81,255, +82,255,189,255,253,254,182,254,163,0,117,2,175,2,29,2,129,1,225,2,78,5,7,4,217,0,139,0,4,0,106,253, +41,253,137,254,71,254,87,254,16,255,74,254,15,253,105,252,166,252,248,254,48,1,126,0,129,255,175,0,243,1,128,1, +150,255,33,253,4,252,118,253,143,255,206,255,193,255,231,1,27,3,79,0,216,253,97,254,89,254,16,254,55,0,136,1, +241,255,104,255,132,1,112,3,19,3,214,0,249,254,215,254,168,255,246,0,243,1,21,1,36,255,221,253,37,254,171,0, +140,2,69,0,254,253,169,0,113,4,57,4,237,0,0,254,247,252,131,252,204,252,103,255,161,0,114,254,108,255,141,3, +182,2,182,254,102,253,79,253,58,254,118,255,28,253,213,251,223,255,235,0,15,253,239,252,176,255,9,0,108,0,185,1, +68,1,45,0,216,255,244,254,76,253,155,252,63,254,17,1,188,2,166,2,9,1,109,255,199,0,183,3,1,4,60,2, +193,0,166,255,232,255,1,1,201,255,154,253,75,254,18,0,238,255,233,255,233,0,233,255,49,254,231,255,22,2,208,0, +49,255,69,254,134,252,156,253,190,0,114,255,231,252,173,254,97,0,116,255,139,254,78,253,215,252,41,255,37,1,60,1, +172,1,89,2,232,1,10,0,152,254,141,0,218,2,240,0,217,254,36,0,31,1,60,0,61,255,238,254,101,255,1,255, +67,254,251,255,48,1,126,255,129,255,78,1,158,1,146,2,120,3,83,1,107,255,120,255,123,255,246,0,195,3,255,3, +19,1,45,254,107,254,8,0,195,254,145,253,157,255,134,0,222,0,44,3,185,1,32,254,10,0,170,1,15,254,215,252, +3,255,65,255,160,254,121,254,6,254,126,253,134,252,225,252,109,255,120,0,54,0,108,1,76,2,75,2,49,2,81,1, +239,1,245,2,52,0,39,255,69,3,0,4,170,0,146,0,116,1,19,0,99,255,39,255,252,254,168,1,120,5,221,5, +3,3,224,0,190,0,50,0,219,255,109,1,172,0,235,252,217,252,179,255,207,255,187,254,112,254,127,254,148,0,201,2, +186,1,204,255,21,255,141,254,66,254,83,254,28,255,194,255,106,253,107,251,49,255,253,3,134,4,248,3,188,3,180,1, +169,254,132,253,24,0,212,2,254,0,186,254,207,255,203,255,76,255,188,1,252,1,111,254,70,253,119,255,210,1,249,1, +232,254,16,253,216,254,88,255,37,255,149,1,91,1,54,253,106,252,171,254,69,254,253,251,36,251,45,252,122,253,90,253, +254,252,106,254,176,0,61,2,196,2,56,2,184,0,198,254,249,253,107,255,229,0,210,0,241,0,10,1,95,255,200,253, +101,254,203,255,87,0,197,0,0,2,239,2,142,2,228,1,83,1,116,0,4,0,169,255,14,255,173,255,126,0,81,0, +52,1,150,1,109,255,41,255,3,1,17,0,218,254,42,0,44,0,24,255,210,255,9,1,47,2,109,3,219,3,189,3, +150,1,163,253,109,253,22,0,190,255,240,254,130,0,175,0,16,0,57,1,9,1,84,254,181,252,118,253,86,254,86,254, +171,255,171,1,202,255,130,252,14,254,48,1,86,1,30,1,47,1,5,0,35,255,95,255,37,1,30,4,196,4,23,3, +44,2,230,0,219,254,58,254,192,254,234,255,78,0,78,254,210,253,162,255,238,254,209,254,84,1,225,254,15,250,230,251, +71,255,147,254,56,254,8,255,60,255,144,255,220,254,46,254,244,255,236,1,1,3,94,3,188,0,169,253,167,253,203,253, +124,254,242,1,179,2,177,255,89,0,107,3,224,1,233,254,117,0,252,2,114,2,60,2,105,3,2,2,10,0,26,2, +193,4,40,4,136,2,31,1,32,0,128,0,55,0,248,253,104,252,87,253,10,0,87,1,3,255,52,253,109,254,130,254, +9,254,19,0,200,0,163,254,17,253,54,252,175,252,169,254,184,253,250,250,107,251,213,252,173,253,191,255,187,255,241,252, +169,252,172,254,194,255,67,0,127,0,86,1,61,3,42,3,161,1,120,2,226,3,134,3,91,3,46,3,92,2,206,2, +167,2,72,255,221,252,224,254,169,1,104,2,163,2,96,2,241,0,70,0,155,0,27,0,68,0,11,2,231,1,90,255, +9,254,244,253,146,253,61,254,245,255,224,0,4,1,194,0,194,255,228,254,46,255,239,255,79,0,189,0,11,1,43,0, +118,255,187,0,156,1,81,0,121,255,170,255,66,255,191,255,82,1,173,0,72,254,251,253,215,255,186,0,154,255,99,254, +87,254,108,254,59,254,76,254,241,253,53,253,174,253,140,255,100,1,204,1,222,0,14,0,38,255,114,254,182,0,69,3, +30,1,122,255,177,2,3,3,133,254,149,253,54,0,140,0,237,254,25,253,72,251,212,250,159,252,188,0,166,4,163,3, +186,255,59,255,2,1,37,1,166,0,46,0,225,254,27,254,68,255,40,1,20,1,55,255,150,255,116,1,222,255,195,253, +253,255,232,1,165,0,251,0,129,2,151,0,110,253,195,253,136,0,167,1,201,0,227,0,87,1,224,255,192,255,57,2, +105,1,153,253,188,253,155,0,63,1,204,0,207,255,142,253,4,254,8,2,131,3,33,1,2,0,73,1,222,1,106,1, +63,1,104,0,127,254,195,253,125,254,129,254,18,254,222,253,66,252,141,250,58,252,80,255,101,255,13,253,159,251,148,252, +83,254,64,254,140,253,154,254,74,254,0,251,243,250,106,255,200,0,99,254,95,254,43,255,12,253,75,252,217,254,118,255, +254,253,250,254,49,1,20,2,244,2,93,3,61,2,166,1,211,1,182,1,130,2,170,2,225,255,6,254,132,255,110,0, +234,255,50,0,11,0,61,255,93,0,191,2,154,3,197,2,181,1,36,1,253,0,45,1,239,0,56,255,72,254,142,0, +66,2,21,0,137,253,231,252,61,253,50,255,2,1,236,255,239,254,194,255,25,255,169,253,155,254,79,0,71,0,6,255, +183,254,172,0,191,1,226,254,34,252,25,253,64,254,69,253,200,252,200,253,125,254,157,254,210,255,212,1,197,1,80,255, +172,253,179,254,55,1,65,2,138,0,15,0,234,2,171,3,149,0,241,254,62,255,36,255,157,0,49,3,21,3,137,0, +74,254,164,254,249,1,229,3,248,1,250,0,160,2,128,2,117,0,20,0,11,1,251,0,235,255,198,255,40,1,215,1, +202,0,94,0,70,1,141,1,13,1,246,255,54,253,83,251,226,253,16,1,94,255,199,252,210,254,4,1,151,254,156,252, +170,254,164,255,233,253,65,254,226,255,236,254,155,254,181,0,38,0,103,254,210,0,22,2,72,254,99,253,228,0,196,1, +155,1,86,3,123,2,219,255,233,255,175,255,167,253,1,254,255,255,222,255,225,254,157,254,156,253,31,253,246,255,196,2, +36,1,90,255,64,1,39,2,239,0,208,1,192,2,20,1,230,255,68,0,158,1,180,3,169,2,193,254,66,254,4,1, +28,3,1,4,60,2,55,255,144,255,161,0,116,255,66,0,151,2,38,2,209,0,93,0,170,255,225,255,190,0,245,255, +109,254,20,254,137,254,53,254,61,253,42,254,11,0,7,255,39,253,171,253,11,254,255,253,247,255,176,1,186,1,5,2, +148,1,185,255,24,255,172,255,122,255,139,255,183,0,41,0,13,253,241,251,72,254,204,255,109,0,118,2,47,3,207,2, +80,4,252,3,43,1,233,1,0,4,67,2,241,255,126,255,87,0,129,2,199,1,131,253,34,253,90,0,216,0,47,0, +119,0,111,255,126,254,122,255,134,0,95,0,94,255,7,255,216,255,69,255,206,253,75,254,119,254,108,253,156,254,0,0, +252,254,63,255,143,0,228,255,99,0,26,2,175,255,252,251,32,253,241,255,36,0,114,255,205,254,240,253,78,254,77,255, +141,255,181,0,189,2,232,2,127,1,27,0,7,255,13,0,53,3,201,4,129,4,68,4,92,2,255,255,8,2,163,5, +92,4,198,0,34,0,112,0,36,255,162,254,199,255,28,0,152,255,230,255,9,0,246,254,59,254,199,254,242,255,106,1, +122,2,254,1,89,0,133,255,162,0,189,1,136,0,9,255,14,0,162,1,122,1,81,1,248,2,65,5,129,5,58,3, +141,1,120,1,15,0,86,254,131,255,221,0,139,255,249,253,72,253,181,252,45,253,84,254,220,254,251,254,125,254,9,254, +66,255,165,0,240,0,246,1,160,2,180,0,25,255,113,0,77,2,87,2,120,1,63,1,140,0,238,253,196,252,219,254, +218,254,67,252,4,253,23,255,161,254,254,255,239,2,197,1,100,255,30,0,67,1,198,1,73,2,36,1,169,255,147,255, +180,254,95,253,4,254,5,255,169,254,159,254,243,255,37,1,146,0,54,255,107,255,193,0,251,1,72,4,139,6,254,4, +249,0,213,255,18,2,59,3,65,1,239,254,43,255,93,1,12,3,115,2,251,255,226,253,8,253,115,252,123,252,138,253, +162,253,0,252,72,251,68,253,194,255,135,255,70,253,195,252,203,254,147,0,163,0,137,255,13,254,175,253,115,255,72,1, +7,0,145,252,139,251,78,254,132,0,168,255,223,254,98,0,204,1,104,1,12,1,254,1,2,3,209,2,197,0,145,253, +50,252,28,253,2,253,197,252,156,255,20,2,127,0,226,254,80,0,160,1,163,0,22,255,146,254,175,254,103,255,79,1, +20,2,255,255,18,255,34,1,249,1,23,1,94,1,220,1,152,1,130,1,68,1,166,0,77,255,111,253,255,253,62,0, +150,255,240,253,114,255,94,1,231,0,76,0,38,1,80,1,170,254,72,252,250,253,43,0,90,255,136,254,185,254,41,255, +35,1,161,1,120,254,21,253,133,254,246,253,105,252,231,252,88,254,102,255,75,255,160,254,17,0,29,3,15,4,94,2, +214,1,36,4,169,4,172,1,43,1,201,2,226,0,179,255,49,2,227,1,226,255,228,0,210,0,11,255,225,254,224,253, +221,252,196,254,69,255,255,252,228,251,181,252,179,255,117,2,73,0,19,254,160,0,239,0,136,253,122,253,141,255,76,0, +241,1,27,3,241,0,96,254,90,254,189,0,56,4,201,5,70,4,118,2,123,1,186,255,178,253,23,253,154,253,186,254, +96,0,15,1,84,0,216,255,160,255,52,255,193,255,175,0,203,0,45,1,12,2,74,3,149,5,84,6,244,3,128,2, +225,2,179,1,4,0,110,0,182,1,254,1,24,1,61,0,103,255,168,252,77,250,203,251,89,253,104,252,112,252,111,252, +214,250,90,252,124,0,142,1,123,0,82,0,44,1,73,3,252,3,156,0,15,254,35,0,53,2,40,1,85,0,88,2, +182,4,252,3,11,2,197,2,209,3,72,2,214,1,216,3,85,4,168,3,185,3,32,2,182,255,194,255,129,255,104,253, +183,253,166,255,14,255,73,254,162,255,108,0,47,0,141,255,222,252,44,250,84,251,237,253,157,254,84,255,106,0,208,254, +43,252,68,252,69,253,141,253,122,255,84,1,103,0,98,0,129,1,73,255,211,253,10,1,141,1,197,253,206,253,145,0, +135,0,23,1,240,3,139,4,38,3,6,2,99,255,149,252,229,253,15,1,213,0,103,254,135,253,238,253,79,254,181,254, +168,254,91,254,209,254,71,255,206,254,232,253,0,253,51,253,250,254,114,255,20,254,65,255,231,2,35,4,57,3,81,3, +142,3,241,2,90,2,234,0,182,254,93,254,210,255,177,0,46,0,151,254,233,253,109,0,143,3,22,4,186,3,76,3, +214,1,21,1,216,0,28,255,128,253,171,252,77,252,119,255,226,3,233,2,91,255,213,254,207,254,102,253,41,253,178,254, +83,0,107,0,201,255,98,0,33,0,31,254,85,254,26,0,140,255,61,254,147,254,202,0,10,3,70,0,34,251,214,252, +156,1,200,0,247,254,120,0,11,1,113,0,27,1,220,1,199,1,86,1,58,1,235,0,188,254,13,253,179,254,128,0, +134,0,216,255,122,253,164,251,26,253,147,253,2,252,113,253,131,0,165,0,53,255,56,255,168,0,145,1,44,1,156,0, +203,255,203,255,223,2,218,4,238,1,137,255,83,0,184,0,224,0,26,1,226,255,214,254,20,254,70,253,133,255,11,3, +107,3,92,2,76,1,183,255,214,255,47,1,11,1,38,0,246,254,64,253,100,252,221,252,101,254,51,255,112,253,30,253, +37,0,201,0,18,255,245,254,237,253,37,253,9,0,77,0,52,252,88,252,103,0,188,1,10,2,203,3,160,3,204,0, +120,255,97,0,79,255,16,253,161,254,210,0,57,255,207,254,194,0,250,255,85,255,172,1,95,1,109,254,186,254,233,0, +122,0,13,254,215,252,200,253,51,254,60,253,93,254,105,1,65,2,25,1,52,0,70,255,61,254,13,253,117,251,44,252, +65,0,58,2,63,255,147,253,179,0,104,2,218,255,192,254,199,0,14,2,247,1,11,1,81,255,130,255,134,1,8,2, +150,2,162,4,43,4,114,1,55,1,73,2,17,1,194,255,78,1,220,2,23,1,116,255,140,1,250,2,245,0,220,255, +152,255,31,253,37,252,233,253,202,253,14,253,127,254,95,255,237,255,158,1,235,0,191,253,241,251,122,251,21,252,24,254, +70,255,211,255,72,1,219,1,131,1,200,1,6,2,21,3,185,4,204,3,224,1,58,1,130,255,137,254,33,1,36,3, +233,2,151,2,139,0,223,253,235,253,12,254,214,253,216,0,129,3,79,1,10,254,160,253,21,255,145,0,131,1,80,2, +38,2,15,0,210,254,122,0,103,2,2,3,71,3,248,2,193,1,237,0,144,1,27,2,60,0,129,254,145,0,151,2, +175,0,36,255,152,0,73,1,40,0,205,255,191,255,21,253,14,249,33,249,41,253,67,254,183,251,151,251,110,254,33,0, +233,255,17,255,93,254,61,254,92,254,128,254,240,254,53,255,181,254,113,254,197,255,48,1,126,0,204,255,5,1,85,1, +139,0,30,2,153,4,137,4,203,2,39,1,255,0,43,3,104,4,134,1,11,254,62,255,44,3,167,3,116,1,176,1, +218,1,162,254,44,253,32,255,74,255,103,253,64,252,137,252,92,254,19,255,185,253,157,253,135,253,138,252,166,254,9,0, +42,252,105,250,117,253,76,255,190,255,78,255,69,253,194,253,44,0,162,0,92,1,204,1,252,255,92,0,9,2,189,0, +162,0,157,2,24,1,169,253,49,253,158,255,196,1,84,0,105,254,35,1,27,3,7,0,94,255,136,2,230,1,242,254, +209,255,209,0,245,252,207,249,252,252,148,0,23,255,9,253,29,253,29,253,22,254,228,255,235,255,137,255,144,255,210,254, +220,254,86,255,21,255,92,0,135,1,232,255,93,255,152,0,91,0,27,1,51,3,234,1,80,255,42,0,26,2,246,1, +154,1,152,2,160,2,20,1,173,1,162,3,30,2,224,255,83,1,240,2,10,2,69,0,232,254,68,0,21,3,105,2, +53,0,100,255,123,253,54,253,215,0,161,1,62,255,202,255,171,0,244,254,35,254,29,254,27,253,169,252,59,253,120,254, +148,255,94,254,44,252,212,251,110,252,238,253,229,0,224,1,178,255,48,254,118,254,253,254,115,0,158,2,133,2,126,0, +117,0,124,1,185,255,51,254,140,0,97,2,169,1,254,1,4,2,45,0,158,0,255,2,145,3,235,3,131,4,32,3, +213,1,162,1,37,0,251,254,251,255,199,0,220,0,61,1,71,1,73,1,241,0,54,255,219,254,29,1,119,1,246,254, +238,253,190,254,84,255,45,1,128,4,40,5,61,2,29,0,13,0,139,255,202,254,101,254,92,253,93,253,104,254,145,252, +37,250,49,252,11,255,41,255,182,255,231,0,146,0,35,0,106,0,178,0,197,0,38,0,16,0,174,1,39,3,219,3, +228,3,44,2,15,1,17,2,244,1,252,0,234,0,212,255,56,255,52,0,233,254,170,253,235,255,29,0,76,254,200,0, +148,3,229,1,52,0,8,0,106,255,186,255,125,0,229,255,102,255,194,255,4,0,44,0,241,255,206,254,153,253,193,253, +46,255,46,0,195,0,254,1,47,2,213,0,4,1,134,2,59,2,152,0,182,255,187,255,154,255,210,254,220,254,203,255, +32,255,10,254,169,254,46,254,222,252,163,254,203,0,137,0,124,1,138,2,182,255,240,253,13,1,142,2,29,0,237,255, +131,1,101,255,172,252,98,253,75,253,184,251,181,253,197,0,112,255,186,252,10,253,44,255,188,0,69,0,0,254,24,253, +73,255,150,1,75,1,50,0,60,0,33,0,19,0,190,1,181,2,150,1,255,1,132,3,163,2,184,1,161,2,178,1, +137,254,150,253,184,0,122,4,108,4,188,1,69,0,96,255,42,254,17,254,65,254,146,254,201,255,141,255,14,254,193,253, +52,253,200,252,119,253,203,251,148,250,173,254,253,0,53,254,94,254,223,0,98,0,84,0,146,1,241,0,236,0,95,2, +58,2,100,1,243,0,244,255,44,0,205,1,94,1,112,255,207,255,150,1,99,1,172,255,169,254,10,255,101,0,162,0, +15,255,58,255,161,1,120,2,5,2,6,1,91,254,34,254,212,0,5,255,19,251,96,252,110,254,28,254,106,255,202,255, +202,253,145,254,33,0,175,254,148,254,180,0,64,0,177,253,59,253,121,255,130,1,141,1,208,0,10,0,151,255,143,0, +211,0,187,254,209,253,79,255,6,1,116,2,208,1,143,255,2,0,138,0,51,254,38,255,100,2,154,0,51,255,62,3, +160,4,133,1,10,1,45,2,100,0,233,253,246,253,148,255,99,0,126,255,192,253,131,252,38,252,167,251,251,251,48,0, +157,4,202,1,13,252,166,252,226,255,75,255,164,254,105,0,166,0,90,255,229,255,59,1,193,0,230,255,214,0,229,1, +27,1,162,255,175,254,127,254,83,255,131,255,27,254,9,254,232,255,213,255,181,253,209,253,173,0,62,2,35,1,229,0, +247,2,138,3,161,1,168,0,29,0,137,254,19,255,224,0,197,255,152,255,47,3,133,3,175,255,5,255,27,0,196,254, +206,254,185,0,243,0,165,1,36,3,25,2,84,1,145,2,128,1,135,255,116,0,53,1,179,0,84,1,220,0,199,254, +217,254,150,255,1,255,189,0,128,2,128,254,178,251,243,0,183,3,87,254,128,252,167,255,248,253,24,252,146,0,90,3, +216,1,145,1,189,0,95,255,79,1,101,2,8,1,29,2,245,2,162,0,186,255,120,0,9,1,23,3,78,3,87,255, +196,253,157,0,201,1,137,255,113,253,28,254,248,0,181,2,134,1,58,255,10,254,108,254,29,255,158,255,206,0,222,0, +122,254,107,253,113,254,217,253,56,253,131,255,75,2,85,3,131,2,169,0,250,0,212,3,151,5,96,5,160,3,98,0, +58,254,235,253,186,253,134,254,145,255,139,254,51,254,54,0,94,1,75,1,4,1,230,255,13,0,38,2,145,2,126,1, +146,1,243,1,126,2,85,3,69,1,2,253,127,252,226,255,97,1,72,0,82,0,188,0,68,255,227,254,197,0,10,0, +207,252,63,253,20,1,136,2,167,0,123,255,200,1,188,4,205,3,63,1,74,1,208,0,178,253,205,252,72,255,248,0, +246,0,63,0,240,254,244,254,40,1,45,2,251,255,40,254,212,255,196,1,116,0,172,254,130,255,238,0,236,0,135,0, +183,0,231,0,80,0,133,255,93,255,132,255,104,0,207,1,38,1,132,255,138,0,230,1,157,0,17,255,176,254,130,255, +79,1,237,0,81,255,210,0,121,1,33,254,21,253,46,255,106,255,214,254,11,255,192,255,89,2,32,4,159,2,199,1, +22,2,112,1,128,2,164,4,214,3,127,1,244,255,73,255,149,255,45,255,78,254,113,255,109,0,179,255,251,255,179,0, +140,0,183,0,239,255,169,254,126,255,244,255,23,255,22,0,130,1,52,2,123,4,177,5,119,3,48,1,44,0,46,0, +119,1,72,1,88,0,117,2,130,3,123,255,60,252,81,253,163,254,136,254,104,255,12,2,144,3,215,0,124,252,127,251, +168,252,18,252,226,250,246,251,132,254,39,0,152,0,69,1,86,2,54,2,72,0,216,254,213,0,53,4,120,3,197,255, +75,255,229,0,39,0,202,255,108,1,157,0,197,254,72,1,161,4,90,3,63,0,2,254,156,251,237,250,210,252,135,253, +170,252,79,253,3,255,98,0,147,1,79,1,76,255,248,253,35,254,157,254,156,254,210,253,1,253,18,253,66,253,60,253, +245,253,13,255,68,255,207,254,131,254,224,253,39,252,220,250,184,251,114,253,152,254,85,255,60,255,231,254,102,255,247,254, +171,254,67,2,64,5,8,2,9,255,239,0,41,1,163,254,137,255,188,1,88,0,26,255,160,0,153,0,79,254,137,253, +15,254,66,254,118,255,103,1,225,1,158,0,215,254,204,254,4,1,242,0,179,253,156,253,11,0,79,254,116,251,245,252, +124,254,134,253,100,254,11,0,116,254,165,252,119,253,116,253,34,252,215,252,104,253,228,251,223,252,101,255,178,253,17,252, +96,255,84,1,48,255,87,253,198,251,226,250,40,253,39,255,181,254,0,255,195,255,24,0,185,1,2,3,97,2,183,1, +73,1,145,0,69,255,172,252,32,252,165,255,45,1,169,254,127,254,31,1,213,0,130,254,124,255,204,2,34,3,14,1, +68,0,251,254,246,252,156,254,33,1,16,0,4,0,100,1,224,254,117,252,142,253,153,252,10,251,143,254,68,2,238,0, +60,254,89,253,135,253,46,254,14,255,201,255,2,0,141,255,72,254,175,252,212,253,38,2,2,3,217,254,251,253,229,1, +45,3,49,1,97,0,49,0,247,254,88,254,138,255,218,0,16,0,64,254,125,254,81,0,145,0,229,254,17,254,2,0, +97,3,18,5,12,4,105,2,104,2,192,3,51,4,192,2,229,0,84,0,78,1,170,2,14,3,178,2,112,1,241,253, +232,250,145,252,192,255,246,255,228,255,195,0,164,254,40,251,49,252,131,0,230,2,19,3,109,2,53,0,0,254,1,254, +216,253,233,252,159,254,171,0,43,255,169,254,129,1,39,2,252,255,251,254,11,255,231,255,50,1,4,0,78,254,255,255, +105,1,66,255,172,253,158,254,37,255,13,255,250,255,55,0,147,254,222,254,155,2,34,4,92,1,147,255,231,255,175,255, +209,0,67,3,83,2,133,255,113,0,126,3,227,3,150,2,138,2,123,2,181,0,136,255,60,0,90,0,223,255,117,0, +66,0,63,255,122,0,201,1,252,255,172,254,200,255,138,255,74,254,212,255,141,2,235,2,152,1,25,0,209,254,188,254, +131,255,240,255,227,0,222,1,104,0,208,254,139,0,126,2,52,2,101,2,113,2,23,0,116,254,221,254,116,253,234,250, +233,251,254,254,211,255,227,255,122,1,125,1,10,255,114,254,183,255,72,255,123,254,122,255,203,0,131,1,247,0,152,254, +235,252,55,253,242,253,61,255,251,255,6,254,141,252,0,254,245,254,34,255,32,1,147,2,22,1,121,255,71,0,198,1, +109,1,142,0,160,1,194,2,142,2,134,3,124,4,90,2,64,0,10,1,44,2,111,2,112,2,125,1,183,0,85,2, +44,5,209,5,8,3,136,255,253,253,70,253,179,252,177,253,237,254,128,254,56,254,45,255,142,255,85,254,101,252,245,251, +81,254,222,0,201,0,130,255,50,255,120,255,188,255,77,0,216,0,72,0,246,254,8,255,180,0,131,1,105,1,105,2, +86,3,180,2,171,2,69,3,149,1,162,255,157,0,64,1,47,0,94,1,213,2,18,1,59,1,181,4,117,4,178,1, +220,2,47,4,10,1,31,254,104,254,227,254,209,254,58,255,215,254,221,253,243,254,212,0,9,0,253,254,203,0,202,1, +83,0,30,0,135,0,95,255,62,255,94,0,19,0,40,255,157,254,229,253,119,253,79,253,58,254,18,1,67,2,81,0, +132,255,12,0,60,255,251,254,218,255,101,255,105,254,84,254,117,254,218,254,207,255,41,1,89,2,47,2,66,1,159,0, +88,255,75,254,217,254,255,254,240,254,231,0,21,2,1,0,251,253,139,254,99,0,121,1,126,1,35,2,147,2,70,0, +112,254,85,0,164,1,50,0,239,255,242,0,147,0,47,0,15,1,125,1,249,0,115,0,54,255,209,252,221,251,146,253, +220,254,110,254,42,254,80,254,36,255,60,1,10,2,237,0,228,0,33,1,178,255,196,254,49,255,158,255,57,0,183,0, +171,0,40,0,227,253,196,251,42,254,33,2,220,1,234,255,181,0,150,1,215,255,254,254,62,1,104,2,234,0,183,0, +120,1,89,0,150,255,214,255,203,254,53,254,105,254,69,253,238,253,41,1,98,1,208,254,167,253,171,253,50,254,159,254, +42,254,19,255,80,0,212,254,49,255,160,3,67,5,18,3,17,2,188,1,224,0,38,1,99,1,221,255,12,254,238,253, +109,255,115,0,8,0,78,255,132,254,250,253,174,254,30,0,15,2,98,3,83,1,80,255,14,2,208,3,59,0,90,253, +126,253,143,253,15,254,241,254,190,254,0,254,48,252,25,251,191,254,82,3,141,3,246,2,162,3,141,2,9,1,84,1, +82,1,122,0,178,0,238,1,214,2,137,2,41,1,0,0,1,0,215,0,142,1,180,1,171,1,81,1,84,0,219,255, +89,0,65,0,114,255,9,255,100,254,183,253,83,255,79,2,191,2,247,0,116,0,8,1,8,1,15,1,209,0,42,0, +154,1,119,3,106,0,124,251,35,252,165,255,120,255,161,254,93,1,9,3,176,0,196,255,64,2,61,3,142,1,174,255, +27,254,255,253,20,0,158,1,181,1,184,1,51,1,174,0,19,1,201,0,215,255,40,255,250,253,59,254,180,0,176,0, +68,254,122,254,200,255,26,255,49,255,54,1,79,2,209,1,112,1,90,1,53,0,0,255,70,0,13,2,11,1,135,255, +185,255,129,255,155,254,7,255,37,0,222,255,151,254,23,255,59,1,124,1,119,0,205,0,95,0,9,255,72,0,169,1, +147,255,92,253,108,253,135,253,227,252,216,252,189,253,229,253,149,252,115,252,209,253,53,253,86,251,218,251,89,254,23,0, +157,255,100,254,254,254,168,255,131,254,152,254,155,0,193,2,11,5,115,4,86,0,120,255,214,1,112,1,142,0,194,1, +141,1,96,0,246,0,168,2,6,4,87,3,70,1,205,0,239,0,148,0,54,1,240,0,200,255,70,1,220,2,19,2, +21,2,231,1,24,0,157,0,8,3,90,3,164,1,232,254,183,252,253,252,27,254,5,255,204,255,69,254,11,252,215,252, +15,254,92,253,117,253,30,255,212,0,204,1,141,1,246,0,177,0,68,0,32,0,248,255,135,255,46,0,154,0,70,255, +181,254,35,255,129,255,199,1,76,3,144,0,18,255,1,1,117,0,12,255,89,1,255,1,215,253,118,251,233,252,44,253, +254,251,232,252,245,254,140,255,138,255,42,0,15,1,43,2,6,3,183,2,241,1,144,1,201,0,45,255,208,254,202,1, +180,4,42,2,112,253,123,253,15,0,22,0,209,255,131,1,29,2,63,0,98,254,211,253,57,254,28,0,151,2,192,2, +174,1,200,1,208,255,31,252,167,253,8,2,177,1,243,255,214,0,16,1,152,0,155,0,43,255,87,254,214,255,240,255, +85,254,131,254,22,0,21,0,219,253,192,252,63,255,78,1,218,255,146,254,217,254,8,254,6,253,216,253,221,254,129,254, +101,254,254,255,52,1,167,0,53,0,195,255,51,255,228,0,164,1,239,253,245,251,221,253,113,253,69,252,18,254,122,254, +11,253,65,254,17,1,164,2,231,2,193,2,227,2,38,2,73,1,25,3,44,4,73,1,168,255,75,1,126,2,64,3, +22,3,113,0,241,254,62,0,68,1,46,2,109,3,213,1,13,254,150,253,163,0,137,0,252,252,39,253,70,255,36,253, +159,251,151,253,188,252,244,250,20,253,146,254,146,254,41,0,40,0,165,254,96,255,229,255,101,255,3,1,52,3,24,4, +172,4,64,4,86,2,91,0,116,0,24,3,151,3,177,255,110,253,218,254,120,255,22,255,4,255,200,254,163,255,238,255, +178,253,175,253,222,0,229,0,66,254,148,254,182,0,140,0,160,254,9,254,34,255,83,255,131,254,61,255,211,0,254,0, +87,0,254,255,1,0,251,255,43,255,237,254,32,1,203,2,227,0,51,255,164,1,232,4,129,4,240,1,18,1,169,1, +54,1,156,0,244,1,75,3,131,2,115,1,65,0,43,253,178,251,148,254,89,0,250,254,19,0,80,2,186,255,109,252, +84,254,197,0,95,255,181,254,85,1,88,2,31,0,79,255,42,0,131,254,95,252,21,254,88,0,209,254,108,252,191,252, +61,254,91,255,24,1,24,2,43,0,147,254,248,255,112,0,46,255,225,255,233,0,111,0,239,0,235,0,233,254,171,254, +243,255,241,255,135,255,30,254,143,252,221,254,129,1,244,255,55,255,16,1,22,1,223,0,72,2,116,1,210,254,244,254, +3,1,83,1,193,0,179,1,128,2,154,1,227,0,47,0,179,254,24,255,164,0,119,0,239,0,94,2,144,1,189,0, +63,1,230,255,113,254,141,255,178,0,45,1,65,2,234,2,229,1,246,254,161,252,212,253,192,255,214,255,47,0,15,0, +121,254,249,253,212,253,2,253,191,253,115,255,143,1,160,4,225,4,45,2,161,1,74,2,230,1,50,2,127,1,33,255, +17,255,90,0,96,255,224,253,76,254,68,255,100,254,170,252,46,253,94,254,151,253,168,253,45,255,53,255,228,254,3,255, +39,255,210,1,91,4,206,1,176,254,77,255,199,0,114,2,173,3,83,1,175,253,233,252,179,253,172,253,224,253,177,0, +1,4,146,2,246,254,75,255,124,0,64,255,119,255,38,1,64,1,4,1,228,0,243,255,206,255,119,0,63,0,43,0, +163,1,234,2,205,1,196,255,35,255,124,254,174,253,113,255,75,1,125,255,46,253,64,253,56,254,14,255,204,254,188,253, +206,253,163,253,184,252,34,254,63,0,152,255,68,254,244,253,216,253,89,254,226,254,167,254,81,254,203,253,9,254,191,255, +8,0,244,254,70,0,111,2,199,1,44,0,169,0,96,2,199,2,198,1,31,1,93,0,70,255,13,0,72,1,116,0, +128,0,126,1,7,255,100,252,233,254,214,1,73,0,235,253,221,253,240,254,213,0,220,2,92,2,84,0,127,0,147,1, +200,0,47,0,137,0,146,255,152,254,182,254,215,253,103,253,164,255,124,1,91,0,43,254,142,253,226,254,158,255,140,254, +144,254,173,0,40,2,192,1,63,0,134,255,220,0,194,1,201,0,217,0,244,1,92,1,22,0,207,255,50,0,88,1, +55,2,83,1,245,255,11,255,219,253,157,253,14,255,39,255,224,252,99,252,33,255,233,0,65,0,202,255,220,255,158,255, +192,255,3,0,162,255,215,254,174,254,100,0,160,1,80,255,122,253,65,255,41,0,171,255,141,0,219,255,219,253,137,254, +176,254,120,252,138,252,94,254,206,254,26,255,112,255,248,254,136,254,48,254,174,254,52,0,103,0,254,255,26,1,206,1, +138,1,17,2,44,2,37,1,138,0,114,0,65,1,121,3,228,3,17,0,207,251,84,251,160,252,247,252,254,253,137,255, +119,255,16,0,184,1,143,0,6,255,181,0,178,1,154,0,188,255,196,253,235,251,208,252,158,253,38,254,215,0,38,2, +50,0,21,255,102,0,19,2,175,1,63,255,91,254,49,255,13,255,217,255,131,1,225,255,102,253,125,254,172,0,60,1, +83,1,126,2,220,3,94,2,189,255,184,0,18,2,37,0,140,255,47,1,106,1,150,1,208,1,130,255,44,253,23,253, +144,253,102,254,230,255,225,0,227,0,27,0,101,255,4,0,231,1,249,3,98,4,147,2,225,0,218,255,63,254,114,253, +214,253,138,254,193,0,89,2,33,0,180,253,67,253,103,252,33,253,134,0,228,1,238,0,21,1,14,1,38,255,96,254, +246,0,48,3,189,1,188,0,54,2,216,0,189,253,103,254,59,255,245,253,253,254,188,255,18,253,146,252,227,254,77,255, +95,255,129,0,254,255,253,254,241,255,164,0,227,254,19,253,6,254,114,255,103,254,113,253,86,254,105,254,44,254,232,255, +112,1,91,1,191,1,65,2,206,0,146,254,63,254,110,255,154,255,67,255,208,0,33,3,209,3,74,3,54,2,64,0, +49,254,235,253,51,0,88,2,34,1,159,254,28,254,71,254,230,253,6,254,59,254,77,254,242,254,241,254,239,253,216,253, +181,254,45,255,204,255,77,1,136,2,16,2,118,0,162,255,91,0,95,1,196,0,236,254,252,254,60,1,224,1,209,0, +80,1,133,2,151,2,200,2,18,3,100,2,98,1,60,0,1,0,132,2,146,4,137,2,239,255,156,255,15,255,15,255, +130,1,60,2,255,255,64,0,199,2,126,2,81,0,32,255,111,254,141,254,131,255,8,0,195,0,22,1,120,255,22,255, +125,1,111,2,11,1,39,0,4,0,32,0,161,255,207,253,121,253,91,255,211,255,87,255,112,0,44,1,131,0,53,0, +2,0,37,255,122,254,46,255,90,1,179,2,173,1,59,0,43,255,244,253,44,254,132,255,158,255,118,255,153,255,30,254, +168,253,130,1,181,4,236,2,62,1,192,2,8,3,225,1,165,2,232,2,206,1,18,3,58,4,8,2,252,0,112,2, +33,3,199,3,216,3,158,1,206,0,127,2,73,3,150,3,42,3,247,255,57,253,170,253,33,255,64,0,100,0,169,255, +173,255,123,255,246,254,76,0,214,0,28,255,243,255,179,2,158,2,109,1,234,0,11,0,164,0,135,2,128,2,54,1, +116,0,248,255,56,0,32,1,97,1,5,1,171,0,89,0,61,0,183,0,98,1,251,0,40,0,6,1,47,2,197,1, +28,2,84,3,93,2,128,0,75,0,127,0,70,0,56,0,248,255,80,255,200,254,252,254,193,255,26,0,8,0,182,255, +54,255,125,0,185,2,123,2,69,2,21,4,2,3,51,0,39,1,114,2,115,1,173,1,182,1,71,0,186,0,105,1, +46,0,191,255,75,255,32,254,223,255,88,2,204,0,94,254,203,254,0,0,248,255,165,255,65,0,139,0,68,255,142,255, +162,2,110,3,245,0,188,255,121,255,109,254,88,255,95,2,189,3,137,2,229,255,74,253,200,253,227,0,131,1,205,255, +49,0,94,0,8,253,93,251,228,253,55,255,57,255,114,1,126,2,142,0,102,0,4,2,95,1,192,255,221,255,135,0, +133,0,140,0,156,0,161,255,140,254,89,255,209,255,91,253,229,251,239,253,54,255,49,255,8,1,184,1,131,254,37,252, +189,253,214,255,198,254,185,251,183,251,214,255,12,2,37,0,42,255,234,255,10,255,35,254,253,255,120,2,90,2,92,255, +135,252,37,253,159,255,28,0,26,255,243,254,84,255,166,255,149,0,189,1,211,1,25,1,243,0,253,0,242,255,244,254, +1,255,167,254,4,254,78,254,69,254,153,253,183,253,163,253,25,253,111,254,173,0,126,0,78,254,199,252,214,252,200,253, +17,255,147,0,182,0,240,254,122,255,111,3,123,4,127,1,57,0,245,255,120,253,223,252,239,255,201,0,17,254,140,252, +1,253,81,253,13,254,38,255,255,254,122,254,118,254,209,253,128,253,246,253,106,252,66,250,156,251,248,253,34,254,144,254, +210,255,8,0,16,0,235,255,159,254,235,253,197,254,176,255,187,255,19,255,18,255,60,0,214,0,245,0,151,1,107,1, +137,1,239,3,50,5,29,3,250,0,133,0,71,1,169,2,233,2,135,2,235,2,3,2,240,255,170,255,15,0,183,255, +230,255,209,255,247,254,77,254,124,252,150,250,246,251,14,254,213,253,242,253,180,254,230,253,144,253,156,254,54,254,112,253, +26,255,93,0,108,254,191,252,183,253,53,254,77,253,9,254,233,255,185,255,74,254,26,254,30,254,192,252,235,251,102,253, +9,255,114,255,141,0,144,1,83,0,104,255,19,0,220,255,169,0,185,3,174,3,129,0,218,255,29,0,99,254,90,254, +229,0,86,2,183,1,5,0,160,254,30,255,84,0,42,0,224,254,232,253,95,254,11,255,20,254,242,253,138,0,38,2, +38,1,170,255,37,254,3,254,247,255,70,0,150,255,199,1,194,2,151,255,45,254,184,255,108,0,207,1,158,3,230,1, +159,255,202,0,244,1,65,1,44,1,2,1,200,255,201,255,202,0,21,0,84,254,215,253,109,254,194,254,144,254,160,254, +97,255,89,255,156,253,98,252,251,252,161,253,238,253,207,254,156,255,145,0,108,2,58,3,177,1,73,255,86,253,40,253, +226,254,185,255,51,255,199,255,169,0,42,0,119,255,85,255,47,0,1,2,60,2,33,1,218,1,51,2,164,255,75,254, +192,255,108,0,102,0,156,1,87,2,255,0,24,255,21,255,206,0,15,1,114,255,99,255,157,0,69,0,160,255,93,0, +223,0,220,0,63,1,154,0,199,254,213,254,157,0,77,0,148,254,28,255,5,0,177,254,97,254,15,0,95,0,234,0, +191,3,243,3,248,255,173,253,169,254,173,255,120,0,121,1,153,1,163,1,69,2,195,1,180,0,245,1,182,3,230,1, +215,254,1,255,111,0,137,0,125,1,139,2,55,0,243,253,66,0,95,2,206,255,110,253,252,254,10,1,114,1,129,1, +68,1,232,0,8,1,31,0,118,254,251,254,75,0,85,255,121,254,111,255,79,255,43,254,161,254,174,255,203,255,90,255, +166,254,225,254,50,0,20,0,99,255,238,0,8,2,221,0,106,1,144,3,234,2,204,0,136,0,19,1,31,1,54,0, +8,254,180,253,35,1,52,3,124,0,211,253,181,254,38,0,229,0,186,2,58,3,177,255,252,252,241,254,196,0,105,0, +242,1,170,3,11,2,87,1,68,3,237,2,54,1,243,1,207,2,235,2,122,4,123,4,4,1,30,255,47,0,57,0, +117,255,212,255,250,255,35,0,72,1,186,0,161,254,82,255,87,1,120,0,234,254,65,254,228,251,156,250,246,253,8,1, +191,0,215,0,242,0,190,254,159,253,249,254,138,255,233,255,211,1,149,2,128,1,110,1,72,1,246,254,227,253,24,0, +19,1,206,254,59,253,68,254,20,0,54,1,238,0,246,255,10,0,214,0,236,1,212,3,129,4,213,2,156,1,252,0, +84,255,235,254,10,0,169,255,85,255,215,0,228,0,160,255,203,0,112,2,183,1,244,1,132,4,204,4,181,1,152,255, +227,255,16,1,221,2,92,3,105,0,226,253,253,254,28,0,22,0,57,1,219,0,40,254,131,254,54,1,44,1,180,0, +228,1,175,0,149,253,233,252,235,253,32,255,10,1,163,1,93,0,49,0,161,0,149,255,211,254,188,254,193,253,47,254, +145,0,58,0,103,253,14,253,145,254,55,255,7,0,203,0,64,0,182,255,102,255,5,255,58,0,69,1,62,255,166,253, +128,255,107,1,107,1,84,0,64,254,198,253,137,0,242,1,253,255,246,254,166,255,109,255,127,255,63,1,51,2,201,0, +32,255,100,255,111,0,10,0,20,255,126,255,156,0,156,1,205,2,8,3,109,1,198,255,179,255,154,0,246,0,41,0, +183,255,29,1,193,2,147,2,109,1,251,0,83,1,163,1,8,1,78,255,172,253,203,253,185,255,97,1,196,0,26,255, +178,255,94,2,221,2,91,0,209,254,188,254,206,253,30,254,81,0,187,255,32,253,102,253,79,254,86,253,175,253,146,254, +149,253,38,254,202,0,158,1,119,1,49,1,210,254,117,253,199,255,212,0,178,254,212,253,150,254,149,254,59,255,225,0, +165,0,241,254,221,254,49,0,5,1,42,1,189,0,126,0,219,1,40,3,17,2,156,0,173,0,26,1,243,1,223,2, +165,1,195,255,226,255,49,0,203,255,113,0,134,0,80,254,175,252,48,253,126,253,73,253,182,254,215,0,78,0,179,253, +249,252,166,254,110,0,231,1,243,2,172,2,226,1,164,1,160,1,171,1,101,1,65,0,56,255,131,255,147,0,175,0, +74,255,174,254,245,255,34,0,198,254,73,255,253,0,102,1,167,1,90,1,48,255,43,254,121,255,22,0,236,255,19,0, +93,255,137,254,177,254,102,254,40,254,45,255,85,255,99,254,59,255,17,1,41,1,109,0,3,0,42,255,172,254,30,255, +254,254,38,255,28,1,193,1,226,255,12,0,210,1,11,0,151,253,42,0,44,4,78,4,145,2,213,1,246,0,25,255, +11,254,10,255,127,0,4,1,61,1,69,1,78,1,42,2,223,1,100,255,65,254,255,254,255,254,193,255,59,1,50,0, +94,255,28,1,241,0,67,255,227,255,91,255,220,252,201,253,32,0,125,255,235,254,235,254,199,252,22,252,109,254,243,254, +102,254,94,0,236,1,32,2,192,3,94,3,87,255,45,255,190,3,250,4,254,2,165,2,66,2,12,1,223,0,163,255, +183,253,9,255,114,1,153,1,95,1,23,1,245,255,117,255,128,254,127,252,51,253,225,255,56,0,158,255,244,255,43,255, +205,253,198,253,36,254,134,254,62,255,59,255,200,254,246,254,15,255,27,255,57,0,91,1,181,0,23,255,115,254,21,255, +68,0,81,1,59,1,240,255,48,255,187,255,167,0,212,1,248,2,208,2,190,1,33,1,228,0,159,0,87,0,57,0, +164,0,184,0,100,255,89,254,116,255,101,1,191,1,113,255,45,252,101,251,67,253,227,254,109,255,100,255,16,255,117,255, +238,255,80,255,182,255,74,1,142,0,237,254,57,0,183,1,44,0,97,254,69,254,36,254,216,253,24,254,202,253,229,252, +54,253,165,254,171,255,98,0,4,1,20,1,45,1,234,0,186,254,213,252,254,253,165,255,150,255,133,255,151,255,4,255, +55,255,203,0,169,2,20,3,232,0,31,255,77,0,163,0,253,254,223,255,111,1,113,255,14,254,100,255,142,254,154,252, +244,253,195,255,123,255,17,0,112,1,31,1,100,0,53,0,114,255,32,255,153,255,252,254,240,254,33,1,154,1,197,255, +96,0,153,1,156,255,197,254,202,0,130,0,20,255,162,0,243,1,142,0,70,255,207,254,121,254,206,254,243,254,229,254, +9,0,166,0,34,255,95,254,224,255,66,0,36,254,61,253,15,255,229,255,166,254,146,254,55,255,242,253,201,252,199,253, +1,255,156,255,226,255,250,254,254,253,239,254,197,0,159,1,121,1,121,1,152,2,146,3,65,2,47,0,136,0,69,2, +14,2,49,0,171,255,153,0,242,0,27,1,132,1,28,0,164,253,160,253,96,255,68,0,202,0,254,0,177,255,89,254, +187,254,199,255,12,0,214,255,28,0,174,0,126,0,216,255,238,255,189,0,127,1,49,1,175,255,72,255,162,0,183,0, +151,255,48,0,153,0,14,254,12,252,201,253,59,0,83,0,113,255,226,254,158,253,26,252,90,252,20,254,188,255,105,0, +24,255,123,253,155,254,137,255,105,253,59,253,45,0,80,0,245,254,92,0,144,0,79,254,111,254,95,255,14,254,167,253, +25,254,180,252,200,252,14,255,56,254,185,251,178,252,34,254,110,253,229,254,244,1,179,1,157,0,228,1,232,1,70,0, +250,0,183,2,27,3,157,3,65,3,107,0,52,254,142,254,176,255,172,0,161,0,176,254,242,252,60,253,52,254,177,254, +31,255,169,255,154,255,115,254,81,253,120,253,57,254,211,254,100,255,119,255,21,255,149,254,130,253,219,252,194,253,80,254, +204,253,71,254,111,255,223,255,74,0,177,0,51,1,17,3,5,4,136,1,166,255,105,1,148,2,248,0,238,255,184,255, +33,254,251,252,60,254,18,0,50,1,48,1,47,255,173,253,128,255,182,1,207,1,172,1,24,1,142,255,177,255,76,0, +49,254,96,252,156,253,6,255,15,255,180,254,88,254,178,254,45,255,157,254,223,254,91,0,45,0,9,255,180,255,3,1, +99,1,166,1,233,1,121,1,124,0,239,255,112,0,252,0,16,1,223,1,151,2,182,1,56,1,237,1,26,1,91,255, +7,0,9,2,51,2,219,0,215,255,172,255,106,0,158,1,219,1,5,1,185,0,231,0,73,0,210,255,78,0,57,0, +203,255,190,0,194,1,212,0,71,255,29,255,216,255,35,0,107,0,35,1,164,0,77,255,47,0,198,1,156,0,41,255, +111,255,44,255,133,255,99,1,207,0,173,254,90,255,178,0,181,0,185,1,138,2,153,1,107,1,198,1,188,0,224,255, +247,255,60,0,50,1,177,1,122,0,242,255,59,1,108,2,18,3,47,3,38,2,159,1,218,2,122,3,0,2,58,0, +108,255,54,255,83,255,86,255,59,255,55,0,192,1,94,1,249,255,84,0,230,0,237,255,110,0,65,3,56,4,135,2, +189,1,48,2,101,1,217,255,145,255,190,255,66,255,149,255,184,0,164,0,78,0,7,1,131,0,213,254,37,255,86,0, +19,0,213,255,217,255,5,255,59,255,238,0,176,1,133,1,52,1,233,255,1,255,232,255,48,0,246,254,72,255,114,1, +45,2,186,0,45,255,125,254,171,254,5,0,8,2,92,3,247,2,186,0,128,254,132,254,187,255,86,0,45,1,178,1, +200,255,245,253,130,255,120,1,215,0,225,255,44,0,167,0,85,1,19,2,191,1,246,0,198,0,183,0,42,1,171,2, +59,3,18,2,90,1,183,0,214,254,179,254,9,1,10,1,227,254,112,255,50,1,176,0,87,0,139,1,96,1,133,255, +178,254,23,0,51,2,12,2,104,255,106,254,159,0,182,1,85,255,113,253,13,255,210,0,161,255,95,254,127,255,160,0, +159,0,161,0,249,255,2,255,200,255,251,0,108,0,128,255,174,255,95,0,221,0,145,0,170,255,81,255,232,255,21,1, +16,2,167,1,100,0,244,255,57,0,113,0,151,0,77,0,169,255,43,255,166,254,180,254,216,255,90,0,117,255,42,255, +25,0,91,0,17,255,223,253,52,254,35,255,201,255,162,0,147,0,243,254,164,254,243,255,96,255,238,253,167,254,136,255, +66,255,17,0,36,1,162,0,134,0,117,1,177,0,126,254,39,254,167,255,75,0,64,0,252,0,59,1,169,0,30,1, +50,1,63,255,219,254,17,1,44,1,52,255,158,255,84,1,239,0,120,255,128,254,143,253,96,253,172,254,124,255,127,254, +186,253,134,254,72,255,41,255,30,255,120,255,80,0,60,1,142,0,32,255,135,255,113,0,1,0,42,0,60,1,60,1, +249,0,56,1,199,0,63,0,98,0,100,0,215,0,174,1,16,1,7,0,159,0,41,1,59,0,67,255,182,254,71,254, +148,254,30,255,243,254,31,255,88,0,249,0,51,0,13,0,143,1,147,2,217,1,212,0,23,0,92,255,146,255,47,0, +55,255,215,253,53,254,9,255,67,255,250,255,152,0,32,0,2,0,230,0,131,1,133,1,15,1,69,0,94,0,242,0, +170,255,145,253,251,253,252,255,90,0,178,255,111,0,152,1,175,0,196,254,245,254,113,0,179,255,98,253,54,253,10,255, +195,255,82,255,242,255,37,1,152,0,7,255,240,254,145,255,49,255,19,255,176,255,148,255,214,255,103,1,172,1,133,0, +205,0,154,1,47,1,60,1,126,1,42,0,123,255,159,0,92,0,245,254,163,255,117,0,23,255,248,254,35,1,81,1, +148,255,206,255,213,0,182,255,58,254,120,254,47,255,52,255,217,254,144,254,169,254,23,255,139,255,248,255,64,0,64,0, +3,0,197,255,249,255,65,0,172,255,9,255,125,255,243,255,234,255,108,0,51,1,126,1,52,1,45,0,214,255,9,1, +26,1,137,255,34,255,27,255,104,254,152,255,86,1,87,0,139,255,243,0,249,0,81,255,249,254,163,255,228,255,173,255, +69,255,110,255,190,255,36,255,169,254,192,254,149,254,90,255,186,0,236,255,154,254,140,255,228,255,67,254,17,254,38,255, +210,254,81,254,8,255,120,255,10,255,94,254,238,253,196,254,105,0,128,0,172,255,118,0,26,1,38,255,211,253,185,255, +52,1,5,0,22,255,114,255,15,255,2,254,236,253,185,254,82,255,133,255,245,255,156,0,204,0,230,0,40,1,127,0, +153,255,77,0,63,1,184,0,103,0,38,1,32,1,2,0,148,255,241,0,236,2,212,2,152,0,90,255,176,255,156,255, +147,255,105,0,191,0,88,0,4,0,89,255,227,254,194,255,115,0,144,255,193,254,25,255,37,255,53,254,128,253,248,253, +96,255,140,0,30,0,140,254,26,254,43,255,239,255,240,255,147,255,176,254,219,254,249,0,182,1,253,255,177,255,177,0, +105,255,185,253,159,254,224,255,52,0,48,1,196,1,132,0,125,255,64,0,152,1,47,2,216,1,6,1,23,0,28,255, +189,254,175,255,231,0,144,0,233,254,29,254,194,254,12,255,187,254,99,255,25,0,38,255,42,254,147,254,86,255,112,0, +152,1,233,0,118,255,181,255,86,0,18,0,57,0,126,0,17,0,28,0,115,0,245,255,210,255,198,0,31,1,52,0, +82,255,68,255,174,255,10,0,55,0,58,0,20,0,215,255,78,255,232,254,41,0,81,2,33,2,180,255,121,254,8,255, +163,255,237,255,170,255,127,254,228,253,54,255,16,1,28,1,150,255,11,255,23,0,150,0,26,0,22,0,39,0,180,255, +178,255,208,255,77,255,114,255,155,0,43,1,15,1,37,1,4,1,184,0,254,0,100,1,131,1,219,1,204,1,176,0, +117,0,50,2,39,3,199,1,130,0,66,0,93,255,127,254,15,255,118,255,219,254,31,255,86,0,104,0,91,255,231,254, +119,255,169,0,245,1,183,1,133,255,132,254,33,0,191,0,247,254,216,253,194,253,87,253,221,253,226,254,131,254,71,254, +104,254,24,253,24,253,144,255,184,255,24,254,254,254,145,255,4,254,216,254,8,1,80,0,76,255,65,0,145,0,10,0, +237,255,136,255,146,255,165,0,4,1,160,0,186,0,229,0,76,1,163,2,103,3,72,2,248,0,106,1,188,2,225,2, +43,2,48,2,54,2,38,1,45,0,226,255,190,255,57,0,190,0,230,255,49,255,65,0,39,1,69,0,203,254,40,254, +214,254,2,0,249,255,220,254,121,254,58,255,27,0,62,0,130,255,19,255,205,255,51,0,51,255,161,254,164,255,150,0, +119,0,41,0,181,255,129,254,126,253,219,253,2,255,176,255,156,255,75,255,21,255,226,254,77,255,215,0,123,1,179,255, +165,254,160,0,43,2,12,1,20,0,39,0,59,255,31,254,224,254,57,0,47,0,200,255,143,0,78,1,176,0,76,0, +45,1,139,1,246,0,217,0,215,0,121,0,179,0,14,1,136,0,221,255,151,255,133,255,174,255,154,255,75,255,104,255, +61,255,164,254,213,254,241,254,5,254,14,254,117,255,40,0,233,255,80,255,186,254,93,255,62,0,64,255,62,254,46,255, +255,255,207,255,244,255,178,255,97,254,210,253,11,255,136,0,129,0,154,255,205,255,143,0,114,0,246,0,123,2,94,2, +9,1,216,0,184,0,15,0,207,0,20,2,165,1,197,0,199,0,135,0,235,255,34,0,204,0,196,0,53,0,235,255, +222,255,219,255,59,0,162,0,56,0,161,255,200,255,188,255,5,255,29,255,20,0,249,255,241,254,30,255,72,0,153,0, +120,0,22,1,172,1,94,1,147,0,206,255,192,255,91,0,60,0,220,255,191,0,78,1,106,0,63,0,202,0,149,0, +35,1,22,2,228,0,214,255,247,0,195,0,27,255,158,255,125,0,190,255,159,0,147,2,184,1,26,0,87,0,253,255, +47,255,62,0,130,0,136,254,176,254,57,1,76,1,208,255,118,0,14,1,166,255,52,255,40,0,57,0,63,0,208,0, +85,0,184,255,13,0,128,255,168,254,253,255,167,1,39,1,4,0,122,255,226,254,225,254,218,255,59,0,149,255,77,255, +180,255,39,0,228,0,183,1,89,1,136,0,59,1,10,2,249,0,38,0,205,0,111,0,235,254,185,254,151,255,57,0, +212,0,20,1,121,0,197,255,181,255,76,0,206,0,141,0,78,0,135,0,81,0,18,0,94,0,222,255,217,254,47,255, +204,255,32,255,150,254,53,255,242,255,219,255,231,254,119,254,204,255,26,1,85,0,25,255,98,255,13,0,151,255,247,254, +148,255,75,0,164,255,68,255,128,0,10,1,234,255,198,255,68,1,5,2,87,1,147,0,132,0,222,0,23,1,50,1, +27,1,46,0,52,255,236,255,32,1,148,0,210,255,163,0,203,0,24,255,104,254,172,255,75,0,212,255,236,255,236,255, +12,255,251,254,236,255,204,255,3,255,122,255,0,0,213,254,196,253,161,254,240,255,56,0,21,0,195,255,60,255,156,255, +124,0,3,0,101,255,176,0,178,1,105,0,101,255,43,0,168,0,6,0,127,255,193,255,144,0,205,0,217,255,224,254, +182,254,72,255,182,0,142,1,183,0,175,0,19,2,228,1,192,0,170,0,214,255,177,254,167,255,81,0,70,255,130,255, +79,0,149,255,135,255,128,0,105,0,35,0,5,0,50,255,82,255,108,0,112,0,113,0,12,1,84,0,38,255,23,255, +41,255,105,255,29,0,221,255,42,255,52,255,10,255,200,254,77,255,126,255,1,255,242,254,60,255,140,255,249,255,252,255, +150,255,102,255,93,255,115,255,147,255,68,255,59,255,126,0,213,1,106,1,5,0,206,255,223,0,151,1,137,1,24,1, +19,0,106,255,113,0,152,1,1,1,244,255,181,255,236,255,206,0,201,1,97,1,178,0,114,1,249,1,230,0,27,0, +121,0,112,0,210,255,154,255,73,255,89,254,146,253,133,253,126,254,43,0,117,0,223,254,120,254,32,0,247,0,109,0, +96,0,212,0,23,1,10,1,98,0,245,255,164,0,7,1,100,0,241,255,119,255,151,254,232,254,64,0,113,0,188,255, +196,255,42,0,225,255,58,255,50,255,189,255,180,255,94,255,246,255,52,0,17,255,228,254,243,255,141,255,166,254,91,255, +165,255,111,254,18,254,55,255,135,0,9,1,69,0,79,255,98,255,168,255,215,255,151,0,236,0,119,0,83,0,67,0, +22,0,108,0,132,0,80,0,216,0,248,0,251,255,167,255,53,0,138,0,189,0,127,0,253,255,141,0,66,1,175,0, +45,0,62,0,228,255,5,0,230,0,188,0,231,255,212,255,134,255,206,254,137,255,1,1,236,0,0,0,106,255,133,254, +112,254,94,0,113,1,61,0,225,255,204,0,192,0,210,0,181,1,227,0,207,254,160,254,242,255,68,0,65,255,67,254, +111,254,164,255,187,0,244,0,103,0,205,255,169,255,111,255,17,255,108,255,190,255,7,255,192,254,165,255,7,0,155,255, +121,255,145,255,211,255,141,0,235,0,133,0,115,0,212,0,136,0,245,255,115,0,64,1,186,0,190,255,8,0,248,0, +49,1,213,0,111,0,38,0,14,0,233,255,175,255,254,255,204,0,31,1,162,0,238,255,144,255,158,255,186,255,122,255, +4,255,176,254,173,254,24,255,97,255,15,255,86,255,101,0,239,255,94,254,192,254,250,255,138,255,126,255,206,0,173,0, +110,255,120,255,209,255,155,255,19,0,200,0,106,0,122,255,16,255,143,255,75,0,77,0,61,0,28,1,251,1,208,1, +8,1,62,0,191,255,227,255,170,0,82,1,238,0,0,0,219,255,253,255,103,255,19,255,133,255,164,255,137,255,255,255, +45,0,114,255,43,255,54,0,253,0,75,0,152,255,220,255,4,0,62,0,58,1,148,1,215,0,105,0,38,0,200,255, +55,0,199,0,127,0,17,0,130,255,225,254,96,255,60,0,79,0,9,1,72,2,185,1,66,0,231,255,115,255,125,254, +14,255,123,0,77,0,117,255,251,255,236,0,233,0,117,0,247,255,101,255,108,255,89,0,24,1,121,0,225,254,232,253, +234,253,54,254,7,255,217,255,42,255,73,254,18,255,106,255,35,254,202,253,152,254,153,254,199,254,56,0,250,0,219,255, +121,254,71,254,183,254,14,255,220,255,2,1,56,1,196,0,133,0,15,0,246,255,10,1,146,1,185,0,94,0,206,0, +213,0,167,0,131,0,73,0,169,0,119,1,136,1,52,1,138,1,247,1,116,1,147,0,68,0,251,255,90,255,119,255, +63,0,57,0,211,255,81,0,178,0,10,0,151,255,12,0,154,0,203,0,137,0,249,255,238,255,105,0,110,0,43,0, +23,0,152,255,37,255,135,255,75,255,3,254,227,253,255,254,108,255,80,255,81,255,28,255,248,254,245,254,221,254,17,255, +3,255,159,254,170,255,74,1,199,0,134,255,195,255,10,0,204,255,133,0,101,1,242,0,72,0,106,0,41,0,16,255, +236,254,69,0,252,0,78,0,170,255,132,255,211,255,145,0,146,0,234,255,39,0,159,0,104,0,176,0,255,0,227,255, +199,254,17,255,243,255,203,0,24,1,66,0,95,255,191,255,186,0,54,1,59,1,239,0,243,255,11,255,181,255,240,0, +193,0,32,0,63,0,28,0,227,255,66,0,30,0,162,255,232,255,10,0,187,255,184,255,62,255,165,254,68,255,193,255, +121,255,41,0,183,0,111,255,175,254,179,255,82,0,51,0,55,0,230,255,243,255,62,1,249,1,18,1,38,0,223,255, +164,255,164,255,239,255,244,255,129,255,236,254,5,255,185,255,116,255,119,254,27,255,231,0,67,1,67,0,174,255,42,0, +26,1,62,1,109,0,216,255,204,255,1,0,103,0,25,0,53,255,41,255,134,255,205,255,231,0,109,1,82,0,75,0, +141,1,59,1,90,0,217,0,221,0,210,255,224,255,255,0,14,1,199,255,19,255,175,255,47,0,75,0,217,0,204,0, +176,255,133,255,90,0,82,0,136,255,254,254,45,255,64,0,254,0,169,0,135,0,184,0,132,0,200,0,89,1,200,0, +251,255,18,0,12,0,205,255,46,0,125,0,59,0,17,0,196,255,29,255,11,255,110,255,90,255,134,255,86,0,120,0, +244,255,49,0,231,0,27,1,197,0,33,0,244,255,156,0,226,0,167,0,222,0,115,0,47,255,140,255,51,1,99,1, +214,0,31,1,198,0,79,255,230,254,6,0,196,0,98,0,21,0,90,0,58,0,142,255,101,255,213,255,24,0,82,0, +206,0,224,0,110,0,93,0,96,0,153,255,8,255,104,255,140,255,144,255,53,0,29,0,65,255,114,255,210,255,137,255, +62,0,46,1,155,0,62,0,163,0,218,255,176,254,201,254,187,255,27,1,205,1,125,0,248,254,27,255,185,255,228,255, +172,255,13,255,43,255,99,0,193,0,227,255,124,255,159,255,143,255,198,255,54,0,224,255,14,255,217,254,23,255,56,255, +129,255,188,255,101,255,70,255,229,255,57,0,205,255,82,255,32,255,53,255,97,255,104,255,154,255,220,255,160,255,146,255, +86,0,222,0,147,0,54,0,240,255,158,255,149,255,157,255,93,255,102,255,163,255,21,255,139,254,141,255,203,0,152,0, +56,0,81,0,224,255,206,255,185,0,232,0,142,0,187,0,10,0,227,254,125,255,91,0,193,255,126,255,247,255,219,255, +231,255,80,0,207,255,49,255,185,255,70,0,218,255,89,255,115,255,139,255,83,255,170,255,230,0,171,1,18,1,42,0, +10,0,98,0,194,0,61,1,89,1,170,0,18,0,27,0,224,255,78,255,65,255,110,255,25,255,102,254,4,254,184,254, +219,255,199,255,23,255,73,255,169,255,216,255,112,0,73,0,14,255,205,254,207,255,113,0,77,0,221,255,201,255,110,0, +219,0,132,0,68,0,114,0,219,0,108,1,134,1,234,0,50,0,220,255,92,0,53,1,241,0,254,255,236,255,37,0, +220,255,201,255,203,255,166,255,93,0,41,1,9,0,104,254,218,254,227,255,150,255,208,255,14,1,110,0,139,254,202,254, +242,255,118,255,82,255,195,0,19,1,146,255,207,254,134,255,243,255,81,255,187,254,4,255,127,255,109,255,27,255,40,255, +150,255,194,255,159,255,52,0,73,1,27,1,220,255,97,255,156,255,142,255,153,255,15,0,38,0,185,255,181,255,48,0, +38,0,153,255,149,255,30,0,105,0,89,0,68,0,99,0,135,0,87,0,66,0,129,0,122,0,161,0,104,1,92,1, +103,0,89,0,197,0,87,0,187,255,108,255,82,255,0,0,241,0,239,0,137,0,161,0,156,0,245,255,164,255,69,0, +85,0,36,255,231,254,241,255,193,255,207,254,26,255,127,255,28,255,4,255,2,255,205,254,41,255,208,255,72,0,113,0, +156,255,162,254,255,254,161,255,165,255,16,0,89,0,204,255,1,0,21,1,19,1,77,0,98,0,187,0,88,0,34,0, +184,0,19,1,213,0,214,0,192,0,205,255,70,255,21,0,147,0,63,0,178,0,70,1,114,0,216,255,115,0,16,0, +200,254,23,255,73,0,142,0,108,0,6,0,79,255,136,255,32,0,216,255,31,0,37,1,167,0,93,255,174,255,162,0, +99,0,164,255,162,255,28,0,94,0,164,0,30,1,254,0,84,0,19,0,247,255,217,255,55,0,60,0,178,255,242,255, +75,0,155,255,120,255,46,0,208,255,12,255,174,255,188,0,212,0,140,0,115,0,251,255,43,255,43,255,252,255,48,0, +191,255,168,255,174,255,150,255,174,255,122,255,247,254,241,254,84,255,212,255,25,0,100,255,203,254,228,255,41,1,30,1, +253,0,1,1,68,0,153,255,180,255,247,255,80,0,185,0,156,0,40,0,177,255,216,254,250,253,67,254,180,255,191,0, +92,0,158,255,218,255,90,0,25,0,225,255,56,0,46,0,182,255,178,255,237,255,6,0,64,0,52,0,182,255,221,255, +132,0,70,0,186,255,90,0,31,1,103,0,84,255,212,255,14,1,52,1,245,0,46,1,161,0,183,255,109,0,114,1, +209,0,7,0,255,255,154,255,44,255,70,255,121,255,1,0,118,0,14,0,186,255,202,255,121,255,143,255,2,0,86,255, +166,254,85,255,195,255,54,255,184,254,24,254,109,253,251,253,73,255,171,255,83,255,156,255,32,0,142,255,213,254,71,255, +152,255,101,255,50,0,212,0,235,255,169,255,139,0,131,0,82,0,213,0,121,0,212,255,44,0,29,0,245,255,102,1, +104,2,111,1,4,1,146,1,195,0,162,255,64,0,24,1,250,0,17,1,27,1,80,0,40,0,53,1,181,1,103,1, +107,1,31,1,207,255,10,255,217,255,159,0,33,0,106,255,83,255,120,255,212,255,76,0,31,0,137,255,76,255,56,255, +92,255,242,255,21,0,133,255,104,255,216,255,238,255,157,255,80,255,23,255,250,254,37,255,101,255,64,255,252,254,59,255, +132,255,106,255,132,255,181,255,201,255,98,0,217,0,125,0,147,0,8,1,103,0,117,255,23,255,210,254,39,255,236,255, +198,255,142,255,55,0,130,0,63,0,64,0,92,0,171,0,2,1,153,0,63,0,130,0,17,0,84,255,246,255,251,0, +206,0,110,0,217,0,246,0,48,0,243,255,180,0,223,0,23,0,159,255,197,255,60,0,175,0,61,0,75,255,33,255, +78,255,104,255,37,0,161,0,223,255,117,255,80,0,253,0,189,0,43,0,194,255,207,255,96,0,254,0,37,1,150,0, +162,255,58,255,233,255,180,0,103,0,184,255,226,255,245,255,241,254,111,254,96,255,251,255,132,255,79,255,145,255,124,255, +67,255,45,255,14,255,83,255,237,255,206,255,74,255,133,255,203,255,144,255,38,0,38,1,179,0,193,255,18,0,171,0, +150,0,159,0,222,0,144,0,224,255,165,255,247,255,13,0,190,255,226,255,112,0,125,0,48,0,41,0,45,0,7,0, +28,0,93,0,42,0,176,255,246,255,201,0,235,0,169,0,217,0,214,0,108,0,59,0,213,255,77,255,151,255,240,255, +107,255,25,255,107,255,146,255,170,255,224,255,169,255,71,255,108,255,202,255,237,255,244,255,205,255,107,255,116,255,234,255, +189,255,47,255,113,255,237,255,247,255,60,0,63,0,158,255,247,255,26,1,14,1,84,0,233,255,124,255,216,255,235,0, +245,0,167,0,60,1,80,1,189,0,220,0,237,0,113,0,124,0,186,0,127,0,83,0,32,0,179,255,180,255,23,0, +100,0,141,0,55,0,162,255,237,255,215,0,37,1,220,0,124,0,246,255,127,255,103,255,118,255,150,255,226,255,220,255, +63,255,247,254,119,255,209,255,154,255,79,255,254,254,222,254,104,255,253,255,248,255,227,255,213,255,143,255,137,255,118,255, +188,254,176,254,24,0,253,0,89,0,184,255,13,0,190,0,40,1,2,1,148,0,80,0,6,0,217,255,99,0,203,0, +21,0,127,255,233,255,32,0,5,0,121,0,168,0,28,0,14,0,82,0,253,255,252,255,187,0,244,0,155,0,156,0, +183,0,164,0,197,0,215,0,116,0,40,0,79,0,96,0,61,0,97,0,118,0,232,255,114,255,165,255,165,255,70,255, +119,255,240,255,198,255,119,255,176,255,212,255,119,255,63,255,94,255,70,255,54,255,168,255,233,255,186,255,235,255,243,255, +254,254,107,254,43,255,185,255,65,255,225,254,39,255,94,255,6,255,140,254,139,254,240,254,88,255,168,255,246,255,97,0, +169,0,81,0,202,255,217,255,88,0,217,0,26,1,242,0,176,0,85,0,228,255,83,0,43,1,150,0,140,255,225,255, +108,0,103,0,181,0,217,0,114,0,105,0,129,0,86,0,98,0,75,0,8,0,117,0,245,0,128,0,251,255,74,0, +201,0,219,0,185,0,128,0,253,255,176,255,39,0,116,0,215,255,69,255,97,255,185,255,5,0,1,0,184,255,153,255, +62,255,163,254,215,254,101,255,14,255,189,254,127,255,69,0,5,0,63,255,233,254,32,255,82,255,142,255,14,0,247,255, +244,254,73,254,171,254,97,255,190,255,198,255,182,255,183,255,251,255,135,0,213,0,158,0,78,0,236,255,132,255,220,255, +185,0,216,0,96,0,60,0,55,0,237,255,199,255,239,255,11,0,40,0,104,0,26,0,26,255,209,254,168,255,53,0, +15,0,243,255,253,255,15,0,79,0,182,0,17,1,235,0,108,0,139,0,237,0,145,0,24,0,36,0,55,0,65,0, +44,0,186,255,134,255,178,255,197,255,253,255,33,0,193,255,183,255,37,0,36,0,10,0,123,0,243,0,216,0,52,0, +178,255,194,255,218,255,253,255,133,0,107,0,142,255,128,255,64,0,199,0,251,0,110,0,61,255,22,255,14,0,89,0, +235,255,13,0,156,0,175,0,97,0,32,0,175,255,42,255,60,255,160,255,201,255,250,255,241,255,67,255,218,254,63,255, +133,255,43,255,203,254,28,255,242,255,78,0,6,0,223,255,235,255,230,255,228,255,217,255,220,255,236,255,206,255,18,0, +189,0,105,0,85,255,47,255,170,255,201,255,214,255,221,255,155,255,146,255,18,0,146,0,119,0,14,0,29,0,118,0, +150,0,193,0,219,0,155,0,140,0,173,0,133,0,117,0,132,0,80,0,101,0,231,0,229,0,53,0,177,255,215,255, +41,0,1,0,253,255,138,0,84,0,68,255,91,255,143,0,209,0,237,255,68,255,81,255,159,255,193,255,161,255,116,255, +125,255,150,255,109,255,109,255,201,255,177,255,106,255,242,255,70,0,165,255,150,255,67,0,66,0,253,255,76,0,132,0, +48,0,195,255,172,255,231,255,13,0,22,0,53,0,25,0,223,255,9,0,104,0,189,0,238,0,167,0,93,0,150,0, +179,0,103,0,18,0,192,255,164,255,209,255,191,255,146,255,188,255,250,255,37,0,100,0,168,0,240,0,247,0,130,0, +27,0,44,0,73,0,242,255,98,255,89,255,163,255,141,255,196,255,113,0,49,0,141,255,243,255,83,0,47,0,135,0, +172,0,83,0,162,0,212,0,10,0,150,255,214,255,242,255,255,255,13,0,186,255,26,255,181,254,6,255,102,255,3,255, +235,254,147,255,135,255,41,255,185,255,243,255,57,255,43,255,197,255,226,255,1,0,111,0,117,0,102,0,181,0,153,0, +20,0,32,0,77,0,9,0,101,0,65,1,21,1,81,0,17,0,231,255,177,255,196,255,224,255,49,0,154,0,82,0, +228,255,23,0,58,0,49,0,103,0,75,0,248,255,53,0,98,0,203,255,60,255,53,255,6,255,153,254,196,254,116,255, +189,255,173,255,188,255,193,255,234,255,66,0,49,0,253,255,25,0,17,0,8,0,49,0,235,255,164,255,241,255,235,255, +127,255,125,255,151,255,159,255,222,255,231,255,172,255,155,255,147,255,160,255,1,0,148,0,235,0,134,0,23,0,181,0, +29,1,76,0,3,0,161,0,171,0,130,0,183,0,148,0,102,0,160,0,179,0,142,0,95,0,57,0,112,0,194,0, +202,0,174,0,68,0,178,255,130,255,69,255,231,254,69,255,20,0,136,0,155,0,45,0,137,255,110,255,155,255,174,255, +240,255,35,0,245,255,193,255,202,255,13,0,66,0,2,0,153,255,147,255,219,255,33,0,15,0,170,255,174,255,41,0, +97,0,104,0,128,0,36,0,141,255,184,255,93,0,108,0,245,255,151,255,103,255,145,255,31,0,81,0,240,255,219,255, +93,0,210,0,137,0,125,255,243,254,134,255,196,255,126,255,233,255,42,0,168,255,211,255,67,0,202,255,139,255,214,255, +188,255,250,255,170,0,110,0,161,255,108,255,162,255,209,255,3,0,102,0,174,0,11,0,255,254,13,255,244,255,121,0, +173,0,241,0,229,0,134,0,152,0,13,1,169,0,191,255,2,0,182,0,109,0,50,0,59,0,139,255,67,255,249,255, +72,0,79,0,125,0,38,0,28,0,226,0,246,0,78,0,12,0,14,0,67,0,185,0,174,0,37,0,207,255,167,255, +145,255,165,255,204,255,210,255,185,255,238,255,77,0,229,255,56,255,128,255,232,255,143,255,100,255,179,255,241,255,41,0, +36,0,220,255,252,255,68,0,69,0,160,0,1,1,112,0,204,255,254,255,20,0,207,255,9,0,54,0,167,255,81,255, +140,255,121,255,21,255,226,254,243,254,89,255,143,255,67,255,134,255,88,0,49,0,126,255,156,255,231,255,193,255,179,255, +191,255,205,255,12,0,31,0,230,255,238,255,59,0,69,0,27,0,83,0,171,0,100,0,44,0,169,0,175,0,36,0, +78,0,145,0,45,0,29,0,101,0,116,0,171,0,171,0,81,0,182,0,64,1,156,0,205,255,220,255,26,0,43,0, +123,0,10,1,39,1,96,0,113,255,30,255,57,255,178,255,81,0,70,0,216,255,231,255,87,0,159,0,76,0,159,255, +183,255,62,0,239,255,121,255,148,255,121,255,108,255,221,255,207,255,55,255,243,254,25,255,186,255,80,0,182,255,191,254, +227,254,96,255,97,255,150,255,247,255,228,255,206,255,25,0,35,0,187,255,161,255,244,255,30,0,45,0,77,0,3,0, +129,255,144,255,227,255,250,255,76,0,195,0,144,0,1,0,229,255,3,0,37,0,119,0,124,0,19,0,15,0,100,0, +121,0,155,0,196,0,145,0,114,0,69,0,189,255,1,0,227,0,122,0,124,255,191,255,70,0,18,0,0,0,31,0, +2,0,25,0,90,0,65,0,6,0,248,255,227,255,217,255,50,0,96,0,157,255,229,254,113,255,66,0,62,0,227,255, +136,255,71,255,78,255,21,255,223,254,158,255,86,0,10,0,197,255,182,255,53,255,12,255,124,255,166,255,206,255,103,0, +184,0,144,0,125,0,123,0,47,0,184,255,150,255,210,255,225,255,178,255,169,255,202,255,13,0,117,0,153,0,53,0, +172,255,140,255,229,255,52,0,73,0,141,0,203,0,151,0,122,0,160,0,107,0,57,0,159,0,216,0,96,0,218,255, +195,255,20,0,103,0,69,0,29,0,125,0,207,0,166,0,146,0,182,0,191,0,188,0,168,0,108,0,52,0,0,0, +227,255,39,0,102,0,45,0,251,255,26,0,69,0,101,0,39,0,127,255,103,255,3,0,47,0,203,255,167,255,244,255, +91,0,109,0,14,0,189,255,159,255,131,255,133,255,160,255,229,255,101,0,45,0,23,255,225,254,175,255,244,255,222,255, +224,255,55,255,122,254,170,254,7,255,60,255,206,255,55,0,32,0,43,0,69,0,21,0,255,255,16,0,238,255,220,255, +27,0,89,0,96,0,83,0,75,0,86,0,124,0,134,0,86,0,47,0,68,0,101,0,123,0,150,0,179,0,218,0, +226,0,132,0,28,0,58,0,126,0,113,0,125,0,196,0,169,0,36,0,227,255,11,0,29,0,197,255,96,255,128,255, +246,255,41,0,250,255,154,255,78,255,120,255,215,255,188,255,93,255,84,255,104,255,60,255,35,255,135,255,1,0,183,255, +4,255,30,255,181,255,203,255,208,255,248,255,146,255,47,255,156,255,4,0,203,255,127,255,135,255,243,255,120,0,119,0, +6,0,168,255,110,255,137,255,12,0,96,0,66,0,29,0,37,0,69,0,89,0,44,0,207,255,181,255,254,255,43,0, +237,255,162,255,138,255,140,255,201,255,22,0,242,255,200,255,37,0,112,0,71,0,12,0,221,255,3,0,158,0,187,0, +40,0,243,255,23,0,17,0,77,0,115,0,221,255,153,255,59,0,124,0,43,0,38,0,2,0,143,255,197,255,102,0, +119,0,65,0,32,0,232,255,236,255,29,0,222,255,128,255,144,255,187,255,198,255,228,255,250,255,200,255,105,255,84,255, +184,255,239,255,164,255,135,255,197,255,177,255,81,255,83,255,179,255,191,255,107,255,137,255,35,0,74,0,42,0,97,0, +61,0,141,255,148,255,83,0,141,0,78,0,95,0,143,0,82,0,246,255,53,0,206,0,227,0,143,0,129,0,156,0, +81,0,173,255,90,255,149,255,207,255,221,255,22,0,17,0,143,255,76,255,103,255,127,255,220,255,47,0,213,255,116,255, +153,255,214,255,8,0,32,0,2,0,14,0,13,0,124,255,31,255,106,255,152,255,195,255,65,0,31,0,92,255,77,255, +213,255,233,255,173,255,129,255,106,255,196,255,77,0,52,0,204,255,212,255,254,255,24,0,86,0,106,0,58,0,7,0, +179,255,125,255,199,255,232,255,125,255,56,255,87,255,133,255,187,255,231,255,243,255,254,255,236,255,198,255,228,255,51,0, +80,0,28,0,213,255,237,255,77,0,101,0,92,0,158,0,212,0,192,0,173,0,157,0,125,0,114,0,100,0,56,0, +46,0,59,0,6,0,203,255,234,255,17,0,250,255,237,255,223,255,188,255,221,255,20,0,231,255,179,255,185,255,200,255, +57,0,227,0,214,0,98,0,89,0,70,0,226,255,209,255,20,0,28,0,249,255,1,0,27,0,245,255,165,255,122,255, +101,255,105,255,185,255,247,255,222,255,197,255,156,255,101,255,185,255,37,0,215,255,176,255,87,0,170,0,71,0,31,0, +76,0,77,0,68,0,84,0,68,0,2,0,199,255,212,255,9,0,6,0,228,255,11,0,106,0,192,0,241,0,172,0, +21,0,6,0,127,0,177,0,168,0,167,0,92,0,8,0,25,0,34,0,27,0,113,0,159,0,90,0,82,0,98,0, +250,255,209,255,96,0,146,0,2,0,205,255,56,0,87,0,15,0,227,255,179,255,135,255,197,255,22,0,13,0,250,255, +216,255,106,255,64,255,169,255,250,255,226,255,200,255,219,255,232,255,187,255,92,255,51,255,152,255,56,0,103,0,0,0, +126,255,86,255,149,255,233,255,244,255,216,255,225,255,225,255,190,255,220,255,46,0,58,0,34,0,66,0,113,0,112,0, +92,0,122,0,202,0,235,0,160,0,37,0,225,255,249,255,20,0,233,255,205,255,232,255,201,255,140,255,184,255,34,0, +52,0,217,255,159,255,9,0,120,0,53,0,2,0,88,0,90,0,47,0,153,0,168,0,234,255,197,255,78,0,54,0, +180,255,142,255,98,255,32,255,97,255,246,255,41,0,239,255,194,255,194,255,158,255,120,255,215,255,100,0,124,0,110,0, +79,0,188,255,102,255,205,255,3,0,228,255,7,0,220,255,71,255,101,255,20,0,69,0,244,255,170,255,171,255,194,255, +133,255,123,255,41,0,139,0,33,0,244,255,29,0,248,255,219,255,8,0,39,0,59,0,61,0,1,0,229,255,19,0, +20,0,210,255,180,255,210,255,4,0,56,0,85,0,78,0,72,0,82,0,91,0,126,0,147,0,61,0,252,255,79,0, +128,0,66,0,75,0,101,0,19,0,3,0,97,0,91,0,252,255,224,255,252,255,17,0,23,0,9,0,15,0,62,0, +84,0,44,0,243,255,220,255,228,255,246,255,34,0,80,0,43,0,206,255,190,255,2,0,24,0,191,255,70,255,57,255, +185,255,50,0,26,0,204,255,224,255,51,0,80,0,39,0,223,255,166,255,153,255,159,255,154,255,168,255,225,255,39,0, +49,0,232,255,181,255,207,255,241,255,33,0,93,0,58,0,240,255,248,255,235,255,190,255,2,0,96,0,111,0,151,0, +173,0,85,0,24,0,50,0,65,0,82,0,126,0,108,0,26,0,13,0,77,0,31,0,157,255,210,255,120,0,135,0, +108,0,131,0,25,0,171,255,5,0,98,0,80,0,75,0,47,0,244,255,235,255,202,255,151,255,210,255,30,0,14,0, +13,0,40,0,244,255,173,255,219,255,56,0,10,0,121,255,99,255,190,255,200,255,170,255,245,255,72,0,21,0,198,255, +221,255,6,0,207,255,152,255,205,255,25,0,34,0,30,0,46,0,58,0,62,0,41,0,10,0,22,0,24,0,214,255, +192,255,239,255,224,255,202,255,7,0,12,0,222,255,44,0,125,0,58,0,253,255,241,255,192,255,206,255,21,0,9,0, +250,255,57,0,93,0,60,0,11,0,238,255,244,255,219,255,184,255,7,0,109,0,91,0,31,0,236,255,215,255,39,0, +99,0,34,0,2,0,23,0,229,255,174,255,155,255,108,255,90,255,152,255,248,255,76,0,64,0,224,255,188,255,227,255, +13,0,67,0,71,0,251,255,231,255,52,0,91,0,51,0,13,0,15,0,23,0,41,0,113,0,173,0,144,0,124,0, +169,0,182,0,163,0,130,0,5,0,150,255,253,255,154,0,114,0,252,255,238,255,4,0,6,0,39,0,53,0,249,255, +212,255,249,255,22,0,9,0,238,255,194,255,170,255,223,255,37,0,27,0,230,255,213,255,209,255,189,255,211,255,240,255, +169,255,74,255,92,255,171,255,204,255,194,255,196,255,224,255,215,255,160,255,188,255,32,0,41,0,4,0,32,0,34,0, +206,255,158,255,225,255,72,0,93,0,72,0,102,0,85,0,236,255,224,255,23,0,216,255,145,255,210,255,27,0,17,0, +246,255,236,255,222,255,190,255,201,255,40,0,97,0,48,0,235,255,188,255,188,255,1,0,43,0,34,0,46,0,251,255, +99,255,2,255,9,255,51,255,108,255,128,255,114,255,128,255,112,255,58,255,86,255,155,255,169,255,191,255,252,255,21,0, +251,255,196,255,143,255,137,255,183,255,243,255,11,0,209,255,136,255,140,255,174,255,199,255,4,0,41,0,248,255,215,255, +221,255,209,255,6,0,110,0,90,0,21,0,59,0,104,0,110,0,122,0,53,0,233,255,42,0,55,0,172,255,131,255, +199,255,192,255,169,255,191,255,189,255,153,255,113,255,116,255,180,255,218,255,221,255,251,255,7,0,242,255,203,255,120,255, +133,255,31,0,53,0,214,255,2,0,28,0,157,255,138,255,227,255,209,255,195,255,14,0,40,0,44,0,90,0,71,0, +9,0,28,0,63,0,47,0,56,0,70,0,16,0,224,255,251,255,53,0,71,0,237,255,127,255,176,255,2,0,180,255, +135,255,220,255,203,255,127,255,188,255,253,255,241,255,248,255,219,255,170,255,222,255,245,255,145,255,110,255,203,255,10,0, +6,0,12,0,32,0,10,0,218,255,209,255,206,255,156,255,159,255,16,0,90,0,41,0,241,255,4,0,45,0,61,0, +68,0,55,0,21,0,34,0,105,0,144,0,109,0,50,0,25,0,49,0,77,0,75,0,68,0,55,0,34,0,44,0, +77,0,95,0,95,0,57,0,18,0,51,0,105,0,105,0,81,0,56,0,18,0,225,255,177,255,185,255,234,255,210,255, +169,255,227,255,0,0,172,255,139,255,197,255,223,255,229,255,13,0,13,0,185,255,146,255,237,255,53,0,4,0,234,255, +23,0,31,0,9,0,247,255,200,255,175,255,218,255,10,0,251,255,191,255,203,255,76,0,129,0,22,0,216,255,7,0, +43,0,93,0,137,0,74,0,26,0,96,0,97,0,14,0,64,0,153,0,59,0,208,255,250,255,253,255,186,255,224,255, +38,0,43,0,61,0,34,0,186,255,171,255,232,255,239,255,222,255,187,255,154,255,222,255,27,0,228,255,228,255,69,0, +118,0,117,0,88,0,39,0,40,0,53,0,39,0,74,0,88,0,31,0,86,0,202,0,109,0,183,255,197,255,50,0, +61,0,52,0,83,0,37,0,183,255,183,255,26,0,64,0,48,0,59,0,74,0,69,0,40,0,219,255,159,255,198,255, +33,0,92,0,97,0,32,0,206,255,218,255,40,0,52,0,14,0,18,0,32,0,23,0,17,0,241,255,218,255,16,0, +35,0,225,255,231,255,34,0,6,0,230,255,249,255,222,255,193,255,219,255,222,255,220,255,8,0,17,0,225,255,228,255, +44,0,83,0,23,0,179,255,131,255,166,255,6,0,91,0,77,0,242,255,164,255,171,255,14,0,80,0,29,0,12,0, +102,0,123,0,35,0,238,255,237,255,227,255,220,255,242,255,39,0,81,0,53,0,236,255,209,255,17,0,95,0,75,0, +14,0,17,0,13,0,250,255,63,0,133,0,106,0,83,0,79,0,32,0,12,0,26,0,237,255,179,255,195,255,10,0, +32,0,204,255,125,255,156,255,194,255,191,255,228,255,6,0,244,255,251,255,23,0,18,0,4,0,238,255,232,255,43,0, +104,0,70,0,11,0,230,255,198,255,229,255,66,0,86,0,17,0,235,255,245,255,248,255,9,0,33,0,7,0,234,255, +0,0,5,0,208,255,167,255,193,255,30,0,133,0,135,0,42,0,252,255,25,0,34,0,19,0,43,0,55,0,246,255, +194,255,233,255,25,0,9,0,226,255,200,255,198,255,220,255,238,255,247,255,251,255,243,255,14,0,87,0,98,0,30,0, +6,0,33,0,39,0,32,0,35,0,29,0,20,0,18,0,25,0,34,0,28,0,8,0,244,255,224,255,202,255,178,255, +167,255,206,255,11,0,40,0,46,0,30,0,232,255,195,255,204,255,215,255,229,255,9,0,23,0,14,0,26,0,42,0, +32,0,29,0,57,0,69,0,23,0,231,255,232,255,232,255,207,255,205,255,223,255,217,255,198,255,203,255,240,255,23,0, +17,0,227,255,217,255,18,0,64,0,28,0,224,255,214,255,228,255,245,255,22,0,25,0,2,0,44,0,111,0,91,0, +39,0,42,0,49,0,23,0,12,0,41,0,70,0,54,0,18,0,247,255,216,255,220,255,42,0,94,0,57,0,16,0, +5,0,247,255,0,0,24,0,16,0,1,0,1,0,245,255,223,255,219,255,241,255,9,0,0,0,238,255,239,255,231,255, +216,255,215,255,206,255,209,255,243,255,237,255,203,255,230,255,9,0,246,255,226,255,228,255,237,255,7,0,18,0,2,0, +18,0,55,0,57,0,24,0,227,255,208,255,18,0,68,0,15,0,228,255,8,0,11,0,215,255,227,255,22,0,255,255, +207,255,235,255,15,0,239,255,213,255,228,255,233,255,235,255,252,255,8,0,25,0,30,0,245,255,231,255,17,0,2,0, +202,255,215,255,237,255,196,255,181,255,203,255,191,255,181,255,215,255,1,0,23,0,1,0,213,255,226,255,254,255,223,255, +217,255,249,255,210,255,161,255,203,255,244,255,234,255,237,255,239,255,226,255,239,255,242,255,199,255,160,255,166,255,200,255, +218,255,195,255,184,255,198,255,180,255,179,255,247,255,32,0,3,0,248,255,3,0,242,255,243,255,23,0,35,0,26,0, +50,0,61,0,10,0,239,255,42,0,85,0,50,0,16,0,14,0,1,0,239,255,248,255,14,0,12,0,245,255,251,255, +22,0,16,0,1,0,254,255,224,255,218,255,13,0,21,0,225,255,211,255,208,255,181,255,200,255,254,255,255,255,207,255, +176,255,187,255,214,255,223,255,225,255,226,255,207,255,184,255,187,255,204,255,223,255,235,255,229,255,210,255,194,255,211,255, +253,255,8,0,245,255,249,255,5,0,10,0,27,0,31,0,10,0,6,0,28,0,78,0,132,0,104,0,36,0,47,0, +77,0,48,0,20,0,240,255,182,255,207,255,36,0,45,0,18,0,35,0,32,0,247,255,238,255,255,255,247,255,236,255, +247,255,0,0,254,255,3,0,17,0,23,0,19,0,11,0,3,0,236,255,203,255,210,255,2,0,27,0,32,0,44,0, +24,0,237,255,249,255,32,0,24,0,3,0,7,0,3,0,247,255,2,0,24,0,36,0,44,0,40,0,11,0,243,255, +7,0,53,0,77,0,59,0,23,0,254,255,236,255,223,255,236,255,7,0,10,0,3,0,251,255,226,255,216,255,237,255, +246,255,253,255,7,0,241,255,222,255,251,255,20,0,15,0,7,0,3,0,10,0,16,0,249,255,242,255,23,0,48,0, +33,0,11,0,2,0,8,0,16,0,12,0,251,255,223,255,224,255,23,0,45,0,6,0,249,255,8,0,253,255,231,255, +227,255,239,255,236,255,201,255,215,255,40,0,51,0,253,255,10,0,16,0,202,255,179,255,217,255,221,255,217,255,231,255, +235,255,245,255,249,255,233,255,245,255,21,0,23,0,28,0,47,0,24,0,234,255,229,255,2,0,26,0,45,0,65,0, +77,0,73,0,32,0,236,255,248,255,52,0,54,0,10,0,255,255,251,255,252,255,39,0,65,0,41,0,34,0,38,0, +7,0,248,255,13,0,21,0,16,0,17,0,5,0,232,255,229,255,21,0,65,0,47,0,255,255,229,255,222,255,229,255, +243,255,236,255,222,255,225,255,221,255,216,255,232,255,249,255,246,255,240,255,249,255,19,0,43,0,46,0,27,0,252,255, +233,255,10,0,57,0,44,0,249,255,243,255,16,0,16,0,251,255,237,255,224,255,212,255,220,255,235,255,236,255,230,255, +233,255,250,255,12,0,20,0,25,0,24,0,19,0,26,0,19,0,242,255,244,255,13,0,255,255,2,0,43,0,35,0, +0,0,255,255,246,255,248,255,44,0,53,0,3,0,235,255,234,255,240,255,11,0,10,0,249,255,20,0,42,0,19,0, +254,255,252,255,251,255,252,255,247,255,254,255,23,0,33,0,18,0,2,0,249,255,255,255,2,0,252,255,6,0,10,0, +245,255,248,255,6,0,236,255,217,255,238,255,240,255,217,255,221,255,248,255,4,0,242,255,229,255,244,255,254,255,245,255, +252,255,5,0,248,255,247,255,13,0,26,0,29,0,32,0,28,0,4,0,238,255,250,255,10,0,250,255,239,255,0,0, +3,0,255,255,18,0,30,0,22,0,17,0,8,0,248,255,249,255,6,0,11,0,12,0,22,0,24,0,1,0,246,255, +19,0,50,0,48,0,35,0,25,0,10,0,0,0,0,0,254,255,249,255,241,255,236,255,241,255,0,0,16,0,25,0, +24,0,3,0,230,255,229,255,5,0,20,0,3,0,1,0,14,0,253,255,218,255,218,255,247,255,8,0,12,0,23,0, +19,0,0,0,9,0,28,0,10,0,252,255,9,0,1,0,247,255,5,0,251,255,226,255,248,255,29,0,28,0,7,0, +241,255,225,255,235,255,254,255,10,0,26,0,41,0,38,0,30,0,25,0,9,0,239,255,220,255,217,255,237,255,24,0, +45,0,25,0,18,0,35,0,24,0,3,0,7,0,255,255,245,255,9,0,18,0,0,0,251,255,254,255,254,255,18,0, +31,0,11,0,250,255,6,0,23,0,19,0,12,0,17,0,19,0,23,0,43,0,36,0,254,255,249,255,9,0,9,0, +17,0,11,0,232,255,233,255,252,255,229,255,228,255,14,0,24,0,14,0,8,0,235,255,228,255,7,0,9,0,245,255, +11,0,27,0,245,255,213,255,230,255,253,255,250,255,254,255,22,0,22,0,2,0,8,0,23,0,11,0,253,255,253,255, +254,255,11,0,24,0,18,0,11,0,16,0,9,0,248,255,243,255,246,255,245,255,238,255,239,255,0,0,2,0,229,255, +221,255,1,0,13,0,249,255,1,0,10,0,232,255,219,255,254,255,17,0,0,0,243,255,248,255,15,0,33,0,15,0, +240,255,233,255,240,255,242,255,243,255,249,255,2,0,6,0,12,0,20,0,8,0,239,255,241,255,251,255,248,255,253,255, +3,0,245,255,244,255,255,255,242,255,228,255,242,255,244,255,220,255,222,255,5,0,32,0,23,0,6,0,254,255,248,255, +249,255,8,0,23,0,28,0,22,0,3,0,249,255,10,0,32,0,27,0,0,0,244,255,6,0,22,0,12,0,252,255, +250,255,7,0,22,0,20,0,7,0,0,0,1,0,9,0,24,0,20,0,252,255,241,255,247,255,254,255,1,0,5,0, +8,0,7,0,3,0,5,0,6,0,251,255,253,255,11,0,7,0,246,255,241,255,246,255,4,0,16,0,8,0,242,255, +225,255,216,255,221,255,239,255,254,255,1,0,238,255,213,255,224,255,250,255,242,255,236,255,11,0,30,0,17,0,6,0, +5,0,11,0,28,0,40,0,27,0,5,0,246,255,236,255,230,255,238,255,246,255,242,255,239,255,248,255,248,255,242,255, +246,255,247,255,250,255,3,0,249,255,229,255,238,255,249,255,232,255,230,255,4,0,20,0,15,0,12,0,10,0,8,0, +12,0,8,0,254,255,248,255,250,255,4,0,13,0,12,0,11,0,12,0,3,0,250,255,1,0,10,0,6,0,2,0, +1,0,0,0,5,0,7,0,1,0,250,255,249,255,249,255,243,255,240,255,255,255,12,0,248,255,222,255,221,255,223,255, +227,255,245,255,251,255,238,255,246,255,14,0,26,0,29,0,25,0,14,0,12,0,10,0,252,255,251,255,7,0,5,0, +251,255,253,255,3,0,3,0,0,0,3,0,5,0,252,255,246,255,252,255,249,255,239,255,248,255,3,0,247,255,235,255, +239,255,238,255,233,255,245,255,17,0,33,0,22,0,3,0,255,255,3,0,0,0,2,0,9,0,5,0,250,255,253,255, +8,0,13,0,19,0,22,0,8,0,251,255,0,0,254,255,230,255,219,255,238,255,254,255,246,255,232,255,230,255,236,255, +244,255,242,255,234,255,244,255,15,0,16,0,250,255,247,255,5,0,8,0,7,0,11,0,10,0,5,0,4,0,3,0, +254,255,246,255,244,255,251,255,254,255,255,255,2,0,253,255,243,255,254,255,19,0,20,0,10,0,8,0,0,0,239,255, +229,255,235,255,249,255,254,255,249,255,254,255,10,0,7,0,247,255,245,255,252,255,252,255,247,255,241,255,231,255,224,255, +233,255,252,255,7,0,13,0,16,0,3,0,237,255,238,255,251,255,251,255,245,255,241,255,235,255,242,255,5,0,6,0, +249,255,247,255,251,255,249,255,249,255,251,255,254,255,254,255,248,255,252,255,12,0,8,0,242,255,233,255,242,255,249,255, +243,255,232,255,237,255,3,0,12,0,3,0,254,255,254,255,255,255,1,0,255,255,251,255,254,255,4,0,7,0,1,0, +240,255,230,255,248,255,9,0,3,0,252,255,254,255,251,255,254,255,13,0,20,0,10,0,254,255,0,0,14,0,20,0, +11,0,8,0,16,0,9,0,252,255,250,255,252,255,253,255,0,0,253,255,252,255,6,0,7,0,252,255,245,255,247,255, +252,255,2,0,1,0,250,255,249,255,252,255,253,255,255,255,3,0,3,0,248,255,236,255,238,255,250,255,0,0,252,255, +243,255,240,255,253,255,11,0,10,0,3,0,0,0,4,0,11,0,6,0,249,255,249,255,255,255,254,255,4,0,16,0, +12,0,4,0,3,0,254,255,248,255,253,255,3,0,7,0,11,0,10,0,5,0,253,255,246,255,250,255,5,0,4,0, +254,255,254,255,251,255,254,255,11,0,9,0,243,255,239,255,1,0,6,0,0,0,1,0,3,0,254,255,254,255,0,0, +251,255,246,255,247,255,253,255,3,0,4,0,251,255,245,255,247,255,250,255,2,0,16,0,19,0,8,0,254,255,251,255, +250,255,2,0,14,0,7,0,249,255,250,255,252,255,244,255,246,255,1,0,2,0,255,255,252,255,248,255,244,255,243,255, +249,255,255,255,251,255,244,255,246,255,247,255,244,255,251,255,3,0,253,255,247,255,251,255,253,255,251,255,2,0,8,0, +1,0,249,255,252,255,253,255,248,255,249,255,2,0,1,0,249,255,248,255,255,255,6,0,10,0,14,0,16,0,3,0, +249,255,1,0,7,0,0,0,1,0,10,0,11,0,9,0,5,0,251,255,249,255,255,255,3,0,4,0,4,0,4,0, +5,0,5,0,1,0,10,0,20,0,12,0,1,0,4,0,4,0,250,255,249,255,1,0,3,0,255,255,253,255,252,255, +252,255,252,255,249,255,243,255,247,255,2,0,6,0,3,0,2,0,3,0,6,0,11,0,12,0,6,0,250,255,241,255, +248,255,2,0,255,255,248,255,250,255,255,255,1,0,253,255,250,255,255,255,7,0,6,0,4,0,4,0,253,255,250,255, +0,0,0,0,253,255,2,0,6,0,0,0,254,255,255,255,253,255,254,255,255,255,254,255,254,255,0,0,255,255,255,255, +253,255,249,255,252,255,5,0,7,0,6,0,5,0,3,0,2,0,2,0,254,255,253,255,0,0,4,0,8,0,5,0, +0,0,6,0,11,0,4,0,254,255,2,0,0,0,252,255,252,255,249,255,248,255,250,255,249,255,250,255,254,255,0,0, +0,0,254,255,255,255,4,0,4,0,252,255,253,255,2,0,0,0,253,255,251,255,248,255,250,255,0,0,2,0,255,255, +253,255,253,255,255,255,253,255,252,255,0,0,6,0,6,0,2,0,255,255,254,255,2,0,4,0,3,0,6,0,6,0, +2,0,253,255,252,255,254,255,2,0,4,0,4,0,3,0,3,0,2,0,254,255,250,255,250,255,252,255,255,255,3,0, +5,0,4,0,4,0,8,0,8,0,4,0,0,0,255,255,254,255,253,255,254,255,1,0,2,0,253,255,254,255,4,0, +3,0,255,255,4,0,7,0,0,0,0,0,7,0,5,0,1,0,2,0,3,0,4,0,2,0,250,255,248,255,255,255, +1,0,255,255,2,0,5,0,3,0,1,0,0,0,1,0,2,0,254,255,254,255,3,0,2,0,254,255,2,0,7,0, +5,0,4,0,8,0,9,0,3,0,255,255,255,255,1,0,255,255,253,255,255,255,0,0,253,255,249,255,249,255,251,255, +250,255,249,255,250,255,252,255,253,255,253,255,251,255,0,0,8,0,6,0,0,0,0,0,255,255,251,255,254,255,0,0, +251,255,253,255,2,0,2,0,3,0,4,0,1,0,0,0,3,0,1,0,1,0,5,0,4,0,255,255,254,255,1,0, +2,0,1,0,255,255,254,255,0,0,1,0,0,0,254,255,0,0,3,0,254,255,250,255,255,255,3,0,255,255,255,255, +1,0,254,255,253,255,0,0,255,255,253,255,255,255,1,0,255,255,254,255,255,255,2,0,255,255,250,255,252,255,255,255, +253,255,253,255,255,255,255,255,0,0,1,0,255,255,254,255,3,0,3,0,1,0,5,0,5,0,255,255,253,255,254,255, +254,255,253,255,255,255,0,0,255,255,255,255,255,255,251,255,251,255,0,0,2,0,2,0,5,0,7,0,3,0,0,0, +1,0,1,0,2,0,3,0,0,0,254,255,0,0,255,255,252,255,252,255,2,0,4,0,1,0,1,0,4,0,2,0, +255,255,3,0,4,0,255,255,254,255,255,255,0,0,2,0,3,0,0,0,3,0,7,0,4,0,3,0,3,0,1,0, +3,0,6,0,0,0,251,255,253,255,0,0,1,0,4,0,4,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,1,0,3,0,4,0,1,0,3,0,5,0,255,255,251,255,253,255,252,255,251,255,255,255, +1,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,254,255,252,255,250,255,250,255,253,255,254,255,254,255, +0,0,2,0,2,0,1,0,255,255,253,255,0,0,2,0,0,0,255,255,2,0,2,0,0,0,254,255,252,255,252,255, +254,255,1,0,0,0,252,255,251,255,253,255,251,255,249,255,254,255,254,255,252,255,1,0,6,0,3,0,3,0,4,0, +255,255,253,255,3,0,5,0,5,0,8,0,5,0,254,255,253,255,0,0,1,0,1,0,0,0,255,255,255,255,252,255, +252,255,255,255,1,0,2,0,2,0,2,0,2,0,1,0,255,255,0,0,1,0,0,0,1,0,4,0,1,0,254,255, +253,255,254,255,255,255,2,0,4,0,4,0,1,0,255,255,1,0,4,0,1,0,0,0,3,0,3,0,1,0,1,0, +0,0,255,255,254,255,253,255,252,255,254,255,0,0,0,0,255,255,253,255,254,255,255,255,255,255,254,255,254,255,1,0, +3,0,2,0,2,0,4,0,2,0,2,0,4,0,3,0,254,255,253,255,254,255,253,255,1,0,3,0,254,255,253,255, +3,0,4,0,255,255,255,255,2,0,2,0,1,0,0,0,0,0,255,255,254,255,0,0,1,0,255,255,253,255,253,255, +253,255,0,0,1,0,253,255,254,255,2,0,2,0,0,0,0,0,1,0,2,0,2,0,253,255,251,255,255,255,2,0, +0,0,255,255,0,0,2,0,3,0,4,0,4,0,4,0,4,0,2,0,254,255,252,255,254,255,0,0,252,255,249,255, +252,255,1,0,1,0,253,255,249,255,251,255,0,0,2,0,2,0,1,0,0,0,1,0,1,0,255,255,255,255,1,0, +1,0,0,0,254,255,253,255,255,255,2,0,1,0,2,0,4,0,1,0,252,255,252,255,255,255,1,0,1,0,254,255, +251,255,251,255,255,255,2,0,255,255,254,255,1,0,1,0,0,0,3,0,6,0,3,0,2,0,2,0,254,255,255,255, +3,0,2,0,0,0,1,0,254,255,252,255,254,255,255,255,1,0,1,0,253,255,252,255,254,255,0,0,4,0,6,0, +1,0,254,255,0,0,1,0,2,0,3,0,1,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,2,0,4,0, +0,0,252,255,255,255,4,0,3,0,2,0,4,0,3,0,0,0,255,255,255,255,0,0,1,0,255,255,252,255,254,255, +0,0,255,255,255,255,254,255,254,255,2,0,3,0,2,0,3,0,5,0,255,255,252,255,0,0,1,0,254,255,254,255, +254,255,253,255,254,255,255,255,254,255,254,255,1,0,3,0,1,0,254,255,254,255,0,0,0,0,255,255,255,255,255,255, +255,255,1,0,2,0,2,0,1,0,1,0,3,0,2,0,255,255,255,255,1,0,254,255,253,255,254,255,254,255,255,255, +1,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,2,0,2,0,255,255,0,0,2,0, +255,255,255,255,1,0,2,0,2,0,2,0,0,0,255,255,1,0,2,0,1,0,0,0,254,255,254,255,1,0,1,0, +255,255,255,255,255,255,253,255,254,255,1,0,2,0,0,0,254,255,0,0,2,0,1,0,253,255,253,255,1,0,3,0, +0,0,252,255,254,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,255,255,1,0,1,0,1,0,2,0,3,0, +0,0,253,255,0,0,1,0,0,0,255,255,253,255,255,255,2,0,2,0,1,0,2,0,2,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,254,255,255,255,0,0,255,255,253,255,253,255,0,0,3,0, +4,0,1,0,0,0,2,0,1,0,253,255,254,255,2,0,2,0,255,255,254,255,0,0,1,0,255,255,0,0,2,0, +1,0,255,255,254,255,254,255,255,255,1,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,253,255,254,255, +2,0,2,0,1,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,0,0,254,255,0,0, +2,0,0,0,254,255,254,255,0,0,1,0,255,255,254,255,0,0,1,0,0,0,254,255,254,255,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,1,0,1,0,2,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0,255,255,255,255, +0,0,255,255,255,255,1,0,1,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,254,255,254,255,1,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,1,0,2,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,255,255,253,255,255,255,3,0,2,0,0,0,1,0,1,0,255,255,254,255,254,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/sand3.pcm b/src/client/sound/data/sand3.pcm new file mode 100755 index 0000000..4b24513 --- /dev/null +++ b/src/client/sound/data/sand3.pcm @@ -0,0 +1,864 @@ +unsigned char PCM_sand3[27580] = { +1,0,0,0,2,0,0,0,68,172,0,0,214,53,0,0,24,0,23,0,35,0,252,255,225,255,231,255,219,255,213,255, +217,255,240,255,1,0,240,255,25,0,65,0,30,0,31,0,253,255,187,255,235,255,248,255,187,255,180,255,166,255,189,255, +247,255,219,255,216,255,223,255,187,255,219,255,1,0,50,0,35,0,123,255,188,255,85,0,176,255,231,255,254,0,189,0, +88,0,52,0,214,255,67,0,104,0,29,0,86,0,99,255,116,254,200,255,239,0,5,1,32,1,94,0,166,255,100,0, +70,1,22,1,169,0,243,0,182,0,156,255,0,0,21,1,208,0,144,0,91,0,199,255,32,0,79,0,106,255,133,254, +25,254,176,254,119,255,81,255,85,255,93,255,243,254,248,254,122,255,154,0,234,0,239,255,232,0,250,1,153,0,178,0, +105,1,185,0,13,1,240,255,115,254,139,0,178,0,14,255,143,0,162,0,17,0,183,1,229,255,129,253,229,254,251,254, +104,255,103,2,68,3,162,2,128,1,3,255,226,254,235,0,174,1,222,1,106,2,83,3,66,3,255,0,224,255,87,1, +57,2,154,1,81,0,170,254,222,252,15,252,11,254,51,0,186,255,224,255,177,0,19,0,59,1,244,2,107,0,209,252, +64,253,164,0,126,3,127,4,63,3,137,255,1,254,111,1,116,3,36,2,158,1,115,1,110,2,166,4,93,3,71,0, +27,255,119,254,170,254,234,254,161,255,142,3,219,3,93,255,86,1,116,4,122,0,239,255,179,2,107,0,249,254,238,255, +168,254,243,252,149,252,111,254,151,254,108,250,56,251,186,255,202,253,90,252,189,0,55,1,148,251,18,250,118,0,206,4, +133,2,194,255,117,253,8,252,58,253,140,253,26,253,212,252,36,253,253,0,155,2,201,254,209,253,159,0,25,2,145,0, +253,253,30,255,108,1,120,0,105,0,1,3,35,4,128,2,41,2,233,3,32,2,85,255,117,0,170,0,56,0,202,2, +98,4,51,2,15,255,232,255,85,2,194,255,70,253,100,254,77,254,38,254,97,254,135,254,210,0,40,1,207,253,87,251, +121,251,203,252,143,253,197,255,14,2,47,0,46,0,45,3,25,3,123,2,248,255,244,251,62,254,7,1,198,254,80,253, +198,252,186,251,173,251,220,253,107,1,116,1,38,0,126,2,254,4,94,5,120,3,90,0,125,255,134,255,139,255,210,255, +240,254,45,254,39,252,174,250,17,254,17,0,30,0,247,1,204,255,61,253,187,255,215,0,189,0,73,2,16,3,207,3, +87,5,237,5,102,4,40,3,203,2,162,255,191,254,192,2,75,2,93,254,140,252,95,252,211,0,126,6,93,6,155,1, +5,251,34,248,78,251,57,255,185,1,49,1,222,254,35,0,243,1,14,1,208,0,89,1,127,0,166,255,177,2,63,5, +65,0,52,251,42,251,198,251,78,255,139,2,216,255,33,254,107,255,27,0,78,2,254,4,140,4,151,1,28,0,33,2, +212,2,190,254,34,250,174,249,133,251,126,251,234,251,217,253,41,253,221,252,212,254,132,254,100,254,33,255,44,252,124,249, +124,251,175,255,129,2,198,0,34,253,200,253,204,0,106,1,26,1,218,0,75,255,99,255,175,1,63,1,10,0,185,0, +247,253,173,250,15,254,145,0,33,252,119,249,120,252,107,255,133,1,163,4,1,6,12,4,16,1,69,255,206,255,148,1, +181,2,89,3,47,2,13,254,151,251,48,253,161,253,81,251,114,250,71,251,186,251,83,253,198,1,3,6,238,4,39,255, +131,251,235,252,45,255,148,254,140,252,118,253,205,0,168,255,206,250,102,250,29,252,40,251,47,253,67,1,109,255,207,252, +223,255,166,2,86,2,82,2,150,2,168,2,221,1,109,255,193,254,195,0,49,2,60,3,45,3,77,0,158,254,90,255, +82,255,141,0,84,3,24,3,250,0,24,0,39,0,215,0,155,255,164,252,85,254,150,2,55,2,38,1,119,2,173,1, +59,1,213,3,239,3,99,1,20,0,2,254,156,251,172,252,37,255,218,255,193,255,48,0,144,1,209,2,7,2,143,0, +40,1,174,2,226,2,72,3,72,5,215,4,162,255,116,252,205,255,84,3,235,2,45,2,183,1,9,0,162,255,128,1, +65,3,231,3,98,3,78,2,167,2,200,3,193,2,204,255,112,253,175,252,205,253,142,0,171,2,130,1,168,253,37,251, +115,252,23,254,108,252,186,250,152,251,185,250,47,248,88,250,119,255,27,0,65,252,160,248,221,248,106,253,31,0,114,253, +212,251,132,253,55,253,134,251,142,251,240,251,194,252,243,254,32,2,160,6,255,7,154,1,41,251,144,252,216,255,174,254, +6,252,162,251,182,253,234,0,247,3,153,5,242,3,50,0,107,254,76,254,113,253,15,254,224,1,97,5,29,4,105,254, +219,250,57,253,118,0,115,1,218,1,102,255,184,250,165,251,150,1,230,2,124,254,59,252,158,254,89,0,238,255,169,1, +93,3,49,0,212,253,6,0,15,0,129,254,191,0,16,2,126,0,78,1,220,1,45,255,134,254,197,255,160,254,31,254, +46,1,216,3,75,2,130,254,209,253,53,0,253,255,177,253,89,254,7,0,19,0,1,1,53,1,128,253,187,250,46,252, +109,252,240,250,209,253,40,2,237,0,163,254,196,0,82,2,114,1,12,2,130,1,114,254,250,254,3,2,197,0,11,254, +43,255,199,1,218,2,144,2,196,1,57,2,220,2,246,255,151,252,58,255,45,4,75,3,186,254,73,253,53,255,39,2, +232,4,207,4,250,1,50,1,105,3,37,4,234,1,185,255,141,255,232,0,19,3,92,4,156,2,165,0,109,2,194,3, +133,1,201,1,238,4,168,4,178,2,164,0,37,252,190,251,48,1,173,0,113,251,247,252,182,0,59,0,131,0,168,0, +232,252,132,250,236,251,20,253,107,253,108,254,166,255,251,255,193,254,200,252,210,250,221,249,41,252,170,255,65,0,135,255, +121,254,255,251,195,252,72,1,14,2,145,0,234,2,151,4,60,2,177,1,117,4,154,4,211,255,71,252,9,0,39,6, +120,5,220,254,49,250,86,252,132,2,89,4,81,1,123,1,198,3,242,3,112,7,255,11,30,7,147,254,20,253,156,253, +142,251,72,251,50,253,54,255,30,1,236,0,44,255,31,255,242,255,183,0,183,2,100,3,106,0,81,253,85,253,147,255, +185,1,82,2,223,2,21,4,90,2,106,254,46,254,204,255,163,254,143,254,109,0,185,254,160,252,8,0,77,4,35,4, +147,0,211,251,165,249,229,251,189,254,126,0,31,2,3,2,14,1,144,1,13,1,158,254,170,253,213,254,76,0,1,1, +9,1,161,1,120,2,248,2,18,4,208,2,218,253,255,252,33,2,73,4,81,2,14,2,21,3,179,2,177,0,164,254, +4,255,207,255,19,255,91,0,67,1,73,253,19,252,254,0,61,1,245,250,105,248,216,252,61,2,20,2,213,253,96,253, +198,255,170,254,75,253,167,254,225,254,248,254,180,0,249,0,192,255,79,253,11,249,244,247,137,251,0,255,255,1,51,2, +213,251,53,248,67,253,12,255,74,250,34,250,158,253,17,253,139,252,224,255,145,1,183,254,219,250,152,249,192,251,184,254, +144,255,127,255,89,0,92,0,23,255,98,255,29,1,120,1,104,1,1,3,109,3,47,0,107,253,96,255,81,3,177,4, +177,2,241,254,220,252,213,254,85,1,190,0,247,255,133,1,52,4,97,7,168,8,79,5,168,0,122,254,172,254,84,1, +184,3,242,1,100,255,110,255,88,255,149,255,218,1,138,2,106,0,147,254,46,254,236,254,129,255,232,254,9,255,213,255, +1,255,149,253,120,252,132,251,39,252,123,252,155,250,154,249,38,249,186,248,102,253,82,3,155,1,154,253,105,254,168,0, +232,2,119,4,226,1,84,255,31,1,233,2,151,3,4,5,43,4,178,0,27,254,101,254,168,3,83,10,160,8,233,255, +60,252,149,255,198,1,162,0,160,255,180,253,168,249,242,249,236,0,224,3,73,253,255,246,27,248,183,252,251,255,51,255, +155,250,230,247,181,250,135,255,85,3,52,6,219,5,130,0,164,251,133,253,221,2,221,4,201,3,121,2,121,0,196,254, +244,255,92,2,222,2,114,2,79,2,106,0,123,253,90,254,46,2,135,2,178,255,117,255,13,2,237,3,141,3,255,0, +73,254,158,253,74,254,214,255,37,2,11,2,206,254,189,253,88,1,151,4,158,3,148,1,126,1,234,1,171,3,76,7, +94,6,113,0,49,255,136,1,17,255,150,252,213,254,174,254,6,252,2,254,221,1,53,2,113,1,236,1,230,1,5,1, +108,2,117,6,182,6,47,1,30,254,200,0,219,2,165,1,79,255,158,253,81,254,136,255,159,253,139,251,213,252,249,253, +65,253,125,254,53,1,121,0,44,253,181,252,117,254,94,254,22,254,161,255,101,255,7,252,104,249,13,250,28,253,49,0, +96,2,140,4,241,3,147,254,58,251,131,253,48,255,229,255,241,3,81,5,240,254,38,250,54,254,67,3,216,1,112,255, +137,1,107,3,41,2,105,1,241,0,203,255,106,1,176,3,223,1,105,255,3,255,95,254,221,254,204,0,56,1,20,3, +212,7,134,8,145,4,75,3,30,4,28,2,201,255,245,255,109,255,165,253,7,254,0,0,13,1,81,1,169,0,68,0, +93,2,76,2,82,252,143,248,140,251,148,254,91,0,20,3,84,2,77,255,231,0,194,3,0,2,9,255,64,254,216,254, +60,0,122,0,254,254,34,255,164,0,35,0,208,255,193,1,188,0,28,251,100,248,100,251,49,254,46,254,62,253,145,251, +89,250,201,251,73,254,65,255,98,254,106,252,91,251,132,252,58,254,253,254,155,254,44,253,32,252,89,252,216,252,13,253, +32,253,3,254,186,255,7,255,25,253,184,255,192,2,174,255,112,253,160,255,85,254,63,251,127,253,62,0,94,255,85,255, +84,0,218,255,2,0,61,2,175,4,236,4,183,1,101,253,32,252,200,254,25,2,159,2,126,1,253,1,184,2,146,1, +145,1,134,4,7,7,51,6,244,2,63,0,22,0,114,2,42,6,116,7,254,3,134,1,218,2,250,0,115,252,144,253, +234,0,80,255,237,251,50,250,170,250,57,255,235,3,129,3,16,1,192,254,179,251,197,251,127,254,101,253,45,251,163,253, +22,0,187,254,235,252,9,251,154,249,241,251,30,254,249,251,183,251,90,255,190,0,170,1,124,5,14,6,207,1,18,255, +107,254,224,253,25,255,118,1,156,2,126,2,226,1,85,1,250,255,27,254,14,0,85,5,151,7,163,6,167,4,151,0, +150,254,33,1,101,1,233,254,130,255,114,0,20,255,146,254,167,253,135,251,94,251,8,251,109,249,180,251,229,255,143,255, +17,254,131,0,190,2,196,0,17,254,22,254,110,255,30,0,223,255,210,255,251,1,224,3,222,0,51,254,122,2,219,5, +110,2,176,0,239,2,119,2,30,1,53,2,52,2,73,1,221,1,214,1,94,0,152,254,216,252,19,253,99,255,28,0, +78,254,61,252,240,251,18,254,140,255,36,254,97,253,193,253,146,251,231,249,62,252,173,253,11,253,143,255,183,3,1,5, +96,4,87,2,157,255,150,0,49,4,220,4,25,3,3,1,134,254,189,254,254,1,123,3,149,3,88,4,153,3,212,2, +158,3,10,2,122,255,219,255,22,255,95,252,122,253,21,1,183,2,176,2,32,1,112,255,221,0,126,3,220,3,4,2, +5,255,174,253,187,255,14,2,194,2,79,1,23,252,232,247,123,250,227,254,36,1,235,3,100,3,193,252,67,250,51,0, +105,3,187,0,29,1,207,2,231,253,131,249,22,253,184,254,95,250,209,251,90,3,26,5,239,0,59,254,255,254,92,1, +231,0,10,253,189,251,210,252,124,252,223,253,137,255,120,252,173,251,119,0,111,0,71,252,201,253,227,0,25,0,206,255, +64,255,83,252,173,252,133,255,33,255,176,255,232,2,63,1,90,253,116,255,28,2,13,0,236,255,22,3,55,4,201,3, +34,2,116,254,70,254,164,2,85,4,5,3,9,2,89,254,130,249,238,250,103,0,250,1,92,0,163,0,80,2,147,1, +198,253,166,250,44,252,201,0,36,2,39,255,150,254,192,1,2,2,209,255,107,0,43,0,243,251,189,249,166,250,49,250, +221,250,16,255,188,1,235,0,145,255,42,254,251,252,92,253,161,254,183,0,85,3,178,2,88,255,119,255,78,1,199,254, +195,252,165,0,135,3,170,1,234,0,104,1,92,255,226,253,227,255,208,2,91,4,150,3,164,1,177,1,10,3,202,2, +147,1,184,255,231,252,224,252,77,1,29,5,177,4,202,1,190,254,227,252,100,253,187,255,64,1,157,0,80,0,80,2, +107,3,10,0,155,251,223,252,168,2,233,4,191,2,50,2,146,2,105,0,120,255,127,1,1,2,201,0,76,0,194,255, +97,255,90,255,45,254,234,253,21,0,40,1,93,0,194,0,106,2,22,3,224,0,105,252,82,250,185,252,57,0,20,2, +223,0,0,253,28,252,130,0,147,3,35,2,91,0,154,255,0,255,76,0,46,3,34,4,193,2,114,1,110,0,200,255, +102,1,54,3,199,0,12,253,107,253,131,255,55,0,161,0,69,255,108,251,98,249,130,250,222,252,177,255,221,255,100,252, +62,251,147,253,48,254,193,253,56,254,248,252,28,252,208,254,230,255,78,253,86,253,99,0,185,0,46,254,203,251,226,250, +190,252,0,0,164,0,35,255,30,255,53,0,196,255,19,254,212,253,207,0,109,5,90,7,30,4,51,255,161,254,218,1, +178,2,154,1,226,2,73,2,130,253,164,253,130,2,90,0,56,251,45,255,93,5,146,4,12,3,123,2,44,254,220,252, +232,1,242,1,90,252,105,253,150,2,15,1,55,252,196,250,232,250,220,251,164,253,224,252,67,251,142,253,117,1,85,3, +19,4,37,3,141,255,255,252,193,254,67,2,214,3,140,4,26,6,152,5,123,2,1,2,0,4,86,3,104,1,10,1, +179,0,53,1,129,2,44,1,100,255,105,255,236,253,60,254,245,3,147,5,166,255,158,253,164,1,157,3,230,3,0,5, +31,3,26,255,57,255,16,2,83,0,93,251,25,251,124,254,93,255,118,255,8,0,226,252,99,249,13,251,244,252,125,252, +239,253,34,255,146,253,43,254,7,1,112,1,77,0,58,255,144,253,226,252,79,253,187,252,169,251,5,251,57,251,148,253, +34,0,212,255,104,254,145,253,65,253,8,0,228,4,75,5,84,1,47,255,177,255,232,0,168,2,199,2,189,0,153,0, +240,1,195,0,192,255,149,1,131,1,57,255,28,0,124,1,26,255,162,254,127,2,40,4,247,2,180,2,186,1,161,0, +160,2,4,3,179,253,205,248,235,248,55,251,135,253,97,255,174,255,155,254,148,253,232,253,224,254,15,254,247,252,175,254, +232,255,56,254,142,254,152,1,197,1,92,255,194,254,7,0,174,0,229,255,205,255,250,1,41,3,70,2,57,3,120,3, +4,255,205,253,106,4,241,7,94,3,242,255,239,1,53,4,179,3,123,1,146,255,91,255,23,0,228,255,127,254,159,254, +140,2,65,6,151,4,165,1,60,3,161,5,104,4,242,1,123,255,218,252,255,253,54,3,28,5,156,0,159,251,96,251, +88,255,203,3,202,4,52,2,37,0,245,0,217,2,120,3,201,1,198,254,59,253,201,253,45,254,154,253,253,252,136,252, +164,252,255,253,219,255,234,0,189,0,166,255,37,254,224,252,79,253,55,255,229,254,175,251,52,250,142,251,50,253,75,255, +138,0,170,254,72,253,23,254,235,252,7,251,186,251,12,252,43,252,139,254,14,255,79,254,4,2,30,4,199,254,163,251, +241,254,179,255,177,253,93,0,210,4,32,4,123,0,143,255,79,0,206,254,133,253,242,255,42,1,1,254,197,252,23,255, +181,255,111,0,56,4,29,5,122,1,174,0,74,3,53,3,92,1,153,1,167,1,44,0,169,0,226,2,176,3,242,3, +106,3,5,0,112,254,22,2,238,3,204,0,207,254,15,255,1,255,35,0,81,1,194,255,167,253,193,252,121,253,247,0, +206,2,118,255,220,253,127,1,13,4,245,3,232,3,62,2,251,254,169,253,143,255,239,2,41,3,45,255,219,254,243,3, +57,5,35,3,38,5,50,6,155,1,55,255,118,0,156,254,90,252,144,254,88,1,79,2,124,2,211,255,243,251,67,252, +37,255,52,1,129,3,156,2,73,252,71,250,135,255,12,0,115,251,100,252,82,255,76,254,190,255,172,2,125,255,2,252, +45,254,139,0,245,1,73,3,195,255,74,251,193,253,107,1,184,0,209,0,181,1,186,255,42,255,151,1,176,1,231,255, +37,0,236,0,77,0,126,255,94,255,47,0,63,1,175,0,50,255,69,255,34,0,225,255,85,255,237,254,122,253,42,252, +33,253,235,254,43,255,35,255,229,0,222,2,18,2,148,255,100,255,65,1,9,1,192,254,190,253,24,254,247,254,223,0, +153,1,88,255,90,253,193,253,190,254,217,255,23,1,57,1,239,0,111,0,162,253,162,250,96,252,30,1,195,2,130,0, +96,254,164,254,247,255,247,255,62,254,89,253,185,255,47,3,17,3,116,0,24,1,72,4,181,3,243,255,0,255,21,0, +202,254,218,253,217,0,205,2,56,0,199,254,82,0,148,255,82,254,84,1,133,3,27,1,26,0,20,2,253,1,128,0, +13,1,51,2,218,1,208,0,97,0,250,255,98,254,171,253,228,255,140,1,114,0,122,255,183,254,119,253,134,254,139,0, +81,0,69,0,178,0,20,255,123,254,35,0,37,0,171,255,81,0,146,254,21,252,57,253,235,254,89,254,30,254,229,254, +114,255,212,255,213,255,47,255,217,253,207,252,126,254,69,1,136,0,28,254,145,254,168,0,192,1,31,1,30,255,104,255, +216,2,103,3,57,0,2,255,118,255,204,254,126,255,8,2,246,2,16,2,5,2,63,4,153,6,190,4,241,255,141,254, +179,0,58,1,63,255,252,252,243,251,118,252,83,252,20,251,226,251,48,253,49,251,180,249,133,251,223,251,20,251,216,253, +125,0,2,255,198,253,77,254,116,253,249,252,139,254,16,255,121,254,219,254,2,255,138,255,3,2,117,2,236,254,129,252, +230,252,66,253,232,253,10,255,5,255,22,255,161,255,40,255,145,255,32,1,42,1,54,2,181,4,30,2,18,253,150,254, +171,2,242,1,252,255,6,0,117,0,55,1,178,0,53,254,70,254,40,1,125,2,33,3,41,4,223,2,249,0,245,1, +155,3,79,3,179,1,57,255,41,253,211,253,22,0,207,0,89,0,200,0,134,1,1,2,135,3,177,4,8,3,14,1, +50,1,26,1,137,0,197,1,33,3,191,2,90,2,192,2,67,3,34,3,245,0,82,254,218,254,88,0,136,254,179,252, +98,255,28,3,117,3,62,2,46,1,26,255,21,254,225,0,241,3,199,2,19,255,61,253,235,254,73,1,253,0,5,0, +227,255,203,252,49,249,57,252,178,0,0,254,78,249,89,249,114,251,243,252,21,254,149,254,49,255,139,0,86,2,161,3, +82,2,152,0,236,2,169,4,54,0,101,251,41,251,10,253,59,0,119,2,81,0,163,254,53,0,224,254,158,251,161,252, +128,254,237,253,208,254,161,0,143,0,40,1,209,2,236,2,162,2,207,1,9,254,100,251,1,255,3,4,120,3,43,0, +22,0,109,1,200,255,50,254,63,1,85,5,111,5,212,2,8,0,146,254,23,0,90,2,150,2,189,2,141,2,109,255, +201,252,132,253,80,254,240,254,140,1,119,3,236,2,224,1,239,0,47,0,171,255,144,254,35,254,244,254,79,254,126,252, +136,252,248,253,171,254,237,253,186,252,204,252,164,252,92,250,167,249,65,252,206,253,22,254,22,0,67,1,54,255,200,252, +28,252,135,252,243,252,229,252,121,253,136,255,24,1,87,0,3,255,2,255,189,254,199,253,90,255,245,1,116,0,230,253, +101,255,208,1,144,2,177,1,209,253,184,252,253,2,209,5,217,0,95,255,145,1,200,0,4,2,168,4,65,1,79,254, +63,1,51,2,242,0,218,1,166,255,46,252,143,0,17,6,92,3,89,0,175,1,67,0,106,254,41,2,135,4,134,1, +174,255,229,254,191,252,62,254,3,2,70,1,200,254,121,254,138,254,157,255,255,0,41,255,189,252,15,253,172,254,83,1, +209,2,11,0,117,254,191,1,97,3,159,1,117,1,192,1,243,255,106,255,133,1,150,1,144,253,153,251,33,0,79,4, +215,1,76,254,237,254,76,0,27,0,126,0,193,1,198,1,95,0,85,0,197,1,180,0,241,253,84,254,29,0,9,0, +14,1,66,3,106,2,63,0,59,0,147,0,21,1,146,3,172,4,53,2,12,1,132,2,204,1,147,255,227,255,183,0, +250,255,187,255,151,255,108,254,145,253,199,252,96,252,13,254,219,254,212,252,85,252,239,253,254,253,86,254,13,1,114,2, +203,0,76,255,135,255,164,255,217,254,196,254,72,255,255,254,109,255,23,1,162,0,182,253,22,252,88,253,194,255,161,0, +192,255,98,255,226,254,122,253,203,253,147,254,73,254,92,1,85,5,91,3,194,0,152,1,222,255,103,254,50,2,108,3, +161,255,77,254,6,255,103,254,135,254,235,255,181,1,214,2,130,0,227,252,176,252,209,253,149,253,59,254,15,0,97,0, +238,254,48,254,61,255,237,255,244,255,203,1,239,2,149,255,71,252,117,253,26,255,192,254,126,255,90,0,253,253,117,252, +214,255,6,2,142,255,48,255,62,1,34,0,113,255,191,0,128,254,195,252,117,255,134,254,221,250,207,252,177,255,161,255, +206,1,11,4,17,3,213,2,225,2,60,2,38,4,188,4,225,0,188,255,38,2,96,1,126,255,90,0,40,0,170,254, +3,0,211,1,44,1,236,1,97,4,174,3,200,1,65,2,168,1,100,0,78,2,86,2,180,253,229,251,169,253,151,253, +224,253,187,255,218,254,254,252,113,254,149,0,126,255,167,252,12,252,93,253,199,252,14,252,250,254,137,0,156,252,109,250, +236,254,38,4,124,4,16,1,116,253,101,252,29,254,53,255,184,252,184,249,131,250,23,253,133,254,102,255,30,255,145,254, +176,0,2,2,252,255,77,0,240,2,96,2,166,0,178,255,233,253,95,254,137,0,161,255,179,255,152,3,123,4,158,1, +129,0,139,0,51,0,229,0,187,1,87,1,44,0,62,255,230,255,35,1,176,0,18,0,10,1,247,0,130,254,31,253, +68,254,152,254,188,253,145,255,16,3,166,3,168,1,75,255,185,253,101,254,220,254,115,253,212,254,162,1,0,0,1,255, +232,1,173,0,107,252,244,253,55,2,176,2,201,0,242,254,16,254,83,254,246,254,251,0,0,4,95,4,182,1,74,255, +69,255,172,0,59,0,40,255,62,1,233,1,72,253,71,250,96,251,160,251,28,252,29,254,173,254,93,255,33,1,228,0, +238,0,254,3,170,5,201,3,163,2,49,4,6,5,13,3,245,1,163,3,153,3,5,1,28,0,87,0,175,255,84,255, +161,254,246,252,67,252,148,252,185,253,21,0,230,0,46,255,26,254,35,254,174,253,74,253,163,253,16,254,84,253,252,251, +213,253,191,2,167,3,137,254,200,250,196,252,137,0,200,2,152,4,32,5,235,2,243,1,136,3,83,2,126,255,25,0, +131,0,58,255,65,1,107,3,43,1,182,255,4,1,9,1,9,0,147,255,19,0,114,2,28,4,112,2,90,255,35,253, +254,253,133,1,226,1,146,254,74,253,169,253,243,253,225,255,90,0,253,253,189,254,23,2,206,1,220,254,196,252,192,251, +197,252,45,255,31,255,197,252,186,252,205,255,65,2,73,2,16,0,2,252,194,250,138,255,131,3,109,2,153,2,68,4, +185,1,198,255,155,3,0,6,133,2,248,255,88,2,161,4,147,3,69,3,42,5,47,4,23,0,119,254,159,0,67,4, +4,6,162,2,24,254,139,253,142,253,87,253,9,1,67,4,39,2,40,255,120,253,231,251,75,253,160,1,216,3,254,1, +78,254,163,251,14,251,29,252,208,254,171,0,146,254,202,252,188,255,144,2,91,1,23,255,116,253,65,252,64,253,211,0, +113,3,16,2,95,255,12,255,212,254,40,253,212,252,62,253,139,253,96,255,210,254,245,250,239,251,30,0,20,255,76,253, +209,254,192,253,78,252,201,255,49,2,148,0,168,0,55,2,127,1,1,0,250,254,216,253,174,254,102,1,247,0,58,253, +55,253,34,2,222,4,122,2,204,254,228,252,168,252,115,252,46,252,215,253,166,0,154,1,220,255,50,252,84,250,130,253, +113,0,18,0,0,3,131,6,7,1,151,249,181,250,91,254,24,254,59,253,169,253,190,253,204,252,155,252,19,255,6,1, +111,0,205,1,87,4,191,2,191,255,143,254,211,253,177,255,20,3,49,2,64,0,113,1,198,0,236,254,234,1,130,5, +110,4,212,2,203,2,94,2,107,3,45,5,185,2,239,254,211,255,18,2,23,2,171,2,109,2,70,255,43,254,91,255, +180,253,58,251,163,250,42,251,116,255,131,4,16,2,42,253,175,254,28,2,31,3,242,3,105,3,117,1,37,1,140,1, +59,2,30,4,174,3,171,0,214,0,108,3,178,2,188,0,214,2,21,6,76,5,29,3,251,2,26,2,239,255,177,0, +127,4,47,7,85,5,175,255,196,252,188,254,210,254,158,252,92,253,189,253,70,252,205,254,87,2,112,1,235,0,49,2, +9,1,87,0,201,1,8,0,246,251,169,251,184,254,208,0,201,255,208,251,171,248,53,251,6,1,202,2,48,1,94,2, +78,4,218,2,2,2,5,3,179,1,227,0,64,3,19,2,139,252,12,251,141,253,139,253,127,252,199,253,100,253,49,250, +143,250,58,254,230,253,0,251,249,250,215,251,120,253,103,2,218,4,116,1,136,255,95,1,30,2,138,1,48,1,199,0, +193,0,33,0,110,254,122,254,176,0,26,2,252,0,1,254,86,252,56,254,120,1,211,3,117,4,135,2,102,0,81,0, +23,0,67,255,229,254,123,253,206,252,230,254,12,255,175,252,169,253,14,0,44,255,201,254,230,0,71,1,124,0,79,1, +130,0,55,253,40,253,34,0,44,0,151,254,215,254,69,254,82,254,116,2,160,3,114,254,171,252,144,255,250,254,101,254, +215,2,144,4,230,0,23,0,237,1,27,0,137,254,189,1,28,3,182,255,62,254,29,255,136,254,198,255,73,2,237,255, +165,252,14,254,132,255,222,255,142,2,196,3,161,1,248,0,13,1,147,254,133,252,150,253,51,255,170,254,61,253,54,253, +4,253,114,252,5,0,78,5,144,4,242,0,105,0,80,255,23,253,154,254,127,1,119,2,249,3,26,5,52,3,118,1, +200,2,160,5,14,8,220,7,173,3,2,255,29,254,208,255,203,0,189,0,44,1,179,2,116,3,103,1,185,255,242,1, +82,3,252,255,223,252,185,251,55,250,192,251,122,255,249,253,240,250,253,253,69,2,126,3,75,4,167,2,145,254,100,254, +154,0,143,255,107,254,168,255,192,254,198,251,250,251,162,254,199,254,87,253,177,254,32,1,44,0,160,253,52,253,147,253, +120,253,255,254,46,1,8,0,94,253,48,254,119,255,71,252,240,249,36,253,90,0,34,1,146,2,127,2,42,0,247,255, +235,0,50,1,221,2,104,2,187,253,131,252,8,0,135,1,11,2,230,3,211,3,66,3,93,4,118,3,158,1,162,2, +172,2,23,0,88,0,248,2,170,2,46,0,203,254,44,255,211,0,11,1,57,254,54,252,147,252,215,251,4,251,255,252, +168,254,52,254,211,253,16,252,192,248,8,249,174,252,216,253,86,251,24,248,41,247,155,249,6,252,240,252,226,255,254,2, +29,1,229,253,216,254,197,1,30,3,35,2,124,0,195,1,134,4,86,3,79,0,109,0,58,1,173,0,173,1,107,3, +215,2,161,1,54,2,219,3,76,5,101,5,2,3,75,255,80,253,102,254,230,0,113,2,235,1,42,0,248,255,34,2, +117,2,11,255,82,253,238,255,26,2,19,2,79,2,174,1,209,255,193,0,15,4,178,4,160,2,226,0,240,254,233,251, +118,250,224,252,250,255,201,254,148,251,104,252,77,255,154,255,208,255,15,1,223,255,163,254,83,0,107,0,29,254,253,253, +178,254,52,254,112,255,141,1,251,1,179,2,55,3,14,1,93,255,231,255,39,255,92,254,145,1,206,4,140,2,126,254, +73,254,13,0,75,0,162,255,120,254,217,252,47,253,73,255,71,0,169,0,103,0,156,253,73,252,224,255,102,2,160,0, +161,255,169,0,84,1,27,2,4,2,243,255,99,255,147,1,253,2,199,2,101,2,8,1,78,254,115,252,76,253,48,0, +169,2,67,2,252,254,247,251,231,251,170,253,245,254,192,255,105,0,122,0,55,0,23,0,20,0,162,0,164,1,176,1, +166,0,40,0,41,0,28,255,177,254,122,1,251,3,113,2,252,0,124,2,106,2,197,254,169,250,34,249,102,252,86,1, +206,1,158,0,2,2,39,1,89,254,247,255,159,1,229,253,167,250,225,250,104,251,59,253,147,0,242,1,31,1,9,0, +39,0,218,1,64,1,236,252,41,252,18,2,194,6,163,5,181,2,124,0,177,254,198,254,167,0,119,1,233,0,92,0, +57,255,82,254,18,255,144,254,226,251,94,252,179,0,177,2,133,1,141,1,244,1,141,255,137,253,192,255,30,2,190,0, +68,255,97,255,213,254,119,255,233,0,227,254,169,253,112,1,148,2,36,255,78,255,250,1,145,1,179,0,244,0,116,0, +143,0,26,1,78,0,81,0,204,1,132,1,233,255,240,0,109,3,223,1,108,254,183,0,162,4,169,1,194,254,105,2, +253,2,242,253,211,252,239,253,164,251,192,251,223,255,29,1,21,0,106,0,80,255,37,253,128,254,0,1,149,0,198,0, +32,3,182,2,121,0,119,1,163,2,228,0,23,1,17,4,246,4,157,3,38,1,12,254,36,255,25,4,171,4,185,1, +116,2,7,3,235,254,174,253,228,2,103,5,254,255,194,249,128,250,217,255,252,1,218,0,70,2,39,4,52,1,100,253, +64,253,42,254,75,255,31,1,99,0,236,253,23,254,241,254,194,253,163,253,172,255,167,0,154,255,14,254,207,252,196,251, +12,251,62,251,75,252,135,253,217,254,211,255,159,255,69,254,122,252,208,251,37,253,161,254,170,255,146,1,62,2,80,0, +28,0,43,3,33,5,189,3,127,0,247,253,142,254,168,1,53,4,10,4,126,1,20,0,175,1,136,2,122,0,77,254, +119,253,4,254,147,255,115,255,87,253,42,252,199,252,92,255,209,2,5,3,170,0,151,0,55,2,8,3,12,3,205,1, +238,255,4,254,246,250,216,249,5,253,117,255,217,255,127,1,77,1,162,253,83,252,182,254,234,0,146,1,157,0,141,255, +72,0,73,0,103,254,129,254,187,0,152,1,89,1,226,0,116,255,215,254,55,0,182,0,239,255,198,0,226,1,112,0, +156,254,73,254,243,253,233,253,42,255,227,0,103,2,179,1,34,254,168,252,103,254,115,254,5,254,59,0,70,1,243,255, +42,255,146,254,153,255,165,3,210,4,149,0,31,253,205,253,167,0,160,2,68,1,181,254,173,253,251,251,204,250,126,254, +212,2,220,1,185,255,218,0,203,1,3,0,33,254,57,254,54,0,57,3,166,4,213,2,121,0,151,255,91,254,247,252, +206,253,61,0,199,2,157,4,206,3,36,1,222,255,100,255,155,254,28,0,195,3,248,4,125,2,83,0,194,0,132,1, +131,1,153,1,245,254,134,249,36,249,252,253,155,254,180,252,201,255,93,2,239,255,206,255,228,2,197,2,78,1,73,2, +45,3,253,2,140,2,164,0,121,254,221,253,170,253,117,254,196,0,207,1,241,1,152,2,12,1,197,254,119,255,31,255, +160,252,149,253,117,255,25,254,99,254,132,0,233,255,147,255,207,0,46,0,117,0,251,2,150,2,250,255,23,255,53,254, +230,252,196,253,84,255,71,255,61,0,22,4,32,6,135,3,193,1,51,2,135,255,51,253,18,1,167,4,22,3,4,1, +120,255,128,253,219,252,9,252,13,251,29,253,239,255,145,0,94,0,148,255,53,255,173,0,92,1,109,0,240,254,217,251, +188,250,214,254,82,1,160,254,253,252,111,254,245,255,233,0,234,0,230,255,124,255,206,0,130,3,166,4,247,1,13,255, +1,0,170,3,243,5,58,3,29,254,156,253,135,0,42,1,171,0,127,0,192,255,177,0,14,2,62,0,232,254,63,0, +199,255,187,253,223,253,15,255,190,254,189,253,140,255,9,4,24,4,167,254,45,253,37,1,95,2,128,0,92,0,55,1, +250,0,236,255,97,255,46,1,131,3,60,2,181,255,99,1,239,4,155,4,56,1,138,254,93,253,255,253,248,255,43,0, +51,254,59,253,161,253,67,254,205,255,163,1,100,2,108,1,112,253,58,249,26,251,13,1,67,3,56,2,3,3,139,4, +225,3,81,2,43,1,81,255,97,253,252,253,245,0,30,3,224,1,205,253,238,251,80,255,73,2,222,0,183,255,159,255, +129,253,64,253,156,255,226,253,29,251,93,255,72,5,122,4,54,0,41,254,99,254,1,0,118,2,7,3,216,255,113,252, +213,252,221,254,151,255,59,0,188,0,75,0,19,1,7,2,63,255,185,251,183,252,178,255,21,0,247,253,59,251,152,250, +192,253,18,1,144,1,142,1,67,0,251,251,129,251,121,0,4,0,208,249,140,249,101,254,156,0,143,1,65,2,192,0, +254,255,240,0,203,0,92,0,227,255,11,254,18,253,243,253,238,254,227,0,81,3,122,2,63,255,222,254,208,1,224,2, +177,0,151,255,64,255,60,252,32,251,33,0,182,4,232,3,106,1,78,0,234,255,54,255,220,254,254,255,163,255,13,252, +237,250,223,253,22,255,70,254,164,254,222,255,226,1,227,2,62,0,7,254,185,255,17,2,196,2,164,1,211,255,203,0, +223,2,13,2,43,1,42,1,31,255,210,254,161,2,124,4,17,2,88,255,100,255,199,2,219,5,174,4,175,1,146,0, +117,1,195,2,249,1,143,255,110,255,197,1,37,4,42,5,9,3,204,255,182,255,10,0,234,253,107,253,108,255,119,0, +174,0,236,0,78,0,0,255,6,254,167,254,234,255,131,255,33,0,243,2,21,2,218,254,46,0,127,1,148,254,127,254, +108,0,56,253,139,250,232,253,202,0,216,0,28,1,195,255,87,253,95,253,38,254,74,255,208,2,145,4,248,1,60,255, +85,253,98,252,120,255,199,2,24,1,216,254,12,255,153,254,241,253,251,253,214,253,215,255,194,2,240,1,1,0,104,255, +182,252,237,250,234,254,214,2,203,1,213,255,156,254,204,252,222,252,177,255,161,1,53,1,252,255,6,255,69,255,125,0, +140,0,225,255,148,0,52,1,239,0,57,2,191,3,48,2,230,254,97,252,212,252,120,1,113,4,12,1,117,253,132,253, +174,253,161,254,250,0,242,0,247,255,61,0,184,254,244,252,192,254,3,1,61,1,96,1,116,1,4,1,30,1,142,1, +235,1,156,2,3,3,253,1,185,0,96,2,66,5,84,3,203,254,127,255,115,3,151,4,103,4,9,4,160,1,157,255, +28,0,151,0,118,0,93,1,104,2,254,1,113,0,102,254,88,252,234,251,123,253,197,253,199,251,169,251,77,254,177,255, +69,255,76,255,30,255,106,253,99,252,145,254,151,0,74,254,37,252,181,253,228,253,190,253,109,2,163,4,122,255,34,252, +151,253,249,254,51,0,204,255,129,253,77,255,209,2,197,1,6,1,233,2,47,2,62,1,168,3,196,4,104,2,217,255, +61,255,85,0,222,0,172,0,79,2,207,3,209,1,235,254,206,253,46,253,123,252,84,253,64,0,75,1,116,253,1,251, +150,254,229,0,136,254,47,254,144,0,63,1,15,1,27,1,233,0,79,2,26,4,82,2,136,255,204,0,14,3,97,1, +40,255,107,255,202,253,213,250,90,252,117,254,5,252,67,251,94,254,142,254,86,252,73,252,176,253,189,0,20,4,24,2, +50,253,37,252,178,252,3,253,214,0,66,4,44,1,41,253,133,254,115,1,115,1,51,255,108,253,233,253,95,254,8,253, +35,254,2,2,130,2,17,1,110,2,28,2,4,254,254,252,37,0,225,1,38,1,230,0,122,2,87,3,212,0,126,254, +60,255,157,254,41,252,11,253,180,255,134,0,174,1,252,2,125,1,102,255,199,255,101,1,225,2,118,3,247,0,176,252, +70,252,139,255,210,0,134,0,97,0,174,253,247,252,110,3,71,7,129,2,113,254,58,254,225,253,72,254,40,254,10,253, +252,254,28,0,120,253,80,254,226,0,70,254,195,252,48,0,24,2,213,1,151,1,50,0,35,255,12,255,243,254,177,0, +168,2,164,1,245,0,85,2,93,2,236,1,208,3,29,5,216,1,109,252,239,250,161,253,27,255,103,254,46,255,154,1, +103,2,39,0,119,253,193,253,125,0,57,3,253,3,238,0,51,253,131,253,68,254,241,252,42,255,192,3,71,3,250,255, +101,0,155,3,91,4,233,0,149,253,60,253,94,253,134,254,223,0,199,254,61,251,76,254,170,1,24,255,225,253,91,255, +240,253,11,253,21,0,53,2,183,0,73,254,2,254,18,0,203,0,103,254,153,252,13,254,129,0,114,1,211,1,162,2, +210,1,109,255,195,254,138,255,255,255,48,1,162,1,120,255,53,254,184,255,111,1,86,2,28,2,138,0,85,255,40,255, +61,0,179,2,74,3,248,0,194,255,241,255,241,254,38,254,81,255,251,1,68,4,28,3,59,0,226,0,109,3,156,3, +65,3,239,3,244,3,135,3,254,2,112,1,242,255,200,255,19,0,222,255,71,255,194,254,214,253,58,252,94,252,14,255, +100,0,48,0,144,1,119,0,234,250,131,250,193,0,14,2,235,254,171,0,162,2,114,254,56,251,100,253,23,0,194,0, +27,0,32,255,174,255,191,1,80,3,231,2,128,1,191,2,45,5,226,2,112,255,234,0,122,2,96,2,158,4,175,3, +119,253,38,252,227,255,64,0,2,255,234,254,4,253,187,250,186,250,168,251,183,252,104,253,48,253,72,253,66,254,122,255, +172,255,6,254,151,253,253,255,148,0,222,254,29,0,25,3,128,2,163,254,242,251,168,253,194,1,59,3,73,2,183,1, +80,0,20,254,20,254,118,0,216,2,242,2,2,0,249,252,74,253,203,0,55,4,171,3,178,0,210,0,46,2,136,0, +235,255,103,1,207,255,132,253,219,253,154,252,249,250,106,253,117,255,32,255,138,1,241,3,151,0,159,252,220,253,147,0, +45,1,77,1,208,0,4,254,117,251,117,252,118,255,215,1,196,3,24,5,13,4,136,0,142,253,8,254,41,1,236,3, +61,4,184,1,68,255,107,0,119,2,167,1,226,0,57,1,105,255,38,254,94,0,2,1,145,254,148,253,168,253,122,253, +194,255,10,3,243,2,196,0,122,255,133,254,30,254,103,0,255,3,186,4,24,2,46,255,76,254,13,0,117,2,239,2, +25,3,82,3,143,255,34,251,62,253,217,0,166,255,249,254,76,0,59,254,213,251,189,253,98,255,211,253,193,252,130,253, +111,253,141,251,70,250,129,251,198,253,181,255,72,1,27,1,102,255,248,254,46,255,28,254,81,254,114,1,99,3,107,0, +24,251,16,249,19,251,217,252,216,253,34,0,156,0,180,253,225,252,149,255,189,1,95,3,248,4,39,4,1,2,237,255, +247,253,67,0,79,5,247,3,125,255,4,1,237,2,228,0,120,1,84,2,22,255,233,253,134,253,78,249,36,251,212,4, +160,6,81,255,196,252,179,0,29,4,142,4,89,2,179,0,49,2,43,2,153,254,87,254,185,1,13,1,23,255,180,2, +133,5,24,3,248,2,4,4,230,255,234,253,90,1,79,0,64,252,243,253,184,0,116,255,172,254,130,255,28,255,239,253, +135,253,13,254,94,254,93,254,89,255,94,255,121,253,248,253,125,255,119,252,88,249,139,251,236,253,19,253,1,253,83,255, +227,1,13,3,151,2,46,2,71,3,251,3,248,1,154,255,67,0,215,1,184,1,39,1,52,255,124,252,196,254,178,2, +42,0,81,253,198,255,53,0,243,254,90,1,155,1,247,254,226,0,118,3,173,1,118,1,203,3,93,3,109,1,135,1, +217,2,185,2,174,0,194,0,63,4,217,4,15,1,20,255,107,255,30,255,110,0,102,3,144,3,19,1,132,255,11,0, +3,2,247,2,238,0,227,254,164,255,205,0,165,0,241,255,83,254,141,253,152,0,153,3,55,1,160,253,246,254,189,1, +5,1,97,0,181,2,162,2,17,254,235,251,15,255,145,1,62,0,129,254,158,254,82,255,147,0,153,2,159,1,24,253, +150,252,157,1,167,3,236,0,108,254,1,253,149,253,58,0,40,0,249,253,186,253,124,253,228,253,239,0,86,1,26,255, +91,255,30,254,83,250,200,250,22,253,78,253,219,255,48,2,34,255,74,253,206,255,239,255,250,254,129,2,3,5,176,1, +231,255,126,3,128,5,14,4,81,4,46,6,139,6,49,5,24,3,106,2,33,3,213,2,184,3,120,5,56,2,107,254, +142,0,35,1,252,253,233,254,220,0,238,255,50,1,198,1,97,253,145,251,99,255,142,2,192,2,191,0,37,254,30,255, +15,3,57,3,94,254,150,251,151,253,186,254,38,254,85,255,94,254,94,250,139,251,186,0,135,1,184,254,28,252,22,252, +94,0,100,2,85,254,208,252,143,255,35,0,148,0,187,2,12,3,237,2,186,3,178,3,36,4,173,3,187,255,195,253, +255,0,18,3,127,0,124,252,21,250,17,251,32,254,79,254,130,251,91,251,124,253,234,252,199,251,117,253,185,254,71,255, +203,1,148,2,34,255,127,251,152,250,58,253,239,0,222,255,37,252,178,252,115,255,48,0,147,255,161,253,215,251,208,252, +83,254,239,253,166,252,162,252,153,255,63,2,249,0,26,0,148,1,248,0,193,255,82,1,207,2,136,2,52,2,125,2, +72,2,90,0,228,255,132,2,165,1,109,253,77,253,3,253,226,248,240,249,30,0,235,1,99,255,180,252,62,252,120,255, +228,1,15,1,31,1,27,1,123,255,223,0,56,4,83,4,191,2,95,2,197,1,190,254,178,250,147,250,37,254,165,255, +246,254,224,254,175,254,175,255,64,2,35,2,229,255,43,0,124,2,241,3,232,3,173,2,74,0,184,253,27,254,82,1, +156,1,119,254,201,253,200,255,161,0,244,255,47,255,239,255,98,1,15,1,113,1,1,4,233,3,71,1,100,0,55,0, +98,0,116,1,177,255,108,252,201,252,111,253,159,250,203,248,161,250,113,253,200,254,134,253,57,251,216,251,237,255,22,3, +68,2,225,255,118,255,141,0,151,1,245,2,3,4,61,3,175,1,44,1,59,1,250,0,15,1,159,1,135,1,176,0, +189,255,121,254,113,253,250,253,20,0,86,2,110,2,170,255,171,253,90,255,169,1,29,0,78,251,163,248,109,250,125,252, +134,253,159,255,73,255,204,251,97,251,2,253,88,253,196,255,84,2,11,2,199,3,103,5,95,2,35,1,102,2,114,1, +215,3,108,8,182,4,19,254,145,255,126,4,206,4,21,2,93,1,182,2,68,2,198,0,4,1,72,1,119,1,135,1, +137,254,169,252,23,255,77,254,169,250,8,252,222,254,157,254,165,253,32,251,45,248,211,248,4,250,157,248,6,247,44,247, +19,250,35,254,181,255,207,255,133,0,227,0,253,0,95,1,121,2,246,3,15,3,117,1,144,2,66,2,35,0,93,1, +16,2,126,255,81,255,93,0,113,255,142,255,205,255,17,255,21,0,135,0,142,255,113,1,50,4,237,3,176,2,135,2, +231,2,107,2,151,1,7,3,77,4,216,2,225,2,122,3,195,255,243,251,133,252,103,0,216,5,20,7,198,2,144,0, +25,0,49,254,209,255,67,2,229,255,18,255,57,1,119,0,187,255,80,1,2,2,54,3,180,4,186,2,67,255,145,253, +153,253,188,255,224,2,149,3,76,1,191,255,232,0,141,1,60,0,185,254,113,252,62,252,90,1,115,3,232,254,140,253, +51,255,11,254,213,255,47,4,13,3,84,0,183,0,95,0,88,255,49,255,221,253,84,252,124,253,208,0,243,1,152,254, +241,251,173,252,112,252,22,252,85,254,90,0,109,1,75,0,83,251,177,249,67,253,215,253,201,252,198,253,104,252,201,250, +122,252,147,253,168,254,28,1,126,1,235,0,122,0,21,255,127,255,183,255,88,253,208,254,34,2,77,255,53,252,63,254, +88,0,193,1,34,3,102,2,78,2,210,3,128,3,181,1,232,255,205,254,182,255,240,0,192,1,0,4,132,5,137,4, +108,3,203,2,178,2,102,3,56,3,224,2,40,3,42,1,136,253,207,251,95,252,9,255,248,1,34,2,182,1,76,2, +230,0,11,255,137,255,98,255,90,254,44,0,58,3,177,3,94,2,98,1,177,0,83,0,34,1,123,2,127,3,100,4, +237,2,98,254,53,253,53,1,136,2,63,0,222,255,231,254,229,251,61,253,200,1,95,2,199,0,110,0,98,254,146,251, +240,252,138,0,158,1,39,1,15,1,170,255,129,252,99,250,237,250,167,252,132,254,94,1,110,4,184,4,175,1,17,255, +94,0,11,3,52,2,171,0,202,2,184,2,95,254,77,255,234,4,162,5,73,4,103,4,208,0,96,253,12,0,1,2, +10,0,56,0,69,2,239,0,113,252,23,251,239,255,21,3,243,255,2,255,228,1,8,1,239,254,69,0,89,1,20,1, +151,0,58,254,133,251,72,251,18,253,207,254,111,254,118,253,148,253,74,252,233,251,33,0,61,3,23,3,167,3,185,1, +220,253,101,254,125,254,97,251,233,252,86,0,37,255,206,254,6,0,11,253,46,250,157,252,194,255,129,255,180,253,213,252, +42,253,83,254,191,255,194,255,194,254,51,255,46,0,195,0,243,1,45,1,188,254,213,255,141,1,59,255,12,254,174,255, +146,255,199,255,8,2,188,1,42,255,216,254,79,0,13,1,205,1,245,2,225,1,37,255,94,255,112,1,54,1,195,0, +73,1,122,0,120,0,126,2,83,3,194,2,124,1,75,255,243,253,91,253,205,253,26,1,152,2,251,255,204,255,8,1, +3,255,219,254,187,0,152,254,75,253,175,0,224,0,99,252,130,251,131,255,172,1,5,0,231,254,147,254,105,252,27,252, +216,255,41,2,59,1,77,255,206,252,241,252,98,0,169,0,143,253,170,253,220,0,151,2,0,2,239,0,255,255,137,254, +210,254,225,1,249,1,7,254,119,252,245,253,147,0,193,3,4,2,155,251,43,249,251,250,180,253,99,1,48,1,85,253, +96,253,123,254,146,253,112,0,10,3,41,255,201,252,250,255,249,1,163,0,246,254,161,255,57,2,5,2,239,254,208,253, +51,254,3,254,134,254,121,0,11,3,210,2,185,254,129,253,180,0,200,1,166,1,82,2,213,255,141,253,172,255,141,0, +78,255,84,0,240,1,233,2,74,3,62,1,42,0,226,1,149,1,215,0,243,2,173,2,126,255,26,255,14,0,232,254, +79,253,253,252,96,254,194,0,129,2,118,3,21,3,255,0,127,255,216,254,217,253,36,254,102,255,59,0,69,2,48,3, +194,255,140,253,62,0,116,2,190,1,217,0,172,0,128,0,87,255,1,254,241,254,163,0,20,1,66,2,51,3,189,1, +141,0,118,255,178,252,251,252,191,0,209,0,23,254,218,254,186,1,236,2,132,2,74,1,72,0,185,255,19,254,127,252, +151,253,255,254,175,253,159,252,246,253,58,254,15,253,233,253,87,255,217,255,235,1,209,2,149,255,76,254,0,1,38,2, +174,2,206,4,109,4,189,1,197,0,4,1,212,0,29,255,54,252,91,252,165,255,254,0,189,0,64,1,207,0,36,255, +34,254,24,255,176,1,47,2,170,0,11,2,36,3,120,255,158,253,54,0,61,1,83,1,17,2,215,255,144,253,133,255, +219,0,121,255,179,0,122,4,101,5,111,3,155,2,152,2,74,1,30,1,255,2,87,2,206,254,69,253,133,254,160,0, +88,2,123,1,110,254,85,252,188,251,198,252,246,255,140,1,164,254,142,251,135,252,2,255,53,255,43,254,31,254,9,254, +142,253,208,254,159,0,60,255,164,251,35,250,194,251,112,254,41,1,35,3,118,1,231,252,129,252,91,1,35,4,175,3, +13,4,90,3,29,0,210,254,12,1,56,3,3,3,2,2,100,2,0,2,28,255,213,254,177,2,159,3,110,0,58,255, +185,0,137,1,157,0,206,254,21,254,147,254,21,254,169,253,121,255,91,1,213,0,135,254,18,252,70,251,243,252,36,255, +140,254,7,251,176,249,138,253,163,1,222,1,197,0,188,0,183,1,86,2,219,255,237,251,35,251,53,252,167,252,86,254, +159,1,120,4,96,4,25,0,107,253,204,0,20,3,166,0,157,255,232,255,207,254,195,255,230,1,104,1,163,0,212,0, +39,0,174,255,122,0,88,2,196,3,34,1,19,253,33,254,40,1,242,0,126,0,137,0,102,254,32,253,111,255,223,1, +118,1,173,255,106,255,141,0,111,0,38,255,114,254,236,253,96,253,108,253,179,253,202,253,75,253,63,253,211,255,89,2, +182,0,250,253,194,253,178,253,160,252,43,253,183,255,67,0,229,252,199,251,198,0,157,4,99,3,222,1,99,0,239,254, +206,1,137,5,88,4,167,1,17,1,118,2,4,5,229,4,88,2,6,2,145,1,109,255,202,255,222,255,136,253,135,254, +58,0,171,253,125,253,47,0,5,254,65,251,148,253,50,254,153,250,177,249,127,252,92,254,125,254,255,254,131,0,80,1, +27,255,27,251,158,249,205,251,83,255,201,2,41,4,38,2,92,1,52,4,208,4,133,1,98,255,26,255,208,255,4,3, +102,6,192,6,253,4,152,2,30,1,27,1,49,0,193,254,152,255,106,1,216,1,30,1,54,0,129,0,15,2,131,3, +55,4,227,2,125,0,145,0,190,0,39,254,73,253,96,254,201,253,214,254,37,1,64,255,46,253,62,255,40,1,205,1, +14,2,18,0,104,254,145,255,150,0,73,0,122,255,179,254,236,255,220,1,202,0,28,254,86,253,80,254,148,254,140,253, +218,253,120,255,194,255,21,1,76,4,210,4,232,3,97,3,190,255,194,253,205,1,194,2,67,255,171,255,148,0,18,254, +143,253,154,254,78,254,242,254,227,255,119,255,247,253,182,251,7,253,6,2,85,2,123,254,98,252,184,249,80,248,96,252, +19,255,123,254,113,0,135,0,137,252,226,252,240,255,53,255,233,255,239,3,66,3,237,253,253,251,39,254,185,254,119,253, +199,254,189,0,129,254,240,251,57,254,151,1,220,2,112,4,100,5,103,3,85,2,33,5,200,6,205,3,74,1,174,2, +97,3,119,0,5,253,169,251,183,252,198,254,84,255,92,255,188,0,20,1,91,0,144,1,97,2,224,0,111,0,223,0, +0,0,124,255,176,254,2,253,171,254,214,1,235,255,60,252,235,252,229,255,120,2,56,3,48,255,102,249,14,248,58,250, +13,253,191,255,135,255,36,254,246,1,137,7,190,6,148,2,243,0,202,0,154,1,141,3,104,3,251,1,29,3,212,3, +115,0,78,253,213,253,121,254,221,253,157,255,247,2,111,3,182,2,82,4,155,4,4,1,54,254,70,254,23,255,156,0, +227,1,245,0,42,255,149,253,111,252,185,253,224,255,25,255,142,253,171,254,210,0,174,1,143,0,64,254,15,253,60,253, +146,253,83,254,220,254,169,254,107,255,92,0,23,255,40,253,101,253,127,255,80,0,118,253,38,250,200,250,153,253,191,255, +1,1,26,0,253,253,205,253,108,254,166,254,32,0,180,1,252,1,150,1,144,255,91,253,37,254,169,255,32,0,187,1, +114,2,210,255,63,253,187,252,100,253,53,255,110,0,67,0,125,1,81,3,136,2,225,1,107,4,235,5,168,3,191,2, +46,5,99,5,47,3,85,4,92,6,173,3,176,0,206,1,103,2,98,0,222,255,0,1,225,255,197,252,218,251,31,254, +18,0,249,255,38,0,59,2,71,4,48,3,7,0,82,0,110,4,170,5,165,2,79,0,100,255,118,254,52,255,153,1, +236,2,62,2,144,0,212,255,233,0,158,0,48,253,233,251,77,255,86,0,230,252,54,253,121,1,130,1,19,0,248,2, +241,3,26,0,142,254,239,255,141,0,89,1,19,1,206,254,206,255,184,4,104,6,246,1,215,252,182,252,189,254,152,253, +83,253,86,1,247,2,236,0,60,0,110,254,62,251,210,252,40,0,154,255,108,255,17,2,123,3,176,2,139,1,12,1, +86,1,25,1,45,255,85,252,88,251,12,254,43,0,213,253,191,251,251,252,40,254,132,254,246,253,232,251,242,251,74,253, +250,251,80,252,193,254,21,252,143,248,56,251,184,253,249,251,167,249,220,247,201,249,18,1,26,5,54,2,7,0,208,0, +139,0,242,255,142,1,179,3,164,3,197,1,153,255,158,253,54,254,92,2,94,4,33,1,117,253,2,252,39,252,28,254, +24,0,52,2,152,6,143,8,67,4,65,255,92,253,128,254,244,2,166,5,150,3,217,2,24,3,80,255,213,253,112,2, +253,3,176,0,175,0,104,3,106,2,69,255,144,255,54,2,91,2,1,1,82,1,159,0,253,253,166,254,49,2,98,2, +255,254,48,252,231,251,13,254,31,0,66,0,140,0,40,1,5,0,157,255,2,2,145,3,254,1,209,254,255,251,114,252, +226,255,162,0,212,253,69,253,124,255,196,255,87,254,210,254,63,0,229,254,230,251,101,251,252,251,116,250,146,250,43,255, +83,2,206,0,88,255,174,255,84,255,14,255,67,0,43,1,91,1,66,2,208,1,100,254,78,253,206,0,143,1,172,254, +124,255,43,1,61,254,186,252,39,254,177,252,130,252,216,0,185,1,226,254,99,255,46,1,220,0,140,0,14,0,250,254, +96,255,194,0,181,1,122,2,21,3,43,3,155,1,143,254,175,253,227,255,65,1,145,0,71,0,64,1,144,1,176,255, +245,253,134,254,216,254,54,254,214,254,129,255,122,0,131,3,36,4,21,1,198,0,104,2,154,0,13,254,50,254,49,255, +241,254,96,253,25,253,122,254,125,253,178,252,8,1,67,4,14,2,162,0,219,0,103,255,13,255,33,0,244,254,221,252, +144,253,19,1,130,3,159,1,42,254,48,253,61,255,126,3,218,4,1,0,89,253,84,0,85,0,98,254,127,255,173,253, +238,250,226,255,177,4,49,2,254,0,233,2,240,1,14,1,62,2,181,0,76,254,182,255,86,1,223,0,14,3,19,6, +220,3,91,2,122,6,197,5,119,254,159,253,120,2,27,3,164,1,253,0,83,255,21,255,101,0,190,0,37,1,250,255, +63,253,251,253,165,255,28,255,92,1,88,3,99,255,133,252,160,253,113,253,135,253,99,253,88,249,164,247,17,251,246,252, +47,254,245,0,55,0,217,253,12,0,135,3,136,3,147,1,191,255,22,255,119,0,152,2,137,2,237,255,5,255,229,1, +165,3,111,1,34,255,235,254,68,255,124,255,235,255,96,1,109,3,249,3,199,3,200,4,27,5,98,3,3,1,206,254, +242,254,213,2,136,5,128,3,24,1,121,1,206,1,33,0,68,254,4,254,176,254,12,255,54,255,54,255,99,255,210,0, +184,1,204,255,210,253,211,253,160,253,113,253,15,254,187,253,26,254,73,0,68,0,24,255,122,0,153,0,115,254,130,254, +0,254,44,251,29,252,84,255,52,255,43,255,86,1,248,2,228,4,244,5,8,4,45,3,20,4,179,3,130,4,222,5, +44,3,247,255,148,0,248,1,119,1,112,255,3,255,178,2,200,4,142,1,245,254,225,253,244,251,215,252,222,253,212,250, +122,251,27,1,76,2,18,0,94,255,73,254,194,253,200,254,223,254,161,255,17,1,252,255,110,255,167,1,207,2,65,2, +154,1,192,0,75,0,63,255,40,253,61,253,42,255,46,255,157,253,210,252,173,253,124,255,182,0,138,1,172,1,37,0, +179,255,221,255,123,252,126,250,114,254,247,0,235,254,97,252,176,249,210,249,183,254,8,1,65,255,147,254,170,253,227,252, +224,254,149,255,41,255,29,1,2,1,108,254,60,254,109,253,60,251,154,252,40,254,123,252,146,252,151,255,244,1,104,2, +18,1,23,0,134,0,209,255,167,255,137,2,93,3,88,0,30,255,195,255,234,254,223,254,150,0,157,0,15,0,247,2, +129,6,174,4,113,255,5,254,146,1,56,4,35,2,181,254,170,254,70,0,38,0,212,0,213,3,228,4,234,2,108,1, +72,1,104,1,130,1,73,1,193,0,56,0,92,0,142,1,200,1,119,0,101,0,148,0,124,254,89,253,222,254,139,255, +66,255,127,255,226,254,44,254,5,255,217,255,185,255,25,255,245,253,185,253,198,254,104,254,160,252,145,252,76,254,213,255, +15,1,130,1,68,0,71,255,118,255,247,253,38,252,71,254,97,0,20,254,130,253,46,1,216,1,251,254,180,254,26,1, +123,3,117,4,9,2,239,253,132,252,154,253,38,255,227,0,155,1,236,0,227,0,99,1,93,0,7,255,228,255,254,0, +127,255,20,254,181,255,112,1,145,0,3,255,117,254,35,255,83,1,228,3,103,5,150,5,99,4,164,2,110,1,203,0, +79,1,95,2,106,1,211,255,250,0,132,2,88,1,17,255,58,253,145,253,229,1,38,5,143,2,102,0,212,2,109,3, +42,1,136,1,166,1,227,253,28,252,119,254,73,255,52,254,4,255,142,0,251,255,181,254,229,255,196,1,114,255,55,251, +192,250,168,251,136,251,220,253,127,0,135,255,171,254,190,254,48,253,154,253,57,0,220,255,138,254,79,255,93,255,104,255, +81,1,255,1,218,0,18,0,245,254,206,253,238,254,95,1,49,1,188,253,112,252,142,0,138,4,252,3,80,2,155,2, +51,4,119,5,25,5,213,4,253,5,95,5,105,2,160,0,142,0,209,0,199,255,188,252,0,252,72,255,88,1,155,1, +213,1,84,255,53,253,19,0,157,2,251,1,243,0,50,254,99,252,55,255,177,255,158,252,56,254,102,0,215,252,3,251, +174,253,115,254,14,254,100,255,117,255,85,253,136,252,208,254,253,0,203,255,167,254,60,0,155,255,118,252,160,252,33,254, +10,253,213,252,122,254,189,254,28,254,146,253,21,253,37,254,188,255,143,255,148,254,160,253,175,253,4,1,118,4,240,2, +200,255,132,0,19,3,189,2,192,255,49,254,22,255,249,254,228,253,99,255,255,1,202,2,201,2,170,1,90,255,205,255, +229,2,31,4,129,3,31,3,142,2,35,1,111,254,171,251,30,252,203,255,71,3,186,3,250,0,7,0,132,3,4,4, +68,255,137,254,10,2,3,2,39,1,196,2,249,1,68,0,125,2,4,4,207,1,72,1,177,2,229,0,241,253,146,254, +198,255,86,254,6,254,124,255,6,254,66,251,126,251,231,251,253,250,122,252,239,254,229,254,98,255,249,1,45,2,76,255, +36,254,233,255,86,1,120,1,157,1,233,0,198,254,215,253,148,255,7,2,240,2,230,1,192,0,167,0,205,255,155,254, +147,255,46,0,198,254,7,0,32,3,26,2,166,255,32,0,240,255,169,254,43,0,168,1,67,0,72,255,188,254,124,253, +177,255,110,3,196,0,225,251,38,254,88,3,129,4,235,3,114,2,7,255,67,254,131,1,154,3,242,2,172,0,107,253, +17,253,118,0,29,1,215,253,65,253,57,255,118,253,219,249,81,251,245,255,68,1,174,255,147,254,85,254,87,255,185,0, +185,255,165,253,233,252,16,252,117,251,186,252,62,253,138,252,22,254,147,0,171,0,210,255,21,255,10,253,150,251,96,253, +89,255,45,254,53,253,224,254,141,255,59,255,249,0,53,1,106,254,183,254,134,1,91,1,21,1,4,3,225,2,218,0, +11,0,234,255,132,0,238,1,67,2,10,2,2,2,201,0,115,255,144,255,179,255,220,255,75,1,249,1,115,255,231,251, +234,251,79,255,240,0,204,255,169,255,106,0,30,0,147,0,26,2,147,2,39,3,168,4,8,4,23,1,39,0,87,2, +136,3,249,0,57,253,211,251,219,252,17,255,121,1,234,1,93,0,49,0,26,1,219,255,151,254,44,0,154,1,75,1, +103,1,127,1,240,0,251,0,29,1,105,1,142,2,82,2,50,1,213,1,139,1,196,255,17,1,69,3,214,1,96,255, +36,254,143,254,167,1,40,3,150,0,101,255,244,255,200,254,239,254,135,0,51,255,110,253,84,254,134,255,189,255,184,254, +74,253,221,254,4,2,238,1,100,255,31,253,37,252,222,253,194,0,83,1,191,255,75,254,136,254,178,255,191,254,163,252, +35,253,138,254,145,254,250,255,153,2,0,2,186,254,115,254,237,1,150,2,38,255,105,255,181,3,23,4,164,1,45,1, +22,0,75,254,176,254,127,254,103,253,45,255,146,1,109,1,164,0,79,0,156,0,224,1,89,2,207,1,78,1,244,255, +96,255,18,1,11,1,144,255,216,1,6,4,236,0,95,255,244,2,143,3,2,0,204,255,208,1,15,0,8,253,177,253, +27,0,157,0,72,0,20,1,23,1,89,255,51,255,148,0,1,0,154,255,44,1,19,0,186,252,229,251,140,251,34,251, +110,254,223,0,236,253,230,251,120,253,76,254,203,254,200,255,156,255,210,0,103,3,32,2,169,254,86,254,73,255,95,255, +107,0,238,0,186,255,145,0,222,2,51,2,38,1,77,2,83,1,162,255,225,2,243,5,36,3,235,255,92,255,155,254, +229,254,18,1,121,2,198,2,168,1,199,254,163,253,118,255,36,1,125,1,255,0,127,0,10,1,105,1,249,0,123,0, +134,254,17,253,151,0,220,4,29,4,152,1,197,255,237,253,2,255,22,2,123,1,7,255,195,255,43,1,177,255,235,253, +117,254,31,255,32,254,134,253,26,254,247,253,238,253,205,255,157,1,83,1,54,0,39,0,20,1,208,0,70,254,26,252, +198,252,47,255,162,0,6,0,210,255,199,1,113,2,155,0,86,0,60,1,157,0,24,1,213,2,99,2,250,1,239,3, +70,5,79,5,162,4,8,2,108,0,250,1,188,1,199,254,184,254,232,0,190,0,53,255,185,254,178,255,240,1,107,2, +108,255,169,253,135,255,0,1,117,0,121,255,167,254,10,255,36,0,29,0,63,0,46,0,75,253,154,251,153,254,104,0, +121,254,79,254,59,1,133,3,25,3,10,1,157,0,119,1,20,0,217,254,232,0,214,1,4,255,21,252,168,251,251,253, +181,0,182,0,48,0,50,1,91,0,2,254,79,254,50,0,145,0,122,255,193,254,61,0,87,2,204,1,218,255,220,254, +175,254,227,255,130,1,242,0,198,255,141,0,35,2,213,2,128,1,173,254,80,253,132,253,98,253,41,254,252,255,60,0, +67,255,3,255,175,255,149,0,63,0,226,254,18,255,94,0,114,0,53,0,175,0,232,0,198,0,104,0,110,255,71,254, +145,253,17,254,145,255,54,255,118,252,178,251,53,254,205,255,54,255,140,255,73,1,184,1,135,0,41,0,251,0,102,0, +28,254,185,253,59,0,152,1,122,0,13,0,152,0,48,0,174,255,169,255,230,255,151,1,247,2,251,0,156,254,232,254, +39,255,45,254,11,254,12,255,43,0,19,0,202,254,46,255,234,0,24,0,5,254,70,254,12,255,130,254,248,254,251,0, +150,1,45,0,41,0,3,2,160,1,211,255,111,1,34,4,97,3,119,1,178,0,109,0,67,1,98,1,147,254,88,253, +155,0,87,3,40,3,250,2,197,2,192,1,46,2,56,3,165,1,118,255,41,255,123,254,79,254,31,1,225,1,126,254, +89,254,229,1,2,2,140,255,235,254,210,255,113,1,195,1,115,255,185,254,255,255,159,254,185,253,78,1,34,3,94,255, +174,251,245,251,81,254,37,0,90,0,127,255,217,254,79,255,155,0,24,1,172,0,222,0,6,1,102,0,29,0,133,255, +29,254,32,254,93,255,155,255,234,255,106,1,66,2,96,1,170,255,157,254,95,255,249,0,217,1,179,2,119,3,125,1, +250,253,21,255,151,4,234,5,9,1,115,253,145,253,197,253,171,254,185,0,11,0,188,253,198,254,96,1,151,1,30,1, +52,1,207,255,250,253,117,254,212,255,28,255,88,252,2,250,160,250,197,253,23,0,74,0,211,255,86,255,97,255,123,0, +54,1,107,1,138,2,72,3,123,2,253,1,244,1,120,0,231,253,210,252,201,254,252,0,202,255,255,253,128,254,34,254, +112,253,120,255,253,255,188,253,96,254,61,0,173,255,196,0,149,2,196,255,141,252,172,253,63,255,132,255,65,0,202,255, +12,254,14,255,219,2,137,4,187,2,51,1,47,1,107,0,222,255,48,2,150,5,182,6,29,5,90,2,226,0,87,1, +72,1,85,0,30,1,252,2,175,2,227,0,242,0,81,2,95,1,119,254,69,253,193,253,144,253,88,253,218,253,206,253, +174,253,35,254,29,253,153,250,69,250,248,252,136,255,39,0,39,255,64,253,32,252,199,252,11,254,139,255,75,1,15,1, +17,255,58,255,211,0,187,255,130,253,181,253,1,255,175,255,31,0,179,255,187,254,8,255,211,255,24,0,178,1,143,3, +230,1,15,255,92,255,28,0,102,255,172,0,88,2,164,0,47,255,104,255,11,253,21,251,74,254,228,0,179,254,126,253, +138,255,137,0,14,0,1,0,157,254,35,252,101,253,133,1,36,1,172,252,244,251,86,255,177,1,155,2,109,2,54,0, +204,254,66,0,164,1,5,1,112,255,178,253,2,253,102,254,71,0,178,0,130,0,118,1,12,3,116,3,214,1,248,254, +219,253,128,0,237,2,89,1,136,255,56,0,13,0,24,255,124,0,237,1,161,0,49,255,136,255,137,255,187,253,209,251, +167,251,184,252,85,254,51,0,19,0,90,253,176,251,142,252,147,253,212,253,174,253,172,253,242,254,242,255,160,254,232,253, +240,255,74,1,64,0,81,255,144,255,121,0,171,1,181,1,43,0,54,255,156,255,32,0,236,0,6,2,53,2,63,2, +235,2,14,2,190,255,18,255,4,0,208,0,79,1,43,1,184,0,129,0,34,255,219,253,93,255,80,0,57,254,163,253, +47,255,186,254,226,253,229,254,151,254,186,252,95,252,173,252,54,253,107,0,57,3,99,0,75,252,24,253,222,254,248,253, +228,253,204,254,133,254,110,255,30,1,54,0,145,254,55,254,23,254,215,254,197,255,162,255,254,0,212,2,96,1,221,255, +244,0,30,1,121,0,33,1,10,1,79,0,148,1,183,3,19,4,148,2,159,1,96,2,249,1,215,255,165,255,57,0, +210,254,47,255,114,2,132,3,231,1,233,0,188,0,190,0,85,0,205,254,14,254,21,255,48,255,85,254,96,255,127,0, +35,254,165,251,255,253,211,1,171,1,168,255,142,255,227,255,223,254,207,253,245,253,238,254,128,255,91,255,96,255,3,255, +66,253,55,252,5,254,112,0,242,0,13,1,16,2,208,1,228,255,101,255,148,0,19,1,27,1,237,0,158,255,222,254, +225,255,223,0,123,1,59,2,86,2,32,2,81,2,96,2,166,1,205,255,169,254,53,0,148,1,245,0,28,1,116,1, +223,0,213,1,0,2,66,255,193,254,45,0,101,255,220,255,17,1,41,254,141,252,69,255,58,255,176,253,178,255,50,0, +215,253,187,254,174,1,242,1,127,0,140,255,205,255,21,1,166,1,4,1,234,0,239,1,244,2,10,3,191,2,92,3, +43,4,68,3,76,1,129,0,210,0,193,0,225,0,74,2,65,3,71,2,246,0,162,0,63,1,42,2,60,1,201,254, +169,254,191,255,79,254,115,253,195,255,172,0,36,255,164,255,180,1,196,1,252,0,162,1,71,2,226,1,245,1,86,2, +248,1,127,2,35,4,73,4,172,3,70,4,83,4,15,3,134,2,243,2,41,3,147,2,210,1,63,2,9,2,76,255, +235,253,74,255,232,254,203,253,199,255,188,1,41,1,127,0,48,0,220,255,144,0,95,1,253,0,225,255,221,254,136,254, +20,254,36,253,28,254,162,0,3,1,160,255,152,254,136,253,251,253,249,0,155,2,100,1,114,0,12,0,234,254,168,254, +193,255,39,0,122,255,221,254,238,254,58,0,154,1,112,0,82,254,246,254,88,0,51,255,152,253,61,253,59,253,243,253, +200,254,128,254,130,254,38,255,160,255,146,0,107,0,207,254,1,0,161,2,87,1,63,255,57,0,188,0,153,255,99,255, +236,255,97,0,148,0,171,0,34,2,207,3,12,3,180,1,222,1,19,2,8,2,151,2,93,3,167,3,176,2,118,1, +179,1,160,1,51,0,126,255,158,254,85,253,37,255,175,1,209,255,252,252,142,253,9,255,90,255,80,255,110,255,18,0, +115,0,193,255,78,255,110,255,2,255,88,254,232,253,57,254,204,255,61,0,159,254,178,254,67,0,41,255,208,253,23,0, +40,2,98,1,95,1,179,2,204,2,17,2,194,0,150,254,159,254,144,1,202,2,66,1,164,0,67,1,163,0,245,254, +55,254,132,254,9,254,221,252,4,253,166,253,54,253,208,253,230,255,65,0,30,255,40,255,190,255,131,255,42,255,110,255, +203,255,140,255,155,255,91,0,130,255,66,254,153,0,46,3,25,1,40,254,213,253,147,254,168,0,231,2,240,1,0,0, +59,0,2,1,105,1,143,1,2,1,24,1,199,1,104,1,0,1,200,0,182,255,201,255,55,1,22,1,206,255,5,255, +164,254,117,255,203,0,158,0,25,0,86,0,217,255,182,254,46,254,119,254,72,255,153,255,78,255,121,255,47,255,54,254, +192,254,210,255,80,255,32,255,186,255,177,254,97,253,91,254,187,255,165,255,116,255,47,255,104,253,6,252,91,253,197,254, +93,254,194,254,123,255,39,254,62,254,50,1,118,1,186,254,28,254,13,255,186,255,198,1,37,3,201,0,99,254,174,255, +175,1,44,1,235,255,61,0,34,1,91,1,194,1,215,1,232,255,130,254,231,0,104,3,240,1,105,0,213,1,181,1, +218,254,170,254,180,1,252,2,104,1,143,255,149,254,211,253,155,252,13,252,90,253,155,254,142,254,189,254,166,254,99,253, +44,253,56,254,116,254,86,254,29,254,73,253,204,253,173,255,218,255,116,254,206,253,202,253,78,253,166,252,145,253,105,0, +198,1,237,255,71,254,146,254,204,254,2,255,169,0,251,1,129,0,148,254,246,255,10,2,252,0,233,255,198,0,137,0, +181,0,16,3,212,2,103,0,96,1,90,3,105,2,32,1,197,0,158,0,46,1,237,0,140,255,167,255,65,0,3,255, +85,253,196,252,191,253,96,0,227,2,243,3,48,3,202,255,129,252,50,253,60,255,44,255,29,255,240,255,191,255,122,255, +251,255,117,255,135,254,91,255,49,0,153,254,129,252,193,252,22,255,106,1,142,1,64,255,27,253,235,252,19,254,167,255, +209,255,176,253,163,252,121,254,74,0,60,1,232,1,229,0,170,255,139,0,32,1,172,0,72,1,151,0,27,253,189,251, +90,254,44,0,159,254,176,252,117,253,137,255,179,255,110,254,83,254,127,255,181,0,41,1,96,0,106,255,224,255,72,1, +16,2,124,1,200,255,23,254,227,253,46,255,246,255,102,255,221,255,33,2,60,3,141,2,252,1,216,0,73,255,28,0, +50,2,254,1,36,0,53,255,219,255,95,1,248,1,205,0,110,255,29,255,29,0,105,2,201,3,63,2,125,0,9,1, +58,1,11,0,44,1,188,3,117,2,240,254,102,254,96,255,14,255,251,254,60,255,99,254,159,253,178,253,175,253,184,253, +146,254,151,255,131,254,238,251,159,252,200,255,159,255,211,254,113,1,14,2,17,0,57,1,21,2,196,255,84,0,13,3, +123,2,22,1,79,1,204,1,196,2,161,2,78,0,40,255,137,255,157,255,159,0,153,1,27,1,107,1,115,1,251,254, +202,253,85,255,11,0,50,0,249,0,1,0,236,253,57,254,15,0,61,0,80,255,103,255,92,255,28,254,78,254,78,0, +190,0,97,0,193,1,103,2,244,0,33,0,26,0,48,0,122,1,168,1,143,254,153,252,112,254,204,255,222,254,127,254, +255,254,49,255,222,255,132,0,123,255,50,254,231,254,79,0,30,0,46,255,58,255,41,255,19,254,24,254,142,255,16,0, +210,255,108,255,215,253,160,253,45,0,153,0,154,254,90,255,158,1,123,2,205,2,240,0,215,253,5,255,185,1,65,0, +147,254,233,255,196,0,83,0,8,0,225,255,89,0,57,1,31,2,5,3,215,1,47,255,57,255,41,1,180,1,82,1, +97,0,140,255,155,0,69,1,50,0,184,0,239,1,138,0,221,254,249,254,75,255,63,255,178,254,86,254,251,255,83,1, +134,255,251,253,58,255,244,255,252,254,27,255,76,0,137,0,219,0,82,2,172,2,203,1,110,2,73,3,186,1,216,255, +128,255,31,0,7,2,109,3,235,1,69,0,47,0,15,255,47,254,238,255,188,0,176,254,139,253,195,254,18,0,28,0, +245,254,186,253,188,253,76,254,63,254,107,254,42,255,219,254,147,253,170,253,121,255,84,1,97,2,85,2,123,1,206,0, +51,0,7,0,212,1,234,3,149,3,163,2,170,2,218,1,180,0,238,0,28,1,208,0,184,1,155,2,148,1,176,0, +93,1,169,0,25,254,130,254,44,2,250,2,100,0,149,255,86,0,160,255,211,254,13,255,135,254,184,253,213,254,209,0, +138,0,133,254,53,254,81,255,57,255,31,255,56,0,58,0,73,255,173,255,123,0,79,0,105,255,243,253,204,253,104,0, +254,1,140,255,70,253,251,254,203,0,232,254,4,253,102,254,201,255,198,255,169,0,202,0,13,255,52,255,181,0,8,0, +121,255,179,0,5,1,227,0,99,1,61,0,61,254,136,254,39,0,152,0,174,255,240,254,142,255,190,255,23,254,209,253, +24,0,224,0,167,255,224,255,75,1,243,1,15,2,134,1,143,0,204,0,159,1,47,1,101,0,89,0,51,0,46,0, +192,0,164,0,54,0,48,1,109,2,72,2,179,1,215,0,223,254,106,253,64,254,241,255,126,0,67,0,130,0,250,0, +160,0,32,0,169,0,48,1,199,0,135,0,58,0,241,254,237,254,122,1,174,2,156,0,81,255,69,0,29,0,244,254, +157,255,168,0,3,0,126,255,144,255,38,254,139,252,193,253,150,0,5,2,243,1,180,1,151,1,140,1,41,1,10,0, +186,255,84,1,41,2,164,0,130,255,173,255,196,255,1,1,250,2,197,1,57,254,28,253,194,254,154,0,173,1,238,1, +218,1,169,1,206,0,4,0,4,0,154,255,196,254,195,254,9,255,27,255,166,255,245,255,68,255,35,255,137,0,186,1, +124,1,189,0,215,255,226,254,129,255,191,0,139,255,118,254,112,0,231,0,211,254,149,255,241,0,186,254,54,254,243,0, +242,0,87,255,65,0,15,1,66,0,218,255,132,255,230,254,171,254,138,254,232,254,105,255,224,254,242,254,30,0,164,255, +101,254,10,255,191,255,42,255,100,255,153,0,11,1,155,0,34,0,249,255,185,255,90,255,181,255,58,0,204,255,192,255, +151,0,46,0,24,255,156,255,51,0,64,255,223,254,251,255,234,0,47,1,248,0,244,255,232,254,187,254,19,255,147,255, +21,0,121,0,233,0,202,0,234,255,202,255,240,255,150,254,200,253,29,255,245,255,251,255,210,0,2,1,214,0,85,2, +145,2,151,255,113,253,198,253,54,254,106,254,17,255,143,255,110,255,83,255,57,0,213,0,86,255,15,254,16,255,66,0, +24,1,249,1,0,1,138,255,74,0,232,0,188,255,212,254,230,254,188,255,118,0,128,255,136,254,28,255,19,255,60,254, +224,253,187,253,252,254,252,0,140,0,91,255,110,255,138,254,5,254,185,255,127,0,110,0,139,1,77,1,187,255,209,255, +70,0,194,255,97,255,66,255,246,255,30,1,124,0,70,255,214,255,179,0,244,0,170,1,89,2,246,1,196,0,83,0, +100,1,192,1,120,0,239,255,13,0,68,255,42,255,91,0,183,0,198,255,247,254,71,255,210,255,42,255,214,254,66,0, +17,1,168,0,49,1,26,2,54,2,8,2,43,1,225,255,183,255,136,0,224,0,43,0,14,0,41,2,160,3,253,1, +79,0,206,255,195,254,222,254,118,0,219,0,165,0,33,0,23,254,30,253,234,253,100,253,208,252,21,254,205,254,177,254, +12,255,113,254,231,252,227,252,246,254,221,0,102,0,18,255,111,255,243,255,93,255,217,255,34,1,246,0,56,0,164,0, +219,1,198,2,15,3,164,2,178,0,147,254,191,255,62,2,149,1,10,0,10,0,66,255,201,254,77,0,207,0,236,255, +133,255,250,254,68,255,1,1,39,1,109,255,4,254,48,253,220,253,149,255,46,255,183,253,87,254,87,255,3,255,36,255, +212,255,108,255,184,254,97,255,68,0,218,255,73,255,15,255,104,254,247,254,230,0,17,1,53,0,157,0,94,0,145,255, +133,0,63,1,148,0,218,0,168,1,129,1,53,1,80,1,215,1,246,1,178,0,30,0,20,1,178,0,221,255,54,1, +187,1,82,255,136,253,50,254,77,255,105,255,20,255,186,255,229,0,53,0,22,254,131,253,130,254,179,254,64,254,253,254, +13,0,178,255,254,254,12,255,40,255,207,255,67,1,155,1,186,0,65,0,28,0,40,0,193,0,48,1,115,1,214,1, +98,1,118,0,156,0,49,1,195,0,126,255,114,254,41,254,112,254,29,255,216,255,181,255,19,255,227,254,113,254,57,254, +158,255,171,0,19,0,73,0,26,1,82,0,169,255,100,0,16,0,155,254,157,254,162,255,225,255,58,0,245,0,55,0, +31,255,111,0,150,2,124,3,21,4,108,3,176,0,152,255,86,1,150,2,186,2,202,2,56,2,17,1,144,255,36,254, +143,254,118,0,89,1,63,0,175,253,49,252,241,253,197,255,68,255,211,255,114,1,85,0,153,254,140,255,171,0,125,0, +49,1,56,2,60,1,140,255,139,255,44,0,241,255,192,255,221,255,176,255,194,255,12,0,76,0,232,0,168,0,149,255, +71,0,41,1,205,255,197,255,186,1,91,1,77,0,110,1,33,1,206,254,168,254,50,0,130,0,12,0,170,255,21,255, +184,254,54,255,81,0,30,1,226,0,235,255,176,255,35,1,74,2,11,1,171,255,133,0,104,1,249,0,229,0,11,1, +90,0,181,255,191,255,220,255,239,255,109,0,241,0,112,0,192,255,136,0,94,1,231,0,170,0,65,0,197,254,223,254, +147,0,98,0,60,255,115,255,145,255,58,255,169,255,244,255,172,255,194,255,180,255,240,254,95,254,117,254,160,254,233,254, +16,0,101,1,39,1,200,255,76,255,3,0,11,1,108,1,119,0,46,255,0,255,190,255,184,0,22,1,55,0,112,255, +164,255,130,255,255,254,80,255,16,0,133,0,109,0,119,255,151,254,214,254,142,255,82,0,17,1,6,1,244,0,57,2, +240,2,241,0,172,254,52,255,249,0,44,1,73,0,1,0,146,0,25,1,115,0,252,254,96,254,134,254,130,254,203,254, +242,254,112,254,230,254,234,255,71,255,157,254,86,255,43,255,181,254,25,0,136,0,215,254,65,255,135,1,51,1,4,0, +121,1,52,2,32,0,163,255,52,1,135,0,235,254,213,255,244,0,5,0,38,255,235,255,139,1,56,2,155,0,102,254, +13,254,205,254,74,255,205,255,99,0,162,0,81,0,158,255,64,255,62,255,55,255,140,255,171,255,226,254,94,254,250,253, +140,252,46,252,17,254,190,254,38,253,225,252,185,254,184,255,32,255,176,254,38,255,166,0,186,2,193,2,74,0,186,255, +246,1,89,2,159,0,76,0,188,0,82,0,225,255,168,255,230,255,186,0,152,0,248,255,163,0,251,0,231,255,171,255, +137,0,189,0,132,0,169,0,247,0,42,1,238,0,55,0,234,255,115,0,121,0,6,255,235,253,113,254,120,254,166,253, +127,254,191,255,207,254,57,254,252,255,85,1,248,0,140,0,117,0,59,0,72,0,206,0,225,0,248,255,145,255,122,0, +233,0,196,0,152,1,193,1,14,0,89,255,20,0,154,255,228,254,20,0,72,1,194,0,50,0,218,0,186,1,239,1, +124,1,186,0,220,0,44,2,33,2,7,0,133,255,62,1,79,1,149,255,4,255,80,255,89,255,170,255,21,0,71,0, +58,0,90,255,173,254,76,255,77,255,36,254,48,254,48,255,73,255,49,255,154,255,219,255,22,0,84,0,36,0,251,255, +8,0,168,255,239,254,155,254,63,255,164,0,104,1,134,0,244,254,97,254,244,254,114,255,177,255,202,0,51,2,67,2, +19,1,169,255,240,254,180,255,7,1,170,1,50,2,67,2,252,0,5,0,54,0,53,0,9,0,213,255,78,255,215,255, +44,1,80,1,243,0,138,0,37,255,146,254,189,255,82,0,71,0,168,0,129,0,18,0,135,255,161,253,102,252,173,254, +157,1,12,1,90,254,123,253,164,254,132,255,252,255,83,0,126,255,166,254,36,255,162,255,82,0,59,1,232,255,117,254, +60,0,135,1,148,0,27,1,10,2,252,0,109,0,245,0,206,0,54,0,115,255,29,255,16,0,186,0,104,0,56,0, +175,255,28,255,194,255,51,0,99,255,255,254,185,255,52,0,136,255,242,254,63,255,194,254,75,254,89,0,208,1,128,0, +146,0,251,1,114,1,10,1,64,1,176,255,199,254,50,0,100,1,87,1,178,255,173,253,209,254,50,1,194,0,224,255, +62,0,191,255,58,255,201,255,218,255,59,255,215,254,255,254,194,255,144,0,32,1,41,1,75,0,168,255,37,255,144,253, +65,253,255,254,71,255,150,254,117,255,72,0,22,0,102,255,89,254,56,255,199,1,236,1,31,0,60,255,39,255,243,255, +158,0,87,255,93,254,12,255,126,255,249,255,36,0,202,254,226,254,62,1,247,1,183,0,189,255,133,255,101,0,92,1, +248,0,81,0,18,0,1,0,145,0,205,0,112,0,35,1,224,1,8,1,66,0,183,0,79,1,204,0,76,255,222,254, +245,255,121,0,38,0,182,255,159,255,56,1,139,2,241,0,219,255,194,0,55,0,19,0,4,2,112,1,245,254,79,255, +209,0,247,0,135,0,178,255,172,255,197,0,50,0,141,254,169,254,21,255,150,254,1,255,37,0,95,0,20,0,241,255, +104,255,200,254,123,255,136,0,177,255,171,254,230,255,80,1,93,1,120,1,76,1,26,0,79,255,169,255,103,0,106,0, +76,255,143,254,208,254,229,254,102,255,107,0,44,0,210,255,113,0,164,255,135,254,38,0,131,1,252,255,14,255,89,0, +11,1,14,0,9,255,41,255,229,255,26,0,247,255,144,0,146,1,166,1,176,0,35,0,209,0,141,1,62,1,152,0, +125,0,160,0,119,0,20,0,222,255,1,0,79,0,152,0,194,0,185,0,81,0,109,255,167,254,192,254,95,255,211,255, +17,0,98,0,34,1,152,1,55,0,85,254,28,255,111,1,190,1,123,0,66,0,195,0,55,0,13,255,61,255,204,0, +184,1,125,1,59,1,217,0,215,255,67,255,174,255,199,255,255,254,183,254,93,255,187,255,148,255,106,255,21,255,1,255, +137,255,202,255,210,255,10,0,124,255,197,254,106,255,17,0,195,255,216,255,231,255,54,255,226,254,208,254,196,254,248,255, +52,1,132,0,141,255,233,255,196,0,119,1,81,1,54,0,65,0,202,1,13,2,41,1,154,1,241,1,23,0,171,254, +136,255,50,0,169,255,64,255,6,255,82,255,52,0,137,255,188,253,193,253,183,254,199,254,28,255,103,255,150,254,92,254, +244,254,156,254,54,254,215,254,52,255,249,254,245,254,7,255,16,255,93,255,10,0,217,0,219,0,183,255,7,255,222,255, +195,0,99,0,186,255,250,255,165,0,204,0,106,0,45,0,150,0,65,1,110,1,252,0,24,0,91,255,215,255,222,0, +148,0,102,255,162,254,108,254,81,255,212,0,200,0,176,255,118,255,96,255,67,255,19,0,91,0,128,255,85,255,138,255, +90,255,54,0,132,1,26,1,1,0,236,255,227,255,39,255,152,254,137,254,187,254,102,255,106,0,249,0,225,0,161,0, +107,0,86,0,125,0,164,0,237,0,140,1,110,1,217,255,110,254,238,254,98,0,157,0,138,255,241,254,67,255,122,255, +209,255,238,0,157,1,26,1,6,1,38,2,123,2,243,0,126,255,120,255,218,255,8,0,255,255,244,254,162,253,2,254, +68,255,158,255,3,0,11,1,39,1,106,0,64,0,36,0,117,255,77,255,181,255,114,255,40,255,214,255,93,0,106,0, +52,1,0,2,157,1,35,1,53,1,5,1,232,0,134,1,62,2,57,2,119,1,229,0,216,0,65,0,66,255,81,255, +239,255,126,255,50,254,176,253,233,254,112,0,132,0,107,0,8,1,96,0,6,255,145,255,123,0,114,255,35,254,104,254, +133,255,238,255,40,255,89,254,56,254,30,254,29,254,117,254,165,254,247,254,106,255,57,255,77,255,106,0,27,1,186,0, +0,0,68,255,43,255,7,0,219,0,220,0,72,0,249,255,71,0,111,0,139,0,53,1,30,1,47,0,140,0,89,1, +144,0,194,255,39,0,112,0,111,0,140,0,90,0,27,0,68,0,199,0,110,1,72,1,56,0,243,255,184,0,234,0, +174,0,4,1,26,1,83,0,223,255,19,0,232,255,162,255,37,0,230,0,69,1,53,1,103,0,190,255,85,0,193,0, +237,255,80,255,115,255,151,255,219,255,31,0,23,0,21,0,186,255,44,255,173,255,141,0,146,0,199,0,36,1,45,0, +62,255,238,255,78,0,146,255,189,255,143,0,78,0,160,255,47,255,147,254,141,254,41,255,66,255,152,255,111,0,15,0, +87,255,230,255,84,0,155,0,238,1,65,2,240,0,183,0,50,1,38,0,175,254,154,254,178,255,237,0,58,1,131,0, +150,255,32,255,181,255,167,0,139,0,25,0,115,0,178,0,80,0,145,255,155,254,155,254,219,255,111,0,232,255,184,255, +242,255,146,255,127,254,241,253,203,254,173,255,15,255,249,253,222,253,185,254,193,255,14,0,231,255,34,0,243,255,29,255, +87,255,169,0,79,1,226,0,12,0,139,255,250,255,214,0,11,1,123,0,43,0,208,0,27,1,170,255,4,254,12,254, +45,255,35,0,27,0,23,255,70,254,229,253,168,253,155,254,244,255,46,255,147,253,235,253,13,255,27,255,220,254,11,255, +70,255,135,255,184,255,75,255,194,254,121,255,237,0,122,1,108,1,117,1,48,1,86,1,229,1,178,0,176,254,93,255, +112,1,95,1,82,0,231,0,254,1,186,1,253,0,232,0,212,0,128,0,75,0,171,255,227,254,2,255,53,255,239,254, +72,255,136,255,114,254,134,253,243,253,155,254,164,254,101,254,186,254,195,255,133,0,214,0,251,0,86,0,122,255,131,255, +172,255,180,255,33,0,7,0,136,255,244,255,174,0,203,0,108,0,185,255,226,255,24,1,20,1,15,0,92,0,235,0, +34,0,117,255,198,255,22,0,0,0,4,0,80,0,43,0,91,255,62,255,72,0,33,1,36,1,175,0,102,0,248,0, +97,1,85,0,65,255,150,255,86,0,204,0,106,1,229,1,145,1,164,0,60,0,201,0,214,0,151,255,232,254,206,255, +38,0,177,254,202,253,11,255,93,0,87,0,92,0,78,0,45,255,208,254,245,255,251,255,200,254,161,254,244,254,224,254, +143,255,96,0,187,255,11,255,248,255,31,1,236,0,54,0,77,0,223,0,209,0,39,0,3,0,199,0,143,1,99,1, +85,0,163,255,53,0,233,0,141,0,15,0,14,0,232,255,89,0,177,1,222,1,161,0,248,255,215,255,165,255,32,0, +159,0,27,0,132,255,101,255,97,255,180,255,43,0,64,0,74,0,85,0,235,255,55,255,207,254,245,254,77,255,117,255, +129,255,42,255,136,254,179,254,83,255,80,255,119,255,216,255,76,255,43,255,90,0,209,0,97,0,87,0,238,255,74,255, +162,255,186,255,200,254,138,254,84,255,219,255,6,0,253,255,80,255,154,254,248,254,204,255,187,255,44,255,17,255,43,255, +101,255,198,255,68,255,43,254,122,254,23,0,11,1,212,0,68,0,42,0,3,1,81,2,239,2,155,2,58,2,85,2, +53,2,172,1,187,1,52,2,27,2,218,1,157,1,209,0,41,0,12,0,208,255,67,0,138,1,94,1,247,255,253,255, +173,0,2,0,145,255,146,0,43,1,189,0,89,0,186,255,246,254,100,255,102,0,127,0,77,0,65,0,164,255,27,255, +85,255,49,255,95,254,43,254,210,254,80,255,91,255,95,255,38,255,127,254,133,254,185,255,141,0,42,0,134,255,46,255, +45,255,138,255,234,255,49,0,12,0,53,255,26,255,21,0,253,255,37,255,151,255,31,0,197,255,29,0,206,0,115,0, +222,255,217,255,41,0,160,0,206,0,152,0,78,0,214,255,196,255,188,0,155,1,65,1,32,0,31,255,4,255,205,255, +144,0,198,0,116,0,2,0,25,0,44,0,177,255,208,255,105,0,248,255,143,255,112,0,203,0,206,255,101,255,243,255, +8,0,147,255,96,255,63,255,65,255,254,255,133,0,220,255,132,255,42,0,241,255,224,254,235,254,251,255,8,1,169,1, +76,1,116,0,37,0,186,255,8,255,100,255,138,0,23,1,235,0,110,0,255,255,55,0,6,1,176,1,164,1,218,0, +58,0,136,0,220,0,80,0,243,255,120,0,112,0,49,255,75,254,129,254,189,254,153,254,219,254,194,255,151,0,150,0, +242,255,131,255,141,255,253,255,191,0,14,1,141,0,45,0,57,0,237,255,73,255,10,255,133,255,35,0,34,0,13,0, +107,0,105,0,43,0,138,0,130,0,172,255,174,255,142,0,194,0,32,0,183,255,80,0,35,1,199,0,67,0,23,1, +212,1,72,1,79,0,78,255,171,254,5,255,149,255,208,255,214,255,81,255,31,255,9,0,52,0,231,254,76,254,10,255, +218,255,18,0,142,255,228,254,25,255,185,255,180,255,120,255,195,255,39,0,66,0,98,0,31,0,28,255,214,254,1,0, +209,0,207,0,17,1,3,1,128,0,138,0,78,0,158,255,91,0,165,1,16,1,158,255,74,255,1,0,17,1,138,1, +235,0,53,0,253,255,175,255,144,255,35,0,139,0,52,0,42,0,230,0,18,1,72,0,247,255,82,0,64,0,23,0, +95,0,38,0,79,255,23,255,136,255,125,255,227,254,169,254,0,255,73,255,100,255,143,255,183,255,216,255,17,0,57,0, +24,0,208,255,224,255,102,0,152,0,48,0,37,0,190,0,42,1,236,0,55,0,220,255,71,0,163,0,180,0,237,0, +130,0,103,255,32,255,167,255,29,0,91,0,149,255,54,254,32,254,146,254,45,254,83,254,75,255,149,255,108,255,60,255, +132,254,195,253,166,253,18,254,190,254,57,255,156,255,65,0,121,0,0,0,179,255,185,255,197,255,219,255,21,0,201,0, +68,1,36,0,196,254,91,255,150,0,161,0,160,0,140,1,12,2,14,1,179,255,114,255,235,255,129,0,124,1,231,1, +190,0,189,255,136,0,208,1,193,1,162,0,112,0,191,1,46,2,169,0,123,255,151,255,193,255,252,255,160,0,214,0, +45,0,84,255,111,255,146,0,215,0,121,255,83,254,80,254,161,254,69,255,46,0,114,0,87,0,247,0,163,1,199,0, +50,255,52,255,77,0,25,0,11,255,45,255,3,0,103,0,197,0,209,0,225,255,49,255,151,255,248,255,65,0,58,1, +215,1,72,1,173,0,70,0,128,255,32,255,110,255,64,255,152,254,186,254,199,255,123,0,251,255,232,254,50,254,44,254, +50,255,113,0,72,0,188,255,76,0,111,0,227,255,64,0,75,0,140,255,71,0,101,1,204,0,72,0,112,0,221,255, +171,255,60,0,252,255,204,255,147,0,166,0,8,0,101,0,28,1,219,0,109,0,206,0,8,1,61,0,156,255,252,255, +109,0,149,0,162,0,247,255,201,254,91,254,221,254,120,255,176,255,246,255,159,0,156,0,134,255,233,254,13,255,240,254, +9,255,174,255,49,0,183,0,8,1,139,0,48,0,70,0,209,255,117,255,23,0,170,0,89,0,128,255,201,254,224,254, +139,255,228,255,191,255,98,255,40,255,152,255,135,0,17,1,199,0,36,0,15,0,87,0,5,0,161,255,8,0,121,0, +154,0,141,0,114,255,27,254,121,254,41,255,162,254,234,254,57,0,239,255,213,254,22,255,126,255,90,255,0,0,140,0, +216,255,177,255,174,0,208,0,222,255,71,255,78,255,178,255,103,0,13,1,31,1,148,0,63,0,160,0,201,0,104,0, +59,0,252,255,190,255,140,0,115,1,20,1,105,0,10,0,137,255,114,255,167,255,129,255,200,255,113,0,72,0,246,255, +138,0,23,1,161,0,166,255,38,255,95,255,184,255,179,255,85,255,85,255,131,0,183,1,73,1,89,0,45,0,249,255, +203,255,9,0,236,255,208,255,4,0,102,255,205,254,147,255,77,0,17,0,176,255,75,255,74,255,22,0,166,0,121,0, +23,0,196,255,173,255,93,255,131,254,133,254,201,255,162,0,126,0,14,0,202,255,252,255,73,0,127,0,185,0,11,0, +254,254,209,255,101,1,33,1,10,0,133,255,40,255,48,255,142,255,162,255,196,255,233,255,237,255,151,0,53,1,160,0, +243,255,21,0,124,0,4,1,110,1,68,1,208,0,73,0,231,255,31,0,99,0,0,0,104,255,65,255,180,255,32,0, +204,255,182,255,165,0,207,0,147,255,248,254,111,255,195,255,244,255,9,0,161,255,151,255,56,0,237,255,168,254,160,254, +221,255,56,0,211,255,232,255,167,255,224,254,18,255,230,255,14,0,5,0,39,0,251,255,238,255,49,0,74,0,146,0, +61,1,150,1,80,1,134,0,135,255,67,255,215,255,57,0,66,0,98,0,59,0,167,255,33,255,222,254,25,255,218,255, +84,0,61,0,89,0,141,0,25,0,159,255,23,0,197,0,148,0,233,255,176,255,233,255,37,0,73,0,23,0,115,255, +53,255,153,255,99,255,170,254,12,255,1,0,220,255,116,255,254,255,108,0,27,0,40,0,196,0,237,0,182,0,234,0, +27,1,163,0,59,0,76,0,38,0,214,255,222,255,2,0,31,0,9,0,111,255,84,255,77,0,171,0,234,255,153,255, +148,255,34,255,79,255,13,0,243,255,182,255,119,0,173,0,49,255,3,254,194,254,236,255,229,255,100,255,119,255,252,255, +100,0,119,0,138,0,184,0,92,0,215,255,119,0,85,1,166,0,110,255,120,255,65,0,171,0,157,0,70,0,208,255, +130,255,185,255,113,0,224,0,172,0,129,0,102,0,241,255,200,255,71,0,100,0,202,255,126,255,168,255,115,255,28,255, +142,255,49,0,237,255,143,255,48,0,221,0,127,0,246,255,38,0,39,0,82,255,240,254,198,255,133,0,134,0,111,0, +0,0,56,255,60,255,226,255,85,0,247,0,110,1,20,1,243,0,46,1,199,0,161,0,36,1,180,0,195,255,242,255, +76,0,208,255,96,255,86,255,135,255,237,255,189,255,233,254,198,254,95,255,189,255,8,0,100,0,74,0,240,255,240,255, +56,0,92,0,239,255,85,255,167,255,106,0,30,0,77,255,85,255,232,255,121,0,239,0,187,0,27,0,4,0,76,0, +117,0,153,0,136,0,87,0,125,0,116,0,219,255,158,255,28,0,86,0,190,255,244,254,205,254,125,255,104,0,148,0, +199,255,35,255,97,255,149,255,146,255,96,0,55,1,219,0,88,0,47,0,117,255,242,254,155,255,65,0,55,0,41,0, +53,0,26,0,208,255,101,255,62,255,130,255,217,255,6,0,227,255,134,255,88,255,99,255,135,255,196,255,252,255,83,0, +185,0,144,0,51,0,54,0,8,0,229,255,95,0,67,0,71,255,27,255,194,255,225,255,113,255,28,255,65,255,159,255, +171,255,221,255,88,0,0,0,82,255,188,255,104,0,36,0,142,255,126,255,245,255,23,0,111,255,60,255,204,255,159,255, +242,254,26,255,178,255,0,0,236,255,138,255,162,255,118,0,11,1,22,1,245,0,202,0,199,0,210,0,222,0,7,1, +190,0,48,0,90,0,119,0,250,255,3,0,48,0,252,255,123,0,217,0,30,0,4,0,155,0,140,0,191,0,7,1, +48,0,184,255,46,0,20,0,252,255,106,0,65,0,6,0,69,0,220,255,10,255,239,254,50,255,62,255,28,255,50,255, +200,255,4,0,138,255,140,255,220,255,91,255,26,255,31,0,5,1,200,0,17,0,124,255,58,255,126,255,43,0,166,0, +113,0,239,255,230,255,92,0,129,0,226,255,97,255,5,0,242,0,172,0,182,255,89,255,134,255,208,255,51,0,114,0, +63,0,188,255,69,255,12,255,14,255,77,255,147,255,145,255,181,255,82,0,122,0,198,255,65,255,67,255,110,255,5,0, +207,0,231,0,118,0,25,0,201,255,129,255,130,255,204,255,255,255,168,255,34,255,76,255,241,255,83,0,97,0,6,0, +120,255,205,255,222,0,44,1,197,0,177,0,201,0,176,0,113,0,244,255,194,255,81,0,173,0,41,0,154,255,211,255, +164,0,26,1,191,0,92,0,44,0,204,255,4,0,228,0,242,0,120,0,134,0,119,0,94,0,153,0,232,255,239,254, +151,255,108,0,35,0,108,0,39,1,186,0,230,255,146,255,133,255,0,0,111,0,231,255,134,255,67,0,227,0,123,0, +237,255,3,0,39,0,194,255,106,255,106,255,70,255,98,255,8,0,236,255,199,254,90,254,76,255,85,0,113,0,224,255, +102,255,56,255,33,255,131,255,79,0,104,0,216,255,2,0,191,0,198,0,80,0,36,0,222,255,138,255,239,255,119,0, +28,0,123,255,95,255,137,255,230,255,72,0,13,0,126,255,144,255,70,0,203,0,141,0,236,255,188,255,219,255,194,255, +169,255,174,255,164,255,197,255,201,255,108,255,112,255,205,255,187,255,218,255,124,0,90,0,154,255,162,255,39,0,95,0, +130,0,105,0,233,255,208,255,68,0,118,0,133,0,217,0,206,0,86,0,99,0,211,0,209,0,152,0,146,0,120,0, +15,0,154,255,180,255,108,0,180,0,38,0,188,255,155,255,67,255,88,255,39,0,138,0,9,0,150,255,186,255,226,255, +189,255,229,255,110,0,136,0,4,0,96,255,1,255,69,255,200,255,159,255,26,255,253,254,69,255,196,255,6,0,196,255, +162,255,149,255,79,255,210,255,226,0,236,0,67,0,166,255,37,255,159,255,114,0,23,0,200,255,32,0,163,255,41,255, +153,255,145,255,148,255,90,0,45,0,119,255,226,255,42,0,181,255,212,255,47,0,76,0,225,0,91,1,216,0,28,0, +253,255,32,0,22,0,82,0,229,0,175,0,215,255,230,255,106,0,53,0,56,0,237,0,17,1,120,0,12,0,246,255, +218,255,145,255,100,255,140,255,170,255,134,255,122,255,168,255,216,255,192,255,122,255,120,255,157,255,186,255,11,0,17,0, +127,255,83,255,158,255,182,255,2,0,45,0,128,255,15,255,78,255,121,255,205,255,218,255,26,255,61,255,108,0,130,0, +217,255,209,255,243,255,59,0,183,0,155,0,69,0,19,0,152,255,152,255,60,0,43,0,189,255,208,255,166,255,126,255, +38,0,147,0,33,0,199,255,232,255,53,0,117,0,117,0,87,0,79,0,77,0,119,0,134,0,241,255,133,255,254,255, +43,0,126,255,90,255,246,255,6,0,187,255,10,0,107,0,96,0,131,0,199,0,148,0,91,0,134,0,122,0,29,0, +37,0,131,0,136,0,43,0,204,255,178,255,0,0,60,0,197,255,76,255,172,255,247,255,144,255,207,255,229,0,225,0, +161,255,50,255,237,255,74,0,212,255,90,255,81,255,166,255,248,255,179,255,64,255,179,255,112,0,29,0,138,255,204,255, +4,0,227,255,52,0,103,0,0,0,3,0,111,0,117,0,138,0,187,0,27,0,129,255,30,0,145,0,241,255,250,255, +2,1,39,1,131,0,100,0,70,0,233,255,30,0,76,0,212,255,199,255,41,0,215,255,116,255,255,255,104,0,211,255, +105,255,209,255,231,255,144,255,15,0,205,0,151,0,113,0,188,0,72,0,248,255,208,0,0,1,22,0,251,255,146,0, +124,0,234,255,153,255,213,255,78,0,66,0,246,255,36,0,66,0,234,255,182,255,203,255,244,255,35,0,35,0,246,255, +228,255,249,255,42,0,46,0,204,255,149,255,189,255,131,255,249,254,27,255,190,255,215,255,138,255,187,255,12,0,152,255, +238,254,6,255,124,255,169,255,171,255,202,255,44,0,153,0,130,0,3,0,212,255,29,0,116,0,161,0,162,0,64,0, +161,255,205,255,190,0,195,0,226,255,212,255,76,0,88,0,159,0,231,0,105,0,22,0,86,0,80,0,68,0,153,0, +169,0,64,0,216,255,225,255,68,0,60,0,197,255,185,255,230,255,199,255,173,255,172,255,194,255,9,0,230,255,81,255, +101,255,39,0,151,0,101,0,213,255,69,255,28,255,124,255,34,0,70,0,162,255,56,255,144,255,2,0,54,0,34,0, +240,255,68,0,155,0,216,255,252,254,100,255,54,0,88,0,1,0,183,255,173,255,200,255,223,255,245,255,239,255,194,255, +171,255,209,255,25,0,24,0,219,255,53,0,189,0,65,0,191,255,58,0,132,0,99,0,115,0,3,0,138,255,18,0, +107,0,17,0,27,0,25,0,188,255,11,0,161,0,144,0,62,0,6,0,222,255,203,255,191,255,250,255,42,0,157,255, +50,255,188,255,63,0,42,0,209,255,88,255,123,255,91,0,170,0,85,0,81,0,59,0,224,255,5,0,81,0,251,255, +162,255,238,255,59,0,25,0,30,0,75,0,250,255,154,255,183,255,186,255,188,255,66,0,108,0,239,255,212,255,8,0, +1,0,54,0,135,0,81,0,233,255,224,255,41,0,95,0,66,0,35,0,61,0,74,0,93,0,149,0,117,0,252,255, +170,255,163,255,228,255,33,0,236,255,135,255,95,255,103,255,155,255,189,255,142,255,161,255,26,0,51,0,247,255,252,255, +254,255,197,255,175,255,215,255,10,0,57,0,86,0,69,0,15,0,211,255,171,255,190,255,4,0,12,0,182,255,138,255, +171,255,220,255,33,0,8,0,98,255,90,255,22,0,35,0,178,255,243,255,83,0,15,0,196,255,218,255,33,0,78,0, +33,0,5,0,62,0,30,0,184,255,216,255,11,0,211,255,230,255,71,0,34,0,200,255,249,255,87,0,88,0,77,0, +124,0,136,0,64,0,17,0,54,0,51,0,216,255,182,255,236,255,228,255,180,255,233,255,39,0,251,255,228,255,13,0, +251,255,211,255,225,255,193,255,122,255,144,255,198,255,164,255,127,255,177,255,232,255,225,255,193,255,154,255,127,255,154,255, +203,255,220,255,11,0,75,0,19,0,176,255,222,255,25,0,213,255,205,255,38,0,17,0,237,255,62,0,41,0,180,255, +13,0,146,0,16,0,131,255,211,255,55,0,98,0,139,0,79,0,254,255,44,0,48,0,203,255,226,255,98,0,84,0, +205,255,163,255,14,0,96,0,22,0,189,255,221,255,12,0,25,0,63,0,76,0,48,0,42,0,20,0,238,255,16,0, +57,0,24,0,6,0,47,0,70,0,41,0,254,255,15,0,98,0,109,0,249,255,173,255,221,255,0,0,217,255,222,255, +42,0,95,0,99,0,77,0,35,0,22,0,49,0,45,0,12,0,16,0,35,0,40,0,34,0,28,0,53,0,65,0, +239,255,176,255,226,255,226,255,152,255,186,255,23,0,28,0,3,0,242,255,187,255,165,255,209,255,211,255,162,255,173,255, +228,255,208,255,140,255,152,255,198,255,158,255,109,255,140,255,186,255,222,255,19,0,29,0,0,0,30,0,81,0,52,0, +3,0,36,0,92,0,74,0,17,0,21,0,76,0,70,0,225,255,164,255,231,255,45,0,23,0,12,0,31,0,228,255, +160,255,205,255,22,0,56,0,95,0,99,0,55,0,45,0,46,0,7,0,235,255,250,255,20,0,37,0,40,0,32,0, +19,0,5,0,251,255,210,255,173,255,3,0,111,0,23,0,146,255,177,255,201,255,152,255,209,255,34,0,6,0,243,255, +251,255,232,255,6,0,4,0,125,255,94,255,5,0,77,0,237,255,195,255,225,255,224,255,233,255,15,0,240,255,148,255, +129,255,219,255,60,0,84,0,48,0,17,0,31,0,27,0,213,255,175,255,235,255,41,0,59,0,74,0,61,0,12,0, +241,255,3,0,61,0,122,0,106,0,37,0,9,0,4,0,237,255,250,255,28,0,249,255,160,255,107,255,107,255,154,255, +236,255,5,0,214,255,3,0,131,0,87,0,176,255,203,255,122,0,161,0,94,0,64,0,36,0,6,0,32,0,59,0, +28,0,243,255,247,255,9,0,244,255,212,255,213,255,213,255,213,255,8,0,47,0,254,255,220,255,12,0,46,0,34,0, +36,0,21,0,237,255,254,255,34,0,254,255,235,255,20,0,246,255,183,255,240,255,58,0,31,0,8,0,6,0,218,255, +215,255,20,0,34,0,250,255,210,255,190,255,233,255,39,0,20,0,228,255,249,255,39,0,43,0,16,0,236,255,212,255, +235,255,27,0,32,0,7,0,3,0,244,255,232,255,37,0,74,0,16,0,24,0,101,0,66,0,11,0,60,0,60,0, +236,255,228,255,17,0,22,0,253,255,215,255,195,255,219,255,235,255,212,255,197,255,241,255,56,0,30,0,171,255,146,255, +232,255,30,0,30,0,14,0,250,255,0,0,252,255,201,255,175,255,215,255,22,0,53,0,249,255,175,255,226,255,37,0, +11,0,15,0,50,0,8,0,237,255,5,0,244,255,13,0,109,0,93,0,246,255,6,0,82,0,49,0,221,255,201,255, +215,255,229,255,9,0,17,0,231,255,239,255,44,0,31,0,208,255,188,255,227,255,2,0,33,0,68,0,49,0,254,255, +16,0,54,0,249,255,186,255,241,255,37,0,20,0,22,0,12,0,208,255,205,255,11,0,51,0,71,0,74,0,54,0, +42,0,31,0,8,0,251,255,229,255,228,255,32,0,51,0,232,255,198,255,243,255,246,255,187,255,167,255,211,255,245,255, +243,255,244,255,242,255,238,255,17,0,32,0,230,255,212,255,17,0,38,0,6,0,247,255,240,255,227,255,229,255,0,0, +43,0,39,0,242,255,242,255,37,0,45,0,27,0,40,0,70,0,89,0,70,0,30,0,22,0,25,0,20,0,44,0, +59,0,2,0,193,255,200,255,254,255,25,0,249,255,221,255,239,255,242,255,220,255,218,255,217,255,215,255,242,255,251,255, +234,255,246,255,4,0,232,255,217,255,248,255,16,0,250,255,205,255,169,255,147,255,151,255,198,255,253,255,8,0,230,255, +173,255,159,255,218,255,246,255,196,255,185,255,238,255,16,0,33,0,49,0,36,0,15,0,9,0,8,0,19,0,19,0, +241,255,229,255,255,255,239,255,185,255,200,255,34,0,69,0,16,0,3,0,51,0,39,0,243,255,255,255,19,0,243,255, +239,255,23,0,22,0,10,0,43,0,51,0,21,0,40,0,70,0,27,0,240,255,250,255,11,0,63,0,125,0,68,0, +234,255,6,0,48,0,36,0,46,0,36,0,249,255,254,255,250,255,206,255,218,255,241,255,225,255,5,0,57,0,29,0, +0,0,253,255,199,255,163,255,233,255,51,0,22,0,223,255,247,255,22,0,230,255,200,255,242,255,251,255,230,255,2,0, +28,0,9,0,219,255,169,255,197,255,43,0,53,0,233,255,244,255,53,0,58,0,37,0,23,0,8,0,26,0,58,0, +38,0,236,255,196,255,192,255,222,255,254,255,255,255,244,255,5,0,17,0,245,255,225,255,249,255,10,0,253,255,248,255, +247,255,238,255,245,255,13,0,25,0,10,0,238,255,235,255,6,0,16,0,5,0,6,0,14,0,21,0,43,0,54,0, +20,0,229,255,223,255,254,255,26,0,38,0,42,0,43,0,39,0,13,0,239,255,5,0,44,0,16,0,229,255,236,255, +238,255,241,255,32,0,44,0,252,255,235,255,240,255,228,255,225,255,223,255,226,255,0,0,247,255,200,255,218,255,5,0, +248,255,239,255,15,0,31,0,8,0,225,255,202,255,223,255,4,0,24,0,13,0,223,255,203,255,252,255,24,0,224,255, +178,255,222,255,32,0,26,0,231,255,226,255,252,255,251,255,2,0,29,0,13,0,245,255,12,0,13,0,220,255,215,255, +13,0,20,0,223,255,206,255,237,255,241,255,236,255,21,0,51,0,14,0,214,255,200,255,236,255,18,0,14,0,10,0, +26,0,3,0,231,255,18,0,50,0,9,0,242,255,14,0,32,0,31,0,29,0,30,0,34,0,18,0,253,255,17,0, +42,0,18,0,249,255,19,0,52,0,31,0,245,255,254,255,43,0,49,0,27,0,8,0,228,255,214,255,8,0,34,0, +246,255,246,255,37,0,15,0,221,255,252,255,34,0,8,0,253,255,10,0,230,255,202,255,231,255,236,255,193,255,190,255, +246,255,43,0,45,0,13,0,247,255,250,255,6,0,20,0,11,0,241,255,253,255,21,0,242,255,191,255,198,255,237,255, +0,0,254,255,252,255,254,255,247,255,252,255,22,0,8,0,217,255,225,255,5,0,2,0,2,0,9,0,246,255,240,255, +6,0,12,0,15,0,34,0,45,0,30,0,244,255,220,255,11,0,70,0,66,0,31,0,6,0,253,255,3,0,1,0, +2,0,24,0,10,0,225,255,242,255,18,0,249,255,232,255,247,255,253,255,16,0,34,0,246,255,201,255,230,255,14,0, +12,0,3,0,6,0,6,0,255,255,1,0,2,0,227,255,196,255,228,255,24,0,21,0,0,0,253,255,247,255,250,255, +16,0,13,0,248,255,7,0,37,0,36,0,13,0,248,255,242,255,253,255,3,0,2,0,5,0,248,255,228,255,241,255, +0,0,240,255,228,255,231,255,234,255,251,255,15,0,23,0,38,0,43,0,20,0,7,0,254,255,232,255,236,255,252,255, +240,255,254,255,36,0,12,0,217,255,224,255,246,255,237,255,235,255,252,255,12,0,33,0,52,0,44,0,253,255,208,255, +210,255,249,255,13,0,244,255,216,255,227,255,250,255,250,255,252,255,0,0,221,255,195,255,238,255,20,0,244,255,215,255, +236,255,3,0,3,0,248,255,239,255,242,255,253,255,3,0,1,0,1,0,15,0,26,0,8,0,232,255,228,255,248,255, +13,0,30,0,32,0,12,0,244,255,246,255,10,0,3,0,221,255,216,255,6,0,29,0,3,0,239,255,254,255,22,0, +31,0,22,0,5,0,243,255,234,255,247,255,9,0,13,0,17,0,26,0,12,0,241,255,243,255,11,0,23,0,24,0, +22,0,11,0,255,255,2,0,15,0,14,0,2,0,248,255,253,255,22,0,44,0,19,0,227,255,225,255,253,255,254,255, +251,255,14,0,13,0,251,255,3,0,10,0,253,255,3,0,10,0,239,255,232,255,21,0,46,0,15,0,249,255,14,0, +24,0,255,255,1,0,40,0,36,0,244,255,234,255,3,0,8,0,1,0,250,255,244,255,7,0,27,0,8,0,249,255, +5,0,6,0,0,0,6,0,255,255,238,255,246,255,17,0,32,0,20,0,251,255,245,255,254,255,7,0,23,0,35,0, +17,0,252,255,255,255,9,0,12,0,6,0,253,255,2,0,7,0,250,255,239,255,242,255,240,255,235,255,227,255,217,255, +224,255,239,255,242,255,3,0,22,0,5,0,245,255,0,0,251,255,243,255,15,0,33,0,11,0,252,255,253,255,243,255, +227,255,219,255,229,255,247,255,243,255,226,255,227,255,240,255,248,255,247,255,242,255,253,255,14,0,3,0,246,255,10,0, +19,0,5,0,13,0,18,0,249,255,239,255,249,255,252,255,2,0,5,0,247,255,245,255,253,255,244,255,244,255,6,0, +7,0,2,0,12,0,17,0,10,0,14,0,25,0,25,0,9,0,250,255,8,0,31,0,19,0,241,255,238,255,2,0, +2,0,254,255,27,0,48,0,13,0,226,255,238,255,10,0,2,0,243,255,243,255,245,255,248,255,255,255,253,255,0,0, +14,0,5,0,233,255,232,255,0,0,11,0,3,0,248,255,240,255,243,255,255,255,0,0,248,255,250,255,6,0,11,0, +7,0,255,255,244,255,235,255,240,255,250,255,254,255,0,0,5,0,1,0,247,255,250,255,4,0,5,0,3,0,4,0, +2,0,250,255,245,255,1,0,22,0,15,0,237,255,235,255,8,0,8,0,244,255,253,255,14,0,3,0,243,255,244,255, +248,255,247,255,244,255,247,255,0,0,4,0,0,0,253,255,253,255,251,255,0,0,3,0,251,255,4,0,26,0,6,0, +225,255,243,255,20,0,2,0,233,255,241,255,253,255,3,0,8,0,254,255,241,255,249,255,5,0,9,0,0,0,238,255, +232,255,251,255,18,0,28,0,26,0,18,0,1,0,241,255,243,255,253,255,246,255,241,255,4,0,13,0,254,255,251,255, +3,0,251,255,245,255,255,255,8,0,19,0,25,0,15,0,8,0,16,0,16,0,6,0,1,0,0,0,253,255,254,255, +9,0,18,0,10,0,247,255,243,255,254,255,4,0,7,0,5,0,254,255,253,255,2,0,1,0,1,0,8,0,8,0, +0,0,2,0,10,0,8,0,253,255,246,255,251,255,7,0,11,0,4,0,249,255,245,255,249,255,4,0,8,0,253,255, +247,255,252,255,254,255,254,255,252,255,246,255,246,255,249,255,247,255,253,255,8,0,1,0,246,255,255,255,8,0,1,0, +253,255,1,0,4,0,1,0,1,0,13,0,22,0,12,0,5,0,12,0,13,0,6,0,8,0,14,0,11,0,5,0, +1,0,4,0,9,0,9,0,7,0,11,0,9,0,254,255,255,255,8,0,0,0,251,255,11,0,16,0,254,255,247,255, +254,255,250,255,246,255,1,0,2,0,247,255,246,255,248,255,245,255,245,255,247,255,249,255,255,255,4,0,5,0,5,0, +249,255,240,255,250,255,3,0,252,255,251,255,5,0,5,0,253,255,251,255,251,255,0,0,13,0,16,0,3,0,251,255, +0,0,2,0,1,0,4,0,4,0,2,0,7,0,12,0,10,0,12,0,17,0,14,0,3,0,255,255,1,0,0,0, +254,255,255,255,253,255,249,255,254,255,6,0,1,0,248,255,248,255,250,255,254,255,2,0,255,255,252,255,2,0,2,0, +251,255,251,255,0,0,254,255,251,255,253,255,1,0,3,0,252,255,241,255,240,255,250,255,5,0,6,0,254,255,251,255, +253,255,246,255,241,255,251,255,3,0,255,255,248,255,246,255,246,255,245,255,243,255,247,255,254,255,255,255,249,255,247,255, +248,255,248,255,250,255,0,0,1,0,254,255,253,255,0,0,2,0,1,0,1,0,2,0,253,255,248,255,254,255,7,0, +8,0,2,0,251,255,251,255,1,0,255,255,245,255,246,255,2,0,6,0,2,0,0,0,254,255,252,255,253,255,249,255, +249,255,1,0,3,0,254,255,0,0,5,0,4,0,1,0,0,0,0,0,0,0,255,255,253,255,253,255,254,255,254,255, +254,255,252,255,250,255,253,255,5,0,10,0,5,0,0,0,255,255,253,255,248,255,250,255,254,255,249,255,247,255,255,255, +1,0,251,255,255,255,8,0,5,0,255,255,255,255,255,255,252,255,250,255,253,255,2,0,6,0,6,0,4,0,3,0, +4,0,4,0,2,0,2,0,4,0,6,0,6,0,2,0,254,255,0,0,6,0,10,0,11,0,7,0,4,0,6,0, +8,0,7,0,5,0,0,0,254,255,7,0,10,0,2,0,252,255,3,0,10,0,10,0,3,0,251,255,253,255,2,0, +3,0,4,0,4,0,255,255,252,255,0,0,1,0,0,0,0,0,255,255,0,0,2,0,4,0,5,0,5,0,254,255, +251,255,0,0,2,0,1,0,1,0,2,0,2,0,255,255,250,255,250,255,2,0,5,0,1,0,1,0,3,0,3,0, +0,0,250,255,250,255,3,0,8,0,5,0,4,0,0,0,249,255,253,255,6,0,1,0,248,255,250,255,2,0,3,0, +255,255,250,255,250,255,254,255,1,0,254,255,249,255,252,255,2,0,5,0,6,0,6,0,0,0,255,255,5,0,6,0, +3,0,3,0,2,0,255,255,1,0,255,255,249,255,252,255,3,0,2,0,2,0,5,0,0,0,251,255,254,255,254,255, +248,255,251,255,2,0,2,0,1,0,6,0,4,0,253,255,250,255,253,255,0,0,2,0,255,255,252,255,254,255,3,0, +2,0,0,0,1,0,255,255,252,255,253,255,255,255,0,0,4,0,4,0,253,255,249,255,252,255,0,0,255,255,253,255, +252,255,254,255,4,0,4,0,255,255,0,0,7,0,6,0,2,0,6,0,8,0,1,0,255,255,3,0,1,0,1,0, +5,0,0,0,251,255,3,0,5,0,251,255,248,255,253,255,2,0,5,0,3,0,254,255,0,0,255,255,252,255,2,0, +10,0,5,0,0,0,1,0,254,255,252,255,252,255,250,255,249,255,255,255,2,0,0,0,255,255,1,0,1,0,0,0, +0,0,0,0,0,0,2,0,5,0,4,0,254,255,254,255,2,0,4,0,2,0,1,0,255,255,0,0,1,0,0,0, +255,255,254,255,250,255,250,255,254,255,3,0,4,0,1,0,254,255,255,255,255,255,251,255,252,255,2,0,0,0,253,255, +255,255,0,0,253,255,253,255,0,0,1,0,0,0,253,255,252,255,251,255,251,255,253,255,3,0,4,0,0,0,255,255, +3,0,3,0,255,255,253,255,0,0,255,255,251,255,253,255,0,0,254,255,253,255,255,255,255,255,255,255,1,0,1,0, +255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,5,0,7,0,3,0,251,255,251,255,0,0,2,0, +0,0,254,255,253,255,253,255,0,0,2,0,255,255,253,255,0,0,0,0,0,0,4,0,5,0,1,0,255,255,0,0, +253,255,254,255,255,255,254,255,0,0,2,0,255,255,252,255,255,255,254,255,255,255,2,0,0,0,253,255,254,255,0,0, +1,0,2,0,0,0,254,255,2,0,4,0,3,0,1,0,1,0,4,0,4,0,255,255,254,255,3,0,1,0,251,255, +251,255,253,255,0,0,4,0,2,0,249,255,248,255,255,255,3,0,255,255,253,255,1,0,4,0,2,0,2,0,1,0, +252,255,254,255,6,0,5,0,253,255,254,255,4,0,1,0,252,255,252,255,255,255,255,255,254,255,0,0,3,0,3,0, +2,0,2,0,1,0,3,0,5,0,2,0,0,0,5,0,8,0,2,0,0,0,3,0,2,0,253,255,253,255,254,255, +254,255,254,255,253,255,252,255,253,255,254,255,255,255,1,0,2,0,0,0,254,255,0,0,2,0,255,255,255,255,3,0, +4,0,3,0,4,0,1,0,253,255,254,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255, +0,0,2,0,0,0,252,255,254,255,2,0,1,0,253,255,251,255,253,255,2,0,4,0,1,0,254,255,0,0,2,0, +1,0,254,255,0,0,1,0,253,255,253,255,2,0,1,0,254,255,2,0,4,0,2,0,4,0,4,0,2,0,3,0, +3,0,255,255,255,255,1,0,2,0,1,0,2,0,2,0,3,0,4,0,2,0,1,0,3,0,3,0,254,255,252,255, +1,0,5,0,2,0,255,255,0,0,255,255,255,255,1,0,0,0,252,255,254,255,1,0,254,255,252,255,255,255,2,0, +3,0,3,0,4,0,4,0,1,0,255,255,2,0,3,0,1,0,0,0,0,0,254,255,0,0,4,0,1,0,252,255, +255,255,3,0,0,0,254,255,0,0,2,0,1,0,0,0,3,0,4,0,3,0,3,0,1,0,255,255,255,255,255,255, +255,255,1,0,4,0,2,0,0,0,3,0,5,0,3,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +3,0,1,0,253,255,254,255,255,255,1,0,3,0,2,0,253,255,254,255,1,0,1,0,2,0,2,0,255,255,253,255, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,254,255,253,255,0,0, +0,0,254,255,255,255,1,0,255,255,253,255,255,255,2,0,0,0,254,255,254,255,255,255,0,0,3,0,1,0,252,255, +253,255,0,0,255,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255,254,255,253,255,1,0,3,0,255,255,252,255, +253,255,255,255,0,0,1,0,255,255,254,255,255,255,0,0,255,255,254,255,253,255,255,255,0,0,255,255,255,255,254,255, +251,255,252,255,2,0,2,0,255,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,0,0,0,0,253,255, +253,255,1,0,1,0,0,0,0,0,254,255,253,255,0,0,2,0,254,255,253,255,255,255,2,0,0,0,254,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0, +254,255,255,255,3,0,3,0,0,0,255,255,254,255,255,255,2,0,2,0,0,0,0,0,254,255,254,255,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,2,0,3,0,2,0,1,0,2,0,2,0,0,0,254,255, +255,255,255,255,0,0,2,0,2,0,1,0,2,0,2,0,1,0,0,0,0,0,254,255,255,255,1,0,2,0,0,0, +255,255,2,0,3,0,0,0,254,255,0,0,0,0,0,0,1,0,0,0,254,255,0,0,1,0,2,0,3,0,3,0, +1,0,255,255,254,255,255,255,0,0,255,255,254,255,1,0,1,0,255,255,255,255,0,0,0,0,1,0,3,0,2,0, +254,255,253,255,255,255,0,0,0,0,1,0,3,0,3,0,0,0,255,255,0,0,2,0,2,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/sand4.pcm b/src/client/sound/data/sand4.pcm new file mode 100755 index 0000000..98fa6a9 --- /dev/null +++ b/src/client/sound/data/sand4.pcm @@ -0,0 +1,864 @@ +unsigned char PCM_sand4[27580] = { +1,0,0,0,2,0,0,0,68,172,0,0,214,53,0,0,21,0,11,0,243,255,242,255,252,255,3,0,10,0,1,0, +237,255,249,255,26,0,32,0,17,0,14,0,14,0,8,0,253,255,237,255,230,255,235,255,241,255,249,255,5,0,18,0, +8,0,245,255,9,0,26,0,27,0,43,0,32,0,17,0,32,0,3,0,7,0,59,0,5,0,224,255,57,0,101,0, +71,0,33,0,17,0,29,0,239,255,238,255,82,0,53,0,234,255,44,0,100,0,138,0,160,0,48,0,218,255,240,255, +16,0,74,0,121,0,136,0,142,0,53,0,179,255,162,255,5,0,76,0,32,0,35,0,90,0,21,0,13,0,126,0, +70,0,148,255,76,255,183,255,90,0,108,0,102,0,28,0,255,254,237,254,221,255,211,255,4,0,144,0,188,255,212,254, +4,255,212,255,180,0,109,0,206,255,22,0,30,0,25,0,59,0,155,255,192,255,212,0,226,0,166,0,229,0,18,1, +31,1,103,0,24,255,50,254,207,253,130,254,232,255,29,0,88,255,14,255,83,255,127,255,118,255,174,255,223,255,204,255, +6,0,231,255,5,255,130,254,168,254,117,255,123,0,133,0,58,0,29,0,153,255,142,255,3,0,60,0,143,0,106,0, +34,0,93,0,205,255,160,255,230,0,27,1,227,0,227,1,238,1,175,0,154,255,254,254,100,255,23,0,49,0,97,0, +224,0,155,1,134,1,206,255,213,254,51,255,148,254,243,253,195,254,186,255,101,0,189,0,29,0,25,255,19,255,45,0, +171,0,209,255,45,255,164,255,179,0,50,1,81,0,82,255,14,255,189,254,17,255,164,0,231,1,192,1,4,1,244,0, +211,0,244,255,64,0,57,1,193,0,145,0,28,1,155,0,127,0,23,1,108,0,118,255,130,255,203,255,208,255,250,255, +201,0,118,1,206,1,251,2,10,3,136,0,81,255,170,0,128,1,98,1,233,0,227,255,149,255,6,0,157,255,31,255, +232,255,175,0,33,0,68,255,101,255,49,0,226,0,154,1,114,2,173,2,245,1,220,0,224,255,228,255,244,0,191,0, +40,255,18,255,9,0,58,0,169,0,124,0,160,254,247,254,193,1,3,1,167,253,243,253,251,255,87,255,240,254,89,0, +93,0,52,0,239,1,219,1,92,255,64,255,80,1,202,1,18,1,116,0,78,255,59,254,150,254,2,0,237,0,122,0, +216,255,233,255,113,255,168,254,27,255,150,255,79,255,44,0,70,1,34,0,150,254,187,254,250,254,5,255,83,0,116,1, +179,0,7,0,150,0,66,0,17,255,66,255,21,0,15,0,39,0,255,255,168,254,58,254,109,255,221,255,134,255,253,255, +82,0,62,255,191,253,221,253,162,255,67,0,5,255,178,254,79,255,74,255,130,0,218,2,115,2,242,255,78,255,122,0, +96,1,144,1,36,1,61,0,105,255,174,255,31,1,81,1,93,255,140,254,30,0,55,1,244,0,162,0,52,0,156,255, +84,255,39,255,145,255,54,1,125,2,180,1,65,0,120,0,184,1,220,1,47,1,11,1,155,0,75,255,201,254,125,255, +157,255,246,254,242,254,82,255,216,254,12,254,55,254,49,255,33,0,142,0,122,0,150,0,216,0,11,0,3,255,156,255, +38,0,197,254,226,253,249,254,219,255,26,0,37,1,8,2,106,1,64,0,101,255,138,254,94,254,189,255,23,1,173,0, +151,255,21,255,156,254,113,254,79,255,13,0,207,255,173,255,72,0,185,0,75,0,140,255,64,255,111,255,179,0,78,3, +135,4,164,2,202,0,9,1,106,1,92,1,215,1,14,2,93,1,159,0,130,0,129,0,122,255,100,254,41,255,242,255, +239,254,149,254,238,254,140,253,33,253,208,255,147,1,17,1,55,1,98,1,217,255,78,254,238,253,236,253,68,254,46,255, +225,255,222,255,239,255,212,0,226,1,21,2,102,1,103,0,162,255,239,254,247,253,222,253,52,255,236,255,72,255,16,255, +100,255,164,255,141,0,82,1,147,0,216,255,54,0,15,0,42,255,201,254,61,254,31,253,146,253,206,255,129,0,247,254, +72,254,31,255,174,255,19,0,91,0,128,255,3,255,66,0,188,0,93,255,252,254,62,0,170,0,205,255,237,254,101,254, +193,254,78,0,52,1,74,0,120,255,252,255,175,0,11,1,88,1,75,1,207,0,196,255,81,254,16,254,84,255,250,255, +100,255,235,254,36,255,181,255,129,255,57,254,41,254,228,255,112,0,137,255,179,255,114,0,16,0,37,255,184,254,5,255, +158,255,140,255,247,254,45,255,85,0,43,1,14,1,230,0,8,1,76,0,92,255,231,255,83,0,128,255,235,255,101,1, +79,1,221,0,61,1,163,0,204,255,139,0,2,1,157,255,25,254,60,254,191,255,230,0,175,0,16,0,187,255,99,255, +116,255,37,0,158,0,124,0,241,255,125,255,161,255,131,255,63,254,116,253,27,255,238,1,224,2,100,1,178,255,182,254, +189,253,201,253,69,255,152,255,123,254,203,254,224,255,61,255,151,254,197,255,175,0,80,0,96,0,182,0,31,0,210,255, +116,0,89,0,179,255,237,255,219,255,55,255,10,0,3,1,172,255,158,254,237,255,163,0,231,255,21,0,36,0,182,254, +159,254,45,0,98,255,245,252,34,253,126,254,234,253,149,253,36,255,18,0,58,255,152,253,132,252,212,253,98,0,223,0, +35,0,52,0,150,255,147,254,150,255,46,1,37,1,206,0,11,1,162,0,102,255,159,254,250,254,167,255,198,255,151,255, +89,255,11,255,14,255,81,255,194,255,121,0,54,0,152,254,198,253,35,254,8,254,168,253,171,253,208,253,116,254,42,255, +40,255,50,255,55,255,126,254,93,254,17,255,200,254,230,253,203,253,214,253,118,253,214,252,11,252,223,251,189,252,253,253, +45,255,90,255,170,253,119,252,61,254,79,0,101,255,239,253,229,254,249,255,67,255,210,254,188,254,96,253,236,252,217,254, +247,255,7,255,35,254,187,253,184,253,121,254,240,254,27,255,248,255,240,255,140,254,194,254,126,0,148,0,122,255,105,255, +238,255,69,0,111,0,176,255,152,254,225,254,180,255,96,255,237,254,133,255,69,0,78,0,137,255,179,254,246,254,151,255, +124,255,196,255,86,0,89,255,205,253,100,253,109,253,25,254,174,255,69,0,192,255,135,255,247,254,87,254,55,255,40,0, +164,255,82,255,168,255,196,254,30,253,102,253,115,255,48,0,81,255,77,255,239,255,29,0,252,0,78,1,195,254,238,252, +66,255,180,1,218,0,179,255,129,0,111,1,36,1,85,0,164,255,65,255,117,255,165,255,5,255,143,254,221,254,132,254, +237,253,197,254,140,255,223,254,122,254,254,254,88,255,91,255,10,255,239,254,124,255,34,255,55,254,97,255,241,0,237,255, +248,254,66,0,242,0,240,255,105,255,178,255,169,255,108,255,185,255,145,0,239,0,19,0,78,255,57,0,98,1,110,0, +250,254,231,255,113,1,252,0,131,0,47,1,67,0,40,254,68,254,135,255,76,255,19,255,214,255,139,255,98,254,29,254, +55,254,133,254,172,255,232,255,170,254,97,254,134,254,132,253,190,253,44,255,114,254,150,253,68,255,216,255,69,254,82,254, +59,255,114,254,186,253,56,254,153,254,196,254,233,254,182,254,166,254,21,255,236,255,215,0,139,0,242,254,106,254,182,255, +215,0,29,1,27,1,241,255,1,254,88,254,120,0,104,0,254,254,115,255,229,255,213,254,252,254,5,0,115,255,203,254, +120,255,231,255,202,255,249,255,66,0,52,0,231,255,140,0,114,2,245,2,88,1,146,0,237,0,207,0,77,1,71,2, +193,1,235,0,129,1,21,2,55,1,80,255,38,254,179,255,167,2,214,3,107,3,161,2,96,0,146,253,210,253,206,0, +86,2,139,1,19,1,79,1,182,0,230,255,35,0,157,0,113,0,235,255,35,255,165,254,198,255,222,1,121,2,127,1, +251,0,13,1,209,0,4,1,135,1,200,0,184,255,24,0,124,0,156,255,212,254,20,255,55,0,137,1,75,1,217,255, +247,255,80,1,108,1,37,1,6,2,187,2,85,2,141,1,114,0,115,255,223,255,213,0,124,0,20,0,34,1,183,1, +157,0,206,255,78,0,100,1,126,2,128,2,59,1,119,0,145,0,121,0,35,0,45,255,175,253,137,253,163,254,26,255, +52,255,110,255,42,255,89,255,197,0,26,2,49,2,52,1,146,0,117,1,32,2,80,1,34,1,181,1,241,0,12,0, +145,0,230,0,155,0,193,0,184,0,227,255,52,255,121,255,86,0,219,0,3,1,31,1,118,0,211,255,24,1,108,2, +151,1,1,1,171,1,250,0,4,0,98,1,109,2,13,1,133,0,1,2,42,2,157,0,30,0,145,0,157,0,16,1, +220,1,223,1,215,1,236,1,237,0,26,0,191,0,234,0,251,255,255,255,11,1,132,1,127,1,27,2,4,3,124,2, +171,0,96,0,238,1,144,2,13,2,60,2,145,2,216,1,166,0,246,255,53,0,246,0,62,1,11,1,26,1,139,1, +88,2,31,3,110,2,33,0,173,254,66,255,220,255,116,255,114,255,43,0,237,0,135,1,239,0,81,255,102,255,198,0, +115,0,168,255,153,0,145,1,69,1,119,0,203,255,114,0,28,2,98,2,157,1,196,1,57,2,6,2,142,1,27,1, +224,0,216,0,70,1,89,2,255,1,181,255,236,254,164,255,248,254,28,255,189,1,177,2,253,0,98,0,253,0,74,0, +181,254,44,254,175,254,255,254,131,255,22,1,60,2,216,1,242,0,18,0,231,255,71,1,55,2,62,1,70,0,39,0, +65,0,13,1,14,2,53,2,215,1,222,0,113,255,32,255,239,255,114,0,182,0,85,1,227,1,186,1,7,1,55,0, +215,254,155,253,229,254,131,1,135,1,203,255,208,255,21,1,88,1,85,0,109,255,71,0,33,2,165,2,4,2,165,1, +140,1,225,1,134,2,61,2,25,1,136,0,202,0,255,0,200,0,189,0,26,1,26,1,176,0,160,0,184,0,66,0, +76,255,181,254,22,255,84,255,239,254,158,255,189,0,226,255,206,254,124,255,242,255,222,255,144,0,215,0,131,0,158,0, +192,255,131,253,70,252,24,253,248,254,28,0,173,255,117,255,68,0,8,0,197,254,191,254,178,255,245,255,200,255,35,0, +127,0,221,255,234,254,127,254,36,254,124,254,9,0,110,0,49,255,50,255,117,0,190,0,234,255,167,254,23,254,81,255, +151,0,79,0,177,255,131,255,206,255,203,0,107,1,72,1,43,1,125,0,137,255,168,255,144,255,245,254,248,255,12,1, +202,255,175,254,19,255,209,254,147,254,191,255,53,0,112,255,167,255,38,0,55,255,131,254,5,255,4,255,199,254,189,255, +87,0,82,255,86,254,211,253,216,252,180,252,132,254,18,0,9,0,148,0,53,2,29,2,92,0,243,255,49,0,52,255, +2,255,229,255,250,254,231,253,178,255,113,1,241,0,214,0,47,1,18,0,106,255,109,0,207,0,132,0,9,1,238,0, +169,255,33,255,167,254,68,253,222,253,238,0,254,1,21,0,127,254,240,253,198,253,235,254,117,0,96,0,208,255,130,0, +27,1,35,0,239,254,2,255,191,255,45,0,174,0,172,1,51,2,53,1,128,255,196,254,175,254,204,253,215,252,77,253, +67,254,122,254,130,254,203,254,42,255,193,255,34,0,232,255,28,0,26,1,144,1,64,1,247,0,51,0,231,254,197,254, +127,255,25,255,123,254,72,255,85,0,3,1,32,2,103,2,169,0,233,254,121,255,172,1,9,2,4,255,201,252,100,254, +3,0,70,255,8,255,133,255,245,254,36,255,12,1,24,2,144,1,50,1,218,0,151,255,223,254,231,255,173,0,237,255, +96,255,178,255,70,0,11,1,97,0,232,253,52,253,169,254,253,254,4,255,139,0,178,1,206,1,119,1,53,0,56,255, +26,255,48,254,137,253,158,254,74,255,100,255,209,0,108,1,168,255,224,254,231,255,82,255,120,253,0,254,115,0,126,1, +156,0,55,255,70,254,91,254,236,254,100,255,91,0,235,0,189,255,116,254,107,254,237,254,234,255,32,0,74,254,161,253, +155,255,11,0,6,254,197,252,218,252,23,254,159,0,241,1,238,0,29,0,132,0,247,0,32,1,1,1,70,0,95,255, +135,255,249,0,1,2,92,1,63,0,68,0,77,1,6,2,116,1,45,0,82,255,44,255,179,255,29,0,104,255,52,255, +213,0,79,1,244,254,79,253,94,254,144,255,155,255,245,255,95,0,134,255,57,255,33,1,74,2,251,0,1,0,230,255, +42,255,97,255,185,0,141,0,182,255,72,0,242,0,148,0,163,255,157,254,216,254,133,0,152,1,87,1,107,0,72,255, +17,255,200,255,238,255,77,0,195,1,209,1,252,255,194,255,107,1,200,1,199,0,84,0,46,0,32,0,211,0,238,0, +139,255,246,254,234,255,240,255,225,254,33,255,102,0,77,0,230,254,105,254,64,255,160,255,81,255,203,255,163,0,164,0, +196,0,114,1,43,1,97,0,254,0,238,1,112,1,231,0,40,1,160,0,161,255,125,255,8,255,19,254,125,254,175,255, +135,0,147,1,38,1,115,254,219,253,124,0,117,1,89,0,167,0,41,1,6,0,186,255,193,0,78,0,236,254,60,255, +125,0,238,0,224,0,99,0,29,255,47,254,119,254,112,255,89,0,115,0,22,0,150,0,17,1,36,0,118,255,46,0, +209,0,238,0,48,1,141,1,223,1,160,1,145,0,206,255,165,255,104,255,126,255,23,0,130,0,123,0,234,255,143,255, +151,0,199,1,93,1,146,0,14,1,39,2,91,2,170,1,147,1,235,1,230,0,154,255,53,0,74,1,132,1,15,2, +91,2,92,1,12,1,135,2,90,3,38,2,62,1,48,2,16,3,188,2,111,2,114,2,208,2,229,3,0,4,197,2, +197,2,62,3,195,1,98,0,33,1,92,2,13,3,80,3,172,2,56,1,46,0,226,0,50,2,172,1,253,0,86,2, +111,2,17,0,105,255,154,0,112,0,166,255,232,255,217,0,28,2,69,3,233,3,165,3,12,2,156,0,155,0,120,0, +19,0,241,0,160,1,227,0,184,0,216,1,112,2,131,1,210,255,123,254,30,254,50,255,37,1,154,1,9,0,252,254, +76,255,218,255,147,0,17,1,205,0,126,0,36,0,108,255,219,254,99,254,105,254,170,255,173,0,147,0,165,0,177,0, +179,255,28,254,67,253,237,254,217,1,254,1,75,0,69,0,252,255,247,253,86,253,124,254,119,255,68,0,35,0,118,254, +100,253,233,253,132,254,117,254,30,254,30,254,235,254,253,255,25,0,240,254,19,254,216,254,214,255,99,255,86,254,179,253, +138,253,227,253,41,254,42,254,160,254,12,255,230,254,5,255,8,255,2,254,219,252,181,252,189,253,76,255,248,255,171,255, +66,255,57,254,201,252,147,252,6,253,174,252,179,252,81,254,218,255,52,255,165,253,195,253,131,254,201,253,37,253,172,253, +163,253,97,253,3,254,72,254,107,254,143,255,174,255,235,253,12,253,4,254,41,255,172,255,51,255,201,253,244,252,58,253, +70,253,59,253,50,254,15,255,191,254,103,254,17,254,209,252,70,252,115,253,24,254,178,253,235,253,232,253,228,252,50,253, +6,255,84,255,213,253,243,252,215,252,133,252,190,252,213,253,135,254,161,254,242,254,212,254,115,253,122,252,28,254,182,0, +69,0,76,253,104,252,25,254,15,255,50,255,165,255,18,255,220,253,238,253,26,254,89,253,204,253,174,255,135,0,250,255, +100,255,241,254,50,254,0,253,24,252,94,253,117,0,250,1,77,1,230,0,176,0,222,255,159,255,255,254,219,252,29,252, +107,253,132,253,34,253,193,254,162,0,54,1,125,1,114,1,112,0,152,254,10,253,118,253,6,255,115,255,82,255,41,255, +208,253,167,252,13,253,45,253,15,253,69,254,112,255,198,255,150,0,161,0,159,254,130,253,4,255,29,0,97,255,255,254, +58,255,18,255,149,255,169,0,244,0,127,1,109,2,48,2,43,2,229,2,185,1,247,255,178,0,216,1,212,1,119,2, +230,2,103,1,238,255,87,0,36,1,87,0,206,254,177,254,146,255,23,0,148,0,174,0,211,255,50,255,232,254,166,254, +105,255,224,255,183,254,138,254,233,255,110,0,185,0,92,1,237,0,7,1,183,2,142,2,230,255,195,254,253,255,180,0, +94,0,69,0,235,255,62,255,209,255,186,0,99,0,208,0,87,2,194,1,170,255,6,255,125,255,53,0,165,0,120,255, +81,254,137,255,11,1,131,0,70,255,97,255,193,0,227,0,226,254,6,254,110,255,254,255,74,255,45,255,229,254,231,253, +200,253,189,254,120,255,55,0,194,1,8,2,124,255,11,254,23,0,50,1,72,0,109,1,33,3,249,1,167,0,237,0, +143,0,238,255,137,0,246,0,25,0,85,255,191,255,36,0,235,255,214,0,100,2,209,1,146,0,24,1,54,1,27,0, +33,0,176,0,107,0,122,0,133,0,112,255,186,254,65,255,158,255,149,255,49,0,40,1,108,1,186,0,103,255,200,254, +138,0,228,2,75,2,69,0,79,0,236,0,106,0,160,0,214,1,0,3,42,4,68,4,236,2,187,1,126,0,95,255, +52,0,1,1,157,255,119,255,171,1,6,2,20,0,181,254,166,253,81,252,112,252,97,254,83,0,48,1,94,1,46,1, +129,0,56,0,46,1,10,2,189,1,165,1,238,1,43,1,82,0,227,0,135,1,63,1,255,0,221,0,152,0,205,0, +70,1,153,1,233,1,125,1,192,0,161,1,154,2,1,1,126,255,185,0,10,2,254,1,84,2,137,2,190,1,85,1, +22,1,47,0,82,0,133,1,129,1,44,1,9,2,4,2,228,0,45,1,93,1,89,255,166,254,3,1,29,2,149,0, +215,255,71,0,253,255,200,255,134,0,163,0,158,255,6,255,15,255,176,254,89,254,247,254,61,0,147,1,15,2,61,1, +54,1,195,2,204,2,80,1,164,1,68,2,186,0,252,255,230,0,22,0,144,254,126,255,20,1,27,1,238,0,31,1, +118,0,150,255,76,0,51,2,99,3,76,3,136,2,120,1,131,0,226,255,137,255,32,0,232,1,7,3,13,2,90,0, +183,255,164,255,237,254,129,254,228,255,173,1,160,1,225,0,94,1,195,1,130,0,58,255,154,255,141,0,205,0,162,0, +31,0,77,255,78,255,153,0,88,2,125,3,184,2,54,0,72,254,131,253,23,253,239,253,140,255,188,255,66,255,138,255, +0,0,194,0,21,1,147,255,177,254,201,255,62,255,37,253,197,253,14,0,7,0,211,254,123,255,162,0,86,255,117,253, +129,254,90,0,254,255,166,255,36,0,235,254,142,253,182,254,238,255,95,255,40,255,181,255,129,255,72,255,243,255,40,0, +12,0,47,1,133,1,109,255,194,254,226,0,223,1,132,1,175,1,166,0,176,254,92,254,39,255,85,0,84,1,9,0, +24,254,180,254,204,255,123,255,67,255,238,254,58,254,217,254,59,0,33,0,101,254,33,253,13,254,36,255,218,253,121,252, +36,253,195,253,120,253,145,253,49,254,16,255,158,255,153,255,227,255,175,255,178,254,176,255,132,1,254,255,210,253,61,255, +45,1,227,0,178,0,74,1,20,1,110,0,35,0,137,255,234,254,197,255,112,1,151,1,36,0,227,254,218,254,189,255, +7,0,115,255,76,0,24,2,132,1,197,255,223,255,215,255,178,253,224,251,147,252,55,255,179,1,247,1,43,0,76,254, +191,253,130,254,177,255,220,0,247,1,249,1,59,1,219,1,168,2,204,0,248,253,43,253,29,254,10,0,156,2,223,3, +115,2,70,0,164,255,115,255,67,254,95,254,217,0,67,2,196,1,21,2,121,2,36,1,25,0,154,0,20,1,214,0, +232,255,108,254,251,253,120,255,125,1,22,3,3,4,5,3,75,0,111,254,40,254,16,254,147,254,83,0,152,1,130,1, +237,0,2,0,3,255,187,254,109,255,64,1,189,2,137,1,189,255,252,0,8,3,134,2,27,1,201,0,16,1,165,1, +64,2,50,2,166,1,253,0,93,0,12,0,214,255,120,255,112,255,249,255,91,0,1,0,74,255,57,255,31,0,130,0, +110,255,25,255,204,0,111,1,29,0,139,0,39,2,12,1,105,255,31,0,239,255,57,254,31,255,234,1,225,2,155,2, +168,2,31,2,236,0,227,255,150,254,143,253,175,254,134,0,93,0,106,0,70,2,207,1,210,254,111,254,193,255,63,255, +5,255,36,0,118,0,137,0,187,0,169,255,220,254,24,0,214,1,111,2,113,1,133,255,78,254,214,253,54,253,249,252, +103,253,3,254,3,255,56,0,170,0,217,255,43,254,43,253,12,254,184,255,130,0,19,0,230,254,215,253,124,253,193,253, +102,254,243,254,120,255,202,0,28,2,181,1,81,0,180,255,3,0,187,0,94,1,36,1,229,255,199,254,11,255,192,255, +252,254,194,253,17,254,193,254,127,254,70,254,54,254,213,253,65,254,172,255,124,0,149,0,244,0,235,0,250,255,227,255, +250,0,31,1,122,0,152,0,171,0,171,0,146,1,118,1,228,255,216,255,135,0,64,255,72,254,245,255,32,2,189,2, +246,1,114,0,65,255,91,255,18,0,184,255,14,255,72,0,185,1,243,0,133,0,131,1,190,0,88,255,104,0,44,1, +16,255,46,253,120,254,49,1,230,1,205,0,43,0,0,255,101,253,112,254,194,255,73,254,174,254,233,1,22,2,96,0, +96,1,137,2,44,1,121,255,221,254,179,254,239,254,70,0,185,1,42,1,44,0,158,0,156,255,214,253,240,255,178,2, +200,1,21,1,224,1,27,1,82,0,39,0,74,254,54,253,92,255,144,1,203,1,119,1,104,1,51,1,47,0,94,255, +166,0,81,2,115,1,217,255,239,255,177,255,220,253,149,253,5,0,129,1,197,0,189,0,55,1,199,255,31,254,41,254, +249,253,36,253,186,253,92,255,45,0,194,255,87,254,0,253,14,254,218,1,238,4,28,4,45,1,30,0,177,0,234,255, +138,254,45,255,142,0,185,0,251,0,82,1,187,255,255,253,43,255,116,1,250,1,110,1,118,1,43,2,190,2,234,2, +17,3,218,2,88,2,208,2,151,3,138,3,233,3,210,3,185,1,62,1,150,3,204,3,156,1,200,0,167,0,110,0, +34,1,200,0,84,254,18,253,232,254,174,1,148,2,115,1,108,0,96,0,117,0,44,0,240,255,21,1,248,2,62,2, +246,255,101,0,239,1,19,2,205,2,104,3,101,2,29,2,228,1,196,255,195,254,242,255,173,0,221,0,222,0,179,0, +139,1,3,2,45,1,177,1,182,2,190,1,51,1,195,1,20,1,219,0,79,2,182,2,97,2,1,3,194,2,51,1, +38,0,71,255,237,254,66,1,88,4,253,3,15,1,1,255,97,254,149,254,45,255,58,255,132,255,30,1,17,2,24,1, +226,255,21,255,194,254,198,255,139,0,80,255,134,254,14,0,140,1,63,1,105,0,65,0,49,0,40,255,9,254,206,254, +49,0,83,255,33,254,234,255,198,1,33,0,22,254,123,254,21,255,22,255,203,255,241,255,72,254,106,252,115,252,68,254, +126,254,154,251,80,250,43,253,215,255,145,0,78,1,23,1,139,255,36,255,230,255,76,0,191,0,135,1,137,1,7,0, +48,254,189,253,14,254,108,254,157,255,29,0,186,254,48,254,152,254,66,253,240,251,192,252,141,253,114,253,226,253,18,255, +231,255,56,255,27,254,187,254,187,255,107,255,112,255,49,0,171,0,13,1,53,0,252,253,217,252,60,252,21,251,78,252, +153,255,193,0,37,0,17,0,112,255,250,253,72,253,114,253,26,254,57,255,72,255,65,253,132,251,248,251,173,252,186,252, +223,253,237,254,222,253,54,253,74,254,70,254,89,253,227,253,41,254,175,252,78,252,221,253,37,254,209,252,180,252,167,253, +38,254,36,255,236,255,251,253,123,251,25,252,79,254,105,255,102,255,204,254,98,254,121,254,33,254,228,253,142,254,122,254, +136,253,213,253,223,254,11,255,78,255,51,0,37,0,237,254,101,254,35,255,222,255,24,0,119,0,13,1,91,1,235,0, +154,255,102,254,182,254,21,0,17,0,137,253,165,251,124,253,53,0,209,0,182,1,202,2,142,0,229,253,243,254,253,255, +141,254,176,254,122,0,73,255,84,252,181,252,72,255,138,255,129,254,121,254,133,253,73,252,205,253,52,255,248,253,41,254, +99,0,113,0,192,254,13,254,147,254,252,255,121,0,210,254,58,254,179,255,168,255,221,254,120,0,227,1,233,0,97,0, +68,0,51,254,156,252,32,253,235,252,208,252,8,255,41,0,110,255,193,0,28,2,124,0,118,255,196,255,225,254,84,255, +129,1,196,0,59,254,43,254,249,254,50,254,88,253,190,253,189,254,149,255,226,255,67,255,71,254,71,254,140,254,246,253, +227,254,152,1,162,1,253,255,195,1,194,3,192,0,48,253,49,254,121,0,173,0,197,0,56,1,122,255,249,252,81,253, +224,254,45,255,237,255,5,1,151,0,102,0,13,1,53,0,158,254,12,254,61,254,120,255,99,0,61,255,45,255,108,1, +148,1,236,255,198,255,192,254,133,252,154,253,35,0,42,0,26,1,137,3,41,2,50,255,10,0,126,1,50,1,133,2, +178,3,154,1,236,255,181,255,167,253,45,252,52,254,45,0,45,0,187,0,61,2,22,3,217,2,29,2,158,1,22,1, +117,0,114,1,92,3,127,2,190,255,88,255,3,0,30,255,200,255,217,2,108,3,168,1,202,1,101,2,37,1,228,255, +249,254,53,254,138,255,206,1,153,2,183,2,247,1,192,255,173,254,231,255,177,1,254,2,81,3,57,3,121,3,149,2, +10,1,207,1,167,3,123,3,228,1,2,1,4,2,63,3,237,1,189,0,37,2,102,1,0,254,31,254,249,0,10,2, +43,2,11,2,108,1,53,2,35,3,135,1,67,255,84,254,1,254,75,254,58,255,135,255,27,255,5,0,210,2,227,3, +85,1,57,255,115,255,44,255,250,254,27,0,57,255,252,252,104,254,98,1,180,0,232,254,250,255,104,1,195,0,47,0, +123,0,96,0,38,1,76,3,155,3,247,1,146,1,65,1,19,255,4,254,92,255,95,0,156,0,121,0,169,254,18,253, +123,254,248,255,25,255,37,255,192,0,117,0,66,255,198,255,224,255,165,254,16,255,14,1,203,1,251,0,195,255,240,254, +167,255,139,1,22,2,163,0,247,255,50,1,194,1,73,1,60,2,65,3,200,1,48,0,87,0,40,0,191,255,30,1, +179,2,3,2,34,0,80,255,88,255,11,255,43,255,214,0,29,3,32,4,70,2,157,254,157,253,251,255,85,1,124,1, +192,2,72,3,181,2,223,2,90,2,253,0,131,0,174,255,64,255,89,1,171,2,160,1,190,1,221,2,17,3,250,2, +231,1,133,0,238,0,59,0,23,253,192,252,219,255,121,1,43,1,213,0,26,0,113,255,151,255,148,255,126,255,44,0, +89,0,142,255,161,0,17,4,114,5,66,3,151,1,19,2,106,2,86,2,176,2,115,2,154,1,217,1,204,2,70,2, +234,0,94,1,100,2,238,0,94,255,249,0,184,2,51,2,70,2,37,3,14,2,119,0,177,0,5,1,31,0,57,255, +102,255,32,1,78,3,182,3,60,3,137,3,98,2,129,255,217,254,44,0,53,0,153,255,6,255,194,253,20,254,171,0, +42,2,26,2,60,2,220,1,193,0,9,0,164,255,170,255,128,0,24,1,109,0,69,255,10,255,164,255,78,0,171,1, +205,2,31,1,228,254,192,255,129,1,51,2,212,2,62,2,65,1,86,2,90,2,182,255,197,254,148,255,170,255,106,0, +3,1,174,255,72,255,189,0,26,1,18,0,95,255,134,255,170,255,232,254,138,254,60,255,71,255,101,255,56,0,194,254, +17,252,124,252,162,254,185,255,32,0,167,255,108,255,219,0,229,0,116,254,158,253,24,255,86,0,193,0,252,255,93,254, +212,253,27,254,33,254,208,254,161,255,66,255,121,255,85,1,32,2,104,0,73,254,71,253,8,253,227,253,92,0,140,2, +43,2,187,0,205,0,209,0,21,255,116,254,192,255,146,255,236,254,141,0,231,0,175,254,89,254,186,254,64,253,71,254, +91,1,161,0,29,255,150,0,86,0,139,254,178,255,50,0,23,254,221,254,81,1,56,0,239,254,191,0,138,1,228,255, +52,255,56,0,82,1,114,1,122,0,230,255,25,0,129,255,65,255,17,1,217,1,76,255,209,252,33,253,171,254,120,255, +138,255,22,0,248,0,75,0,49,254,176,252,40,252,242,252,113,255,201,0,94,255,171,254,17,0,151,0,33,0,194,0, +253,0,145,255,136,255,187,1,36,2,80,0,122,0,105,2,254,1,144,255,103,254,96,254,101,253,59,252,70,253,130,255, +239,255,115,255,28,0,89,0,171,255,160,255,179,254,166,252,100,253,122,0,89,1,14,0,225,254,115,253,38,252,166,252, +136,254,60,0,12,1,76,0,245,253,113,252,220,253,55,0,145,0,122,255,18,255,2,0,232,0,245,255,204,254,42,0, +216,1,65,1,128,0,75,0,94,255,135,255,188,1,72,3,74,2,202,255,253,254,53,1,56,2,212,255,44,254,201,254, +158,255,226,0,206,1,245,0,112,0,157,0,76,255,231,253,105,254,173,255,194,0,245,0,195,255,250,254,122,255,85,255, +23,254,177,253,29,255,169,0,225,255,189,253,163,253,214,255,176,1,121,1,21,255,173,252,166,253,123,1,172,3,132,2, +206,0,93,0,152,255,81,253,112,251,1,252,59,254,167,255,39,255,71,254,196,254,136,255,194,254,94,253,113,253,14,255, +147,0,191,0,191,255,143,254,167,253,252,252,60,253,251,254,50,0,204,254,150,253,81,255,131,0,54,255,38,255,81,0, +170,255,17,255,139,255,239,254,139,255,156,2,32,3,51,1,39,2,100,4,142,3,3,1,78,255,186,254,212,254,174,254, +187,254,19,0,81,1,171,1,63,2,208,1,114,255,52,254,32,255,101,255,136,254,0,254,192,253,68,254,34,0,95,1, +205,0,110,0,218,0,254,255,3,254,145,253,9,255,98,0,215,0,16,1,47,1,185,0,48,255,36,253,144,252,17,254, +3,0,173,1,246,2,117,2,124,0,169,255,152,0,252,1,3,3,12,3,122,2,230,1,238,255,231,252,30,252,64,253, +84,253,103,253,220,254,150,255,161,255,18,1,239,1,201,255,106,253,48,253,242,252,115,252,48,254,253,255,129,254,72,253, +107,255,240,0,73,0,244,0,220,1,18,0,210,254,167,0,25,2,177,1,202,1,208,1,113,0,39,0,157,1,97,1, +66,255,162,254,178,255,51,0,195,255,245,254,192,253,24,252,34,251,207,252,36,0,127,1,34,1,33,2,18,3,44,1, +210,254,31,255,102,0,44,0,103,255,87,255,240,254,37,254,77,254,162,254,149,254,73,255,136,255,176,254,85,255,67,0, +245,254,198,254,112,0,114,255,105,253,46,254,35,255,172,254,253,254,247,255,105,0,240,255,205,254,235,254,18,0,86,0, +40,1,240,1,253,254,163,251,233,252,94,255,235,255,101,0,11,0,44,254,238,253,180,255,144,0,115,0,3,1,7,1, +168,254,129,252,11,254,126,0,218,255,58,254,140,254,56,0,35,2,139,2,76,0,8,254,12,254,89,255,202,0,232,1, +10,3,140,4,243,3,134,0,176,254,148,255,58,0,37,1,74,2,243,0,104,255,204,0,211,1,43,0,88,254,143,253, +140,253,249,254,138,1,112,3,183,2,189,255,19,254,71,255,212,0,97,1,82,1,148,0,68,0,221,0,129,0,164,255, +64,0,33,1,118,1,133,2,83,3,157,2,154,1,187,0,65,0,250,0,244,0,36,255,116,254,174,254,181,253,196,254, +194,2,183,3,194,0,211,254,83,254,65,254,51,0,218,2,134,3,148,2,235,0,196,255,90,0,217,0,72,0,138,0, +244,0,100,0,78,0,160,255,40,253,30,252,88,253,111,254,228,255,122,1,45,1,159,0,166,0,203,254,174,252,215,253, +31,0,192,255,153,253,62,253,141,255,45,1,106,0,250,255,195,0,213,0,82,0,242,255,33,255,44,254,243,253,236,254, +95,0,4,0,155,254,91,255,93,0,121,254,123,252,228,252,44,254,77,255,160,255,148,255,96,1,247,2,49,1,233,255, +187,1,16,2,207,255,242,254,172,255,22,0,154,0,112,1,251,1,28,2,137,1,101,0,251,255,18,1,160,2,32,3, +110,2,131,1,68,1,47,2,1,3,57,1,211,253,235,252,200,254,255,255,216,255,32,0,42,1,251,1,200,1,113,0, +23,255,233,254,61,255,31,255,63,255,239,255,75,0,186,0,239,1,60,2,164,0,74,255,167,255,139,0,197,0,156,0, +226,0,64,1,196,0,171,0,37,2,150,2,72,0,69,254,201,254,32,0,70,0,84,255,228,254,103,255,91,255,239,254, +150,255,77,0,97,0,13,1,165,1,54,1,179,0,161,255,173,253,252,252,231,253,26,255,139,0,5,1,173,255,252,254, +130,255,207,254,187,253,160,254,227,255,56,255,48,254,66,255,241,0,138,0,230,255,71,1,154,1,90,255,117,254,204,255, +73,0,255,255,50,0,201,255,199,254,173,254,129,255,64,0,39,0,186,255,8,1,179,3,230,3,33,1,51,255,161,254, +78,253,178,252,160,253,232,252,244,250,223,251,200,254,10,0,74,255,205,253,199,253,59,0,65,1,253,254,181,253,78,254, +128,254,234,255,101,2,247,2,31,3,186,3,16,2,68,0,164,1,22,3,10,2,45,0,230,254,104,255,116,1,20,2, +21,1,219,0,244,0,135,0,7,1,147,2,241,2,161,0,96,253,166,252,118,254,136,255,57,255,123,255,123,0,245,0, +152,0,119,0,250,0,76,0,115,254,3,255,247,1,210,2,73,1,193,0,243,0,196,255,60,254,82,254,158,255,157,0, +204,0,104,0,189,255,73,255,31,255,247,254,142,255,67,1,70,2,137,1,128,0,35,0,57,0,178,0,32,1,53,1, +139,1,183,1,124,0,234,254,48,255,60,0,54,255,3,253,43,253,203,255,197,1,189,1,179,0,177,255,63,255,131,255, +72,0,18,1,133,1,66,2,46,3,63,2,181,255,236,254,2,0,150,255,108,253,205,252,127,255,54,3,56,4,174,2, +184,1,128,1,180,0,172,0,54,2,147,3,183,3,254,2,68,2,74,2,156,2,177,2,229,2,244,2,148,2,42,2, +87,1,254,255,30,255,74,255,181,0,77,2,215,1,80,0,0,0,98,255,51,254,44,255,179,0,67,0,149,0,185,2, +131,3,112,2,87,1,225,0,251,0,167,0,121,255,253,254,117,255,172,255,24,0,218,0,35,0,223,253,243,252,204,254, +98,0,56,255,221,253,221,253,239,252,254,251,30,253,209,253,213,253,209,255,56,1,64,0,155,0,116,1,131,255,106,254, +70,0,190,0,161,255,41,0,108,0,43,255,237,255,221,1,99,0,80,254,215,0,166,3,94,1,72,254,81,254,111,254, +206,253,249,254,2,1,189,1,153,1,203,1,69,2,127,1,127,255,241,254,104,255,54,254,121,253,8,255,130,255,123,254, +192,254,41,255,188,254,162,254,97,253,211,251,165,253,8,255,125,251,98,249,151,252,116,254,181,253,101,255,59,1,39,0, +44,0,209,1,57,1,179,255,174,255,6,0,188,0,195,1,61,1,25,0,83,0,220,0,188,0,60,0,129,255,170,255, +71,1,172,2,147,2,193,1,197,1,27,2,65,0,214,253,232,254,198,0,215,255,114,255,35,0,147,254,143,253,34,255, +89,255,122,254,231,254,137,254,76,254,211,0,170,2,199,1,134,1,84,2,193,1,187,255,21,254,145,254,117,0,83,1, +31,1,20,0,168,253,194,252,220,254,242,255,59,255,39,255,30,254,152,252,141,254,37,1,180,255,13,254,164,255,156,0, +22,255,87,254,228,254,231,253,116,252,177,254,35,3,8,4,130,1,9,0,6,0,51,0,31,1,239,1,165,1,169,1, +50,2,200,1,161,0,246,255,53,0,124,0,90,255,204,253,39,254,171,255,179,0,183,1,149,2,170,2,97,2,97,1, +50,0,22,1,225,2,193,2,16,2,252,1,21,1,146,0,89,1,175,0,157,255,111,1,255,2,81,1,67,0,131,1, +229,1,232,0,33,0,91,0,254,1,196,2,199,0,168,255,141,1,160,2,89,1,75,0,39,0,0,0,113,255,200,254, +252,254,212,255,166,0,2,2,239,2,94,2,60,2,141,2,123,1,126,0,242,255,60,254,236,253,37,0,192,0,113,255, +195,255,174,1,79,3,170,3,220,2,12,2,212,0,64,255,140,255,103,0,13,0,87,1,212,2,178,0,151,255,175,1, +195,0,66,254,13,0,31,2,193,0,20,0,160,0,204,254,211,251,217,251,129,255,222,2,123,2,130,0,113,0,252,0, +18,0,69,255,192,255,160,255,107,254,208,254,235,0,243,0,153,254,165,253,118,254,182,254,209,254,131,255,62,255,16,254, +114,254,192,0,119,2,45,2,173,0,1,255,255,253,248,253,88,254,72,255,214,0,17,1,218,255,190,255,102,0,50,0, +125,0,11,1,180,255,96,254,93,255,71,0,41,255,128,253,207,252,43,253,116,253,194,252,107,252,73,253,142,253,250,252, +100,253,212,253,133,252,188,251,189,253,81,0,221,0,222,255,8,255,70,255,128,255,17,254,191,252,49,254,59,0,236,255, +249,254,56,255,83,255,105,254,103,253,35,253,217,253,86,255,240,0,126,1,43,0,77,254,253,253,208,254,243,254,71,254, +33,254,79,255,218,0,168,0,84,254,26,252,207,251,168,252,73,253,86,254,84,0,41,1,98,255,161,252,105,250,111,249, +183,250,229,252,87,253,0,253,224,253,237,254,228,254,123,253,157,250,214,248,142,250,189,252,234,252,244,253,209,255,141,254, +251,251,45,252,198,252,219,251,124,252,104,254,69,254,77,253,233,253,60,254,218,252,114,252,117,254,203,255,43,255,9,0, +145,2,150,2,178,0,83,0,20,0,125,254,11,254,99,255,243,255,157,254,28,253,8,253,61,253,7,253,100,254,110,0, +171,255,43,253,234,251,234,251,205,252,57,254,146,255,47,1,74,1,113,254,127,252,82,253,170,253,73,253,173,253,4,254, +228,254,98,0,60,0,25,255,91,254,237,252,95,252,189,254,183,0,97,255,96,253,182,253,16,255,220,254,37,254,21,255, +245,255,13,255,125,254,110,255,80,0,47,0,41,255,150,254,213,255,193,0,203,254,216,252,255,254,0,3,220,3,93,2, +48,2,251,1,23,0,152,255,132,0,190,255,175,255,82,2,39,3,68,1,8,1,254,1,206,0,237,254,116,255,42,1, +222,0,105,255,88,0,4,3,84,3,101,0,85,253,54,253,127,255,163,0,1,0,48,0,137,0,68,255,123,254,20,255, +138,254,11,253,233,252,36,254,31,0,119,2,144,3,70,3,106,3,118,3,218,1,21,0,117,255,210,254,110,254,63,255, +102,0,184,1,60,3,31,3,124,1,28,0,5,255,56,255,101,1,226,1,22,0,177,0,162,2,28,1,143,254,35,255, +181,0,193,0,21,0,43,255,97,254,144,254,210,254,200,254,43,0,149,1,220,255,4,254,30,0,171,2,53,2,45,1, +226,0,100,0,58,0,137,0,101,1,253,2,28,3,73,1,129,0,6,1,246,1,14,4,43,5,166,3,97,2,167,1, +248,255,29,0,58,2,40,2,43,1,115,2,85,3,57,2,212,1,10,2,77,1,107,1,151,2,43,2,2,1,46,1, +30,1,215,0,114,2,64,3,112,0,0,254,86,255,238,1,250,2,222,1,100,255,89,254,45,0,47,2,236,1,127,0, +116,255,27,255,71,0,148,2,141,2,151,255,78,254,249,255,50,1,208,1,60,3,203,3,61,3,142,3,121,4,212,4, +197,4,242,3,210,1,163,255,123,255,63,1,101,2,233,1,123,1,46,2,251,2,40,2,42,0,21,0,191,1,138,1, +100,0,27,1,176,1,4,1,197,0,143,0,217,0,142,2,221,2,100,1,40,1,229,0,118,255,220,255,134,1,54,1, +226,255,127,255,152,255,132,255,94,255,183,255,121,0,116,0,147,255,35,255,119,255,105,255,122,254,152,254,174,0,197,1, +242,0,241,0,235,0,63,255,245,254,178,0,45,1,142,0,172,0,251,0,122,0,249,254,74,254,27,0,42,1,127,255, +132,255,241,1,59,2,240,0,217,0,207,0,0,1,218,2,39,4,109,3,163,2,72,2,146,1,49,1,11,1,141,0, +35,1,21,3,247,3,251,2,144,1,203,0,46,1,207,1,15,1,48,0,169,0,44,0,22,254,70,254,105,1,217,2, +214,0,5,255,2,255,147,254,82,254,247,255,78,0,36,254,229,253,96,255,41,255,158,255,211,1,9,2,254,0,92,1, +251,0,170,254,181,252,142,252,244,253,14,255,205,254,100,255,23,1,202,0,44,255,174,255,57,1,89,0,246,253,143,253, +191,254,237,254,254,254,222,255,192,255,111,255,243,255,213,254,200,253,180,0,132,3,6,2,47,0,176,0,196,1,148,2, +8,2,209,255,229,254,205,255,114,255,180,253,217,252,235,252,248,252,111,253,204,254,248,255,115,255,225,253,123,253,62,254, +28,254,136,253,176,254,118,0,167,0,5,0,45,255,252,253,66,254,119,255,127,254,211,252,29,253,120,253,46,253,207,253, +64,254,43,254,50,255,46,0,198,255,26,255,95,254,211,253,217,254,94,0,93,0,193,255,179,255,180,255,253,255,187,0, +147,0,170,255,252,255,234,0,108,0,39,255,20,254,135,253,112,255,226,2,54,3,181,0,160,255,223,255,107,255,225,254, +216,254,178,254,31,254,253,253,151,255,207,1,165,2,234,2,38,3,218,1,128,255,210,253,116,253,215,254,1,1,65,2, +239,2,27,3,219,1,255,255,217,254,195,254,64,255,5,255,192,254,2,0,199,0,213,255,200,255,148,0,237,255,132,254, +227,253,107,254,20,255,173,253,9,252,215,253,13,0,16,255,124,254,124,0,160,1,51,0,13,254,197,253,253,255,127,1, +58,0,230,254,224,254,118,254,93,254,223,255,43,1,58,1,116,1,133,1,71,0,128,255,177,0,252,1,71,2,172,2, +204,2,201,1,232,0,206,0,66,0,138,255,42,0,69,1,39,1,231,0,165,1,218,1,68,1,36,1,93,0,165,254, +141,254,40,0,101,1,201,1,237,0,126,255,144,255,1,0,62,255,46,255,15,0,106,0,72,1,212,2,159,3,136,3, +221,1,214,254,138,253,109,254,110,255,38,1,178,3,112,4,236,2,168,1,157,1,187,0,45,254,69,253,138,255,52,1, +128,0,144,255,130,254,248,252,213,252,249,253,231,253,150,252,157,252,223,254,226,0,147,0,39,255,170,254,207,255,119,1, +161,1,50,1,59,2,129,2,178,0,129,0,217,1,145,0,20,254,60,254,23,0,107,1,16,2,209,1,6,0,87,253, +2,252,6,253,204,254,84,0,157,1,154,1,121,0,20,0,175,0,144,1,78,2,21,2,35,1,192,0,153,0,220,255, +234,254,34,254,230,253,204,254,18,0,220,255,235,253,113,252,56,253,58,255,186,0,111,1,98,1,176,0,90,0,177,0, +93,0,187,254,123,253,33,254,122,255,196,255,100,255,157,255,172,0,112,1,233,0,123,0,95,1,175,1,236,0,12,1, +33,1,34,0,63,0,73,1,8,1,108,0,154,0,102,0,26,255,126,253,13,253,196,253,92,254,236,255,7,2,148,0, +180,253,27,255,41,1,32,255,44,253,195,253,197,253,149,252,173,251,120,251,196,251,5,252,23,253,136,255,200,0,255,255, +5,255,220,253,87,253,23,255,100,0,149,255,212,255,2,1,78,0,175,255,15,1,101,1,216,255,166,255,172,0,58,0, +185,255,34,1,215,1,96,0,114,255,249,255,81,0,19,0,156,255,118,255,62,0,0,1,172,0,204,255,154,254,17,253, +180,252,195,254,143,1,51,2,218,0,27,0,34,0,174,255,13,0,55,2,3,4,15,4,130,3,252,2,172,1,37,0, +158,0,45,2,94,1,97,255,119,255,19,0,214,255,144,0,122,1,16,1,102,0,33,255,52,253,152,253,245,255,40,0, +33,254,211,253,7,0,17,1,79,255,147,253,7,253,220,252,158,254,21,1,208,255,123,253,241,254,253,255,16,253,154,251, +66,254,36,0,25,255,68,254,53,255,91,0,174,0,114,0,60,0,153,0,252,0,151,0,60,0,80,0,124,0,160,1, +92,2,105,0,5,255,81,0,114,0,208,255,63,1,87,1,40,255,129,254,18,254,244,252,170,254,96,1,88,1,123,0, +253,255,81,255,146,255,92,255,150,253,210,253,87,0,198,0,253,254,251,253,70,254,234,254,203,254,246,253,158,254,54,0, +72,255,196,253,229,255,255,1,14,0,11,255,102,1,197,1,41,0,10,1,2,2,129,0,85,0,26,2,81,2,198,1, +240,1,210,0,143,255,54,1,227,2,163,1,25,1,19,2,12,0,245,252,15,254,140,0,232,0,107,1,208,1,227,255, +40,254,192,254,169,255,96,255,200,254,68,255,65,0,47,0,97,0,91,1,26,0,15,254,33,255,249,255,186,253,241,252, +38,255,217,0,99,1,73,1,111,0,149,0,1,2,51,2,144,1,227,2,188,4,35,3,30,0,180,0,111,2,124,0, +23,254,242,254,42,0,37,0,61,0,253,255,247,255,30,1,232,0,218,254,108,254,7,255,175,253,205,252,216,254,22,0, +139,254,218,253,167,254,137,254,23,255,86,1,55,2,220,1,96,2,217,1,247,255,191,255,53,0,14,255,112,254,187,255, +155,0,224,255,46,255,68,0,81,2,171,2,28,1,37,0,52,0,224,255,140,255,24,0,173,0,178,0,167,0,138,0, +25,0,150,255,21,255,202,254,89,255,148,0,16,1,144,255,104,253,52,254,141,1,54,2,33,0,26,0,12,1,25,0, +214,255,106,0,8,255,142,254,69,1,192,2,2,1,71,255,68,255,97,0,95,1,209,0,62,255,199,254,245,255,255,0, +108,0,59,255,187,254,142,254,175,254,12,255,194,254,15,255,179,0,229,0,237,255,251,0,50,2,239,0,161,255,237,255, +121,0,207,0,52,1,195,1,26,2,116,1,204,0,236,0,201,0,118,1,38,3,226,1,214,254,162,255,96,1,201,254, +4,252,227,252,12,254,84,254,165,255,214,0,176,0,159,0,253,0,149,0,145,255,81,255,246,255,86,0,156,0,163,1, +40,2,62,1,131,0,66,0,162,255,22,0,88,1,85,0,201,254,125,0,9,2,110,255,4,253,146,254,232,255,242,253, +251,251,110,252,4,254,249,255,183,1,219,1,45,1,22,1,194,0,70,0,49,0,1,255,253,253,234,255,1,1,10,254, +153,252,171,255,150,1,12,0,70,255,94,0,54,0,218,254,124,255,67,1,144,0,122,254,211,253,14,254,33,255,153,0, +84,255,188,252,149,253,86,0,33,1,81,0,16,255,79,254,5,255,236,255,235,255,159,255,89,255,180,255,143,0,110,0, +243,255,159,0,173,1,245,1,87,1,49,1,63,2,23,1,125,253,182,253,120,0,232,254,239,252,172,255,153,1,20,0, +34,255,210,254,254,253,73,254,95,255,132,255,234,254,244,254,220,255,215,255,44,255,125,0,197,1,181,255,156,253,173,254, +148,0,135,1,110,1,200,255,19,254,103,254,12,0,248,0,104,0,151,255,65,0,245,1,197,2,30,2,96,1,174,1, +172,1,234,255,85,254,151,254,255,254,129,254,201,254,230,0,204,2,145,1,158,254,52,254,249,255,166,0,134,0,42,1, +237,1,227,1,135,1,61,2,43,3,126,1,224,254,7,255,236,255,99,255,142,255,53,0,48,0,197,0,159,0,168,254, +49,254,26,255,23,254,120,253,93,0,35,3,133,1,3,254,177,253,167,255,20,255,195,252,192,252,84,254,137,255,175,0, +222,0,155,255,143,254,225,253,189,253,176,255,213,1,36,1,154,255,213,255,34,0,7,255,253,253,39,254,27,255,232,255, +221,255,185,255,182,0,188,1,219,0,184,254,135,253,90,254,29,0,153,0,246,255,110,0,51,1,20,0,178,254,0,255, +141,255,73,255,65,255,73,0,149,1,121,1,108,0,132,0,238,0,41,0,66,0,47,2,25,3,170,1,252,255,23,0, +71,1,102,1,223,0,47,1,134,0,52,254,239,253,124,0,235,1,202,0,113,255,217,255,48,1,166,0,247,253,163,252, +79,254,243,0,123,2,242,1,215,255,133,254,244,254,35,255,45,254,187,253,5,254,205,253,255,253,29,255,173,254,241,252, +65,253,177,254,222,254,213,255,152,1,48,0,62,253,106,254,9,2,20,2,188,255,19,0,89,1,27,0,195,255,26,2, +131,2,249,0,85,1,191,1,150,0,113,0,112,0,69,255,210,255,169,1,140,1,131,0,223,255,212,254,150,254,240,255, +218,0,120,0,247,255,30,0,136,0,8,0,204,254,135,254,57,255,197,255,151,0,212,1,231,1,26,0,28,254,45,254, +252,255,191,0,236,255,64,0,249,1,249,1,26,0,44,255,81,255,42,255,70,255,181,255,214,255,167,0,166,1,218,0, +201,255,31,0,229,255,34,255,131,255,128,255,205,254,66,255,198,255,81,0,141,2,212,2,247,254,255,252,36,255,76,0, +130,255,27,255,180,254,158,254,11,255,224,253,138,252,37,254,215,255,200,254,51,254,154,255,31,0,123,255,158,255,120,0, +61,1,127,1,252,0,59,0,120,255,198,254,249,254,104,255,10,255,164,255,87,1,251,0,0,255,205,254,155,0,11,2, +151,0,50,253,111,253,90,1,216,1,47,255,61,255,39,0,217,254,149,254,95,0,254,0,132,255,47,254,74,255,242,0, +113,255,135,253,69,255,92,1,24,1,230,0,95,1,239,1,134,2,118,1,209,255,115,0,127,1,142,1,162,2,103,3, +237,1,171,0,95,1,198,2,107,3,164,2,140,1,31,1,146,0,172,0,251,1,78,1,19,254,226,252,248,254,55,0, +183,254,102,253,52,254,176,254,146,253,77,253,41,254,82,254,112,254,172,254,191,253,46,253,115,254,187,255,244,255,254,255, +35,0,72,0,188,0,99,1,30,1,255,255,92,0,0,2,19,2,85,1,0,1,154,255,101,255,72,2,40,3,2,1, +41,1,197,2,122,2,238,1,200,1,107,1,193,1,121,1,40,0,133,0,82,1,101,255,245,252,125,253,207,255,77,0, +146,254,254,253,49,255,189,255,16,0,132,0,84,255,19,254,68,254,36,254,185,254,189,0,214,0,74,255,172,254,78,254, +250,254,154,0,18,255,65,252,237,253,94,1,174,1,149,0,97,0,177,0,27,1,63,1,222,0,209,255,68,254,177,253, +227,254,251,0,147,2,162,1,44,255,128,255,112,1,180,0,106,255,152,255,212,254,3,255,57,2,104,3,238,0,171,255, +50,0,84,0,194,0,209,0,135,255,76,255,150,0,238,0,135,0,46,0,57,255,94,255,196,1,21,3,26,2,91,1, +170,0,173,255,170,0,23,2,20,1,99,0,194,1,31,2,92,1,117,1,91,1,190,0,241,0,88,1,14,1,208,255, +162,253,227,252,231,254,114,0,223,255,144,255,45,0,59,0,48,255,139,253,3,253,79,254,29,255,189,254,49,255,246,255, +15,0,53,1,122,2,203,0,2,254,148,253,123,254,241,254,138,255,138,0,75,1,69,1,113,0,227,255,79,0,143,0, +16,0,86,0,3,2,25,3,92,2,239,1,243,2,125,2,45,0,134,0,138,3,149,3,252,255,152,253,68,254,238,255, +217,0,225,0,134,0,180,255,125,254,85,254,205,255,190,0,114,255,40,254,56,0,174,3,84,3,26,0,154,255,2,2, +68,3,59,2,72,0,191,254,251,253,109,253,193,253,37,255,27,255,176,253,229,253,63,255,217,255,215,255,254,254,96,254, +170,255,140,0,1,0,247,0,131,2,47,2,200,1,132,1,24,0,229,255,136,1,44,2,188,1,66,1,148,0,165,0, +16,1,195,255,202,253,110,253,92,254,141,255,225,255,54,254,184,252,122,254,49,1,57,1,225,0,162,2,194,2,213,255, +178,254,232,255,117,255,138,254,93,255,74,255,126,254,30,0,59,1,105,254,94,252,102,254,157,255,20,254,28,254,87,255, +118,254,17,254,158,255,95,255,104,254,254,255,165,0,110,254,78,253,230,253,94,254,35,255,135,255,64,255,188,255,177,255, +149,254,53,255,198,0,132,0,185,255,149,255,156,255,118,0,24,1,35,0,44,0,52,2,195,2,17,1,2,0,56,0, +22,0,94,255,48,255,179,255,147,255,139,254,135,254,48,0,124,1,170,1,250,1,233,1,147,0,176,255,250,255,22,0, +160,0,18,2,123,2,216,1,136,1,123,1,102,2,70,3,211,0,241,253,129,255,165,1,129,0,111,255,92,255,197,254, +206,255,222,1,19,1,192,254,22,254,171,253,87,252,157,252,88,255,100,1,53,1,254,0,246,0,81,255,16,254,59,255, +246,255,37,255,165,255,41,1,21,1,36,0,233,255,185,255,72,255,114,255,236,255,11,0,48,0,33,0,172,255,249,255, +54,0,5,255,35,255,235,0,25,0,159,254,185,0,44,2,125,0,52,0,38,1,198,0,198,0,112,0,104,254,32,254, +13,0,76,0,219,254,211,254,229,0,206,1,160,254,16,251,134,251,103,253,216,254,78,1,188,2,92,2,167,2,250,1, +72,255,248,253,194,253,245,252,174,253,113,255,139,255,0,255,33,255,75,255,42,255,128,254,244,253,153,254,49,255,195,254, +187,254,166,255,248,255,149,254,95,253,38,255,101,1,212,255,141,253,244,254,76,1,181,1,174,1,1,2,252,1,52,1, +203,255,41,255,210,255,111,0,252,0,152,1,212,0,123,255,199,255,180,0,181,0,239,0,108,1,67,0,92,254,46,254, +148,254,41,254,236,254,127,0,63,0,193,255,10,0,129,254,99,253,11,0,48,2,7,1,37,0,97,0,110,0,220,0, +167,0,147,255,218,255,178,0,224,0,248,1,195,2,50,1,189,255,236,255,100,255,165,253,242,252,24,254,254,254,253,253, +8,253,184,253,55,254,81,254,188,255,228,0,33,0,61,255,64,255,148,255,51,0,78,0,238,254,85,253,193,253,109,0, +39,2,167,0,44,255,19,0,27,0,232,254,134,255,221,255,50,254,73,254,247,255,158,255,185,254,139,254,106,253,150,253, +150,0,28,2,228,0,55,0,226,255,72,254,46,253,98,254,163,0,89,1,143,0,26,1,102,2,29,1,26,255,217,255, +49,1,17,1,31,1,82,1,150,0,147,255,147,254,229,253,75,254,223,254,32,255,238,255,69,0,166,254,82,252,118,251, +187,252,151,254,8,255,48,255,180,0,102,1,98,0,80,0,161,0,138,255,182,255,132,1,235,0,46,255,58,0,199,1, +181,1,39,2,53,2,125,0,252,255,168,0,29,0,201,0,225,2,2,2,239,255,118,0,222,0,72,0,67,1,18,1, +230,253,190,252,76,255,103,1,130,1,97,1,194,1,182,1,82,0,176,254,192,254,245,255,122,0,128,0,110,1,208,2, +180,2,129,1,113,1,211,1,230,0,10,0,38,0,218,255,159,255,139,0,40,1,73,0,47,255,82,255,30,0,1,0, +220,255,97,1,106,2,176,0,143,254,65,254,193,254,222,254,135,254,199,254,74,0,40,1,23,0,220,254,122,254,133,254, +60,255,85,0,1,1,247,0,6,0,56,255,212,255,188,0,3,1,107,1,171,1,149,1,39,2,132,2,244,0,104,254, +167,253,245,255,206,2,193,2,110,0,169,254,144,254,29,0,193,1,142,1,225,0,17,1,162,0,24,0,236,0,92,1, +7,1,228,1,127,2,238,0,183,255,164,0,76,1,48,0,85,255,54,0,85,1,29,1,212,255,180,254,24,255,112,0, +34,0,142,254,199,254,78,0,163,0,98,0,247,0,231,1,53,2,114,1,108,0,255,255,200,255,34,0,121,1,241,1, +232,0,47,0,235,255,134,255,116,255,43,255,165,254,30,255,174,255,118,255,34,0,97,1,200,0,65,255,126,255,15,1, +157,1,216,0,61,0,194,255,125,254,205,253,25,255,184,0,75,1,176,1,223,1,237,0,117,255,197,254,61,255,40,0, +93,0,233,255,45,0,54,1,195,1,23,2,202,2,77,2,84,0,164,255,219,0,194,1,72,2,240,2,2,2,174,255, +165,254,86,255,105,0,98,1,177,1,18,1,172,0,240,0,68,0,20,254,183,252,185,253,99,255,101,0,235,0,229,255, +224,253,18,254,245,255,67,0,205,255,66,0,250,255,93,254,73,253,61,253,82,253,140,253,157,254,230,255,251,255,30,255, +249,253,158,252,3,253,199,255,62,1,225,0,239,1,219,2,30,1,133,255,222,255,110,0,112,0,219,255,25,255,209,254, +4,254,39,253,42,254,44,255,180,254,129,255,34,1,80,0,124,254,98,254,58,255,217,255,64,0,147,0,179,0,254,255, +7,255,82,255,224,255,183,254,18,253,181,253,46,0,45,1,114,0,244,0,116,1,168,255,131,255,19,2,151,1,52,255, +67,0,82,1,113,255,11,255,79,0,20,0,242,255,165,0,194,0,118,1,7,2,24,0,124,254,182,255,83,0,231,254, +116,254,235,254,147,254,73,255,49,1,60,0,96,253,13,254,154,0,93,0,253,255,186,1,165,1,30,255,155,253,228,253, +126,255,219,0,213,255,140,255,134,2,51,3,219,255,206,254,100,0,148,0,242,0,231,1,82,0,68,254,10,255,136,0, +57,1,241,1,150,1,222,255,211,254,163,254,77,254,50,254,175,254,254,255,237,1,196,1,171,254,74,253,40,255,171,255, +222,254,57,0,208,0,194,254,208,254,175,0,75,0,76,0,233,1,28,1,210,255,21,1,207,0,127,254,131,254,148,255, +199,255,42,1,178,2,88,2,140,1,139,0,35,255,89,255,195,0,232,0,251,255,89,255,112,255,239,255,249,255,223,255, +136,0,59,1,60,1,164,0,162,255,74,255,135,255,192,254,89,254,9,0,66,1,200,0,114,0,196,255,103,254,192,254, +173,0,116,1,138,0,133,255,136,255,173,255,223,254,254,254,21,1,11,2,173,0,170,255,205,255,253,255,48,0,69,0, +21,0,47,0,143,0,178,0,130,0,68,0,2,0,39,255,107,254,136,255,193,0,190,255,88,255,66,1,4,2,82,1, +233,1,105,2,98,1,185,0,197,0,237,0,176,1,172,1,216,255,159,254,237,254,216,254,187,254,229,255,171,0,0,0, +250,255,243,0,138,0,244,254,90,254,109,254,152,254,246,255,161,1,103,1,9,0,154,255,138,0,234,1,36,2,7,1, +63,0,46,0,65,0,235,0,70,1,92,0,32,0,227,0,72,0,54,255,153,255,7,0,241,255,45,0,171,255,186,254, +229,254,158,254,181,253,45,255,132,1,15,1,20,0,241,0,20,1,60,0,160,0,176,0,148,255,28,0,123,1,146,0, +109,255,50,0,27,0,193,254,67,255,222,0,183,0,103,255,199,254,63,255,213,255,1,255,206,253,151,254,29,0,163,0, +64,1,61,1,134,255,32,255,154,0,70,0,251,254,199,255,164,0,164,255,202,254,27,255,166,255,163,255,170,254,226,253, +130,254,26,255,129,254,216,253,207,253,106,254,187,255,174,0,159,0,108,0,233,255,174,254,90,254,93,255,99,255,48,254, +173,254,29,1,249,1,27,0,196,254,248,255,73,1,140,0,180,255,194,0,220,1,155,1,207,1,105,2,139,1,56,1, +74,3,50,4,67,2,44,1,209,1,90,1,159,255,153,254,208,254,126,255,254,255,167,0,103,1,201,0,38,255,117,254, +90,254,43,254,221,254,197,255,6,0,229,0,171,1,122,0,49,255,141,255,199,255,96,255,226,255,175,0,49,0,47,255, +94,255,140,0,56,1,251,0,147,0,88,0,49,0,236,255,103,255,30,255,48,255,229,254,173,254,139,255,154,0,158,0, +0,0,192,255,51,0,133,0,235,255,127,255,56,0,217,0,146,0,224,255,213,254,239,253,19,254,23,255,106,0,8,1, +222,255,128,254,46,255,164,0,128,0,231,254,171,253,77,254,27,0,250,0,151,0,196,255,238,254,80,255,221,0,8,1, +122,255,105,254,172,254,223,255,183,0,208,255,204,254,38,255,221,254,54,254,170,255,235,0,122,255,176,254,67,0,154,0, +247,254,13,255,23,1,95,1,74,0,93,1,186,2,240,0,96,255,76,1,39,3,195,2,96,2,52,2,245,0,108,255, +210,254,57,255,89,255,95,254,6,254,230,254,253,254,249,254,127,0,48,1,204,255,14,255,165,255,253,255,89,0,23,1, +251,0,226,255,188,255,232,0,170,0,160,254,117,254,81,0,129,0,159,255,100,0,69,1,123,0,175,255,45,0,167,0, +123,255,245,253,124,254,52,255,208,253,106,253,161,255,189,0,156,255,113,254,0,254,170,254,117,255,69,254,2,253,108,254, +197,0,26,2,45,2,181,0,68,255,244,254,72,254,254,253,44,255,96,255,239,254,164,0,253,1,111,0,105,255,175,0, +90,1,134,0,40,0,179,0,0,1,23,1,183,1,226,1,217,0,106,0,48,1,50,1,37,0,196,255,212,0,51,2, +182,1,139,255,91,254,47,254,223,253,209,254,80,0,206,255,11,255,207,255,18,0,90,255,169,254,31,254,205,254,228,255, +236,254,231,253,219,254,228,254,175,253,26,254,69,255,99,255,72,255,112,255,107,255,166,254,15,253,118,252,154,253,133,254, +216,254,206,255,13,1,181,1,103,1,174,0,237,0,112,1,210,0,140,0,193,0,150,255,184,254,172,255,246,255,50,255, +72,255,128,255,210,254,222,253,121,253,142,254,71,0,149,0,41,0,28,0,130,255,221,254,237,254,172,254,218,254,66,0, +158,0,223,255,187,0,56,2,99,1,74,255,1,255,151,0,172,1,175,1,11,2,170,2,135,2,247,1,145,1,158,1, +164,1,22,0,73,254,49,255,138,0,145,255,26,255,232,255,80,255,175,254,76,255,10,255,164,254,127,255,159,255,214,254, +137,254,23,254,244,253,239,254,157,255,197,255,1,0,152,255,76,255,236,255,251,255,152,255,244,255,12,0,166,255,151,255, +74,255,4,255,70,255,182,254,243,253,41,255,170,0,241,255,149,254,229,254,66,0,246,0,172,0,47,0,4,0,132,0, +198,1,185,2,101,2,36,1,244,255,107,0,108,2,145,2,98,0,194,255,163,0,73,0,46,0,31,1,164,0,134,255, +69,0,187,1,253,1,248,0,149,255,29,255,101,255,127,255,218,255,30,0,99,255,5,255,160,255,211,255,14,0,4,1, +79,1,197,0,153,0,233,0,126,1,166,1,168,0,209,255,12,0,4,0,159,255,33,0,6,1,60,1,26,1,102,1, +233,1,117,1,49,0,23,0,24,1,4,1,20,0,13,0,190,0,238,0,39,0,236,254,131,254,66,255,223,255,111,255, +162,254,187,254,99,255,10,255,144,254,245,255,150,1,160,1,229,1,179,2,53,2,147,1,212,1,68,1,70,0,136,0, +78,1,56,2,120,3,108,3,9,2,110,1,60,1,92,0,73,0,11,1,93,0,43,255,41,0,178,1,234,0,169,255, +50,0,164,0,197,255,102,255,218,255,210,255,193,255,113,0,238,0,71,0,58,255,38,255,154,255,229,254,235,253,245,254, +155,0,89,0,132,255,207,255,16,0,192,255,207,255,52,0,107,0,71,0,183,255,67,255,245,254,32,254,207,253,35,255, +87,0,82,0,83,0,248,255,198,254,230,254,117,0,206,0,31,0,3,0,204,255,74,255,129,255,237,255,224,255,27,0, +244,0,141,1,223,0,242,254,91,253,80,253,76,254,149,255,139,0,55,0,75,255,202,255,67,1,148,1,202,0,33,0, +159,255,109,255,91,0,1,2,248,2,60,2,224,255,241,253,114,254,253,255,104,0,93,0,152,0,85,0,199,255,103,255, +197,254,61,254,48,254,234,253,232,253,31,255,49,0,217,255,128,255,59,0,250,0,5,1,1,1,59,1,61,1,226,0, +202,0,111,1,176,1,72,0,211,254,80,255,20,0,172,255,0,0,42,1,202,0,162,255,241,255,215,0,195,0,44,0, +230,255,220,255,115,255,173,254,182,254,185,255,36,0,192,255,71,0,81,1,58,0,198,253,248,253,95,0,163,0,13,255, +31,255,88,0,101,0,201,255,1,0,252,0,59,1,231,255,156,254,175,254,202,254,88,254,49,255,180,1,16,3,97,1, +240,254,125,254,63,255,241,255,162,0,125,0,249,255,223,0,206,1,78,1,183,0,168,255,84,254,127,255,8,1,83,255, +213,253,217,254,253,254,126,254,194,255,251,0,224,0,83,0,74,255,0,255,195,0,245,1,195,0,243,255,1,1,69,1, +204,255,119,255,33,1,6,2,88,1,202,0,67,0,125,255,11,0,87,1,223,0,160,255,1,0,181,0,52,0,84,0, +52,1,24,0,216,253,238,253,157,255,211,255,199,254,115,254,14,255,84,255,190,254,130,254,100,255,22,0,168,255,33,255, +108,255,219,255,109,255,172,254,233,254,196,255,52,0,129,0,119,0,68,255,32,254,201,254,94,0,21,1,7,1,2,1, +132,0,190,255,126,0,182,1,160,0,122,255,201,0,23,1,111,255,235,255,165,1,30,1,73,0,204,0,130,0,189,255, +109,0,98,1,250,0,234,255,28,255,238,254,213,255,178,0,170,255,75,254,228,254,107,255,133,254,243,254,125,0,241,255, +91,254,124,254,221,255,211,0,88,0,240,254,159,254,166,255,137,0,226,0,155,0,8,0,97,0,23,1,191,0,69,0, +152,0,135,0,148,255,36,255,166,255,173,255,154,255,35,1,99,2,51,1,15,0,205,255,111,254,253,253,214,255,222,0, +32,1,234,1,222,0,83,255,184,0,198,1,202,255,133,254,155,255,5,1,15,2,252,1,69,0,225,254,63,255,137,0, +176,1,216,1,242,0,80,0,84,0,234,255,73,255,138,255,116,0,92,1,197,1,207,0,88,255,136,255,120,0,22,0, +108,255,158,255,228,255,81,0,206,0,24,0,214,254,225,254,18,0,20,1,46,1,106,0,37,255,59,254,53,255,67,1, +183,0,21,254,252,253,232,255,72,0,23,0,103,0,136,255,142,254,77,255,250,255,119,255,39,255,84,255,155,255,45,0, +107,0,251,255,231,255,46,0,193,255,65,255,186,255,50,0,199,255,124,255,55,0,54,1,250,0,125,255,142,254,205,254, +237,254,193,254,213,254,208,254,8,255,212,255,60,0,142,0,115,1,79,1,218,255,130,255,121,0,140,0,107,255,149,254, +203,254,147,255,92,0,169,0,219,255,226,254,137,255,195,0,138,0,230,255,34,0,97,0,16,0,134,255,58,255,70,255, +199,254,5,254,154,254,162,255,182,255,53,0,62,1,217,0,102,255,161,254,8,255,47,0,183,0,3,0,143,255,250,255, +91,0,153,0,198,0,124,0,188,255,206,254,104,254,8,255,200,255,28,0,103,0,68,0,223,255,8,0,188,255,147,254, +139,254,214,255,119,0,22,0,186,255,253,255,134,0,226,255,76,254,149,254,249,0,62,2,83,1,23,0,206,255,155,0, +165,1,99,1,38,0,205,255,131,0,238,0,132,0,123,255,134,254,176,254,181,255,79,0,122,0,179,0,148,0,60,0, +52,0,243,255,141,255,241,255,76,0,219,255,226,255,45,0,114,255,52,255,69,0,97,0,154,255,5,0,249,0,65,1, +6,1,26,0,108,255,34,0,167,0,74,0,201,0,117,1,152,0,174,255,33,0,179,0,113,0,232,255,165,255,161,255, +234,255,132,0,132,0,150,255,112,255,84,0,48,0,88,255,181,255,118,0,121,0,158,0,250,0,160,0,245,255,4,0, +135,0,90,0,184,255,235,255,123,0,46,0,159,255,111,255,160,255,37,1,15,3,107,2,57,0,201,255,8,0,227,254, +55,254,22,255,143,255,125,255,72,0,254,0,94,0,146,255,153,255,191,255,217,255,92,0,152,0,220,255,93,255,22,0, +166,0,31,0,218,255,86,0,93,0,3,0,71,0,147,0,243,255,63,255,175,255,171,0,214,0,65,0,120,255,125,254, +78,254,108,255,194,255,203,254,36,255,211,0,23,1,236,255,130,255,59,0,147,0,217,255,115,255,59,0,192,0,124,0, +157,0,238,0,76,0,255,254,164,254,223,255,56,0,48,254,92,253,90,255,52,0,49,255,121,255,160,0,14,1,99,1, +129,1,36,1,224,0,98,0,198,255,192,255,129,255,193,254,214,254,230,255,179,0,154,0,242,255,47,255,141,254,174,254, +194,255,157,0,226,0,28,1,207,0,108,0,180,0,2,0,161,254,56,255,46,0,74,255,248,254,196,255,92,255,239,254, +8,0,182,0,70,0,8,0,203,255,66,255,96,255,209,255,118,255,102,255,165,0,26,1,163,255,97,254,65,254,98,254, +145,254,122,254,174,254,116,0,219,1,222,0,121,255,143,254,114,253,255,253,3,0,62,0,80,255,123,255,185,255,174,255, +127,0,27,1,69,0,72,255,117,255,86,0,223,0,186,0,137,0,11,1,189,1,65,1,190,255,230,254,83,255,23,0, +115,0,93,0,66,0,64,0,190,255,242,254,212,254,97,255,23,0,146,0,126,0,88,0,54,0,151,255,184,255,52,1, +224,1,28,1,73,0,117,255,216,254,14,255,104,255,244,255,215,0,154,0,152,255,163,255,241,255,51,255,168,254,214,255, +167,1,178,1,106,0,34,0,45,0,139,255,204,255,68,0,90,255,49,255,142,0,214,0,232,255,111,255,131,255,176,255, +148,255,151,255,151,0,89,1,149,0,173,255,178,255,232,255,128,255,157,254,195,254,111,0,150,1,73,1,83,0,18,255, +191,254,244,255,151,0,229,255,89,255,36,255,32,255,215,255,186,0,231,0,138,0,127,0,9,1,199,0,80,255,181,254, +146,255,91,0,164,0,201,0,32,1,212,1,185,1,110,0,207,255,66,0,64,0,148,255,91,255,29,0,190,0,59,0, +40,0,69,1,58,1,219,255,105,255,209,255,105,0,73,1,66,1,41,0,184,255,32,0,96,0,31,0,167,255,175,255, +242,255,174,255,196,255,96,0,1,0,19,255,176,254,54,254,9,254,216,254,37,255,253,254,52,0,123,1,228,0,254,255, +173,255,211,254,81,254,205,254,147,254,70,254,156,255,136,0,255,255,69,0,10,1,186,0,84,0,46,0,40,0,21,1, +111,1,237,255,7,255,187,255,73,0,53,0,165,255,39,255,192,255,82,0,200,255,27,255,112,254,76,254,229,255,33,1, +55,0,99,255,164,255,255,255,211,0,120,1,166,0,173,255,182,255,245,255,251,255,198,255,83,255,67,255,196,255,222,255, +4,255,86,254,247,254,245,255,57,0,118,0,213,0,111,0,145,255,1,255,228,254,49,255,86,255,17,255,113,255,193,0, +129,1,169,0,98,255,60,255,87,255,180,254,47,255,186,0,61,0,251,254,52,0,119,1,38,0,209,254,63,255,21,0, +78,0,19,0,75,0,8,1,244,0,66,0,37,0,20,0,8,0,220,0,92,1,153,0,64,0,246,0,28,1,21,0, +39,255,100,255,93,0,240,0,116,0,98,255,68,255,124,0,13,1,95,0,113,0,64,1,30,1,247,0,245,1,93,2, +21,1,186,255,179,255,75,0,252,255,0,255,33,255,248,255,103,255,102,254,48,255,127,0,196,0,15,1,67,1,88,0, +166,255,1,0,238,255,44,255,184,254,157,254,198,254,8,255,207,254,128,254,201,254,74,255,142,255,162,255,235,255,131,0, +138,0,252,255,13,0,37,0,59,255,153,254,252,254,169,255,156,0,35,1,120,0,19,0,127,0,108,0,51,0,33,0, +77,255,215,254,129,255,175,255,212,255,51,1,177,1,87,0,152,255,31,0,146,0,216,0,242,0,124,0,20,0,35,0, +63,0,92,0,138,0,157,0,115,0,235,255,182,255,120,0,131,0,3,255,216,254,214,0,126,1,247,255,249,254,88,255, +82,0,38,1,182,0,244,255,186,0,104,1,96,0,219,255,182,0,229,0,168,0,111,1,6,2,21,1,215,255,228,255, +181,0,152,0,159,255,116,255,240,255,214,255,130,255,55,255,169,254,244,254,26,0,21,0,29,255,202,254,230,254,156,255, +17,1,65,1,27,0,10,0,177,0,112,0,254,255,255,255,26,0,34,0,160,255,21,255,139,255,17,0,252,255,98,0, +212,0,94,0,15,0,23,0,108,255,3,255,211,255,29,0,8,255,236,254,126,0,224,0,149,255,159,255,224,0,223,0, +98,0,71,0,63,255,122,254,152,255,81,0,133,255,168,255,217,0,218,0,38,0,111,0,228,0,97,0,1,0,110,0, +123,0,229,255,136,255,85,255,81,255,247,255,116,0,211,255,228,254,219,254,150,255,209,255,252,254,92,254,230,254,219,255, +125,0,94,0,81,255,183,254,147,255,58,0,121,255,181,254,202,254,232,254,9,255,168,255,231,255,96,255,57,255,89,255, +41,255,240,255,4,1,157,255,188,253,56,255,156,1,63,1,208,255,148,255,25,0,188,0,46,1,21,1,135,0,242,255, +228,255,89,0,166,0,133,0,230,255,45,255,136,255,112,0,36,0,101,255,191,255,113,0,158,0,107,0,197,255,76,255, +194,255,48,0,203,255,105,255,85,255,32,255,86,255,227,255,147,255,45,255,182,255,94,255,69,254,86,255,222,0,186,255, +144,254,76,255,161,255,218,255,7,1,52,1,117,0,72,0,160,255,181,254,75,255,62,0,236,255,41,255,239,254,115,255, +125,0,1,1,88,0,114,255,97,255,143,255,76,255,163,255,202,0,33,1,187,0,163,0,58,0,173,255,218,255,154,255, +177,254,220,254,8,0,214,0,215,0,72,0,2,0,66,0,59,0,55,0,120,0,26,0,170,255,33,0,181,0,218,0, +107,0,13,255,43,254,45,255,149,0,223,0,155,0,138,0,183,0,206,0,122,0,250,255,208,255,253,255,252,255,198,255, +245,255,50,0,229,255,6,0,204,0,204,0,46,0,215,255,134,255,164,255,30,0,164,255,60,255,53,0,200,0,95,0, +105,0,140,0,101,0,138,0,55,0,129,255,207,255,38,0,99,255,102,255,208,0,19,1,143,255,202,254,188,255,181,0, +195,0,150,0,155,0,126,0,1,0,155,255,4,0,206,0,205,0,253,255,112,255,217,255,144,0,102,0,248,255,108,0, +127,0,129,255,108,255,62,0,24,0,197,255,110,0,7,1,247,0,189,0,171,0,208,0,111,0,57,255,196,254,227,255, +33,1,59,1,114,0,155,255,73,255,163,255,44,0,183,255,99,254,102,254,46,0,93,1,33,1,164,0,109,0,114,0, +63,0,143,255,68,255,150,255,209,255,93,0,31,1,248,0,85,0,55,0,125,0,158,0,12,0,102,255,253,255,195,0, +144,0,183,0,20,1,72,0,146,255,238,255,26,0,191,255,119,255,127,255,217,255,186,255,52,255,192,255,209,0,209,0, +82,0,29,0,19,0,125,0,233,0,168,0,98,0,130,0,165,0,189,0,180,0,182,0,36,1,39,1,58,0,208,255, +138,0,246,0,78,0,160,255,229,255,79,0,176,255,248,254,130,255,35,0,190,255,183,255,145,0,164,0,181,255,56,255, +83,255,87,255,165,255,126,0,201,0,249,255,138,255,158,0,185,1,31,1,159,255,16,255,199,255,139,0,36,0,70,255, +146,255,73,0,196,255,54,255,29,0,45,1,38,1,126,0,228,255,211,255,240,255,132,255,72,255,161,255,135,255,157,255, +8,1,246,1,42,1,158,0,11,1,214,0,11,0,4,0,113,0,149,0,1,1,147,1,62,1,195,0,45,1,74,1, +182,0,231,0,90,1,142,0,88,255,32,255,191,255,4,0,67,255,203,254,177,255,128,0,150,0,243,0,231,0,77,0, +199,0,111,1,145,0,175,255,236,255,13,0,146,255,34,255,146,255,250,0,170,1,213,0,34,0,15,0,158,255,67,255, +191,255,105,0,96,0,178,255,134,255,65,0,115,0,247,255,99,0,67,1,243,0,185,255,206,254,15,255,47,0,65,0, +250,254,170,254,176,255,44,0,13,0,150,0,130,1,111,1,68,0,221,255,181,0,157,0,106,255,102,255,58,0,73,0, +50,0,85,0,34,0,43,0,93,0,4,0,52,0,65,1,40,1,159,255,234,254,224,255,224,0,140,0,109,255,190,254, +234,254,215,255,217,0,227,0,102,0,142,0,201,0,84,0,204,255,114,255,103,255,49,0,229,0,80,0,86,255,232,254, +163,254,171,254,135,255,164,0,222,0,21,0,75,255,253,254,201,254,236,254,193,255,115,0,108,0,22,0,174,255,109,255, +164,255,9,0,61,0,3,0,70,255,229,254,140,255,59,0,253,255,67,255,6,255,170,255,33,0,145,255,69,255,210,255, +215,255,181,255,111,0,136,0,175,255,176,255,29,0,209,255,181,255,208,255,84,255,63,255,247,255,54,0,10,0,80,0, +112,0,215,255,119,255,255,255,64,0,82,255,221,254,47,0,90,1,203,0,4,0,14,0,5,0,242,255,121,0,204,0, +71,0,249,255,134,0,202,0,55,0,208,255,236,255,251,255,16,0,31,0,194,255,145,255,1,0,100,0,118,0,51,0, +89,255,183,254,10,255,138,255,224,255,134,0,33,1,52,1,200,0,47,0,54,0,175,0,94,0,224,255,97,0,117,0, +34,255,66,254,229,254,248,255,147,0,161,0,75,0,226,255,185,255,28,0,224,0,75,1,251,0,37,0,71,255,44,255, +5,0,217,0,197,0,23,0,192,255,246,255,236,255,124,255,103,255,96,255,241,254,47,255,89,0,232,0,123,0,237,255, +175,255,253,255,127,0,103,0,29,0,40,0,235,255,189,255,107,0,166,0,104,255,113,254,7,255,216,255,226,255,17,0, +185,0,185,0,22,0,72,0,4,1,174,0,204,255,175,255,185,255,161,255,72,0,213,0,47,0,4,0,80,1,228,1, +253,0,135,0,192,0,164,0,215,0,122,1,37,1,16,0,174,255,252,255,89,0,129,0,71,0,49,0,128,0,52,0, +71,255,209,254,199,254,7,255,192,255,180,255,171,254,235,254,117,0,201,0,49,0,108,0,137,0,130,255,192,254,57,255, +231,255,33,0,99,0,178,0,109,0,212,255,190,255,247,255,196,255,116,255,211,255,147,0,165,0,19,0,253,255,62,0, +202,255,60,255,134,255,226,255,255,255,112,0,121,0,211,255,231,255,142,0,150,0,183,0,56,1,165,0,144,255,233,255, +243,0,249,0,135,0,171,0,22,1,95,1,131,1,70,1,179,0,113,0,202,0,36,1,228,0,58,0,184,255,142,255, +184,255,16,0,3,0,151,255,179,255,6,0,125,255,42,255,239,255,224,255,173,254,151,254,64,255,16,255,27,255,164,255, +94,255,55,255,225,255,188,255,240,254,209,254,200,254,171,254,250,254,213,254,142,254,124,255,68,0,162,255,97,255,38,0, +109,0,58,0,84,0,63,0,191,255,109,255,127,255,208,255,57,0,130,0,161,0,113,0,169,255,243,254,87,255,9,0, +175,255,88,255,81,0,24,1,114,0,237,255,109,0,202,0,175,0,162,0,93,0,213,255,216,255,126,0,183,0,51,0, +14,0,131,0,101,0,11,0,171,0,7,1,252,255,93,255,248,255,80,0,65,0,45,0,107,255,184,254,66,255,21,0, +119,0,209,0,133,0,109,255,3,255,81,255,63,255,99,255,11,0,251,255,171,255,142,0,55,1,52,0,108,255,208,255, +126,255,178,254,21,255,135,255,1,255,232,254,114,255,232,255,200,0,82,1,63,0,76,255,209,255,189,255,164,254,246,254, +92,0,48,0,15,255,119,255,188,0,209,0,86,0,111,0,92,0,216,255,166,255,162,255,208,255,137,0,188,0,241,255, +160,255,17,0,78,0,118,0,119,0,235,255,186,255,75,0,141,0,72,0,13,0,254,255,54,0,93,0,14,0,7,0, +86,0,197,255,236,254,121,255,142,0,92,0,139,255,175,255,118,0,165,0,95,0,107,0,69,0,129,255,121,255,165,0, +17,1,4,0,125,255,92,0,2,1,136,0,246,255,4,0,55,0,35,0,235,255,197,255,204,255,233,255,220,255,181,255, +217,255,63,0,55,0,144,255,85,255,8,0,99,0,229,255,213,255,68,0,0,0,76,255,22,255,142,255,138,0,230,0, +227,255,115,255,109,0,111,0,123,255,242,255,189,0,235,255,15,255,102,255,250,255,93,0,64,0,125,255,114,255,82,0, +126,0,30,0,57,0,38,0,180,255,172,255,169,255,90,255,116,255,235,255,47,0,53,0,202,255,59,255,122,255,14,0, +202,255,47,255,25,255,63,255,110,255,155,255,127,255,109,255,175,255,171,255,91,255,115,255,188,255,199,255,253,255,67,0, +2,0,193,255,14,0,58,0,10,0,45,0,115,0,81,0,81,0,164,0,128,0,59,0,204,0,78,1,152,0,221,255, +130,0,109,1,36,1,92,0,81,0,139,0,46,0,193,255,242,255,95,0,153,0,142,0,17,0,151,255,221,255,84,0, +13,0,132,255,137,255,229,255,32,0,36,0,19,0,252,255,186,255,124,255,186,255,6,0,208,255,215,255,116,0,156,0, +61,0,70,0,68,0,180,255,122,255,152,255,63,255,66,255,72,0,225,0,116,0,39,0,249,255,90,255,35,255,172,255, +246,255,217,255,217,255,224,255,21,0,167,0,185,0,244,255,122,255,188,255,234,255,160,255,53,255,8,255,82,255,246,255, +129,0,160,0,80,0,243,255,17,0,127,0,113,0,190,255,61,255,140,255,62,0,168,0,214,0,233,0,139,0,216,255, +123,255,146,255,211,255,12,0,241,255,160,255,158,255,209,255,242,255,17,0,226,255,159,255,70,0,61,1,14,1,101,0, +111,0,127,0,251,255,149,255,204,255,74,0,68,0,88,255,119,254,198,254,233,255,162,0,142,0,53,0,231,255,112,255, +10,255,10,255,18,255,255,254,60,255,127,255,104,255,101,255,151,255,185,255,220,255,209,255,129,255,142,255,30,0,135,0, +130,0,93,0,128,0,218,0,223,0,188,0,14,1,103,1,83,1,59,1,241,0,28,0,145,255,215,255,54,0,82,0, +126,0,160,0,69,0,165,255,132,255,246,255,93,0,119,0,63,0,200,255,119,255,67,255,39,255,192,255,137,0,102,0, +62,0,197,0,169,0,220,255,139,255,133,255,166,255,32,0,24,0,171,255,245,255,87,0,19,0,6,0,115,0,181,0, +153,0,29,0,166,255,207,255,67,0,129,0,152,0,116,0,39,0,18,0,63,0,129,0,141,0,83,0,123,0,225,0, +70,0,63,255,117,255,63,0,54,0,230,255,20,0,68,0,2,0,155,255,149,255,252,255,39,0,167,255,53,255,187,255, +147,0,114,0,240,255,83,0,198,0,127,0,166,0,24,1,82,0,48,255,54,255,136,255,87,255,100,255,239,255,103,0, +114,0,45,0,5,0,255,255,225,255,238,255,0,0,203,255,250,255,91,0,215,255,133,255,158,0,96,1,158,0,231,255, +11,0,71,0,26,0,158,255,136,255,33,0,97,0,219,255,128,255,193,255,45,0,30,0,149,255,204,255,199,0,173,0, +217,255,7,0,73,0,222,255,17,0,73,0,98,255,216,254,90,255,165,255,196,255,4,0,208,255,176,255,59,0,104,0, +211,255,126,255,158,255,164,255,218,255,153,0,247,0,103,0,251,255,23,0,209,255,113,255,221,255,107,0,82,0,232,255, +188,255,32,0,119,0,205,255,19,255,151,255,89,0,86,0,54,0,34,0,194,255,125,255,139,255,170,255,209,255,217,255, +130,255,60,255,187,255,84,0,188,255,210,254,64,255,236,255,128,255,81,255,167,255,18,255,102,254,236,254,152,255,241,255, +150,0,219,0,80,0,5,0,81,0,101,0,15,0,227,255,1,0,46,0,141,0,164,0,174,255,0,255,219,255,86,0, +168,255,255,255,249,0,124,0,182,255,15,0,112,0,124,0,150,0,73,0,223,255,17,0,110,0,56,0,138,255,66,255, +198,255,220,255,8,255,235,254,221,255,84,0,252,255,119,255,39,255,121,255,239,255,177,255,128,255,228,255,242,255,179,255, +202,255,174,255,76,255,108,255,189,255,135,255,42,255,34,255,118,255,5,0,52,0,140,255,239,254,91,255,26,0,1,0, +126,255,142,255,217,255,188,255,147,255,169,255,158,255,139,255,252,255,212,0,61,1,163,0,147,255,70,255,207,255,6,0, +165,255,135,255,245,255,93,0,72,0,218,255,174,255,232,255,244,255,209,255,22,0,115,0,29,0,64,255,207,254,75,255, +21,0,68,0,18,0,51,0,104,0,84,0,53,0,8,0,164,255,111,255,201,255,71,0,55,0,199,255,190,255,255,255, +252,255,225,255,207,255,186,255,5,0,87,0,235,255,87,255,60,255,76,255,162,255,49,0,83,0,46,0,230,255,129,255, +3,0,251,0,113,0,87,255,146,255,237,255,149,255,202,255,79,0,57,0,31,0,95,0,154,0,118,0,156,255,203,254, +50,255,0,0,209,255,52,255,60,255,199,255,38,0,34,0,246,255,159,255,35,255,51,255,225,255,15,0,139,255,98,255, +215,255,35,0,219,255,124,255,169,255,16,0,245,255,162,255,180,255,248,255,38,0,65,0,26,0,207,255,225,255,61,0, +104,0,121,0,151,0,91,0,214,255,200,255,19,0,249,255,224,255,68,0,62,0,122,255,62,255,229,255,81,0,36,0, +238,255,224,255,222,255,176,255,43,255,226,254,117,255,91,0,196,0,157,0,29,0,196,255,203,255,102,255,202,254,116,255, +180,0,181,0,68,0,110,0,74,0,211,255,186,255,165,255,229,255,195,0,215,0,38,0,100,0,6,1,196,0,130,0, +224,0,239,0,135,0,137,0,255,0,0,1,117,0,97,0,218,0,238,0,147,0,83,0,60,0,46,0,217,255,67,255, +36,255,95,255,115,255,240,255,115,0,177,255,177,254,236,254,95,255,75,255,97,255,162,255,207,255,10,0,3,0,211,255, +242,255,231,255,120,255,108,255,195,255,221,255,234,255,41,0,58,0,31,0,68,0,118,0,64,0,245,255,33,0,171,0, +57,1,93,1,184,0,224,255,189,255,253,255,35,0,142,0,215,0,48,0,146,255,3,0,111,0,30,0,249,255,50,0, +91,0,216,0,78,1,211,0,122,0,34,1,47,1,78,0,80,0,214,0,118,0,16,0,62,0,26,0,251,255,140,0, +202,0,59,0,246,255,75,0,63,0,157,255,92,255,188,255,234,255,221,255,67,0,182,0,145,0,54,0,235,255,119,255, +43,255,135,255,73,0,163,0,63,0,193,255,179,255,171,255,139,255,197,255,36,0,73,0,82,0,20,0,175,255,221,255, +27,0,96,255,176,254,65,255,251,255,26,0,120,0,211,0,99,0,3,0,32,0,8,0,55,0,222,0,167,0,225,255, +21,0,167,0,152,0,109,0,101,0,124,0,234,0,8,1,139,0,73,0,67,0,255,255,241,255,58,0,113,0,144,0, +143,0,123,0,135,0,120,0,90,0,138,0,134,0,13,0,212,255,230,255,207,255,233,255,94,0,189,0,224,0,201,0, +108,0,4,0,185,255,144,255,156,255,186,255,186,255,195,255,250,255,57,0,67,0,24,0,222,255,177,255,183,255,244,255, +27,0,33,0,74,0,82,0,241,255,179,255,231,255,222,255,46,255,159,254,43,255,109,0,243,0,92,0,206,255,20,0, +151,0,130,0,16,0,25,0,103,0,48,0,252,255,111,0,152,0,15,0,220,255,35,0,69,0,127,0,208,0,118,0, +175,255,131,255,227,255,17,0,61,0,201,0,11,1,174,0,121,0,130,0,20,0,151,255,206,255,57,0,49,0,248,255, +13,0,121,0,190,0,126,0,41,0,21,0,212,255,145,255,247,255,101,0,239,255,77,255,63,255,53,255,53,255,187,255, +228,255,51,255,230,254,75,255,132,255,195,255,53,0,47,0,248,255,43,0,66,0,2,0,233,255,231,255,217,255,11,0, +99,0,94,0,7,0,245,255,22,0,223,255,214,255,125,0,174,0,244,255,140,255,169,255,194,255,32,0,70,0,124,255, +204,254,7,255,166,255,60,0,66,0,147,255,86,255,207,255,15,0,61,0,165,0,186,0,182,0,1,1,243,0,52,0, +120,255,123,255,247,255,231,255,131,255,251,255,165,0,72,0,227,255,82,0,144,0,49,0,214,255,193,255,253,255,59,0, +227,255,85,255,45,255,32,255,44,255,176,255,17,0,177,255,46,255,65,255,196,255,50,0,41,0,208,255,207,255,58,0, +104,0,38,0,204,255,129,255,125,255,252,255,138,0,129,0,19,0,217,255,252,255,49,0,22,0,166,255,104,255,179,255, +20,0,252,255,157,255,107,255,107,255,157,255,236,255,228,255,148,255,138,255,153,255,109,255,108,255,156,255,142,255,126,255, +214,255,79,0,50,0,99,255,0,255,148,255,233,255,144,255,118,255,104,255,27,255,64,255,66,255,138,254,105,254,8,255, +42,255,66,255,202,255,221,255,177,255,249,255,37,0,0,0,254,255,3,0,224,255,190,255,212,255,50,0,91,0,238,255, +117,255,111,255,197,255,39,0,13,0,169,255,217,255,36,0,170,255,68,255,187,255,47,0,245,255,139,255,141,255,235,255, +240,255,136,255,154,255,36,0,20,0,132,255,125,255,215,255,195,255,113,255,89,255,82,255,106,255,238,255,89,0,45,0, +230,255,194,255,134,255,144,255,228,255,178,255,69,255,177,255,112,0,59,0,140,255,166,255,71,0,95,0,19,0,14,0, +16,0,229,255,34,0,193,0,226,0,104,0,27,0,68,0,118,0,114,0,98,0,84,0,76,0,104,0,97,0,236,255, +145,255,193,255,251,255,243,255,248,255,253,255,212,255,190,255,207,255,220,255,245,255,31,0,18,0,209,255,198,255,25,0, +134,0,181,0,110,0,4,0,19,0,80,0,26,0,245,255,47,0,7,0,196,255,90,0,8,1,217,0,130,0,144,0, +130,0,37,0,210,255,230,255,88,0,150,0,96,0,42,0,38,0,11,0,222,255,222,255,251,255,234,255,185,255,149,255, +89,255,71,255,184,255,215,255,106,255,245,255,14,1,118,0,8,255,48,255,79,0,196,0,176,0,129,0,62,0,0,0, +205,255,236,255,80,0,50,0,183,255,198,255,29,0,36,0,39,0,71,0,88,0,83,0,20,0,211,255,2,0,44,0, +227,255,210,255,25,0,5,0,211,255,32,0,147,0,189,0,133,0,203,255,24,255,66,255,231,255,36,0,0,0,245,255, +24,0,18,0,201,255,239,255,155,0,148,0,202,255,152,255,218,255,191,255,210,255,29,0,248,255,224,255,40,0,49,0, +42,0,105,0,108,0,46,0,30,0,31,0,25,0,10,0,232,255,33,0,187,0,226,0,109,0,244,255,171,255,155,255, +201,255,237,255,243,255,240,255,191,255,183,255,53,0,111,0,238,255,167,255,229,255,242,255,6,0,101,0,81,0,225,255, +219,255,230,255,193,255,249,255,39,0,182,255,109,255,200,255,33,0,22,0,232,255,241,255,59,0,106,0,99,0,63,0, +224,255,153,255,212,255,15,0,3,0,15,0,255,255,191,255,215,255,11,0,219,255,172,255,217,255,4,0,167,255,24,255, +115,255,118,0,156,0,42,0,78,0,109,0,52,0,90,0,65,0,121,255,83,255,2,0,81,0,66,0,97,0,100,0, +18,0,201,255,211,255,250,255,249,255,232,255,231,255,248,255,73,0,125,0,8,0,110,255,76,255,107,255,182,255,20,0, +36,0,59,0,157,0,173,0,104,0,55,0,229,255,141,255,121,255,59,255,249,254,111,255,60,0,175,0,228,0,220,0, +133,0,55,0,243,255,147,255,114,255,150,255,178,255,242,255,81,0,99,0,92,0,117,0,59,0,233,255,33,0,88,0, +34,0,72,0,192,0,150,0,15,0,5,0,66,0,100,0,137,0,133,0,35,0,241,255,93,0,144,0,245,255,163,255, +38,0,100,0,58,0,142,0,231,0,141,0,235,255,102,255,91,255,14,0,138,0,60,0,22,0,69,0,41,0,13,0, +27,0,222,255,143,255,153,255,178,255,136,255,77,255,111,255,228,255,22,0,248,255,251,255,23,0,44,0,64,0,55,0, +45,0,50,0,244,255,171,255,192,255,222,255,215,255,244,255,65,0,199,0,18,1,97,0,139,255,167,255,224,255,190,255, +38,0,197,0,198,0,163,0,158,0,121,0,103,0,44,0,166,255,167,255,243,255,138,255,82,255,47,0,198,0,108,0, +41,0,5,0,163,255,212,255,127,0,94,0,203,255,13,0,189,0,194,0,74,0,21,0,44,0,22,0,210,255,199,255, +231,255,213,255,192,255,241,255,36,0,27,0,254,255,217,255,137,255,63,255,111,255,237,255,28,0,23,0,55,0,30,0, +207,255,228,255,30,0,13,0,36,0,65,0,197,255,97,255,179,255,201,255,82,255,62,255,116,255,81,255,129,255,100,0, +206,0,60,0,158,255,141,255,206,255,2,0,235,255,201,255,251,255,47,0,53,0,86,0,104,0,43,0,201,255,101,255, +115,255,35,0,62,0,84,255,247,254,143,255,251,255,28,0,51,0,252,255,217,255,28,0,74,0,68,0,51,0,2,0, +248,255,70,0,119,0,47,0,169,255,126,255,246,255,113,0,97,0,39,0,16,0,23,0,62,0,37,0,163,255,109,255, +185,255,232,255,206,255,161,255,126,255,174,255,20,0,22,0,229,255,17,0,35,0,201,255,177,255,230,255,193,255,154,255, +201,255,191,255,174,255,228,255,158,255,83,255,55,0,11,1,106,0,168,255,193,255,6,0,29,0,225,255,143,255,8,0, +195,0,159,0,107,0,183,0,133,0,11,0,62,0,117,0,4,0,174,255,230,255,14,0,227,255,218,255,251,255,234,255, +230,255,44,0,79,0,47,0,251,255,167,255,149,255,3,0,57,0,25,0,69,0,123,0,82,0,43,0,28,0,1,0, +254,255,8,0,13,0,30,0,10,0,192,255,135,255,123,255,143,255,180,255,216,255,231,255,172,255,92,255,153,255,42,0, +99,0,110,0,77,0,171,255,58,255,153,255,7,0,11,0,30,0,69,0,28,0,211,255,251,255,98,0,27,0,73,255, +52,255,1,0,151,0,149,0,123,0,147,0,181,0,164,0,139,0,169,0,170,0,89,0,16,0,9,0,46,0,67,0, +248,255,165,255,235,255,125,0,149,0,65,0,39,0,102,0,121,0,49,0,249,255,206,255,124,255,106,255,176,255,202,255, +193,255,199,255,185,255,208,255,17,0,254,255,194,255,233,255,54,0,38,0,196,255,141,255,202,255,32,0,70,0,90,0, +24,0,142,255,131,255,225,255,240,255,217,255,207,255,183,255,227,255,21,0,178,255,102,255,226,255,117,0,136,0,71,0, +208,255,107,255,131,255,235,255,34,0,39,0,83,0,124,0,55,0,212,255,225,255,34,0,64,0,61,0,240,255,132,255, +136,255,244,255,51,0,248,255,134,255,124,255,198,255,184,255,195,255,107,0,157,0,0,0,222,255,65,0,49,0,250,255, +8,0,26,0,60,0,32,0,123,255,81,255,244,255,11,0,150,255,194,255,18,0,177,255,99,255,185,255,34,0,48,0, +9,0,9,0,66,0,77,0,26,0,9,0,27,0,61,0,93,0,20,0,144,255,123,255,147,255,181,255,110,0,249,0, +112,0,19,0,145,0,142,0,222,255,188,255,28,0,65,0,38,0,239,255,209,255,33,0,136,0,107,0,18,0,34,0, +90,0,30,0,177,255,164,255,198,255,222,255,7,0,17,0,12,0,111,0,217,0,176,0,84,0,6,0,138,255,102,255, +0,0,126,0,90,0,66,0,144,0,192,0,137,0,48,0,236,255,204,255,220,255,7,0,47,0,91,0,88,0,203,255, +45,255,101,255,9,0,220,255,39,255,73,255,61,0,208,0,167,0,74,0,21,0,17,0,16,0,229,255,191,255,198,255, +212,255,193,255,168,255,227,255,118,0,155,0,54,0,83,0,199,0,102,0,190,255,229,255,52,0,3,0,209,255,213,255, +221,255,235,255,239,255,215,255,202,255,225,255,249,255,230,255,224,255,24,0,250,255,114,255,133,255,32,0,65,0,27,0, +21,0,204,255,152,255,246,255,82,0,70,0,20,0,227,255,221,255,245,255,221,255,177,255,172,255,195,255,241,255,9,0, +252,255,36,0,56,0,202,255,154,255,245,255,240,255,171,255,234,255,44,0,1,0,10,0,73,0,44,0,239,255,209,255, +141,255,132,255,18,0,81,0,244,255,5,0,104,0,45,0,206,255,198,255,189,255,1,0,86,0,205,255,103,255,54,0, +163,0,231,255,141,255,232,255,7,0,243,255,3,0,36,0,44,0,249,255,230,255,54,0,71,0,243,255,223,255,246,255, +213,255,192,255,222,255,15,0,69,0,59,0,219,255,175,255,13,0,102,0,44,0,200,255,231,255,63,0,63,0,52,0, +100,0,87,0,5,0,18,0,101,0,76,0,242,255,241,255,254,255,205,255,0,0,140,0,137,0,9,0,166,255,121,255, +177,255,1,0,180,255,137,255,41,0,94,0,227,255,241,255,51,0,232,255,218,255,52,0,38,0,240,255,19,0,46,0, +26,0,49,0,67,0,225,255,147,255,9,0,139,0,78,0,22,0,67,0,1,0,137,255,184,255,19,0,4,0,244,255, +28,0,56,0,26,0,234,255,250,255,33,0,6,0,226,255,234,255,248,255,20,0,23,0,206,255,204,255,65,0,65,0, +160,255,85,255,171,255,255,255,254,255,225,255,213,255,204,255,208,255,231,255,253,255,55,0,132,0,116,0,34,0,1,0, +239,255,209,255,205,255,186,255,202,255,64,0,104,0,255,255,206,255,213,255,161,255,150,255,211,255,227,255,193,255,165,255, +177,255,238,255,15,0,8,0,39,0,40,0,252,255,65,0,166,0,106,0,17,0,14,0,237,255,217,255,46,0,73,0, +241,255,215,255,14,0,28,0,247,255,201,255,216,255,102,0,209,0,88,0,172,255,209,255,66,0,19,0,175,255,219,255, +30,0,216,255,179,255,49,0,86,0,166,255,39,255,60,255,65,255,76,255,180,255,9,0,1,0,248,255,27,0,45,0, +236,255,131,255,119,255,188,255,226,255,249,255,18,0,232,255,177,255,219,255,58,0,83,0,14,0,220,255,5,0,39,0, +47,0,111,0,105,0,219,255,198,255,58,0,38,0,196,255,188,255,177,255,175,255,5,0,38,0,245,255,245,255,16,0, +54,0,124,0,90,0,219,255,188,255,214,255,210,255,254,255,29,0,226,255,208,255,226,255,171,255,137,255,157,255,151,255, +207,255,58,0,48,0,251,255,12,0,233,255,159,255,182,255,238,255,5,0,32,0,65,0,122,0,160,0,76,0,234,255, +255,255,7,0,216,255,229,255,241,255,215,255,240,255,238,255,160,255,182,255,58,0,88,0,249,255,216,255,46,0,100,0, +68,0,84,0,125,0,40,0,215,255,20,0,14,0,134,255,127,255,23,0,114,0,106,0,79,0,56,0,57,0,87,0, +69,0,222,255,143,255,188,255,35,0,97,0,85,0,251,255,187,255,11,0,123,0,91,0,240,255,183,255,188,255,245,255, +45,0,32,0,233,255,208,255,243,255,68,0,121,0,87,0,5,0,214,255,249,255,53,0,65,0,54,0,9,0,160,255, +129,255,207,255,221,255,209,255,12,0,236,255,136,255,196,255,30,0,222,255,180,255,228,255,223,255,206,255,252,255,34,0, +42,0,33,0,218,255,144,255,204,255,85,0,108,0,7,0,189,255,180,255,179,255,180,255,191,255,215,255,243,255,244,255, +12,0,86,0,99,0,47,0,53,0,62,0,22,0,15,0,254,255,189,255,208,255,9,0,223,255,177,255,218,255,8,0, +22,0,37,0,80,0,101,0,18,0,223,255,73,0,117,0,1,0,217,255,3,0,243,255,20,0,115,0,87,0,221,255, +188,255,14,0,86,0,76,0,73,0,101,0,29,0,164,255,180,255,19,0,60,0,64,0,29,0,224,255,234,255,57,0, +119,0,121,0,69,0,15,0,244,255,239,255,29,0,65,0,250,255,187,255,238,255,25,0,11,0,5,0,243,255,212,255, +207,255,224,255,23,0,53,0,211,255,126,255,223,255,95,0,78,0,1,0,253,255,47,0,32,0,191,255,145,255,207,255, +34,0,78,0,64,0,4,0,231,255,7,0,33,0,15,0,213,255,173,255,194,255,204,255,183,255,223,255,31,0,20,0, +252,255,22,0,58,0,82,0,63,0,238,255,184,255,223,255,22,0,6,0,179,255,125,255,180,255,21,0,49,0,16,0, +239,255,236,255,3,0,26,0,27,0,24,0,9,0,223,255,222,255,35,0,67,0,252,255,171,255,153,255,187,255,10,0, +68,0,29,0,224,255,241,255,33,0,57,0,37,0,217,255,181,255,25,0,133,0,112,0,32,0,247,255,248,255,19,0, +56,0,59,0,1,0,203,255,229,255,25,0,49,0,74,0,45,0,205,255,212,255,52,0,51,0,15,0,20,0,210,255, +149,255,211,255,255,255,255,255,53,0,42,0,206,255,232,255,78,0,61,0,211,255,145,255,162,255,231,255,44,0,105,0, +139,0,104,0,60,0,54,0,27,0,246,255,244,255,220,255,189,255,228,255,33,0,56,0,20,0,151,255,46,255,108,255, +237,255,6,0,221,255,206,255,234,255,5,0,236,255,201,255,223,255,248,255,5,0,61,0,89,0,28,0,238,255,230,255, +178,255,149,255,226,255,63,0,76,0,29,0,252,255,23,0,51,0,7,0,204,255,219,255,18,0,41,0,43,0,63,0, +81,0,56,0,9,0,218,255,159,255,153,255,248,255,41,0,224,255,195,255,3,0,23,0,15,0,55,0,52,0,228,255, +201,255,22,0,78,0,33,0,235,255,5,0,29,0,254,255,1,0,28,0,254,255,237,255,28,0,34,0,229,255,186,255, +179,255,188,255,208,255,218,255,222,255,247,255,21,0,28,0,20,0,20,0,37,0,30,0,223,255,174,255,214,255,30,0, +36,0,9,0,7,0,228,255,160,255,176,255,241,255,226,255,203,255,17,0,69,0,22,0,223,255,213,255,227,255,5,0, +39,0,31,0,247,255,247,255,35,0,30,0,3,0,51,0,67,0,237,255,226,255,31,0,241,255,191,255,18,0,95,0, +82,0,42,0,6,0,12,0,29,0,233,255,198,255,246,255,3,0,231,255,244,255,241,255,212,255,219,255,215,255,195,255, +228,255,11,0,246,255,225,255,247,255,2,0,215,255,178,255,196,255,208,255,208,255,30,0,109,0,61,0,247,255,8,0, +32,0,23,0,25,0,22,0,22,0,45,0,62,0,63,0,62,0,36,0,239,255,201,255,206,255,252,255,43,0,57,0, +54,0,39,0,243,255,193,255,209,255,248,255,228,255,193,255,223,255,3,0,235,255,218,255,222,255,190,255,184,255,237,255, +251,255,233,255,254,255,245,255,200,255,216,255,238,255,201,255,202,255,254,255,4,0,238,255,255,255,31,0,31,0,0,0, +230,255,230,255,231,255,234,255,18,0,56,0,41,0,23,0,28,0,9,0,231,255,234,255,17,0,64,0,74,0,29,0, +9,0,43,0,42,0,9,0,21,0,23,0,237,255,222,255,229,255,220,255,226,255,235,255,234,255,253,255,239,255,172,255, +176,255,250,255,4,0,232,255,231,255,197,255,154,255,192,255,2,0,4,0,226,255,213,255,219,255,224,255,243,255,14,0, +251,255,224,255,19,0,70,0,14,0,192,255,202,255,7,0,41,0,14,0,227,255,254,255,58,0,42,0,254,255,24,0, +61,0,29,0,252,255,29,0,42,0,246,255,243,255,49,0,54,0,29,0,64,0,64,0,251,255,250,255,37,0,6,0, +229,255,14,0,27,0,229,255,206,255,243,255,255,255,231,255,246,255,34,0,38,0,21,0,11,0,240,255,236,255,21,0, +36,0,19,0,8,0,226,255,203,255,246,255,17,0,251,255,250,255,249,255,231,255,251,255,12,0,242,255,239,255,10,0, +15,0,12,0,7,0,240,255,220,255,216,255,230,255,252,255,243,255,224,255,241,255,248,255,239,255,23,0,62,0,40,0, +34,0,57,0,35,0,241,255,224,255,234,255,252,255,254,255,247,255,12,0,30,0,11,0,17,0,68,0,88,0,58,0, +23,0,6,0,17,0,36,0,28,0,10,0,10,0,21,0,35,0,39,0,17,0,254,255,4,0,7,0,247,255,237,255, +240,255,219,255,177,255,190,255,248,255,254,255,231,255,3,0,16,0,220,255,205,255,250,255,11,0,254,255,250,255,249,255, +14,0,50,0,31,0,223,255,194,255,212,255,235,255,238,255,223,255,223,255,247,255,249,255,222,255,225,255,9,0,26,0, +16,0,33,0,61,0,47,0,21,0,28,0,40,0,52,0,74,0,72,0,41,0,29,0,23,0,8,0,16,0,26,0, +10,0,6,0,23,0,23,0,9,0,5,0,16,0,37,0,38,0,3,0,237,255,251,255,0,0,232,255,219,255,236,255, +251,255,244,255,241,255,248,255,236,255,224,255,244,255,13,0,31,0,37,0,4,0,232,255,8,0,18,0,227,255,228,255, +17,0,11,0,243,255,254,255,2,0,240,255,224,255,215,255,244,255,30,0,2,0,204,255,213,255,232,255,204,255,202,255, +5,0,44,0,21,0,241,255,232,255,255,255,45,0,72,0,33,0,225,255,222,255,18,0,46,0,38,0,20,0,248,255, +226,255,235,255,9,0,30,0,33,0,20,0,255,255,249,255,18,0,45,0,36,0,9,0,254,255,246,255,238,255,248,255, +7,0,10,0,20,0,21,0,246,255,229,255,3,0,28,0,5,0,232,255,244,255,20,0,31,0,25,0,17,0,7,0, +18,0,55,0,57,0,4,0,236,255,11,0,27,0,253,255,226,255,253,255,52,0,55,0,1,0,224,255,228,255,231,255, +246,255,25,0,33,0,12,0,6,0,26,0,40,0,23,0,249,255,254,255,35,0,54,0,45,0,38,0,33,0,17,0, +253,255,251,255,9,0,15,0,8,0,7,0,3,0,254,255,14,0,15,0,228,255,200,255,220,255,252,255,21,0,23,0, +233,255,198,255,231,255,20,0,20,0,253,255,241,255,241,255,229,255,192,255,191,255,247,255,255,255,189,255,184,255,246,255, +255,255,227,255,244,255,10,0,250,255,241,255,248,255,253,255,6,0,254,255,223,255,234,255,33,0,38,0,246,255,219,255, +221,255,234,255,12,0,33,0,16,0,5,0,5,0,235,255,222,255,5,0,37,0,18,0,254,255,15,0,31,0,23,0, +19,0,21,0,3,0,236,255,239,255,247,255,233,255,231,255,252,255,3,0,241,255,225,255,224,255,240,255,2,0,248,255, +228,255,239,255,9,0,10,0,0,0,1,0,246,255,229,255,2,0,44,0,24,0,241,255,246,255,238,255,198,255,211,255, +0,0,242,255,218,255,254,255,27,0,1,0,233,255,239,255,246,255,247,255,253,255,6,0,5,0,250,255,244,255,244,255, +243,255,252,255,0,0,245,255,0,0,27,0,10,0,230,255,231,255,234,255,222,255,240,255,6,0,246,255,243,255,13,0, +15,0,1,0,0,0,249,255,240,255,248,255,250,255,250,255,8,0,13,0,9,0,21,0,27,0,13,0,8,0,9,0, +2,0,14,0,38,0,41,0,27,0,250,255,213,255,230,255,17,0,255,255,211,255,225,255,254,255,239,255,218,255,218,255, +225,255,245,255,15,0,15,0,241,255,216,255,231,255,12,0,20,0,8,0,8,0,5,0,252,255,17,0,38,0,20,0, +9,0,29,0,24,0,249,255,255,255,39,0,51,0,12,0,227,255,235,255,14,0,14,0,248,255,6,0,38,0,20,0, +234,255,238,255,16,0,14,0,236,255,230,255,255,255,8,0,253,255,243,255,232,255,224,255,237,255,0,0,255,255,253,255, +4,0,4,0,3,0,19,0,36,0,24,0,250,255,241,255,255,255,251,255,222,255,223,255,6,0,28,0,13,0,235,255, +206,255,224,255,19,0,27,0,1,0,0,0,5,0,243,255,239,255,6,0,26,0,27,0,13,0,11,0,42,0,45,0, +245,255,221,255,5,0,20,0,245,255,234,255,248,255,6,0,14,0,5,0,242,255,237,255,235,255,232,255,242,255,6,0, +20,0,21,0,255,255,233,255,246,255,7,0,254,255,253,255,12,0,1,0,239,255,253,255,10,0,247,255,236,255,5,0, +31,0,25,0,5,0,254,255,252,255,245,255,239,255,246,255,4,0,254,255,229,255,232,255,15,0,31,0,2,0,235,255, +238,255,234,255,233,255,253,255,0,0,230,255,230,255,245,255,218,255,187,255,215,255,253,255,252,255,252,255,5,0,250,255, +240,255,249,255,253,255,2,0,20,0,23,0,2,0,239,255,242,255,2,0,6,0,248,255,247,255,3,0,251,255,234,255, +240,255,246,255,238,255,241,255,1,0,14,0,21,0,23,0,12,0,255,255,0,0,13,0,14,0,7,0,16,0,27,0, +10,0,250,255,13,0,33,0,19,0,252,255,247,255,5,0,23,0,23,0,2,0,246,255,3,0,11,0,254,255,252,255, +11,0,9,0,249,255,251,255,5,0,7,0,10,0,4,0,250,255,13,0,33,0,18,0,251,255,242,255,228,255,224,255, +252,255,22,0,15,0,249,255,247,255,5,0,4,0,246,255,248,255,250,255,244,255,3,0,24,0,8,0,245,255,252,255, +0,0,7,0,22,0,7,0,237,255,246,255,0,0,249,255,0,0,255,255,227,255,229,255,8,0,13,0,254,255,3,0, +11,0,12,0,9,0,249,255,234,255,244,255,4,0,10,0,20,0,24,0,4,0,249,255,10,0,27,0,30,0,31,0, +31,0,24,0,12,0,251,255,243,255,0,0,14,0,10,0,9,0,17,0,12,0,3,0,251,255,232,255,226,255,253,255, +20,0,15,0,11,0,12,0,2,0,0,0,11,0,3,0,235,255,234,255,253,255,1,0,251,255,1,0,252,255,231,255, +230,255,0,0,18,0,15,0,251,255,236,255,249,255,2,0,244,255,248,255,6,0,238,255,225,255,9,0,30,0,9,0, +2,0,8,0,7,0,9,0,2,0,241,255,235,255,232,255,233,255,2,0,24,0,16,0,1,0,245,255,241,255,252,255, +254,255,242,255,255,255,24,0,18,0,252,255,245,255,252,255,11,0,17,0,5,0,255,255,1,0,251,255,5,0,38,0, +41,0,6,0,248,255,6,0,14,0,8,0,246,255,226,255,234,255,8,0,21,0,16,0,3,0,239,255,243,255,19,0, +21,0,249,255,245,255,254,255,252,255,253,255,250,255,241,255,251,255,6,0,253,255,252,255,254,255,243,255,247,255,9,0, +7,0,2,0,10,0,12,0,15,0,18,0,3,0,247,255,252,255,248,255,245,255,7,0,14,0,4,0,6,0,15,0, +12,0,8,0,250,255,234,255,246,255,8,0,0,0,2,0,19,0,4,0,235,255,250,255,21,0,14,0,244,255,238,255, +250,255,0,0,254,255,6,0,17,0,10,0,254,255,255,255,7,0,7,0,250,255,238,255,247,255,2,0,254,255,1,0, +9,0,250,255,235,255,243,255,254,255,2,0,7,0,8,0,7,0,3,0,243,255,238,255,7,0,24,0,15,0,6,0, +8,0,4,0,251,255,244,255,241,255,250,255,15,0,21,0,6,0,248,255,242,255,238,255,245,255,6,0,9,0,255,255, +252,255,2,0,4,0,253,255,243,255,245,255,255,255,255,255,1,0,9,0,5,0,0,0,11,0,15,0,7,0,3,0, +0,0,0,0,12,0,18,0,9,0,2,0,0,0,250,255,249,255,252,255,254,255,252,255,252,255,2,0,5,0,253,255, +252,255,5,0,3,0,254,255,7,0,14,0,11,0,11,0,10,0,6,0,6,0,2,0,250,255,3,0,19,0,17,0, +9,0,7,0,3,0,254,255,1,0,7,0,3,0,250,255,243,255,245,255,2,0,14,0,6,0,253,255,7,0,16,0, +4,0,245,255,245,255,253,255,4,0,255,255,247,255,252,255,2,0,255,255,254,255,2,0,253,255,245,255,245,255,247,255, +250,255,4,0,1,0,245,255,249,255,4,0,2,0,254,255,1,0,254,255,251,255,5,0,6,0,253,255,3,0,12,0, +5,0,252,255,252,255,2,0,5,0,250,255,238,255,244,255,251,255,243,255,245,255,6,0,8,0,252,255,251,255,4,0, +4,0,255,255,254,255,255,255,255,255,4,0,8,0,1,0,251,255,1,0,2,0,252,255,251,255,251,255,249,255,252,255, +253,255,248,255,251,255,0,0,246,255,237,255,247,255,4,0,255,255,247,255,251,255,2,0,6,0,6,0,3,0,2,0, +5,0,2,0,249,255,248,255,250,255,246,255,249,255,4,0,10,0,5,0,252,255,252,255,1,0,254,255,251,255,7,0, +16,0,8,0,255,255,1,0,5,0,6,0,254,255,250,255,4,0,10,0,5,0,8,0,19,0,16,0,2,0,247,255, +248,255,1,0,6,0,2,0,254,255,253,255,0,0,5,0,2,0,252,255,252,255,0,0,255,255,0,0,2,0,255,255, +253,255,4,0,7,0,254,255,246,255,252,255,1,0,253,255,254,255,255,255,250,255,251,255,3,0,255,255,249,255,253,255, +1,0,252,255,250,255,252,255,254,255,254,255,255,255,0,0,255,255,1,0,3,0,0,0,255,255,4,0,3,0,253,255, +254,255,1,0,0,0,1,0,4,0,2,0,252,255,251,255,254,255,0,0,254,255,1,0,5,0,2,0,255,255,0,0, +0,0,0,0,2,0,253,255,247,255,252,255,4,0,4,0,251,255,247,255,254,255,5,0,4,0,1,0,1,0,2,0, +5,0,10,0,10,0,8,0,4,0,253,255,253,255,1,0,0,0,254,255,2,0,5,0,5,0,5,0,5,0,0,0, +250,255,250,255,1,0,0,0,251,255,253,255,0,0,0,0,8,0,10,0,252,255,243,255,251,255,1,0,0,0,2,0, +4,0,4,0,3,0,255,255,248,255,248,255,255,255,1,0,251,255,251,255,255,255,0,0,0,0,254,255,251,255,254,255, +1,0,255,255,255,255,255,255,254,255,4,0,8,0,2,0,252,255,253,255,253,255,254,255,255,255,253,255,251,255,250,255, +250,255,254,255,3,0,3,0,2,0,0,0,0,0,2,0,255,255,251,255,1,0,5,0,1,0,1,0,6,0,7,0, +5,0,1,0,253,255,2,0,7,0,4,0,255,255,0,0,5,0,4,0,255,255,0,0,6,0,6,0,0,0,251,255, +248,255,252,255,0,0,252,255,249,255,253,255,254,255,250,255,254,255,1,0,253,255,251,255,254,255,253,255,251,255,255,255, +1,0,250,255,250,255,4,0,5,0,0,0,2,0,4,0,3,0,5,0,5,0,2,0,0,0,253,255,250,255,255,255, +2,0,255,255,2,0,5,0,2,0,0,0,1,0,255,255,1,0,5,0,2,0,254,255,255,255,1,0,254,255,252,255, +255,255,1,0,0,0,3,0,4,0,254,255,250,255,252,255,251,255,253,255,4,0,2,0,253,255,255,255,254,255,251,255, +254,255,1,0,255,255,253,255,253,255,254,255,0,0,2,0,2,0,2,0,3,0,4,0,3,0,1,0,0,0,0,0, +1,0,1,0,255,255,2,0,7,0,5,0,1,0,3,0,6,0,6,0,4,0,0,0,254,255,0,0,0,0,1,0, +3,0,0,0,255,255,3,0,2,0,255,255,253,255,251,255,253,255,6,0,5,0,253,255,253,255,2,0,2,0,252,255, +251,255,0,0,1,0,252,255,253,255,0,0,254,255,254,255,255,255,252,255,253,255,0,0,252,255,251,255,254,255,254,255, +253,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,1,0,4,0,2,0,1,0,1,0,255,255,252,255, +251,255,254,255,0,0,1,0,3,0,3,0,0,0,255,255,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255, +2,0,3,0,255,255,255,255,5,0,5,0,2,0,0,0,254,255,255,255,0,0,2,0,6,0,6,0,0,0,0,0, +2,0,255,255,254,255,2,0,3,0,1,0,255,255,255,255,2,0,3,0,0,0,0,0,0,0,254,255,255,255,254,255, +253,255,255,255,253,255,251,255,0,0,2,0,255,255,253,255,255,255,0,0,0,0,254,255,252,255,1,0,5,0,255,255, +253,255,1,0,4,0,2,0,2,0,3,0,1,0,254,255,255,255,255,255,253,255,0,0,4,0,2,0,2,0,5,0, +2,0,253,255,252,255,255,255,2,0,1,0,254,255,254,255,254,255,255,255,1,0,1,0,254,255,254,255,254,255,0,0, +4,0,2,0,254,255,3,0,6,0,2,0,0,0,254,255,252,255,253,255,253,255,253,255,253,255,255,255,0,0,0,0, +254,255,254,255,3,0,3,0,255,255,0,0,0,0,255,255,254,255,253,255,255,255,4,0,3,0,255,255,254,255,254,255, +0,0,4,0,2,0,254,255,255,255,1,0,1,0,2,0,2,0,255,255,252,255,254,255,3,0,4,0,1,0,1,0, +2,0,3,0,4,0,1,0,253,255,253,255,1,0,4,0,1,0,253,255,254,255,1,0,254,255,252,255,2,0,4,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,253,255,0,0,2,0,252,255,254,255, +5,0,1,0,252,255,0,0,1,0,254,255,1,0,2,0,255,255,255,255,1,0,2,0,1,0,0,0,1,0,0,0, +255,255,0,0,255,255,249,255,251,255,0,0,2,0,2,0,3,0,1,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,2,0,2,0,3,0,3,0,1,0,254,255,254,255,255,255,1,0,2,0,2,0,1,0,2,0, +2,0,3,0,0,0,253,255,254,255,255,255,250,255,250,255,1,0,3,0,1,0,0,0,255,255,252,255,251,255,252,255, +0,0,3,0,0,0,1,0,3,0,0,0,253,255,254,255,0,0,2,0,1,0,254,255,254,255,0,0,1,0,3,0, +3,0,0,0,0,0,254,255,252,255,1,0,4,0,1,0,254,255,255,255,0,0,2,0,0,0,253,255,253,255,254,255, +253,255,255,255,255,255,253,255,0,0,2,0,0,0,254,255,1,0,3,0,255,255,253,255,255,255,1,0,1,0,3,0, +3,0,0,0,255,255,1,0,2,0,2,0,0,0,254,255,2,0,4,0,1,0,0,0,1,0,2,0,5,0,4,0, +255,255,254,255,1,0,3,0,2,0,1,0,1,0,3,0,0,0,253,255,254,255,0,0,2,0,3,0,255,255,252,255, +254,255,255,255,255,255,2,0,255,255,252,255,255,255,1,0,255,255,255,255,255,255,253,255,1,0,5,0,1,0,253,255, +253,255,1,0,3,0,0,0,255,255,1,0,1,0,255,255,254,255,253,255,254,255,255,255,254,255,254,255,0,0,0,0, +255,255,0,0,3,0,2,0,253,255,253,255,0,0,0,0,254,255,2,0,5,0,2,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,255,255,254,255,0,0,1,0,0,0,1,0,2,0,3,0,3,0,254,255,252,255,1,0,3,0, +0,0,253,255,253,255,0,0,1,0,255,255,255,255,2,0,0,0,255,255,0,0,255,255,255,255,255,255,254,255,0,0, +2,0,1,0,255,255,255,255,255,255,0,0,3,0,2,0,255,255,0,0,1,0,255,255,254,255,255,255,1,0,1,0, +0,0,3,0,3,0,0,0,254,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,3,0,3,0,1,0, +0,0,0,0,255,255,254,255,254,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,1,0,2,0, +255,255,254,255,0,0,0,0,255,255,255,255,254,255,0,0,1,0,0,0,0,0,1,0,0,0,254,255,254,255,255,255, +1,0,0,0,253,255,0,0,3,0,2,0,0,0,0,0,0,0,1,0,0,0,254,255,0,0,2,0,1,0,0,0, +0,0,0,0,255,255,0,0,2,0,3,0,1,0,254,255,255,255,0,0,255,255,255,255,1,0,2,0,1,0,255,255, +0,0,0,0,254,255,253,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,254,255,255,255,3,0,2,0,255,255, +254,255,1,0,3,0,0,0,253,255,254,255,255,255,255,255,1,0,0,0,254,255,0,0,1,0,255,255,0,0,255,255, +254,255,255,255,1,0,0,0,255,255,254,255,255,255,1,0,1,0,0,0,1,0,2,0,2,0,1,0,255,255,255,255, +1,0,2,0,1,0,1,0,0,0,1,0,2,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,255,255,254,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +255,255,254,255,254,255,0,0,1,0,0,0,255,255,255,255,0,0,3,0,1,0,254,255,255,255,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,2,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,0,0,255,255, +255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,254,255,255,255,1,0,2,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/sheep1.pcm b/src/client/sound/data/sheep1.pcm new file mode 100755 index 0000000..394760a --- /dev/null +++ b/src/client/sound/data/sheep1.pcm @@ -0,0 +1,7354 @@ +unsigned char PCM_sheep1[88216] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x44,0xac,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xfc,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x3,0x0,0x1,0x0,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x3,0x0,0x5,0x0,0x4,0x0,0x3,0x0, +0x5,0x0,0x7,0x0,0x5,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfa,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0xfe,0xff,0xfd,0xff,0x3,0x0,0x1,0x0, +0xff,0xff,0x8,0x0,0x9,0x0,0x2,0x0,0x5,0x0,0xb,0x0, +0x8,0x0,0x8,0x0,0x6,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xf6,0xff,0xf4,0xff,0xf7,0xff,0xf9,0xff,0xfc,0xff,0xfb,0xff, +0xf8,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xfd,0xff,0xfd,0xff, +0xfa,0xff,0x2,0x0,0x7,0x0,0x1,0x0,0x3,0x0,0x7,0x0, +0x5,0x0,0xb,0x0,0xd,0x0,0x0,0x0,0xff,0xff,0x9,0x0, +0x1,0x0,0xf8,0xff,0xfe,0xff,0x0,0x0,0xfc,0xff,0xfd,0xff, +0xfb,0xff,0xf9,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0x1,0x0, +0x6,0x0,0x6,0x0,0x4,0x0,0xfd,0xff,0xfa,0xff,0xfe,0xff, +0xfe,0xff,0xfb,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,0x1,0x0, +0x5,0x0,0xff,0xff,0xfe,0xff,0x5,0x0,0x7,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x8,0x0,0xd,0x0,0xe,0x0,0xb,0x0, +0x6,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfa,0xff,0xf9,0xff, +0xf7,0xff,0xf3,0xff,0xf8,0xff,0xff,0xff,0xfa,0xff,0xf6,0xff, +0xfb,0xff,0xfe,0xff,0xff,0xff,0x4,0x0,0x6,0x0,0x5,0x0, +0xb,0x0,0x10,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0x6,0x0, +0x5,0x0,0x7,0x0,0x0,0x0,0xfc,0xff,0xff,0xff,0xfd,0xff, +0xf9,0xff,0xfe,0xff,0x5,0x0,0x4,0x0,0x3,0x0,0x5,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x6,0x0,0x2,0x0,0xfd,0xff,0x0,0x0,0xff,0xff,0xf7,0xff, +0xf9,0xff,0x0,0x0,0xfd,0xff,0xfb,0xff,0xff,0xff,0xff,0xff, +0x2,0x0,0x7,0x0,0x5,0x0,0x4,0x0,0xc,0x0,0x11,0x0, +0x11,0x0,0x10,0x0,0xf,0x0,0xe,0x0,0xb,0x0,0x3,0x0, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf6,0xff, +0xf6,0xff,0xf4,0xff,0xf4,0xff,0xfa,0xff,0xfd,0xff,0xfb,0xff, +0xfe,0xff,0x4,0x0,0x3,0x0,0x4,0x0,0x7,0x0,0x3,0x0, +0x4,0x0,0xc,0x0,0x9,0x0,0x0,0x0,0x4,0x0,0x7,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0xfd,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0x4,0x0,0x8,0x0,0x0,0x0,0xf8,0xff,0xfc,0xff, +0x3,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0xa,0x0, +0xe,0x0,0xf,0x0,0xd,0x0,0x9,0x0,0x7,0x0,0xa,0x0, +0xd,0x0,0x7,0x0,0xff,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0x0,0x0,0x1,0x0,0x3,0x0,0x9,0x0,0xd,0x0,0x10,0x0, +0x14,0x0,0x16,0x0,0x11,0x0,0xf,0x0,0x10,0x0,0xf,0x0, +0xf,0x0,0xf,0x0,0xb,0x0,0x3,0x0,0xfd,0xff,0xf7,0xff, +0xf4,0xff,0xf8,0xff,0xf9,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff, +0xfd,0xff,0x1,0x0,0x3,0x0,0x5,0x0,0xd,0x0,0x10,0x0, +0xa,0x0,0xc,0x0,0x10,0x0,0xd,0x0,0xf,0x0,0x11,0x0, +0x7,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0xf4,0xff,0xf5,0xff, +0xf9,0xff,0xfb,0xff,0xfc,0xff,0xf9,0xff,0xf7,0xff,0xff,0xff, +0x3,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x7,0x0, +0x4,0x0,0xfe,0xff,0x1,0x0,0x1,0x0,0xfc,0xff,0xfe,0xff, +0xfb,0xff,0xf5,0xff,0xfa,0xff,0xfb,0xff,0xf8,0xff,0x3,0x0, +0x5,0x0,0xfa,0xff,0xfc,0xff,0x1,0x0,0xf9,0xff,0xfc,0xff, +0x6,0x0,0x1,0x0,0x1,0x0,0x4,0x0,0xf7,0xff,0xf1,0xff, +0xf8,0xff,0xf3,0xff,0xf0,0xff,0xfc,0xff,0x0,0x0,0xfd,0xff, +0x0,0x0,0x2,0x0,0x5,0x0,0xd,0x0,0xd,0x0,0xa,0x0, +0xb,0x0,0x8,0x0,0x4,0x0,0x2,0x0,0xfb,0xff,0xfa,0xff, +0x3,0x0,0x2,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0x2,0x0,0x0,0x0,0x1,0x0,0x8,0x0,0xb,0x0,0x9,0x0, +0x9,0x0,0x2,0x0,0x1,0x0,0xe,0x0,0x11,0x0,0x5,0x0, +0x3,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x7,0x0,0x3,0x0, +0x3,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0xf,0x0,0x10,0x0, +0x9,0x0,0x6,0x0,0xa,0x0,0x5,0x0,0xfd,0xff,0x0,0x0, +0x5,0x0,0x4,0x0,0x6,0x0,0x5,0x0,0x1,0x0,0x3,0x0, +0x5,0x0,0xfe,0xff,0xfc,0xff,0x3,0x0,0x4,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x4,0x0,0x7,0x0,0x7,0x0,0x8,0x0, +0x9,0x0,0x8,0x0,0x5,0x0,0x7,0x0,0xd,0x0,0xd,0x0, +0x5,0x0,0x2,0x0,0xb,0x0,0x9,0x0,0xfd,0xff,0xff,0xff, +0x8,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x1,0x0,0x1,0x0, +0x7,0x0,0x6,0x0,0x4,0x0,0x9,0x0,0xd,0x0,0xb,0x0, +0xb,0x0,0xb,0x0,0x8,0x0,0x4,0x0,0x4,0x0,0x9,0x0, +0xb,0x0,0x6,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xf6,0xff, +0xfb,0xff,0x2,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x9,0x0, +0x7,0x0,0x8,0x0,0xd,0x0,0xc,0x0,0x7,0x0,0x4,0x0, +0x0,0x0,0xfe,0xff,0x1,0x0,0x0,0x0,0xfd,0xff,0xfd,0xff, +0xf9,0xff,0xf4,0xff,0xfa,0xff,0xfd,0xff,0xf7,0xff,0xf8,0xff, +0x1,0x0,0x1,0x0,0xfd,0xff,0xff,0xff,0x3,0x0,0x3,0x0, +0x5,0x0,0xa,0x0,0x7,0x0,0xff,0xff,0x1,0x0,0x3,0x0, +0xfa,0xff,0xfb,0xff,0x3,0x0,0xfa,0xff,0xee,0xff,0xf5,0xff, +0xf9,0xff,0xf3,0xff,0xf5,0xff,0xf6,0xff,0xf2,0xff,0xfa,0xff, +0x5,0x0,0x2,0x0,0x0,0x0,0x7,0x0,0x8,0x0,0x4,0x0, +0x8,0x0,0xf,0x0,0xa,0x0,0x2,0x0,0x3,0x0,0x1,0x0, +0xfa,0xff,0xfe,0xff,0x5,0x0,0xfc,0xff,0xfb,0xff,0x7,0x0, +0x9,0x0,0xa,0x0,0x14,0x0,0x11,0x0,0xa,0x0,0x12,0x0, +0x17,0x0,0x12,0x0,0x15,0x0,0x10,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0xf5,0xff,0xf0,0xff,0xf6,0xff,0xf8,0xff,0xef,0xff, +0xe2,0xff,0xe1,0xff,0xe8,0xff,0xe8,0xff,0xee,0xff,0xff,0xff, +0x7,0x0,0xf,0x0,0x27,0x0,0x32,0x0,0x30,0x0,0x37,0x0, +0x35,0x0,0x26,0x0,0x21,0x0,0x1a,0x0,0x4,0x0,0xf6,0xff, +0xf1,0xff,0xe7,0xff,0xe5,0xff,0xe6,0xff,0xde,0xff,0xde,0xff, +0xe6,0xff,0xe9,0xff,0xee,0xff,0xf7,0xff,0xfa,0xff,0x2,0x0, +0x7,0x0,0x0,0x0,0x1,0x0,0x7,0x0,0x4,0x0,0x2,0x0, +0x8,0x0,0x4,0x0,0xfd,0xff,0xfb,0xff,0xf5,0xff,0xf2,0xff, +0xfa,0xff,0x0,0x0,0x4,0x0,0xd,0x0,0x16,0x0,0x1e,0x0, +0x25,0x0,0x24,0x0,0x21,0x0,0x22,0x0,0x1a,0x0,0xd,0x0, +0xa,0x0,0x2,0x0,0xef,0xff,0xe4,0xff,0xe5,0xff,0xe3,0xff, +0xe0,0xff,0xdf,0xff,0xe6,0xff,0xf8,0xff,0x7,0x0,0x7,0x0, +0x7,0x0,0xe,0x0,0xf,0x0,0xd,0x0,0x13,0x0,0x19,0x0, +0x1c,0x0,0x22,0x0,0x24,0x0,0x1c,0x0,0x17,0x0,0x19,0x0, +0x1a,0x0,0x17,0x0,0x17,0x0,0x1c,0x0,0x20,0x0,0x1d,0x0, +0x17,0x0,0x14,0x0,0x16,0x0,0x18,0x0,0x17,0x0,0x11,0x0, +0xe,0x0,0x11,0x0,0x9,0x0,0xf5,0xff,0xeb,0xff,0xec,0xff, +0xea,0xff,0xef,0xff,0xfe,0xff,0x5,0x0,0x9,0x0,0x12,0x0, +0x18,0x0,0x19,0x0,0x24,0x0,0x2d,0x0,0x2b,0x0,0x2b,0x0, +0x31,0x0,0x2b,0x0,0x1d,0x0,0x15,0x0,0xe,0x0,0x5,0x0, +0xff,0xff,0xf9,0xff,0xf2,0xff,0xf1,0xff,0xf1,0xff,0xf1,0xff, +0xf8,0xff,0xfa,0xff,0xf2,0xff,0xf5,0xff,0x6,0x0,0xb,0x0, +0x8,0x0,0x9,0x0,0xa,0x0,0x5,0x0,0x1,0x0,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xf8,0xff,0xf2,0xff,0xf4,0xff,0xf8,0xff, +0xfd,0xff,0x1,0x0,0x2,0x0,0x5,0x0,0x3,0x0,0xfe,0xff, +0x9,0x0,0x15,0x0,0xf,0x0,0xe,0x0,0x12,0x0,0x6,0x0, +0x2,0x0,0x9,0x0,0xfd,0xff,0xf1,0xff,0xf6,0xff,0xed,0xff, +0xdd,0xff,0xe4,0xff,0xea,0xff,0xe3,0xff,0xe7,0xff,0xef,0xff, +0xf1,0xff,0xfc,0xff,0x6,0x0,0xfb,0xff,0xef,0xff,0xf2,0xff, +0xf6,0xff,0xf0,0xff,0xeb,0xff,0xee,0xff,0xeb,0xff,0xe2,0xff, +0xe1,0xff,0xdf,0xff,0xd7,0xff,0xdc,0xff,0xe6,0xff,0xde,0xff, +0xd8,0xff,0xe3,0xff,0xe4,0xff,0xde,0xff,0xe7,0xff,0xef,0xff, +0xe4,0xff,0xde,0xff,0xdf,0xff,0xd7,0xff,0xcd,0xff,0xcd,0xff, +0xcd,0xff,0xc9,0xff,0xcc,0xff,0xcd,0xff,0xc5,0xff,0xc3,0xff, +0xc9,0xff,0xc7,0xff,0xc8,0xff,0xd8,0xff,0xde,0xff,0xd8,0xff, +0xdc,0xff,0xde,0xff,0xd6,0xff,0xd3,0xff,0xd7,0xff,0xd8,0xff, +0xd5,0xff,0xd1,0xff,0xd1,0xff,0xd8,0xff,0xd6,0xff,0xca,0xff, +0xc6,0xff,0xcc,0xff,0xcd,0xff,0xc6,0xff,0xc1,0xff,0xc6,0xff, +0xcd,0xff,0xcd,0xff,0xce,0xff,0xd2,0xff,0xd1,0xff,0xd2,0xff, +0xd8,0xff,0xdb,0xff,0xde,0xff,0xe2,0xff,0xde,0xff,0xda,0xff, +0xe1,0xff,0xe1,0xff,0xde,0xff,0xe9,0xff,0xf1,0xff,0xf0,0xff, +0xf3,0xff,0xf8,0xff,0xfc,0xff,0x4,0x0,0x3,0x0,0xf9,0xff, +0xfa,0xff,0xfe,0xff,0xf3,0xff,0xe6,0xff,0xe7,0xff,0xf3,0xff, +0xf4,0xff,0xe0,0xff,0xd9,0xff,0xed,0xff,0xf4,0xff,0xe6,0xff, +0xe0,0xff,0xe0,0xff,0xe6,0xff,0xf4,0xff,0xf3,0xff,0xe8,0xff, +0xf0,0xff,0xfb,0xff,0xf8,0xff,0xfd,0xff,0xff,0xff,0xf4,0xff, +0xf3,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xf4,0xff, +0xf9,0xff,0x3,0x0,0x6,0x0,0x8,0x0,0x0,0x0,0xfd,0xff, +0x14,0x0,0x1c,0x0,0x8,0x0,0xd,0x0,0x20,0x0,0x17,0x0, +0xe,0x0,0xe,0x0,0x4,0x0,0x2,0x0,0x11,0x0,0x14,0x0, +0x11,0x0,0x17,0x0,0x19,0x0,0x17,0x0,0x1c,0x0,0x2d,0x0, +0x3d,0x0,0x37,0x0,0x2b,0x0,0x2c,0x0,0x24,0x0,0x15,0x0, +0x16,0x0,0x19,0x0,0x14,0x0,0x11,0x0,0xff,0xff,0xea,0xff, +0xf3,0xff,0xf9,0xff,0xeb,0xff,0xed,0xff,0xfe,0xff,0x1,0x0, +0x1,0x0,0x8,0x0,0xc,0x0,0xb,0x0,0xa,0x0,0xb,0x0, +0x10,0x0,0x14,0x0,0x18,0x0,0x19,0x0,0xe,0x0,0xa,0x0, +0x15,0x0,0x14,0x0,0xc,0x0,0x7,0x0,0xfa,0xff,0xf9,0xff, +0xb,0x0,0x9,0x0,0xfb,0xff,0x3,0x0,0xe,0x0,0xd,0x0, +0xe,0x0,0x9,0x0,0xfb,0xff,0xf2,0xff,0xe6,0xff,0xdd,0xff, +0xde,0xff,0xd8,0xff,0xdb,0xff,0xf9,0xff,0x4,0x0,0xf2,0xff, +0xf5,0xff,0x9,0x0,0x12,0x0,0x1a,0x0,0x22,0x0,0x1f,0x0, +0x1e,0x0,0x1a,0x0,0x4,0x0,0xf2,0xff,0xe7,0xff,0xd6,0xff, +0xc9,0xff,0xca,0xff,0xd0,0xff,0xd4,0xff,0xd2,0xff,0xd1,0xff, +0xd7,0xff,0xd7,0xff,0xd4,0xff,0xdf,0xff,0xe0,0xff,0xd2,0xff, +0xdf,0xff,0xf8,0xff,0xf9,0xff,0xfe,0xff,0x9,0x0,0xfb,0xff, +0xef,0xff,0xf5,0xff,0xe2,0xff,0xc5,0xff,0xbf,0xff,0xc4,0xff, +0xce,0xff,0xd6,0xff,0xd0,0xff,0xcd,0xff,0xd0,0xff,0xc7,0xff, +0xc7,0xff,0xd5,0xff,0xd7,0xff,0xd5,0xff,0xe0,0xff,0xe7,0xff, +0xee,0xff,0xfc,0xff,0x7,0x0,0x1a,0x0,0x33,0x0,0x33,0x0, +0x31,0x0,0x40,0x0,0x44,0x0,0x3f,0x0,0x48,0x0,0x46,0x0, +0x2a,0x0,0x18,0x0,0x1d,0x0,0x1b,0x0,0x2,0x0,0xeb,0xff, +0xdc,0xff,0xd0,0xff,0xcd,0xff,0xc6,0xff,0xac,0xff,0xab,0xff, +0xd0,0xff,0xd6,0xff,0xbf,0xff,0xd0,0xff,0xef,0xff,0xf1,0xff, +0xee,0xff,0xfd,0xff,0xd,0x0,0xe,0x0,0xf3,0xff,0xdf,0xff, +0xec,0xff,0xf6,0xff,0xee,0xff,0xe3,0xff,0xcf,0xff,0xd3,0xff, +0xfd,0xff,0xe,0x0,0x1,0x0,0xb,0x0,0x1b,0x0,0x1c,0x0, +0x23,0x0,0x23,0x0,0x1b,0x0,0x20,0x0,0x16,0x0,0xfd,0xff, +0xfb,0xff,0xfe,0xff,0xf5,0xff,0xf1,0xff,0xe7,0xff,0xdb,0xff, +0xe8,0xff,0xf2,0xff,0xef,0xff,0x4,0x0,0x22,0x0,0x25,0x0, +0x1e,0x0,0x21,0x0,0x29,0x0,0x24,0x0,0x11,0x0,0x16,0x0, +0x30,0x0,0x2e,0x0,0x1b,0x0,0x19,0x0,0x21,0x0,0x32,0x0, +0x44,0x0,0x3d,0x0,0x41,0x0,0x53,0x0,0x41,0x0,0x2f,0x0, +0x51,0x0,0x65,0x0,0x5a,0x0,0x60,0x0,0x5e,0x0,0x45,0x0, +0x45,0x0,0x4b,0x0,0x3a,0x0,0x31,0x0,0x31,0x0,0x2b,0x0, +0x2b,0x0,0x2c,0x0,0x29,0x0,0x35,0x0,0x46,0x0,0x4c,0x0, +0x46,0x0,0x38,0x0,0x38,0x0,0x45,0x0,0x3b,0x0,0x33,0x0, +0x43,0x0,0x3a,0x0,0x1e,0x0,0x23,0x0,0x31,0x0,0x32,0x0, +0x42,0x0,0x48,0x0,0x3b,0x0,0x46,0x0,0x58,0x0,0x4f,0x0, +0x4b,0x0,0x5a,0x0,0x5d,0x0,0x50,0x0,0x43,0x0,0x3c,0x0, +0x3a,0x0,0x2d,0x0,0x11,0x0,0xf8,0xff,0xeb,0xff,0xea,0xff, +0xeb,0xff,0xe5,0xff,0xe7,0xff,0xfa,0xff,0xa,0x0,0xd,0x0, +0xf,0x0,0x15,0x0,0x21,0x0,0x28,0x0,0x24,0x0,0x2b,0x0, +0x3f,0x0,0x3d,0x0,0x28,0x0,0x1a,0x0,0x13,0x0,0x10,0x0, +0xe,0x0,0x6,0x0,0x5,0x0,0xb,0x0,0xfd,0xff,0xf0,0xff, +0xfb,0xff,0x2,0x0,0x1,0x0,0x4,0x0,0x5,0x0,0x7,0x0, +0x16,0x0,0x1e,0x0,0x19,0x0,0x8,0x0,0xe9,0xff,0xd6,0xff, +0xe1,0xff,0xe7,0xff,0xd9,0xff,0xc7,0xff,0xae,0xff,0x94,0xff, +0x90,0xff,0x91,0xff,0x90,0xff,0xa3,0xff,0xbf,0xff,0xcb,0xff, +0xd8,0xff,0xed,0xff,0xf7,0xff,0xfb,0xff,0x3,0x0,0x3,0x0, +0xfa,0xff,0xf7,0xff,0xf7,0xff,0xe2,0xff,0xb9,0xff,0xa1,0xff, +0xad,0xff,0xb5,0xff,0xa2,0xff,0x95,0xff,0x96,0xff,0x8c,0xff, +0x74,0xff,0x68,0xff,0x6a,0xff,0x67,0xff,0x58,0xff,0x57,0xff, +0x68,0xff,0x6d,0xff,0x75,0xff,0x93,0xff,0xa3,0xff,0xa8,0xff, +0xcd,0xff,0xf0,0xff,0xf8,0xff,0xf,0x0,0x2f,0x0,0x3b,0x0, +0x41,0x0,0x37,0x0,0x1c,0x0,0x19,0x0,0x1b,0x0,0xa,0x0, +0xc,0x0,0xe,0x0,0xf0,0xff,0xdb,0xff,0xdd,0xff,0xde,0xff, +0xf2,0xff,0x8,0x0,0xfe,0xff,0xf8,0xff,0xc,0x0,0x18,0x0, +0x12,0x0,0x9,0x0,0xa,0x0,0x1a,0x0,0x21,0x0,0x23,0x0, +0x34,0x0,0x39,0x0,0x28,0x0,0x26,0x0,0x2e,0x0,0x33,0x0, +0x42,0x0,0x58,0x0,0x6b,0x0,0x7f,0x0,0x96,0x0,0xb3,0x0, +0xc6,0x0,0xc9,0x0,0xd8,0x0,0xe9,0x0,0xd9,0x0,0xc7,0x0, +0xb7,0x0,0x7d,0x0,0x3a,0x0,0xe,0x0,0xe6,0xff,0xd8,0xff, +0xdb,0xff,0xb3,0xff,0x91,0xff,0xa8,0xff,0xb9,0xff,0xc1,0xff, +0xf0,0xff,0x1c,0x0,0x26,0x0,0x36,0x0,0x4d,0x0,0x5b,0x0, +0x60,0x0,0x60,0x0,0x62,0x0,0x64,0x0,0x65,0x0,0x63,0x0, +0x4b,0x0,0x34,0x0,0x3f,0x0,0x3f,0x0,0x28,0x0,0x34,0x0, +0x46,0x0,0x2f,0x0,0x2b,0x0,0x42,0x0,0x37,0x0,0x22,0x0, +0x14,0x0,0xf1,0xff,0xda,0xff,0xe8,0xff,0xed,0xff,0xe0,0xff, +0xd7,0xff,0xd4,0xff,0xd8,0xff,0xe3,0xff,0xf1,0xff,0x1,0x0, +0x10,0x0,0x29,0x0,0x47,0x0,0x53,0x0,0x62,0x0,0x81,0x0, +0x86,0x0,0x7a,0x0,0x89,0x0,0x90,0x0,0x7e,0x0,0x7f,0x0, +0x81,0x0,0x67,0x0,0x53,0x0,0x4b,0x0,0x35,0x0,0x18,0x0, +0xfb,0xff,0xec,0xff,0xf4,0xff,0xed,0xff,0xcc,0xff,0xc8,0xff, +0xdb,0xff,0xd6,0xff,0xd3,0xff,0xec,0xff,0xf8,0xff,0xdf,0xff, +0xc8,0xff,0xcf,0xff,0xe5,0xff,0xf0,0xff,0xe3,0xff,0xdc,0xff, +0xee,0xff,0xfc,0xff,0xf4,0xff,0xee,0xff,0xf4,0xff,0x1,0x0, +0x10,0x0,0x15,0x0,0x12,0x0,0x1b,0x0,0x28,0x0,0x23,0x0, +0xf,0x0,0xfb,0xff,0xeb,0xff,0xe0,0xff,0xce,0xff,0xb0,0xff, +0x96,0xff,0x86,0xff,0x79,0xff,0x72,0xff,0x6c,0xff,0x63,0xff, +0x62,0xff,0x71,0xff,0x89,0xff,0xa3,0xff,0xbb,0xff,0xd2,0xff, +0xe4,0xff,0xf7,0xff,0xc,0x0,0x15,0x0,0xe,0x0,0x15,0x0, +0x26,0x0,0x1c,0x0,0xfc,0xff,0xe4,0xff,0xdc,0xff,0xd4,0xff, +0xbf,0xff,0xb4,0xff,0xbe,0xff,0xbb,0xff,0xa7,0xff,0xaa,0xff, +0xc1,0xff,0xd4,0xff,0xe8,0xff,0xef,0xff,0xe1,0xff,0xde,0xff, +0xe5,0xff,0xe2,0xff,0xde,0xff,0xe3,0xff,0xe8,0xff,0xe4,0xff, +0xd9,0xff,0xda,0xff,0xdb,0xff,0xcb,0xff,0xd4,0xff,0xf9,0xff, +0xfb,0xff,0xf3,0xff,0xb,0x0,0x11,0x0,0x2,0x0,0x9,0x0, +0xa,0x0,0xfe,0xff,0x3,0x0,0x2,0x0,0xf4,0xff,0xf2,0xff, +0xf2,0xff,0xed,0xff,0xeb,0xff,0xe6,0xff,0xeb,0xff,0xfc,0xff, +0x5,0x0,0xd,0x0,0xd,0x0,0xff,0xff,0xd,0x0,0x2a,0x0, +0x1e,0x0,0x14,0x0,0x2a,0x0,0x34,0x0,0x3a,0x0,0x47,0x0, +0x40,0x0,0x35,0x0,0x34,0x0,0x23,0x0,0x10,0x0,0x8,0x0, +0xf4,0xff,0xe7,0xff,0xf0,0xff,0xf2,0xff,0xe3,0xff,0xd6,0xff, +0xd9,0xff,0xe6,0xff,0xe6,0xff,0xec,0xff,0x6,0x0,0xe,0x0, +0x13,0x0,0x40,0x0,0x5d,0x0,0x53,0x0,0x5d,0x0,0x6f,0x0, +0x62,0x0,0x4d,0x0,0x3b,0x0,0x2d,0x0,0x20,0x0,0xc,0x0, +0x6,0x0,0x7,0x0,0xe2,0xff,0xba,0xff,0xbc,0xff,0xba,0xff, +0xb6,0xff,0xcc,0xff,0xdd,0xff,0xdb,0xff,0xda,0xff,0xda,0xff, +0xec,0xff,0x9,0x0,0x15,0x0,0x20,0x0,0x2e,0x0,0x2b,0x0, +0x3a,0x0,0x4d,0x0,0x3d,0x0,0x36,0x0,0x43,0x0,0x32,0x0, +0x27,0x0,0x3b,0x0,0x36,0x0,0x1a,0x0,0x13,0x0,0x18,0x0, +0x10,0x0,0xe9,0xff,0xc0,0xff,0xc4,0xff,0xcd,0xff,0xb5,0xff, +0xb3,0xff,0xc4,0xff,0xbc,0xff,0xc1,0xff,0xd9,0xff,0xd9,0xff, +0xd0,0xff,0xdc,0xff,0xee,0xff,0x0,0x0,0xe,0x0,0x19,0x0, +0x26,0x0,0x2e,0x0,0x2e,0x0,0x31,0x0,0x29,0x0,0x1f,0x0, +0x2c,0x0,0x35,0x0,0x18,0x0,0xf0,0xff,0xe6,0xff,0xeb,0xff, +0xd5,0xff,0xb4,0xff,0xb6,0xff,0xb5,0xff,0x92,0xff,0x8a,0xff, +0x9e,0xff,0x98,0xff,0x9b,0xff,0xb8,0xff,0xb7,0xff,0xa6,0xff, +0xb0,0xff,0xc4,0xff,0xd3,0xff,0xd7,0xff,0xc9,0xff,0xcd,0xff, +0xea,0xff,0xf2,0xff,0xe9,0xff,0xf6,0xff,0x6,0x0,0x3,0x0, +0x3,0x0,0x10,0x0,0x13,0x0,0xa,0x0,0x10,0x0,0xc,0x0, +0xe6,0xff,0xd6,0xff,0xec,0xff,0xe5,0xff,0xca,0xff,0xbf,0xff, +0xad,0xff,0xa1,0xff,0xba,0xff,0xc1,0xff,0xaa,0xff,0xae,0xff, +0xbd,0xff,0xbb,0xff,0xd2,0xff,0xf4,0xff,0xf2,0xff,0xe7,0xff, +0xf0,0xff,0xf9,0xff,0xfd,0xff,0x5,0x0,0x7,0x0,0x1,0x0, +0x3,0x0,0xd,0x0,0x11,0x0,0x12,0x0,0x11,0x0,0x7,0x0, +0x3,0x0,0x11,0x0,0x18,0x0,0x13,0x0,0x12,0x0,0x3,0x0, +0xea,0xff,0xe2,0xff,0xde,0xff,0xce,0xff,0xc0,0xff,0xbe,0xff, +0xbc,0xff,0xb3,0xff,0xa7,0xff,0xad,0xff,0xbf,0xff,0xc3,0xff, +0xc8,0xff,0xd9,0xff,0xe4,0xff,0xf3,0xff,0x15,0x0,0x3b,0x0, +0x5e,0x0,0x75,0x0,0x72,0x0,0x6b,0x0,0x70,0x0,0x69,0x0, +0x4b,0x0,0x21,0x0,0x0,0x0,0xf2,0xff,0xd4,0xff,0xa4,0xff, +0x9e,0xff,0xb4,0xff,0xaa,0xff,0xa0,0xff,0xac,0xff,0xaa,0xff, +0xb7,0xff,0xea,0xff,0x10,0x0,0x1c,0x0,0x2f,0x0,0x3f,0x0, +0x49,0x0,0x61,0x0,0x75,0x0,0x72,0x0,0x6b,0x0,0x73,0x0, +0x7a,0x0,0x6f,0x0,0x53,0x0,0x35,0x0,0x2c,0x0,0x32,0x0, +0x1b,0x0,0xeb,0xff,0xe8,0xff,0x9,0x0,0xc,0x0,0x4,0x0, +0x18,0x0,0x2a,0x0,0x24,0x0,0x23,0x0,0x2f,0x0,0x39,0x0, +0x3b,0x0,0x3a,0x0,0x3f,0x0,0x3c,0x0,0x2a,0x0,0x30,0x0, +0x4e,0x0,0x57,0x0,0x54,0x0,0x60,0x0,0x64,0x0,0x63,0x0, +0x74,0x0,0x7e,0x0,0x6f,0x0,0x61,0x0,0x61,0x0,0x5e,0x0, +0x59,0x0,0x56,0x0,0x42,0x0,0x2b,0x0,0x2e,0x0,0x31,0x0, +0x12,0x0,0xfc,0xff,0x5,0x0,0xb,0x0,0xc,0x0,0x1d,0x0, +0x21,0x0,0x17,0x0,0x1f,0x0,0x31,0x0,0x37,0x0,0x38,0x0, +0x33,0x0,0x35,0x0,0x48,0x0,0x3f,0x0,0x28,0x0,0x42,0x0, +0x60,0x0,0x43,0x0,0x26,0x0,0x34,0x0,0x34,0x0,0x27,0x0, +0x37,0x0,0x43,0x0,0x39,0x0,0x31,0x0,0x1b,0x0,0xfc,0xff, +0x0,0x0,0x17,0x0,0x13,0x0,0x1,0x0,0xf7,0xff,0xf8,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x12,0x0,0x26,0x0,0x25,0x0, +0x1a,0x0,0xc,0x0,0xfc,0xff,0xf3,0xff,0xea,0xff,0xd9,0xff, +0xc9,0xff,0xb0,0xff,0x8b,0xff,0x79,0xff,0x74,0xff,0x68,0xff, +0x67,0xff,0x72,0xff,0x76,0xff,0x7e,0xff,0x9c,0xff,0xbd,0xff, +0xd6,0xff,0xf6,0xff,0x1e,0x0,0x42,0x0,0x57,0x0,0x55,0x0, +0x35,0x0,0xd,0x0,0xfd,0xff,0xf7,0xff,0xdc,0xff,0xbe,0xff, +0xa5,0xff,0x82,0xff,0x59,0xff,0x34,0xff,0x10,0xff,0x6,0xff, +0x1c,0xff,0x28,0xff,0x1f,0xff,0x29,0xff,0x45,0xff,0x4c,0xff, +0x40,0xff,0x4a,0xff,0x73,0xff,0x8c,0xff,0x8b,0xff,0x8d,0xff, +0x95,0xff,0x9d,0xff,0xb1,0xff,0xba,0xff,0xaa,0xff,0xa6,0xff, +0xb3,0xff,0xb9,0xff,0xbb,0xff,0xb7,0xff,0xa8,0xff,0x9b,0xff, +0x90,0xff,0x86,0xff,0x87,0xff,0x7f,0xff,0x67,0xff,0x67,0xff, +0x7b,0xff,0x88,0xff,0x9c,0xff,0xbf,0xff,0xd4,0xff,0xce,0xff, +0xc9,0xff,0xcd,0xff,0xba,0xff,0x8b,0xff,0x7b,0xff,0x96,0xff, +0xa5,0xff,0xa0,0xff,0x9e,0xff,0x9a,0xff,0xab,0xff,0xd6,0xff, +0xf3,0xff,0x17,0x0,0x5a,0x0,0x7b,0x0,0x81,0x0,0xb5,0x0, +0xed,0x0,0xed,0x0,0xda,0x0,0xca,0x0,0xbb,0x0,0xba,0x0, +0xa6,0x0,0x70,0x0,0x4c,0x0,0x34,0x0,0x3,0x0,0xe1,0xff, +0xe6,0xff,0xe5,0xff,0xd7,0xff,0xd8,0xff,0xef,0xff,0xf,0x0, +0x2a,0x0,0x3f,0x0,0x5e,0x0,0x81,0x0,0x91,0x0,0x99,0x0, +0xb1,0x0,0xc4,0x0,0xb5,0x0,0xa0,0x0,0xa1,0x0,0xa3,0x0, +0x98,0x0,0x9c,0x0,0xb2,0x0,0xb3,0x0,0x9d,0x0,0x90,0x0, +0x96,0x0,0x93,0x0,0x7e,0x0,0x6c,0x0,0x64,0x0,0x5d,0x0, +0x61,0x0,0x6e,0x0,0x64,0x0,0x4b,0x0,0x49,0x0,0x59,0x0, +0x67,0x0,0x75,0x0,0x76,0x0,0x70,0x0,0x76,0x0,0x77,0x0, +0x75,0x0,0x8e,0x0,0xaa,0x0,0xae,0x0,0xb6,0x0,0xba,0x0, +0xab,0x0,0xa2,0x0,0x9d,0x0,0x8a,0x0,0x7a,0x0,0x67,0x0, +0x47,0x0,0x40,0x0,0x51,0x0,0x4a,0x0,0x37,0x0,0x38,0x0, +0x3b,0x0,0x31,0x0,0x2f,0x0,0x44,0x0,0x51,0x0,0x41,0x0, +0x30,0x0,0x27,0x0,0xb,0x0,0xfb,0xff,0x7,0x0,0xfa,0xff, +0xdd,0xff,0xdf,0xff,0xe3,0xff,0xe8,0xff,0x4,0x0,0xa,0x0, +0xfc,0xff,0xe,0x0,0x1c,0x0,0xd,0x0,0xb,0x0,0x4,0x0, +0xe9,0xff,0xe0,0xff,0xce,0xff,0x97,0xff,0x5c,0xff,0x27,0xff, +0xfe,0xfe,0xf3,0xfe,0xf3,0xfe,0xfb,0xfe,0x24,0xff,0x5a,0xff, +0x9c,0xff,0xe5,0xff,0x6,0x0,0x11,0x0,0x32,0x0,0x36,0x0, +0xb,0x0,0xf2,0xff,0xe9,0xff,0xba,0xff,0x74,0xff,0x3e,0xff, +0x1e,0xff,0x5,0xff,0xf6,0xfe,0xfe,0xfe,0xb,0xff,0x14,0xff, +0x24,0xff,0x2e,0xff,0x34,0xff,0x4e,0xff,0x67,0xff,0x70,0xff, +0x85,0xff,0x92,0xff,0x8f,0xff,0xac,0xff,0xc3,0xff,0xac,0xff, +0xa2,0xff,0xa5,0xff,0x8d,0xff,0x7f,0xff,0x82,0xff,0x72,0xff, +0x6d,0xff,0x78,0xff,0x78,0xff,0x83,0xff,0x9d,0xff,0xb1,0xff, +0xd0,0xff,0xf1,0xff,0xfa,0xff,0xf9,0xff,0xfe,0xff,0xb,0x0, +0x1b,0x0,0x16,0x0,0x15,0x0,0x35,0x0,0x43,0x0,0x2b,0x0, +0x18,0x0,0x9,0x0,0xfb,0xff,0x9,0x0,0x17,0x0,0x10,0x0, +0x7,0x0,0xfa,0xff,0xf3,0xff,0xb,0x0,0x2b,0x0,0x39,0x0, +0x3e,0x0,0x49,0x0,0x59,0x0,0x60,0x0,0x5c,0x0,0x61,0x0, +0x5d,0x0,0x44,0x0,0x4d,0x0,0x6f,0x0,0x75,0x0,0x7a,0x0, +0x91,0x0,0x91,0x0,0x92,0x0,0xa6,0x0,0x93,0x0,0x68,0x0, +0x63,0x0,0x6d,0x0,0x5c,0x0,0x4c,0x0,0x55,0x0,0x58,0x0, +0x44,0x0,0x3e,0x0,0x53,0x0,0x5c,0x0,0x5b,0x0,0x6d,0x0, +0x79,0x0,0x72,0x0,0x78,0x0,0x82,0x0,0x7d,0x0,0x7a,0x0, +0x82,0x0,0x7c,0x0,0x5c,0x0,0x38,0x0,0x2c,0x0,0x2a,0x0, +0x1e,0x0,0x16,0x0,0x12,0x0,0x3,0x0,0x3,0x0,0x1d,0x0, +0x3d,0x0,0x5c,0x0,0x6e,0x0,0x73,0x0,0x82,0x0,0x8c,0x0, +0x8f,0x0,0xb5,0x0,0xd8,0x0,0xc5,0x0,0xb8,0x0,0xc7,0x0, +0xb8,0x0,0x8d,0x0,0x65,0x0,0x43,0x0,0x2b,0x0,0x13,0x0, +0xf9,0xff,0xee,0xff,0xd9,0xff,0xa6,0xff,0x81,0xff,0x80,0xff, +0x84,0xff,0x8e,0xff,0xa7,0xff,0xc5,0xff,0xda,0xff,0xdb,0xff, +0xc8,0xff,0xaf,0xff,0xab,0xff,0xc1,0xff,0xd0,0xff,0xd7,0xff, +0xf5,0xff,0x4,0x0,0xe4,0xff,0xdb,0xff,0xf0,0xff,0xdb,0xff, +0xc1,0xff,0xd4,0xff,0xde,0xff,0xca,0xff,0xbb,0xff,0xa3,0xff, +0x7e,0xff,0x5f,0xff,0x44,0xff,0x2a,0xff,0x10,0xff,0xf5,0xfe, +0xf6,0xfe,0x9,0xff,0x3,0xff,0xf3,0xfe,0xec,0xfe,0xe3,0xfe, +0xef,0xfe,0x1f,0xff,0x4c,0xff,0x65,0xff,0x78,0xff,0x8d,0xff, +0xa9,0xff,0xc8,0xff,0xe8,0xff,0x3,0x0,0xb,0x0,0xb,0x0, +0xd,0x0,0xfb,0xff,0xdc,0xff,0xcb,0xff,0xc5,0xff,0xbb,0xff, +0xad,0xff,0x8c,0xff,0x6c,0xff,0x5e,0xff,0x57,0xff,0x5d,0xff, +0x6a,0xff,0x5a,0xff,0x47,0xff,0x52,0xff,0x52,0xff,0x4b,0xff, +0x72,0xff,0xb4,0xff,0xe3,0xff,0x0,0x0,0x13,0x0,0x20,0x0, +0x2a,0x0,0x26,0x0,0x1f,0x0,0x1f,0x0,0x1c,0x0,0x19,0x0, +0x2b,0x0,0x3d,0x0,0x35,0x0,0x25,0x0,0x2f,0x0,0x52,0x0, +0x65,0x0,0x53,0x0,0x36,0x0,0x22,0x0,0x10,0x0,0xfe,0xff, +0xfd,0xff,0x13,0x0,0x2b,0x0,0x2f,0x0,0x24,0x0,0x12,0x0, +0xfe,0xff,0xf6,0xff,0xf7,0xff,0xfc,0xff,0x22,0x0,0x5d,0x0, +0x72,0x0,0x6e,0x0,0x87,0x0,0xad,0x0,0xd0,0x0,0xf2,0x0, +0xfa,0x0,0xe4,0x0,0xcf,0x0,0xb1,0x0,0x8c,0x0,0x83,0x0, +0x87,0x0,0x7b,0x0,0x78,0x0,0x7e,0x0,0x72,0x0,0x60,0x0, +0x69,0x0,0x7e,0x0,0x77,0x0,0x4f,0x0,0x3b,0x0,0x5e,0x0, +0x88,0x0,0x8c,0x0,0x85,0x0,0x81,0x0,0x6e,0x0,0x5d,0x0, +0x5a,0x0,0x5f,0x0,0x6c,0x0,0x74,0x0,0x6f,0x0,0x7e,0x0, +0x97,0x0,0x8d,0x0,0x72,0x0,0x64,0x0,0x52,0x0,0x41,0x0, +0x3b,0x0,0x37,0x0,0x42,0x0,0x52,0x0,0x45,0x0,0x36,0x0, +0x3c,0x0,0x26,0x0,0xfa,0xff,0xeb,0xff,0xf2,0xff,0xef,0xff, +0xda,0xff,0xb7,0xff,0xa4,0xff,0xa9,0xff,0x9a,0xff,0x72,0xff, +0x4e,0xff,0x3d,0xff,0x3e,0xff,0x46,0xff,0x4c,0xff,0x67,0xff, +0x98,0xff,0xd9,0xff,0x32,0x0,0x86,0x0,0xbf,0x0,0x1,0x1, +0x3a,0x1,0x2a,0x1,0xe3,0x0,0x92,0x0,0x40,0x0,0xf6,0xff, +0xac,0xff,0x5e,0xff,0x32,0xff,0x1c,0xff,0xf8,0xfe,0xd3,0xfe, +0xb6,0xfe,0x9a,0xfe,0xa5,0xfe,0xca,0xfe,0xd5,0xfe,0xda,0xfe, +0xff,0xfe,0x36,0xff,0x78,0xff,0xbd,0xff,0xf0,0xff,0x11,0x0, +0x2f,0x0,0x57,0x0,0x7d,0x0,0x82,0x0,0x65,0x0,0x3f,0x0, +0x16,0x0,0xd3,0xff,0x70,0xff,0x1f,0xff,0x11,0xff,0x1d,0xff, +0x12,0xff,0x11,0xff,0x1e,0xff,0x17,0xff,0x14,0xff,0x23,0xff, +0x2b,0xff,0x3e,0xff,0x5b,0xff,0x65,0xff,0x72,0xff,0x8a,0xff, +0x9c,0xff,0xc0,0xff,0xed,0xff,0xf5,0xff,0xeb,0xff,0xe5,0xff, +0xda,0xff,0xd6,0xff,0xc8,0xff,0xa2,0xff,0x97,0xff,0xb5,0xff, +0xcd,0xff,0xe2,0xff,0xe,0x0,0x4a,0x0,0x85,0x0,0xa1,0x0, +0x89,0x0,0x64,0x0,0x4b,0x0,0x3a,0x0,0x30,0x0,0x23,0x0, +0x5,0x0,0xde,0xff,0xbb,0xff,0xa4,0xff,0x99,0xff,0x8d,0xff, +0x87,0xff,0x93,0xff,0xa9,0xff,0xbf,0xff,0xca,0xff,0xc7,0xff, +0xda,0xff,0x8,0x0,0x2d,0x0,0x44,0x0,0x63,0x0,0x82,0x0, +0x98,0x0,0x9e,0x0,0x9c,0x0,0xa4,0x0,0xb5,0x0,0xcc,0x0, +0xf1,0x0,0x15,0x1,0x39,0x1,0x65,0x1,0x5f,0x1,0x17,0x1, +0xdc,0x0,0xaf,0x0,0x64,0x0,0x1f,0x0,0xf2,0xff,0xcc,0xff, +0xc1,0xff,0xca,0xff,0xc0,0xff,0xa7,0xff,0x9b,0xff,0xaf,0xff, +0xdf,0xff,0xc,0x0,0x38,0x0,0x71,0x0,0x93,0x0,0xa0,0x0, +0xb7,0x0,0xc5,0x0,0xcd,0x0,0xf2,0x0,0x20,0x1,0x2f,0x1, +0x24,0x1,0x1a,0x1,0x2f,0x1,0x3f,0x1,0x1b,0x1,0xff,0x0, +0x4,0x1,0xe6,0x0,0xc3,0x0,0xcc,0x0,0xbe,0x0,0x91,0x0, +0x73,0x0,0x52,0x0,0x35,0x0,0x2a,0x0,0xd,0x0,0xfc,0xff, +0xf,0x0,0xfd,0xff,0xd3,0xff,0xda,0xff,0xfd,0xff,0x2e,0x0, +0x7c,0x0,0xbc,0x0,0xf0,0x0,0x2e,0x1,0x42,0x1,0x36,0x1, +0x43,0x1,0x3a,0x1,0x6,0x1,0xe3,0x0,0xcd,0x0,0xa2,0x0, +0x6e,0x0,0x32,0x0,0xe9,0xff,0x9b,0xff,0x49,0xff,0x9,0xff, +0xe4,0xfe,0xcd,0xfe,0xda,0xfe,0x10,0xff,0x3b,0xff,0x50,0xff, +0x69,0xff,0x78,0xff,0x8f,0xff,0xd4,0xff,0x18,0x0,0x3e,0x0, +0x67,0x0,0x85,0x0,0x77,0x0,0x5b,0x0,0x4f,0x0,0x5a,0x0, +0x72,0x0,0x65,0x0,0x3f,0x0,0x40,0x0,0x52,0x0,0x3d,0x0, +0x1a,0x0,0xf0,0xff,0xaf,0xff,0x6f,0xff,0x38,0xff,0x6,0xff, +0xf0,0xfe,0xcf,0xfe,0x83,0xfe,0x62,0xfe,0x7f,0xfe,0x86,0xfe, +0x87,0xfe,0xbe,0xfe,0x10,0xff,0x60,0xff,0x9f,0xff,0xb8,0xff, +0xcc,0xff,0xf6,0xff,0x1c,0x0,0x3f,0x0,0x57,0x0,0x4b,0x0, +0x32,0x0,0x1b,0x0,0x0,0x0,0xf2,0xff,0xd1,0xff,0x8c,0xff, +0x70,0xff,0x76,0xff,0x50,0xff,0x2d,0xff,0x3b,0xff,0x33,0xff, +0x12,0xff,0xd,0xff,0xb,0xff,0x2,0xff,0xf4,0xfe,0xd4,0xfe, +0xc5,0xfe,0xe1,0xfe,0xf7,0xfe,0x9,0xff,0x36,0xff,0x5b,0xff, +0x67,0xff,0x6d,0xff,0x69,0xff,0x63,0xff,0x72,0xff,0x97,0xff, +0xcc,0xff,0x14,0x0,0x56,0x0,0x80,0x0,0x9b,0x0,0xad,0x0, +0x9a,0x0,0x5e,0x0,0x21,0x0,0xf3,0xff,0xc1,0xff,0x96,0xff, +0x71,0xff,0x37,0xff,0x2,0xff,0xe5,0xfe,0xbd,0xfe,0x96,0xfe, +0x97,0xfe,0xab,0xfe,0xda,0xfe,0x2e,0xff,0x6b,0xff,0x83,0xff, +0xaa,0xff,0xd4,0xff,0xed,0xff,0x15,0x0,0x49,0x0,0x7d,0x0, +0xb4,0x0,0xc9,0x0,0xac,0x0,0x8e,0x0,0x80,0x0,0x6f,0x0, +0x64,0x0,0x74,0x0,0x8c,0x0,0x82,0x0,0x56,0x0,0x3f,0x0, +0x4a,0x0,0x4a,0x0,0x47,0x0,0x5b,0x0,0x67,0x0,0x51,0x0, +0x30,0x0,0xa,0x0,0xe1,0xff,0xce,0xff,0xdb,0xff,0xf3,0xff, +0x1,0x0,0x2,0x0,0x12,0x0,0x3d,0x0,0x66,0x0,0x81,0x0, +0x9f,0x0,0xbe,0x0,0xd4,0x0,0xec,0x0,0x2,0x1,0x8,0x1, +0x10,0x1,0x14,0x1,0xf7,0x0,0xdd,0x0,0xe3,0x0,0xdd,0x0, +0xca,0x0,0xc9,0x0,0xb3,0x0,0x7e,0x0,0x69,0x0,0x71,0x0, +0x71,0x0,0x6f,0x0,0x60,0x0,0x4e,0x0,0x64,0x0,0x81,0x0, +0x77,0x0,0x6e,0x0,0x78,0x0,0x89,0x0,0xa7,0x0,0xc3,0x0, +0xcf,0x0,0xdf,0x0,0xde,0x0,0xc0,0x0,0xaf,0x0,0xa9,0x0, +0x96,0x0,0x91,0x0,0x9d,0x0,0x99,0x0,0x7e,0x0,0x5d,0x0, +0x4a,0x0,0x44,0x0,0x28,0x0,0x1,0x0,0x1,0x0,0x11,0x0, +0x1a,0x0,0x35,0x0,0x50,0x0,0x52,0x0,0x4e,0x0,0x46,0x0, +0x3f,0x0,0x56,0x0,0x68,0x0,0x57,0x0,0x48,0x0,0x3f,0x0, +0x22,0x0,0x8,0x0,0xfe,0xff,0xed,0xff,0xdd,0xff,0xd4,0xff, +0xc0,0xff,0xab,0xff,0xa1,0xff,0x92,0xff,0x81,0xff,0x91,0xff, +0xba,0xff,0xd0,0xff,0xd6,0xff,0xe1,0xff,0xe5,0xff,0xea,0xff, +0xf6,0xff,0xdd,0xff,0xaa,0xff,0xa1,0xff,0xb1,0xff,0xb6,0xff, +0xc2,0xff,0xcc,0xff,0xbf,0xff,0xb2,0xff,0x99,0xff,0x6e,0xff, +0x64,0xff,0x71,0xff,0x63,0xff,0x52,0xff,0x48,0xff,0x2f,0xff, +0x20,0xff,0x26,0xff,0x24,0xff,0x20,0xff,0x2a,0xff,0x44,0xff, +0x71,0xff,0x8a,0xff,0x76,0xff,0x67,0xff,0x69,0xff,0x63,0xff, +0x67,0xff,0x7c,0xff,0x7f,0xff,0x7b,0xff,0x78,0xff,0x6e,0xff, +0x6d,0xff,0x6e,0xff,0x65,0xff,0x6f,0xff,0x88,0xff,0x8b,0xff, +0x94,0xff,0xb9,0xff,0xc4,0xff,0xa3,0xff,0x88,0xff,0x96,0xff, +0xb9,0xff,0xbc,0xff,0x96,0xff,0x7e,0xff,0x74,0xff,0x4f,0xff, +0x32,0xff,0x2f,0xff,0x17,0xff,0x9,0xff,0x44,0xff,0x8c,0xff, +0xa3,0xff,0xac,0xff,0xad,0xff,0xad,0xff,0xd8,0xff,0x13,0x0, +0x2f,0x0,0x52,0x0,0x8b,0x0,0x9e,0x0,0x99,0x0,0xa1,0x0, +0x91,0x0,0x55,0x0,0x1e,0x0,0xf8,0xff,0xd6,0xff,0xbd,0xff, +0xad,0xff,0xa2,0xff,0x9e,0xff,0x9b,0xff,0xa2,0xff,0xc1,0xff, +0xe1,0xff,0xee,0xff,0xf5,0xff,0xf4,0xff,0xf8,0xff,0x25,0x0, +0x55,0x0,0x58,0x0,0x55,0x0,0x65,0x0,0x66,0x0,0x65,0x0, +0x7a,0x0,0x92,0x0,0xa9,0x0,0xc4,0x0,0xd8,0x0,0xe2,0x0, +0xd3,0x0,0xaf,0x0,0xa1,0x0,0x94,0x0,0x62,0x0,0x3c,0x0, +0x38,0x0,0x29,0x0,0x25,0x0,0x39,0x0,0x35,0x0,0x33,0x0, +0x4d,0x0,0x4f,0x0,0x4c,0x0,0x69,0x0,0x74,0x0,0x6d,0x0, +0x81,0x0,0x8c,0x0,0x7c,0x0,0x6e,0x0,0x62,0x0,0x68,0x0, +0x72,0x0,0x46,0x0,0x5,0x0,0xe0,0xff,0xa7,0xff,0x5e,0xff, +0x3b,0xff,0x19,0xff,0xe9,0xfe,0xe3,0xfe,0x17,0xff,0x93,0xff, +0x57,0x0,0x18,0x1,0xbe,0x1,0x65,0x2,0xc7,0x2,0xaf,0x2, +0x50,0x2,0xd0,0x1,0x54,0x1,0xf,0x1,0xf1,0x0,0xd2,0x0, +0xb3,0x0,0x86,0x0,0x3e,0x0,0xe3,0xff,0x6a,0xff,0xdd,0xfe, +0x70,0xfe,0x38,0xfe,0x2c,0xfe,0x3d,0xfe,0x58,0xfe,0x79,0xfe, +0xa9,0xfe,0xeb,0xfe,0x48,0xff,0xb9,0xff,0x16,0x0,0x59,0x0, +0x9f,0x0,0xca,0x0,0xbc,0x0,0xae,0x0,0xb2,0x0,0x8d,0x0, +0x52,0x0,0x4a,0x0,0x5e,0x0,0x6a,0x0,0x84,0x0,0x8c,0x0, +0x55,0x0,0x5,0x0,0xb1,0xff,0x51,0xff,0x9,0xff,0xdc,0xfe, +0xa8,0xfe,0x8b,0xfe,0x8c,0xfe,0x7c,0xfe,0x68,0xfe,0x75,0xfe, +0xa5,0xfe,0xf1,0xfe,0x39,0xff,0x5b,0xff,0x69,0xff,0x6f,0xff, +0x75,0xff,0x97,0xff,0xbc,0xff,0xce,0xff,0x1,0x0,0x5b,0x0, +0xaa,0x0,0xef,0x0,0x19,0x1,0x8,0x1,0xd6,0x0,0x98,0x0, +0x4d,0x0,0x16,0x0,0x0,0x0,0x5,0x0,0x26,0x0,0x39,0x0, +0x17,0x0,0xe2,0xff,0xb6,0xff,0x95,0xff,0x88,0xff,0x8e,0xff, +0xa1,0xff,0xa7,0xff,0x7e,0xff,0x3c,0xff,0x0,0xff,0xce,0xfe, +0xd7,0xfe,0x24,0xff,0x69,0xff,0xb9,0xff,0x2d,0x0,0x68,0x0, +0x61,0x0,0x62,0x0,0x5b,0x0,0x57,0x0,0x88,0x0,0xbf,0x0, +0xdb,0x0,0xf7,0x0,0x6,0x1,0x5,0x1,0x0,0x1,0xdb,0x0, +0xb0,0x0,0x99,0x0,0x72,0x0,0x47,0x0,0x2c,0x0,0xf9,0xff, +0xc9,0xff,0xba,0xff,0xa2,0xff,0x93,0xff,0xaa,0xff,0xad,0xff, +0x9a,0xff,0xa6,0xff,0xb8,0xff,0xae,0xff,0xa6,0xff,0xc1,0xff, +0x7,0x0,0x4e,0x0,0x7b,0x0,0xb7,0x0,0xee,0x0,0xe7,0x0, +0xc7,0x0,0xce,0x0,0xec,0x0,0x2,0x1,0x2,0x1,0xf9,0x0, +0x2,0x1,0x4,0x1,0xe5,0x0,0xb0,0x0,0x6e,0x0,0x2e,0x0, +0xa,0x0,0xf0,0xff,0xdd,0xff,0xda,0xff,0xc0,0xff,0x9d,0xff, +0xb6,0xff,0xed,0xff,0x1,0x0,0x16,0x0,0x4f,0x0,0x84,0x0, +0x96,0x0,0xae,0x0,0xe6,0x0,0x5,0x1,0xf6,0x0,0xef,0x0, +0xe0,0x0,0xa1,0x0,0x64,0x0,0x43,0x0,0x27,0x0,0x1b,0x0, +0xc,0x0,0xdf,0xff,0xc6,0xff,0xba,0xff,0x8c,0xff,0x6d,0xff, +0x80,0xff,0x95,0xff,0xb2,0xff,0xe3,0xff,0xb,0x0,0x2b,0x0, +0x43,0x0,0x4d,0x0,0x54,0x0,0x51,0x0,0x4e,0x0,0x5e,0x0, +0x55,0x0,0x27,0x0,0x8,0x0,0xe6,0xff,0xb9,0xff,0xb1,0xff, +0xb2,0xff,0x9e,0xff,0x9a,0xff,0x87,0xff,0x4d,0xff,0x39,0xff, +0x53,0xff,0x64,0xff,0x74,0xff,0x87,0xff,0x89,0xff,0x8a,0xff, +0x8d,0xff,0x95,0xff,0xb1,0xff,0xd4,0xff,0xf1,0xff,0xf,0x0, +0x27,0x0,0x37,0x0,0x3c,0x0,0x1b,0x0,0xef,0xff,0xf2,0xff, +0xc,0x0,0xa,0x0,0xed,0xff,0xcc,0xff,0xa7,0xff,0x76,0xff, +0x4d,0xff,0x41,0xff,0x38,0xff,0x2b,0xff,0x43,0xff,0x75,0xff, +0x80,0xff,0x60,0xff,0x4b,0xff,0x5f,0xff,0x92,0xff,0xb8,0xff, +0xc6,0xff,0xe5,0xff,0x12,0x0,0x2d,0x0,0x42,0x0,0x59,0x0, +0x50,0x0,0x3b,0x0,0x40,0x0,0x42,0x0,0x22,0x0,0xfe,0xff, +0xe8,0xff,0xda,0xff,0xc9,0xff,0x9c,0xff,0x68,0xff,0x67,0xff, +0x7c,0xff,0x6e,0xff,0x64,0xff,0x7a,0xff,0x82,0xff,0x88,0xff, +0xb7,0xff,0xe4,0xff,0xf0,0xff,0xfc,0xff,0xe,0x0,0x1e,0x0, +0x2e,0x0,0x33,0x0,0x2e,0x0,0x24,0x0,0x1,0x0,0xd2,0xff, +0xbb,0xff,0xca,0xff,0xdb,0xff,0xcb,0xff,0xbc,0xff,0xe0,0xff, +0xfc,0xff,0xe0,0xff,0xc9,0xff,0xcb,0xff,0xc3,0xff,0xcf,0xff, +0xe9,0xff,0xe8,0xff,0xf5,0xff,0x18,0x0,0x1c,0x0,0x15,0x0, +0xf,0x0,0xe6,0xff,0xcd,0xff,0xe2,0xff,0xdf,0xff,0xc6,0xff, +0xd2,0xff,0xe6,0xff,0xed,0xff,0x6,0x0,0x23,0x0,0x26,0x0, +0x25,0x0,0x36,0x0,0x46,0x0,0x36,0x0,0xd,0x0,0xf5,0xff, +0xfc,0xff,0x5,0x0,0x3,0x0,0xa,0x0,0x30,0x0,0x60,0x0, +0x6b,0x0,0x5f,0x0,0x68,0x0,0x6e,0x0,0x47,0x0,0xc,0x0, +0xde,0xff,0xb7,0xff,0x9a,0xff,0x81,0xff,0x6c,0xff,0x78,0xff, +0x9c,0xff,0xb9,0xff,0xe1,0xff,0x15,0x0,0x36,0x0,0x5c,0x0, +0x96,0x0,0xac,0x0,0xaa,0x0,0xb2,0x0,0x8a,0x0,0x48,0x0, +0x42,0x0,0x41,0x0,0x18,0x0,0x13,0x0,0x1a,0x0,0xee,0xff, +0xe0,0xff,0xf3,0xff,0xcd,0xff,0xab,0xff,0xbc,0xff,0xb3,0xff, +0xa4,0xff,0xb6,0xff,0xac,0xff,0x9c,0xff,0xc6,0xff,0xf1,0xff, +0x10,0x0,0x56,0x0,0x99,0x0,0xa7,0x0,0xb2,0x0,0xc0,0x0, +0xad,0x0,0x90,0x0,0x87,0x0,0x80,0x0,0x7c,0x0,0xa4,0x0, +0xe5,0x0,0xf1,0x0,0xc9,0x0,0x93,0x0,0x44,0x0,0xf7,0xff, +0xdc,0xff,0xc7,0xff,0xa7,0xff,0xae,0xff,0xab,0xff,0x7a,0xff, +0x72,0xff,0x93,0xff,0x89,0xff,0x6e,0xff,0x73,0xff,0x96,0xff, +0xd8,0xff,0x15,0x0,0x30,0x0,0x4a,0x0,0x46,0x0,0x16,0x0, +0x13,0x0,0x36,0x0,0x3d,0x0,0x4e,0x0,0x62,0x0,0x3d,0x0, +0x15,0x0,0x4,0x0,0xc6,0xff,0x73,0xff,0x4a,0xff,0x44,0xff, +0x51,0xff,0x5a,0xff,0x43,0xff,0x2f,0xff,0x2f,0xff,0x28,0xff, +0x2d,0xff,0x45,0xff,0x5d,0xff,0x93,0xff,0xd5,0xff,0xed,0xff, +0x3,0x0,0x33,0x0,0x4e,0x0,0x6b,0x0,0xb1,0x0,0xff,0x0, +0x33,0x1,0x42,0x1,0x1e,0x1,0xe1,0x0,0xa0,0x0,0x5e,0x0, +0x30,0x0,0x3,0x0,0xb4,0xff,0x6b,0xff,0x42,0xff,0x17,0xff, +0x1,0xff,0x4,0xff,0xdf,0xfe,0xae,0xfe,0xcd,0xfe,0x10,0xff, +0x32,0xff,0x4c,0xff,0x72,0xff,0x9e,0xff,0xd8,0xff,0xfa,0xff, +0xef,0xff,0xf4,0xff,0x1c,0x0,0x3c,0x0,0x42,0x0,0x27,0x0, +0xf7,0xff,0xd8,0xff,0xbd,0xff,0x98,0xff,0x82,0xff,0x75,0xff, +0x6f,0xff,0x91,0xff,0xbf,0xff,0xd2,0xff,0xe5,0xff,0xeb,0xff, +0xc7,0xff,0xa8,0xff,0x97,0xff,0x78,0xff,0x6b,0xff,0x76,0xff, +0x84,0xff,0xa7,0xff,0xc2,0xff,0xaf,0xff,0xa7,0xff,0xb6,0xff, +0xae,0xff,0xb3,0xff,0xef,0xff,0x34,0x0,0x63,0x0,0x88,0x0, +0xa1,0x0,0xa5,0x0,0xa0,0x0,0xb3,0x0,0xe0,0x0,0xef,0x0, +0xd6,0x0,0xc2,0x0,0xb4,0x0,0x9c,0x0,0x84,0x0,0x6a,0x0, +0x5a,0x0,0x65,0x0,0x66,0x0,0x46,0x0,0x1e,0x0,0xf2,0xff, +0xcb,0xff,0xc6,0xff,0xe0,0xff,0xff,0xff,0x1f,0x0,0x48,0x0, +0x6c,0x0,0x78,0x0,0x80,0x0,0x91,0x0,0x95,0x0,0xa0,0x0, +0xcb,0x0,0xec,0x0,0xa,0x1,0x44,0x1,0x4e,0x1,0xe,0x1, +0xdb,0x0,0xc3,0x0,0xaf,0x0,0xb0,0x0,0x9b,0x0,0x64,0x0, +0x4f,0x0,0x49,0x0,0x20,0x0,0xf6,0xff,0xdc,0xff,0xd4,0xff, +0xf3,0xff,0x17,0x0,0x34,0x0,0x6e,0x0,0xa8,0x0,0xc8,0x0, +0xf1,0x0,0x19,0x1,0x23,0x1,0x8,0x1,0xba,0x0,0x66,0x0, +0x48,0x0,0x31,0x0,0xf6,0xff,0xa3,0xff,0x3a,0xff,0xcd,0xfe, +0x71,0xfe,0xf6,0xfd,0x6a,0xfd,0x69,0xfd,0x4b,0xfe,0xaa,0xff, +0x6,0x1,0x33,0x2,0x13,0x3,0x7b,0x3,0x70,0x3,0xfd,0x2, +0x2b,0x2,0x78,0x1,0x6e,0x1,0xd9,0x1,0x35,0x2,0x3d,0x2, +0xaa,0x1,0x94,0x0,0x8d,0xff,0xce,0xfe,0x1d,0xfe,0x7b,0xfd, +0x2f,0xfd,0x62,0xfd,0xd4,0xfd,0xf9,0xfd,0xa8,0xfd,0x64,0xfd, +0x9f,0xfd,0x3b,0xfe,0xf9,0xfe,0xd3,0xff,0xa6,0x0,0x1d,0x1, +0x2f,0x1,0xfe,0x0,0x9c,0x0,0x47,0x0,0x36,0x0,0x3e,0x0, +0x5c,0x0,0xae,0x0,0xe3,0x0,0xcd,0x0,0x85,0x0,0xe9,0xff, +0x23,0xff,0xc5,0xfe,0xe0,0xfe,0x1b,0xff,0x2a,0xff,0xe0,0xfe, +0x80,0xfe,0x4c,0xfe,0xfe,0xfd,0xaa,0xfd,0xd5,0xfd,0x5c,0xfe, +0xe7,0xfe,0x84,0xff,0xf4,0xff,0xdc,0xff,0x76,0xff,0x1c,0xff, +0xed,0xfe,0xfe,0xfe,0x49,0xff,0xb3,0xff,0x31,0x0,0x9b,0x0, +0xa2,0x0,0x3e,0x0,0xe4,0xff,0xda,0xff,0xdf,0xff,0xed,0xff, +0x40,0x0,0xaa,0x0,0xe0,0x0,0xce,0x0,0x59,0x0,0xcd,0xff, +0xb7,0xff,0xf0,0xff,0x2f,0x0,0x86,0x0,0xa8,0x0,0x52,0x0, +0xe3,0xff,0x78,0xff,0xf0,0xfe,0x90,0xfe,0x83,0xfe,0xb6,0xfe, +0x28,0xff,0xab,0xff,0xfb,0xff,0x18,0x0,0x14,0x0,0x6,0x0, +0xf,0x0,0x34,0x0,0x72,0x0,0xab,0x0,0xb0,0x0,0xaf,0x0, +0xd4,0x0,0xdb,0x0,0xb1,0x0,0x95,0x0,0x92,0x0,0xa6,0x0, +0xd7,0x0,0xfa,0x0,0xf2,0x0,0xde,0x0,0xd6,0x0,0xd2,0x0, +0xb5,0x0,0x79,0x0,0x56,0x0,0x70,0x0,0xa0,0x0,0xb3,0x0, +0xa1,0x0,0x79,0x0,0x46,0x0,0x9,0x0,0xdb,0xff,0xe3,0xff, +0x28,0x0,0x8e,0x0,0xdb,0x0,0xf2,0x0,0xed,0x0,0xcf,0x0, +0x92,0x0,0x74,0x0,0x91,0x0,0xb6,0x0,0xdf,0x0,0x1c,0x1, +0x56,0x1,0x84,0x1,0x96,0x1,0x7d,0x1,0x5e,0x1,0x4f,0x1, +0x3f,0x1,0x39,0x1,0x38,0x1,0x21,0x1,0xf,0x1,0xc,0x1, +0xf2,0x0,0xc5,0x0,0xa4,0x0,0x94,0x0,0x93,0x0,0x87,0x0, +0x62,0x0,0x33,0x0,0xf9,0xff,0xce,0xff,0xdb,0xff,0xe7,0xff, +0xb7,0xff,0x98,0xff,0xba,0xff,0xda,0xff,0xe3,0xff,0xf8,0xff, +0x14,0x0,0x3f,0x0,0x7a,0x0,0x7f,0x0,0x42,0x0,0x25,0x0, +0x3f,0x0,0x56,0x0,0x7b,0x0,0xbd,0x0,0xdd,0x0,0xcc,0x0, +0x9d,0x0,0x51,0x0,0x9,0x0,0xca,0xff,0x81,0xff,0x6d,0xff, +0x98,0xff,0x9b,0xff,0x77,0xff,0x4d,0xff,0xf8,0xfe,0xb7,0xfe, +0xc3,0xfe,0xd2,0xfe,0xff,0xfe,0x6f,0xff,0xab,0xff,0xad,0xff, +0xc4,0xff,0xb8,0xff,0x94,0xff,0xa6,0xff,0xb3,0xff,0xcb,0xff, +0x2e,0x0,0x68,0x0,0x40,0x0,0x16,0x0,0xe7,0xff,0xa7,0xff, +0x89,0xff,0x69,0xff,0x3c,0xff,0x3d,0xff,0x3f,0xff,0x1c,0xff, +0x8,0xff,0x7,0xff,0xc,0xff,0x22,0xff,0x22,0xff,0x12,0xff, +0x2b,0xff,0x51,0xff,0x6c,0xff,0x94,0xff,0xa8,0xff,0x91,0xff, +0x86,0xff,0x99,0xff,0xa9,0xff,0xa2,0xff,0x76,0xff,0x49,0xff, +0x47,0xff,0x47,0xff,0x22,0xff,0x6,0xff,0xe,0xff,0x2a,0xff, +0x59,0xff,0x85,0xff,0x7b,0xff,0x55,0xff,0x43,0xff,0x35,0xff, +0x36,0xff,0x60,0xff,0x8e,0xff,0xaf,0xff,0xe6,0xff,0x17,0x0, +0x19,0x0,0x15,0x0,0x1f,0x0,0x1d,0x0,0x28,0x0,0x4c,0x0, +0x55,0x0,0x34,0x0,0xd,0x0,0xef,0xff,0xd9,0xff,0xcc,0xff, +0xbf,0xff,0xa6,0xff,0x89,0xff,0x79,0xff,0x71,0xff,0x6b,0xff, +0x75,0xff,0x88,0xff,0x8f,0xff,0xb3,0xff,0x5,0x0,0x41,0x0, +0x4f,0x0,0x69,0x0,0x9c,0x0,0xd5,0x0,0x10,0x1,0x2f,0x1, +0x1d,0x1,0x3,0x1,0xe6,0x0,0xa1,0x0,0x4f,0x0,0x1d,0x0, +0xf6,0xff,0xd4,0xff,0xf0,0xff,0x3f,0x0,0x5a,0x0,0x19,0x0, +0xc7,0xff,0xbc,0xff,0x7,0x0,0x60,0x0,0x83,0x0,0x94,0x0, +0xd1,0x0,0x17,0x1,0x25,0x1,0xf9,0x0,0xaf,0x0,0x6a,0x0, +0x54,0x0,0x52,0x0,0x37,0x0,0xa,0x0,0xd1,0xff,0x8a,0xff, +0x5a,0xff,0x48,0xff,0x36,0xff,0x3f,0xff,0x79,0xff,0xbb,0xff, +0x7,0x0,0x7e,0x0,0xf3,0x0,0x30,0x1,0x4c,0x1,0x5f,0x1, +0x5b,0x1,0x4c,0x1,0x50,0x1,0x5b,0x1,0x3f,0x1,0xf7,0x0, +0xbb,0x0,0x9c,0x0,0x71,0x0,0x2b,0x0,0xe0,0xff,0xad,0xff, +0xa5,0xff,0xb2,0xff,0xbc,0xff,0xc7,0xff,0xc2,0xff,0x93,0xff, +0x69,0xff,0x6e,0xff,0x8c,0xff,0xb2,0xff,0xdf,0xff,0x7,0x0, +0x29,0x0,0x38,0x0,0x1c,0x0,0xf8,0xff,0xee,0xff,0xeb,0xff, +0xea,0xff,0xf6,0xff,0x4,0x0,0x25,0x0,0x6b,0x0,0x9f,0x0, +0xab,0x0,0xb3,0x0,0xac,0x0,0x8b,0x0,0x72,0x0,0x5c,0x0, +0x4b,0x0,0x62,0x0,0x5c,0x0,0xe9,0xff,0x6b,0xff,0x34,0xff, +0xff,0xfe,0xc9,0xfe,0xc5,0xfe,0xb8,0xfe,0x8d,0xfe,0x94,0xfe, +0xc8,0xfe,0xf0,0xfe,0x9,0xff,0x15,0xff,0x1d,0xff,0x4d,0xff, +0x9a,0xff,0xd1,0xff,0xeb,0xff,0xfa,0xff,0x5,0x0,0xfc,0xff, +0xda,0xff,0xbc,0xff,0xac,0xff,0xa1,0xff,0xb2,0xff,0xcb,0xff, +0xbc,0xff,0xb8,0xff,0xe5,0xff,0x13,0x0,0x31,0x0,0x31,0x0, +0xef,0xff,0xab,0xff,0x9a,0xff,0x8d,0xff,0x92,0xff,0xc0,0xff, +0xd3,0xff,0xbc,0xff,0xa3,0xff,0x83,0xff,0x70,0xff,0x73,0xff, +0x64,0xff,0x57,0xff,0x6c,0xff,0x6f,0xff,0x5b,0xff,0x57,0xff, +0x58,0xff,0x58,0xff,0x6c,0xff,0x82,0xff,0x94,0xff,0xa9,0xff, +0xb5,0xff,0xa3,0xff,0x76,0xff,0x5e,0xff,0x8a,0xff,0xdb,0xff, +0x21,0x0,0x5b,0x0,0x79,0x0,0x6f,0x0,0x5f,0x0,0x50,0x0, +0x2e,0x0,0xa,0x0,0xf4,0xff,0xf1,0xff,0xfa,0xff,0xea,0xff, +0xaa,0xff,0x61,0xff,0x46,0xff,0x60,0xff,0x7c,0xff,0x6b,0xff, +0x47,0xff,0x30,0xff,0x2b,0xff,0x3b,0xff,0x4e,0xff,0x63,0xff, +0x98,0xff,0xdb,0xff,0x10,0x0,0x50,0x0,0x88,0x0,0x8f,0x0, +0x98,0x0,0xb6,0x0,0xad,0x0,0x97,0x0,0xb8,0x0,0xe3,0x0, +0xd3,0x0,0xa4,0x0,0x8b,0x0,0x83,0x0,0x6b,0x0,0x3a,0x0, +0x2,0x0,0xe6,0xff,0x1,0x0,0x33,0x0,0x3e,0x0,0x24,0x0, +0x6,0x0,0xec,0xff,0xde,0xff,0xe0,0xff,0xf0,0xff,0x1f,0x0, +0x5e,0x0,0x7f,0x0,0x88,0x0,0x8a,0x0,0x69,0x0,0x25,0x0, +0xfb,0xff,0xc,0x0,0x3f,0x0,0x74,0x0,0xa5,0x0,0xba,0x0, +0xb5,0x0,0xc4,0x0,0xd2,0x0,0xbc,0x0,0xbc,0x0,0xcb,0x0, +0x9b,0x0,0x66,0x0,0x6a,0x0,0x57,0x0,0x1e,0x0,0xfe,0xff, +0xf4,0xff,0x0,0x0,0x23,0x0,0x2f,0x0,0x24,0x0,0x1c,0x0, +0xf,0x0,0x1d,0x0,0x40,0x0,0x3b,0x0,0x26,0x0,0x31,0x0, +0x45,0x0,0x62,0x0,0x7b,0x0,0x69,0x0,0x45,0x0,0x35,0x0, +0x31,0x0,0x38,0x0,0x33,0x0,0x1a,0x0,0x28,0x0,0x57,0x0, +0x67,0x0,0x4e,0x0,0x29,0x0,0x29,0x0,0x62,0x0,0x81,0x0, +0x6c,0x0,0x5f,0x0,0x4e,0x0,0x21,0x0,0xef,0xff,0xbb,0xff, +0xb6,0xff,0xf7,0xff,0x8,0x0,0xdc,0xff,0xd3,0xff,0xbf,0xff, +0x89,0xff,0x94,0xff,0xc2,0xff,0xdd,0xff,0xd,0x0,0x26,0x0, +0x3,0x0,0xf5,0xff,0xeb,0xff,0xaf,0xff,0x92,0xff,0xa6,0xff, +0xa0,0xff,0x81,0xff,0x52,0xff,0x3,0xff,0xb1,0xfe,0x77,0xfe, +0x64,0xfe,0xa8,0xfe,0x3a,0xff,0xcb,0xff,0x3e,0x0,0xac,0x0, +0x0,0x1,0x1b,0x1,0xf8,0x0,0xa5,0x0,0x48,0x0,0x20,0x0, +0x34,0x0,0x50,0x0,0x40,0x0,0xec,0xff,0x7f,0xff,0x4a,0xff, +0x3d,0xff,0x9,0xff,0xbb,0xfe,0x96,0xfe,0x9e,0xfe,0xa6,0xfe, +0x8a,0xfe,0x59,0xfe,0x50,0xfe,0x73,0xfe,0x9b,0xfe,0xd9,0xfe, +0x37,0xff,0x97,0xff,0xf3,0xff,0x52,0x0,0x97,0x0,0xa6,0x0, +0x7b,0x0,0x42,0x0,0x1f,0x0,0x4,0x0,0xef,0xff,0xfe,0xff, +0x17,0x0,0x19,0x0,0x2,0x0,0xcd,0xff,0x92,0xff,0x7c,0xff, +0x6f,0xff,0x50,0xff,0x39,0xff,0x2e,0xff,0x28,0xff,0x2c,0xff, +0x32,0xff,0x46,0xff,0x7f,0xff,0xd2,0xff,0x2f,0x0,0x77,0x0, +0x80,0x0,0x5a,0x0,0x24,0x0,0xd1,0xff,0x7b,0xff,0x63,0xff, +0x99,0xff,0xfd,0xff,0x4d,0x0,0x68,0x0,0x69,0x0,0x5a,0x0, +0x26,0x0,0xdb,0xff,0xa6,0xff,0xb0,0xff,0xee,0xff,0x20,0x0, +0x37,0x0,0x55,0x0,0x6a,0x0,0x6a,0x0,0x77,0x0,0x87,0x0, +0x87,0x0,0x93,0x0,0x9e,0x0,0x8b,0x0,0x6a,0x0,0x3c,0x0, +0x9,0x0,0xf1,0xff,0xe6,0xff,0xcc,0xff,0xb4,0xff,0xbb,0xff, +0xe8,0xff,0x22,0x0,0x46,0x0,0x65,0x0,0x8e,0x0,0xa1,0x0, +0xa4,0x0,0xb7,0x0,0xbd,0x0,0xb2,0x0,0xbe,0x0,0xcc,0x0, +0xb2,0x0,0x96,0x0,0x98,0x0,0x99,0x0,0x95,0x0,0x99,0x0, +0x96,0x0,0x8b,0x0,0x82,0x0,0x6c,0x0,0x5a,0x0,0x6e,0x0, +0x89,0x0,0x8c,0x0,0x9d,0x0,0xc0,0x0,0xdb,0x0,0xfa,0x0, +0x5,0x1,0xdc,0x0,0xb2,0x0,0x95,0x0,0x61,0x0,0x3f,0x0, +0x42,0x0,0x2e,0x0,0xf,0x0,0x2,0x0,0xf1,0xff,0xf8,0xff, +0x22,0x0,0x35,0x0,0x42,0x0,0x73,0x0,0xa1,0x0,0xb9,0x0, +0xc7,0x0,0xc0,0x0,0xc2,0x0,0xdd,0x0,0xdc,0x0,0xc7,0x0, +0xca,0x0,0xbc,0x0,0x83,0x0,0x46,0x0,0x11,0x0,0xe4,0xff, +0xc8,0xff,0xac,0xff,0x95,0xff,0x93,0xff,0x8a,0xff,0x75,0xff, +0x66,0xff,0x55,0xff,0x5c,0xff,0xaf,0xff,0x17,0x0,0x4b,0x0, +0x64,0x0,0x6e,0x0,0x4f,0x0,0x2d,0x0,0x17,0x0,0xe7,0xff, +0xc4,0xff,0xd1,0xff,0xd9,0xff,0xd4,0xff,0xef,0xff,0xf,0x0, +0x1,0x0,0xd4,0xff,0xaf,0xff,0xb7,0xff,0xe1,0xff,0xf2,0xff, +0xde,0xff,0xc2,0xff,0x9f,0xff,0x79,0xff,0x61,0xff,0x5a,0xff, +0x6f,0xff,0x92,0xff,0xa5,0xff,0xad,0xff,0xa9,0xff,0x8e,0xff, +0x84,0xff,0x93,0xff,0x8e,0xff,0x84,0xff,0xa0,0xff,0xd7,0xff, +0x10,0x0,0x2b,0x0,0x24,0x0,0x2a,0x0,0x3e,0x0,0x27,0x0, +0xfd,0xff,0xe6,0xff,0xc2,0xff,0x93,0xff,0x7f,0xff,0x78,0xff, +0x5a,0xff,0x22,0xff,0xfb,0xfe,0x1a,0xff,0x56,0xff,0x68,0xff, +0x72,0xff,0xa1,0xff,0xcb,0xff,0xd3,0xff,0xd7,0xff,0xeb,0xff, +0xfa,0xff,0xf7,0xff,0xf5,0xff,0x10,0x0,0x36,0x0,0x3d,0x0, +0x23,0x0,0xfc,0xff,0xe3,0xff,0xdd,0xff,0xd8,0xff,0xcc,0xff, +0xbf,0xff,0xa4,0xff,0x7f,0xff,0x71,0xff,0x87,0xff,0xa8,0xff, +0xb3,0xff,0xac,0xff,0xb9,0xff,0xcd,0xff,0xc5,0xff,0xbd,0xff, +0xc2,0xff,0xb5,0xff,0xb7,0xff,0xed,0xff,0x24,0x0,0x3e,0x0, +0x46,0x0,0x38,0x0,0x2e,0x0,0x40,0x0,0x4c,0x0,0x48,0x0, +0x4a,0x0,0x45,0x0,0x3b,0x0,0x36,0x0,0x28,0x0,0x1c,0x0, +0x1c,0x0,0x1a,0x0,0x21,0x0,0x32,0x0,0x38,0x0,0x3f,0x0, +0x3b,0x0,0xc,0x0,0xdf,0xff,0xd7,0xff,0xd9,0xff,0xec,0xff, +0xb,0x0,0x15,0x0,0x1f,0x0,0x24,0x0,0x5,0x0,0xfc,0xff, +0x23,0x0,0x48,0x0,0x78,0x0,0xc5,0x0,0xf5,0x0,0xfc,0x0, +0xdf,0x0,0xac,0x0,0xa5,0x0,0xca,0x0,0xdf,0x0,0x1,0x1, +0x2e,0x1,0x1b,0x1,0xdc,0x0,0x93,0x0,0x22,0x0,0xb2,0xff, +0x83,0xff,0x83,0xff,0x94,0xff,0xa7,0xff,0xc2,0xff,0xfe,0xff, +0x38,0x0,0x46,0x0,0x38,0x0,0x21,0x0,0x1e,0x0,0x3d,0x0, +0x35,0x0,0x7,0x0,0x9,0x0,0x17,0x0,0x3,0x0,0xd,0x0, +0x21,0x0,0x19,0x0,0x3f,0x0,0x7e,0x0,0x6f,0x0,0x24,0x0, +0xdc,0xff,0xa1,0xff,0x90,0xff,0xa1,0xff,0xaa,0xff,0xb5,0xff, +0xd3,0xff,0xfa,0xff,0x14,0x0,0x17,0x0,0x20,0x0,0x33,0x0, +0x21,0x0,0xf6,0xff,0xd6,0xff,0xab,0xff,0x96,0xff,0xd4,0xff, +0x15,0x0,0x7,0x0,0xe9,0xff,0xf3,0xff,0x2,0x0,0x9,0x0, +0x16,0x0,0xd,0x0,0xda,0xff,0xa6,0xff,0x92,0xff,0x8e,0xff, +0x92,0xff,0xb3,0xff,0xe2,0xff,0xfd,0xff,0x8,0x0,0x26,0x0, +0x53,0x0,0x54,0x0,0x1f,0x0,0xee,0xff,0xca,0xff,0xa5,0xff, +0xb8,0xff,0xfb,0xff,0x26,0x0,0x35,0x0,0x2c,0x0,0x6,0x0, +0xf1,0xff,0xe9,0xff,0xd1,0xff,0xe4,0xff,0x11,0x0,0x2,0x0, +0xd0,0xff,0x9a,0xff,0x5c,0xff,0x54,0xff,0x81,0xff,0xb0,0xff, +0x3,0x0,0x57,0x0,0x58,0x0,0x34,0x0,0x1f,0x0,0x6,0x0, +0x0,0x0,0xfa,0xff,0xe1,0xff,0xf8,0xff,0x26,0x0,0x17,0x0, +0xed,0xff,0xbd,0xff,0x83,0xff,0x82,0xff,0xa6,0xff,0xa4,0xff, +0x9d,0xff,0x98,0xff,0x76,0xff,0x69,0xff,0x84,0xff,0xa8,0xff, +0xd7,0xff,0xef,0xff,0xe8,0xff,0xfb,0xff,0xc,0x0,0xf6,0xff, +0xfb,0xff,0xe,0x0,0xf1,0xff,0xef,0xff,0x25,0x0,0x3a,0x0, +0x37,0x0,0x5a,0x0,0x84,0x0,0x8f,0x0,0x96,0x0,0xa6,0x0, +0xa4,0x0,0x8d,0x0,0x70,0x0,0x53,0x0,0x47,0x0,0x5d,0x0, +0x80,0x0,0x89,0x0,0x81,0x0,0x81,0x0,0x71,0x0,0x3b,0x0, +0x4,0x0,0xec,0xff,0xe8,0xff,0xfb,0xff,0x29,0x0,0x44,0x0, +0x38,0x0,0x31,0x0,0x45,0x0,0x63,0x0,0x86,0x0,0x9a,0x0, +0x94,0x0,0x91,0x0,0x83,0x0,0x57,0x0,0x4e,0x0,0x7c,0x0, +0x91,0x0,0x73,0x0,0x58,0x0,0x5b,0x0,0x63,0x0,0x5c,0x0, +0x56,0x0,0x49,0x0,0x7,0x0,0xaa,0xff,0x7e,0xff,0x79,0xff, +0x6f,0xff,0x69,0xff,0x73,0xff,0x82,0xff,0x93,0xff,0xa1,0xff, +0xa9,0xff,0xa7,0xff,0xaf,0xff,0xe3,0xff,0x1a,0x0,0x29,0x0, +0x38,0x0,0x4c,0x0,0x53,0x0,0x77,0x0,0x8e,0x0,0x5c,0x0, +0x45,0x0,0x6e,0x0,0x63,0x0,0x33,0x0,0x29,0x0,0xa,0x0, +0xc8,0xff,0x99,0xff,0x8b,0xff,0xb1,0xff,0xf0,0xff,0xfc,0xff, +0xdc,0xff,0xb0,0xff,0x75,0xff,0x54,0xff,0x59,0xff,0x4a,0xff, +0x3b,0xff,0x4b,0xff,0x56,0xff,0x6e,0xff,0xaa,0xff,0xd0,0xff, +0xda,0xff,0xfa,0xff,0x19,0x0,0x20,0x0,0x29,0x0,0x27,0x0, +0x1,0x0,0xe4,0xff,0xf7,0xff,0xf,0x0,0xe,0x0,0xfd,0xff, +0xdb,0xff,0xaa,0xff,0x60,0xff,0xed,0xfe,0x86,0xfe,0x6b,0xfe, +0x75,0xfe,0x8e,0xfe,0xe3,0xfe,0x5b,0xff,0xbc,0xff,0x10,0x0, +0x55,0x0,0x80,0x0,0xa4,0x0,0xb0,0x0,0x8b,0x0,0x64,0x0, +0x62,0x0,0x6e,0x0,0x78,0x0,0x79,0x0,0x66,0x0,0x36,0x0, +0xfd,0xff,0xcb,0xff,0x9a,0xff,0x6f,0xff,0x64,0xff,0x62,0xff, +0x48,0xff,0x21,0xff,0xf5,0xfe,0xe5,0xfe,0x1b,0xff,0x59,0xff, +0x81,0xff,0xd7,0xff,0x33,0x0,0x36,0x0,0xe,0x0,0xe1,0xff, +0xa5,0xff,0x88,0xff,0x9e,0xff,0xc4,0xff,0xf7,0xff,0x36,0x0, +0x7e,0x0,0xbb,0x0,0xb3,0x0,0x71,0x0,0x31,0x0,0xec,0xff, +0xb9,0xff,0xbb,0xff,0xac,0xff,0x88,0xff,0x8f,0xff,0x88,0xff, +0x65,0xff,0x72,0xff,0x8f,0xff,0xa0,0xff,0xdd,0xff,0x18,0x0, +0x12,0x0,0xeb,0xff,0xba,0xff,0x9e,0xff,0xbc,0xff,0xf5,0xff, +0x42,0x0,0xab,0x0,0xe8,0x0,0xdd,0x0,0xac,0x0,0x62,0x0, +0x34,0x0,0x45,0x0,0x67,0x0,0x81,0x0,0x94,0x0,0x9f,0x0, +0xb4,0x0,0xac,0x0,0x5e,0x0,0x2b,0x0,0x55,0x0,0x8d,0x0, +0xa3,0x0,0xae,0x0,0xb2,0x0,0xa6,0x0,0x76,0x0,0x38,0x0, +0x18,0x0,0x4,0x0,0xfc,0xff,0x23,0x0,0x4f,0x0,0x57,0x0, +0x51,0x0,0x3c,0x0,0x19,0x0,0x0,0x0,0xeb,0xff,0xf9,0xff, +0x27,0x0,0x25,0x0,0x8,0x0,0xa,0x0,0xf2,0xff,0xcf,0xff, +0xed,0xff,0x14,0x0,0x1f,0x0,0x44,0x0,0x6e,0x0,0x83,0x0, +0x81,0x0,0x4b,0x0,0xb,0x0,0x0,0x0,0xfa,0xff,0xeb,0xff, +0xfb,0xff,0xb,0x0,0x19,0x0,0x3c,0x0,0x39,0x0,0xfc,0xff, +0xc4,0xff,0x9c,0xff,0x74,0xff,0x6e,0xff,0x8c,0xff,0xb1,0xff, +0xd4,0xff,0xe7,0xff,0xde,0xff,0xcb,0xff,0xd1,0xff,0xe2,0xff, +0xdc,0xff,0xe2,0xff,0xfe,0xff,0xfb,0xff,0xe4,0xff,0xe7,0xff, +0xe7,0xff,0xe2,0xff,0xf5,0xff,0xff,0xff,0x2,0x0,0x1d,0x0, +0x18,0x0,0xe6,0xff,0xc7,0xff,0x9c,0xff,0x58,0xff,0x3e,0xff, +0x43,0xff,0x48,0xff,0x7c,0xff,0xc1,0xff,0xcc,0xff,0xb8,0xff, +0xad,0xff,0x9a,0xff,0x87,0xff,0x79,0xff,0x72,0xff,0x83,0xff, +0xab,0xff,0xcc,0xff,0xdd,0xff,0xdc,0xff,0xc4,0xff,0xa2,0xff, +0x8e,0xff,0x8f,0xff,0x8e,0xff,0x8f,0xff,0xa6,0xff,0xb8,0xff, +0xa1,0xff,0x8e,0xff,0xa1,0xff,0xaa,0xff,0x9b,0xff,0xa1,0xff, +0xc0,0xff,0xd4,0xff,0xd0,0xff,0xbb,0xff,0x98,0xff,0x6e,0xff, +0x5c,0xff,0x77,0xff,0x9f,0xff,0xb5,0xff,0xc9,0xff,0xd5,0xff, +0xc6,0xff,0xb8,0xff,0xc0,0xff,0xcb,0xff,0xdc,0xff,0xf1,0xff, +0xeb,0xff,0xcb,0xff,0xb4,0xff,0xbe,0xff,0xe2,0xff,0x0,0x0, +0xb,0x0,0x6,0x0,0xdb,0xff,0x99,0xff,0x87,0xff,0xa5,0xff, +0xba,0xff,0xba,0xff,0xbf,0xff,0xc5,0xff,0xc4,0xff,0xc9,0xff, +0xef,0xff,0x27,0x0,0x3e,0x0,0x38,0x0,0x3e,0x0,0x44,0x0, +0x3a,0x0,0x35,0x0,0x37,0x0,0x47,0x0,0x63,0x0,0x69,0x0, +0x5a,0x0,0x52,0x0,0x46,0x0,0x3f,0x0,0x4d,0x0,0x4c,0x0, +0x3c,0x0,0x3f,0x0,0x3b,0x0,0x2d,0x0,0x35,0x0,0x30,0x0, +0x1e,0x0,0x39,0x0,0x58,0x0,0x45,0x0,0x3a,0x0,0x43,0x0, +0x2b,0x0,0x10,0x0,0x1d,0x0,0x29,0x0,0x1f,0x0,0x18,0x0, +0x21,0x0,0x35,0x0,0x43,0x0,0x3b,0x0,0x2a,0x0,0x1e,0x0, +0x14,0x0,0x18,0x0,0x3a,0x0,0x62,0x0,0x76,0x0,0x7e,0x0, +0x82,0x0,0x76,0x0,0x5a,0x0,0x47,0x0,0x4c,0x0,0x5c,0x0, +0x58,0x0,0x3f,0x0,0x2a,0x0,0x7,0x0,0xc4,0xff,0x9d,0xff, +0xb0,0xff,0xc0,0xff,0xb9,0xff,0xbf,0xff,0xc5,0xff,0xc0,0xff, +0xca,0xff,0xf2,0xff,0x29,0x0,0x57,0x0,0x6f,0x0,0x84,0x0, +0x98,0x0,0x81,0x0,0x4e,0x0,0x3b,0x0,0x3d,0x0,0x28,0x0, +0x1,0x0,0xde,0xff,0xcb,0xff,0xd3,0xff,0xe4,0xff,0xde,0xff, +0xc6,0xff,0xa9,0xff,0x98,0xff,0xaa,0xff,0xd5,0xff,0xee,0xff, +0xe6,0xff,0xd5,0xff,0xce,0xff,0xd6,0xff,0xee,0xff,0x25,0x0, +0x68,0x0,0x75,0x0,0x40,0x0,0x13,0x0,0xf8,0xff,0xce,0xff, +0xb6,0xff,0xc2,0xff,0xd1,0xff,0xf3,0xff,0x1c,0x0,0x15,0x0, +0x3,0x0,0x8,0x0,0xfa,0xff,0xe4,0xff,0xd8,0xff,0xb9,0xff, +0xae,0xff,0xc9,0xff,0xc0,0xff,0xa9,0xff,0xbf,0xff,0xd4,0xff, +0xdf,0xff,0x14,0x0,0x4f,0x0,0x6a,0x0,0x71,0x0,0x5d,0x0, +0x39,0x0,0x27,0x0,0x28,0x0,0x3a,0x0,0x3a,0x0,0xd,0x0, +0xf7,0xff,0xe,0x0,0xfb,0xff,0xbf,0xff,0xa2,0xff,0x95,0xff, +0x80,0xff,0x76,0xff,0x7c,0xff,0x92,0xff,0xaa,0xff,0xa8,0xff, +0xa1,0xff,0xad,0xff,0xcb,0xff,0x11,0x0,0x7f,0x0,0xd4,0x0, +0xef,0x0,0xf8,0x0,0x0,0x1,0xe7,0x0,0xa7,0x0,0x71,0x0, +0x71,0x0,0x86,0x0,0x8b,0x0,0x92,0x0,0x9e,0x0,0x89,0x0, +0x5e,0x0,0x45,0x0,0x2a,0x0,0x0,0x0,0xf5,0xff,0x10,0x0, +0x1b,0x0,0x12,0x0,0x6,0x0,0xf5,0xff,0x2,0x0,0x3a,0x0, +0x62,0x0,0x75,0x0,0x97,0x0,0x99,0x0,0x64,0x0,0x39,0x0, +0x33,0x0,0x3d,0x0,0x50,0x0,0x6d,0x0,0x86,0x0,0x89,0x0, +0x76,0x0,0x6e,0x0,0x79,0x0,0x78,0x0,0x6c,0x0,0x5e,0x0, +0x4c,0x0,0x4a,0x0,0x52,0x0,0x57,0x0,0x6a,0x0,0x85,0x0, +0x97,0x0,0xa2,0x0,0x9c,0x0,0x95,0x0,0xb6,0x0,0xd9,0x0, +0xd4,0x0,0xc4,0x0,0xa2,0x0,0x6e,0x0,0x67,0x0,0x87,0x0, +0x98,0x0,0x9a,0x0,0x9b,0x0,0x9c,0x0,0x95,0x0,0x71,0x0, +0x51,0x0,0x4a,0x0,0x2e,0x0,0x7,0x0,0xfa,0xff,0xec,0xff, +0xe3,0xff,0xed,0xff,0xe7,0xff,0xee,0xff,0xe,0x0,0xfb,0xff, +0xe5,0xff,0x12,0x0,0x2b,0x0,0x1e,0x0,0x3d,0x0,0x73,0x0, +0x9c,0x0,0xc5,0x0,0xd1,0x0,0xc8,0x0,0xce,0x0,0xc4,0x0, +0xa9,0x0,0x95,0x0,0x6a,0x0,0x15,0x0,0xc1,0xff,0x92,0xff, +0x8c,0xff,0x96,0xff,0x9d,0xff,0x9d,0xff,0x7d,0xff,0x4e,0xff, +0x33,0xff,0xe,0xff,0xdf,0xfe,0xe1,0xfe,0x5,0xff,0x30,0xff, +0x74,0xff,0xae,0xff,0xc5,0xff,0xd6,0xff,0xd9,0xff,0xd5,0xff, +0xe5,0xff,0xe8,0xff,0xea,0xff,0xa,0x0,0xd,0x0,0xe7,0xff, +0xb9,0xff,0x55,0xff,0xda,0xfe,0xc6,0xfe,0x12,0xff,0x76,0xff, +0xe8,0xff,0x3a,0x0,0x35,0x0,0xf3,0xff,0xaa,0xff,0x82,0xff, +0x82,0xff,0x93,0xff,0xca,0xff,0x2d,0x0,0x79,0x0,0x84,0x0, +0x45,0x0,0xb0,0xff,0x1a,0xff,0xf6,0xfe,0x26,0xff,0x5b,0xff, +0x85,0xff,0x8b,0xff,0x54,0xff,0xf,0xff,0xe7,0xfe,0xcf,0xfe, +0xde,0xfe,0x36,0xff,0xa4,0xff,0xf3,0xff,0x21,0x0,0xe,0x0, +0xac,0xff,0x4a,0xff,0x22,0xff,0x3f,0xff,0xa1,0xff,0x0,0x0, +0x20,0x0,0x28,0x0,0x15,0x0,0xbf,0xff,0x70,0xff,0x70,0xff, +0x9d,0xff,0xde,0xff,0x22,0x0,0x49,0x0,0x52,0x0,0x26,0x0, +0xc2,0xff,0x75,0xff,0x6d,0xff,0x8d,0xff,0xd9,0xff,0x38,0x0, +0x63,0x0,0x58,0x0,0x4a,0x0,0x37,0x0,0x1a,0x0,0xd,0x0, +0x1e,0x0,0x35,0x0,0x34,0x0,0x27,0x0,0x2d,0x0,0x3f,0x0, +0x58,0x0,0x83,0x0,0xa6,0x0,0x9f,0x0,0x79,0x0,0x54,0x0, +0x44,0x0,0x53,0x0,0x65,0x0,0x65,0x0,0x62,0x0,0x68,0x0, +0x73,0x0,0x87,0x0,0xa6,0x0,0xc6,0x0,0xe9,0x0,0xfe,0x0, +0xe5,0x0,0xaf,0x0,0x80,0x0,0x65,0x0,0x6d,0x0,0x86,0x0, +0x84,0x0,0x7b,0x0,0x91,0x0,0x95,0x0,0x6f,0x0,0x54,0x0, +0x4e,0x0,0x4e,0x0,0x73,0x0,0xb0,0x0,0xce,0x0,0xac,0x0, +0x61,0x0,0x2c,0x0,0x20,0x0,0x14,0x0,0x2d,0x0,0x86,0x0, +0xba,0x0,0x91,0x0,0x55,0x0,0x29,0x0,0x17,0x0,0x32,0x0, +0x59,0x0,0x82,0x0,0xb0,0x0,0xb8,0x0,0xa4,0x0,0x99,0x0, +0x6a,0x0,0x32,0x0,0x3b,0x0,0x5c,0x0,0x6d,0x0,0x99,0x0, +0xb4,0x0,0x91,0x0,0x64,0x0,0x3b,0x0,0x12,0x0,0x15,0x0, +0x31,0x0,0x30,0x0,0x24,0x0,0x21,0x0,0x25,0x0,0x3e,0x0, +0x61,0x0,0x77,0x0,0x70,0x0,0x48,0x0,0x19,0x0,0xfd,0xff, +0xe5,0xff,0xd2,0xff,0xd0,0xff,0xd2,0xff,0xcd,0xff,0xc9,0xff, +0xc1,0xff,0xc6,0xff,0xed,0xff,0x4,0x0,0xe0,0xff,0xa1,0xff, +0x74,0xff,0x5c,0xff,0x5b,0xff,0x73,0xff,0x99,0xff,0xc9,0xff, +0xea,0xff,0xd0,0xff,0x9a,0xff,0x88,0xff,0x8d,0xff,0x87,0xff, +0x8a,0xff,0x95,0xff,0x92,0xff,0x8c,0xff,0x82,0xff,0x61,0xff, +0x50,0xff,0x5c,0xff,0x56,0xff,0x46,0xff,0x4d,0xff,0x53,0xff, +0x4a,0xff,0x41,0xff,0x30,0xff,0x16,0xff,0x7,0xff,0x9,0xff, +0x15,0xff,0x28,0xff,0x3d,0xff,0x4a,0xff,0x47,0xff,0x41,0xff, +0x4e,0xff,0x63,0xff,0x69,0xff,0x73,0xff,0x7c,0xff,0x6f,0xff, +0x66,0xff,0x6f,0xff,0x6c,0xff,0x72,0xff,0xad,0xff,0xee,0xff, +0xed,0xff,0xbf,0xff,0x95,0xff,0x7d,0xff,0x76,0xff,0x83,0xff, +0x9a,0xff,0x96,0xff,0x7c,0xff,0x7a,0xff,0x97,0xff,0xad,0xff, +0xb9,0xff,0xc0,0xff,0xbc,0xff,0xce,0xff,0xf9,0xff,0x7,0x0, +0x4,0x0,0x17,0x0,0x2c,0x0,0x35,0x0,0x39,0x0,0x26,0x0, +0x9,0x0,0xf8,0xff,0xe1,0xff,0xd2,0xff,0xda,0xff,0xdb,0xff, +0xde,0xff,0xf7,0xff,0xfc,0xff,0xf0,0xff,0x5,0x0,0x2c,0x0, +0x4c,0x0,0x72,0x0,0x8d,0x0,0x98,0x0,0xa4,0x0,0xa1,0x0, +0x82,0x0,0x5a,0x0,0x2f,0x0,0xb,0x0,0xfc,0xff,0xf0,0xff, +0xd3,0xff,0x9f,0xff,0x5c,0xff,0x16,0xff,0xc7,0xfe,0x7a,0xfe, +0x68,0xfe,0x9a,0xfe,0xea,0xfe,0x62,0xff,0xfb,0xff,0x82,0x0, +0xef,0x0,0x46,0x1,0x65,0x1,0x4e,0x1,0x20,0x1,0xfc,0x0, +0x3,0x1,0x26,0x1,0x39,0x1,0x46,0x1,0x56,0x1,0x54,0x1, +0x32,0x1,0xdc,0x0,0x62,0x0,0x1d,0x0,0x1a,0x0,0x7,0x0, +0xe6,0xff,0xd7,0xff,0xb2,0xff,0x8b,0xff,0x9f,0xff,0xc5,0xff, +0xe3,0xff,0x2b,0x0,0x8a,0x0,0xb4,0x0,0x94,0x0,0x4b,0x0, +0x13,0x0,0x12,0x0,0x24,0x0,0x2c,0x0,0x3f,0x0,0x5c,0x0, +0x7b,0x0,0x8d,0x0,0x66,0x0,0x29,0x0,0x20,0x0,0x10,0x0, +0xc8,0xff,0x9b,0xff,0x9c,0xff,0x98,0xff,0x97,0xff,0x91,0xff, +0x68,0xff,0x52,0xff,0x76,0xff,0xb3,0xff,0xf7,0xff,0x28,0x0, +0x34,0x0,0x36,0x0,0x23,0x0,0xf3,0xff,0xdf,0xff,0xf5,0xff, +0xb,0x0,0x24,0x0,0x3b,0x0,0x2b,0x0,0xfc,0xff,0xce,0xff, +0xae,0xff,0x99,0xff,0x90,0xff,0xa0,0xff,0xc1,0xff,0xca,0xff, +0xc1,0xff,0xb0,0xff,0x77,0xff,0x3e,0xff,0x50,0xff,0x8b,0xff, +0xa6,0xff,0x9f,0xff,0x91,0xff,0x93,0xff,0x97,0xff,0x82,0xff, +0x85,0xff,0xb2,0xff,0xc8,0xff,0xcf,0xff,0xe8,0xff,0xde,0xff, +0xb7,0xff,0xc3,0xff,0xda,0xff,0xc0,0xff,0xae,0xff,0xba,0xff, +0xb5,0xff,0xae,0xff,0xb6,0xff,0x9e,0xff,0x7e,0xff,0x8c,0xff, +0x9a,0xff,0x8d,0xff,0xa7,0xff,0xd9,0xff,0xd9,0xff,0xd4,0xff, +0xf1,0xff,0xec,0xff,0xbf,0xff,0xa8,0xff,0xa9,0xff,0xbb,0xff, +0xdb,0xff,0xef,0xff,0xf8,0xff,0xef,0xff,0xb3,0xff,0x78,0xff, +0x84,0xff,0xac,0xff,0xd1,0xff,0xb,0x0,0x39,0x0,0x3b,0x0, +0x36,0x0,0x38,0x0,0x25,0x0,0x1a,0x0,0x34,0x0,0x4a,0x0, +0x41,0x0,0x35,0x0,0x21,0x0,0xf3,0xff,0xdd,0xff,0xed,0xff, +0xfd,0xff,0x1d,0x0,0x4d,0x0,0x56,0x0,0x5c,0x0,0x83,0x0, +0x80,0x0,0x55,0x0,0x53,0x0,0x62,0x0,0x66,0x0,0x7f,0x0, +0x88,0x0,0x69,0x0,0x4d,0x0,0x2f,0x0,0xc,0x0,0xfd,0xff, +0xed,0xff,0xda,0xff,0xe5,0xff,0xf5,0xff,0xf9,0xff,0x1,0x0, +0x0,0x0,0xf9,0xff,0xf5,0xff,0xe3,0xff,0xe9,0xff,0x1c,0x0, +0x36,0x0,0x37,0x0,0x51,0x0,0x5c,0x0,0x38,0x0,0x19,0x0, +0x7,0x0,0xff,0xff,0x17,0x0,0x38,0x0,0x45,0x0,0x48,0x0, +0x3a,0x0,0x1c,0x0,0x12,0x0,0x23,0x0,0x47,0x0,0x79,0x0, +0x9b,0x0,0xad,0x0,0xd0,0x0,0xec,0x0,0xde,0x0,0xd3,0x0, +0xdb,0x0,0xc2,0x0,0x8f,0x0,0x7d,0x0,0x79,0x0,0x5c,0x0, +0x4b,0x0,0x65,0x0,0x7e,0x0,0x67,0x0,0x27,0x0,0xe3,0xff, +0xb5,0xff,0xa7,0xff,0xbc,0xff,0xdd,0xff,0xe0,0xff,0xe8,0xff, +0x22,0x0,0x52,0x0,0x43,0x0,0x33,0x0,0x32,0x0,0x11,0x0, +0xee,0xff,0xec,0xff,0xf1,0xff,0xee,0xff,0xea,0xff,0xe0,0xff, +0xd5,0xff,0xc8,0xff,0xb8,0xff,0xc0,0xff,0xd0,0xff,0xce,0xff, +0xd2,0xff,0xd5,0xff,0xbd,0xff,0xb9,0xff,0xbe,0xff,0x9e,0xff, +0x9f,0xff,0xde,0xff,0xf8,0xff,0xfb,0xff,0x19,0x0,0xfb,0xff, +0x9e,0xff,0x63,0xff,0x1a,0xff,0xb8,0xfe,0xb9,0xfe,0x17,0xff, +0x8b,0xff,0x27,0x0,0xaa,0x0,0xbd,0x0,0xb5,0x0,0xb1,0x0, +0x5a,0x0,0xf4,0xff,0xe2,0xff,0xf5,0xff,0x13,0x0,0x47,0x0, +0x5d,0x0,0x4d,0x0,0x34,0x0,0x6,0x0,0xe7,0xff,0x0,0x0, +0x1e,0x0,0x27,0x0,0x33,0x0,0x14,0x0,0xae,0xff,0x47,0xff, +0x15,0xff,0x21,0xff,0x63,0xff,0xbd,0xff,0xc,0x0,0x38,0x0, +0x35,0x0,0x4,0x0,0xb2,0xff,0x5d,0xff,0x36,0xff,0x41,0xff, +0x65,0xff,0xa5,0xff,0xeb,0xff,0x15,0x0,0x26,0x0,0xd,0x0, +0xba,0xff,0x6c,0xff,0x4b,0xff,0x44,0xff,0x63,0xff,0x8c,0xff, +0x82,0xff,0x53,0xff,0x19,0xff,0xf0,0xfe,0x21,0xff,0x9e,0xff, +0xfd,0xff,0x3e,0x0,0x76,0x0,0x72,0x0,0x43,0x0,0x1f,0x0, +0xa,0x0,0x16,0x0,0x42,0x0,0x61,0x0,0x81,0x0,0x99,0x0, +0x7d,0x0,0x50,0x0,0x31,0x0,0x1,0x0,0xdd,0xff,0xe0,0xff, +0xd7,0xff,0xcb,0xff,0xdd,0xff,0xd8,0xff,0xaf,0xff,0x95,0xff, +0x96,0xff,0xb2,0xff,0xe5,0xff,0x12,0x0,0x2d,0x0,0x36,0x0, +0x1a,0x0,0xef,0xff,0xe7,0xff,0xf7,0xff,0xfd,0xff,0xf,0x0, +0x45,0x0,0x75,0x0,0x86,0x0,0xa7,0x0,0xca,0x0,0xa7,0x0, +0x66,0x0,0x4a,0x0,0x33,0x0,0x1d,0x0,0x26,0x0,0x27,0x0, +0x1a,0x0,0x2b,0x0,0x41,0x0,0x4d,0x0,0x5e,0x0,0x4d,0x0, +0x1a,0x0,0xb,0x0,0x25,0x0,0x47,0x0,0x6e,0x0,0x7a,0x0, +0x61,0x0,0x4f,0x0,0x50,0x0,0x45,0x0,0x31,0x0,0x38,0x0, +0x5b,0x0,0x5e,0x0,0x28,0x0,0xfa,0xff,0xf6,0xff,0xf0,0xff, +0xef,0xff,0x18,0x0,0x5b,0x0,0x87,0x0,0x71,0x0,0x32,0x0, +0x1c,0x0,0x31,0x0,0x34,0x0,0x2f,0x0,0x3a,0x0,0x42,0x0, +0x3d,0x0,0x2b,0x0,0x20,0x0,0x32,0x0,0x41,0x0,0x39,0x0, +0x43,0x0,0x50,0x0,0x36,0x0,0x21,0x0,0x2c,0x0,0x2e,0x0, +0x26,0x0,0x25,0x0,0x2b,0x0,0x44,0x0,0x60,0x0,0x5c,0x0, +0x34,0x0,0xf6,0xff,0xbe,0xff,0xb8,0xff,0xd0,0xff,0xdd,0xff, +0xf2,0xff,0x11,0x0,0x18,0x0,0xc,0x0,0xfa,0xff,0xdf,0xff, +0xd0,0xff,0xcb,0xff,0xc0,0xff,0xcb,0xff,0xef,0xff,0xf7,0xff, +0xe7,0xff,0xde,0xff,0xcb,0xff,0xb5,0xff,0xc1,0xff,0xda,0xff, +0xe0,0xff,0xdb,0xff,0xcc,0xff,0xb7,0xff,0xb8,0xff,0xc3,0xff, +0xcf,0xff,0xeb,0xff,0x6,0x0,0x10,0x0,0x26,0x0,0x3f,0x0, +0x41,0x0,0x4c,0x0,0x6d,0x0,0x76,0x0,0x6d,0x0,0x69,0x0, +0x5d,0x0,0x58,0x0,0x6a,0x0,0x71,0x0,0x5a,0x0,0x3a,0x0, +0x1a,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0xef,0xff,0xcd,0xff, +0xcf,0xff,0xd7,0xff,0xd2,0xff,0xee,0xff,0x26,0x0,0x34,0x0, +0xe,0x0,0xdb,0xff,0xb1,0xff,0xab,0xff,0xb5,0xff,0xb1,0xff, +0xc2,0xff,0xdf,0xff,0xc9,0xff,0xa9,0xff,0xac,0xff,0x9e,0xff, +0x8c,0xff,0xa8,0xff,0xcb,0xff,0xe9,0xff,0x7,0x0,0xf0,0xff, +0xc0,0xff,0xc3,0xff,0xc6,0xff,0xa3,0xff,0x99,0xff,0xa7,0xff, +0x9f,0xff,0x88,0xff,0x5b,0xff,0xe,0xff,0xbf,0xfe,0x88,0xfe, +0x74,0xfe,0x8b,0xfe,0xc6,0xfe,0x30,0xff,0xc0,0xff,0x3b,0x0, +0x82,0x0,0xa6,0x0,0xa1,0x0,0x7b,0x0,0x5b,0x0,0x52,0x0, +0x69,0x0,0xa9,0x0,0xfb,0x0,0x3d,0x1,0x5c,0x1,0x4a,0x1, +0x12,0x1,0xdf,0x0,0xc9,0x0,0xc0,0x0,0xab,0x0,0x81,0x0, +0x41,0x0,0xf7,0xff,0xc0,0xff,0x9f,0xff,0x99,0xff,0xc2,0xff, +0x4,0x0,0x2d,0x0,0x3c,0x0,0x2d,0x0,0xe7,0xff,0x8b,0xff, +0x4b,0xff,0x2b,0xff,0x36,0xff,0x6b,0xff,0xa7,0xff,0xdf,0xff, +0xa,0x0,0x7,0x0,0xea,0xff,0xd7,0xff,0xbb,0xff,0x8e,0xff, +0x72,0xff,0x75,0xff,0x7d,0xff,0x71,0xff,0x69,0xff,0x83,0xff, +0x9d,0xff,0xa2,0xff,0xc8,0xff,0xc,0x0,0x38,0x0,0x46,0x0, +0x34,0x0,0xfd,0xff,0xd3,0xff,0xd2,0xff,0xe6,0xff,0x10,0x0, +0x43,0x0,0x56,0x0,0x4e,0x0,0x3c,0x0,0x1c,0x0,0x1,0x0, +0xfb,0xff,0xf3,0xff,0xe7,0xff,0xe5,0xff,0xe6,0xff,0xe3,0xff, +0xdf,0xff,0xdd,0xff,0xd4,0xff,0xc9,0xff,0xd9,0xff,0x4,0x0, +0x1e,0x0,0x1a,0x0,0x14,0x0,0x11,0x0,0x3,0x0,0xf2,0xff, +0xf9,0xff,0x12,0x0,0x16,0x0,0xf,0x0,0x16,0x0,0x17,0x0, +0x17,0x0,0x47,0x0,0x82,0x0,0x90,0x0,0x96,0x0,0xa6,0x0, +0xa9,0x0,0xb2,0x0,0xb7,0x0,0xa1,0x0,0x96,0x0,0xa1,0x0, +0x9e,0x0,0x9a,0x0,0x92,0x0,0x65,0x0,0x29,0x0,0xf7,0xff, +0xd3,0xff,0xcf,0xff,0xcd,0xff,0xbe,0xff,0xe4,0xff,0x2c,0x0, +0x39,0x0,0x22,0x0,0x1b,0x0,0x12,0x0,0x12,0x0,0x2e,0x0, +0x36,0x0,0x1b,0x0,0x10,0x0,0x2f,0x0,0x64,0x0,0x87,0x0, +0x83,0x0,0x76,0x0,0x76,0x0,0x61,0x0,0x2a,0x0,0x7,0x0, +0x14,0x0,0x2b,0x0,0x29,0x0,0x18,0x0,0xfb,0xff,0xd9,0xff, +0xe0,0xff,0x20,0x0,0x60,0x0,0x79,0x0,0x7d,0x0,0x6b,0x0, +0x3f,0x0,0x14,0x0,0x5,0x0,0x13,0x0,0x3f,0x0,0x7e,0x0, +0xb0,0x0,0xbf,0x0,0xb0,0x0,0x82,0x0,0x44,0x0,0x18,0x0, +0x9,0x0,0xf,0x0,0x34,0x0,0x61,0x0,0x64,0x0,0x50,0x0, +0x40,0x0,0x14,0x0,0xe2,0xff,0xf0,0xff,0x23,0x0,0x39,0x0, +0x39,0x0,0x2f,0x0,0x18,0x0,0x5,0x0,0xfe,0xff,0xfb,0xff, +0xc,0x0,0x48,0x0,0x97,0x0,0xc9,0x0,0xd9,0x0,0xeb,0x0, +0xe7,0x0,0xb1,0x0,0x8c,0x0,0xa2,0x0,0xb4,0x0,0xa2,0x0, +0x8a,0x0,0x69,0x0,0x3e,0x0,0x23,0x0,0x17,0x0,0x16,0x0, +0x31,0x0,0x3e,0x0,0x12,0x0,0xda,0xff,0xbe,0xff,0xa9,0xff, +0xa5,0xff,0xc1,0xff,0xe0,0xff,0x5,0x0,0x42,0x0,0x70,0x0, +0x6d,0x0,0x5d,0x0,0x48,0x0,0x20,0x0,0xfa,0xff,0xe5,0xff, +0xda,0xff,0xca,0xff,0xa8,0xff,0x95,0xff,0xa9,0xff,0xbc,0xff, +0xc6,0xff,0xe3,0xff,0xf0,0xff,0xda,0xff,0xd3,0xff,0xd7,0xff, +0xcc,0xff,0xc0,0xff,0x9a,0xff,0x6a,0xff,0x78,0xff,0xa3,0xff, +0xab,0xff,0xa2,0xff,0x7a,0xff,0x17,0xff,0xa8,0xfe,0x41,0xfe, +0xe2,0xfd,0xb8,0xfd,0xca,0xfd,0x16,0xfe,0xae,0xfe,0x56,0xff, +0xcf,0xff,0x32,0x0,0x7f,0x0,0x98,0x0,0x9a,0x0,0x99,0x0, +0x9d,0x0,0xc2,0x0,0xfb,0x0,0x2f,0x1,0x4d,0x1,0x2c,0x1, +0xe3,0x0,0xbc,0x0,0xc8,0x0,0xe2,0x0,0xda,0x0,0xa6,0x0, +0x80,0x0,0x63,0x0,0x1d,0x0,0xf4,0xff,0x2,0x0,0x5,0x0, +0x35,0x0,0xaa,0x0,0xd0,0x0,0x9d,0x0,0x60,0x0,0xd8,0xff, +0x32,0xff,0x0,0xff,0x4,0xff,0x5,0xff,0x49,0xff,0x77,0xff, +0x3d,0xff,0x16,0xff,0x14,0xff,0xe1,0xfe,0xbb,0xfe,0xcb,0xfe, +0xd3,0xfe,0xf3,0xfe,0x47,0xff,0x70,0xff,0x5d,0xff,0x4c,0xff, +0x25,0xff,0xf4,0xfe,0x24,0xff,0x9a,0xff,0xd4,0xff,0xd7,0xff, +0xdd,0xff,0xc4,0xff,0x8b,0xff,0x6d,0xff,0x78,0xff,0xb9,0xff, +0x32,0x0,0x8a,0x0,0x8e,0x0,0x72,0x0,0x51,0x0,0x2b,0x0, +0x14,0x0,0x13,0x0,0x31,0x0,0x70,0x0,0x98,0x0,0x8e,0x0, +0x71,0x0,0x48,0x0,0x22,0x0,0x23,0x0,0x3f,0x0,0x5f,0x0, +0x81,0x0,0x8e,0x0,0x82,0x0,0x70,0x0,0x37,0x0,0xd3,0xff, +0x94,0xff,0x99,0xff,0xa8,0xff,0xa6,0xff,0x9c,0xff,0x91,0xff, +0x9b,0xff,0xbc,0xff,0xd7,0xff,0xe3,0xff,0xf1,0xff,0x1,0x0, +0xb,0x0,0x13,0x0,0x13,0x0,0x3,0x0,0xf5,0xff,0x3,0x0, +0x2e,0x0,0x65,0x0,0x90,0x0,0xaf,0x0,0xc8,0x0,0xc0,0x0, +0x8d,0x0,0x68,0x0,0x6c,0x0,0x7c,0x0,0x90,0x0,0x9f,0x0, +0x91,0x0,0x8a,0x0,0x9f,0x0,0x90,0x0,0x57,0x0,0x44,0x0, +0x53,0x0,0x49,0x0,0x28,0x0,0x0,0x0,0xe0,0xff,0x6,0x0, +0x70,0x0,0xa8,0x0,0x8a,0x0,0x66,0x0,0x4f,0x0,0x20,0x0, +0xf9,0xff,0xf9,0xff,0xff,0xff,0xf1,0xff,0xd7,0xff,0xbc,0xff, +0xad,0xff,0xa8,0xff,0xa9,0xff,0xc4,0xff,0xde,0xff,0xcb,0xff, +0xb8,0xff,0xd5,0xff,0x6,0x0,0x36,0x0,0x6e,0x0,0xa0,0x0, +0xd2,0x0,0x4,0x1,0x12,0x1,0x0,0x1,0xee,0x0,0xc6,0x0, +0x7c,0x0,0x4b,0x0,0x57,0x0,0x72,0x0,0x69,0x0,0x50,0x0, +0x4e,0x0,0x50,0x0,0x42,0x0,0x30,0x0,0x25,0x0,0x1d,0x0, +0xd,0x0,0xdf,0xff,0xaa,0xff,0x92,0xff,0x77,0xff,0x5a,0xff, +0x65,0xff,0x77,0xff,0x83,0xff,0xa7,0xff,0x9d,0xff,0x5b,0xff, +0x4d,0xff,0x5f,0xff,0x58,0xff,0x88,0xff,0xe2,0xff,0x0,0x0, +0xe,0x0,0x30,0x0,0x22,0x0,0x9,0x0,0x1e,0x0,0x38,0x0, +0x4a,0x0,0x60,0x0,0x58,0x0,0x3d,0x0,0x28,0x0,0xfb,0xff, +0xc0,0xff,0xb2,0xff,0xd5,0xff,0xf6,0xff,0xec,0xff,0xd0,0xff, +0xd7,0xff,0xf5,0xff,0x15,0x0,0x45,0x0,0x62,0x0,0x4f,0x0, +0x30,0x0,0x5,0x0,0xc4,0xff,0xa1,0xff,0xa5,0xff,0xb4,0xff, +0xd8,0xff,0x1,0x0,0x6,0x0,0xf7,0xff,0xdb,0xff,0xa0,0xff, +0x69,0xff,0x48,0xff,0x20,0xff,0x3,0xff,0xd,0xff,0x20,0xff, +0x36,0xff,0x67,0xff,0x8f,0xff,0x7b,0xff,0x50,0xff,0x3d,0xff, +0x24,0xff,0xdc,0xfe,0x7e,0xfe,0x28,0xfe,0xe5,0xfd,0xc9,0xfd, +0xe6,0xfd,0x3c,0xfe,0xa3,0xfe,0xf2,0xfe,0x3d,0xff,0x9a,0xff, +0xc8,0xff,0xb4,0xff,0xae,0xff,0xce,0xff,0xfc,0xff,0x53,0x0, +0xcc,0x0,0x1a,0x1,0x1f,0x1,0xd,0x1,0x1a,0x1,0x32,0x1, +0x29,0x1,0x2b,0x1,0x58,0x1,0x59,0x1,0xf,0x1,0xc4,0x0, +0x89,0x0,0x59,0x0,0x58,0x0,0x7f,0x0,0xb4,0x0,0xde,0x0, +0xbe,0x0,0x4c,0x0,0xbd,0xff,0x24,0xff,0xa8,0xfe,0x85,0xfe, +0xa0,0xfe,0xd3,0xfe,0x1a,0xff,0x5b,0xff,0x86,0xff,0x99,0xff, +0x6c,0xff,0x1d,0xff,0xd,0xff,0x3e,0xff,0x65,0xff,0x78,0xff, +0x9f,0xff,0xcc,0xff,0xbc,0xff,0x77,0xff,0x57,0xff,0x5b,0xff, +0x4d,0xff,0x46,0xff,0x4d,0xff,0x2e,0xff,0x6,0xff,0xfb,0xfe, +0xf6,0xfe,0xff,0xfe,0x2c,0xff,0x70,0xff,0xbf,0xff,0xd,0x0, +0x39,0x0,0x34,0x0,0x11,0x0,0x5,0x0,0x26,0x0,0x5d,0x0, +0xad,0x0,0xa,0x1,0x32,0x1,0x29,0x1,0x16,0x1,0xd1,0x0, +0x73,0x0,0x55,0x0,0x5b,0x0,0x64,0x0,0x9b,0x0,0xd2,0x0, +0xce,0x0,0xb7,0x0,0xa2,0x0,0x8c,0x0,0x76,0x0,0x49,0x0, +0x12,0x0,0xfd,0xff,0xf6,0xff,0xe9,0xff,0xfa,0xff,0x2b,0x0, +0x4f,0x0,0x4a,0x0,0x2d,0x0,0x8,0x0,0xc9,0xff,0x7f,0xff, +0x58,0xff,0x3b,0xff,0x11,0xff,0xe,0xff,0x2c,0xff,0x3e,0xff, +0x68,0xff,0xa9,0xff,0xc9,0xff,0xcc,0xff,0xbd,0xff,0xa6,0xff, +0xc0,0xff,0xa,0x0,0x56,0x0,0xb0,0x0,0x3,0x1,0x16,0x1, +0x0,0x1,0xdc,0x0,0xac,0x0,0x87,0x0,0x65,0x0,0x3f,0x0, +0x3e,0x0,0x4b,0x0,0x27,0x0,0xf8,0xff,0x0,0x0,0x27,0x0, +0x3a,0x0,0x2f,0x0,0x19,0x0,0x6,0x0,0xf1,0xff,0xe3,0xff, +0xf2,0xff,0x16,0x0,0x40,0x0,0x71,0x0,0x9a,0x0,0x9d,0x0, +0x7f,0x0,0x61,0x0,0x52,0x0,0x4d,0x0,0x5a,0x0,0x74,0x0, +0x82,0x0,0x85,0x0,0x7c,0x0,0x4d,0x0,0x1d,0x0,0x15,0x0, +0xc,0x0,0xef,0xff,0xdc,0xff,0xcd,0xff,0xc8,0xff,0xf3,0xff, +0x35,0x0,0x5e,0x0,0x70,0x0,0x7a,0x0,0x8f,0x0,0xa9,0x0, +0xae,0x0,0xba,0x0,0xd9,0x0,0xc2,0x0,0x5b,0x0,0xe2,0xff, +0x79,0xff,0x40,0xff,0x5a,0xff,0x96,0xff,0xc1,0xff,0xed,0xff, +0x24,0x0,0x4c,0x0,0x5e,0x0,0x5e,0x0,0x4c,0x0,0x2a,0x0, +0xc,0x0,0x1,0x0,0xfa,0xff,0xed,0xff,0xe1,0xff,0xd8,0xff, +0xdd,0xff,0xf4,0xff,0xf7,0xff,0xd7,0xff,0xac,0xff,0x7a,0xff, +0x43,0xff,0x21,0xff,0x1d,0xff,0x36,0xff,0x68,0xff,0xa5,0xff, +0xe0,0xff,0xfd,0xff,0xfb,0xff,0xf,0x0,0x24,0x0,0xf8,0xff, +0xd0,0xff,0xe7,0xff,0xfd,0xff,0xf,0x0,0x4d,0x0,0x72,0x0, +0x53,0x0,0x32,0x0,0x1f,0x0,0xff,0xff,0xf0,0xff,0xa,0x0, +0x2e,0x0,0x30,0x0,0x12,0x0,0xf1,0xff,0xbe,0xff,0x75,0xff, +0x48,0xff,0x31,0xff,0xf5,0xfe,0xa2,0xfe,0x55,0xfe,0xff,0xfd, +0xaa,0xfd,0x5b,0xfd,0x15,0xfd,0x2,0xfd,0x2f,0xfd,0x8b,0xfd, +0x21,0xfe,0xca,0xfe,0x35,0xff,0x70,0xff,0xa2,0xff,0xbc,0xff, +0xd1,0xff,0xe,0x0,0x74,0x0,0xf4,0x0,0x72,0x1,0xde,0x1, +0x47,0x2,0x95,0x2,0x9b,0x2,0x7f,0x2,0x6c,0x2,0x40,0x2, +0xde,0x1,0x52,0x1,0xbe,0x0,0x42,0x0,0xdd,0xff,0x9e,0xff, +0xb2,0xff,0xf9,0xff,0x2b,0x0,0x50,0x0,0x6d,0x0,0x57,0x0, +0x35,0x0,0x41,0x0,0x52,0x0,0x55,0x0,0x77,0x0,0xa8,0x0, +0xaf,0x0,0x75,0x0,0x11,0x0,0xa1,0xff,0x35,0xff,0xd0,0xfe, +0x79,0xfe,0x24,0xfe,0xd7,0xfd,0xbc,0xfd,0xc2,0xfd,0xb2,0xfd, +0x9f,0xfd,0x95,0xfd,0x86,0xfd,0x9f,0xfd,0xef,0xfd,0x31,0xfe, +0x68,0xfe,0xbf,0xfe,0x8,0xff,0x2f,0xff,0x68,0xff,0xc1,0xff, +0x1d,0x0,0x6d,0x0,0xa7,0x0,0xc5,0x0,0xc9,0x0,0xc5,0x0, +0xe7,0x0,0x29,0x1,0x5e,0x1,0x90,0x1,0xdf,0x1,0x2a,0x2, +0x40,0x2,0x1a,0x2,0xe4,0x1,0xb4,0x1,0x6d,0x1,0x11,0x1, +0xcf,0x0,0xb9,0x0,0xd2,0x0,0x1e,0x1,0x5e,0x1,0x66,0x1, +0x6a,0x1,0x7b,0x1,0x6d,0x1,0x38,0x1,0xe1,0x0,0x67,0x0, +0xf4,0xff,0xa9,0xff,0x69,0xff,0x31,0xff,0x31,0xff,0x62,0xff, +0x8b,0xff,0xa3,0xff,0xb6,0xff,0xa6,0xff,0x6d,0xff,0x35,0xff, +0xf6,0xfe,0xa0,0xfe,0x60,0xfe,0x43,0xfe,0x45,0xfe,0x75,0xfe, +0xa9,0xfe,0xcb,0xfe,0x24,0xff,0xb3,0xff,0x2e,0x0,0xa3,0x0, +0x1f,0x1,0x6f,0x1,0x99,0x1,0xab,0x1,0x84,0x1,0x43,0x1, +0x17,0x1,0xe4,0x0,0xa1,0x0,0x72,0x0,0x4d,0x0,0x2c,0x0, +0x2e,0x0,0x47,0x0,0x58,0x0,0x6b,0x0,0x7d,0x0,0x6d,0x0, +0x54,0x0,0x67,0x0,0x8c,0x0,0x96,0x0,0x9b,0x0,0xc0,0x0, +0xef,0x0,0xc,0x1,0x20,0x1,0x40,0x1,0x61,0x1,0x59,0x1, +0x23,0x1,0xdc,0x0,0x98,0x0,0x6e,0x0,0x70,0x0,0x7e,0x0, +0x82,0x0,0x96,0x0,0xb9,0x0,0xb4,0x0,0x7a,0x0,0x30,0x0, +0xe2,0xff,0x77,0xff,0xb,0xff,0xd0,0xfe,0xb3,0xfe,0xad,0xfe, +0xee,0xfe,0x56,0xff,0xa3,0xff,0xe7,0xff,0x11,0x0,0xf6,0xff, +0xd0,0xff,0xbd,0xff,0x8e,0xff,0x6c,0xff,0x8e,0xff,0xd4,0xff, +0x27,0x0,0x8a,0x0,0xf1,0x0,0x4d,0x1,0x71,0x1,0x49,0x1, +0xa,0x1,0xbf,0x0,0x57,0x0,0x7,0x0,0xe1,0xff,0xc2,0xff, +0xc2,0xff,0xe4,0xff,0x7,0x0,0x35,0x0,0x5a,0x0,0x4b,0x0, +0x2b,0x0,0x1d,0x0,0x4,0x0,0xdb,0xff,0xbf,0xff,0xc7,0xff, +0xd9,0xff,0xd4,0xff,0xe9,0xff,0x3f,0x0,0x92,0x0,0xc3,0x0, +0xf4,0x0,0x7,0x1,0xf4,0x0,0xe6,0x0,0xce,0x0,0x9c,0x0, +0x76,0x0,0x4d,0x0,0x7,0x0,0xc2,0xff,0x82,0xff,0x31,0xff, +0xd4,0xfe,0x85,0xfe,0x42,0xfe,0xf9,0xfd,0xba,0xfd,0xab,0xfd, +0xb6,0xfd,0xb2,0xfd,0x9f,0xfd,0x79,0xfd,0x42,0xfd,0x8,0xfd, +0xb3,0xfc,0x52,0xfc,0x1f,0xfc,0x3,0xfc,0x4,0xfc,0x82,0xfc, +0x65,0xfd,0x65,0xfe,0x9e,0xff,0xe7,0x0,0xc7,0x1,0x40,0x2, +0x76,0x2,0x58,0x2,0xb,0x2,0xd2,0x1,0xbb,0x1,0xcd,0x1, +0x18,0x2,0x7f,0x2,0xd4,0x2,0xa,0x3,0x27,0x3,0x13,0x3, +0xce,0x2,0x8b,0x2,0x45,0x2,0xdd,0x1,0x86,0x1,0x49,0x1, +0xf8,0x0,0xb6,0x0,0xa7,0x0,0x98,0x0,0x7e,0x0,0x52,0x0, +0xe3,0xff,0x4e,0xff,0xd2,0xfe,0x63,0xfe,0xfd,0xfd,0xcb,0xfd, +0xd3,0xfd,0xf4,0xfd,0x18,0xfe,0x29,0xfe,0x1a,0xfe,0xef,0xfd, +0xa6,0xfd,0x3c,0xfd,0xd6,0xfc,0xaa,0xfc,0xae,0xfc,0xc7,0xfc, +0x11,0xfd,0x80,0xfd,0xd6,0xfd,0x20,0xfe,0x83,0xfe,0xf3,0xfe, +0x65,0xff,0xce,0xff,0x21,0x0,0x63,0x0,0x80,0x0,0x81,0x0, +0xa4,0x0,0xe1,0x0,0x22,0x1,0x94,0x1,0x5,0x2,0x10,0x2, +0xe4,0x1,0xab,0x1,0x52,0x1,0x20,0x1,0x30,0x1,0x41,0x1, +0x64,0x1,0xa7,0x1,0xcd,0x1,0xdc,0x1,0xea,0x1,0xd7,0x1, +0xad,0x1,0x8e,0x1,0x7c,0x1,0x70,0x1,0x6d,0x1,0x84,0x1, +0xb1,0x1,0xb0,0x1,0x82,0x1,0x5d,0x1,0x1d,0x1,0xb1,0x0, +0x54,0x0,0xfc,0xff,0x85,0xff,0x14,0xff,0xb8,0xfe,0x74,0xfe, +0x61,0xfe,0x79,0xfe,0xa1,0xfe,0xb5,0xfe,0x90,0xfe,0x5d,0xfe, +0x4d,0xfe,0x47,0xfe,0x63,0xfe,0xcf,0xfe,0x4e,0xff,0xaa,0xff, +0xf3,0xff,0x2e,0x0,0x4c,0x0,0x43,0x0,0x1a,0x0,0x5,0x0, +0x11,0x0,0x20,0x0,0x38,0x0,0x56,0x0,0x66,0x0,0x77,0x0, +0x85,0x0,0x8c,0x0,0xb1,0x0,0xd2,0x0,0xc3,0x0,0xcd,0x0, +0xfb,0x0,0x9,0x1,0x24,0x1,0x75,0x1,0xb9,0x1,0xda,0x1, +0xf7,0x1,0x2,0x2,0x0,0x2,0xfe,0x1,0xe1,0x1,0xad,0x1, +0x81,0x1,0x55,0x1,0x17,0x1,0xea,0x0,0xef,0x0,0xeb,0x0, +0x9e,0x0,0x35,0x0,0xdb,0xff,0x87,0xff,0x6b,0xff,0xa1,0xff, +0xe3,0xff,0x18,0x0,0x4d,0x0,0x56,0x0,0x35,0x0,0x5,0x0, +0xa4,0xff,0x3e,0xff,0x26,0xff,0x1e,0xff,0xf7,0xfe,0xf5,0xfe, +0x20,0xff,0x5b,0xff,0xb4,0xff,0xf,0x0,0x41,0x0,0x5d,0x0, +0x5e,0x0,0x3d,0x0,0x1e,0x0,0x10,0x0,0x11,0x0,0x26,0x0, +0x34,0x0,0x37,0x0,0x55,0x0,0x76,0x0,0x6a,0x0,0x50,0x0, +0x48,0x0,0x48,0x0,0x56,0x0,0x78,0x0,0xa3,0x0,0xdd,0x0, +0x28,0x1,0x62,0x1,0x74,0x1,0x69,0x1,0x42,0x1,0xf6,0x0, +0x9b,0x0,0x58,0x0,0x44,0x0,0x4f,0x0,0x56,0x0,0x62,0x0, +0x86,0x0,0xab,0x0,0xbb,0x0,0xc8,0x0,0xd0,0x0,0xc2,0x0, +0xa9,0x0,0x8a,0x0,0x52,0x0,0x12,0x0,0xde,0xff,0x98,0xff, +0x39,0xff,0xdd,0xfe,0x8c,0xfe,0x3d,0xfe,0xf1,0xfd,0xaa,0xfd, +0x84,0xfd,0x88,0xfd,0x96,0xfd,0x99,0xfd,0x9c,0xfd,0x95,0xfd, +0x81,0xfd,0x62,0xfd,0x20,0xfd,0xb1,0xfc,0x20,0xfc,0x6f,0xfb, +0xbd,0xfa,0x41,0xfa,0x20,0xfa,0x7e,0xfa,0x51,0xfb,0x6a,0xfc, +0xdf,0xfd,0xd0,0xff,0xe6,0x1,0xac,0x3,0xe9,0x4,0x76,0x5, +0x5e,0x5,0xf0,0x4,0x6f,0x4,0xb,0x4,0xe8,0x3,0xff,0x3, +0x34,0x4,0x6d,0x4,0x9d,0x4,0xb7,0x4,0xa7,0x4,0x59,0x4, +0xbb,0x3,0xcb,0x2,0xc9,0x1,0xec,0x0,0x22,0x0,0x83,0xff, +0x3f,0xff,0x13,0xff,0xe1,0xfe,0xe3,0xfe,0xdc,0xfe,0x7d,0xfe, +0x27,0xfe,0x13,0xfe,0x0,0xfe,0xfe,0xfd,0x3a,0xfe,0x94,0xfe, +0xee,0xfe,0x3b,0xff,0x45,0xff,0xdb,0xfe,0x21,0xfe,0x67,0xfd, +0xbd,0xfc,0x17,0xfc,0xc4,0xfb,0x2,0xfc,0xa6,0xfc,0x85,0xfd, +0x6d,0xfe,0x9,0xff,0x50,0xff,0x63,0xff,0x50,0xff,0x4f,0xff, +0x7f,0xff,0xa5,0xff,0xbd,0xff,0xe4,0xff,0xf7,0xff,0xe6,0xff, +0xc9,0xff,0xad,0xff,0xa1,0xff,0x9b,0xff,0x9e,0xff,0xd6,0xff, +0x39,0x0,0xa5,0x0,0x33,0x1,0xd7,0x1,0x70,0x2,0x1b,0x3, +0xa5,0x3,0xba,0x3,0x7d,0x3,0x13,0x3,0x8b,0x2,0x1f,0x2, +0xd5,0x1,0xad,0x1,0xda,0x1,0x27,0x2,0x5d,0x2,0xaf,0x2, +0xee,0x2,0xbd,0x2,0x4a,0x2,0xc4,0x1,0x37,0x1,0xcd,0x0, +0x6f,0x0,0xc,0x0,0xc1,0xff,0x60,0xff,0xde,0xfe,0x8c,0xfe, +0x57,0xfe,0x14,0xfe,0xf2,0xfd,0xdf,0xfd,0xc1,0xfd,0xbc,0xfd, +0xac,0xfd,0x76,0xfd,0x6b,0xfd,0x8c,0xfd,0x9f,0xfd,0xbe,0xfd, +0x9,0xfe,0x68,0xfe,0xc6,0xfe,0x1a,0xff,0x6f,0xff,0xd3,0xff, +0x42,0x0,0xb8,0x0,0x31,0x1,0x97,0x1,0xd3,0x1,0xcf,0x1, +0x93,0x1,0x49,0x1,0x13,0x1,0x4,0x1,0x18,0x1,0x2b,0x1, +0x4c,0x1,0x9d,0x1,0xd7,0x1,0xe2,0x1,0x6,0x2,0x29,0x2, +0x16,0x2,0xf3,0x1,0xbc,0x1,0x5e,0x1,0xfe,0x0,0x8a,0x0, +0x10,0x0,0xdd,0xff,0xd3,0xff,0xd3,0xff,0x20,0x0,0xa4,0x0, +0xe,0x1,0x6c,0x1,0xc1,0x1,0xe2,0x1,0xd4,0x1,0x9f,0x1, +0x43,0x1,0xd8,0x0,0x56,0x0,0xc4,0xff,0x4f,0xff,0xf0,0xfe, +0x98,0xfe,0x6a,0xfe,0x6f,0xfe,0x90,0xfe,0xbc,0xfe,0xe1,0xfe, +0xfd,0xfe,0x1,0xff,0xd3,0xfe,0x91,0xfe,0x60,0xfe,0x42,0xfe, +0x41,0xfe,0x76,0xfe,0xcd,0xfe,0x26,0xff,0x87,0xff,0x1,0x0, +0x72,0x0,0xa9,0x0,0xd7,0x0,0x2d,0x1,0x61,0x1,0x59,0x1, +0x61,0x1,0x6e,0x1,0x76,0x1,0xb0,0x1,0xf5,0x1,0x1b,0x2, +0x60,0x2,0x9c,0x2,0x61,0x2,0xd2,0x1,0x2f,0x1,0x74,0x0, +0xcc,0xff,0x65,0xff,0x30,0xff,0x3a,0xff,0x97,0xff,0x28,0x0, +0xc3,0x0,0x44,0x1,0x94,0x1,0x9c,0x1,0x53,0x1,0xdd,0x0, +0x64,0x0,0xe6,0xff,0x6c,0xff,0xb,0xff,0xb6,0xfe,0x56,0xfe, +0x2,0xfe,0xd3,0xfd,0xb1,0xfd,0x89,0xfd,0x7b,0xfd,0x89,0xfd, +0x75,0xfd,0x3f,0xfd,0x4,0xfd,0x85,0xfc,0xb8,0xfb,0xe5,0xfa, +0xdb,0xf9,0x72,0xf8,0x29,0xf7,0x62,0xf6,0x2d,0xf6,0xc5,0xf6, +0x36,0xf8,0x4c,0xfa,0xf0,0xfc,0xe5,0xff,0xe5,0x2,0xce,0x5, +0x1a,0x8,0x3a,0x9,0x54,0x9,0xc5,0x8,0xcd,0x7,0xc9,0x6, +0xf0,0x5,0x56,0x5,0x25,0x5,0x2e,0x5,0x1c,0x5,0xf1,0x4, +0x9f,0x4,0xe7,0x3,0xe3,0x2,0xc6,0x1,0x9b,0x0,0x94,0xff, +0xd4,0xfe,0x3e,0xfe,0xd5,0xfd,0xa2,0xfd,0x81,0xfd,0x62,0xfd, +0x65,0xfd,0x87,0xfd,0x9e,0xfd,0xb1,0xfd,0xdd,0xfd,0x29,0xfe, +0x97,0xfe,0x34,0xff,0xe2,0xff,0x69,0x0,0xb5,0x0,0xb7,0x0, +0x56,0x0,0x90,0xff,0x7e,0xfe,0x5c,0xfd,0x6e,0xfc,0xdb,0xfb, +0xc1,0xfb,0x24,0xfc,0xbe,0xfc,0x52,0xfd,0xd1,0xfd,0xe,0xfe, +0x15,0xfe,0x3b,0xfe,0x7c,0xfe,0xb7,0xfe,0x1,0xff,0x30,0xff, +0x16,0xff,0xe0,0xfe,0x7a,0xfe,0xd1,0xfd,0x7a,0xfd,0xbd,0xfd, +0x39,0xfe,0xe5,0xfe,0xe9,0xff,0xf,0x1,0x2b,0x2,0x45,0x3, +0x50,0x4,0x1e,0x5,0x7c,0x5,0x76,0x5,0x47,0x5,0xeb,0x4, +0x73,0x4,0x3b,0x4,0x2d,0x4,0xf3,0x3,0xac,0x3,0x6a,0x3, +0xf7,0x2,0x5d,0x2,0x9f,0x1,0x99,0x0,0x7e,0xff,0x8e,0xfe, +0xde,0xfd,0xa9,0xfd,0xed,0xfd,0x4e,0xfe,0xb0,0xfe,0xf,0xff, +0x29,0xff,0xe9,0xfe,0x77,0xfe,0xfa,0xfd,0x8e,0xfd,0x36,0xfd, +0x4,0xfd,0x1b,0xfd,0x5c,0xfd,0x9a,0xfd,0xde,0xfd,0x25,0xfe, +0x6d,0xfe,0xc2,0xfe,0xfb,0xfe,0x18,0xff,0x4e,0xff,0x7f,0xff, +0x96,0xff,0xd1,0xff,0x2d,0x0,0x9d,0x0,0x23,0x1,0x6c,0x1, +0x69,0x1,0x7d,0x1,0x73,0x1,0xfd,0x0,0x8c,0x0,0x60,0x0, +0x46,0x0,0x52,0x0,0x8f,0x0,0xce,0x0,0xb,0x1,0x3d,0x1, +0x4b,0x1,0x52,0x1,0x56,0x1,0x41,0x1,0x26,0x1,0x9,0x1, +0xe2,0x0,0xcc,0x0,0xc5,0x0,0xab,0x0,0x8b,0x0,0x89,0x0, +0xb6,0x0,0xf7,0x0,0x2c,0x1,0x61,0x1,0xa0,0x1,0xd1,0x1, +0xe9,0x1,0xda,0x1,0x9c,0x1,0x3d,0x1,0xa8,0x0,0xcf,0xff, +0xff,0xfe,0x6c,0xfe,0xfb,0xfd,0xac,0xfd,0x8e,0xfd,0xa5,0xfd, +0xf3,0xfd,0x59,0xfe,0xb8,0xfe,0xc,0xff,0x3c,0xff,0x48,0xff, +0x52,0xff,0x5b,0xff,0x56,0xff,0x49,0xff,0x32,0xff,0x40,0xff, +0x83,0xff,0x9c,0xff,0x8d,0xff,0xbb,0xff,0xa,0x0,0x5c,0x0, +0xee,0x0,0x95,0x1,0xfa,0x1,0x2f,0x2,0x2e,0x2,0xdb,0x1, +0x6c,0x1,0x4,0x1,0x91,0x0,0x19,0x0,0xbc,0xff,0x89,0xff, +0x6b,0xff,0x63,0xff,0xa8,0xff,0x31,0x0,0xa8,0x0,0xfe,0x0, +0x52,0x1,0x8a,0x1,0x9e,0x1,0xac,0x1,0xbf,0x1,0xcd,0x1, +0xae,0x1,0x58,0x1,0x0,0x1,0xb5,0x0,0x52,0x0,0xe0,0xff, +0x60,0xff,0xa7,0xfe,0xbb,0xfd,0xdd,0xfc,0x3a,0xfc,0xd2,0xfb, +0x94,0xfb,0x86,0xfb,0x99,0xfb,0x8e,0xfb,0x35,0xfb,0x73,0xfa, +0x30,0xf9,0xa0,0xf7,0x20,0xf6,0xd2,0xf4,0x8,0xf4,0x31,0xf4, +0x55,0xf5,0x6d,0xf7,0x8f,0xfa,0x71,0xfe,0x92,0x2,0x95,0x6, +0xef,0x9,0xa,0xc,0xc9,0xc,0x65,0xc,0x20,0xb,0x63,0x9, +0xb1,0x7,0x5b,0x6,0x61,0x5,0xa7,0x4,0x11,0x4,0x75,0x3, +0x91,0x2,0x55,0x1,0x5,0x0,0xd1,0xfe,0xb4,0xfd,0xe7,0xfc, +0xa9,0xfc,0xc3,0xfc,0xfe,0xfc,0x7d,0xfd,0x16,0xfe,0x82,0xfe, +0xed,0xfe,0x5b,0xff,0x8f,0xff,0xb9,0xff,0xfd,0xff,0x37,0x0, +0x80,0x0,0xef,0x0,0x4c,0x1,0x8e,0x1,0x8a,0x1,0xe4,0x0, +0xd1,0xff,0xcf,0xfe,0xf6,0xfd,0x46,0xfd,0xc7,0xfc,0x85,0xfc, +0xc1,0xfc,0x72,0xfd,0x2b,0xfe,0xc3,0xfe,0x11,0xff,0xbc,0xfe, +0xeb,0xfd,0x17,0xfd,0x4c,0xfc,0x94,0xfb,0x32,0xfb,0x11,0xfb, +0xf8,0xfa,0x9,0xfb,0x61,0xfb,0xd3,0xfb,0x5d,0xfc,0x38,0xfd, +0x5f,0xfe,0x9e,0xff,0xfe,0x0,0x9a,0x2,0x25,0x4,0x39,0x5, +0xee,0x5,0xa8,0x6,0x68,0x7,0xc4,0x7,0x9b,0x7,0x34,0x7, +0x9c,0x6,0xa9,0x5,0x75,0x4,0x3f,0x3,0x1f,0x2,0x2a,0x1, +0x62,0x0,0xa3,0xff,0xfb,0xfe,0x8d,0xfe,0x3a,0xfe,0xee,0xfd, +0xd1,0xfd,0xd7,0xfd,0xdf,0xfd,0x1d,0xfe,0xb4,0xfe,0x6c,0xff, +0x15,0x0,0x71,0x0,0x3f,0x0,0xc6,0xff,0x5c,0xff,0xd1,0xfe, +0x37,0xfe,0xf1,0xfd,0xe4,0xfd,0xdc,0xfd,0xff,0xfd,0x33,0xfe, +0x4a,0xfe,0x6c,0xfe,0x9d,0xfe,0xbd,0xfe,0xd6,0xfe,0xdb,0xfe, +0xc2,0xfe,0xb0,0xfe,0xad,0xfe,0xac,0xfe,0xd9,0xfe,0x54,0xff, +0xf8,0xff,0x7a,0x0,0xbe,0x0,0xd3,0x0,0x9d,0x0,0x27,0x0, +0xe6,0xff,0xfa,0xff,0x30,0x0,0xc0,0x0,0xb5,0x1,0x86,0x2, +0xfa,0x2,0x38,0x3,0x42,0x3,0x29,0x3,0xf5,0x2,0x88,0x2, +0x10,0x2,0xc9,0x1,0x8c,0x1,0x38,0x1,0xeb,0x0,0xc0,0x0, +0xab,0x0,0x98,0x0,0xb7,0x0,0x26,0x1,0x81,0x1,0x87,0x1, +0x89,0x1,0x85,0x1,0x2c,0x1,0x91,0x0,0xe2,0xff,0x15,0xff, +0x3f,0xfe,0x8f,0xfd,0x22,0xfd,0xc,0xfd,0x4f,0xfd,0xc8,0xfd, +0x4e,0xfe,0xd9,0xfe,0x7c,0xff,0x25,0x0,0x9c,0x0,0xd1,0x0, +0xc7,0x0,0x7f,0x0,0x2d,0x0,0x5,0x0,0xf4,0xff,0xc8,0xff, +0x8a,0xff,0x6e,0xff,0x67,0xff,0x37,0xff,0x7,0xff,0x26,0xff, +0x83,0xff,0xa,0x0,0xa3,0x0,0xf5,0x0,0xa,0x1,0x3e,0x1, +0x61,0x1,0x44,0x1,0x1f,0x1,0xe0,0x0,0x6c,0x0,0x16,0x0, +0xfb,0xff,0xe,0x0,0x82,0x0,0x57,0x1,0x33,0x2,0xea,0x2, +0x86,0x3,0x6,0x4,0x56,0x4,0x63,0x4,0x2d,0x4,0xb2,0x3, +0x3,0x3,0x44,0x2,0x73,0x1,0xb0,0x0,0x13,0x0,0x53,0xff, +0x54,0xfe,0x53,0xfd,0x44,0xfc,0x3f,0xfb,0xb5,0xfa,0x73,0xfa, +0x12,0xfa,0xbe,0xf9,0x66,0xf9,0xd8,0xf8,0x35,0xf8,0x55,0xf7, +0x10,0xf6,0xd2,0xf4,0xe4,0xf3,0x83,0xf3,0x3f,0xf4,0x26,0xf6, +0xe9,0xf8,0x93,0xfc,0x1,0x1,0xd9,0x5,0xcd,0xa,0xb,0xf, +0x8f,0x11,0xfe,0x11,0x6e,0x10,0x6f,0xd,0x3,0xa,0xcb,0x6, +0xf5,0x3,0xb9,0x1,0x25,0x0,0x25,0xff,0xa5,0xfe,0x7f,0xfe, +0x9c,0xfe,0xe7,0xfe,0x2f,0xff,0x83,0xff,0x1,0x0,0x91,0x0, +0x3a,0x1,0xe6,0x1,0x2a,0x2,0xed,0x1,0x55,0x1,0x5b,0x0, +0x3f,0xff,0x56,0xfe,0x92,0xfd,0xf,0xfd,0x2d,0xfd,0xd2,0xfd, +0xb1,0xfe,0xca,0xff,0xfc,0x0,0xdc,0x1,0x1e,0x2,0xc8,0x1, +0xef,0x0,0xbd,0xff,0x9d,0xfe,0xdb,0xfd,0x5c,0xfd,0x2,0xfd, +0xd4,0xfc,0xb6,0xfc,0x9c,0xfc,0x80,0xfc,0x28,0xfc,0x92,0xfb, +0x28,0xfb,0xe,0xfb,0x31,0xfb,0x97,0xfb,0x2b,0xfc,0xcb,0xfc, +0x53,0xfd,0x85,0xfd,0x7f,0xfd,0xc3,0xfd,0x6f,0xfe,0x68,0xff, +0xcc,0x0,0x83,0x2,0x42,0x4,0xfa,0x5,0x90,0x7,0xcd,0x8, +0x92,0x9,0xb7,0x9,0x2b,0x9,0x37,0x8,0x1b,0x7,0xea,0x5, +0xbe,0x4,0x96,0x3,0x67,0x2,0x4c,0x1,0x50,0x0,0x9a,0xff, +0x70,0xff,0xb1,0xff,0xfb,0xff,0x3c,0x0,0x5b,0x0,0x2f,0x0, +0xea,0xff,0xb1,0xff,0x56,0xff,0xd4,0xfe,0x43,0xfe,0x9e,0xfd, +0x3,0xfd,0xad,0xfc,0xad,0xfc,0xed,0xfc,0x3f,0xfd,0x9d,0xfd, +0x2e,0xfe,0xd2,0xfe,0x45,0xff,0x84,0xff,0x95,0xff,0x81,0xff, +0x71,0xff,0x57,0xff,0xb,0xff,0xbc,0xfe,0x80,0xfe,0x40,0xfe, +0x2b,0xfe,0x50,0xfe,0x68,0xfe,0x7a,0xfe,0xc9,0xfe,0x49,0xff, +0xd3,0xff,0x4b,0x0,0x87,0x0,0x8d,0x0,0x8a,0x0,0x9c,0x0, +0xf2,0x0,0xac,0x1,0x7f,0x2,0xf,0x3,0x5f,0x3,0x99,0x3, +0xce,0x3,0xf5,0x3,0xe1,0x3,0x75,0x3,0xfa,0x2,0xce,0x2, +0xdf,0x2,0xde,0x2,0xbb,0x2,0x8f,0x2,0x51,0x2,0xee,0x1, +0x8b,0x1,0x48,0x1,0xb,0x1,0xcb,0x0,0x8f,0x0,0x15,0x0, +0x3f,0xff,0x79,0xfe,0xf7,0xfd,0x7e,0xfd,0x18,0xfd,0xe2,0xfc, +0xb0,0xfc,0xab,0xfc,0x26,0xfd,0xe3,0xfd,0x95,0xfe,0x4a,0xff, +0xe8,0xff,0x4e,0x0,0xac,0x0,0x17,0x1,0x6c,0x1,0x98,0x1, +0x89,0x1,0x4e,0x1,0x23,0x1,0x11,0x1,0xf9,0x0,0xd2,0x0, +0x90,0x0,0x2d,0x0,0xc4,0xff,0x70,0xff,0x4f,0xff,0x8d,0xff, +0x20,0x0,0xc1,0x0,0x3a,0x1,0x7b,0x1,0x91,0x1,0x8c,0x1, +0x54,0x1,0xd3,0x0,0x32,0x0,0xa3,0xff,0x47,0xff,0x54,0xff, +0xd1,0xff,0x80,0x0,0x45,0x1,0x21,0x2,0xf3,0x2,0x9a,0x3, +0x5,0x4,0x16,0x4,0xd0,0x3,0x5b,0x3,0xda,0x2,0x56,0x2, +0xbe,0x1,0xe,0x1,0x5c,0x0,0x83,0xff,0x50,0xfe,0xff,0xfc, +0xd6,0xfb,0xbc,0xfa,0xbd,0xf9,0x15,0xf9,0xd1,0xf8,0xe4,0xf8, +0x1e,0xf9,0x1c,0xf9,0x9a,0xf8,0x76,0xf7,0xb0,0xf5,0xc1,0xf3, +0x5f,0xf2,0x13,0xf2,0x63,0xf3,0x92,0xf6,0x2c,0xfb,0x8c,0x0, +0x48,0x6,0xdd,0xb,0xaa,0x10,0xe4,0x13,0x9b,0x14,0x73,0x12, +0x23,0xe,0xed,0x8,0xf5,0x3,0xf6,0xff,0x34,0xfd,0xbc,0xfb, +0x94,0xfb,0x79,0xfc,0xd7,0xfd,0x34,0xff,0x56,0x0,0x30,0x1, +0xde,0x1,0x6a,0x2,0xc1,0x2,0xfd,0x2,0x2d,0x3,0xd,0x3, +0x61,0x2,0x37,0x1,0xb0,0xff,0x3,0xfe,0x8c,0xfc,0x8c,0xfb, +0x3c,0xfb,0xc4,0xfb,0xff,0xfc,0xab,0xfe,0x95,0x0,0x5c,0x2, +0x8f,0x3,0x1,0x4,0xc4,0x3,0xd7,0x2,0x41,0x1,0x65,0xff, +0xd2,0xfd,0xbb,0xfc,0xf,0xfc,0xc6,0xfb,0xaf,0xfb,0xb1,0xfb, +0xeb,0xfb,0x1b,0xfc,0xe9,0xfb,0x96,0xfb,0x5e,0xfb,0x32,0xfb, +0x3d,0xfb,0x94,0xfb,0xff,0xfb,0x7a,0xfc,0xf8,0xfc,0x4e,0xfd, +0xa8,0xfd,0x24,0xfe,0xbe,0xfe,0xc0,0xff,0x4b,0x1,0x2,0x3, +0xa6,0x4,0xf6,0x5,0xa2,0x6,0xcb,0x6,0x9d,0x6,0x3,0x6, +0x33,0x5,0x7c,0x4,0xd6,0x3,0x48,0x3,0xeb,0x2,0xa2,0x2, +0x65,0x2,0x42,0x2,0xe,0x2,0xb6,0x1,0x69,0x1,0x1b,0x1, +0x94,0x0,0xe9,0xff,0x4d,0xff,0xc6,0xfe,0x73,0xfe,0x73,0xfe, +0x99,0xfe,0xbd,0xfe,0xe2,0xfe,0xe2,0xfe,0xb6,0xfe,0x7d,0xfe, +0x23,0xfe,0xb0,0xfd,0x78,0xfd,0x91,0xfd,0xe3,0xfd,0x6c,0xfe, +0x10,0xff,0xbc,0xff,0x85,0x0,0x4c,0x1,0xd5,0x1,0xf0,0x1, +0x73,0x1,0x8f,0x0,0xa8,0xff,0xce,0xfe,0x10,0xfe,0x9e,0xfd, +0x51,0xfd,0xfe,0xfc,0xe9,0xfc,0x51,0xfd,0x2,0xfe,0x90,0xfe, +0xdb,0xfe,0xfc,0xfe,0xde,0xfe,0x7f,0xfe,0x38,0xfe,0x3b,0xfe, +0x8b,0xfe,0x44,0xff,0x3e,0x0,0x4c,0x1,0x8e,0x2,0xdc,0x3, +0xe1,0x4,0x8a,0x5,0xae,0x5,0x4b,0x5,0xc6,0x4,0x36,0x4, +0x72,0x3,0x9f,0x2,0xe9,0x1,0x61,0x1,0xd,0x1,0xca,0x0, +0x9b,0x0,0x7d,0x0,0x3d,0x0,0x1,0x0,0xda,0xff,0x6f,0xff, +0x1,0xff,0xe3,0xfe,0x8d,0xfe,0xf1,0xfd,0x8d,0xfd,0x26,0xfd, +0xaf,0xfc,0xa1,0xfc,0xf8,0xfc,0x9b,0xfd,0x97,0xfe,0xab,0xff, +0xe7,0x0,0x3d,0x2,0xf2,0x2,0xee,0x2,0xae,0x2,0x19,0x2, +0x43,0x1,0x9f,0x0,0x21,0x0,0xbf,0xff,0xab,0xff,0xc8,0xff, +0x18,0x0,0xa3,0x0,0x5,0x1,0x23,0x1,0x2e,0x1,0x33,0x1, +0x51,0x1,0x8f,0x1,0xa2,0x1,0x73,0x1,0xa,0x1,0x62,0x0, +0xbd,0xff,0x44,0xff,0xea,0xfe,0xd4,0xfe,0x16,0xff,0x93,0xff, +0x68,0x0,0x82,0x1,0x63,0x2,0xdb,0x2,0x15,0x3,0x0,0x3, +0x75,0x2,0x8c,0x1,0x79,0x0,0x6e,0xff,0xa5,0xfe,0x31,0xfe, +0xe8,0xfd,0xbe,0xfd,0xbc,0xfd,0xa1,0xfd,0x3a,0xfd,0x96,0xfc, +0xa2,0xfb,0x57,0xfa,0xe6,0xf8,0x50,0xf7,0xa5,0xf5,0x41,0xf4, +0x34,0xf3,0x7b,0xf2,0x99,0xf2,0x0,0xf4,0x92,0xf6,0xf9,0xf9, +0x2,0xfe,0xa5,0x2,0xa0,0x7,0x2c,0xc,0x80,0xf,0x8,0x11, +0x58,0x10,0xc7,0xd,0x4a,0xa,0xa9,0x6,0x83,0x3,0x48,0x1, +0xf2,0xff,0x70,0xff,0xaf,0xff,0x53,0x0,0x0,0x1,0x88,0x1, +0xc6,0x1,0xc8,0x1,0x92,0x1,0x2b,0x1,0xe6,0x0,0xe3,0x0, +0xd4,0x0,0x9f,0x0,0x49,0x0,0xc2,0xff,0x32,0xff,0xc6,0xfe, +0x6e,0xfe,0x41,0xfe,0x5a,0xfe,0xa5,0xfe,0x20,0xff,0xc8,0xff, +0x6a,0x0,0xe5,0x0,0x2d,0x1,0x28,0x1,0xcc,0x0,0x1d,0x0, +0x28,0xff,0x20,0xfe,0x43,0xfd,0xa9,0xfc,0x4e,0xfc,0x43,0xfc, +0x86,0xfc,0xcf,0xfc,0xe4,0xfc,0xad,0xfc,0x12,0xfc,0x4b,0xfb, +0xd2,0xfa,0xac,0xfa,0xb4,0xfa,0xfe,0xfa,0x60,0xfb,0xb5,0xfb, +0x3f,0xfc,0x4,0xfd,0xef,0xfd,0x4a,0xff,0x21,0x1,0x1e,0x3, +0xd,0x5,0xab,0x6,0xa7,0x7,0xf5,0x7,0xa8,0x7,0xf4,0x6, +0x23,0x6,0x3a,0x5,0x38,0x4,0x4b,0x3,0x99,0x2,0x53,0x2, +0x82,0x2,0xe5,0x2,0x51,0x3,0xa1,0x3,0xa2,0x3,0x81,0x3, +0x5a,0x3,0xd8,0x2,0xe2,0x1,0x98,0x0,0xf8,0xfe,0x64,0xfd, +0x5a,0xfc,0xb0,0xfb,0x2e,0xfb,0x7,0xfb,0x41,0xfb,0xa8,0xfb, +0x2d,0xfc,0xd6,0xfc,0x99,0xfd,0x4a,0xfe,0xe0,0xfe,0x8a,0xff, +0x42,0x0,0xc8,0x0,0x2,0x1,0xe6,0x0,0x5c,0x0,0x7e,0xff, +0xa5,0xfe,0xa,0xfe,0xa0,0xfd,0x5e,0xfd,0x61,0xfd,0xab,0xfd, +0x39,0xfe,0x23,0xff,0x41,0x0,0x45,0x1,0xfe,0x1,0x1b,0x2, +0x7b,0x1,0x8c,0x0,0x84,0xff,0x52,0xfe,0x61,0xfd,0xc,0xfd, +0x30,0xfd,0xd1,0xfd,0x3,0xff,0x8d,0x0,0x45,0x2,0xf6,0x3, +0x5f,0x5,0x74,0x6,0x1a,0x7,0x7,0x7,0x53,0x6,0x62,0x5, +0x63,0x4,0x5c,0x3,0x69,0x2,0xb8,0x1,0x49,0x1,0xf6,0x0, +0xa6,0x0,0x54,0x0,0x29,0x0,0x51,0x0,0x8a,0x0,0x8c,0x0, +0x88,0x0,0x62,0x0,0xc3,0xff,0xf5,0xfe,0x40,0xfe,0x6b,0xfd, +0x84,0xfc,0xcc,0xfb,0x57,0xfb,0x6a,0xfb,0x1f,0xfc,0x23,0xfd, +0x5a,0xfe,0xa9,0xff,0xb7,0x0,0x67,0x1,0xba,0x1,0x82,0x1, +0xee,0x0,0x6a,0x0,0x7,0x0,0xb4,0xff,0x8b,0xff,0x8a,0xff, +0x86,0xff,0x94,0xff,0xeb,0xff,0x67,0x0,0xd2,0x0,0x4d,0x1, +0xb9,0x1,0xe3,0x1,0x6,0x2,0x13,0x2,0xa2,0x1,0x2,0x1, +0xaa,0x0,0x70,0x0,0x53,0x0,0x74,0x0,0xa3,0x0,0xe4,0x0, +0x48,0x1,0x82,0x1,0x85,0x1,0x76,0x1,0x39,0x1,0xcf,0x0, +0x75,0x0,0x3d,0x0,0x18,0x0,0xa,0x0,0x15,0x0,0x14,0x0, +0xfc,0xff,0x15,0x0,0x50,0x0,0x25,0x0,0x94,0xff,0xd6,0xfe, +0xbb,0xfd,0x76,0xfc,0x4c,0xfb,0xc5,0xf9,0xb4,0xf7,0x6d,0xf5, +0xde,0xf2,0x60,0xf0,0xfb,0xee,0x45,0xef,0x65,0xf1,0x2e,0xf5, +0xe3,0xf9,0x11,0xff,0x9f,0x4,0x2,0xa,0x66,0xe,0xcf,0x10, +0x96,0x10,0x3e,0xe,0xe2,0xa,0x70,0x7,0xc5,0x4,0xd,0x3, +0x5,0x2,0xea,0x1,0x75,0x2,0xc9,0x2,0xed,0x2,0xa,0x3, +0xba,0x2,0x2f,0x2,0xa3,0x1,0xbb,0x0,0xc0,0xff,0x2e,0xff, +0xbd,0xfe,0x33,0xfe,0x87,0xfd,0xb1,0xfc,0x17,0xfc,0xf5,0xfb, +0x1a,0xfc,0xbc,0xfc,0xff,0xfd,0x6c,0xff,0xc1,0x0,0xfa,0x1, +0xde,0x2,0x31,0x3,0xdd,0x2,0x0,0x2,0xea,0x0,0xba,0xff, +0x87,0xfe,0x9c,0xfd,0x10,0xfd,0xcb,0xfc,0xc7,0xfc,0xe4,0xfc, +0x12,0xfd,0x50,0xfd,0x4b,0xfd,0xd2,0xfc,0x30,0xfc,0xc2,0xfb, +0xa9,0xfb,0xba,0xfb,0xa0,0xfb,0x48,0xfb,0xe1,0xfa,0x99,0xfa, +0xa8,0xfa,0x1b,0xfb,0xe8,0xfb,0x3e,0xfd,0x26,0xff,0x40,0x1, +0x48,0x3,0x19,0x5,0x6e,0x6,0x29,0x7,0x5b,0x7,0x25,0x7, +0xde,0x6,0xa4,0x6,0x3e,0x6,0xa3,0x5,0xff,0x4,0x66,0x4, +0xdd,0x3,0x42,0x3,0x76,0x2,0xb5,0x1,0x3b,0x1,0xf5,0x0, +0xd0,0x0,0xb7,0x0,0x7c,0x0,0x1f,0x0,0xbe,0xff,0x3e,0xff, +0x88,0xfe,0xc8,0xfd,0x2d,0xfd,0xc8,0xfc,0x9f,0xfc,0xb1,0xfc, +0x5,0xfd,0x7a,0xfd,0xcb,0xfd,0x7,0xfe,0x5b,0xfe,0xa8,0xfe, +0xfb,0xfe,0x85,0xff,0xfd,0xff,0x41,0x0,0x7e,0x0,0x65,0x0, +0xdd,0xff,0x74,0xff,0x1b,0xff,0x8f,0xfe,0x4b,0xfe,0x54,0xfe, +0x46,0xfe,0x6a,0xfe,0xae,0xfe,0x91,0xfe,0x61,0xfe,0x44,0xfe, +0xd8,0xfd,0x63,0xfd,0x1a,0xfd,0xc1,0xfc,0xc1,0xfc,0x6b,0xfd, +0x6f,0xfe,0xe9,0xff,0xca,0x1,0x5b,0x3,0x66,0x4,0xc,0x5, +0x21,0x5,0xcd,0x4,0x62,0x4,0xe6,0x3,0x88,0x3,0x4c,0x3, +0xea,0x2,0x6c,0x2,0x2,0x2,0xb5,0x1,0x87,0x1,0x59,0x1, +0x2c,0x1,0x47,0x1,0x81,0x1,0x85,0x1,0x7e,0x1,0x7a,0x1, +0x3d,0x1,0xd1,0x0,0x56,0x0,0xcd,0xff,0x4d,0xff,0xd5,0xfe, +0x56,0xfe,0xd9,0xfd,0x73,0xfd,0x3d,0xfd,0x1b,0xfd,0xe0,0xfc, +0xc2,0xfc,0xf5,0xfc,0x3d,0xfd,0x95,0xfd,0x2c,0xfe,0xd6,0xfe, +0x78,0xff,0x24,0x0,0xb6,0x0,0xd,0x1,0x2f,0x1,0x18,0x1, +0xd9,0x0,0x8d,0x0,0x44,0x0,0xc,0x0,0xc3,0xff,0x6a,0xff, +0x67,0xff,0xaf,0xff,0xc0,0xff,0xa0,0xff,0x95,0xff,0x96,0xff, +0xb5,0xff,0x2d,0x0,0xfd,0x0,0xeb,0x1,0xa8,0x2,0x2b,0x3, +0xa8,0x3,0xfb,0x3,0xde,0x3,0x7b,0x3,0x3,0x3,0x78,0x2, +0x15,0x2,0x5,0x2,0x2c,0x2,0x86,0x2,0xb,0x3,0x87,0x3, +0xd9,0x3,0xe8,0x3,0x91,0x3,0xe4,0x2,0xf0,0x1,0x97,0x0, +0xfa,0xfe,0x74,0xfd,0x9,0xfc,0x90,0xfa,0x41,0xf9,0x59,0xf8, +0xb8,0xf7,0x24,0xf7,0x6b,0xf6,0x6d,0xf5,0x4e,0xf4,0x2c,0xf3, +0x23,0xf2,0xe1,0xf1,0x19,0xf3,0xc4,0xf5,0x8a,0xf9,0xd3,0xfd, +0xc1,0x1,0x2d,0x5,0x8f,0x8,0xb4,0xb,0xfa,0xd,0xc7,0xe, +0x66,0xd,0x0,0xa,0xe6,0x5,0x19,0x2,0x0,0xff,0x1f,0xfd, +0x8d,0xfc,0xb5,0xfc,0x32,0xfd,0xf3,0xfd,0xce,0xfe,0xa6,0xff, +0x92,0x0,0xb0,0x1,0xce,0x2,0x81,0x3,0x9e,0x3,0x54,0x3, +0xdc,0x2,0x4e,0x2,0xaf,0x1,0x10,0x1,0x93,0x0,0x42,0x0, +0x23,0x0,0x52,0x0,0xc7,0x0,0x6c,0x1,0x59,0x2,0x65,0x3, +0x2d,0x4,0xa0,0x4,0xb6,0x4,0x25,0x4,0xf0,0x2,0x6a,0x1, +0xbf,0xff,0x22,0xfe,0xd5,0xfc,0xba,0xfb,0xad,0xfa,0xe7,0xf9, +0x82,0xf9,0x4f,0xf9,0x28,0xf9,0xef,0xf8,0xac,0xf8,0xbf,0xf8, +0x48,0xf9,0xe8,0xf9,0x76,0xfa,0x2,0xfb,0x71,0xfb,0xd6,0xfb, +0x6a,0xfc,0x15,0xfd,0xd5,0xfd,0xf2,0xfe,0x5d,0x0,0xd6,0x1, +0x4d,0x3,0x8d,0x4,0x55,0x5,0xa5,0x5,0x80,0x5,0xf7,0x4, +0x4c,0x4,0x9a,0x3,0xe3,0x2,0x5c,0x2,0x1b,0x2,0x9,0x2, +0x38,0x2,0x8c,0x2,0xa8,0x2,0x82,0x2,0x55,0x2,0x20,0x2, +0xcb,0x1,0x5e,0x1,0xe1,0x0,0x74,0x0,0x40,0x0,0x1b,0x0, +0xd5,0xff,0xb2,0xff,0xd0,0xff,0xec,0xff,0xc,0x0,0x4d,0x0, +0x7b,0x0,0x9b,0x0,0xbd,0x0,0x9d,0x0,0x68,0x0,0x7f,0x0, +0x86,0x0,0x45,0x0,0xe,0x0,0x9e,0xff,0xb6,0xfe,0xe3,0xfd, +0x50,0xfd,0xb8,0xfc,0x51,0xfc,0x37,0xfc,0x31,0xfc,0x53,0xfc, +0x99,0xfc,0xc7,0xfc,0xe9,0xfc,0x10,0xfd,0x21,0xfd,0x24,0xfd, +0x2e,0xfd,0x47,0xfd,0x64,0xfd,0x7e,0xfd,0xcb,0xfd,0x66,0xfe, +0xd,0xff,0xc8,0xff,0xc8,0x0,0xc1,0x1,0x7e,0x2,0x1d,0x3, +0x74,0x3,0x74,0x3,0x6d,0x3,0x6d,0x3,0x57,0x3,0x36,0x3, +0x1,0x3,0xb8,0x2,0x81,0x2,0x6a,0x2,0x78,0x2,0x8f,0x2, +0x87,0x2,0x87,0x2,0x9e,0x2,0x90,0x2,0x66,0x2,0x38,0x2, +0xc2,0x1,0xfb,0x0,0x27,0x0,0x5c,0xff,0xae,0xfe,0x2b,0xfe, +0xd1,0xfd,0xae,0xfd,0xa4,0xfd,0x90,0xfd,0x99,0xfd,0xa9,0xfd, +0x90,0xfd,0x9b,0xfd,0xda,0xfd,0xf5,0xfd,0x15,0xfe,0x62,0xfe, +0x8b,0xfe,0x9e,0xfe,0xdb,0xfe,0x13,0xff,0x3a,0xff,0x77,0xff, +0x93,0xff,0x61,0xff,0x1e,0xff,0xfa,0xfe,0xda,0xfe,0x95,0xfe, +0x54,0xfe,0x58,0xfe,0x82,0xfe,0x9e,0xfe,0xc1,0xfe,0xee,0xfe, +0x6,0xff,0x2,0xff,0xdf,0xfe,0xc0,0xfe,0xe6,0xfe,0x4e,0xff, +0xde,0xff,0x96,0x0,0x61,0x1,0x3a,0x2,0x22,0x3,0xe5,0x3, +0x78,0x4,0xf1,0x4,0xb,0x5,0xa7,0x4,0x26,0x4,0xa7,0x3, +0x22,0x3,0xc9,0x2,0x86,0x2,0x2,0x2,0x52,0x1,0xbb,0x0, +0x3a,0x0,0xc0,0xff,0x57,0xff,0xfd,0xfe,0xaf,0xfe,0x72,0xfe, +0x44,0xfe,0x1c,0xfe,0xe8,0xfd,0x9f,0xfd,0x64,0xfd,0x55,0xfd, +0x4a,0xfd,0x37,0xfd,0x52,0xfd,0x98,0xfd,0xf4,0xfd,0xa1,0xfe, +0x98,0xff,0x7e,0x0,0x5c,0x1,0x1c,0x2,0x52,0x2,0x19,0x2, +0xba,0x1,0xee,0x0,0x9a,0xff,0xe4,0xfd,0xc3,0xfb,0xa1,0xf9, +0x49,0xf8,0x1a,0xf8,0x29,0xf9,0x31,0xfb,0x7a,0xfd,0xb6,0xff, +0xd1,0x1,0x66,0x3,0x73,0x4,0x24,0x5,0x4,0x5,0xee,0x3, +0x75,0x2,0xf2,0x0,0xc3,0xff,0x9d,0xff,0x82,0x0,0xcd,0x1, +0x20,0x3,0x16,0x4,0x2a,0x4,0x7f,0x3,0xa9,0x2,0xd7,0x1, +0xb,0x1,0x94,0x0,0x9d,0x0,0xdf,0x0,0x1c,0x1,0x41,0x1, +0x13,0x1,0x6b,0x0,0x83,0xff,0xa5,0xfe,0xc9,0xfd,0xde,0xfc, +0x31,0xfc,0x1d,0xfc,0x7c,0xfc,0x13,0xfd,0xee,0xfd,0xe2,0xfe, +0x93,0xff,0x7,0x0,0x53,0x0,0x5d,0x0,0x48,0x0,0x43,0x0, +0x3e,0x0,0x47,0x0,0x7a,0x0,0xaa,0x0,0xa0,0x0,0x5b,0x0, +0xf4,0xff,0x86,0xff,0x1c,0xff,0xbc,0xfe,0x70,0xfe,0x3f,0xfe, +0x35,0xfe,0x3d,0xfe,0x24,0xfe,0x5,0xfe,0x17,0xfe,0x47,0xfe, +0x92,0xfe,0x15,0xff,0xc4,0xff,0x99,0x0,0x8f,0x1,0x61,0x2, +0xe1,0x2,0xb,0x3,0xb7,0x2,0x5,0x2,0x71,0x1,0x29,0x1, +0x16,0x1,0x3b,0x1,0x92,0x1,0xf5,0x1,0x47,0x2,0x86,0x2, +0xb3,0x2,0xab,0x2,0x3d,0x2,0x85,0x1,0xcf,0x0,0x3d,0x0, +0xc5,0xff,0x70,0xff,0x34,0xff,0xd9,0xfe,0x69,0xfe,0x3a,0xfe, +0x3a,0xfe,0x3e,0xfe,0x72,0xfe,0xb7,0xfe,0xca,0xfe,0xfe,0xfe, +0x4d,0xff,0x57,0xff,0x77,0xff,0xd0,0xff,0xdb,0xff,0xd3,0xff, +0x11,0x0,0x2f,0x0,0x42,0x0,0x8f,0x0,0x9c,0x0,0x4f,0x0, +0x1f,0x0,0xfe,0xff,0xc6,0xff,0x98,0xff,0x83,0xff,0x96,0xff, +0xae,0xff,0xa4,0xff,0xcf,0xff,0x3b,0x0,0x8e,0x0,0xc4,0x0, +0xcc,0x0,0x75,0x0,0x2,0x0,0x84,0xff,0xee,0xfe,0xab,0xfe, +0xae,0xfe,0x8e,0xfe,0x93,0xfe,0xe6,0xfe,0x40,0xff,0xbe,0xff, +0x58,0x0,0xcd,0x0,0x4d,0x1,0xda,0x1,0x28,0x2,0x58,0x2, +0x75,0x2,0x52,0x2,0x1c,0x2,0xdc,0x1,0x64,0x1,0xe8,0x0, +0xa8,0x0,0x9d,0x0,0xa3,0x0,0x93,0x0,0x77,0x0,0x5d,0x0, +0x9,0x0,0x7c,0xff,0x0,0xff,0xb0,0xfe,0xa9,0xfe,0xe4,0xfe, +0xb,0xff,0x1f,0xff,0x38,0xff,0x13,0xff,0xcf,0xfe,0xa8,0xfe, +0x6a,0xfe,0x36,0xfe,0x64,0xfe,0x9f,0xfe,0xce,0xfe,0x48,0xff, +0xd3,0xff,0x2c,0x0,0x9f,0x0,0x21,0x1,0x53,0x1,0x53,0x1, +0x4f,0x1,0x16,0x1,0xb5,0x0,0x8b,0x0,0xa2,0x0,0xac,0x0, +0xa3,0x0,0xaa,0x0,0xa4,0x0,0x7d,0x0,0x4f,0x0,0x14,0x0, +0xd6,0xff,0xc3,0xff,0xc1,0xff,0xa5,0xff,0x8e,0xff,0x81,0xff, +0x59,0xff,0x34,0xff,0x39,0xff,0x4f,0xff,0x6d,0xff,0xb5,0xff, +0x2b,0x0,0xc7,0x0,0x7d,0x1,0x27,0x2,0xac,0x2,0xfb,0x2, +0xea,0x2,0x91,0x2,0x44,0x2,0xeb,0x1,0x52,0x1,0xbf,0x0, +0x58,0x0,0xfe,0xff,0xc5,0xff,0x9b,0xff,0x4d,0xff,0x1,0xff, +0xc2,0xfe,0x6e,0xfe,0x4b,0xfe,0x80,0xfe,0xc1,0xfe,0xa,0xff, +0x6a,0xff,0x9b,0xff,0x96,0xff,0x8c,0xff,0x6f,0xff,0x3a,0xff, +0x1,0xff,0xca,0xfe,0x91,0xfe,0x4c,0xfe,0x20,0xfe,0x62,0xfe, +0xa,0xff,0xe8,0xff,0x0,0x1,0x26,0x2,0xd,0x3,0x91,0x3, +0x96,0x3,0x20,0x3,0x5c,0x2,0x6b,0x1,0x9e,0x0,0x42,0x0, +0x36,0x0,0x74,0x0,0x6,0x1,0x8f,0x1,0xe4,0x1,0x1f,0x2, +0xa,0x2,0x85,0x1,0x9d,0x0,0x52,0xff,0x24,0xfe,0xa1,0xfd, +0x92,0xfd,0xd9,0xfd,0xb5,0xfe,0xd7,0xff,0xce,0x0,0xae,0x1, +0x6c,0x2,0xc9,0x2,0xc1,0x2,0x6c,0x2,0xd9,0x1,0x2d,0x1, +0xb7,0x0,0x82,0x0,0x40,0x0,0xf2,0xff,0xcf,0xff,0x89,0xff, +0xfa,0xfe,0x8f,0xfe,0x49,0xfe,0x0,0xfe,0x18,0xfe,0x8b,0xfe, +0xe4,0xfe,0x34,0xff,0x8d,0xff,0xae,0xff,0x99,0xff,0x6d,0xff, +0x39,0xff,0x30,0xff,0x62,0xff,0xb7,0xff,0x28,0x0,0x8d,0x0, +0xca,0x0,0xf5,0x0,0xfa,0x0,0xcd,0x0,0x9e,0x0,0x7a,0x0, +0x6b,0x0,0x9f,0x0,0x3,0x1,0x6c,0x1,0xc5,0x1,0xdb,0x1, +0xaf,0x1,0x8a,0x1,0x4b,0x1,0xb9,0x0,0x2c,0x0,0xf0,0xff, +0xd6,0xff,0xc3,0xff,0xdd,0xff,0x10,0x0,0x25,0x0,0x11,0x0, +0xe3,0xff,0xad,0xff,0x99,0xff,0xaa,0xff,0xaf,0xff,0x9d,0xff, +0x7e,0xff,0x5e,0xff,0x5e,0xff,0x8a,0xff,0xcc,0xff,0x21,0x0, +0x72,0x0,0x80,0x0,0x57,0x0,0x2e,0x0,0x14,0x0,0x12,0x0, +0x22,0x0,0x21,0x0,0x1,0x0,0xc5,0xff,0x67,0xff,0xd,0xff, +0xf3,0xfe,0x18,0xff,0x52,0xff,0x8e,0xff,0xc4,0xff,0xc1,0xff, +0x72,0xff,0x24,0xff,0xf3,0xfe,0xaa,0xfe,0x71,0xfe,0x74,0xfe, +0x73,0xfe,0x89,0xfe,0x5,0xff,0x9d,0xff,0x32,0x0,0xfb,0x0, +0x9a,0x1,0xc3,0x1,0xf7,0x1,0x62,0x2,0x9b,0x2,0x8b,0x2, +0x3d,0x2,0xa0,0x1,0xde,0x0,0x2c,0x0,0x97,0xff,0x40,0xff, +0x42,0xff,0x85,0xff,0xe0,0xff,0x3b,0x0,0x93,0x0,0xf4,0x0, +0x45,0x1,0x51,0x1,0x25,0x1,0xdf,0x0,0x62,0x0,0xa3,0xff, +0xe1,0xfe,0x42,0xfe,0xdc,0xfd,0xe7,0xfd,0x47,0xfe,0xb8,0xfe, +0x56,0xff,0x1c,0x0,0xbb,0x0,0x42,0x1,0xc2,0x1,0xe0,0x1, +0x90,0x1,0xfc,0x0,0x21,0x0,0x47,0xff,0xbb,0xfe,0x4a,0xfe, +0xed,0xfd,0xea,0xfd,0x2a,0xfe,0x7e,0xfe,0xe9,0xfe,0x56,0xff, +0xb5,0xff,0xfa,0xff,0xf8,0xff,0xb3,0xff,0x62,0xff,0x2d,0xff, +0x27,0xff,0x40,0xff,0x6b,0xff,0xc8,0xff,0x4e,0x0,0xd6,0x0, +0x5a,0x1,0xb0,0x1,0xb2,0x1,0x84,0x1,0x20,0x1,0x89,0x0, +0x29,0x0,0x2,0x0,0xb8,0xff,0x81,0xff,0x9a,0xff,0xbf,0xff, +0xeb,0xff,0x3f,0x0,0x82,0x0,0xa0,0x0,0xc3,0x0,0xe0,0x0, +0xfa,0x0,0x1e,0x1,0x16,0x1,0xc9,0x0,0x64,0x0,0xfe,0xff, +0xa2,0xff,0x82,0xff,0x97,0xff,0xa9,0xff,0xb2,0xff,0xd4,0xff, +0xfa,0xff,0xd,0x0,0x23,0x0,0x33,0x0,0xe,0x0,0xb5,0xff, +0x53,0xff,0xf0,0xfe,0x8b,0xfe,0x47,0xfe,0x37,0xfe,0x4e,0xfe, +0x98,0xfe,0xe,0xff,0x7e,0xff,0xed,0xff,0x7b,0x0,0xe9,0x0, +0x17,0x1,0x4a,0x1,0x74,0x1,0x61,0x1,0x45,0x1,0x21,0x1, +0xa3,0x0,0xf0,0xff,0x61,0xff,0xf3,0xfe,0xb2,0xfe,0xb7,0xfe, +0xd1,0xfe,0xfa,0xfe,0x4c,0xff,0x83,0xff,0x77,0xff,0x71,0xff, +0x8e,0xff,0x9b,0xff,0x99,0xff,0xba,0xff,0x16,0x0,0x8d,0x0, +0xf9,0x0,0x60,0x1,0xbd,0x1,0xd8,0x1,0xa3,0x1,0x52,0x1, +0xf3,0x0,0x8b,0x0,0x49,0x0,0x28,0x0,0xfe,0xff,0xe5,0xff, +0xe6,0xff,0xdd,0xff,0xd7,0xff,0xc8,0xff,0x75,0xff,0xfd,0xfe, +0xac,0xfe,0x8f,0xfe,0xb2,0xfe,0x2,0xff,0x47,0xff,0x94,0xff, +0xfe,0xff,0x46,0x0,0x68,0x0,0x77,0x0,0x41,0x0,0xed,0xff, +0xcd,0xff,0xae,0xff,0x77,0xff,0x63,0xff,0x6f,0xff,0x9c,0xff, +0xf8,0xff,0x34,0x0,0x3d,0x0,0x5f,0x0,0x7e,0x0,0x69,0x0, +0x6d,0x0,0x9a,0x0,0x9f,0x0,0x77,0x0,0x43,0x0,0xf0,0xff, +0x7d,0xff,0x28,0xff,0x14,0xff,0x23,0xff,0x38,0xff,0x56,0xff, +0x64,0xff,0x47,0xff,0x2d,0xff,0x51,0xff,0xb9,0xff,0x3d,0x0, +0xa7,0x0,0xfa,0x0,0x55,0x1,0x80,0x1,0x54,0x1,0x2b,0x1, +0x1b,0x1,0xdb,0x0,0x85,0x0,0x59,0x0,0x37,0x0,0x3,0x0, +0xd4,0xff,0x9f,0xff,0x60,0xff,0x2e,0xff,0xa,0xff,0xf7,0xfe, +0xf6,0xfe,0xeb,0xfe,0xc9,0xfe,0xb8,0xfe,0xc5,0xfe,0xf0,0xfe, +0x4a,0xff,0xc3,0xff,0x2c,0x0,0x6a,0x0,0x6f,0x0,0x3d,0x0, +0xa,0x0,0xe9,0xff,0xbd,0xff,0x99,0xff,0x9c,0xff,0xa2,0xff, +0x9d,0xff,0xa7,0xff,0xb8,0xff,0xbb,0xff,0xb7,0xff,0xa9,0xff, +0x94,0xff,0x8d,0xff,0x8d,0xff,0x97,0xff,0xb4,0xff,0xbd,0xff, +0xa9,0xff,0xc0,0xff,0x1d,0x0,0x6a,0x0,0x8e,0x0,0xc5,0x0, +0xf2,0x0,0xd3,0x0,0x95,0x0,0x6a,0x0,0x38,0x0,0xd,0x0, +0x1,0x0,0xf2,0xff,0xf9,0xff,0x39,0x0,0x7c,0x0,0xb0,0x0, +0xe4,0x0,0xdd,0x0,0xa1,0x0,0x7d,0x0,0x5c,0x0,0x3b,0x0, +0x47,0x0,0x38,0x0,0xf6,0xff,0xe1,0xff,0xe4,0xff,0xb5,0xff, +0x84,0xff,0x67,0xff,0x41,0xff,0x29,0xff,0x17,0xff,0x9,0xff, +0x2f,0xff,0x69,0xff,0x80,0xff,0xae,0xff,0x4,0x0,0x37,0x0, +0x51,0x0,0x69,0x0,0x4a,0x0,0xf2,0xff,0xab,0xff,0x73,0xff, +0x1c,0xff,0xc9,0xfe,0xb7,0xfe,0xd3,0xfe,0xf5,0xfe,0x2d,0xff, +0x81,0xff,0xd9,0xff,0x17,0x0,0x18,0x0,0xf6,0xff,0xec,0xff, +0xe2,0xff,0xb3,0xff,0x86,0xff,0x75,0xff,0x71,0xff,0x87,0xff, +0xb9,0xff,0xfa,0xff,0x4d,0x0,0x90,0x0,0xa6,0x0,0xb5,0x0, +0xc3,0x0,0xac,0x0,0x7c,0x0,0x43,0x0,0x9,0x0,0xe0,0xff, +0xb2,0xff,0x7c,0xff,0x6d,0xff,0x7c,0xff,0x97,0xff,0xd8,0xff, +0x18,0x0,0x33,0x0,0x67,0x0,0xb5,0x0,0xd4,0x0,0xde,0x0, +0xe4,0x0,0xa1,0x0,0x26,0x0,0xca,0xff,0x95,0xff,0x70,0xff, +0x63,0xff,0x66,0xff,0x61,0xff,0x47,0xff,0x39,0xff,0x5d,0xff, +0x93,0xff,0xb7,0xff,0xce,0xff,0xc3,0xff,0x8f,0xff,0x6c,0xff, +0x54,0xff,0x2c,0xff,0x31,0xff,0x5f,0xff,0x74,0xff,0xa2,0xff, +0x7,0x0,0x50,0x0,0x7e,0x0,0xa4,0x0,0x7b,0x0,0x23,0x0, +0xef,0xff,0xc3,0xff,0xa7,0xff,0xcf,0xff,0xf8,0xff,0x2,0x0, +0x26,0x0,0x44,0x0,0x44,0x0,0x5a,0x0,0x6c,0x0,0x56,0x0, +0x42,0x0,0x38,0x0,0x2a,0x0,0x3b,0x0,0x64,0x0,0x77,0x0, +0x79,0x0,0x71,0x0,0x4d,0x0,0x6,0x0,0xad,0xff,0x54,0xff, +0x8,0xff,0xe5,0xfe,0xc,0xff,0x57,0xff,0x90,0xff,0xc9,0xff, +0xa,0x0,0x2c,0x0,0x37,0x0,0x49,0x0,0x55,0x0,0x59,0x0, +0x55,0x0,0x32,0x0,0xfc,0xff,0xd6,0xff,0xc9,0xff,0xc3,0xff, +0xbe,0xff,0xd3,0xff,0x0,0x0,0x14,0x0,0xa,0x0,0x10,0x0, +0x1f,0x0,0x18,0x0,0x13,0x0,0x1f,0x0,0x1b,0x0,0xe0,0xff, +0x8d,0xff,0x6d,0xff,0x6d,0xff,0x58,0xff,0x6d,0xff,0xbf,0xff, +0xe5,0xff,0xed,0xff,0x26,0x0,0x6f,0x0,0xc1,0x0,0x2b,0x1, +0x62,0x1,0x67,0x1,0x67,0x1,0x2e,0x1,0xcd,0x0,0x97,0x0, +0x6a,0x0,0x2f,0x0,0xb,0x0,0xd6,0xff,0x89,0xff,0x66,0xff, +0x6f,0xff,0x8f,0xff,0xc8,0xff,0xee,0xff,0xf5,0xff,0xfe,0xff, +0xfa,0xff,0xe5,0xff,0xea,0xff,0x26,0x0,0x74,0x0,0x86,0x0, +0x51,0x0,0x7,0x0,0xad,0xff,0x62,0xff,0x6d,0xff,0x92,0xff, +0x7f,0xff,0x72,0xff,0x79,0xff,0x6e,0xff,0x7a,0xff,0x97,0xff, +0xa3,0xff,0xcb,0xff,0xfc,0xff,0x7,0x0,0x1d,0x0,0x38,0x0, +0x2e,0x0,0x34,0x0,0x3c,0x0,0x7,0x0,0xcb,0xff,0x96,0xff, +0x4d,0xff,0x28,0xff,0x2b,0xff,0x21,0xff,0x35,0xff,0x77,0xff, +0xb6,0xff,0xf2,0xff,0x27,0x0,0x4f,0x0,0x8c,0x0,0xb6,0x0, +0x9b,0x0,0x73,0x0,0x61,0x0,0x45,0x0,0x1f,0x0,0x2,0x0, +0x1,0x0,0x22,0x0,0x37,0x0,0x29,0x0,0x14,0x0,0x1,0x0, +0xf8,0xff,0xa,0x0,0x24,0x0,0x3b,0x0,0x47,0x0,0x1e,0x0, +0xd4,0xff,0xb1,0xff,0xa1,0xff,0x77,0xff,0x63,0xff,0x85,0xff, +0xb0,0xff,0xc9,0xff,0xe9,0xff,0x1a,0x0,0x45,0x0,0x57,0x0, +0x4e,0x0,0x36,0x0,0x16,0x0,0xed,0xff,0xd7,0xff,0xfa,0xff, +0x34,0x0,0x3b,0x0,0x16,0x0,0xfb,0xff,0xec,0xff,0xd0,0xff, +0xa8,0xff,0xa1,0xff,0xd3,0xff,0xfe,0xff,0xf9,0xff,0xf9,0xff, +0xf6,0xff,0xd0,0xff,0xc2,0xff,0xce,0xff,0xbc,0xff,0xbd,0xff, +0xe1,0xff,0xf1,0xff,0xc,0x0,0x3e,0x0,0x46,0x0,0x43,0x0, +0x5c,0x0,0x60,0x0,0x47,0x0,0x2a,0x0,0x8,0x0,0x0,0x0, +0x1d,0x0,0x43,0x0,0x70,0x0,0x87,0x0,0x69,0x0,0x47,0x0, +0x30,0x0,0xf5,0xff,0xb5,0xff,0xa8,0xff,0xb9,0xff,0xc0,0xff, +0xc0,0xff,0xda,0xff,0x8,0x0,0x17,0x0,0xfd,0xff,0xd1,0xff, +0xa1,0xff,0x98,0xff,0xc3,0xff,0xe2,0xff,0x6,0x0,0x49,0x0, +0x59,0x0,0x2a,0x0,0x14,0x0,0x11,0x0,0xf4,0xff,0xd4,0xff, +0xb4,0xff,0x87,0xff,0x64,0xff,0x59,0xff,0x61,0xff,0x6e,0xff, +0x7e,0xff,0x9a,0xff,0xb4,0xff,0xc8,0xff,0xf8,0xff,0x2f,0x0, +0x47,0x0,0x5e,0x0,0x74,0x0,0x64,0x0,0x34,0x0,0xec,0xff, +0xab,0xff,0xb0,0xff,0xc6,0xff,0xbc,0xff,0xde,0xff,0x23,0x0, +0x39,0x0,0x52,0x0,0x87,0x0,0x88,0x0,0x72,0x0,0x74,0x0, +0x58,0x0,0x23,0x0,0x2,0x0,0xda,0xff,0xc5,0xff,0xeb,0xff, +0x18,0x0,0x33,0x0,0x55,0x0,0x5c,0x0,0x3b,0x0,0x28,0x0, +0x2a,0x0,0x2b,0x0,0x33,0x0,0x2c,0x0,0x1,0x0,0xd4,0xff, +0xb6,0xff,0x93,0xff,0x81,0xff,0x94,0xff,0xb8,0xff,0xe5,0xff, +0xc,0x0,0xb,0x0,0xf5,0xff,0xf2,0xff,0xf0,0xff,0xdf,0xff, +0xcb,0xff,0xbd,0xff,0xca,0xff,0xf3,0xff,0x10,0x0,0x18,0x0, +0x24,0x0,0x29,0x0,0x1b,0x0,0x14,0x0,0x10,0x0,0xf4,0xff, +0xcf,0xff,0xc3,0xff,0xc4,0xff,0xb6,0xff,0x9c,0xff,0x7c,0xff, +0x62,0xff,0x6a,0xff,0x87,0xff,0x93,0xff,0xa8,0xff,0xe6,0xff, +0x22,0x0,0x48,0x0,0x66,0x0,0x76,0x0,0x7b,0x0,0x81,0x0, +0x74,0x0,0x5d,0x0,0x53,0x0,0x50,0x0,0x62,0x0,0x86,0x0, +0x9f,0x0,0xb3,0x0,0xa3,0x0,0x3d,0x0,0xd0,0xff,0xa1,0xff, +0x76,0xff,0x44,0xff,0x3d,0xff,0x4f,0xff,0x68,0xff,0xa0,0xff, +0x4,0x0,0x87,0x0,0xea,0x0,0x5,0x1,0x3,0x1,0xe4,0x0, +0x8c,0x0,0x36,0x0,0x9,0x0,0xf5,0xff,0xfc,0xff,0xf0,0xff, +0xa6,0xff,0x55,0xff,0x1f,0xff,0x9,0xff,0x35,0xff,0x79,0xff, +0xa8,0xff,0xea,0xff,0x36,0x0,0x55,0x0,0x5a,0x0,0x44,0x0, +0xd,0x0,0xdd,0xff,0x9a,0xff,0x38,0xff,0x4,0xff,0x4,0xff, +0xa,0xff,0x3f,0xff,0xa6,0xff,0x0,0x0,0x46,0x0,0x82,0x0, +0x96,0x0,0x82,0x0,0x6c,0x0,0x5e,0x0,0x45,0x0,0x2e,0x0, +0x2d,0x0,0x17,0x0,0xe3,0xff,0xcc,0xff,0xaa,0xff,0x67,0xff, +0x6a,0xff,0x96,0xff,0x86,0xff,0x9e,0xff,0xf9,0xff,0x16,0x0, +0x1d,0x0,0x54,0x0,0x66,0x0,0x56,0x0,0x4c,0x0,0x14,0x0, +0xd7,0xff,0xc4,0xff,0x95,0xff,0x77,0xff,0xb7,0xff,0xfa,0xff, +0x15,0x0,0x45,0x0,0x65,0x0,0x4b,0x0,0x27,0x0,0x13,0x0, +0x8,0x0,0xfb,0xff,0xe1,0xff,0xc4,0xff,0xb3,0xff,0xbc,0xff, +0xdf,0xff,0xf2,0xff,0xed,0xff,0xfa,0xff,0xfb,0xff,0xda,0xff, +0xd7,0xff,0xe7,0xff,0xd6,0xff,0xd1,0xff,0xe4,0xff,0xd8,0xff, +0xbd,0xff,0xaa,0xff,0x90,0xff,0x84,0xff,0x91,0xff,0xa4,0xff, +0xca,0xff,0xa,0x0,0x41,0x0,0x5d,0x0,0x6c,0x0,0x80,0x0, +0x91,0x0,0x82,0x0,0x5f,0x0,0x4e,0x0,0x3f,0x0,0x2c,0x0, +0x36,0x0,0x54,0x0,0x73,0x0,0x94,0x0,0x8b,0x0,0x4b,0x0, +0x25,0x0,0x24,0x0,0x9,0x0,0xea,0xff,0xee,0xff,0xe5,0xff, +0xce,0xff,0xd7,0xff,0xe6,0xff,0xde,0xff,0xd8,0xff,0xd9,0xff, +0xd8,0xff,0xe0,0xff,0xf2,0xff,0xb,0x0,0x20,0x0,0x1c,0x0, +0xe,0x0,0xd,0x0,0xff,0xff,0xeb,0xff,0xf2,0xff,0xf1,0xff, +0xdc,0xff,0xea,0xff,0xe,0x0,0x18,0x0,0x1a,0x0,0x1e,0x0, +0x9,0x0,0xe6,0xff,0xd1,0xff,0xb8,0xff,0x90,0xff,0x77,0xff, +0x80,0xff,0x85,0xff,0x79,0xff,0x95,0xff,0xcb,0xff,0xd2,0xff, +0xce,0xff,0xf7,0xff,0x21,0x0,0x30,0x0,0x3c,0x0,0x45,0x0, +0x51,0x0,0x5b,0x0,0x48,0x0,0x37,0x0,0x41,0x0,0x36,0x0, +0x16,0x0,0xb,0x0,0x3,0x0,0xff,0xff,0x1e,0x0,0x35,0x0, +0x2a,0x0,0x37,0x0,0x67,0x0,0x7e,0x0,0x84,0x0,0xa0,0x0, +0xac,0x0,0x83,0x0,0x5d,0x0,0x62,0x0,0x5c,0x0,0x39,0x0, +0x19,0x0,0xf8,0xff,0xd8,0xff,0xcd,0xff,0xc0,0xff,0xbb,0xff, +0xde,0xff,0xf7,0xff,0xf1,0xff,0x10,0x0,0x41,0x0,0x4c,0x0, +0x62,0x0,0x81,0x0,0x6e,0x0,0x4c,0x0,0x33,0x0,0xf7,0xff, +0xb6,0xff,0x93,0xff,0x6a,0xff,0x52,0xff,0x81,0xff,0xc3,0xff, +0xf3,0xff,0x2f,0x0,0x62,0x0,0x65,0x0,0x50,0x0,0x2f,0x0, +0xfe,0xff,0xd7,0xff,0xba,0xff,0xa4,0xff,0xb7,0xff,0xdf,0xff, +0xdf,0xff,0xd0,0xff,0xd6,0xff,0xc7,0xff,0xab,0xff,0xc2,0xff, +0xf0,0xff,0x9,0x0,0x31,0x0,0x6c,0x0,0x8c,0x0,0x99,0x0, +0xb1,0x0,0xcf,0x0,0xec,0x0,0xff,0x0,0xee,0x0,0xc8,0x0, +0xbc,0x0,0xb7,0x0,0x8e,0x0,0x6e,0x0,0x84,0x0,0x96,0x0, +0x7c,0x0,0x55,0x0,0xd,0x0,0x91,0xff,0x36,0xff,0x2a,0xff, +0x46,0xff,0x8d,0xff,0xef,0xff,0x14,0x0,0x1a,0x0,0x52,0x0, +0x88,0x0,0x87,0x0,0x7b,0x0,0x5e,0x0,0x19,0x0,0xdc,0xff, +0xb0,0xff,0x8f,0xff,0xac,0xff,0xf6,0xff,0x1c,0x0,0x2d,0x0, +0x4c,0x0,0x57,0x0,0x4c,0x0,0x46,0x0,0x4c,0x0,0x62,0x0, +0x77,0x0,0x70,0x0,0x5c,0x0,0x4a,0x0,0x1c,0x0,0xcc,0xff, +0x7d,0xff,0x3c,0xff,0x1,0xff,0xdd,0xfe,0xf0,0xfe,0x1b,0xff, +0x34,0xff,0x70,0xff,0xdb,0xff,0x24,0x0,0x50,0x0,0x8c,0x0, +0x99,0x0,0x83,0x0,0xa3,0x0,0xb9,0x0,0x97,0x0,0x9d,0x0, +0xb9,0x0,0xad,0x0,0xaf,0x0,0xbc,0x0,0x9b,0x0,0x78,0x0, +0x67,0x0,0x52,0x0,0x55,0x0,0x55,0x0,0x3b,0x0,0x47,0x0, +0x59,0x0,0x1b,0x0,0xda,0xff,0xca,0xff,0xa8,0xff,0x8c,0xff, +0x9d,0xff,0x8f,0xff,0x5e,0xff,0x57,0xff,0x7a,0xff,0xab,0xff, +0xf5,0xff,0x3e,0x0,0x66,0x0,0x7d,0x0,0x7e,0x0,0x5e,0x0, +0x42,0x0,0x3a,0x0,0x30,0x0,0x27,0x0,0x18,0x0,0xf5,0xff, +0xef,0xff,0x7,0x0,0xf4,0xff,0xd3,0xff,0xe0,0xff,0xe1,0xff, +0xc7,0xff,0xc8,0xff,0xbe,0xff,0xa6,0xff,0xbc,0xff,0xd8,0xff, +0xea,0xff,0x22,0x0,0x48,0x0,0x36,0x0,0x39,0x0,0x45,0x0, +0x23,0x0,0xf6,0xff,0xd3,0xff,0xbf,0xff,0xd9,0xff,0x5,0x0, +0x33,0x0,0x80,0x0,0xcd,0x0,0xf7,0x0,0x1c,0x1,0x39,0x1, +0x41,0x1,0x2f,0x1,0xed,0x0,0x94,0x0,0x43,0x0,0xdf,0xff, +0x81,0xff,0x61,0xff,0x57,0xff,0x63,0xff,0xae,0xff,0xff,0xff, +0x31,0x0,0x77,0x0,0xce,0x0,0x12,0x1,0x45,0x1,0x4d,0x1, +0xb,0x1,0xab,0x0,0x4e,0x0,0xe3,0xff,0x7a,0xff,0x4e,0xff, +0x4e,0xff,0x32,0xff,0x22,0xff,0x5b,0xff,0xae,0xff,0xf7,0xff, +0x4a,0x0,0x7f,0x0,0x89,0x0,0x8b,0x0,0x64,0x0,0x13,0x0, +0xe2,0xff,0xbf,0xff,0x87,0xff,0x6f,0xff,0x7b,0xff,0x8d,0xff, +0xbd,0xff,0xe,0x0,0x64,0x0,0xa9,0x0,0xd1,0x0,0xe3,0x0, +0xd9,0x0,0x9d,0x0,0x5b,0x0,0x34,0x0,0xfd,0xff,0xb8,0xff, +0x80,0xff,0x5a,0xff,0x70,0xff,0xbb,0xff,0xfb,0xff,0x44,0x0, +0x91,0x0,0x9c,0x0,0x9d,0x0,0xc0,0x0,0x9b,0x0,0x45,0x0, +0x3a,0x0,0x45,0x0,0x1a,0x0,0xf3,0xff,0xf5,0xff,0xc,0x0, +0x2d,0x0,0x3f,0x0,0x37,0x0,0x18,0x0,0xe5,0xff,0xba,0xff, +0xa2,0xff,0x86,0xff,0x7c,0xff,0xa3,0xff,0xd7,0xff,0xf2,0xff, +0x9,0x0,0x37,0x0,0x6a,0x0,0x87,0x0,0x8e,0x0,0x82,0x0, +0x65,0x0,0x45,0x0,0x17,0x0,0xd9,0xff,0xcd,0xff,0xf0,0xff, +0xeb,0xff,0xcb,0xff,0xc4,0xff,0x9e,0xff,0x64,0xff,0x69,0xff, +0x98,0xff,0xc1,0xff,0xe8,0xff,0xf4,0xff,0xe7,0xff,0xec,0xff, +0xcd,0xff,0x78,0xff,0x42,0xff,0x29,0xff,0x0,0xff,0x17,0xff, +0x9f,0xff,0x5b,0x0,0x30,0x1,0x4,0x2,0x8b,0x2,0xba,0x2, +0xb1,0x2,0x59,0x2,0xbc,0x1,0xf,0x1,0x49,0x0,0x5b,0xff, +0x98,0xfe,0x4a,0xfe,0x6f,0xfe,0xf3,0xfe,0xaf,0xff,0x49,0x0, +0x80,0x0,0x6f,0x0,0x44,0x0,0x13,0x0,0x1,0x0,0x27,0x0, +0x43,0x0,0x14,0x0,0xbc,0xff,0x5e,0xff,0xf1,0xfe,0x96,0xfe, +0x80,0xfe,0xba,0xfe,0x31,0xff,0xba,0xff,0x3c,0x0,0xc6,0x0, +0x3a,0x1,0x6e,0x1,0x76,0x1,0x4a,0x1,0xc1,0x0,0x0,0x0, +0x34,0xff,0x7c,0xfe,0x2a,0xfe,0x46,0xfe,0x8b,0xfe,0xf8,0xfe, +0x8d,0xff,0x7,0x0,0x4a,0x0,0x55,0x0,0x2f,0x0,0xb,0x0, +0xd9,0xff,0x7c,0xff,0x49,0xff,0x60,0xff,0x84,0xff,0xbe,0xff, +0x7,0x0,0x21,0x0,0x2d,0x0,0x38,0x0,0x9,0x0,0xd0,0xff, +0xda,0xff,0x8,0x0,0x59,0x0,0xdb,0x0,0x3d,0x1,0x5d,0x1, +0x6b,0x1,0x6b,0x1,0x4f,0x1,0x22,0x1,0xde,0x0,0x7b,0x0, +0xf,0x0,0xa6,0xff,0x44,0xff,0x3,0xff,0xd3,0xfe,0x8e,0xfe, +0x5b,0xfe,0x6c,0xfe,0x9e,0xfe,0xf1,0xfe,0x81,0xff,0x6,0x0, +0x5a,0x0,0xb6,0x0,0xdd,0x0,0xa6,0x0,0x7d,0x0,0x51,0x0, +0xd3,0xff,0x5d,0xff,0x19,0xff,0xdb,0xfe,0xe0,0xfe,0x25,0xff, +0x6e,0xff,0xed,0xff,0x6b,0x0,0x6e,0x0,0x55,0x0,0x63,0x0, +0x52,0x0,0x44,0x0,0x4e,0x0,0x33,0x0,0x1e,0x0,0x13,0x0, +0xcc,0xff,0x7a,0xff,0x35,0xff,0xd2,0xfe,0x87,0xfe,0x6a,0xfe, +0x55,0xfe,0x82,0xfe,0xf6,0xfe,0x71,0xff,0x1a,0x0,0xe1,0x0, +0x61,0x1,0xa7,0x1,0xd1,0x1,0xbe,0x1,0x82,0x1,0x1a,0x1, +0x72,0x0,0xd6,0xff,0x73,0xff,0x21,0xff,0xe4,0xfe,0xc8,0xfe, +0xc7,0xfe,0xdf,0xfe,0xed,0xfe,0xfb,0xfe,0x37,0xff,0x8b,0xff, +0xd2,0xff,0xc,0x0,0x27,0x0,0x45,0x0,0x83,0x0,0x88,0x0, +0x46,0x0,0x35,0x0,0x40,0x0,0x4,0x0,0xaf,0xff,0x7b,0xff, +0x54,0xff,0x51,0xff,0x8d,0xff,0xc1,0xff,0xca,0xff,0xee,0xff, +0x45,0x0,0x95,0x0,0xd5,0x0,0x10,0x1,0x36,0x1,0x3b,0x1, +0x0,0x1,0x6d,0x0,0xe5,0xff,0x9d,0xff,0x2d,0xff,0xa5,0xfe, +0x5e,0xfe,0x21,0xfe,0xe9,0xfd,0x16,0xfe,0x7e,0xfe,0xed,0xfe, +0x93,0xff,0x3b,0x0,0x9b,0x0,0xde,0x0,0xfd,0x0,0xd3,0x0, +0x90,0x0,0x51,0x0,0x1a,0x0,0xf6,0xff,0xd2,0xff,0xac,0xff, +0x95,0xff,0x80,0xff,0x81,0xff,0xa9,0xff,0xce,0xff,0xff,0xff, +0x4a,0x0,0x73,0x0,0x92,0x0,0xe2,0x0,0x23,0x1,0x26,0x1, +0x9,0x1,0xc0,0x0,0x4a,0x0,0xcc,0xff,0x5b,0xff,0xfe,0xfe, +0xa3,0xfe,0x4c,0xfe,0x34,0xfe,0x54,0xfe,0x91,0xfe,0x26,0xff, +0xe3,0xff,0x45,0x0,0x72,0x0,0xa6,0x0,0xa7,0x0,0x8f,0x0, +0x93,0x0,0x8b,0x0,0x66,0x0,0x33,0x0,0xe6,0xff,0xaf,0xff, +0xbc,0xff,0xf7,0xff,0x4e,0x0,0xa3,0x0,0xd9,0x0,0xfb,0x0, +0xea,0x0,0x86,0x0,0x1,0x0,0x71,0xff,0xac,0xfe,0x99,0xfd, +0x42,0xfc,0xe7,0xfa,0xdb,0xf9,0x65,0xf9,0x5,0xfa,0xf9,0xfb, +0x89,0xfe,0xf0,0x0,0xe4,0x2,0x1c,0x4,0xc7,0x4,0x7f,0x5, +0x6,0x6,0xbe,0x5,0x9b,0x4,0x9d,0x2,0x5,0x0,0xd5,0xfd, +0xcc,0xfc,0xdd,0xfc,0xb8,0xfd,0xd6,0xfe,0xb9,0xff,0x47,0x0, +0x86,0x0,0xa9,0x0,0xf,0x1,0xa3,0x1,0x1,0x2,0x4,0x2, +0x9d,0x1,0xd4,0x0,0xed,0xff,0x2,0xff,0xff,0xfd,0x3,0xfd, +0x39,0xfc,0xc1,0xfb,0xc8,0xfb,0x5d,0xfc,0x69,0xfd,0xba,0xfe, +0xf1,0xff,0xd7,0x0,0x82,0x1,0xf3,0x1,0xfb,0x1,0xa0,0x1, +0x1d,0x1,0xa5,0x0,0x3e,0x0,0xdb,0xff,0xb4,0xff,0x5,0x0, +0x93,0x0,0xfe,0x0,0x3c,0x1,0x3f,0x1,0xd3,0x0,0x20,0x0, +0x8a,0xff,0x2c,0xff,0xe0,0xfe,0x86,0xfe,0x18,0xfe,0xb6,0xfd, +0x77,0xfd,0x43,0xfd,0x1c,0xfd,0x34,0xfd,0x9f,0xfd,0x54,0xfe, +0x44,0xff,0x5e,0x0,0x96,0x1,0xce,0x2,0xb4,0x3,0xb,0x4, +0xc8,0x3,0xf5,0x2,0xd3,0x1,0xac,0x0,0x9d,0xff,0xd0,0xfe, +0x74,0xfe,0x71,0xfe,0xbb,0xfe,0x70,0xff,0x48,0x0,0xd4,0x0, +0x18,0x1,0x34,0x1,0x10,0x1,0xb1,0x0,0x3a,0x0,0x95,0xff, +0xbe,0xfe,0xc,0xfe,0xab,0xfd,0x81,0xfd,0xac,0xfd,0x39,0xfe, +0xc0,0xfe,0x23,0xff,0x9d,0xff,0x2,0x0,0x2f,0x0,0x69,0x0, +0xa6,0x0,0xb2,0x0,0xc3,0x0,0xe7,0x0,0xe9,0x0,0xdc,0x0, +0xcf,0x0,0xab,0x0,0x88,0x0,0x5a,0x0,0xe6,0xff,0x37,0xff, +0x7a,0xfe,0xdb,0xfd,0x74,0xfd,0x14,0xfd,0xd2,0xfc,0x2a,0xfd, +0x8,0xfe,0xf,0xff,0x48,0x0,0x88,0x1,0x7d,0x2,0x3c,0x3, +0x9f,0x3,0x5a,0x3,0xc1,0x2,0xe,0x2,0x14,0x1,0x27,0x0, +0x8f,0xff,0xf,0xff,0xc5,0xfe,0x2,0xff,0x79,0xff,0xe2,0xff, +0x42,0x0,0x73,0x0,0x5f,0x0,0x3d,0x0,0x13,0x0,0xd7,0xff, +0xa5,0xff,0x6e,0xff,0x5,0xff,0x73,0xfe,0xf6,0xfd,0xc6,0xfd, +0xf0,0xfd,0x49,0xfe,0xc3,0xfe,0x67,0xff,0xa,0x0,0xa3,0x0, +0x6a,0x1,0x54,0x2,0x16,0x3,0x87,0x3,0x7a,0x3,0xf3,0x2, +0x4b,0x2,0x8e,0x1,0x91,0x0,0xa6,0xff,0x5,0xff,0x7d,0xfe, +0x2c,0xfe,0x31,0xfe,0x31,0xfe,0x13,0xfe,0x6,0xfe,0xf4,0xfd, +0xf6,0xfd,0x62,0xfe,0x30,0xff,0x16,0x0,0xe7,0x0,0x80,0x1, +0xc1,0x1,0xb0,0x1,0x7c,0x1,0x41,0x1,0xd9,0x0,0x57,0x0, +0x1b,0x0,0x11,0x0,0xea,0xff,0xd0,0xff,0xeb,0xff,0x11,0x0, +0x30,0x0,0x3f,0x0,0x1b,0x0,0xbe,0xff,0x3b,0xff,0xca,0xfe, +0xb0,0xfe,0xda,0xfe,0x2c,0xff,0x9c,0xff,0xde,0xff,0xe1,0xff, +0xf1,0xff,0xb,0x0,0x29,0x0,0x76,0x0,0xb5,0x0,0xcd,0x0, +0x9,0x1,0x4b,0x1,0x6e,0x1,0xb2,0x1,0xdc,0x1,0x86,0x1, +0xdf,0x0,0x13,0x0,0x3c,0xff,0xcb,0xfe,0xe6,0xfe,0x54,0xff, +0xfe,0xff,0xc6,0x0,0x91,0x1,0x67,0x2,0x2b,0x3,0xb4,0x3, +0xde,0x3,0x7a,0x3,0xa3,0x2,0x8c,0x1,0x3b,0x0,0xf8,0xfe, +0xf6,0xfd,0xca,0xfc,0x47,0xfb,0xb6,0xf9,0x18,0xf8,0x85,0xf6, +0x87,0xf5,0x8e,0xf5,0xdb,0xf6,0x62,0xf9,0x8a,0xfc,0x9a,0xff, +0x21,0x2,0x7,0x4,0xb5,0x5,0x8a,0x7,0x1d,0x9,0x99,0x9, +0x69,0x8,0xb6,0x5,0xa8,0x2,0x86,0x0,0xb7,0xff,0xd7,0xff, +0x3b,0x0,0x66,0x0,0x44,0x0,0xdb,0xff,0x38,0xff,0xb8,0xfe, +0xad,0xfe,0x13,0xff,0xb0,0xff,0x19,0x0,0xf,0x0,0xdf,0xff, +0xda,0xff,0xf1,0xff,0x1,0x0,0xec,0xff,0xa0,0xff,0x61,0xff, +0x7f,0xff,0xe1,0xff,0x3c,0x0,0x85,0x0,0xd2,0x0,0x15,0x1, +0x38,0x1,0x3e,0x1,0x11,0x1,0x8b,0x0,0xf4,0xff,0xcc,0xff, +0x1d,0x0,0xae,0x0,0x72,0x1,0x37,0x2,0x83,0x2,0x29,0x2, +0x5f,0x1,0x51,0x0,0x1f,0xff,0xe4,0xfd,0xa9,0xfc,0x96,0xfb, +0xe3,0xfa,0x7b,0xfa,0x39,0xfa,0x33,0xfa,0x7a,0xfa,0x1b,0xfb, +0x24,0xfc,0x4d,0xfd,0x52,0xfe,0x67,0xff,0x96,0x0,0xa1,0x1, +0xb3,0x2,0xcd,0x3,0x53,0x4,0x5,0x4,0x34,0x3,0x2d,0x2, +0x60,0x1,0x30,0x1,0x84,0x1,0x39,0x2,0x3e,0x3,0x36,0x4, +0xb8,0x4,0x9b,0x4,0xe2,0x3,0xc1,0x2,0x7c,0x1,0x55,0x0, +0x7c,0xff,0xb9,0xfe,0xd9,0xfd,0x38,0xfd,0x16,0xfd,0x58,0xfd, +0x13,0xfe,0x13,0xff,0xa1,0xff,0xba,0xff,0xd8,0xff,0xf2,0xff, +0xfc,0xff,0x50,0x0,0xea,0x0,0x73,0x1,0xcc,0x1,0xf1,0x1, +0xf0,0x1,0xe1,0x1,0xb3,0x1,0x53,0x1,0xcd,0x0,0x19,0x0, +0x41,0xff,0x92,0xfe,0x4d,0xfe,0x4e,0xfe,0x44,0xfe,0xfe,0xfd, +0x8a,0xfd,0x18,0xfd,0xe7,0xfc,0x1d,0xfd,0x95,0xfd,0x7,0xfe, +0x5d,0xfe,0x9a,0xfe,0xcf,0xfe,0x36,0xff,0xed,0xff,0xba,0x0, +0x66,0x1,0xd2,0x1,0xc1,0x1,0x52,0x1,0x5,0x1,0xf1,0x0, +0xd6,0x0,0xd2,0x0,0xfe,0x0,0x35,0x1,0x84,0x1,0xe6,0x1, +0x28,0x2,0x72,0x2,0xdb,0x2,0x6,0x3,0xdd,0x2,0x79,0x2, +0xb1,0x1,0xb6,0x0,0xde,0xff,0x1f,0xff,0xaf,0xfe,0xd6,0xfe, +0x38,0xff,0x8e,0xff,0xf,0x0,0xaf,0x0,0x48,0x1,0xe0,0x1, +0x38,0x2,0x1a,0x2,0xaa,0x1,0xef,0x0,0xfe,0xff,0x28,0xff, +0x90,0xfe,0x46,0xfe,0x6b,0xfe,0xd1,0xfe,0x36,0xff,0x96,0xff, +0xcb,0xff,0xb5,0xff,0x87,0xff,0x4c,0xff,0xd3,0xfe,0x36,0xfe, +0xb0,0xfd,0x67,0xfd,0x9b,0xfd,0x54,0xfe,0x23,0xff,0xc7,0xff, +0x5e,0x0,0xd5,0x0,0x17,0x1,0x5c,0x1,0xaa,0x1,0xd1,0x1, +0xd4,0x1,0xad,0x1,0x50,0x1,0xe,0x1,0x15,0x1,0x31,0x1, +0x56,0x1,0x74,0x1,0x44,0x1,0xd4,0x0,0x75,0x0,0x6b,0x0, +0xf6,0x0,0xed,0x1,0xce,0x2,0x6b,0x3,0xb9,0x3,0xaf,0x3, +0xa8,0x3,0xb3,0x3,0x55,0x3,0x7e,0x2,0x75,0x1,0x4b,0x0, +0x57,0xff,0xfc,0xfe,0x10,0xff,0x5f,0xff,0xdf,0xff,0x61,0x0, +0xb2,0x0,0xa3,0x0,0x32,0x0,0xb5,0xff,0x4f,0xff,0xc2,0xfe, +0x12,0xfe,0x64,0xfd,0xb4,0xfc,0x9,0xfc,0x31,0xfb,0xbd,0xf9, +0xc4,0xf7,0xc3,0xf5,0xef,0xf3,0x81,0xf2,0x16,0xf2,0x51,0xf3, +0x50,0xf6,0x93,0xfa,0x64,0xff,0x18,0x4,0x14,0x8,0x17,0xb, +0x30,0xd,0x26,0xe,0x80,0xd,0x9,0xb,0x21,0x7,0xd3,0x2, +0x4b,0xff,0x28,0xfd,0x8a,0xfc,0xc,0xfd,0xe2,0xfd,0xa4,0xfe, +0x51,0xff,0xc7,0xff,0x52,0x0,0x84,0x1,0x6,0x3,0x20,0x4, +0x9e,0x4,0x5a,0x4,0x67,0x3,0x7f,0x2,0xfa,0x1,0x7f,0x1, +0x1,0x1,0xa1,0x0,0x39,0x0,0xe2,0xff,0xf4,0xff,0x6b,0x0, +0x1d,0x1,0xfa,0x1,0xb7,0x2,0xff,0x2,0xea,0x2,0x97,0x2, +0xf5,0x1,0x1f,0x1,0x3a,0x0,0x47,0xff,0x5e,0xfe,0x81,0xfd, +0x6f,0xfc,0x20,0xfb,0xda,0xf9,0xcd,0xf8,0x1a,0xf8,0xbc,0xf7, +0x89,0xf7,0xbf,0xf7,0xa1,0xf8,0xc6,0xf9,0xdf,0xfa,0xb,0xfc, +0x4,0xfd,0x9d,0xfd,0x58,0xfe,0x4d,0xff,0xb,0x0,0xb0,0x0, +0x92,0x1,0x8a,0x2,0x72,0x3,0x4d,0x4,0xeb,0x4,0x17,0x5, +0xc8,0x4,0x18,0x4,0x42,0x3,0x76,0x2,0xc8,0x1,0x54,0x1, +0x12,0x1,0xd8,0x0,0xca,0x0,0x1e,0x1,0x9d,0x1,0xb,0x2, +0x6d,0x2,0x99,0x2,0x4b,0x2,0x9f,0x1,0xeb,0x0,0x78,0x0, +0x54,0x0,0x49,0x0,0x33,0x0,0x27,0x0,0x13,0x0,0xea,0xff, +0xfb,0xff,0x5f,0x0,0xb5,0x0,0xea,0x0,0x2b,0x1,0x59,0x1, +0x4c,0x1,0x31,0x1,0x27,0x1,0x29,0x1,0x1b,0x1,0xa2,0x0, +0x71,0xff,0xe5,0xfd,0x9f,0xfc,0xcd,0xfb,0x4f,0xfb,0x30,0xfb, +0x77,0xfb,0xeb,0xfb,0x72,0xfc,0x15,0xfd,0xb2,0xfd,0x36,0xfe, +0xc6,0xfe,0x5e,0xff,0xc8,0xff,0xfc,0xff,0x6,0x0,0xf2,0xff, +0xe7,0xff,0xf8,0xff,0xff,0xff,0xdb,0xff,0x97,0xff,0x4a,0xff, +0x9,0xff,0xf6,0xfe,0x2c,0xff,0xc4,0xff,0xd0,0x0,0x13,0x2, +0x23,0x3,0xe1,0x3,0x5f,0x4,0x76,0x4,0xb,0x4,0x51,0x3, +0x7a,0x2,0x9d,0x1,0xd6,0x0,0x39,0x0,0xd6,0xff,0xc5,0xff, +0xd,0x0,0x99,0x0,0x40,0x1,0xcc,0x1,0x36,0x2,0x74,0x2, +0x44,0x2,0xc0,0x1,0x48,0x1,0xbf,0x0,0x11,0x0,0xa1,0xff, +0x60,0xff,0xf8,0xfe,0xb1,0xfe,0xe3,0xfe,0x6f,0xff,0x29,0x0, +0xd6,0x0,0x11,0x1,0xd4,0x0,0x42,0x0,0x5e,0xff,0x67,0xfe, +0xb8,0xfd,0x4e,0xfd,0xa,0xfd,0xfc,0xfc,0x2d,0xfd,0x9b,0xfd, +0x44,0xfe,0x9,0xff,0xab,0xff,0xf2,0xff,0xd1,0xff,0x6a,0xff, +0xf5,0xfe,0xa7,0xfe,0x9c,0xfe,0xc7,0xfe,0x13,0xff,0x87,0xff, +0x1e,0x0,0xb2,0x0,0x54,0x1,0x2d,0x2,0xf7,0x2,0x63,0x3, +0xba,0x3,0x1e,0x4,0x38,0x4,0xb,0x4,0xe7,0x3,0xca,0x3, +0xb0,0x3,0x9d,0x3,0x35,0x3,0x79,0x2,0xef,0x1,0xb7,0x1, +0x92,0x1,0x68,0x1,0x31,0x1,0xda,0x0,0x51,0x0,0x8d,0xff, +0xca,0xfe,0x22,0xfe,0x49,0xfd,0x37,0xfc,0x39,0xfb,0x54,0xfa, +0x7d,0xf9,0xaf,0xf8,0xc5,0xf7,0xc8,0xf6,0xb2,0xf5,0x53,0xf4, +0x1b,0xf3,0xb9,0xf2,0x46,0xf3,0xf3,0xf4,0xee,0xf7,0x95,0xfb, +0x62,0xff,0x4f,0x3,0xe9,0x6,0xca,0x9,0xec,0xb,0xd4,0xc, +0x12,0xc,0xf4,0x9,0xe6,0x6,0x89,0x3,0xc4,0x0,0xec,0xfe, +0x15,0xfe,0x70,0xfe,0x78,0xff,0x6d,0x0,0x46,0x1,0xf9,0x1, +0x51,0x2,0x96,0x2,0xe7,0x2,0xe0,0x2,0x61,0x2,0xa2,0x1, +0xd7,0x0,0x34,0x0,0xbc,0xff,0x51,0xff,0xfb,0xfe,0xd9,0xfe, +0x18,0xff,0xe6,0xff,0x6,0x1,0x14,0x2,0xa,0x3,0xeb,0x3, +0x71,0x4,0x73,0x4,0xf1,0x3,0xef,0x2,0x9f,0x1,0x4f,0x0, +0x26,0xff,0x39,0xfe,0x9b,0xfd,0x5e,0xfd,0x60,0xfd,0x35,0xfd, +0xab,0xfc,0x8,0xfc,0x78,0xfb,0xd3,0xfa,0x2d,0xfa,0xb2,0xf9, +0x35,0xf9,0x84,0xf8,0xcb,0xf7,0x57,0xf7,0x64,0xf7,0xf,0xf8, +0x4f,0xf9,0x2,0xfb,0xf2,0xfc,0xee,0xfe,0xe3,0x0,0xad,0x2, +0x17,0x4,0xc,0x5,0x73,0x5,0x31,0x5,0x69,0x4,0x3f,0x3, +0xe2,0x1,0x3,0x1,0x2d,0x1,0x14,0x2,0x3f,0x3,0x51,0x4, +0xcd,0x4,0xa8,0x4,0x27,0x4,0x34,0x3,0xa,0x2,0x4c,0x1, +0xdb,0x0,0x50,0x0,0xea,0xff,0xad,0xff,0x38,0xff,0xb9,0xfe, +0x74,0xfe,0x61,0xfe,0xad,0xfe,0x69,0xff,0x34,0x0,0xe7,0x0, +0x89,0x1,0xeb,0x1,0x5,0x2,0x24,0x2,0x78,0x2,0xe9,0x2, +0x3b,0x3,0x33,0x3,0xb8,0x2,0xcf,0x1,0xb6,0x0,0xbc,0xff, +0xe9,0xfe,0xb,0xfe,0x9,0xfd,0xd6,0xfb,0x95,0xfa,0xb6,0xf9, +0x7d,0xf9,0xc8,0xf9,0x50,0xfa,0xd5,0xfa,0x5c,0xfb,0x6,0xfc, +0xaa,0xfc,0x38,0xfd,0x2,0xfe,0x6,0xff,0xfe,0xff,0xeb,0x0, +0xc5,0x1,0x55,0x2,0xae,0x2,0xd9,0x2,0xa0,0x2,0xf,0x2, +0x7b,0x1,0x2c,0x1,0x4d,0x1,0xce,0x1,0x7f,0x2,0x48,0x3, +0xe0,0x3,0xea,0x3,0x6e,0x3,0x85,0x2,0x31,0x1,0xc4,0xff, +0x8a,0xfe,0x97,0xfd,0x3c,0xfd,0xab,0xfd,0x7d,0xfe,0x55,0xff, +0x11,0x0,0xa6,0x0,0x57,0x1,0x42,0x2,0xf,0x3,0x9d,0x3, +0xd,0x4,0x3b,0x4,0x35,0x4,0x40,0x4,0x2d,0x4,0xde,0x3, +0xa2,0x3,0x7a,0x3,0x3e,0x3,0x3,0x3,0x87,0x2,0x93,0x1, +0xa0,0x0,0xf1,0xff,0x2a,0xff,0x46,0xfe,0x92,0xfd,0xd,0xfd, +0x9f,0xfc,0x30,0xfc,0xbc,0xfb,0x8d,0xfb,0xb2,0xfb,0xd3,0xfb, +0x17,0xfc,0xcb,0xfc,0x7f,0xfd,0xe8,0xfd,0x58,0xfe,0xec,0xfe, +0xaa,0xff,0xc5,0x0,0x1,0x2,0xc,0x3,0xf2,0x3,0x77,0x4, +0x40,0x4,0x7c,0x3,0x74,0x2,0x69,0x1,0xc6,0x0,0x7f,0x0, +0x35,0x0,0xee,0xff,0xb2,0xff,0x8f,0xff,0xf7,0xff,0xcf,0x0, +0x48,0x1,0x17,0x1,0x58,0x0,0x1e,0xff,0xd7,0xfd,0xc4,0xfc, +0xa4,0xfb,0x75,0xfa,0x2a,0xf9,0x3c,0xf7,0xb1,0xf4,0xe,0xf2, +0x90,0xef,0xd7,0xed,0x11,0xee,0xcd,0xf0,0xd5,0xf5,0x7f,0xfc, +0x98,0x3,0x26,0xa,0xfa,0xf,0xf7,0x14,0x78,0x18,0x85,0x19, +0x43,0x17,0x99,0x11,0xb0,0x9,0x88,0x1,0x1,0xfb,0x12,0xf7, +0xc8,0xf5,0xa8,0xf6,0xc7,0xf8,0x1,0xfb,0xaf,0xfc,0xf5,0xfd, +0x53,0xff,0x6,0x1,0xa7,0x2,0x82,0x3,0x4d,0x3,0x4c,0x2, +0xa,0x1,0x2b,0x0,0xd,0x0,0x52,0x0,0x43,0x0,0xa4,0xff, +0xd6,0xfe,0x58,0xfe,0x70,0xfe,0x2a,0xff,0x64,0x0,0xdf,0x1, +0x4d,0x3,0x57,0x4,0xca,0x4,0xc3,0x4,0x61,0x4,0x8b,0x3, +0x4f,0x2,0xdc,0x0,0x29,0xff,0x42,0xfd,0x85,0xfb,0x2f,0xfa, +0x36,0xf9,0x79,0xf8,0xb9,0xf7,0xde,0xf6,0x42,0xf6,0x43,0xf6, +0xda,0xf6,0xcf,0xf7,0xc,0xf9,0xa6,0xfa,0xb7,0xfc,0x37,0xff, +0x5,0x2,0xdf,0x4,0x49,0x7,0xe4,0x8,0xae,0x9,0xb4,0x9, +0xed,0x8,0x78,0x7,0x8c,0x5,0x61,0x3,0x59,0x1,0xe3,0xff, +0x22,0xff,0x5,0xff,0x6e,0xff,0x32,0x0,0x2a,0x1,0x2b,0x2, +0xe8,0x2,0x2e,0x3,0x2,0x3,0x58,0x2,0x3a,0x1,0x1b,0x0, +0x68,0xff,0x6,0xff,0xb6,0xfe,0x61,0xfe,0x7,0xfe,0xf9,0xfd, +0x87,0xfe,0x93,0xff,0xf8,0x0,0x8a,0x2,0xa9,0x3,0xed,0x3, +0xbe,0x3,0x71,0x3,0xf8,0x2,0x62,0x2,0x99,0x1,0x83,0x0, +0x74,0xff,0xa5,0xfe,0xfb,0xfd,0x95,0xfd,0x67,0xfd,0xf1,0xfc, +0x35,0xfc,0xb0,0xfb,0x81,0xfb,0xa7,0xfb,0x3b,0xfc,0x11,0xfd, +0xe0,0xfd,0x95,0xfe,0x32,0xff,0xc8,0xff,0x45,0x0,0x6f,0x0, +0x4b,0x0,0x9,0x0,0xaf,0xff,0x7e,0xff,0xec,0xff,0xeb,0x0, +0x29,0x2,0x64,0x3,0x3e,0x4,0x97,0x4,0xc4,0x4,0xca,0x4, +0x59,0x4,0xa0,0x3,0x11,0x3,0xc5,0x2,0xaf,0x2,0xe2,0x2, +0x61,0x3,0xe7,0x3,0x15,0x4,0xcd,0x3,0x7,0x3,0xa1,0x1, +0xda,0xff,0x49,0xfe,0x24,0xfd,0x74,0xfc,0x77,0xfc,0x6,0xfd, +0xaf,0xfd,0x73,0xfe,0x57,0xff,0xf9,0xff,0x51,0x0,0x8c,0x0, +0x8f,0x0,0x6a,0x0,0x77,0x0,0xb1,0x0,0xf0,0x0,0x47,0x1, +0xbe,0x1,0x37,0x2,0x85,0x2,0x64,0x2,0xbf,0x1,0x3,0x1, +0x94,0x0,0x50,0x0,0xf,0x0,0xee,0xff,0xd9,0xff,0xa3,0xff, +0x75,0xff,0x81,0xff,0x9b,0xff,0x8e,0xff,0x6f,0xff,0x75,0xff, +0xb8,0xff,0x2,0x0,0x16,0x0,0x28,0x0,0x73,0x0,0xb2,0x0, +0xbc,0x0,0xcf,0x0,0x15,0x1,0x90,0x1,0x2f,0x2,0xb8,0x2, +0x29,0x3,0x9c,0x3,0xb9,0x3,0x36,0x3,0x56,0x2,0x52,0x1, +0x2e,0x0,0x16,0xff,0x2d,0xfe,0x6e,0xfd,0xd9,0xfc,0x4f,0xfc, +0xa1,0xfb,0xc9,0xfa,0xce,0xf9,0x9b,0xf8,0x10,0xf7,0x32,0xf5, +0x1f,0xf3,0xeb,0xf0,0xc4,0xee,0x2c,0xed,0xe0,0xec,0x98,0xee, +0xb6,0xf2,0xdd,0xf8,0x27,0x0,0x90,0x7,0x8,0xe,0x12,0x13, +0xe7,0x16,0x2f,0x19,0xf7,0x18,0xe0,0x15,0xc,0x10,0x48,0x8, +0xb3,0x0,0x15,0xfb,0x96,0xf7,0x47,0xf6,0x34,0xf7,0x36,0xf9, +0x3d,0xfb,0x5f,0xfd,0xa6,0xff,0xeb,0x1,0xf,0x4,0x7c,0x5, +0xa7,0x5,0xc3,0x4,0x2d,0x3,0x68,0x1,0x1f,0x0,0x5c,0xff, +0xca,0xfe,0x5e,0xfe,0x1c,0xfe,0x4a,0xfe,0x76,0xff,0x79,0x1, +0x87,0x3,0x4a,0x5,0xa9,0x6,0x4b,0x7,0x6,0x7,0x16,0x6, +0xc1,0x4,0x6,0x3,0xa4,0x0,0xdd,0xfd,0x84,0xfb,0xd9,0xf9, +0x72,0xf8,0x2a,0xf7,0x10,0xf6,0x16,0xf5,0x5b,0xf4,0x3,0xf4, +0x18,0xf4,0xc4,0xf4,0xf4,0xf5,0x38,0xf7,0x87,0xf8,0x39,0xfa, +0x51,0xfc,0x8a,0xfe,0xc4,0x0,0xe6,0x2,0xb8,0x4,0x5,0x6, +0xc1,0x6,0x15,0x7,0x2c,0x7,0x10,0x7,0xa7,0x6,0xb8,0x5, +0x34,0x4,0x69,0x2,0xc9,0x0,0xba,0xff,0x6c,0xff,0xc6,0xff, +0xb2,0x0,0x2b,0x2,0xda,0x3,0x57,0x5,0x6e,0x6,0xba,0x6, +0x6,0x6,0xc7,0x4,0x64,0x3,0xd7,0x1,0x44,0x0,0xe3,0xfe, +0xde,0xfd,0x69,0xfd,0x9c,0xfd,0x77,0xfe,0xfc,0xff,0xc0,0x1, +0x2c,0x3,0xfe,0x3,0x2,0x4,0x2d,0x3,0x13,0x2,0xc,0x1, +0xbc,0xff,0xb,0xfe,0x5a,0xfc,0xd7,0xfa,0x88,0xf9,0x9f,0xf8, +0x49,0xf8,0x82,0xf8,0x34,0xf9,0x5b,0xfa,0xd1,0xfb,0x59,0xfd, +0xf2,0xfe,0x99,0x0,0x5,0x2,0x5,0x3,0x69,0x3,0xdb,0x2, +0x9b,0x1,0x62,0x0,0x68,0xff,0xa2,0xfe,0x35,0xfe,0x29,0xfe, +0x71,0xfe,0xf2,0xfe,0x7f,0xff,0x30,0x0,0x2d,0x1,0x44,0x2, +0x6c,0x3,0xaa,0x4,0x90,0x5,0xeb,0x5,0xec,0x5,0x7d,0x5, +0x9f,0x4,0xa9,0x3,0x98,0x2,0x4e,0x1,0x21,0x0,0x68,0xff, +0x26,0xff,0x2a,0xff,0x61,0xff,0xf1,0xff,0xda,0x0,0xd8,0x1, +0xbd,0x2,0x3e,0x3,0x10,0x3,0x62,0x2,0x72,0x1,0x6e,0x0, +0xe8,0xff,0x1a,0x0,0x6d,0x0,0x87,0x0,0x8e,0x0,0x8a,0x0, +0x73,0x0,0x35,0x0,0xd3,0xff,0x8d,0xff,0x45,0xff,0x9d,0xfe, +0xe6,0xfd,0x96,0xfd,0x9b,0xfd,0xe0,0xfd,0x55,0xfe,0xc1,0xfe, +0x1f,0xff,0x5e,0xff,0x4b,0xff,0x22,0xff,0x21,0xff,0x1d,0xff, +0x18,0xff,0x2a,0xff,0x36,0xff,0x61,0xff,0xda,0xff,0x60,0x0, +0xba,0x0,0x7,0x1,0x4c,0x1,0x55,0x1,0x21,0x1,0x20,0x1, +0x7d,0x1,0xd5,0x1,0x32,0x2,0xa,0x3,0x23,0x4,0xfa,0x4, +0x86,0x5,0xa0,0x5,0x18,0x5,0x2b,0x4,0xf1,0x2,0x5a,0x1, +0xb0,0xff,0x13,0xfe,0x76,0xfc,0xf,0xfb,0xd8,0xf9,0x57,0xf8, +0x5b,0xf6,0xf7,0xf3,0x1c,0xf1,0xd4,0xed,0x8e,0xea,0x18,0xe8, +0x71,0xe7,0x64,0xe9,0x36,0xee,0x6d,0xf5,0xd5,0xfd,0x2e,0x6, +0xac,0xd,0xe4,0x13,0x69,0x18,0x7c,0x1a,0x66,0x19,0x15,0x15, +0x49,0xe,0x98,0x6,0x17,0x0,0xf3,0xfb,0x5,0xfa,0xfd,0xf9, +0x7f,0xfb,0xab,0xfd,0xed,0xff,0x52,0x2,0xa5,0x4,0x53,0x6, +0xe0,0x6,0x2,0x6,0xde,0x3,0x1,0x1,0xf3,0xfd,0x28,0xfb, +0xf,0xf9,0xd0,0xf7,0x4c,0xf7,0x7d,0xf7,0xa0,0xf8,0xfc,0xfa, +0x5c,0xfe,0xfc,0x1,0x37,0x5,0xe3,0x7,0xd0,0x9,0xb0,0xa, +0x86,0xa,0x84,0x9,0xaa,0x7,0xf3,0x4,0xa4,0x1,0x3e,0xfe, +0x5c,0xfb,0x4d,0xf9,0xeb,0xf7,0x8,0xf7,0x9d,0xf6,0x85,0xf6, +0x98,0xf6,0xc8,0xf6,0x2,0xf7,0x54,0xf7,0xc1,0xf7,0xe1,0xf7, +0x9e,0xf7,0x99,0xf7,0x2c,0xf8,0x55,0xf9,0x4d,0xfb,0xf9,0xfd, +0xc9,0x0,0x6a,0x3,0xb4,0x5,0x8a,0x7,0x2,0x9,0xe3,0x9, +0xd4,0x9,0xa,0x9,0xb8,0x7,0xd6,0x5,0xbf,0x3,0xbe,0x1, +0xda,0xff,0x84,0xfe,0x1c,0xfe,0x65,0xfe,0x48,0xff,0xb4,0x0, +0x12,0x2,0x15,0x3,0xe7,0x3,0x79,0x4,0xb8,0x4,0xaf,0x4, +0x13,0x4,0xb2,0x2,0xf4,0x0,0x60,0xff,0x52,0xfe,0xfd,0xfd, +0x45,0xfe,0xd8,0xfe,0x67,0xff,0x8c,0xff,0x2c,0xff,0xc5,0xfe, +0xaa,0xfe,0x9d,0xfe,0x85,0xfe,0xa8,0xfe,0xb,0xff,0x69,0xff, +0xb4,0xff,0xed,0xff,0xc4,0xff,0xd1,0xfe,0x25,0xfd,0x62,0xfb, +0x29,0xfa,0xa5,0xf9,0xc5,0xf9,0x71,0xfa,0x76,0xfb,0x9f,0xfc, +0xd8,0xfd,0x5,0xff,0x6,0x0,0xd4,0x0,0x4a,0x1,0x21,0x1, +0x69,0x0,0xa3,0xff,0x2d,0xff,0xc,0xff,0x4e,0xff,0xf5,0xff, +0xba,0x0,0x77,0x1,0x39,0x2,0xe3,0x2,0x7e,0x3,0x3e,0x4, +0xee,0x4,0x5d,0x5,0xb9,0x5,0xc1,0x5,0xf9,0x4,0xb6,0x3, +0x6f,0x2,0x25,0x1,0xff,0xff,0x37,0xff,0xcd,0xfe,0xe4,0xfe, +0x9a,0xff,0xc0,0x0,0x11,0x2,0x22,0x3,0x90,0x3,0x75,0x3, +0xe0,0x2,0x87,0x1,0xa9,0xff,0xee,0xfd,0x84,0xfc,0x5d,0xfb, +0xb8,0xfa,0xdd,0xfa,0xc3,0xfb,0x37,0xfd,0x21,0xff,0x51,0x1, +0x3e,0x3,0x6f,0x4,0xda,0x4,0xa5,0x4,0x0,0x4,0xc,0x3, +0xbf,0x1,0x32,0x0,0xa3,0xfe,0x45,0xfd,0x53,0xfc,0xeb,0xfb, +0xea,0xfb,0x51,0xfc,0x7,0xfd,0xaa,0xfd,0x45,0xfe,0x10,0xff, +0xd3,0xff,0x71,0x0,0x5,0x1,0x58,0x1,0x61,0x1,0x5d,0x1, +0x63,0x1,0xaa,0x1,0x49,0x2,0xc9,0x2,0x14,0x3,0x72,0x3, +0xaf,0x3,0xb4,0x3,0xd4,0x3,0x3,0x4,0x13,0x4,0x1f,0x4, +0x7,0x4,0x85,0x3,0xb7,0x2,0xe5,0x1,0x2a,0x1,0x68,0x0, +0x70,0xff,0x6,0xfe,0xec,0xfb,0x38,0xf9,0x16,0xf6,0x58,0xf2, +0x16,0xee,0xfa,0xe9,0x92,0xe6,0xb6,0xe4,0x9b,0xe5,0x6f,0xe9, +0x72,0xef,0xe8,0xf6,0xae,0xfe,0xda,0x5,0x73,0xc,0x15,0x12, +0xc6,0x15,0xf7,0x16,0x31,0x15,0x90,0x10,0xcc,0xa,0xc5,0x5, +0x63,0x2,0x8,0x1,0x46,0x1,0x4c,0x2,0xe1,0x3,0x87,0x5, +0x87,0x6,0x1a,0x7,0x73,0x7,0xe6,0x6,0x8,0x5,0xf6,0x1, +0x18,0xfe,0x51,0xfa,0x54,0xf7,0x43,0xf5,0x59,0xf4,0xa1,0xf4, +0xac,0xf5,0x47,0xf7,0x9b,0xf9,0x8f,0xfc,0xb0,0xff,0x8f,0x2, +0xfb,0x4,0xe2,0x6,0x13,0x8,0x5c,0x8,0xca,0x7,0xaa,0x6, +0x5c,0x5,0xf8,0x3,0x69,0x2,0xe9,0x0,0xaf,0xff,0xa7,0xfe, +0xde,0xfd,0x65,0xfd,0x13,0xfd,0xcc,0xfc,0x4f,0xfc,0x4d,0xfb, +0xff,0xf9,0x9b,0xf8,0xf5,0xf6,0x51,0xf5,0x34,0xf4,0xe7,0xf3, +0xd1,0xf4,0x6,0xf7,0xe5,0xf9,0xe,0xfd,0x4d,0x0,0x9,0x3, +0x10,0x5,0x96,0x6,0x6d,0x7,0x89,0x7,0x29,0x7,0x32,0x6, +0xad,0x4,0x3e,0x3,0x6e,0x2,0x5f,0x2,0xf7,0x2,0x0,0x4, +0x5a,0x5,0xd7,0x6,0x8,0x8,0xb4,0x8,0xde,0x8,0x56,0x8, +0xfe,0x6,0x15,0x5,0xd4,0x2,0x36,0x0,0x58,0xfd,0xbb,0xfa, +0xf3,0xf8,0x40,0xf8,0xb2,0xf8,0x3a,0xfa,0x56,0xfc,0x3c,0xfe, +0x7a,0xff,0xf0,0xff,0xa2,0xff,0xe3,0xfe,0x38,0xfe,0xd3,0xfd, +0xaf,0xfd,0xf2,0xfd,0xa0,0xfe,0x7f,0xff,0x8a,0x0,0xc2,0x1, +0xd8,0x2,0x91,0x3,0xd8,0x3,0x73,0x3,0x91,0x2,0xca,0x1, +0x28,0x1,0x83,0x0,0xb,0x0,0x98,0xff,0xe2,0xfe,0x46,0xfe, +0x3,0xfe,0xce,0xfd,0x9a,0xfd,0x88,0xfd,0xa3,0xfd,0xe9,0xfd, +0x10,0xfe,0x7,0xfe,0x40,0xfe,0xad,0xfe,0xd0,0xfe,0xda,0xfe, +0x1e,0xff,0x91,0xff,0x4c,0x0,0x72,0x1,0xf6,0x2,0xae,0x4, +0x2b,0x6,0x35,0x7,0xff,0x7,0x52,0x8,0xe1,0x7,0xfd,0x6, +0xbc,0x5,0xf8,0x3,0x39,0x2,0xfb,0x0,0x2,0x0,0x2b,0xff, +0x82,0xfe,0xfd,0xfd,0xc3,0xfd,0xb,0xfe,0xcc,0xfe,0xbd,0xff, +0x52,0x0,0x4a,0x0,0xea,0xff,0x5f,0xff,0xc7,0xfe,0x6b,0xfe, +0x46,0xfe,0x24,0xfe,0x11,0xfe,0x17,0xfe,0x4a,0xfe,0xe1,0xfe, +0xba,0xff,0x8d,0x0,0x44,0x1,0xb3,0x1,0xd3,0x1,0xe3,0x1, +0xce,0x1,0x70,0x1,0x8,0x1,0x8a,0x0,0xb4,0xff,0xcb,0xfe, +0x27,0xfe,0x9f,0xfd,0xe,0xfd,0x9d,0xfc,0x63,0xfc,0x4b,0xfc, +0x5d,0xfc,0xb9,0xfc,0x34,0xfd,0x97,0xfd,0x12,0xfe,0xce,0xfe, +0xb5,0xff,0xfe,0x0,0xd3,0x2,0xcd,0x4,0x9b,0x6,0x37,0x8, +0x7f,0x9,0x72,0xa,0x2b,0xb,0x77,0xb,0x2a,0xb,0x4a,0xa, +0xbe,0x8,0xac,0x6,0xab,0x4,0xff,0x2,0x6c,0x1,0xce,0xff, +0x2d,0xfe,0x88,0xfc,0xf1,0xfa,0x84,0xf9,0x77,0xf8,0x27,0xf8, +0x8b,0xf8,0xf4,0xf8,0xe4,0xf8,0x60,0xf8,0x26,0xf7,0xe2,0xf4, +0x22,0xf2,0xbe,0xef,0xf3,0xed,0x18,0xed,0xe5,0xed,0x99,0xf0, +0x16,0xf5,0x1c,0xfb,0xd6,0x1,0x43,0x8,0xcb,0xd,0xcd,0x11, +0xc7,0x13,0xa7,0x13,0x21,0x11,0x2e,0xc,0xee,0x5,0xc6,0xff, +0xb6,0xfa,0xc3,0xf7,0x25,0xf7,0xf5,0xf7,0xa3,0xf9,0x3,0xfc, +0x88,0xfe,0xf5,0x0,0x6a,0x3,0xa8,0x5,0x5b,0x7,0x0,0x8, +0xfc,0x6,0xcc,0x4,0x81,0x2,0x50,0x0,0x5c,0xfe,0x2e,0xfd, +0xc2,0xfc,0x7,0xfd,0x59,0xfe,0x93,0x0,0x48,0x3,0x22,0x6, +0x6d,0x8,0xa9,0x9,0xda,0x9,0xdb,0x8,0xc2,0x6,0x25,0x4, +0x66,0x1,0xf7,0xfe,0x54,0xfd,0x59,0xfc,0xe6,0xfb,0x20,0xfc, +0x7f,0xfc,0x7b,0xfc,0xe,0xfc,0xf6,0xfa,0x3d,0xf9,0x71,0xf7, +0x98,0xf5,0xad,0xf3,0x71,0xf2,0x4c,0xf2,0x1,0xf3,0xa2,0xf4, +0x76,0xf7,0x3e,0xfb,0x7,0xff,0x9,0x2,0x6f,0x4,0x76,0x6, +0xb8,0x7,0x17,0x8,0xc3,0x7,0xb1,0x6,0x1d,0x5,0x53,0x3, +0x69,0x1,0xf2,0xff,0x74,0xff,0xbd,0xff,0xc4,0x0,0x67,0x2, +0x5,0x4,0x7e,0x5,0xcc,0x6,0x69,0x7,0x4d,0x7,0x9a,0x6, +0xec,0x4,0x82,0x2,0x6,0x0,0x83,0xfd,0x40,0xfb,0xe9,0xf9, +0xa2,0xf9,0x7f,0xfa,0x77,0xfc,0xe9,0xfe,0x68,0x1,0xce,0x3, +0x91,0x5,0x64,0x6,0x7a,0x6,0xec,0x5,0xd9,0x4,0x72,0x3, +0xce,0x1,0x43,0x0,0x47,0xff,0xf6,0xfe,0x1d,0xff,0x45,0xff, +0x8,0xff,0x73,0xfe,0xa0,0xfd,0xb7,0xfc,0x26,0xfc,0x0,0xfc, +0xeb,0xfb,0xd2,0xfb,0xc7,0xfb,0xb6,0xfb,0x8f,0xfb,0x64,0xfb, +0x8c,0xfb,0x40,0xfc,0x1c,0xfd,0xd3,0xfd,0x86,0xfe,0x1b,0xff, +0x96,0xff,0x35,0x0,0xb0,0x0,0xa9,0x0,0x46,0x0,0x98,0xff, +0xd1,0xfe,0x99,0xfe,0x29,0xff,0x43,0x0,0xc5,0x1,0x68,0x3, +0xe4,0x4,0x16,0x6,0xac,0x6,0x7e,0x6,0xcb,0x5,0xa9,0x4, +0x2e,0x3,0xa9,0x1,0x4e,0x0,0x63,0xff,0x25,0xff,0x5e,0xff, +0xfb,0xff,0x19,0x1,0x44,0x2,0x2,0x3,0x60,0x3,0x65,0x3, +0xd,0x3,0x7b,0x2,0xa9,0x1,0x8e,0x0,0x3e,0xff,0xc4,0xfd, +0x70,0xfc,0xb0,0xfb,0x80,0xfb,0xc6,0xfb,0x86,0xfc,0x95,0xfd, +0xab,0xfe,0x96,0xff,0x47,0x0,0xe7,0x0,0x69,0x1,0x92,0x1, +0x80,0x1,0x4c,0x1,0xc3,0x0,0xfb,0xff,0x24,0xff,0x30,0xfe, +0x40,0xfd,0x73,0xfc,0xbb,0xfb,0x5a,0xfb,0x6c,0xfb,0xa3,0xfb, +0xfa,0xfb,0x94,0xfc,0x4c,0xfd,0x18,0xfe,0xdd,0xfe,0x5b,0xff, +0xbe,0xff,0x2e,0x0,0x6b,0x0,0x8b,0x0,0xcc,0x0,0x15,0x1, +0x7d,0x1,0x23,0x2,0xd8,0x2,0xa0,0x3,0x82,0x4,0x13,0x5, +0x1a,0x5,0xc6,0x4,0x51,0x4,0xff,0x3,0xd6,0x3,0x67,0x3, +0x7f,0x2,0x46,0x1,0xd8,0xff,0x7d,0xfe,0xa9,0xfd,0x61,0xfd, +0x50,0xfd,0x59,0xfd,0xa0,0xfd,0x4e,0xfe,0x73,0xff,0xe2,0x0, +0x3a,0x2,0x36,0x3,0xc7,0x3,0xde,0x3,0x8f,0x3,0x2e,0x3, +0xc0,0x2,0xf9,0x1,0xd3,0x0,0x8d,0xff,0x7b,0xfe,0xf3,0xfd, +0xba,0xfd,0x3b,0xfd,0x67,0xfc,0x45,0xfb,0x94,0xf9,0x8b,0xf7, +0xb2,0xf5,0x3a,0xf4,0x86,0xf3,0x3f,0xf4,0x83,0xf6,0xc1,0xf9, +0xe,0xfd,0xbf,0xff,0xe8,0x1,0xef,0x3,0xe8,0x5,0x71,0x7, +0x9b,0x7,0xac,0x5,0x46,0x2,0xdb,0xfe,0xb6,0xfc,0xb3,0xfc, +0x9e,0xfe,0x3f,0x1,0x91,0x3,0x4,0x5,0x5a,0x5,0x19,0x5, +0xf7,0x4,0xe0,0x4,0x8d,0x4,0xe9,0x3,0xa4,0x2,0x9b,0x0, +0x66,0xfe,0xd5,0xfc,0x30,0xfc,0x46,0xfc,0xbc,0xfc,0x37,0xfd, +0x94,0xfd,0x23,0xfe,0x34,0xff,0x88,0x0,0xbd,0x1,0xcf,0x2, +0xc2,0x3,0x6a,0x4,0x8d,0x4,0x23,0x4,0x58,0x3,0x5c,0x2, +0x5b,0x1,0xb4,0x0,0x89,0x0,0x5d,0x0,0xc7,0xff,0xce,0xfe, +0x8c,0xfd,0x3e,0xfc,0x42,0xfb,0xa2,0xfa,0x52,0xfa,0x7b,0xfa, +0xe2,0xfa,0xb,0xfb,0x26,0xfb,0xaf,0xfb,0x78,0xfc,0x41,0xfd, +0x4f,0xfe,0x8c,0xff,0x4b,0x0,0x6c,0x0,0x6a,0x0,0x70,0x0, +0x76,0x0,0x9b,0x0,0xc4,0x0,0xcb,0x0,0xe3,0x0,0x1d,0x1, +0x4c,0x1,0x9a,0x1,0x57,0x2,0x61,0x3,0x67,0x4,0x5b,0x5, +0x23,0x6,0x59,0x6,0xb9,0x5,0x75,0x4,0xd7,0x2,0x13,0x1, +0x8d,0xff,0x9e,0xfe,0x15,0xfe,0xab,0xfd,0x94,0xfd,0xfe,0xfd, +0xba,0xfe,0x9e,0xff,0x91,0x0,0x55,0x1,0xd9,0x1,0x3c,0x2, +0x68,0x2,0x35,0x2,0xa9,0x1,0xf7,0x0,0x60,0x0,0xf6,0xff, +0x9d,0xff,0x64,0xff,0x38,0xff,0xb4,0xfe,0xd8,0xfd,0x19,0xfd, +0x98,0xfc,0x6c,0xfc,0xd1,0xfc,0x98,0xfd,0x6a,0xfe,0x2e,0xff, +0xb7,0xff,0xfa,0xff,0x33,0x0,0x54,0x0,0x47,0x0,0x40,0x0, +0x21,0x0,0xa0,0xff,0xe1,0xfe,0x11,0xfe,0x48,0xfd,0xd6,0xfc, +0xd9,0xfc,0x11,0xfd,0x52,0xfd,0x98,0xfd,0x3,0xfe,0xc4,0xfe, +0xe1,0xff,0x1f,0x1,0x2c,0x2,0xca,0x2,0xf,0x3,0x3b,0x3, +0x71,0x3,0xc4,0x3,0x18,0x4,0x29,0x4,0xe2,0x3,0x59,0x3, +0xa4,0x2,0xee,0x1,0x55,0x1,0xea,0x0,0xc4,0x0,0xd9,0x0, +0x14,0x1,0x68,0x1,0xa1,0x1,0xac,0x1,0xab,0x1,0x79,0x1, +0xff,0x0,0x6d,0x0,0xaf,0xff,0xb3,0xfe,0xcc,0xfd,0x11,0xfd, +0x92,0xfc,0x92,0xfc,0xe6,0xfc,0x40,0xfd,0xb1,0xfd,0x24,0xfe, +0x7d,0xfe,0xd3,0xfe,0x10,0xff,0x59,0xff,0xf8,0xff,0x9f,0x0, +0x16,0x1,0x87,0x1,0x9e,0x1,0x1f,0x1,0x89,0x0,0x1a,0x0, +0xb6,0xff,0x61,0xff,0x7,0xff,0xb0,0xfe,0x87,0xfe,0x64,0xfe, +0x35,0xfe,0x18,0xfe,0x6,0xfe,0xd,0xfe,0x3e,0xfe,0x84,0xfe, +0xff,0xfe,0x99,0xff,0x5,0x0,0x7d,0x0,0x30,0x1,0xe8,0x1, +0xc6,0x2,0xa2,0x3,0xe4,0x3,0xc7,0x3,0x9a,0x3,0xf8,0x2, +0x1b,0x2,0x89,0x1,0xe8,0x0,0x24,0x0,0xa8,0xff,0x5e,0xff, +0x44,0xff,0xa9,0xff,0x5c,0x0,0x2,0x1,0x50,0x1,0x6,0x1, +0x7c,0x0,0x33,0x0,0xfd,0xff,0xb5,0xff,0x81,0xff,0x33,0xff, +0xbe,0xfe,0x99,0xfe,0x3,0xff,0xd6,0xff,0xcb,0x0,0x76,0x1, +0x95,0x1,0x5d,0x1,0x8,0x1,0x9a,0x0,0x36,0x0,0xe3,0xff, +0x1d,0xff,0x93,0xfd,0xb0,0xfb,0xec,0xf9,0x83,0xf8,0xe3,0xf7, +0x72,0xf8,0xc,0xfa,0x54,0xfc,0xe8,0xfe,0x61,0x1,0x86,0x3, +0x57,0x5,0xc9,0x6,0x84,0x7,0xf8,0x6,0x0,0x5,0x18,0x2, +0xf7,0xfe,0x71,0xfc,0x59,0xfb,0xf3,0xfb,0xbf,0xfd,0xf4,0xff, +0xec,0x1,0x55,0x3,0x19,0x4,0x36,0x4,0xca,0x3,0x10,0x3, +0x36,0x2,0x35,0x1,0xe1,0xff,0x74,0xfe,0x7b,0xfd,0x14,0xfd, +0x1d,0xfd,0xc2,0xfd,0xde,0xfe,0xea,0xff,0xaf,0x0,0x16,0x1, +0x1c,0x1,0x2,0x1,0xbb,0x0,0x2a,0x0,0xb3,0xff,0x7c,0xff, +0x3f,0xff,0x9,0xff,0xfe,0xfe,0x37,0xff,0xe5,0xff,0xbc,0x0, +0x3f,0x1,0x75,0x1,0x3c,0x1,0x5c,0x0,0x53,0xff,0x80,0xfe, +0xd5,0xfd,0x93,0xfd,0xd3,0xfd,0x22,0xfe,0x56,0xfe,0x99,0xfe, +0xd9,0xfe,0x12,0xff,0x73,0xff,0xf0,0xff,0x38,0x0,0x4a,0x0, +0x6e,0x0,0x84,0x0,0x40,0x0,0xdd,0xff,0x98,0xff,0x4b,0xff, +0x15,0xff,0x11,0xff,0x8,0xff,0x13,0xff,0x74,0xff,0x3,0x0, +0xaf,0x0,0x8b,0x1,0x5d,0x2,0xe9,0x2,0x1a,0x3,0xf1,0x2, +0x7e,0x2,0xcf,0x1,0x12,0x1,0x89,0x0,0x2b,0x0,0xe7,0xff, +0xda,0xff,0xd4,0xff,0xa0,0xff,0x6b,0xff,0x5a,0xff,0x87,0xff, +0xf8,0xff,0x56,0x0,0x87,0x0,0xa6,0x0,0x79,0x0,0xc,0x0, +0xca,0xff,0xb3,0xff,0xb1,0xff,0xc5,0xff,0xa6,0xff,0x6f,0xff, +0x78,0xff,0x82,0xff,0x66,0xff,0x4b,0xff,0xfb,0xfe,0x8c,0xfe, +0x69,0xfe,0x7a,0xfe,0xa6,0xfe,0x9,0xff,0x85,0xff,0x1e,0x0, +0xb4,0x0,0xcb,0x0,0x87,0x0,0x4d,0x0,0x3,0x0,0xb9,0xff, +0x7f,0xff,0x10,0xff,0xb3,0xfe,0xb7,0xfe,0xba,0xfe,0xb1,0xfe, +0xd9,0xfe,0x1f,0xff,0x9a,0xff,0x4a,0x0,0xc7,0x0,0x18,0x1, +0x67,0x1,0x77,0x1,0x65,0x1,0x75,0x1,0x83,0x1,0x7d,0x1, +0x5f,0x1,0xe,0x1,0xbc,0x0,0x7a,0x0,0x3d,0x0,0x5f,0x0, +0xd5,0x0,0xfb,0x0,0xb9,0x0,0x63,0x0,0xfc,0xff,0x92,0xff, +0x49,0xff,0x1e,0xff,0x2f,0xff,0x8f,0xff,0xfc,0xff,0x4d,0x0, +0x9b,0x0,0xe8,0x0,0xfb,0x0,0xbf,0x0,0x5f,0x0,0xf8,0xff, +0x8a,0xff,0x41,0xff,0x32,0xff,0x24,0xff,0xff,0xfe,0xeb,0xfe, +0xf1,0xfe,0xe,0xff,0x46,0xff,0x73,0xff,0x75,0xff,0x77,0xff, +0xae,0xff,0x2,0x0,0x40,0x0,0x6e,0x0,0x90,0x0,0x7e,0x0, +0x4a,0x0,0x21,0x0,0xeb,0xff,0x98,0xff,0x43,0xff,0xf1,0xfe, +0xc7,0xfe,0xfb,0xfe,0x66,0xff,0xd6,0xff,0x4a,0x0,0xaa,0x0, +0xe8,0x0,0x22,0x1,0x68,0x1,0xbc,0x1,0xe,0x2,0x42,0x2, +0x56,0x2,0x3d,0x2,0xe4,0x1,0x70,0x1,0x9,0x1,0x95,0x0, +0xfe,0xff,0x4f,0xff,0xb1,0xfe,0x4a,0xfe,0xb,0xfe,0x3,0xfe, +0x71,0xfe,0x11,0xff,0x97,0xff,0x2e,0x0,0xa7,0x0,0xae,0x0, +0x9c,0x0,0xa3,0x0,0x7f,0x0,0x53,0x0,0x3e,0x0,0x1,0x0, +0xbe,0xff,0xba,0xff,0xe2,0xff,0x39,0x0,0xb1,0x0,0xfa,0x0, +0xf9,0x0,0xca,0x0,0x84,0x0,0x4d,0x0,0x25,0x0,0xea,0xff, +0x94,0xff,0x1,0xff,0x1d,0xfe,0x33,0xfd,0x9c,0xfc,0x84,0xfc, +0x7,0xfd,0x17,0xfe,0xa5,0xff,0x9e,0x1,0x8e,0x3,0x1,0x5, +0xd7,0x5,0xd9,0x5,0xd9,0x4,0x21,0x3,0xfb,0x0,0xaa,0xfe, +0xcb,0xfc,0xdf,0xfb,0xe9,0xfb,0xd0,0xfc,0x38,0xfe,0x91,0xff, +0xb6,0x0,0xb8,0x1,0x4c,0x2,0x3a,0x2,0xc0,0x1,0x10,0x1, +0x3c,0x0,0x8b,0xff,0x3b,0xff,0x27,0xff,0x1a,0xff,0x15,0xff, +0x1e,0xff,0x12,0xff,0xeb,0xfe,0xe9,0xfe,0x39,0xff,0xaf,0xff, +0x1e,0x0,0x98,0x0,0x14,0x1,0x4a,0x1,0x40,0x1,0x49,0x1, +0x53,0x1,0xfc,0x0,0x4c,0x0,0x8b,0xff,0xd4,0xfe,0x60,0xfe, +0x7b,0xfe,0xe5,0xfe,0x33,0xff,0x74,0xff,0xad,0xff,0xab,0xff, +0x82,0xff,0x5f,0xff,0x31,0xff,0xf9,0xfe,0xc7,0xfe,0x8f,0xfe, +0x68,0xfe,0x78,0xfe,0xc6,0xfe,0x47,0xff,0xe3,0xff,0x78,0x0, +0xe3,0x0,0xf9,0x0,0xda,0x0,0xd8,0x0,0x1,0x1,0x3a,0x1, +0x77,0x1,0x7d,0x1,0x28,0x1,0xb7,0x0,0x67,0x0,0x61,0x0, +0xbd,0x0,0x37,0x1,0x7a,0x1,0x84,0x1,0x52,0x1,0xeb,0x0, +0x75,0x0,0xe7,0xff,0x37,0xff,0x77,0xfe,0xa5,0xfd,0xff,0xfc, +0xde,0xfc,0x23,0xfd,0xa1,0xfd,0x77,0xfe,0x81,0xff,0x71,0x0, +0x20,0x1,0x7f,0x1,0xaa,0x1,0xb2,0x1,0x69,0x1,0xe7,0x0, +0x60,0x0,0xc2,0xff,0x46,0xff,0x40,0xff,0x58,0xff,0x35,0xff, +0x15,0xff,0x19,0xff,0x3e,0xff,0x84,0xff,0xa4,0xff,0x8f,0xff, +0xaa,0xff,0xf6,0xff,0x34,0x0,0x8c,0x0,0xf0,0x0,0xf6,0x0, +0xb3,0x0,0x6a,0x0,0x3,0x0,0x8c,0xff,0x4b,0xff,0x37,0xff, +0x3a,0xff,0x69,0xff,0xa1,0xff,0xb0,0xff,0xc3,0xff,0x7,0x0, +0x7d,0x0,0x1c,0x1,0xb0,0x1,0x6,0x2,0x29,0x2,0x19,0x2, +0xd5,0x1,0x8a,0x1,0x25,0x1,0x8d,0x0,0x4,0x0,0x87,0xff, +0xf0,0xfe,0x7c,0xfe,0x3a,0xfe,0x9,0xfe,0x2d,0xfe,0xb6,0xfe, +0x3a,0xff,0xa3,0xff,0xc,0x0,0x69,0x0,0xba,0x0,0xdf,0x0, +0xca,0x0,0xbc,0x0,0xb9,0x0,0xa2,0x0,0x9b,0x0,0x6b,0x0, +0xc0,0xff,0xfb,0xfe,0x66,0xfe,0xe4,0xfd,0x9f,0xfd,0xc6,0xfd, +0x4b,0xfe,0x11,0xff,0xb8,0xff,0xfa,0xff,0x20,0x0,0x4a,0x0, +0x5c,0x0,0x6f,0x0,0x64,0x0,0x7,0x0,0x9c,0xff,0x71,0xff, +0x9a,0xff,0x1e,0x0,0x8c,0x0,0x69,0x0,0xee,0xff,0x5d,0xff, +0xa2,0xfe,0xe,0xfe,0x7,0xfe,0x5d,0xfe,0xc3,0xfe,0x54,0xff, +0x1b,0x0,0xd9,0x0,0x61,0x1,0xb6,0x1,0xd7,0x1,0xca,0x1, +0x9d,0x1,0x48,0x1,0xd8,0x0,0x67,0x0,0xf1,0xff,0x89,0xff, +0x54,0xff,0x32,0xff,0xa,0xff,0xfd,0xfe,0xf9,0xfe,0xd8,0xfe, +0xb4,0xfe,0xb3,0xfe,0x7,0xff,0xc8,0xff,0x91,0x0,0x3,0x1, +0x1c,0x1,0xcc,0x0,0x1e,0x0,0x65,0xff,0xd2,0xfe,0x79,0xfe, +0x69,0xfe,0x65,0xfe,0x46,0xfe,0x43,0xfe,0x8d,0xfe,0x3a,0xff, +0x40,0x0,0x3d,0x1,0xd6,0x1,0x18,0x2,0x19,0x2,0xdb,0x1, +0x6e,0x1,0xdd,0x0,0x37,0x0,0x79,0xff,0x80,0xfe,0x4f,0xfd, +0x1e,0xfc,0x3a,0xfb,0xe9,0xfa,0x60,0xfb,0xb2,0xfc,0x92,0xfe, +0x7c,0x0,0x50,0x2,0x1b,0x4,0x7f,0x5,0x32,0x6,0x3a,0x6, +0x64,0x5,0xa3,0x3,0x6c,0x1,0x1b,0xff,0x10,0xfd,0xd6,0xfb, +0x97,0xfb,0x2a,0xfc,0x59,0xfd,0xa6,0xfe,0xad,0xff,0x6c,0x0, +0xe4,0x0,0x20,0x1,0x2c,0x1,0xd5,0x0,0x29,0x0,0x7e,0xff, +0xf5,0xfe,0xaa,0xfe,0xa2,0xfe,0x86,0xfe,0x3b,0xfe,0x6,0xfe, +0xf8,0xfd,0x1f,0xfe,0x8e,0xfe,0x7,0xff,0x36,0xff,0x8,0xff, +0xcd,0xfe,0xf1,0xfe,0x5d,0xff,0xd3,0xff,0x81,0x0,0x35,0x1, +0x7c,0x1,0xa6,0x1,0xf2,0x1,0xf0,0x1,0x91,0x1,0xfe,0x0, +0x3,0x0,0xc4,0xfe,0xa6,0xfd,0xb2,0xfc,0x1b,0xfc,0xf,0xfc, +0x43,0xfc,0xad,0xfc,0x87,0xfd,0x94,0xfe,0x8f,0xff,0x7b,0x0, +0x28,0x1,0x67,0x1,0x5e,0x1,0x32,0x1,0xe8,0x0,0xb2,0x0, +0xb2,0x0,0xc7,0x0,0xd8,0x0,0xec,0x0,0xd5,0x0,0x7f,0x0, +0x3c,0x0,0x1c,0x0,0xed,0xff,0xe9,0xff,0x35,0x0,0x83,0x0, +0xc1,0x0,0x8,0x1,0x15,0x1,0xba,0x0,0x24,0x0,0x9d,0xff, +0x72,0xff,0x97,0xff,0xb5,0xff,0xc0,0xff,0xb8,0xff,0x86,0xff, +0x4f,0xff,0x39,0xff,0x2b,0xff,0x2a,0xff,0x40,0xff,0x57,0xff, +0x70,0xff,0x93,0xff,0xd3,0xff,0x45,0x0,0xba,0x0,0x2,0x1, +0x36,0x1,0x3e,0x1,0xf6,0x0,0x88,0x0,0xf9,0xff,0x25,0xff, +0x3b,0xfe,0x7a,0xfd,0xfb,0xfc,0xd0,0xfc,0xe4,0xfc,0x29,0xfd, +0xa7,0xfd,0x39,0xfe,0xc2,0xfe,0x6a,0xff,0x4b,0x0,0x4c,0x1, +0x27,0x2,0xa1,0x2,0xd8,0x2,0xc6,0x2,0x39,0x2,0x8d,0x1, +0xa,0x1,0x63,0x0,0xb7,0xff,0x41,0xff,0xb1,0xfe,0x50,0xfe, +0xb3,0xfe,0x63,0xff,0xf8,0xff,0x9f,0x0,0x11,0x1,0x24,0x1, +0x26,0x1,0xe9,0x0,0x4c,0x0,0xb3,0xff,0x27,0xff,0x8c,0xfe, +0x8,0xfe,0x99,0xfd,0x70,0xfd,0xdb,0xfd,0x91,0xfe,0x52,0xff, +0x2b,0x0,0xce,0x0,0x1f,0x1,0x8d,0x1,0x15,0x2,0x64,0x2, +0x72,0x2,0x48,0x2,0xf7,0x1,0x7b,0x1,0xa3,0x0,0xaf,0xff, +0xfe,0xfe,0x74,0xfe,0x18,0xfe,0x8,0xfe,0xf1,0xfd,0xd5,0xfd, +0xf9,0xfd,0x17,0xfe,0x2b,0xfe,0x8d,0xfe,0xf0,0xfe,0x18,0xff, +0x5d,0xff,0xc6,0xff,0x3e,0x0,0xda,0x0,0x38,0x1,0x14,0x1, +0xc3,0x0,0x44,0x0,0x91,0xff,0x40,0xff,0x87,0xff,0x2,0x0, +0x89,0x0,0x0,0x1,0x32,0x1,0x32,0x1,0x34,0x1,0x4e,0x1, +0x7c,0x1,0x88,0x1,0x53,0x1,0xf1,0x0,0x66,0x0,0xda,0xff, +0x8f,0xff,0x74,0xff,0x73,0xff,0x87,0xff,0x5e,0xff,0xdf,0xfe, +0x74,0xfe,0x39,0xfe,0x6,0xfe,0xd,0xfe,0x59,0xfe,0xb1,0xfe, +0x28,0xff,0xb9,0xff,0x14,0x0,0x45,0x0,0x7f,0x0,0xa2,0x0, +0xcb,0x0,0x48,0x1,0xe4,0x1,0x4b,0x2,0x7a,0x2,0x4b,0x2, +0xb1,0x1,0x17,0x1,0xc1,0x0,0xaa,0x0,0xd0,0x0,0xd4,0x0, +0x5e,0x0,0xd2,0xff,0x88,0xff,0x41,0xff,0xe0,0xfe,0x63,0xfe, +0x79,0xfd,0x5,0xfc,0x50,0xfa,0xc1,0xf8,0x3,0xf8,0x9c,0xf8, +0x75,0xfa,0x30,0xfd,0x3d,0x0,0xe4,0x2,0xfe,0x4,0xba,0x6, +0xdd,0x7,0x8,0x8,0x6,0x7,0xd8,0x4,0x13,0x2,0x88,0xff, +0xb2,0xfd,0xb,0xfd,0xd8,0xfd,0x79,0xff,0x20,0x1,0x81,0x2, +0x49,0x3,0x48,0x3,0xc2,0x2,0xef,0x1,0xf3,0x0,0x21,0x0, +0x73,0xff,0xa9,0xfe,0xfe,0xfd,0x96,0xfd,0x11,0xfd,0x6d,0xfc, +0x14,0xfc,0x11,0xfc,0x6d,0xfc,0x50,0xfd,0x7e,0xfe,0xaa,0xff, +0xc1,0x0,0x95,0x1,0x2e,0x2,0xae,0x2,0xab,0x2,0xec,0x1, +0x14,0x1,0x8a,0x0,0x50,0x0,0xa7,0x0,0x86,0x1,0x61,0x2, +0xfb,0x2,0x39,0x3,0xce,0x2,0x9e,0x1,0xc8,0xff,0xbd,0xfd, +0x37,0xfc,0x7d,0xfb,0x53,0xfb,0xb3,0xfb,0x8f,0xfc,0x8b,0xfd, +0x7f,0xfe,0x84,0xff,0x7a,0x0,0x1f,0x1,0x70,0x1,0x8f,0x1, +0x74,0x1,0x12,0x1,0xaf,0x0,0x85,0x0,0x7e,0x0,0x97,0x0, +0xba,0x0,0x93,0x0,0x22,0x0,0xd5,0xff,0xc,0x0,0xda,0x0, +0xd9,0x1,0x85,0x2,0xd5,0x2,0xd7,0x2,0x69,0x2,0xb1,0x1, +0xd6,0x0,0xd4,0xff,0x2,0xff,0xa0,0xfe,0x5e,0xfe,0xf0,0xfd, +0x68,0xfd,0x3,0xfd,0x12,0xfd,0xa3,0xfd,0x85,0xfe,0x88,0xff, +0x68,0x0,0x9,0x1,0x87,0x1,0xd7,0x1,0x16,0x2,0x91,0x2, +0xeb,0x2,0xb1,0x2,0xf7,0x1,0xca,0x0,0x86,0xff,0xf4,0xfe, +0x4,0xff,0x3d,0xff,0xb0,0xff,0xe,0x0,0xf3,0xff,0xde,0xff, +0xc,0x0,0x18,0x0,0x1b,0x0,0x37,0x0,0x3,0x0,0x6f,0xff, +0xf4,0xfe,0xe9,0xfe,0x27,0xff,0x45,0xff,0x17,0xff,0xba,0xfe, +0x55,0xfe,0x46,0xfe,0xc9,0xfe,0x85,0xff,0x16,0x0,0x64,0x0, +0x7f,0x0,0xbf,0x0,0x4f,0x1,0xe7,0x1,0x66,0x2,0xa9,0x2, +0x4b,0x2,0x83,0x1,0xf4,0x0,0xa8,0x0,0x74,0x0,0x66,0x0, +0x65,0x0,0x48,0x0,0x1b,0x0,0xf5,0xff,0xf8,0xff,0x2b,0x0, +0x66,0x0,0x81,0x0,0x6d,0x0,0x3a,0x0,0x12,0x0,0x2a,0x0, +0x90,0x0,0xd4,0x0,0x81,0x0,0x2,0x0,0xd7,0xff,0xbf,0xff, +0x9f,0xff,0x82,0xff,0x12,0xff,0x73,0xfe,0x22,0xfe,0xff,0xfd, +0x1a,0xfe,0xc6,0xfe,0x99,0xff,0x6b,0x0,0x99,0x1,0xa4,0x2, +0xf5,0x2,0xd8,0x2,0x7b,0x2,0xd7,0x1,0xf,0x1,0x14,0x0, +0xa,0xff,0x55,0xfe,0xde,0xfd,0xa0,0xfd,0xf5,0xfd,0xb1,0xfe, +0x80,0xff,0x6c,0x0,0x61,0x1,0x3a,0x2,0xe2,0x2,0x1b,0x3, +0xf3,0x2,0xca,0x2,0xa3,0x2,0x65,0x2,0x1e,0x2,0xba,0x1, +0x3a,0x1,0xcf,0x0,0x81,0x0,0x3b,0x0,0xe7,0xff,0x6a,0xff, +0xdb,0xfe,0x6e,0xfe,0x33,0xfe,0xc,0xfe,0xd1,0xfd,0xae,0xfd, +0xf0,0xfd,0x6b,0xfe,0xde,0xfe,0x81,0xff,0x53,0x0,0xef,0x0, +0x34,0x1,0x2c,0x1,0xd8,0x0,0x92,0x0,0xbc,0x0,0x43,0x1, +0x1,0x2,0xe9,0x2,0xba,0x3,0x35,0x4,0x5d,0x4,0x40,0x4, +0xd4,0x3,0x37,0x3,0x80,0x2,0x8d,0x1,0x5e,0x0,0xf7,0xfe, +0x1a,0xfd,0xdf,0xfa,0xae,0xf8,0xad,0xf6,0x4f,0xf5,0x68,0xf5, +0x1b,0xf7,0xc8,0xf9,0xaa,0xfc,0x1,0xff,0xd7,0x0,0xe2,0x2, +0x1f,0x5,0xf8,0x6,0xcc,0x7,0xbd,0x6,0xcf,0x3,0x94,0x0, +0x64,0xfe,0xd6,0xfd,0x41,0xff,0xe5,0x1,0x54,0x4,0xd1,0x5, +0x1b,0x6,0x68,0x5,0x9a,0x4,0x1d,0x4,0xa9,0x3,0xef,0x2, +0x64,0x1,0x5,0xff,0x0,0xfd,0x1e,0xfc,0x17,0xfc,0xb2,0xfc, +0x84,0xfd,0x3,0xfe,0x82,0xfe,0x60,0xff,0x39,0x0,0xe0,0x0, +0x5d,0x1,0x69,0x1,0x2b,0x1,0x2c,0x1,0x77,0x1,0xcb,0x1, +0xed,0x1,0x91,0x1,0xe1,0x0,0x81,0x0,0xae,0x0,0x2d,0x1, +0xa5,0x1,0x8d,0x1,0x89,0x0,0xec,0xfe,0x43,0xfd,0xe1,0xfb, +0x31,0xfb,0x78,0xfb,0x5a,0xfc,0x27,0xfd,0x78,0xfd,0x67,0xfd, +0x70,0xfd,0x7,0xfe,0x31,0xff,0x90,0x0,0x95,0x1,0xe0,0x1, +0xb0,0x1,0x7e,0x1,0x73,0x1,0xad,0x1,0x37,0x2,0x96,0x2, +0x5d,0x2,0xa5,0x1,0xb8,0x0,0x0,0x0,0xf5,0xff,0x9f,0x0, +0xbf,0x1,0xf4,0x2,0x9c,0x3,0x76,0x3,0xd4,0x2,0xd6,0x1, +0x9b,0x0,0xa8,0xff,0xfb,0xfe,0x2b,0xfe,0x73,0xfd,0x19,0xfd, +0xec,0xfc,0x16,0xfd,0xe8,0xfd,0x26,0xff,0x93,0x0,0xd,0x2, +0x18,0x3,0x63,0x3,0x1e,0x3,0x8e,0x2,0xfa,0x1,0x9c,0x1, +0x64,0x1,0x7,0x1,0x4b,0x0,0x5d,0xff,0xe2,0xfe,0x1c,0xff, +0x9c,0xff,0xb,0x0,0x43,0x0,0xf5,0xff,0x44,0xff,0xbc,0xfe, +0x85,0xfe,0x76,0xfe,0x72,0xfe,0x5e,0xfe,0x3a,0xfe,0x4b,0xfe, +0xde,0xfe,0x0,0x0,0x61,0x1,0x7c,0x2,0xf7,0x2,0xbe,0x2, +0xed,0x1,0xde,0x0,0xf0,0xff,0x31,0xff,0x87,0xfe,0x12,0xfe, +0x1b,0xfe,0x8a,0xfe,0xfa,0xfe,0x66,0xff,0x10,0x0,0xe4,0x0, +0xb3,0x1,0x7f,0x2,0x34,0x3,0xa2,0x3,0x98,0x3,0xeb,0x2, +0xd9,0x1,0xe4,0x0,0x42,0x0,0xea,0xff,0xb9,0xff,0x6d,0xff, +0x9,0xff,0xc8,0xfe,0xae,0xfe,0xca,0xfe,0x65,0xff,0x7a,0x0, +0xa7,0x1,0x8a,0x2,0xdc,0x2,0x89,0x2,0xba,0x1,0xc8,0x0, +0xa,0x0,0x8b,0xff,0x3f,0xff,0x34,0xff,0x2c,0xff,0xd6,0xfe, +0x64,0xfe,0x16,0xfe,0xb,0xfe,0x8e,0xfe,0x68,0xff,0xec,0xff, +0x22,0x0,0x74,0x0,0xe3,0x0,0x78,0x1,0x39,0x2,0xce,0x2, +0xf2,0x2,0x9c,0x2,0xcc,0x1,0xbb,0x0,0xba,0xff,0xf5,0xfe, +0x82,0xfe,0x46,0xfe,0x8,0xfe,0xd7,0xfd,0xd0,0xfd,0xdd,0xfd, +0xf4,0xfd,0x1b,0xfe,0x5c,0xfe,0xc9,0xfe,0x53,0xff,0xfd,0xff, +0xa,0x1,0x78,0x2,0xfc,0x3,0x65,0x5,0x5f,0x6,0x80,0x6, +0x3,0x6,0x7a,0x5,0x17,0x5,0xb9,0x4,0x25,0x4,0x1f,0x3, +0xd7,0x1,0xdb,0x0,0x72,0x0,0x6e,0x0,0x92,0x0,0xaf,0x0, +0x90,0x0,0x1f,0x0,0x90,0xff,0x2d,0xff,0xe9,0xfe,0x67,0xfe, +0x87,0xfd,0x79,0xfc,0x3d,0xfb,0xb9,0xf9,0x13,0xf8,0x44,0xf6, +0xf,0xf4,0xbc,0xf1,0x1a,0xf0,0xf0,0xef,0xe1,0xf1,0x4,0xf6, +0x6d,0xfb,0xd3,0x0,0x91,0x5,0x90,0x9,0xe7,0xc,0x87,0xf, +0xd6,0x10,0xc1,0xf,0xbd,0xb,0xce,0x5,0x1e,0x0,0x6b,0xfc, +0x23,0xfb,0xc9,0xfb,0x87,0xfd,0x7c,0xff,0xf9,0x0,0xbe,0x1, +0xfa,0x1,0xf2,0x1,0xce,0x1,0x95,0x1,0x7,0x1,0xd7,0xff, +0x6b,0xfe,0xa1,0xfd,0xc9,0xfd,0x71,0xfe,0xe6,0xfe,0xed,0xfe, +0x24,0xff,0x10,0x0,0x39,0x1,0x2,0x2,0x5f,0x2,0x83,0x2, +0xd1,0x2,0x86,0x3,0x3a,0x4,0x7d,0x4,0x57,0x4,0xc5,0x3, +0xc6,0x2,0xae,0x1,0xd9,0x0,0x73,0x0,0x57,0x0,0xf7,0xff, +0xd8,0xfe,0xfd,0xfc,0xc2,0xfa,0xac,0xf8,0x36,0xf7,0x96,0xf6, +0xac,0xf6,0x1f,0xf7,0xa5,0xf7,0x38,0xf8,0x2,0xf9,0x3f,0xfa, +0x0,0xfc,0xff,0xfd,0xe1,0xff,0x61,0x1,0x44,0x2,0x99,0x2, +0xa5,0x2,0x77,0x2,0x2a,0x2,0x17,0x2,0x5e,0x2,0xba,0x2, +0xdc,0x2,0xd2,0x2,0x2d,0x3,0x37,0x4,0x77,0x5,0x70,0x6, +0xf6,0x6,0xca,0x6,0xda,0x5,0x5f,0x4,0x94,0x2,0xb9,0x0, +0xf1,0xfe,0x54,0xfd,0x44,0xfc,0xd2,0xfb,0x93,0xfb,0x9e,0xfb, +0x31,0xfc,0xff,0xfc,0x14,0xfe,0xaa,0xff,0x2e,0x1,0x12,0x2, +0x71,0x2,0x6e,0x2,0x2c,0x2,0xd4,0x1,0x7b,0x1,0x74,0x1, +0xc7,0x1,0xf1,0x1,0xe5,0x1,0xda,0x1,0x70,0x1,0xa9,0x0, +0xc,0x0,0x63,0xff,0x5a,0xfe,0x5f,0xfd,0x9f,0xfc,0xe9,0xfb, +0x77,0xfb,0x86,0xfb,0xe8,0xfb,0x7f,0xfc,0x3f,0xfd,0xe9,0xfd, +0x6e,0xfe,0x3,0xff,0x9e,0xff,0xd0,0xff,0x49,0xff,0x4e,0xfe, +0x82,0xfd,0x30,0xfd,0x11,0xfd,0xe1,0xfc,0xed,0xfc,0xab,0xfd, +0x22,0xff,0x1a,0x1,0x28,0x3,0xb0,0x4,0xa0,0x5,0x59,0x6, +0xb4,0x6,0x6c,0x6,0xe7,0x5,0x70,0x5,0xd5,0x4,0x15,0x4, +0x30,0x3,0xa,0x2,0xdf,0x0,0xdd,0xff,0xdf,0xfe,0xf2,0xfd, +0x15,0xfd,0x2d,0xfc,0xae,0xfb,0xd8,0xfb,0x20,0xfc,0x6e,0xfc, +0x1d,0xfd,0xfa,0xfd,0xed,0xfe,0x3f,0x0,0xa9,0x1,0xd6,0x2, +0xce,0x3,0x45,0x4,0x4,0x4,0x67,0x3,0xa6,0x2,0xbb,0x1, +0xc3,0x0,0xaf,0xff,0x7a,0xfe,0x8d,0xfd,0x3f,0xfd,0x67,0xfd, +0x95,0xfd,0x6f,0xfd,0xf,0xfd,0xb7,0xfc,0x71,0xfc,0x60,0xfc, +0xb7,0xfc,0x51,0xfd,0x1,0xfe,0xdd,0xfe,0xf6,0xff,0x14,0x1, +0xc6,0x1,0xeb,0x1,0xe7,0x1,0xf2,0x1,0xec,0x1,0xd2,0x1, +0xb4,0x1,0xa7,0x1,0xf0,0x1,0x97,0x2,0x48,0x3,0xa0,0x3, +0x53,0x3,0x9d,0x2,0x17,0x2,0xd8,0x1,0xb5,0x1,0xbd,0x1, +0xca,0x1,0xb1,0x1,0x9f,0x1,0x97,0x1,0x70,0x1,0x32,0x1, +0xda,0x0,0x82,0x0,0x34,0x0,0xab,0xff,0x6,0xff,0x9b,0xfe, +0x1e,0xfe,0x4f,0xfd,0x62,0xfc,0x2c,0xfb,0x86,0xf9,0xaa,0xf7, +0x88,0xf5,0x1d,0xf3,0xef,0xf0,0x6f,0xef,0xfd,0xee,0x1d,0xf0, +0xc,0xf3,0x91,0xf7,0xee,0xfc,0x1c,0x2,0x6e,0x6,0xc1,0x9, +0x48,0xc,0xf3,0xd,0xc2,0xd,0xf1,0xa,0x54,0x6,0x5f,0x1, +0x61,0xfd,0x89,0xfb,0xa2,0xfb,0x85,0xfc,0x0,0xfe,0x1b,0x0, +0x37,0x2,0x7,0x4,0x7e,0x5,0x8a,0x6,0x59,0x7,0x8b,0x7, +0x7d,0x6,0xaa,0x4,0xc0,0x2,0xf6,0x0,0xbc,0xff,0xf5,0xfe, +0xf7,0xfd,0x25,0xfd,0x2d,0xfd,0xca,0xfd,0xbb,0xfe,0xf9,0xff, +0x31,0x1,0x2e,0x2,0xe6,0x2,0x2e,0x3,0x1,0x3,0x70,0x2, +0x7d,0x1,0x4f,0x0,0x1d,0xff,0x2e,0xfe,0xd8,0xfd,0xfe,0xfd, +0x28,0xfe,0xe,0xfe,0x82,0xfd,0x61,0xfc,0xd3,0xfa,0x2d,0xf9, +0xc5,0xf7,0xf0,0xf6,0xca,0xf6,0x1,0xf7,0x43,0xf7,0xa6,0xf7, +0x6f,0xf8,0xd1,0xf9,0xdd,0xfb,0x21,0xfe,0xe4,0xff,0xd,0x1, +0xc1,0x1,0xcd,0x1,0x96,0x1,0xcd,0x1,0x42,0x2,0x94,0x2, +0xbb,0x2,0x7d,0x2,0x17,0x2,0x56,0x2,0x5d,0x3,0xe8,0x4, +0xba,0x6,0x35,0x8,0xf2,0x8,0xa,0x9,0x56,0x8,0xfa,0x6, +0x84,0x5,0xe0,0x3,0xd8,0x1,0xae,0xff,0x82,0xfd,0x89,0xfb, +0x21,0xfa,0x3b,0xf9,0xd1,0xf8,0x23,0xf9,0x17,0xfa,0x7e,0xfb, +0x54,0xfd,0x55,0xff,0x3c,0x1,0xd9,0x2,0xe3,0x3,0x54,0x4, +0x3a,0x4,0x83,0x3,0x7f,0x2,0x7a,0x1,0x40,0x0,0xbe,0xfe, +0x37,0xfd,0xee,0xfb,0x25,0xfb,0xf0,0xfa,0x3a,0xfb,0x1,0xfc, +0xfb,0xfc,0xc2,0xfd,0x77,0xfe,0x48,0xff,0xf7,0xff,0x62,0x0, +0x83,0x0,0x47,0x0,0x93,0xff,0x3b,0xfe,0x66,0xfc,0xaf,0xfa, +0x9e,0xf9,0x78,0xf9,0x2a,0xfa,0x39,0xfb,0x75,0xfc,0x26,0xfe, +0x46,0x0,0x9b,0x2,0xd6,0x4,0x7a,0x6,0x6a,0x7,0xe5,0x7, +0xe0,0x7,0x61,0x7,0x93,0x6,0x72,0x5,0x41,0x4,0x5b,0x3, +0x8b,0x2,0xcc,0x1,0x80,0x1,0x9e,0x1,0xec,0x1,0x33,0x2, +0xea,0x1,0xf0,0x0,0xd2,0xff,0xc2,0xfe,0xab,0xfd,0xd8,0xfc, +0x89,0xfc,0x97,0xfc,0xe3,0xfc,0x7a,0xfd,0x52,0xfe,0x3c,0xff, +0x12,0x0,0xb6,0x0,0xfc,0x0,0x1,0x1,0x6,0x1,0xf,0x1, +0x37,0x1,0xa3,0x1,0xf5,0x1,0xee,0x1,0x6,0x2,0x60,0x2, +0x99,0x2,0x8f,0x2,0x4c,0x2,0xc3,0x1,0x11,0x1,0x4a,0x0, +0x66,0xff,0x5a,0xfe,0x4,0xfd,0x6a,0xfb,0xe1,0xf9,0xd3,0xf8, +0xa8,0xf8,0x85,0xf9,0xb,0xfb,0xcd,0xfc,0x91,0xfe,0x12,0x0, +0x35,0x1,0xe,0x2,0x92,0x2,0xbc,0x2,0x95,0x2,0x16,0x2, +0x7f,0x1,0x23,0x1,0x3,0x1,0x43,0x1,0x1b,0x2,0x35,0x3, +0x2f,0x4,0x24,0x5,0x14,0x6,0xbc,0x6,0xe5,0x6,0x5f,0x6, +0x13,0x5,0x22,0x3,0xbb,0x0,0x9,0xfe,0x5c,0xfb,0x1b,0xf9, +0x77,0xf7,0x52,0xf6,0x5d,0xf5,0x35,0xf4,0xa8,0xf2,0x17,0xf1, +0x28,0xf0,0x3d,0xf0,0xb1,0xf1,0x9c,0xf4,0x54,0xf8,0x3c,0xfc, +0x84,0x0,0x5e,0x5,0x68,0xa,0xd4,0xe,0x70,0x11,0x32,0x11, +0x8,0xe,0xe3,0x8,0x4e,0x3,0xd6,0xfe,0x47,0xfc,0x97,0xfb, +0x34,0xfc,0x87,0xfd,0x6e,0xff,0xc8,0x1,0x11,0x4,0x2b,0x6, +0x25,0x8,0x52,0x9,0x2e,0x9,0x3,0x8,0xeb,0x5,0xd,0x3, +0x15,0x0,0x3a,0xfd,0x74,0xfa,0x71,0xf8,0xae,0xf7,0xef,0xf7, +0xb,0xf9,0xba,0xfa,0x71,0xfc,0x2d,0xfe,0x2b,0x0,0x45,0x2, +0x35,0x4,0x7a,0x5,0x6f,0x5,0x3a,0x4,0x9f,0x2,0x14,0x1, +0xf1,0xff,0x6f,0xff,0x18,0xff,0x62,0xfe,0x6d,0xfd,0x65,0xfc, +0x47,0xfb,0x61,0xfa,0xe,0xfa,0x40,0xfa,0xa4,0xfa,0xcd,0xfa, +0xa8,0xfa,0xba,0xfa,0x5b,0xfb,0x62,0xfc,0xab,0xfd,0xf3,0xfe, +0xc1,0xff,0x30,0x0,0xa9,0x0,0x19,0x1,0x72,0x1,0xe4,0x1, +0x40,0x2,0x31,0x2,0xa0,0x1,0x9c,0x0,0x91,0xff,0x3a,0xff, +0xea,0xff,0x66,0x1,0x48,0x3,0x5e,0x5,0x97,0x7,0xaa,0x9, +0x29,0xb,0xd1,0xb,0x51,0xb,0x5a,0x9,0x3d,0x6,0x7e,0x2, +0x58,0xfe,0x23,0xfa,0x74,0xf6,0xea,0xf3,0x1a,0xf3,0x35,0xf4, +0xe7,0xf6,0x9e,0xfa,0xba,0xfe,0xbb,0x2,0x29,0x6,0x63,0x8, +0x32,0x9,0xeb,0x8,0x9a,0x7,0x2d,0x5,0x5,0x2,0x9b,0xfe, +0x81,0xfb,0x75,0xf9,0xa2,0xf8,0xc7,0xf8,0xbf,0xf9,0x39,0xfb, +0xf7,0xfc,0x22,0xff,0x6d,0x1,0xf3,0x2,0x3d,0x3,0x79,0x2, +0xf7,0x0,0xf9,0xfe,0xfe,0xfc,0xce,0xfb,0x91,0xfb,0xc1,0xfb, +0x4d,0xfc,0x5e,0xfd,0x80,0xfe,0x66,0xff,0x38,0x0,0xf2,0x0, +0xa0,0x1,0x48,0x2,0xa5,0x2,0xba,0x2,0xa4,0x2,0x4e,0x2, +0x30,0x2,0xbe,0x2,0x81,0x3,0xef,0x3,0xef,0x3,0x70,0x3, +0xbc,0x2,0x36,0x2,0xdc,0x1,0xa9,0x1,0x80,0x1,0x2c,0x1, +0xd5,0x0,0x83,0x0,0x16,0x0,0xfa,0xff,0x51,0x0,0x85,0x0, +0x8c,0x0,0xcc,0x0,0x35,0x1,0xb1,0x1,0x42,0x2,0xda,0x2, +0x92,0x3,0x28,0x4,0x2d,0x4,0xc4,0x3,0x2,0x3,0xcb,0x1, +0x82,0x0,0x5e,0xff,0x67,0xfe,0x22,0xfe,0x99,0xfe,0x3c,0xff, +0x1b,0x0,0x43,0x1,0x31,0x2,0xd2,0x2,0x25,0x3,0xb2,0x2, +0x74,0x1,0xcb,0xff,0xf2,0xfd,0x61,0xfc,0x8c,0xfb,0x7b,0xfb, +0x17,0xfc,0x22,0xfd,0x30,0xfe,0x0,0xff,0x60,0xff,0x59,0xff, +0x44,0xff,0x25,0xff,0xf4,0xfe,0xe5,0xfe,0xad,0xfe,0x9,0xfe, +0xa8,0xfd,0xfb,0xfd,0x9e,0xfe,0x6b,0xff,0x60,0x0,0x49,0x1, +0x3d,0x2,0x36,0x3,0xf0,0x3,0x88,0x4,0x5,0x5,0xe7,0x4, +0x1f,0x4,0xe4,0x2,0xc3,0x0,0x2b,0xfd,0x4a,0xf8,0xd7,0xf2, +0xae,0xed,0xa7,0xe9,0x71,0xe7,0x99,0xe7,0x80,0xea,0x19,0xf0, +0xa2,0xf7,0xd2,0xff,0xb3,0x7,0x1f,0xf,0xb5,0x15,0x36,0x1a, +0x8f,0x1b,0x67,0x19,0xcd,0x13,0xcd,0xb,0xdd,0x3,0x1d,0xfe, +0xcb,0xfa,0x65,0xf9,0x0,0xfa,0x65,0xfc,0x7d,0xff,0x72,0x2, +0x51,0x5,0x8,0x8,0xed,0x9,0x5c,0xa,0x3a,0x9,0xe0,0x6, +0xd5,0x3,0x86,0x0,0x2c,0xfd,0x3,0xfa,0x6e,0xf7,0xce,0xf5, +0x23,0xf5,0x1f,0xf5,0xbf,0xf5,0x65,0xf7,0xff,0xf9,0xe0,0xfc, +0xd2,0xff,0xff,0x2,0xc5,0x5,0x23,0x7,0x18,0x7,0x36,0x6, +0xc1,0x4,0x2,0x3,0x5d,0x1,0xed,0xff,0xa6,0xfe,0x72,0xfd, +0x27,0xfc,0xda,0xfa,0xd0,0xf9,0x12,0xf9,0x9e,0xf8,0x76,0xf8, +0x6f,0xf8,0x6f,0xf8,0x76,0xf8,0x7f,0xf8,0xf7,0xf8,0x76,0xfa, +0xa1,0xfc,0x85,0xfe,0xf8,0xff,0x62,0x1,0xcc,0x2,0xf9,0x3, +0xf1,0x4,0xf2,0x5,0x3,0x7,0xb2,0x7,0x81,0x7,0x88,0x6, +0x40,0x5,0x12,0x4,0x5b,0x3,0x75,0x3,0x68,0x4,0xde,0x5, +0x51,0x7,0x4e,0x8,0xb1,0x8,0x60,0x8,0x23,0x7,0x24,0x5, +0x5,0x3,0x40,0x1,0xef,0xff,0xe1,0xfe,0xd4,0xfd,0x10,0xfd, +0xe8,0xfc,0xe3,0xfc,0xb4,0xfc,0xcd,0xfc,0x5,0xfd,0xc2,0xfc, +0x4b,0xfc,0x17,0xfc,0xe,0xfc,0x35,0xfc,0xa7,0xfc,0x4b,0xfd, +0x33,0xfe,0x47,0xff,0x21,0x0,0xa9,0x0,0xe6,0x0,0xa2,0x0, +0xbf,0xff,0x55,0xfe,0xcc,0xfc,0xac,0xfb,0xfd,0xfa,0x99,0xfa, +0xc9,0xfa,0xa5,0xfb,0xdf,0xfc,0x76,0xfe,0x7d,0x0,0xb8,0x2, +0xc4,0x4,0x33,0x6,0xa2,0x6,0xdf,0x5,0xa,0x4,0xc9,0x1, +0xd7,0xff,0x5b,0xfe,0x5c,0xfd,0x8,0xfd,0x37,0xfd,0xb8,0xfd, +0x9a,0xfe,0xd7,0xff,0x60,0x1,0xd,0x3,0x86,0x4,0xb9,0x5, +0xb4,0x6,0x3e,0x7,0x6c,0x7,0x9a,0x7,0xd9,0x7,0x15,0x8, +0xee,0x7,0xd5,0x6,0x5,0x5,0xf3,0x2,0x83,0x0,0x11,0xfe, +0x59,0xfc,0x27,0xfb,0x14,0xfa,0x6c,0xf9,0x9a,0xf9,0xc8,0xfa, +0xcf,0xfc,0x1c,0xff,0x41,0x1,0xef,0x2,0x9c,0x3,0x31,0x3, +0x38,0x2,0xa,0x1,0xb6,0xff,0x73,0xfe,0x9f,0xfd,0x55,0xfd, +0x69,0xfd,0xf2,0xfd,0x23,0xff,0x87,0x0,0x87,0x1,0x2e,0x2, +0x81,0x2,0x69,0x2,0x4d,0x2,0x62,0x2,0x6d,0x2,0x86,0x2, +0xb5,0x2,0x8a,0x2,0x9,0x2,0xa7,0x1,0x6d,0x1,0x37,0x1, +0x12,0x1,0xfb,0x0,0xe6,0x0,0xdf,0x0,0xcd,0x0,0x81,0x0, +0xb,0x0,0x87,0xff,0xf1,0xfe,0x77,0xfe,0x5b,0xfe,0x6e,0xfe, +0x61,0xfe,0x30,0xfe,0xd5,0xfd,0x48,0xfd,0x95,0xfc,0x79,0xfb, +0x8e,0xf9,0xbd,0xf6,0xfe,0xf2,0x78,0xee,0xf3,0xe9,0x67,0xe6, +0x95,0xe4,0x29,0xe5,0xa6,0xe8,0x38,0xef,0x47,0xf8,0x36,0x2, +0x86,0xb,0xba,0x13,0x5c,0x1a,0x62,0x1e,0x1a,0x1f,0x6b,0x1c, +0x5e,0x16,0xc0,0xd,0xa8,0x4,0x4b,0xfd,0x9c,0xf8,0x9c,0xf6, +0x43,0xf7,0x25,0xfa,0x9,0xfe,0xab,0x1,0x8a,0x4,0xd7,0x6, +0xd9,0x8,0x31,0xa,0xfc,0x9,0xe6,0x7,0x83,0x4,0x79,0x0, +0x48,0xfc,0xb8,0xf8,0x63,0xf6,0x36,0xf5,0x17,0xf5,0x43,0xf6, +0xa2,0xf8,0xe2,0xfb,0xd7,0xff,0xeb,0x3,0x57,0x7,0x0,0xa, +0xbb,0xb,0xc0,0xb,0xd3,0x9,0x7d,0x6,0x5f,0x2,0x77,0xfe, +0xc1,0xfb,0x38,0xfa,0x4b,0xf9,0xa9,0xf8,0x22,0xf8,0x93,0xf7, +0xfe,0xf6,0x64,0xf6,0xe3,0xf5,0xa8,0xf5,0xa7,0xf5,0xab,0xf5, +0x8f,0xf5,0x64,0xf5,0x8b,0xf5,0x7e,0xf6,0x66,0xf8,0xfa,0xfa, +0xe0,0xfd,0x9,0x1,0x33,0x4,0xc4,0x6,0x99,0x8,0xe4,0x9, +0x63,0xa,0xe7,0x9,0xa7,0x8,0xbe,0x6,0x86,0x4,0xad,0x2, +0x85,0x1,0x3f,0x1,0xf5,0x1,0x1e,0x3,0x3c,0x4,0x57,0x5, +0x33,0x6,0x7e,0x6,0x4e,0x6,0x8f,0x5,0x39,0x4,0xb4,0x2, +0x2a,0x1,0x84,0xff,0xed,0xfd,0x93,0xfc,0xb2,0xfb,0xa2,0xfb, +0x58,0xfc,0x75,0xfd,0xb9,0xfe,0xdc,0xff,0x7b,0x0,0x8e,0x0, +0x79,0x0,0x84,0x0,0x80,0x0,0x18,0x0,0x59,0xff,0x90,0xfe, +0xf2,0xfd,0x9c,0xfd,0xab,0xfd,0xa,0xfe,0x57,0xfe,0x3e,0xfe, +0xbe,0xfd,0xef,0xfc,0xf,0xfc,0x94,0xfb,0x74,0xfb,0x38,0xfb, +0xf6,0xfa,0xf3,0xfa,0x7,0xfb,0x50,0xfb,0x33,0xfc,0x7a,0xfd, +0xab,0xfe,0xa2,0xff,0x5e,0x0,0xd6,0x0,0x9,0x1,0x5,0x1, +0xd3,0x0,0x48,0x0,0x6b,0xff,0xbc,0xfe,0x83,0xfe,0xe4,0xfe, +0x3b,0x0,0x3d,0x2,0x34,0x4,0x37,0x6,0x75,0x8,0x70,0xa, +0xce,0xb,0x62,0xc,0xd8,0xb,0x46,0xa,0xf6,0x7,0x6,0x5, +0xe2,0x1,0xfb,0xfe,0x5b,0xfc,0x18,0xfa,0x7e,0xf8,0xe4,0xf7, +0xb3,0xf8,0xe7,0xfa,0xee,0xfd,0x4e,0x1,0xa5,0x4,0x55,0x7, +0xe9,0x8,0x44,0x9,0x87,0x8,0xe4,0x6,0x5f,0x4,0x13,0x1, +0x7c,0xfd,0x10,0xfa,0x4b,0xf7,0xfb,0xf5,0x7b,0xf6,0x48,0xf8, +0xda,0xfa,0xca,0xfd,0x88,0x0,0xd3,0x2,0x91,0x4,0x50,0x5, +0xec,0x4,0xab,0x3,0x89,0x1,0xe8,0xfe,0xd7,0xfc,0xaa,0xfb, +0x6,0xfb,0x0,0xfb,0xb0,0xfb,0xdf,0xfc,0x62,0xfe,0xd1,0xff, +0xe6,0x0,0xed,0x1,0xcb,0x2,0x28,0x3,0x70,0x3,0xcf,0x3, +0xbf,0x3,0x2e,0x3,0x25,0x2,0x55,0x0,0xf3,0xfd,0x74,0xfb, +0x12,0xf9,0x1a,0xf7,0x43,0xf5,0xe3,0xf2,0x1a,0xf0,0x42,0xed, +0x97,0xea,0xf8,0xe8,0x19,0xe9,0xec,0xea,0xc0,0xee,0xc5,0xf4, +0xe,0xfc,0x9d,0x3,0x32,0xb,0x9e,0x12,0xf,0x19,0x14,0x1d, +0xd6,0x1d,0x7d,0x1b,0x2d,0x16,0xa0,0xe,0x20,0x7,0x8d,0x1, +0xd6,0xfd,0x7b,0xfb,0xa3,0xfa,0x6f,0xfb,0x2a,0xfd,0xcd,0xfe, +0x68,0x0,0xa4,0x2,0xd7,0x4,0xd5,0x5,0xa0,0x5,0x71,0x4, +0x12,0x2,0xeb,0xfe,0xb5,0xfb,0xc9,0xf8,0x99,0xf6,0x99,0xf5, +0xba,0xf5,0xbe,0xf6,0x99,0xf8,0x3d,0xfb,0x57,0xfe,0x7a,0x1, +0x71,0x4,0x11,0x7,0xbf,0x8,0xef,0x8,0xbb,0x7,0xa9,0x5, +0x34,0x3,0xa4,0x0,0x2d,0xfe,0x24,0xfc,0x8a,0xfa,0xe4,0xf8, +0x26,0xf7,0xd6,0xf5,0x14,0xf5,0xa9,0xf4,0x9e,0xf4,0xdb,0xf4, +0x1a,0xf5,0x6c,0xf5,0xf1,0xf5,0xad,0xf6,0x11,0xf8,0x86,0xfa, +0xb9,0xfd,0x19,0x1,0x44,0x4,0xf3,0x6,0x22,0x9,0xc0,0xa, +0x7d,0xb,0x6d,0xb,0xed,0xa,0xfa,0x9,0xa6,0x8,0x36,0x7, +0xa0,0x5,0x24,0x4,0x7e,0x3,0xc0,0x3,0x69,0x4,0x4a,0x5, +0xf,0x6,0x19,0x6,0x7a,0x5,0xb9,0x4,0xd5,0x3,0x8a,0x2, +0x4,0x1,0x6e,0xff,0x75,0xfd,0x4,0xfb,0xd2,0xf8,0xa9,0xf7, +0xad,0xf7,0x94,0xf8,0x17,0xfa,0x10,0xfc,0x4a,0xfe,0x63,0x0, +0xe,0x2,0x2e,0x3,0xc6,0x3,0x1,0x4,0xe5,0x3,0x54,0x3, +0x75,0x2,0x55,0x1,0xa8,0xff,0x96,0xfd,0xa2,0xfb,0xfe,0xf9, +0xe1,0xf8,0x84,0xf8,0xc8,0xf8,0x98,0xf9,0xaf,0xfa,0x82,0xfb, +0x33,0xfc,0x8,0xfd,0x96,0xfd,0xd4,0xfd,0xfe,0xfd,0xca,0xfd, +0x91,0xfd,0xf,0xfe,0xeb,0xfe,0xe1,0xff,0x57,0x1,0xfa,0x2, +0x45,0x4,0x4a,0x5,0xe1,0x5,0xf9,0x5,0xf3,0x5,0xc5,0x5, +0x62,0x5,0x3a,0x5,0x67,0x5,0xb6,0x5,0x1c,0x6,0x5a,0x6, +0x52,0x6,0x5c,0x6,0x74,0x6,0x40,0x6,0xc5,0x5,0xea,0x4, +0x47,0x3,0x0,0x1,0xc4,0xfe,0xe3,0xfc,0x61,0xfb,0x7c,0xfa, +0x48,0xfa,0x82,0xfa,0x23,0xfb,0x55,0xfc,0x0,0xfe,0x6,0x0, +0x39,0x2,0x24,0x4,0x76,0x5,0x28,0x6,0x27,0x6,0x6f,0x5, +0x2f,0x4,0xad,0x2,0x2a,0x1,0xb0,0xff,0x45,0xfe,0x20,0xfd, +0x4f,0xfc,0xd2,0xfb,0xeb,0xfb,0x91,0xfc,0x8c,0xfd,0xfe,0xfe, +0xb4,0x0,0x1b,0x2,0x3f,0x3,0x53,0x4,0xea,0x4,0xbe,0x4, +0x8,0x4,0xe3,0x2,0x4e,0x1,0x84,0xff,0xb5,0xfd,0xbb,0xfb, +0xbe,0xf9,0x9d,0xf8,0x1,0xf9,0xba,0xfa,0x81,0xfd,0x11,0x1, +0xc3,0x4,0xec,0x7,0xfd,0x9,0x97,0xa,0xf6,0x9,0x36,0x8, +0x15,0x5,0xfa,0x0,0x45,0xfc,0xb8,0xf6,0xc2,0xf0,0x46,0xeb, +0x6c,0xe6,0x9e,0xe2,0xcb,0xe0,0x6b,0xe1,0xce,0xe4,0x19,0xeb, +0x73,0xf3,0x9c,0xfc,0xce,0x5,0x95,0xe,0x56,0x16,0xd6,0x1b, +0xe4,0x1d,0x52,0x1c,0x58,0x17,0x87,0xf,0xf2,0x6,0xa,0x0, +0x9b,0xfb,0x6f,0xf9,0x88,0xf9,0xd6,0xfb,0x9f,0xff,0xc9,0x3, +0xb3,0x7,0x66,0xb,0x8b,0xe,0x16,0x10,0x52,0xf,0x81,0xc, +0x50,0x8,0x18,0x3,0x30,0xfd,0x9b,0xf7,0x57,0xf3,0xb3,0xf0, +0xe0,0xef,0xcd,0xf0,0xdb,0xf2,0xbc,0xf5,0x4f,0xf9,0xe9,0xfc, +0x28,0x0,0x1e,0x3,0x5f,0x5,0x5c,0x6,0x1e,0x6,0x25,0x5, +0x37,0x4,0xc8,0x3,0x87,0x3,0x19,0x3,0x51,0x2,0xc3,0x0, +0x4a,0xfe,0x6a,0xfb,0xb0,0xf8,0x32,0xf6,0xc4,0xf3,0xa1,0xf1, +0x78,0xf0,0x89,0xf0,0x79,0xf1,0x32,0xf3,0xd,0xf6,0xeb,0xf9, +0xdf,0xfd,0x14,0x1,0xb1,0x3,0x3,0x6,0x7e,0x7,0xb8,0x7, +0x1e,0x7,0xf6,0x5,0x3b,0x4,0x45,0x2,0x97,0x0,0x88,0xff, +0x3c,0xff,0xa9,0xff,0x13,0x1,0xe6,0x3,0xee,0x7,0x5c,0xc, +0x34,0x10,0x84,0x12,0xe1,0x12,0x72,0x11,0x5d,0xe,0xc,0xa, +0x4e,0x5,0x96,0x0,0xff,0xfb,0xe6,0xf7,0xcd,0xf4,0xd,0xf3, +0xda,0xf2,0xfe,0xf3,0x3,0xf6,0xbd,0xf8,0xff,0xfb,0xc,0xff, +0x27,0x1,0x5e,0x2,0x7,0x3,0x2f,0x3,0xe9,0x2,0x7f,0x2, +0x17,0x2,0x94,0x1,0xd6,0x0,0x7,0x0,0x5c,0xff,0x9e,0xfe, +0x8e,0xfd,0x8f,0xfc,0x26,0xfc,0x5b,0xfc,0xa,0xfd,0xd5,0xfd, +0x2b,0xfe,0xf5,0xfd,0x9c,0xfd,0x69,0xfd,0x72,0xfd,0xab,0xfd, +0xe5,0xfd,0xfd,0xfd,0xd7,0xfd,0x71,0xfd,0x19,0xfd,0x14,0xfd, +0x70,0xfd,0x4d,0xfe,0xab,0xff,0x2b,0x1,0x95,0x2,0x14,0x4, +0xb1,0x5,0x41,0x7,0x9e,0x8,0x96,0x9,0x5,0xa,0xa,0xa, +0xc5,0x9,0x2e,0x9,0x44,0x8,0x1d,0x7,0xe1,0x5,0xbc,0x4, +0x7c,0x3,0xc2,0x1,0xc5,0xff,0x1c,0xfe,0xd4,0xfc,0xb5,0xfb, +0xc1,0xfa,0xfe,0xf9,0x7a,0xf9,0x80,0xf9,0x4f,0xfa,0xef,0xfb, +0x5,0xfe,0xfe,0xff,0xaa,0x1,0x15,0x3,0xf0,0x3,0xa,0x4, +0xa9,0x3,0xde,0x2,0x94,0x1,0x28,0x0,0x16,0xff,0x74,0xfe, +0x19,0xfe,0xe1,0xfd,0xcc,0xfd,0xf3,0xfd,0x6a,0xfe,0x42,0xff, +0x5c,0x0,0x3c,0x1,0x9d,0x1,0xd0,0x1,0x1,0x2,0x1,0x2, +0xf7,0x1,0x2f,0x2,0x72,0x2,0x8d,0x2,0xb9,0x2,0xef,0x2, +0xff,0x2,0x0,0x3,0xd2,0x2,0x43,0x2,0xc7,0x1,0xc4,0x1, +0x12,0x2,0xaa,0x2,0x6f,0x3,0xe3,0x3,0xe2,0x3,0x9d,0x3, +0x16,0x3,0x64,0x2,0xad,0x1,0xea,0x0,0x5,0x0,0xab,0xfe, +0xaf,0xfc,0x66,0xfa,0xce,0xf7,0x94,0xf4,0x10,0xf1,0xbf,0xed, +0xc3,0xea,0x9c,0xe8,0xe4,0xe7,0xcf,0xe8,0xc0,0xeb,0x11,0xf1, +0x32,0xf8,0xe2,0xff,0x1c,0x7,0x85,0xd,0xd4,0x12,0x37,0x16, +0xec,0x16,0xbc,0x14,0xd8,0xf,0x83,0x9,0xc6,0x3,0xb4,0xff, +0x2a,0xfd,0xbf,0xfb,0x4c,0xfb,0x48,0xfc,0xca,0xfe,0xc7,0x1, +0xb5,0x4,0xd4,0x7,0x5d,0xa,0x3e,0xb,0x8b,0xa,0xab,0x8, +0xfa,0x5,0x2,0x3,0x13,0x0,0x57,0xfd,0xe8,0xfa,0xb4,0xf8, +0x28,0xf7,0xdc,0xf6,0x9f,0xf7,0x1a,0xf9,0x21,0xfb,0x29,0xfd, +0x2,0xff,0x12,0x1,0x32,0x3,0xed,0x4,0x16,0x6,0x79,0x6, +0x1a,0x6,0x4d,0x5,0x25,0x4,0xa7,0x2,0xc5,0x0,0xf6,0xfd, +0x46,0xfa,0xdc,0xf6,0x6f,0xf4,0xb9,0xf2,0xaf,0xf1,0x7b,0xf1, +0xe7,0xf1,0xdc,0xf2,0x96,0xf4,0xf1,0xf6,0xa0,0xf9,0x9d,0xfc, +0x9a,0xff,0x1e,0x2,0x3c,0x4,0xe6,0x5,0xbc,0x6,0xfc,0x6, +0xfb,0x6,0x5f,0x6,0x10,0x5,0x85,0x3,0xd,0x2,0x5,0x1, +0xef,0x0,0xd2,0x1,0x5e,0x3,0x53,0x5,0x61,0x7,0x2a,0x9, +0x64,0xa,0xf5,0xa,0xdd,0xa,0xee,0x9,0x14,0x8,0xb4,0x5, +0x34,0x3,0xa9,0x0,0x14,0xfe,0x6e,0xfb,0xfa,0xf8,0x5a,0xf7, +0xcf,0xf6,0x2d,0xf7,0x78,0xf8,0x93,0xfa,0x8,0xfd,0x87,0xff, +0xe5,0x1,0xe1,0x3,0x3d,0x5,0xcd,0x5,0x81,0x5,0x84,0x4, +0x12,0x3,0x48,0x1,0x5b,0xff,0xe4,0xfd,0x43,0xfd,0xf6,0xfc, +0x68,0xfc,0xa5,0xfb,0xb0,0xfa,0x81,0xf9,0xa7,0xf8,0x96,0xf8, +0x35,0xf9,0x67,0xfa,0xee,0xfb,0x6e,0xfd,0xda,0xfe,0xfc,0xff, +0xa3,0x0,0x7,0x1,0x6,0x1,0x59,0x0,0x8f,0xff,0xe,0xff, +0xb2,0xfe,0xcb,0xfe,0x76,0xff,0x30,0x0,0x1b,0x1,0xab,0x2, +0x8b,0x4,0x5b,0x6,0xc,0x8,0x50,0x9,0xf0,0x9,0x2,0xa, +0x8e,0x9,0xaa,0x8,0x73,0x7,0xc5,0x5,0x90,0x3,0x1c,0x1, +0xbf,0xfe,0xb5,0xfc,0x5b,0xfb,0xef,0xfa,0x39,0xfb,0xdf,0xfb, +0xc9,0xfc,0xc0,0xfd,0x85,0xfe,0x6a,0xff,0xb3,0x0,0xf,0x2, +0x26,0x3,0xbc,0x3,0x8e,0x3,0xc5,0x2,0x9d,0x1,0x13,0x0, +0x6f,0xfe,0xfe,0xfc,0x9f,0xfb,0x86,0xfa,0x0,0xfa,0xc6,0xf9, +0xc4,0xf9,0x4a,0xfa,0x20,0xfb,0xe7,0xfb,0xb4,0xfc,0x6f,0xfd, +0xed,0xfd,0x64,0xfe,0xf6,0xfe,0x7f,0xff,0xe4,0xff,0x2a,0x0, +0x67,0x0,0x87,0x0,0x3a,0x0,0x8a,0xff,0xf1,0xfe,0xbf,0xfe, +0x6,0xff,0xc3,0xff,0xe0,0x0,0x51,0x2,0xe6,0x3,0x39,0x5, +0x2f,0x6,0xcd,0x6,0xc3,0x6,0x31,0x6,0xc3,0x5,0x98,0x5, +0x67,0x5,0x38,0x5,0xc,0x5,0xda,0x4,0xd2,0x4,0xe1,0x4, +0xcf,0x4,0xa8,0x4,0x2f,0x4,0x11,0x3,0xa4,0x1,0x43,0x0, +0xf4,0xfe,0xe3,0xfd,0xe,0xfd,0x27,0xfc,0x36,0xfb,0x55,0xfa, +0x4e,0xf9,0x29,0xf8,0x0,0xf7,0xa4,0xf5,0xc,0xf4,0x5a,0xf2, +0xa0,0xf0,0x50,0xef,0x27,0xef,0x8c,0xf0,0x82,0xf3,0x9f,0xf7, +0x12,0xfc,0x3f,0x0,0xd,0x4,0x75,0x7,0x56,0xa,0x3c,0xc, +0x43,0xc,0xde,0x9,0xa1,0x5,0xef,0x0,0x2c,0xfd,0x35,0xfb, +0x3,0xfb,0xf5,0xfb,0x83,0xfd,0x4f,0xff,0xd,0x1,0xb1,0x2, +0x4e,0x4,0xb8,0x5,0xbd,0x6,0x25,0x7,0x75,0x6,0x81,0x4, +0x19,0x2,0x72,0x0,0x5,0x0,0x4c,0x0,0x81,0x0,0x7f,0x0, +0x99,0x0,0xdd,0x0,0xf,0x1,0x33,0x1,0x92,0x1,0x52,0x2, +0x33,0x3,0xdd,0x3,0x15,0x4,0xbb,0x3,0x13,0x3,0xa2,0x2, +0x72,0x2,0x23,0x2,0x96,0x1,0xd3,0x0,0xce,0xff,0x76,0xfe, +0x94,0xfc,0x2a,0xfa,0xcd,0xf7,0xe5,0xf5,0x5c,0xf4,0x31,0xf3, +0x97,0xf2,0xc8,0xf2,0xf3,0xf3,0xe4,0xf5,0x2e,0xf8,0x9a,0xfa, +0xf2,0xfc,0xdd,0xfe,0x39,0x0,0x32,0x1,0xe,0x2,0xd4,0x2, +0x43,0x3,0x59,0x3,0x5f,0x3,0x84,0x3,0xe2,0x3,0x61,0x4, +0xaa,0x4,0xc4,0x4,0xd7,0x4,0xca,0x4,0xd2,0x4,0xf,0x5, +0x10,0x5,0xd4,0x4,0xa1,0x4,0x1d,0x4,0x29,0x3,0x35,0x2, +0x52,0x1,0x7d,0x0,0xd4,0xff,0xf,0xff,0x35,0xfe,0xee,0xfd, +0x6b,0xfe,0x4b,0xff,0x38,0x0,0x3,0x1,0xb5,0x1,0x5e,0x2, +0xcf,0x2,0xec,0x2,0xb5,0x2,0x3d,0x2,0xbf,0x1,0x49,0x1, +0xce,0x0,0x65,0x0,0xed,0xff,0x3e,0xff,0xa9,0xfe,0x4d,0xfe, +0xeb,0xfd,0x81,0xfd,0xeb,0xfc,0xf1,0xfb,0x0,0xfb,0x87,0xfa, +0x7b,0xfa,0xe4,0xfa,0x9f,0xfb,0x2e,0xfc,0x8b,0xfc,0x12,0xfd, +0xc7,0xfd,0x66,0xfe,0xb9,0xfe,0xca,0xfe,0xc2,0xfe,0xb3,0xfe, +0xca,0xfe,0x3c,0xff,0xef,0xff,0xd5,0x0,0x0,0x2,0x36,0x3, +0x2c,0x4,0xc8,0x4,0x0,0x5,0xf0,0x4,0xad,0x4,0x32,0x4, +0xa9,0x3,0x1,0x3,0x3,0x2,0x19,0x1,0x9a,0x0,0x21,0x0, +0xb2,0xff,0xa7,0xff,0xba,0xff,0xc6,0xff,0xfd,0xff,0x33,0x0, +0x57,0x0,0xa7,0x0,0xfa,0x0,0x3c,0x1,0xaa,0x1,0xa,0x2, +0xa,0x2,0xd6,0x1,0x91,0x1,0x1b,0x1,0x80,0x0,0xf9,0xff, +0xab,0xff,0x8b,0xff,0x7e,0xff,0x97,0xff,0xd1,0xff,0xf0,0xff, +0xe1,0xff,0xbf,0xff,0x97,0xff,0x6e,0xff,0x41,0xff,0xf6,0xfe, +0x93,0xfe,0x40,0xfe,0xf,0xfe,0xfd,0xfd,0xea,0xfd,0xa8,0xfd, +0x2c,0xfd,0x95,0xfc,0x13,0xfc,0xbe,0xfb,0x7f,0xfb,0x41,0xfb, +0x2c,0xfb,0x7a,0xfb,0x50,0xfc,0xc0,0xfd,0xb0,0xff,0xcb,0x1, +0xc6,0x3,0x6d,0x5,0x89,0x6,0x10,0x7,0xa,0x7,0x45,0x6, +0xc4,0x4,0x11,0x3,0x8b,0x1,0x48,0x0,0x87,0xff,0x4a,0xff, +0x24,0xff,0x15,0xff,0x80,0xff,0x63,0x0,0x6f,0x1,0x69,0x2, +0x4c,0x3,0x42,0x4,0x36,0x5,0xdd,0x5,0x3d,0x6,0x69,0x6, +0x1f,0x6,0x41,0x5,0xcc,0x3,0xb5,0x1,0x55,0xff,0x42,0xfd, +0xc5,0xfb,0xf5,0xfa,0xb9,0xfa,0x99,0xfa,0x35,0xfa,0x85,0xf9, +0x97,0xf8,0x64,0xf7,0xf4,0xf5,0xf6,0xf4,0x83,0xf5,0xba,0xf7, +0xd6,0xfa,0x42,0xfe,0x3c,0x1,0x11,0x3,0x7c,0x4,0x98,0x6, +0xd7,0x8,0xbc,0x9,0x37,0x8,0x29,0x4,0x2a,0xff,0xc7,0xfb, +0xf1,0xfa,0x95,0xfb,0x6d,0xfc,0xfa,0xfc,0x60,0xfd,0xfb,0xfd, +0xeb,0xfe,0x2d,0x0,0xd9,0x1,0xcb,0x3,0x80,0x5,0x57,0x6, +0xdc,0x5,0x3f,0x4,0x5a,0x2,0xed,0x0,0x1a,0x0,0x7f,0xff, +0xc1,0xfe,0x4c,0xfe,0xf5,0xfe,0x8e,0x0,0x3a,0x2,0xbb,0x3, +0x18,0x5,0x3,0x6,0x54,0x6,0xef,0x5,0xa6,0x4,0xe6,0x2, +0x49,0x1,0xc5,0xff,0x54,0xfe,0x5e,0xfd,0xef,0xfc,0x97,0xfc, +0x23,0xfc,0xcd,0xfb,0xdc,0xfb,0x28,0xfc,0x4f,0xfc,0x47,0xfc, +0x2a,0xfc,0xee,0xfb,0xba,0xfb,0xca,0xfb,0x11,0xfc,0x7b,0xfc, +0x37,0xfd,0x65,0xfe,0xd0,0xff,0xb,0x1,0xc9,0x1,0x1a,0x2, +0x52,0x2,0xa8,0x2,0xc1,0x2,0x11,0x2,0xd7,0x0,0xcc,0xff, +0x11,0xff,0x92,0xfe,0x91,0xfe,0x26,0xff,0x27,0x0,0x66,0x1, +0x7b,0x2,0x2d,0x3,0xad,0x3,0xf6,0x3,0xd9,0x3,0x76,0x3, +0xe8,0x2,0x26,0x2,0x47,0x1,0x68,0x0,0xc0,0xff,0x7b,0xff, +0x63,0xff,0x65,0xff,0xde,0xff,0xbf,0x0,0x94,0x1,0x3c,0x2, +0xbb,0x2,0x8,0x3,0x52,0x3,0x90,0x3,0x69,0x3,0xf3,0x2, +0x6d,0x2,0xa2,0x1,0xa1,0x0,0x4,0x0,0xad,0xff,0xe3,0xfe, +0xb9,0xfd,0xb1,0xfc,0xb4,0xfb,0xba,0xfa,0x25,0xfa,0x1,0xfa, +0x45,0xfa,0xf,0xfb,0x1f,0xfc,0x36,0xfd,0x72,0xfe,0xae,0xff, +0xad,0x0,0x9e,0x1,0x7f,0x2,0x2,0x3,0xc,0x3,0x97,0x2, +0xc0,0x1,0xef,0x0,0x4a,0x0,0xac,0xff,0x21,0xff,0xbd,0xfe, +0x94,0xfe,0xe1,0xfe,0x9e,0xff,0x75,0x0,0x24,0x1,0x93,0x1, +0xd7,0x1,0x6,0x2,0xc,0x2,0xfb,0x1,0xdf,0x1,0x80,0x1, +0xb,0x1,0xd8,0x0,0xa5,0x0,0x68,0x0,0x90,0x0,0xdb,0x0, +0xe9,0x0,0x2,0x1,0xf7,0x0,0x77,0x0,0x19,0x0,0x2c,0x0, +0x58,0x0,0xd1,0x0,0xbe,0x1,0x9e,0x2,0x4c,0x3,0xce,0x3, +0xe0,0x3,0x86,0x3,0xc4,0x2,0x62,0x1,0xd8,0xff,0xbf,0xfe, +0xe3,0xfd,0x1e,0xfd,0x98,0xfc,0x18,0xfc,0x9c,0xfb,0x8a,0xfb, +0xed,0xfb,0x88,0xfc,0x14,0xfd,0x45,0xfd,0x4a,0xfd,0x9e,0xfd, +0x2e,0xfe,0xc8,0xfe,0x79,0xff,0xe,0x0,0x4a,0x0,0x65,0x0, +0x82,0x0,0x73,0x0,0x49,0x0,0x4e,0x0,0x76,0x0,0x8c,0x0, +0xaf,0x0,0x1,0x1,0x3a,0x1,0x31,0x1,0x2c,0x1,0x2f,0x1, +0xf,0x1,0xb,0x1,0x39,0x1,0x46,0x1,0x3a,0x1,0x49,0x1, +0x5d,0x1,0x78,0x1,0xca,0x1,0x30,0x2,0x60,0x2,0x34,0x2, +0xa0,0x1,0xc7,0x0,0xfc,0xff,0x87,0xff,0x81,0xff,0xcc,0xff, +0x27,0x0,0x6c,0x0,0xa0,0x0,0xaa,0x0,0x50,0x0,0xb5,0xff, +0x2d,0xff,0xc1,0xfe,0x83,0xfe,0xaf,0xfe,0x23,0xff,0xa4,0xff, +0x45,0x0,0xce,0x0,0xd0,0x0,0x3c,0x0,0x1d,0xff,0x78,0xfd, +0x9f,0xfb,0xf,0xfa,0x65,0xf9,0x21,0xfa,0xfb,0xfb,0x68,0xfe, +0x18,0x1,0x75,0x3,0x3a,0x5,0xcb,0x6,0xc8,0x7,0x52,0x7, +0x74,0x5,0x84,0x2,0xe8,0xfe,0xec,0xfb,0xa3,0xfa,0xdd,0xfa, +0xfe,0xfb,0x50,0xfd,0x2e,0xfe,0xb7,0xfe,0x77,0xff,0x91,0x0, +0xde,0x1,0xe,0x3,0xbe,0x3,0xac,0x3,0xea,0x2,0xd0,0x1, +0x9f,0x0,0x7f,0xff,0xcf,0xfe,0x93,0xfe,0x60,0xfe,0x53,0xfe, +0xbb,0xfe,0x59,0xff,0x12,0x0,0xe0,0x0,0x50,0x1,0x5d,0x1, +0x6b,0x1,0x57,0x1,0xf9,0x0,0x84,0x0,0x20,0x0,0xfa,0xff, +0x13,0x0,0xa,0x0,0xb3,0xff,0x2a,0xff,0x96,0xfe,0x51,0xfe, +0x50,0xfe,0x29,0xfe,0xb,0xfe,0x54,0xfe,0xd0,0xfe,0x4c,0xff, +0xcd,0xff,0x61,0x0,0x1a,0x1,0xce,0x1,0x40,0x2,0x5d,0x2, +0xe1,0x1,0xeb,0x0,0x55,0x0,0x51,0x0,0x4c,0x0,0x19,0x0, +0xaf,0xff,0xf8,0xfe,0x4a,0xfe,0xea,0xfd,0xdb,0xfd,0x45,0xfe, +0xd,0xff,0xb9,0xff,0x11,0x0,0x1f,0x0,0x1b,0x0,0x62,0x0, +0xfd,0x0,0x7e,0x1,0x71,0x1,0xd4,0x0,0x3f,0x0,0x2f,0x0, +0x6b,0x0,0x8c,0x0,0x52,0x0,0xad,0xff,0xf9,0xfe,0xa4,0xfe, +0xb7,0xfe,0x20,0xff,0xc2,0xff,0x78,0x0,0x3c,0x1,0xea,0x1, +0x68,0x2,0xdf,0x2,0x1b,0x3,0xbf,0x2,0xf8,0x1,0xd5,0x0, +0x5b,0xff,0x4d,0xfe,0xed,0xfd,0x85,0xfd,0x12,0xfd,0x1e,0xfd, +0x9a,0xfd,0x4f,0xfe,0x25,0xff,0xd8,0xff,0x40,0x0,0x5b,0x0, +0x39,0x0,0x2e,0x0,0x5c,0x0,0x86,0x0,0xa8,0x0,0xe5,0x0, +0x23,0x1,0x29,0x1,0xe0,0x0,0x69,0x0,0xf0,0xff,0x6c,0xff, +0xf8,0xfe,0xe5,0xfe,0x29,0xff,0x8c,0xff,0xfe,0xff,0x66,0x0, +0xaf,0x0,0xd7,0x0,0xc7,0x0,0x9b,0x0,0x90,0x0,0x8b,0x0, +0x86,0x0,0xc4,0x0,0x2b,0x1,0x62,0x1,0x5b,0x1,0x4,0x1, +0x40,0x0,0x5c,0xff,0xba,0xfe,0x34,0xfe,0x7c,0xfd,0xc4,0xfc, +0x8d,0xfc,0xf1,0xfc,0xc2,0xfd,0xe8,0xfe,0x1e,0x0,0x4,0x1, +0xb2,0x1,0x41,0x2,0x78,0x2,0x76,0x2,0x85,0x2,0x73,0x2, +0x22,0x2,0xc3,0x1,0x41,0x1,0x90,0x0,0xe4,0xff,0x36,0xff, +0x88,0xfe,0x30,0xfe,0x2f,0xfe,0x51,0xfe,0xb1,0xfe,0x30,0xff, +0x68,0xff,0x60,0xff,0x4e,0xff,0x1a,0xff,0xe7,0xfe,0x1e,0xff, +0xba,0xff,0x35,0x0,0x43,0x0,0x16,0x0,0xe4,0xff,0xb7,0xff, +0xa5,0xff,0x9a,0xff,0x3b,0xff,0x9b,0xfe,0x43,0xfe,0x4b,0xfe, +0x5f,0xfe,0x8b,0xfe,0xd,0xff,0xcc,0xff,0x8b,0x0,0x33,0x1, +0xc3,0x1,0x43,0x2,0xb2,0x2,0xf5,0x2,0xde,0x2,0x66,0x2, +0xe2,0x1,0x9c,0x1,0x68,0x1,0x5,0x1,0x77,0x0,0xdb,0xff, +0x46,0xff,0xd5,0xfe,0xa3,0xfe,0xaa,0xfe,0xce,0xfe,0xf7,0xfe, +0x19,0xff,0x42,0xff,0x88,0xff,0xdd,0xff,0x20,0x0,0x56,0x0, +0x88,0x0,0xa5,0x0,0xb3,0x0,0xb4,0x0,0x88,0x0,0x36,0x0, +0xe5,0xff,0x95,0xff,0x2f,0xff,0x9b,0xfe,0xf0,0xfd,0xb1,0xfd, +0x31,0xfe,0x2e,0xff,0x4a,0x0,0x26,0x1,0x87,0x1,0xb6,0x1, +0xf6,0x1,0x10,0x2,0xf5,0x1,0xb6,0x1,0x2e,0x1,0x32,0x0, +0xb0,0xfe,0xf1,0xfc,0xc6,0xfb,0xb9,0xfb,0xa9,0xfc,0x3b,0xfe, +0xac,0xff,0x55,0x0,0x8b,0x0,0xe2,0x0,0x63,0x1,0x3,0x2, +0x96,0x2,0xd2,0x2,0xa7,0x2,0xf2,0x1,0xb8,0x0,0x84,0xff, +0xab,0xfe,0x1c,0xfe,0xe6,0xfd,0xee,0xfd,0x6,0xfe,0x4b,0xfe, +0x9b,0xfe,0xd6,0xfe,0x63,0xff,0x4a,0x0,0x12,0x1,0x87,0x1, +0x88,0x1,0x14,0x1,0x8a,0x0,0xe,0x0,0x98,0xff,0x64,0xff, +0x5d,0xff,0x3f,0xff,0x4a,0xff,0xa0,0xff,0xd8,0xff,0xc8,0xff, +0xc3,0xff,0x10,0x0,0x7b,0x0,0x74,0x0,0xc7,0xff,0xdf,0xfe, +0x49,0xfe,0x3e,0xfe,0x85,0xfe,0xe9,0xfe,0x91,0xff,0x66,0x0, +0x4,0x1,0x6d,0x1,0xbd,0x1,0xda,0x1,0xec,0x1,0xff,0x1, +0xab,0x1,0xcc,0x0,0xb8,0xff,0xc6,0xfe,0x3c,0xfe,0x1f,0xfe, +0x4c,0xfe,0xc5,0xfe,0x57,0xff,0xab,0xff,0xe4,0xff,0x31,0x0, +0x61,0x0,0x87,0x0,0xca,0x0,0xe5,0x0,0xb1,0x0,0x62,0x0, +0x1a,0x0,0xdd,0xff,0x92,0xff,0x27,0xff,0xd6,0xfe,0xc6,0xfe, +0xb4,0xfe,0x88,0xfe,0x70,0xfe,0x78,0xfe,0xbf,0xfe,0x6b,0xff, +0x13,0x0,0x4d,0x0,0x6b,0x0,0xbf,0x0,0x1d,0x1,0x72,0x1, +0xae,0x1,0x89,0x1,0x15,0x1,0xa5,0x0,0x21,0x0,0x75,0xff, +0xfc,0xfe,0xe1,0xfe,0xf3,0xfe,0xd,0xff,0x26,0xff,0x35,0xff, +0x36,0xff,0x41,0xff,0x81,0xff,0xdc,0xff,0xee,0xff,0xae,0xff, +0x74,0xff,0x67,0xff,0x8a,0xff,0xcb,0xff,0xe5,0xff,0xc2,0xff, +0xa6,0xff,0xc6,0xff,0x1e,0x0,0x8e,0x0,0xfd,0x0,0x59,0x1, +0x70,0x1,0x2b,0x1,0xc6,0x0,0x6e,0x0,0x20,0x0,0x3,0x0, +0x13,0x0,0xfe,0xff,0xbb,0xff,0x84,0xff,0x60,0xff,0x55,0xff, +0x6b,0xff,0x62,0xff,0x18,0xff,0xcf,0xfe,0x9e,0xfe,0x60,0xfe, +0x2f,0xfe,0x61,0xfe,0x11,0xff,0x1,0x0,0xe2,0x0,0x80,0x1, +0xae,0x1,0x4e,0x1,0xa1,0x0,0x1c,0x0,0xce,0xff,0x8c,0xff, +0x68,0xff,0x66,0xff,0x50,0xff,0x35,0xff,0x53,0xff,0xae,0xff, +0x2b,0x0,0x88,0x0,0x68,0x0,0xe3,0xff,0x75,0xff,0x35,0xff, +0xfa,0xfe,0xe8,0xfe,0x21,0xff,0x71,0xff,0x98,0xff,0x94,0xff, +0x98,0xff,0xc6,0xff,0x1b,0x0,0x97,0x0,0x24,0x1,0x86,0x1, +0x9e,0x1,0x84,0x1,0x5d,0x1,0x2e,0x1,0xcc,0x0,0x41,0x0, +0xf3,0xff,0xf5,0xff,0xf4,0xff,0xf0,0xff,0x19,0x0,0x4b,0x0, +0x68,0x0,0x73,0x0,0x56,0x0,0x10,0x0,0xc0,0xff,0x72,0xff, +0x26,0xff,0xc0,0xfe,0x2f,0xfe,0xc9,0xfd,0xe1,0xfd,0x43,0xfe, +0xa5,0xfe,0x1,0xff,0x51,0xff,0x8c,0xff,0xbf,0xff,0xfb,0xff, +0x52,0x0,0xd0,0x0,0x50,0x1,0xa9,0x1,0xc9,0x1,0xb5,0x1, +0xb4,0x1,0x2,0x2,0x4c,0x2,0x12,0x2,0x2f,0x1,0xac,0xff, +0xc4,0xfd,0xfb,0xfb,0xc0,0xfa,0x51,0xfa,0xd3,0xfa,0x17,0xfc, +0xca,0xfd,0xa4,0xff,0x30,0x1,0x2c,0x2,0xfc,0x2,0xcf,0x3, +0x3a,0x4,0xdb,0x3,0x92,0x2,0x91,0x0,0x97,0xfe,0x6a,0xfd, +0x5d,0xfd,0x62,0xfe,0xd7,0xff,0xd9,0x0,0x19,0x1,0xd5,0x0, +0x69,0x0,0x45,0x0,0x9d,0x0,0x33,0x1,0xaf,0x1,0xc3,0x1, +0x3f,0x1,0x5f,0x0,0x93,0xff,0xf0,0xfe,0x62,0xfe,0xff,0xfd, +0xbb,0xfd,0x47,0xfd,0xca,0xfc,0xe3,0xfc,0x99,0xfd,0x65,0xfe, +0x2c,0xff,0xe9,0xff,0x59,0x0,0x94,0x0,0xc1,0x0,0xca,0x0, +0xe3,0x0,0x2b,0x1,0x5e,0x1,0x82,0x1,0x91,0x1,0x25,0x1, +0x77,0x0,0x1d,0x0,0x7,0x0,0x3,0x0,0xfe,0xff,0xbc,0xff, +0x4c,0xff,0x5,0xff,0xfd,0xfe,0x3e,0xff,0xc0,0xff,0x46,0x0, +0xc4,0x0,0x25,0x1,0x33,0x1,0x1e,0x1,0xfb,0x0,0x7c,0x0, +0xbf,0xff,0xe,0xff,0x4e,0xfe,0xb0,0xfd,0x7f,0xfd,0x6f,0xfd, +0x84,0xfd,0x48,0xfe,0xb6,0xff,0x64,0x1,0xc,0x3,0x1c,0x4, +0x20,0x4,0x64,0x3,0x4f,0x2,0x22,0x1,0x4e,0x0,0xf2,0xff, +0xb0,0xff,0x7c,0xff,0x7c,0xff,0x7e,0xff,0x79,0xff,0xa2,0xff, +0xc1,0xff,0x86,0xff,0x7,0xff,0x59,0xfe,0x8b,0xfd,0xa,0xfd, +0x21,0xfd,0x8e,0xfd,0x7,0xfe,0x89,0xfe,0x1b,0xff,0xb2,0xff, +0x57,0x0,0x11,0x1,0xab,0x1,0xdf,0x1,0xa8,0x1,0x35,0x1, +0xa4,0x0,0x18,0x0,0xbb,0xff,0x9e,0xff,0xad,0xff,0xc5,0xff, +0xef,0xff,0x50,0x0,0xeb,0x0,0xa3,0x1,0x3e,0x2,0x76,0x2, +0x64,0x2,0x3c,0x2,0xc6,0x1,0xef,0x0,0x14,0x0,0x52,0xff, +0x94,0xfe,0xee,0xfd,0x45,0xfd,0xa0,0xfc,0x67,0xfc,0xcc,0xfc, +0xc7,0xfd,0x2a,0xff,0x3a,0x0,0xa7,0x0,0x1b,0x1,0xc8,0x1, +0x29,0x2,0x41,0x2,0x4f,0x2,0x2e,0x2,0xe7,0x1,0x8d,0x1, +0xf0,0x0,0x2f,0x0,0xbb,0xff,0xb7,0xff,0xda,0xff,0xc6,0xff, +0x32,0xff,0x3b,0xfe,0x7f,0xfd,0x88,0xfd,0x36,0xfe,0xb,0xff, +0xae,0xff,0xef,0xff,0xee,0xff,0xc,0x0,0x5d,0x0,0x96,0x0, +0x8b,0x0,0x3b,0x0,0xc5,0xff,0x62,0xff,0x26,0xff,0x1a,0xff, +0x4b,0xff,0x91,0xff,0xee,0xff,0x8f,0x0,0x20,0x1,0x51,0x1, +0x85,0x1,0xef,0x1,0x36,0x2,0x31,0x2,0xdd,0x1,0x44,0x1, +0xb7,0x0,0x5f,0x0,0x1,0x0,0x78,0xff,0xc7,0xfe,0x12,0xfe, +0xbb,0xfd,0xf7,0xfd,0x85,0xfe,0x10,0xff,0x68,0xff,0x75,0xff, +0x60,0xff,0x80,0xff,0xde,0xff,0x4b,0x0,0xd7,0x0,0x70,0x1, +0x8b,0x1,0x17,0x1,0xbc,0x0,0xa8,0x0,0xb1,0x0,0x2,0x1, +0x71,0x1,0x83,0x1,0x59,0x1,0x21,0x1,0xae,0x0,0x46,0x0, +0x3c,0x0,0x33,0x0,0xfb,0xff,0xc5,0xff,0x79,0xff,0x13,0xff, +0xe1,0xfe,0xf3,0xfe,0x26,0xff,0x73,0xff,0xc3,0xff,0x17,0x0, +0x8b,0x0,0xe6,0x0,0xda,0x0,0x7a,0x0,0xd0,0xff,0xb8,0xfe, +0x54,0xfd,0xdb,0xfb,0x83,0xfa,0x0,0xfa,0xe7,0xfa,0xe8,0xfc, +0x66,0xff,0xe5,0x1,0xc5,0x3,0xd8,0x4,0xaf,0x5,0x83,0x6, +0xe2,0x6,0x53,0x6,0x88,0x4,0xb2,0x1,0xc2,0xfe,0xb3,0xfc, +0xa,0xfc,0xc3,0xfc,0x1a,0xfe,0x1b,0xff,0x8b,0xff,0x97,0xff, +0x5d,0xff,0x25,0xff,0x3f,0xff,0xb4,0xff,0x71,0x0,0x16,0x1, +0xa,0x1,0x62,0x0,0xbe,0xff,0x5b,0xff,0x47,0xff,0x8e,0xff, +0xce,0xff,0xc0,0xff,0xc6,0xff,0xe,0x0,0x43,0x0,0x66,0x0, +0xb1,0x0,0x11,0x1,0x63,0x1,0x87,0x1,0x4b,0x1,0xb0,0x0, +0xe6,0xff,0x54,0xff,0x7f,0xff,0x29,0x0,0x9b,0x0,0xe0,0x0, +0xf,0x1,0x90,0x0,0x77,0xff,0x9f,0xfe,0x1b,0xfe,0x96,0xfd, +0x46,0xfd,0x45,0xfd,0x5d,0xfd,0x9b,0xfd,0x9,0xfe,0x87,0xfe, +0x2e,0xff,0x11,0x0,0xeb,0x0,0x6a,0x1,0x6f,0x1,0x27,0x1, +0xd,0x1,0x7c,0x1,0x34,0x2,0x90,0x2,0x31,0x2,0x5c,0x1, +0xbd,0x0,0xb1,0x0,0xec,0x0,0x6,0x1,0x7,0x1,0x1b,0x1, +0x40,0x1,0x6e,0x1,0xa5,0x1,0xb3,0x1,0x65,0x1,0xd5,0x0, +0x2b,0x0,0x4d,0xff,0x53,0xfe,0xb5,0xfd,0x93,0xfd,0xad,0xfd, +0xfc,0xfd,0x60,0xfe,0x86,0xfe,0x9f,0xfe,0x14,0xff,0xb9,0xff, +0x58,0x0,0xeb,0x0,0x2d,0x1,0x17,0x1,0x29,0x1,0x7f,0x1, +0xc9,0x1,0xdb,0x1,0xac,0x1,0x36,0x1,0x9a,0x0,0x19,0x0, +0xed,0xff,0x3,0x0,0x16,0x0,0x36,0x0,0x96,0x0,0xfa,0x0, +0xfd,0x0,0xae,0x0,0x69,0x0,0x37,0x0,0xbf,0xff,0x9,0xff, +0x99,0xfe,0xaa,0xfe,0x5,0xff,0x6c,0xff,0xa7,0xff,0xaf,0xff, +0xc4,0xff,0x8,0x0,0x84,0x0,0x2d,0x1,0xa9,0x1,0xc8,0x1, +0xc8,0x1,0xc8,0x1,0xca,0x1,0xde,0x1,0xeb,0x1,0xd6,0x1, +0x83,0x1,0xe2,0x0,0x63,0x0,0x55,0x0,0x55,0x0,0x41,0x0, +0x4a,0x0,0x19,0x0,0xa4,0xff,0x5f,0xff,0x2e,0xff,0xc9,0xfe, +0x7f,0xfe,0x8f,0xfe,0xe4,0xfe,0x48,0xff,0x8b,0xff,0xcc,0xff, +0x32,0x0,0x9f,0x0,0x1b,0x1,0xae,0x1,0x7,0x2,0x14,0x2, +0x1c,0x2,0xf,0x2,0x99,0x1,0xcb,0x0,0xe,0x0,0x6e,0xff, +0x80,0xfe,0x73,0xfd,0x4,0xfd,0x4d,0xfd,0xf4,0xfd,0xd7,0xfe, +0xb1,0xff,0x75,0x0,0x68,0x1,0x2d,0x2,0x3c,0x2,0xc1,0x1, +0x9,0x1,0x59,0x0,0xf4,0xff,0xb4,0xff,0x93,0xff,0xcd,0xff, +0x7,0x0,0x21,0x0,0x8e,0x0,0x3,0x1,0x18,0x1,0x3f,0x1, +0x78,0x1,0x56,0x1,0x10,0x1,0xd8,0x0,0x91,0x0,0x54,0x0, +0xe6,0xff,0x16,0xff,0x8b,0xfe,0xc8,0xfe,0x86,0xff,0x56,0x0, +0xde,0x0,0xf,0x1,0x51,0x1,0xae,0x1,0xb6,0x1,0x46,0x1, +0x94,0x0,0xd8,0xff,0x62,0xff,0x55,0xff,0x88,0xff,0xee,0xff, +0xb2,0x0,0xa8,0x1,0x48,0x2,0x5a,0x2,0x13,0x2,0x8a,0x1, +0xc5,0x0,0x1,0x0,0x53,0xff,0x60,0xfe,0xdd,0xfc,0xec,0xfa, +0xf1,0xf8,0x50,0xf7,0x79,0xf6,0xea,0xf6,0xc0,0xf8,0x88,0xfb, +0x9d,0xfe,0x4b,0x1,0x21,0x3,0x99,0x4,0x72,0x6,0x5f,0x8, +0x34,0x9,0xee,0x7,0x7d,0x4,0x49,0x0,0x46,0xfd,0x46,0xfc, +0xcf,0xfc,0xfe,0xfd,0xe7,0xfe,0x38,0xff,0x75,0xff,0x1,0x0, +0xa6,0x0,0x64,0x1,0x6a,0x2,0x51,0x3,0x63,0x3,0x6f,0x2, +0xeb,0x0,0x9f,0xff,0x2,0xff,0xc1,0xfe,0x59,0xfe,0xc7,0xfd, +0x57,0xfd,0x5f,0xfd,0x22,0xfe,0x58,0xff,0x70,0x0,0x6c,0x1, +0x68,0x2,0xdc,0x2,0x71,0x2,0xb7,0x1,0x49,0x1,0x1f,0x1, +0xe,0x1,0x1b,0x1,0x35,0x1,0x3e,0x1,0x29,0x1,0xc9,0x0, +0xe4,0xff,0xa9,0xfe,0x7e,0xfd,0x8b,0xfc,0xda,0xfb,0x88,0xfb, +0x80,0xfb,0xa1,0xfb,0xef,0xfb,0x69,0xfc,0x9,0xfd,0xf6,0xfd, +0x33,0xff,0x6e,0x0,0x5b,0x1,0xb2,0x1,0x5c,0x1,0xec,0x0, +0x4,0x1,0x49,0x1,0xb,0x1,0x50,0x0,0x88,0xff,0x9,0xff, +0x2f,0xff,0xa,0x0,0x27,0x1,0x9,0x2,0x8f,0x2,0xe9,0x2, +0x54,0x3,0xa9,0x3,0x8a,0x3,0xf3,0x2,0x10,0x2,0xa,0x1, +0x41,0x0,0xeb,0xff,0xb0,0xff,0x36,0xff,0x6d,0xfe,0x69,0xfd, +0x64,0xfc,0xd7,0xfb,0x2d,0xfc,0x46,0xfd,0x84,0xfe,0x7a,0xff, +0x3a,0x0,0xf4,0x0,0xc1,0x1,0x7e,0x2,0xbd,0x2,0x65,0x2, +0xdc,0x1,0x48,0x1,0x9d,0x0,0x15,0x0,0xcf,0xff,0xb0,0xff, +0xb6,0xff,0xc1,0xff,0x7e,0xff,0xe8,0xfe,0x4f,0xfe,0xf,0xfe, +0x3b,0xfe,0x95,0xfe,0xff,0xfe,0x8c,0xff,0x20,0x0,0x87,0x0, +0xc3,0x0,0xdb,0x0,0xcb,0x0,0xa1,0x0,0x64,0x0,0xdc,0xff, +0xd6,0xfe,0xc1,0xfd,0x45,0xfd,0x45,0xfd,0x6a,0xfd,0xef,0xfd, +0xca,0xfe,0x85,0xff,0x4a,0x0,0x58,0x1,0x4d,0x2,0xf0,0x2, +0x61,0x3,0x7a,0x3,0x40,0x3,0xfa,0x2,0x9f,0x2,0x16,0x2, +0x9d,0x1,0x40,0x1,0xdd,0x0,0x96,0x0,0x59,0x0,0xce,0xff, +0x29,0xff,0xd9,0xfe,0xce,0xfe,0x11,0xff,0xd8,0xff,0xa2,0x0, +0xee,0x0,0xf8,0x0,0xc7,0x0,0x39,0x0,0x9d,0xff,0xe4,0xfe, +0xde,0xfd,0x20,0xfd,0xd,0xfd,0x64,0xfd,0x22,0xfe,0x8,0xff, +0x99,0xff,0x22,0x0,0xff,0x0,0xd4,0x1,0x4f,0x2,0x4b,0x2, +0xcb,0x1,0x2d,0x1,0x97,0x0,0x1b,0x0,0x2,0x0,0x14,0x0, +0xfe,0xff,0x11,0x0,0x2a,0x0,0xcb,0xff,0x67,0xff,0x66,0xff, +0x64,0xff,0x4e,0xff,0x30,0xff,0xd4,0xfe,0x7a,0xfe,0x65,0xfe, +0x5d,0xfe,0x66,0xfe,0xe2,0xfe,0xf4,0xff,0x81,0x1,0x3e,0x3, +0xe2,0x4,0x48,0x6,0x26,0x7,0x2b,0x7,0x74,0x6,0x6f,0x5, +0x7a,0x4,0xa2,0x3,0xd1,0x2,0x25,0x2,0x98,0x1,0xdf,0x0, +0x16,0x0,0x86,0xff,0x12,0xff,0xcb,0xfe,0xb9,0xfe,0x49,0xfe, +0x59,0xfd,0x71,0xfc,0x68,0xfb,0xba,0xf9,0x8d,0xf7,0x23,0xf5, +0xb0,0xf2,0xcf,0xf0,0x1d,0xf0,0x1,0xf1,0xb4,0xf3,0xec,0xf7, +0xe5,0xfc,0xb8,0x1,0xab,0x5,0xe3,0x8,0xfe,0xb,0x82,0xe, +0x15,0xf,0xf1,0xc,0x4f,0x8,0xbd,0x2,0xb4,0xfe,0x5a,0xfd, +0xb5,0xfd,0x7f,0xfe,0x30,0xff,0xc1,0xff,0x7c,0x0,0x67,0x1, +0x30,0x2,0xea,0x2,0xab,0x3,0xe0,0x3,0x5,0x3,0x30,0x1, +0xe6,0xfe,0x29,0xfd,0xb4,0xfc,0xe5,0xfc,0xb1,0xfc,0x3f,0xfc, +0x7e,0xfc,0xc4,0xfd,0x9a,0xff,0x8d,0x1,0x80,0x3,0x41,0x5, +0x6d,0x6,0xd9,0x6,0x89,0x6,0x85,0x5,0xf2,0x3,0xc,0x2, +0x50,0x0,0x4a,0xff,0xef,0xfe,0xc1,0xfe,0x9e,0xfe,0x9b,0xfe, +0x88,0xfe,0x36,0xfe,0xa6,0xfd,0xf5,0xfc,0x38,0xfc,0x52,0xfb, +0x27,0xfa,0xf0,0xf8,0xf1,0xf7,0x42,0xf7,0x19,0xf7,0xd1,0xf7, +0x71,0xf9,0x4c,0xfb,0x8b,0xfc,0x30,0xfd,0x5,0xfe,0x9c,0xff, +0xe3,0x1,0x3b,0x4,0xc7,0x5,0x31,0x6,0xd4,0x5,0x7,0x5, +0x1f,0x4,0x9c,0x3,0x83,0x3,0x49,0x3,0xbf,0x2,0x4a,0x2, +0x3f,0x2,0x9c,0x2,0x19,0x3,0x3f,0x3,0xc3,0x2,0xd4,0x1, +0xc9,0x0,0xc6,0xff,0xea,0xfe,0x50,0xfe,0xc5,0xfd,0x23,0xfd, +0xc3,0xfc,0xc,0xfd,0xfa,0xfd,0x4d,0xff,0x9f,0x0,0x6c,0x1, +0x89,0x1,0x58,0x1,0x4d,0x1,0x93,0x1,0x6,0x2,0x3f,0x2, +0xec,0x1,0x3a,0x1,0x84,0x0,0xce,0xff,0x28,0xff,0xc1,0xfe, +0x6c,0xfe,0xf4,0xfd,0x83,0xfd,0x15,0xfd,0x86,0xfc,0xe,0xfc, +0xd7,0xfb,0xc8,0xfb,0xec,0xfb,0x32,0xfc,0x66,0xfc,0xad,0xfc, +0x34,0xfd,0xf6,0xfd,0x6,0xff,0x33,0x0,0xdc,0x0,0xe4,0x0, +0xc3,0x0,0xa6,0x0,0x75,0x0,0x39,0x0,0xfd,0xff,0xd1,0xff, +0xf0,0xff,0x7a,0x0,0x4f,0x1,0x5b,0x2,0xa8,0x3,0x5,0x5, +0xf7,0x5,0x28,0x6,0xba,0x5,0xc,0x5,0x47,0x4,0x3e,0x3, +0xd3,0x1,0x3d,0x0,0xc5,0xfe,0xac,0xfd,0x2e,0xfd,0x2b,0xfd, +0x44,0xfd,0x8b,0xfd,0x35,0xfe,0xf5,0xfe,0x8d,0xff,0xf,0x0, +0x38,0x0,0xd1,0xff,0x48,0xff,0xe9,0xfe,0x9c,0xfe,0xac,0xfe, +0x4f,0xff,0x2d,0x0,0x7,0x1,0xb4,0x1,0xdd,0x1,0xbb,0x1, +0xb0,0x1,0x4b,0x1,0x33,0x0,0xbb,0xfe,0xd,0xfd,0x55,0xfb, +0x31,0xfa,0xf5,0xf9,0xa2,0xfa,0x30,0xfc,0x26,0xfe,0x13,0x0, +0x11,0x2,0xeb,0x3,0x17,0x5,0x7c,0x5,0x4f,0x5,0xb9,0x4, +0xc8,0x3,0x4d,0x2,0x6c,0x0,0xd3,0xfe,0xea,0xfd,0xb8,0xfd, +0x37,0xfe,0x1a,0xff,0x1e,0x0,0x4c,0x1,0x55,0x2,0xe5,0x2, +0x46,0x3,0xbd,0x3,0x24,0x4,0x42,0x4,0xb0,0x3,0x4f,0x2, +0xe3,0x0,0xf6,0xff,0x38,0xff,0xa9,0xfe,0x72,0xfe,0xf0,0xfd, +0xe7,0xfc,0x34,0xfc,0x24,0xfc,0xa,0xfc,0x74,0xfb,0xf,0xfa, +0x9b,0xf7,0xbf,0xf4,0x58,0xf2,0xad,0xf0,0x3f,0xf0,0xb1,0xf1, +0xc6,0xf4,0xe1,0xf8,0x78,0xfd,0xeb,0x1,0xf,0x6,0xf6,0x9, +0xf5,0xc,0x45,0xe,0xa6,0xd,0xe2,0xa,0x70,0x6,0xfd,0x1, +0xb,0xff,0xd1,0xfd,0xba,0xfd,0x30,0xfe,0xe,0xff,0x3a,0x0, +0x42,0x1,0x1d,0x2,0x65,0x3,0x48,0x5,0x1c,0x7,0xfb,0x7, +0x5b,0x7,0x7b,0x5,0x31,0x3,0x37,0x1,0xaa,0xff,0x1a,0xfe, +0x48,0xfc,0xb6,0xfa,0xf4,0xf9,0x1f,0xfa,0x47,0xfb,0x49,0xfd, +0x7d,0xff,0x60,0x1,0xe6,0x2,0x6,0x4,0x84,0x4,0x40,0x4, +0x62,0x3,0x4f,0x2,0x6a,0x1,0xd7,0x0,0x60,0x0,0xb8,0xff, +0xdf,0xfe,0x0,0xfe,0x2,0xfd,0xc5,0xfb,0x83,0xfa,0x7d,0xf9, +0xbc,0xf8,0x51,0xf8,0x6b,0xf8,0xf3,0xf8,0x7d,0xf9,0xf3,0xf9, +0xba,0xfa,0xda,0xfb,0xf4,0xfc,0xf9,0xfd,0x11,0xff,0x50,0x0, +0xc5,0x1,0x36,0x3,0x36,0x4,0xbb,0x4,0xd3,0x4,0x41,0x4, +0xa,0x3,0x9d,0x1,0x71,0x0,0xe2,0xff,0xe,0x0,0xd6,0x0, +0x24,0x2,0xd6,0x3,0xac,0x5,0x65,0x7,0x9f,0x8,0xf0,0x8, +0x3b,0x8,0xac,0x6,0x82,0x4,0x9,0x2,0x8b,0xff,0x45,0xfd, +0x75,0xfb,0x5d,0xfa,0x3c,0xfa,0x7,0xfb,0x67,0xfc,0xe,0xfe, +0xba,0xff,0x25,0x1,0x4,0x2,0xd,0x2,0x5e,0x1,0x7b,0x0, +0x5f,0xff,0xd1,0xfd,0x70,0xfc,0xa6,0xfb,0x8,0xfb,0xba,0xfa, +0x2b,0xfb,0xd9,0xfb,0x3b,0xfc,0xa8,0xfc,0x79,0xfd,0x88,0xfe, +0x6b,0xff,0xf4,0xff,0x8a,0x0,0x58,0x1,0xe9,0x1,0x20,0x2, +0x25,0x2,0xb7,0x1,0xc7,0x0,0xb6,0xff,0xab,0xfe,0xb1,0xfd, +0xf3,0xfc,0x7e,0xfc,0x6f,0xfc,0xa,0xfd,0x5d,0xfe,0x5,0x0, +0x87,0x1,0xd6,0x2,0x4,0x4,0xbf,0x4,0x1,0x5,0x41,0x5, +0x57,0x5,0xca,0x4,0xe4,0x3,0x14,0x3,0x39,0x2,0x33,0x1, +0x0,0x0,0xaf,0xfe,0xc2,0xfd,0xbd,0xfd,0x94,0xfe,0xd5,0xff, +0x6,0x1,0xe3,0x1,0x5b,0x2,0x6c,0x2,0x3c,0x2,0xf7,0x1, +0x83,0x1,0xac,0x0,0x59,0xff,0xd2,0xfd,0xde,0xfc,0xd2,0xfc, +0x4a,0xfd,0x35,0xfe,0x83,0xff,0x7e,0x0,0xe6,0x0,0x17,0x1, +0xe8,0x0,0x3a,0x0,0x6a,0xff,0x94,0xfe,0xbd,0xfd,0x17,0xfd, +0xbe,0xfc,0x7,0xfd,0x13,0xfe,0x36,0xff,0x2b,0x0,0x4a,0x1, +0x39,0x2,0x7d,0x2,0x6e,0x2,0x43,0x2,0xbc,0x1,0xe4,0x0, +0x7,0x0,0x66,0xff,0x2c,0xff,0x68,0xff,0x2,0x0,0xc9,0x0, +0xb7,0x1,0x5,0x3,0x82,0x4,0x94,0x5,0x0,0x6,0xd2,0x5, +0xff,0x4,0xb9,0x3,0x4c,0x2,0xd3,0x0,0x69,0xff,0x2d,0xfe, +0x2d,0xfd,0x96,0xfc,0x7a,0xfc,0xc4,0xfc,0x78,0xfd,0x7e,0xfe, +0x5b,0xff,0x7a,0xff,0x8c,0xfe,0xa8,0xfc,0x1a,0xfa,0x2a,0xf7, +0x1a,0xf4,0x9,0xf1,0x31,0xee,0x71,0xec,0xb8,0xec,0x66,0xef, +0x86,0xf4,0x4e,0xfb,0x13,0x2,0xf0,0x7,0xf2,0xc,0xf2,0x10, +0xa7,0x13,0x83,0x14,0x96,0x12,0xa,0xe,0x3a,0x8,0x67,0x2, +0xcf,0xfd,0x2e,0xfb,0xf5,0xf9,0xfb,0xf9,0xb4,0xfb,0x49,0xfe, +0x8e,0x0,0xac,0x2,0xe6,0x4,0xf4,0x6,0x70,0x8,0x8a,0x8, +0xe5,0x6,0x6b,0x4,0xda,0x1,0x2c,0xff,0x9f,0xfc,0x8f,0xfa, +0x9,0xf9,0x43,0xf8,0x6d,0xf8,0x69,0xf9,0x11,0xfb,0x16,0xfd, +0xff,0xfe,0xb7,0x0,0x3e,0x2,0x1f,0x3,0x10,0x3,0x69,0x2, +0x99,0x1,0xee,0x0,0xb4,0x0,0xd9,0x0,0x6,0x1,0x37,0x1, +0x76,0x1,0x72,0x1,0x0,0x1,0x2a,0x0,0xbf,0xfe,0xb9,0xfc, +0x7b,0xfa,0x3d,0xf8,0x1e,0xf6,0x68,0xf4,0x6b,0xf3,0x5f,0xf3, +0x6b,0xf4,0x82,0xf6,0x47,0xf9,0x1c,0xfc,0x8e,0xfe,0xa6,0x0, +0x72,0x2,0xbd,0x3,0x8f,0x4,0x2c,0x5,0x96,0x5,0x89,0x5, +0xf7,0x4,0x85,0x4,0x7,0x5,0x69,0x6,0xf9,0x7,0x59,0x9, +0x21,0xa,0xea,0x9,0xfa,0x8,0xca,0x7,0x65,0x6,0xcc,0x4, +0x24,0x3,0x78,0x1,0xd9,0xff,0x5a,0xfe,0x15,0xfd,0x25,0xfc, +0x6e,0xfb,0xd2,0xfa,0x6a,0xfa,0x3d,0xfa,0x4e,0xfa,0xc4,0xfa, +0x90,0xfb,0x6d,0xfc,0x2d,0xfd,0xca,0xfd,0x68,0xfe,0x28,0xff, +0xd,0x0,0x15,0x1,0xf1,0x1,0x24,0x2,0xf5,0x1,0xe4,0x1, +0x90,0x1,0xb3,0x0,0xc0,0xff,0xd6,0xfe,0xe6,0xfd,0x5f,0xfd, +0x67,0xfd,0xc5,0xfd,0x85,0xfe,0x96,0xff,0x92,0x0,0x53,0x1, +0xd6,0x1,0xcb,0x1,0xfb,0x0,0xb9,0xff,0x79,0xfe,0x70,0xfd, +0xd7,0xfc,0xe7,0xfc,0x74,0xfd,0x1e,0xfe,0xc6,0xfe,0x81,0xff, +0x76,0x0,0x95,0x1,0x73,0x2,0xe,0x3,0xbe,0x3,0x4f,0x4, +0xa0,0x4,0x1d,0x5,0x9c,0x5,0x90,0x5,0x2e,0x5,0xb0,0x4, +0xd9,0x3,0xd7,0x2,0xf3,0x1,0x20,0x1,0x86,0x0,0x54,0x0, +0x34,0x0,0xdf,0xff,0x70,0xff,0x1c,0xff,0x1a,0xff,0x78,0xff, +0xfc,0xff,0x79,0x0,0xf8,0x0,0x63,0x1,0x7f,0x1,0x65,0x1, +0x5a,0x1,0x1e,0x1,0x76,0x0,0xe4,0xff,0xae,0xff,0x66,0xff, +0x22,0xff,0x46,0xff,0x90,0xff,0xb8,0xff,0xee,0xff,0x4d,0x0, +0xc7,0x0,0x3b,0x1,0x62,0x1,0x3f,0x1,0xa,0x1,0xc1,0x0, +0x67,0x0,0x24,0x0,0xb,0x0,0x1e,0x0,0x30,0x0,0x1,0x0, +0xc5,0xff,0xf1,0xff,0xa5,0x0,0xaa,0x1,0x9b,0x2,0x21,0x3, +0x1b,0x3,0x95,0x2,0xe9,0x1,0x54,0x1,0x84,0x0,0x8b,0xff, +0xf,0xff,0x6,0xff,0x11,0xff,0x52,0xff,0x95,0xff,0x86,0xff, +0x75,0xff,0x4d,0xff,0x83,0xfe,0x34,0xfd,0x5a,0xfb,0x78,0xf8, +0xb9,0xf4,0xc4,0xf0,0x2f,0xed,0xe3,0xea,0x86,0xea,0x27,0xec, +0xe6,0xef,0x86,0xf5,0x1a,0xfc,0xd3,0x2,0x4c,0x9,0x36,0xf, +0x25,0x14,0x33,0x17,0x71,0x17,0xb7,0x14,0x9a,0xf,0x82,0x9, +0x6a,0x4,0x3d,0x1,0x7e,0xff,0xc7,0xfe,0x2a,0xff,0x68,0x0, +0xeb,0x1,0x68,0x3,0x20,0x5,0xfe,0x6,0xf8,0x7,0x6b,0x7, +0xbd,0x5,0x40,0x3,0x4e,0x0,0xd6,0xfd,0x20,0xfc,0xa1,0xfa, +0x5d,0xf9,0xa1,0xf8,0x5e,0xf8,0xb0,0xf8,0xa7,0xf9,0xd2,0xfa, +0x5,0xfc,0x67,0xfd,0xc9,0xfe,0xd8,0xff,0x77,0x0,0xc6,0x0, +0x10,0x1,0x78,0x1,0xd7,0x1,0x12,0x2,0x12,0x2,0x9e,0x1, +0xc4,0x0,0xc7,0xff,0x9e,0xfe,0x2f,0xfd,0xa8,0xfb,0x51,0xfa, +0x3b,0xf9,0x5c,0xf8,0xdd,0xf7,0x8,0xf8,0xcc,0xf8,0xda,0xf9, +0x36,0xfb,0xdb,0xfc,0x51,0xfe,0x41,0xff,0xde,0xff,0x67,0x0, +0xd9,0x0,0x1d,0x1,0x60,0x1,0x6,0x2,0xf5,0x2,0x97,0x3, +0xd8,0x3,0x2c,0x4,0xc4,0x4,0xc1,0x5,0x37,0x7,0x9d,0x8, +0x6b,0x9,0xe2,0x9,0x3c,0xa,0x2a,0xa,0xaf,0x9,0xa,0x9, +0xf7,0x7,0x40,0x6,0x3a,0x4,0x2,0x2,0x80,0xff,0x1b,0xfd, +0x2d,0xfb,0x8d,0xf9,0x6c,0xf8,0x37,0xf8,0xaa,0xf8,0x5b,0xf9, +0x30,0xfa,0xdb,0xfa,0x37,0xfb,0x9f,0xfb,0x34,0xfc,0xcb,0xfc, +0x51,0xfd,0x9b,0xfd,0xa9,0xfd,0xc7,0xfd,0xe8,0xfd,0xc,0xfe, +0x94,0xfe,0x39,0xff,0x84,0xff,0xd9,0xff,0x42,0x0,0x12,0x0, +0x96,0xff,0xa5,0xff,0x1d,0x0,0x90,0x0,0xe,0x1,0x85,0x1, +0xc1,0x1,0xc4,0x1,0x93,0x1,0x17,0x1,0x51,0x0,0x6c,0xff, +0x9a,0xfe,0xf3,0xfd,0xa4,0xfd,0xe5,0xfd,0xa0,0xfe,0xb8,0xff, +0x4a,0x1,0x37,0x3,0xfd,0x4,0x25,0x6,0x6a,0x6,0xd4,0x5, +0xca,0x4,0xaa,0x3,0xb3,0x2,0x1d,0x2,0xf8,0x1,0x25,0x2, +0x73,0x2,0xab,0x2,0xcf,0x2,0xb,0x3,0x64,0x3,0xae,0x3, +0x8c,0x3,0xb0,0x2,0x5b,0x1,0xfe,0xff,0xb9,0xfe,0xbb,0xfd, +0x3d,0xfd,0x17,0xfd,0x37,0xfd,0xa4,0xfd,0xa,0xfe,0x47,0xfe, +0x93,0xfe,0xe6,0xfe,0x45,0xff,0xc0,0xff,0xdc,0xff,0x72,0xff, +0xf1,0xfe,0x53,0xfe,0x98,0xfd,0x4a,0xfd,0x6d,0xfd,0xd8,0xfd, +0xf1,0xfe,0x8b,0x0,0xde,0x1,0xd5,0x2,0x96,0x3,0x7,0x4, +0x70,0x4,0xd7,0x4,0xc3,0x4,0x4e,0x4,0xc8,0x3,0xf8,0x2, +0xce,0x1,0xa6,0x0,0xb4,0xff,0xfa,0xfe,0x87,0xfe,0x91,0xfe, +0x2d,0xff,0xef,0xff,0x79,0x0,0xdf,0x0,0xa,0x1,0xba,0x0, +0x21,0x0,0x6a,0xff,0x6f,0xfe,0x3d,0xfd,0xec,0xfb,0x88,0xfa, +0x1f,0xf9,0x8c,0xf7,0xd2,0xf5,0x46,0xf4,0xc4,0xf2,0xe6,0xf0, +0xfc,0xee,0xce,0xed,0x39,0xee,0xe0,0xf0,0x8f,0xf5,0x84,0xfb, +0xf0,0x1,0xd4,0x7,0xa5,0xc,0xa4,0x10,0x91,0x13,0x6d,0x14, +0xb3,0x12,0xac,0xe,0x39,0x9,0xa2,0x3,0x1f,0xff,0x78,0xfc, +0x87,0xfb,0x9e,0xfb,0xd3,0xfc,0x2a,0xff,0x79,0x1,0x39,0x3, +0xd,0x5,0xac,0x6,0x4e,0x7,0xfe,0x6,0xb9,0x5,0x8a,0x3, +0x22,0x1,0xf7,0xfe,0x52,0xfd,0x7d,0xfc,0x15,0xfc,0xf8,0xfb, +0xae,0xfc,0xed,0xfd,0xe,0xff,0x19,0x0,0xe5,0x0,0x5d,0x1, +0xf2,0x1,0x63,0x2,0x23,0x2,0x76,0x1,0x90,0x0,0x54,0xff, +0xdc,0xfd,0x2b,0xfc,0x78,0xfa,0x20,0xf9,0xd1,0xf7,0x8a,0xf6, +0x9,0xf6,0x22,0xf6,0x3d,0xf6,0xa3,0xf6,0x6f,0xf7,0x47,0xf8, +0x9,0xf9,0x7b,0xf9,0xba,0xf9,0x8d,0xfa,0x8,0xfc,0xc2,0xfd, +0xf2,0xff,0x84,0x2,0xce,0x4,0xad,0x6,0x45,0x8,0x7b,0x9, +0xb,0xa,0x82,0x9,0xcf,0x7,0xab,0x5,0x8b,0x3,0x61,0x1, +0xa9,0xff,0x2f,0xff,0xe5,0xff,0x29,0x1,0xcc,0x2,0xd0,0x4, +0xad,0x6,0xd2,0x7,0x31,0x8,0xa6,0x7,0x12,0x6,0x14,0x4, +0x45,0x2,0x72,0x0,0x88,0xfe,0xe9,0xfc,0xcc,0xfb,0x35,0xfb, +0x24,0xfb,0xa7,0xfb,0xb0,0xfc,0xbe,0xfd,0x58,0xfe,0xcd,0xfe, +0x44,0xff,0x58,0xff,0x3d,0xff,0x7b,0xff,0xdc,0xff,0x9,0x0, +0xa,0x0,0xa0,0xff,0x8a,0xfe,0x16,0xfd,0xa2,0xfb,0x2d,0xfa, +0xc1,0xf8,0xca,0xf7,0xbc,0xf7,0x77,0xf8,0x88,0xf9,0xf8,0xfa, +0xf3,0xfc,0x1b,0xff,0xff,0x0,0x8c,0x2,0x9a,0x3,0xe,0x4, +0x10,0x4,0xa4,0x3,0xd3,0x2,0x3,0x2,0x6c,0x1,0x8,0x1, +0x19,0x1,0xb5,0x1,0x85,0x2,0x58,0x3,0x2e,0x4,0x10,0x5, +0x21,0x6,0x2b,0x7,0xb0,0x7,0xb8,0x7,0x6d,0x7,0xb5,0x6, +0xce,0x5,0xd5,0x4,0x61,0x3,0x86,0x1,0xc4,0xff,0xe,0xfe, +0x63,0xfc,0x3d,0xfb,0xe8,0xfa,0x69,0xfb,0x81,0xfc,0xc9,0xfd, +0x27,0xff,0x77,0x0,0x83,0x1,0x9f,0x2,0xca,0x3,0x23,0x4, +0x81,0x3,0x8a,0x2,0x75,0x1,0x78,0x0,0x9,0x0,0xd,0x0, +0x30,0x0,0x53,0x0,0x2e,0x0,0x90,0xff,0x9a,0xfe,0x7f,0xfd, +0x9f,0xfc,0x11,0xfc,0x76,0xfb,0xf5,0xfa,0x14,0xfb,0xb9,0xfb, +0xb9,0xfc,0x4b,0xfe,0x49,0x0,0x42,0x2,0x1d,0x4,0xc4,0x5, +0xc2,0x6,0xd2,0x6,0x4d,0x6,0x8d,0x5,0x75,0x4,0xf9,0x2, +0x79,0x1,0x37,0x0,0x43,0xff,0xc8,0xfe,0xf1,0xfe,0xc2,0xff, +0xff,0x0,0x22,0x2,0xde,0x2,0x1f,0x3,0xbc,0x2,0xc6,0x1, +0x68,0x0,0x8d,0xfe,0x55,0xfc,0xd3,0xf9,0x84,0xf6,0x6c,0xf2, +0x72,0xee,0x29,0xeb,0xc9,0xe8,0xa5,0xe7,0xd5,0xe7,0xa1,0xe9, +0xbe,0xed,0x62,0xf4,0xb5,0xfc,0x26,0x5,0x60,0xc,0x3b,0x12, +0xae,0x16,0xea,0x18,0x7c,0x18,0x6a,0x15,0x9b,0xf,0x54,0x8, +0x15,0x2,0xdf,0xfd,0x39,0xfb,0x4e,0xfa,0x80,0xfb,0x2,0xfe, +0x6e,0x0,0x4c,0x2,0x2f,0x4,0x2f,0x6,0x67,0x7,0x51,0x7, +0x36,0x6,0x4e,0x4,0xc9,0x1,0x30,0xff,0x12,0xfd,0x93,0xfb, +0x78,0xfa,0xc5,0xf9,0xc1,0xf9,0x57,0xfa,0x5a,0xfb,0xd5,0xfc, +0x78,0xfe,0x12,0x0,0xa,0x2,0xff,0x3,0xc,0x5,0x7b,0x5, +0xc1,0x5,0x60,0x5,0x3b,0x4,0xc1,0x2,0x9,0x1,0x6,0xff, +0x95,0xfc,0xc0,0xf9,0x52,0xf7,0xcc,0xf5,0xc7,0xf4,0x2d,0xf4, +0x3c,0xf4,0xc6,0xf4,0xb9,0xf5,0x19,0xf7,0x7c,0xf8,0xd1,0xf9, +0x6f,0xfb,0x37,0xfd,0xec,0xfe,0xa9,0x0,0x68,0x2,0xfb,0x3, +0x33,0x5,0xe8,0x5,0x4c,0x6,0xb7,0x6,0x1,0x7,0xba,0x6, +0xa4,0x5,0xe8,0x3,0x59,0x2,0xed,0x1,0xac,0x2,0x10,0x4, +0xe7,0x5,0xea,0x7,0x81,0x9,0x5b,0xa,0x8b,0xa,0x28,0xa, +0x26,0x9,0x50,0x7,0xad,0x4,0xa9,0x1,0x83,0xfe,0x43,0xfb, +0x63,0xf8,0x85,0xf6,0xdc,0xf5,0x53,0xf6,0xb0,0xf7,0x9d,0xf9, +0xf6,0xfb,0x7f,0xfe,0x99,0x0,0x0,0x2,0xf9,0x2,0x71,0x3, +0x27,0x3,0x59,0x2,0x82,0x1,0xb6,0x0,0xc8,0xff,0xba,0xfe, +0xb1,0xfd,0xa3,0xfc,0x92,0xfb,0xad,0xfa,0xfa,0xf9,0x8b,0xf9, +0xb0,0xf9,0x6c,0xfa,0x85,0xfb,0x1b,0xfd,0x28,0xff,0x41,0x1, +0x22,0x3,0x8d,0x4,0x38,0x5,0x2f,0x5,0x60,0x4,0xa8,0x2, +0xaa,0x0,0x3a,0xff,0x78,0xfe,0x51,0xfe,0xbd,0xfe,0xa8,0xff, +0x1a,0x1,0xd5,0x2,0x45,0x4,0x40,0x5,0xd1,0x5,0xa,0x6, +0x5f,0x6,0xe5,0x6,0x1e,0x7,0x27,0x7,0x4b,0x7,0xf0,0x6, +0x94,0x5,0x8c,0x3,0x5e,0x1,0x7a,0xff,0xea,0xfd,0x6f,0xfc, +0x46,0xfb,0xae,0xfa,0x4c,0xfa,0x34,0xfa,0xfc,0xfa,0x8c,0xfc, +0x63,0xfe,0x24,0x0,0x56,0x1,0xd8,0x1,0x12,0x2,0x35,0x2, +0x4e,0x2,0x87,0x2,0xc1,0x2,0xb0,0x2,0x49,0x2,0x9c,0x1, +0xda,0x0,0x31,0x0,0x9f,0xff,0x35,0xff,0xd,0xff,0x0,0xff, +0xfb,0xfe,0x12,0xff,0x2c,0xff,0x39,0xff,0x4d,0xff,0x64,0xff, +0x9d,0xff,0x16,0x0,0x8b,0x0,0xa8,0x0,0x68,0x0,0xf2,0xff, +0xac,0xff,0xde,0xff,0x51,0x0,0xf1,0x0,0x2,0x2,0x5b,0x3, +0x81,0x4,0x3e,0x5,0x9d,0x5,0xbb,0x5,0x85,0x5,0xa7,0x4, +0x2a,0x3,0x4c,0x1,0xcf,0xfe,0xb0,0xfb,0x9b,0xf8,0xe7,0xf5, +0x58,0xf3,0xd2,0xf0,0x4e,0xee,0xe0,0xeb,0x15,0xea,0x96,0xe9, +0xce,0xea,0xef,0xed,0xd3,0xf2,0xd,0xf9,0xeb,0xff,0x7b,0x6, +0x4f,0xc,0x58,0x11,0xcc,0x14,0xcd,0x15,0x52,0x14,0x5a,0x10, +0x64,0xa,0x95,0x4,0xc8,0x0,0xd0,0xfe,0x18,0xfe,0xa7,0xfe, +0x45,0x0,0x62,0x2,0x5f,0x4,0xd9,0x5,0xa,0x7,0xc8,0x7, +0x38,0x7,0x7d,0x5,0x76,0x3,0x5,0x1,0x33,0xfe,0xf9,0xfb, +0x85,0xfa,0x8e,0xf9,0x8a,0xf9,0x89,0xfa,0xe5,0xfb,0x75,0xfd, +0x1c,0xff,0x5e,0x0,0x20,0x1,0x7a,0x1,0x89,0x1,0x92,0x1, +0x60,0x1,0x92,0x0,0x7c,0xff,0x4c,0xfe,0xf6,0xfc,0x28,0xfc, +0x26,0xfc,0xf5,0xfb,0x1d,0xfb,0x23,0xfa,0x53,0xf9,0xb4,0xf8, +0x36,0xf8,0xa8,0xf7,0x30,0xf7,0x10,0xf7,0x3c,0xf7,0xc4,0xf7, +0xc0,0xf8,0x25,0xfa,0x3f,0xfc,0x2b,0xff,0x1d,0x2,0x54,0x4, +0xe3,0x5,0x7,0x7,0xa5,0x7,0xaa,0x7,0x4b,0x7,0xa3,0x6, +0x6a,0x5,0x9e,0x3,0xdf,0x1,0xa7,0x0,0x32,0x0,0xe0,0x0, +0xb7,0x2,0x32,0x5,0xad,0x7,0x78,0x9,0x30,0xa,0x9,0xa, +0x4a,0x9,0x7,0x8,0x49,0x6,0xf7,0x3,0x22,0x1,0x37,0xfe, +0x81,0xfb,0x4a,0xf9,0xe3,0xf7,0x3b,0xf7,0x4a,0xf7,0x62,0xf8, +0x5f,0xfa,0xbb,0xfc,0x23,0xff,0x23,0x1,0x3c,0x2,0x78,0x2, +0x16,0x2,0x5a,0x1,0x7e,0x0,0x64,0xff,0x5,0xfe,0xdc,0xfc, +0x36,0xfc,0xe9,0xfb,0xd8,0xfb,0xf1,0xfb,0xfd,0xfb,0xc4,0xfb, +0x62,0xfb,0x58,0xfb,0xf0,0xfb,0xc3,0xfc,0x7a,0xfd,0x5a,0xfe, +0xa0,0xff,0x3,0x1,0x12,0x2,0xbd,0x2,0x2c,0x3,0x4c,0x3, +0x22,0x3,0x0,0x3,0xf1,0x2,0xc9,0x2,0xa2,0x2,0x8e,0x2, +0x9c,0x2,0xfd,0x2,0x88,0x3,0xf3,0x3,0x57,0x4,0xa7,0x4, +0xd8,0x4,0x54,0x5,0x12,0x6,0x92,0x6,0xe5,0x6,0xfd,0x6, +0x55,0x6,0xfd,0x4,0x6f,0x3,0xf3,0x1,0xbf,0x0,0x99,0xff, +0x1f,0xfe,0x98,0xfc,0x4f,0xfb,0x29,0xfa,0x77,0xf9,0xa5,0xf9, +0x7f,0xfa,0xbb,0xfb,0x29,0xfd,0x8e,0xfe,0xda,0xff,0xf0,0x0, +0x8c,0x1,0x87,0x1,0xd9,0x0,0xa2,0xff,0x1,0xfe,0xf1,0xfb, +0x6,0xfa,0x52,0xf9,0xca,0xf9,0x93,0xfa,0xc1,0xfb,0xe4,0xfd, +0xc7,0x0,0xc9,0x3,0x5f,0x6,0x24,0x8,0xf8,0x8,0x1,0x9, +0x64,0x8,0x15,0x7,0x24,0x5,0xc,0x3,0x3e,0x1,0xa5,0xff, +0x3c,0xfe,0x52,0xfd,0x27,0xfd,0xd7,0xfd,0x5b,0xff,0x54,0x1, +0x3d,0x3,0xcb,0x4,0x2,0x6,0xfa,0x6,0x6e,0x7,0xf,0x7, +0x16,0x6,0xd9,0x4,0x5f,0x3,0xa6,0x1,0xb6,0xff,0xa9,0xfd, +0xc1,0xfb,0x11,0xfa,0x82,0xf8,0x21,0xf7,0xd1,0xf5,0x56,0xf4, +0xad,0xf2,0xd0,0xf0,0xdd,0xee,0x6b,0xed,0xf6,0xec,0x97,0xed, +0x75,0xef,0xc6,0xf2,0x89,0xf7,0x54,0xfd,0x51,0x3,0xde,0x8, +0xb4,0xd,0x2d,0x11,0x7b,0x12,0x52,0x11,0xc4,0xd,0x80,0x8, +0x1b,0x3,0x2a,0xff,0x3e,0xfd,0xc8,0xfc,0x32,0xfd,0xc3,0xfe, +0x79,0x1,0x2d,0x4,0x3d,0x6,0x16,0x8,0x88,0x9,0xbb,0x9, +0x63,0x8,0xe5,0x5,0xa,0x3,0x74,0x0,0x33,0xfe,0x75,0xfc, +0x8e,0xfb,0x39,0xfb,0x38,0xfb,0xc0,0xfb,0xca,0xfc,0x3d,0xfe, +0x18,0x0,0xe2,0x1,0x34,0x3,0x49,0x4,0xf,0x5,0xfb,0x4, +0x12,0x4,0xd4,0x2,0x71,0x1,0xd1,0xff,0x8,0xfe,0x57,0xfc, +0xfd,0xfa,0x4,0xfa,0x34,0xf9,0x71,0xf8,0x17,0xf8,0x38,0xf8, +0x44,0xf8,0x2b,0xf8,0x66,0xf8,0xde,0xf8,0x4b,0xf9,0xb2,0xf9, +0xfe,0xf9,0x74,0xfa,0x8e,0xfb,0xd9,0xfc,0xd4,0xfd,0xff,0xfe, +0x8c,0x0,0xfe,0x1,0x37,0x3,0x41,0x4,0x4,0x5,0x8a,0x5, +0xba,0x5,0x7d,0x5,0xe,0x5,0x9a,0x4,0x5d,0x4,0xb6,0x4, +0x9d,0x5,0xd0,0x6,0xc,0x8,0xdd,0x8,0x38,0x9,0x5e,0x9, +0xf5,0x8,0xb1,0x7,0xe6,0x5,0xb8,0x3,0x32,0x1,0xa2,0xfe, +0x30,0xfc,0x2,0xfa,0x73,0xf8,0xa3,0xf7,0xa3,0xf7,0x81,0xf8, +0xf1,0xf9,0xb2,0xfb,0x97,0xfd,0x35,0xff,0x6f,0x0,0x78,0x1, +0x38,0x2,0x93,0x2,0x9e,0x2,0x57,0x2,0xc5,0x1,0xe4,0x0, +0xb9,0xff,0x85,0xfe,0x3b,0xfd,0xa5,0xfb,0x3c,0xfa,0x6f,0xf9, +0x25,0xf9,0x94,0xf9,0xcd,0xfa,0x47,0xfc,0xce,0xfd,0x61,0xff, +0x9e,0x0,0x5f,0x1,0xa4,0x1,0x3c,0x1,0x5e,0x0,0x66,0xff, +0x58,0xfe,0x64,0xfd,0xc3,0xfc,0x86,0xfc,0x10,0xfd,0x96,0xfe, +0xab,0x0,0xfa,0x2,0x48,0x5,0x45,0x7,0xe6,0x8,0x20,0xa, +0xd0,0xa,0x21,0xb,0x20,0xb,0x78,0xa,0x0,0x9,0xdb,0x6, +0x63,0x4,0x6,0x2,0xe9,0xff,0x41,0xfe,0x55,0xfd,0xc8,0xfc, +0x48,0xfc,0x3d,0xfc,0xb4,0xfc,0x40,0xfd,0x2,0xfe,0x3,0xff, +0xbc,0xff,0x15,0x0,0x6b,0x0,0xb4,0x0,0xa3,0x0,0x28,0x0, +0x71,0xff,0xa0,0xfe,0xba,0xfd,0xf5,0xfc,0x95,0xfc,0x7d,0xfc, +0x7f,0xfc,0xaf,0xfc,0x1e,0xfd,0xa9,0xfd,0x20,0xfe,0x6b,0xfe, +0x86,0xfe,0x56,0xfe,0xd1,0xfd,0x4c,0xfd,0xb,0xfd,0x0,0xfd, +0x2d,0xfd,0x7f,0xfd,0xad,0xfd,0xa6,0xfd,0xc1,0xfd,0x67,0xfe, +0x94,0xff,0xb6,0x0,0x70,0x1,0xe7,0x1,0x2d,0x2,0x6e,0x2, +0xd,0x3,0xdf,0x3,0xa8,0x4,0xdb,0x5,0x72,0x7,0xb3,0x8, +0x50,0x9,0x60,0x9,0x3,0x9,0x84,0x8,0xc4,0x7,0x7a,0x6, +0xfa,0x4,0x84,0x3,0xf2,0x1,0x87,0x0,0x87,0xff,0xad,0xfe, +0xf5,0xfd,0xb2,0xfd,0xc3,0xfd,0xb3,0xfd,0x5d,0xfd,0x2,0xfd, +0xc0,0xfc,0x6b,0xfc,0xfa,0xfb,0x73,0xfb,0x9e,0xfa,0x57,0xf9, +0x89,0xf7,0x1d,0xf5,0x90,0xf2,0x84,0xf0,0x31,0xef,0x2a,0xef, +0x23,0xf1,0xbf,0xf4,0xfb,0xf8,0x1a,0xfd,0xdb,0x0,0xc4,0x4, +0x13,0x9,0x8e,0xc,0xde,0xd,0xb7,0xc,0x7a,0x9,0x8c,0x5, +0xbb,0x2,0x47,0x1,0x60,0x0,0xbe,0xff,0x6d,0xff,0x77,0xff, +0xce,0xff,0x1c,0x0,0x81,0x0,0x97,0x1,0x22,0x3,0x26,0x4, +0xb,0x4,0xf6,0x2,0xa1,0x1,0xb9,0x0,0x2c,0x0,0xb3,0xff, +0x4d,0xff,0x1,0xff,0xf1,0xfe,0x2d,0xff,0x71,0xff,0xe4,0xff, +0xe4,0x0,0x0,0x2,0xcd,0x2,0x9c,0x3,0x61,0x4,0xb6,0x4, +0xad,0x4,0x5d,0x4,0xdc,0x3,0x64,0x3,0xa2,0x2,0x28,0x1, +0x68,0xff,0xcb,0xfd,0x10,0xfc,0x4d,0xfa,0xd3,0xf8,0xa0,0xf7, +0xd1,0xf6,0x8e,0xf6,0xab,0xf6,0xfa,0xf6,0x4c,0xf7,0x80,0xf7, +0x13,0xf8,0x73,0xf9,0x1f,0xfb,0x99,0xfc,0xfd,0xfd,0x55,0xff, +0x91,0x0,0xc1,0x1,0xd9,0x2,0xe7,0x3,0xf7,0x4,0x7d,0x5, +0xa,0x5,0xf7,0x3,0xcf,0x2,0xfb,0x1,0xbd,0x1,0xdb,0x1, +0x2f,0x2,0xf8,0x2,0xc,0x4,0xfb,0x4,0xd0,0x5,0x8e,0x6, +0xde,0x6,0xb7,0x6,0x37,0x6,0x44,0x5,0xd7,0x3,0x4,0x2, +0xef,0xff,0xeb,0xfd,0x30,0xfc,0xde,0xfa,0x4d,0xfa,0xce,0xfa, +0x42,0xfc,0x2d,0xfe,0x16,0x0,0xd6,0x1,0x54,0x3,0x41,0x4, +0x7d,0x4,0xe,0x4,0xc6,0x2,0xd8,0x0,0xf8,0xfe,0x73,0xfd, +0x27,0xfc,0x1a,0xfb,0x63,0xfa,0x12,0xfa,0x44,0xfa,0xf5,0xfa, +0x1e,0xfc,0x92,0xfd,0xc6,0xfe,0x8a,0xff,0x35,0x0,0xbe,0x0, +0xf8,0x0,0x1c,0x1,0x3d,0x1,0x2a,0x1,0xc2,0x0,0xd8,0xff, +0x9b,0xfe,0xb9,0xfd,0x4f,0xfd,0xec,0xfc,0xb5,0xfc,0x8,0xfd, +0xab,0xfd,0x63,0xfe,0x4e,0xff,0x64,0x0,0x73,0x1,0x7d,0x2, +0x96,0x3,0xb7,0x4,0xaf,0x5,0x46,0x6,0x6c,0x6,0x38,0x6, +0xae,0x5,0xef,0x4,0x30,0x4,0x44,0x3,0xfb,0x1,0xb6,0x0, +0xa7,0xff,0x8e,0xfe,0xaf,0xfd,0x7d,0xfd,0xbf,0xfd,0x3e,0xfe, +0x0,0xff,0xaf,0xff,0x16,0x0,0x84,0x0,0x1,0x1,0x47,0x1, +0x45,0x1,0xe1,0x0,0xfe,0xff,0x99,0xfe,0xb8,0xfc,0xe9,0xfa, +0xfd,0xf9,0xdf,0xf9,0x25,0xfa,0x4,0xfb,0x59,0xfc,0x93,0xfd, +0xdb,0xfe,0x60,0x0,0x78,0x1,0xd3,0x1,0xe2,0x1,0xbd,0x1, +0x27,0x1,0x54,0x0,0xb5,0xff,0x79,0xff,0x89,0xff,0xb2,0xff, +0xd6,0xff,0xd8,0xff,0x8c,0xff,0xf8,0xfe,0x6f,0xfe,0x18,0xfe, +0xe6,0xfd,0xfc,0xfd,0x84,0xfe,0x5f,0xff,0x67,0x0,0x83,0x1, +0x7c,0x2,0x28,0x3,0xc2,0x3,0x8a,0x4,0x45,0x5,0x96,0x5, +0x6b,0x5,0xe5,0x4,0x23,0x4,0x39,0x3,0x3d,0x2,0x61,0x1, +0xab,0x0,0xbf,0xff,0xa8,0xfe,0xec,0xfd,0x88,0xfd,0x2e,0xfd, +0x28,0xfd,0x86,0xfd,0xd0,0xfd,0x5,0xfe,0x57,0xfe,0x9b,0xfe, +0xd8,0xfe,0xc,0xff,0xeb,0xfe,0x9b,0xfe,0x61,0xfe,0x35,0xfe, +0x5f,0xfe,0xeb,0xfe,0x44,0xff,0x64,0xff,0xb6,0xff,0x6,0x0, +0x18,0x0,0xb,0x0,0xc2,0xff,0x1c,0xff,0x1f,0xfe,0xda,0xfc, +0xbe,0xfb,0x39,0xfb,0x4e,0xfb,0x17,0xfc,0x7d,0xfd,0xf5,0xfe, +0x52,0x0,0x9b,0x1,0xb0,0x2,0xd0,0x3,0xf4,0x4,0x42,0x5, +0x4d,0x4,0x8b,0x2,0xcc,0x0,0x7,0x0,0x7b,0x0,0x78,0x1, +0xa7,0x2,0xc0,0x3,0x1,0x4,0x8d,0x3,0x45,0x3,0x26,0x3, +0xcd,0x2,0x1c,0x2,0xe0,0x0,0x55,0xff,0x2d,0xfe,0x93,0xfd, +0x65,0xfd,0xac,0xfd,0x1f,0xfe,0x57,0xfe,0x39,0xfe,0xcb,0xfd, +0x3e,0xfd,0xd3,0xfc,0x86,0xfc,0x35,0xfc,0xea,0xfb,0xd1,0xfb, +0x2e,0xfc,0x23,0xfd,0x8c,0xfe,0x25,0x0,0xa6,0x1,0xe1,0x2, +0xbf,0x3,0x23,0x4,0x15,0x4,0x9b,0x3,0x85,0x2,0xfd,0x0, +0x73,0xff,0xda,0xfd,0x38,0xfc,0x26,0xfb,0xd4,0xfa,0xe,0xfb, +0xea,0xfb,0x2c,0xfd,0x45,0xfe,0x1c,0xff,0xe6,0xff,0xc5,0x0, +0xa5,0x1,0x9,0x2,0xc9,0x1,0x55,0x1,0xd2,0x0,0x7a,0x0, +0xcd,0x0,0x54,0x1,0x5e,0x1,0x50,0x1,0x5b,0x1,0x3a,0x1, +0x70,0x1,0x3d,0x2,0xee,0x2,0x51,0x3,0xaa,0x3,0xc6,0x3, +0x9f,0x3,0x60,0x3,0xd1,0x2,0xe3,0x1,0xc2,0x0,0x79,0xff, +0x55,0xfe,0xb9,0xfd,0x78,0xfd,0x3b,0xfd,0x1d,0xfd,0x47,0xfd, +0x8d,0xfd,0xc5,0xfd,0xfc,0xfd,0x30,0xfe,0x3e,0xfe,0x23,0xfe, +0xdd,0xfd,0x86,0xfd,0x84,0xfd,0xfd,0xfd,0xae,0xfe,0x8a,0xff, +0x8b,0x0,0x5d,0x1,0xe4,0x1,0x20,0x2,0xf2,0x1,0x98,0x1, +0x5b,0x1,0x3,0x1,0x91,0x0,0x6d,0x0,0x9d,0x0,0xca,0x0, +0xb0,0x0,0x48,0x0,0xd4,0xff,0x8a,0xff,0x5f,0xff,0x44,0xff, +0x11,0xff,0x78,0xfe,0xa1,0xfd,0x10,0xfd,0xed,0xfc,0xf3,0xfc, +0x1d,0xfd,0xbd,0xfd,0xac,0xfe,0x6a,0xff,0x1d,0x0,0x20,0x1, +0x32,0x2,0x13,0x3,0xdb,0x3,0x6c,0x4,0xa7,0x4,0x81,0x4, +0xda,0x3,0xf2,0x2,0xfc,0x1,0xaa,0x0,0x3c,0xff,0x48,0xfe, +0x8f,0xfd,0xe3,0xfc,0xb8,0xfc,0xfa,0xfc,0x40,0xfd,0x9c,0xfd, +0x23,0xfe,0xb2,0xfe,0x21,0xff,0x5a,0xff,0x8d,0xff,0xc6,0xff, +0xb8,0xff,0x9b,0xff,0xed,0xff,0x66,0x0,0xbb,0x0,0x2b,0x1, +0x9e,0x1,0xa8,0x1,0x50,0x1,0xe5,0x0,0x76,0x0,0xe8,0xff, +0x49,0xff,0xc5,0xfe,0x5f,0xfe,0x19,0xfe,0x11,0xfe,0x4c,0xfe, +0xd8,0xfe,0xa6,0xff,0x32,0x0,0x4b,0x0,0x57,0x0,0x52,0x0, +0xa,0x0,0xea,0xff,0xd,0x0,0x3,0x0,0xe8,0xff,0xfb,0xff, +0xec,0xff,0xb6,0xff,0xd3,0xff,0x37,0x0,0x77,0x0,0x91,0x0, +0xb5,0x0,0xcd,0x0,0xb4,0x0,0x80,0x0,0x4a,0x0,0x23,0x0, +0x23,0x0,0x3a,0x0,0x4a,0x0,0x72,0x0,0xbc,0x0,0xf6,0x0, +0x21,0x1,0x54,0x1,0x87,0x1,0xc4,0x1,0xfd,0x1,0xef,0x1, +0x96,0x1,0x12,0x1,0x68,0x0,0xdb,0xff,0x88,0xff,0xf6,0xfe, +0x8,0xfe,0x52,0xfd,0xf9,0xfc,0xc2,0xfc,0xd6,0xfc,0x39,0xfd, +0x99,0xfd,0x6,0xfe,0xb6,0xfe,0x78,0xff,0x2d,0x0,0xe9,0x0, +0x8e,0x1,0xf9,0x1,0x29,0x2,0x2,0x2,0x91,0x1,0x1d,0x1, +0x9a,0x0,0xf3,0xff,0x88,0xff,0x74,0xff,0x60,0xff,0x57,0xff, +0x98,0xff,0xfa,0xff,0x57,0x0,0xad,0x0,0xca,0x0,0xbb,0x0, +0xd8,0x0,0xf6,0x0,0xa8,0x0,0xb,0x0,0x5e,0xff,0xbd,0xfe, +0x56,0xfe,0x2f,0xfe,0x27,0xfe,0x67,0xfe,0x8,0xff,0xd4,0xff, +0xb0,0x0,0x85,0x1,0x21,0x2,0x90,0x2,0xdd,0x2,0xce,0x2, +0x52,0x2,0x8c,0x1,0xa0,0x0,0xc6,0xff,0x19,0xff,0x86,0xfe, +0xe,0xfe,0xa3,0xfd,0x33,0xfd,0x1c,0xfd,0x90,0xfd,0x2a,0xfe, +0xb1,0xfe,0x47,0xff,0xca,0xff,0x8,0x0,0x13,0x0,0xfe,0xff, +0xcd,0xff,0xb1,0xff,0xcf,0xff,0xf1,0xff,0xd7,0xff,0x9c,0xff, +0x5b,0xff,0xf3,0xfe,0x8a,0xfe,0x80,0xfe,0xc7,0xfe,0x26,0xff, +0xa4,0xff,0x2e,0x0,0x92,0x0,0xcf,0x0,0xf8,0x0,0x10,0x1, +0x25,0x1,0x45,0x1,0x59,0x1,0x38,0x1,0xf2,0x0,0xbe,0x0, +0x78,0x0,0xe7,0xff,0x3d,0xff,0xbc,0xfe,0x80,0xfe,0xa5,0xfe, +0xeb,0xfe,0xc,0xff,0x2b,0xff,0x3a,0xff,0x27,0xff,0x58,0xff, +0xc8,0xff,0x1c,0x0,0xa6,0x0,0x74,0x1,0xe3,0x1,0xf1,0x1, +0xe3,0x1,0x70,0x1,0xa7,0x0,0xe0,0xff,0xf1,0xfe,0xe7,0xfd, +0x24,0xfd,0xb4,0xfc,0xb0,0xfc,0x4d,0xfd,0x3a,0xfe,0xc,0xff, +0xb2,0xff,0x15,0x0,0x4a,0x0,0x86,0x0,0xa0,0x0,0x73,0x0, +0x3a,0x0,0xf8,0xff,0x85,0xff,0x14,0xff,0xd5,0xfe,0xc5,0xfe, +0xfa,0xfe,0x5d,0xff,0xbc,0xff,0x2b,0x0,0x9c,0x0,0xd3,0x0, +0x6,0x1,0x5d,0x1,0x9f,0x1,0xcf,0x1,0xe8,0x1,0x89,0x1, +0xd6,0x0,0x4e,0x0,0xdc,0xff,0x65,0xff,0x26,0xff,0xd,0xff, +0xea,0xfe,0xd5,0xfe,0xea,0xfe,0x23,0xff,0x52,0xff,0x55,0xff, +0x6e,0xff,0xc9,0xff,0x29,0x0,0x6f,0x0,0xa7,0x0,0xc1,0x0, +0xd5,0x0,0xdc,0x0,0x9d,0x0,0x45,0x0,0x17,0x0,0xf2,0xff, +0xc3,0xff,0x8d,0xff,0x47,0xff,0x21,0xff,0x28,0xff,0x10,0xff, +0xda,0xfe,0xc0,0xfe,0xc0,0xfe,0xc9,0xfe,0xc9,0xfe,0xc9,0xfe, +0xef,0xfe,0x28,0xff,0x51,0xff,0x88,0xff,0xd0,0xff,0x1f,0x0, +0x90,0x0,0xe5,0x0,0xca,0x0,0x91,0x0,0x90,0x0,0x9e,0x0, +0x9d,0x0,0xa8,0x0,0xcb,0x0,0xf6,0x0,0x6,0x1,0xf1,0x0, +0xc6,0x0,0x6f,0x0,0xe6,0xff,0x6d,0xff,0x28,0xff,0xff,0xfe, +0xe3,0xfe,0xd1,0xfe,0xc2,0xfe,0xcc,0xfe,0x4,0xff,0x59,0xff, +0xa2,0xff,0xd2,0xff,0x2,0x0,0x4d,0x0,0xad,0x0,0xfe,0x0, +0x2e,0x1,0x4b,0x1,0x5c,0x1,0x49,0x1,0xc,0x1,0xae,0x0, +0x34,0x0,0xbf,0xff,0x77,0xff,0x40,0xff,0x0,0xff,0xe5,0xfe, +0x7,0xff,0x28,0xff,0x2d,0xff,0x4e,0xff,0xa3,0xff,0xf5,0xff, +0x1c,0x0,0x13,0x0,0xe2,0xff,0xb4,0xff,0xa8,0xff,0xa0,0xff, +0x9e,0xff,0xbc,0xff,0xdb,0xff,0xe3,0xff,0xe2,0xff,0xbe,0xff, +0x7a,0xff,0x6b,0xff,0xa0,0xff,0xe3,0xff,0x3c,0x0,0xb1,0x0, +0xe,0x1,0x47,0x1,0x59,0x1,0x20,0x1,0xb0,0x0,0x54,0x0, +0xd,0x0,0xb4,0xff,0x5d,0xff,0x1f,0xff,0xe8,0xfe,0xc3,0xfe, +0xd8,0xfe,0x3b,0xff,0xca,0xff,0x36,0x0,0x6b,0x0,0xbc,0x0, +0x46,0x1,0xd0,0x1,0x38,0x2,0x48,0x2,0xd5,0x1,0x47,0x1, +0xea,0x0,0x75,0x0,0xeb,0xff,0x7a,0xff,0xe5,0xfe,0x28,0xfe, +0xb6,0xfd,0xc8,0xfd,0x5c,0xfe,0x2d,0xff,0xcc,0xff,0x4a,0x0, +0xda,0x0,0x37,0x1,0x54,0x1,0x5c,0x1,0x18,0x1,0x74,0x0, +0xb8,0xff,0xfe,0xfe,0x73,0xfe,0x66,0xfe,0xb2,0xfe,0xd,0xff, +0x69,0xff,0xb4,0xff,0xca,0xff,0xae,0xff,0xa7,0xff,0xf3,0xff, +0x57,0x0,0x78,0x0,0x81,0x0,0xaa,0x0,0xba,0x0,0x9d,0x0, +0x8b,0x0,0x73,0x0,0x2f,0x0,0xe3,0xff,0xb1,0xff,0x80,0xff, +0x54,0xff,0x62,0xff,0xa3,0xff,0xd9,0xff,0xd,0x0,0x5b,0x0, +0x97,0x0,0xa6,0x0,0xa8,0x0,0xa1,0x0,0x96,0x0,0xab,0x0, +0xcd,0x0,0xb8,0x0,0x75,0x0,0x44,0x0,0x1b,0x0,0xd2,0xff, +0x94,0xff,0x85,0xff,0x7b,0xff,0x86,0xff,0xd2,0xff,0x1d,0x0, +0x3e,0x0,0x66,0x0,0x8d,0x0,0x9a,0x0,0xa4,0x0,0x8c,0x0, +0x37,0x0,0xde,0xff,0x91,0xff,0x41,0xff,0x24,0xff,0x2d,0xff, +0x1d,0xff,0x25,0xff,0x7c,0xff,0xd4,0xff,0xea,0xff,0xe5,0xff, +0xe8,0xff,0xed,0xff,0xfa,0xff,0xd,0x0,0x16,0x0,0x29,0x0, +0x5a,0x0,0x90,0x0,0xc3,0x0,0xf3,0x0,0xfb,0x0,0xd0,0x0, +0x9d,0x0,0x62,0x0,0xe,0x0,0xc2,0xff,0xa2,0xff,0xa0,0xff, +0x93,0xff,0x78,0xff,0x8e,0xff,0xc9,0xff,0xdc,0xff,0xfb,0xff, +0x75,0x0,0xea,0x0,0x1a,0x1,0x49,0x1,0x5d,0x1,0x27,0x1, +0xe8,0x0,0xa7,0x0,0x40,0x0,0xf5,0xff,0xdb,0xff,0xad,0xff, +0x83,0xff,0x93,0xff,0xaf,0xff,0xd7,0xff,0x35,0x0,0x92,0x0, +0xbd,0x0,0xe8,0x0,0x7,0x1,0xd9,0x0,0x94,0x0,0x7d,0x0, +0x6e,0x0,0x3f,0x0,0xea,0xff,0x7c,0xff,0x1e,0xff,0xe7,0xfe, +0xd0,0xfe,0xf0,0xfe,0x48,0xff,0xb0,0xff,0x1c,0x0,0x72,0x0, +0x90,0x0,0x99,0x0,0xb4,0x0,0xc8,0x0,0xc6,0x0,0xb3,0x0, +0x99,0x0,0x8e,0x0,0x80,0x0,0x61,0x0,0x50,0x0,0x51,0x0, +0x51,0x0,0x57,0x0,0x56,0x0,0x50,0x0,0x5f,0x0,0x6a,0x0, +0x71,0x0,0x94,0x0,0x94,0x0,0x58,0x0,0x33,0x0,0x1d,0x0, +0xf2,0xff,0xf2,0xff,0x14,0x0,0xff,0xff,0xd5,0xff,0xd3,0xff, +0xe2,0xff,0xf8,0xff,0x26,0x0,0x60,0x0,0x9c,0x0,0xcd,0x0, +0xe4,0x0,0xde,0x0,0xc3,0x0,0x92,0x0,0x4e,0x0,0xa,0x0, +0xe5,0xff,0xd5,0xff,0xcc,0xff,0xdf,0xff,0xfd,0xff,0xf6,0xff, +0xe6,0xff,0x2,0x0,0x27,0x0,0x28,0x0,0x20,0x0,0x2e,0x0, +0x1d,0x0,0xcc,0xff,0x89,0xff,0x89,0xff,0x98,0xff,0xa9,0xff, +0xe4,0xff,0x21,0x0,0x2e,0x0,0x2f,0x0,0x44,0x0,0x61,0x0, +0x81,0x0,0x9f,0x0,0xac,0x0,0x9d,0x0,0x7f,0x0,0x74,0x0, +0x7c,0x0,0x81,0x0,0x79,0x0,0x4c,0x0,0xfc,0xff,0xce,0xff, +0xe3,0xff,0x1a,0x0,0x4c,0x0,0x4c,0x0,0x13,0x0,0xd7,0xff, +0x9a,0xff,0x4d,0xff,0x23,0xff,0x2a,0xff,0x3e,0xff,0x6c,0xff, +0xaa,0xff,0xdb,0xff,0x1b,0x0,0x7d,0x0,0xf0,0x0,0x78,0x1, +0xe7,0x1,0x7,0x2,0x5,0x2,0xfb,0x1,0xb6,0x1,0x36,0x1, +0x9b,0x0,0xe9,0xff,0x28,0xff,0x6d,0xfe,0xeb,0xfd,0xe5,0xfd, +0x4d,0xfe,0xf7,0xfe,0xcf,0xff,0x89,0x0,0xef,0x0,0x36,0x1, +0x57,0x1,0xc,0x1,0x94,0x0,0x32,0x0,0xb0,0xff,0x1a,0xff, +0xb7,0xfe,0x94,0xfe,0xc5,0xfe,0x35,0xff,0x80,0xff,0xaa,0xff, +0xea,0xff,0xd,0x0,0x22,0x0,0x73,0x0,0xb4,0x0,0xbe,0x0, +0xde,0x0,0xe7,0x0,0xa9,0x0,0x73,0x0,0x48,0x0,0xe,0x0, +0xfb,0xff,0xe8,0xff,0xaa,0xff,0x87,0xff,0x89,0xff,0x93,0xff, +0xbc,0xff,0xd3,0xff,0xbe,0xff,0xcc,0xff,0xfd,0xff,0x1d,0x0, +0x37,0x0,0x45,0x0,0x54,0x0,0x8c,0x0,0xb9,0x0,0xb3,0x0, +0xaf,0x0,0xb3,0x0,0xc0,0x0,0xe3,0x0,0xd3,0x0,0x8a,0x0, +0x5c,0x0,0x38,0x0,0xf7,0xff,0xc0,0xff,0xad,0xff,0xc3,0xff, +0xe2,0xff,0xc4,0xff,0x99,0xff,0xa6,0xff,0xae,0xff,0xa9,0xff, +0xce,0xff,0xe2,0xff,0xc7,0xff,0xc0,0xff,0xb1,0xff,0x76,0xff, +0x4f,0xff,0x55,0xff,0x58,0xff,0x61,0xff,0x99,0xff,0xe3,0xff, +0x15,0x0,0x44,0x0,0x89,0x0,0xab,0x0,0x98,0x0,0x98,0x0, +0xac,0x0,0x97,0x0,0x66,0x0,0x3f,0x0,0x2c,0x0,0x21,0x0, +0xe4,0xff,0x82,0xff,0x5e,0xff,0x59,0xff,0x11,0xff,0xc9,0xfe, +0xe5,0xfe,0x3f,0xff,0x9e,0xff,0x0,0x0,0x5f,0x0,0xbc,0x0, +0xb,0x1,0x28,0x1,0x8,0x1,0xc5,0x0,0x8c,0x0,0x6e,0x0, +0x42,0x0,0xfa,0xff,0xdf,0xff,0x0,0x0,0xe,0x0,0xff,0xff, +0x7,0x0,0x1e,0x0,0x2a,0x0,0x1d,0x0,0xfd,0xff,0xc,0x0, +0x57,0x0,0x60,0x0,0x6,0x0,0xcb,0xff,0xc4,0xff,0x9a,0xff, +0x6e,0xff,0x85,0xff,0xa3,0xff,0x88,0xff,0x7a,0xff,0xc6,0xff, +0x18,0x0,0x1b,0x0,0x1d,0x0,0x4d,0x0,0x56,0x0,0x41,0x0, +0x5e,0x0,0x7f,0x0,0x74,0x0,0x63,0x0,0x51,0x0,0x2d,0x0, +0x8,0x0,0xe6,0xff,0xe4,0xff,0x14,0x0,0x3d,0x0,0x46,0x0, +0x42,0x0,0x1e,0x0,0x0,0x0,0x13,0x0,0x14,0x0,0xe1,0xff, +0xc4,0xff,0xbc,0xff,0xa4,0xff,0xa2,0xff,0xc9,0xff,0xeb,0xff, +0x3,0x0,0x1f,0x0,0x23,0x0,0x15,0x0,0x29,0x0,0x58,0x0, +0x6c,0x0,0x79,0x0,0x9d,0x0,0x96,0x0,0x54,0x0,0x22,0x0, +0x5,0x0,0xe3,0xff,0xe1,0xff,0xee,0xff,0xdd,0xff,0xe1,0xff, +0x23,0x0,0x67,0x0,0x80,0x0,0x79,0x0,0x69,0x0,0x52,0x0, +0x16,0x0,0xaf,0xff,0x51,0xff,0x9,0xff,0xbe,0xfe,0x9d,0xfe, +0xdf,0xfe,0x44,0xff,0x98,0xff,0x19,0x0,0xaa,0x0,0xd2,0x0, +0xc4,0x0,0xea,0x0,0xfd,0x0,0xc1,0x0,0x85,0x0,0x58,0x0, +0x18,0x0,0xd6,0xff,0x84,0xff,0x23,0xff,0xfa,0xfe,0x1b,0xff, +0x5e,0xff,0xa7,0xff,0xe3,0xff,0x19,0x0,0x5a,0x0,0x87,0x0, +0x88,0x0,0x60,0x0,0xd,0x0,0xb2,0xff,0x5f,0xff,0xe8,0xfe, +0x60,0xfe,0x12,0xfe,0xc,0xfe,0x48,0xfe,0xd0,0xfe,0x8e,0xff, +0x6a,0x0,0x4c,0x1,0x4,0x2,0x81,0x2,0xd6,0x2,0xec,0x2, +0x8a,0x2,0xa3,0x1,0x7d,0x0,0x6d,0xff,0x87,0xfe,0xf5,0xfd, +0x5,0xfe,0x8a,0xfe,0xc,0xff,0x88,0xff,0x10,0x0,0x69,0x0, +0x79,0x0,0x61,0x0,0x38,0x0,0x1e,0x0,0x22,0x0,0x16,0x0, +0xe6,0xff,0xb3,0xff,0x7c,0xff,0x24,0xff,0xcc,0xfe,0x91,0xfe, +0x6c,0xfe,0x81,0xfe,0xe5,0xfe,0x4b,0xff,0xa0,0xff,0x8,0x0, +0x5a,0x0,0x7d,0x0,0x97,0x0,0x91,0x0,0x5d,0x0,0x2a,0x0, +0xf1,0xff,0xb5,0xff,0xbe,0xff,0xf5,0xff,0x19,0x0,0x1c,0x0, +0xe6,0xff,0x84,0xff,0x41,0xff,0x24,0xff,0x13,0xff,0x7,0xff, +0xe2,0xfe,0xc1,0xfe,0xf4,0xfe,0x5e,0xff,0xc0,0xff,0x3a,0x0, +0xca,0x0,0x2e,0x1,0x60,0x1,0x7d,0x1,0x8a,0x1,0x88,0x1, +0x83,0x1,0x6d,0x1,0x1e,0x1,0x9a,0x0,0xa,0x0,0x71,0xff, +0xdd,0xfe,0x70,0xfe,0x32,0xfe,0x4b,0xfe,0xd3,0xfe,0x5c,0xff, +0xa6,0xff,0xfb,0xff,0x44,0x0,0x22,0x0,0xbe,0xff,0x53,0xff, +0xef,0xfe,0xd8,0xfe,0x1b,0xff,0x6b,0xff,0xb0,0xff,0x4,0x0, +0x55,0x0,0x84,0x0,0x89,0x0,0x7b,0x0,0x67,0x0,0x35,0x0, +0xfc,0xff,0xf3,0xff,0xf5,0xff,0xd7,0xff,0xcb,0xff,0xd7,0xff, +0xd3,0xff,0xd4,0xff,0xec,0xff,0x0,0x0,0x7,0x0,0xf9,0xff, +0xbd,0xff,0x76,0xff,0x56,0xff,0x45,0xff,0x2f,0xff,0x36,0xff, +0x4c,0xff,0x33,0xff,0xfc,0xfe,0xfa,0xfe,0x39,0xff,0x7d,0xff, +0xb3,0xff,0xf2,0xff,0x38,0x0,0x74,0x0,0xb3,0x0,0xfd,0x0, +0x37,0x1,0x52,0x1,0x3b,0x1,0xe9,0x0,0xa1,0x0,0x94,0x0, +0x8f,0x0,0x68,0x0,0x1a,0x0,0xa8,0xff,0x55,0xff,0x45,0xff, +0x3e,0xff,0x5f,0xff,0xe0,0xff,0x54,0x0,0x83,0x0,0xac,0x0, +0xa5,0x0,0x48,0x0,0xe5,0xff,0x7a,0xff,0xff,0xfe,0xc9,0xfe, +0xcb,0xfe,0xbc,0xfe,0xcb,0xfe,0x8,0xff,0x39,0xff,0x66,0xff, +0x98,0xff,0x98,0xff,0x6f,0xff,0x61,0xff,0x71,0xff,0x86,0xff, +0xb7,0xff,0x10,0x0,0x5e,0x0,0x80,0x0,0x99,0x0,0xba,0x0, +0xc1,0x0,0x9c,0x0,0x66,0x0,0x42,0x0,0x3f,0x0,0x4d,0x0, +0x67,0x0,0x87,0x0,0x9b,0x0,0xac,0x0,0xbe,0x0,0xac,0x0, +0x5a,0x0,0xe1,0xff,0x81,0xff,0x6e,0xff,0x76,0xff,0x50,0xff, +0x2b,0xff,0x3e,0xff,0x78,0xff,0xd4,0xff,0x33,0x0,0x5e,0x0, +0x73,0x0,0xa5,0x0,0xe1,0x0,0xf3,0x0,0xac,0x0,0x3b,0x0, +0xfc,0xff,0xbc,0xff,0x33,0xff,0xaf,0xfe,0x6d,0xfe,0x66,0xfe, +0xa2,0xfe,0xe6,0xfe,0x21,0xff,0x98,0xff,0x16,0x0,0x71,0x0, +0x1,0x1,0x91,0x1,0x9e,0x1,0x5a,0x1,0xf1,0x0,0x58,0x0, +0xe2,0xff,0xa3,0xff,0x6b,0xff,0x57,0xff,0x45,0xff,0xdf,0xfe, +0x61,0xfe,0x28,0xfe,0x44,0xfe,0xa5,0xfe,0x21,0xff,0x9e,0xff, +0xb,0x0,0x2f,0x0,0x39,0x0,0x7b,0x0,0x99,0x0,0x32,0x0, +0x7e,0xff,0xb0,0xfe,0xd5,0xfd,0x25,0xfd,0xe4,0xfc,0x5b,0xfd, +0x86,0xfe,0xfd,0xff,0x89,0x1,0x9,0x3,0x2f,0x4,0xf6,0x4, +0x67,0x5,0x26,0x5,0x22,0x4,0xae,0x2,0xfb,0x0,0x54,0xff, +0x2b,0xfe,0xa0,0xfd,0x91,0xfd,0xc5,0xfd,0x14,0xfe,0x78,0xfe, +0xbe,0xfe,0xb2,0xfe,0x8c,0xfe,0x83,0xfe,0xa6,0xfe,0xf,0xff, +0x8e,0xff,0xf2,0xff,0x67,0x0,0xba,0x0,0x7a,0x0,0xee,0xff, +0x8f,0xff,0x66,0xff,0x6c,0xff,0x79,0xff,0x6d,0xff,0x74,0xff, +0x87,0xff,0x7b,0xff,0x93,0xff,0xf1,0xff,0x4d,0x0,0x82,0x0, +0x89,0x0,0x70,0x0,0x7a,0x0,0xb0,0x0,0xec,0x0,0x14,0x1, +0xf2,0x0,0x7e,0x0,0xf8,0xff,0x55,0xff,0x90,0xfe,0x8,0xfe, +0xcf,0xfd,0xc7,0xfd,0x12,0xfe,0x8d,0xfe,0xf6,0xfe,0x62,0xff, +0xdb,0xff,0x53,0x0,0xcd,0x0,0x14,0x1,0x2c,0x1,0x50,0x1, +0x4d,0x1,0x12,0x1,0xd,0x1,0x35,0x1,0x34,0x1,0x10,0x1, +0xc1,0x0,0x59,0x0,0x2a,0x0,0x2a,0x0,0x38,0x0,0x72,0x0, +0xaf,0x0,0xdb,0x0,0x2a,0x1,0x5c,0x1,0xe,0x1,0x6f,0x0, +0xa6,0xff,0xab,0xfe,0xb1,0xfd,0x9,0xfd,0xfd,0xfc,0x86,0xfd, +0x4a,0xfe,0x38,0xff,0x3a,0x0,0xcd,0x0,0xe7,0x0,0xf2,0x0, +0xe9,0x0,0xc5,0x0,0xa5,0x0,0x47,0x0,0x9e,0xff,0xe6,0xfe, +0xe,0xfe,0x63,0xfd,0x77,0xfd,0x28,0xfe,0x20,0xff,0x3e,0x0, +0xf7,0x0,0xf2,0x0,0x99,0x0,0x5f,0x0,0x6a,0x0,0xae,0x0, +0xee,0x0,0x17,0x1,0x17,0x1,0xd3,0x0,0x95,0x0,0x93,0x0, +0x7a,0x0,0x54,0x0,0x4f,0x0,0x2b,0x0,0x8,0x0,0x44,0x0, +0x8c,0x0,0xb9,0x0,0x16,0x1,0x6e,0x1,0x7b,0x1,0x84,0x1, +0x82,0x1,0x32,0x1,0xc0,0x0,0x6c,0x0,0x28,0x0,0xe0,0xff, +0x92,0xff,0x3f,0xff,0xe1,0xfe,0x7c,0xfe,0x52,0xfe,0x9c,0xfe, +0x26,0xff,0x8d,0xff,0xa8,0xff,0x88,0xff,0x54,0xff,0x2e,0xff, +0x4e,0xff,0xdd,0xff,0x97,0x0,0x1d,0x1,0x7f,0x1,0xcf,0x1, +0xe8,0x1,0xde,0x1,0xc7,0x1,0x79,0x1,0xed,0x0,0x63,0x0, +0xf7,0xff,0x8a,0xff,0xc,0xff,0x87,0xfe,0x0,0xfe,0xa7,0xfd, +0xc0,0xfd,0x26,0xfe,0x93,0xfe,0x3e,0xff,0x20,0x0,0x9b,0x0, +0xa9,0x0,0xc0,0x0,0xc8,0x0,0x93,0x0,0x5b,0x0,0x18,0x0, +0xc0,0xff,0xa3,0xff,0xbe,0xff,0xce,0xff,0xe2,0xff,0xc,0x0, +0x44,0x0,0xa9,0x0,0x32,0x1,0x93,0x1,0x9b,0x1,0x80,0x1, +0xa4,0x1,0xfc,0x1,0x2e,0x2,0x3a,0x2,0x29,0x2,0xc0,0x1, +0x1a,0x1,0x65,0x0,0x71,0xff,0x72,0xfe,0xf0,0xfd,0xdf,0xfd, +0xec,0xfd,0x15,0xfe,0x75,0xfe,0x18,0xff,0xce,0xff,0x44,0x0, +0x82,0x0,0x87,0x0,0xff,0xff,0x14,0xff,0x6f,0xfe,0x46,0xfe, +0x68,0xfe,0xc4,0xfe,0x56,0xff,0xfa,0xff,0x91,0x0,0x31,0x1, +0xe4,0x1,0x72,0x2,0xda,0x2,0x3a,0x3,0x36,0x3,0x99,0x2, +0xd3,0x1,0x35,0x1,0xdc,0x0,0xd9,0x0,0xb3,0x0,0x2,0x0, +0xfb,0xfe,0xb4,0xfd,0x3f,0xfc,0x15,0xfb,0x52,0xfa,0xf1,0xf9, +0x3c,0xfa,0x1c,0xfb,0x56,0xfc,0xb,0xfe,0xe9,0xff,0x87,0x1, +0x42,0x3,0x27,0x5,0x9c,0x6,0x6c,0x7,0x66,0x7,0x11,0x6, +0xc3,0x3,0x87,0x1,0x5,0x0,0x5e,0xff,0x63,0xff,0xa8,0xff, +0xcb,0xff,0xb6,0xff,0x72,0xff,0x5,0xff,0xa3,0xfe,0xaf,0xfe, +0x27,0xff,0xa6,0xff,0xfc,0xff,0x22,0x0,0xf5,0xff,0x90,0xff, +0x43,0xff,0xe,0xff,0xb0,0xfe,0x2f,0xfe,0xef,0xfd,0x23,0xfe, +0x8e,0xfe,0xf5,0xfe,0x57,0xff,0xb6,0xff,0x24,0x0,0x91,0x0, +0xb8,0x0,0xc7,0x0,0x27,0x1,0x9e,0x1,0xe7,0x1,0x2e,0x2, +0x6e,0x2,0x71,0x2,0x32,0x2,0xa6,0x1,0xee,0x0,0x33,0x0, +0x42,0xff,0xd,0xfe,0xec,0xfc,0x11,0xfc,0xb5,0xfb,0x18,0xfc, +0xfc,0xfc,0xd,0xfe,0x40,0xff,0x6e,0x0,0x65,0x1,0x1d,0x2, +0x81,0x2,0x96,0x2,0x73,0x2,0x19,0x2,0xb9,0x1,0x76,0x1, +0x21,0x1,0xb1,0x0,0x4f,0x0,0xf2,0xff,0xb3,0xff,0xcc,0xff, +0x45,0x0,0x1d,0x1,0x3b,0x2,0x35,0x3,0xac,0x3,0x86,0x3, +0xcd,0x2,0xb6,0x1,0x6b,0x0,0xf6,0xfe,0x86,0xfd,0x64,0xfc, +0xb7,0xfb,0x81,0xfb,0xa2,0xfb,0xf,0xfc,0xd1,0xfc,0xbd,0xfd, +0xb0,0xfe,0xbe,0xff,0xc5,0x0,0x90,0x1,0x1f,0x2,0x5c,0x2, +0x39,0x2,0xf7,0x1,0xbf,0x1,0xaa,0x1,0xf6,0x1,0x6e,0x2, +0x86,0x2,0x38,0x2,0xb5,0x1,0x8,0x1,0x75,0x0,0x20,0x0, +0xb9,0xff,0x2f,0xff,0xd0,0xfe,0xb2,0xfe,0xcd,0xfe,0x15,0xff, +0x4a,0xff,0x4b,0xff,0x43,0xff,0x49,0xff,0x60,0xff,0x9c,0xff, +0xe5,0xff,0x5,0x0,0xe8,0xff,0x9b,0xff,0x5b,0xff,0x6e,0xff, +0xc5,0xff,0x3d,0x0,0xdf,0x0,0x7a,0x1,0xd7,0x1,0x2a,0x2, +0xab,0x2,0x4f,0x3,0x10,0x4,0x9c,0x4,0x7b,0x4,0xd3,0x3, +0xf8,0x2,0xd1,0x1,0x8c,0x0,0x85,0xff,0x93,0xfe,0xa2,0xfd, +0x5,0xfd,0xb0,0xfc,0x6d,0xfc,0x73,0xfc,0xd5,0xfc,0x58,0xfd, +0xfc,0xfd,0xc3,0xfe,0x7d,0xff,0x15,0x0,0x7a,0x0,0xab,0x0, +0xdb,0x0,0xfe,0x0,0xe7,0x0,0xd1,0x0,0xdf,0x0,0xe3,0x0, +0xf3,0x0,0x1f,0x1,0x29,0x1,0x21,0x1,0x1b,0x1,0xd4,0x0, +0x88,0x0,0x95,0x0,0x8e,0x0,0x2a,0x0,0xbb,0xff,0x5d,0xff, +0x38,0xff,0xb2,0xff,0x6c,0x0,0xc4,0x0,0xe2,0x0,0x9,0x1, +0xc,0x1,0xe8,0x0,0xb9,0x0,0x7f,0x0,0x46,0x0,0x26,0x0, +0x1a,0x0,0x9,0x0,0xfb,0xff,0x1f,0x0,0x83,0x0,0x13,0x1, +0xde,0x1,0xcd,0x2,0x83,0x3,0xdd,0x3,0xec,0x3,0xad,0x3, +0x42,0x3,0xbf,0x2,0xf7,0x1,0xf8,0x0,0xe,0x0,0x59,0xff, +0xd8,0xfe,0x77,0xfe,0x14,0xfe,0xb5,0xfd,0x8a,0xfd,0xa8,0xfd, +0xf2,0xfd,0x42,0xfe,0x93,0xfe,0xc7,0xfe,0x9e,0xfe,0x45,0xfe, +0xee,0xfd,0x28,0xfd,0xc7,0xfb,0x20,0xfa,0x27,0xf8,0x12,0xf6, +0xe4,0xf4,0x31,0xf5,0xf5,0xf6,0x18,0xfa,0xd3,0xfd,0x39,0x1, +0x45,0x4,0x37,0x7,0x1f,0xa,0xdf,0xc,0x7f,0xe,0xb7,0xd, +0x41,0xa,0x6,0x5,0x10,0x0,0x71,0xfd,0x34,0xfd,0xc,0xfe, +0x41,0xff,0x7d,0x0,0x94,0x1,0xcb,0x2,0x5,0x4,0xe1,0x4, +0x79,0x5,0xa0,0x5,0xca,0x4,0x9,0x3,0xd7,0x0,0xcc,0xfe, +0xb5,0xfd,0xac,0xfd,0xd8,0xfd,0xb3,0xfd,0x73,0xfd,0x80,0xfd, +0x4,0xfe,0x95,0xfe,0xba,0xfe,0x9a,0xfe,0x92,0xfe,0xb7,0xfe, +0x6,0xff,0x63,0xff,0x9d,0xff,0xc9,0xff,0x15,0x0,0x6b,0x0, +0x99,0x0,0x94,0x0,0x50,0x0,0xaa,0xff,0xa9,0xfe,0x8f,0xfd, +0x7b,0xfc,0x62,0xfb,0x63,0xfa,0xb0,0xf9,0x58,0xf9,0x78,0xf9, +0x2f,0xfa,0x71,0xfb,0x18,0xfd,0xec,0xfe,0xb0,0x0,0x3d,0x2, +0x6c,0x3,0x1c,0x4,0x51,0x4,0x20,0x4,0xba,0x3,0x81,0x3, +0x73,0x3,0x41,0x3,0x17,0x3,0x2c,0x3,0x2c,0x3,0x1f,0x3, +0x74,0x3,0xff,0x3,0x6c,0x4,0xdb,0x4,0x40,0x5,0x5d,0x5, +0x1d,0x5,0x47,0x4,0xda,0x2,0x4a,0x1,0xb1,0xff,0xe,0xfe, +0xe3,0xfc,0x53,0xfc,0xf4,0xfb,0xb5,0xfb,0x8e,0xfb,0x61,0xfb, +0x75,0xfb,0xfb,0xfb,0xc1,0xfc,0xa6,0xfd,0x6d,0xfe,0xe1,0xfe, +0x48,0xff,0xbd,0xff,0x14,0x0,0x62,0x0,0x91,0x0,0x7c,0x0, +0x6a,0x0,0x57,0x0,0x4,0x0,0xb3,0xff,0x78,0xff,0x1b,0xff, +0xd1,0xfe,0xa5,0xfe,0x76,0xfe,0x9e,0xfe,0x32,0xff,0xc5,0xff, +0x3d,0x0,0x85,0x0,0x72,0x0,0x60,0x0,0x99,0x0,0xf5,0x0, +0x46,0x1,0x5d,0x1,0x49,0x1,0x77,0x1,0xde,0x1,0x3e,0x2, +0x8f,0x2,0x6f,0x2,0xba,0x1,0x13,0x1,0xaf,0x0,0x6f,0x0, +0xc4,0x0,0xb0,0x1,0xbc,0x2,0xe4,0x3,0xe1,0x4,0xc,0x5, +0x87,0x4,0xaf,0x3,0x82,0x2,0x31,0x1,0xf0,0xff,0xb8,0xfe, +0xb3,0xfd,0xe,0xfd,0xdf,0xfc,0x46,0xfd,0x11,0xfe,0xe9,0xfe, +0xcb,0xff,0x95,0x0,0xfd,0x0,0xf6,0x0,0x7a,0x0,0x9a,0xff, +0xac,0xfe,0xe5,0xfd,0x5e,0xfd,0x3b,0xfd,0x56,0xfd,0x91,0xfd, +0x17,0xfe,0xce,0xfe,0x66,0xff,0xc9,0xff,0xe8,0xff,0xcb,0xff, +0xb5,0xff,0x92,0xff,0x28,0xff,0xa6,0xfe,0x2f,0xfe,0xbc,0xfd, +0xa8,0xfd,0x29,0xfe,0xe5,0xfe,0x9a,0xff,0x47,0x0,0xdf,0x0, +0x82,0x1,0x41,0x2,0xb6,0x2,0xa3,0x2,0x56,0x2,0x1b,0x2, +0x10,0x2,0x4a,0x2,0xa0,0x2,0xd2,0x2,0xce,0x2,0xa2,0x2, +0x77,0x2,0x79,0x2,0xa8,0x2,0xea,0x2,0x11,0x3,0xf0,0x2, +0xb3,0x2,0x91,0x2,0x78,0x2,0x68,0x2,0x61,0x2,0x1c,0x2, +0xa3,0x1,0x2f,0x1,0x97,0x0,0xe2,0xff,0x72,0xff,0x33,0xff, +0xf0,0xfe,0xb9,0xfe,0x6b,0xfe,0xec,0xfd,0x7d,0xfd,0x37,0xfd, +0x9,0xfd,0xf9,0xfc,0xdb,0xfc,0x6b,0xfc,0xaf,0xfb,0xe5,0xfa, +0x51,0xfa,0xdb,0xf9,0x34,0xf9,0x50,0xf8,0x2e,0xf7,0xd3,0xf5, +0xe3,0xf4,0xef,0xf4,0xd3,0xf5,0xb2,0xf7,0xc1,0xfa,0x32,0xfe, +0x23,0x1,0xab,0x3,0x36,0x6,0x1e,0x9,0x1b,0xc,0xa9,0xd, +0x60,0xc,0xa0,0x8,0x27,0x4,0xcf,0x0,0x6e,0xff,0x6e,0xff, +0xd1,0xff,0x4a,0x0,0xe,0x1,0x40,0x2,0xa1,0x3,0xc0,0x4, +0xa3,0x5,0x6b,0x6,0x86,0x6,0x76,0x5,0xad,0x3,0xce,0x1, +0x44,0x0,0x58,0xff,0xa4,0xfe,0x78,0xfd,0x13,0xfc,0x56,0xfb, +0xb1,0xfb,0xf3,0xfc,0x71,0xfe,0x7e,0xff,0x23,0x0,0x9d,0x0, +0xbe,0x0,0x84,0x0,0x32,0x0,0xa0,0xff,0xb0,0xfe,0xd5,0xfd, +0x63,0xfd,0x17,0xfd,0xa3,0xfc,0x1b,0xfc,0xa3,0xfb,0x3c,0xfb, +0xf7,0xfa,0xee,0xfa,0xea,0xfa,0xba,0xfa,0x86,0xfa,0x5c,0xfa, +0x40,0xfa,0x84,0xfa,0x4b,0xfb,0x75,0xfc,0xff,0xfd,0xb2,0xff, +0x2d,0x1,0x69,0x2,0x65,0x3,0xf3,0x3,0x2c,0x4,0x43,0x4, +0x51,0x4,0x68,0x4,0x63,0x4,0x29,0x4,0xd6,0x3,0x48,0x3, +0x8d,0x2,0x32,0x2,0x4f,0x2,0xaa,0x2,0x88,0x3,0xd2,0x4, +0xc4,0x5,0xed,0x5,0x54,0x5,0x22,0x4,0xac,0x2,0x2b,0x1, +0xbf,0xff,0xa1,0xfe,0xc2,0xfd,0xe1,0xfc,0x6,0xfc,0x5e,0xfb, +0x3b,0xfb,0xce,0xfb,0xc0,0xfc,0xb9,0xfd,0xa8,0xfe,0x3d,0xff, +0x59,0xff,0x60,0xff,0x63,0xff,0xf,0xff,0x46,0xfe,0x40,0xfd, +0x72,0xfc,0x1d,0xfc,0x23,0xfc,0x78,0xfc,0xf0,0xfc,0x12,0xfd, +0xf7,0xfc,0x7,0xfd,0x2b,0xfd,0x66,0xfd,0xf6,0xfd,0x9e,0xfe, +0x16,0xff,0x76,0xff,0xbf,0xff,0xfd,0xff,0x68,0x0,0x17,0x1, +0xe4,0x1,0x50,0x2,0x4,0x2,0x8f,0x1,0x79,0x1,0x81,0x1, +0x88,0x1,0x9c,0x1,0x6d,0x1,0x13,0x1,0x1c,0x1,0x95,0x1, +0x2f,0x2,0xb2,0x2,0xfd,0x2,0x31,0x3,0x79,0x3,0xac,0x3, +0x8d,0x3,0x1a,0x3,0x84,0x2,0xf1,0x1,0x19,0x1,0xd9,0xff, +0xc3,0xfe,0x27,0xfe,0xb3,0xfd,0x68,0xfd,0x74,0xfd,0x8b,0xfd, +0x7e,0xfd,0x99,0xfd,0xa,0xfe,0x9e,0xfe,0x0,0xff,0xe,0xff, +0x10,0xff,0x3a,0xff,0x5f,0xff,0x4e,0xff,0x12,0xff,0xbe,0xfe, +0x67,0xfe,0x29,0xfe,0x1c,0xfe,0x36,0xfe,0x3f,0xfe,0x1a,0xfe, +0xea,0xfd,0xdc,0xfd,0xe0,0xfd,0xe4,0xfd,0x11,0xfe,0x84,0xfe, +0xc,0xff,0xa4,0xff,0x8f,0x0,0x91,0x1,0x1b,0x2,0x4c,0x2, +0x84,0x2,0xa8,0x2,0xb0,0x2,0xc1,0x2,0x9e,0x2,0xb,0x2, +0x5c,0x1,0x8,0x1,0x35,0x1,0xb5,0x1,0x52,0x2,0xfa,0x2, +0x71,0x3,0x69,0x3,0xd,0x3,0xa8,0x2,0x29,0x2,0xa0,0x1, +0x49,0x1,0xe,0x1,0xcb,0x0,0x84,0x0,0x26,0x0,0xba,0xff, +0x75,0xff,0x46,0xff,0xd,0xff,0xdb,0xfe,0xa9,0xfe,0x73,0xfe, +0x64,0xfe,0x5b,0xfe,0xc,0xfe,0x8a,0xfd,0xe5,0xfc,0xea,0xfb, +0xb4,0xfa,0x8a,0xf9,0x62,0xf8,0x1c,0xf7,0xa4,0xf5,0xfb,0xf3, +0xa3,0xf2,0x2c,0xf2,0x8f,0xf2,0xec,0xf3,0xca,0xf6,0xf2,0xfa, +0x7c,0xff,0xe9,0x3,0x12,0x8,0xc8,0xb,0xf7,0xe,0x48,0x11, +0xca,0x11,0x96,0xf,0xe8,0xa,0x66,0x5,0xf1,0x0,0x34,0xfe, +0xc4,0xfc,0x32,0xfc,0x7b,0xfc,0xb3,0xfd,0x8e,0xff,0x70,0x1, +0x1,0x3,0x43,0x4,0x4a,0x5,0xc,0x6,0x5,0x6,0xbd,0x4, +0xad,0x2,0xa2,0x0,0xec,0xfe,0x9f,0xfd,0xa1,0xfc,0xbc,0xfb, +0x31,0xfb,0x3b,0xfb,0xa1,0xfb,0x66,0xfc,0xac,0xfd,0x1a,0xff, +0x5d,0x0,0x61,0x1,0xec,0x1,0xc9,0x1,0xb,0x1,0x2,0x0, +0x1c,0xff,0x94,0xfe,0x48,0xfe,0xd3,0xfd,0xc9,0xfc,0x6e,0xfb, +0x8e,0xfa,0x3f,0xfa,0x11,0xfa,0xf6,0xf9,0xd1,0xf9,0x68,0xf9, +0xff,0xf8,0xef,0xf8,0x3c,0xf9,0xe3,0xf9,0xeb,0xfa,0x64,0xfc, +0x49,0xfe,0x24,0x0,0xa2,0x1,0xf4,0x2,0x35,0x4,0x69,0x5, +0x8f,0x6,0x4d,0x7,0x67,0x7,0xd,0x7,0x41,0x6,0x9,0x5, +0xc0,0x3,0x9d,0x2,0xc3,0x1,0x71,0x1,0xb4,0x1,0x91,0x2, +0xe1,0x3,0x1,0x5,0x8b,0x5,0x85,0x5,0xc3,0x4,0x63,0x3, +0xff,0x1,0xd2,0x0,0xcd,0xff,0xf2,0xfe,0xeb,0xfd,0x94,0xfc, +0x72,0xfb,0xc1,0xfa,0x46,0xfa,0x32,0xfa,0xc9,0xfa,0xb3,0xfb, +0x8a,0xfc,0x4d,0xfd,0xe,0xfe,0xb5,0xfe,0x2d,0xff,0x74,0xff, +0x8d,0xff,0x6f,0xff,0x1d,0xff,0xc3,0xfe,0x7f,0xfe,0x3f,0xfe, +0xd7,0xfd,0x1e,0xfd,0x5e,0xfc,0x43,0xfc,0xf0,0xfc,0xdb,0xfd, +0xdd,0xfe,0x2,0x0,0xf0,0x0,0x81,0x1,0xd7,0x1,0xde,0x1, +0xd4,0x1,0xe,0x2,0x3d,0x2,0x26,0x2,0x1b,0x2,0x33,0x2, +0x88,0x2,0x5c,0x3,0x4e,0x4,0xd2,0x4,0xef,0x4,0xc6,0x4, +0x82,0x4,0x55,0x4,0x10,0x4,0x81,0x3,0xc3,0x2,0xea,0x1, +0x21,0x1,0x8f,0x0,0x9,0x0,0xa5,0xff,0xae,0xff,0xe8,0xff, +0xf2,0xff,0xb6,0xff,0x4b,0xff,0x19,0xff,0x5a,0xff,0x8c,0xff, +0x3a,0xff,0x83,0xfe,0xb6,0xfd,0x48,0xfd,0x59,0xfd,0x85,0xfd, +0xb4,0xfd,0x18,0xfe,0x7d,0xfe,0xbe,0xfe,0x16,0xff,0x8f,0xff, +0xfb,0xff,0x4b,0x0,0x8b,0x0,0x9e,0x0,0x46,0x0,0xa0,0xff, +0x32,0xff,0x36,0xff,0x80,0xff,0xd3,0xff,0xe9,0xff,0xc0,0xff, +0xb0,0xff,0xcd,0xff,0x6,0x0,0x7c,0x0,0x6,0x1,0x55,0x1, +0x8d,0x1,0xdc,0x1,0x11,0x2,0x2a,0x2,0x7b,0x2,0xc,0x3, +0x7f,0x3,0xa8,0x3,0xc5,0x3,0x1,0x4,0x40,0x4,0x63,0x4, +0x6b,0x4,0x5d,0x4,0x2b,0x4,0xbf,0x3,0x12,0x3,0x10,0x2, +0xc6,0x0,0x8d,0xff,0x8a,0xfe,0x90,0xfd,0xdb,0xfc,0xb5,0xfc, +0xc2,0xfc,0xd4,0xfc,0x24,0xfd,0x6d,0xfd,0x6b,0xfd,0x5b,0xfd, +0x35,0xfd,0xdc,0xfc,0x8b,0xfc,0x26,0xfc,0x49,0xfb,0xfa,0xf9, +0x5e,0xf8,0x8d,0xf6,0xcc,0xf4,0x5a,0xf3,0x96,0xf2,0x22,0xf3, +0x5d,0xf5,0xf,0xf9,0x86,0xfd,0xfa,0x1,0x25,0x6,0x25,0xa, +0xdc,0xd,0xbc,0x10,0xdb,0x11,0x65,0x10,0x8e,0xc,0x85,0x7, +0x98,0x2,0xbd,0xfe,0x57,0xfc,0x60,0xfb,0xec,0xfb,0xd2,0xfd, +0x21,0x0,0xe6,0x1,0xfc,0x2,0xdc,0x3,0xe0,0x4,0x9f,0x5, +0x48,0x5,0xb6,0x3,0x9a,0x1,0xd3,0xff,0xd5,0xfe,0x48,0xfe, +0x8c,0xfd,0xb9,0xfc,0x60,0xfc,0xa7,0xfc,0x41,0xfd,0xf1,0xfd, +0xc2,0xfe,0xc2,0xff,0xb7,0x0,0x5b,0x1,0x9f,0x1,0x92,0x1, +0x48,0x1,0xd5,0x0,0x37,0x0,0x86,0xff,0xd6,0xfe,0xa,0xfe, +0x27,0xfd,0x68,0xfc,0xcf,0xfb,0x46,0xfb,0xe2,0xfa,0x88,0xfa, +0xfa,0xf9,0x43,0xf9,0xa8,0xf8,0x6d,0xf8,0xa4,0xf8,0x3d,0xf9, +0x78,0xfa,0x90,0xfc,0xfc,0xfe,0x13,0x1,0xc9,0x2,0x20,0x4, +0xe,0x5,0xdd,0x5,0xa3,0x6,0x17,0x7,0x39,0x7,0x35,0x7, +0xf3,0x6,0x67,0x6,0xd3,0x5,0x6c,0x5,0x7,0x5,0x7d,0x4, +0x10,0x4,0xf3,0x3,0xf8,0x3,0x19,0x4,0x3e,0x4,0xf4,0x3, +0x2e,0x3,0x52,0x2,0x6e,0x1,0x7f,0x0,0x91,0xff,0x49,0xfe, +0x88,0xfc,0xe4,0xfa,0xc6,0xf9,0x37,0xf9,0x49,0xf9,0x2,0xfa, +0x42,0xfb,0xb0,0xfc,0xbf,0xfd,0x4c,0xfe,0x8e,0xfe,0xa4,0xfe, +0xd1,0xfe,0x4c,0xff,0xbf,0xff,0xfa,0xff,0x42,0x0,0x84,0x0, +0x8c,0x0,0x7f,0x0,0x67,0x0,0x16,0x0,0x8b,0xff,0xf3,0xfe, +0x8f,0xfe,0x77,0xfe,0x94,0xfe,0xe6,0xfe,0x70,0xff,0xfd,0xff, +0x61,0x0,0xa8,0x0,0xfc,0x0,0x6f,0x1,0xd8,0x1,0x6,0x2, +0xf5,0x1,0xc0,0x1,0x9e,0x1,0xd4,0x1,0x64,0x2,0x2d,0x3, +0x2a,0x4,0x2d,0x5,0xe9,0x5,0x38,0x6,0x10,0x6,0x68,0x5, +0x61,0x4,0x58,0x3,0x85,0x2,0xb2,0x1,0xad,0x0,0xb2,0xff, +0x3,0xff,0xa3,0xfe,0x99,0xfe,0xd5,0xfe,0x23,0xff,0x7e,0xff, +0xcd,0xff,0xac,0xff,0x2,0xff,0x28,0xfe,0x7b,0xfd,0x7,0xfd, +0x91,0xfc,0xef,0xfb,0x5c,0xfb,0x44,0xfb,0xd1,0xfb,0xc4,0xfc, +0xcf,0xfd,0xdf,0xfe,0xdf,0xff,0xcb,0x0,0xd7,0x1,0xcd,0x2, +0x2f,0x3,0x14,0x3,0xd5,0x2,0x82,0x2,0x45,0x2,0x22,0x2, +0xec,0x1,0xd7,0x1,0xd6,0x1,0x84,0x1,0x4e,0x1,0xae,0x1, +0x22,0x2,0x5d,0x2,0x93,0x2,0xae,0x2,0x9d,0x2,0x69,0x2, +0xff,0x1,0xa0,0x1,0x7c,0x1,0x67,0x1,0x68,0x1,0x6e,0x1, +0x53,0x1,0x6c,0x1,0xcf,0x1,0x1,0x2,0xf,0x2,0x41,0x2, +0x4e,0x2,0x3,0x2,0x86,0x1,0x5,0x1,0x80,0x0,0x9f,0xff, +0x3c,0xfe,0xc3,0xfc,0x82,0xfb,0xab,0xfa,0x87,0xfa,0xe4,0xfa, +0x70,0xfb,0x22,0xfc,0xaa,0xfc,0xd1,0xfc,0xd6,0xfc,0x70,0xfc, +0x26,0xfb,0x2d,0xf9,0xa8,0xf6,0xab,0xf3,0x1c,0xf1,0xf7,0xef, +0xa1,0xf0,0x2d,0xf3,0x13,0xf7,0x76,0xfb,0x2e,0x0,0x9c,0x5, +0xa4,0xb,0x3d,0x11,0xb3,0x14,0xb7,0x14,0x71,0x11,0x6b,0xc, +0x76,0x7,0xac,0x3,0x48,0x1,0x1c,0x0,0xdd,0xff,0x58,0x0, +0x72,0x1,0xc3,0x2,0xd6,0x3,0xd0,0x4,0xd7,0x5,0x56,0x6, +0x8d,0x5,0x81,0x3,0xf7,0x0,0xbf,0xfe,0x2a,0xfd,0x2d,0xfc, +0xa9,0xfb,0x70,0xfb,0x64,0xfb,0x9c,0xfb,0x25,0xfc,0xc5,0xfc, +0x24,0xfd,0x29,0xfd,0x1e,0xfd,0x50,0xfd,0xc7,0xfd,0x61,0xfe, +0xf4,0xfe,0x67,0xff,0xc9,0xff,0x18,0x0,0x52,0x0,0x9c,0x0, +0xc3,0x0,0x62,0x0,0x99,0xff,0x87,0xfe,0xd7,0xfc,0xb9,0xfa, +0xe8,0xf8,0x8f,0xf7,0x81,0xf6,0xef,0xf5,0x10,0xf6,0xf3,0xf6, +0x9b,0xf8,0xe1,0xfa,0xb4,0xfd,0xec,0x0,0xc7,0x3,0xaa,0x5, +0xc9,0x6,0x51,0x7,0x4d,0x7,0x1c,0x7,0xd0,0x6,0x2c,0x6, +0x7f,0x5,0x9,0x5,0x7f,0x4,0x4,0x4,0x4,0x4,0x6a,0x4, +0x16,0x5,0x15,0x6,0x35,0x7,0x28,0x8,0x9b,0x8,0x28,0x8, +0xc0,0x6,0x9f,0x4,0x1f,0x2,0xad,0xff,0x69,0xfd,0x3b,0xfb, +0x64,0xf9,0x25,0xf8,0x81,0xf7,0x9b,0xf7,0x40,0xf8,0xfc,0xf8, +0x3,0xfa,0x86,0xfb,0xe9,0xfc,0xbe,0xfd,0x28,0xfe,0x49,0xfe, +0x37,0xfe,0x1f,0xfe,0x32,0xfe,0x91,0xfe,0xfe,0xfe,0x45,0xff, +0xb1,0xff,0x48,0x0,0x8e,0x0,0x6d,0x0,0x5,0x0,0x3a,0xff, +0x35,0xfe,0x7d,0xfd,0x62,0xfd,0xd6,0xfd,0x97,0xfe,0x70,0xff, +0x5a,0x0,0x3e,0x1,0x9,0x2,0xc1,0x2,0x31,0x3,0x15,0x3, +0x8f,0x2,0xe5,0x1,0x47,0x1,0xf4,0x0,0xe,0x1,0x74,0x1, +0xd,0x2,0xcd,0x2,0x9d,0x3,0x6b,0x4,0x30,0x5,0xde,0x5, +0x6d,0x6,0xc1,0x6,0x99,0x6,0xcf,0x5,0x77,0x4,0xb8,0x2, +0xe2,0x0,0x4c,0xff,0x3,0xfe,0x8,0xfd,0x64,0xfc,0xc2,0xfb, +0x4,0xfb,0xb7,0xfa,0xf5,0xfa,0x45,0xfb,0xa8,0xfb,0x22,0xfc, +0x43,0xfc,0x1c,0xfc,0x0,0xfc,0xc8,0xfb,0x8b,0xfb,0x99,0xfb, +0xc0,0xfb,0xe7,0xfb,0x60,0xfc,0x38,0xfd,0x3e,0xfe,0x47,0xff, +0x2e,0x0,0xf4,0x0,0x87,0x1,0xb4,0x1,0xb2,0x1,0xdd,0x1, +0x9,0x2,0xea,0x1,0xa7,0x1,0x97,0x1,0xc7,0x1,0x1,0x2, +0x3e,0x2,0xaf,0x2,0x3c,0x3,0x95,0x3,0x96,0x3,0x3c,0x3, +0xad,0x2,0x1d,0x2,0x8e,0x1,0x23,0x1,0x25,0x1,0x76,0x1, +0xda,0x1,0x6e,0x2,0x37,0x3,0xeb,0x3,0x4a,0x4,0x47,0x4, +0xfe,0x3,0x87,0x3,0xd7,0x2,0xf8,0x1,0x1d,0x1,0x5c,0x0, +0xa5,0xff,0xde,0xfe,0x6,0xfe,0x34,0xfd,0x83,0xfc,0xa,0xfc, +0xb4,0xfb,0x39,0xfb,0x9c,0xfa,0x29,0xfa,0xf9,0xf9,0x3,0xfa, +0x27,0xfa,0xec,0xf9,0x1c,0xf9,0x5,0xf8,0xbf,0xf6,0x46,0xf5, +0xe6,0xf3,0xc5,0xf2,0x9,0xf2,0x42,0xf2,0xda,0xf3,0xc3,0xf6, +0xbb,0xfa,0x25,0xff,0x3a,0x3,0xce,0x6,0x3a,0xa,0x7a,0xd, +0xd2,0xf,0x59,0x10,0xcf,0xe,0xd4,0xb,0x99,0x8,0x1d,0x6, +0x64,0x4,0xec,0x2,0xb2,0x1,0xfe,0x0,0xd8,0x0,0x22,0x1, +0x8f,0x1,0xf1,0x1,0x89,0x2,0x2f,0x3,0x3b,0x3,0xae,0x2, +0xe9,0x1,0xf4,0x0,0x1,0x0,0x50,0xff,0x8a,0xfe,0x55,0xfd, +0xe1,0xfb,0xbc,0xfa,0x7d,0xfa,0x6,0xfb,0x90,0xfb,0xec,0xfb, +0x90,0xfc,0x88,0xfd,0x92,0xfe,0x77,0xff,0xee,0xff,0xe,0x0, +0x47,0x0,0x91,0x0,0x8f,0x0,0x12,0x0,0xf,0xff,0x98,0xfd, +0xd3,0xfb,0xd1,0xf9,0xdc,0xf7,0x70,0xf6,0xb0,0xf5,0x84,0xf5, +0xf0,0xf5,0xe5,0xf6,0x34,0xf8,0xd1,0xf9,0xd9,0xfb,0x51,0xfe, +0xce,0x0,0xe8,0x2,0xb6,0x4,0x25,0x6,0xc3,0x6,0xc7,0x6, +0xce,0x6,0xcf,0x6,0x91,0x6,0x23,0x6,0x97,0x5,0x15,0x5, +0xb3,0x4,0x43,0x4,0xed,0x3,0x3,0x4,0x53,0x4,0xc1,0x4, +0x7d,0x5,0x57,0x6,0xda,0x6,0xa9,0x6,0x97,0x5,0xe0,0x3, +0xc4,0x1,0x4b,0xff,0xbe,0xfc,0x69,0xfa,0x52,0xf8,0xe3,0xf6, +0x87,0xf6,0xff,0xf6,0x1a,0xf8,0xcd,0xf9,0xa5,0xfb,0x49,0xfd, +0xb5,0xfe,0xc4,0xff,0x81,0x0,0x3,0x1,0x9,0x1,0x99,0x0, +0x0,0x0,0x3a,0xff,0x68,0xfe,0xe5,0xfd,0x99,0xfd,0x54,0xfd, +0x13,0xfd,0xac,0xfc,0x32,0xfc,0x2c,0xfc,0xa7,0xfc,0x23,0xfd, +0x7d,0xfd,0x1,0xfe,0xdd,0xfe,0xf3,0xff,0xf3,0x0,0x9e,0x1, +0x0,0x2,0x44,0x2,0x6a,0x2,0x58,0x2,0x10,0x2,0xb7,0x1, +0x89,0x1,0xac,0x1,0x7,0x2,0x77,0x2,0xf0,0x2,0x6c,0x3, +0x18,0x4,0x25,0x5,0x40,0x6,0xf1,0x6,0x38,0x7,0x14,0x7, +0x5b,0x6,0x45,0x5,0x2e,0x4,0xf2,0x2,0x43,0x1,0x38,0xff, +0x4d,0xfd,0xfc,0xfb,0x51,0xfb,0xf6,0xfa,0xaf,0xfa,0x96,0xfa, +0xcc,0xfa,0x1e,0xfb,0x78,0xfb,0x24,0xfc,0x15,0xfd,0xd8,0xfd, +0x64,0xfe,0xdb,0xfe,0xe0,0xfe,0x52,0xfe,0xb8,0xfd,0x66,0xfd, +0x24,0xfd,0xdd,0xfc,0xde,0xfc,0x5f,0xfd,0x36,0xfe,0xf4,0xfe, +0x4f,0xff,0x68,0xff,0x86,0xff,0xa2,0xff,0xb2,0xff,0xf8,0xff, +0x81,0x0,0x3,0x1,0x6e,0x1,0xdb,0x1,0x35,0x2,0x8d,0x2, +0xfc,0x2,0x59,0x3,0x64,0x3,0xe3,0x2,0xd9,0x1,0x5,0x1, +0x1c,0x1,0xf1,0x1,0x4,0x3,0xf6,0x3,0x7e,0x4,0xc0,0x4, +0x2,0x5,0x3c,0x5,0x79,0x5,0xc3,0x5,0xc3,0x5,0x2f,0x5, +0x3c,0x4,0x37,0x3,0x25,0x2,0xe4,0x0,0xa1,0xff,0x93,0xfe, +0x8b,0xfd,0x7a,0xfc,0xc8,0xfb,0x97,0xfb,0xb3,0xfb,0xea,0xfb, +0xfe,0xfb,0xec,0xfb,0xd4,0xfb,0x77,0xfb,0xc5,0xfa,0x1b,0xfa, +0x7b,0xf9,0xcb,0xf8,0x47,0xf8,0xe9,0xf7,0x8a,0xf7,0x3e,0xf7, +0xd8,0xf6,0x4e,0xf6,0x29,0xf6,0xca,0xf6,0x6a,0xf8,0x51,0xfb, +0xe8,0xfe,0xd,0x2,0x9a,0x4,0x47,0x7,0x72,0xa,0xad,0xd, +0xc7,0xf,0x7e,0xf,0xa0,0xc,0x49,0x8,0xed,0x3,0x94,0x0, +0x96,0xfe,0xa5,0xfd,0x68,0xfd,0xfa,0xfd,0x59,0xff,0xc4,0x0, +0x8c,0x1,0x15,0x2,0x37,0x3,0xd5,0x4,0xcb,0x5,0x56,0x5, +0xf6,0x3,0x9a,0x2,0x90,0x1,0xae,0x0,0xd6,0xff,0xd,0xff, +0x75,0xfe,0x2c,0xfe,0x2f,0xfe,0x4e,0xfe,0x60,0xfe,0x87,0xfe, +0xdf,0xfe,0x1f,0xff,0xa,0xff,0xcd,0xfe,0xa6,0xfe,0xb9,0xfe, +0xe6,0xfe,0xc6,0xfe,0x3f,0xfe,0x85,0xfd,0xa6,0xfc,0xb0,0xfb, +0x9e,0xfa,0x70,0xf9,0x9d,0xf8,0x42,0xf8,0xb5,0xf7,0x17,0xf7, +0x57,0xf7,0x7d,0xf8,0xd,0xfa,0x6,0xfc,0x84,0xfe,0x5b,0x1, +0xef,0x3,0xa3,0x5,0x9d,0x6,0x28,0x7,0x20,0x7,0xa8,0x6, +0xb,0x6,0x58,0x5,0xcd,0x4,0x65,0x4,0xd7,0x3,0x78,0x3, +0x68,0x3,0x25,0x3,0xdd,0x2,0xff,0x2,0x30,0x3,0x43,0x3, +0x79,0x3,0xcf,0x3,0x1c,0x4,0x16,0x4,0x6e,0x3,0x43,0x2, +0xcb,0x0,0x3b,0xff,0x3,0xfe,0x2d,0xfd,0x6b,0xfc,0xcf,0xfb, +0x80,0xfb,0x8d,0xfb,0x20,0xfc,0x11,0xfd,0x10,0xfe,0x14,0xff, +0x7,0x0,0xad,0x0,0xcb,0x0,0x47,0x0,0x8b,0xff,0x8,0xff, +0x93,0xfe,0x24,0xfe,0xe9,0xfd,0x8c,0xfd,0xe3,0xfc,0x5f,0xfc, +0x39,0xfc,0x46,0xfc,0x56,0xfc,0x50,0xfc,0x72,0xfc,0xb,0xfd, +0xf,0xfe,0x46,0xff,0x76,0x0,0x75,0x1,0x3a,0x2,0x98,0x2, +0xa5,0x2,0xda,0x2,0x25,0x3,0x24,0x3,0x17,0x3,0x21,0x3, +0xfd,0x2,0xdc,0x2,0xf,0x3,0x77,0x3,0xe1,0x3,0x22,0x4, +0x38,0x4,0x55,0x4,0x53,0x4,0xe5,0x3,0x3a,0x3,0x9b,0x2, +0x24,0x2,0xd8,0x1,0x8c,0x1,0x1d,0x1,0xb4,0x0,0x5e,0x0, +0xf1,0xff,0x6a,0xff,0xf4,0xfe,0x7d,0xfe,0xce,0xfd,0x16,0xfd, +0xad,0xfc,0x7d,0xfc,0x8f,0xfc,0x2a,0xfd,0xe5,0xfd,0x4a,0xfe, +0xa5,0xfe,0xfa,0xfe,0xf7,0xfe,0xcf,0xfe,0x8c,0xfe,0xf,0xfe, +0xb7,0xfd,0x82,0xfd,0x24,0xfd,0xf9,0xfc,0x23,0xfd,0x47,0xfd, +0x95,0xfd,0x24,0xfe,0x7b,0xfe,0xa8,0xfe,0x29,0xff,0xef,0xff, +0x9f,0x0,0x13,0x1,0x60,0x1,0x9f,0x1,0xd4,0x1,0x29,0x2, +0xbd,0x2,0x49,0x3,0x9a,0x3,0xb6,0x3,0x84,0x3,0x16,0x3, +0xbc,0x2,0xaa,0x2,0xe3,0x2,0x1b,0x3,0x1a,0x3,0x30,0x3, +0x64,0x3,0x56,0x3,0x49,0x3,0x82,0x3,0x79,0x3,0xe3,0x2, +0xf6,0x1,0xd5,0x0,0xce,0xff,0x32,0xff,0xd3,0xfe,0x8e,0xfe, +0x76,0xfe,0x81,0xfe,0xbb,0xfe,0x1f,0xff,0x4d,0xff,0x9,0xff, +0x6c,0xfe,0xa5,0xfd,0xed,0xfc,0x74,0xfc,0x3d,0xfc,0x3a,0xfc, +0x4d,0xfc,0x52,0xfc,0x50,0xfc,0x6b,0xfc,0xb3,0xfc,0x4,0xfd, +0x57,0xfd,0xef,0xfd,0xc1,0xfe,0x83,0xff,0x5a,0x0,0x65,0x1, +0x43,0x2,0xe3,0x2,0x7c,0x3,0xe8,0x3,0x26,0x4,0x65,0x4, +0x58,0x4,0xbf,0x3,0xd7,0x2,0xc2,0x1,0x74,0x0,0xf0,0xfe, +0x51,0xfd,0x2,0xfc,0xa2,0xfb,0x43,0xfc,0x6b,0xfd,0xb9,0xfe, +0x6,0x0,0x39,0x1,0x74,0x2,0x12,0x4,0xf3,0x5,0x3e,0x7, +0x3b,0x7,0xda,0x5,0x7f,0x3,0xf8,0x0,0x44,0xff,0xd4,0xfe, +0x58,0xff,0xb,0x0,0x29,0x0,0xa3,0xff,0x20,0xff,0x19,0xff, +0x9b,0xff,0x70,0x0,0x11,0x1,0xc,0x1,0x77,0x0,0x91,0xff, +0x82,0xfe,0x8b,0xfd,0xc3,0xfc,0xff,0xfb,0x42,0xfb,0xb4,0xfa, +0x2c,0xfa,0xab,0xf9,0xdd,0xf9,0x34,0xfb,0x33,0xfd,0xff,0xfe, +0x21,0x0,0xd9,0x0,0xc7,0x1,0xce,0x2,0x40,0x3,0x41,0x3, +0x65,0x3,0x77,0x3,0x41,0x3,0x15,0x3,0xe2,0x2,0x78,0x2, +0x2c,0x2,0x17,0x2,0xdc,0x1,0x59,0x1,0x9d,0x0,0xcb,0xff, +0x3d,0xff,0x2a,0xff,0x79,0xff,0xc,0x0,0xae,0x0,0x3f,0x1, +0xd3,0x1,0x43,0x2,0x52,0x2,0x20,0x2,0xcd,0x1,0x4e,0x1, +0xdc,0x0,0x99,0x0,0x41,0x0,0xcf,0xff,0xa1,0xff,0xca,0xff, +0x16,0x0,0x66,0x0,0x9f,0x0,0xaf,0x0,0xb6,0x0,0xe2,0x0, +0x3f,0x1,0x9c,0x1,0xae,0x1,0x60,0x1,0xa1,0x0,0x63,0xff, +0x2f,0xfe,0xac,0xfd,0x8b,0xfd,0x2e,0xfd,0xba,0xfc,0x81,0xfc, +0x7b,0xfc,0xbe,0xfc,0x51,0xfd,0xee,0xfd,0x79,0xfe,0x6,0xff, +0x77,0xff,0xa8,0xff,0xa1,0xff,0x9d,0xff,0xeb,0xff,0x94,0x0, +0x53,0x1,0x0,0x2,0xa0,0x2,0x26,0x3,0x70,0x3,0x63,0x3, +0xf2,0x2,0x45,0x2,0xa4,0x1,0x3a,0x1,0x14,0x1,0x2b,0x1, +0x57,0x1,0x7f,0x1,0xa6,0x1,0xa1,0x1,0x44,0x1,0xbf,0x0, +0x61,0x0,0x2f,0x0,0xf6,0xff,0xa2,0xff,0x52,0xff,0xe,0xff, +0xb6,0xfe,0x71,0xfe,0x8a,0xfe,0xd6,0xfe,0xe,0xff,0x4f,0xff, +0xa4,0xff,0x10,0x0,0xa7,0x0,0xe,0x1,0xfe,0x0,0xd1,0x0, +0x8c,0x0,0x2,0x0,0xab,0xff,0xa1,0xff,0x76,0xff,0x52,0xff, +0x5e,0xff,0x3c,0xff,0x18,0xff,0x40,0xff,0x67,0xff,0x64,0xff, +0x32,0xff,0xac,0xfe,0x2b,0xfe,0xff,0xfd,0xdf,0xfd,0xe9,0xfd, +0x68,0xfe,0x1,0xff,0x8d,0xff,0x35,0x0,0xb9,0x0,0xfc,0x0, +0x3c,0x1,0x61,0x1,0x42,0x1,0xfd,0x0,0xc6,0x0,0xdf,0x0, +0x30,0x1,0x3c,0x1,0x1e,0x1,0x4e,0x1,0xa1,0x1,0xdb,0x1, +0x2a,0x2,0x68,0x2,0x50,0x2,0x2,0x2,0x8c,0x1,0xe1,0x0, +0x41,0x0,0xcd,0xff,0x5a,0xff,0xe1,0xfe,0x74,0xfe,0x27,0xfe, +0x14,0xfe,0x12,0xfe,0xf8,0xfd,0xf7,0xfd,0x1c,0xfe,0x53,0xfe, +0xca,0xfe,0x6f,0xff,0xeb,0xff,0x45,0x0,0x8c,0x0,0x99,0x0, +0x97,0x0,0x8f,0x0,0x52,0x0,0x1a,0x0,0xfa,0xff,0xb9,0xff, +0xab,0xff,0xec,0xff,0xed,0xff,0xbd,0xff,0xb6,0xff,0x9b,0xff, +0x78,0xff,0x8f,0xff,0xa5,0xff,0xd2,0xff,0x40,0x0,0x6b,0x0, +0x3d,0x0,0x37,0x0,0x32,0x0,0xec,0xff,0xc6,0xff,0xe2,0xff, +0xf8,0xff,0x4,0x0,0x28,0x0,0x6c,0x0,0xb6,0x0,0xd3,0x0, +0xce,0x0,0xe4,0x0,0x1b,0x1,0x3d,0x1,0x33,0x1,0x23,0x1, +0x2e,0x1,0x27,0x1,0xf3,0x0,0xbe,0x0,0x99,0x0,0x61,0x0, +0xd,0x0,0xc6,0xff,0x8e,0xff,0x2e,0xff,0xac,0xfe,0x56,0xfe, +0x38,0xfe,0x34,0xfe,0x51,0xfe,0x6f,0xfe,0x74,0xfe,0xac,0xfe, +0x7,0xff,0x36,0xff,0x7f,0xff,0xfe,0xff,0x3e,0x0,0x44,0x0, +0x57,0x0,0x5c,0x0,0x59,0x0,0x52,0x0,0x1,0x0,0x90,0xff, +0x50,0xff,0x1d,0xff,0xa,0xff,0x50,0xff,0x9f,0xff,0xa8,0xff, +0xb0,0xff,0xd9,0xff,0xf4,0xff,0xb,0x0,0x50,0x0,0x98,0x0, +0xb1,0x0,0xc9,0x0,0xed,0x0,0xdf,0x0,0xa9,0x0,0x6c,0x0, +0x1,0x0,0x75,0xff,0x19,0xff,0xe,0xff,0x51,0xff,0xc5,0xff, +0x20,0x0,0x45,0x0,0x4c,0x0,0x3d,0x0,0x18,0x0,0xf3,0xff, +0xfa,0xff,0x30,0x0,0x40,0x0,0x15,0x0,0xfb,0xff,0xfd,0xff, +0xf9,0xff,0xe9,0xff,0xab,0xff,0x5c,0xff,0x4c,0xff,0x43,0xff, +0x3,0xff,0xd7,0xfe,0xcf,0xfe,0xd1,0xfe,0x2,0xff,0x41,0xff, +0x65,0xff,0x9a,0xff,0xda,0xff,0x9,0x0,0x35,0x0,0x3f,0x0, +0x22,0x0,0x10,0x0,0xf1,0xff,0xd9,0xff,0xc,0x0,0x4e,0x0, +0x58,0x0,0x3e,0x0,0xeb,0xff,0x89,0xff,0x8a,0xff,0xcb,0xff, +0xf6,0xff,0x31,0x0,0x81,0x0,0xb9,0x0,0xdd,0x0,0xde,0x0, +0x99,0x0,0x49,0x0,0x2d,0x0,0x13,0x0,0xd2,0xff,0xc0,0xff, +0xf8,0xff,0x14,0x0,0xf9,0xff,0xea,0xff,0xdc,0xff,0xd2,0xff, +0x0,0x0,0x40,0x0,0x61,0x0,0x86,0x0,0xa5,0x0,0x9f,0x0, +0x93,0x0,0x7e,0x0,0x48,0x0,0xa,0x0,0xcd,0xff,0x85,0xff, +0x42,0xff,0x20,0xff,0x2c,0xff,0x3c,0xff,0x35,0xff,0x50,0xff, +0x92,0xff,0xb6,0xff,0xcd,0xff,0xff,0xff,0x35,0x0,0x5f,0x0, +0x58,0x0,0xa,0x0,0xda,0xff,0xf5,0xff,0x0,0x0,0xea,0xff, +0xde,0xff,0xd1,0xff,0xca,0xff,0xdd,0xff,0x3,0x0,0x30,0x0, +0x51,0x0,0x73,0x0,0xaa,0x0,0xb8,0x0,0x93,0x0,0x94,0x0, +0xaa,0x0,0x9c,0x0,0x8a,0x0,0x66,0x0,0x25,0x0,0xc,0x0, +0xf7,0xff,0x96,0xff,0x43,0xff,0x46,0xff,0x59,0xff,0x7b,0xff, +0xdd,0xff,0x36,0x0,0x45,0x0,0x44,0x0,0x65,0x0,0x85,0x0, +0x9b,0x0,0xa7,0x0,0x7c,0x0,0x21,0x0,0xd0,0xff,0x84,0xff, +0x50,0xff,0x71,0xff,0xa7,0xff,0xb2,0xff,0xdc,0xff,0x22,0x0, +0x31,0x0,0x30,0x0,0x4a,0x0,0x4d,0x0,0x1c,0x0,0xc7,0xff, +0x7c,0xff,0x67,0xff,0x68,0xff,0x4d,0xff,0x30,0xff,0x2d,0xff, +0x3d,0xff,0x4b,0xff,0x46,0xff,0x4b,0xff,0x72,0xff,0xa4,0xff, +0xeb,0xff,0x45,0x0,0x6a,0x0,0x6f,0x0,0x9f,0x0,0xc2,0x0, +0xac,0x0,0x9d,0x0,0x9c,0x0,0x86,0x0,0x63,0x0,0x30,0x0, +0xe1,0xff,0xa1,0xff,0x8a,0xff,0x8e,0xff,0xa1,0xff,0xbf,0xff, +0xd6,0xff,0xcf,0xff,0xb4,0xff,0xaa,0xff,0xaf,0xff,0xb1,0xff, +0xb7,0xff,0xbc,0xff,0xba,0xff,0xc7,0xff,0xce,0xff,0xbc,0xff, +0xb2,0xff,0xbd,0xff,0xc4,0xff,0xd7,0xff,0xec,0xff,0xe3,0xff, +0xec,0xff,0x20,0x0,0x39,0x0,0x30,0x0,0x3f,0x0,0x48,0x0, +0x2e,0x0,0x2f,0x0,0x3f,0x0,0x1b,0x0,0xed,0xff,0xe7,0xff, +0xe0,0xff,0xcf,0xff,0xc3,0xff,0x94,0xff,0x58,0xff,0x39,0xff, +0x7,0xff,0xcc,0xfe,0xd7,0xfe,0x10,0xff,0x4a,0xff,0xa2,0xff, +0xe,0x0,0x5e,0x0,0x9b,0x0,0xd5,0x0,0xff,0x0,0xfc,0x0, +0xbd,0x0,0x61,0x0,0x10,0x0,0xdd,0xff,0xd3,0xff,0xd6,0xff, +0xc9,0xff,0xd7,0xff,0xb,0x0,0x24,0x0,0x21,0x0,0x1a,0x0, +0xf,0x0,0x34,0x0,0x8d,0x0,0xb7,0x0,0xaa,0x0,0x9a,0x0, +0x62,0x0,0x2,0x0,0xb3,0xff,0x6e,0xff,0x40,0xff,0x51,0xff, +0x6e,0xff,0x7d,0xff,0xa8,0xff,0xcb,0xff,0xcb,0xff,0xea,0xff, +0x27,0x0,0x43,0x0,0x3f,0x0,0x22,0x0,0xfd,0xff,0xe9,0xff, +0xbd,0xff,0x83,0xff,0xa4,0xff,0xf3,0xff,0xe9,0xff,0xb8,0xff, +0xa3,0xff,0x72,0xff,0x4f,0xff,0x7d,0xff,0xb3,0xff,0xda,0xff, +0x22,0x0,0x4d,0x0,0x40,0x0,0x44,0x0,0x44,0x0,0xff,0xff, +0xb3,0xff,0xab,0xff,0xd9,0xff,0x11,0x0,0x27,0x0,0xf3,0xff, +0x8c,0xff,0x4a,0xff,0x65,0xff,0xc3,0xff,0x42,0x0,0xb3,0x0, +0xc7,0x0,0x8f,0x0,0x6c,0x0,0x53,0x0,0x32,0x0,0x42,0x0, +0x59,0x0,0x26,0x0,0xe0,0xff,0xa2,0xff,0x57,0xff,0x4a,0xff, +0x89,0xff,0xaa,0xff,0x9e,0xff,0x8c,0xff,0x67,0xff,0x44,0xff, +0x55,0xff,0x94,0xff,0xdb,0xff,0xfd,0xff,0xe6,0xff,0xc4,0xff, +0xc8,0xff,0xf9,0xff,0x44,0x0,0x69,0x0,0x46,0x0,0xe,0x0, +0xe4,0xff,0xb7,0xff,0x91,0xff,0x81,0xff,0x7c,0xff,0x7b,0xff, +0x7a,0xff,0x75,0xff,0x7b,0xff,0xa4,0xff,0xd8,0xff,0xe8,0xff, +0xd1,0xff,0xb9,0xff,0xb9,0xff,0xd5,0xff,0x0,0x0,0x1a,0x0, +0x15,0x0,0x4,0x0,0xf9,0xff,0xf0,0xff,0x3,0x0,0x62,0x0, +0xe1,0x0,0x11,0x1,0xe7,0x0,0xad,0x0,0x60,0x0,0x15,0x0, +0x12,0x0,0x11,0x0,0xc0,0xff,0x81,0xff,0x74,0xff,0x4e,0xff, +0x47,0xff,0x8f,0xff,0xd2,0xff,0x3,0x0,0x34,0x0,0x3e,0x0, +0x4c,0x0,0x7a,0x0,0x7a,0x0,0x4c,0x0,0x24,0x0,0xf8,0xff, +0xe9,0xff,0xd,0x0,0xc,0x0,0xc7,0xff,0x9d,0xff,0xc0,0xff, +0xe5,0xff,0xd2,0xff,0xcb,0xff,0x0,0x0,0x19,0x0,0xe6,0xff, +0xab,0xff,0x77,0xff,0x46,0xff,0x46,0xff,0x6d,0xff,0x9f,0xff, +0xee,0xff,0x45,0x0,0x82,0x0,0xa0,0x0,0x8d,0x0,0x5e,0x0, +0x32,0x0,0xf5,0xff,0xbe,0xff,0xb2,0xff,0xb3,0xff,0xd1,0xff, +0x1f,0x0,0x5b,0x0,0x81,0x0,0xb1,0x0,0xb5,0x0,0x8b,0x0, +0x71,0x0,0x57,0x0,0x33,0x0,0x2c,0x0,0x23,0x0,0xec,0xff, +0x9a,0xff,0x4c,0xff,0x20,0xff,0x21,0xff,0x37,0xff,0x56,0xff, +0x76,0xff,0x97,0xff,0xd2,0xff,0x1d,0x0,0x58,0x0,0x76,0x0, +0x58,0x0,0x9,0x0,0xda,0xff,0xc0,0xff,0x83,0xff,0x61,0xff, +0x7e,0xff,0x97,0xff,0x9f,0xff,0xb2,0xff,0xbe,0xff,0xc5,0xff, +0xdd,0xff,0xf9,0xff,0x11,0x0,0x2d,0x0,0x3c,0x0,0x35,0x0, +0x35,0x0,0x55,0x0,0x74,0x0,0x58,0x0,0xff,0xff,0xa0,0xff, +0x67,0xff,0x46,0xff,0x2d,0xff,0x31,0xff,0x5c,0xff,0x9e,0xff, +0xea,0xff,0x2a,0x0,0x4c,0x0,0x65,0x0,0x81,0x0,0x9a,0x0, +0xdc,0x0,0x2b,0x1,0x26,0x1,0xfd,0x0,0xf0,0x0,0xa7,0x0, +0x28,0x0,0xe3,0xff,0xb0,0xff,0x69,0xff,0x68,0xff,0xb4,0xff, +0xfa,0xff,0x2a,0x0,0x3c,0x0,0x2d,0x0,0x34,0x0,0x70,0x0, +0xb2,0x0,0xb4,0x0,0x89,0x0,0x85,0x0,0x8e,0x0,0x56,0x0, +0xf,0x0,0xe1,0xff,0xa2,0xff,0x7b,0xff,0x82,0xff,0x77,0xff, +0x87,0xff,0xd8,0xff,0x20,0x0,0x71,0x0,0xde,0x0,0xfc,0x0, +0xd6,0x0,0xc9,0x0,0xa7,0x0,0x6e,0x0,0x5b,0x0,0x20,0x0, +0xa6,0xff,0x66,0xff,0x74,0xff,0x93,0xff,0xd3,0xff,0x2d,0x0, +0x67,0x0,0x6a,0x0,0x3b,0x0,0xf4,0xff,0xbf,0xff,0xa1,0xff, +0xa9,0xff,0xdc,0xff,0xa,0x0,0x15,0x0,0x1a,0x0,0x19,0x0, +0x17,0x0,0x35,0x0,0x59,0x0,0x53,0x0,0x36,0x0,0x10,0x0, +0xd9,0xff,0xb2,0xff,0xaa,0xff,0xa8,0xff,0xbe,0xff,0xfc,0xff, +0x2d,0x0,0x3e,0x0,0x49,0x0,0x3e,0x0,0x2d,0x0,0x52,0x0, +0x9f,0x0,0xbc,0x0,0x91,0x0,0x4d,0x0,0x20,0x0,0x4,0x0, +0xd1,0xff,0x7b,0xff,0x26,0xff,0xf5,0xfe,0xfa,0xfe,0x35,0xff, +0x8c,0xff,0xcf,0xff,0xe8,0xff,0xf0,0xff,0x6,0x0,0x1a,0x0, +0x2d,0x0,0x4c,0x0,0x52,0x0,0x2c,0x0,0x3,0x0,0xdd,0xff, +0xbc,0xff,0xbd,0xff,0xbb,0xff,0x9b,0xff,0x8f,0xff,0x86,0xff, +0x63,0xff,0x6f,0xff,0xa8,0xff,0xbf,0xff,0xdb,0xff,0x17,0x0, +0x38,0x0,0x51,0x0,0x7f,0x0,0x80,0x0,0x48,0x0,0xf8,0xff, +0x91,0xff,0x47,0xff,0x50,0xff,0x87,0xff,0xd9,0xff,0x46,0x0, +0x9a,0x0,0xba,0x0,0xc4,0x0,0xc7,0x0,0xba,0x0,0xaa,0x0, +0xa4,0x0,0x88,0x0,0x22,0x0,0xb6,0xff,0xbe,0xff,0xf6,0xff, +0xd5,0xff,0x9c,0xff,0xa8,0xff,0xb8,0xff,0xb3,0xff,0xdf,0xff, +0x2d,0x0,0x53,0x0,0x46,0x0,0x1d,0x0,0xf4,0xff,0xda,0xff, +0xbc,0xff,0x94,0xff,0x8d,0xff,0xac,0xff,0xca,0xff,0xe8,0xff, +0x10,0x0,0x29,0x0,0x36,0x0,0x52,0x0,0x63,0x0,0x57,0x0, +0x4c,0x0,0x40,0x0,0x29,0x0,0x1e,0x0,0x14,0x0,0xfd,0xff, +0xfc,0xff,0x15,0x0,0x24,0x0,0x36,0x0,0x4c,0x0,0x55,0x0, +0x52,0x0,0x2d,0x0,0xd4,0xff,0x8f,0xff,0x92,0xff,0xc0,0xff, +0xf,0x0,0x6b,0x0,0xa4,0x0,0xbf,0x0,0xc6,0x0,0xae,0x0, +0xa5,0x0,0xcc,0x0,0xf0,0x0,0xea,0x0,0xc7,0x0,0x81,0x0, +0x17,0x0,0xbc,0xff,0x98,0xff,0xa7,0xff,0xd8,0xff,0x16,0x0, +0x36,0x0,0x29,0x0,0x1a,0x0,0x2a,0x0,0x2f,0x0,0x2,0x0, +0xcb,0xff,0xc2,0xff,0xda,0xff,0xe6,0xff,0xdd,0xff,0xd9,0xff, +0xdd,0xff,0xd8,0xff,0xd2,0xff,0xec,0xff,0x25,0x0,0x4a,0x0, +0x4e,0x0,0x69,0x0,0x83,0x0,0x4a,0x0,0xec,0xff,0xcb,0xff, +0xce,0xff,0xe2,0xff,0x1c,0x0,0x4d,0x0,0x57,0x0,0x6a,0x0, +0x87,0x0,0x95,0x0,0x94,0x0,0x6c,0x0,0x2d,0x0,0xa,0x0, +0xfb,0xff,0xfc,0xff,0x1a,0x0,0x33,0x0,0x3c,0x0,0x3e,0x0, +0x28,0x0,0x1f,0x0,0x56,0x0,0x91,0x0,0xae,0x0,0xc0,0x0, +0xaf,0x0,0x7f,0x0,0x55,0x0,0x24,0x0,0xfb,0xff,0xe9,0xff, +0xc3,0xff,0xa0,0xff,0xae,0xff,0xc4,0xff,0xe5,0xff,0x27,0x0, +0x4d,0x0,0x4a,0x0,0x51,0x0,0x48,0x0,0x1f,0x0,0x1,0x0, +0xf0,0xff,0xea,0xff,0xdf,0xff,0xb9,0xff,0xb5,0xff,0xf1,0xff, +0x9,0x0,0xf3,0xff,0x6,0x0,0x2f,0x0,0x43,0x0,0x57,0x0, +0x59,0x0,0x39,0x0,0x2a,0x0,0x35,0x0,0x37,0x0,0x2f,0x0, +0x29,0x0,0x22,0x0,0x35,0x0,0x6b,0x0,0x8f,0x0,0x82,0x0, +0x77,0x0,0x77,0x0,0x51,0x0,0x1c,0x0,0x1b,0x0,0x3a,0x0, +0x3f,0x0,0x2d,0x0,0x1a,0x0,0x13,0x0,0x19,0x0,0x1c,0x0, +0x24,0x0,0x38,0x0,0x41,0x0,0x50,0x0,0x83,0x0,0xa9,0x0, +0x8d,0x0,0x5f,0x0,0x5b,0x0,0x62,0x0,0x46,0x0,0x16,0x0, +0xf9,0xff,0xeb,0xff,0xd9,0xff,0xcf,0xff,0xde,0xff,0x0,0x0, +0x14,0x0,0x8,0x0,0xf6,0xff,0xf2,0xff,0xe2,0xff,0xbe,0xff, +0x96,0xff,0x7a,0xff,0x82,0xff,0x99,0xff,0xa4,0xff,0xcf,0xff, +0x1f,0x0,0x46,0x0,0x3e,0x0,0x3c,0x0,0x41,0x0,0x4a,0x0, +0x56,0x0,0x4d,0x0,0x39,0x0,0x1c,0x0,0xe1,0xff,0xa2,0xff, +0x75,0xff,0x5a,0xff,0x7f,0xff,0xeb,0xff,0x57,0x0,0xae,0x0, +0xe5,0x0,0xe6,0x0,0xd5,0x0,0xb4,0x0,0x72,0x0,0x51,0x0, +0x50,0x0,0x21,0x0,0xf7,0xff,0xfc,0xff,0xec,0xff,0xc8,0xff, +0xb6,0xff,0xa4,0xff,0xaf,0xff,0xcf,0xff,0xcb,0xff,0xdb,0xff, +0x1b,0x0,0x2c,0x0,0xe,0x0,0xfe,0xff,0xe2,0xff,0xc6,0xff, +0xcb,0xff,0xc3,0xff,0xaa,0xff,0xae,0xff,0xce,0xff,0xf7,0xff, +0xc,0x0,0xf5,0xff,0xe3,0xff,0xdb,0xff,0xbc,0xff,0xb5,0xff, +0xbf,0xff,0x93,0xff,0x78,0xff,0xa7,0xff,0xc5,0xff,0xd1,0xff, +0x5,0x0,0x2b,0x0,0x37,0x0,0x4d,0x0,0x4d,0x0,0x45,0x0, +0x65,0x0,0x72,0x0,0x5c,0x0,0x5b,0x0,0x4a,0x0,0xb,0x0, +0xdc,0xff,0xc7,0xff,0xad,0xff,0x93,0xff,0x75,0xff,0x65,0xff, +0x91,0xff,0xdf,0xff,0x2b,0x0,0x86,0x0,0xc9,0x0,0xd0,0x0, +0xb9,0x0,0x84,0x0,0x2f,0x0,0xf7,0xff,0xd8,0xff,0xa2,0xff, +0x73,0xff,0x73,0xff,0x86,0xff,0x9f,0xff,0xbe,0xff,0xc7,0xff, +0xc6,0xff,0xd7,0xff,0xe0,0xff,0xd6,0xff,0xd8,0xff,0xdb,0xff, +0xc1,0xff,0xa1,0xff,0x95,0xff,0x9f,0xff,0xc3,0xff,0xf4,0xff, +0xd,0x0,0xff,0xff,0xdf,0xff,0xbe,0xff,0x9e,0xff,0x89,0xff, +0x96,0xff,0xc3,0xff,0xea,0xff,0xf4,0xff,0xf3,0xff,0x0,0x0, +0x17,0x0,0x16,0x0,0x6,0x0,0x17,0x0,0x41,0x0,0x49,0x0, +0x39,0x0,0x2d,0x0,0xd,0x0,0xe9,0xff,0xe3,0xff,0xd0,0xff, +0xae,0xff,0xaf,0xff,0xb7,0xff,0xb5,0xff,0xdc,0xff,0xd,0x0, +0x11,0x0,0x5,0x0,0xb,0x0,0x1e,0x0,0x39,0x0,0x3d,0x0, +0x39,0x0,0x52,0x0,0x48,0x0,0x3,0x0,0xda,0xff,0xca,0xff, +0xa1,0xff,0x88,0xff,0x77,0xff,0x43,0xff,0x30,0xff,0x62,0xff, +0xa1,0xff,0xd9,0xff,0xf8,0xff,0xe4,0xff,0xd4,0xff,0xf3,0xff, +0x15,0x0,0xd,0x0,0xdd,0xff,0xa3,0xff,0x88,0xff,0x90,0xff, +0xaf,0xff,0xc5,0xff,0xad,0xff,0xa1,0xff,0xd4,0xff,0xfc,0xff, +0xf9,0xff,0xfd,0xff,0xf7,0xff,0xe6,0xff,0xfb,0xff,0xc,0x0, +0xfb,0xff,0x6,0x0,0x21,0x0,0x1c,0x0,0x15,0x0,0x12,0x0, +0xea,0xff,0xa7,0xff,0x7d,0xff,0x8b,0xff,0xbe,0xff,0xf1,0xff, +0x29,0x0,0x50,0x0,0x48,0x0,0x43,0x0,0x4a,0x0,0x2d,0x0, +0xf,0x0,0x6,0x0,0xe3,0xff,0xd1,0xff,0xeb,0xff,0xdd,0xff, +0xbb,0xff,0xc1,0xff,0xbb,0xff,0xa2,0xff,0xa9,0xff,0xab,0xff, +0xa3,0xff,0xb8,0xff,0xcb,0xff,0xc8,0xff,0xc7,0xff,0xb8,0xff, +0xa7,0xff,0xb7,0xff,0xc2,0xff,0xa2,0xff,0x84,0xff,0x8e,0xff, +0xa4,0xff,0xa7,0xff,0xb8,0xff,0xef,0xff,0xf,0x0,0xd,0x0, +0x1b,0x0,0x25,0x0,0x26,0x0,0x4b,0x0,0x56,0x0,0xe,0x0, +0xc4,0xff,0x93,0xff,0x5a,0xff,0x48,0xff,0x67,0xff,0x86,0xff, +0xb0,0xff,0xe4,0xff,0x10,0x0,0x5a,0x0,0xac,0x0,0xc4,0x0, +0xad,0x0,0x7f,0x0,0x34,0x0,0xe8,0xff,0xbc,0xff,0xac,0xff, +0xaa,0xff,0xbb,0xff,0xf1,0xff,0x29,0x0,0x29,0x0,0x16,0x0, +0x21,0x0,0x26,0x0,0x14,0x0,0x0,0x0,0xf3,0xff,0xfd,0xff, +0x9,0x0,0xea,0xff,0xc6,0xff,0xb7,0xff,0x9d,0xff,0x97,0xff, +0xb3,0xff,0xba,0xff,0xc9,0xff,0xf4,0xff,0xf3,0xff,0xd8,0xff, +0xe4,0xff,0xf4,0xff,0xeb,0xff,0xe2,0xff,0xdc,0xff,0xcf,0xff, +0xbc,0xff,0xba,0xff,0xe5,0xff,0xc,0x0,0x8,0x0,0xd,0x0, +0x1c,0x0,0xc,0x0,0xe,0x0,0x2f,0x0,0x2e,0x0,0x11,0x0, +0xb,0x0,0x10,0x0,0xd,0x0,0xff,0xff,0xef,0xff,0xed,0xff, +0xe7,0xff,0xcf,0xff,0xbd,0xff,0xc0,0xff,0xd5,0xff,0xec,0xff, +0xf2,0xff,0x1,0x0,0x25,0x0,0x2b,0x0,0x12,0x0,0xfb,0xff, +0xd5,0xff,0xb3,0xff,0xb1,0xff,0xa6,0xff,0x9f,0xff,0xb8,0xff, +0xb9,0xff,0xac,0xff,0xcc,0xff,0xdd,0xff,0xc1,0xff,0xbb,0xff, +0xc8,0xff,0xd3,0xff,0xef,0xff,0x0,0x0,0xfd,0xff,0x7,0x0, +0x6,0x0,0xf5,0xff,0x9,0x0,0x26,0x0,0x16,0x0,0xf9,0xff, +0xea,0xff,0xc7,0xff,0x8f,0xff,0x76,0xff,0x8c,0xff,0xae,0xff, +0xc3,0xff,0xd1,0xff,0xd7,0xff,0xde,0xff,0xff,0xff,0x29,0x0, +0x4a,0x0,0x7d,0x0,0xb6,0x0,0xcd,0x0,0xce,0x0,0xc3,0x0, +0xa4,0x0,0x8b,0x0,0x70,0x0,0x19,0x0,0x99,0xff,0x2d,0xff, +0xe2,0xfe,0xbe,0xfe,0xde,0xfe,0x3c,0xff,0x93,0xff,0xc6,0xff, +0xd,0x0,0x77,0x0,0xc0,0x0,0xde,0x0,0xe7,0x0,0xb7,0x0, +0x4c,0x0,0xd1,0xff,0x4b,0xff,0xf6,0xfe,0x15,0xff,0x55,0xff, +0x73,0xff,0xa5,0xff,0xcd,0xff,0xba,0xff,0xb9,0xff,0xed,0xff, +0x1c,0x0,0x42,0x0,0x5d,0x0,0x4e,0x0,0x32,0x0,0x17,0x0, +0xec,0xff,0xd6,0xff,0xe2,0xff,0xd3,0xff,0xa6,0xff,0x96,0xff, +0xa2,0xff,0xaa,0xff,0xab,0xff,0xbe,0xff,0xd8,0xff,0xd7,0xff, +0xe8,0xff,0x32,0x0,0x5e,0x0,0x4f,0x0,0x58,0x0,0x5d,0x0, +0x2c,0x0,0x1c,0x0,0x3e,0x0,0x44,0x0,0x39,0x0,0x21,0x0, +0xd9,0xff,0xa7,0xff,0xb8,0xff,0xcb,0xff,0xde,0xff,0xd,0x0, +0x2c,0x0,0x37,0x0,0x54,0x0,0x77,0x0,0x8d,0x0,0x88,0x0, +0x50,0x0,0xf8,0xff,0xb1,0xff,0x8a,0xff,0x73,0xff,0x64,0xff, +0x6c,0xff,0x90,0xff,0xae,0xff,0xc1,0xff,0xe1,0xff,0xf2,0xff, +0xed,0xff,0xfc,0xff,0x17,0x0,0x19,0x0,0x19,0x0,0x1a,0x0, +0xb,0x0,0x6,0x0,0x11,0x0,0x17,0x0,0x28,0x0,0x4d,0x0, +0x61,0x0,0x4d,0x0,0x28,0x0,0x6,0x0,0xdb,0xff,0xb9,0xff, +0xc9,0xff,0xf4,0xff,0xb,0x0,0x15,0x0,0x21,0x0,0x29,0x0, +0x24,0x0,0x9,0x0,0xe8,0xff,0xe9,0xff,0x4,0x0,0x13,0x0, +0x1b,0x0,0x22,0x0,0x2b,0x0,0x35,0x0,0x28,0x0,0x11,0x0, +0xd,0x0,0xff,0xff,0xdc,0xff,0xd4,0xff,0xd0,0xff,0xc2,0xff, +0xd7,0xff,0xfa,0xff,0x4,0x0,0xd,0x0,0x14,0x0,0xf,0x0, +0x4,0x0,0xcf,0xff,0x8e,0xff,0x8c,0xff,0x92,0xff,0x7c,0xff, +0x9c,0xff,0xcb,0xff,0xb7,0xff,0xa1,0xff,0xba,0xff,0xe4,0xff, +0xb,0x0,0xc,0x0,0xfb,0xff,0x18,0x0,0x2f,0x0,0x11,0x0, +0x5,0x0,0xa,0x0,0xe7,0xff,0xc8,0xff,0xc6,0xff,0xc0,0xff, +0xd0,0xff,0xff,0xff,0x19,0x0,0x15,0x0,0x0,0x0,0xcf,0xff, +0xa8,0xff,0xbf,0xff,0xf1,0xff,0x9,0x0,0x17,0x0,0x1e,0x0, +0x2,0x0,0xf2,0xff,0x12,0x0,0x24,0x0,0x1c,0x0,0x28,0x0, +0x2a,0x0,0x1b,0x0,0x1f,0x0,0xfd,0xff,0xaf,0xff,0xa2,0xff, +0xbd,0xff,0xba,0xff,0xd5,0xff,0x0,0x0,0xfc,0xff,0x8,0x0, +0x37,0x0,0x41,0x0,0x3a,0x0,0x2f,0x0,0xa,0x0,0xf2,0xff, +0xf2,0xff,0xe9,0xff,0xe5,0xff,0xe6,0xff,0xd7,0xff,0xc7,0xff, +0xaa,0xff,0x8f,0xff,0xa9,0xff,0xc5,0xff,0xb0,0xff,0xb3,0xff, +0xd3,0xff,0xce,0xff,0xd4,0xff,0xf7,0xff,0xf0,0xff,0xd6,0xff, +0xe7,0xff,0xf6,0xff,0xe5,0xff,0xe8,0xff,0x4,0x0,0x8,0x0, +0xd,0x0,0x35,0x0,0x4b,0x0,0x33,0x0,0x23,0x0,0x28,0x0, +0x19,0x0,0xfd,0xff,0xdd,0xff,0xb8,0xff,0xb8,0xff,0xc6,0xff, +0xa6,0xff,0x8c,0xff,0xa5,0xff,0xb4,0xff,0xb4,0xff,0xcf,0xff, +0xea,0xff,0xf6,0xff,0xa,0x0,0x3,0x0,0xdc,0xff,0xd7,0xff, +0xe8,0xff,0xd0,0xff,0xa1,0xff,0x88,0xff,0x81,0xff,0x8e,0xff, +0xbc,0xff,0xee,0xff,0x3,0x0,0xfb,0xff,0xd9,0xff,0xaf,0xff, +0x94,0xff,0x85,0xff,0x7d,0xff,0x8b,0xff,0xac,0xff,0xe1,0xff, +0x2b,0x0,0x66,0x0,0x8c,0x0,0xb1,0x0,0xae,0x0,0x7c,0x0, +0x60,0x0,0x36,0x0,0xcb,0xff,0x7c,0xff,0x6c,0xff,0x62,0xff, +0x88,0xff,0xde,0xff,0xe5,0xff,0xb6,0xff,0xc2,0xff,0xce,0xff, +0xb1,0xff,0xb6,0xff,0xd6,0xff,0xec,0xff,0x19,0x0,0x3a,0x0, +0x22,0x0,0x16,0x0,0x11,0x0,0xc0,0xff,0x65,0xff,0x5c,0xff, +0x64,0xff,0x67,0xff,0xa7,0xff,0xf4,0xff,0xc,0x0,0x2a,0x0, +0x52,0x0,0x46,0x0,0x29,0x0,0x25,0x0,0xa,0x0,0xca,0xff, +0xa1,0xff,0xa1,0xff,0x91,0xff,0x60,0xff,0x51,0xff,0x7b,0xff, +0x93,0xff,0x8d,0xff,0xa9,0xff,0xd0,0xff,0xc9,0xff,0xc0,0xff, +0xd5,0xff,0xe0,0xff,0xe3,0xff,0xf8,0xff,0x11,0x0,0x23,0x0, +0x36,0x0,0x48,0x0,0x45,0x0,0x2d,0x0,0x1d,0x0,0x17,0x0, +0xfa,0xff,0xdd,0xff,0xe0,0xff,0xec,0xff,0xed,0xff,0xe2,0xff, +0xc3,0xff,0xae,0xff,0xb2,0xff,0xb4,0xff,0xbf,0xff,0xe0,0xff, +0xea,0xff,0xee,0xff,0xc,0x0,0x4,0x0,0xd2,0xff,0xcd,0xff, +0xda,0xff,0xba,0xff,0xa9,0xff,0xd0,0xff,0x0,0x0,0x25,0x0, +0x3f,0x0,0x42,0x0,0x40,0x0,0x3c,0x0,0x1f,0x0,0x12,0x0, +0x32,0x0,0x4f,0x0,0x5b,0x0,0x79,0x0,0x83,0x0,0x59,0x0, +0x37,0x0,0x29,0x0,0xc,0x0,0x1,0x0,0x1a,0x0,0x21,0x0, +0x12,0x0,0x9,0x0,0xf8,0xff,0xdc,0xff,0xc9,0xff,0xc1,0xff, +0xd1,0xff,0xec,0xff,0xfb,0xff,0x11,0x0,0x32,0x0,0x37,0x0, +0x32,0x0,0x42,0x0,0x45,0x0,0x33,0x0,0x27,0x0,0x1e,0x0, +0x11,0x0,0x14,0x0,0x27,0x0,0x31,0x0,0x2a,0x0,0x2b,0x0, +0x3a,0x0,0x36,0x0,0x26,0x0,0x28,0x0,0x18,0x0,0xdb,0xff, +0xa1,0xff,0x8b,0xff,0x9f,0xff,0xcf,0xff,0xea,0xff,0xfc,0xff, +0x2d,0x0,0x45,0x0,0x2d,0x0,0x25,0x0,0x24,0x0,0x14,0x0, +0x1b,0x0,0x21,0x0,0xc,0x0,0xa,0x0,0x11,0x0,0x10,0x0, +0x32,0x0,0x55,0x0,0x50,0x0,0x57,0x0,0x5b,0x0,0x4a,0x0, +0x5c,0x0,0x63,0x0,0x27,0x0,0xe,0x0,0x22,0x0,0xf7,0xff, +0xcd,0xff,0xea,0xff,0xf8,0xff,0xf7,0xff,0x1e,0x0,0x23,0x0, +0xfb,0xff,0xfe,0xff,0x25,0x0,0x3c,0x0,0x51,0x0,0x5b,0x0, +0x4a,0x0,0x3e,0x0,0x33,0x0,0x24,0x0,0x2b,0x0,0x2b,0x0, +0x13,0x0,0x2a,0x0,0x70,0x0,0x88,0x0,0x72,0x0,0x63,0x0, +0x5a,0x0,0x4f,0x0,0x40,0x0,0x14,0x0,0xe4,0xff,0xde,0xff, +0xe8,0xff,0xed,0xff,0xb,0x0,0x32,0x0,0x3e,0x0,0x53,0x0, +0x82,0x0,0x9a,0x0,0x8e,0x0,0x78,0x0,0x49,0x0,0x2,0x0, +0xe7,0xff,0xf0,0xff,0xdd,0xff,0xdc,0xff,0x1f,0x0,0x5a,0x0, +0x6e,0x0,0x8b,0x0,0x8e,0x0,0x5e,0x0,0x3e,0x0,0x3c,0x0, +0x37,0x0,0x31,0x0,0x23,0x0,0xf,0x0,0x16,0x0,0x23,0x0, +0xe,0x0,0xfc,0xff,0x10,0x0,0x34,0x0,0x5e,0x0,0x89,0x0, +0x90,0x0,0x74,0x0,0x5f,0x0,0x58,0x0,0x33,0x0,0xfc,0xff, +0xe9,0xff,0xe1,0xff,0xc8,0xff,0xd9,0xff,0x13,0x0,0x2e,0x0, +0x41,0x0,0x6f,0x0,0x82,0x0,0x6f,0x0,0x68,0x0,0x69,0x0, +0x65,0x0,0x53,0x0,0x19,0x0,0xbd,0xff,0x56,0xff,0x2,0xff, +0xf2,0xfe,0x1d,0xff,0x4a,0xff,0x88,0xff,0x0,0x0,0x9b,0x0, +0x50,0x1,0x1a,0x2,0xa6,0x2,0xb3,0x2,0x4b,0x2,0x85,0x1, +0x83,0x0,0x8a,0xff,0xd9,0xfe,0x99,0xfe,0xc5,0xfe,0x1f,0xff, +0x82,0xff,0xf4,0xff,0x56,0x0,0x78,0x0,0x6b,0x0,0x5a,0x0, +0x3b,0x0,0xa,0x0,0xfa,0xff,0x14,0x0,0x24,0x0,0x1e,0x0, +0x8,0x0,0xd0,0xff,0x88,0xff,0x68,0xff,0x71,0xff,0x89,0xff, +0xbb,0xff,0xfc,0xff,0x38,0x0,0x88,0x0,0xdd,0x0,0xdb,0x0, +0x92,0x0,0x75,0x0,0x73,0x0,0x4e,0x0,0x39,0x0,0x3e,0x0, +0x1d,0x0,0xf4,0xff,0xea,0xff,0xdd,0xff,0xc9,0xff,0xb7,0xff, +0xa9,0xff,0xc0,0xff,0xdc,0xff,0xca,0xff,0xc9,0xff,0xe4,0xff, +0xd4,0xff,0xdc,0xff,0x27,0x0,0x5b,0x0,0x79,0x0,0xa6,0x0, +0xbb,0x0,0xd4,0x0,0xec,0x0,0xaa,0x0,0x3a,0x0,0xf7,0xff, +0xcc,0xff,0xcd,0xff,0xfd,0xff,0xff,0xff,0xf3,0xff,0xe,0x0, +0x6,0x0,0xea,0xff,0xa,0x0,0x27,0x0,0x2c,0x0,0x51,0x0, +0x67,0x0,0x48,0x0,0x23,0x0,0xf9,0xff,0xc4,0xff,0x9c,0xff, +0x7c,0xff,0x74,0xff,0x94,0xff,0xb3,0xff,0xc8,0xff,0xe6,0xff, +0xec,0xff,0xe7,0xff,0xb,0x0,0x39,0x0,0x4e,0x0,0x5a,0x0, +0x54,0x0,0x34,0x0,0x15,0x0,0x0,0x0,0xf5,0xff,0x5,0x0, +0x2e,0x0,0x5f,0x0,0x88,0x0,0x8c,0x0,0x6b,0x0,0x3a,0x0, +0xef,0xff,0x90,0xff,0x55,0xff,0x6a,0xff,0xc5,0xff,0x2e,0x0, +0x5e,0x0,0x54,0x0,0x54,0x0,0x74,0x0,0x83,0x0,0x5c,0x0, +0x1b,0x0,0x4,0x0,0x22,0x0,0x2f,0x0,0x1d,0x0,0x16,0x0, +0xd,0x0,0xf4,0xff,0xf0,0xff,0xfe,0xff,0xa,0x0,0x2b,0x0, +0x43,0x0,0x32,0x0,0x2a,0x0,0x2e,0x0,0x8,0x0,0xda,0xff, +0xd0,0xff,0xbd,0xff,0xae,0xff,0xc5,0xff,0xda,0xff,0xe4,0xff, +0xf9,0xff,0xe7,0xff,0xba,0xff,0xd8,0xff,0x29,0x0,0x46,0x0, +0x38,0x0,0x2c,0x0,0x1f,0x0,0xa,0x0,0xe6,0xff,0xb9,0xff, +0xa7,0xff,0xbb,0xff,0xe4,0xff,0xb,0x0,0x25,0x0,0x35,0x0, +0x49,0x0,0x6d,0x0,0x80,0x0,0x5c,0x0,0x35,0x0,0x4f,0x0, +0x77,0x0,0x6e,0x0,0x39,0x0,0xee,0xff,0xb4,0xff,0x9c,0xff, +0x8f,0xff,0x96,0xff,0xce,0xff,0x20,0x0,0x51,0x0,0x55,0x0, +0x66,0x0,0x8a,0x0,0x87,0x0,0x78,0x0,0x79,0x0,0x4c,0x0, +0x17,0x0,0x16,0x0,0xd,0x0,0xf0,0xff,0xe9,0xff,0xdb,0xff, +0xc8,0xff,0xcc,0xff,0xdb,0xff,0xfa,0xff,0x31,0x0,0x6c,0x0, +0x8d,0x0,0x79,0x0,0x3c,0x0,0xf9,0xff,0xba,0xff,0x82,0xff, +0x3a,0xff,0xf6,0xfe,0xf7,0xfe,0x3b,0xff,0xaa,0xff,0x46,0x0, +0xc6,0x0,0xb,0x1,0x21,0x1,0xf1,0x0,0xc0,0x0,0xac,0x0, +0x57,0x0,0xfc,0xff,0xd9,0xff,0x8c,0xff,0x36,0xff,0x22,0xff, +0x1d,0xff,0x3c,0xff,0x8f,0xff,0xcd,0xff,0x0,0x0,0x34,0x0, +0x5f,0x0,0xa4,0x0,0xe1,0x0,0xf8,0x0,0xd,0x1,0xfd,0x0, +0xc5,0x0,0x99,0x0,0x7c,0x0,0x86,0x0,0xad,0x0,0x9c,0x0, +0x74,0x0,0x8d,0x0,0xc6,0x0,0xc5,0x0,0x41,0x0,0x40,0xff, +0x26,0xfe,0x37,0xfd,0x81,0xfc,0xf5,0xfb,0x9a,0xfb,0xca,0xfb, +0xcc,0xfc,0x72,0xfe,0x22,0x0,0x20,0x1,0x9f,0x1,0x88,0x2, +0xde,0x3,0xe4,0x4,0x0,0x5,0xc0,0x3,0x86,0x1,0x69,0xff, +0xd,0xfe,0xb4,0xfd,0x2a,0xfe,0xd7,0xfe,0x9b,0xff,0x52,0x0, +0x7f,0x0,0x41,0x0,0xf0,0xff,0xaf,0xff,0xd3,0xff,0x47,0x0, +0x85,0x0,0x58,0x0,0xcb,0xff,0x53,0xff,0x62,0xff,0x71,0xff, +0x14,0xff,0x96,0xfe,0x2a,0xfe,0x28,0xfe,0xe5,0xfe,0xdc,0xff, +0x7c,0x0,0xbd,0x0,0xa7,0x0,0x84,0x0,0xa2,0x0,0xda,0x0, +0xed,0x0,0xd4,0x0,0xb1,0x0,0xa5,0x0,0x93,0x0,0x6b,0x0, +0x34,0x0,0xf1,0xff,0xce,0xff,0xd1,0xff,0x9f,0xff,0x1e,0xff, +0x6c,0xfe,0xb2,0xfd,0x43,0xfd,0x44,0xfd,0x87,0xfd,0xf3,0xfd, +0xab,0xfe,0xbb,0xff,0xbc,0x0,0x2c,0x1,0x23,0x1,0xcf,0x0, +0x29,0x0,0x8d,0xff,0x2a,0xff,0xc9,0xfe,0xbf,0xfe,0x60,0xff, +0x4b,0x0,0x1d,0x1,0x86,0x1,0x64,0x1,0x0,0x1,0x82,0x0, +0xf,0x0,0xee,0xff,0xe2,0xff,0xa9,0xff,0x81,0xff,0x71,0xff, +0x63,0xff,0x5d,0xff,0x42,0xff,0x3a,0xff,0x60,0xff,0x6b,0xff, +0x69,0xff,0x7a,0xff,0x75,0xff,0x8e,0xff,0xdc,0xff,0xfe,0xff, +0xf1,0xff,0xcb,0xff,0x86,0xff,0x7d,0xff,0xc4,0xff,0xf7,0xff, +0x2,0x0,0xff,0xff,0xb,0x0,0x4a,0x0,0x95,0x0,0xc1,0x0, +0xd8,0x0,0xbb,0x0,0x60,0x0,0xeb,0xff,0x71,0xff,0x1d,0xff, +0x1e,0xff,0x75,0xff,0xfc,0xff,0x55,0x0,0x4a,0x0,0x12,0x0, +0xe0,0xff,0xd8,0xff,0xff,0xff,0xb,0x0,0xd6,0xff,0x99,0xff, +0x78,0xff,0x67,0xff,0x68,0xff,0x85,0xff,0xa9,0xff,0xad,0xff, +0xb8,0xff,0xf9,0xff,0x36,0x0,0x73,0x0,0xde,0x0,0x22,0x1, +0x27,0x1,0x17,0x1,0xbc,0x0,0x3d,0x0,0x6,0x0,0xf9,0xff, +0xef,0xff,0xea,0xff,0xbc,0xff,0x72,0xff,0x3d,0xff,0x36,0xff, +0x6c,0xff,0xa4,0xff,0xb7,0xff,0xdb,0xff,0xf2,0xff,0xe3,0xff, +0xef,0xff,0xf2,0xff,0xc1,0xff,0xa3,0xff,0xac,0xff,0xcf,0xff, +0x17,0x0,0x56,0x0,0x6f,0x0,0x6e,0x0,0x56,0x0,0x40,0x0, +0x3f,0x0,0x37,0x0,0x1a,0x0,0xe1,0xff,0xaf,0xff,0xb4,0xff, +0xb7,0xff,0x98,0xff,0xae,0xff,0x1b,0x0,0xac,0x0,0x2a,0x1, +0x57,0x1,0x1f,0x1,0xb0,0x0,0x46,0x0,0x2,0x0,0xce,0xff, +0x98,0xff,0x73,0xff,0x4e,0xff,0x4a,0xff,0xa2,0xff,0xb,0x0, +0x55,0x0,0xc6,0x0,0x38,0x1,0x46,0x1,0xf6,0x0,0x7a,0x0, +0x3,0x0,0xaa,0xff,0x7a,0xff,0x8d,0xff,0xba,0xff,0xd5,0xff, +0x6,0x0,0x28,0x0,0x18,0x0,0x2b,0x0,0x52,0x0,0x5d,0x0, +0x76,0x0,0x52,0x0,0xcf,0xff,0x76,0xff,0x4d,0xff,0xe,0xff, +0x1,0xff,0x5a,0xff,0x15,0x0,0xfe,0x0,0x7e,0x1,0x61,0x1, +0xfb,0x0,0x88,0x0,0x40,0x0,0x31,0x0,0x20,0x0,0xf9,0xff, +0xc0,0xff,0x80,0xff,0x4e,0xff,0x15,0xff,0xce,0xfe,0x7b,0xfe, +0xf7,0xfd,0x5a,0xfd,0xb6,0xfc,0xec,0xfb,0x3d,0xfb,0xe8,0xfa, +0x0,0xfb,0xe8,0xfb,0x94,0xfd,0x63,0xff,0x14,0x1,0xa4,0x2, +0x19,0x4,0xb1,0x5,0x28,0x7,0x98,0x7,0x32,0x6,0x21,0x3, +0xed,0xff,0x4,0xfe,0x69,0xfd,0xb1,0xfd,0x6a,0xfe,0xf,0xff, +0xc2,0xff,0xaa,0x0,0x37,0x1,0x39,0x1,0x3c,0x1,0xb1,0x1, +0x64,0x2,0x9e,0x2,0xf1,0x1,0xbd,0x0,0xc5,0xff,0x8c,0xff, +0x9b,0xff,0xc,0xff,0xe3,0xfd,0xc0,0xfc,0x50,0xfc,0x11,0xfd, +0x69,0xfe,0x55,0xff,0xad,0xff,0x8c,0xff,0x40,0xff,0x6c,0xff, +0xf2,0xff,0x55,0x0,0x91,0x0,0x8c,0x0,0x42,0x0,0xfa,0xff, +0xca,0xff,0xc3,0xff,0xf0,0xff,0x25,0x0,0x33,0x0,0xe8,0xff, +0x44,0xff,0xa0,0xfe,0x20,0xfe,0xd6,0xfd,0xd9,0xfd,0xf6,0xfd, +0x26,0xfe,0x81,0xfe,0x4,0xff,0xeb,0xff,0xfe,0x0,0x6e,0x1, +0x1c,0x1,0x79,0x0,0xed,0xff,0xc9,0xff,0x0,0x0,0x6e,0x0, +0x17,0x1,0xaf,0x1,0xf0,0x1,0xd6,0x1,0x60,0x1,0xd0,0x0, +0x6d,0x0,0x46,0x0,0x76,0x0,0xd5,0x0,0x35,0x1,0xa4,0x1, +0xd8,0x1,0x83,0x1,0xd3,0x0,0xff,0xff,0x42,0xff,0xa7,0xfe, +0xf6,0xfd,0x6a,0xfd,0x47,0xfd,0x7f,0xfd,0x2f,0xfe,0x14,0xff, +0xbe,0xff,0x54,0x0,0xc1,0x0,0xc7,0x0,0xaa,0x0,0x6f,0x0, +0xf9,0xff,0x9b,0xff,0x7c,0xff,0x8b,0xff,0xc0,0xff,0xfd,0xff, +0x54,0x0,0xbf,0x0,0xe3,0x0,0xa6,0x0,0x24,0x0,0x8a,0xff, +0x30,0xff,0x42,0xff,0xa5,0xff,0x13,0x0,0x4a,0x0,0x63,0x0, +0x79,0x0,0x7a,0x0,0x6a,0x0,0x2d,0x0,0xc8,0xff,0x98,0xff, +0x96,0xff,0x91,0xff,0xae,0xff,0xf2,0xff,0x6a,0x0,0x4,0x1, +0x5e,0x1,0x83,0x1,0xa2,0x1,0xa6,0x1,0xdc,0x1,0x48,0x2, +0x55,0x2,0xff,0x1,0x7d,0x1,0xce,0x0,0x43,0x0,0xf9,0xff, +0xc2,0xff,0xa4,0xff,0x78,0xff,0x27,0xff,0xee,0xfe,0xd7,0xfe, +0xd9,0xfe,0xfc,0xfe,0x1f,0xff,0x5d,0xff,0xbf,0xff,0xf3,0xff, +0xf0,0xff,0xd8,0xff,0xa2,0xff,0x6c,0xff,0x43,0xff,0x18,0xff, +0xb,0xff,0x3e,0xff,0xaa,0xff,0x17,0x0,0x54,0x0,0x7d,0x0, +0xa8,0x0,0xdf,0x0,0x42,0x1,0x95,0x1,0x8c,0x1,0x57,0x1, +0xb,0x1,0xb3,0x0,0x6c,0x0,0x10,0x0,0xb6,0xff,0xa1,0xff, +0xba,0xff,0x4,0x0,0x66,0x0,0x6f,0x0,0x31,0x0,0xee,0xff, +0xc5,0xff,0x5,0x0,0x77,0x0,0xb8,0x0,0xf6,0x0,0x26,0x1, +0x23,0x1,0x25,0x1,0xa,0x1,0xc5,0x0,0xae,0x0,0xaf,0x0, +0xab,0x0,0x9e,0x0,0x45,0x0,0xcb,0xff,0x88,0xff,0x51,0xff, +0x28,0xff,0x3b,0xff,0x70,0xff,0xac,0xff,0xe3,0xff,0x7,0x0, +0x0,0x0,0xc4,0xff,0x96,0xff,0xa9,0xff,0xba,0xff,0xa3,0xff, +0x80,0xff,0x68,0xff,0x78,0xff,0xb8,0xff,0x9,0x0,0x4a,0x0, +0x65,0x0,0x69,0x0,0x4d,0x0,0xfb,0xff,0xa7,0xff,0x7e,0xff, +0x8a,0xff,0xf1,0xff,0x88,0x0,0xf3,0x0,0x18,0x1,0xfb,0x0, +0xbf,0x0,0x71,0x0,0xef,0xff,0x89,0xff,0x94,0xff,0xe7,0xff, +0x7d,0x0,0x24,0x1,0x75,0x1,0xae,0x1,0x1b,0x2,0x9a,0x2, +0x1a,0x3,0x4e,0x3,0xee,0x2,0x37,0x2,0x50,0x1,0x4d,0x0, +0x48,0xff,0x20,0xfe,0xe5,0xfc,0xd0,0xfb,0xf2,0xfa,0x73,0xfa, +0x44,0xfa,0x53,0xfa,0xd,0xfb,0x7d,0xfc,0x3c,0xfe,0xf7,0xff, +0x22,0x1,0xa7,0x1,0x3d,0x2,0x40,0x3,0x7c,0x4,0x46,0x5, +0x80,0x4,0x2c,0x2,0xad,0xff,0x2e,0xfe,0x11,0xfe,0xdc,0xfe, +0xb1,0xff,0x58,0x0,0xe5,0x0,0x44,0x1,0x94,0x1,0xa9,0x1, +0x57,0x1,0x1b,0x1,0x17,0x1,0xcb,0x0,0xe,0x0,0x9,0xff, +0x27,0xfe,0xf0,0xfd,0x25,0xfe,0x9,0xfe,0x88,0xfd,0x2b,0xfd, +0x7c,0xfd,0xb4,0xfe,0x72,0x0,0xd1,0x1,0x50,0x2,0x41,0x2, +0x11,0x2,0xef,0x1,0xf4,0x1,0xe3,0x1,0x6e,0x1,0xd1,0x0, +0x62,0x0,0x23,0x0,0x6,0x0,0xde,0xff,0x8b,0xff,0x57,0xff, +0x63,0xff,0x6f,0xff,0x6a,0xff,0x48,0xff,0xef,0xfe,0xa3,0xfe, +0x94,0xfe,0x9d,0xfe,0xaa,0xfe,0xca,0xfe,0x1c,0xff,0xbe,0xff, +0x75,0x0,0xdd,0x0,0xd0,0x0,0x65,0x0,0xe2,0xff,0x76,0xff, +0x1f,0xff,0xf6,0xfe,0xa,0xff,0x57,0xff,0xe0,0xff,0x6f,0x0, +0xf6,0x0,0x8a,0x1,0xe4,0x1,0x15,0x2,0x69,0x2,0x8f,0x2, +0x7f,0x2,0x70,0x2,0x5,0x2,0x41,0x1,0x67,0x0,0x88,0xff, +0xe,0xff,0xdd,0xfe,0x59,0xfe,0xd5,0xfd,0x8d,0xfd,0x6a,0xfd, +0xe0,0xfd,0xcc,0xfe,0xab,0xff,0x71,0x0,0xd3,0x0,0xdd,0x0, +0xeb,0x0,0xbd,0x0,0x7d,0x0,0x6d,0x0,0x1f,0x0,0xcc,0xff, +0xdc,0xff,0x9,0x0,0x53,0x0,0xa1,0x0,0x9b,0x0,0x56,0x0, +0xe7,0xff,0x73,0xff,0x42,0xff,0x2f,0xff,0x5a,0xff,0xc4,0xff, +0xe9,0xff,0xec,0xff,0xb,0x0,0x6,0x0,0x9,0x0,0xf2,0xff, +0x6d,0xff,0x3,0xff,0xe7,0xfe,0xd6,0xfe,0xf4,0xfe,0x25,0xff, +0x52,0xff,0x9d,0xff,0xcd,0xff,0x7,0x0,0x87,0x0,0x2,0x1, +0x74,0x1,0xd6,0x1,0xd6,0x1,0x94,0x1,0x3f,0x1,0xec,0x0, +0xd3,0x0,0xbd,0x0,0x85,0x0,0x5d,0x0,0x31,0x0,0xf7,0xff, +0x9f,0xff,0x20,0xff,0xc,0xff,0x89,0xff,0x10,0x0,0x8a,0x0, +0xc2,0x0,0x6c,0x0,0xf7,0xff,0xa7,0xff,0x6b,0xff,0x62,0xff, +0x69,0xff,0x5e,0xff,0x65,0xff,0x77,0xff,0x8b,0xff,0xa1,0xff, +0xb7,0xff,0xe5,0xff,0x13,0x0,0x24,0x0,0x23,0x0,0x14,0x0, +0x21,0x0,0x49,0x0,0x46,0x0,0x44,0x0,0x76,0x0,0x8d,0x0, +0x66,0x0,0x1d,0x0,0xb7,0xff,0x72,0xff,0x80,0xff,0x77,0xff, +0x35,0xff,0x1a,0xff,0x11,0xff,0xfc,0xfe,0x26,0xff,0x70,0xff, +0x99,0xff,0xc0,0xff,0xde,0xff,0xe4,0xff,0xdb,0xff,0xd3,0xff, +0xc,0x0,0x6b,0x0,0xb2,0x0,0xf8,0x0,0x18,0x1,0xee,0x0, +0xb2,0x0,0x75,0x0,0x36,0x0,0x2,0x0,0xe2,0xff,0xec,0xff, +0x14,0x0,0x58,0x0,0xd0,0x0,0x47,0x1,0x61,0x1,0x1c,0x1, +0xc4,0x0,0x63,0x0,0xe6,0xff,0x64,0xff,0xc2,0xfe,0x4a,0xfe, +0xa2,0xfe,0x74,0xff,0x55,0x0,0x49,0x1,0xcc,0x1,0xe9,0x1, +0xf2,0x1,0x7f,0x1,0xe1,0x0,0x61,0x0,0xae,0xff,0x3d,0xff, +0x24,0xff,0x11,0xff,0x2b,0xff,0x1f,0xff,0xe3,0xfe,0xed,0xfe, +0x9,0xff,0x2b,0xff,0x3e,0xff,0x5,0xff,0xdc,0xfe,0x83,0xfe, +0x98,0xfd,0x7a,0xfc,0x3c,0xfb,0x1a,0xfa,0x70,0xf9,0x44,0xf9, +0x2,0xfa,0xa1,0xfb,0xa5,0xfd,0xba,0xff,0x20,0x1,0xfe,0x1, +0x5f,0x3,0x51,0x5,0x63,0x7,0x86,0x8,0x58,0x7,0x58,0x4, +0x32,0x1,0xb,0xff,0x50,0xfe,0x85,0xfe,0x30,0xff,0x21,0x0, +0x10,0x1,0xf3,0x1,0x80,0x2,0x74,0x2,0x60,0x2,0x97,0x2, +0xc4,0x2,0x61,0x2,0x28,0x1,0xbd,0xff,0xd0,0xfe,0x32,0xfe, +0x79,0xfd,0x5f,0xfc,0x24,0xfb,0xa4,0xfa,0x84,0xfb,0x87,0xfd, +0x8f,0xff,0xc1,0x0,0xb,0x1,0xd5,0x0,0xb,0x1,0xd4,0x1, +0x6c,0x2,0x82,0x2,0xca,0x1,0x97,0x0,0xe6,0xff,0x34,0xff, +0x5a,0xfe,0x44,0xfe,0x6c,0xfe,0xb8,0xfe,0x99,0xff,0x2,0x0, +0xb7,0xff,0x25,0xff,0x19,0xfe,0x63,0xfd,0x45,0xfd,0xe4,0xfc, +0xa0,0xfc,0xff,0xfc,0xe8,0xfd,0x42,0xff,0x6e,0x0,0xd,0x1, +0x60,0x1,0x7a,0x1,0x81,0x1,0xa4,0x1,0xe3,0x1,0x24,0x2, +0x56,0x2,0x92,0x2,0xbc,0x2,0xa0,0x2,0x58,0x2,0xd5,0x1, +0x30,0x1,0xd8,0x0,0xd6,0x0,0x8,0x1,0x71,0x1,0xe3,0x1, +0xea,0x1,0x5a,0x1,0xa6,0x0,0x19,0x0,0xaa,0xff,0x72,0xff, +0x10,0xff,0x60,0xfe,0xdb,0xfd,0x57,0xfd,0xf3,0xfc,0x36,0xfd, +0xad,0xfd,0x1c,0xfe,0xb2,0xfe,0x1e,0xff,0x75,0xff,0xcf,0xff, +0xf5,0xff,0x6,0x0,0xfa,0xff,0xf8,0xff,0x4e,0x0,0xa2,0x0, +0xea,0x0,0x3c,0x1,0x28,0x1,0xdd,0x0,0x8a,0x0,0x2,0x0, +0xc2,0xff,0xe4,0xff,0x12,0x0,0x61,0x0,0x7e,0x0,0x4a,0x0, +0x4b,0x0,0x3b,0x0,0xec,0xff,0xd5,0xff,0xa3,0xff,0x3a,0xff, +0x36,0xff,0x66,0xff,0xb4,0xff,0x77,0x0,0x2b,0x1,0x99,0x1, +0x16,0x2,0x4b,0x2,0x57,0x2,0xb0,0x2,0xe5,0x2,0xd5,0x2, +0xbb,0x2,0x68,0x2,0x7,0x2,0xca,0x1,0x63,0x1,0xc9,0x0, +0x9,0x0,0x39,0xff,0xbc,0xfe,0x9f,0xfe,0xa0,0xfe,0xa5,0xfe, +0xaf,0xfe,0xd5,0xfe,0xfd,0xfe,0x3,0xff,0x18,0xff,0x18,0xff, +0xe6,0xfe,0xf8,0xfe,0x32,0xff,0x12,0xff,0xce,0xfe,0xa3,0xfe, +0x94,0xfe,0xcb,0xfe,0x2c,0xff,0x81,0xff,0xc8,0xff,0xfa,0xff, +0x24,0x0,0x65,0x0,0xc6,0x0,0x29,0x1,0x3f,0x1,0x24,0x1, +0x41,0x1,0x6c,0x1,0x5f,0x1,0x2d,0x1,0xdb,0x0,0x8b,0x0, +0x69,0x0,0x4e,0x0,0x1c,0x0,0xda,0xff,0xbb,0xff,0xf5,0xff, +0x2b,0x0,0x29,0x0,0x4e,0x0,0x88,0x0,0x9a,0x0,0xb2,0x0, +0xc1,0x0,0xae,0x0,0xad,0x0,0xac,0x0,0x9a,0x0,0x9c,0x0, +0x98,0x0,0x8e,0x0,0xb5,0x0,0xe7,0x0,0xdd,0x0,0xc0,0x0, +0xd1,0x0,0xef,0x0,0x1,0x1,0x21,0x1,0x17,0x1,0xb1,0x0, +0x25,0x0,0x97,0xff,0x13,0xff,0xbc,0xfe,0x9a,0xfe,0xb2,0xfe, +0xf4,0xfe,0x46,0xff,0x9d,0xff,0xab,0xff,0x4f,0xff,0xce,0xfe, +0x23,0xfe,0x93,0xfd,0xa6,0xfd,0x2,0xfe,0x74,0xfe,0x23,0xff, +0x80,0xff,0x94,0xff,0x6,0x0,0x97,0x0,0x2b,0x1,0xf1,0x1, +0x78,0x2,0xc6,0x2,0x2b,0x3,0x66,0x3,0x5e,0x3,0x16,0x3, +0x93,0x2,0x30,0x2,0xe2,0x1,0x5d,0x1,0x9c,0x0,0xa6,0xff, +0xe6,0xfe,0xad,0xfe,0x88,0xfe,0x4d,0xfe,0xb,0xfe,0x84,0xfd, +0xe1,0xfc,0x35,0xfc,0x62,0xfb,0xb9,0xfa,0x46,0xfa,0x4f,0xfa, +0x80,0xfb,0x52,0xfd,0x1b,0xff,0xef,0x0,0x2c,0x2,0xa5,0x2, +0x5a,0x3,0x73,0x4,0x87,0x5,0xc,0x6,0xd3,0x4,0xa,0x2, +0x80,0xff,0x20,0xfe,0xeb,0xfd,0xa4,0xfe,0x95,0xff,0x72,0x0, +0x4e,0x1,0xd8,0x1,0xd3,0x1,0x60,0x1,0xd2,0x0,0xc5,0x0, +0x3e,0x1,0x46,0x1,0x35,0x0,0x85,0xfe,0x2f,0xfd,0xae,0xfc, +0x97,0xfc,0x3d,0xfc,0xcc,0xfb,0x12,0xfc,0x61,0xfd,0x72,0xff, +0xa4,0x1,0xb,0x3,0x5f,0x3,0x34,0x3,0xe3,0x2,0x8f,0x2, +0x6b,0x2,0x24,0x2,0x92,0x1,0x26,0x1,0xd9,0x0,0x59,0x0, +0xef,0xff,0xc6,0xff,0x7e,0xff,0xe1,0xfe,0x34,0xfe,0xbf,0xfd, +0x56,0xfd,0xdc,0xfc,0x90,0xfc,0x73,0xfc,0x7b,0xfc,0xd3,0xfc, +0x66,0xfd,0x66,0xfe,0xef,0xff,0x4e,0x1,0x35,0x2,0x85,0x2, +0xbe,0x1,0x8e,0x0,0xc0,0xff,0x22,0xff,0x1e,0xff,0xa3,0xff, +0xf1,0xff,0x82,0x0,0x4a,0x1,0x8f,0x1,0xc9,0x1,0xdd,0x1, +0x6c,0x1,0x3a,0x1,0x2c,0x1,0xee,0x0,0xef,0x0,0xcb,0x0, +0x2f,0x0,0x73,0xff,0x80,0xfe,0xb7,0xfd,0xb2,0xfd,0x1b,0xfe, +0x81,0xfe,0xca,0xfe,0xf0,0xfe,0xfa,0xfe,0xf1,0xfe,0x28,0xff, +0xb5,0xff,0x1e,0x0,0x5f,0x0,0xc2,0x0,0x15,0x1,0x9,0x1, +0xb7,0x0,0x76,0x0,0x5c,0x0,0x47,0x0,0x30,0x0,0xf,0x0, +0xfe,0xff,0xfd,0xff,0xd5,0xff,0xa9,0xff,0x94,0xff,0x68,0xff, +0x54,0xff,0x71,0xff,0x85,0xff,0x98,0xff,0xc2,0xff,0x1b,0x0, +0x87,0x0,0x9b,0x0,0x3e,0x0,0x79,0xff,0x89,0xfe,0x7,0xfe, +0xf0,0xfd,0x1d,0xfe,0xc3,0xfe,0x78,0xff,0xf8,0xff,0x74,0x0, +0xb3,0x0,0xf2,0x0,0x82,0x1,0xff,0x1,0x47,0x2,0x65,0x2, +0x3c,0x2,0xe2,0x1,0x41,0x1,0x7c,0x0,0x4,0x0,0xd3,0xff, +0xbc,0xff,0x8b,0xff,0x1d,0xff,0xc9,0xfe,0x9f,0xfe,0x96,0xfe, +0xe0,0xfe,0x44,0xff,0x98,0xff,0xf5,0xff,0x25,0x0,0x2c,0x0, +0x1c,0x0,0xd1,0xff,0x64,0xff,0xe6,0xfe,0x6f,0xfe,0x36,0xfe, +0x49,0xfe,0xde,0xfe,0xc3,0xff,0x49,0x0,0x67,0x0,0x2e,0x0, +0xc0,0xff,0xbb,0xff,0xfe,0xff,0x16,0x0,0x26,0x0,0x16,0x0, +0xef,0xff,0xec,0xff,0xdd,0xff,0xc5,0xff,0xbf,0xff,0xb5,0xff, +0xbe,0xff,0xb7,0xff,0x9a,0xff,0xba,0xff,0xf1,0xff,0xf8,0xff, +0xd4,0xff,0xa2,0xff,0x99,0xff,0xba,0xff,0x0,0x0,0x77,0x0, +0xe8,0x0,0x48,0x1,0x83,0x1,0x69,0x1,0x5b,0x1,0x6d,0x1, +0x5b,0x1,0x63,0x1,0x67,0x1,0x32,0x1,0x10,0x1,0xcf,0x0, +0x50,0x0,0xa,0x0,0xee,0xff,0xc7,0xff,0xb0,0xff,0xb6,0xff, +0xdb,0xff,0xf1,0xff,0xdd,0xff,0xd8,0xff,0xd9,0xff,0xad,0xff, +0x61,0xff,0x29,0xff,0x21,0xff,0x16,0xff,0x7,0xff,0x23,0xff, +0x48,0xff,0x7b,0xff,0xcb,0xff,0xf4,0xff,0x8,0x0,0x2c,0x0, +0x3f,0x0,0x5c,0x0,0x77,0x0,0x4f,0x0,0x16,0x0,0xfa,0xff, +0xe7,0xff,0xcd,0xff,0x9d,0xff,0x68,0xff,0x29,0xff,0xc7,0xfe, +0x78,0xfe,0x4c,0xfe,0xf0,0xfd,0x41,0xfd,0x61,0xfc,0x76,0xfb, +0xb5,0xfa,0x64,0xfa,0xbd,0xfa,0xc4,0xfb,0x3f,0xfd,0xf7,0xfe, +0xae,0x0,0x22,0x2,0x4a,0x3,0x6f,0x4,0xab,0x5,0x87,0x6, +0x47,0x6,0x93,0x4,0xf4,0x1,0x9a,0xff,0x66,0xfe,0x77,0xfe, +0x64,0xff,0x60,0x0,0xea,0x0,0x3a,0x1,0x83,0x1,0xb8,0x1, +0xd9,0x1,0xe5,0x1,0xed,0x1,0xfa,0x1,0xa2,0x1,0xa6,0x0, +0x77,0xff,0x83,0xfe,0xe3,0xfd,0x75,0xfd,0xd5,0xfc,0x9,0xfc, +0xa5,0xfb,0xef,0xfb,0xcd,0xfc,0x3,0xfe,0xc,0xff,0xb0,0xff, +0x2c,0x0,0x92,0x0,0x8,0x1,0xac,0x1,0xda,0x1,0x36,0x1, +0x7a,0x0,0xd,0x0,0xa3,0xff,0x41,0xff,0xb,0xff,0xeb,0xfe, +0xe8,0xfe,0x1,0xff,0x4,0xff,0xe3,0xfe,0xac,0xfe,0x6d,0xfe, +0x34,0xfe,0xfc,0xfd,0xd6,0xfd,0xfa,0xfd,0x72,0xfe,0x27,0xff, +0xd,0x0,0xf1,0x0,0x8c,0x1,0xb0,0x1,0x44,0x1,0x86,0x0, +0x2,0x0,0xec,0xff,0xc,0x0,0x58,0x0,0xd0,0x0,0x3d,0x1, +0x8e,0x1,0xdb,0x1,0x3,0x2,0xf5,0x1,0xf4,0x1,0x18,0x2, +0x1b,0x2,0xcf,0x1,0x49,0x1,0x92,0x0,0xb9,0xff,0xfd,0xfe, +0x9d,0xfe,0x8d,0xfe,0x9c,0xfe,0x9f,0xfe,0x7b,0xfe,0x3c,0xfe, +0xd,0xfe,0x12,0xfe,0x4e,0xfe,0x8f,0xfe,0xa4,0xfe,0xb3,0xfe, +0xf2,0xfe,0x45,0xff,0x80,0xff,0x92,0xff,0x76,0xff,0x6b,0xff, +0xb1,0xff,0xc,0x0,0x55,0x0,0xc6,0x0,0x46,0x1,0x96,0x1, +0xcf,0x1,0xd2,0x1,0x50,0x1,0x9e,0x0,0x43,0x0,0x35,0x0, +0x26,0x0,0x3,0x0,0xce,0xff,0xa1,0xff,0xb0,0xff,0xf0,0xff, +0xb,0x0,0xf0,0xff,0xd1,0xff,0xae,0xff,0x92,0xff,0xad,0xff, +0xd8,0xff,0xd8,0xff,0xde,0xff,0x17,0x0,0x6d,0x0,0xd5,0x0, +0x3e,0x1,0x90,0x1,0xc4,0x1,0xb9,0x1,0x78,0x1,0x2d,0x1, +0xcb,0x0,0x58,0x0,0x1a,0x0,0x7,0x0,0x3,0x0,0x19,0x0, +0xc,0x0,0xb0,0xff,0x61,0xff,0x56,0xff,0x68,0xff,0x69,0xff, +0x4c,0xff,0x3f,0xff,0x51,0xff,0x41,0xff,0x1c,0xff,0xfa,0xfe, +0xa2,0xfe,0x4e,0xfe,0x61,0xfe,0x9c,0xfe,0xdd,0xfe,0x4a,0xff, +0x8a,0xff,0x7e,0xff,0x85,0xff,0xa3,0xff,0xcd,0xff,0x17,0x0, +0x47,0x0,0x6d,0x0,0xd1,0x0,0x2a,0x1,0x4c,0x1,0x6f,0x1, +0x6b,0x1,0x41,0x1,0x4d,0x1,0x4c,0x1,0xf1,0x0,0x8d,0x0, +0x32,0x0,0xc0,0xff,0x78,0xff,0x5a,0xff,0x3b,0xff,0x5a,0xff, +0xb8,0xff,0xf7,0xff,0x19,0x0,0x3f,0x0,0x4c,0x0,0x59,0x0, +0x76,0x0,0x5a,0x0,0xfb,0xff,0x98,0xff,0x4f,0xff,0x57,0xff, +0xb3,0xff,0xfa,0xff,0x16,0x0,0x44,0x0,0x5f,0x0,0x62,0x0, +0x8f,0x0,0xba,0x0,0xae,0x0,0x8c,0x0,0x49,0x0,0xde,0xff, +0x81,0xff,0x35,0xff,0xf9,0xfe,0xe0,0xfe,0xbc,0xfe,0x92,0xfe, +0xb0,0xfe,0xfa,0xfe,0x2f,0xff,0x5a,0xff,0x6c,0xff,0x56,0xff, +0x4c,0xff,0x72,0xff,0xb2,0xff,0xe0,0xff,0xe5,0xff,0xeb,0xff, +0xf8,0xff,0xe8,0xff,0xe2,0xff,0xa,0x0,0x3a,0x0,0x6e,0x0, +0xaa,0x0,0xe2,0x0,0x2d,0x1,0x7d,0x1,0xb0,0x1,0xd3,0x1, +0xde,0x1,0xd5,0x1,0xdd,0x1,0xb9,0x1,0x49,0x1,0xe9,0x0, +0x9a,0x0,0x3f,0x0,0x11,0x0,0xe6,0xff,0x7b,0xff,0x2c,0xff, +0x1d,0xff,0xfb,0xfe,0x95,0xfe,0xcd,0xfd,0xd1,0xfc,0xf0,0xfb, +0x38,0xfb,0x8,0xfb,0xd7,0xfb,0x3d,0xfd,0xcb,0xfe,0x7e,0x0, +0xcf,0x1,0x62,0x2,0xcf,0x2,0x83,0x3,0x45,0x4,0x90,0x4, +0xc2,0x3,0xdc,0x1,0xca,0xff,0x6a,0xfe,0x20,0xfe,0xd2,0xfe, +0xda,0xff,0x95,0x0,0xe2,0x0,0xe5,0x0,0xb4,0x0,0x5d,0x0, +0x30,0x0,0x6a,0x0,0x9e,0x0,0x70,0x0,0x1d,0x0,0xaf,0xff, +0x2d,0xff,0x5,0xff,0x28,0xff,0x1d,0xff,0xf2,0xfe,0xca,0xfe, +0xac,0xfe,0xf2,0xfe,0xc5,0xff,0xbc,0x0,0x52,0x1,0x49,0x1, +0x11,0x1,0x52,0x1,0xda,0x1,0x28,0x2,0x33,0x2,0xd3,0x1, +0x9,0x1,0x88,0x0,0x80,0x0,0x53,0x0,0xfb,0xff,0xd4,0xff, +0xab,0xff,0x5a,0xff,0x1f,0xff,0xd0,0xfe,0x4f,0xfe,0x22,0xfe, +0x68,0xfe,0x8f,0xfe,0x98,0xfe,0xe1,0xfe,0x45,0xff,0xc9,0xff, +0x9b,0x0,0x22,0x1,0xee,0x0,0x71,0x0,0x17,0x0,0xf4,0xff, +0xc,0x0,0x25,0x0,0x30,0x0,0x64,0x0,0xb5,0x0,0xfe,0x0, +0x3c,0x1,0x57,0x1,0x55,0x1,0x52,0x1,0x4d,0x1,0x54,0x1, +0x43,0x1,0xd8,0x0,0x61,0x0,0x28,0x0,0xe5,0xff,0xac,0xff, +0xd2,0xff,0x13,0x0,0x18,0x0,0xdd,0xff,0x7d,0xff,0x48,0xff, +0x58,0xff,0x54,0xff,0x37,0xff,0x3a,0xff,0x4c,0xff,0x72,0xff, +0xc4,0xff,0xe,0x0,0x34,0x0,0x55,0x0,0x6f,0x0,0x76,0x0, +0x86,0x0,0xc2,0x0,0x1c,0x1,0x5d,0x1,0x4c,0x1,0xd4,0x0, +0x22,0x0,0x95,0xff,0x50,0xff,0x3e,0xff,0x72,0xff,0xc3,0xff, +0xd6,0xff,0xdb,0xff,0x3,0x0,0xea,0xff,0x82,0xff,0x34,0xff, +0x9,0xff,0xed,0xfe,0xe8,0xfe,0xf8,0xfe,0x43,0xff,0xba,0xff, +0xfb,0xff,0x1a,0x0,0x54,0x0,0x88,0x0,0xcf,0x0,0x4e,0x1, +0xa8,0x1,0xb7,0x1,0x98,0x1,0x22,0x1,0x8c,0x0,0x61,0x0, +0x71,0x0,0x5c,0x0,0x40,0x0,0x24,0x0,0xf9,0xff,0xe5,0xff, +0xdb,0xff,0xcd,0xff,0xf2,0xff,0x2f,0x0,0x25,0x0,0xea,0xff, +0xae,0xff,0x63,0xff,0x2d,0xff,0x18,0xff,0xf1,0xfe,0xdc,0xfe, +0xb,0xff,0x34,0xff,0x57,0xff,0xbb,0xff,0x15,0x0,0x39,0x0, +0x73,0x0,0x90,0x0,0x60,0x0,0x5c,0x0,0x91,0x0,0xa3,0x0, +0xb9,0x0,0xe5,0x0,0xdd,0x0,0xc0,0x0,0xb6,0x0,0x95,0x0, +0x5a,0x0,0x23,0x0,0xff,0xff,0xfc,0xff,0xeb,0xff,0xa5,0xff, +0x6a,0xff,0x4e,0xff,0x40,0xff,0x60,0xff,0x9f,0xff,0xc7,0xff, +0xe9,0xff,0xf,0x0,0x1b,0x0,0x10,0x0,0xe2,0xff,0x8d,0xff, +0x56,0xff,0x6a,0xff,0xbd,0xff,0x3f,0x0,0xcf,0x0,0x4f,0x1, +0x98,0x1,0x6d,0x1,0xb,0x1,0xf2,0x0,0xfb,0x0,0xbd,0x0, +0x51,0x0,0xda,0xff,0x5b,0xff,0x1b,0xff,0x3f,0xff,0x80,0xff, +0x92,0xff,0x7e,0xff,0x72,0xff,0x79,0xff,0x89,0xff,0xb2,0xff, +0xc9,0xff,0x90,0xff,0x40,0xff,0x2,0xff,0xb7,0xfe,0xa9,0xfe, +0x23,0xff,0xba,0xff,0x31,0x0,0xa2,0x0,0xc4,0x0,0x8b,0x0, +0x76,0x0,0x97,0x0,0xab,0x0,0xa0,0x0,0x6c,0x0,0x30,0x0, +0x2c,0x0,0x34,0x0,0xf,0x0,0xe0,0xff,0xb5,0xff,0x8b,0xff, +0x84,0xff,0x92,0xff,0x8f,0xff,0x94,0xff,0xa8,0xff,0xa0,0xff, +0x74,0xff,0x3f,0xff,0x16,0xff,0x14,0xff,0x4c,0xff,0x90,0xff, +0xb4,0xff,0xdd,0xff,0x22,0x0,0x3c,0x0,0x18,0x0,0xe,0x0, +0x40,0x0,0x7b,0x0,0x91,0x0,0x69,0x0,0x21,0x0,0xf6,0xff, +0xe7,0xff,0xe2,0xff,0xeb,0xff,0xe2,0xff,0xdd,0xff,0xa,0x0, +0x24,0x0,0xf9,0xff,0xcd,0xff,0xc2,0xff,0xcf,0xff,0xfa,0xff, +0x10,0x0,0xf8,0xff,0xf5,0xff,0xf7,0xff,0xb7,0xff,0x56,0xff, +0x4,0xff,0xd2,0xfe,0xc,0xff,0xaa,0xff,0xf,0x0,0xf5,0xff, +0xb5,0xff,0x9b,0xff,0xb4,0xff,0xf4,0xff,0x21,0x0,0x2d,0x0, +0x46,0x0,0x57,0x0,0x3c,0x0,0x1f,0x0,0xf3,0xff,0x9a,0xff, +0x7c,0xff,0xbd,0xff,0xe7,0xff,0xf2,0xff,0x15,0x0,0x1e,0x0, +0xa,0x0,0xf7,0xff,0xaf,0xff,0x46,0xff,0x1e,0xff,0x38,0xff, +0x73,0xff,0xcc,0xff,0x27,0x0,0x6f,0x0,0x8f,0x0,0x8a,0x0, +0x8d,0x0,0x70,0x0,0x11,0x0,0xe4,0xff,0xf6,0xff,0xdb,0xff, +0xc1,0xff,0xcb,0xff,0xa2,0xff,0x74,0xff,0x85,0xff,0x9b,0xff, +0xd9,0xff,0x5a,0x0,0xa0,0x0,0x8e,0x0,0x81,0x0,0x7a,0x0, +0x58,0x0,0x23,0x0,0xf1,0xff,0xd2,0xff,0x9e,0xff,0x4b,0xff, +0x38,0xff,0x78,0xff,0xb3,0xff,0xd4,0xff,0xe8,0xff,0xd4,0xff, +0x9c,0xff,0x6b,0xff,0x72,0xff,0xb5,0xff,0xf2,0xff,0xc,0x0, +0x16,0x0,0xf6,0xff,0xab,0xff,0x8b,0xff,0xb1,0xff,0xdd,0xff, +0xf6,0xff,0x8,0x0,0x12,0x0,0x23,0x0,0x5c,0x0,0xad,0x0, +0xdd,0x0,0xe1,0x0,0xbd,0x0,0x5a,0x0,0xe9,0xff,0xc1,0xff, +0xc7,0xff,0xc6,0xff,0xd2,0xff,0xef,0xff,0x12,0x0,0x31,0x0, +0x2a,0x0,0x1c,0x0,0x37,0x0,0x3c,0x0,0x9,0x0,0xce,0xff, +0x9a,0xff,0x90,0xff,0xd3,0xff,0xd,0x0,0x1,0x0,0xe4,0xff, +0xd2,0xff,0xc0,0xff,0xad,0xff,0x99,0xff,0x9e,0xff,0xc3,0xff, +0xe6,0xff,0x5,0x0,0xa,0x0,0xe5,0xff,0xdb,0xff,0x4,0x0, +0x24,0x0,0x2c,0x0,0x1b,0x0,0xfb,0xff,0xf,0x0,0x46,0x0, +0x59,0x0,0x58,0x0,0x39,0x0,0xe3,0xff,0xab,0xff,0xbe,0xff, +0xdf,0xff,0xe7,0xff,0xc9,0xff,0x9c,0xff,0x9f,0xff,0xe2,0xff, +0x3f,0x0,0x84,0x0,0x86,0x0,0x5f,0x0,0x3b,0x0,0x1f,0x0, +0x14,0x0,0xf4,0xff,0x9d,0xff,0x78,0xff,0xb8,0xff,0xf2,0xff, +0x1f,0x0,0x59,0x0,0x78,0x0,0xb2,0x0,0x8,0x1,0xe5,0x0, +0x73,0x0,0x43,0x0,0x2e,0x0,0x1e,0x0,0x37,0x0,0x3e,0x0, +0x1e,0x0,0xb,0x0,0x11,0x0,0x24,0x0,0x12,0x0,0xc0,0xff, +0x8e,0xff,0x9f,0xff,0xc4,0xff,0x1b,0x0,0x70,0x0,0x60,0x0, +0x47,0x0,0x70,0x0,0x92,0x0,0xb0,0x0,0xc5,0x0,0x8e,0x0, +0x49,0x0,0x30,0x0,0x8,0x0,0xdd,0xff,0xc2,0xff,0x7f,0xff, +0x4e,0xff,0x8b,0xff,0xe7,0xff,0x14,0x0,0x3b,0x0,0x58,0x0, +0x40,0x0,0x15,0x0,0xe,0x0,0x26,0x0,0x3a,0x0,0x51,0x0, +0x70,0x0,0x65,0x0,0x1a,0x0,0xc1,0xff,0x85,0xff,0x6b,0xff, +0x68,0xff,0x75,0xff,0xa2,0xff,0xf3,0xff,0x38,0x0,0x62,0x0, +0x87,0x0,0x8b,0x0,0x5c,0x0,0x3f,0x0,0x52,0x0,0x71,0x0, +0x9a,0x0,0xb0,0x0,0x81,0x0,0x55,0x0,0x5c,0x0,0x33,0x0, +0xd3,0xff,0xa5,0xff,0x91,0xff,0x6c,0xff,0x6c,0xff,0x81,0xff, +0x81,0xff,0xa1,0xff,0xea,0xff,0x21,0x0,0x3d,0x0,0x43,0x0, +0x39,0x0,0x34,0x0,0x2d,0x0,0xf,0x0,0xdb,0xff,0xa6,0xff, +0xa3,0xff,0xc8,0xff,0xc3,0xff,0xa9,0xff,0xae,0xff,0xb3,0xff, +0xc5,0xff,0xf0,0xff,0xfc,0xff,0xc,0x0,0x4d,0x0,0x59,0x0, +0x2b,0x0,0x17,0x0,0xff,0xff,0xe8,0xff,0x1d,0x0,0x61,0x0, +0x6c,0x0,0x66,0x0,0x5c,0x0,0x4a,0x0,0x4b,0x0,0x51,0x0, +0x49,0x0,0x2f,0x0,0xfd,0xff,0xdd,0xff,0xed,0xff,0xff,0xff, +0xf8,0xff,0xef,0xff,0xed,0xff,0xed,0xff,0xeb,0xff,0xee,0xff, +0x4,0x0,0x1e,0x0,0x3d,0x0,0x61,0x0,0x40,0x0,0xf1,0xff, +0xfd,0xff,0x48,0x0,0x60,0x0,0x55,0x0,0x35,0x0,0xf4,0xff, +0xeb,0xff,0x20,0x0,0x2b,0x0,0x1f,0x0,0x20,0x0,0x1,0x0, +0xe0,0xff,0xf6,0xff,0x14,0x0,0x19,0x0,0x1b,0x0,0x25,0x0, +0x3b,0x0,0x3f,0x0,0x19,0x0,0xa,0x0,0x21,0x0,0xa,0x0, +0xcf,0xff,0xc7,0xff,0xca,0xff,0x93,0xff,0x64,0xff,0x73,0xff, +0x92,0xff,0xb3,0xff,0xf4,0xff,0x38,0x0,0x5c,0x0,0x6c,0x0, +0x77,0x0,0x80,0x0,0x85,0x0,0x74,0x0,0x4e,0x0,0x26,0x0, +0xfd,0xff,0xef,0xff,0x6,0x0,0x3,0x0,0xe4,0xff,0xed,0xff, +0xf6,0xff,0xd4,0xff,0xd8,0xff,0x5,0x0,0x1e,0x0,0x51,0x0, +0x92,0x0,0x88,0x0,0x6d,0x0,0x76,0x0,0x57,0x0,0x2a,0x0, +0x31,0x0,0x2a,0x0,0xff,0xff,0xe8,0xff,0xe0,0xff,0xf7,0xff, +0x24,0x0,0xf,0x0,0xd3,0xff,0xc2,0xff,0xac,0xff,0x7f,0xff, +0x7f,0xff,0x9b,0xff,0xb5,0xff,0xce,0xff,0xcd,0xff,0xc0,0xff, +0xc8,0xff,0xca,0xff,0xe1,0xff,0x29,0x0,0x66,0x0,0x89,0x0, +0xaf,0x0,0xb6,0x0,0x94,0x0,0x5c,0x0,0x26,0x0,0x28,0x0, +0x3c,0x0,0x18,0x0,0xff,0xff,0x8,0x0,0xee,0xff,0xe1,0xff, +0xf9,0xff,0xdf,0xff,0xc2,0xff,0xd0,0xff,0xae,0xff,0x76,0xff, +0x7a,0xff,0x79,0xff,0x7d,0xff,0xcd,0xff,0x1e,0x0,0x2c,0x0, +0x18,0x0,0xee,0xff,0xcd,0xff,0xdf,0xff,0xff,0xff,0x10,0x0, +0x23,0x0,0x2d,0x0,0x2b,0x0,0x30,0x0,0x39,0x0,0x38,0x0, +0x2d,0x0,0x1b,0x0,0x6,0x0,0xec,0xff,0xda,0xff,0xcf,0xff, +0xba,0xff,0xad,0xff,0xb7,0xff,0xc2,0xff,0xd8,0xff,0x5,0x0, +0x25,0x0,0x2d,0x0,0x2c,0x0,0x1e,0x0,0xc,0x0,0xea,0xff, +0xa2,0xff,0x67,0xff,0x57,0xff,0x4a,0xff,0x63,0xff,0xc4,0xff, +0x15,0x0,0x26,0x0,0x1b,0x0,0xe,0x0,0x11,0x0,0x17,0x0, +0x5,0x0,0xf3,0xff,0xea,0xff,0xe9,0xff,0xa,0x0,0x2b,0x0, +0x29,0x0,0x33,0x0,0x26,0x0,0xdb,0xff,0xbf,0xff,0xe0,0xff, +0xd6,0xff,0xd5,0xff,0x4,0x0,0x5,0x0,0xf8,0xff,0x18,0x0, +0x1c,0x0,0x4,0x0,0x4,0x0,0xe1,0xff,0x8a,0xff,0x46,0xff, +0x30,0xff,0x56,0xff,0xa6,0xff,0xe6,0xff,0xf,0x0,0x28,0x0, +0x1f,0x0,0x13,0x0,0x12,0x0,0xf3,0xff,0xca,0xff,0xb0,0xff, +0x8e,0xff,0x94,0xff,0xde,0xff,0x6,0x0,0xf2,0xff,0xf3,0xff, +0x0,0x0,0x1,0x0,0x1a,0x0,0x33,0x0,0x25,0x0,0x15,0x0, +0x13,0x0,0x6,0x0,0xf8,0xff,0xf6,0xff,0xed,0xff,0xd6,0xff, +0xbe,0xff,0xb8,0xff,0xd4,0xff,0xc,0x0,0x2e,0x0,0x14,0x0, +0xe5,0xff,0xd3,0xff,0xce,0xff,0xd1,0xff,0xec,0xff,0xc,0x0, +0x14,0x0,0x8,0x0,0xd8,0xff,0x9f,0xff,0x9f,0xff,0xc4,0xff, +0xde,0xff,0x3,0x0,0x34,0x0,0x45,0x0,0x42,0x0,0x4b,0x0, +0x54,0x0,0x58,0x0,0x60,0x0,0x6e,0x0,0x74,0x0,0x5a,0x0, +0x2f,0x0,0x14,0x0,0xfb,0xff,0xd7,0xff,0xc6,0xff,0xd2,0xff, +0xeb,0xff,0xfe,0xff,0xf4,0xff,0xe2,0xff,0xe7,0xff,0xf5,0xff, +0x8,0x0,0x1c,0x0,0xd,0x0,0xe3,0xff,0xcb,0xff,0xbf,0xff, +0xb6,0xff,0xbf,0xff,0xcb,0xff,0xd5,0xff,0xf4,0xff,0x19,0x0, +0x2f,0x0,0x39,0x0,0x3f,0x0,0x46,0x0,0x43,0x0,0x31,0x0, +0x2b,0x0,0x3e,0x0,0x54,0x0,0x54,0x0,0x35,0x0,0x5,0x0, +0xe2,0xff,0xc6,0xff,0xa8,0xff,0xa6,0xff,0xc5,0xff,0xdb,0xff, +0xdc,0xff,0xe1,0xff,0xf6,0xff,0xfe,0xff,0xe0,0xff,0xc4,0xff, +0xbc,0xff,0xa8,0xff,0x96,0xff,0xb0,0xff,0xd3,0xff,0xee,0xff, +0x1c,0x0,0x31,0x0,0xb,0x0,0xe9,0xff,0xf5,0xff,0x6,0x0, +0x0,0x0,0x1,0x0,0x1a,0x0,0x20,0x0,0xf8,0xff,0xcf,0xff, +0xbf,0xff,0xb9,0xff,0xca,0xff,0xf4,0xff,0xc,0x0,0x15,0x0, +0x28,0x0,0x34,0x0,0x36,0x0,0x3a,0x0,0x28,0x0,0x1,0x0, +0xe4,0xff,0xda,0xff,0xde,0xff,0xdc,0xff,0xbe,0xff,0xaa,0xff, +0xc2,0xff,0xe8,0xff,0x5,0x0,0x23,0x0,0x30,0x0,0x27,0x0, +0x29,0x0,0x30,0x0,0x21,0x0,0x7,0x0,0xf0,0xff,0xe3,0xff, +0xed,0xff,0xff,0xff,0xf6,0xff,0xe8,0xff,0xec,0xff,0xed,0xff, +0xe4,0xff,0xde,0xff,0xd8,0xff,0xd5,0xff,0xdb,0xff,0xe8,0xff, +0xff,0xff,0x18,0x0,0x1a,0x0,0xd,0x0,0x1,0x0,0xfe,0xff, +0x11,0x0,0x1a,0x0,0xf0,0xff,0xc6,0xff,0xc2,0xff,0xc5,0xff, +0xcd,0xff,0xdf,0xff,0xd2,0xff,0xbe,0xff,0xd1,0xff,0xf3,0xff, +0x6,0x0,0x5,0x0,0xf2,0xff,0xf7,0xff,0x1e,0x0,0x29,0x0, +0x16,0x0,0x13,0x0,0x9,0x0,0xed,0xff,0xf1,0xff,0xf8,0xff, +0xc6,0xff,0x9c,0xff,0xc4,0xff,0xfc,0xff,0x11,0x0,0x33,0x0, +0x5a,0x0,0x60,0x0,0x64,0x0,0x5e,0x0,0x2d,0x0,0x11,0x0, +0x2c,0x0,0x3b,0x0,0x35,0x0,0x31,0x0,0x2c,0x0,0x2c,0x0, +0x21,0x0,0xf0,0xff,0xcc,0xff,0xd1,0xff,0xe0,0xff,0xf3,0xff, +0xfe,0xff,0x0,0x0,0x20,0x0,0x3b,0x0,0x21,0x0,0xc,0x0, +0x4,0x0,0xde,0xff,0xcf,0xff,0xeb,0xff,0xf7,0xff,0xff,0xff, +0xf,0x0,0xfb,0xff,0xdc,0xff,0xd9,0xff,0xdf,0xff,0xed,0xff, +0x2,0x0,0x12,0x0,0x1b,0x0,0x21,0x0,0x2c,0x0,0x30,0x0, +0x16,0x0,0x7,0x0,0x1b,0x0,0x1d,0x0,0x24,0x0,0x4d,0x0, +0x4a,0x0,0x29,0x0,0x2e,0x0,0x1a,0x0,0xe2,0xff,0xdc,0xff, +0xee,0xff,0xeb,0xff,0x4,0x0,0x30,0x0,0x4e,0x0,0x60,0x0, +0x4a,0x0,0x1d,0x0,0x17,0x0,0x24,0x0,0x24,0x0,0x1e,0x0, +0xd,0x0,0xfc,0xff,0xf3,0xff,0xe3,0xff,0xe1,0xff,0xf2,0xff, +0xf0,0xff,0xea,0xff,0xfa,0xff,0xfe,0xff,0xf5,0xff,0xf2,0xff, +0xe6,0xff,0xdf,0xff,0xda,0xff,0xc0,0xff,0xc3,0xff,0xef,0xff, +0xf5,0xff,0xda,0xff,0xe6,0xff,0xff,0xff,0xf3,0xff,0xde,0xff, +0xe7,0xff,0x7,0x0,0x1d,0x0,0x18,0x0,0x8,0x0,0xf7,0xff, +0xec,0xff,0xee,0xff,0xee,0xff,0xe3,0xff,0xeb,0xff,0x3,0x0, +0xe,0x0,0x1b,0x0,0x2f,0x0,0x29,0x0,0x1c,0x0,0x27,0x0, +0x26,0x0,0x5,0x0,0xf6,0xff,0xfb,0xff,0xed,0xff,0xe1,0xff, +0xe5,0xff,0xd6,0xff,0xc6,0xff,0xde,0xff,0x2,0x0,0x15,0x0, +0x2d,0x0,0x48,0x0,0x48,0x0,0x30,0x0,0x19,0x0,0x19,0x0, +0x2e,0x0,0x44,0x0,0x49,0x0,0x31,0x0,0x6,0x0,0xeb,0xff, +0xe6,0xff,0xde,0xff,0xe2,0xff,0xf5,0xff,0xf0,0xff,0xe8,0xff, +0x4,0x0,0x18,0x0,0xe,0x0,0x10,0x0,0xb,0x0,0xee,0xff, +0xef,0xff,0xfd,0xff,0xec,0xff,0xf4,0xff,0x1e,0x0,0x22,0x0, +0xd,0x0,0xa,0x0,0x9,0x0,0xc,0x0,0x7,0x0,0xde,0xff, +0xcb,0xff,0xe0,0xff,0xde,0xff,0xd8,0xff,0xed,0xff,0xfb,0xff, +0xc,0x0,0x2e,0x0,0x35,0x0,0x29,0x0,0x1d,0x0,0x2,0x0, +0xf5,0xff,0xf5,0xff,0xe1,0xff,0xe8,0xff,0x9,0x0,0x2,0x0, +0xff,0xff,0x13,0x0,0x8,0x0,0x13,0x0,0x3a,0x0,0x29,0x0, +0x15,0x0,0x30,0x0,0x29,0x0,0x1d,0x0,0x3d,0x0,0x3b,0x0, +0x19,0x0,0xa,0x0,0xfc,0xff,0x4,0x0,0x21,0x0,0x6,0x0, +0xdf,0xff,0xf6,0xff,0xe,0x0,0x0,0x0,0xf1,0xff,0xea,0xff, +0xee,0xff,0xfd,0xff,0x14,0x0,0x3a,0x0,0x54,0x0,0x51,0x0, +0x4f,0x0,0x47,0x0,0x32,0x0,0x2a,0x0,0x1c,0x0,0xc,0x0, +0x19,0x0,0x17,0x0,0xfe,0xff,0x1,0x0,0xf6,0xff,0xc2,0xff, +0xb8,0xff,0xd5,0xff,0xe7,0xff,0x3,0x0,0x16,0x0,0xd,0x0, +0x1b,0x0,0x36,0x0,0x38,0x0,0x4c,0x0,0x80,0x0,0x94,0x0, +0x76,0x0,0x4d,0x0,0x31,0x0,0x22,0x0,0x17,0x0,0x9,0x0, +0xf0,0xff,0xd3,0xff,0xc1,0xff,0xbe,0xff,0xde,0xff,0x2a,0x0, +0x68,0x0,0x63,0x0,0x46,0x0,0x39,0x0,0x20,0x0,0xfe,0xff, +0xf7,0xff,0xc,0x0,0x12,0x0,0xfe,0xff,0xe7,0xff,0xd2,0xff, +0xc2,0xff,0xce,0xff,0xdd,0xff,0xca,0xff,0xb3,0xff,0xbb,0xff, +0xde,0xff,0x12,0x0,0x3e,0x0,0x47,0x0,0x32,0x0,0xc,0x0, +0xef,0xff,0xea,0xff,0xd5,0xff,0xc1,0xff,0xe6,0xff,0xfa,0xff, +0xcb,0xff,0xc3,0xff,0xf5,0xff,0x6,0x0,0x3,0x0,0x12,0x0, +0xd,0x0,0xf4,0xff,0xe7,0xff,0xe2,0xff,0xd8,0xff,0xd8,0xff, +0xf1,0xff,0x10,0x0,0x14,0x0,0xd,0x0,0xf,0x0,0xc,0x0, +0x18,0x0,0x30,0x0,0x21,0x0,0x9,0x0,0x12,0x0,0x1b,0x0, +0x2b,0x0,0x56,0x0,0x66,0x0,0x60,0x0,0x66,0x0,0x4e,0x0, +0x22,0x0,0x1f,0x0,0x28,0x0,0x18,0x0,0x13,0x0,0x21,0x0, +0x26,0x0,0x17,0x0,0xef,0xff,0xc0,0xff,0xa9,0xff,0xad,0xff, +0xc5,0xff,0xe6,0xff,0xfc,0xff,0xf6,0xff,0xe7,0xff,0xef,0xff, +0xa,0x0,0x17,0x0,0x1a,0x0,0x28,0x0,0x41,0x0,0x54,0x0, +0x47,0x0,0x18,0x0,0xfb,0xff,0x7,0x0,0x15,0x0,0x20,0x0, +0x35,0x0,0x3d,0x0,0x34,0x0,0x33,0x0,0x39,0x0,0x2b,0x0, +0xb,0x0,0xff,0xff,0xfe,0xff,0xd7,0xff,0xa9,0xff,0xb2,0xff, +0xd7,0xff,0xec,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0x14,0x0, +0x1f,0x0,0x5,0x0,0xeb,0xff,0xea,0xff,0xff,0xff,0x16,0x0, +0xc,0x0,0xf4,0xff,0xea,0xff,0xe1,0xff,0xdd,0xff,0xed,0xff, +0xff,0xff,0xf,0x0,0x1d,0x0,0x18,0x0,0x17,0x0,0x23,0x0, +0x20,0x0,0x12,0x0,0x5,0x0,0xf1,0xff,0xea,0xff,0xea,0xff, +0xe1,0xff,0xeb,0xff,0xfe,0xff,0xf6,0xff,0xf2,0xff,0xf6,0xff, +0xe8,0xff,0xe6,0xff,0xf6,0xff,0xfa,0xff,0x11,0x0,0x2d,0x0, +0x1c,0x0,0xb,0x0,0x21,0x0,0x2e,0x0,0x2d,0x0,0x21,0x0, +0xf3,0xff,0xd3,0xff,0xe9,0xff,0xfc,0xff,0xed,0xff,0xe2,0xff, +0xdf,0xff,0xd2,0xff,0xcf,0xff,0xe7,0xff,0xa,0x0,0x12,0x0, +0xe8,0xff,0xb9,0xff,0xb7,0xff,0xc8,0xff,0xd6,0xff,0xf8,0xff, +0x18,0x0,0xf,0x0,0xfa,0xff,0xee,0xff,0xdf,0xff,0xdf,0xff, +0xf2,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xb,0x0, +0x15,0x0,0x9,0x0,0xfa,0xff,0xe2,0xff,0xc0,0xff,0xc3,0xff, +0xdf,0xff,0xe8,0xff,0xfa,0xff,0xd,0x0,0xec,0xff,0xce,0xff, +0xde,0xff,0xe1,0xff,0xcc,0xff,0xd4,0xff,0xe6,0xff,0xe4,0xff, +0xe8,0xff,0x9,0x0,0x2d,0x0,0x36,0x0,0x30,0x0,0x2d,0x0, +0x2e,0x0,0x33,0x0,0x38,0x0,0x37,0x0,0x36,0x0,0x33,0x0, +0x28,0x0,0x13,0x0,0xe7,0xff,0xbb,0xff,0xb7,0xff,0xb6,0xff, +0xa1,0xff,0xb0,0xff,0xde,0xff,0xef,0xff,0xf5,0xff,0x4,0x0, +0xb,0x0,0x11,0x0,0x11,0x0,0xfe,0xff,0xe8,0xff,0xca,0xff, +0xb3,0xff,0xc7,0xff,0xd6,0xff,0xc7,0xff,0xdd,0xff,0x6,0x0, +0xfd,0xff,0xe3,0xff,0xdc,0xff,0xd8,0xff,0xd2,0xff,0xc5,0xff, +0xc0,0xff,0xd6,0xff,0xe5,0xff,0xde,0xff,0xdd,0xff,0xe6,0xff, +0xf3,0xff,0xfe,0xff,0xfa,0xff,0xff,0xff,0x16,0x0,0x19,0x0, +0xe,0x0,0x13,0x0,0x22,0x0,0x38,0x0,0x34,0x0,0xf0,0xff, +0xac,0xff,0xa9,0xff,0xaf,0xff,0xa8,0xff,0xc3,0xff,0xde,0xff, +0xd5,0xff,0xdf,0xff,0x4,0x0,0xb,0x0,0x9,0x0,0x1e,0x0, +0x7,0x0,0xc0,0xff,0xac,0xff,0xb0,0xff,0x92,0xff,0x98,0xff, +0xc2,0xff,0xbf,0xff,0xbf,0xff,0xe7,0xff,0xf9,0xff,0xfe,0xff, +0xe,0x0,0xf,0x0,0x1a,0x0,0x33,0x0,0x22,0x0,0xf6,0xff, +0xd6,0xff,0xca,0xff,0xd0,0xff,0xbd,0xff,0x93,0xff,0x93,0xff, +0x95,0xff,0x73,0xff,0x7f,0xff,0xa4,0xff,0xa6,0xff,0xc2,0xff, +0xe2,0xff,0xc9,0xff,0xc7,0xff,0xea,0xff,0xe6,0xff,0xd6,0xff, +0xd3,0xff,0xc1,0xff,0xbc,0xff,0xc3,0xff,0xc1,0xff,0xcf,0xff, +0xe0,0xff,0xd8,0xff,0xcc,0xff,0xb3,0xff,0x8f,0xff,0x94,0xff, +0xae,0xff,0xba,0xff,0xc8,0xff,0xd4,0xff,0xdf,0xff,0x0,0x0, +0xf,0x0,0xf4,0xff,0xe5,0xff,0xef,0xff,0xe7,0xff,0xcc,0xff, +0xc3,0xff,0xc1,0xff,0xa2,0xff,0x81,0xff,0x96,0xff,0xc3,0xff, +0xcd,0xff,0xb2,0xff,0x98,0xff,0xaa,0xff,0xda,0xff,0xe8,0xff, +0xec,0xff,0x15,0x0,0x2a,0x0,0x15,0x0,0xc,0x0,0x4,0x0, +0xf0,0xff,0xe9,0xff,0xde,0xff,0xcc,0xff,0xc7,0xff,0xbc,0xff, +0xaf,0xff,0xc6,0xff,0xe5,0xff,0xe6,0xff,0xcc,0xff,0xbc,0xff, +0xde,0xff,0x6,0x0,0xe9,0xff,0xb3,0xff,0x9d,0xff,0x8c,0xff, +0x82,0xff,0x93,0xff,0x9c,0xff,0x93,0xff,0x96,0xff,0xaa,0xff, +0xc9,0xff,0xe3,0xff,0xea,0xff,0xe9,0xff,0xe8,0xff,0xe6,0xff, +0xe2,0xff,0xdc,0xff,0xe5,0xff,0xfb,0xff,0xfb,0xff,0xee,0xff, +0xe6,0xff,0xd0,0xff,0xc9,0xff,0xe1,0xff,0xdf,0xff,0xcb,0xff, +0xd1,0xff,0xc7,0xff,0xb4,0xff,0xcb,0xff,0xdc,0xff,0xcb,0xff, +0xd3,0xff,0xf3,0xff,0x8,0x0,0x13,0x0,0x6,0x0,0xe3,0xff, +0xd6,0xff,0xdd,0xff,0xd6,0xff,0xc8,0xff,0xcb,0xff,0xd2,0xff, +0xca,0xff,0xbd,0xff,0xb9,0xff,0xb4,0xff,0xa9,0xff,0xac,0xff, +0xc3,0xff,0xe7,0xff,0x4,0x0,0xfc,0xff,0xdf,0xff,0xd9,0xff, +0xd9,0xff,0xcb,0xff,0xca,0xff,0xd5,0xff,0xcf,0xff,0xcc,0xff, +0xd5,0xff,0xd3,0xff,0xd8,0xff,0xfc,0xff,0xf,0x0,0xff,0xff, +0xfd,0xff,0x4,0x0,0xfc,0xff,0xf9,0xff,0xff,0xff,0xc,0x0, +0x2e,0x0,0x32,0x0,0xfe,0xff,0xe2,0xff,0xf3,0xff,0xf3,0xff, +0xe8,0xff,0xe6,0xff,0xdb,0xff,0xd8,0xff,0xd0,0xff,0xb8,0xff, +0xc1,0xff,0xd8,0xff,0xcd,0xff,0xd0,0xff,0xee,0xff,0xf5,0xff, +0xf9,0xff,0xd,0x0,0x10,0x0,0x8,0x0,0xfb,0xff,0xee,0xff, +0xff,0xff,0x13,0x0,0xfe,0xff,0xea,0xff,0xea,0xff,0xe6,0xff, +0xe5,0xff,0xde,0xff,0xd5,0xff,0xed,0xff,0x9,0x0,0xfe,0xff, +0xec,0xff,0xe5,0xff,0xdf,0xff,0xde,0xff,0xdd,0xff,0xde,0xff, +0xe1,0xff,0xcb,0xff,0xb0,0xff,0xb0,0xff,0xc3,0xff,0xe6,0xff, +0xc,0x0,0x10,0x0,0x12,0x0,0x3d,0x0,0x5c,0x0,0x48,0x0, +0x31,0x0,0x32,0x0,0x24,0x0,0xf8,0xff,0xe3,0xff,0xee,0xff, +0xe4,0xff,0xd4,0xff,0xee,0xff,0xe,0x0,0xe,0x0,0xfa,0xff, +0xd0,0xff,0xb1,0xff,0xb5,0xff,0xb3,0xff,0xbc,0xff,0xeb,0xff, +0xff,0xff,0xf3,0xff,0x7,0x0,0x20,0x0,0x1c,0x0,0x12,0x0, +0x8,0x0,0xb,0x0,0x1a,0x0,0x10,0x0,0xfb,0xff,0xf9,0xff, +0xf5,0xff,0xe9,0xff,0xd5,0xff,0xb4,0xff,0xb6,0xff,0xe1,0xff, +0x4,0x0,0x2e,0x0,0x75,0x0,0xb5,0x0,0xd9,0x0,0xe0,0x0, +0xc6,0x0,0x9c,0x0,0x5f,0x0,0xf,0x0,0xc1,0xff,0x79,0xff, +0x51,0xff,0x60,0xff,0x88,0xff,0xb0,0xff,0xd4,0xff,0xdb,0xff, +0xde,0xff,0xfd,0xff,0x9,0x0,0x5,0x0,0x1c,0x0,0x27,0x0, +0x17,0x0,0x12,0x0,0x5,0x0,0xe5,0xff,0xd1,0xff,0xbf,0xff, +0xa9,0xff,0xa3,0xff,0x9e,0xff,0xa7,0xff,0xd8,0xff,0xb,0x0, +0x23,0x0,0x4b,0x0,0x80,0x0,0x94,0x0,0x92,0x0,0x88,0x0, +0x57,0x0,0xc,0x0,0xdf,0xff,0xc4,0xff,0xa4,0xff,0x9b,0xff, +0xaf,0xff,0xcf,0xff,0xfb,0xff,0x13,0x0,0xfd,0xff,0xe9,0xff, +0xe3,0xff,0xcb,0xff,0xc0,0xff,0xe1,0xff,0xf,0x0,0x33,0x0, +0x43,0x0,0x39,0x0,0x3b,0x0,0x51,0x0,0x57,0x0,0x4b,0x0, +0x3d,0x0,0x29,0x0,0x1a,0x0,0x17,0x0,0x15,0x0,0x17,0x0, +0x1c,0x0,0x17,0x0,0x8,0x0,0xef,0xff,0xd9,0xff,0xe0,0xff, +0xf9,0xff,0x7,0x0,0x1a,0x0,0x38,0x0,0x3c,0x0,0x24,0x0, +0xc,0x0,0xe8,0xff,0xc1,0xff,0xc1,0xff,0xd0,0xff,0xc6,0xff, +0xbd,0xff,0xc1,0xff,0xb5,0xff,0xba,0xff,0xee,0xff,0x1e,0x0, +0x35,0x0,0x4b,0x0,0x5c,0x0,0x67,0x0,0x6f,0x0,0x5c,0x0, +0x3c,0x0,0x32,0x0,0x1f,0x0,0xf3,0xff,0xe3,0xff,0xf3,0xff, +0xf0,0xff,0xe7,0xff,0xea,0xff,0xea,0xff,0x3,0x0,0x48,0x0, +0x84,0x0,0x94,0x0,0x8f,0x0,0x79,0x0,0x53,0x0,0x2f,0x0, +0xa,0x0,0xe8,0xff,0xf1,0xff,0x14,0x0,0x20,0x0,0x22,0x0, +0x37,0x0,0x48,0x0,0x40,0x0,0x2e,0x0,0x28,0x0,0x30,0x0, +0x2f,0x0,0x22,0x0,0x21,0x0,0x2b,0x0,0x3a,0x0,0x51,0x0, +0x62,0x0,0x4d,0x0,0xc,0x0,0xc5,0xff,0xa3,0xff,0xa5,0xff, +0xb4,0xff,0xcc,0xff,0xed,0xff,0xf,0x0,0x1d,0x0,0x1c,0x0, +0x2a,0x0,0x2e,0x0,0x16,0x0,0x1a,0x0,0x2e,0x0,0x1e,0x0, +0x1a,0x0,0x24,0x0,0x15,0x0,0x1d,0x0,0x28,0x0,0xf,0x0, +0x1c,0x0,0x43,0x0,0x34,0x0,0x22,0x0,0x1e,0x0,0xe,0x0, +0x1a,0x0,0x36,0x0,0x42,0x0,0x5e,0x0,0x85,0x0,0xa1,0x0, +0xac,0x0,0x85,0x0,0x47,0x0,0x1f,0x0,0xf8,0xff,0xdd,0xff, +0xf2,0xff,0x23,0x0,0x54,0x0,0x5c,0x0,0x4b,0x0,0x5a,0x0, +0x57,0x0,0x1e,0x0,0xfc,0xff,0xf1,0xff,0xe1,0xff,0xf7,0xff, +0x20,0x0,0x2c,0x0,0x35,0x0,0x4e,0x0,0x5e,0x0,0x55,0x0, +0x44,0x0,0x43,0x0,0x46,0x0,0x4a,0x0,0x62,0x0,0x6a,0x0, +0x48,0x0,0x24,0x0,0x12,0x0,0x15,0x0,0x1b,0x0,0x15,0x0, +0x2e,0x0,0x4a,0x0,0x2a,0x0,0x19,0x0,0x2e,0x0,0x1e,0x0, +0xa,0x0,0xe,0x0,0x9,0x0,0x2b,0x0,0x6c,0x0,0x90,0x0, +0xb0,0x0,0xb3,0x0,0x7e,0x0,0x50,0x0,0x25,0x0,0xf8,0xff, +0x2,0x0,0x18,0x0,0x21,0x0,0x3c,0x0,0x41,0x0,0x3a,0x0, +0x59,0x0,0x64,0x0,0x5c,0x0,0x60,0x0,0x4b,0x0,0x3c,0x0, +0x49,0x0,0x44,0x0,0x57,0x0,0x7b,0x0,0x63,0x0,0x38,0x0, +0x13,0x0,0xd9,0xff,0xc7,0xff,0xdc,0xff,0xd7,0xff,0xe4,0xff, +0x18,0x0,0x32,0x0,0x3c,0x0,0x5c,0x0,0x87,0x0,0xa1,0x0, +0xa5,0x0,0xa9,0x0,0xaa,0x0,0x9b,0x0,0x89,0x0,0x63,0x0, +0x2b,0x0,0xf6,0xff,0x82,0xff,0xc2,0xfe,0x31,0xfe,0x0,0xfe, +0x4,0xfe,0x4e,0xfe,0xec,0xfe,0xaa,0xff,0x55,0x0,0xf0,0x0, +0x8e,0x1,0x10,0x2,0x57,0x2,0x64,0x2,0xfc,0x1,0x17,0x1, +0x1b,0x0,0x3e,0xff,0xb7,0xfe,0xd7,0xfe,0x4f,0xff,0xc5,0xff, +0x56,0x0,0xc8,0x0,0xdb,0x0,0xc7,0x0,0x9d,0x0,0x56,0x0, +0x22,0x0,0xc,0x0,0xf,0x0,0x25,0x0,0x27,0x0,0x1b,0x0, +0xfb,0xff,0xa0,0xff,0x44,0xff,0xa,0xff,0xcc,0xfe,0xba,0xfe, +0x7,0xff,0x86,0xff,0x24,0x0,0xb6,0x0,0x7,0x1,0x35,0x1, +0x48,0x1,0x36,0x1,0x26,0x1,0xf9,0x0,0x94,0x0,0x3c,0x0, +0xf6,0xff,0x9b,0xff,0x55,0xff,0x36,0xff,0x47,0xff,0xa2,0xff, +0xf0,0xff,0xe6,0xff,0xc5,0xff,0xa8,0xff,0x7e,0xff,0x64,0xff, +0x5f,0xff,0x7f,0xff,0xda,0xff,0x37,0x0,0x81,0x0,0xbd,0x0, +0xb8,0x0,0x7d,0x0,0x2f,0x0,0xc7,0xff,0x8c,0xff,0xa3,0xff, +0xc7,0xff,0xa,0x0,0x6f,0x0,0xa4,0x0,0xb7,0x0,0xad,0x0, +0x64,0x0,0x42,0x0,0x67,0x0,0x81,0x0,0xa8,0x0,0xde,0x0, +0xda,0x0,0xbf,0x0,0x94,0x0,0x37,0x0,0xe5,0xff,0xa6,0xff, +0x68,0xff,0x51,0xff,0x44,0xff,0x35,0xff,0x4f,0xff,0x6d,0xff, +0x93,0xff,0xf2,0xff,0x42,0x0,0x76,0x0,0xb7,0x0,0xc9,0x0, +0xbb,0x0,0xd2,0x0,0xc4,0x0,0x72,0x0,0x1b,0x0,0xc9,0xff, +0x91,0xff,0x71,0xff,0x4c,0xff,0x56,0xff,0x8e,0xff,0xb6,0xff, +0xfc,0xff,0x6d,0x0,0xc6,0x0,0x1b,0x1,0x6c,0x1,0x7a,0x1, +0x5f,0x1,0x30,0x1,0xc3,0x0,0x3b,0x0,0xbe,0xff,0x3b,0xff, +0xd8,0xfe,0xb3,0xfe,0xbf,0xfe,0xe,0xff,0x87,0xff,0xf0,0xff, +0x44,0x0,0x76,0x0,0x7a,0x0,0x74,0x0,0x57,0x0,0x38,0x0, +0x41,0x0,0x32,0x0,0x16,0x0,0x3d,0x0,0x6e,0x0,0x94,0x0, +0xcc,0x0,0xbc,0x0,0x72,0x0,0x5f,0x0,0x5e,0x0,0x64,0x0, +0x93,0x0,0xa9,0x0,0x9a,0x0,0x7f,0x0,0x3e,0x0,0xf3,0xff, +0xc1,0xff,0xc0,0xff,0xfc,0xff,0x1b,0x0,0x8,0x0,0x6,0x0, +0xe4,0xff,0xb0,0xff,0xb8,0xff,0xab,0xff,0x92,0xff,0xdf,0xff, +0x4e,0x0,0xa2,0x0,0xf9,0x0,0x26,0x1,0x18,0x1,0xe7,0x0, +0x98,0x0,0x3c,0x0,0xd8,0xff,0x96,0xff,0xb2,0xff,0xe9,0xff, +0xf4,0xff,0xed,0xff,0xd3,0xff,0xb9,0xff,0xc6,0xff,0xdc,0xff, +0xf8,0xff,0x28,0x0,0x51,0x0,0x6b,0x0,0x66,0x0,0x43,0x0, +0x3a,0x0,0x43,0x0,0x38,0x0,0x25,0x0,0x14,0x0,0xff,0xff, +0xde,0xff,0xb5,0xff,0x91,0xff,0x6e,0xff,0x65,0xff,0x83,0xff, +0x85,0xff,0x72,0xff,0x80,0xff,0x82,0xff,0x93,0xff,0xde,0xff, +0x3,0x0,0x5,0x0,0x30,0x0,0x4e,0x0,0x4f,0x0,0x52,0x0, +0x46,0x0,0x3d,0x0,0x37,0x0,0x3d,0x0,0x6d,0x0,0x81,0x0, +0x73,0x0,0x81,0x0,0x59,0x0,0xe,0x0,0x19,0x0,0x3e,0x0, +0x67,0x0,0xab,0x0,0x9d,0x0,0x5a,0x0,0x3c,0x0,0x23,0x0, +0x37,0x0,0x5f,0x0,0x32,0x0,0xef,0xff,0xaf,0xff,0x3a,0xff, +0xea,0xfe,0xcc,0xfe,0x8b,0xfe,0x21,0xfe,0x74,0xfd,0xae,0xfc, +0x3c,0xfc,0xb,0xfc,0x3c,0xfc,0x2d,0xfd,0x8b,0xfe,0xf7,0xff, +0x3a,0x1,0x10,0x2,0xda,0x2,0xef,0x3,0xd4,0x4,0xe,0x5, +0x3b,0x4,0x4e,0x2,0x20,0x0,0x61,0xfe,0x43,0xfd,0x22,0xfd, +0xc8,0xfd,0xa8,0xfe,0xaf,0xff,0x91,0x0,0xe9,0x0,0xd3,0x0, +0x91,0x0,0x7b,0x0,0xa2,0x0,0x93,0x0,0x44,0x0,0xf0,0xff, +0x87,0xff,0x37,0xff,0xf8,0xfe,0x7f,0xfe,0x1c,0xfe,0xf6,0xfd, +0xd8,0xfd,0x1c,0xfe,0xf7,0xfe,0xe,0x0,0xb,0x1,0x8a,0x1, +0x97,0x1,0xcc,0x1,0x39,0x2,0x5f,0x2,0x2,0x2,0x4c,0x1, +0x7e,0x0,0xa1,0xff,0xc3,0xfe,0x2b,0xfe,0xf5,0xfd,0x20,0xfe, +0x98,0xfe,0xfb,0xfe,0x9,0xff,0xae,0xfe,0xef,0xfd,0x51,0xfd, +0x3d,0xfd,0x7f,0xfd,0xec,0xfd,0x89,0xfe,0x64,0xff,0x79,0x0, +0x62,0x1,0xc3,0x1,0xb0,0x1,0x62,0x1,0x1a,0x1,0xce,0x0, +0x6e,0x0,0x65,0x0,0xc9,0x0,0x24,0x1,0x39,0x1,0xfc,0x0, +0x90,0x0,0x23,0x0,0xb2,0xff,0x88,0xff,0xcf,0xff,0x28,0x0, +0x9c,0x0,0x19,0x1,0x1b,0x1,0xba,0x0,0x29,0x0,0x7e,0xff, +0x41,0xff,0x4b,0xff,0x18,0xff,0xec,0xfe,0xcb,0xfe,0x97,0xfe, +0xb0,0xfe,0xf5,0xfe,0x40,0xff,0xdb,0xff,0x8d,0x0,0xb,0x1, +0x5d,0x1,0x6b,0x1,0x35,0x1,0xbb,0x0,0xc,0x0,0x91,0xff, +0x54,0xff,0x3b,0xff,0x69,0xff,0xa2,0xff,0xbf,0xff,0xdc,0xff, +0xbb,0xff,0x78,0xff,0x85,0xff,0xc3,0xff,0xb,0x0,0x4c,0x0, +0x47,0x0,0x8,0x0,0xb1,0xff,0x44,0xff,0xef,0xfe,0xd3,0xfe, +0xf8,0xfe,0x4c,0xff,0x99,0xff,0xd7,0xff,0x18,0x0,0x5b,0x0, +0xb2,0x0,0x6,0x1,0x23,0x1,0x14,0x1,0xf7,0x0,0xe7,0x0, +0xd4,0x0,0xb2,0x0,0xb2,0x0,0xa2,0x0,0x53,0x0,0x36,0x0, +0x46,0x0,0x34,0x0,0x2f,0x0,0x17,0x0,0xd8,0xff,0xde,0xff, +0x4,0x0,0xe7,0xff,0x94,0xff,0x6,0xff,0x81,0xfe,0x6f,0xfe, +0xac,0xfe,0x32,0xff,0xe3,0xff,0x41,0x0,0x53,0x0,0x58,0x0, +0x43,0x0,0x32,0x0,0x30,0x0,0x15,0x0,0xfe,0xff,0x0,0x0, +0xfc,0xff,0xcf,0xff,0x7d,0xff,0x3c,0xff,0x25,0xff,0x2b,0xff, +0x4e,0xff,0x54,0xff,0x35,0xff,0x7b,0xff,0x3e,0x0,0xe1,0x0, +0x8,0x1,0xc9,0x0,0x47,0x0,0xc0,0xff,0x66,0xff,0x31,0xff, +0x15,0xff,0x19,0xff,0x27,0xff,0x20,0xff,0x1a,0xff,0x34,0xff, +0x7c,0xff,0x2,0x0,0xac,0x0,0x2b,0x1,0x42,0x1,0x15,0x1, +0x0,0x1,0x0,0x1,0xe8,0x0,0x9,0x1,0x75,0x1,0xb6,0x1, +0xb4,0x1,0x7d,0x1,0xf7,0x0,0x7e,0x0,0x41,0x0,0xbf,0xff, +0xfc,0xfe,0x88,0xfe,0x97,0xfe,0xfd,0xfe,0x46,0xff,0x1b,0xff, +0xd3,0xfe,0xb1,0xfe,0x98,0xfe,0xa9,0xfe,0xd5,0xfe,0xd5,0xfe, +0xe9,0xfe,0x41,0xff,0x82,0xff,0x8e,0xff,0x7e,0xff,0x6b,0xff, +0x87,0xff,0xb6,0xff,0xd2,0xff,0x24,0x0,0x8a,0x0,0x87,0x0, +0x52,0x0,0x54,0x0,0x73,0x0,0x91,0x0,0x91,0x0,0x61,0x0, +0x4e,0x0,0x7d,0x0,0x96,0x0,0x54,0x0,0xe4,0xff,0xb0,0xff, +0xcb,0xff,0xd2,0xff,0x92,0xff,0x2c,0xff,0xc8,0xfe,0xb3,0xfe, +0xf3,0xfe,0x5,0xff,0xcc,0xfe,0xb8,0xfe,0xe3,0xfe,0x46,0xff, +0xdd,0xff,0x4a,0x0,0x3a,0x0,0xbd,0xff,0xf5,0xfe,0x15,0xfe, +0x52,0xfd,0xc2,0xfc,0x9f,0xfc,0x1c,0xfd,0x0,0xfe,0x8,0xff, +0x6,0x0,0xd0,0x0,0x79,0x1,0x45,0x2,0x3c,0x3,0x28,0x4, +0x85,0x4,0xc2,0x3,0xe,0x2,0x4d,0x0,0x11,0xff,0x56,0xfe, +0x3,0xfe,0x20,0xfe,0xb6,0xfe,0x98,0xff,0x6f,0x0,0xe1,0x0, +0xcc,0x0,0x76,0x0,0x56,0x0,0x87,0x0,0xaf,0x0,0x75,0x0, +0xdf,0xff,0x66,0xff,0x5f,0xff,0x7b,0xff,0x60,0xff,0x3d,0xff, +0x31,0xff,0xc,0xff,0xf5,0xfe,0x2c,0xff,0x83,0xff,0xd8,0xff, +0x58,0x0,0xf4,0x0,0x6f,0x1,0xbf,0x1,0xb3,0x1,0xb,0x1, +0xc,0x0,0x24,0xff,0x53,0xfe,0x7b,0xfd,0xc0,0xfc,0x75,0xfc, +0xef,0xfc,0x1a,0xfe,0x34,0xff,0x88,0xff,0x34,0xff,0xc6,0xfe, +0x81,0xfe,0x68,0xfe,0x65,0xfe,0x5f,0xfe,0x88,0xfe,0x3e,0xff, +0x58,0x0,0x4e,0x1,0xe9,0x1,0x32,0x2,0x40,0x2,0x28,0x2, +0xc6,0x1,0x1,0x1,0x58,0x0,0x3b,0x0,0x5c,0x0,0x68,0x0, +0x7a,0x0,0xa0,0x0,0xae,0x0,0x8a,0x0,0x55,0x0,0x38,0x0, +0x3e,0x0,0x64,0x0,0x95,0x0,0xa9,0x0,0x9c,0x0,0x73,0x0, +0x1b,0x0,0xb6,0xff,0x76,0xff,0x12,0xff,0x67,0xfe,0xe7,0xfd, +0xbe,0xfd,0xc0,0xfd,0x14,0xfe,0xc0,0xfe,0x6e,0xff,0x15,0x0, +0xc9,0x0,0x42,0x1,0x45,0x1,0xeb,0x0,0x70,0x0,0x1c,0x0, +0xfb,0xff,0xc9,0xff,0x82,0xff,0x89,0xff,0xfa,0xff,0x6d,0x0, +0x73,0x0,0x1,0x0,0x6a,0xff,0xd,0xff,0x12,0xff,0x4f,0xff, +0x8c,0xff,0xc3,0xff,0xf9,0xff,0x13,0x0,0xf9,0xff,0xb8,0xff, +0x6a,0xff,0x31,0xff,0x35,0xff,0x83,0xff,0x4,0x0,0x94,0x0, +0xc,0x1,0x64,0x1,0xca,0x1,0x41,0x2,0x81,0x2,0x59,0x2, +0xf4,0x1,0x9e,0x1,0x88,0x1,0xa7,0x1,0xb6,0x1,0x89,0x1, +0x33,0x1,0xeb,0x0,0xea,0x0,0x6,0x1,0xcc,0x0,0x3a,0x0, +0xb2,0xff,0x51,0xff,0xf4,0xfe,0x73,0xfe,0xd9,0xfd,0x9d,0xfd, +0xff,0xfd,0x7b,0xfe,0xb7,0xfe,0xf4,0xfe,0x3d,0xff,0x6b,0xff, +0x9c,0xff,0xd6,0xff,0xfc,0xff,0x41,0x0,0xda,0x0,0x7f,0x1, +0xab,0x1,0x37,0x1,0x90,0x0,0x34,0x0,0x1f,0x0,0x20,0x0, +0x44,0x0,0x9e,0x0,0x15,0x1,0x7a,0x1,0xa8,0x1,0xb5,0x1, +0xc5,0x1,0xbc,0x1,0x6c,0x1,0xf0,0x0,0x71,0x0,0xea,0xff, +0x7d,0xff,0x8d,0xff,0x19,0x0,0x89,0x0,0x8d,0x0,0x69,0x0, +0x4d,0x0,0x3c,0x0,0x45,0x0,0x56,0x0,0x59,0x0,0x7e,0x0, +0xdf,0x0,0x34,0x1,0x40,0x1,0x17,0x1,0xee,0x0,0x3,0x1, +0x5b,0x1,0x72,0x1,0xdc,0x0,0xfd,0xff,0x6f,0xff,0x44,0xff, +0x67,0xff,0xbd,0xff,0xdc,0xff,0xaa,0xff,0x85,0xff,0x5a,0xff, +0xf2,0xfe,0xa4,0xfe,0xa5,0xfe,0xcb,0xfe,0x2d,0xff,0xb8,0xff, +0xf6,0xff,0xcd,0xff,0x7f,0xff,0x3b,0xff,0x28,0xff,0x36,0xff, +0x10,0xff,0xcd,0xfe,0xcc,0xfe,0x8,0xff,0x4c,0xff,0x94,0xff, +0xd9,0xff,0x11,0x0,0x32,0x0,0x20,0x0,0xcf,0xff,0x4c,0xff, +0xb5,0xfe,0x26,0xfe,0x88,0xfd,0xac,0xfc,0xc4,0xfb,0x20,0xfb, +0xc6,0xfa,0xd9,0xfa,0xab,0xfb,0x21,0xfd,0xf3,0xfe,0xec,0x0, +0x9a,0x2,0xf5,0x3,0xb6,0x5,0xcf,0x7,0xf4,0x8,0x4f,0x8, +0x40,0x6,0xb3,0x3,0x8c,0x1,0x22,0x0,0x2d,0xff,0xb8,0xfe, +0x3e,0xff,0xa7,0x0,0xfd,0x1,0x5a,0x2,0xc9,0x1,0x37,0x1, +0x59,0x1,0xbf,0x1,0x82,0x1,0x8d,0x0,0x9a,0xff,0x26,0xff, +0x10,0xff,0xdd,0xfe,0x10,0xfe,0xab,0xfc,0x7a,0xfb,0x2e,0xfb, +0x9e,0xfb,0x59,0xfc,0x40,0xfd,0x5e,0xfe,0xb1,0xff,0x1,0x1, +0xf0,0x1,0x71,0x2,0xcf,0x2,0x13,0x3,0xf7,0x2,0x45,0x2, +0xea,0x0,0x1f,0xff,0xb2,0xfd,0x77,0xfd,0x4b,0xfe,0x45,0xff, +0xa7,0xff,0x38,0xff,0x56,0xfe,0x9f,0xfd,0x24,0xfd,0xa4,0xfc, +0x6a,0xfc,0xcc,0xfc,0xbe,0xfd,0x47,0xff,0xe,0x1,0x37,0x2, +0xaa,0x2,0xe2,0x2,0xe7,0x2,0xa0,0x2,0x8,0x2,0x2,0x1, +0x10,0x0,0x11,0x0,0xec,0x0,0xcd,0x1,0x3b,0x2,0x3a,0x2, +0x16,0x2,0x26,0x2,0x75,0x2,0xdf,0x2,0x49,0x3,0xa5,0x3, +0xe0,0x3,0xbb,0x3,0xf2,0x2,0x70,0x1,0x98,0xff,0x49,0xfe, +0xef,0xfd,0xee,0xfd,0x9a,0xfd,0xf1,0xfc,0x5c,0xfc,0x91,0xfc, +0xc0,0xfd,0x7,0xff,0xc7,0xff,0x43,0x0,0x9c,0x0,0xd3,0x0, +0x6,0x1,0xf3,0x0,0x77,0x0,0xff,0xff,0xdf,0xff,0x10,0x0, +0x40,0x0,0x23,0x0,0x5,0x0,0x47,0x0,0xa1,0x0,0xcc,0x0, +0xba,0x0,0x63,0x0,0x2f,0x0,0x81,0x0,0xfb,0x0,0x3b,0x1, +0x27,0x1,0x96,0x0,0xc0,0xff,0x1e,0xff,0xbe,0xfe,0x89,0xfe, +0x9a,0xfe,0x14,0xff,0xed,0xff,0xd8,0x0,0x84,0x1,0xe9,0x1, +0x6,0x2,0xed,0x1,0xc1,0x1,0x77,0x1,0x29,0x1,0x2f,0x1, +0x6c,0x1,0x8c,0x1,0x9f,0x1,0xb0,0x1,0xa9,0x1,0x99,0x1, +0x71,0x1,0x24,0x1,0xe3,0x0,0xab,0x0,0x4b,0x0,0xc1,0xff, +0x22,0xff,0x93,0xfe,0x5b,0xfe,0x90,0xfe,0xce,0xfe,0xa7,0xfe, +0x63,0xfe,0xaa,0xfe,0x5c,0xff,0xf4,0xff,0x6c,0x0,0xb3,0x0, +0xa4,0x0,0x91,0x0,0x83,0x0,0x13,0x0,0x86,0xff,0x60,0xff, +0x8c,0xff,0xcb,0xff,0xeb,0xff,0xd2,0xff,0xc4,0xff,0xf9,0xff, +0x4d,0x0,0xa2,0x0,0xe1,0x0,0xd4,0x0,0x71,0x0,0xe3,0xff, +0x6b,0xff,0x34,0xff,0x2b,0xff,0x46,0xff,0x7e,0xff,0x99,0xff, +0xa2,0xff,0xec,0xff,0x60,0x0,0xb1,0x0,0xde,0x0,0xec,0x0, +0xe0,0x0,0xff,0x0,0x59,0x1,0x80,0x1,0x4e,0x1,0x2c,0x1, +0x41,0x1,0x46,0x1,0x2f,0x1,0x24,0x1,0x1c,0x1,0x28,0x1, +0x54,0x1,0x3c,0x1,0xa9,0x0,0x1,0x0,0xa8,0xff,0xa2,0xff, +0x87,0xff,0xf3,0xfe,0x49,0xfe,0x14,0xfe,0x21,0xfe,0x43,0xfe, +0x8c,0xfe,0xae,0xfe,0x8c,0xfe,0x89,0xfe,0xaf,0xfe,0xb7,0xfe, +0x9b,0xfe,0x7c,0xfe,0x85,0xfe,0xb9,0xfe,0xf5,0xfe,0x34,0xff, +0x5a,0xff,0x54,0xff,0x80,0xff,0xa,0x0,0xa4,0x0,0x20,0x1, +0x52,0x1,0x31,0x1,0x28,0x1,0x30,0x1,0xd8,0x0,0x4f,0x0, +0xee,0xff,0x9a,0xff,0x5f,0xff,0x44,0xff,0x31,0xff,0x54,0xff, +0xa9,0xff,0xe0,0xff,0x3,0x0,0x27,0x0,0x26,0x0,0x28,0x0, +0x54,0x0,0x6d,0x0,0x40,0x0,0xdd,0xff,0x84,0xff,0x6b,0xff, +0x56,0xff,0xf1,0xfe,0x2e,0xfe,0x14,0xfd,0xd1,0xfb,0xc6,0xfa, +0x2c,0xfa,0x46,0xfa,0x43,0xfb,0xd4,0xfc,0xa3,0xfe,0x96,0x0, +0x72,0x2,0x2c,0x4,0xf5,0x5,0x80,0x7,0x21,0x8,0x73,0x7, +0x8d,0x5,0x13,0x3,0xbc,0x0,0xd9,0xfe,0x9c,0xfd,0x2c,0xfd, +0x59,0xfd,0xd9,0xfd,0x79,0xfe,0xfc,0xfe,0x5f,0xff,0xdf,0xff, +0x91,0x0,0x31,0x1,0x67,0x1,0x28,0x1,0xb5,0x0,0x3d,0x0, +0xb9,0xff,0x8,0xff,0x1b,0xfe,0x32,0xfd,0xa8,0xfc,0x8c,0xfc, +0xe2,0xfc,0xd3,0xfd,0x25,0xff,0x78,0x0,0xb8,0x1,0xca,0x2, +0x89,0x3,0x13,0x4,0x42,0x4,0xb2,0x3,0x78,0x2,0xfd,0x0, +0x8e,0xff,0x7d,0xfe,0xd6,0xfd,0x61,0xfd,0x2f,0xfd,0x6d,0xfd, +0xd1,0xfd,0xf8,0xfd,0xdb,0xfd,0x9d,0xfd,0x6c,0xfd,0x65,0xfd, +0x7f,0xfd,0xb6,0xfd,0x9,0xfe,0x79,0xfe,0x2,0xff,0x86,0xff, +0xe3,0xff,0x34,0x0,0x88,0x0,0xd0,0x0,0x19,0x1,0x49,0x1, +0x35,0x1,0x2a,0x1,0x78,0x1,0xcc,0x1,0xd3,0x1,0x95,0x1, +0x23,0x1,0xa2,0x0,0x47,0x0,0x33,0x0,0x88,0x0,0x31,0x1, +0xc6,0x1,0x3,0x2,0xc4,0x1,0x12,0x1,0x55,0x0,0xad,0xff, +0xca,0xfe,0xde,0xfd,0x55,0xfd,0x19,0xfd,0x20,0xfd,0x93,0xfd, +0x3e,0xfe,0xee,0xfe,0xb2,0xff,0x62,0x0,0xdb,0x0,0x19,0x1, +0xfe,0x0,0xb7,0x0,0xae,0x0,0xc9,0x0,0xaf,0x0,0x64,0x0, +0x0,0x0,0x7a,0xff,0xfe,0xfe,0xc8,0xfe,0xb7,0xfe,0x8f,0xfe, +0x6e,0xfe,0x95,0xfe,0x5,0xff,0x93,0xff,0x8,0x0,0x3d,0x0, +0x61,0x0,0x92,0x0,0x85,0x0,0x1d,0x0,0xa5,0xff,0x31,0xff, +0xc3,0xfe,0x9f,0xfe,0xcf,0xfe,0x29,0xff,0xb9,0xff,0x67,0x0, +0xfb,0x0,0x7f,0x1,0xe4,0x1,0x1,0x2,0x7,0x2,0x32,0x2, +0x4d,0x2,0x18,0x2,0x93,0x1,0xe0,0x0,0x3c,0x0,0xd7,0xff, +0xab,0xff,0x86,0xff,0x46,0xff,0x4,0xff,0xf5,0xfe,0xd,0xff, +0x26,0xff,0x44,0xff,0x66,0xff,0x72,0xff,0x63,0xff,0x45,0xff, +0x1e,0xff,0x6,0xff,0x15,0xff,0x48,0xff,0x84,0xff,0xb8,0xff, +0xed,0xff,0x2d,0x0,0x49,0x0,0x27,0x0,0x8,0x0,0x12,0x0, +0x2c,0x0,0x5c,0x0,0xa9,0x0,0xdf,0x0,0xe9,0x0,0xd5,0x0, +0x9b,0x0,0x4b,0x0,0x8,0x0,0xd9,0xff,0xd9,0xff,0x12,0x0, +0x4a,0x0,0x69,0x0,0x70,0x0,0x43,0x0,0xfc,0xff,0xde,0xff, +0xe4,0xff,0x3,0x0,0x55,0x0,0xa5,0x0,0xbd,0x0,0xce,0x0, +0xe9,0x0,0xe5,0x0,0xe8,0x0,0x21,0x1,0x47,0x1,0x1b,0x1, +0xc9,0x0,0x74,0x0,0x20,0x0,0xfe,0xff,0x23,0x0,0x5d,0x0, +0x96,0x0,0xc8,0x0,0xce,0x0,0xaf,0x0,0x7c,0x0,0x20,0x0, +0xd4,0xff,0xc9,0xff,0x92,0xff,0xe9,0xfe,0x44,0xfe,0x2,0xfe, +0x23,0xfe,0x93,0xfe,0x5,0xff,0x37,0xff,0x38,0xff,0x29,0xff, +0x21,0xff,0x1b,0xff,0xf5,0xfe,0xe3,0xfe,0x43,0xff,0xd9,0xff, +0x3e,0x0,0x73,0x0,0x7d,0x0,0x60,0x0,0x35,0x0,0xee,0xff, +0x8d,0xff,0x44,0xff,0x13,0xff,0xe7,0xfe,0xac,0xfe,0x40,0xfe, +0xbf,0xfd,0x40,0xfd,0x86,0xfc,0xb1,0xfb,0x14,0xfb,0x7e,0xfa, +0xf0,0xf9,0xf1,0xf9,0xcc,0xfa,0xc1,0xfc,0xd5,0xff,0xdb,0x2, +0xb9,0x4,0xd2,0x5,0x1,0x7,0x67,0x8,0x35,0x9,0xb,0x8, +0xdf,0x4,0xa1,0x1,0xb7,0xff,0xe3,0xfe,0xac,0xfe,0xf1,0xfe, +0xd4,0xff,0x97,0x1,0x69,0x3,0xbc,0x3,0x8f,0x2,0x81,0x1, +0x86,0x1,0x5,0x2,0xdc,0x1,0x98,0x0,0xeb,0xfe,0xf4,0xfd, +0xe8,0xfd,0xd8,0xfd,0xfb,0xfc,0xb2,0xfb,0xeb,0xfa,0x17,0xfb, +0x5,0xfc,0x38,0xfd,0x6e,0xfe,0xc8,0xff,0x40,0x1,0x73,0x2, +0x32,0x3,0x70,0x3,0x13,0x3,0x4c,0x2,0x4b,0x1,0xfa,0xff, +0x97,0xfe,0x98,0xfd,0x5,0xfd,0xed,0xfc,0x98,0xfd,0xb0,0xfe, +0x5b,0xff,0x47,0xff,0xc4,0xfe,0x36,0xfe,0xe5,0xfd,0xd4,0xfd, +0xaa,0xfd,0x5b,0xfd,0xa6,0xfd,0xee,0xfe,0x76,0x0,0x6c,0x1, +0x9c,0x1,0x45,0x1,0x1f,0x1,0x74,0x1,0x8a,0x1,0x34,0x1, +0x33,0x1,0xbe,0x1,0x88,0x2,0x4b,0x3,0x74,0x3,0x26,0x3, +0x40,0x3,0x87,0x3,0x38,0x3,0xb3,0x2,0x71,0x2,0x5c,0x2, +0x90,0x2,0xc6,0x2,0x2a,0x2,0xbc,0x0,0x44,0xff,0x33,0xfe, +0x95,0xfd,0x2c,0xfd,0x96,0xfc,0x1,0xfc,0x1e,0xfc,0x12,0xfd, +0x38,0xfe,0x1f,0xff,0xe6,0xff,0x98,0x0,0x9,0x1,0x39,0x1, +0x23,0x1,0xae,0x0,0x19,0x0,0xb0,0xff,0x5c,0xff,0xc,0xff, +0xf7,0xfe,0x33,0xff,0xa7,0xff,0x26,0x0,0x6b,0x0,0x54,0x0, +0x11,0x0,0xf8,0xff,0x2c,0x0,0x84,0x0,0xc3,0x0,0xd2,0x0, +0xab,0x0,0x47,0x0,0xc5,0xff,0x5c,0xff,0xb,0xff,0xa1,0xfe, +0x3c,0xfe,0x46,0xfe,0xda,0xfe,0xbe,0xff,0xb1,0x0,0x75,0x1, +0xf6,0x1,0x6d,0x2,0xee,0x2,0x45,0x3,0x46,0x3,0xea,0x2, +0x74,0x2,0x2f,0x2,0xef,0x1,0x83,0x1,0x34,0x1,0x27,0x1, +0x1b,0x1,0xe5,0x0,0x6d,0x0,0xb0,0xff,0x6,0xff,0xbb,0xfe, +0x9e,0xfe,0x62,0xfe,0x1c,0xfe,0xd,0xfe,0x29,0xfe,0x43,0xfe, +0x79,0xfe,0xe1,0xfe,0x3e,0xff,0x6b,0xff,0x60,0xff,0x25,0xff, +0x8,0xff,0x37,0xff,0x7c,0xff,0xab,0xff,0xbe,0xff,0xc2,0xff, +0xdb,0xff,0xe5,0xff,0xae,0xff,0x8e,0xff,0xc8,0xff,0x21,0x0, +0x74,0x0,0xa6,0x0,0x82,0x0,0x29,0x0,0xda,0xff,0xa8,0xff, +0xa5,0xff,0xb1,0xff,0xa4,0xff,0xb0,0xff,0xde,0xff,0xf6,0xff, +0x13,0x0,0x60,0x0,0xc3,0x0,0x31,0x1,0x93,0x1,0xac,0x1, +0x6e,0x1,0xd,0x1,0xcf,0x0,0xd6,0x0,0x0,0x1,0x20,0x1, +0x1c,0x1,0xe0,0x0,0x8c,0x0,0x62,0x0,0x60,0x0,0x57,0x0, +0x24,0x0,0xd6,0xff,0x9e,0xff,0x81,0xff,0x86,0xff,0xbc,0xff, +0xcb,0xff,0x7c,0xff,0x31,0xff,0x7,0xff,0xd4,0xfe,0xd9,0xfe, +0xd,0xff,0x20,0xff,0x5a,0xff,0xbe,0xff,0xb2,0xff,0x59,0xff, +0x3e,0xff,0x46,0xff,0x45,0xff,0x4f,0xff,0x56,0xff,0x53,0xff, +0x5a,0xff,0x76,0xff,0xc1,0xff,0x27,0x0,0x71,0x0,0x9e,0x0, +0xba,0x0,0xc0,0x0,0xb7,0x0,0x8c,0x0,0x45,0x0,0x2e,0x0, +0x5d,0x0,0x9e,0x0,0xc6,0x0,0xb9,0x0,0x91,0x0,0x8d,0x0, +0x94,0x0,0x6c,0x0,0x20,0x0,0xd1,0xff,0xa8,0xff,0xca,0xff, +0xfc,0xff,0x9,0x0,0x2a,0x0,0x78,0x0,0xac,0x0,0x96,0x0, +0x1a,0x0,0x28,0xff,0xf7,0xfd,0xd1,0xfc,0xc0,0xfb,0xed,0xfa, +0xa6,0xfa,0xf5,0xfa,0xd6,0xfb,0x5b,0xfd,0x22,0xff,0xae,0x0, +0x23,0x2,0xad,0x3,0xe6,0x4,0x99,0x5,0xd4,0x5,0x44,0x5, +0xb7,0x3,0xc0,0x1,0x9,0x0,0xcd,0xfe,0x19,0xfe,0xf5,0xfd, +0x41,0xfe,0xcf,0xfe,0x97,0xff,0x77,0x0,0x5,0x1,0x8,0x1, +0xd9,0x0,0xe5,0x0,0x1e,0x1,0x25,0x1,0xc5,0x0,0x39,0x0, +0xd2,0xff,0x8e,0xff,0x37,0xff,0xb6,0xfe,0x35,0xfe,0xf,0xfe, +0x71,0xfe,0xd,0xff,0x8e,0xff,0x16,0x0,0xe4,0x0,0xcb,0x1, +0x67,0x2,0xa5,0x2,0x89,0x2,0xeb,0x1,0xfb,0x0,0x33,0x0, +0x9e,0xff,0xd,0xff,0x91,0xfe,0x3e,0xfe,0x22,0xfe,0x3b,0xfe, +0x46,0xfe,0x25,0xfe,0x11,0xfe,0x4,0xfe,0xce,0xfd,0x7b,0xfd, +0x3b,0xfd,0x52,0xfd,0xec,0xfd,0xcc,0xfe,0xb3,0xff,0x96,0x0, +0x3e,0x1,0x7b,0x1,0x68,0x1,0x32,0x1,0x2,0x1,0xd6,0x0, +0x9a,0x0,0x73,0x0,0x6e,0x0,0x5f,0x0,0x61,0x0,0x95,0x0, +0xcd,0x0,0x0,0x1,0x28,0x1,0x1d,0x1,0xfc,0x0,0xdf,0x0, +0xb3,0x0,0xa4,0x0,0xa9,0x0,0x5c,0x0,0xd8,0xff,0x61,0xff, +0xcf,0xfe,0x42,0xfe,0xd,0xfe,0xd,0xfe,0x1d,0xfe,0x75,0xfe, +0x2b,0xff,0x5,0x0,0xaf,0x0,0x8,0x1,0x28,0x1,0x37,0x1, +0x52,0x1,0x57,0x1,0xf3,0x0,0x47,0x0,0xda,0xff,0xb8,0xff, +0x9b,0xff,0x75,0xff,0x4e,0xff,0x29,0xff,0x12,0xff,0xf6,0xfe, +0xc8,0xfe,0xaf,0xfe,0xc7,0xfe,0xfd,0xfe,0x33,0xff,0x6c,0xff, +0xb4,0xff,0xd9,0xff,0xbc,0xff,0x9e,0xff,0xa2,0xff,0x9b,0xff, +0x7e,0xff,0x57,0xff,0x4a,0xff,0x98,0xff,0x1f,0x0,0x88,0x0, +0xdf,0x0,0x2a,0x1,0x2e,0x1,0x4,0x1,0xea,0x0,0xd6,0x0, +0xca,0x0,0xe9,0x0,0x26,0x1,0x4e,0x1,0x37,0x1,0xe7,0x0, +0x8e,0x0,0x4b,0x0,0x18,0x0,0xeb,0xff,0xbe,0xff,0x88,0xff, +0x47,0xff,0x2c,0xff,0x54,0xff,0x89,0xff,0xaa,0xff,0xda,0xff, +0x3,0x0,0x1,0x0,0xe,0x0,0x41,0x0,0x53,0x0,0x1b,0x0, +0xc7,0xff,0x9c,0xff,0xa6,0xff,0xa9,0xff,0x94,0xff,0x84,0xff, +0x71,0xff,0x82,0xff,0xd9,0xff,0x15,0x0,0x5,0x0,0xf9,0xff, +0xc,0x0,0x1d,0x0,0x2a,0x0,0x13,0x0,0xd0,0xff,0x8b,0xff, +0x4b,0xff,0xa,0xff,0xdf,0xfe,0xd0,0xfe,0xe4,0xfe,0x32,0xff, +0xab,0xff,0x11,0x0,0x40,0x0,0x5c,0x0,0x98,0x0,0xe0,0x0, +0x1d,0x1,0x51,0x1,0x50,0x1,0x21,0x1,0x13,0x1,0x8,0x1, +0xc6,0x0,0x82,0x0,0x53,0x0,0x2c,0x0,0x29,0x0,0x2e,0x0, +0xa,0x0,0xd7,0xff,0xae,0xff,0xb0,0xff,0x1e,0x0,0xbd,0x0, +0x14,0x1,0x12,0x1,0xe6,0x0,0xb3,0x0,0x85,0x0,0x5b,0x0, +0x3a,0x0,0x5,0x0,0xc1,0xff,0xb5,0xff,0xbc,0xff,0x82,0xff, +0x64,0xff,0x9c,0xff,0xc6,0xff,0xef,0xff,0x2c,0x0,0x1c,0x0, +0xea,0xff,0x3,0x0,0x2a,0x0,0x33,0x0,0x33,0x0,0x0,0x0, +0xb5,0xff,0x8e,0xff,0x43,0xff,0xb4,0xfe,0x41,0xfe,0x23,0xfe, +0x54,0xfe,0xd5,0xfe,0x76,0xff,0xec,0xff,0x23,0x0,0x3b,0x0, +0x4b,0x0,0x57,0x0,0x63,0x0,0x61,0x0,0x50,0x0,0x57,0x0, +0x6a,0x0,0x4b,0x0,0xf6,0xff,0x68,0xff,0x81,0xfe,0x71,0xfd, +0x76,0xfc,0x91,0xfb,0x9,0xfb,0x3e,0xfb,0x48,0xfc,0xf,0xfe, +0x23,0x0,0xda,0x1,0x7,0x3,0xeb,0x3,0xc9,0x4,0xb6,0x5, +0x26,0x6,0x37,0x5,0xd3,0x2,0xe4,0xff,0xa5,0xfd,0xe0,0xfc, +0x6e,0xfd,0xa2,0xfe,0xf4,0xff,0xfd,0x0,0x82,0x1,0x87,0x1, +0x36,0x1,0xeb,0x0,0xf9,0x0,0x2f,0x1,0x31,0x1,0xd7,0x0, +0x2a,0x0,0x6a,0xff,0xeb,0xfe,0xa9,0xfe,0x4d,0xfe,0x91,0xfd, +0xa2,0xfc,0xf,0xfc,0x47,0xfc,0x76,0xfd,0x56,0xff,0xec,0x0, +0x95,0x1,0xc3,0x1,0xeb,0x1,0x15,0x2,0x46,0x2,0x25,0x2, +0x4e,0x1,0x25,0x0,0x3a,0xff,0xab,0xfe,0x5b,0xfe,0x30,0xfe, +0x56,0xfe,0xfb,0xfe,0xa1,0xff,0xb5,0xff,0x3d,0xff,0x8f,0xfe, +0x3b,0xfe,0xa4,0xfe,0x58,0xff,0xd1,0xff,0x18,0x0,0x5b,0x0, +0xc5,0x0,0x3e,0x1,0x46,0x1,0xca,0x0,0x32,0x0,0xa5,0xff, +0x4f,0xff,0x6c,0xff,0xe4,0xff,0x9f,0x0,0x64,0x1,0xbf,0x1, +0xc6,0x1,0xce,0x1,0xbb,0x1,0x8c,0x1,0x7a,0x1,0x85,0x1, +0x9a,0x1,0x96,0x1,0x45,0x1,0xbd,0x0,0x27,0x0,0x88,0xff, +0xe1,0xfe,0x37,0xfe,0xb2,0xfd,0x87,0xfd,0x8e,0xfd,0xb6,0xfd, +0x28,0xfe,0xb3,0xfe,0x43,0xff,0xd,0x0,0xbb,0x0,0xee,0x0, +0xe2,0x0,0xb8,0x0,0x81,0x0,0x86,0x0,0x8a,0x0,0x39,0x0, +0xe3,0xff,0xd1,0xff,0xe9,0xff,0x3,0x0,0x3,0x0,0xee,0xff, +0xd1,0xff,0xa8,0xff,0xad,0xff,0xfc,0xff,0x4f,0x0,0xa6,0x0, +0xb,0x1,0x20,0x1,0xdb,0x0,0x71,0x0,0xdc,0xff,0x52,0xff, +0x14,0xff,0xed,0xfe,0xe1,0xfe,0x1a,0xff,0x60,0xff,0xb5,0xff, +0x43,0x0,0xc1,0x0,0x9,0x1,0x46,0x1,0x61,0x1,0x5c,0x1, +0x74,0x1,0x91,0x1,0x8d,0x1,0x84,0x1,0x69,0x1,0x20,0x1, +0xbc,0x0,0x4e,0x0,0xd8,0xff,0x67,0xff,0xfa,0xfe,0xa4,0xfe, +0x9a,0xfe,0xea,0xfe,0x49,0xff,0x78,0xff,0xa1,0xff,0xf1,0xff, +0x1a,0x0,0xe5,0xff,0xab,0xff,0xa4,0xff,0xac,0xff,0xca,0xff, +0x15,0x0,0x46,0x0,0x22,0x0,0xd4,0xff,0x98,0xff,0x84,0xff, +0x9e,0xff,0xd5,0xff,0x7,0x0,0x2a,0x0,0x42,0x0,0x60,0x0, +0x99,0x0,0xcf,0x0,0xd0,0x0,0xb5,0x0,0x9c,0x0,0x6f,0x0, +0x2e,0x0,0xfa,0xff,0xbd,0xff,0x6e,0xff,0x3b,0xff,0x3a,0xff, +0x48,0xff,0x4e,0xff,0x61,0xff,0xb1,0xff,0x33,0x0,0x83,0x0, +0x80,0x0,0x7a,0x0,0x7e,0x0,0x69,0x0,0x76,0x0,0xc0,0x0, +0xe5,0x0,0xcd,0x0,0xc6,0x0,0xc8,0x0,0xb5,0x0,0xbb,0x0, +0xdc,0x0,0xe0,0x0,0xc2,0x0,0x91,0x0,0x64,0x0,0x4c,0x0, +0x25,0x0,0xee,0xff,0xce,0xff,0xa3,0xff,0x4e,0xff,0x15,0xff, +0x11,0xff,0x18,0xff,0x31,0xff,0x54,0xff,0x5b,0xff,0x56,0xff, +0x54,0xff,0x5e,0xff,0x8a,0xff,0xb8,0xff,0xc6,0xff,0xd8,0xff, +0xf1,0xff,0x8,0x0,0x41,0x0,0x82,0x0,0x83,0x0,0x5e,0x0, +0x41,0x0,0x44,0x0,0x79,0x0,0xb3,0x0,0xc8,0x0,0xe2,0x0, +0xef,0x0,0xc3,0x0,0x93,0x0,0x6d,0x0,0x28,0x0,0xe3,0xff, +0xb2,0xff,0x79,0xff,0x53,0xff,0x50,0xff,0x44,0xff,0x38,0xff, +0x4f,0xff,0x76,0xff,0x92,0xff,0xaa,0xff,0xc8,0xff,0xee,0xff, +0x1a,0x0,0x4d,0x0,0x80,0x0,0xa2,0x0,0xbd,0x0,0xcb,0x0, +0xb0,0x0,0x87,0x0,0x69,0x0,0x25,0x0,0xcf,0xff,0xbb,0xff, +0xda,0xff,0xe9,0xff,0xe2,0xff,0xe2,0xff,0xf4,0xff,0xfb,0xff, +0xe0,0xff,0xca,0xff,0xc3,0xff,0x90,0xff,0x46,0xff,0x17,0xff, +0xe8,0xfe,0xc4,0xfe,0xe5,0xfe,0x27,0xff,0x67,0xff,0xc2,0xff, +0x34,0x0,0x84,0x0,0x98,0x0,0x8e,0x0,0x96,0x0,0xc3,0x0, +0xfa,0x0,0x21,0x1,0x2b,0x1,0xa,0x1,0xc2,0x0,0x66,0x0, +0x15,0x0,0xe8,0xff,0xd5,0xff,0xd6,0xff,0xe3,0xff,0xdd,0xff, +0xcc,0xff,0xda,0xff,0xf2,0xff,0xf,0x0,0x51,0x0,0x8d,0x0, +0x95,0x0,0x74,0x0,0x28,0x0,0xd4,0xff,0xbc,0xff,0xc1,0xff, +0xbe,0xff,0xe2,0xff,0x20,0x0,0x41,0x0,0x5a,0x0,0x82,0x0, +0xa4,0x0,0x9c,0x0,0x6d,0x0,0x46,0x0,0x36,0x0,0x17,0x0, +0xf3,0xff,0xd3,0xff,0xa6,0xff,0x8f,0xff,0x95,0xff,0x89,0xff, +0x7f,0xff,0x7d,0xff,0x5b,0xff,0x56,0xff,0x85,0xff,0x96,0xff, +0x9f,0xff,0xc4,0xff,0xc8,0xff,0xc4,0xff,0xf5,0xff,0x26,0x0, +0x4d,0x0,0x78,0x0,0x7d,0x0,0x71,0x0,0x77,0x0,0x58,0x0, +0x18,0x0,0xf1,0xff,0xd2,0xff,0xb5,0xff,0xc4,0xff,0xf2,0xff, +0x1b,0x0,0x3d,0x0,0x63,0x0,0x81,0x0,0x81,0x0,0x65,0x0, +0x3e,0x0,0x29,0x0,0x4b,0x0,0x8f,0x0,0xb0,0x0,0x9a,0x0, +0x55,0x0,0xe6,0xff,0x7b,0xff,0x1e,0xff,0xc0,0xfe,0x9b,0xfe, +0xb6,0xfe,0xcd,0xfe,0xf3,0xfe,0x54,0xff,0xcc,0xff,0x3f,0x0, +0x99,0x0,0xd2,0x0,0x12,0x1,0x3e,0x1,0x21,0x1,0xda,0x0, +0x72,0x0,0xf0,0xff,0xaa,0xff,0x9c,0xff,0x7d,0xff,0x60,0xff, +0x4d,0xff,0x38,0xff,0x48,0xff,0x76,0xff,0xa1,0xff,0xe9,0xff, +0x3b,0x0,0x65,0x0,0x70,0x0,0x5b,0x0,0x48,0x0,0x52,0x0, +0x34,0x0,0xea,0xff,0xc2,0xff,0xa2,0xff,0x81,0xff,0x9d,0xff, +0xd7,0xff,0xfc,0xff,0x1b,0x0,0x18,0x0,0xf4,0xff,0xe3,0xff, +0xde,0xff,0xdb,0xff,0xe8,0xff,0xf0,0xff,0xfb,0xff,0x14,0x0, +0x27,0x0,0x4e,0x0,0x8a,0x0,0x96,0x0,0x7a,0x0,0x57,0x0, +0x5,0x0,0x93,0xff,0x47,0xff,0x38,0xff,0x63,0xff,0xaf,0xff, +0xe5,0xff,0xfe,0xff,0x21,0x0,0x4e,0x0,0x62,0x0,0x51,0x0, +0x3a,0x0,0x21,0x0,0xf4,0xff,0xe3,0xff,0xf2,0xff,0xc9,0xff, +0x8b,0xff,0x98,0xff,0xb0,0xff,0x94,0xff,0x78,0xff,0x67,0xff, +0x5e,0xff,0x88,0xff,0xdf,0xff,0x35,0x0,0x65,0x0,0x76,0x0, +0x9a,0x0,0xbe,0x0,0xa5,0x0,0x81,0x0,0x6e,0x0,0x36,0x0, +0x8,0x0,0x23,0x0,0x3a,0x0,0x1c,0x0,0xf5,0xff,0xea,0xff, +0x2,0x0,0x1b,0x0,0x22,0x0,0x3b,0x0,0x5d,0x0,0x5a,0x0, +0x58,0x0,0x79,0x0,0x83,0x0,0x47,0x0,0xd8,0xff,0x7e,0xff, +0x6d,0xff,0x73,0xff,0x64,0xff,0x6c,0xff,0x9d,0xff,0xe7,0xff, +0x52,0x0,0xaf,0x0,0xc0,0x0,0xbb,0x0,0xd6,0x0,0xd6,0x0, +0x93,0x0,0x4f,0x0,0x2a,0x0,0xf7,0xff,0xb6,0xff,0x96,0xff, +0xa1,0xff,0xbf,0xff,0xde,0xff,0xf8,0xff,0x3,0x0,0xf1,0xff, +0xdf,0xff,0xf7,0xff,0xb,0x0,0xf9,0xff,0x5,0x0,0x17,0x0, +0xe9,0xff,0xd2,0xff,0xff,0xff,0xe,0x0,0x1,0x0,0x8,0x0, +0xe8,0xff,0xba,0xff,0xd6,0xff,0xfd,0xff,0xe9,0xff,0xcc,0xff, +0xd1,0xff,0xee,0xff,0x21,0x0,0x5f,0x0,0x88,0x0,0x7d,0x0, +0x5f,0x0,0x55,0x0,0x4a,0x0,0x34,0x0,0x25,0x0,0x1,0x0, +0xde,0xff,0xe1,0xff,0xd2,0xff,0xaf,0xff,0xc3,0xff,0xf3,0xff, +0x1c,0x0,0x51,0x0,0x57,0x0,0x22,0x0,0xff,0xff,0xdc,0xff, +0xa2,0xff,0x8d,0xff,0x93,0xff,0x89,0xff,0x82,0xff,0x95,0xff, +0xc8,0xff,0xfc,0xff,0x3,0x0,0xff,0xff,0x1a,0x0,0x3d,0x0, +0x58,0x0,0x48,0x0,0xfa,0xff,0xd2,0xff,0xe7,0xff,0xd7,0xff, +0xab,0xff,0x98,0xff,0x95,0xff,0xb3,0xff,0xd6,0xff,0xcf,0xff, +0xe7,0xff,0x32,0x0,0x5a,0x0,0x81,0x0,0xcc,0x0,0xe5,0x0, +0xb9,0x0,0x7b,0x0,0x25,0x0,0xc8,0xff,0x8c,0xff,0x61,0xff, +0x32,0xff,0x16,0xff,0x29,0xff,0x5e,0xff,0xa4,0xff,0x1,0x0, +0x47,0x0,0x56,0x0,0x69,0x0,0x74,0x0,0x48,0x0,0x36,0x0, +0x4b,0x0,0x1f,0x0,0xe6,0xff,0xed,0xff,0xf9,0xff,0x9,0x0, +0x31,0x0,0x2e,0x0,0x10,0x0,0xa,0x0,0x2,0x0,0xe,0x0, +0x2f,0x0,0x13,0x0,0xc2,0xff,0x82,0xff,0x6c,0xff,0x9c,0xff, +0xe9,0xff,0xe3,0xff,0x9e,0xff,0x6b,0xff,0x45,0xff,0x21,0xff, +0x12,0xff,0x32,0xff,0x86,0xff,0xdd,0xff,0x19,0x0,0x48,0x0, +0x5a,0x0,0x59,0x0,0x69,0x0,0x73,0x0,0x66,0x0,0x5a,0x0, +0x3c,0x0,0x1e,0x0,0x25,0x0,0x27,0x0,0x11,0x0,0x6,0x0, +0xf8,0xff,0xf3,0xff,0xb,0x0,0x10,0x0,0xfd,0xff,0xf9,0xff, +0xef,0xff,0xdb,0xff,0xc7,0xff,0x91,0xff,0x4f,0xff,0x2f,0xff, +0x28,0xff,0x4a,0xff,0x94,0xff,0xcc,0xff,0xf9,0xff,0x33,0x0, +0x54,0x0,0x60,0x0,0x7e,0x0,0x8a,0x0,0x73,0x0,0x66,0x0, +0x77,0x0,0x84,0x0,0x6a,0x0,0x38,0x0,0x13,0x0,0xfd,0xff, +0xe4,0xff,0xb7,0xff,0x71,0xff,0x38,0xff,0x31,0xff,0x41,0xff, +0x58,0xff,0x81,0xff,0xaa,0xff,0xcb,0xff,0xea,0xff,0xee,0xff, +0xdf,0xff,0xe1,0xff,0xda,0xff,0xc7,0xff,0xc7,0xff,0xcc,0xff, +0xd6,0xff,0x5,0x0,0x3c,0x0,0x59,0x0,0x72,0x0,0x8d,0x0, +0x90,0x0,0x80,0x0,0x85,0x0,0x94,0x0,0x7d,0x0,0x4f,0x0, +0x3b,0x0,0x23,0x0,0xec,0xff,0xc5,0xff,0xac,0xff,0x7a,0xff, +0x51,0xff,0x4e,0xff,0x5d,0xff,0x7e,0xff,0x9e,0xff,0x9f,0xff, +0xa6,0xff,0xd0,0xff,0x7,0x0,0x3e,0x0,0x60,0x0,0x4d,0x0, +0x22,0x0,0x7,0x0,0xfc,0xff,0xfa,0xff,0x1,0x0,0x9,0x0, +0xc,0x0,0xfc,0xff,0xde,0xff,0xd3,0xff,0xd3,0xff,0xc9,0xff, +0xd5,0xff,0xa,0x0,0x40,0x0,0x69,0x0,0x97,0x0,0xb7,0x0, +0xab,0x0,0x69,0x0,0x1,0x0,0xa5,0xff,0x71,0xff,0x54,0xff, +0x5e,0xff,0x95,0xff,0xc2,0xff,0xde,0xff,0x10,0x0,0x41,0x0, +0x61,0x0,0x85,0x0,0x82,0x0,0x4b,0x0,0x31,0x0,0x39,0x0, +0x27,0x0,0x3,0x0,0xec,0xff,0xe6,0xff,0xf3,0xff,0xec,0xff, +0xc0,0xff,0xa2,0xff,0xa3,0xff,0xb0,0xff,0xd2,0xff,0xfd,0xff, +0xd,0x0,0x10,0x0,0x1c,0x0,0x36,0x0,0x43,0x0,0x14,0x0, +0xcb,0xff,0xb2,0xff,0xb1,0xff,0xa9,0xff,0xbc,0xff,0xd9,0xff, +0xe3,0xff,0xf6,0xff,0xb,0x0,0x12,0x0,0x1b,0x0,0xe,0x0, +0xe1,0xff,0xd2,0xff,0xea,0xff,0x7,0x0,0x28,0x0,0x33,0x0, +0xb,0x0,0xe1,0xff,0xdd,0xff,0xe3,0xff,0xe0,0xff,0xec,0xff, +0xd,0x0,0x20,0x0,0x16,0x0,0xb,0x0,0x0,0x0,0xf1,0xff, +0x3,0x0,0x2e,0x0,0x45,0x0,0x54,0x0,0x6c,0x0,0x78,0x0, +0x71,0x0,0x51,0x0,0x1d,0x0,0x2,0x0,0xf6,0xff,0xd6,0xff, +0xcb,0xff,0xe0,0xff,0xde,0xff,0xcd,0xff,0xd3,0xff,0xdc,0xff, +0xe1,0xff,0xee,0xff,0xe8,0xff,0xc7,0xff,0xb4,0xff,0xbf,0xff, +0xd8,0xff,0xf9,0xff,0x1a,0x0,0x2b,0x0,0x42,0x0,0x63,0x0, +0x58,0x0,0x2c,0x0,0x21,0x0,0x18,0x0,0xde,0xff,0xbb,0xff, +0xd2,0xff,0xe2,0xff,0xea,0xff,0x7,0x0,0x16,0x0,0xf,0x0, +0x15,0x0,0x25,0x0,0x3e,0x0,0x56,0x0,0x52,0x0,0x34,0x0, +0x13,0x0,0x1,0x0,0xfb,0xff,0xe6,0xff,0xc2,0xff,0xb1,0xff, +0xac,0xff,0xa5,0xff,0xba,0xff,0xe3,0xff,0x2,0x0,0x1d,0x0, +0x3a,0x0,0x55,0x0,0x65,0x0,0x5a,0x0,0x3e,0x0,0x2c,0x0, +0x1d,0x0,0x11,0x0,0xa,0x0,0xed,0xff,0xd0,0xff,0xe8,0xff, +0x1c,0x0,0x30,0x0,0x28,0x0,0x1a,0x0,0xd,0x0,0x6,0x0, +0x2,0x0,0xf4,0xff,0xd5,0xff,0xbe,0xff,0xcf,0xff,0xe5,0xff, +0xe5,0xff,0xf4,0xff,0xf,0x0,0x1c,0x0,0x29,0x0,0x30,0x0, +0x1d,0x0,0x18,0x0,0x24,0x0,0x1f,0x0,0x27,0x0,0x40,0x0, +0x3c,0x0,0x2f,0x0,0x37,0x0,0x30,0x0,0x9,0x0,0xe6,0xff, +0xe0,0xff,0xec,0xff,0xeb,0xff,0xe3,0xff,0xf3,0xff,0x17,0x0, +0x3a,0x0,0x56,0x0,0x6b,0x0,0x7a,0x0,0x75,0x0,0x4f,0x0, +0x2b,0x0,0x14,0x0,0xee,0xff,0xc4,0xff,0xa9,0xff,0x93,0xff, +0xa0,0xff,0xd4,0xff,0xf4,0xff,0x5,0x0,0x2e,0x0,0x4a,0x0, +0x48,0x0,0x39,0x0,0x14,0x0,0xed,0xff,0xf2,0xff,0x6,0x0, +0xa,0x0,0xc,0x0,0xf8,0xff,0xcc,0xff,0xc1,0xff,0xde,0xff, +0xf1,0xff,0xf8,0xff,0xa,0x0,0x2b,0x0,0x53,0x0,0x70,0x0, +0x6c,0x0,0x55,0x0,0x32,0x0,0xf9,0xff,0xca,0xff,0xbb,0xff, +0xa4,0xff,0x88,0xff,0xa2,0xff,0xd4,0xff,0xe5,0xff,0xee,0xff, +0x9,0x0,0x1e,0x0,0x27,0x0,0x30,0x0,0x37,0x0,0x36,0x0, +0x25,0x0,0x17,0x0,0x24,0x0,0x31,0x0,0x24,0x0,0x8,0x0, +0xdf,0xff,0xbc,0xff,0xc9,0xff,0xf5,0xff,0x5,0x0,0xf6,0xff, +0xef,0xff,0x9,0x0,0x32,0x0,0x41,0x0,0x3a,0x0,0x3a,0x0, +0x35,0x0,0x1b,0x0,0x8,0x0,0x4,0x0,0xfe,0xff,0xf3,0xff, +0xe8,0xff,0xe1,0xff,0xe4,0xff,0xe4,0xff,0xd1,0xff,0xc0,0xff, +0xc5,0xff,0xd8,0xff,0xe1,0xff,0xe3,0xff,0xe8,0xff,0xfc,0xff, +0x22,0x0,0x38,0x0,0x24,0x0,0x10,0x0,0x10,0x0,0xf1,0xff, +0xbf,0xff,0xaf,0xff,0xb0,0xff,0xae,0xff,0xba,0xff,0xce,0xff, +0xe9,0xff,0x12,0x0,0x26,0x0,0x21,0x0,0x27,0x0,0x2c,0x0, +0x17,0x0,0x4,0x0,0xf9,0xff,0xe3,0xff,0xd1,0xff,0xd2,0xff, +0xd3,0xff,0xc9,0xff,0xbb,0xff,0xc2,0xff,0xe0,0xff,0xf7,0xff, +0xfd,0xff,0x19,0x0,0x4b,0x0,0x5f,0x0,0x44,0x0,0x2c,0x0, +0x2a,0x0,0x14,0x0,0xf4,0xff,0xf4,0xff,0x3,0x0,0xc,0x0, +0x1a,0x0,0x13,0x0,0xe5,0xff,0xc9,0xff,0xd2,0xff,0xce,0xff, +0xc1,0xff,0xcc,0xff,0xe7,0xff,0xf6,0xff,0xf8,0xff,0xff,0xff, +0xf,0x0,0x14,0x0,0xe,0x0,0x14,0x0,0x16,0x0,0x2,0x0, +0xf4,0xff,0xf1,0xff,0xdc,0xff,0xc1,0xff,0xc3,0xff,0xd0,0xff, +0xd1,0xff,0xd7,0xff,0xe9,0xff,0x2,0x0,0x25,0x0,0x4b,0x0, +0x55,0x0,0x3a,0x0,0x14,0x0,0x1,0x0,0xfa,0xff,0xef,0xff, +0xe4,0xff,0xd9,0xff,0xc4,0xff,0xc0,0xff,0xde,0xff,0xed,0xff, +0xe2,0xff,0xf1,0xff,0x11,0x0,0x1f,0x0,0x29,0x0,0x38,0x0, +0x44,0x0,0x52,0x0,0x4f,0x0,0x31,0x0,0x12,0x0,0xf8,0xff, +0xef,0xff,0xfc,0xff,0xf9,0xff,0xe8,0xff,0xf5,0xff,0x3,0x0, +0xff,0xff,0x12,0x0,0x2d,0x0,0x2d,0x0,0x27,0x0,0x1d,0x0, +0x8,0x0,0xfc,0xff,0xed,0xff,0xdc,0xff,0xeb,0xff,0x2,0x0, +0x9,0x0,0x18,0x0,0x1d,0x0,0xc,0x0,0xa,0x0,0x6,0x0, +0xf7,0xff,0x0,0x0,0x10,0x0,0xc,0x0,0x15,0x0,0x2d,0x0, +0x38,0x0,0x42,0x0,0x4a,0x0,0x49,0x0,0x51,0x0,0x4f,0x0, +0x30,0x0,0x25,0x0,0x2c,0x0,0xd,0x0,0xe0,0xff,0xd0,0xff, +0xcb,0xff,0xcc,0xff,0xec,0xff,0x1c,0x0,0x3b,0x0,0x4b,0x0, +0x59,0x0,0x68,0x0,0x67,0x0,0x4a,0x0,0x29,0x0,0x1a,0x0, +0xc,0x0,0xff,0xff,0x9,0x0,0x17,0x0,0x16,0x0,0x1a,0x0, +0x24,0x0,0x1f,0x0,0x1a,0x0,0x2a,0x0,0x44,0x0,0x57,0x0, +0x66,0x0,0x76,0x0,0x72,0x0,0x54,0x0,0x46,0x0,0x43,0x0, +0x1a,0x0,0xe6,0xff,0xd6,0xff,0xd1,0xff,0xcb,0xff,0xd5,0xff, +0xdc,0xff,0xe3,0xff,0x2,0x0,0x22,0x0,0x3d,0x0,0x61,0x0, +0x72,0x0,0x73,0x0,0x7c,0x0,0x78,0x0,0x65,0x0,0x5a,0x0, +0x4a,0x0,0x2f,0x0,0x13,0x0,0xec,0xff,0xcb,0xff,0xcb,0xff, +0xda,0xff,0xf0,0xff,0x10,0x0,0x1d,0x0,0xe,0x0,0x0,0x0, +0x3,0x0,0xa,0x0,0x1,0x0,0xf7,0xff,0xfd,0xff,0xee,0xff, +0xbe,0xff,0xb1,0xff,0xce,0xff,0xe2,0xff,0xea,0xff,0xec,0xff, +0xe0,0xff,0xeb,0xff,0x15,0x0,0x29,0x0,0x20,0x0,0x18,0x0, +0x18,0x0,0x18,0x0,0x11,0x0,0xf5,0xff,0xd5,0xff,0xcb,0xff, +0xdb,0xff,0xf1,0xff,0xf7,0xff,0xed,0xff,0xf2,0xff,0x10,0x0, +0x1f,0x0,0x11,0x0,0x13,0x0,0x32,0x0,0x34,0x0,0x12,0x0, +0xfa,0xff,0xe1,0xff,0xbd,0xff,0xad,0xff,0xad,0xff,0xb9,0xff, +0xe2,0xff,0xd,0x0,0x26,0x0,0x4a,0x0,0x6d,0x0,0x72,0x0, +0x6b,0x0,0x52,0x0,0x22,0x0,0xfb,0xff,0xdd,0xff,0xcd,0xff, +0xdf,0xff,0xf7,0xff,0xff,0xff,0x10,0x0,0x1c,0x0,0xf,0x0, +0x3,0x0,0xfd,0xff,0xfc,0xff,0x11,0x0,0x2b,0x0,0x3a,0x0, +0x48,0x0,0x44,0x0,0x20,0x0,0xfc,0xff,0xee,0xff,0xe5,0xff, +0xd5,0xff,0xce,0xff,0xe6,0xff,0xa,0x0,0x1a,0x0,0x22,0x0, +0x36,0x0,0x34,0x0,0x15,0x0,0x4,0x0,0x14,0x0,0x24,0x0, +0x20,0x0,0x14,0x0,0x7,0x0,0xff,0xff,0x10,0x0,0x2e,0x0, +0x38,0x0,0x39,0x0,0x3e,0x0,0x44,0x0,0x54,0x0,0x5b,0x0, +0x43,0x0,0x2f,0x0,0x23,0x0,0x5,0x0,0xed,0xff,0xec,0xff, +0xf3,0xff,0xc,0x0,0x29,0x0,0x2b,0x0,0x34,0x0,0x4a,0x0, +0x49,0x0,0x48,0x0,0x4f,0x0,0x37,0x0,0x1f,0x0,0x28,0x0, +0x27,0x0,0x15,0x0,0x11,0x0,0x12,0x0,0x4,0x0,0xe7,0xff, +0xc5,0xff,0xaf,0xff,0xa9,0xff,0xc3,0xff,0xf7,0xff,0xb,0x0, +0xfa,0xff,0x3,0x0,0x1e,0x0,0x1c,0x0,0x5,0x0,0xe9,0xff, +0xd4,0xff,0xd0,0xff,0xcc,0xff,0xd2,0xff,0xea,0xff,0xe3,0xff, +0xd5,0xff,0xf2,0xff,0x6,0x0,0xe6,0xff,0xce,0xff,0xd4,0xff, +0xe2,0xff,0xfa,0xff,0x12,0x0,0x26,0x0,0x3c,0x0,0x4e,0x0, +0x5e,0x0,0x5d,0x0,0x2d,0x0,0xf4,0xff,0xda,0xff,0xc6,0xff, +0xb1,0xff,0xb7,0xff,0xcc,0xff,0xdf,0xff,0xf1,0xff,0x8,0x0, +0x2a,0x0,0x42,0x0,0x30,0x0,0x16,0x0,0xe,0x0,0xfb,0xff, +0xe3,0xff,0xed,0xff,0x6,0x0,0x9,0x0,0xa,0x0,0x13,0x0, +0xff,0xff,0xe2,0xff,0xf9,0xff,0x28,0x0,0x36,0x0,0x47,0x0, +0x6f,0x0,0x74,0x0,0x47,0x0,0xe,0x0,0xde,0xff,0xbf,0xff, +0xb1,0xff,0xa2,0xff,0x9c,0xff,0xa6,0xff,0xb1,0xff,0xc7,0xff, +0xee,0xff,0x9,0x0,0x19,0x0,0x29,0x0,0x1e,0x0,0xf9,0xff, +0xee,0xff,0x1,0x0,0x1,0x0,0xf2,0xff,0x1,0x0,0x15,0x0, +0xb,0x0,0x2,0x0,0x4,0x0,0xf6,0xff,0xf9,0xff,0x15,0x0, +0xb,0x0,0xfa,0xff,0x1e,0x0,0x3f,0x0,0x3d,0x0,0x3d,0x0, +0x31,0x0,0x1d,0x0,0x23,0x0,0x2a,0x0,0x21,0x0,0x2f,0x0, +0x46,0x0,0x42,0x0,0x30,0x0,0x14,0x0,0xec,0xff,0xc8,0xff, +0xa6,0xff,0x8c,0xff,0x9b,0xff,0xce,0xff,0xee,0xff,0xf7,0xff, +0x13,0x0,0x35,0x0,0x2f,0x0,0x15,0x0,0xf,0x0,0x13,0x0, +0x13,0x0,0x18,0x0,0xa,0x0,0xef,0xff,0xea,0xff,0xe7,0xff, +0xc7,0xff,0xa5,0xff,0x97,0xff,0xa4,0xff,0xc0,0xff,0xcc,0xff, +0xcc,0xff,0xe1,0xff,0xf5,0xff,0xf9,0xff,0xfb,0xff,0xf5,0xff, +0xf2,0xff,0x9,0x0,0x2e,0x0,0x62,0x0,0xa4,0x0,0xc6,0x0, +0xc8,0x0,0xc9,0x0,0xb0,0x0,0x7b,0x0,0x47,0x0,0xf6,0xff, +0x8f,0xff,0x62,0xff,0x6a,0xff,0x76,0xff,0xa8,0xff,0xf9,0xff, +0x1e,0x0,0xe,0x0,0xee,0xff,0xc3,0xff,0x98,0xff,0x7e,0xff, +0x79,0xff,0x9d,0xff,0xd9,0xff,0xeb,0xff,0xca,0xff,0xac,0xff, +0x94,0xff,0x75,0xff,0x63,0xff,0x62,0xff,0x76,0xff,0xb9,0xff, +0x18,0x0,0x66,0x0,0x9e,0x0,0xba,0x0,0xab,0x0,0x7b,0x0, +0x3a,0x0,0xf5,0xff,0xba,0xff,0x85,0xff,0x59,0xff,0x4a,0xff, +0x4d,0xff,0x48,0xff,0x4e,0xff,0x6b,0xff,0x92,0xff,0xbc,0xff, +0xda,0xff,0xe1,0xff,0xdc,0xff,0xd9,0xff,0xe7,0xff,0xe,0x0, +0x2f,0x0,0x31,0x0,0x33,0x0,0x48,0x0,0x52,0x0,0x41,0x0, +0x21,0x0,0x4,0x0,0xf6,0xff,0xfd,0xff,0xf,0x0,0xe,0x0, +0xf9,0xff,0xf1,0xff,0x0,0x0,0x15,0x0,0x25,0x0,0x25,0x0, +0x1b,0x0,0x25,0x0,0x39,0x0,0x36,0x0,0x1d,0x0,0xea,0xff, +0xb1,0xff,0x9a,0xff,0x81,0xff,0x37,0xff,0x10,0xff,0x3b,0xff, +0x79,0xff,0xb8,0xff,0xf6,0xff,0x2,0x0,0xfc,0xff,0x24,0x0, +0x4d,0x0,0x50,0x0,0x4d,0x0,0x42,0x0,0x2a,0x0,0x29,0x0, +0x34,0x0,0x27,0x0,0xf,0x0,0x0,0x0,0xf3,0xff,0xe8,0xff, +0xe2,0xff,0xe4,0xff,0xf5,0xff,0xf,0x0,0x15,0x0,0xd,0x0, +0x1e,0x0,0x40,0x0,0x4d,0x0,0x40,0x0,0x17,0x0,0xd6,0xff, +0xa3,0xff,0x88,0xff,0x66,0xff,0x54,0xff,0x74,0xff,0x9f,0xff, +0xbd,0xff,0xe1,0xff,0x4,0x0,0x16,0x0,0x2e,0x0,0x51,0x0, +0x65,0x0,0x64,0x0,0x64,0x0,0x66,0x0,0x52,0x0,0x35,0x0, +0x27,0x0,0x21,0x0,0xe,0x0,0xf3,0xff,0xde,0xff,0xdb,0xff, +0xe3,0xff,0xe2,0xff,0xda,0xff,0xd4,0xff,0xc4,0xff,0xba,0xff, +0xc9,0xff,0xcf,0xff,0xbb,0xff,0xb0,0xff,0xa5,0xff,0x87,0xff, +0x72,0xff,0x6a,0xff,0x70,0xff,0x9e,0xff,0xe5,0xff,0x1f,0x0, +0x48,0x0,0x5a,0x0,0x5d,0x0,0x76,0x0,0x8c,0x0,0x7b,0x0, +0x5c,0x0,0x37,0x0,0x9,0x0,0xfb,0xff,0xc,0x0,0x19,0x0, +0x25,0x0,0x1d,0x0,0xf9,0xff,0xf9,0xff,0x16,0x0,0xfe,0xff, +0xdf,0xff,0xf5,0xff,0x1,0x0,0xec,0xff,0xe1,0xff,0xca,0xff, +0xa5,0xff,0xa2,0xff,0xa9,0xff,0xa5,0xff,0xc1,0xff,0xe8,0xff, +0xfc,0xff,0x26,0x0,0x4f,0x0,0x47,0x0,0x41,0x0,0x47,0x0, +0x23,0x0,0xe,0x0,0x29,0x0,0x1b,0x0,0xe6,0xff,0xdf,0xff, +0xf0,0xff,0xf1,0xff,0xf4,0xff,0xf2,0xff,0xea,0xff,0xf2,0xff, +0xed,0xff,0xd0,0xff,0xbe,0xff,0xac,0xff,0x91,0xff,0x96,0xff, +0xb3,0xff,0xb7,0xff,0xa0,0xff,0x92,0xff,0xaa,0xff,0xcc,0xff, +0xd0,0xff,0xd7,0xff,0x1,0x0,0x1f,0x0,0x18,0x0,0x12,0x0, +0x13,0x0,0x7,0x0,0xf6,0xff,0xfb,0xff,0x19,0x0,0x24,0x0, +0xff,0xff,0xd3,0xff,0xbc,0xff,0xb1,0xff,0xc1,0xff,0xe5,0xff, +0xf2,0xff,0xf3,0xff,0xa,0x0,0x2a,0x0,0x45,0x0,0x57,0x0, +0x63,0x0,0x6f,0x0,0x5a,0x0,0x23,0x0,0x3,0x0,0xed,0xff, +0xc2,0xff,0xcb,0xff,0x1f,0x0,0x56,0x0,0x62,0x0,0x74,0x0, +0x7c,0x0,0x78,0x0,0x7b,0x0,0x61,0x0,0x12,0x0,0xa8,0xff, +0x28,0xff,0xa0,0xfe,0x26,0xfe,0xb1,0xfd,0x5f,0xfd,0x83,0xfd, +0x36,0xfe,0x35,0xff,0x41,0x0,0x3d,0x1,0x2,0x2,0x7d,0x2, +0xb9,0x2,0xaa,0x2,0x30,0x2,0x66,0x1,0x8e,0x0,0xcb,0xff, +0x2e,0xff,0xca,0xfe,0xc6,0xfe,0x43,0xff,0x12,0x0,0xb6,0x0, +0xec,0x0,0xd6,0x0,0xac,0x0,0x86,0x0,0x5b,0x0,0x19,0x0, +0xb5,0xff,0x47,0xff,0xf6,0xfe,0xc9,0xfe,0x9e,0xfe,0x66,0xfe, +0x3b,0xfe,0x27,0xfe,0x39,0xfe,0x91,0xfe,0x2b,0xff,0xe9,0xff, +0xc7,0x0,0x9e,0x1,0x1e,0x2,0x37,0x2,0xe,0x2,0xa0,0x1, +0xf2,0x0,0x50,0x0,0xeb,0xff,0xa7,0xff,0x7c,0xff,0x79,0xff, +0x92,0xff,0xbc,0xff,0xde,0xff,0xc2,0xff,0x83,0xff,0x60,0xff, +0x42,0xff,0x19,0xff,0xd,0xff,0x10,0xff,0x1d,0xff,0x53,0xff, +0x8f,0xff,0xaa,0xff,0xc9,0xff,0xe8,0xff,0xf1,0xff,0xc,0x0, +0x44,0x0,0x75,0x0,0x9e,0x0,0xc4,0x0,0xd2,0x0,0xd6,0x0, +0xea,0x0,0x1,0x1,0xf0,0x0,0xaf,0x0,0x71,0x0,0x55,0x0, +0x4d,0x0,0x60,0x0,0x8c,0x0,0xa2,0x0,0x8c,0x0,0x5c,0x0, +0x14,0x0,0xac,0xff,0x22,0xff,0x96,0xfe,0x4c,0xfe,0x4b,0xfe, +0x67,0xfe,0xaf,0xfe,0x33,0xff,0xc0,0xff,0x24,0x0,0x54,0x0, +0x5d,0x0,0x64,0x0,0x77,0x0,0x7e,0x0,0x6e,0x0,0x5a,0x0, +0x63,0x0,0x8e,0x0,0xa9,0x0,0x9b,0x0,0x6e,0x0,0x2d,0x0, +0xf4,0xff,0xd3,0xff,0xb5,0xff,0xa5,0xff,0xbf,0xff,0xec,0xff, +0x25,0x0,0x68,0x0,0x8e,0x0,0x91,0x0,0x8f,0x0,0x7d,0x0, +0x41,0x0,0xde,0xff,0x6e,0xff,0x19,0xff,0xde,0xfe,0xb3,0xfe, +0xb9,0xfe,0xee,0xfe,0x2b,0xff,0x81,0xff,0xf5,0xff,0x4a,0x0, +0x62,0x0,0x4b,0x0,0x30,0x0,0x44,0x0,0x69,0x0,0x62,0x0, +0x3c,0x0,0x14,0x0,0xeb,0xff,0xe4,0xff,0x6,0x0,0x1e,0x0, +0x1c,0x0,0x26,0x0,0x49,0x0,0x61,0x0,0x5f,0x0,0x6d,0x0, +0x8e,0x0,0x99,0x0,0xa9,0x0,0xc3,0x0,0xa4,0x0,0x66,0x0, +0x5f,0x0,0x6f,0x0,0x5c,0x0,0x2f,0x0,0xf9,0xff,0xd2,0xff, +0xc7,0xff,0xbb,0xff,0xa1,0xff,0x82,0xff,0x6e,0xff,0x7f,0xff, +0xb3,0xff,0xee,0xff,0x30,0x0,0x5e,0x0,0x65,0x0,0x65,0x0, +0x57,0x0,0x37,0x0,0x3c,0x0,0x4e,0x0,0x36,0x0,0x28,0x0, +0x2c,0x0,0x13,0x0,0xf8,0xff,0xdc,0xff,0xa5,0xff,0x90,0xff, +0xb7,0xff,0xd4,0xff,0xdd,0xff,0xf4,0xff,0x4,0x0,0xf5,0xff, +0xd2,0xff,0xa7,0xff,0x70,0xff,0x3b,0xff,0x36,0xff,0x63,0xff, +0x8b,0xff,0xa9,0xff,0xd5,0xff,0xff,0xff,0x13,0x0,0xb,0x0, +0x1,0x0,0x25,0x0,0x54,0x0,0x68,0x0,0x9b,0x0,0xd3,0x0, +0xc6,0x0,0xb6,0x0,0xc7,0x0,0xbb,0x0,0xb5,0x0,0xc4,0x0, +0xa8,0x0,0x8b,0x0,0x9c,0x0,0xa5,0x0,0xa7,0x0,0xb4,0x0, +0xab,0x0,0x91,0x0,0x66,0x0,0x15,0x0,0xcd,0xff,0xa0,0xff, +0x64,0xff,0x44,0xff,0x62,0xff,0x7f,0xff,0x72,0xff,0x3c,0xff, +0xe4,0xfe,0x86,0xfe,0x37,0xfe,0x1,0xfe,0xd8,0xfd,0x91,0xfd, +0x3c,0xfd,0x4,0xfd,0xd3,0xfc,0xe4,0xfc,0xaa,0xfd,0xb,0xff, +0xa5,0x0,0xf,0x2,0xd1,0x2,0x12,0x3,0x82,0x3,0x22,0x4, +0x5b,0x4,0xad,0x3,0xfc,0x1,0x2,0x0,0xcd,0xfe,0xa0,0xfe, +0x32,0xff,0x1b,0x0,0xd6,0x0,0x58,0x1,0xd9,0x1,0xf8,0x1, +0x75,0x1,0xd3,0x0,0x81,0x0,0x6a,0x0,0x45,0x0,0xcf,0xff, +0x2d,0xff,0xce,0xfe,0xbf,0xfe,0xb9,0xfe,0x70,0xfe,0xcc,0xfd, +0x43,0xfd,0x7b,0xfd,0x6b,0xfe,0x99,0xff,0xb2,0x0,0x6d,0x1, +0xa8,0x1,0xa9,0x1,0x9f,0x1,0x66,0x1,0xfe,0x0,0x83,0x0, +0xf5,0xff,0x6f,0xff,0x2a,0xff,0x24,0xff,0x27,0xff,0xd,0xff, +0xe4,0xfe,0xe2,0xfe,0xe5,0xfe,0x8d,0xfe,0xfa,0xfd,0x98,0xfd, +0x72,0xfd,0x91,0xfd,0x22,0xfe,0xe3,0xfe,0x7e,0xff,0xa,0x0, +0x80,0x0,0xb8,0x0,0xd0,0x0,0xd4,0x0,0xad,0x0,0x70,0x0, +0x3a,0x0,0x2d,0x0,0x6c,0x0,0xd1,0x0,0x1f,0x1,0x50,0x1, +0x74,0x1,0x9a,0x1,0xc8,0x1,0xf3,0x1,0x2e,0x2,0x64,0x2, +0x4d,0x2,0xf7,0x1,0x82,0x1,0xbe,0x0,0xd8,0xff,0x2f,0xff, +0x8c,0xfe,0xe7,0xfd,0xa0,0xfd,0xa0,0xfd,0xd6,0xfd,0x88,0xfe, +0x74,0xff,0x37,0x0,0xeb,0x0,0x6e,0x1,0x7b,0x1,0x43,0x1, +0xed,0x0,0x92,0x0,0x5d,0x0,0x1a,0x0,0xae,0xff,0x7e,0xff, +0x98,0xff,0xc0,0xff,0x5,0x0,0x44,0x0,0x3b,0x0,0x17,0x0, +0xf7,0xff,0xcd,0xff,0xbc,0xff,0xc0,0xff,0xbd,0xff,0xd2,0xff, +0xd8,0xff,0x90,0xff,0x37,0xff,0x1,0xff,0xd1,0xfe,0xbc,0xfe, +0xd1,0xfe,0xec,0xfe,0x1f,0xff,0x89,0xff,0x11,0x0,0x94,0x0, +0xf8,0x0,0x36,0x1,0x56,0x1,0x47,0x1,0x23,0x1,0x25,0x1, +0x2f,0x1,0x1c,0x1,0x25,0x1,0x4c,0x1,0x61,0x1,0x73,0x1, +0x78,0x1,0x5b,0x1,0x3c,0x1,0xd,0x1,0xa6,0x0,0x30,0x0, +0xd4,0xff,0x90,0xff,0x6b,0xff,0x4c,0xff,0x2b,0xff,0x3d,0xff, +0x6d,0xff,0x7e,0xff,0x8c,0xff,0x99,0xff,0x7c,0xff,0x65,0xff, +0x83,0xff,0xa9,0xff,0xba,0xff,0xbb,0xff,0xa8,0xff,0x97,0xff, +0x94,0xff,0x7d,0xff,0x49,0xff,0x31,0xff,0x6e,0xff,0xe7,0xff, +0x61,0x0,0xcc,0x0,0x18,0x1,0x2a,0x1,0x16,0x1,0xf0,0x0, +0xa3,0x0,0x37,0x0,0xcc,0xff,0x6c,0xff,0x37,0xff,0x34,0xff, +0x53,0xff,0xac,0xff,0x2f,0x0,0x7b,0x0,0x75,0x0,0x56,0x0, +0x3f,0x0,0x44,0x0,0x59,0x0,0x5b,0x0,0x75,0x0,0xd3,0x0, +0x37,0x1,0x58,0x1,0x37,0x1,0xf4,0x0,0xba,0x0,0xa7,0x0, +0xb3,0x0,0xd4,0x0,0xf8,0x0,0x11,0x1,0x42,0x1,0x97,0x1, +0xba,0x1,0x65,0x1,0xb9,0x0,0xf7,0xff,0x42,0xff,0xb8,0xfe, +0x71,0xfe,0x59,0xfe,0x53,0xfe,0x5d,0xfe,0x7b,0xfe,0x98,0xfe, +0xa5,0xfe,0xa8,0xfe,0xb1,0xfe,0xc6,0xfe,0xea,0xfe,0x2b,0xff, +0x86,0xff,0xd4,0xff,0x16,0x0,0x5e,0x0,0x8a,0x0,0x9b,0x0, +0xb5,0x0,0xab,0x0,0x71,0x0,0x5d,0x0,0x75,0x0,0x87,0x0, +0xa0,0x0,0xb5,0x0,0xa3,0x0,0x7a,0x0,0x48,0x0,0x1f,0x0, +0x21,0x0,0x2d,0x0,0x38,0x0,0x68,0x0,0x83,0x0,0x3f,0x0, +0xd3,0xff,0x7b,0xff,0x47,0xff,0x48,0xff,0x5a,0xff,0x3a,0xff, +0xdf,0xfe,0x61,0xfe,0xf5,0xfd,0xc6,0xfd,0x9d,0xfd,0x43,0xfd, +0xfc,0xfc,0x32,0xfd,0x3,0xfe,0x52,0xff,0xe3,0x0,0x5d,0x2, +0x83,0x3,0x7a,0x4,0x6f,0x5,0xfc,0x5,0x85,0x5,0x3,0x4, +0xe1,0x1,0xc3,0xff,0x60,0xfe,0xe9,0xfd,0xb,0xfe,0x75,0xfe, +0xf2,0xfe,0x6d,0xff,0xd9,0xff,0xf4,0xff,0xc3,0xff,0xb8,0xff, +0xe9,0xff,0x1b,0x0,0x3a,0x0,0x1a,0x0,0xb9,0xff,0x74,0xff, +0x42,0xff,0xd9,0xfe,0x3e,0xfe,0x8b,0xfd,0x0,0xfd,0x25,0xfd, +0x9,0xfe,0x4f,0xff,0xbb,0x0,0x3,0x2,0xf8,0x2,0xb1,0x3, +0x4,0x4,0xb3,0x3,0xe2,0x2,0xc7,0x1,0x92,0x0,0x8c,0xff, +0xc3,0xfe,0x20,0xfe,0xbb,0xfd,0xa7,0xfd,0xd6,0xfd,0x2d,0xfe, +0x6f,0xfe,0x86,0xfe,0x8c,0xfe,0x78,0xfe,0x6d,0xfe,0xc4,0xfe, +0x66,0xff,0xf0,0xff,0x58,0x0,0xbc,0x0,0x9,0x1,0x1b,0x1, +0xeb,0x0,0x9d,0x0,0x58,0x0,0x2a,0x0,0x27,0x0,0x68,0x0, +0xc7,0x0,0x17,0x1,0x64,0x1,0xb5,0x1,0xce,0x1,0x89,0x1, +0x11,0x1,0xa9,0x0,0x74,0x0,0x74,0x0,0x93,0x0,0xba,0x0, +0xd3,0x0,0x9d,0x0,0xe9,0xff,0xfe,0xfe,0x38,0xfe,0x9b,0xfd, +0x24,0xfd,0xd,0xfd,0x71,0xfd,0x30,0xfe,0x24,0xff,0x26,0x0, +0x0,0x1,0x8e,0x1,0xd6,0x1,0xcf,0x1,0x68,0x1,0xd5,0x0, +0x55,0x0,0xe3,0xff,0x93,0xff,0x7f,0xff,0x72,0xff,0x5c,0xff, +0x7c,0xff,0xb1,0xff,0xaf,0xff,0x8f,0xff,0x81,0xff,0x96,0xff, +0xe6,0xff,0x53,0x0,0x90,0x0,0x9f,0x0,0xab,0x0,0x99,0x0, +0x42,0x0,0xc1,0xff,0x49,0xff,0xf2,0xfe,0xc8,0xfe,0xd9,0xfe, +0x25,0xff,0xb8,0xff,0x8c,0x0,0x5b,0x1,0xdf,0x1,0x10,0x2, +0xe9,0x1,0x90,0x1,0x5c,0x1,0x49,0x1,0x12,0x1,0xcd,0x0, +0xb7,0x0,0xcd,0x0,0xeb,0x0,0xec,0x0,0xc4,0x0,0x7c,0x0, +0x13,0x0,0xa5,0xff,0x61,0xff,0x37,0xff,0x12,0xff,0x1d,0xff, +0x57,0xff,0x88,0xff,0x90,0xff,0x7f,0xff,0x79,0xff,0x95,0xff, +0xc3,0xff,0xe9,0xff,0xee,0xff,0xc2,0xff,0x94,0xff,0x88,0xff, +0x78,0xff,0x68,0xff,0x7b,0xff,0x8f,0xff,0x87,0xff,0x7b,0xff, +0x7f,0xff,0xc6,0xff,0x63,0x0,0xf4,0x0,0x3e,0x1,0x6b,0x1, +0x76,0x1,0x41,0x1,0xe1,0x0,0x5c,0x0,0xb2,0xff,0x6,0xff, +0x71,0xfe,0x10,0xfe,0x16,0xfe,0x91,0xfe,0x62,0xff,0x5e,0x0, +0x3a,0x1,0xb8,0x1,0xf0,0x1,0x13,0x2,0x1c,0x2,0xe4,0x1, +0x77,0x1,0x13,0x1,0xe2,0x0,0xbe,0x0,0x6e,0x0,0x15,0x0, +0xf3,0xff,0xf4,0xff,0xff,0xff,0x38,0x0,0x8b,0x0,0xb3,0x0, +0xbc,0x0,0xd4,0x0,0xdf,0x0,0xb7,0x0,0x51,0x0,0xbc,0xff, +0x20,0xff,0x89,0xfe,0xe4,0xfd,0x5d,0xfd,0x30,0xfd,0x47,0xfd, +0x7f,0xfd,0xd8,0xfd,0x48,0xfe,0xb9,0xfe,0x38,0xff,0xc1,0xff, +0x1d,0x0,0x2e,0x0,0x14,0x0,0xf4,0xff,0xf2,0xff,0x2f,0x0, +0x7a,0x0,0x83,0x0,0x59,0x0,0x23,0x0,0xd0,0xff,0x6c,0xff, +0x3,0xff,0x78,0xfe,0xe9,0xfd,0x87,0xfd,0x9,0xfd,0x47,0xfc, +0x94,0xfb,0x1b,0xfb,0xc1,0xfa,0x9d,0xfa,0xd4,0xfa,0x87,0xfb, +0xe3,0xfc,0xd9,0xfe,0xf5,0x0,0xcd,0x2,0x55,0x4,0xac,0x5, +0xb3,0x6,0x8,0x7,0x53,0x6,0x9c,0x4,0x8d,0x2,0xd,0x1, +0x5e,0x0,0x3e,0x0,0xa8,0x0,0x94,0x1,0x93,0x2,0x2c,0x3, +0x30,0x3,0xb7,0x2,0x32,0x2,0xe4,0x1,0x95,0x1,0x10,0x1, +0x63,0x0,0x84,0xff,0x71,0xfe,0x63,0xfd,0x85,0xfc,0xc5,0xfb, +0x13,0xfb,0x91,0xfa,0x8f,0xfa,0x46,0xfb,0x99,0xfc,0x33,0xfe, +0xd7,0xff,0x53,0x1,0x49,0x2,0x84,0x2,0x4a,0x2,0xea,0x1, +0x51,0x1,0x6a,0x0,0x83,0xff,0xf1,0xfe,0xb8,0xfe,0xc0,0xfe, +0xe,0xff,0x92,0xff,0xe2,0xff,0xa5,0xff,0xb,0xff,0x6a,0xfe, +0xcc,0xfd,0x44,0xfd,0x16,0xfd,0x5f,0xfd,0xf6,0xfd,0xa6,0xfe, +0x47,0xff,0xca,0xff,0x36,0x0,0x7e,0x0,0x8a,0x0,0x65,0x0, +0x37,0x0,0x2a,0x0,0x4c,0x0,0xb9,0x0,0x8e,0x1,0x76,0x2, +0xed,0x2,0x11,0x3,0x43,0x3,0x6b,0x3,0x5e,0x3,0x44,0x3, +0x44,0x3,0x65,0x3,0x7f,0x3,0x2a,0x3,0x50,0x2,0x40,0x1, +0x1d,0x0,0xf9,0xfe,0x0,0xfe,0x29,0xfd,0x7c,0xfc,0x45,0xfc, +0x82,0xfc,0x3,0xfd,0xd8,0xfd,0xdf,0xfe,0xbe,0xff,0x54,0x0, +0x7e,0x0,0x27,0x0,0x9e,0xff,0x2d,0xff,0xe1,0xfe,0xca,0xfe, +0xda,0xfe,0xec,0xfe,0x1e,0xff,0x7f,0xff,0xdd,0xff,0x20,0x0, +0x4b,0x0,0x69,0x0,0x9d,0x0,0xdf,0x0,0x2,0x1,0x1d,0x1, +0x4c,0x1,0x56,0x1,0x15,0x1,0xaa,0x0,0x12,0x0,0x44,0xff, +0x85,0xfe,0x22,0xfe,0x29,0xfe,0x7a,0xfe,0xe9,0xfe,0x59,0xff, +0xd8,0xff,0x71,0x0,0x5,0x1,0x8b,0x1,0x18,0x2,0x83,0x2, +0x8e,0x2,0x5a,0x2,0x2b,0x2,0x3,0x2,0xbd,0x1,0x60,0x1, +0x9,0x1,0xc6,0x0,0x95,0x0,0x71,0x0,0x57,0x0,0x53,0x0, +0x73,0x0,0xa0,0x0,0xcb,0x0,0xf7,0x0,0xf0,0x0,0x8b,0x0, +0xfc,0xff,0x7b,0xff,0x0,0xff,0x83,0xfe,0xd,0xfe,0xc1,0xfd, +0xd4,0xfd,0xe,0xfe,0x16,0xfe,0x1e,0xfe,0x69,0xfe,0xdb,0xfe, +0x51,0xff,0xb5,0xff,0xeb,0xff,0xf5,0xff,0xe5,0xff,0xe7,0xff, +0x1b,0x0,0x3c,0x0,0x14,0x0,0xde,0xff,0xaa,0xff,0x66,0xff, +0x43,0xff,0x4f,0xff,0x75,0xff,0xc6,0xff,0x19,0x0,0x4c,0x0, +0x8c,0x0,0xd7,0x0,0xf9,0x0,0xe9,0x0,0x98,0x0,0x24,0x0, +0xca,0xff,0x6e,0xff,0x21,0xff,0x4e,0xff,0xd7,0xff,0x60,0x0, +0xf2,0x0,0x76,0x1,0xbb,0x1,0xdb,0x1,0xdb,0x1,0xb6,0x1, +0x9c,0x1,0x98,0x1,0x9e,0x1,0xb9,0x1,0xd2,0x1,0xd4,0x1, +0xc4,0x1,0x90,0x1,0x31,0x1,0xa4,0x0,0xd7,0xff,0xb,0xff, +0x73,0xfe,0xe8,0xfd,0x90,0xfd,0xad,0xfd,0xf8,0xfd,0x35,0xfe, +0x75,0xfe,0x9a,0xfe,0xb1,0xfe,0xf2,0xfe,0x36,0xff,0x5a,0xff, +0x77,0xff,0x76,0xff,0x56,0xff,0x5e,0xff,0x7e,0xff,0x78,0xff, +0x66,0xff,0x67,0xff,0x5a,0xff,0x47,0xff,0x5e,0xff,0x9a,0xff, +0xd2,0xff,0x2,0x0,0x2b,0x0,0x42,0x0,0x5a,0x0,0x8b,0x0, +0xc0,0x0,0xd4,0x0,0xa9,0x0,0x2f,0x0,0x96,0xff,0x22,0xff, +0xd7,0xfe,0xa8,0xfe,0x9c,0xfe,0x9d,0xfe,0x86,0xfe,0x4b,0xfe, +0x8,0xfe,0xca,0xfd,0x6f,0xfd,0xeb,0xfc,0x6d,0xfc,0x24,0xfc, +0x58,0xfc,0x40,0xfd,0x9d,0xfe,0x1d,0x0,0xa5,0x1,0x8,0x3, +0x59,0x4,0xd2,0x5,0xe8,0x6,0xee,0x6,0xd,0x6,0x90,0x4, +0xb3,0x2,0xc,0x1,0xdb,0xff,0x0,0xff,0xca,0xfe,0x48,0xff, +0xc5,0xff,0xcb,0xff,0x87,0xff,0x57,0xff,0x86,0xff,0xec,0xff, +0x1c,0x0,0xfd,0xff,0xb5,0xff,0x79,0xff,0x73,0xff,0x5b,0xff, +0xc3,0xfe,0xd7,0xfd,0xf,0xfd,0x9e,0xfc,0x9c,0xfc,0x37,0xfd, +0x64,0xfe,0xcb,0xff,0xe,0x1,0xc,0x2,0xc1,0x2,0x21,0x3, +0x22,0x3,0xd3,0x2,0x51,0x2,0xb9,0x1,0x8,0x1,0x42,0x0, +0x93,0xff,0x1b,0xff,0xce,0xfe,0x92,0xfe,0x46,0xfe,0xd2,0xfd, +0x52,0xfd,0xeb,0xfc,0xba,0xfc,0xd8,0xfc,0x3f,0xfd,0xd3,0xfd, +0x83,0xfe,0x4c,0xff,0x31,0x0,0x18,0x1,0xcb,0x1,0x3a,0x2, +0x5c,0x2,0x18,0x2,0xab,0x1,0x60,0x1,0x23,0x1,0xf6,0x0, +0x11,0x1,0x65,0x1,0xc5,0x1,0x18,0x2,0x2d,0x2,0x12,0x2, +0x6,0x2,0x1,0x2,0xeb,0x1,0xd0,0x1,0x8e,0x1,0x2,0x1, +0x4d,0x0,0x86,0xff,0xba,0xfe,0x3,0xfe,0x68,0xfd,0xd,0xfd, +0x20,0xfd,0x74,0xfd,0xd3,0xfd,0x5f,0xfe,0x1e,0xff,0xd5,0xff, +0x79,0x0,0xb,0x1,0x4c,0x1,0x24,0x1,0xcb,0x0,0x6c,0x0, +0x17,0x0,0xdf,0xff,0xc3,0xff,0xba,0xff,0xc3,0xff,0xbb,0xff, +0x8e,0xff,0x62,0xff,0x4d,0xff,0x41,0xff,0x4a,0xff,0x6a,0xff, +0x8e,0xff,0xcd,0xff,0x26,0x0,0x68,0x0,0x89,0x0,0x85,0x0, +0x43,0x0,0xe1,0xff,0x7e,0xff,0x13,0xff,0xd1,0xfe,0xe3,0xfe, +0x1a,0xff,0x71,0xff,0x7,0x0,0xa2,0x0,0x10,0x1,0x69,0x1, +0xac,0x1,0xc7,0x1,0xcd,0x1,0xc4,0x1,0xb2,0x1,0x98,0x1, +0x5a,0x1,0x2,0x1,0xbc,0x0,0x83,0x0,0x42,0x0,0xf5,0xff, +0x86,0xff,0x15,0xff,0xf2,0xfe,0x13,0xff,0x3f,0xff,0x7d,0xff, +0xc0,0xff,0xe5,0xff,0x0,0x0,0x18,0x0,0xa,0x0,0xf3,0xff, +0xf2,0xff,0xdc,0xff,0x91,0xff,0x28,0xff,0xbf,0xfe,0x74,0xfe, +0x5b,0xfe,0x74,0xfe,0xc1,0xfe,0x41,0xff,0xe8,0xff,0x99,0x0, +0x27,0x1,0x81,0x1,0xa2,0x1,0x70,0x1,0x14,0x1,0xe4,0x0, +0xc8,0x0,0x94,0x0,0x5e,0x0,0x24,0x0,0xf6,0xff,0x16,0x0, +0x66,0x0,0x9b,0x0,0xc6,0x0,0xe5,0x0,0xd4,0x0,0x9d,0x0, +0x40,0x0,0xe3,0xff,0xe3,0xff,0x1e,0x0,0x38,0x0,0x58,0x0, +0x96,0x0,0xbe,0x0,0xc3,0x0,0xa6,0x0,0x67,0x0,0x40,0x0, +0x3d,0x0,0x40,0x0,0x62,0x0,0x9c,0x0,0xc2,0x0,0xeb,0x0, +0x1f,0x1,0x3c,0x1,0x36,0x1,0xc,0x1,0xba,0x0,0x42,0x0, +0xb0,0xff,0x3e,0xff,0x1a,0xff,0x19,0xff,0x25,0xff,0x43,0xff, +0x51,0xff,0x42,0xff,0x22,0xff,0xe6,0xfe,0xcf,0xfe,0xe,0xff, +0x4e,0xff,0x5f,0xff,0x7d,0xff,0xae,0xff,0xe7,0xff,0x35,0x0, +0x71,0x0,0x7e,0x0,0x4d,0x0,0xc2,0xff,0x16,0xff,0xa4,0xfe, +0x78,0xfe,0x9f,0xfe,0x5,0xff,0x3e,0xff,0x43,0xff,0x68,0xff, +0xad,0xff,0xe4,0xff,0xe6,0xff,0x6d,0xff,0x68,0xfe,0x20,0xfd, +0xfd,0xfb,0x61,0xfb,0x70,0xfb,0x1d,0xfc,0x78,0xfd,0x4c,0xff, +0xb,0x1,0x7b,0x2,0xb5,0x3,0xd6,0x4,0xfc,0x5,0xbd,0x6, +0x33,0x6,0x4b,0x4,0x10,0x2,0x95,0x0,0x2c,0x0,0x60,0x0, +0x69,0x0,0x1c,0x0,0xf4,0xff,0x2f,0x0,0x80,0x0,0x7b,0x0, +0x28,0x0,0x1b,0x0,0xaa,0x0,0x25,0x1,0xbe,0x0,0xc0,0xff, +0xfc,0xfe,0xa0,0xfe,0x61,0xfe,0xf2,0xfd,0x24,0xfd,0x58,0xfc, +0x5d,0xfc,0x5c,0xfd,0xb3,0xfe,0xf2,0xff,0xf9,0x0,0xa6,0x1, +0x2,0x2,0x1f,0x2,0xda,0x1,0x39,0x1,0x8f,0x0,0xe,0x0, +0xc0,0xff,0x92,0xff,0x5a,0xff,0x9,0xff,0xc4,0xfe,0x96,0xfe, +0x7a,0xfe,0x73,0xfe,0x67,0xfe,0x28,0xfe,0xe1,0xfd,0xeb,0xfd, +0x4e,0xfe,0xd7,0xfe,0x60,0xff,0xce,0xff,0x21,0x0,0x6e,0x0, +0xaf,0x0,0xd8,0x0,0xf6,0x0,0xa,0x1,0x20,0x1,0x60,0x1, +0xc0,0x1,0xc,0x2,0x34,0x2,0x4f,0x2,0x7c,0x2,0xab,0x2, +0x8b,0x2,0x10,0x2,0x9d,0x1,0x69,0x1,0x50,0x1,0x35,0x1, +0x5,0x1,0xbf,0x0,0x66,0x0,0xd3,0xff,0xfc,0xfe,0x2d,0xfe, +0xa0,0xfd,0x72,0xfd,0xb3,0xfd,0x20,0xfe,0x86,0xfe,0x4,0xff, +0x95,0xff,0xfa,0xff,0x19,0x0,0xfe,0xff,0xda,0xff,0xd4,0xff, +0xc8,0xff,0xab,0xff,0xbb,0xff,0x4,0x0,0x60,0x0,0xb0,0x0, +0xc9,0x0,0xb5,0x0,0xb1,0x0,0xb0,0x0,0x7f,0x0,0x31,0x0, +0xe5,0xff,0x9f,0xff,0x81,0xff,0xa1,0xff,0xdb,0xff,0xc,0x0, +0x32,0x0,0x43,0x0,0x1a,0x0,0xc1,0xff,0x88,0xff,0x89,0xff, +0x95,0xff,0xa0,0xff,0xc1,0xff,0xee,0xff,0x33,0x0,0xa9,0x0, +0x23,0x1,0x59,0x1,0x49,0x1,0x1c,0x1,0xf1,0x0,0xdd,0x0, +0xd8,0x0,0xba,0x0,0x7e,0x0,0x46,0x0,0x1c,0x0,0x7,0x0, +0x20,0x0,0x52,0x0,0x7c,0x0,0xb5,0x0,0xf1,0x0,0xf7,0x0, +0xd2,0x0,0x8a,0x0,0xf7,0xff,0x4d,0xff,0xd4,0xfe,0x76,0xfe, +0x35,0xfe,0x3f,0xfe,0x76,0xfe,0xb3,0xfe,0xfd,0xfe,0x48,0xff, +0x89,0xff,0xc6,0xff,0xed,0xff,0xfa,0xff,0x3,0x0,0x14,0x0, +0x27,0x0,0x30,0x0,0x3b,0x0,0x63,0x0,0x87,0x0,0x7b,0x0, +0x58,0x0,0x3c,0x0,0x1e,0x0,0xfd,0xff,0xd0,0xff,0x99,0xff, +0x7b,0xff,0x79,0xff,0x9b,0xff,0xf5,0xff,0x46,0x0,0x53,0x0, +0x52,0x0,0x63,0x0,0x78,0x0,0xa3,0x0,0xc4,0x0,0xa7,0x0, +0x89,0x0,0x8e,0x0,0x90,0x0,0x94,0x0,0x9c,0x0,0x71,0x0, +0x26,0x0,0xef,0xff,0xce,0xff,0xe4,0xff,0x4d,0x0,0xc7,0x0, +0x11,0x1,0x21,0x1,0xec,0x0,0x91,0x0,0x4a,0x0,0x2,0x0, +0x98,0xff,0x46,0xff,0x36,0xff,0x32,0xff,0x23,0xff,0x34,0xff, +0x5f,0xff,0x79,0xff,0x83,0xff,0x8b,0xff,0x86,0xff,0x79,0xff, +0x6b,0xff,0x50,0xff,0x29,0xff,0xb,0xff,0x0,0xff,0x10,0xff, +0x3e,0xff,0x80,0xff,0xc8,0xff,0xa,0x0,0x31,0x0,0x2b,0x0, +0x6,0x0,0xef,0xff,0xfc,0xff,0x19,0x0,0x3d,0x0,0x5e,0x0, +0x63,0x0,0x6b,0x0,0xab,0x0,0xe,0x1,0x60,0x1,0x93,0x1, +0x9d,0x1,0x8b,0x1,0x81,0x1,0x70,0x1,0x2e,0x1,0xd5,0x0, +0x93,0x0,0x62,0x0,0x24,0x0,0xd0,0xff,0x69,0xff,0x19,0xff, +0xf7,0xfe,0xe1,0xfe,0xb6,0xfe,0x7e,0xfe,0x2e,0xfe,0xbd,0xfd, +0x52,0xfd,0xf4,0xfc,0x7f,0xfc,0x19,0xfc,0x25,0xfc,0xb6,0xfc, +0xad,0xfd,0x3,0xff,0x78,0x0,0x93,0x1,0x44,0x2,0xea,0x2, +0xa6,0x3,0x35,0x4,0x40,0x4,0x73,0x3,0xcd,0x1,0x2,0x0, +0xf3,0xfe,0xce,0xfe,0x34,0xff,0xcc,0xff,0x66,0x0,0xe2,0x0, +0x30,0x1,0x46,0x1,0x1c,0x1,0xd4,0x0,0xc5,0x0,0xf9,0x0, +0xe8,0x0,0x4c,0x0,0xa0,0xff,0x3b,0xff,0xfd,0xfe,0xd8,0xfe, +0xa4,0xfe,0x2f,0xfe,0xd5,0xfd,0x2a,0xfe,0x39,0xff,0xa1,0x0, +0xce,0x1,0x5b,0x2,0x7b,0x2,0x71,0x2,0x39,0x2,0xea,0x1, +0x81,0x1,0xec,0x0,0x7b,0x0,0x37,0x0,0xbe,0xff,0x35,0xff, +0xf4,0xfe,0xd9,0xfe,0xda,0xfe,0xfa,0xfe,0xdd,0xfe,0x73,0xfe, +0x24,0xfe,0x13,0xfe,0x25,0xfe,0x4e,0xfe,0x8a,0xfe,0xd8,0xfe, +0x31,0xff,0x7e,0xff,0xb7,0xff,0xe1,0xff,0x18,0x0,0x5d,0x0, +0x72,0x0,0x49,0x0,0x2a,0x0,0x31,0x0,0x76,0x0,0xe,0x1, +0x98,0x1,0xcb,0x1,0xcb,0x1,0xa5,0x1,0x6f,0x1,0x6f,0x1, +0x8a,0x1,0x8c,0x1,0x78,0x1,0x2b,0x1,0xa0,0x0,0x9,0x0, +0x5b,0xff,0xb7,0xfe,0x74,0xfe,0x71,0xfe,0x85,0xfe,0xcc,0xfe, +0x13,0xff,0x47,0xff,0xae,0xff,0x34,0x0,0xa7,0x0,0xf5,0x0, +0xf3,0x0,0xd5,0x0,0xea,0x0,0xdd,0x0,0x81,0x0,0x31,0x0, +0xf2,0xff,0xb5,0xff,0xaa,0xff,0xab,0xff,0x9d,0xff,0xb1,0xff, +0xc6,0xff,0xb8,0xff,0xa8,0xff,0x87,0xff,0x50,0xff,0x3b,0xff, +0x3e,0xff,0x36,0xff,0x27,0xff,0xf6,0xfe,0x9c,0xfe,0x51,0xfe, +0x3a,0xfe,0x5b,0xfe,0xaa,0xfe,0x14,0xff,0x92,0xff,0xfb,0xff, +0x36,0x0,0x78,0x0,0xc0,0x0,0xd6,0x0,0xda,0x0,0xd4,0x0, +0x9e,0x0,0x86,0x0,0xc3,0x0,0xf9,0x0,0xb,0x1,0x22,0x1, +0x25,0x1,0x15,0x1,0xd,0x1,0xf4,0x0,0xb9,0x0,0x5a,0x0, +0xd2,0xff,0x53,0xff,0x14,0xff,0xb,0xff,0x37,0xff,0x7d,0xff, +0x99,0xff,0x8f,0xff,0x93,0xff,0xa6,0xff,0xc6,0xff,0xf4,0xff, +0xc,0x0,0xb,0x0,0x11,0x0,0x24,0x0,0x40,0x0,0x5a,0x0, +0x68,0x0,0x70,0x0,0x55,0x0,0x2,0x0,0xb3,0xff,0x8f,0xff, +0x82,0xff,0xab,0xff,0x8,0x0,0x36,0x0,0x32,0x0,0x3c,0x0, +0x34,0x0,0x6,0x0,0xe2,0xff,0xb2,0xff,0x73,0xff,0x66,0xff, +0x81,0xff,0x95,0xff,0xbc,0xff,0xe5,0xff,0xed,0xff,0xfb,0xff, +0x12,0x0,0x15,0x0,0x24,0x0,0x2d,0x0,0x8,0x0,0x1,0x0, +0x49,0x0,0x8e,0x0,0xa5,0x0,0x9e,0x0,0x8a,0x0,0x98,0x0, +0xdc,0x0,0x18,0x1,0x25,0x1,0xfb,0x0,0x9b,0x0,0x34,0x0, +0xe3,0xff,0x9a,0xff,0x72,0xff,0x80,0xff,0xa6,0xff,0xdf,0xff, +0x21,0x0,0x48,0x0,0x76,0x0,0xbb,0x0,0xc2,0x0,0x7e,0x0, +0x3a,0x0,0xfb,0xff,0x9a,0xff,0x42,0xff,0x1e,0xff,0x12,0xff, +0xb,0xff,0x1c,0xff,0x41,0xff,0x5f,0xff,0x85,0xff,0xd1,0xff, +0xd,0x0,0x4,0x0,0xe1,0xff,0xd2,0xff,0xd6,0xff,0x0,0x0, +0x44,0x0,0x61,0x0,0x51,0x0,0x46,0x0,0x34,0x0,0xff,0xff, +0xb7,0xff,0x79,0xff,0x49,0xff,0x2e,0xff,0x33,0xff,0x5c,0xff, +0x9b,0xff,0xe7,0xff,0x42,0x0,0xa5,0x0,0xf3,0x0,0x1f,0x1, +0x37,0x1,0x3e,0x1,0x1f,0x1,0xca,0x0,0x5b,0x0,0xfb,0xff, +0xb5,0xff,0x89,0xff,0x70,0xff,0x50,0xff,0x17,0xff,0xc1,0xfe, +0x45,0xfe,0xcc,0xfd,0xbb,0xfd,0x39,0xfe,0xd,0xff,0xf3,0xff, +0xae,0x0,0x22,0x1,0x7c,0x1,0xdd,0x1,0x1d,0x2,0x1e,0x2, +0xbf,0x1,0xcf,0x0,0x99,0xff,0xc3,0xfe,0x88,0xfe,0xbb,0xfe, +0x47,0xff,0xfb,0xff,0x6d,0x0,0x6b,0x0,0x2b,0x0,0xf4,0xff, +0xd6,0xff,0xd3,0xff,0xe6,0xff,0xe7,0xff,0xc5,0xff,0x99,0xff, +0x6d,0xff,0x4b,0xff,0x49,0xff,0x41,0xff,0x9,0xff,0xd8,0xfe, +0xe7,0xfe,0x3b,0xff,0xd9,0xff,0xa0,0x0,0x44,0x1,0x89,0x1, +0x5b,0x1,0xff,0x0,0xc3,0x0,0x84,0x0,0x2c,0x0,0xfb,0xff, +0xec,0xff,0xe3,0xff,0xfb,0xff,0x12,0x0,0xf9,0xff,0xd7,0xff, +0xb0,0xff,0x85,0xff,0x82,0xff,0x79,0xff,0x43,0xff,0x33,0xff, +0x66,0xff,0xaa,0xff,0xf3,0xff,0x19,0x0,0xa,0x0,0x12,0x0, +0x2d,0x0,0x22,0x0,0x9,0x0,0xdc,0xff,0x9c,0xff,0x8b,0xff, +0x9e,0xff,0xa0,0xff,0xba,0xff,0x1,0x0,0x3b,0x0,0x4d,0x0, +0x3a,0x0,0x14,0x0,0x4,0x0,0x26,0x0,0x69,0x0,0x93,0x0, +0x8e,0x0,0x7e,0x0,0x50,0x0,0xf3,0xff,0xaf,0xff,0x7d,0xff, +0x38,0xff,0x42,0xff,0x98,0xff,0xc0,0xff,0xdc,0xff,0xb,0x0, +0x5,0x0,0xd,0x0,0x3b,0x0,0x2a,0x0,0x4,0x0,0xfc,0xff, +0xcf,0xff,0xaa,0xff,0xa6,0xff,0x70,0xff,0x5d,0xff,0xb3,0xff, +0xfb,0xff,0x22,0x0,0x55,0x0,0x58,0x0,0x54,0x0,0x77,0x0, +0x5d,0x0,0xc,0x0,0xdf,0xff,0xc3,0xff,0xad,0xff,0xae,0xff, +0xa0,0xff,0x8f,0xff,0x9a,0xff,0xa4,0xff,0xb5,0xff,0xd5,0xff, +0xf3,0xff,0x22,0x0,0x4b,0x0,0x43,0x0,0x32,0x0,0x29,0x0, +0x7,0x0,0xdb,0xff,0xc4,0xff,0xca,0xff,0xf3,0xff,0x18,0x0, +0x1b,0x0,0x1f,0x0,0x22,0x0,0xd,0x0,0xf0,0xff,0xd5,0xff, +0xc3,0xff,0xbf,0xff,0xab,0xff,0x86,0xff,0x84,0xff,0xb2,0xff, +0xfe,0xff,0x3f,0x0,0x48,0x0,0x41,0x0,0x4a,0x0,0x2e,0x0, +0xf1,0xff,0xc6,0xff,0x9c,0xff,0x74,0xff,0x73,0xff,0x86,0xff, +0xb0,0xff,0x13,0x0,0x84,0x0,0xc3,0x0,0xc7,0x0,0x97,0x0, +0x5a,0x0,0x34,0x0,0x11,0x0,0xed,0xff,0xd5,0xff,0xb4,0xff, +0x9b,0xff,0xa0,0xff,0x97,0xff,0x88,0xff,0xa2,0xff,0xaf,0xff, +0x8f,0xff,0x7f,0xff,0x87,0xff,0x9b,0xff,0xda,0xff,0x1d,0x0, +0x31,0x0,0x2d,0x0,0xfc,0xff,0xa0,0xff,0x8c,0xff,0xc1,0xff, +0xcc,0xff,0xd0,0xff,0xb,0x0,0x35,0x0,0x46,0x0,0x72,0x0, +0x94,0x0,0x8f,0x0,0x93,0x0,0xa1,0x0,0x8b,0x0,0x4d,0x0, +0x15,0x0,0xfc,0xff,0xd9,0xff,0x9d,0xff,0x74,0xff,0x58,0xff, +0x31,0xff,0x38,0xff,0x74,0xff,0x95,0xff,0xa4,0xff,0xdb,0xff, +0x17,0x0,0x20,0x0,0x7,0x0,0xf5,0xff,0xef,0xff,0xe4,0xff, +0xde,0xff,0xf2,0xff,0x11,0x0,0x34,0x0,0x5a,0x0,0x63,0x0, +0x4c,0x0,0x3d,0x0,0x35,0x0,0x17,0x0,0xed,0xff,0xc1,0xff, +0x97,0xff,0x86,0xff,0x95,0xff,0xb2,0xff,0xd5,0xff,0x2,0x0, +0x2b,0x0,0x3b,0x0,0x3a,0x0,0x31,0x0,0x1a,0x0,0x11,0x0, +0x1e,0x0,0x10,0x0,0xf8,0xff,0x5,0x0,0x2,0x0,0xe3,0xff, +0xeb,0xff,0xfa,0xff,0xe9,0xff,0xf7,0xff,0x25,0x0,0x39,0x0, +0x40,0x0,0x3c,0x0,0x15,0x0,0xe5,0xff,0xc8,0xff,0xbc,0xff, +0xbd,0xff,0xba,0xff,0xab,0xff,0x9b,0xff,0x8d,0xff,0x94,0xff, +0xa9,0xff,0xa5,0xff,0x9b,0xff,0xb0,0xff,0xc8,0xff,0xd2,0xff, +0xda,0xff,0xe4,0xff,0xf7,0xff,0xf7,0xff,0xc2,0xff,0x96,0xff, +0x9a,0xff,0xad,0xff,0xe4,0xff,0x43,0x0,0x86,0x0,0xa4,0x0, +0xac,0x0,0x89,0x0,0x54,0x0,0x2f,0x0,0xb,0x0,0xf5,0xff, +0xe4,0xff,0xbe,0xff,0xb2,0xff,0xc5,0xff,0xb0,0xff,0x8d,0xff, +0x9d,0xff,0xbd,0xff,0xca,0xff,0xe5,0xff,0x19,0x0,0x4a,0x0, +0x6b,0x0,0x85,0x0,0x80,0x0,0x46,0x0,0x10,0x0,0x5,0x0, +0xeb,0xff,0xcf,0xff,0xf6,0xff,0x32,0x0,0x4a,0x0,0x63,0x0, +0x73,0x0,0x60,0x0,0x4e,0x0,0x2e,0x0,0xe4,0xff,0xb4,0xff, +0xc9,0xff,0xef,0xff,0xff,0xff,0xfd,0xff,0xf4,0xff,0xec,0xff, +0xea,0xff,0xed,0xff,0xe6,0xff,0xc5,0xff,0x9b,0xff,0x81,0xff, +0x7b,0xff,0x8b,0xff,0xac,0xff,0xc1,0xff,0xbe,0xff,0xb8,0xff, +0xc2,0xff,0xd5,0xff,0xf1,0xff,0x26,0x0,0x65,0x0,0x87,0x0, +0x85,0x0,0x7f,0x0,0x81,0x0,0x87,0x0,0x83,0x0,0x68,0x0, +0x4c,0x0,0x39,0x0,0x11,0x0,0xe0,0xff,0xd7,0xff,0xdc,0xff, +0xd0,0xff,0xd5,0xff,0xf1,0xff,0x0,0x0,0xe,0x0,0x23,0x0, +0x25,0x0,0x1d,0x0,0x28,0x0,0x3b,0x0,0x3e,0x0,0x35,0x0, +0x28,0x0,0x11,0x0,0xf0,0xff,0xd5,0xff,0xd4,0xff,0xe1,0xff, +0xeb,0xff,0xf9,0xff,0x15,0x0,0x46,0x0,0x79,0x0,0x84,0x0, +0x67,0x0,0x42,0x0,0x18,0x0,0xf6,0xff,0xf1,0xff,0xdd,0xff, +0xad,0xff,0xb0,0xff,0xdc,0xff,0xeb,0xff,0x0,0x0,0x2b,0x0, +0x37,0x0,0x38,0x0,0x54,0x0,0x5e,0x0,0x51,0x0,0x52,0x0, +0x53,0x0,0x47,0x0,0x33,0x0,0x1d,0x0,0x22,0x0,0x3d,0x0, +0x48,0x0,0x53,0x0,0x5c,0x0,0x3b,0x0,0x1c,0x0,0x27,0x0, +0x26,0x0,0x1b,0x0,0x30,0x0,0x3f,0x0,0x3f,0x0,0x48,0x0, +0x2c,0x0,0xf7,0xff,0x0,0x0,0x25,0x0,0x1a,0x0,0x11,0x0, +0x32,0x0,0x40,0x0,0x2c,0x0,0x13,0x0,0xfa,0xff,0xf5,0xff, +0x9,0x0,0x6,0x0,0xed,0xff,0xea,0xff,0xf5,0xff,0xff,0xff, +0x1d,0x0,0x37,0x0,0x32,0x0,0x2a,0x0,0x2d,0x0,0x2d,0x0, +0x28,0x0,0x1a,0x0,0xff,0xff,0xe4,0xff,0xcf,0xff,0xcb,0xff, +0xe2,0xff,0x3,0x0,0x2f,0x0,0x6e,0x0,0x88,0x0,0x65,0x0, +0x44,0x0,0x35,0x0,0x24,0x0,0x27,0x0,0x37,0x0,0x39,0x0, +0x43,0x0,0x50,0x0,0x3e,0x0,0x28,0x0,0x32,0x0,0x49,0x0, +0x62,0x0,0x79,0x0,0x74,0x0,0x58,0x0,0x55,0x0,0x68,0x0, +0x62,0x0,0x3e,0x0,0x26,0x0,0x1c,0x0,0x12,0x0,0x1b,0x0, +0x3b,0x0,0x47,0x0,0x39,0x0,0x34,0x0,0x2e,0x0,0x14,0x0, +0xfa,0xff,0xed,0xff,0xec,0xff,0xf9,0xff,0x9,0x0,0x2,0x0, +0xf6,0xff,0x6,0x0,0x22,0x0,0x2a,0x0,0x28,0x0,0x2d,0x0, +0x2a,0x0,0x1e,0x0,0x28,0x0,0x3a,0x0,0x40,0x0,0x51,0x0, +0x69,0x0,0x5d,0x0,0x49,0x0,0x4f,0x0,0x4b,0x0,0x3e,0x0, +0x50,0x0,0x5b,0x0,0x41,0x0,0x28,0x0,0x12,0x0,0xf5,0xff, +0xfe,0xff,0x2b,0x0,0x45,0x0,0x49,0x0,0x4b,0x0,0x4c,0x0, +0x45,0x0,0x2d,0x0,0x1e,0x0,0x35,0x0,0x45,0x0,0x31,0x0, +0x27,0x0,0x39,0x0,0x48,0x0,0x52,0x0,0x53,0x0,0x4b,0x0, +0x4b,0x0,0x45,0x0,0x2e,0x0,0x22,0x0,0x20,0x0,0x15,0x0, +0x13,0x0,0x1c,0x0,0x1c,0x0,0x18,0x0,0xa,0x0,0xeb,0xff, +0xd6,0xff,0xe1,0xff,0xf8,0xff,0x9,0x0,0x15,0x0,0x25,0x0, +0x3b,0x0,0x4c,0x0,0x4e,0x0,0x43,0x0,0x3f,0x0,0x4e,0x0, +0x5d,0x0,0x58,0x0,0x4e,0x0,0x54,0x0,0x61,0x0,0x64,0x0, +0x55,0x0,0x45,0x0,0x40,0x0,0x38,0x0,0x27,0x0,0x17,0x0, +0xfe,0xff,0xea,0xff,0xf2,0xff,0x5,0x0,0x19,0x0,0x34,0x0, +0x3b,0x0,0x26,0x0,0x15,0x0,0x17,0x0,0x1f,0x0,0x21,0x0, +0x24,0x0,0x3e,0x0,0x56,0x0,0x4e,0x0,0x4b,0x0,0x58,0x0, +0x43,0x0,0x29,0x0,0x36,0x0,0x3d,0x0,0x36,0x0,0x3a,0x0, +0x29,0x0,0x6,0x0,0x2,0x0,0x4,0x0,0xfd,0xff,0x1a,0x0, +0x4a,0x0,0x48,0x0,0x26,0x0,0x14,0x0,0xc,0x0,0x5,0x0, +0x1a,0x0,0x41,0x0,0x4b,0x0,0x3c,0x0,0x34,0x0,0x2a,0x0, +0x17,0x0,0xa,0x0,0xfc,0xff,0xe0,0xff,0xca,0xff,0xc8,0xff, +0xdf,0xff,0x1e,0x0,0x70,0x0,0x97,0x0,0x83,0x0,0x63,0x0, +0x50,0x0,0x35,0x0,0x18,0x0,0xb,0x0,0x2,0x0,0x0,0x0, +0xc,0x0,0xf,0x0,0xe,0x0,0x1f,0x0,0x24,0x0,0x8,0x0, +0xef,0xff,0xe8,0xff,0xef,0xff,0xc,0x0,0x36,0x0,0x59,0x0, +0x60,0x0,0x3a,0x0,0x10,0x0,0x5,0x0,0xf9,0xff,0xe6,0xff, +0xea,0xff,0xf3,0xff,0xff,0xff,0x1c,0x0,0x27,0x0,0x23,0x0, +0x35,0x0,0x45,0x0,0x33,0x0,0x17,0x0,0x5,0x0,0xf5,0xff, +0xde,0xff,0xc8,0xff,0xc6,0xff,0xe0,0xff,0x2,0x0,0x1c,0x0, +0x2f,0x0,0x4a,0x0,0x5d,0x0,0x48,0x0,0x25,0x0,0x10,0x0, +0xeb,0xff,0xc9,0xff,0xd7,0xff,0xe8,0xff,0xe8,0xff,0xff,0xff, +0x1a,0x0,0x29,0x0,0x3f,0x0,0x4b,0x0,0x49,0x0,0x4d,0x0, +0x48,0x0,0x39,0x0,0x2a,0x0,0x5,0x0,0xdd,0xff,0xda,0xff, +0xde,0xff,0xe6,0xff,0x6,0x0,0x13,0x0,0xc,0x0,0x1d,0x0, +0x2b,0x0,0x14,0x0,0xf4,0xff,0xe6,0xff,0xf1,0xff,0x7,0x0, +0x8,0x0,0xfc,0xff,0xf0,0xff,0xe2,0xff,0xe0,0xff,0xe8,0xff, +0xe9,0xff,0xf5,0xff,0xb,0x0,0xd,0x0,0xa,0x0,0x12,0x0, +0xe,0x0,0x4,0x0,0x3,0x0,0x4,0x0,0x8,0x0,0xf,0x0, +0x14,0x0,0x28,0x0,0x46,0x0,0x4f,0x0,0x42,0x0,0x34,0x0, +0x18,0x0,0xf0,0xff,0xe0,0xff,0xee,0xff,0xf9,0xff,0xf8,0xff, +0xf0,0xff,0xde,0xff,0xd5,0xff,0xd2,0xff,0xbf,0xff,0xb5,0xff, +0xc8,0xff,0xd4,0xff,0xde,0xff,0x1,0x0,0x11,0x0,0xa,0x0, +0x1b,0x0,0x24,0x0,0xd,0x0,0x3,0x0,0x8,0x0,0x8,0x0, +0xf,0x0,0xe,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x2,0x0, +0x8,0x0,0x1,0x0,0xee,0xff,0xe3,0xff,0xd2,0xff,0xc5,0xff, +0xca,0xff,0xc1,0xff,0xb9,0xff,0xde,0xff,0xa,0x0,0xc,0x0, +0xfb,0xff,0xef,0xff,0xe3,0xff,0xde,0xff,0xe7,0xff,0xf2,0xff, +0xfc,0xff,0xe,0x0,0x1b,0x0,0xf,0x0,0xe,0x0,0x23,0x0, +0x24,0x0,0x1b,0x0,0x21,0x0,0x11,0x0,0xfe,0xff,0x11,0x0, +0x12,0x0,0xfa,0xff,0x3,0x0,0x6,0x0,0xe5,0xff,0xdc,0xff, +0xe3,0xff,0xdb,0xff,0xe8,0xff,0xff,0xff,0xfb,0xff,0xf8,0xff, +0xa,0x0,0x13,0x0,0xe,0x0,0x9,0x0,0x4,0x0,0xf9,0xff, +0xed,0xff,0xe6,0xff,0xe0,0xff,0xdf,0xff,0xed,0xff,0xfa,0xff, +0x2,0x0,0x1a,0x0,0x2f,0x0,0x29,0x0,0x17,0x0,0x5,0x0, +0xf2,0xff,0xea,0xff,0xe6,0xff,0xe8,0xff,0xf2,0xff,0xee,0xff, +0xef,0xff,0x9,0x0,0x11,0x0,0xfb,0xff,0xe6,0xff,0xc8,0xff, +0xac,0xff,0xaf,0xff,0xbb,0xff,0xcb,0xff,0xed,0xff,0x3,0x0, +0x4,0x0,0x7,0x0,0xfc,0xff,0xeb,0xff,0xf0,0xff,0xf3,0xff, +0xf2,0xff,0x6,0x0,0x12,0x0,0xe,0x0,0x9,0x0,0xeb,0xff, +0xc7,0xff,0xc3,0xff,0xbf,0xff,0xa8,0xff,0xa4,0xff,0xad,0xff, +0xad,0xff,0xb0,0xff,0xae,0xff,0xa9,0xff,0xba,0xff,0xd1,0xff, +0xd1,0xff,0xcf,0xff,0xd4,0xff,0xce,0xff,0xc5,0xff,0xc6,0xff, +0xc7,0xff,0xc4,0xff,0xb6,0xff,0xa7,0xff,0xb0,0xff,0xbc,0xff, +0xab,0xff,0x9d,0xff,0xa9,0xff,0xab,0xff,0xac,0xff,0xca,0xff, +0xde,0xff,0xd9,0xff,0xdd,0xff,0xde,0xff,0xce,0xff,0xc8,0xff, +0xcc,0xff,0xca,0xff,0xca,0xff,0xca,0xff,0xc9,0xff,0xd1,0xff, +0xd4,0xff,0xd0,0xff,0xd4,0xff,0xd5,0xff,0xcf,0xff,0xd6,0xff, +0xec,0xff,0x1,0x0,0x6,0x0,0xff,0xff,0xfd,0xff,0xfa,0xff, +0xea,0xff,0xde,0xff,0xd0,0xff,0xb9,0xff,0xbf,0xff,0xd6,0xff, +0xca,0xff,0xbc,0xff,0xcf,0xff,0xd5,0xff,0xd0,0xff,0xd4,0xff, +0xc4,0xff,0xaf,0xff,0xbc,0xff,0xc6,0xff,0xbb,0xff,0xc2,0xff, +0xd5,0xff,0xe2,0xff,0xf1,0xff,0xfb,0xff,0xfb,0xff,0x6,0x0, +0xe,0x0,0xfa,0xff,0xe0,0xff,0xdc,0xff,0xdc,0xff,0xdb,0xff, +0xed,0xff,0x2,0x0,0x0,0x0,0xfc,0xff,0x2,0x0,0xfc,0xff, +0xf7,0xff,0xf,0x0,0x20,0x0,0x11,0x0,0xd,0x0,0x21,0x0, +0x17,0x0,0xd9,0xff,0x8a,0xff,0x4d,0xff,0x25,0xff,0x13,0xff, +0x14,0xff,0x29,0xff,0x49,0xff,0x65,0xff,0x73,0xff,0x85,0xff, +0xa1,0xff,0xbb,0xff,0xde,0xff,0xf,0x0,0x26,0x0,0x1b,0x0, +0x14,0x0,0x13,0x0,0x11,0x0,0x20,0x0,0x22,0x0,0xf6,0xff, +0xd6,0xff,0xeb,0xff,0x6,0x0,0xd,0x0,0x13,0x0,0x8,0x0, +0xec,0xff,0xe4,0xff,0xf0,0xff,0xf6,0xff,0xeb,0xff,0xd2,0xff, +0xc6,0xff,0xd0,0xff,0xcc,0xff,0xb4,0xff,0x9d,0xff,0x7f,0xff, +0x62,0xff,0x61,0xff,0x65,0xff,0x62,0xff,0x83,0xff,0xbb,0xff, +0xdf,0xff,0xfb,0xff,0x16,0x0,0x16,0x0,0xe,0x0,0x21,0x0, +0x3b,0x0,0x4b,0x0,0x54,0x0,0x50,0x0,0x3c,0x0,0x25,0x0, +0x9,0x0,0xe7,0xff,0xce,0xff,0xc9,0xff,0xbe,0xff,0x9f,0xff, +0x7e,0xff,0x6c,0xff,0x6e,0xff,0x88,0xff,0xa7,0xff,0xbf,0xff, +0xd3,0xff,0xce,0xff,0xbf,0xff,0xd2,0xff,0xec,0xff,0xe1,0xff, +0xdf,0xff,0xfc,0xff,0xb,0x0,0x9,0x0,0x11,0x0,0x17,0x0, +0x14,0x0,0x5,0x0,0xe3,0xff,0xd1,0xff,0xde,0xff,0xe5,0xff, +0xe5,0xff,0xef,0xff,0xee,0xff,0xe4,0xff,0xe6,0xff,0xe6,0xff, +0xd4,0xff,0xd0,0xff,0xd9,0xff,0xce,0xff,0xb4,0xff,0xa8,0xff, +0x9f,0xff,0x88,0xff,0x7b,0xff,0x7f,0xff,0x82,0xff,0x92,0xff, +0xbf,0xff,0xde,0xff,0xe4,0xff,0xf2,0xff,0xe,0x0,0x2b,0x0, +0x4a,0x0,0x59,0x0,0x50,0x0,0x4f,0x0,0x4f,0x0,0x29,0x0, +0xf1,0xff,0xcb,0xff,0xad,0xff,0x9a,0xff,0xaa,0xff,0xc7,0xff, +0xd1,0xff,0xce,0xff,0xcc,0xff,0xd7,0xff,0xea,0xff,0xe0,0xff, +0xc2,0xff,0xc1,0xff,0xd3,0xff,0xce,0xff,0xc2,0xff,0xcb,0xff, +0xe4,0xff,0xfb,0xff,0x8,0x0,0xd,0x0,0xe,0x0,0x3,0x0, +0x0,0x0,0x16,0x0,0x2a,0x0,0x27,0x0,0x1d,0x0,0x13,0x0, +0xe,0x0,0xff,0xff,0xdf,0xff,0xcd,0xff,0xd3,0xff,0xd0,0xff, +0xcd,0xff,0xce,0xff,0xbc,0xff,0xb8,0xff,0xd9,0xff,0xf0,0xff, +0xff,0xff,0x21,0x0,0x24,0x0,0xfc,0xff,0xe6,0xff,0xea,0xff, +0xdf,0xff,0xce,0xff,0xde,0xff,0xfc,0xff,0xfb,0xff,0xeb,0xff, +0xfa,0xff,0x5,0x0,0xe9,0xff,0xd4,0xff,0xe4,0xff,0x0,0x0, +0x19,0x0,0x1d,0x0,0x8,0x0,0xfc,0xff,0x0,0x0,0xfa,0xff, +0xed,0xff,0xe3,0xff,0xe5,0xff,0xf9,0xff,0x9,0x0,0x4,0x0, +0x5,0x0,0xe,0x0,0x5,0x0,0xf4,0xff,0xf6,0xff,0xf8,0xff, +0xe9,0xff,0xe1,0xff,0xf6,0xff,0xb,0x0,0x11,0x0,0x2a,0x0, +0x4a,0x0,0x48,0x0,0x31,0x0,0x1b,0x0,0x4,0x0,0xf3,0xff, +0xf7,0xff,0x8,0x0,0x1b,0x0,0x29,0x0,0x31,0x0,0x2b,0x0, +0x17,0x0,0xa,0x0,0x1,0x0,0xea,0xff,0xde,0xff,0xe5,0xff, +0xd9,0xff,0xdc,0xff,0x2,0x0,0xf,0x0,0x5,0x0,0x13,0x0, +0x1d,0x0,0x19,0x0,0x21,0x0,0x1a,0x0,0x13,0x0,0x2a,0x0, +0x37,0x0,0x2c,0x0,0x34,0x0,0x42,0x0,0x35,0x0,0x21,0x0, +0x18,0x0,0x19,0x0,0x19,0x0,0x18,0x0,0x1b,0x0,0xd,0x0, +0xee,0xff,0xef,0xff,0xff,0xff,0xf3,0xff,0xf0,0xff,0x1,0x0, +0xff,0xff,0xeb,0xff,0xd7,0xff,0xc7,0xff,0xd2,0xff,0xed,0xff, +0x2,0x0,0x1c,0x0,0x32,0x0,0x34,0x0,0x2b,0x0,0x28,0x0, +0x34,0x0,0x44,0x0,0x3b,0x0,0x25,0x0,0x1e,0x0,0x17,0x0, +0xc,0x0,0x4,0x0,0xf5,0xff,0xf6,0xff,0x8,0x0,0xf,0x0, +0x1a,0x0,0x26,0x0,0x13,0x0,0xf5,0xff,0xeb,0xff,0xef,0xff, +0x9,0x0,0x28,0x0,0x2a,0x0,0x31,0x0,0x4d,0x0,0x4e,0x0, +0x2e,0x0,0xb,0x0,0xe7,0xff,0xba,0xff,0x6c,0xff,0x18,0xff, +0x6,0xff,0x31,0xff,0x77,0xff,0xdd,0xff,0x3a,0x0,0x6c,0x0, +0xa6,0x0,0xfd,0x0,0x47,0x1,0x5c,0x1,0x1d,0x1,0xa3,0x0, +0x2a,0x0,0xbe,0xff,0x77,0xff,0x7b,0xff,0x97,0xff,0xae,0xff, +0xe6,0xff,0x12,0x0,0x3,0x0,0xec,0xff,0xe6,0xff,0xf7,0xff, +0x36,0x0,0x6c,0x0,0x66,0x0,0x57,0x0,0x4f,0x0,0x33,0x0, +0x9,0x0,0xc9,0xff,0x77,0xff,0x55,0xff,0x74,0xff,0xb1,0xff, +0x5,0x0,0x53,0x0,0x76,0x0,0x85,0x0,0x91,0x0,0x83,0x0, +0x5f,0x0,0x34,0x0,0x13,0x0,0x14,0x0,0x24,0x0,0x18,0x0, +0xfd,0xff,0xef,0xff,0xee,0xff,0x4,0x0,0x28,0x0,0x28,0x0, +0x1,0x0,0xe6,0xff,0xea,0xff,0xf8,0xff,0xf9,0xff,0xe4,0xff, +0xd2,0xff,0xdc,0xff,0xfd,0xff,0x1f,0x0,0x41,0x0,0x64,0x0, +0x7b,0x0,0x83,0x0,0x8a,0x0,0x8b,0x0,0x78,0x0,0x6b,0x0, +0x66,0x0,0x4c,0x0,0x20,0x0,0xfc,0xff,0xdf,0xff,0xdf,0xff, +0xfe,0xff,0x17,0x0,0x3a,0x0,0x6f,0x0,0x6f,0x0,0x42,0x0, +0x2b,0x0,0xf,0x0,0xe5,0xff,0xe6,0xff,0x0,0x0,0x6,0x0, +0x12,0x0,0x14,0x0,0xf2,0xff,0xd6,0xff,0xd5,0xff,0xda,0xff, +0xec,0xff,0x14,0x0,0x46,0x0,0x73,0x0,0x82,0x0,0x6f,0x0, +0x56,0x0,0x45,0x0,0x35,0x0,0x1f,0x0,0xc,0x0,0x9,0x0, +0xa,0x0,0xf,0x0,0x20,0x0,0x1e,0x0,0xfe,0xff,0xef,0xff, +0xfe,0xff,0xd,0x0,0x19,0x0,0x25,0x0,0x27,0x0,0x16,0x0, +0xff,0xff,0x7,0x0,0x2d,0x0,0x30,0x0,0x21,0x0,0x3d,0x0, +0x51,0x0,0x3d,0x0,0x37,0x0,0x30,0x0,0x15,0x0,0x23,0x0, +0x3e,0x0,0x2f,0x0,0x2c,0x0,0x3d,0x0,0x33,0x0,0x2c,0x0, +0x32,0x0,0x19,0x0,0x2,0x0,0x10,0x0,0x23,0x0,0x2a,0x0, +0x27,0x0,0x12,0x0,0x0,0x0,0xf9,0xff,0xe3,0xff,0xcf,0xff, +0xd6,0xff,0xe5,0xff,0xed,0xff,0xfe,0xff,0x1a,0x0,0x3a,0x0, +0x52,0x0,0x49,0x0,0x25,0x0,0x1c,0x0,0x2c,0x0,0x1e,0x0, +0x0,0x0,0xd,0x0,0x2e,0x0,0x3e,0x0,0x4b,0x0,0x57,0x0, +0x52,0x0,0x47,0x0,0x40,0x0,0x3d,0x0,0x3d,0x0,0x34,0x0, +0x29,0x0,0x2a,0x0,0x22,0x0,0x10,0x0,0x6,0x0,0xf6,0xff, +0xeb,0xff,0xb,0x0,0x31,0x0,0x30,0x0,0x2c,0x0,0x38,0x0, +0x34,0x0,0x2e,0x0,0x39,0x0,0x34,0x0,0x16,0x0,0xd,0x0, +0x1f,0x0,0x2b,0x0,0x2d,0x0,0x2f,0x0,0x29,0x0,0x20,0x0, +0x1e,0x0,0x10,0x0,0xf9,0xff,0xff,0xff,0x1f,0x0,0x2a,0x0, +0x1f,0x0,0x1b,0x0,0x23,0x0,0x28,0x0,0x19,0x0,0xfb,0xff, +0xe6,0xff,0xe0,0xff,0xd2,0xff,0xc8,0xff,0xdc,0xff,0xff,0xff, +0x14,0x0,0x25,0x0,0x3a,0x0,0x47,0x0,0x41,0x0,0x34,0x0, +0x30,0x0,0x39,0x0,0x38,0x0,0x23,0x0,0x11,0x0,0xe,0x0, +0x8,0x0,0x1,0x0,0x3,0x0,0x7,0x0,0x6,0x0,0xe,0x0, +0x22,0x0,0x31,0x0,0x36,0x0,0x36,0x0,0x31,0x0,0x2b,0x0, +0x2e,0x0,0x35,0x0,0x3a,0x0,0x41,0x0,0x4a,0x0,0x4f,0x0, +0x4c,0x0,0x43,0x0,0x36,0x0,0x28,0x0,0x15,0x0,0x0,0x0, +0xf5,0xff,0xee,0xff,0xe8,0xff,0xef,0xff,0x9,0x0,0x2e,0x0, +0x4c,0x0,0x4d,0x0,0x3b,0x0,0x30,0x0,0x1c,0x0,0xf8,0xff, +0xe6,0xff,0xe7,0xff,0xe2,0xff,0xf1,0xff,0x1a,0x0,0x2a,0x0, +0x1a,0x0,0x1a,0x0,0x26,0x0,0x13,0x0,0xf6,0xff,0xf9,0xff, +0x8,0x0,0x11,0x0,0x2f,0x0,0x4b,0x0,0x41,0x0,0x3d,0x0, +0x48,0x0,0x31,0x0,0x18,0x0,0x2b,0x0,0x32,0x0,0x16,0x0, +0x0,0x0,0xe9,0xff,0xd0,0xff,0xc6,0xff,0xc8,0xff,0xd0,0xff, +0xe2,0xff,0xe8,0xff,0xed,0xff,0x2,0x0,0x12,0x0,0x16,0x0, +0x13,0x0,0x2,0x0,0xef,0xff,0xe5,0xff,0xe2,0xff,0xe9,0xff, +0xef,0xff,0xeb,0xff,0xec,0xff,0xec,0xff,0xeb,0xff,0xf7,0xff, +0xf0,0xff,0xcb,0xff,0xb9,0xff,0xb5,0xff,0x9c,0xff,0x93,0xff, +0xa8,0xff,0xbd,0xff,0xde,0xff,0xb,0x0,0x1c,0x0,0x1e,0x0, +0x33,0x0,0x47,0x0,0x47,0x0,0x44,0x0,0x4b,0x0,0x47,0x0, +0x28,0x0,0x6,0x0,0xfa,0xff,0xe9,0xff,0xc9,0xff,0xbc,0xff, +0xd7,0xff,0xfd,0xff,0x11,0x0,0x1e,0x0,0x2b,0x0,0x1f,0x0, +0x6,0x0,0x3,0x0,0x7,0x0,0x6,0x0,0x8,0x0,0x8,0x0, +0xb,0x0,0x1d,0x0,0x1e,0x0,0x17,0x0,0x2c,0x0,0x32,0x0, +0x15,0x0,0xb,0x0,0xe,0x0,0xa,0x0,0x17,0x0,0x26,0x0, +0x22,0x0,0x1d,0x0,0xc,0x0,0xf0,0xff,0xe6,0xff,0xde,0xff, +0xd0,0xff,0xdc,0xff,0xe7,0xff,0xe0,0xff,0xf2,0xff,0x11,0x0, +0x16,0x0,0x18,0x0,0x24,0x0,0x1d,0x0,0x7,0x0,0x4,0x0, +0xa,0x0,0xf2,0xff,0xd1,0xff,0xd9,0xff,0xe5,0xff,0xde,0xff, +0xf5,0xff,0x15,0x0,0xc,0x0,0x2,0x0,0xe,0x0,0x15,0x0, +0x1c,0x0,0x15,0x0,0xe9,0xff,0xc7,0xff,0xc4,0xff,0xc5,0xff, +0xca,0xff,0xd7,0xff,0xe9,0xff,0x9,0x0,0x1b,0x0,0x16,0x0, +0x1d,0x0,0x25,0x0,0x1d,0x0,0x11,0x0,0xfa,0xff,0xd5,0xff, +0xbd,0xff,0xaf,0xff,0xaa,0xff,0xb3,0xff,0xb6,0xff,0xbb,0xff, +0xd3,0xff,0xea,0xff,0x1,0x0,0x22,0x0,0x34,0x0,0x3c,0x0, +0x46,0x0,0x42,0x0,0x37,0x0,0x29,0x0,0xc,0x0,0xf5,0xff, +0xee,0xff,0xe9,0xff,0xeb,0xff,0xea,0xff,0xe3,0xff,0xf8,0xff, +0x8,0x0,0xf3,0xff,0xf5,0xff,0x10,0x0,0xd,0x0,0x7,0x0, +0x15,0x0,0x10,0x0,0x2,0x0,0xfe,0xff,0xf9,0xff,0xf6,0xff, +0xec,0xff,0xda,0xff,0xdc,0xff,0xe1,0xff,0xd9,0xff,0xe6,0xff, +0xfb,0xff,0xfd,0xff,0x3,0x0,0x10,0x0,0x12,0x0,0xe,0x0, +0x7,0x0,0xf9,0xff,0xe6,0xff,0xc8,0xff,0xba,0xff,0xc7,0xff, +0xc7,0xff,0xc2,0xff,0xd2,0xff,0xd7,0xff,0xcd,0xff,0xdf,0xff, +0xf3,0xff,0xee,0xff,0xee,0xff,0xf8,0xff,0xf5,0xff,0xee,0xff, +0xf4,0xff,0xf6,0xff,0xdb,0xff,0xbd,0xff,0xbd,0xff,0xca,0xff, +0xc8,0xff,0xc7,0xff,0xd0,0xff,0xd3,0xff,0xcd,0xff,0xc9,0xff, +0xcd,0xff,0xd2,0xff,0xd4,0xff,0xd9,0xff,0xda,0xff,0xd9,0xff, +0xe8,0xff,0xf9,0xff,0x1,0x0,0x14,0x0,0x1d,0x0,0x0,0x0, +0xe2,0xff,0xd5,0xff,0xc4,0xff,0xbd,0xff,0xbc,0xff,0xb2,0xff, +0xbc,0xff,0xd5,0xff,0xdc,0xff,0xec,0xff,0x6,0x0,0xb,0x0, +0x12,0x0,0x1e,0x0,0x12,0x0,0x7,0x0,0x9,0x0,0xfd,0xff, +0xe9,0xff,0xe0,0xff,0xd7,0xff,0xcf,0xff,0xd5,0xff,0xe1,0xff, +0xed,0xff,0x0,0x0,0x13,0x0,0xf,0x0,0xf4,0xff,0xec,0xff, +0xf3,0xff,0xe1,0xff,0xcc,0xff,0xc7,0xff,0xbc,0xff,0xbe,0xff, +0xdc,0xff,0xe8,0xff,0xdf,0xff,0xd8,0xff,0xce,0xff,0xc7,0xff, +0xc1,0xff,0xb6,0xff,0xc2,0xff,0xdb,0xff,0xe1,0xff,0xe3,0xff, +0xde,0xff,0xce,0xff,0xda,0xff,0xeb,0xff,0xe2,0xff,0xf0,0xff, +0xd,0x0,0x8,0x0,0xb,0x0,0x1a,0x0,0x5,0x0,0xf1,0xff, +0xf2,0xff,0xdd,0xff,0xc3,0xff,0xbf,0xff,0xb0,0xff,0xa0,0xff, +0xb2,0xff,0xd2,0xff,0xda,0xff,0xd4,0xff,0xe9,0xff,0x4,0x0, +0xfd,0xff,0xf5,0xff,0xf6,0xff,0xe0,0xff,0xcf,0xff,0xce,0xff, +0xa9,0xff,0x8b,0xff,0x9c,0xff,0x9e,0xff,0xa6,0xff,0xe9,0xff, +0x1c,0x0,0x29,0x0,0x55,0x0,0x86,0x0,0x96,0x0,0xa3,0x0, +0xa3,0x0,0x87,0x0,0x4e,0x0,0xec,0xff,0x8c,0xff,0x5e,0xff, +0x47,0xff,0x41,0xff,0x68,0xff,0x9f,0xff,0xc6,0xff,0xe1,0xff, +0xed,0xff,0xf0,0xff,0xf4,0xff,0xf3,0xff,0xf7,0xff,0x3,0x0, +0x0,0x0,0xf5,0xff,0xed,0xff,0xdd,0xff,0xc9,0xff,0xb8,0xff, +0xa8,0xff,0xad,0xff,0xc5,0xff,0xd6,0xff,0xe5,0xff,0x4,0x0, +0x20,0x0,0x21,0x0,0x11,0x0,0x7,0x0,0x7,0x0,0xfd,0xff, +0xe8,0xff,0xd8,0xff,0xcb,0xff,0xca,0xff,0xda,0xff,0xe0,0xff, +0xd4,0xff,0xe0,0xff,0xfe,0xff,0xc,0x0,0x16,0x0,0x18,0x0, +0xf1,0xff,0xc2,0xff,0xb6,0xff,0xb5,0xff,0xb3,0xff,0xcc,0xff, +0xe8,0xff,0xf2,0xff,0xc,0x0,0x2a,0x0,0x1f,0x0,0x5,0x0, +0xfd,0xff,0xf2,0xff,0xea,0xff,0xf6,0xff,0xff,0xff,0xfe,0xff, +0x1,0x0,0xfc,0xff,0xf3,0xff,0xfb,0xff,0xf9,0xff,0xdd,0xff, +0xd8,0xff,0xf4,0xff,0x1,0x0,0x0,0x0,0xb,0x0,0xa,0x0, +0xfb,0xff,0xfb,0xff,0xf6,0xff,0xdb,0xff,0xce,0xff,0xcd,0xff, +0xbb,0xff,0xad,0xff,0xb8,0xff,0xcd,0xff,0xe6,0xff,0xf8,0xff, +0x3,0x0,0x1d,0x0,0x3c,0x0,0x3b,0x0,0x29,0x0,0x1e,0x0, +0x19,0x0,0x14,0x0,0xc,0x0,0x9,0x0,0xe,0x0,0x4,0x0, +0xf4,0xff,0x8,0x0,0x1a,0x0,0x7,0x0,0xff,0xff,0x12,0x0, +0x13,0x0,0x6,0x0,0xb,0x0,0x16,0x0,0x11,0x0,0x4,0x0, +0x1,0x0,0x7,0x0,0x3,0x0,0x3,0x0,0x17,0x0,0x21,0x0, +0x1e,0x0,0x25,0x0,0x1f,0x0,0x9,0x0,0x5,0x0,0x1,0x0, +0xed,0xff,0xe7,0xff,0xf3,0xff,0xf6,0xff,0xf2,0xff,0xee,0xff, +0xf0,0xff,0xfe,0xff,0xc,0x0,0x10,0x0,0xa,0x0,0xfa,0xff, +0xed,0xff,0xeb,0xff,0xe2,0xff,0xd8,0xff,0xe6,0xff,0xfd,0xff, +0x3,0x0,0xfc,0xff,0xf7,0xff,0xfb,0xff,0xfa,0xff,0xf6,0xff, +0x2,0x0,0x19,0x0,0x2a,0x0,0x39,0x0,0x40,0x0,0x35,0x0, +0x26,0x0,0x19,0x0,0x9,0x0,0x0,0x0,0xf9,0xff,0xe4,0xff, +0xd5,0xff,0xdb,0xff,0xe5,0xff,0xee,0xff,0xfc,0xff,0x6,0x0, +0x11,0x0,0x1e,0x0,0x1f,0x0,0x18,0x0,0x1a,0x0,0x14,0x0, +0x1,0x0,0xfd,0xff,0x10,0x0,0x27,0x0,0x3c,0x0,0x40,0x0, +0x2b,0x0,0x1c,0x0,0x19,0x0,0x2,0x0,0xea,0xff,0xe9,0xff, +0xdd,0xff,0xc2,0xff,0xba,0xff,0xc0,0xff,0xd4,0xff,0xfd,0xff, +0x19,0x0,0x20,0x0,0x35,0x0,0x3e,0x0,0x21,0x0,0x10,0x0, +0x19,0x0,0x12,0x0,0x4,0x0,0xc,0x0,0x16,0x0,0x19,0x0, +0x20,0x0,0x27,0x0,0x2a,0x0,0x2b,0x0,0x25,0x0,0x1d,0x0, +0x1f,0x0,0x24,0x0,0x1f,0x0,0x18,0x0,0x13,0x0,0x11,0x0, +0x12,0x0,0xc,0x0,0xfe,0xff,0xfa,0xff,0xfe,0xff,0xfd,0xff, +0x8,0x0,0x1d,0x0,0x1e,0x0,0x18,0x0,0x1d,0x0,0x12,0x0, +0xfe,0xff,0xb,0x0,0x24,0x0,0x27,0x0,0x20,0x0,0x17,0x0, +0x10,0x0,0x17,0x0,0x28,0x0,0x32,0x0,0x36,0x0,0x39,0x0, +0x32,0x0,0x25,0x0,0x20,0x0,0x24,0x0,0x24,0x0,0x1a,0x0, +0x6,0x0,0xf0,0xff,0xe5,0xff,0xeb,0xff,0xf9,0xff,0x15,0x0, +0x45,0x0,0x6b,0x0,0x6b,0x0,0x4e,0x0,0x22,0x0,0xea,0xff, +0xac,0xff,0x6a,0xff,0x32,0xff,0x1c,0xff,0x35,0xff,0x78,0xff, +0xd3,0xff,0x36,0x0,0x9a,0x0,0x0,0x1,0x54,0x1,0x7f,0x1, +0x79,0x1,0x4e,0x1,0xf7,0x0,0x79,0x0,0xfc,0xff,0x9d,0xff, +0x5c,0xff,0x50,0xff,0x79,0xff,0xad,0xff,0xe0,0xff,0x12,0x0, +0x1b,0x0,0x7,0x0,0x9,0x0,0x18,0x0,0x1f,0x0,0x32,0x0, +0x53,0x0,0x68,0x0,0x54,0x0,0x12,0x0,0xc5,0xff,0x8b,0xff, +0x5f,0xff,0x51,0xff,0x72,0xff,0xab,0xff,0xf2,0xff,0x3f,0x0, +0x70,0x0,0x83,0x0,0x7b,0x0,0x4b,0x0,0x17,0x0,0xb,0x0, +0xd,0x0,0x9,0x0,0xe,0x0,0x14,0x0,0x16,0x0,0xc,0x0, +0xfb,0xff,0x2,0x0,0x1e,0x0,0x29,0x0,0x2c,0x0,0x2e,0x0, +0x1f,0x0,0xd,0x0,0xf9,0xff,0xdc,0xff,0xdf,0xff,0x0,0x0, +0x17,0x0,0x31,0x0,0x50,0x0,0x56,0x0,0x65,0x0,0x82,0x0, +0x7e,0x0,0x6c,0x0,0x74,0x0,0x7b,0x0,0x70,0x0,0x55,0x0, +0x2c,0x0,0x0,0x0,0xd8,0xff,0xba,0xff,0xba,0xff,0xcd,0xff, +0xe1,0xff,0xf7,0xff,0x4,0x0,0x5,0x0,0x0,0x0,0xec,0xff, +0xd9,0xff,0xdb,0xff,0xd4,0xff,0xc9,0xff,0xdb,0xff,0xe5,0xff, +0xd3,0xff,0xd5,0xff,0xe8,0xff,0xf1,0xff,0x11,0x0,0x49,0x0, +0x6c,0x0,0x78,0x0,0x7f,0x0,0x7c,0x0,0x6b,0x0,0x4e,0x0, +0x31,0x0,0x22,0x0,0x1d,0x0,0x19,0x0,0x18,0x0,0x1b,0x0, +0x16,0x0,0xfc,0xff,0xda,0xff,0xcc,0xff,0xd0,0xff,0xe2,0xff, +0xff,0xff,0x9,0x0,0x1,0x0,0x9,0x0,0x14,0x0,0x17,0x0, +0x30,0x0,0x48,0x0,0x3e,0x0,0x35,0x0,0x30,0x0,0x27,0x0, +0x31,0x0,0x3a,0x0,0x2c,0x0,0x2f,0x0,0x3a,0x0,0x35,0x0, +0x43,0x0,0x4f,0x0,0x38,0x0,0x2c,0x0,0x27,0x0,0x2,0x0, +0xea,0xff,0xf1,0xff,0xe9,0xff,0xe5,0xff,0xf5,0xff,0xfd,0xff, +0x4,0x0,0x11,0x0,0x10,0x0,0xd,0x0,0xb,0x0,0xfa,0xff, +0xed,0xff,0xec,0xff,0xed,0xff,0xfa,0xff,0xe,0x0,0x17,0x0, +0x1a,0x0,0x17,0x0,0x1a,0x0,0x39,0x0,0x52,0x0,0x4e,0x0, +0x47,0x0,0x41,0x0,0x34,0x0,0x28,0x0,0x17,0x0,0xa,0x0, +0x9,0x0,0xfb,0xff,0xec,0xff,0xef,0xff,0xe3,0xff,0xd6,0xff, +0xf0,0xff,0x3,0x0,0x1,0x0,0x19,0x0,0x32,0x0,0x37,0x0, +0x4e,0x0,0x63,0x0,0x5e,0x0,0x55,0x0,0x42,0x0,0x23,0x0, +0x18,0x0,0x16,0x0,0x8,0x0,0x6,0x0,0x12,0x0,0x19,0x0, +0x18,0x0,0x16,0x0,0x15,0x0,0xc,0x0,0xf5,0xff,0xeb,0xff, +0xf0,0xff,0xe5,0xff,0xda,0xff,0xe2,0xff,0xde,0xff,0xc9,0xff, +0xbc,0xff,0xc2,0xff,0xdf,0xff,0x5,0x0,0x10,0x0,0x6,0x0, +0x5,0x0,0x1,0x0,0xeb,0xff,0xde,0xff,0xe8,0xff,0xec,0xff, +0xdf,0xff,0xe3,0xff,0xf8,0xff,0x2,0x0,0xd,0x0,0x21,0x0, +0x29,0x0,0x27,0x0,0x28,0x0,0x22,0x0,0x20,0x0,0x24,0x0, +0x1c,0x0,0xf,0x0,0xd,0x0,0x14,0x0,0x27,0x0,0x47,0x0, +0x6b,0x0,0x88,0x0,0x92,0x0,0x95,0x0,0x98,0x0,0x79,0x0, +0x3a,0x0,0x5,0x0,0xcf,0xff,0x97,0xff,0x86,0xff,0x8e,0xff, +0xa1,0xff,0xd0,0xff,0xf9,0xff,0x3,0x0,0x8,0x0,0x3,0x0, +0xe0,0xff,0xb3,0xff,0x76,0xff,0x2e,0xff,0xe8,0xfe,0x92,0xfe, +0x3f,0xfe,0x1f,0xfe,0x29,0xfe,0x63,0xfe,0xd3,0xfe,0x4e,0xff, +0xd0,0xff,0x6d,0x0,0x10,0x1,0xb2,0x1,0x3d,0x2,0x6b,0x2, +0x28,0x2,0x85,0x1,0xad,0x0,0xf7,0xff,0x7d,0xff,0x32,0xff, +0x48,0xff,0xa8,0xff,0xf3,0xff,0x2e,0x0,0x5b,0x0,0x48,0x0, +0x31,0x0,0x4a,0x0,0x5a,0x0,0x53,0x0,0x3f,0x0,0x2,0x0, +0xb5,0xff,0x77,0xff,0x3e,0xff,0xf,0xff,0xe0,0xfe,0xb7,0xfe, +0xc6,0xfe,0x3,0xff,0x51,0xff,0xc4,0xff,0x28,0x0,0x4a,0x0, +0x52,0x0,0x4a,0x0,0x28,0x0,0x9,0x0,0xdd,0xff,0xa2,0xff, +0x8e,0xff,0x9c,0xff,0xa2,0xff,0x99,0xff,0x7a,0xff,0x69,0xff, +0x8f,0xff,0xb4,0xff,0xb5,0xff,0xa0,0xff,0x6b,0xff,0x36,0xff, +0x27,0xff,0x24,0xff,0x32,0xff,0x61,0xff,0x80,0xff,0x96,0xff, +0xd1,0xff,0x5,0x0,0x18,0x0,0x1e,0x0,0x1f,0x0,0x30,0x0, +0x60,0x0,0x89,0x0,0x9a,0x0,0x98,0x0,0x82,0x0,0x67,0x0, +0x3c,0x0,0xff,0xff,0xe9,0xff,0xf8,0xff,0x3,0x0,0x1e,0x0, +0x49,0x0,0x5c,0x0,0x4d,0x0,0x22,0x0,0xf1,0xff,0xd1,0xff, +0xab,0xff,0x7e,0xff,0x69,0xff,0x4b,0xff,0x1e,0xff,0x6,0xff, +0xf0,0xfe,0xe3,0xfe,0xa,0xff,0x33,0xff,0x42,0xff,0x6c,0xff, +0xa1,0xff,0xc2,0xff,0xe3,0xff,0xf6,0xff,0xfb,0xff,0xe,0x0, +0x17,0x0,0x19,0x0,0x2c,0x0,0x29,0x0,0xc,0x0,0x3,0x0, +0xfa,0xff,0xe7,0xff,0xec,0xff,0xf5,0xff,0xf4,0xff,0xb,0x0, +0x26,0x0,0x19,0x0,0xf2,0xff,0xcd,0xff,0xb4,0xff,0x9e,0xff, +0x94,0xff,0xb4,0xff,0xed,0xff,0x10,0x0,0x24,0x0,0x2f,0x0, +0x1a,0x0,0xf8,0xff,0xeb,0xff,0xf0,0xff,0x5,0x0,0x27,0x0, +0x39,0x0,0x2c,0x0,0x9,0x0,0xe3,0xff,0xd0,0xff,0xcf,0xff, +0xcf,0xff,0xdd,0xff,0xf9,0xff,0xb,0x0,0x8,0x0,0xf4,0xff, +0xd0,0xff,0xad,0xff,0x98,0xff,0x8d,0xff,0x8b,0xff,0x8c,0xff, +0x85,0xff,0x82,0xff,0x81,0xff,0x71,0xff,0x6b,0xff,0x8c,0xff, +0xba,0xff,0xe9,0xff,0x17,0x0,0x1c,0x0,0x8,0x0,0x15,0x0, +0x1f,0x0,0xfe,0xff,0xe1,0xff,0xd2,0xff,0xc3,0xff,0xde,0xff, +0x4,0x0,0x1,0x0,0x5,0x0,0x1c,0x0,0x12,0x0,0xe,0x0, +0x27,0x0,0x22,0x0,0x16,0x0,0x28,0x0,0x2b,0x0,0x22,0x0, +0x2d,0x0,0x25,0x0,0x5,0x0,0xf1,0xff,0xe6,0xff,0xe3,0xff, +0xef,0xff,0xf4,0xff,0xf6,0xff,0x5,0x0,0x6,0x0,0xed,0xff, +0xda,0xff,0xdf,0xff,0xec,0xff,0xef,0xff,0xee,0xff,0xee,0xff, +0xe5,0xff,0xdd,0xff,0xda,0xff,0xc6,0xff,0xb8,0xff,0xc9,0xff, +0xd0,0xff,0xc9,0xff,0xd9,0xff,0xe0,0xff,0xcf,0xff,0xd4,0xff, +0xe5,0xff,0xe6,0xff,0xed,0xff,0xec,0xff,0xd8,0xff,0xd6,0xff, +0xd6,0xff,0xbf,0xff,0xb6,0xff,0xb5,0xff,0xa2,0xff,0xa7,0xff, +0xc6,0xff,0xc9,0xff,0xc8,0xff,0xe8,0xff,0x6,0x0,0x10,0x0, +0x1f,0x0,0x32,0x0,0x45,0x0,0x5c,0x0,0x64,0x0,0x54,0x0, +0x3e,0x0,0x26,0x0,0x2,0x0,0xe0,0xff,0xd8,0xff,0xe4,0xff, +0xf7,0xff,0x10,0x0,0x2a,0x0,0x37,0x0,0x2f,0x0,0x21,0x0, +0x10,0x0,0xfa,0xff,0xef,0xff,0xeb,0xff,0xd8,0xff,0xbb,0xff, +0xaa,0xff,0xa5,0xff,0xb3,0xff,0xd8,0xff,0x1,0x0,0x1f,0x0, +0x39,0x0,0x42,0x0,0x29,0x0,0xfb,0xff,0xd2,0xff,0xb1,0xff, +0x83,0xff,0x45,0xff,0xa,0xff,0xd9,0xfe,0xc2,0xfe,0xe8,0xfe, +0x31,0xff,0x75,0xff,0xd2,0xff,0x48,0x0,0xa9,0x0,0x8,0x1, +0x73,0x1,0xaa,0x1,0xa1,0x1,0x6e,0x1,0xf4,0x0,0x46,0x0, +0xb4,0xff,0x55,0xff,0x34,0xff,0x6a,0xff,0xcc,0xff,0x12,0x0, +0x32,0x0,0x34,0x0,0x25,0x0,0x28,0x0,0x4a,0x0,0x72,0x0, +0x8a,0x0,0x8a,0x0,0x6a,0x0,0x27,0x0,0xd3,0xff,0x81,0xff, +0x34,0xff,0x2,0xff,0x4,0xff,0x2b,0xff,0x6f,0xff,0xce,0xff, +0x25,0x0,0x5f,0x0,0x7e,0x0,0x7a,0x0,0x58,0x0,0x37,0x0, +0x1f,0x0,0x18,0x0,0x22,0x0,0x18,0x0,0xf8,0xff,0xef,0xff, +0xf6,0xff,0xf2,0xff,0xf1,0xff,0xfe,0xff,0x11,0x0,0x23,0x0, +0x1c,0x0,0xf4,0xff,0xc1,0xff,0x9b,0xff,0x8d,0xff,0x8f,0xff, +0xa4,0xff,0xdf,0xff,0x1e,0x0,0x3e,0x0,0x64,0x0,0x9c,0x0, +0xb4,0x0,0xab,0x0,0xa7,0x0,0xa3,0x0,0x93,0x0,0x78,0x0, +0x52,0x0,0x34,0x0,0x1d,0x0,0xfb,0xff,0xe7,0xff,0xfe,0xff, +0x2b,0x0,0x58,0x0,0x7e,0x0,0x90,0x0,0x84,0x0,0x60,0x0, +0x3c,0x0,0x18,0x0,0xde,0xff,0xa9,0xff,0x94,0xff,0x7a,0xff, +0x62,0xff,0x6e,0xff,0x7b,0xff,0x7c,0xff,0x9b,0xff,0xc2,0xff, +0xdb,0xff,0x6,0x0,0x2b,0x0,0x35,0x0,0x4b,0x0,0x62,0x0, +0x55,0x0,0x46,0x0,0x3a,0x0,0x23,0x0,0x16,0x0,0xc,0x0, +0xff,0xff,0xd,0x0,0x23,0x0,0x27,0x0,0x3b,0x0,0x51,0x0, +0x45,0x0,0x39,0x0,0x3a,0x0,0x2f,0x0,0x2a,0x0,0x2e,0x0, +0x1a,0x0,0x1,0x0,0xfa,0xff,0xee,0xff,0xe1,0xff,0xf0,0xff, +0xd,0x0,0x15,0x0,0xc,0x0,0x6,0x0,0xfe,0xff,0xe8,0xff, +0xdd,0xff,0xe7,0xff,0xef,0xff,0x7,0x0,0x3c,0x0,0x56,0x0, +0x45,0x0,0x43,0x0,0x4d,0x0,0x3d,0x0,0x2c,0x0,0x36,0x0, +0x3e,0x0,0x2e,0x0,0x19,0x0,0x1d,0x0,0x27,0x0,0x1b,0x0, +0x12,0x0,0x19,0x0,0xa,0x0,0xf2,0xff,0xf4,0xff,0xec,0xff, +0xce,0xff,0xce,0xff,0xdc,0xff,0xd2,0xff,0xd7,0xff,0xfb,0xff, +0xe,0x0,0x1b,0x0,0x43,0x0,0x6d,0x0,0x7d,0x0,0x85,0x0, +0x90,0x0,0x8e,0x0,0x7b,0x0,0x6b,0x0,0x5a,0x0,0x2f,0x0, +0x4,0x0,0xfe,0xff,0xfd,0xff,0xf5,0xff,0x7,0x0,0x26,0x0, +0x2b,0x0,0x1e,0x0,0x1a,0x0,0x23,0x0,0x35,0x0,0x42,0x0, +0x4c,0x0,0x58,0x0,0x49,0x0,0x24,0x0,0x19,0x0,0x15,0x0, +0xed,0xff,0xc8,0xff,0xc0,0xff,0xb6,0xff,0xc4,0xff,0x3,0x0, +0x33,0x0,0x3c,0x0,0x4e,0x0,0x5b,0x0,0x48,0x0,0x3d,0x0, +0x3c,0x0,0x2a,0x0,0x20,0x0,0x29,0x0,0x22,0x0,0xe,0x0, +0x9,0x0,0x12,0x0,0x22,0x0,0x33,0x0,0x37,0x0,0x2d,0x0, +0x22,0x0,0x14,0x0,0xfb,0xff,0xe9,0xff,0xf3,0xff,0xa,0x0, +0x17,0x0,0x25,0x0,0x3b,0x0,0x42,0x0,0x40,0x0,0x4b,0x0, +0x4e,0x0,0x47,0x0,0x52,0x0,0x60,0x0,0x5d,0x0,0x5d,0x0, +0x64,0x0,0x58,0x0,0x3f,0x0,0x3b,0x0,0x58,0x0,0x7d,0x0, +0x97,0x0,0xae,0x0,0xb6,0x0,0x9b,0x0,0x75,0x0,0x5a,0x0, +0x3e,0x0,0x26,0x0,0x1d,0x0,0x19,0x0,0x16,0x0,0xf,0x0, +0x4,0x0,0xb,0x0,0x10,0x0,0xf3,0xff,0xd5,0xff,0xbc,0xff, +0x85,0xff,0x51,0xff,0x3b,0xff,0x19,0xff,0xea,0xfe,0xc5,0xfe, +0x99,0xfe,0x80,0xfe,0xac,0xfe,0xf,0xff,0x8c,0xff,0x10,0x0, +0x89,0x0,0x1,0x1,0x7b,0x1,0xdd,0x1,0x22,0x2,0x3c,0x2, +0x0,0x2,0x72,0x1,0xbd,0x0,0x7,0x0,0x85,0xff,0x62,0xff, +0x7e,0xff,0xb6,0xff,0x3,0x0,0x47,0x0,0x53,0x0,0x2f,0x0, +0x6,0x0,0xee,0xff,0xf3,0xff,0x1c,0x0,0x45,0x0,0x40,0x0, +0x14,0x0,0xd5,0xff,0x8f,0xff,0x57,0xff,0x37,0xff,0x31,0xff, +0x5d,0xff,0xab,0xff,0xf6,0xff,0x4f,0x0,0x9f,0x0,0xa1,0x0, +0x73,0x0,0x55,0x0,0x3c,0x0,0x28,0x0,0x1f,0x0,0x0,0x0, +0xde,0xff,0xdf,0xff,0xdb,0xff,0xc7,0xff,0xc2,0xff,0xc1,0xff, +0xb8,0xff,0xbf,0xff,0xc5,0xff,0xa8,0xff,0x74,0xff,0x3f,0xff, +0x27,0xff,0x3c,0xff,0x6f,0xff,0xaa,0xff,0xf1,0xff,0x40,0x0, +0x7c,0x0,0x9c,0x0,0xae,0x0,0xaf,0x0,0x97,0x0,0x87,0x0, +0x97,0x0,0xa7,0x0,0xa5,0x0,0x9e,0x0,0x85,0x0,0x57,0x0, +0x2a,0x0,0x7,0x0,0xf8,0xff,0xd,0x0,0x32,0x0,0x57,0x0, +0x75,0x0,0x6c,0x0,0x39,0x0,0xfb,0xff,0xc7,0xff,0xab,0xff, +0xa4,0xff,0x96,0xff,0x8f,0xff,0x9b,0xff,0x92,0xff,0x7d,0xff, +0x81,0xff,0x8a,0xff,0x96,0xff,0xbd,0xff,0xd8,0xff,0xd3,0xff, +0xd8,0xff,0xdc,0xff,0xc7,0xff,0xc5,0xff,0xd8,0xff,0xd5,0xff, +0xdc,0xff,0xfd,0xff,0x11,0x0,0x20,0x0,0x2f,0x0,0x1f,0x0, +0xa,0x0,0x12,0x0,0xc,0x0,0xfb,0xff,0x12,0x0,0x35,0x0, +0x3b,0x0,0x42,0x0,0x40,0x0,0x16,0x0,0xf3,0xff,0xfc,0xff, +0x1,0x0,0xf8,0xff,0x9,0x0,0x25,0x0,0x26,0x0,0x1f,0x0, +0x2c,0x0,0x33,0x0,0x2e,0x0,0x38,0x0,0x3e,0x0,0x28,0x0, +0x20,0x0,0x34,0x0,0x43,0x0,0x43,0x0,0x2e,0x0,0x8,0x0, +0xfa,0xff,0x5,0x0,0xa,0x0,0x13,0x0,0x1e,0x0,0xe,0x0, +0xf7,0xff,0xe1,0xff,0xba,0xff,0xa5,0xff,0xae,0xff,0xaa,0xff, +0xa3,0xff,0xbe,0xff,0xdd,0xff,0xdb,0xff,0xc2,0xff,0xb5,0xff, +0xbe,0xff,0xc2,0xff,0xbd,0xff,0xc4,0xff,0xd4,0xff,0xec,0xff, +0x11,0x0,0x1d,0x0,0x12,0x0,0x22,0x0,0x3f,0x0,0x4d,0x0, +0x5f,0x0,0x6a,0x0,0x61,0x0,0x5e,0x0,0x57,0x0,0x43,0x0, +0x3d,0x0,0x37,0x0,0x1f,0x0,0xe,0x0,0xa,0x0,0xd,0x0, +0x1d,0x0,0x29,0x0,0x23,0x0,0xe,0x0,0xea,0xff,0xc8,0xff, +0xc1,0xff,0xcb,0xff,0xe5,0xff,0xa,0x0,0x13,0x0,0x4,0x0, +0xf4,0xff,0xd9,0xff,0xc4,0xff,0xcc,0xff,0xd8,0xff,0xe0,0xff, +0xfc,0xff,0xe,0x0,0xfa,0xff,0xe0,0xff,0xdd,0xff,0xde,0xff, +0xd4,0xff,0xce,0xff,0xcf,0xff,0xcc,0xff,0xd9,0xff,0xf3,0xff, +0xfc,0xff,0x4,0x0,0x1b,0x0,0x17,0x0,0xfa,0xff,0xed,0xff, +0xe2,0xff,0xce,0xff,0xc3,0xff,0xbc,0xff,0xc4,0xff,0xe4,0xff, +0x0,0x0,0xf,0x0,0x22,0x0,0x2c,0x0,0x36,0x0,0x45,0x0, +0x3f,0x0,0x32,0x0,0x36,0x0,0x2f,0x0,0x1c,0x0,0xe,0x0, +0xf2,0xff,0xd6,0xff,0xda,0xff,0xdb,0xff,0xc4,0xff,0xc0,0xff, +0xd1,0xff,0xd3,0xff,0xcc,0xff,0xdf,0xff,0xfd,0xff,0x5,0x0, +0xa,0x0,0x13,0x0,0xff,0xff,0xe2,0xff,0xdb,0xff,0xcc,0xff, +0xb8,0xff,0xc9,0xff,0xe2,0xff,0xf1,0xff,0x3,0x0,0xff,0xff, +0xe6,0xff,0xe3,0xff,0xe8,0xff,0xde,0xff,0xdb,0xff,0xe8,0xff, +0xfd,0xff,0x10,0x0,0x8,0x0,0xed,0xff,0xda,0xff,0xc6,0xff, +0xba,0xff,0xc6,0xff,0xd3,0xff,0xd5,0xff,0xdc,0xff,0xe7,0xff, +0xf6,0xff,0xfc,0xff,0xec,0xff,0xd0,0xff,0xb5,0xff,0xa5,0xff, +0xaa,0xff,0xb8,0xff,0xc4,0xff,0xe6,0xff,0xd,0x0,0x18,0x0, +0x15,0x0,0xc,0x0,0xf7,0xff,0xe2,0xff,0xd7,0xff,0xd5,0xff, +0xdc,0xff,0xe8,0xff,0x4,0x0,0x20,0x0,0x1a,0x0,0x8,0x0, +0x5,0x0,0x5,0x0,0x1b,0x0,0x41,0x0,0x3e,0x0,0x2e,0x0, +0x39,0x0,0x2b,0x0,0xf1,0xff,0xbb,0xff,0x99,0xff,0x99,0xff, +0xb6,0xff,0xc9,0xff,0xda,0xff,0xfa,0xff,0x6,0x0,0x12,0x0, +0x36,0x0,0x38,0x0,0x11,0x0,0xff,0xff,0xfb,0xff,0xef,0xff, +0xed,0xff,0xec,0xff,0xe1,0xff,0xdf,0xff,0xd9,0xff,0xbf,0xff, +0xa8,0xff,0xa7,0xff,0xb9,0xff,0xd4,0xff,0xef,0xff,0x8,0x0, +0xf,0x0,0x5,0x0,0x3,0x0,0x4,0x0,0xee,0xff,0xd3,0xff, +0xd1,0xff,0xdc,0xff,0xe6,0xff,0xf1,0xff,0xf2,0xff,0xed,0xff, +0xfc,0xff,0x13,0x0,0xe,0x0,0xf8,0xff,0xea,0xff,0xe5,0xff, +0xec,0xff,0xf4,0xff,0xe7,0xff,0xdf,0xff,0xf6,0xff,0x9,0x0, +0xc,0x0,0x18,0x0,0x1f,0x0,0x11,0x0,0x6,0x0,0xfc,0xff, +0xde,0xff,0xbe,0xff,0xae,0xff,0xac,0xff,0xbc,0xff,0xde,0xff, +0xfa,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xf2,0xff,0xe5,0xff, +0xd8,0xff,0xc3,0xff,0xb3,0xff,0xad,0xff,0xa4,0xff,0xa7,0xff, +0xbd,0xff,0xcc,0xff,0xe1,0xff,0xf8,0xff,0xea,0xff,0xd6,0xff, +0xe5,0xff,0xe6,0xff,0xe6,0xff,0x15,0x0,0x3d,0x0,0x39,0x0, +0x2c,0x0,0x1a,0x0,0x3,0x0,0xf3,0xff,0xdb,0xff,0xd0,0xff, +0xe2,0xff,0xd7,0xff,0xc5,0xff,0xe9,0xff,0xf,0x0,0xb,0x0, +0xff,0xff,0xf4,0xff,0xe3,0xff,0xe2,0xff,0xe7,0xff,0xe5,0xff, +0xee,0xff,0x4,0x0,0x11,0x0,0xa,0x0,0x4,0x0,0xc,0x0, +0x8,0x0,0xf5,0xff,0xef,0xff,0xea,0xff,0xda,0xff,0xdd,0xff, +0xec,0xff,0xfe,0xff,0x22,0x0,0x32,0x0,0x1f,0x0,0x1b,0x0, +0x17,0x0,0xfb,0xff,0xf1,0xff,0xeb,0xff,0xd1,0xff,0xcf,0xff, +0xdc,0xff,0xcf,0xff,0xc9,0xff,0xda,0xff,0xe7,0xff,0xef,0xff, +0xf9,0xff,0x0,0x0,0x8,0x0,0x14,0x0,0x22,0x0,0x24,0x0, +0x10,0x0,0xf,0x0,0x23,0x0,0x19,0x0,0xd,0x0,0x20,0x0, +0x19,0x0,0x0,0x0,0x7,0x0,0xe,0x0,0x4,0x0,0x7,0x0, +0x0,0x0,0xef,0xff,0xf4,0xff,0xf8,0xff,0xf3,0xff,0xff,0xff, +0x8,0x0,0xfa,0xff,0xee,0xff,0xe4,0xff,0xd5,0xff,0xd5,0xff, +0xe5,0xff,0xf4,0xff,0x0,0x0,0xf,0x0,0x1b,0x0,0x1c,0x0, +0x15,0x0,0x13,0x0,0x10,0x0,0xf,0x0,0x1a,0x0,0x21,0x0, +0x15,0x0,0xf,0x0,0x10,0x0,0xff,0xff,0xef,0xff,0xf3,0xff, +0xfa,0xff,0xfb,0xff,0x0,0x0,0x6,0x0,0x6,0x0,0x9,0x0, +0xb,0x0,0xfd,0xff,0xe0,0xff,0xc7,0xff,0xc3,0xff,0xd5,0xff, +0xe4,0xff,0xe0,0xff,0xe7,0xff,0x1,0x0,0xd,0x0,0x9,0x0, +0x1c,0x0,0x39,0x0,0x46,0x0,0x47,0x0,0x41,0x0,0x36,0x0, +0x2c,0x0,0x20,0x0,0xd,0x0,0xf9,0xff,0xe8,0xff,0xe9,0xff, +0xf6,0xff,0xf4,0xff,0xf7,0xff,0xb,0x0,0x10,0x0,0x10,0x0, +0x23,0x0,0x26,0x0,0x12,0x0,0xb,0x0,0x4,0x0,0xf5,0xff, +0xf8,0xff,0xfe,0xff,0xff,0xff,0xb,0x0,0x5,0x0,0xe6,0xff, +0xe1,0xff,0xed,0xff,0xe5,0xff,0xec,0xff,0x14,0x0,0x2c,0x0, +0x29,0x0,0x22,0x0,0x1a,0x0,0x11,0x0,0x10,0x0,0x14,0x0, +0xf,0x0,0xfe,0xff,0xf1,0xff,0xf4,0xff,0x0,0x0,0xf,0x0, +0x1b,0x0,0x16,0x0,0xe,0x0,0x12,0x0,0x12,0x0,0x5,0x0, +0xf6,0xff,0xeb,0xff,0xe9,0xff,0xf4,0xff,0x1,0x0,0x11,0x0, +0x27,0x0,0x39,0x0,0x44,0x0,0x3d,0x0,0x23,0x0,0x15,0x0, +0x1c,0x0,0x14,0x0,0xfe,0xff,0xef,0xff,0xe2,0xff,0xe0,0xff, +0xf6,0xff,0xa,0x0,0x17,0x0,0x26,0x0,0x35,0x0,0x4f,0x0, +0x6d,0x0,0x7b,0x0,0x80,0x0,0x7c,0x0,0x63,0x0,0x41,0x0, +0x12,0x0,0xd2,0xff,0xb1,0xff,0xb0,0xff,0x9d,0xff,0x91,0xff, +0xa7,0xff,0xc5,0xff,0xe5,0xff,0x13,0x0,0x36,0x0,0x44,0x0, +0x45,0x0,0x32,0x0,0xf,0x0,0xed,0xff,0xda,0xff,0xe1,0xff, +0xed,0xff,0xf7,0xff,0x1,0x0,0xf6,0xff,0xe6,0xff,0xf9,0xff, +0x10,0x0,0x15,0x0,0x28,0x0,0x3b,0x0,0x3a,0x0,0x3c,0x0, +0x39,0x0,0x22,0x0,0x13,0x0,0xb,0x0,0x4,0x0,0x10,0x0, +0x22,0x0,0x26,0x0,0x21,0x0,0x14,0x0,0xa,0x0,0xc,0x0, +0xff,0xff,0xf0,0xff,0xf3,0xff,0xf1,0xff,0xf3,0xff,0x8,0x0, +0xb,0x0,0x7,0x0,0x1c,0x0,0x1a,0x0,0x9,0x0,0x22,0x0, +0x41,0x0,0x42,0x0,0x45,0x0,0x3c,0x0,0x13,0x0,0xf7,0xff, +0xef,0xff,0xe6,0xff,0xf2,0xff,0x5,0x0,0xfc,0xff,0xf1,0xff, +0xfc,0xff,0xfe,0xff,0xf6,0xff,0xff,0xff,0xe,0x0,0xe,0x0, +0x12,0x0,0x18,0x0,0xa,0x0,0xfa,0xff,0xf8,0xff,0xe6,0xff, +0xd3,0xff,0xd9,0xff,0xdc,0xff,0xd7,0xff,0xe7,0xff,0xf0,0xff, +0xe5,0xff,0xf2,0xff,0xc,0x0,0x8,0x0,0x4,0x0,0x19,0x0, +0x26,0x0,0x30,0x0,0x3d,0x0,0x32,0x0,0x23,0x0,0x26,0x0, +0x1c,0x0,0xa,0x0,0xe,0x0,0x9,0x0,0xf6,0xff,0xfe,0xff, +0x4,0x0,0xef,0xff,0xee,0xff,0xfd,0xff,0xed,0xff,0xdc,0xff, +0xe8,0xff,0xf4,0xff,0xf4,0xff,0xec,0xff,0xe3,0xff,0xe1,0xff, +0xdb,0xff,0xd0,0xff,0xde,0xff,0xf2,0xff,0xf2,0xff,0xf9,0xff, +0x3,0x0,0xfa,0xff,0x0,0x0,0x15,0x0,0x11,0x0,0xe,0x0, +0x1a,0x0,0x16,0x0,0xf,0x0,0x12,0x0,0x10,0x0,0x12,0x0, +0x15,0x0,0x4,0x0,0xfb,0xff,0x2,0x0,0xfe,0xff,0xf8,0xff, +0xfc,0xff,0xf9,0xff,0xf4,0xff,0xf8,0xff,0xff,0xff,0xd,0x0, +0x19,0x0,0x17,0x0,0x1a,0x0,0x28,0x0,0x2c,0x0,0x29,0x0, +0x2c,0x0,0x29,0x0,0x1c,0x0,0x14,0x0,0x12,0x0,0x9,0x0, +0x9,0x0,0x17,0x0,0x16,0x0,0x8,0x0,0xa,0x0,0xf,0x0, +0xa,0x0,0x10,0x0,0x15,0x0,0xe,0x0,0xc,0x0,0x7,0x0, +0xfb,0xff,0x1,0x0,0x5,0x0,0xf7,0xff,0xf3,0xff,0xf6,0xff, +0xef,0xff,0xff,0xff,0x18,0x0,0xa,0x0,0xf6,0xff,0xfc,0xff, +0x2,0x0,0x4,0x0,0x9,0x0,0x4,0x0,0x5,0x0,0x13,0x0, +0x12,0x0,0xa,0x0,0x12,0x0,0x19,0x0,0x13,0x0,0xa,0x0, +0xff,0xff,0xf8,0xff,0xfc,0xff,0x2,0x0,0xfe,0xff,0xfb,0xff, +0x1,0x0,0x8,0x0,0xb,0x0,0x15,0x0,0x24,0x0,0x25,0x0, +0x18,0x0,0x10,0x0,0x10,0x0,0xe,0x0,0x12,0x0,0x12,0x0, +0xff,0xff,0xee,0xff,0xf5,0xff,0xfe,0xff,0xf7,0xff,0xeb,0xff, +0xe9,0xff,0xf7,0xff,0xc,0x0,0x13,0x0,0x14,0x0,0x16,0x0, +0xb,0x0,0xff,0xff,0x5,0x0,0x5,0x0,0xf2,0xff,0xec,0xff, +0xf8,0xff,0x0,0x0,0x2,0x0,0x4,0x0,0xb,0x0,0xb,0x0, +0x2,0x0,0xd,0x0,0x22,0x0,0x16,0x0,0x7,0x0,0x17,0x0, +0x1b,0x0,0xa,0x0,0xb,0x0,0x12,0x0,0xd,0x0,0x6,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0xfa,0xff,0xf5,0xff,0xfe,0xff, +0xff,0xff,0xf8,0xff,0xf6,0xff,0xef,0xff,0xed,0xff,0xf2,0xff, +0xe7,0xff,0xdd,0xff,0xef,0xff,0xfb,0xff,0xed,0xff,0xe4,0xff, +0xeb,0xff,0xed,0xff,0xe2,0xff,0xdd,0xff,0xea,0xff,0xf2,0xff, +0xe7,0xff,0xda,0xff,0xd8,0xff,0xe1,0xff,0xe6,0xff,0xdd,0xff, +0xd5,0xff,0xda,0xff,0xd9,0xff,0xcd,0xff,0xce,0xff,0xde,0xff, +0xee,0xff,0xfc,0xff,0x6,0x0,0xa,0x0,0x10,0x0,0x11,0x0, +0xd,0x0,0x14,0x0,0x1f,0x0,0x1b,0x0,0x10,0x0,0x7,0x0, +0xf8,0xff,0xef,0xff,0xf5,0xff,0xf8,0xff,0xf1,0xff,0xee,0xff, +0xe8,0xff,0xdb,0xff,0xda,0xff,0xdb,0xff,0xda,0xff,0xef,0xff, +0x5,0x0,0xfe,0xff,0x0,0x0,0x11,0x0,0x9,0x0,0xfd,0xff, +0xb,0x0,0x18,0x0,0x1c,0x0,0x18,0x0,0x5,0x0,0xfd,0xff, +0x7,0x0,0x4,0x0,0xf7,0xff,0xf3,0xff,0xf0,0xff,0xed,0xff, +0xe7,0xff,0xe0,0xff,0xe3,0xff,0xe1,0xff,0xd4,0xff,0xd9,0xff, +0xee,0xff,0x8,0x0,0x27,0x0,0x2f,0x0,0x20,0x0,0x1b,0x0, +0x9,0x0,0xe6,0xff,0xef,0xff,0xd,0x0,0x0,0x0,0xdb,0xff, +0xbf,0xff,0xbe,0xff,0xe9,0xff,0x18,0x0,0x20,0x0,0x15,0x0, +0x7,0x0,0xf4,0xff,0xe7,0xff,0xe1,0xff,0xe1,0xff,0xee,0xff, +0xe,0x0,0x3c,0x0,0x56,0x0,0x39,0x0,0xff,0xff,0xd0,0xff, +0xc3,0xff,0xe7,0xff,0xe,0x0,0x6,0x0,0xf5,0xff,0xfb,0xff, +0xfc,0xff,0xf8,0xff,0xe8,0xff,0xc9,0xff,0xd0,0xff,0xf5,0xff, +0x1,0x0,0x2,0x0,0xff,0xff,0xe5,0xff,0xda,0xff,0xec,0xff, +0xf5,0xff,0xf9,0xff,0xfd,0xff,0xf1,0xff,0xe8,0xff,0xe8,0xff, +0xde,0xff,0xd3,0xff,0xd7,0xff,0xe3,0xff,0xeb,0xff,0xef,0xff, +0x2,0x0,0x1c,0x0,0x10,0x0,0xf8,0xff,0x4,0x0,0xa,0x0, +0xf0,0xff,0xe1,0xff,0xe1,0xff,0xe2,0xff,0xec,0xff,0xef,0xff, +0xed,0xff,0xf6,0xff,0xf8,0xff,0xf9,0xff,0x9,0x0,0x6,0x0, +0x1,0x0,0x18,0x0,0x14,0x0,0xf1,0xff,0xf5,0xff,0x9,0x0, +0x8,0x0,0xf,0x0,0xc,0x0,0xf2,0xff,0xef,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0xf1,0xff,0xf3,0xff,0xb,0x0, +0x16,0x0,0x16,0x0,0xe,0x0,0xf1,0xff,0xdb,0xff,0xe2,0xff, +0xe0,0xff,0xd0,0xff,0xd9,0xff,0xf4,0xff,0xf8,0xff,0xe9,0xff, +0xe3,0xff,0xec,0xff,0xf3,0xff,0xf8,0xff,0x2,0x0,0x4,0x0, +0xf9,0xff,0xf2,0xff,0xf7,0xff,0xfe,0xff,0xfe,0xff,0xf4,0xff, +0xf1,0xff,0x0,0x0,0x9,0x0,0xfd,0xff,0xf6,0xff,0xf4,0xff, +0xe9,0xff,0xe4,0xff,0xee,0xff,0xf1,0xff,0xed,0xff,0xee,0xff, +0xed,0xff,0xee,0xff,0xfb,0xff,0x0,0x0,0xf0,0xff,0xe7,0xff, +0xf0,0xff,0xf2,0xff,0xf0,0xff,0xf4,0xff,0xee,0xff,0xe1,0xff, +0xe4,0xff,0xe9,0xff,0xe2,0xff,0xdf,0xff,0xdc,0xff,0xdd,0xff, +0xf6,0xff,0x5,0x0,0xed,0xff,0xdf,0xff,0xf1,0xff,0xf8,0xff, +0xf7,0xff,0xf9,0xff,0xec,0xff,0xe6,0xff,0xf8,0xff,0xfb,0xff, +0xe5,0xff,0xd4,0xff,0xca,0xff,0xbe,0xff,0xbf,0xff,0xd4,0xff, +0xe4,0xff,0xe0,0xff,0xd4,0xff,0xd4,0xff,0xdd,0xff,0xe7,0xff, +0xe7,0xff,0xe0,0xff,0xe2,0xff,0xee,0xff,0xf3,0xff,0xf4,0xff, +0xf3,0xff,0xe7,0xff,0xe4,0xff,0xfa,0xff,0x11,0x0,0x13,0x0, +0x5,0x0,0xf9,0xff,0x1,0x0,0x9,0x0,0x6,0x0,0xc,0x0, +0xa,0x0,0xf6,0xff,0xf7,0xff,0x3,0x0,0xf6,0xff,0xea,0xff, +0xf0,0xff,0xf3,0xff,0xf9,0xff,0x0,0x0,0xf9,0xff,0xf4,0xff, +0xec,0xff,0xe2,0xff,0xee,0xff,0xf8,0xff,0xf0,0xff,0xf8,0xff, +0xff,0xff,0xed,0xff,0xee,0xff,0x2,0x0,0x8,0x0,0xe,0x0, +0x17,0x0,0x17,0x0,0x1a,0x0,0x17,0x0,0xe,0x0,0x11,0x0, +0xf,0x0,0x2,0x0,0xfe,0xff,0xf6,0xff,0xeb,0xff,0xf3,0xff, +0xfe,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0xfb,0xff,0xfd,0xff, +0x1,0x0,0x1,0x0,0xfb,0xff,0xf5,0xff,0xf7,0xff,0xf9,0xff, +0xf5,0xff,0xf3,0xff,0xf1,0xff,0xf1,0xff,0xfb,0xff,0xf9,0xff, +0xf0,0xff,0xfa,0xff,0xfd,0xff,0xf7,0xff,0x1,0x0,0x0,0x0, +0xee,0xff,0xf3,0xff,0xf4,0xff,0xe7,0xff,0xf5,0xff,0xff,0xff, +0xf3,0xff,0x1,0x0,0x10,0x0,0xfd,0xff,0xf1,0xff,0xed,0xff, +0xe4,0xff,0xf0,0xff,0xf9,0xff,0xe9,0xff,0xe2,0xff,0xdf,0xff, +0xda,0xff,0xe2,0xff,0xe1,0xff,0xd9,0xff,0xf0,0xff,0x2,0x0, +0xfa,0xff,0xf8,0xff,0xf4,0xff,0xec,0xff,0xf7,0xff,0xf8,0xff, +0xe7,0xff,0xeb,0xff,0xf2,0xff,0xeb,0xff,0xf5,0xff,0x5,0x0, +0x0,0x0,0xf7,0xff,0xf3,0xff,0xef,0xff,0xf4,0xff,0xfe,0xff, +0x8,0x0,0x13,0x0,0x12,0x0,0xf,0x0,0x10,0x0,0x7,0x0, +0xf8,0xff,0xf6,0xff,0xff,0xff,0x9,0x0,0x7,0x0,0xf9,0xff, +0xf0,0xff,0xec,0xff,0xe2,0xff,0xe2,0xff,0xea,0xff,0xe9,0xff, +0xe6,0xff,0xee,0xff,0xfa,0xff,0xc,0x0,0x19,0x0,0xa,0x0, +0xf9,0xff,0x5,0x0,0x10,0x0,0x9,0x0,0xd,0x0,0x17,0x0, +0x13,0x0,0x11,0x0,0x16,0x0,0xd,0x0,0x4,0x0,0xd,0x0, +0x13,0x0,0x11,0x0,0x11,0x0,0x8,0x0,0xf7,0xff,0xf9,0xff, +0x0,0x0,0xf8,0xff,0xed,0xff,0xe7,0xff,0xe7,0xff,0xf7,0xff, +0xa,0x0,0xa,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xed,0xff, +0xdc,0xff,0xe3,0xff,0x0,0x0,0x18,0x0,0x1c,0x0,0x17,0x0, +0x14,0x0,0x14,0x0,0x16,0x0,0x10,0x0,0x0,0x0,0xfc,0xff, +0x7,0x0,0x10,0x0,0xf,0x0,0xfe,0xff,0xdf,0xff,0xd1,0xff, +0xdc,0xff,0xe3,0xff,0xeb,0xff,0xfe,0xff,0xff,0xff,0xf1,0xff, +0xee,0xff,0xef,0xff,0xed,0xff,0xf8,0xff,0x2,0x0,0x5,0x0, +0x12,0x0,0x1a,0x0,0xf,0x0,0xa,0x0,0x10,0x0,0x1b,0x0, +0x25,0x0,0x23,0x0,0x1d,0x0,0x23,0x0,0x1d,0x0,0x9,0x0, +0xb,0x0,0x18,0x0,0xe,0x0,0x3,0x0,0xc,0x0,0x15,0x0, +0x12,0x0,0xf,0x0,0xa,0x0,0x6,0x0,0x7,0x0,0x6,0x0, +0xfe,0xff,0xfc,0xff,0x6,0x0,0xd,0x0,0x7,0x0,0x0,0x0, +0x0,0x0,0x6,0x0,0x10,0x0,0x15,0x0,0x10,0x0,0x3,0x0, +0xf5,0xff,0xf9,0xff,0xc,0x0,0x12,0x0,0xd,0x0,0x11,0x0, +0x12,0x0,0x9,0x0,0x5,0x0,0x1,0x0,0xff,0xff,0x2,0x0, +0xfc,0xff,0xf2,0xff,0xf6,0xff,0xf4,0xff,0xe7,0xff,0xf3,0xff, +0xd,0x0,0xa,0x0,0xf9,0xff,0xfc,0xff,0x9,0x0,0xf,0x0, +0x11,0x0,0x11,0x0,0xb,0x0,0xc,0x0,0xc,0x0,0xfe,0xff, +0xfc,0xff,0xd,0x0,0x9,0x0,0xfc,0xff,0x6,0x0,0xd,0x0, +0x4,0x0,0xfa,0xff,0xec,0xff,0xe8,0xff,0xf1,0xff,0xe3,0xff, +0xd7,0xff,0xee,0xff,0xfb,0xff,0xf5,0xff,0x5,0x0,0xe,0x0, +0x1,0x0,0x1,0x0,0x9,0x0,0xf,0x0,0x1b,0x0,0xf,0x0, +0xf0,0xff,0xf1,0xff,0x2,0x0,0x2,0x0,0x8,0x0,0xf,0x0, +0x8,0x0,0x5,0x0,0xb,0x0,0x6,0x0,0xff,0xff,0x2,0x0, +0xb,0x0,0xc,0x0,0x3,0x0,0x1,0x0,0xa,0x0,0x3,0x0, +0xf2,0xff,0xef,0xff,0xf8,0xff,0x2,0x0,0x10,0x0,0x17,0x0, +0x14,0x0,0x12,0x0,0x14,0x0,0x17,0x0,0x20,0x0,0x2a,0x0, +0x23,0x0,0x16,0x0,0x17,0x0,0x21,0x0,0x28,0x0,0x2a,0x0, +0x23,0x0,0x17,0x0,0x15,0x0,0x17,0x0,0x13,0x0,0x14,0x0, +0x1a,0x0,0x15,0x0,0x13,0x0,0x27,0x0,0x3a,0x0,0x2c,0x0, +0xa,0x0,0x6,0x0,0x20,0x0,0x2a,0x0,0x1f,0x0,0x19,0x0, +0x11,0x0,0xc,0x0,0x21,0x0,0x29,0x0,0xf,0x0,0x5,0x0, +0xe,0x0,0x3,0x0,0xfa,0xff,0x0,0x0,0xfa,0xff,0xf5,0xff, +0x1,0x0,0x9,0x0,0x7,0x0,0x9,0x0,0xa,0x0,0xb,0x0, +0x17,0x0,0x25,0x0,0x29,0x0,0x2d,0x0,0x30,0x0,0x25,0x0, +0x17,0x0,0xf,0x0,0xd,0x0,0x12,0x0,0x14,0x0,0x5,0x0, +0xf8,0xff,0xfb,0xff,0xfa,0xff,0xf6,0xff,0xfc,0xff,0x0,0x0, +0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf5,0xff, +0xf5,0xff,0xf8,0xff,0xfe,0xff,0xa,0x0,0x10,0x0,0xe,0x0, +0xf,0x0,0x9,0x0,0xff,0xff,0x8,0x0,0x12,0x0,0xa,0x0, +0x12,0x0,0x1f,0x0,0x13,0x0,0x16,0x0,0x29,0x0,0x1a,0x0, +0x8,0x0,0xd,0x0,0x6,0x0,0xfc,0xff,0x8,0x0,0xd,0x0, +0x9,0x0,0x10,0x0,0x12,0x0,0x12,0x0,0x20,0x0,0x26,0x0, +0x1a,0x0,0x12,0x0,0x10,0x0,0xa,0x0,0x7,0x0,0xc,0x0, +0x10,0x0,0xc,0x0,0xe,0x0,0x17,0x0,0x17,0x0,0xe,0x0, +0x11,0x0,0x1e,0x0,0x28,0x0,0x25,0x0,0x1c,0x0,0x1e,0x0, +0x24,0x0,0x18,0x0,0x6,0x0,0xfe,0xff,0xf8,0xff,0xf3,0xff, +0xf8,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0x0,0x0,0xf,0x0, +0x13,0x0,0x0,0x0,0xf3,0xff,0xf9,0xff,0xfb,0xff,0xf4,0xff, +0xf3,0xff,0xf1,0xff,0xf1,0xff,0xfa,0xff,0x2,0x0,0xfc,0xff, +0xee,0xff,0xef,0xff,0x0,0x0,0x5,0x0,0x4,0x0,0x13,0x0, +0x21,0x0,0x17,0x0,0xc,0x0,0xf,0x0,0xf,0x0,0xe,0x0, +0x11,0x0,0xb,0x0,0xfb,0xff,0xf3,0xff,0xf4,0xff,0xf6,0xff, +0xff,0xff,0xe,0x0,0xe,0x0,0x3,0x0,0x9,0x0,0x17,0x0, +0x11,0x0,0x7,0x0,0xc,0x0,0xb,0x0,0x5,0x0,0x9,0x0, +0xf,0x0,0xf,0x0,0x16,0x0,0x1f,0x0,0x1b,0x0,0x15,0x0, +0x18,0x0,0x18,0x0,0xd,0x0,0x5,0x0,0x14,0x0,0x2e,0x0, +0x40,0x0,0x4b,0x0,0x47,0x0,0x27,0x0,0xa,0x0,0x13,0x0, +0x2b,0x0,0x22,0x0,0x3,0x0,0xe8,0xff,0xce,0xff,0xb5,0xff, +0xa0,0xff,0x89,0xff,0x7d,0xff,0x86,0xff,0x9e,0xff,0xc7,0xff, +0xee,0xff,0xf8,0xff,0x9,0x0,0x3f,0x0,0x77,0x0,0xa0,0x0, +0xbe,0x0,0xaf,0x0,0x82,0x0,0x6b,0x0,0x51,0x0,0x21,0x0, +0x9,0x0,0x7,0x0,0x4,0x0,0x16,0x0,0x2a,0x0,0x15,0x0, +0xf5,0xff,0xed,0xff,0xfb,0xff,0x1a,0x0,0x32,0x0,0x2e,0x0, +0x1e,0x0,0x11,0x0,0xff,0xff,0xe9,0xff,0xd7,0xff,0xce,0xff, +0xd4,0xff,0xe8,0xff,0xfc,0xff,0xfd,0xff,0xed,0xff,0xde,0xff, +0xe0,0xff,0xef,0xff,0xd,0x0,0x2e,0x0,0x34,0x0,0x2f,0x0, +0x34,0x0,0x2d,0x0,0x19,0x0,0x1a,0x0,0x27,0x0,0x27,0x0, +0x25,0x0,0x20,0x0,0x8,0x0,0xea,0xff,0xd8,0xff,0xca,0xff, +0xba,0xff,0xb9,0xff,0xc9,0xff,0xd6,0xff,0xdd,0xff,0xde,0xff, +0xd7,0xff,0xd8,0xff,0xf0,0xff,0x7,0x0,0xf,0x0,0x16,0x0, +0x16,0x0,0xd,0x0,0xb,0x0,0xc,0x0,0xf,0x0,0x1a,0x0, +0x19,0x0,0xb,0x0,0x8,0x0,0x7,0x0,0xfb,0xff,0xff,0xff, +0x17,0x0,0x25,0x0,0x1f,0x0,0x15,0x0,0x20,0x0,0x33,0x0, +0x2a,0x0,0x16,0x0,0x1a,0x0,0x17,0x0,0xfe,0xff,0xf4,0xff, +0xf6,0xff,0xf2,0xff,0xf0,0xff,0xe4,0xff,0xcf,0xff,0xd2,0xff, +0xdb,0xff,0xcf,0xff,0xc7,0xff,0xcb,0xff,0xcf,0xff,0xd8,0xff, +0xe3,0xff,0xeb,0xff,0xfb,0xff,0x2,0x0,0xf8,0xff,0xfa,0xff, +0x2,0x0,0xfc,0xff,0xfe,0xff,0x13,0x0,0x1d,0x0,0xd,0x0, +0x1,0x0,0xb,0x0,0x13,0x0,0xd,0x0,0xd,0x0,0x16,0x0, +0x16,0x0,0x16,0x0,0x16,0x0,0x9,0x0,0xff,0xff,0x1,0x0, +0xf8,0xff,0xea,0xff,0xeb,0xff,0xf1,0xff,0xf6,0xff,0xf5,0xff, +0xe8,0xff,0xe1,0xff,0xeb,0xff,0xf0,0xff,0xef,0xff,0xfc,0xff, +0x11,0x0,0x1e,0x0,0x26,0x0,0x26,0x0,0x21,0x0,0x18,0x0, +0x13,0x0,0x1e,0x0,0x31,0x0,0x30,0x0,0x18,0x0,0xfe,0xff, +0xf1,0xff,0xe9,0xff,0xe1,0xff,0xe1,0xff,0xe6,0xff,0xe8,0xff, +0xed,0xff,0xee,0xff,0xdf,0xff,0xd9,0xff,0xe5,0xff,0xe7,0xff, +0xe0,0xff,0xe9,0xff,0xf9,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0x2,0x0,0x7,0x0,0xa,0x0,0xf,0x0,0x18,0x0,0x20,0x0, +0x24,0x0,0x25,0x0,0x28,0x0,0x29,0x0,0x1e,0x0,0x11,0x0, +0x12,0x0,0x10,0x0,0x6,0x0,0x2,0x0,0x0,0x0,0x5,0x0, +0x16,0x0,0x1b,0x0,0xc,0x0,0x3,0x0,0x4,0x0,0x2,0x0, +0xfa,0xff,0xf3,0xff,0xfa,0xff,0x2,0x0,0xf3,0xff,0xe7,0xff, +0xf5,0xff,0xf9,0xff,0xf0,0xff,0xfb,0xff,0x8,0x0,0x6,0x0, +0x8,0x0,0xd,0x0,0x11,0x0,0x20,0x0,0x26,0x0,0x1d,0x0, +0x17,0x0,0x12,0x0,0x9,0x0,0x8,0x0,0x4,0x0,0xf5,0xff, +0xed,0xff,0xf7,0xff,0xff,0xff,0xfb,0xff,0xf8,0xff,0xfa,0xff, +0xf4,0xff,0xed,0xff,0xee,0xff,0xe1,0xff,0xd1,0xff,0xdf,0xff, +0xf2,0xff,0xf3,0xff,0xf9,0xff,0xfd,0xff,0xec,0xff,0xe7,0xff, +0xf0,0xff,0xf4,0xff,0x1,0x0,0x11,0x0,0xf,0x0,0x2,0x0, +0xfb,0xff,0x1,0x0,0x9,0x0,0xfe,0xff,0xf5,0xff,0xfe,0xff, +0xfc,0xff,0xed,0xff,0xf3,0xff,0xfa,0xff,0xef,0xff,0xe2,0xff, +0xde,0xff,0xe9,0xff,0xf4,0xff,0xe5,0xff,0xdb,0xff,0xe7,0xff, +0xe1,0xff,0xda,0xff,0xed,0xff,0xf6,0xff,0xf9,0xff,0xd,0x0, +0xa,0x0,0xf4,0xff,0xfe,0xff,0xe,0x0,0x8,0x0,0x6,0x0, +0x6,0x0,0xfc,0xff,0xf5,0xff,0xf1,0xff,0xed,0xff,0xf2,0xff, +0xf6,0xff,0xf7,0xff,0xf3,0xff,0xec,0xff,0xf1,0xff,0xf4,0xff, +0xe5,0xff,0xdb,0xff,0xd9,0xff,0xcf,0xff,0xd6,0xff,0xed,0xff, +0xf3,0xff,0xf3,0xff,0xf8,0xff,0xf3,0xff,0xf2,0xff,0xfc,0xff, +0xfb,0xff,0xf8,0xff,0xfc,0xff,0x0,0x0,0x2,0x0,0x0,0x0, +0xfb,0xff,0xfe,0xff,0x4,0x0,0x5,0x0,0xa,0x0,0x10,0x0, +0xf,0x0,0xe,0x0,0x8,0x0,0x4,0x0,0x5,0x0,0x3,0x0, +0x6,0x0,0x13,0x0,0xe,0x0,0xfe,0xff,0xfc,0xff,0xf8,0xff, +0xf2,0xff,0xf6,0xff,0xf4,0xff,0xf1,0xff,0xfa,0xff,0xf4,0xff, +0xe1,0xff,0xe2,0xff,0xf0,0xff,0xf7,0xff,0xf3,0xff,0xe1,0xff, +0xe0,0xff,0xf8,0xff,0xf9,0xff,0xe6,0xff,0xf2,0xff,0xb,0x0, +0x10,0x0,0x14,0x0,0x17,0x0,0xb,0x0,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xf6,0xff,0xef,0xff,0xf1,0xff,0xf9,0xff,0x1,0x0, +0x1,0x0,0xf5,0xff,0xef,0xff,0xf8,0xff,0xf9,0xff,0xee,0xff, +0xe9,0xff,0xe5,0xff,0xe2,0xff,0xe3,0xff,0xdd,0xff,0xd8,0xff, +0xe6,0xff,0xf7,0xff,0xfd,0xff,0x2,0x0,0x6,0x0,0xf,0x0, +0x20,0x0,0x21,0x0,0x16,0x0,0x1d,0x0,0x2b,0x0,0x2e,0x0, +0x28,0x0,0x1e,0x0,0x15,0x0,0x10,0x0,0x3,0x0,0xf3,0xff, +0xef,0xff,0xf3,0xff,0xf8,0xff,0xf8,0xff,0xf4,0xff,0xf3,0xff, +0xeb,0xff,0xe1,0xff,0xe7,0xff,0xed,0xff,0xe7,0xff,0xe7,0xff, +0xe9,0xff,0xe7,0xff,0xf0,0xff,0xf7,0xff,0xed,0xff,0xef,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0x9,0x0,0xc,0x0,0x12,0x0, +0x1e,0x0,0x1a,0x0,0x12,0x0,0x1b,0x0,0x1e,0x0,0xe,0x0, +0x5,0x0,0x10,0x0,0x12,0x0,0x6,0x0,0x7,0x0,0xd,0x0, +0x9,0x0,0x8,0x0,0xf,0x0,0x13,0x0,0x16,0x0,0x12,0x0, +0x8,0x0,0xf,0x0,0xe,0x0,0xf9,0xff,0xfe,0xff,0xe,0x0, +0xf8,0xff,0xe2,0xff,0xeb,0xff,0xea,0xff,0xd7,0xff,0xcc,0xff, +0xcb,0xff,0xd4,0xff,0xde,0xff,0xdb,0xff,0xdd,0xff,0xe9,0xff, +0xeb,0xff,0xea,0xff,0xf1,0xff,0xf5,0xff,0xfd,0xff,0x6,0x0, +0x9,0x0,0xe,0x0,0xb,0x0,0x3,0x0,0xe,0x0,0x1d,0x0, +0x1b,0x0,0x1c,0x0,0x1b,0x0,0x10,0x0,0xa,0x0,0x3,0x0, +0xf1,0xff,0xe2,0xff,0xd7,0xff,0xd3,0xff,0xe2,0xff,0xea,0xff, +0xdb,0xff,0xd3,0xff,0xd8,0xff,0xda,0xff,0xe1,0xff,0xee,0xff, +0xf8,0xff,0xff,0xff,0x7,0x0,0x15,0x0,0x1d,0x0,0x13,0x0, +0x10,0x0,0x1d,0x0,0x1b,0x0,0x1b,0x0,0x30,0x0,0x35,0x0, +0x27,0x0,0x2a,0x0,0x35,0x0,0x32,0x0,0x27,0x0,0x11,0x0, +0xf7,0xff,0xec,0xff,0xee,0xff,0xea,0xff,0xda,0xff,0xcb,0xff, +0xd4,0xff,0xe0,0xff,0xdc,0xff,0xda,0xff,0xd7,0xff,0xc6,0xff, +0xc0,0xff,0xce,0xff,0xd8,0xff,0xe2,0xff,0xec,0xff,0xed,0xff, +0xf5,0xff,0x5,0x0,0x4,0x0,0xfd,0xff,0xfb,0xff,0xf9,0xff, +0xfc,0xff,0x4,0x0,0xa,0x0,0xe,0x0,0x9,0x0,0x0,0x0, +0xfc,0xff,0xf3,0xff,0xee,0xff,0xf7,0xff,0xfd,0xff,0xfb,0xff, +0x3,0x0,0x6,0x0,0xfd,0xff,0xfc,0xff,0xff,0xff,0xff,0xff, +0x7,0x0,0x11,0x0,0x14,0x0,0xe,0x0,0x2,0x0,0xfe,0xff, +0x4,0x0,0x8,0x0,0x11,0x0,0x1d,0x0,0x1b,0x0,0x16,0x0, +0x17,0x0,0xf,0x0,0xa,0x0,0xc,0x0,0x4,0x0,0xfd,0xff, +0x0,0x0,0xfc,0xff,0xf7,0xff,0xf6,0xff,0xe7,0xff,0xda,0xff, +0xdc,0xff,0xde,0xff,0xe1,0xff,0xe5,0xff,0xd7,0xff,0xcd,0xff, +0xdb,0xff,0xe3,0xff,0xdf,0xff,0xe7,0xff,0xf3,0xff,0xfb,0xff, +0x3,0x0,0x9,0x0,0x17,0x0,0x23,0x0,0x16,0x0,0x5,0x0, +0x13,0x0,0x2a,0x0,0x2c,0x0,0x25,0x0,0x19,0x0,0x5,0x0, +0x2,0x0,0xf,0x0,0x2,0x0,0xe4,0xff,0xda,0xff,0xdf,0xff, +0xe2,0xff,0xe8,0xff,0xec,0xff,0xe6,0xff,0xe4,0xff,0xe8,0xff, +0xf1,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff,0xf4,0xff, +0xf6,0xff,0x8,0x0,0xa,0x0,0xff,0xff,0xa,0x0,0xf,0x0, +0xfb,0xff,0xf6,0xff,0x0,0x0,0x6,0x0,0x13,0x0,0x1c,0x0, +0xf,0x0,0x1,0x0,0xfb,0xff,0xf4,0xff,0xf3,0xff,0xf6,0xff, +0xf9,0xff,0xfd,0xff,0xf3,0xff,0xe8,0xff,0xf1,0xff,0xf3,0xff, +0xeb,0xff,0xf5,0xff,0xfe,0xff,0xf7,0xff,0xfd,0xff,0x6,0x0, +0x2,0x0,0x7,0x0,0x10,0x0,0x9,0x0,0x6,0x0,0xa,0x0, +0x8,0x0,0x6,0x0,0x8,0x0,0x3,0x0,0xfb,0xff,0xf5,0xff, +0xf8,0xff,0x5,0x0,0x6,0x0,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xef,0xff,0xee,0xff,0xf5,0xff,0xee,0xff,0xde,0xff,0xd7,0xff, +0xd8,0xff,0xda,0xff,0xd9,0xff,0xd5,0xff,0xd9,0xff,0xe4,0xff, +0xe8,0xff,0xe8,0xff,0xfa,0xff,0x18,0x0,0x28,0x0,0x34,0x0, +0x3e,0x0,0x32,0x0,0x29,0x0,0x3c,0x0,0x41,0x0,0x2a,0x0, +0x24,0x0,0x27,0x0,0x1a,0x0,0x14,0x0,0x15,0x0,0xe,0x0, +0xc,0x0,0xf,0x0,0x8,0x0,0x4,0x0,0xa,0x0,0x10,0x0, +0x12,0x0,0xd,0x0,0x9,0x0,0xd,0x0,0x8,0x0,0xf0,0xff, +0xe1,0xff,0xe1,0xff,0xe2,0xff,0xe6,0xff,0xf2,0xff,0xfa,0xff, +0xf7,0xff,0xf8,0xff,0x10,0x0,0x2a,0x0,0x2e,0x0,0x2e,0x0, +0x3f,0x0,0x4c,0x0,0x4d,0x0,0x46,0x0,0x33,0x0,0x22,0x0, +0x1c,0x0,0x17,0x0,0xd,0x0,0xf6,0xff,0xd3,0xff,0xc7,0xff, +0xda,0xff,0xe2,0xff,0xce,0xff,0xc2,0xff,0xc9,0xff,0xd9,0xff, +0xee,0xff,0xff,0xff,0x9,0x0,0xe,0x0,0xe,0x0,0x10,0x0, +0x10,0x0,0x2,0x0,0xfc,0xff,0x10,0x0,0x2a,0x0,0x36,0x0, +0x40,0x0,0x4a,0x0,0x47,0x0,0x3b,0x0,0x2e,0x0,0x29,0x0, +0x27,0x0,0x23,0x0,0x1c,0x0,0x15,0x0,0xa,0x0,0xfb,0xff, +0xeb,0xff,0xe3,0xff,0xe2,0xff,0xdf,0xff,0xdd,0xff,0xe3,0xff, +0xe7,0xff,0xec,0xff,0x2,0x0,0x14,0x0,0x11,0x0,0x12,0x0, +0x1f,0x0,0x1b,0x0,0x11,0x0,0x1a,0x0,0x22,0x0,0x16,0x0, +0x8,0x0,0xff,0xff,0xf1,0xff,0xe9,0xff,0xe9,0xff,0xe1,0xff, +0xde,0xff,0xe9,0xff,0xea,0xff,0xdf,0xff,0xdf,0xff,0xe1,0xff, +0xdb,0xff,0xe2,0xff,0xf5,0xff,0xfa,0xff,0xf3,0xff,0xed,0xff, +0xe9,0xff,0xe3,0xff,0xdd,0xff,0xdd,0xff,0xef,0xff,0xfd,0xff, +0xf3,0xff,0xed,0xff,0xf9,0xff,0x9,0x0,0x17,0x0,0x22,0x0, +0x21,0x0,0x25,0x0,0x34,0x0,0x2e,0x0,0x1b,0x0,0x15,0x0, +0xe,0x0,0x5,0x0,0x6,0x0,0x2,0x0,0xef,0xff,0xe7,0xff, +0xeb,0xff,0xe8,0xff,0xe1,0xff,0xdb,0xff,0xdc,0xff,0xdd,0xff, +0xd0,0xff,0xc4,0xff,0xce,0xff,0xd6,0xff,0xdb,0xff,0xf2,0xff, +0xfe,0xff,0xec,0xff,0xe1,0xff,0xe4,0xff,0xe2,0xff,0xe2,0xff, +0xea,0xff,0xf5,0xff,0xff,0xff,0xf9,0xff,0xee,0xff,0xf8,0xff, +0x7,0x0,0x9,0x0,0x15,0x0,0x21,0x0,0x1a,0x0,0x16,0x0, +0x18,0x0,0x11,0x0,0x11,0x0,0x1a,0x0,0x15,0x0,0xb,0x0, +0x0,0x0,0xea,0xff,0xdd,0xff,0xe7,0xff,0xf3,0xff,0xf8,0xff, +0xf8,0xff,0xf9,0xff,0x5,0x0,0x14,0x0,0x14,0x0,0x10,0x0, +0x20,0x0,0x35,0x0,0x31,0x0,0x1b,0x0,0xa,0x0,0xff,0xff, +0xf1,0xff,0xea,0xff,0xea,0xff,0xe5,0xff,0xdd,0xff,0xe2,0xff, +0xe7,0xff,0xe3,0xff,0xdf,0xff,0xe0,0xff,0xe2,0xff,0xe6,0xff, +0xec,0xff,0xe8,0xff,0xde,0xff,0xdd,0xff,0xe5,0xff,0xe9,0xff, +0xeb,0xff,0xf0,0xff,0xf6,0xff,0xff,0xff,0x6,0x0,0x5,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x8,0x0,0x17,0x0,0x18,0x0, +0x9,0x0,0x4,0x0,0xb,0x0,0xf,0x0,0x11,0x0,0x11,0x0, +0xf,0x0,0xc,0x0,0x3,0x0,0xfa,0xff,0xff,0xff,0x7,0x0, +0xb,0x0,0x12,0x0,0x12,0x0,0x9,0x0,0x11,0x0,0x28,0x0, +0x2f,0x0,0x2c,0x0,0x31,0x0,0x33,0x0,0x2d,0x0,0x29,0x0, +0x25,0x0,0x23,0x0,0x25,0x0,0x27,0x0,0x2b,0x0,0x34,0x0, +0x37,0x0,0x2f,0x0,0x2b,0x0,0x30,0x0,0x2b,0x0,0x17,0x0, +0x7,0x0,0x7,0x0,0x5,0x0,0xfa,0xff,0xf1,0xff,0xf0,0xff, +0xf1,0xff,0xf5,0xff,0xf4,0xff,0xeb,0xff,0xec,0xff,0xfd,0xff, +0xc,0x0,0xd,0x0,0x3,0x0,0xfd,0xff,0x5,0x0,0x9,0x0, +0x1,0x0,0xfb,0xff,0xfb,0xff,0xfc,0xff,0x4,0x0,0x7,0x0, +0xf6,0xff,0xf3,0xff,0xfb,0xff,0xea,0xff,0xdb,0xff,0xed,0xff, +0xf2,0xff,0xe0,0xff,0xe6,0xff,0xf5,0xff,0xf0,0xff,0xee,0xff, +0xf6,0xff,0xf9,0xff,0x0,0x0,0xc,0x0,0x10,0x0,0xf,0x0, +0xa,0x0,0xb,0x0,0x12,0x0,0x10,0x0,0xc,0x0,0x13,0x0, +0x14,0x0,0xa,0x0,0x8,0x0,0x7,0x0,0xa,0x0,0x18,0x0, +0x1e,0x0,0x24,0x0,0x38,0x0,0x3b,0x0,0x2e,0x0,0x2e,0x0, +0x2e,0x0,0x24,0x0,0x27,0x0,0x27,0x0,0x17,0x0,0xe,0x0, +0x1,0x0,0xe8,0xff,0xdf,0xff,0xe6,0xff,0xe8,0xff,0xe4,0xff, +0xdd,0xff,0xd9,0xff,0xe0,0xff,0xe4,0xff,0xef,0xff,0xd,0x0, +0x1c,0x0,0x16,0x0,0x26,0x0,0x3a,0x0,0x31,0x0,0x29,0x0, +0x29,0x0,0x1d,0x0,0xd,0x0,0x0,0x0,0xed,0xff,0xdc,0xff, +0xd6,0xff,0xd0,0xff,0xc8,0xff,0xc3,0xff,0xcf,0xff,0xe3,0xff, +0xe8,0xff,0xe6,0xff,0xef,0xff,0xf8,0xff,0xfe,0xff,0x9,0x0, +0xa,0x0,0x5,0x0,0x7,0x0,0x2,0x0,0xfb,0xff,0x0,0x0, +0xfe,0xff,0xf1,0xff,0xf3,0xff,0x2,0x0,0xc,0x0,0x14,0x0, +0x15,0x0,0xf,0x0,0x11,0x0,0x13,0x0,0x8,0x0,0x3,0x0, +0x8,0x0,0x5,0x0,0xf6,0xff,0xf1,0xff,0xfa,0xff,0xfb,0xff, +0xf0,0xff,0xf1,0xff,0xff,0xff,0x2,0x0,0x4,0x0,0x12,0x0, +0x1c,0x0,0x21,0x0,0x29,0x0,0x29,0x0,0x22,0x0,0x22,0x0, +0x20,0x0,0x1e,0x0,0x26,0x0,0x24,0x0,0x15,0x0,0x13,0x0, +0x18,0x0,0x15,0x0,0x15,0x0,0x1b,0x0,0x21,0x0,0x2b,0x0, +0x34,0x0,0x37,0x0,0x3a,0x0,0x3a,0x0,0x30,0x0,0x26,0x0, +0x25,0x0,0x22,0x0,0x19,0x0,0x11,0x0,0x8,0x0,0xff,0xff, +0x1,0x0,0x5,0x0,0xfd,0xff,0xf7,0xff,0x2,0x0,0x9,0x0, +0x1,0x0,0xfd,0xff,0x1,0x0,0x4,0x0,0xc,0x0,0x18,0x0, +0x20,0x0,0x25,0x0,0x26,0x0,0x1c,0x0,0x16,0x0,0x15,0x0, +0x12,0x0,0xb,0x0,0x0,0x0,0xf8,0xff,0xf8,0xff,0xf8,0xff, +0xf6,0xff,0xfb,0xff,0x2,0x0,0x2,0x0,0x0,0x0,0x5,0x0, +0x10,0x0,0x16,0x0,0xe,0x0,0xf,0x0,0x20,0x0,0x20,0x0, +0x14,0x0,0x19,0x0,0x1a,0x0,0xe,0x0,0x11,0x0,0x18,0x0, +0xc,0x0,0xff,0xff,0x2,0x0,0xd,0x0,0x10,0x0,0x8,0x0, +0x2,0x0,0x4,0x0,0xfe,0xff,0xf9,0xff,0x2,0x0,0x0,0x0, +0xf6,0xff,0xfa,0xff,0xfe,0xff,0xf8,0xff,0xf6,0xff,0xee,0xff, +0xe7,0xff,0xf0,0xff,0xfd,0xff,0x6,0x0,0xd,0x0,0xc,0x0, +0xe,0x0,0x16,0x0,0x14,0x0,0x13,0x0,0x1c,0x0,0x18,0x0, +0xe,0x0,0xe,0x0,0xb,0x0,0xb,0x0,0xe,0x0,0x7,0x0, +0x7,0x0,0xd,0x0,0x0,0x0,0xf7,0xff,0x2,0x0,0xfd,0xff, +0xf4,0xff,0xfd,0xff,0xfa,0xff,0xef,0xff,0xf1,0xff,0xf0,0xff, +0xed,0xff,0xeb,0xff,0xe5,0xff,0xed,0xff,0xfa,0xff,0xef,0xff, +0xed,0xff,0xfc,0xff,0xf8,0xff,0xf7,0xff,0x7,0x0,0x0,0x0, +0xf7,0xff,0x1,0x0,0xff,0xff,0xf7,0xff,0xf9,0xff,0xec,0xff, +0xe4,0xff,0xed,0xff,0xe0,0xff,0xcc,0xff,0xd2,0xff,0xd5,0xff, +0xd4,0xff,0xe1,0xff,0xe7,0xff,0xee,0xff,0x1,0x0,0x7,0x0, +0x7,0x0,0xe,0x0,0x12,0x0,0x18,0x0,0x1d,0x0,0x11,0x0, +0x9,0x0,0xd,0x0,0x6,0x0,0x0,0x0,0x1,0x0,0xf8,0xff, +0xf4,0xff,0xf9,0xff,0xf3,0xff,0xf1,0xff,0xf7,0xff,0xf0,0xff, +0xf1,0xff,0xfa,0xff,0xf0,0xff,0xeb,0xff,0xf4,0xff,0xee,0xff, +0xea,0xff,0xfa,0xff,0xfc,0xff,0xee,0xff,0xee,0xff,0xf3,0xff, +0xeb,0xff,0xe3,0xff,0xec,0xff,0xfe,0xff,0xfb,0xff,0xea,0xff, +0xec,0xff,0xf7,0xff,0xf7,0xff,0xf4,0xff,0xeb,0xff,0xe0,0xff, +0xe8,0xff,0xef,0xff,0xe3,0xff,0xe0,0xff,0xe1,0xff,0xe0,0xff, +0xf3,0xff,0x2,0x0,0xf7,0xff,0xf7,0xff,0x9,0x0,0xb,0x0, +0xa,0x0,0x10,0x0,0x11,0x0,0x17,0x0,0x22,0x0,0x1f,0x0, +0x1b,0x0,0x20,0x0,0x20,0x0,0x1b,0x0,0x12,0x0,0x9,0x0, +0xe,0x0,0x19,0x0,0x17,0x0,0x11,0x0,0xd,0x0,0x8,0x0, +0xb,0x0,0x12,0x0,0xe,0x0,0xff,0xff,0xf2,0xff,0xf2,0xff, +0xf9,0xff,0xf9,0xff,0xf5,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff, +0x1,0x0,0x1,0x0,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xf3,0xff, +0xf2,0xff,0xf6,0xff,0xf9,0xff,0x2,0x0,0x7,0x0,0x1,0x0, +0xfd,0xff,0xfe,0xff,0xf9,0xff,0xf5,0xff,0xfb,0xff,0xfc,0xff, +0xf2,0xff,0xf0,0xff,0xfc,0xff,0xfc,0xff,0xf1,0xff,0xef,0xff, +0xf1,0xff,0xf2,0xff,0x0,0x0,0xa,0x0,0xfe,0xff,0xfb,0xff, +0x3,0x0,0x0,0x0,0x3,0x0,0xe,0x0,0xa,0x0,0x6,0x0, +0xc,0x0,0x4,0x0,0xf8,0xff,0xfe,0xff,0x3,0x0,0x2,0x0, +0x6,0x0,0x4,0x0,0xf8,0xff,0xf5,0xff,0xf7,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xf8,0xff,0xf2,0xff,0xec,0xff,0xeb,0xff, +0xee,0xff,0xf0,0xff,0xf2,0xff,0xf6,0xff,0xf9,0xff,0xfb,0xff, +0xff,0xff,0x1,0x0,0x5,0x0,0x6,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0xfd,0xff,0xf6,0xff,0xf6,0xff,0xfc,0xff,0x1,0x0, +0x2,0x0,0x1,0x0,0x8,0x0,0x11,0x0,0x10,0x0,0xd,0x0, +0x13,0x0,0x12,0x0,0x3,0x0,0xff,0xff,0x8,0x0,0x7,0x0, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xf2,0xff,0xea,0xff,0xe3,0xff, +0xdf,0xff,0xec,0xff,0xfa,0xff,0xf5,0xff,0xf3,0xff,0x1,0x0, +0x3,0x0,0xfb,0xff,0xfe,0xff,0x3,0x0,0xff,0xff,0xfd,0xff, +0x0,0x0,0xfc,0xff,0xf6,0xff,0xf9,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfb,0xff,0xf8,0xff,0xfb,0xff,0x3,0x0,0x6,0x0, +0x7,0x0,0xd,0x0,0xf,0x0,0x7,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x6,0x0,0x9,0x0,0x3,0x0,0x6,0x0, +0x13,0x0,0xe,0x0,0xfe,0xff,0xfe,0xff,0x7,0x0,0x2,0x0, +0xfd,0xff,0x6,0x0,0xe,0x0,0xe,0x0,0xb,0x0,0x3,0x0, +0x1,0x0,0x7,0x0,0x9,0x0,0x4,0x0,0x3,0x0,0x1,0x0, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x7,0x0,0xd,0x0,0x8,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0xb,0x0,0x16,0x0,0xc,0x0, +0x1,0x0,0x9,0x0,0xc,0x0,0x5,0x0,0x8,0x0,0x7,0x0, +0xfc,0xff,0x0,0x0,0x6,0x0,0xfc,0xff,0xf4,0xff,0xf5,0xff, +0xf1,0xff,0xec,0xff,0xf0,0xff,0xf5,0xff,0xef,0xff,0xe7,0xff, +0xe8,0xff,0xec,0xff,0xe9,0xff,0xe9,0xff,0xf4,0xff,0xf9,0xff, +0xf7,0xff,0xf7,0xff,0xf0,0xff,0xe8,0xff,0xef,0xff,0xf8,0xff, +0xf8,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xfa,0xff,0xf8,0xff, +0xf2,0xff,0xf7,0xff,0xfc,0xff,0xf2,0xff,0xee,0xff,0xf3,0xff, +0xf1,0xff,0xee,0xff,0xf5,0xff,0xf6,0xff,0xed,0xff,0xee,0xff, +0xf2,0xff,0xee,0xff,0xf1,0xff,0xf9,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0xf9,0xff,0xf6,0xff,0xf4,0xff,0xea,0xff,0xe8,0xff, +0xf9,0xff,0x1,0x0,0xf8,0xff,0xf9,0xff,0x0,0x0,0xfa,0xff, +0xf4,0xff,0xfb,0xff,0xfd,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff, +0xec,0xff,0xeb,0xff,0xf9,0xff,0xfe,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0xfb,0xff,0x2,0x0,0x9,0x0,0x2,0x0,0x1,0x0, +0x9,0x0,0xb,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x4,0x0, +0xfc,0xff,0xf7,0xff,0xf7,0xff,0xf3,0xff,0xeb,0xff,0xea,0xff, +0xef,0xff,0xf3,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0x1,0x0, +0x8,0x0,0x5,0x0,0x2,0x0,0xfe,0xff,0xf6,0xff,0xef,0xff, +0xef,0xff,0xf5,0xff,0xf6,0xff,0xef,0xff,0xf4,0xff,0x3,0x0, +0x0,0x0,0xf9,0xff,0xff,0xff,0xfb,0xff,0xf2,0xff,0xfd,0xff, +0x2,0x0,0xf4,0xff,0xf5,0xff,0xfa,0xff,0xf4,0xff,0xfc,0xff, +0x7,0x0,0x1,0x0,0x2,0x0,0x10,0x0,0x14,0x0,0x12,0x0, +0xe,0x0,0xa,0x0,0xd,0x0,0xd,0x0,0x2,0x0,0xff,0xff, +0x6,0x0,0xfe,0xff,0xef,0xff,0xeb,0xff,0xf1,0xff,0xf9,0xff, +0xf7,0xff,0xf0,0xff,0xf1,0xff,0xf6,0xff,0xfa,0xff,0x2,0x0, +0x4,0x0,0x0,0x0,0x0,0x0,0xfc,0xff,0xf5,0xff,0xf8,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0xfe,0xff,0xfa,0xff,0x6,0x0, +0xc,0x0,0x2,0x0,0x5,0x0,0xd,0x0,0x6,0x0,0x1,0x0, +0x7,0x0,0x8,0x0,0xa,0x0,0xf,0x0,0xb,0x0,0xa,0x0, +0x14,0x0,0x19,0x0,0x13,0x0,0x14,0x0,0x1c,0x0,0x1c,0x0, +0x15,0x0,0x17,0x0,0x1f,0x0,0x18,0x0,0x12,0x0,0x1f,0x0, +0x1f,0x0,0x9,0x0,0x1,0x0,0x7,0x0,0x2,0x0,0xfc,0xff, +0xfa,0xff,0xf4,0xff,0xf1,0xff,0xec,0xff,0xe3,0xff,0xea,0xff, +0xf7,0xff,0xf6,0xff,0xf5,0xff,0xfd,0xff,0x2,0x0,0x5,0x0, +0x7,0x0,0x2,0x0,0xff,0xff,0xff,0xff,0xf5,0xff,0xef,0xff, +0xf0,0xff,0xea,0xff,0xe6,0xff,0xf0,0xff,0xf4,0xff,0xee,0xff, +0xeb,0xff,0xf1,0xff,0xfa,0xff,0xfc,0xff,0xf5,0xff,0xf6,0xff, +0xff,0xff,0xfc,0xff,0xfa,0xff,0x3,0x0,0x1,0x0,0xfa,0xff, +0x0,0x0,0x0,0x0,0xfb,0xff,0xfb,0xff,0xf6,0xff,0xf3,0xff, +0xfd,0xff,0xff,0xff,0xfd,0xff,0xc,0x0,0x14,0x0,0xd,0x0, +0xf,0x0,0x13,0x0,0xc,0x0,0x9,0x0,0x9,0x0,0x8,0x0, +0x9,0x0,0x4,0x0,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf4,0xff, +0xf4,0xff,0xf2,0xff,0xf3,0xff,0xf6,0xff,0xec,0xff,0xe7,0xff, +0xf7,0xff,0xf8,0xff,0xe9,0xff,0xed,0xff,0xf5,0xff,0xef,0xff, +0xf1,0xff,0xf7,0xff,0xf0,0xff,0xec,0xff,0xf3,0xff,0xfd,0xff, +0x3,0x0,0x5,0x0,0xb,0x0,0x10,0x0,0x5,0x0,0xfc,0xff, +0x2,0x0,0xfe,0xff,0xf6,0xff,0xfc,0xff,0xfb,0xff,0xef,0xff, +0xf3,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x4,0x0, +0xd,0x0,0xd,0x0,0xb,0x0,0xb,0x0,0x8,0x0,0x10,0x0, +0x18,0x0,0xd,0x0,0xe,0x0,0x24,0x0,0x26,0x0,0x1c,0x0, +0x1e,0x0,0x14,0x0,0xa,0x0,0x11,0x0,0xd,0x0,0x2,0x0, +0x7,0x0,0x8,0x0,0x0,0x0,0x2,0x0,0xfb,0xff,0xf1,0xff, +0xfd,0xff,0x5,0x0,0xfd,0xff,0x2,0x0,0xc,0x0,0xf,0x0, +0x12,0x0,0xd,0x0,0x8,0x0,0x10,0x0,0x15,0x0,0x14,0x0, +0x17,0x0,0x12,0x0,0xd,0x0,0x14,0x0,0x13,0x0,0xd,0x0, +0x12,0x0,0x16,0x0,0x14,0x0,0x1a,0x0,0x21,0x0,0x1d,0x0, +0x16,0x0,0x10,0x0,0xe,0x0,0xd,0x0,0x8,0x0,0xc,0x0, +0x10,0x0,0x7,0x0,0x6,0x0,0xf,0x0,0xb,0x0,0x8,0x0, +0xf,0x0,0xb,0x0,0x8,0x0,0x11,0x0,0xf,0x0,0xa,0x0, +0x13,0x0,0x15,0x0,0xe,0x0,0xb,0x0,0xa,0x0,0xd,0x0, +0x13,0x0,0xa,0x0,0xfe,0xff,0x0,0x0,0x4,0x0,0x5,0x0, +0x9,0x0,0x8,0x0,0x6,0x0,0x8,0x0,0x7,0x0,0xff,0xff, +0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf3,0xff,0xf6,0xff,0x0,0x0, +0x0,0x0,0xfa,0xff,0x6,0x0,0x11,0x0,0xb,0x0,0x8,0x0, +0xe,0x0,0xf,0x0,0xf,0x0,0xc,0x0,0x1,0x0,0xfe,0xff, +0x7,0x0,0x9,0x0,0x4,0x0,0x1,0x0,0x3,0x0,0xc,0x0, +0x14,0x0,0x15,0x0,0x15,0x0,0x16,0x0,0x10,0x0,0x6,0x0, +0x6,0x0,0xf,0x0,0xc,0x0,0x1,0x0,0x7,0x0,0x12,0x0, +0xd,0x0,0xd,0x0,0x15,0x0,0x12,0x0,0xc,0x0,0xe,0x0, +0xb,0x0,0xa,0x0,0xe,0x0,0x7,0x0,0xfb,0xff,0xf5,0xff, +0xf2,0xff,0xf8,0xff,0xfe,0xff,0xed,0xff,0xe2,0xff,0xed,0xff, +0xed,0xff,0xea,0xff,0xf8,0xff,0x2,0x0,0x1,0x0,0x3,0x0, +0x1,0x0,0xff,0xff,0x5,0x0,0x0,0x0,0xfa,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x7,0x0,0x7,0x0,0x9,0x0,0x11,0x0, +0xa,0x0,0x7,0x0,0x13,0x0,0x12,0x0,0x9,0x0,0xa,0x0, +0x9,0x0,0xd,0x0,0x15,0x0,0xa,0x0,0x3,0x0,0xc,0x0, +0x6,0x0,0xf9,0xff,0x0,0x0,0x2,0x0,0xfe,0xff,0x9,0x0, +0x8,0x0,0xfe,0xff,0x3,0x0,0x0,0x0,0xf4,0xff,0xfd,0xff, +0x3,0x0,0xf7,0xff,0xff,0xff,0xc,0x0,0xfe,0xff,0xf6,0xff, +0x6,0x0,0xd,0x0,0xb,0x0,0xb,0x0,0x5,0x0,0xff,0xff, +0x1,0x0,0x2,0x0,0xfe,0xff,0x3,0x0,0x6,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0xfc,0xff,0xfe,0xff,0x7,0x0,0x5,0x0, +0xf8,0xff,0xf6,0xff,0xfb,0xff,0xfc,0xff,0x1,0x0,0x9,0x0, +0x6,0x0,0x1,0x0,0x1,0x0,0xfd,0xff,0xfa,0xff,0x4,0x0, +0xb,0x0,0x7,0x0,0x6,0x0,0xb,0x0,0x7,0x0,0x0,0x0, +0x3,0x0,0x5,0x0,0x3,0x0,0x4,0x0,0x2,0x0,0xfa,0xff, +0xf8,0xff,0xfe,0xff,0xfd,0xff,0xf8,0xff,0xf5,0xff,0xf3,0xff, +0xf6,0xff,0xfc,0xff,0xf9,0xff,0xf1,0xff,0xf7,0xff,0x3,0x0, +0x2,0x0,0xff,0xff,0xb,0x0,0x10,0x0,0x4,0x0,0x0,0x0, +0x7,0x0,0xff,0xff,0xf8,0xff,0x5,0x0,0xb,0x0,0x1,0x0, +0x3,0x0,0x6,0x0,0xff,0xff,0x2,0x0,0xc,0x0,0x6,0x0, +0xff,0xff,0x7,0x0,0xe,0x0,0xa,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x6,0x0,0xd,0x0,0x10,0x0,0x6,0x0,0x0,0x0, +0x4,0x0,0x6,0x0,0x6,0x0,0x11,0x0,0x14,0x0,0xa,0x0, +0x3,0x0,0xfb,0xff,0xef,0xff,0xed,0xff,0xef,0xff,0xef,0xff, +0xfa,0xff,0x0,0x0,0xf4,0xff,0xef,0xff,0xf4,0xff,0xf0,0xff, +0xeb,0xff,0xee,0xff,0xef,0xff,0xec,0xff,0xec,0xff,0xf4,0xff, +0xff,0xff,0xfa,0xff,0xec,0xff,0xe9,0xff,0xe8,0xff,0xe6,0xff, +0xee,0xff,0xf4,0xff,0xef,0xff,0xf3,0xff,0xfb,0xff,0xf7,0xff, +0xf8,0xff,0xfe,0xff,0xf8,0xff,0xf4,0xff,0xf4,0xff,0xec,0xff, +0xeb,0xff,0xf6,0xff,0xf9,0xff,0xef,0xff,0xe9,0xff,0xec,0xff, +0xf2,0xff,0xf0,0xff,0xe8,0xff,0xf0,0xff,0x0,0x0,0xfe,0xff, +0xf8,0xff,0xff,0xff,0x5,0x0,0x1,0x0,0x5,0x0,0x8,0x0, +0xff,0xff,0xf7,0xff,0xfa,0xff,0xfc,0xff,0xfa,0xff,0xfd,0xff, +0xfc,0xff,0xf5,0xff,0xf5,0xff,0xf8,0xff,0xf1,0xff,0xf2,0xff, +0xfa,0xff,0xf4,0xff,0xe8,0xff,0xea,0xff,0xe7,0xff,0xe4,0xff, +0xf2,0xff,0xf6,0xff,0xe7,0xff,0xea,0xff,0xf9,0xff,0xf4,0xff, +0xec,0xff,0xef,0xff,0xf0,0xff,0xf2,0xff,0xfb,0xff,0xf7,0xff, +0xee,0xff,0xf4,0xff,0xfe,0xff,0xf9,0xff,0xf0,0xff,0xf3,0xff, +0xfc,0xff,0xfa,0xff,0xf0,0xff,0xee,0xff,0xf6,0xff,0xf9,0xff, +0xf6,0xff,0xf6,0xff,0xfa,0xff,0xfd,0xff,0xf9,0xff,0xf5,0xff, +0xfa,0xff,0xfa,0xff,0xee,0xff,0xef,0xff,0xfe,0xff,0xfd,0xff, +0xf4,0xff,0xfa,0xff,0xfa,0xff,0xee,0xff,0xf0,0xff,0xf5,0xff, +0xf3,0xff,0xf7,0xff,0xfa,0xff,0xed,0xff,0xe7,0xff,0xf2,0xff, +0xfd,0xff,0x2,0x0,0x0,0x0,0xf5,0xff,0xef,0xff,0xef,0xff, +0xee,0xff,0xf2,0xff,0xf1,0xff,0xe9,0xff,0xf2,0xff,0xfe,0xff, +0xf3,0xff,0xec,0xff,0xf4,0xff,0xef,0xff,0xea,0xff,0xfb,0xff, +0x0,0x0,0xf8,0xff,0xfd,0xff,0x1,0x0,0xf9,0xff,0xfc,0xff, +0x2,0x0,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xf7,0xff,0xf8,0xff, +0x0,0x0,0xfd,0xff,0xf6,0xff,0xf8,0xff,0x2,0x0,0x5,0x0, +0xfe,0xff,0xf9,0xff,0xfe,0xff,0x0,0x0,0xfd,0xff,0xfa,0xff, +0xf2,0xff,0xef,0xff,0xf5,0xff,0xf0,0xff,0xe7,0xff,0xee,0xff, +0xf0,0xff,0xea,0xff,0xf4,0xff,0xf9,0xff,0xec,0xff,0xeb,0xff, +0xf3,0xff,0xec,0xff,0xec,0xff,0xf5,0xff,0xf2,0xff,0xee,0xff, +0xef,0xff,0xec,0xff,0xf1,0xff,0xf4,0xff,0xe7,0xff,0xe7,0xff, +0xf7,0xff,0xf3,0xff,0xe8,0xff,0xef,0xff,0xf6,0xff,0xf7,0xff, +0xfb,0xff,0xf6,0xff,0xf2,0xff,0xf8,0xff,0xf3,0xff,0xef,0xff, +0xfb,0xff,0xfd,0xff,0xf4,0xff,0xfa,0xff,0xfa,0xff,0xea,0xff, +0xeb,0xff,0xf7,0xff,0xf1,0xff,0xe9,0xff,0xf0,0xff,0xf1,0xff, +0xe7,0xff,0xe8,0xff,0xf4,0xff,0xf5,0xff,0xe8,0xff,0xe6,0xff, +0xef,0xff,0xf1,0xff,0xee,0xff,0xef,0xff,0xeb,0xff,0xe8,0xff, +0xf0,0xff,0xf6,0xff,0xf5,0xff,0xf9,0xff,0xff,0xff,0xfc,0xff, +0xf9,0xff,0xff,0xff,0x3,0x0,0xf8,0xff,0xe9,0xff,0xeb,0xff, +0xf4,0xff,0xf5,0xff,0xf9,0xff,0x1,0x0,0xfe,0xff,0xf6,0xff, +0xf5,0xff,0xf4,0xff,0xf7,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0x4,0x0,0x5,0x0,0x3,0x0,0xa,0x0,0xb,0x0,0x5,0x0, +0x8,0x0,0x6,0x0,0xfb,0xff,0xfc,0xff,0x7,0x0,0x3,0x0, +0xfb,0xff,0xfd,0xff,0x3,0x0,0x3,0x0,0xfc,0xff,0xf6,0xff, +0xf2,0xff,0xf1,0xff,0xf7,0xff,0xf9,0xff,0xf4,0xff,0xf5,0xff, +0xf7,0xff,0xee,0xff,0xe7,0xff,0xea,0xff,0xe7,0xff,0xe8,0xff, +0xf7,0xff,0xfd,0xff,0xf5,0xff,0xf8,0xff,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0xfe,0xff,0x0,0x0,0x7,0x0,0x7,0x0, +0x1,0x0,0x0,0x0,0x4,0x0,0xff,0xff,0xf4,0xff,0xf8,0xff, +0x4,0x0,0xff,0xff,0xf1,0xff,0xea,0xff,0xe8,0xff,0xe9,0xff, +0xf5,0xff,0xfd,0xff,0xf7,0xff,0xee,0xff,0xee,0xff,0xf4,0xff, +0xf7,0xff,0xf4,0xff,0xf1,0xff,0xf1,0xff,0xef,0xff,0xee,0xff, +0xeb,0xff,0xe0,0xff,0xdc,0xff,0xe7,0xff,0xee,0xff,0xee,0xff, +0xf3,0xff,0xf6,0xff,0xee,0xff,0xe6,0xff,0xe7,0xff,0xf1,0xff, +0xfb,0xff,0xfa,0xff,0xf6,0xff,0xf9,0xff,0xf9,0xff,0xf5,0xff, +0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfc,0xff, +0xfb,0xff,0xf6,0xff,0xf8,0xff,0xfb,0xff,0xf7,0xff,0xf9,0xff, +0x1,0x0,0xfe,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff, +0xfb,0xff,0xf9,0xff,0xf8,0xff,0xfc,0xff,0xf9,0xff,0xf7,0xff, +0x2,0x0,0x4,0x0,0xfa,0xff,0xfa,0xff,0x1,0x0,0xfe,0xff, +0xf6,0xff,0xf0,0xff,0xf2,0xff,0xf3,0xff,0xf0,0xff,0xf6,0xff, +0x1,0x0,0xf7,0xff,0xe8,0xff,0xf1,0xff,0xfd,0xff,0xff,0xff, +0x3,0x0,0xff,0xff,0xf6,0xff,0xfb,0xff,0x0,0x0,0xf7,0xff, +0xfb,0xff,0x6,0x0,0x2,0x0,0xfd,0xff,0xff,0xff,0xfa,0xff, +0xf9,0xff,0x5,0x0,0xa,0x0,0x9,0x0,0xd,0x0,0xc,0x0, +0x6,0x0,0x4,0x0,0x2,0x0,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0xfb,0xff,0xf6,0xff,0xfc,0xff,0x2,0x0, +0xfe,0xff,0x0,0x0,0xc,0x0,0xc,0x0,0x9,0x0,0xe,0x0, +0xb,0x0,0xff,0xff,0x5,0x0,0xe,0x0,0x5,0x0,0x0,0x0, +0xa,0x0,0xb,0x0,0x2,0x0,0x1,0x0,0x7,0x0,0x7,0x0, +0x0,0x0,0xf7,0xff,0xf4,0xff,0xf2,0xff,0xee,0xff,0xf2,0xff, +0xfa,0xff,0xf6,0xff,0xef,0xff,0xf2,0xff,0xf5,0xff,0xf1,0xff, +0xef,0xff,0xf1,0xff,0xf0,0xff,0xf0,0xff,0xf7,0xff,0xfd,0xff, +0xf4,0xff,0xed,0xff,0xf8,0xff,0xfd,0xff,0xef,0xff,0xee,0xff, +0xfc,0xff,0xf8,0xff,0xeb,0xff,0xea,0xff,0xe8,0xff,0xe6,0xff, +0xf2,0xff,0xfb,0xff,0xf5,0xff,0xef,0xff,0xf3,0xff,0xf7,0xff, +0xf5,0xff,0xf2,0xff,0xf8,0xff,0xfe,0xff,0xf7,0xff,0xf3,0xff, +0xf8,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff,0xf5,0xff,0xf2,0xff, +0xff,0xff,0x2,0x0,0xf5,0xff,0xf2,0xff,0xf5,0xff,0xf6,0xff, +0xfe,0xff,0xff,0xff,0xf8,0xff,0xfa,0xff,0xfe,0xff,0xf9,0xff, +0xf7,0xff,0xf5,0xff,0xf0,0xff,0xf4,0xff,0xfb,0xff,0xf2,0xff, +0xf1,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff,0x1,0x0,0xfb,0xff, +0xee,0xff,0xec,0xff,0xec,0xff,0xef,0xff,0xfc,0xff,0x2,0x0, +0xfe,0xff,0x4,0x0,0xc,0x0,0x7,0x0,0x0,0x0,0xfb,0xff, +0xf3,0xff,0xf4,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0x4,0x0, +0xb,0x0,0x5,0x0,0xfd,0xff,0xfb,0xff,0xff,0xff,0x3,0x0, +0x2,0x0,0x0,0x0,0x7,0x0,0xf,0x0,0x8,0x0,0x0,0x0, +0x7,0x0,0x10,0x0,0xa,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0xfb,0xff,0xfa,0xff,0x0,0x0,0xff,0xff,0xfc,0xff,0x3,0x0, +0x5,0x0,0xfd,0xff,0xfb,0xff,0x1,0x0,0x4,0x0,0x5,0x0, +0x0,0x0,0xfc,0xff,0x5,0x0,0x9,0x0,0xfc,0xff,0xfb,0xff, +0x8,0x0,0x6,0x0,0xfa,0xff,0xf7,0xff,0xf9,0xff,0xfd,0xff, +0x6,0x0,0xb,0x0,0x9,0x0,0x5,0x0,0x9,0x0,0x17,0x0, +0x1a,0x0,0xc,0x0,0xb,0x0,0x13,0x0,0xc,0x0,0x5,0x0, +0xa,0x0,0xd,0x0,0xf,0x0,0x12,0x0,0xb,0x0,0x8,0x0, +0x16,0x0,0x1b,0x0,0xe,0x0,0x3,0x0,0x7,0x0,0xb,0x0, +0x5,0x0,0xfe,0xff,0x3,0x0,0x5,0x0,0xfe,0xff,0x0,0x0, +0x3,0x0,0xf7,0xff,0xf3,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff, +0xfd,0xff,0xfe,0xff,0x4,0x0,0x8,0x0,0x0,0x0,0x3,0x0, +0xf,0x0,0x3,0x0,0xf8,0xff,0x8,0x0,0x10,0x0,0xc,0x0, +0x11,0x0,0x12,0x0,0xe,0x0,0x1a,0x0,0x26,0x0,0x22,0x0, +0x1c,0x0,0x18,0x0,0x17,0x0,0x1d,0x0,0x26,0x0,0x29,0x0, +0x25,0x0,0x1c,0x0,0x1a,0x0,0x1d,0x0,0x19,0x0,0x16,0x0, +0x17,0x0,0x11,0x0,0xf,0x0,0x19,0x0,0x1c,0x0,0x14,0x0, +0x15,0x0,0x18,0x0,0x13,0x0,0xc,0x0,0xc,0x0,0x16,0x0, +0x1d,0x0,0x14,0x0,0xb,0x0,0xc,0x0,0x8,0x0,0xa,0x0, +0x19,0x0,0x16,0x0,0x7,0x0,0xa,0x0,0x12,0x0,0x12,0x0, +0x1b,0x0,0x21,0x0,0x1d,0x0,0x1e,0x0,0x1a,0x0,0xc,0x0, +0xf,0x0,0x14,0x0,0x8,0x0,0x4,0x0,0xc,0x0,0x6,0x0, +0x8,0x0,0x15,0x0,0x14,0x0,0x14,0x0,0x1e,0x0,0x19,0x0, +0xe,0x0,0x10,0x0,0x16,0x0,0x1f,0x0,0x26,0x0,0x1d,0x0, +0x15,0x0,0x1a,0x0,0x17,0x0,0xd,0x0,0xf,0x0,0x14,0x0, +0x10,0x0,0xe,0x0,0xc,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfa,0xff,0xf8,0xff,0xff,0xff,0x5,0x0,0x2,0x0, +0x3,0x0,0xa,0x0,0x5,0x0,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xf2,0xff,0xf6,0xff,0x0,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff, +0xf1,0xff,0xf3,0xff,0x6,0x0,0xb,0x0,0x3,0x0,0x8,0x0, +0xe,0x0,0x8,0x0,0x7,0x0,0xa,0x0,0x3,0x0,0x0,0x0, +0x7,0x0,0x1,0x0,0xf8,0xff,0x0,0x0,0x7,0x0,0xfc,0xff, +0xf7,0xff,0x1,0x0,0x3,0x0,0xfd,0xff,0xfd,0xff,0xfb,0xff, +0xf5,0xff,0xfd,0xff,0x8,0x0,0x4,0x0,0x1,0x0,0xc,0x0, +0xf,0x0,0x7,0x0,0x8,0x0,0x9,0x0,0x7,0x0,0xd,0x0, +0xf,0x0,0x6,0x0,0x3,0x0,0xc,0x0,0xe,0x0,0x10,0x0, +0x1a,0x0,0x1d,0x0,0x16,0x0,0x15,0x0,0x15,0x0,0x12,0x0, +0x18,0x0,0x22,0x0,0x19,0x0,0xe,0x0,0x16,0x0,0x1c,0x0, +0x19,0x0,0x1b,0x0,0x19,0x0,0x14,0x0,0x1a,0x0,0x1d,0x0, +0x13,0x0,0x12,0x0,0x1c,0x0,0x1c,0x0,0x1b,0x0,0x21,0x0, +0x22,0x0,0x1d,0x0,0x1a,0x0,0x13,0x0,0xe,0x0,0xc,0x0, +0x6,0x0,0x5,0x0,0xd,0x0,0x11,0x0,0x12,0x0,0x18,0x0, +0x12,0x0,0x3,0x0,0x4,0x0,0xa,0x0,0x3,0x0,0xfe,0xff, +0x5,0x0,0x7,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x8,0x0, +0xc,0x0,0x13,0x0,0x14,0x0,0xe,0x0,0xa,0x0,0xd,0x0, +0xe,0x0,0xd,0x0,0xf,0x0,0xd,0x0,0xa,0x0,0x10,0x0, +0x10,0x0,0xb,0x0,0x15,0x0,0x1b,0x0,0xb,0x0,0x9,0x0, +0x16,0x0,0x16,0x0,0x13,0x0,0x18,0x0,0x15,0x0,0x18,0x0, +0x1f,0x0,0x17,0x0,0x16,0x0,0x20,0x0,0x15,0x0,0xa,0x0, +0x15,0x0,0x13,0x0,0x8,0x0,0xf,0x0,0x13,0x0,0x10,0x0, +0x11,0x0,0xf,0x0,0x11,0x0,0x17,0x0,0x11,0x0,0xa,0x0, +0xf,0x0,0xb,0x0,0xa,0x0,0x12,0x0,0xa,0x0,0xff,0xff, +0xb,0x0,0x14,0x0,0xd,0x0,0x7,0x0,0xa,0x0,0x12,0x0, +0x12,0x0,0x7,0x0,0xb,0x0,0x18,0x0,0x11,0x0,0x7,0x0, +0x9,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0xff,0xff,0x7,0x0, +0x13,0x0,0xe,0x0,0x11,0x0,0x1b,0x0,0xf,0x0,0xa,0x0, +0x1a,0x0,0x17,0x0,0xc,0x0,0x10,0x0,0x9,0x0,0xfd,0xff, +0x7,0x0,0x10,0x0,0x7,0x0,0x5,0x0,0x8,0x0,0x3,0x0, +0xfe,0xff,0x2,0x0,0x7,0x0,0x9,0x0,0x9,0x0,0x7,0x0, +0x5,0x0,0x6,0x0,0x8,0x0,0x2,0x0,0xf9,0xff,0xf9,0xff, +0xfe,0xff,0x2,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0xa,0x0, +0x9,0x0,0xfe,0xff,0xfc,0xff,0x4,0x0,0x0,0x0,0xf7,0xff, +0xfd,0xff,0x7,0x0,0x4,0x0,0xfd,0xff,0x1,0x0,0x5,0x0, +0x2,0x0,0x1,0x0,0x5,0x0,0xa,0x0,0xb,0x0,0xa,0x0, +0x9,0x0,0xa,0x0,0xd,0x0,0x10,0x0,0xc,0x0,0x3,0x0, +0x3,0x0,0xc,0x0,0x11,0x0,0x11,0x0,0x10,0x0,0x8,0x0, +0x0,0x0,0x4,0x0,0x7,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0xff,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff,0x3,0x0,0xfe,0xff, +0xf4,0xff,0xf7,0xff,0xfb,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff, +0xef,0xff,0xef,0xff,0xee,0xff,0xea,0xff,0xef,0xff,0xf3,0xff, +0xf0,0xff,0xf2,0xff,0xf5,0xff,0xf2,0xff,0xf5,0xff,0xf9,0xff, +0xf5,0xff,0xf6,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0xfa,0xff,0xf9,0xff,0xff,0xff,0x2,0x0,0xfb,0xff,0xf8,0xff, +0xff,0xff,0x7,0x0,0x6,0x0,0xfe,0xff,0xfb,0xff,0xfe,0xff, +0xfc,0xff,0xf5,0xff,0xf7,0xff,0x0,0x0,0xfb,0xff,0xf3,0xff, +0xf2,0xff,0xf1,0xff,0xee,0xff,0xea,0xff,0xe3,0xff,0xe8,0xff, +0xf8,0xff,0xfc,0xff,0xf9,0xff,0xfd,0xff,0xfc,0xff,0xf3,0xff, +0xf0,0xff,0xef,0xff,0xef,0xff,0xf2,0xff,0xf3,0xff,0xf0,0xff, +0xed,0xff,0xe7,0xff,0xe8,0xff,0xf2,0xff,0xf6,0xff,0xf0,0xff, +0xec,0xff,0xec,0xff,0xef,0xff,0xf2,0xff,0xf0,0xff,0xef,0xff, +0xf1,0xff,0xf5,0xff,0xfe,0xff,0xfd,0xff,0xef,0xff,0xed,0xff, +0xf9,0xff,0xfa,0xff,0xf2,0xff,0xef,0xff,0xe9,0xff,0xea,0xff, +0xf2,0xff,0xf3,0xff,0xf8,0xff,0x1,0x0,0xf8,0xff,0xf0,0xff, +0xf4,0xff,0xf2,0xff,0xef,0xff,0xf8,0xff,0xfa,0xff,0xf2,0xff, +0xf3,0xff,0xf4,0xff,0xed,0xff,0xed,0xff,0xf0,0xff,0xee,0xff, +0xed,0xff,0xee,0xff,0xed,0xff,0xe9,0xff,0xe4,0xff,0xe6,0xff, +0xed,0xff,0xea,0xff,0xe3,0xff,0xe8,0xff,0xec,0xff,0xea,0xff, +0xed,0xff,0xf0,0xff,0xec,0xff,0xec,0xff,0xee,0xff,0xe5,0xff, +0xe2,0xff,0xec,0xff,0xee,0xff,0xe5,0xff,0xe5,0xff,0xee,0xff, +0xed,0xff,0xea,0xff,0xf1,0xff,0xf4,0xff,0xeb,0xff,0xe8,0xff, +0xef,0xff,0xee,0xff,0xea,0xff,0xef,0xff,0xf2,0xff,0xf2,0xff, +0xf3,0xff,0xef,0xff,0xee,0xff,0xf0,0xff,0xea,0xff,0xe7,0xff, +0xf5,0xff,0xf6,0xff,0xea,0xff,0xec,0xff,0xf2,0xff,0xee,0xff, +0xef,0xff,0xef,0xff,0xea,0xff,0xe9,0xff,0xe4,0xff,0xdb,0xff, +0xde,0xff,0xe4,0xff,0xe2,0xff,0xe7,0xff,0xea,0xff,0xe6,0xff, +0xeb,0xff,0xec,0xff,0xe7,0xff,0xec,0xff,0xed,0xff,0xe6,0xff, +0xed,0xff,0xf5,0xff,0xeb,0xff,0xe6,0xff,0xec,0xff,0xee,0xff, +0xee,0xff,0xee,0xff,0xee,0xff,0xee,0xff,0xed,0xff,0xed,0xff, +0xef,0xff,0xef,0xff,0xf4,0xff,0xfc,0xff,0xf6,0xff,0xee,0xff, +0xf7,0xff,0x0,0x0,0xf9,0xff,0xef,0xff,0xeb,0xff,0xee,0xff, +0xf1,0xff,0xf2,0xff,0xf5,0xff,0xf4,0xff,0xec,0xff,0xec,0xff, +0xec,0xff,0xe6,0xff,0xf0,0xff,0xfe,0xff,0xee,0xff,0xdc,0xff, +0xe4,0xff,0xea,0xff,0xe5,0xff,0xe4,0xff,0xe1,0xff,0xdd,0xff, +0xe2,0xff,0xe0,0xff,0xd9,0xff,0xde,0xff,0xe1,0xff,0xdb,0xff, +0xdd,0xff,0xe4,0xff,0xe1,0xff,0xde,0xff,0xe0,0xff,0xe2,0xff, +0xe3,0xff,0xe8,0xff,0xe6,0xff,0xdb,0xff,0xdd,0xff,0xe6,0xff, +0xe2,0xff,0xe1,0xff,0xe8,0xff,0xe4,0xff,0xe5,0xff,0xf3,0xff, +0xf1,0xff,0xe9,0xff,0xef,0xff,0xf0,0xff,0xe9,0xff,0xef,0xff, +0xf2,0xff,0xef,0xff,0xf8,0xff,0xfb,0xff,0xf1,0xff,0xf0,0xff, +0xf3,0xff,0xf3,0xff,0xfc,0xff,0xff,0xff,0xf4,0xff,0xf2,0xff, +0xf7,0xff,0xf2,0xff,0xef,0xff,0xf7,0xff,0xf8,0xff,0xee,0xff, +0xf1,0xff,0xfc,0xff,0xf8,0xff,0xed,0xff,0xeb,0xff,0xe7,0xff, +0xdf,0xff,0xdf,0xff,0xe2,0xff,0xe4,0xff,0xe9,0xff,0xe4,0xff, +0xdb,0xff,0xde,0xff,0xe2,0xff,0xe0,0xff,0xec,0xff,0xf8,0xff, +0xf2,0xff,0xea,0xff,0xeb,0xff,0xee,0xff,0xf3,0xff,0xf3,0xff, +0xeb,0xff,0xe7,0xff,0xe9,0xff,0xea,0xff,0xeb,0xff,0xed,0xff, +0xef,0xff,0xf3,0xff,0xf1,0xff,0xee,0xff,0xed,0xff,0xe9,0xff, +0xe9,0xff,0xef,0xff,0xef,0xff,0xec,0xff,0xef,0xff,0xf1,0xff, +0xf2,0xff,0xf4,0xff,0xef,0xff,0xe8,0xff,0xe5,0xff,0xe2,0xff, +0xe2,0xff,0xe4,0xff,0xe4,0xff,0xe7,0xff,0xe7,0xff,0xe3,0xff, +0xe7,0xff,0xe8,0xff,0xe1,0xff,0xe4,0xff,0xe7,0xff,0xe5,0xff, +0xeb,0xff,0xee,0xff,0xe8,0xff,0xf0,0xff,0xf6,0xff,0xed,0xff, +0xf2,0xff,0xfc,0xff,0xf6,0xff,0xfa,0xff,0x4,0x0,0xfe,0xff, +0xfe,0xff,0x7,0x0,0x0,0x0,0xff,0xff,0x2,0x0,0xf6,0xff, +0xf3,0xff,0xff,0xff,0xfb,0xff,0xf5,0xff,0xff,0xff,0x2,0x0, +0xfc,0xff,0xfd,0xff,0x0,0x0,0x0,0x0,0x4,0x0,0x5,0x0, +0xfd,0xff,0xf8,0xff,0x1,0x0,0x5,0x0,0xf6,0xff,0xf1,0xff, +0xfc,0xff,0xfc,0xff,0xf6,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0x7,0x0,0x1,0x0,0xf5,0xff,0xfc,0xff,0xfc,0xff,0xef,0xff, +0xf4,0xff,0xfb,0xff,0xf3,0xff,0xf7,0xff,0xfb,0xff,0xf0,0xff, +0xf0,0xff,0xf7,0xff,0xf0,0xff,0xee,0xff,0xf3,0xff,0xee,0xff, +0xed,0xff,0xf3,0xff,0xee,0xff,0xed,0xff,0xfa,0xff,0xfa,0xff, +0xf0,0xff,0xf7,0xff,0x1,0x0,0xfa,0xff,0xf3,0xff,0xf6,0xff, +0xfa,0xff,0xff,0xff,0xfe,0xff,0xf9,0xff,0xfb,0xff,0x2,0x0, +0xff,0xff,0xfc,0xff,0x6,0x0,0x8,0x0,0xfe,0xff,0xfa,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0x5,0x0,0xb,0x0,0x6,0x0, +0x2,0x0,0x6,0x0,0x5,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x5,0x0,0x8,0x0, +0x2,0x0,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfe,0xff,0x5,0x0,0x4,0x0, +0x1,0x0,0x8,0x0,0xf,0x0,0xe,0x0,0xe,0x0,0xa,0x0, +0x7,0x0,0xa,0x0,0x9,0x0,0x3,0x0,0x4,0x0,0x7,0x0, +0xa,0x0,0xf,0x0,0xd,0x0,0xb,0x0,0x11,0x0,0xe,0x0, +0x6,0x0,0xb,0x0,0xe,0x0,0x2,0x0,0x1,0x0,0x9,0x0, +0xa,0x0,0xe,0x0,0x13,0x0,0xb,0x0,0x7,0x0,0xd,0x0, +0x7,0x0,0xff,0xff,0x9,0x0,0xf,0x0,0x5,0x0,0x1,0x0, +0x5,0x0,0x5,0x0,0xc,0x0,0x10,0x0,0x7,0x0,0x5,0x0, +0xf,0x0,0xc,0x0,0x0,0x0,0x2,0x0,0x5,0x0,0x2,0x0, +0x6,0x0,0x8,0x0,0x2,0x0,0xff,0xff,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xf7,0xff,0xf8,0xff,0x5,0x0,0x9,0x0, +0x1,0x0,0x2,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x8,0x0, +0x8,0x0,0xb,0x0,0xc,0x0,0x3,0x0,0x5,0x0,0x12,0x0, +0x11,0x0,0x9,0x0,0xb,0x0,0xc,0x0,0xe,0x0,0x17,0x0, +0x11,0x0,0x6,0x0,0x12,0x0,0x1c,0x0,0xf,0x0,0xb,0x0, +0x11,0x0,0xc,0x0,0x8,0x0,0xb,0x0,0xd,0x0,0xd,0x0, +0xc,0x0,0x6,0x0,0x2,0x0,0x5,0x0,0x8,0x0,0x5,0x0, +0x3,0x0,0x5,0x0,0x7,0x0,0x5,0x0,0x7,0x0,0x9,0x0, +0x6,0x0,0x7,0x0,0xd,0x0,0x10,0x0,0xc,0x0,0x6,0x0, +0x4,0x0,0xa,0x0,0x9,0x0,0x2,0x0,0x5,0x0,0x5,0x0, +0xfd,0xff,0xff,0xff,0x9,0x0,0x8,0x0,0x7,0x0,0xb,0x0, +0xd,0x0,0x10,0x0,0xf,0x0,0x9,0x0,0xb,0x0,0xc,0x0, +0x8,0x0,0xb,0x0,0xa,0x0,0x3,0x0,0x7,0x0,0xf,0x0, +0xe,0x0,0xe,0x0,0xb,0x0,0x2,0x0,0x3,0x0,0x6,0x0, +0x3,0x0,0x5,0x0,0x4,0x0,0xfd,0xff,0xff,0xff,0x2,0x0, +0x3,0x0,0x5,0x0,0x0,0x0,0xfa,0xff,0xfe,0xff,0x1,0x0, +0x0,0x0,0x3,0x0,0x7,0x0,0xa,0x0,0xd,0x0,0xb,0x0, +0xa,0x0,0x8,0x0,0x0,0x0,0x3,0x0,0xe,0x0,0xa,0x0, +0x6,0x0,0xd,0x0,0x5,0x0,0x0,0x0,0xc,0x0,0x11,0x0, +0xf,0x0,0x13,0x0,0xd,0x0,0x5,0x0,0xa,0x0,0xa,0x0, +0x9,0x0,0x11,0x0,0xe,0x0,0x8,0x0,0xd,0x0,0xd,0x0, +0xd,0x0,0x15,0x0,0x14,0x0,0xb,0x0,0x11,0x0,0x16,0x0, +0x10,0x0,0xc,0x0,0xe,0x0,0xf,0x0,0xf,0x0,0x10,0x0, +0x12,0x0,0x10,0x0,0xc,0x0,0xc,0x0,0xa,0x0,0x6,0x0, +0x9,0x0,0x10,0x0,0xf,0x0,0xe,0x0,0xf,0x0,0x11,0x0, +0x10,0x0,0x9,0x0,0x5,0x0,0xa,0x0,0x7,0x0,0xfe,0xff, +0xff,0xff,0x6,0x0,0x6,0x0,0x7,0x0,0x8,0x0,0x6,0x0, +0x7,0x0,0xa,0x0,0x9,0x0,0xb,0x0,0x14,0x0,0x11,0x0, +0x5,0x0,0x4,0x0,0xd,0x0,0xc,0x0,0x5,0x0,0x5,0x0, +0x8,0x0,0x9,0x0,0xd,0x0,0xe,0x0,0xb,0x0,0x7,0x0, +0x1,0x0,0x2,0x0,0x9,0x0,0x7,0x0,0x2,0x0,0x8,0x0, +0x6,0x0,0xfd,0xff,0x3,0x0,0xa,0x0,0x8,0x0,0x9,0x0, +0x8,0x0,0x5,0x0,0xa,0x0,0xa,0x0,0x5,0x0,0xb,0x0, +0xf,0x0,0xb,0x0,0xb,0x0,0x9,0x0,0x7,0x0,0xf,0x0, +0x11,0x0,0xa,0x0,0x8,0x0,0xa,0x0,0x9,0x0,0xc,0x0, +0xd,0x0,0xd,0x0,0xd,0x0,0x9,0x0,0x8,0x0,0xd,0x0, +0xa,0x0,0x8,0x0,0xf,0x0,0xc,0x0,0x8,0x0,0xe,0x0, +0xd,0x0,0x7,0x0,0x9,0x0,0x7,0x0,0x0,0x0,0x3,0x0, +0x6,0x0,0x4,0x0,0x7,0x0,0x8,0x0,0x6,0x0,0x4,0x0, +0x1,0x0,0x6,0x0,0x11,0x0,0xc,0x0,0x4,0x0,0xa,0x0, +0xd,0x0,0xa,0x0,0xb,0x0,0xb,0x0,0xb,0x0,0xe,0x0, +0xd,0x0,0xa,0x0,0xe,0x0,0x10,0x0,0xe,0x0,0xf,0x0, +0xf,0x0,0xd,0x0,0xf,0x0,0x12,0x0,0x14,0x0,0x17,0x0, +0x15,0x0,0x13,0x0,0x14,0x0,0x12,0x0,0xe,0x0,0xe,0x0, +0xc,0x0,0x9,0x0,0xd,0x0,0x11,0x0,0xd,0x0,0xa,0x0, +0xa,0x0,0xb,0x0,0xe,0x0,0x11,0x0,0xf,0x0,0xd,0x0, +0x10,0x0,0x11,0x0,0xb,0x0,0x8,0x0,0xc,0x0,0xb,0x0, +0x5,0x0,0x4,0x0,0x9,0x0,0xc,0x0,0xe,0x0,0x10,0x0, +0xd,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x7,0x0, +0xa,0x0,0xa,0x0,0x8,0x0,0x4,0x0,0x1,0x0,0x3,0x0, +0x7,0x0,0x9,0x0,0x6,0x0,0x4,0x0,0xa,0x0,0x12,0x0, +0xf,0x0,0x8,0x0,0x8,0x0,0xa,0x0,0x5,0x0,0x4,0x0, +0x8,0x0,0x8,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0x2,0x0,0x5,0x0,0x4,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x5,0x0,0xa,0x0,0x6,0x0,0x3,0x0,0x6,0x0, +0x5,0x0,0x1,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x6,0x0, +0xc,0x0,0xd,0x0,0x8,0x0,0x3,0x0,0x6,0x0,0x8,0x0, +0x0,0x0,0xfe,0xff,0x2,0x0,0x1,0x0,0xfe,0xff,0x2,0x0, +0x3,0x0,0xfe,0xff,0xfb,0xff,0xfe,0xff,0x3,0x0,0x4,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0xfd,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xff,0xff,0x3,0x0,0xff,0xff,0xfe,0xff,0x2,0x0, +0x4,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x2,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0xfe,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0x3,0x0,0x9,0x0,0x6,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x3,0x0,0x3,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xf8,0xff,0xf9,0xff, +0xfe,0xff,0x0,0x0,0xfb,0xff,0xf8,0xff,0xf6,0xff,0xf4,0xff, +0xf7,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x3,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x3,0x0,0x6,0x0,0x5,0x0, +0x2,0x0,0x1,0x0,0x3,0x0,0x1,0x0,0xfb,0xff,0xfe,0xff, +0x2,0x0,0xfc,0xff,0xfa,0xff,0xfd,0xff,0xfa,0xff,0xfa,0xff, +0xfd,0xff,0xf9,0xff,0xf8,0xff,0xfa,0xff,0xf4,0xff,0xf4,0xff, +0xfa,0xff,0xf8,0xff,0xf5,0xff,0xf7,0xff,0xf9,0xff,0x1,0x0, +0x6,0x0,0xff,0xff,0x0,0x0,0x6,0x0,0x3,0x0,0x1,0x0, +0x2,0x0,0xfd,0xff,0xfe,0xff,0x1,0x0,0xfc,0xff,0xfa,0xff, +0xfc,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,0xfd,0xff,0x3,0x0, +0x6,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x0,0x0,0x3,0x0, +0x7,0x0,0x1,0x0,0x1,0x0,0x5,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0xfc,0xff,0xfd,0xff,0x2,0x0,0xff,0xff,0xfb,0xff, +0xf7,0xff,0xf5,0xff,0xfa,0xff,0xfc,0xff,0xf7,0xff,0xf9,0xff, +0xfd,0xff,0xf8,0xff,0xf6,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xf8,0xff,0xf6,0xff, +0xf9,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xf9,0xff,0xf9,0xff, +0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff, +0xfb,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfe,0xff,0x2,0x0,0xfe,0xff, +0xf9,0xff,0xfd,0xff,0x2,0x0,0x4,0x0,0x0,0x0,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xf7,0xff,0xf8,0xff,0xfd,0xff,0xfa,0xff, +0xf9,0xff,0xfc,0xff,0xf8,0xff,0xf7,0xff,0xfb,0xff,0xf8,0xff, +0xf1,0xff,0xf4,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xf7,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf7,0xff,0xf9,0xff,0xf6,0xff,0xf5,0xff,0xfb,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfd,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xfb,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0x1,0x0,0xff,0xff,0xfb,0xff,0xfe,0xff,0x3,0x0,0x0,0x0, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x4,0x0,0x3,0x0, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x1,0x0,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xfd,0xff,0xfd,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x5,0x0,0x6,0x0,0x3,0x0,0x0,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0x2,0x0,0x5,0x0,0x2,0x0, +0x1,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xfd,0xff,0xfe,0xff,0x1,0x0,0xff,0xff,0xfd,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff, +0x0,0x0,0x0,0x0,0xfd,0xff,0xff,0xff,0x2,0x0,0x2,0x0, +0x4,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0x3,0x0, +0x7,0x0,0x1,0x0,0xfe,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0x1,0x0,0x3,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff, +0x1,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x7,0x0,0x5,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x6,0x0,0x4,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x4,0x0,0x5,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x4,0x0, +0x4,0x0,0x6,0x0,0x6,0x0,0x2,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0xff,0xff, +0x2,0x0,0x5,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x1,0x0, +0xff,0xff,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x7,0x0,0x5,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x4,0x0,0x6,0x0, +0x5,0x0,0x7,0x0,0x6,0x0,0x3,0x0,0x5,0x0,0x6,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x5,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x3,0x0,0x5,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x4,0x0, +0x2,0x0,0xff,0xff,0x1,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x6,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x7,0x0, +0x8,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x3,0x0,0x3,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x3,0x0, +0x3,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x6,0x0,0x8,0x0,0x5,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x5,0x0,0x5,0x0, +0x7,0x0,0x5,0x0,0x4,0x0,0x7,0x0,0x6,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0, +0x6,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x5,0x0,0x4,0x0,0x1,0x0, +0x4,0x0,0x6,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x7,0x0,0x4,0x0,0x3,0x0,0x5,0x0,0x5,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x5,0x0,0x6,0x0,0x3,0x0, +0x3,0x0,0x5,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x4,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0x2,0x0,0x3,0x0, +0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x3,0x0,0x5,0x0,0x1,0x0,0x0,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xf9,0xff, +0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xf9,0xff, +0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfb,0xff,0xfa,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfb,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfe,0xff,0xfc,0xff,0xf9,0xff,0xfc,0xff,0xfd,0xff, +0xfa,0xff,0xfc,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xff,0xff, +0x0,0x0,0xfd,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0x1,0x0,0x0,0x0,0xfd,0xff,0xff,0xff, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0xfd,0xff,0xfc,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0xff,0xff,0xff,0xff, +0x2,0x0,0x1,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0xff,0xff,0x1,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x4,0x0, +0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0, +0x2,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/sheep2.pcm b/src/client/sound/data/sheep2.pcm new file mode 100755 index 0000000..e924655 --- /dev/null +++ b/src/client/sound/data/sheep2.pcm @@ -0,0 +1,6435 @@ +unsigned char PCM_sheep2[77192] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0xbc,0x96,0x0,0x0,0x2,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x3,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x7,0x0, +0x8,0x0,0x8,0x0,0x7,0x0,0x5,0x0,0x3,0x0,0x3,0x0, +0x0,0x0,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf7,0xff,0xf5,0xff, +0xf6,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x4,0x0,0xa,0x0,0xb,0x0,0x7,0x0, +0x3,0x0,0x7,0x0,0xc,0x0,0xe,0x0,0xd,0x0,0x6,0x0, +0xff,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x9,0x0,0x9,0x0, +0xff,0xff,0xfe,0xff,0x2,0x0,0xff,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0xfa,0xff,0xf5,0xff,0xf9,0xff, +0xfc,0xff,0xfa,0xff,0xf7,0xff,0xf7,0xff,0xfc,0xff,0x3,0x0, +0x0,0x0,0xfb,0xff,0xff,0xff,0xa,0x0,0xd,0x0,0xc,0x0, +0xe,0x0,0xe,0x0,0xd,0x0,0x10,0x0,0xb,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xf8,0xff,0xf8,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0x4,0x0,0x2,0x0,0x1,0x0,0x4,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0xfb,0xff,0x0,0x0,0x2,0x0,0xfd,0xff, +0x2,0x0,0xd,0x0,0xf,0x0,0xe,0x0,0xd,0x0,0x8,0x0, +0x4,0x0,0xfc,0xff,0xf7,0xff,0xff,0xff,0x4,0x0,0xff,0xff, +0x5,0x0,0x10,0x0,0xd,0x0,0x9,0x0,0xa,0x0,0x5,0x0, +0xfe,0xff,0xff,0xff,0x5,0x0,0x5,0x0,0x3,0x0,0x9,0x0, +0x12,0x0,0x14,0x0,0xf,0x0,0x2,0x0,0xf1,0xff,0xee,0xff, +0xf6,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0xa,0x0, +0x14,0x0,0x15,0x0,0x1a,0x0,0x16,0x0,0x3,0x0,0xf1,0xff, +0xef,0xff,0xf5,0xff,0xf7,0xff,0xf0,0xff,0xf1,0xff,0x1,0x0, +0x7,0x0,0x1,0x0,0x5,0x0,0x7,0x0,0xff,0xff,0xf9,0xff, +0xf8,0xff,0xff,0xff,0xb,0x0,0x9,0x0,0x4,0x0,0x11,0x0, +0x18,0x0,0x13,0x0,0x12,0x0,0xd,0x0,0x6,0x0,0x9,0x0, +0x7,0x0,0xfa,0xff,0xf7,0xff,0xfb,0xff,0xff,0xff,0x8,0x0, +0x12,0x0,0x15,0x0,0x11,0x0,0xc,0x0,0x3,0x0,0xf6,0xff, +0xed,0xff,0xef,0xff,0xf3,0xff,0xf3,0xff,0xf1,0xff,0xf1,0xff, +0xf7,0xff,0xfc,0xff,0xfd,0xff,0x4,0x0,0xe,0x0,0xc,0x0, +0xb,0x0,0x11,0x0,0xf,0x0,0xe,0x0,0x17,0x0,0x11,0x0, +0x4,0x0,0x6,0x0,0x4,0x0,0xf8,0xff,0xf5,0xff,0xf4,0xff, +0xee,0xff,0xf1,0xff,0xfb,0xff,0x8,0x0,0x12,0x0,0x12,0x0, +0x13,0x0,0x16,0x0,0x10,0x0,0x9,0x0,0xb,0x0,0x9,0x0, +0x0,0x0,0xf9,0xff,0xf3,0xff,0xf5,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0xa,0x0,0xc,0x0,0x4,0x0,0x1,0x0,0x5,0x0, +0x3,0x0,0xfa,0xff,0xf8,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff, +0x2,0x0,0x8,0x0,0xe,0x0,0x8,0x0,0xfb,0xff,0xfa,0xff, +0xfe,0xff,0xfc,0xff,0xff,0xff,0x4,0x0,0x2,0x0,0x8,0x0, +0x11,0x0,0xf,0x0,0xd,0x0,0xc,0x0,0x1,0x0,0xfc,0xff, +0x3,0x0,0x6,0x0,0x7,0x0,0xa,0x0,0xa,0x0,0x10,0x0, +0x18,0x0,0x17,0x0,0x16,0x0,0x17,0x0,0x14,0x0,0xf,0x0, +0x8,0x0,0xff,0xff,0xfa,0xff,0xf8,0xff,0xf3,0xff,0xf0,0xff, +0xf4,0xff,0xfb,0xff,0x2,0x0,0x5,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff, +0x0,0x0,0x9,0x0,0xc,0x0,0xc,0x0,0x12,0x0,0x12,0x0, +0x10,0x0,0x14,0x0,0xf,0x0,0x0,0x0,0xfd,0xff,0xf8,0xff, +0xef,0xff,0xfb,0xff,0x12,0x0,0x1a,0x0,0x1c,0x0,0x1c,0x0, +0x10,0x0,0x4,0x0,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xf4,0xff, +0xf4,0xff,0xfa,0xff,0xfc,0xff,0xf9,0xff,0xf3,0xff,0xea,0xff, +0xe6,0xff,0xe5,0xff,0xd9,0xff,0xcc,0xff,0xcd,0xff,0xd9,0xff, +0xef,0xff,0x6,0x0,0x12,0x0,0x1f,0x0,0x2e,0x0,0x31,0x0, +0x2a,0x0,0x24,0x0,0x1d,0x0,0x15,0x0,0xa,0x0,0x6,0x0, +0x8,0x0,0x3,0x0,0xfd,0xff,0x0,0x0,0xfe,0xff,0xfa,0xff, +0x1,0x0,0x0,0x0,0xf7,0xff,0xf6,0xff,0xf3,0xff,0xef,0xff, +0xf5,0xff,0xf7,0xff,0xf8,0xff,0x1,0x0,0x2,0x0,0xfc,0xff, +0x1,0x0,0x6,0x0,0x1,0x0,0xf8,0xff,0xf2,0xff,0xef,0xff, +0xe8,0xff,0xe0,0xff,0xe3,0xff,0xe7,0xff,0xe8,0xff,0xf0,0xff, +0xf2,0xff,0xea,0xff,0xef,0xff,0xf8,0xff,0xf4,0xff,0xf1,0xff, +0xef,0xff,0xe8,0xff,0xee,0xff,0xf7,0xff,0xf4,0xff,0xf6,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0xfc,0xff,0xfa,0xff, +0xf8,0xff,0xf4,0xff,0xf8,0xff,0xfc,0xff,0xf8,0xff,0xf9,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfa,0xff,0xf6,0xff,0xf3,0xff,0xf6,0xff,0x4,0x0,0x13,0x0, +0x1a,0x0,0x20,0x0,0x1a,0x0,0xd,0x0,0x12,0x0,0x1b,0x0, +0xc,0x0,0x3,0x0,0xa,0x0,0x8,0x0,0x8,0x0,0x12,0x0, +0x15,0x0,0x13,0x0,0x16,0x0,0x1c,0x0,0x23,0x0,0x22,0x0, +0x1b,0x0,0x1a,0x0,0x19,0x0,0x15,0x0,0x1c,0x0,0x21,0x0, +0x1c,0x0,0x19,0x0,0x1a,0x0,0x1a,0x0,0x1b,0x0,0x16,0x0, +0x12,0x0,0x11,0x0,0x7,0x0,0xff,0xff,0x5,0x0,0x7,0x0, +0x5,0x0,0xb,0x0,0xd,0x0,0x10,0x0,0x1d,0x0,0x20,0x0, +0x1a,0x0,0x1a,0x0,0x19,0x0,0x18,0x0,0x1f,0x0,0x25,0x0, +0x21,0x0,0x1a,0x0,0x15,0x0,0x13,0x0,0xf,0x0,0xd,0x0, +0xf,0x0,0xd,0x0,0x9,0x0,0x11,0x0,0x18,0x0,0x14,0x0, +0x15,0x0,0x17,0x0,0x12,0x0,0xb,0x0,0x9,0x0,0xb,0x0, +0xb,0x0,0x6,0x0,0x7,0x0,0xc,0x0,0x7,0x0,0x1,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0x0,0x0,0xfd,0xff,0xfd,0xff, +0x3,0x0,0xfa,0xff,0xf2,0xff,0xfe,0xff,0x2,0x0,0xfb,0xff, +0xfd,0xff,0xff,0xff,0xf9,0xff,0xf5,0xff,0xf0,0xff,0xed,0xff, +0xf5,0xff,0xfb,0xff,0xfc,0xff,0x3,0x0,0xa,0x0,0x7,0x0, +0x4,0x0,0x8,0x0,0x7,0x0,0xfe,0xff,0xf5,0xff,0xee,0xff, +0xeb,0xff,0xea,0xff,0xeb,0xff,0xeb,0xff,0xea,0xff,0xe8,0xff, +0xe7,0xff,0xe4,0xff,0xdf,0xff,0xdd,0xff,0xe0,0xff,0xdf,0xff, +0xdb,0xff,0xe1,0xff,0xec,0xff,0xf0,0xff,0xf2,0xff,0xeb,0xff, +0xde,0xff,0xe0,0xff,0xe4,0xff,0xd8,0xff,0xcf,0xff,0xd2,0xff, +0xcf,0xff,0xcc,0xff,0xd2,0xff,0xd8,0xff,0xe1,0xff,0xe5,0xff, +0xd4,0xff,0xc6,0xff,0xce,0xff,0xd0,0xff,0xc7,0xff,0xcd,0xff, +0xd3,0xff,0xcc,0xff,0xd3,0xff,0xe9,0xff,0xf3,0xff,0xf2,0xff, +0xed,0xff,0xe3,0xff,0xe1,0xff,0xec,0xff,0xef,0xff,0xe9,0xff, +0xef,0xff,0xfb,0xff,0x2,0x0,0x5,0x0,0x2,0x0,0xfa,0xff, +0xee,0xff,0xdd,0xff,0xd2,0xff,0xd1,0xff,0xcc,0xff,0xc7,0xff, +0xd1,0xff,0xe3,0xff,0xed,0xff,0xed,0xff,0xeb,0xff,0xeb,0xff, +0xf0,0xff,0xf3,0xff,0xee,0xff,0xe1,0xff,0xd6,0xff,0xd4,0xff, +0xd9,0xff,0xe3,0xff,0xef,0xff,0xf5,0xff,0xf6,0xff,0x0,0x0, +0xa,0x0,0x3,0x0,0xf9,0xff,0xf4,0xff,0xe8,0xff,0xd9,0xff, +0xd2,0xff,0xc7,0xff,0xb5,0xff,0xb5,0xff,0xc5,0xff,0xd2,0xff, +0xdf,0xff,0xf9,0xff,0xb,0x0,0x10,0x0,0x1a,0x0,0x1e,0x0, +0x18,0x0,0x1d,0x0,0x27,0x0,0x22,0x0,0x20,0x0,0x2a,0x0, +0x2f,0x0,0x33,0x0,0x37,0x0,0x35,0x0,0x2e,0x0,0x23,0x0, +0xb,0x0,0xfa,0xff,0xf2,0xff,0xe3,0xff,0xd8,0xff,0xde,0xff, +0xe8,0xff,0xf5,0xff,0xa,0x0,0x23,0x0,0x39,0x0,0x3f,0x0, +0x33,0x0,0x1f,0x0,0xa,0x0,0xf5,0xff,0xec,0xff,0xf1,0xff, +0xf2,0xff,0xf5,0xff,0xff,0xff,0xb,0x0,0xe,0x0,0xd,0x0, +0xf,0x0,0xd,0x0,0x4,0x0,0xff,0xff,0xfe,0xff,0xf2,0xff, +0xe3,0xff,0xe3,0xff,0xec,0xff,0xf7,0xff,0x1,0x0,0x9,0x0, +0x14,0x0,0x1d,0x0,0x18,0x0,0xb,0x0,0x4,0x0,0x0,0x0, +0xf9,0xff,0xee,0xff,0xe6,0xff,0xe3,0xff,0xe9,0xff,0xfa,0xff, +0xa,0x0,0xd,0x0,0x9,0x0,0xb,0x0,0x9,0x0,0xfc,0xff, +0xec,0xff,0xdf,0xff,0xdb,0xff,0xe7,0xff,0xf2,0xff,0xf6,0xff, +0x4,0x0,0x13,0x0,0x14,0x0,0x11,0x0,0xd,0x0,0x4,0x0, +0xfc,0xff,0xfa,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xee,0xff, +0xe5,0xff,0xeb,0xff,0xfb,0xff,0x4,0x0,0xfe,0xff,0xf5,0xff, +0xf2,0xff,0xf5,0xff,0xfb,0xff,0xfd,0xff,0xf9,0xff,0xf7,0xff, +0xfd,0xff,0x6,0x0,0xa,0x0,0xe,0x0,0x14,0x0,0x14,0x0, +0x10,0x0,0xb,0x0,0x6,0x0,0x3,0x0,0x9,0x0,0xe,0x0, +0x8,0x0,0x3,0x0,0x3,0x0,0xfa,0xff,0xf3,0xff,0xfd,0xff, +0x3,0x0,0xf6,0xff,0xed,0xff,0xee,0xff,0xea,0xff,0xe2,0xff, +0xe0,0xff,0xdf,0xff,0xe3,0xff,0xf2,0xff,0xf2,0xff,0xe6,0xff, +0xe6,0xff,0xed,0xff,0xe8,0xff,0xea,0xff,0xf9,0xff,0xff,0xff, +0xfd,0xff,0x1,0x0,0x0,0x0,0xf6,0xff,0xf3,0xff,0xfb,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0xa,0x0,0x17,0x0,0x21,0x0, +0x27,0x0,0x24,0x0,0x24,0x0,0x27,0x0,0x1e,0x0,0x14,0x0, +0x1d,0x0,0x28,0x0,0x24,0x0,0x1e,0x0,0x1b,0x0,0x1e,0x0, +0x26,0x0,0x23,0x0,0x17,0x0,0x14,0x0,0x19,0x0,0x21,0x0, +0x24,0x0,0x20,0x0,0x26,0x0,0x3a,0x0,0x46,0x0,0x42,0x0, +0x32,0x0,0x20,0x0,0x1b,0x0,0x16,0x0,0x15,0x0,0x30,0x0, +0x45,0x0,0x38,0x0,0x33,0x0,0x38,0x0,0x29,0x0,0x2d,0x0, +0x3f,0x0,0x32,0x0,0x2b,0x0,0x3f,0x0,0x34,0x0,0x17,0x0, +0x18,0x0,0x1c,0x0,0xb,0x0,0x4,0x0,0xc,0x0,0x13,0x0, +0x19,0x0,0x24,0x0,0x2a,0x0,0x2c,0x0,0x35,0x0,0x44,0x0, +0x45,0x0,0x43,0x0,0x4c,0x0,0x52,0x0,0x52,0x0,0x55,0x0, +0x50,0x0,0x45,0x0,0x36,0x0,0x25,0x0,0x21,0x0,0x24,0x0, +0x17,0x0,0xb,0x0,0xfb,0xff,0xe2,0xff,0xdc,0xff,0xcd,0xff, +0x90,0xff,0x67,0xff,0x59,0xff,0x27,0xff,0xff,0xfe,0x23,0xff, +0x6e,0xff,0xd0,0xff,0x40,0x0,0x88,0x0,0xb1,0x0,0xd7,0x0, +0xdc,0x0,0xc1,0x0,0xa1,0x0,0x72,0x0,0x43,0x0,0x38,0x0, +0x54,0x0,0x74,0x0,0x78,0x0,0x6e,0x0,0x73,0x0,0x73,0x0, +0x57,0x0,0x24,0x0,0xe7,0xff,0xc3,0xff,0xb6,0xff,0x8e,0xff, +0x6b,0xff,0x8c,0xff,0xc2,0xff,0xe2,0xff,0x6,0x0,0x1e,0x0, +0x1a,0x0,0x2,0x0,0xd0,0xff,0x9e,0xff,0x8a,0xff,0x77,0xff, +0x5d,0xff,0x59,0xff,0x68,0xff,0x8e,0xff,0xb9,0xff,0xce,0xff, +0xf2,0xff,0x19,0x0,0xfe,0xff,0xcc,0xff,0xbb,0xff,0x99,0xff, +0x6d,0xff,0x60,0xff,0x59,0xff,0x61,0xff,0x98,0xff,0xda,0xff, +0xd,0x0,0x32,0x0,0x45,0x0,0x49,0x0,0x3a,0x0,0x17,0x0, +0xef,0xff,0xc2,0xff,0xa6,0xff,0xbc,0xff,0xdf,0xff,0xfe,0xff, +0x38,0x0,0x68,0x0,0x6b,0x0,0x65,0x0,0x50,0x0,0x22,0x0, +0x8,0x0,0xf7,0xff,0xd4,0xff,0xcb,0xff,0xe0,0xff,0xf3,0xff, +0x5,0x0,0x17,0x0,0x23,0x0,0x2b,0x0,0x29,0x0,0x27,0x0, +0x28,0x0,0x17,0x0,0xc,0x0,0x18,0x0,0x20,0x0,0x27,0x0, +0x3b,0x0,0x53,0x0,0x7e,0x0,0xa0,0x0,0x93,0x0,0x85,0x0, +0x8e,0x0,0x83,0x0,0x67,0x0,0x54,0x0,0x50,0x0,0x65,0x0, +0x76,0x0,0x7b,0x0,0x8c,0x0,0x8e,0x0,0x80,0x0,0x92,0x0, +0xa6,0x0,0xa3,0x0,0xaf,0x0,0xa7,0x0,0x7a,0x0,0x70,0x0, +0x75,0x0,0x66,0x0,0x78,0x0,0x92,0x0,0x86,0x0,0x76,0x0, +0x5a,0x0,0x2f,0x0,0x30,0x0,0x3d,0x0,0x1f,0x0,0x10,0x0, +0x2a,0x0,0x42,0x0,0x4b,0x0,0x47,0x0,0x43,0x0,0x57,0x0, +0x64,0x0,0x52,0x0,0x42,0x0,0x3a,0x0,0x30,0x0,0x2f,0x0, +0x3f,0x0,0x55,0x0,0x55,0x0,0x4e,0x0,0x64,0x0,0x80,0x0, +0x85,0x0,0x87,0x0,0x76,0x0,0x4d,0x0,0x44,0x0,0x43,0x0, +0x21,0x0,0x26,0x0,0x57,0x0,0x65,0x0,0x5a,0x0,0x58,0x0, +0x49,0x0,0x3b,0x0,0x38,0x0,0x22,0x0,0x3,0x0,0xef,0xff, +0xe8,0xff,0xef,0xff,0xf9,0xff,0xfb,0xff,0xf7,0xff,0xe5,0xff, +0xdb,0xff,0xe9,0xff,0xea,0xff,0xd8,0xff,0xce,0xff,0xca,0xff, +0xc7,0xff,0xc1,0xff,0xae,0xff,0xaa,0xff,0xbe,0xff,0xcc,0xff, +0xdb,0xff,0xe8,0xff,0xdd,0xff,0xcb,0xff,0xc3,0xff,0xbe,0xff, +0xc9,0xff,0xc6,0xff,0xa7,0xff,0xa1,0xff,0xb0,0xff,0xbb,0xff, +0xde,0xff,0xfb,0xff,0xf1,0xff,0xfb,0xff,0x3,0x0,0xd4,0xff, +0xb2,0xff,0xb8,0xff,0xb7,0xff,0xba,0xff,0xb7,0xff,0x98,0xff, +0x97,0xff,0xb0,0xff,0xa7,0xff,0x9c,0xff,0xa8,0xff,0x9f,0xff, +0x86,0xff,0x71,0xff,0x53,0xff,0x39,0xff,0x3d,0xff,0x57,0xff, +0x62,0xff,0x4a,0xff,0x35,0xff,0x39,0xff,0x3d,0xff,0x41,0xff, +0x4d,0xff,0x53,0xff,0x62,0xff,0x82,0xff,0x8b,0xff,0x84,0xff, +0x8f,0xff,0xa4,0xff,0xbb,0xff,0xce,0xff,0xd5,0xff,0xda,0xff, +0xd9,0xff,0xd0,0xff,0xe0,0xff,0xf6,0xff,0xe6,0xff,0xda,0xff, +0xe0,0xff,0xcc,0xff,0xc1,0xff,0xd7,0xff,0xcc,0xff,0xa3,0xff, +0xa5,0xff,0xbd,0xff,0xc1,0xff,0xc3,0xff,0xc1,0xff,0xa5,0xff, +0x89,0xff,0x74,0xff,0x51,0xff,0x2c,0xff,0x17,0xff,0xf8,0xfe, +0xda,0xfe,0xf1,0xfe,0x29,0xff,0x56,0xff,0x93,0xff,0xe5,0xff, +0x1e,0x0,0x34,0x0,0x34,0x0,0x31,0x0,0x3c,0x0,0x2f,0x0, +0xfb,0xff,0xf5,0xff,0x26,0x0,0x41,0x0,0x48,0x0,0x56,0x0, +0x50,0x0,0x56,0x0,0x78,0x0,0x78,0x0,0x4e,0x0,0x2e,0x0, +0x1b,0x0,0xf,0x0,0x16,0x0,0x28,0x0,0x47,0x0,0x7e,0x0, +0xae,0x0,0xbd,0x0,0xb4,0x0,0xa0,0x0,0x83,0x0,0x56,0x0, +0x14,0x0,0xd1,0xff,0xa5,0xff,0x9f,0xff,0xb1,0xff,0xbd,0xff, +0xcd,0xff,0xf5,0xff,0x12,0x0,0x1a,0x0,0x2b,0x0,0x27,0x0, +0xfb,0xff,0xeb,0xff,0xea,0xff,0xbb,0xff,0x9c,0xff,0xbf,0xff, +0xdd,0xff,0xe6,0xff,0x5,0x0,0x22,0x0,0x29,0x0,0x2e,0x0, +0x29,0x0,0x1e,0x0,0x1c,0x0,0x11,0x0,0x7,0x0,0x13,0x0, +0x29,0x0,0x45,0x0,0x64,0x0,0x6a,0x0,0x68,0x0,0x6f,0x0, +0x55,0x0,0x24,0x0,0xc,0x0,0x8,0x0,0x8,0x0,0xa,0x0, +0xf6,0xff,0xe2,0xff,0xf4,0xff,0xb,0x0,0x5,0x0,0xfd,0xff, +0x3,0x0,0x18,0x0,0x31,0x0,0x32,0x0,0x9,0x0,0xd5,0xff, +0xc3,0xff,0xd5,0xff,0xe0,0xff,0xe4,0xff,0xfb,0xff,0x0,0x0, +0xe1,0xff,0xd7,0xff,0xeb,0xff,0xf5,0xff,0xf7,0xff,0xfc,0xff, +0xa,0x0,0x24,0x0,0x31,0x0,0x2d,0x0,0x3a,0x0,0x47,0x0, +0x37,0x0,0x2d,0x0,0x39,0x0,0x3b,0x0,0x25,0x0,0x8,0x0, +0x4,0x0,0x17,0x0,0x18,0x0,0x8,0x0,0xb,0x0,0x1b,0x0, +0x22,0x0,0x1d,0x0,0x9,0x0,0xfa,0xff,0xf7,0xff,0xf1,0xff, +0xeb,0xff,0xe6,0xff,0xda,0xff,0xcf,0xff,0xc2,0xff,0xae,0xff, +0xa0,0xff,0x9e,0xff,0xa5,0xff,0xb9,0xff,0xc0,0xff,0xba,0xff, +0xc6,0xff,0xcd,0xff,0xc8,0xff,0xd8,0xff,0xe0,0xff,0xcf,0xff, +0xd9,0xff,0xe6,0xff,0xd1,0xff,0xc5,0xff,0xcf,0xff,0xde,0xff, +0xf2,0xff,0xf5,0xff,0xf1,0xff,0x7,0x0,0xf,0x0,0xb,0x0, +0x1a,0x0,0x13,0x0,0xe,0x0,0x4c,0x0,0x75,0x0,0x58,0x0, +0x53,0x0,0x59,0x0,0x2e,0x0,0xe,0x0,0x17,0x0,0x23,0x0, +0x2c,0x0,0x25,0x0,0xd,0x0,0xa,0x0,0x1d,0x0,0x25,0x0, +0x23,0x0,0x1f,0x0,0x1d,0x0,0x1e,0x0,0x17,0x0,0x14,0x0, +0x16,0x0,0x7,0x0,0xfb,0xff,0xff,0xff,0xf8,0xff,0xf6,0xff, +0xf,0x0,0x17,0x0,0x0,0x0,0xf6,0xff,0x5,0x0,0xe,0x0, +0x5,0x0,0x4,0x0,0x11,0x0,0xc,0x0,0x0,0x0,0xc,0x0, +0x17,0x0,0x8,0x0,0xfc,0xff,0xfa,0xff,0xf7,0xff,0x1,0x0, +0x3,0x0,0xeb,0xff,0xd3,0xff,0xc6,0xff,0xc5,0xff,0xd2,0xff, +0xd7,0xff,0xd2,0xff,0xdf,0xff,0xf0,0xff,0xf4,0xff,0xfa,0xff, +0xfa,0xff,0xe7,0xff,0xd9,0xff,0xd5,0xff,0xc3,0xff,0xa3,0xff, +0x8a,0xff,0x7c,0xff,0x61,0xff,0x32,0xff,0x9,0xff,0xf1,0xfe, +0xee,0xfe,0x12,0xff,0x50,0xff,0x8a,0xff,0xd1,0xff,0x25,0x0, +0x57,0x0,0x62,0x0,0x62,0x0,0x5c,0x0,0x4b,0x0,0x2e,0x0, +0x1a,0x0,0x30,0x0,0x54,0x0,0x50,0x0,0x2f,0x0,0x11,0x0, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xd6,0xff,0xb8,0xff,0xbc,0xff, +0xb1,0xff,0x84,0xff,0x5c,0xff,0x60,0xff,0xaa,0xff,0x5,0x0, +0x1e,0x0,0xa,0x0,0xf8,0xff,0xcf,0xff,0x97,0xff,0x70,0xff, +0x50,0xff,0x3e,0xff,0x39,0xff,0x19,0xff,0x2,0xff,0x22,0xff, +0x44,0xff,0x57,0xff,0x87,0xff,0xa6,0xff,0x80,0xff,0x4f,0xff, +0x3b,0xff,0x29,0xff,0x14,0xff,0x4,0xff,0xfc,0xfe,0x16,0xff, +0x53,0xff,0x82,0xff,0x8f,0xff,0xac,0xff,0xde,0xff,0xe3,0xff, +0xb4,0xff,0x8c,0xff,0x79,0xff,0x74,0xff,0x8c,0xff,0xab,0xff, +0xc0,0xff,0xed,0xff,0x23,0x0,0x3d,0x0,0x52,0x0,0x53,0x0, +0x22,0x0,0xe9,0xff,0xc2,0xff,0xa1,0xff,0xac,0xff,0xd8,0xff, +0xe2,0xff,0xed,0xff,0x25,0x0,0x45,0x0,0x32,0x0,0x37,0x0, +0x55,0x0,0x47,0x0,0x12,0x0,0xe5,0xff,0xbe,0xff,0x9d,0xff, +0xa1,0xff,0xc9,0xff,0x0,0x0,0x4d,0x0,0x92,0x0,0xa1,0x0, +0x8d,0x0,0x75,0x0,0x56,0x0,0x38,0x0,0x26,0x0,0x15,0x0, +0x10,0x0,0x22,0x0,0x44,0x0,0x79,0x0,0xa7,0x0,0xa5,0x0, +0x92,0x0,0x9b,0x0,0xac,0x0,0xa4,0x0,0x81,0x0,0x59,0x0, +0x44,0x0,0x3d,0x0,0x34,0x0,0x44,0x0,0x7f,0x0,0xbc,0x0, +0xce,0x0,0xb8,0x0,0x94,0x0,0x6c,0x0,0x46,0x0,0x30,0x0, +0x26,0x0,0x1d,0x0,0x28,0x0,0x40,0x0,0x4c,0x0,0x53,0x0, +0x5e,0x0,0x60,0x0,0x65,0x0,0x5a,0x0,0x19,0x0,0xdb,0xff, +0xd4,0xff,0xd8,0xff,0xce,0xff,0xd6,0xff,0x0,0x0,0x41,0x0, +0x6b,0x0,0x67,0x0,0x69,0x0,0x72,0x0,0x4f,0x0,0x28,0x0, +0x20,0x0,0xd,0x0,0xf,0x0,0x45,0x0,0x5f,0x0,0x63,0x0, +0x8e,0x0,0xab,0x0,0xa1,0x0,0xa7,0x0,0x96,0x0,0x54,0x0, +0x2d,0x0,0x1a,0x0,0xe9,0xff,0xd3,0xff,0xe9,0xff,0xed,0xff, +0xf5,0xff,0x1e,0x0,0x36,0x0,0x2c,0x0,0x15,0x0,0xf1,0xff, +0xda,0xff,0xdb,0xff,0xc7,0xff,0xa2,0xff,0xa5,0xff,0xc2,0xff, +0xd1,0xff,0xea,0xff,0xc,0x0,0x9,0x0,0xf9,0xff,0xc,0x0, +0x14,0x0,0xe9,0xff,0xc0,0xff,0xa9,0xff,0x86,0xff,0x8c,0xff, +0xc2,0xff,0xcb,0xff,0xaf,0xff,0xc2,0xff,0xe2,0xff,0xe7,0xff, +0xe7,0xff,0xd7,0xff,0xc8,0xff,0xe5,0xff,0xe8,0xff,0xbd,0xff, +0xc0,0xff,0xd4,0xff,0xc4,0xff,0xe2,0xff,0x1a,0x0,0x9,0x0, +0xef,0xff,0xfc,0xff,0xf3,0xff,0xeb,0xff,0xff,0xff,0xfb,0xff, +0xf3,0xff,0x2,0x0,0xec,0xff,0xbb,0xff,0xb7,0xff,0xcd,0xff, +0xda,0xff,0xee,0xff,0xf8,0xff,0xe7,0xff,0xe2,0xff,0xf7,0xff, +0xfc,0xff,0xeb,0xff,0xea,0xff,0xf3,0xff,0xe6,0xff,0xdf,0xff, +0xf6,0xff,0xfa,0xff,0xde,0xff,0xd7,0xff,0xd4,0xff,0xb9,0xff, +0xb5,0xff,0xbe,0xff,0x96,0xff,0x60,0xff,0x49,0xff,0x17,0xff, +0xd5,0xfe,0xd5,0xfe,0xfe,0xfe,0x33,0xff,0x96,0xff,0xf9,0xff, +0x1f,0x0,0x41,0x0,0x6c,0x0,0x6f,0x0,0x65,0x0,0x5a,0x0, +0x36,0x0,0x1e,0x0,0x23,0x0,0x25,0x0,0x2f,0x0,0x36,0x0, +0x2b,0x0,0x3f,0x0,0x60,0x0,0x51,0x0,0x42,0x0,0x3d,0x0, +0x4,0x0,0xc3,0xff,0xb4,0xff,0xa7,0xff,0x91,0xff,0xad,0xff, +0x4,0x0,0x5d,0x0,0x79,0x0,0x65,0x0,0x5d,0x0,0x50,0x0, +0x2c,0x0,0x17,0x0,0xf6,0xff,0xb6,0xff,0x9c,0xff,0x9e,0xff, +0x99,0xff,0xc6,0xff,0x12,0x0,0x2d,0x0,0x42,0x0,0x66,0x0, +0x5c,0x0,0x3a,0x0,0x1a,0x0,0xd6,0xff,0x8a,0xff,0x70,0xff, +0x6f,0xff,0x83,0xff,0xca,0xff,0x1f,0x0,0x51,0x0,0x6d,0x0, +0x7f,0x0,0x75,0x0,0x57,0x0,0x37,0x0,0x1a,0x0,0xe,0x0, +0x19,0x0,0x1e,0x0,0x14,0x0,0x20,0x0,0x4b,0x0,0x6e,0x0, +0x6f,0x0,0x64,0x0,0x64,0x0,0x65,0x0,0x4f,0x0,0x25,0x0, +0xf9,0xff,0xe3,0xff,0xeb,0xff,0x1,0x0,0x26,0x0,0x4f,0x0, +0x59,0x0,0x56,0x0,0x6a,0x0,0x66,0x0,0x3b,0x0,0x28,0x0, +0x1d,0x0,0x4,0x0,0x8,0x0,0xd,0x0,0xff,0xff,0x22,0x0, +0x5e,0x0,0x72,0x0,0x8e,0x0,0xab,0x0,0x92,0x0,0x77,0x0, +0x68,0x0,0x3f,0x0,0x29,0x0,0x33,0x0,0x2f,0x0,0x31,0x0, +0x45,0x0,0x4b,0x0,0x4f,0x0,0x54,0x0,0x46,0x0,0x36,0x0, +0x2f,0x0,0x30,0x0,0x2e,0x0,0x18,0x0,0x18,0x0,0x4e,0x0, +0x71,0x0,0x70,0x0,0x82,0x0,0x8a,0x0,0x6a,0x0,0x52,0x0, +0x53,0x0,0x4d,0x0,0x32,0x0,0x7,0x0,0xf6,0xff,0x14,0x0, +0x33,0x0,0x3d,0x0,0x40,0x0,0x3e,0x0,0x3c,0x0,0x34,0x0, +0x1b,0x0,0xb,0x0,0xf,0x0,0xf,0x0,0xff,0xff,0xf0,0xff, +0xff,0xff,0x28,0x0,0x35,0x0,0x37,0x0,0x55,0x0,0x52,0x0, +0x22,0x0,0x1d,0x0,0x35,0x0,0x21,0x0,0x1,0x0,0x1,0x0, +0x18,0x0,0x2f,0x0,0x31,0x0,0x3b,0x0,0x5c,0x0,0x65,0x0, +0x5a,0x0,0x56,0x0,0x42,0x0,0x25,0x0,0x1e,0x0,0x12,0x0, +0xb,0x0,0x21,0x0,0x33,0x0,0x42,0x0,0x5d,0x0,0x64,0x0, +0x53,0x0,0x3d,0x0,0x19,0x0,0xf9,0xff,0xeb,0xff,0xdc,0xff, +0xcd,0xff,0xd6,0xff,0xfd,0xff,0x32,0x0,0x43,0x0,0x2d,0x0, +0x2a,0x0,0x35,0x0,0x2c,0x0,0x14,0x0,0xf9,0xff,0xe7,0xff, +0xdd,0xff,0xc8,0xff,0xd9,0xff,0x1e,0x0,0x47,0x0,0x55,0x0, +0x6a,0x0,0x54,0x0,0x30,0x0,0x38,0x0,0x21,0x0,0xf4,0xff, +0x2,0x0,0x6,0x0,0xee,0xff,0x15,0x0,0x46,0x0,0x36,0x0, +0x31,0x0,0x4b,0x0,0x44,0x0,0x25,0x0,0x11,0x0,0x3,0x0, +0xe9,0xff,0xd0,0xff,0xe0,0xff,0xfd,0xff,0xfd,0xff,0xa,0x0, +0x26,0x0,0x17,0x0,0xf8,0xff,0xe4,0xff,0xb7,0xff,0x7b,0xff, +0x40,0xff,0x1,0xff,0xf0,0xfe,0x1f,0xff,0x63,0xff,0xc1,0xff, +0x2c,0x0,0x72,0x0,0x9a,0x0,0xaa,0x0,0x91,0x0,0x6a,0x0, +0x3d,0x0,0x3,0x0,0xf0,0xff,0xc,0x0,0x1c,0x0,0x29,0x0, +0x48,0x0,0x56,0x0,0x5b,0x0,0x72,0x0,0x72,0x0,0x47,0x0, +0x11,0x0,0xd9,0xff,0xa0,0xff,0x73,0xff,0x5d,0xff,0x72,0xff, +0xc2,0xff,0x1f,0x0,0x5a,0x0,0x72,0x0,0x6c,0x0,0x44,0x0, +0x1,0x0,0xa4,0xff,0x51,0xff,0x35,0xff,0x2e,0xff,0x19,0xff, +0x25,0xff,0x56,0xff,0x7c,0xff,0xaa,0xff,0xeb,0xff,0x6,0x0, +0xed,0xff,0xb3,0xff,0x55,0xff,0xff,0xfe,0xd3,0xfe,0xaa,0xfe, +0x86,0xfe,0xaa,0xfe,0x14,0xff,0x78,0xff,0xb5,0xff,0xf0,0xff, +0x37,0x0,0x44,0x0,0xfb,0xff,0xb4,0xff,0x9a,0xff,0x83,0xff, +0x6e,0xff,0x83,0xff,0xb9,0xff,0xf3,0xff,0x26,0x0,0x5b,0x0, +0x8b,0x0,0x98,0x0,0x84,0x0,0x6f,0x0,0x3f,0x0,0xe6,0xff, +0xad,0xff,0xa5,0xff,0x9c,0xff,0xb0,0xff,0xfe,0xff,0x38,0x0, +0x4f,0x0,0x83,0x0,0xb5,0x0,0xac,0x0,0x85,0x0,0x4b,0x0, +0xf8,0xff,0xc8,0xff,0xc7,0xff,0xc9,0xff,0xdf,0xff,0x17,0x0, +0x47,0x0,0x6d,0x0,0x81,0x0,0x70,0x0,0x6a,0x0,0x77,0x0, +0x54,0x0,0x25,0x0,0x24,0x0,0x27,0x0,0x20,0x0,0x3a,0x0, +0x66,0x0,0x8c,0x0,0x9e,0x0,0x96,0x0,0x9c,0x0,0xaf,0x0, +0x95,0x0,0x67,0x0,0x53,0x0,0x3e,0x0,0x33,0x0,0x57,0x0, +0x85,0x0,0xa2,0x0,0xba,0x0,0xc1,0x0,0xb2,0x0,0xa4,0x0, +0xa9,0x0,0xa1,0x0,0x6f,0x0,0x46,0x0,0x51,0x0,0x51,0x0, +0x3a,0x0,0x52,0x0,0x78,0x0,0x79,0x0,0x80,0x0,0x83,0x0, +0x63,0x0,0x4f,0x0,0x45,0x0,0x18,0x0,0xf3,0xff,0xf3,0xff, +0x3,0x0,0x16,0x0,0x25,0x0,0x35,0x0,0x50,0x0,0x51,0x0, +0x3d,0x0,0x3e,0x0,0x3b,0x0,0x1a,0x0,0x3,0x0,0xf,0x0, +0x29,0x0,0x37,0x0,0x30,0x0,0x34,0x0,0x47,0x0,0x49,0x0, +0x49,0x0,0x51,0x0,0x3f,0x0,0x24,0x0,0x19,0x0,0x9,0x0, +0xfc,0xff,0xb,0x0,0x24,0x0,0x3d,0x0,0x53,0x0,0x58,0x0, +0x4d,0x0,0x42,0x0,0x47,0x0,0x54,0x0,0x46,0x0,0x22,0x0, +0x12,0x0,0x6,0x0,0xef,0xff,0xe6,0xff,0xdf,0xff,0xd3,0xff, +0xe0,0xff,0xed,0xff,0xe6,0xff,0xed,0xff,0xf3,0xff,0xde,0xff, +0xcf,0xff,0xcb,0xff,0xc4,0xff,0xc7,0xff,0xce,0xff,0xce,0xff, +0xd7,0xff,0xd9,0xff,0xcb,0xff,0xc4,0xff,0xc1,0xff,0xb7,0xff, +0xc6,0xff,0xe0,0xff,0xd4,0xff,0xba,0xff,0xb9,0xff,0xb8,0xff, +0xab,0xff,0xb5,0xff,0xc3,0xff,0xb7,0xff,0xb9,0xff,0xd9,0xff, +0xe1,0xff,0xd1,0xff,0xd3,0xff,0xd5,0xff,0xc4,0xff,0xc1,0xff, +0xd0,0xff,0xd7,0xff,0xd6,0xff,0xcc,0xff,0xb3,0xff,0x99,0xff, +0x8d,0xff,0x8f,0xff,0x8b,0xff,0x82,0xff,0x87,0xff,0x81,0xff, +0x5e,0xff,0x44,0xff,0x2e,0xff,0x9,0xff,0x10,0xff,0x47,0xff, +0x63,0xff,0x7a,0xff,0xad,0xff,0xc7,0xff,0xcf,0xff,0xf7,0xff, +0x11,0x0,0x2,0x0,0xf2,0xff,0xe9,0xff,0xeb,0xff,0xfa,0xff, +0xf6,0xff,0xe2,0xff,0xd7,0xff,0xcd,0xff,0xd2,0xff,0xf3,0xff, +0xfc,0xff,0xdf,0xff,0xbe,0xff,0xa8,0xff,0xa5,0xff,0xa1,0xff, +0x77,0xff,0x6a,0xff,0xa9,0xff,0xce,0xff,0xc3,0xff,0xdf,0xff, +0xfb,0xff,0xe1,0xff,0xe3,0xff,0xb,0x0,0x10,0x0,0x1,0x0, +0xeb,0xff,0xb2,0xff,0x83,0xff,0x7b,0xff,0x78,0xff,0x8d,0xff, +0xcc,0xff,0xf2,0xff,0xea,0xff,0xe6,0xff,0xe5,0xff,0xc6,0xff, +0x94,0xff,0x75,0xff,0x77,0xff,0x86,0xff,0x8c,0xff,0x88,0xff, +0x88,0xff,0x99,0xff,0xb9,0xff,0xd0,0xff,0xe0,0xff,0xfa,0xff, +0xc,0x0,0x4,0x0,0xfe,0xff,0xf8,0xff,0xde,0xff,0xd5,0xff, +0xea,0xff,0xf0,0xff,0xe5,0xff,0xee,0xff,0xe,0x0,0x41,0x0, +0x73,0x0,0x81,0x0,0x75,0x0,0x64,0x0,0x38,0x0,0xb,0x0, +0xd,0x0,0x16,0x0,0x3,0x0,0x10,0x0,0x3d,0x0,0x4c,0x0, +0x58,0x0,0x7b,0x0,0x84,0x0,0x74,0x0,0x6f,0x0,0x58,0x0, +0x3b,0x0,0x49,0x0,0x54,0x0,0x2b,0x0,0xa,0x0,0xd,0x0, +0x22,0x0,0x51,0x0,0x7e,0x0,0x81,0x0,0x86,0x0,0x95,0x0, +0x72,0x0,0x40,0x0,0x2f,0x0,0x17,0x0,0xff,0xff,0x14,0x0, +0x2e,0x0,0x35,0x0,0x46,0x0,0x4b,0x0,0x43,0x0,0x54,0x0, +0x65,0x0,0x58,0x0,0x4b,0x0,0x41,0x0,0x2e,0x0,0x2a,0x0, +0x2a,0x0,0x22,0x0,0x2e,0x0,0x3e,0x0,0x3d,0x0,0x50,0x0, +0x67,0x0,0x51,0x0,0x3a,0x0,0x3e,0x0,0x31,0x0,0x25,0x0, +0x36,0x0,0x40,0x0,0x40,0x0,0x48,0x0,0x41,0x0,0x32,0x0, +0x28,0x0,0x3,0x0,0xf0,0xff,0x1a,0x0,0x35,0x0,0x2f,0x0, +0x4f,0x0,0x6d,0x0,0x4b,0x0,0x20,0x0,0x7,0x0,0xfa,0xff, +0x12,0x0,0x2a,0x0,0x1a,0x0,0x23,0x0,0x45,0x0,0x39,0x0, +0x26,0x0,0x3d,0x0,0x48,0x0,0x47,0x0,0x4f,0x0,0x3f,0x0, +0x29,0x0,0x32,0x0,0x2e,0x0,0x20,0x0,0x23,0x0,0x10,0x0, +0xf0,0xff,0x8,0x0,0x3b,0x0,0x45,0x0,0x36,0x0,0x1f,0x0, +0xfc,0xff,0xe6,0xff,0xe1,0xff,0xd8,0xff,0xd8,0xff,0xe5,0xff, +0xeb,0xff,0xeb,0xff,0xf0,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff, +0xe8,0xff,0xc2,0xff,0xaa,0xff,0xc5,0xff,0xdb,0xff,0xc7,0xff, +0xc0,0xff,0xd6,0xff,0xdf,0xff,0xf0,0xff,0x4,0x0,0xe3,0xff, +0xc2,0xff,0xd6,0xff,0xd5,0xff,0xbd,0xff,0xd2,0xff,0xe7,0xff, +0xe1,0xff,0xfb,0xff,0x12,0x0,0xff,0xff,0xf8,0xff,0xf7,0xff, +0xe8,0xff,0xf5,0xff,0xf6,0xff,0xca,0xff,0xca,0xff,0xf0,0xff, +0xe6,0xff,0xe4,0xff,0x1,0x0,0xdb,0xff,0x98,0xff,0x93,0xff, +0x95,0xff,0x73,0xff,0x5c,0xff,0x4e,0xff,0x47,0xff,0x5d,0xff, +0x7d,0xff,0x8c,0xff,0x87,0xff,0x76,0xff,0x82,0xff,0xa9,0xff, +0xad,0xff,0x99,0xff,0xa4,0xff,0xb6,0xff,0xa8,0xff,0x82,0xff, +0x4f,0xff,0x2d,0xff,0x36,0xff,0x53,0xff,0x78,0xff,0xa1,0xff, +0xa5,0xff,0x8c,0xff,0x90,0xff,0x9f,0xff,0x8c,0xff,0x6c,0xff, +0x64,0xff,0x84,0xff,0xbe,0xff,0xdc,0xff,0xd9,0xff,0xda,0xff, +0xc8,0xff,0x9c,0xff,0x9b,0xff,0xc9,0xff,0xeb,0xff,0xf5,0xff, +0xef,0xff,0xe6,0xff,0xe7,0xff,0xd4,0xff,0xa6,0xff,0x8f,0xff, +0x9d,0xff,0xb7,0xff,0xd3,0xff,0xce,0xff,0xad,0xff,0xae,0xff, +0xb5,0xff,0x97,0xff,0x9a,0xff,0xbb,0xff,0xb7,0xff,0xc9,0xff, +0xa,0x0,0xe,0x0,0xd9,0xff,0xbf,0xff,0xb3,0xff,0xb9,0xff, +0xe8,0xff,0xfc,0xff,0xea,0xff,0xf3,0xff,0xf2,0xff,0xd6,0xff, +0xdc,0xff,0xf6,0xff,0x10,0x0,0x49,0x0,0x6c,0x0,0x5b,0x0, +0x6f,0x0,0x96,0x0,0x5c,0x0,0x1,0x0,0xfd,0xff,0x25,0x0, +0x3e,0x0,0x57,0x0,0x6e,0x0,0x6a,0x0,0x52,0x0,0x38,0x0, +0x2a,0x0,0x30,0x0,0x3e,0x0,0x4e,0x0,0x69,0x0,0x8d,0x0, +0x9b,0x0,0x82,0x0,0x5b,0x0,0x44,0x0,0x41,0x0,0x5a,0x0, +0x82,0x0,0x93,0x0,0x98,0x0,0xaa,0x0,0xa9,0x0,0x84,0x0, +0x5d,0x0,0x3d,0x0,0x2a,0x0,0x46,0x0,0x74,0x0,0x84,0x0, +0x8c,0x0,0x93,0x0,0x83,0x0,0x81,0x0,0x99,0x0,0x9e,0x0, +0x9f,0x0,0xba,0x0,0xbd,0x0,0x9a,0x0,0x86,0x0,0x82,0x0, +0x75,0x0,0x72,0x0,0x78,0x0,0x76,0x0,0x78,0x0,0x7e,0x0, +0x79,0x0,0x6e,0x0,0x5f,0x0,0x4e,0x0,0x53,0x0,0x62,0x0, +0x5c,0x0,0x5f,0x0,0x80,0x0,0x83,0x0,0x58,0x0,0x44,0x0, +0x4f,0x0,0x42,0x0,0x2f,0x0,0x3e,0x0,0x4d,0x0,0x44,0x0, +0x3a,0x0,0x2d,0x0,0x18,0x0,0x1a,0x0,0x2b,0x0,0x26,0x0, +0x15,0x0,0xc,0x0,0x1,0x0,0xf7,0xff,0x1,0x0,0x21,0x0, +0x50,0x0,0x6f,0x0,0x54,0x0,0x1e,0x0,0x10,0x0,0x22,0x0, +0x1d,0x0,0x2,0x0,0xf0,0xff,0xf8,0xff,0x1e,0x0,0x47,0x0, +0x4e,0x0,0x3f,0x0,0x2f,0x0,0x18,0x0,0x2,0x0,0xff,0xff, +0xf9,0xff,0xe6,0xff,0xf1,0xff,0x14,0x0,0x15,0x0,0xf6,0xff, +0xe0,0xff,0xd4,0xff,0xda,0xff,0xff,0xff,0x16,0x0,0xfb,0xff, +0xd6,0xff,0xcf,0xff,0xd4,0xff,0xda,0xff,0xe9,0xff,0xef,0xff, +0xe2,0xff,0xd4,0xff,0xcf,0xff,0xd5,0xff,0xe1,0xff,0xdb,0xff, +0xc5,0xff,0xbe,0xff,0xbb,0xff,0xa2,0xff,0xa0,0xff,0xd3,0xff, +0xf5,0xff,0xdf,0xff,0xd0,0xff,0xe0,0xff,0xe5,0xff,0xd7,0xff, +0xcd,0xff,0xd0,0xff,0xe8,0xff,0xfd,0xff,0xd7,0xff,0x95,0xff, +0x8d,0xff,0xa8,0xff,0xa1,0xff,0x90,0xff,0x99,0xff,0xa3,0xff, +0xa6,0xff,0xb1,0xff,0xaa,0xff,0x91,0xff,0x8c,0xff,0x90,0xff, +0x7b,0xff,0x69,0xff,0x73,0xff,0x82,0xff,0x82,0xff,0x7e,0xff, +0x7a,0xff,0x74,0xff,0x72,0xff,0x7e,0xff,0x8a,0xff,0x83,0xff, +0x7c,0xff,0x9f,0xff,0xc3,0xff,0xa9,0xff,0x7f,0xff,0x88,0xff, +0x9c,0xff,0x92,0xff,0x99,0xff,0xb4,0xff,0xba,0xff,0xc3,0xff, +0xd5,0xff,0xbd,0xff,0x91,0xff,0x92,0xff,0xa9,0xff,0xb3,0xff, +0xd0,0xff,0xef,0xff,0xec,0xff,0xe5,0xff,0xe8,0xff,0xcd,0xff, +0xae,0xff,0xbb,0xff,0xd8,0xff,0xe1,0xff,0xf1,0xff,0x10,0x0, +0x2d,0x0,0x39,0x0,0x1d,0x0,0xe1,0xff,0xc6,0xff,0xdb,0xff, +0xe8,0xff,0xe9,0xff,0x2,0x0,0x21,0x0,0x20,0x0,0x3,0x0, +0xe3,0xff,0xcd,0xff,0xc7,0xff,0xd5,0xff,0xfa,0xff,0x2c,0x0, +0x46,0x0,0x36,0x0,0x19,0x0,0x9,0x0,0xe,0x0,0x2b,0x0, +0x4a,0x0,0x58,0x0,0x6b,0x0,0x7a,0x0,0x5a,0x0,0x25,0x0, +0x11,0x0,0x5,0x0,0xeb,0xff,0xf7,0xff,0x27,0x0,0x3c,0x0, +0x36,0x0,0x33,0x0,0x23,0x0,0xd,0x0,0x11,0x0,0x1b,0x0, +0x17,0x0,0x24,0x0,0x44,0x0,0x55,0x0,0x59,0x0,0x56,0x0, +0x44,0x0,0x36,0x0,0x44,0x0,0x5e,0x0,0x78,0x0,0x91,0x0, +0x92,0x0,0x77,0x0,0x66,0x0,0x5f,0x0,0x52,0x0,0x4f,0x0, +0x5e,0x0,0x6f,0x0,0x87,0x0,0x90,0x0,0x64,0x0,0x2c,0x0, +0x2d,0x0,0x4f,0x0,0x62,0x0,0x79,0x0,0x98,0x0,0xa0,0x0, +0x9b,0x0,0x9a,0x0,0x8c,0x0,0x71,0x0,0x64,0x0,0x67,0x0, +0x75,0x0,0x87,0x0,0x8b,0x0,0x81,0x0,0x78,0x0,0x61,0x0, +0x43,0x0,0x45,0x0,0x5a,0x0,0x54,0x0,0x4d,0x0,0x60,0x0, +0x6a,0x0,0x5e,0x0,0x51,0x0,0x3c,0x0,0x23,0x0,0x27,0x0, +0x3b,0x0,0x3a,0x0,0x38,0x0,0x41,0x0,0x3c,0x0,0x2d,0x0, +0x21,0x0,0xf,0x0,0x5,0x0,0x18,0x0,0x31,0x0,0x34,0x0, +0x2a,0x0,0x17,0x0,0xb,0x0,0x17,0x0,0x1c,0x0,0x6,0x0, +0x0,0x0,0x10,0x0,0x6,0x0,0xf6,0xff,0x6,0x0,0x8,0x0, +0xe4,0xff,0xd2,0xff,0xe3,0xff,0xf1,0xff,0xfa,0xff,0xfe,0xff, +0xf1,0xff,0xe4,0xff,0xe5,0xff,0xe8,0xff,0xed,0xff,0xef,0xff, +0xe0,0xff,0xde,0xff,0xf6,0xff,0xf9,0xff,0xde,0xff,0xdc,0xff, +0xea,0xff,0xe4,0xff,0xdf,0xff,0xeb,0xff,0xec,0xff,0xeb,0xff, +0xf1,0xff,0xe4,0xff,0xcd,0xff,0xce,0xff,0xd1,0xff,0xcd,0xff, +0xdd,0xff,0xf8,0xff,0x2,0x0,0x4,0x0,0x1,0x0,0xf3,0xff, +0xee,0xff,0xea,0xff,0xce,0xff,0xb8,0xff,0xbf,0xff,0xc8,0xff, +0xd2,0xff,0xe7,0xff,0xde,0xff,0xbd,0xff,0xbc,0xff,0xce,0xff, +0xc6,0xff,0xc2,0xff,0xd4,0xff,0xde,0xff,0xd2,0xff,0xc3,0xff, +0xbd,0xff,0xb9,0xff,0xad,0xff,0x98,0xff,0x91,0xff,0xa0,0xff, +0xac,0xff,0xad,0xff,0xaf,0xff,0xaa,0xff,0x8b,0xff,0x6a,0xff, +0x71,0xff,0x91,0xff,0xa1,0xff,0xa5,0xff,0x9b,0xff,0x7c,0xff, +0x6b,0xff,0x73,0xff,0x6a,0xff,0x65,0xff,0x8c,0xff,0xba,0xff, +0xe2,0xff,0x11,0x0,0xf,0x0,0xca,0xff,0x91,0xff,0x7c,0xff, +0x6a,0xff,0x63,0xff,0x62,0xff,0x6a,0xff,0xa3,0xff,0xd7,0xff, +0xb7,0xff,0x83,0xff,0x7a,0xff,0x79,0xff,0x8e,0xff,0xc5,0xff, +0xe8,0xff,0xf0,0xff,0xfd,0xff,0xf0,0xff,0xc6,0xff,0xac,0xff, +0x9b,0xff,0x8a,0xff,0x8f,0xff,0xa9,0xff,0xd7,0xff,0x9,0x0, +0x10,0x0,0xef,0xff,0xdb,0xff,0xd7,0xff,0xc9,0xff,0xbd,0xff, +0xc6,0xff,0xe2,0xff,0xf4,0xff,0xea,0xff,0xe7,0xff,0xf3,0xff, +0xde,0xff,0xb1,0xff,0xa2,0xff,0xa8,0xff,0xb2,0xff,0xbd,0xff, +0xb7,0xff,0xbd,0xff,0xee,0xff,0x11,0x0,0x8,0x0,0xfc,0xff, +0xe4,0xff,0xc7,0xff,0xdd,0xff,0xfb,0xff,0xee,0xff,0xe8,0xff, +0xfa,0xff,0xfd,0xff,0xd,0x0,0x1e,0x0,0x3,0x0,0xf1,0xff, +0x7,0x0,0x13,0x0,0x1e,0x0,0x38,0x0,0x3a,0x0,0x3b,0x0, +0x51,0x0,0x3d,0x0,0xf,0x0,0x14,0x0,0x2a,0x0,0x27,0x0, +0x28,0x0,0x2f,0x0,0x2f,0x0,0x3a,0x0,0x3f,0x0,0x3b,0x0, +0x50,0x0,0x67,0x0,0x5f,0x0,0x62,0x0,0x81,0x0,0x91,0x0, +0x92,0x0,0x93,0x0,0x8d,0x0,0x8a,0x0,0x89,0x0,0x7f,0x0, +0x86,0x0,0x9b,0x0,0xa1,0x0,0xa8,0x0,0xa4,0x0,0x89,0x0, +0x81,0x0,0x83,0x0,0x77,0x0,0x76,0x0,0x74,0x0,0x72,0x0, +0x8b,0x0,0x8c,0x0,0x6c,0x0,0x6d,0x0,0x68,0x0,0x46,0x0, +0x44,0x0,0x50,0x0,0x56,0x0,0x6d,0x0,0x72,0x0,0x50,0x0, +0x39,0x0,0x31,0x0,0x26,0x0,0x2a,0x0,0x3e,0x0,0x47,0x0, +0x52,0x0,0x7b,0x0,0x8c,0x0,0x70,0x0,0x5e,0x0,0x4b,0x0, +0x27,0x0,0x1a,0x0,0x15,0x0,0x11,0x0,0x29,0x0,0x2f,0x0, +0x29,0x0,0x45,0x0,0x4c,0x0,0x39,0x0,0x41,0x0,0x42,0x0, +0x3f,0x0,0x40,0x0,0x21,0x0,0x9,0x0,0x10,0x0,0x15,0x0, +0x32,0x0,0x4f,0x0,0x46,0x0,0x41,0x0,0x38,0x0,0x2f,0x0, +0x3f,0x0,0x28,0x0,0x1,0x0,0x13,0x0,0x17,0x0,0x9,0x0, +0x1e,0x0,0x23,0x0,0x17,0x0,0x16,0x0,0x1,0x0,0xf7,0xff, +0x1,0x0,0xef,0xff,0xdc,0xff,0xdc,0xff,0xe2,0xff,0xf9,0xff, +0xff,0xff,0xe7,0xff,0xd7,0xff,0xca,0xff,0xbe,0xff,0xbe,0xff, +0xca,0xff,0xe1,0xff,0xe7,0xff,0xd4,0xff,0xcb,0xff,0xc1,0xff, +0xc5,0xff,0xe5,0xff,0xe8,0xff,0xdd,0xff,0xf0,0xff,0xe8,0xff, +0xc8,0xff,0xb9,0xff,0xa5,0xff,0x9a,0xff,0xa4,0xff,0xbc,0xff, +0xe6,0xff,0xf2,0xff,0xea,0xff,0x0,0x0,0xde,0xff,0x93,0xff, +0x9c,0xff,0xa7,0xff,0x89,0xff,0xa3,0xff,0xbb,0xff,0xaf,0xff, +0xc5,0xff,0xcd,0xff,0xb3,0xff,0xa1,0xff,0x8e,0xff,0x8b,0xff, +0x9d,0xff,0xae,0xff,0xd5,0xff,0xee,0xff,0xd5,0xff,0xb8,0xff, +0x95,0xff,0x6d,0xff,0x54,0xff,0x2f,0xff,0x21,0xff,0x4c,0xff, +0x76,0xff,0x94,0xff,0xb2,0xff,0xbb,0xff,0xba,0xff,0xb1,0xff, +0xa9,0xff,0xa0,0xff,0x74,0xff,0x55,0xff,0x4a,0xff,0x11,0xff, +0xf0,0xfe,0xf8,0xfe,0xe0,0xfe,0xff,0xfe,0x70,0xff,0xdb,0xff, +0x5f,0x0,0xd5,0x0,0x0,0x1,0x18,0x1,0xf5,0x0,0x7c,0x0, +0x3,0x0,0x81,0xff,0xf8,0xfe,0xb9,0xfe,0xb9,0xfe,0xd9,0xfe, +0x16,0xff,0x5b,0xff,0xab,0xff,0xf2,0xff,0x12,0x0,0x18,0x0, +0xf,0x0,0x2,0x0,0xec,0xff,0xcc,0xff,0xd1,0xff,0xe8,0xff, +0xe9,0xff,0xf0,0xff,0xf9,0xff,0xfb,0xff,0xf2,0xff,0xc5,0xff, +0xb6,0xff,0xd5,0xff,0xc5,0xff,0xba,0xff,0xde,0xff,0xec,0xff, +0x8,0x0,0x2e,0x0,0x2c,0x0,0x43,0x0,0x60,0x0,0x4d,0x0, +0x4a,0x0,0x4c,0x0,0x30,0x0,0x1f,0x0,0xe,0x0,0xf1,0xff, +0xe4,0xff,0xf7,0xff,0x27,0x0,0x47,0x0,0x60,0x0,0xa4,0x0, +0xc0,0x0,0x9d,0x0,0x97,0x0,0x81,0x0,0x3d,0x0,0x11,0x0, +0xfc,0xff,0xf1,0xff,0xf,0x0,0x45,0x0,0x7a,0x0,0x95,0x0, +0x9b,0x0,0xa1,0x0,0x9c,0x0,0x8e,0x0,0x72,0x0,0x3d,0x0, +0x2b,0x0,0x41,0x0,0x4d,0x0,0x59,0x0,0x59,0x0,0x59,0x0, +0x7d,0x0,0x82,0x0,0x6a,0x0,0x76,0x0,0x73,0x0,0x68,0x0, +0x79,0x0,0x68,0x0,0x64,0x0,0x80,0x0,0x70,0x0,0x66,0x0, +0x69,0x0,0x4a,0x0,0x5d,0x0,0x82,0x0,0x70,0x0,0x76,0x0, +0x81,0x0,0x6e,0x0,0x7d,0x0,0x78,0x0,0x5c,0x0,0x74,0x0, +0x7d,0x0,0x66,0x0,0x6d,0x0,0x67,0x0,0x4d,0x0,0x50,0x0, +0x58,0x0,0x4c,0x0,0x42,0x0,0x52,0x0,0x62,0x0,0x62,0x0, +0x80,0x0,0x95,0x0,0x67,0x0,0x45,0x0,0x3b,0x0,0x1e,0x0, +0x22,0x0,0x34,0x0,0x28,0x0,0x2b,0x0,0x33,0x0,0x32,0x0, +0x40,0x0,0x36,0x0,0x21,0x0,0x29,0x0,0x3b,0x0,0x4e,0x0, +0x4d,0x0,0x32,0x0,0x2b,0x0,0x28,0x0,0x1c,0x0,0x26,0x0, +0x16,0x0,0xfa,0xff,0xe,0x0,0x12,0x0,0xfa,0xff,0x1,0x0, +0x5,0x0,0xff,0xff,0x0,0x0,0xf5,0xff,0x3,0x0,0x29,0x0, +0x2c,0x0,0x24,0x0,0x2a,0x0,0x29,0x0,0x27,0x0,0x14,0x0, +0xfa,0xff,0x2,0x0,0xfc,0xff,0xde,0xff,0xe8,0xff,0xe5,0xff, +0xc4,0xff,0xdd,0xff,0xa,0x0,0x9,0x0,0x13,0x0,0x1d,0x0, +0x1,0x0,0xf0,0xff,0xe6,0xff,0xd4,0xff,0xd3,0xff,0xcb,0xff, +0xc5,0xff,0xd5,0xff,0xd2,0xff,0xcb,0xff,0xc7,0xff,0xa1,0xff, +0x95,0xff,0xb2,0xff,0xa3,0xff,0x8a,0xff,0x99,0xff,0x9d,0xff, +0x95,0xff,0x97,0xff,0x9b,0xff,0xa2,0xff,0x97,0xff,0x97,0xff, +0xb7,0xff,0xb9,0xff,0xa2,0xff,0x89,0xff,0x61,0xff,0x68,0xff, +0x8a,0xff,0x6b,0xff,0x4d,0xff,0x62,0xff,0x74,0xff,0x89,0xff, +0x86,0xff,0x5f,0xff,0x6a,0xff,0x86,0xff,0x81,0xff,0x76,0xff, +0x4f,0xff,0x39,0xff,0x5d,0xff,0x54,0xff,0x3f,0xff,0x59,0xff, +0x40,0xff,0x38,0xff,0x7c,0xff,0x7c,0xff,0x69,0xff,0x94,0xff, +0x88,0xff,0x6b,0xff,0x80,0xff,0x83,0xff,0x8f,0xff,0x91,0xff, +0x64,0xff,0x71,0xff,0x83,0xff,0x51,0xff,0x58,0xff,0x72,0xff, +0x5e,0xff,0x78,0xff,0x7f,0xff,0x61,0xff,0x94,0xff,0xa8,0xff, +0x7f,0xff,0xb1,0xff,0xdb,0xff,0xb4,0xff,0xb3,0xff,0xb3,0xff, +0x97,0xff,0x9e,0xff,0x96,0xff,0x92,0xff,0xc5,0xff,0xdb,0xff, +0xde,0xff,0xf8,0xff,0xe3,0xff,0xbf,0xff,0xc9,0xff,0xd9,0xff, +0xf6,0xff,0x9,0x0,0xe9,0xff,0xdf,0xff,0xe1,0xff,0xb0,0xff, +0xa5,0xff,0xcf,0xff,0xcd,0xff,0xd6,0xff,0xa,0x0,0x17,0x0, +0x1b,0x0,0x3b,0x0,0x48,0x0,0x59,0x0,0x72,0x0,0x5c,0x0, +0x4d,0x0,0x6a,0x0,0x76,0x0,0x71,0x0,0x6c,0x0,0x57,0x0, +0x54,0x0,0x63,0x0,0x5d,0x0,0x63,0x0,0x7b,0x0,0x7f,0x0, +0x7a,0x0,0x74,0x0,0x7f,0x0,0x9b,0x0,0x80,0x0,0x53,0x0, +0x73,0x0,0x97,0x0,0x8f,0x0,0x91,0x0,0x88,0x0,0x89,0x0, +0xc0,0x0,0xdb,0x0,0xd5,0x0,0xf4,0x0,0x2,0x1,0xe5,0x0, +0xbf,0x0,0x75,0x0,0x3f,0x0,0x5a,0x0,0x61,0x0,0x3f,0x0, +0x42,0x0,0x66,0x0,0x7f,0x0,0x75,0x0,0x5f,0x0,0x74,0x0, +0x8b,0x0,0x78,0x0,0x81,0x0,0x9f,0x0,0x94,0x0,0x83,0x0, +0x75,0x0,0x62,0x0,0x74,0x0,0x77,0x0,0x51,0x0,0x5b,0x0, +0x6c,0x0,0x4a,0x0,0x4f,0x0,0x6b,0x0,0x53,0x0,0x4f,0x0, +0x6c,0x0,0x69,0x0,0x62,0x0,0x59,0x0,0x32,0x0,0x18,0x0, +0xf,0x0,0xfc,0xff,0x4,0x0,0x1b,0x0,0x25,0x0,0x2a,0x0, +0x16,0x0,0xfb,0xff,0xfc,0xff,0xfd,0xff,0x2,0x0,0x1d,0x0, +0x23,0x0,0x30,0x0,0x5d,0x0,0x63,0x0,0x59,0x0,0x62,0x0, +0x3a,0x0,0x11,0x0,0x2c,0x0,0x28,0x0,0xf9,0xff,0xfa,0xff, +0x2,0x0,0xfa,0xff,0x6,0x0,0xff,0xff,0xea,0xff,0xf6,0xff, +0xfa,0xff,0xea,0xff,0xe6,0xff,0xda,0xff,0xd1,0xff,0xd4,0xff, +0xc4,0xff,0xb8,0xff,0xcd,0xff,0xea,0xff,0x2,0x0,0xff,0xff, +0xe9,0xff,0xf6,0xff,0x9,0x0,0xf2,0xff,0xe9,0xff,0xf0,0xff, +0xd5,0xff,0xc6,0xff,0xd3,0xff,0xdc,0xff,0xf5,0xff,0xb,0x0, +0xa,0x0,0x21,0x0,0x2b,0x0,0xed,0xff,0xbd,0xff,0xba,0xff, +0xa1,0xff,0x85,0xff,0x90,0xff,0x9e,0xff,0x95,0xff,0x83,0xff, +0x7b,0xff,0x82,0xff,0x81,0xff,0x7c,0xff,0x85,0xff,0x8c,0xff, +0x88,0xff,0x82,0xff,0x6f,0xff,0x62,0xff,0x76,0xff,0x83,0xff, +0x73,0xff,0x63,0xff,0x61,0xff,0x6d,0xff,0x84,0xff,0x8e,0xff, +0x8a,0xff,0x8e,0xff,0x93,0xff,0x8b,0xff,0x78,0xff,0x66,0xff, +0x68,0xff,0x72,0xff,0x62,0xff,0x51,0xff,0x60,0xff,0x78,0xff, +0x79,0xff,0x6f,0xff,0x5e,0xff,0x4a,0xff,0x50,0xff,0x72,0xff, +0x7f,0xff,0x63,0xff,0x52,0xff,0x65,0xff,0x73,0xff,0x69,0xff, +0x6d,0xff,0x89,0xff,0x9a,0xff,0x96,0xff,0x94,0xff,0x98,0xff, +0x93,0xff,0x89,0xff,0x8e,0xff,0xa6,0xff,0xbe,0xff,0xc1,0xff, +0xad,0xff,0x96,0xff,0x8c,0xff,0x8c,0xff,0x92,0xff,0x98,0xff, +0x88,0xff,0x68,0xff,0x67,0xff,0x92,0xff,0xb3,0xff,0xbf,0xff, +0xe0,0xff,0x11,0x0,0x18,0x0,0x1,0x0,0xc,0x0,0x34,0x0, +0x38,0x0,0x13,0x0,0xfc,0xff,0xfa,0xff,0xf3,0xff,0xf0,0xff, +0xfc,0xff,0x1,0x0,0x0,0x0,0x15,0x0,0x31,0x0,0x34,0x0, +0x28,0x0,0x26,0x0,0x37,0x0,0x4e,0x0,0x48,0x0,0x26,0x0, +0x22,0x0,0x45,0x0,0x57,0x0,0x53,0x0,0x60,0x0,0x6e,0x0, +0x59,0x0,0x34,0x0,0x2b,0x0,0x45,0x0,0x5e,0x0,0x64,0x0, +0x6f,0x0,0x80,0x0,0x83,0x0,0x8c,0x0,0xa3,0x0,0xab,0x0, +0xb1,0x0,0xc8,0x0,0xcc,0x0,0xc2,0x0,0xcd,0x0,0xc9,0x0, +0xa1,0x0,0x91,0x0,0x96,0x0,0x82,0x0,0x75,0x0,0x88,0x0, +0x90,0x0,0x92,0x0,0xb4,0x0,0xe9,0x0,0xd,0x1,0xa,0x1, +0xee,0x0,0xdf,0x0,0xdd,0x0,0xc5,0x0,0xa6,0x0,0x94,0x0, +0x8a,0x0,0x95,0x0,0xa2,0x0,0x8c,0x0,0x80,0x0,0x9c,0x0, +0x98,0x0,0x71,0x0,0x6e,0x0,0x75,0x0,0x65,0x0,0x66,0x0, +0x6e,0x0,0x5c,0x0,0x52,0x0,0x55,0x0,0x48,0x0,0x45,0x0, +0x58,0x0,0x5d,0x0,0x51,0x0,0x44,0x0,0x3f,0x0,0x51,0x0, +0x5d,0x0,0x4b,0x0,0x3f,0x0,0x4a,0x0,0x46,0x0,0x3b,0x0, +0x31,0x0,0x11,0x0,0x1,0x0,0x1c,0x0,0x29,0x0,0x1f,0x0, +0x24,0x0,0x19,0x0,0xff,0xff,0xb,0x0,0x33,0x0,0x4d,0x0, +0x5b,0x0,0x4e,0x0,0x2b,0x0,0x1e,0x0,0x19,0x0,0x3,0x0, +0xa,0x0,0x32,0x0,0x43,0x0,0x45,0x0,0x4a,0x0,0x3c,0x0, +0x24,0x0,0xb,0x0,0xf1,0xff,0xf5,0xff,0xf,0x0,0xa,0x0, +0xf8,0xff,0x0,0x0,0x4,0x0,0xf5,0xff,0xe5,0xff,0xd1,0xff, +0xd0,0xff,0xe3,0xff,0xd8,0xff,0xc0,0xff,0xd5,0xff,0xea,0xff, +0xdb,0xff,0xda,0xff,0xdf,0xff,0xbf,0xff,0xa6,0xff,0xae,0xff, +0xb6,0xff,0xb2,0xff,0xa0,0xff,0x80,0xff,0x6b,0xff,0x5e,0xff, +0x47,0xff,0x41,0xff,0x45,0xff,0x33,0xff,0x1f,0xff,0x17,0xff, +0xb,0xff,0xe,0xff,0x12,0xff,0xf7,0xfe,0x2,0xff,0x57,0xff, +0x96,0xff,0x9f,0xff,0xaf,0xff,0xaf,0xff,0x89,0xff,0x7c,0xff, +0x85,0xff,0x6f,0xff,0x54,0xff,0x4f,0xff,0x47,0xff,0x3b,0xff, +0x3b,0xff,0x3c,0xff,0x32,0xff,0x1d,0xff,0xf,0xff,0x1b,0xff, +0x27,0xff,0xf,0xff,0xf8,0xfe,0xd,0xff,0x37,0xff,0x53,0xff, +0x59,0xff,0x5d,0xff,0x85,0xff,0xc5,0xff,0xde,0xff,0xc6,0xff, +0xab,0xff,0x9f,0xff,0x95,0xff,0x8d,0xff,0x90,0xff,0x96,0xff, +0x8e,0xff,0x80,0xff,0x82,0xff,0x88,0xff,0x7e,0xff,0x85,0xff, +0xa4,0xff,0xb0,0xff,0xb1,0xff,0xc7,0xff,0xcf,0xff,0xb7,0xff, +0xc4,0xff,0xfd,0xff,0x1f,0x0,0x22,0x0,0x21,0x0,0x17,0x0, +0xd,0x0,0xb,0x0,0xfc,0xff,0xe3,0xff,0xd6,0xff,0xc0,0xff, +0x9e,0xff,0xa8,0xff,0xe3,0xff,0x4,0x0,0x1,0x0,0x14,0x0, +0x3b,0x0,0x41,0x0,0x20,0x0,0x1,0x0,0xff,0xff,0x12,0x0, +0x29,0x0,0x3c,0x0,0x51,0x0,0x61,0x0,0x5d,0x0,0x53,0x0, +0x58,0x0,0x5d,0x0,0x58,0x0,0x5d,0x0,0x76,0x0,0x91,0x0, +0x9b,0x0,0x8f,0x0,0x7f,0x0,0x87,0x0,0x9d,0x0,0x9f,0x0, +0x93,0x0,0x93,0x0,0x9a,0x0,0x9c,0x0,0xa0,0x0,0xa5,0x0, +0xa7,0x0,0xb7,0x0,0xca,0x0,0xc4,0x0,0xbd,0x0,0xd6,0x0, +0xef,0x0,0xe8,0x0,0xe3,0x0,0xea,0x0,0xd7,0x0,0xbc,0x0, +0xbe,0x0,0xc1,0x0,0xb1,0x0,0xa8,0x0,0xac,0x0,0xb3,0x0, +0xc6,0x0,0xd2,0x0,0xc2,0x0,0xbb,0x0,0xc5,0x0,0xb4,0x0, +0x8d,0x0,0x82,0x0,0x92,0x0,0xa1,0x0,0xa9,0x0,0xae,0x0, +0xb0,0x0,0xad,0x0,0xab,0x0,0xa4,0x0,0x91,0x0,0x7e,0x0, +0x7c,0x0,0x82,0x0,0x87,0x0,0x9a,0x0,0xaa,0x0,0x9f,0x0, +0x90,0x0,0x84,0x0,0x60,0x0,0x38,0x0,0x26,0x0,0x27,0x0, +0x3c,0x0,0x53,0x0,0x4f,0x0,0x46,0x0,0x45,0x0,0x32,0x0, +0x2c,0x0,0x52,0x0,0x71,0x0,0x65,0x0,0x4f,0x0,0x38,0x0, +0x28,0x0,0x2e,0x0,0x2c,0x0,0x18,0x0,0x12,0x0,0xa,0x0, +0xf0,0xff,0xeb,0xff,0xfb,0xff,0xf3,0xff,0xe1,0xff,0xe3,0xff, +0xec,0xff,0xe5,0xff,0xd4,0xff,0xd0,0xff,0xde,0xff,0xe1,0xff, +0xe1,0xff,0xf3,0xff,0xf6,0xff,0xe1,0xff,0xe3,0xff,0xeb,0xff, +0xe0,0xff,0xec,0xff,0x2,0x0,0xf9,0xff,0xf9,0xff,0x10,0x0, +0x9,0x0,0xf8,0xff,0xff,0xff,0xfa,0xff,0xe7,0xff,0xdb,0xff, +0xbb,0xff,0x9a,0xff,0xaa,0xff,0xc4,0xff,0xc1,0xff,0xbe,0xff, +0xba,0xff,0xa6,0xff,0x99,0xff,0x98,0xff,0x8d,0xff,0x71,0xff, +0x58,0xff,0x52,0xff,0x4c,0xff,0x26,0xff,0xfd,0xfe,0xf8,0xfe, +0xf9,0xfe,0xf5,0xfe,0x7,0xff,0x20,0xff,0x36,0xff,0x57,0xff, +0x68,0xff,0x56,0xff,0x4c,0xff,0x4e,0xff,0x51,0xff,0x6c,0xff, +0x96,0xff,0xb2,0xff,0xd5,0xff,0xf3,0xff,0xe6,0xff,0xc7,0xff, +0xac,0xff,0x89,0xff,0x74,0xff,0x67,0xff,0x31,0xff,0x4,0xff, +0x15,0xff,0x2a,0xff,0x27,0xff,0x29,0xff,0x21,0xff,0x1c,0xff, +0x2e,0xff,0x36,0xff,0x32,0xff,0x3f,0xff,0x47,0xff,0x59,0xff, +0x8a,0xff,0xa6,0xff,0xa0,0xff,0xab,0xff,0xcb,0xff,0xe8,0xff, +0xf8,0xff,0xfc,0xff,0xf5,0xff,0xd8,0xff,0xa8,0xff,0x87,0xff, +0x74,0xff,0x5b,0xff,0x54,0xff,0x65,0xff,0x69,0xff,0x64,0xff, +0x6a,0xff,0x64,0xff,0x4c,0xff,0x49,0xff,0x59,0xff,0x5d,0xff, +0x70,0xff,0x9c,0xff,0xc2,0xff,0xdc,0xff,0xe3,0xff,0xd1,0xff, +0xdb,0xff,0x6,0x0,0x11,0x0,0x14,0x0,0x2e,0x0,0x32,0x0, +0x28,0x0,0x40,0x0,0x65,0x0,0x76,0x0,0x73,0x0,0x6a,0x0, +0x5c,0x0,0x2a,0x0,0xe9,0xff,0xd3,0xff,0xd1,0xff,0xd0,0xff, +0xf2,0xff,0x2d,0x0,0x68,0x0,0x98,0x0,0xa6,0x0,0xaa,0x0, +0xb5,0x0,0xae,0x0,0xaf,0x0,0xbb,0x0,0xa9,0x0,0xa6,0x0, +0xc0,0x0,0xc7,0x0,0xe5,0x0,0xc,0x1,0xf0,0x0,0xc7,0x0, +0xac,0x0,0x75,0x0,0x5c,0x0,0x6f,0x0,0x78,0x0,0x93,0x0, +0xba,0x0,0xd5,0x0,0x8,0x1,0x2b,0x1,0x14,0x1,0xfb,0x0, +0xd2,0x0,0x99,0x0,0x80,0x0,0x57,0x0,0x1b,0x0,0x1d,0x0, +0x41,0x0,0x65,0x0,0x98,0x0,0xbd,0x0,0xd2,0x0,0xd0,0x0, +0x9d,0x0,0x75,0x0,0x70,0x0,0x63,0x0,0x7e,0x0,0xb2,0x0, +0xbe,0x0,0xd6,0x0,0xe3,0x0,0xa3,0x0,0x7a,0x0,0x71,0x0, +0x3e,0x0,0x3b,0x0,0x6a,0x0,0x6f,0x0,0x91,0x0,0xc9,0x0, +0xbc,0x0,0xb8,0x0,0xd1,0x0,0xa1,0x0,0x50,0x0,0xc,0x0, +0xbb,0xff,0x7d,0xff,0x6b,0xff,0x8a,0xff,0xdb,0xff,0x20,0x0, +0x51,0x0,0x90,0x0,0xab,0x0,0x90,0x0,0x76,0x0,0x5b,0x0, +0x41,0x0,0x41,0x0,0x38,0x0,0x18,0x0,0x8,0x0,0x15,0x0, +0x33,0x0,0x33,0x0,0xf,0x0,0x1,0x0,0xf7,0xff,0xce,0xff, +0xcf,0xff,0x9,0x0,0x2b,0x0,0x37,0x0,0x50,0x0,0x5c,0x0, +0x57,0x0,0x44,0x0,0x17,0x0,0xee,0xff,0xd5,0xff,0xab,0xff, +0x8d,0xff,0xaa,0xff,0xde,0xff,0x2,0x0,0x3a,0x0,0x77,0x0, +0x78,0x0,0x56,0x0,0x2d,0x0,0xdc,0xff,0x8e,0xff,0x7e,0xff, +0x7d,0xff,0x87,0xff,0xcb,0xff,0xb,0x0,0x23,0x0,0x38,0x0, +0x30,0x0,0x3,0x0,0xd6,0xff,0x78,0xff,0xe5,0xfe,0x63,0xfe, +0xea,0xfd,0x77,0xfd,0x35,0xfd,0x18,0xfd,0x3f,0xfd,0xda,0xfd, +0xb3,0xfe,0xbc,0xff,0x1,0x1,0xfb,0x1,0x46,0x2,0xde,0x1, +0xa3,0x0,0xfb,0xfe,0x8b,0xfd,0x6b,0xfc,0xec,0xfb,0x7c,0xfc, +0xb8,0xfd,0x3c,0xff,0xd4,0x0,0xc9,0x1,0xec,0x1,0xab,0x1, +0xf9,0x0,0x3,0x0,0x4d,0xff,0xb7,0xfe,0x42,0xfe,0x4a,0xfe, +0xa3,0xfe,0x25,0xff,0xc7,0xff,0x30,0x0,0x64,0x0,0x7e,0x0, +0x2a,0x0,0x88,0xff,0xfe,0xfe,0x8e,0xfe,0x76,0xfe,0xd6,0xfe, +0x5a,0xff,0x6,0x0,0xd7,0x0,0x5b,0x1,0x7a,0x1,0x22,0x1, +0x39,0x0,0x41,0xff,0x84,0xfe,0xd3,0xfd,0x8a,0xfd,0xee,0xfd, +0x9c,0xfe,0x69,0xff,0x3c,0x0,0xc1,0x0,0xf6,0x0,0xe0,0x0, +0x7c,0x0,0x2b,0x0,0x9,0x0,0xd3,0xff,0x9d,0xff,0x96,0xff, +0xa7,0xff,0xbd,0xff,0xde,0xff,0x23,0x0,0x84,0x0,0xa8,0x0, +0x77,0x0,0x30,0x0,0xd1,0xff,0x53,0xff,0xf7,0xfe,0xde,0xfe, +0x12,0xff,0xaa,0xff,0x8f,0x0,0x6a,0x1,0xdb,0x1,0xb8,0x1, +0x36,0x1,0x82,0x0,0xa4,0xff,0xe2,0xfe,0x92,0xfe,0xc2,0xfe, +0x4d,0xff,0xb,0x0,0xd7,0x0,0x71,0x1,0x8f,0x1,0x5f,0x1, +0x45,0x1,0x25,0x1,0xd9,0x0,0x94,0x0,0x5e,0x0,0x22,0x0, +0xf1,0xff,0xc9,0xff,0xb1,0xff,0xc6,0xff,0xee,0xff,0x21,0x0, +0x7a,0x0,0xcc,0x0,0xee,0x0,0xf8,0x0,0xe4,0x0,0xbf,0x0, +0xc2,0x0,0xdc,0x0,0xd0,0x0,0xad,0x0,0x90,0x0,0x5f,0x0, +0x2,0x0,0xb0,0xff,0x97,0xff,0x92,0xff,0x96,0xff,0xd7,0xff, +0x3a,0x0,0x7e,0x0,0xa7,0x0,0xbd,0x0,0xd6,0x0,0x1e,0x1, +0x5f,0x1,0x6e,0x1,0xa8,0x1,0xe9,0x1,0xa4,0x1,0x18,0x1, +0xa3,0x0,0x9,0x0,0x6e,0xff,0x44,0xff,0x66,0xff,0xa4,0xff, +0xf7,0xff,0x28,0x0,0x3b,0x0,0x74,0x0,0xbd,0x0,0xff,0x0, +0x53,0x1,0x9b,0x1,0x93,0x1,0x33,0x1,0xa2,0x0,0x28,0x0, +0xed,0xff,0xe3,0xff,0xef,0xff,0xf4,0xff,0xe4,0xff,0xbd,0xff, +0x61,0xff,0xfb,0xfe,0xfd,0xfe,0x64,0xff,0xe2,0xff,0x76,0x0, +0xf1,0x0,0x7,0x1,0xdc,0x0,0x95,0x0,0x34,0x0,0xf5,0xff, +0xe7,0xff,0xf1,0xff,0x28,0x0,0x5b,0x0,0x46,0x0,0x26,0x0, +0x14,0x0,0xdd,0xff,0xb8,0xff,0xe1,0xff,0x29,0x0,0x67,0x0, +0x7a,0x0,0x50,0x0,0x23,0x0,0x2,0x0,0xad,0xff,0x54,0xff, +0x5d,0xff,0xb2,0xff,0xf,0x0,0x69,0x0,0xba,0x0,0xfa,0x0, +0x29,0x1,0x32,0x1,0xb,0x1,0xc5,0x0,0x77,0x0,0x33,0x0, +0xf5,0xff,0xb8,0xff,0x99,0xff,0xbd,0xff,0xa,0x0,0x4f,0x0, +0x7a,0x0,0x93,0x0,0x95,0x0,0x69,0x0,0xfa,0xff,0x5a,0xff, +0xad,0xfe,0xf7,0xfd,0x1a,0xfd,0x14,0xfc,0x1d,0xfb,0xa1,0xfa, +0xf9,0xfa,0x25,0xfc,0xe7,0xfd,0xfa,0xff,0xe6,0x1,0xfb,0x2, +0xda,0x2,0xc5,0x1,0x49,0x0,0xd4,0xfe,0xbe,0xfd,0x72,0xfd, +0x13,0xfe,0x34,0xff,0x3c,0x0,0xdb,0x0,0xd2,0x0,0xf2,0xff, +0x90,0xfe,0x5d,0xfd,0xad,0xfc,0x72,0xfc,0xc9,0xfc,0xe2,0xfd, +0x72,0xff,0xef,0x0,0x7,0x2,0x8e,0x2,0x8c,0x2,0x32,0x2, +0x86,0x1,0xa0,0x0,0xe4,0xff,0x61,0xff,0xdc,0xfe,0x83,0xfe, +0x8b,0xfe,0xce,0xfe,0x54,0xff,0x25,0x0,0xef,0x0,0x85,0x1, +0xd3,0x1,0x86,0x1,0xa5,0x0,0xaa,0xff,0xdf,0xfe,0x64,0xfe, +0x74,0xfe,0x17,0xff,0xe,0x0,0xf4,0x0,0x55,0x1,0x2,0x1, +0x42,0x0,0x8b,0xff,0x29,0xff,0x2e,0xff,0x95,0xff,0x57,0x0, +0x37,0x1,0xbb,0x1,0xa1,0x1,0x1a,0x1,0x5f,0x0,0x6f,0xff, +0x76,0xfe,0xc8,0xfd,0x71,0xfd,0x5a,0xfd,0x85,0xfd,0xda,0xfd, +0x52,0xfe,0x18,0xff,0x29,0x0,0x58,0x1,0x7f,0x2,0x41,0x3, +0x4f,0x3,0xc4,0x2,0xaf,0x1,0x31,0x0,0xdf,0xfe,0x17,0xfe, +0xb5,0xfd,0xbf,0xfd,0x35,0xfe,0xbc,0xfe,0x16,0xff,0x50,0xff, +0x86,0xff,0xdd,0xff,0x59,0x0,0xf3,0x0,0xb6,0x1,0x76,0x2, +0xcf,0x2,0x93,0x2,0xe0,0x1,0x2,0x1,0x27,0x0,0x37,0xff, +0x64,0xfe,0x1e,0xfe,0x51,0xfe,0x94,0xfe,0xeb,0xfe,0x7b,0xff, +0x1e,0x0,0xaa,0x0,0x2e,0x1,0xd5,0x1,0x94,0x2,0x15,0x3, +0x18,0x3,0xb4,0x2,0xf,0x2,0x3d,0x1,0x62,0x0,0xbf,0xff, +0x6e,0xff,0x3a,0xff,0x11,0xff,0x22,0xff,0x4a,0xff,0x40,0xff, +0x2a,0xff,0x39,0xff,0x62,0xff,0xbd,0xff,0x7a,0x0,0x79,0x1, +0x5a,0x2,0xd5,0x2,0xf4,0x2,0xc5,0x2,0x26,0x2,0x48,0x1, +0x94,0x0,0x6,0x0,0x8d,0xff,0x43,0xff,0xfc,0xfe,0x9f,0xfe, +0x54,0xfe,0xe,0xfe,0xef,0xfd,0x57,0xfe,0x17,0xff,0xd1,0xff, +0x94,0x0,0x45,0x1,0xa7,0x1,0xb9,0x1,0x65,0x1,0xc4,0x0, +0x46,0x0,0xfc,0xff,0xb2,0xff,0x85,0xff,0x92,0xff,0xc5,0xff, +0x1,0x0,0x15,0x0,0xf7,0xff,0xeb,0xff,0xd,0x0,0x34,0x0, +0x57,0x0,0x90,0x0,0xc9,0x0,0xc3,0x0,0x85,0x0,0x4f,0x0, +0x2d,0x0,0x2d,0x0,0x70,0x0,0xc9,0x0,0x8,0x1,0x30,0x1, +0xe,0x1,0x97,0x0,0x22,0x0,0xab,0xff,0x27,0xff,0x7,0xff, +0x4a,0xff,0x84,0xff,0xd2,0xff,0x48,0x0,0xa8,0x0,0xc,0x1, +0x90,0x1,0xf4,0x1,0x1c,0x2,0xf8,0x1,0x7b,0x1,0xd4,0x0, +0x11,0x0,0x42,0xff,0xdc,0xfe,0xde,0xfe,0xcd,0xfe,0xba,0xfe, +0xd4,0xfe,0xc6,0xfe,0x72,0xfe,0x0,0xfe,0x52,0xfd,0x65,0xfc, +0x71,0xfb,0x93,0xfa,0xf6,0xf9,0xe6,0xf9,0x9f,0xfa,0x48,0xfc, +0xba,0xfe,0x59,0x1,0x95,0x3,0x12,0x5,0x5e,0x5,0x42,0x4, +0x3e,0x2,0x9,0x0,0x0,0xfe,0x5e,0xfc,0x88,0xfb,0xa5,0xfb, +0x55,0xfc,0xf,0xfd,0xa5,0xfd,0x28,0xfe,0x98,0xfe,0x15,0xff, +0xf1,0xff,0x4f,0x1,0xfb,0x2,0x9c,0x4,0xb7,0x5,0xd8,0x5, +0xd0,0x4,0xa7,0x2,0xc9,0xff,0x26,0xfd,0x91,0xfb,0x39,0xfb, +0xef,0xfb,0x5e,0xfd,0xb,0xff,0x7f,0x0,0x59,0x1,0x86,0x1, +0x6f,0x1,0x84,0x1,0xd0,0x1,0x42,0x2,0xd8,0x2,0x5c,0x3, +0x76,0x3,0x13,0x3,0x5c,0x2,0x6a,0x1,0x51,0x0,0x4c,0xff, +0x6c,0xfe,0x87,0xfd,0xc6,0xfc,0x68,0xfc,0x38,0xfc,0x38,0xfc, +0xe6,0xfc,0x4d,0xfe,0x2,0x0,0xe0,0x1,0xbb,0x3,0xea,0x4, +0xcf,0x4,0x65,0x3,0x3c,0x1,0xf,0xff,0x52,0xfd,0x47,0xfc, +0x23,0xfc,0xc9,0xfc,0xb5,0xfd,0x58,0xfe,0x78,0xfe,0x46,0xfe, +0x24,0xfe,0x74,0xfe,0x85,0xff,0x2e,0x1,0xb6,0x2,0x8c,0x3, +0x99,0x3,0xdb,0x2,0x6d,0x1,0xc8,0xff,0x6f,0xfe,0xc7,0xfd, +0xf9,0xfd,0x9e,0xfe,0x11,0xff,0x25,0xff,0xd,0xff,0xe4,0xfe, +0xc9,0xfe,0x4,0xff,0xc8,0xff,0xea,0x0,0x4,0x2,0xda,0x2, +0x4e,0x3,0x1c,0x3,0x47,0x2,0x63,0x1,0xbe,0x0,0x48,0x0, +0x4a,0x0,0xe9,0x0,0x96,0x1,0xed,0x1,0xf3,0x1,0x7c,0x1, +0x9e,0x0,0xd2,0xff,0x5f,0xff,0x7d,0xff,0x59,0x0,0x93,0x1, +0xa5,0x2,0x32,0x3,0xde,0x2,0xc2,0x1,0x68,0x0,0x3,0xff, +0xd1,0xfd,0x62,0xfd,0xc1,0xfd,0x9c,0xfe,0xd8,0xff,0x35,0x1, +0x48,0x2,0xdf,0x2,0xfe,0x2,0xce,0x2,0x5d,0x2,0x87,0x1, +0x80,0x0,0xb3,0xff,0x15,0xff,0x76,0xfe,0xf8,0xfd,0xc9,0xfd, +0xe6,0xfd,0x1a,0xfe,0x5b,0xfe,0xea,0xfe,0xaf,0xff,0x4e,0x0, +0xe5,0x0,0x8f,0x1,0xe8,0x1,0xde,0x1,0x8d,0x1,0xc7,0x0, +0xb2,0xff,0xa8,0xfe,0xb4,0xfd,0xf,0xfd,0x18,0xfd,0xb5,0xfd, +0x94,0xfe,0x80,0xff,0x57,0x0,0x9,0x1,0x70,0x1,0x6f,0x1, +0x4c,0x1,0x4c,0x1,0x66,0x1,0x8f,0x1,0xa7,0x1,0x6f,0x1, +0xe9,0x0,0x2d,0x0,0x52,0xff,0x93,0xfe,0x19,0xfe,0xa,0xfe, +0x9e,0xfe,0xa7,0xff,0xb7,0x0,0xaa,0x1,0x7c,0x2,0x1d,0x3, +0x7d,0x3,0x54,0x3,0x81,0x2,0x7b,0x1,0xaf,0x0,0x15,0x0, +0xa9,0xff,0x8d,0xff,0xb3,0xff,0xe1,0xff,0xf3,0xff,0xf9,0xff, +0x13,0x0,0x48,0x0,0x98,0x0,0xf4,0x0,0x3a,0x1,0x40,0x1, +0xe3,0x0,0x3b,0x0,0x90,0xff,0x5,0xff,0xa8,0xfe,0x87,0xfe, +0x6c,0xfe,0x1b,0xfe,0xab,0xfd,0x18,0xfd,0x2c,0xfc,0x0,0xfb, +0xe5,0xf9,0x1b,0xf9,0xd8,0xf8,0x54,0xf9,0xd1,0xfa,0x54,0xfd, +0x41,0x0,0xee,0x2,0xec,0x4,0x87,0x5,0x4b,0x4,0xfa,0x1, +0xac,0xff,0xb1,0xfd,0x35,0xfc,0xda,0xfb,0xbb,0xfc,0xfd,0xfd, +0xe0,0xfe,0x46,0xff,0x3e,0xff,0x5,0xff,0x2b,0xff,0xf1,0xff, +0x51,0x1,0x3a,0x3,0xe6,0x4,0x4a,0x5,0x48,0x4,0x35,0x2, +0x66,0xff,0xd6,0xfc,0x6b,0xfb,0x38,0xfb,0x56,0xfc,0xa7,0xfe, +0x1b,0x1,0xce,0x2,0xad,0x3,0xa9,0x3,0xca,0x2,0x99,0x1, +0xb5,0x0,0x88,0x0,0x32,0x1,0x69,0x2,0xbf,0x3,0xc6,0x4, +0xea,0x4,0xd3,0x3,0xb7,0x1,0x27,0xff,0xd7,0xfc,0x63,0xfb, +0xe7,0xfa,0x31,0xfb,0x18,0xfc,0x4b,0xfd,0x4e,0xfe,0x15,0xff, +0x13,0x0,0x59,0x1,0x7a,0x2,0x45,0x3,0xa3,0x3,0x2f,0x3, +0xc6,0x1,0xc3,0xff,0xa1,0xfd,0xeb,0xfb,0x1,0xfb,0xd0,0xfa, +0x3a,0xfb,0x38,0xfc,0x81,0xfd,0xce,0xfe,0x1d,0x0,0x54,0x1, +0x46,0x2,0xf9,0x2,0x54,0x3,0xd,0x3,0xc,0x2,0x88,0x0, +0xd2,0xfe,0x5a,0xfd,0x8c,0xfc,0x81,0xfc,0xf4,0xfc,0x9f,0xfd, +0x61,0xfe,0x7,0xff,0x4b,0xff,0x37,0xff,0x42,0xff,0xe8,0xff, +0x1e,0x1,0x71,0x2,0xae,0x3,0xbe,0x4,0x24,0x5,0x9d,0x4, +0x91,0x3,0x57,0x2,0xfc,0x0,0xe0,0xff,0x4f,0xff,0xa,0xff, +0xff,0xfe,0x6d,0xff,0x2e,0x0,0xe0,0x0,0x75,0x1,0xf,0x2, +0xba,0x2,0x4f,0x3,0x72,0x3,0x4,0x3,0x47,0x2,0x4c,0x1, +0x12,0x0,0x8,0xff,0x82,0xfe,0x5e,0xfe,0x8c,0xfe,0xf,0xff, +0xac,0xff,0x39,0x0,0xbd,0x0,0x41,0x1,0xd8,0x1,0x7d,0x2, +0xf2,0x2,0xfb,0x2,0x75,0x2,0x55,0x1,0xe5,0xff,0x86,0xfe, +0x56,0xfd,0x7c,0xfc,0x54,0xfc,0xd5,0xfc,0x7b,0xfd,0x2,0xfe, +0x93,0xfe,0x2e,0xff,0x9f,0xff,0xf7,0xff,0x63,0x0,0xe3,0x0, +0x64,0x1,0xbe,0x1,0xaf,0x1,0x32,0x1,0x55,0x0,0x10,0xff, +0xae,0xfd,0xc1,0xfc,0x97,0xfc,0x1d,0xfd,0x9,0xfe,0x1a,0xff, +0x43,0x0,0x3e,0x1,0xb4,0x1,0xe6,0x1,0x18,0x2,0x18,0x2, +0xfd,0x1,0xfc,0x1,0xde,0x1,0x93,0x1,0x3f,0x1,0xb1,0x0, +0xfa,0xff,0x87,0xff,0x66,0xff,0x88,0xff,0x12,0x0,0xf6,0x0, +0xa,0x2,0x2b,0x3,0xf,0x4,0x73,0x4,0x42,0x4,0x81,0x3, +0x87,0x2,0xa7,0x1,0xea,0x0,0x6c,0x0,0x2e,0x0,0xde,0xff, +0x81,0xff,0x4c,0xff,0x18,0xff,0x2,0xff,0x64,0xff,0x10,0x0, +0xb0,0x0,0x37,0x1,0x6e,0x1,0x39,0x1,0xf2,0x0,0xad,0x0, +0x27,0x0,0x8a,0xff,0x14,0xff,0x74,0xfe,0x68,0xfd,0x2d,0xfc, +0xf2,0xfa,0xac,0xf9,0x89,0xf8,0xbc,0xf7,0x39,0xf7,0x1f,0xf7, +0xe3,0xf7,0xc2,0xf9,0x69,0xfc,0x4f,0xff,0x29,0x2,0x8b,0x4, +0x9e,0x5,0x2,0x5,0x80,0x3,0xf8,0x1,0x8d,0x0,0x5c,0xff, +0x99,0xfe,0xce,0xfd,0x4a,0xfc,0x3c,0xfa,0xae,0xf8,0x66,0xf8, +0x6e,0xf9,0xc3,0xfb,0x9a,0xff,0x5a,0x4,0x48,0x8,0xfd,0x9, +0x7b,0x9,0x9b,0x7,0x27,0x5,0xbe,0x2,0xdd,0x0,0xaf,0xff, +0x11,0xff,0xa8,0xfe,0xf3,0xfd,0xd3,0xfc,0xf2,0xfb,0x12,0xfc, +0x6d,0xfd,0xe5,0xff,0xff,0x2,0xf6,0x5,0x45,0x8,0x95,0x9, +0x8b,0x9,0x1f,0x8,0xa7,0x5,0xb5,0x2,0xf1,0xff,0x67,0xfd, +0xc5,0xfa,0xb5,0xf8,0x22,0xf8,0xba,0xf8,0xdf,0xf9,0x90,0xfb, +0xb9,0xfd,0xfc,0xff,0x1c,0x2,0xde,0x3,0xee,0x4,0x9,0x5, +0x3a,0x4,0xe1,0x2,0xb,0x1,0xa8,0xfe,0x5a,0xfc,0xd7,0xfa, +0x6,0xfa,0x9a,0xf9,0x81,0xf9,0xb2,0xf9,0x47,0xfa,0x58,0xfb, +0xed,0xfc,0x2b,0xff,0xd6,0x1,0x2c,0x4,0xac,0x5,0x11,0x6, +0xe,0x5,0xcb,0x2,0xe8,0xff,0x20,0xfd,0x3d,0xfb,0x85,0xfa, +0x9c,0xfa,0x4d,0xfb,0x5f,0xfc,0x48,0xfd,0xf8,0xfd,0xdf,0xfe, +0x3f,0x0,0x2e,0x2,0x8e,0x4,0xc9,0x6,0x31,0x8,0x49,0x8, +0xe9,0x6,0x97,0x4,0x19,0x2,0xcd,0xff,0x1e,0xfe,0x94,0xfd, +0xf2,0xfd,0x68,0xfe,0xb7,0xfe,0x3c,0xff,0x28,0x0,0x63,0x1, +0xcf,0x2,0x4d,0x4,0x9b,0x5,0x4f,0x6,0x17,0x6,0xc,0x5, +0x83,0x3,0xc3,0x1,0x2b,0x0,0x2,0xff,0x1f,0xfe,0x76,0xfd, +0x5c,0xfd,0xaa,0xfd,0xfb,0xfd,0xa2,0xfe,0xda,0xff,0x19,0x1, +0x41,0x2,0x95,0x3,0x74,0x4,0x38,0x4,0x5b,0x3,0x60,0x2, +0x2,0x1,0x2b,0xff,0x53,0xfd,0xec,0xfb,0xc,0xfb,0x85,0xfa, +0x5c,0xfa,0xe8,0xfa,0x1a,0xfc,0x6a,0xfd,0xc0,0xfe,0x3e,0x0, +0x5e,0x1,0xba,0x1,0xc8,0x1,0xe0,0x1,0xaf,0x1,0xd,0x1, +0x38,0x0,0x74,0xff,0xcb,0xfe,0x12,0xfe,0x6b,0xfd,0x4e,0xfd, +0xb2,0xfd,0x40,0xfe,0xfd,0xfe,0xdd,0xff,0xa8,0x0,0x7b,0x1, +0x58,0x2,0x14,0x3,0xdd,0x3,0x8d,0x4,0x84,0x4,0xd2,0x3, +0xde,0x2,0x86,0x1,0xf7,0xff,0xf3,0xfe,0xc2,0xfe,0x29,0xff, +0xe8,0xff,0xbb,0x0,0x90,0x1,0x66,0x2,0xc,0x3,0x82,0x3, +0xdd,0x3,0xfd,0x3,0xf4,0x3,0xec,0x3,0x90,0x3,0xa3,0x2, +0x89,0x1,0x99,0x0,0xcb,0xff,0x1d,0xff,0xa0,0xfe,0x5d,0xfe, +0x58,0xfe,0x98,0xfe,0x2c,0xff,0xe3,0xff,0x60,0x0,0xaa,0x0, +0xd6,0x0,0x7f,0x0,0x86,0xff,0x7f,0xfe,0x9b,0xfd,0x69,0xfc, +0xed,0xfa,0x92,0xf9,0x48,0xf8,0xf9,0xf6,0x17,0xf6,0xf6,0xf5, +0x89,0xf6,0xfb,0xf7,0x70,0xfa,0x63,0xfd,0x32,0x0,0xb4,0x2, +0xca,0x4,0x21,0x6,0x66,0x6,0xa5,0x5,0x6b,0x4,0xe3,0x2, +0x6d,0x0,0x26,0xfd,0x26,0xfa,0xcb,0xf7,0xd,0xf6,0xe6,0xf5, +0xe1,0xf7,0xe6,0xfa,0x4,0xfe,0x5f,0x1,0xa4,0x4,0xa9,0x6, +0x26,0x7,0x43,0x7,0xa8,0x7,0x81,0x7,0x6c,0x6,0x4e,0x5, +0x43,0x4,0x5f,0x2,0xb3,0xff,0x45,0xfd,0xa2,0xfb,0xfd,0xfa, +0xbf,0xfb,0x29,0xfe,0xba,0x1,0x5c,0x5,0x54,0x8,0x5f,0xa, +0xfe,0xa,0xce,0x9,0x49,0x7,0x3b,0x4,0x19,0x1,0x1b,0xfe, +0x54,0xfb,0xe6,0xf8,0x2e,0xf7,0x85,0xf6,0x10,0xf7,0x94,0xf8, +0xa8,0xfa,0x57,0xfd,0x97,0x0,0x6a,0x3,0x15,0x5,0x2,0x6, +0x70,0x6,0xdd,0x5,0x2d,0x4,0xf0,0x1,0x88,0xff,0x2,0xfd, +0xa3,0xfa,0xf9,0xf8,0x15,0xf8,0x81,0xf7,0x43,0xf7,0xda,0xf7, +0x60,0xf9,0x7f,0xfb,0xf7,0xfd,0x9b,0x0,0x0,0x3,0x7f,0x4, +0xc5,0x4,0x13,0x4,0xac,0x2,0xda,0x0,0x15,0xff,0x86,0xfd, +0x19,0xfc,0xf6,0xfa,0x31,0xfa,0xec,0xf9,0x7d,0xfa,0xc7,0xfb, +0xb1,0xfd,0x99,0x0,0x11,0x4,0xfa,0x6,0xff,0x8,0x33,0xa, +0x4f,0xa,0x3b,0x9,0x42,0x7,0xfb,0x4,0xf2,0x2,0xfb,0x0, +0xdf,0xfe,0xff,0xfc,0x60,0xfb,0xe6,0xf9,0x58,0xf9,0x61,0xfa, +0xa8,0xfc,0x76,0xff,0x40,0x2,0xe6,0x4,0x5a,0x7,0xdd,0x8, +0xf5,0x8,0x61,0x8,0x8b,0x7,0xec,0x5,0x86,0x3,0xf6,0x0, +0x79,0xfe,0x2f,0xfc,0xa0,0xfa,0x4a,0xfa,0x7,0xfb,0x4a,0xfc, +0xc8,0xfd,0x64,0xff,0xd7,0x0,0xf1,0x1,0xbb,0x2,0x27,0x3, +0x1a,0x3,0x90,0x2,0x8f,0x1,0xd,0x0,0xe,0xfe,0xf8,0xfb, +0x54,0xfa,0x2c,0xf9,0x81,0xf8,0xb7,0xf8,0xc3,0xf9,0x3e,0xfb, +0xfd,0xfc,0xbf,0xfe,0x50,0x0,0xc9,0x1,0xeb,0x2,0x75,0x3, +0xc0,0x3,0xc4,0x3,0x21,0x3,0xc,0x2,0xc1,0x0,0x52,0xff, +0x39,0xfe,0xa6,0xfd,0x3f,0xfd,0xb,0xfd,0x42,0xfd,0xd7,0xfd, +0xc7,0xfe,0xf,0x0,0x8d,0x1,0xb,0x3,0x14,0x4,0x74,0x4, +0x92,0x4,0xb0,0x4,0x94,0x4,0x2f,0x4,0xaf,0x3,0x12,0x3, +0x36,0x2,0x23,0x1,0x20,0x0,0x77,0xff,0x67,0xff,0x14,0x0, +0x37,0x1,0x6c,0x2,0xa0,0x3,0x85,0x4,0xaa,0x4,0x47,0x4, +0x9e,0x3,0x77,0x2,0xfd,0x0,0xa8,0xff,0x77,0xfe,0x4e,0xfd, +0x4f,0xfc,0x9c,0xfb,0x67,0xfb,0xd0,0xfb,0xbc,0xfc,0xfd,0xfd, +0x4f,0xff,0x6d,0x0,0x33,0x1,0x56,0x1,0x99,0x0,0x52,0xff, +0xd8,0xfd,0xf7,0xfb,0x93,0xf9,0x12,0xf7,0xd8,0xf4,0xe9,0xf2, +0x70,0xf1,0x42,0xf1,0x18,0xf3,0xab,0xf6,0x38,0xfb,0x59,0x0, +0x7f,0x5,0x92,0x9,0xb2,0xb,0xef,0xb,0xb8,0xa,0xf4,0x7, +0x95,0x3,0xa7,0xfe,0x53,0xfa,0xbc,0xf6,0x21,0xf4,0x5a,0xf3, +0x5f,0xf4,0x59,0xf6,0x40,0xf9,0x38,0xfd,0x5c,0x1,0xe,0x5, +0xd1,0x8,0x92,0xc,0xfb,0xe,0x5f,0xf,0x48,0xe,0xd0,0xb, +0x6b,0x7,0x80,0x1,0xac,0xfb,0x41,0xf7,0xa6,0xf4,0x68,0xf4, +0x30,0xf7,0x2e,0xfc,0x5a,0x1,0xbb,0x5,0x9c,0x9,0xa8,0xc, +0xb6,0xd,0xaf,0xc,0xdb,0xa,0xbd,0x8,0x9a,0x5,0x7d,0x1, +0x70,0xfd,0xcb,0xf9,0x96,0xf6,0x6a,0xf4,0x91,0xf3,0xcb,0xf3, +0x1f,0xf5,0xa6,0xf7,0x15,0xfb,0xcd,0xfe,0x38,0x2,0x3d,0x5, +0xa6,0x7,0x95,0x8,0xbc,0x7,0xb7,0x5,0xc9,0x2,0x39,0xff, +0xef,0xfb,0x40,0xf9,0xde,0xf6,0x1,0xf5,0x24,0xf4,0x6f,0xf4, +0xe9,0xf5,0x6b,0xf8,0xac,0xfb,0x53,0xff,0xcb,0x2,0x7a,0x5, +0x26,0x7,0xcb,0x7,0x51,0x7,0xa7,0x5,0x3,0x3,0xe7,0xff, +0xc4,0xfc,0xec,0xf9,0xb7,0xf7,0x6d,0xf6,0x6c,0xf6,0xfa,0xf7, +0xaf,0xfa,0x10,0xfe,0x15,0x2,0x3f,0x6,0x9e,0x9,0xed,0xb, +0x48,0xd,0xb5,0xd,0x29,0xd,0x4c,0xb,0x17,0x8,0x3a,0x4, +0x10,0x0,0xc2,0xfb,0x47,0xf8,0xa6,0xf6,0x10,0xf7,0x40,0xf9, +0xb7,0xfc,0xc8,0x0,0xba,0x4,0xd4,0x7,0xaf,0x9,0x5d,0xa, +0x16,0xa,0x1c,0x9,0x78,0x7,0x9,0x5,0x35,0x2,0x61,0xff, +0x7a,0xfc,0xf9,0xf9,0x9b,0xf8,0x28,0xf8,0x5a,0xf8,0x72,0xf9, +0x47,0xfb,0x7e,0xfd,0x0,0x0,0x4e,0x2,0xd7,0x3,0xa6,0x4, +0xbc,0x4,0xcc,0x3,0xeb,0x1,0xb1,0xff,0x8a,0xfd,0x5b,0xfb, +0x3d,0xf9,0xc6,0xf7,0x4b,0xf7,0xa1,0xf7,0x98,0xf8,0x8,0xfa, +0xd2,0xfb,0xc7,0xfd,0x8c,0xff,0x28,0x1,0xca,0x2,0x12,0x4, +0xbd,0x4,0x26,0x5,0x2c,0x5,0x45,0x4,0x81,0x2,0x6a,0x0, +0x78,0xfe,0xd6,0xfc,0x7b,0xfb,0xd4,0xfa,0x4d,0xfb,0x73,0xfc, +0x1,0xfe,0x5b,0x0,0x20,0x3,0x5c,0x5,0xe9,0x6,0x16,0x8, +0xd2,0x8,0xcd,0x8,0xfb,0x7,0x9b,0x6,0xc1,0x4,0x71,0x2, +0x2e,0x0,0x80,0xfe,0x70,0xfd,0x12,0xfd,0xa8,0xfd,0x2a,0xff, +0x30,0x1,0x10,0x3,0x7b,0x4,0xc5,0x5,0xc5,0x6,0xc0,0x6, +0xc6,0x5,0x66,0x4,0xa1,0x2,0x7e,0x0,0x6b,0xfe,0x94,0xfc, +0xdd,0xfa,0x6c,0xf9,0xb7,0xf8,0x16,0xf9,0x5f,0xfa,0x2e,0xfc, +0x52,0xfe,0x84,0x0,0x24,0x2,0xa1,0x2,0x1,0x2,0x87,0x0, +0x23,0xfe,0xf0,0xfa,0xab,0xf7,0xa4,0xf4,0xa2,0xf1,0x32,0xef, +0x60,0xee,0x90,0xef,0xbf,0xf2,0x88,0xf7,0xf9,0xfc,0x5f,0x2, +0x2f,0x7,0x73,0xa,0xc1,0xb,0x90,0xb,0x22,0xa,0x6a,0x7, +0xaf,0x3,0x7f,0xff,0xa2,0xfb,0xc6,0xf8,0xf3,0xf6,0xee,0xf5, +0x1a,0xf6,0xed,0xf7,0xdd,0xfa,0x1d,0xfe,0xd7,0x1,0x27,0x6, +0x11,0xa,0xdb,0xc,0xae,0xe,0x1e,0xf,0x63,0xd,0xca,0x9, +0x69,0x5,0x2,0x1,0xef,0xfc,0xc4,0xf9,0xa6,0xf8,0x1d,0xfa, +0x12,0xfd,0x2c,0x0,0x19,0x3,0xa5,0x5,0x4c,0x7,0xf1,0x7, +0xee,0x7,0x96,0x7,0xf7,0x6,0xe8,0x5,0x59,0x4,0x46,0x2, +0x9a,0xff,0xa1,0xfc,0xee,0xf9,0xbb,0xf7,0xb,0xf6,0x22,0xf5, +0x57,0xf5,0xae,0xf6,0xe5,0xf8,0xdc,0xfb,0x4b,0xff,0x45,0x2, +0x15,0x4,0xd6,0x4,0x94,0x4,0x43,0x3,0x7b,0x1,0xc0,0xff, +0xf4,0xfd,0x1,0xfc,0x0,0xfa,0x19,0xf8,0xab,0xf6,0xde,0xf5, +0x94,0xf5,0x2b,0xf6,0x19,0xf8,0xf3,0xfa,0xc,0xfe,0x46,0x1, +0xa0,0x4,0x7c,0x7,0xa,0x9,0x1f,0x9,0x0,0x8,0xd1,0x5, +0xca,0x2,0x79,0xff,0x98,0xfc,0xbf,0xfa,0x4,0xfa,0x41,0xfa, +0xb1,0xfb,0x5b,0xfe,0x7f,0x1,0x79,0x4,0x26,0x7,0x53,0x9, +0xe1,0xa,0xc3,0xb,0xac,0xb,0x91,0xa,0xba,0x8,0x12,0x6, +0xad,0x2,0x5e,0xff,0xef,0xfc,0xa8,0xfb,0x9d,0xfb,0x9e,0xfc, +0x40,0xfe,0x22,0x0,0xf7,0x1,0x9f,0x3,0x14,0x5,0x23,0x6, +0x9c,0x6,0x8a,0x6,0x1,0x6,0xea,0x4,0x29,0x3,0x0,0x1, +0xef,0xfe,0x6,0xfd,0xe,0xfb,0x62,0xf9,0x82,0xf8,0x52,0xf8, +0xbb,0xf8,0xdf,0xf9,0x6e,0xfb,0xf8,0xfc,0x80,0xfe,0xe9,0xff, +0xc9,0x0,0x22,0x1,0x48,0x1,0x43,0x1,0xd4,0x0,0xea,0xff, +0xbe,0xfe,0x94,0xfd,0x81,0xfc,0x99,0xfb,0x6,0xfb,0xdc,0xfa, +0x0,0xfb,0x83,0xfb,0xb5,0xfc,0x91,0xfe,0x92,0x0,0x53,0x2, +0xc4,0x3,0xcf,0x4,0x4b,0x5,0x18,0x5,0x33,0x4,0xf4,0x2, +0xa2,0x1,0x20,0x0,0xa6,0xfe,0xb7,0xfd,0x50,0xfd,0x6a,0xfd, +0x32,0xfe,0x4b,0xff,0x71,0x0,0xb,0x2,0xf,0x4,0x22,0x6, +0x47,0x8,0xf1,0x9,0x71,0xa,0x35,0xa,0x8b,0x9,0xf8,0x7, +0xbd,0x5,0x8e,0x3,0x6d,0x1,0x52,0xff,0x8b,0xfd,0x4b,0xfc, +0xb6,0xfb,0xd5,0xfb,0xb0,0xfc,0x76,0xfe,0xc8,0x0,0xcc,0x2, +0x51,0x4,0x77,0x5,0xd5,0x5,0x2a,0x5,0xda,0x3,0x45,0x2, +0x63,0x0,0x2b,0xfe,0xfe,0xfb,0x7d,0xfa,0xcf,0xf9,0x98,0xf9, +0xbb,0xf9,0x69,0xfa,0x7f,0xfb,0xa1,0xfc,0xbd,0xfd,0xd0,0xfe, +0x5d,0xff,0xfe,0xfe,0xeb,0xfd,0x55,0xfc,0x2c,0xfa,0x8e,0xf7, +0xdb,0xf4,0xc0,0xf2,0xeb,0xf1,0x61,0xf2,0x31,0xf4,0xf2,0xf7, +0x3b,0xfd,0x84,0x2,0xff,0x6,0x76,0xa,0x60,0xc,0x62,0xc, +0x92,0xa,0x8a,0x7,0x27,0x4,0x76,0x0,0x7b,0xfc,0xa0,0xf9, +0xc7,0xf8,0xed,0xf8,0x92,0xf9,0x6e,0xfb,0x50,0xfe,0x3c,0x1, +0x4,0x4,0xe,0x7,0x1e,0xa,0x45,0xc,0x30,0xd,0x4b,0xd, +0x18,0xc,0x9e,0x8,0xab,0x3,0x1a,0xff,0x9d,0xfb,0x37,0xf9, +0x95,0xf8,0x56,0xfa,0xc5,0xfd,0x64,0x1,0x78,0x4,0xf2,0x6, +0x4d,0x8,0xfa,0x7,0x84,0x6,0xbd,0x4,0xaa,0x2,0x46,0x0, +0x4d,0xfe,0x1e,0xfd,0xec,0xfb,0x1f,0xfa,0x6e,0xf8,0x72,0xf7, +0xbc,0xf6,0x2c,0xf6,0x5d,0xf6,0x7e,0xf7,0x54,0xf9,0xde,0xfb, +0xeb,0xfe,0xb3,0x1,0x59,0x3,0xa7,0x3,0xf4,0x2,0x91,0x1, +0xc2,0xff,0xff,0xfd,0xb6,0xfc,0xa,0xfc,0xc9,0xfb,0x5e,0xfb, +0x83,0xfa,0xc2,0xf9,0x8f,0xf9,0xb9,0xf9,0x43,0xfa,0x91,0xfb, +0xc0,0xfd,0x95,0x0,0xa4,0x3,0x70,0x6,0xa1,0x8,0xcc,0x9, +0x80,0x9,0xdc,0x7,0x5e,0x5,0x3e,0x2,0xd5,0xfe,0xf,0xfc, +0xb1,0xfa,0xc0,0xfa,0xef,0xfb,0x19,0xfe,0x2,0x1,0x22,0x4, +0x16,0x7,0xcd,0x9,0xb,0xc,0x6b,0xd,0xc5,0xd,0xf3,0xc, +0xad,0xa,0x28,0x7,0xf7,0x2,0x7f,0xfe,0x5e,0xfa,0x81,0xf7, +0x4a,0xf6,0xa9,0xf6,0x85,0xf8,0x74,0xfb,0xd4,0xfe,0xf,0x2, +0x94,0x4,0x5b,0x6,0x99,0x7,0xa6,0x7,0x13,0x6,0xb8,0x3, +0x21,0x1,0x19,0xfe,0x1f,0xfb,0xdc,0xf8,0x36,0xf7,0x26,0xf6, +0xed,0xf5,0x9b,0xf6,0x34,0xf8,0x8f,0xfa,0x37,0xfd,0xec,0xff, +0x66,0x2,0xe7,0x3,0xa,0x4,0x28,0x3,0xa2,0x1,0x9a,0xff, +0x62,0xfd,0x6d,0xfb,0xdb,0xf9,0xb4,0xf8,0x45,0xf8,0x9b,0xf8, +0x66,0xf9,0x99,0xfa,0x57,0xfc,0xa6,0xfe,0x71,0x1,0x5e,0x4, +0x9,0x7,0x4f,0x9,0xd8,0xa,0x36,0xb,0x77,0xa,0x9e,0x8, +0xa3,0x5,0x25,0x2,0xb8,0xfe,0xb2,0xfb,0xd6,0xf9,0x7c,0xf9, +0x38,0xfa,0xe,0xfc,0xf3,0xfe,0x18,0x2,0xe7,0x4,0x27,0x7, +0xa3,0x8,0x79,0x9,0xc3,0x9,0x52,0x9,0x1f,0x8,0xf,0x6, +0x20,0x3,0xe2,0xff,0xde,0xfc,0x65,0xfa,0xfd,0xf8,0xee,0xf8, +0x33,0xfa,0x9a,0xfc,0x52,0xff,0xc4,0x1,0x10,0x4,0xae,0x5, +0xcb,0x5,0xbf,0x4,0xa,0x3,0x9a,0x0,0xc7,0xfd,0x2b,0xfb, +0xc,0xf9,0x80,0xf7,0x89,0xf6,0x41,0xf6,0xdf,0xf6,0x46,0xf8, +0x23,0xfa,0x46,0xfc,0x88,0xfe,0xc2,0x0,0x96,0x2,0xa1,0x3, +0xff,0x3,0xb8,0x3,0x82,0x2,0xc0,0x0,0x15,0xff,0x81,0xfd, +0x34,0xfc,0x9d,0xfb,0x99,0xfb,0x7,0xfc,0xf3,0xfc,0x21,0xfe, +0x7c,0xff,0x7,0x1,0x76,0x2,0xba,0x3,0xcc,0x4,0x3c,0x5, +0xf6,0x4,0x51,0x4,0x47,0x3,0xcb,0x1,0x23,0x0,0x68,0xfe, +0x7b,0xfc,0xa3,0xfa,0x78,0xf9,0x27,0xf9,0xa8,0xf9,0x9b,0xfb, +0x4b,0xff,0x93,0x3,0x48,0x7,0x41,0xa,0x47,0xc,0xf5,0xc, +0x2b,0xc,0xdf,0x9,0x63,0x6,0x43,0x2,0xe9,0xfd,0x38,0xfa, +0xe7,0xf7,0x6a,0xf6,0x99,0xf5,0x62,0xf6,0x9f,0xf8,0x3d,0xfb, +0xea,0xfd,0xa9,0x0,0x31,0x3,0x3f,0x5,0x81,0x6,0xc1,0x6, +0xe3,0x5,0x8c,0x3,0x2,0x0,0x5f,0xfc,0x34,0xf9,0xae,0xf6, +0xae,0xf5,0xdc,0xf6,0x82,0xf9,0x90,0xfc,0x88,0xff,0xee,0x1, +0x34,0x3,0xa2,0x3,0xc8,0x3,0x52,0x3,0xea,0x1,0x3e,0x0, +0xda,0xfe,0x98,0xfd,0x54,0xfc,0xc,0xfb,0xe0,0xf9,0x2d,0xf9, +0x12,0xf9,0x7f,0xf9,0x8e,0xfa,0x25,0xfc,0x1c,0xfe,0xcd,0x0, +0x1d,0x4,0xee,0x6,0x62,0x8,0xbb,0x8,0x77,0x8,0x81,0x7, +0xf3,0x5,0x8f,0x4,0x93,0x3,0x6f,0x2,0x11,0x1,0xa0,0xff, +0xcd,0xfd,0xd5,0xfb,0x9c,0xfa,0x71,0xfa,0x2d,0xfb,0xc1,0xfc, +0x1,0xff,0xae,0x1,0x56,0x4,0x54,0x6,0x83,0x7,0xe2,0x7, +0xfb,0x6,0xf0,0x4,0x9d,0x2,0x30,0x0,0x85,0xfd,0x5b,0xfb, +0x8a,0xfa,0x3,0xfb,0x41,0xfc,0xca,0xfd,0x49,0xff,0x9c,0x0, +0xbf,0x1,0xb7,0x2,0x86,0x3,0xf,0x4,0x13,0x4,0x6f,0x3, +0x15,0x2,0xf9,0xff,0x53,0xfd,0xc4,0xfa,0xcd,0xf8,0x92,0xf7, +0x26,0xf7,0x94,0xf7,0xe0,0xf8,0x18,0xfb,0xf4,0xfd,0xbb,0x0, +0xf7,0x2,0xa8,0x4,0xb7,0x5,0xdf,0x5,0x9,0x5,0x97,0x3, +0x2b,0x2,0xd,0x1,0x19,0x0,0x4a,0xff,0xb0,0xfe,0x29,0xfe, +0x92,0xfd,0xe2,0xfc,0x50,0xfc,0x56,0xfc,0x32,0xfd,0xb4,0xfe, +0x9e,0x0,0xa1,0x2,0x56,0x4,0x88,0x5,0x21,0x6,0x15,0x6, +0x70,0x5,0x2a,0x4,0x59,0x2,0x7a,0x0,0xe0,0xfe,0x74,0xfd, +0x6b,0xfc,0x17,0xfc,0x64,0xfc,0x53,0xfd,0xeb,0xfe,0xb6,0x0, +0x71,0x2,0x4b,0x4,0xdf,0x5,0x8c,0x6,0x5d,0x6,0x67,0x5, +0x6f,0x3,0xe9,0x0,0x8f,0xfe,0x6e,0xfc,0x93,0xfa,0x70,0xf9, +0x2b,0xf9,0xa4,0xf9,0xca,0xfa,0x5e,0xfc,0x30,0xfe,0x4f,0x0, +0x90,0x2,0x84,0x4,0xc6,0x5,0xfd,0x5,0x1b,0x5,0x73,0x3, +0x61,0x1,0x28,0xff,0x3,0xfd,0x2d,0xfb,0xa,0xfa,0xe4,0xf9, +0x85,0xfa,0xa9,0xfb,0x3f,0xfd,0xf7,0xfe,0x5e,0x0,0x55,0x1, +0xde,0x1,0x13,0x2,0x29,0x2,0x26,0x2,0xf6,0x1,0xad,0x1, +0x43,0x1,0x96,0x0,0xc9,0xff,0x17,0xff,0x9d,0xfe,0x83,0xfe, +0xf7,0xfe,0xee,0xff,0x16,0x1,0x13,0x2,0xb7,0x2,0xdb,0x2, +0x54,0x2,0x63,0x1,0xb6,0x0,0x97,0x0,0xa8,0x0,0x9e,0x0, +0x97,0x0,0x9f,0x0,0x7b,0x0,0x9,0x0,0x76,0xff,0xfb,0xfe, +0xa5,0xfe,0x80,0xfe,0xab,0xfe,0x24,0xff,0xbd,0xff,0x5f,0x0, +0xa,0x1,0xb0,0x1,0x54,0x2,0xfa,0x2,0x60,0x3,0x38,0x3, +0x95,0x2,0x91,0x1,0x2,0x0,0xed,0xfd,0xba,0xfb,0xb5,0xf9, +0xa,0xf8,0x3d,0xf7,0xdd,0xf7,0xe9,0xf9,0x2,0xfd,0xa2,0x0, +0xf8,0x3,0x5f,0x6,0xbd,0x7,0xb,0x8,0x41,0x7,0x69,0x5, +0x5f,0x2,0x84,0xfe,0x28,0xfb,0x12,0xf9,0xfe,0xf7,0xff,0xf7, +0x4e,0xf9,0x61,0xfb,0xc0,0xfd,0x68,0x0,0xfb,0x2,0x18,0x5, +0xd6,0x6,0x3,0x8,0x1a,0x8,0xd5,0x6,0x41,0x4,0xd6,0x0, +0x63,0xfd,0x58,0xfa,0x1,0xf8,0x2a,0xf7,0x56,0xf8,0xfa,0xfa, +0x33,0xfe,0x5a,0x1,0xf2,0x3,0xcb,0x5,0xed,0x6,0x4f,0x7, +0xf5,0x6,0xe3,0x5,0xfa,0x3,0x7f,0x1,0xc,0xff,0xf0,0xfc, +0x79,0xfb,0x14,0xfb,0x8f,0xfb,0x4b,0xfc,0x1,0xfd,0x96,0xfd, +0xf8,0xfd,0x4c,0xfe,0xb7,0xfe,0x7e,0xff,0xf6,0x0,0xb5,0x2, +0xd0,0x3,0xe3,0x3,0x1c,0x3,0xf1,0x1,0xf7,0x0,0x4e,0x0, +0xc5,0xff,0x39,0xff,0x63,0xfe,0x44,0xfd,0x65,0xfc,0xf1,0xfb, +0xb9,0xfb,0xea,0xfb,0xb3,0xfc,0xf,0xfe,0xde,0xff,0xa4,0x1, +0x35,0x3,0xea,0x4,0x47,0x6,0x52,0x6,0x3f,0x5,0x8e,0x3, +0x15,0x1,0x35,0xfe,0xe0,0xfb,0x5c,0xfa,0x9b,0xf9,0xd1,0xf9, +0xf9,0xfa,0xcf,0xfc,0xc,0xff,0x40,0x1,0x2b,0x3,0xea,0x4, +0x5b,0x6,0x10,0x7,0xd5,0x6,0x73,0x5,0xe4,0x2,0xfc,0xff, +0x94,0xfd,0xbf,0xfb,0xba,0xfa,0xcb,0xfa,0x4d,0xfb,0xeb,0xfb, +0x45,0xfd,0x21,0xff,0xa6,0x0,0x4,0x2,0xa1,0x3,0x15,0x5, +0xd2,0x5,0x6e,0x5,0xf5,0x3,0x32,0x2,0xb2,0x0,0x6c,0xff, +0x70,0xfe,0xa9,0xfd,0xe5,0xfc,0x71,0xfc,0x6e,0xfc,0x98,0xfc, +0x26,0xfd,0x4b,0xfe,0x9c,0xff,0xdd,0x0,0xf9,0x1,0x9d,0x2, +0xe4,0x2,0xd,0x3,0xc5,0x2,0xea,0x1,0xc6,0x0,0x49,0xff, +0x74,0xfd,0xe3,0xfb,0xf3,0xfa,0x99,0xfa,0x1,0xfb,0x2d,0xfc, +0xc8,0xfd,0xaf,0xff,0xc6,0x1,0x97,0x3,0xcf,0x4,0x67,0x5, +0x59,0x5,0xb8,0x4,0x81,0x3,0x8c,0x1,0x3a,0xff,0x5b,0xfd, +0x2a,0xfc,0x74,0xfb,0x49,0xfb,0xca,0xfb,0xec,0xfc,0x91,0xfe, +0x69,0x0,0x20,0x2,0x9e,0x3,0xc5,0x4,0x47,0x5,0xd6,0x4, +0x7f,0x3,0xd1,0x1,0x4c,0x0,0xe7,0xfe,0x9f,0xfd,0xd3,0xfc, +0x97,0xfc,0xa9,0xfc,0x14,0xfd,0x7,0xfe,0x2c,0xff,0x1d,0x0, +0xfe,0x0,0xfb,0x1,0xc7,0x2,0x0,0x3,0xa7,0x2,0xa,0x2, +0x75,0x1,0xdd,0x0,0x1e,0x0,0x63,0xff,0xc1,0xfe,0x14,0xfe, +0x80,0xfd,0x29,0xfd,0xfe,0xfc,0x4e,0xfd,0x50,0xfe,0x76,0xff, +0x4f,0x0,0xf1,0x0,0x54,0x1,0x7f,0x1,0x95,0x1,0x7d,0x1, +0x26,0x1,0xb6,0x0,0x39,0x0,0xab,0xff,0xa,0xff,0x75,0xfe, +0x35,0xfe,0x38,0xfe,0x52,0xfe,0xbf,0xfe,0x76,0xff,0x15,0x0, +0xa5,0x0,0x1e,0x1,0x46,0x1,0x5a,0x1,0x7a,0x1,0x6c,0x1, +0x3b,0x1,0xe1,0x0,0x4a,0x0,0xd7,0xff,0x84,0xff,0xf9,0xfe, +0x94,0xfe,0x88,0xfe,0x8f,0xfe,0xe9,0xfe,0x91,0xff,0xe5,0xff, +0xec,0xff,0xe2,0xff,0x97,0xff,0x65,0xff,0xde,0xff,0xdd,0x0, +0xe7,0x1,0x84,0x2,0x95,0x2,0x74,0x2,0xe,0x2,0x13,0x1, +0xe8,0xff,0xeb,0xfe,0x6,0xfe,0x7d,0xfd,0xc8,0xfd,0xd8,0xfe, +0x1a,0x0,0xd6,0x0,0xdf,0x0,0x90,0x0,0x1e,0x0,0xc6,0xff, +0xd9,0xff,0x27,0x0,0x7b,0x0,0xc1,0x0,0x7f,0x0,0xa2,0xff, +0xbb,0xfe,0xdf,0xfd,0x26,0xfd,0x25,0xfd,0xcf,0xfd,0xcb,0xfe, +0x66,0x0,0x68,0x2,0xc6,0x3,0x16,0x4,0xc1,0x3,0x24,0x3, +0x39,0x2,0xc5,0x0,0xda,0xfe,0xfc,0xfc,0xad,0xfb,0x45,0xfb, +0xd7,0xfb,0xfd,0xfc,0x4e,0xfe,0xab,0xff,0xd8,0x0,0x6e,0x1, +0x61,0x1,0x2c,0x1,0x2f,0x1,0x3f,0x1,0x35,0x1,0x50,0x1, +0x79,0x1,0x44,0x1,0xba,0x0,0x20,0x0,0x7f,0xff,0x1e,0xff, +0x52,0xff,0xd0,0xff,0x1a,0x0,0x2b,0x0,0x2a,0x0,0xb,0x0, +0xe7,0xff,0xf7,0xff,0xf9,0xff,0x6a,0xff,0x98,0xfe,0x59,0xfe, +0xd9,0xfe,0xa0,0xff,0x68,0x0,0x19,0x1,0x68,0x1,0xb,0x1, +0x26,0x0,0x19,0xff,0xa,0xfe,0x1b,0xfd,0xca,0xfc,0x57,0xfd, +0x52,0xfe,0x68,0xff,0xbb,0x0,0x1f,0x2,0x9,0x3,0x4f,0x3, +0x1d,0x3,0x72,0x2,0x4f,0x1,0xff,0xff,0xc1,0xfe,0x9c,0xfd, +0xac,0xfc,0x4e,0xfc,0xbe,0xfc,0xa9,0xfd,0x79,0xfe,0x1c,0xff, +0xbd,0xff,0x4a,0x0,0xec,0x0,0xb5,0x1,0x16,0x2,0xe2,0x1, +0xaa,0x1,0x7a,0x1,0xf8,0x0,0x4d,0x0,0xb1,0xff,0x52,0xff, +0x82,0xff,0x1,0x0,0x5b,0x0,0x9b,0x0,0xa4,0x0,0x60,0x0, +0x3a,0x0,0x21,0x0,0xaf,0xff,0x4e,0xff,0x5f,0xff,0x8c,0xff, +0xa7,0xff,0xb9,0xff,0xc4,0xff,0xe8,0xff,0xb,0x0,0xfe,0xff, +0x0,0x0,0x28,0x0,0x1b,0x0,0xcb,0xff,0x93,0xff,0xa3,0xff, +0xcc,0xff,0xef,0xff,0x48,0x0,0xe2,0x0,0x4e,0x1,0x79,0x1, +0x93,0x1,0x65,0x1,0xe9,0x0,0x63,0x0,0xb7,0xff,0xe5,0xfe, +0x45,0xfe,0xed,0xfd,0xd5,0xfd,0xe6,0xfd,0xf3,0xfd,0x58,0xfe, +0x57,0xff,0x5c,0x0,0x22,0x1,0xe4,0x1,0x41,0x2,0xfc,0x1, +0x8a,0x1,0xea,0x0,0xe6,0xff,0xfa,0xfe,0x82,0xfe,0x4b,0xfe, +0x48,0xfe,0x8f,0xfe,0x1d,0xff,0xdf,0xff,0x9d,0x0,0x3b,0x1, +0xc2,0x1,0x10,0x2,0xf5,0x1,0x85,0x1,0xe0,0x0,0x1a,0x0, +0x50,0xff,0xab,0xfe,0x58,0xfe,0x62,0xfe,0xa9,0xfe,0x8,0xff, +0x5f,0xff,0xb3,0xff,0x2d,0x0,0xba,0x0,0x12,0x1,0x36,0x1, +0x46,0x1,0x2e,0x1,0xdf,0x0,0x63,0x0,0xc5,0xff,0x3a,0xff, +0xb,0xff,0x30,0xff,0x75,0xff,0xce,0xff,0x22,0x0,0x37,0x0, +0x18,0x0,0xf,0x0,0x21,0x0,0x9,0x0,0xb0,0xff,0x40,0xff, +0xf0,0xfe,0xcf,0xfe,0xbd,0xfe,0xc3,0xfe,0x26,0xff,0xe7,0xff, +0xaa,0x0,0x4b,0x1,0xc9,0x1,0xec,0x1,0x94,0x1,0xf0,0x0, +0x2c,0x0,0x5d,0xff,0xa5,0xfe,0x38,0xfe,0x3e,0xfe,0x83,0xfe, +0x9e,0xfe,0x91,0xfe,0x9e,0xfe,0xad,0xfe,0xbe,0xfe,0x40,0xff, +0x59,0x0,0xc3,0x1,0x54,0x3,0xba,0x4,0x62,0x5,0x1,0x5, +0xa3,0x3,0x68,0x1,0xc0,0xfe,0x62,0xfc,0xf8,0xfa,0xe5,0xfa, +0xeb,0xfb,0x49,0xfd,0x8a,0xfe,0x98,0xff,0x5b,0x0,0xee,0x0, +0xa5,0x1,0x74,0x2,0x19,0x3,0x86,0x3,0x7e,0x3,0x9b,0x2, +0xf5,0x0,0x6,0xff,0x3d,0xfd,0xc,0xfc,0xb7,0xfb,0x15,0xfc, +0xfd,0xfc,0x5e,0xfe,0xe6,0xff,0x3e,0x1,0x54,0x2,0xfb,0x2, +0x19,0x3,0xe7,0x2,0x56,0x2,0xfd,0x0,0xe,0xff,0x5b,0xfd, +0x8d,0xfc,0xc5,0xfc,0xa0,0xfd,0xa1,0xfe,0x94,0xff,0x33,0x0, +0x2a,0x0,0xa8,0xff,0x27,0xff,0xde,0xfe,0x0,0xff,0xb7,0xff, +0xb8,0x0,0x6f,0x1,0x92,0x1,0x5d,0x1,0x30,0x1,0xf2,0x0, +0x69,0x0,0xd9,0xff,0x86,0xff,0x45,0xff,0x7,0xff,0xf6,0xfe, +0xf,0xff,0x37,0xff,0x58,0xff,0x62,0xff,0x63,0xff,0x58,0xff, +0x47,0xff,0xa8,0xff,0xc3,0x0,0xef,0x1,0x78,0x2,0x6d,0x2, +0xf9,0x1,0x1a,0x1,0x10,0x0,0x23,0xff,0x61,0xfe,0x1a,0xfe, +0x9d,0xfe,0x93,0xff,0x80,0x0,0x29,0x1,0x4b,0x1,0x0,0x1, +0xc1,0x0,0x7c,0x0,0xec,0xff,0x4e,0xff,0xb5,0xfe,0x19,0xfe, +0xeb,0xfd,0x45,0xfe,0xb3,0xfe,0x42,0xff,0x11,0x0,0xc3,0x0, +0x26,0x1,0x16,0x1,0x67,0x0,0xac,0xff,0x77,0xff,0x8c,0xff, +0xc1,0xff,0x21,0x0,0x4c,0x0,0x3e,0x0,0x55,0x0,0x53,0x0, +0xee,0xff,0x7f,0xff,0x5e,0xff,0x9f,0xff,0x21,0x0,0x72,0x0, +0x45,0x0,0xdf,0xff,0x7f,0xff,0x2b,0xff,0xeb,0xfe,0xc6,0xfe, +0xe2,0xfe,0x8a,0xff,0x9e,0x0,0x75,0x1,0xad,0x1,0x7c,0x1, +0x3d,0x1,0xe,0x1,0xcc,0x0,0x42,0x0,0x7d,0xff,0xd9,0xfe, +0x92,0xfe,0xa0,0xfe,0x3,0xff,0xc2,0xff,0x9e,0x0,0x54,0x1, +0xe6,0x1,0x30,0x2,0xe1,0x1,0x15,0x1,0x25,0x0,0x22,0xff, +0x36,0xfe,0xb9,0xfd,0xb4,0xfd,0xe,0xfe,0xc8,0xfe,0xba,0xff, +0xb6,0x0,0x99,0x1,0x22,0x2,0x39,0x2,0xf9,0x1,0x57,0x1, +0x7e,0x0,0xdc,0xff,0x62,0xff,0xcf,0xfe,0x4a,0xfe,0xe1,0xfd, +0x9c,0xfd,0xc4,0xfd,0x51,0xfe,0x14,0xff,0x1d,0x0,0x27,0x1, +0xba,0x1,0xd7,0x1,0xa7,0x1,0x33,0x1,0x94,0x0,0xe6,0xff, +0x44,0xff,0xc0,0xfe,0x5a,0xfe,0x4c,0xfe,0xae,0xfe,0x1d,0xff, +0x74,0xff,0xea,0xff,0x64,0x0,0xba,0x0,0xe8,0x0,0xc9,0x0, +0x83,0x0,0x52,0x0,0x1d,0x0,0xfe,0xff,0xf9,0xff,0xb4,0xff, +0x73,0xff,0x9d,0xff,0xc3,0xff,0xdb,0xff,0x5d,0x0,0xe7,0x0, +0x11,0x1,0x27,0x1,0x1d,0x1,0xc1,0x0,0x42,0x0,0xa9,0xff, +0x4,0xff,0x84,0xfe,0x2c,0xfe,0x30,0xfe,0xde,0xfe,0xe3,0xff, +0xcb,0x0,0x88,0x1,0x27,0x2,0xa2,0x2,0xae,0x2,0x1d,0x2, +0x53,0x1,0x77,0x0,0x30,0xff,0xba,0xfd,0x87,0xfc,0x70,0xfb, +0x78,0xfa,0xf,0xfa,0x80,0xfa,0xe3,0xfb,0xfa,0xfd,0x77,0x0, +0x60,0x3,0x45,0x6,0xf,0x8,0x58,0x8,0x83,0x7,0x98,0x5, +0x76,0x2,0xab,0xfe,0x43,0xfb,0xfa,0xf8,0x3,0xf8,0x7e,0xf8, +0x46,0xfa,0x90,0xfc,0xa4,0xfe,0x76,0x0,0x1f,0x2,0x99,0x3, +0xbe,0x4,0x4f,0x5,0x33,0x5,0x58,0x4,0x9a,0x2,0x4c,0x0, +0xf9,0xfd,0xf5,0xfb,0xce,0xfa,0xd0,0xfa,0x70,0xfb,0x65,0xfc, +0xe8,0xfd,0xcc,0xff,0xdf,0x1,0xff,0x3,0x83,0x5,0xc,0x6, +0xda,0x5,0xe0,0x4,0xf7,0x2,0x5d,0x0,0x9a,0xfd,0xc8,0xfb, +0xa0,0xfb,0x32,0xfc,0x92,0xfc,0x1f,0xfd,0xe1,0xfd,0x59,0xfe, +0xca,0xfe,0x59,0xff,0xaf,0xff,0x1e,0x0,0x12,0x1,0x33,0x2, +0x19,0x3,0x94,0x3,0x7d,0x3,0x17,0x3,0x83,0x2,0x51,0x1, +0x9a,0xff,0x11,0xfe,0x0,0xfd,0x83,0xfc,0xa7,0xfc,0xff,0xfc, +0x56,0xfd,0xe1,0xfd,0x86,0xfe,0x3e,0xff,0x3a,0x0,0x38,0x1, +0x28,0x2,0x59,0x3,0x55,0x4,0x49,0x4,0x1d,0x3,0x20,0x1, +0xda,0xfe,0xfb,0xfc,0xb9,0xfb,0x1b,0xfb,0x56,0xfb,0x47,0xfc, +0xbb,0xfd,0xc5,0xff,0x0,0x2,0xb6,0x3,0xac,0x4,0xf7,0x4, +0xac,0x4,0xc7,0x3,0x37,0x2,0x42,0x0,0x6c,0xfe,0xf3,0xfc, +0x0,0xfc,0xa3,0xfb,0xb5,0xfb,0x2f,0xfc,0x1c,0xfd,0x62,0xfe, +0xe9,0xff,0x62,0x1,0x4b,0x2,0xc9,0x2,0x4b,0x3,0x9a,0x3, +0x61,0x3,0xd4,0x2,0x1d,0x2,0x18,0x1,0xc6,0xff,0x7b,0xfe, +0x76,0xfd,0xbb,0xfc,0x81,0xfc,0xf9,0xfc,0xc4,0xfd,0x8e,0xfe, +0x65,0xff,0x2a,0x0,0xbe,0x0,0x38,0x1,0x7a,0x1,0x94,0x1, +0xaf,0x1,0x77,0x1,0xe6,0x0,0x8b,0x0,0x4c,0x0,0xe4,0xff, +0x9e,0xff,0x75,0xff,0x2b,0xff,0xeb,0xfe,0xa8,0xfe,0x56,0xfe, +0x65,0xfe,0x7,0xff,0x4,0x0,0x13,0x1,0xc3,0x1,0xfd,0x1, +0xa,0x2,0xd9,0x1,0x70,0x1,0x2e,0x1,0xea,0x0,0x5c,0x0, +0xc2,0xff,0x21,0xff,0x6a,0xfe,0xdf,0xfd,0x9d,0xfd,0xb9,0xfd, +0x72,0xfe,0x8b,0xff,0x9c,0x0,0xc0,0x1,0xd8,0x2,0x5e,0x3, +0x5e,0x3,0x2e,0x3,0x96,0x2,0x58,0x1,0xd1,0xff,0x61,0xfe, +0x24,0xfd,0x69,0xfc,0x61,0xfc,0xb2,0xfc,0x2f,0xfd,0x15,0xfe, +0x4f,0xff,0xa6,0x0,0xfb,0x1,0xdd,0x2,0x4,0x3,0xdc,0x2, +0xad,0x2,0x45,0x2,0x78,0x1,0x4b,0x0,0x10,0xff,0x2f,0xfe, +0x94,0xfd,0xb,0xfd,0xcd,0xfc,0xfe,0xfc,0x75,0xfd,0xb,0xfe, +0xa6,0xfe,0x5b,0xff,0x4d,0x0,0x4a,0x1,0x16,0x2,0xb9,0x2, +0x23,0x3,0x2c,0x3,0xd4,0x2,0x29,0x2,0x32,0x1,0xee,0xff, +0x57,0xfe,0xc1,0xfc,0xc7,0xfb,0x96,0xfb,0xed,0xfb,0xa9,0xfc, +0xf0,0xfd,0xd1,0xff,0xfa,0x1,0xef,0x3,0x77,0x5,0x68,0x6, +0x6d,0x6,0x78,0x5,0xf6,0x3,0x27,0x2,0xdd,0xff,0x4,0xfd, +0x20,0xfa,0xf4,0xf7,0xb9,0xf6,0x2c,0xf6,0x78,0xf6,0x21,0xf8, +0x16,0xfb,0xd5,0xfe,0x1f,0x3,0x7c,0x7,0xf8,0xa,0xa,0xd, +0xab,0xd,0xab,0xc,0xd9,0x9,0x3c,0x5,0x33,0xff,0x13,0xf9, +0x88,0xf4,0x1a,0xf2,0xad,0xf1,0x5e,0xf3,0xc7,0xf6,0xf1,0xfa, +0x35,0xff,0x24,0x3,0x5e,0x6,0xcb,0x8,0x42,0xa,0x71,0xa, +0x21,0x9,0x4d,0x6,0x83,0x2,0xba,0xfe,0x6b,0xfb,0xc7,0xf8, +0x2e,0xf7,0xbd,0xf6,0x75,0xf7,0x9d,0xf9,0xe7,0xfc,0x60,0x0, +0x86,0x3,0x3c,0x6,0x36,0x8,0x1a,0x9,0x99,0x8,0x92,0x6, +0x80,0x3,0x5a,0x0,0xdd,0xfd,0x46,0xfc,0x78,0xfb,0x29,0xfb, +0x36,0xfb,0xb0,0xfb,0x74,0xfc,0xc,0xfd,0x45,0xfd,0x6d,0xfd, +0xf8,0xfd,0x36,0xff,0xc,0x1,0xd2,0x2,0x15,0x4,0x8,0x5, +0xb4,0x5,0xa9,0x5,0x9a,0x4,0xb6,0x2,0x86,0x0,0x76,0xfe, +0x9e,0xfc,0x26,0xfb,0x55,0xfa,0x34,0xfa,0xae,0xfa,0xc1,0xfb, +0x3e,0xfd,0xd1,0xfe,0x58,0x0,0xb,0x2,0x19,0x4,0xd8,0x5, +0x33,0x6,0x18,0x5,0x39,0x3,0xeb,0x0,0x7d,0xfe,0x60,0xfc, +0x9e,0xfa,0x69,0xf9,0x63,0xf9,0xba,0xfa,0xb,0xfd,0xd8,0xff, +0x87,0x2,0xaf,0x4,0x44,0x6,0xfd,0x6,0x5b,0x6,0x4a,0x4, +0x56,0x1,0x7d,0xfe,0x97,0xfc,0xcf,0xfb,0xc5,0xfb,0x28,0xfc, +0x7,0xfd,0x7e,0xfe,0x1c,0x0,0x2a,0x1,0x90,0x1,0xb4,0x1, +0xc9,0x1,0xb4,0x1,0x35,0x1,0x2f,0x0,0x2,0xff,0x29,0xfe, +0xbc,0xfd,0xa2,0xfd,0xfb,0xfd,0xd,0xff,0xc9,0x0,0x73,0x2, +0x48,0x3,0x45,0x3,0xb8,0x2,0xcb,0x1,0xad,0x0,0x6c,0xff, +0xe3,0xfd,0x57,0xfc,0x6b,0xfb,0x59,0xfb,0xe7,0xfb,0xe8,0xfc, +0x62,0xfe,0x4e,0x0,0x37,0x2,0x6f,0x3,0xc9,0x3,0x86,0x3, +0xac,0x2,0x49,0x1,0xd6,0xff,0xc0,0xfe,0x2c,0xfe,0x37,0xfe, +0xb5,0xfe,0x2d,0xff,0x62,0xff,0x69,0xff,0x67,0xff,0x75,0xff, +0x84,0xff,0x85,0xff,0x90,0xff,0x9e,0xff,0xa5,0xff,0xec,0xff, +0x7a,0x0,0xd8,0x0,0xee,0x0,0x24,0x1,0x84,0x1,0xa9,0x1, +0x56,0x1,0xab,0x0,0xea,0xff,0x55,0xff,0x1d,0xff,0x43,0xff, +0x88,0xff,0xc3,0xff,0x25,0x0,0xe4,0x0,0xce,0x1,0x61,0x2, +0x48,0x2,0xb7,0x1,0xfa,0x0,0x11,0x0,0x6,0xff,0xa,0xfe, +0x36,0xfd,0xb7,0xfc,0xac,0xfc,0xf6,0xfc,0x95,0xfd,0xa1,0xfe, +0xe1,0xff,0x26,0x1,0x6f,0x2,0x79,0x3,0xfc,0x3,0xf3,0x3, +0x4e,0x3,0x2a,0x2,0xa,0x1,0x18,0x0,0x9,0xff,0xdc,0xfd, +0xee,0xfc,0x58,0xfc,0x10,0xfc,0x4a,0xfc,0x45,0xfd,0xe2,0xfe, +0xb8,0x0,0x59,0x2,0x7b,0x3,0xfb,0x3,0xbe,0x3,0xe5,0x2, +0xfd,0x1,0x4d,0x1,0x69,0x0,0x33,0xff,0x60,0xfe,0x68,0xfe, +0xec,0xfe,0x69,0xff,0xd6,0xff,0x5b,0x0,0xa6,0x0,0x51,0x0, +0xc9,0xff,0x57,0xff,0x40,0xfe,0x65,0xfc,0xdb,0xfa,0x14,0xfa, +0xaf,0xf9,0xe9,0xf9,0x6c,0xfb,0x68,0xfe,0x51,0x2,0x6,0x6, +0xb1,0x8,0x2c,0xa,0x38,0xa,0x7a,0x8,0x29,0x5,0xb0,0x0, +0x9d,0xfb,0x6d,0xf7,0x9a,0xf5,0xed,0xf5,0x4f,0xf7,0x80,0xf9, +0xcc,0xfc,0xa9,0x0,0xcb,0x3,0x63,0x5,0xdb,0x5,0xf5,0x5, +0x9b,0x5,0x34,0x4,0xc5,0x1,0xd,0xff,0xd,0xfd,0x97,0xfc, +0x47,0xfd,0xb2,0xfd,0x8e,0xfd,0x24,0xfe,0x2b,0x0,0xbc,0x2, +0x8a,0x4,0x3d,0x5,0x79,0x5,0xa2,0x5,0x12,0x5,0x7,0x3, +0xb1,0xff,0x2e,0xfc,0xce,0xf9,0xa,0xf9,0x17,0xf9,0x2e,0xf9, +0xaa,0xf9,0x30,0xfb,0x90,0xfd,0xec,0xff,0x9c,0x1,0xbf,0x2, +0xe1,0x3,0x2c,0x5,0x28,0x6,0x50,0x6,0x80,0x5,0xdb,0x3, +0xc4,0x1,0xa9,0xff,0x77,0xfd,0x14,0xfb,0x49,0xf9,0xf0,0xf8, +0xc9,0xf9,0x4a,0xfb,0x42,0xfd,0x2e,0xff,0x8e,0x0,0x87,0x1, +0x33,0x2,0x47,0x2,0xc5,0x1,0x28,0x1,0xe6,0x0,0x1c,0x1, +0x67,0x1,0x39,0x1,0x7a,0x0,0x9c,0xff,0x2,0xff,0xa1,0xfe, +0x50,0xfe,0x0,0xfe,0xb0,0xfd,0xb8,0xfd,0xcf,0xfe,0x9,0x1, +0x89,0x3,0x87,0x5,0xc1,0x6,0x8,0x7,0x2a,0x6,0x30,0x4, +0x79,0x1,0x7e,0xfe,0xa2,0xfb,0x68,0xf9,0x62,0xf8,0x8e,0xf8, +0x7a,0xf9,0xfb,0xfa,0x43,0xfd,0x43,0x0,0x5d,0x3,0xc3,0x5, +0x30,0x7,0xd4,0x7,0xb5,0x7,0xb0,0x6,0xd7,0x4,0x5b,0x2, +0x85,0xff,0xc9,0xfc,0x91,0xfa,0x20,0xf9,0xa8,0xf8,0x42,0xf9, +0xe0,0xfa,0x43,0xfd,0xcc,0xff,0x9b,0x1,0x58,0x2,0x84,0x2, +0x8f,0x2,0x3f,0x2,0x91,0x1,0xe0,0x0,0x46,0x0,0xd1,0xff, +0x95,0xff,0x4f,0xff,0xf,0xff,0x2d,0xff,0x58,0xff,0x5a,0xff, +0xb7,0xff,0x55,0x0,0xa1,0x0,0xda,0x0,0x63,0x1,0x16,0x2, +0xae,0x2,0xcd,0x2,0x3e,0x2,0x3b,0x1,0xe4,0xff,0x5f,0xfe, +0x2d,0xfd,0x98,0xfc,0x98,0xfc,0x11,0xfd,0xc8,0xfd,0xb9,0xfe, +0xc6,0xff,0x44,0x0,0x34,0x0,0x83,0x0,0x38,0x1,0xc5,0x1, +0x65,0x2,0x46,0x3,0x2,0x4,0x6d,0x4,0x6c,0x4,0xc0,0x3, +0x67,0x2,0x7b,0x0,0x5f,0xfe,0xd3,0xfc,0xfc,0xfb,0x62,0xfb, +0x13,0xfb,0x92,0xfb,0xe0,0xfc,0x71,0xfe,0xdb,0xff,0x29,0x1, +0x6d,0x2,0x50,0x3,0x86,0x3,0x27,0x3,0x48,0x2,0xc,0x1, +0xf2,0xff,0x38,0xff,0x9c,0xfe,0x10,0xfe,0xe0,0xfd,0x2a,0xfe, +0xc1,0xfe,0x61,0xff,0xfd,0xff,0xd9,0x0,0x7,0x2,0x17,0x3, +0xb1,0x3,0xbf,0x3,0x15,0x3,0xd3,0x1,0x89,0x0,0x72,0xff, +0x8a,0xfe,0x1b,0xfe,0x2f,0xfe,0x69,0xfe,0xc9,0xfe,0x94,0xff, +0xa4,0x0,0x8d,0x1,0xa,0x2,0x1e,0x2,0xef,0x1,0x8c,0x1, +0xea,0x0,0x1,0x0,0xd9,0xfe,0x9e,0xfd,0x57,0xfc,0xe2,0xfa, +0x68,0xf9,0x27,0xf8,0x39,0xf7,0x29,0xf7,0xb1,0xf8,0xb9,0xfb, +0xb8,0xff,0x40,0x4,0x87,0x8,0xea,0xb,0x6c,0xe,0xb5,0xf, +0xa6,0xe,0x80,0xa,0xe5,0x3,0xb2,0xfc,0xd2,0xf6,0xf5,0xf2, +0xb4,0xf0,0xcf,0xef,0xc5,0xf0,0xfd,0xf3,0xb6,0xf8,0x9a,0xfd, +0x2a,0x2,0xa6,0x6,0xf,0xb,0xa5,0xe,0xec,0xf,0xc9,0xd, +0x43,0x9,0xc6,0x4,0x3a,0x1,0x87,0xfd,0x31,0xf9,0xce,0xf5, +0x41,0xf5,0x79,0xf7,0xd9,0xfa,0x28,0xfe,0x47,0x1,0x78,0x4, +0x85,0x7,0x64,0x9,0xc0,0x8,0x50,0x5,0xc9,0x0,0xbe,0xfd, +0xd1,0xfc,0x5a,0xfc,0x6e,0xfb,0x17,0xfb,0xef,0xfb,0xfc,0xfc, +0x5a,0xfd,0x3c,0xfd,0x13,0xfd,0x11,0xfd,0x8b,0xfd,0xd8,0xfe, +0xbc,0x0,0x85,0x2,0xf1,0x3,0x44,0x5,0x69,0x6,0x8e,0x6, +0x32,0x5,0xe2,0x2,0x32,0x0,0x49,0xfd,0xdc,0xfa,0x91,0xf9, +0xd6,0xf8,0x30,0xf8,0x22,0xf8,0xe3,0xf8,0x49,0xfa,0x80,0xfc, +0x5f,0xff,0x68,0x2,0x59,0x5,0xb9,0x7,0xd2,0x8,0x3e,0x8, +0x28,0x6,0x80,0x3,0x38,0x1,0x1,0xff,0x60,0xfc,0x2,0xfa, +0xe0,0xf8,0x99,0xf9,0x5e,0xfc,0x75,0x0,0xb8,0x4,0x54,0x8, +0x89,0xa,0xf,0xb,0x19,0xa,0x5a,0x7,0xe2,0x2,0x4e,0xfe, +0xf,0xfb,0x8,0xf9,0xb5,0xf7,0x0,0xf7,0x8,0xf7,0x32,0xf8, +0xcd,0xfa,0x59,0xfe,0xe6,0x1,0xdd,0x4,0x14,0x7,0x77,0x8, +0xf4,0x8,0x6a,0x8,0xaa,0x6,0xf8,0x3,0x18,0x1,0x75,0xfe, +0xc,0xfc,0x29,0xfa,0x60,0xf9,0xe0,0xf9,0x54,0xfb,0x25,0xfd, +0xd6,0xfe,0x1c,0x0,0xa2,0x0,0x50,0x0,0xa2,0xff,0xf,0xff, +0x95,0xfe,0x55,0xfe,0xb4,0xfe,0x99,0xff,0x81,0x0,0x44,0x1, +0xef,0x1,0x29,0x2,0xa1,0x1,0xa6,0x0,0xba,0xff,0xef,0xfe, +0x36,0xfe,0xed,0xfd,0xaa,0xfe,0x6b,0x0,0x5c,0x2,0xad,0x3, +0x3d,0x4,0x3a,0x4,0xcb,0x3,0x1a,0x3,0x43,0x2,0x45,0x1, +0x44,0x0,0x83,0xff,0x1,0xff,0x5c,0xfe,0x58,0xfd,0x79,0xfc, +0x86,0xfc,0x97,0xfd,0x1f,0xff,0x99,0x0,0xde,0x1,0x1f,0x3, +0xa0,0x4,0xf,0x6,0x78,0x6,0x91,0x5,0x27,0x4,0xb1,0x2, +0xe8,0x0,0xe9,0xfe,0x24,0xfd,0xca,0xfb,0x48,0xfb,0xd8,0xfb, +0xc7,0xfc,0xad,0xfd,0xf2,0xfe,0x8d,0x0,0xf6,0x1,0xc5,0x2, +0xb6,0x2,0x1c,0x2,0x9c,0x1,0x12,0x1,0x31,0x0,0x45,0xff, +0x72,0xfe,0xd1,0xfd,0xc4,0xfd,0x17,0xfe,0x5e,0xfe,0xe9,0xfe, +0x2a,0x0,0xf1,0x1,0x8f,0x3,0x62,0x4,0x9b,0x4,0xac,0x4, +0x20,0x4,0x92,0x2,0xb9,0x0,0x3e,0xff,0x12,0xfe,0x1e,0xfd, +0x90,0xfc,0xa9,0xfc,0x7a,0xfd,0xc8,0xfe,0x4a,0x0,0x99,0x1, +0x58,0x2,0xbf,0x2,0x13,0x3,0x5,0x3,0x62,0x2,0x3f,0x1, +0x87,0xff,0x1f,0xfd,0x29,0xfa,0xf5,0xf6,0x22,0xf4,0x5a,0xf2, +0x48,0xf2,0x90,0xf4,0xf6,0xf8,0x82,0xfe,0xb1,0x4,0xeb,0xa, +0xe3,0xf,0xb2,0x12,0x15,0x13,0x8c,0x10,0xd7,0xa,0xc5,0x2, +0x49,0xfa,0xc4,0xf3,0x3a,0xf0,0xdc,0xee,0x35,0xef,0xea,0xf1, +0xd5,0xf6,0x9a,0xfc,0x19,0x2,0x3,0x7,0x48,0xb,0x91,0xe, +0x17,0x10,0x2f,0xf,0xe5,0xb,0x15,0x7,0x22,0x2,0x2,0xfe, +0xa4,0xfa,0xd0,0xf7,0x33,0xf6,0xbd,0xf6,0x7f,0xf9,0x7f,0xfd, +0x65,0x1,0x80,0x4,0xe8,0x6,0x4b,0x8,0xc9,0x7,0x48,0x5, +0xb9,0x1,0x56,0xfe,0x16,0xfc,0x16,0xfb,0xcc,0xfa,0x3,0xfb, +0xad,0xfb,0x4a,0xfc,0x7a,0xfc,0x70,0xfc,0x9a,0xfc,0x3d,0xfd, +0x21,0xfe,0x1d,0xff,0x95,0x0,0x55,0x2,0x6f,0x3,0xca,0x3, +0xd5,0x3,0x5f,0x3,0x44,0x2,0xc5,0x0,0xfc,0xfe,0x10,0xfd, +0x63,0xfb,0x68,0xfa,0x84,0xfa,0x4f,0xfb,0xc4,0xfb,0xdb,0xfb, +0x54,0xfc,0x5a,0xfd,0xcb,0xfe,0x9f,0x0,0x9b,0x2,0x89,0x4, +0x34,0x6,0x27,0x7,0x1a,0x7,0x18,0x6,0x45,0x4,0x20,0x2, +0x17,0x0,0xff,0xfd,0x2,0xfc,0xef,0xfa,0x1e,0xfb,0x71,0xfc, +0xe8,0xfe,0x8,0x2,0xa2,0x4,0xfc,0x5,0x4e,0x6,0xf5,0x5, +0xe1,0x4,0xec,0x2,0x9a,0x0,0xc5,0xfe,0x72,0xfd,0x33,0xfc, +0x57,0xfb,0x4a,0xfb,0xe3,0xfb,0x13,0xfd,0xd7,0xfe,0xb9,0x0, +0x67,0x2,0xc5,0x3,0x8a,0x4,0xb1,0x4,0x48,0x4,0x1f,0x3, +0x79,0x1,0xbc,0xff,0xb3,0xfd,0x7a,0xfb,0xc0,0xf9,0xd5,0xf8, +0xd3,0xf8,0xd5,0xf9,0xad,0xfb,0x39,0xfe,0xb,0x1,0x31,0x3, +0x4e,0x4,0x7d,0x4,0xa4,0x3,0x44,0x2,0x20,0x1,0x1,0x0, +0xbb,0xfe,0xce,0xfd,0x70,0xfd,0x74,0xfd,0x98,0xfd,0x9b,0xfd, +0xdc,0xfd,0xb9,0xfe,0xb1,0xff,0x72,0x0,0x6a,0x1,0xcb,0x2, +0x44,0x4,0x65,0x5,0xf4,0x5,0xfd,0x5,0x3e,0x5,0x8b,0x3, +0x98,0x1,0xd8,0xff,0xff,0xfd,0x65,0xfc,0xc3,0xfb,0xfb,0xfb, +0xa4,0xfc,0xa4,0xfd,0x18,0xff,0x1a,0x1,0x2d,0x3,0xa1,0x4, +0x89,0x5,0x1a,0x6,0x31,0x6,0xd5,0x5,0xc0,0x4,0x8b,0x2, +0xe2,0xff,0xc0,0xfd,0x38,0xfc,0x17,0xfb,0x5f,0xfa,0x56,0xfa, +0x94,0xfb,0xf5,0xfd,0x74,0x0,0xbb,0x2,0xe4,0x4,0x5d,0x6, +0xc7,0x6,0x4b,0x6,0xa9,0x4,0xd6,0x1,0xca,0xfe,0x77,0xfc, +0x1,0xfb,0x10,0xfa,0x65,0xf9,0x7d,0xf9,0xf0,0xfa,0x1a,0xfd, +0xfa,0xfe,0x90,0x0,0x2,0x2,0xeb,0x2,0x2a,0x3,0xd6,0x2, +0x7,0x2,0x3b,0x1,0xc6,0x0,0x63,0x0,0xf8,0xff,0xab,0xff, +0x5c,0xff,0xce,0xfe,0xe6,0xfd,0xc1,0xfc,0xaa,0xfb,0x98,0xfa, +0x59,0xf9,0x19,0xf8,0xfb,0xf6,0x16,0xf6,0xd5,0xf5,0x82,0xf6, +0x2d,0xf8,0xb,0xfb,0x9,0xff,0xaf,0x3,0x62,0x8,0x20,0xc, +0x3a,0xe,0x17,0xf,0xef,0xe,0xa,0xd,0xca,0x8,0x7e,0x2, +0xbf,0xfb,0xb0,0xf6,0xea,0xf3,0xcb,0xf2,0x7d,0xf3,0x8c,0xf6, +0x5c,0xfb,0x60,0x0,0x89,0x4,0xb,0x8,0x24,0xb,0xc5,0xc, +0x26,0xc,0xb,0xa,0xe5,0x6,0x6f,0x2,0xbd,0xfd,0xa2,0xfa, +0x49,0xf9,0xa9,0xf8,0xd0,0xf8,0xba,0xfa,0x14,0xfe,0x3e,0x1, +0x9d,0x3,0xb4,0x5,0x58,0x7,0xa2,0x7,0x31,0x6,0x7f,0x3, +0x28,0x0,0x8d,0xfc,0x71,0xf9,0xc3,0xf7,0x5b,0xf7,0x8c,0xf7, +0x5f,0xf8,0xaf,0xf9,0xd5,0xfa,0xc2,0xfb,0x5d,0xfc,0x1c,0xfc, +0x53,0xfb,0x17,0xfb,0xe9,0xfb,0x94,0xfd,0xa9,0xff,0xfa,0x1, +0x9f,0x4,0xa,0x7,0x5a,0x8,0x73,0x8,0x48,0x7,0x7b,0x4, +0x8c,0x0,0xc6,0xfc,0xf5,0xf9,0xa,0xf8,0xc0,0xf6,0x5d,0xf6, +0x5f,0xf7,0x80,0xf9,0x31,0xfc,0x6f,0xff,0x2c,0x3,0xed,0x6, +0x2b,0xa,0x5a,0xc,0xf5,0xc,0xf5,0xb,0xbe,0x9,0xa9,0x6, +0xd4,0x2,0x89,0xfe,0x7d,0xfa,0x7a,0xf7,0x59,0xf6,0xc4,0xf7, +0x3d,0xfb,0x79,0xff,0xca,0x3,0xcb,0x7,0xb7,0xa,0xfe,0xb, +0x38,0xb,0x34,0x8,0xf5,0x3,0xf0,0xff,0x7f,0xfc,0x66,0xf9, +0xe7,0xf6,0x8c,0xf5,0x94,0xf5,0xc0,0xf6,0xad,0xf8,0x35,0xfb, +0xe,0xfe,0xae,0x0,0xdd,0x2,0xb7,0x4,0x9,0x6,0x4c,0x6, +0x4d,0x5,0x8b,0x3,0xa1,0x1,0xab,0xff,0xb3,0xfd,0x14,0xfc, +0x2c,0xfb,0x23,0xfb,0xcc,0xfb,0xcf,0xfc,0xe4,0xfd,0x9e,0xfe, +0xad,0xfe,0x55,0xfe,0xe2,0xfd,0x38,0xfd,0x92,0xfc,0x99,0xfc, +0xaf,0xfd,0xc3,0xff,0x1f,0x2,0xc9,0x3,0x9c,0x4,0xc,0x5, +0xf,0x5,0x39,0x4,0x8b,0x2,0xae,0x0,0x77,0xff,0x1b,0xff, +0x32,0xff,0x9c,0xff,0x8c,0x0,0xe4,0x1,0x48,0x3,0x7e,0x4, +0x54,0x5,0x8b,0x5,0x21,0x5,0x42,0x4,0x11,0x3,0xb5,0x1, +0x6a,0x0,0x29,0xff,0xf1,0xfd,0x24,0xfd,0xfb,0xfc,0x55,0xfd, +0x55,0xfe,0x3,0x0,0xe5,0x1,0x9d,0x3,0xff,0x4,0xc0,0x5, +0xc6,0x5,0x34,0x5,0x4,0x4,0x4e,0x2,0x8a,0x0,0xb,0xff, +0x9d,0xfd,0x27,0xfc,0x20,0xfb,0xb6,0xfa,0x7f,0xfa,0x92,0xfa, +0x68,0xfb,0xb4,0xfc,0xfa,0xfd,0x45,0xff,0xa2,0x0,0x10,0x2, +0x6b,0x3,0xe,0x4,0xae,0x3,0xc1,0x2,0x7b,0x1,0xb6,0xff, +0xa7,0xfd,0xe7,0xfb,0x1a,0xfb,0x4f,0xfb,0xb,0xfc,0x27,0xfd, +0x88,0xfe,0xbb,0xff,0x96,0x0,0xd,0x1,0xdd,0x0,0xfe,0xff, +0x1f,0xfe,0xdb,0xfa,0x14,0xf7,0xe6,0xf3,0x5e,0xf1,0xd5,0xef, +0x30,0xf0,0xd7,0xf2,0xde,0xf7,0x9f,0xfe,0xe0,0x5,0x1c,0xd, +0x9c,0x13,0xc0,0x17,0xca,0x18,0xbf,0x16,0x55,0x11,0x12,0x9, +0x83,0xff,0x60,0xf6,0x58,0xef,0xd,0xeb,0x6d,0xe9,0x62,0xeb, +0x17,0xf1,0x85,0xf8,0x22,0x0,0xb4,0x7,0x7b,0xe,0x52,0x13, +0x50,0x15,0x10,0x14,0x62,0x10,0x45,0xb,0x39,0x5,0x68,0xff, +0xc2,0xfa,0xe2,0xf6,0x1a,0xf4,0xbd,0xf3,0xe3,0xf5,0x91,0xf9, +0x2c,0xfe,0x53,0x3,0x4a,0x8,0xd7,0xb,0xcf,0xc,0x1f,0xb, +0x5b,0x7,0x29,0x2,0xa7,0xfc,0xc6,0xf7,0x98,0xf3,0x63,0xf0, +0xe6,0xee,0x38,0xef,0xb0,0xf0,0xbf,0xf2,0x70,0xf5,0x6,0xf9, +0x5,0xfd,0x66,0x0,0xb,0x3,0x63,0x5,0x30,0x7,0x26,0x8, +0x74,0x8,0xd3,0x7,0xdd,0x5,0x25,0x3,0x5d,0x0,0x72,0xfd, +0x73,0xfa,0xd,0xf8,0xc2,0xf6,0x88,0xf6,0x1c,0xf7,0x58,0xf8, +0x45,0xfa,0xe4,0xfc,0x17,0x0,0x94,0x3,0xcd,0x6,0x79,0x9, +0xbd,0xb,0x5e,0xd,0x91,0xd,0xe8,0xb,0xbd,0x8,0xd5,0x4, +0x9d,0x0,0x2a,0xfc,0x64,0xf8,0xc1,0xf6,0x93,0xf7,0x7a,0xfa, +0x64,0xff,0x60,0x5,0xc2,0xa,0xcf,0xe,0x19,0x11,0xba,0x10, +0x94,0xd,0x7f,0x8,0x84,0x2,0xb6,0xfc,0xad,0xf7,0x95,0xf3, +0x5,0xf1,0x91,0xf0,0xf,0xf2,0xce,0xf4,0x0,0xf8,0x5a,0xfb, +0x9,0xff,0x90,0x2,0x33,0x5,0x6,0x7,0x15,0x8,0x3,0x8, +0xe4,0x6,0xeb,0x4,0x2d,0x2,0xc,0xff,0xf0,0xfb,0x48,0xf9, +0xc5,0xf7,0x77,0xf7,0xe,0xf8,0xb7,0xf9,0x2a,0xfc,0x45,0xfe, +0x97,0xff,0x71,0x0,0xd0,0x0,0x75,0x0,0x73,0xff,0x5b,0xfe, +0xf4,0xfd,0x7c,0xfe,0x96,0xff,0xca,0x0,0xbd,0x1,0x72,0x2, +0x49,0x3,0x23,0x4,0x7a,0x4,0x87,0x4,0x2,0x5,0xd0,0x5, +0x57,0x6,0x88,0x6,0x8c,0x6,0x3a,0x6,0x7c,0x5,0x46,0x4, +0x8b,0x2,0xbf,0x0,0x4d,0xff,0x21,0xfe,0x8a,0xfd,0x5,0xfe, +0x27,0xff,0x55,0x0,0x77,0x1,0x61,0x2,0xf4,0x2,0x3f,0x3, +0x23,0x3,0xe6,0x2,0xeb,0x2,0xd9,0x2,0xd0,0x2,0x62,0x3, +0xc5,0x3,0xf0,0x2,0x7e,0x1,0x1e,0x0,0x74,0xfe,0x72,0xfc, +0xdc,0xfa,0x76,0xfa,0x35,0xfb,0x9c,0xfc,0x99,0xfe,0xed,0x0, +0x7a,0x2,0xa1,0x2,0xbb,0x1,0xa,0x0,0xb2,0xfd,0x10,0xfb, +0xbd,0xf8,0x95,0xf7,0xd9,0xf7,0x25,0xf9,0x97,0xfb,0x1,0xff, +0x42,0x2,0xfe,0x4,0x62,0x7,0xaa,0x8,0x50,0x8,0xbf,0x6, +0x1c,0x4,0x67,0x0,0xf5,0xfb,0x4,0xf7,0xdc,0xf1,0xfc,0xec, +0x1e,0xe9,0x48,0xe7,0xec,0xe7,0xdb,0xea,0x54,0xf0,0x6d,0xf8, +0x55,0x2,0xfc,0xc,0xe0,0x16,0x3c,0x1e,0x59,0x22,0xf4,0x22, +0x56,0x1f,0x89,0x17,0x73,0xc,0x36,0xff,0xd,0xf2,0xc6,0xe7, +0xa6,0xe1,0x99,0xdf,0xbc,0xe1,0x59,0xe8,0xb9,0xf2,0x89,0xfe, +0x6a,0x9,0x9c,0x12,0xad,0x19,0x38,0x1d,0xb6,0x1c,0x3f,0x19, +0x5a,0x13,0xc8,0xa,0xc3,0x0,0xe3,0xf7,0x90,0xf1,0x6c,0xed, +0x6b,0xeb,0xac,0xec,0x99,0xf1,0xce,0xf8,0xc7,0x0,0xd6,0x8, +0xc3,0xf,0xd1,0x13,0x6c,0x14,0xce,0x11,0xc3,0xb,0xe0,0x2, +0x44,0xf9,0xde,0xf0,0x6c,0xea,0x66,0xe6,0x6b,0xe5,0x86,0xe7, +0xfd,0xeb,0xa,0xf2,0x10,0xf9,0xdd,0xff,0x21,0x5,0xc6,0x8, +0x3b,0xb,0x22,0xc,0x47,0xb,0x83,0x9,0xa4,0x7,0x84,0x5, +0xd9,0x2,0xeb,0xff,0xff,0xfc,0xd8,0xf9,0xc5,0xf6,0xf4,0xf4, +0xd1,0xf4,0xac,0xf5,0x36,0xf7,0x96,0xf9,0xbd,0xfc,0x5d,0x0, +0xc2,0x3,0x59,0x6,0x4c,0x8,0xa3,0x9,0x6,0xa,0x97,0x9, +0xc3,0x8,0xad,0x7,0x71,0x6,0xd,0x5,0x83,0x3,0x11,0x2, +0xac,0x0,0x36,0xff,0x37,0xfe,0x6e,0xfe,0xf4,0xff,0xf,0x2, +0xed,0x3,0x94,0x5,0x1e,0x7,0xc4,0x7,0x15,0x7,0x66,0x5, +0xbf,0x2,0x6c,0xff,0x62,0xfc,0xed,0xf9,0x3,0xf8,0x29,0xf7, +0xa7,0xf7,0x30,0xf9,0x67,0xfb,0xbc,0xfd,0xd1,0xff,0xb8,0x1, +0x4a,0x3,0x3f,0x4,0xb1,0x4,0xc3,0x4,0x56,0x4,0x36,0x3, +0x69,0x1,0x46,0xff,0xf9,0xfc,0x8c,0xfa,0x6d,0xf8,0xff,0xf6, +0x5b,0xf6,0xbd,0xf6,0x24,0xf8,0x28,0xfa,0x92,0xfc,0x25,0xff, +0x8a,0x1,0x9f,0x3,0x3,0x5,0x47,0x5,0xb0,0x4,0xb6,0x3, +0xac,0x2,0xff,0x1,0xa9,0x1,0x5e,0x1,0x41,0x1,0x57,0x1, +0x6c,0x1,0xa2,0x1,0xef,0x1,0x44,0x2,0x2c,0x3,0xd2,0x4, +0x8d,0x6,0xe7,0x7,0xd1,0x8,0x2f,0x9,0xc1,0x8,0x37,0x7, +0xc1,0x4,0x10,0x2,0x5f,0xff,0xba,0xfc,0xcc,0xfa,0x13,0xfa, +0x6e,0xfa,0xca,0xfb,0x2e,0xfe,0x43,0x1,0x5e,0x4,0xe9,0x6, +0xad,0x8,0x80,0x9,0x0,0x9,0x18,0x7,0x3b,0x4,0xe0,0x0, +0x59,0xfd,0x2e,0xfa,0x3,0xf8,0x26,0xf7,0x8d,0xf7,0x33,0xf9, +0xe1,0xfb,0xf2,0xfe,0xd8,0x1,0x4e,0x4,0xc2,0x5,0x9a,0x5, +0xef,0x3,0x45,0x1,0x0,0xfe,0x8b,0xfa,0xb3,0xf7,0x5f,0xf6, +0xa0,0xf6,0x12,0xf8,0xea,0xfa,0xdd,0xfe,0x61,0x2,0xbf,0x4, +0x79,0x6,0x23,0x7,0xbc,0x5,0x56,0x2,0xab,0xfd,0x47,0xf8, +0x9e,0xf2,0x3d,0xed,0xf,0xe9,0x4,0xe7,0x71,0xe7,0x99,0xea, +0xef,0xf0,0x24,0xfa,0xdf,0x4,0xa1,0xf,0x38,0x19,0x6b,0x20, +0xf7,0x23,0x39,0x23,0x1d,0x1e,0x9f,0x14,0xb5,0x7,0x3,0xfa, +0x38,0xee,0xc8,0xe5,0x9e,0xe1,0x68,0xe2,0x2b,0xe8,0xc4,0xf1, +0xce,0xfc,0x17,0x7,0xe3,0xf,0x96,0x16,0xf0,0x19,0x8f,0x19, +0x65,0x16,0x3c,0x11,0x31,0xa,0x10,0x2,0xea,0xfa,0x16,0xf6, +0xde,0xf2,0xb6,0xf0,0xd7,0xf0,0x20,0xf4,0x8c,0xf9,0xa6,0xff, +0xb4,0x5,0xf7,0xa,0x1d,0xe,0x27,0xe,0x34,0xb,0xdb,0x5, +0xdf,0xfe,0xdd,0xf7,0x94,0xf2,0x52,0xef,0x85,0xed,0x49,0xed, +0x19,0xef,0x9f,0xf2,0xbe,0xf6,0x87,0xfa,0xa8,0xfd,0x2a,0x0, +0xe,0x2,0x18,0x3,0x21,0x3,0xc4,0x2,0xdc,0x2,0x80,0x3, +0x40,0x4,0xd2,0x4,0x1e,0x5,0xef,0x4,0xb1,0x3,0x36,0x1, +0x98,0xfe,0xc4,0xfc,0x4a,0xfb,0x5,0xfa,0xc3,0xf9,0xbb,0xfa, +0x69,0xfc,0x6d,0xfe,0x96,0x0,0xfb,0x2,0xa5,0x5,0x24,0x8, +0x26,0xa,0x7e,0xb,0xce,0xb,0x11,0xb,0x6b,0x9,0xd2,0x6, +0xc8,0x3,0xe8,0x0,0x1a,0xfe,0xda,0xfb,0x75,0xfb,0xb,0xfd, +0x8e,0xff,0x61,0x2,0x5b,0x5,0xfa,0x7,0x52,0x9,0xac,0x8, +0x11,0x6,0x18,0x2,0x7d,0xfd,0x17,0xf9,0x86,0xf5,0xf5,0xf2, +0xb2,0xf1,0x76,0xf2,0x99,0xf5,0x32,0xfa,0xd8,0xfe,0x39,0x3, +0x9f,0x7,0x7,0xb,0x11,0xc,0x10,0xb,0x14,0x9,0x40,0x6, +0x7d,0x2,0x47,0xfe,0x2b,0xfa,0x83,0xf6,0xcf,0xf3,0x83,0xf2, +0x78,0xf2,0x79,0xf3,0xe8,0xf5,0xcd,0xf9,0x10,0xfe,0xb1,0x1, +0xac,0x4,0x31,0x7,0xf6,0x8,0x72,0x9,0x9e,0x8,0xd,0x7, +0x15,0x5,0xd3,0x2,0xe1,0x0,0x93,0xff,0x89,0xfe,0xea,0xfd, +0x4d,0xfe,0x5f,0xff,0x53,0x0,0x14,0x1,0x10,0x2,0x5e,0x3, +0xba,0x4,0x1d,0x6,0x9e,0x7,0xd4,0x8,0x4d,0x9,0x22,0x9, +0x5d,0x8,0xb3,0x6,0x2c,0x4,0x51,0x1,0xad,0xfe,0x51,0xfc, +0x47,0xfa,0x5a,0xf9,0x20,0xfa,0xb,0xfc,0x99,0xfe,0xad,0x1, +0x8d,0x4,0x85,0x6,0xa4,0x7,0xdb,0x7,0xfe,0x6,0x34,0x5, +0x94,0x2,0x63,0xff,0x3d,0xfc,0x4a,0xf9,0xa3,0xf6,0xfb,0xf4, +0xc6,0xf4,0xd0,0xf5,0xce,0xf7,0x89,0xfa,0xd8,0xfd,0x3d,0x1, +0xd5,0x3,0x51,0x5,0xc,0x6,0xe7,0x5,0xaa,0x4,0xd7,0x2, +0x3,0x1,0x4b,0xff,0xca,0xfd,0xac,0xfc,0xf7,0xfb,0x87,0xfb, +0x1b,0xfb,0xba,0xfa,0x9c,0xfa,0x7b,0xfa,0xb7,0xf9,0x56,0xf8, +0xdc,0xf6,0x6b,0xf5,0xfc,0xf3,0xe5,0xf2,0x7b,0xf2,0xed,0xf2, +0xcc,0xf4,0xb2,0xf8,0x64,0xfe,0x1e,0x5,0x4b,0xc,0x38,0x13, +0xae,0x18,0x79,0x1b,0x1e,0x1b,0x56,0x17,0xcf,0xf,0x86,0x5, +0x1c,0xfb,0x9b,0xf2,0x6d,0xec,0xfc,0xe8,0x50,0xe9,0xae,0xed, +0x9f,0xf4,0xd7,0xfb,0x70,0x2,0xe2,0x8,0x5f,0xe,0xa,0x11, +0x6,0x11,0xd3,0xf,0x7b,0xd,0x6f,0x9,0x7b,0x4,0xe1,0xff, +0xd8,0xfb,0x24,0xf8,0x5b,0xf5,0x9c,0xf4,0x2e,0xf6,0x75,0xf9, +0x6,0xfe,0x37,0x3,0x60,0x7,0x1b,0x9,0x87,0x8,0x4c,0x6, +0x74,0x2,0x57,0xfd,0x75,0xf8,0x17,0xf5,0x2,0xf3,0xa6,0xf1, +0x2a,0xf1,0xd3,0xf1,0x96,0xf3,0x22,0xf6,0xc1,0xf8,0xea,0xfa, +0xe9,0xfc,0x2b,0xff,0x71,0x1,0x3d,0x3,0x7c,0x4,0x91,0x5, +0x99,0x6,0x0,0x7,0x5e,0x6,0xfc,0x4,0xe3,0x2,0xd7,0xff, +0x8a,0xfc,0x1b,0xfa,0x82,0xf8,0x38,0xf7,0xa5,0xf6,0x70,0xf7, +0x72,0xf9,0x48,0xfc,0xc6,0xff,0xa5,0x3,0x99,0x7,0x76,0xb, +0xc7,0xe,0x94,0x10,0x43,0x10,0x4b,0xe,0x57,0xb,0x33,0x7, +0xc9,0x1,0x2f,0xfc,0xc6,0xf7,0x51,0xf5,0x17,0xf5,0x8,0xf7, +0xb,0xfb,0xb3,0x0,0x90,0x6,0x27,0xb,0xb,0xe,0xee,0xe, +0x58,0xd,0x8e,0x9,0x31,0x4,0xff,0xfd,0x1e,0xf8,0x32,0xf3, +0x57,0xef,0x49,0xed,0xb8,0xed,0x65,0xf0,0xb4,0xf4,0xeb,0xf9, +0x64,0xff,0xd1,0x4,0x6b,0x9,0x2f,0xc,0x4,0xd,0x15,0xc, +0x65,0x9,0x8c,0x5,0x18,0x1,0x54,0xfc,0x34,0xf8,0x88,0xf5, +0x1e,0xf4,0xad,0xf3,0xfe,0xf3,0xcf,0xf4,0x5c,0xf6,0xb0,0xf8, +0x29,0xfb,0xa2,0xfd,0x7d,0x0,0x9c,0x3,0x61,0x6,0x36,0x8, +0x0,0x9,0x15,0x9,0x84,0x8,0x20,0x7,0x31,0x5,0x18,0x3, +0x13,0x1,0x5d,0xff,0xe7,0xfd,0xc6,0xfc,0x83,0xfc,0x1f,0xfd, +0x1b,0xfe,0x87,0xff,0x98,0x1,0xd,0x4,0x76,0x6,0x4f,0x8, +0x5a,0x9,0xaa,0x9,0xe5,0x8,0xd6,0x6,0x21,0x4,0x1b,0x1, +0xaa,0xfd,0x9a,0xfa,0xe1,0xf8,0x77,0xf8,0xa,0xf9,0x8f,0xfa, +0xc,0xfd,0x48,0x0,0x80,0x3,0xf7,0x5,0x98,0x7,0x4c,0x8, +0xbe,0x7,0x17,0x6,0xb1,0x3,0xae,0x0,0x73,0xfd,0x97,0xfa, +0x7f,0xf8,0x46,0xf7,0xad,0xf6,0xc2,0xf6,0x15,0xf8,0x7a,0xfa, +0xfc,0xfc,0x3a,0xff,0x26,0x1,0x7b,0x2,0x58,0x3,0xe9,0x3, +0xdf,0x3,0x41,0x3,0x77,0x2,0x99,0x1,0xa4,0x0,0x8b,0xff, +0x37,0xfe,0xf,0xfd,0x77,0xfc,0xd7,0xfb,0x99,0xfa,0x18,0xf9, +0x95,0xf7,0x9a,0xf5,0x7,0xf3,0x9d,0xf0,0xfd,0xee,0x19,0xee, +0x37,0xee,0x71,0xf0,0x4a,0xf5,0x10,0xfc,0xe,0x4,0xbf,0xc, +0xcf,0x14,0x89,0x1a,0x54,0x1d,0x79,0x1d,0x96,0x1a,0xd1,0x13, +0xdc,0x9,0x37,0xff,0xfc,0xf5,0xe7,0xee,0x47,0xea,0xae,0xe8, +0xb5,0xea,0x7,0xf0,0xdf,0xf6,0x97,0xfd,0xf0,0x3,0xc0,0x9, +0xd,0xe,0x33,0x10,0x64,0x10,0xf5,0xe,0xf9,0xb,0x9f,0x7, +0xed,0x2,0x10,0xff,0xbd,0xfb,0x79,0xf8,0xaf,0xf6,0xbc,0xf7, +0xa8,0xfa,0xfa,0xfd,0x81,0x1,0x1,0x5,0x2f,0x7,0x27,0x7, +0x97,0x5,0x4c,0x3,0xd,0x0,0x37,0xfc,0x2e,0xf9,0x16,0xf7, +0xff,0xf4,0x3a,0xf3,0xc2,0xf2,0x86,0xf3,0xf1,0xf4,0xc3,0xf6, +0xd5,0xf8,0xd9,0xfa,0x9e,0xfc,0x84,0xfe,0xd5,0x0,0xfe,0x2, +0xed,0x4,0x70,0x7,0xfb,0x9,0xe,0xb,0xbe,0xa,0xaa,0x9, +0x30,0x7,0xf9,0x2,0x9,0xfe,0x54,0xf9,0x16,0xf5,0x90,0xf1, +0x90,0xef,0xef,0xef,0xa2,0xf2,0x7,0xf7,0xbe,0xfc,0x3f,0x3, +0x9d,0x9,0x55,0xf,0x11,0x14,0xca,0x16,0xaa,0x16,0x12,0x14, +0x9c,0xf,0x32,0x9,0x4d,0x1,0xdf,0xf9,0x84,0xf4,0x59,0xf1, +0xb8,0xf0,0xa6,0xf3,0xa9,0xf9,0xa3,0x0,0x1e,0x7,0xa6,0xc, +0x53,0x10,0xe1,0x10,0x1d,0xe,0xea,0x8,0x3c,0x2,0x14,0xfb, +0xd9,0xf4,0x93,0xf0,0x87,0xee,0xe6,0xee,0xb8,0xf1,0x75,0xf6, +0x43,0xfc,0x24,0x2,0x11,0x7,0x98,0xa,0xa6,0xc,0x5,0xd, +0xbd,0xb,0x23,0x9,0x80,0x5,0x5a,0x1,0x5e,0xfd,0xbd,0xf9, +0xa8,0xf6,0xb7,0xf4,0xfa,0xf3,0x9,0xf4,0x26,0xf5,0xcb,0xf7, +0x62,0xfb,0xe1,0xfe,0xef,0x1,0x79,0x4,0x23,0x6,0xae,0x6, +0x2c,0x6,0xee,0x4,0x96,0x3,0xad,0x2,0x4d,0x2,0x62,0x2, +0xbd,0x2,0x1d,0x3,0x92,0x3,0x18,0x4,0x39,0x4,0xe2,0x3, +0x62,0x3,0xc4,0x2,0x47,0x2,0x65,0x2,0xf5,0x2,0xaf,0x3, +0x6f,0x4,0x8c,0x4,0x9d,0x3,0x16,0x2,0x2b,0x0,0xf1,0xfd, +0x14,0xfc,0x7,0xfb,0xc5,0xfa,0x60,0xfb,0xa7,0xfc,0x51,0xfe, +0x76,0x0,0xcc,0x2,0xcc,0x4,0x74,0x6,0x88,0x7,0x83,0x7, +0x88,0x6,0xdc,0x4,0x77,0x2,0xaf,0xff,0xe9,0xfc,0x45,0xfa, +0x2c,0xf8,0x8,0xf7,0xde,0xf6,0xbb,0xf7,0x87,0xf9,0xf3,0xfb, +0xdd,0xfe,0xdb,0x1,0x3b,0x4,0xeb,0x5,0x25,0x7,0xb1,0x7, +0x79,0x7,0xe2,0x6,0x28,0x6,0xa,0x5,0x75,0x3,0x7,0x2, +0x1b,0x1,0xb,0x0,0xaf,0xfe,0xe2,0xfd,0xad,0xfd,0x64,0xfd, +0x21,0xfd,0x35,0xfd,0x76,0xfd,0xbe,0xfd,0xd8,0xfd,0x9d,0xfd, +0x2e,0xfd,0x41,0xfc,0x91,0xfa,0xb1,0xf8,0xa,0xf7,0x9d,0xf5, +0xf4,0xf4,0x7f,0xf5,0x47,0xf7,0xa8,0xfa,0xaa,0xff,0x5d,0x5, +0xcf,0xa,0x72,0xf,0xeb,0x12,0xca,0x14,0x2f,0x14,0x9b,0x10, +0x8e,0xa,0x9c,0x2,0xb8,0xf9,0xe4,0xf1,0x73,0xec,0x62,0xe9, +0x1c,0xe9,0x49,0xec,0x5d,0xf2,0xfe,0xf9,0xc3,0x1,0xb2,0x8, +0x6a,0xe,0x2e,0x12,0x1c,0x13,0xa5,0x11,0xb1,0xe,0x5b,0xa, +0x2c,0x5,0x77,0x0,0xd9,0xfc,0xd,0xfa,0x14,0xf8,0xac,0xf7, +0x88,0xf9,0x32,0xfd,0x74,0x1,0xc6,0x5,0xbd,0x9,0xc,0xc, +0xbf,0xb,0x21,0x9,0xd2,0x4,0x55,0xff,0xa6,0xf9,0x27,0xf5, +0x7c,0xf2,0x2e,0xf1,0x18,0xf1,0xbd,0xf2,0xb8,0xf5,0xe8,0xf8, +0x29,0xfc,0x91,0xff,0x52,0x2,0xfb,0x3,0x2e,0x5,0x5e,0x6, +0x36,0x7,0x3f,0x7,0xc9,0x6,0x68,0x6,0x76,0x5,0x42,0x3, +0xd4,0x0,0xc6,0xfe,0xed,0xfb,0x70,0xf8,0x35,0xf6,0x84,0xf5, +0x3e,0xf5,0x7a,0xf5,0x2d,0xf7,0x6a,0xfa,0x31,0xfe,0xa1,0x1, +0xd1,0x4,0xcc,0x7,0xc4,0x9,0x8f,0xa,0xf0,0xa,0xca,0xa, +0x5d,0x9,0xff,0x6,0x96,0x4,0x37,0x2,0xbb,0xff,0x8f,0xfd, +0x23,0xfc,0x92,0xfb,0x28,0xfc,0xe,0xfe,0xa0,0x0,0x3f,0x3, +0xc5,0x5,0x93,0x7,0xfb,0x7,0xd,0x7,0xe2,0x4,0x89,0x1, +0xc2,0xfd,0x66,0xfa,0xee,0xf7,0xb9,0xf6,0xcb,0xf6,0x2e,0xf8, +0x1c,0xfb,0xd1,0xfe,0xc,0x2,0xa9,0x4,0xba,0x6,0xc1,0x7, +0xed,0x7,0xae,0x7,0xa0,0x6,0x95,0x4,0x13,0x2,0x86,0xff, +0x5,0xfd,0x81,0xfa,0x24,0xf8,0x97,0xf6,0x34,0xf6,0xab,0xf6, +0xe6,0xf7,0xdc,0xf9,0xfd,0xfb,0xf3,0xfd,0xf1,0xff,0xd2,0x1, +0x18,0x3,0xa6,0x3,0xd9,0x3,0x8,0x4,0x25,0x4,0xd3,0x3, +0xde,0x2,0xb0,0x1,0xf6,0x0,0xdb,0x0,0x3,0x1,0x41,0x1, +0xbb,0x1,0x6b,0x2,0x7,0x3,0x69,0x3,0xca,0x3,0x6f,0x4, +0x1a,0x5,0x4c,0x5,0xf4,0x4,0x16,0x4,0x6e,0x2,0x1d,0x0, +0xb4,0xfd,0x76,0xfb,0x96,0xf9,0xa0,0xf8,0xd6,0xf8,0x11,0xfa, +0x44,0xfc,0x3b,0xff,0x6d,0x2,0x70,0x5,0xed,0x7,0x7b,0x9, +0xf7,0x9,0x4a,0x9,0x26,0x7,0xcc,0x3,0x19,0x0,0x8a,0xfc, +0x60,0xf9,0x1c,0xf7,0xf9,0xf5,0xd3,0xf5,0xc0,0xf6,0xb8,0xf8, +0x3f,0xfb,0xe6,0xfd,0x60,0x0,0x4b,0x2,0x5a,0x3,0x72,0x3, +0xa3,0x2,0x2e,0x1,0x80,0xff,0xa,0xfe,0xfd,0xfc,0x67,0xfc, +0x8b,0xfc,0x7d,0xfd,0xc3,0xfe,0x1e,0x0,0xba,0x1,0x73,0x3, +0xe4,0x4,0xf7,0x5,0xb2,0x6,0x0,0x7,0xb2,0x6,0x89,0x5, +0x7e,0x3,0xe7,0x0,0xe,0xfe,0x30,0xfb,0xed,0xf8,0x12,0xf8, +0xca,0xf8,0xa1,0xfa,0x66,0xfd,0xee,0x0,0x54,0x4,0xce,0x6, +0x62,0x8,0xe0,0x8,0xc6,0x7,0x35,0x5,0xa8,0x1,0x8e,0xfd, +0x77,0xf9,0xbe,0xf5,0xb6,0xf2,0x22,0xf1,0x7b,0xf1,0xb7,0xf3, +0xc4,0xf7,0xfa,0xfc,0x45,0x2,0x5d,0x7,0x25,0xc,0x7b,0xf, +0xf5,0xf,0x6,0xd,0x36,0x7,0xed,0xff,0xea,0xf8,0x6b,0xf3, +0xfc,0xef,0xf2,0xee,0xc3,0xf0,0x4f,0xf5,0x3a,0xfb,0xdf,0x0, +0x97,0x5,0x60,0x9,0xc6,0xb,0x15,0xc,0x9d,0xa,0x8b,0x8, +0x3e,0x6,0x53,0x3,0x29,0x0,0x51,0xfd,0x75,0xfa,0xae,0xf7, +0x65,0xf6,0x77,0xf7,0x7,0xfa,0x10,0xfd,0xaf,0x0,0xc6,0x4, +0xcd,0x7,0x94,0x8,0xc2,0x7,0x74,0x6,0xdf,0x4,0xc8,0x2, +0x52,0x0,0x1f,0xfe,0x7d,0xfc,0x1c,0xfb,0x2e,0xfa,0x3b,0xfa, +0xd1,0xfa,0x7c,0xfb,0x8d,0xfc,0xba,0xfd,0x83,0xfe,0x67,0xff, +0xb4,0x0,0xe1,0x1,0xa8,0x2,0xe,0x3,0xe0,0x2,0x4,0x2, +0xbc,0x0,0x97,0xff,0x9c,0xfe,0x25,0xfd,0x68,0xfb,0x98,0xfa, +0xdd,0xfa,0x31,0xfb,0x25,0xfb,0x62,0xfb,0xa3,0xfc,0xa2,0xfe, +0x79,0x0,0x21,0x2,0xf0,0x3,0x31,0x5,0x3f,0x5,0xa1,0x4, +0xb7,0x3,0x24,0x2,0xf5,0xff,0xd2,0xfd,0x45,0xfc,0x64,0xfb, +0x12,0xfb,0x91,0xfb,0x59,0xfd,0x29,0x0,0xdc,0x2,0x92,0x4, +0x75,0x5,0xec,0x5,0xba,0x5,0x85,0x4,0x95,0x2,0x8c,0x0, +0xf0,0xfe,0xfc,0xfd,0xae,0xfd,0x7,0xfe,0xcc,0xfe,0x60,0xff, +0x94,0xff,0xd3,0xff,0x21,0x0,0xea,0xff,0xfe,0xfe,0xd,0xfe, +0xef,0xfd,0x9f,0xfe,0x7c,0xff,0x5c,0x0,0x6d,0x1,0x69,0x2, +0xb7,0x2,0xfa,0x1,0x8a,0x0,0x10,0xff,0xa1,0xfd,0x18,0xfc, +0xef,0xfa,0x94,0xfa,0xdc,0xfa,0x9b,0xfb,0xba,0xfc,0x15,0xfe, +0xa7,0xff,0x1a,0x1,0xe2,0x1,0x18,0x2,0x8,0x2,0x7a,0x1, +0x69,0x0,0x5a,0xff,0x7c,0xfe,0xb5,0xfd,0x37,0xfd,0x44,0xfd, +0xb9,0xfd,0x69,0xfe,0x62,0xff,0xa5,0x0,0x1f,0x2,0x97,0x3, +0x7b,0x4,0x86,0x4,0x24,0x4,0x84,0x3,0x81,0x2,0x68,0x1, +0x6e,0x0,0x4c,0xff,0x29,0xfe,0x65,0xfd,0xfb,0xfc,0x1f,0xfd, +0x21,0xfe,0x9e,0xff,0xfd,0x0,0x1a,0x2,0xf,0x3,0xd7,0x3, +0x39,0x4,0xa,0x4,0x5f,0x3,0x4d,0x2,0xe9,0x0,0x68,0xff, +0xe7,0xfd,0x95,0xfc,0xc9,0xfb,0x8b,0xfb,0xbd,0xfb,0x69,0xfc, +0x54,0xfd,0x3a,0xfe,0x37,0xff,0x41,0x0,0x8,0x1,0x67,0x1, +0x33,0x1,0x5f,0x0,0x67,0xff,0xac,0xfe,0xf0,0xfd,0x17,0xfd, +0x7e,0xfc,0x57,0xfc,0x7a,0xfc,0xd8,0xfc,0x9b,0xfd,0xba,0xfe, +0xd4,0xff,0xab,0x0,0x44,0x1,0xaa,0x1,0xc4,0x1,0x8b,0x1, +0x26,0x1,0xc0,0x0,0x6d,0x0,0x4c,0x0,0x68,0x0,0x92,0x0, +0xbb,0x0,0xe9,0x0,0xec,0x0,0x90,0x0,0xe1,0xff,0x39,0xff, +0x18,0xff,0x6e,0xff,0xbf,0xff,0x1f,0x0,0xe8,0x0,0x2,0x2, +0x61,0x3,0xd6,0x4,0xb4,0x5,0xc0,0x5,0x44,0x5,0x5b,0x4, +0xf,0x3,0x53,0x1,0xfc,0xfe,0x68,0xfc,0xfc,0xf9,0x93,0xf7, +0x63,0xf5,0x44,0xf4,0xc0,0xf4,0xe7,0xf6,0x68,0xfa,0xb0,0xfe, +0x53,0x3,0xf6,0x7,0xa,0xc,0xd2,0xe,0x4f,0xf,0xd4,0xc, +0xa5,0x7,0xb9,0x0,0xb9,0xf9,0x70,0xf4,0x79,0xf1,0xa9,0xf0, +0xea,0xf1,0xa3,0xf4,0x2d,0xf8,0x6b,0xfc,0xa5,0x0,0xe4,0x3, +0x3b,0x6,0xd3,0x7,0x58,0x8,0xd0,0x7,0x56,0x6,0x14,0x4, +0xb6,0x1,0x89,0xff,0x29,0xfd,0xcb,0xfa,0x5d,0xf9,0x86,0xf9, +0x3f,0xfb,0x13,0xfe,0x63,0x1,0x62,0x4,0x6b,0x6,0x96,0x7, +0xe,0x8,0x7c,0x7,0xd2,0x5,0x91,0x3,0x35,0x1,0x2a,0xff, +0x6b,0xfd,0xa9,0xfb,0x76,0xfa,0x8d,0xfa,0x75,0xfb,0x73,0xfc, +0x7d,0xfd,0x8c,0xfe,0x85,0xff,0x89,0x0,0xae,0x1,0xf9,0x2, +0x48,0x4,0x2b,0x5,0x65,0x5,0x4,0x5,0x9,0x4,0x78,0x2, +0x74,0x0,0x38,0xfe,0x11,0xfc,0x3e,0xfa,0x11,0xf9,0xeb,0xf8, +0xc5,0xf9,0x33,0xfb,0xe2,0xfc,0xbf,0xfe,0xcd,0x0,0xca,0x2, +0x18,0x4,0x6c,0x4,0x26,0x4,0xa9,0x3,0xed,0x2,0xc8,0x1, +0x5f,0x0,0x3b,0xff,0x81,0xfe,0xc6,0xfd,0x12,0xfd,0x6,0xfd, +0xdd,0xfd,0x3c,0xff,0xa9,0x0,0xd0,0x1,0x9e,0x2,0x20,0x3, +0x4c,0x3,0x1e,0x3,0x93,0x2,0xb6,0x1,0xdc,0x0,0x58,0x0, +0x16,0x0,0xd2,0xff,0x7e,0xff,0x41,0xff,0x45,0xff,0x71,0xff, +0x8c,0xff,0x7f,0xff,0x84,0xff,0xf4,0xff,0xd0,0x0,0xbe,0x1, +0xa6,0x2,0x7b,0x3,0xda,0x3,0x86,0x3,0x9e,0x2,0x4a,0x1, +0xc1,0xff,0x39,0xfe,0xd9,0xfc,0xe,0xfc,0x1b,0xfc,0xb1,0xfc, +0x9a,0xfd,0xef,0xfe,0x6c,0x0,0x9e,0x1,0x4b,0x2,0x4a,0x2, +0x93,0x1,0x79,0x0,0x62,0xff,0x64,0xfe,0x84,0xfd,0x1a,0xfd, +0x74,0xfd,0x5c,0xfe,0xb2,0xff,0x7d,0x1,0x32,0x3,0x32,0x4, +0xa0,0x4,0x9a,0x4,0xe1,0x3,0x99,0x2,0xf,0x1,0x6d,0xff, +0x2,0xfe,0xf2,0xfc,0x32,0xfc,0x4,0xfc,0x77,0xfc,0x14,0xfd, +0xd8,0xfd,0x1f,0xff,0x95,0x0,0xcd,0x1,0x9,0x3,0x30,0x4, +0xa2,0x4,0x5e,0x4,0xc8,0x3,0xec,0x2,0xe7,0x1,0xf6,0x0, +0xa,0x0,0x41,0xff,0xcd,0xfe,0x8a,0xfe,0x89,0xfe,0xee,0xfe, +0x62,0xff,0xb7,0xff,0x16,0x0,0x62,0x0,0xa5,0x0,0xf7,0x0, +0xe8,0x0,0x68,0x0,0xf7,0xff,0x89,0xff,0xfa,0xfe,0x9c,0xfe, +0x6e,0xfe,0x58,0xfe,0x9c,0xfe,0x35,0xff,0xe9,0xff,0x92,0x0, +0x2,0x1,0x5e,0x1,0xd4,0x1,0xf4,0x1,0x99,0x1,0x41,0x1, +0xff,0x0,0x82,0x0,0xd4,0xff,0x35,0xff,0xe8,0xfe,0x1,0xff, +0x5b,0xff,0xd4,0xff,0x24,0x0,0xf,0x0,0xea,0xff,0xe1,0xff, +0x8b,0xff,0xfb,0xfe,0xbb,0xfe,0xde,0xfe,0x3b,0xff,0xca,0xff, +0x8a,0x0,0x73,0x1,0x58,0x2,0x2a,0x3,0xa,0x4,0xa6,0x4, +0x94,0x4,0x14,0x4,0x56,0x3,0x29,0x2,0xcd,0x0,0x97,0xff, +0x47,0xfe,0x91,0xfc,0xc1,0xfa,0x73,0xf9,0xf3,0xf8,0x3d,0xf9, +0x8e,0xfa,0xff,0xfc,0x9,0x0,0x3f,0x3,0x87,0x6,0x75,0x9, +0x51,0xb,0x51,0xb,0x2,0x9,0xef,0x4,0xd,0x0,0x3f,0xfb, +0xc3,0xf7,0x2c,0xf6,0xe5,0xf5,0xef,0xf6,0xa8,0xf9,0x44,0xfd, +0xc8,0x0,0xc8,0x3,0xa5,0x5,0x42,0x6,0x1f,0x6,0x4d,0x5, +0xcb,0x3,0xf5,0x1,0xf6,0xff,0x1e,0xfe,0xba,0xfc,0x88,0xfb, +0xb1,0xfa,0xdc,0xfa,0x3,0xfc,0xdb,0xfd,0x3f,0x0,0x74,0x2, +0xd6,0x3,0x83,0x4,0x7e,0x4,0xa9,0x3,0x67,0x2,0x1c,0x1, +0x7,0x0,0x7c,0xff,0x58,0xff,0x32,0xff,0x31,0xff,0x90,0xff, +0xf9,0xff,0x27,0x0,0x18,0x0,0x98,0xff,0xc9,0xfe,0x4d,0xfe, +0x53,0xfe,0x8d,0xfe,0x4,0xff,0xaa,0xff,0x34,0x0,0xc0,0x0, +0x7a,0x1,0x1d,0x2,0x92,0x2,0xe0,0x2,0xe3,0x2,0xc2,0x2, +0xa5,0x2,0x40,0x2,0x77,0x1,0x6f,0x0,0x21,0xff,0xe4,0xfd, +0x41,0xfd,0x2d,0xfd,0x82,0xfd,0x3c,0xfe,0x12,0xff,0xe8,0xff, +0xbf,0x0,0x31,0x1,0x3e,0x1,0x6e,0x1,0x8a,0x1,0x11,0x1, +0x58,0x0,0xe5,0xff,0xc5,0xff,0xe0,0xff,0xf8,0xff,0xd3,0xff, +0x93,0xff,0x5a,0xff,0x48,0xff,0xab,0xff,0x58,0x0,0xd1,0x0, +0x1d,0x1,0x83,0x1,0xd4,0x1,0xc8,0x1,0x60,0x1,0xd5,0x0, +0x5e,0x0,0xf9,0xff,0x9e,0xff,0x53,0xff,0xec,0xfe,0x6a,0xfe, +0x2f,0xfe,0x3e,0xfe,0x5c,0xfe,0xaf,0xfe,0x18,0xff,0x57,0xff, +0xea,0xff,0x16,0x1,0x2c,0x2,0xb2,0x2,0xc8,0x2,0xae,0x2, +0x76,0x2,0xac,0x1,0x1e,0x0,0xbf,0xfe,0x35,0xfe,0x1d,0xfe, +0x6e,0xfe,0x56,0xff,0x6a,0x0,0x7a,0x1,0x8b,0x2,0xa,0x3, +0x8b,0x2,0x32,0x1,0x4e,0xff,0x8a,0xfd,0x65,0xfc,0xb9,0xfb, +0x8d,0xfb,0x41,0xfc,0xc7,0xfd,0xbc,0xff,0xa6,0x1,0xfc,0x2, +0xa5,0x3,0xdf,0x3,0xb1,0x3,0x0,0x3,0xef,0x1,0xdd,0x0, +0x12,0x0,0x8e,0xff,0x51,0xff,0x6c,0xff,0xae,0xff,0xee,0xff, +0x39,0x0,0x69,0x0,0x56,0x0,0x10,0x0,0xa8,0xff,0x4b,0xff, +0x0,0xff,0x63,0xfe,0x75,0xfd,0xcc,0xfc,0xc5,0xfc,0x79,0xfd, +0xca,0xfe,0x57,0x0,0x1e,0x2,0xfe,0x3,0x26,0x5,0x60,0x5, +0x9,0x5,0xe3,0x3,0xed,0x1,0xc1,0xff,0x8f,0xfd,0xb9,0xfb, +0xf3,0xfa,0x10,0xfb,0xc0,0xfb,0x37,0xfd,0x1c,0xff,0xd3,0x0, +0x21,0x2,0xb9,0x2,0xb0,0x2,0x96,0x2,0x68,0x2,0xfb,0x1, +0x84,0x1,0xe8,0x0,0x0,0x0,0x14,0xff,0x3a,0xfe,0x74,0xfd, +0xf6,0xfc,0xdc,0xfc,0x4e,0xfd,0x46,0xfe,0x44,0xff,0x1f,0x0, +0x2,0x1,0x91,0x1,0x9e,0x1,0x8e,0x1,0x65,0x1,0xfe,0x0, +0xab,0x0,0x9d,0x0,0xb5,0x0,0xd1,0x0,0xae,0x0,0x2b,0x0, +0x85,0xff,0xfa,0xfe,0xbc,0xfe,0xe0,0xfe,0x15,0xff,0xf4,0xfe, +0x76,0xfe,0xb3,0xfd,0xc0,0xfc,0xee,0xfb,0xc7,0xfb,0x9c,0xfc, +0x38,0xfe,0x4b,0x0,0xba,0x2,0x32,0x5,0x27,0x7,0x53,0x8, +0x79,0x8,0x2,0x7,0xa7,0x3,0x0,0xff,0x39,0xfa,0xa1,0xf6, +0x26,0xf5,0xde,0xf5,0x1f,0xf8,0x3e,0xfb,0xea,0xfe,0xd2,0x2, +0x42,0x6,0x71,0x8,0x4,0x9,0x11,0x8,0xef,0x5,0xfd,0x2, +0xb0,0xff,0xaf,0xfc,0x86,0xfa,0x5f,0xf9,0x45,0xf9,0xf9,0xf9, +0xe8,0xfa,0x1d,0xfc,0x28,0xfe,0xcc,0x0,0x36,0x3,0xfd,0x4, +0xba,0x5,0x1a,0x5,0x84,0x3,0x77,0x1,0x23,0xff,0x27,0xfd, +0x28,0xfc,0xfd,0xfb,0x38,0xfc,0xaf,0xfc,0x49,0xfd,0xf3,0xfd, +0x97,0xfe,0x14,0xff,0x5d,0xff,0x69,0xff,0x54,0xff,0xa0,0xff, +0xa4,0x0,0xea,0x1,0xcd,0x2,0x36,0x3,0x52,0x3,0xf8,0x2, +0xf5,0x1,0x8d,0x0,0xc,0xff,0x51,0xfd,0x83,0xfb,0x51,0xfa, +0x1,0xfa,0x6b,0xfa,0x98,0xfb,0x78,0xfd,0x95,0xff,0x8f,0x1, +0x5d,0x3,0x13,0x5,0x6b,0x6,0xbf,0x6,0xd5,0x5,0xf0,0x3, +0x45,0x1,0x4a,0xfe,0xd9,0xfb,0x55,0xfa,0xbf,0xf9,0x34,0xfa, +0x95,0xfb,0x68,0xfd,0x3e,0xff,0xdf,0x0,0x58,0x2,0xad,0x3, +0x6a,0x4,0x3d,0x4,0x70,0x3,0x41,0x2,0xa8,0x0,0xe3,0xfe, +0x57,0xfd,0x2d,0xfc,0x62,0xfb,0x1f,0xfb,0xb2,0xfb,0xf4,0xfc, +0x67,0xfe,0xec,0xff,0x8a,0x1,0xe9,0x2,0xbf,0x3,0xfc,0x3, +0x7c,0x3,0x50,0x2,0xdd,0x0,0x8e,0xff,0xa4,0xfe,0x9,0xfe, +0x94,0xfd,0x85,0xfd,0xf8,0xfd,0x70,0xfe,0xa8,0xfe,0xb6,0xfe, +0x8c,0xfe,0x33,0xfe,0x0,0xfe,0x30,0xfe,0xe4,0xfe,0x6,0x0, +0x24,0x1,0x8,0x2,0xcc,0x2,0x4f,0x3,0x76,0x3,0x70,0x3, +0x11,0x3,0xfb,0x1,0x75,0x0,0xa,0xff,0xdc,0xfd,0x1e,0xfd, +0x2a,0xfd,0xe5,0xfd,0xfd,0xfe,0x56,0x0,0x9c,0x1,0x6a,0x2, +0xd1,0x2,0xa8,0x2,0x76,0x1,0xa9,0xff,0x1d,0xfe,0xe0,0xfc, +0xff,0xfb,0xe1,0xfb,0x4d,0xfc,0xfc,0xfc,0x57,0xfe,0x21,0x0, +0x86,0x1,0x85,0x2,0x46,0x3,0x65,0x3,0xef,0x2,0x31,0x2, +0xf8,0x0,0x6b,0xff,0x13,0xfe,0xf5,0xfc,0x8,0xfc,0xab,0xfb, +0xfa,0xfb,0xdf,0xfc,0x4e,0xfe,0xe9,0xff,0x3c,0x1,0x1b,0x2, +0x76,0x2,0x6f,0x2,0x27,0x2,0x4f,0x1,0xf1,0xff,0xcf,0xfe, +0x57,0xfe,0x3f,0xfe,0x30,0xfe,0x1f,0xfe,0x65,0xfe,0x4d,0xff, +0x79,0x0,0x73,0x1,0x20,0x2,0x2e,0x2,0x86,0x1,0xf2,0x0, +0xd1,0x0,0x67,0x0,0x64,0xff,0x79,0xfe,0x17,0xfe,0x31,0xfe, +0xd0,0xfe,0xde,0xff,0xff,0x0,0xea,0x1,0x60,0x2,0x2a,0x2, +0x7f,0x1,0xb7,0x0,0xe4,0xff,0x2f,0xff,0xd5,0xfe,0xad,0xfe, +0x92,0xfe,0xd0,0xfe,0x85,0xff,0x51,0x0,0xf3,0x0,0x71,0x1, +0xb9,0x1,0xb5,0x1,0x72,0x1,0xd4,0x0,0xa5,0xff,0x1f,0xfe, +0x87,0xfc,0xb0,0xfa,0xdd,0xf8,0xfa,0xf7,0x6a,0xf8,0xd,0xfa, +0xcd,0xfc,0x38,0x0,0xb1,0x3,0xe6,0x6,0x62,0x9,0xd4,0xa, +0x18,0xb,0x4c,0x9,0xfd,0x4,0x77,0xff,0x1e,0xfa,0xb9,0xf5, +0x77,0xf3,0xd5,0xf3,0xf6,0xf5,0x2c,0xf9,0x36,0xfd,0x89,0x1, +0x8b,0x5,0x93,0x8,0x1f,0xa,0x38,0xa,0xc5,0x8,0xb5,0x5, +0xd1,0x1,0xe9,0xfd,0x5c,0xfa,0xee,0xf7,0x3d,0xf7,0xf0,0xf7, +0x6e,0xf9,0x9e,0xfb,0xc4,0xfe,0xd5,0x2,0x0,0x7,0x37,0xa, +0xcc,0xb,0x71,0xb,0x5f,0x9,0x32,0x6,0x3e,0x2,0xc6,0xfd, +0x8f,0xf9,0x74,0xf6,0xb1,0xf4,0xa,0xf4,0x9c,0xf4,0xcc,0xf6, +0x4c,0xfa,0x3b,0xfe,0xd1,0x1,0x42,0x4,0x6b,0x5,0x20,0x6, +0x95,0x6,0x46,0x6,0x54,0x5,0xd3,0x3,0xa8,0x1,0x7d,0xff, +0xc4,0xfd,0x64,0xfc,0xc0,0xfb,0xce,0xfb,0xed,0xfb,0x6b,0xfc, +0x98,0xfd,0xd6,0xfe,0xf1,0xff,0xf3,0x0,0x76,0x1,0x88,0x1, +0x74,0x1,0x2e,0x1,0xde,0x0,0x9f,0x0,0x4a,0x0,0xf9,0xff, +0x88,0xff,0xdb,0xfe,0x9a,0xfe,0xf7,0xfe,0x5c,0xff,0xd8,0xff, +0xb7,0x0,0xb8,0x1,0xd3,0x2,0xe4,0x3,0x5b,0x4,0x37,0x4, +0x9b,0x3,0x48,0x2,0xae,0x0,0x6e,0xff,0x4e,0xfe,0x4f,0xfd, +0xfe,0xfc,0x2f,0xfd,0x6f,0xfd,0xee,0xfd,0xa0,0xfe,0x26,0xff, +0xd4,0xff,0x11,0x1,0x49,0x2,0xd4,0x2,0xcc,0x2,0x86,0x2, +0x1e,0x2,0x7b,0x1,0x7c,0x0,0x6b,0xff,0xa7,0xfe,0x0,0xfe, +0x5c,0xfd,0x20,0xfd,0x7e,0xfd,0x5f,0xfe,0xa7,0xff,0xf5,0x0, +0xda,0x1,0x48,0x2,0x62,0x2,0x5b,0x2,0x14,0x2,0xb,0x1, +0x7f,0xff,0x64,0xfe,0xcf,0xfd,0x56,0xfd,0x41,0xfd,0xd1,0xfd, +0xbc,0xfe,0xbb,0xff,0x95,0x0,0x47,0x1,0xfc,0x1,0x48,0x2, +0xbf,0x1,0x10,0x1,0xcc,0x0,0x86,0x0,0x44,0x0,0x89,0x0, +0x13,0x1,0x70,0x1,0xb2,0x1,0xbb,0x1,0x56,0x1,0xc4,0x0, +0x35,0x0,0x8c,0xff,0xc3,0xfe,0xfb,0xfd,0x95,0xfd,0xf9,0xfd, +0x8,0xff,0x60,0x0,0xcc,0x1,0xe6,0x2,0x5c,0x3,0x5b,0x3, +0xe7,0x2,0xdd,0x1,0x96,0x0,0x69,0xff,0x6c,0xfe,0xdb,0xfd, +0xc6,0xfd,0xf3,0xfd,0x47,0xfe,0xa8,0xfe,0x2c,0xff,0xe,0x0, +0xd7,0x0,0xe,0x1,0x43,0x1,0xc9,0x1,0x8,0x2,0xd1,0x1, +0x72,0x1,0xdc,0x0,0x4,0x0,0x2c,0xff,0x70,0xfe,0xd5,0xfd, +0x85,0xfd,0xbb,0xfd,0x7f,0xfe,0x73,0xff,0x2b,0x0,0xbc,0x0, +0x75,0x1,0x1b,0x2,0x8,0x2,0x37,0x1,0x4c,0x0,0x89,0xff, +0xe6,0xfe,0xb8,0xfe,0x20,0xff,0xd5,0xff,0xbb,0x0,0xbb,0x1, +0x8d,0x2,0x1e,0x3,0x79,0x3,0xd0,0x3,0x67,0x4,0xd8,0x4, +0x94,0x4,0xc1,0x3,0x79,0x2,0xc3,0x0,0x34,0xff,0x3,0xfe, +0xdb,0xfc,0xd1,0xfb,0x8,0xfb,0x5b,0xfa,0xd5,0xf9,0x73,0xf9, +0x58,0xf9,0xc,0xfa,0x9a,0xfb,0xb0,0xfd,0x65,0x0,0x6d,0x3, +0x24,0x6,0x98,0x8,0xda,0xa,0x4f,0xc,0x27,0xc,0xaa,0x9, +0xe0,0x4,0x5,0xff,0xae,0xf9,0xfe,0xf5,0x40,0xf4,0xef,0xf3, +0xe5,0xf4,0x5c,0xf7,0xd7,0xfa,0x94,0xfe,0x1,0x2,0x64,0x4, +0xb6,0x5,0x9d,0x6,0xef,0x6,0x2e,0x6,0xa2,0x4,0xe8,0x2, +0xa0,0x1,0xdb,0x0,0xbf,0xff,0x32,0xfe,0x51,0xfd,0x8e,0xfd, +0x7f,0xfe,0xc9,0xff,0x8,0x1,0x25,0x2,0x68,0x3,0x67,0x4, +0x4d,0x4,0x10,0x3,0x4e,0x1,0xc8,0xff,0xcf,0xfe,0xd6,0xfd, +0x84,0xfc,0x97,0xfb,0xc6,0xfb,0xd8,0xfc,0x11,0xfe,0xd1,0xfe, +0x11,0xff,0x5b,0xff,0x2,0x0,0xc7,0x0,0x72,0x1,0x1a,0x2, +0xd9,0x2,0x99,0x3,0x5,0x4,0xaf,0x3,0xab,0x2,0x97,0x1, +0x79,0x0,0xcb,0xfe,0xcc,0xfc,0x56,0xfb,0xa1,0xfa,0x7d,0xfa, +0xf0,0xfa,0xf5,0xfb,0x66,0xfd,0x22,0xff,0xef,0x0,0x8f,0x2, +0xbc,0x3,0x31,0x4,0x23,0x4,0xe6,0x3,0x39,0x3,0xd8,0x1, +0x45,0x0,0x2c,0xff,0xaa,0xfe,0x7a,0xfe,0x97,0xfe,0x66,0xff, +0x3,0x1,0xb5,0x2,0xba,0x3,0x5,0x4,0xd0,0x3,0x3a,0x3, +0x50,0x2,0xe3,0x0,0xdd,0xfe,0xb9,0xfc,0x25,0xfb,0x77,0xfa, +0xa7,0xfa,0x7d,0xfb,0xff,0xfc,0x7a,0xff,0x8a,0x2,0xfb,0x4, +0x28,0x6,0x54,0x6,0xc6,0x5,0x99,0x4,0xf2,0x2,0xf6,0x0, +0x7,0xff,0xab,0xfd,0x5,0xfd,0xea,0xfc,0x1d,0xfd,0x4c,0xfd, +0x59,0xfd,0x74,0xfd,0xad,0xfd,0x6,0xfe,0x88,0xfe,0xfa,0xfe, +0x5d,0xff,0x8,0x0,0xe5,0x0,0xae,0x1,0x72,0x2,0xf7,0x2, +0xd9,0x2,0x68,0x2,0xe1,0x1,0xef,0x0,0xaf,0xff,0xa7,0xfe, +0xd,0xfe,0xf1,0xfd,0x20,0xfe,0x46,0xfe,0xb0,0xfe,0xc1,0xff, +0x12,0x1,0x3d,0x2,0x34,0x3,0x9b,0x3,0x50,0x3,0xac,0x2, +0xba,0x1,0x7a,0x0,0x24,0xff,0xd5,0xfd,0xfb,0xfc,0x1c,0xfd, +0xd9,0xfd,0xac,0xfe,0xcb,0xff,0x4b,0x1,0xeb,0x2,0x56,0x4, +0xe7,0x4,0x54,0x4,0x1b,0x3,0x9d,0x1,0x20,0x0,0x25,0xff, +0x93,0xfe,0x26,0xfe,0x45,0xfe,0xb,0xff,0xda,0xff,0x53,0x0, +0x5b,0x0,0xf2,0xff,0x79,0xff,0x2e,0xff,0xd0,0xfe,0x31,0xfe, +0x89,0xfd,0x46,0xfd,0x96,0xfd,0x2f,0xfe,0xc0,0xfe,0x3d,0xff, +0xaf,0xff,0x46,0x0,0xa,0x1,0x9c,0x1,0xde,0x1,0x26,0x2, +0x93,0x2,0xfe,0x2,0x2f,0x3,0xe6,0x2,0x44,0x2,0x9a,0x1, +0xd0,0x0,0xac,0xff,0x4e,0xfe,0x1f,0xfd,0xb5,0xfc,0x40,0xfd, +0x64,0xfe,0xec,0xff,0xc7,0x1,0x97,0x3,0xf9,0x4,0xb3,0x5, +0xaa,0x5,0x9,0x5,0xe8,0x3,0x46,0x2,0x88,0x0,0x4,0xff, +0xa7,0xfd,0x85,0xfc,0xa9,0xfb,0xb9,0xfa,0x9d,0xf9,0x7a,0xf8, +0x4e,0xf7,0x7a,0xf6,0xcf,0xf6,0xa5,0xf8,0xc1,0xfb,0xb5,0xff, +0x17,0x4,0x9a,0x8,0xb0,0xc,0x58,0xf,0x94,0xf,0xb5,0xc, +0xec,0x6,0xde,0xff,0x82,0xf9,0xa5,0xf4,0x4d,0xf1,0xb2,0xef, +0x81,0xf0,0x25,0xf4,0xb8,0xf9,0x62,0xff,0x1f,0x4,0xdd,0x7, +0x6c,0xa,0x89,0xb,0xb,0xb,0xd7,0x8,0x84,0x5,0x39,0x2, +0x96,0xff,0x82,0xfd,0xa9,0xfb,0x54,0xfa,0xa2,0xfa,0xd9,0xfc, +0x95,0xff,0xd9,0x1,0xdd,0x3,0x78,0x5,0x14,0x6,0x75,0x5, +0x8b,0x3,0xe1,0x0,0x6b,0xfe,0x72,0xfc,0xe8,0xfa,0xd,0xfa, +0x1,0xfa,0x2,0xfb,0x44,0xfd,0xee,0xff,0xe5,0x1,0xf8,0x2, +0x3c,0x3,0xbe,0x2,0xd4,0x1,0xd1,0x0,0xf1,0xff,0x6d,0xff, +0x33,0xff,0x3c,0xff,0x9c,0xff,0x2a,0x0,0xa6,0x0,0xb9,0x0, +0xeb,0xff,0x71,0xfe,0xfd,0xfc,0xc4,0xfb,0xe6,0xfa,0xae,0xfa, +0xea,0xfa,0x72,0xfb,0xb2,0xfc,0xc3,0xfe,0x6,0x1,0xde,0x2, +0x29,0x4,0xd,0x5,0x71,0x5,0xc,0x5,0xf2,0x3,0x93,0x2, +0x61,0x1,0x6e,0x0,0x35,0xff,0xaf,0xfd,0xe6,0xfc,0x60,0xfd, +0x9b,0xfe,0x43,0x0,0x8,0x2,0x6e,0x3,0x86,0x4,0x48,0x5, +0x7,0x5,0x96,0x3,0x91,0x1,0x7b,0xff,0x9b,0xfd,0x5,0xfc, +0xaa,0xfa,0xfe,0xf9,0xb8,0xfa,0xa5,0xfc,0xca,0xfe,0x9f,0x0, +0x36,0x2,0x71,0x3,0x16,0x4,0x4d,0x4,0x35,0x4,0xa2,0x3, +0xb4,0x2,0xaa,0x1,0x6d,0x0,0x14,0xff,0xfa,0xfd,0x1c,0xfd, +0x5a,0xfc,0xed,0xfb,0xf9,0xfb,0x3f,0xfc,0xa8,0xfc,0x57,0xfd, +0x31,0xfe,0xf0,0xfe,0x8e,0xff,0xf,0x0,0x65,0x0,0xbe,0x0, +0x1a,0x1,0xa,0x1,0x95,0x0,0x26,0x0,0xaf,0xff,0x1e,0xff, +0xd3,0xfe,0xd,0xff,0xbe,0xff,0xd0,0x0,0xa,0x2,0x43,0x3, +0x68,0x4,0x4b,0x5,0x8b,0x5,0xc8,0x4,0x2a,0x3,0x46,0x1, +0x36,0xff,0xfe,0xfc,0x47,0xfb,0x69,0xfa,0x47,0xfa,0x1f,0xfb, +0xb3,0xfc,0x4e,0xfe,0x1,0x0,0xea,0x1,0x8f,0x3,0xbc,0x4, +0x2c,0x5,0x8e,0x4,0xa5,0x3,0x1a,0x3,0x5e,0x2,0x40,0x1, +0x54,0x0,0xac,0xff,0xf,0xff,0x9c,0xfe,0x7c,0xfe,0x7b,0xfe, +0x47,0xfe,0xfa,0xfd,0xe8,0xfd,0xf2,0xfd,0xf3,0xfd,0x23,0xfe, +0x81,0xfe,0xf9,0xfe,0x90,0xff,0x6,0x0,0x46,0x0,0x95,0x0, +0xf6,0x0,0x6a,0x1,0xee,0x1,0x24,0x2,0xa,0x2,0xf7,0x1, +0xb3,0x1,0x32,0x1,0xdb,0x0,0x9f,0x0,0x65,0x0,0x4f,0x0, +0x2,0x0,0x70,0xff,0x43,0xff,0x93,0xff,0xe6,0xff,0xf,0x0, +0x10,0x0,0x4,0x0,0xe,0x0,0x1d,0x0,0x35,0x0,0x77,0x0, +0xa7,0x0,0x96,0x0,0x58,0x0,0xac,0xff,0x3b,0xfe,0x39,0xfc, +0x22,0xfa,0x22,0xf8,0x3a,0xf6,0xc8,0xf4,0x82,0xf4,0xdd,0xf5, +0xd7,0xf8,0x50,0xfd,0xec,0x2,0xb7,0x8,0x88,0xd,0x9e,0x10, +0x97,0x11,0xfb,0xf,0x70,0xb,0x8f,0x4,0xe2,0xfc,0x6,0xf6, +0xf,0xf1,0x9d,0xee,0xf4,0xee,0xce,0xf1,0x77,0xf6,0x15,0xfc, +0xab,0x1,0x5a,0x6,0xc2,0x9,0xc3,0xb,0x48,0xc,0x67,0xb, +0x3f,0x9,0x31,0x6,0xf,0x3,0x4a,0x0,0xc2,0xfd,0xad,0xfb, +0x69,0xfa,0x25,0xfa,0x2a,0xfb,0x1e,0xfd,0x29,0xff,0x6f,0x1, +0xc,0x4,0xd5,0x5,0x18,0x6,0x46,0x5,0x98,0x3,0x4c,0x1, +0x11,0xff,0x42,0xfd,0xc0,0xfb,0x59,0xfa,0x2c,0xf9,0xd0,0xf8, +0x4c,0xf9,0xc9,0xf9,0x32,0xfa,0x47,0xfb,0x18,0xfd,0x2b,0xff, +0x5e,0x1,0xbe,0x3,0xdf,0x5,0x13,0x7,0x4d,0x7,0xd8,0x6, +0x3c,0x5,0x2d,0x2,0x9b,0xfe,0x71,0xfb,0xbf,0xf8,0x9a,0xf6, +0x6b,0xf5,0x9d,0xf5,0x11,0xf7,0x1d,0xf9,0x95,0xfb,0xb8,0xfe, +0x3,0x2,0xd1,0x4,0xd,0x7,0x78,0x8,0xe2,0x8,0x73,0x8, +0x9,0x7,0xb0,0x4,0xd,0x2,0x86,0xff,0x78,0xfd,0x64,0xfc, +0x23,0xfc,0x85,0xfc,0xe7,0xfd,0x0,0x0,0x15,0x2,0x24,0x4, +0x12,0x6,0x41,0x7,0x8c,0x7,0x16,0x7,0x98,0x5,0xe6,0x2, +0x89,0xff,0x60,0xfc,0xda,0xf9,0xde,0xf7,0xb3,0xf6,0x20,0xf7, +0x37,0xf9,0x16,0xfc,0x2f,0xff,0x70,0x2,0x58,0x5,0x3c,0x7, +0xb,0x8,0xe0,0x7,0x74,0x6,0xb5,0x3,0x62,0x0,0x79,0xfd, +0x28,0xfb,0xef,0xf8,0xdf,0xf6,0xc0,0xf5,0xdc,0xf5,0xdc,0xf6, +0x92,0xf8,0xdb,0xfa,0x5d,0xfd,0xeb,0xff,0x7a,0x2,0xab,0x4, +0xf2,0x5,0x40,0x6,0x19,0x6,0x90,0x5,0x3,0x4,0x88,0x1, +0x16,0xff,0x19,0xfd,0x7a,0xfb,0x7e,0xfa,0x69,0xfa,0x4c,0xfb, +0x31,0xfd,0xbf,0xff,0x5d,0x2,0x9d,0x4,0x10,0x6,0x9d,0x6, +0xa0,0x6,0x8,0x6,0x6b,0x4,0x2b,0x2,0xfe,0xff,0x1,0xfe, +0x61,0xfc,0xab,0xfb,0xf0,0xfb,0xde,0xfc,0x94,0xfe,0x7,0x1, +0x70,0x3,0x2b,0x5,0x1e,0x6,0x3a,0x6,0x93,0x5,0x45,0x4, +0x4d,0x2,0x33,0x0,0xac,0xfe,0x90,0xfd,0xb0,0xfc,0x63,0xfc, +0x86,0xfc,0xbb,0xfc,0x16,0xfd,0x73,0xfd,0xa1,0xfd,0xe6,0xfd, +0x74,0xfe,0x53,0xff,0x89,0x0,0xb3,0x1,0x89,0x2,0x45,0x3, +0xd5,0x3,0xeb,0x3,0x95,0x3,0xd5,0x2,0xbf,0x1,0xae,0x0, +0xaf,0xff,0xb2,0xfe,0xda,0xfd,0xfd,0xfc,0x0,0xfc,0x4c,0xfb, +0x1d,0xfb,0x69,0xfb,0x58,0xfc,0xcf,0xfd,0x4c,0xff,0x91,0x0, +0x9e,0x1,0x45,0x2,0x38,0x2,0x6a,0x1,0xe,0x0,0x1f,0xfe, +0x6d,0xfb,0x68,0xf8,0xe6,0xf5,0x38,0xf4,0x52,0xf3,0x9b,0xf3, +0xbc,0xf5,0xa8,0xf9,0x83,0xfe,0xb3,0x3,0x13,0x9,0xe5,0xd, +0x1f,0x11,0x89,0x12,0xf4,0x11,0x6f,0xe,0xc2,0x7,0x55,0xff, +0x3,0xf7,0x28,0xf0,0xb4,0xeb,0x6f,0xea,0xba,0xec,0x27,0xf2, +0x9c,0xf9,0xc7,0x1,0x36,0x9,0xdd,0xe,0x8d,0x12,0x35,0x14, +0x7a,0x13,0x73,0x10,0xb7,0xb,0x1f,0x6,0xb1,0x0,0x15,0xfc, +0x6f,0xf8,0xf5,0xf5,0xee,0xf4,0xa1,0xf5,0x3b,0xf8,0xfa,0xfb, +0xc9,0xff,0x8b,0x3,0xdc,0x6,0x4a,0x8,0x76,0x7,0x4c,0x5, +0x28,0x2,0x29,0xfe,0x28,0xfa,0xf0,0xf6,0xc0,0xf4,0x9b,0xf3, +0xb5,0xf3,0x78,0xf5,0x82,0xf8,0x8d,0xfb,0x25,0xfe,0xa4,0x0, +0x87,0x2,0x23,0x3,0x1d,0x3,0x4b,0x3,0x52,0x3,0xb6,0x2, +0x1c,0x2,0x11,0x2,0xda,0x1,0xf7,0x0,0x42,0x0,0xb,0x0, +0x37,0xff,0x54,0xfd,0x8c,0xfb,0xc1,0xfa,0x73,0xfa,0x40,0xfa, +0xee,0xfa,0xc6,0xfc,0xda,0xfe,0xef,0x0,0xab,0x3,0xa8,0x6, +0xdb,0x8,0xf4,0x9,0xf9,0x9,0xea,0x8,0xd,0x7,0xb2,0x4, +0x3e,0x2,0x1,0x0,0xfa,0xfd,0x8c,0xfc,0x65,0xfc,0x5a,0xfd, +0xd8,0xfe,0xbb,0x0,0xa1,0x2,0xd5,0x3,0x2a,0x4,0xae,0x3, +0x49,0x2,0x4b,0x0,0x5c,0xfe,0xc3,0xfc,0x75,0xfb,0xa0,0xfa, +0x95,0xfa,0x5b,0xfb,0xbf,0xfc,0x74,0xfe,0xc,0x0,0x2a,0x1, +0xba,0x1,0xd4,0x1,0xa6,0x1,0x46,0x1,0x9c,0x0,0xd1,0xff, +0x43,0xff,0xf0,0xfe,0x89,0xfe,0xf4,0xfd,0x8c,0xfd,0xb6,0xfd, +0xd,0xfe,0xe9,0xfd,0x8f,0xfd,0x73,0xfd,0x69,0xfd,0x93,0xfd, +0x30,0xfe,0xd8,0xfe,0x4f,0xff,0xe8,0xff,0xb2,0x0,0x9d,0x1, +0x8b,0x2,0x24,0x3,0x70,0x3,0xb8,0x3,0xdd,0x3,0xc9,0x3, +0x9f,0x3,0x46,0x3,0x9e,0x2,0xa9,0x1,0xae,0x0,0x4b,0x0, +0x9e,0x0,0x1e,0x1,0xc2,0x1,0xb9,0x2,0x76,0x3,0x82,0x3, +0x1,0x3,0xfd,0x1,0x6c,0x0,0x8b,0xfe,0x8d,0xfc,0xd6,0xfa, +0x30,0xfa,0x6,0xfb,0xfd,0xfc,0x97,0xff,0x77,0x2,0x27,0x5, +0x3a,0x7,0x59,0x8,0x36,0x8,0xf1,0x6,0xf7,0x4,0x6f,0x2, +0x99,0xff,0x6,0xfd,0xf8,0xfa,0x98,0xf9,0x4d,0xf9,0xc,0xfa, +0x65,0xfb,0x38,0xfd,0x59,0xff,0x3c,0x1,0x63,0x2,0xb3,0x2, +0x6c,0x2,0xc2,0x1,0xa5,0x0,0x69,0xff,0xa3,0xfe,0x53,0xfe, +0x5a,0xfe,0xf5,0xfe,0xf8,0xff,0xd6,0x0,0x68,0x1,0xc1,0x1, +0xfc,0x1,0x39,0x2,0x4d,0x2,0x4,0x2,0x92,0x1,0x41,0x1, +0xf8,0x0,0x4e,0x0,0x10,0xff,0x75,0xfd,0xa8,0xfb,0xb9,0xf9, +0xc6,0xf7,0xf3,0xf5,0x92,0xf4,0xd6,0xf3,0x66,0xf3,0x7e,0xf3, +0x22,0xf5,0x3e,0xf8,0xd,0xfc,0xc8,0x0,0x64,0x6,0xb9,0xb, +0x11,0x10,0x30,0x13,0x66,0x14,0xe7,0x12,0x3a,0xe,0xe4,0x6, +0xdf,0xfe,0xe8,0xf7,0x67,0xf2,0x1c,0xef,0x36,0xef,0x76,0xf2, +0x7b,0xf7,0x55,0xfd,0x46,0x3,0x36,0x8,0x6e,0xb,0xdc,0xc, +0xa7,0xc,0x9,0xb,0x40,0x8,0xc2,0x4,0xa4,0x1,0xb3,0xff, +0x82,0xfe,0xbf,0xfd,0xf2,0xfd,0x44,0xff,0x4d,0x1,0x7b,0x3, +0x10,0x5,0xd8,0x5,0xe8,0x5,0x7b,0x4,0x60,0x1,0xd7,0xfd, +0x69,0xfa,0xf3,0xf6,0x63,0xf4,0x95,0xf3,0x24,0xf4,0xa7,0xf5, +0x26,0xf8,0x74,0xfb,0xc3,0xfe,0xf0,0x0,0xb9,0x1,0xb3,0x1, +0xe5,0x0,0x39,0xff,0x99,0xfd,0x3,0xfd,0x83,0xfd,0x9c,0xfe, +0xb,0x0,0xed,0x1,0xf1,0x3,0x21,0x5,0x44,0x5,0xdb,0x4, +0xc1,0x3,0xa9,0x1,0x33,0xff,0x2b,0xfd,0x9a,0xfb,0x6b,0xfa, +0x15,0xfa,0xfd,0xfa,0xca,0xfc,0x16,0xff,0xd3,0x1,0x78,0x4, +0x4b,0x6,0x4a,0x7,0xb2,0x7,0x71,0x7,0x8f,0x6,0x5e,0x5, +0x3d,0x4,0x35,0x3,0x23,0x2,0x86,0x1,0xc4,0x1,0x3a,0x2, +0x95,0x2,0x2b,0x3,0x91,0x3,0x38,0x3,0x63,0x2,0x2b,0x1, +0x6a,0xff,0x59,0xfd,0x49,0xfb,0xb2,0xf9,0x7,0xf9,0x8,0xf9, +0x9a,0xf9,0x3f,0xfb,0xc9,0xfd,0x51,0x0,0x7e,0x2,0x56,0x4, +0x72,0x5,0x6a,0x5,0x81,0x4,0x36,0x3,0x84,0x1,0x68,0xff, +0x88,0xfd,0x5c,0xfc,0xb7,0xfb,0x76,0xfb,0xb0,0xfb,0x74,0xfc, +0x9e,0xfd,0xa8,0xfe,0x34,0xff,0x6b,0xff,0x53,0xff,0xca,0xfe, +0x1c,0xfe,0x94,0xfd,0x50,0xfd,0xae,0xfd,0xe3,0xfe,0xbb,0x0, +0xdf,0x2,0xe4,0x4,0x7f,0x6,0x9b,0x7,0x5,0x8,0x95,0x7, +0x76,0x6,0xe8,0x4,0x43,0x3,0xdc,0x1,0xd5,0x0,0x51,0x0, +0x57,0x0,0x96,0x0,0x3,0x1,0xc5,0x1,0x92,0x2,0x1f,0x3, +0x4c,0x3,0xcb,0x2,0xb3,0x1,0x75,0x0,0x18,0xff,0xb5,0xfd, +0xc4,0xfc,0x83,0xfc,0x1d,0xfd,0xac,0xfe,0xc8,0x0,0x18,0x3, +0x9a,0x5,0xc6,0x7,0xf2,0x8,0xa,0x9,0xf4,0x7,0x8e,0x5, +0x59,0x2,0x12,0xff,0x11,0xfc,0x76,0xf9,0x8a,0xf7,0xb9,0xf6, +0x1d,0xf7,0x43,0xf8,0xde,0xf9,0x1d,0xfc,0xd2,0xfe,0x46,0x1, +0xe,0x3,0x38,0x4,0xa4,0x4,0xb,0x4,0xd6,0x2,0xde,0x1, +0x35,0x1,0x75,0x0,0xd6,0xff,0x96,0xff,0x8b,0xff,0xd9,0xff, +0x5d,0x0,0x7b,0x0,0x7e,0x0,0xdb,0x0,0xae,0x0,0x69,0xff, +0xad,0xfd,0xa4,0xfb,0x1f,0xf9,0x5c,0xf6,0x73,0xf3,0xa8,0xf0, +0xc6,0xee,0x2b,0xee,0x3,0xef,0xc6,0xf1,0x77,0xf6,0xc2,0xfc, +0x6b,0x4,0xa3,0xc,0x2d,0x14,0xf9,0x19,0x3c,0x1d,0xa3,0x1d, +0xda,0x1a,0x35,0x14,0x40,0xa,0x12,0xff,0x7a,0xf4,0xe8,0xeb, +0xe3,0xe6,0xcc,0xe5,0x31,0xe8,0x0,0xee,0x7f,0xf6,0xc9,0xff, +0x42,0x8,0xc,0xf,0x62,0x13,0xd9,0x14,0xab,0x13,0x76,0x10, +0xef,0xb,0xe0,0x6,0x32,0x2,0x79,0xfe,0xb2,0xfb,0xf6,0xf9, +0xcc,0xf9,0x43,0xfb,0x78,0xfd,0xb2,0xff,0xfd,0x1,0xfc,0x3, +0x9a,0x4,0x90,0x3,0x93,0x1,0xe3,0xfe,0x80,0xfb,0x40,0xf8, +0xe6,0xf5,0x30,0xf4,0xba,0xf2,0xfb,0xf1,0xad,0xf2,0x86,0xf4, +0x5e,0xf6,0xee,0xf7,0xf9,0xf9,0x76,0xfc,0xaf,0xfe,0x0,0x1, +0x1d,0x4,0x56,0x7,0x9f,0x9,0xff,0xa,0x9b,0xb,0xcd,0xa, +0x30,0x8,0x55,0x4,0x10,0x0,0xd9,0xfb,0xf3,0xf7,0xee,0xf4, +0x88,0xf3,0xdb,0xf3,0x48,0xf5,0xa0,0xf7,0xf9,0xfa,0xc3,0xfe, +0x89,0x2,0x56,0x6,0xac,0x9,0xe1,0xb,0x15,0xd,0x5e,0xd, +0x83,0xc,0xe4,0xa,0xe2,0x8,0x78,0x6,0x26,0x4,0x67,0x2, +0xd8,0x0,0x7f,0xff,0xdd,0xfe,0xa3,0xfe,0x5e,0xfe,0x47,0xfe, +0x57,0xfe,0x69,0xfe,0xb2,0xfe,0xe2,0xfe,0xa6,0xfe,0x97,0xfe, +0xb6,0xfe,0x2e,0xfe,0x1e,0xfd,0x32,0xfc,0x73,0xfb,0xfd,0xfa, +0x18,0xfb,0xa8,0xfb,0x92,0xfc,0xbc,0xfd,0xdd,0xfe,0xfa,0xff, +0x21,0x1,0x9,0x2,0x95,0x2,0xbf,0x2,0x58,0x2,0x69,0x1, +0xf9,0xff,0xfb,0xfd,0xc7,0xfb,0xc1,0xf9,0xfc,0xf7,0xb2,0xf6, +0x59,0xf6,0x30,0xf7,0xf1,0xf8,0x24,0xfb,0xd9,0xfd,0x7,0x1, +0xe1,0x3,0x2,0x6,0xc4,0x7,0x2,0x9,0x71,0x9,0x30,0x9, +0x22,0x8,0x6f,0x6,0xd0,0x4,0x5b,0x3,0xdc,0x1,0xc6,0x0, +0x63,0x0,0x8a,0x0,0x2e,0x1,0x36,0x2,0x69,0x3,0x6f,0x4, +0xda,0x4,0xc6,0x4,0x65,0x4,0x48,0x3,0x62,0x1,0x6c,0xff, +0xc7,0xfd,0x71,0xfc,0x81,0xfb,0x20,0xfb,0xa7,0xfb,0x3d,0xfd, +0x63,0xff,0x94,0x1,0xb7,0x3,0xaf,0x5,0x2c,0x7,0xd4,0x7, +0x89,0x7,0x48,0x6,0xd8,0x3,0x8c,0x0,0x47,0xfd,0x3f,0xfa, +0x87,0xf7,0x0,0xf6,0xe,0xf6,0x22,0xf7,0xf1,0xf8,0x4c,0xfb, +0xac,0xfd,0xc5,0xff,0x7e,0x1,0x9e,0x2,0x4,0x3,0xc2,0x2, +0x8,0x2,0xc,0x1,0xee,0xff,0xfc,0xfe,0x8b,0xfe,0x8b,0xfe, +0xf0,0xfe,0xd2,0xff,0xec,0x0,0xd8,0x1,0x64,0x2,0x5f,0x2, +0x80,0x1,0x7f,0xff,0x5e,0xfc,0x96,0xf8,0xa8,0xf4,0xec,0xf0, +0xcd,0xed,0xa3,0xeb,0xe2,0xea,0x3d,0xec,0x1a,0xf0,0x82,0xf6, +0x23,0xff,0xde,0x8,0x6b,0x12,0xc6,0x1a,0x90,0x20,0xab,0x22, +0xea,0x20,0x11,0x1b,0x1f,0x11,0x92,0x4,0xca,0xf7,0xed,0xec, +0xa0,0xe5,0xa0,0xe2,0xe,0xe4,0xd8,0xe9,0x7,0xf3,0x90,0xfd, +0x74,0x7,0x6b,0xf,0xb2,0x14,0xdb,0x16,0xf6,0x15,0x83,0x12, +0xf5,0xc,0x25,0x6,0xa5,0xff,0x93,0xfa,0x12,0xf7,0x29,0xf5, +0xfa,0xf4,0xb0,0xf6,0x28,0xfa,0x60,0xfe,0x80,0x2,0x8c,0x6, +0xc0,0x9,0xb6,0xa,0x6f,0x9,0x84,0x6,0x1,0x2,0x8c,0xfc, +0x64,0xf7,0x14,0xf3,0x86,0xef,0xc7,0xec,0x87,0xeb,0x76,0xec, +0xd3,0xee,0x7e,0xf1,0xdc,0xf4,0x66,0xf9,0x4b,0xfe,0xf0,0x2, +0x83,0x7,0xc7,0xb,0xf4,0xe,0x8e,0x10,0xac,0x10,0x6c,0xf, +0x6b,0xc,0x83,0x7,0xb1,0x1,0xff,0xfb,0x71,0xf6,0x50,0xf1, +0xc,0xee,0x73,0xed,0xd7,0xee,0xdc,0xf1,0xd0,0xf6,0x3,0xfd, +0x4d,0x3,0x47,0x9,0x5d,0xe,0x92,0x11,0xc1,0x12,0x36,0x12, +0xe6,0xf,0x11,0xc,0x90,0x7,0x41,0x3,0xa4,0xff,0xf5,0xfc, +0x91,0xfb,0xa3,0xfb,0xa0,0xfc,0x25,0xfe,0x47,0x0,0x7d,0x2, +0xfa,0x3,0xad,0x4,0xb0,0x4,0xda,0x3,0x2d,0x2,0xdc,0xff, +0x50,0xfd,0xfc,0xfa,0xd7,0xf8,0xf1,0xf6,0xe8,0xf5,0xf5,0xf5, +0xc1,0xf6,0x5b,0xf8,0xe3,0xfa,0xd4,0xfd,0x97,0x0,0x44,0x3, +0x4,0x6,0x19,0x8,0x8d,0x8,0xa2,0x7,0x29,0x6,0x6,0x4, +0xd3,0x0,0x5,0xfd,0x6b,0xf9,0x60,0xf6,0xb,0xf4,0xa4,0xf2, +0x6c,0xf2,0x97,0xf3,0x20,0xf6,0xcb,0xf9,0x31,0xfe,0xb9,0x2, +0xca,0x6,0xa,0xa,0x21,0xc,0xbe,0xc,0xe5,0xb,0xc5,0x9, +0xb2,0x6,0x76,0x3,0xbe,0x0,0xa7,0xfe,0x75,0xfd,0x8c,0xfd, +0xbc,0xfe,0x98,0x0,0xbd,0x2,0xa7,0x4,0x1e,0x6,0x1a,0x7, +0x3f,0x7,0x56,0x6,0xa7,0x4,0x8f,0x2,0x6c,0x0,0x7e,0xfe, +0xcf,0xfc,0xaa,0xfb,0x4c,0xfb,0x7c,0xfb,0x40,0xfc,0xd4,0xfd, +0xde,0xff,0xe1,0x1,0xbe,0x3,0x5d,0x5,0x96,0x6,0xf7,0x6, +0x22,0x6,0x90,0x4,0xc2,0x2,0x78,0x0,0xde,0xfd,0xd4,0xfb, +0xad,0xfa,0x21,0xfa,0xf8,0xf9,0x1f,0xfa,0xaf,0xfa,0xa0,0xfb, +0xb6,0xfc,0xd1,0xfd,0xbc,0xfe,0x59,0xff,0xfb,0xff,0xc4,0x0, +0x63,0x1,0x95,0x1,0x39,0x1,0x76,0x0,0xd6,0xff,0x6f,0xff, +0x8,0xff,0xdf,0xfe,0xc,0xff,0x42,0xff,0x82,0xff,0xa8,0xff, +0x2a,0xff,0xec,0xfd,0xff,0xfb,0x49,0xf9,0x10,0xf6,0xd0,0xf2, +0xec,0xef,0x25,0xee,0x35,0xee,0x40,0xf0,0x69,0xf4,0xdb,0xfa, +0x9,0x3,0xd0,0xb,0xea,0x13,0x13,0x1a,0x7f,0x1d,0xcd,0x1d, +0x6b,0x1a,0xa,0x13,0xbc,0x8,0x95,0xfd,0x8a,0xf3,0x27,0xec, +0x6f,0xe8,0x93,0xe8,0x37,0xec,0xb5,0xf2,0xd3,0xfa,0xe,0x3, +0x42,0xa,0x88,0xf,0x3d,0x12,0x65,0x12,0x60,0x10,0x93,0xc, +0xa5,0x7,0x7b,0x2,0xef,0xfd,0x86,0xfa,0x3e,0xf8,0x2e,0xf7, +0xdb,0xf7,0xd,0xfa,0xb3,0xfc,0x88,0xff,0xa9,0x2,0x2e,0x5, +0x6b,0x6,0xad,0x6,0xd5,0x5,0x69,0x3,0xd7,0xff,0xf0,0xfb, +0x22,0xf8,0x97,0xf4,0x71,0xf1,0x47,0xef,0xd2,0xee,0xd7,0xef, +0xcb,0xf1,0xdc,0xf4,0x12,0xf9,0xb6,0xfd,0x35,0x2,0x7f,0x6, +0x54,0xa,0xf4,0xc,0xd9,0xd,0x57,0xd,0xa4,0xb,0x4d,0x8, +0xb9,0x3,0x50,0xff,0x86,0xfb,0xe,0xf8,0x5f,0xf5,0x42,0xf4, +0xd9,0xf4,0xa7,0xf6,0x13,0xf9,0xf2,0xfb,0x4c,0xff,0xc7,0x2, +0xa,0x6,0xa,0x9,0x6d,0xb,0xac,0xc,0xc2,0xc,0xe8,0xb, +0x23,0xa,0x85,0x7,0x6a,0x4,0x39,0x1,0x5c,0xfe,0x6d,0xfc, +0xb9,0xfb,0xf7,0xfb,0x24,0xfd,0x69,0xff,0x16,0x2,0x52,0x4, +0xb,0x6,0x15,0x7,0xeb,0x6,0x5d,0x5,0x91,0x2,0x20,0xff, +0xb4,0xfb,0x5e,0xf8,0x8e,0xf5,0x32,0xf4,0x2d,0xf4,0xf,0xf5, +0x41,0xf7,0xa2,0xfa,0x46,0xfe,0xc7,0x1,0xf7,0x4,0x79,0x7, +0xfc,0x8,0xa,0x9,0xa6,0x7,0x83,0x5,0xc6,0x2,0x4b,0xff, +0xc7,0xfb,0xe3,0xf8,0xac,0xf6,0x64,0xf5,0x58,0xf5,0x4f,0xf6, +0xb,0xf8,0x8e,0xfa,0xa7,0xfd,0xca,0x0,0x8c,0x3,0xe2,0x5, +0xae,0x7,0x94,0x8,0x77,0x8,0x92,0x7,0x37,0x6,0x8a,0x4, +0xa3,0x2,0x0,0x1,0x16,0x0,0xa2,0xff,0x78,0xff,0xfe,0xff, +0x25,0x1,0x6b,0x2,0x98,0x3,0x8d,0x4,0x2a,0x5,0x4f,0x5, +0xc6,0x4,0xa7,0x3,0x3d,0x2,0x8c,0x0,0xd8,0xfe,0xa1,0xfd, +0xeb,0xfc,0xd7,0xfc,0xb8,0xfd,0x3a,0xff,0xfd,0x0,0xb,0x3, +0xfe,0x4,0x38,0x6,0x9a,0x6,0x12,0x6,0x8c,0x4,0x53,0x2, +0xe5,0xff,0xa5,0xfd,0xda,0xfb,0xd3,0xfa,0xc4,0xfa,0x6f,0xfb, +0x72,0xfc,0x95,0xfd,0x8b,0xfe,0x38,0xff,0xaa,0xff,0x9a,0xff, +0xfb,0xfe,0x49,0xfe,0xab,0xfd,0x38,0xfd,0x46,0xfd,0xa2,0xfd, +0x16,0xfe,0xfb,0xfe,0x2a,0x0,0x2d,0x1,0xe5,0x1,0x31,0x2, +0x5a,0x2,0x91,0x2,0xe6,0x1,0xf2,0xff,0xaa,0xfd,0x48,0xfb, +0x6d,0xf8,0x69,0xf5,0x7b,0xf2,0xf4,0xef,0x84,0xee,0x4d,0xee, +0x7d,0xef,0x85,0xf2,0x9,0xf7,0xf3,0xfc,0xc0,0x4,0x70,0xd, +0x18,0x15,0xd2,0x1a,0x22,0x1e,0x6b,0x1e,0x2a,0x1b,0x9,0x14, +0xe6,0x9,0xc3,0xfe,0x35,0xf4,0xa6,0xeb,0x96,0xe6,0x70,0xe5, +0x7,0xe8,0x42,0xee,0xf9,0xf6,0x42,0x0,0xb7,0x8,0x44,0xf, +0x3e,0x13,0x91,0x14,0x1e,0x13,0x11,0xf,0x86,0x9,0x9d,0x3, +0x8,0xfe,0xa6,0xf9,0xd,0xf7,0x2f,0xf6,0x29,0xf7,0xb,0xfa, +0xf2,0xfd,0xcb,0x1,0x4c,0x5,0xe7,0x7,0x90,0x8,0x52,0x7, +0xa,0x5,0xbd,0x1,0x5b,0xfd,0xf2,0xf8,0x8f,0xf5,0x46,0xf3, +0xbf,0xf1,0xd,0xf1,0xbd,0xf1,0xb9,0xf3,0xe5,0xf5,0xa,0xf8, +0x9,0xfb,0x77,0xfe,0x3d,0x1,0xdc,0x3,0xf0,0x6,0x6b,0x9, +0x80,0xa,0xb0,0xa,0x42,0xa,0xaf,0x8,0xac,0x5,0xd0,0x1, +0x10,0xfe,0xba,0xfa,0xb3,0xf7,0x98,0xf5,0x2b,0xf5,0x18,0xf6, +0xc6,0xf7,0x76,0xfa,0x3e,0xfe,0x38,0x2,0xad,0x5,0xb0,0x8, +0x17,0xb,0x49,0xc,0x35,0xc,0x12,0xb,0xd2,0x8,0xdf,0x5, +0x12,0x3,0xa4,0x0,0x95,0xfe,0x61,0xfd,0x59,0xfd,0x5e,0xfe, +0x47,0x0,0xa4,0x2,0xea,0x4,0xb0,0x6,0x81,0x7,0x3c,0x7, +0xa,0x6,0x97,0x3,0xd1,0xff,0xc7,0xfb,0x40,0xf8,0x21,0xf5, +0xd8,0xf2,0x31,0xf2,0x2a,0xf3,0x46,0xf5,0x3e,0xf8,0xf2,0xfb, +0xff,0xff,0x88,0x3,0x17,0x6,0xf6,0x7,0xff,0x8,0xa8,0x8, +0x4e,0x7,0x98,0x5,0x6d,0x3,0xbd,0x0,0xf5,0xfd,0x70,0xfb, +0x5b,0xf9,0xe7,0xf7,0x24,0xf7,0x0,0xf7,0x79,0xf7,0xbf,0xf8, +0xe2,0xfa,0x88,0xfd,0x4b,0x0,0xd3,0x2,0xcd,0x4,0x2d,0x6, +0xea,0x6,0xb3,0x6,0x9f,0x5,0x38,0x4,0xc9,0x2,0xac,0x1, +0x3a,0x1,0x40,0x1,0xb1,0x1,0xe0,0x2,0x7b,0x4,0xe7,0x5, +0xfd,0x6,0x7d,0x7,0x2e,0x7,0x4b,0x6,0xde,0x4,0xbe,0x2, +0x3c,0x0,0xcc,0xfd,0xa5,0xfb,0xd6,0xf9,0x79,0xf8,0x1d,0xf8, +0x49,0xf9,0x9b,0xfb,0x7b,0xfe,0xd1,0x1,0x50,0x5,0x73,0x8, +0xeb,0xa,0x32,0xc,0xd0,0xb,0xfe,0x9,0x25,0x7,0x87,0x3, +0xa1,0xff,0xd4,0xfb,0x5e,0xf8,0xda,0xf5,0xc0,0xf4,0xd9,0xf4, +0xd2,0xf5,0xa4,0xf7,0x28,0xfa,0xe8,0xfc,0x6f,0xff,0x70,0x1, +0xc2,0x2,0x76,0x3,0x95,0x3,0xe8,0x2,0xa6,0x1,0x99,0x0, +0xf1,0xff,0x6b,0xff,0x6f,0xff,0x49,0x0,0x5b,0x1,0x34,0x2, +0xbf,0x2,0x7e,0x2,0x11,0x1,0xb4,0xfe,0xab,0xfb,0x24,0xf8, +0x53,0xf4,0x9f,0xf0,0xe5,0xed,0xb7,0xec,0xf0,0xec,0xe2,0xee, +0x3b,0xf3,0xad,0xf9,0x6b,0x1,0xe6,0x9,0x4,0x12,0x3d,0x18, +0xbd,0x1b,0x3a,0x1c,0x52,0x19,0xe2,0x12,0xb7,0x9,0xa2,0xff, +0xa0,0xf6,0xf4,0xef,0x3e,0xec,0xe4,0xeb,0xe7,0xee,0x90,0xf4, +0x98,0xfb,0xa9,0x2,0x8b,0x8,0x5f,0xc,0xfd,0xd,0xbf,0xd, +0xb8,0xb,0xf5,0x7,0x4b,0x3,0x5,0xff,0xdb,0xfb,0xda,0xf9, +0xef,0xf8,0x2a,0xf9,0xcd,0xfa,0xf7,0xfd,0xe7,0x1,0x6d,0x5, +0x2c,0x8,0x21,0xa,0x96,0xa,0x1e,0x9,0x38,0x6,0x1e,0x2, +0xe5,0xfc,0x98,0xf7,0x54,0xf3,0x40,0xf0,0x43,0xee,0xb7,0xed, +0x37,0xef,0x8a,0xf2,0x40,0xf6,0x90,0xf9,0x2c,0xfd,0xf1,0x0, +0xb2,0x3,0xae,0x5,0xde,0x7,0xbe,0x9,0x46,0xa,0xa1,0x9, +0x97,0x8,0x18,0x7,0x59,0x4,0xa9,0x0,0x5e,0xfd,0x97,0xfa, +0x9e,0xf7,0x46,0xf5,0xbc,0xf4,0x8f,0xf5,0x20,0xf7,0xda,0xf9, +0xe5,0xfd,0x68,0x2,0x6b,0x6,0xb2,0x9,0x5f,0xc,0xdc,0xd, +0x57,0xd,0x11,0xb,0xda,0x7,0x1d,0x4,0x4d,0x0,0x18,0xfd, +0xf5,0xfa,0x3b,0xfa,0x33,0xfb,0xa8,0xfd,0xef,0x0,0x45,0x4, +0x1f,0x7,0x3b,0x9,0x3b,0xa,0xae,0x9,0xa0,0x7,0x64,0x4, +0x2e,0x0,0xa1,0xfb,0xb6,0xf7,0xc2,0xf4,0xc6,0xf2,0x44,0xf2, +0x9b,0xf3,0x75,0xf6,0x36,0xfa,0x38,0xfe,0xea,0x1,0xf5,0x4, +0xf8,0x6,0xa9,0x7,0x40,0x7,0xf8,0x5,0xde,0x3,0x60,0x1, +0x14,0xff,0x28,0xfd,0xa6,0xfb,0x96,0xfa,0x3,0xfa,0x1d,0xfa, +0xd3,0xfa,0xa8,0xfb,0x7c,0xfc,0x8f,0xfd,0xd7,0xfe,0x16,0x0, +0x37,0x1,0x43,0x2,0x3a,0x3,0xe6,0x3,0x0,0x4,0x99,0x3, +0xf1,0x2,0x3,0x2,0xca,0x0,0xa7,0xff,0xc,0xff,0x6,0xff, +0x88,0xff,0xb5,0x0,0x7e,0x2,0x71,0x4,0x26,0x6,0x6c,0x7, +0x36,0x8,0x70,0x8,0xd8,0x7,0x5d,0x6,0x73,0x4,0x78,0x2, +0x61,0x0,0x54,0xfe,0xa4,0xfc,0x84,0xfb,0xf4,0xfa,0xcf,0xfa, +0x26,0xfb,0x36,0xfc,0x9a,0xfd,0xc9,0xfe,0x7,0x0,0x7f,0x1, +0xb6,0x2,0x77,0x3,0xe1,0x3,0xe9,0x3,0xa2,0x3,0x14,0x3, +0x16,0x2,0xc4,0x0,0x72,0xff,0x3d,0xfe,0x30,0xfd,0x73,0xfc, +0x13,0xfc,0xdf,0xfb,0xb1,0xfb,0xcd,0xfb,0x50,0xfc,0x3,0xfd, +0xf8,0xfd,0x4d,0xff,0xc5,0x0,0x64,0x2,0x7,0x4,0x6,0x5, +0x54,0x5,0x33,0x5,0x4c,0x4,0xc9,0x2,0x5a,0x1,0xf0,0xff, +0x87,0xfe,0xc1,0xfd,0xac,0xfd,0xf9,0xfd,0xa4,0xfe,0x7d,0xff, +0x47,0x0,0xde,0x0,0xe0,0x0,0x1e,0x0,0x9c,0xfe,0x3e,0xfc, +0x67,0xf9,0xb4,0xf6,0x48,0xf4,0x5a,0xf2,0x8f,0xf1,0x7e,0xf2, +0x85,0xf5,0x86,0xfa,0xdf,0x0,0xc0,0x7,0x7,0xe,0x9e,0x12, +0x1a,0x15,0xd7,0x14,0xc,0x11,0x49,0xa,0x16,0x2,0xe2,0xf9, +0x15,0xf3,0xb9,0xee,0x42,0xed,0xd5,0xee,0xf7,0xf2,0xe3,0xf8, +0xe7,0xff,0x84,0x6,0x31,0xb,0xec,0xd,0x7,0xf,0x10,0xe, +0xfd,0xa,0x84,0x6,0xaa,0x1,0x6f,0xfd,0x19,0xfa,0xaf,0xf7, +0xd8,0xf6,0x3,0xf8,0xed,0xfa,0x1c,0xff,0xb9,0x3,0xef,0x7, +0x59,0xb,0x36,0xd,0xcc,0xc,0x6d,0xa,0xa2,0x6,0xc2,0x1, +0xbd,0xfc,0x78,0xf8,0xf6,0xf4,0xa,0xf2,0x2c,0xf0,0x25,0xf0, +0xd1,0xf1,0xec,0xf3,0xd6,0xf5,0x56,0xf8,0xd5,0xfb,0x82,0xff, +0xbc,0x2,0xd0,0x5,0xef,0x8,0x64,0xb,0x73,0xc,0x2d,0xc, +0x97,0xa,0x6f,0x7,0x57,0x3,0x64,0xff,0xb4,0xfb,0x2a,0xf8, +0x84,0xf5,0x73,0xf4,0xca,0xf4,0x5,0xf6,0xe8,0xf7,0x70,0xfa, +0x69,0xfd,0x7f,0x0,0x7f,0x3,0x27,0x6,0x0,0x8,0xcc,0x8, +0xa3,0x8,0x8d,0x7,0x95,0x5,0x2f,0x3,0x4,0x1,0x60,0xff, +0x75,0xfe,0xa2,0xfe,0xeb,0xff,0xdd,0x1,0x1f,0x4,0x6d,0x6, +0x59,0x8,0x79,0x9,0x8a,0x9,0x7d,0x8,0x58,0x6,0xfc,0x2, +0xce,0xfe,0xcc,0xfa,0x35,0xf7,0xec,0xf3,0xe2,0xf1,0xd8,0xf1, +0x3c,0xf3,0xc5,0xf5,0xa8,0xf9,0x3d,0xfe,0x7d,0x2,0xf6,0x5, +0x87,0x8,0x27,0xa,0x92,0xa,0x72,0x9,0x42,0x7,0xc9,0x4, +0x2,0x2,0xff,0xfe,0x81,0xfc,0xd8,0xfa,0xbe,0xf9,0x46,0xf9, +0xab,0xf9,0xa1,0xfa,0xb3,0xfb,0xd3,0xfc,0x27,0xfe,0x72,0xff, +0x37,0x0,0x5e,0x0,0x29,0x0,0xba,0xff,0xf,0xff,0x54,0xfe, +0xb5,0xfd,0x2a,0xfd,0xf3,0xfc,0xa4,0xfd,0x5a,0xff,0x9e,0x1, +0x24,0x4,0xdc,0x6,0x82,0x9,0x9f,0xb,0xb3,0xc,0x8d,0xc, +0x50,0xb,0x14,0x9,0x9,0x6,0xb7,0x2,0x58,0xff,0xf8,0xfb, +0x2d,0xf9,0x6e,0xf7,0x7c,0xf6,0x2d,0xf6,0xa7,0xf6,0x3,0xf8, +0x39,0xfa,0xd,0xfd,0x35,0x0,0x99,0x3,0xcd,0x6,0x26,0x9, +0x74,0xa,0x9e,0xa,0x48,0x9,0x9b,0x6,0x5c,0x3,0x20,0x0, +0x31,0xfd,0xf1,0xfa,0xc6,0xf9,0xab,0xf9,0x4b,0xfa,0x70,0xfb, +0xdb,0xfc,0x14,0xfe,0xfe,0xfe,0xaf,0xff,0xf9,0xff,0xe3,0xff, +0xac,0xff,0x3b,0xff,0xa2,0xfe,0x4f,0xfe,0x43,0xfe,0x77,0xfe, +0x12,0xff,0xce,0xff,0xb3,0x0,0x4b,0x2,0x11,0x4,0x23,0x5, +0xe6,0x5,0xa6,0x6,0xaf,0x6,0xca,0x5,0x49,0x4,0x41,0x2, +0xfc,0xff,0xe8,0xfd,0x42,0xfc,0x68,0xfb,0x6d,0xfb,0xff,0xfb, +0xe,0xfd,0x82,0xfe,0xd5,0xff,0xc3,0x0,0x32,0x1,0xc0,0x0, +0x59,0xff,0x46,0xfd,0xab,0xfa,0xe7,0xf7,0xab,0xf5,0x83,0xf4, +0xf2,0xf4,0x6b,0xf7,0xd1,0xfb,0x79,0x1,0x7c,0x7,0x1,0xd, +0x6c,0x11,0xd9,0x13,0xe3,0x12,0xec,0xd,0x17,0x6,0x4e,0xfd, +0x10,0xf5,0x78,0xee,0x70,0xea,0x5f,0xe9,0x48,0xeb,0x22,0xf0, +0x2b,0xf7,0xba,0xfe,0xaa,0x5,0xb2,0xb,0x31,0x10,0x3f,0x12, +0xad,0x11,0x3,0xf,0x15,0xb,0xa4,0x6,0x2d,0x2,0x3f,0xfe, +0x46,0xfb,0x4b,0xf9,0xb5,0xf8,0xe0,0xf9,0xf0,0xfb,0x9,0xfe, +0x4f,0x0,0x72,0x2,0x8f,0x3,0x8e,0x3,0xe5,0x2,0xdd,0x1, +0x9c,0x0,0x2d,0xff,0xe5,0xfd,0xfa,0xfc,0x0,0xfc,0x38,0xfb, +0x8b,0xfb,0x60,0xfc,0x7a,0xfc,0x5e,0xfc,0xf8,0xfc,0xca,0xfd, +0x53,0xfe,0x3d,0xff,0x36,0x1,0x9c,0x3,0x28,0x5,0xc6,0x5, +0xd,0x6,0x6b,0x5,0x34,0x3,0x46,0x0,0x97,0xfd,0xed,0xfa, +0x2c,0xf8,0x2d,0xf6,0xa9,0xf5,0x39,0xf6,0x10,0xf7,0x56,0xf8, +0xb6,0xfa,0xf7,0xfd,0x4f,0x1,0x65,0x4,0x35,0x7,0x8d,0x9, +0x5,0xb,0x54,0xb,0x88,0xa,0xb5,0x8,0x0,0x6,0xef,0x2, +0x13,0x0,0xce,0xfd,0x74,0xfc,0x6,0xfc,0x52,0xfc,0x63,0xfd, +0xf9,0xfe,0x65,0x0,0x61,0x1,0x20,0x2,0x9e,0x2,0x8a,0x2, +0xd7,0x1,0x0,0x1,0x63,0x0,0xc3,0xff,0x24,0xff,0xfa,0xfe, +0x50,0xff,0xea,0xff,0xa9,0x0,0x3e,0x1,0x80,0x1,0xa1,0x1, +0x96,0x1,0x59,0x1,0x19,0x1,0x81,0x0,0x48,0xff,0xf7,0xfd, +0x6,0xfd,0x58,0xfc,0xd9,0xfb,0xb4,0xfb,0x2,0xfc,0x8e,0xfc, +0xfd,0xfc,0x4b,0xfd,0xad,0xfd,0x1b,0xfe,0x87,0xfe,0x6,0xff, +0xab,0xff,0x6e,0x0,0x16,0x1,0xa3,0x1,0x85,0x2,0x82,0x3, +0xc6,0x3,0x6c,0x3,0x23,0x3,0xdf,0x2,0x58,0x2,0x98,0x1, +0xa8,0x0,0xb6,0xff,0xe3,0xfe,0x11,0xfe,0x76,0xfd,0x62,0xfd, +0xaf,0xfd,0x66,0xfe,0xc2,0xff,0x6a,0x1,0xd8,0x2,0xde,0x3, +0x5b,0x4,0x57,0x4,0x5,0x4,0x49,0x3,0x1f,0x2,0xfd,0x0, +0x29,0x0,0x93,0xff,0x62,0xff,0xc6,0xff,0x8b,0x0,0x69,0x1, +0x49,0x2,0x11,0x3,0x85,0x3,0x4e,0x3,0x44,0x2,0xc1,0x0, +0x8,0xff,0xe4,0xfc,0x8c,0xfa,0xbe,0xf8,0xbd,0xf7,0xa1,0xf7, +0xca,0xf8,0x11,0xfb,0xb1,0xfd,0x3e,0x0,0x8f,0x2,0x56,0x4, +0x2f,0x5,0xe5,0x4,0xd0,0x3,0x9e,0x2,0x67,0x1,0x4,0x0, +0xda,0xfe,0x32,0xfe,0xbd,0xfd,0x4d,0xfd,0xf7,0xfc,0xac,0xfc, +0x53,0xfc,0xff,0xfb,0xd2,0xfb,0xec,0xfb,0x71,0xfc,0x7a,0xfd, +0xf8,0xfe,0xd3,0x0,0x11,0x3,0x81,0x5,0xa5,0x7,0x12,0x9, +0x76,0x9,0xb4,0x8,0x1c,0x7,0xf1,0x4,0x4a,0x2,0x9b,0xff, +0x50,0xfd,0x8f,0xfb,0xd3,0xfa,0x70,0xfb,0xe1,0xfc,0x9e,0xfe, +0x63,0x0,0x7d,0x1,0x63,0x1,0x42,0x0,0x3a,0xfe,0x71,0xfb, +0xbd,0xf8,0xfa,0xf6,0x7a,0xf6,0x7e,0xf7,0x25,0xfa,0x1e,0xfe, +0xde,0x2,0x88,0x7,0xcd,0xa,0xb9,0xb,0x23,0xa,0x79,0x6, +0xd5,0x1,0x6f,0xfd,0xa7,0xf9,0xaa,0xf6,0x10,0xf5,0x22,0xf5, +0xcb,0xf6,0xc0,0xf9,0xfe,0xfc,0xdb,0xff,0xa9,0x2,0x5,0x5, +0xe9,0x5,0x76,0x5,0x3c,0x4,0x68,0x2,0x77,0x0,0xb4,0xfe, +0xb,0xfd,0x17,0xfc,0x64,0xfc,0xb8,0xfd,0xf7,0xff,0xc7,0x2, +0x3f,0x5,0x21,0x7,0x74,0x8,0x7e,0x8,0xf4,0x6,0x9b,0x4, +0xe,0x2,0x59,0xff,0xa8,0xfc,0x81,0xfa,0x46,0xf9,0xea,0xf8, +0x7f,0xf9,0x40,0xfb,0x8f,0xfd,0x4c,0xff,0x64,0x0,0x67,0x1, +0x17,0x2,0xdd,0x1,0x32,0x1,0x33,0x1,0xcf,0x1,0x0,0x2, +0x9d,0x1,0x42,0x1,0xe1,0x0,0xf5,0xff,0x7d,0xfe,0x5,0xfd, +0xe8,0xfb,0x14,0xfb,0xd3,0xfa,0x96,0xfb,0xb4,0xfc,0x52,0xfd, +0xed,0xfd,0xf5,0xfe,0xed,0xff,0x9d,0x0,0x8,0x1,0x36,0x1, +0x8d,0x1,0xee,0x1,0xc7,0x1,0x56,0x1,0xd3,0x0,0xf8,0xff, +0x2b,0xff,0xa8,0xfe,0x1a,0xfe,0x3,0xfe,0xc8,0xfe,0xb4,0xff, +0xac,0x0,0xb,0x2,0x64,0x3,0x8c,0x4,0xa0,0x5,0x12,0x6, +0xb8,0x5,0x2,0x5,0xc7,0x3,0xd9,0x1,0x93,0xff,0x53,0xfd, +0xa3,0xfb,0xfd,0xfa,0xf4,0xfa,0xe,0xfb,0x94,0xfb,0xa6,0xfc, +0xfa,0xfd,0x84,0xff,0x3e,0x1,0xbc,0x2,0xba,0x3,0x59,0x4, +0x8c,0x4,0x0,0x4,0xaa,0x2,0xf6,0x0,0x67,0xff,0x2c,0xfe, +0xe,0xfd,0x4,0xfc,0x98,0xfb,0x3,0xfc,0xe9,0xfc,0xa,0xfe, +0xc,0xff,0x7f,0xff,0xa5,0xff,0xdb,0xff,0xdb,0xff,0xa1,0xff, +0x67,0xff,0xf3,0xfe,0x6b,0xfe,0x4e,0xfe,0x6a,0xfe,0x96,0xfe, +0x15,0xff,0xaa,0xff,0x26,0x0,0xf2,0x0,0xe2,0x1,0x6b,0x2, +0xcb,0x2,0x37,0x3,0x56,0x3,0x36,0x3,0x19,0x3,0xbd,0x2, +0xc8,0x1,0x43,0x0,0x7c,0xfe,0xe5,0xfc,0xc9,0xfb,0x45,0xfb, +0x84,0xfb,0xa6,0xfc,0x91,0xfe,0xea,0x0,0x2f,0x3,0x9,0x5, +0x49,0x6,0xb9,0x6,0x44,0x6,0xf9,0x4,0xde,0x2,0x45,0x0, +0xc8,0xfd,0xd1,0xfb,0xa6,0xfa,0x6e,0xfa,0x8,0xfb,0x6e,0xfc, +0x80,0xfe,0xa8,0x0,0x64,0x2,0x61,0x3,0x3f,0x3,0x50,0x2, +0x28,0x1,0x9b,0xff,0xd3,0xfd,0xb1,0xfc,0x57,0xfc,0x94,0xfc, +0x7d,0xfd,0x89,0xfe,0x40,0xff,0x3,0x0,0xc2,0x0,0x16,0x1, +0x26,0x1,0xf8,0x0,0x8c,0x0,0x4f,0x0,0x18,0x0,0xa4,0xff, +0x79,0xff,0xae,0xff,0xb8,0xff,0xbd,0xff,0xec,0xff,0xf5,0xff, +0xe4,0xff,0xea,0xff,0xe3,0xff,0xcd,0xff,0xd9,0xff,0x1b,0x0, +0x76,0x0,0xb7,0x0,0xdf,0x0,0x28,0x1,0xb1,0x1,0x57,0x2, +0xcb,0x2,0x8,0x3,0x67,0x3,0xd9,0x3,0xfe,0x3,0xe1,0x3, +0x46,0x3,0x99,0x1,0x35,0xff,0xa8,0xfc,0xc6,0xf9,0xed,0xf6, +0x15,0xf5,0xa0,0xf4,0xc4,0xf5,0xbb,0xf8,0xf,0xfd,0xe6,0x1, +0x73,0x6,0xc,0xa,0x56,0xc,0xc4,0xc,0x98,0xa,0x1c,0x6, +0xaa,0x0,0x9f,0xfb,0x3,0xf8,0x31,0xf6,0xbf,0xf5,0x75,0xf6, +0x91,0xf8,0x1,0xfc,0xda,0xff,0xdf,0x2,0xa8,0x4,0xb7,0x5, +0x17,0x6,0x51,0x5,0x86,0x3,0x33,0x1,0xb8,0xfe,0xad,0xfc, +0x8a,0xfb,0xb,0xfb,0xe1,0xfa,0x6b,0xfb,0x14,0xfd,0x74,0xff, +0xcb,0x1,0xc6,0x3,0x42,0x5,0xd,0x6,0x2c,0x6,0xa7,0x5, +0x6a,0x4,0xba,0x2,0x17,0x1,0xed,0xff,0x34,0xff,0x4e,0xfe, +0x28,0xfd,0xa2,0xfc,0xb5,0xfc,0x57,0xfc,0xb3,0xfb,0xb3,0xfb, +0x34,0xfc,0xcb,0xfc,0xe4,0xfd,0xdf,0xff,0x31,0x2,0x5,0x4, +0x47,0x5,0x3d,0x6,0x6e,0x6,0x73,0x5,0xf6,0x3,0x72,0x2, +0x8a,0x0,0x3d,0xfe,0x48,0xfc,0x37,0xfb,0xbf,0xfa,0x4b,0xfa, +0x9,0xfa,0xa2,0xfa,0xe,0xfc,0xbd,0xfd,0x55,0xff,0xb0,0x0, +0xd4,0x1,0xc8,0x2,0x46,0x3,0x17,0x3,0x56,0x2,0x3c,0x1, +0x24,0x0,0x55,0xff,0xcf,0xfe,0xa9,0xfe,0x21,0xff,0x32,0x0, +0x7b,0x1,0x76,0x2,0xc,0x3,0xb3,0x3,0x48,0x4,0xed,0x3, +0x70,0x2,0x75,0x0,0x79,0xfe,0x8d,0xfc,0xa9,0xfa,0x32,0xf9, +0xf3,0xf8,0x3e,0xfa,0xae,0xfc,0x9e,0xff,0x5a,0x2,0x8d,0x4, +0x65,0x6,0xdb,0x7,0x6a,0x8,0xa8,0x7,0xd0,0x5,0xbe,0x3, +0xd8,0x1,0xbc,0xff,0x77,0xfd,0xb1,0xfb,0xc9,0xfa,0xd4,0xfa, +0x87,0xfb,0x40,0xfc,0xe,0xfd,0x60,0xfe,0xe5,0xff,0x22,0x1, +0xf6,0x1,0x4d,0x2,0x63,0x2,0x61,0x2,0x2,0x2,0x70,0x1, +0xfa,0x0,0x88,0x0,0x47,0x0,0x48,0x0,0xf2,0xff,0x56,0xff, +0x28,0xff,0x6c,0xff,0xcf,0xff,0x32,0x0,0x81,0x0,0xe1,0x0, +0x4a,0x1,0x53,0x1,0xdc,0x0,0x9,0x0,0x1e,0xff,0x90,0xfe, +0x3b,0xfe,0x95,0xfd,0xec,0xfc,0xd2,0xfc,0x4b,0xfd,0x47,0xfe, +0x8e,0xff,0xca,0x0,0x21,0x2,0xa6,0x3,0xe7,0x4,0x88,0x5, +0x5a,0x5,0x79,0x4,0x7d,0x3,0x95,0x2,0x72,0x1,0x26,0x0, +0xec,0xfe,0xdb,0xfd,0x3c,0xfd,0x22,0xfd,0x53,0xfd,0xc3,0xfd, +0x44,0xfe,0x96,0xfe,0xee,0xfe,0x7c,0xff,0x5,0x0,0x8a,0x0, +0x33,0x1,0xbf,0x1,0xce,0x1,0x86,0x1,0x28,0x1,0x85,0x0, +0xaf,0xff,0x2f,0xff,0xe0,0xfe,0x54,0xfe,0x3,0xfe,0x5d,0xfe, +0x1b,0xff,0x42,0x0,0xbb,0x1,0xb9,0x2,0xef,0x2,0xab,0x2, +0xe5,0x1,0xc5,0x0,0xbd,0xff,0xab,0xfe,0x83,0xfd,0xb9,0xfc, +0x6a,0xfc,0x7a,0xfc,0xf9,0xfc,0xbb,0xfd,0xba,0xfe,0x47,0x0, +0x24,0x2,0xb2,0x3,0xe4,0x4,0xdf,0x5,0x86,0x6,0xca,0x6, +0x6f,0x6,0xf9,0x4,0x7c,0x2,0x85,0xff,0x73,0xfc,0xb0,0xf9, +0xad,0xf7,0x6e,0xf6,0x20,0xf6,0x39,0xf7,0x7e,0xf9,0x5d,0xfc, +0xe2,0xff,0xee,0x3,0x7a,0x7,0xaa,0x9,0xb5,0xa,0xf,0xb, +0x3b,0xa,0x64,0x7,0xae,0x2,0x17,0xfd,0xf4,0xf7,0xbe,0xf4, +0xe8,0xf3,0x8e,0xf4,0x64,0xf6,0xea,0xf9,0xb9,0xfe,0xaf,0x3, +0xa1,0x7,0x7b,0x9,0x66,0x9,0x8a,0x8,0xfe,0x6,0x4b,0x4, +0xf2,0x0,0xc4,0xfd,0x6c,0xfb,0x7c,0xfa,0x77,0xfa,0x6a,0xfa, +0xa0,0xfa,0xeb,0xfb,0x32,0xfe,0xac,0x0,0x9e,0x2,0xd9,0x3, +0xcf,0x4,0x9b,0x5,0x9a,0x5,0x7d,0x4,0xbe,0x2,0xf8,0x0, +0x87,0xff,0x63,0xfe,0x48,0xfd,0x62,0xfc,0x5c,0xfc,0x3f,0xfd, +0x33,0xfe,0xac,0xfe,0xc0,0xfe,0xb0,0xfe,0xfd,0xfe,0xff,0xff, +0x13,0x1,0x8c,0x1,0xfe,0x1,0x15,0x3,0xfd,0x3,0x99,0x3, +0x47,0x2,0x2,0x1,0xc6,0xff,0x26,0xfe,0x52,0xfc,0xd6,0xfa, +0x2b,0xfa,0x80,0xfa,0x8e,0xfb,0x15,0xfd,0xf2,0xfe,0xbe,0x0, +0x6d,0x2,0x4b,0x4,0xbc,0x5,0x5,0x6,0x93,0x5,0xcd,0x4, +0x68,0x3,0x5f,0x1,0x1a,0xff,0x2d,0xfd,0x5,0xfc,0x68,0xfb, +0x54,0xfb,0x55,0xfc,0x26,0xfe,0xfa,0xff,0xa5,0x1,0xf7,0x2, +0xa7,0x3,0xe2,0x3,0x6f,0x3,0x5,0x2,0x4a,0x0,0xc6,0xfe, +0x75,0xfd,0xa3,0xfc,0x66,0xfc,0x85,0xfc,0x4b,0xfd,0xec,0xfe, +0xf6,0x0,0xd3,0x2,0xf3,0x3,0x41,0x4,0x3f,0x4,0xe6,0x3, +0xde,0x2,0x6d,0x1,0xe2,0xff,0x49,0xfe,0x6,0xfd,0x60,0xfc, +0x17,0xfc,0x13,0xfc,0x7e,0xfc,0x64,0xfd,0x96,0xfe,0xaa,0xff, +0x4d,0x0,0x97,0x0,0xd0,0x0,0xf,0x1,0x46,0x1,0x78,0x1, +0xb9,0x1,0xeb,0x1,0xe1,0x1,0xa4,0x1,0x40,0x1,0xb5,0x0, +0x1b,0x0,0x70,0xff,0xb3,0xfe,0x22,0xfe,0x0,0xfe,0x4a,0xfe, +0xc9,0xfe,0x42,0xff,0xc9,0xff,0x8f,0x0,0x62,0x1,0x0,0x2, +0x49,0x2,0xfd,0x1,0x32,0x1,0x79,0x0,0xee,0xff,0x46,0xff, +0x99,0xfe,0x42,0xfe,0x59,0xfe,0x8d,0xfe,0xba,0xfe,0x45,0xff, +0x6c,0x0,0xe8,0x1,0x71,0x3,0xa4,0x4,0x6,0x5,0x92,0x4, +0x6e,0x3,0xd5,0x1,0x42,0x0,0xa1,0xfe,0xbd,0xfc,0x70,0xfb, +0x4e,0xfb,0xdc,0xfb,0xf4,0xfc,0x74,0xfe,0xbe,0xff,0xec,0x0, +0x3c,0x2,0x0,0x3,0xf7,0x2,0x76,0x2,0x94,0x1,0xc6,0x0, +0x67,0x0,0x8,0x0,0x88,0xff,0x1c,0xff,0xb2,0xfe,0x9a,0xfe, +0x4,0xff,0x55,0xff,0x76,0xff,0xcd,0xff,0x12,0x0,0xff,0xff, +0xcf,0xff,0xa1,0xff,0x7f,0xff,0x6d,0xff,0x5c,0xff,0x87,0xff, +0xec,0xff,0x3c,0x0,0xca,0x0,0xd5,0x1,0xa8,0x2,0xdc,0x2, +0xcf,0x2,0x9b,0x2,0x24,0x2,0x8b,0x1,0xf4,0x0,0x79,0x0, +0x22,0x0,0xd8,0xff,0x9d,0xff,0x58,0xff,0xbd,0xfe,0xfb,0xfd, +0xa0,0xfd,0x9b,0xfd,0x52,0xfd,0x90,0xfc,0x9a,0xfb,0xb5,0xfa, +0xd,0xfa,0x12,0xfa,0x4b,0xfb,0xbc,0xfd,0xc3,0x0,0xb0,0x3, +0x46,0x6,0xb0,0x8,0xbc,0xa,0x56,0xb,0x5b,0x9,0xfb,0x4, +0x96,0xff,0x8e,0xfa,0xac,0xf6,0x2e,0xf4,0xfb,0xf2,0x23,0xf3, +0x1a,0xf5,0xf1,0xf8,0x98,0xfd,0x9d,0x1,0x76,0x4,0x98,0x6, +0x4d,0x8,0xc,0x9,0x4f,0x8,0x81,0x6,0x74,0x4,0x77,0x2, +0x66,0x0,0x3a,0xfe,0x48,0xfc,0x18,0xfb,0xff,0xfa,0xee,0xfb, +0xa0,0xfd,0xd5,0xff,0x4d,0x2,0x93,0x4,0xf6,0x5,0x9,0x6, +0xde,0x4,0xc0,0x2,0x20,0x0,0x80,0xfd,0xf5,0xfa,0x96,0xf8, +0x43,0xf7,0xcc,0xf7,0xb9,0xf9,0xf9,0xfb,0x26,0xfe,0x5d,0x0, +0x82,0x2,0x36,0x4,0x22,0x5,0x4b,0x5,0x16,0x5,0xac,0x4, +0xc0,0x3,0x37,0x2,0x55,0x0,0x68,0xfe,0xda,0xfc,0xd2,0xfb, +0xe4,0xfa,0x18,0xfa,0x3b,0xfa,0x6d,0xfb,0xfc,0xfc,0x7b,0xfe, +0xaa,0xff,0x7a,0x0,0x5d,0x1,0x63,0x2,0xe8,0x2,0xa7,0x2, +0x16,0x2,0xbb,0x1,0x9b,0x1,0x42,0x1,0x9a,0x0,0x1f,0x0, +0xe5,0xff,0x81,0xff,0xda,0xfe,0x4c,0xfe,0x5f,0xfe,0x45,0xff, +0x84,0x0,0x97,0x1,0x74,0x2,0x27,0x3,0xa4,0x3,0xa2,0x3, +0x9d,0x2,0xb2,0x0,0xa1,0xfe,0xd1,0xfc,0x73,0xfb,0xbe,0xfa, +0xa3,0xfa,0x49,0xfb,0x17,0xfd,0xab,0xff,0xb,0x2,0xa6,0x3, +0x70,0x4,0xb2,0x4,0x87,0x4,0x90,0x3,0xcb,0x1,0xe7,0xff, +0x6f,0xfe,0x7c,0xfd,0xe4,0xfc,0x73,0xfc,0x56,0xfc,0xbf,0xfc, +0x6e,0xfd,0x19,0xfe,0x8c,0xfe,0xb0,0xfe,0xfd,0xfe,0xb6,0xff, +0x4d,0x0,0x6f,0x0,0x69,0x0,0x83,0x0,0xf8,0x0,0xac,0x1, +0xf8,0x1,0xb6,0x1,0x76,0x1,0x58,0x1,0xfb,0x0,0x3e,0x0, +0x7a,0xff,0x1f,0xff,0x26,0xff,0x21,0xff,0xdf,0xfe,0xa2,0xfe, +0xd5,0xfe,0xb6,0xff,0xe1,0x0,0xa2,0x1,0xd5,0x1,0xd5,0x1, +0xde,0x1,0xdc,0x1,0xa8,0x1,0x4e,0x1,0xef,0x0,0x84,0x0, +0x6,0x0,0x97,0xff,0x61,0xff,0x95,0xff,0x2a,0x0,0xc8,0x0, +0x50,0x1,0xc2,0x1,0xd1,0x1,0x63,0x1,0xbe,0x0,0xe7,0xff, +0xde,0xfe,0x7,0xfe,0x7b,0xfd,0xf6,0xfc,0x91,0xfc,0xb1,0xfc, +0x70,0xfd,0x85,0xfe,0x80,0xff,0x25,0x0,0x94,0x0,0x11,0x1, +0x9a,0x1,0xef,0x1,0x5,0x2,0x4,0x2,0xcf,0x1,0x31,0x1, +0x67,0x0,0xbf,0xff,0x18,0xff,0x55,0xfe,0xa8,0xfd,0x37,0xfd, +0x4,0xfd,0x18,0xfd,0x9b,0xfd,0xa9,0xfe,0x6,0x0,0x57,0x1, +0x9b,0x2,0xde,0x3,0xb9,0x4,0xce,0x4,0x41,0x4,0x55,0x3, +0x11,0x2,0x89,0x0,0x2,0xff,0xfd,0xfd,0x18,0xfe,0x4a,0xff, +0xd6,0x0,0x50,0x2,0xa4,0x3,0x6a,0x4,0x7e,0x4,0xfa,0x3, +0x55,0x2,0x54,0xff,0xfe,0xfb,0x35,0xf9,0xe4,0xf6,0x1a,0xf5, +0x22,0xf4,0xd,0xf4,0x10,0xf5,0x7a,0xf7,0x2a,0xfb,0xaa,0xff, +0x79,0x4,0x13,0x9,0x7,0xd,0xf5,0xf,0x4d,0x11,0x20,0x10, +0xbe,0xb,0xd9,0x4,0x41,0xfd,0x8c,0xf6,0xae,0xf1,0xd,0xef, +0x7e,0xee,0xea,0xef,0xaa,0xf3,0x76,0xf9,0xd8,0xff,0x41,0x5, +0x2e,0x9,0xe8,0xb,0x54,0xd,0xda,0xc,0x58,0xa,0x8c,0x6, +0x8a,0x2,0x1,0xff,0xe7,0xfb,0x4a,0xf9,0xf8,0xf7,0x88,0xf8, +0xbb,0xfa,0x1d,0xfe,0x1d,0x2,0xf2,0x5,0xfb,0x8,0x93,0xa, +0x32,0xa,0xf6,0x7,0x57,0x4,0x8,0x0,0x1c,0xfc,0x0,0xf9, +0x67,0xf6,0xb1,0xf4,0xc0,0xf4,0xb2,0xf6,0xce,0xf9,0x7,0xfd, +0xd0,0xff,0x76,0x2,0xc8,0x4,0xdf,0x5,0xf0,0x5,0xf4,0x5, +0xd0,0x5,0xd6,0x4,0x14,0x3,0xe,0x1,0x8,0xff,0x1c,0xfd, +0xa5,0xfb,0xde,0xfa,0x5d,0xfa,0xa,0xfa,0xaa,0xfa,0x54,0xfc, +0xd,0xfe,0x43,0xff,0x4,0x0,0x84,0x0,0x22,0x1,0xb7,0x1, +0x91,0x1,0xc6,0x0,0xb,0x0,0xa9,0xff,0xa8,0xff,0x5,0x0, +0x86,0x0,0x2f,0x1,0x15,0x2,0xc8,0x2,0xed,0x2,0xd7,0x2, +0xfd,0x2,0x5a,0x3,0x7b,0x3,0xe,0x3,0x46,0x2,0x64,0x1, +0x62,0x0,0x47,0xff,0x3d,0xfe,0x54,0xfd,0xb8,0xfc,0x9c,0xfc, +0xec,0xfc,0x7c,0xfd,0x48,0xfe,0x46,0xff,0x55,0x0,0x54,0x1, +0xe,0x2,0x55,0x2,0x42,0x2,0x1a,0x2,0xf2,0x1,0xcc,0x1, +0xc6,0x1,0xcd,0x1,0x86,0x1,0xd8,0x0,0x19,0x0,0x79,0xff, +0xba,0xfe,0xa4,0xfd,0x58,0xfc,0x1d,0xfb,0x30,0xfa,0xd6,0xf9, +0x33,0xfa,0x30,0xfb,0xd2,0xfc,0xf,0xff,0x57,0x1,0x2b,0x3, +0xa7,0x4,0xc8,0x5,0x26,0x6,0x8b,0x5,0x1b,0x4,0x50,0x2, +0xa9,0x0,0x2e,0xff,0xfe,0xfd,0x96,0xfd,0xbf,0xfd,0xb,0xfe, +0xdf,0xfe,0x19,0x0,0xe4,0x0,0x76,0x1,0x1a,0x2,0x1a,0x2, +0x4d,0x1,0x1f,0x0,0xa5,0xfe,0x92,0xfd,0x7b,0xfd,0xa2,0xfd, +0xdf,0xfd,0xe1,0xfe,0x39,0x0,0x76,0x1,0x3,0x3,0x71,0x4, +0xd,0x5,0x45,0x5,0x42,0x5,0x95,0x4,0x47,0x3,0x6b,0x1, +0x20,0xff,0x27,0xfd,0xfa,0xfb,0x3b,0xfb,0xb7,0xfa,0xb6,0xfa, +0x69,0xfb,0xc2,0xfc,0x8d,0xfe,0x6b,0x0,0xce,0x1,0x7d,0x2, +0xd1,0x2,0xce,0x2,0xd,0x2,0xe0,0x0,0xd1,0xff,0xd0,0xfe, +0x5,0xfe,0xd7,0xfd,0x28,0xfe,0xdc,0xfe,0xf9,0xff,0x18,0x1, +0xa,0x2,0x4,0x3,0xca,0x3,0x18,0x4,0x13,0x4,0xa0,0x3, +0x86,0x2,0xf0,0x0,0x25,0xff,0x76,0xfd,0x52,0xfc,0xec,0xfb, +0x15,0xfc,0x9d,0xfc,0xa5,0xfd,0x4b,0xff,0x29,0x1,0xd0,0x2, +0x28,0x4,0xe3,0x4,0xb3,0x4,0xf6,0x3,0xf2,0x2,0x58,0x1, +0x42,0xff,0x3a,0xfd,0x64,0xfb,0x94,0xf9,0xaf,0xf7,0xf4,0xf5, +0x2f,0xf5,0xf9,0xf5,0x1d,0xf8,0x40,0xfb,0x38,0xff,0x7a,0x3, +0x59,0x7,0x8e,0xa,0x9a,0xc,0x67,0xc,0x6c,0x9,0x91,0x4, +0x3d,0xff,0x5d,0xfa,0x90,0xf6,0x62,0xf4,0x36,0xf4,0x62,0xf6, +0x8f,0xfa,0x4c,0xff,0x3e,0x3,0x28,0x6,0x48,0x8,0x9f,0x9, +0xe1,0x9,0xbf,0x8,0x67,0x6,0x8b,0x3,0xb4,0x0,0x12,0xfe, +0xbe,0xfb,0xe5,0xf9,0xfa,0xf8,0x80,0xf9,0x58,0xfb,0xca,0xfd, +0x70,0x0,0x4e,0x3,0xff,0x5,0xc0,0x7,0x5d,0x8,0x23,0x8, +0x20,0x7,0x46,0x5,0xde,0x2,0x2b,0x0,0x45,0xfd,0xb1,0xfa, +0x26,0xf9,0x7c,0xf8,0xe0,0xf7,0x60,0xf7,0xf9,0xf7,0xdd,0xf9, +0xf,0xfc,0xdc,0xfd,0x76,0xff,0x34,0x1,0xf8,0x2,0x2d,0x4, +0x94,0x4,0x93,0x4,0x17,0x4,0xb0,0x2,0xe9,0x0,0x58,0xff, +0x84,0xfd,0x84,0xfb,0x7d,0xfa,0xb4,0xfa,0x79,0xfb,0x78,0xfc, +0xc5,0xfd,0x84,0xff,0x8c,0x1,0x1c,0x3,0xca,0x3,0xf7,0x3, +0xc9,0x3,0x15,0x3,0xec,0x1,0x74,0x0,0x4,0xff,0xa,0xfe, +0x76,0xfd,0x1f,0xfd,0x60,0xfd,0x8f,0xfe,0x91,0x0,0x2,0x3, +0x44,0x5,0xee,0x6,0x9,0x8,0x89,0x8,0x3b,0x8,0x2,0x7, +0xed,0x4,0x5e,0x2,0xbe,0xff,0x4,0xfd,0x40,0xfa,0x25,0xf8, +0x59,0xf7,0xd8,0xf7,0x53,0xf9,0x5b,0xfb,0x57,0xfd,0xda,0xfe, +0x8,0x0,0x20,0x1,0xf6,0x1,0x56,0x2,0x71,0x2,0x82,0x2, +0x95,0x2,0x93,0x2,0x49,0x2,0xe3,0x1,0xb5,0x1,0x76,0x1, +0xed,0x0,0x74,0x0,0xcf,0xff,0x6f,0xfe,0xdc,0xfc,0xae,0xfb, +0xac,0xfa,0x17,0xfa,0x5a,0xfa,0x2,0xfb,0xdf,0xfb,0x3e,0xfd, +0xc3,0xfe,0xee,0xff,0xca,0x0,0x42,0x1,0x42,0x1,0x27,0x1, +0x35,0x1,0x76,0x1,0xfe,0x1,0xbb,0x2,0x89,0x3,0x61,0x4, +0x8,0x5,0x26,0x5,0xc6,0x4,0x1c,0x4,0x27,0x3,0xfb,0x1, +0xea,0x0,0xed,0xff,0x96,0xfe,0xec,0xfc,0x8c,0xfb,0xca,0xfa, +0x77,0xfa,0xaa,0xfa,0xcc,0xfb,0xd4,0xfd,0x1a,0x0,0x16,0x2, +0xe0,0x3,0x81,0x5,0x6c,0x6,0x5f,0x6,0xdc,0x5,0x3,0x5, +0x5d,0x3,0x25,0x1,0x3a,0xff,0xde,0xfd,0xdb,0xfc,0x5a,0xfc, +0x7f,0xfc,0x1,0xfd,0x9f,0xfd,0x5f,0xfe,0x3f,0xff,0x1a,0x0, +0xcc,0x0,0x33,0x1,0x35,0x1,0xcd,0x0,0x3d,0x0,0xeb,0xff, +0xba,0xff,0x40,0xff,0xb4,0xfe,0x9b,0xfe,0xe9,0xfe,0x65,0xff, +0xf6,0xff,0x5c,0x0,0xac,0x0,0x3e,0x1,0xc6,0x1,0xd0,0x1, +0x7a,0x1,0xf2,0x0,0x66,0x0,0x2d,0x0,0x19,0x0,0xb1,0xff, +0x2f,0xff,0x7,0xff,0x42,0xff,0xb8,0xff,0x28,0x0,0x51,0x0, +0x32,0x0,0xaf,0xff,0x95,0xfe,0xf8,0xfc,0x6,0xfb,0xe,0xf9, +0x8d,0xf7,0xa4,0xf6,0x70,0xf6,0x85,0xf7,0x1b,0xfa,0xa4,0xfd, +0x9a,0x1,0x7c,0x5,0xb0,0x8,0xfd,0xa,0x3b,0xc,0xe6,0xb, +0xaf,0x9,0xc1,0x5,0xb4,0x0,0xaa,0xfb,0xad,0xf7,0x25,0xf5, +0x66,0xf4,0x95,0xf5,0x32,0xf8,0xbc,0xfb,0xd8,0xff,0xad,0x3, +0xa9,0x6,0xfa,0x8,0x41,0xa,0xc6,0x9,0xc,0x8,0xed,0x5, +0x4e,0x3,0x42,0x0,0x98,0xfd,0xd8,0xfb,0x35,0xfb,0xeb,0xfb, +0xcd,0xfd,0x6f,0x0,0x68,0x3,0x12,0x6,0xc5,0x7,0x14,0x8, +0xc4,0x6,0x17,0x4,0xc6,0x0,0x38,0xfd,0xb1,0xf9,0xe5,0xf6, +0x6e,0xf5,0x3f,0xf5,0x24,0xf6,0x18,0xf8,0xd0,0xfa,0x9a,0xfd, +0xe,0x0,0x36,0x2,0xc2,0x3,0x11,0x4,0x5d,0x3,0xa8,0x2, +0x4b,0x2,0xac,0x1,0x81,0x0,0x67,0xff,0xeb,0xfe,0xbf,0xfe, +0x91,0xfe,0xa9,0xfe,0xf6,0xfe,0xfa,0xfe,0xd4,0xfe,0xcb,0xfe, +0x73,0xfe,0x94,0xfd,0xb4,0xfc,0x4f,0xfc,0x71,0xfc,0x10,0xfd, +0x4c,0xfe,0x4c,0x0,0xc5,0x2,0x38,0x5,0x65,0x7,0xd1,0x8, +0xde,0x8,0xcf,0x7,0x2a,0x6,0xbd,0x3,0xa1,0x0,0xd4,0xfd, +0x25,0xfc,0xc2,0xfb,0x92,0xfc,0x40,0xfe,0x74,0x0,0xe0,0x2, +0xf4,0x4,0x17,0x6,0x7,0x6,0xb1,0x4,0x48,0x2,0x5a,0xff, +0x51,0xfc,0x7a,0xf9,0x9c,0xf7,0x61,0xf7,0x89,0xf8,0xb1,0xfa, +0xec,0xfd,0xb3,0x1,0xc9,0x4,0xb3,0x6,0xca,0x7,0xe8,0x7, +0x88,0x6,0xd6,0x3,0x83,0x0,0x17,0xfd,0xcc,0xf9,0xfd,0xf6, +0x51,0xf5,0x2e,0xf5,0x4b,0xf6,0x4b,0xf8,0xe,0xfb,0x1f,0xfe, +0xe7,0x0,0x4f,0x3,0x3c,0x5,0x3c,0x6,0x34,0x6,0x71,0x5, +0x1a,0x4,0x4b,0x2,0x4c,0x0,0x62,0xfe,0xd0,0xfc,0xc8,0xfb, +0x45,0xfb,0x72,0xfb,0x90,0xfc,0x5b,0xfe,0x6b,0x0,0xc3,0x2, +0x2f,0x5,0x29,0x7,0x78,0x8,0x10,0x9,0xca,0x8,0x88,0x7, +0x3a,0x5,0x2a,0x2,0xc,0xff,0x48,0xfc,0x0,0xfa,0xac,0xf8, +0x84,0xf8,0x4f,0xf9,0x2c,0xfb,0xef,0xfd,0xc4,0x0,0x6f,0x3, +0x4,0x6,0xe6,0x7,0xc7,0x8,0xdf,0x8,0x4,0x8,0x1b,0x6, +0x87,0x3,0xa4,0x0,0xf5,0xfd,0xed,0xfb,0x68,0xfa,0x82,0xf9, +0xb7,0xf9,0xc0,0xfa,0x17,0xfc,0xc1,0xfd,0x7a,0xff,0xb2,0x0, +0x3e,0x1,0x1b,0x1,0x72,0x0,0xc8,0xff,0x43,0xff,0xb8,0xfe, +0x60,0xfe,0x9a,0xfe,0x57,0xff,0x52,0x0,0x6c,0x1,0x84,0x2, +0x3c,0x3,0x46,0x3,0xbd,0x2,0xd1,0x1,0x9f,0x0,0x6d,0xff, +0x5f,0xfe,0x5e,0xfd,0x9a,0xfc,0x5d,0xfc,0x86,0xfc,0xaf,0xfc, +0x79,0xfc,0xe9,0xfb,0x73,0xfb,0x15,0xfb,0x55,0xfa,0x57,0xf9, +0x93,0xf8,0xe,0xf8,0xf6,0xf7,0xb4,0xf8,0x69,0xfa,0x3d,0xfd, +0x37,0x1,0xb8,0x5,0x9,0xa,0x98,0xd,0xb7,0xf,0x31,0x10, +0xf,0xf,0xc5,0xb,0x4,0x6,0xda,0xfe,0xef,0xf7,0x85,0xf2, +0x59,0xef,0xc2,0xee,0xd9,0xf0,0x66,0xf5,0x9a,0xfb,0x4e,0x2, +0x5f,0x8,0xdd,0xc,0x5f,0xf,0xfc,0xf,0xca,0xe,0xe8,0xb, +0xdd,0x7,0x71,0x3,0x63,0xff,0x4c,0xfc,0x6f,0xfa,0xae,0xf9, +0x1c,0xfa,0x12,0xfc,0x2a,0xff,0x12,0x2,0x1c,0x4,0x7f,0x5, +0xe5,0x5,0xa0,0x4,0xf7,0x1,0xb8,0xfe,0x50,0xfb,0x2a,0xf8, +0xe2,0xf5,0xc7,0xf4,0xa2,0xf4,0x59,0xf5,0x53,0xf7,0x74,0xfa, +0x6e,0xfd,0x63,0xff,0xf5,0x0,0x63,0x2,0xd0,0x2,0x37,0x2, +0xc4,0x1,0x1,0x2,0x7a,0x2,0xce,0x2,0x4,0x3,0x12,0x3, +0x9b,0x2,0x74,0x1,0xde,0xff,0xe2,0xfd,0x47,0xfb,0xa4,0xf8, +0x20,0xf7,0xe7,0xf6,0x70,0xf7,0xe6,0xf8,0xbd,0xfb,0x9f,0xff, +0xc9,0x3,0xba,0x7,0x19,0xb,0x86,0xd,0x8b,0xe,0xd5,0xd, +0x84,0xb,0xf1,0x7,0xb1,0x3,0xb0,0xff,0x70,0xfc,0xe6,0xf9, +0xae,0xf8,0xa6,0xf9,0x59,0xfc,0xb3,0xff,0x31,0x3,0x46,0x6, +0x3d,0x8,0xd2,0x8,0xe4,0x7,0x77,0x5,0x10,0x2,0x4b,0xfe, +0xb9,0xfa,0xf1,0xf7,0x1,0xf6,0xee,0xf4,0x6f,0xf5,0xc6,0xf7, +0xfe,0xfa,0x49,0xfe,0x67,0x1,0xfb,0x3,0xcd,0x5,0xe3,0x6, +0xe6,0x6,0x8e,0x5,0x51,0x3,0xdb,0x0,0x71,0xfe,0x8,0xfc, +0xa3,0xf9,0xb4,0xf7,0xf7,0xf6,0x5b,0xf7,0xd,0xf8,0xf2,0xf8, +0xa8,0xfa,0x8,0xfd,0x51,0xff,0x3a,0x1,0xb5,0x2,0x9d,0x3, +0x13,0x4,0x4d,0x4,0x43,0x4,0xfd,0x3,0x89,0x3,0xe8,0x2, +0x70,0x2,0x78,0x2,0xcc,0x2,0x2e,0x3,0xb2,0x3,0x4a,0x4, +0xb0,0x4,0xbc,0x4,0x4d,0x4,0x42,0x3,0xd8,0x1,0x78,0x0, +0x39,0xff,0x22,0xfe,0x8b,0xfd,0x95,0xfd,0x7,0xfe,0xd5,0xfe, +0x3,0x0,0x4f,0x1,0x88,0x2,0x8f,0x3,0x2c,0x4,0x82,0x4, +0xdc,0x4,0x7,0x5,0xbc,0x4,0xf7,0x3,0xc3,0x2,0x7b,0x1, +0x77,0x0,0x69,0xff,0x2e,0xfe,0x19,0xfd,0x18,0xfc,0x15,0xfb, +0x8f,0xfa,0xb4,0xfa,0x10,0xfb,0x79,0xfb,0x33,0xfc,0x4f,0xfd, +0x6b,0xfe,0x47,0xff,0x41,0x0,0x81,0x1,0x79,0x2,0x12,0x3, +0xc4,0x3,0x6b,0x4,0xb3,0x4,0xa5,0x4,0x7,0x4,0xaf,0x2, +0xfc,0x0,0x2b,0xff,0x49,0xfd,0x93,0xfb,0x37,0xfa,0x74,0xf9, +0x80,0xf9,0xdf,0xf9,0x14,0xfa,0x5b,0xfa,0x99,0xfa,0x34,0xfa, +0x29,0xf9,0xe1,0xf7,0x93,0xf6,0x80,0xf5,0xf7,0xf4,0x44,0xf5, +0xff,0xf6,0xa9,0xfa,0x7,0x0,0x6a,0x6,0x1f,0xd,0x38,0x13, +0xcb,0x17,0x60,0x1a,0x66,0x1a,0xd7,0x16,0x6f,0xf,0x81,0x5, +0xf2,0xfa,0x73,0xf1,0x66,0xea,0x70,0xe6,0xcb,0xe5,0xec,0xe8, +0x9f,0xef,0x6b,0xf8,0xbc,0x1,0x5e,0xa,0x35,0x11,0xa1,0x15, +0x5f,0x17,0x15,0x16,0x9,0x12,0x64,0xc,0x40,0x6,0x55,0x0, +0x33,0xfb,0x6d,0xf7,0xb5,0xf5,0x4e,0xf6,0x72,0xf8,0x53,0xfb, +0xd6,0xfe,0x8e,0x2,0x7f,0x5,0x15,0x7,0x22,0x7,0x6d,0x5, +0x2f,0x2,0x33,0xfe,0x11,0xfa,0x3,0xf6,0x72,0xf2,0xc,0xf0, +0x43,0xef,0xf3,0xef,0xc0,0xf1,0x9f,0xf4,0xae,0xf8,0x92,0xfd, +0x7d,0x2,0xdb,0x6,0x90,0xa,0x5e,0xd,0x8c,0xe,0xb6,0xd, +0x53,0xb,0xea,0x7,0x9c,0x3,0xe0,0xfe,0x83,0xfa,0xcf,0xf6, +0xda,0xf3,0x55,0xf2,0xea,0xf2,0x2f,0xf5,0x11,0xf8,0x2d,0xfb, +0xd9,0xfe,0xdd,0x2,0x5f,0x6,0x1d,0x9,0x24,0xb,0x9,0xc, +0xa5,0xb,0x75,0xa,0xa1,0x8,0xa,0x6,0xc,0x3,0x60,0x0, +0x95,0xfe,0xd0,0xfd,0xf3,0xfd,0x19,0xff,0x27,0x1,0x63,0x3, +0x44,0x5,0x90,0x6,0xc1,0x6,0x9f,0x5,0x84,0x3,0xa2,0x0, +0x4e,0xfd,0x4d,0xfa,0x5,0xf8,0x85,0xf6,0xf8,0xf5,0x7e,0xf6, +0x2f,0xf8,0xe5,0xfa,0xf5,0xfd,0xe8,0x0,0xa0,0x3,0x89,0x5, +0x4f,0x6,0x6e,0x6,0xff,0x5,0x9c,0x4,0x98,0x2,0xa8,0x0, +0xf9,0xfe,0x48,0xfd,0x84,0xfb,0x1b,0xfa,0x5f,0xf9,0xe6,0xf8, +0x80,0xf8,0xa2,0xf8,0x4c,0xf9,0xf,0xfa,0x1f,0xfb,0xe1,0xfc, +0xa,0xff,0x21,0x1,0x1b,0x3,0x1d,0x5,0x9,0x7,0x55,0x8, +0x87,0x8,0xb3,0x7,0x52,0x6,0xc7,0x4,0x31,0x3,0x9d,0x1, +0x47,0x0,0x9b,0xff,0xd9,0xff,0xb6,0x0,0x94,0x1,0x38,0x2, +0xc4,0x2,0x1e,0x3,0xd,0x3,0x90,0x2,0xb3,0x1,0x9d,0x0, +0xac,0xff,0x14,0xff,0xbd,0xfe,0xb0,0xfe,0xd,0xff,0xde,0xff, +0x1d,0x1,0x9d,0x2,0x21,0x4,0x89,0x5,0x95,0x6,0xee,0x6, +0x95,0x6,0xac,0x5,0x18,0x4,0xce,0x1,0x33,0xff,0xbb,0xfc, +0x8b,0xfa,0xb5,0xf8,0x93,0xf7,0x70,0xf7,0x2d,0xf8,0x87,0xf9, +0x64,0xfb,0xac,0xfd,0xfd,0xff,0xbe,0x1,0xbe,0x2,0x7e,0x3, +0x3f,0x4,0x7a,0x4,0xf5,0x3,0x38,0x3,0x7f,0x2,0x9f,0x1, +0xd5,0x0,0x62,0x0,0xf7,0xff,0x4d,0xff,0xa5,0xfe,0x3c,0xfe, +0xcc,0xfd,0xe1,0xfc,0x84,0xfb,0x3,0xfa,0x43,0xf8,0x10,0xf6, +0xc6,0xf3,0xc9,0xf1,0x26,0xf0,0x42,0xef,0xbd,0xef,0x83,0xf1, +0x47,0xf4,0x6c,0xf8,0x53,0xfe,0x72,0x5,0xce,0xc,0x9f,0x13, +0x3b,0x19,0xd6,0x1c,0xb7,0x1d,0x7f,0x1b,0x15,0x16,0x96,0xd, +0xd5,0x2,0x99,0xf7,0xde,0xed,0x4,0xe7,0xc3,0xe3,0x85,0xe4, +0x4c,0xe9,0x46,0xf1,0xd1,0xfa,0x46,0x4,0x86,0xc,0xaa,0x12, +0xf1,0x15,0x2f,0x16,0xc2,0x13,0x2b,0xf,0x43,0x9,0x59,0x3, +0x55,0xfe,0x4a,0xfa,0x63,0xf7,0x53,0xf6,0x6a,0xf7,0xe,0xfa, +0x6a,0xfd,0x9,0x1,0xa2,0x4,0x9d,0x7,0x24,0x9,0xee,0x8, +0x2e,0x7,0xe0,0x3,0x28,0xff,0xe4,0xf9,0xe3,0xf4,0x6e,0xf0, +0xf1,0xec,0xfd,0xea,0xe5,0xea,0xb7,0xec,0x38,0xf0,0xf,0xf5, +0xec,0xfa,0xd,0x1,0x6a,0x6,0xc4,0xa,0x32,0xe,0x2a,0x10, +0x44,0x10,0xc7,0xe,0xda,0xb,0x83,0x7,0x79,0x2,0xb0,0xfd, +0x81,0xf9,0xf2,0xf5,0x6c,0xf3,0x9c,0xf2,0xa8,0xf3,0x1,0xf6, +0x1a,0xf9,0x98,0xfc,0x5,0x0,0x14,0x3,0xb9,0x5,0xbf,0x7, +0xd5,0x8,0xec,0x8,0x3a,0x8,0xff,0x6,0x65,0x5,0xab,0x3, +0x34,0x2,0x2f,0x1,0x8f,0x0,0xa1,0x0,0xa0,0x1,0x1c,0x3, +0x9d,0x4,0xf3,0x5,0xb3,0x6,0x89,0x6,0x8c,0x5,0xcf,0x3, +0x6a,0x1,0xa9,0xfe,0xc2,0xfb,0xf8,0xf8,0xc8,0xf6,0x78,0xf5, +0x1b,0xf5,0xe8,0xf5,0xeb,0xf7,0xc3,0xfa,0xee,0xfd,0x6,0x1, +0xd5,0x3,0x1d,0x6,0x88,0x7,0xff,0x7,0x9e,0x7,0x73,0x6, +0xa7,0x4,0x89,0x2,0x43,0x0,0xeb,0xfd,0x9d,0xfb,0x7d,0xf9, +0xd7,0xf7,0xd8,0xf6,0x63,0xf6,0x85,0xf6,0x80,0xf7,0x54,0xf9, +0xd4,0xfb,0xba,0xfe,0x77,0x1,0xc1,0x3,0xc6,0x5,0x4a,0x7, +0xb0,0x7,0xf5,0x6,0x76,0x5,0x64,0x3,0x4b,0x1,0xe3,0xff, +0x39,0xff,0x17,0xff,0xb3,0xff,0x36,0x1,0x4d,0x3,0x46,0x5, +0x68,0x6,0xac,0x6,0x75,0x6,0x73,0x5,0x65,0x3,0x2a,0x1, +0x6b,0xff,0xe4,0xfd,0xc3,0xfc,0xa0,0xfc,0x4b,0xfd,0x2b,0xfe, +0x25,0xff,0x6e,0x0,0x9,0x2,0x9e,0x3,0xe4,0x4,0xf0,0x5, +0xc4,0x6,0x17,0x7,0xc8,0x6,0xf9,0x5,0x9a,0x4,0x8a,0x2, +0x20,0x0,0xe2,0xfd,0xba,0xfb,0x7f,0xf9,0xdf,0xf7,0x47,0xf7, +0x3d,0xf7,0xa5,0xf7,0xc5,0xf8,0x6b,0xfa,0x82,0xfc,0x29,0xff, +0xfe,0x1,0xa9,0x4,0xf8,0x6,0x46,0x8,0x3d,0x8,0xe,0x7, +0xbf,0x4,0xad,0x1,0xa9,0xfe,0xa,0xfc,0x0,0xfa,0xcf,0xf8, +0x40,0xf8,0x35,0xf8,0xd1,0xf8,0xa0,0xf9,0xb,0xfa,0xc,0xfa, +0x99,0xf9,0x86,0xf8,0x3,0xf7,0x6d,0xf5,0x21,0xf4,0x6b,0xf3, +0xac,0xf3,0x71,0xf5,0xd0,0xf8,0x6e,0xfd,0x57,0x3,0x54,0xa, +0x9,0x11,0x27,0x16,0x4e,0x19,0x25,0x1a,0xe2,0x17,0x1c,0x12, +0x9f,0x9,0x1d,0x0,0x19,0xf7,0xcb,0xef,0x91,0xeb,0x5,0xeb, +0x77,0xed,0x37,0xf2,0xf3,0xf8,0xa4,0x0,0x96,0x7,0x9c,0xc, +0x77,0xf,0x37,0x10,0xc9,0xe,0x71,0xb,0x28,0x7,0xea,0x2, +0x3e,0xff,0x53,0xfc,0x4d,0xfa,0x9b,0xf9,0xab,0xfa,0xa,0xfd, +0xbd,0xff,0x79,0x2,0x29,0x5,0x2,0x7,0x45,0x7,0x15,0x6, +0xc6,0x3,0x56,0x0,0x1d,0xfc,0x1d,0xf8,0xfd,0xf4,0x6b,0xf2, +0x3f,0xf0,0x65,0xef,0x74,0xf0,0x82,0xf2,0x91,0xf4,0xf1,0xf6, +0xfa,0xf9,0x1,0xfd,0xb2,0xff,0xc1,0x2,0x54,0x6,0x5e,0x9, +0x14,0xb,0xbd,0xb,0x9b,0xb,0x3b,0xa,0x4a,0x7,0x76,0x3, +0xb8,0xff,0x28,0xfc,0xc3,0xf8,0x8b,0xf6,0x3c,0xf6,0xe,0xf7, +0x57,0xf8,0x83,0xfa,0x73,0xfd,0x3c,0x0,0x91,0x2,0xb9,0x4, +0xb3,0x6,0x1e,0x8,0xaa,0x8,0x9b,0x8,0x57,0x8,0xa3,0x7, +0x74,0x6,0x61,0x5,0x63,0x4,0x30,0x3,0x65,0x2,0x4e,0x2, +0x50,0x2,0x24,0x2,0xea,0x1,0xaa,0x1,0x7c,0x1,0x11,0x1, +0xe0,0xff,0x23,0xfe,0x6d,0xfc,0xf3,0xfa,0xd5,0xf9,0x2e,0xf9, +0x23,0xf9,0x17,0xfa,0x12,0xfc,0x80,0xfe,0xcf,0x0,0xa2,0x2, +0xc7,0x3,0x20,0x4,0x98,0x3,0x68,0x2,0xd2,0x0,0xd6,0xfe, +0xdc,0xfc,0x90,0xfb,0xf2,0xfa,0xc7,0xfa,0x2e,0xfb,0x21,0xfc, +0x58,0xfd,0x62,0xfe,0xe6,0xfe,0x2e,0xff,0x85,0xff,0x94,0xff, +0x68,0xff,0x81,0xff,0xb7,0xff,0xda,0xff,0x42,0x0,0x3,0x1, +0xdf,0x1,0xb9,0x2,0x68,0x3,0xb9,0x3,0xbc,0x3,0xc6,0x3, +0x1,0x4,0x22,0x4,0x1b,0x4,0x42,0x4,0x4e,0x4,0xed,0x3, +0x9a,0x3,0x88,0x3,0x65,0x3,0x36,0x3,0xed,0x2,0x65,0x2, +0xd8,0x1,0x33,0x1,0x60,0x0,0xdb,0xff,0x9c,0xff,0x3d,0xff, +0x30,0xff,0xcb,0xff,0xb8,0x0,0xd9,0x1,0x27,0x3,0x6f,0x4, +0x93,0x5,0x3f,0x6,0x2d,0x6,0x95,0x5,0x8c,0x4,0xe3,0x2, +0xa5,0x0,0x10,0xfe,0x7b,0xfb,0xf,0xf9,0xe6,0xf6,0x97,0xf5, +0x80,0xf5,0x43,0xf6,0xea,0xf7,0xad,0xfa,0xe8,0xfd,0x13,0x1, +0xf4,0x3,0xeb,0x5,0xd0,0x6,0xce,0x6,0x77,0x5,0x6,0x3, +0x92,0x0,0x4d,0xfe,0x10,0xfc,0x83,0xfa,0x20,0xfa,0xb3,0xfa, +0xd8,0xfb,0x10,0xfd,0xe1,0xfd,0x9,0xfe,0x57,0xfd,0xa8,0xfb, +0x1,0xf9,0xb0,0xf5,0x5a,0xf2,0xb9,0xef,0x72,0xee,0xea,0xee, +0x47,0xf1,0x4,0xf6,0x57,0xfd,0x18,0x6,0xca,0xe,0x91,0x16, +0x6f,0x1c,0x9e,0x1f,0xd0,0x1f,0x22,0x1c,0x3c,0x14,0xb9,0x9, +0xa2,0xfe,0x79,0xf4,0xa1,0xec,0xcf,0xe7,0x80,0xe6,0x51,0xe9, +0x6f,0xef,0x11,0xf7,0x37,0xff,0xc9,0x6,0x5e,0xc,0xc3,0xf, +0x3c,0x11,0x79,0x10,0x88,0xd,0x48,0x9,0xd3,0x4,0xd5,0x0, +0x2c,0xfd,0x28,0xfa,0x7,0xf9,0xe3,0xf9,0x73,0xfb,0x3e,0xfd, +0x9a,0xff,0x3b,0x2,0x2b,0x4,0x8e,0x4,0x69,0x3,0x57,0x1, +0x85,0xfe,0x30,0xfb,0x49,0xf8,0x2a,0xf6,0x49,0xf4,0xc9,0xf2, +0x92,0xf2,0xd4,0xf3,0x71,0xf5,0x8d,0xf6,0xc,0xf8,0xdb,0xfa, +0xe5,0xfd,0x4b,0x0,0x2d,0x3,0x3,0x7,0x55,0xa,0x20,0xc, +0xaf,0xc,0x3f,0xc,0x7a,0xa,0x47,0x7,0x5d,0x3,0x68,0xff, +0x5a,0xfb,0x96,0xf7,0x4e,0xf5,0xc2,0xf4,0x16,0xf5,0xc,0xf6, +0x31,0xf8,0x9b,0xfb,0x92,0xff,0x4f,0x3,0xa6,0x6,0xb2,0x9, +0x4b,0xc,0x5,0xe,0x54,0xe,0x37,0xd,0x51,0xb,0xd9,0x8, +0xaa,0x5,0x4d,0x2,0x79,0xff,0x6a,0xfd,0x5d,0xfc,0x5e,0xfc, +0x2c,0xfd,0xb1,0xfe,0x7f,0x0,0xfa,0x1,0x1f,0x3,0xa2,0x3, +0xcb,0x2,0x4,0x1,0x2e,0xff,0x41,0xfd,0x21,0xfb,0x4e,0xf9, +0x4f,0xf8,0x43,0xf8,0xd1,0xf8,0xb2,0xf9,0xf8,0xfa,0x70,0xfc, +0xfb,0xfd,0xe2,0xff,0xbf,0x1,0xfe,0x2,0x3,0x4,0xb,0x5, +0x93,0x5,0x5f,0x5,0x66,0x4,0xa8,0x2,0x6c,0x0,0xe1,0xfd, +0x50,0xfb,0x43,0xf9,0xc6,0xf7,0xe4,0xf6,0x1d,0xf7,0x50,0xf8, +0xf9,0xf9,0x43,0xfc,0x41,0xff,0x6e,0x2,0x58,0x5,0xd4,0x7, +0xb4,0x9,0x9d,0xa,0x62,0xa,0x71,0x9,0x17,0x8,0xf,0x6, +0x90,0x3,0x58,0x1,0xd7,0xff,0x42,0xff,0x7d,0xff,0x50,0x0, +0xdd,0x1,0xbd,0x3,0x2,0x5,0xaa,0x5,0xdf,0x5,0xe6,0x4, +0xc6,0x2,0x85,0x0,0x7c,0xfe,0x8b,0xfc,0xfc,0xfa,0x43,0xfa, +0xa7,0xfa,0x2d,0xfc,0x93,0xfe,0x84,0x1,0x75,0x4,0xd1,0x6, +0x52,0x8,0xcc,0x8,0x2a,0x8,0x8f,0x6,0x2d,0x4,0x5d,0x1, +0x91,0xfe,0x1c,0xfc,0x75,0xfa,0xa8,0xf9,0x26,0xf9,0x8,0xf9, +0xc9,0xf9,0xe5,0xfa,0xdd,0xfb,0xf3,0xfc,0x9,0xfe,0xdf,0xfe, +0xa2,0xff,0x52,0x0,0xec,0x0,0x8f,0x1,0x13,0x2,0x88,0x2, +0x21,0x3,0x7f,0x3,0x71,0x3,0x5f,0x3,0x36,0x3,0x77,0x2, +0xf1,0x0,0xb9,0xfe,0xef,0xfb,0x9e,0xf8,0xcf,0xf4,0xf3,0xf0, +0xa4,0xed,0x6a,0xeb,0xe8,0xea,0x72,0xec,0xfa,0xef,0xb0,0xf5, +0x84,0xfd,0x74,0x6,0x2e,0xf,0x96,0x16,0xb1,0x1b,0xe2,0x1d, +0xe1,0x1c,0x62,0x18,0x59,0x10,0xd3,0x5,0x16,0xfb,0x4b,0xf2, +0x4d,0xec,0x55,0xe9,0xe3,0xe9,0x1e,0xee,0x10,0xf5,0x2,0xfd, +0x77,0x4,0x96,0xa,0xcd,0xe,0xda,0x10,0xea,0x10,0xfb,0xe, +0x26,0xb,0x6b,0x6,0x0,0x2,0x5b,0xfe,0x71,0xfb,0x21,0xf9, +0xc6,0xf7,0x2a,0xf8,0x24,0xfa,0xb1,0xfc,0x96,0xff,0xe3,0x2, +0xd1,0x5,0x86,0x7,0xc1,0x7,0x8e,0x6,0x34,0x4,0xf,0x1, +0x78,0xfd,0xd7,0xf9,0x55,0xf6,0x48,0xf3,0xc3,0xf1,0x34,0xf2, +0x8f,0xf3,0xc,0xf5,0x20,0xf7,0x9,0xfa,0x12,0xfd,0xb2,0xff, +0x1d,0x2,0x7c,0x4,0x76,0x6,0xb8,0x7,0x39,0x8,0xdb,0x7, +0x67,0x6,0xa,0x4,0x5c,0x1,0xb7,0xfe,0xfe,0xfb,0x6b,0xf9, +0xc6,0xf7,0x58,0xf7,0xb6,0xf7,0xbb,0xf8,0x9e,0xfa,0x49,0xfd, +0x6e,0x0,0xdb,0x3,0x31,0x7,0xcb,0x9,0x5f,0xb,0x24,0xc, +0xf0,0xb,0x52,0xa,0xc4,0x7,0x9,0x5,0xe,0x2,0x3,0xff, +0xe9,0xfc,0x38,0xfc,0xa0,0xfc,0xdd,0xfd,0xdb,0xff,0x90,0x2, +0x6e,0x5,0x59,0x7,0xf8,0x7,0xaf,0x7,0x3c,0x6,0x62,0x3, +0xf4,0xff,0x8a,0xfc,0x21,0xf9,0x60,0xf6,0x1c,0xf5,0x44,0xf5, +0x80,0xf6,0xae,0xf8,0x7e,0xfb,0x9e,0xfe,0xcb,0x1,0x87,0x4, +0x85,0x6,0xba,0x7,0xba,0x7,0x38,0x6,0xae,0x3,0x66,0x0, +0x65,0xfc,0x98,0xf8,0xf8,0xf5,0x42,0xf4,0x6f,0xf3,0x5e,0xf4, +0xb,0xf7,0x6b,0xfa,0x3,0xfe,0xdf,0x1,0xa8,0x5,0xa7,0x8, +0x47,0xa,0x90,0xa,0xe3,0x9,0x5d,0x8,0x2,0x6,0x3f,0x3, +0x7b,0x0,0xdd,0xfd,0xe3,0xfb,0x2e,0xfb,0xa1,0xfb,0xb3,0xfc, +0x4d,0xfe,0x6b,0x0,0x9c,0x2,0x95,0x4,0x42,0x6,0x5a,0x7, +0xc5,0x7,0xa4,0x7,0xd4,0x6,0x59,0x5,0xab,0x3,0x13,0x2, +0x9c,0x0,0x53,0xff,0x29,0xfe,0x51,0xfd,0x4a,0xfd,0x36,0xfe, +0xe1,0xff,0x16,0x2,0x61,0x4,0x36,0x6,0x52,0x7,0x7e,0x7, +0x89,0x6,0x90,0x4,0xf1,0x1,0xeb,0xfe,0xa6,0xfb,0xa0,0xf8, +0xa9,0xf6,0x12,0xf6,0x66,0xf6,0x47,0xf7,0xdd,0xf8,0x3c,0xfb, +0x8,0xfe,0xd0,0x0,0x46,0x3,0x11,0x5,0xdc,0x5,0xc1,0x5, +0xe,0x5,0xcf,0x3,0x1d,0x2,0x55,0x0,0xb3,0xfe,0x5e,0xfd, +0x8a,0xfc,0x3c,0xfc,0x66,0xfc,0xf4,0xfc,0x76,0xfd,0x73,0xfd, +0xf1,0xfc,0x21,0xfc,0xdf,0xfa,0xea,0xf8,0x6c,0xf6,0xee,0xf3, +0xe4,0xf1,0xb2,0xf0,0xe8,0xf0,0xe8,0xf2,0xcc,0xf6,0x98,0xfc, +0xd8,0x3,0x64,0xb,0x1f,0x12,0x6d,0x17,0xdd,0x1a,0xa3,0x1b, +0xbe,0x18,0x47,0x12,0xd8,0x9,0xa,0x1,0xe4,0xf8,0x81,0xf2, +0x9f,0xee,0x56,0xed,0xbe,0xee,0x6e,0xf2,0x1f,0xf7,0xe3,0xfb, +0x68,0x0,0x52,0x4,0x72,0x7,0xb1,0x9,0xae,0xa,0x73,0xa, +0xb1,0x9,0xbb,0x8,0x59,0x7,0x6a,0x5,0x20,0x3,0x1d,0x1, +0xe1,0xff,0x1,0xff,0x19,0xfe,0xab,0xfd,0xce,0xfd,0xbb,0xfd, +0x33,0xfd,0x9c,0xfc,0x12,0xfc,0x94,0xfb,0x45,0xfb,0x14,0xfb, +0xac,0xfa,0xb3,0xf9,0x7d,0xf8,0xfe,0xf7,0x9,0xf8,0x7e,0xf7, +0xe7,0xf6,0xcf,0xf7,0xd2,0xf9,0xba,0xfb,0xec,0xfd,0x2d,0x1, +0xf5,0x4,0x62,0x8,0x27,0xb,0x15,0xd,0x85,0xd,0xce,0xb, +0x66,0x8,0x6f,0x4,0xe9,0xff,0x5d,0xfa,0x3,0xf5,0xab,0xf1, +0x55,0xf0,0x5d,0xf0,0x37,0xf2,0x2b,0xf6,0x62,0xfb,0xe4,0x0, +0x9,0x6,0x69,0xa,0xc7,0xd,0x6f,0xf,0xd9,0xe,0xc1,0xc, +0xf9,0x9,0xb0,0x6,0x96,0x3,0x6d,0x1,0x27,0x0,0xe0,0xff, +0xd2,0x0,0x58,0x2,0xc0,0x3,0xe1,0x4,0x66,0x5,0xed,0x4, +0x85,0x3,0x65,0x1,0x9b,0xfe,0x47,0xfb,0x22,0xf8,0xf6,0xf5, +0xa6,0xf4,0xff,0xf3,0x90,0xf4,0xa3,0xf6,0xd0,0xf9,0x9b,0xfd, +0x60,0x1,0x91,0x4,0x7,0x7,0x83,0x8,0xf5,0x8,0x97,0x8, +0x2c,0x7,0xc9,0x4,0x33,0x2,0x6e,0xff,0x34,0xfc,0x57,0xf9, +0x73,0xf7,0x35,0xf6,0x88,0xf5,0xa2,0xf5,0x85,0xf6,0x24,0xf8, +0x45,0xfa,0xa2,0xfc,0x1b,0xff,0x7f,0x1,0xaa,0x3,0xa2,0x5, +0x50,0x7,0x71,0x8,0xae,0x8,0xf9,0x7,0xbb,0x6,0x28,0x5, +0x3c,0x3,0x6f,0x1,0x3f,0x0,0xe4,0xff,0x9d,0x0,0x1,0x2, +0x5d,0x3,0xc9,0x4,0x2b,0x6,0xb4,0x6,0x32,0x6,0xcc,0x4, +0x7f,0x2,0xc5,0xff,0x1f,0xfd,0xb7,0xfa,0xf1,0xf8,0xf0,0xf7, +0xb0,0xf7,0x9c,0xf8,0x96,0xfa,0x9,0xfd,0x1b,0x0,0xb5,0x3, +0x11,0x7,0xfe,0x9,0x74,0xc,0xb7,0xd,0x53,0xd,0x87,0xb, +0xa1,0x8,0xb0,0x4,0xe4,0xff,0x1a,0xfb,0x40,0xf7,0x65,0xf4, +0x92,0xf2,0x52,0xf2,0xb1,0xf3,0x19,0xf6,0xff,0xf8,0xd,0xfc, +0x10,0xff,0x98,0x1,0x2d,0x3,0xe,0x4,0x76,0x4,0x28,0x4, +0x87,0x3,0x13,0x3,0x7a,0x2,0xc1,0x1,0x54,0x1,0x2a,0x1, +0x51,0x1,0xba,0x1,0xc8,0x1,0x81,0x1,0x51,0x1,0xd7,0x0, +0xc2,0xff,0x3d,0xfe,0x26,0xfc,0x7f,0xf9,0xa8,0xf6,0xd8,0xf3, +0x5c,0xf1,0x9b,0xef,0xbc,0xee,0x19,0xef,0x27,0xf1,0xe3,0xf4, +0x2c,0xfa,0xe2,0x0,0x6f,0x8,0xbd,0xf,0x8d,0x15,0xb,0x19, +0x16,0x1a,0x6d,0x18,0x6c,0x13,0x4b,0xb,0xa3,0x1,0x6b,0xf8, +0xff,0xf0,0x2f,0xec,0x77,0xea,0xc7,0xeb,0xa6,0xef,0x94,0xf5, +0xb6,0xfc,0xb6,0x3,0x72,0x9,0x5a,0xd,0x3d,0xf,0x23,0xf, +0xf8,0xc,0xeb,0x8,0x21,0x4,0xd7,0xff,0x51,0xfc,0x9c,0xf9, +0xf,0xf8,0xfc,0xf7,0x84,0xf9,0x47,0xfc,0x73,0xff,0xaa,0x2, +0xb5,0x5,0xd8,0x7,0xad,0x8,0x4a,0x8,0x61,0x6,0xec,0x2, +0xe9,0xfe,0x3a,0xfb,0xde,0xf7,0xae,0xf4,0x11,0xf2,0xdc,0xf0, +0x33,0xf1,0x23,0xf2,0x45,0xf3,0x72,0xf5,0xd6,0xf8,0x6d,0xfc, +0xd7,0xff,0x94,0x3,0x5e,0x7,0x1f,0xa,0x76,0xb,0xee,0xb, +0x73,0xb,0x35,0x9,0x9e,0x5,0x37,0x2,0x2f,0xff,0xc5,0xfb, +0xaa,0xf8,0x12,0xf7,0xb8,0xf6,0xcc,0xf6,0x58,0xf7,0xc3,0xf8, +0x18,0xfb,0xeb,0xfd,0xe9,0x0,0xb,0x4,0xda,0x6,0xbb,0x8, +0xca,0x9,0x8,0xa,0xf5,0x8,0xea,0x6,0xb8,0x4,0x55,0x2, +0xdf,0xff,0x4d,0xfe,0xf4,0xfd,0x47,0xfe,0xd,0xff,0x8d,0x0, +0xbc,0x2,0xec,0x4,0x62,0x6,0x2,0x7,0xd8,0x6,0x6b,0x5, +0x96,0x2,0x1d,0xff,0x80,0xfb,0xa6,0xf7,0x2f,0xf4,0x44,0xf2, +0xf,0xf2,0x16,0xf3,0x58,0xf5,0xe3,0xf8,0x58,0xfd,0x35,0x2, +0xcb,0x6,0x4c,0xa,0x1d,0xc,0xb,0xc,0x67,0xa,0x93,0x7, +0x9c,0x3,0x1e,0xff,0x62,0xfb,0xb5,0xf8,0xa2,0xf6,0x96,0xf5, +0xf,0xf6,0x77,0xf7,0x3e,0xf9,0x6f,0xfb,0xde,0xfd,0x28,0x0, +0xc,0x2,0x7a,0x3,0x8d,0x4,0x47,0x5,0x80,0x5,0x3e,0x5, +0x9c,0x4,0x84,0x3,0x13,0x2,0xc1,0x0,0xc6,0xff,0xf6,0xfe, +0x66,0xfe,0x82,0xfe,0x81,0xff,0x56,0x1,0xaf,0x3,0xea,0x5, +0x96,0x7,0x9f,0x8,0xd3,0x8,0x14,0x8,0x68,0x6,0x86,0x3, +0x9a,0xff,0xc2,0xfb,0x8f,0xf8,0xe6,0xf5,0x6a,0xf4,0xdc,0xf4, +0x10,0xf7,0x9b,0xfa,0x7,0xff,0x89,0x3,0x70,0x7,0x2f,0xa, +0x56,0xb,0xf4,0xa,0x35,0x9,0x29,0x6,0x49,0x2,0x41,0xfe, +0x9f,0xfa,0x10,0xf8,0x12,0xf7,0x85,0xf7,0xf0,0xf8,0xd1,0xfa, +0xc7,0xfc,0xa2,0xfe,0x1e,0x0,0xf7,0x0,0x3d,0x1,0x3a,0x1, +0x15,0x1,0xd6,0x0,0x9a,0x0,0x75,0x0,0x4d,0x0,0x3e,0x0, +0xae,0x0,0x87,0x1,0x26,0x2,0x71,0x2,0xd0,0x2,0x4a,0x3, +0x93,0x3,0x73,0x3,0xd5,0x2,0xde,0x1,0xd2,0x0,0xd2,0xff, +0xe5,0xfe,0xe9,0xfd,0xc1,0xfc,0xd3,0xfb,0x91,0xfb,0xc3,0xfb, +0xb,0xfc,0x82,0xfc,0x17,0xfd,0x68,0xfd,0x87,0xfd,0xac,0xfd, +0x64,0xfd,0x58,0xfc,0x2f,0xfb,0xdc,0xfa,0xb2,0xfb,0x7f,0xfd, +0x4,0x0,0x34,0x3,0xaa,0x6,0x80,0x9,0x4d,0xb,0xe3,0xb, +0x16,0xa,0x31,0x5,0xb0,0xfe,0x90,0xf8,0xb0,0xf3,0x8e,0xf0, +0xc9,0xef,0xb7,0xf1,0x6,0xf6,0xc4,0xfb,0xe9,0x1,0x81,0x7, +0x77,0xb,0x42,0xd,0x34,0xd,0xbe,0xb,0x24,0x9,0xa3,0x5, +0xe4,0x1,0x2a,0xff,0xf3,0xfd,0x83,0xfd,0xb7,0xfd,0xf3,0xfe, +0xb3,0x0,0x4e,0x2,0x80,0x3,0x13,0x4,0x3e,0x4,0xbc,0x3, +0xa7,0x1,0xbb,0xfe,0x4f,0xfc,0xe0,0xf9,0x5a,0xf7,0x25,0xf6, +0x4b,0xf6,0xf0,0xf6,0x7d,0xf8,0x69,0xfb,0x9,0xff,0x10,0x2, +0xb3,0x3,0xcd,0x4,0x24,0x6,0x6f,0x6,0xf0,0x4,0x45,0x3, +0x58,0x2,0x4c,0x1,0xc8,0xff,0x43,0xfe,0xcd,0xfc,0x2e,0xfb, +0xbc,0xf9,0x1f,0xf9,0x35,0xf9,0x55,0xf9,0xea,0xf9,0xe9,0xfb, +0xdc,0xfe,0x72,0x1,0x3b,0x3,0x87,0x4,0x72,0x5,0xe5,0x5, +0xe9,0x5,0x56,0x5,0xe1,0x3,0xa,0x2,0xca,0x0,0x6,0x0, +0x24,0xff,0x84,0xfe,0xbe,0xfe,0x88,0xff,0x82,0x0,0xd3,0x1, +0x9c,0x3,0x65,0x5,0x74,0x6,0xc8,0x6,0xc4,0x6,0xd,0x6, +0x2c,0x4,0x9a,0x1,0xdf,0xfe,0xf,0xfc,0x9b,0xf9,0x1d,0xf8, +0x96,0xf7,0xc6,0xf7,0xcc,0xf8,0x17,0xfb,0x8e,0xfe,0x20,0x2, +0xc3,0x4,0x67,0x6,0x3a,0x7,0xf4,0x6,0xc0,0x5,0x50,0x4, +0x83,0x2,0xe6,0xff,0x4d,0xfd,0xdd,0xfb,0x42,0xfb,0xb8,0xfa, +0x81,0xfa,0xe,0xfb,0x10,0xfc,0x8,0xfd,0xe4,0xfd,0xba,0xfe, +0x58,0xff,0x80,0xff,0x66,0xff,0x67,0xff,0x90,0xff,0xc6,0xff, +0x5,0x0,0x6a,0x0,0x23,0x1,0xf6,0x1,0x75,0x2,0xb6,0x2, +0xfe,0x2,0x3c,0x3,0x6d,0x3,0x83,0x3,0x41,0x3,0xae,0x2, +0xfd,0x1,0x47,0x1,0xd9,0x0,0xa7,0x0,0x24,0x0,0x61,0xff, +0xe9,0xfe,0xb8,0xfe,0xb6,0xfe,0xf8,0xfe,0x54,0xff,0xe7,0xff, +0xfe,0x0,0x3f,0x2,0x32,0x3,0xbc,0x3,0xb7,0x3,0x4c,0x3, +0xdd,0x2,0x2d,0x2,0xf4,0x0,0x8d,0xff,0x61,0xfe,0xaf,0xfd, +0x88,0xfd,0x90,0xfd,0x9d,0xfd,0xfa,0xfd,0x96,0xfe,0x29,0xff, +0xbf,0xff,0x42,0x0,0x69,0x0,0x3e,0x0,0xe9,0xff,0x71,0xff, +0xc3,0xfe,0xc6,0xfd,0xae,0xfc,0xde,0xfb,0x7a,0xfb,0x9e,0xfb, +0x69,0xfc,0xa7,0xfd,0x13,0xff,0xa4,0x0,0x3c,0x2,0x98,0x3, +0x4f,0x4,0x2b,0x4,0xa8,0x3,0x42,0x3,0xe5,0x2,0x93,0x2, +0x50,0x2,0xb6,0x1,0xef,0x0,0x85,0x0,0x2f,0x0,0x8a,0xff, +0xd9,0xfe,0x64,0xfe,0x62,0xfe,0xcd,0xfe,0x2a,0xff,0xa2,0xff, +0xa5,0x0,0x89,0x1,0xdd,0x1,0x41,0x2,0x92,0x2,0x1d,0x2, +0x2e,0x1,0x13,0x0,0x7d,0xfe,0x8f,0xfc,0xaa,0xfa,0xe6,0xf8, +0x73,0xf7,0xb4,0xf6,0x35,0xf7,0x79,0xf9,0x35,0xfd,0x72,0x1, +0x92,0x5,0x66,0x9,0xa4,0xc,0x6b,0xe,0x74,0xd,0x68,0x9, +0x6f,0x3,0xd,0xfd,0x4c,0xf7,0xc5,0xf2,0xf1,0xef,0x90,0xef, +0x3,0xf2,0x68,0xf6,0x8e,0xfb,0xd0,0x0,0x73,0x5,0xeb,0x8, +0x5e,0xb,0xa5,0xc,0x32,0xc,0x28,0xa,0x4c,0x7,0x40,0x4, +0x38,0x1,0x28,0xfe,0x82,0xfb,0x36,0xfa,0x82,0xfa,0xbd,0xfb, +0x4b,0xfd,0xf6,0xfe,0xbd,0x0,0x53,0x2,0x12,0x3,0xec,0x2, +0x76,0x2,0xc1,0x1,0x8d,0x0,0x19,0xff,0xbb,0xfd,0x98,0xfc, +0xef,0xfb,0x3,0xfc,0xe1,0xfc,0x15,0xfe,0xe3,0xfe,0x73,0xff, +0x96,0x0,0xc,0x2,0xf6,0x2,0x83,0x3,0x66,0x4,0x50,0x5, +0x33,0x5,0xb3,0x3,0x97,0x1,0x6c,0xff,0xd7,0xfc,0xe9,0xf9, +0x96,0xf7,0x4b,0xf6,0xbd,0xf5,0x20,0xf6,0x1c,0xf8,0x5d,0xfb, +0x77,0xfe,0xdb,0x0,0x53,0x3,0xd7,0x5,0x63,0x7,0xf0,0x7, +0xf6,0x7,0x40,0x7,0xd5,0x5,0x1a,0x4,0xf5,0x1,0x7d,0xff, +0x43,0xfd,0x92,0xfb,0xa1,0xfa,0x9d,0xfa,0x67,0xfb,0xe9,0xfc, +0xf5,0xfe,0xf2,0x0,0x95,0x2,0xfe,0x3,0xfe,0x4,0x5b,0x5, +0x38,0x5,0xb3,0x4,0xae,0x3,0x1f,0x2,0x3c,0x0,0x5b,0xfe, +0xc5,0xfc,0xe1,0xfb,0xd,0xfc,0x24,0xfd,0xc0,0xfe,0x9a,0x0, +0x5b,0x2,0xd2,0x3,0xb,0x5,0xd4,0x5,0xc1,0x5,0x83,0x4, +0x36,0x2,0x89,0xff,0xf6,0xfc,0x56,0xfa,0x10,0xf8,0x14,0xf7, +0x65,0xf7,0x6a,0xf8,0xe8,0xf9,0xdc,0xfb,0x43,0xfe,0xba,0x0, +0x8a,0x2,0xa6,0x3,0x67,0x4,0x94,0x4,0x1a,0x4,0x59,0x3, +0x5f,0x2,0x34,0x1,0x30,0x0,0x70,0xff,0xdf,0xfe,0x80,0xfe, +0x52,0xfe,0x70,0xfe,0xcd,0xfe,0x16,0xff,0x39,0xff,0x58,0xff, +0xa3,0xff,0x68,0x0,0x70,0x1,0xe,0x2,0x4b,0x2,0x9b,0x2, +0xe9,0x2,0xe0,0x2,0x4b,0x2,0x38,0x1,0x1d,0x0,0x53,0xff, +0xe0,0xfe,0xf3,0xfe,0xb8,0xff,0x11,0x1,0xa0,0x2,0xc8,0x3, +0x3f,0x4,0x4e,0x4,0xf8,0x3,0x2,0x3,0x9f,0x1,0x11,0x0, +0x6b,0xfe,0xf1,0xfc,0xe8,0xfb,0x5d,0xfb,0x39,0xfb,0x79,0xfb, +0x6c,0xfc,0x20,0xfe,0xd0,0xff,0xec,0x0,0xb4,0x1,0x4f,0x2, +0x93,0x2,0x64,0x2,0xa9,0x1,0xa7,0x0,0xd8,0xff,0x2d,0xff, +0x74,0xfe,0xde,0xfd,0x85,0xfd,0x5a,0xfd,0x6f,0xfd,0xbb,0xfd, +0x26,0xfe,0xd0,0xfe,0xd0,0xff,0xce,0x0,0x45,0x1,0x21,0x1, +0xbe,0x0,0x44,0x0,0xb4,0xff,0x40,0xff,0xde,0xfe,0x6c,0xfe, +0x31,0xfe,0x6b,0xfe,0xf8,0xfe,0xbc,0xff,0x92,0x0,0x6d,0x1, +0x8b,0x2,0xc0,0x3,0x95,0x4,0x33,0x5,0xde,0x5,0x34,0x6, +0xc7,0x5,0x9f,0x4,0x3,0x3,0x32,0x1,0x3b,0xff,0x22,0xfd, +0x16,0xfb,0x57,0xf9,0x41,0xf8,0xf8,0xf7,0x20,0xf8,0x8d,0xf8, +0x8b,0xf9,0x34,0xfb,0x89,0xfd,0x83,0x0,0x85,0x3,0xf5,0x5, +0xe8,0x7,0x61,0x9,0xf2,0x9,0x22,0x9,0x82,0x6,0x2f,0x2, +0x4a,0xfd,0x1f,0xf9,0x56,0xf6,0x18,0xf5,0x64,0xf5,0x41,0xf7, +0x7a,0xfa,0x30,0xfe,0x6c,0x1,0xbe,0x3,0xe4,0x4,0xb8,0x4, +0x86,0x3,0xd5,0x1,0xfa,0xff,0x3c,0xfe,0xd,0xfd,0xd0,0xfc, +0x3f,0xfd,0xd4,0xfd,0xa9,0xfe,0x12,0x0,0xd3,0x1,0x6b,0x3, +0x70,0x4,0xb1,0x4,0x83,0x4,0x1e,0x4,0x27,0x3,0xb6,0x1, +0x76,0x0,0x8a,0xff,0xc6,0xfe,0x39,0xfe,0xd2,0xfd,0x8f,0xfd, +0xb7,0xfd,0x41,0xfe,0xcb,0xfe,0xf8,0xfe,0x73,0xfe,0x7c,0xfd, +0x2,0xfd,0x6d,0xfd,0x44,0xfe,0x42,0xff,0xbc,0x0,0xdf,0x2, +0xed,0x4,0xac,0x5,0xd8,0x4,0x52,0x3,0xa0,0x1,0x81,0xff, +0xf6,0xfc,0xa7,0xfa,0x56,0xf9,0x56,0xf9,0x6b,0xfa,0x20,0xfc, +0xff,0xfd,0x9d,0xff,0xfe,0x0,0x55,0x2,0x3c,0x3,0x4,0x3, +0xb0,0x1,0xf,0x0,0xe8,0xfe,0x40,0xfe,0xa2,0xfd,0x22,0xfd, +0x33,0xfd,0xe6,0xfd,0x1,0xff,0x3b,0x0,0x7a,0x1,0xb,0x3, +0xb3,0x4,0x79,0x5,0x2a,0x5,0x58,0x4,0x1a,0x3,0x84,0x1, +0x1,0x0,0xa2,0xfe,0x7d,0xfd,0xf1,0xfc,0xee,0xfc,0x27,0xfd, +0x8c,0xfd,0x27,0xfe,0x2a,0xff,0x6e,0x0,0x41,0x1,0x78,0x1, +0x98,0x1,0xd9,0x1,0x1c,0x2,0x1a,0x2,0x89,0x1,0xbd,0x0, +0x37,0x0,0xe7,0xff,0xb3,0xff,0xac,0xff,0xa1,0xff,0xa6,0xff, +0x9,0x0,0x9d,0x0,0xe6,0x0,0x9d,0x0,0xd5,0xff,0xe3,0xfe, +0xca,0xfd,0x76,0xfc,0x71,0xfb,0x37,0xfb,0x9e,0xfb,0x73,0xfc, +0x99,0xfd,0xf8,0xfe,0x87,0x0,0xcc,0x1,0x57,0x2,0x7c,0x2, +0x77,0x2,0x18,0x2,0x7b,0x1,0xb8,0x0,0x2,0x0,0x2,0x0, +0xc1,0x0,0xa7,0x1,0x8c,0x2,0x29,0x3,0x1e,0x3,0xaf,0x2, +0xd5,0x1,0x28,0x0,0x29,0xfe,0x86,0xfc,0x39,0xfb,0x66,0xfa, +0x3e,0xfa,0xbf,0xfa,0x41,0xfc,0xe7,0xfe,0x11,0x2,0x16,0x5, +0x6f,0x7,0xa9,0x8,0xc0,0x8,0xd4,0x7,0xf2,0x5,0x63,0x3, +0x9d,0x0,0xc,0xfe,0xeb,0xfb,0x6c,0xfa,0x9,0xfa,0xee,0xfa, +0x6c,0xfc,0x3,0xfe,0x9f,0xff,0xd8,0x0,0x7a,0x1,0xa5,0x1, +0x1b,0x1,0xf5,0xff,0xe9,0xfe,0x16,0xfe,0x55,0xfd,0xf4,0xfc, +0x16,0xfd,0xc0,0xfd,0x36,0xff,0x2e,0x1,0xdf,0x2,0xdd,0x3, +0x3e,0x4,0x4c,0x4,0x19,0x4,0x4f,0x3,0xcb,0x1,0xea,0xff, +0x1d,0xfe,0xd6,0xfc,0x39,0xfc,0xef,0xfb,0xe4,0xfb,0x67,0xfc, +0x59,0xfd,0x49,0xfe,0x21,0xff,0x5,0x0,0x0,0x1,0xf9,0x1, +0xd3,0x2,0x91,0x3,0x3c,0x4,0xc5,0x4,0x28,0x5,0x51,0x5, +0xef,0x4,0xba,0x3,0xe0,0x1,0xeb,0xff,0x2b,0xfe,0x75,0xfc, +0xa6,0xfa,0xfe,0xf8,0xe8,0xf7,0xaa,0xf7,0x48,0xf8,0xb3,0xf9, +0x7,0xfc,0x22,0xff,0x5e,0x2,0x30,0x5,0x78,0x7,0x14,0x9, +0xce,0x9,0x55,0x9,0x16,0x7,0xf9,0x2,0xfd,0xfd,0x9e,0xf9, +0xe4,0xf6,0xfd,0xf5,0x81,0xf6,0x3a,0xf8,0x29,0xfb,0xdf,0xfe, +0x66,0x2,0xe0,0x4,0xe,0x6,0x26,0x6,0x63,0x5,0xe3,0x3, +0xc9,0x1,0x5a,0xff,0x48,0xfd,0x4a,0xfc,0x3c,0xfc,0x78,0xfc, +0xe1,0xfc,0xc3,0xfd,0x4a,0xff,0x44,0x1,0x5,0x3,0x11,0x4, +0xa1,0x4,0xcf,0x4,0x5a,0x4,0x49,0x3,0xca,0x1,0xf,0x0, +0x96,0xfe,0xa2,0xfd,0xd2,0xfc,0x0,0xfc,0xb7,0xfb,0x7f,0xfc, +0x0,0xfe,0x3d,0xff,0xd4,0xff,0x3c,0x0,0x93,0x0,0xb1,0x0, +0x5,0x1,0xdd,0x1,0xcf,0x2,0x8a,0x3,0x1d,0x4,0x5e,0x4, +0xfd,0x3,0xee,0x2,0x60,0x1,0x72,0xff,0x2c,0xfd,0xf5,0xfa, +0x94,0xf9,0x5d,0xf9,0xfe,0xf9,0x28,0xfb,0xc1,0xfc,0xb4,0xfe, +0xc4,0x0,0x8a,0x2,0xbb,0x3,0x2e,0x4,0xba,0x3,0xac,0x2, +0xc2,0x1,0x24,0x1,0x57,0x0,0x63,0xff,0xb3,0xfe,0x49,0xfe, +0x16,0xfe,0x56,0xfe,0x1e,0xff,0x37,0x0,0x50,0x1,0x38,0x2, +0x3,0x3,0xa5,0x3,0xa1,0x3,0xaa,0x2,0x18,0x1,0x6a,0xff, +0xe7,0xfd,0xb3,0xfc,0xdd,0xfb,0x82,0xfb,0xd5,0xfb,0xe3,0xfc, +0x74,0xfe,0x42,0x0,0x12,0x2,0x96,0x3,0x6e,0x4,0x8b,0x4, +0x37,0x4,0x8c,0x3,0x80,0x2,0x3d,0x1,0xda,0xff,0x57,0xfe, +0xe,0xfd,0x56,0xfc,0x11,0xfc,0x37,0xfc,0xd9,0xfc,0xb3,0xfd, +0x99,0xfe,0xb0,0xff,0xf7,0x0,0x23,0x2,0xc1,0x2,0x9a,0x2, +0x1a,0x2,0xb0,0x1,0x10,0x1,0xf7,0xff,0xbd,0xfe,0x9a,0xfd, +0x8b,0xfc,0xef,0xfb,0x2f,0xfc,0x7,0xfd,0xeb,0xfd,0xc8,0xfe, +0xd5,0xff,0x5,0x1,0x1c,0x2,0xf8,0x2,0xa3,0x3,0x32,0x4, +0x75,0x4,0x0,0x4,0xd1,0x2,0x4f,0x1,0x9a,0xff,0xc0,0xfd, +0x2d,0xfc,0x30,0xfb,0xc2,0xfa,0xe5,0xfa,0xae,0xfb,0xe,0xfd, +0xf6,0xfe,0x60,0x1,0x8,0x4,0x1b,0x6,0xe0,0x6,0x86,0x6, +0x93,0x5,0x36,0x4,0x8f,0x2,0xbc,0x0,0xc0,0xfe,0xfa,0xfc, +0xe1,0xfb,0x7b,0xfb,0xb7,0xfb,0x7d,0xfc,0x98,0xfd,0xe,0xff, +0xc5,0x0,0x1e,0x2,0xdd,0x2,0x70,0x3,0xdf,0x3,0xa6,0x3, +0x81,0x2,0xc9,0x0,0x2f,0xff,0xf,0xfe,0x4b,0xfd,0xd4,0xfc, +0xcb,0xfc,0x34,0xfd,0xe9,0xfd,0xd3,0xfe,0xed,0xff,0xf3,0x0, +0x8b,0x1,0xea,0x1,0x44,0x2,0x2e,0x2,0xb2,0x1,0x64,0x1, +0x1b,0x1,0x77,0x0,0xbe,0xff,0x17,0xff,0xa6,0xfe,0xc0,0xfe, +0x31,0xff,0xc2,0xff,0x9e,0x0,0x7f,0x1,0x2f,0x2,0xd3,0x2, +0xdf,0x2,0x8,0x2,0x28,0x1,0x83,0x0,0x98,0xff,0x7f,0xfe, +0x5f,0xfd,0x9,0xfc,0x9e,0xfa,0x4a,0xf9,0x3f,0xf8,0xde,0xf7, +0x4c,0xf8,0xb0,0xf9,0x52,0xfc,0xcd,0xff,0x92,0x3,0x92,0x7, +0x74,0xb,0x68,0xe,0xa2,0xf,0x6b,0xe,0xa4,0xa,0xe9,0x4, +0x38,0xfe,0xa,0xf8,0x9f,0xf3,0xf5,0xf0,0xdb,0xef,0xd4,0xf0, +0xa,0xf4,0xc5,0xf8,0x2,0xfe,0x5,0x3,0x7f,0x7,0xd5,0xa, +0xff,0xb,0xe4,0xa,0x5c,0x8,0x25,0x5,0x18,0x2,0xcb,0xff, +0xe1,0xfd,0x31,0xfc,0x70,0xfb,0x14,0xfc,0xe1,0xfd,0x43,0x0, +0x8c,0x2,0x67,0x4,0xa0,0x5,0x99,0x5,0x10,0x4,0x91,0x1, +0xd4,0xfe,0x74,0xfc,0xc3,0xfa,0x7b,0xf9,0x7c,0xf8,0x61,0xf8, +0xb7,0xf9,0x2c,0xfc,0x99,0xfe,0x0,0x0,0xbb,0x0,0xbd,0x1, +0xd1,0x2,0x14,0x3,0xa4,0x2,0x67,0x2,0xc5,0x2,0x3a,0x3, +0xfa,0x2,0xf0,0x1,0xcb,0x0,0xf9,0xff,0x48,0xff,0x70,0xfe, +0x60,0xfd,0x96,0xfc,0xcf,0xfc,0xd7,0xfd,0x96,0xfe,0x80,0xfe, +0x10,0xfe,0xf4,0xfd,0x5d,0xfe,0xd2,0xfe,0xfa,0xfe,0x37,0xff, +0x6,0x0,0x68,0x1,0xec,0x2,0xfa,0x3,0x85,0x4,0xfd,0x4, +0x27,0x5,0x64,0x4,0xda,0x2,0x2a,0x1,0xf1,0xff,0x91,0xff, +0x94,0xff,0x5f,0xff,0x4a,0xff,0xb4,0xff,0x50,0x0,0xbb,0x0, +0x8a,0x0,0xb1,0xff,0xdb,0xfe,0x46,0xfe,0x95,0xfd,0xff,0xfc, +0x3,0xfd,0xb1,0xfd,0xf5,0xfe,0x62,0x0,0x5e,0x1,0xeb,0x1, +0x4f,0x2,0x70,0x2,0x2c,0x2,0x97,0x1,0xe5,0x0,0x56,0x0, +0xfa,0xff,0xdc,0xff,0xf0,0xff,0xff,0xff,0x21,0x0,0x6d,0x0, +0x5f,0x0,0xb3,0xff,0xd2,0xfe,0x1,0xfe,0x5f,0xfd,0xc,0xfd, +0xe9,0xfc,0xe,0xfd,0xdd,0xfd,0x32,0xff,0xa1,0x0,0xd4,0x1, +0x67,0x2,0x48,0x2,0xae,0x1,0xb6,0x0,0xc2,0xff,0x4b,0xff, +0x46,0xff,0xa7,0xff,0x5a,0x0,0x6,0x1,0xc5,0x1,0xdd,0x2, +0xc2,0x3,0xfe,0x3,0xb0,0x3,0xbb,0x2,0x2f,0x1,0x94,0xff, +0x10,0xfe,0x9e,0xfc,0x9a,0xfb,0x4b,0xfb,0xb2,0xfb,0xb4,0xfc, +0x27,0xfe,0x9,0x0,0x36,0x2,0x18,0x4,0x3e,0x5,0xa7,0x5, +0x43,0x5,0x9,0x4,0x38,0x2,0x1a,0x0,0x5,0xfe,0x68,0xfc, +0x86,0xfb,0x5f,0xfb,0xbf,0xfb,0x71,0xfc,0x94,0xfd,0x54,0xff, +0x3d,0x1,0x8f,0x2,0x38,0x3,0x93,0x3,0xa7,0x3,0x4b,0x3, +0x7b,0x2,0x33,0x1,0x88,0xff,0xda,0xfd,0x7e,0xfc,0xb0,0xfb, +0xaf,0xfb,0x73,0xfc,0xa6,0xfd,0x1d,0xff,0xcc,0x0,0x7c,0x2, +0xfc,0x3,0x4e,0x5,0x66,0x6,0xd2,0x6,0x24,0x6,0xb9,0x4, +0x41,0x3,0xb0,0x1,0xa9,0xff,0x78,0xfd,0x9b,0xfb,0x3a,0xfa, +0x84,0xf9,0xa5,0xf9,0x7e,0xfa,0xe5,0xfb,0xc5,0xfd,0xe9,0xff, +0x0,0x2,0xc0,0x3,0xf9,0x4,0xa1,0x5,0xae,0x5,0xd9,0x4, +0xe9,0x2,0x1c,0x0,0xcc,0xfc,0x27,0xf9,0xa7,0xf5,0x32,0xf3, +0x66,0xf2,0x58,0xf3,0x0,0xf6,0x2f,0xfa,0x14,0xff,0xcf,0x3, +0x45,0x8,0x4d,0xc,0x82,0xe,0x7a,0xd,0x92,0x9,0x43,0x4, +0xef,0xfe,0x90,0xfa,0x53,0xf7,0x2d,0xf5,0xe7,0xf4,0xf8,0xf6, +0x55,0xfa,0xe2,0xfd,0x63,0x1,0xad,0x4,0x88,0x7,0xc1,0x9, +0xd1,0xa,0x5f,0xa,0xb6,0x8,0x62,0x6,0xee,0x3,0x88,0x1, +0xd8,0xfe,0x9,0xfc,0x3a,0xfa,0x20,0xfa,0x10,0xfb,0x23,0xfc, +0x88,0xfd,0xa9,0xff,0xa8,0x1,0x4a,0x2,0xc1,0x1,0xde,0x0, +0xf5,0xff,0x5d,0xff,0x37,0xff,0xef,0xfe,0x88,0xfe,0xe6,0xfe, +0x11,0x0,0x0,0x1,0xf4,0x0,0x12,0x0,0x19,0xff,0x7e,0xfe, +0xcd,0xfd,0xbd,0xfc,0xf,0xfc,0x5b,0xfc,0x42,0xfd,0x50,0xfe, +0x4b,0xff,0xff,0xff,0x88,0x0,0xe,0x1,0x35,0x1,0x90,0x0, +0x46,0xff,0x4,0xfe,0x84,0xfd,0xb4,0xfd,0xca,0xfd,0x88,0xfd, +0x8e,0xfd,0x4a,0xfe,0x99,0xff,0x15,0x1,0x60,0x2,0x85,0x3, +0xc1,0x4,0xc3,0x5,0xe5,0x5,0xd,0x5,0xa8,0x3,0x0,0x2, +0x22,0x0,0x51,0xfe,0xfb,0xfc,0x3b,0xfc,0x28,0xfc,0xf8,0xfc, +0x5f,0xfe,0xcd,0xff,0x1e,0x1,0x32,0x2,0xd0,0x2,0x1a,0x3, +0x26,0x3,0xc8,0x2,0xc,0x2,0xf2,0x0,0x79,0xff,0x12,0xfe, +0x1b,0xfd,0x93,0xfc,0x7b,0xfc,0xc0,0xfc,0x60,0xfd,0x8c,0xfe, +0x1d,0x0,0xc6,0x1,0x6e,0x3,0xb4,0x4,0x62,0x5,0xaf,0x5, +0x33,0x5,0x80,0x3,0x35,0x1,0xcc,0xfe,0x62,0xfc,0x7f,0xfa, +0x38,0xf9,0x6d,0xf8,0xc0,0xf8,0x18,0xfa,0x5a,0xfb,0x68,0xfc, +0x9c,0xfd,0xaa,0xfe,0x81,0xff,0x52,0x0,0xfa,0x0,0xa1,0x1, +0x7c,0x2,0x44,0x3,0xcb,0x3,0x9,0x4,0xf3,0x3,0xc9,0x3, +0xa3,0x3,0x2a,0x3,0x52,0x2,0x7c,0x1,0xf0,0x0,0xc6,0x0, +0xb9,0x0,0x66,0x0,0xc8,0xff,0xc,0xff,0x4d,0xfe,0x8f,0xfd, +0x8d,0xfc,0x44,0xfb,0x75,0xfa,0xb5,0xfa,0xc7,0xfb,0x48,0xfd, +0x3e,0xff,0xba,0x1,0x52,0x4,0x49,0x6,0x77,0x7,0x37,0x8, +0x5b,0x8,0x7e,0x7,0xf6,0x5,0x26,0x4,0xe8,0x1,0x4b,0xff, +0xe8,0xfc,0x26,0xfb,0xd3,0xf9,0xc4,0xf8,0x68,0xf8,0xf,0xf9, +0x4a,0xfa,0xc3,0xfb,0x95,0xfd,0x91,0xff,0x66,0x1,0x10,0x3, +0x61,0x4,0x2c,0x5,0x85,0x5,0x68,0x5,0x0,0x5,0x9b,0x4, +0xe0,0x3,0x99,0x2,0x70,0x1,0x8f,0x0,0x85,0xff,0xa1,0xfe, +0x43,0xfe,0x1e,0xfe,0x30,0xfe,0x90,0xfe,0xec,0xfe,0x37,0xff, +0x8e,0xff,0xb2,0xff,0x89,0xff,0x22,0xff,0x73,0xfe,0xa3,0xfd, +0xda,0xfc,0x17,0xfc,0x9a,0xfb,0x7a,0xfb,0x73,0xfb,0xaa,0xfb, +0x3c,0xfc,0xa8,0xfc,0xb5,0xfc,0xd1,0xfc,0x4e,0xfd,0x2c,0xfe, +0x4f,0xff,0xbe,0x0,0xdb,0x2,0x9c,0x5,0x5,0x8,0x5a,0x9, +0xb2,0x9,0xf3,0x8,0x95,0x6,0x6d,0x2,0xf8,0xfc,0x5a,0xf7, +0x17,0xf3,0x31,0xf1,0xad,0xf1,0x22,0xf4,0x26,0xf8,0x2e,0xfd, +0x7d,0x2,0x41,0x7,0xca,0xa,0xcb,0xc,0x2a,0xd,0x17,0xc, +0x3d,0xa,0xe7,0x7,0xed,0x4,0x1f,0x2,0x7e,0x0,0x6f,0xff, +0xc,0xfe,0xb7,0xfc,0x8,0xfc,0x22,0xfc,0xd4,0xfc,0x7a,0xfd, +0xeb,0xfd,0xaa,0xfe,0x62,0xff,0x72,0xff,0x33,0xff,0xd8,0xfe, +0x32,0xfe,0xdf,0xfd,0x55,0xfe,0xe2,0xfe,0xd6,0xfe,0x77,0xfe, +0x81,0xfe,0xf6,0xfe,0xe2,0xfe,0xe9,0xfd,0xf8,0xfc,0xd3,0xfc, +0x7b,0xfd,0xc4,0xfe,0x8d,0x0,0x9d,0x2,0x69,0x4,0x59,0x5, +0x75,0x5,0xc6,0x4,0xbf,0x2,0xa3,0xff,0xbb,0xfc,0x7d,0xfa, +0x7a,0xf8,0xda,0xf6,0x82,0xf6,0xec,0xf7,0x4e,0xfa,0x83,0xfc, +0xa3,0xfe,0x3e,0x1,0xee,0x3,0x1f,0x6,0xba,0x7,0xa7,0x8, +0xd8,0x8,0x4b,0x8,0xd9,0x6,0xac,0x4,0x46,0x2,0xfb,0xff, +0x8,0xfe,0xa4,0xfc,0xe9,0xfb,0xe8,0xfb,0xa0,0xfc,0xc,0xfe, +0x4,0x0,0xdc,0x1,0xfa,0x2,0x96,0x3,0x3,0x4,0x16,0x4, +0x6a,0x3,0xc7,0x1,0xc9,0xff,0x4f,0xfe,0x18,0xfd,0xc3,0xfb, +0x34,0xfb,0xfb,0xfb,0x54,0xfd,0xd1,0xfe,0xa7,0x0,0x97,0x2, +0x2e,0x4,0x5b,0x5,0xfe,0x5,0xc2,0x5,0x99,0x4,0xdc,0x2, +0xd0,0x0,0x79,0xfe,0x9,0xfc,0xe5,0xf9,0x5d,0xf8,0xa9,0xf7, +0x93,0xf7,0xd8,0xf7,0xe7,0xf8,0xfc,0xfa,0x53,0xfd,0x5d,0xff, +0x44,0x1,0xf8,0x2,0x4f,0x4,0x2e,0x5,0x2b,0x5,0x5a,0x4, +0x6f,0x3,0x79,0x2,0x30,0x1,0xe8,0xff,0xef,0xfe,0x4e,0xfe, +0x6e,0xfe,0x86,0xff,0x1,0x1,0x30,0x2,0x9,0x3,0xf1,0x3, +0xcb,0x4,0xb6,0x4,0x58,0x3,0x63,0x1,0x54,0xff,0x17,0xfd, +0xe9,0xfa,0x59,0xf9,0xc0,0xf8,0x47,0xf9,0xe7,0xfa,0x78,0xfd, +0xae,0x0,0xfb,0x3,0xe5,0x6,0x26,0x9,0x54,0xa,0x3c,0xa, +0x2e,0x9,0x2b,0x7,0x17,0x4,0x83,0x0,0x19,0xfd,0x22,0xfa, +0xc,0xf8,0x33,0xf7,0x8e,0xf7,0xe8,0xf8,0xf3,0xfa,0x7e,0xfd, +0x7b,0x0,0x64,0x3,0x91,0x5,0xfe,0x6,0xa4,0x7,0x24,0x7, +0xa8,0x5,0xb5,0x3,0x82,0x1,0x44,0xff,0x65,0xfd,0x26,0xfc, +0x73,0xfb,0x31,0xfb,0x92,0xfb,0xac,0xfc,0x2,0xfe,0x63,0xff, +0x16,0x1,0xd0,0x2,0xe,0x4,0xd8,0x4,0x3c,0x5,0x12,0x5, +0x39,0x4,0x97,0x2,0x84,0x0,0x92,0xfe,0xa2,0xfc,0xae,0xfa, +0x6a,0xf9,0x1,0xf9,0xde,0xf8,0xbe,0xf8,0x9d,0xf8,0x6f,0xf8, +0x45,0xf8,0x39,0xf8,0x9a,0xf8,0xd3,0xf9,0xed,0xfb,0xcc,0xfe, +0x5e,0x2,0x49,0x6,0x10,0xa,0x28,0xd,0x8,0xf,0x7a,0xf, +0x24,0xe,0x6c,0xa,0xb2,0x4,0x51,0xfe,0x59,0xf8,0x9f,0xf3, +0xf3,0xf0,0x66,0xf0,0xb6,0xf1,0x1,0xf5,0x19,0xfa,0xe,0x0, +0xbc,0x5,0x4b,0xa,0x58,0xd,0xc1,0xe,0x67,0xe,0x51,0xc, +0xe4,0x8,0xda,0x4,0xe9,0x0,0x99,0xfd,0x53,0xfb,0x36,0xfa, +0x23,0xfa,0x36,0xfb,0x5f,0xfd,0xdc,0xff,0x22,0x2,0x2c,0x4, +0x53,0x5,0xcc,0x4,0x22,0x3,0x3d,0x1,0xf7,0xfe,0x33,0xfc, +0xba,0xf9,0x18,0xf8,0x0,0xf7,0x70,0xf6,0xe,0xf7,0xe3,0xf8, +0xf1,0xfa,0x8e,0xfc,0x45,0xfe,0x95,0x0,0xb3,0x2,0xd5,0x3, +0xb6,0x4,0xfb,0x5,0xa9,0x6,0x1b,0x6,0x2d,0x5,0x32,0x4, +0x5b,0x2,0x93,0xff,0xa3,0xfc,0xff,0xf9,0xb7,0xf7,0x1d,0xf6, +0xd2,0xf5,0xef,0xf6,0xd0,0xf8,0x2a,0xfb,0x2c,0xfe,0x76,0x1, +0x6e,0x4,0x17,0x7,0x61,0x9,0xd1,0xa,0x18,0xb,0x5f,0xa, +0xfe,0x8,0x6,0x7,0x5d,0x4,0x65,0x1,0xbb,0xfe,0xc3,0xfc, +0x6,0xfc,0xa4,0xfc,0xda,0xfd,0x48,0xff,0x35,0x1,0x39,0x3, +0x92,0x4,0x1,0x5,0x5d,0x4,0xbc,0x2,0xb9,0x0,0xaa,0xfe, +0x96,0xfc,0xc4,0xfa,0x87,0xf9,0x4a,0xf9,0x85,0xfa,0xb2,0xfc, +0xda,0xfe,0x6,0x1,0x60,0x3,0x11,0x5,0xa6,0x5,0xa5,0x5, +0x31,0x5,0x3,0x4,0x64,0x2,0xa4,0x0,0xb8,0xfe,0xcf,0xfc, +0x3b,0xfb,0x1,0xfa,0x3,0xf9,0x47,0xf8,0xef,0xf7,0x17,0xf8, +0xaf,0xf8,0xc2,0xf9,0x9c,0xfb,0x2a,0xfe,0xf5,0x0,0xc3,0x3, +0x77,0x6,0x91,0x8,0x72,0x9,0xee,0x8,0x65,0x7,0x21,0x5, +0x1f,0x2,0xf2,0xfe,0x8f,0xfc,0x11,0xfb,0x52,0xfa,0xe9,0xfa, +0x7,0xfd,0xeb,0xff,0xec,0x2,0xb4,0x5,0xec,0x7,0x28,0x9, +0xf1,0x8,0x4e,0x7,0xcd,0x4,0xa8,0x1,0xf,0xfe,0xc6,0xfa, +0x62,0xf8,0x12,0xf7,0x30,0xf7,0xdc,0xf8,0xc9,0xfb,0xa3,0xff, +0x2,0x4,0x5c,0x8,0x1d,0xc,0x77,0xe,0xde,0xe,0xa3,0xd, +0x1d,0xb,0x49,0x7,0x7d,0x2,0x8b,0xfd,0x2c,0xf9,0xe2,0xf5, +0xfb,0xf3,0x99,0xf3,0xb5,0xf4,0xc,0xf7,0x2f,0xfa,0x9e,0xfd, +0xc4,0x0,0x21,0x3,0x7c,0x4,0xe3,0x4,0x95,0x4,0xb7,0x3, +0x48,0x2,0x99,0x0,0x46,0xff,0x7f,0xfe,0x13,0xfe,0x0,0xfe, +0x66,0xfe,0x6a,0xff,0xd,0x1,0xd7,0x2,0x1e,0x4,0xbb,0x4, +0xb1,0x4,0x9d,0x3,0x52,0x1,0x2f,0xfe,0x9c,0xfa,0xf9,0xf6, +0xb0,0xf3,0xf3,0xf0,0xed,0xee,0xe9,0xed,0x29,0xee,0x7,0xf0, +0xcf,0xf3,0x18,0xf9,0x32,0xff,0xdc,0x5,0xa4,0xc,0x80,0x12, +0xcc,0x16,0x79,0x19,0x1e,0x1a,0xe5,0x17,0x7e,0x12,0x74,0xa, +0x2,0x1,0xd6,0xf7,0x5c,0xf0,0x51,0xeb,0x33,0xe9,0x59,0xea, +0x92,0xee,0x3b,0xf5,0x20,0xfd,0xa0,0x4,0xf6,0xa,0x1d,0x10, +0x4e,0x13,0xa2,0x13,0x61,0x11,0x3e,0xd,0xf5,0x7,0x91,0x2, +0xa4,0xfd,0x4e,0xf9,0x44,0xf6,0x62,0xf5,0xca,0xf6,0xe5,0xf9, +0xc8,0xfd,0xfc,0x1,0x3e,0x6,0x66,0x9,0x58,0xa,0x4e,0x9, +0xca,0x6,0xec,0x2,0x3b,0xfe,0x7f,0xf9,0x4a,0xf5,0xf8,0xf1, +0xec,0xef,0xb1,0xef,0x1c,0xf1,0xf4,0xf2,0xef,0xf4,0xfd,0xf7, +0xec,0xfb,0x91,0xff,0xc3,0x2,0xff,0x5,0x2d,0x9,0x88,0xb, +0x5b,0xc,0xd2,0xb,0x4c,0xa,0x74,0x7,0x7c,0x3,0x6d,0xff, +0x89,0xfb,0xc5,0xf7,0x1d,0xf5,0x59,0xf4,0xff,0xf4,0x82,0xf6, +0x1a,0xf9,0xde,0xfc,0xfa,0x0,0xa2,0x4,0xe6,0x7,0xab,0xa, +0x47,0xc,0x92,0xc,0xbf,0xb,0xd9,0x9,0x1a,0x7,0xe1,0x3, +0x9b,0x0,0xda,0xfd,0xce,0xfb,0xaf,0xfa,0x4b,0xfb,0x8b,0xfd, +0x4e,0x0,0x24,0x3,0xc9,0x5,0x55,0x7,0x70,0x7,0x51,0x6, +0xf3,0x3,0xac,0x0,0x2e,0xfd,0xfc,0xf9,0x97,0xf7,0x35,0xf6, +0xd6,0xf5,0xd9,0xf6,0x20,0xf9,0xcf,0xfb,0x99,0xfe,0x6c,0x1, +0x95,0x3,0xc6,0x4,0x49,0x5,0x11,0x5,0x10,0x4,0x8a,0x2, +0xb1,0x0,0xbe,0xfe,0xdf,0xfc,0x1d,0xfb,0xdb,0xf9,0x8b,0xf9, +0xf6,0xf9,0xc6,0xfa,0x12,0xfc,0xc3,0xfd,0x6a,0xff,0xc2,0x0, +0xb8,0x1,0x2b,0x2,0x12,0x2,0xcc,0x1,0xb7,0x1,0x9f,0x1, +0x50,0x1,0x41,0x1,0xb2,0x1,0x14,0x2,0x1b,0x2,0x15,0x2, +0x13,0x2,0xf9,0x1,0xf7,0x1,0x2c,0x2,0x7c,0x2,0xde,0x2, +0x4d,0x3,0xb6,0x3,0x4,0x4,0x10,0x4,0xa3,0x3,0xbd,0x2, +0x99,0x1,0x4f,0x0,0xd6,0xfe,0x9e,0xfd,0x48,0xfd,0xa9,0xfd, +0x4b,0xfe,0x63,0xff,0x13,0x1,0xeb,0x2,0xa4,0x4,0x0,0x6, +0x80,0x6,0xf4,0x5,0x5c,0x4,0xcd,0x1,0xf3,0xfe,0x60,0xfc, +0x11,0xfa,0x6c,0xf8,0x1,0xf8,0xa7,0xf8,0x16,0xfa,0x26,0xfc, +0x66,0xfe,0x73,0x0,0xf5,0x1,0xa8,0x2,0xdd,0x2,0xb9,0x2, +0xd1,0x1,0x72,0x0,0x66,0xff,0xa0,0xfe,0xed,0xfd,0x8a,0xfd, +0x5f,0xfd,0x3f,0xfd,0x4d,0xfd,0x95,0xfd,0x43,0xfe,0x82,0xff, +0xd6,0x0,0xd5,0x1,0xca,0x2,0xad,0x3,0xab,0x3,0x52,0x2, +0xa,0x0,0x32,0xfd,0xc7,0xf9,0x24,0xf6,0xf8,0xf2,0x8a,0xf0, +0xec,0xee,0x93,0xee,0x10,0xf0,0x93,0xf3,0xd9,0xf8,0x78,0xff, +0x0,0x7,0x8c,0xe,0xbe,0x14,0xb6,0x18,0x6b,0x1a,0xcb,0x19, +0x30,0x16,0x24,0xf,0xb1,0x5,0xf0,0xfb,0x44,0xf3,0x7b,0xec, +0xba,0xe8,0x85,0xe8,0x6d,0xeb,0x23,0xf1,0xd3,0xf8,0xc4,0x0, +0xcb,0x7,0x49,0xd,0x90,0x10,0xa0,0x11,0xb6,0x10,0xa4,0xd, +0xc,0x9,0x63,0x4,0x61,0x0,0xff,0xfc,0x57,0xfa,0xf8,0xf8, +0x86,0xf9,0x8a,0xfb,0xd3,0xfd,0x39,0x0,0xfd,0x2,0x3a,0x5, +0xe7,0x5,0xf5,0x4,0xcb,0x2,0xbe,0xff,0xed,0xfb,0xcc,0xf7, +0x71,0xf4,0x61,0xf2,0x52,0xf1,0xb7,0xf1,0x1c,0xf4,0x6b,0xf7, +0x40,0xfa,0xbc,0xfc,0x64,0xff,0xa8,0x1,0xcb,0x2,0x41,0x3, +0xe8,0x3,0x8c,0x4,0x8d,0x4,0x34,0x4,0xf3,0x3,0x75,0x3, +0x74,0x2,0x38,0x1,0xfb,0xff,0x9c,0xfe,0xd,0xfd,0xcb,0xfb, +0x4a,0xfb,0x1e,0xfb,0xd3,0xfa,0x5,0xfb,0x2f,0xfc,0xdf,0xfd, +0xe6,0xff,0x7e,0x2,0x44,0x5,0x8e,0x7,0x6,0x9,0x99,0x9, +0x72,0x9,0x9e,0x8,0xe3,0x6,0x93,0x4,0x6b,0x2,0xbc,0x0, +0xc7,0xff,0xf6,0xff,0x2,0x1,0x45,0x2,0x89,0x3,0x98,0x4, +0xee,0x4,0x32,0x4,0x56,0x2,0x9d,0xff,0xab,0xfc,0x1f,0xfa, +0x3d,0xf8,0xfe,0xf6,0x62,0xf6,0xc0,0xf6,0x61,0xf8,0xe3,0xfa, +0x7f,0xfd,0xb7,0xff,0xa1,0x1,0x67,0x3,0x9a,0x4,0xe6,0x4, +0xbf,0x4,0x36,0x4,0xd8,0x2,0x30,0x1,0xd7,0xff,0x2f,0xfe, +0x33,0xfc,0xea,0xfa,0x65,0xfa,0xfd,0xf9,0xb8,0xf9,0xc2,0xf9, +0x39,0xfa,0x62,0xfb,0x19,0xfd,0xe6,0xfe,0xb5,0x0,0x8c,0x2, +0x2c,0x4,0x56,0x5,0xe3,0x5,0xa8,0x5,0xaa,0x4,0x2a,0x3, +0x60,0x1,0x56,0xff,0x87,0xfd,0xc6,0xfc,0x34,0xfd,0x8c,0xfe, +0xee,0x0,0xa,0x4,0xe9,0x6,0x2a,0x9,0xb7,0xa,0x6,0xb, +0xc2,0x9,0x32,0x7,0xd1,0x3,0x27,0x0,0x86,0xfc,0x44,0xf9, +0x34,0xf7,0xba,0xf6,0x54,0xf7,0xf1,0xf8,0xe3,0xfb,0x7d,0xff, +0xc8,0x2,0xbf,0x5,0x65,0x8,0xfb,0x9,0x12,0xa,0xc,0x9, +0x31,0x7,0x7d,0x4,0x40,0x1,0x0,0xfe,0x7,0xfb,0xb8,0xf8, +0x9c,0xf7,0xaf,0xf7,0x8b,0xf8,0xf4,0xf9,0xb2,0xfb,0x81,0xfd, +0x4e,0xff,0xde,0x0,0xe5,0x1,0x76,0x2,0xc3,0x2,0xcc,0x2, +0x7e,0x2,0xa2,0x1,0x36,0x0,0xe5,0xfe,0x1a,0xfe,0x7c,0xfd, +0xff,0xfc,0xd,0xfd,0x99,0xfd,0x70,0xfe,0x8d,0xff,0x87,0x0, +0xdd,0x0,0x7d,0x0,0x5c,0xff,0x5a,0xfd,0x8d,0xfa,0x46,0xf7, +0x7,0xf4,0x4b,0xf1,0x5a,0xef,0xc7,0xee,0x25,0xf0,0x7b,0xf3, +0xc5,0xf8,0xdf,0xff,0xbc,0x7,0xb,0xf,0xfc,0x14,0xea,0x18, +0x6f,0x1a,0x28,0x19,0x8e,0x14,0x1d,0xd,0x59,0x4,0x63,0xfb, +0x57,0xf3,0xca,0xed,0x6a,0xeb,0xe8,0xeb,0xf,0xef,0x87,0xf4, +0x6c,0xfb,0x68,0x2,0xe,0x8,0xd0,0xb,0xd9,0xd,0x5,0xe, +0x4a,0xc,0x43,0x9,0x99,0x5,0x10,0x2,0x75,0xff,0xc5,0xfd, +0xe7,0xfc,0x64,0xfd,0x36,0xff,0x54,0x1,0x26,0x3,0xc1,0x4, +0xbc,0x5,0x33,0x5,0x36,0x3,0xa4,0x0,0x9f,0xfd,0xec,0xf9, +0x4b,0xf6,0xc7,0xf3,0x7f,0xf2,0x12,0xf2,0x6b,0xf2,0xe8,0xf3, +0x72,0xf6,0xec,0xf8,0xd2,0xfa,0xe5,0xfc,0x1a,0xff,0x9a,0x0, +0xb0,0x1,0xfd,0x2,0x5f,0x4,0xbd,0x5,0x4,0x7,0xcd,0x7, +0xe5,0x7,0x39,0x7,0xd2,0x5,0x2,0x4,0xa0,0x1,0x6f,0xfe, +0x1c,0xfb,0x3b,0xf8,0xfc,0xf5,0x8,0xf5,0xa0,0xf5,0x48,0xf7, +0xe8,0xf9,0x7d,0xfd,0x8e,0x1,0xab,0x5,0x37,0x9,0x8a,0xb, +0xa0,0xc,0x77,0xc,0xfa,0xa,0xe1,0x8,0xcb,0x6,0xa9,0x4, +0xca,0x2,0xac,0x1,0x4a,0x1,0x97,0x1,0x65,0x2,0x24,0x3, +0x64,0x3,0xef,0x2,0xad,0x1,0xd6,0xff,0x9d,0xfd,0x2b,0xfb, +0x13,0xf9,0xbc,0xf7,0x19,0xf7,0x50,0xf7,0x7e,0xf8,0x45,0xfa, +0x50,0xfc,0x77,0xfe,0x5c,0x0,0xbb,0x1,0x8d,0x2,0xb8,0x2, +0x46,0x2,0x89,0x1,0xb4,0x0,0xbe,0xff,0xe5,0xfe,0x8b,0xfe, +0x8f,0xfe,0x7d,0xfe,0x60,0xfe,0x8b,0xfe,0xe9,0xfe,0x2d,0xff, +0x2e,0xff,0xf4,0xfe,0x9d,0xfe,0x35,0xfe,0xcc,0xfd,0x95,0xfd, +0x95,0xfd,0xc0,0xfd,0x62,0xfe,0x87,0xff,0xbd,0x0,0xcd,0x1, +0xb0,0x2,0x46,0x3,0xc9,0x3,0x76,0x4,0x16,0x5,0x94,0x5, +0x19,0x6,0x92,0x6,0xfc,0x6,0x53,0x7,0x3c,0x7,0x8c,0x6, +0x6c,0x5,0xdf,0x3,0xfb,0x1,0x22,0x0,0x99,0xfe,0x61,0xfd, +0x7d,0xfc,0x25,0xfc,0x8a,0xfc,0x67,0xfd,0x6b,0xfe,0xbb,0xff, +0x50,0x1,0xc1,0x2,0xe8,0x3,0xb5,0x4,0xf6,0x4,0xb2,0x4, +0x2,0x4,0xf0,0x2,0x98,0x1,0x13,0x0,0xb7,0xfe,0xf4,0xfd, +0x80,0xfd,0x1c,0xfd,0x63,0xfd,0x50,0xfe,0x14,0xff,0xab,0xff, +0x39,0x0,0x34,0x0,0xa0,0xff,0x6,0xff,0x50,0xfe,0x4a,0xfd, +0x3c,0xfc,0x89,0xfb,0x6e,0xfb,0xc1,0xfb,0x47,0xfc,0x37,0xfd, +0x8b,0xfe,0xb8,0xff,0x9c,0x0,0x59,0x1,0x9d,0x1,0x49,0x1, +0xa2,0x0,0x72,0xff,0x37,0xfd,0x24,0xfa,0xf5,0xf6,0xe3,0xf3, +0xe0,0xf0,0x8b,0xee,0xd3,0xed,0x28,0xef,0xd3,0xf2,0xc5,0xf8, +0x23,0x0,0xa,0x8,0xb4,0xf,0x7,0x16,0x4f,0x1a,0x1e,0x1c, +0x5f,0x1a,0xc3,0x14,0xc2,0xc,0xba,0x3,0x7d,0xfa,0x95,0xf2, +0x7e,0xed,0x85,0xeb,0x8c,0xec,0x82,0xf0,0xc5,0xf6,0xf6,0xfd, +0xa7,0x4,0x16,0xa,0xed,0xd,0xb7,0xf,0x4e,0xf,0x20,0xd, +0xbc,0x9,0xc5,0x5,0xe5,0x1,0x96,0xfe,0x2e,0xfc,0xdf,0xfa, +0xc9,0xfa,0x17,0xfc,0x59,0xfe,0xc4,0x0,0x3d,0x3,0x74,0x5, +0x31,0x6,0x35,0x5,0x68,0x3,0xcc,0x0,0x23,0xfd,0x34,0xf9, +0xa1,0xf5,0x7d,0xf2,0x29,0xf0,0x5,0xef,0x33,0xef,0xbc,0xf0, +0x1d,0xf3,0xee,0xf5,0xa8,0xf9,0x25,0xfe,0x2e,0x2,0x78,0x5, +0xbe,0x8,0xdc,0xb,0xbe,0xd,0xcf,0xd,0x50,0xc,0x85,0x9, +0x61,0x5,0x52,0x0,0x61,0xfb,0x20,0xf7,0x9a,0xf3,0x77,0xf1, +0x91,0xf1,0xc6,0xf3,0x76,0xf7,0x3e,0xfc,0x9a,0x1,0xa5,0x6, +0x9a,0xa,0x21,0xd,0x18,0xe,0x70,0xd,0x5c,0xb,0x5f,0x8, +0xf0,0x4,0x85,0x1,0xca,0xfe,0x3a,0xfd,0xdb,0xfc,0xac,0xfd, +0xc7,0xff,0xe5,0x2,0x32,0x6,0xd9,0x8,0x94,0xa,0x3c,0xb, +0x4b,0xa,0x91,0x7,0x98,0x3,0xd2,0xfe,0xac,0xf9,0x25,0xf5, +0x6,0xf2,0x68,0xf0,0x63,0xf0,0x14,0xf2,0x58,0xf5,0xd1,0xf9, +0x9b,0xfe,0xba,0x2,0xe5,0x5,0xf2,0x7,0x93,0x8,0x9,0x8, +0xa7,0x6,0x41,0x4,0x2b,0x1,0x4f,0xfe,0x13,0xfc,0x62,0xfa, +0x63,0xf9,0x5a,0xf9,0x45,0xfa,0xc6,0xfb,0x6b,0xfd,0xef,0xfe, +0x36,0x0,0x45,0x1,0x14,0x2,0x5f,0x2,0x2f,0x2,0xd5,0x1, +0x4d,0x1,0xb9,0x0,0x98,0x0,0xcb,0x0,0xd1,0x0,0xde,0x0, +0x44,0x1,0xe6,0x1,0xa4,0x2,0x7b,0x3,0x7f,0x4,0xb1,0x5, +0x99,0x6,0xf7,0x6,0x2b,0x7,0x28,0x7,0x96,0x6,0xa5,0x5, +0x77,0x4,0xf2,0x2,0x4f,0x1,0xd5,0xff,0xa6,0xfe,0xea,0xfd, +0x91,0xfd,0xa5,0xfd,0x6a,0xfe,0x89,0xff,0x8b,0x0,0x92,0x1, +0x80,0x2,0xe8,0x2,0xde,0x2,0x7c,0x2,0x9d,0x1,0x52,0x0, +0xd8,0xfe,0xaa,0xfd,0x3e,0xfd,0x3b,0xfd,0x47,0xfd,0xd1,0xfd, +0xea,0xfe,0x24,0x0,0x66,0x1,0x7a,0x2,0xf7,0x2,0xe8,0x2, +0x73,0x2,0x8f,0x1,0x41,0x0,0xa0,0xfe,0x13,0xfd,0x7,0xfc, +0x46,0xfb,0xc3,0xfa,0xe2,0xfa,0x59,0xfb,0xd7,0xfb,0xd0,0xfc, +0x18,0xfe,0xf8,0xfe,0x97,0xff,0x42,0x0,0x80,0x0,0xeb,0xff, +0x73,0xfe,0x2b,0xfc,0x79,0xf9,0xb6,0xf6,0xec,0xf3,0x88,0xf1, +0x7d,0xf0,0x7c,0xf1,0xa0,0xf4,0xc3,0xf9,0xa4,0x0,0x88,0x8, +0x1e,0x10,0x24,0x16,0xdd,0x19,0xf5,0x1a,0xf0,0x18,0x43,0x13, +0xa8,0xa,0x2f,0x1,0x39,0xf8,0x72,0xf0,0x61,0xeb,0x2e,0xea, +0x51,0xec,0x9,0xf1,0xdd,0xf7,0xa1,0xff,0xd5,0x6,0x66,0xc, +0xd1,0xf,0x49,0x11,0xe6,0x10,0x63,0xe,0x60,0xa,0xb,0x6, +0xc7,0x1,0xe1,0xfd,0xfc,0xfa,0x3f,0xf9,0xb5,0xf8,0xa2,0xf9, +0x97,0xfb,0xb4,0xfd,0xcd,0xff,0x3,0x2,0xb8,0x3,0xf8,0x3, +0xe4,0x2,0x7e,0x1,0xed,0xff,0xa0,0xfd,0xed,0xfa,0x91,0xf8, +0x66,0xf6,0x44,0xf4,0xde,0xf2,0xa5,0xf2,0x22,0xf3,0xf8,0xf3, +0xc4,0xf5,0x14,0xf9,0x20,0xfd,0xf8,0x0,0xf2,0x4,0x47,0x9, +0xea,0xc,0x9,0xf,0xa5,0xf,0x72,0xe,0x1,0xb,0xd7,0x5, +0x1,0x0,0x19,0xfa,0x86,0xf4,0x4b,0xf0,0x8f,0xee,0x72,0xef, +0x44,0xf2,0xc0,0xf6,0xcf,0xfc,0x70,0x3,0x2f,0x9,0x8c,0xd, +0x8d,0x10,0x75,0x11,0xbf,0xf,0x57,0xc,0x3e,0x8,0x90,0x3, +0xe5,0xfe,0x72,0xfb,0xa1,0xf9,0x47,0xf9,0x89,0xfa,0x5e,0xfd, +0x27,0x1,0x23,0x5,0xaa,0x8,0x1e,0xb,0xf8,0xb,0x8,0xb, +0x6f,0x8,0x47,0x4,0xeb,0xfe,0x7b,0xf9,0x14,0xf5,0xed,0xf1, +0xe,0xf0,0xff,0xef,0xe,0xf2,0xc2,0xf5,0x5a,0xfa,0x4d,0xff, +0xff,0x3,0x98,0x7,0xbd,0x9,0x9f,0xa,0x33,0xa,0x63,0x8, +0xb9,0x5,0xce,0x2,0xe5,0xff,0x4a,0xfd,0x30,0xfb,0xb1,0xf9, +0x23,0xf9,0x89,0xf9,0x4c,0xfa,0x18,0xfb,0x25,0xfc,0x91,0xfd, +0x1f,0xff,0x83,0x0,0xb0,0x1,0xbf,0x2,0x8e,0x3,0xea,0x3, +0xd9,0x3,0x64,0x3,0xb2,0x2,0x23,0x2,0xc2,0x1,0x62,0x1, +0x22,0x1,0x30,0x1,0x99,0x1,0x6e,0x2,0x67,0x3,0x3,0x4, +0x5e,0x4,0xc8,0x4,0xfd,0x4,0xae,0x4,0xf1,0x3,0xd7,0x2, +0x78,0x1,0x32,0x0,0x45,0xff,0x9f,0xfe,0x4e,0xfe,0x95,0xfe, +0x8e,0xff,0xfa,0x0,0x78,0x2,0xb9,0x3,0x9b,0x4,0xef,0x4, +0x71,0x4,0x30,0x3,0x78,0x1,0x64,0xff,0x40,0xfd,0xbf,0xfb, +0x1c,0xfb,0x3,0xfb,0x7a,0xfb,0xa5,0xfc,0x25,0xfe,0xa5,0xff, +0x19,0x1,0x53,0x2,0x1a,0x3,0x63,0x3,0x38,0x3,0xab,0x2, +0xce,0x1,0xac,0x0,0x81,0xff,0x87,0xfe,0xaf,0xfd,0xf2,0xfc, +0x81,0xfc,0x6d,0xfc,0x99,0xfc,0xce,0xfc,0xe0,0xfc,0xee,0xfc, +0x1,0xfd,0xbb,0xfc,0xf8,0xfb,0xf4,0xfa,0xa8,0xf9,0xc,0xf8, +0x7f,0xf6,0x31,0xf5,0x25,0xf4,0xb5,0xf3,0x5c,0xf4,0x6c,0xf6, +0x18,0xfa,0x2e,0xff,0x32,0x5,0x9f,0xb,0x7f,0x11,0xa9,0x15, +0xc2,0x17,0xb0,0x17,0xa9,0x14,0x47,0xe,0xa8,0x5,0x87,0xfc, +0x48,0xf4,0x14,0xee,0xf0,0xea,0x4c,0xeb,0xb1,0xee,0x5d,0xf4, +0xa3,0xfb,0x45,0x3,0xa7,0x9,0x2c,0xe,0xf9,0x10,0xcc,0x11, +0x68,0x10,0x35,0xd,0xed,0x8,0x8d,0x4,0xda,0x0,0xce,0xfd, +0x58,0xfb,0xfb,0xf9,0x6,0xfa,0x20,0xfb,0x9e,0xfc,0x6,0xfe, +0x73,0xff,0xd9,0x0,0x54,0x1,0x67,0x0,0xc0,0xfe,0xd3,0xfc, +0x9a,0xfa,0xb4,0xf8,0xc9,0xf7,0x71,0xf7,0x2a,0xf7,0x5e,0xf7, +0x8f,0xf8,0x30,0xfa,0x48,0xfb,0xd3,0xfb,0x95,0xfc,0xc4,0xfd, +0xcf,0xfe,0x83,0xff,0x93,0x0,0x7e,0x2,0x8c,0x4,0xfb,0x5, +0xf8,0x6,0x51,0x7,0x3b,0x6,0xf3,0x3,0x48,0x1,0x28,0xfe, +0x9f,0xfa,0xb3,0xf7,0x31,0xf6,0x12,0xf6,0x1f,0xf7,0x40,0xf9, +0x55,0xfc,0x1c,0x0,0x41,0x4,0x4a,0x8,0x64,0xb,0x2,0xd, +0x5c,0xd,0x92,0xc,0x53,0xa,0xee,0x6,0x3a,0x3,0xbc,0xff, +0xd7,0xfc,0x7,0xfb,0xa2,0xfa,0xaf,0xfb,0xd0,0xfd,0x80,0x0, +0x52,0x3,0x8f,0x5,0x7c,0x6,0x2c,0x6,0xef,0x4,0xb6,0x2, +0xc7,0xff,0xc6,0xfc,0x8,0xfa,0xbd,0xf7,0x3f,0xf6,0xd0,0xf5, +0x84,0xf6,0x38,0xf8,0x88,0xfa,0x4,0xfd,0x52,0xff,0x3d,0x1, +0xb8,0x2,0xcd,0x3,0x78,0x4,0x8b,0x4,0xe3,0x3,0xee,0x2, +0xf7,0x1,0x8d,0x0,0xd4,0xfe,0xb6,0xfd,0xc,0xfd,0x25,0xfc, +0x55,0xfb,0xe6,0xfa,0x84,0xfa,0x74,0xfa,0x16,0xfb,0x21,0xfc, +0x74,0xfd,0x2a,0xff,0x11,0x1,0xfc,0x2,0x9c,0x4,0x97,0x5, +0x37,0x6,0xc2,0x6,0xc0,0x6,0x6,0x6,0xc,0x5,0x12,0x4, +0x33,0x3,0xa4,0x2,0x6b,0x2,0x7d,0x2,0xc1,0x2,0xf3,0x2, +0x8,0x3,0xff,0x2,0x7e,0x2,0x76,0x1,0x67,0x0,0x66,0xff, +0x1d,0xfe,0xdb,0xfc,0x6c,0xfc,0xec,0xfc,0xe5,0xfd,0x41,0xff, +0x1d,0x1,0x10,0x3,0x95,0x4,0x9f,0x5,0x9,0x6,0x5b,0x5, +0xa1,0x3,0x86,0x1,0x68,0xff,0x4d,0xfd,0x85,0xfb,0x84,0xfa, +0x4a,0xfa,0xb2,0xfa,0xb2,0xfb,0xf,0xfd,0x71,0xfe,0xab,0xff, +0x8b,0x0,0xd3,0x0,0xa1,0x0,0x31,0x0,0x89,0xff,0xc7,0xfe, +0x26,0xfe,0xab,0xfd,0x57,0xfd,0x6e,0xfd,0x28,0xfe,0x60,0xff, +0xae,0x0,0xb6,0x1,0x49,0x2,0x44,0x2,0x95,0x1,0x4e,0x0, +0x69,0xfe,0xed,0xfb,0x2b,0xf9,0x4a,0xf6,0x48,0xf3,0xd7,0xf0, +0xcc,0xef,0xf3,0xef,0xf,0xf1,0xd4,0xf3,0x9c,0xf8,0xb7,0xfe, +0x8c,0x5,0xa4,0xc,0xd0,0x12,0xd7,0x16,0x8e,0x18,0x24,0x18, +0xf6,0x14,0x74,0xe,0xc6,0x5,0x12,0xfd,0x92,0xf5,0xde,0xef, +0xe0,0xec,0xd,0xed,0x1,0xf0,0x47,0xf5,0x1b,0xfc,0xc,0x3, +0xf6,0x8,0x62,0xd,0xea,0xf,0x5c,0x10,0xd5,0xe,0x5f,0xb, +0x94,0x6,0xd9,0x1,0xb,0xfe,0xf5,0xfa,0x92,0xf8,0xb9,0xf7, +0x7,0xf9,0xcc,0xfb,0xd2,0xfe,0xd0,0x1,0xdc,0x4,0xa,0x7, +0x62,0x7,0x2b,0x6,0xe0,0x3,0x73,0x0,0x41,0xfc,0x49,0xf8, +0x26,0xf5,0xcd,0xf2,0x47,0xf1,0x25,0xf1,0xbc,0xf2,0x49,0xf5, +0xc1,0xf7,0x2d,0xfa,0x21,0xfd,0x4d,0x0,0xc2,0x2,0x54,0x4, +0xac,0x5,0xe7,0x6,0x75,0x7,0x4c,0x7,0xa2,0x6,0x3,0x5, +0x6f,0x2,0xf6,0xff,0x0,0xfe,0xe5,0xfb,0xb7,0xf9,0x6d,0xf8, +0x60,0xf8,0x2c,0xf9,0x98,0xfa,0x9c,0xfc,0xed,0xfe,0x61,0x1, +0x30,0x4,0x29,0x7,0x49,0x9,0xfe,0x9,0xba,0x9,0xec,0x8, +0x66,0x7,0xb,0x5,0x49,0x2,0xd0,0xff,0x3,0xfe,0xf,0xfd, +0x30,0xfd,0x5d,0xfe,0x2b,0x0,0x4c,0x2,0x77,0x4,0x1c,0x6, +0xcd,0x6,0x66,0x6,0xd9,0x4,0x6e,0x2,0xa1,0xff,0xbc,0xfc, +0xfe,0xf9,0xcd,0xf7,0x79,0xf6,0x2e,0xf6,0xe9,0xf6,0x8a,0xf8, +0xf6,0xfa,0xaf,0xfd,0xeb,0xff,0x75,0x1,0x91,0x2,0x2e,0x3, +0x11,0x3,0x53,0x2,0x5b,0x1,0x72,0x0,0x7f,0xff,0xa5,0xfe, +0x8a,0xfe,0x15,0xff,0x5b,0xff,0x43,0xff,0x52,0xff,0x62,0xff, +0x2b,0xff,0xe6,0xfe,0xbe,0xfe,0xa4,0xfe,0xa4,0xfe,0xff,0xfe, +0xd9,0xff,0xc9,0x0,0x53,0x1,0xb9,0x1,0x59,0x2,0xf6,0x2, +0x3b,0x3,0x23,0x3,0x17,0x3,0x96,0x3,0x4e,0x4,0x91,0x4, +0x94,0x4,0x9b,0x4,0x51,0x4,0xde,0x3,0x8d,0x3,0xfc,0x2, +0x1c,0x2,0x51,0x1,0x82,0x0,0x7f,0xff,0x5f,0xfe,0x41,0xfd, +0xae,0xfc,0x1d,0xfd,0xa,0xfe,0xf3,0xfe,0x2e,0x0,0xdc,0x1, +0x86,0x3,0xc8,0x4,0x4d,0x5,0xd9,0x4,0xad,0x3,0x2b,0x2, +0x66,0x0,0x99,0xfe,0x32,0xfd,0x3a,0xfc,0x8c,0xfb,0x55,0xfb, +0xa2,0xfb,0x29,0xfc,0xf4,0xfc,0x21,0xfe,0x40,0xff,0xe,0x0, +0xb9,0x0,0x2e,0x1,0x61,0x1,0x95,0x1,0x8f,0x1,0xe0,0x0, +0xee,0xff,0x58,0xff,0x14,0xff,0xe5,0xfe,0xdc,0xfe,0x2b,0xff, +0xc6,0xff,0x38,0x0,0x34,0x0,0xf3,0xff,0x77,0xff,0x4c,0xfe, +0x65,0xfc,0x2f,0xfa,0xd8,0xf7,0x6e,0xf5,0x70,0xf3,0x7c,0xf2, +0xbe,0xf2,0x28,0xf4,0xed,0xf6,0x48,0xfb,0xf9,0x0,0x4b,0x7, +0x4f,0xd,0xb,0x12,0xd9,0x14,0x88,0x15,0xe5,0x13,0xa3,0xf, +0xf,0x9,0x56,0x1,0xd1,0xf9,0x60,0xf3,0xb0,0xee,0xbe,0xec, +0x34,0xee,0x7f,0xf2,0x5d,0xf8,0xed,0xfe,0x6d,0x5,0xcf,0xa, +0x4d,0xe,0xc7,0xf,0x48,0xf,0xdd,0xc,0xc7,0x8,0xc4,0x3, +0x20,0xff,0xb3,0xfb,0x39,0xf9,0xa9,0xf7,0xe6,0xf7,0x28,0xfa, +0x7b,0xfd,0x0,0x1,0x6a,0x4,0x7f,0x7,0x9e,0x9,0xde,0x9, +0x3c,0x8,0xaa,0x5,0x4f,0x2,0xb7,0xfd,0xa5,0xf8,0x52,0xf4, +0xe7,0xf0,0x7b,0xee,0xd1,0xed,0x4a,0xef,0x5e,0xf2,0x38,0xf6, +0x66,0xfa,0xe4,0xfe,0x3a,0x3,0x7b,0x6,0x95,0x8,0x2c,0xa, +0x1e,0xb,0xbe,0xa,0x1d,0x9,0xd6,0x6,0x1f,0x4,0x11,0x1, +0x20,0xfe,0x7c,0xfb,0xd1,0xf8,0x61,0xf6,0x21,0xf5,0x67,0xf5, +0xa6,0xf6,0x74,0xf8,0xfb,0xfa,0x50,0xfe,0xed,0x1,0x25,0x5, +0xcb,0x7,0xa7,0x9,0x45,0xa,0xd6,0x9,0xeb,0x8,0x7c,0x7, +0x79,0x5,0x4f,0x3,0x68,0x1,0x21,0x0,0xa7,0xff,0xbb,0xff, +0x59,0x0,0xa5,0x1,0x1b,0x3,0x26,0x4,0xb5,0x4,0x82,0x4, +0x3c,0x3,0x24,0x1,0xa1,0xfe,0xf,0xfc,0xcb,0xf9,0xda,0xf7, +0x4f,0xf6,0xc5,0xf5,0x8e,0xf6,0x42,0xf8,0x90,0xfa,0x65,0xfd, +0x4b,0x0,0xba,0x2,0xab,0x4,0x29,0x6,0xea,0x6,0xdb,0x6, +0x25,0x6,0xcc,0x4,0x0,0x3,0x6,0x1,0xd6,0xfe,0xb1,0xfc, +0xe,0xfb,0xab,0xf9,0x5e,0xf8,0xe7,0xf7,0x82,0xf8,0x92,0xf9, +0xf7,0xfa,0xdb,0xfc,0x7,0xff,0x3d,0x1,0x26,0x3,0x68,0x4, +0x35,0x5,0xd2,0x5,0xc,0x6,0xc8,0x5,0x3c,0x5,0x7c,0x4, +0x9f,0x3,0x16,0x3,0x35,0x3,0x9d,0x3,0xd1,0x3,0xe7,0x3, +0xef,0x3,0x89,0x3,0xb0,0x2,0xab,0x1,0x72,0x0,0xf8,0xfe, +0x5a,0xfd,0xc8,0xfb,0xbf,0xfa,0x8b,0xfa,0x1,0xfb,0x43,0xfc, +0x40,0xfe,0x2b,0x0,0xc2,0x1,0x4e,0x3,0x42,0x4,0x1c,0x4, +0x59,0x3,0x73,0x2,0x67,0x1,0x41,0x0,0x53,0xff,0xf1,0xfe, +0xf4,0xfe,0x6,0xff,0x4c,0xff,0xa9,0xff,0x89,0xff,0xd9,0xfe, +0xc7,0xfd,0x50,0xfc,0xec,0xfa,0x1a,0xfa,0xc5,0xf9,0xec,0xf9, +0x7f,0xfa,0x4a,0xfb,0xb3,0xfc,0xce,0xfe,0xcc,0x0,0x8d,0x2, +0x81,0x4,0x5c,0x6,0xcc,0x7,0xcf,0x8,0x20,0x9,0xb8,0x8, +0xca,0x7,0x3a,0x6,0x31,0x4,0x15,0x2,0xe6,0xff,0xc7,0xfd, +0x32,0xfc,0x32,0xfb,0x97,0xfa,0x93,0xfa,0x6d,0xfb,0xf1,0xfc, +0x95,0xfe,0x31,0x0,0xe2,0x1,0x69,0x3,0x8b,0x4,0x2f,0x5, +0xd9,0x4,0x89,0x3,0xdd,0x1,0xa9,0xff,0x92,0xfc,0x51,0xf9, +0x9a,0xf6,0xa0,0xf4,0xc1,0xf3,0x22,0xf4,0xda,0xf5,0x21,0xf9, +0x61,0xfd,0xd8,0x1,0x69,0x6,0x41,0xa,0x44,0xc,0xa3,0xc, +0x4f,0xb,0x4d,0x7,0x22,0x1,0xae,0xfa,0x26,0xf5,0x20,0xf1, +0x1d,0xef,0x77,0xef,0x58,0xf2,0x37,0xf7,0xf1,0xfc,0xe1,0x2, +0x8a,0x8,0xd5,0xc,0x2,0xf,0x2a,0xf,0x82,0xd,0x2f,0xa, +0xea,0x5,0xea,0x1,0xe5,0xfe,0xad,0xfc,0x15,0xfb,0x7a,0xfa, +0x3b,0xfb,0x3d,0xfd,0xc8,0xff,0x1f,0x2,0x5b,0x4,0x74,0x6, +0x41,0x7,0x25,0x6,0x23,0x4,0x18,0x2,0xec,0xff,0x9d,0xfd, +0x9a,0xfb,0x77,0xfa,0x53,0xfa,0xae,0xfa,0x72,0xfb,0xe2,0xfc, +0x15,0xfe,0x23,0xfe,0x15,0xfe,0xc7,0xfe,0x2b,0xff,0xcc,0xfe, +0xf3,0xfe,0x2f,0x0,0x90,0x1,0x53,0x2,0xa4,0x2,0xd5,0x2, +0x9e,0x2,0x86,0x1,0xb7,0xff,0x8e,0xfd,0xf1,0xfa,0x62,0xf8, +0x27,0xf7,0x65,0xf7,0x1f,0xf8,0x49,0xf9,0x91,0xfb,0x9c,0xfe, +0x8c,0x1,0x2e,0x4,0x70,0x6,0xd9,0x7,0x1d,0x8,0x5f,0x7, +0xdd,0x5,0xcf,0x3,0x82,0x1,0x70,0xff,0xfc,0xfd,0x24,0xfd, +0x0,0xfd,0x0,0xfe,0xfe,0xff,0x26,0x2,0x2f,0x4,0x2f,0x6, +0xa1,0x7,0xd,0x8,0x99,0x7,0x33,0x6,0x9f,0x3,0x70,0x0, +0x80,0xfd,0x15,0xfb,0x3c,0xf9,0x44,0xf8,0x8c,0xf8,0x7,0xfa, +0x16,0xfc,0x45,0xfe,0xa2,0x0,0xfe,0x2,0xf1,0x4,0x56,0x6, +0xde,0x6,0x33,0x6,0xcd,0x4,0x21,0x3,0xd8,0x0,0xf8,0xfd, +0x4b,0xfb,0x41,0xf9,0xe6,0xf7,0x80,0xf7,0x26,0xf8,0x71,0xf9, +0xfc,0xfa,0xe0,0xfc,0x2b,0xff,0x34,0x1,0x3d,0x2,0x88,0x2, +0xa7,0x2,0x81,0x2,0xd2,0x1,0xd9,0x0,0xd9,0xff,0xd5,0xfe, +0x3,0xfe,0xc3,0xfd,0x32,0xfe,0x20,0xff,0x5a,0x0,0xb9,0x1, +0x17,0x3,0x4e,0x4,0x29,0x5,0x76,0x5,0x2a,0x5,0x37,0x4, +0x91,0x2,0x83,0x0,0x8a,0xfe,0xe8,0xfc,0xc3,0xfb,0x60,0xfb, +0x1b,0xfc,0xf1,0xfd,0x29,0x0,0x15,0x2,0xde,0x3,0xb1,0x5, +0xfa,0x6,0x4f,0x7,0xcb,0x6,0x83,0x5,0xa5,0x3,0xab,0x1, +0xe5,0xff,0x4f,0xfe,0xd3,0xfc,0xbc,0xfb,0x8d,0xfb,0x1d,0xfc, +0xaf,0xfc,0xe,0xfd,0x8e,0xfd,0x2f,0xfe,0xb2,0xfe,0xb,0xff, +0x3f,0xff,0x7,0xff,0x3a,0xfe,0x73,0xfd,0x35,0xfd,0x2,0xfd, +0xc1,0xfc,0x5d,0xfd,0xd6,0xfe,0x33,0x0,0x5e,0x1,0xb1,0x2, +0xe0,0x3,0x7a,0x4,0x59,0x4,0xb3,0x3,0xcf,0x2,0x5e,0x1, +0x3a,0xff,0x47,0xfd,0x5,0xfc,0xa,0xfb,0x69,0xfa,0x81,0xfa, +0x3c,0xfb,0x87,0xfc,0x60,0xfe,0x6e,0x0,0x6d,0x2,0x3a,0x4, +0x97,0x5,0x68,0x6,0xc1,0x6,0xb1,0x6,0x27,0x6,0x1,0x5, +0x7f,0x3,0x27,0x2,0x6,0x1,0xf4,0xff,0x33,0xff,0xf9,0xfe, +0x15,0xff,0x39,0xff,0x35,0xff,0x2f,0xff,0x31,0xff,0xc5,0xfe, +0xbd,0xfd,0x80,0xfc,0x29,0xfb,0xca,0xf9,0xd,0xf9,0x77,0xf9, +0xd9,0xfa,0xcb,0xfc,0x10,0xff,0x82,0x1,0xee,0x3,0x1b,0x6, +0xa5,0x7,0x9e,0x7,0x66,0x5,0xf6,0x1,0xca,0xfe,0x70,0xfc, +0x10,0xfb,0xaa,0xfa,0xdd,0xfa,0xce,0xfb,0xc0,0xfd,0xe4,0xff, +0x33,0x1,0x82,0x1,0x1a,0x1,0x62,0x0,0x83,0xff,0x44,0xfe, +0xef,0xfc,0x22,0xfc,0xf3,0xfb,0x7e,0xfc,0xfe,0xfd,0xc9,0xff, +0x3b,0x1,0xdd,0x2,0xc,0x5,0xe8,0x6,0x9f,0x7,0x6f,0x7, +0xc7,0x6,0x83,0x5,0x6c,0x3,0xf3,0x0,0xdb,0xfe,0x83,0xfd, +0xaf,0xfc,0x15,0xfc,0xb,0xfc,0xf4,0xfc,0x3f,0xfe,0x1e,0xff, +0x91,0xff,0xc0,0xff,0x7b,0xff,0xf8,0xfe,0xbe,0xfe,0xd4,0xfe, +0xf9,0xfe,0x4a,0xff,0x29,0x0,0x74,0x1,0x5a,0x2,0x61,0x2, +0x20,0x2,0x2c,0x2,0x11,0x2,0x1,0x1,0x31,0xff,0x9f,0xfd, +0xbb,0xfc,0x47,0xfc,0x26,0xfc,0x4d,0xfc,0xa1,0xfc,0x5f,0xfd, +0xa6,0xfe,0xfb,0xff,0xef,0x0,0x67,0x1,0x7f,0x1,0x88,0x1, +0x7f,0x1,0x0,0x1,0x2b,0x0,0x79,0xff,0x0,0xff,0xcf,0xfe, +0xb,0xff,0xa7,0xff,0xb1,0x0,0x18,0x2,0x3d,0x3,0xb0,0x3, +0x9b,0x3,0x4b,0x3,0xd2,0x2,0x0,0x2,0xe3,0x0,0x7,0x0, +0x8d,0xff,0xc,0xff,0x90,0xfe,0x6f,0xfe,0xa5,0xfe,0x4,0xff, +0x4b,0xff,0x41,0xff,0x25,0xff,0x2f,0xff,0x5a,0xff,0xe2,0xff, +0xd3,0x0,0xa7,0x1,0x19,0x2,0x61,0x2,0x7e,0x2,0x1e,0x2, +0x22,0x1,0xde,0xff,0xc4,0xfe,0xd8,0xfd,0xde,0xfc,0xe6,0xfb, +0x3a,0xfb,0x2e,0xfb,0xd5,0xfb,0xc5,0xfc,0xbe,0xfd,0x6,0xff, +0x9d,0x0,0x8,0x2,0xe6,0x2,0x1e,0x3,0xda,0x2,0x37,0x2, +0xe,0x1,0x92,0xff,0x4d,0xfe,0x4d,0xfd,0x97,0xfc,0x9d,0xfc, +0x64,0xfd,0x8d,0xfe,0xfb,0xff,0x7e,0x1,0xca,0x2,0xb9,0x3, +0xff,0x3,0x79,0x3,0xa8,0x2,0xe6,0x1,0xf2,0x0,0xa9,0xff, +0x68,0xfe,0xbd,0xfd,0xd5,0xfd,0x52,0xfe,0xc,0xff,0x3b,0x0, +0xb7,0x1,0x11,0x3,0x17,0x4,0x96,0x4,0x73,0x4,0xe9,0x3, +0x8,0x3,0xb2,0x1,0x1a,0x0,0x90,0xfe,0x4f,0xfd,0x99,0xfc, +0x7b,0xfc,0xcd,0xfc,0x75,0xfd,0x63,0xfe,0x9d,0xff,0xfe,0x0, +0xde,0x1,0xee,0x1,0xb6,0x1,0x6b,0x1,0xae,0x0,0x92,0xff, +0x6a,0xfe,0x51,0xfd,0x97,0xfc,0x85,0xfc,0xeb,0xfc,0xad,0xfd, +0xbd,0xfe,0xd5,0xff,0xe4,0x0,0xd4,0x1,0x4f,0x2,0x77,0x2, +0xa0,0x2,0x5a,0x2,0x4f,0x1,0x9,0x0,0xef,0xfe,0xe8,0xfd, +0xfc,0xfc,0x46,0xfc,0xdc,0xfb,0xfc,0xfb,0xbc,0xfc,0xf1,0xfd, +0x7d,0xff,0x38,0x1,0xe5,0x2,0x6b,0x4,0x96,0x5,0xf1,0x5, +0x6f,0x5,0x93,0x4,0x86,0x3,0xfe,0x1,0x39,0x0,0xd3,0xfe, +0xe6,0xfd,0x6b,0xfd,0x8c,0xfd,0x3,0xfe,0x84,0xfe,0x54,0xff, +0x6f,0x0,0x48,0x1,0x83,0x1,0xe7,0x0,0x89,0xff,0x1e,0xfe, +0x27,0xfd,0xa2,0xfc,0xc7,0xfc,0x9f,0xfd,0xa7,0xfe,0xc2,0xff, +0x2b,0x1,0xb6,0x2,0xf2,0x3,0x30,0x4,0xc1,0x2,0x19,0x0, +0xb8,0xfd,0xbc,0xfc,0x1b,0xfd,0x1,0xfe,0xad,0xfe,0x28,0xff, +0xca,0xff,0x72,0x0,0xa8,0x0,0x13,0x0,0xc3,0xfe,0x3e,0xfd, +0x23,0xfc,0xb2,0xfb,0xa9,0xfb,0xe2,0xfb,0xd7,0xfc,0xc1,0xfe, +0xe3,0x0,0x9d,0x2,0x3,0x4,0x6,0x5,0x80,0x5,0x8e,0x5, +0xed,0x4,0x5b,0x3,0x51,0x1,0x55,0xff,0x7a,0xfd,0xe4,0xfb, +0xd3,0xfa,0xa2,0xfa,0xa3,0xfb,0x83,0xfd,0x9c,0xff,0xcb,0x1, +0xf8,0x3,0x97,0x5,0xf,0x6,0x9,0x5,0xc5,0x2,0x4b,0x0, +0x51,0xfe,0xba,0xfc,0xa2,0xfb,0x7f,0xfb,0x25,0xfc,0x19,0xfd, +0x6f,0xfe,0x28,0x0,0x95,0x1,0x76,0x2,0x66,0x3,0x5d,0x4, +0x72,0x4,0x8c,0x3,0x99,0x2,0x11,0x2,0x70,0x1,0x6,0x0, +0x4,0xfe,0x5f,0xfc,0x70,0xfb,0xe1,0xfa,0xd0,0xfa,0x5c,0xfb, +0xff,0xfb,0xb8,0xfc,0x1,0xfe,0x73,0xff,0x25,0x0,0x2,0x0, +0xc3,0xff,0x5,0x0,0xb1,0x0,0x6d,0x1,0x50,0x2,0x6f,0x3, +0x42,0x4,0x53,0x4,0xb8,0x3,0xd1,0x2,0xce,0x1,0x81,0x0, +0xe7,0xfe,0x6b,0xfd,0x39,0xfc,0x66,0xfb,0x7d,0xfb,0x8b,0xfc, +0xe9,0xfd,0x5e,0xff,0xec,0x0,0x54,0x2,0x78,0x3,0x5,0x4, +0x9c,0x3,0xc4,0x2,0x14,0x2,0x40,0x1,0x1d,0x0,0xf1,0xfe, +0xdb,0xfd,0x3b,0xfd,0x81,0xfd,0x66,0xfe,0x82,0xff,0xd7,0x0, +0x43,0x2,0x58,0x3,0xdf,0x3,0xf2,0x3,0x89,0x3,0x58,0x2, +0x5b,0x0,0xe,0xfe,0xf9,0xfb,0x85,0xfa,0x0,0xfa,0x6e,0xfa, +0xb5,0xfb,0x82,0xfd,0x48,0xff,0xf2,0x0,0x95,0x2,0x84,0x3, +0x48,0x3,0x65,0x2,0x4a,0x1,0x1a,0x0,0x19,0xff,0x40,0xfe, +0x9d,0xfd,0xb9,0xfd,0x7e,0xfe,0x42,0xff,0xef,0xff,0xb0,0x0, +0x60,0x1,0xcb,0x1,0xb5,0x1,0x16,0x1,0x54,0x0,0xac,0xff, +0x1f,0xff,0xd9,0xfe,0xf2,0xfe,0x33,0xff,0x76,0xff,0xf2,0xff, +0xeb,0x0,0x0,0x2,0x7c,0x2,0x7c,0x2,0x75,0x2,0x1f,0x2, +0x55,0x1,0xa0,0x0,0x17,0x0,0x6c,0xff,0xb1,0xfe,0x20,0xfe, +0xe2,0xfd,0xf9,0xfd,0x31,0xfe,0x8f,0xfe,0x2e,0xff,0xc0,0xff, +0x3d,0x0,0xde,0x0,0x41,0x1,0x37,0x1,0x4a,0x1,0x84,0x1, +0x7e,0x1,0x3b,0x1,0xc6,0x0,0x1f,0x0,0x81,0xff,0xfb,0xfe, +0x8c,0xfe,0x69,0xfe,0x80,0xfe,0xac,0xfe,0xf5,0xfe,0x2b,0xff, +0x3d,0xff,0x71,0xff,0x95,0xff,0x46,0xff,0xc2,0xfe,0x49,0xfe, +0xe0,0xfd,0xdd,0xfd,0x6a,0xfe,0x2a,0xff,0xda,0xff,0xa1,0x0, +0xa2,0x1,0xb7,0x2,0x83,0x3,0xde,0x3,0xff,0x3,0xfc,0x3, +0xa8,0x3,0xf4,0x2,0xb,0x2,0x3,0x1,0xc1,0xff,0x3c,0xfe, +0x83,0xfc,0xb4,0xfa,0x38,0xf9,0xa5,0xf8,0x32,0xf9,0xce,0xfa, +0x46,0xfd,0x22,0x0,0x1f,0x3,0x53,0x6,0x31,0x9,0xae,0xa, +0x51,0xa,0x1a,0x8,0x3c,0x4,0x9d,0xff,0xa2,0xfb,0x3b,0xf9, +0x68,0xf8,0xa3,0xf8,0xb4,0xf9,0xd3,0xfb,0xd7,0xfe,0xf1,0x1, +0x3f,0x4,0x5a,0x5,0x5c,0x5,0xa3,0x4,0x79,0x3,0xde,0x1, +0xc7,0xff,0x8f,0xfd,0xe8,0xfb,0x22,0xfb,0xfd,0xfa,0x37,0xfb, +0xcb,0xfb,0xea,0xfc,0xd3,0xfe,0x47,0x1,0x7a,0x3,0xc0,0x4, +0xf,0x5,0xcb,0x4,0x24,0x4,0xf5,0x2,0x7c,0x1,0x30,0x0, +0xfb,0xfe,0xc8,0xfd,0xfa,0xfc,0xc3,0xfc,0x14,0xfd,0xce,0xfd, +0x61,0xfe,0x61,0xfe,0x3f,0xfe,0x8d,0xfe,0x3d,0xff,0xfa,0xff, +0xb0,0x0,0xa7,0x1,0xb3,0x2,0x19,0x3,0xd4,0x2,0x85,0x2, +0x34,0x2,0xbb,0x1,0x5d,0x1,0x7,0x1,0x63,0x0,0xa7,0xff, +0x72,0xff,0xde,0xff,0x3b,0x0,0xd0,0xff,0xe6,0xfe,0x50,0xfe, +0x4b,0xfe,0x89,0xfe,0xdc,0xfe,0x57,0xff,0xea,0xff,0x4c,0x0, +0x60,0x0,0x3d,0x0,0xd6,0xff,0x40,0xff,0xcb,0xfe,0xb6,0xfe, +0x2c,0xff,0x26,0x0,0x4a,0x1,0x66,0x2,0x5f,0x3,0xd3,0x3, +0xa8,0x3,0xf3,0x2,0x86,0x1,0xa6,0xff,0x11,0xfe,0xf2,0xfc, +0x11,0xfc,0x5f,0xfb,0xef,0xfa,0x25,0xfb,0x53,0xfc,0x23,0xfe, +0x14,0x0,0xc7,0x1,0xf9,0x2,0xc3,0x3,0x32,0x4,0xb,0x4, +0x65,0x3,0x67,0x2,0xb,0x1,0xa0,0xff,0x71,0xfe,0x92,0xfd, +0x58,0xfd,0xc5,0xfd,0x67,0xfe,0x20,0xff,0xe8,0xff,0xb7,0x0, +0xce,0x1,0xf6,0x2,0x87,0x3,0x56,0x3,0x75,0x2,0x1a,0x1, +0xe0,0xff,0xee,0xfe,0x9,0xfe,0x77,0xfd,0x62,0xfd,0x90,0xfd, +0x1f,0xfe,0x2d,0xff,0x58,0x0,0x22,0x1,0x3d,0x1,0xd5,0x0, +0x4f,0x0,0xab,0xff,0x3,0xff,0xe3,0xfe,0x66,0xff,0x32,0x0, +0xc,0x1,0xc7,0x1,0x46,0x2,0x76,0x2,0x35,0x2,0xa2,0x1, +0xd9,0x0,0x9d,0xff,0x2b,0xfe,0x30,0xfd,0xca,0xfc,0xb4,0xfc, +0xf,0xfd,0x37,0xfe,0xf5,0xff,0x6d,0x1,0x44,0x2,0xf7,0x2, +0x78,0x3,0x54,0x3,0xdc,0x2,0x3d,0x2,0xf,0x1,0x92,0xff, +0x67,0xfe,0xa6,0xfd,0x5c,0xfd,0x95,0xfd,0x2b,0xfe,0x22,0xff, +0x5a,0x0,0x5d,0x1,0x19,0x2,0xbc,0x2,0x20,0x3,0xf2,0x2, +0x31,0x2,0x3e,0x1,0x63,0x0,0x79,0xff,0x7c,0xfe,0xb3,0xfd, +0x24,0xfd,0xda,0xfc,0x16,0xfd,0xba,0xfd,0x73,0xfe,0x2b,0xff, +0xf2,0xff,0xe5,0x0,0xe4,0x1,0x76,0x2,0x8c,0x2,0x76,0x2, +0x34,0x2,0xcf,0x1,0x81,0x1,0xa,0x1,0x1a,0x0,0xf8,0xfe, +0x15,0xfe,0x9e,0xfd,0x95,0xfd,0xd4,0xfd,0x46,0xfe,0xf9,0xfe, +0xf2,0xff,0x1a,0x1,0x37,0x2,0xb,0x3,0x84,0x3,0x93,0x3, +0xf,0x3,0xc8,0x1,0x91,0xff,0xb1,0xfc,0xf1,0xf9,0xe8,0xf7, +0xf3,0xf6,0x8b,0xf7,0xc9,0xf9,0x2f,0xfd,0x17,0x1,0x6,0x5, +0xad,0x8,0xa1,0xb,0x6,0xd,0xb,0xc,0x75,0x8,0xed,0x2, +0x2d,0xfd,0xd9,0xf8,0x41,0xf6,0x23,0xf5,0x51,0xf5,0xac,0xf6, +0x92,0xf9,0x1,0xfe,0x75,0x2,0x8b,0x5,0x36,0x7,0xa6,0x7, +0x18,0x7,0xcb,0x5,0x8d,0x3,0xda,0x0,0xd6,0xfe,0x86,0xfd, +0x6b,0xfc,0xc8,0xfb,0xcb,0xfb,0x63,0xfc,0xc2,0xfd,0xa3,0xff, +0x49,0x1,0x63,0x2,0xf9,0x2,0x1b,0x3,0xbf,0x2,0xc9,0x1, +0x85,0x0,0x76,0xff,0xb1,0xfe,0xf9,0xfd,0xe,0xfd,0x54,0xfc, +0xda,0xfc,0x7d,0xfe,0xd0,0xff,0x4e,0x0,0x5a,0x0,0x52,0x0, +0xcc,0x0,0x87,0x1,0x6e,0x1,0xc3,0x0,0x71,0x0,0x49,0x0, +0x13,0x0,0xd8,0xff,0x48,0xff,0xb6,0xfe,0xce,0xfe,0x49,0xff, +0x87,0xff,0x46,0xff,0xf5,0xfe,0x88,0xff,0x9b,0x0,0xb6,0x0, +0x15,0x0,0xeb,0xff,0x3d,0x0,0xad,0x0,0x19,0x1,0x3e,0x1, +0x1b,0x1,0xc5,0x0,0x6a,0x0,0x78,0x0,0x90,0x0,0xfa,0xff, +0x5b,0xff,0x76,0xff,0xbc,0xff,0xba,0xff,0xc2,0xff,0xc,0x0, +0x54,0x0,0x16,0x0,0x89,0xff,0x7c,0xff,0xab,0xff,0x61,0xff, +0x22,0xff,0x6e,0xff,0xc5,0xff,0xea,0xff,0x14,0x0,0x56,0x0, +0x99,0x0,0xcc,0x0,0xa,0x1,0x54,0x1,0x3b,0x1,0xca,0x0, +0x92,0x0,0x78,0x0,0x1f,0x0,0xb3,0xff,0x40,0xff,0xba,0xfe, +0x60,0xfe,0x49,0xfe,0x60,0xfe,0xaa,0xfe,0xf9,0xfe,0x28,0xff, +0x46,0xff,0x4b,0xff,0x69,0xff,0xe6,0xff,0x91,0x0,0x24,0x1, +0x97,0x1,0xd7,0x1,0xf6,0x1,0x16,0x2,0x6,0x2,0x93,0x1, +0xb1,0x0,0x60,0xff,0xfd,0xfd,0xe5,0xfc,0x14,0xfc,0xc4,0xfb, +0x44,0xfc,0x45,0xfd,0x8f,0xfe,0x48,0x0,0x16,0x2,0x7a,0x3, +0x8d,0x4,0x48,0x5,0x3f,0x5,0x4d,0x4,0xad,0x2,0xbb,0x0, +0xd7,0xfe,0x2e,0xfd,0xfc,0xfb,0xaf,0xfb,0x58,0xfc,0x9f,0xfd, +0x36,0xff,0xd6,0x0,0x46,0x2,0x77,0x3,0x17,0x4,0xab,0x3, +0x3d,0x2,0x55,0x0,0x81,0xfe,0x2a,0xfd,0x73,0xfc,0x35,0xfc, +0x65,0xfc,0x38,0xfd,0xc3,0xfe,0x8b,0x0,0xcf,0x1,0x65,0x2, +0xa5,0x2,0x8d,0x2,0xe4,0x1,0xb2,0x0,0x3e,0xff,0x2,0xfe, +0x65,0xfd,0x67,0xfd,0xea,0xfd,0xe1,0xfe,0x14,0x0,0x50,0x1, +0x56,0x2,0xbf,0x2,0x98,0x2,0x2a,0x2,0x45,0x1,0xdb,0xff, +0x78,0xfe,0x6a,0xfd,0xc7,0xfc,0xec,0xfc,0xef,0xfd,0x53,0xff, +0xb6,0x0,0x14,0x2,0x54,0x3,0xb,0x4,0xf3,0x3,0x29,0x3, +0xea,0x1,0x8a,0x0,0x62,0xff,0x87,0xfe,0x22,0xfe,0x75,0xfe, +0x3b,0xff,0x8,0x0,0xe4,0x0,0xad,0x1,0x6,0x2,0xdb,0x1, +0x2e,0x1,0x9,0x0,0xac,0xfe,0x1f,0xfd,0x60,0xfb,0xda,0xf9, +0xf2,0xf8,0xcd,0xf8,0x9d,0xf9,0x7e,0xfb,0x3a,0xfe,0x42,0x1, +0x6,0x4,0x84,0x6,0xcc,0x8,0x1b,0xa,0x7f,0x9,0xd1,0x6, +0xcc,0x2,0xb6,0xfe,0x7e,0xfb,0x48,0xf9,0xa,0xf8,0xbc,0xf7, +0x60,0xf8,0x45,0xfa,0x30,0xfd,0xff,0xff,0xf7,0x1,0x38,0x3, +0x26,0x4,0xe0,0x4,0xb6,0x4,0x37,0x3,0x85,0x1,0xc6,0x0, +0x96,0x0,0x59,0x0,0x5,0x0,0xaf,0xff,0xc2,0xff,0x78,0x0, +0x35,0x1,0x7e,0x1,0x80,0x1,0x75,0x1,0x67,0x1,0x1d,0x1, +0x3b,0x0,0x1,0xff,0x33,0xfe,0xa,0xfe,0x8,0xfe,0xbe,0xfd, +0x5e,0xfd,0x96,0xfd,0x8a,0xfe,0x3f,0xff,0xec,0xfe,0x49,0xfe, +0x43,0xfe,0x8b,0xfe,0xab,0xfe,0x6,0xff,0xb7,0xff,0xa0,0x0, +0x29,0x2,0xf2,0x3,0x9d,0x4,0xff,0x3,0x1f,0x3,0x59,0x2, +0x2d,0x1,0x14,0xff,0x4f,0xfc,0x28,0xfa,0x6a,0xf9,0x75,0xf9, +0xd6,0xf9,0xc9,0xfa,0x41,0xfc,0x26,0xfe,0xa1,0x0,0x1e,0x3, +0x8d,0x4,0xdb,0x4,0xdf,0x4,0xd1,0x4,0x1b,0x4,0x7c,0x2, +0x64,0x0,0x74,0xfe,0x33,0xfd,0xc0,0xfc,0xd8,0xfc,0x78,0xfd, +0x9c,0xfe,0xd0,0xff,0xed,0x0,0x17,0x2,0xe3,0x2,0xe8,0x2, +0x65,0x2,0x89,0x1,0x5f,0x0,0x2a,0xff,0x3,0xfe,0x9,0xfd, +0x89,0xfc,0x70,0xfc,0xb8,0xfc,0xb4,0xfd,0x19,0xff,0x3f,0x0, +0x31,0x1,0x21,0x2,0xdc,0x2,0x57,0x3,0x82,0x3,0x2c,0x3, +0x61,0x2,0x35,0x1,0xba,0xff,0x56,0xfe,0x3a,0xfd,0x3d,0xfc, +0x81,0xfb,0x18,0xfb,0xe1,0xfa,0x34,0xfb,0x57,0xfc,0xd9,0xfd, +0x51,0xff,0xac,0x0,0xc7,0x1,0x98,0x2,0xc,0x3,0xe5,0x2, +0x4f,0x2,0xaf,0x1,0x12,0x1,0x6c,0x0,0xc1,0xff,0x1a,0xff, +0xb0,0xfe,0xa9,0xfe,0xf7,0xfe,0x6e,0xff,0xa5,0xff,0x98,0xff, +0xf9,0xff,0xd2,0x0,0x40,0x1,0xf,0x1,0xc3,0x0,0x76,0x0, +0xee,0xff,0x14,0xff,0x18,0xfe,0x62,0xfd,0x26,0xfd,0x95,0xfd, +0xed,0xfe,0x95,0x0,0xb4,0x1,0xa5,0x2,0xed,0x3,0xec,0x4, +0xf2,0x4,0x2b,0x4,0x8,0x3,0xc6,0x1,0x6d,0x0,0x9,0xff, +0xc8,0xfd,0xc5,0xfc,0x4,0xfc,0xbf,0xfb,0x1d,0xfc,0xca,0xfc, +0x5b,0xfd,0x1,0xfe,0x1c,0xff,0x44,0x0,0xdc,0x0,0x24,0x1, +0x73,0x1,0x70,0x1,0xfa,0x0,0x6a,0x0,0xf6,0xff,0xb0,0xff, +0xa7,0xff,0xc1,0xff,0xe5,0xff,0x1c,0x0,0x92,0x0,0x61,0x1, +0x36,0x2,0x9e,0x2,0x8c,0x2,0x25,0x2,0x90,0x1,0xee,0x0, +0x2d,0x0,0x5b,0xff,0xa9,0xfe,0xff,0xfd,0x5f,0xfd,0x14,0xfd, +0x28,0xfd,0xb9,0xfd,0x9,0xff,0xa2,0x0,0xd3,0x1,0xa5,0x2, +0x65,0x3,0xb,0x4,0x25,0x4,0x5f,0x3,0x2a,0x2,0xee,0x0, +0x45,0xff,0x1a,0xfd,0xdd,0xfa,0x9a,0xf8,0x84,0xf6,0x63,0xf5, +0xaf,0xf5,0x60,0xf7,0x2f,0xfa,0xbf,0xfd,0x1,0x2,0xa8,0x6, +0xa7,0xa,0xb,0xd,0x48,0xd,0xfb,0xa,0x74,0x6,0xc4,0x0, +0x3a,0xfb,0xf9,0xf6,0x51,0xf4,0x48,0xf3,0x9b,0xf4,0x77,0xf8, +0x71,0xfd,0x20,0x2,0xde,0x5,0x54,0x8,0x95,0x9,0xa4,0x9, +0x35,0x8,0x90,0x5,0x5d,0x2,0x1a,0xff,0x7d,0xfc,0xee,0xfa, +0x14,0xfa,0x2,0xfa,0x3f,0xfb,0x84,0xfd,0xfd,0xff,0x2d,0x2, +0xe8,0x3,0x1a,0x5,0x8f,0x5,0x18,0x5,0xf2,0x3,0x96,0x2, +0x37,0x1,0xc1,0xff,0x3f,0xfe,0x12,0xfd,0xa0,0xfc,0xda,0xfc, +0x47,0xfd,0x50,0xfd,0xaa,0xfc,0xd9,0xfb,0x9e,0xfb,0xeb,0xfb, +0x5b,0xfc,0x1e,0xfd,0x96,0xfe,0xcd,0x0,0x3d,0x3,0xf5,0x4, +0xa0,0x5,0xc7,0x5,0x8e,0x5,0x80,0x4,0x71,0x2,0x9b,0xff, +0xb0,0xfc,0x96,0xfa,0x91,0xf9,0x54,0xf9,0xa9,0xf9,0x67,0xfa, +0xac,0xfb,0xe0,0xfd,0x8c,0x0,0x9e,0x2,0xe7,0x3,0xd1,0x4, +0x4e,0x5,0x25,0x5,0x5b,0x4,0x19,0x3,0x91,0x1,0xf5,0xff, +0x90,0xfe,0xd5,0xfd,0xe2,0xfd,0x6b,0xfe,0x56,0xff,0xab,0x0, +0x20,0x2,0x48,0x3,0xf2,0x3,0xb,0x4,0x99,0x3,0xd1,0x2, +0xcd,0x1,0x5f,0x0,0x9f,0xfe,0xfd,0xfc,0xbb,0xfb,0xf9,0xfa, +0x8,0xfb,0x1,0xfc,0x91,0xfd,0x52,0xff,0xe5,0x0,0x17,0x2, +0xf6,0x2,0x5d,0x3,0x35,0x3,0xdc,0x2,0x64,0x2,0x70,0x1, +0x43,0x0,0x96,0xff,0x57,0xff,0x0,0xff,0x98,0xfe,0x6a,0xfe, +0x56,0xfe,0x28,0xfe,0x5,0xfe,0xb,0xfe,0x2e,0xfe,0x8a,0xfe, +0x25,0xff,0xbb,0xff,0x3e,0x0,0xb1,0x0,0xe5,0x0,0xf5,0x0, +0x1d,0x1,0x2a,0x1,0xf2,0x0,0xb9,0x0,0xbc,0x0,0xf9,0x0, +0x3f,0x1,0x7d,0x1,0xd3,0x1,0x33,0x2,0x68,0x2,0x62,0x2, +0xc,0x2,0x73,0x1,0xe3,0x0,0x55,0x0,0x99,0xff,0xe4,0xfe, +0x64,0xfe,0x2a,0xfe,0x6a,0xfe,0xf4,0xfe,0x5c,0xff,0xc7,0xff, +0x95,0x0,0xe4,0x1,0x85,0x3,0xbe,0x4,0x0,0x5,0x98,0x4, +0xd0,0x3,0x9a,0x2,0x21,0x1,0x8e,0xff,0xeb,0xfd,0x93,0xfc, +0xcf,0xfb,0x81,0xfb,0x8a,0xfb,0xe,0xfc,0x31,0xfd,0xc2,0xfe, +0x4e,0x0,0x80,0x1,0x33,0x2,0x87,0x2,0xca,0x2,0xfe,0x2, +0x6,0x3,0xf0,0x2,0x8f,0x2,0xc5,0x1,0x9,0x1,0x93,0x0, +0x23,0x0,0xd1,0xff,0xbb,0xff,0xc0,0xff,0xe8,0xff,0x35,0x0, +0xbc,0x0,0x97,0x1,0x52,0x2,0x87,0x2,0x73,0x2,0x16,0x2, +0x46,0x1,0x44,0x0,0x45,0xff,0x6e,0xfe,0xe5,0xfd,0x75,0xfd, +0x39,0xfd,0x88,0xfd,0xef,0xfd,0x4,0xfe,0xfd,0xfd,0x9e,0xfd, +0xa8,0xfc,0x6d,0xfb,0x18,0xfa,0xf2,0xf8,0xa1,0xf8,0x76,0xf9, +0x98,0xfb,0xe9,0xfe,0xa5,0x2,0x4e,0x6,0xa9,0x9,0xfa,0xb, +0xcc,0xc,0xe8,0xb,0xbf,0x8,0x9d,0x3,0xe1,0xfd,0xc9,0xf8, +0x49,0xf5,0xa7,0xf3,0x8d,0xf3,0x49,0xf5,0xe3,0xf8,0x9,0xfd, +0xf1,0x0,0xac,0x4,0x88,0x7,0xb,0x9,0xb7,0x9,0x94,0x9, +0x4d,0x8,0x55,0x6,0x51,0x4,0x94,0x2,0x3e,0x1,0x1e,0x0, +0x10,0xff,0x7a,0xfe,0xb2,0xfe,0x4a,0xff,0xad,0xff,0xff,0xff, +0x9c,0x0,0x34,0x1,0x3c,0x1,0xaa,0x0,0xce,0xff,0xe8,0xfe, +0x5,0xfe,0x19,0xfd,0x3d,0xfc,0x8a,0xfb,0x18,0xfb,0x41,0xfb, +0x3,0xfc,0xa7,0xfc,0xcd,0xfc,0x16,0xfd,0x30,0xfe,0xd8,0xff, +0x59,0x1,0x94,0x2,0xca,0x3,0xb1,0x4,0xd3,0x4,0x3c,0x4, +0x18,0x3,0x66,0x1,0x39,0xff,0xee,0xfc,0xec,0xfa,0x49,0xf9, +0x3c,0xf8,0x83,0xf8,0x25,0xfa,0x2,0xfc,0xab,0xfd,0x9e,0xff, +0xd2,0x1,0xea,0x3,0x8e,0x5,0x30,0x6,0xf5,0x5,0x72,0x5, +0x83,0x4,0x11,0x3,0x8b,0x1,0xff,0xff,0x8a,0xfe,0xbb,0xfd, +0xaf,0xfd,0x4b,0xfe,0x98,0xff,0x45,0x1,0x1f,0x3,0x1d,0x5, +0x7f,0x6,0x89,0x6,0x8b,0x5,0xeb,0x3,0x96,0x1,0xc1,0xfe, +0x5,0xfc,0xd3,0xf9,0x4b,0xf8,0x85,0xf7,0xd1,0xf7,0x82,0xf9, +0x44,0xfc,0x37,0xff,0xc6,0x1,0xe6,0x3,0x72,0x5,0xb,0x6, +0xb9,0x5,0xd5,0x4,0x60,0x3,0x55,0x1,0x23,0xff,0x2d,0xfd, +0x94,0xfb,0x90,0xfa,0x5a,0xfa,0xf2,0xfa,0x16,0xfc,0x3d,0xfd, +0x1c,0xfe,0xea,0xfe,0xb9,0xff,0x3d,0x0,0x66,0x0,0x65,0x0, +0x50,0x0,0x47,0x0,0x50,0x0,0x39,0x0,0x13,0x0,0x2c,0x0, +0x60,0x0,0x71,0x0,0x75,0x0,0x76,0x0,0x88,0x0,0xd8,0x0, +0x3d,0x1,0x93,0x1,0x1b,0x2,0xad,0x2,0xe5,0x2,0x0,0x3, +0x1f,0x3,0xe5,0x2,0x54,0x2,0x9f,0x1,0xaa,0x0,0x85,0xff, +0x75,0xfe,0xbc,0xfd,0x94,0xfd,0xdc,0xfd,0x41,0xfe,0xe5,0xfe, +0xf2,0xff,0x24,0x1,0x30,0x2,0xf6,0x2,0x6e,0x3,0x8c,0x3, +0x2d,0x3,0x60,0x2,0x78,0x1,0x98,0x0,0xc5,0xff,0x26,0xff, +0xca,0xfe,0xdf,0xfe,0xa0,0xff,0xb3,0x0,0x6f,0x1,0xa1,0x1, +0x59,0x1,0xac,0x0,0xc9,0xff,0xd7,0xfe,0xfa,0xfd,0x52,0xfd, +0xff,0xfc,0x3d,0xfd,0x23,0xfe,0x75,0xff,0xce,0x0,0xde,0x1, +0x93,0x2,0xf0,0x2,0x9f,0x2,0x99,0x1,0x72,0x0,0x63,0xff, +0x62,0xfe,0xf4,0xfd,0x46,0xfe,0xdb,0xfe,0x81,0xff,0x1f,0x0, +0x46,0x0,0xd4,0xff,0xe6,0xfe,0x7f,0xfd,0xa4,0xfb,0x57,0xf9, +0xe3,0xf6,0x2,0xf5,0x11,0xf4,0xfe,0xf3,0xf4,0xf4,0x20,0xf7, +0x7b,0xfa,0xde,0xfe,0xd3,0x3,0xb6,0x8,0xd7,0xc,0x7f,0xf, +0x9b,0x10,0x78,0x10,0x90,0xe,0x37,0xa,0xf8,0x3,0x52,0xfd, +0xc5,0xf7,0xc,0xf4,0x18,0xf2,0x19,0xf2,0x65,0xf4,0x68,0xf8, +0x1f,0xfd,0xc4,0x1,0x9f,0x5,0x52,0x8,0xe4,0x9,0x3b,0xa, +0x62,0x9,0x9c,0x7,0x1f,0x5,0x95,0x2,0xc1,0x0,0x86,0xff, +0x99,0xfe,0x62,0xfe,0x63,0xff,0x67,0x1,0x68,0x3,0xa4,0x4, +0x6b,0x5,0xca,0x5,0xc7,0x4,0x14,0x2,0x87,0xfe,0xd9,0xfa, +0x7f,0xf7,0xf7,0xf4,0x7f,0xf3,0x2b,0xf3,0xff,0xf3,0xed,0xf5, +0xe1,0xf8,0x2f,0xfc,0xc7,0xfe,0x70,0x0,0xc6,0x1,0xfa,0x2, +0xa3,0x3,0x9e,0x3,0x99,0x3,0x18,0x4,0x7a,0x4,0x1d,0x4, +0x6d,0x3,0x92,0x2,0xf,0x1,0x7,0xff,0x5,0xfd,0x2f,0xfb, +0x9e,0xf9,0x7e,0xf8,0x26,0xf8,0xfa,0xf8,0x9a,0xfa,0x61,0xfc, +0x86,0xfe,0x23,0x1,0x65,0x3,0xdf,0x4,0xef,0x5,0xbe,0x6, +0x11,0x7,0xd7,0x6,0x62,0x6,0xe9,0x5,0x26,0x5,0x10,0x4, +0x32,0x3,0xbb,0x2,0x7b,0x2,0x7a,0x2,0xa3,0x2,0xb5,0x2, +0x9b,0x2,0x4,0x2,0x99,0x0,0xb4,0xfe,0xd9,0xfc,0x46,0xfb, +0x2c,0xfa,0x91,0xf9,0x87,0xf9,0x49,0xfa,0xab,0xfb,0x66,0xfd, +0x98,0xff,0x0,0x2,0xee,0x3,0x3a,0x5,0xd4,0x5,0x61,0x5, +0x5,0x4,0x5d,0x2,0xb0,0x0,0xf5,0xfe,0x49,0xfd,0xb,0xfc, +0x77,0xfb,0x47,0xfb,0x33,0xfb,0x53,0xfb,0x9d,0xfb,0xf7,0xfb, +0x91,0xfc,0x63,0xfd,0x11,0xfe,0xad,0xfe,0x9b,0xff,0xc1,0x0, +0xa5,0x1,0x31,0x2,0x99,0x2,0xc3,0x2,0x8f,0x2,0x43,0x2, +0xf2,0x1,0x60,0x1,0xb7,0x0,0x58,0x0,0x58,0x0,0xca,0x0, +0xb5,0x1,0xc9,0x2,0xba,0x3,0x75,0x4,0xf7,0x4,0x24,0x5, +0xb2,0x4,0xa0,0x3,0x48,0x2,0xaf,0x0,0xe5,0xfe,0x8a,0xfd, +0xb2,0xfc,0x5,0xfc,0xf2,0xfb,0xe2,0xfc,0x80,0xfe,0x86,0x0, +0x9f,0x2,0x67,0x4,0xfb,0x5,0xf,0x7,0x14,0x7,0x88,0x6, +0xac,0x5,0xc6,0x3,0x1e,0x1,0xb4,0xfe,0xa3,0xfc,0x8,0xfb, +0x48,0xfa,0x44,0xfa,0x1,0xfb,0x8b,0xfc,0x49,0xfe,0xc6,0xff, +0xe6,0x0,0x69,0x1,0x6b,0x1,0x40,0x1,0xc8,0x0,0x8,0x0, +0x66,0xff,0x32,0xff,0x80,0xff,0xf2,0xff,0x27,0x0,0x75,0x0, +0x6,0x1,0x57,0x1,0x43,0x1,0x0,0x1,0x70,0x0,0x96,0xff, +0xc9,0xfe,0x37,0xfe,0xab,0xfd,0xdd,0xfc,0xf,0xfc,0xa8,0xfb, +0x41,0xfb,0x78,0xfa,0xbd,0xf9,0x43,0xf9,0xb4,0xf8,0xf9,0xf7, +0x2b,0xf7,0x96,0xf6,0xaa,0xf6,0x8b,0xf7,0x80,0xf9,0xef,0xfc, +0x8c,0x1,0xe7,0x6,0x87,0xc,0x2a,0x11,0xfd,0x13,0x20,0x15, +0xc8,0x13,0xa,0xf,0xf8,0x7,0x4b,0x0,0xdb,0xf8,0x8b,0xf2, +0x85,0xee,0x57,0xed,0xc5,0xee,0x53,0xf2,0x9c,0xf7,0xda,0xfd, +0xc1,0x3,0x79,0x8,0xda,0xb,0xa6,0xd,0xb4,0xd,0x1f,0xc, +0x36,0x9,0xd1,0x5,0xc0,0x2,0x8,0x0,0xc5,0xfd,0xa3,0xfc, +0xf7,0xfc,0x6d,0xfe,0x4e,0x0,0x21,0x2,0xd,0x4,0xa8,0x5, +0xb4,0x5,0xb,0x4,0x98,0x1,0x71,0xfe,0x77,0xfa,0x7d,0xf6, +0x4e,0xf3,0x19,0xf1,0xa,0xf0,0x71,0xf0,0x59,0xf2,0x37,0xf5, +0x57,0xf8,0xc7,0xfb,0xd6,0xff,0xed,0x3,0x2b,0x7,0x72,0x9, +0x17,0xb,0x21,0xc,0x19,0xc,0x97,0xa,0xe5,0x7,0x85,0x4, +0x86,0x0,0x2a,0xfc,0x3f,0xf8,0x39,0xf5,0x17,0xf3,0x46,0xf2, +0x65,0xf3,0x1b,0xf6,0x4e,0xf9,0xa1,0xfc,0x6d,0x0,0x56,0x4, +0x76,0x7,0xa2,0x9,0xfb,0xa,0x3c,0xb,0x84,0xa,0x4f,0x9, +0x91,0x7,0x35,0x5,0xbd,0x2,0x96,0x0,0xde,0xfe,0xed,0xfd, +0x15,0xfe,0x25,0xff,0xb1,0x0,0x84,0x2,0x5b,0x4,0x78,0x5, +0x32,0x5,0xc4,0x3,0xb6,0x1,0xf7,0xfe,0x8c,0xfb,0x65,0xf8, +0x6d,0xf6,0x90,0xf5,0x87,0xf5,0xbb,0xf6,0x5e,0xf9,0xab,0xfc, +0xf7,0xff,0x2b,0x3,0xc2,0x5,0xc,0x7,0x51,0x7,0x10,0x7, +0x1b,0x6,0x3f,0x4,0xd1,0x1,0x5b,0xff,0x2c,0xfd,0x47,0xfb, +0xd0,0xf9,0xfc,0xf8,0xa1,0xf8,0xa5,0xf8,0x36,0xf9,0x25,0xfa, +0x46,0xfb,0xd8,0xfc,0xaa,0xfe,0x34,0x0,0x58,0x1,0x19,0x2, +0xa1,0x2,0x48,0x3,0xec,0x3,0x5b,0x4,0xd9,0x4,0x43,0x5, +0x5c,0x5,0x89,0x5,0xaf,0x5,0x26,0x5,0x26,0x4,0x31,0x3, +0x21,0x2,0xf2,0x0,0x2,0x0,0x7c,0xff,0x50,0xff,0x5c,0xff, +0x84,0xff,0xc1,0xff,0xec,0xff,0xd5,0xff,0x95,0xff,0x66,0xff, +0x82,0xff,0xf9,0xff,0x8f,0x0,0x2e,0x1,0x12,0x2,0x32,0x3, +0x2f,0x4,0xe7,0x4,0x59,0x5,0x48,0x5,0x97,0x4,0x95,0x3, +0x75,0x2,0xfa,0x0,0x24,0xff,0x5e,0xfd,0xe3,0xfb,0xbe,0xfa, +0x27,0xfa,0x34,0xfa,0xb7,0xfa,0x92,0xfb,0xb7,0xfc,0xff,0xfd, +0x2a,0xff,0x1a,0x0,0x11,0x1,0xd,0x2,0x83,0x2,0x83,0x2, +0xcd,0x2,0x4b,0x3,0x73,0x3,0x84,0x3,0xab,0x3,0x64,0x3, +0x95,0x2,0xb6,0x1,0xc6,0x0,0x6a,0xff,0xc4,0xfd,0x51,0xfc, +0x37,0xfb,0x47,0xfa,0x62,0xf9,0x88,0xf8,0xcc,0xf7,0x2b,0xf7, +0x6f,0xf6,0x95,0xf5,0xea,0xf4,0xa6,0xf4,0xee,0xf4,0x13,0xf6, +0x55,0xf8,0xd2,0xfb,0xa2,0x0,0x92,0x6,0x0,0xd,0xe1,0x12, +0xff,0x16,0xe0,0x18,0xa5,0x18,0xcf,0x15,0xb7,0xf,0xa,0x7, +0x6e,0xfd,0x5f,0xf4,0x1c,0xed,0xb2,0xe8,0x9a,0xe7,0xb6,0xe9, +0xc0,0xee,0x15,0xf6,0x41,0xfe,0xd3,0x5,0x2d,0xc,0xb4,0x10, +0xb3,0x12,0x64,0x12,0x4b,0x10,0x77,0xc,0x96,0x7,0x1b,0x3, +0xaa,0xff,0xfb,0xfc,0x23,0xfb,0xec,0xfa,0x9a,0xfc,0xd,0xff, +0x38,0x1,0x71,0x3,0xc5,0x5,0xea,0x6,0x14,0x6,0xd5,0x3, +0xbb,0x0,0xc3,0xfc,0x40,0xf8,0x28,0xf4,0xe,0xf1,0xcc,0xee, +0x98,0xed,0x3a,0xee,0xae,0xf0,0x6,0xf4,0xbe,0xf7,0x9,0xfc, +0x7,0x1,0xfc,0x5,0xe1,0x9,0xad,0xc,0xba,0xe,0x81,0xf, +0x8a,0xe,0x31,0xc,0xaa,0x8,0x9,0x4,0xdc,0xfe,0xdb,0xf9, +0xaa,0xf5,0x9e,0xf2,0xc8,0xf0,0xbb,0xf0,0xcf,0xf2,0xd,0xf6, +0xb8,0xf9,0x24,0xfe,0x7,0x3,0x75,0x7,0xe,0xb,0x7a,0xd, +0x36,0xe,0x49,0xd,0x9,0xb,0xe4,0x7,0x7d,0x4,0x42,0x1, +0x87,0xfe,0xdb,0xfc,0x8e,0xfc,0x90,0xfd,0xd3,0xff,0xfc,0x2, +0x2c,0x6,0x9a,0x8,0xc3,0x9,0x3b,0x9,0x1,0x7,0xa1,0x3, +0x8c,0xff,0x8,0xfb,0xca,0xf6,0xb6,0xf3,0xfc,0xf1,0x75,0xf1, +0x67,0xf2,0x13,0xf5,0x4,0xf9,0x6d,0xfd,0xb1,0x1,0x65,0x5, +0x2f,0x8,0xd8,0x9,0x5c,0xa,0xc0,0x9,0xf4,0x7,0x44,0x5, +0x58,0x2,0x61,0xff,0x47,0xfc,0x87,0xf9,0xa3,0xf7,0x82,0xf6, +0x1f,0xf6,0x8f,0xf6,0x5f,0xf7,0x5c,0xf8,0xfc,0xf9,0x2c,0xfc, +0x45,0xfe,0x36,0x0,0x46,0x2,0x49,0x4,0xef,0x5,0x2c,0x7, +0xf5,0x7,0x20,0x8,0xa6,0x7,0xaf,0x6,0x50,0x5,0x95,0x3, +0xd9,0x1,0x8d,0x0,0xc6,0xff,0x6b,0xff,0x77,0xff,0xfc,0xff, +0xff,0x0,0x32,0x2,0x39,0x3,0x16,0x4,0xa2,0x4,0x84,0x4, +0xc9,0x3,0x68,0x2,0x55,0x0,0x76,0xfe,0x6e,0xfd,0xb1,0xfc, +0x3e,0xfc,0xce,0xfc,0x31,0xfe,0xd9,0xff,0xc2,0x1,0xc3,0x3, +0x63,0x5,0x4b,0x6,0x6d,0x6,0x1,0x6,0x1,0x5,0x36,0x3, +0xf4,0x0,0xaf,0xfe,0x92,0xfc,0xed,0xfa,0xd6,0xf9,0x34,0xf9, +0x44,0xf9,0xc7,0xf9,0x27,0xfa,0xee,0xfa,0x95,0xfc,0x4f,0xfe, +0xae,0xff,0x20,0x1,0xaa,0x2,0x1,0x4,0xe1,0x4,0x21,0x5, +0xea,0x4,0x45,0x4,0x19,0x3,0xae,0x1,0x1c,0x0,0x4d,0xfe, +0xc5,0xfc,0xd0,0xfb,0x1e,0xfb,0xa0,0xfa,0x4b,0xfa,0xd8,0xf9, +0x4a,0xf9,0x92,0xf8,0x6f,0xf7,0x13,0xf6,0xd4,0xf4,0xf4,0xf3, +0xb4,0xf3,0x26,0xf4,0xbd,0xf5,0x65,0xf9,0xff,0xfe,0x76,0x5, +0x19,0xc,0x33,0x12,0xac,0x16,0xf5,0x18,0xd5,0x18,0xab,0x15, +0x11,0xf,0x3,0x6,0x86,0xfc,0x39,0xf4,0x3,0xee,0xce,0xea, +0x2,0xeb,0x1d,0xee,0x89,0xf3,0x7d,0xfa,0x8d,0x1,0xa3,0x7, +0x39,0xc,0xd6,0xe,0x68,0xf,0x2c,0xe,0x60,0xb,0xa4,0x7, +0xaa,0x3,0xfc,0xff,0x3a,0xfd,0x8f,0xfb,0xdf,0xfa,0x8a,0xfb, +0x6a,0xfd,0x98,0xff,0xf5,0x1,0x74,0x4,0x31,0x6,0xb6,0x6, +0xff,0x5,0xd4,0x3,0xb4,0x0,0x53,0xfd,0xa4,0xf9,0xf0,0xf5, +0xcd,0xf2,0x51,0xf0,0xc,0xef,0xa7,0xef,0x78,0xf1,0xb6,0xf3, +0x75,0xf6,0xb5,0xf9,0x44,0xfd,0xeb,0x0,0x45,0x4,0x66,0x7, +0x6b,0xa,0x73,0xc,0xdb,0xc,0x4,0xc,0x8,0xa,0xc8,0x6, +0xe1,0x2,0xe7,0xfe,0xf0,0xfa,0x65,0xf7,0xc,0xf5,0x75,0xf4, +0xa6,0xf5,0x2,0xf8,0xf8,0xfa,0x74,0xfe,0x22,0x2,0x61,0x5, +0xea,0x7,0x89,0x9,0xe8,0x9,0x16,0x9,0x5c,0x7,0xf6,0x4, +0x7d,0x2,0xac,0x0,0xb6,0xff,0x8d,0xff,0x51,0x0,0x6,0x2, +0x3e,0x4,0x68,0x6,0x25,0x8,0x29,0x9,0x30,0x9,0xf,0x8, +0x92,0x5,0xbf,0x1,0x66,0xfd,0x77,0xf9,0x20,0xf6,0x99,0xf3, +0x80,0xf2,0xe5,0xf2,0x62,0xf4,0xf3,0xf6,0x8a,0xfa,0x7a,0xfe, +0x4,0x2,0xd8,0x4,0xd2,0x6,0xc0,0x7,0x84,0x7,0x4a,0x6, +0x7b,0x4,0x84,0x2,0x7a,0x0,0x3e,0xfe,0x29,0xfc,0xca,0xfa, +0xb,0xfa,0xb9,0xf9,0xf9,0xf9,0x9b,0xfa,0x6a,0xfb,0x7b,0xfc, +0x7d,0xfd,0x37,0xfe,0x9,0xff,0xce,0xff,0x39,0x0,0xc5,0x0, +0x80,0x1,0x0,0x2,0x8e,0x2,0x2e,0x3,0x70,0x3,0x9f,0x3, +0xf2,0x3,0x15,0x4,0x48,0x4,0xc3,0x4,0x13,0x5,0x1a,0x5, +0xf6,0x4,0x9a,0x4,0x28,0x4,0x8c,0x3,0x80,0x2,0x4e,0x1, +0x46,0x0,0x6a,0xff,0xe8,0xfe,0xb7,0xfe,0x7a,0xfe,0x42,0xfe, +0x5d,0xfe,0xd5,0xfe,0x7e,0xff,0x30,0x0,0x12,0x1,0x45,0x2, +0x67,0x3,0x33,0x4,0xb8,0x4,0xb3,0x4,0xd,0x4,0x3c,0x3, +0x54,0x2,0xa,0x1,0x79,0xff,0x0,0xfe,0x11,0xfd,0xce,0xfc, +0xc4,0xfc,0xc8,0xfc,0x29,0xfd,0xa1,0xfd,0xa7,0xfd,0x6c,0xfd, +0x47,0xfd,0x24,0xfd,0xf9,0xfc,0xfa,0xfc,0x49,0xfd,0xd7,0xfd, +0x88,0xfe,0x68,0xff,0x84,0x0,0xa0,0x1,0x8d,0x2,0x7a,0x3, +0x5d,0x4,0x98,0x4,0xf6,0x3,0xfd,0x2,0xb1,0x1,0x96,0xff, +0xd3,0xfc,0xc4,0xf9,0x57,0xf6,0xed,0xf2,0x40,0xf0,0x91,0xee, +0xf5,0xed,0x9e,0xee,0xc7,0xf0,0xdb,0xf4,0xad,0xfa,0x38,0x1, +0xf3,0x7,0x81,0xe,0x9e,0x13,0x93,0x16,0xc6,0x17,0xd7,0x16, +0xe9,0x12,0x6c,0xc,0x8d,0x4,0x6a,0xfc,0x74,0xf5,0xcf,0xf0, +0xae,0xee,0x25,0xef,0x4f,0xf2,0x98,0xf7,0xf4,0xfd,0x3f,0x4, +0x50,0x9,0x78,0xc,0xad,0xd,0x6,0xd,0xbf,0xa,0x3c,0x7, +0xed,0x2,0xc6,0xfe,0xdc,0xfb,0x1f,0xfa,0x20,0xf9,0x60,0xf9, +0x40,0xfb,0xc,0xfe,0xfb,0x0,0xcc,0x3,0x4e,0x6,0xe3,0x7, +0xe3,0x7,0x94,0x6,0x92,0x4,0x97,0x1,0xa9,0xfd,0xee,0xf9, +0xe3,0xf6,0x2a,0xf4,0x0,0xf2,0xed,0xf0,0x11,0xf1,0x2d,0xf2, +0xbd,0xf3,0xad,0xf5,0x62,0xf8,0x9b,0xfb,0xe3,0xfe,0x6d,0x2, +0x24,0x6,0x69,0x9,0xae,0xb,0x96,0xc,0x27,0xc,0x8d,0xa, +0x9b,0x7,0xa3,0x3,0x87,0xff,0x87,0xfb,0xdc,0xf7,0x7b,0xf5, +0xe5,0xf4,0xcd,0xf5,0xea,0xf7,0x4,0xfb,0xd4,0xfe,0xee,0x2, +0x8b,0x6,0x15,0x9,0x55,0xa,0x7,0xa,0x59,0x8,0x16,0x6, +0xb0,0x3,0x3e,0x1,0x2c,0xff,0xf7,0xfd,0xc9,0xfd,0xb4,0xfe, +0x90,0x0,0xc8,0x2,0xea,0x4,0xeb,0x6,0x60,0x8,0xa4,0x8, +0xc6,0x7,0xfe,0x5,0x2b,0x3,0xb2,0xff,0x49,0xfc,0x21,0xf9, +0x99,0xf6,0x3c,0xf5,0xfb,0xf4,0xe2,0xf5,0x24,0xf8,0x1c,0xfb, +0x24,0xfe,0x22,0x1,0xae,0x3,0x72,0x5,0x81,0x6,0x97,0x6, +0xba,0x5,0x6c,0x4,0x9b,0x2,0x4c,0x0,0x58,0xfe,0xed,0xfc, +0x84,0xfb,0x69,0xfa,0x4d,0xfa,0xf0,0xfa,0xa3,0xfb,0x6a,0xfc, +0x9f,0xfd,0x5,0xff,0x31,0x0,0x37,0x1,0xd,0x2,0x63,0x2, +0x4b,0x2,0xe4,0x1,0x1d,0x1,0x47,0x0,0xbc,0xff,0x7c,0xff, +0xb8,0xff,0x9b,0x0,0xe7,0x1,0x83,0x3,0x7b,0x5,0x6d,0x7, +0xc7,0x8,0x38,0x9,0xc5,0x8,0xa2,0x7,0xd8,0x5,0x5f,0x3, +0x92,0x0,0xf5,0xfd,0xdb,0xfb,0x81,0xfa,0x4,0xfa,0x41,0xfa, +0xf,0xfb,0x5c,0xfc,0x23,0xfe,0x48,0x0,0x7d,0x2,0x77,0x4, +0x29,0x6,0x6c,0x7,0xe3,0x7,0x70,0x7,0x4a,0x6,0x9b,0x4, +0x7e,0x2,0x33,0x0,0xf0,0xfd,0xf9,0xfb,0xb6,0xfa,0x23,0xfa, +0xf1,0xf9,0x52,0xfa,0x8b,0xfb,0x20,0xfd,0x78,0xfe,0x82,0xff, +0x3a,0x0,0x6e,0x0,0x8,0x0,0x41,0xff,0x76,0xfe,0xbb,0xfd, +0xfd,0xfc,0x9a,0xfc,0x9,0xfd,0x1a,0xfe,0x6e,0xff,0x15,0x1, +0x36,0x3,0x56,0x5,0x83,0x6,0x5b,0x6,0x3f,0x5,0x42,0x3, +0x4,0x0,0xb9,0xfb,0x5,0xf7,0x51,0xf2,0x14,0xee,0xf3,0xea, +0x79,0xe9,0xe9,0xe9,0x3c,0xec,0x85,0xf0,0xf,0xf7,0x6a,0xff, +0x34,0x8,0x27,0x10,0x8e,0x16,0xdb,0x1a,0x96,0x1c,0x66,0x1b, +0x18,0x17,0xfa,0xf,0xc,0x7,0xa9,0xfd,0x37,0xf5,0xf0,0xee, +0x92,0xeb,0x4f,0xeb,0x3,0xee,0x24,0xf3,0xac,0xf9,0x93,0x0, +0xf8,0x6,0xe9,0xb,0xcd,0xe,0x93,0xf,0x2a,0xe,0xf7,0xa, +0x18,0x7,0x3c,0x3,0x8b,0xff,0x7f,0xfc,0x71,0xfa,0x8b,0xf9, +0x25,0xfa,0xc4,0xfb,0x84,0xfd,0xc7,0xff,0xab,0x2,0xb4,0x4, +0x2c,0x5,0xc6,0x4,0xa4,0x3,0x98,0x1,0x19,0xff,0x7d,0xfc, +0xbc,0xf9,0xfc,0xf6,0xb0,0xf4,0x96,0xf3,0xdc,0xf3,0x9c,0xf4, +0x5d,0xf5,0xd4,0xf6,0x50,0xf9,0x22,0xfc,0xc0,0xfe,0x58,0x1, +0x48,0x4,0x54,0x7,0xab,0x9,0xc3,0xa,0xa9,0xa,0x7a,0x9, +0x3d,0x7,0x13,0x4,0x58,0x0,0x72,0xfc,0xb6,0xf8,0xd8,0xf5, +0xc2,0xf4,0x68,0xf5,0x1,0xf7,0x70,0xf9,0xec,0xfc,0x17,0x1, +0x4a,0x5,0xd7,0x8,0x28,0xb,0x39,0xc,0x2f,0xc,0xee,0xa, +0x9f,0x8,0xc9,0x5,0xe4,0x2,0x5a,0x0,0x5e,0xfe,0xf,0xfd, +0xc5,0xfc,0x8f,0xfd,0x6,0xff,0xed,0x0,0x9,0x3,0xd4,0x4, +0xf0,0x5,0x39,0x6,0x98,0x5,0x16,0x4,0xc9,0x1,0xe4,0xfe, +0xe7,0xfb,0x56,0xf9,0x7c,0xf7,0x8d,0xf6,0xa3,0xf6,0xd3,0xf7, +0x8,0xfa,0x94,0xfc,0xe1,0xfe,0xf,0x1,0x14,0x3,0x78,0x4, +0x33,0x5,0x74,0x5,0x11,0x5,0xb,0x4,0xaa,0x2,0x1,0x1, +0x29,0xff,0x6f,0xfd,0xe0,0xfb,0x6c,0xfa,0x62,0xf9,0xd,0xf9, +0x64,0xf9,0x5e,0xfa,0xd8,0xfb,0x81,0xfd,0x5e,0xff,0x77,0x1, +0x68,0x3,0x26,0x5,0xc0,0x6,0x7b,0x7,0xe,0x7,0x41,0x6, +0x35,0x5,0x95,0x3,0xb,0x2,0x3a,0x1,0xef,0x0,0x16,0x1, +0xb5,0x1,0x7b,0x2,0x33,0x3,0xc1,0x3,0xef,0x3,0xb3,0x3, +0x1,0x3,0xce,0x1,0x5a,0x0,0xe5,0xfe,0x82,0xfd,0x61,0xfc, +0xdd,0xfb,0x1e,0xfc,0xfe,0xfc,0x65,0xfe,0x7e,0x0,0x3d,0x3, +0xf,0x6,0x54,0x8,0x9a,0x9,0xa1,0x9,0x87,0x8,0x8d,0x6, +0xf7,0x3,0x14,0x1,0xf2,0xfd,0xc4,0xfa,0x59,0xf8,0x1f,0xf7, +0xc0,0xf6,0x22,0xf7,0x57,0xf8,0x1d,0xfa,0x2a,0xfc,0x2b,0xfe, +0xd8,0xff,0x25,0x1,0xf1,0x1,0x3d,0x2,0x74,0x2,0x85,0x2, +0x24,0x2,0xc3,0x1,0x98,0x1,0x31,0x1,0x99,0x0,0x21,0x0, +0xa3,0xff,0x35,0xff,0x25,0xff,0x32,0xff,0xe8,0xfe,0x2f,0xfe, +0xe,0xfd,0x59,0xfb,0xf7,0xf8,0x28,0xf6,0x37,0xf3,0x78,0xf0, +0xb5,0xee,0x91,0xee,0xfc,0xef,0x23,0xf3,0x6a,0xf8,0x6a,0xff, +0x4d,0x7,0x2a,0xf,0xc9,0x15,0x73,0x1a,0xe9,0x1c,0x46,0x1c, +0xdd,0x17,0x6b,0x10,0x1c,0x7,0x13,0xfd,0xf7,0xf3,0x4c,0xed, +0x9c,0xe9,0xf7,0xe8,0x7c,0xeb,0xf2,0xf0,0x5b,0xf8,0x3b,0x0, +0x61,0x7,0x27,0xd,0xfa,0x10,0x42,0x12,0xe0,0x10,0x90,0xd, +0x4c,0x9,0x7b,0x4,0x74,0xff,0x2a,0xfb,0x6c,0xf8,0x52,0xf7, +0xe4,0xf7,0xf4,0xf9,0xd6,0xfc,0x24,0x0,0xb3,0x3,0xa8,0x6, +0xfa,0x7,0x92,0x7,0xcd,0x5,0xd2,0x2,0xfa,0xfe,0xeb,0xfa, +0x2,0xf7,0x5d,0xf3,0x90,0xf0,0x5d,0xef,0xac,0xef,0xdd,0xf0, +0xc9,0xf2,0xa3,0xf5,0x49,0xf9,0x28,0xfd,0xa4,0x0,0xeb,0x3, +0x87,0x7,0xc9,0xa,0x78,0xc,0xd4,0xc,0x60,0xc,0x78,0xa, +0xf,0x7,0x1d,0x3,0xf1,0xfe,0xad,0xfa,0x39,0xf7,0x3e,0xf5, +0xbc,0xf4,0x87,0xf5,0x5e,0xf7,0x21,0xfa,0xb8,0xfd,0x86,0x1, +0xd9,0x4,0x7b,0x7,0x75,0x9,0xaf,0xa,0xeb,0xa,0x36,0xa, +0xf4,0x8,0x40,0x7,0x17,0x5,0xc,0x3,0x6c,0x1,0x15,0x0, +0x65,0xff,0x7e,0xff,0xc1,0xff,0x1c,0x0,0xdd,0x0,0xad,0x1, +0x34,0x2,0x54,0x2,0xc2,0x1,0x92,0x0,0x23,0xff,0x88,0xfd, +0xe1,0xfb,0x78,0xfa,0x82,0xf9,0x24,0xf9,0x55,0xf9,0x19,0xfa, +0x91,0xfb,0x60,0xfd,0x1d,0xff,0xe9,0x0,0xa8,0x2,0xe8,0x3, +0x95,0x4,0xab,0x4,0x23,0x4,0x1e,0x3,0x7b,0x1,0x6a,0xff, +0x9c,0xfd,0x9,0xfc,0x65,0xfa,0x39,0xf9,0xe0,0xf8,0x11,0xf9, +0xbc,0xf9,0xe5,0xfa,0x4a,0xfc,0xc4,0xfd,0x41,0xff,0xc7,0x0, +0x5b,0x2,0xc9,0x3,0xf4,0x4,0xc3,0x5,0xe0,0x5,0x52,0x5, +0x70,0x4,0x36,0x3,0xcf,0x1,0xcc,0x0,0x4e,0x0,0x3c,0x0, +0xcb,0x0,0xee,0x1,0x50,0x3,0xc2,0x4,0xf2,0x5,0x73,0x6, +0x47,0x6,0x9b,0x5,0x48,0x4,0x3f,0x2,0xf8,0xff,0xdf,0xfd, +0xa,0xfc,0xc2,0xfa,0x5b,0xfa,0xca,0xfa,0x17,0xfc,0x50,0xfe, +0x12,0x1,0xde,0x3,0x58,0x6,0x1e,0x8,0xf1,0x8,0xa8,0x8, +0x26,0x7,0xb3,0x4,0xca,0x1,0xc4,0xfe,0x7,0xfc,0xce,0xf9, +0x2f,0xf8,0x87,0xf7,0x6,0xf8,0x62,0xf9,0x29,0xfb,0xbc,0xfc, +0xd7,0xfd,0xeb,0xfe,0xf0,0xff,0x66,0x0,0x86,0x0,0xa9,0x0, +0xc7,0x0,0x8,0x1,0x55,0x1,0x4e,0x1,0x1a,0x1,0xeb,0x0, +0xa5,0x0,0x6a,0x0,0x2a,0x0,0x9a,0xff,0xea,0xfe,0x2a,0xfe, +0x13,0xfd,0xd3,0xfb,0x97,0xfa,0x24,0xf9,0x9c,0xf7,0x4c,0xf6, +0x38,0xf5,0x82,0xf4,0x72,0xf4,0x43,0xf5,0x28,0xf7,0x31,0xfa, +0x6c,0xfe,0xd5,0x3,0xac,0x9,0xc4,0xe,0x8b,0x12,0xe6,0x14, +0x5e,0x15,0x16,0x13,0xa2,0xd,0xe6,0x5,0x97,0xfd,0x8,0xf6, +0x34,0xf0,0x20,0xed,0x34,0xed,0x15,0xf0,0x53,0xf5,0x3a,0xfc, +0x57,0x3,0x40,0x9,0x64,0xd,0xa8,0xf,0xdc,0xf,0xd5,0xd, +0xe0,0x9,0xfa,0x4,0x47,0x0,0x58,0xfc,0x73,0xf9,0xe1,0xf7, +0xc0,0xf7,0x1b,0xf9,0xad,0xfb,0x98,0xfe,0x6b,0x1,0x4d,0x4, +0xab,0x6,0x95,0x7,0xd,0x7,0x6c,0x5,0xc2,0x2,0x43,0xff, +0x64,0xfb,0xc3,0xf7,0xc1,0xf4,0x66,0xf2,0x6a,0xf1,0x73,0xf2, +0x65,0xf4,0x38,0xf6,0xaf,0xf8,0x5,0xfc,0x1b,0xff,0x7c,0x1, +0x7f,0x3,0x6b,0x5,0x32,0x7,0x32,0x8,0x9,0x8,0x2a,0x7, +0x95,0x5,0x6,0x3,0x43,0x0,0x8,0xfe,0x1,0xfc,0x20,0xfa, +0x50,0xf9,0xc,0xfa,0x8d,0xfb,0x9,0xfd,0xcd,0xfe,0x17,0x1, +0x3a,0x3,0xc7,0x4,0xdf,0x5,0x61,0x6,0x30,0x6,0x7e,0x5, +0x59,0x4,0xd4,0x2,0x23,0x1,0x7c,0xff,0x4c,0xfe,0xf7,0xfd, +0x6b,0xfe,0x7a,0xff,0x4,0x1,0xb6,0x2,0x33,0x4,0x5b,0x5, +0x11,0x6,0x0,0x6,0x17,0x5,0xdb,0x3,0x76,0x2,0x8f,0x0, +0x76,0xfe,0xb9,0xfc,0x14,0xfb,0x8b,0xf9,0xc2,0xf8,0xbe,0xf8, +0x3b,0xf9,0x3c,0xfa,0x84,0xfb,0xf7,0xfc,0x9e,0xfe,0xfe,0xff, +0xee,0x0,0xe8,0x1,0xbe,0x2,0x7,0x3,0xd,0x3,0xf5,0x2, +0x63,0x2,0x51,0x1,0x24,0x0,0x31,0xff,0x77,0xfe,0xda,0xfd, +0x81,0xfd,0x8d,0xfd,0xe0,0xfd,0x7f,0xfe,0x46,0xff,0xd8,0xff, +0x16,0x0,0x4,0x0,0xc2,0xff,0x97,0xff,0x55,0xff,0xb4,0xfe, +0x30,0xfe,0x31,0xfe,0x88,0xfe,0x52,0xff,0xbe,0x0,0x7b,0x2, +0x49,0x4,0x11,0x6,0xa0,0x7,0xcf,0x8,0x88,0x9,0xb9,0x9, +0x49,0x9,0xe8,0x7,0x8c,0x5,0xb7,0x2,0xbe,0xff,0xd7,0xfc, +0x7f,0xfa,0xf5,0xf8,0x36,0xf8,0x80,0xf8,0xd3,0xf9,0xc8,0xfb, +0x19,0xfe,0x82,0x0,0xa7,0x2,0x32,0x4,0xbd,0x4,0x4c,0x4, +0x6a,0x3,0x49,0x2,0xd3,0x0,0x62,0xff,0x2d,0xfe,0xfd,0xfc, +0x9,0xfc,0xb5,0xfb,0xce,0xfb,0x36,0xfc,0x30,0xfd,0x7c,0xfe, +0x81,0xff,0x34,0x0,0xbb,0x0,0x12,0x1,0x65,0x1,0x95,0x1, +0x2f,0x1,0x60,0x0,0x90,0xff,0xc0,0xfe,0x2e,0xfe,0x33,0xfe, +0x84,0xfe,0xa,0xff,0x17,0x0,0x6d,0x1,0x9f,0x2,0xbb,0x3, +0xbd,0x4,0x7a,0x5,0xe4,0x5,0xc9,0x5,0x22,0x5,0x2e,0x4, +0xe5,0x2,0x5e,0x1,0x22,0x0,0x52,0xff,0xa8,0xfe,0x3d,0xfe, +0x39,0xfe,0x61,0xfe,0xa8,0xfe,0x29,0xff,0xaa,0xff,0xd5,0xff, +0xa0,0xff,0x1d,0xff,0x59,0xfe,0x77,0xfd,0x74,0xfc,0x11,0xfb, +0x7c,0xf9,0x43,0xf8,0x9a,0xf7,0xa1,0xf7,0xbf,0xf8,0xc,0xfb, +0x22,0xfe,0x89,0x1,0xb7,0x4,0x54,0x7,0xfe,0x8,0xaf,0x8, +0xf7,0x5,0xfe,0x1,0xce,0xfd,0xae,0xf9,0x7b,0xf6,0x16,0xf5, +0x60,0xf5,0xf9,0xf6,0xba,0xf9,0x6a,0xfd,0x93,0x1,0x45,0x5, +0xdf,0x7,0xba,0x9,0xe2,0xa,0xaf,0xa,0x3e,0x9,0x61,0x7, +0x7e,0x5,0xa6,0x3,0xbc,0x1,0xde,0xff,0xb9,0xfe,0x63,0xfe, +0x3a,0xfe,0x3a,0xfe,0xa0,0xfe,0x11,0xff,0x4d,0xff,0x4e,0xff, +0x13,0xff,0x0,0xff,0x39,0xff,0x44,0xff,0x4e,0xff,0xc9,0xff, +0x1e,0x0,0xdd,0xff,0xba,0xff,0x14,0x0,0x3d,0x0,0xc7,0xff, +0x27,0xff,0xcf,0xfe,0x88,0xfe,0x10,0xfe,0xbb,0xfd,0x3,0xfe, +0xd6,0xfe,0x6c,0xff,0x43,0xff,0xea,0xfe,0xba,0xfe,0x5,0xfe, +0xdc,0xfc,0x38,0xfc,0xe9,0xfb,0x44,0xfb,0xfc,0xfa,0xc2,0xfb, +0xea,0xfc,0xd5,0xfd,0xbb,0xfe,0xd3,0xff,0xf7,0x0,0xf9,0x1, +0xe4,0x2,0xdf,0x3,0x9e,0x4,0xb8,0x4,0x7d,0x4,0x6e,0x4, +0x2d,0x4,0x3c,0x3,0xc,0x2,0x33,0x1,0x9d,0x0,0x49,0x0, +0x72,0x0,0xdc,0x0,0x25,0x1,0x65,0x1,0xdb,0x1,0x70,0x2, +0xa5,0x2,0x20,0x2,0x56,0x1,0xc7,0x0,0x37,0x0,0x8e,0xff, +0x35,0xff,0x4e,0xff,0xc1,0xff,0x97,0x0,0xaf,0x1,0xd8,0x2, +0xe5,0x3,0x9f,0x4,0xf2,0x4,0xc3,0x4,0xf4,0x3,0xd5,0x2, +0xa4,0x1,0xb,0x0,0xb,0xfe,0xfe,0xfb,0xdd,0xf9,0xc8,0xf7, +0x51,0xf6,0xa9,0xf5,0x88,0xf5,0xd0,0xf5,0xf9,0xf6,0x5f,0xf9, +0x4b,0xfc,0xfe,0xfe,0xc2,0x1,0x7f,0x4,0x4e,0x6,0x31,0x7, +0x92,0x7,0x1e,0x7,0xbc,0x5,0xdb,0x3,0xc5,0x1,0xe7,0xff, +0x8b,0xfe,0xa1,0xfd,0x7c,0xfd,0x40,0xfe,0x37,0xff,0x6,0x0, +0xeb,0x0,0xa8,0x1,0xf1,0x1,0xe5,0x1,0x7a,0x1,0x88,0x0, +0x52,0xff,0x6a,0xfe,0x20,0xfe,0x45,0xfe,0xc3,0xfe,0xe3,0xff, +0x92,0x1,0x61,0x3,0x1b,0x5,0x8a,0x6,0x6d,0x7,0xe5,0x7, +0xf3,0x7,0x3e,0x7,0xc6,0x5,0xda,0x3,0xb3,0x1,0xa2,0xff, +0xca,0xfd,0xf2,0xfb,0x23,0xfa,0xbc,0xf8,0xf4,0xf7,0xe7,0xf7, +0x97,0xf8,0xbd,0xf9,0x38,0xfb,0x20,0xfd,0x2f,0xff,0xda,0x0, +0xfd,0x1,0xcb,0x2,0x51,0x3,0x71,0x3,0x11,0x3,0x6a,0x2, +0xf6,0x1,0xc1,0x1,0x5d,0x1,0xcc,0x0,0x60,0x0,0xdd,0xff, +0x21,0xff,0x84,0xfe,0xe2,0xfd,0xef,0xfc,0x1d,0xfc,0xa7,0xfb, +0x3c,0xfb,0x3,0xfb,0x46,0xfb,0xea,0xfb,0x15,0xfd,0xdb,0xfe, +0xa2,0x0,0x20,0x2,0x84,0x3,0xbc,0x4,0xa7,0x5,0x29,0x6, +0x4,0x6,0x67,0x5,0xb5,0x4,0xe1,0x3,0xf9,0x2,0x47,0x2, +0xc4,0x1,0x58,0x1,0xfc,0x0,0x92,0x0,0x36,0x0,0xfc,0xff, +0xa4,0xff,0xc,0xff,0x47,0xfe,0x92,0xfd,0x58,0xfd,0x8f,0xfd, +0xc7,0xfd,0x16,0xfe,0x6a,0xfe,0x4c,0xfe,0xf7,0xfd,0xba,0xfd, +0x2a,0xfd,0x74,0xfc,0x69,0xfc,0x30,0xfd,0x7e,0xfe,0x4,0x0, +0x85,0x1,0x3c,0x3,0x35,0x5,0x6f,0x6,0xdd,0x5,0x7e,0x3, +0x2e,0x0,0xf8,0xfc,0x6a,0xfa,0xbc,0xf8,0x29,0xf8,0x7c,0xf8, +0x6e,0xf9,0x34,0xfb,0x90,0xfd,0xa3,0xff,0x20,0x1,0x4d,0x2, +0x2e,0x3,0x65,0x3,0xa1,0x2,0x59,0x1,0x8a,0x0,0x78,0x0, +0xc3,0x0,0x27,0x1,0x69,0x1,0x91,0x1,0xf8,0x1,0x8c,0x2, +0xf2,0x2,0x1d,0x3,0x1f,0x3,0x9,0x3,0xc1,0x2,0xfc,0x1, +0xf3,0x0,0x31,0x0,0x91,0xff,0x87,0xfe,0x1f,0xfd,0xc7,0xfb, +0xdf,0xfa,0xa9,0xfa,0x36,0xfb,0x41,0xfc,0x6a,0xfd,0xbc,0xfe, +0x65,0x0,0xb,0x2,0x55,0x3,0x48,0x4,0xbe,0x4,0xbb,0x4, +0x79,0x4,0xa1,0x3,0x3,0x2,0x53,0x0,0xec,0xfe,0x82,0xfd, +0xf0,0xfb,0x3a,0xfa,0xe1,0xf8,0xaf,0xf8,0x6d,0xf9,0x62,0xfa, +0x8c,0xfb,0xb,0xfd,0xb5,0xfe,0x55,0x0,0xbc,0x1,0xf5,0x2, +0xf8,0x3,0x56,0x4,0x48,0x4,0x53,0x4,0xee,0x3,0xc5,0x2, +0x8f,0x1,0x7f,0x0,0x66,0xff,0xa8,0xfe,0x6a,0xfe,0x64,0xfe, +0x86,0xfe,0xba,0xfe,0x3,0xff,0xa1,0xff,0x75,0x0,0x1e,0x1, +0xa2,0x1,0x19,0x2,0x61,0x2,0x69,0x2,0x2a,0x2,0x77,0x1, +0x65,0x0,0x97,0xff,0x4d,0xff,0xf1,0xfe,0x7a,0xfe,0x8a,0xfe, +0x0,0xff,0x93,0xff,0x9d,0x0,0xdd,0x1,0xa9,0x2,0x2f,0x3, +0xa9,0x3,0xb2,0x3,0x9,0x3,0xbf,0x1,0x2a,0x0,0xae,0xfe, +0x27,0xfd,0x6f,0xfb,0xa,0xfa,0x6c,0xf9,0xb8,0xf9,0xde,0xfa, +0x4c,0xfc,0x8f,0xfd,0xdc,0xfe,0x4b,0x0,0xb7,0x1,0x1,0x3, +0xcb,0x3,0xe7,0x3,0xad,0x3,0x26,0x3,0xd,0x2,0x9a,0x0, +0x24,0xff,0xb7,0xfd,0x8c,0xfc,0x1,0xfc,0xf,0xfc,0x79,0xfc, +0x54,0xfd,0xd4,0xfe,0x9d,0x0,0xfc,0x1,0xc5,0x2,0x22,0x3, +0x5,0x3,0x6a,0x2,0x8e,0x1,0xac,0x0,0x0,0x0,0x91,0xff, +0x18,0xff,0xaa,0xfe,0xb7,0xfe,0x48,0xff,0x26,0x0,0x3c,0x1, +0x29,0x2,0x92,0x2,0xce,0x2,0x7,0x3,0xbf,0x2,0xe6,0x1, +0xe6,0x0,0xcb,0xff,0xab,0xfe,0xe0,0xfd,0x66,0xfd,0x2f,0xfd, +0x6d,0xfd,0x2,0xfe,0xae,0xfe,0x77,0xff,0x28,0x0,0x60,0x0, +0x3e,0x0,0x1a,0x0,0xe1,0xff,0x4b,0xff,0x8c,0xfe,0x26,0xfe, +0x28,0xfe,0x6f,0xfe,0x27,0xff,0x4c,0x0,0x67,0x1,0x26,0x2, +0x65,0x2,0x30,0x2,0xdf,0x1,0x82,0x1,0xcd,0x0,0xd5,0xff, +0xeb,0xfe,0x20,0xfe,0x7b,0xfd,0x26,0xfd,0x4d,0xfd,0xec,0xfd, +0xb5,0xfe,0x7d,0xff,0x3a,0x0,0xdd,0x0,0xbc,0x1,0x8,0x3, +0xd,0x4,0x46,0x4,0xe9,0x3,0xf7,0x2,0xac,0x1,0xae,0x0, +0xc7,0xff,0x9a,0xfe,0xc2,0xfd,0x9f,0xfd,0xeb,0xfd,0xc1,0xfe, +0x17,0x0,0x6e,0x1,0xaf,0x2,0xde,0x3,0x76,0x4,0x1c,0x4, +0x29,0x3,0xec,0x1,0x4d,0x0,0x6c,0xfe,0xb1,0xfc,0x23,0xfb, +0xc5,0xf9,0xfe,0xf8,0xd2,0xf8,0x26,0xf9,0x7d,0xfa,0xf8,0xfc, +0xd0,0xff,0x74,0x2,0xaf,0x4,0x57,0x6,0x87,0x7,0xf5,0x7, +0xd1,0x6,0x16,0x4,0xab,0x0,0x81,0xfd,0x49,0xfb,0x2f,0xfa, +0xcd,0xf9,0xeb,0xf9,0xba,0xfa,0x4c,0xfc,0x4b,0xfe,0x31,0x0, +0xa0,0x1,0x72,0x2,0x9f,0x2,0x5e,0x2,0xef,0x1,0x5b,0x1, +0x95,0x0,0x81,0xff,0x5f,0xfe,0xf8,0xfd,0x7b,0xfe,0x21,0xff, +0xbd,0xff,0xba,0x0,0xd3,0x1,0xa5,0x2,0x4b,0x3,0xc9,0x3, +0xdb,0x3,0x5a,0x3,0x81,0x2,0xcb,0x1,0x34,0x1,0x4b,0x0, +0x3a,0xff,0x88,0xfe,0x35,0xfe,0xf1,0xfd,0x9e,0xfd,0x75,0xfd, +0xae,0xfd,0xff,0xfd,0x2a,0xfe,0x86,0xfe,0x32,0xff,0xd2,0xff, +0x64,0x0,0x17,0x1,0xd4,0x1,0x56,0x2,0x4c,0x2,0xb7,0x1, +0xea,0x0,0xea,0xff,0xe5,0xfe,0x5a,0xfe,0x4,0xfe,0x6d,0xfd, +0x44,0xfd,0x8,0xfe,0xfc,0xfe,0x7b,0xff,0xb2,0xff,0x5,0x0, +0xa5,0x0,0x2e,0x1,0x1d,0x1,0x9a,0x0,0xf0,0xff,0x29,0xff, +0xa9,0xfe,0xa7,0xfe,0x98,0xfe,0x4d,0xfe,0x6a,0xfe,0x37,0xff, +0x4e,0x0,0x3a,0x1,0xbd,0x1,0xe2,0x1,0xd9,0x1,0x97,0x1, +0x21,0x1,0xcd,0x0,0xb1,0x0,0x88,0x0,0x57,0x0,0x3c,0x0, +0xfe,0xff,0x90,0xff,0x44,0xff,0x3d,0xff,0x5e,0xff,0xae,0xff, +0x20,0x0,0x6b,0x0,0x69,0x0,0x26,0x0,0xcd,0xff,0xb3,0xff, +0xf0,0xff,0x3a,0x0,0x88,0x0,0x2,0x1,0x64,0x1,0x79,0x1, +0x6c,0x1,0x33,0x1,0xb2,0x0,0x3d,0x0,0xda,0xff,0x2d,0xff, +0x6a,0xfe,0x1f,0xfe,0x47,0xfe,0x8a,0xfe,0xd1,0xfe,0x11,0xff, +0x1b,0xff,0xf9,0xfe,0x10,0xff,0x7c,0xff,0xd4,0xff,0xe7,0xff, +0xd5,0xff,0xc5,0xff,0xeb,0xff,0x48,0x0,0x93,0x0,0xda,0x0, +0x40,0x1,0x93,0x1,0xc4,0x1,0xbd,0x1,0x43,0x1,0x8f,0x0, +0xdd,0xff,0x10,0xff,0x83,0xfe,0x6e,0xfe,0x53,0xfe,0x56,0xfe, +0xd6,0xfe,0x48,0xff,0x8d,0xff,0x19,0x0,0x9a,0x0,0xe7,0x0, +0x6c,0x1,0xea,0x1,0x6,0x2,0xf9,0x1,0xbd,0x1,0x5e,0x1, +0x37,0x1,0x21,0x1,0xdb,0x0,0x90,0x0,0x43,0x0,0xd4,0xff, +0x57,0xff,0xfa,0xfe,0xf9,0xfe,0x3f,0xff,0x60,0xff,0x54,0xff, +0x41,0xff,0x17,0xff,0xf0,0xfe,0xe2,0xfe,0xde,0xfe,0xf8,0xfe, +0x24,0xff,0x42,0xff,0x9a,0xff,0x34,0x0,0xa0,0x0,0xd9,0x0, +0x1f,0x1,0x52,0x1,0x4d,0x1,0x21,0x1,0xe9,0x0,0xa0,0x0, +0x2c,0x0,0x9e,0xff,0x26,0xff,0xd4,0xfe,0xe8,0xfe,0x68,0xff, +0xb1,0xff,0xa0,0xff,0xc8,0xff,0xd,0x0,0x2,0x0,0xdb,0xff, +0xb2,0xff,0x6d,0xff,0x4a,0xff,0x5e,0xff,0x76,0xff,0x98,0xff, +0xdf,0xff,0x6a,0x0,0x3f,0x1,0xf1,0x1,0x32,0x2,0x48,0x2, +0x52,0x2,0x2e,0x2,0xf0,0x1,0x98,0x1,0xc,0x1,0x60,0x0, +0x9a,0xff,0xba,0xfe,0xf6,0xfd,0x73,0xfd,0x33,0xfd,0x4c,0xfd, +0xb3,0xfd,0x53,0xfe,0x48,0xff,0x87,0x0,0xbf,0x1,0xcc,0x2, +0x99,0x3,0xfd,0x3,0x3,0x4,0x86,0x3,0x4,0x2,0x9b,0xff, +0x3a,0xfd,0xa7,0xfb,0x4b,0xfb,0x1f,0xfc,0x6d,0xfd,0x9d,0xfe, +0xb7,0xff,0xb8,0x0,0xa3,0x1,0x8f,0x2,0xf,0x3,0xcd,0x2, +0x3,0x2,0xdb,0x0,0x96,0xff,0x98,0xfe,0xbe,0xfd,0xe,0xfd, +0xfc,0xfc,0x4b,0xfd,0xb7,0xfd,0xaf,0xfe,0xf7,0xff,0xf5,0x0, +0xe2,0x1,0xa0,0x2,0x8d,0x2,0xdb,0x1,0xef,0x0,0xe5,0xff, +0x43,0xff,0x4d,0xff,0x96,0xff,0xf6,0xff,0x57,0x0,0x6f,0x0, +0x74,0x0,0xb1,0x0,0xda,0x0,0xa9,0x0,0x2a,0x0,0x73,0xff, +0xcd,0xfe,0x9d,0xfe,0xff,0xfe,0xc5,0xff,0xc3,0x0,0xbe,0x1, +0x55,0x2,0x56,0x2,0x5,0x2,0xa0,0x1,0xd,0x1,0x32,0x0, +0x7,0xff,0xb1,0xfd,0xb7,0xfc,0x8f,0xfc,0x38,0xfd,0x83,0xfe, +0x4,0x0,0x3f,0x1,0x36,0x2,0xe,0x3,0xa1,0x3,0xb7,0x3, +0x8,0x3,0x8e,0x1,0xe1,0xff,0x74,0xfe,0x3c,0xfd,0x62,0xfc, +0x18,0xfc,0x2d,0xfc,0xa7,0xfc,0xd1,0xfd,0x86,0xff,0x37,0x1, +0x6f,0x2,0x1a,0x3,0x51,0x3,0x13,0x3,0x7c,0x2,0xc8,0x1, +0xe2,0x0,0xc0,0xff,0xb8,0xfe,0xdc,0xfd,0x7,0xfd,0x84,0xfc, +0xa2,0xfc,0x5f,0xfd,0xb0,0xfe,0x48,0x0,0xa0,0x1,0x80,0x2, +0xd6,0x2,0x99,0x2,0x23,0x2,0xbc,0x1,0x2a,0x1,0x63,0x0, +0xb3,0xff,0x38,0xff,0x0,0xff,0x21,0xff,0x76,0xff,0xe0,0xff, +0x49,0x0,0x70,0x0,0x59,0x0,0x49,0x0,0x39,0x0,0x29,0x0, +0x45,0x0,0x37,0x0,0xb7,0xff,0x3b,0xff,0x7,0xff,0xf4,0xfe, +0x2a,0xff,0x91,0xff,0xb0,0xff,0xb7,0xff,0x2,0x0,0x57,0x0, +0x9d,0x0,0xea,0x0,0xfe,0x0,0xd1,0x0,0xa4,0x0,0x80,0x0, +0x79,0x0,0xa8,0x0,0xcb,0x0,0xba,0x0,0x85,0x0,0x15,0x0, +0x70,0xff,0xe4,0xfe,0x9a,0xfe,0x8b,0xfe,0x9d,0xfe,0xc6,0xfe, +0x1b,0xff,0x72,0xff,0xa2,0xff,0x1,0x0,0x9c,0x0,0xe2,0x0, +0xcd,0x0,0xd0,0x0,0xe1,0x0,0xd4,0x0,0xbc,0x0,0x90,0x0, +0x56,0x0,0x3d,0x0,0x40,0x0,0x4b,0x0,0x53,0x0,0x4d,0x0, +0x6b,0x0,0xcf,0x0,0x30,0x1,0x3e,0x1,0xe8,0x0,0x38,0x0, +0x7f,0xff,0x17,0xff,0x3,0xff,0x21,0xff,0x25,0xff,0xdf,0xfe, +0xbe,0xfe,0xb,0xff,0x6f,0xff,0xda,0xff,0x6e,0x0,0xce,0x0, +0xee,0x0,0x24,0x1,0x4e,0x1,0x30,0x1,0xe6,0x0,0x86,0x0, +0x40,0x0,0x2a,0x0,0xf1,0xff,0xa1,0xff,0x95,0xff,0x85,0xff, +0x37,0xff,0xf9,0xfe,0xe2,0xfe,0xe1,0xfe,0xe,0xff,0x4a,0xff, +0x74,0xff,0x9d,0xff,0xc6,0xff,0x9,0x0,0x57,0x0,0x6d,0x0, +0x83,0x0,0xe1,0x0,0x3f,0x1,0x86,0x1,0xd0,0x1,0xcb,0x1, +0x76,0x1,0x31,0x1,0xd5,0x0,0x24,0x0,0x33,0xff,0xfc,0xfd, +0xb8,0xfc,0xd7,0xfb,0x82,0xfb,0xf9,0xfb,0x6f,0xfd,0x5a,0xff, +0x21,0x1,0xc9,0x2,0x84,0x4,0x1a,0x6,0xcf,0x6,0xff,0x5, +0xd3,0x3,0xcf,0x0,0x84,0xfd,0xf7,0xfa,0xee,0xf9,0x35,0xfa, +0x49,0xfb,0xbe,0xfc,0x4a,0xfe,0xe7,0xff,0x6b,0x1,0x94,0x2, +0x74,0x3,0xe4,0x3,0x86,0x3,0x96,0x2,0x6a,0x1,0xe2,0xff, +0x40,0xfe,0x28,0xfd,0xcb,0xfc,0xf,0xfd,0xe5,0xfd,0xc,0xff, +0x2d,0x0,0x2f,0x1,0x18,0x2,0xc5,0x2,0xf5,0x2,0x8b,0x2, +0x99,0x1,0x64,0x0,0x4b,0xff,0x73,0xfe,0xe2,0xfd,0xcb,0xfd, +0xe,0xfe,0x31,0xfe,0x4e,0xfe,0xd3,0xfe,0xba,0xff,0xb9,0x0, +0x71,0x1,0x83,0x1,0x2d,0x1,0xd,0x1,0x22,0x1,0x14,0x1, +0xe8,0x0,0xa6,0x0,0x34,0x0,0xc4,0xff,0xa9,0xff,0xb7,0xff, +0x8e,0xff,0x45,0xff,0x12,0xff,0xfa,0xfe,0x29,0xff,0xbb,0xff, +0x77,0x0,0x39,0x1,0xd3,0x1,0xe8,0x1,0x9b,0x1,0x4d,0x1, +0xd1,0x0,0xf9,0xff,0x9,0xff,0x31,0xfe,0x9a,0xfd,0x72,0xfd, +0xbc,0xfd,0x73,0xfe,0x57,0xff,0x6,0x0,0xc7,0x0,0xf0,0x1, +0xe4,0x2,0x1f,0x3,0xcd,0x2,0xfb,0x1,0xbe,0x0,0x9b,0xff, +0xe6,0xfe,0x97,0xfe,0xaa,0xfe,0xfe,0xfe,0x54,0xff,0x97,0xff, +0xcc,0xff,0xde,0xff,0xc0,0xff,0xb4,0xff,0xf1,0xff,0x32,0x0, +0x1a,0x0,0xb8,0xff,0x4d,0xff,0x1a,0xff,0x61,0xff,0x28,0x0, +0x27,0x1,0xde,0x1,0xe8,0x1,0x84,0x1,0x32,0x1,0xf6,0x0, +0x9d,0x0,0x25,0x0,0x90,0xff,0xfb,0xfe,0x9d,0xfe,0x95,0xfe, +0xcf,0xfe,0xfd,0xfe,0x0,0xff,0x28,0xff,0x7c,0xff,0xad,0xff, +0xf1,0xff,0x7e,0x0,0xf4,0x0,0x1a,0x1,0xc,0x1,0xd2,0x0, +0x8c,0x0,0x62,0x0,0x47,0x0,0x33,0x0,0xd,0x0,0xc9,0xff, +0x84,0xff,0x37,0xff,0xed,0xfe,0xff,0xfe,0x55,0xff,0x9c,0xff, +0xeb,0xff,0x4f,0x0,0xbe,0x0,0x51,0x1,0xb2,0x1,0x74,0x1, +0xd5,0x0,0xf,0x0,0x2a,0xff,0x8e,0xfe,0x67,0xfe,0x67,0xfe, +0x7f,0xfe,0xe1,0xfe,0x85,0xff,0x21,0x0,0x75,0x0,0xab,0x0, +0x6,0x1,0x5c,0x1,0x74,0x1,0x50,0x1,0x0,0x1,0xb5,0x0, +0x71,0x0,0xec,0xff,0x3c,0xff,0xbc,0xfe,0x8f,0xfe,0xd3,0xfe, +0x63,0xff,0xbf,0xff,0xcb,0xff,0xb7,0xff,0x77,0xff,0x32,0xff, +0x2d,0xff,0x5c,0xff,0xb8,0xff,0x4e,0x0,0xf4,0x0,0x67,0x1, +0x81,0x1,0x77,0x1,0x7e,0x1,0x49,0x1,0xc2,0x0,0x61,0x0, +0x3,0x0,0x58,0xff,0xde,0xfe,0xc9,0xfe,0xd2,0xfe,0x27,0xff, +0xb0,0xff,0xe2,0xff,0xc6,0xff,0xa9,0xff,0xb0,0xff,0x32,0x0, +0x0,0x1,0x54,0x1,0xf,0x1,0x98,0x0,0x1a,0x0,0xb8,0xff, +0x89,0xff,0x7d,0xff,0x9b,0xff,0xe5,0xff,0x4a,0x0,0xb9,0x0, +0x10,0x1,0x4d,0x1,0x75,0x1,0x4e,0x1,0xd1,0x0,0x23,0x0, +0x7,0xff,0x75,0xfd,0xdd,0xfb,0x97,0xfa,0x1e,0xfa,0xee,0xfa, +0xa5,0xfc,0xbb,0xfe,0x2e,0x1,0xb3,0x3,0xcd,0x5,0x4f,0x7, +0xae,0x7,0x45,0x6,0x60,0x3,0xdd,0xff,0xa7,0xfc,0xa6,0xfa, +0x5,0xfa,0x32,0xfa,0xe5,0xfa,0x2c,0xfc,0x3,0xfe,0x55,0x0, +0xa7,0x2,0x1c,0x4,0x6f,0x4,0xe,0x4,0x32,0x3,0xec,0x1, +0x87,0x0,0x2b,0xff,0xf7,0xfd,0x6b,0xfd,0xd6,0xfd,0xb8,0xfe, +0x8b,0xff,0x52,0x0,0x1f,0x1,0xbf,0x1,0xf2,0x1,0x8d,0x1, +0xa5,0x0,0xb6,0xff,0x2d,0xff,0xe9,0xfe,0xaa,0xfe,0xa7,0xfe, +0xf,0xff,0x8e,0xff,0xd0,0xff,0xf0,0xff,0x18,0x0,0x3d,0x0, +0x36,0x0,0xc3,0xff,0xdd,0xfe,0xe,0xfe,0xe0,0xfd,0x52,0xfe, +0x16,0xff,0x1,0x0,0xfe,0x0,0xf3,0x1,0xb5,0x2,0x4,0x3, +0xa9,0x2,0xbf,0x1,0x96,0x0,0x43,0xff,0xbb,0xfd,0x6c,0xfc, +0xe6,0xfb,0x40,0xfc,0x46,0xfd,0x97,0xfe,0x8b,0xff,0x15,0x0, +0xd4,0x0,0xc1,0x1,0x33,0x2,0x1f,0x2,0xc4,0x1,0x32,0x1, +0xd5,0x0,0xf5,0x0,0x6,0x1,0xb0,0x0,0x4d,0x0,0x20,0x0, +0x36,0x0,0x91,0x0,0xd5,0x0,0xae,0x0,0x4d,0x0,0xe4,0xff, +0x6a,0xff,0x7,0xff,0x3,0xff,0x48,0xff,0x8b,0xff,0xd4,0xff, +0x45,0x0,0x94,0x0,0x69,0x0,0xf5,0xff,0xac,0xff,0xbd,0xff, +0xf1,0xff,0xee,0xff,0xce,0xff,0xf0,0xff,0x38,0x0,0x74,0x0, +0xd7,0x0,0x4c,0x1,0x76,0x1,0x4f,0x1,0xd0,0x0,0xfb,0xff, +0x32,0xff,0x9e,0xfe,0x21,0xfe,0xcc,0xfd,0x95,0xfd,0x88,0xfd, +0x2,0xfe,0xd2,0xfe,0x76,0xff,0x14,0x0,0xd2,0x0,0x64,0x1, +0xd0,0x1,0xc,0x2,0xca,0x1,0x32,0x1,0x87,0x0,0xcc,0xff, +0x47,0xff,0xe,0xff,0xd1,0xfe,0xbb,0xfe,0x19,0xff,0xa7,0xff, +0x3f,0x0,0x1,0x1,0xd0,0x1,0x83,0x2,0xe1,0x2,0x8c,0x2, +0x9e,0x1,0x81,0x0,0x40,0xff,0xfe,0xfd,0x41,0xfd,0x26,0xfd, +0x38,0xfd,0x49,0xfd,0xb9,0xfd,0xc6,0xfe,0x23,0x0,0x62,0x1, +0x66,0x2,0x25,0x3,0x60,0x3,0xb,0x3,0x69,0x2,0x84,0x1, +0x40,0x0,0xe9,0xfe,0xf8,0xfd,0x6b,0xfd,0x1a,0xfd,0x23,0xfd, +0x91,0xfd,0x42,0xfe,0x22,0xff,0xd,0x0,0xd2,0x0,0x66,0x1, +0xc4,0x1,0xd5,0x1,0x9a,0x1,0x1b,0x1,0x78,0x0,0xef,0xff, +0x8a,0xff,0x1f,0xff,0xc5,0xfe,0xd8,0xfe,0x5f,0xff,0xe8,0xff, +0x16,0x0,0xb,0x0,0x4,0x0,0xff,0xff,0x19,0x0,0x7b,0x0, +0xce,0x0,0xa8,0x0,0x5f,0x0,0x71,0x0,0xaa,0x0,0xa3,0x0, +0x64,0x0,0x1b,0x0,0xdc,0xff,0xb8,0xff,0xa0,0xff,0x85,0xff, +0x83,0xff,0xad,0xff,0xe4,0xff,0x1f,0x0,0x86,0x0,0x41,0x1, +0x28,0x2,0xb5,0x2,0xc5,0x2,0xa9,0x2,0x4f,0x2,0x83,0x1, +0x98,0x0,0xab,0xff,0x5c,0xfe,0xb2,0xfc,0x1b,0xfb,0xf1,0xf9, +0x59,0xf9,0x2a,0xf9,0x7b,0xf9,0xd9,0xfa,0x3f,0xfd,0xd,0x0, +0xe4,0x2,0x61,0x5,0x3f,0x7,0xbf,0x8,0x82,0x9,0x7d,0x8, +0x76,0x5,0xb,0x1,0x56,0xfc,0xcd,0xf8,0x1,0xf7,0x89,0xf6, +0x5b,0xf7,0x82,0xf9,0x89,0xfc,0x10,0x0,0x94,0x3,0x30,0x6, +0x81,0x7,0xb2,0x7,0xe2,0x6,0xe,0x5,0x53,0x2,0x5a,0xff, +0x9,0xfd,0x8a,0xfb,0xa2,0xfa,0x71,0xfa,0x2c,0xfb,0xed,0xfc, +0x93,0xff,0x6d,0x2,0xbe,0x4,0x27,0x6,0x74,0x6,0xed,0x5, +0xe7,0x4,0x29,0x3,0xf6,0x0,0x23,0xff,0xa2,0xfd,0x12,0xfc, +0xd8,0xfa,0x6c,0xfa,0xea,0xfa,0x23,0xfc,0x8a,0xfd,0xb2,0xfe, +0xa1,0xff,0x68,0x0,0x1b,0x1,0xb1,0x1,0xfa,0x1,0x14,0x2, +0x32,0x2,0x57,0x2,0x70,0x2,0xb,0x2,0xf0,0x0,0xee,0xff, +0x6e,0xff,0xaf,0xfe,0x63,0xfd,0x9,0xfc,0x22,0xfb,0x26,0xfb, +0x13,0xfc,0x55,0xfd,0xad,0xfe,0xf7,0xff,0x1,0x1,0xa,0x2, +0xf9,0x2,0x2f,0x3,0xc7,0x2,0x33,0x2,0x70,0x1,0xb5,0x0, +0x3e,0x0,0xb1,0xff,0xed,0xfe,0x50,0xfe,0xd,0xfe,0x4d,0xfe, +0x38,0xff,0x88,0x0,0xcc,0x1,0xed,0x2,0xed,0x3,0x69,0x4, +0x2,0x4,0xfa,0x2,0x97,0x1,0xb7,0xff,0xaa,0xfd,0x9,0xfc, +0xe5,0xfa,0x5b,0xfa,0xd0,0xfa,0x3e,0xfc,0x65,0xfe,0xed,0x0, +0x35,0x3,0xdd,0x4,0xc8,0x5,0x8f,0x5,0x39,0x4,0x5e,0x2, +0x41,0x0,0xfe,0xfd,0x7,0xfc,0xab,0xfa,0x1d,0xfa,0x77,0xfa, +0x76,0xfb,0xf7,0xfc,0xf2,0xfe,0xe7,0x0,0x6e,0x2,0xa9,0x3, +0x77,0x4,0x5c,0x4,0x54,0x3,0xc6,0x1,0x0,0x0,0x4e,0xfe, +0xc,0xfd,0x68,0xfc,0x56,0xfc,0xd5,0xfc,0xd7,0xfd,0xf8,0xfe, +0xf2,0xff,0xe6,0x0,0xc9,0x1,0x5b,0x2,0x8c,0x2,0x73,0x2, +0x34,0x2,0xf0,0x1,0x8d,0x1,0xa,0x1,0x8c,0x0,0xf1,0xff, +0x36,0xff,0xd5,0xfe,0xed,0xfe,0x20,0xff,0x71,0xff,0x15,0x0, +0xd6,0x0,0x6f,0x1,0xea,0x1,0x4d,0x2,0x63,0x2,0x15,0x2, +0x9a,0x1,0xff,0x0,0x11,0x0,0xef,0xfe,0xea,0xfd,0x13,0xfd, +0x80,0xfc,0x61,0xfc,0xc1,0xfc,0xa9,0xfd,0xfb,0xfe,0x29,0x0, +0xee,0x0,0x9e,0x1,0x41,0x2,0x7a,0x2,0x45,0x2,0xd3,0x1, +0x22,0x1,0x38,0x0,0x5f,0xff,0xd6,0xfe,0x93,0xfe,0x84,0xfe, +0xc6,0xfe,0x67,0xff,0x2c,0x0,0xc4,0x0,0xd,0x1,0x27,0x1, +0x1e,0x1,0xbe,0x0,0x1c,0x0,0xca,0xff,0x1,0x0,0x67,0x0, +0xcd,0x0,0x38,0x1,0x99,0x1,0xed,0x1,0x17,0x2,0xd9,0x1, +0x3d,0x1,0x91,0x0,0xff,0xff,0x88,0xff,0x4,0xff,0x69,0xfe, +0x1d,0xfe,0x71,0xfe,0x10,0xff,0x9c,0xff,0x16,0x0,0x69,0x0, +0x4a,0x0,0x9a,0xff,0x72,0xfe,0xff,0xfc,0x7e,0xfb,0x31,0xfa, +0x52,0xf9,0x15,0xf9,0xb7,0xf9,0x5e,0xfb,0xf9,0xfd,0x33,0x1, +0x6c,0x4,0xc,0x7,0xc,0x9,0x5d,0xa,0x25,0xa,0xb3,0x7, +0x84,0x3,0xb7,0xfe,0x5b,0xfa,0x42,0xf7,0xb2,0xf5,0x82,0xf5, +0xb3,0xf6,0x64,0xf9,0x49,0xfd,0x67,0x1,0xa2,0x4,0xc5,0x6, +0x45,0x8,0x4,0x9,0x71,0x8,0x93,0x6,0xfb,0x3,0x48,0x1, +0xe9,0xfe,0xd6,0xfc,0x1a,0xfb,0x5c,0xfa,0xf,0xfb,0xde,0xfc, +0x29,0xff,0x59,0x1,0x9,0x3,0x44,0x4,0x7,0x5,0xf7,0x4, +0xa,0x4,0xae,0x2,0x15,0x1,0x38,0xff,0x41,0xfd,0x8b,0xfb, +0x6c,0xfa,0x15,0xfa,0x8b,0xfa,0xa4,0xfb,0xef,0xfc,0xc,0xfe, +0x29,0xff,0x6a,0x0,0x4a,0x1,0x7f,0x1,0x78,0x1,0x6f,0x1, +0x3c,0x1,0xd8,0x0,0x2d,0x0,0x37,0xff,0x6b,0xfe,0xf9,0xfd, +0x74,0xfd,0xcf,0xfc,0x74,0xfc,0x9c,0xfc,0x4f,0xfd,0x63,0xfe, +0x6a,0xff,0x3a,0x0,0xf8,0x0,0xab,0x1,0x4b,0x2,0x93,0x2, +0x17,0x2,0x26,0x1,0x6e,0x0,0xec,0xff,0x7f,0xff,0x6b,0xff, +0x8b,0xff,0x72,0xff,0x52,0xff,0x8a,0xff,0x17,0x0,0xfe,0x0, +0x4a,0x2,0xad,0x3,0xae,0x4,0x11,0x5,0xcd,0x4,0xf2,0x3, +0x9c,0x2,0xd7,0x0,0xc5,0xfe,0xda,0xfc,0x59,0xfb,0x28,0xfa, +0x8d,0xf9,0x1b,0xfa,0xaf,0xfb,0xd4,0xfd,0x4f,0x0,0x95,0x2, +0x1a,0x4,0x3,0x5,0x5f,0x5,0x3,0x5,0x3e,0x4,0x38,0x3, +0xb3,0x1,0x7,0x0,0x99,0xfe,0x17,0xfd,0x8d,0xfb,0x91,0xfa, +0x3d,0xfa,0x5a,0xfa,0xc9,0xfa,0x66,0xfb,0x68,0xfc,0x8,0xfe, +0xc7,0xff,0x31,0x1,0x6d,0x2,0x56,0x3,0x84,0x3,0x3c,0x3, +0xc3,0x2,0xa6,0x1,0xdb,0xff,0x36,0xfe,0x2a,0xfd,0x85,0xfc, +0x5b,0xfc,0xf8,0xfc,0x55,0xfe,0x53,0x0,0xb3,0x2,0xec,0x4, +0x9e,0x6,0xb1,0x7,0x1,0x8,0x51,0x7,0x5b,0x5,0x2b,0x2, +0x87,0xfe,0x3f,0xfb,0x8c,0xf8,0xba,0xf6,0x48,0xf6,0x4a,0xf7, +0xbc,0xf9,0x65,0xfd,0x53,0x1,0xd1,0x4,0xdf,0x7,0x8,0xa, +0xad,0xa,0xfb,0x9,0x44,0x8,0xa6,0x5,0x9b,0x2,0x99,0xff, +0xe0,0xfc,0xef,0xfa,0x8,0xfa,0xd,0xfa,0x19,0xfb,0x1,0xfd, +0xfa,0xfe,0x8e,0x0,0xd7,0x1,0xc1,0x2,0x7,0x3,0x9e,0x2, +0xc8,0x1,0xc8,0x0,0x96,0xff,0x46,0xfe,0x62,0xfd,0x28,0xfd, +0x43,0xfd,0xa9,0xfd,0x84,0xfe,0x8a,0xff,0x6a,0x0,0x48,0x1, +0x2e,0x2,0xd7,0x2,0x22,0x3,0x25,0x3,0xc3,0x2,0xd9,0x1, +0xb4,0x0,0x9e,0xff,0x72,0xfe,0x33,0xfd,0x36,0xfc,0x65,0xfb, +0x80,0xfa,0xa2,0xf9,0xcc,0xf8,0xe7,0xf7,0x42,0xf7,0xe,0xf7, +0x1e,0xf7,0x9c,0xf7,0xee,0xf8,0x3b,0xfb,0x8a,0xfe,0xa0,0x2, +0xe1,0x6,0xb5,0xa,0xc5,0xd,0xc9,0xf,0x45,0x10,0x7f,0xe, +0x4a,0xa,0x9b,0x4,0xa3,0xfe,0x3f,0xf9,0x52,0xf5,0x56,0xf3, +0x2b,0xf3,0xfb,0xf4,0xd1,0xf8,0x90,0xfd,0xcf,0x1,0x18,0x5, +0x8c,0x7,0x11,0x9,0x2c,0x9,0xb6,0x7,0x81,0x5,0x74,0x3, +0x9c,0x1,0xf5,0xff,0xf2,0xfe,0xbc,0xfe,0x28,0xff,0x1c,0x0, +0x3f,0x1,0x1c,0x2,0xb0,0x2,0xfa,0x2,0x91,0x2,0x4f,0x1, +0x9d,0xff,0xd1,0xfd,0x6,0xfc,0x8d,0xfa,0xc4,0xf9,0x8d,0xf9, +0x89,0xf9,0xb4,0xf9,0x4a,0xfa,0x53,0xfb,0x60,0xfc,0xc,0xfd, +0x9c,0xfd,0x68,0xfe,0xe,0xff,0x57,0xff,0xfe,0xff,0x5e,0x1, +0xcc,0x2,0xc5,0x3,0x4c,0x4,0x5b,0x4,0xbc,0x3,0x53,0x2, +0x6d,0x0,0x76,0xfe,0x62,0xfc,0x6f,0xfa,0x8e,0xf9,0xe7,0xf9, +0xc8,0xfa,0x30,0xfc,0x67,0xfe,0xfb,0x0,0x5d,0x3,0x43,0x5, +0x74,0x6,0x13,0x7,0x29,0x7,0x67,0x6,0xe5,0x4,0x16,0x3, +0x47,0x1,0xc1,0xff,0x96,0xfe,0xda,0xfd,0x13,0xfe,0x57,0xff, +0xfb,0x0,0xba,0x2,0x8e,0x4,0xe7,0x5,0x67,0x6,0x7,0x6, +0x93,0x4,0x39,0x2,0x9f,0xff,0x15,0xfd,0xa9,0xfa,0x97,0xf8, +0x3a,0xf7,0xe6,0xf6,0xad,0xf7,0x79,0xf9,0x30,0xfc,0x50,0xff, +0x27,0x2,0x64,0x4,0xda,0x5,0x62,0x6,0x17,0x6,0xfb,0x4, +0x41,0x3,0x7b,0x1,0xa2,0xff,0x74,0xfd,0x8a,0xfb,0x6b,0xfa, +0xe8,0xf9,0xd9,0xf9,0xf,0xfa,0x79,0xfa,0x7b,0xfb,0xf5,0xfc, +0x4f,0xfe,0xaa,0xff,0x7,0x1,0xca,0x1,0x1e,0x2,0x8c,0x2, +0xd0,0x2,0xc0,0x2,0xbb,0x2,0xcb,0x2,0xc5,0x2,0x97,0x2, +0x53,0x2,0x39,0x2,0x48,0x2,0x48,0x2,0x69,0x2,0xc5,0x2, +0xb,0x3,0x40,0x3,0x8b,0x3,0x97,0x3,0x1e,0x3,0x46,0x2, +0x4c,0x1,0x54,0x0,0x63,0xff,0x58,0xfe,0x37,0xfd,0x48,0xfc, +0xe0,0xfb,0x5,0xfc,0x92,0xfc,0xc8,0xfd,0xcc,0xff,0xe,0x2, +0x12,0x4,0xcc,0x5,0xfb,0x6,0x67,0x7,0x1b,0x7,0x1,0x6, +0x42,0x4,0x41,0x2,0xe8,0xff,0x60,0xfd,0x61,0xfb,0x10,0xfa, +0x41,0xf9,0x3d,0xf9,0x10,0xfa,0x6e,0xfb,0x2e,0xfd,0x16,0xff, +0xfc,0x0,0xad,0x2,0x8e,0x3,0x85,0x3,0x39,0x3,0xb9,0x2, +0xbb,0x1,0xba,0x0,0xc,0x0,0x6f,0xff,0x5,0xff,0x25,0xff, +0xa5,0xff,0x39,0x0,0xeb,0x0,0xe1,0x1,0xf8,0x2,0xbd,0x3, +0xea,0x3,0x8a,0x3,0xaf,0x2,0x74,0x1,0xe1,0xff,0xe0,0xfd, +0xbf,0xfb,0xf6,0xf9,0x9a,0xf8,0xb2,0xf7,0x55,0xf7,0x5b,0xf7, +0xbb,0xf7,0x8f,0xf8,0x8e,0xf9,0x67,0xfa,0x25,0xfb,0xe9,0xfb, +0xe3,0xfc,0x3c,0xfe,0xfc,0xff,0x70,0x2,0xbb,0x5,0x1d,0x9, +0xc7,0xb,0xa3,0xd,0x86,0xe,0xcb,0xd,0xeb,0xa,0x10,0x6, +0xc,0x0,0xd4,0xf9,0x4d,0xf4,0x90,0xf0,0x54,0xef,0x4e,0xf0, +0x1c,0xf3,0xd2,0xf7,0xd2,0xfd,0xa1,0x3,0x65,0x8,0x23,0xc, +0xad,0xe,0x88,0xf,0x9b,0xe,0x3d,0xc,0xec,0x8,0x2e,0x5, +0x7a,0x1,0x57,0xfe,0x59,0xfc,0x87,0xfb,0x7e,0xfb,0x2d,0xfc, +0x90,0xfd,0x25,0xff,0x6b,0x0,0x2f,0x1,0x53,0x1,0xe2,0x0, +0xdc,0xff,0x22,0xfe,0x28,0xfc,0xb5,0xfa,0xcd,0xf9,0x17,0xf9, +0xcb,0xf8,0x4f,0xf9,0x8a,0xfa,0xfa,0xfb,0x5a,0xfd,0xf8,0xfe, +0xde,0x0,0x5b,0x2,0x22,0x3,0xc6,0x3,0x72,0x4,0x90,0x4, +0xe8,0x3,0xf4,0x2,0xe7,0x1,0x58,0x0,0x4b,0xfe,0x6b,0xfc, +0xd2,0xfa,0x32,0xf9,0x23,0xf8,0x6f,0xf8,0xc9,0xf9,0x9e,0xfb, +0xf1,0xfd,0xd5,0x0,0xe9,0x3,0x7a,0x6,0x13,0x8,0xd1,0x8, +0xd0,0x8,0xe5,0x7,0x34,0x6,0x38,0x4,0x4d,0x2,0xb7,0x0, +0x90,0xff,0xe3,0xfe,0xf6,0xfe,0xe8,0xff,0x39,0x1,0x4e,0x2, +0x3,0x3,0x79,0x3,0x91,0x3,0xd,0x3,0x19,0x2,0x1,0x1, +0xab,0xff,0x2d,0xfe,0xff,0xfc,0x28,0xfc,0x75,0xfb,0x18,0xfb, +0x4e,0xfb,0x30,0xfc,0xbb,0xfd,0x8b,0xff,0x51,0x1,0xff,0x2, +0x3a,0x4,0xb3,0x4,0xa6,0x4,0x12,0x4,0xad,0x2,0xc7,0x0, +0xf5,0xfe,0x44,0xfd,0x79,0xfb,0xd6,0xf9,0x13,0xf9,0x41,0xf9, +0xa5,0xf9,0x13,0xfa,0xf3,0xfa,0x18,0xfc,0x2a,0xfd,0x50,0xfe, +0x8a,0xff,0xa5,0x0,0xc5,0x1,0x4,0x3,0x2a,0x4,0xf4,0x4, +0x4c,0x5,0x5b,0x5,0x2f,0x5,0x92,0x4,0x94,0x3,0x6a,0x2, +0x1b,0x1,0x0,0x0,0x6d,0xff,0x2f,0xff,0x51,0xff,0x2,0x0, +0xc9,0x0,0x75,0x1,0x62,0x2,0x28,0x3,0x21,0x3,0x89,0x2, +0xb2,0x1,0x95,0x0,0x4d,0xff,0x6,0xfe,0x25,0xfd,0x3c,0xfd, +0x26,0xfe,0x64,0xff,0x1c,0x1,0x6e,0x3,0xbf,0x5,0x5f,0x7, +0x2,0x8,0xb4,0x7,0xa5,0x6,0xc3,0x4,0x23,0x2,0x64,0xff, +0x0,0xfd,0xf6,0xfa,0x77,0xf9,0xe3,0xf8,0x1e,0xf9,0xc2,0xf9, +0xc1,0xfa,0x49,0xfc,0x44,0xfe,0x3f,0x0,0xad,0x1,0x47,0x2, +0x54,0x2,0x43,0x2,0xf4,0x1,0x20,0x1,0x33,0x0,0xb4,0xff, +0x8e,0xff,0xb8,0xff,0x68,0x0,0x55,0x1,0x1f,0x2,0xda,0x2, +0x5b,0x3,0x2f,0x3,0x6b,0x2,0x63,0x1,0x22,0x0,0xcd,0xfe, +0x90,0xfd,0x56,0xfc,0x30,0xfb,0x71,0xfa,0x2f,0xfa,0x40,0xfa, +0x7d,0xfa,0xbe,0xfa,0xe9,0xfa,0xf3,0xfa,0xb1,0xfa,0x26,0xfa, +0x95,0xf9,0x1d,0xf9,0xdc,0xf8,0x45,0xf9,0xb7,0xfa,0x2f,0xfd, +0x92,0x0,0xb9,0x4,0x32,0x9,0x3c,0xd,0x1,0x10,0xec,0x10, +0xcb,0xf,0x84,0xc,0xfc,0x6,0xa8,0xff,0xf6,0xf7,0x81,0xf1, +0x2c,0xed,0x76,0xeb,0xce,0xec,0xf,0xf1,0x53,0xf7,0x91,0xfe, +0xa8,0x5,0x61,0xb,0x21,0xf,0x7,0x11,0x39,0x11,0xb4,0xf, +0xac,0xc,0xb1,0x8,0x7d,0x4,0x9e,0x0,0x86,0xfd,0xa0,0xfb, +0xe5,0xfa,0x13,0xfb,0x37,0xfc,0x1e,0xfe,0x2,0x0,0x53,0x1, +0xdc,0x1,0x5f,0x1,0x2,0x0,0x4e,0xfe,0x7a,0xfc,0x84,0xfa, +0xba,0xf8,0x9f,0xf7,0x77,0xf7,0xfa,0xf7,0xec,0xf8,0xb0,0xfa, +0x46,0xfd,0xab,0xff,0x3b,0x1,0x5d,0x2,0x66,0x3,0xef,0x3, +0x88,0x3,0x91,0x2,0xdd,0x1,0x5d,0x1,0x87,0x0,0xb1,0xff, +0x3a,0xff,0x78,0xfe,0x33,0xfd,0x2e,0xfc,0x8d,0xfb,0xc5,0xfa, +0xfa,0xf9,0x0,0xfa,0x21,0xfb,0xa1,0xfc,0xfe,0xfd,0xbd,0xff, +0x6,0x2,0x12,0x4,0xa7,0x5,0xfe,0x6,0xa7,0x7,0x65,0x7, +0xa9,0x6,0x93,0x5,0x20,0x4,0xa4,0x2,0x4f,0x1,0x56,0x0, +0x1d,0x0,0x8b,0x0,0x3e,0x1,0x16,0x2,0xef,0x2,0x85,0x3, +0x94,0x3,0xe2,0x2,0x97,0x1,0x3,0x0,0x29,0xfe,0x42,0xfc, +0xd8,0xfa,0x19,0xfa,0x8,0xfa,0xc3,0xfa,0x17,0xfc,0xb4,0xfd, +0x8d,0xff,0x89,0x1,0x68,0x3,0xbf,0x4,0xfa,0x4,0x38,0x4, +0x34,0x3,0x1,0x2,0x3d,0x0,0x44,0xfe,0xba,0xfc,0xae,0xfb, +0xe9,0xfa,0x79,0xfa,0x92,0xfa,0x23,0xfb,0xce,0xfb,0x63,0xfc, +0xf5,0xfc,0x8d,0xfd,0x2b,0xfe,0xc6,0xfe,0x4d,0xff,0xda,0xff, +0x8e,0x0,0x63,0x1,0x53,0x2,0x45,0x3,0xfb,0x3,0x64,0x4, +0xb0,0x4,0xf5,0x4,0x24,0x5,0x0,0x5,0x68,0x4,0xa2,0x3, +0xf0,0x2,0x29,0x2,0x4b,0x1,0x8a,0x0,0xcf,0xff,0x5,0xff, +0x8a,0xfe,0x9c,0xfe,0xe8,0xfe,0x4,0xff,0xff,0xfe,0x31,0xff, +0xa1,0xff,0x6,0x0,0x58,0x0,0xdd,0x0,0xa3,0x1,0x44,0x2, +0x8f,0x2,0x1,0x3,0xd4,0x3,0x55,0x4,0x1a,0x4,0x89,0x3, +0xdb,0x2,0x1,0x2,0x1,0x1,0xab,0xff,0x11,0xfe,0xcd,0xfc, +0xc,0xfc,0xb0,0xfb,0xe5,0xfb,0x70,0xfc,0xdf,0xfc,0x7c,0xfd, +0x74,0xfe,0x4b,0xff,0xdd,0xff,0x68,0x0,0xf5,0x0,0x73,0x1, +0xc2,0x1,0xe2,0x1,0x11,0x2,0x3d,0x2,0x47,0x2,0x81,0x2, +0xd6,0x2,0xb1,0x2,0x21,0x2,0x98,0x1,0x3,0x1,0x2a,0x0, +0x1f,0xff,0x39,0xfe,0xc3,0xfd,0x7c,0xfd,0x36,0xfd,0x51,0xfd, +0xd4,0xfd,0x3d,0xfe,0x63,0xfe,0x2b,0xfe,0x57,0xfd,0xe,0xfc, +0x82,0xfa,0xb5,0xf8,0xf9,0xf6,0x97,0xf5,0xac,0xf4,0x9f,0xf4, +0xad,0xf5,0xaf,0xf7,0xc6,0xfa,0x1b,0xff,0x4c,0x4,0x9f,0x9, +0x15,0xe,0xe8,0x10,0x17,0x12,0x8a,0x11,0xb4,0xe,0xb3,0x9, +0x3b,0x3,0xb,0xfc,0x5f,0xf5,0x8d,0xf0,0x2a,0xee,0x59,0xee, +0xf7,0xf0,0x68,0xf5,0x5,0xfb,0xf,0x1,0x76,0x6,0x81,0xa, +0xf,0xd,0x6,0xe,0x4f,0xd,0x2,0xb,0xa5,0x7,0x35,0x4, +0x5e,0x1,0x4e,0xff,0x5e,0xfe,0xad,0xfe,0xc0,0xff,0x3d,0x1, +0xd9,0x2,0xf8,0x3,0x61,0x4,0x2b,0x4,0x12,0x3,0xf7,0x0, +0x1d,0xfe,0xf2,0xfa,0x2e,0xf8,0x4a,0xf6,0x2a,0xf5,0xea,0xf4, +0xa6,0xf5,0xf1,0xf6,0xda,0xf8,0x95,0xfb,0x38,0xfe,0xf3,0xff, +0x29,0x1,0xb,0x2,0x52,0x2,0x34,0x2,0x2,0x2,0xe1,0x1, +0x1,0x2,0x50,0x2,0x99,0x2,0xd2,0x2,0xb5,0x2,0xfc,0x1, +0xe9,0x0,0xa2,0xff,0xba,0xfd,0x33,0xfb,0x15,0xf9,0x38,0xf8, +0x3e,0xf8,0xae,0xf8,0x11,0xfa,0xb0,0xfc,0xc9,0xff,0xbc,0x2, +0x5f,0x5,0x57,0x7,0x4f,0x8,0x48,0x8,0x83,0x7,0x73,0x6, +0x27,0x5,0x8b,0x3,0x49,0x2,0xd3,0x1,0xa8,0x1,0xba,0x1, +0x75,0x2,0x63,0x3,0xfb,0x3,0x3b,0x4,0xb5,0x3,0x19,0x2, +0x13,0x0,0x28,0xfe,0x35,0xfc,0x67,0xfa,0x44,0xf9,0xfc,0xf8, +0x68,0xf9,0x66,0xfa,0xea,0xfb,0xbe,0xfd,0x8f,0xff,0x3d,0x1, +0xb0,0x2,0x92,0x3,0xbd,0x3,0x77,0x3,0xfb,0x2,0x52,0x2, +0x97,0x1,0xa,0x1,0xad,0x0,0x54,0x0,0xfb,0xff,0x9c,0xff, +0xfa,0xfe,0xf,0xfe,0x16,0xfd,0xf,0xfc,0xfe,0xfa,0x3b,0xfa, +0xf,0xfa,0x94,0xfa,0xbc,0xfb,0x40,0xfd,0xf3,0xfe,0xd4,0x0, +0x9f,0x2,0xfa,0x3,0xdd,0x4,0x59,0x5,0x56,0x5,0xb2,0x4, +0x8e,0x3,0x5d,0x2,0x5c,0x1,0x93,0x0,0x52,0x0,0xcb,0x0, +0xb0,0x1,0xe3,0x2,0x4a,0x4,0x4d,0x5,0x80,0x5,0x4,0x5, +0xe9,0x3,0x28,0x2,0xf0,0xff,0x95,0xfd,0x70,0xfb,0xc2,0xf9, +0xe0,0xf8,0x39,0xf9,0x92,0xfa,0x4c,0xfc,0x6d,0xfe,0x0,0x1, +0x6b,0x3,0x46,0x5,0x72,0x6,0xaf,0x6,0x1b,0x6,0x11,0x5, +0xac,0x3,0x2c,0x2,0xee,0x0,0xfe,0xff,0x54,0xff,0xf3,0xfe, +0xcd,0xfe,0xbd,0xfe,0x7e,0xfe,0x13,0xfe,0xd5,0xfd,0xa6,0xfd, +0x70,0xfd,0xb2,0xfd,0x6d,0xfe,0x19,0xff,0xbf,0xff,0x78,0x0, +0xa,0x1,0x7f,0x1,0xd1,0x1,0xcd,0x1,0x94,0x1,0x32,0x1, +0xa4,0x0,0x65,0x0,0x92,0x0,0xbb,0x0,0xfb,0x0,0x92,0x1, +0x10,0x2,0xf9,0x1,0x4a,0x1,0x38,0x0,0xe3,0xfe,0x18,0xfd, +0xc1,0xfa,0x3a,0xf8,0xaa,0xf5,0x3,0xf3,0xb6,0xf0,0x61,0xef, +0xf,0xef,0x7e,0xef,0xe5,0xf0,0x5,0xf4,0x23,0xf9,0xac,0xff, +0xfd,0x6,0x49,0xe,0x48,0x14,0x45,0x18,0x28,0x1a,0x47,0x19, +0x15,0x15,0x2e,0xe,0xa2,0x5,0x99,0xfc,0x80,0xf4,0x7f,0xee, +0x45,0xeb,0x21,0xeb,0xdd,0xed,0xe2,0xf2,0x49,0xf9,0xce,0xff, +0x73,0x5,0xb9,0x9,0x3d,0xc,0xd6,0xc,0xab,0xb,0x18,0x9, +0xe2,0x5,0xd8,0x2,0x46,0x0,0x75,0xfe,0xc9,0xfd,0x3e,0xfe, +0x9a,0xff,0x99,0x1,0xb7,0x3,0x78,0x5,0x89,0x6,0x7d,0x6, +0x23,0x5,0xce,0x2,0xe8,0xff,0xbb,0xfc,0xb8,0xf9,0x54,0xf7, +0x98,0xf5,0x49,0xf4,0x83,0xf3,0xbb,0xf3,0xf8,0xf4,0xb2,0xf6, +0x9b,0xf8,0xeb,0xfa,0xb3,0xfd,0x6f,0x0,0xae,0x2,0xa4,0x4, +0x5e,0x6,0x68,0x7,0xba,0x7,0x9b,0x7,0xd7,0x6,0x62,0x5, +0xac,0x3,0xc0,0x1,0x5a,0xff,0xa2,0xfc,0xfe,0xf9,0xd8,0xf7, +0x96,0xf6,0x59,0xf6,0xd,0xf7,0xa1,0xf8,0xed,0xfa,0xaf,0xfd, +0xa3,0x0,0x87,0x3,0xfd,0x5,0x79,0x7,0xc2,0x7,0x53,0x7, +0xa9,0x6,0xc9,0x5,0xb7,0x4,0xa0,0x3,0xe1,0x2,0xee,0x2, +0xc2,0x3,0xf0,0x4,0x4f,0x6,0x9b,0x7,0x39,0x8,0xda,0x7, +0x97,0x6,0x7d,0x4,0x91,0x1,0xe,0xfe,0xac,0xfa,0x1d,0xf8, +0x37,0xf6,0xcf,0xf4,0x9b,0xf4,0xd2,0xf5,0xc2,0xf7,0x3f,0xfa, +0x7b,0xfd,0x1,0x1,0x20,0x4,0x83,0x6,0x2,0x8,0x6d,0x8, +0x8a,0x7,0x89,0x5,0x2b,0x3,0xd5,0x0,0x54,0xfe,0xd7,0xfb, +0xd,0xfa,0x3d,0xf9,0xf4,0xf8,0xa1,0xf8,0x6a,0xf8,0xe3,0xf8, +0xf2,0xf9,0xf9,0xfa,0xd6,0xfb,0xdd,0xfc,0x20,0xfe,0x58,0xff, +0x5e,0x0,0x51,0x1,0x50,0x2,0x67,0x3,0xb2,0x4,0x13,0x6, +0x28,0x7,0xbe,0x7,0xdd,0x7,0x86,0x7,0xd4,0x6,0xf7,0x5, +0xef,0x4,0xc5,0x3,0xbe,0x2,0x13,0x2,0xa0,0x1,0x2b,0x1, +0xc8,0x0,0x78,0x0,0xfd,0xff,0x7c,0xff,0x2d,0xff,0xc1,0xfe, +0x4a,0xfe,0x54,0xfe,0xa6,0xfe,0xd2,0xfe,0x30,0xff,0xef,0xff, +0xca,0x0,0xb7,0x1,0x98,0x2,0x40,0x3,0xc1,0x3,0xf0,0x3, +0xaf,0x3,0x44,0x3,0x9a,0x2,0x85,0x1,0x6d,0x0,0x76,0xff, +0x55,0xfe,0x27,0xfd,0x37,0xfc,0x7d,0xfb,0xdc,0xfa,0x54,0xfa, +0x1b,0xfa,0x5d,0xfa,0xf8,0xfa,0xe4,0xfb,0x32,0xfd,0xa7,0xfe, +0x29,0x0,0xb7,0x1,0x7,0x3,0x1f,0x4,0x26,0x5,0xc4,0x5, +0xec,0x5,0xc3,0x5,0xf7,0x4,0xa8,0x3,0x6c,0x2,0x20,0x1, +0xab,0xff,0x76,0xfe,0x71,0xfd,0x82,0xfc,0xe7,0xfb,0x73,0xfb, +0x1,0xfb,0xce,0xfa,0x81,0xfa,0xb5,0xf9,0xc9,0xf8,0xf9,0xf7, +0x22,0xf7,0x41,0xf6,0x6a,0xf5,0xc,0xf5,0xd1,0xf5,0xf4,0xf7, +0xa0,0xfb,0x3,0x1,0x6d,0x7,0xae,0xd,0xd,0x13,0xf7,0x16, +0x86,0x18,0xd5,0x16,0xb3,0x11,0xf8,0x9,0xe2,0x0,0xb2,0xf7, +0xf2,0xef,0xf5,0xea,0x0,0xe9,0xed,0xe9,0xc0,0xed,0xf8,0xf3, +0x2a,0xfb,0xe8,0x1,0xa5,0x7,0x2c,0xc,0xcf,0xe,0x1d,0xf, +0x98,0xd,0xe7,0xa,0x81,0x7,0x2e,0x4,0x81,0x1,0x8b,0xff, +0x8f,0xfe,0xd5,0xfe,0xb,0x0,0xab,0x1,0x5e,0x3,0xbc,0x4, +0x1e,0x5,0x19,0x4,0x20,0x2,0xd4,0xff,0x21,0xfd,0x16,0xfa, +0x7d,0xf7,0xb5,0xf5,0x55,0xf4,0x55,0xf3,0x43,0xf3,0x48,0xf4, +0xee,0xf5,0xe8,0xf7,0x75,0xfa,0x94,0xfd,0xb4,0x0,0x95,0x3, +0x5c,0x6,0xb4,0x8,0x1e,0xa,0xa6,0xa,0x81,0xa,0x93,0x9, +0x97,0x7,0x9d,0x4,0x4d,0x1,0xe,0xfe,0x92,0xfa,0x8,0xf7, +0x84,0xf4,0x8a,0xf3,0xa5,0xf3,0x8d,0xf4,0x82,0xf6,0x84,0xf9, +0x6,0xfd,0xa5,0x0,0x66,0x4,0xe3,0x7,0x4d,0xa,0x8f,0xb, +0xd,0xc,0xb4,0xb,0x5f,0xa,0x5b,0x8,0x14,0x6,0x4,0x4, +0x81,0x2,0x7d,0x1,0x4,0x1,0x41,0x1,0xd4,0x1,0x1a,0x2, +0xec,0x1,0x4b,0x1,0xf,0x0,0x3c,0xfe,0x34,0xfc,0x73,0xfa, +0x27,0xf9,0x2d,0xf8,0xa0,0xf7,0xe9,0xf7,0x14,0xf9,0xdf,0xfa, +0x5d,0xfd,0x83,0x0,0x93,0x3,0xee,0x5,0xbc,0x7,0x22,0x9, +0xaf,0x9,0xf6,0x8,0x29,0x7,0xcd,0x4,0x1c,0x2,0x16,0xff, +0x1a,0xfc,0xb5,0xf9,0xec,0xf7,0x82,0xf6,0x93,0xf5,0x63,0xf5, +0xeb,0xf5,0xc7,0xf6,0xb0,0xf7,0xc,0xf9,0x29,0xfb,0x73,0xfd, +0x93,0xff,0xe,0x2,0xdb,0x4,0x25,0x7,0xb2,0x8,0xee,0x9, +0xe9,0xa,0x23,0xb,0x17,0xa,0xfc,0x7,0x9e,0x5,0x4f,0x3, +0x12,0x1,0x40,0xff,0xfb,0xfd,0xfd,0xfc,0x73,0xfc,0xc8,0xfc, +0xb5,0xfd,0xad,0xfe,0x8e,0xff,0x51,0x0,0xad,0x0,0x92,0x0, +0x5a,0x0,0x1f,0x0,0xbf,0xff,0x71,0xff,0x78,0xff,0xbe,0xff, +0x59,0x0,0x88,0x1,0x11,0x3,0x95,0x4,0xed,0x5,0xe5,0x6, +0x5b,0x7,0x38,0x7,0x25,0x6,0x2b,0x4,0xdf,0x1,0x99,0xff, +0x5b,0xfd,0x47,0xfb,0x7f,0xf9,0x2a,0xf8,0x7c,0xf7,0x6b,0xf7, +0xdc,0xf7,0xca,0xf8,0xf4,0xf9,0x35,0xfb,0xf0,0xfc,0x35,0xff, +0x71,0x1,0x79,0x3,0x7e,0x5,0x25,0x7,0xf8,0x7,0x23,0x8, +0xd5,0x7,0xe6,0x6,0x6f,0x5,0xbb,0x3,0xca,0x1,0xaa,0xff, +0xbb,0xfd,0x4e,0xfc,0x6d,0xfb,0xfb,0xfa,0xda,0xfa,0xef,0xfa, +0x2,0xfb,0xe4,0xfa,0xb6,0xfa,0x71,0xfa,0xab,0xf9,0x6c,0xf8, +0x27,0xf7,0x1,0xf6,0x38,0xf5,0x54,0xf5,0x72,0xf6,0x85,0xf8, +0xca,0xfb,0x48,0x0,0xa6,0x5,0x5a,0xb,0x74,0x10,0xfd,0x13, +0x90,0x15,0xf3,0x14,0xb4,0x11,0xb3,0xb,0xa6,0x3,0xf9,0xfa, +0x29,0xf3,0x6a,0xed,0x9a,0xea,0xd7,0xea,0xb2,0xed,0xf8,0xf2, +0x1b,0xfa,0x87,0x1,0xf4,0x7,0x21,0xd,0x9c,0x10,0x9d,0x11, +0x13,0x10,0xbe,0xc,0x99,0x8,0x37,0x4,0xea,0xff,0x7a,0xfc, +0xbe,0xfa,0xaa,0xfa,0xf4,0xfb,0x79,0xfe,0x86,0x1,0x3d,0x4, +0x28,0x6,0xb9,0x6,0x97,0x5,0x50,0x3,0x65,0x0,0xe7,0xfc, +0x73,0xf9,0xf7,0xf6,0x71,0xf5,0x34,0xf4,0x5a,0xf3,0xb4,0xf3, +0x45,0xf5,0x25,0xf7,0x1f,0xf9,0xb0,0xfb,0xad,0xfe,0x8d,0x1, +0x4a,0x4,0xd5,0x6,0xb3,0x8,0x80,0x9,0x49,0x9,0x57,0x8, +0x8c,0x6,0x95,0x3,0xd,0x0,0x0,0xfd,0x65,0xfa,0xe4,0xf7, +0x1f,0xf6,0xad,0xf5,0x65,0xf6,0x15,0xf8,0x8e,0xfa,0x7d,0xfd, +0xa1,0x0,0x7c,0x3,0x8e,0x5,0xea,0x6,0x91,0x7,0x31,0x7, +0xd,0x6,0xb6,0x4,0x56,0x3,0x11,0x2,0x38,0x1,0xfb,0x0, +0x70,0x1,0x7b,0x2,0xc2,0x3,0x6,0x5,0x18,0x6,0xaa,0x6, +0x85,0x6,0x9f,0x5,0x3,0x4,0xdb,0x1,0x45,0xff,0x8e,0xfc, +0x5e,0xfa,0xe8,0xf8,0xc2,0xf7,0xd,0xf7,0x5c,0xf7,0x8d,0xf8, +0x12,0xfa,0xeb,0xfb,0x47,0xfe,0xc5,0x0,0xcc,0x2,0x4c,0x4, +0x7b,0x5,0x18,0x6,0xcc,0x5,0xd8,0x4,0x9b,0x3,0x1,0x2, +0x15,0x0,0x3f,0xfe,0xb8,0xfc,0x4d,0xfb,0xf0,0xf9,0xfc,0xf8, +0x9b,0xf8,0x80,0xf8,0xb5,0xf8,0xac,0xf9,0x41,0xfb,0xdc,0xfc, +0x78,0xfe,0x53,0x0,0x43,0x2,0x4,0x4,0x58,0x5,0x11,0x6, +0x53,0x6,0x53,0x6,0xeb,0x5,0x3,0x5,0x8,0x4,0x75,0x3, +0x43,0x3,0x33,0x3,0x43,0x3,0x81,0x3,0xb3,0x3,0x88,0x3, +0xe9,0x2,0xee,0x1,0xa1,0x0,0xf4,0xfe,0xc,0xfd,0x4b,0xfb, +0xfb,0xf9,0x42,0xf9,0x57,0xf9,0x54,0xfa,0x1b,0xfc,0x86,0xfe, +0x4f,0x1,0x26,0x4,0xce,0x6,0xe1,0x8,0xe9,0x9,0xd9,0x9, +0xc6,0x8,0xa2,0x6,0xb8,0x3,0xaa,0x0,0xd1,0xfd,0x29,0xfb, +0xcd,0xf8,0x3c,0xf7,0xcc,0xf6,0x15,0xf7,0xbc,0xf7,0x21,0xf9, +0x42,0xfb,0x3c,0xfd,0x82,0xfe,0x4a,0xff,0xcb,0xff,0x1a,0x0, +0x34,0x0,0xff,0xff,0x99,0xff,0x65,0xff,0xa7,0xff,0x57,0x0, +0x50,0x1,0x7e,0x2,0xcc,0x3,0xf9,0x4,0xd1,0x5,0x41,0x6, +0x2c,0x6,0xab,0x5,0xfe,0x4,0x20,0x4,0x7,0x3,0xcd,0x1, +0x4b,0x0,0x79,0xfe,0xd2,0xfc,0xa2,0xfb,0xdf,0xfa,0x7d,0xfa, +0x65,0xfa,0xb9,0xfa,0xd6,0xfb,0x8a,0xfd,0x75,0xff,0xa9,0x1, +0xf0,0x3,0x9d,0x5,0x81,0x6,0xbe,0x6,0x25,0x6,0xa2,0x4, +0x75,0x2,0xd5,0xff,0xf4,0xfc,0x18,0xfa,0x83,0xf7,0x83,0xf5, +0x94,0xf4,0xe,0xf5,0xc0,0xf6,0x5a,0xf9,0xd4,0xfc,0xba,0x0, +0x1c,0x4,0xb1,0x6,0x7a,0x8,0xac,0x8,0xae,0x6,0x3c,0x3, +0x83,0xff,0x4a,0xfc,0xf8,0xf9,0x9d,0xf8,0x4b,0xf8,0x69,0xf9, +0x4,0xfc,0x53,0xff,0x72,0x2,0x25,0x5,0x92,0x7,0x77,0x9, +0x34,0xa,0x9c,0x9,0xfc,0x7,0x92,0x5,0x8e,0x2,0x6c,0xff, +0xde,0xfc,0x6a,0xfb,0xa,0xfb,0x7e,0xfb,0xbf,0xfc,0x9f,0xfe, +0x93,0x0,0x10,0x2,0xb2,0x2,0x86,0x2,0x1e,0x2,0x98,0x1, +0x8f,0x0,0x61,0xff,0xc3,0xfe,0x6d,0xfe,0xe8,0xfd,0x98,0xfd, +0xe1,0xfd,0x76,0xfe,0xe1,0xfe,0xfc,0xfe,0xfc,0xfe,0x6,0xff, +0xf8,0xfe,0xeb,0xfe,0x1d,0xff,0x5d,0xff,0x6e,0xff,0x93,0xff, +0xd4,0xff,0xba,0xff,0xe,0xff,0x22,0xfe,0x4d,0xfd,0x87,0xfc, +0x90,0xfb,0xbd,0xfa,0xe5,0xfa,0x23,0xfc,0xca,0xfd,0x93,0xff, +0x82,0x1,0x44,0x3,0x9a,0x4,0x74,0x5,0x9a,0x5,0x16,0x5, +0x3b,0x4,0x1a,0x3,0xb8,0x1,0x7e,0x0,0xa6,0xff,0xff,0xfe, +0x99,0xfe,0xe0,0xfe,0xe6,0xff,0x2a,0x1,0x52,0x2,0x5b,0x3, +0x1,0x4,0xe1,0x3,0x6,0x3,0xba,0x1,0x3d,0x0,0xd9,0xfe, +0xc0,0xfd,0x1e,0xfd,0x23,0xfd,0x8f,0xfd,0x21,0xfe,0x11,0xff, +0x54,0x0,0x8d,0x1,0xcd,0x2,0xe7,0x3,0x39,0x4,0xd9,0x3, +0x34,0x3,0x18,0x2,0x7a,0x0,0xae,0xfe,0xd9,0xfc,0x4f,0xfb, +0x71,0xfa,0x13,0xfa,0x34,0xfa,0x18,0xfb,0x6a,0xfc,0xa9,0xfd, +0xde,0xfe,0x26,0x0,0x49,0x1,0xf8,0x1,0x21,0x2,0xff,0x1, +0xa3,0x1,0x3,0x1,0x6e,0x0,0x2f,0x0,0x2e,0x0,0x3e,0x0, +0x24,0x0,0xd5,0xff,0xb6,0xff,0xae,0xff,0x32,0xff,0xa2,0xfe, +0xa8,0xfe,0xee,0xfe,0x2a,0xff,0xc4,0xff,0x92,0x0,0x7,0x1, +0x59,0x1,0xfc,0x1,0xab,0x2,0xe6,0x2,0xb8,0x2,0x6d,0x2, +0xfd,0x1,0x56,0x1,0xc3,0x0,0x8e,0x0,0x94,0x0,0xa1,0x0, +0xd9,0x0,0x7d,0x1,0x62,0x2,0xc,0x3,0x38,0x3,0xfb,0x2, +0x75,0x2,0xb0,0x1,0xa7,0x0,0x76,0xff,0x68,0xfe,0x8e,0xfd, +0xcf,0xfc,0x54,0xfc,0x4d,0xfc,0xaa,0xfc,0x43,0xfd,0xe0,0xfd, +0x6d,0xfe,0x15,0xff,0xc4,0xff,0x52,0x0,0xea,0x0,0x75,0x1, +0xb2,0x1,0xd5,0x1,0xe6,0x1,0xa4,0x1,0x3a,0x1,0xa6,0x0, +0x99,0xff,0x63,0xfe,0x64,0xfd,0x70,0xfc,0xba,0xfb,0x92,0xfb, +0xbe,0xfb,0x26,0xfc,0xc,0xfd,0x74,0xfe,0xe,0x0,0x70,0x1, +0x82,0x2,0x6f,0x3,0xea,0x3,0xbb,0x3,0x45,0x3,0x73,0x2, +0x5,0x1,0x71,0xff,0xf5,0xfd,0xaa,0xfc,0x44,0xfc,0xda,0xfc, +0xda,0xfd,0x6c,0xff,0x73,0x1,0x38,0x3,0xb9,0x4,0xe0,0x5, +0xc,0x6,0x51,0x5,0x3,0x4,0x2a,0x2,0x41,0x0,0x82,0xfe, +0xc9,0xfc,0xbc,0xfb,0xde,0xfb,0xb3,0xfc,0x7,0xfe,0xb3,0xff, +0x15,0x1,0x7,0x2,0x9e,0x2,0x95,0x2,0x17,0x2,0x4b,0x1, +0xed,0xff,0x40,0xfe,0xc5,0xfc,0x86,0xfb,0xc3,0xfa,0xc0,0xfa, +0x52,0xfb,0x5e,0xfc,0xc7,0xfd,0x42,0xff,0xf5,0x0,0x4,0x3, +0xc8,0x4,0x6a,0x5,0x65,0x4,0xc8,0x1,0x9d,0xfe,0x3c,0xfc, +0x14,0xfb,0xd3,0xfa,0x17,0xfb,0xb8,0xfb,0xc7,0xfc,0x4a,0xfe, +0x4,0x0,0x73,0x1,0x37,0x2,0x8c,0x2,0xe6,0x2,0x29,0x3, +0xf7,0x2,0x43,0x2,0x3b,0x1,0x5f,0x0,0x14,0x0,0xdb,0xff, +0x64,0xff,0x7a,0xff,0x69,0x0,0x65,0x1,0x23,0x2,0xdb,0x2, +0x18,0x3,0x81,0x2,0x86,0x1,0x60,0x0,0x16,0xff,0x35,0xfe, +0x14,0xfe,0x3a,0xfe,0x63,0xfe,0xd7,0xfe,0xb5,0xff,0xcb,0x0, +0xad,0x1,0xef,0x1,0xac,0x1,0x30,0x1,0x6c,0x0,0x98,0xff, +0x30,0xff,0x21,0xff,0x1d,0xff,0x13,0xff,0xf5,0xfe,0xd1,0xfe, +0xa7,0xfe,0x29,0xfe,0x7a,0xfd,0x25,0xfd,0xff,0xfc,0xb2,0xfc, +0xa5,0xfc,0x55,0xfd,0xa9,0xfe,0x2,0x0,0xc9,0x0,0x44,0x1, +0xf9,0x1,0x96,0x2,0xd6,0x2,0x0,0x3,0xc3,0x2,0xd2,0x1, +0xdb,0x0,0x47,0x0,0xa4,0xff,0xba,0xfe,0xcf,0xfd,0x63,0xfd, +0xdd,0xfd,0xf3,0xfe,0x2a,0x0,0x80,0x1,0xaf,0x2,0x1d,0x3, +0xee,0x2,0xa5,0x2,0x29,0x2,0x3e,0x1,0x48,0x0,0xc6,0xff, +0xab,0xff,0x8f,0xff,0x5d,0xff,0x4e,0xff,0x71,0xff,0xb3,0xff, +0x1c,0x0,0x99,0x0,0xe8,0x0,0xe,0x1,0x47,0x1,0x85,0x1, +0x8c,0x1,0x6b,0x1,0x33,0x1,0xb8,0x0,0xf7,0xff,0x24,0xff, +0x56,0xfe,0xa6,0xfd,0x2f,0xfd,0xe1,0xfc,0xd1,0xfc,0x16,0xfd, +0x86,0xfd,0x30,0xfe,0x44,0xff,0x70,0x0,0x42,0x1,0xb0,0x1, +0xce,0x1,0xc6,0x1,0xb9,0x1,0x63,0x1,0x94,0x0,0xa1,0xff, +0xce,0xfe,0x19,0xfe,0x9c,0xfd,0x95,0xfd,0x18,0xfe,0xe5,0xfe, +0xae,0xff,0x5c,0x0,0xe1,0x0,0x28,0x1,0x57,0x1,0x81,0x1, +0x83,0x1,0x54,0x1,0xf6,0x0,0x83,0x0,0x3c,0x0,0x2e,0x0, +0x54,0x0,0xc1,0x0,0x14,0x1,0x12,0x1,0x48,0x1,0xb5,0x1, +0xac,0x1,0x6a,0x1,0x6b,0x1,0x57,0x1,0x0,0x1,0x9d,0x0, +0x3c,0x0,0x1,0x0,0xe9,0xff,0xab,0xff,0x64,0xff,0x4d,0xff, +0x51,0xff,0x7d,0xff,0xbc,0xff,0xca,0xff,0xbf,0xff,0xa2,0xff, +0x4a,0xff,0x11,0xff,0x26,0xff,0x1e,0xff,0xf3,0xfe,0xce,0xfe, +0x93,0xfe,0x82,0xfe,0xb3,0xfe,0xc3,0xfe,0xec,0xfe,0x98,0xff, +0x3f,0x0,0x6e,0x0,0x6e,0x0,0x50,0x0,0xf7,0xff,0xa0,0xff, +0x6a,0xff,0x34,0xff,0xf,0xff,0x28,0xff,0x75,0xff,0xe9,0xff, +0x8f,0x0,0x33,0x1,0x79,0x1,0x64,0x1,0x2b,0x1,0xd1,0x0, +0x53,0x0,0xcf,0xff,0x68,0xff,0x4e,0xff,0x81,0xff,0xdc,0xff, +0x65,0x0,0xe,0x1,0xa4,0x1,0x39,0x2,0xaa,0x2,0x96,0x2, +0x2d,0x2,0xa8,0x1,0xd0,0x0,0xe3,0xff,0x39,0xff,0x86,0xfe, +0xe6,0xfd,0xe4,0xfd,0x4e,0xfe,0xc4,0xfe,0x53,0xff,0xe9,0xff, +0x6f,0x0,0xdd,0x0,0xe8,0x0,0x90,0x0,0x2e,0x0,0xc1,0xff, +0x3f,0xff,0xd7,0xfe,0x78,0xfe,0x12,0xfe,0xef,0xfd,0x2f,0xfe, +0xaa,0xfe,0x35,0xff,0xb9,0xff,0x39,0x0,0xc1,0x0,0x2a,0x1, +0x44,0x1,0x14,0x1,0xcf,0x0,0x8c,0x0,0x2e,0x0,0xb0,0xff, +0x42,0xff,0xfe,0xfe,0xe0,0xfe,0xbc,0xfe,0x6c,0xfe,0x4b,0xfe, +0xb6,0xfe,0x4c,0xff,0xd6,0xff,0xb3,0x0,0xb8,0x1,0x71,0x2, +0xed,0x2,0x2,0x3,0x57,0x2,0x58,0x1,0x99,0x0,0x17,0x0, +0xba,0xff,0x83,0xff,0x63,0xff,0x60,0xff,0x77,0xff,0x8a,0xff, +0x97,0xff,0x9f,0xff,0xa2,0xff,0xb5,0xff,0xd5,0xff,0xf7,0xff, +0x2e,0x0,0x69,0x0,0x74,0x0,0x4c,0x0,0xb,0x0,0xb8,0xff, +0x60,0xff,0x24,0xff,0x1c,0xff,0x39,0xff,0x51,0xff,0x6f,0xff, +0xb1,0xff,0xff,0xff,0x27,0x0,0x2a,0x0,0x2d,0x0,0x39,0x0, +0x2e,0x0,0x1,0x0,0xcd,0xff,0x84,0xff,0x1e,0xff,0xd8,0xfe, +0xc9,0xfe,0xd9,0xfe,0x3,0xff,0x3c,0xff,0x87,0xff,0x4,0x0, +0x9b,0x0,0x14,0x1,0x59,0x1,0x48,0x1,0xf2,0x0,0xae,0x0, +0x76,0x0,0x18,0x0,0xc3,0xff,0x99,0xff,0xa2,0xff,0x11,0x0, +0xb9,0x0,0x19,0x1,0x16,0x1,0xcf,0x0,0x65,0x0,0x8,0x0, +0xa7,0xff,0x45,0xff,0x47,0xff,0xa7,0xff,0x9,0x0,0x7d,0x0, +0xf7,0x0,0x22,0x1,0x21,0x1,0x1c,0x1,0xd7,0x0,0x5f,0x0, +0x6,0x0,0xcd,0xff,0x97,0xff,0x56,0xff,0x10,0xff,0xb,0xff, +0x5d,0xff,0xb6,0xff,0x4,0x0,0x79,0x0,0xd8,0x0,0xc6,0x0, +0x64,0x0,0xf0,0xff,0x6a,0xff,0xf4,0xfe,0xbd,0xfe,0xac,0xfe, +0xba,0xfe,0x14,0xff,0x90,0xff,0xdd,0xff,0x17,0x0,0x63,0x0, +0xa0,0x0,0xbb,0x0,0xaa,0x0,0x61,0x0,0x1a,0x0,0xf5,0xff, +0xc8,0xff,0xb2,0xff,0xd2,0xff,0xe9,0xff,0x8,0x0,0x69,0x0, +0xb0,0x0,0x8d,0x0,0x4c,0x0,0x12,0x0,0xc7,0xff,0x8d,0xff, +0x78,0xff,0x79,0xff,0x98,0xff,0xd2,0xff,0x1d,0x0,0x89,0x0, +0xff,0x0,0x38,0x1,0x19,0x1,0xcd,0x0,0x83,0x0,0x36,0x0, +0xd6,0xff,0x8c,0xff,0x97,0xff,0xdd,0xff,0x18,0x0,0x36,0x0, +0x3f,0x0,0x3a,0x0,0x31,0x0,0x24,0x0,0xf9,0xff,0xb0,0xff, +0x7a,0xff,0x8a,0xff,0xba,0xff,0xc5,0xff,0xb2,0xff,0xad,0xff, +0xae,0xff,0xab,0xff,0xac,0xff,0xbe,0xff,0xf7,0xff,0x3b,0x0, +0x55,0x0,0x57,0x0,0x50,0x0,0x1d,0x0,0xd9,0xff,0xaf,0xff, +0x87,0xff,0x6a,0xff,0x6c,0xff,0x51,0xff,0x1e,0xff,0x27,0xff, +0x52,0xff,0x6e,0xff,0xa4,0xff,0xe9,0xff,0x1e,0x0,0x62,0x0, +0xa6,0x0,0xc5,0x0,0xe8,0x0,0xf,0x1,0x0,0x1,0xb4,0x0, +0x4a,0x0,0xe0,0xff,0x91,0xff,0x68,0xff,0x7f,0xff,0xd5,0xff, +0x1e,0x0,0x53,0x0,0xbb,0x0,0x34,0x1,0x64,0x1,0x42,0x1, +0xe0,0x0,0x66,0x0,0xfb,0xff,0x88,0xff,0x2d,0xff,0x2d,0xff, +0x3e,0xff,0x41,0xff,0x9c,0xff,0x28,0x0,0x64,0x0,0x72,0x0, +0x87,0x0,0x78,0x0,0x43,0x0,0xc,0x0,0xd7,0xff,0xa2,0xff, +0x6b,0xff,0x3d,0xff,0x25,0xff,0xa,0xff,0xfa,0xfe,0x22,0xff, +0x53,0xff,0x5a,0xff,0x5a,0xff,0x5c,0xff,0x4c,0xff,0x4c,0xff, +0x6a,0xff,0x94,0xff,0xd9,0xff,0x36,0x0,0x8c,0x0,0xc6,0x0, +0xe6,0x0,0x3,0x1,0x1b,0x1,0x2,0x1,0xac,0x0,0x3a,0x0, +0xb6,0xff,0x2c,0xff,0xb9,0xfe,0x72,0xfe,0x78,0xfe,0xe1,0xfe, +0x92,0xff,0x73,0x0,0x6d,0x1,0x39,0x2,0x8e,0x2,0x54,0x2, +0x9c,0x1,0x92,0x0,0x70,0xff,0x8e,0xfe,0x2d,0xfe,0x24,0xfe, +0x40,0xfe,0x92,0xfe,0x15,0xff,0xaf,0xff,0x71,0x0,0x3e,0x1, +0xc9,0x1,0xf6,0x1,0xb9,0x1,0x16,0x1,0x5f,0x0,0xc3,0xff, +0x13,0xff,0x52,0xfe,0xcb,0xfd,0xa7,0xfd,0xbe,0xfd,0xf3,0xfd, +0x74,0xfe,0x4a,0xff,0xf4,0xff,0x37,0x0,0x6a,0x0,0xa5,0x0, +0xb8,0x0,0x91,0x0,0x10,0x0,0x73,0xff,0x42,0xff,0x4d,0xff, +0x28,0xff,0x33,0xff,0xb3,0xff,0x26,0x0,0x49,0x0,0x51,0x0, +0x3f,0x0,0x8,0x0,0xc6,0xff,0x90,0xff,0x70,0xff,0x75,0xff, +0xad,0xff,0xf6,0xff,0x14,0x0,0x20,0x0,0x56,0x0,0x7b,0x0, +0x58,0x0,0x39,0x0,0x3c,0x0,0x2d,0x0,0x17,0x0,0x3,0x0, +0xd1,0xff,0xaf,0xff,0xb5,0xff,0x98,0xff,0x5b,0xff,0x59,0xff, +0x92,0xff,0xe3,0xff,0x5d,0x0,0xdd,0x0,0x1e,0x1,0x2a,0x1, +0x29,0x1,0x5,0x1,0x98,0x0,0xe3,0xff,0x28,0xff,0xa1,0xfe, +0x47,0xfe,0x11,0xfe,0x19,0xfe,0x57,0xfe,0xb5,0xfe,0x29,0xff, +0x8d,0xff,0xdb,0xff,0x2d,0x0,0x4e,0x0,0x1e,0x0,0xf6,0xff, +0xec,0xff,0xbd,0xff,0x84,0xff,0x71,0xff,0x6a,0xff,0x73,0xff, +0xa2,0xff,0xda,0xff,0xf6,0xff,0xed,0xff,0x1,0x0,0x5d,0x0, +0x9e,0x0,0x85,0x0,0x58,0x0,0x24,0x0,0xde,0xff,0xc5,0xff, +0xc2,0xff,0xa2,0xff,0x93,0xff,0x8c,0xff,0x7c,0xff,0x96,0xff, +0xac,0xff,0x92,0xff,0xaa,0xff,0xe8,0xff,0xe8,0xff,0xe7,0xff, +0x1f,0x0,0x64,0x0,0xa3,0x0,0xc8,0x0,0xdb,0x0,0xfe,0x0, +0xdc,0x0,0x55,0x0,0x0,0x0,0xe9,0xff,0xae,0xff,0x85,0xff, +0x7f,0xff,0x5b,0xff,0x68,0xff,0xc3,0xff,0xee,0xff,0xda,0xff, +0xd1,0xff,0xc6,0xff,0xb0,0xff,0xad,0xff,0xb3,0xff,0xb2,0xff, +0xb8,0xff,0xc5,0xff,0xcd,0xff,0xcf,0xff,0xe2,0xff,0xfa,0xff, +0xfc,0xff,0xfa,0xff,0x6,0x0,0x10,0x0,0x22,0x0,0x29,0x0, +0x1,0x0,0xe5,0xff,0xfb,0xff,0x12,0x0,0x1f,0x0,0x1a,0x0, +0xd6,0xff,0x87,0xff,0x72,0xff,0x81,0xff,0xb2,0xff,0x0,0x0, +0x3f,0x0,0x89,0x0,0xda,0x0,0xf3,0x0,0xff,0x0,0x14,0x1, +0xf2,0x0,0xb3,0x0,0x81,0x0,0x2f,0x0,0xe0,0xff,0xb8,0xff, +0x80,0xff,0x59,0xff,0x90,0xff,0xf2,0xff,0x33,0x0,0x4b,0x0, +0x5d,0x0,0x93,0x0,0xbb,0x0,0xa4,0x0,0x8a,0x0,0x64,0x0, +0xf8,0xff,0xa1,0xff,0x97,0xff,0x91,0xff,0x7a,0xff,0x68,0xff, +0x5d,0xff,0x6f,0xff,0x8f,0xff,0xa1,0xff,0xcf,0xff,0xa,0x0, +0x30,0x0,0x66,0x0,0x89,0x0,0x68,0x0,0x49,0x0,0x26,0x0, +0xc0,0xff,0x67,0xff,0x57,0xff,0x4e,0xff,0x3f,0xff,0x26,0xff, +0xf2,0xfe,0xdc,0xfe,0x3,0xff,0x56,0xff,0xd9,0xff,0x67,0x0, +0xd8,0x0,0x3d,0x1,0x6a,0x1,0x59,0x1,0x58,0x1,0x49,0x1, +0xfa,0x0,0xb7,0x0,0x92,0x0,0x6d,0x0,0x6f,0x0,0x74,0x0, +0x43,0x0,0x18,0x0,0x0,0x0,0xd2,0xff,0x97,0xff,0x30,0xff, +0xbc,0xfe,0xd2,0xfe,0x69,0xff,0xfe,0xff,0xa1,0x0,0x5a,0x1, +0xc5,0x1,0xc7,0x1,0x79,0x1,0xf4,0x0,0x71,0x0,0x1,0x0, +0x9d,0xff,0x58,0xff,0xb,0xff,0xa0,0xfe,0x6f,0xfe,0x90,0xfe, +0xc8,0xfe,0x23,0xff,0xb5,0xff,0x37,0x0,0x87,0x0,0xc3,0x0, +0xc9,0x0,0x6b,0x0,0xfa,0xff,0xce,0xff,0xad,0xff,0x5f,0xff, +0x28,0xff,0x3a,0xff,0x8e,0xff,0x2,0x0,0x39,0x0,0x26,0x0, +0x31,0x0,0x45,0x0,0xa,0x0,0xb9,0xff,0x80,0xff,0x59,0xff, +0x7d,0xff,0xdd,0xff,0x24,0x0,0x83,0x0,0xe,0x1,0x61,0x1, +0x6a,0x1,0x57,0x1,0xb,0x1,0x8e,0x0,0x2e,0x0,0xe,0x0, +0xb,0x0,0xec,0xff,0xb5,0xff,0xb5,0xff,0xfa,0xff,0x37,0x0, +0x4f,0x0,0x73,0x0,0xb3,0x0,0xcc,0x0,0x95,0x0,0x44,0x0, +0xee,0xff,0x74,0xff,0x13,0xff,0x10,0xff,0x39,0xff,0x6f,0xff, +0xc5,0xff,0x29,0x0,0x99,0x0,0xb,0x1,0x51,0x1,0x7e,0x1, +0xa1,0x1,0x62,0x1,0xb8,0x0,0x15,0x0,0xa2,0xff,0x41,0xff, +0xfb,0xfe,0xee,0xfe,0x24,0xff,0x71,0xff,0x8e,0xff,0x9e,0xff, +0xed,0xff,0x65,0x0,0xc2,0x0,0xed,0x0,0xd5,0x0,0x71,0x0, +0xd9,0xff,0x41,0xff,0xdd,0xfe,0xbe,0xfe,0xe5,0xfe,0x5b,0xff, +0xfd,0xff,0x78,0x0,0xcc,0x0,0x36,0x1,0x83,0x1,0x7a,0x1, +0x76,0x1,0xa6,0x1,0x95,0x1,0x28,0x1,0xc3,0x0,0x58,0x0, +0xb1,0xff,0x13,0xff,0xd3,0xfe,0xe8,0xfe,0x21,0xff,0x64,0xff, +0xcc,0xff,0x5b,0x0,0xbf,0x0,0xe5,0x0,0xfb,0x0,0xfb,0x0, +0xe9,0x0,0xe3,0x0,0xd3,0x0,0xb3,0x0,0x9b,0x0,0x69,0x0, +0x2e,0x0,0x29,0x0,0x37,0x0,0x4e,0x0,0x9b,0x0,0xc1,0x0, +0x69,0x0,0xfa,0xff,0xc5,0xff,0x97,0xff,0x5b,0xff,0x24,0xff, +0xf3,0xfe,0xdf,0xfe,0xf,0xff,0x6f,0xff,0xb5,0xff,0xd5,0xff, +0x5,0x0,0x30,0x0,0x2a,0x0,0x33,0x0,0x69,0x0,0x89,0x0, +0x9a,0x0,0xce,0x0,0xfe,0x0,0xa,0x1,0xd,0x1,0xf8,0x0, +0xa4,0x0,0x26,0x0,0xb5,0xff,0x5a,0xff,0x3,0xff,0xd6,0xfe, +0xf1,0xfe,0x2f,0xff,0x77,0xff,0xe2,0xff,0x6c,0x0,0xde,0x0, +0x1b,0x1,0x42,0x1,0x6b,0x1,0x6f,0x1,0x32,0x1,0xcf,0x0, +0x41,0x0,0xb3,0xff,0x96,0xff,0xaf,0xff,0x8c,0xff,0x9a,0xff, +0x19,0x0,0x7b,0x0,0xb1,0x0,0x2,0x1,0x1c,0x1,0xd3,0x0, +0x67,0x0,0xda,0xff,0x35,0xff,0xbd,0xfe,0x73,0xfe,0x41,0xfe, +0x41,0xfe,0x84,0xfe,0xf9,0xfe,0x95,0xff,0x57,0x0,0x10,0x1, +0x82,0x1,0xb0,0x1,0x94,0x1,0x9,0x1,0x6b,0x0,0x23,0x0, +0xe2,0xff,0x76,0xff,0x4b,0xff,0x6d,0xff,0x9d,0xff,0xed,0xff, +0x51,0x0,0x84,0x0,0x76,0x0,0x49,0x0,0x14,0x0,0xb3,0xff, +0x1d,0xff,0xdd,0xfe,0x2d,0xff,0x6a,0xff,0x6a,0xff,0xa8,0xff, +0xb,0x0,0x49,0x0,0x86,0x0,0xcf,0x0,0x24,0x1,0x9c,0x1, +0xef,0x1,0xe0,0x1,0xb4,0x1,0x93,0x1,0x47,0x1,0xb9,0x0, +0xe8,0xff,0xdd,0xfe,0xf5,0xfd,0xad,0xfd,0xf9,0xfd,0x67,0xfe, +0xcf,0xfe,0x50,0xff,0xcd,0xff,0x31,0x0,0x95,0x0,0xe9,0x0, +0x1b,0x1,0x2a,0x1,0xe1,0x0,0x4e,0x0,0xf1,0xff,0xc8,0xff, +0x6d,0xff,0x17,0xff,0x1e,0xff,0x54,0xff,0xa3,0xff,0x21,0x0, +0x8c,0x0,0xa5,0x0,0x81,0x0,0x2e,0x0,0xa1,0xff,0xfa,0xfe, +0x64,0xfe,0xf0,0xfd,0xcc,0xfd,0x19,0xfe,0xa8,0xfe,0x26,0xff, +0x81,0xff,0xe0,0xff,0x4c,0x0,0x9a,0x0,0xad,0x0,0x9e,0x0, +0x7b,0x0,0x37,0x0,0xf2,0xff,0xe7,0xff,0x29,0x0,0x87,0x0, +0xbf,0x0,0xc1,0x0,0x96,0x0,0x3a,0x0,0xe2,0xff,0xda,0xff, +0xeb,0xff,0xc9,0xff,0x98,0xff,0x79,0xff,0x66,0xff,0x75,0xff, +0xa2,0xff,0xe2,0xff,0x5b,0x0,0xe0,0x0,0xff,0x0,0xbf,0x0, +0x82,0x0,0x6d,0x0,0x6c,0x0,0x5b,0x0,0x18,0x0,0xc2,0xff, +0xa3,0xff,0xbf,0xff,0xc4,0xff,0xb4,0xff,0xf3,0xff,0x6c,0x0, +0xa2,0x0,0xa8,0x0,0xa5,0x0,0x3a,0x0,0x5a,0xff,0x93,0xfe, +0x3b,0xfe,0x52,0xfe,0xb7,0xfe,0x2b,0xff,0x95,0xff,0xf2,0xff, +0x49,0x0,0xa6,0x0,0xdc,0x0,0xc4,0x0,0xb2,0x0,0xd7,0x0, +0xe9,0x0,0xbc,0x0,0x57,0x0,0xd0,0xff,0x6a,0xff,0x31,0xff, +0x0,0xff,0xec,0xfe,0x2,0xff,0x22,0xff,0x56,0xff,0xac,0xff, +0x15,0x0,0x8a,0x0,0xd8,0x0,0xd2,0x0,0x9c,0x0,0x49,0x0, +0xf1,0xff,0xd0,0xff,0xcb,0xff,0xba,0xff,0xd7,0xff,0x1f,0x0, +0x44,0x0,0x5d,0x0,0x99,0x0,0xd4,0x0,0xe6,0x0,0xaa,0x0, +0x29,0x0,0xb9,0xff,0x7d,0xff,0x41,0xff,0xd,0xff,0x18,0xff, +0x4e,0xff,0x88,0xff,0xdc,0xff,0x4f,0x0,0xab,0x0,0xe2,0x0, +0x16,0x1,0x32,0x1,0xfd,0x0,0x70,0x0,0xbe,0xff,0x22,0xff, +0xb6,0xfe,0x81,0xfe,0x9f,0xfe,0xc,0xff,0x89,0xff,0x3,0x0, +0x83,0x0,0xea,0x0,0x30,0x1,0x61,0x1,0x4b,0x1,0xdd,0x0, +0x59,0x0,0xdd,0xff,0x60,0xff,0xfe,0xfe,0xdd,0xfe,0xf8,0xfe, +0x25,0xff,0x54,0xff,0x83,0xff,0x8e,0xff,0x96,0xff,0xf9,0xff, +0x84,0x0,0xdf,0x0,0x29,0x1,0x36,0x1,0xd2,0x0,0x91,0x0, +0xab,0x0,0x96,0x0,0x5b,0x0,0x38,0x0,0xea,0xff,0x9c,0xff, +0xaf,0xff,0xcc,0xff,0xbe,0xff,0xd0,0xff,0xe9,0xff,0xbe,0xff, +0x6f,0xff,0x4a,0xff,0x74,0xff,0xd8,0xff,0x32,0x0,0x71,0x0, +0xb5,0x0,0x1,0x1,0x2f,0x1,0x30,0x1,0x12,0x1,0xed,0x0, +0xb5,0x0,0x4b,0x0,0xc6,0xff,0x62,0xff,0x24,0xff,0xff,0xfe, +0x21,0xff,0xa6,0xff,0x29,0x0,0x58,0x0,0x67,0x0,0x8e,0x0, +0xb2,0x0,0xb7,0x0,0xa4,0x0,0x88,0x0,0x77,0x0,0x4d,0x0, +0xe3,0xff,0x6f,0xff,0x2c,0xff,0xf,0xff,0x23,0xff,0x75,0xff, +0xc4,0xff,0xed,0xff,0x6,0x0,0xe8,0xff,0x71,0xff,0xf6,0xfe, +0xb2,0xfe,0xa2,0xfe,0x5,0xff,0xf4,0xff,0xfd,0x0,0xef,0x1, +0xd9,0x2,0x6c,0x3,0x6b,0x3,0xe7,0x2,0xa9,0x1,0xbd,0xff, +0xe7,0xfd,0xb8,0xfc,0x5a,0xfc,0xcb,0xfc,0xa7,0xfd,0x7d,0xfe, +0x40,0xff,0xf1,0xff,0x96,0x0,0x41,0x1,0xbd,0x1,0xe0,0x1, +0xdb,0x1,0xd4,0x1,0xc5,0x1,0x92,0x1,0xf4,0x0,0xed,0xff, +0xf4,0xfe,0x79,0xfe,0x94,0xfe,0xfd,0xfe,0x70,0xff,0x8,0x0, +0xaf,0x0,0xfb,0x0,0xf9,0x0,0xc0,0x0,0x15,0x0,0x3a,0xff, +0xae,0xfe,0x74,0xfe,0x81,0xfe,0xc6,0xfe,0x5,0xff,0x4f,0xff, +0xbd,0xff,0x18,0x0,0x66,0x0,0x9a,0x0,0x60,0x0,0xe3,0xff, +0x95,0xff,0xa5,0xff,0x31,0x0,0xf3,0x0,0x5b,0x1,0x74,0x1, +0x63,0x1,0xf0,0x0,0x54,0x0,0xec,0xff,0x94,0xff,0x3d,0xff, +0xfb,0xfe,0xbc,0xfe,0xa2,0xfe,0xd0,0xfe,0x1d,0xff,0x63,0xff, +0x8f,0xff,0xb7,0xff,0x1f,0x0,0x9b,0x0,0xd5,0x0,0xa,0x1, +0x48,0x1,0x2f,0x1,0xdc,0x0,0x98,0x0,0x3c,0x0,0xce,0xff, +0x7b,0xff,0x26,0xff,0xf0,0xfe,0x23,0xff,0x85,0xff,0xca,0xff, +0x0,0x0,0x14,0x0,0xe1,0xff,0x99,0xff,0x7b,0xff,0x81,0xff, +0xb1,0xff,0x12,0x0,0x4c,0x0,0x17,0x0,0xc8,0xff,0xa5,0xff, +0x7a,0xff,0x49,0xff,0x66,0xff,0xcc,0xff,0x49,0x0,0xc7,0x0, +0xf1,0x0,0xb0,0x0,0x76,0x0,0x56,0x0,0x13,0x0,0xda,0xff, +0xb7,0xff,0x70,0xff,0x3f,0xff,0x5c,0xff,0x9c,0xff,0xa,0x0, +0x86,0x0,0x95,0x0,0x4e,0x0,0x19,0x0,0xfd,0xff,0xed,0xff, +0xd9,0xff,0xaa,0xff,0xaa,0xff,0xfd,0xff,0x4c,0x0,0x8f,0x0, +0xe0,0x0,0xf2,0x0,0xb5,0x0,0x6e,0x0,0x2b,0x0,0xf7,0xff, +0xd1,0xff,0xa4,0xff,0x8e,0xff,0x7d,0xff,0x3d,0xff,0xfa,0xfe, +0xe3,0xfe,0xa,0xff,0x9f,0xff,0x54,0x0,0xac,0x0,0xd3,0x0, +0xdf,0x0,0xb3,0x0,0xa0,0x0,0xad,0x0,0x7a,0x0,0x44,0x0, +0x30,0x0,0xf0,0xff,0xb9,0xff,0xce,0xff,0xd4,0xff,0xa2,0xff, +0x72,0xff,0x6a,0xff,0x8f,0xff,0xbd,0xff,0xc8,0xff,0xba,0xff, +0xab,0xff,0xb0,0xff,0xcb,0xff,0xcf,0xff,0xd3,0xff,0x8,0x0, +0x26,0x0,0xe,0x0,0xfb,0xff,0xd9,0xff,0xb1,0xff,0xce,0xff, +0x13,0x0,0x51,0x0,0x91,0x0,0xab,0x0,0x9c,0x0,0x97,0x0, +0x7f,0x0,0x42,0x0,0xa,0x0,0xcd,0xff,0x97,0xff,0x85,0xff, +0x66,0xff,0x46,0xff,0x6d,0xff,0xae,0xff,0xc8,0xff,0xd9,0xff, +0xfa,0xff,0x1f,0x0,0x34,0x0,0x46,0x0,0x7a,0x0,0xbe,0x0, +0xe1,0x0,0xd0,0x0,0x63,0x0,0xb7,0xff,0x52,0xff,0x50,0xff, +0x7a,0xff,0xe1,0xff,0x58,0x0,0x7f,0x0,0x77,0x0,0x75,0x0, +0x4d,0x0,0xfa,0xff,0xae,0xff,0x84,0xff,0x94,0xff,0xcb,0xff, +0xef,0xff,0xea,0xff,0xd6,0xff,0xe5,0xff,0x35,0x0,0x89,0x0, +0xac,0x0,0xc2,0x0,0xd3,0x0,0xb5,0x0,0x74,0x0,0x2a,0x0, +0xb0,0xff,0xe2,0xfe,0xe8,0xfd,0xa,0xfd,0x73,0xfc,0x43,0xfc, +0xab,0xfc,0xba,0xfd,0x34,0xff,0xd7,0x0,0x7e,0x2,0xe,0x4, +0x5b,0x5,0x14,0x6,0xaf,0x5,0xdd,0x3,0xe,0x1,0x25,0xfe, +0xcd,0xfb,0x99,0xfa,0xb6,0xfa,0x77,0xfb,0x41,0xfc,0x4e,0xfd, +0xcc,0xfe,0x89,0x0,0x64,0x2,0xe3,0x3,0x5b,0x4,0xdf,0x3, +0xe7,0x2,0xb7,0x1,0x7f,0x0,0x41,0xff,0xfe,0xfd,0x22,0xfd, +0x4,0xfd,0x75,0xfd,0x46,0xfe,0x6a,0xff,0xac,0x0,0xd6,0x1, +0xb4,0x2,0xed,0x2,0x4e,0x2,0x29,0x1,0x6,0x0,0x1b,0xff, +0x80,0xfe,0x54,0xfe,0x56,0xfe,0x43,0xfe,0x51,0xfe,0x80,0xfe, +0x96,0xfe,0xca,0xfe,0x2c,0xff,0x6c,0xff,0x92,0xff,0xb4,0xff, +0xd5,0xff,0x54,0x0,0x29,0x1,0xd2,0x1,0x53,0x2,0x9d,0x2, +0x4f,0x2,0x9c,0x1,0xc8,0x0,0xce,0xff,0xf7,0xfe,0x35,0xfe, +0x30,0xfd,0x7d,0xfc,0xa3,0xfc,0x35,0xfd,0xf9,0xfd,0xfd,0xfe, +0xf9,0xff,0xd9,0x0,0xcb,0x1,0xa8,0x2,0x1,0x3,0x85,0x2, +0x7e,0x1,0x91,0x0,0xec,0xff,0x6f,0xff,0xc,0xff,0xa5,0xfe, +0x6a,0xfe,0xab,0xfe,0x3f,0xff,0x14,0x0,0x39,0x1,0x24,0x2, +0x6a,0x2,0x28,0x2,0x5d,0x1,0x41,0x0,0x54,0xff,0xa0,0xfe, +0x2a,0xfe,0x7,0xfe,0xd3,0xfd,0x89,0xfd,0x9b,0xfd,0xfe,0xfd, +0x9b,0xfe,0x91,0xff,0x7b,0x0,0xe,0x1,0x85,0x1,0xd2,0x1, +0xce,0x1,0xa8,0x1,0x4e,0x1,0x9c,0x0,0xf0,0xff,0x91,0xff, +0x5b,0xff,0x3d,0xff,0x59,0xff,0x96,0xff,0xb4,0xff,0xaf,0xff, +0x9b,0xff,0x71,0xff,0x43,0xff,0x15,0xff,0xb4,0xfe,0x59,0xfe, +0x63,0xfe,0x9f,0xfe,0xe5,0xfe,0x6f,0xff,0x23,0x0,0xb7,0x0, +0x2e,0x1,0x77,0x1,0x74,0x1,0x3e,0x1,0xed,0x0,0x8f,0x0, +0x36,0x0,0xe6,0xff,0xbc,0xff,0xc7,0xff,0xcb,0xff,0xa7,0xff, +0x89,0xff,0x84,0xff,0x80,0xff,0x77,0xff,0x60,0xff,0x34,0xff, +0x13,0xff,0x2a,0xff,0x5c,0xff,0x78,0xff,0x9e,0xff,0xd9,0xff, +0x14,0x0,0x81,0x0,0x11,0x1,0x4c,0x1,0x3d,0x1,0x4b,0x1, +0x72,0x1,0x93,0x1,0x8b,0x1,0x13,0x1,0x5d,0x0,0xb8,0xff, +0x15,0xff,0x9c,0xfe,0x77,0xfe,0x5c,0xfe,0x47,0xfe,0x5c,0xfe, +0x72,0xfe,0xb9,0xfe,0x64,0xff,0x13,0x0,0xa3,0x0,0x43,0x1, +0xc9,0x1,0xfc,0x1,0xde,0x1,0x71,0x1,0xc6,0x0,0xf2,0xff, +0x27,0xff,0xa5,0xfe,0x55,0xfe,0x39,0xfe,0x7f,0xfe,0xdd,0xfe, +0x31,0xff,0xe2,0xff,0xbd,0x0,0x3e,0x1,0x84,0x1,0x8c,0x1, +0x2b,0x1,0xab,0x0,0x25,0x0,0x8e,0xff,0x2a,0xff,0xfe,0xfe, +0xf4,0xfe,0x2e,0xff,0x83,0xff,0xdd,0xff,0x7c,0x0,0x1e,0x1, +0x73,0x1,0xb3,0x1,0xc3,0x1,0x6e,0x1,0x13,0x1,0xcf,0x0, +0x61,0x0,0xfd,0xff,0xe0,0xff,0xcf,0xff,0xae,0xff,0x9d,0xff, +0x96,0xff,0x93,0xff,0xbb,0xff,0x6,0x0,0x25,0x0,0x5,0x0, +0xc4,0xff,0x47,0xff,0x97,0xfe,0xeb,0xfd,0x1a,0xfd,0x28,0xfc, +0x9e,0xfb,0xc8,0xfb,0xaa,0xfc,0x40,0xfe,0x24,0x0,0x8,0x2, +0xd,0x4,0xe8,0x5,0x7,0x7,0x23,0x7,0xcd,0x5,0xd9,0x2, +0x5c,0xff,0xb2,0xfc,0x3d,0xfb,0xaf,0xfa,0xba,0xfa,0x49,0xfb, +0x7e,0xfc,0x55,0xfe,0x59,0x0,0x3,0x2,0x39,0x3,0x26,0x4, +0xad,0x4,0x8a,0x4,0xba,0x3,0x79,0x2,0x1e,0x1,0xdb,0xff, +0xa5,0xfe,0x97,0xfd,0x1,0xfd,0x17,0xfd,0xec,0xfd,0x4f,0xff, +0xc5,0x0,0x3b,0x2,0x9b,0x3,0x33,0x4,0xc1,0x3,0xc1,0x2, +0x70,0x1,0xe,0x0,0xa,0xff,0x46,0xfe,0x98,0xfd,0x43,0xfd, +0x32,0xfd,0x3b,0xfd,0x89,0xfd,0x4,0xfe,0x56,0xfe,0x84,0xfe, +0xbe,0xfe,0x37,0xff,0xf0,0xff,0xa6,0x0,0x36,0x1,0xb3,0x1, +0x1a,0x2,0x52,0x2,0x25,0x2,0x8f,0x1,0xec,0x0,0x32,0x0, +0x18,0xff,0xfe,0xfd,0x5c,0xfd,0x36,0xfd,0x7c,0xfd,0xdc,0xfd, +0xb,0xfe,0x5c,0xfe,0xd,0xff,0xea,0xff,0xd8,0x0,0x9f,0x1, +0x3,0x2,0x3e,0x2,0x4e,0x2,0xed,0x1,0x5b,0x1,0xd3,0x0, +0x32,0x0,0xaf,0xff,0x7e,0xff,0x81,0xff,0xe3,0xff,0xca,0x0, +0xd1,0x1,0x92,0x2,0xe1,0x2,0xaf,0x2,0xf,0x2,0x10,0x1, +0xe1,0xff,0xe9,0xfe,0x50,0xfe,0xe0,0xfd,0x98,0xfd,0xa2,0xfd, +0xfc,0xfd,0x98,0xfe,0x6a,0xff,0x48,0x0,0x17,0x1,0xd3,0x1, +0x46,0x2,0x2b,0x2,0xb9,0x1,0x4f,0x1,0xe5,0x0,0x7b,0x0, +0x4f,0x0,0x47,0x0,0x1f,0x0,0xf3,0xff,0xd4,0xff,0xa8,0xff, +0x6d,0xff,0x7,0xff,0x6c,0xfe,0xee,0xfd,0xa9,0xfd,0x70,0xfd, +0x56,0xfd,0x8a,0xfd,0x2d,0xfe,0x69,0xff,0xed,0x0,0x9,0x2, +0x98,0x2,0xd6,0x2,0xbf,0x2,0x4d,0x2,0x92,0x1,0x8a,0x0, +0x97,0xff,0x53,0xff,0xa4,0xff,0xfd,0xff,0x52,0x0,0xd1,0x0, +0x41,0x1,0x61,0x1,0x2b,0x1,0xa0,0x0,0xee,0xff,0x6e,0xff, +0x31,0xff,0x9,0xff,0xf4,0xfe,0x2,0xff,0x3e,0xff,0xb2,0xff, +0x40,0x0,0xc2,0x0,0x43,0x1,0xc5,0x1,0x1f,0x2,0x20,0x2, +0xab,0x1,0xdd,0x0,0x1d,0x0,0xac,0xff,0x5d,0xff,0xfb,0xfe, +0xad,0xfe,0xb4,0xfe,0x1a,0xff,0xb8,0xff,0x51,0x0,0xb2,0x0, +0xee,0x0,0x15,0x1,0xf5,0x0,0x95,0x0,0x41,0x0,0xdf,0xff, +0x5a,0xff,0x1d,0xff,0x3b,0xff,0x55,0xff,0x8d,0xff,0x18,0x0, +0xb4,0x0,0x3f,0x1,0xbe,0x1,0xf0,0x1,0xb9,0x1,0x47,0x1, +0xc4,0x0,0x62,0x0,0x21,0x0,0xbc,0xff,0x41,0xff,0x16,0xff, +0x3c,0xff,0x86,0xff,0x6,0x0,0x99,0x0,0xde,0x0,0xe1,0x0, +0xfb,0x0,0x9,0x1,0xaa,0x0,0xff,0xff,0x77,0xff,0x1f,0xff, +0xdb,0xfe,0xb1,0xfe,0x97,0xfe,0x75,0xfe,0x4c,0xfe,0x2,0xfe, +0x69,0xfd,0x9a,0xfc,0xd3,0xfb,0x2b,0xfb,0xd2,0xfa,0x2e,0xfb, +0x58,0xfc,0x13,0xfe,0x4a,0x0,0xd8,0x2,0x3f,0x5,0x15,0x7, +0x2a,0x8,0x39,0x8,0x32,0x7,0x29,0x5,0x8,0x2,0x42,0xfe, +0xff,0xfa,0xe8,0xf8,0xf1,0xf7,0x20,0xf8,0x6a,0xf9,0xb2,0xfb, +0xc6,0xfe,0xd1,0x1,0x14,0x4,0xc9,0x5,0xf5,0x6,0xf7,0x6, +0xdb,0x5,0x4f,0x4,0xb1,0x2,0x1b,0x1,0x98,0xff,0x47,0xfe, +0x8f,0xfd,0xb6,0xfd,0x97,0xfe,0xeb,0xff,0x67,0x1,0xbe,0x2, +0x9b,0x3,0x8e,0x3,0x8f,0x2,0x2f,0x1,0xb8,0xff,0x17,0xfe, +0x94,0xfc,0xa6,0xfb,0x62,0xfb,0x7a,0xfb,0xa6,0xfb,0x11,0xfc, +0x7,0xfd,0x3d,0xfe,0x31,0xff,0xd6,0xff,0x69,0x0,0xf8,0x0, +0x59,0x1,0x81,0x1,0xb8,0x1,0xb,0x2,0x1a,0x2,0xe7,0x1, +0xb1,0x1,0x36,0x1,0x30,0x0,0xf1,0xfe,0xcb,0xfd,0xb6,0xfc, +0xc8,0xfb,0x5a,0xfb,0xa3,0xfb,0x7d,0xfc,0xa8,0xfd,0x1,0xff, +0x6a,0x0,0xcb,0x1,0xfe,0x2,0xd0,0x3,0x3d,0x4,0x45,0x4, +0xb6,0x3,0xaa,0x2,0x8a,0x1,0x83,0x0,0xbb,0xff,0x5d,0xff, +0x24,0xff,0x5,0xff,0x95,0xff,0xe9,0x0,0x4f,0x2,0x50,0x3, +0xe6,0x3,0xf3,0x3,0x42,0x3,0xe8,0x1,0x4d,0x0,0xc5,0xfe, +0x76,0xfd,0x96,0xfc,0x4d,0xfc,0x8a,0xfc,0x2d,0xfd,0x4,0xfe, +0xf0,0xfe,0xf3,0xff,0xd7,0x0,0x68,0x1,0xc1,0x1,0xd1,0x1, +0x82,0x1,0x31,0x1,0xee,0x0,0x5c,0x0,0xa0,0xff,0x29,0xff, +0xf2,0xfe,0xba,0xfe,0x69,0xfe,0x25,0xfe,0xe,0xfe,0xef,0xfd, +0xa2,0xfd,0x72,0xfd,0x96,0xfd,0xe6,0xfd,0x3a,0xfe,0x99,0xfe, +0x29,0xff,0xff,0xff,0x2,0x1,0xf2,0x1,0x82,0x2,0x94,0x2, +0x4d,0x2,0xbf,0x1,0x17,0x1,0xa8,0x0,0x51,0x0,0xf7,0xff, +0x2,0x0,0x80,0x0,0x19,0x1,0xc9,0x1,0x53,0x2,0x75,0x2, +0x6f,0x2,0x33,0x2,0x8c,0x1,0xe2,0x0,0x3a,0x0,0x42,0xff, +0x70,0xfe,0x23,0xfe,0x1c,0xfe,0x64,0xfe,0xe5,0xfe,0x65,0xff, +0x48,0x0,0x8c,0x1,0x63,0x2,0xb2,0x2,0xca,0x2,0x7a,0x2, +0xc2,0x1,0xb,0x1,0x65,0x0,0x9c,0xff,0xc3,0xfe,0x23,0xfe, +0xe2,0xfd,0xe9,0xfd,0x24,0xfe,0x81,0xfe,0xde,0xfe,0x39,0xff, +0x7d,0xff,0x92,0xff,0xb9,0xff,0xe7,0xff,0xbe,0xff,0x7b,0xff, +0x7a,0xff,0x78,0xff,0x68,0xff,0x82,0xff,0xa4,0xff,0xc6,0xff, +0x1f,0x0,0x88,0x0,0xbe,0x0,0xb5,0x0,0x7c,0x0,0x4d,0x0, +0x57,0x0,0x87,0x0,0xc5,0x0,0x0,0x1,0x15,0x1,0x5,0x1, +0xfb,0x0,0x3,0x1,0xc,0x1,0xa,0x1,0xa,0x1,0xfb,0x0, +0xb9,0x0,0x7f,0x0,0x87,0x0,0xa4,0x0,0xba,0x0,0xe2,0x0, +0x2,0x1,0xfc,0x0,0xcd,0x0,0x6f,0x0,0x14,0x0,0xc9,0xff, +0x43,0xff,0xa5,0xfe,0x5d,0xfe,0x4e,0xfe,0x26,0xfe,0xea,0xfd, +0x9e,0xfd,0x3e,0xfd,0xd6,0xfc,0x52,0xfc,0xac,0xfb,0x1b,0xfb, +0xca,0xfa,0xbc,0xfa,0x23,0xfb,0x49,0xfc,0xd,0xfe,0x10,0x0, +0x43,0x2,0x71,0x4,0x6,0x6,0xe1,0x6,0x2d,0x7,0x91,0x6, +0xa7,0x4,0xa6,0x1,0x31,0xfe,0x34,0xfb,0x5a,0xf9,0x88,0xf8, +0x92,0xf8,0xbe,0xf9,0xe,0xfc,0xed,0xfe,0x94,0x1,0xa2,0x3, +0x5a,0x5,0xcb,0x6,0x49,0x7,0xa2,0x6,0x8f,0x5,0x60,0x4, +0xa9,0x2,0x88,0x0,0xde,0xfe,0x1f,0xfe,0xfa,0xfd,0x35,0xfe, +0xe1,0xfe,0xe4,0xff,0x9,0x1,0x10,0x2,0x7d,0x2,0x2a,0x2, +0x88,0x1,0xb5,0x0,0x79,0xff,0x17,0xfe,0x23,0xfd,0xbb,0xfc, +0x7b,0xfc,0x35,0xfc,0x3f,0xfc,0xb6,0xfc,0x1e,0xfd,0x43,0xfd, +0x85,0xfd,0x13,0xfe,0xd1,0xfe,0x9d,0xff,0x5a,0x0,0x2b,0x1, +0x24,0x2,0xd2,0x2,0xd6,0x2,0x70,0x2,0xc3,0x1,0xb1,0x0, +0x5a,0xff,0xe9,0xfd,0x6b,0xfc,0x2f,0xfb,0x7c,0xfa,0x54,0xfa, +0xc8,0xfa,0xea,0xfb,0x82,0xfd,0x64,0xff,0x8b,0x1,0xa8,0x3, +0x4d,0x5,0x3b,0x6,0x4f,0x6,0x95,0x5,0x63,0x4,0xf7,0x2, +0x53,0x1,0xa8,0xff,0x5f,0xfe,0xb8,0xfd,0xc0,0xfd,0x71,0xfe, +0xad,0xff,0x3d,0x1,0xd9,0x2,0x30,0x4,0xf8,0x4,0xa,0x5, +0x6c,0x4,0x4e,0x3,0xe4,0x1,0x53,0x0,0xcb,0xfe,0x8f,0xfd, +0xa2,0xfc,0xef,0xfb,0xaf,0xfb,0x15,0xfc,0xe6,0xfc,0xe9,0xfd, +0x8,0xff,0x1,0x0,0xd6,0x0,0xb0,0x1,0x3e,0x2,0x3b,0x2, +0xef,0x1,0x7e,0x1,0xe6,0x0,0x48,0x0,0x83,0xff,0x87,0xfe, +0xbc,0xfd,0x46,0xfd,0xed,0xfc,0xba,0xfc,0xaa,0xfc,0xa8,0xfc, +0xeb,0xfc,0x87,0xfd,0x28,0xfe,0xa4,0xfe,0x23,0xff,0xc4,0xff, +0x6d,0x0,0xef,0x0,0x4e,0x1,0xa6,0x1,0xe5,0x1,0xef,0x1, +0xd1,0x1,0xaa,0x1,0x9b,0x1,0xa4,0x1,0xbf,0x1,0x6,0x2, +0x6e,0x2,0xc8,0x2,0xa,0x3,0x25,0x3,0x3,0x3,0xa4,0x2, +0xe4,0x1,0xb0,0x0,0x5d,0xff,0x3d,0xfe,0x69,0xfd,0xec,0xfc, +0xaf,0xfc,0xb1,0xfc,0x30,0xfd,0x3b,0xfe,0x9f,0xff,0x2b,0x1, +0xb1,0x2,0x11,0x4,0x7,0x5,0x1b,0x5,0x66,0x4,0x6e,0x3, +0x24,0x2,0x72,0x0,0xcc,0xfe,0x70,0xfd,0x5e,0xfc,0xd4,0xfb, +0xf0,0xfb,0x8d,0xfc,0x93,0xfd,0xc2,0xfe,0xd0,0xff,0x86,0x0, +0xaf,0x0,0x58,0x0,0xce,0xff,0x21,0xff,0x6c,0xfe,0xf9,0xfd, +0xc3,0xfd,0xaf,0xfd,0x2,0xfe,0xe3,0xfe,0x12,0x0,0x46,0x1, +0x5a,0x2,0x46,0x3,0x4,0x4,0x73,0x4,0x7a,0x4,0x21,0x4, +0x69,0x3,0x4f,0x2,0x11,0x1,0x9,0x0,0x39,0xff,0x84,0xfe, +0x1c,0xfe,0x26,0xfe,0x6e,0xfe,0xea,0xfe,0xac,0xff,0x69,0x0, +0xd6,0x0,0xc,0x1,0x2a,0x1,0x1c,0x1,0xdd,0x0,0x95,0x0, +0x53,0x0,0x7,0x0,0xbe,0xff,0x8c,0xff,0x55,0xff,0x5,0xff, +0xb1,0xfe,0x4d,0xfe,0xc1,0xfd,0x0,0xfd,0x5,0xfc,0x15,0xfb, +0x74,0xfa,0xe6,0xf9,0x62,0xf9,0x7e,0xf9,0x6c,0xfa,0xe2,0xfb, +0xe2,0xfd,0x5c,0x0,0xb7,0x2,0x75,0x4,0x96,0x5,0x3c,0x6, +0x56,0x6,0x8a,0x5,0xa0,0x3,0xef,0x0,0x35,0xfe,0x35,0xfc, +0x68,0xfb,0xad,0xfb,0x8f,0xfc,0xed,0xfd,0xe1,0xff,0xb,0x2, +0xae,0x3,0x98,0x4,0x11,0x5,0x18,0x5,0x6d,0x4,0x37,0x3, +0xf1,0x1,0xeb,0x0,0xb,0x0,0x2a,0xff,0xa6,0xfe,0xfc,0xfe, +0xee,0xff,0xeb,0x0,0xd8,0x1,0xb9,0x2,0x5a,0x3,0x8b,0x3, +0x1f,0x3,0xf6,0x1,0x5a,0x0,0xd2,0xfe,0x9d,0xfd,0xbc,0xfc, +0x51,0xfc,0x6c,0xfc,0xb8,0xfc,0xe0,0xfc,0xd,0xfd,0x7a,0xfd, +0xeb,0xfd,0x6,0xfe,0xd9,0xfd,0xbc,0xfd,0xce,0xfd,0xe8,0xfd, +0xc,0xfe,0x88,0xfe,0x56,0xff,0x19,0x0,0xa8,0x0,0xe9,0x0, +0xce,0x0,0xae,0x0,0xa9,0x0,0x48,0x0,0x83,0xff,0xe0,0xfe, +0x7e,0xfe,0x43,0xfe,0x51,0xfe,0x88,0xfe,0xce,0xfe,0x71,0xff, +0x61,0x0,0x30,0x1,0xf2,0x1,0xa3,0x2,0xdd,0x2,0xbc,0x2, +0x9c,0x2,0x6c,0x2,0x21,0x2,0xc7,0x1,0x53,0x1,0xe,0x1, +0x2c,0x1,0x69,0x1,0xcd,0x1,0x8b,0x2,0x38,0x3,0x7e,0x3, +0x7f,0x3,0x3b,0x3,0xa7,0x2,0xed,0x1,0x22,0x1,0x55,0x0, +0xaa,0xff,0x33,0xff,0xdd,0xfe,0x70,0xfe,0xf5,0xfd,0xce,0xfd, +0xe5,0xfd,0xc8,0xfd,0xbc,0xfd,0x2c,0xfe,0xb4,0xfe,0xed,0xfe, +0x1f,0xff,0x96,0xff,0x14,0x0,0x3e,0x0,0x3f,0x0,0x65,0x0, +0x64,0x0,0xf4,0xff,0x6a,0xff,0xfc,0xfe,0x77,0xfe,0xe1,0xfd, +0x6d,0xfd,0x30,0xfd,0x47,0xfd,0xa6,0xfd,0x1b,0xfe,0x9e,0xfe, +0x48,0xff,0xa,0x0,0xab,0x0,0x10,0x1,0x42,0x1,0x40,0x1, +0x28,0x1,0x2b,0x1,0x22,0x1,0xf2,0x0,0xf6,0x0,0x3c,0x1, +0x84,0x1,0xdd,0x1,0x34,0x2,0x5d,0x2,0xa1,0x2,0x5,0x3, +0x19,0x3,0xe1,0x2,0x85,0x2,0xee,0x1,0x3f,0x1,0x77,0x0, +0x77,0xff,0xac,0xfe,0x4f,0xfe,0x10,0xfe,0x1e,0xfe,0xcf,0xfe, +0xba,0xff,0x7e,0x0,0x3b,0x1,0xfc,0x1,0x96,0x2,0xd5,0x2, +0x96,0x2,0x2,0x2,0x46,0x1,0x55,0x0,0x38,0xff,0x2b,0xfe, +0x65,0xfd,0xfa,0xfc,0xea,0xfc,0x36,0xfd,0xd6,0xfd,0xa6,0xfe, +0x6e,0xff,0xfd,0xff,0x49,0x0,0x63,0x0,0x3d,0x0,0xc2,0xff, +0x2a,0xff,0xac,0xfe,0x3e,0xfe,0xf0,0xfd,0xf9,0xfd,0x6e,0xfe, +0x32,0xff,0xe,0x0,0xf0,0x0,0xe0,0x1,0xb7,0x2,0x34,0x3, +0x4f,0x3,0x21,0x3,0xac,0x2,0xff,0x1,0x3f,0x1,0x92,0x0, +0x4,0x0,0x99,0xff,0x74,0xff,0xa4,0xff,0x6,0x0,0x67,0x0, +0xac,0x0,0xf1,0x0,0x42,0x1,0x48,0x1,0xe4,0x0,0x7e,0x0, +0x28,0x0,0xa6,0xff,0x26,0xff,0xc4,0xfe,0x56,0xfe,0x12,0xfe, +0x2f,0xfe,0x65,0xfe,0x80,0xfe,0x78,0xfe,0x23,0xfe,0x7b,0xfd, +0x98,0xfc,0x9f,0xfb,0xc8,0xfa,0x1a,0xfa,0x8e,0xf9,0x8d,0xf9, +0x6a,0xfa,0x4,0xfc,0x38,0xfe,0xbe,0x0,0xf,0x3,0xf1,0x4, +0x6b,0x6,0x2e,0x7,0xda,0x6,0x5c,0x5,0xde,0x2,0xcd,0xff, +0xeb,0xfc,0xdf,0xfa,0xeb,0xf9,0x18,0xfa,0x2f,0xfb,0xe7,0xfc, +0x2d,0xff,0xc0,0x1,0xe6,0x3,0x4e,0x5,0x30,0x6,0x59,0x6, +0x84,0x5,0x30,0x4,0xbf,0x2,0x21,0x1,0xae,0xff,0xd3,0xfe, +0x85,0xfe,0xc7,0xfe,0xa8,0xff,0xdf,0x0,0x1d,0x2,0x21,0x3, +0x9c,0x3,0x73,0x3,0xa9,0x2,0x43,0x1,0xa0,0xff,0x2a,0xfe, +0xe3,0xfc,0xfb,0xfb,0xdb,0xfb,0x4a,0xfc,0xc4,0xfc,0x52,0xfd, +0x14,0xfe,0xb6,0xfe,0xed,0xfe,0xc8,0xfe,0x80,0xfe,0x3e,0xfe, +0x4,0xfe,0xea,0xfd,0x23,0xfe,0xb0,0xfe,0x61,0xff,0x10,0x0, +0x93,0x0,0xc4,0x0,0xbd,0x0,0xaa,0x0,0x87,0x0,0x1f,0x0, +0x63,0xff,0x97,0xfe,0x13,0xfe,0xe3,0xfd,0xe8,0xfd,0xfb,0xfd, +0x35,0xfe,0xf1,0xfe,0x17,0x0,0xa,0x1,0xb4,0x1,0x56,0x2, +0xbc,0x2,0xc2,0x2,0x92,0x2,0x2b,0x2,0xaf,0x1,0x6f,0x1, +0x64,0x1,0x7a,0x1,0xc5,0x1,0x1b,0x2,0x6f,0x2,0xd7,0x2, +0x10,0x3,0xec,0x2,0x97,0x2,0x2,0x2,0x12,0x1,0x13,0x0, +0x2d,0xff,0x4a,0xfe,0x9d,0xfd,0x79,0xfd,0xd1,0xfd,0x5c,0xfe, +0x15,0xff,0xff,0xff,0xc5,0x0,0x36,0x1,0x88,0x1,0xb4,0x1, +0x88,0x1,0xf,0x1,0x41,0x0,0x3e,0xff,0x70,0xfe,0xed,0xfd, +0x8f,0xfd,0x7a,0xfd,0xa0,0xfd,0xd2,0xfd,0x42,0xfe,0xe4,0xfe, +0x54,0xff,0x8f,0xff,0xa0,0xff,0x53,0xff,0xc1,0xfe,0x4e,0xfe, +0x27,0xfe,0x36,0xfe,0x65,0xfe,0xe7,0xfe,0xd7,0xff,0xc3,0x0, +0x59,0x1,0xdb,0x1,0x6b,0x2,0xd6,0x2,0xe,0x3,0x15,0x3, +0xda,0x2,0x7e,0x2,0x2b,0x2,0xcb,0x1,0x34,0x1,0x98,0x0, +0x5e,0x0,0x69,0x0,0x56,0x0,0x31,0x0,0x3f,0x0,0x67,0x0, +0x6f,0x0,0x41,0x0,0xf5,0xff,0xcb,0xff,0xd2,0xff,0xf0,0xff, +0x41,0x0,0xda,0x0,0x89,0x1,0x39,0x2,0xdd,0x2,0x22,0x3, +0xd6,0x2,0x34,0x2,0x6d,0x1,0x6e,0x0,0x30,0xff,0xe8,0xfd, +0xe7,0xfc,0x4c,0xfc,0x9,0xfc,0x1b,0xfc,0x92,0xfc,0x58,0xfd, +0x36,0xfe,0x15,0xff,0xe7,0xff,0x7a,0x0,0xa9,0x0,0x9a,0x0, +0x7c,0x0,0x4e,0x0,0x2,0x0,0xab,0xff,0x56,0xff,0x20,0xff, +0x49,0xff,0xdf,0xff,0x99,0x0,0x52,0x1,0x15,0x2,0xa8,0x2, +0xd4,0x2,0xb9,0x2,0x60,0x2,0xb0,0x1,0xc9,0x0,0xe7,0xff, +0x2f,0xff,0xbc,0xfe,0x92,0xfe,0xbd,0xfe,0x47,0xff,0xef,0xff, +0x89,0x0,0x42,0x1,0xfe,0x1,0x61,0x2,0x7d,0x2,0x89,0x2, +0x65,0x2,0xe7,0x1,0x2d,0x1,0x73,0x0,0xca,0xff,0x23,0xff, +0x84,0xfe,0xfc,0xfd,0x99,0xfd,0x72,0xfd,0x5a,0xfd,0xef,0xfc, +0x3d,0xfc,0x87,0xfb,0xb8,0xfa,0xd4,0xf9,0x3a,0xf9,0x7,0xf9, +0x17,0xf9,0x8d,0xf9,0xcb,0xfa,0xe5,0xfc,0x70,0xff,0x1,0x2, +0x72,0x4,0x76,0x6,0xc0,0x7,0x41,0x8,0xb2,0x7,0xd1,0x5, +0x2b,0x3,0x66,0x0,0x90,0xfd,0x15,0xfb,0xc6,0xf9,0xa2,0xf9, +0x2e,0xfa,0x6d,0xfb,0x71,0xfd,0xcf,0xff,0xf,0x2,0xe2,0x3, +0x13,0x5,0x9b,0x5,0x79,0x5,0xca,0x4,0xe3,0x3,0xcd,0x2, +0x7c,0x1,0x86,0x0,0x5d,0x0,0x9e,0x0,0x1e,0x1,0x21,0x2, +0x4b,0x3,0x21,0x4,0x99,0x4,0x6f,0x4,0x60,0x3,0xbb,0x1, +0xe8,0xff,0x14,0xfe,0x61,0xfc,0xf6,0xfa,0x17,0xfa,0xd8,0xf9, +0xdf,0xf9,0x2a,0xfa,0x6,0xfb,0x22,0xfc,0x6,0xfd,0xd6,0xfd, +0xb8,0xfe,0x82,0xff,0x28,0x0,0xbd,0x0,0x3d,0x1,0xa5,0x1, +0xfe,0x1,0x2e,0x2,0xe3,0x1,0x24,0x1,0x58,0x0,0x81,0xff, +0x5e,0xfe,0x28,0xfd,0x44,0xfc,0xc4,0xfb,0x92,0xfb,0xa4,0xfb, +0x20,0xfc,0x2e,0xfd,0x89,0xfe,0xde,0xff,0x35,0x1,0x83,0x2, +0x7c,0x3,0xf4,0x3,0xf7,0x3,0xa9,0x3,0x24,0x3,0x80,0x2, +0xf5,0x1,0x9b,0x1,0x76,0x1,0xa3,0x1,0x1a,0x2,0xc5,0x2, +0xac,0x3,0x6b,0x4,0x93,0x4,0x66,0x4,0xcf,0x3,0x51,0x2, +0x60,0x0,0xaa,0xfe,0x14,0xfd,0xc0,0xfb,0x1a,0xfb,0xd,0xfb, +0x90,0xfb,0xa5,0xfc,0xf2,0xfd,0x4d,0xff,0xa3,0x0,0xa4,0x1, +0x58,0x2,0xe4,0x2,0xfb,0x2,0x8d,0x2,0xe4,0x1,0xc,0x1, +0xf7,0xff,0xd2,0xfe,0xe1,0xfd,0x41,0xfd,0xe0,0xfc,0xbc,0xfc, +0xeb,0xfc,0x3b,0xfd,0x75,0xfd,0xc5,0xfd,0x2e,0xfe,0x64,0xfe, +0x63,0xfe,0x79,0xfe,0xab,0xfe,0xbc,0xfe,0xcd,0xfe,0x44,0xff, +0xfb,0xff,0x79,0x0,0xd0,0x0,0x4f,0x1,0xe3,0x1,0x66,0x2, +0xdf,0x2,0x6f,0x3,0xf,0x4,0x58,0x4,0x8,0x4,0x75,0x3, +0xc4,0x2,0xc5,0x1,0xc3,0x0,0x16,0x0,0x8f,0xff,0x22,0xff, +0x4,0xff,0x15,0xff,0x29,0xff,0x56,0xff,0x94,0xff,0xb1,0xff, +0xca,0xff,0x28,0x0,0xbc,0x0,0x45,0x1,0xc4,0x1,0x3d,0x2, +0x7f,0x2,0x6b,0x2,0xa,0x2,0x7a,0x1,0xf1,0x0,0x65,0x0, +0x8f,0xff,0x90,0xfe,0xc4,0xfd,0x1f,0xfd,0x8d,0xfc,0x54,0xfc, +0x79,0xfc,0xbc,0xfc,0x2c,0xfd,0xf6,0xfd,0xe3,0xfe,0x9d,0xff, +0x11,0x0,0x3b,0x0,0x23,0x0,0xe4,0xff,0x8f,0xff,0x32,0xff, +0xea,0xfe,0xdd,0xfe,0x45,0xff,0x32,0x0,0x28,0x1,0xd2,0x1, +0x72,0x2,0xf9,0x2,0xfb,0x2,0x9e,0x2,0x3b,0x2,0xb7,0x1, +0xff,0x0,0x4b,0x0,0xb4,0xff,0x38,0xff,0xf7,0xfe,0x14,0xff, +0x76,0xff,0xec,0xff,0x80,0x0,0x22,0x1,0x87,0x1,0xd0,0x1, +0x3c,0x2,0x7f,0x2,0x74,0x2,0x63,0x2,0x30,0x2,0xa7,0x1, +0xf6,0x0,0x10,0x0,0xf4,0xfe,0x1b,0xfe,0x9e,0xfd,0x20,0xfd, +0x90,0xfc,0xf7,0xfb,0x59,0xfb,0xf2,0xfa,0xbb,0xfa,0x6f,0xfa, +0x34,0xfa,0x45,0xfa,0x70,0xfa,0xca,0xfa,0xa7,0xfb,0x8,0xfd, +0xe3,0xfe,0x23,0x1,0x2e,0x3,0xb1,0x4,0xfe,0x5,0xf9,0x6, +0xd,0x7,0xfd,0x5,0xd1,0x3,0xff,0x0,0x5c,0xfe,0x2c,0xfc, +0x87,0xfa,0xfd,0xf9,0x7a,0xfa,0x78,0xfb,0x1f,0xfd,0x5b,0xff, +0x81,0x1,0x77,0x3,0x38,0x5,0x2e,0x6,0x34,0x6,0xa2,0x5, +0xa2,0x4,0x53,0x3,0xd4,0x1,0x72,0x0,0xbb,0xff,0xa5,0xff, +0xd0,0xff,0x74,0x0,0xa1,0x1,0xc4,0x2,0x7e,0x3,0xab,0x3, +0xe,0x3,0xc4,0x1,0x48,0x0,0xd9,0xfe,0x7e,0xfd,0x5c,0xfc, +0xad,0xfb,0x64,0xfb,0x54,0xfb,0x93,0xfb,0x31,0xfc,0xee,0xfc, +0x87,0xfd,0xfc,0xfd,0x7e,0xfe,0x13,0xff,0x71,0xff,0xb4,0xff, +0x4b,0x0,0xf2,0x0,0x4d,0x1,0xa4,0x1,0xe6,0x1,0xa1,0x1, +0x4,0x1,0x4a,0x0,0x5c,0xff,0x58,0xfe,0x5c,0xfd,0x72,0xfc, +0xe5,0xfb,0xea,0xfb,0x74,0xfc,0x57,0xfd,0x68,0xfe,0xc2,0xff, +0x63,0x1,0xd2,0x2,0xeb,0x3,0xb5,0x4,0xd0,0x4,0x43,0x4, +0x60,0x3,0x17,0x2,0xab,0x0,0x9e,0xff,0xf0,0xfe,0xc2,0xfe, +0x47,0xff,0x2c,0x0,0x77,0x1,0x33,0x3,0xa2,0x4,0x62,0x5, +0xa8,0x5,0x3b,0x5,0xfb,0x3,0x3f,0x2,0x4f,0x0,0x70,0xfe, +0xcc,0xfc,0x6b,0xfb,0x92,0xfa,0x71,0xfa,0xfa,0xfa,0x46,0xfc, +0x1e,0xfe,0xf8,0xff,0x97,0x1,0xab,0x2,0xf9,0x2,0xd8,0x2, +0x62,0x2,0x6e,0x1,0x4d,0x0,0x4f,0xff,0x7f,0xfe,0xc,0xfe, +0xf0,0xfd,0x5,0xfe,0x42,0xfe,0x69,0xfe,0x54,0xfe,0x3c,0xfe, +0x22,0xfe,0xf2,0xfd,0xcd,0xfd,0xc2,0xfd,0xf6,0xfd,0x85,0xfe, +0x32,0xff,0xf4,0xff,0xe2,0x0,0xa6,0x1,0x20,0x2,0x73,0x2, +0x63,0x2,0xe0,0x1,0x45,0x1,0xcd,0x0,0x94,0x0,0x98,0x0, +0xc0,0x0,0x2f,0x1,0xd0,0x1,0x51,0x2,0xcf,0x2,0x3c,0x3, +0x3a,0x3,0xfd,0x2,0xb3,0x2,0xed,0x1,0xba,0x0,0xa4,0xff, +0xca,0xfe,0x33,0xfe,0xee,0xfd,0xee,0xfd,0x4e,0xfe,0xfa,0xfe, +0x9a,0xff,0x4c,0x0,0xd,0x1,0x51,0x1,0x22,0x1,0x13,0x1, +0xf3,0x0,0x64,0x0,0xcb,0xff,0x77,0xff,0x17,0xff,0xa3,0xfe, +0x75,0xfe,0x84,0xfe,0x99,0xfe,0xb9,0xfe,0xcd,0xfe,0xbf,0xfe, +0xc5,0xfe,0xe7,0xfe,0xec,0xfe,0xd6,0xfe,0xad,0xfe,0x71,0xfe, +0x58,0xfe,0x5a,0xfe,0x2f,0xfe,0x1c,0xfe,0x7e,0xfe,0x13,0xff, +0xbb,0xff,0xb0,0x0,0xc7,0x1,0xa2,0x2,0x38,0x3,0x8e,0x3, +0x99,0x3,0x5e,0x3,0xc9,0x2,0xd3,0x1,0xcc,0x0,0x4,0x0, +0x85,0xff,0x3d,0xff,0x26,0xff,0x4b,0xff,0xb9,0xff,0x50,0x0, +0xd0,0x0,0x1c,0x1,0x4e,0x1,0x8c,0x1,0xda,0x1,0x12,0x2, +0x21,0x2,0xf7,0x1,0x85,0x1,0x1,0x1,0xa5,0x0,0x44,0x0, +0xc2,0xff,0x51,0xff,0xfb,0xfe,0xbf,0xfe,0xcd,0xfe,0x0,0xff, +0x5,0xff,0xf4,0xfe,0xf6,0xfe,0xe2,0xfe,0x87,0xfe,0xef,0xfd, +0x33,0xfd,0x52,0xfc,0x4e,0xfb,0x5d,0xfa,0x9e,0xf9,0xf,0xf9, +0xf,0xf9,0xf8,0xf9,0xab,0xfb,0x15,0xfe,0x7,0x1,0xc5,0x3, +0xfc,0x5,0xfb,0x7,0x82,0x9,0xc7,0x9,0x64,0x8,0x98,0x5, +0x1a,0x2,0xbb,0xfe,0xf3,0xfb,0xfc,0xf9,0xf3,0xf8,0xee,0xf8, +0x10,0xfa,0x1f,0xfc,0x85,0xfe,0x0,0x1,0x63,0x3,0x4d,0x5, +0x7f,0x6,0xdf,0x6,0x8c,0x6,0x0,0x6,0x1a,0x5,0x55,0x3, +0x4e,0x1,0xf6,0xff,0x20,0xff,0x90,0xfe,0x94,0xfe,0x21,0xff, +0x14,0x0,0x51,0x1,0x32,0x2,0x4e,0x2,0x5,0x2,0x74,0x1, +0x60,0x0,0x5,0xff,0xc6,0xfd,0xc8,0xfc,0xf,0xfc,0x6f,0xfb, +0xe2,0xfa,0xde,0xfa,0x68,0xfb,0xd4,0xfb,0x1f,0xfc,0xe7,0xfc, +0xb,0xfe,0xb,0xff,0x14,0x0,0x5b,0x1,0x8b,0x2,0x65,0x3, +0xd7,0x3,0xb9,0x3,0x2,0x3,0xe3,0x1,0xa1,0x0,0x52,0xff, +0xd9,0xfd,0x66,0xfc,0x81,0xfb,0x5a,0xfb,0xaa,0xfb,0x43,0xfc, +0x2e,0xfd,0x83,0xfe,0x38,0x0,0xec,0x1,0x49,0x3,0x46,0x4, +0xc2,0x4,0x8d,0x4,0xea,0x3,0x3b,0x3,0x7e,0x2,0x9a,0x1, +0xc6,0x0,0x5f,0x0,0x87,0x0,0x10,0x1,0xd3,0x1,0xbc,0x2, +0x8e,0x3,0x5,0x4,0x9,0x4,0x76,0x3,0x44,0x2,0xcf,0x0, +0x5c,0xff,0xde,0xfd,0x8b,0xfc,0xd1,0xfb,0xac,0xfb,0xe4,0xfb, +0x96,0xfc,0xb7,0xfd,0xe7,0xfe,0xf7,0xff,0xe3,0x0,0x82,0x1, +0xb9,0x1,0x96,0x1,0x38,0x1,0xbb,0x0,0x1a,0x0,0x67,0xff, +0x1,0xff,0xf2,0xfe,0xe5,0xfe,0xdb,0xfe,0xf4,0xfe,0xfa,0xfe, +0xce,0xfe,0x81,0xfe,0x1b,0xfe,0xc5,0xfd,0xa1,0xfd,0x99,0xfd, +0xc0,0xfd,0x34,0xfe,0xc2,0xfe,0x53,0xff,0x24,0x0,0x1c,0x1, +0xc6,0x1,0x4,0x2,0x14,0x2,0xe,0x2,0xdd,0x1,0x8a,0x1, +0x47,0x1,0x46,0x1,0x8a,0x1,0xd8,0x1,0xf,0x2,0x5d,0x2, +0xc0,0x2,0xe0,0x2,0xb2,0x2,0x6a,0x2,0xfb,0x1,0x4e,0x1, +0x74,0x0,0x81,0xff,0xb0,0xfe,0x46,0xfe,0x1d,0xfe,0xfc,0xfd, +0x13,0xfe,0x8c,0xfe,0x26,0xff,0xaf,0xff,0x47,0x0,0xeb,0x0, +0x49,0x1,0x61,0x1,0x6e,0x1,0x4e,0x1,0xdc,0x0,0x63,0x0, +0xa,0x0,0x9f,0xff,0x1d,0xff,0xa3,0xfe,0x5b,0xfe,0x55,0xfe, +0x43,0xfe,0xf0,0xfd,0xaf,0xfd,0x8a,0xfd,0x32,0xfd,0xf8,0xfc, +0x48,0xfd,0xcd,0xfd,0x46,0xfe,0xe2,0xfe,0x85,0xff,0xee,0xff, +0x38,0x0,0x80,0x0,0xb1,0x0,0xc9,0x0,0xd0,0x0,0xdb,0x0, +0xfa,0x0,0x24,0x1,0x42,0x1,0x4b,0x1,0x37,0x1,0x18,0x1, +0xf,0x1,0xc,0x1,0xf1,0x0,0xc5,0x0,0x9e,0x0,0x7a,0x0, +0x36,0x0,0xc3,0xff,0x62,0xff,0x4c,0xff,0x64,0xff,0xb1,0xff, +0x63,0x0,0x38,0x1,0xc7,0x1,0x16,0x2,0x49,0x2,0x4c,0x2, +0xc,0x2,0x81,0x1,0xc9,0x0,0x25,0x0,0x9b,0xff,0x2c,0xff, +0x7,0xff,0x18,0xff,0x24,0xff,0x4e,0xff,0x94,0xff,0x8d,0xff, +0x34,0xff,0xd8,0xfe,0x85,0xfe,0x2b,0xfe,0xd1,0xfd,0x85,0xfd, +0x77,0xfd,0xb9,0xfd,0x16,0xfe,0x87,0xfe,0x2f,0xff,0xe6,0xff, +0x75,0x0,0xbf,0x0,0x9b,0x0,0x13,0x0,0x66,0xff,0xaa,0xfe, +0xe9,0xfd,0x4f,0xfd,0x2c,0xfd,0xc8,0xfd,0x4,0xff,0x68,0x0, +0xb2,0x1,0xda,0x2,0xc3,0x3,0x67,0x4,0x94,0x4,0xc0,0x3, +0xd2,0x1,0x7c,0xff,0x94,0xfd,0xad,0xfc,0xd0,0xfc,0x71,0xfd, +0x33,0xfe,0x35,0xff,0x7a,0x0,0xde,0x1,0x41,0x3,0x48,0x4, +0x93,0x4,0x22,0x4,0x35,0x3,0x20,0x2,0x16,0x1,0xfc,0xff, +0xd5,0xfe,0xef,0xfd,0x70,0xfd,0x62,0xfd,0xde,0xfd,0xb0,0xfe, +0x79,0xff,0x3d,0x0,0xeb,0x0,0x7,0x1,0x71,0x0,0x91,0xff, +0x9b,0xfe,0xb2,0xfd,0x42,0xfd,0x63,0xfd,0xad,0xfd,0xe6,0xfd, +0x16,0xfe,0x52,0xfe,0xc0,0xfe,0x51,0xff,0xa5,0xff,0x96,0xff, +0x45,0xff,0xee,0xfe,0xf4,0xfe,0x6c,0xff,0x0,0x0,0xa4,0x0, +0x6e,0x1,0xe,0x2,0x4d,0x2,0x4f,0x2,0x16,0x2,0x8d,0x1, +0xc7,0x0,0xec,0xff,0x34,0xff,0xb5,0xfe,0x60,0xfe,0x62,0xfe, +0xd6,0xfe,0x6c,0xff,0x0,0x0,0xbc,0x0,0x97,0x1,0x5d,0x2, +0xe8,0x2,0x11,0x3,0xcc,0x2,0x34,0x2,0x7e,0x1,0xf7,0x0, +0xb1,0x0,0x61,0x0,0xe8,0xff,0x8a,0xff,0x75,0xff,0x96,0xff, +0xe3,0xff,0x44,0x0,0x67,0x0,0x11,0x0,0x79,0xff,0xe3,0xfe, +0x59,0xfe,0x18,0xfe,0x50,0xfe,0x9f,0xfe,0xb0,0xfe,0xd1,0xfe, +0x24,0xff,0x53,0xff,0x60,0xff,0x9d,0xff,0xdd,0xff,0xc0,0xff, +0x72,0xff,0x46,0xff,0x30,0xff,0x33,0xff,0x60,0xff,0x85,0xff, +0xa5,0xff,0x6,0x0,0x68,0x0,0x74,0x0,0x6d,0x0,0x6d,0x0, +0x2c,0x0,0xd0,0xff,0x96,0xff,0x5a,0xff,0x28,0xff,0x38,0xff, +0x78,0xff,0xce,0xff,0x30,0x0,0x76,0x0,0xba,0x0,0x2f,0x1, +0x81,0x1,0x6a,0x1,0x39,0x1,0xff,0x0,0x87,0x0,0x24,0x0, +0x19,0x0,0x16,0x0,0x19,0x0,0x52,0x0,0x74,0x0,0x64,0x0, +0x70,0x0,0x7b,0x0,0x45,0x0,0xf6,0xff,0xba,0xff,0x9d,0xff, +0x8d,0xff,0x58,0xff,0xe,0xff,0xf5,0xfe,0xa,0xff,0x21,0xff, +0x35,0xff,0x53,0xff,0x89,0xff,0xc7,0xff,0x7,0x0,0x54,0x0, +0x5c,0x0,0xfb,0xff,0xa8,0xff,0x74,0xff,0x1f,0xff,0xfc,0xfe, +0x6,0xff,0xcc,0xfe,0x9c,0xfe,0xb6,0xfe,0xb7,0xfe,0xbe,0xfe, +0x4,0xff,0x2d,0xff,0x40,0xff,0x74,0xff,0x98,0xff,0xcf,0xff, +0x3c,0x0,0x89,0x0,0xbb,0x0,0x0,0x1,0x10,0x1,0xe5,0x0, +0xc8,0x0,0xa7,0x0,0x69,0x0,0x2a,0x0,0xe9,0xff,0x93,0xff, +0x47,0xff,0x41,0xff,0x7a,0xff,0xba,0xff,0x17,0x0,0xa0,0x0, +0x3,0x1,0x3d,0x1,0x81,0x1,0x99,0x1,0x6c,0x1,0x2a,0x1, +0xcc,0x0,0x56,0x0,0xe7,0xff,0x73,0xff,0xd,0xff,0xdc,0xfe, +0xeb,0xfe,0x4e,0xff,0xd9,0xff,0x46,0x0,0xb0,0x0,0x16,0x1, +0x40,0x1,0x4d,0x1,0x22,0x1,0x73,0x0,0xa6,0xff,0x1c,0xff, +0x9c,0xfe,0x21,0xfe,0xc6,0xfd,0x86,0xfd,0x9f,0xfd,0x15,0xfe, +0x96,0xfe,0x28,0xff,0xdc,0xff,0x89,0x0,0x22,0x1,0x87,0x1, +0x94,0x1,0x70,0x1,0x26,0x1,0xa0,0x0,0x7,0x0,0x7c,0xff, +0x5,0xff,0xac,0xfe,0x70,0xfe,0x7b,0xfe,0xe7,0xfe,0x5e,0xff, +0xb8,0xff,0x16,0x0,0x6b,0x0,0xc3,0x0,0x2d,0x1,0x5e,0x1, +0x48,0x1,0x25,0x1,0xdf,0x0,0x81,0x0,0x5a,0x0,0x55,0x0, +0x38,0x0,0xf,0x0,0xfa,0xff,0xf,0x0,0x41,0x0,0x76,0x0, +0xb7,0x0,0xda,0x0,0xb8,0x0,0xa4,0x0,0xac,0x0,0x72,0x0, +0xc,0x0,0xc4,0xff,0x90,0xff,0x7a,0xff,0x82,0xff,0x75,0xff, +0x6a,0xff,0x5d,0xff,0x7,0xff,0xb4,0xfe,0xe0,0xfe,0x40,0xff, +0x83,0xff,0xd2,0xff,0x1a,0x0,0x4a,0x0,0xaa,0x0,0x9,0x1, +0xf1,0x0,0x96,0x0,0x4b,0x0,0xf4,0xff,0xa5,0xff,0x70,0xff, +0xf,0xff,0xa1,0xfe,0x8b,0xfe,0xa5,0xfe,0xc3,0xfe,0x19,0xff, +0x93,0xff,0xfd,0xff,0x7a,0x0,0x13,0x1,0x95,0x1,0xe9,0x1, +0x1,0x2,0xc6,0x1,0x58,0x1,0xe9,0x0,0x7d,0x0,0x8,0x0, +0x91,0xff,0x38,0xff,0xa,0xff,0xf6,0xfe,0xf0,0xfe,0xf,0xff, +0x5e,0xff,0xbe,0xff,0xe,0x0,0x62,0x0,0xcb,0x0,0x1d,0x1, +0x1e,0x1,0xd6,0x0,0x82,0x0,0x47,0x0,0xfe,0xff,0x96,0xff, +0x53,0xff,0x44,0xff,0x47,0xff,0x6e,0xff,0xa0,0xff,0xae,0xff, +0xda,0xff,0x44,0x0,0x9c,0x0,0xcb,0x0,0xcf,0x0,0x7e,0x0, +0xd,0x0,0xb9,0xff,0x65,0xff,0x1b,0xff,0xfc,0xfe,0xdc,0xfe, +0xc1,0xfe,0xed,0xfe,0x4b,0xff,0x9a,0xff,0xd4,0xff,0x20,0x0, +0x86,0x0,0xdb,0x0,0x11,0x1,0x4a,0x1,0x6f,0x1,0x4f,0x1, +0xf2,0x0,0x78,0x0,0xf2,0xff,0x7e,0xff,0x2e,0xff,0xf9,0xfe, +0xdc,0xfe,0xea,0xfe,0x24,0xff,0x72,0xff,0xd3,0xff,0x41,0x0, +0x73,0x0,0x6e,0x0,0x8b,0x0,0xb3,0x0,0xb4,0x0,0xd2,0x0, +0xff,0x0,0xf1,0x0,0xe1,0x0,0xe5,0x0,0xbf,0x0,0x9d,0x0, +0x9d,0x0,0x78,0x0,0x49,0x0,0x3c,0x0,0xb,0x0,0x9f,0xff, +0x36,0xff,0xeb,0xfe,0xbf,0xfe,0xb0,0xfe,0xc2,0xfe,0x11,0xff, +0x8b,0xff,0xf8,0xff,0x4c,0x0,0x93,0x0,0xcd,0x0,0xda,0x0, +0x9e,0x0,0x38,0x0,0xca,0xff,0x58,0xff,0x8,0xff,0xfd,0xfe, +0x1a,0xff,0x46,0xff,0x7e,0xff,0xc5,0xff,0x23,0x0,0x78,0x0, +0x8c,0x0,0x68,0x0,0x39,0x0,0x17,0x0,0x15,0x0,0x26,0x0, +0x26,0x0,0x1f,0x0,0x30,0x0,0x56,0x0,0x6a,0x0,0x58,0x0, +0x4c,0x0,0x4c,0x0,0x22,0x0,0xf2,0xff,0x9,0x0,0x44,0x0, +0x70,0x0,0x8a,0x0,0x8c,0x0,0x87,0x0,0x96,0x0,0x9b,0x0, +0x8a,0x0,0x67,0x0,0x2b,0x0,0xf7,0xff,0xe1,0xff,0xe2,0xff, +0x14,0x0,0x54,0x0,0x53,0x0,0x29,0x0,0x13,0x0,0xb,0x0, +0xfc,0xff,0xe5,0xff,0xe6,0xff,0xc,0x0,0x12,0x0,0xed,0xff, +0xd6,0xff,0xad,0xff,0x68,0xff,0x3e,0xff,0x18,0xff,0x1b,0xff, +0x90,0xff,0xb,0x0,0x3c,0x0,0x79,0x0,0x98,0x0,0x61,0x0, +0x36,0x0,0x18,0x0,0xb5,0xff,0x46,0xff,0x16,0xff,0x26,0xff, +0x5c,0xff,0x7c,0xff,0x99,0xff,0xf4,0xff,0x42,0x0,0x4a,0x0, +0x68,0x0,0xbe,0x0,0xfc,0x0,0xf,0x1,0x23,0x1,0x30,0x1, +0x5,0x1,0xb2,0x0,0x61,0x0,0xfd,0xff,0x94,0xff,0x71,0xff, +0x6a,0xff,0x57,0xff,0x7f,0xff,0xd5,0xff,0x0,0x0,0x1e,0x0, +0x44,0x0,0x50,0x0,0x63,0x0,0x75,0x0,0x57,0x0,0x35,0x0, +0x29,0x0,0x4,0x0,0xd5,0xff,0xc5,0xff,0xcb,0xff,0xd0,0xff, +0xca,0xff,0xb5,0xff,0x8b,0xff,0x5e,0xff,0x6a,0xff,0x9d,0xff, +0xa7,0xff,0xac,0xff,0xf2,0xff,0x3d,0x0,0x5c,0x0,0x6a,0x0, +0x64,0x0,0x4b,0x0,0x33,0x0,0xd,0x0,0xe2,0xff,0xcc,0xff, +0xc1,0xff,0xc5,0xff,0xe2,0xff,0x6,0x0,0x22,0x0,0x27,0x0, +0x15,0x0,0x1f,0x0,0x46,0x0,0x4c,0x0,0x3a,0x0,0x33,0x0, +0x21,0x0,0x8,0x0,0x9,0x0,0x1e,0x0,0x32,0x0,0x44,0x0, +0x59,0x0,0x69,0x0,0x64,0x0,0x56,0x0,0x50,0x0,0x45,0x0, +0x2d,0x0,0xa,0x0,0xd8,0xff,0xb3,0xff,0xab,0xff,0xa2,0xff, +0xa7,0xff,0xd2,0xff,0x2,0x0,0x2f,0x0,0x5b,0x0,0x66,0x0, +0x6c,0x0,0x7f,0x0,0x5b,0x0,0x2,0x0,0xc0,0xff,0x88,0xff, +0x46,0xff,0x36,0xff,0x4a,0xff,0x52,0xff,0x7b,0xff,0xd8,0xff, +0x25,0x0,0x4a,0x0,0x67,0x0,0x7c,0x0,0x86,0x0,0xa0,0x0, +0xc4,0x0,0xca,0x0,0xa4,0x0,0x63,0x0,0x15,0x0,0xd8,0xff, +0xc0,0xff,0xa4,0xff,0x66,0xff,0x37,0xff,0x35,0xff,0x47,0xff, +0x6a,0xff,0xac,0xff,0xef,0xff,0x29,0x0,0x6d,0x0,0x9e,0x0, +0x9d,0x0,0x94,0x0,0x9b,0x0,0x80,0x0,0x3d,0x0,0x11,0x0, +0xff,0xff,0xe5,0xff,0xda,0xff,0xf4,0xff,0x13,0x0,0x2a,0x0, +0x40,0x0,0x5d,0x0,0x8a,0x0,0xa3,0x0,0x90,0x0,0x86,0x0, +0x7c,0x0,0x30,0x0,0xd7,0xff,0xac,0xff,0x8a,0xff,0x79,0xff, +0x87,0xff,0x8b,0xff,0xa6,0xff,0xe1,0xff,0xf1,0xff,0xf6,0xff, +0x21,0x0,0x29,0x0,0x20,0x0,0x3c,0x0,0x35,0x0,0x23,0x0, +0x4c,0x0,0x50,0x0,0x14,0x0,0xfd,0xff,0xf4,0xff,0xdb,0xff, +0xe3,0xff,0xeb,0xff,0xda,0xff,0xdd,0xff,0xdb,0xff,0xc3,0xff, +0xc6,0xff,0xcf,0xff,0xbe,0xff,0xbd,0xff,0xde,0xff,0xa,0x0, +0x35,0x0,0x67,0x0,0xa5,0x0,0xca,0x0,0xca,0x0,0xd4,0x0, +0xda,0x0,0xb1,0x0,0x85,0x0,0x6b,0x0,0x4b,0x0,0x39,0x0, +0x37,0x0,0x1c,0x0,0xf3,0xff,0xcd,0xff,0xb5,0xff,0xb2,0xff, +0xb0,0xff,0xb7,0xff,0xcd,0xff,0xcb,0xff,0xcd,0xff,0xfc,0xff, +0x22,0x0,0x36,0x0,0x54,0x0,0x56,0x0,0x52,0x0,0x62,0x0, +0x4c,0x0,0x36,0x0,0x56,0x0,0x60,0x0,0x53,0x0,0x61,0x0, +0x5e,0x0,0x5d,0x0,0x68,0x0,0x27,0x0,0xd3,0xff,0xc2,0xff, +0xa3,0xff,0x7b,0xff,0x95,0xff,0xa6,0xff,0x9b,0xff,0xc5,0xff, +0xf7,0xff,0x2,0x0,0x1b,0x0,0x43,0x0,0x6c,0x0,0x98,0x0, +0xa8,0x0,0x97,0x0,0x82,0x0,0x6d,0x0,0x54,0x0,0x35,0x0, +0x24,0x0,0x39,0x0,0x4e,0x0,0x56,0x0,0x75,0x0,0x78,0x0, +0x35,0x0,0x0,0x0,0xf0,0xff,0xcd,0xff,0xab,0xff,0xa7,0xff, +0xa5,0xff,0xa8,0xff,0xcc,0xff,0x5,0x0,0x2d,0x0,0x41,0x0, +0x63,0x0,0x84,0x0,0x85,0x0,0x8d,0x0,0x9a,0x0,0x6c,0x0, +0x32,0x0,0x23,0x0,0xf,0x0,0xe9,0xff,0xd7,0xff,0xdd,0xff, +0xef,0xff,0x4,0x0,0x13,0x0,0x2c,0x0,0x3e,0x0,0x31,0x0, +0x1c,0x0,0x3,0x0,0xeb,0xff,0xef,0xff,0xf6,0xff,0xe1,0xff, +0xd6,0xff,0xd9,0xff,0xd6,0xff,0xe7,0xff,0x4,0x0,0x20,0x0, +0x51,0x0,0x7e,0x0,0x94,0x0,0xa6,0x0,0xa3,0x0,0x88,0x0, +0x7a,0x0,0x66,0x0,0x32,0x0,0x0,0x0,0xdc,0xff,0xae,0xff, +0x72,0xff,0x47,0xff,0x4e,0xff,0x6f,0xff,0x7c,0xff,0x9a,0xff, +0xe9,0xff,0x2a,0x0,0x4d,0x0,0x7f,0x0,0xaa,0x0,0xa6,0x0, +0x87,0x0,0x68,0x0,0x43,0x0,0x1e,0x0,0x6,0x0,0xf8,0xff, +0xed,0xff,0xf3,0xff,0x4,0x0,0x8,0x0,0x11,0x0,0x29,0x0, +0x31,0x0,0x36,0x0,0x49,0x0,0x47,0x0,0x2d,0x0,0xa,0x0, +0xcb,0xff,0x90,0xff,0x88,0xff,0x93,0xff,0xa3,0xff,0xc6,0xff, +0xe9,0xff,0x10,0x0,0x34,0x0,0x31,0x0,0x2b,0x0,0x41,0x0, +0x4a,0x0,0x54,0x0,0x6c,0x0,0x56,0x0,0x24,0x0,0x19,0x0, +0x12,0x0,0x0,0x0,0xef,0xff,0xbc,0xff,0x89,0xff,0x8c,0xff, +0x94,0xff,0x92,0xff,0xb2,0xff,0xd1,0xff,0xd4,0xff,0xe4,0xff, +0x9,0x0,0x37,0x0,0x67,0x0,0x80,0x0,0x8d,0x0,0x95,0x0, +0x71,0x0,0x39,0x0,0x1c,0x0,0xff,0xff,0xdd,0xff,0xd4,0xff, +0xd3,0xff,0xde,0xff,0x8,0x0,0x1e,0x0,0x12,0x0,0x15,0x0, +0x2c,0x0,0x38,0x0,0x30,0x0,0x16,0x0,0x2,0x0,0x0,0x0, +0xef,0xff,0xca,0xff,0xaf,0xff,0xa5,0xff,0xa4,0xff,0xa3,0xff, +0x91,0xff,0x7a,0xff,0x7c,0xff,0x92,0xff,0xa7,0xff,0xc8,0xff, +0x3,0x0,0x1f,0x0,0xec,0xff,0x9d,0xff,0x6f,0xff,0x5d,0xff, +0x75,0xff,0xb1,0xff,0xd3,0xff,0xdf,0xff,0x14,0x0,0x5b,0x0, +0x8b,0x0,0xac,0x0,0x97,0x0,0x35,0x0,0xb1,0xff,0x3d,0xff, +0xc,0xff,0x2d,0xff,0x69,0xff,0xab,0xff,0x1,0x0,0x3b,0x0, +0x4b,0x0,0x61,0x0,0x80,0x0,0x91,0x0,0x89,0x0,0x66,0x0, +0x43,0x0,0x21,0x0,0xee,0xff,0xdd,0xff,0xe9,0xff,0xc9,0xff, +0xa7,0xff,0xcb,0xff,0xf2,0xff,0xfc,0xff,0xc,0x0,0xf,0x0, +0x7,0x0,0x8,0x0,0xe2,0xff,0x9a,0xff,0x6f,0xff,0x59,0xff, +0x54,0xff,0x8a,0xff,0xd9,0xff,0xff,0xff,0x4,0x0,0xff,0xff, +0xf3,0xff,0xe2,0xff,0xbe,0xff,0x87,0xff,0x72,0xff,0x93,0xff, +0xb9,0xff,0xd0,0xff,0xf3,0xff,0x10,0x0,0x10,0x0,0x16,0x0, +0x26,0x0,0xc,0x0,0xda,0xff,0xb8,0xff,0x9d,0xff,0x90,0xff, +0xa4,0xff,0xc7,0xff,0xeb,0xff,0xd,0x0,0x31,0x0,0x5e,0x0, +0x79,0x0,0x74,0x0,0x79,0x0,0x87,0x0,0x7d,0x0,0x63,0x0, +0x32,0x0,0xe6,0xff,0xb6,0xff,0xb0,0xff,0xaa,0xff,0xa2,0xff, +0xa0,0xff,0xae,0xff,0xe2,0xff,0x13,0x0,0x22,0x0,0x35,0x0, +0x41,0x0,0x1d,0x0,0xff,0xff,0x10,0x0,0x17,0x0,0xf9,0xff, +0xe7,0xff,0xf1,0xff,0xe0,0xff,0x9c,0xff,0x60,0xff,0x53,0xff, +0x63,0xff,0x88,0xff,0xb7,0xff,0xda,0xff,0xfd,0xff,0x2f,0x0, +0x59,0x0,0x64,0x0,0x47,0x0,0x14,0x0,0xfd,0xff,0xf9,0xff, +0xe9,0xff,0xd7,0xff,0xc7,0xff,0xc6,0xff,0xe8,0xff,0xff,0xff, +0xf9,0xff,0xf,0x0,0x2d,0x0,0x26,0x0,0x21,0x0,0x1a,0x0, +0xf1,0xff,0xd2,0xff,0xc3,0xff,0xaf,0xff,0xb6,0xff,0xcb,0xff, +0xbd,0xff,0xbf,0xff,0xf5,0xff,0x2b,0x0,0x4d,0x0,0x67,0x0, +0x70,0x0,0x69,0x0,0x57,0x0,0x30,0x0,0xff,0xff,0xe3,0xff, +0xe8,0xff,0xf3,0xff,0xf5,0xff,0x2,0x0,0x16,0x0,0x19,0x0, +0x17,0x0,0x13,0x0,0xfb,0xff,0xd6,0xff,0xb2,0xff,0x94,0xff, +0x90,0xff,0xa5,0xff,0xbe,0xff,0xde,0xff,0x1,0x0,0x18,0x0, +0x22,0x0,0x17,0x0,0x9,0x0,0x18,0x0,0x18,0x0,0xe4,0xff, +0xbe,0xff,0xc7,0xff,0xcd,0xff,0xcb,0xff,0xdf,0xff,0xf6,0xff, +0x7,0x0,0x1f,0x0,0x2d,0x0,0x21,0x0,0x12,0x0,0x10,0x0, +0x12,0x0,0x4,0x0,0xdd,0xff,0xb9,0xff,0xb8,0xff,0xcf,0xff, +0xeb,0xff,0x10,0x0,0x3b,0x0,0x5e,0x0,0x75,0x0,0x71,0x0, +0x58,0x0,0x4a,0x0,0x47,0x0,0x3d,0x0,0x30,0x0,0x14,0x0, +0xf1,0xff,0xe6,0xff,0xe8,0xff,0xeb,0xff,0xa,0x0,0x20,0x0, +0x2,0x0,0xf2,0xff,0x4,0x0,0xf3,0xff,0xcc,0xff,0xbe,0xff, +0xba,0xff,0xc2,0xff,0xd0,0xff,0xd0,0xff,0xdd,0xff,0xd,0x0, +0x30,0x0,0x38,0x0,0x38,0x0,0x32,0x0,0x29,0x0,0x25,0x0, +0x1a,0x0,0xf0,0xff,0xb4,0xff,0x92,0xff,0x92,0xff,0x9f,0xff, +0xb6,0xff,0xcc,0xff,0xc8,0xff,0xb6,0xff,0xa3,0xff,0xa4,0xff, +0xe2,0xff,0x2b,0x0,0x2f,0x0,0x23,0x0,0x34,0x0,0x2c,0x0, +0x18,0x0,0x1f,0x0,0x16,0x0,0xfc,0xff,0xf8,0xff,0xf8,0xff, +0xf9,0xff,0x0,0x0,0xf2,0xff,0xea,0xff,0xfa,0xff,0xf7,0xff, +0xe6,0xff,0xe3,0xff,0xcc,0xff,0xa6,0xff,0xa9,0xff,0xc4,0xff, +0xbb,0xff,0x98,0xff,0x96,0xff,0xb9,0xff,0xd3,0xff,0xed,0xff, +0x1c,0x0,0x39,0x0,0x36,0x0,0x3e,0x0,0x49,0x0,0x2a,0x0, +0xf6,0xff,0xd7,0xff,0xca,0xff,0xc7,0xff,0xe9,0xff,0x2d,0x0, +0x56,0x0,0x5a,0x0,0x66,0x0,0x68,0x0,0x48,0x0,0x2c,0x0, +0x8,0x0,0xb5,0xff,0x62,0xff,0x25,0xff,0xf0,0xfe,0xea,0xfe, +0xc,0xff,0x1d,0xff,0x30,0xff,0x50,0xff,0x60,0xff,0x83,0xff, +0xd9,0xff,0x35,0x0,0x80,0x0,0xc1,0x0,0xeb,0x0,0x9,0x1, +0x34,0x1,0x50,0x1,0x1a,0x1,0x6d,0x0,0x89,0xff,0xeb,0xfe, +0xc1,0xfe,0xd4,0xfe,0xf4,0xfe,0x1d,0xff,0x49,0xff,0x76,0xff, +0xa9,0xff,0xe6,0xff,0x2b,0x0,0x71,0x0,0xa2,0x0,0xae,0x0, +0xb8,0x0,0xb8,0x0,0x80,0x0,0x3d,0x0,0x20,0x0,0xee,0xff, +0xa9,0xff,0x94,0xff,0x94,0xff,0x92,0xff,0xa7,0xff,0xba,0xff, +0xd2,0xff,0x10,0x0,0x20,0x0,0xe8,0xff,0xd1,0xff,0xec,0xff, +0xc,0x0,0x3a,0x0,0x4a,0x0,0xb,0x0,0xac,0xff,0x54,0xff, +0x15,0xff,0x5,0xff,0xfa,0xfe,0xdc,0xfe,0xfb,0xfe,0x79,0xff, +0x12,0x0,0x89,0x0,0xca,0x0,0xe6,0x0,0xf7,0x0,0xf3,0x0, +0xc7,0x0,0x79,0x0,0x13,0x0,0xa9,0xff,0x5f,0xff,0x42,0xff, +0x38,0xff,0x31,0xff,0x4a,0xff,0x98,0xff,0xec,0xff,0x21,0x0, +0x48,0x0,0x56,0x0,0x48,0x0,0x4e,0x0,0x5e,0x0,0x41,0x0, +0x1,0x0,0xdc,0xff,0xe9,0xff,0xf,0x0,0x22,0x0,0x13,0x0, +0xf7,0xff,0xea,0xff,0xf7,0xff,0x2,0x0,0xeb,0xff,0xd4,0xff, +0xd7,0xff,0xda,0xff,0xe5,0xff,0x1,0x0,0x1,0x0,0xf4,0xff, +0x16,0x0,0x38,0x0,0x20,0x0,0xed,0xff,0xbe,0xff,0x99,0xff, +0x8c,0xff,0x8a,0xff,0x8e,0xff,0xae,0xff,0xe9,0xff,0x25,0x0, +0x49,0x0,0x4d,0x0,0x4c,0x0,0x55,0x0,0x42,0x0,0x1f,0x0, +0xf,0x0,0xf3,0xff,0xb2,0xff,0x87,0xff,0x87,0xff,0x8f,0xff, +0x95,0xff,0xa8,0xff,0xd0,0xff,0x3,0x0,0x2d,0x0,0x46,0x0, +0x4f,0x0,0x48,0x0,0x3e,0x0,0x3a,0x0,0x2a,0x0,0x15,0x0, +0xc,0x0,0x9,0x0,0xa,0x0,0x4,0x0,0xe5,0xff,0xd2,0xff, +0xe7,0xff,0xf0,0xff,0xe6,0xff,0xf8,0xff,0xa,0x0,0xf5,0xff, +0xeb,0xff,0x1,0x0,0x12,0x0,0x19,0x0,0x1e,0x0,0x1f,0x0, +0x1f,0x0,0x15,0x0,0xfe,0xff,0xe8,0xff,0xcc,0xff,0xb5,0xff, +0xbc,0xff,0xce,0xff,0xd4,0xff,0xeb,0xff,0xd,0x0,0x1d,0x0, +0x2c,0x0,0x3f,0x0,0x2f,0x0,0x7,0x0,0xe9,0xff,0xcf,0xff, +0xb5,0xff,0xa6,0xff,0x9c,0xff,0xa6,0xff,0xd4,0xff,0x5,0x0, +0x21,0x0,0x33,0x0,0x36,0x0,0x35,0x0,0x4a,0x0,0x4f,0x0, +0x2c,0x0,0x18,0x0,0x1c,0x0,0x13,0x0,0x17,0x0,0x2b,0x0, +0x23,0x0,0x15,0x0,0x21,0x0,0x1f,0x0,0x7,0x0,0xf9,0xff, +0xf8,0xff,0x1,0x0,0x19,0x0,0x32,0x0,0x46,0x0,0x4d,0x0, +0x3b,0x0,0x1f,0x0,0xe,0x0,0xf,0x0,0x18,0x0,0xf,0x0, +0xf7,0xff,0xf3,0xff,0x2,0x0,0x8,0x0,0xff,0xff,0xf0,0xff, +0xef,0xff,0x3,0x0,0x11,0x0,0x16,0x0,0x25,0x0,0x26,0x0, +0xf,0x0,0xd,0x0,0x19,0x0,0x3,0x0,0xde,0xff,0xdf,0xff, +0xf7,0xff,0xfd,0xff,0xf9,0xff,0xf7,0xff,0xf6,0xff,0x17,0x0, +0x52,0x0,0x56,0x0,0x23,0x0,0xf8,0xff,0xcc,0xff,0xb0,0xff, +0xd5,0xff,0xee,0xff,0xda,0xff,0x3,0x0,0x41,0x0,0x33,0x0, +0x32,0x0,0x73,0x0,0x9c,0x0,0x91,0x0,0x72,0x0,0x43,0x0, +0x1e,0x0,0xf,0x0,0x9,0x0,0xb,0x0,0x2,0x0,0xed,0xff, +0xea,0xff,0xe9,0xff,0xf3,0xff,0x1e,0x0,0x33,0x0,0x22,0x0, +0x30,0x0,0x49,0x0,0x3b,0x0,0x28,0x0,0x20,0x0,0xd,0x0, +0x0,0x0,0x0,0x0,0x5,0x0,0x9,0x0,0xf8,0xff,0xdd,0xff, +0xd2,0xff,0xd4,0xff,0xe2,0xff,0xf2,0xff,0xf9,0xff,0x18,0x0, +0x43,0x0,0x3f,0x0,0x3b,0x0,0x69,0x0,0x78,0x0,0x4a,0x0, +0x2d,0x0,0x27,0x0,0x7,0x0,0xde,0xff,0xce,0xff,0xd1,0xff, +0xe3,0xff,0xf,0x0,0x37,0x0,0x34,0x0,0x21,0x0,0x1f,0x0, +0x19,0x0,0x15,0x0,0x24,0x0,0x27,0x0,0x15,0x0,0x9,0x0, +0xfc,0xff,0xf2,0xff,0xfd,0xff,0xa,0x0,0xb,0x0,0x10,0x0, +0x27,0x0,0x55,0x0,0x77,0x0,0x6c,0x0,0x58,0x0,0x49,0x0, +0x16,0x0,0xd4,0xff,0xab,0xff,0x7d,0xff,0x45,0xff,0x29,0xff, +0x26,0xff,0x3e,0xff,0x70,0xff,0xa0,0xff,0xdc,0xff,0x40,0x0, +0xaa,0x0,0xf2,0x0,0x1d,0x1,0x33,0x1,0x39,0x1,0x20,0x1, +0xc3,0x0,0x28,0x0,0x8e,0xff,0x30,0xff,0x1e,0xff,0x45,0xff, +0x79,0xff,0xa1,0xff,0xbd,0xff,0xd3,0xff,0xef,0xff,0x18,0x0, +0x31,0x0,0x27,0x0,0x24,0x0,0x39,0x0,0x49,0x0,0x59,0x0, +0x6e,0x0,0x5f,0x0,0x3c,0x0,0x37,0x0,0x3b,0x0,0x32,0x0, +0x27,0x0,0x5,0x0,0xdc,0xff,0xd6,0xff,0xd5,0xff,0xd0,0xff, +0xf0,0xff,0xb,0x0,0x9,0x0,0x2c,0x0,0x6a,0x0,0x7c,0x0, +0x6d,0x0,0x4b,0x0,0x8,0x0,0xc8,0xff,0x9c,0xff,0x75,0xff, +0x56,0xff,0x44,0xff,0x58,0xff,0xb9,0xff,0x27,0x0,0x50,0x0, +0x6a,0x0,0x9f,0x0,0xa4,0x0,0x6c,0x0,0x3e,0x0,0x1a,0x0, +0xe7,0xff,0xcf,0xff,0xdc,0xff,0xec,0xff,0x3,0x0,0x1b,0x0, +0x20,0x0,0x27,0x0,0x36,0x0,0x22,0x0,0xfe,0xff,0xf7,0xff, +0x1,0x0,0x8,0x0,0xb,0x0,0xfb,0xff,0xf3,0xff,0x12,0x0, +0x30,0x0,0x2f,0x0,0x29,0x0,0x2f,0x0,0x3f,0x0,0x4a,0x0, +0x33,0x0,0xe,0x0,0x9,0x0,0x1c,0x0,0x33,0x0,0x52,0x0, +0x59,0x0,0x3e,0x0,0x35,0x0,0x44,0x0,0x3f,0x0,0x2d,0x0, +0x21,0x0,0xff,0xff,0xc4,0xff,0x97,0xff,0x86,0xff,0x8f,0xff, +0xb4,0xff,0xd9,0xff,0xf0,0xff,0xb,0x0,0x20,0x0,0x20,0x0, +0x2c,0x0,0x49,0x0,0x5b,0x0,0x5d,0x0,0x4d,0x0,0x28,0x0, +0xc,0x0,0xf4,0xff,0xcb,0xff,0xb1,0xff,0xb9,0xff,0xc6,0xff, +0xd8,0xff,0xf0,0xff,0xfe,0xff,0x14,0x0,0x2a,0x0,0x25,0x0, +0x23,0x0,0x38,0x0,0x3a,0x0,0x2e,0x0,0x2a,0x0,0x15,0x0, +0xf0,0xff,0xdc,0xff,0xcc,0xff,0xbb,0xff,0xb8,0xff,0xba,0xff, +0xc2,0xff,0xe7,0xff,0x13,0x0,0x2b,0x0,0x42,0x0,0x5b,0x0, +0x5e,0x0,0x4f,0x0,0x49,0x0,0x48,0x0,0x39,0x0,0x1f,0x0, +0x5,0x0,0xee,0xff,0xe3,0xff,0xe3,0xff,0xe3,0xff,0xe1,0xff, +0xdb,0xff,0xd4,0xff,0xdd,0xff,0xed,0xff,0xf7,0xff,0x12,0x0, +0x2e,0x0,0x23,0x0,0x13,0x0,0x16,0x0,0x1,0x0,0xe2,0xff, +0xec,0xff,0x6,0x0,0x2,0x0,0xf0,0xff,0xe8,0xff,0xef,0xff, +0xfc,0xff,0x4,0x0,0x7,0x0,0xc,0x0,0xd,0x0,0xa,0x0, +0x13,0x0,0x23,0x0,0x27,0x0,0x25,0x0,0x26,0x0,0x21,0x0, +0x10,0x0,0xa,0x0,0x14,0x0,0x12,0x0,0x7,0x0,0x12,0x0, +0x20,0x0,0x10,0x0,0xf9,0xff,0xfa,0xff,0x7,0x0,0x8,0x0, +0x5,0x0,0x10,0x0,0x1f,0x0,0x1d,0x0,0x11,0x0,0xb,0x0, +0x7,0x0,0xb,0x0,0xc,0x0,0x6,0x0,0x16,0x0,0x2a,0x0, +0x14,0x0,0xfa,0xff,0xfb,0xff,0xea,0xff,0xd0,0xff,0xd1,0xff, +0xd3,0xff,0xd4,0xff,0xf1,0xff,0xc,0x0,0x1d,0x0,0x35,0x0, +0x30,0x0,0xb,0x0,0xfa,0xff,0xec,0xff,0xd6,0xff,0xe3,0xff, +0xfa,0xff,0xf8,0xff,0xf9,0xff,0x7,0x0,0xf,0x0,0x1f,0x0, +0x2f,0x0,0x26,0x0,0x1a,0x0,0x18,0x0,0x9,0x0,0xe7,0xff, +0xd1,0xff,0xda,0xff,0xe2,0xff,0xdc,0xff,0xec,0xff,0xb,0x0, +0x13,0x0,0x1d,0x0,0x32,0x0,0x2c,0x0,0x20,0x0,0x27,0x0, +0x21,0x0,0x15,0x0,0x19,0x0,0x10,0x0,0x8,0x0,0x1d,0x0, +0x28,0x0,0x1d,0x0,0x15,0x0,0x4,0x0,0xf1,0xff,0xf9,0xff, +0xff,0xff,0xf1,0xff,0xf7,0xff,0x11,0x0,0x21,0x0,0x27,0x0, +0x2d,0x0,0x26,0x0,0x14,0x0,0x9,0x0,0x7,0x0,0xf7,0xff, +0xe2,0xff,0xe8,0xff,0x1,0x0,0xf,0x0,0x17,0x0,0x24,0x0, +0x30,0x0,0x36,0x0,0x36,0x0,0x2a,0x0,0x18,0x0,0x7,0x0, +0xfe,0xff,0xf6,0xff,0xe2,0xff,0xc9,0xff,0xbe,0xff,0xb8,0xff, +0xae,0xff,0xa0,0xff,0x89,0xff,0x7c,0xff,0x82,0xff,0x78,0xff, +0x59,0xff,0x61,0xff,0xa3,0xff,0xf8,0xff,0x49,0x0,0x96,0x0, +0xca,0x0,0xdc,0x0,0xe8,0x0,0xf7,0x0,0xdb,0x0,0x7c,0x0, +0x1,0x0,0x94,0xff,0x51,0xff,0x59,0xff,0x95,0xff,0xc3,0xff, +0xdc,0xff,0x0,0x0,0x23,0x0,0x2f,0x0,0x31,0x0,0x2e,0x0, +0x22,0x0,0x20,0x0,0x23,0x0,0x9,0x0,0xe5,0xff,0xe1,0xff, +0xe1,0xff,0xd8,0xff,0xeb,0xff,0xb,0x0,0xe,0x0,0x4,0x0, +0xf5,0xff,0xda,0xff,0xdc,0xff,0xf7,0xff,0xfa,0xff,0xfb,0xff, +0x15,0x0,0x2d,0x0,0x42,0x0,0x5b,0x0,0x65,0x0,0x5a,0x0, +0x19,0x0,0xa8,0xff,0x5f,0xff,0x43,0xff,0x9,0xff,0xe3,0xfe, +0x9,0xff,0x47,0xff,0x9f,0xff,0x14,0x0,0x54,0x0,0x6a,0x0, +0x90,0x0,0x93,0x0,0x62,0x0,0x35,0x0,0xb,0x0,0xe6,0xff, +0xe1,0xff,0xd2,0xff,0xb1,0xff,0xb4,0xff,0xce,0xff,0xe4,0xff, +0x9,0x0,0x27,0x0,0x29,0x0,0x32,0x0,0x42,0x0,0x38,0x0, +0x1c,0x0,0xf8,0xff,0xd0,0xff,0xb7,0xff,0xb8,0xff,0xdb,0xff, +0x10,0x0,0x2c,0x0,0x20,0x0,0x2,0x0,0xe0,0xff,0xc5,0xff, +0xbf,0xff,0xc7,0xff,0xdc,0xff,0xfc,0xff,0x1b,0x0,0x2b,0x0, +0x2c,0x0,0x2e,0x0,0x49,0x0,0x60,0x0,0x47,0x0,0x16,0x0, +0xfb,0xff,0xda,0xff,0xa4,0xff,0x8a,0xff,0x9e,0xff,0xb0,0xff, +0xb2,0xff,0xc4,0xff,0xdf,0xff,0xe2,0xff,0xdf,0xff,0xf5,0xff, +0xf,0x0,0x19,0x0,0x18,0x0,0x9,0x0,0xf5,0xff,0xf5,0xff, +0xfa,0xff,0xef,0xff,0xef,0xff,0x0,0x0,0x10,0x0,0x20,0x0, +0x25,0x0,0x12,0x0,0xfd,0xff,0xf1,0xff,0xe2,0xff,0xd9,0xff, +0xe3,0xff,0xf3,0xff,0x7,0x0,0x19,0x0,0x19,0x0,0xc,0x0, +0x1,0x0,0xf2,0xff,0xe2,0xff,0xd4,0xff,0xbc,0xff,0xab,0xff, +0xbd,0xff,0xd8,0xff,0xea,0xff,0xe,0x0,0x3c,0x0,0x44,0x0, +0x27,0x0,0xd,0x0,0x1,0x0,0xfd,0xff,0xee,0xff,0xd2,0xff, +0xc2,0xff,0xbe,0xff,0xb6,0xff,0xc3,0xff,0xe8,0xff,0xf8,0xff, +0xf8,0xff,0xff,0xff,0xfa,0xff,0xed,0xff,0xf2,0xff,0xf4,0xff, +0xe8,0xff,0xdd,0xff,0xd5,0xff,0xde,0xff,0xf9,0xff,0xc,0x0, +0x14,0x0,0x18,0x0,0x9,0x0,0xf5,0xff,0xf1,0xff,0xe5,0xff, +0xd6,0xff,0xd7,0xff,0xd9,0xff,0xed,0xff,0x17,0x0,0x2a,0x0, +0x2f,0x0,0x4b,0x0,0x4e,0x0,0x23,0x0,0x7,0x0,0xb,0x0, +0x4,0x0,0xe2,0xff,0xba,0xff,0xb5,0xff,0xce,0xff,0xdb,0xff, +0xe5,0xff,0x5,0x0,0x1c,0x0,0x1e,0x0,0x21,0x0,0x1c,0x0, +0x7,0x0,0xf4,0xff,0xe2,0xff,0xde,0xff,0xec,0xff,0xfa,0xff, +0x7,0x0,0x1f,0x0,0x25,0x0,0x10,0x0,0xf8,0xff,0xe0,0xff, +0xdb,0xff,0xf3,0xff,0xfd,0xff,0xe9,0xff,0xe3,0xff,0xf3,0xff, +0xfc,0xff,0xfd,0xff,0xa,0x0,0x19,0x0,0xa,0x0,0xf2,0xff, +0xfe,0xff,0x8,0x0,0xe4,0xff,0xc8,0xff,0xcc,0xff,0xc9,0xff, +0xc8,0xff,0xdb,0xff,0xeb,0xff,0xfc,0xff,0x12,0x0,0x15,0x0, +0xe,0x0,0x8,0x0,0xf9,0xff,0xea,0xff,0xe4,0xff,0xd9,0xff, +0xe1,0xff,0x5,0x0,0x18,0x0,0x19,0x0,0x26,0x0,0x2e,0x0, +0x1f,0x0,0x6,0x0,0xed,0xff,0xe3,0xff,0xec,0xff,0xed,0xff, +0xea,0xff,0xf4,0xff,0xfa,0xff,0xf0,0xff,0xde,0xff,0xcd,0xff, +0xd3,0xff,0xfa,0xff,0x15,0x0,0x10,0x0,0xa,0x0,0xa,0x0, +0x1,0x0,0xfc,0xff,0x0,0x0,0x3,0x0,0xc,0x0,0x10,0x0, +0x5,0x0,0x7,0x0,0x1c,0x0,0x22,0x0,0x17,0x0,0x16,0x0, +0x1d,0x0,0x1f,0x0,0x19,0x0,0xb,0x0,0x0,0x0,0xf7,0xff, +0xed,0xff,0xf1,0xff,0xfd,0xff,0xfe,0xff,0x7,0x0,0x20,0x0, +0x22,0x0,0x16,0x0,0x1c,0x0,0x26,0x0,0x25,0x0,0x21,0x0, +0x14,0x0,0x13,0x0,0x24,0x0,0x1c,0x0,0xc,0x0,0x1d,0x0, +0x22,0x0,0xfa,0xff,0xd9,0xff,0xd3,0xff,0xc9,0xff,0xb3,0xff, +0x9e,0xff,0xa5,0xff,0xc1,0xff,0xcb,0xff,0xd6,0xff,0x6,0x0, +0x35,0x0,0x52,0x0,0x78,0x0,0x91,0x0,0x80,0x0,0x58,0x0, +0x24,0x0,0xea,0xff,0xbf,0xff,0xa7,0xff,0xa8,0xff,0xc5,0xff, +0xde,0xff,0xe4,0xff,0xe9,0xff,0xeb,0xff,0xf5,0xff,0x16,0x0, +0x2b,0x0,0x27,0x0,0x23,0x0,0x22,0x0,0x19,0x0,0xa,0x0, +0xf2,0xff,0xe2,0xff,0xec,0xff,0xf3,0xff,0xec,0xff,0xf5,0xff, +0x8,0x0,0x6,0x0,0xf7,0xff,0xf9,0xff,0xc,0x0,0x1c,0x0, +0x32,0x0,0x5b,0x0,0x78,0x0,0x7f,0x0,0x93,0x0,0x9c,0x0, +0x68,0x0,0x25,0x0,0xf6,0xff,0xbc,0xff,0x7d,0xff,0x60,0xff, +0x5c,0xff,0x68,0xff,0x87,0xff,0xb6,0xff,0xf4,0xff,0x29,0x0, +0x33,0x0,0x35,0x0,0x48,0x0,0x4a,0x0,0x39,0x0,0x30,0x0, +0x1f,0x0,0x8,0x0,0xfd,0xff,0xef,0xff,0xdd,0xff,0xd5,0xff, +0xd8,0xff,0xe3,0xff,0xf4,0xff,0xfb,0xff,0x8,0x0,0x29,0x0, +0x38,0x0,0x28,0x0,0x22,0x0,0x33,0x0,0x3e,0x0,0x38,0x0, +0x32,0x0,0x2c,0x0,0x14,0x0,0xf1,0xff,0xd9,0xff,0xbd,0xff, +0x9f,0xff,0xaa,0xff,0xce,0xff,0xdf,0xff,0xfd,0xff,0x39,0x0, +0x54,0x0,0x52,0x0,0x6f,0x0,0x8c,0x0,0x85,0x0,0x84,0x0, +0x7a,0x0,0x3b,0x0,0x1,0x0,0xf4,0xff,0xe0,0xff,0xd0,0xff, +0xea,0xff,0xfd,0xff,0xf9,0xff,0x10,0x0,0x2b,0x0,0x17,0x0, +0x1,0x0,0x8,0x0,0xc,0x0,0xd,0x0,0x10,0x0,0x7,0x0, +0x0,0x0,0x3,0x0,0xf8,0xff,0xef,0xff,0xff,0xff,0xff,0xff, +0xdc,0xff,0xc5,0xff,0xc8,0xff,0xc9,0xff,0xce,0xff,0xe1,0xff, +0xf4,0xff,0x1c,0x0,0x5f,0x0,0x81,0x0,0x77,0x0,0x84,0x0, +0x95,0x0,0x6f,0x0,0x41,0x0,0x26,0x0,0xe8,0xff,0xa8,0xff, +0xa0,0xff,0xa2,0xff,0x9c,0xff,0xaa,0xff,0xb5,0xff,0xc5,0xff, +0xfc,0xff,0x2b,0x0,0x39,0x0,0x51,0x0,0x64,0x0,0x5a,0x0, +0x4f,0x0,0x34,0x0,0x2,0x0,0xee,0xff,0xec,0xff,0xcd,0xff, +0xb5,0xff,0xbf,0xff,0xc9,0xff,0xd2,0xff,0xea,0xff,0x4,0x0, +0x10,0x0,0x17,0x0,0x2c,0x0,0x48,0x0,0x54,0x0,0x59,0x0, +0x5e,0x0,0x4a,0x0,0x24,0x0,0x3,0x0,0xdc,0xff,0xb3,0xff, +0x8f,0xff,0x6b,0xff,0x62,0xff,0x82,0xff,0xa0,0xff,0xb4,0xff, +0xdb,0xff,0xfe,0xff,0x10,0x0,0x36,0x0,0x5c,0x0,0x60,0x0, +0x58,0x0,0x55,0x0,0x4d,0x0,0x45,0x0,0x3f,0x0,0x2f,0x0, +0x1d,0x0,0xe,0x0,0xfd,0xff,0xf2,0xff,0xff,0xff,0x12,0x0, +0xb,0x0,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf0,0xff,0xf9,0xff, +0x3,0x0,0xfc,0xff,0xf9,0xff,0xfc,0xff,0xf3,0xff,0xee,0xff, +0xec,0xff,0xea,0xff,0x0,0x0,0x14,0x0,0x8,0x0,0x8,0x0, +0x1f,0x0,0x28,0x0,0x2c,0x0,0x39,0x0,0x36,0x0,0x29,0x0, +0x21,0x0,0xb,0x0,0xf4,0xff,0xfc,0xff,0x0,0x0,0xe7,0xff, +0xd7,0xff,0xe1,0xff,0xe9,0xff,0xe7,0xff,0xef,0xff,0xfd,0xff, +0xfb,0xff,0xf3,0xff,0xfe,0xff,0x13,0x0,0x1c,0x0,0x17,0x0, +0xc,0x0,0x6,0x0,0xc,0x0,0xf,0x0,0xd,0x0,0x12,0x0, +0x12,0x0,0xfa,0xff,0xdd,0xff,0xd4,0xff,0xd8,0xff,0xe2,0xff, +0xf8,0xff,0x11,0x0,0x1f,0x0,0x1a,0x0,0xe,0x0,0xc,0x0, +0x13,0x0,0xb,0x0,0xf9,0xff,0xef,0xff,0xe9,0xff,0xd5,0xff, +0xb4,0xff,0x93,0xff,0x87,0xff,0x9c,0xff,0xbc,0xff,0xdb,0xff, +0x8,0x0,0x37,0x0,0x53,0x0,0x6b,0x0,0x7c,0x0,0x75,0x0, +0x68,0x0,0x49,0x0,0x5,0x0,0xc9,0xff,0xa4,0xff,0x76,0xff, +0x5f,0xff,0x7b,0xff,0x9e,0xff,0xb9,0xff,0xde,0xff,0x1,0x0, +0x2a,0x0,0x5f,0x0,0x7e,0x0,0x7d,0x0,0x6e,0x0,0x55,0x0, +0x43,0x0,0x2d,0x0,0xf6,0xff,0xc8,0xff,0xc3,0xff,0xb3,0xff, +0x9c,0xff,0xab,0xff,0xc6,0xff,0xdb,0xff,0xf7,0xff,0xd,0x0, +0x21,0x0,0x38,0x0,0x2c,0x0,0x15,0x0,0x33,0x0,0x54,0x0, +0x3b,0x0,0x1e,0x0,0x14,0x0,0xf1,0xff,0xc4,0xff,0xaf,0xff, +0x91,0xff,0x64,0xff,0x5d,0xff,0x79,0xff,0x92,0xff,0xae,0xff, +0xdd,0xff,0x17,0x0,0x51,0x0,0x78,0x0,0x83,0x0,0x84,0x0, +0x79,0x0,0x5a,0x0,0x4b,0x0,0x44,0x0,0x1a,0x0,0xee,0xff, +0xe8,0xff,0xed,0xff,0xf7,0xff,0x7,0x0,0xfe,0xff,0xf3,0xff, +0x6,0x0,0x8,0x0,0xfa,0xff,0x3,0x0,0x4,0x0,0xf2,0xff, +0xf9,0xff,0x7,0x0,0xa,0x0,0x18,0x0,0x1b,0x0,0x4,0x0, +0xf8,0xff,0xf4,0xff,0xe8,0xff,0xe8,0xff,0xf1,0xff,0xf2,0xff, +0xf7,0xff,0xfc,0xff,0xf5,0xff,0xf6,0xff,0xa,0x0,0x21,0x0, +0x2d,0x0,0x27,0x0,0x12,0x0,0xf7,0xff,0xd4,0xff,0xb6,0xff, +0xb1,0xff,0xb9,0xff,0xc0,0xff,0xdb,0xff,0xfc,0xff,0x4,0x0, +0xb,0x0,0x2b,0x0,0x39,0x0,0x27,0x0,0x2c,0x0,0x3b,0x0, +0x1d,0x0,0xfd,0xff,0x8,0x0,0x19,0x0,0x22,0x0,0x37,0x0, +0x46,0x0,0x3c,0x0,0x2b,0x0,0x1d,0x0,0x13,0x0,0x7,0x0, +0xee,0xff,0xdf,0xff,0xe8,0xff,0xe7,0xff,0xd7,0xff,0xd0,0xff, +0xd7,0xff,0xec,0xff,0x4,0x0,0xa,0x0,0xd,0x0,0x18,0x0, +0xe,0x0,0xf7,0xff,0xf1,0xff,0xee,0xff,0xef,0xff,0x2,0x0, +0xe,0x0,0x5,0x0,0x1,0x0,0xd,0x0,0x1b,0x0,0x18,0x0, +0x9,0x0,0x4,0x0,0xfb,0xff,0xdd,0xff,0xd2,0xff,0xe9,0xff, +0xf5,0xff,0xf2,0xff,0xf6,0xff,0xf0,0xff,0xe0,0xff,0xe0,0xff, +0xe5,0xff,0xdf,0xff,0xd4,0xff,0xcf,0xff,0xd5,0xff,0xe1,0xff, +0xe6,0xff,0xec,0xff,0xf4,0xff,0xf2,0xff,0xf7,0xff,0x14,0x0, +0x28,0x0,0x17,0x0,0x0,0x0,0xfc,0xff,0xf6,0xff,0xdf,0xff, +0xce,0xff,0xd3,0xff,0xe0,0xff,0xe1,0xff,0xdc,0xff,0xe8,0xff, +0xf4,0xff,0xe9,0xff,0xe7,0xff,0x5,0x0,0x8,0x0,0xea,0xff, +0xed,0xff,0x0,0x0,0xf4,0xff,0xee,0xff,0xfe,0xff,0x1,0x0, +0x2,0x0,0x10,0x0,0xc,0x0,0xfa,0xff,0xe7,0xff,0xcc,0xff, +0xbe,0xff,0xc2,0xff,0xbc,0xff,0xb9,0xff,0xc8,0xff,0xd3,0xff, +0xe1,0xff,0xfd,0xff,0x12,0x0,0x25,0x0,0x3f,0x0,0x48,0x0, +0x3a,0x0,0x30,0x0,0x2d,0x0,0x1f,0x0,0x6,0x0,0xfc,0xff, +0xfe,0xff,0xed,0xff,0xd1,0xff,0xd1,0xff,0xda,0xff,0xd5,0xff, +0xdf,0xff,0xfc,0xff,0xf,0x0,0x1c,0x0,0x2d,0x0,0x38,0x0, +0x45,0x0,0x45,0x0,0x24,0x0,0x8,0x0,0xc,0x0,0x13,0x0, +0x9,0x0,0xf8,0xff,0xf1,0xff,0xfb,0xff,0x3,0x0,0xfb,0xff, +0x2,0x0,0xc,0x0,0x2,0x0,0xe,0x0,0x34,0x0,0x36,0x0, +0x1f,0x0,0x1e,0x0,0x13,0x0,0xee,0xff,0xd6,0xff,0xcb,0xff, +0xbb,0xff,0xb9,0xff,0xc4,0xff,0xc6,0xff,0xc9,0xff,0xe5,0xff, +0xd,0x0,0x23,0x0,0x29,0x0,0x33,0x0,0x3d,0x0,0x39,0x0, +0x2b,0x0,0x1a,0x0,0xe,0x0,0x12,0x0,0xf,0x0,0xf7,0xff, +0xf4,0xff,0xff,0xff,0xf2,0xff,0xf3,0xff,0x16,0x0,0x21,0x0, +0x14,0x0,0x1f,0x0,0x26,0x0,0x13,0x0,0x5,0x0,0xff,0xff, +0xf3,0xff,0xed,0xff,0xeb,0xff,0xde,0xff,0xd5,0xff,0xd4,0xff, +0xd4,0xff,0xd4,0xff,0xd2,0xff,0xcd,0xff,0xd0,0xff,0xdb,0xff, +0xe8,0xff,0xf7,0xff,0xb,0x0,0x23,0x0,0x2a,0x0,0x9,0x0, +0xd3,0xff,0xb3,0xff,0xab,0xff,0x9f,0xff,0x8f,0xff,0x91,0xff, +0x9c,0xff,0x9d,0xff,0xa6,0xff,0xbc,0xff,0xc6,0xff,0xd4,0xff, +0xf7,0xff,0xa,0x0,0x10,0x0,0x1f,0x0,0x14,0x0,0xf8,0xff, +0x1,0x0,0xfe,0xff,0xd6,0xff,0xd9,0xff,0xf0,0xff,0xda,0xff, +0xd5,0xff,0xec,0xff,0xde,0xff,0xd2,0xff,0xee,0xff,0xf6,0xff, +0xed,0xff,0x1,0x0,0x10,0x0,0xb,0x0,0x19,0x0,0x27,0x0, +0x17,0x0,0xa,0x0,0xe,0x0,0x4,0x0,0xe7,0xff,0xcd,0xff, +0xbe,0xff,0xb8,0xff,0xbf,0xff,0xcf,0xff,0xd4,0xff,0xd2,0xff, +0xdb,0xff,0xef,0xff,0xfd,0xff,0xfb,0xff,0xf4,0xff,0xf6,0xff, +0xf5,0xff,0xe5,0xff,0xdf,0xff,0xea,0xff,0xe1,0xff,0xc8,0xff, +0xcb,0xff,0xdd,0xff,0xd2,0xff,0xbf,0xff,0xcc,0xff,0xe0,0xff, +0xdd,0xff,0xe6,0xff,0xd,0x0,0x24,0x0,0x29,0x0,0x33,0x0, +0x28,0x0,0xe,0x0,0xe,0x0,0x5,0x0,0xe0,0xff,0xd6,0xff, +0xd1,0xff,0xaf,0xff,0xa9,0xff,0xcf,0xff,0xeb,0xff,0x7,0x0, +0x31,0x0,0x49,0x0,0x51,0x0,0x57,0x0,0x5c,0x0,0x65,0x0, +0x65,0x0,0x48,0x0,0x26,0x0,0xe,0x0,0xf8,0xff,0xe7,0xff, +0xdd,0xff,0xd3,0xff,0xd5,0xff,0xe7,0xff,0x3,0x0,0x22,0x0, +0x33,0x0,0x30,0x0,0x2f,0x0,0x33,0x0,0x33,0x0,0x36,0x0, +0x37,0x0,0x2d,0x0,0x1f,0x0,0x1e,0x0,0x2e,0x0,0x3d,0x0, +0x37,0x0,0x2a,0x0,0x27,0x0,0x25,0x0,0x2a,0x0,0x2f,0x0, +0x26,0x0,0x1c,0x0,0x1b,0x0,0x10,0x0,0x10,0x0,0x25,0x0, +0x26,0x0,0x10,0x0,0x14,0x0,0x27,0x0,0x2d,0x0,0x28,0x0, +0x17,0x0,0x3,0x0,0xb,0x0,0x1d,0x0,0x1e,0x0,0x23,0x0, +0x36,0x0,0x3c,0x0,0x3a,0x0,0x40,0x0,0x3c,0x0,0x2f,0x0, +0x2e,0x0,0x2c,0x0,0x1f,0x0,0x13,0x0,0x1,0x0,0xe9,0xff, +0xe7,0xff,0xf5,0xff,0xf1,0xff,0xee,0xff,0xfb,0xff,0x0,0x0, +0xfe,0xff,0x4,0x0,0xd,0x0,0x10,0x0,0x0,0x0,0xe8,0xff, +0xf2,0xff,0xa,0x0,0x5,0x0,0xfd,0xff,0x5,0x0,0x5,0x0, +0xb,0x0,0x14,0x0,0x2,0x0,0xf6,0xff,0x3,0x0,0xf9,0xff, +0xe9,0xff,0xf0,0xff,0xee,0xff,0xef,0xff,0x7,0x0,0xb,0x0, +0x8,0x0,0x18,0x0,0x11,0x0,0xf9,0xff,0x1,0x0,0x3,0x0, +0xeb,0xff,0xe8,0xff,0xf4,0xff,0xf3,0xff,0xf8,0xff,0xfe,0xff, +0xf8,0xff,0xfb,0xff,0x0,0x0,0xf5,0xff,0xe8,0xff,0xe2,0xff, +0xda,0xff,0xd9,0xff,0xdd,0xff,0xdf,0xff,0xea,0xff,0xf5,0xff, +0xf2,0xff,0xf2,0xff,0xfe,0xff,0xfe,0xff,0xf9,0xff,0xfe,0xff, +0x0,0x0,0xfd,0xff,0xfe,0xff,0xfa,0xff,0xf5,0xff,0xfd,0xff, +0x0,0x0,0xf0,0xff,0xec,0xff,0xf8,0xff,0xf0,0xff,0xd8,0xff, +0xd1,0xff,0xdb,0xff,0xe8,0xff,0xf1,0xff,0xf4,0xff,0xf0,0xff, +0xf1,0xff,0xf4,0xff,0xed,0xff,0xe2,0xff,0xde,0xff,0xe2,0xff, +0xe9,0xff,0xe7,0xff,0xde,0xff,0xe7,0xff,0x0,0x0,0x6,0x0, +0xfe,0xff,0x3,0x0,0x7,0x0,0x7,0x0,0x18,0x0,0x27,0x0, +0x17,0x0,0x2,0x0,0x1,0x0,0x8,0x0,0xc,0x0,0x8,0x0, +0xfc,0xff,0xf2,0xff,0xec,0xff,0xe9,0xff,0xee,0xff,0xfa,0xff, +0xa,0x0,0x19,0x0,0x1e,0x0,0x22,0x0,0x26,0x0,0x17,0x0, +0x10,0x0,0x25,0x0,0x1f,0x0,0xfe,0xff,0x3,0x0,0x13,0x0, +0x7,0x0,0xa,0x0,0x24,0x0,0x2a,0x0,0x22,0x0,0x24,0x0, +0x27,0x0,0x1f,0x0,0xc,0x0,0x2,0x0,0x6,0x0,0xf7,0xff, +0xe4,0xff,0xec,0xff,0xf0,0xff,0xe9,0xff,0xf6,0xff,0x0,0x0, +0xff,0xff,0x10,0x0,0x14,0x0,0x1,0x0,0xa,0x0,0x17,0x0, +0x3,0x0,0x1,0x0,0x1c,0x0,0x21,0x0,0x1e,0x0,0x2c,0x0, +0x38,0x0,0x3d,0x0,0x3f,0x0,0x30,0x0,0x1a,0x0,0x11,0x0, +0xa,0x0,0xf7,0xff,0xe6,0xff,0xe1,0xff,0xdd,0xff,0xdd,0xff, +0xea,0xff,0xf1,0xff,0xf1,0xff,0xf6,0xff,0xf4,0xff,0xea,0xff, +0xf5,0xff,0x0,0x0,0x0,0x0,0x13,0x0,0x21,0x0,0xe,0x0, +0xa,0x0,0x18,0x0,0x15,0x0,0x14,0x0,0x16,0x0,0xfd,0xff, +0xed,0xff,0xf6,0xff,0xec,0xff,0xe1,0xff,0xef,0xff,0xf5,0xff, +0xf2,0xff,0xfa,0xff,0xfb,0xff,0xf7,0xff,0x0,0x0,0x4,0x0, +0xfc,0xff,0xf8,0xff,0xf7,0xff,0xef,0xff,0xe8,0xff,0xf4,0xff, +0xa,0x0,0x11,0x0,0xb,0x0,0x10,0x0,0x1c,0x0,0x19,0x0, +0x10,0x0,0x14,0x0,0x24,0x0,0x22,0x0,0x12,0x0,0x1c,0x0, +0x36,0x0,0x33,0x0,0x24,0x0,0x27,0x0,0x29,0x0,0x26,0x0, +0x24,0x0,0x17,0x0,0x8,0x0,0xff,0xff,0xec,0xff,0xdf,0xff, +0xe6,0xff,0xe7,0xff,0xe1,0xff,0xec,0xff,0xf7,0xff,0xfa,0xff, +0x7,0x0,0x18,0x0,0x28,0x0,0x35,0x0,0x2c,0x0,0x13,0x0, +0xff,0xff,0xf0,0xff,0xec,0xff,0xf8,0xff,0x1,0x0,0x1,0x0, +0xf8,0xff,0xe8,0xff,0xe7,0xff,0xfb,0xff,0x5,0x0,0x5,0x0, +0xc,0x0,0xe,0x0,0x8,0x0,0x10,0x0,0x19,0x0,0x12,0x0, +0xf,0x0,0x19,0x0,0x18,0x0,0x13,0x0,0x19,0x0,0x1e,0x0, +0x16,0x0,0x14,0x0,0x1f,0x0,0x2e,0x0,0x3a,0x0,0x40,0x0, +0x3e,0x0,0x33,0x0,0x26,0x0,0x27,0x0,0x29,0x0,0x16,0x0, +0x5,0x0,0xc,0x0,0x6,0x0,0xf1,0xff,0xf4,0xff,0x0,0x0, +0xff,0xff,0x12,0x0,0x33,0x0,0x3b,0x0,0x39,0x0,0x37,0x0, +0x23,0x0,0x11,0x0,0x17,0x0,0x15,0x0,0x0,0x0,0xf7,0xff, +0xfb,0xff,0xf1,0xff,0xdb,0xff,0xe4,0xff,0x7,0x0,0x18,0x0, +0x15,0x0,0x19,0x0,0x21,0x0,0x2f,0x0,0x3f,0x0,0x3a,0x0, +0x2e,0x0,0x30,0x0,0x1d,0x0,0xff,0xff,0x1,0x0,0x3,0x0, +0xf8,0xff,0x8,0x0,0x15,0x0,0x5,0x0,0x9,0x0,0x1a,0x0, +0xe,0x0,0xb,0x0,0x1a,0x0,0x13,0x0,0xa,0x0,0xf,0x0, +0x0,0x0,0xee,0xff,0xee,0xff,0xe6,0xff,0xd7,0xff,0xd3,0xff, +0xce,0xff,0xd2,0xff,0xef,0xff,0x4,0x0,0x4,0x0,0xa,0x0, +0x11,0x0,0xa,0x0,0x3,0x0,0x0,0x0,0xf9,0xff,0xf5,0xff, +0xf2,0xff,0xeb,0xff,0xe7,0xff,0xe6,0xff,0xe9,0xff,0xf7,0xff, +0xfa,0xff,0xf0,0xff,0xf5,0xff,0x4,0x0,0x0,0x0,0xf3,0xff, +0xef,0xff,0xf2,0xff,0xfc,0xff,0xa,0x0,0xf,0x0,0x11,0x0, +0x13,0x0,0x10,0x0,0x7,0x0,0xff,0xff,0xfa,0xff,0xf5,0xff, +0xec,0xff,0xe0,0xff,0xd6,0xff,0xcb,0xff,0xc2,0xff,0xc4,0xff, +0xc8,0xff,0xcd,0xff,0xe3,0xff,0xfa,0xff,0xf5,0xff,0xe5,0xff, +0xec,0xff,0xfa,0xff,0xed,0xff,0xd8,0xff,0xdc,0xff,0xe0,0xff, +0xd9,0xff,0xe4,0xff,0xeb,0xff,0xd4,0xff,0xcf,0xff,0xe4,0xff, +0xe2,0xff,0xdf,0xff,0xeb,0xff,0xe1,0xff,0xd2,0xff,0xdd,0xff, +0xdd,0xff,0xd2,0xff,0xd4,0xff,0xcf,0xff,0xcb,0xff,0xd8,0xff, +0xd8,0xff,0xcd,0xff,0xd6,0xff,0xde,0xff,0xd8,0xff,0xd8,0xff, +0xd9,0xff,0xd4,0xff,0xd2,0xff,0xd0,0xff,0xd3,0xff,0xe0,0xff, +0xec,0xff,0xfe,0xff,0x15,0x0,0x15,0x0,0xff,0xff,0xf7,0xff, +0xfd,0xff,0xfc,0xff,0xf4,0xff,0xef,0xff,0xf1,0xff,0xf2,0xff, +0xf4,0xff,0xf7,0xff,0xf1,0xff,0xf3,0xff,0x0,0x0,0xfb,0xff, +0xef,0xff,0xf6,0xff,0xf1,0xff,0xe2,0xff,0xe8,0xff,0xe3,0xff, +0xca,0xff,0xd3,0xff,0xd9,0xff,0xb7,0xff,0xaf,0xff,0xc6,0xff, +0xc2,0xff,0xc0,0xff,0xd0,0xff,0xc9,0xff,0xc5,0xff,0xe0,0xff, +0xf2,0xff,0xf3,0xff,0xfa,0xff,0xfe,0xff,0x1,0x0,0x9,0x0, +0x6,0x0,0xf7,0xff,0xf1,0xff,0xf0,0xff,0xef,0xff,0xf5,0xff, +0xf8,0xff,0xef,0xff,0xf1,0xff,0x7,0x0,0x15,0x0,0x10,0x0, +0x15,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x22,0x0,0x19,0x0, +0x12,0x0,0x12,0x0,0x13,0x0,0x1f,0x0,0x29,0x0,0x1f,0x0, +0x1a,0x0,0x21,0x0,0x19,0x0,0xf,0x0,0x12,0x0,0xa,0x0, +0xf5,0xff,0xe8,0xff,0xe9,0xff,0xf6,0xff,0xfa,0xff,0xf2,0xff, +0xf8,0xff,0x8,0x0,0x3,0x0,0x1,0x0,0x13,0x0,0x1d,0x0, +0x1e,0x0,0x21,0x0,0x10,0x0,0xf7,0xff,0xf4,0xff,0xf5,0xff, +0xed,0xff,0xf4,0xff,0xfa,0xff,0xf6,0xff,0x1,0x0,0x11,0x0, +0x6,0x0,0xf8,0xff,0x0,0x0,0xff,0xff,0xf2,0xff,0xf2,0xff, +0xf6,0xff,0xf5,0xff,0xfa,0xff,0x4,0x0,0xf,0x0,0x17,0x0, +0x13,0x0,0xb,0x0,0xd,0x0,0x7,0x0,0xf6,0xff,0xed,0xff, +0xe2,0xff,0xd6,0xff,0xda,0xff,0xda,0xff,0xce,0xff,0xcf,0xff, +0xd8,0xff,0xe3,0xff,0xfc,0xff,0xe,0x0,0x6,0x0,0x1,0x0, +0x9,0x0,0x9,0x0,0x7,0x0,0xd,0x0,0xd,0x0,0x4,0x0, +0x7,0x0,0x14,0x0,0x13,0x0,0x2,0x0,0xff,0xff,0xa,0x0, +0xd,0x0,0xe,0x0,0xe,0x0,0x5,0x0,0x7,0x0,0x12,0x0, +0x7,0x0,0xfd,0xff,0x7,0x0,0x7,0x0,0xfb,0xff,0xf8,0xff, +0xef,0xff,0xe5,0xff,0xea,0xff,0xea,0xff,0xdf,0xff,0xd8,0xff, +0xd5,0xff,0xe0,0xff,0xf4,0xff,0xf9,0xff,0xf2,0xff,0xf2,0xff, +0xf3,0xff,0xf6,0xff,0x0,0x0,0x4,0x0,0x2,0x0,0xf7,0xff, +0xe9,0xff,0xf1,0xff,0xf9,0xff,0xe6,0xff,0xe6,0xff,0x3,0x0, +0x9,0x0,0x1,0x0,0xb,0x0,0xb,0x0,0x3,0x0,0xc,0x0, +0x11,0x0,0x10,0x0,0x1c,0x0,0x1e,0x0,0x11,0x0,0x15,0x0, +0x23,0x0,0x29,0x0,0x2a,0x0,0x22,0x0,0x16,0x0,0x18,0x0, +0x19,0x0,0x7,0x0,0xfb,0xff,0xff,0xff,0x3,0x0,0x9,0x0, +0xe,0x0,0x9,0x0,0x9,0x0,0xb,0x0,0x7,0x0,0xc,0x0, +0x12,0x0,0xff,0xff,0xf0,0xff,0xf6,0xff,0xf8,0xff,0x2,0x0, +0x19,0x0,0x1b,0x0,0x16,0x0,0x2b,0x0,0x2d,0x0,0x17,0x0, +0x1d,0x0,0x2e,0x0,0x23,0x0,0x1c,0x0,0x27,0x0,0x2b,0x0, +0x27,0x0,0x27,0x0,0x2d,0x0,0x33,0x0,0x2e,0x0,0x21,0x0, +0x1b,0x0,0x17,0x0,0x12,0x0,0xc,0x0,0x1,0x0,0xfe,0xff, +0x6,0x0,0x5,0x0,0x7,0x0,0x1d,0x0,0x24,0x0,0x17,0x0, +0x19,0x0,0x23,0x0,0x1c,0x0,0x13,0x0,0xe,0x0,0x6,0x0, +0xfe,0xff,0xf8,0xff,0xfa,0xff,0x7,0x0,0x3,0x0,0xf3,0xff, +0xfb,0xff,0xf,0x0,0xe,0x0,0x5,0x0,0x3,0x0,0xff,0xff, +0x0,0x0,0x6,0x0,0x0,0x0,0xf6,0xff,0xfc,0xff,0xff,0xff, +0xf4,0xff,0xf0,0xff,0xed,0xff,0xe5,0xff,0xee,0xff,0xfd,0xff, +0xf5,0xff,0xec,0xff,0xfa,0xff,0x2,0x0,0x5,0x0,0x11,0x0, +0x15,0x0,0x10,0x0,0x12,0x0,0xa,0x0,0xf5,0xff,0xf2,0xff, +0xfc,0xff,0xfb,0xff,0xf0,0xff,0xe2,0xff,0xdf,0xff,0xe7,0xff, +0xee,0xff,0xf7,0xff,0xfe,0xff,0xfa,0xff,0x0,0x0,0xe,0x0, +0xc,0x0,0xd,0x0,0x17,0x0,0x10,0x0,0x9,0x0,0x11,0x0, +0xc,0x0,0xfe,0xff,0x4,0x0,0x10,0x0,0x1c,0x0,0x29,0x0, +0x22,0x0,0xe,0x0,0x5,0x0,0x1,0x0,0x8,0x0,0x12,0x0, +0x7,0x0,0xfd,0xff,0xa,0x0,0xf,0x0,0x1,0x0,0xf8,0xff, +0xfa,0xff,0x2,0x0,0xd,0x0,0xf,0x0,0xe,0x0,0xe,0x0, +0xf,0x0,0x17,0x0,0x17,0x0,0x6,0x0,0x4,0x0,0x11,0x0, +0xf,0x0,0x9,0x0,0x7,0x0,0xf8,0xff,0xf2,0xff,0x0,0x0, +0x4,0x0,0x3,0x0,0x7,0x0,0x2,0x0,0xfc,0xff,0x2,0x0, +0x0,0x0,0xfa,0xff,0xfc,0xff,0x4,0x0,0x12,0x0,0x1e,0x0, +0x16,0x0,0x10,0x0,0x18,0x0,0x19,0x0,0x15,0x0,0x16,0x0, +0x18,0x0,0x1c,0x0,0x22,0x0,0x1a,0x0,0xe,0x0,0xd,0x0, +0x8,0x0,0x2,0x0,0x7,0x0,0x0,0x0,0xef,0xff,0xf0,0xff, +0xfe,0xff,0xfb,0xff,0xf3,0xff,0xf8,0xff,0x2,0x0,0x1,0x0, +0xfd,0xff,0x0,0x0,0xfe,0xff,0xf6,0xff,0xf8,0xff,0xff,0xff, +0xfc,0xff,0xf6,0xff,0xf2,0xff,0xea,0xff,0xe2,0xff,0xe3,0xff, +0xea,0xff,0xf7,0xff,0x8,0x0,0x11,0x0,0xb,0x0,0x4,0x0, +0x4,0x0,0xa,0x0,0xb,0x0,0x2,0x0,0xf3,0xff,0xea,0xff, +0xe7,0xff,0xe7,0xff,0xec,0xff,0xf2,0xff,0xf4,0xff,0xfb,0xff, +0xc,0x0,0x1b,0x0,0x1e,0x0,0x15,0x0,0x1,0x0,0xf6,0xff, +0xf9,0xff,0xf2,0xff,0xe0,0xff,0xe2,0xff,0xed,0xff,0xe9,0xff, +0xec,0xff,0xff,0xff,0x4,0x0,0xff,0xff,0x1,0x0,0xfc,0xff, +0xf0,0xff,0xee,0xff,0xee,0xff,0xe3,0xff,0xd7,0xff,0xd9,0xff, +0xe7,0xff,0xf5,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xed,0xff, +0xf9,0xff,0xfe,0xff,0xf7,0xff,0xfc,0xff,0x3,0x0,0xf9,0xff, +0xf4,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0xb,0x0,0xc,0x0,0x0,0x0,0x4,0x0,0x15,0x0,0x19,0x0, +0x19,0x0,0x1b,0x0,0x14,0x0,0xd,0x0,0x5,0x0,0xf9,0xff, +0xf6,0xff,0xf8,0xff,0xf6,0xff,0xfa,0xff,0xfc,0xff,0xf9,0xff, +0xff,0xff,0x7,0x0,0x6,0x0,0x8,0x0,0x5,0x0,0x1,0x0, +0x11,0x0,0x1a,0x0,0x10,0x0,0x12,0x0,0xe,0x0,0xf9,0xff, +0xfb,0xff,0x6,0x0,0xff,0xff,0x2,0x0,0x4,0x0,0xf6,0xff, +0xfe,0xff,0x10,0x0,0x6,0x0,0x7,0x0,0x1a,0x0,0x1d,0x0, +0x1c,0x0,0x23,0x0,0x21,0x0,0x1b,0x0,0x7,0x0,0xf1,0xff, +0xfb,0xff,0x0,0x0,0xe4,0xff,0xdf,0xff,0xf5,0xff,0xfb,0xff, +0x4,0x0,0xc,0x0,0x2,0x0,0x5,0x0,0x13,0x0,0xb,0x0, +0x6,0x0,0xc,0x0,0x1,0x0,0xf3,0xff,0xf2,0xff,0xef,0xff, +0xf6,0xff,0x0,0x0,0xfe,0xff,0x3,0x0,0xb,0x0,0xfb,0xff, +0xf3,0xff,0xff,0xff,0xfb,0xff,0xed,0xff,0xee,0xff,0xf1,0xff, +0xf1,0xff,0xf6,0xff,0xfc,0xff,0x2,0x0,0x9,0x0,0xb,0x0, +0xf,0x0,0x18,0x0,0x14,0x0,0xc,0x0,0x10,0x0,0x17,0x0, +0xe,0x0,0x4,0x0,0x6,0x0,0x5,0x0,0xf9,0xff,0xf7,0xff, +0xfe,0xff,0x1,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x8,0x0, +0x6,0x0,0xfe,0xff,0x2,0x0,0x1,0x0,0xf0,0xff,0xf1,0xff, +0x1,0x0,0xf4,0xff,0xe3,0xff,0xec,0xff,0xf0,0xff,0xe8,0xff, +0xef,0xff,0xf3,0xff,0xe7,0xff,0xea,0xff,0xf8,0xff,0xf5,0xff, +0xea,0xff,0xef,0xff,0xf5,0xff,0xf0,0xff,0xf2,0xff,0xfb,0xff, +0xfd,0xff,0xfa,0xff,0x1,0x0,0x8,0x0,0x3,0x0,0xff,0xff, +0x2,0x0,0x9,0x0,0xe,0x0,0xa,0x0,0xfb,0xff,0xf1,0xff, +0xf2,0xff,0xf3,0xff,0xee,0xff,0xe9,0xff,0xed,0xff,0xf7,0xff, +0xfe,0xff,0x1,0x0,0x4,0x0,0x3,0x0,0xfc,0xff,0xf5,0xff, +0xf5,0xff,0xf4,0xff,0xea,0xff,0xe0,0xff,0xe0,0xff,0xe2,0xff, +0xe3,0xff,0xe4,0xff,0xe3,0xff,0xe8,0xff,0xf5,0xff,0xf7,0xff, +0xf7,0xff,0x4,0x0,0x8,0x0,0xff,0xff,0x3,0x0,0x0,0x0, +0xe8,0xff,0xea,0xff,0xff,0xff,0xf8,0xff,0xe7,0xff,0xf2,0xff, +0xfd,0xff,0xf8,0xff,0xf5,0xff,0xfd,0xff,0x5,0x0,0xa,0x0, +0xf,0x0,0x14,0x0,0x14,0x0,0x11,0x0,0xd,0x0,0x9,0x0, +0x7,0x0,0x7,0x0,0xfe,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff, +0xf4,0xff,0xf3,0xff,0xf3,0xff,0xec,0xff,0xe8,0xff,0xe5,0xff, +0xe8,0xff,0xf8,0xff,0xf7,0xff,0xe3,0xff,0xe5,0xff,0xf2,0xff, +0xf0,0xff,0xfb,0xff,0xf,0x0,0xa,0x0,0xfe,0xff,0x3,0x0, +0x3,0x0,0xf8,0xff,0xed,0xff,0xe5,0xff,0xe9,0xff,0xf5,0xff, +0xf2,0xff,0xe9,0xff,0xf4,0xff,0x6,0x0,0xb,0x0,0x8,0x0, +0x5,0x0,0x1,0x0,0xfb,0xff,0xf8,0xff,0xf7,0xff,0xf1,0xff, +0xe7,0xff,0xe8,0xff,0xec,0xff,0xed,0xff,0xf1,0xff,0xf2,0xff, +0xe6,0xff,0xe5,0xff,0xf5,0xff,0xf9,0xff,0xf0,0xff,0xee,0xff, +0xf0,0xff,0xed,0xff,0xe8,0xff,0xe8,0xff,0xed,0xff,0xee,0xff, +0xe6,0xff,0xe8,0xff,0xf0,0xff,0xe8,0xff,0xde,0xff,0xe7,0xff, +0xe8,0xff,0xe3,0xff,0xee,0xff,0xf2,0xff,0xe5,0xff,0xec,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xf5,0xff,0xf7,0xff, +0xff,0xff,0xf7,0xff,0xf7,0xff,0x5,0x0,0x2,0x0,0xf8,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xf6,0xff,0xec,0xff, +0xf1,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff, +0xf1,0xff,0xee,0xff,0xfd,0xff,0x8,0x0,0xfa,0xff,0xf2,0xff, +0xfc,0xff,0xfc,0xff,0xf5,0xff,0xf0,0xff,0xe7,0xff,0xe3,0xff, +0xe2,0xff,0xdc,0xff,0xe4,0xff,0xf7,0xff,0xf6,0xff,0xf0,0xff, +0xf4,0xff,0xf0,0xff,0xf2,0xff,0xff,0xff,0xfc,0xff,0xf0,0xff, +0xee,0xff,0xe7,0xff,0xe1,0xff,0xe7,0xff,0xec,0xff,0xf4,0xff, +0x5,0x0,0x8,0x0,0xf9,0xff,0xf6,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x3,0x0,0x4,0x0,0x0,0x0,0x2,0x0,0x6,0x0, +0x1,0x0,0x2,0x0,0xb,0x0,0x9,0x0,0xb,0x0,0x17,0x0, +0xf,0x0,0x2,0x0,0xf,0x0,0x15,0x0,0xa,0x0,0x13,0x0, +0x1f,0x0,0x17,0x0,0x15,0x0,0x15,0x0,0x9,0x0,0x7,0x0, +0x10,0x0,0x11,0x0,0xd,0x0,0x9,0x0,0x9,0x0,0xf,0x0, +0x11,0x0,0xb,0x0,0x11,0x0,0x15,0x0,0x10,0x0,0xf,0x0, +0x10,0x0,0x11,0x0,0x14,0x0,0x9,0x0,0xfb,0xff,0xff,0xff, +0x5,0x0,0x7,0x0,0xe,0x0,0xc,0x0,0x8,0x0,0x14,0x0, +0x13,0x0,0x6,0x0,0xc,0x0,0x10,0x0,0x9,0x0,0x10,0x0, +0x14,0x0,0x7,0x0,0x2,0x0,0xfb,0xff,0xed,0xff,0xf4,0xff, +0x4,0x0,0x1,0x0,0x0,0x0,0xa,0x0,0xa,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x7,0x0,0x8,0x0,0x5,0x0,0x1,0x0, +0xfb,0xff,0xff,0xff,0xb,0x0,0x9,0x0,0x0,0x0,0xff,0xff, +0x2,0x0,0x5,0x0,0xa,0x0,0x7,0x0,0xfd,0xff,0xf7,0xff, +0xfb,0xff,0x2,0x0,0x2,0x0,0x0,0x0,0x5,0x0,0x2,0x0, +0xf6,0xff,0xff,0xff,0x10,0x0,0xb,0x0,0x7,0x0,0xf,0x0, +0xa,0x0,0x5,0x0,0x10,0x0,0x14,0x0,0xf,0x0,0xa,0x0, +0xfe,0xff,0xf5,0xff,0xfd,0xff,0x3,0x0,0x1,0x0,0x1,0x0, +0x4,0x0,0x7,0x0,0x5,0x0,0xff,0xff,0x0,0x0,0x3,0x0, +0xfe,0xff,0x4,0x0,0xe,0x0,0x9,0x0,0x8,0x0,0x16,0x0, +0x17,0x0,0x12,0x0,0x16,0x0,0x14,0x0,0xd,0x0,0x12,0x0, +0x16,0x0,0xe,0x0,0x1,0x0,0xfc,0xff,0x3,0x0,0xa,0x0, +0x5,0x0,0x5,0x0,0xe,0x0,0xf,0x0,0xf,0x0,0x17,0x0, +0x12,0x0,0x9,0x0,0x13,0x0,0x18,0x0,0xd,0x0,0xc,0x0, +0x14,0x0,0x15,0x0,0x14,0x0,0xf,0x0,0x2,0x0,0x7,0x0, +0x1d,0x0,0x1e,0x0,0x11,0x0,0xf,0x0,0xa,0x0,0xfe,0xff, +0xfd,0xff,0x1,0x0,0xff,0xff,0x1,0x0,0x7,0x0,0x9,0x0, +0x8,0x0,0x7,0x0,0xa,0x0,0x13,0x0,0x15,0x0,0x12,0x0, +0x16,0x0,0x16,0x0,0xd,0x0,0xb,0x0,0x10,0x0,0x12,0x0, +0x12,0x0,0x10,0x0,0x12,0x0,0x1d,0x0,0x24,0x0,0x23,0x0, +0x24,0x0,0x20,0x0,0x1b,0x0,0x1a,0x0,0x13,0x0,0xf,0x0, +0x1c,0x0,0x20,0x0,0x14,0x0,0x18,0x0,0x20,0x0,0x1b,0x0, +0x18,0x0,0x14,0x0,0xb,0x0,0x14,0x0,0x22,0x0,0x1d,0x0, +0x1b,0x0,0x24,0x0,0x24,0x0,0x1b,0x0,0x18,0x0,0x1e,0x0, +0x24,0x0,0x1b,0x0,0xf,0x0,0x12,0x0,0x13,0x0,0x9,0x0, +0x7,0x0,0xb,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x5,0x0,0xa,0x0,0x1,0x0,0x1,0x0,0xe,0x0,0xe,0x0, +0x8,0x0,0xe,0x0,0x14,0x0,0x13,0x0,0x10,0x0,0x8,0x0, +0xfb,0xff,0xf4,0xff,0xfc,0xff,0x9,0x0,0xc,0x0,0x9,0x0, +0xe,0x0,0x11,0x0,0x5,0x0,0xfa,0xff,0xfd,0xff,0xfc,0xff, +0xf4,0xff,0xf0,0xff,0xee,0xff,0xf0,0xff,0xf8,0xff,0xf9,0xff, +0xf8,0xff,0x2,0x0,0x5,0x0,0xfd,0xff,0xfa,0xff,0xf6,0xff, +0xf4,0xff,0xfb,0xff,0xfd,0xff,0xf9,0xff,0x0,0x0,0x0,0x0, +0xf5,0xff,0xf8,0xff,0xfa,0xff,0xf0,0xff,0xf8,0xff,0x4,0x0, +0xfb,0xff,0xfa,0xff,0xa,0x0,0x5,0x0,0xf4,0xff,0xf4,0xff, +0xfc,0xff,0xff,0xff,0xfa,0xff,0xf0,0xff,0xf3,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0x1,0x0,0xfa,0xff,0xf8,0xff,0x2,0x0, +0x2,0x0,0xfc,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0,0xfe,0xff, +0xf6,0xff,0xf7,0xff,0xf9,0xff,0xf1,0xff,0xf6,0xff,0x8,0x0, +0x8,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xf5,0xff,0xfb,0xff,0xd,0x0,0x5,0x0,0xfa,0xff,0x5,0x0, +0x1,0x0,0xef,0xff,0xfa,0xff,0x6,0x0,0xf6,0xff,0xee,0xff, +0xfa,0xff,0xfc,0xff,0xf9,0xff,0x0,0x0,0x0,0x0,0xf8,0xff, +0xfa,0xff,0x1,0x0,0x1,0x0,0xfe,0xff,0x3,0x0,0x8,0x0, +0x6,0x0,0x0,0x0,0xf5,0xff,0xec,0xff,0xf2,0xff,0xfb,0xff, +0xf7,0xff,0xf3,0xff,0xf9,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff, +0x5,0x0,0x9,0x0,0x5,0x0,0x4,0x0,0x7,0x0,0xfc,0xff, +0xf0,0xff,0xf7,0xff,0x3,0x0,0x5,0x0,0x0,0x0,0xf9,0xff, +0xf8,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0x1,0x0,0x5,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xf1,0xff,0xee,0xff,0xf8,0xff,0xfb,0xff, +0xfc,0xff,0x2,0x0,0x2,0x0,0x2,0x0,0xb,0x0,0xb,0x0, +0x1,0x0,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xf6,0xff,0xee,0xff, +0xf2,0xff,0xf9,0xff,0xf5,0xff,0xef,0xff,0xf0,0xff,0xf4,0xff, +0xfb,0xff,0xff,0xff,0x3,0x0,0xe,0x0,0x13,0x0,0xb,0x0, +0x7,0x0,0x4,0x0,0x4,0x0,0xa,0x0,0x2,0x0,0xf5,0xff, +0xfd,0xff,0x0,0x0,0xf6,0xff,0xfb,0xff,0xf9,0xff,0xe8,0xff, +0xef,0xff,0xfd,0xff,0xf6,0xff,0xfa,0xff,0xb,0x0,0xf,0x0, +0xb,0x0,0x0,0x0,0xf5,0xff,0xfa,0xff,0xf8,0xff,0xed,0xff, +0xfb,0xff,0x5,0x0,0xf7,0xff,0xf5,0xff,0xfb,0xff,0xf1,0xff, +0xed,0xff,0xf0,0xff,0xf1,0xff,0xfc,0xff,0x0,0x0,0xf6,0xff, +0xfd,0xff,0x7,0x0,0xfe,0xff,0xf9,0xff,0xfb,0xff,0xf3,0xff, +0xf3,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfc,0xff, +0x3,0x0,0x3,0x0,0xf6,0xff,0xfc,0xff,0x6,0x0,0xfe,0xff, +0xfd,0xff,0x3,0x0,0xf8,0xff,0xf3,0xff,0xf8,0xff,0xef,0xff, +0xec,0xff,0xfa,0xff,0xf7,0xff,0xed,0xff,0xf8,0xff,0x3,0x0, +0x0,0x0,0x1,0x0,0x3,0x0,0xfe,0xff,0xff,0xff,0x2,0x0, +0xff,0xff,0xff,0xff,0x9,0x0,0x7,0x0,0xf6,0xff,0xf3,0xff, +0x2,0x0,0x6,0x0,0xf8,0xff,0xf6,0xff,0x2,0x0,0x9,0x0, +0x11,0x0,0x1b,0x0,0x11,0x0,0x0,0x0,0xfb,0xff,0xf2,0xff, +0xed,0xff,0xfd,0xff,0x6,0x0,0xf9,0xff,0xf6,0xff,0x2,0x0, +0x6,0x0,0x8,0x0,0x9,0x0,0x3,0x0,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfe,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xf2,0xff,0xef,0xff,0xfa,0xff,0x1,0x0,0xff,0xff,0x3,0x0, +0x8,0x0,0x9,0x0,0x3,0x0,0xfb,0xff,0xfa,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff,0x2,0x0, +0x0,0x0,0xf6,0xff,0xf1,0xff,0xf1,0xff,0xf4,0xff,0xf5,0xff, +0xf0,0xff,0xf5,0xff,0x3,0x0,0x1,0x0,0xf6,0xff,0xf7,0xff, +0xfb,0xff,0xfb,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff, +0xed,0xff,0xdf,0xff,0xeb,0xff,0xf9,0xff,0xf8,0xff,0xfc,0xff, +0xfe,0xff,0xf0,0xff,0xe7,0xff,0xe8,0xff,0xed,0xff,0xf5,0xff, +0xf4,0xff,0xee,0xff,0xf0,0xff,0xf3,0xff,0xf7,0xff,0xff,0xff, +0xf8,0xff,0xef,0xff,0xf4,0xff,0xf7,0xff,0xf1,0xff,0xf3,0xff, +0xf8,0xff,0x0,0x0,0xa,0x0,0x2,0x0,0xf6,0xff,0xff,0xff, +0x0,0x0,0xf3,0xff,0xf2,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff, +0xef,0xff,0xe9,0xff,0xf6,0xff,0xfb,0xff,0xec,0xff,0xeb,0xff, +0xf9,0xff,0x0,0x0,0xfe,0xff,0xf9,0xff,0xfb,0xff,0x3,0x0, +0x0,0x0,0xf8,0xff,0xfc,0xff,0x2,0x0,0x0,0x0,0xfd,0xff, +0xfe,0xff,0xfb,0xff,0xf4,0xff,0xf1,0xff,0xf8,0xff,0x1,0x0, +0x7,0x0,0xb,0x0,0x9,0x0,0xfd,0xff,0xf4,0xff,0xfc,0xff, +0x1,0x0,0xf7,0xff,0xef,0xff,0xf9,0xff,0x5,0x0,0x3,0x0, +0xfe,0xff,0x3,0x0,0x4,0x0,0xf9,0xff,0xf2,0xff,0xf5,0xff, +0xfa,0xff,0xfc,0xff,0xfa,0xff,0xf5,0xff,0xf5,0xff,0x1,0x0, +0xc,0x0,0x7,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff, +0xfc,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xf2,0xff,0xf1,0xff,0xfe,0xff,0x0,0x0,0xf8,0xff,0xfd,0xff, +0xff,0xff,0xf6,0xff,0xfd,0xff,0x9,0x0,0x2,0x0,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0x1,0x0,0xfd,0xff,0xec,0xff,0xec,0xff, +0xf4,0xff,0xf1,0xff,0xf9,0xff,0x1,0x0,0xfb,0xff,0x6,0x0, +0x12,0x0,0x4,0x0,0x2,0x0,0xc,0x0,0x2,0x0,0xfd,0xff, +0x7,0x0,0x6,0x0,0x8,0x0,0xb,0x0,0x2,0x0,0x4,0x0, +0x11,0x0,0xb,0x0,0x9,0x0,0xe,0x0,0x2,0x0,0xfb,0xff, +0x6,0x0,0x8,0x0,0x4,0x0,0xa,0x0,0x7,0x0,0xf7,0xff, +0xea,0xff,0xee,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff,0x0,0x0, +0xfd,0xff,0xf5,0xff,0xf9,0xff,0xf8,0xff,0xf3,0xff,0xfd,0xff, +0x0,0x0,0xf5,0xff,0xfd,0xff,0xa,0x0,0xfb,0xff,0xeb,0xff, +0xf0,0xff,0xf6,0xff,0xf5,0xff,0xfa,0xff,0xff,0xff,0xfd,0xff, +0xfb,0xff,0xfd,0xff,0xfb,0xff,0xf6,0xff,0xf6,0xff,0xf3,0xff, +0xee,0xff,0xf7,0xff,0x1,0x0,0xf6,0xff,0xec,0xff,0xf7,0xff, +0xff,0xff,0x0,0x0,0x5,0x0,0x1,0x0,0xfa,0xff,0xff,0xff, +0x1,0x0,0xfc,0xff,0x0,0x0,0xfe,0xff,0xf7,0xff,0x1,0x0, +0xc,0x0,0x5,0x0,0xff,0xff,0xfd,0xff,0xf9,0xff,0xff,0xff, +0x6,0x0,0xfe,0xff,0xfc,0xff,0x0,0x0,0xfc,0xff,0x4,0x0, +0x14,0x0,0xc,0x0,0x2,0x0,0xb,0x0,0xe,0x0,0x8,0x0, +0xd,0x0,0x11,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x3,0x0, +0x6,0x0,0x4,0x0,0x6,0x0,0x10,0x0,0xf,0x0,0x9,0x0, +0xc,0x0,0x13,0x0,0x12,0x0,0x4,0x0,0xf8,0xff,0x7,0x0, +0x16,0x0,0x9,0x0,0x0,0x0,0xe,0x0,0x17,0x0,0x12,0x0, +0xd,0x0,0xd,0x0,0x12,0x0,0x12,0x0,0x8,0x0,0x9,0x0, +0x13,0x0,0x15,0x0,0x15,0x0,0x19,0x0,0x13,0x0,0xa,0x0, +0x9,0x0,0x7,0x0,0x9,0x0,0x13,0x0,0x18,0x0,0x9,0x0, +0xfd,0xff,0x5,0x0,0x13,0x0,0x11,0x0,0xb,0x0,0xc,0x0, +0xf,0x0,0x15,0x0,0x1a,0x0,0x10,0x0,0x1,0x0,0x2,0x0, +0xd,0x0,0xe,0x0,0xb,0x0,0xf,0x0,0x16,0x0,0x10,0x0, +0x8,0x0,0xd,0x0,0xf,0x0,0x8,0x0,0xd,0x0,0x12,0x0, +0x9,0x0,0x8,0x0,0x12,0x0,0x13,0x0,0xe,0x0,0xb,0x0, +0xb,0x0,0x11,0x0,0x16,0x0,0x16,0x0,0x18,0x0,0x14,0x0, +0x10,0x0,0x15,0x0,0x14,0x0,0xd,0x0,0x13,0x0,0x19,0x0, +0x10,0x0,0x6,0x0,0x6,0x0,0xb,0x0,0xe,0x0,0x9,0x0, +0x9,0x0,0xf,0x0,0xa,0x0,0x5,0x0,0xd,0x0,0xb,0x0, +0x7,0x0,0x12,0x0,0x16,0x0,0xb,0x0,0x5,0x0,0x6,0x0, +0x6,0x0,0xa,0x0,0xb,0x0,0x2,0x0,0xff,0xff,0x8,0x0, +0xd,0x0,0x8,0x0,0x3,0x0,0x8,0x0,0x9,0x0,0x5,0x0, +0x8,0x0,0xb,0x0,0x2,0x0,0xf6,0xff,0xf7,0xff,0x2,0x0, +0xa,0x0,0x9,0x0,0xb,0x0,0x12,0x0,0xf,0x0,0x6,0x0, +0x8,0x0,0x3,0x0,0xfa,0xff,0xff,0xff,0x3,0x0,0xf7,0xff, +0xf9,0xff,0x7,0x0,0x1,0x0,0xf8,0xff,0x3,0x0,0x9,0x0, +0x1,0x0,0x5,0x0,0xe,0x0,0x7,0x0,0x1,0x0,0x2,0x0, +0xf8,0xff,0xf4,0xff,0x7,0x0,0x13,0x0,0x8,0x0,0xff,0xff, +0x4,0x0,0x8,0x0,0x5,0x0,0x4,0x0,0x8,0x0,0x9,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0xf8,0xff,0xf5,0xff,0xf8,0xff, +0xf9,0xff,0x3,0x0,0x10,0x0,0x7,0x0,0x0,0x0,0xe,0x0, +0x13,0x0,0x9,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x3,0x0, +0x0,0x0,0xfa,0xff,0xfa,0xff,0xfe,0xff,0x2,0x0,0x9,0x0, +0xa,0x0,0x7,0x0,0x9,0x0,0x8,0x0,0x3,0x0,0x5,0x0, +0xd,0x0,0xc,0x0,0x2,0x0,0x7,0x0,0x13,0x0,0x9,0x0, +0xfa,0xff,0xfe,0xff,0x3,0x0,0xfe,0xff,0xff,0xff,0x5,0x0, +0x2,0x0,0xff,0xff,0x8,0x0,0x17,0x0,0x16,0x0,0x7,0x0, +0x7,0x0,0xa,0x0,0x1,0x0,0x1,0x0,0x7,0x0,0x1,0x0, +0xfe,0xff,0x3,0x0,0x1,0x0,0x6,0x0,0xd,0x0,0x3,0x0, +0xfd,0xff,0x0,0x0,0xf8,0xff,0xf4,0xff,0xfc,0xff,0xff,0xff, +0x3,0x0,0x5,0x0,0xfb,0xff,0x1,0x0,0x11,0x0,0x5,0x0, +0xfa,0xff,0x9,0x0,0xe,0x0,0x7,0x0,0xb,0x0,0x9,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xf7,0xff,0xf5,0xff,0xfa,0xff, +0x0,0x0,0x5,0x0,0x1,0x0,0xf7,0xff,0xf8,0xff,0x3,0x0, +0x3,0x0,0xf7,0xff,0xf5,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0x0,0x0,0xfc,0xff,0xf5,0xff,0xfa,0xff,0xfc,0xff,0xf5,0xff, +0xf7,0xff,0xf6,0xff,0xec,0xff,0xf1,0xff,0xf9,0xff,0xe9,0xff, +0xe5,0xff,0xfd,0xff,0x3,0x0,0xf3,0xff,0xf6,0xff,0x1,0x0, +0x2,0x0,0x4,0x0,0x4,0x0,0xfc,0xff,0xfe,0xff,0x4,0x0, +0xff,0xff,0xfd,0xff,0x0,0x0,0xfd,0xff,0xfd,0xff,0x4,0x0, +0x2,0x0,0xfb,0xff,0xfd,0xff,0x4,0x0,0x1,0x0,0xf6,0xff, +0xf5,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xff,0xff,0xf7,0xff, +0xf1,0xff,0xf7,0xff,0xef,0xff,0xe6,0xff,0xf2,0xff,0xf7,0xff, +0xf1,0xff,0xf8,0xff,0xf5,0xff,0xe9,0xff,0xf2,0xff,0xfe,0xff, +0xf9,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xff,0xff,0xfb,0xff, +0xf2,0xff,0xf5,0xff,0xf4,0xff,0xf0,0xff,0xf9,0xff,0xff,0xff, +0xfa,0xff,0xfb,0xff,0xf9,0xff,0xf2,0xff,0xf5,0xff,0xf7,0xff, +0xf8,0xff,0x1,0x0,0x3,0x0,0xfb,0xff,0xfc,0xff,0x0,0x0, +0xfc,0xff,0xf6,0xff,0xf7,0xff,0x0,0x0,0x3,0x0,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xf7,0xff,0xf8,0xff,0x2,0x0,0x0,0x0, +0xfe,0xff,0x8,0x0,0x4,0x0,0xf4,0xff,0xf0,0xff,0xf8,0xff, +0xff,0xff,0xfe,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf2,0xff, +0xf2,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xff,0xff,0xfd,0xff, +0xf4,0xff,0xfa,0xff,0x4,0x0,0xfc,0xff,0xf4,0xff,0xf6,0xff, +0xf4,0xff,0xf2,0xff,0xfa,0xff,0xfb,0xff,0xf2,0xff,0xf4,0xff, +0xf8,0xff,0xf1,0xff,0xf7,0xff,0x6,0x0,0x1,0x0,0xfa,0xff, +0x5,0x0,0xc,0x0,0x8,0x0,0x5,0x0,0x0,0x0,0xfa,0xff, +0xf9,0xff,0xf6,0xff,0xf1,0xff,0xf6,0xff,0xf9,0xff,0xed,0xff, +0xe5,0xff,0xe8,0xff,0xec,0xff,0xfa,0xff,0xa,0x0,0x2,0x0, +0xf3,0xff,0xfa,0xff,0x0,0x0,0xf7,0xff,0xf6,0xff,0xf9,0xff, +0xf2,0xff,0xec,0xff,0xee,0xff,0xed,0xff,0xeb,0xff,0xee,0xff, +0xf5,0xff,0xf7,0xff,0xf4,0xff,0xf7,0xff,0xfb,0xff,0xf1,0xff, +0xed,0xff,0xf7,0xff,0xf5,0xff,0xee,0xff,0xf5,0xff,0xf7,0xff, +0xf2,0xff,0xf2,0xff,0xef,0xff,0xf1,0xff,0xfa,0xff,0xf5,0xff, +0xf1,0xff,0xf4,0xff,0xe9,0xff,0xe5,0xff,0xf6,0xff,0xf5,0xff, +0xeb,0xff,0xf8,0xff,0xf8,0xff,0xe9,0xff,0xec,0xff,0xf2,0xff, +0xed,0xff,0xf2,0xff,0xf3,0xff,0xe5,0xff,0xe7,0xff,0xf8,0xff, +0xfc,0xff,0xf7,0xff,0xf7,0xff,0xfa,0xff,0xf5,0xff,0xf1,0xff, +0xf8,0xff,0xfe,0xff,0xfb,0xff,0xf7,0xff,0xf2,0xff,0xea,0xff, +0xed,0xff,0xf7,0xff,0xff,0xff,0x7,0x0,0x9,0x0,0x3,0x0, +0x5,0x0,0x8,0x0,0xff,0xff,0xf9,0xff,0xf8,0xff,0xf3,0xff, +0xf6,0xff,0x3,0x0,0x4,0x0,0x0,0x0,0x2,0x0,0x1,0x0, +0xfc,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfa,0xff,0xf7,0xff, +0xf9,0xff,0xfd,0xff,0x1,0x0,0x1,0x0,0xfa,0xff,0xf6,0xff, +0x2,0x0,0x8,0x0,0xf8,0xff,0xef,0xff,0xfb,0xff,0x2,0x0, +0xfc,0xff,0xfe,0xff,0x2,0x0,0xfd,0xff,0xfc,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0xfb,0xff,0xec,0xff,0xed,0xff,0xfb,0xff, +0xfc,0xff,0xf9,0xff,0xfb,0xff,0xf5,0xff,0xf4,0xff,0xfb,0xff, +0xf7,0xff,0xed,0xff,0xef,0xff,0xf6,0xff,0xf9,0xff,0xf9,0xff, +0xf7,0xff,0xf4,0xff,0xf3,0xff,0xf8,0xff,0x0,0x0,0xfa,0xff, +0xeb,0xff,0xf3,0xff,0x4,0x0,0x1,0x0,0xfd,0xff,0x3,0x0, +0x1,0x0,0x0,0x0,0x7,0x0,0x7,0x0,0x8,0x0,0x13,0x0, +0x15,0x0,0xb,0x0,0x2,0x0,0xfe,0xff,0x4,0x0,0x12,0x0, +0x14,0x0,0xb,0x0,0x8,0x0,0xc,0x0,0xa,0x0,0x5,0x0, +0x4,0x0,0x1,0x0,0x0,0x0,0x7,0x0,0xf,0x0,0xd,0x0, +0x5,0x0,0xfd,0xff,0xfe,0xff,0x8,0x0,0x8,0x0,0xfd,0xff, +0xfe,0xff,0x6,0x0,0x3,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xfd,0xff,0xf5,0xff,0xf0,0xff,0xfa,0xff,0x3,0x0,0xfc,0xff, +0xf7,0xff,0xfc,0xff,0xfd,0xff,0xfa,0xff,0xf6,0xff,0xf5,0xff, +0xf8,0xff,0xfd,0xff,0x8,0x0,0xd,0x0,0x2,0x0,0xfa,0xff, +0xfe,0xff,0xfa,0xff,0xf7,0xff,0x1,0x0,0x3,0x0,0x2,0x0, +0xb,0x0,0xa,0x0,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xf6,0xff,0xf0,0xff, +0xf8,0xff,0xfa,0xff,0xf2,0xff,0xf9,0xff,0x2,0x0,0xfc,0xff, +0xf4,0xff,0xf6,0xff,0xfa,0xff,0xfb,0xff,0x2,0x0,0x6,0x0, +0xfb,0xff,0xee,0xff,0xf4,0xff,0x2,0x0,0x3,0x0,0xfc,0xff, +0xfd,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff,0x1,0x0,0x5,0x0, +0x0,0x0,0xff,0xff,0x5,0x0,0x7,0x0,0x9,0x0,0x8,0x0, +0xff,0xff,0xfd,0xff,0x5,0x0,0x4,0x0,0x0,0x0,0x7,0x0, +0xa,0x0,0x3,0x0,0x0,0x0,0x5,0x0,0xc,0x0,0xc,0x0, +0x3,0x0,0xfe,0xff,0x3,0x0,0x0,0x0,0xf9,0xff,0x0,0x0, +0x6,0x0,0xfe,0xff,0xf7,0xff,0xff,0xff,0x3,0x0,0x0,0x0, +0x5,0x0,0x5,0x0,0xfa,0xff,0xfa,0xff,0x7,0x0,0x7,0x0, +0x0,0x0,0x5,0x0,0x9,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x0,0x0,0xfe,0xff,0x5,0x0,0xb,0x0,0x9,0x0,0xb,0x0, +0xe,0x0,0x6,0x0,0xfd,0xff,0x1,0x0,0x6,0x0,0x6,0x0, +0xc,0x0,0x8,0x0,0xfc,0xff,0xff,0xff,0x7,0x0,0x4,0x0, +0x9,0x0,0x11,0x0,0x8,0x0,0xfd,0xff,0xfd,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xf9,0xff,0xf8,0xff,0x0,0x0,0x1,0x0, +0xfc,0xff,0x0,0x0,0x7,0x0,0x5,0x0,0x3,0x0,0x2,0x0, +0xfd,0xff,0x2,0x0,0x11,0x0,0x10,0x0,0xb,0x0,0x11,0x0, +0xf,0x0,0x7,0x0,0x13,0x0,0x1a,0x0,0xd,0x0,0xd,0x0, +0x11,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x7,0x0,0x1,0x0, +0x6,0x0,0x4,0x0,0x3,0x0,0x8,0x0,0x7,0x0,0x6,0x0, +0x4,0x0,0x0,0x0,0x4,0x0,0x3,0x0,0xfe,0xff,0x6,0x0, +0xc,0x0,0x2,0x0,0x0,0x0,0x7,0x0,0x7,0x0,0x9,0x0, +0xb,0x0,0x5,0x0,0x6,0x0,0xd,0x0,0xb,0x0,0x6,0x0, +0x1,0x0,0xff,0xff,0x5,0x0,0x8,0x0,0xfe,0xff,0x0,0x0, +0xb,0x0,0x4,0x0,0xf6,0xff,0xf8,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x5,0x0,0x8,0x0,0x5,0x0,0xff,0xff,0xfc,0xff, +0xfc,0xff,0xff,0xff,0x6,0x0,0x8,0x0,0x3,0x0,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xff,0xff,0x2,0x0, +0x6,0x0,0x7,0x0,0x3,0x0,0x3,0x0,0x5,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfa,0xff,0xfd,0xff,0x9,0x0,0xd,0x0, +0x6,0x0,0x2,0x0,0x5,0x0,0x8,0x0,0x8,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x2,0x0,0x3,0x0,0x9,0x0, +0x7,0x0,0x1,0x0,0x5,0x0,0xa,0x0,0x3,0x0,0xfb,0xff, +0xf4,0xff,0xed,0xff,0xf2,0xff,0xfe,0xff,0x1,0x0,0x5,0x0, +0x9,0x0,0x1,0x0,0xfe,0xff,0x3,0x0,0xfd,0xff,0xf9,0xff, +0x2,0x0,0x3,0x0,0xff,0xff,0x2,0x0,0x0,0x0,0xf9,0xff, +0xf9,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0x4,0x0,0xd,0x0, +0x9,0x0,0x1,0x0,0xa,0x0,0x12,0x0,0xb,0x0,0xb,0x0, +0x10,0x0,0xa,0x0,0x4,0x0,0x6,0x0,0x4,0x0,0x3,0x0, +0x9,0x0,0xe,0x0,0xf,0x0,0xd,0x0,0xb,0x0,0xb,0x0, +0x8,0x0,0x7,0x0,0xd,0x0,0xc,0x0,0x2,0x0,0x0,0x0, +0x4,0x0,0x3,0x0,0x1,0x0,0x6,0x0,0x11,0x0,0xf,0x0, +0x2,0x0,0x3,0x0,0xe,0x0,0x3,0x0,0xf8,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xc,0x0,0xb,0x0,0xfb,0xff,0x1,0x0, +0x9,0x0,0xfd,0xff,0xfd,0xff,0x7,0x0,0x1,0x0,0xfd,0xff, +0x3,0x0,0x2,0x0,0xff,0xff,0x5,0x0,0x3,0x0,0xf7,0xff, +0xf7,0xff,0x4,0x0,0xc,0x0,0xa,0x0,0x7,0x0,0x4,0x0, +0x6,0x0,0xc,0x0,0x8,0x0,0xfc,0xff,0xfd,0xff,0x3,0x0, +0xfd,0xff,0xfc,0xff,0x7,0x0,0x5,0x0,0xfc,0xff,0x1,0x0, +0x6,0x0,0x1,0x0,0x2,0x0,0x4,0x0,0xfc,0xff,0xfe,0xff, +0x5,0x0,0xfe,0xff,0xfb,0xff,0x2,0x0,0x1,0x0,0x1,0x0, +0x7,0x0,0x1,0x0,0xfb,0xff,0x2,0x0,0x8,0x0,0x7,0x0, +0x5,0x0,0x1,0x0,0x4,0x0,0xa,0x0,0x8,0x0,0xb,0x0, +0x12,0x0,0xe,0x0,0xa,0x0,0xd,0x0,0xb,0x0,0xe,0x0, +0x13,0x0,0xb,0x0,0x4,0x0,0xa,0x0,0xa,0x0,0x9,0x0, +0x10,0x0,0x10,0x0,0x7,0x0,0x3,0x0,0x3,0x0,0x6,0x0, +0x6,0x0,0xfd,0xff,0xfc,0xff,0x7,0x0,0xa,0x0,0x5,0x0, +0x1,0x0,0x0,0x0,0x6,0x0,0x6,0x0,0xfc,0xff,0xfd,0xff, +0x3,0x0,0xfc,0xff,0xfc,0xff,0xa,0x0,0xb,0x0,0xfd,0xff, +0xf8,0xff,0xfc,0xff,0x1,0x0,0x1,0x0,0xfb,0xff,0xf8,0xff, +0xfd,0xff,0x2,0x0,0x0,0x0,0xfa,0xff,0xf9,0xff,0xfe,0xff, +0x1,0x0,0xfb,0xff,0xf8,0xff,0xfd,0xff,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0xfd,0xff,0xf6,0xff,0xfb,0xff, +0x2,0x0,0xfd,0xff,0xf9,0xff,0xfd,0xff,0xfa,0xff,0xf5,0xff, +0xf6,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xf9,0xff, +0xf8,0xff,0xfb,0xff,0x0,0x0,0x5,0x0,0x2,0x0,0xfc,0xff, +0xfd,0xff,0xfb,0xff,0xf6,0xff,0xfb,0xff,0xfd,0xff,0xf7,0xff, +0xfc,0xff,0x3,0x0,0xf8,0xff,0xf4,0xff,0x0,0x0,0x4,0x0, +0xfe,0xff,0x0,0x0,0x4,0x0,0x1,0x0,0xfc,0xff,0xf8,0xff, +0xf8,0xff,0xfe,0xff,0x3,0x0,0x2,0x0,0x1,0x0,0x7,0x0, +0xb,0x0,0x6,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x1,0x0,0xfc,0xff,0xfa,0xff,0x1,0x0,0x3,0x0,0xfd,0xff, +0xfb,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0x0,0x0,0x5,0x0, +0x5,0x0,0x0,0x0,0xf9,0xff,0xf7,0xff,0xff,0xff,0x7,0x0, +0x2,0x0,0xfa,0xff,0xfe,0xff,0x3,0x0,0xfc,0xff,0xfe,0xff, +0xa,0x0,0x8,0x0,0xfe,0xff,0x2,0x0,0x3,0x0,0xfc,0xff, +0x0,0x0,0x6,0x0,0x4,0x0,0x8,0x0,0x11,0x0,0xc,0x0, +0x4,0x0,0x8,0x0,0x9,0x0,0xff,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0xff,0xff, +0xf8,0xff,0xf1,0xff,0xf4,0xff,0xff,0xff,0x1,0x0,0xf9,0xff, +0xf8,0xff,0xff,0xff,0xfe,0xff,0xf5,0xff,0xf5,0xff,0xfd,0xff, +0x1,0x0,0xfd,0xff,0xf8,0xff,0xfa,0xff,0x1,0x0,0xff,0xff, +0xf9,0xff,0xfa,0xff,0x0,0x0,0x7,0x0,0xb,0x0,0x8,0x0, +0x7,0x0,0x9,0x0,0x7,0x0,0x3,0x0,0x6,0x0,0x9,0x0, +0x9,0x0,0xd,0x0,0xd,0x0,0xb,0x0,0xb,0x0,0x7,0x0, +0x3,0x0,0x8,0x0,0xa,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0xfd,0xff,0xfc,0xff,0x3,0x0,0x5,0x0,0xfe,0xff,0xf8,0xff, +0xfc,0xff,0x2,0x0,0x1,0x0,0xfc,0xff,0xff,0xff,0x4,0x0, +0x3,0x0,0x1,0x0,0xff,0xff,0x1,0x0,0x6,0x0,0x4,0x0, +0xfb,0xff,0xfb,0xff,0x3,0x0,0x4,0x0,0x0,0x0,0x4,0x0, +0x7,0x0,0x4,0x0,0x4,0x0,0x6,0x0,0x3,0x0,0x2,0x0, +0x6,0x0,0x1,0x0,0xff,0xff,0x7,0x0,0x6,0x0,0xfe,0xff, +0x4,0x0,0x9,0x0,0xff,0xff,0x0,0x0,0xb,0x0,0x6,0x0, +0x4,0x0,0x11,0x0,0xd,0x0,0x0,0x0,0x2,0x0,0x4,0x0, +0xfe,0xff,0x4,0x0,0x7,0x0,0x2,0x0,0x9,0x0,0xc,0x0, +0x0,0x0,0x0,0x0,0xb,0x0,0x4,0x0,0xfa,0xff,0xff,0xff, +0x1,0x0,0xfe,0xff,0x1,0x0,0x4,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xf8,0xff,0xf2,0xff,0xf3,0xff,0xf4,0xff,0xf6,0xff,0xfb,0xff, +0xfa,0xff,0xf8,0xff,0xfe,0xff,0x4,0x0,0x3,0x0,0x4,0x0, +0xa,0x0,0xb,0x0,0x0,0x0,0xf5,0xff,0xf8,0xff,0x2,0x0, +0x6,0x0,0x9,0x0,0xc,0x0,0x6,0x0,0x3,0x0,0x6,0x0, +0x1,0x0,0xfa,0xff,0x0,0x0,0x3,0x0,0xfd,0xff,0xfc,0xff, +0x4,0x0,0x3,0x0,0xfa,0xff,0xf4,0xff,0xfa,0xff,0x1,0x0, +0xfe,0xff,0xf5,0xff,0xf1,0xff,0xf3,0xff,0xf8,0xff,0xff,0xff, +0x0,0x0,0xf8,0xff,0xf2,0xff,0xf6,0xff,0xfc,0xff,0xfb,0xff, +0xf8,0xff,0xfa,0xff,0xf8,0xff,0xf3,0xff,0xf8,0xff,0x2,0x0, +0x5,0x0,0x5,0x0,0x7,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0xfc,0xff,0xf8,0xff,0xfc,0xff,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x7,0x0,0x9,0x0,0x8,0x0,0x8,0x0, +0x9,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0x1,0x0,0x5,0x0, +0x9,0x0,0x7,0x0,0x4,0x0,0x3,0x0,0x5,0x0,0x9,0x0, +0xa,0x0,0x9,0x0,0x5,0x0,0xfe,0xff,0xf9,0xff,0xfc,0xff, +0x4,0x0,0x7,0x0,0x3,0x0,0xfa,0xff,0xfb,0xff,0x3,0x0, +0x2,0x0,0x1,0x0,0xa,0x0,0x8,0x0,0xfa,0xff,0xf8,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xf9,0xff,0x1,0x0, +0x7,0x0,0xfc,0xff,0xf7,0xff,0xfe,0xff,0xfd,0xff,0xf7,0xff, +0xfa,0xff,0xfb,0xff,0xf6,0xff,0xf5,0xff,0xf7,0xff,0xf9,0xff, +0xf9,0xff,0xf7,0xff,0xf3,0xff,0xf1,0xff,0xf4,0xff,0xfb,0xff, +0xff,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xf6,0xff,0xf4,0xff, +0xf9,0xff,0xfb,0xff,0xfc,0xff,0x1,0x0,0x0,0x0,0xf9,0xff, +0xf4,0xff,0xf7,0xff,0xff,0xff,0x0,0x0,0xf9,0xff,0xfa,0xff, +0x8,0x0,0xe,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x1,0x0, +0xfe,0xff,0x3,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0xfa,0xff, +0xf6,0xff,0xfc,0xff,0x0,0x0,0xfc,0xff,0xfc,0xff,0x1,0x0, +0xff,0xff,0xfc,0xff,0xfc,0xff,0xf9,0xff,0xf9,0xff,0x0,0x0, +0x0,0x0,0xf9,0xff,0xfb,0xff,0xff,0xff,0xfd,0xff,0x1,0x0, +0x2,0x0,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xf3,0xff,0xf3,0xff, +0x2,0x0,0xfe,0xff,0xf1,0xff,0xf8,0xff,0x0,0x0,0xfb,0xff, +0xfb,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff, +0x1,0x0,0xfe,0xff,0xf9,0xff,0xfe,0xff,0x3,0x0,0x1,0x0, +0x0,0x0,0xfd,0xff,0xf7,0xff,0xf7,0xff,0xfc,0xff,0xfe,0xff, +0x0,0x0,0x4,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfe,0xff,0xff,0xff,0xfd,0xff,0x0,0x0,0x0,0x0,0xfa,0xff, +0xfc,0xff,0x7,0x0,0x8,0x0,0x0,0x0,0xff,0xff,0x2,0x0, +0xff,0xff,0xff,0xff,0x7,0x0,0x6,0x0,0xfd,0xff,0xfc,0xff, +0x2,0x0,0xfd,0xff,0xfb,0xff,0x3,0x0,0x5,0x0,0xff,0xff, +0x5,0x0,0xa,0x0,0x4,0x0,0x4,0x0,0x7,0x0,0xfd,0xff, +0xf3,0xff,0xf4,0xff,0xf6,0xff,0xf9,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0x2,0x0,0x6,0x0,0x6,0x0,0x2,0x0,0xfc,0xff, +0xf9,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x7,0x0,0x9,0x0, +0x3,0x0,0x2,0x0,0x5,0x0,0x6,0x0,0xb,0x0,0x15,0x0, +0x16,0x0,0xe,0x0,0xc,0x0,0xd,0x0,0x7,0x0,0x5,0x0, +0xb,0x0,0xc,0x0,0xa,0x0,0x10,0x0,0x17,0x0,0x16,0x0, +0x12,0x0,0xf,0x0,0x10,0x0,0x11,0x0,0xb,0x0,0x0,0x0, +0x0,0x0,0x4,0x0,0x6,0x0,0xd,0x0,0xf,0x0,0x5,0x0, +0x2,0x0,0x9,0x0,0x8,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x4,0x0,0x7,0x0,0xff,0xff,0xf8,0xff,0xf9,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xff,0xff,0x2,0x0,0xfb,0xff, +0xf7,0xff,0xfe,0xff,0xfc,0xff,0xf7,0xff,0xfc,0xff,0xfe,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf6,0xff,0xfc,0xff,0xff,0xff, +0xf7,0xff,0xf4,0xff,0xf8,0xff,0xf5,0xff,0xf3,0xff,0xf5,0xff, +0xf2,0xff,0xf3,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff,0x2,0x0, +0x6,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x7,0x0,0xc,0x0,0x7,0x0,0x5,0x0,0xc,0x0,0xc,0x0, +0x1,0x0,0xfe,0xff,0x6,0x0,0xb,0x0,0xc,0x0,0xb,0x0, +0x7,0x0,0x2,0x0,0x4,0x0,0xc,0x0,0x10,0x0,0xd,0x0, +0xb,0x0,0xd,0x0,0xe,0x0,0xd,0x0,0xb,0x0,0x8,0x0, +0x6,0x0,0x7,0x0,0x8,0x0,0xc,0x0,0xe,0x0,0x8,0x0, +0x2,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0xfe,0xff, +0xf8,0xff,0xfe,0xff,0x6,0x0,0x6,0x0,0x4,0x0,0x1,0x0, +0xfa,0xff,0xfa,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0x0,0x0,0x6,0x0,0xe,0x0,0xe,0x0, +0x5,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xfb,0xff,0xff,0xff, +0x9,0x0,0xf,0x0,0x6,0x0,0xfd,0xff,0x4,0x0,0x8,0x0, +0x1,0x0,0x3,0x0,0xb,0x0,0x4,0x0,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xf7,0xff,0xf6,0xff,0xfe,0xff, +0xf9,0xff,0xee,0xff,0xf4,0xff,0xfd,0xff,0xf9,0xff,0xf3,0xff, +0xf1,0xff,0xf1,0xff,0xf1,0xff,0xf2,0xff,0xf2,0xff,0xf5,0xff, +0xf7,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff, +0xf1,0xff,0xf3,0xff,0xf8,0xff,0xfc,0xff,0xfc,0xff,0xf6,0xff, +0xef,0xff,0xf2,0xff,0xf5,0xff,0xf1,0xff,0xf2,0xff,0xf8,0xff, +0xf5,0xff,0xf6,0xff,0xfe,0xff,0xfa,0xff,0xf7,0xff,0x5,0x0, +0xa,0x0,0xfd,0xff,0xfa,0xff,0xff,0xff,0xfe,0xff,0x1,0x0, +0x8,0x0,0x4,0x0,0x2,0x0,0x8,0x0,0x7,0x0,0x2,0x0, +0x7,0x0,0xb,0x0,0x2,0x0,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0xfb,0xff,0xf8,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0x1,0x0,0x0,0x0,0xf9,0xff,0x3,0x0,0xe,0x0, +0x4,0x0,0x1,0x0,0x9,0x0,0x3,0x0,0xfe,0xff,0x9,0x0, +0x8,0x0,0xfd,0xff,0x1,0x0,0x6,0x0,0x0,0x0,0x2,0x0, +0x6,0x0,0x2,0x0,0x1,0x0,0x6,0x0,0x3,0x0,0x0,0x0, +0x2,0x0,0x5,0x0,0x6,0x0,0x1,0x0,0xfd,0xff,0x0,0x0, +0x0,0x0,0xfc,0xff,0xfe,0xff,0xff,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xf6,0xff,0xfc,0xff, +0xa,0x0,0x8,0x0,0x0,0x0,0x1,0x0,0x5,0x0,0x3,0x0, +0xfe,0xff,0xf9,0xff,0xfb,0xff,0x4,0x0,0x3,0x0,0xfc,0xff, +0xf9,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xfd,0xff, +0xfb,0xff,0x1,0x0,0x6,0x0,0x3,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfd,0xff, +0xfa,0xff,0xf7,0xff,0xfd,0xff,0x1,0x0,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfa,0xff,0xfe,0xff,0x6,0x0,0xfe,0xff,0xf7,0xff, +0xfc,0xff,0xfd,0xff,0xf9,0xff,0xff,0xff,0x4,0x0,0xff,0xff, +0xfc,0xff,0xfc,0xff,0x2,0x0,0xb,0x0,0xc,0x0,0x2,0x0, +0xfd,0xff,0x4,0x0,0x6,0x0,0x0,0x0,0xfc,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x8,0x0,0xf,0x0, +0xb,0x0,0xfd,0xff,0xfa,0xff,0x1,0x0,0x2,0x0,0x3,0x0, +0x5,0x0,0x1,0x0,0xfd,0xff,0xfd,0xff,0xfd,0xff,0x1,0x0, +0x9,0x0,0x8,0x0,0x0,0x0,0xfd,0xff,0x1,0x0,0x3,0x0, +0x0,0x0,0xfc,0xff,0x0,0x0,0x4,0x0,0xfd,0xff,0xfb,0xff, +0x2,0x0,0xfe,0xff,0xfa,0xff,0x5,0x0,0x8,0x0,0xfd,0xff, +0xfa,0xff,0xfd,0xff,0xfc,0xff,0x2,0x0,0x7,0x0,0x1,0x0, +0x2,0x0,0x7,0x0,0x1,0x0,0xfc,0xff,0x2,0x0,0x3,0x0, +0xfd,0xff,0xfd,0xff,0x1,0x0,0x4,0x0,0x5,0x0,0x1,0x0, +0xfe,0xff,0x1,0x0,0x5,0x0,0x3,0x0,0xfe,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0xfd,0xff,0xff,0xff,0x3,0x0,0x3,0x0,0x0,0x0,0x1,0x0, +0x4,0x0,0x5,0x0,0x8,0x0,0xa,0x0,0x7,0x0,0x7,0x0, +0xc,0x0,0xb,0x0,0x4,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x5,0x0,0x5,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x4,0x0,0x6,0x0,0x0,0x0,0xff,0xff,0x4,0x0,0x4,0x0, +0x2,0x0,0x6,0x0,0x8,0x0,0x4,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x3,0x0,0x5,0x0,0x5,0x0,0xfe,0xff,0xfa,0xff, +0xff,0xff,0x1,0x0,0xff,0xff,0x3,0x0,0x5,0x0,0x1,0x0, +0x3,0x0,0x8,0x0,0x3,0x0,0x0,0x0,0x1,0x0,0xfc,0xff, +0xfc,0xff,0x4,0x0,0x4,0x0,0x0,0x0,0x3,0x0,0x5,0x0, +0x1,0x0,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xfd,0xff,0xfb,0xff,0xff,0xff,0x1,0x0,0xfb,0xff, +0xf8,0xff,0xfb,0xff,0xfb,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff, +0xf9,0xff,0xfc,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfe,0xff,0x2,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x5,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0x8,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0x2,0x0,0xa,0x0, +0xb,0x0,0x4,0x0,0x1,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0x4,0x0,0x6,0x0,0x0,0x0,0xfd,0xff,0x5,0x0,0x6,0x0, +0x1,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0x1,0x0,0x4,0x0,0x6,0x0,0x3,0x0,0xfe,0xff, +0xfb,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x0,0x0,0xfb,0xff, +0xfc,0xff,0x0,0x0,0xfe,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfe,0xff,0x0,0x0, +0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0xfe,0xff, +0xfa,0xff,0xfd,0xff,0x0,0x0,0xfd,0xff,0xfb,0xff,0xfe,0xff, +0x1,0x0,0xff,0xff,0xfb,0xff,0xfa,0xff,0xfe,0xff,0xff,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfa,0xff,0xfa,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x2,0x0,0xff,0xff,0xfa,0xff,0xff,0xff, +0x6,0x0,0x2,0x0,0xfe,0xff,0x2,0x0,0x4,0x0,0x1,0x0, +0x1,0x0,0x4,0x0,0x4,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x5,0x0,0x7,0x0,0x1,0x0,0x0,0x0,0x5,0x0,0x4,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x5,0x0,0x4,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0xff,0xff, +0xf8,0xff,0xf8,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0xfe,0xff,0xfd,0xff,0x2,0x0,0x3,0x0,0xff,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0x0,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x2,0x0,0x0,0x0,0xfd,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff,0xfb,0xff, +0xfe,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x5,0x0, +0x2,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0x1,0x0,0x1,0x0,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0xff,0xff,0xfe,0xff, +0x1,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff,0x2,0x0,0x2,0x0, +0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x3,0x0, +0x3,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xfe,0xff,0xff,0xff,0x3,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x2,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0x1,0x0, +0x2,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0xff,0xff,0x0,0x0, +0x3,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x3,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x1,0x0,0xfe,0xff, +0x1,0x0,0x2,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0xfd,0xff,0xfb,0xff,0xfe,0xff,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfd,0xff,0xfe,0xff, +0x3,0x0,0x4,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfe,0xff, +0x2,0x0,0x0,0x0,0xfd,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xfd,0xff,0xfe,0xff, +0x1,0x0,0x0,0x0,0x1,0x0,0x5,0x0,0x3,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x2,0x0,0x0,0x0,0x3,0x0,0x5,0x0,0x2,0x0, +0x1,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x2,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0x1,0x0,0x0,0x0,0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0xfe,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0xff,0xff,0xfc,0xff, +0xff,0xff,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x1,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x2,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0xfe,0xff, +0xff,0xff,0x1,0x0,0xfd,0xff,0xfd,0xff,0x2,0x0,0x2,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x3,0x0,0x5,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfd,0xff, +0xfe,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff,0x0,0x0,0xff,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xfd,0xff,0x0,0x0,0x1,0x0, +0xfe,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xfd,0xff,0xfd,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0xfe,0xff,0xff,0xff,0x2,0x0,0x0,0x0,0xff,0xff,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/sheep3.pcm b/src/client/sound/data/sheep3.pcm new file mode 100755 index 0000000..cbbf63e --- /dev/null +++ b/src/client/sound/data/sheep3.pcm @@ -0,0 +1,7354 @@ +unsigned char PCM_sheep3[88216] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x44,0xac,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x3,0x0,0x4,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x2,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0, +0x5,0x0,0x8,0x0,0xa,0x0,0xc,0x0,0xd,0x0,0xa,0x0, +0x7,0x0,0x7,0x0,0x6,0x0,0x1,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x6,0x0, +0x7,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x7,0x0,0x6,0x0, +0x5,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x7,0x0,0x7,0x0, +0x5,0x0,0x7,0x0,0x8,0x0,0x4,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x6,0x0,0x6,0x0,0x3,0x0,0x4,0x0, +0x8,0x0,0x7,0x0,0x6,0x0,0xa,0x0,0xa,0x0,0x5,0x0, +0x3,0x0,0x2,0x0,0xfd,0xff,0xf9,0xff,0xfe,0xff,0x3,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x6,0x0, +0x4,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xfc,0xff,0xff,0xff, +0x0,0x0,0xfc,0xff,0xfb,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfb,0xff, +0xfa,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x2,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0xfa,0xff,0xf6,0xff,0xf7,0xff,0xf9,0xff, +0xf8,0xff,0xf7,0xff,0xf9,0xff,0xf5,0xff,0xef,0xff,0xef,0xff, +0xf3,0xff,0xf6,0xff,0xf9,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff, +0xfb,0xff,0xf2,0xff,0xf4,0xff,0xfe,0xff,0x0,0x0,0xfb,0xff, +0x0,0x0,0x8,0x0,0x5,0x0,0xfd,0xff,0xf6,0xff,0xf0,0xff, +0xee,0xff,0xed,0xff,0xea,0xff,0xe7,0xff,0xe8,0xff,0xeb,0xff, +0xec,0xff,0xea,0xff,0xe7,0xff,0xe5,0xff,0xe5,0xff,0xea,0xff, +0xf2,0xff,0xf9,0xff,0xfb,0xff,0xff,0xff,0x6,0x0,0xa,0x0, +0x9,0x0,0x7,0x0,0x8,0x0,0xd,0x0,0xd,0x0,0x4,0x0, +0xfc,0xff,0xf3,0xff,0xe4,0xff,0xd8,0xff,0xd7,0xff,0xd7,0xff, +0xd7,0xff,0xe0,0xff,0xea,0xff,0xea,0xff,0xe9,0xff,0xe8,0xff, +0xe5,0xff,0xe9,0xff,0xee,0xff,0xeb,0xff,0xef,0xff,0xfe,0xff, +0x3,0x0,0x0,0x0,0x4,0x0,0x9,0x0,0x9,0x0,0xc,0x0, +0xd,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0xf5,0xff,0xe5,0xff, +0xdb,0xff,0xd3,0xff,0xd5,0xff,0xdc,0xff,0xe2,0xff,0xea,0xff, +0xf5,0xff,0xf6,0xff,0xf2,0xff,0xf0,0xff,0xe8,0xff,0xe3,0xff, +0xed,0xff,0xfd,0xff,0xf,0x0,0x24,0x0,0x34,0x0,0x3f,0x0, +0x43,0x0,0x3e,0x0,0x34,0x0,0x29,0x0,0x14,0x0,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xf1,0xff,0xe9,0xff,0xf0,0xff,0xef,0xff, +0xf0,0xff,0xfd,0xff,0x7,0x0,0xd,0x0,0x16,0x0,0x17,0x0, +0xe,0x0,0xb,0x0,0x10,0x0,0x17,0x0,0x22,0x0,0x2f,0x0, +0x3d,0x0,0x4a,0x0,0x4a,0x0,0x3c,0x0,0x2f,0x0,0x25,0x0, +0x17,0x0,0x12,0x0,0x19,0x0,0x17,0x0,0x12,0x0,0x15,0x0, +0x13,0x0,0x8,0x0,0x1,0x0,0xfc,0xff,0xf5,0xff,0xf9,0xff, +0x7,0x0,0x13,0x0,0x1b,0x0,0x26,0x0,0x31,0x0,0x39,0x0, +0x3e,0x0,0x44,0x0,0x49,0x0,0x48,0x0,0x47,0x0,0x41,0x0, +0x28,0x0,0x5,0x0,0xf3,0xff,0xeb,0xff,0xdd,0xff,0xdb,0xff, +0xeb,0xff,0xf7,0xff,0xfd,0xff,0x3,0x0,0xfd,0xff,0xf0,0xff, +0xf2,0xff,0xf9,0xff,0xf7,0xff,0xfd,0xff,0xd,0x0,0x18,0x0, +0x1f,0x0,0x1f,0x0,0x17,0x0,0x12,0x0,0x16,0x0,0x11,0x0, +0x0,0x0,0xf6,0xff,0xf2,0xff,0xeb,0xff,0xe3,0xff,0xde,0xff, +0xd8,0xff,0xd4,0xff,0xd6,0xff,0xdc,0xff,0xdd,0xff,0xde,0xff, +0xeb,0xff,0xf9,0xff,0xfc,0xff,0x2,0x0,0x13,0x0,0x1a,0x0, +0x13,0x0,0xf,0x0,0x6,0x0,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xef,0xff,0xf4,0xff,0xd,0x0,0x12,0x0,0x8,0x0,0xa,0x0, +0x9,0x0,0xf7,0xff,0xe8,0xff,0xdd,0xff,0xce,0xff,0xcd,0xff, +0xd5,0xff,0xcf,0xff,0xcc,0xff,0xdf,0xff,0xee,0xff,0xf1,0xff, +0xf7,0xff,0xf9,0xff,0xf3,0xff,0xf7,0xff,0xf9,0xff,0xe9,0xff, +0xd9,0xff,0xd2,0xff,0xc8,0xff,0xc1,0xff,0xb9,0xff,0x9e,0xff, +0x77,0xff,0x57,0xff,0x33,0xff,0x14,0xff,0x20,0xff,0x54,0xff, +0x9d,0xff,0xf5,0xff,0x47,0x0,0x7e,0x0,0x9b,0x0,0x8d,0x0, +0x49,0x0,0xfa,0xff,0xbe,0xff,0x8d,0xff,0x84,0xff,0xc1,0xff, +0x12,0x0,0x49,0x0,0x7b,0x0,0x9f,0x0,0x8c,0x0,0x4d,0x0, +0xff,0xff,0xa8,0xff,0x5a,0xff,0x25,0xff,0x1,0xff,0xf3,0xfe, +0x3,0xff,0x23,0xff,0x56,0xff,0xa8,0xff,0xf8,0xff,0x32,0x0, +0x66,0x0,0x83,0x0,0x7c,0x0,0x75,0x0,0x72,0x0,0x60,0x0, +0x50,0x0,0x48,0x0,0x36,0x0,0x28,0x0,0x32,0x0,0x43,0x0, +0x4e,0x0,0x46,0x0,0x15,0x0,0xc1,0xff,0x7d,0xff,0x4e,0xff, +0x1d,0xff,0xa,0xff,0x2e,0xff,0x61,0xff,0x96,0xff,0xd0,0xff, +0xf3,0xff,0xc,0x0,0x28,0x0,0x34,0x0,0x48,0x0,0x6b,0x0, +0x73,0x0,0x73,0x0,0x83,0x0,0x7f,0x0,0x6a,0x0,0x5c,0x0, +0x51,0x0,0x49,0x0,0x36,0x0,0x13,0x0,0xfc,0xff,0xed,0xff, +0xca,0xff,0x96,0xff,0x61,0xff,0x4d,0xff,0x5b,0xff,0x6f,0xff, +0xa2,0xff,0xec,0xff,0x22,0x0,0x54,0x0,0x7c,0x0,0x8a,0x0, +0x97,0x0,0x91,0x0,0x71,0x0,0x5f,0x0,0x4a,0x0,0x31,0x0, +0x26,0x0,0x8,0x0,0xf1,0xff,0xf,0x0,0x18,0x0,0xe,0x0, +0x2b,0x0,0x41,0x0,0x39,0x0,0x2b,0x0,0xb,0x0,0xf4,0xff, +0xee,0xff,0xe0,0xff,0xeb,0xff,0xa,0x0,0x1c,0x0,0x3b,0x0, +0x6b,0x0,0x8a,0x0,0x99,0x0,0x97,0x0,0x8b,0x0,0x6d,0x0, +0x2f,0x0,0xfe,0xff,0xda,0xff,0x9d,0xff,0x80,0xff,0x85,0xff, +0x78,0xff,0x8f,0xff,0xbc,0xff,0xc7,0xff,0xf0,0xff,0x2d,0x0, +0x35,0x0,0x39,0x0,0x4f,0x0,0x58,0x0,0x64,0x0,0x63,0x0, +0x66,0x0,0x98,0x0,0xc0,0x0,0xbf,0x0,0xc3,0x0,0xad,0x0, +0x64,0x0,0xa,0x0,0xaf,0xff,0x61,0xff,0x2c,0xff,0x25,0xff, +0x4e,0xff,0x6b,0xff,0x78,0xff,0xa6,0xff,0xcc,0xff,0xe5,0xff, +0x14,0x0,0x1b,0x0,0x12,0x0,0x39,0x0,0x45,0x0,0x28,0x0, +0x22,0x0,0x16,0x0,0x1,0x0,0x4,0x0,0x1,0x0,0x8,0x0, +0x33,0x0,0x58,0x0,0x6c,0x0,0x77,0x0,0x73,0x0,0x5d,0x0, +0x1e,0x0,0xee,0xff,0xf9,0xff,0xe5,0xff,0xb5,0xff,0xcc,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0x12,0x0,0x2e,0x0,0x3a,0x0, +0x44,0x0,0x6b,0x0,0x81,0x0,0x7a,0x0,0x91,0x0,0x97,0x0, +0x88,0x0,0xbc,0x0,0xe1,0x0,0xc1,0x0,0xc0,0x0,0xaa,0x0, +0x4b,0x0,0x8,0x0,0xcc,0xff,0x77,0xff,0x69,0xff,0x8d,0xff, +0xa2,0xff,0xe2,0xff,0x45,0x0,0x73,0x0,0x5e,0x0,0x2b,0x0, +0xfe,0xff,0xda,0xff,0xae,0xff,0x96,0xff,0xaa,0xff,0xdd,0xff, +0x25,0x0,0x57,0x0,0x49,0x0,0xfd,0xff,0x70,0xff,0xb5,0xfe, +0x3,0xfe,0x5c,0xfd,0xac,0xfc,0x31,0xfc,0x25,0xfc,0x71,0xfc, +0x23,0xfd,0x5a,0xfe,0xd5,0xff,0x54,0x1,0xcb,0x2,0xda,0x3, +0x45,0x4,0x5a,0x4,0xef,0x3,0x90,0x2,0xb5,0x0,0x14,0xff, +0xb9,0xfd,0xaf,0xfc,0x42,0xfc,0x9e,0xfc,0xa8,0xfd,0xf9,0xfe, +0x2e,0x0,0x25,0x1,0xb0,0x1,0xa0,0x1,0xf5,0x0,0xe3,0xff, +0xd5,0xfe,0xf6,0xfd,0x39,0xfd,0x14,0xfd,0xc7,0xfd,0xbc,0xfe, +0xc9,0xff,0x2d,0x1,0x74,0x2,0x4a,0x3,0xdb,0x3,0xdc,0x3, +0x28,0x3,0x36,0x2,0x3,0x1,0x58,0xff,0xbb,0xfd,0xad,0xfc, +0x2f,0xfc,0x3d,0xfc,0xe4,0xfc,0x21,0xfe,0xc2,0xff,0x64,0x1, +0xcf,0x2,0xe2,0x3,0x3c,0x4,0xc3,0x3,0xc8,0x2,0x73,0x1, +0xe9,0xff,0x7c,0xfe,0x59,0xfd,0xbc,0xfc,0xdb,0xfc,0x7d,0xfd, +0x66,0xfe,0x82,0xff,0x92,0x0,0x5a,0x1,0xb9,0x1,0xa8,0x1, +0x60,0x1,0xf9,0x0,0x57,0x0,0xdb,0xff,0xda,0xff,0xf9,0xff, +0x1b,0x0,0x85,0x0,0xf4,0x0,0x12,0x1,0xf9,0x0,0x9a,0x0, +0xed,0xff,0x49,0xff,0xc8,0xfe,0x47,0xfe,0xf7,0xfd,0x11,0xfe, +0x64,0xfe,0xc0,0xfe,0x57,0xff,0x3d,0x0,0xf8,0x0,0x2d,0x1, +0x39,0x1,0x5a,0x1,0x31,0x1,0xae,0x0,0x4d,0x0,0x2e,0x0, +0x27,0x0,0x48,0x0,0x88,0x0,0xba,0x0,0xf0,0x0,0x28,0x1, +0x2a,0x1,0xec,0x0,0x85,0x0,0xfc,0xff,0x62,0xff,0xd8,0xfe, +0x8a,0xfe,0x81,0xfe,0xa0,0xfe,0xd,0xff,0xe5,0xff,0xc8,0x0, +0x7d,0x1,0x1d,0x2,0x6c,0x2,0x4f,0x2,0x2,0x2,0x62,0x1, +0x6b,0x0,0x9a,0xff,0xe3,0xfe,0x16,0xfe,0x9e,0xfd,0xa1,0xfd, +0xe4,0xfd,0x6c,0xfe,0x45,0xff,0x60,0x0,0x90,0x1,0x6f,0x2, +0xed,0x2,0x2e,0x3,0xf9,0x2,0x5a,0x2,0xa9,0x1,0xdc,0x0, +0x1f,0x0,0xc2,0xff,0x67,0xff,0xf8,0xfe,0xe0,0xfe,0xef,0xfe, +0xd4,0xfe,0xae,0xfe,0x8f,0xfe,0x9e,0xfe,0xe7,0xfe,0x33,0xff, +0xb5,0xff,0x6d,0x0,0xd7,0x0,0x34,0x1,0xc7,0x1,0xdb,0x1, +0x6c,0x1,0x1c,0x1,0xb4,0x0,0x1e,0x0,0xba,0xff,0x53,0xff, +0xf3,0xfe,0xd,0xff,0x5a,0xff,0x99,0xff,0x12,0x0,0x93,0x0, +0xce,0x0,0xfb,0x0,0x39,0x1,0x55,0x1,0x2c,0x1,0xe5,0x0, +0xc1,0x0,0x8f,0x0,0x17,0x0,0xb7,0xff,0xab,0xff,0xc0,0xff, +0x16,0x0,0xb7,0x0,0x3f,0x1,0x99,0x1,0xd6,0x1,0xc9,0x1, +0x5b,0x1,0xa3,0x0,0xcf,0xff,0x2f,0xff,0xd2,0xfe,0xa8,0xfe, +0xd0,0xfe,0x49,0xff,0xfe,0xff,0xd9,0x0,0x86,0x1,0xe7,0x1, +0x34,0x2,0x4f,0x2,0xe,0x2,0x8c,0x1,0xe0,0x0,0x3e,0x0, +0xc4,0xff,0x2b,0xff,0x95,0xfe,0x61,0xfe,0x5f,0xfe,0x96,0xfe, +0x20,0xff,0x79,0xff,0xa9,0xff,0x13,0x0,0x2a,0x0,0xbe,0xff, +0x5c,0xff,0xa7,0xfe,0x54,0xfd,0x1b,0xfc,0x1f,0xfb,0x36,0xfa, +0xe0,0xf9,0x37,0xfa,0xa,0xfb,0xac,0xfc,0xf,0xff,0xa9,0x1, +0x20,0x4,0x27,0x6,0x90,0x7,0x22,0x8,0x44,0x7,0xe5,0x4, +0xc2,0x1,0x6e,0xfe,0x4a,0xfb,0xc4,0xf8,0x5e,0xf7,0xb7,0xf7, +0xa0,0xf9,0x2e,0xfc,0x2c,0xff,0x66,0x2,0xa7,0x4,0x60,0x5, +0xf9,0x4,0x9d,0x3,0x9d,0x1,0x76,0xff,0x6d,0xfd,0x38,0xfc, +0x29,0xfc,0x8d,0xfc,0x4b,0xfd,0xb1,0xfe,0x19,0x0,0x25,0x1, +0xfb,0x1,0x2a,0x2,0x9d,0x1,0xdc,0x0,0xf0,0xff,0xfb,0xfe, +0x61,0xfe,0x0,0xfe,0xeb,0xfd,0x7b,0xfe,0x6d,0xff,0x95,0x0, +0xa,0x2,0x66,0x3,0x6e,0x4,0x3a,0x5,0x60,0x5,0x86,0x4, +0xdc,0x2,0x89,0x0,0xdf,0xfd,0x4d,0xfb,0xb,0xf9,0x79,0xf7, +0x10,0xf7,0xd8,0xf7,0xb2,0xf9,0x57,0xfc,0x42,0xff,0x21,0x2, +0x9c,0x4,0x24,0x6,0xbc,0x6,0xab,0x6,0xda,0x5,0x56,0x4, +0x78,0x2,0x6d,0x0,0x74,0xfe,0xd2,0xfc,0x95,0xfb,0xfa,0xfa, +0x35,0xfb,0x13,0xfc,0x67,0xfd,0x15,0xff,0xc0,0x0,0x33,0x2, +0x59,0x3,0xe4,0x3,0xb7,0x3,0xf,0x3,0x14,0x2,0xe1,0x0, +0xb5,0xff,0xb9,0xfe,0xfb,0xfd,0x87,0xfd,0x6b,0xfd,0xab,0xfd, +0x2f,0xfe,0xca,0xfe,0x5d,0xff,0xe9,0xff,0x7c,0x0,0xfc,0x0, +0x3a,0x1,0x5d,0x1,0x9f,0x1,0xe1,0x1,0x6,0x2,0x16,0x2, +0xee,0x1,0x9a,0x1,0x63,0x1,0x37,0x1,0xdd,0x0,0x46,0x0, +0x7f,0xff,0xdb,0xfe,0x99,0xfe,0x59,0xfe,0xed,0xfd,0xc2,0xfd, +0xfb,0xfd,0x68,0xfe,0xfb,0xfe,0x9a,0xff,0x39,0x0,0xf9,0x0, +0xb7,0x1,0x3c,0x2,0x72,0x2,0x40,0x2,0xbb,0x1,0x1c,0x1, +0x79,0x0,0xec,0xff,0x73,0xff,0xf0,0xfe,0xb4,0xfe,0xff,0xfe, +0x6d,0xff,0xb3,0xff,0xe5,0xff,0x10,0x0,0x54,0x0,0xb0,0x0, +0xe2,0x0,0xf8,0x0,0x1d,0x1,0x26,0x1,0xfc,0x0,0x94,0x0, +0xdc,0xff,0x2,0xff,0x25,0xfe,0x6b,0xfd,0x4a,0xfd,0xac,0xfd, +0xd,0xfe,0x8d,0xfe,0x39,0xff,0xa1,0xff,0xe1,0xff,0x2e,0x0, +0x4a,0x0,0x71,0x0,0xd,0x1,0xd3,0x1,0x7e,0x2,0x28,0x3, +0xb2,0x3,0xdb,0x3,0x73,0x3,0x6e,0x2,0x12,0x1,0xab,0xff, +0x3b,0xfe,0xf2,0xfc,0x40,0xfc,0x39,0xfc,0xab,0xfc,0x96,0xfd, +0xe3,0xfe,0x3f,0x0,0x96,0x1,0xdc,0x2,0x9b,0x3,0xb9,0x3, +0x8c,0x3,0xfb,0x2,0xfd,0x1,0xfc,0x0,0xf1,0xff,0xdf,0xfe, +0x3c,0xfe,0xf9,0xfd,0xfe,0xfd,0xbb,0xfe,0xc9,0xff,0x85,0x0, +0x42,0x1,0xe8,0x1,0x7,0x2,0xeb,0x1,0x95,0x1,0xe6,0x0, +0x8c,0x0,0x6a,0x0,0xd8,0xff,0x5e,0xff,0x45,0xff,0x7,0xff, +0xdc,0xfe,0xd0,0xfe,0x56,0xfe,0xe9,0xfd,0xf9,0xfd,0xc7,0xfd, +0x3c,0xfd,0xee,0xfc,0x85,0xfc,0xb8,0xfb,0x25,0xfb,0x2,0xfb, +0x12,0xfb,0xc8,0xfb,0xa0,0xfd,0x1a,0x0,0x90,0x2,0xdb,0x4, +0x9f,0x6,0x65,0x7,0x1c,0x7,0xa7,0x5,0x26,0x3,0x58,0x0, +0xa5,0xfd,0x3a,0xfb,0xbb,0xf9,0x4d,0xf9,0x9d,0xf9,0xe6,0xfa, +0x1d,0xfd,0x92,0xff,0xe4,0x1,0xb9,0x3,0xc6,0x4,0x57,0x5, +0x65,0x5,0x8a,0x4,0x11,0x3,0x48,0x1,0x36,0xff,0x58,0xfd, +0xf4,0xfb,0xde,0xfa,0x6b,0xfa,0xf5,0xfa,0x53,0xfc,0x5f,0xfe, +0x95,0x0,0x2e,0x2,0x3c,0x3,0xfd,0x3,0x3,0x4,0x2e,0x3, +0x21,0x2,0x31,0x1,0x44,0x0,0xa9,0xff,0xe1,0xff,0xc9,0x0, +0xb5,0x1,0x36,0x2,0x54,0x2,0x36,0x2,0xa2,0x1,0x2d,0x0, +0x43,0xfe,0xcd,0xfc,0xd1,0xfb,0x2a,0xfb,0x5c,0xfb,0x55,0xfc, +0x81,0xfd,0xfd,0xfe,0xd2,0x0,0x68,0x2,0x85,0x3,0x43,0x4, +0x7f,0x4,0x23,0x4,0x31,0x3,0xcc,0x1,0x3e,0x0,0x87,0xfe, +0xbd,0xfc,0x87,0xfb,0x38,0xfb,0x77,0xfb,0x50,0xfc,0x30,0xfe, +0xbe,0x0,0xfe,0x2,0x8f,0x4,0x9e,0x5,0xd1,0x5,0xaf,0x4, +0xb5,0x2,0x9e,0x0,0x77,0xfe,0x75,0xfc,0x3c,0xfb,0x3,0xfb, +0x8b,0xfb,0x9a,0xfc,0x11,0xfe,0xcb,0xff,0x5e,0x1,0x62,0x2, +0xec,0x2,0x30,0x3,0xf,0x3,0x8e,0x2,0x3,0x2,0x72,0x1, +0x98,0x0,0xa7,0xff,0x37,0xff,0x4d,0xff,0x79,0xff,0xbe,0xff, +0x4f,0x0,0xf5,0x0,0x73,0x1,0xc4,0x1,0xd9,0x1,0xa1,0x1, +0x17,0x1,0x60,0x0,0xda,0xff,0x99,0xff,0x70,0xff,0x96,0xff, +0x2d,0x0,0xcf,0x0,0x21,0x1,0xe,0x1,0x96,0x0,0xec,0xff, +0x3b,0xff,0x85,0xfe,0xe6,0xfd,0x80,0xfd,0x77,0xfd,0xef,0xfd, +0xb7,0xfe,0x92,0xff,0x8a,0x0,0x7e,0x1,0x41,0x2,0xed,0x2, +0x4b,0x3,0xb,0x3,0x7f,0x2,0xeb,0x1,0x1b,0x1,0x27,0x0, +0x3e,0xff,0x60,0xfe,0xe1,0xfd,0xf2,0xfd,0x26,0xfe,0x59,0xfe, +0xd5,0xfe,0x6d,0xff,0xd0,0xff,0x27,0x0,0x87,0x0,0xce,0x0, +0xe,0x1,0x48,0x1,0x54,0x1,0x55,0x1,0x68,0x1,0x5a,0x1, +0x2a,0x1,0x6,0x1,0xd1,0x0,0x64,0x0,0xd8,0xff,0x52,0xff, +0xf1,0xfe,0xb5,0xfe,0x9c,0xfe,0xe4,0xfe,0xab,0xff,0x9a,0x0, +0x84,0x1,0x76,0x2,0x36,0x3,0x89,0x3,0x70,0x3,0xdb,0x2, +0xe3,0x1,0xf4,0x0,0x30,0x0,0x75,0xff,0x1,0xff,0xfd,0xfe, +0xfb,0xfe,0xd5,0xfe,0xef,0xfe,0x28,0xff,0x30,0xff,0x5a,0xff, +0xc8,0xff,0x24,0x0,0x99,0x0,0x3a,0x1,0x8e,0x1,0x9f,0x1, +0xa8,0x1,0x52,0x1,0x9c,0x0,0xfa,0xff,0x62,0xff,0xb3,0xfe, +0x12,0xfe,0x89,0xfd,0x1e,0xfd,0xe0,0xfc,0xbf,0xfc,0xab,0xfc, +0x75,0xfc,0x15,0xfc,0xf3,0xfb,0xfd,0xfb,0xc0,0xfb,0x9d,0xfb, +0x27,0xfc,0x40,0xfd,0xc7,0xfe,0xbe,0x0,0xef,0x2,0xf9,0x4, +0x29,0x6,0x1c,0x6,0x51,0x5,0xdb,0x3,0x38,0x1,0xb,0xfe, +0x94,0xfb,0x29,0xfa,0xb2,0xf9,0x3c,0xfa,0xa5,0xfb,0xca,0xfd, +0x64,0x0,0xb3,0x2,0x23,0x4,0xac,0x4,0x61,0x4,0x7e,0x3, +0x7d,0x2,0x70,0x1,0x14,0x0,0xc3,0xfe,0x1,0xfe,0x83,0xfd, +0x8,0xfd,0xff,0xfc,0x4a,0xfd,0x4e,0xfd,0x4b,0xfd,0xbe,0xfd, +0x4d,0xfe,0x78,0xfe,0x66,0xfe,0xa8,0xfe,0x77,0xff,0x64,0x0, +0x2e,0x1,0x33,0x2,0x75,0x3,0x83,0x4,0x2a,0x5,0x41,0x5, +0xa8,0x4,0x66,0x3,0x58,0x1,0xbe,0xfe,0x79,0xfc,0xca,0xfa, +0x67,0xf9,0xa9,0xf8,0xf,0xf9,0x64,0xfa,0x28,0xfc,0x2,0xfe, +0xe4,0xff,0xc3,0x1,0x36,0x3,0xef,0x3,0x13,0x4,0xbc,0x3, +0xdc,0x2,0x90,0x1,0xf,0x0,0xb4,0xfe,0xaa,0xfd,0xcc,0xfc, +0x49,0xfc,0xa5,0xfc,0xde,0xfd,0x73,0xff,0xf0,0x0,0x26,0x2, +0x2d,0x3,0xe7,0x3,0xcd,0x3,0xe2,0x2,0xbd,0x1,0xa2,0x0, +0x96,0xff,0xc7,0xfe,0x5e,0xfe,0x73,0xfe,0xe5,0xfe,0x51,0xff, +0x9d,0xff,0xd3,0xff,0xbc,0xff,0x6c,0xff,0x3d,0xff,0x36,0xff, +0x5a,0xff,0xb2,0xff,0xf5,0xff,0x20,0x0,0x89,0x0,0x14,0x1, +0x97,0x1,0x15,0x2,0x51,0x2,0x66,0x2,0x9f,0x2,0x78,0x2, +0x9e,0x1,0xa5,0x0,0xac,0xff,0x7d,0xfe,0x9d,0xfd,0x6c,0xfd, +0xb9,0xfd,0x60,0xfe,0x41,0xff,0x51,0x0,0x7d,0x1,0x47,0x2, +0x82,0x2,0x67,0x2,0xa9,0x1,0x49,0x0,0xf7,0xfe,0xba,0xfd, +0x7c,0xfc,0xdb,0xfb,0xf3,0xfb,0x62,0xfc,0x3f,0xfd,0x79,0xfe, +0xb3,0xff,0xea,0x0,0x4,0x2,0xbb,0x2,0x3,0x3,0x5,0x3, +0xde,0x2,0x6a,0x2,0xa6,0x1,0x10,0x1,0xbd,0x0,0x2e,0x0, +0x8b,0xff,0x25,0xff,0xcb,0xfe,0x8d,0xfe,0x7b,0xfe,0x5b,0xfe, +0x6b,0xfe,0xb4,0xfe,0xcc,0xfe,0x4,0xff,0xa8,0xff,0x50,0x0, +0xfa,0x0,0xbd,0x1,0x54,0x2,0xd8,0x2,0x2a,0x3,0xdd,0x2, +0x41,0x2,0x80,0x1,0x5d,0x0,0x5f,0xff,0xe3,0xfe,0x8b,0xfe, +0x81,0xfe,0xf9,0xfe,0x8c,0xff,0x3e,0x0,0x45,0x1,0x48,0x2, +0xf1,0x2,0x2b,0x3,0x19,0x3,0xfb,0x2,0x8a,0x2,0x8f,0x1, +0x86,0x0,0xb6,0xff,0xf5,0xfe,0x6b,0xfe,0x41,0xfe,0x33,0xfe, +0x23,0xfe,0x69,0xfe,0x1d,0xff,0xa0,0xff,0xb7,0xff,0xf0,0xff, +0x2c,0x0,0xfc,0xff,0xe3,0xff,0x28,0x0,0x48,0x0,0x5f,0x0, +0xa6,0x0,0xca,0x0,0xca,0x0,0x97,0x0,0xe1,0xff,0x8,0xff, +0x5e,0xfe,0x86,0xfd,0x82,0xfc,0x96,0xfb,0xb1,0xfa,0xe0,0xf9, +0x53,0xf9,0x17,0xf9,0x36,0xf9,0xba,0xf9,0xf5,0xfa,0x6,0xfd, +0x3c,0xff,0x3e,0x1,0x3b,0x3,0xad,0x4,0x1c,0x5,0xdd,0x4, +0x1c,0x4,0xe4,0x2,0x6e,0x1,0xe1,0xff,0xd8,0xfe,0xb6,0xfe, +0xbc,0xfe,0x9e,0xfe,0xf9,0xfe,0xb2,0xff,0x5e,0x0,0x6,0x1, +0x65,0x1,0x5b,0x1,0x51,0x1,0x5a,0x1,0x3d,0x1,0xe0,0x0, +0x1b,0x0,0x14,0xff,0x3a,0xfe,0xad,0xfd,0x71,0xfd,0x9a,0xfd, +0xf,0xfe,0xbc,0xfe,0x80,0xff,0xe,0x0,0x26,0x0,0xbe,0xff, +0xa,0xff,0x8f,0xfe,0xc1,0xfe,0xb7,0xff,0x28,0x1,0xbb,0x2, +0x55,0x4,0xb8,0x5,0x4b,0x6,0xb5,0x5,0xf8,0x3,0x37,0x1, +0x2d,0xfe,0xc5,0xfb,0x2c,0xfa,0x64,0xf9,0xb9,0xf9,0xfb,0xfa, +0x92,0xfc,0x4a,0xfe,0x14,0x0,0x7e,0x1,0x21,0x2,0x55,0x2, +0xa6,0x2,0xb8,0x2,0xec,0x1,0x8f,0x0,0x3d,0xff,0xfb,0xfd, +0xaa,0xfc,0x97,0xfb,0x42,0xfb,0xdf,0xfb,0x22,0xfd,0xbf,0xfe, +0xab,0x0,0xaa,0x2,0xe,0x4,0x67,0x4,0x3a,0x4,0x16,0x4, +0x6a,0x3,0xf0,0x1,0xe8,0x0,0xf3,0x0,0x2b,0x1,0x3b,0x1, +0x72,0x1,0x89,0x1,0x38,0x1,0x4c,0x0,0x8b,0xfe,0xa2,0xfc, +0x56,0xfb,0x70,0xfa,0x37,0xfa,0x58,0xfb,0x43,0xfd,0x53,0xff, +0xb2,0x1,0xee,0x3,0x68,0x5,0x6d,0x6,0xf3,0x6,0x8f,0x6, +0xc7,0x5,0x4,0x5,0xbc,0x3,0xf6,0x1,0x3c,0x0,0x6d,0xfe, +0x83,0xfc,0x8,0xfb,0x46,0xfa,0x60,0xfa,0x50,0xfb,0xb1,0xfc, +0x83,0xfe,0xc0,0x0,0x7c,0x2,0x2d,0x3,0x21,0x3,0x68,0x2, +0x30,0x1,0xef,0xff,0xb7,0xfe,0xd5,0xfd,0x90,0xfd,0x71,0xfd, +0x94,0xfd,0x54,0xfe,0xef,0xfe,0x33,0xff,0xcf,0xff,0x73,0x0, +0xd7,0x0,0x74,0x1,0x0,0x2,0x3d,0x2,0x93,0x2,0xb6,0x2, +0x5b,0x2,0xd9,0x1,0x1a,0x1,0x29,0x0,0x94,0xff,0x2c,0xff, +0x9d,0xfe,0x20,0xfe,0xbc,0xfd,0x71,0xfd,0x5d,0xfd,0x66,0xfd, +0xa2,0xfd,0x42,0xfe,0x50,0xff,0xce,0x0,0x41,0x2,0x4d,0x3, +0x60,0x4,0x35,0x5,0x25,0x5,0xcd,0x4,0x59,0x4,0x3,0x3, +0x78,0x1,0xa8,0x0,0x3,0x0,0x66,0xff,0x46,0xff,0x68,0xff, +0xba,0xff,0x50,0x0,0xb2,0x0,0xeb,0x0,0x6a,0x1,0xe2,0x1, +0x13,0x2,0x49,0x2,0x7c,0x2,0x36,0x2,0x78,0x1,0xb5,0x0, +0xfc,0xff,0x4,0xff,0x16,0xfe,0xc0,0xfd,0xee,0xfd,0x59,0xfe, +0xed,0xfe,0x89,0xff,0x3,0x0,0x46,0x0,0x78,0x0,0xdc,0x0, +0x31,0x1,0x34,0x1,0x57,0x1,0x9a,0x1,0x6f,0x1,0xfa,0x0, +0x82,0x0,0xac,0xff,0x6c,0xfe,0x14,0xfd,0xd8,0xfb,0xd6,0xfa, +0xf2,0xf9,0x13,0xf9,0x4e,0xf8,0x78,0xf7,0xc4,0xf6,0xb,0xf7, +0x9d,0xf8,0x70,0xfb,0x93,0xff,0x20,0x4,0xf2,0x7,0xb6,0xa, +0xba,0xb,0x74,0xa,0xeb,0x7,0xf7,0x4,0x85,0x1,0x7c,0xfe, +0x3,0xfd,0x95,0xfc,0x45,0xfc,0x2b,0xfc,0x7d,0xfc,0xff,0xfc, +0x88,0xfd,0x27,0xfe,0x13,0xff,0xc1,0x0,0x3,0x3,0xad,0x4, +0x4b,0x5,0x6d,0x5,0xa2,0x4,0x5f,0x2,0xe6,0xff,0x52,0xfe, +0x26,0xfd,0x5b,0xfc,0x80,0xfc,0x44,0xfd,0xd,0xfe,0x94,0xfe, +0x8e,0xfe,0x29,0xfe,0x1a,0xfe,0xb6,0xfe,0xfd,0xff,0xe1,0x1, +0x2,0x4,0xc1,0x5,0xad,0x6,0x8e,0x6,0x3d,0x5,0xca,0x2, +0xc6,0xff,0xfa,0xfc,0x11,0xfb,0x67,0xfa,0x8d,0xfa,0xcb,0xfa, +0x4c,0xfb,0x4b,0xfc,0xea,0xfc,0xaa,0xfc,0x59,0xfc,0x90,0xfc, +0x30,0xfd,0x2e,0xfe,0xb6,0xff,0xd0,0x1,0x8,0x4,0x5a,0x5, +0x43,0x5,0x56,0x4,0x15,0x3,0x6d,0x1,0xb4,0xff,0xc0,0xfe, +0xc7,0xfe,0x49,0xff,0xdb,0xff,0x40,0x0,0x5f,0x0,0x50,0x0, +0x14,0x0,0xc0,0xff,0xe5,0xff,0xc7,0x0,0xdb,0x1,0xc9,0x2, +0xa7,0x3,0x1c,0x4,0x93,0x3,0x9,0x2,0x18,0x0,0x60,0xfe, +0x14,0xfd,0x53,0xfc,0x8b,0xfc,0xb5,0xfd,0x16,0xff,0x4e,0x0, +0x48,0x1,0xd2,0x1,0x2a,0x2,0xa5,0x2,0x1c,0x3,0xca,0x3, +0xed,0x4,0xcb,0x5,0xe3,0x5,0x6d,0x5,0x2f,0x4,0xf6,0x1, +0x5f,0xff,0xd5,0xfc,0xa9,0xfa,0x95,0xf9,0xc1,0xf9,0xc0,0xfa, +0x61,0xfc,0x20,0xfe,0x58,0xff,0x1b,0x0,0x76,0x0,0x33,0x0, +0xc8,0xff,0xa6,0xff,0xa1,0xff,0xc5,0xff,0x15,0x0,0x23,0x0, +0xf5,0xff,0xd7,0xff,0xa5,0xff,0x83,0xff,0xf8,0xff,0xf0,0x0, +0x10,0x2,0x37,0x3,0x1,0x4,0xe4,0x3,0xf7,0x2,0xb0,0x1, +0x38,0x0,0xc4,0xfe,0xd3,0xfd,0x97,0xfd,0xf0,0xfd,0xde,0xfe, +0xe9,0xff,0x5a,0x0,0x80,0x0,0xd0,0x0,0xbb,0x0,0x2c,0x0, +0xc9,0xff,0x94,0xff,0xaa,0xff,0x7a,0x0,0x74,0x1,0xff,0x1, +0x62,0x2,0x94,0x2,0xa6,0x2,0x14,0x3,0x6c,0x3,0x5f,0x3, +0xb1,0x3,0x1c,0x4,0xb4,0x3,0xe6,0x2,0x14,0x2,0xcd,0x0, +0x6e,0xff,0x9f,0xfe,0x3b,0xfe,0xb,0xfe,0x2e,0xfe,0xb5,0xfe, +0x6d,0xff,0xea,0xff,0x18,0x0,0x17,0x0,0xb4,0xff,0x1b,0xff, +0xe1,0xfe,0x4,0xff,0x6d,0xff,0x39,0x0,0xde,0x0,0xf,0x1, +0x3b,0x1,0x2a,0x1,0x9b,0x0,0x63,0x0,0xc8,0x0,0x21,0x1, +0x71,0x1,0xf1,0x1,0x37,0x2,0xf1,0x1,0x13,0x1,0xc1,0xff, +0x5b,0xfe,0xf3,0xfc,0x90,0xfb,0xd0,0xfa,0xd0,0xfa,0xcb,0xfa, +0x8c,0xfa,0x32,0xfa,0x63,0xf9,0x36,0xf8,0x69,0xf7,0x54,0xf7, +0x23,0xf8,0x56,0xfa,0xf4,0xfd,0x4d,0x2,0x7e,0x6,0x9c,0x9, +0x9,0xb,0xef,0xa,0xce,0x9,0xf1,0x7,0xa8,0x5,0x5b,0x3, +0x3b,0x1,0x63,0xff,0xfa,0xfd,0xb7,0xfc,0x1b,0xfb,0x8f,0xf9, +0xa,0xf9,0xaa,0xf9,0x3b,0xfb,0xfc,0xfd,0x8e,0x1,0xca,0x4, +0xfa,0x6,0xa2,0x7,0x35,0x6,0x16,0x3,0x75,0xff,0x61,0xfc, +0xa1,0xfa,0x82,0xfa,0xb2,0xfb,0xb0,0xfd,0xad,0xff,0xc8,0x0, +0xe9,0x0,0x43,0x0,0x12,0xff,0x5e,0xfe,0xdd,0xfe,0xfc,0xff, +0x60,0x1,0xf9,0x2,0xd5,0x3,0x4f,0x3,0xd1,0x1,0xc9,0xff, +0xdd,0xfd,0xf5,0xfc,0x13,0xfd,0xcf,0xfd,0xff,0xfe,0xd2,0xff, +0x46,0xff,0x7b,0xfd,0x5,0xfb,0x6b,0xf8,0x87,0xf6,0x3d,0xf6, +0x14,0xf8,0xfc,0xfb,0xf1,0x0,0x9d,0x5,0x45,0x9,0x45,0xb, +0xb,0xb,0xf7,0x8,0xf8,0x5,0xcb,0x2,0xf,0x0,0x16,0xfe, +0xbe,0xfc,0x3,0xfc,0xeb,0xfb,0x23,0xfc,0x7d,0xfc,0x49,0xfd, +0xc3,0xfe,0xae,0x0,0xbd,0x2,0xbc,0x4,0x20,0x6,0x3b,0x6, +0x2c,0x5,0x7c,0x3,0x26,0x1,0x62,0xfe,0x56,0xfc,0xbc,0xfb, +0x6c,0xfc,0x17,0xfe,0x35,0x0,0x13,0x2,0x53,0x3,0x93,0x3, +0xa4,0x2,0x24,0x1,0xaf,0xff,0x82,0xfe,0x22,0xfe,0xd7,0xfe, +0x38,0x0,0xf1,0x1,0xbe,0x3,0xe7,0x4,0xe4,0x4,0xc7,0x3, +0xd4,0x1,0x4b,0xff,0x9a,0xfc,0x6f,0xfa,0x39,0xf9,0xc3,0xf8, +0xda,0xf8,0xa4,0xf9,0x11,0xfb,0xeb,0xfc,0x12,0xff,0x4a,0x1, +0x64,0x3,0x49,0x5,0x94,0x6,0xe1,0x6,0x3,0x6,0xf9,0x3, +0x39,0x1,0x8a,0xfe,0x72,0xfc,0x71,0xfb,0xd9,0xfb,0x40,0xfd, +0x17,0xff,0x1a,0x1,0xc8,0x2,0x7f,0x3,0x1a,0x3,0xfa,0x1, +0xa2,0x0,0x68,0xff,0xab,0xfe,0xd3,0xfe,0x9d,0xff,0x5d,0x0, +0xf7,0x0,0x84,0x1,0xc5,0x1,0x8e,0x1,0x9,0x1,0x96,0x0, +0x7b,0x0,0x6d,0x0,0x14,0x0,0x8f,0xff,0xff,0xfe,0xa4,0xfe, +0xe7,0xfe,0x9c,0xff,0xbd,0x0,0xe0,0x2,0x91,0x5,0x70,0x7, +0x13,0x8,0xa1,0x7,0xe4,0x5,0xe1,0x2,0x3a,0xff,0xec,0xfb, +0xc5,0xf9,0xdf,0xf8,0x33,0xf9,0xd8,0xfa,0xa,0xfd,0xc8,0xfe, +0x2c,0x0,0x84,0x1,0x63,0x2,0x93,0x2,0x7a,0x2,0x4f,0x2, +0xf2,0x1,0x52,0x1,0x77,0x0,0x6d,0xff,0x81,0xfe,0x1b,0xfe, +0x4f,0xfe,0xa,0xff,0x25,0x0,0x42,0x1,0x2e,0x2,0xc9,0x2, +0xb1,0x2,0xdd,0x1,0xa9,0x0,0x3a,0xff,0xd,0xfe,0xbd,0xfd, +0x3,0xfe,0x91,0xfe,0x77,0xff,0x29,0x0,0x2c,0x0,0x96,0xff, +0x13,0xfe,0x94,0xfb,0xc8,0xf8,0xec,0xf5,0x40,0xf3,0xc1,0xf1, +0xc,0xf2,0x3e,0xf4,0x65,0xf8,0x1a,0xfe,0x94,0x4,0xc8,0xa, +0x80,0xf,0x4a,0x12,0x26,0x13,0xd3,0x11,0x9d,0xe,0x28,0xa, +0xbc,0x4,0xfe,0xfe,0xb7,0xf9,0xf,0xf5,0x66,0xf1,0x7f,0xef, +0xda,0xef,0x9e,0xf2,0x31,0xf7,0xa2,0xfc,0x5e,0x2,0x4f,0x7, +0x35,0xa,0xce,0xa,0xe8,0x8,0xd7,0x4,0xb2,0x0,0xd7,0xfd, +0xfc,0xfb,0xa2,0xfb,0x4a,0xfd,0xa1,0xff,0x41,0x1,0xd4,0x1, +0x5b,0x1,0x20,0x0,0x86,0xfe,0xfe,0xfc,0x3,0xfc,0x83,0xfb, +0x64,0xfb,0x13,0xfc,0x70,0xfd,0xf1,0xfe,0x97,0x0,0x68,0x2, +0x45,0x4,0x1,0x6,0xdd,0x6,0x4c,0x6,0x7e,0x4,0x67,0x1, +0xfe,0xfc,0xf2,0xf7,0x62,0xf3,0xa9,0xf0,0x9e,0xf0,0x6,0xf3, +0xac,0xf7,0x22,0xfe,0xca,0x4,0x5c,0xa,0x52,0xe,0xcd,0xf, +0x99,0xe,0x88,0xb,0x26,0x7,0x37,0x2,0xe,0xfe,0x27,0xfb, +0x5c,0xf9,0xc0,0xf8,0x36,0xf9,0x64,0xfa,0xfe,0xfb,0xd9,0xfd, +0xed,0xff,0xc2,0x1,0xc9,0x2,0x59,0x3,0xa5,0x3,0x1,0x3, +0x86,0x1,0x3c,0x0,0x9c,0xff,0xac,0xff,0x65,0x0,0x74,0x1, +0x8f,0x2,0x7e,0x3,0xbc,0x3,0xe4,0x2,0x22,0x1,0xb,0xff, +0x40,0xfd,0x1f,0xfc,0x7,0xfc,0x3b,0xfd,0x34,0xff,0x34,0x1, +0x18,0x3,0x85,0x4,0xd9,0x4,0x49,0x4,0x79,0x3,0x54,0x2, +0x6c,0x0,0xf4,0xfd,0x95,0xfb,0x98,0xf9,0xfb,0xf7,0x20,0xf7, +0x6e,0xf7,0xd5,0xf8,0x5a,0xfb,0xdb,0xfe,0x6e,0x2,0x54,0x5, +0x58,0x7,0x21,0x8,0xbc,0x7,0xb8,0x6,0x21,0x5,0x28,0x3, +0x9e,0x1,0x9c,0x0,0xa2,0xff,0x96,0xfe,0x76,0xfd,0x7d,0xfc, +0x2a,0xfc,0x4b,0xfc,0xb2,0xfc,0xd1,0xfd,0x36,0xff,0x29,0x0, +0x2f,0x1,0x56,0x2,0xbb,0x2,0x97,0x2,0x7a,0x2,0x23,0x2, +0xbf,0x1,0xa8,0x1,0x76,0x1,0x22,0x1,0xe0,0x0,0x45,0x0, +0x55,0xff,0x9e,0xfe,0x2b,0xfe,0xfa,0xfd,0x6e,0xfe,0x86,0xff, +0xe4,0x0,0x59,0x2,0xb7,0x3,0x99,0x4,0xca,0x4,0x7e,0x4, +0xc4,0x3,0x68,0x2,0xcb,0x0,0x6d,0xff,0x15,0xfe,0xb3,0xfc, +0xa7,0xfb,0xef,0xfa,0xb8,0xfa,0x4f,0xfb,0x41,0xfc,0x72,0xfd, +0x5e,0xff,0x8a,0x1,0x4b,0x3,0xb4,0x4,0x7f,0x5,0x7a,0x5, +0xfe,0x4,0xd8,0x3,0x27,0x2,0xe4,0x0,0xf3,0xff,0xc7,0xfe, +0x15,0xfe,0x22,0xfe,0x31,0xfe,0x54,0xfe,0xef,0xfe,0xaf,0xff, +0x5c,0x0,0xee,0x0,0x4f,0x1,0xba,0x1,0x2d,0x2,0x21,0x2, +0x9b,0x1,0xd,0x1,0x4e,0x0,0xc,0xff,0x81,0xfd,0xfb,0xfb, +0xa9,0xfa,0xc2,0xf9,0x37,0xf9,0xa2,0xf8,0xe1,0xf7,0xe,0xf7, +0x34,0xf6,0xa7,0xf5,0x43,0xf6,0xee,0xf8,0xb5,0xfd,0x8d,0x3, +0x6e,0x9,0xd2,0xe,0xa0,0x12,0x8f,0x13,0xdb,0x11,0x70,0xe, +0x86,0x9,0xa2,0x3,0xd3,0xfd,0x96,0xf8,0x1f,0xf4,0xc6,0xf0, +0xc6,0xee,0x81,0xee,0x69,0xf0,0x90,0xf4,0xb2,0xfa,0xc5,0x1, +0x30,0x8,0x8,0xd,0x92,0xf,0x99,0xe,0x22,0xa,0x1b,0x4, +0x79,0xfe,0x67,0xfa,0xba,0xf8,0xdb,0xf9,0x37,0xfd,0xe,0x1, +0x8b,0x3,0x25,0x4,0x3a,0x3,0x1f,0x1,0x63,0xfe,0xdd,0xfb, +0x37,0xfa,0xbb,0xf9,0x29,0xfa,0x9,0xfb,0x4e,0xfc,0x14,0xfe, +0x28,0x0,0x6d,0x2,0xe4,0x4,0x11,0x7,0xf9,0x7,0xed,0x6, +0xf7,0x3,0x8e,0xff,0x5d,0xfa,0x64,0xf5,0xd7,0xf1,0xdd,0xf0, +0x1d,0xf3,0x29,0xf8,0xba,0xfe,0x64,0x5,0xb1,0xa,0xa2,0xd, +0x39,0xe,0x98,0xc,0xe7,0x8,0x3d,0x4,0xb9,0xff,0xb6,0xfb, +0xf6,0xf8,0x32,0xf8,0xcc,0xf8,0xb,0xfa,0x14,0xfc,0x99,0xfe, +0xb4,0x0,0xc,0x2,0xb4,0x2,0xae,0x2,0x1d,0x2,0x42,0x1, +0x46,0x0,0x5e,0xff,0xf8,0xfe,0x3e,0xff,0xdd,0xff,0xbb,0x0, +0x1e,0x2,0xc9,0x3,0x1a,0x5,0xc3,0x5,0x93,0x5,0x7d,0x4, +0xe6,0x2,0x10,0x1,0x18,0xff,0x94,0xfd,0xc,0xfd,0x60,0xfd, +0x45,0xfe,0x71,0xff,0x86,0x0,0x48,0x1,0x86,0x1,0x1c,0x1, +0x2f,0x0,0xf9,0xfe,0xbe,0xfd,0xc4,0xfc,0xc,0xfc,0x83,0xfb, +0x35,0xfb,0x36,0xfb,0xb8,0xfb,0xc6,0xfc,0x1d,0xfe,0xdd,0xff, +0x17,0x2,0x29,0x4,0xc7,0x5,0xf2,0x6,0x13,0x7,0x35,0x6, +0xff,0x4,0x1c,0x3,0x93,0x0,0x77,0xfe,0xe6,0xfc,0xa7,0xfb, +0x5e,0xfb,0x4,0xfc,0x23,0xfd,0xbc,0xfe,0x34,0x0,0xe8,0x0, +0x46,0x1,0x7d,0x1,0x5c,0x1,0x0,0x1,0x59,0x0,0xa5,0xff, +0x44,0xff,0xf2,0xfe,0xc,0xff,0x24,0x0,0x62,0x1,0x8a,0x2, +0x34,0x4,0x47,0x5,0xf5,0x4,0x53,0x4,0x82,0x3,0x3,0x2, +0x78,0x0,0x29,0xff,0x18,0xfe,0xd4,0xfd,0x4c,0xfe,0x2f,0xff, +0x5b,0x0,0xf,0x1,0x31,0x1,0x4d,0x1,0xcf,0x0,0x78,0xff, +0x37,0xfe,0x38,0xfd,0x66,0xfc,0x31,0xfc,0x61,0xfc,0xdd,0xfc, +0x25,0xfe,0xfc,0xff,0xd5,0x1,0x97,0x3,0x5,0x5,0xf8,0x5, +0x64,0x6,0x1b,0x6,0x45,0x5,0xf3,0x3,0x21,0x2,0x6b,0x0, +0x13,0xff,0xc0,0xfd,0xd1,0xfc,0x90,0xfc,0x98,0xfc,0x29,0xfd, +0x90,0xfe,0x6d,0x0,0x67,0x2,0xd4,0x3,0x7,0x4,0x5e,0x3, +0xf,0x2,0xfd,0xff,0xfa,0xfd,0x94,0xfc,0xa2,0xfb,0x70,0xfb, +0xdf,0xfb,0x57,0xfc,0xfc,0xfc,0x92,0xfd,0x51,0xfd,0x96,0xfc, +0xb5,0xfb,0x10,0xfa,0x20,0xf8,0x1c,0xf7,0x40,0xf7,0xc7,0xf8, +0x51,0xfc,0x67,0x1,0xb9,0x6,0x85,0xb,0x58,0xf,0x71,0x11, +0x68,0x11,0x40,0xf,0xe4,0xa,0xdf,0x4,0x79,0xfe,0x38,0xf8, +0x67,0xf2,0x87,0xee,0xbc,0xed,0x7a,0xef,0x23,0xf3,0xb2,0xf8, +0x9a,0xff,0x47,0x6,0x1a,0xb,0xa8,0xd,0xfc,0xd,0x5e,0xb, +0x23,0x6,0xb0,0x0,0xb8,0xfc,0x92,0xfa,0xd3,0xfa,0x3c,0xfd, +0x4f,0x0,0x14,0x3,0xac,0x4,0xf,0x4,0xe5,0x1,0x72,0xff, +0xbe,0xfc,0x11,0xfa,0x56,0xf8,0x82,0xf7,0x5b,0xf7,0x55,0xf8, +0x44,0xfa,0xb5,0xfc,0x1c,0x0,0x62,0x4,0x17,0x8,0x39,0xa, +0x99,0xa,0xde,0x8,0xe8,0x4,0x50,0xff,0x37,0xf9,0x2d,0xf4, +0x5f,0xf1,0x15,0xf1,0x90,0xf3,0x96,0xf8,0x84,0xfe,0xd7,0x3, +0x19,0x8,0xa8,0xa,0x1,0xb,0xca,0x9,0xba,0x7,0xe,0x5, +0x53,0x2,0x1d,0x0,0x63,0xfe,0xa,0xfd,0x3e,0xfc,0xf9,0xfb, +0xff,0xfb,0x6e,0xfc,0x71,0xfd,0x8d,0xfe,0x60,0xff,0x3d,0x0, +0xf9,0x0,0xeb,0x0,0x5a,0x0,0xdd,0xff,0x72,0xff,0x67,0xff, +0x46,0x0,0xa7,0x1,0xe2,0x2,0xfc,0x3,0xa,0x5,0xc8,0x5, +0xec,0x5,0x45,0x5,0xef,0x3,0x52,0x2,0x76,0x0,0x30,0xfe, +0x1d,0xfc,0xf,0xfb,0xb9,0xfa,0x8e,0xfa,0x7,0xfb,0x86,0xfc, +0x83,0xfe,0x88,0x0,0x66,0x2,0x9a,0x3,0xc0,0x3,0xef,0x2, +0x55,0x1,0xc,0xff,0x5c,0xfc,0xe3,0xf9,0x54,0xf8,0xb,0xf8, +0x2e,0xf9,0xb5,0xfb,0x23,0xff,0xe8,0x2,0x81,0x6,0x4,0x9, +0xc0,0x9,0xe7,0x8,0xd6,0x6,0xef,0x3,0xa,0x1,0xc1,0xfe, +0x26,0xfd,0x51,0xfc,0x56,0xfc,0xc,0xfd,0x37,0xfe,0x40,0xff, +0x84,0xff,0x28,0xff,0xc2,0xfe,0x49,0xfe,0x7e,0xfd,0xe8,0xfc, +0x2b,0xfd,0x24,0xfe,0xb8,0xff,0x26,0x2,0xf0,0x4,0x38,0x7, +0xff,0x8,0x35,0xa,0x7,0xa,0x21,0x8,0x1d,0x5,0x94,0x1, +0xc9,0xfd,0x38,0xfa,0xe5,0xf7,0x71,0xf7,0x4f,0xf8,0xc,0xfa, +0xe1,0xfc,0x40,0x0,0x6,0x3,0xe1,0x4,0xaa,0x5,0xfc,0x4, +0x5c,0x3,0xb9,0x1,0x2e,0x0,0xac,0xfe,0x8a,0xfd,0xf1,0xfc, +0xcd,0xfc,0x3d,0xfd,0x6e,0xfe,0x44,0x0,0x37,0x2,0xc3,0x3, +0xdb,0x4,0x8b,0x5,0x97,0x5,0xd8,0x4,0x64,0x3,0x61,0x1, +0x46,0xff,0xb8,0xfd,0xd1,0xfc,0x7a,0xfc,0xf0,0xfc,0x1b,0xfe, +0x72,0xff,0xdb,0x0,0x5f,0x2,0x8e,0x3,0x0,0x4,0x96,0x3, +0x44,0x2,0x74,0x0,0xbb,0xfe,0x39,0xfd,0x1c,0xfc,0xf7,0xfb, +0xd9,0xfc,0xf8,0xfd,0xca,0xfe,0x70,0xff,0xa7,0xff,0xc1,0xfe, +0xfc,0xfc,0x0,0xfb,0x9d,0xf8,0x1a,0xf6,0x9a,0xf4,0x6a,0xf4, +0x9d,0xf5,0xfd,0xf8,0x31,0xfe,0xe5,0x3,0x98,0x9,0x9a,0xe, +0xc5,0x11,0xff,0x12,0x4e,0x12,0x32,0xf,0x2b,0xa,0x27,0x4, +0x66,0xfd,0xab,0xf6,0x53,0xf1,0x42,0xee,0xe3,0xed,0x17,0xf0, +0x40,0xf4,0xcb,0xf9,0xa9,0xff,0x7e,0x4,0x9,0x8,0x42,0xa, +0x33,0xa,0xdf,0x7,0x28,0x5,0x79,0x3,0x92,0x2,0xcd,0x1, +0x2d,0x1,0xfc,0x0,0xd7,0x0,0xe9,0xff,0x23,0xfe,0x2a,0xfc, +0x91,0xfa,0xcb,0xf9,0xcb,0xf9,0xfc,0xf9,0x74,0xfa,0xf1,0xfb, +0x3f,0xfe,0x52,0x0,0xca,0x1,0x21,0x3,0xa7,0x4,0xb7,0x5, +0x48,0x5,0x75,0x3,0x11,0x1,0x12,0xfe,0x54,0xfa,0xd7,0xf6, +0x97,0xf4,0xa1,0xf3,0x37,0xf4,0xfb,0xf6,0x8f,0xfb,0x83,0x0, +0xca,0x4,0x47,0x8,0xea,0xa,0x76,0xc,0xcf,0xc,0xb6,0xb, +0x40,0x9,0x37,0x6,0xfd,0x2,0x5a,0xff,0xa5,0xfb,0x51,0xf8, +0xa8,0xf5,0x6c,0xf4,0xbf,0xf4,0xf3,0xf5,0x3a,0xf8,0xd4,0xfb, +0xbe,0xff,0x29,0x3,0xdb,0x5,0x63,0x7,0xe6,0x7,0xb0,0x7, +0x86,0x6,0xc,0x5,0x14,0x4,0xf8,0x2,0x91,0x1,0xec,0x0, +0xd7,0x0,0x71,0x0,0xde,0xff,0x7,0xff,0x78,0xfd,0xbc,0xfb, +0x6c,0xfa,0x80,0xf9,0x62,0xf9,0x6e,0xfa,0x45,0xfc,0xbc,0xfe, +0xa0,0x1,0x6,0x4,0xb3,0x5,0x3,0x7,0x2f,0x7,0x94,0x5, +0x29,0x3,0x61,0x0,0xc3,0xfc,0x13,0xf9,0x9c,0xf6,0x89,0xf5, +0xcc,0xf5,0x9b,0xf7,0xbd,0xfa,0x94,0xfe,0x72,0x2,0xea,0x5, +0xd4,0x8,0x94,0xa,0x95,0xa,0x49,0x9,0x11,0x7,0xbe,0x3, +0xde,0xff,0x68,0xfc,0x76,0xf9,0x15,0xf7,0x13,0xf6,0xf4,0xf6, +0xa,0xf9,0x6f,0xfb,0x20,0xfe,0x2f,0x1,0xf9,0x3,0x0,0x6, +0x44,0x7,0xc9,0x7,0xb4,0x7,0xe5,0x6,0x3,0x5,0xcf,0x2, +0x48,0x1,0xe7,0xff,0x1d,0xfe,0xc1,0xfc,0x5f,0xfc,0x53,0xfc, +0xa,0xfc,0xd6,0xfb,0x69,0xfc,0xba,0xfd,0x36,0xff,0xe3,0x0, +0x4,0x3,0x23,0x5,0x9d,0x6,0x2c,0x7,0xcc,0x6,0xb2,0x5, +0x1d,0x4,0x49,0x2,0x57,0x0,0x10,0xfe,0x97,0xfb,0xd2,0xf9, +0x47,0xf9,0xd1,0xf9,0x51,0xfb,0x8e,0xfd,0x28,0x0,0xb0,0x2, +0x87,0x4,0x9f,0x5,0x5c,0x6,0x2e,0x6,0xbc,0x4,0x33,0x3, +0x25,0x2,0xcc,0x0,0x66,0xff,0xb7,0xfe,0x59,0xfe,0x1b,0xfe, +0x96,0xfe,0x8a,0xff,0x54,0x0,0x11,0x1,0x82,0x1,0x23,0x1, +0x76,0x0,0xcd,0xff,0xc9,0xfe,0x2,0xfe,0x42,0xfe,0xdb,0xfe, +0x47,0xff,0xd4,0xff,0x24,0x0,0x9b,0xff,0x4a,0xfe,0x57,0xfc, +0x15,0xfa,0xf2,0xf7,0xec,0xf5,0x68,0xf4,0x45,0xf4,0xa8,0xf5, +0x54,0xf8,0x52,0xfc,0x66,0x1,0xd9,0x6,0xba,0xb,0x64,0xf, +0xbd,0x11,0x61,0x12,0x98,0x10,0x91,0xc,0x18,0x7,0xbf,0x0, +0x12,0xfa,0xcd,0xf3,0x5c,0xef,0x2f,0xee,0xc6,0xef,0xdc,0xf2, +0xa8,0xf7,0xf6,0xfd,0xe4,0x3,0x29,0x8,0x99,0xa,0xfd,0xa, +0x3e,0x9,0xbc,0x5,0xd1,0x1,0x54,0xff,0x6b,0xfe,0xf3,0xfd, +0x3,0xfe,0x30,0xff,0x8d,0x0,0xb8,0x0,0xea,0xff,0x80,0xff, +0xa8,0xff,0x71,0xff,0x13,0xff,0x28,0xff,0xed,0xfe,0x30,0xfe, +0xbf,0xfd,0x4e,0xfd,0x5c,0xfc,0xbc,0xfb,0x13,0xfc,0x23,0xfd, +0x6e,0xfe,0x76,0xff,0x9,0x0,0xe4,0xff,0xa2,0xfe,0xed,0xfc, +0xdf,0xfb,0x88,0xfb,0xc8,0xfb,0xf7,0xfc,0x24,0xff,0xd6,0x1, +0x3a,0x4,0xeb,0x5,0x6b,0x7,0x9c,0x8,0x7e,0x8,0x1b,0x7, +0x25,0x5,0x7c,0x2,0xed,0xfe,0x3,0xfb,0x7f,0xf7,0xf2,0xf4, +0xbf,0xf3,0x82,0xf4,0x94,0xf7,0xd,0xfc,0xd2,0x0,0xbb,0x5, +0x44,0xa,0xa,0xd,0x51,0xd,0x78,0xb,0x4b,0x8,0x8d,0x4, +0xdd,0x0,0xef,0xfd,0x38,0xfc,0x92,0xfb,0xc6,0xfb,0xa6,0xfc, +0xb9,0xfd,0xb1,0xfe,0x98,0xff,0x55,0x0,0xb4,0x0,0x7b,0x0, +0x9f,0xff,0x99,0xfe,0xd1,0xfd,0x63,0xfd,0xa8,0xfd,0xc0,0xfe, +0x35,0x0,0x98,0x1,0xa3,0x2,0x1f,0x3,0xe9,0x2,0xe6,0x1, +0x74,0x0,0x23,0xff,0xa4,0xfd,0x3,0xfc,0x68,0xfb,0xdd,0xfb, +0x4d,0xfc,0xea,0xfc,0x5c,0xfe,0x2d,0x0,0xc1,0x1,0x11,0x3, +0x49,0x4,0x44,0x5,0x51,0x5,0x3a,0x4,0xa2,0x2,0x95,0x0, +0xda,0xfd,0x50,0xfb,0xd5,0xf9,0x65,0xf9,0x17,0xfa,0x1b,0xfc, +0xf1,0xfe,0xcc,0x1,0x46,0x4,0x4e,0x6,0x6e,0x7,0xf5,0x6, +0x3d,0x5,0x5a,0x3,0xa1,0x1,0xfe,0xff,0xac,0xfe,0xc4,0xfd, +0x45,0xfd,0x41,0xfd,0x9b,0xfd,0x53,0xfe,0x8e,0xff,0x19,0x1, +0xb2,0x2,0x39,0x4,0x5d,0x5,0xce,0x5,0x67,0x5,0x4b,0x4, +0xe4,0x2,0x4f,0x1,0x72,0xff,0xca,0xfd,0xa4,0xfc,0xba,0xfb, +0x3f,0xfb,0x60,0xfb,0xa9,0xfb,0x2f,0xfc,0x35,0xfd,0x57,0xfe, +0xb7,0xff,0xc0,0x1,0xff,0x3,0x23,0x6,0x5,0x8,0xd2,0x8, +0x66,0x8,0x57,0x7,0x74,0x5,0xd9,0x2,0x70,0x0,0x4d,0xfe, +0x6b,0xfc,0x7f,0xfb,0x75,0xfb,0xb8,0xfb,0x87,0xfc,0xfe,0xfd, +0x84,0xff,0xdf,0x0,0x2e,0x2,0x62,0x3,0x51,0x4,0xa9,0x4, +0x15,0x4,0xca,0x2,0x5f,0x1,0x9,0x0,0xa3,0xfe,0x69,0xfd, +0x9f,0xfc,0xe8,0xfb,0xf9,0xfa,0xf1,0xf9,0xb1,0xf8,0x48,0xf7, +0x4a,0xf6,0xcc,0xf5,0xb1,0xf5,0x78,0xf6,0x8e,0xf8,0xec,0xfb, +0x52,0x0,0x26,0x5,0xf1,0x9,0x6e,0xe,0xd1,0x11,0x48,0x13, +0x81,0x12,0x1b,0xf,0x3f,0x9,0x1f,0x2,0xd8,0xfa,0x1a,0xf4, +0xe4,0xee,0xaa,0xec,0x52,0xee,0xce,0xf2,0x42,0xf8,0x49,0xfe, +0x57,0x4,0x4c,0x8,0x83,0x9,0x77,0x9,0xbe,0x8,0x6,0x7, +0xc2,0x4,0xe2,0x2,0x4,0x2,0xc9,0x1,0x1a,0x1,0xcc,0xff, +0x93,0xfe,0x8a,0xfd,0x68,0xfc,0x55,0xfb,0xf0,0xfa,0x90,0xfb, +0x99,0xfc,0x82,0xfd,0x8a,0xfe,0x71,0xff,0x91,0xff,0x30,0xff, +0xf3,0xfe,0xea,0xfe,0xca,0xfe,0xa3,0xfe,0x2a,0xff,0x59,0x0, +0xcf,0x0,0x45,0x0,0x7a,0xff,0x12,0xfe,0x1a,0xfc,0xe1,0xfa, +0x94,0xfa,0xcf,0xfa,0xed,0xfb,0xe4,0xfd,0x84,0x0,0x7d,0x3, +0x83,0x5,0x5d,0x6,0x46,0x7,0x2,0x8,0x6d,0x7,0x76,0x5, +0x8d,0x2,0x7b,0xff,0xce,0xfc,0x16,0xfa,0xbf,0xf7,0x10,0xf7, +0xdb,0xf7,0x86,0xf9,0x3b,0xfc,0x7e,0xff,0xa1,0x2,0x73,0x5, +0x5b,0x7,0xa,0x8,0x7,0x8,0x65,0x7,0xed,0x5,0x1c,0x4, +0xb5,0x2,0xc2,0x1,0xa4,0x0,0x55,0xff,0x87,0xfe,0x13,0xfe, +0x72,0xfd,0xfd,0xfc,0xee,0xfc,0x2,0xfd,0x5d,0xfd,0x2,0xfe, +0xd5,0xfe,0xf7,0xff,0xe4,0x0,0x1b,0x1,0x2a,0x1,0x3b,0x1, +0xdc,0x0,0x55,0x0,0xf2,0xff,0x8a,0xff,0x3f,0xff,0x1a,0xff, +0x9,0xff,0x30,0xff,0x39,0xff,0xcb,0xfe,0x68,0xfe,0x81,0xfe, +0x8,0xff,0x9,0x0,0x90,0x1,0x45,0x3,0x8c,0x4,0x5,0x5, +0xe4,0x4,0x15,0x4,0x8,0x2,0x1a,0xff,0x6e,0xfc,0x49,0xfa, +0x71,0xf8,0x6c,0xf7,0x0,0xf8,0x13,0xfa,0xe7,0xfc,0x1e,0x0, +0xb5,0x3,0xdc,0x6,0x80,0x8,0xcd,0x8,0x6b,0x8,0x27,0x7, +0xd6,0x4,0x41,0x2,0x20,0x0,0x60,0xfe,0x14,0xfd,0xc3,0xfc, +0x3a,0xfd,0xda,0xfd,0xed,0xfe,0xb8,0x0,0x56,0x2,0x2b,0x3, +0x91,0x3,0xba,0x3,0xae,0x3,0x50,0x3,0x28,0x2,0x68,0x0, +0xc9,0xfe,0x3c,0xfd,0x80,0xfb,0x35,0xfa,0xdd,0xf9,0x38,0xfa, +0xd,0xfb,0x9d,0xfc,0xfd,0xfe,0x77,0x1,0x61,0x3,0x24,0x5, +0xf8,0x6,0x16,0x8,0x53,0x8,0x56,0x8,0xef,0x7,0x97,0x6, +0x94,0x4,0x2b,0x2,0x4b,0xff,0x51,0xfc,0xd6,0xf9,0x33,0xf8, +0xc0,0xf7,0x9c,0xf8,0x5b,0xfa,0xa3,0xfc,0x77,0xff,0x7a,0x2, +0xf3,0x4,0xb1,0x6,0xd9,0x7,0xc,0x8,0xf5,0x6,0x2c,0x5, +0x65,0x3,0x7b,0x1,0x2c,0xff,0xbc,0xfc,0x70,0xfa,0x4e,0xf8, +0x63,0xf6,0xaf,0xf4,0x1c,0xf3,0xbb,0xf1,0xdd,0xf0,0xe7,0xf0, +0x15,0xf2,0xd1,0xf4,0xd8,0xf9,0x16,0x1,0x5f,0x9,0xb3,0x11, +0xfc,0x18,0x68,0x1d,0x2b,0x1e,0xa6,0x1b,0x56,0x15,0x25,0xb, +0x47,0xff,0xe7,0xf3,0xdb,0xe9,0xb0,0xe2,0x89,0xe0,0xed,0xe3, +0x64,0xeb,0xd3,0xf4,0x99,0xfe,0x73,0x7,0xde,0xd,0xcc,0x10, +0xa2,0x10,0xba,0xe,0x16,0xc,0xff,0x8,0xef,0x5,0xeb,0x3, +0xec,0x2,0xc0,0x1,0xfd,0xff,0xe9,0xfd,0x84,0xfb,0x25,0xf9, +0x57,0xf7,0x52,0xf6,0x83,0xf6,0xe3,0xf7,0xa7,0xf9,0xbb,0xfb, +0x3a,0xfe,0x54,0x0,0xd0,0x1,0x42,0x3,0x78,0x4,0xf6,0x4, +0xc4,0x4,0xf8,0x3,0x9a,0x2,0x92,0x0,0xc9,0xfd,0xea,0xfa, +0xbf,0xf8,0x66,0xf7,0xf7,0xf6,0xa1,0xf7,0x23,0xf9,0x4e,0xfb, +0x21,0xfe,0x3f,0x1,0x32,0x4,0xda,0x6,0x59,0x9,0x7c,0xb, +0x86,0xc,0xed,0xb,0xa9,0x9,0xac,0x5,0x53,0x0,0xde,0xfa, +0x60,0xf6,0x57,0xf3,0x36,0xf2,0x20,0xf3,0xbf,0xf5,0xc9,0xf9, +0xbb,0xfe,0x77,0x3,0x23,0x7,0xc8,0x9,0x6e,0xb,0x8d,0xb, +0x22,0xa,0xfa,0x7,0x9d,0x5,0x46,0x3,0x44,0x1,0x68,0xff, +0xa2,0xfd,0xba,0xfc,0xea,0xfc,0x5f,0xfd,0xba,0xfd,0x1b,0xfe, +0x54,0xfe,0x4d,0xfe,0x3f,0xfe,0x2c,0xfe,0x15,0xfe,0x6d,0xfe, +0x91,0xff,0xec,0x0,0xab,0x1,0xea,0x1,0xe8,0x1,0x3,0x1, +0x41,0xff,0xe6,0xfd,0x4d,0xfd,0xa5,0xfc,0x11,0xfc,0x90,0xfc, +0xfe,0xfd,0x44,0xff,0x48,0x0,0xda,0x1,0xe6,0x3,0x83,0x5, +0x47,0x6,0x3a,0x6,0x6e,0x5,0x6,0x4,0xe7,0x1,0xf5,0xfe, +0xbd,0xfb,0xe6,0xf8,0xc7,0xf6,0xdd,0xf5,0x7d,0xf6,0x70,0xf8, +0x8c,0xfb,0xc4,0xff,0x7d,0x4,0x6e,0x8,0xa3,0xa,0x7b,0xb, +0x76,0xb,0xc4,0x9,0x2c,0x6,0x77,0x2,0x94,0xff,0xab,0xfc, +0x11,0xfa,0x2e,0xf9,0xf9,0xf9,0xb3,0xfb,0x20,0xfe,0xc1,0x0, +0xdd,0x2,0x13,0x4,0x44,0x4,0xdc,0x3,0x56,0x3,0x69,0x2, +0x1e,0x1,0x37,0x0,0xa3,0xff,0xcf,0xfe,0xfe,0xfd,0x8f,0xfd, +0x56,0xfd,0x2f,0xfd,0x16,0xfd,0x4b,0xfd,0x10,0xfe,0xa,0xff, +0x17,0x0,0x95,0x1,0xb,0x3,0xe6,0x3,0x96,0x4,0x19,0x5, +0xf1,0x4,0x79,0x4,0xe3,0x3,0xa9,0x2,0x6,0x1,0xaa,0xff, +0x8d,0xfe,0x6d,0xfd,0x8a,0xfc,0x53,0xfc,0xc9,0xfc,0x88,0xfd, +0x7d,0xfe,0xe8,0xff,0x9d,0x1,0xf9,0x2,0x9c,0x3,0xe8,0x3, +0x1b,0x4,0x5b,0x3,0x82,0x1,0xf9,0xff,0xe5,0xfe,0x6,0xfd, +0xa9,0xfa,0xc1,0xf8,0x35,0xf7,0x1c,0xf6,0x91,0xf5,0x26,0xf5, +0xd,0xf5,0x93,0xf5,0xa1,0xf6,0xd2,0xf8,0x91,0xfc,0x6e,0x1, +0x54,0x7,0xb3,0xd,0x18,0x13,0xd4,0x16,0x58,0x18,0x76,0x16, +0x7,0x11,0xd1,0x8,0xb8,0xfe,0x97,0xf4,0x6d,0xec,0x48,0xe7, +0x1b,0xe6,0x78,0xe9,0x54,0xf0,0x8f,0xf8,0x60,0x0,0xe5,0x6, +0x53,0xb,0xd1,0xc,0x2c,0xc,0x2d,0xb,0xc3,0x9,0x5e,0x7, +0x3e,0x5,0xb,0x4,0x9a,0x2,0x90,0x0,0xb9,0xfe,0x2,0xfd, +0x25,0xfb,0xdd,0xf9,0x83,0xf9,0x60,0xf9,0x94,0xf9,0xda,0xfa, +0x6b,0xfc,0x19,0xfd,0x48,0xfd,0xb5,0xfd,0x5a,0xfe,0xfe,0xfe, +0x74,0xff,0xf3,0xff,0xc4,0x0,0x61,0x1,0x99,0x1,0xd8,0x1, +0x73,0x1,0xc4,0xff,0xb5,0xfd,0xf5,0xfb,0x76,0xfa,0x71,0xf9, +0xf9,0xf8,0x7a,0xf9,0xca,0xfb,0x35,0xff,0x8c,0x2,0x53,0x6, +0x95,0xa,0x90,0xd,0x3a,0xe,0xe7,0xc,0x6c,0x9,0x96,0x3, +0xc5,0xfc,0xd6,0xf6,0x57,0xf2,0xb3,0xef,0x19,0xf0,0x99,0xf3, +0xf4,0xf8,0x14,0xff,0xb8,0x4,0xde,0x8,0xaf,0xb,0xf2,0xc, +0x34,0xc,0x5e,0xa,0xc,0x8,0xf2,0x4,0xd2,0x1,0x63,0xff, +0x41,0xfd,0x98,0xfb,0xc4,0xfa,0xa3,0xfa,0x74,0xfb,0xee,0xfc, +0xd,0xfe,0xed,0xfe,0xf7,0xff,0x9d,0x0,0xa6,0x0,0x65,0x0, +0x14,0x0,0x1a,0x0,0x7a,0x0,0x8d,0x0,0x1b,0x0,0x6d,0xff, +0xdf,0xfe,0xb5,0xfe,0x85,0xfe,0xdd,0xfd,0x3c,0xfd,0xf1,0xfc, +0x71,0xfc,0xc4,0xfb,0x9c,0xfb,0x26,0xfc,0x3a,0xfd,0x15,0xff, +0xe5,0x1,0x16,0x5,0xb2,0x7,0x2f,0x9,0x62,0x9,0x15,0x8, +0x36,0x5,0x37,0x1,0xa,0xfd,0xa1,0xf9,0x80,0xf7,0xe6,0xf6, +0xd9,0xf7,0xfd,0xf9,0xd5,0xfc,0xd5,0xff,0x5e,0x2,0x2d,0x4, +0x56,0x5,0xd4,0x5,0xdd,0x5,0xc0,0x5,0x46,0x5,0x3b,0x4, +0xce,0x2,0x1d,0x1,0x65,0xff,0x3b,0xfe,0xe8,0xfd,0x5d,0xfe, +0x58,0xff,0x40,0x0,0xc0,0x0,0xc1,0x0,0xec,0xff,0x99,0xfe, +0xf3,0xfd,0x2a,0xfe,0x91,0xfe,0x4c,0xff,0x80,0x0,0x4e,0x1, +0x56,0x1,0x4b,0x1,0x86,0x1,0xbb,0x1,0xe4,0x1,0x4d,0x2, +0x8,0x3,0x9d,0x3,0x55,0x3,0x3a,0x2,0xf,0x1,0xa,0x0, +0xd6,0xfe,0xdf,0xfd,0xe5,0xfd,0xa2,0xfe,0x8e,0xff,0xde,0x0, +0x68,0x2,0x4d,0x3,0x74,0x3,0x1e,0x3,0xc4,0x1,0x95,0xff, +0x4,0xfe,0x86,0xfd,0x7e,0xfd,0xf3,0xfd,0xe,0xff,0x60,0x0, +0x81,0x1,0xc,0x2,0xb9,0x1,0xcd,0x0,0x84,0xff,0xdd,0xfd, +0x1a,0xfc,0x3e,0xfa,0x15,0xf8,0x1c,0xf6,0x11,0xf5,0xcd,0xf4, +0x9e,0xf4,0x93,0xf4,0x94,0xf5,0xdc,0xf7,0xd7,0xfa,0xee,0xfe, +0xb8,0x4,0xf,0xb,0x6b,0x10,0x33,0x14,0xc4,0x15,0x4b,0x14, +0x57,0xf,0x66,0x7,0xa6,0xfe,0x69,0xf7,0x55,0xf2,0x10,0xf0, +0xa3,0xf1,0xe9,0xf5,0x69,0xfa,0x3e,0xfe,0x7b,0x1,0x46,0x3, +0xbb,0x2,0x1f,0x1,0xbd,0x0,0x79,0x1,0xf7,0x1,0xfa,0x2, +0x9,0x5,0x1e,0x6,0x3e,0x5,0xd1,0x3,0x3a,0x2,0xa6,0xff, +0x86,0xfc,0x64,0xfa,0xe0,0xf9,0x10,0xfa,0x78,0xfa,0xc9,0xfb, +0x8c,0xfd,0x1c,0xfe,0x8e,0xfd,0x3b,0xfd,0x4d,0xfd,0x41,0xfd, +0x7,0xfd,0xed,0xfc,0x28,0xfd,0x56,0xfd,0x2f,0xfd,0x5a,0xfd, +0xd1,0xfd,0x61,0xfd,0x37,0xfc,0x0,0xfc,0xd8,0xfc,0x4f,0xfd, +0x9f,0xfd,0xbb,0xff,0xd6,0x3,0xa4,0x7,0xcb,0x9,0x17,0xb, +0x97,0xb,0xd6,0x9,0x93,0x5,0x5a,0x0,0x26,0xfb,0x11,0xf6, +0x1c,0xf2,0xc9,0xf0,0x43,0xf2,0xa1,0xf5,0x4b,0xfa,0xcc,0xff, +0x2b,0x5,0x60,0x9,0xea,0xb,0x8b,0xc,0x5a,0xb,0x1d,0x9, +0x98,0x6,0x13,0x4,0xd,0x2,0xd5,0x0,0xbd,0xff,0x7b,0xfe, +0x84,0xfd,0x4f,0xfc,0x5d,0xfa,0xbe,0xf8,0x24,0xf8,0x2f,0xf8, +0x10,0xf9,0xef,0xfa,0x46,0xfd,0xd1,0xff,0x44,0x2,0x16,0x4, +0x40,0x5,0xae,0x5,0x2e,0x5,0x51,0x4,0x6f,0x3,0x5,0x2, +0x10,0x0,0x13,0xfe,0x2e,0xfc,0x63,0xfa,0xcd,0xf8,0x85,0xf7, +0xd3,0xf6,0x12,0xf7,0x69,0xf8,0xda,0xfa,0x60,0xfe,0xc2,0x2, +0x23,0x7,0x60,0xa,0xf3,0xb,0xb6,0xb,0x75,0x9,0xa8,0x5, +0x6f,0x1,0x6d,0xfd,0xd6,0xf9,0x4f,0xf7,0xa2,0xf6,0xa9,0xf7, +0x9e,0xf9,0x5f,0xfc,0xcc,0xff,0xbb,0x2,0x86,0x4,0x97,0x5, +0xbc,0x5,0xd3,0x4,0xd1,0x3,0x31,0x3,0x97,0x2,0x1a,0x2, +0xe8,0x1,0xc3,0x1,0x59,0x1,0x8f,0x0,0xf3,0xff,0x1c,0x0, +0x6b,0x0,0x18,0x0,0x7b,0xff,0x23,0xff,0xf,0xff,0xdf,0xfe, +0x6d,0xfe,0x2f,0xfe,0x36,0xfe,0xdd,0xfd,0x85,0xfd,0x26,0xfe, +0x84,0xff,0x28,0x1,0x36,0x3,0x65,0x5,0x3a,0x7,0x5e,0x8, +0x27,0x8,0x7d,0x6,0x44,0x4,0xef,0x1,0x6f,0xff,0x54,0xfd, +0x62,0xfc,0x9a,0xfc,0x9d,0xfd,0x46,0xff,0x2b,0x1,0x60,0x2, +0x94,0x2,0x20,0x2,0xf0,0x0,0x35,0xff,0x2,0xfe,0xbc,0xfd, +0xf2,0xfd,0xe4,0xfe,0xd2,0x0,0xfb,0x2,0xc0,0x4,0x4,0x6, +0x64,0x6,0x8d,0x5,0xab,0x3,0xf4,0x0,0x9f,0xfd,0xf,0xfa, +0x8e,0xf6,0x6a,0xf3,0x2,0xf1,0x47,0xef,0x3b,0xee,0x8e,0xee, +0x87,0xf0,0xed,0xf3,0x3e,0xf9,0x9d,0x0,0xae,0x8,0x63,0x10, +0x50,0x17,0x12,0x1c,0x45,0x1d,0xb4,0x1a,0x6e,0x14,0xfe,0xa, +0x21,0x0,0x1,0xf6,0x71,0xee,0x97,0xea,0x90,0xea,0xd3,0xed, +0x43,0xf3,0x46,0xf9,0xc1,0xfe,0x8,0x3,0x84,0x5,0xeb,0x6, +0x85,0x8,0xdd,0x9,0xe9,0x9,0x2d,0x9,0x72,0x8,0x29,0x7, +0x80,0x4,0xe3,0x0,0x9e,0xfd,0x1f,0xfb,0xd7,0xf8,0x2b,0xf7, +0x24,0xf7,0x27,0xf8,0xe9,0xf8,0xf9,0xf9,0x3c,0xfc,0x6e,0xfe, +0x17,0xff,0x30,0xff,0x27,0x0,0x43,0x1,0x47,0x1,0xb3,0x0, +0x7f,0x0,0x58,0x0,0x6c,0xff,0xeb,0xfd,0xbe,0xfc,0x26,0xfc, +0x99,0xfb,0x2f,0xfb,0xeb,0xfb,0xf5,0xfd,0x31,0x0,0x1b,0x2, +0x3a,0x4,0x87,0x6,0x50,0x8,0x82,0x9,0x79,0xa,0xbd,0xa, +0x38,0x9,0xb0,0x5,0x6,0x1,0xe,0xfc,0x4b,0xf7,0xb3,0xf3, +0x2f,0xf2,0xbe,0xf2,0x8,0xf5,0xe2,0xf8,0xce,0xfd,0xff,0x2, +0xa2,0x7,0x39,0xb,0xdd,0xd,0x53,0xf,0xc3,0xe,0x57,0xc, +0x8,0x9,0x2a,0x5,0x33,0x1,0xf6,0xfd,0x5c,0xfb,0x25,0xf9, +0xc8,0xf7,0x3e,0xf7,0x27,0xf7,0xaa,0xf7,0xed,0xf8,0xb6,0xfa, +0xa1,0xfc,0x63,0xfe,0x3e,0x0,0x56,0x2,0x3a,0x4,0xb2,0x5, +0xb9,0x6,0xc,0x7,0x90,0x6,0xf1,0x4,0x15,0x2,0x1f,0xff, +0xd1,0xfc,0xc0,0xfa,0x4e,0xf9,0xf,0xf9,0x5e,0xf9,0x14,0xfa, +0xc2,0xfb,0x1b,0xfe,0x8f,0x0,0x1e,0x3,0xaf,0x5,0xba,0x7, +0xa1,0x8,0x65,0x8,0x73,0x7,0x7b,0x5,0x70,0x2,0x57,0xff, +0x5a,0xfc,0x4d,0xf9,0xaf,0xf7,0x4e,0xf8,0xb8,0xf9,0x44,0xfb, +0xc5,0xfd,0xe,0x1,0xd3,0x3,0x89,0x5,0xea,0x6,0x4e,0x8, +0xab,0x8,0x9b,0x7,0x46,0x6,0xfa,0x4,0xd1,0x2,0xfc,0xff, +0xe2,0xfd,0x43,0xfd,0x91,0xfd,0xf1,0xfd,0x53,0xfe,0x5,0xff, +0xc0,0xff,0x9,0x0,0xc2,0xff,0x24,0xff,0x9d,0xfe,0x71,0xfe, +0xa3,0xfe,0x48,0xff,0x5e,0x0,0xbf,0x1,0x43,0x3,0x42,0x4, +0x25,0x4,0x79,0x3,0x2,0x3,0xa6,0x2,0x3d,0x2,0x14,0x2, +0x70,0x2,0xb,0x3,0x24,0x3,0x85,0x2,0xe3,0x1,0x9a,0x1, +0x48,0x1,0xc8,0x0,0x71,0x0,0x8d,0x0,0xc2,0x0,0x76,0x0, +0x23,0x0,0xb8,0x0,0x9d,0x1,0xe7,0x1,0xff,0x1,0x3f,0x2, +0x43,0x2,0x1b,0x2,0xf8,0x1,0x84,0x1,0x81,0x0,0xfa,0xfe, +0xfb,0xfc,0xb2,0xfa,0x81,0xf8,0xdf,0xf6,0xf2,0xf5,0x4d,0xf5, +0xac,0xf4,0x3c,0xf4,0xea,0xf3,0xf4,0xf3,0x7f,0xf5,0x2c,0xf9, +0xba,0xfe,0xcc,0x5,0x4e,0xd,0xce,0x13,0xde,0x18,0xea,0x1b, +0x60,0x1b,0x7e,0x16,0xb3,0xd,0x1a,0x2,0x33,0xf6,0x97,0xec, +0x78,0xe6,0xe2,0xe4,0x41,0xe8,0xc8,0xee,0x3b,0xf6,0x73,0xfd, +0x98,0x3,0x3d,0x8,0x53,0xb,0xe8,0xc,0xd9,0xd,0x6e,0xe, +0x72,0xd,0xdb,0xa,0xe9,0x7,0x68,0x4,0xb1,0xff,0x95,0xfa, +0x74,0xf6,0x42,0xf4,0xf7,0xf3,0xd4,0xf4,0xdf,0xf6,0x5,0xfa, +0xd3,0xfc,0x62,0xfe,0xd,0xff,0xdf,0xfe,0x2c,0xfe,0x20,0xfe, +0x22,0xff,0x78,0x0,0x71,0x1,0xff,0x1,0x66,0x2,0x5e,0x2, +0x37,0x1,0xf,0xff,0xbd,0xfc,0xe7,0xfa,0xc1,0xf9,0x5e,0xf9, +0x3d,0xfa,0xb6,0xfc,0xdc,0xff,0xbb,0x2,0x96,0x5,0x65,0x8, +0x3f,0xa,0xb2,0xa,0xed,0x9,0x22,0x8,0x5d,0x5,0xb5,0x1, +0xc0,0xfd,0x25,0xfa,0xea,0xf6,0x6e,0xf4,0xa0,0xf3,0x8a,0xf4, +0x9c,0xf6,0xec,0xf9,0x9b,0xfe,0x2,0x4,0xfc,0x8,0x82,0xc, +0x3c,0xe,0x53,0xe,0xb6,0xc,0x87,0x9,0xcc,0x5,0x63,0x2, +0x27,0xff,0xf,0xfc,0xdf,0xf9,0xf9,0xf8,0xff,0xf8,0xcf,0xf9, +0x14,0xfb,0xd8,0xfb,0xeb,0xfb,0x1c,0xfc,0xaa,0xfc,0x4c,0xfd, +0x1d,0xfe,0x72,0xff,0x59,0x1,0x44,0x3,0x95,0x4,0x38,0x5, +0xdf,0x4,0x10,0x3,0x6a,0x0,0xc0,0xfd,0x17,0xfb,0x8,0xf9, +0x96,0xf8,0xb7,0xf9,0x3,0xfc,0x3a,0xff,0x86,0x2,0xe,0x5, +0x93,0x6,0xbc,0x6,0x5f,0x5,0x2f,0x3,0x13,0x1,0x58,0xff, +0xd1,0xfd,0x72,0xfc,0x86,0xfb,0x49,0xfb,0x8d,0xfb,0x12,0xfc, +0x1d,0xfd,0x2d,0xff,0xd1,0x1,0xe1,0x3,0x15,0x5,0xbb,0x5, +0x98,0x5,0x9c,0x4,0x70,0x3,0xaa,0x2,0x65,0x2,0x52,0x2, +0x21,0x2,0xde,0x1,0x65,0x1,0x8d,0x0,0xec,0xff,0xa6,0xff, +0x20,0xff,0xbc,0xfe,0x7,0xff,0x31,0xff,0xde,0xfe,0xce,0xfe, +0xf0,0xfe,0xcf,0xfe,0xdd,0xfe,0x80,0xff,0x7c,0x0,0x75,0x1, +0x10,0x2,0x32,0x2,0xc,0x2,0x8f,0x1,0xbf,0x0,0x3,0x0, +0xa0,0xff,0xc1,0xff,0x97,0x0,0xbc,0x1,0xa7,0x2,0xa3,0x3, +0xd2,0x4,0x9a,0x5,0xc2,0x5,0x43,0x5,0xab,0x3,0x32,0x1, +0xae,0xfe,0x43,0xfc,0x1d,0xfa,0x27,0xf9,0xf7,0xf9,0x3c,0xfc, +0x12,0xff,0x96,0x1,0xd8,0x3,0x5,0x6,0x2,0x7,0x10,0x6, +0xa,0x4,0x80,0x1,0x12,0xfe,0x2f,0xfa,0xd,0xf7,0x18,0xf5, +0x8b,0xf3,0xe4,0xf1,0xb7,0xf0,0x5d,0xf0,0x6e,0xf0,0x66,0xf1, +0x76,0xf4,0x8a,0xf9,0x94,0xff,0x34,0x6,0x57,0xd,0x7,0x14, +0xe1,0x18,0x58,0x1b,0x67,0x1b,0x44,0x18,0xe7,0x10,0xde,0x5, +0x74,0xf9,0x69,0xee,0xc9,0xe6,0xbc,0xe3,0xc5,0xe5,0x2b,0xec, +0x83,0xf4,0x3a,0xfc,0xa,0x2,0xcd,0x5,0xf4,0x7,0x15,0x9, +0xe7,0x9,0x38,0xb,0xa5,0xc,0x9c,0xc,0xc2,0xa,0x0,0x8, +0x42,0x4,0xf,0xff,0x86,0xf9,0x90,0xf5,0x8a,0xf3,0x97,0xf2, +0xf5,0xf2,0x4c,0xf5,0x53,0xf8,0x96,0xfa,0xa2,0xfc,0xeb,0xfe, +0xd5,0x0,0x68,0x2,0xe7,0x3,0xe,0x5,0x9d,0x5,0x18,0x5, +0x43,0x3,0xa8,0x0,0x90,0xfd,0x60,0xfa,0x25,0xf8,0x21,0xf7, +0xf2,0xf6,0xbb,0xf7,0x6d,0xf9,0xef,0xfb,0x41,0xff,0x6e,0x2, +0xd8,0x4,0x22,0x7,0x3d,0x9,0x99,0xa,0x2d,0xb,0x5f,0xa, +0xb9,0x7,0xef,0x3,0x74,0xff,0xb4,0xfa,0xe2,0xf6,0x90,0xf4, +0xee,0xf3,0x8c,0xf5,0xd9,0xf8,0x76,0xfc,0xff,0xff,0x67,0x3, +0x37,0x6,0x17,0x8,0xeb,0x8,0xed,0x8,0x67,0x8,0x3d,0x7, +0xa4,0x5,0xec,0x3,0x91,0x1,0xcf,0xfe,0x45,0xfd,0x24,0xfd, +0xdd,0xfc,0x23,0xfc,0x2,0xfc,0x72,0xfc,0x38,0xfc,0x23,0xfb, +0xb4,0xfa,0xb7,0xfb,0xdb,0xfc,0x3b,0xfd,0xf1,0xfd,0x86,0xff, +0xcc,0x0,0x12,0x1,0xca,0x0,0x62,0x0,0xdc,0xff,0xd9,0xfe, +0x50,0xfd,0x34,0xfc,0x32,0xfc,0xd,0xfd,0xf0,0xfe,0xf1,0x1, +0xd2,0x4,0x8d,0x6,0x53,0x7,0x24,0x7,0xa4,0x5,0x14,0x3, +0x22,0x0,0x45,0xfd,0xab,0xfa,0xb1,0xf8,0xd3,0xf7,0xe5,0xf7, +0x9d,0xf8,0x7d,0xfa,0x8a,0xfd,0xd4,0x0,0xfb,0x3,0xe6,0x6, +0xf2,0x8,0xe7,0x9,0xf1,0x9,0xbe,0x8,0x4b,0x6,0x73,0x3, +0x7,0x1,0x4c,0xff,0x3e,0xfe,0xcd,0xfd,0xca,0xfd,0xf6,0xfd, +0x4d,0xfe,0xa7,0xfe,0xa3,0xfe,0x6f,0xfe,0x65,0xfe,0x54,0xfe, +0x59,0xfe,0xb4,0xfe,0xe,0xff,0x8f,0xff,0x9b,0x0,0x75,0x1, +0x80,0x1,0x1a,0x1,0x8f,0x0,0x27,0x0,0x23,0x0,0x19,0x0, +0xfe,0xff,0x4e,0x0,0xde,0x0,0x48,0x1,0x8c,0x1,0xdb,0x1, +0x73,0x2,0x11,0x3,0x4f,0x3,0xa7,0x3,0x4e,0x4,0x6f,0x4, +0xc0,0x3,0x66,0x2,0x31,0x0,0xae,0xfd,0xbf,0xfb,0x77,0xfa, +0xf9,0xf9,0xaf,0xfa,0x5d,0xfc,0x9b,0xfe,0x4a,0x1,0xed,0x3, +0x9e,0x5,0xe,0x6,0xbc,0x5,0xbe,0x4,0x9c,0x2,0x9a,0xff, +0x49,0xfc,0xa1,0xf8,0xf4,0xf4,0xac,0xf1,0x94,0xee,0x4b,0xec, +0xfa,0xeb,0xae,0xed,0x56,0xf1,0x29,0xf7,0x6c,0xfe,0x60,0x6, +0x92,0xe,0x8d,0x15,0xb,0x1a,0xe5,0x1b,0xa8,0x1a,0xad,0x15, +0x51,0xd,0xf1,0x2,0x89,0xf8,0xdb,0xef,0x1b,0xea,0xce,0xe8, +0x74,0xec,0xad,0xf2,0xa0,0xf8,0xa3,0xfd,0xe4,0x1,0xe8,0x4, +0x4c,0x6,0xa0,0x6,0xfa,0x6,0xb4,0x7,0xd6,0x7,0x91,0x6, +0x5e,0x4,0xc7,0x1,0xb0,0xfe,0x8c,0xfb,0x6f,0xf9,0xa5,0xf8, +0xc4,0xf8,0x98,0xf9,0xe8,0xfa,0x52,0xfc,0xa7,0xfd,0xb5,0xfe, +0x5b,0xff,0xfe,0xff,0xe1,0x0,0xc9,0x1,0x88,0x2,0xe6,0x2, +0x7e,0x2,0x49,0x1,0x6e,0xff,0x6,0xfd,0x8e,0xfa,0x77,0xf8, +0xa3,0xf6,0xa3,0xf5,0xa2,0xf6,0x37,0xf9,0xee,0xfb,0xcd,0xfe, +0x41,0x2,0x44,0x5,0x65,0x7,0x9e,0x9,0xd6,0xb,0xe8,0xc, +0x89,0xc,0xe7,0xa,0xe,0x8,0x13,0x4,0x1a,0xff,0x17,0xfa, +0x5b,0xf6,0x2f,0xf4,0xc0,0xf3,0x78,0xf5,0xa2,0xf8,0x89,0xfc, +0xfa,0x0,0xb3,0x4,0xfb,0x6,0xb2,0x8,0xb2,0x9,0x60,0x9, +0x71,0x8,0x0,0x7,0xb8,0x4,0x4a,0x2,0xd7,0xff,0x66,0xfd, +0x10,0xfc,0xbd,0xfb,0x8e,0xfb,0x18,0xfc,0x47,0xfd,0xd6,0xfd, +0x3,0xfe,0x87,0xfe,0xec,0xfe,0x17,0xff,0x43,0xff,0x1,0xff, +0x3d,0xfe,0x76,0xfd,0xe7,0xfc,0x91,0xfc,0x87,0xfc,0xf6,0xfc, +0xe3,0xfd,0xda,0xfe,0x75,0xff,0xe1,0xff,0x67,0x0,0x38,0x1, +0x6d,0x2,0x99,0x3,0x66,0x4,0x65,0x5,0xbd,0x6,0x42,0x7, +0x58,0x6,0x9e,0x4,0x49,0x2,0x3c,0xff,0x1f,0xfc,0x96,0xf9, +0xe6,0xf7,0x79,0xf7,0x54,0xf8,0x1e,0xfa,0xdb,0xfc,0x2a,0x0, +0x34,0x3,0x8d,0x5,0x11,0x7,0xf1,0x7,0x87,0x8,0x59,0x8, +0x25,0x7,0xfc,0x5,0x4c,0x5,0x49,0x4,0xb7,0x2,0x11,0x1, +0x96,0xff,0xea,0xfd,0xac,0xfb,0xa3,0xf9,0xa8,0xf8,0x37,0xf8, +0x71,0xf8,0x2e,0xfa,0xc1,0xfc,0x73,0xff,0x41,0x2,0xfc,0x3, +0x33,0x4,0x4e,0x4,0x56,0x4,0x81,0x3,0x78,0x2,0xaa,0x1, +0xd7,0x0,0x31,0x0,0xdc,0xff,0xf9,0xff,0x7e,0x0,0xba,0x0, +0xcc,0x0,0x42,0x1,0x88,0x1,0xa3,0x1,0x4e,0x2,0xf6,0x2, +0x10,0x3,0xe6,0x2,0x11,0x2,0x9c,0x0,0x86,0xff,0xe6,0xfe, +0x7e,0xfe,0xc5,0xfe,0xce,0xff,0x28,0x1,0x7a,0x2,0x8e,0x3, +0x22,0x4,0x7f,0x3,0x8c,0x1,0xde,0xff,0x39,0xff,0x2f,0xfe, +0x16,0xfc,0x2d,0xfa,0x38,0xf9,0x49,0xf8,0x76,0xf6,0x98,0xf4, +0x8f,0xf3,0x7e,0xf2,0xb5,0xf1,0x7c,0xf3,0x7b,0xf7,0x5b,0xfb, +0xca,0xff,0xa9,0x6,0xa2,0xe,0xec,0x14,0x70,0x18,0x1f,0x19, +0x7c,0x16,0x3c,0x10,0x74,0x7,0xfb,0xfd,0x60,0xf5,0x25,0xef, +0x85,0xec,0xc2,0xed,0xfa,0xf1,0x4c,0xf7,0x13,0xfc,0x1b,0x0, +0x3d,0x3,0xc,0x5,0x45,0x6,0x84,0x7,0xfb,0x7,0x46,0x7, +0xb6,0x5,0x4e,0x3,0x98,0x0,0x3e,0xfe,0x7,0xfc,0x41,0xfa, +0xf2,0xf9,0xe7,0xfa,0x1f,0xfc,0x3e,0xfd,0x2e,0xfe,0x9d,0xfe, +0x71,0xfe,0x32,0xfe,0x8a,0xfe,0x61,0xff,0x27,0x0,0xca,0x0, +0x53,0x1,0x47,0x1,0x56,0x0,0xbe,0xfe,0xaa,0xfc,0x45,0xfa, +0x76,0xf8,0xf9,0xf7,0x39,0xf8,0xca,0xf8,0x6e,0xfa,0x46,0xfd, +0x7b,0x0,0xc8,0x3,0x2d,0x7,0x3f,0xa,0xb1,0xc,0x10,0xe, +0xce,0xd,0x23,0xc,0x76,0x9,0xbe,0x5,0x2f,0x1,0x6e,0xfc, +0x5b,0xf8,0xd6,0xf5,0x4,0xf5,0x8f,0xf5,0x5d,0xf7,0x33,0xfa, +0x92,0xfd,0x13,0x1,0x3c,0x4,0xbf,0x6,0x9b,0x8,0x8e,0x9, +0x94,0x9,0x30,0x9,0x61,0x8,0xec,0x6,0x1d,0x5,0x1f,0x3, +0xdf,0x0,0x96,0xfe,0x6a,0xfc,0x67,0xfa,0xe7,0xf8,0x31,0xf8, +0x49,0xf8,0xd,0xf9,0x4e,0xfa,0x27,0xfc,0x8e,0xfe,0xdb,0x0, +0xb4,0x2,0x47,0x4,0x26,0x5,0x8f,0x4,0xb8,0x2,0x70,0x0, +0x1a,0xfe,0x7,0xfc,0xc9,0xfa,0x7d,0xfa,0xee,0xfa,0x71,0xfc, +0x4,0xff,0x8a,0x1,0x7b,0x3,0x5e,0x5,0xc0,0x6,0xaa,0x6, +0x9b,0x5,0x84,0x4,0x5a,0x3,0xf4,0x1,0x87,0x0,0x2e,0xff, +0x10,0xfe,0x4e,0xfd,0xb3,0xfc,0x2c,0xfc,0x12,0xfc,0xad,0xfc, +0xfd,0xfd,0xd3,0xff,0xb6,0x1,0x39,0x3,0x7a,0x4,0x7f,0x5, +0xe8,0x5,0xda,0x5,0xc8,0x5,0x87,0x5,0x10,0x5,0x9d,0x4, +0xa4,0x3,0xe5,0x1,0x2c,0x0,0x9b,0xfe,0x98,0xfc,0x73,0xfa, +0x40,0xf9,0x74,0xf9,0x69,0xfa,0x82,0xfb,0x4a,0xfd,0xd4,0xff, +0xaa,0x1,0x71,0x2,0x53,0x3,0x4a,0x4,0xa6,0x4,0x71,0x4, +0xc4,0x3,0x10,0x3,0xad,0x2,0xb1,0x1,0x10,0x0,0x38,0xff, +0x14,0xff,0xd8,0xfe,0x1b,0xff,0xee,0xff,0x70,0x0,0xa4,0x0, +0xf8,0x0,0x7e,0x1,0x1b,0x2,0x77,0x2,0xc0,0x2,0x68,0x3, +0xdc,0x3,0xd4,0x3,0xfa,0x3,0x7,0x4,0x5e,0x3,0x75,0x2, +0x6f,0x1,0xfd,0xff,0x6b,0xfe,0xc4,0xfc,0xf,0xfb,0x22,0xfa, +0x7,0xfa,0xb1,0xf9,0xb,0xf9,0x8f,0xf8,0xcc,0xf7,0x9f,0xf6, +0xf4,0xf5,0xdd,0xf5,0x4d,0xf5,0xca,0xf4,0x73,0xf6,0xbf,0xfa, +0x6d,0x0,0x25,0x7,0xbc,0xe,0x8f,0x15,0xe9,0x19,0x3e,0x1b, +0x3d,0x19,0x3e,0x13,0x76,0x9,0x31,0xfe,0x5f,0xf4,0xc,0xed, +0x9b,0xe8,0x63,0xe8,0x4c,0xec,0x25,0xf2,0x62,0xf8,0x46,0xfe, +0x15,0x3,0xca,0x6,0x52,0x9,0x6f,0xa,0x15,0xb,0xae,0xb, +0xbd,0xa,0xde,0x7,0x77,0x4,0x2c,0x1,0xd8,0xfd,0xc4,0xfa, +0xc5,0xf8,0xb5,0xf8,0xd5,0xf9,0x99,0xfa,0x62,0xfb,0xb3,0xfc, +0x33,0xfd,0xde,0xfc,0x20,0xfd,0x65,0xfd,0x22,0xfd,0xb1,0xfd, +0xea,0xfe,0x24,0xff,0x6f,0xfe,0xe3,0xfd,0xb2,0xfd,0x58,0xfd, +0x91,0xfc,0x25,0xfc,0x98,0xfc,0xea,0xfc,0xff,0xfc,0x30,0xfe, +0x59,0x0,0x72,0x2,0xa4,0x4,0xe9,0x6,0xb9,0x8,0x39,0xa, +0xd,0xb,0x2a,0xa,0xc7,0x7,0xef,0x4,0xdd,0x1,0x5e,0xfe, +0xd4,0xfa,0x2,0xf8,0x45,0xf6,0xa0,0xf5,0x49,0xf6,0x2f,0xf8, +0xc4,0xfa,0xe1,0xfd,0x8b,0x1,0x5f,0x5,0xd3,0x8,0x15,0xb, +0x91,0xb,0xe5,0xa,0xb1,0x9,0xbe,0x7,0x43,0x5,0xaf,0x2, +0xea,0xff,0x43,0xfd,0x32,0xfb,0x63,0xf9,0xe6,0xf7,0x79,0xf7, +0xf1,0xf7,0x91,0xf8,0x63,0xf9,0xb4,0xfa,0x4f,0xfc,0x1a,0xfe, +0x54,0x0,0xbc,0x2,0x68,0x4,0xfb,0x4,0xd2,0x4,0xfc,0x3, +0x50,0x2,0x40,0x0,0x7a,0xfe,0x28,0xfd,0x51,0xfc,0x67,0xfc, +0x7c,0xfd,0xb8,0xfe,0xb6,0xff,0xf6,0x0,0x43,0x2,0xf6,0x2, +0x34,0x3,0xc,0x3,0x6e,0x2,0x2,0x2,0xe5,0x1,0x5e,0x1, +0x9c,0x0,0x21,0x0,0x8e,0xff,0x98,0xfe,0x93,0xfd,0xfc,0xfc, +0x2e,0xfd,0x4,0xfe,0x51,0xff,0x2c,0x1,0x28,0x3,0xc1,0x4, +0x4,0x6,0xc0,0x6,0xa5,0x6,0xff,0x5,0x1,0x5,0xa1,0x3, +0xf,0x2,0x67,0x0,0xec,0xfe,0xe6,0xfd,0xfd,0xfc,0x20,0xfc, +0xee,0xfb,0x6e,0xfc,0x12,0xfd,0x80,0xfd,0xa7,0xfd,0xf,0xfe, +0x38,0xff,0x8d,0x0,0x75,0x1,0x4c,0x2,0x55,0x3,0xd,0x4, +0xf1,0x3,0x51,0x3,0xcd,0x2,0x2e,0x2,0x23,0x1,0x26,0x0, +0x63,0xff,0xa3,0xfe,0x46,0xfe,0x72,0xfe,0xf8,0xfe,0x16,0x0, +0x62,0x1,0xa,0x2,0x69,0x2,0xfc,0x2,0x67,0x3,0x7f,0x3, +0x64,0x3,0x5b,0x3,0xaf,0x3,0xae,0x3,0xb1,0x2,0x6d,0x1, +0x30,0x0,0x98,0xfe,0x36,0xfd,0x35,0xfc,0xc9,0xfa,0x3c,0xf9, +0x4f,0xf8,0x9f,0xf7,0xd1,0xf6,0x20,0xf6,0x6d,0xf5,0xa4,0xf4, +0x22,0xf4,0x12,0xf4,0x75,0xf4,0xb0,0xf5,0x64,0xf8,0x1,0xfd, +0x5b,0x3,0x8d,0xa,0x8f,0x11,0x75,0x17,0x11,0x1b,0x96,0x1b, +0xe9,0x18,0x58,0x12,0xa1,0x7,0x70,0xfb,0xef,0xf0,0xb8,0xe8, +0x81,0xe3,0x42,0xe3,0xcb,0xe7,0xb2,0xee,0x1e,0xf6,0x34,0xfd, +0xa0,0x3,0xee,0x8,0x48,0xc,0x1,0xe,0x2b,0xf,0x5d,0xf, +0xce,0xd,0xa3,0xa,0x5,0x6,0xb8,0x0,0xf3,0xfb,0xad,0xf7, +0x49,0xf4,0x94,0xf3,0x8e,0xf5,0x56,0xf8,0x42,0xfb,0x2a,0xfe, +0x2f,0x0,0x1c,0x1,0x55,0x1,0x94,0x0,0xbf,0xfe,0xe0,0xfc, +0xf5,0xfb,0x8a,0xfb,0xc0,0xfa,0x3f,0xfa,0x3,0xfb,0x32,0xfc, +0xc5,0xfc,0x65,0xfd,0x52,0xfe,0x8e,0xfe,0x5b,0xfe,0xf1,0xfe, +0x4f,0x0,0xfd,0x1,0xea,0x3,0x92,0x5,0xdc,0x6,0x83,0x8, +0xb,0xa,0x32,0xa,0xfe,0x8,0xca,0x6,0x6d,0x3,0x60,0xff, +0x47,0xfb,0x6c,0xf7,0xa7,0xf4,0xf7,0xf3,0x64,0xf5,0x48,0xf8, +0xf8,0xfb,0x24,0x0,0x98,0x4,0x8e,0x8,0x3b,0xb,0x4f,0xc, +0x96,0xb,0xa2,0x9,0x9a,0x7,0x63,0x5,0x75,0x2,0xac,0xff, +0xd2,0xfd,0x63,0xfc,0x6,0xfb,0x22,0xfa,0xe4,0xf9,0xee,0xf9, +0xe7,0xf9,0x1,0xfa,0x71,0xfa,0x17,0xfb,0x9,0xfc,0x6a,0xfd, +0x31,0xff,0x85,0x1,0xed,0x3,0x36,0x5,0x4b,0x5,0xd1,0x4, +0x75,0x3,0x20,0x1,0xa9,0xfe,0x75,0xfc,0xb7,0xfa,0x35,0xfa, +0x2c,0xfb,0xdd,0xfc,0xae,0xfe,0xaf,0x0,0xed,0x2,0xdf,0x4, +0xec,0x5,0x1e,0x6,0xa8,0x5,0x5d,0x4,0x5e,0x2,0x9d,0x0, +0x8a,0xff,0x46,0xfe,0xb3,0xfc,0x9,0xfc,0x19,0xfc,0xd9,0xfb, +0x1b,0xfc,0x9f,0xfd,0x6b,0xff,0x36,0x1,0x40,0x3,0xd6,0x4, +0xdc,0x5,0x91,0x6,0x78,0x6,0xfd,0x5,0xf6,0x5,0x90,0x5, +0xa,0x4,0x12,0x2,0x43,0x0,0x86,0xfe,0x96,0xfc,0xb6,0xfa, +0xc4,0xf9,0xc1,0xf9,0xa,0xfa,0xe7,0xfa,0x7a,0xfc,0x4c,0xfe, +0x7d,0x0,0xc9,0x2,0x2e,0x4,0x9b,0x4,0x99,0x4,0x49,0x4, +0x9e,0x3,0x69,0x2,0x6,0x1,0x17,0x0,0x6c,0xff,0x25,0xff, +0xb0,0xff,0x2a,0x0,0x69,0x0,0x78,0x1,0x77,0x2,0x55,0x2, +0x45,0x2,0x93,0x2,0x3e,0x2,0x92,0x1,0x8,0x1,0x9f,0x0, +0xa3,0x0,0xc9,0x0,0xdf,0x0,0x6f,0x1,0x6,0x2,0xf2,0x1, +0x5a,0x1,0x10,0x0,0x4d,0xfe,0x1e,0xfd,0x48,0xfc,0x5,0xfb, +0x9e,0xf9,0x3f,0xf8,0xd2,0xf6,0x85,0xf5,0x4a,0xf4,0x67,0xf3, +0x3d,0xf3,0x67,0xf3,0x2f,0xf4,0xda,0xf6,0x73,0xfb,0xe,0x1, +0x69,0x7,0x5b,0xe,0xf4,0x14,0xd5,0x19,0x42,0x1c,0xe1,0x1b, +0x59,0x17,0x17,0xe,0xa2,0x2,0xbf,0xf7,0xfc,0xed,0x3e,0xe6, +0xc6,0xe2,0xa1,0xe4,0x63,0xea,0x75,0xf1,0x78,0xf8,0x7c,0xff, +0xc6,0x5,0x25,0xa,0xf1,0xc,0xfe,0xe,0x3b,0x10,0xfa,0xf, +0x77,0xd,0x35,0x9,0xca,0x4,0x56,0x0,0x89,0xfb,0xce,0xf7, +0x19,0xf6,0xe7,0xf5,0x17,0xf7,0x20,0xf9,0xc1,0xfa,0xe8,0xfb, +0xeb,0xfc,0x70,0xfd,0xaa,0xfd,0x8,0xfe,0x6c,0xfe,0x23,0xff, +0x3b,0x0,0x9c,0x0,0xf5,0xff,0x46,0xff,0xc4,0xfe,0xd9,0xfd, +0xa5,0xfc,0xb5,0xfb,0x47,0xfb,0x4c,0xfb,0x90,0xfb,0x4b,0xfc, +0xf,0xfe,0x9f,0x0,0x12,0x3,0x5f,0x5,0xff,0x7,0x71,0xa, +0x87,0xb,0xc2,0xa,0xb1,0x8,0xf9,0x5,0x49,0x2,0x6f,0xfd, +0xd2,0xf8,0xf1,0xf5,0xe7,0xf4,0x8f,0xf5,0xee,0xf7,0x84,0xfb, +0xb0,0xff,0xcc,0x3,0xfe,0x6,0x7,0x9,0xcf,0x9,0xec,0x8, +0xf1,0x6,0x9,0x5,0x31,0x3,0x2b,0x1,0x6a,0xff,0x12,0xfe, +0x17,0xfd,0xa2,0xfc,0x62,0xfc,0x1e,0xfc,0x36,0xfc,0xa9,0xfc, +0x0,0xfd,0xf3,0xfc,0x92,0xfc,0x78,0xfc,0x36,0xfd,0x6c,0xfe, +0xab,0xff,0x16,0x1,0x57,0x2,0xba,0x2,0x4b,0x2,0x85,0x1, +0x91,0x0,0x3a,0xff,0x80,0xfd,0x19,0xfc,0xc7,0xfb,0x44,0xfc, +0xf1,0xfc,0x1d,0xfe,0x66,0x0,0x68,0x3,0x10,0x6,0xd8,0x7, +0xa8,0x8,0x19,0x8,0x54,0x6,0x67,0x4,0xaf,0x2,0xc3,0x0, +0xc8,0xfe,0xd,0xfd,0xb1,0xfb,0x9,0xfb,0xf7,0xfa,0xc,0xfb, +0x9c,0xfb,0xda,0xfc,0x5f,0xfe,0x54,0x0,0xc4,0x2,0xf2,0x4, +0xbe,0x6,0x70,0x8,0xa6,0x9,0xfe,0x9,0x5c,0x9,0x96,0x7, +0x4,0x5,0x25,0x2,0x1d,0xff,0x48,0xfc,0x1c,0xfa,0xb3,0xf8, +0x38,0xf8,0xd0,0xf8,0x52,0xfa,0x93,0xfc,0x2f,0xff,0xb8,0x1, +0xc,0x4,0xae,0x5,0xff,0x5,0x57,0x5,0x4d,0x4,0xf4,0x2, +0x7f,0x1,0x4c,0x0,0xab,0xff,0xe2,0xff,0xa0,0x0,0x44,0x1, +0xcd,0x1,0x67,0x2,0xe8,0x2,0xf,0x3,0x98,0x2,0xad,0x1, +0xf1,0x0,0x7c,0x0,0xff,0xff,0xb7,0xff,0xf2,0xff,0x70,0x0, +0xd8,0x0,0x38,0x1,0xae,0x1,0xc7,0x1,0x34,0x1,0xa0,0x0, +0x3d,0x0,0x62,0xff,0x6a,0xfe,0xe0,0xfd,0xeb,0xfc,0x32,0xfb, +0x93,0xf9,0x25,0xf8,0x75,0xf6,0x93,0xf4,0xe5,0xf2,0x27,0xf2, +0x98,0xf2,0xb3,0xf3,0x2b,0xf6,0x2b,0xfb,0xa7,0x1,0x6,0x8, +0x5f,0xe,0x5a,0x14,0x4d,0x18,0x7d,0x19,0x44,0x18,0x36,0x14, +0xb9,0xc,0x26,0x3,0xe0,0xf9,0xd0,0xf1,0x6b,0xeb,0xa1,0xe8, +0x82,0xea,0x0,0xef,0xac,0xf3,0x5a,0xf8,0x60,0xfd,0x9f,0x1, +0x57,0x4,0xdb,0x6,0xed,0x9,0x16,0xc,0x7d,0xc,0xbc,0xb, +0xad,0x9,0x56,0x6,0xe6,0x2,0xc1,0xff,0xf7,0xfc,0x7b,0xfb, +0x36,0xfb,0xf0,0xfa,0x88,0xfa,0x18,0xfa,0x40,0xf9,0x96,0xf8, +0xf9,0xf8,0xf3,0xf9,0xfa,0xfa,0xb0,0xfc,0x71,0xff,0xfa,0x1, +0xc2,0x2,0xf,0x2,0x2c,0x1,0x29,0x0,0x73,0xfe,0xc8,0xfc, +0x4b,0xfc,0x93,0xfc,0xc3,0xfc,0x60,0xfd,0xf2,0xfe,0xc0,0x0, +0x54,0x2,0xda,0x3,0x19,0x5,0x56,0x6,0x4,0x8,0xc5,0x8, +0x76,0x7,0x83,0x5,0xe8,0x3,0x87,0x1,0xc,0xfe,0xe5,0xfa, +0x43,0xf9,0xd,0xf9,0xb3,0xf9,0x55,0xfb,0x6,0xfe,0xd2,0x0, +0x3d,0x3,0xa1,0x5,0x54,0x7,0x82,0x7,0x99,0x6,0xf9,0x4, +0xc6,0x2,0xb0,0x0,0xec,0xfe,0x5d,0xfd,0x60,0xfc,0x4,0xfc, +0x31,0xfc,0x27,0xfd,0x73,0xfe,0x6e,0xff,0x66,0x0,0x74,0x1, +0x23,0x2,0x52,0x2,0xc7,0x1,0x81,0x0,0x2b,0xff,0xe0,0xfd, +0x5d,0xfc,0x63,0xfb,0x4a,0xfb,0x40,0xfb,0x3a,0xfb,0xdc,0xfb, +0xe4,0xfc,0xdc,0xfd,0xa,0xff,0xa4,0x0,0x4d,0x2,0x66,0x3, +0xcd,0x3,0x30,0x4,0xf2,0x4,0x77,0x5,0x78,0x5,0x53,0x5, +0xce,0x4,0x94,0x3,0x29,0x2,0xd1,0x0,0x48,0xff,0xdf,0xfd, +0x8,0xfd,0x72,0xfc,0xd4,0xfb,0x88,0xfb,0xb8,0xfb,0x18,0xfc, +0xb9,0xfc,0x29,0xfe,0x59,0x0,0x80,0x2,0x52,0x4,0x11,0x6, +0x98,0x7,0x8f,0x8,0xa9,0x8,0x8d,0x7,0x7e,0x5,0x50,0x3, +0x4a,0x1,0x4b,0xff,0x68,0xfd,0xb1,0xfb,0x54,0xfa,0x94,0xf9, +0x82,0xf9,0x3d,0xfa,0xb5,0xfb,0x63,0xfd,0x3a,0xff,0x72,0x1, +0x76,0x3,0xa0,0x4,0xf5,0x4,0x7f,0x4,0x56,0x3,0xf1,0x1, +0xb4,0x0,0xde,0xff,0x99,0xff,0xed,0xff,0xb7,0x0,0x95,0x1, +0x43,0x2,0xd4,0x2,0xf7,0x2,0x56,0x2,0x90,0x1,0x17,0x1, +0x88,0x0,0xda,0xff,0x53,0xff,0xe,0xff,0x3f,0xff,0xaa,0xff, +0xdd,0xff,0x3e,0x0,0xe9,0x0,0x32,0x1,0x49,0x1,0x7e,0x1, +0x1d,0x1,0x1b,0x0,0x1d,0xff,0xc4,0xfd,0xa6,0xfb,0x41,0xf9, +0xe3,0xf6,0xb9,0xf4,0x7,0xf3,0xa0,0xf1,0xc2,0xf0,0x4b,0xf1, +0x72,0xf3,0x49,0xf7,0x36,0xfd,0x7a,0x4,0xa7,0xb,0xf,0x12, +0xcb,0x16,0xd2,0x18,0x35,0x18,0xa2,0x14,0x70,0xd,0x4b,0x4, +0xda,0xfb,0xe9,0xf4,0xaf,0xef,0xf8,0xec,0x65,0xed,0xf2,0xf0, +0xde,0xf5,0xc4,0xf9,0xcf,0xfc,0x6,0x0,0x83,0x2,0x24,0x4, +0x1e,0x6,0x1,0x8,0xeb,0x8,0xfb,0x8,0xb7,0x7,0x30,0x5, +0xc1,0x2,0x80,0x0,0xfe,0xfd,0x5b,0xfc,0x1a,0xfc,0x4c,0xfc, +0x79,0xfc,0x5c,0xfc,0x78,0xfb,0x4c,0xfa,0xc7,0xf9,0xbd,0xf9, +0x97,0xf9,0xf7,0xf9,0xf8,0xfb,0xb5,0xfe,0xfb,0xff,0xa2,0xff, +0x49,0xff,0x2d,0xff,0x4f,0xfe,0x0,0xfd,0x9e,0xfc,0x3d,0xfd, +0xb9,0xfd,0x18,0xfe,0x5e,0xff,0x54,0x1,0xfc,0x2,0x3b,0x4, +0x5f,0x5,0x6d,0x6,0x44,0x7,0x56,0x7,0x3e,0x6,0x8b,0x4, +0xe4,0x2,0x0,0x1,0x57,0xfe,0x5b,0xfb,0x4c,0xf9,0x90,0xf8, +0xad,0xf8,0xbe,0xf9,0xc8,0xfb,0x19,0xfe,0xc4,0x0,0x27,0x4, +0x3c,0x7,0xeb,0x8,0x27,0x9,0x0,0x8,0xa8,0x5,0xb5,0x2, +0x8e,0xff,0x9d,0xfc,0x72,0xfa,0x5f,0xf9,0x68,0xf9,0x1f,0xfa, +0x34,0xfb,0xec,0xfc,0x14,0xff,0x1e,0x1,0x29,0x3,0xc6,0x4, +0xeb,0x4,0xe4,0x3,0x67,0x2,0x39,0x0,0x7a,0xfd,0xe4,0xfa, +0xde,0xf8,0xd8,0xf7,0xf0,0xf7,0xbd,0xf8,0x18,0xfa,0xd3,0xfb, +0xba,0xfd,0x42,0x0,0x36,0x3,0x66,0x5,0xc6,0x6,0xe4,0x7, +0x37,0x8,0x63,0x7,0x6,0x6,0x74,0x4,0xad,0x2,0xfa,0x0, +0x91,0xff,0x9e,0xfe,0x4f,0xfe,0x4c,0xfe,0x24,0xfe,0x1a,0xfe, +0x55,0xfe,0x55,0xfe,0xc,0xfe,0x29,0xfe,0xd1,0xfe,0xb2,0xff, +0xdf,0x0,0x54,0x2,0xb9,0x3,0xe0,0x4,0xab,0x5,0x18,0x6, +0x1e,0x6,0x40,0x5,0xb6,0x3,0x99,0x2,0xa4,0x1,0x1e,0x0, +0xec,0xfe,0x51,0xfe,0x2d,0xfd,0xd7,0xfb,0x2c,0xfb,0xcf,0xfa, +0xf6,0xfa,0xf7,0xfb,0x12,0xfd,0x87,0xfe,0xe2,0x0,0xdb,0x2, +0xd8,0x3,0xbd,0x4,0x36,0x5,0x8c,0x4,0x2f,0x3,0x9c,0x1, +0x5c,0x0,0xc6,0xff,0x44,0xff,0x29,0xff,0x62,0x0,0xf0,0x1, +0xd4,0x2,0xb8,0x3,0x7a,0x4,0x73,0x4,0xf8,0x3,0xd1,0x2, +0xd2,0x0,0x1c,0xff,0xf5,0xfd,0xf9,0xfc,0x11,0xfd,0x6e,0xfe, +0xb2,0xff,0xad,0x0,0xdf,0x1,0xb8,0x2,0xae,0x2,0xca,0x1, +0x39,0x0,0x68,0xfe,0x77,0xfc,0xd,0xfa,0x72,0xf7,0x3d,0xf5, +0x69,0xf3,0xe3,0xf1,0x2,0xf1,0x27,0xf1,0x9d,0xf2,0xba,0xf5, +0xb4,0xfa,0x57,0x1,0xcd,0x8,0xf8,0xf,0xcb,0x15,0x69,0x19, +0x55,0x1a,0x2d,0x18,0x5d,0x12,0x20,0x9,0x9d,0xfe,0x8f,0xf5, +0xf2,0xee,0xaf,0xea,0xcf,0xe9,0x30,0xed,0x25,0xf3,0x21,0xf9, +0x3f,0xfe,0x81,0x2,0xd5,0x5,0x50,0x8,0x5,0xa,0xfa,0xa, +0x3c,0xb,0x74,0xa,0x78,0x8,0xb0,0x5,0x44,0x2,0x6f,0xfe, +0x18,0xfb,0xc6,0xf8,0xaf,0xf7,0x4b,0xf8,0x11,0xfa,0x86,0xfb, +0x41,0xfc,0xab,0xfc,0xc9,0xfc,0xb5,0xfc,0x93,0xfc,0x5c,0xfc, +0xc3,0xfc,0x6e,0xfe,0x2a,0x0,0x7b,0x0,0xe2,0xff,0x75,0xff, +0xdb,0xfe,0x8a,0xfd,0x23,0xfc,0x7c,0xfb,0xa6,0xfb,0x4d,0xfc, +0x68,0xfd,0x52,0xff,0xfa,0x1,0x7b,0x4,0x45,0x6,0xee,0x7, +0xed,0x9,0x4a,0xb,0xb8,0xa,0x87,0x8,0xf6,0x5,0x14,0x3, +0x5e,0xff,0x63,0xfb,0x6,0xf8,0xbe,0xf5,0x28,0xf5,0x50,0xf6, +0x5a,0xf8,0x9,0xfb,0x9b,0xfe,0x8a,0x2,0x46,0x6,0x7a,0x9, +0x39,0xb,0xe9,0xa,0x54,0x9,0x4a,0x7,0x91,0x4,0xfd,0x0, +0x6d,0xfd,0xe1,0xfa,0x65,0xf9,0xb8,0xf8,0xd9,0xf8,0xb2,0xf9, +0x30,0xfb,0x4e,0xfd,0x83,0xff,0x19,0x1,0xdd,0x1,0xef,0x1, +0x74,0x1,0x72,0x0,0xff,0xfe,0x93,0xfd,0x6e,0xfc,0x77,0xfb, +0x1b,0xfb,0x93,0xfb,0x17,0xfc,0x72,0xfc,0x5e,0xfd,0x6,0xff, +0x1c,0x1,0x50,0x3,0x12,0x5,0x2f,0x6,0xe7,0x6,0x5,0x7, +0x45,0x6,0xce,0x4,0xec,0x2,0x15,0x1,0xa7,0xff,0x91,0xfe, +0xdf,0xfd,0xaf,0xfd,0xbc,0xfd,0xc4,0xfd,0xf5,0xfd,0x84,0xfe, +0x8,0xff,0x18,0xff,0x56,0xff,0x4e,0x0,0x58,0x1,0x43,0x2, +0x98,0x3,0xe2,0x4,0xca,0x5,0xc9,0x6,0x44,0x7,0x87,0x6, +0x35,0x5,0x74,0x3,0x24,0x1,0x29,0xff,0xa4,0xfd,0x18,0xfc, +0x3b,0xfb,0x3a,0xfb,0x2c,0xfb,0x48,0xfb,0x3,0xfc,0xd6,0xfc, +0xb7,0xfd,0x8,0xff,0x93,0x0,0x42,0x2,0xe0,0x3,0xba,0x4, +0xf0,0x4,0xfd,0x4,0x4f,0x4,0xcc,0x2,0xa7,0x1,0x13,0x1, +0x44,0x0,0xa3,0xff,0xde,0xff,0x57,0x0,0xc2,0x0,0xb3,0x1, +0xf3,0x2,0xc6,0x3,0x26,0x4,0x27,0x4,0x8e,0x3,0x5a,0x2, +0xe0,0x0,0x9d,0xff,0xee,0xfe,0xde,0xfe,0x73,0xff,0x7a,0x0, +0x5b,0x1,0xca,0x1,0xb6,0x1,0xba,0x0,0xcc,0xfe,0x9d,0xfc, +0xb8,0xfa,0x1,0xf9,0x35,0xf7,0xaf,0xf5,0xf2,0xf4,0x6a,0xf4, +0x7f,0xf3,0x5,0xf3,0xba,0xf3,0x81,0xf5,0xd7,0xf8,0x3a,0xfe, +0x23,0x5,0xb9,0xc,0xa3,0x13,0x4a,0x18,0x86,0x1a,0x7a,0x1a, +0xd5,0x16,0xf3,0xe,0xa5,0x4,0x88,0xfa,0x3d,0xf2,0x36,0xec, +0xcc,0xe8,0x21,0xe9,0x97,0xed,0x1c,0xf4,0x1d,0xfa,0x35,0xff, +0x0,0x4,0xf2,0x7,0x76,0xa,0x2b,0xc,0x44,0xd,0x8,0xd, +0x80,0xb,0xf,0x9,0x67,0x5,0xdf,0x0,0x70,0xfc,0x91,0xf8, +0xfe,0xf5,0x77,0xf5,0x58,0xf6,0xcc,0xf7,0xbe,0xf9,0x93,0xfb, +0xb4,0xfc,0x92,0xfd,0x4d,0xfe,0x83,0xfe,0x9e,0xfe,0x43,0xff, +0x42,0x0,0xd6,0x0,0x69,0x0,0x65,0xff,0xbf,0xfe,0x37,0xfe, +0xdc,0xfc,0x4b,0xfb,0xde,0xfa,0x53,0xfb,0xd2,0xfb,0xf7,0xfc, +0x93,0xff,0xb5,0x2,0x1b,0x5,0x32,0x7,0xb0,0x9,0x91,0xb, +0xa0,0xb,0x3c,0xa,0x9,0x8,0x1,0x5,0x92,0x1,0x3d,0xfe, +0xad,0xfa,0x4c,0xf7,0x80,0xf5,0x75,0xf5,0x73,0xf6,0x88,0xf8, +0xad,0xfb,0x66,0xff,0xb2,0x3,0x13,0x8,0x7,0xb,0xde,0xb, +0x41,0xb,0xd6,0x9,0xb9,0x7,0xc1,0x4,0x2d,0x1,0x5,0xfe, +0xfe,0xfb,0xb5,0xfa,0xbc,0xf9,0x50,0xf9,0xb4,0xf9,0xd2,0xfa, +0x69,0xfc,0xb,0xfe,0x45,0xff,0xf2,0xff,0x27,0x0,0xe5,0xff, +0x47,0xff,0x86,0xfe,0xa8,0xfd,0xea,0xfc,0xe4,0xfc,0x6e,0xfd, +0xb9,0xfd,0xd0,0xfd,0x32,0xfe,0xb6,0xfe,0x85,0xff,0x17,0x1, +0xc0,0x2,0xcf,0x3,0xc6,0x4,0xaa,0x5,0xc0,0x5,0x15,0x5, +0xf9,0x3,0x7e,0x2,0x25,0x1,0x20,0x0,0x2a,0xff,0x92,0xfe, +0x53,0xfe,0xc4,0xfd,0x56,0xfd,0x89,0xfd,0x9e,0xfd,0x8b,0xfd, +0x14,0xfe,0x14,0xff,0x5f,0x0,0x16,0x2,0xb7,0x3,0x1e,0x5, +0x89,0x6,0x80,0x7,0xd3,0x7,0xb8,0x7,0xc5,0x6,0xee,0x4, +0xb1,0x2,0x1b,0x0,0x7d,0xfd,0x63,0xfb,0xd2,0xf9,0x16,0xf9, +0x68,0xf9,0xf,0xfa,0xd8,0xfa,0x24,0xfc,0x9b,0xfd,0xf2,0xfe, +0x51,0x0,0xb2,0x1,0x1a,0x3,0x3e,0x4,0xb4,0x4,0xd7,0x4, +0xc8,0x4,0x25,0x4,0x4e,0x3,0x6a,0x2,0x1b,0x1,0xf2,0xff, +0x4c,0xff,0xa2,0xfe,0x60,0xfe,0x13,0xff,0x2a,0x0,0x41,0x1, +0x41,0x2,0xf0,0x2,0x62,0x3,0x69,0x3,0xdc,0x2,0x4c,0x2, +0xd9,0x1,0x6b,0x1,0x8b,0x1,0xdb,0x1,0x9b,0x1,0x3e,0x1, +0xb8,0x0,0x54,0xff,0x90,0xfd,0xe8,0xfb,0x23,0xfa,0x9d,0xf8, +0x79,0xf7,0x42,0xf6,0x2d,0xf5,0x7d,0xf4,0xe1,0xf3,0x69,0xf3, +0x8c,0xf3,0xbb,0xf4,0x35,0xf7,0x1c,0xfb,0xd6,0x0,0x16,0x8, +0x31,0xf,0xfc,0x14,0x1a,0x19,0xc0,0x1a,0x71,0x19,0xc9,0x14, +0x14,0xc,0x20,0x1,0x9c,0xf7,0x64,0xf0,0xb0,0xea,0xfe,0xe7, +0xf8,0xe9,0x65,0xef,0xb4,0xf5,0x59,0xfb,0x2d,0x0,0x57,0x4, +0x7a,0x7,0x98,0x9,0x4a,0xb,0x60,0xc,0x37,0xc,0xf4,0xa, +0xb0,0x8,0xd7,0x4,0xb4,0xff,0xcb,0xfa,0x30,0xf7,0x35,0xf5, +0x10,0xf5,0x7b,0xf6,0xad,0xf8,0x14,0xfb,0xf,0xfd,0x1a,0xfe, +0x99,0xfe,0xe6,0xfe,0xaf,0xfe,0x6a,0xfe,0xde,0xfe,0x7c,0xff, +0x68,0xff,0xbe,0xfe,0x3,0xfe,0x91,0xfd,0x29,0xfd,0x5a,0xfc, +0xb7,0xfb,0xef,0xfb,0x72,0xfc,0xf2,0xfc,0x10,0xfe,0xe7,0xff, +0xee,0x1,0xe9,0x3,0xd4,0x5,0xb4,0x7,0x39,0x9,0x81,0x9, +0x3b,0x8,0x26,0x6,0xdb,0x3,0x48,0x1,0x54,0xfe,0x49,0xfb, +0xc4,0xf8,0x63,0xf7,0x5d,0xf7,0x5c,0xf8,0xea,0xf9,0x1c,0xfc, +0x6c,0xff,0x93,0x3,0x6f,0x7,0xe,0xa,0x29,0xb,0xb,0xb, +0x15,0xa,0xf6,0x7,0x6a,0x4,0x81,0x0,0x83,0xfd,0x74,0xfb, +0xfa,0xf9,0x2d,0xf9,0x7,0xf9,0x70,0xf9,0x6a,0xfa,0xa3,0xfb, +0xba,0xfc,0xa9,0xfd,0x80,0xfe,0x47,0xff,0xfc,0xff,0x4c,0x0, +0xf8,0xff,0x60,0xff,0xe8,0xfe,0x83,0xfe,0xc,0xfe,0x93,0xfd, +0x26,0xfd,0xcd,0xfc,0xe2,0xfc,0xc7,0xfd,0xd,0xff,0x16,0x0, +0x49,0x1,0xe7,0x2,0x2f,0x4,0xf5,0x4,0x92,0x5,0x8b,0x5, +0xa3,0x4,0xa9,0x3,0xc1,0x2,0x57,0x1,0xaa,0xff,0x71,0xfe, +0xc8,0xfd,0x58,0xfd,0x1c,0xfd,0x57,0xfd,0xe2,0xfd,0x64,0xfe, +0x26,0xff,0x64,0x0,0xb2,0x1,0xe8,0x2,0x5e,0x4,0x0,0x6, +0x43,0x7,0xcb,0x7,0x9e,0x7,0xb7,0x6,0xcb,0x4,0x1d,0x2, +0x7a,0xff,0x15,0xfd,0xb,0xfb,0xf5,0xf9,0xa8,0xf9,0x8d,0xf9, +0xd7,0xf9,0x86,0xfa,0x71,0xfb,0x8,0xfd,0xf,0xff,0xd5,0x0, +0xc2,0x2,0xd6,0x4,0xf9,0x5,0x2a,0x6,0xd,0x6,0x7d,0x5, +0x7e,0x4,0x54,0x3,0xd7,0x1,0x62,0x0,0x6c,0xff,0x89,0xfe, +0xbb,0xfd,0xb2,0xfd,0x4e,0xfe,0x35,0xff,0x90,0x0,0x1,0x2, +0x9,0x3,0xf2,0x3,0x85,0x4,0xff,0x3,0xf8,0x2,0x67,0x2, +0xed,0x1,0x49,0x1,0xfa,0x0,0xae,0x0,0xca,0xff,0x9c,0xfe, +0x68,0xfd,0xd,0xfc,0xb2,0xfa,0x83,0xf9,0xa0,0xf8,0x1d,0xf8, +0x8c,0xf7,0xa7,0xf6,0xd3,0xf5,0x40,0xf5,0xcc,0xf4,0xbb,0xf4, +0x9f,0xf5,0x1d,0xf8,0x86,0xfc,0x56,0x2,0xc6,0x8,0x7,0xf, +0xd0,0x13,0x5d,0x16,0x3,0x17,0x60,0x15,0x1f,0x10,0xb1,0x7, +0xc9,0xfe,0x51,0xf7,0x3a,0xf1,0xce,0xec,0x8c,0xeb,0x24,0xee, +0x44,0xf3,0xcc,0xf8,0x90,0xfd,0xa6,0x1,0x15,0x5,0x7f,0x7, +0x27,0x9,0x3c,0xa,0x3e,0xa,0x71,0x9,0x45,0x8,0xf5,0x5, +0x3a,0x2,0x23,0xfe,0x85,0xfa,0x6,0xf8,0x1a,0xf7,0x54,0xf7, +0x79,0xf8,0x97,0xfa,0xb5,0xfc,0xe,0xfe,0xdc,0xfe,0xd,0xff, +0x8c,0xfe,0xd4,0xfd,0x33,0xfd,0xf2,0xfc,0x1d,0xfd,0x2c,0xfd, +0x2e,0xfd,0xa9,0xfd,0x5a,0xfe,0xd5,0xfe,0xf2,0xfe,0xa8,0xfe, +0x81,0xfe,0xac,0xfe,0x9d,0xfe,0xd6,0xfe,0x27,0x0,0xbb,0x1, +0xe1,0x2,0x4f,0x4,0x16,0x6,0x33,0x7,0x3d,0x7,0x97,0x6, +0x82,0x5,0x11,0x4,0x5f,0x2,0x2b,0x0,0x3b,0xfd,0x89,0xfa, +0x3f,0xf9,0xe3,0xf8,0xc7,0xf8,0x9b,0xf9,0xf1,0xfb,0x6e,0xff, +0x67,0x3,0xf0,0x6,0x56,0x9,0x91,0xa,0x9c,0xa,0x6d,0x9, +0x28,0x7,0xee,0x3,0x7c,0x0,0xeb,0xfd,0x37,0xfc,0xb0,0xfa, +0x72,0xf9,0xa,0xf9,0x6c,0xf9,0x25,0xfa,0x1c,0xfb,0x3c,0xfc, +0x17,0xfd,0xc4,0xfd,0xc5,0xfe,0x88,0xff,0x68,0xff,0x26,0xff, +0x35,0xff,0xe,0xff,0xd8,0xfe,0xe5,0xfe,0xa4,0xfe,0xee,0xfd, +0x81,0xfd,0xc1,0xfd,0x61,0xfe,0x1e,0xff,0x36,0x0,0xc9,0x1, +0x45,0x3,0x58,0x4,0x46,0x5,0xb1,0x5,0xf,0x5,0xfc,0x3, +0x34,0x3,0x48,0x2,0xcf,0x0,0x79,0xff,0xbc,0xfe,0xa,0xfe, +0x48,0xfd,0x6,0xfd,0x9,0xfd,0xf,0xfd,0xae,0xfd,0xca,0xfe, +0xc8,0xff,0x12,0x1,0xe6,0x2,0xb0,0x4,0x6e,0x6,0x12,0x8, +0xd7,0x8,0x95,0x8,0x92,0x7,0x9b,0x5,0xa4,0x2,0x4b,0xff, +0x5c,0xfc,0x2c,0xfa,0xa1,0xf8,0xf5,0xf7,0x50,0xf8,0x21,0xf9, +0x50,0xfa,0x3a,0xfc,0x56,0xfe,0x49,0x0,0x60,0x2,0x3a,0x4, +0xa9,0x5,0xfc,0x6,0x76,0x7,0xb2,0x6,0xa7,0x5,0x5f,0x4, +0x5f,0x2,0x64,0x0,0x3,0xff,0x2f,0xfe,0xa,0xfe,0x4f,0xfe, +0xe2,0xfe,0x4b,0x0,0xfe,0x1,0xf,0x3,0xef,0x3,0xcc,0x4, +0xdc,0x4,0x30,0x4,0x61,0x3,0x57,0x2,0x26,0x1,0x3f,0x0, +0x72,0xff,0x60,0xfe,0x44,0xfd,0x6c,0xfc,0xd6,0xfb,0x9a,0xfb, +0xb6,0xfb,0xbf,0xfb,0x8d,0xfb,0x5f,0xfb,0xf9,0xfa,0xf4,0xf9, +0xa6,0xf8,0x9e,0xf7,0xe9,0xf6,0x6d,0xf6,0x5e,0xf6,0x61,0xf7, +0x26,0xfa,0x88,0xfe,0xae,0x3,0xf8,0x8,0xcd,0xd,0x4d,0x11, +0x15,0x13,0x44,0x13,0x41,0x11,0x20,0xc,0xa3,0x4,0x27,0xfd, +0x2d,0xf7,0x98,0xf2,0x8e,0xef,0x57,0xef,0x7f,0xf2,0x4b,0xf7, +0x8e,0xfb,0xf4,0xfe,0x15,0x2,0xd8,0x4,0xfd,0x6,0x73,0x8, +0x16,0x9,0x3,0x9,0x64,0x8,0xe2,0x6,0x56,0x4,0x21,0x1, +0xe0,0xfd,0x74,0xfb,0x25,0xfa,0x6d,0xf9,0x6d,0xf9,0x64,0xfa, +0x62,0xfb,0xe8,0xfb,0x7b,0xfc,0xca,0xfc,0x51,0xfc,0xcd,0xfb, +0xbf,0xfb,0xdd,0xfb,0x32,0xfc,0xcd,0xfc,0x6d,0xfd,0x3a,0xfe, +0x55,0xff,0x48,0x0,0xc2,0x0,0xdd,0x0,0xb4,0x0,0x3e,0x0, +0x69,0xff,0x95,0xfe,0x8a,0xfe,0x63,0xff,0x95,0x0,0x3a,0x2, +0xb0,0x4,0x49,0x7,0xeb,0x8,0x2b,0x9,0x31,0x8,0x60,0x6, +0x28,0x4,0x86,0x1,0x2a,0xfe,0x8e,0xfa,0x11,0xf8,0x30,0xf7, +0xf2,0xf6,0x1d,0xf7,0xd5,0xf8,0x44,0xfc,0x6d,0x0,0xd8,0x4, +0xcb,0x8,0x16,0xb,0xc8,0xb,0x67,0xb,0xa0,0x9,0x7b,0x6, +0xc6,0x2,0x73,0xff,0x3c,0xfd,0xc7,0xfb,0x7a,0xfa,0xed,0xf9, +0x39,0xfa,0x96,0xfa,0x56,0xfb,0x8c,0xfc,0xb,0xfd,0x2a,0xfd, +0xfb,0xfd,0x91,0xfe,0x1e,0xfe,0x8b,0xfd,0x5c,0xfd,0x38,0xfd, +0x19,0xfd,0x60,0xfd,0x26,0xfe,0xd1,0xfe,0x39,0xff,0x1b,0x0, +0x43,0x1,0xe5,0x1,0x6c,0x2,0x3f,0x3,0xe6,0x3,0x72,0x4, +0xc,0x5,0x4a,0x5,0x9,0x5,0x46,0x4,0x2d,0x3,0x2f,0x2, +0x13,0x1,0x9f,0xff,0x81,0xfe,0xe8,0xfd,0x5e,0xfd,0xd7,0xfc, +0x5a,0xfc,0x29,0xfc,0xa3,0xfc,0x42,0xfd,0xf,0xfe,0x3,0x0, +0xaf,0x2,0xd,0x5,0x60,0x7,0x89,0x9,0xbc,0xa,0xd4,0xa, +0xbe,0x9,0x6c,0x7,0x65,0x4,0xf8,0x0,0x8f,0xfd,0xdf,0xfa, +0xd7,0xf8,0x79,0xf7,0x89,0xf7,0xc6,0xf8,0x39,0xfa,0xea,0xfb, +0x10,0xfe,0x3b,0x0,0x2b,0x2,0xdd,0x3,0x2d,0x5,0xe,0x6, +0x5f,0x6,0xd4,0x5,0x85,0x4,0x11,0x3,0xc1,0x1,0x69,0x0, +0x4b,0xff,0xcf,0xfe,0xc5,0xfe,0x2e,0xff,0x47,0x0,0xa8,0x1, +0xe,0x3,0xbf,0x4,0x24,0x6,0x41,0x6,0x63,0x5,0x53,0x4, +0x11,0x3,0x7a,0x1,0x5,0x0,0x42,0xff,0xf7,0xfe,0x6e,0xfe, +0x90,0xfd,0xd8,0xfc,0x77,0xfc,0x48,0xfc,0x16,0xfc,0xe0,0xfb, +0xdf,0xfb,0xe8,0xfb,0x84,0xfb,0xc6,0xfa,0xd5,0xf9,0x8f,0xf8, +0x1f,0xf7,0xea,0xf5,0x4f,0xf5,0xec,0xf5,0x3f,0xf8,0x4a,0xfc, +0x95,0x1,0x45,0x7,0x9f,0xc,0xfe,0x10,0x73,0x13,0xe1,0x13, +0xd3,0x12,0x75,0xf,0xd,0x9,0x8f,0x1,0x2b,0xfb,0xcd,0xf5, +0x75,0xf1,0x94,0xef,0xcd,0xf0,0xb,0xf4,0xd8,0xf7,0x56,0xfb, +0x74,0xfe,0x98,0x1,0x9f,0x4,0xf5,0x6,0x93,0x8,0x70,0x9, +0x2f,0x9,0x4c,0x8,0x22,0x7,0xc1,0x4,0x5e,0x1,0xbc,0xfe, +0xec,0xfc,0x1f,0xfb,0x21,0xfa,0x46,0xfa,0xae,0xfa,0x46,0xfb, +0xfd,0xfb,0x23,0xfc,0xf2,0xfb,0xdc,0xfb,0x89,0xfb,0x50,0xfb, +0xe1,0xfb,0xae,0xfc,0xc,0xfd,0x82,0xfd,0x8e,0xfe,0x9c,0xff, +0xff,0xff,0x4,0x0,0x48,0x0,0x80,0x0,0xff,0xff,0x23,0xff, +0x11,0xff,0xf9,0xff,0x19,0x1,0x89,0x2,0xd5,0x4,0x5a,0x7, +0x30,0x9,0x20,0xa,0x9e,0x9,0x84,0x7,0xc2,0x4,0x9b,0x1, +0xbd,0xfd,0xf9,0xf9,0x50,0xf7,0xda,0xf5,0x8d,0xf5,0x64,0xf6, +0x67,0xf8,0x97,0xfb,0x72,0xff,0x71,0x3,0x3e,0x7,0x5,0xa, +0x24,0xb,0xeb,0xa,0xa2,0x9,0x5c,0x7,0x56,0x4,0xc,0x1, +0x50,0xfe,0x8a,0xfc,0x5e,0xfb,0xaf,0xfa,0x78,0xfa,0xa8,0xfa, +0xc2,0xfb,0x5f,0xfd,0x1f,0xfe,0x55,0xfe,0xe6,0xfe,0x10,0xff, +0x4f,0xfe,0x2a,0xfd,0xee,0xfb,0x9,0xfb,0x9f,0xfa,0x58,0xfa, +0xcb,0xfa,0x3b,0xfc,0x8e,0xfd,0xc9,0xfe,0xac,0x0,0x98,0x2, +0x3,0x4,0x38,0x5,0x1b,0x6,0x6f,0x6,0x2c,0x6,0x73,0x5, +0xab,0x4,0x8c,0x3,0xd6,0x1,0x79,0x0,0x91,0xff,0x4e,0xfe, +0x51,0xfd,0x2d,0xfd,0xf,0xfd,0xd9,0xfc,0xe4,0xfc,0xf0,0xfc, +0x68,0xfd,0x9e,0xfe,0xb8,0xff,0x96,0x0,0x7,0x2,0xff,0x3, +0xcc,0x5,0xf8,0x6,0x7d,0x7,0xd2,0x7,0xe7,0x7,0xe1,0x6, +0xbe,0x4,0x6b,0x2,0x2b,0x0,0xd0,0xfd,0xbd,0xfb,0x62,0xfa, +0xa2,0xf9,0x83,0xf9,0x2d,0xfa,0x2f,0xfb,0x2d,0xfc,0x73,0xfd, +0x6,0xff,0xa2,0x0,0x67,0x2,0x7,0x4,0xea,0x4,0x44,0x5, +0x36,0x5,0x4e,0x4,0xf1,0x2,0xc0,0x1,0x6e,0x0,0x23,0xff, +0xaf,0xfe,0xec,0xfe,0x56,0xff,0x40,0x0,0xbe,0x1,0x21,0x3, +0x2a,0x4,0xdc,0x4,0xb5,0x4,0xa7,0x3,0x96,0x2,0xcd,0x1, +0xdf,0x0,0x0,0x0,0x9d,0xff,0x7f,0xff,0x7a,0xff,0x93,0xff, +0x96,0xff,0x53,0xff,0xb3,0xfe,0xad,0xfd,0x7a,0xfc,0x30,0xfb, +0xc7,0xf9,0x88,0xf8,0x61,0xf7,0xf5,0xf5,0xb4,0xf4,0x2,0xf4, +0x91,0xf3,0xd9,0xf3,0xe4,0xf5,0xc1,0xf9,0xfa,0xfe,0x24,0x5, +0x60,0xb,0xd2,0x10,0xd0,0x14,0x9c,0x16,0x20,0x16,0x65,0x13, +0x88,0xd,0x2,0x5,0xd9,0xfc,0xc6,0xf6,0xcd,0xf1,0x61,0xee, +0x96,0xee,0xea,0xf1,0xd5,0xf5,0x7e,0xf9,0x2b,0xfd,0x66,0x0, +0xe9,0x2,0x9,0x5,0xbe,0x6,0xa5,0x7,0x9e,0x7,0x19,0x7, +0x7d,0x6,0x27,0x5,0x74,0x2,0x67,0xff,0x2a,0xfd,0x7f,0xfb, +0x55,0xfa,0x3d,0xfa,0x5,0xfb,0x30,0xfc,0x76,0xfd,0x18,0xfe, +0xc2,0xfd,0x13,0xfd,0x57,0xfc,0xa6,0xfb,0x9a,0xfb,0x20,0xfc, +0x59,0xfc,0x4b,0xfc,0xae,0xfc,0x86,0xfd,0x26,0xfe,0x5b,0xfe, +0xc4,0xfe,0x94,0xff,0xc,0x0,0x28,0x0,0xdb,0x0,0x1d,0x2, +0x1a,0x3,0xe1,0x3,0x11,0x5,0xac,0x6,0xfa,0x7,0x4f,0x8, +0xbd,0x7,0x5d,0x6,0xda,0x3,0xa0,0x0,0x83,0xfd,0x7b,0xfa, +0xed,0xf7,0xf2,0xf6,0x52,0xf7,0x47,0xf8,0xfd,0xf9,0x76,0xfc, +0x5c,0xff,0x9a,0x2,0x9e,0x5,0xd0,0x7,0x41,0x9,0x9f,0x9, +0xa8,0x8,0x8,0x7,0xf4,0x4,0x2c,0x2,0x65,0xff,0x6e,0xfd, +0x28,0xfc,0x38,0xfb,0xb3,0xfa,0xf4,0xfa,0xec,0xfb,0x12,0xfd, +0x24,0xfe,0xa,0xff,0x87,0xff,0xbf,0xff,0xae,0xff,0xdc,0xfe, +0x98,0xfd,0x64,0xfc,0x26,0xfb,0x4a,0xfa,0x42,0xfa,0xb4,0xfa, +0xbe,0xfb,0x87,0xfd,0x58,0xff,0x47,0x1,0x9b,0x3,0x4c,0x5, +0x3d,0x6,0x4f,0x7,0xbf,0x7,0xd4,0x6,0x84,0x5,0xa,0x4, +0xd3,0x1,0x80,0xff,0xe7,0xfd,0xd1,0xfc,0xea,0xfb,0x6d,0xfb, +0xb2,0xfb,0x8b,0xfc,0x72,0xfd,0x48,0xfe,0x59,0xff,0xac,0x0, +0xe6,0x1,0xc4,0x2,0x72,0x3,0x9,0x4,0x39,0x4,0x39,0x4, +0xaa,0x4,0x15,0x5,0xd7,0x4,0x6d,0x4,0x6,0x4,0x22,0x3, +0xed,0x1,0xb8,0x0,0x78,0xff,0x6c,0xfe,0x77,0xfd,0x20,0xfc, +0xfd,0xfa,0xcf,0xfa,0x25,0xfb,0x91,0xfb,0x58,0xfc,0x99,0xfd, +0x45,0xff,0x47,0x1,0x4a,0x3,0xf6,0x4,0xff,0x5,0x1e,0x6, +0x79,0x5,0x68,0x4,0xdf,0x2,0xef,0x0,0x49,0xff,0x7e,0xfe, +0x72,0xfe,0xd5,0xfe,0x93,0xff,0xb3,0x0,0xf1,0x1,0xd8,0x2, +0x4c,0x3,0x5f,0x3,0xee,0x2,0x28,0x2,0x6a,0x1,0x95,0x0, +0xba,0xff,0x77,0xff,0xbe,0xff,0x1d,0x0,0xb0,0x0,0x40,0x1, +0x27,0x1,0x8d,0x0,0xaa,0xff,0xb,0xfe,0xd3,0xfb,0xbe,0xf9, +0xd3,0xf7,0xd9,0xf5,0xe,0xf4,0xb0,0xf2,0xdb,0xf1,0xe0,0xf1, +0x24,0xf3,0xf5,0xf5,0x64,0xfa,0x33,0x0,0xea,0x6,0xb7,0xd, +0x5e,0x13,0xe4,0x16,0x27,0x18,0x1f,0x17,0x28,0x13,0x0,0xc, +0xe,0x3,0x8a,0xfa,0xd5,0xf3,0x2e,0xef,0xba,0xec,0x46,0xed, +0x26,0xf1,0x89,0xf6,0x1a,0xfb,0xaa,0xfe,0xec,0x1,0x7d,0x4, +0xe,0x6,0xef,0x6,0x17,0x7,0x8e,0x6,0xcc,0x5,0xef,0x4, +0x9d,0x3,0x73,0x1,0xb4,0xfe,0x8f,0xfc,0x8d,0xfb,0xf9,0xfa, +0xd1,0xfa,0xbd,0xfb,0x2e,0xfd,0x1f,0xfe,0x5d,0xfe,0xe2,0xfd, +0xbc,0xfc,0x79,0xfb,0x94,0xfa,0x4b,0xfa,0xd9,0xfa,0xfe,0xfb, +0x16,0xfd,0xf4,0xfd,0xba,0xfe,0x2e,0xff,0x23,0xff,0x15,0xff, +0x60,0xff,0xa6,0xff,0xf3,0xff,0xf2,0x0,0x56,0x2,0x50,0x3, +0x29,0x4,0x2e,0x5,0xdb,0x5,0x24,0x6,0x26,0x6,0x57,0x5, +0xb3,0x3,0xc8,0x1,0x8e,0xff,0xf4,0xfc,0x74,0xfa,0x91,0xf8, +0xc0,0xf7,0x10,0xf8,0xf4,0xf8,0x5c,0xfa,0xa0,0xfc,0x80,0xff, +0x89,0x2,0x6b,0x5,0xa4,0x7,0xfe,0x8,0x76,0x9,0xee,0x8, +0xab,0x7,0xb2,0x5,0x88,0x2,0x21,0xff,0x6,0xfd,0xb4,0xfb, +0x4a,0xfa,0x8a,0xf9,0xf2,0xf9,0xf8,0xfa,0x46,0xfc,0x7a,0xfd, +0x50,0xfe,0x1,0xff,0x4c,0xff,0xcf,0xfe,0x15,0xfe,0x7c,0xfd, +0xad,0xfc,0xbb,0xfb,0x2b,0xfb,0x56,0xfb,0x22,0xfc,0x2,0xfd, +0xf4,0xfd,0x96,0xff,0x8d,0x1,0x8,0x3,0x51,0x4,0x9a,0x5, +0x50,0x6,0x77,0x6,0x3a,0x6,0x2f,0x5,0x70,0x3,0x8b,0x1, +0x92,0xff,0xad,0xfd,0x48,0xfc,0x6f,0xfb,0x25,0xfb,0x64,0xfb, +0xe3,0xfb,0xb8,0xfc,0x17,0xfe,0x74,0xff,0x69,0x0,0x73,0x1, +0xd3,0x2,0xe2,0x3,0x25,0x4,0x22,0x4,0x96,0x4,0x44,0x5, +0x6e,0x5,0x2,0x5,0x4e,0x4,0x69,0x3,0x54,0x2,0x12,0x1, +0xb6,0xff,0x7b,0xfe,0x7d,0xfd,0xbf,0xfc,0x3d,0xfc,0xde,0xfb, +0xd7,0xfb,0x80,0xfc,0x8e,0xfd,0x9a,0xfe,0xa4,0xff,0x93,0x0, +0x8c,0x1,0xdf,0x2,0xfc,0x3,0x59,0x4,0x55,0x4,0xdf,0x3, +0x9d,0x2,0x1f,0x1,0xd7,0xff,0xc0,0xfe,0x4b,0xfe,0xb1,0xfe, +0x75,0xff,0x6b,0x0,0xb4,0x1,0x10,0x3,0xfd,0x3,0x21,0x4, +0x9b,0x3,0xd9,0x2,0xfe,0x1,0xfb,0x0,0xd5,0xff,0xdd,0xfe, +0x85,0xfe,0xb2,0xfe,0x10,0xff,0xbd,0xff,0x79,0x0,0xc1,0x0, +0xda,0x0,0xa8,0x0,0x72,0xff,0xa2,0xfd,0xdf,0xfb,0xce,0xf9, +0x5c,0xf7,0xf3,0xf4,0xff,0xf2,0x13,0xf2,0xeb,0xf1,0x59,0xf2, +0xc7,0xf4,0x7a,0xf9,0xe9,0xfe,0x14,0x5,0x2b,0xc,0x3b,0x12, +0xea,0x15,0x5f,0x17,0x8c,0x16,0x8b,0x13,0xfa,0xd,0x6a,0x5, +0x4f,0xfc,0xa8,0xf5,0xdc,0xf0,0x11,0xed,0x45,0xec,0x68,0xef, +0x33,0xf4,0x9e,0xf8,0xc2,0xfc,0xf0,0x0,0x72,0x4,0xd5,0x6, +0x6c,0x8,0x3b,0x9,0x14,0x9,0x35,0x8,0xe9,0x6,0x3b,0x5, +0x0,0x3,0x43,0x0,0xf0,0xfd,0x94,0xfc,0x6b,0xfb,0x74,0xfa, +0xb3,0xfa,0xc1,0xfb,0x85,0xfc,0xf9,0xfc,0x1c,0xfd,0xa6,0xfc, +0x9,0xfc,0xc0,0xfb,0xdd,0xfb,0xac,0xfc,0x2a,0xfe,0x6d,0xff, +0xe0,0xff,0xfa,0xff,0xe6,0xff,0x26,0xff,0x27,0xfe,0xdd,0xfd, +0x8,0xfe,0x51,0xfe,0x4b,0xff,0xdd,0x0,0x4a,0x2,0x8f,0x3, +0xbc,0x4,0x8e,0x5,0xe,0x6,0x2d,0x6,0xbe,0x5,0xf2,0x4, +0xd6,0x3,0x3e,0x2,0x2e,0x0,0xb6,0xfd,0x37,0xfb,0x67,0xf9, +0xa4,0xf8,0xe0,0xf8,0xce,0xf9,0x37,0xfb,0x6c,0xfd,0x6f,0x0, +0x88,0x3,0x4c,0x6,0x7d,0x8,0x8b,0x9,0x82,0x9,0xaa,0x8, +0xc5,0x6,0xf6,0x3,0xdd,0x0,0x7,0xfe,0x13,0xfc,0xf7,0xfa, +0x16,0xfa,0xd9,0xf9,0xd5,0xfa,0x53,0xfc,0x9e,0xfd,0xad,0xfe, +0x58,0xff,0xa0,0xff,0xa2,0xff,0x21,0xff,0x38,0xfe,0x80,0xfd, +0x35,0xfd,0xb,0xfd,0xda,0xfc,0xec,0xfc,0x77,0xfd,0x2e,0xfe, +0x8,0xff,0x59,0x0,0xe2,0x1,0x20,0x3,0x10,0x4,0xe6,0x4, +0xd4,0x5,0x9b,0x6,0x80,0x6,0xa6,0x5,0xce,0x4,0x89,0x3, +0x69,0x1,0x6f,0xff,0x36,0xfe,0x12,0xfd,0xd7,0xfb,0x40,0xfb, +0x8d,0xfb,0xf,0xfc,0x4e,0xfc,0xe5,0xfc,0x4c,0xfe,0x8,0x0, +0xee,0x1,0x2f,0x4,0x2e,0x6,0x90,0x7,0xcf,0x8,0xa0,0x9, +0x19,0x9,0x56,0x7,0xf,0x5,0x8d,0x2,0xdb,0xff,0x46,0xfd, +0x54,0xfb,0x57,0xfa,0x42,0xfa,0x10,0xfb,0x79,0xfc,0xdd,0xfd, +0x56,0xff,0x45,0x1,0xcd,0x2,0x3c,0x3,0x5a,0x3,0x81,0x3, +0x26,0x3,0x91,0x2,0x36,0x2,0xa7,0x1,0xcc,0x0,0x23,0x0, +0xa8,0xff,0x1a,0xff,0xa7,0xfe,0xa6,0xfe,0x50,0xff,0x87,0x0, +0xf0,0x1,0x61,0x3,0xc2,0x4,0x9d,0x5,0x89,0x5,0xd4,0x4, +0x14,0x4,0x27,0x3,0xae,0x1,0x32,0x0,0x52,0xff,0xbb,0xfe, +0x3d,0xfe,0x3b,0xfe,0xa6,0xfe,0x3f,0xff,0xf7,0xff,0x79,0x0, +0x78,0x0,0x1,0x0,0x39,0xff,0x3f,0xfe,0xce,0xfc,0x92,0xfa, +0x21,0xf8,0x11,0xf6,0x29,0xf4,0xbb,0xf2,0x8e,0xf2,0xb7,0xf3, +0x4a,0xf6,0x82,0xfa,0xa,0x0,0x6e,0x6,0xe0,0xc,0xfd,0x11, +0x1a,0x15,0x34,0x16,0x10,0x15,0x84,0x11,0x7f,0xb,0x96,0x3, +0xc5,0xfb,0x72,0xf5,0x72,0xf0,0x50,0xed,0x37,0xed,0xe9,0xef, +0x22,0xf4,0xce,0xf8,0x78,0xfd,0x2f,0x2,0x70,0x6,0x75,0x9, +0x5a,0xb,0x15,0xc,0x22,0xb,0x1e,0x9,0xf5,0x6,0x5e,0x4, +0x25,0x1,0xc,0xfe,0xb3,0xfb,0xb,0xfa,0xfa,0xf8,0xd1,0xf8, +0xb0,0xf9,0x13,0xfb,0xa9,0xfc,0x71,0xfe,0xe7,0xff,0x7e,0x0, +0x58,0x0,0xe4,0xff,0x93,0xff,0x66,0xff,0xcf,0xfe,0xc3,0xfd, +0xe0,0xfc,0x2c,0xfc,0x4d,0xfb,0xa9,0xfa,0xe6,0xfa,0xd5,0xfb, +0xe4,0xfc,0x3d,0xfe,0x37,0x0,0x56,0x2,0x1,0x4,0x1a,0x5, +0xc1,0x5,0x68,0x6,0x17,0x7,0x4,0x7,0x4b,0x6,0xa8,0x5, +0x8b,0x4,0x7c,0x2,0x3d,0x0,0x17,0xfe,0xe8,0xfb,0x35,0xfa, +0x68,0xf9,0x8d,0xf9,0x60,0xfa,0x7a,0xfb,0x66,0xfd,0x89,0x0, +0x75,0x3,0x44,0x5,0x97,0x6,0x3d,0x7,0xb2,0x6,0x74,0x5, +0xac,0x3,0x32,0x1,0xbf,0xfe,0xe,0xfd,0x23,0xfc,0xb8,0xfb, +0x9d,0xfb,0x22,0xfc,0x83,0xfd,0x1,0xff,0xc6,0xff,0xf6,0xff, +0x1c,0x0,0x24,0x0,0x87,0xff,0x80,0xfe,0xd2,0xfd,0x49,0xfd, +0x77,0xfc,0xdf,0xfb,0xc1,0xfb,0xc7,0xfb,0x18,0xfc,0xd9,0xfc, +0xd6,0xfd,0x1f,0xff,0xa7,0x0,0x1e,0x2,0x78,0x3,0xc4,0x4, +0xd,0x6,0x55,0x7,0x25,0x8,0x1,0x8,0xee,0x6,0x30,0x5, +0x28,0x3,0x8,0x1,0xad,0xfe,0x5c,0xfc,0xab,0xfa,0xa0,0xf9, +0x4,0xf9,0xfd,0xf8,0xd5,0xf9,0x8e,0xfb,0xc8,0xfd,0x6d,0x0, +0xa9,0x3,0xd4,0x6,0x10,0x9,0x73,0xa,0x0,0xb,0x1a,0xa, +0xba,0x7,0x97,0x4,0x7c,0x1,0xc5,0xfe,0x3c,0xfc,0x39,0xfa, +0xa9,0xf9,0x51,0xfa,0x61,0xfb,0xde,0xfc,0xa1,0xfe,0x31,0x0, +0xa1,0x1,0xbb,0x2,0x20,0x3,0x35,0x3,0x11,0x3,0x35,0x2, +0x13,0x1,0x70,0x0,0x13,0x0,0xac,0xff,0x6e,0xff,0x52,0xff, +0x3b,0xff,0x5c,0xff,0xac,0xff,0xf8,0xff,0x93,0x0,0xb9,0x1, +0xd8,0x2,0x86,0x3,0xf4,0x3,0x1f,0x4,0xe7,0x3,0x6c,0x3, +0xa9,0x2,0x90,0x1,0x5c,0x0,0x57,0xff,0xce,0xfe,0xb3,0xfe, +0x8e,0xfe,0x91,0xfe,0x45,0xff,0x13,0x0,0x35,0x0,0x1f,0x0, +0x47,0x0,0x1d,0x0,0x2f,0xff,0xdc,0xfd,0x4f,0xfc,0x27,0xfa, +0x7c,0xf7,0xf8,0xf4,0xdb,0xf2,0x54,0xf1,0xff,0xf0,0x29,0xf2, +0xc,0xf5,0x3,0xfa,0x6d,0x0,0x41,0x7,0xfc,0xd,0x8a,0x13, +0xc4,0x16,0xd1,0x17,0x8f,0x16,0x1a,0x12,0xf5,0xa,0xbb,0x2, +0xb6,0xfa,0xf4,0xf3,0x8,0xef,0x31,0xec,0x48,0xec,0x87,0xef, +0x67,0xf4,0x85,0xf9,0xcd,0xfe,0x2,0x4,0x2a,0x8,0xc2,0xa, +0xd7,0xb,0x31,0xb,0xed,0x8,0x12,0x6,0x53,0x3,0x65,0x0, +0x29,0xfd,0x58,0xfa,0xde,0xf8,0xb8,0xf8,0x22,0xf9,0x56,0xfa, +0x3,0xfd,0x16,0x0,0x36,0x2,0xad,0x3,0x49,0x4,0xc,0x3, +0x72,0x0,0xa1,0xfd,0x1c,0xfb,0x4b,0xf9,0x17,0xf8,0x42,0xf7, +0x5c,0xf7,0x48,0xf8,0x31,0xf9,0x97,0xfa,0xef,0xfc,0xf4,0xfe, +0x1c,0x0,0x84,0x1,0x6a,0x3,0xc7,0x4,0x4d,0x5,0xa1,0x5, +0x19,0x6,0x80,0x6,0x73,0x6,0xad,0x5,0x8c,0x4,0xa6,0x3, +0x84,0x2,0x89,0x0,0x5b,0xfe,0x72,0xfc,0x8f,0xfa,0x84,0xf9, +0xf,0xfa,0xfb,0xfa,0x8c,0xfb,0x5,0xfd,0xe9,0xff,0xcd,0x2, +0xa6,0x4,0xc1,0x5,0x61,0x6,0x20,0x6,0xcf,0x4,0xcc,0x2, +0x89,0x0,0x5f,0xfe,0x86,0xfc,0x5d,0xfb,0x61,0xfb,0x21,0xfc, +0xb0,0xfc,0x94,0xfd,0x54,0xff,0x8b,0x0,0x90,0x0,0x90,0x0, +0x96,0x0,0xcc,0xff,0xae,0xfe,0xde,0xfd,0x22,0xfd,0x57,0xfc, +0x6d,0xfb,0x8e,0xfa,0x8b,0xfa,0x68,0xfb,0x3,0xfc,0x48,0xfc, +0x53,0xfd,0x1d,0xff,0x9d,0x0,0xdc,0x1,0x67,0x3,0xd2,0x4, +0xc5,0x5,0xa5,0x6,0x2f,0x7,0xb5,0x6,0x85,0x5,0x27,0x4, +0x86,0x2,0x7f,0x0,0x29,0xfe,0xe7,0xfb,0x64,0xfa,0xca,0xf9, +0xb8,0xf9,0x1d,0xfa,0x35,0xfb,0x2,0xfd,0x51,0xff,0x4,0x2, +0xc2,0x4,0xcb,0x6,0xcd,0x7,0x27,0x8,0xcb,0x7,0x46,0x6, +0xd,0x4,0xf8,0x1,0x3f,0x0,0xd5,0xfe,0x9f,0xfd,0x94,0xfc, +0xfc,0xfb,0xe1,0xfb,0x1e,0xfc,0xf6,0xfc,0x42,0xfe,0x5a,0xff, +0x5b,0x0,0x82,0x1,0x48,0x2,0x89,0x2,0x8a,0x2,0x15,0x2, +0x2c,0x1,0x4e,0x0,0x99,0xff,0xf5,0xfe,0xac,0xfe,0xf2,0xfe, +0x92,0xff,0x49,0x0,0xff,0x0,0xb5,0x1,0x83,0x2,0x53,0x3, +0xab,0x3,0x7c,0x3,0x79,0x3,0x99,0x3,0xf6,0x2,0xbd,0x1, +0xda,0x0,0x35,0x0,0x63,0xff,0xc1,0xfe,0x92,0xfe,0x95,0xfe, +0xc5,0xfe,0x46,0xff,0xc1,0xff,0xcb,0xff,0xba,0xff,0xf2,0xff, +0xd9,0xff,0xec,0xfe,0xaa,0xfd,0x65,0xfc,0xcc,0xfa,0xb8,0xf8, +0x33,0xf6,0x96,0xf3,0xc2,0xf1,0x2f,0xf1,0xb3,0xf1,0x9d,0xf3, +0x9a,0xf7,0x99,0xfd,0xbd,0x4,0xeb,0xb,0x3a,0x12,0xdc,0x16, +0x1,0x19,0x44,0x18,0xc3,0x14,0x82,0xe,0xfa,0x5,0x14,0xfd, +0xc9,0xf5,0x49,0xf0,0x57,0xec,0x4f,0xeb,0x4a,0xee,0x99,0xf3, +0xe4,0xf8,0x6,0xfe,0x49,0x3,0x80,0x7,0xde,0x9,0xcc,0xa, +0x4e,0xa,0x39,0x8,0x6b,0x5,0xc4,0x2,0x26,0x0,0x68,0xfd, +0xa,0xfb,0xb6,0xf9,0xaf,0xf9,0xb4,0xfa,0x7e,0xfc,0x37,0xff, +0x6f,0x2,0xb5,0x4,0x46,0x5,0x5a,0x4,0xd9,0x1,0xd,0xfe, +0x4b,0xfa,0x8b,0xf7,0xe7,0xf5,0x5b,0xf5,0xcd,0xf5,0x18,0xf7, +0x5,0xf9,0x11,0xfb,0x7,0xfd,0xb,0xff,0xe4,0x0,0x5d,0x2, +0x71,0x3,0x2f,0x4,0x15,0x5,0x5,0x6,0x17,0x6,0xd9,0x5, +0x63,0x6,0xc7,0x6,0x21,0x6,0x14,0x5,0xbf,0x3,0xd2,0x1, +0x90,0xff,0x1a,0xfd,0xca,0xfa,0x41,0xf9,0x93,0xf8,0x2,0xf9, +0xad,0xfa,0xab,0xfc,0xce,0xfe,0xda,0x1,0x3b,0x5,0xb1,0x7, +0xe2,0x8,0xd9,0x8,0xcd,0x7,0x11,0x6,0xba,0x3,0xf,0x1, +0x51,0xfe,0xc7,0xfb,0x4b,0xfa,0x12,0xfa,0x83,0xfa,0xb1,0xfb, +0x82,0xfd,0x15,0xff,0x45,0x0,0x18,0x1,0x22,0x1,0xc1,0x0, +0x4b,0x0,0x53,0xff,0x31,0xfe,0x63,0xfd,0x77,0xfc,0x7d,0xfb, +0x1e,0xfb,0x75,0xfb,0x2c,0xfc,0xcd,0xfc,0x5d,0xfd,0x71,0xfe, +0xec,0xff,0x41,0x1,0x77,0x2,0x7f,0x3,0x42,0x4,0xf4,0x4, +0x3f,0x5,0xfb,0x4,0x9d,0x4,0xf6,0x3,0xee,0x2,0x14,0x2, +0x25,0x1,0xca,0xff,0x86,0xfe,0x5c,0xfd,0x48,0xfc,0xf4,0xfb, +0x23,0xfc,0x58,0xfc,0x1f,0xfd,0x99,0xfe,0x45,0x0,0xfa,0x1, +0x7b,0x3,0xb9,0x4,0xcf,0x5,0x2a,0x6,0xaa,0x5,0x6,0x5, +0x24,0x4,0xbd,0x2,0x54,0x1,0xe0,0xff,0x23,0xfe,0xad,0xfc, +0xb2,0xfb,0x1b,0xfb,0x69,0xfb,0xb0,0xfc,0x5e,0xfe,0x35,0x0, +0xf1,0x1,0x1e,0x3,0xb9,0x3,0xda,0x3,0x69,0x3,0x71,0x2, +0x2,0x1,0x4f,0xff,0x3,0xfe,0x98,0xfd,0xca,0xfd,0x64,0xfe, +0x8a,0xff,0x3,0x1,0x7a,0x2,0xf0,0x3,0xf4,0x4,0x9,0x5, +0xd3,0x4,0xce,0x4,0x32,0x4,0xd9,0x2,0xb7,0x1,0xfe,0x0, +0x49,0x0,0xa2,0xff,0xfc,0xfe,0x79,0xfe,0xa7,0xfe,0x45,0xff, +0x98,0xff,0x9b,0xff,0x72,0xff,0x6,0xff,0x8d,0xfe,0x8,0xfe, +0x29,0xfd,0x1b,0xfc,0xb,0xfb,0xb0,0xf9,0xf0,0xf7,0x13,0xf6, +0x76,0xf4,0x81,0xf3,0x57,0xf3,0x8,0xf4,0x22,0xf6,0xf,0xfa, +0x84,0xff,0x1,0x6,0xb6,0xc,0x5d,0x12,0x23,0x16,0xd7,0x17, +0xf9,0x16,0xdf,0x12,0xda,0xb,0x7b,0x3,0x73,0xfb,0x91,0xf4, +0x38,0xef,0x21,0xec,0x2e,0xec,0x9c,0xef,0x11,0xf5,0x80,0xfa, +0x7e,0xff,0x7f,0x4,0x54,0x8,0xcc,0x9,0xb9,0x9,0xc6,0x8, +0xd5,0x6,0xc6,0x4,0x1c,0x3,0xf8,0x0,0x4b,0xfe,0x13,0xfc, +0xb5,0xfa,0x26,0xfa,0xa6,0xfa,0x72,0xfc,0x2a,0xff,0xa9,0x1, +0x25,0x3,0x84,0x3,0x53,0x2,0x8c,0xff,0x74,0xfc,0xf3,0xf9, +0xa,0xf8,0xf0,0xf6,0xbf,0xf6,0x73,0xf7,0x28,0xf9,0x34,0xfb, +0xaf,0xfc,0xe8,0xfd,0x70,0xff,0xfc,0x0,0x1b,0x2,0xb,0x3, +0x57,0x4,0x9d,0x5,0x3,0x6,0x19,0x6,0xb4,0x6,0x2d,0x7, +0x26,0x7,0xf0,0x6,0xff,0x5,0xd,0x4,0x9e,0x1,0xc6,0xfe, +0xf8,0xfb,0xef,0xf9,0x5d,0xf8,0x78,0xf7,0x4d,0xf8,0x63,0xfa, +0xaa,0xfc,0x42,0xff,0x4d,0x2,0x5b,0x5,0xbb,0x7,0xcb,0x8, +0xcc,0x8,0x39,0x8,0xce,0x6,0xa9,0x4,0x38,0x2,0x92,0xff, +0x69,0xfd,0x58,0xfc,0xca,0xfb,0x89,0xfb,0x5,0xfc,0x5,0xfd, +0x4a,0xfe,0x7f,0xff,0xdd,0xff,0x9a,0xff,0x66,0xff,0xc7,0xfe, +0x8d,0xfd,0x96,0xfc,0x23,0xfc,0xcd,0xfb,0x9f,0xfb,0xed,0xfb, +0xb0,0xfc,0x7d,0xfd,0x47,0xfe,0x80,0xff,0x4,0x1,0x45,0x2, +0x38,0x3,0x1,0x4,0xc4,0x4,0x7c,0x5,0x7d,0x5,0xbc,0x4, +0x2b,0x4,0x82,0x3,0x12,0x2,0xde,0x0,0x66,0x0,0xc3,0xff, +0x3b,0xff,0x3f,0xff,0xdd,0xfe,0x37,0xfe,0x5e,0xfe,0xb8,0xfe, +0x9c,0xfe,0xdc,0xfe,0x7e,0xff,0xbe,0xff,0x10,0x0,0x16,0x1, +0x5f,0x2,0x76,0x3,0x51,0x4,0xef,0x4,0x45,0x5,0xf,0x5, +0x33,0x4,0x16,0x3,0x9d,0x1,0x88,0xff,0xa9,0xfd,0xac,0xfc, +0x20,0xfc,0x12,0xfc,0xe4,0xfc,0x17,0xfe,0x5b,0xff,0xda,0x0, +0x26,0x2,0xfc,0x2,0xc3,0x3,0x5a,0x4,0x54,0x4,0xb7,0x3, +0x8f,0x2,0x2d,0x1,0x56,0x0,0x12,0x0,0xb7,0xff,0x64,0xff, +0xd5,0xff,0xf4,0x0,0xf1,0x1,0x7e,0x2,0xd4,0x2,0xfc,0x2, +0x3,0x3,0xef,0x2,0x65,0x2,0x88,0x1,0x22,0x1,0x21,0x1, +0xdc,0x0,0x92,0x0,0xc3,0x0,0x1d,0x1,0x37,0x1,0x2c,0x1, +0x11,0x1,0x8a,0x0,0x55,0xff,0xef,0xfd,0xce,0xfc,0x88,0xfb, +0xf7,0xf9,0xa3,0xf8,0x74,0xf7,0xfe,0xf5,0xc4,0xf4,0x69,0xf4, +0xaa,0xf4,0x65,0xf5,0x3e,0xf7,0x94,0xfa,0x15,0xff,0x84,0x4, +0x93,0xa,0x32,0x10,0x41,0x14,0x47,0x16,0xd,0x16,0x75,0x13, +0x5b,0xe,0xe0,0x6,0xb2,0xfe,0xfc,0xf7,0xb7,0xf2,0x82,0xee, +0x1e,0xed,0x6e,0xef,0xb7,0xf3,0x9b,0xf8,0xc9,0xfd,0x82,0x2, +0x31,0x6,0x9b,0x8,0x48,0x9,0x74,0x8,0x1f,0x7,0xad,0x5, +0x18,0x4,0x91,0x2,0xf7,0x0,0xf3,0xfe,0xd4,0xfc,0x43,0xfb, +0x9b,0xfa,0x4,0xfb,0x66,0xfc,0x2a,0xfe,0xc0,0xff,0xd8,0x0, +0x7,0x1,0x1b,0x0,0x67,0xfe,0x5d,0xfc,0xb7,0xfa,0x14,0xfa, +0xe,0xfa,0x41,0xfa,0x18,0xfb,0x55,0xfc,0x39,0xfd,0xeb,0xfd, +0xb5,0xfe,0x7a,0xff,0x63,0x0,0x7a,0x1,0xb5,0x2,0x29,0x4, +0x35,0x5,0x7b,0x5,0xfe,0x5,0xf6,0x6,0x32,0x7,0x7d,0x6, +0x88,0x5,0x6d,0x4,0xb2,0x2,0x3,0x0,0x2b,0xfd,0x6d,0xfb, +0x68,0xfa,0x64,0xf9,0x5d,0xf9,0xc2,0xfa,0x7e,0xfc,0x6d,0xfe, +0xd2,0x0,0xf7,0x2,0x8f,0x4,0xc1,0x5,0x20,0x6,0xab,0x5, +0xee,0x4,0xe5,0x3,0x84,0x2,0x31,0x1,0x9,0x0,0xf,0xff, +0x8b,0xfe,0x78,0xfe,0x5d,0xfe,0x2b,0xfe,0x71,0xfe,0x25,0xff, +0x64,0xff,0xb,0xff,0xa6,0xfe,0xee,0xfd,0xa7,0xfc,0xa2,0xfb, +0x34,0xfb,0xf9,0xfa,0x5,0xfb,0x53,0xfb,0xca,0xfb,0xd6,0xfc, +0x36,0xfe,0x3e,0xff,0x7a,0x0,0x18,0x2,0x12,0x3,0xa2,0x3, +0x9f,0x4,0x64,0x5,0x81,0x5,0x70,0x5,0xe4,0x4,0xa7,0x3, +0x4f,0x2,0xf6,0x0,0xad,0xff,0xf3,0xfe,0x7e,0xfe,0xee,0xfd, +0xc9,0xfd,0x3c,0xfe,0xc7,0xfe,0x36,0xff,0xa4,0xff,0x17,0x0, +0x48,0x0,0xfe,0xff,0xb8,0xff,0xee,0xff,0x6d,0x0,0x30,0x1, +0x66,0x2,0xb1,0x3,0xa7,0x4,0x9,0x5,0xc2,0x4,0x28,0x4, +0x3f,0x3,0xb5,0x1,0x8,0x0,0xc3,0xfe,0xa6,0xfd,0xa7,0xfc, +0x6,0xfc,0xd1,0xfb,0x21,0xfc,0xc9,0xfc,0xb4,0xfd,0x5c,0xff, +0x60,0x1,0xfb,0x2,0xa8,0x4,0x6d,0x6,0xc,0x7,0x74,0x6, +0x7a,0x5,0x19,0x4,0x41,0x2,0x39,0x0,0x4a,0xfe,0x23,0xfd, +0x10,0xfd,0x69,0xfd,0xc8,0xfd,0x50,0xfe,0xc,0xff,0xe0,0xff, +0x71,0x0,0x95,0x0,0xb1,0x0,0xfa,0x0,0x44,0x1,0x88,0x1, +0xdc,0x1,0x60,0x2,0x14,0x3,0x83,0x3,0x66,0x3,0xc8,0x2, +0xa3,0x1,0x38,0x0,0xb8,0xfe,0xcc,0xfc,0x93,0xfa,0x85,0xf8, +0x95,0xf6,0xef,0xf4,0xda,0xf3,0x4,0xf3,0xb3,0xf2,0xa5,0xf3, +0xac,0xf5,0xb0,0xf8,0x1e,0xfd,0x82,0x2,0x32,0x8,0x1,0xe, +0xe1,0x12,0x57,0x15,0x4b,0x15,0x52,0x13,0x21,0xf,0x60,0x8, +0x63,0x0,0x6b,0xf9,0x43,0xf4,0x69,0xf0,0x59,0xee,0x42,0xef, +0xd0,0xf2,0x7c,0xf7,0x69,0xfc,0x47,0x1,0x4c,0x5,0xd7,0x7, +0xe,0x9,0xa,0x9,0xde,0x7,0x46,0x6,0x9b,0x4,0x91,0x2, +0x7e,0x0,0xad,0xfe,0xa5,0xfc,0xad,0xfa,0xa3,0xf9,0x8c,0xf9, +0x49,0xfa,0xd2,0xfb,0x95,0xfd,0x1d,0xff,0x8,0x0,0xbd,0xff, +0x8e,0xfe,0x55,0xfd,0x48,0xfc,0x96,0xfb,0x72,0xfb,0x88,0xfb, +0xf5,0xfb,0xf5,0xfc,0xd7,0xfd,0x2e,0xfe,0x71,0xfe,0xd8,0xfe, +0x5d,0xff,0x23,0x0,0x36,0x1,0xa4,0x2,0x1f,0x4,0x6,0x5, +0xa5,0x5,0xb0,0x6,0x71,0x7,0xd8,0x6,0x5c,0x5,0xcf,0x3, +0xdc,0x1,0x1e,0xff,0x4d,0xfc,0x47,0xfa,0x1c,0xf9,0xae,0xf8, +0x1c,0xf9,0x67,0xfa,0x7e,0xfc,0x37,0xff,0xe7,0x1,0x0,0x4, +0xa4,0x5,0xad,0x6,0x79,0x6,0x43,0x5,0xc6,0x3,0xff,0x1, +0x9,0x0,0xa3,0xfe,0xca,0xfd,0x12,0xfd,0xd4,0xfc,0xc,0xfd, +0x2c,0xfd,0x8f,0xfd,0x81,0xfe,0x42,0xff,0xa4,0xff,0x6,0x0, +0x16,0x0,0xc1,0xff,0x50,0xff,0x79,0xfe,0x56,0xfd,0x75,0xfc, +0xae,0xfb,0x5,0xfb,0x14,0xfb,0xa5,0xfb,0x36,0xfc,0x1,0xfd, +0x2d,0xfe,0x6e,0xff,0xb0,0x0,0x2,0x2,0x36,0x3,0xff,0x3, +0x62,0x4,0xb7,0x4,0xd7,0x4,0x4b,0x4,0x7d,0x3,0xfa,0x2, +0x54,0x2,0x2d,0x1,0x1,0x0,0x29,0xff,0x5c,0xfe,0xa4,0xfd, +0x90,0xfd,0xfc,0xfd,0x29,0xfe,0x58,0xfe,0xa,0xff,0xa3,0xff, +0xf5,0xff,0xca,0x0,0xf4,0x1,0xde,0x2,0xdf,0x3,0xdd,0x4, +0x2a,0x5,0xf1,0x4,0x7b,0x4,0x84,0x3,0x1d,0x2,0x9e,0x0, +0x40,0xff,0x39,0xfe,0x96,0xfd,0x37,0xfd,0x5,0xfd,0xd6,0xfc, +0xb0,0xfc,0xd1,0xfc,0x42,0xfd,0x9,0xfe,0x35,0xff,0x8d,0x0, +0x0,0x2,0xbb,0x3,0x4c,0x5,0xf5,0x5,0xbc,0x5,0x2,0x5, +0xc7,0x3,0x6,0x2,0x38,0x0,0xe8,0xfe,0x3c,0xfe,0x14,0xfe, +0x3f,0xfe,0x8d,0xfe,0xfe,0xfe,0x8f,0xff,0xf7,0xff,0xd,0x0, +0xfb,0xff,0xeb,0xff,0x9,0x0,0x71,0x0,0xf5,0x0,0x77,0x1, +0xc,0x2,0x80,0x2,0x95,0x2,0x76,0x2,0x29,0x2,0x44,0x1, +0xb5,0xff,0xf2,0xfd,0x21,0xfc,0x22,0xfa,0x24,0xf8,0x57,0xf6, +0xaa,0xf4,0x62,0xf3,0xcc,0xf2,0xcd,0xf2,0xc0,0xf3,0x50,0xf6, +0x57,0xfa,0x54,0xff,0x7,0x5,0xea,0xa,0x1b,0x10,0x7e,0x13, +0x54,0x14,0x19,0x13,0x17,0x10,0x7e,0xa,0x1f,0x3,0x6f,0xfc, +0xb,0xf7,0x8c,0xf2,0xee,0xef,0xf,0xf0,0x8f,0xf2,0xb8,0xf6, +0x83,0xfb,0x4,0x0,0xdd,0x3,0xb2,0x6,0x62,0x8,0x1,0x9, +0x54,0x8,0xba,0x6,0x14,0x5,0x5a,0x3,0x32,0x1,0xb8,0xfe, +0xd,0xfc,0xcd,0xf9,0xab,0xf8,0x6c,0xf8,0xf9,0xf8,0x60,0xfa, +0x2,0xfc,0xc6,0xfd,0x8e,0xff,0xfd,0xff,0xe7,0xfe,0xc6,0xfd, +0xd7,0xfc,0xd5,0xfb,0x3f,0xfb,0x5,0xfb,0x2d,0xfb,0x2e,0xfc, +0x39,0xfd,0x95,0xfd,0x1f,0xfe,0x14,0xff,0xb2,0xff,0x6,0x0, +0xa6,0x0,0xdd,0x1,0x5a,0x3,0x76,0x4,0x73,0x5,0xd7,0x6, +0xe7,0x7,0xf3,0x7,0x28,0x7,0x87,0x5,0x38,0x3,0x94,0x0, +0x73,0xfd,0x5c,0xfa,0x5d,0xf8,0x6b,0xf7,0x66,0xf7,0xb9,0xf8, +0xe4,0xfa,0x47,0xfd,0x19,0x0,0x25,0x3,0xcc,0x5,0xba,0x7, +0x6f,0x8,0xd0,0x7,0x7c,0x6,0xc6,0x4,0xd7,0x2,0x9,0x1, +0x56,0xff,0xbb,0xfd,0x8b,0xfc,0xc6,0xfb,0x42,0xfb,0x2a,0xfb, +0xb6,0xfb,0xea,0xfc,0x60,0xfe,0x7c,0xff,0x35,0x0,0xd0,0x0, +0x43,0x1,0x58,0x1,0xc1,0x0,0x91,0xff,0x85,0xfe,0xbd,0xfd, +0xc5,0xfc,0x7,0xfc,0xe7,0xfb,0xfb,0xfb,0x68,0xfc,0x88,0xfd, +0xe2,0xfe,0x3d,0x0,0xad,0x1,0xc7,0x2,0xa4,0x3,0xa9,0x4, +0x44,0x5,0x2e,0x5,0x13,0x5,0xbd,0x4,0xac,0x3,0xac,0x2, +0x28,0x2,0x27,0x1,0x7e,0xff,0x27,0xfe,0x62,0xfd,0xdb,0xfc, +0x93,0xfc,0x88,0xfc,0xcf,0xfc,0xc2,0xfd,0x2c,0xff,0x9b,0x0, +0x51,0x2,0x6a,0x4,0x47,0x6,0x77,0x7,0xfe,0x7,0xb6,0x7, +0x72,0x6,0x70,0x4,0x2c,0x2,0xd4,0xff,0x89,0xfd,0x9,0xfc, +0xb3,0xfb,0xb4,0xfb,0xb9,0xfb,0x6c,0xfc,0x8c,0xfd,0x46,0xfe, +0xcd,0xfe,0x96,0xff,0x90,0x0,0x90,0x1,0x98,0x2,0xe1,0x3, +0x2b,0x5,0x86,0x5,0xf6,0x4,0x39,0x4,0x15,0x3,0x87,0x1, +0x69,0x0,0xad,0xff,0x12,0xff,0x37,0xff,0xf6,0xff,0x97,0x0, +0x2c,0x1,0xc4,0x1,0x1d,0x2,0x34,0x2,0xf2,0x1,0x94,0x1, +0x83,0x1,0x44,0x1,0x9c,0x0,0x2c,0x0,0xf1,0xff,0xb7,0xff, +0xe1,0xff,0x2b,0x0,0xfd,0xff,0x71,0xff,0x92,0xfe,0x66,0xfd, +0x29,0xfc,0xac,0xfa,0xe2,0xf8,0x45,0xf7,0xf5,0xf5,0xee,0xf4, +0x6a,0xf4,0x9b,0xf4,0xfa,0xf5,0xf1,0xf8,0x31,0xfd,0x63,0x2, +0x17,0x8,0x4f,0xd,0x41,0x11,0x67,0x13,0x85,0x13,0x13,0x12, +0xbb,0xe,0xa9,0x8,0x65,0x1,0x38,0xfb,0x28,0xf6,0x1b,0xf2, +0x3b,0xf0,0x15,0xf1,0x7d,0xf4,0x73,0xf9,0x13,0xfe,0xda,0x1, +0x73,0x5,0x15,0x8,0xda,0x8,0x76,0x8,0x85,0x7,0xf7,0x5, +0x22,0x4,0x7e,0x2,0xf2,0x0,0xf8,0xfe,0x7c,0xfc,0x67,0xfa, +0x7c,0xf9,0x80,0xf9,0x13,0xfa,0x1c,0xfb,0x84,0xfc,0x7,0xfe, +0x8,0xff,0x2a,0xff,0xba,0xfe,0xf0,0xfd,0x34,0xfd,0xe,0xfd, +0xfd,0xfc,0xab,0xfc,0x7,0xfd,0xfd,0xfd,0x78,0xfe,0xca,0xfe, +0x6f,0xff,0xb9,0xff,0xa5,0xff,0xe2,0xff,0x67,0x0,0x12,0x1, +0xe,0x2,0x34,0x3,0x77,0x4,0x18,0x6,0xac,0x7,0x2c,0x8, +0x91,0x7,0xbc,0x6,0x67,0x5,0xda,0x2,0xfe,0xff,0xb7,0xfd, +0x99,0xfb,0xcd,0xf9,0x17,0xf9,0x76,0xf9,0xb7,0xfa,0x59,0xfc, +0xf2,0xfd,0x50,0x0,0x53,0x3,0x23,0x5,0xab,0x5,0xa,0x6, +0xe8,0x5,0x2a,0x5,0x47,0x4,0xa6,0x2,0x83,0x0,0x16,0xff, +0x13,0xfe,0xe5,0xfc,0x6,0xfc,0xb1,0xfb,0xde,0xfb,0x8a,0xfc, +0x53,0xfd,0x2d,0xfe,0x28,0xff,0xd0,0xff,0xc,0x0,0xff,0xff, +0xa3,0xff,0x45,0xff,0xd6,0xfe,0xf2,0xfd,0x16,0xfd,0xab,0xfc, +0x64,0xfc,0x7d,0xfc,0x10,0xfd,0xa0,0xfd,0x77,0xfe,0xd9,0xff, +0x40,0x1,0xa0,0x2,0xc,0x4,0x1b,0x5,0xe3,0x5,0x74,0x6, +0x48,0x6,0x80,0x5,0xc2,0x4,0xff,0x3,0xca,0x2,0x21,0x1, +0x87,0xff,0x79,0xfe,0xcc,0xfd,0x14,0xfd,0x49,0xfc,0xbc,0xfb, +0xe7,0xfb,0xd1,0xfc,0xed,0xfd,0x46,0xff,0x53,0x1,0xb7,0x3, +0xeb,0x5,0xe5,0x7,0x6c,0x9,0xf7,0x9,0x0,0x9,0xaf,0x6, +0x1d,0x4,0x9d,0x1,0x9a,0xfe,0xdf,0xfb,0x83,0xfa,0xdf,0xf9, +0x96,0xf9,0x53,0xfa,0xbb,0xfb,0x6,0xfd,0x41,0xfe,0x86,0xff, +0xdf,0x0,0x68,0x2,0xe3,0x3,0x23,0x5,0xf1,0x5,0xd2,0x5, +0x2,0x5,0x8,0x4,0x91,0x2,0x9d,0x0,0xfa,0xfe,0xe6,0xfd, +0x53,0xfd,0x6e,0xfd,0xa,0xfe,0xf0,0xfe,0x21,0x0,0x44,0x1, +0x33,0x2,0x16,0x3,0x90,0x3,0x6f,0x3,0x18,0x3,0x76,0x2, +0x5a,0x1,0x1f,0x0,0x1d,0xff,0xa1,0xfe,0xb7,0xfe,0xb3,0xfe, +0x67,0xfe,0x42,0xfe,0xb7,0xfd,0x5f,0xfc,0xf7,0xfa,0x75,0xf9, +0x7e,0xf7,0xe4,0xf5,0xeb,0xf4,0x26,0xf4,0x3c,0xf4,0x95,0xf5, +0xef,0xf7,0xdf,0xfb,0x6b,0x1,0x48,0x7,0xc6,0xc,0x59,0x11, +0xe8,0x13,0x6b,0x14,0x4c,0x13,0x0,0x10,0x57,0xa,0x28,0x3, +0xba,0xfb,0x6c,0xf5,0xbb,0xf0,0x98,0xed,0x1a,0xed,0x39,0xf0, +0x9f,0xf5,0x2e,0xfb,0x52,0x0,0x15,0x5,0x8a,0x8,0xd4,0x9, +0xa6,0x9,0xf2,0x8,0x6c,0x7,0x5,0x5,0xa8,0x2,0xcc,0x0, +0x1,0xff,0xd2,0xfc,0x93,0xfa,0x69,0xf9,0x8d,0xf9,0x7,0xfa, +0xc5,0xfa,0x27,0xfc,0x71,0xfd,0x39,0xfe,0xab,0xfe,0x42,0xfe, +0x27,0xfd,0x85,0xfc,0x8d,0xfc,0xcf,0xfc,0x43,0xfd,0xad,0xfd, +0x2,0xfe,0x9c,0xfe,0x51,0xff,0xbd,0xff,0xe9,0xff,0xe2,0xff, +0xc9,0xff,0xdd,0xff,0x2e,0x0,0xcb,0x0,0xaa,0x1,0x9a,0x2, +0xc6,0x3,0x4a,0x5,0x76,0x6,0x8b,0x6,0xd2,0x5,0x0,0x5, +0xf7,0x3,0x2c,0x2,0x26,0x0,0xba,0xfe,0x63,0xfd,0xd3,0xfb, +0x28,0xfb,0xa6,0xfb,0x4b,0xfc,0xfe,0xfc,0x2b,0xfe,0x8a,0xff, +0xfa,0x0,0x68,0x2,0x26,0x3,0x39,0x3,0x5f,0x3,0x38,0x3, +0xb,0x2,0x7c,0x0,0x58,0xff,0x8e,0xfe,0xf2,0xfd,0x58,0xfd, +0xcd,0xfc,0x5,0xfd,0xdb,0xfd,0x4e,0xfe,0x93,0xfe,0xa,0xff, +0xf5,0xfe,0xa0,0xfe,0xda,0xfe,0xc4,0xfe,0x4,0xfe,0x98,0xfd, +0x44,0xfd,0xa3,0xfc,0x9b,0xfc,0x26,0xfd,0x96,0xfd,0x2f,0xfe, +0xe3,0xfe,0x5a,0xff,0x16,0x0,0x13,0x1,0xc5,0x1,0x76,0x2, +0x5c,0x3,0x22,0x4,0xd5,0x4,0x6d,0x5,0x83,0x5,0x2f,0x5, +0xb9,0x4,0xd,0x4,0xb,0x3,0xc3,0x1,0x63,0x0,0x33,0xff, +0x66,0xfe,0xee,0xfd,0x72,0xfd,0xc7,0xfc,0x84,0xfc,0xf2,0xfc, +0x73,0xfd,0x1,0xfe,0x60,0xff,0x79,0x1,0x95,0x3,0xa5,0x5, +0x96,0x7,0xbe,0x8,0xca,0x8,0xe7,0x7,0x24,0x6,0x8c,0x3, +0x92,0x0,0xef,0xfd,0x1c,0xfc,0xf1,0xfa,0x3d,0xfa,0x66,0xfa, +0x61,0xfb,0x54,0xfc,0x34,0xfd,0x91,0xfe,0x6,0x0,0x26,0x1, +0x70,0x2,0xcf,0x3,0x8b,0x4,0xac,0x4,0x90,0x4,0x25,0x4, +0x46,0x3,0xeb,0x1,0x6c,0x0,0x4e,0xff,0x88,0xfe,0xfa,0xfd, +0xfe,0xfd,0xa3,0xfe,0x86,0xff,0x89,0x0,0xa4,0x1,0x9b,0x2, +0x37,0x3,0x7f,0x3,0x82,0x3,0xfe,0x2,0xd1,0x1,0xa6,0x0, +0xfb,0xff,0x6c,0xff,0xe7,0xfe,0xcb,0xfe,0xbc,0xfe,0x13,0xfe, +0xd1,0xfc,0x5c,0xfb,0xc5,0xf9,0xd6,0xf7,0xd9,0xf5,0x90,0xf4, +0x9,0xf4,0xe6,0xf3,0xaa,0xf4,0x7,0xf7,0xd4,0xfa,0xc3,0xff, +0xa7,0x5,0xce,0xb,0x6,0x11,0x4d,0x14,0x4e,0x15,0x3d,0x14, +0x47,0x11,0x45,0xc,0x2e,0x5,0x1a,0xfd,0xf,0xf6,0xf0,0xf0, +0x38,0xed,0x8a,0xeb,0x5d,0xed,0x30,0xf2,0xf,0xf8,0xdd,0xfd, +0x23,0x3,0x52,0x7,0xf7,0x9,0xe5,0xa,0x76,0xa,0x3e,0x9, +0x51,0x7,0xcc,0x4,0x56,0x2,0x15,0x0,0x9b,0xfd,0x35,0xfb, +0xa6,0xf9,0x10,0xf9,0x71,0xf9,0xc2,0xfa,0x53,0xfc,0x89,0xfd, +0x85,0xfe,0xf9,0xfe,0x69,0xfe,0x70,0xfd,0xaf,0xfc,0x6,0xfc, +0xc5,0xfb,0x23,0xfc,0x78,0xfc,0xa7,0xfc,0x35,0xfd,0xf,0xfe, +0xec,0xfe,0xb4,0xff,0x56,0x0,0x12,0x1,0xfa,0x1,0xa6,0x2, +0x31,0x3,0xeb,0x3,0x5f,0x4,0x72,0x4,0xe7,0x4,0xaa,0x5, +0x7e,0x5,0x2c,0x4,0x7,0x3,0x70,0x2,0x46,0x1,0x84,0xff, +0x5a,0xfe,0xe0,0xfd,0x85,0xfd,0x59,0xfd,0x7c,0xfd,0xfd,0xfd, +0xdf,0xfe,0xb8,0xff,0x70,0x0,0x53,0x1,0xa,0x2,0x25,0x2, +0xbf,0x1,0x32,0x1,0xf8,0x0,0xcf,0x0,0xe6,0xff,0xa2,0xfe, +0xf5,0xfd,0xac,0xfd,0x8d,0xfd,0xe1,0xfd,0x7d,0xfe,0x2a,0xff, +0xc3,0xff,0xec,0xff,0xaa,0xff,0x45,0xff,0xe7,0xfe,0xb2,0xfe, +0x2f,0xfe,0x1d,0xfd,0x73,0xfc,0x70,0xfc,0x46,0xfc,0x41,0xfc, +0xf2,0xfc,0xe2,0xfd,0xda,0xfe,0xec,0xff,0xdd,0x0,0x9e,0x1, +0xfd,0x1,0xdf,0x1,0xcf,0x1,0xe0,0x1,0xd0,0x1,0x6,0x2, +0x5c,0x2,0x4b,0x2,0x66,0x2,0xe1,0x2,0xe2,0x2,0x5c,0x2, +0xe1,0x1,0x71,0x1,0xe7,0x0,0x47,0x0,0xbe,0xff,0x8f,0xff, +0x54,0xff,0xac,0xfe,0x51,0xfe,0x93,0xfe,0x8b,0xfe,0x32,0xfe, +0x9e,0xfe,0xe2,0xff,0x30,0x1,0x8a,0x2,0x40,0x4,0xb8,0x5, +0x38,0x6,0xdb,0x5,0xea,0x4,0x5f,0x3,0x55,0x1,0x53,0xff, +0xde,0xfd,0x0,0xfd,0x92,0xfc,0x93,0xfc,0xeb,0xfc,0x71,0xfd, +0x1f,0xfe,0xb7,0xfe,0x1d,0xff,0xba,0xff,0x98,0x0,0x54,0x1, +0xed,0x1,0x68,0x2,0xad,0x2,0xdc,0x2,0xb3,0x2,0xf1,0x1, +0x1e,0x1,0x89,0x0,0x9,0x0,0xb7,0xff,0x7f,0xff,0x58,0xff, +0xbe,0xff,0x98,0x0,0x3d,0x1,0x9b,0x1,0xde,0x1,0x8,0x2, +0x18,0x2,0xe3,0x1,0x79,0x1,0xc,0x1,0x6a,0x0,0xb0,0xff, +0x34,0xff,0xab,0xfe,0xf3,0xfd,0xa,0xfd,0x7c,0xfb,0x7e,0xf9, +0xa5,0xf7,0xea,0xf5,0xa5,0xf4,0x5,0xf4,0x77,0xf3,0xa7,0xf3, +0xad,0xf5,0xf0,0xf8,0x20,0xfd,0xc9,0x2,0x3a,0x9,0x21,0xf, +0x8f,0x13,0xb5,0x15,0xa9,0x15,0xc8,0x13,0x80,0xf,0x97,0x8, +0x3d,0x0,0x5c,0xf8,0x67,0xf2,0x4b,0xee,0x5,0xec,0xeb,0xec, +0xfb,0xf0,0x5d,0xf6,0x31,0xfc,0xa,0x2,0xcf,0x6,0xec,0x9, +0x28,0xb,0xbf,0xa,0xc5,0x9,0x55,0x8,0xd4,0x5,0x25,0x3, +0xf2,0x0,0x77,0xfe,0xe6,0xfb,0x55,0xfa,0xec,0xf9,0x85,0xfa, +0xef,0xfb,0x66,0xfd,0x72,0xfe,0x5f,0xff,0xf6,0xff,0x68,0xff, +0xdf,0xfd,0x58,0xfc,0xff,0xfa,0xd4,0xf9,0x94,0xf9,0x22,0xfa, +0x91,0xfa,0x2b,0xfb,0x74,0xfc,0xe1,0xfd,0x32,0xff,0x8e,0x0, +0xc8,0x1,0xf2,0x2,0xfe,0x3,0x80,0x4,0xb5,0x4,0xe9,0x4, +0xd1,0x4,0x9e,0x4,0x84,0x4,0xe3,0x3,0xb0,0x2,0xd1,0x1, +0x57,0x1,0x5e,0x0,0xd6,0xfe,0xc8,0xfd,0x6d,0xfd,0xf9,0xfc, +0xad,0xfc,0x5f,0xfd,0x7d,0xfe,0x59,0xff,0x6e,0x0,0xcd,0x1, +0xef,0x2,0xb0,0x3,0xc3,0x3,0x4,0x3,0x3a,0x2,0xb4,0x1, +0xc2,0x0,0x5f,0xff,0x43,0xfe,0x9c,0xfd,0x33,0xfd,0xf5,0xfc, +0xed,0xfc,0x63,0xfd,0x6a,0xfe,0x69,0xff,0xf0,0xff,0x1c,0x0, +0xcc,0xff,0x22,0xff,0xc2,0xfe,0x6a,0xfe,0x8b,0xfd,0xd7,0xfc, +0xc9,0xfc,0xcf,0xfc,0x5,0xfd,0xc4,0xfd,0x94,0xfe,0x62,0xff, +0x89,0x0,0x9f,0x1,0x3e,0x2,0x97,0x2,0xc6,0x2,0xa9,0x2, +0x36,0x2,0xc9,0x1,0xbe,0x1,0x9c,0x1,0x1,0x1,0x8d,0x0, +0xac,0x0,0xff,0x0,0x2c,0x1,0x1c,0x1,0x43,0x1,0xeb,0x1, +0x36,0x2,0xd2,0x1,0xc8,0x1,0x19,0x2,0xcb,0x1,0x11,0x1, +0x86,0x0,0x12,0x0,0x95,0xff,0x31,0xff,0x41,0xff,0xec,0xff, +0xb1,0x0,0x5e,0x1,0x4f,0x2,0x36,0x3,0x8b,0x3,0x5d,0x3, +0xa4,0x2,0x5d,0x1,0x7,0x0,0x8,0xff,0x78,0xfe,0x5f,0xfe, +0x9c,0xfe,0xc,0xff,0x87,0xff,0xb8,0xff,0x8c,0xff,0x68,0xff, +0x7e,0xff,0xa4,0xff,0xdf,0xff,0x62,0x0,0x4,0x1,0x78,0x1, +0xdf,0x1,0x3b,0x2,0x29,0x2,0xbe,0x1,0x60,0x1,0x1f,0x1, +0x1c,0x1,0x55,0x1,0x77,0x1,0x9f,0x1,0xe5,0x1,0xd5,0x1, +0xa2,0x1,0xb7,0x1,0x8e,0x1,0xf8,0x0,0x9e,0x0,0x86,0x0, +0x4e,0x0,0xc,0x0,0xdd,0xff,0xac,0xff,0x65,0xff,0xcb,0xfe, +0xba,0xfd,0x65,0xfc,0xfd,0xfa,0x72,0xf9,0xc0,0xf7,0x28,0xf6, +0xdc,0xf4,0xef,0xf3,0xc8,0xf3,0xbe,0xf4,0xd5,0xf6,0x64,0xfa, +0x7a,0xff,0x33,0x5,0xe9,0xa,0x26,0x10,0xc6,0x13,0x36,0x15, +0xb5,0x14,0xdb,0x11,0x49,0xc,0xc0,0x4,0xba,0xfc,0xd8,0xf5, +0xe5,0xf0,0xd7,0xed,0x78,0xed,0x85,0xf0,0xa7,0xf5,0x3b,0xfb, +0xea,0x0,0x8,0x6,0x3d,0x9,0x39,0xa,0xd9,0x9,0xc0,0x8, +0xd5,0x6,0x46,0x4,0xbb,0x1,0x5b,0xff,0x24,0xfd,0x74,0xfb, +0x5b,0xfa,0x10,0xfa,0x1f,0xfb,0x5,0xfd,0xbf,0xfe,0x2a,0x0, +0x31,0x1,0x7d,0x1,0xeb,0x0,0x34,0xff,0xb2,0xfc,0x99,0xfa, +0x40,0xf9,0x6c,0xf8,0x67,0xf8,0x20,0xf9,0x5d,0xfa,0x53,0xfc, +0x83,0xfe,0x1c,0x0,0x53,0x1,0x83,0x2,0x5e,0x3,0xb5,0x3, +0xcf,0x3,0xf8,0x3,0xb,0x4,0xd5,0x3,0xce,0x3,0x1f,0x4, +0xd,0x4,0x74,0x3,0xff,0x2,0xc7,0x2,0x51,0x2,0x45,0x1, +0xd8,0xff,0xb8,0xfe,0xff,0xfd,0x51,0xfd,0xb,0xfd,0x81,0xfd, +0x4b,0xfe,0x54,0xff,0xca,0x0,0x55,0x2,0x7c,0x3,0x8,0x4, +0xfe,0x3,0x95,0x3,0xea,0x2,0x16,0x2,0x39,0x1,0x1d,0x0, +0xd7,0xfe,0xdc,0xfd,0x16,0xfd,0x78,0xfc,0x64,0xfc,0xb2,0xfc, +0x2a,0xfd,0x3,0xfe,0xb2,0xfe,0xad,0xfe,0x94,0xfe,0xba,0xfe, +0xa5,0xfe,0x46,0xfe,0xd5,0xfd,0x8d,0xfd,0xc0,0xfd,0x48,0xfe, +0xcf,0xfe,0x64,0xff,0xfb,0xff,0x7b,0x0,0xd,0x1,0x87,0x1, +0xa7,0x1,0xb9,0x1,0x13,0x2,0x88,0x2,0xd4,0x2,0xe2,0x2, +0xa0,0x2,0x9,0x2,0x70,0x1,0x33,0x1,0x6,0x1,0xa5,0x0, +0x6c,0x0,0x6b,0x0,0x87,0x0,0x19,0x1,0xe2,0x1,0x3f,0x2, +0x67,0x2,0x68,0x2,0xd6,0x1,0x29,0x1,0xc7,0x0,0x1c,0x0, +0x36,0xff,0xc1,0xfe,0xdd,0xfe,0x88,0xff,0x83,0x0,0x46,0x1, +0x3,0x2,0xe7,0x2,0x16,0x3,0x43,0x2,0x58,0x1,0xa9,0x0, +0xbf,0xff,0xe2,0xfe,0xc7,0xfe,0x2b,0xff,0x82,0xff,0xee,0xff, +0x38,0x0,0xe4,0xff,0x86,0xff,0x98,0xff,0x8a,0xff,0x7a,0xff, +0xf4,0xff,0xb0,0x0,0x8c,0x1,0x6d,0x2,0xaf,0x2,0x8d,0x2, +0x5f,0x2,0x9d,0x1,0xdd,0x0,0xed,0x0,0xec,0x0,0xd0,0x0, +0x7c,0x1,0x23,0x2,0x35,0x2,0x67,0x2,0x63,0x2,0xde,0x1, +0x89,0x1,0x5,0x1,0x0,0x0,0x72,0xff,0x47,0xff,0xaf,0xfe, +0x10,0xfe,0xd0,0xfd,0x85,0xfd,0xf2,0xfc,0x11,0xfc,0xe6,0xfa, +0xa1,0xf9,0x79,0xf8,0x6e,0xf7,0x63,0xf6,0x94,0xf5,0x76,0xf5, +0xfa,0xf5,0x39,0xf7,0xf8,0xf9,0x4c,0xfe,0x86,0x3,0xe,0x9, +0xe5,0xd,0x35,0x11,0x16,0x13,0x4c,0x13,0x4f,0x11,0x18,0xd, +0xb1,0x6,0x12,0xff,0x42,0xf8,0xea,0xf2,0xfb,0xee,0xcd,0xed, +0x2d,0xf0,0xe0,0xf4,0x77,0xfa,0xf,0x0,0xd1,0x4,0xf,0x8, +0x83,0x9,0x91,0x9,0x7a,0x8,0x1b,0x6,0x3f,0x3,0xee,0x0, +0xb3,0xfe,0x37,0xfc,0x73,0xfa,0xcb,0xf9,0xcf,0xf9,0x88,0xfa, +0x2c,0xfc,0x50,0xfe,0x1f,0x0,0x22,0x1,0x60,0x1,0x8a,0x0, +0x94,0xfe,0x61,0xfc,0x4f,0xfa,0x54,0xf8,0x54,0xf7,0xa7,0xf7, +0x87,0xf8,0x1c,0xfa,0xcd,0xfc,0xb3,0xff,0x1,0x2,0xb3,0x3, +0xad,0x4,0xe0,0x4,0x72,0x4,0xa7,0x3,0xce,0x2,0xef,0x1, +0x37,0x1,0x24,0x1,0x87,0x1,0xca,0x1,0xf7,0x1,0x3d,0x2, +0x93,0x2,0xbb,0x2,0x1d,0x2,0xc8,0x0,0xb3,0xff,0x4,0xff, +0x2c,0xfe,0x79,0xfd,0x8d,0xfd,0x3c,0xfe,0xb,0xff,0xf1,0xff, +0x26,0x1,0x6c,0x2,0x19,0x3,0xff,0x2,0x97,0x2,0x32,0x2, +0xaa,0x1,0xea,0x0,0x45,0x0,0xc4,0xff,0xfa,0xfe,0x10,0xfe, +0x92,0xfd,0x36,0xfd,0xbd,0xfc,0xa9,0xfc,0xe9,0xfc,0x8,0xfd, +0x30,0xfd,0x5d,0xfd,0x5e,0xfd,0x90,0xfd,0xe0,0xfd,0xca,0xfd, +0xa1,0xfd,0xf0,0xfd,0xa3,0xfe,0x72,0xff,0x5,0x0,0x3d,0x0, +0x85,0x0,0xed,0x0,0x9,0x1,0xed,0x0,0x1,0x1,0x3e,0x1, +0x77,0x1,0xbb,0x1,0x9,0x2,0x25,0x2,0xeb,0x1,0x86,0x1, +0x22,0x1,0xb2,0x0,0x31,0x0,0xbe,0xff,0x78,0xff,0x86,0xff, +0xf4,0xff,0x8f,0x0,0x25,0x1,0xa1,0x1,0xe4,0x1,0xdd,0x1, +0x9a,0x1,0x27,0x1,0x7e,0x0,0xbb,0xff,0x29,0xff,0x10,0xff, +0x8f,0xff,0x70,0x0,0x4c,0x1,0xe,0x2,0xdc,0x2,0x43,0x3, +0xc1,0x2,0xd0,0x1,0x1,0x1,0x20,0x0,0x47,0xff,0xfa,0xfe, +0x9,0xff,0x23,0xff,0x73,0xff,0xae,0xff,0x7d,0xff,0x5f,0xff, +0x93,0xff,0xbc,0xff,0xe2,0xff,0x2b,0x0,0x86,0x0,0x56,0x1, +0x80,0x2,0xfe,0x2,0xbc,0x2,0x7d,0x2,0xa,0x2,0x17,0x1, +0x29,0x0,0x88,0xff,0x4b,0xff,0xb5,0xff,0x65,0x0,0xd9,0x0, +0x46,0x1,0xd4,0x1,0x4a,0x2,0x7c,0x2,0x4f,0x2,0xe6,0x1, +0x79,0x1,0xd7,0x0,0xe6,0xff,0x9,0xff,0x66,0xfe,0xb0,0xfd, +0xa6,0xfc,0x4d,0xfb,0xe1,0xf9,0x8a,0xf8,0x59,0xf7,0x78,0xf6, +0xfc,0xf5,0x1,0xf6,0xa6,0xf6,0x9f,0xf7,0x7,0xf9,0xd0,0xfb, +0x9,0x0,0xd7,0x4,0xe0,0x9,0x83,0xe,0x93,0x11,0xeb,0x12, +0xea,0x12,0x24,0x11,0xa,0xd,0xc6,0x6,0x91,0xff,0x7,0xf9, +0x85,0xf3,0x1a,0xef,0x5b,0xed,0x64,0xef,0xf9,0xf3,0x75,0xf9, +0x11,0xff,0x0,0x4,0x69,0x7,0x8,0x9,0x32,0x9,0x6f,0x8, +0xea,0x6,0xa4,0x4,0x19,0x2,0xdf,0xff,0xe6,0xfd,0xfa,0xfb, +0xc0,0xfa,0xe5,0xfa,0xcb,0xfb,0xca,0xfc,0x4c,0xfe,0x9,0x0, +0xcc,0x0,0x8b,0x0,0xbb,0xff,0x2,0xfe,0xa0,0xfb,0x94,0xf9, +0x2d,0xf8,0x78,0xf7,0xb9,0xf7,0xd1,0xf8,0x99,0xfa,0x2b,0xfd, +0x39,0x0,0x1,0x3,0xf7,0x4,0x10,0x6,0x7c,0x6,0x1d,0x6, +0xf0,0x4,0x8d,0x3,0x78,0x2,0x9c,0x1,0xeb,0x0,0x98,0x0, +0xab,0x0,0xd8,0x0,0xf8,0x0,0x40,0x1,0x82,0x1,0x0,0x1, +0xc9,0xff,0xbc,0xfe,0xf2,0xfd,0x29,0xfd,0xef,0xfc,0x99,0xfd, +0x7f,0xfe,0x67,0xff,0xb9,0x0,0x27,0x2,0x1d,0x3,0xcf,0x3, +0x34,0x4,0xb3,0x3,0x97,0x2,0xa4,0x1,0xcd,0x0,0xf1,0xff, +0x5b,0xff,0xfe,0xfe,0xb8,0xfe,0x9a,0xfe,0x6f,0xfe,0x14,0xfe, +0xc6,0xfd,0xa4,0xfd,0x8d,0xfd,0x3d,0xfd,0xb3,0xfc,0x73,0xfc, +0x94,0xfc,0x89,0xfc,0x67,0xfc,0x99,0xfc,0x16,0xfd,0xf8,0xfd, +0x33,0xff,0x17,0x0,0x8a,0x0,0x21,0x1,0xcd,0x1,0x10,0x2, +0xf6,0x1,0xe9,0x1,0xef,0x1,0x88,0x1,0xd8,0x0,0xbe,0x0, +0x11,0x1,0xed,0x0,0x94,0x0,0x94,0x0,0x93,0x0,0x4b,0x0, +0xf4,0xff,0xbe,0xff,0xd1,0xff,0x3b,0x0,0xcf,0x0,0x57,0x1, +0xb9,0x1,0xa,0x2,0x46,0x2,0x37,0x2,0xe8,0x1,0x8e,0x1, +0x32,0x1,0x5,0x1,0x4b,0x1,0xe8,0x1,0xb3,0x2,0x8c,0x3, +0x27,0x4,0x70,0x4,0x42,0x4,0x36,0x3,0x90,0x1,0x3,0x0, +0xbf,0xfe,0xd3,0xfd,0x75,0xfd,0xa7,0xfd,0x53,0xfe,0x39,0xff, +0xf1,0xff,0x89,0x0,0x46,0x1,0x6,0x2,0x61,0x2,0x25,0x2, +0xc6,0x1,0xec,0x1,0x57,0x2,0x71,0x2,0x69,0x2,0x51,0x2, +0xe7,0x1,0x70,0x1,0x1,0x1,0x53,0x0,0xd0,0xff,0xa7,0xff, +0x46,0xff,0xfd,0xfe,0x92,0xff,0x7b,0x0,0xa,0x1,0xaa,0x1, +0x78,0x2,0xec,0x2,0x2,0x3,0xf9,0x2,0xbf,0x2,0x54,0x2, +0xc2,0x1,0xcd,0x0,0x62,0xff,0xd7,0xfd,0x46,0xfc,0x6e,0xfa, +0x4b,0xf8,0x4c,0xf6,0xe7,0xf4,0x46,0xf4,0x6b,0xf4,0x55,0xf5, +0x0,0xf7,0x72,0xf9,0xb9,0xfc,0xe0,0x0,0xbf,0x5,0xc7,0xa, +0x16,0xf,0xfb,0x11,0x23,0x13,0x8e,0x12,0x73,0x10,0x99,0xc, +0x85,0x6,0x3e,0xff,0xd1,0xf8,0xab,0xf3,0x53,0xef,0x1c,0xed, +0xb5,0xee,0x53,0xf3,0xcf,0xf8,0x1c,0xfe,0xfb,0x2,0x92,0x6, +0x9,0x8,0xfc,0x7,0x7d,0x7,0x68,0x6,0x78,0x4,0x66,0x2, +0x99,0x0,0xb5,0xfe,0xf5,0xfc,0xf7,0xfb,0xd0,0xfb,0x60,0xfc, +0xa4,0xfd,0x20,0xff,0x2d,0x0,0xb3,0x0,0xac,0x0,0x9b,0xff, +0x85,0xfd,0x6b,0xfb,0xec,0xf9,0xd8,0xf8,0x42,0xf8,0x72,0xf8, +0x4b,0xf9,0xba,0xfa,0xce,0xfc,0x31,0xff,0x5f,0x1,0x28,0x3, +0x7f,0x4,0x1f,0x5,0xf7,0x4,0xa3,0x4,0x94,0x4,0x5b,0x4, +0xb2,0x3,0x20,0x3,0xfb,0x2,0xec,0x2,0x9c,0x2,0x27,0x2, +0xda,0x1,0x67,0x1,0x16,0x0,0x40,0xfe,0xeb,0xfc,0x11,0xfc, +0x4c,0xfb,0x13,0xfb,0xc5,0xfb,0x2d,0xfd,0x6,0xff,0xde,0x0, +0x84,0x2,0x47,0x4,0xae,0x5,0xd2,0x5,0x1b,0x5,0x48,0x4, +0x1d,0x3,0xa0,0x1,0x57,0x0,0x3d,0xff,0x71,0xfe,0x49,0xfe, +0x44,0xfe,0x4,0xfe,0x6,0xfe,0x3b,0xfe,0x2b,0xfe,0xec,0xfd, +0x84,0xfd,0xf2,0xfc,0x99,0xfc,0x5c,0xfc,0xf8,0xfb,0xf0,0xfb, +0x58,0xfc,0xae,0xfc,0x41,0xfd,0x7c,0xfe,0xce,0xff,0xc8,0x0, +0x9c,0x1,0x56,0x2,0xda,0x2,0x1c,0x3,0x17,0x3,0xa8,0x2, +0xb6,0x1,0x9b,0x0,0xe2,0xff,0x79,0xff,0xf,0xff,0xd4,0xfe, +0x32,0xff,0x8,0x0,0x8c,0x0,0x70,0x0,0x82,0x0,0x1b,0x1, +0x6c,0x1,0x65,0x1,0xa7,0x1,0xe2,0x1,0xab,0x1,0x5a,0x1, +0x9,0x1,0x96,0x0,0x31,0x0,0xf6,0xff,0x9,0x0,0xb8,0x0, +0xe6,0x1,0x1a,0x3,0x14,0x4,0xca,0x4,0xe,0x5,0x77,0x4, +0xf1,0x2,0xf7,0x0,0xdd,0xfe,0xcf,0xfc,0x4c,0xfb,0xc7,0xfa, +0x4e,0xfb,0x8f,0xfc,0xe5,0xfd,0x36,0xff,0xd1,0x0,0x30,0x2, +0xdb,0x2,0x60,0x3,0xc6,0x3,0x82,0x3,0xf7,0x2,0x8b,0x2, +0xfb,0x1,0x4d,0x1,0xa6,0x0,0xfe,0xff,0x9c,0xff,0x9e,0xff, +0xb3,0xff,0xb8,0xff,0xa3,0xff,0x86,0xff,0xc2,0xff,0x3a,0x0, +0x80,0x0,0xd3,0x0,0x8f,0x1,0x57,0x2,0xa5,0x2,0x99,0x2, +0xa8,0x2,0xc1,0x2,0x6c,0x2,0xd7,0x1,0x48,0x1,0x4e,0x0, +0xe1,0xfe,0x69,0xfd,0x90,0xfb,0x32,0xf9,0xd,0xf7,0x5b,0xf5, +0xb,0xf4,0x99,0xf3,0x25,0xf4,0x7f,0xf5,0xe3,0xf7,0x62,0xfb, +0xc7,0xff,0xe4,0x4,0xfb,0x9,0x29,0xe,0xa,0x11,0x33,0x12, +0xc5,0x11,0x55,0x10,0x11,0xd,0x24,0x7,0x41,0x0,0x35,0xfa, +0xe0,0xf4,0x98,0xf0,0xd7,0xee,0x1a,0xf0,0xb3,0xf3,0xa1,0xf8, +0xc3,0xfd,0x47,0x2,0x9b,0x5,0x2f,0x7,0x2a,0x7,0x67,0x6, +0x40,0x5,0x9b,0x3,0xdb,0x1,0x6e,0x0,0x8,0xff,0x78,0xfd, +0x63,0xfc,0x41,0xfc,0xeb,0xfc,0x20,0xfe,0x65,0xff,0x35,0x0, +0xa5,0x0,0x7b,0x0,0x20,0xff,0x1c,0xfd,0x60,0xfb,0xd9,0xf9, +0x84,0xf8,0xcd,0xf7,0xc9,0xf7,0xa1,0xf8,0x4b,0xfa,0x15,0xfc, +0xe7,0xfd,0xfd,0xff,0xb7,0x1,0xc5,0x2,0x85,0x3,0xe2,0x3, +0xf9,0x3,0x46,0x4,0x7e,0x4,0x5e,0x4,0x39,0x4,0x12,0x4, +0xe2,0x3,0xcd,0x3,0x57,0x3,0x4a,0x2,0x25,0x1,0xd2,0xff, +0xfb,0xfd,0x23,0xfc,0xe6,0xfa,0x48,0xfa,0x2b,0xfa,0xa8,0xfa, +0x8,0xfc,0x36,0xfe,0x81,0x0,0x8a,0x2,0x5f,0x4,0xaf,0x5, +0xc,0x6,0x84,0x5,0x70,0x4,0x28,0x3,0xa9,0x1,0xd6,0xff, +0x37,0xfe,0x3c,0xfd,0x8c,0xfc,0x25,0xfc,0x59,0xfc,0xcb,0xfc, +0x41,0xfd,0xf6,0xfd,0x72,0xfe,0x55,0xfe,0x22,0xfe,0xdc,0xfd, +0x47,0xfd,0xff,0xfc,0x3b,0xfd,0x52,0xfd,0x1a,0xfd,0x28,0xfd, +0xec,0xfd,0x16,0xff,0xea,0xff,0x96,0x0,0xb3,0x1,0xae,0x2, +0x5,0x3,0x44,0x3,0x5d,0x3,0xd8,0x2,0x1d,0x2,0x57,0x1, +0x5f,0x0,0xb3,0xff,0x8a,0xff,0x9e,0xff,0xc,0x0,0xa6,0x0, +0x5,0x1,0x58,0x1,0xb1,0x1,0xfb,0x1,0x73,0x2,0xd0,0x2, +0x9d,0x2,0x3e,0x2,0xdf,0x1,0x21,0x1,0x31,0x0,0x7f,0xff, +0xa,0xff,0xe0,0xfe,0x5f,0xff,0x93,0x0,0xf2,0x1,0x16,0x3, +0x13,0x4,0xb8,0x4,0x80,0x4,0x6d,0x3,0xc0,0x1,0xbb,0xff, +0xce,0xfd,0x27,0xfc,0x16,0xfb,0x47,0xfb,0x57,0xfc,0x62,0xfd, +0xaa,0xfe,0x2b,0x0,0x25,0x1,0xe6,0x1,0xe0,0x2,0x91,0x3, +0xe0,0x3,0xb,0x4,0xca,0x3,0xd,0x3,0xff,0x1,0xb7,0x0, +0x9b,0xff,0xdc,0xfe,0x47,0xfe,0xfe,0xfd,0x1f,0xfe,0x86,0xfe, +0x3b,0xff,0x36,0x0,0x3e,0x1,0x30,0x2,0xee,0x2,0x7d,0x3, +0xc9,0x3,0x8c,0x3,0x7,0x3,0x7e,0x2,0x92,0x1,0x74,0x0, +0xa8,0xff,0xc3,0xfe,0xc4,0xfd,0x48,0xfd,0xab,0xfc,0x53,0xfb, +0x23,0xfa,0x45,0xf9,0xda,0xf7,0x5b,0xf6,0xc2,0xf5,0xa1,0xf5, +0x93,0xf5,0xa6,0xf6,0xa7,0xf9,0xe6,0xfd,0x89,0x2,0x6a,0x7, +0x2a,0xc,0xb5,0xf,0x55,0x11,0x6d,0x11,0x72,0x10,0xc2,0xd, +0xba,0x8,0x42,0x2,0xec,0xfb,0x8d,0xf6,0x65,0xf2,0x10,0xf0, +0xa1,0xf0,0x28,0xf4,0xed,0xf8,0x90,0xfd,0xf1,0x1,0x56,0x5, +0xeb,0x6,0x31,0x7,0xa0,0x6,0x4a,0x5,0xb6,0x3,0xd,0x2, +0x2f,0x0,0x90,0xfe,0x63,0xfd,0xa9,0xfc,0xb5,0xfc,0x54,0xfd, +0x3a,0xfe,0x7a,0xff,0x95,0x0,0x1b,0x1,0x20,0x1,0x3e,0x0, +0x6d,0xfe,0x71,0xfc,0x7c,0xfa,0xac,0xf8,0x86,0xf7,0x27,0xf7, +0xd1,0xf7,0x8e,0xf9,0x8c,0xfb,0x9a,0xfd,0xeb,0xff,0xef,0x1, +0x96,0x3,0xe2,0x4,0x41,0x5,0x6d,0x5,0x11,0x6,0x14,0x6, +0x76,0x5,0x32,0x5,0xcd,0x4,0x2f,0x4,0xed,0x3,0x62,0x3, +0x54,0x2,0x4e,0x1,0xe6,0xff,0x1b,0xfe,0x9e,0xfc,0x76,0xfb, +0xbc,0xfa,0xb5,0xfa,0x39,0xfb,0x8d,0xfc,0xae,0xfe,0xc3,0x0, +0xa8,0x2,0x79,0x4,0xa8,0x5,0x9,0x6,0xa9,0x5,0x7d,0x4, +0xe,0x3,0x99,0x1,0xd1,0xff,0xe8,0xfd,0x23,0xfc,0xe2,0xfa, +0xb8,0xfa,0x24,0xfb,0x99,0xfb,0xcd,0xfc,0x72,0xfe,0x35,0xff, +0x4d,0xff,0x59,0xff,0xb,0xff,0x7e,0xfe,0x3,0xfe,0x71,0xfd, +0xea,0xfc,0xa2,0xfc,0x8d,0xfc,0xe4,0xfc,0x9b,0xfd,0x4d,0xfe, +0x2a,0xff,0x5e,0x0,0x5e,0x1,0xf5,0x1,0x89,0x2,0xfd,0x2, +0xed,0x2,0x8c,0x2,0x2f,0x2,0xbf,0x1,0x2b,0x1,0xa7,0x0, +0x74,0x0,0x8c,0x0,0x8d,0x0,0x71,0x0,0xba,0x0,0x47,0x1, +0x90,0x1,0xe8,0x1,0x73,0x2,0x73,0x2,0xe4,0x1,0x4e,0x1, +0x83,0x0,0x87,0xff,0xcd,0xfe,0x5c,0xfe,0x3f,0xfe,0xae,0xfe, +0xa5,0xff,0x11,0x1,0x85,0x2,0x98,0x3,0x84,0x4,0xde,0x4, +0xeb,0x3,0xa3,0x2,0xb2,0x1,0x7,0x0,0xe5,0xfd,0xb8,0xfc, +0x45,0xfc,0xf,0xfc,0x76,0xfc,0x25,0xfd,0xba,0xfd,0x8c,0xfe, +0x84,0xff,0x94,0x0,0x5,0x2,0x6f,0x3,0x76,0x4,0x44,0x5, +0x62,0x5,0x89,0x4,0x88,0x3,0x9b,0x2,0x52,0x1,0xed,0xff, +0xcb,0xfe,0xe2,0xfd,0x78,0xfd,0xea,0xfd,0xf9,0xfe,0x43,0x0, +0x91,0x1,0xc0,0x2,0xcb,0x3,0x9d,0x4,0xde,0x4,0x4b,0x4, +0x2d,0x3,0xdd,0x1,0x34,0x0,0x39,0xfe,0x88,0xfc,0x44,0xfb, +0x11,0xfa,0x3d,0xf9,0x1d,0xf9,0x28,0xf9,0xc,0xf9,0xfc,0xf8, +0xdc,0xf8,0xa5,0xf8,0x92,0xf8,0x9c,0xf8,0x13,0xf9,0xca,0xfa, +0xf3,0xfd,0xd,0x2,0x9f,0x6,0x1d,0xb,0xbe,0xe,0xf1,0x10, +0x8f,0x11,0x99,0x10,0xd6,0xd,0x1a,0x9,0xe7,0x2,0x6f,0xfc, +0xce,0xf6,0x78,0xf2,0xe4,0xef,0x3a,0xf0,0xae,0xf3,0x59,0xf8, +0xd1,0xfc,0x44,0x1,0xb,0x5,0xa,0x7,0xba,0x7,0xc6,0x7, +0xea,0x6,0x42,0x5,0x49,0x3,0x29,0x1,0xc,0xff,0x3a,0xfd, +0x6,0xfc,0x95,0xfb,0xc5,0xfb,0xb6,0xfc,0x55,0xfe,0xb2,0xff, +0x6b,0x0,0xde,0x0,0xa8,0x0,0x64,0xff,0x80,0xfd,0x4d,0xfb, +0x3c,0xf9,0xd7,0xf7,0x4,0xf7,0x15,0xf7,0x9f,0xf8,0xd4,0xfa, +0xe3,0xfc,0x15,0xff,0x5b,0x1,0x60,0x3,0x31,0x5,0x89,0x6, +0x38,0x7,0x67,0x7,0x4,0x7,0x36,0x6,0x38,0x5,0xf9,0x3, +0xf6,0x2,0x6b,0x2,0x82,0x1,0x69,0x0,0xee,0xff,0x53,0xff, +0x15,0xfe,0x26,0xfd,0xb8,0xfc,0x40,0xfc,0x3,0xfc,0x79,0xfc, +0xa6,0xfd,0x30,0xff,0xc0,0x0,0x8e,0x2,0x75,0x4,0x83,0x5, +0xa6,0x5,0x75,0x5,0xc3,0x4,0x8b,0x3,0x34,0x2,0x62,0x0, +0xfb,0xfd,0xfe,0xfb,0xef,0xfa,0x9a,0xfa,0xa,0xfb,0x22,0xfc, +0x58,0xfd,0x73,0xfe,0x8e,0xff,0x62,0x0,0x60,0x0,0xc2,0xff, +0x40,0xff,0x9b,0xfe,0x69,0xfd,0x74,0xfc,0x33,0xfc,0x13,0xfc, +0x32,0xfc,0xfe,0xfc,0x1c,0xfe,0x64,0xff,0xcf,0x0,0xe5,0x1, +0xc8,0x2,0x97,0x3,0xaf,0x3,0x5b,0x3,0x6b,0x3,0x48,0x3, +0x8b,0x2,0xe0,0x1,0x59,0x1,0xdb,0x0,0xac,0x0,0x77,0x0, +0x36,0x0,0x9a,0x0,0x5f,0x1,0xda,0x1,0x47,0x2,0xb6,0x2, +0xcb,0x2,0x79,0x2,0xab,0x1,0x86,0x0,0x86,0xff,0xa0,0xfe, +0xc6,0xfd,0x6c,0xfd,0xc6,0xfd,0xd7,0xfe,0x7a,0x0,0x19,0x2, +0x9e,0x3,0x4b,0x5,0x47,0x6,0xe2,0x5,0xe1,0x4,0xc9,0x3, +0x37,0x2,0x46,0x0,0x69,0xfe,0xf7,0xfc,0x3c,0xfc,0xdc,0xfb, +0x57,0xfb,0x45,0xfb,0x28,0xfc,0x5b,0xfd,0xb0,0xfe,0xb3,0x0, +0xea,0x2,0x7d,0x4,0x9b,0x5,0x7e,0x6,0xbb,0x6,0x2c,0x6, +0xa,0x5,0xa5,0x3,0x71,0x2,0x66,0x1,0x40,0x0,0x4c,0xff, +0xcb,0xfe,0x95,0xfe,0xd9,0xfe,0xb3,0xff,0xb8,0x0,0xc1,0x1, +0xcc,0x2,0x79,0x3,0x95,0x3,0x35,0x3,0x65,0x2,0x22,0x1, +0x5c,0xff,0x4c,0xfd,0x78,0xfb,0xc,0xfa,0xf2,0xf8,0x28,0xf8, +0x92,0xf7,0x4f,0xf7,0x80,0xf7,0x9d,0xf7,0x93,0xf7,0xc,0xf8, +0xe4,0xf8,0xdb,0xf9,0xcc,0xfb,0x0,0xff,0xc0,0x2,0xeb,0x6, +0x66,0xb,0x19,0xf,0x38,0x11,0xe5,0x11,0x14,0x11,0x32,0xe, +0x20,0x9,0xa0,0x2,0xc1,0xfb,0x93,0xf5,0x9,0xf1,0xb4,0xee, +0x18,0xef,0x5f,0xf2,0x48,0xf7,0x43,0xfc,0xee,0x0,0xcb,0x4, +0x15,0x7,0x28,0x8,0x69,0x8,0x84,0x7,0xe4,0x5,0x2f,0x4, +0x2c,0x2,0xe0,0xff,0xbc,0xfd,0xd9,0xfb,0xb5,0xfa,0xf6,0xfa, +0x11,0xfc,0x3b,0xfd,0xa0,0xfe,0x35,0x0,0x8,0x1,0xa8,0x0, +0x8a,0xff,0xfc,0xfd,0x11,0xfc,0x26,0xfa,0x92,0xf8,0xb4,0xf7, +0x0,0xf8,0x20,0xf9,0x7e,0xfa,0x57,0xfc,0x96,0xfe,0x91,0x0, +0x5f,0x2,0x30,0x4,0x9c,0x5,0xb9,0x6,0x77,0x7,0x22,0x7, +0x7,0x6,0x2,0x5,0xe0,0x3,0x79,0x2,0x52,0x1,0x60,0x0, +0x7c,0xff,0xc,0xff,0xe2,0xfe,0x54,0xfe,0xac,0xfd,0x86,0xfd, +0x75,0xfd,0x2a,0xfd,0x6a,0xfd,0x5f,0xfe,0x54,0xff,0x67,0x0, +0xe7,0x1,0x36,0x3,0x1c,0x4,0xc5,0x4,0xb1,0x4,0xd0,0x3, +0xbe,0x2,0x6c,0x1,0xbe,0xff,0x1d,0xfe,0xb6,0xfc,0xbf,0xfb, +0x82,0xfb,0xcf,0xfb,0x95,0xfc,0xba,0xfd,0x90,0xfe,0x10,0xff, +0x99,0xff,0x99,0xff,0xd2,0xfe,0x26,0xfe,0xd2,0xfd,0x5f,0xfd, +0xd2,0xfc,0x48,0xfc,0xf0,0xfb,0x51,0xfc,0x65,0xfd,0xad,0xfe, +0xe,0x0,0x73,0x1,0x77,0x2,0x4,0x3,0x5b,0x3,0x82,0x3, +0x5d,0x3,0xf,0x3,0xb9,0x2,0x3f,0x2,0xa8,0x1,0x20,0x1, +0x92,0x0,0xef,0xff,0x9e,0xff,0xda,0xff,0x4d,0x0,0xca,0x0, +0x85,0x1,0x57,0x2,0xdb,0x2,0xe,0x3,0x1c,0x3,0xd6,0x2, +0xf4,0x1,0x9e,0x0,0x46,0xff,0x8,0xfe,0xe0,0xfc,0x53,0xfc, +0xda,0xfc,0x29,0xfe,0xe8,0xff,0x13,0x2,0x46,0x4,0xa,0x6, +0x3b,0x7,0x67,0x7,0x4d,0x6,0x7c,0x4,0x52,0x2,0xec,0xff, +0xdc,0xfd,0x52,0xfc,0xe3,0xfa,0xd8,0xf9,0xca,0xf9,0x77,0xfa, +0x78,0xfb,0xd,0xfd,0x74,0xff,0x2d,0x2,0x6c,0x4,0xf3,0x5, +0xeb,0x6,0x19,0x7,0x37,0x6,0xba,0x4,0x6c,0x3,0x6c,0x2, +0x31,0x1,0xbe,0xff,0xdd,0xfe,0xc1,0xfe,0xe6,0xfe,0x44,0xff, +0xd7,0xff,0x51,0x0,0x6,0x1,0x2c,0x2,0x1e,0x3,0x96,0x3, +0xa7,0x3,0xfc,0x2,0xce,0x1,0xa1,0x0,0x34,0xff,0x7a,0xfd, +0xfe,0xfb,0xc1,0xfa,0x96,0xf9,0x96,0xf8,0x98,0xf7,0xa1,0xf6, +0xa,0xf6,0xd5,0xf5,0xb,0xf6,0xd9,0xf6,0x1a,0xf8,0x12,0xfa, +0x81,0xfd,0x2,0x2,0x78,0x6,0xcc,0xa,0x27,0xf,0x65,0x12, +0x68,0x13,0x93,0x12,0x51,0x10,0xd8,0xb,0xe6,0x4,0x14,0xfd, +0x2d,0xf6,0xd3,0xf0,0x63,0xed,0xb1,0xec,0x4b,0xef,0x8e,0xf4, +0xbd,0xfa,0x45,0x0,0x9a,0x4,0x84,0x7,0xc5,0x8,0xbf,0x8, +0xf0,0x7,0x29,0x6,0xa4,0x3,0x51,0x1,0x5e,0xff,0x71,0xfd, +0xe1,0xfb,0x8,0xfb,0xf8,0xfa,0xfa,0xfb,0xc7,0xfd,0x6d,0xff, +0xac,0x0,0xa1,0x1,0xba,0x1,0xa3,0x0,0xc2,0xfe,0x84,0xfc, +0x47,0xfa,0x73,0xf8,0x4b,0xf7,0x15,0xf7,0xfa,0xf7,0x9c,0xf9, +0x79,0xfb,0x89,0xfd,0xe5,0xff,0x13,0x2,0xb9,0x3,0x1c,0x5, +0x29,0x6,0x8b,0x6,0x92,0x6,0x44,0x6,0x38,0x5,0xec,0x3, +0xe8,0x2,0xda,0x1,0xeb,0x0,0x56,0x0,0xbe,0xff,0x58,0xff, +0x2d,0xff,0x83,0xfe,0xa7,0xfd,0x4e,0xfd,0x26,0xfd,0x32,0xfd, +0xb5,0xfd,0x6e,0xfe,0xb0,0xff,0x6d,0x1,0x87,0x2,0x13,0x3, +0xb8,0x3,0xe5,0x3,0x54,0x3,0x65,0x2,0x26,0x1,0xf7,0xff, +0xe9,0xfe,0xab,0xfd,0x3,0xfd,0x49,0xfd,0x9d,0xfd,0x19,0xfe, +0xdf,0xfe,0x3,0xff,0xde,0xfe,0x15,0xff,0xca,0xfe,0xe6,0xfd, +0x37,0xfd,0x9f,0xfc,0x2b,0xfc,0x2c,0xfc,0x31,0xfc,0x5b,0xfc, +0x4a,0xfd,0x8e,0xfe,0x98,0xff,0xc8,0x0,0x55,0x2,0x7a,0x3, +0x7b,0x3,0xfd,0x2,0xdc,0x2,0x7d,0x2,0xa1,0x1,0x35,0x1, +0x1d,0x1,0xc6,0x0,0x90,0x0,0x5c,0x0,0xec,0xff,0xf1,0xff, +0x58,0x0,0x97,0x0,0x13,0x1,0xa1,0x1,0xc9,0x1,0x3a,0x2, +0xee,0x2,0x5,0x3,0xc3,0x2,0x74,0x2,0xae,0x1,0xad,0x0, +0x89,0xff,0xc,0xfe,0x1d,0xfd,0x28,0xfd,0x5d,0xfd,0x26,0xfe, +0x54,0x0,0xdb,0x2,0xb4,0x4,0x35,0x6,0x28,0x7,0xc7,0x6, +0x55,0x5,0x76,0x3,0x31,0x1,0xb2,0xfe,0xb1,0xfc,0x77,0xfb, +0xa4,0xfa,0x36,0xfa,0x88,0xfa,0x6d,0xfb,0xb2,0xfc,0xa7,0xfe, +0x1a,0x1,0x4a,0x3,0xf0,0x4,0xf6,0x5,0x1b,0x6,0x75,0x5, +0x2d,0x4,0x72,0x2,0xde,0x0,0x93,0xff,0x2f,0xfe,0x39,0xfd, +0x65,0xfd,0xd,0xfe,0x9e,0xfe,0xa2,0xff,0x27,0x1,0x63,0x2, +0x20,0x3,0xb6,0x3,0x1c,0x4,0x4,0x4,0x75,0x3,0x8c,0x2, +0x43,0x1,0xc2,0xff,0x52,0xfe,0xef,0xfc,0xa7,0xfb,0xa7,0xfa, +0xb4,0xf9,0x87,0xf8,0x53,0xf7,0x5a,0xf6,0xc5,0xf5,0xa1,0xf5, +0xe2,0xf5,0xc8,0xf6,0xa8,0xf8,0x4f,0xfb,0xb0,0xfe,0x20,0x3, +0x20,0x8,0xb0,0xc,0x78,0x10,0xfd,0x12,0x62,0x13,0xb8,0x11, +0x89,0xe,0x68,0x9,0x2c,0x2,0x79,0xfa,0x1a,0xf4,0x78,0xef, +0xff,0xec,0xab,0xed,0x90,0xf1,0x70,0xf7,0x92,0xfd,0xc9,0x2, +0xcc,0x6,0x29,0x9,0x35,0x9,0xc4,0x7,0x23,0x6,0x0,0x4, +0x3e,0x1,0x9,0xff,0x92,0xfd,0x44,0xfc,0x77,0xfb,0x84,0xfb, +0x4c,0xfc,0xb2,0xfd,0x45,0xff,0xa1,0x0,0xa0,0x1,0xc2,0x1, +0xf0,0x0,0x9a,0xff,0x7c,0xfd,0xb7,0xfa,0x72,0xf8,0x1e,0xf7, +0x98,0xf6,0x18,0xf7,0x5f,0xf8,0x35,0xfa,0xe0,0xfc,0x99,0xff, +0x55,0x1,0x80,0x2,0x8b,0x3,0x16,0x4,0x51,0x4,0xa0,0x4, +0xc0,0x4,0x78,0x4,0xd3,0x3,0x28,0x3,0x19,0x3,0x73,0x3, +0x3f,0x3,0x90,0x2,0x1b,0x2,0x8b,0x1,0x4c,0x0,0xa4,0xfe, +0x14,0xfd,0x3,0xfc,0xb2,0xfb,0xd4,0xfb,0x74,0xfc,0x1a,0xfe, +0x22,0x0,0x84,0x1,0xa7,0x2,0xd2,0x3,0x2c,0x4,0xb8,0x3, +0x14,0x3,0x1b,0x2,0xf6,0x0,0x25,0x0,0x50,0xff,0x7f,0xfe, +0x68,0xfe,0xe4,0xfe,0x68,0xff,0xe5,0xff,0xc,0x0,0xc1,0xff, +0x85,0xff,0x25,0xff,0x16,0xfe,0xc5,0xfc,0xb0,0xfb,0xe1,0xfa, +0xb5,0xfa,0x3c,0xfb,0xd2,0xfb,0x95,0xfc,0x2a,0xfe,0x26,0x0, +0xc4,0x1,0x13,0x3,0x18,0x4,0x76,0x4,0x3b,0x4,0xa1,0x3, +0xc1,0x2,0xdf,0x1,0xa,0x1,0x1a,0x0,0x7d,0xff,0xa2,0xff, +0xf6,0xff,0x5,0x0,0x4c,0x0,0xfa,0x0,0x98,0x1,0x7,0x2, +0x4e,0x2,0x38,0x2,0xc,0x2,0x37,0x2,0x67,0x2,0x46,0x2, +0xf3,0x1,0x71,0x1,0xf9,0x0,0xb2,0x0,0x4,0x0,0xfc,0xfe, +0xa5,0xfe,0xf4,0xfe,0x73,0xff,0x8e,0x0,0xef,0x1,0xed,0x2, +0x15,0x4,0x25,0x5,0xd6,0x4,0xa5,0x3,0xac,0x2,0x94,0x1, +0x22,0x0,0xee,0xfe,0x3c,0xfe,0xe6,0xfd,0x9d,0xfd,0x41,0xfd, +0x3a,0xfd,0xd6,0xfd,0xf3,0xfe,0x41,0x0,0x66,0x1,0x7e,0x2, +0x91,0x3,0xfd,0x3,0xd9,0x3,0xc3,0x3,0x33,0x3,0xf5,0x1, +0xd8,0x0,0xd2,0xff,0xd8,0xfe,0xcb,0xfe,0x76,0xff,0x19,0x0, +0xf6,0x0,0x8,0x2,0xe4,0x2,0x98,0x3,0xf3,0x3,0xc3,0x3, +0x43,0x3,0x60,0x2,0x4f,0x1,0x7a,0x0,0x72,0xff,0x2f,0xfe, +0x6d,0xfd,0xf5,0xfc,0x3b,0xfc,0x7a,0xfb,0xb8,0xfa,0xcf,0xf9, +0xf2,0xf8,0x2e,0xf8,0x9e,0xf7,0x55,0xf7,0x23,0xf7,0x8d,0xf7, +0x3c,0xf9,0xd3,0xfb,0x2b,0xff,0x89,0x3,0x3a,0x8,0x7d,0xc, +0x4,0x10,0xed,0x11,0xd7,0x11,0x5f,0x10,0x44,0xd,0xd2,0x7, +0xeb,0x0,0x4b,0xfa,0xf5,0xf4,0x43,0xf1,0x8c,0xef,0x8e,0xf0, +0xa2,0xf4,0x69,0xfa,0xce,0xff,0x1d,0x4,0x4f,0x7,0xbd,0x8, +0x34,0x8,0xa7,0x6,0xd1,0x4,0xad,0x2,0x77,0x0,0xc5,0xfe, +0xb2,0xfd,0xdc,0xfc,0x35,0xfc,0x33,0xfc,0x12,0xfd,0x65,0xfe, +0xb4,0xff,0xc4,0x0,0x49,0x1,0x21,0x1,0x5e,0x0,0xde,0xfe, +0xbf,0xfc,0x9d,0xfa,0xba,0xf8,0x3e,0xf7,0xfb,0xf6,0x2a,0xf8, +0xe0,0xf9,0xb6,0xfb,0xf6,0xfd,0x2b,0x0,0x9c,0x1,0x4d,0x2, +0x9e,0x2,0xe1,0x2,0x31,0x3,0x61,0x3,0x8c,0x3,0xf4,0x3, +0x55,0x4,0x96,0x4,0x18,0x5,0x96,0x5,0x8b,0x5,0x14,0x5, +0x13,0x4,0x24,0x2,0x92,0xff,0xd9,0xfc,0x8d,0xfa,0x78,0xf9, +0x7a,0xf9,0x9,0xfa,0x83,0xfb,0xd5,0xfd,0x1b,0x0,0x51,0x2, +0x61,0x4,0x62,0x5,0x72,0x5,0x2e,0x5,0x3e,0x4,0xc8,0x2, +0x98,0x1,0x86,0x0,0x39,0xff,0x25,0xfe,0x9f,0xfd,0x8a,0xfd, +0xdc,0xfd,0x6b,0xfe,0xd2,0xfe,0xe2,0xfe,0xc8,0xfe,0x84,0xfe, +0xc4,0xfd,0xa7,0xfc,0xac,0xfb,0xda,0xfa,0x49,0xfa,0x6c,0xfa, +0x39,0xfb,0x5f,0xfc,0xc9,0xfd,0x44,0xff,0xa1,0x0,0xdd,0x1, +0xc7,0x2,0x4a,0x3,0x81,0x3,0x4c,0x3,0xc0,0x2,0x20,0x2, +0x53,0x1,0x8f,0x0,0x30,0x0,0xe0,0xff,0x72,0xff,0x74,0xff, +0x1,0x0,0x9d,0x0,0x6,0x1,0x47,0x1,0x71,0x1,0x6d,0x1, +0x2b,0x1,0xe8,0x0,0xbe,0x0,0x74,0x0,0x1e,0x0,0xd6,0xff, +0x79,0xff,0x34,0xff,0x3b,0xff,0x4f,0xff,0x77,0xff,0x22,0x0, +0x4a,0x1,0x65,0x2,0xd,0x3,0x62,0x3,0x97,0x3,0x51,0x3, +0x39,0x2,0xca,0x0,0xa8,0xff,0xea,0xfe,0x7c,0xfe,0x51,0xfe, +0x48,0xfe,0x4c,0xfe,0x5b,0xfe,0x59,0xfe,0x3f,0xfe,0x74,0xfe, +0x54,0xff,0x74,0x0,0x4e,0x1,0x12,0x2,0xe1,0x2,0x6f,0x3, +0xa3,0x3,0x85,0x3,0x16,0x3,0x80,0x2,0xa7,0x1,0x8d,0x0, +0xf6,0xff,0x33,0x0,0x90,0x0,0xe2,0x0,0x80,0x1,0x16,0x2, +0x42,0x2,0x26,0x2,0xcc,0x1,0x36,0x1,0x92,0x0,0xb4,0xff, +0x8e,0xfe,0xc1,0xfd,0x92,0xfd,0x56,0xfd,0xee,0xfc,0xfc,0xfc, +0x42,0xfd,0xf1,0xfc,0x38,0xfc,0x8f,0xfb,0xba,0xfa,0x86,0xf9, +0x34,0xf8,0x1f,0xf7,0xa9,0xf6,0xf4,0xf6,0x1f,0xf8,0xcd,0xfa, +0x3,0xff,0xac,0x3,0x49,0x8,0xc9,0xc,0xff,0xf,0xa,0x11, +0xbc,0x10,0x6f,0xf,0xe2,0xb,0xc9,0x5,0xee,0xfe,0xed,0xf8, +0x1c,0xf4,0xf5,0xf0,0x69,0xf0,0xaa,0xf2,0xef,0xf6,0x8,0xfc, +0xd7,0x0,0xbb,0x4,0x46,0x7,0xc,0x8,0x68,0x7,0x1e,0x6, +0x37,0x4,0xcb,0x1,0xbf,0xff,0x75,0xfe,0x62,0xfd,0x2b,0xfc, +0x2b,0xfb,0x24,0xfb,0x4c,0xfc,0xca,0xfd,0xf8,0xfe,0xf4,0xff, +0xaa,0x0,0xc5,0x0,0x16,0x0,0x81,0xfe,0x71,0xfc,0x94,0xfa, +0xf0,0xf8,0xbb,0xf7,0xb6,0xf7,0xbe,0xf8,0x20,0xfa,0xf5,0xfb, +0x2f,0xfe,0xf9,0xff,0x6,0x1,0xc8,0x1,0x4f,0x2,0x71,0x2, +0x81,0x2,0xde,0x2,0x4c,0x3,0x9c,0x3,0x17,0x4,0xc8,0x4, +0x5b,0x5,0x8b,0x5,0x30,0x5,0x65,0x4,0x21,0x3,0xcd,0x0, +0xc4,0xfd,0x66,0xfb,0xcd,0xf9,0x86,0xf8,0x65,0xf8,0xad,0xf9, +0x7e,0xfb,0xd3,0xfd,0xb6,0x0,0x50,0x3,0x28,0x5,0x1a,0x6, +0x15,0x6,0x90,0x5,0x91,0x4,0xdf,0x2,0x1e,0x1,0x7f,0xff, +0xba,0xfd,0x82,0xfc,0x10,0xfc,0xbb,0xfb,0xe8,0xfb,0xe6,0xfc, +0xd2,0xfd,0x78,0xfe,0x20,0xff,0x5f,0xff,0x16,0xff,0x95,0xfe, +0xd1,0xfd,0xcd,0xfc,0xd1,0xfb,0x4e,0xfb,0x95,0xfb,0x4d,0xfc, +0x1f,0xfd,0x27,0xfe,0x3a,0xff,0x3a,0x0,0x5c,0x1,0x5c,0x2, +0x6,0x3,0x8f,0x3,0xd0,0x3,0xc0,0x3,0x7f,0x3,0xe2,0x2, +0x3e,0x2,0xcb,0x1,0xf5,0x0,0x49,0x0,0xa7,0x0,0xe,0x1, +0xed,0x0,0x18,0x1,0x61,0x1,0x4a,0x1,0x1f,0x1,0xc1,0x0, +0x2d,0x0,0xbc,0xff,0x4d,0xff,0xf,0xff,0x1d,0xff,0xe9,0xfe, +0xd1,0xfe,0x74,0xff,0x4c,0x0,0x68,0x1,0x1b,0x3,0x8f,0x4, +0x6e,0x5,0xd0,0x5,0x37,0x5,0x1,0x4,0xae,0x2,0xbc,0x0, +0xc1,0xfe,0xae,0xfd,0xe5,0xfc,0x54,0xfc,0x77,0xfc,0x91,0xfc, +0x83,0xfc,0x0,0xfd,0x90,0xfd,0x11,0xfe,0x5b,0xff,0x24,0x1, +0x89,0x2,0xa3,0x3,0xc2,0x4,0x89,0x5,0x5f,0x5,0x7a,0x4, +0x90,0x3,0x71,0x2,0xce,0x0,0x86,0xff,0x1c,0xff,0xfe,0xfe, +0xc,0xff,0x7f,0xff,0x25,0x0,0xc3,0x0,0x2e,0x1,0x38,0x1, +0xe1,0x0,0x40,0x0,0x9a,0xff,0x18,0xff,0x9f,0xfe,0x47,0xfe, +0xfe,0xfd,0x89,0xfd,0x4c,0xfd,0x64,0xfd,0x23,0xfd,0xa0,0xfc, +0x1d,0xfc,0xb,0xfb,0xa2,0xf9,0x6f,0xf8,0x24,0xf7,0x18,0xf6, +0xfa,0xf5,0xad,0xf6,0xb5,0xf8,0x95,0xfc,0x37,0x1,0xfd,0x5, +0xa,0xb,0x3f,0xf,0x90,0x11,0x32,0x12,0x3d,0x11,0x5f,0xe, +0x29,0x9,0xf3,0x1,0xed,0xfa,0x9f,0xf5,0x82,0xf1,0x42,0xef, +0x78,0xf0,0x4e,0xf4,0x18,0xf9,0x43,0xfe,0xe0,0x2,0x5,0x6, +0xc0,0x7,0x1c,0x8,0x61,0x7,0x20,0x6,0x29,0x4,0xa9,0x1, +0xb5,0xff,0x46,0xfe,0x9a,0xfc,0x2a,0xfb,0xb3,0xfa,0xf8,0xfa, +0xc9,0xfb,0x41,0xfd,0xcf,0xfe,0xb8,0xff,0x23,0x0,0x4c,0x0, +0xab,0xff,0x8,0xfe,0x35,0xfc,0xe0,0xfa,0xf3,0xf9,0x78,0xf9, +0xc1,0xf9,0xd0,0xfa,0x5f,0xfc,0x34,0xfe,0xff,0xff,0x52,0x1, +0x1b,0x2,0xa7,0x2,0xf4,0x2,0xd3,0x2,0x9a,0x2,0xb7,0x2, +0xfb,0x2,0x2f,0x3,0x89,0x3,0x2a,0x4,0xc6,0x4,0xf9,0x4, +0xb9,0x4,0x29,0x4,0x7,0x3,0x13,0x1,0xde,0xfe,0x14,0xfd, +0xaf,0xfb,0xba,0xfa,0xa1,0xfa,0x6b,0xfb,0xdf,0xfc,0xf5,0xfe, +0x58,0x1,0x4f,0x3,0x95,0x4,0x5d,0x5,0x95,0x5,0xfd,0x4, +0xd9,0x3,0x9b,0x2,0x36,0x1,0x90,0xff,0x1a,0xfe,0x4e,0xfd, +0x8,0xfd,0xe0,0xfc,0xfd,0xfc,0xd3,0xfd,0xff,0xfe,0x97,0xff, +0xae,0xff,0xd4,0xff,0xbb,0xff,0x14,0xff,0x53,0xfe,0x9c,0xfd, +0xcb,0xfc,0x44,0xfc,0x4f,0xfc,0xb6,0xfc,0x5f,0xfd,0x45,0xfe, +0x46,0xff,0x53,0x0,0x5b,0x1,0x41,0x2,0xf5,0x2,0x66,0x3, +0xac,0x3,0xd9,0x3,0xbe,0x3,0x50,0x3,0xc2,0x2,0x2b,0x2, +0xc6,0x1,0xaa,0x1,0x82,0x1,0x4c,0x1,0x36,0x1,0xf7,0x0, +0xbc,0x0,0xd7,0x0,0xa6,0x0,0xd,0x0,0xbf,0xff,0x66,0xff, +0xc8,0xfe,0xa9,0xfe,0xb0,0xfe,0x49,0xfe,0x6c,0xfe,0x83,0xff, +0xe4,0x0,0x92,0x2,0x60,0x4,0xce,0x5,0xe5,0x6,0x1c,0x7, +0xc,0x6,0xae,0x4,0x8,0x3,0x80,0x0,0x6f,0xfe,0x8f,0xfd, +0x9e,0xfc,0xb5,0xfb,0x97,0xfb,0x89,0xfb,0x79,0xfb,0x35,0xfc, +0x66,0xfd,0xbc,0xfe,0x7a,0x0,0x3a,0x2,0xc6,0x3,0x60,0x5, +0x89,0x6,0xaf,0x6,0xd,0x6,0xec,0x4,0x63,0x3,0xbf,0x1, +0x4a,0x0,0x1c,0xff,0x5f,0xfe,0x65,0xfe,0xfd,0xfe,0x90,0xff, +0x35,0x0,0x22,0x1,0xb2,0x1,0xb5,0x1,0xc3,0x1,0xa0,0x1, +0xd,0x1,0xbc,0x0,0x9e,0x0,0xfe,0xff,0x24,0xff,0x81,0xfe, +0xcd,0xfd,0xe3,0xfc,0xd5,0xfb,0xae,0xfa,0x9d,0xf9,0xb8,0xf8, +0xfc,0xf7,0x7c,0xf7,0x3d,0xf7,0x42,0xf7,0xc3,0xf7,0x60,0xf9, +0xa2,0xfc,0xfc,0x0,0x85,0x5,0x34,0xa,0xa7,0xe,0xac,0x11, +0xef,0x12,0xa0,0x12,0x45,0x10,0x91,0xb,0xed,0x4,0x83,0xfd, +0x1a,0xf7,0x81,0xf2,0xac,0xef,0x81,0xef,0x75,0xf2,0x36,0xf7, +0x73,0xfc,0x42,0x1,0xaf,0x4,0xbf,0x6,0xdf,0x7,0xf7,0x7, +0x58,0x7,0x43,0x6,0x71,0x4,0x53,0x2,0x68,0x0,0x75,0xfe, +0xb7,0xfc,0x9a,0xfb,0x7,0xfb,0x42,0xfb,0x59,0xfc,0x81,0xfd, +0x6a,0xfe,0x3f,0xff,0xb0,0xff,0x81,0xff,0xbc,0xfe,0x6d,0xfd, +0x9,0xfc,0x1b,0xfb,0xc4,0xfa,0xf8,0xfa,0xb1,0xfb,0xfc,0xfc, +0xa9,0xfe,0x3,0x0,0x3,0x1,0x51,0x2,0x7d,0x3,0xcd,0x3, +0xc3,0x3,0xa4,0x3,0x17,0x3,0x8d,0x2,0x7d,0x2,0x8c,0x2, +0x97,0x2,0xca,0x2,0x1e,0x3,0x64,0x3,0x4a,0x3,0xae,0x2, +0xc3,0x1,0x71,0x0,0xc0,0xfe,0x68,0xfd,0xa7,0xfc,0x23,0xfc, +0xb,0xfc,0xb9,0xfc,0xfc,0xfd,0x70,0xff,0xbd,0x0,0xc4,0x1, +0x99,0x2,0xa,0x3,0xc,0x3,0x9,0x3,0xc3,0x2,0xba,0x1, +0x7f,0x0,0x99,0xff,0xbe,0xfe,0x31,0xfe,0x3e,0xfe,0x23,0xfe, +0xcf,0xfd,0x24,0xfe,0xbd,0xfe,0xac,0xfe,0x5d,0xfe,0x4e,0xfe, +0xc,0xfe,0x8a,0xfd,0x46,0xfd,0x47,0xfd,0x33,0xfd,0x14,0xfd, +0x56,0xfd,0xec,0xfd,0x51,0xfe,0xad,0xfe,0x67,0xff,0x2a,0x0, +0xd3,0x0,0xa7,0x1,0x48,0x2,0x81,0x2,0xc3,0x2,0xff,0x2, +0xb,0x3,0x1f,0x3,0xa,0x3,0xc2,0x2,0xa5,0x2,0x53,0x2, +0x92,0x1,0xfb,0x0,0x94,0x0,0x1e,0x0,0x4,0x0,0x2e,0x0, +0x18,0x0,0xe5,0xff,0xde,0xff,0xf8,0xff,0xed,0xff,0x63,0xff, +0xb2,0xfe,0x7a,0xfe,0xb4,0xfe,0x6f,0xff,0xd2,0x0,0x59,0x2, +0xca,0x3,0x2c,0x5,0xc9,0x5,0x6b,0x5,0xa1,0x4,0x66,0x3, +0xd0,0x1,0x82,0x0,0x87,0xff,0x9b,0xfe,0xb6,0xfd,0xd8,0xfc, +0x4a,0xfc,0x27,0xfc,0x23,0xfc,0x89,0xfc,0xac,0xfd,0x2a,0xff, +0xde,0x0,0xa7,0x2,0x1a,0x4,0x4a,0x5,0xe9,0x5,0x3f,0x5, +0x3,0x4,0x16,0x3,0xe6,0x1,0x67,0x0,0x5d,0xff,0xc8,0xfe, +0x8e,0xfe,0xe0,0xfe,0x6c,0xff,0xe3,0xff,0x58,0x0,0xf0,0x0, +0xae,0x1,0x1a,0x2,0xff,0x1,0xf0,0x1,0xd2,0x1,0x37,0x1, +0xb8,0x0,0x65,0x0,0x5b,0xff,0xbe,0xfd,0x50,0xfc,0xe,0xfb, +0xc0,0xf9,0x69,0xf8,0x5c,0xf7,0xf0,0xf6,0xcf,0xf6,0xcb,0xf6, +0x67,0xf7,0x83,0xf8,0xeb,0xf9,0x6b,0xfc,0x2b,0x0,0x5e,0x4, +0xb4,0x8,0xe6,0xc,0x2f,0x10,0xf5,0x11,0xf1,0x11,0x38,0x10, +0x9e,0xc,0xa2,0x6,0x5b,0xff,0x7,0xf9,0x29,0xf4,0xa3,0xf0, +0xb1,0xef,0xc8,0xf1,0xb6,0xf5,0x79,0xfa,0x38,0xff,0xf2,0x2, +0x46,0x5,0x58,0x6,0x81,0x6,0x29,0x6,0x60,0x5,0x49,0x4, +0x11,0x3,0x5b,0x1,0x44,0xff,0x95,0xfd,0x49,0xfc,0x41,0xfb, +0x38,0xfb,0x24,0xfc,0x5,0xfd,0x9a,0xfd,0x27,0xfe,0x84,0xfe, +0x65,0xfe,0xac,0xfd,0x8c,0xfc,0x86,0xfb,0xe0,0xfa,0x8b,0xfa, +0x86,0xfa,0x8,0xfb,0x55,0xfc,0x18,0xfe,0x7d,0xff,0x70,0x0, +0x80,0x1,0x93,0x2,0x49,0x3,0xc0,0x3,0x3,0x4,0xe5,0x3, +0x78,0x3,0xe1,0x2,0x59,0x2,0x36,0x2,0x4d,0x2,0x4b,0x2, +0x78,0x2,0xe1,0x2,0xca,0x2,0xf0,0x1,0xe3,0x0,0xd3,0xff, +0xa6,0xfe,0xc3,0xfd,0x63,0xfd,0x3c,0xfd,0x5f,0xfd,0x6,0xfe, +0xd1,0xfe,0x89,0xff,0x6f,0x0,0x34,0x1,0x5a,0x1,0x3b,0x1, +0x4d,0x1,0x6d,0x1,0x82,0x1,0x76,0x1,0x1b,0x1,0xaa,0x0, +0x68,0x0,0x23,0x0,0xd3,0xff,0xa3,0xff,0x6f,0xff,0xfc,0xfe, +0x4f,0xfe,0x91,0xfd,0xe3,0xfc,0x4b,0xfc,0xf9,0xfb,0x31,0xfc, +0x9e,0xfc,0xe3,0xfc,0x66,0xfd,0x38,0xfe,0xd4,0xfe,0x62,0xff, +0x14,0x0,0x6a,0x0,0x96,0x0,0x40,0x1,0xf0,0x1,0x22,0x2, +0x3f,0x2,0x76,0x2,0x90,0x2,0x98,0x2,0x85,0x2,0x5f,0x2, +0x64,0x2,0x71,0x2,0x4e,0x2,0x17,0x2,0xa5,0x1,0xd2,0x0, +0x15,0x0,0xcd,0xff,0xea,0xff,0x37,0x0,0x4e,0x0,0x16,0x0, +0x14,0x0,0x34,0x0,0xc2,0xff,0xd6,0xfe,0x21,0xfe,0xec,0xfd, +0x44,0xfe,0xf,0xff,0x14,0x0,0x87,0x1,0x5f,0x3,0xa8,0x4, +0xe6,0x4,0x92,0x4,0xa8,0x3,0xf,0x2,0x92,0x0,0x9f,0xff, +0xcd,0xfe,0x15,0xfe,0x79,0xfd,0xad,0xfc,0x17,0xfc,0x32,0xfc, +0x90,0xfc,0x3d,0xfd,0xe4,0xfe,0xf7,0x0,0x64,0x2,0x72,0x3, +0x9c,0x4,0x33,0x5,0xae,0x4,0x9f,0x3,0x87,0x2,0x64,0x1, +0x60,0x0,0xa5,0xff,0x16,0xff,0xf4,0xfe,0x74,0xff,0xfe,0xff, +0x24,0x0,0x43,0x0,0x76,0x0,0xa8,0x0,0xd,0x1,0x7c,0x1, +0xa6,0x1,0x8a,0x1,0xed,0x0,0xec,0xff,0x4e,0xff,0xd6,0xfe, +0x97,0xfd,0x7,0xfc,0xf1,0xfa,0xec,0xf9,0xb5,0xf8,0xcd,0xf7, +0x5c,0xf7,0x29,0xf7,0x22,0xf7,0x5b,0xf7,0x7,0xf8,0x51,0xf9, +0x58,0xfb,0x4f,0xfe,0x39,0x2,0xa0,0x6,0xe0,0xa,0x59,0xe, +0x7f,0x10,0x6,0x11,0xeb,0xf,0x12,0xd,0x24,0x8,0xae,0x1, +0x6c,0xfb,0x60,0xf6,0x91,0xf2,0xcc,0xf0,0xea,0xf1,0x5b,0xf5, +0xfd,0xf9,0xa0,0xfe,0x3c,0x2,0xdb,0x4,0x6e,0x6,0x5a,0x6, +0x6a,0x5,0xae,0x4,0x71,0x3,0x97,0x1,0x37,0x0,0x13,0xff, +0x9d,0xfd,0x91,0xfc,0x38,0xfc,0x4d,0xfc,0xd,0xfd,0x3a,0xfe, +0x8,0xff,0x54,0xff,0x61,0xff,0x5,0xff,0xe5,0xfd,0x27,0xfc, +0x9e,0xfa,0xd2,0xf9,0x96,0xf9,0xcb,0xf9,0x9d,0xfa,0x19,0xfc, +0xe,0xfe,0xe9,0xff,0x34,0x1,0x19,0x2,0xcb,0x2,0x42,0x3, +0x8f,0x3,0xad,0x3,0x90,0x3,0x58,0x3,0x7,0x3,0xb8,0x2, +0xa5,0x2,0xa7,0x2,0x9d,0x2,0xc0,0x2,0xc,0x3,0x4d,0x3, +0x1f,0x3,0xe,0x2,0xb8,0x0,0xd2,0xff,0xad,0xfe,0x3a,0xfd, +0xae,0xfc,0xf4,0xfc,0x26,0xfd,0x85,0xfd,0x60,0xfe,0x67,0xff, +0x65,0x0,0x5,0x1,0x5,0x1,0xce,0x0,0xda,0x0,0x3,0x1, +0xce,0x0,0x58,0x0,0x4e,0x0,0x71,0x0,0xc,0x0,0xbe,0xff, +0xe0,0xff,0x65,0xff,0x5b,0xfe,0xb1,0xfd,0xf7,0xfc,0xe0,0xfb, +0x2b,0xfb,0xda,0xfa,0xa7,0xfa,0xdf,0xfa,0x70,0xfb,0x2a,0xfc, +0x2e,0xfd,0x3c,0xfe,0x24,0xff,0x1e,0x0,0xf9,0x0,0x8d,0x1, +0x3d,0x2,0xfd,0x2,0x56,0x3,0x37,0x3,0xd0,0x2,0x52,0x2, +0xe3,0x1,0x63,0x1,0xc8,0x0,0x64,0x0,0x62,0x0,0x9e,0x0, +0xf3,0x0,0x2d,0x1,0x21,0x1,0x5,0x1,0x19,0x1,0x52,0x1, +0x9b,0x1,0xc1,0x1,0x73,0x1,0xf0,0x0,0xa9,0x0,0x31,0x0, +0x12,0xff,0xf7,0xfd,0x92,0xfd,0xc6,0xfd,0x77,0xfe,0xb8,0xff, +0x2f,0x1,0x86,0x2,0xe6,0x3,0xe,0x5,0x22,0x5,0x1b,0x4, +0xd7,0x2,0x60,0x1,0x8b,0xff,0x49,0xfe,0xf2,0xfd,0x7f,0xfd, +0xd5,0xfc,0xc8,0xfc,0x31,0xfd,0xa9,0xfd,0x84,0xfe,0xe4,0xff, +0x63,0x1,0x98,0x2,0x6c,0x3,0x6,0x4,0x49,0x4,0xfa,0x3, +0x47,0x3,0x63,0x2,0x6f,0x1,0xd6,0x0,0x95,0x0,0x61,0x0, +0x6b,0x0,0xba,0x0,0xf8,0x0,0x34,0x1,0x55,0x1,0x12,0x1, +0xd6,0x0,0xe1,0x0,0xe6,0x0,0xff,0x0,0x11,0x1,0x87,0x0, +0xa8,0xff,0x5,0xff,0x57,0xfe,0x6e,0xfd,0x99,0xfc,0xd7,0xfb, +0xfb,0xfa,0x21,0xfa,0x77,0xf9,0xf9,0xf8,0x83,0xf8,0xf,0xf8, +0xc0,0xf7,0xc6,0xf7,0x73,0xf8,0x12,0xfa,0xa9,0xfc,0x34,0x0, +0x8a,0x4,0x23,0x9,0x46,0xd,0x1f,0x10,0x27,0x11,0x8a,0x10, +0x32,0xe,0xb0,0x9,0xad,0x3,0x83,0xfd,0xf6,0xf7,0xb6,0xf3, +0x8f,0xf1,0xd0,0xf1,0x88,0xf4,0x16,0xf9,0xd5,0xfd,0xd5,0x1, +0x2e,0x5,0x3c,0x7,0x64,0x7,0x88,0x6,0x57,0x5,0x6c,0x3, +0x27,0x1,0x80,0xff,0x30,0xfe,0xbc,0xfc,0xc8,0xfb,0xbf,0xfb, +0x5c,0xfc,0x9c,0xfd,0x1d,0xff,0x29,0x0,0xcd,0x0,0x0,0x1, +0x3e,0x0,0xd6,0xfe,0x11,0xfd,0xa8,0xfa,0x8c,0xf8,0xcf,0xf7, +0xd1,0xf7,0x64,0xf8,0x33,0xfa,0x94,0xfc,0xc5,0xfe,0xfa,0x0, +0x9f,0x2,0x54,0x3,0xfa,0x3,0x76,0x4,0x25,0x4,0xc7,0x3, +0xc1,0x3,0x7a,0x3,0x2c,0x3,0x23,0x3,0xed,0x2,0xc5,0x2, +0xff,0x2,0x13,0x3,0xd8,0x2,0x85,0x2,0xc9,0x1,0xa5,0x0, +0x95,0xff,0xaa,0xfe,0xc5,0xfd,0x2,0xfd,0xa0,0xfc,0x15,0xfd, +0x56,0xfe,0x91,0xff,0x84,0x0,0xa2,0x1,0xdd,0x2,0xb2,0x3, +0xbc,0x3,0x14,0x3,0x6c,0x2,0xe0,0x1,0xd2,0x0,0xaf,0xff, +0x5d,0xff,0x6e,0xff,0x45,0xff,0x23,0xff,0xf0,0xfe,0x75,0xfe, +0xfc,0xfd,0x6c,0xfd,0x7b,0xfc,0x91,0xfb,0x28,0xfb,0x28,0xfb, +0x46,0xfb,0x72,0xfb,0xfd,0xfb,0x9,0xfd,0x29,0xfe,0x2b,0xff, +0x32,0x0,0x3b,0x1,0x4f,0x2,0x44,0x3,0xcb,0x3,0x3c,0x4, +0x9f,0x4,0x1d,0x4,0xf2,0x2,0x25,0x2,0x6f,0x1,0x5d,0x0, +0x8f,0xff,0x45,0xff,0x50,0xff,0xc9,0xff,0x6a,0x0,0xf7,0x0, +0xa8,0x1,0x29,0x2,0x44,0x2,0x9a,0x2,0x20,0x3,0x1c,0x3, +0x94,0x2,0xc8,0x1,0xb1,0x0,0x97,0xff,0x97,0xfe,0xb0,0xfd, +0x9b,0xfd,0xa6,0xfe,0xfb,0xff,0x37,0x1,0xb4,0x2,0x37,0x4, +0x1b,0x5,0xf,0x5,0x25,0x4,0xc4,0x2,0x34,0x1,0x55,0xff, +0x80,0xfd,0x86,0xfc,0x54,0xfc,0x3c,0xfc,0x5e,0xfc,0x2,0xfd, +0xc9,0xfd,0xa9,0xfe,0xf2,0xff,0x38,0x1,0x13,0x2,0xdc,0x2, +0x82,0x3,0x86,0x3,0x3a,0x3,0x8,0x3,0xa3,0x2,0xb,0x2, +0xa2,0x1,0x65,0x1,0x37,0x1,0x2e,0x1,0x39,0x1,0x50,0x1, +0x67,0x1,0x38,0x1,0xcd,0x0,0xa1,0x0,0xc1,0x0,0xd1,0x0, +0xd6,0x0,0xdd,0x0,0x8c,0x0,0xf7,0xff,0x99,0xff,0x2e,0xff, +0x49,0xfe,0x5d,0xfd,0xab,0xfc,0xd0,0xfb,0xd5,0xfa,0xdc,0xf9, +0xc9,0xf8,0xe7,0xf7,0x51,0xf7,0xd3,0xf6,0xd4,0xf6,0x7c,0xf7, +0xa4,0xf8,0x23,0xfb,0x35,0xff,0xa2,0x3,0x3f,0x8,0x10,0xd, +0x77,0x10,0xcd,0x11,0xe5,0x11,0x58,0x10,0x51,0xc,0x37,0x6, +0x30,0xff,0xd1,0xf8,0xfa,0xf3,0x8d,0xf0,0xa0,0xef,0x62,0xf2, +0x39,0xf7,0xf2,0xfb,0x4f,0x0,0x62,0x4,0x4d,0x7,0x3e,0x8, +0xa6,0x7,0xa6,0x6,0x2d,0x5,0xcb,0x2,0x85,0x0,0xfd,0xfe, +0x7d,0xfd,0x28,0xfc,0x9b,0xfb,0xc0,0xfb,0xba,0xfc,0x5c,0xfe, +0xb5,0xff,0x81,0x0,0xdc,0x0,0x80,0x0,0x7b,0xff,0xc5,0xfd, +0x41,0xfb,0xce,0xf8,0x3e,0xf7,0x9d,0xf6,0x8,0xf7,0x6f,0xf8, +0x71,0xfa,0xfd,0xfc,0xa8,0xff,0xc4,0x1,0x4a,0x3,0x58,0x4, +0xfb,0x4,0x62,0x5,0x5b,0x5,0xfc,0x4,0xe2,0x4,0xd7,0x4, +0x4d,0x4,0x8b,0x3,0xce,0x2,0x2a,0x2,0xe2,0x1,0x9f,0x1, +0xd0,0x0,0x99,0xff,0x66,0xfe,0x8f,0xfd,0x1e,0xfd,0xb8,0xfc, +0x96,0xfc,0x38,0xfd,0x2d,0xfe,0x21,0xff,0x84,0x0,0x17,0x2, +0x40,0x3,0x27,0x4,0xd4,0x4,0xde,0x4,0x58,0x4,0x88,0x3, +0x64,0x2,0x1d,0x1,0x19,0x0,0x69,0xff,0xf5,0xfe,0xb7,0xfe, +0x9a,0xfe,0x95,0xfe,0x89,0xfe,0x17,0xfe,0x34,0xfd,0x3f,0xfc, +0x57,0xfb,0x94,0xfa,0x60,0xfa,0xb0,0xfa,0x26,0xfb,0xd6,0xfb, +0xd8,0xfc,0x1c,0xfe,0xaa,0xff,0x15,0x1,0xfd,0x1,0xca,0x2, +0xa8,0x3,0x2e,0x4,0x3f,0x4,0xe,0x4,0xc1,0x3,0x4a,0x3, +0x68,0x2,0x50,0x1,0x70,0x0,0xa7,0xff,0x1c,0xff,0x3a,0xff, +0x9a,0xff,0xfb,0xff,0x8e,0x0,0xf2,0x0,0x2f,0x1,0xbf,0x1, +0x28,0x2,0x44,0x2,0x9e,0x2,0xb5,0x2,0x25,0x2,0x71,0x1, +0x6b,0x0,0x1f,0xff,0x7d,0xfe,0x79,0xfe,0xb3,0xfe,0x9c,0xff, +0x17,0x1,0xbd,0x2,0x6b,0x4,0x7a,0x5,0x84,0x5,0xc2,0x4, +0x1f,0x3,0xf,0x1,0x55,0xff,0xa5,0xfd,0xf,0xfc,0x5c,0xfb, +0x31,0xfb,0x39,0xfb,0xfc,0xfb,0xfa,0xfc,0x90,0xfd,0x92,0xfe, +0x32,0x0,0x7a,0x1,0x70,0x2,0x76,0x3,0x11,0x4,0x1c,0x4, +0x8,0x4,0xb0,0x3,0xd7,0x2,0xf8,0x1,0x5e,0x1,0xd5,0x0, +0x63,0x0,0x26,0x0,0x4,0x0,0x9,0x0,0x2e,0x0,0x41,0x0, +0x5e,0x0,0x8f,0x0,0x9b,0x0,0xaf,0x0,0xe0,0x0,0xc6,0x0, +0x5c,0x0,0xec,0xff,0x65,0xff,0xc0,0xfe,0xf5,0xfd,0xee,0xfc, +0xf3,0xfb,0x8,0xfb,0xc7,0xf9,0x6f,0xf8,0x6f,0xf7,0x95,0xf6, +0xf8,0xf5,0xea,0xf5,0x49,0xf6,0x64,0xf7,0xe9,0xf9,0xb3,0xfd, +0x1b,0x2,0xe7,0x6,0xd9,0xb,0x8,0x10,0x69,0x12,0xf9,0x12, +0x29,0x12,0x41,0xf,0x79,0x9,0xfb,0x1,0xb1,0xfa,0x7f,0xf4, +0xef,0xef,0xda,0xed,0xe9,0xee,0xf6,0xf2,0x91,0xf8,0xdf,0xfd, +0x32,0x2,0x9d,0x5,0xa3,0x7,0x0,0x8,0x6b,0x7,0x6a,0x6, +0xb5,0x4,0x58,0x2,0x15,0x0,0x4c,0xfe,0xb9,0xfc,0x8d,0xfb, +0x5a,0xfb,0x6,0xfc,0x17,0xfd,0x63,0xfe,0x90,0xff,0x2b,0x0, +0x41,0x0,0xa9,0xff,0xfe,0xfd,0xdd,0xfb,0xf7,0xf9,0x21,0xf8, +0xe0,0xf6,0x1a,0xf7,0x4a,0xf8,0xe6,0xf9,0x59,0xfc,0x45,0xff, +0xce,0x1,0xd2,0x3,0x2b,0x5,0xd8,0x5,0x67,0x6,0xcd,0x6, +0x95,0x6,0xec,0x5,0x2c,0x5,0x75,0x4,0xa8,0x3,0x88,0x2, +0x81,0x1,0xfc,0x0,0x75,0x0,0xb3,0xff,0xf0,0xfe,0xe5,0xfd, +0xc6,0xfc,0x40,0xfc,0x2b,0xfc,0x57,0xfc,0xf9,0xfc,0xe8,0xfd, +0x27,0xff,0xa8,0x0,0xce,0x1,0xc5,0x2,0xf8,0x3,0x9a,0x4, +0x43,0x4,0xa9,0x3,0x11,0x3,0x54,0x2,0x54,0x1,0x14,0x0, +0x1c,0xff,0xb5,0xfe,0x80,0xfe,0x7c,0xfe,0x89,0xfe,0x1e,0xfe, +0x82,0xfd,0x0,0xfd,0x1c,0xfc,0xf6,0xfa,0x34,0xfa,0xe5,0xf9, +0x4,0xfa,0x88,0xfa,0x40,0xfb,0x43,0xfc,0xa2,0xfd,0x35,0xff, +0xd9,0x0,0x2d,0x2,0xc,0x3,0xc3,0x3,0x2b,0x4,0x16,0x4, +0xde,0x3,0x87,0x3,0xe3,0x2,0x1a,0x2,0x30,0x1,0x3d,0x0, +0x8f,0xff,0x15,0xff,0xdb,0xfe,0x2,0xff,0x35,0xff,0x69,0xff, +0xd6,0xff,0x31,0x0,0x8b,0x0,0x47,0x1,0x6,0x2,0x64,0x2, +0x7d,0x2,0x5f,0x2,0x24,0x2,0xab,0x1,0x9f,0x0,0x84,0xff, +0xee,0xfe,0xcc,0xfe,0x5e,0xff,0xb7,0x0,0x18,0x2,0x5e,0x3, +0x9c,0x4,0x21,0x5,0xcb,0x4,0x18,0x4,0xcf,0x2,0xea,0x0, +0x2a,0xff,0xd7,0xfd,0xd2,0xfc,0x4b,0xfc,0x47,0xfc,0x7c,0xfc, +0xd0,0xfc,0x61,0xfd,0x3f,0xfe,0x7c,0xff,0x4,0x1,0x6e,0x2, +0x88,0x3,0x73,0x4,0xd7,0x4,0x6b,0x4,0xbc,0x3,0xf2,0x2, +0xb1,0x1,0x82,0x0,0xf2,0xff,0x85,0xff,0x28,0xff,0x44,0xff, +0xb6,0xff,0x57,0x0,0x15,0x1,0x84,0x1,0x9d,0x1,0xa0,0x1, +0x5b,0x1,0xd9,0x0,0x8e,0x0,0x5a,0x0,0xe6,0xff,0x50,0xff, +0xc0,0xfe,0x27,0xfe,0x92,0xfd,0x16,0xfd,0x72,0xfc,0x7b,0xfb, +0x70,0xfa,0x56,0xf9,0x1a,0xf8,0x47,0xf7,0x1e,0xf7,0x2b,0xf7, +0xa0,0xf7,0x36,0xf9,0x8,0xfc,0xfc,0xff,0xd4,0x4,0xc0,0x9, +0xd,0xe,0x1d,0x11,0x6e,0x12,0x5c,0x12,0xd4,0x10,0x84,0xc, +0x87,0x5,0xa,0xfe,0x78,0xf7,0x21,0xf2,0xde,0xee,0xc8,0xee, +0xcc,0xf1,0x65,0xf6,0x39,0xfb,0x15,0x0,0x5d,0x4,0xbd,0x6, +0x49,0x7,0x43,0x7,0xe1,0x6,0x8f,0x5,0x6b,0x3,0x10,0x1, +0xcd,0xfe,0xd7,0xfc,0xa0,0xfb,0x48,0xfb,0x8c,0xfb,0x79,0xfc, +0xf4,0xfd,0x2a,0xff,0xbf,0xff,0x7,0x0,0xcd,0xff,0xab,0xfe, +0xd6,0xfc,0xcf,0xfa,0x3e,0xf9,0x5b,0xf8,0xee,0xf7,0x69,0xf8, +0x1d,0xfa,0x37,0xfc,0x79,0xfe,0x2b,0x1,0x6e,0x3,0xc0,0x4, +0xde,0x5,0xb0,0x6,0x9d,0x6,0x15,0x6,0x7d,0x5,0xb7,0x4, +0xe0,0x3,0xf5,0x2,0xe7,0x1,0x19,0x1,0xb7,0x0,0x84,0x0, +0x50,0x0,0xc5,0xff,0xb5,0xfe,0xb3,0xfd,0x2e,0xfd,0xd4,0xfc, +0x92,0xfc,0xe2,0xfc,0xc2,0xfd,0xc2,0xfe,0xf3,0xff,0x6b,0x1, +0x93,0x2,0x3a,0x3,0xd7,0x3,0x33,0x4,0xba,0x3,0xce,0x2, +0x7,0x2,0x33,0x1,0x28,0x0,0x36,0xff,0x9c,0xfe,0x40,0xfe, +0x11,0xfe,0x24,0xfe,0x51,0xfe,0x25,0xfe,0x8c,0xfd,0xd6,0xfc, +0x26,0xfc,0xa3,0xfb,0x69,0xfb,0x46,0xfb,0x3f,0xfb,0xa5,0xfb, +0x68,0xfc,0x65,0xfd,0xbc,0xfe,0x2f,0x0,0x61,0x1,0x75,0x2, +0x78,0x3,0x31,0x4,0x92,0x4,0x7e,0x4,0xde,0x3,0x18,0x3, +0x8b,0x2,0xf2,0x1,0x2,0x1,0xf0,0xff,0x20,0xff,0xaf,0xfe, +0x94,0xfe,0xca,0xfe,0x27,0xff,0x78,0xff,0xe2,0xff,0x9a,0x0, +0x62,0x1,0x8,0x2,0xb5,0x2,0x30,0x3,0xf6,0x2,0x50,0x2, +0xd1,0x1,0x1a,0x1,0xd1,0xff,0xc4,0xfe,0x9b,0xfe,0xfe,0xfe, +0xc0,0xff,0xfa,0x0,0x59,0x2,0x8d,0x3,0x7f,0x4,0xdc,0x4, +0x7a,0x4,0x8a,0x3,0x24,0x2,0x92,0x0,0x41,0xff,0x38,0xfe, +0x80,0xfd,0x39,0xfd,0x18,0xfd,0xf,0xfd,0x7c,0xfd,0x42,0xfe, +0x20,0xff,0x54,0x0,0xd4,0x1,0x35,0x3,0x24,0x4,0x61,0x4, +0xf8,0x3,0x3c,0x3,0x3c,0x2,0x14,0x1,0x10,0x0,0x24,0xff, +0x78,0xfe,0x75,0xfe,0xdd,0xfe,0x6b,0xff,0x6d,0x0,0x87,0x1, +0xea,0x1,0xe2,0x1,0xfa,0x1,0xda,0x1,0x25,0x1,0x35,0x0, +0x89,0xff,0x31,0xff,0xc6,0xfe,0x2b,0xfe,0xce,0xfd,0xa0,0xfd, +0x26,0xfd,0x9e,0xfc,0x40,0xfc,0x74,0xfb,0x3c,0xfa,0x56,0xf9, +0xab,0xf8,0xe3,0xf7,0x67,0xf7,0x8d,0xf7,0x93,0xf8,0xed,0xfa, +0x45,0xfe,0xfe,0x1,0x3f,0x6,0xb7,0xa,0x3c,0xe,0x55,0x10, +0x14,0x11,0x2b,0x10,0x28,0xd,0xd6,0x7,0x6,0x1,0x9b,0xfa, +0x8f,0xf5,0xcc,0xf1,0x21,0xf0,0xa6,0xf1,0xcf,0xf5,0xb9,0xfa, +0xf4,0xfe,0x7a,0x2,0x7a,0x5,0x28,0x7,0x34,0x7,0x7b,0x6, +0x43,0x5,0x5e,0x3,0x33,0x1,0xf6,0xfe,0xcf,0xfc,0x59,0xfb, +0xa4,0xfa,0x8e,0xfa,0x6b,0xfb,0x1,0xfd,0x90,0xfe,0xb5,0xff, +0x2e,0x0,0x1f,0x0,0xd1,0xff,0xc9,0xfe,0xe8,0xfc,0x0,0xfb, +0x81,0xf9,0x8d,0xf8,0x72,0xf8,0x5,0xf9,0x20,0xfa,0xf5,0xfb, +0x47,0xfe,0x9a,0x0,0x85,0x2,0xb7,0x3,0x88,0x4,0x37,0x5, +0x3d,0x5,0xa5,0x4,0x4,0x4,0x55,0x3,0x8f,0x2,0xfe,0x1, +0xb9,0x1,0xb8,0x1,0xb4,0x1,0x76,0x1,0x3c,0x1,0xbe,0x0, +0x7c,0xff,0x30,0xfe,0xa3,0xfd,0x57,0xfd,0xe3,0xfc,0xd1,0xfc, +0xb6,0xfd,0x3d,0xff,0x7e,0x0,0x80,0x1,0xbb,0x2,0x9e,0x3, +0xc7,0x3,0xb5,0x3,0x50,0x3,0x61,0x2,0x6a,0x1,0x84,0x0, +0x87,0xff,0xae,0xfe,0x1a,0xfe,0xed,0xfd,0x6,0xfe,0xe6,0xfd, +0xed,0xfd,0x66,0xfe,0x54,0xfe,0xa4,0xfd,0x4f,0xfd,0x2c,0xfd, +0xea,0xfc,0xcd,0xfc,0xa5,0xfc,0xa1,0xfc,0x33,0xfd,0xf4,0xfd, +0xd0,0xfe,0xc,0x0,0x32,0x1,0x37,0x2,0x54,0x3,0xde,0x3, +0xc2,0x3,0xae,0x3,0x79,0x3,0xe0,0x2,0x2a,0x2,0x46,0x1, +0x2b,0x0,0x44,0xff,0xc9,0xfe,0x94,0xfe,0x86,0xfe,0xc1,0xfe, +0x54,0xff,0xed,0xff,0x94,0x0,0x8a,0x1,0x3d,0x2,0x65,0x2, +0xa0,0x2,0xbc,0x2,0x2d,0x2,0x58,0x1,0x71,0x0,0x4e,0xff, +0x72,0xfe,0x34,0xfe,0x5f,0xfe,0x10,0xff,0x4d,0x0,0xbd,0x1, +0x29,0x3,0x5c,0x4,0x8,0x5,0x8,0x5,0x4d,0x4,0xdf,0x2, +0x2b,0x1,0xd8,0xff,0xf4,0xfe,0xfd,0xfd,0x37,0xfd,0x36,0xfd, +0x5b,0xfd,0x3c,0xfd,0xcd,0xfd,0x29,0xff,0x84,0x0,0xda,0x1, +0x15,0x3,0xda,0x3,0x75,0x4,0x8f,0x4,0x84,0x3,0x3b,0x2, +0x4d,0x1,0x7,0x0,0xce,0xfe,0x9b,0xfe,0xf6,0xfe,0x3a,0xff, +0xb9,0xff,0x9e,0x0,0xa0,0x1,0x8f,0x2,0x2d,0x3,0x10,0x3, +0x55,0x2,0xa7,0x1,0x1e,0x1,0x4b,0x0,0x75,0xff,0x7,0xff, +0xa6,0xfe,0x20,0xfe,0xaf,0xfd,0x4b,0xfd,0xe6,0xfc,0x73,0xfc, +0xb2,0xfb,0xbf,0xfa,0xd3,0xf9,0xe7,0xf8,0x29,0xf8,0xbd,0xf7, +0xa2,0xf7,0x6d,0xf8,0x8e,0xfa,0x79,0xfd,0xda,0x0,0xf3,0x4, +0x52,0x9,0xe1,0xc,0x25,0xf,0x33,0x10,0xc6,0xf,0x42,0xd, +0x8c,0x8,0x6d,0x2,0x44,0xfc,0x28,0xf7,0x5a,0xf3,0x5e,0xf1, +0x55,0xf2,0xd8,0xf5,0x17,0xfa,0x60,0xfe,0x91,0x2,0xa2,0x5, +0x1c,0x7,0x6c,0x7,0xc4,0x6,0x73,0x5,0xc0,0x3,0x97,0x1, +0x5c,0xff,0x7b,0xfd,0xdc,0xfb,0xca,0xfa,0xa0,0xfa,0x4f,0xfb, +0xf2,0xfc,0xed,0xfe,0xfd,0xff,0x5d,0x0,0xe7,0x0,0x0,0x1, +0xfd,0xff,0x3e,0xfe,0x55,0xfc,0xb2,0xfa,0x69,0xf9,0x87,0xf8, +0xb7,0xf8,0xf2,0xf9,0x52,0xfb,0xfa,0xfc,0x45,0xff,0x46,0x1, +0x7f,0x2,0x77,0x3,0x1c,0x4,0x2e,0x4,0xcc,0x3,0x6,0x3, +0x64,0x2,0x65,0x2,0x6a,0x2,0x38,0x2,0x8a,0x2,0x15,0x3, +0x23,0x3,0x1b,0x3,0xdf,0x2,0x8b,0x1,0xad,0xff,0x6e,0xfe, +0xa5,0xfd,0xf4,0xfc,0xa7,0xfc,0xf1,0xfc,0xda,0xfd,0x44,0xff, +0xd5,0x0,0x5d,0x2,0x7c,0x3,0xbc,0x3,0x8d,0x3,0x63,0x3, +0xba,0x2,0x9b,0x1,0xab,0x0,0xaa,0xff,0x70,0xfe,0xc6,0xfd, +0xdf,0xfd,0x20,0xfe,0x4a,0xfe,0x84,0xfe,0xd9,0xfe,0x34,0xff, +0x65,0xff,0x34,0xff,0x8a,0xfe,0xce,0xfd,0x77,0xfd,0x24,0xfd, +0x81,0xfc,0x47,0xfc,0xcc,0xfc,0x96,0xfd,0xa5,0xfe,0xfb,0xff, +0x17,0x1,0xf8,0x1,0xe0,0x2,0x7f,0x3,0x97,0x3,0x5a,0x3, +0x15,0x3,0xd6,0x2,0x41,0x2,0x46,0x1,0x7d,0x0,0x1,0x0, +0x6b,0xff,0x11,0xff,0x72,0xff,0x14,0x0,0x5b,0x0,0xa6,0x0, +0x7d,0x1,0x54,0x2,0x79,0x2,0x61,0x2,0x55,0x2,0xd4,0x1, +0x1f,0x1,0xa9,0x0,0xfc,0xff,0x2f,0xff,0xda,0xfe,0xe2,0xfe, +0x68,0xff,0xb3,0x0,0x1a,0x2,0x4c,0x3,0x84,0x4,0x32,0x5, +0x6,0x5,0x80,0x4,0x75,0x3,0xaf,0x1,0xde,0xff,0x97,0xfe, +0xcd,0xfd,0x33,0xfd,0xb0,0xfc,0xb0,0xfc,0x35,0xfd,0xc4,0xfd, +0xab,0xfe,0x39,0x0,0xb9,0x1,0xeb,0x2,0x16,0x4,0xd8,0x4, +0xd0,0x4,0xc,0x4,0xbc,0x2,0x6e,0x1,0x6e,0x0,0x75,0xff, +0xd4,0xfe,0xdf,0xfe,0x24,0xff,0xa1,0xff,0xa4,0x0,0xae,0x1, +0x66,0x2,0xde,0x2,0xe7,0x2,0xa5,0x2,0x5f,0x2,0xbe,0x1, +0xd4,0x0,0x3c,0x0,0xe7,0xff,0x93,0xff,0x2b,0xff,0x66,0xfe, +0x89,0xfd,0x18,0xfd,0x7e,0xfc,0x41,0xfb,0xf7,0xf9,0xc2,0xf8, +0x74,0xf7,0x9e,0xf6,0x6e,0xf6,0x7e,0xf6,0x3b,0xf7,0x52,0xf9, +0x9f,0xfc,0xa6,0x0,0xff,0x4,0x81,0x9,0xcf,0xd,0xab,0x10, +0x56,0x11,0x8e,0x10,0x70,0xe,0xe5,0x9,0x3c,0x3,0x64,0xfc, +0xd4,0xf6,0xdb,0xf2,0x8e,0xf0,0xca,0xf0,0x25,0xf4,0x21,0xf9, +0xdf,0xfd,0x38,0x2,0xd9,0x5,0xb3,0x7,0xef,0x7,0x4b,0x7, +0xa,0x6,0x73,0x4,0x47,0x2,0x86,0xff,0x6f,0xfd,0x4c,0xfc, +0x4a,0xfb,0xd9,0xfa,0x76,0xfb,0x9a,0xfc,0x4a,0xfe,0x2d,0x0, +0x2b,0x1,0x6b,0x1,0x51,0x1,0x3e,0x0,0x5a,0xfe,0x37,0xfc, +0xfd,0xf9,0x78,0xf8,0x12,0xf8,0x1b,0xf8,0xc8,0xf8,0x93,0xfa, +0xba,0xfc,0xc3,0xfe,0xce,0x0,0x63,0x2,0x2d,0x3,0x6a,0x3, +0x4c,0x3,0xff,0x2,0x90,0x2,0x8,0x2,0xcf,0x1,0xf,0x2, +0x7e,0x2,0x2,0x3,0x89,0x3,0xe5,0x3,0xf1,0x3,0x54,0x3, +0xee,0x1,0x32,0x0,0x82,0xfe,0x15,0xfd,0x1b,0xfc,0x8d,0xfb, +0xa4,0xfb,0xb7,0xfc,0x64,0xfe,0x18,0x0,0xa4,0x1,0xc0,0x2, +0x43,0x3,0x5c,0x3,0xf5,0x2,0xd3,0x1,0x51,0x0,0x1b,0xff, +0x41,0xfe,0x5b,0xfd,0xc4,0xfc,0x10,0xfd,0x9d,0xfd,0xf4,0xfd, +0xce,0xfe,0xea,0xff,0x40,0x0,0xc,0x0,0x98,0xff,0x94,0xfe, +0x85,0xfd,0xbc,0xfc,0xbe,0xfb,0xda,0xfa,0xb5,0xfa,0x1e,0xfb, +0xf1,0xfb,0x39,0xfd,0xbd,0xfe,0x44,0x0,0x84,0x1,0x5f,0x2, +0xfe,0x2,0x1d,0x3,0xc1,0x2,0xab,0x2,0xd1,0x2,0x6d,0x2, +0xa2,0x1,0x14,0x1,0xd5,0x0,0x89,0x0,0xa,0x0,0xdd,0xff, +0x38,0x0,0x6a,0x0,0x7c,0x0,0x6,0x1,0x7f,0x1,0x70,0x1, +0x59,0x1,0x32,0x1,0xcb,0x0,0x7b,0x0,0x28,0x0,0xbe,0xff, +0x9b,0xff,0x7e,0xff,0x4f,0xff,0xc2,0xff,0xc3,0x0,0xa7,0x1, +0xa0,0x2,0xd3,0x3,0x93,0x4,0x73,0x4,0xb7,0x3,0xa8,0x2, +0x41,0x1,0xad,0xff,0x7d,0xfe,0xcf,0xfd,0x2c,0xfd,0x8e,0xfc, +0x6a,0xfc,0xd1,0xfc,0x6c,0xfd,0x20,0xfe,0x2e,0xff,0xaa,0x0, +0x16,0x2,0x33,0x3,0x33,0x4,0xbe,0x4,0x56,0x4,0x72,0x3, +0xa6,0x2,0xb3,0x1,0x75,0x0,0x6c,0xff,0xf9,0xfe,0xf0,0xfe, +0x29,0xff,0xa7,0xff,0x43,0x0,0xeb,0x0,0xa9,0x1,0x3,0x2, +0xd0,0x1,0xd4,0x1,0x12,0x2,0xbc,0x1,0x38,0x1,0x1b,0x1, +0xcb,0x0,0x20,0x0,0x7e,0xff,0x8a,0xfe,0x3a,0xfd,0x0,0xfc, +0x8a,0xfa,0xc1,0xf8,0x41,0xf7,0x2,0xf6,0xe0,0xf4,0x63,0xf4, +0xb0,0xf4,0xae,0xf5,0xe2,0xf7,0x7d,0xfb,0xcc,0xff,0x43,0x4, +0x3,0x9,0xcb,0xd,0x4b,0x11,0x97,0x12,0x3e,0x12,0x71,0x10, +0x21,0xc,0x6b,0x5,0x29,0xfe,0xc3,0xf7,0xc7,0xf2,0xcc,0xef, +0x61,0xef,0xdc,0xf1,0xae,0xf6,0x18,0xfc,0xc9,0x0,0xa3,0x4, +0x50,0x7,0x41,0x8,0xd9,0x7,0xc5,0x6,0x21,0x5,0x2,0x3, +0xa9,0x0,0x77,0xfe,0xe0,0xfc,0xc6,0xfb,0xe0,0xfa,0xca,0xfa, +0x8,0xfc,0xcd,0xfd,0x3e,0xff,0x71,0x0,0x77,0x1,0xd7,0x1, +0x20,0x1,0x47,0xff,0xb4,0xfc,0x3a,0xfa,0x9d,0xf8,0xea,0xf7, +0xbf,0xf7,0x46,0xf8,0xed,0xf9,0x43,0xfc,0x72,0xfe,0x5d,0x0, +0xfa,0x1,0xf6,0x2,0x7e,0x3,0xdc,0x3,0xc8,0x3,0x40,0x3, +0xca,0x2,0xae,0x2,0xe2,0x2,0x47,0x3,0xa4,0x3,0xeb,0x3, +0x2d,0x4,0x33,0x4,0x9b,0x3,0x38,0x2,0x6a,0x0,0xe2,0xfe, +0xba,0xfd,0xb1,0xfc,0x15,0xfc,0x33,0xfc,0xdd,0xfc,0x3d,0xfe, +0x49,0x0,0x5,0x2,0xe2,0x2,0x48,0x3,0x35,0x3,0x68,0x2, +0x2e,0x1,0xd6,0xff,0x8d,0xfe,0x97,0xfd,0xf2,0xfc,0xa1,0xfc, +0xd,0xfd,0x28,0xfe,0x48,0xff,0x26,0x0,0xe5,0x0,0x61,0x1, +0x48,0x1,0x83,0x0,0x4d,0xff,0xeb,0xfd,0x8e,0xfc,0x7c,0xfb, +0xd3,0xfa,0x8f,0xfa,0xef,0xfa,0x6,0xfc,0x6d,0xfd,0xf1,0xfe, +0x79,0x0,0x99,0x1,0x66,0x2,0x36,0x3,0x83,0x3,0x1b,0x3, +0xd4,0x2,0xd2,0x2,0x8e,0x2,0x48,0x2,0x43,0x2,0x1a,0x2, +0xbe,0x1,0x76,0x1,0x50,0x1,0x47,0x1,0x24,0x1,0xc2,0x0, +0xa7,0x0,0x20,0x1,0x80,0x1,0x49,0x1,0xda,0x0,0x76,0x0, +0x13,0x0,0xf1,0xff,0xc,0x0,0xd3,0xff,0x45,0xff,0x13,0xff, +0x63,0xff,0xef,0xff,0xde,0x0,0x30,0x2,0x73,0x3,0x6a,0x4, +0xf8,0x4,0xd0,0x4,0xfe,0x3,0xec,0x2,0xb9,0x1,0x67,0x0, +0x3e,0xff,0x63,0xfe,0xa1,0xfd,0xf2,0xfc,0xa2,0xfc,0xa2,0xfc, +0xcd,0xfc,0x84,0xfd,0xe8,0xfe,0x70,0x0,0xee,0x1,0x6f,0x3, +0x81,0x4,0xde,0x4,0xb8,0x4,0x28,0x4,0x5d,0x3,0x70,0x2, +0x25,0x1,0xd8,0xff,0x29,0xff,0xe6,0xfe,0xe8,0xfe,0x74,0xff, +0x2b,0x0,0xa8,0x0,0x42,0x1,0xdd,0x1,0x18,0x2,0x45,0x2, +0x6e,0x2,0x1d,0x2,0xb1,0x1,0xa4,0x1,0x41,0x1,0xa,0x0, +0xa6,0xfe,0x72,0xfd,0x14,0xfc,0x8f,0xfa,0x3,0xf9,0x52,0xf7, +0xe1,0xf5,0x2d,0xf5,0xee,0xf4,0xf,0xf5,0xf,0xf6,0xe,0xf8, +0x12,0xfb,0x27,0xff,0xa6,0x3,0x1b,0x8,0x9e,0xc,0x61,0x10, +0x50,0x12,0x94,0x12,0x70,0x11,0x3b,0xe,0x9e,0x8,0x77,0x1, +0x70,0xfa,0xe3,0xf4,0x28,0xf1,0x92,0xef,0xee,0xf0,0x2,0xf5, +0x28,0xfa,0xe2,0xfe,0xbf,0x2,0xb5,0x5,0x74,0x7,0xd2,0x7, +0x54,0x7,0x52,0x6,0x89,0x4,0x3c,0x2,0x2d,0x0,0x8f,0xfe, +0x2b,0xfd,0xfa,0xfb,0x49,0xfb,0xa4,0xfb,0xf1,0xfc,0x53,0xfe, +0x63,0xff,0x48,0x0,0xd2,0x0,0x9a,0x0,0x63,0xff,0x48,0xfd, +0x3,0xfb,0x63,0xf9,0xae,0xf8,0xca,0xf8,0x86,0xf9,0xe1,0xfa, +0xcf,0xfc,0xd1,0xfe,0x9c,0x0,0x47,0x2,0x5e,0x3,0xb9,0x3, +0x17,0x4,0x61,0x4,0xf8,0x3,0x66,0x3,0x2b,0x3,0xed,0x2, +0xbe,0x2,0xd5,0x2,0xf3,0x2,0x1b,0x3,0x37,0x3,0xde,0x2, +0x32,0x2,0x55,0x1,0x17,0x0,0xf7,0xfe,0x67,0xfe,0xe7,0xfd, +0x81,0xfd,0xea,0xfd,0xe5,0xfe,0xde,0xff,0xfe,0x0,0x1e,0x2, +0x94,0x2,0x70,0x2,0xc,0x2,0x25,0x1,0xc7,0xff,0xa9,0xfe, +0xef,0xfd,0x5c,0xfd,0x3c,0xfd,0xb1,0xfd,0x5b,0xfe,0x3c,0xff, +0x49,0x0,0xe3,0x0,0xf8,0x0,0xe4,0x0,0x55,0x0,0xf,0xff, +0xb2,0xfd,0xb4,0xfc,0xdd,0xfb,0x19,0xfb,0xcd,0xfa,0x27,0xfb, +0xed,0xfb,0x3,0xfd,0x6e,0xfe,0xd1,0xff,0xdf,0x0,0xb9,0x1, +0x4f,0x2,0x96,0x2,0xd0,0x2,0xe1,0x2,0xa8,0x2,0x7d,0x2, +0x46,0x2,0xea,0x1,0xa,0x2,0x79,0x2,0x52,0x2,0xe8,0x1, +0xcb,0x1,0x7f,0x1,0xf5,0x0,0xbc,0x0,0xcf,0x0,0xee,0x0, +0xfa,0x0,0xbf,0x0,0x4a,0x0,0xd6,0xff,0x75,0xff,0x13,0xff, +0x8a,0xfe,0x11,0xfe,0xe,0xfe,0x66,0xfe,0x1c,0xff,0x6e,0x0, +0xd7,0x1,0x1f,0x3,0xb7,0x4,0xd6,0x5,0xa5,0x5,0x5,0x5, +0x3f,0x4,0xbd,0x2,0x28,0x1,0x6,0x0,0xcf,0xfe,0xaa,0xfd, +0xce,0xfc,0xf2,0xfb,0x90,0xfb,0xeb,0xfb,0x80,0xfc,0x92,0xfd, +0x5a,0xff,0x27,0x1,0xdc,0x2,0x9c,0x4,0xbd,0x5,0xe2,0x5, +0x60,0x5,0x7a,0x4,0x48,0x3,0xdb,0x1,0x88,0x0,0xa9,0xff, +0xf5,0xfe,0x69,0xfe,0xa4,0xfe,0x75,0xff,0x4c,0x0,0x48,0x1, +0x2f,0x2,0x87,0x2,0xaa,0x2,0xdc,0x2,0xbd,0x2,0x38,0x2, +0x8d,0x1,0xe5,0x0,0x12,0x0,0xc3,0xfe,0x51,0xfd,0x1e,0xfc, +0xb6,0xfa,0x24,0xf9,0xd,0xf8,0x38,0xf7,0x71,0xf6,0x30,0xf6, +0x69,0xf6,0x14,0xf7,0xbb,0xf8,0x3e,0xfb,0x55,0xfe,0x56,0x2, +0xc4,0x6,0xa1,0xa,0xda,0xd,0x3e,0x10,0xc,0x11,0x64,0x10, +0x85,0xe,0x7b,0xa,0x1d,0x4,0x70,0xfd,0x20,0xf8,0x2f,0xf4, +0xc3,0xf1,0xae,0xf1,0x34,0xf4,0x97,0xf8,0x3f,0xfd,0xe4,0x0, +0xb2,0x3,0xd6,0x5,0xb5,0x6,0x9e,0x6,0x35,0x6,0xf6,0x4, +0xd4,0x2,0xc8,0x0,0x1f,0xff,0xa2,0xfd,0x4f,0xfc,0x65,0xfb, +0x93,0xfb,0xbf,0xfc,0xc8,0xfd,0x92,0xfe,0x7c,0xff,0xf2,0xff, +0xb0,0xff,0xb9,0xfe,0xc1,0xfc,0x90,0xfa,0x1a,0xf9,0x1c,0xf8, +0xdb,0xf7,0xbf,0xf8,0x0,0xfa,0xae,0xfb,0x42,0xfe,0x83,0x0, +0xc7,0x1,0xdf,0x2,0xb7,0x3,0x9,0x4,0x4c,0x4,0x30,0x4, +0x6e,0x3,0xd5,0x2,0x9c,0x2,0x35,0x2,0xb7,0x1,0x92,0x1, +0xb9,0x1,0xef,0x1,0x1a,0x2,0xff,0x1,0x51,0x1,0x73,0x0, +0xf0,0xff,0x47,0xff,0x2f,0xfe,0x92,0xfd,0xd0,0xfd,0x6b,0xfe, +0x50,0xff,0x62,0x0,0x40,0x1,0xf5,0x1,0x7c,0x2,0xa0,0x2, +0x59,0x2,0x6f,0x1,0xf,0x0,0x4,0xff,0x3a,0xfe,0x55,0xfd, +0x15,0xfd,0x98,0xfd,0xff,0xfd,0x74,0xfe,0x46,0xff,0x89,0xff, +0x21,0xff,0xea,0xfe,0x90,0xfe,0x95,0xfd,0xc4,0xfc,0x65,0xfc, +0xd0,0xfb,0x35,0xfb,0x3e,0xfb,0xe7,0xfb,0x7,0xfd,0x76,0xfe, +0xe2,0xff,0x15,0x1,0xd9,0x1,0x31,0x2,0x93,0x2,0xda,0x2, +0x8c,0x2,0x1e,0x2,0xde,0x1,0x6b,0x1,0x1c,0x1,0x4b,0x1, +0x85,0x1,0xd5,0x1,0x4f,0x2,0x68,0x2,0x3b,0x2,0x13,0x2, +0xa8,0x1,0x42,0x1,0x42,0x1,0x32,0x1,0xbe,0x0,0x8,0x0, +0x6f,0xff,0x48,0xff,0xd8,0xfe,0xbb,0xfd,0x30,0xfd,0x93,0xfd, +0x2d,0xfe,0x65,0xff,0x17,0x1,0x30,0x2,0x2b,0x3,0x80,0x4, +0x1b,0x5,0xab,0x4,0xbe,0x3,0x94,0x2,0x75,0x1,0x23,0x0, +0x81,0xfe,0x81,0xfd,0x1d,0xfd,0x79,0xfc,0x29,0xfc,0x83,0xfc, +0xc6,0xfc,0x37,0xfd,0x4d,0xfe,0x98,0xff,0x0,0x1,0x74,0x2, +0x99,0x3,0x7e,0x4,0xce,0x4,0x25,0x4,0x1b,0x3,0xb,0x2, +0xd3,0x0,0xd9,0xff,0x42,0xff,0xe1,0xfe,0xdd,0xfe,0xe,0xff, +0x5f,0xff,0x20,0x0,0xd1,0x0,0x13,0x1,0x8e,0x1,0x19,0x2, +0xf3,0x1,0x90,0x1,0x61,0x1,0x6,0x1,0x86,0x0,0xfe,0xff, +0x26,0xff,0xc,0xfe,0xe4,0xfc,0x9e,0xfb,0x29,0xfa,0x9f,0xf8, +0x4d,0xf7,0x7a,0xf6,0x16,0xf6,0x1e,0xf6,0xc3,0xf6,0xd,0xf8, +0x1f,0xfa,0x49,0xfd,0x55,0x1,0x92,0x5,0x8a,0x9,0xeb,0xc, +0x2a,0xf,0xeb,0xf,0x4c,0xf,0x50,0xd,0x9a,0x9,0x42,0x4, +0x60,0xfe,0x37,0xf9,0x55,0xf5,0xeb,0xf2,0x82,0xf2,0x93,0xf4, +0x7a,0xf8,0xbe,0xfc,0x5f,0x0,0x36,0x3,0x4e,0x5,0x68,0x6, +0x49,0x6,0x51,0x5,0xe0,0x3,0xd8,0x1,0xb4,0xff,0x48,0xfe, +0x3c,0xfd,0x1f,0xfc,0xb2,0xfb,0x5f,0xfc,0xad,0xfd,0x29,0xff, +0x3d,0x0,0xaf,0x0,0xe1,0x0,0x66,0x0,0xa1,0xfe,0x4d,0xfc, +0x15,0xfa,0x6,0xf8,0xe4,0xf6,0x2b,0xf7,0x27,0xf8,0x96,0xf9, +0xb7,0xfb,0x3b,0xfe,0x9f,0x0,0x81,0x2,0x93,0x3,0x8,0x4, +0x45,0x4,0x4b,0x4,0xff,0x3,0x87,0x3,0x23,0x3,0xd9,0x2, +0x89,0x2,0x54,0x2,0x49,0x2,0x2c,0x2,0x30,0x2,0x7e,0x2, +0x43,0x2,0x32,0x1,0x48,0x0,0xb4,0xff,0xa6,0xfe,0x5c,0xfd, +0xc5,0xfc,0xef,0xfc,0x82,0xfd,0x94,0xfe,0x2c,0x0,0xdb,0x1, +0x27,0x3,0xe0,0x3,0xfe,0x3,0x92,0x3,0xce,0x2,0xbe,0x1, +0x59,0x0,0xc6,0xfe,0x44,0xfd,0x43,0xfc,0x2e,0xfc,0x90,0xfc, +0xd2,0xfc,0x5d,0xfd,0x31,0xfe,0x5b,0xfe,0x1d,0xfe,0x41,0xfe, +0xc,0xfe,0x2d,0xfd,0xa1,0xfc,0x46,0xfc,0x89,0xfb,0x57,0xfb, +0x16,0xfc,0xff,0xfc,0x31,0xfe,0xe9,0xff,0x66,0x1,0x78,0x2, +0x61,0x3,0xb4,0x3,0x6a,0x3,0xa,0x3,0x72,0x2,0x88,0x1, +0xc8,0x0,0x4b,0x0,0xe7,0xff,0xf3,0xff,0x89,0x0,0x2b,0x1, +0xae,0x1,0x35,0x2,0x97,0x2,0xab,0x2,0x9d,0x2,0x9f,0x2, +0xb6,0x2,0xaa,0x2,0x28,0x2,0x75,0x1,0x4,0x1,0x61,0x0, +0x54,0xff,0xa7,0xfe,0x5e,0xfe,0xf,0xfe,0x84,0xfe,0xf9,0xff, +0x75,0x1,0xed,0x2,0x83,0x4,0x4a,0x5,0xf,0x5,0x5f,0x4, +0x4e,0x3,0x19,0x2,0xcd,0x0,0x2e,0xff,0x10,0xfe,0xe2,0xfd, +0x9b,0xfd,0x49,0xfd,0xcf,0xfd,0xa1,0xfe,0x52,0xff,0x72,0x0, +0xab,0x1,0x6f,0x2,0x28,0x3,0x0,0x4,0x66,0x4,0x13,0x4, +0x43,0x3,0x42,0x2,0x24,0x1,0x12,0x0,0x50,0xff,0xdc,0xfe, +0xc9,0xfe,0x31,0xff,0xb9,0xff,0x56,0x0,0x27,0x1,0x7d,0x1, +0x5f,0x1,0xae,0x1,0xe2,0x1,0x68,0x1,0x1c,0x1,0x4,0x1, +0x9d,0x0,0x71,0x0,0x4e,0x0,0x70,0xff,0x69,0xfe,0x89,0xfd, +0x44,0xfc,0xd6,0xfa,0x82,0xf9,0xd,0xf8,0xc9,0xf6,0x3,0xf6, +0xc8,0xf5,0x70,0xf6,0xf8,0xf7,0x44,0xfa,0xcb,0xfd,0x63,0x2, +0x1b,0x7,0x78,0xb,0x24,0xf,0x67,0x11,0xe7,0x11,0xd6,0x10, +0x21,0xe,0x4d,0x9,0xbf,0x2,0x35,0xfc,0xfe,0xf6,0x33,0xf3, +0x44,0xf1,0xe9,0xf1,0xff,0xf4,0x96,0xf9,0x67,0xfe,0x83,0x2, +0xbf,0x5,0xc8,0x7,0x49,0x8,0xc6,0x7,0x88,0x6,0x38,0x4, +0x46,0x1,0x9e,0xfe,0xaf,0xfc,0x7b,0xfb,0xc2,0xfa,0xb2,0xfa, +0xf3,0xfb,0x7,0xfe,0xd7,0xff,0x48,0x1,0x49,0x2,0x56,0x2, +0x93,0x1,0xf8,0xff,0x2c,0xfd,0x3,0xfa,0xa7,0xf7,0x43,0xf6, +0xfd,0xf5,0x15,0xf7,0x17,0xf9,0x97,0xfb,0x7b,0xfe,0x3d,0x1, +0x3d,0x3,0x73,0x4,0x19,0x5,0x5f,0x5,0x5e,0x5,0x8,0x5, +0x71,0x4,0xe2,0x3,0x65,0x3,0xfd,0x2,0xd4,0x2,0xb2,0x2, +0x69,0x2,0x78,0x2,0xa6,0x2,0xda,0x1,0x6d,0x0,0x93,0xff, +0xfc,0xfe,0xfe,0xfd,0x10,0xfd,0xa7,0xfc,0xcf,0xfc,0x99,0xfd, +0xdb,0xfe,0x61,0x0,0x3,0x2,0x58,0x3,0x3e,0x4,0xa2,0x4, +0x34,0x4,0x4d,0x3,0x74,0x2,0x36,0x1,0x7c,0xff,0x1c,0xfe, +0x58,0xfd,0xe1,0xfc,0xb2,0xfc,0xd3,0xfc,0x2d,0xfd,0x80,0xfd, +0x93,0xfd,0x8e,0xfd,0x90,0xfd,0x69,0xfd,0x20,0xfd,0xb5,0xfc, +0x23,0xfc,0xd9,0xfb,0x2a,0xfc,0xeb,0xfc,0xf1,0xfd,0x13,0xff, +0x54,0x0,0xc3,0x1,0xe0,0x2,0x59,0x3,0x97,0x3,0xa0,0x3, +0x47,0x3,0xd2,0x2,0x2c,0x2,0x3b,0x1,0x6e,0x0,0xd2,0xff, +0x71,0xff,0xa5,0xff,0x1,0x0,0x22,0x0,0x92,0x0,0x30,0x1, +0x68,0x1,0x99,0x1,0x16,0x2,0x8e,0x2,0xe3,0x2,0xc,0x3, +0xef,0x2,0x76,0x2,0x7e,0x1,0x64,0x0,0x76,0xff,0x44,0xfe, +0x23,0xfd,0x13,0xfd,0xd8,0xfd,0xed,0xfe,0x94,0x0,0x70,0x2, +0xc6,0x3,0x8b,0x4,0xa9,0x4,0x1c,0x4,0x39,0x3,0xd6,0x1, +0xf8,0xff,0x7e,0xfe,0xa5,0xfd,0xfd,0xfc,0xc1,0xfc,0x28,0xfd, +0xdd,0xfd,0xf6,0xfe,0x8c,0x0,0x13,0x2,0x5a,0x3,0xac,0x4, +0xbc,0x5,0xc,0x6,0xb2,0x5,0xbf,0x4,0x37,0x3,0x85,0x1, +0xe7,0xff,0x65,0xfe,0x62,0xfd,0x1b,0xfd,0x59,0xfd,0x22,0xfe, +0x69,0xff,0xb8,0x0,0xc2,0x1,0x8b,0x2,0x2f,0x3,0x9b,0x3, +0x5d,0x3,0x6e,0x2,0x6a,0x1,0x75,0x0,0x61,0xff,0x61,0xfe, +0x48,0xfd,0xec,0xfb,0xc3,0xfa,0xc2,0xf9,0x9a,0xf8,0xc0,0xf7, +0x3f,0xf7,0xa1,0xf6,0x4c,0xf6,0x9f,0xf6,0x63,0xf7,0xe5,0xf8, +0x99,0xfb,0x6d,0xff,0x16,0x4,0x2,0x9,0x93,0xd,0x3d,0x11, +0x25,0x13,0x17,0x13,0x8c,0x11,0xe6,0xd,0x85,0x7,0xf2,0xff, +0x1c,0xf9,0x85,0xf3,0x88,0xef,0x32,0xee,0x2c,0xf0,0xb3,0xf4, +0x35,0xfa,0xad,0xff,0x85,0x4,0xfe,0x7,0xd9,0x9,0x54,0xa, +0x7a,0x9,0x8a,0x7,0xdc,0x4,0x9c,0x1,0x7b,0xfe,0x2a,0xfc, +0x83,0xfa,0x6d,0xf9,0x4b,0xf9,0x62,0xfa,0x8c,0xfc,0xe3,0xfe, +0x91,0x0,0xd1,0x1,0x90,0x2,0xfa,0x1,0x11,0x0,0x5a,0xfd, +0x3e,0xfa,0xba,0xf7,0x68,0xf6,0xf0,0xf5,0x95,0xf6,0x98,0xf8, +0x33,0xfb,0xb,0xfe,0x1f,0x1,0x93,0x3,0xfe,0x4,0x3,0x6, +0xb6,0x6,0x9d,0x6,0xe0,0x5,0x8,0x5,0x2e,0x4,0x4d,0x3, +0xb4,0x2,0x4f,0x2,0x9d,0x1,0xef,0x0,0xc9,0x0,0x77,0x0, +0x6d,0xff,0x57,0xfe,0xba,0xfd,0x68,0xfd,0x1c,0xfd,0xba,0xfc, +0xb9,0xfc,0x79,0xfd,0x7a,0xfe,0x81,0xff,0xce,0x0,0xf8,0x1, +0xae,0x2,0x31,0x3,0x34,0x3,0x72,0x2,0x9e,0x1,0x23,0x1, +0x79,0x0,0x64,0xff,0x75,0xfe,0xb,0xfe,0xc2,0xfd,0x74,0xfd, +0x85,0xfd,0xb4,0xfd,0x7e,0xfd,0x33,0xfd,0xdc,0xfc,0x21,0xfc, +0x91,0xfb,0x79,0xfb,0x40,0xfb,0x19,0xfb,0xa8,0xfb,0xae,0xfc, +0xd6,0xfd,0x8,0xff,0x2c,0x0,0x62,0x1,0x76,0x2,0xa,0x3, +0x5e,0x3,0x87,0x3,0x4f,0x3,0x1a,0x3,0xe8,0x2,0x42,0x2, +0xa6,0x1,0x6c,0x1,0xfe,0x0,0x90,0x0,0x99,0x0,0x91,0x0, +0x6c,0x0,0xb3,0x0,0x2c,0x1,0x8b,0x1,0xf4,0x1,0x56,0x2, +0xb8,0x2,0x2e,0x3,0x56,0x3,0xfb,0x2,0x68,0x2,0xb1,0x1, +0xaf,0x0,0x80,0xff,0x68,0xfe,0x9c,0xfd,0x4f,0xfd,0xd0,0xfd, +0x14,0xff,0x87,0x0,0xfa,0x1,0x82,0x3,0x78,0x4,0x7b,0x4, +0x33,0x4,0x9e,0x3,0x22,0x2,0x4f,0x0,0xc6,0xfe,0x44,0xfd, +0xc,0xfc,0x94,0xfb,0x81,0xfb,0xf3,0xfb,0x68,0xfd,0x50,0xff, +0x1e,0x1,0x17,0x3,0xfb,0x4,0x2c,0x6,0xb8,0x6,0xa6,0x6, +0xa8,0x5,0xf9,0x3,0x21,0x2,0x35,0x0,0x4a,0xfe,0xc2,0xfc, +0xed,0xfb,0xe4,0xfb,0xb7,0xfc,0x49,0xfe,0x2c,0x0,0xe2,0x1, +0x35,0x3,0x44,0x4,0xf,0x5,0x11,0x5,0xfd,0x3,0x81,0x2, +0x22,0x1,0x62,0xff,0x37,0xfd,0x59,0xfb,0xba,0xf9,0x15,0xf8, +0xf3,0xf6,0x7a,0xf6,0x25,0xf6,0xf6,0xf5,0x2c,0xf6,0xb5,0xf6, +0x91,0xf7,0xdd,0xf8,0xef,0xfa,0x29,0xfe,0x3f,0x2,0xb1,0x6, +0x5d,0xb,0x7f,0xf,0xf3,0x11,0xa7,0x12,0xff,0x11,0xaa,0xf, +0x0,0xb,0x7,0x4,0x3d,0xfc,0xa4,0xf5,0xb4,0xf0,0x69,0xed, +0x26,0xed,0x90,0xf0,0xe5,0xf5,0x79,0xfb,0xce,0x0,0x2c,0x5, +0xe6,0x7,0x31,0x9,0x5d,0x9,0x5a,0x8,0x52,0x6,0xad,0x3, +0xc1,0x0,0x10,0xfe,0x14,0xfc,0xb6,0xfa,0xde,0xf9,0xf7,0xf9, +0x26,0xfb,0xe5,0xfc,0xa0,0xfe,0xdf,0xff,0x80,0x0,0xc1,0x0, +0x33,0x0,0x2a,0xfe,0x7c,0xfb,0x6d,0xf9,0xf3,0xf7,0x2,0xf7, +0x38,0xf7,0x7f,0xf8,0x55,0xfa,0xc6,0xfc,0x9e,0xff,0x20,0x2, +0xf0,0x3,0x35,0x5,0x15,0x6,0x8b,0x6,0x7e,0x6,0xe7,0x5, +0xfc,0x4,0x20,0x4,0x78,0x3,0xbc,0x2,0xc2,0x1,0xe0,0x0, +0x44,0x0,0x95,0xff,0x9f,0xfe,0x7b,0xfd,0x62,0xfc,0xe0,0xfb, +0x37,0xfc,0xa4,0xfc,0xd9,0xfc,0xcd,0xfd,0x98,0xff,0x17,0x1, +0x31,0x2,0x40,0x3,0x9b,0x3,0x54,0x3,0x33,0x3,0x8b,0x2, +0x2,0x1,0xff,0xff,0xb3,0xff,0x8,0xff,0x67,0xfe,0x6c,0xfe, +0x95,0xfe,0xf4,0xfe,0x9c,0xff,0xb9,0xff,0x49,0xff,0xec,0xfe, +0x49,0xfe,0x27,0xfd,0x11,0xfc,0x22,0xfb,0x3a,0xfa,0xb7,0xf9, +0xe6,0xf9,0xb6,0xfa,0x1,0xfc,0x80,0xfd,0xf7,0xfe,0x62,0x0, +0xb0,0x1,0x99,0x2,0xfe,0x2,0xb,0x3,0xe6,0x2,0x9f,0x2, +0x46,0x2,0xbb,0x1,0xb,0x1,0xa5,0x0,0x73,0x0,0x10,0x0, +0xd5,0xff,0x20,0x0,0x98,0x0,0xe,0x1,0x97,0x1,0x20,0x2, +0xa3,0x2,0x3,0x3,0x29,0x3,0x69,0x3,0x83,0x3,0xdf,0x2, +0xf9,0x1,0x41,0x1,0x33,0x0,0xf8,0xfe,0x24,0xfe,0x85,0xfd, +0x4b,0xfd,0xf5,0xfd,0xf,0xff,0x48,0x0,0xda,0x1,0x4c,0x3, +0x29,0x4,0xa0,0x4,0x99,0x4,0x18,0x4,0x76,0x3,0x46,0x2, +0x47,0x0,0x66,0xfe,0x13,0xfd,0xdf,0xfb,0x1c,0xfb,0x29,0xfb, +0x8b,0xfb,0x60,0xfc,0x2c,0xfe,0x38,0x0,0xe1,0x1,0x9b,0x3, +0x31,0x5,0xd4,0x5,0x9e,0x5,0xc9,0x4,0x4b,0x3,0xb7,0x1, +0x65,0x0,0x5,0xff,0xc4,0xfd,0x9,0xfd,0xdc,0xfc,0x83,0xfd, +0xfb,0xfe,0x7f,0x0,0xb7,0x1,0xe9,0x2,0x14,0x4,0xde,0x4, +0xe4,0x4,0x24,0x4,0x4,0x3,0x96,0x1,0xc2,0xff,0xc2,0xfd, +0xaf,0xfb,0xac,0xf9,0x2f,0xf8,0x21,0xf7,0x38,0xf6,0xbe,0xf5, +0xc2,0xf5,0x27,0xf6,0x37,0xf7,0xb8,0xf8,0x56,0xfa,0xc8,0xfc, +0x62,0x0,0x78,0x4,0xdb,0x8,0x51,0xd,0xa0,0x10,0xe3,0x11, +0x78,0x11,0xef,0xf,0xdc,0xc,0x78,0x7,0x75,0x0,0xca,0xf9, +0x77,0xf4,0x97,0xf0,0xed,0xee,0x35,0xf0,0x1c,0xf4,0x7d,0xf9, +0xc5,0xfe,0xed,0x2,0x8,0x6,0x10,0x8,0x97,0x8,0xfa,0x7, +0xc2,0x6,0xb6,0x4,0x15,0x2,0xe6,0xff,0x41,0xfe,0xa6,0xfc, +0x7d,0xfb,0x31,0xfb,0x85,0xfb,0x96,0xfc,0x49,0xfe,0x8b,0xff, +0x9,0x0,0x59,0x0,0x2c,0x0,0xef,0xfe,0x16,0xfd,0x56,0xfb, +0x13,0xfa,0x81,0xf9,0x7e,0xf9,0xff,0xf9,0x22,0xfb,0xa3,0xfc, +0x42,0xfe,0x1,0x0,0x92,0x1,0xa9,0x2,0x7d,0x3,0x62,0x4, +0x2f,0x5,0x4b,0x5,0xc6,0x4,0x75,0x4,0x75,0x4,0x22,0x4, +0x7e,0x3,0xbe,0x2,0xce,0x1,0xde,0x0,0xd4,0xff,0x59,0xfe, +0xdd,0xfc,0xef,0xfb,0xab,0xfb,0xf9,0xfb,0x64,0xfc,0xe,0xfd, +0xc7,0xfe,0x1e,0x1,0x14,0x3,0xbf,0x4,0xc6,0x5,0xaa,0x5, +0x35,0x5,0x80,0x4,0xab,0x2,0x75,0x0,0x1e,0xff,0x75,0xfe, +0xe3,0xfd,0x57,0xfd,0x55,0xfd,0x40,0xfe,0x68,0xff,0x42,0x0, +0xfe,0x0,0x26,0x1,0x9f,0x0,0x16,0x0,0x30,0xff,0x92,0xfd, +0x16,0xfc,0xfc,0xfa,0x3b,0xfa,0x5c,0xfa,0x12,0xfb,0xf6,0xfb, +0x5d,0xfd,0xde,0xfe,0x24,0x0,0x99,0x1,0xb6,0x2,0x13,0x3, +0x65,0x3,0x85,0x3,0xfa,0x2,0x2c,0x2,0x39,0x1,0x4d,0x0, +0xf1,0xff,0xab,0xff,0x2e,0xff,0x3d,0xff,0xdb,0xff,0x8c,0x0, +0x66,0x1,0x40,0x2,0xe9,0x2,0x81,0x3,0xe5,0x3,0xff,0x3, +0xbd,0x3,0xd4,0x2,0x9a,0x1,0x9c,0x0,0x9d,0xff,0x9e,0xfe, +0x2,0xfe,0xa6,0xfd,0x8d,0xfd,0x27,0xfe,0x5f,0xff,0xbf,0x0, +0x1f,0x2,0x78,0x3,0x5d,0x4,0x35,0x4,0x60,0x3,0xc3,0x2, +0x34,0x2,0x47,0x1,0x44,0x0,0x22,0xff,0xdb,0xfd,0x12,0xfd, +0xc9,0xfc,0x85,0xfc,0x66,0xfc,0xae,0xfc,0x91,0xfd,0x1f,0xff, +0xae,0x0,0xef,0x1,0x4b,0x3,0x6d,0x4,0xc2,0x4,0x74,0x4, +0xa6,0x3,0x92,0x2,0xc2,0x1,0x9,0x1,0x13,0x0,0x39,0xff, +0xb8,0xfe,0xbd,0xfe,0x87,0xff,0x8a,0x0,0x1f,0x1,0x8f,0x1, +0x40,0x2,0xf0,0x2,0x3a,0x3,0x23,0x3,0xd0,0x2,0x24,0x2, +0x2c,0x1,0x19,0x0,0x82,0xfe,0x50,0xfc,0x86,0xfa,0x76,0xf9, +0x54,0xf8,0x2a,0xf7,0x8d,0xf6,0x58,0xf6,0x74,0xf6,0x16,0xf7, +0x40,0xf8,0x1f,0xfa,0xf2,0xfc,0x9b,0x0,0xe3,0x4,0x60,0x9, +0x51,0xd,0xe,0x10,0x21,0x11,0x8f,0x10,0xb4,0xe,0x20,0xb, +0x3d,0x5,0x63,0xfe,0x9d,0xf8,0x49,0xf4,0x4e,0xf1,0xa3,0xf0, +0xe4,0xf2,0x40,0xf7,0x51,0xfc,0xe5,0x0,0x60,0x4,0xc3,0x6, +0xb,0x8,0x1f,0x8,0x45,0x7,0xa9,0x5,0x53,0x3,0xe5,0x0, +0xea,0xfe,0x1a,0xfd,0x80,0xfb,0xca,0xfa,0xfd,0xfa,0xce,0xfb, +0x5d,0xfd,0x2b,0xff,0x4a,0x0,0xcc,0x0,0x2,0x1,0x51,0x0, +0x98,0xfe,0xd1,0xfc,0x5c,0xfb,0xf,0xfa,0x64,0xf9,0x79,0xf9, +0xbb,0xf9,0x80,0xfa,0x34,0xfc,0xff,0xfd,0x71,0xff,0xea,0x0, +0x18,0x2,0xf3,0x2,0x1a,0x4,0xf8,0x4,0xd7,0x4,0x9b,0x4, +0xbc,0x4,0x85,0x4,0xf0,0x3,0x48,0x3,0x73,0x2,0xa4,0x1, +0xdf,0x0,0xaf,0xff,0x45,0xfe,0x31,0xfd,0x81,0xfc,0x2b,0xfc, +0x28,0xfc,0x6f,0xfc,0x78,0xfd,0x7c,0xff,0xb5,0x1,0x8d,0x3, +0xfc,0x4,0xba,0x5,0xbf,0x5,0x6b,0x5,0x51,0x4,0x10,0x2, +0xc1,0xff,0x5a,0xfe,0x57,0xfd,0x45,0xfc,0x96,0xfb,0xcc,0xfb, +0xeb,0xfc,0x58,0xfe,0x8b,0xff,0x8f,0x0,0x25,0x1,0xec,0x0, +0x66,0x0,0xac,0xff,0x1d,0xfe,0x71,0xfc,0xb7,0xfb,0x41,0xfb, +0x97,0xfa,0xb2,0xfa,0xde,0xfb,0x65,0xfd,0xb,0xff,0xe5,0x0, +0x81,0x2,0x4c,0x3,0x8a,0x3,0xea,0x3,0x12,0x4,0x55,0x3, +0x32,0x2,0x3d,0x1,0x2d,0x0,0x15,0xff,0x64,0xfe,0x1e,0xfe, +0x56,0xfe,0x3e,0xff,0x7d,0x0,0x9b,0x1,0x8c,0x2,0x72,0x3, +0x2d,0x4,0x80,0x4,0x70,0x4,0xf9,0x3,0xf2,0x2,0xaa,0x1, +0x7b,0x0,0x48,0xff,0x39,0xfe,0xa4,0xfd,0x73,0xfd,0xb5,0xfd, +0x8c,0xfe,0xb3,0xff,0x16,0x1,0xac,0x2,0xe9,0x3,0x70,0x4, +0x32,0x4,0x54,0x3,0x77,0x2,0xbc,0x1,0xb7,0x0,0xb3,0xff, +0xe0,0xfe,0xde,0xfd,0x20,0xfd,0xf2,0xfc,0xa2,0xfc,0x7c,0xfc, +0x41,0xfd,0x60,0xfe,0x70,0xff,0xc1,0x0,0x15,0x2,0x39,0x3, +0x47,0x4,0xbd,0x4,0x54,0x4,0xa1,0x3,0xf3,0x2,0x23,0x2, +0x35,0x1,0x54,0x0,0x98,0xff,0x2c,0xff,0x51,0xff,0xdb,0xff, +0x3a,0x0,0x73,0x0,0xe0,0x0,0x3c,0x1,0x6e,0x1,0xa8,0x1, +0x8a,0x1,0x6,0x1,0xa9,0x0,0x1e,0x0,0xf0,0xfe,0xa3,0xfd, +0x5c,0xfc,0xeb,0xfa,0xaf,0xf9,0x8a,0xf8,0x39,0xf7,0x6a,0xf6, +0x44,0xf6,0x19,0xf6,0x4f,0xf6,0xab,0xf7,0xfc,0xf9,0x31,0xfd, +0x6a,0x1,0x1b,0x6,0xbe,0xa,0xe0,0xe,0x75,0x11,0xa,0x12, +0x35,0x11,0xc6,0xe,0xd7,0x9,0xf2,0x2,0xfb,0xfb,0x60,0xf6, +0x6c,0xf2,0x27,0xf0,0x4e,0xf0,0x61,0xf3,0x34,0xf8,0x1b,0xfd, +0xa3,0x1,0x88,0x5,0xfc,0x7,0xe3,0x8,0xba,0x8,0x8c,0x7, +0x66,0x5,0xbb,0x2,0xee,0xff,0x61,0xfd,0x76,0xfb,0x45,0xfa, +0xca,0xf9,0x2e,0xfa,0x92,0xfb,0x98,0xfd,0x5d,0xff,0x6e,0x0, +0x20,0x1,0x51,0x1,0x47,0x0,0x33,0xfe,0x1,0xfc,0x19,0xfa, +0xb0,0xf8,0x1d,0xf8,0x25,0xf8,0x77,0xf8,0x7f,0xf9,0x66,0xfb, +0x9a,0xfd,0xcb,0xff,0xdd,0x1,0x72,0x3,0xae,0x4,0xdf,0x5, +0x6c,0x6,0x18,0x6,0xc5,0x5,0xaf,0x5,0x24,0x5,0x2a,0x4, +0x42,0x3,0x71,0x2,0x8a,0x1,0x83,0x0,0x62,0xff,0x49,0xfe, +0x54,0xfd,0xa3,0xfc,0x66,0xfc,0x9b,0xfc,0x37,0xfd,0x65,0xfe, +0x22,0x0,0x6,0x2,0xaa,0x3,0xce,0x4,0x53,0x5,0x46,0x5, +0x90,0x4,0xf8,0x2,0xd8,0x0,0x1c,0xff,0xff,0xfd,0xf8,0xfc, +0x11,0xfc,0xd6,0xfb,0x43,0xfc,0xa,0xfd,0x17,0xfe,0x38,0xff, +0x2d,0x0,0xc4,0x0,0xb5,0x0,0x9,0x0,0xed,0xfe,0x68,0xfd, +0xf5,0xfb,0x25,0xfb,0xb5,0xfa,0x94,0xfa,0x67,0xfb,0x25,0xfd, +0x12,0xff,0xec,0x0,0xb9,0x2,0x17,0x4,0xa1,0x4,0xac,0x4, +0x94,0x4,0xdc,0x3,0x6a,0x2,0x11,0x1,0xe5,0xff,0x93,0xfe, +0xc7,0xfd,0xaa,0xfd,0xaa,0xfd,0x38,0xfe,0x8d,0xff,0xd4,0x0, +0x3,0x2,0x61,0x3,0x64,0x4,0xe5,0x4,0x16,0x5,0xc1,0x4, +0x3,0x4,0xf8,0x2,0x84,0x1,0x21,0x0,0xfc,0xfe,0xa2,0xfd, +0x8f,0xfc,0x6f,0xfc,0xed,0xfc,0xde,0xfd,0x6f,0xff,0x34,0x1, +0xd7,0x2,0x45,0x4,0x1e,0x5,0x3b,0x5,0xd6,0x4,0x7,0x4, +0xe8,0x2,0xae,0x1,0x52,0x0,0xdb,0xfe,0x9d,0xfd,0xca,0xfc, +0x3a,0xfc,0x0,0xfc,0x5a,0xfc,0x29,0xfd,0x49,0xfe,0xc9,0xff, +0x4a,0x1,0x6b,0x2,0x84,0x3,0x9a,0x4,0xfc,0x4,0x91,0x4, +0xf7,0x3,0x63,0x3,0x72,0x2,0x1b,0x1,0x1d,0x0,0xa6,0xff, +0xc,0xff,0x94,0xfe,0xf5,0xfe,0x85,0xff,0xaf,0xff,0xf7,0xff, +0x67,0x0,0xbf,0x0,0x15,0x1,0x10,0x1,0xb7,0x0,0x94,0x0, +0x20,0x0,0xe1,0xfe,0x7e,0xfd,0x6,0xfc,0x32,0xfa,0x87,0xf8, +0x1f,0xf7,0xc4,0xf5,0xed,0xf4,0x96,0xf4,0x68,0xf4,0x34,0xf5, +0xa1,0xf7,0x1b,0xfb,0x5a,0xff,0xbc,0x4,0xb9,0xa,0xe8,0xf, +0x4b,0x13,0xb6,0x14,0x53,0x14,0x1e,0x12,0x9c,0xd,0x8f,0x6, +0x5e,0xfe,0x37,0xf7,0xcc,0xf1,0xc,0xee,0xc3,0xec,0xb3,0xee, +0x5a,0xf3,0x55,0xf9,0x3a,0xff,0x50,0x4,0x33,0x8,0x52,0xa, +0xcb,0xa,0x44,0xa,0x9a,0x8,0xa8,0x5,0x3d,0x2,0x7,0xff, +0x32,0xfc,0x6,0xfa,0xce,0xf8,0xb9,0xf8,0xcf,0xf9,0xd9,0xfb, +0x2b,0xfe,0xbb,0xff,0x6a,0x0,0x22,0x1,0x86,0x1,0x51,0x0, +0xfe,0xfd,0xc0,0xfb,0xe7,0xf9,0xb7,0xf8,0x1f,0xf8,0xbb,0xf7, +0x2d,0xf8,0xd8,0xf9,0xfa,0xfb,0x46,0xfe,0x84,0x0,0x1a,0x2, +0x89,0x3,0x51,0x5,0x94,0x6,0xe9,0x6,0xd9,0x6,0xa7,0x6, +0x56,0x6,0xbd,0x5,0xb9,0x4,0xbb,0x3,0xe4,0x2,0xda,0x1, +0xa9,0x0,0x52,0xff,0xcb,0xfd,0x94,0xfc,0xf6,0xfb,0xcc,0xfb, +0xd,0xfc,0xb8,0xfc,0x12,0xfe,0x30,0x0,0x2b,0x2,0x8c,0x3, +0xa4,0x4,0x7,0x5,0x90,0x4,0xde,0x3,0x8d,0x2,0x92,0x0, +0x39,0xff,0x66,0xfe,0x24,0xfd,0x46,0xfc,0x77,0xfc,0xe8,0xfc, +0x63,0xfd,0x31,0xfe,0x4,0xff,0xaa,0xff,0x28,0x0,0x2f,0x0, +0x95,0xff,0x83,0xfe,0x3e,0xfd,0x15,0xfc,0x52,0xfb,0x31,0xfb, +0xbc,0xfb,0xd7,0xfc,0x82,0xfe,0x8c,0x0,0x67,0x2,0xc6,0x3, +0xb2,0x4,0x2c,0x5,0x24,0x5,0x78,0x4,0x35,0x3,0xd6,0x1, +0xa0,0x0,0x5b,0xff,0x24,0xfe,0x86,0xfd,0x97,0xfd,0x1a,0xfe, +0x26,0xff,0xbc,0x0,0x2d,0x2,0x1f,0x3,0x1a,0x4,0x18,0x5, +0x8d,0x5,0xa8,0x5,0x60,0x5,0x24,0x4,0x79,0x2,0xfc,0x0, +0x27,0xff,0x33,0xfd,0x6,0xfc,0x82,0xfb,0x7e,0xfb,0x43,0xfc, +0xb5,0xfd,0xb0,0xff,0xe3,0x1,0xc2,0x3,0x68,0x5,0x86,0x6, +0x48,0x6,0x56,0x5,0x65,0x4,0xb4,0x2,0x83,0x0,0xd5,0xfe, +0x77,0xfd,0x76,0xfc,0x2c,0xfc,0x11,0xfc,0x37,0xfc,0x25,0xfd, +0x6c,0xfe,0xe4,0xff,0x8b,0x1,0xb0,0x2,0x76,0x3,0x59,0x4, +0xab,0x4,0x36,0x4,0x96,0x3,0xea,0x2,0x32,0x2,0x60,0x1, +0x4b,0x0,0x82,0xff,0x52,0xff,0x40,0xff,0x69,0xff,0xef,0xff, +0x43,0x0,0x62,0x0,0xa4,0x0,0xf4,0x0,0x3e,0x1,0x6e,0x1, +0x75,0x1,0x73,0x1,0x1d,0x1,0x33,0x0,0xf1,0xfe,0x4f,0xfd, +0x68,0xfb,0xb3,0xf9,0xef,0xf7,0xf9,0xf5,0x76,0xf4,0x9a,0xf3, +0x50,0xf3,0xee,0xf3,0xc4,0xf5,0x1f,0xf9,0xe8,0xfd,0x7b,0x3, +0xad,0x9,0xe2,0xf,0x5c,0x14,0x7f,0x16,0xd1,0x16,0xd,0x15, +0xd3,0x10,0x16,0xa,0x54,0x1,0xb7,0xf8,0x3,0xf2,0xf8,0xec, +0x25,0xea,0x1,0xeb,0x43,0xef,0x7f,0xf5,0x47,0xfc,0x5e,0x2, +0x67,0x7,0x0,0xb,0x81,0xc,0x5c,0xc,0x7,0xb,0x3b,0x8, +0x88,0x4,0xe1,0x0,0x8a,0xfd,0xc1,0xfa,0xc2,0xf8,0xd8,0xf7, +0x5e,0xf8,0xfc,0xf9,0x3c,0xfc,0xaa,0xfe,0x2a,0x0,0xe0,0x0, +0xbe,0x1,0x83,0x1,0x48,0xff,0xde,0xfc,0x30,0xfb,0xd2,0xf9, +0x10,0xf9,0xbf,0xf8,0xba,0xf8,0xd1,0xf9,0xbf,0xfb,0xbf,0xfd, +0xde,0xff,0x90,0x1,0xbb,0x2,0x62,0x4,0xf4,0x5,0x65,0x6, +0x83,0x6,0xca,0x6,0x9f,0x6,0x28,0x6,0xa5,0x5,0xc3,0x4, +0x82,0x3,0x4b,0x2,0x53,0x1,0x32,0x0,0x8f,0xfe,0x18,0xfd, +0x5c,0xfc,0xf7,0xfb,0xca,0xfb,0x23,0xfc,0x36,0xfd,0x19,0xff, +0x24,0x1,0x90,0x2,0xa6,0x3,0x78,0x4,0x90,0x4,0x2c,0x4, +0x74,0x3,0x25,0x2,0xbd,0x0,0x9d,0xff,0x6b,0xfe,0x47,0xfd, +0xb6,0xfc,0xb9,0xfc,0xf6,0xfc,0x38,0xfd,0xb0,0xfd,0x4f,0xfe, +0xa8,0xfe,0xec,0xfe,0x29,0xff,0xa7,0xfe,0xb0,0xfd,0x2a,0xfd, +0xb6,0xfc,0xe,0xfc,0xf1,0xfb,0x8f,0xfc,0xa8,0xfd,0x2b,0xff, +0xc4,0x0,0x13,0x2,0x1,0x3,0xaa,0x3,0x2b,0x4,0x1a,0x4, +0x4f,0x3,0x6a,0x2,0x74,0x1,0x1c,0x0,0xec,0xfe,0x1b,0xfe, +0x89,0xfd,0xdc,0xfd,0x2,0xff,0x1a,0x0,0x2a,0x1,0x48,0x2, +0x2d,0x3,0x17,0x4,0xd3,0x4,0xf1,0x4,0xd6,0x4,0x6d,0x4, +0x2c,0x3,0x94,0x1,0x3,0x0,0x2b,0xfe,0x82,0xfc,0xc5,0xfb, +0xca,0xfb,0x34,0xfc,0x2e,0xfd,0xf4,0xfe,0x1,0x1,0xc1,0x2, +0x74,0x4,0xdd,0x5,0x1c,0x6,0x82,0x5,0x81,0x4,0x94,0x2, +0x3f,0x0,0xaa,0xfe,0xb4,0xfd,0x13,0xfd,0xef,0xfc,0xd,0xfd, +0x6a,0xfd,0x28,0xfe,0x22,0xff,0x91,0x0,0x20,0x2,0xed,0x2, +0x69,0x3,0x17,0x4,0x13,0x4,0x43,0x3,0x7f,0x2,0xaf,0x1, +0xc4,0x0,0x29,0x0,0x94,0xff,0xf9,0xfe,0xa,0xff,0xa1,0xff, +0x3,0x0,0x36,0x0,0x83,0x0,0xe4,0x0,0x42,0x1,0x6a,0x1, +0x52,0x1,0x44,0x1,0x34,0x1,0xe2,0x0,0x7b,0x0,0xed,0xff, +0xd9,0xfe,0x8d,0xfd,0x40,0xfc,0x70,0xfa,0x5b,0xf8,0xa1,0xf6, +0xf9,0xf4,0xa0,0xf3,0x6c,0xf3,0xf9,0xf3,0x15,0xf5,0xc7,0xf7, +0x2f,0xfc,0x8d,0x1,0x90,0x7,0x80,0xd,0x63,0x12,0xa0,0x15, +0x79,0x16,0xee,0x14,0xb1,0x11,0x41,0xc,0x50,0x4,0xc3,0xfb, +0x6d,0xf4,0xa0,0xee,0xe6,0xea,0x52,0xea,0x4e,0xed,0x3,0xf3, +0xa2,0xf9,0xd1,0xff,0x31,0x5,0x4c,0x9,0x8e,0xb,0xc,0xc, +0x30,0xb,0x3b,0x9,0x58,0x6,0xd9,0x2,0x3a,0xff,0xfb,0xfb, +0x8d,0xf9,0x2a,0xf8,0xca,0xf7,0xac,0xf8,0xe2,0xfa,0x44,0xfd, +0xb6,0xfe,0xb3,0xff,0xc0,0x0,0x7,0x1,0xc4,0xff,0x92,0xfd, +0xb9,0xfb,0xa4,0xfa,0xdd,0xf9,0x6e,0xf9,0xc5,0xf9,0x9b,0xfa, +0xb2,0xfb,0x41,0xfd,0x5,0xff,0x69,0x0,0x5d,0x1,0x63,0x2, +0xd3,0x3,0x9,0x5,0x5b,0x5,0x75,0x5,0xdb,0x5,0xec,0x5, +0x90,0x5,0xf4,0x4,0xae,0x3,0x26,0x2,0xf,0x1,0xd1,0xff, +0x20,0xfe,0xbe,0xfc,0xe5,0xfb,0x82,0xfb,0xba,0xfb,0x51,0xfc, +0x3f,0xfd,0xc1,0xfe,0x6c,0x0,0xd5,0x1,0xef,0x2,0x63,0x3, +0x45,0x3,0x27,0x3,0xaf,0x2,0x5c,0x1,0xe2,0xff,0xd6,0xfe, +0xde,0xfd,0x0,0xfd,0x9a,0xfc,0xa8,0xfc,0x17,0xfd,0xa7,0xfd, +0xec,0xfd,0x1e,0xfe,0x8d,0xfe,0xe7,0xfe,0xf,0xff,0x1a,0xff, +0xa6,0xfe,0xd9,0xfd,0x46,0xfd,0xad,0xfc,0xf,0xfc,0x2c,0xfc, +0xe0,0xfc,0x96,0xfd,0x83,0xfe,0xaf,0xff,0xaf,0x0,0x98,0x1, +0x97,0x2,0x60,0x3,0x8a,0x3,0x10,0x3,0x60,0x2,0xac,0x1, +0xc0,0x0,0xdd,0xff,0x5f,0xff,0x21,0xff,0x3c,0xff,0xcf,0xff, +0x3d,0x0,0x7b,0x0,0x29,0x1,0xfa,0x1,0x62,0x2,0xb5,0x2, +0x1b,0x3,0x3d,0x3,0xb,0x3,0x83,0x2,0x80,0x1,0x42,0x0, +0x16,0xff,0xf1,0xfd,0xf1,0xfc,0x8e,0xfc,0xd9,0xfc,0x9c,0xfd, +0xe6,0xfe,0x90,0x0,0x10,0x2,0x35,0x3,0x3,0x4,0x52,0x4, +0x2c,0x4,0x8f,0x3,0x55,0x2,0xd,0x1,0x46,0x0,0x94,0xff, +0xaf,0xfe,0x17,0xfe,0xfd,0xfd,0x13,0xfe,0x39,0xfe,0xb4,0xfe, +0xb1,0xff,0xc1,0x0,0x90,0x1,0x5f,0x2,0x16,0x3,0x3e,0x3, +0xd0,0x2,0xb,0x2,0x5c,0x1,0x19,0x1,0xd2,0x0,0x4b,0x0, +0x2c,0x0,0x74,0x0,0x7f,0x0,0x50,0x0,0x33,0x0,0x60,0x0, +0xcf,0x0,0xe7,0x0,0xba,0x0,0xfd,0x0,0x37,0x1,0xdd,0x0, +0x91,0x0,0x4c,0x0,0x68,0xff,0x3c,0xfe,0x1b,0xfd,0xa0,0xfb, +0xbb,0xf9,0xb1,0xf7,0xcb,0xf5,0x6c,0xf4,0xc5,0xf3,0xeb,0xf3, +0xfe,0xf4,0x31,0xf7,0xd7,0xfa,0xc2,0xff,0x17,0x5,0x6d,0xa, +0x8d,0xf,0x56,0x13,0xc7,0x14,0x2f,0x14,0xe,0x12,0xe0,0xd, +0x22,0x7,0x26,0xff,0xe,0xf8,0x66,0xf2,0x1c,0xee,0x64,0xec, +0x24,0xee,0x68,0xf2,0xc1,0xf7,0x5b,0xfd,0x9a,0x2,0xde,0x6, +0xc2,0x9,0x1c,0xb,0xda,0xa,0x3c,0x9,0xd2,0x6,0xdd,0x3, +0x97,0x0,0x90,0xfd,0xe9,0xfa,0xb4,0xf8,0xa8,0xf7,0xec,0xf7, +0x37,0xf9,0x80,0xfb,0xb9,0xfd,0x10,0xff,0x8b,0x0,0xcc,0x1, +0x13,0x1,0x57,0xff,0x21,0xfe,0xdf,0xfc,0xc5,0xfb,0x77,0xfb, +0x18,0xfb,0xb0,0xfa,0x1b,0xfb,0xfd,0xfb,0x27,0xfd,0x9f,0xfe, +0xa9,0xff,0xa5,0x0,0x6b,0x2,0x19,0x4,0x5,0x5,0xe2,0x5, +0xda,0x6,0x8b,0x7,0xc8,0x7,0x42,0x7,0xeb,0x5,0x39,0x4, +0x8e,0x2,0xe2,0x0,0xea,0xfe,0xe9,0xfc,0xb6,0xfb,0x6f,0xfb, +0xa3,0xfb,0x66,0xfc,0xbf,0xfd,0x56,0xff,0x9,0x1,0xb6,0x2, +0xe8,0x3,0x4a,0x4,0xfe,0x3,0x78,0x3,0xbe,0x2,0x48,0x1, +0x54,0xff,0xed,0xfd,0x45,0xfd,0xd6,0xfc,0xa5,0xfc,0x1,0xfd, +0xdc,0xfd,0xee,0xfe,0xc8,0xff,0x17,0x0,0x1b,0x0,0x35,0x0, +0x2a,0x0,0xb4,0xff,0xe,0xff,0x46,0xfe,0x46,0xfd,0x79,0xfc, +0x6,0xfc,0xa4,0xfb,0xa1,0xfb,0x3e,0xfc,0x20,0xfd,0x6a,0xfe, +0x1f,0x0,0x6e,0x1,0x6f,0x2,0xc1,0x3,0xb9,0x4,0xb6,0x4, +0x43,0x4,0xcd,0x3,0x47,0x3,0x68,0x2,0x4,0x1,0xe2,0xff, +0x94,0xff,0x65,0xff,0x38,0xff,0xb5,0xff,0x6a,0x0,0xcb,0x0, +0x56,0x1,0x22,0x2,0xb5,0x2,0x15,0x3,0x7e,0x3,0xbc,0x3, +0x5b,0x3,0x4d,0x2,0x11,0x1,0xeb,0xff,0xb0,0xfe,0xa7,0xfd, +0x5f,0xfd,0xbd,0xfd,0x64,0xfe,0x73,0xff,0xfb,0x0,0x69,0x2, +0x52,0x3,0x18,0x4,0xca,0x4,0xb9,0x4,0xe2,0x3,0xf3,0x2, +0xf3,0x1,0xd9,0x0,0xfd,0xff,0x18,0xff,0xf6,0xfd,0x39,0xfd, +0x13,0xfd,0x49,0xfd,0x2a,0xfe,0xaa,0xff,0x14,0x1,0x43,0x2, +0x46,0x3,0xc5,0x3,0xc3,0x3,0x83,0x3,0xd,0x3,0xaa,0x2, +0x73,0x2,0xda,0x1,0xf9,0x0,0x83,0x0,0x31,0x0,0xa8,0xff, +0x67,0xff,0x70,0xff,0x7a,0xff,0xee,0xff,0xa9,0x0,0x2,0x1, +0x32,0x1,0x80,0x1,0x98,0x1,0x5b,0x1,0x97,0x0,0x39,0xff, +0xcc,0xfd,0x2f,0xfc,0xde,0xf9,0x8d,0xf7,0xc3,0xf5,0x33,0xf4, +0x6a,0xf3,0xdd,0xf3,0xff,0xf4,0x1a,0xf7,0xd2,0xfa,0x8d,0xff, +0xb9,0x4,0x2c,0xa,0x18,0xf,0xb3,0x12,0x96,0x14,0x7f,0x14, +0x9e,0x12,0xc3,0xe,0x50,0x8,0x76,0x0,0x89,0xf9,0x1b,0xf4, +0xd9,0xef,0xd3,0xed,0x21,0xef,0x1d,0xf3,0x3c,0xf8,0x67,0xfd, +0x35,0x2,0x6d,0x6,0x81,0x9,0xd8,0xa,0x98,0xa,0x3d,0x9, +0xc8,0x6,0x68,0x3,0x7,0x0,0x33,0xfd,0x9b,0xfa,0x61,0xf8, +0x7f,0xf7,0x60,0xf8,0x19,0xfa,0xd8,0xfb,0xd7,0xfd,0xf3,0xff, +0x73,0x1,0x55,0x2,0x69,0x2,0x0,0x1,0x6,0xff,0xba,0xfd, +0x65,0xfc,0xd0,0xfa,0x13,0xfa,0xe9,0xf9,0xcb,0xf9,0x6a,0xfa, +0x95,0xfb,0x9f,0xfc,0xe7,0xfd,0x80,0xff,0x46,0x1,0x73,0x3, +0x5b,0x5,0x81,0x6,0xba,0x7,0xe7,0x8,0x3,0x9,0x2c,0x8, +0xe5,0x6,0x31,0x5,0x20,0x3,0xae,0x0,0xd,0xfe,0xc5,0xfb, +0x12,0xfa,0x2d,0xf9,0x4c,0xf9,0x2b,0xfa,0xaf,0xfb,0xe5,0xfd, +0x6d,0x0,0xf4,0x2,0xfa,0x4,0xc6,0x5,0xbb,0x5,0x72,0x5, +0x52,0x4,0x3e,0x2,0x10,0x0,0x30,0xfe,0xe8,0xfc,0x5d,0xfc, +0x7,0xfc,0xf4,0xfb,0xb6,0xfc,0xf4,0xfd,0x1c,0xff,0xed,0xff, +0x35,0x0,0x40,0x0,0x3c,0x0,0xa6,0xff,0x94,0xfe,0x71,0xfd, +0x1e,0xfc,0xf9,0xfa,0x95,0xfa,0x86,0xfa,0x9f,0xfa,0x56,0xfb, +0x8e,0xfc,0x3,0xfe,0xaa,0xff,0x31,0x1,0xac,0x2,0x47,0x4, +0x5b,0x5,0x90,0x5,0x4b,0x5,0x7e,0x4,0x2e,0x3,0xdc,0x1, +0x7c,0x0,0x13,0xff,0x45,0xfe,0xd,0xfe,0x12,0xfe,0x95,0xfe, +0x7b,0xff,0x6a,0x0,0xa0,0x1,0xf9,0x2,0xd0,0x3,0x2a,0x4, +0x3e,0x4,0xed,0x3,0x27,0x3,0xe0,0x1,0x53,0x0,0xe,0xff, +0xff,0xfd,0x9,0xfd,0xaf,0xfc,0xe3,0xfc,0x77,0xfd,0x7,0xff, +0x3d,0x1,0xde,0x2,0xf3,0x3,0xd1,0x4,0x1d,0x5,0xe9,0x4, +0x3a,0x4,0xd3,0x2,0x60,0x1,0x44,0x0,0xdf,0xfe,0x6a,0xfd, +0x7b,0xfc,0xd7,0xfb,0xab,0xfb,0x5f,0xfc,0x92,0xfd,0x2a,0xff, +0x2d,0x1,0xcc,0x2,0xc5,0x3,0xb0,0x4,0x45,0x5,0xf2,0x4, +0x29,0x4,0x77,0x3,0xae,0x2,0xa2,0x1,0x8c,0x0,0xb4,0xff, +0x47,0xff,0x28,0xff,0x7,0xff,0xe1,0xfe,0x18,0xff,0xb6,0xff, +0x74,0x0,0x35,0x1,0xcc,0x1,0x12,0x2,0x44,0x2,0x18,0x2, +0xc2,0x0,0xb4,0xfe,0xf9,0xfc,0x2a,0xfb,0xbe,0xf8,0x74,0xf6, +0xa1,0xf4,0xe8,0xf2,0xfe,0xf1,0x9d,0xf2,0x27,0xf4,0x9e,0xf6, +0xff,0xfa,0xb1,0x0,0x39,0x6,0x99,0xb,0xcf,0x10,0x7e,0x14, +0xfd,0x15,0xb4,0x15,0x82,0x13,0xc7,0xe,0x72,0x7,0xe9,0xfe, +0x86,0xf7,0xc,0xf2,0xe7,0xed,0x10,0xec,0xd7,0xed,0x41,0xf2, +0xcb,0xf7,0xc7,0xfd,0x26,0x3,0x29,0x7,0x10,0xa,0xa0,0xb, +0x34,0xb,0x1c,0x9,0x17,0x6,0x73,0x2,0xa6,0xfe,0x73,0xfb, +0xf5,0xf8,0x7,0xf7,0x87,0xf6,0xf9,0xf7,0x47,0xfa,0xc0,0xfc, +0x6c,0xff,0x81,0x1,0xaf,0x2,0x62,0x3,0xb6,0x2,0x75,0x0, +0x6d,0xfe,0x7,0xfd,0x60,0xfb,0xfb,0xf9,0x40,0xf9,0xdb,0xf8, +0x36,0xf9,0x39,0xfa,0x39,0xfb,0x9c,0xfc,0x6c,0xfe,0x0,0x0, +0xc8,0x1,0xa,0x4,0xed,0x5,0x60,0x7,0xb2,0x8,0x62,0x9, +0x50,0x9,0xaf,0x8,0x21,0x7,0xf0,0x4,0xe8,0x2,0x91,0x0, +0x54,0xfd,0x60,0xfa,0xd5,0xf8,0x28,0xf8,0xf6,0xf7,0xc8,0xf8, +0x9e,0xfa,0x29,0xfd,0x67,0x0,0x99,0x3,0xcf,0x5,0x3a,0x7, +0x19,0x8,0xff,0x7,0xcc,0x6,0xbd,0x4,0x34,0x2,0xd9,0xff, +0xa,0xfe,0xb6,0xfc,0xda,0xfb,0x76,0xfb,0x96,0xfb,0x53,0xfc, +0x7c,0xfd,0xc4,0xfe,0xca,0xff,0x27,0x0,0x28,0x0,0x28,0x0, +0x78,0xff,0xde,0xfd,0x66,0xfc,0x86,0xfb,0xd3,0xfa,0x6d,0xfa, +0xc0,0xfa,0xaa,0xfb,0xbf,0xfc,0x10,0xfe,0xe0,0xff,0xb6,0x1, +0xf0,0x2,0xef,0x3,0xf5,0x4,0x57,0x5,0xea,0x4,0x28,0x4, +0x5,0x3,0x7a,0x1,0xfe,0xff,0xd3,0xfe,0x9,0xfe,0xba,0xfd, +0xf8,0xfd,0xce,0xfe,0xff,0xff,0x2f,0x1,0x7b,0x2,0xe6,0x3, +0xc6,0x4,0xd2,0x4,0xa4,0x4,0x7c,0x4,0xb1,0x3,0xec,0x1, +0xe5,0xff,0x5c,0xfe,0x31,0xfd,0x13,0xfc,0x69,0xfb,0xd2,0xfb, +0x39,0xfd,0xf9,0xfe,0xe3,0x0,0xfe,0x2,0x95,0x4,0x16,0x5, +0x2b,0x5,0x3d,0x5,0x91,0x4,0x18,0x3,0x93,0x1,0xb,0x0, +0x4b,0xfe,0xd5,0xfc,0xd9,0xfb,0x16,0xfb,0xe1,0xfa,0x8a,0xfb, +0xbd,0xfc,0x6a,0xfe,0x9b,0x0,0x91,0x2,0xdc,0x3,0xf4,0x4, +0xac,0x5,0x69,0x5,0x81,0x4,0x7a,0x3,0x62,0x2,0x4b,0x1, +0x26,0x0,0xa,0xff,0x8c,0xfe,0xa6,0xfe,0xce,0xfe,0x14,0xff, +0xa3,0xff,0x65,0x0,0x50,0x1,0xd7,0x1,0xc9,0x1,0xf2,0x1, +0x35,0x2,0x7a,0x1,0xd1,0xff,0xf8,0xfd,0x11,0xfc,0xfc,0xf9, +0xa3,0xf7,0x5a,0xf5,0xbb,0xf3,0xb2,0xf2,0x15,0xf2,0x60,0xf2, +0xf0,0xf3,0xf4,0xf6,0x79,0xfb,0xec,0x0,0xf0,0x6,0x43,0xd, +0x96,0x12,0xe3,0x15,0x4a,0x17,0xaf,0x16,0xc3,0x13,0x5d,0xe, +0x6f,0x6,0x90,0xfd,0x32,0xf6,0xa6,0xf0,0x8b,0xec,0x11,0xeb, +0x1b,0xed,0xe9,0xf1,0x7,0xf8,0x24,0xfe,0xa1,0x3,0xa,0x8, +0xb8,0xa,0xcd,0xb,0x9e,0xb,0xae,0x9,0x22,0x6,0x10,0x2, +0x24,0xfe,0xb3,0xfa,0x9,0xf8,0x66,0xf6,0x67,0xf6,0xa,0xf8, +0x62,0xfa,0x1d,0xfd,0xdf,0xff,0xba,0x1,0xe4,0x2,0x8b,0x3, +0x8c,0x2,0x20,0x0,0xe6,0xfd,0xf1,0xfb,0x2,0xfa,0x5,0xf9, +0xfb,0xf8,0x35,0xf9,0xa,0xfa,0x85,0xfb,0xf1,0xfc,0x3a,0xfe, +0x92,0xff,0xf7,0x0,0xbe,0x2,0xbe,0x4,0x11,0x6,0xcb,0x6, +0xad,0x7,0x3f,0x8,0xd0,0x7,0xda,0x6,0xbd,0x5,0x3b,0x4, +0x53,0x2,0x8,0x0,0x4b,0xfd,0xcd,0xfa,0x5f,0xf9,0xcb,0xf8, +0x9a,0xf8,0x23,0xf9,0xe4,0xfa,0xa0,0xfd,0xbd,0x0,0xc1,0x3, +0xb,0x6,0x4b,0x7,0xef,0x7,0x7,0x8,0xd,0x7,0x41,0x5, +0x34,0x3,0xdd,0x0,0x94,0xfe,0xf3,0xfc,0xb3,0xfb,0xa1,0xfa, +0x48,0xfa,0xde,0xfa,0x12,0xfc,0x7c,0xfd,0xa2,0xfe,0x66,0xff, +0xf4,0xff,0x1c,0x0,0xaa,0xff,0xd4,0xfe,0xce,0xfd,0xc4,0xfc, +0x1f,0xfc,0xf,0xfc,0x33,0xfc,0x68,0xfc,0x36,0xfd,0xc4,0xfe, +0x5a,0x0,0xa8,0x1,0xfe,0x2,0x24,0x4,0xa2,0x4,0x86,0x4, +0xfa,0x3,0x21,0x3,0x2e,0x2,0xd,0x1,0xdb,0xff,0x21,0xff, +0xe4,0xfe,0xc4,0xfe,0xe1,0xfe,0x96,0xff,0xc5,0x0,0xe,0x2, +0x30,0x3,0xfd,0x3,0x55,0x4,0x4e,0x4,0x26,0x4,0xe2,0x3, +0x3e,0x3,0xf9,0x1,0x4b,0x0,0xef,0xfe,0xe,0xfe,0x28,0xfd, +0x9f,0xfc,0x22,0xfd,0x27,0xfe,0x63,0xff,0x39,0x1,0xe7,0x2, +0xb1,0x3,0x1a,0x4,0x4,0x4,0x1f,0x3,0x40,0x2,0x81,0x1, +0x50,0x0,0x4e,0xff,0xd4,0xfe,0x41,0xfe,0xbb,0xfd,0x8e,0xfd, +0x68,0xfd,0xae,0xfd,0xc7,0xfe,0xd,0x0,0x43,0x1,0xbb,0x2, +0x2,0x4,0x97,0x4,0xb5,0x4,0x62,0x4,0x6f,0x3,0x4e,0x2, +0x51,0x1,0x39,0x0,0x4e,0xff,0x5,0xff,0xd7,0xfe,0x8a,0xfe, +0xd3,0xfe,0x94,0xff,0x28,0x0,0xe9,0x0,0xe2,0x1,0x54,0x2, +0x54,0x2,0x47,0x2,0xc3,0x1,0x7e,0x0,0xb5,0xfe,0xd1,0xfc, +0x39,0xfb,0xb7,0xf9,0xdc,0xf7,0x14,0xf6,0xda,0xf4,0x1,0xf4, +0x83,0xf3,0xce,0xf3,0x63,0xf5,0x7e,0xf8,0xbf,0xfc,0xc9,0x1, +0x88,0x7,0x3d,0xd,0xc8,0x11,0xbb,0x14,0xf3,0x15,0x34,0x15, +0x54,0x12,0xe2,0xc,0xf,0x5,0xc3,0xfc,0xec,0xf5,0xd1,0xf0, +0x77,0xed,0xd5,0xec,0x72,0xef,0x63,0xf4,0x1d,0xfa,0xa5,0xff, +0x95,0x4,0x8b,0x8,0xe5,0xa,0x5a,0xb,0x60,0xa,0x56,0x8, +0x11,0x5,0xf1,0x0,0x2b,0xfd,0x66,0xfa,0x55,0xf8,0xf7,0xf6, +0xfc,0xf6,0xa6,0xf8,0x3d,0xfb,0xee,0xfd,0x5d,0x0,0x2a,0x2, +0xee,0x2,0xab,0x2,0x6e,0x1,0x4f,0xff,0xff,0xfc,0x2b,0xfb, +0xd9,0xf9,0xfb,0xf8,0xcd,0xf8,0x7c,0xf9,0xf9,0xfa,0xe8,0xfc, +0xe9,0xfe,0xc0,0x0,0x29,0x2,0x3f,0x3,0x5e,0x4,0x2f,0x5, +0x78,0x5,0xd8,0x5,0x4b,0x6,0x20,0x6,0x92,0x5,0xb,0x5, +0x46,0x4,0x4c,0x3,0x34,0x2,0x97,0x0,0x78,0xfe,0x88,0xfc, +0x53,0xfb,0xca,0xfa,0x6b,0xfa,0x78,0xfa,0xe9,0xfb,0x61,0xfe, +0xad,0x0,0xe7,0x2,0x36,0x5,0x95,0x6,0xe5,0x6,0xeb,0x6, +0x59,0x6,0xc1,0x4,0xc9,0x2,0xd8,0x0,0xe0,0xfe,0x37,0xfd, +0xe5,0xfb,0x9d,0xfa,0xcd,0xf9,0xe,0xfa,0x16,0xfb,0x37,0xfc, +0x1c,0xfd,0xe3,0xfd,0xbd,0xfe,0x52,0xff,0x44,0xff,0xf0,0xfe, +0x9d,0xfe,0xe,0xfe,0x6b,0xfd,0x13,0xfd,0xc,0xfd,0x74,0xfd, +0x51,0xfe,0x60,0xff,0x8b,0x0,0xaf,0x1,0x8b,0x2,0x43,0x3, +0xcd,0x3,0xca,0x3,0x65,0x3,0xe1,0x2,0xff,0x1,0xd4,0x0, +0xf2,0xff,0x9d,0xff,0xad,0xff,0xdb,0xff,0x23,0x0,0xab,0x0, +0x42,0x1,0xd5,0x1,0x71,0x2,0x9c,0x2,0x57,0x2,0x75,0x2, +0xc7,0x2,0xac,0x2,0x6d,0x2,0xf8,0x1,0xf7,0x0,0xb,0x0, +0x8c,0xff,0x7,0xff,0xa4,0xfe,0xc1,0xfe,0x48,0xff,0x1c,0x0, +0xf2,0x0,0x84,0x1,0xe8,0x1,0xe3,0x1,0x67,0x1,0xf6,0x0, +0x73,0x0,0x93,0xff,0xf8,0xfe,0xea,0xfe,0xf2,0xfe,0x12,0xff, +0x6f,0xff,0xb8,0xff,0xe5,0xff,0x37,0x0,0xad,0x0,0x27,0x1, +0xc4,0x1,0x9e,0x2,0x4d,0x3,0x58,0x3,0x5,0x3,0x9e,0x2, +0xfc,0x1,0x3f,0x1,0xa6,0x0,0x28,0x0,0xe6,0xff,0xd4,0xff, +0x93,0xff,0x4e,0xff,0x75,0xff,0xf2,0xff,0x80,0x0,0xf6,0x0, +0x4e,0x1,0x88,0x1,0x64,0x1,0xc,0x1,0xc9,0x0,0xdc,0xff, +0xf6,0xfd,0x5b,0xfc,0x3d,0xfb,0x9a,0xf9,0xe0,0xf7,0xd0,0xf6, +0x7,0xf6,0x87,0xf5,0x9e,0xf5,0x1e,0xf6,0x52,0xf7,0xb6,0xf9, +0x4f,0xfd,0x16,0x2,0x63,0x7,0x24,0xc,0x10,0x10,0xaa,0x12, +0x1a,0x13,0xd8,0x11,0x40,0xf,0x47,0xa,0x56,0x3,0xa9,0xfc, +0x26,0xf7,0x8f,0xf2,0x9c,0xef,0x76,0xef,0x4d,0xf2,0x3,0xf7, +0xfa,0xfb,0x99,0x0,0xf2,0x4,0x30,0x8,0x61,0x9,0x14,0x9, +0x23,0x8,0x33,0x6,0xf8,0x2,0x81,0xff,0xcd,0xfc,0xaa,0xfa, +0xf7,0xf8,0x58,0xf8,0x9,0xf9,0x9f,0xfa,0xa6,0xfc,0x9f,0xfe, +0x1d,0x0,0x27,0x1,0xa9,0x1,0x44,0x1,0x2,0x0,0x53,0xfe, +0x8e,0xfc,0xf3,0xfa,0xbc,0xf9,0x24,0xf9,0x65,0xf9,0x6a,0xfa, +0xd3,0xfb,0x74,0xfd,0x37,0xff,0xcc,0x0,0xf,0x2,0x43,0x3, +0x70,0x4,0x2a,0x5,0x62,0x5,0xa6,0x5,0x9,0x6,0x2,0x6, +0xa0,0x5,0x60,0x5,0x31,0x5,0xaa,0x4,0x81,0x3,0x99,0x1, +0x56,0xff,0x45,0xfd,0xa3,0xfb,0xa8,0xfa,0x4d,0xfa,0x74,0xfa, +0xb6,0xfb,0x15,0xfe,0x52,0x0,0x42,0x2,0x8c,0x4,0x4a,0x6, +0xce,0x6,0x0,0x7,0xcb,0x6,0x48,0x5,0xfc,0x2,0xd6,0x0, +0xf9,0xfe,0x44,0xfd,0x95,0xfb,0x56,0xfa,0x25,0xfa,0x86,0xfa, +0xf2,0xfa,0xcf,0xfb,0xd8,0xfc,0x8a,0xfd,0x5b,0xfe,0x2a,0xff, +0x2b,0xff,0xc9,0xfe,0xa4,0xfe,0x5c,0xfe,0xc0,0xfd,0x37,0xfd, +0x1d,0xfd,0x75,0xfd,0xf1,0xfd,0x9b,0xfe,0xc2,0xff,0x3,0x1, +0xe9,0x1,0xbb,0x2,0x70,0x3,0x8a,0x3,0x37,0x3,0xef,0x2, +0xb4,0x2,0x53,0x2,0xc9,0x1,0x5f,0x1,0x49,0x1,0x37,0x1, +0x2,0x1,0xfb,0x0,0x28,0x1,0x41,0x1,0x36,0x1,0x4,0x1, +0xc8,0x0,0xca,0x0,0x13,0x1,0x67,0x1,0x8f,0x1,0x75,0x1, +0x4a,0x1,0x14,0x1,0xb0,0x0,0x57,0x0,0x1b,0x0,0xbb,0xff, +0xb3,0xff,0x64,0x0,0xf0,0x0,0xff,0x0,0x37,0x1,0x5a,0x1, +0x2,0x1,0x9e,0x0,0x8,0x0,0x1e,0xff,0xd9,0xfe,0x36,0xff, +0x42,0xff,0x4d,0xff,0x9e,0xff,0x9b,0xff,0xb9,0xff,0x7b,0x0, +0x3,0x1,0x4c,0x1,0x11,0x2,0xa4,0x2,0x9b,0x2,0xc6,0x2, +0xed,0x2,0x81,0x2,0x3e,0x2,0x67,0x2,0x41,0x2,0xce,0x1, +0x81,0x1,0x52,0x1,0x12,0x1,0x8b,0x0,0xf0,0xff,0xdc,0xff, +0x29,0x0,0x3e,0x0,0x5f,0x0,0xcc,0x0,0xd,0x1,0xfd,0x0, +0xb5,0x0,0xf5,0xff,0xc1,0xfe,0x64,0xfd,0xd7,0xfb,0x27,0xfa, +0x93,0xf8,0x22,0xf7,0xea,0xf5,0x6c,0xf5,0xd8,0xf5,0xbe,0xf6, +0x10,0xf8,0x9e,0xfa,0xb1,0xfe,0x68,0x3,0x11,0x8,0x73,0xc, +0xde,0xf,0xac,0x11,0xe6,0x11,0x9a,0x10,0x8e,0xd,0xa0,0x8, +0x47,0x2,0xc8,0xfb,0x43,0xf6,0x6,0xf2,0xae,0xef,0x25,0xf0, +0x33,0xf3,0xb0,0xf7,0x82,0xfc,0xdd,0x0,0x84,0x4,0x51,0x7, +0xc7,0x8,0xdd,0x8,0xd6,0x7,0xa5,0x5,0xa7,0x2,0x8b,0xff, +0xa9,0xfc,0x8a,0xfa,0x7d,0xf9,0x2c,0xf9,0xd6,0xf9,0x81,0xfb, +0xc,0xfd,0x2c,0xfe,0x56,0xff,0xff,0xff,0xfd,0xff,0xa0,0xff, +0x55,0xfe,0x84,0xfc,0x69,0xfb,0x7e,0xfa,0x7f,0xf9,0x8d,0xf9, +0x3c,0xfa,0xcb,0xfa,0x15,0xfc,0xe1,0xfd,0x21,0xff,0x53,0x0, +0xc9,0x1,0xd1,0x2,0x7c,0x3,0xc,0x4,0x63,0x4,0xbf,0x4, +0x2b,0x5,0x5b,0x5,0x48,0x5,0xe8,0x4,0x58,0x4,0xc3,0x3, +0xbb,0x2,0x11,0x1,0x39,0xff,0x5a,0xfd,0xae,0xfb,0x94,0xfa, +0xde,0xf9,0xdc,0xf9,0x1e,0xfb,0x7,0xfd,0x29,0xff,0xb7,0x1, +0xe6,0x3,0x31,0x5,0x3f,0x6,0xbf,0x6,0xfe,0x5,0x7d,0x4, +0x95,0x2,0x54,0x0,0x3a,0xfe,0x4a,0xfc,0x91,0xfa,0xdc,0xf9, +0x18,0xfa,0xb1,0xfa,0xd0,0xfb,0x15,0xfd,0xcd,0xfd,0x6c,0xfe, +0x12,0xff,0x2,0xff,0x6e,0xfe,0xf4,0xfd,0x60,0xfd,0x9d,0xfc, +0xff,0xfb,0xaf,0xfb,0xd8,0xfb,0x90,0xfc,0xa7,0xfd,0xf0,0xfe, +0x39,0x0,0x64,0x1,0x80,0x2,0x5e,0x3,0xc0,0x3,0xcb,0x3, +0x86,0x3,0xe5,0x2,0x4c,0x2,0xe5,0x1,0x61,0x1,0xcf,0x0, +0x91,0x0,0xab,0x0,0xdf,0x0,0xf4,0x0,0xf3,0x0,0x34,0x1, +0xc2,0x1,0x2f,0x2,0x44,0x2,0x32,0x2,0x1d,0x2,0xe1,0x1, +0x47,0x1,0x76,0x0,0xd1,0xff,0x53,0xff,0xbc,0xfe,0x2e,0xfe, +0xa,0xfe,0x83,0xfe,0x7a,0xff,0x90,0x0,0x8e,0x1,0x75,0x2, +0x13,0x3,0x4a,0x3,0x40,0x3,0xc2,0x2,0x86,0x1,0xfe,0xff, +0xc8,0xfe,0xf6,0xfd,0x72,0xfd,0x2c,0xfd,0x12,0xfd,0x4c,0xfd, +0xfa,0xfd,0xe2,0xfe,0xcc,0xff,0xc0,0x0,0xbd,0x1,0xaf,0x2, +0x7b,0x3,0xf1,0x3,0xf2,0x3,0x85,0x3,0xed,0x2,0x87,0x2, +0x38,0x2,0x87,0x1,0xb7,0x0,0x78,0x0,0x75,0x0,0x4,0x0, +0x8f,0xff,0x97,0xff,0xd4,0xff,0x37,0x0,0xdb,0x0,0x40,0x1, +0x3e,0x1,0x43,0x1,0xfd,0x0,0xd1,0xff,0x35,0xfe,0xb6,0xfc, +0x9,0xfb,0x22,0xf9,0x87,0xf7,0x38,0xf6,0xed,0xf4,0x31,0xf4, +0x90,0xf4,0xa9,0xf5,0x79,0xf7,0xde,0xfa,0xb3,0xff,0xcd,0x4, +0xcc,0x9,0x86,0xe,0xe9,0x11,0x4c,0x13,0x23,0x13,0x9e,0x11, +0x1a,0xe,0x3a,0x8,0xd8,0x0,0xa0,0xf9,0xca,0xf3,0xb3,0xef, +0xbe,0xed,0xa3,0xee,0x54,0xf2,0x6a,0xf7,0x70,0xfc,0xa,0x1, +0xd,0x5,0xe2,0x7,0x6f,0x9,0xe8,0x9,0xa,0x9,0xed,0x6, +0x1f,0x4,0x1,0x1,0x2f,0xfe,0x13,0xfc,0x91,0xfa,0x31,0xfa, +0x32,0xfb,0x71,0xfc,0x9e,0xfd,0x20,0xff,0xea,0xff,0xaf,0xff, +0x8b,0xff,0xe3,0xfe,0xfe,0xfc,0x4f,0xfb,0x6d,0xfa,0xa2,0xf9, +0x76,0xf9,0x47,0xfa,0x6c,0xfb,0xf3,0xfc,0xe2,0xfe,0x8e,0x0, +0xe0,0x1,0xe1,0x2,0x6c,0x3,0x2,0x4,0xc4,0x4,0xf6,0x4, +0x99,0x4,0x6b,0x4,0x80,0x4,0x5c,0x4,0xd6,0x3,0x51,0x3, +0x18,0x3,0xde,0x2,0x3c,0x2,0xc,0x1,0x6b,0xff,0xc6,0xfd, +0x5f,0xfc,0x56,0xfb,0x16,0xfb,0x90,0xfb,0x66,0xfc,0xfa,0xfd, +0x2d,0x0,0xf4,0x1,0x61,0x3,0xe3,0x4,0xc2,0x5,0xd6,0x5, +0x94,0x5,0x62,0x4,0x30,0x2,0x29,0x0,0x90,0xfe,0x10,0xfd, +0x22,0xfc,0x9,0xfc,0x56,0xfc,0xde,0xfc,0xbd,0xfd,0xb7,0xfe, +0x37,0xff,0x20,0xff,0xe6,0xfe,0x89,0xfe,0xc5,0xfd,0xf3,0xfc, +0x4c,0xfc,0xcb,0xfb,0xdd,0xfb,0x88,0xfc,0x48,0xfd,0x4a,0xfe, +0xdc,0xff,0x6f,0x1,0x96,0x2,0x79,0x3,0x34,0x4,0x9a,0x4, +0x5f,0x4,0xaf,0x3,0x19,0x3,0x95,0x2,0xdd,0x1,0x25,0x1, +0x78,0x0,0xc6,0xff,0x7d,0xff,0xc5,0xff,0x33,0x0,0xa0,0x0, +0x3d,0x1,0x24,0x2,0x20,0x3,0xd3,0x3,0x3e,0x4,0x7e,0x4, +0x50,0x4,0xa0,0x3,0x86,0x2,0x16,0x1,0xbe,0xff,0x9a,0xfe, +0x48,0xfd,0x57,0xfc,0x7e,0xfc,0x2c,0xfd,0x15,0xfe,0xa8,0xff, +0x75,0x1,0xe9,0x2,0x22,0x4,0xeb,0x4,0xdf,0x4,0x15,0x4, +0xbc,0x2,0x18,0x1,0x87,0xff,0x4a,0xfe,0x96,0xfd,0x40,0xfd, +0xf5,0xfc,0xd,0xfd,0xd2,0xfd,0xe1,0xfe,0x7,0x0,0x3b,0x1, +0x67,0x2,0xa7,0x3,0x9e,0x4,0xb0,0x4,0x22,0x4,0x5b,0x3, +0x73,0x2,0xc7,0x1,0x29,0x1,0x3b,0x0,0xc2,0xff,0xd,0x0, +0x29,0x0,0xb,0x0,0x58,0x0,0xe8,0x0,0x99,0x1,0x69,0x2, +0xcb,0x2,0x9b,0x2,0x31,0x2,0x62,0x1,0xf8,0xff,0x3f,0xfe, +0x8b,0xfc,0xdc,0xfa,0x35,0xf9,0xca,0xf7,0xa2,0xf6,0x80,0xf5, +0x8d,0xf4,0x4c,0xf4,0xdd,0xf4,0x3f,0xf6,0x9b,0xf8,0x16,0xfc, +0xc4,0x0,0x47,0x6,0xc2,0xb,0x82,0x10,0xc1,0x13,0xdd,0x14, +0x69,0x14,0xb2,0x12,0x6c,0xe,0x46,0x7,0x28,0xff,0xe2,0xf7, +0x34,0xf2,0x6c,0xee,0xf5,0xec,0x97,0xee,0x5,0xf3,0x29,0xf8, +0xc7,0xfc,0x2f,0x1,0xf5,0x4,0x54,0x7,0xb5,0x8,0x61,0x9, +0xc8,0x8,0xe0,0x6,0x4c,0x4,0x82,0x1,0xdf,0xfe,0xe6,0xfc, +0xbc,0xfb,0x26,0xfb,0x48,0xfb,0x48,0xfc,0x70,0xfd,0x2,0xfe, +0x1d,0xfe,0x8,0xfe,0xa8,0xfd,0xb6,0xfc,0x21,0xfb,0x99,0xf9, +0xee,0xf8,0x9,0xf9,0x9b,0xf9,0xbe,0xfa,0x6a,0xfc,0x72,0xfe, +0x6f,0x0,0xb9,0x1,0x6c,0x2,0x27,0x3,0xce,0x3,0x3e,0x4, +0xbe,0x4,0xf0,0x4,0x93,0x4,0x5b,0x4,0x7a,0x4,0x57,0x4, +0xd7,0x3,0x5e,0x3,0x4,0x3,0x7d,0x2,0x70,0x1,0xcf,0xff, +0xe1,0xfd,0x26,0xfc,0x11,0xfb,0x95,0xfa,0x98,0xfa,0x66,0xfb, +0xdf,0xfc,0xa2,0xfe,0xe3,0x0,0x42,0x3,0x9e,0x4,0x27,0x5, +0xa1,0x5,0x87,0x5,0x69,0x4,0xdc,0x2,0x2f,0x1,0x77,0xff, +0x22,0xfe,0x4c,0xfd,0xb1,0xfc,0x49,0xfc,0x4d,0xfc,0x5,0xfd, +0x23,0xfe,0xae,0xfe,0x5d,0xfe,0xec,0xfd,0xa3,0xfd,0x24,0xfd, +0xa9,0xfc,0xa4,0xfc,0xc1,0xfc,0xdc,0xfc,0x90,0xfd,0xae,0xfe, +0x82,0xff,0x68,0x0,0xb5,0x1,0x9b,0x2,0xe9,0x2,0x51,0x3, +0xa1,0x3,0x6e,0x3,0x23,0x3,0xf5,0x2,0xb1,0x2,0x56,0x2, +0xbf,0x1,0xfc,0x0,0x83,0x0,0x34,0x0,0xb4,0xff,0x61,0xff, +0x5a,0xff,0x4b,0xff,0x97,0xff,0x97,0x0,0xba,0x1,0xbf,0x2, +0xc9,0x3,0x60,0x4,0x50,0x4,0x1a,0x4,0xa2,0x3,0xa2,0x2, +0x8a,0x1,0x54,0x0,0xa9,0xfe,0x39,0xfd,0x8c,0xfc,0x37,0xfc, +0x66,0xfc,0x8c,0xfd,0x19,0xff,0x75,0x0,0xb6,0x1,0xb9,0x2, +0x31,0x3,0x1b,0x3,0x92,0x2,0xd5,0x1,0x23,0x1,0x7c,0x0, +0xdb,0xff,0x46,0xff,0xc0,0xfe,0x7e,0xfe,0xba,0xfe,0x6a,0xff, +0x64,0x0,0x73,0x1,0x8e,0x2,0xa3,0x3,0x38,0x4,0x7,0x4, +0x72,0x3,0xbf,0x2,0x1,0x2,0x4f,0x1,0x76,0x0,0x91,0xff, +0x38,0xff,0x43,0xff,0x36,0xff,0x64,0xff,0xc,0x0,0xe5,0x0, +0xde,0x1,0xca,0x2,0x4f,0x3,0x68,0x3,0xfa,0x2,0xd3,0x1, +0x20,0x0,0xe,0xfe,0xe5,0xfb,0x1,0xfa,0x4f,0xf8,0xdb,0xf6, +0xda,0xf5,0xdd,0xf4,0xf9,0xf3,0x40,0xf4,0x91,0xf5,0x18,0xf7, +0x86,0xf9,0x97,0xfd,0x97,0x2,0x1,0x8,0x95,0xd,0x4,0x12, +0x3a,0x14,0xb9,0x14,0x18,0x14,0x8b,0x11,0x25,0xc,0xa8,0x4, +0x7,0xfd,0x8d,0xf6,0x80,0xf1,0x61,0xee,0x31,0xee,0xfd,0xf0, +0x7d,0xf5,0x6f,0xfa,0xe,0xff,0xc5,0x2,0x87,0x5,0x86,0x7, +0x94,0x8,0xd0,0x8,0x5a,0x8,0x90,0x6,0xa6,0x3,0x11,0x1, +0x11,0xff,0xf3,0xfc,0x29,0xfb,0x5c,0xfa,0x6f,0xfa,0x3b,0xfb, +0x3f,0xfc,0xad,0xfc,0xbb,0xfc,0xfd,0xfc,0xf1,0xfc,0xf5,0xfb, +0xb9,0xfa,0x35,0xfa,0x4d,0xfa,0x96,0xfa,0x3c,0xfb,0x44,0xfc, +0x8b,0xfd,0x17,0xff,0x60,0x0,0xf3,0x0,0x84,0x1,0x54,0x2, +0xe1,0x2,0x7d,0x3,0x5a,0x4,0xe2,0x4,0x4b,0x5,0xd6,0x5, +0x4,0x6,0xf1,0x5,0xa3,0x5,0xa4,0x4,0x85,0x3,0x9b,0x2, +0xff,0x0,0xc2,0xfe,0xae,0xfc,0xee,0xfa,0xf3,0xf9,0xdd,0xf9, +0x35,0xfa,0x6c,0xfb,0xba,0xfd,0x50,0x0,0xf4,0x2,0x23,0x5, +0xde,0x5,0xe2,0x5,0xe2,0x5,0xed,0x4,0x11,0x3,0x2a,0x1, +0x28,0xff,0x6f,0xfd,0x63,0xfc,0x65,0xfb,0xad,0xfa,0xc6,0xfa, +0x35,0xfb,0xc,0xfc,0x48,0xfd,0xba,0xfd,0x59,0xfd,0x27,0xfd, +0x7,0xfd,0xc9,0xfc,0xc6,0xfc,0xe5,0xfc,0x46,0xfd,0x3a,0xfe, +0x47,0xff,0x1d,0x0,0xf2,0x0,0x90,0x1,0xd8,0x1,0x3b,0x2, +0xbb,0x2,0xd7,0x2,0x95,0x2,0x85,0x2,0x90,0x2,0x39,0x2, +0xe6,0x1,0x0,0x2,0xdb,0x1,0x70,0x1,0x62,0x1,0x13,0x1, +0x13,0x0,0x5c,0xff,0x26,0xff,0xec,0xfe,0x2e,0xff,0x29,0x0, +0x37,0x1,0x24,0x2,0xec,0x2,0x67,0x3,0xdf,0x3,0x53,0x4, +0x31,0x4,0x8e,0x3,0xcf,0x2,0xac,0x1,0x2,0x0,0x5a,0xfe, +0x27,0xfd,0x89,0xfc,0x90,0xfc,0xa,0xfd,0xbf,0xfd,0xbd,0xfe, +0xda,0xff,0xca,0x0,0xad,0x1,0x6e,0x2,0xa0,0x2,0x7b,0x2, +0x4d,0x2,0xae,0x1,0xc8,0x0,0x40,0x0,0xbf,0xff,0xf,0xff, +0xf5,0xfe,0x97,0xff,0x4f,0x0,0x5,0x1,0x1,0x2,0x25,0x3, +0xdf,0x3,0xc7,0x3,0x35,0x3,0x90,0x2,0xc7,0x1,0xfb,0x0, +0x31,0x0,0x20,0xff,0x3b,0xfe,0xed,0xfd,0x9a,0xfd,0x67,0xfd, +0x35,0xfe,0x8b,0xff,0x9d,0x0,0xb2,0x1,0xb9,0x2,0x26,0x3, +0x5,0x3,0x67,0x2,0xfe,0x0,0xe2,0xfe,0x97,0xfc,0x64,0xfa, +0x48,0xf8,0x5a,0xf6,0xd9,0xf4,0xd1,0xf3,0x51,0xf3,0xa5,0xf3, +0xe9,0xf4,0x10,0xf7,0x62,0xfa,0x1b,0xff,0xd4,0x4,0xa0,0xa, +0x7e,0xf,0xd0,0x12,0x40,0x14,0xc6,0x13,0xe0,0x11,0x4e,0xe, +0x3,0x8,0x17,0x0,0x45,0xf9,0x13,0xf4,0xfa,0xef,0x49,0xee, +0xef,0xef,0xc9,0xf3,0x9c,0xf8,0x96,0xfd,0xc1,0x1,0xbd,0x4, +0xc0,0x6,0xf5,0x7,0x81,0x8,0x4d,0x8,0xfc,0x6,0x97,0x4, +0xd1,0x1,0x59,0xff,0x20,0xfd,0xf4,0xfa,0x6d,0xf9,0x16,0xf9, +0xae,0xf9,0xdd,0xfa,0x10,0xfc,0x98,0xfc,0xef,0xfc,0xa5,0xfd, +0xe0,0xfd,0x3c,0xfd,0xa9,0xfc,0x7b,0xfc,0x54,0xfc,0x36,0xfc, +0x5b,0xfc,0xee,0xfc,0xcc,0xfd,0x87,0xfe,0x23,0xff,0xaf,0xff, +0xf0,0xff,0x5d,0x0,0x72,0x1,0x9e,0x2,0xa8,0x3,0xe0,0x4, +0xf9,0x5,0xb4,0x6,0x3c,0x7,0x43,0x7,0xa5,0x6,0xad,0x5, +0x5a,0x4,0xad,0x2,0xaf,0x0,0x2a,0xfe,0xc5,0xfb,0x75,0xfa, +0xca,0xf9,0x57,0xf9,0xdb,0xf9,0xae,0xfb,0x5c,0xfe,0x49,0x1, +0xa9,0x3,0x2a,0x5,0x4,0x6,0x4,0x6,0x3b,0x5,0x2e,0x4, +0x87,0x2,0x38,0x0,0x5a,0xfe,0x14,0xfd,0xb2,0xfb,0xab,0xfa, +0x7d,0xfa,0x9e,0xfa,0x17,0xfb,0x2e,0xfc,0x21,0xfd,0x60,0xfd, +0x4f,0xfd,0x3b,0xfd,0x1c,0xfd,0xd9,0xfc,0x7a,0xfc,0x7f,0xfc, +0x49,0xfd,0x68,0xfe,0x51,0xff,0xf2,0xff,0x6b,0x0,0xfa,0x0, +0xb6,0x1,0x57,0x2,0xbf,0x2,0x1,0x3,0xf9,0x2,0x9f,0x2, +0x2f,0x2,0xc3,0x1,0x59,0x1,0xf7,0x0,0xa2,0x0,0x47,0x0, +0xd3,0xff,0x87,0xff,0xa3,0xff,0xbf,0xff,0xc5,0xff,0x6f,0x0, +0x7e,0x1,0x9,0x2,0x6e,0x2,0x1b,0x3,0x68,0x3,0x54,0x3, +0x58,0x3,0x4,0x3,0x19,0x2,0x23,0x1,0x84,0x0,0x1c,0x0, +0x66,0xff,0x5c,0xfe,0xf9,0xfd,0x51,0xfe,0x69,0xfe,0xa0,0xfe, +0x9f,0xff,0x8c,0x0,0xfe,0x0,0x6d,0x1,0xb1,0x1,0xaf,0x1, +0x97,0x1,0x16,0x1,0x71,0x0,0x2f,0x0,0xc3,0xff,0x3,0xff, +0xc0,0xfe,0xff,0xfe,0x7f,0xff,0x72,0x0,0x6f,0x1,0x25,0x2, +0x1f,0x3,0x2a,0x4,0x64,0x4,0xd0,0x3,0xf3,0x2,0x26,0x2, +0x84,0x1,0x8e,0x0,0x1e,0xff,0x22,0xfe,0xbb,0xfd,0x13,0xfd, +0xa3,0xfc,0x47,0xfd,0x52,0xfe,0x3c,0xff,0x77,0x0,0xb8,0x1, +0x7c,0x2,0x1b,0x3,0x74,0x3,0xee,0x2,0xb4,0x1,0x14,0x0, +0xfe,0xfd,0xb0,0xfb,0x72,0xf9,0x56,0xf7,0x8c,0xf5,0x19,0xf4, +0x21,0xf3,0x45,0xf3,0xc9,0xf4,0x8e,0xf7,0xbd,0xfb,0x34,0x1, +0x17,0x7,0x92,0xc,0xff,0x10,0xb0,0x13,0x64,0x14,0x62,0x13, +0x99,0x10,0x44,0xb,0x9d,0x3,0xec,0xfb,0x1,0xf6,0x99,0xf1, +0xcf,0xee,0xf2,0xee,0x12,0xf2,0xd1,0xf6,0xfd,0xfb,0xb7,0x0, +0x62,0x4,0xd8,0x6,0x35,0x8,0xc3,0x8,0x8a,0x8,0x1f,0x7, +0x82,0x4,0x68,0x1,0x87,0xfe,0x40,0xfc,0x6a,0xfa,0xdd,0xf8, +0x4f,0xf8,0x2c,0xf9,0xac,0xfa,0x3d,0xfc,0xbc,0xfd,0xa4,0xfe, +0x13,0xff,0x99,0xff,0x7b,0xff,0x2d,0xfe,0xe0,0xfc,0x34,0xfc, +0x83,0xfb,0xf0,0xfa,0x12,0xfb,0xa5,0xfb,0x7c,0xfc,0xaa,0xfd, +0xb1,0xfe,0x5c,0xff,0x28,0x0,0x41,0x1,0x7e,0x2,0xa1,0x3, +0x55,0x4,0xd8,0x4,0x8d,0x5,0xf2,0x5,0xb7,0x5,0x61,0x5, +0xe9,0x4,0x7,0x4,0xf,0x3,0xee,0x1,0x31,0x0,0x40,0xfe, +0xce,0xfc,0xf1,0xfb,0x6c,0xfb,0x28,0xfb,0x8d,0xfb,0xf7,0xfc, +0xfc,0xfe,0xe,0x1,0xd3,0x2,0xb,0x4,0xe0,0x4,0x4a,0x5, +0xc4,0x4,0x91,0x3,0x4a,0x2,0xad,0x0,0xf6,0xfe,0xe3,0xfd, +0x18,0xfd,0x29,0xfc,0xae,0xfb,0xf5,0xfb,0xb4,0xfc,0x5f,0xfd, +0x70,0xfd,0x63,0xfd,0xbf,0xfd,0xa8,0xfd,0xd4,0xfc,0x34,0xfc, +0xcb,0xfb,0x5b,0xfb,0xb2,0xfb,0xc4,0xfc,0x87,0xfd,0x35,0xfe, +0x96,0xff,0x2d,0x1,0x43,0x2,0x32,0x3,0x49,0x4,0xf5,0x4, +0xd8,0x4,0x4e,0x4,0x6f,0x3,0xf4,0x1,0x28,0x0,0xa7,0xfe, +0x8e,0xfd,0xd5,0xfc,0xb4,0xfc,0x39,0xfd,0x1f,0xfe,0x36,0xff, +0x9a,0x0,0x46,0x2,0xcf,0x3,0xd8,0x4,0x6a,0x5,0x86,0x5, +0xf4,0x4,0xc9,0x3,0x7a,0x2,0x1b,0x1,0x8c,0xff,0x50,0xfe, +0xfa,0xfd,0x33,0xfe,0x69,0xfe,0xb0,0xfe,0x71,0xff,0xa1,0x0, +0x95,0x1,0xfd,0x1,0x6e,0x2,0xdb,0x2,0x6e,0x2,0x7f,0x1, +0xdd,0x0,0x18,0x0,0x12,0xff,0x85,0xfe,0x4d,0xfe,0x14,0xfe, +0x2a,0xfe,0x7a,0xfe,0x9,0xff,0x55,0x0,0xdc,0x1,0xd5,0x2, +0xb2,0x3,0xc6,0x4,0x66,0x5,0x3f,0x5,0x80,0x4,0x53,0x3, +0x23,0x2,0x4c,0x1,0x68,0x0,0x29,0xff,0x3b,0xfe,0xff,0xfd, +0xcc,0xfd,0x88,0xfd,0xd9,0xfd,0xa1,0xfe,0x76,0xff,0x80,0x0, +0x90,0x1,0x59,0x2,0xeb,0x2,0xe8,0x2,0x37,0x2,0xa0,0x1, +0xa,0x1,0xb2,0xff,0xeb,0xfd,0x1b,0xfc,0xfa,0xf9,0xc3,0xf7, +0xf7,0xf5,0xa1,0xf4,0xef,0xf3,0x49,0xf4,0xe9,0xf5,0xec,0xf8, +0x34,0xfd,0x8d,0x2,0x82,0x8,0xec,0xd,0xc5,0x11,0xf5,0x13, +0x83,0x14,0x1,0x13,0xf7,0xe,0x72,0x8,0xad,0x0,0x99,0xf9, +0x36,0xf4,0x80,0xf0,0xdc,0xee,0x2f,0xf0,0x59,0xf4,0xb3,0xf9, +0xa6,0xfe,0xd8,0x2,0x18,0x6,0xdd,0x7,0x6d,0x8,0x6d,0x8, +0x89,0x7,0x53,0x5,0x57,0x2,0x64,0xff,0xed,0xfc,0x1c,0xfb, +0xdf,0xf9,0x51,0xf9,0xce,0xf9,0x49,0xfb,0xd,0xfd,0x69,0xfe, +0x55,0xff,0x1e,0x0,0x81,0x0,0xe0,0xff,0x5e,0xfe,0xa4,0xfc, +0xf,0xfb,0xfb,0xf9,0xab,0xf9,0xd1,0xf9,0x41,0xfa,0x4b,0xfb, +0xc8,0xfc,0x39,0xfe,0x70,0xff,0x71,0x0,0x8f,0x1,0x14,0x3, +0x5c,0x4,0xd5,0x4,0x6,0x5,0x55,0x5,0x82,0x5,0x73,0x5, +0x9,0x5,0x40,0x4,0x7f,0x3,0xca,0x2,0xce,0x1,0x9d,0x0, +0xc,0xff,0x2e,0xfd,0x1e,0xfc,0xd,0xfc,0xd4,0xfb,0x85,0xfb, +0x2d,0xfc,0xcc,0xfd,0xd6,0xff,0xcf,0x1,0x4c,0x3,0x7f,0x4, +0x7f,0x5,0x8b,0x5,0x8e,0x4,0x3e,0x3,0xc3,0x1,0x37,0x0, +0x4,0xff,0x8,0xfe,0x23,0xfd,0xcd,0xfc,0xf,0xfd,0x77,0xfd, +0xec,0xfd,0x48,0xfe,0x32,0xfe,0xfb,0xfd,0x15,0xfe,0xe3,0xfd, +0xcd,0xfc,0xa3,0xfb,0x38,0xfb,0x2d,0xfb,0x5b,0xfb,0x42,0xfc, +0x89,0xfd,0xab,0xfe,0x46,0x0,0x69,0x2,0x5,0x4,0xe,0x5, +0x1f,0x6,0xac,0x6,0x34,0x6,0x49,0x5,0xff,0x3,0x10,0x2, +0x1d,0x0,0xbc,0xfe,0xab,0xfd,0xd8,0xfc,0xa4,0xfc,0x2e,0xfd, +0x4a,0xfe,0xac,0xff,0x11,0x1,0x8f,0x2,0x3c,0x4,0x92,0x5, +0x0,0x6,0xa6,0x5,0xe3,0x4,0xd9,0x3,0xa5,0x2,0x58,0x1, +0xd2,0xff,0x86,0xfe,0x47,0xfe,0xc6,0xfe,0x21,0xff,0xab,0xff, +0xec,0x0,0x29,0x2,0xab,0x2,0xba,0x2,0xce,0x2,0xdc,0x2, +0x5e,0x2,0x20,0x1,0xed,0xff,0x4a,0xff,0xb2,0xfe,0x10,0xfe, +0xfd,0xfd,0x43,0xfe,0x70,0xfe,0xf6,0xfe,0x25,0x0,0x78,0x1, +0xa6,0x2,0xd5,0x3,0xe0,0x4,0x86,0x5,0xab,0x5,0x26,0x5, +0xc,0x4,0xd2,0x2,0x9e,0x1,0x81,0x0,0xb5,0xff,0xff,0xfe, +0x39,0xfe,0xf3,0xfd,0x1b,0xfe,0x39,0xfe,0xbe,0xfe,0xc0,0xff, +0x85,0x0,0x34,0x1,0x14,0x2,0x6e,0x2,0x16,0x2,0x83,0x1, +0xc4,0x0,0xf4,0xff,0xf9,0xfe,0x76,0xfd,0xc6,0xfb,0x32,0xfa, +0x69,0xf8,0xb1,0xf6,0x5d,0xf5,0x4e,0xf4,0xb,0xf4,0xef,0xf4, +0xc6,0xf6,0x2b,0xfa,0x4e,0xff,0xe4,0x4,0x5d,0xa,0x9b,0xf, +0x50,0x13,0xda,0x14,0xd2,0x14,0xe4,0x12,0x2a,0xe,0xfb,0x6, +0x9,0xff,0x3b,0xf8,0x1d,0xf3,0x6f,0xef,0x45,0xee,0xad,0xf0, +0x49,0xf5,0x41,0xfa,0xc,0xff,0x23,0x3,0xea,0x5,0x7d,0x7, +0x4,0x8,0xa8,0x7,0xb1,0x6,0xd7,0x4,0x23,0x2,0xa2,0xff, +0xb6,0xfd,0x7,0xfc,0x6,0xfb,0xda,0xfa,0x5,0xfb,0xf5,0xfb, +0xa3,0xfd,0xa6,0xfe,0xe6,0xfe,0x65,0xff,0x6c,0xff,0x13,0xfe, +0x3f,0xfc,0xd9,0xfa,0x4,0xfa,0xc5,0xf9,0xde,0xf9,0x44,0xfa, +0x3d,0xfb,0x85,0xfc,0xcd,0xfd,0x27,0xff,0x27,0x0,0xac,0x0, +0xab,0x1,0x54,0x3,0x81,0x4,0xca,0x4,0x2a,0x5,0x24,0x6, +0xe9,0x6,0xd8,0x6,0x55,0x6,0xa6,0x5,0x90,0x4,0x26,0x3, +0x8d,0x1,0x81,0xff,0x14,0xfd,0xa,0xfb,0xe2,0xf9,0x69,0xf9, +0x62,0xf9,0x10,0xfa,0xca,0xfb,0x72,0xfe,0x52,0x1,0x7a,0x3, +0xd2,0x4,0x7,0x6,0xad,0x6,0xd0,0x5,0xc,0x4,0x58,0x2, +0x8e,0x0,0xcd,0xfe,0x82,0xfd,0x96,0xfc,0x25,0xfc,0x3f,0xfc, +0xa8,0xfc,0x7e,0xfd,0x5a,0xfe,0x73,0xfe,0x53,0xfe,0x63,0xfe, +0xe4,0xfd,0x5,0xfd,0x51,0xfc,0x70,0xfb,0xcd,0xfa,0x17,0xfb, +0xb6,0xfb,0x58,0xfc,0x75,0xfd,0x1d,0xff,0x37,0x1,0x35,0x3, +0x4c,0x4,0xec,0x4,0x9c,0x5,0xa5,0x5,0xe1,0x4,0xe1,0x3, +0xa3,0x2,0x57,0x1,0x56,0x0,0x4a,0xff,0x2a,0xfe,0x6a,0xfd, +0x25,0xfd,0x73,0xfd,0x4b,0xfe,0x1e,0xff,0xe3,0xff,0x19,0x1, +0x96,0x2,0xb9,0x3,0x40,0x4,0x40,0x4,0xff,0x3,0xa1,0x3, +0xd2,0x2,0x69,0x1,0xf0,0xff,0xfb,0xfe,0x88,0xfe,0x57,0xfe, +0x5a,0xfe,0xb4,0xfe,0x84,0xff,0x88,0x0,0x3c,0x1,0x8b,0x1, +0xe3,0x1,0x49,0x2,0x28,0x2,0x49,0x1,0x59,0x0,0xdf,0xff, +0x47,0xff,0x3a,0xfe,0x9a,0xfd,0xb2,0xfd,0xb4,0xfd,0xc9,0xfd, +0xba,0xfe,0x29,0x0,0x79,0x1,0xc4,0x2,0xa,0x4,0x2,0x5, +0x77,0x5,0x44,0x5,0x78,0x4,0x4f,0x3,0xa,0x2,0xfe,0x0, +0x26,0x0,0x22,0xff,0x5,0xfe,0x5e,0xfd,0x6b,0xfd,0xde,0xfd, +0x5f,0xfe,0xb,0xff,0xd,0x0,0x1e,0x1,0xfc,0x1,0x64,0x2, +0x1,0x2,0x45,0x1,0xa9,0x0,0x8d,0xff,0xde,0xfd,0x6b,0xfc, +0xf1,0xfa,0xfe,0xf8,0x26,0xf7,0x90,0xf5,0x15,0xf4,0x52,0xf3, +0x8c,0xf3,0x87,0xf4,0xb1,0xf6,0x82,0xfa,0xa7,0xff,0x54,0x5, +0xde,0xa,0xeb,0xf,0xae,0x13,0x14,0x15,0x5d,0x14,0x34,0x12, +0xbe,0xd,0x7d,0x6,0x55,0xfe,0x72,0xf7,0x2f,0xf2,0x70,0xee, +0x37,0xed,0x73,0xef,0xfe,0xf3,0xe7,0xf8,0x97,0xfd,0xe2,0x1, +0xfb,0x4,0x91,0x6,0x28,0x7,0x31,0x7,0xa3,0x6,0x1d,0x5, +0xb5,0x2,0x34,0x0,0xd,0xfe,0x3d,0xfc,0xec,0xfa,0x3d,0xfa, +0x73,0xfa,0xa9,0xfb,0x1,0xfd,0xaf,0xfd,0x24,0xfe,0x9b,0xfe, +0x77,0xfe,0x63,0xfd,0xae,0xfb,0x32,0xfa,0xae,0xf9,0xb0,0xf9, +0x9c,0xf9,0x2,0xfa,0x44,0xfb,0xbe,0xfc,0x13,0xfe,0x5f,0xff, +0x86,0x0,0x7e,0x1,0x8a,0x2,0xb4,0x3,0x8c,0x4,0xd1,0x4, +0x2b,0x5,0x28,0x6,0xf6,0x6,0xd5,0x6,0x50,0x6,0xbe,0x5, +0xa5,0x4,0xa,0x3,0x34,0x1,0xf2,0xfe,0x6f,0xfc,0x4e,0xfa, +0xec,0xf8,0x71,0xf8,0xe3,0xf8,0x23,0xfa,0x5b,0xfc,0x6d,0xff, +0x5a,0x2,0x7c,0x4,0x1,0x6,0xcc,0x6,0xa4,0x6,0xbc,0x5, +0x2d,0x4,0x2f,0x2,0x5f,0x0,0xcf,0xfe,0x34,0xfd,0xe6,0xfb, +0x5a,0xfb,0x6a,0xfb,0xfa,0xfb,0xfe,0xfc,0xf3,0xfd,0x68,0xfe, +0xac,0xfe,0x0,0xff,0xe4,0xfe,0x13,0xfe,0x1b,0xfd,0x5c,0xfc, +0xd5,0xfb,0xbe,0xfb,0x12,0xfc,0x9e,0xfc,0xb7,0xfd,0x74,0xff, +0x32,0x1,0x91,0x2,0x80,0x3,0xfd,0x3,0x58,0x4,0x6d,0x4, +0xb6,0x3,0xb4,0x2,0x17,0x2,0x6c,0x1,0x6b,0x0,0x6c,0xff, +0x79,0xfe,0xc3,0xfd,0xab,0xfd,0xe3,0xfd,0x26,0xfe,0xae,0xfe, +0x79,0xff,0x7d,0x0,0xdc,0x1,0x35,0x3,0xfe,0x3,0x4c,0x4, +0x63,0x4,0x3a,0x4,0x95,0x3,0x52,0x2,0xd5,0x0,0xb0,0xff, +0xd6,0xfe,0x7,0xfe,0x87,0xfd,0xbb,0xfd,0x99,0xfe,0xa0,0xff, +0x62,0x0,0xe,0x1,0xe9,0x1,0x93,0x2,0xb0,0x2,0x53,0x2, +0x82,0x1,0x5f,0x0,0x46,0xff,0x4c,0xfe,0x67,0xfd,0xc8,0xfc, +0x8a,0xfc,0xb9,0xfc,0x92,0xfd,0x17,0xff,0xd4,0x0,0x69,0x2, +0xd5,0x3,0x2e,0x5,0x1e,0x6,0x17,0x6,0x33,0x5,0x18,0x4, +0x7,0x3,0xd7,0x1,0x79,0x0,0x5,0xff,0xa9,0xfd,0xab,0xfc, +0x52,0xfc,0xa1,0xfc,0x5b,0xfd,0x6f,0xfe,0xe7,0xff,0x6b,0x1, +0x79,0x2,0xdc,0x2,0xaa,0x2,0x49,0x2,0xdd,0x1,0xc3,0x0, +0xe7,0xfe,0x2a,0xfd,0x8b,0xfb,0x89,0xf9,0xa8,0xf7,0x36,0xf6, +0xdc,0xf4,0xf9,0xf3,0xfc,0xf3,0xcf,0xf4,0xe2,0xf6,0x8f,0xfa, +0x33,0xff,0x52,0x4,0xc2,0x9,0xad,0xe,0xfd,0x11,0x6f,0x13, +0x6b,0x13,0xe7,0x11,0x0,0xe,0x6f,0x7,0xbb,0xff,0x0,0xf9, +0xf4,0xf3,0x43,0xf0,0x92,0xee,0x3d,0xf0,0x98,0xf4,0x60,0xf9, +0xb4,0xfd,0xb3,0x1,0xbf,0x4,0x95,0x6,0x99,0x7,0xd3,0x7, +0x4c,0x7,0x2,0x6,0xaa,0x3,0xe2,0x0,0xb4,0xfe,0x5,0xfd, +0x85,0xfb,0xc1,0xfa,0x2a,0xfb,0x72,0xfc,0xc7,0xfd,0x93,0xfe, +0x2d,0xff,0xc9,0xff,0x99,0xff,0x36,0xfe,0x60,0xfc,0xe6,0xfa, +0xa,0xfa,0xa3,0xf9,0x7f,0xf9,0xd5,0xf9,0xfc,0xfa,0xd6,0xfc, +0xec,0xfe,0xcb,0x0,0x42,0x2,0x5f,0x3,0x32,0x4,0xc1,0x4, +0x7,0x5,0xd4,0x4,0x6a,0x4,0x87,0x4,0xd,0x5,0x17,0x5, +0xa0,0x4,0x2b,0x4,0x85,0x3,0x7c,0x2,0x53,0x1,0xc5,0xff, +0x92,0xfd,0xa7,0xfb,0xc0,0xfa,0x68,0xfa,0x83,0xfa,0x99,0xfb, +0x97,0xfd,0xeb,0xff,0x7,0x2,0x7f,0x3,0x62,0x4,0xd6,0x4, +0xbd,0x4,0x30,0x4,0x46,0x3,0xd4,0x1,0x47,0x0,0x2a,0xff, +0x38,0xfe,0x40,0xfd,0xad,0xfc,0xba,0xfc,0x1e,0xfd,0x85,0xfd, +0xa,0xfe,0xce,0xfe,0x3c,0xff,0xf0,0xfe,0x5d,0xfe,0x97,0xfd, +0x85,0xfc,0xc0,0xfb,0x80,0xfb,0x93,0xfb,0x2d,0xfc,0x30,0xfd, +0x54,0xfe,0xbb,0xff,0x16,0x1,0x16,0x2,0x5,0x3,0x9e,0x3, +0xab,0x3,0xbc,0x3,0x96,0x3,0xce,0x2,0x13,0x2,0x84,0x1, +0xa5,0x0,0xbd,0xff,0xe5,0xfe,0x1c,0xfe,0xf4,0xfd,0x44,0xfe, +0x88,0xfe,0x26,0xff,0x33,0x0,0x34,0x1,0x3e,0x2,0x4d,0x3, +0xf9,0x3,0x4a,0x4,0x65,0x4,0x1d,0x4,0x46,0x3,0xe9,0x1, +0x82,0x0,0x7e,0xff,0xa6,0xfe,0xdb,0xfd,0x81,0xfd,0xe6,0xfd, +0xe,0xff,0x74,0x0,0x64,0x1,0x29,0x2,0x2e,0x3,0xb8,0x3, +0x58,0x3,0xb1,0x2,0xe5,0x1,0x9e,0x0,0x40,0xff,0x47,0xfe, +0x68,0xfd,0x95,0xfc,0x6b,0xfc,0xd,0xfd,0xfe,0xfd,0x31,0xff, +0xc2,0x0,0x5b,0x2,0xae,0x3,0xa0,0x4,0x2a,0x5,0x55,0x5, +0xf5,0x4,0x1d,0x4,0x4d,0x3,0x49,0x2,0xa3,0x0,0x18,0xff, +0x1c,0xfe,0x20,0xfd,0x7b,0xfc,0xdb,0xfc,0xad,0xfd,0x6c,0xfe, +0x6e,0xff,0xad,0x0,0x97,0x1,0xeb,0x1,0xf5,0x1,0xf7,0x1, +0x93,0x1,0x70,0x0,0xe2,0xfe,0x61,0xfd,0xe,0xfc,0xb0,0xfa, +0x0,0xf9,0x4f,0xf7,0xf,0xf6,0x39,0xf5,0xe,0xf5,0xeb,0xf5, +0xa5,0xf7,0x8a,0xfa,0xda,0xfe,0xa2,0x3,0x51,0x8,0xe5,0xc, +0x4e,0x10,0xf3,0x11,0x82,0x12,0x80,0x11,0xac,0xd,0x7d,0x7, +0xa6,0x0,0x76,0xfa,0x6b,0xf5,0xb6,0xf1,0x32,0xf0,0xc0,0xf1, +0xa4,0xf5,0x1f,0xfa,0x35,0xfe,0xe5,0x1,0x20,0x5,0x2f,0x7, +0xcd,0x7,0xcc,0x7,0x55,0x7,0xaa,0x5,0x16,0x3,0x98,0x0, +0x74,0xfe,0xa8,0xfc,0x52,0xfb,0xb5,0xfa,0x53,0xfb,0xdf,0xfc, +0x22,0xfe,0xc7,0xfe,0x52,0xff,0xc2,0xff,0x8d,0xff,0x51,0xfe, +0x57,0xfc,0xb0,0xfa,0xfc,0xf9,0xba,0xf9,0x96,0xf9,0x15,0xfa, +0xa9,0xfb,0x1,0xfe,0x58,0x0,0x17,0x2,0x3a,0x3,0xfb,0x3, +0x5a,0x4,0x41,0x4,0xc1,0x3,0xf9,0x2,0x47,0x2,0x4e,0x2, +0xc,0x3,0x83,0x3,0x4b,0x3,0x29,0x3,0x5e,0x3,0x38,0x3, +0x78,0x2,0x42,0x1,0x9b,0xff,0xf,0xfe,0x3c,0xfd,0xce,0xfc, +0x97,0xfc,0x41,0xfd,0xc3,0xfe,0x4a,0x0,0x9d,0x1,0xb6,0x2, +0x2d,0x3,0x27,0x3,0x1d,0x3,0xe2,0x2,0x46,0x2,0x77,0x1, +0x86,0x0,0xac,0xff,0x25,0xff,0xac,0xfe,0x38,0xfe,0x2c,0xfe, +0x73,0xfe,0xcf,0xfe,0x39,0xff,0x62,0xff,0x21,0xff,0xb3,0xfe, +0xfa,0xfd,0xf6,0xfc,0x14,0xfc,0x7a,0xfb,0x57,0xfb,0x2,0xfc, +0x15,0xfd,0x7,0xfe,0xf6,0xfe,0xfe,0xff,0x21,0x1,0x4b,0x2, +0xf0,0x2,0x21,0x3,0x96,0x3,0xe7,0x3,0x70,0x3,0xcb,0x2, +0x50,0x2,0xa9,0x1,0x0,0x1,0x44,0x0,0x43,0xff,0xc9,0xfe, +0x2f,0xff,0x98,0xff,0xe8,0xff,0x97,0x0,0x61,0x1,0x16,0x2, +0xc9,0x2,0x23,0x3,0x2b,0x3,0x36,0x3,0xfe,0x2,0x74,0x2, +0xd6,0x1,0xe2,0x0,0xce,0xff,0x40,0xff,0xdb,0xfe,0x5b,0xfe, +0x8d,0xfe,0x81,0xff,0x78,0x0,0x5a,0x1,0x34,0x2,0xdc,0x2, +0x5d,0x3,0x83,0x3,0x24,0x3,0xa6,0x2,0x9,0x2,0xfb,0x0, +0xbc,0xff,0x98,0xfe,0xc9,0xfd,0x9b,0xfd,0x9d,0xfd,0x7d,0xfd, +0xff,0xfd,0x2b,0xff,0x38,0x0,0x57,0x1,0xa9,0x2,0x91,0x3, +0x62,0x4,0x4a,0x5,0x49,0x5,0x75,0x4,0xcd,0x3,0xeb,0x2, +0x6b,0x1,0x1e,0x0,0x2d,0xff,0x22,0xfe,0x56,0xfd,0x21,0xfd, +0x60,0xfd,0x21,0xfe,0x41,0xff,0x3e,0x0,0xe2,0x0,0x43,0x1, +0x80,0x1,0x9c,0x1,0x32,0x1,0x5,0x0,0xa3,0xfe,0x96,0xfd, +0x88,0xfc,0xfa,0xfa,0x34,0xf9,0xda,0xf7,0xe6,0xf6,0x3,0xf6, +0x95,0xf5,0x39,0xf6,0xff,0xf7,0xf0,0xfa,0x23,0xff,0xc,0x4, +0x0,0x9,0x9f,0xd,0x36,0x11,0xd,0x13,0x27,0x13,0x8f,0x11, +0x9a,0xd,0x19,0x7,0xac,0xff,0x4e,0xf9,0x56,0xf4,0x9f,0xf0, +0x42,0xef,0x1c,0xf1,0x3c,0xf5,0x1,0xfa,0x5a,0xfe,0x24,0x2, +0x92,0x5,0x3,0x8,0xdc,0x8,0xcc,0x8,0x11,0x8,0xde,0x5, +0xa8,0x2,0xcd,0xff,0x87,0xfd,0x95,0xfb,0x3a,0xfa,0xc9,0xf9, +0x59,0xfa,0x79,0xfb,0x76,0xfc,0x4c,0xfd,0x3f,0xfe,0x8,0xff, +0x31,0xff,0x62,0xfe,0xb8,0xfc,0x48,0xfb,0xe1,0xfa,0xff,0xfa, +0x13,0xfb,0x8a,0xfb,0xdc,0xfc,0xab,0xfe,0x23,0x0,0xfd,0x0, +0xa0,0x1,0x38,0x2,0x7b,0x2,0x5a,0x2,0x28,0x2,0x18,0x2, +0x20,0x2,0x5f,0x2,0x16,0x3,0xe0,0x3,0x11,0x4,0xfa,0x3, +0x14,0x4,0xc0,0x3,0x93,0x2,0x10,0x1,0x88,0xff,0x2d,0xfe, +0x4f,0xfd,0xcb,0xfc,0x9f,0xfc,0x37,0xfd,0x6e,0xfe,0xdc,0xff, +0x71,0x1,0xaf,0x2,0xb,0x3,0xff,0x2,0x29,0x3,0x1d,0x3, +0x3b,0x2,0xdd,0x0,0xe3,0xff,0x5e,0xff,0xb6,0xfe,0xf1,0xfd, +0x8b,0xfd,0x88,0xfd,0xc3,0xfd,0x20,0xfe,0x5b,0xfe,0x69,0xfe, +0x73,0xfe,0x3e,0xfe,0x83,0xfd,0x80,0xfc,0xbe,0xfb,0xb7,0xfb, +0x41,0xfc,0xc9,0xfc,0x62,0xfd,0x57,0xfe,0x49,0xff,0x1b,0x0, +0x49,0x1,0x8e,0x2,0x3c,0x3,0x80,0x3,0xc7,0x3,0xcc,0x3, +0x39,0x3,0x56,0x2,0x99,0x1,0xfc,0x0,0x49,0x0,0x9c,0xff, +0x36,0xff,0x3f,0xff,0xb7,0xff,0x5a,0x0,0xfc,0x0,0xa5,0x1, +0x1f,0x2,0x61,0x2,0xc4,0x2,0xfd,0x2,0xa8,0x2,0x56,0x2, +0x45,0x2,0xe0,0x1,0x18,0x1,0x29,0x0,0x4b,0xff,0x13,0xff, +0x45,0xff,0x0,0xff,0xcb,0xfe,0x60,0xff,0x13,0x0,0xa7,0x0, +0xa3,0x1,0xa8,0x2,0x2d,0x3,0x71,0x3,0x85,0x3,0x33,0x3, +0x7d,0x2,0x73,0x1,0x2c,0x0,0xe7,0xfe,0x0,0xfe,0x97,0xfd, +0x34,0xfd,0xb1,0xfc,0xe4,0xfc,0x25,0xfe,0xb1,0xff,0x22,0x1, +0xbe,0x2,0x57,0x4,0x6f,0x5,0xde,0x5,0xab,0x5,0xf2,0x4, +0xff,0x3,0xcf,0x2,0x10,0x1,0x3f,0xff,0x2a,0xfe,0x6c,0xfd, +0x89,0xfc,0x46,0xfc,0xef,0xfc,0xf1,0xfd,0x3b,0xff,0x89,0x0, +0x49,0x1,0xf4,0x1,0xa6,0x2,0x5d,0x2,0x37,0x1,0xf,0x0, +0xc0,0xfe,0x23,0xfd,0x77,0xfb,0x9c,0xf9,0xca,0xf7,0x70,0xf6, +0x4d,0xf5,0x58,0xf4,0x2d,0xf4,0x33,0xf5,0x71,0xf7,0xe8,0xfa, +0xb4,0xff,0x90,0x5,0x66,0xb,0x49,0x10,0xe1,0x13,0x94,0x15, +0x23,0x15,0xc3,0x12,0xb1,0xd,0xd6,0x5,0xb9,0xfd,0x51,0xf7, +0x24,0xf2,0x2c,0xee,0xd6,0xec,0xeb,0xee,0x8c,0xf3,0xda,0xf8, +0xaf,0xfd,0x48,0x2,0x71,0x6,0x11,0x9,0xff,0x9,0xe9,0x9, +0xda,0x8,0x8f,0x6,0x69,0x3,0x41,0x0,0xa4,0xfd,0x78,0xfb, +0xa5,0xf9,0xc3,0xf8,0x45,0xf9,0xaf,0xfa,0x3c,0xfc,0x91,0xfd, +0xa7,0xfe,0x92,0xff,0x5,0x0,0x59,0xff,0xc6,0xfd,0x8b,0xfc, +0x2a,0xfc,0xf4,0xfb,0x85,0xfb,0x55,0xfb,0xdc,0xfb,0x0,0xfd, +0x37,0xfe,0x39,0xff,0x28,0x0,0xf9,0x0,0x8c,0x1,0x1e,0x2, +0xc4,0x2,0x42,0x3,0x9f,0x3,0x1d,0x4,0xb7,0x4,0x16,0x5, +0xeb,0x4,0x74,0x4,0x6,0x4,0x47,0x3,0xda,0x1,0xb,0x0, +0x3f,0xfe,0xd7,0xfc,0xfe,0xfb,0x5a,0xfb,0xa,0xfb,0xcb,0xfb, +0x75,0xfd,0x46,0xff,0x9,0x1,0x9d,0x2,0xae,0x3,0x52,0x4, +0xa6,0x4,0x43,0x4,0xec,0x2,0x39,0x1,0xe7,0xff,0xd7,0xfe, +0xa2,0xfd,0x8f,0xfc,0x1e,0xfc,0x58,0xfc,0xd9,0xfc,0x2e,0xfd, +0x73,0xfd,0xd7,0xfd,0xd5,0xfd,0x50,0xfd,0xe4,0xfc,0x70,0xfc, +0xbd,0xfb,0x7a,0xfb,0xcb,0xfb,0x4f,0xfc,0x29,0xfd,0x3a,0xfe, +0x3d,0xff,0x7b,0x0,0xe5,0x1,0x14,0x3,0xed,0x3,0x5a,0x4, +0x7a,0x4,0x61,0x4,0x6b,0x3,0xb6,0x1,0x67,0x0,0xa5,0xff, +0x1,0xff,0x95,0xfe,0x62,0xfe,0x87,0xfe,0x38,0xff,0xec,0xff, +0x80,0x0,0x61,0x1,0x2d,0x2,0xae,0x2,0x44,0x3,0x8d,0x3, +0x36,0x3,0xd6,0x2,0x97,0x2,0x26,0x2,0x57,0x1,0x29,0x0, +0x2a,0xff,0xb5,0xfe,0x1d,0xfe,0x4d,0xfd,0x2d,0xfd,0xd9,0xfd, +0xb9,0xfe,0xb0,0xff,0xd4,0x0,0xf7,0x1,0xd8,0x2,0x62,0x3, +0x97,0x3,0x3c,0x3,0x47,0x2,0x17,0x1,0xc4,0xff,0x55,0xfe, +0x45,0xfd,0xc7,0xfc,0x80,0xfc,0x6e,0xfc,0x1,0xfd,0x79,0xfe, +0x7d,0x0,0x65,0x2,0xfc,0x3,0x65,0x5,0x76,0x6,0xdd,0x6, +0x66,0x6,0x42,0x5,0xe9,0x3,0x2d,0x2,0xe5,0xff,0xa,0xfe, +0x12,0xfd,0x4d,0xfc,0xd9,0xfb,0x1e,0xfc,0xca,0xfc,0xfb,0xfd, +0xbb,0xff,0x54,0x1,0xb2,0x2,0xef,0x3,0x68,0x4,0x0,0x4, +0xed,0x2,0x10,0x1,0xdd,0xfe,0xc3,0xfc,0x82,0xfa,0x49,0xf8, +0x44,0xf6,0x4a,0xf4,0xed,0xf2,0x90,0xf2,0xd8,0xf2,0x15,0xf4, +0xc5,0xf6,0xd1,0xfa,0x48,0x0,0x7c,0x6,0x19,0xc,0xfb,0x10, +0xe9,0x14,0x73,0x16,0x6f,0x15,0xb6,0x12,0x9a,0xd,0xbd,0x5, +0x57,0xfd,0x8a,0xf6,0x1b,0xf1,0xdb,0xec,0x7b,0xeb,0xf5,0xed, +0xb8,0xf2,0xfd,0xf7,0x2b,0xfd,0xcc,0x1,0x9a,0x5,0x71,0x8, +0xc2,0x9,0xaf,0x9,0xc6,0x8,0x8d,0x6,0x33,0x3,0x49,0x0, +0xe8,0xfd,0x38,0xfb,0x32,0xf9,0xe2,0xf8,0xb7,0xf9,0x29,0xfb, +0xf5,0xfc,0x79,0xfe,0xa3,0xff,0xaf,0x0,0x8,0x1,0x5,0x0, +0x23,0xfe,0x8b,0xfc,0xa2,0xfb,0xe0,0xfa,0x29,0xfa,0x1d,0xfa, +0xe9,0xfa,0x28,0xfc,0x96,0xfd,0x13,0xff,0x7a,0x0,0xa8,0x1, +0x91,0x2,0x52,0x3,0xf1,0x3,0x34,0x4,0x47,0x4,0xa5,0x4, +0x28,0x5,0x3a,0x5,0xca,0x4,0x68,0x4,0x25,0x4,0x3e,0x3, +0x6f,0x1,0x71,0xff,0xb0,0xfd,0x29,0xfc,0xa,0xfb,0x50,0xfa, +0xf,0xfa,0xf3,0xfa,0xec,0xfc,0x8,0xff,0x19,0x1,0x56,0x3, +0x4c,0x5,0x66,0x6,0x74,0x6,0x9a,0x5,0x1f,0x4,0x15,0x2, +0xea,0xff,0x39,0xfe,0xa5,0xfc,0xfc,0xfa,0x3c,0xfa,0x9c,0xfa, +0x57,0xfb,0x5e,0xfc,0x64,0xfd,0xb2,0xfd,0xb9,0xfd,0xfb,0xfd, +0xeb,0xfd,0x62,0xfd,0xd9,0xfc,0x8d,0xfc,0xbb,0xfc,0x41,0xfd, +0x89,0xfd,0xce,0xfd,0xd2,0xfe,0x72,0x0,0xf4,0x1,0xf7,0x2, +0x9a,0x3,0x15,0x4,0x50,0x4,0xf1,0x3,0xee,0x2,0xb8,0x1, +0xae,0x0,0xc7,0xff,0xfd,0xfe,0x76,0xfe,0x4e,0xfe,0xae,0xfe, +0x67,0xff,0xec,0xff,0x7d,0x0,0x8f,0x1,0x63,0x2,0xc2,0x2, +0x83,0x3,0x3b,0x4,0x3e,0x4,0x2a,0x4,0xed,0x3,0x1e,0x3, +0x4d,0x2,0x46,0x1,0xbb,0xff,0xae,0xfe,0xb,0xfe,0x1c,0xfd, +0xd5,0xfc,0x7c,0xfd,0x18,0xfe,0xee,0xfe,0x34,0x0,0x1d,0x1, +0xb7,0x1,0x3f,0x2,0x3d,0x2,0xc7,0x1,0xf,0x1,0x6,0x0, +0x2,0xff,0x16,0xfe,0x3d,0xfd,0x2,0xfd,0x55,0xfd,0xa0,0xfd, +0x2d,0xfe,0x75,0xff,0x2a,0x1,0xc7,0x2,0x2b,0x4,0x82,0x5, +0x90,0x6,0xb4,0x6,0xea,0x5,0x9f,0x4,0x1a,0x3,0x84,0x1, +0x92,0xff,0x5f,0xfd,0x11,0xfc,0xaa,0xfb,0x29,0xfb,0x2b,0xfb, +0x66,0xfc,0xff,0xfd,0xad,0xff,0xa5,0x1,0x4e,0x3,0x7c,0x4, +0x3f,0x5,0xff,0x4,0xaf,0x3,0xb7,0x1,0x40,0xff,0xba,0xfc, +0x53,0xfa,0xcb,0xf7,0x7c,0xf5,0xe9,0xf3,0x21,0xf3,0x22,0xf3, +0xad,0xf3,0xcf,0xf4,0x5a,0xf7,0x6c,0xfb,0x50,0x0,0xaf,0x5, +0x26,0xb,0xec,0xf,0x51,0x13,0xad,0x14,0xc,0x14,0xec,0x11, +0x93,0xd,0x6a,0x6,0x5f,0xfe,0xbe,0xf7,0x8a,0xf2,0x76,0xee, +0xf5,0xec,0x28,0xef,0xbf,0xf3,0xaf,0xf8,0x37,0xfd,0x47,0x1, +0xd3,0x4,0x92,0x7,0xd5,0x8,0xa1,0x8,0xa2,0x7,0xa4,0x5, +0xc2,0x2,0x25,0x0,0xc3,0xfd,0x1c,0xfb,0x71,0xf9,0x83,0xf9, +0x5b,0xfa,0x9a,0xfb,0x44,0xfd,0xc1,0xfe,0xf0,0xff,0xbe,0x0, +0x82,0x0,0x2d,0xff,0x5e,0xfd,0xa3,0xfb,0x75,0xfa,0xe9,0xf9, +0xbe,0xf9,0x10,0xfa,0x14,0xfb,0xa8,0xfc,0x7a,0xfe,0x2e,0x0, +0x9e,0x1,0xc2,0x2,0x75,0x3,0xe3,0x3,0x52,0x4,0x7c,0x4, +0x5c,0x4,0x8d,0x4,0xf0,0x4,0xd7,0x4,0x7d,0x4,0x6c,0x4, +0x30,0x4,0x1d,0x3,0x4e,0x1,0x35,0xff,0x3b,0xfd,0xd5,0xfb, +0xf9,0xfa,0x51,0xfa,0x50,0xfa,0x9a,0xfb,0xb7,0xfd,0xe2,0xff, +0x24,0x2,0x85,0x4,0x7c,0x6,0x8f,0x7,0x91,0x7,0x68,0x6, +0x3b,0x4,0xb0,0x1,0x75,0xff,0x98,0xfd,0xca,0xfb,0x2d,0xfa, +0x5d,0xf9,0xa0,0xf9,0x95,0xfa,0xbe,0xfb,0xd6,0xfc,0xa4,0xfd, +0x47,0xfe,0xe2,0xfe,0xe7,0xfe,0x2e,0xfe,0xb6,0xfd,0xea,0xfd, +0x30,0xfe,0x44,0xfe,0x16,0xfe,0xe1,0xfd,0x71,0xfe,0xa1,0xff, +0x8b,0x0,0x55,0x1,0x2d,0x2,0x8d,0x2,0xa4,0x2,0xb9,0x2, +0x5b,0x2,0x8c,0x1,0xbb,0x0,0x5,0x0,0x79,0xff,0x1a,0xff, +0x1,0xff,0x35,0xff,0x62,0xff,0xcd,0xff,0xdf,0x0,0xcb,0x1, +0x47,0x2,0x1a,0x3,0xfe,0x3,0x73,0x4,0xcb,0x4,0xb9,0x4, +0x24,0x4,0x99,0x3,0xaf,0x2,0x46,0x1,0x31,0x0,0x44,0xff, +0x4c,0xfe,0xf2,0xfd,0x16,0xfe,0x74,0xfe,0x50,0xff,0x4a,0x0, +0x7,0x1,0x83,0x1,0x8d,0x1,0x94,0x1,0xcb,0x1,0x6f,0x1, +0xce,0x0,0x84,0x0,0xcc,0xff,0xbc,0xfe,0x5b,0xfe,0x80,0xfe, +0xc3,0xfe,0x40,0xff,0xe4,0xff,0xbc,0x0,0xc5,0x1,0xe9,0x2, +0x55,0x4,0x9c,0x5,0x46,0x6,0x8a,0x6,0x2,0x6,0xa0,0x4, +0x67,0x3,0xff,0x1,0xb3,0xff,0xb9,0xfd,0xae,0xfc,0xdb,0xfb, +0x5d,0xfb,0x8c,0xfb,0x7e,0xfc,0x3b,0xfe,0xeb,0xff,0x58,0x1, +0x44,0x3,0xfb,0x4,0x7f,0x5,0x39,0x5,0x27,0x4,0x28,0x2, +0xc2,0xff,0xe9,0xfc,0xe9,0xf9,0xa6,0xf7,0xc3,0xf5,0x7,0xf4, +0x60,0xf3,0xac,0xf3,0x52,0xf4,0xfb,0xf5,0x16,0xf9,0x30,0xfd, +0xff,0x1,0x55,0x7,0x79,0xc,0x69,0x10,0xd2,0x12,0xdb,0x13, +0x2a,0x13,0x65,0x10,0x87,0xb,0xaa,0x4,0x6d,0xfd,0xce,0xf7, +0x52,0xf3,0xd1,0xef,0x68,0xef,0x5e,0xf2,0xbd,0xf6,0x75,0xfb, +0xd4,0xff,0x56,0x3,0x38,0x6,0x4,0x8,0x53,0x8,0xcc,0x7, +0x79,0x6,0x46,0x4,0xa,0x2,0xfc,0xff,0xb,0xfe,0x90,0xfc, +0x91,0xfb,0x7c,0xfb,0x9c,0xfc,0xbf,0xfd,0x75,0xfe,0x75,0xff, +0x14,0x0,0xb2,0xff,0xe1,0xfe,0x72,0xfd,0x72,0xfb,0x2f,0xfa, +0xe6,0xf9,0xf2,0xf9,0x68,0xfa,0x4e,0xfb,0x8b,0xfc,0x5e,0xfe, +0x52,0x0,0xb9,0x1,0xc5,0x2,0xa3,0x3,0x14,0x4,0x4d,0x4, +0x8e,0x4,0x93,0x4,0x93,0x4,0x9,0x5,0x6d,0x5,0x3b,0x5, +0xfb,0x4,0xa1,0x4,0xa0,0x3,0x65,0x2,0x3,0x1,0xf3,0xfe, +0x1e,0xfd,0x48,0xfc,0x6f,0xfb,0x7d,0xfa,0xba,0xfa,0x64,0xfc, +0xdc,0xfe,0x61,0x1,0x3c,0x3,0xca,0x4,0x76,0x6,0x56,0x7, +0xef,0x6,0xd1,0x5,0xd,0x4,0xb9,0x1,0xa4,0xff,0xf5,0xfd, +0x33,0xfc,0xd5,0xfa,0xb7,0xfa,0x7b,0xfb,0x40,0xfc,0x3,0xfd, +0xda,0xfd,0x68,0xfe,0xc8,0xfe,0x45,0xff,0x8d,0xff,0x5d,0xff, +0xf1,0xfe,0xc0,0xfe,0x2,0xff,0x1c,0xff,0xae,0xfe,0x9e,0xfe, +0x42,0xff,0xd8,0xff,0x6c,0x0,0x29,0x1,0x93,0x1,0xe3,0x1, +0x84,0x2,0xe9,0x2,0xa6,0x2,0xd8,0x1,0xe1,0x0,0x62,0x0, +0x2a,0x0,0x84,0xff,0xdb,0xfe,0xd4,0xfe,0x1f,0xff,0x85,0xff, +0x3a,0x0,0x40,0x1,0x3d,0x2,0xd6,0x2,0x53,0x3,0xf0,0x3, +0x17,0x4,0xcc,0x3,0x96,0x3,0xde,0x2,0x64,0x1,0x3d,0x0, +0x90,0xff,0xc0,0xfe,0x35,0xfe,0x67,0xfe,0xf,0xff,0xc8,0xff, +0x68,0x0,0x16,0x1,0xb5,0x1,0xba,0x1,0x77,0x1,0x81,0x1, +0x5d,0x1,0xd6,0x0,0x7c,0x0,0x32,0x0,0xad,0xff,0x2d,0xff, +0xd4,0xfe,0xc8,0xfe,0x1d,0xff,0x86,0xff,0x6,0x0,0xd9,0x0, +0xb6,0x1,0x6d,0x2,0x36,0x3,0xc,0x4,0xa1,0x4,0xa2,0x4, +0x1e,0x4,0x86,0x3,0xa5,0x2,0x14,0x1,0x8b,0xff,0xb9,0xfe, +0x27,0xfe,0x92,0xfd,0x50,0xfd,0x6b,0xfd,0xdf,0xfd,0xb3,0xfe, +0xae,0xff,0xc0,0x0,0xf0,0x1,0xf1,0x2,0x70,0x3,0x54,0x3, +0xaf,0x2,0x73,0x1,0x73,0xff,0x5,0xfd,0xd2,0xfa,0xbd,0xf8, +0x83,0xf6,0xbe,0xf4,0xdf,0xf3,0xbc,0xf3,0x6b,0xf4,0x27,0xf6, +0x1e,0xf9,0x9d,0xfd,0x1c,0x3,0x63,0x8,0x15,0xd,0x9,0x11, +0x4d,0x13,0x8f,0x13,0x3b,0x12,0xde,0xe,0x5,0x9,0xeb,0x1, +0x3e,0xfb,0x83,0xf5,0xf8,0xf0,0x99,0xee,0x6c,0xef,0x3c,0xf3, +0x7c,0xf8,0x8d,0xfd,0xed,0x1,0x76,0x5,0x91,0x7,0x3d,0x8, +0x2e,0x8,0x3f,0x7,0x18,0x5,0x8a,0x2,0x49,0x0,0x54,0xfe, +0xe8,0xfc,0x7,0xfc,0xb1,0xfb,0x85,0xfc,0xfb,0xfd,0xbd,0xfe, +0x24,0xff,0xad,0xff,0x90,0xff,0xd4,0xfe,0xdd,0xfd,0x3d,0xfc, +0x7f,0xfa,0xa7,0xf9,0x78,0xf9,0xb2,0xf9,0x6d,0xfa,0x89,0xfb, +0x51,0xfd,0x75,0xff,0xee,0x0,0xf6,0x1,0xfc,0x2,0x7f,0x3, +0xdc,0x3,0x74,0x4,0x95,0x4,0x85,0x4,0xe6,0x4,0x7,0x5, +0xb0,0x4,0x65,0x4,0xf9,0x3,0x61,0x3,0xbd,0x2,0x91,0x1, +0xdd,0xff,0x37,0xfe,0xd7,0xfc,0xdf,0xfb,0x3d,0xfb,0xa9,0xfa, +0xb9,0xfa,0x28,0xfc,0x31,0xfe,0xc7,0xff,0x52,0x1,0x6b,0x3, +0x3f,0x5,0xf6,0x5,0xe3,0x5,0x6,0x5,0x2e,0x3,0x4f,0x1, +0xd3,0xff,0x1b,0xfe,0x86,0xfc,0x99,0xfb,0xf8,0xfa,0xe8,0xfa, +0x8f,0xfb,0x25,0xfc,0xa1,0xfc,0x40,0xfd,0xbf,0xfd,0x64,0xfe, +0xf5,0xfe,0xc3,0xfe,0xa2,0xfe,0x1b,0xff,0x34,0xff,0xf8,0xfe, +0xe7,0xfe,0xc5,0xfe,0xe,0xff,0xf5,0xff,0x7d,0x0,0xac,0x0, +0x30,0x1,0xc7,0x1,0x4f,0x2,0xb5,0x2,0x80,0x2,0xfb,0x1, +0x93,0x1,0xe4,0x0,0xd2,0xff,0xc2,0xfe,0xa,0xfe,0xd5,0xfd, +0xde,0xfd,0x7,0xfe,0xbf,0xfe,0xfb,0xff,0x49,0x1,0x89,0x2, +0x8a,0x3,0x27,0x4,0x88,0x4,0x83,0x4,0xdc,0x3,0xb0,0x2, +0x37,0x1,0xbc,0xff,0x75,0xfe,0x74,0xfd,0x17,0xfd,0x87,0xfd, +0x6a,0xfe,0x99,0xff,0xe2,0x0,0xbf,0x1,0x2b,0x2,0x78,0x2, +0xa2,0x2,0x7b,0x2,0xe6,0x1,0x3,0x1,0x2c,0x0,0x5d,0xff, +0x95,0xfe,0x19,0xfe,0xdf,0xfd,0xf4,0xfd,0x76,0xfe,0xd7,0xfe, +0x22,0xff,0x10,0x0,0x19,0x1,0xa9,0x1,0x71,0x2,0x41,0x3, +0x30,0x3,0xb1,0x2,0x52,0x2,0xc8,0x1,0x16,0x1,0x5a,0x0, +0xae,0xff,0x80,0xff,0x8b,0xff,0x24,0xff,0xc2,0xfe,0xfe,0xfe, +0x75,0xff,0xce,0xff,0x27,0x0,0x80,0x0,0xc8,0x0,0xb,0x1, +0x52,0x1,0x59,0x1,0xb6,0x0,0x83,0xff,0x3a,0xfe,0xd5,0xfc, +0x9,0xfb,0xe3,0xf8,0xb8,0xf6,0xff,0xf4,0x6,0xf4,0xb5,0xf3, +0x1f,0xf4,0xd5,0xf5,0x3b,0xf9,0x21,0xfe,0xbb,0x3,0x26,0x9, +0x33,0xe,0x87,0x12,0xde,0x14,0xdc,0x14,0x23,0x13,0xf3,0xe, +0xb7,0x7,0x68,0xff,0xd,0xf8,0xeb,0xf1,0x6b,0xed,0xab,0xeb, +0x72,0xed,0x5a,0xf2,0x5a,0xf8,0xdb,0xfd,0x22,0x3,0xb7,0x7, +0x2c,0xa,0xc5,0xa,0x47,0xa,0x72,0x8,0x99,0x5,0x95,0x2, +0xaf,0xff,0x2c,0xfd,0x26,0xfb,0xb1,0xf9,0x77,0xf9,0x66,0xfa, +0xaa,0xfb,0x40,0xfd,0xe5,0xfe,0xb5,0xff,0xee,0xff,0x4,0x0, +0x2e,0xff,0x47,0xfd,0x8a,0xfb,0x93,0xfa,0xee,0xf9,0x7a,0xf9, +0xb7,0xf9,0xae,0xfa,0xdc,0xfb,0x35,0xfd,0xdf,0xfe,0x82,0x0, +0xe0,0x1,0x1e,0x3,0x43,0x4,0x6,0x5,0x15,0x5,0xfd,0x4, +0x88,0x5,0xdd,0x5,0x1e,0x5,0x65,0x4,0xc,0x4,0xc,0x3, +0xb3,0x1,0x8e,0x0,0x1d,0xff,0xb6,0xfd,0xf1,0xfc,0x65,0xfc, +0xcb,0xfb,0x44,0xfb,0x5d,0xfb,0xc6,0xfc,0x92,0xfe,0xdc,0xff, +0xc1,0x1,0x2a,0x4,0x5c,0x5,0x9d,0x5,0xae,0x5,0xc4,0x4, +0x2,0x3,0x50,0x1,0xaa,0xff,0xf,0xfe,0x9e,0xfc,0x53,0xfb, +0xb5,0xfa,0xb8,0xfa,0xa8,0xfa,0xd3,0xfa,0x82,0xfb,0x1d,0xfc, +0xaf,0xfc,0x76,0xfd,0xe4,0xfd,0xf7,0xfd,0x5b,0xfe,0xff,0xfe, +0x74,0xff,0xab,0xff,0xcb,0xff,0x7,0x0,0x77,0x0,0xe4,0x0, +0x26,0x1,0x65,0x1,0xb6,0x1,0xf4,0x1,0x2a,0x2,0x5d,0x2, +0x49,0x2,0xed,0x1,0x83,0x1,0xbd,0x0,0x69,0xff,0x37,0xfe, +0xb3,0xfd,0x88,0xfd,0x72,0xfd,0xb7,0xfd,0xa7,0xfe,0x36,0x0, +0x9,0x2,0xca,0x3,0x36,0x5,0x7,0x6,0x19,0x6,0x99,0x5, +0xa9,0x4,0xf,0x3,0xde,0x0,0xf2,0xfe,0xb0,0xfd,0x94,0xfc, +0xd7,0xfb,0x3c,0xfc,0x61,0xfd,0xc4,0xfe,0x9b,0x0,0x68,0x2, +0x73,0x3,0xa,0x4,0x4d,0x4,0xc3,0x3,0x9e,0x2,0x82,0x1, +0xaa,0x0,0xdf,0xff,0xd0,0xfe,0xc2,0xfd,0x5e,0xfd,0x80,0xfd, +0xa7,0xfd,0xfe,0xfd,0xd3,0xfe,0xf2,0xff,0x15,0x1,0x31,0x2, +0x2d,0x3,0xcf,0x3,0x8,0x4,0xeb,0x3,0x82,0x3,0xd8,0x2, +0xed,0x1,0xc8,0x0,0xe3,0xff,0x70,0xff,0xe4,0xfe,0x43,0xfe, +0x3e,0xfe,0xd6,0xfe,0xab,0xff,0x7c,0x0,0xf5,0x0,0x3f,0x1, +0xa7,0x1,0xd7,0x1,0xb2,0x1,0x47,0x1,0x20,0x0,0x6f,0xfe, +0xd6,0xfc,0x1d,0xfb,0xb,0xf9,0xf2,0xf6,0x24,0xf5,0x1c,0xf4, +0xdf,0xf3,0xc7,0xf3,0x41,0xf4,0x6a,0xf6,0x5b,0xfa,0xb0,0xff, +0xe2,0x5,0x5,0xc,0x3d,0x11,0xcf,0x14,0x5d,0x16,0x13,0x16, +0x96,0x13,0x42,0xe,0x84,0x6,0xa7,0xfd,0x61,0xf5,0x1,0xef, +0xc0,0xea,0x8e,0xe9,0xc7,0xec,0xf3,0xf2,0x57,0xf9,0x61,0xff, +0x10,0x5,0x84,0x9,0x12,0xc,0x87,0xc,0x84,0xb,0xd2,0x9, +0x8,0x7,0x35,0x3,0x9f,0xff,0x94,0xfc,0xe4,0xf9,0x19,0xf8, +0x7b,0xf7,0x35,0xf8,0x3a,0xfa,0x64,0xfc,0xc,0xfe,0x85,0xff, +0x81,0x0,0xa2,0x0,0xf,0x0,0xae,0xfe,0xf4,0xfc,0xbd,0xfb, +0xd0,0xfa,0xda,0xf9,0x50,0xf9,0x7f,0xf9,0x75,0xfa,0xfd,0xfb, +0xa2,0xfd,0x56,0xff,0x9,0x1,0x67,0x2,0x9b,0x3,0xab,0x4, +0x4b,0x5,0xd3,0x5,0x76,0x6,0xa5,0x6,0x22,0x6,0x22,0x5, +0xfa,0x3,0xb,0x3,0xd5,0x1,0xce,0xff,0xee,0xfd,0xee,0xfc, +0x33,0xfc,0x9a,0xfb,0x80,0xfb,0xc1,0xfb,0x8b,0xfc,0x2d,0xfe, +0x10,0x0,0xe0,0x1,0xe5,0x3,0x7e,0x5,0x2,0x6,0xf9,0x5, +0x5c,0x5,0x9f,0x3,0xac,0x1,0x37,0x0,0x7c,0xfe,0xc8,0xfc, +0xb,0xfc,0x85,0xfb,0xe3,0xfa,0x19,0xfb,0xb7,0xfb,0xd7,0xfb, +0xf9,0xfb,0x67,0xfc,0xa4,0xfc,0x97,0xfc,0x8c,0xfc,0xf8,0xfc, +0xd2,0xfd,0x82,0xfe,0x48,0xff,0x89,0x0,0x78,0x1,0xe9,0x1, +0xb5,0x2,0x97,0x3,0xc5,0x3,0x6c,0x3,0x2,0x3,0xbd,0x2, +0x5a,0x2,0x90,0x1,0xdf,0x0,0x77,0x0,0xb9,0xff,0xdb,0xfe, +0x68,0xfe,0xff,0xfd,0xbd,0xfd,0x39,0xfe,0x6,0xff,0xce,0xff, +0x10,0x1,0xc5,0x2,0x6d,0x4,0xc4,0x5,0x67,0x6,0x20,0x6, +0x78,0x5,0xd1,0x4,0xa6,0x3,0xcb,0x1,0xff,0xff,0x78,0xfe, +0xe7,0xfc,0xda,0xfb,0xb7,0xfb,0x5,0xfc,0xf1,0xfc,0xba,0xfe, +0x70,0x0,0xa6,0x1,0xcb,0x2,0x94,0x3,0x9d,0x3,0x38,0x3, +0x9e,0x2,0xee,0x1,0x29,0x1,0x7,0x0,0xd7,0xfe,0x36,0xfe, +0xee,0xfd,0xc9,0xfd,0xf5,0xfd,0x3c,0xfe,0xa8,0xfe,0xcb,0xff, +0x62,0x1,0xae,0x2,0xce,0x3,0xfa,0x4,0xb3,0x5,0xb3,0x5, +0x23,0x5,0xfd,0x3,0x62,0x2,0xd3,0x0,0x74,0xff,0x3f,0xfe, +0x59,0xfd,0xb9,0xfc,0x9e,0xfc,0x7d,0xfd,0xce,0xfe,0xe4,0xff, +0x1a,0x1,0x52,0x2,0xde,0x2,0xf9,0x2,0xc2,0x2,0xa4,0x1, +0xe2,0xff,0x1e,0xfe,0x4d,0xfc,0x5f,0xfa,0x57,0xf8,0x48,0xf6, +0xba,0xf4,0xe4,0xf3,0x95,0xf3,0x5,0xf4,0x7a,0xf5,0x1c,0xf8, +0x3b,0xfc,0x97,0x1,0x5b,0x7,0xf3,0xc,0xc9,0x11,0x16,0x15, +0x64,0x16,0xa1,0x15,0xb9,0x12,0x13,0xd,0xb5,0x4,0xf3,0xfb, +0x3,0xf5,0x87,0xef,0xae,0xeb,0xb1,0xeb,0xca,0xef,0x83,0xf5, +0x50,0xfb,0xf8,0x0,0xeb,0x5,0x68,0x9,0x1c,0xb,0x2f,0xb, +0x1c,0xa,0x2c,0x8,0x4e,0x5,0xd0,0x1,0x92,0xfe,0x17,0xfc, +0x2e,0xfa,0xd2,0xf8,0x69,0xf8,0x39,0xf9,0x1a,0xfb,0x30,0xfd, +0x96,0xfe,0x9f,0xff,0xaf,0x0,0xe3,0x0,0xc0,0xff,0x2b,0xfe, +0xe0,0xfc,0xfb,0xfb,0x52,0xfb,0xbb,0xfa,0x9d,0xfa,0x3b,0xfb, +0x24,0xfc,0x66,0xfd,0x1c,0xff,0x82,0x0,0x83,0x1,0xcd,0x2, +0xfa,0x3,0x66,0x4,0x82,0x4,0x7,0x5,0x3,0x6,0xa8,0x6, +0x45,0x6,0x79,0x5,0xc8,0x4,0x8c,0x3,0xb9,0x1,0xeb,0xff, +0x14,0xfe,0x70,0xfc,0x9f,0xfb,0x46,0xfb,0x8,0xfb,0x8d,0xfb, +0x28,0xfd,0x45,0xff,0x64,0x1,0x69,0x3,0x2c,0x5,0x4b,0x6, +0x7e,0x6,0xd3,0x5,0x61,0x4,0x42,0x2,0xe7,0xff,0xfc,0xfd, +0xc5,0xfc,0xf4,0xfb,0x51,0xfb,0x38,0xfb,0xd1,0xfb,0x99,0xfc, +0x24,0xfd,0x7e,0xfd,0xa9,0xfd,0x7f,0xfd,0xe5,0xfc,0x29,0xfc, +0xda,0xfb,0xf0,0xfb,0x2d,0xfc,0xff,0xfc,0x98,0xfe,0x49,0x0, +0xc2,0x1,0x39,0x3,0x86,0x4,0x63,0x5,0xae,0x5,0x48,0x5, +0x6a,0x4,0x77,0x3,0x6b,0x2,0x10,0x1,0x90,0xff,0x6d,0xfe, +0xd9,0xfd,0x78,0xfd,0x34,0xfd,0x75,0xfd,0x58,0xfe,0xaf,0xff, +0x48,0x1,0xb2,0x2,0xc4,0x3,0xd2,0x4,0xd1,0x5,0x60,0x6, +0x3c,0x6,0x4a,0x5,0x4,0x4,0x3,0x3,0xf3,0x1,0x80,0x0, +0x5b,0xff,0xcb,0xfe,0x49,0xfe,0xc3,0xfd,0x96,0xfd,0xdc,0xfd, +0x83,0xfe,0x63,0xff,0x5c,0x0,0x5a,0x1,0x17,0x2,0x55,0x2, +0x28,0x2,0xba,0x1,0x47,0x1,0xe4,0x0,0x66,0x0,0xe7,0xff, +0x9b,0xff,0x46,0xff,0xe2,0xfe,0xa8,0xfe,0x6a,0xfe,0x51,0xfe, +0xf1,0xfe,0x7,0x0,0x19,0x1,0x3d,0x2,0x3e,0x3,0x9,0x4, +0x2,0x5,0x8f,0x5,0xec,0x4,0xd1,0x3,0xb4,0x2,0x24,0x1, +0x85,0xff,0x2e,0xfe,0xbc,0xfc,0xbd,0xfb,0xe9,0xfb,0xb8,0xfc, +0xdd,0xfd,0x6b,0xff,0xb1,0x0,0x70,0x1,0x2a,0x2,0xbd,0x2, +0xba,0x2,0x2,0x2,0x92,0x0,0xc6,0xfe,0xca,0xfc,0x63,0xfa, +0x1f,0xf8,0x87,0xf6,0x1e,0xf5,0xa,0xf4,0xfe,0xf3,0xa8,0xf4, +0x18,0xf6,0x31,0xf9,0xc3,0xfd,0x11,0x3,0xd6,0x8,0x37,0xe, +0x24,0x12,0x51,0x14,0xac,0x14,0x3d,0x13,0xd1,0xf,0xc5,0x9, +0x5,0x2,0xeb,0xfa,0x28,0xf5,0x5f,0xf0,0xd7,0xed,0x8,0xef, +0x3d,0xf3,0x8f,0xf8,0xaf,0xfd,0x35,0x2,0xe5,0x5,0x44,0x8, +0x15,0x9,0x92,0x8,0x2b,0x7,0x49,0x5,0xea,0x2,0xe,0x0, +0x92,0xfd,0x10,0xfc,0xf7,0xfa,0x1a,0xfa,0x39,0xfa,0x98,0xfb, +0x9f,0xfd,0x55,0xff,0x21,0x0,0x82,0x0,0xc7,0x0,0x2e,0x0, +0x9c,0xfe,0x2,0xfd,0xc4,0xfb,0xce,0xfa,0x38,0xfa,0x1d,0xfa, +0xad,0xfa,0xf0,0xfb,0xa0,0xfd,0x7d,0xff,0x14,0x1,0x12,0x2, +0xf0,0x2,0xd4,0x3,0x1e,0x4,0xe9,0x3,0xd9,0x3,0x26,0x4, +0xe3,0x4,0x85,0x5,0x38,0x5,0x96,0x4,0x4f,0x4,0x7f,0x3, +0xe6,0x1,0x51,0x0,0x9f,0xfe,0xce,0xfc,0xae,0xfb,0x9,0xfb, +0x7d,0xfa,0xfa,0xfa,0xca,0xfc,0xee,0xfe,0x11,0x1,0x44,0x3, +0x1,0x5,0xf8,0x5,0x1b,0x6,0x4a,0x5,0xbb,0x3,0xbc,0x1, +0x9a,0xff,0x14,0xfe,0x41,0xfd,0x4a,0xfc,0x79,0xfb,0xb5,0xfb, +0x81,0xfc,0x3d,0xfd,0x17,0xfe,0xaf,0xfe,0x9e,0xfe,0x3f,0xfe, +0x7d,0xfd,0x4b,0xfc,0x70,0xfb,0x21,0xfb,0xd,0xfb,0x9b,0xfb, +0xec,0xfc,0x7d,0xfe,0x17,0x0,0xa6,0x1,0x1d,0x3,0x88,0x4, +0x54,0x5,0x1b,0x5,0x99,0x4,0x14,0x4,0xdc,0x2,0x8,0x1, +0x62,0xff,0x20,0xfe,0x2b,0xfd,0x9a,0xfc,0x77,0xfc,0xd3,0xfc, +0xe4,0xfd,0x89,0xff,0x27,0x1,0x75,0x2,0x96,0x3,0x6f,0x4, +0xf1,0x4,0x1a,0x5,0x66,0x4,0xed,0x2,0xea,0x1,0x82,0x1, +0xdd,0x0,0x38,0x0,0x1,0x0,0xe0,0xff,0xd1,0xff,0xed,0xff, +0xfe,0xff,0x54,0x0,0xf3,0x0,0x48,0x1,0x86,0x1,0xea,0x1, +0xd5,0x1,0x52,0x1,0x8,0x1,0xba,0x0,0x1d,0x0,0x9d,0xff, +0x5a,0xff,0x1a,0xff,0x2,0xff,0x18,0xff,0xe,0xff,0xef,0xfe, +0x9,0xff,0x47,0xff,0x9c,0xff,0x54,0x0,0x50,0x1,0x8,0x2, +0x94,0x2,0x5e,0x3,0x2b,0x4,0x79,0x4,0x34,0x4,0x85,0x3, +0x90,0x2,0x86,0x1,0x7c,0x0,0x3c,0xff,0xe2,0xfd,0x2f,0xfd, +0x2f,0xfd,0x59,0xfd,0x12,0xfe,0x72,0xff,0x50,0x0,0xc1,0x0, +0xc3,0x1,0x7a,0x2,0xed,0x1,0xf5,0x0,0xf1,0xff,0x59,0xfe, +0x47,0xfc,0x13,0xfa,0xfd,0xf7,0x47,0xf6,0xce,0xf4,0xd5,0xf3, +0xfd,0xf3,0x25,0xf5,0x3d,0xf7,0xcb,0xfa,0x9c,0xff,0xf0,0x4, +0x3b,0xa,0xb6,0xe,0x9e,0x11,0xc5,0x12,0x6f,0x12,0xad,0x10, +0xb2,0xc,0x48,0x6,0x51,0xff,0x6d,0xf9,0x76,0xf4,0xb9,0xf0, +0x66,0xef,0x5,0xf1,0x9,0xf5,0xbb,0xf9,0xdb,0xfd,0xe2,0x1, +0x7e,0x5,0x4a,0x7,0xa7,0x7,0x51,0x7,0xd4,0x5,0xb3,0x3, +0xa3,0x1,0x35,0xff,0xf9,0xfc,0xd6,0xfb,0x2b,0xfb,0xbf,0xfa, +0x4c,0xfb,0xcf,0xfc,0xc2,0xfe,0x49,0x0,0xba,0x0,0xd4,0x0, +0xdb,0x0,0x9a,0xff,0x47,0xfd,0x48,0xfb,0xbb,0xf9,0x9c,0xf8, +0x6b,0xf8,0xee,0xf8,0x21,0xfa,0x58,0xfc,0xcd,0xfe,0xc0,0x0, +0x64,0x2,0x89,0x3,0x15,0x4,0x9c,0x4,0xce,0x4,0x13,0x4, +0x5d,0x3,0x81,0x3,0xbe,0x3,0x91,0x3,0x6d,0x3,0x8d,0x3, +0xb2,0x3,0x6b,0x3,0x7c,0x2,0x2c,0x1,0xb9,0xff,0x34,0xfe, +0xe4,0xfc,0xb0,0xfb,0x6e,0xfa,0x2e,0xfa,0xa4,0xfb,0xa7,0xfd, +0x70,0xff,0x70,0x1,0x42,0x3,0x42,0x4,0xd9,0x4,0x15,0x5, +0x77,0x4,0x40,0x3,0xee,0x1,0xa1,0x0,0x76,0xff,0x3b,0xfe, +0xf8,0xfc,0x88,0xfc,0xd,0xfd,0x87,0xfd,0xbc,0xfd,0xd,0xfe, +0x32,0xfe,0xfa,0xfd,0x88,0xfd,0x9f,0xfc,0x93,0xfb,0x52,0xfb, +0x9b,0xfb,0xee,0xfb,0xf7,0xfc,0x9d,0xfe,0xf2,0xff,0x6d,0x1, +0x6b,0x3,0xab,0x4,0xe2,0x4,0x18,0x5,0x3f,0x5,0xbc,0x4, +0xa4,0x3,0x12,0x2,0x4b,0x0,0xdd,0xfe,0xd7,0xfd,0x19,0xfd, +0xcb,0xfc,0x2b,0xfd,0x4d,0xfe,0xb1,0xff,0xa7,0x0,0x58,0x1, +0x19,0x2,0xb0,0x2,0x3,0x3,0x4,0x3,0x8b,0x2,0xf,0x2, +0xe5,0x1,0xb3,0x1,0x59,0x1,0xe7,0x0,0x6a,0x0,0x5c,0x0, +0xb8,0x0,0xcc,0x0,0x9a,0x0,0x8e,0x0,0xc2,0x0,0x43,0x1, +0xb7,0x1,0xc0,0x1,0xbb,0x1,0xa7,0x1,0x19,0x1,0x74,0x0, +0xd7,0xff,0xdd,0xfe,0x18,0xfe,0x17,0xfe,0x2d,0xfe,0xea,0xfd, +0xba,0xfd,0xeb,0xfd,0x65,0xfe,0xfb,0xfe,0xdb,0xff,0x37,0x1, +0x6e,0x2,0x1c,0x3,0xb4,0x3,0x12,0x4,0xec,0x3,0xea,0x3, +0x8,0x4,0x71,0x3,0x57,0x2,0x4a,0x1,0x2b,0x0,0x1a,0xff, +0x71,0xfe,0x22,0xfe,0x3b,0xfe,0xe1,0xfe,0xc5,0xff,0x7f,0x0, +0x0,0x1,0x76,0x1,0xd7,0x1,0xc2,0x1,0xf,0x1,0xfb,0xff, +0x92,0xfe,0xba,0xfc,0xad,0xfa,0xa2,0xf8,0x95,0xf6,0xff,0xf4, +0x51,0xf4,0x28,0xf4,0x88,0xf4,0x42,0xf6,0x14,0xf9,0x5d,0xfc, +0xf5,0x0,0xc4,0x6,0xc1,0xb,0x49,0xf,0xd1,0x11,0x9f,0x12, +0xae,0x11,0xa4,0xf,0x6d,0xb,0xd5,0x4,0x3d,0xfe,0xcc,0xf8, +0xf0,0xf3,0x49,0xf0,0x36,0xef,0x2d,0xf1,0x5d,0xf5,0x8,0xfa, +0x43,0xfe,0x52,0x2,0xc4,0x5,0xb5,0x7,0x40,0x8,0xed,0x7, +0xd4,0x6,0xd1,0x4,0x2d,0x2,0xb1,0xff,0x99,0xfd,0xb8,0xfb, +0x9c,0xfa,0x99,0xfa,0x31,0xfb,0x66,0xfc,0x17,0xfe,0x4f,0xff, +0xf4,0xff,0x73,0x0,0x29,0x0,0x95,0xfe,0x5f,0xfc,0x6e,0xfa, +0x2f,0xf9,0x89,0xf8,0x6a,0xf8,0x1e,0xf9,0xaa,0xfa,0xb7,0xfc, +0xdb,0xfe,0x83,0x0,0xae,0x1,0xdc,0x2,0xc7,0x3,0x20,0x4, +0x36,0x4,0xf1,0x3,0x8f,0x3,0xd7,0x3,0x37,0x4,0xe3,0x3, +0xa5,0x3,0xfd,0x3,0x50,0x4,0x1f,0x4,0x15,0x3,0x71,0x1, +0xf3,0xff,0x8d,0xfe,0xe3,0xfc,0x28,0xfb,0xca,0xf9,0xa4,0xf9, +0x6,0xfb,0xbf,0xfc,0x48,0xfe,0x35,0x0,0x21,0x2,0x9c,0x3, +0xf9,0x4,0xb8,0x5,0x68,0x5,0x9b,0x4,0x8c,0x3,0x39,0x2, +0xc6,0x0,0xf4,0xfe,0x42,0xfd,0xb1,0xfc,0xb9,0xfc,0x8d,0xfc, +0x7e,0xfc,0x9b,0xfc,0xb4,0xfc,0xd8,0xfc,0x6f,0xfc,0x55,0xfb, +0xb1,0xfa,0x2,0xfb,0xbf,0xfb,0xb9,0xfc,0xea,0xfd,0x42,0xff, +0xd5,0x0,0x59,0x2,0x8b,0x3,0x6e,0x4,0xcb,0x4,0xcb,0x4, +0xe9,0x4,0x94,0x4,0x42,0x3,0xde,0x1,0xfe,0x0,0x1e,0x0, +0x1f,0xff,0x30,0xfe,0x7d,0xfd,0xa0,0xfd,0x6a,0xfe,0xca,0xfe, +0xdc,0xfe,0x4b,0xff,0xeb,0xff,0xb9,0x0,0xbc,0x1,0x56,0x2, +0xb6,0x2,0x6c,0x3,0xe8,0x3,0xc9,0x3,0x5a,0x3,0x86,0x2, +0xa6,0x1,0x4a,0x1,0xe9,0x0,0x24,0x0,0x89,0xff,0x5d,0xff, +0xd1,0xff,0xd6,0x0,0x74,0x1,0x87,0x1,0xe6,0x1,0x44,0x2, +0x1,0x2,0x72,0x1,0xb8,0x0,0xc5,0xff,0xf7,0xfe,0x57,0xfe, +0xbc,0xfd,0x4a,0xfd,0xe,0xfd,0x3a,0xfd,0xff,0xfd,0xfb,0xfe, +0xff,0xff,0x4c,0x1,0xcf,0x2,0x3e,0x4,0x36,0x5,0x54,0x5, +0xfa,0x4,0xb5,0x4,0x32,0x4,0x18,0x3,0xaa,0x1,0x2f,0x0, +0xe2,0xfe,0x0,0xfe,0x7a,0xfd,0x59,0xfd,0xec,0xfd,0x2c,0xff, +0x6e,0x0,0x1d,0x1,0x87,0x1,0x11,0x2,0x4f,0x2,0xf1,0x1, +0x35,0x1,0xf7,0xff,0x7,0xfe,0xf3,0xfb,0x14,0xfa,0x15,0xf8, +0xfc,0xf5,0x7a,0xf4,0xe4,0xf3,0xee,0xf3,0xa0,0xf4,0x8e,0xf6, +0xab,0xf9,0x94,0xfd,0x91,0x2,0x4b,0x8,0x4f,0xd,0xf6,0x10, +0x58,0x13,0xe,0x14,0xfc,0x12,0x37,0x10,0x3,0xb,0xa8,0x3, +0x6b,0xfc,0x98,0xf6,0xa6,0xf1,0x36,0xee,0x2e,0xee,0x8a,0xf1, +0x35,0xf6,0xe2,0xfa,0x8c,0xff,0xde,0x3,0x1c,0x7,0xf4,0x8, +0x89,0x9,0xb,0x9,0x6a,0x7,0xc5,0x4,0xdc,0x1,0x3a,0xff, +0xc5,0xfc,0xae,0xfa,0x73,0xf9,0x4e,0xf9,0x34,0xfa,0x9c,0xfb, +0xf1,0xfc,0x58,0xfe,0xb8,0xff,0x33,0x0,0x8a,0xff,0x37,0xfe, +0x9e,0xfc,0x3b,0xfb,0x59,0xfa,0xd1,0xf9,0xb8,0xf9,0x4e,0xfa, +0x8f,0xfb,0x17,0xfd,0x44,0xfe,0x26,0xff,0x52,0x0,0x76,0x1, +0x1e,0x2,0xbb,0x2,0x4b,0x3,0x8c,0x3,0xf,0x4,0xe9,0x4, +0x5c,0x5,0x4f,0x5,0x45,0x5,0x90,0x5,0xca,0x5,0xdf,0x4, +0xca,0x2,0xaf,0x0,0xcc,0xfe,0xe8,0xfc,0x4e,0xfb,0xeb,0xf9, +0xfb,0xf8,0x7c,0xf9,0x19,0xfb,0xc5,0xfc,0xb3,0xfe,0x1e,0x1, +0x4d,0x3,0xe6,0x4,0xfd,0x5,0x50,0x6,0xa3,0x5,0x70,0x4, +0x54,0x3,0xee,0x1,0xcf,0xff,0xe4,0xfd,0xe8,0xfc,0x7c,0xfc, +0x88,0xfc,0xc1,0xfc,0x74,0xfc,0x2f,0xfc,0x76,0xfc,0x3c,0xfc, +0x55,0xfb,0xca,0xfa,0xb1,0xfa,0xf0,0xfa,0xcb,0xfb,0xe6,0xfc, +0x24,0xfe,0xe2,0xff,0xaa,0x1,0xe9,0x2,0xd4,0x3,0x75,0x4, +0xb0,0x4,0xc8,0x4,0xc7,0x4,0x4f,0x4,0x5c,0x3,0x6d,0x2, +0xbf,0x1,0xf7,0x0,0xd7,0xff,0xae,0xfe,0xf5,0xfd,0xd0,0xfd, +0xdd,0xfd,0xaf,0xfd,0x9f,0xfd,0x3f,0xfe,0x79,0xff,0xf9,0x0, +0x73,0x2,0xa2,0x3,0xa0,0x4,0x7a,0x5,0xca,0x5,0x6a,0x5, +0x7c,0x4,0x1d,0x3,0xc2,0x1,0xc2,0x0,0xd7,0xff,0xe3,0xfe, +0x42,0xfe,0x6f,0xfe,0x60,0xff,0x4b,0x0,0xe0,0x0,0xa5,0x1, +0x72,0x2,0xbd,0x2,0xaa,0x2,0x19,0x2,0x1,0x1,0x1c,0x0, +0x54,0xff,0x3e,0xfe,0x95,0xfd,0x68,0xfd,0xfd,0xfc,0xf3,0xfc, +0xd4,0xfd,0xf3,0xfe,0x2a,0x0,0xb4,0x1,0x5b,0x3,0xf3,0x4, +0xe2,0x5,0xbe,0x5,0x51,0x5,0xc1,0x4,0x73,0x3,0xef,0x1, +0x78,0x0,0x84,0xfe,0xe7,0xfc,0x5e,0xfc,0x0,0xfc,0xf2,0xfb, +0x2f,0xfd,0xca,0xfe,0xb5,0xff,0xa0,0x0,0xb2,0x1,0x2e,0x2, +0x57,0x2,0x7f,0x2,0xe6,0x1,0x49,0x0,0x73,0xfe,0xb1,0xfc, +0xa9,0xfa,0x85,0xf8,0x9f,0xf6,0xeb,0xf4,0xbd,0xf3,0xc5,0xf3, +0xe6,0xf4,0xd5,0xf6,0x2b,0xfa,0xfd,0xfe,0x49,0x4,0xbb,0x9, +0x44,0xf,0x68,0x13,0x2a,0x15,0x59,0x15,0xeb,0x13,0x9c,0xf, +0xb5,0x8,0xda,0x0,0x6c,0xf9,0x55,0xf3,0xe6,0xee,0xad,0xec, +0x5,0xee,0x92,0xf2,0xe5,0xf7,0x8,0xfd,0x4c,0x2,0xa3,0x6, +0x20,0x9,0x63,0xa,0xb3,0xa,0xa2,0x9,0x31,0x7,0xc5,0x3, +0x1f,0x0,0x5,0xfd,0x4d,0xfa,0xde,0xf7,0xb3,0xf6,0x5d,0xf7, +0x0,0xf9,0xbe,0xfa,0xa0,0xfc,0xc1,0xfe,0x91,0x0,0x3f,0x1, +0xa4,0x0,0x6b,0xff,0x26,0xfe,0xe3,0xfc,0xca,0xfb,0x2c,0xfb, +0x4,0xfb,0x61,0xfb,0x63,0xfc,0x6d,0xfd,0x3,0xfe,0xcd,0xfe, +0x18,0x0,0x1d,0x1,0xc1,0x1,0x82,0x2,0x28,0x3,0x9b,0x3, +0x68,0x4,0x82,0x5,0x30,0x6,0x4d,0x6,0x5b,0x6,0x70,0x6, +0xec,0x5,0x67,0x4,0x32,0x2,0xcb,0xff,0xb3,0xfd,0x23,0xfc, +0xbf,0xfa,0x98,0xf9,0x8c,0xf9,0x9e,0xfa,0x21,0xfc,0x1d,0xfe, +0x7e,0x0,0x91,0x2,0x31,0x4,0x79,0x5,0xf0,0x5,0x4d,0x5, +0xf0,0x3,0x71,0x2,0x25,0x1,0xc0,0xff,0x10,0xfe,0xcd,0xfc, +0x7c,0xfc,0xab,0xfc,0xf9,0xfc,0x2f,0xfd,0xe6,0xfc,0x6b,0xfc, +0x46,0xfc,0xd7,0xfb,0xc9,0xfa,0x3e,0xfa,0x8c,0xfa,0xd2,0xfa, +0x61,0xfb,0xe7,0xfc,0xbb,0xfe,0x79,0x0,0x52,0x2,0xa7,0x3, +0x54,0x4,0xb,0x5,0x73,0x5,0x2f,0x5,0xda,0x4,0x3c,0x4, +0xe0,0x2,0x9f,0x1,0xdf,0x0,0xa,0x0,0x2d,0xff,0x8b,0xfe, +0x10,0xfe,0xea,0xfd,0x2c,0xfe,0x7d,0xfe,0xe9,0xfe,0xe1,0xff, +0x73,0x1,0x1,0x3,0x19,0x4,0x16,0x5,0xe3,0x5,0xe2,0x5, +0x73,0x5,0xdf,0x4,0x51,0x3,0x2a,0x1,0xb9,0xff,0xb7,0xfe, +0xaa,0xfd,0x19,0xfd,0xf6,0xfc,0x43,0xfd,0x82,0xfe,0x0,0x0, +0xf0,0x0,0xe8,0x1,0xf7,0x2,0x41,0x3,0xdb,0x2,0x4b,0x2, +0x72,0x1,0x54,0x0,0x59,0xff,0xa9,0xfe,0x1e,0xfe,0xa5,0xfd, +0x6a,0xfd,0xb6,0xfd,0xb4,0xfe,0x2d,0x0,0xad,0x1,0x19,0x3, +0x99,0x4,0xea,0x5,0x91,0x6,0x6c,0x6,0x85,0x5,0x19,0x4, +0x80,0x2,0xc6,0x0,0x1,0xff,0x7c,0xfd,0x59,0xfc,0xb8,0xfb, +0xab,0xfb,0x11,0xfc,0x3,0xfd,0x7e,0xfe,0xf0,0xff,0x18,0x1, +0x0,0x2,0x58,0x2,0x53,0x2,0x52,0x2,0xb0,0x1,0x9,0x0, +0x1b,0xfe,0x36,0xfc,0x30,0xfa,0x43,0xf8,0x82,0xf6,0xec,0xf4, +0x19,0xf4,0x8e,0xf4,0x1,0xf6,0x40,0xf8,0xd4,0xfb,0xe3,0x0, +0x66,0x6,0xa1,0xb,0x71,0x10,0xaf,0x13,0x6f,0x14,0x9c,0x13, +0x5a,0x11,0x2a,0xc,0x8d,0x4,0x3,0xfd,0xb3,0xf6,0x9a,0xf1, +0x69,0xee,0x27,0xee,0xfe,0xf0,0xd1,0xf5,0x16,0xfb,0x27,0x0, +0xc6,0x4,0x23,0x8,0xc4,0x9,0x49,0xa,0x2b,0xa,0xae,0x8, +0x62,0x5,0x88,0x1,0x61,0xfe,0xa0,0xfb,0xf2,0xf8,0xf,0xf7, +0xb5,0xf6,0xf1,0xf7,0xd8,0xf9,0x6e,0xfb,0x2a,0xfd,0x66,0xff, +0xb6,0x0,0x83,0x0,0xd4,0xff,0xc7,0xfe,0x5c,0xfd,0x76,0xfc, +0xd3,0xfb,0xed,0xfa,0xd3,0xfa,0xd3,0xfb,0xc6,0xfc,0x7b,0xfd, +0x64,0xfe,0x61,0xff,0x67,0x0,0x84,0x1,0x74,0x2,0xf,0x3, +0x76,0x3,0x19,0x4,0x2a,0x5,0xf7,0x5,0x26,0x6,0x31,0x6, +0xf6,0x5,0x37,0x5,0x3b,0x4,0x8c,0x2,0xf9,0xff,0xde,0xfd, +0xaa,0xfc,0x74,0xfb,0x7a,0xfa,0x6d,0xfa,0x13,0xfb,0x64,0xfc, +0x5c,0xfe,0x5e,0x0,0x26,0x2,0xa2,0x3,0x99,0x4,0x26,0x5, +0xf3,0x4,0x79,0x3,0xa0,0x1,0x6f,0x0,0x89,0xff,0x98,0xfe, +0xca,0xfd,0x31,0xfd,0x33,0xfd,0xdb,0xfd,0x4e,0xfe,0x45,0xfe, +0x9,0xfe,0x7b,0xfd,0xbc,0xfc,0xfa,0xfb,0xf4,0xfa,0x33,0xfa, +0x5e,0xfa,0xd8,0xfa,0x63,0xfb,0xb3,0xfc,0xa6,0xfe,0xac,0x0, +0x8d,0x2,0xea,0x3,0xc9,0x4,0x80,0x5,0xbd,0x5,0x6d,0x5, +0xf0,0x4,0xec,0x3,0x59,0x2,0x9,0x1,0x11,0x0,0x1b,0xff, +0x64,0xfe,0xf2,0xfd,0xc3,0xfd,0x29,0xfe,0xd8,0xfe,0x79,0xff, +0x6b,0x0,0xc9,0x1,0x44,0x3,0x91,0x4,0x46,0x5,0x72,0x5, +0x6c,0x5,0xf2,0x4,0x3,0x4,0x1,0x3,0x6f,0x1,0x5f,0xff, +0xc,0xfe,0x86,0xfd,0xff,0xfc,0xb5,0xfc,0xfd,0xfc,0xcb,0xfd, +0x3d,0xff,0xb1,0x0,0x67,0x1,0xfa,0x1,0xc1,0x2,0xef,0x2, +0x68,0x2,0xc7,0x1,0xd,0x1,0x2a,0x0,0x8e,0xff,0x5b,0xff, +0xa,0xff,0x72,0xfe,0x55,0xfe,0xd,0xff,0xfb,0xff,0xf,0x1, +0x94,0x2,0xe4,0x3,0xb4,0x4,0x8d,0x5,0xf8,0x5,0x49,0x5, +0x1f,0x4,0xde,0x2,0x4e,0x1,0xe0,0xff,0xde,0xfe,0xe7,0xfd, +0x1f,0xfd,0xcc,0xfc,0xbe,0xfc,0x14,0xfd,0x5,0xfe,0x3f,0xff, +0x74,0x0,0x60,0x1,0xb9,0x1,0xb6,0x1,0x9d,0x1,0x27,0x1, +0xc,0x0,0x5c,0xfe,0x62,0xfc,0x8e,0xfa,0xfd,0xf8,0x73,0xf7, +0xf3,0xf5,0xef,0xf4,0xf1,0xf4,0xf7,0xf5,0x96,0xf7,0x25,0xfa, +0x3d,0xfe,0x23,0x3,0xf7,0x7,0x91,0xc,0xf9,0xf,0x62,0x11, +0x8f,0x11,0x76,0x10,0xea,0xc,0x21,0x7,0x5e,0x0,0xf0,0xf9, +0x16,0xf5,0xd7,0xf1,0x24,0xf0,0x56,0xf1,0x56,0xf5,0xea,0xf9, +0x38,0xfe,0x8f,0x2,0x39,0x6,0x6d,0x8,0x33,0x9,0x1e,0x9, +0x85,0x8,0x95,0x6,0x34,0x3,0x2b,0x0,0x1,0xfe,0xa7,0xfb, +0x86,0xf9,0xb0,0xf8,0x28,0xf9,0x7c,0xfa,0xdf,0xfb,0x8,0xfd, +0x92,0xfe,0xed,0xff,0x11,0x0,0x8a,0xff,0xc0,0xfe,0x83,0xfd, +0x7d,0xfc,0xd8,0xfb,0xff,0xfa,0x7b,0xfa,0xf9,0xfa,0x1e,0xfc, +0x52,0xfd,0x24,0xfe,0xe4,0xfe,0x32,0x0,0x7f,0x1,0x62,0x2, +0x44,0x3,0xbe,0x3,0xe2,0x3,0xcf,0x4,0xc7,0x5,0x8a,0x5, +0x23,0x5,0x2c,0x5,0xb2,0x4,0xaf,0x3,0x54,0x2,0x3b,0x0, +0xf,0xfe,0xc0,0xfc,0xf4,0xfb,0x3e,0xfb,0xeb,0xfa,0x67,0xfb, +0xd8,0xfc,0xdf,0xfe,0xe4,0x0,0xa7,0x2,0xb,0x4,0xf6,0x4, +0x65,0x5,0x1e,0x5,0xec,0x3,0x3f,0x2,0xb6,0x0,0x8a,0xff, +0xbb,0xfe,0x27,0xfe,0xa1,0xfd,0x7e,0xfd,0x1a,0xfe,0xd9,0xfe, +0x19,0xff,0x1d,0xff,0xf8,0xfe,0x60,0xfe,0x8d,0xfd,0x82,0xfc, +0x8,0xfb,0xeb,0xf9,0xde,0xf9,0x3c,0xfa,0xb8,0xfa,0xee,0xfb, +0xec,0xfd,0x15,0x0,0xe3,0x1,0x44,0x3,0x82,0x4,0x76,0x5, +0xac,0x5,0x4b,0x5,0x72,0x4,0xf2,0x2,0x3d,0x1,0xdb,0xff, +0x90,0xfe,0x52,0xfd,0x87,0xfc,0x78,0xfc,0x28,0xfd,0x40,0xfe, +0x60,0xff,0xba,0x0,0x6c,0x2,0xfd,0x3,0x15,0x5,0xa2,0x5, +0x9c,0x5,0x37,0x5,0x93,0x4,0x90,0x3,0x3c,0x2,0xca,0x0, +0x55,0xff,0x31,0xfe,0xb2,0xfd,0xae,0xfd,0xd2,0xfd,0x26,0xfe, +0xdb,0xfe,0xfd,0xff,0x46,0x1,0x13,0x2,0x1b,0x2,0xee,0x1, +0xdf,0x1,0x7d,0x1,0xc1,0x0,0x20,0x0,0x95,0xff,0x25,0xff, +0x1d,0xff,0x25,0xff,0xd9,0xfe,0xb5,0xfe,0x22,0xff,0xd3,0xff, +0x8f,0x0,0x77,0x1,0x8a,0x2,0x78,0x3,0xeb,0x3,0xe5,0x3, +0x94,0x3,0xff,0x2,0x16,0x2,0xfd,0x0,0x2d,0x0,0xd4,0xff, +0x8b,0xff,0x3b,0xff,0x34,0xff,0x3a,0xff,0x26,0xff,0x74,0xff, +0x11,0x0,0x7e,0x0,0xcd,0x0,0x10,0x1,0x8,0x1,0xa5,0x0, +0xf6,0xff,0x1f,0xff,0x39,0xfe,0x2,0xfd,0x80,0xfb,0xe,0xfa, +0x99,0xf8,0x24,0xf7,0x18,0xf6,0xa5,0xf5,0xf6,0xf5,0x20,0xf7, +0xfc,0xf8,0xf3,0xfb,0x50,0x0,0x39,0x5,0xe4,0x9,0xd8,0xd, +0x44,0x10,0x2a,0x11,0x11,0x11,0xd,0xf,0x2c,0xa,0x9f,0x3, +0x40,0xfd,0xb7,0xf7,0x2d,0xf3,0x75,0xf0,0x83,0xf0,0x24,0xf3, +0x49,0xf7,0xe5,0xfb,0x19,0x0,0xb8,0x3,0xd0,0x6,0x8a,0x8, +0xa0,0x8,0x22,0x8,0xf9,0x6,0x58,0x4,0x41,0x1,0xce,0xfe, +0x95,0xfc,0x8d,0xfa,0x6b,0xf9,0x70,0xf9,0x7d,0xfa,0x11,0xfc, +0x8e,0xfd,0xff,0xfe,0x5a,0x0,0xeb,0x0,0x75,0x0,0x5e,0xff, +0xe3,0xfd,0x4d,0xfc,0xd,0xfb,0x5,0xfa,0x10,0xf9,0x1,0xf9, +0x55,0xfa,0x8,0xfc,0x5b,0xfd,0xc2,0xfe,0x60,0x0,0xeb,0x1, +0x61,0x3,0x71,0x4,0xd2,0x4,0xf3,0x4,0xf,0x5,0xef,0x4, +0x89,0x4,0xd5,0x3,0x25,0x3,0x2,0x3,0xdc,0x2,0xd3,0x1, +0x4b,0x0,0xf0,0xfe,0xd5,0xfd,0x8,0xfd,0x6f,0xfc,0xd6,0xfb, +0xb2,0xfb,0xa4,0xfc,0x79,0xfe,0x60,0x0,0xd6,0x1,0x2,0x3, +0x4,0x4,0xa4,0x4,0xa5,0x4,0xd4,0x3,0x63,0x2,0x8,0x1, +0x5,0x0,0x2b,0xff,0x8d,0xfe,0x8,0xfe,0x8b,0xfd,0xa6,0xfd, +0x40,0xfe,0x8c,0xfe,0x9a,0xfe,0x96,0xfe,0x26,0xfe,0x73,0xfd, +0xad,0xfc,0x96,0xfb,0x8e,0xfa,0x2a,0xfa,0x48,0xfa,0xc5,0xfa, +0xb6,0xfb,0x1e,0xfd,0xfa,0xfe,0xe9,0x0,0x6f,0x2,0x8d,0x3, +0x61,0x4,0xec,0x4,0x18,0x5,0xa3,0x4,0x8f,0x3,0x3a,0x2, +0xb5,0x0,0x25,0xff,0xe3,0xfd,0xec,0xfc,0x77,0xfc,0xfa,0xfc, +0xf7,0xfd,0xcf,0xfe,0xf6,0xff,0x9a,0x1,0x2e,0x3,0x82,0x4, +0x69,0x5,0x99,0x5,0x67,0x5,0x3,0x5,0x11,0x4,0xb9,0x2, +0x59,0x1,0xe8,0xff,0xad,0xfe,0xfb,0xfd,0x88,0xfd,0x76,0xfd, +0x36,0xfe,0x48,0xff,0x3f,0x0,0x6f,0x1,0x84,0x2,0xcf,0x2, +0x9b,0x2,0x5b,0x2,0xfa,0x1,0x52,0x1,0x41,0x0,0x1a,0xff, +0x90,0xfe,0x6d,0xfe,0x1f,0xfe,0xe4,0xfd,0xe2,0xfd,0xfc,0xfd, +0x9f,0xfe,0xcb,0xff,0xd4,0x0,0xbe,0x1,0xce,0x2,0x8e,0x3, +0xaa,0x3,0x67,0x3,0xe0,0x2,0xef,0x1,0xd4,0x0,0x17,0x0, +0xd9,0xff,0xd6,0xff,0xf5,0xff,0x29,0x0,0x48,0x0,0x84,0x0, +0x10,0x1,0x94,0x1,0xbe,0x1,0x81,0x1,0xf9,0x0,0x84,0x0, +0x15,0x0,0x34,0xff,0x2c,0xfe,0x79,0xfd,0x96,0xfc,0x1d,0xfb, +0xa4,0xf9,0x8e,0xf8,0x8b,0xf7,0x77,0xf6,0xac,0xf5,0xa3,0xf5, +0x7c,0xf6,0x2f,0xf8,0xa,0xfb,0x40,0xff,0x39,0x4,0x2c,0x9, +0xa9,0xd,0x15,0x11,0xf1,0x12,0x6f,0x13,0x3c,0x12,0x16,0xe, +0x57,0x7,0x50,0x0,0x1a,0xfa,0x7b,0xf4,0x71,0xf0,0x4c,0xef, +0xec,0xf0,0x8b,0xf4,0x37,0xf9,0xca,0xfd,0xca,0x1,0x1f,0x5, +0x5d,0x7,0x4e,0x8,0x2e,0x8,0x24,0x7,0x39,0x5,0x9c,0x2, +0xee,0xff,0xcc,0xfd,0x5,0xfc,0x8d,0xfa,0x25,0xfa,0x8,0xfb, +0x98,0xfc,0x48,0xfe,0xa0,0xff,0x84,0x0,0x30,0x1,0x1c,0x1, +0xb6,0xff,0xaa,0xfd,0xc5,0xfb,0x20,0xfa,0xbe,0xf8,0xc9,0xf7, +0xc5,0xf7,0x1d,0xf9,0x1a,0xfb,0xea,0xfc,0xce,0xfe,0xfb,0x0, +0x1a,0x3,0xf4,0x4,0x51,0x6,0xfa,0x6,0x0,0x7,0x8d,0x6, +0xfb,0x5,0x44,0x5,0xf6,0x3,0x9a,0x2,0x13,0x2,0xe0,0x1, +0x54,0x1,0x9b,0x0,0xab,0xff,0xab,0xfe,0x18,0xfe,0x9c,0xfd, +0xfe,0xfc,0xda,0xfc,0x52,0xfd,0x4a,0xfe,0xdf,0xff,0x5b,0x1, +0x27,0x2,0xdc,0x2,0x9e,0x3,0xd0,0x3,0x45,0x3,0x1f,0x2, +0xdf,0x0,0x3c,0x0,0xe5,0xff,0x46,0xff,0xb3,0xfe,0x65,0xfe, +0x3f,0xfe,0x62,0xfe,0x75,0xfe,0xff,0xfd,0x40,0xfd,0x77,0xfc, +0xb8,0xfb,0x34,0xfb,0x9f,0xfa,0xde,0xf9,0xab,0xf9,0x32,0xfa, +0x13,0xfb,0x75,0xfc,0x3e,0xfe,0xe3,0xff,0x5e,0x1,0xb4,0x2, +0x95,0x3,0x18,0x4,0x78,0x4,0x8e,0x4,0x3a,0x4,0x82,0x3, +0x79,0x2,0x57,0x1,0x4e,0x0,0x6c,0xff,0xbf,0xfe,0x4d,0xfe, +0x2c,0xfe,0x75,0xfe,0xfc,0xfe,0x86,0xff,0x44,0x0,0x73,0x1, +0xb3,0x2,0x73,0x3,0xe3,0x3,0x78,0x4,0xdc,0x4,0xb2,0x4, +0x1a,0x4,0x8,0x3,0xa6,0x1,0x86,0x0,0x93,0xff,0xa9,0xfe, +0x55,0xfe,0x88,0xfe,0xc6,0xfe,0x66,0xff,0x8a,0x0,0x9b,0x1, +0x53,0x2,0x9d,0x2,0x7e,0x2,0x55,0x2,0xfb,0x1,0xe,0x1, +0xe,0x0,0x68,0xff,0xd0,0xfe,0x29,0xfe,0xa6,0xfd,0x66,0xfd, +0x6e,0xfd,0xba,0xfd,0x86,0xfe,0xe0,0xff,0x1f,0x1,0x23,0x2, +0x6b,0x3,0x6d,0x4,0x6b,0x4,0xdd,0x3,0x1f,0x3,0x0,0x2, +0xd9,0x0,0xf3,0xff,0x29,0xff,0xae,0xfe,0xa6,0xfe,0xc4,0xfe, +0x2a,0xff,0x1c,0x0,0x21,0x1,0xa3,0x1,0xbb,0x1,0xbc,0x1, +0x9f,0x1,0x20,0x1,0x16,0x0,0xaf,0xfe,0x4e,0xfd,0x2,0xfc, +0x77,0xfa,0xad,0xf8,0x28,0xf7,0xf,0xf6,0x1,0xf5,0x38,0xf4, +0x86,0xf4,0xed,0xf5,0xf1,0xf7,0xf1,0xfa,0x4f,0xff,0x5d,0x4, +0x83,0x9,0x6f,0xe,0x20,0x12,0xfa,0x13,0x72,0x14,0x46,0x13, +0x64,0xf,0xec,0x8,0x77,0x1,0xb5,0xfa,0x1d,0xf5,0x91,0xf0, +0x3c,0xee,0x74,0xef,0x26,0xf3,0x82,0xf7,0x32,0xfc,0xb2,0x0, +0xfb,0x3,0x12,0x6,0x2f,0x7,0x25,0x7,0x5c,0x6,0x7,0x5, +0xc7,0x2,0x49,0x0,0x88,0xfe,0x1a,0xfd,0xa2,0xfb,0x0,0xfb, +0xa9,0xfb,0xfe,0xfc,0x63,0xfe,0x7b,0xff,0x2d,0x0,0xb3,0x0, +0xad,0x0,0x4b,0xff,0xf9,0xfc,0xed,0xfa,0x71,0xf9,0x45,0xf8, +0x7f,0xf7,0x73,0xf7,0x8e,0xf8,0xa4,0xfa,0xce,0xfc,0xcb,0xfe, +0xec,0x0,0xde,0x2,0x62,0x4,0xc6,0x5,0xcb,0x6,0x8,0x7, +0xcf,0x6,0x76,0x6,0xbf,0x5,0x71,0x4,0x20,0x3,0x98,0x2, +0x6e,0x2,0xbc,0x1,0xbc,0x0,0xb1,0xff,0x5f,0xfe,0x55,0xfd, +0xee,0xfc,0x74,0xfc,0xb,0xfc,0x6c,0xfc,0x71,0xfd,0x12,0xff, +0x3a,0x1,0xcf,0x2,0x8f,0x3,0x7a,0x4,0x4b,0x5,0xf3,0x4, +0xb7,0x3,0x69,0x2,0x40,0x1,0x51,0x0,0xa2,0xff,0x5,0xff, +0x93,0xfe,0x7c,0xfe,0x7b,0xfe,0x55,0xfe,0x11,0xfe,0x6e,0xfd, +0x63,0xfc,0x9a,0xfb,0x27,0xfb,0x70,0xfa,0xa7,0xf9,0x83,0xf9, +0xd,0xfa,0xed,0xfa,0x14,0xfc,0xac,0xfd,0x9d,0xff,0x5c,0x1, +0xb7,0x2,0xf5,0x3,0xd4,0x4,0x3,0x5,0xea,0x4,0xbb,0x4, +0x29,0x4,0x32,0x3,0xd,0x2,0xf6,0x0,0x11,0x0,0x48,0xff, +0xb8,0xfe,0x80,0xfe,0x7f,0xfe,0xd1,0xfe,0x3d,0xff,0x5f,0xff, +0xe2,0xff,0xfc,0x0,0x8b,0x1,0xca,0x1,0xbe,0x2,0x9f,0x3, +0xc8,0x3,0xbe,0x3,0x6d,0x3,0xdc,0x2,0x80,0x2,0xfa,0x1, +0x30,0x1,0xc1,0x0,0x7c,0x0,0x2a,0x0,0x45,0x0,0xd0,0x0, +0x53,0x1,0x6b,0x1,0xe,0x1,0xc6,0x0,0xbe,0x0,0x78,0x0, +0xfa,0xff,0x88,0xff,0x22,0xff,0xe6,0xfe,0xbf,0xfe,0x93,0xfe, +0xb9,0xfe,0xf3,0xfe,0xec,0xfe,0x61,0xff,0x7b,0x0,0x6e,0x1, +0x52,0x2,0x82,0x3,0x89,0x4,0xfd,0x4,0xcb,0x4,0xf,0x4, +0x17,0x3,0xd8,0x1,0x42,0x0,0xd6,0xfe,0xe5,0xfd,0x42,0xfd, +0xdf,0xfc,0xf9,0xfc,0xc9,0xfd,0x1b,0xff,0x6a,0x0,0x8b,0x1, +0x6c,0x2,0xc5,0x2,0xa5,0x2,0x14,0x2,0xe6,0x0,0x64,0xff, +0xc3,0xfd,0xad,0xfb,0x4e,0xf9,0x32,0xf7,0x90,0xf5,0x7c,0xf4, +0xf9,0xf3,0x24,0xf4,0x72,0xf5,0xe1,0xf7,0x2d,0xfb,0x92,0xff, +0xdf,0x4,0x37,0xa,0xb,0xf,0xb7,0x12,0x6d,0x14,0x6a,0x14, +0x24,0x13,0xbc,0xf,0x6f,0x9,0xc6,0x1,0xb,0xfb,0x96,0xf5, +0x9,0xf1,0x98,0xee,0x73,0xef,0xf7,0xf2,0xb5,0xf7,0x83,0xfc, +0xcc,0x0,0x75,0x4,0xd6,0x6,0x68,0x7,0x23,0x7,0x8e,0x6, +0xe4,0x4,0x7d,0x2,0x88,0x0,0x8,0xff,0xb5,0xfd,0xac,0xfc, +0xf8,0xfb,0x27,0xfc,0x89,0xfd,0xa,0xff,0xdd,0xff,0x74,0x0, +0xe2,0x0,0x8e,0x0,0x4b,0xff,0x53,0xfd,0x33,0xfb,0xb9,0xf9, +0xfc,0xf8,0x82,0xf8,0x90,0xf8,0xca,0xf9,0xe0,0xfb,0x7,0xfe, +0xe1,0xff,0x59,0x1,0x73,0x2,0x55,0x3,0x1a,0x4,0xb4,0x4, +0xdb,0x4,0x8c,0x4,0x68,0x4,0x8a,0x4,0x3a,0x4,0xab,0x3, +0xa2,0x3,0xaf,0x3,0x11,0x3,0xfc,0x1,0xac,0x0,0xf1,0xfe, +0x1,0xfd,0x7e,0xfb,0xa4,0xfa,0x1c,0xfa,0xe,0xfa,0x34,0xfb, +0x5e,0xfd,0xc0,0xff,0x12,0x2,0x1,0x4,0x70,0x5,0xca,0x6, +0x68,0x7,0x68,0x6,0xac,0x4,0x17,0x3,0x77,0x1,0xfb,0xff, +0xda,0xfe,0xe7,0xfd,0x69,0xfd,0x6e,0xfd,0xa2,0xfd,0xd5,0xfd, +0x96,0xfd,0xf7,0xfc,0xa9,0xfc,0x70,0xfc,0xd8,0xfb,0x37,0xfb, +0x99,0xfa,0x45,0xfa,0xaf,0xfa,0x3d,0xfb,0x3,0xfc,0xd7,0xfd, +0xcd,0xff,0x31,0x1,0xf1,0x2,0x93,0x4,0x28,0x5,0x81,0x5, +0xdb,0x5,0x83,0x5,0xa7,0x4,0x78,0x3,0x13,0x2,0xf2,0x0, +0xea,0xff,0xe9,0xfe,0x6e,0xfe,0x39,0xfe,0xf,0xfe,0x34,0xfe, +0x5d,0xfe,0xad,0xfe,0xa0,0xff,0x74,0x0,0xc9,0x0,0x7d,0x1, +0x61,0x2,0xcf,0x2,0x18,0x3,0x45,0x3,0x24,0x3,0xfa,0x2, +0x9c,0x2,0xf3,0x1,0x8b,0x1,0x4a,0x1,0xdc,0x0,0xc5,0x0, +0xa,0x1,0xfe,0x0,0xbc,0x0,0x8e,0x0,0x3d,0x0,0x5,0x0, +0x5,0x0,0xa5,0xff,0x2,0xff,0xc5,0xfe,0xb3,0xfe,0x8d,0xfe, +0xa4,0xfe,0xdb,0xfe,0x17,0xff,0xa0,0xff,0x4a,0x0,0xed,0x0, +0xc5,0x1,0x8f,0x2,0x34,0x3,0xfe,0x3,0x81,0x4,0x6a,0x4, +0xa,0x4,0x50,0x3,0x51,0x2,0x5f,0x1,0x14,0x0,0xa1,0xfe, +0xd9,0xfd,0x69,0xfd,0x21,0xfd,0x9d,0xfd,0x7a,0xfe,0x61,0xff, +0xa2,0x0,0x9b,0x1,0xea,0x1,0x2d,0x2,0xc,0x2,0x25,0x1, +0xf2,0xff,0x3b,0xfe,0x19,0xfc,0x49,0xfa,0x57,0xf8,0x57,0xf6, +0x6d,0xf5,0xfa,0xf4,0x86,0xf4,0x8c,0xf5,0xe4,0xf7,0x83,0xfa, +0x57,0xfe,0x64,0x3,0x46,0x8,0xff,0xc,0x4,0x11,0xb8,0x12, +0xc7,0x12,0x22,0x12,0x35,0xf,0x5b,0x9,0x65,0x2,0xd1,0xfb, +0x3a,0xf6,0x7,0xf2,0x81,0xef,0x94,0xef,0xaa,0xf2,0x3c,0xf7, +0xde,0xfb,0x75,0x0,0x79,0x4,0xfc,0x6,0xe4,0x7,0x97,0x7, +0x8c,0x6,0xd5,0x4,0x50,0x2,0xea,0xff,0x87,0xfe,0x5e,0xfd, +0x7,0xfc,0x72,0xfb,0xe8,0xfb,0x37,0xfd,0x18,0xff,0x56,0x0, +0x90,0x0,0xc1,0x0,0x8b,0x0,0x19,0xff,0x1e,0xfd,0x28,0xfb, +0x6d,0xf9,0xad,0xf8,0xab,0xf8,0xde,0xf8,0x14,0xfa,0x67,0xfc, +0xaf,0xfe,0x98,0x0,0x29,0x2,0xb,0x3,0x5c,0x3,0x5b,0x3, +0x3c,0x3,0x3a,0x3,0x1,0x3,0xa3,0x2,0xea,0x2,0x69,0x3, +0x65,0x3,0xa3,0x3,0x4f,0x4,0x55,0x4,0x9b,0x3,0x74,0x2, +0x90,0x0,0x4f,0xfe,0x77,0xfc,0x10,0xfb,0xb,0xfa,0x8b,0xf9, +0xdb,0xf9,0x68,0xfb,0xd1,0xfd,0x29,0x0,0x52,0x2,0x5f,0x4, +0x0,0x6,0x31,0x7,0x7c,0x7,0x34,0x6,0x45,0x4,0xbe,0x2, +0x15,0x1,0x2a,0xff,0xc2,0xfd,0xcd,0xfc,0x3e,0xfc,0x6c,0xfc, +0xb8,0xfc,0xa0,0xfc,0xba,0xfc,0x1b,0xfd,0x44,0xfd,0x22,0xfd, +0x92,0xfc,0xac,0xfb,0x1e,0xfb,0xf1,0xfa,0xc5,0xfa,0xf,0xfb, +0x18,0xfc,0x6a,0xfd,0x0,0xff,0x20,0x1,0x36,0x3,0x88,0x4, +0x5a,0x5,0x10,0x6,0x34,0x6,0x8b,0x5,0xa8,0x4,0x9b,0x3, +0x25,0x2,0xcc,0x0,0xd3,0xff,0xe8,0xfe,0x4a,0xfe,0x17,0xfe, +0xd6,0xfd,0xd8,0xfd,0x81,0xfe,0x3f,0xff,0xf9,0xff,0xf7,0x0, +0xbe,0x1,0x46,0x2,0xd,0x3,0xb6,0x3,0xd7,0x3,0xa8,0x3, +0x1f,0x3,0x48,0x2,0x91,0x1,0xf5,0x0,0x58,0x0,0xf6,0xff, +0xee,0xff,0x3d,0x0,0xab,0x0,0xb7,0x0,0x7a,0x0,0x62,0x0, +0x3c,0x0,0xf0,0xff,0xb8,0xff,0x5f,0xff,0xc7,0xfe,0x50,0xfe, +0x2a,0xfe,0x47,0xfe,0x83,0xfe,0xca,0xfe,0x85,0xff,0xbd,0x0, +0xb3,0x1,0x54,0x2,0x9,0x3,0x83,0x3,0xb4,0x3,0xd6,0x3, +0x7f,0x3,0xb5,0x2,0x2,0x2,0x50,0x1,0xb8,0x0,0x71,0x0, +0xda,0xff,0x32,0xff,0x79,0xff,0xfe,0xff,0xec,0xff,0x8,0x0, +0x82,0x0,0xd5,0x0,0x39,0x1,0x7c,0x1,0x9,0x1,0x5c,0x0, +0xc8,0xff,0xb5,0xfe,0x29,0xfd,0xca,0xfb,0x9e,0xfa,0x52,0xf9, +0xa,0xf8,0x18,0xf7,0x7a,0xf6,0x46,0xf6,0xe4,0xf6,0x35,0xf8, +0xf8,0xf9,0xa7,0xfc,0x6d,0x0,0xbf,0x4,0x59,0x9,0x84,0xd, +0xfc,0xf,0xce,0x10,0xca,0x10,0x6a,0xf,0x80,0xb,0x27,0x5, +0x43,0xfe,0x9e,0xf8,0x2,0xf4,0x30,0xf0,0xfe,0xee,0x52,0xf1, +0x6f,0xf5,0x14,0xfa,0x27,0xff,0xb8,0x3,0xc6,0x6,0x54,0x8, +0x8f,0x8,0xb1,0x7,0x6,0x6,0x70,0x3,0x39,0x0,0x92,0xfd, +0xe3,0xfb,0x6e,0xfa,0x4c,0xf9,0x8e,0xf9,0x47,0xfb,0x7f,0xfd, +0x61,0xff,0x74,0x0,0xe8,0x0,0x2a,0x1,0xa4,0x0,0xb5,0xfe, +0x36,0xfc,0x15,0xfa,0x76,0xf8,0x88,0xf7,0x50,0xf7,0xf1,0xf7, +0xed,0xf9,0x9d,0xfc,0xc3,0xfe,0x93,0x0,0x31,0x2,0xce,0x2, +0xd1,0x2,0x27,0x3,0x47,0x3,0xc4,0x2,0x79,0x2,0xcf,0x2, +0x1e,0x3,0x17,0x3,0x45,0x3,0xe9,0x3,0x51,0x4,0xfd,0x3, +0x30,0x3,0xf1,0x1,0x2a,0x0,0x65,0xfe,0x8,0xfd,0xdd,0xfb, +0xd3,0xfa,0x5d,0xfa,0xfc,0xfa,0x99,0xfc,0x80,0xfe,0x2f,0x0, +0xbf,0x1,0x7a,0x3,0x38,0x5,0x19,0x6,0x77,0x5,0xee,0x3, +0x6e,0x2,0x4,0x1,0x62,0xff,0xa4,0xfd,0x5d,0xfc,0xf8,0xfb, +0x22,0xfc,0x69,0xfc,0xe7,0xfc,0x78,0xfd,0xcd,0xfd,0x13,0xfe, +0x25,0xfe,0x7b,0xfd,0x5f,0xfc,0x6f,0xfb,0xba,0xfa,0x4f,0xfa, +0x5b,0xfa,0xf8,0xfa,0x61,0xfc,0x6e,0xfe,0x7e,0x0,0x61,0x2, +0x2a,0x4,0x8a,0x5,0x30,0x6,0x12,0x6,0x63,0x5,0x82,0x4, +0x7c,0x3,0x1e,0x2,0xa8,0x0,0x7d,0xff,0xac,0xfe,0x4f,0xfe, +0x5e,0xfe,0x97,0xfe,0x14,0xff,0xe2,0xff,0x88,0x0,0x4,0x1, +0xce,0x1,0xa2,0x2,0x18,0x3,0x7b,0x3,0xe8,0x3,0xe,0x4, +0xcd,0x3,0x1c,0x3,0x1f,0x2,0x4e,0x1,0xb8,0x0,0x18,0x0, +0x97,0xff,0x88,0xff,0xf9,0xff,0xb3,0x0,0x2a,0x1,0x1e,0x1, +0xff,0x0,0x10,0x1,0xa,0x1,0xc2,0x0,0x47,0x0,0xb6,0xff, +0x48,0xff,0x10,0xff,0xfe,0xfe,0x20,0xff,0x4b,0xff,0x4f,0xff, +0x98,0xff,0x92,0x0,0xa7,0x1,0x20,0x2,0x66,0x2,0xf7,0x2, +0x5c,0x3,0x40,0x3,0xd9,0x2,0x1f,0x2,0x57,0x1,0x22,0x1, +0x31,0x1,0xf5,0x0,0xdc,0x0,0x17,0x1,0x27,0x1,0xc,0x1, +0xfb,0x0,0xe3,0x0,0xec,0x0,0x15,0x1,0xee,0x0,0x69,0x0, +0xe0,0xff,0x75,0xff,0xfa,0xfe,0x20,0xfe,0xe7,0xfc,0xb0,0xfb, +0xa9,0xfa,0xb2,0xf9,0x90,0xf8,0x39,0xf7,0x42,0xf6,0x3a,0xf6, +0xe9,0xf6,0x3b,0xf8,0xac,0xfa,0x3d,0xfe,0x78,0x2,0xe,0x7, +0x87,0xb,0x1f,0xf,0x33,0x11,0xb7,0x11,0x1e,0x11,0xfa,0xe, +0xf2,0x9,0xab,0x2,0xd3,0xfb,0x60,0xf6,0x98,0xf1,0x8b,0xee, +0x1d,0xef,0xd8,0xf2,0xd5,0xf7,0x19,0xfd,0x40,0x2,0x86,0x6, +0x26,0x9,0xfc,0x9,0x86,0x9,0x17,0x8,0x5a,0x5,0x88,0x1, +0x12,0xfe,0xe7,0xfb,0x7d,0xfa,0x4a,0xf9,0xdc,0xf8,0xf7,0xf9, +0x5f,0xfc,0xf2,0xfe,0xd7,0x0,0xe,0x2,0xc2,0x2,0xc3,0x2, +0x87,0x1,0x8,0xff,0x56,0xfc,0x45,0xfa,0x81,0xf8,0x1d,0xf7, +0xf5,0xf6,0x33,0xf8,0x5a,0xfa,0xdd,0xfc,0x15,0xff,0xce,0x0, +0x24,0x2,0xee,0x2,0x73,0x3,0x2,0x4,0xf8,0x3,0x64,0x3, +0x7d,0x3,0x32,0x4,0x5a,0x4,0x2,0x4,0x26,0x4,0xd6,0x4, +0x2,0x5,0x21,0x4,0xd5,0x2,0x77,0x1,0xc5,0xff,0x35,0xfe, +0x35,0xfd,0x3d,0xfc,0x52,0xfb,0x55,0xfb,0x86,0xfc,0x59,0xfe, +0x5,0x0,0x38,0x1,0x8c,0x2,0x1c,0x4,0xdb,0x4,0x53,0x4, +0x18,0x3,0xac,0x1,0x58,0x0,0x0,0xff,0x60,0xfd,0x17,0xfc, +0xf6,0xfb,0xaf,0xfc,0x93,0xfd,0x7d,0xfe,0x60,0xff,0xf,0x0, +0x58,0x0,0xff,0xff,0xf4,0xfe,0x72,0xfd,0xcb,0xfb,0x5b,0xfa, +0x88,0xf9,0x8e,0xf9,0x55,0xfa,0xd9,0xfb,0x34,0xfe,0xe5,0x0, +0x17,0x3,0xc1,0x4,0x2a,0x6,0xf8,0x6,0xd2,0x6,0xcd,0x5, +0x42,0x4,0xda,0x2,0xa5,0x1,0xf9,0xff,0x50,0xfe,0xc1,0xfd, +0xd4,0xfd,0xe3,0xfd,0x7e,0xfe,0x74,0xff,0xa,0x0,0xdb,0x0, +0x1a,0x2,0xae,0x2,0xb6,0x2,0x21,0x3,0x5d,0x3,0xef,0x2, +0xb4,0x2,0xae,0x2,0xee,0x1,0xce,0x0,0x3d,0x0,0xb,0x0, +0xb3,0xff,0x65,0xff,0x5b,0xff,0x87,0xff,0xfe,0xff,0xc4,0x0, +0x56,0x1,0x58,0x1,0x3a,0x1,0x58,0x1,0x65,0x1,0x1c,0x1, +0x98,0x0,0x0,0x0,0x87,0xff,0x2c,0xff,0xad,0xfe,0x1c,0xfe, +0xd0,0xfd,0xc3,0xfd,0xfc,0xfd,0xb9,0xfe,0xbe,0xff,0xa5,0x0, +0x7e,0x1,0x5c,0x2,0x11,0x3,0x8d,0x3,0xab,0x3,0x58,0x3, +0x5,0x3,0xd2,0x2,0x44,0x2,0x8d,0x1,0x3d,0x1,0xf0,0x0, +0x52,0x0,0xd7,0xff,0x87,0xff,0x3e,0xff,0x6d,0xff,0xee,0xff, +0x10,0x0,0xf2,0xff,0xe5,0xff,0x9d,0xff,0xf7,0xfe,0x2e,0xfe, +0x4d,0xfd,0x23,0xfc,0xa1,0xfa,0xf6,0xf8,0x43,0xf7,0x97,0xf5, +0x8d,0xf4,0xa4,0xf4,0x9d,0xf5,0x98,0xf7,0x15,0xfb,0xa9,0xff, +0xb2,0x4,0xe4,0x9,0x71,0xe,0x72,0x11,0xbd,0x12,0x99,0x12, +0x21,0x11,0x77,0xd,0xee,0x6,0x5f,0xff,0x8,0xf9,0x9e,0xf3, +0x26,0xef,0xa6,0xed,0xc9,0xef,0x2f,0xf4,0xa3,0xf9,0x58,0xff, +0x89,0x4,0x62,0x8,0x21,0xa,0x1e,0xa,0x5b,0x9,0xb3,0x7, +0x97,0x4,0xda,0x0,0xdc,0xfd,0xf8,0xfb,0xae,0xfa,0xbf,0xf9, +0xb5,0xf9,0x23,0xfb,0xa2,0xfd,0xe4,0xff,0x2b,0x1,0x1b,0x2, +0xf5,0x2,0x82,0x2,0x5a,0x0,0xc1,0xfd,0x89,0xfb,0xab,0xf9, +0x21,0xf8,0xf4,0xf6,0xc0,0xf6,0x25,0xf8,0x60,0xfa,0x7f,0xfc, +0x96,0xfe,0x84,0x0,0xe0,0x1,0xe2,0x2,0xc3,0x3,0x41,0x4, +0x3e,0x4,0x3c,0x4,0xa4,0x4,0xd8,0x4,0x4c,0x4,0xc6,0x3, +0xbc,0x3,0x90,0x3,0x12,0x3,0x36,0x2,0xb7,0x0,0x44,0xff, +0x5e,0xfe,0x6a,0xfd,0x85,0xfc,0x34,0xfc,0x52,0xfc,0x4e,0xfd, +0x66,0xff,0x2f,0x1,0x4,0x2,0xf6,0x2,0x14,0x4,0x71,0x4, +0xf7,0x3,0xd3,0x2,0x41,0x1,0x3,0x0,0x14,0xff,0xb2,0xfd, +0x65,0xfc,0x36,0xfc,0xaf,0xfc,0x52,0xfd,0x71,0xfe,0x85,0xff, +0xf0,0xff,0x2c,0x0,0xd,0x0,0xda,0xfe,0x25,0xfd,0xb3,0xfb, +0x70,0xfa,0x6c,0xf9,0xfb,0xf8,0x7b,0xf9,0x21,0xfb,0x4f,0xfd, +0x92,0xff,0x25,0x2,0x6a,0x4,0xac,0x5,0x76,0x6,0xc9,0x6, +0xe2,0x5,0x36,0x4,0xb2,0x2,0x57,0x1,0xfb,0xff,0xb5,0xfe, +0xb4,0xfd,0x3a,0xfd,0x66,0xfd,0x9,0xfe,0xb3,0xfe,0x3d,0xff, +0x26,0x0,0x63,0x1,0x44,0x2,0xd4,0x2,0x3d,0x3,0x37,0x3, +0x19,0x3,0x15,0x3,0xa5,0x2,0xf5,0x1,0x65,0x1,0xaa,0x0, +0xf,0x0,0xf6,0xff,0xe5,0xff,0xe1,0xff,0x50,0x0,0xd5,0x0, +0x39,0x1,0xa5,0x1,0xf3,0x1,0xf7,0x1,0xbb,0x1,0x7d,0x1, +0x62,0x1,0xf4,0x0,0xf5,0xff,0xb,0xff,0x7c,0xfe,0xe6,0xfd, +0x33,0xfd,0xb4,0xfc,0xd0,0xfc,0x7a,0xfd,0x25,0xfe,0xf2,0xfe, +0x44,0x0,0x9f,0x1,0xbb,0x2,0xc3,0x3,0x59,0x4,0x6c,0x4, +0x4b,0x4,0xab,0x3,0xa4,0x2,0xd9,0x1,0x35,0x1,0x6e,0x0, +0xa2,0xff,0xec,0xfe,0x83,0xfe,0x73,0xfe,0x7f,0xfe,0xd1,0xfe, +0x71,0xff,0xf2,0xff,0x55,0x0,0x9b,0x0,0x5f,0x0,0xa5,0xff, +0xa5,0xfe,0x8f,0xfd,0xa3,0xfc,0x80,0xfb,0xda,0xf9,0x55,0xf8, +0x18,0xf7,0xe8,0xf5,0x5d,0xf5,0xd8,0xf5,0x42,0xf7,0xf0,0xf9, +0xb3,0xfd,0xef,0x1,0xb4,0x6,0x9e,0xb,0x5e,0xf,0x58,0x11, +0xd4,0x11,0x30,0x11,0x2d,0xf,0xbb,0xa,0xf7,0x3,0x14,0xfd, +0x63,0xf7,0x65,0xf2,0xd4,0xee,0xa3,0xee,0xbd,0xf1,0x1b,0xf6, +0xb5,0xfa,0xb9,0xff,0x7a,0x4,0x8b,0x7,0xb6,0x8,0xee,0x8, +0x96,0x8,0x3d,0x7,0xbb,0x4,0xcc,0x1,0x4f,0xff,0x6c,0xfd, +0xd4,0xfb,0x93,0xfa,0x39,0xfa,0x4c,0xfb,0x3e,0xfd,0xa6,0xfe, +0x44,0xff,0x27,0x0,0x3c,0x1,0xfc,0x0,0x1d,0xff,0x10,0xfd, +0x8c,0xfb,0xf3,0xf9,0x37,0xf8,0x46,0xf7,0x94,0xf7,0xd6,0xf8, +0xa3,0xfa,0x9e,0xfc,0x8c,0xfe,0x6f,0x0,0x38,0x2,0xc2,0x3, +0xe1,0x4,0x88,0x5,0x7,0x6,0x8b,0x6,0x95,0x6,0xbe,0x5, +0x78,0x4,0x80,0x3,0xd2,0x2,0xc8,0x1,0x6b,0x0,0x4b,0xff, +0x20,0xfe,0xd3,0xfc,0x5b,0xfc,0xb2,0xfc,0xdf,0xfc,0x40,0xfd, +0x8c,0xfe,0x60,0x0,0x1c,0x2,0x4e,0x3,0xe9,0x3,0x6c,0x4, +0xb2,0x4,0x27,0x4,0xd,0x3,0xda,0x1,0xb8,0x0,0xcc,0xff, +0xc9,0xfe,0xaf,0xfd,0x41,0xfd,0x66,0xfd,0x87,0xfd,0xeb,0xfd, +0x85,0xfe,0xaf,0xfe,0x73,0xfe,0x10,0xfe,0x6c,0xfd,0x80,0xfc, +0x6f,0xfb,0xb9,0xfa,0xb6,0xfa,0xcf,0xfa,0xeb,0xfa,0xea,0xfb, +0xd9,0xfd,0xe5,0xff,0xb3,0x1,0x5d,0x3,0xd6,0x4,0xb9,0x5, +0xc3,0x5,0x5b,0x5,0xbc,0x4,0xb1,0x3,0x8c,0x2,0xae,0x1, +0xd4,0x0,0xed,0xff,0x48,0xff,0x8,0xff,0x21,0xff,0x59,0xff, +0xa5,0xff,0x29,0x0,0xb0,0x0,0x3c,0x1,0xb,0x2,0x99,0x2, +0xb9,0x2,0x19,0x3,0x7a,0x3,0x52,0x3,0x5,0x3,0x7b,0x2, +0x79,0x1,0xd8,0x0,0xbe,0x0,0x5b,0x0,0x4,0x0,0x52,0x0, +0xcb,0x0,0x8,0x1,0x3e,0x1,0x8b,0x1,0xe2,0x1,0xb,0x2, +0xcd,0x1,0x52,0x1,0xcc,0x0,0xe,0x0,0xf,0xff,0x2f,0xfe, +0xa2,0xfd,0x41,0xfd,0xf0,0xfc,0xc7,0xfc,0x15,0xfd,0x23,0xfe, +0x89,0xff,0xbf,0x0,0x23,0x2,0xca,0x3,0xe1,0x4,0x4e,0x5, +0x79,0x5,0x1f,0x5,0x4b,0x4,0x49,0x3,0xee,0x1,0xb5,0x0, +0x3d,0x0,0xee,0xff,0x6b,0xff,0x2a,0xff,0x47,0xff,0xb2,0xff, +0x44,0x0,0x92,0x0,0xbb,0x0,0xe4,0x0,0xa1,0x0,0x17,0x0, +0x7e,0xff,0x71,0xfe,0x49,0xfd,0x9e,0xfc,0xf4,0xfb,0xe7,0xfa, +0xe4,0xf9,0x25,0xf9,0x7e,0xf8,0xbf,0xf7,0x4f,0xf7,0xe0,0xf7, +0x4d,0xf9,0x3d,0xfb,0x10,0xfe,0x9e,0x1,0x5f,0x5,0x66,0x9, +0x6,0xd,0x1,0xf,0x96,0xf,0x64,0xf,0x79,0xd,0xee,0x8, +0xcb,0x2,0xe9,0xfc,0xdb,0xf7,0x64,0xf3,0x81,0xf0,0xad,0xf0, +0x80,0xf3,0x4c,0xf7,0x44,0xfb,0x71,0xff,0x79,0x3,0x7b,0x6, +0x14,0x8,0xc8,0x8,0xd3,0x8,0xd3,0x7,0xc4,0x5,0x43,0x3, +0xfd,0x0,0x1a,0xff,0x3f,0xfd,0x90,0xfb,0xdb,0xfa,0x5c,0xfb, +0x80,0xfc,0x97,0xfd,0x7c,0xfe,0x9a,0xff,0x9c,0x0,0x52,0x0, +0xcf,0xfe,0x32,0xfd,0xc7,0xfb,0x58,0xfa,0xf3,0xf8,0x1e,0xf8, +0xa7,0xf8,0x11,0xfa,0x4e,0xfb,0xf3,0xfc,0x36,0xff,0xf5,0x0, +0x73,0x2,0x11,0x4,0xba,0x4,0xbb,0x4,0x34,0x5,0x89,0x5, +0x3b,0x5,0x91,0x4,0x94,0x3,0xd1,0x2,0x4a,0x2,0x19,0x1, +0xb8,0xff,0xb2,0xfe,0x59,0xfd,0x22,0xfc,0xc5,0xfb,0xa5,0xfb, +0xec,0xfb,0x18,0xfd,0x8d,0xfe,0x17,0x0,0x9e,0x1,0xa6,0x2, +0xaa,0x3,0xbe,0x4,0xdd,0x4,0x44,0x4,0x9b,0x3,0x88,0x2, +0x4c,0x1,0x55,0x0,0x5a,0xff,0x9a,0xfe,0x3a,0xfe,0xd0,0xfd, +0xb0,0xfd,0x3,0xfe,0x13,0xfe,0xba,0xfd,0x29,0xfd,0x63,0xfc, +0xe5,0xfb,0xa1,0xfb,0x9,0xfb,0xc1,0xfa,0x5f,0xfb,0x16,0xfc, +0x8f,0xfc,0x76,0xfd,0xe2,0xfe,0x37,0x0,0x2e,0x1,0x5,0x2, +0xc0,0x2,0x6,0x3,0xfc,0x2,0xb,0x3,0xf0,0x2,0x80,0x2, +0x1f,0x2,0xaf,0x1,0xf6,0x0,0x55,0x0,0xe6,0xff,0x78,0xff, +0x38,0xff,0x2a,0xff,0x28,0xff,0x71,0xff,0xf2,0xff,0x5f,0x0, +0x1d,0x1,0x2b,0x2,0x9e,0x2,0x7a,0x2,0xa0,0x2,0xe6,0x2, +0x9b,0x2,0xe0,0x1,0x26,0x1,0xa3,0x0,0x5e,0x0,0x12,0x0, +0xc0,0xff,0xf9,0xff,0xce,0x0,0x90,0x1,0x0,0x2,0x75,0x2, +0xf4,0x2,0x17,0x3,0xb5,0x2,0xfd,0x1,0x8,0x1,0xe8,0xff, +0xe1,0xfe,0x2,0xfe,0x47,0xfd,0xf5,0xfc,0x15,0xfd,0x5f,0xfd, +0x8,0xfe,0x41,0xff,0x9d,0x0,0xe2,0x1,0x23,0x3,0x34,0x4, +0xee,0x4,0x3e,0x5,0xe8,0x4,0x0,0x4,0xf9,0x2,0xea,0x1, +0xb0,0x0,0x8d,0xff,0xfd,0xfe,0xff,0xfe,0x1d,0xff,0x50,0xff, +0xea,0xff,0x9d,0x0,0xe0,0x0,0xd1,0x0,0x95,0x0,0xfc,0xff, +0x1c,0xff,0x3f,0xfe,0x73,0xfd,0xbf,0xfc,0x49,0xfc,0x2,0xfc, +0xaa,0xfb,0x56,0xfb,0x3e,0xfb,0x6,0xfb,0x5a,0xfa,0xab,0xf9, +0x4d,0xf9,0x2f,0xf9,0x96,0xf9,0xb8,0xfa,0xac,0xfc,0xcf,0xff, +0xc5,0x3,0x98,0x7,0x1b,0xb,0x9,0xe,0x85,0xf,0x79,0xf, +0xe4,0xd,0xf6,0x9,0x12,0x4,0x17,0xfe,0x14,0xf9,0xe8,0xf4, +0xcd,0xf1,0x1,0xf1,0x49,0xf3,0x4e,0xf7,0x4a,0xfb,0x56,0xff, +0x98,0x3,0xcc,0x6,0x58,0x8,0xd5,0x8,0x85,0x8,0x43,0x7, +0x11,0x5,0x3d,0x2,0x74,0xff,0x1f,0xfd,0x3f,0xfb,0xf,0xfa, +0xca,0xf9,0x64,0xfa,0xb7,0xfb,0x42,0xfd,0x7c,0xfe,0x8a,0xff, +0x49,0x0,0xe6,0xff,0x7b,0xfe,0xc,0xfd,0xb5,0xfb,0x19,0xfa, +0xdb,0xf8,0xb6,0xf8,0x68,0xf9,0xa4,0xfa,0x92,0xfc,0xdd,0xfe, +0xd2,0x0,0x4d,0x2,0x79,0x3,0x2b,0x4,0x47,0x4,0x1c,0x4, +0xf8,0x3,0xd2,0x3,0xa0,0x3,0x79,0x3,0x32,0x3,0xbc,0x2, +0x65,0x2,0xc,0x2,0x3c,0x1,0x2d,0x0,0x26,0xff,0x0,0xfe, +0x7,0xfd,0x7d,0xfc,0x2b,0xfc,0x88,0xfc,0xf3,0xfd,0x73,0xff, +0xa1,0x0,0x26,0x2,0xa8,0x3,0x7c,0x4,0xc,0x5,0x59,0x5, +0xa7,0x4,0x1a,0x3,0x6f,0x1,0x1,0x0,0xf9,0xfe,0x43,0xfe, +0x8f,0xfd,0x16,0xfd,0x61,0xfd,0x15,0xfe,0x53,0xfe,0x1c,0xfe, +0xe6,0xfd,0x9a,0xfd,0x1c,0xfd,0x90,0xfc,0xda,0xfb,0x38,0xfb, +0x47,0xfb,0xca,0xfb,0x4e,0xfc,0x33,0xfd,0x7b,0xfe,0xa1,0xff, +0xbc,0x0,0xc7,0x1,0x41,0x2,0x84,0x2,0x2d,0x3,0x99,0x3, +0x43,0x3,0xd9,0x2,0xab,0x2,0x30,0x2,0x6b,0x1,0xbc,0x0, +0x6,0x0,0x55,0xff,0xf7,0xfe,0xd9,0xfe,0x9,0xff,0xbe,0xff, +0x7d,0x0,0xff,0x0,0xdc,0x1,0xee,0x2,0x51,0x3,0xd,0x3, +0xca,0x2,0xae,0x2,0x74,0x2,0xc3,0x1,0xbb,0x0,0xf8,0xff, +0x7e,0xff,0x5,0xff,0xf1,0xfe,0x86,0xff,0x51,0x0,0x29,0x1, +0x23,0x2,0xdf,0x2,0x1d,0x3,0x19,0x3,0xd9,0x2,0xe,0x2, +0xd7,0x0,0x8d,0xff,0x3c,0xfe,0x2a,0xfd,0xbe,0xfc,0xa3,0xfc, +0xa7,0xfc,0x61,0xfd,0x89,0xfe,0x52,0xff,0x28,0x0,0x53,0x1, +0x27,0x2,0xe4,0x2,0xff,0x3,0xa6,0x4,0x60,0x4,0xc1,0x3, +0x15,0x3,0x50,0x2,0x69,0x1,0x6a,0x0,0xbd,0xff,0x8e,0xff, +0x86,0xff,0x9f,0xff,0xe8,0xff,0x24,0x0,0x69,0x0,0xc2,0x0, +0xbc,0x0,0x46,0x0,0xba,0xff,0x41,0xff,0xe1,0xfe,0x7a,0xfe, +0xea,0xfd,0x74,0xfd,0x27,0xfd,0xc2,0xfc,0x49,0xfc,0xa0,0xfb, +0x7f,0xfa,0x5d,0xf9,0xc5,0xf8,0x55,0xf8,0xf2,0xf7,0xa1,0xf8, +0xf6,0xfa,0x53,0xfe,0x3d,0x2,0xb2,0x6,0x21,0xb,0x90,0xe, +0x75,0x10,0xc5,0x10,0xa1,0xf,0x9c,0xc,0x11,0x7,0x18,0x0, +0xf,0xfa,0x7e,0xf5,0xb4,0xf1,0xcc,0xef,0x41,0xf1,0x34,0xf5, +0xbe,0xf9,0x2f,0xfe,0xa4,0x2,0x85,0x6,0xa4,0x8,0xf4,0x8, +0x7f,0x8,0x65,0x7,0xfb,0x4,0xb5,0x1,0xc7,0xfe,0x99,0xfc, +0xfb,0xfa,0x4,0xfa,0xfb,0xf9,0xd8,0xfa,0x33,0xfc,0xb0,0xfd, +0x37,0xff,0x83,0x0,0x20,0x1,0xe7,0x0,0xf9,0xff,0x6f,0xfe, +0xb0,0xfc,0x58,0xfb,0x6c,0xfa,0xd7,0xf9,0x20,0xfa,0x5a,0xfb, +0xe3,0xfc,0xa8,0xfe,0x78,0x0,0x90,0x1,0x35,0x2,0x7,0x3, +0x6d,0x3,0x45,0x3,0x5f,0x3,0x9c,0x3,0xa2,0x3,0xc4,0x3, +0xc1,0x3,0x4b,0x3,0xf0,0x2,0xc6,0x2,0x23,0x2,0xf7,0x0, +0xbc,0xff,0x96,0xfe,0x63,0xfd,0x54,0xfc,0xc9,0xfb,0xc3,0xfb, +0x57,0xfc,0xba,0xfd,0x7c,0xff,0x46,0x1,0x24,0x3,0x72,0x4, +0xf6,0x4,0x68,0x5,0x2c,0x5,0x6e,0x3,0x83,0x1,0x77,0x0, +0x92,0xff,0x89,0xfe,0xc6,0xfd,0x94,0xfd,0x3,0xfe,0x92,0xfe, +0xf5,0xfe,0x6a,0xff,0x7c,0xff,0xea,0xfe,0x5a,0xfe,0xa7,0xfd, +0x85,0xfc,0x94,0xfb,0x4,0xfb,0xeb,0xfa,0xb0,0xfb,0x96,0xfc, +0x47,0xfd,0xd6,0xfe,0xdb,0x0,0xe6,0x1,0x5a,0x2,0xfc,0x2, +0x94,0x3,0xe2,0x3,0xbe,0x3,0x32,0x3,0xa0,0x2,0xf3,0x1, +0x6,0x1,0x26,0x0,0x54,0xff,0x90,0xfe,0x48,0xfe,0x8d,0xfe, +0x1,0xff,0x7f,0xff,0x21,0x0,0x1,0x1,0xfb,0x1,0xd4,0x2, +0x6f,0x3,0x9e,0x3,0x78,0x3,0x4e,0x3,0xe0,0x2,0xa,0x2, +0x3f,0x1,0x70,0x0,0x67,0xff,0xb1,0xfe,0x95,0xfe,0xdb,0xfe, +0x7e,0xff,0x50,0x0,0x35,0x1,0x38,0x2,0xdb,0x2,0xdc,0x2, +0x93,0x2,0xed,0x1,0xee,0x0,0xef,0xff,0xd2,0xfe,0xcf,0xfd, +0x73,0xfd,0x51,0xfd,0x30,0xfd,0xb6,0xfd,0x9c,0xfe,0x33,0xff, +0xc7,0xff,0x9e,0x0,0x84,0x1,0x82,0x2,0x98,0x3,0x6b,0x4, +0xb6,0x4,0x83,0x4,0xf9,0x3,0x1d,0x3,0x14,0x2,0x21,0x1, +0x26,0x0,0x3f,0xff,0xfa,0xfe,0x1b,0xff,0xe,0xff,0x2d,0xff, +0xb9,0xff,0x5c,0x0,0xf3,0x0,0x40,0x1,0xe,0x1,0xd8,0x0, +0xcf,0x0,0x78,0x0,0x9d,0xff,0x74,0xfe,0x5b,0xfd,0x70,0xfc, +0x5e,0xfb,0xb,0xfa,0xb7,0xf8,0x67,0xf7,0x5e,0xf6,0xf7,0xf5, +0x6,0xf6,0xd1,0xf6,0x2d,0xf9,0xef,0xfc,0x49,0x1,0x1,0x6, +0xf7,0xa,0x64,0xf,0x3e,0x12,0x37,0x13,0xbd,0x12,0x6e,0x10, +0x69,0xb,0x73,0x4,0x7d,0xfd,0x6e,0xf7,0x72,0xf2,0x56,0xef, +0x36,0xef,0x14,0xf2,0x90,0xf6,0x70,0xfb,0x70,0x0,0x1,0x5, +0xf9,0x7,0x12,0x9,0x21,0x9,0x90,0x8,0xe4,0x6,0xd,0x4, +0xf9,0x0,0x58,0xfe,0x3d,0xfc,0xe5,0xfa,0x4d,0xfa,0x52,0xfa, +0x66,0xfb,0x51,0xfd,0xcd,0xfe,0xa7,0xff,0x8f,0x0,0x34,0x1, +0xd5,0x0,0x71,0xff,0xb1,0xfd,0x38,0xfc,0xf2,0xfa,0xc6,0xf9, +0x58,0xf9,0xe7,0xf9,0xc,0xfb,0x9d,0xfc,0x30,0xfe,0x5a,0xff, +0x77,0x0,0x9f,0x1,0x84,0x2,0x53,0x3,0xf6,0x3,0x41,0x4, +0xb7,0x4,0x32,0x5,0xfb,0x4,0x5e,0x4,0xdf,0x3,0x68,0x3, +0xe4,0x2,0xea,0x1,0x3e,0x0,0xb5,0xfe,0xa6,0xfd,0x62,0xfc, +0x39,0xfb,0x24,0xfb,0xe2,0xfb,0xd0,0xfc,0x48,0xfe,0x89,0x0, +0xa6,0x2,0xf6,0x3,0x2,0x5,0xe1,0x5,0xbf,0x5,0x84,0x4, +0xd,0x3,0xee,0x1,0x6,0x1,0xdc,0xff,0xa1,0xfe,0x22,0xfe, +0x31,0xfe,0x1a,0xfe,0x39,0xfe,0xc9,0xfe,0x4,0xff,0xb7,0xfe, +0x66,0xfe,0xfc,0xfd,0x2c,0xfd,0x2e,0xfc,0x7c,0xfb,0x53,0xfb, +0x8f,0xfb,0x2,0xfc,0xac,0xfc,0xbf,0xfd,0x6d,0xff,0x11,0x1, +0xc6,0x1,0x40,0x2,0x58,0x3,0xe,0x4,0xda,0x3,0xa8,0x3, +0x49,0x3,0xf,0x2,0xb9,0x0,0xd8,0xff,0x3,0xff,0x47,0xfe, +0xa,0xfe,0x3a,0xfe,0xa3,0xfe,0x24,0xff,0xbc,0xff,0x93,0x0, +0xa9,0x1,0xa7,0x2,0x4d,0x3,0xb9,0x3,0x3,0x4,0xee,0x3, +0x81,0x3,0xf,0x3,0x71,0x2,0x61,0x1,0x30,0x0,0x32,0xff, +0x87,0xfe,0x65,0xfe,0xb6,0xfe,0x2e,0xff,0xd5,0xff,0xb3,0x0, +0x76,0x1,0xba,0x1,0x90,0x1,0x65,0x1,0xe,0x1,0x1b,0x0, +0x28,0xff,0xe6,0xfe,0xbb,0xfe,0x34,0xfe,0xde,0xfd,0x12,0xfe, +0x98,0xfe,0x1d,0xff,0x91,0xff,0x4e,0x0,0x71,0x1,0xa6,0x2, +0xc8,0x3,0xaa,0x4,0x1c,0x5,0x57,0x5,0x27,0x5,0xa,0x4, +0x6e,0x2,0xed,0x0,0x79,0xff,0x5b,0xfe,0xf6,0xfd,0x8,0xfe, +0x64,0xfe,0x2,0xff,0xb4,0xff,0x8d,0x0,0x9a,0x1,0x81,0x2, +0xf9,0x2,0xf3,0x2,0x85,0x2,0xcd,0x1,0xa8,0x0,0xf6,0xfe, +0xf,0xfd,0x5d,0xfb,0xe5,0xf9,0x5c,0xf8,0xaf,0xf6,0x3f,0xf5, +0x44,0xf4,0xd1,0xf3,0x46,0xf4,0xa5,0xf5,0xd2,0xf7,0x4e,0xfb, +0xdc,0xff,0x88,0x4,0x60,0x9,0x3e,0xe,0xda,0x11,0xbb,0x13, +0x4,0x14,0x32,0x12,0x1e,0xe,0x11,0x8,0xa0,0x0,0x77,0xf9, +0xca,0xf3,0x9a,0xef,0xd9,0xed,0x83,0xef,0x6a,0xf3,0x18,0xf8, +0x49,0xfd,0x7b,0x2,0x99,0x6,0xfa,0x8,0xd5,0x9,0xbf,0x9, +0xb0,0x8,0x66,0x6,0x46,0x3,0xf7,0xff,0x2d,0xfd,0x5e,0xfb, +0x17,0xfa,0x41,0xf9,0xbe,0xf9,0x6e,0xfb,0x1d,0xfd,0x66,0xfe, +0x9d,0xff,0xbe,0x0,0x23,0x1,0x31,0x0,0x62,0xfe,0x92,0xfc, +0xd3,0xfa,0x5c,0xf9,0xa3,0xf8,0x9b,0xf8,0x61,0xf9,0xf1,0xfa, +0x8a,0xfc,0x1f,0xfe,0x1b,0x0,0xce,0x1,0xe9,0x2,0x1d,0x4, +0x3f,0x5,0xa8,0x5,0x93,0x5,0x85,0x5,0x74,0x5,0xd8,0x4, +0xa4,0x3,0xb5,0x2,0x19,0x2,0xef,0x0,0x86,0xff,0x88,0xfe, +0x73,0xfd,0x4b,0xfc,0xd7,0xfb,0xfb,0xfb,0x60,0xfc,0x43,0xfd, +0xb7,0xfe,0x99,0x0,0x8f,0x2,0xf3,0x3,0xbe,0x4,0x5c,0x5, +0x83,0x5,0xa2,0x4,0xa,0x3,0xa1,0x1,0xaf,0x0,0xba,0xff, +0x8a,0xfe,0x73,0xfd,0xd6,0xfc,0xde,0xfc,0x27,0xfd,0x3a,0xfd, +0x8f,0xfd,0x6f,0xfe,0xd8,0xfe,0x6c,0xfe,0xdd,0xfd,0x22,0xfd, +0x3f,0xfc,0xfc,0xfb,0x36,0xfc,0x2b,0xfc,0x30,0xfc,0xef,0xfc, +0x4f,0xfe,0xb8,0xff,0xd2,0x0,0x4,0x2,0x7d,0x3,0x69,0x4, +0x71,0x4,0x33,0x4,0x98,0x3,0x53,0x2,0x4,0x1,0xfe,0xff, +0xf7,0xfe,0x35,0xfe,0xf,0xfe,0x29,0xfe,0x57,0xfe,0xeb,0xfe, +0xde,0xff,0xc0,0x0,0x6f,0x1,0x17,0x2,0xb9,0x2,0x4a,0x3, +0xd2,0x3,0x1f,0x4,0xfe,0x3,0xa2,0x3,0x42,0x3,0xa5,0x2, +0x86,0x1,0x28,0x0,0x29,0xff,0xa9,0xfe,0x47,0xfe,0x2c,0xfe, +0x9b,0xfe,0x8,0xff,0x33,0xff,0xb3,0xff,0x4f,0x0,0x61,0x0, +0x54,0x0,0x68,0x0,0x1f,0x0,0xc4,0xff,0xb1,0xff,0x48,0xff, +0x95,0xfe,0x69,0xfe,0xa4,0xfe,0xd8,0xfe,0x3b,0xff,0xe7,0xff, +0xd8,0x0,0x25,0x2,0x7d,0x3,0x86,0x4,0x49,0x5,0xa2,0x5, +0x3b,0x5,0xf,0x4,0x5c,0x2,0x91,0x0,0x11,0xff,0xfe,0xfd, +0x7f,0xfd,0xa3,0xfd,0x1f,0xfe,0xe0,0xfe,0xee,0xff,0x1,0x1, +0x15,0x2,0x2d,0x3,0xbb,0x3,0x91,0x3,0x15,0x3,0x3f,0x2, +0xf4,0x0,0x75,0xff,0xc0,0xfd,0xfe,0xfb,0x9e,0xfa,0x34,0xf9, +0x59,0xf7,0xdd,0xf5,0x3a,0xf5,0xe0,0xf4,0xda,0xf4,0xd0,0xf5, +0xd0,0xf7,0xae,0xfa,0x53,0xfe,0x66,0x2,0xcd,0x6,0x8b,0xb, +0xb9,0xf,0x2e,0x12,0xe4,0x12,0x2d,0x12,0x91,0xf,0x95,0xa, +0xd9,0x3,0xdb,0xfc,0xcf,0xf6,0x19,0xf2,0x45,0xef,0x48,0xef, +0xff,0xf1,0x1c,0xf6,0xf7,0xfa,0x50,0x0,0xd,0x5,0x21,0x8, +0xaa,0x9,0x19,0xa,0x5b,0x9,0x63,0x7,0xa2,0x4,0x9e,0x1, +0xac,0xfe,0x30,0xfc,0x6b,0xfa,0x58,0xf9,0x45,0xf9,0x7f,0xfa, +0x4d,0xfc,0xda,0xfd,0x37,0xff,0x4f,0x0,0xa3,0x0,0xa,0x0, +0x8e,0xfe,0xa8,0xfc,0x24,0xfb,0x7,0xfa,0x15,0xf9,0xf3,0xf8, +0xda,0xf9,0x1c,0xfb,0xb8,0xfc,0xf4,0xfe,0x31,0x1,0xcd,0x2, +0xd8,0x3,0x9c,0x4,0x4e,0x5,0xbd,0x5,0x89,0x5,0xfc,0x4, +0x98,0x4,0x1d,0x4,0x47,0x3,0x7b,0x2,0xe7,0x1,0x40,0x1, +0x78,0x0,0xa6,0xff,0xaa,0xfe,0x95,0xfd,0xd6,0xfc,0xae,0xfc, +0x9,0xfd,0xc8,0xfd,0xe8,0xfe,0x84,0x0,0x64,0x2,0xda,0x3, +0x9c,0x4,0xf,0x5,0x3d,0x5,0xac,0x4,0x74,0x3,0x33,0x2, +0x15,0x1,0xe4,0xff,0x97,0xfe,0x4a,0xfd,0x4d,0xfc,0x19,0xfc, +0x91,0xfc,0x11,0xfd,0x98,0xfd,0x73,0xfe,0x22,0xff,0x31,0xff, +0xec,0xfe,0x82,0xfe,0xee,0xfd,0x75,0xfd,0x20,0xfd,0xb2,0xfc, +0x54,0xfc,0x70,0xfc,0x2b,0xfd,0x5d,0xfe,0xca,0xff,0x52,0x1, +0xa6,0x2,0x7a,0x3,0x19,0x4,0x8a,0x4,0x26,0x4,0xfc,0x2, +0xd9,0x1,0xd3,0x0,0xb9,0xff,0xd4,0xfe,0x68,0xfe,0x7f,0xfe, +0xdf,0xfe,0x43,0xff,0xef,0xff,0xe8,0x0,0x8d,0x1,0xe7,0x1, +0x73,0x2,0x9,0x3,0x9c,0x3,0x34,0x4,0x57,0x4,0x15,0x4, +0xe0,0x3,0x5f,0x3,0x6f,0x2,0x92,0x1,0x99,0x0,0x56,0xff, +0x92,0xfe,0x9a,0xfe,0xa0,0xfe,0x4b,0xfe,0x4d,0xfe,0x13,0xff, +0xff,0xff,0x63,0x0,0x8f,0x0,0xef,0x0,0x26,0x1,0xf0,0x0, +0xa2,0x0,0x4d,0x0,0xb2,0xff,0x1d,0xff,0xed,0xfe,0xde,0xfe, +0xe0,0xfe,0x7c,0xff,0x9b,0x0,0xb0,0x1,0xb6,0x2,0xbb,0x3, +0x6c,0x4,0x91,0x4,0x1,0x4,0xcb,0x2,0x79,0x1,0x4f,0x0, +0x41,0xff,0x7e,0xfe,0x17,0xfe,0xe,0xfe,0xa3,0xfe,0x8d,0xff, +0x4e,0x0,0x19,0x1,0xe5,0x1,0x37,0x2,0x36,0x2,0x16,0x2, +0x9c,0x1,0x0,0x1,0x82,0x0,0xc1,0xff,0x99,0xfe,0x70,0xfd, +0x72,0xfc,0x49,0xfb,0xad,0xf9,0xe,0xf8,0xd,0xf7,0x67,0xf6, +0xaf,0xf5,0x92,0xf5,0xc7,0xf6,0xfa,0xf8,0xe6,0xfb,0xd5,0xff, +0x62,0x4,0xb0,0x8,0x97,0xc,0xcc,0xf,0x44,0x11,0xd5,0x10, +0xff,0xe,0x3d,0xb,0x58,0x5,0xb8,0xfe,0xc1,0xf8,0xfc,0xf3, +0xda,0xf0,0xeb,0xef,0xa4,0xf1,0x6a,0xf5,0xca,0xf9,0x8d,0xfe, +0x96,0x3,0x9,0x7,0x49,0x8,0xcb,0x8,0x9d,0x8,0x8,0x7, +0xb5,0x4,0x9,0x2,0x27,0xff,0xec,0xfc,0x67,0xfb,0x32,0xfa, +0xdb,0xf9,0x9f,0xfa,0xfe,0xfb,0x7a,0xfd,0x70,0xfe,0xef,0xfe, +0x8a,0xff,0x90,0xff,0x42,0xfe,0x82,0xfc,0x2e,0xfb,0x3d,0xfa, +0xc7,0xf9,0xe9,0xf9,0x76,0xfa,0x7b,0xfb,0x3a,0xfd,0x7a,0xff, +0x59,0x1,0x67,0x2,0x24,0x3,0xd3,0x3,0x37,0x4,0x59,0x4, +0x26,0x4,0x97,0x3,0x38,0x3,0x10,0x3,0x9d,0x2,0x30,0x2, +0xf,0x2,0xc9,0x1,0x56,0x1,0xb9,0x0,0x72,0xff,0xc8,0xfd, +0xa7,0xfc,0x1e,0xfc,0xcd,0xfb,0x5,0xfc,0x4b,0xfd,0x42,0xff, +0x9,0x1,0x76,0x2,0xc9,0x3,0xbe,0x4,0xf,0x5,0xcc,0x4, +0xf1,0x3,0x9d,0x2,0x3a,0x1,0xdf,0xff,0x78,0xfe,0x31,0xfd, +0x3b,0xfc,0xb6,0xfb,0xb9,0xfb,0x45,0xfc,0x27,0xfd,0xf5,0xfd, +0x86,0xfe,0xe,0xff,0x68,0xff,0x3c,0xff,0xbc,0xfe,0x2f,0xfe, +0x89,0xfd,0xd6,0xfc,0x5b,0xfc,0x5d,0xfc,0xc6,0xfc,0x73,0xfd, +0xb7,0xfe,0x59,0x0,0x57,0x1,0xe9,0x1,0xf2,0x2,0xa8,0x3, +0x56,0x3,0xd1,0x2,0x29,0x2,0xde,0x0,0xb8,0xff,0x24,0xff, +0x94,0xfe,0x46,0xfe,0x95,0xfe,0x13,0xff,0xc4,0xff,0xd0,0x0, +0xae,0x1,0x32,0x2,0xc6,0x2,0x56,0x3,0x8a,0x3,0x69,0x3, +0x44,0x3,0x30,0x3,0xcf,0x2,0x8,0x2,0x55,0x1,0xaa,0x0, +0x88,0xff,0x5f,0xfe,0xed,0xfd,0xfe,0xfd,0x1c,0xfe,0x49,0xfe, +0xcd,0xfe,0xbf,0xff,0xa3,0x0,0xb,0x1,0x46,0x1,0x89,0x1, +0x9e,0x1,0x92,0x1,0x3d,0x1,0x84,0x0,0xd,0x0,0xc7,0xff, +0x1,0xff,0x80,0xfe,0xfc,0xfe,0x93,0xff,0xc,0x0,0xe9,0x0, +0xcd,0x1,0x81,0x2,0xf,0x3,0x2,0x3,0x97,0x2,0x4a,0x2, +0xa0,0x1,0xae,0x0,0xd,0x0,0x8e,0xff,0x35,0xff,0x4f,0xff, +0x91,0xff,0xc,0x0,0xd2,0x0,0x30,0x1,0x33,0x1,0x7d,0x1, +0xa1,0x1,0x5f,0x1,0x3a,0x1,0x24,0x1,0xb5,0x0,0x7,0x0, +0x73,0xff,0x20,0xff,0x7a,0xfe,0xde,0xfc,0xe8,0xfa,0x55,0xf9, +0xda,0xf7,0x4e,0xf6,0x22,0xf5,0xbc,0xf4,0x78,0xf5,0x5e,0xf7, +0x39,0xfa,0x2a,0xfe,0xa,0x3,0xde,0x7,0xfe,0xb,0x52,0xf, +0x50,0x11,0x57,0x11,0x88,0xf,0xf3,0xb,0x4e,0x6,0xa2,0xff, +0xd5,0xf9,0x38,0xf5,0x9a,0xf1,0x5b,0xf0,0x28,0xf2,0x89,0xf5, +0x89,0xf9,0x46,0xfe,0xef,0x2,0x1d,0x6,0x85,0x7,0xe0,0x7, +0xa5,0x7,0x84,0x6,0x5b,0x4,0xce,0x1,0x77,0xff,0x98,0xfd, +0x44,0xfc,0x44,0xfb,0x9a,0xfa,0xbb,0xfa,0xcb,0xfb,0x3b,0xfd, +0x41,0xfe,0xd2,0xfe,0x8b,0xff,0xfe,0xff,0x3c,0xff,0xed,0xfd, +0xcb,0xfc,0x8b,0xfb,0xc5,0xfa,0xf0,0xfa,0x12,0xfb,0x54,0xfb, +0xc2,0xfc,0xa5,0xfe,0xfc,0xff,0x5,0x1,0xdf,0x1,0x84,0x2, +0xfd,0x2,0x29,0x3,0x36,0x3,0x4a,0x3,0x56,0x3,0x99,0x3, +0xc7,0x3,0x6f,0x3,0x42,0x3,0x46,0x3,0x81,0x2,0x5c,0x1, +0x4d,0x0,0x9f,0xfe,0xd6,0xfc,0xed,0xfb,0x59,0xfb,0x8,0xfb, +0xcf,0xfb,0x87,0xfd,0x94,0xff,0xb8,0x1,0x89,0x3,0xcd,0x4, +0x9b,0x5,0xd1,0x5,0x48,0x5,0xf9,0x3,0x1f,0x2,0x5a,0x0, +0xf1,0xfe,0x99,0xfd,0x53,0xfc,0x86,0xfb,0x76,0xfb,0xc,0xfc, +0xdc,0xfc,0x88,0xfd,0x23,0xfe,0xdb,0xfe,0x76,0xff,0xa7,0xff, +0x88,0xff,0x40,0xff,0xb5,0xfe,0xfc,0xfd,0x5c,0xfd,0xe2,0xfc, +0xdc,0xfc,0xcf,0xfd,0x50,0xff,0x6a,0x0,0x10,0x1,0xcc,0x1, +0x96,0x2,0xe2,0x2,0x82,0x2,0xd1,0x1,0x18,0x1,0x63,0x0, +0xbc,0xff,0x1c,0xff,0x9c,0xfe,0x96,0xfe,0x8,0xff,0xb5,0xff, +0x96,0x0,0x88,0x1,0x8b,0x2,0xb7,0x3,0x76,0x4,0x6c,0x4, +0x34,0x4,0xe2,0x3,0x32,0x3,0x82,0x2,0xd9,0x1,0x1,0x1, +0x56,0x0,0xaf,0xff,0xaf,0xfe,0xdc,0xfd,0x81,0xfd,0x96,0xfd, +0x50,0xfe,0x3c,0xff,0xe6,0xff,0xad,0x0,0x6b,0x1,0xc3,0x1, +0xff,0x1,0xb,0x2,0xdf,0x1,0xd5,0x1,0x7c,0x1,0xc3,0x0, +0x8f,0x0,0x93,0x0,0x14,0x0,0x9d,0xff,0x84,0xff,0x7d,0xff, +0xa3,0xff,0xeb,0xff,0x4f,0x0,0x1a,0x1,0xd7,0x1,0xef,0x1, +0xcf,0x1,0xd8,0x1,0xc5,0x1,0x6f,0x1,0xb,0x1,0xcd,0x0, +0xa1,0x0,0x51,0x0,0xf5,0xff,0xc4,0xff,0xd8,0xff,0x21,0x0, +0x48,0x0,0x4a,0x0,0x94,0x0,0x4,0x1,0x36,0x1,0x44,0x1, +0x23,0x1,0xb5,0x0,0x35,0x0,0x8a,0xff,0x8c,0xfe,0x61,0xfd, +0xcc,0xfb,0xbc,0xf9,0xd4,0xf7,0x4e,0xf6,0x1a,0xf5,0x9b,0xf4, +0xa,0xf5,0x8b,0xf6,0x90,0xf9,0xf7,0xfd,0xff,0x2,0x1b,0x8, +0xce,0xc,0x6a,0x10,0x6d,0x12,0xc6,0x12,0x66,0x11,0xc9,0xd, +0xee,0x7,0x45,0x1,0x3e,0xfb,0x23,0xf6,0x38,0xf2,0x71,0xf0, +0x93,0xf1,0x1e,0xf5,0x86,0xf9,0xf3,0xfd,0x7e,0x2,0x31,0x6, +0xc5,0x7,0xd9,0x7,0x89,0x7,0x8e,0x6,0x7b,0x4,0xcd,0x1, +0x4a,0xff,0x70,0xfd,0x37,0xfc,0x2c,0xfb,0x44,0xfa,0x3b,0xfa, +0x6b,0xfb,0xe8,0xfc,0xf2,0xfd,0x1c,0xff,0x8e,0x0,0x35,0x1, +0xad,0x0,0xa0,0xff,0x79,0xfe,0x5d,0xfd,0x59,0xfc,0x65,0xfb, +0xe4,0xfa,0x51,0xfb,0x79,0xfc,0xc9,0xfd,0xf5,0xfe,0x10,0x0, +0x2c,0x1,0x6,0x2,0x9c,0x2,0x23,0x3,0x69,0x3,0xad,0x3, +0x8b,0x4,0x53,0x5,0x2f,0x5,0xcd,0x4,0x9a,0x4,0x1f,0x4, +0x4e,0x3,0x2c,0x2,0x9e,0x0,0x3,0xff,0x79,0xfd,0x5,0xfc, +0x3e,0xfb,0x45,0xfb,0xe3,0xfb,0x68,0xfd,0x81,0xff,0x4c,0x1, +0xf4,0x2,0x95,0x4,0x86,0x5,0xe3,0x5,0xce,0x5,0x83,0x4, +0x53,0x2,0x8b,0x0,0x2a,0xff,0x9d,0xfd,0x38,0xfc,0x6a,0xfb, +0x64,0xfb,0x2a,0xfc,0xfa,0xfc,0x56,0xfd,0xda,0xfd,0xae,0xfe, +0x2b,0xff,0x57,0xff,0x6e,0xff,0x25,0xff,0xab,0xfe,0x62,0xfe, +0xff,0xfd,0x8c,0xfd,0xc7,0xfd,0xbc,0xfe,0xc7,0xff,0xc2,0x0, +0xd3,0x1,0xca,0x2,0x5d,0x3,0x56,0x3,0xae,0x2,0xb7,0x1, +0xc0,0x0,0xc4,0xff,0xfe,0xfe,0xba,0xfe,0xa2,0xfe,0x9d,0xfe, +0x45,0xff,0x6e,0x0,0x5e,0x1,0x36,0x2,0x2f,0x3,0x0,0x4, +0xae,0x4,0x14,0x5,0xc9,0x4,0x22,0x4,0x91,0x3,0xf0,0x2, +0x33,0x2,0x4a,0x1,0x1e,0x0,0x15,0xff,0x4e,0xfe,0x9e,0xfd, +0x5f,0xfd,0xa5,0xfd,0x12,0xfe,0xd2,0xfe,0xdd,0xff,0xa3,0x0, +0x1f,0x1,0x6f,0x1,0x6f,0x1,0x67,0x1,0x75,0x1,0x2e,0x1, +0xa4,0x0,0x52,0x0,0x3f,0x0,0x22,0x0,0xd8,0xff,0xa2,0xff, +0xa7,0xff,0x96,0xff,0x6a,0xff,0x9e,0xff,0x4c,0x0,0x21,0x1, +0xcb,0x1,0x36,0x2,0x96,0x2,0xce,0x2,0x96,0x2,0x35,0x2, +0xd9,0x1,0x4a,0x1,0xbc,0x0,0x46,0x0,0xb4,0xff,0x70,0xff, +0x98,0xff,0xa3,0xff,0xba,0xff,0x23,0x0,0x95,0x0,0x27,0x1, +0xc3,0x1,0xe5,0x1,0xba,0x1,0x5c,0x1,0x6c,0x0,0x4b,0xff, +0x33,0xfe,0x8d,0xfc,0x9d,0xfa,0xe,0xf9,0x90,0xf7,0xf9,0xf5, +0xe2,0xf4,0x86,0xf4,0xef,0xf4,0x7a,0xf6,0x51,0xf9,0x3d,0xfd, +0x1b,0x2,0x88,0x7,0x75,0xc,0x28,0x10,0x96,0x12,0x39,0x13, +0x8f,0x11,0x12,0xe,0xd1,0x8,0xe4,0x1,0x49,0xfb,0x66,0xf6, +0x77,0xf2,0x0,0xf0,0xc1,0xf0,0x36,0xf4,0xa8,0xf8,0x66,0xfd, +0xf3,0x1,0x9d,0x5,0xea,0x7,0xaa,0x8,0x41,0x8,0x0,0x7, +0xaf,0x4,0xbd,0x1,0x25,0xff,0x1c,0xfd,0x6a,0xfb,0x3e,0xfa, +0xd0,0xf9,0x28,0xfa,0x42,0xfb,0xd9,0xfc,0x52,0xfe,0x65,0xff, +0x6f,0x0,0x5c,0x1,0x69,0x1,0x6c,0x0,0x7,0xff,0x9d,0xfd, +0x30,0xfc,0xd5,0xfa,0xf,0xfa,0x67,0xfa,0x6c,0xfb,0x67,0xfc, +0x8b,0xfd,0xfa,0xfe,0x5e,0x0,0xaa,0x1,0x9a,0x2,0x14,0x3, +0xc5,0x3,0xa8,0x4,0x32,0x5,0xa1,0x5,0xb4,0x5,0xf9,0x4, +0x47,0x4,0xad,0x3,0x4e,0x2,0xc6,0x0,0x8a,0xff,0xdf,0xfd, +0x4d,0xfc,0xb2,0xfb,0x85,0xfb,0xac,0xfb,0x93,0xfc,0xf8,0xfd, +0xbd,0xff,0xbf,0x1,0x38,0x3,0xfb,0x3,0x66,0x4,0x6e,0x4, +0xe7,0x3,0xbd,0x2,0x29,0x1,0xbf,0xff,0x94,0xfe,0x7b,0xfd, +0xba,0xfc,0x6e,0xfc,0x8f,0xfc,0x31,0xfd,0xdb,0xfd,0x2a,0xfe, +0x90,0xfe,0xf1,0xfe,0xca,0xfe,0x80,0xfe,0x4a,0xfe,0xbe,0xfd, +0x36,0xfd,0x10,0xfd,0xda,0xfc,0xc5,0xfc,0x73,0xfd,0x9f,0xfe, +0xe0,0xff,0x41,0x1,0x85,0x2,0x6b,0x3,0xf5,0x3,0xec,0x3, +0x58,0x3,0x7d,0x2,0x35,0x1,0xbd,0xff,0xd3,0xfe,0x4d,0xfe, +0xdd,0xfd,0xe,0xfe,0xdd,0xfe,0xc2,0xff,0xc8,0x0,0xde,0x1, +0xcd,0x2,0xbf,0x3,0x75,0x4,0xab,0x4,0xb5,0x4,0x7d,0x4, +0x2,0x4,0xc1,0x3,0x34,0x3,0xe1,0x1,0xab,0x0,0xad,0xff, +0x5e,0xfe,0x62,0xfd,0x2,0xfd,0xe3,0xfc,0x87,0xfd,0xc5,0xfe, +0xa7,0xff,0x6b,0x0,0x3a,0x1,0x75,0x1,0x71,0x1,0x89,0x1, +0x51,0x1,0xf8,0x0,0x9c,0x0,0xe3,0xff,0x53,0xff,0x4a,0xff, +0x10,0xff,0xab,0xfe,0xc2,0xfe,0x22,0xff,0x82,0xff,0x1a,0x0, +0xfd,0x0,0x8,0x2,0x11,0x3,0xde,0x3,0x50,0x4,0x57,0x4, +0xdf,0x3,0x3,0x3,0xf8,0x1,0xf0,0x0,0x1,0x0,0x27,0xff, +0x80,0xfe,0x4a,0xfe,0x86,0xfe,0xf,0xff,0xe0,0xff,0xde,0x0, +0xbf,0x1,0x63,0x2,0xcc,0x2,0xec,0x2,0xc9,0x2,0x38,0x2, +0xcd,0x0,0xe6,0xfe,0x65,0xfd,0xdf,0xfb,0x9b,0xf9,0x71,0xf7, +0xf,0xf6,0xb,0xf5,0x89,0xf4,0xb8,0xf4,0x43,0xf5,0xb9,0xf6, +0x95,0xf9,0x2a,0xfd,0x73,0x1,0x85,0x6,0x34,0xb,0xd0,0xe, +0x4f,0x11,0x4,0x12,0xd7,0x10,0x11,0xe,0x19,0x9,0x71,0x2, +0x1a,0xfc,0xec,0xf6,0xc9,0xf2,0x7c,0xf0,0x21,0xf1,0x66,0xf4, +0x8b,0xf8,0x8e,0xfc,0xa,0x1,0x65,0x5,0xc3,0x7,0x64,0x8, +0x83,0x8,0x9d,0x7,0x59,0x5,0x9c,0x2,0xcc,0xff,0x2e,0xfd, +0x62,0xfb,0x50,0xfa,0xc8,0xf9,0x3b,0xfa,0x99,0xfb,0x3f,0xfd, +0xc1,0xfe,0xec,0xff,0xc5,0x0,0x58,0x1,0x35,0x1,0xb,0x0, +0x66,0xfe,0xee,0xfc,0xa4,0xfb,0x6f,0xfa,0xb0,0xf9,0xc5,0xf9, +0x83,0xfa,0x85,0xfb,0xb4,0xfc,0x1e,0xfe,0xa5,0xff,0x14,0x1, +0x41,0x2,0x27,0x3,0xe9,0x3,0xc4,0x4,0xb9,0x5,0x44,0x6, +0xfe,0x5,0x4e,0x5,0xb8,0x4,0x4,0x4,0xb5,0x2,0xd5,0x0, +0xf4,0xfe,0x8a,0xfd,0x73,0xfc,0x86,0xfb,0x3e,0xfb,0xcd,0xfb, +0xb2,0xfc,0xf9,0xfd,0xf7,0xff,0xe9,0x1,0x8,0x3,0xd2,0x3, +0x89,0x4,0x8c,0x4,0xc4,0x3,0x9a,0x2,0x27,0x1,0xb7,0xff, +0xa0,0xfe,0x97,0xfd,0x9e,0xfc,0x66,0xfc,0xe0,0xfc,0x51,0xfd, +0xad,0xfd,0x2a,0xfe,0x93,0xfe,0xd3,0xfe,0xf4,0xfe,0xbb,0xfe, +0x30,0xfe,0xa3,0xfd,0x12,0xfd,0x7a,0xfc,0x18,0xfc,0xfe,0xfb, +0x41,0xfc,0x38,0xfd,0xc9,0xfe,0x54,0x0,0x9c,0x1,0xb6,0x2, +0x6b,0x3,0x96,0x3,0x5f,0x3,0xb2,0x2,0x5a,0x1,0xe4,0xff, +0x4,0xff,0x73,0xfe,0xcc,0xfd,0x9b,0xfd,0x1e,0xfe,0xc1,0xfe, +0x81,0xff,0xae,0x0,0xde,0x1,0xe3,0x2,0xfa,0x3,0x9c,0x4, +0x71,0x4,0x25,0x4,0xfe,0x3,0x9c,0x3,0xee,0x2,0xf6,0x1, +0xb7,0x0,0x76,0xff,0x5a,0xfe,0x8d,0xfd,0x4b,0xfd,0x5a,0xfd, +0xb3,0xfd,0xab,0xfe,0xf1,0xff,0xfb,0x0,0xb8,0x1,0xfc,0x1, +0xf1,0x1,0x11,0x2,0xef,0x1,0x2c,0x1,0x6c,0x0,0xf9,0xff, +0x9e,0xff,0x67,0xff,0x1e,0xff,0xb0,0xfe,0xac,0xfe,0x13,0xff, +0x70,0xff,0xf5,0xff,0xe4,0x0,0xfc,0x1,0xf5,0x2,0xae,0x3, +0x1d,0x4,0x27,0x4,0xa7,0x3,0xde,0x2,0x18,0x2,0x27,0x1, +0x13,0x0,0x41,0xff,0xd3,0xfe,0xb1,0xfe,0xd0,0xfe,0x45,0xff, +0x21,0x0,0x14,0x1,0xe2,0x1,0xb2,0x2,0x3f,0x3,0x47,0x3, +0x1b,0x3,0x75,0x2,0x2,0x1,0x6f,0xff,0xf4,0xfd,0x15,0xfc, +0x2d,0xfa,0x82,0xf8,0xe6,0xf6,0xdf,0xf5,0xaa,0xf5,0xdc,0xf5, +0xb1,0xf6,0x5a,0xf8,0x97,0xfa,0xc1,0xfd,0xcd,0x1,0xe4,0x5, +0xd8,0x9,0x6e,0xd,0xaa,0xf,0x53,0x10,0xd4,0xf,0xd4,0xd, +0xb9,0x9,0xdf,0x3,0xb3,0xfd,0x6c,0xf8,0x28,0xf4,0x65,0xf1, +0x5c,0xf1,0xd5,0xf3,0x6d,0xf7,0x86,0xfb,0xdb,0xff,0xd2,0x3, +0xc9,0x6,0xb,0x8,0xc7,0x7,0x10,0x7,0xc3,0x5,0x1d,0x3, +0x2,0x0,0x9f,0xfd,0xc1,0xfb,0x33,0xfa,0x69,0xf9,0xbc,0xf9, +0x2f,0xfb,0x2d,0xfd,0xe5,0xfe,0x39,0x0,0x56,0x1,0xfc,0x1, +0xc8,0x1,0x79,0x0,0x5c,0xfe,0x62,0xfc,0xe6,0xfa,0xa0,0xf9, +0xfe,0xf8,0x6b,0xf9,0x6c,0xfa,0xad,0xfb,0x28,0xfd,0x8b,0xfe, +0xc9,0xff,0xea,0x0,0xb7,0x1,0x8a,0x2,0xaa,0x3,0x80,0x4, +0x11,0x5,0xb4,0x5,0xb7,0x5,0x20,0x5,0xfb,0x4,0xd6,0x4, +0xc5,0x3,0x38,0x2,0x8c,0x0,0xc4,0xfe,0x6a,0xfd,0x86,0xfc, +0xcf,0xfb,0xa5,0xfb,0x2a,0xfc,0x3e,0xfd,0xff,0xfe,0xf7,0x0, +0x82,0x2,0x9e,0x3,0x51,0x4,0x9f,0x4,0x85,0x4,0x84,0x3, +0xcf,0x1,0x69,0x0,0x68,0xff,0x5f,0xfe,0x63,0xfd,0x97,0xfc, +0x79,0xfc,0x34,0xfd,0xaf,0xfd,0xcd,0xfd,0x9e,0xfe,0x79,0xff, +0x66,0xff,0x31,0xff,0xb,0xff,0x53,0xfe,0xaa,0xfd,0x74,0xfd, +0x10,0xfd,0x8c,0xfc,0x6f,0xfc,0xfe,0xfc,0x64,0xfe,0x7,0x0, +0x16,0x1,0xe9,0x1,0xda,0x2,0x88,0x3,0xc1,0x3,0x5a,0x3, +0x24,0x2,0xdb,0x0,0x20,0x0,0x81,0xff,0xba,0xfe,0x47,0xfe, +0x6d,0xfe,0xf8,0xfe,0xa7,0xff,0x74,0x0,0x7c,0x1,0x9d,0x2, +0x91,0x3,0x47,0x4,0x9a,0x4,0x78,0x4,0x4b,0x4,0x10,0x4, +0x16,0x3,0x92,0x1,0x5f,0x0,0x3f,0xff,0xe2,0xfd,0x20,0xfd, +0x1d,0xfd,0x16,0xfd,0x6a,0xfd,0x91,0xfe,0x94,0xff,0x18,0x0, +0xe7,0x0,0xb3,0x1,0xce,0x1,0xd8,0x1,0x6,0x2,0x8d,0x1, +0x9b,0x0,0xf2,0xff,0x7f,0xff,0xb,0xff,0xac,0xfe,0x6e,0xfe, +0x9e,0xfe,0x47,0xff,0xde,0xff,0x67,0x0,0x44,0x1,0xf9,0x1, +0x2a,0x2,0x67,0x2,0xd5,0x2,0xd9,0x2,0x51,0x2,0x9a,0x1, +0xe3,0x0,0x37,0x0,0xb2,0xff,0x56,0xff,0xa,0xff,0x8,0xff, +0xa3,0xff,0x6b,0x0,0xcd,0x0,0x29,0x1,0xc6,0x1,0x2d,0x2, +0x58,0x2,0x6a,0x2,0xf5,0x1,0x1d,0x1,0x5a,0x0,0x4e,0xff, +0xdb,0xfd,0x80,0xfc,0x2,0xfb,0x30,0xf9,0xb3,0xf7,0xb6,0xf6, +0xfa,0xf5,0xe6,0xf5,0xa6,0xf6,0xce,0xf7,0x80,0xf9,0x46,0xfc, +0x4,0x0,0x17,0x4,0x21,0x8,0xfb,0xb,0xe6,0xe,0xfa,0xf, +0x86,0xf,0x1a,0xe,0xf2,0xa,0x8e,0x5,0x59,0xff,0xe6,0xf9, +0x76,0xf5,0x34,0xf2,0xf,0xf1,0x85,0xf2,0xc5,0xf5,0xcf,0xf9, +0x73,0xfe,0x26,0x3,0x83,0x6,0x14,0x8,0xa3,0x8,0x6c,0x8, +0xf6,0x6,0x49,0x4,0x6,0x1,0x6,0xfe,0xfa,0xfb,0xb2,0xfa, +0x99,0xf9,0x24,0xf9,0x38,0xfa,0x4a,0xfc,0x27,0xfe,0xc6,0xff, +0x6d,0x1,0x70,0x2,0x60,0x2,0x75,0x1,0xa9,0xff,0x5d,0xfd, +0x74,0xfb,0xf1,0xf9,0xc3,0xf8,0xb1,0xf8,0xc7,0xf9,0x54,0xfb, +0x36,0xfd,0x1f,0xff,0x88,0x0,0x85,0x1,0x17,0x2,0x4a,0x2, +0xd1,0x2,0x90,0x3,0xdd,0x3,0x31,0x4,0xb3,0x4,0xab,0x4, +0x6d,0x4,0x63,0x4,0xed,0x3,0xe3,0x2,0x83,0x1,0xd3,0xff, +0x64,0xfe,0x63,0xfd,0x3d,0xfc,0x83,0xfb,0x8,0xfc,0x26,0xfd, +0x5f,0xfe,0x1,0x0,0xbf,0x1,0x20,0x3,0x34,0x4,0xf5,0x4, +0x8,0x5,0x29,0x4,0xa3,0x2,0x35,0x1,0xe,0x0,0xc1,0xfe, +0x45,0xfd,0x3a,0xfc,0x37,0xfc,0xe1,0xfc,0x47,0xfd,0x8f,0xfd, +0x34,0xfe,0x99,0xfe,0xa1,0xfe,0xd5,0xfe,0xb2,0xfe,0x27,0xfe, +0x17,0xfe,0xe,0xfe,0x77,0xfd,0x25,0xfd,0x4e,0xfd,0x9e,0xfd, +0x7c,0xfe,0xa0,0xff,0x5d,0x0,0x9,0x1,0xc0,0x1,0x37,0x2, +0x87,0x2,0x66,0x2,0xa0,0x1,0xf4,0x0,0xa8,0x0,0x4f,0x0, +0xf6,0xff,0xbb,0xff,0x94,0xff,0xcb,0xff,0x64,0x0,0xdf,0x0, +0x1e,0x1,0xbb,0x1,0x2,0x3,0x18,0x4,0x4f,0x4,0x55,0x4, +0x8a,0x4,0x4d,0x4,0x9f,0x3,0xcf,0x2,0x91,0x1,0x16,0x0, +0xfe,0xfe,0x2a,0xfe,0x58,0xfd,0xe6,0xfc,0x46,0xfd,0x43,0xfe, +0x2d,0xff,0xe9,0xff,0xec,0x0,0xe9,0x1,0x47,0x2,0x57,0x2, +0x60,0x2,0xec,0x1,0xdf,0x0,0xea,0xff,0x81,0xff,0x2f,0xff, +0x9d,0xfe,0x8a,0xfe,0x36,0xff,0xb3,0xff,0x7,0x0,0xfb,0x0, +0x15,0x2,0xa4,0x2,0xe2,0x2,0xde,0x2,0x97,0x2,0x49,0x2, +0xb8,0x1,0xed,0x0,0x75,0x0,0x19,0x0,0x9b,0xff,0x8b,0xff, +0xea,0xff,0x2a,0x0,0x88,0x0,0x44,0x1,0xcb,0x1,0xe7,0x1, +0x20,0x2,0x84,0x2,0x94,0x2,0x3a,0x2,0xac,0x1,0xf3,0x0, +0x2c,0x0,0x5d,0xff,0x48,0xfe,0xf2,0xfc,0x9c,0xfb,0x4f,0xfa, +0x7,0xf9,0xa0,0xf7,0x25,0xf6,0x3d,0xf5,0x3f,0xf5,0xe6,0xf5, +0x71,0xf7,0x2a,0xfa,0xc3,0xfd,0x2d,0x2,0x14,0x7,0x6c,0xb, +0xcc,0xe,0x6,0x11,0x73,0x11,0x36,0x10,0x80,0xd,0x8f,0x8, +0x2,0x2,0xd9,0xfb,0x9e,0xf6,0x39,0xf2,0xba,0xef,0x9,0xf0, +0xeb,0xf2,0x6c,0xf7,0x56,0xfc,0x23,0x1,0x9c,0x5,0xb8,0x8, +0xd3,0x9,0xac,0x9,0xb7,0x8,0x89,0x6,0x4a,0x3,0xef,0xff, +0x4b,0xfd,0x67,0xfb,0xc9,0xf9,0x9a,0xf8,0xcd,0xf8,0x7e,0xfa, +0x88,0xfc,0x44,0xfe,0xf7,0xff,0x84,0x1,0x62,0x2,0x46,0x2, +0x12,0x1,0x1,0xff,0xcf,0xfc,0x5,0xfb,0xb0,0xf9,0xfe,0xf8, +0x4e,0xf9,0x92,0xfa,0x3d,0xfc,0x1,0xfe,0xf2,0xff,0xab,0x1, +0xb6,0x2,0x69,0x3,0xf4,0x3,0x9,0x4,0x16,0x4,0x87,0x4, +0xb9,0x4,0x67,0x4,0x1b,0x4,0xee,0x3,0xa1,0x3,0x0,0x3, +0xd1,0x1,0x4f,0x0,0xda,0xfe,0x86,0xfd,0x7f,0xfc,0xfb,0xfb, +0x19,0xfc,0xf9,0xfc,0x40,0xfe,0x99,0xff,0x48,0x1,0x12,0x3, +0x6f,0x4,0x7f,0x5,0x4,0x6,0x7f,0x5,0x4f,0x4,0xc5,0x2, +0xe7,0x0,0x44,0xff,0xde,0xfd,0x59,0xfc,0x5f,0xfb,0x6f,0xfb, +0x13,0xfc,0xd7,0xfc,0x7c,0xfd,0x24,0xfe,0xf8,0xfe,0x66,0xff, +0x5a,0xff,0x77,0xff,0x7b,0xff,0x41,0xff,0x4e,0xff,0x2e,0xff, +0xa7,0xfe,0x9e,0xfe,0xfb,0xfe,0x43,0xff,0xce,0xff,0x49,0x0, +0x6f,0x0,0xcb,0x0,0x8,0x1,0xcf,0x0,0xcc,0x0,0xeb,0x0, +0xd8,0x0,0x6,0x1,0x1d,0x1,0xbc,0x0,0xa8,0x0,0xf0,0x0, +0xe,0x1,0x5b,0x1,0xd1,0x1,0xfb,0x1,0x3a,0x2,0xd4,0x2, +0x54,0x3,0x96,0x3,0xcb,0x3,0xf0,0x3,0xd7,0x3,0x3a,0x3, +0x2f,0x2,0x23,0x1,0x21,0x0,0xf6,0xfe,0xdd,0xfd,0x4c,0xfd, +0x64,0xfd,0xf7,0xfd,0xe7,0xfe,0x23,0x0,0x53,0x1,0x15,0x2, +0x78,0x2,0xac,0x2,0xa1,0x2,0x32,0x2,0x69,0x1,0x8c,0x0, +0xdb,0xff,0x3d,0xff,0xa1,0xfe,0x78,0xfe,0xf1,0xfe,0x7b,0xff, +0xda,0xff,0x8c,0x0,0x80,0x1,0x21,0x2,0x64,0x2,0x64,0x2, +0x2b,0x2,0x26,0x2,0x28,0x2,0x90,0x1,0xe3,0x0,0x9a,0x0, +0x15,0x0,0x9a,0xff,0xc4,0xff,0xe1,0xff,0xf0,0xff,0xa9,0x0, +0x6f,0x1,0xca,0x1,0x51,0x2,0xea,0x2,0x2d,0x3,0x8,0x3, +0x51,0x2,0x7d,0x1,0xe9,0x0,0xd5,0xff,0x63,0xfe,0x62,0xfd, +0x33,0xfc,0x81,0xfa,0xc,0xf9,0xa2,0xf7,0xf,0xf6,0x35,0xf5, +0x44,0xf5,0xce,0xf5,0x2,0xf7,0x6,0xf9,0xed,0xfb,0xff,0xff, +0xe4,0x4,0xc3,0x9,0xa,0xe,0x31,0x11,0x83,0x12,0xc6,0x11, +0x73,0xf,0x8d,0xb,0x9a,0x5,0xb4,0xfe,0xdb,0xf8,0xd,0xf4, +0x0,0xf0,0xa4,0xee,0xe3,0xf0,0xe0,0xf4,0x55,0xf9,0x6f,0xfe, +0x95,0x3,0x8c,0x7,0xbe,0x9,0x58,0xa,0xc9,0x9,0x2b,0x8, +0x64,0x5,0xda,0x1,0x75,0xfe,0xd7,0xfb,0xe7,0xf9,0x85,0xf8, +0x35,0xf8,0x3c,0xf9,0x14,0xfb,0x31,0xfd,0x1f,0xff,0x9d,0x0, +0x3,0x2,0x6,0x3,0x98,0x2,0xe2,0x0,0xbe,0xfe,0x5c,0xfc, +0x45,0xfa,0x12,0xf9,0x7d,0xf8,0xb4,0xf8,0x2e,0xfa,0x26,0xfc, +0x15,0xfe,0x62,0x0,0x92,0x2,0xe5,0x3,0xb5,0x4,0x39,0x5, +0x36,0x5,0xa,0x5,0xe9,0x4,0x5e,0x4,0x7b,0x3,0xd0,0x2, +0x51,0x2,0xab,0x1,0xe6,0x0,0xf4,0xff,0xcb,0xfe,0xe3,0xfd, +0x6e,0xfd,0xe2,0xfc,0x64,0xfc,0xd2,0xfc,0xf5,0xfd,0xff,0xfe, +0x46,0x0,0xd,0x2,0x81,0x3,0x70,0x4,0x36,0x5,0x3f,0x5, +0x30,0x4,0xab,0x2,0xd7,0x0,0xcc,0xfe,0x3f,0xfd,0x17,0xfc, +0xf5,0xfa,0x9f,0xfa,0x5d,0xfb,0x4a,0xfc,0x26,0xfd,0x1b,0xfe, +0xf6,0xfe,0xcc,0xff,0x96,0x0,0xda,0x0,0x94,0x0,0x10,0x0, +0x8c,0xff,0x32,0xff,0xa6,0xfe,0xd4,0xfd,0xa9,0xfd,0x37,0xfe, +0x7e,0xfe,0x95,0xfe,0xfd,0xfe,0x50,0xff,0x82,0xff,0xf1,0xff, +0x35,0x0,0xd,0x0,0x7,0x0,0x5d,0x0,0x94,0x0,0x86,0x0, +0x90,0x0,0xc1,0x0,0xf8,0x0,0x59,0x1,0xc5,0x1,0xe9,0x1, +0x3,0x2,0x43,0x2,0x66,0x2,0x8a,0x2,0xb4,0x2,0x93,0x2, +0x6f,0x2,0x52,0x2,0xaf,0x1,0xe9,0x0,0x4f,0x0,0x35,0xff, +0xf,0xfe,0xc6,0xfd,0xa8,0xfd,0x74,0xfd,0x1d,0xfe,0x61,0xff, +0x63,0x0,0x47,0x1,0x13,0x2,0x6e,0x2,0x88,0x2,0x7c,0x2, +0xf3,0x1,0xff,0x0,0x38,0x0,0xba,0xff,0xf,0xff,0x64,0xfe, +0x51,0xfe,0x7d,0xfe,0x80,0xfe,0xd1,0xfe,0x79,0xff,0x20,0x0, +0xf2,0x0,0xab,0x1,0xf8,0x1,0x80,0x2,0x2f,0x3,0x3,0x3, +0x2f,0x2,0x70,0x1,0xa6,0x0,0xc8,0xff,0x1f,0xff,0x95,0xfe, +0x3b,0xfe,0x6e,0xfe,0x32,0xff,0x29,0x0,0xd,0x1,0xfe,0x1, +0xfa,0x2,0x82,0x3,0x5e,0x3,0xd1,0x2,0xec,0x1,0x96,0x0, +0xc8,0xfe,0xb1,0xfc,0xf9,0xfa,0xe0,0xf9,0xc4,0xf8,0x89,0xf7, +0xb5,0xf6,0x34,0xf6,0xf0,0xf5,0x48,0xf6,0x41,0xf7,0xad,0xf8, +0xc6,0xfa,0xd6,0xfd,0xd0,0x1,0x1f,0x6,0x1b,0xa,0x89,0xd, +0xd3,0xf,0x3c,0x10,0x10,0xf,0x9a,0xc,0x41,0x8,0x60,0x2, +0x72,0xfc,0x3a,0xf7,0xec,0xf2,0x4b,0xf0,0x4f,0xf0,0xf6,0xf2, +0xfc,0xf6,0x88,0xfb,0xb1,0x0,0x66,0x5,0xb,0x8,0x6,0x9, +0x1e,0x9,0xc5,0x7,0x37,0x5,0x69,0x2,0x4b,0xff,0x3e,0xfc, +0x47,0xfa,0x1e,0xf9,0x40,0xf8,0x63,0xf8,0xf6,0xf9,0x51,0xfc, +0x9b,0xfe,0x7a,0x0,0x16,0x2,0x3c,0x3,0x2e,0x3,0xc1,0x1, +0x73,0xff,0xd1,0xfc,0x96,0xfa,0x1c,0xf9,0x25,0xf8,0xd8,0xf7, +0x89,0xf8,0x6,0xfa,0x33,0xfc,0xe4,0xfe,0x57,0x1,0x36,0x3, +0xc4,0x4,0xcc,0x5,0xf9,0x5,0x85,0x5,0xd8,0x4,0xc,0x4, +0x9,0x3,0x7,0x2,0x74,0x1,0x1e,0x1,0xb0,0x0,0x54,0x0, +0xe9,0xff,0x31,0xff,0x9e,0xfe,0x45,0xfe,0xbc,0xfd,0x7d,0xfd, +0x19,0xfe,0x36,0xff,0x7d,0x0,0xd1,0x1,0xf6,0x2,0x9,0x4, +0xe2,0x4,0xdf,0x4,0x19,0x4,0xf6,0x2,0x42,0x1,0x3a,0xff, +0x8c,0xfd,0x33,0xfc,0x19,0xfb,0xa2,0xfa,0xed,0xfa,0xdc,0xfb, +0x44,0xfd,0x93,0xfe,0x85,0xff,0x7d,0x0,0x72,0x1,0xd9,0x1, +0x8f,0x1,0xda,0x0,0x20,0x0,0x9f,0xff,0xfc,0xfe,0xf,0xfe, +0x98,0xfd,0xde,0xfd,0x42,0xfe,0xa3,0xfe,0x26,0xff,0x67,0xff, +0x81,0xff,0x11,0x0,0x8b,0x0,0x1b,0x0,0x85,0xff,0xbc,0xff, +0x2a,0x0,0x17,0x0,0x7,0x0,0x8b,0x0,0x57,0x1,0xd,0x2, +0xad,0x2,0x1b,0x3,0x15,0x3,0xc8,0x2,0xac,0x2,0xa9,0x2, +0x55,0x2,0xeb,0x1,0xdc,0x1,0xda,0x1,0xae,0x1,0x99,0x1, +0x40,0x1,0x53,0x0,0x7b,0xff,0xf6,0xfe,0x58,0xfe,0xe3,0xfd, +0xe8,0xfd,0x39,0xfe,0xe2,0xfe,0xb3,0xff,0x4c,0x0,0x15,0x1, +0x19,0x2,0xae,0x2,0xce,0x2,0x7e,0x2,0xb0,0x1,0x28,0x1, +0xec,0x0,0x15,0x0,0x2d,0xff,0xe1,0xfe,0x8a,0xfe,0x31,0xfe, +0x5b,0xfe,0xbd,0xfe,0x77,0xff,0xb2,0x0,0xcb,0x1,0xc8,0x2, +0xd1,0x3,0x41,0x4,0x1a,0x4,0x9f,0x3,0x83,0x2,0x37,0x1, +0x2a,0x0,0xe2,0xfe,0xb3,0xfd,0x5a,0xfd,0x98,0xfd,0x4c,0xfe, +0x7f,0xff,0xb8,0x0,0x6,0x2,0x66,0x3,0xfe,0x3,0xcf,0x3, +0x76,0x3,0x94,0x2,0xf2,0x0,0x20,0xff,0x64,0xfd,0xbd,0xfb, +0x37,0xfa,0xd8,0xf8,0xbd,0xf7,0xe6,0xf6,0x67,0xf6,0x9d,0xf6, +0x53,0xf7,0x18,0xf8,0x54,0xf9,0x93,0xfb,0xdc,0xfe,0xe3,0x2, +0xdb,0x6,0x4d,0xa,0x64,0xd,0x67,0xf,0x80,0xf,0x43,0xe, +0xad,0xb,0xf9,0x6,0x35,0x1,0xf4,0xfb,0x51,0xf7,0xca,0xf3, +0x73,0xf2,0x56,0xf3,0x1d,0xf6,0x51,0xfa,0xd6,0xfe,0xec,0x2, +0x2a,0x6,0xdd,0x7,0x1d,0x8,0x82,0x7,0xd2,0x5,0x9,0x3, +0xf7,0xff,0x3f,0xfd,0x48,0xfb,0x18,0xfa,0x6f,0xf9,0xc3,0xf9, +0x57,0xfb,0x47,0xfd,0x18,0xff,0xd2,0x0,0xfa,0x1,0x86,0x2, +0xa2,0x2,0x9b,0x1,0x63,0xff,0xf7,0xfc,0xef,0xfa,0x8d,0xf9, +0xbb,0xf8,0x1d,0xf8,0x5d,0xf8,0xfa,0xf9,0xf4,0xfb,0xf2,0xfd, +0x59,0x0,0x4d,0x2,0x60,0x3,0x53,0x4,0xea,0x4,0x97,0x4, +0xee,0x3,0x75,0x3,0x19,0x3,0xbb,0x2,0x54,0x2,0x12,0x2, +0xde,0x1,0x5d,0x1,0xb7,0x0,0xfe,0xff,0xfe,0xfe,0x3e,0xfe, +0xec,0xfd,0x6b,0xfd,0x17,0xfd,0xc8,0xfd,0x33,0xff,0xc5,0x0, +0x54,0x2,0xc4,0x3,0x4,0x5,0xa4,0x5,0x48,0x5,0x38,0x4, +0x79,0x2,0xe,0x0,0xe8,0xfd,0x7c,0xfc,0x4b,0xfb,0x70,0xfa, +0x5f,0xfa,0x12,0xfb,0x41,0xfc,0x6f,0xfd,0x6e,0xfe,0xa1,0xff, +0xc7,0x0,0x41,0x1,0x4f,0x1,0x17,0x1,0x49,0x0,0x40,0xff, +0x95,0xfe,0x2d,0xfe,0xd2,0xfd,0xda,0xfd,0x8f,0xfe,0x6c,0xff, +0xd7,0xff,0x1a,0x0,0x8f,0x0,0xdf,0x0,0xd5,0x0,0x76,0x0, +0xcd,0xff,0x64,0xff,0x83,0xff,0xa9,0xff,0xbf,0xff,0x14,0x0, +0x90,0x0,0x40,0x1,0x32,0x2,0xd7,0x2,0x3,0x3,0x24,0x3, +0x15,0x3,0xa7,0x2,0x78,0x2,0x97,0x2,0x53,0x2,0x11,0x2, +0x85,0x2,0xca,0x2,0x2f,0x2,0xa5,0x1,0x38,0x1,0xfa,0xff, +0x96,0xfe,0xed,0xfd,0x6c,0xfd,0x2b,0xfd,0xc2,0xfd,0x91,0xfe, +0x42,0xff,0x6a,0x0,0xc8,0x1,0xad,0x2,0xeb,0x2,0x99,0x2, +0x3a,0x2,0x7,0x2,0x5d,0x1,0x5d,0x0,0xd5,0xff,0x77,0xff, +0xdd,0xfe,0xb0,0xfe,0x16,0xff,0x7c,0xff,0xfa,0xff,0xf1,0x0, +0x12,0x2,0xd4,0x2,0x34,0x3,0x72,0x3,0x6e,0x3,0xe6,0x2, +0x22,0x2,0x70,0x1,0x7b,0x0,0x3a,0xff,0x79,0xfe,0x65,0xfe, +0x68,0xfe,0xbc,0xfe,0xd0,0xff,0xda,0x0,0x72,0x1,0x4e,0x2, +0x3f,0x3,0x7a,0x3,0x45,0x3,0xdd,0x2,0xe7,0x1,0xa2,0x0, +0x69,0xff,0xb,0xfe,0x9a,0xfc,0x20,0xfb,0x76,0xf9,0x1,0xf8, +0x10,0xf7,0x62,0xf6,0x1b,0xf6,0x8d,0xf6,0x78,0xf7,0xe6,0xf8, +0x8c,0xfb,0x8e,0xff,0xfd,0x3,0x13,0x8,0xcf,0xb,0xe1,0xe, +0x67,0x10,0xd,0x10,0x2,0xe,0x46,0xa,0x42,0x5,0xd4,0xff, +0x99,0xfa,0x21,0xf6,0x34,0xf3,0x96,0xf2,0x8c,0xf4,0x44,0xf8, +0xa3,0xfc,0x44,0x1,0x5d,0x5,0xb5,0x7,0x75,0x8,0x38,0x8, +0xae,0x6,0x14,0x4,0x53,0x1,0x90,0xfe,0xf,0xfc,0x98,0xfa, +0x7,0xfa,0xf4,0xf9,0xe6,0xfa,0xa,0xfd,0x71,0xff,0x37,0x1, +0x4a,0x2,0xef,0x2,0x27,0x3,0x6f,0x2,0x6c,0x0,0xcf,0xfd, +0xb3,0xfb,0x33,0xfa,0xf0,0xf8,0x43,0xf8,0x91,0xf8,0xac,0xf9, +0x5e,0xfb,0x53,0xfd,0x2c,0xff,0x0,0x1,0xa8,0x2,0x98,0x3, +0xa,0x4,0x6d,0x4,0x77,0x4,0x38,0x4,0x26,0x4,0xf7,0x3, +0x65,0x3,0xf0,0x2,0xc0,0x2,0x5e,0x2,0xb1,0x1,0xe2,0x0, +0xd9,0xff,0xbb,0xfe,0x6,0xfe,0xb9,0xfd,0x69,0xfd,0x4a,0xfd, +0x5,0xfe,0x93,0xff,0x2e,0x1,0x5b,0x2,0x58,0x3,0x5b,0x4, +0xe5,0x4,0x7c,0x4,0x50,0x3,0xa6,0x1,0xdb,0xff,0x8d,0xfe, +0xb0,0xfd,0xac,0xfc,0xc5,0xfb,0xb2,0xfb,0x63,0xfc,0x3a,0xfd, +0x1,0xfe,0xdf,0xfe,0xa4,0xff,0xf7,0xff,0x18,0x0,0xe,0x0, +0x5d,0xff,0x87,0xfe,0x4c,0xfe,0x5,0xfe,0x74,0xfd,0x76,0xfd, +0x19,0xfe,0xd9,0xfe,0x98,0xff,0x1e,0x0,0x90,0x0,0x3e,0x1, +0xb1,0x1,0xb9,0x1,0xa5,0x1,0x55,0x1,0x5,0x1,0xf5,0x0, +0x9b,0x0,0x3c,0x0,0x72,0x0,0x8e,0x0,0x77,0x0,0xd3,0x0, +0xd,0x1,0xd5,0x0,0xdc,0x0,0x17,0x1,0x82,0x1,0x7a,0x2, +0x5f,0x3,0xce,0x3,0x40,0x4,0x77,0x4,0x8,0x4,0x33,0x3, +0x1c,0x2,0xc2,0x0,0x23,0xff,0x75,0xfd,0x8d,0xfc,0x93,0xfc, +0xda,0xfc,0x95,0xfd,0xf4,0xfe,0x51,0x0,0xc4,0x1,0x43,0x3, +0xc4,0x3,0x73,0x3,0x2c,0x3,0x77,0x2,0x29,0x1,0xfd,0xff, +0x25,0xff,0xaa,0xfe,0xa3,0xfe,0xbf,0xfe,0x13,0xff,0xea,0xff, +0xec,0x0,0xdc,0x1,0xc7,0x2,0x72,0x3,0xbb,0x3,0x9b,0x3, +0x6,0x3,0x24,0x2,0xfe,0x0,0xae,0xff,0xda,0xfe,0x85,0xfe, +0x6,0xfe,0xb3,0xfd,0x3c,0xfe,0x3a,0xff,0x31,0x0,0x3e,0x1, +0x3f,0x2,0xf0,0x2,0x70,0x3,0xc8,0x3,0xa4,0x3,0x11,0x3, +0x7b,0x2,0xbc,0x1,0x6a,0x0,0xda,0xfe,0x5f,0xfd,0xb3,0xfb, +0xf6,0xf9,0x71,0xf8,0xe1,0xf6,0x8b,0xf5,0x9,0xf5,0x4,0xf5, +0x53,0xf5,0xb1,0xf6,0x38,0xf9,0xa9,0xfc,0x17,0x1,0xe1,0x5, +0x39,0xa,0x18,0xe,0xf2,0x10,0xf1,0x11,0x3f,0x11,0xce,0xe, +0x1e,0xa,0x7,0x4,0xf2,0xfd,0x5c,0xf8,0xd8,0xf3,0x67,0xf1, +0x96,0xf1,0x37,0xf4,0x42,0xf8,0xb1,0xfc,0x7f,0x1,0x1d,0x6, +0xde,0x8,0x95,0x9,0x6b,0x9,0x2c,0x8,0x4d,0x5,0xde,0x1, +0xe9,0xfe,0x65,0xfc,0x68,0xfa,0x3f,0xf9,0xfe,0xf8,0xed,0xf9, +0xf0,0xfb,0x27,0xfe,0x12,0x0,0xd1,0x1,0x1f,0x3,0x7d,0x3, +0xdc,0x2,0x5e,0x1,0x30,0xff,0xa9,0xfc,0x4a,0xfa,0xb6,0xf8, +0x28,0xf8,0x3b,0xf8,0xe9,0xf8,0x77,0xfa,0x5f,0xfc,0x21,0xfe, +0x1,0x0,0xee,0x1,0x74,0x3,0x96,0x4,0x51,0x5,0x96,0x5, +0xb1,0x5,0x86,0x5,0xd9,0x4,0xb,0x4,0x41,0x3,0x3a,0x2, +0x44,0x1,0x98,0x0,0xa6,0xff,0x54,0xfe,0x89,0xfd,0xa9,0xfd, +0xde,0xfd,0xb2,0xfd,0x2,0xfe,0x30,0xff,0x51,0x0,0xfe,0x0, +0x9f,0x1,0x4a,0x2,0xf4,0x2,0x54,0x3,0xd5,0x2,0xbd,0x1, +0xb4,0x0,0x89,0xff,0x56,0xfe,0xb8,0xfd,0x75,0xfd,0x38,0xfd, +0x6f,0xfd,0x2c,0xfe,0xe0,0xfe,0x39,0xff,0x62,0xff,0xab,0xff, +0xef,0xff,0xbe,0xff,0x10,0xff,0x25,0xfe,0x4b,0xfd,0xd5,0xfc, +0x9b,0xfc,0x69,0xfc,0x93,0xfc,0x3a,0xfd,0x24,0xfe,0x37,0xff, +0x18,0x0,0xb3,0x0,0x78,0x1,0x2d,0x2,0x5d,0x2,0x5b,0x2, +0x50,0x2,0x12,0x2,0xcc,0x1,0x7a,0x1,0x10,0x1,0xc6,0x0, +0x72,0x0,0xa,0x0,0xc1,0xff,0x56,0xff,0x11,0xff,0x7a,0xff, +0xf7,0xff,0x67,0x0,0x95,0x1,0xe1,0x2,0x91,0x3,0x53,0x4, +0xd3,0x4,0x19,0x4,0xe8,0x2,0xf3,0x1,0x8b,0x0,0x9a,0xfe, +0xf,0xfd,0x65,0xfc,0x49,0xfc,0x7a,0xfc,0x62,0xfd,0x10,0xff, +0x99,0x0,0xa1,0x1,0xa9,0x2,0x71,0x3,0x72,0x3,0xfa,0x2, +0x4e,0x2,0x41,0x1,0x1d,0x0,0x5d,0xff,0xcb,0xfe,0x33,0xfe, +0xf,0xfe,0x8e,0xfe,0x4f,0xff,0x62,0x0,0xcc,0x1,0xf0,0x2, +0xab,0x3,0x2b,0x4,0x18,0x4,0x7b,0x3,0x86,0x2,0xf4,0x0, +0x52,0xff,0x4d,0xfe,0x45,0xfd,0x47,0xfc,0x4e,0xfc,0x3,0xfd, +0xea,0xfd,0x65,0xff,0x4,0x1,0x3f,0x2,0x81,0x3,0x9a,0x4, +0x3,0x5,0x4,0x5,0xc2,0x4,0x3,0x4,0xbd,0x2,0xed,0x0, +0xbe,0xfe,0x74,0xfc,0x18,0xfa,0xe3,0xf7,0xe,0xf6,0x87,0xf4, +0xa1,0xf3,0x8a,0xf3,0xe2,0xf3,0xdf,0xf4,0xd,0xf7,0x5f,0xfa, +0xbd,0xfe,0xd6,0x3,0xc1,0x8,0xff,0xc,0x7b,0x10,0xb7,0x12, +0x36,0x13,0xd0,0x11,0x61,0xe,0xf3,0x8,0x46,0x2,0xc6,0xfb, +0x4b,0xf6,0xdd,0xf1,0x72,0xef,0x41,0xf0,0x72,0xf3,0xbd,0xf7, +0xa,0xfd,0x75,0x2,0x61,0x6,0xa3,0x8,0xbe,0x9,0xae,0x9, +0x5b,0x8,0xc3,0x5,0x60,0x2,0x19,0xff,0x4d,0xfc,0xb,0xfa, +0x9d,0xf8,0x24,0xf8,0xc1,0xf8,0x8c,0xfa,0xdb,0xfc,0xf5,0xfe, +0xe0,0x0,0x8d,0x2,0x55,0x3,0xc5,0x2,0x55,0x1,0xb2,0xff, +0xa7,0xfd,0x2a,0xfb,0x58,0xf9,0xb6,0xf8,0x9b,0xf8,0xe,0xf9, +0x71,0xfa,0x36,0xfc,0xda,0xfd,0x7e,0xff,0x38,0x1,0xdb,0x2, +0x11,0x4,0xc9,0x4,0x79,0x5,0x11,0x6,0xc,0x6,0x8f,0x5, +0xd7,0x4,0xc8,0x3,0xa4,0x2,0x7b,0x1,0xd,0x0,0xb3,0xfe, +0xaf,0xfd,0xcc,0xfc,0x77,0xfc,0xf1,0xfc,0x65,0xfd,0xcf,0xfd, +0x1e,0xff,0xe8,0x0,0xf,0x2,0xce,0x2,0xa4,0x3,0x1e,0x4, +0xe0,0x3,0x9,0x3,0xac,0x1,0x30,0x0,0x12,0xff,0x10,0xfe, +0xff,0xfc,0x73,0xfc,0xa2,0xfc,0x3e,0xfd,0x46,0xfe,0x91,0xff, +0x85,0x0,0xfe,0x0,0x4d,0x1,0x56,0x1,0xbe,0x0,0x97,0xff, +0x40,0xfe,0x12,0xfd,0x45,0xfc,0xcb,0xfb,0x88,0xfb,0xc6,0xfb, +0xad,0xfc,0xb6,0xfd,0xad,0xfe,0xdd,0xff,0xf9,0x0,0xa1,0x1, +0x27,0x2,0x65,0x2,0x12,0x2,0xb8,0x1,0x6d,0x1,0xda,0x0, +0x93,0x0,0xd2,0x0,0xd5,0x0,0x98,0x0,0x85,0x0,0x6a,0x0, +0x42,0x0,0x38,0x0,0x41,0x0,0x90,0x0,0x23,0x1,0x99,0x1, +0x4,0x2,0x90,0x2,0x2,0x3,0x23,0x3,0xbc,0x2,0xdc,0x1, +0xfd,0x0,0x10,0x0,0xde,0xfe,0xf1,0xfd,0x9d,0xfd,0xb3,0xfd, +0x3b,0xfe,0xb,0xff,0xda,0xff,0xce,0x0,0xba,0x1,0x41,0x2, +0x91,0x2,0x94,0x2,0x8,0x2,0x5b,0x1,0xcc,0x0,0x9,0x0, +0x3c,0xff,0xb1,0xfe,0x42,0xfe,0xc,0xfe,0x70,0xfe,0x67,0xff, +0x8d,0x0,0xa1,0x1,0xaa,0x2,0xa8,0x3,0x4e,0x4,0x4f,0x4, +0x92,0x3,0x35,0x2,0xab,0x0,0x31,0xff,0xa9,0xfd,0x66,0xfc, +0xe2,0xfb,0xef,0xfb,0x55,0xfc,0x52,0xfd,0xe6,0xfe,0xb5,0x0, +0x75,0x2,0xd6,0x3,0xaf,0x4,0x2e,0x5,0x67,0x5,0x19,0x5, +0x1,0x4,0x32,0x2,0x9,0x0,0xc6,0xfd,0x65,0xfb,0xf1,0xf8, +0xb6,0xf6,0x1,0xf5,0xec,0xf3,0x63,0xf3,0x73,0xf3,0x59,0xf4, +0x23,0xf6,0xc4,0xf8,0x68,0xfc,0x7,0x1,0xc,0x6,0xd8,0xa, +0xeb,0xe,0xb1,0x11,0xd9,0x12,0x6d,0x12,0x3f,0x10,0xf5,0xb, +0xda,0x5,0x1b,0xff,0xee,0xf8,0xdc,0xf3,0x51,0xf0,0x42,0xef, +0x1c,0xf1,0xe9,0xf4,0xa3,0xf9,0xf5,0xfe,0xb,0x4,0xaa,0x7, +0x8c,0x9,0x1d,0xa,0x71,0x9,0x7e,0x7,0x95,0x4,0x67,0x1, +0x94,0xfe,0x47,0xfc,0x7f,0xfa,0x50,0xf9,0xe9,0xf8,0xab,0xf9, +0x91,0xfb,0xaa,0xfd,0x50,0xff,0xf0,0x0,0x96,0x2,0x4c,0x3, +0x7b,0x2,0xcc,0x0,0x31,0xff,0xa8,0xfd,0xda,0xfb,0x79,0xfa, +0x37,0xfa,0x90,0xfa,0x25,0xfb,0x35,0xfc,0x8b,0xfd,0xef,0xfe, +0x5c,0x0,0x5c,0x1,0x2,0x2,0xdb,0x2,0x9a,0x3,0x14,0x4, +0xbe,0x4,0x21,0x5,0xc6,0x4,0x73,0x4,0x55,0x4,0x9d,0x3, +0x39,0x2,0x8c,0x0,0xc7,0xfe,0x42,0xfd,0x31,0xfc,0x9d,0xfb, +0x9e,0xfb,0x15,0xfc,0x1,0xfd,0xa9,0xfe,0xb3,0x0,0x62,0x2, +0xa8,0x3,0xc7,0x4,0x89,0x5,0x80,0x5,0x71,0x4,0xaa,0x2, +0xb9,0x0,0xd6,0xfe,0x11,0xfd,0xbb,0xfb,0x24,0xfb,0x4e,0xfb, +0xb,0xfc,0x2c,0xfd,0xa0,0xfe,0x3d,0x0,0x9a,0x1,0x77,0x2, +0xc0,0x2,0x3f,0x2,0xea,0x0,0x46,0xff,0xe2,0xfd,0xbe,0xfc, +0xc0,0xfb,0x31,0xfb,0x53,0xfb,0x0,0xfc,0xff,0xfc,0x41,0xfe, +0xa0,0xff,0xd6,0x0,0xab,0x1,0x19,0x2,0x39,0x2,0x16,0x2, +0xc3,0x1,0x4a,0x1,0x9a,0x0,0x18,0x0,0x51,0x0,0xcc,0x0, +0xea,0x0,0x37,0x1,0xf0,0x1,0x42,0x2,0x22,0x2,0x4b,0x2, +0xa7,0x2,0xb5,0x2,0x7d,0x2,0x4c,0x2,0x38,0x2,0xfe,0x1, +0x63,0x1,0x8d,0x0,0xb1,0xff,0xf,0xff,0xec,0xfe,0xf8,0xfe, +0xfb,0xfe,0x60,0xff,0x1c,0x0,0xba,0x0,0x61,0x1,0x1f,0x2, +0x89,0x2,0x83,0x2,0x25,0x2,0x8f,0x1,0xfd,0x0,0x32,0x0, +0x1e,0xff,0x7c,0xfe,0x69,0xfe,0x40,0xfe,0x25,0xfe,0x82,0xfe, +0x1d,0xff,0xcc,0xff,0x9e,0x0,0x84,0x1,0x8d,0x2,0x8f,0x3, +0x11,0x4,0xf5,0x3,0x56,0x3,0x4f,0x2,0x1b,0x1,0xc9,0xff, +0x60,0xfe,0x4f,0xfd,0xe6,0xfc,0xf0,0xfc,0x3f,0xfd,0xd8,0xfd, +0xb0,0xfe,0xbd,0xff,0x7,0x1,0x62,0x2,0x6f,0x3,0xf8,0x3, +0x1d,0x4,0xf2,0x3,0x64,0x3,0x68,0x2,0x8,0x1,0x6a,0xff, +0xad,0xfd,0xa1,0xfb,0x50,0xf9,0x43,0xf7,0xb7,0xf5,0x8c,0xf4, +0xf0,0xf3,0x5,0xf4,0xce,0xf4,0x8d,0xf6,0x64,0xf9,0x34,0xfd, +0xe1,0x1,0xe2,0x6,0x80,0xb,0x51,0xf,0xa3,0x11,0xea,0x11, +0x9a,0x10,0xef,0xd,0x62,0x9,0x3f,0x3,0xd6,0xfc,0x27,0xf7, +0xb3,0xf2,0x1d,0xf0,0x19,0xf0,0x98,0xf2,0x97,0xf6,0x51,0xfb, +0x72,0x0,0x5,0x5,0x10,0x8,0x84,0x9,0x92,0x9,0x56,0x8, +0x7,0x6,0xe2,0x2,0xd0,0xff,0xc7,0xfd,0x1d,0xfc,0x33,0xfa, +0x29,0xf9,0x9b,0xf9,0xc5,0xfa,0x66,0xfc,0x53,0xfe,0xdb,0xff, +0x16,0x1,0x27,0x2,0x36,0x2,0x1c,0x1,0xba,0xff,0x4a,0xfe, +0x9a,0xfc,0x1d,0xfb,0x66,0xfa,0x7b,0xfa,0xf,0xfb,0xef,0xfb, +0x2b,0xfd,0xb4,0xfe,0xb,0x0,0xe1,0x0,0x6a,0x1,0xd8,0x1, +0x2a,0x2,0x7e,0x2,0x2,0x3,0xb2,0x3,0x49,0x4,0x71,0x4, +0x46,0x4,0x36,0x4,0xe8,0x3,0xb2,0x2,0x2,0x1,0x77,0xff, +0xdc,0xfd,0x7c,0xfc,0xe2,0xfb,0xa8,0xfb,0xe7,0xfb,0x5c,0xfd, +0x54,0xff,0xe5,0x0,0x81,0x2,0x27,0x4,0x3f,0x5,0xd2,0x5, +0x95,0x5,0x38,0x4,0x98,0x2,0x2a,0x1,0x71,0xff,0xa6,0xfd, +0x5f,0xfc,0xa8,0xfb,0x87,0xfb,0xe,0xfc,0x33,0xfd,0xb1,0xfe, +0xd9,0xff,0x97,0x0,0x64,0x1,0xd1,0x1,0x54,0x1,0x88,0x0, +0xc5,0xff,0xae,0xfe,0x61,0xfd,0x67,0xfc,0x8,0xfc,0x13,0xfc, +0x36,0xfc,0xbc,0xfc,0xd8,0xfd,0xf2,0xfe,0xe5,0xff,0xec,0x0, +0x92,0x1,0xc2,0x1,0xf6,0x1,0x1,0x2,0xcb,0x1,0xa4,0x1, +0x66,0x1,0x1f,0x1,0x38,0x1,0x6f,0x1,0x81,0x1,0xb2,0x1, +0x9,0x2,0x8a,0x2,0x26,0x3,0x5c,0x3,0x29,0x3,0xf7,0x2, +0xa5,0x2,0x1f,0x2,0x92,0x1,0xbf,0x0,0x92,0xff,0x85,0xfe, +0xed,0xfd,0xba,0xfd,0xd1,0xfd,0x69,0xfe,0xab,0xff,0xfb,0x0, +0xdc,0x1,0xbb,0x2,0x8c,0x3,0x8e,0x3,0xde,0x2,0x1c,0x2, +0x42,0x1,0x1d,0x0,0xcb,0xfe,0xa6,0xfd,0x11,0xfd,0xc,0xfd, +0x59,0xfd,0xe9,0xfd,0xba,0xfe,0xe3,0xff,0x36,0x1,0x19,0x2, +0xc6,0x2,0xe6,0x3,0x9d,0x4,0x1,0x4,0x34,0x3,0xe2,0x2, +0xe4,0x1,0x3f,0x0,0x3b,0xff,0xa8,0xfe,0xf4,0xfd,0xe6,0xfd, +0xab,0xfe,0x5f,0xff,0xe,0x0,0xc,0x1,0xcb,0x1,0x43,0x2, +0xdb,0x2,0x12,0x3,0xbb,0x2,0x74,0x2,0x23,0x2,0x65,0x1, +0x77,0x0,0x6c,0xff,0x47,0xfe,0x39,0xfd,0x8,0xfc,0xa5,0xfa, +0x7c,0xf9,0x6a,0xf8,0x2f,0xf7,0x31,0xf6,0xd2,0xf5,0x20,0xf6, +0x4e,0xf7,0x8d,0xf9,0xe3,0xfc,0x14,0x1,0xad,0x5,0x32,0xa, +0xdc,0xd,0xfe,0xf,0xb9,0x10,0xb,0x10,0x55,0xd,0xbd,0x8, +0x35,0x3,0x54,0xfd,0xbd,0xf7,0x71,0xf3,0x12,0xf1,0xf4,0xf0, +0x44,0xf3,0x6f,0xf7,0x62,0xfc,0x73,0x1,0xf6,0x5,0xc0,0x8, +0x84,0x9,0x33,0x9,0xf0,0x7,0x2b,0x5,0xb7,0x1,0xd2,0xfe, +0x81,0xfc,0xaa,0xfa,0x84,0xf9,0x30,0xf9,0xc,0xfa,0xe1,0xfb, +0xbd,0xfd,0x79,0xff,0x15,0x1,0xf2,0x1,0x24,0x2,0xc5,0x1, +0x38,0x0,0x14,0xfe,0x77,0xfc,0x2b,0xfb,0x27,0xfa,0xf2,0xf9, +0x61,0xfa,0x4b,0xfb,0xa7,0xfc,0x6,0xfe,0x72,0xff,0xf0,0x0, +0xc4,0x1,0xeb,0x1,0x4,0x2,0x17,0x2,0x3b,0x2,0xac,0x2, +0x2a,0x3,0x97,0x3,0xdc,0x3,0xd0,0x3,0xc4,0x3,0x97,0x3, +0x83,0x2,0xe0,0x0,0x87,0xff,0x3b,0xfe,0xe3,0xfc,0x40,0xfc, +0x74,0xfc,0xff,0xfc,0xdc,0xfd,0x33,0xff,0xc2,0x0,0x28,0x2, +0x40,0x3,0xfb,0x3,0x3b,0x4,0xde,0x3,0xe3,0x2,0xa2,0x1, +0x8d,0x0,0xa4,0xff,0xc3,0xfe,0xf6,0xfd,0x52,0xfd,0x1d,0xfd, +0x7a,0xfd,0xef,0xfd,0x54,0xfe,0x1,0xff,0xb2,0xff,0x13,0x0, +0x4c,0x0,0x15,0x0,0x5d,0xff,0xd6,0xfe,0x5f,0xfe,0x7e,0xfd, +0xc8,0xfc,0xa7,0xfc,0xdf,0xfc,0x58,0xfd,0xdb,0xfd,0x6a,0xfe, +0x66,0xff,0x61,0x0,0xe3,0x0,0x5c,0x1,0xde,0x1,0x11,0x2, +0x1a,0x2,0xfd,0x1,0xab,0x1,0x74,0x1,0x63,0x1,0x61,0x1, +0x84,0x1,0xab,0x1,0xd8,0x1,0x2d,0x2,0x6f,0x2,0xa5,0x2, +0xd6,0x2,0x9b,0x2,0x37,0x2,0x32,0x2,0x13,0x2,0x72,0x1, +0x9d,0x0,0xca,0xff,0x38,0xff,0xfc,0xfe,0xbd,0xfe,0x9f,0xfe, +0x3,0xff,0xaa,0xff,0x5a,0x0,0xc,0x1,0x8d,0x1,0xd8,0x1, +0x9,0x2,0x1b,0x2,0xfa,0x1,0x77,0x1,0xc5,0x0,0x45,0x0, +0x9a,0xff,0xd0,0xfe,0xa7,0xfe,0xc3,0xfe,0x9f,0xfe,0xd0,0xfe, +0x33,0xff,0x69,0xff,0x40,0x0,0x94,0x1,0x6e,0x2,0x25,0x3, +0xc7,0x3,0x9f,0x3,0x11,0x3,0x7a,0x2,0x59,0x1,0xc,0x0, +0x4c,0xff,0xf0,0xfe,0xbc,0xfe,0xcd,0xfe,0x45,0xff,0x1a,0x0, +0xf1,0x0,0xae,0x1,0x6b,0x2,0xd5,0x2,0xc8,0x2,0x6c,0x2, +0x95,0x1,0x7b,0x0,0x82,0xff,0x54,0xfe,0x19,0xfd,0x70,0xfc, +0xde,0xfb,0xa,0xfb,0x85,0xfa,0x2e,0xfa,0x89,0xf9,0xc9,0xf8, +0x13,0xf8,0x9d,0xf7,0xdf,0xf7,0xca,0xf8,0x3c,0xfa,0xcd,0xfc, +0xd8,0x0,0x7f,0x5,0x89,0x9,0xc5,0xc,0x62,0xf,0x80,0x10, +0x8a,0xf,0x1c,0xd,0x1e,0x9,0x6b,0x3,0x8e,0xfd,0x88,0xf8, +0x18,0xf4,0x51,0xf1,0x9d,0xf1,0x79,0xf4,0xba,0xf8,0xa5,0xfd, +0x87,0x2,0xa1,0x6,0x10,0x9,0x86,0x9,0xbd,0x8,0xfb,0x6, +0xb,0x4,0x97,0x0,0x95,0xfd,0x5c,0xfb,0xf1,0xf9,0x1e,0xf9, +0x0,0xf9,0x1f,0xfa,0x3a,0xfc,0x7b,0xfe,0x71,0x0,0xe1,0x1, +0xad,0x2,0xb5,0x2,0x8e,0x1,0x72,0xff,0x4f,0xfd,0x7f,0xfb, +0x5,0xfa,0x18,0xf9,0xcc,0xf8,0x45,0xf9,0x85,0xfa,0x17,0xfc, +0xd7,0xfd,0xdb,0xff,0xa2,0x1,0xb4,0x2,0x3d,0x3,0x9f,0x3, +0xf6,0x3,0xf1,0x3,0x8f,0x3,0x5f,0x3,0x38,0x3,0xb8,0x2, +0x73,0x2,0x82,0x2,0x28,0x2,0x82,0x1,0xd6,0x0,0xf1,0xff, +0x24,0xff,0x94,0xfe,0xf0,0xfd,0x93,0xfd,0xb9,0xfd,0xb,0xfe, +0xcc,0xfe,0xfb,0xff,0xdc,0x0,0x82,0x1,0x38,0x2,0x8d,0x2, +0x6f,0x2,0x16,0x2,0x63,0x1,0x96,0x0,0x6,0x0,0x82,0xff, +0xfd,0xfe,0x93,0xfe,0x55,0xfe,0x7e,0xfe,0xfd,0xfe,0x7e,0xff, +0x9,0x0,0x9c,0x0,0xdf,0x0,0x91,0x0,0x8d,0xff,0x1a,0xfe, +0xf1,0xfc,0x13,0xfc,0x24,0xfb,0xa6,0xfa,0x2,0xfb,0xdf,0xfb, +0x22,0xfd,0xad,0xfe,0xfb,0xff,0x31,0x1,0xa1,0x2,0x9e,0x3, +0xb5,0x3,0x7d,0x3,0x2f,0x3,0x77,0x2,0x7c,0x1,0xae,0x0, +0x2c,0x0,0xf2,0xff,0xfa,0xff,0x23,0x0,0x48,0x0,0x8a,0x0, +0x1b,0x1,0xc6,0x1,0x41,0x2,0x8d,0x2,0xa3,0x2,0x86,0x2, +0x7c,0x2,0x5f,0x2,0xdf,0x1,0x44,0x1,0xb9,0x0,0x1b,0x0, +0x9f,0xff,0x21,0xff,0x6a,0xfe,0x49,0xfe,0xe9,0xfe,0x48,0xff, +0xa1,0xff,0x97,0x0,0x50,0x1,0x84,0x1,0xf4,0x1,0x46,0x2, +0x5,0x2,0xcb,0x1,0xa6,0x1,0x32,0x1,0xa6,0x0,0x14,0x0, +0x6c,0xff,0xff,0xfe,0xc0,0xfe,0x70,0xfe,0x77,0xfe,0x30,0xff, +0x35,0x0,0x8,0x1,0xb1,0x1,0x5b,0x2,0xdb,0x2,0xfa,0x2, +0xbf,0x2,0x3d,0x2,0x8f,0x1,0x2,0x1,0xa8,0x0,0x4f,0x0, +0x15,0x0,0x41,0x0,0xac,0x0,0xef,0x0,0xd,0x1,0x58,0x1, +0xc8,0x1,0xff,0x1,0xd4,0x1,0x5b,0x1,0xc2,0x0,0x20,0x0, +0x3d,0xff,0x1b,0xfe,0x2f,0xfd,0x5f,0xfc,0x28,0xfb,0xd6,0xf9, +0xd6,0xf8,0xd2,0xf7,0xb9,0xf6,0x26,0xf6,0x6a,0xf6,0x5d,0xf7, +0x4,0xf9,0xa9,0xfb,0x76,0xff,0xd,0x4,0x8a,0x8,0x27,0xc, +0xc2,0xe,0x55,0x10,0x65,0x10,0xb7,0xe,0x71,0xb,0x71,0x6, +0x52,0x0,0xbb,0xfa,0x22,0xf6,0x5d,0xf2,0xc9,0xf0,0x51,0xf2, +0xdb,0xf5,0x5c,0xfa,0x42,0xff,0xbc,0x3,0x33,0x7,0xfd,0x8, +0xc0,0x8,0x7a,0x7,0xae,0x5,0xd7,0x2,0x99,0xff,0xc,0xfd, +0x2a,0xfb,0xe3,0xf9,0x40,0xf9,0x3c,0xf9,0x78,0xfa,0xe6,0xfc, +0x35,0xff,0xe2,0x0,0x4c,0x2,0x47,0x3,0x46,0x3,0xf3,0x1, +0x98,0xff,0x1f,0xfd,0x12,0xfb,0x59,0xf9,0xb,0xf8,0x92,0xf7, +0x3f,0xf8,0xc6,0xf9,0x85,0xfb,0x8e,0xfd,0xf8,0xff,0xfe,0x1, +0x61,0x3,0x8a,0x4,0x56,0x5,0x99,0x5,0x77,0x5,0xe5,0x4, +0x20,0x4,0x5e,0x3,0x66,0x2,0xa0,0x1,0x76,0x1,0x4b,0x1, +0xd8,0x0,0x78,0x0,0xc,0x0,0x74,0xff,0xf4,0xfe,0x93,0xfe, +0x51,0xfe,0x5c,0xfe,0xc8,0xfe,0x7c,0xff,0x31,0x0,0xba,0x0, +0x34,0x1,0x9d,0x1,0xc9,0x1,0x87,0x1,0xd0,0x0,0x32,0x0, +0xa,0x0,0xda,0xff,0x73,0xff,0x25,0xff,0xfa,0xfe,0x3b,0xff, +0x8,0x0,0xa6,0x0,0xeb,0x0,0x3b,0x1,0x37,0x1,0x86,0x0, +0x6a,0xff,0x10,0xfe,0xb5,0xfc,0x82,0xfb,0x7e,0xfa,0x8,0xfa, +0x30,0xfa,0xc0,0xfa,0x10,0xfc,0xdd,0xfd,0x56,0xff,0xc6,0x0, +0x62,0x2,0x8b,0x3,0x31,0x4,0x65,0x4,0x29,0x4,0x2,0x4, +0xbe,0x3,0xdf,0x2,0xf5,0x1,0x1d,0x1,0xf7,0xff,0x2b,0xff, +0xed,0xfe,0xa1,0xfe,0x99,0xfe,0x3e,0xff,0x3f,0x0,0x5d,0x1, +0x68,0x2,0x70,0x3,0x8a,0x4,0xff,0x4,0xac,0x4,0x28,0x4, +0x18,0x3,0x73,0x1,0xa,0x0,0x80,0xfe,0xb8,0xfc,0xfb,0xfb, +0x48,0xfc,0xce,0xfc,0xe5,0xfd,0x8a,0xff,0x1f,0x1,0x8b,0x2, +0x78,0x3,0xa8,0x3,0xa4,0x3,0x54,0x3,0x57,0x2,0x43,0x1, +0x8f,0x0,0xdb,0xff,0x2,0xff,0x6a,0xfe,0x56,0xfe,0x6b,0xfe, +0x72,0xfe,0xe4,0xfe,0xb0,0xff,0x32,0x0,0xac,0x0,0x6b,0x1, +0xda,0x1,0xf1,0x1,0x17,0x2,0xa,0x2,0xc6,0x1,0xb6,0x1, +0xbd,0x1,0xb1,0x1,0x9d,0x1,0x65,0x1,0x24,0x1,0x17,0x1, +0xe,0x1,0xfb,0x0,0x28,0x1,0x85,0x1,0xa9,0x1,0x79,0x1, +0x53,0x1,0x73,0x1,0x52,0x1,0x8a,0x0,0xaa,0xff,0xe4,0xfe, +0x7b,0xfd,0x72,0xfb,0x7d,0xf9,0x7c,0xf7,0x6c,0xf5,0x31,0xf4, +0x15,0xf4,0xad,0xf4,0x24,0xf6,0xcc,0xf8,0xaf,0xfc,0xb7,0x1, +0x11,0x7,0xb3,0xb,0x86,0xf,0x26,0x12,0x8b,0x12,0xfd,0x10, +0x4a,0xe,0xd6,0x9,0x74,0x3,0xcd,0xfc,0x2a,0xf7,0xa1,0xf2, +0xa2,0xef,0x2d,0xef,0xa7,0xf1,0x5a,0xf6,0xef,0xfb,0x41,0x1, +0xbb,0x5,0xde,0x8,0x1d,0xa,0x84,0x9,0xc2,0x7,0x49,0x5, +0x3a,0x2,0x1e,0xff,0xb5,0xfc,0x2f,0xfb,0x40,0xfa,0xc4,0xf9, +0x36,0xfa,0xb,0xfc,0x9f,0xfe,0xdb,0x0,0x7f,0x2,0xba,0x3, +0x48,0x4,0xb4,0x3,0xd2,0x1,0x22,0xff,0xa3,0xfc,0xbe,0xfa, +0x4b,0xf9,0x7d,0xf8,0x96,0xf8,0x76,0xf9,0x8,0xfb,0xfd,0xfc, +0xca,0xfe,0x54,0x0,0xcb,0x1,0x1c,0x3,0x6,0x4,0x81,0x4, +0xca,0x4,0xf9,0x4,0xdd,0x4,0x70,0x4,0xd1,0x3,0x13,0x3, +0x90,0x2,0x4c,0x2,0x99,0x1,0x5f,0x0,0x5b,0xff,0xb5,0xfe, +0x5,0xfe,0x63,0xfd,0x57,0xfd,0xf8,0xfd,0xcb,0xfe,0xb0,0xff, +0xcf,0x0,0xb6,0x1,0x23,0x2,0x86,0x2,0xa6,0x2,0x14,0x2, +0x37,0x1,0x25,0x0,0xed,0xfe,0x74,0xfe,0x9a,0xfe,0x6c,0xfe, +0x65,0xfe,0xf9,0xfe,0x83,0xff,0x0,0x0,0x96,0x0,0xc6,0x0, +0xc6,0x0,0xca,0x0,0x1d,0x0,0xcc,0xfe,0x99,0xfd,0x93,0xfc, +0xbe,0xfb,0x76,0xfb,0x99,0xfb,0xe5,0xfb,0x92,0xfc,0xb5,0xfd, +0xd4,0xfe,0x9c,0xff,0x73,0x0,0x90,0x1,0x4f,0x2,0x7d,0x2, +0xc0,0x2,0x31,0x3,0x5c,0x3,0x48,0x3,0x1e,0x3,0xb4,0x2, +0xf4,0x1,0xf6,0x0,0xef,0xff,0x10,0xff,0x7c,0xfe,0x64,0xfe, +0xe4,0xfe,0xd7,0xff,0xe,0x1,0x5d,0x2,0x9c,0x3,0xab,0x4, +0x40,0x5,0x2a,0x5,0x96,0x4,0x68,0x3,0x7d,0x1,0x7b,0xff, +0xd8,0xfd,0x53,0xfc,0x44,0xfb,0x4e,0xfb,0x16,0xfc,0x46,0xfd, +0x24,0xff,0x3f,0x1,0xb9,0x2,0xa6,0x3,0x4d,0x4,0x6e,0x4, +0xfa,0x3,0x34,0x3,0x41,0x2,0x2f,0x1,0xf8,0xff,0xc8,0xfe, +0x5,0xfe,0x9e,0xfd,0x5f,0xfd,0xa3,0xfd,0x76,0xfe,0x4e,0xff, +0x29,0x0,0x2f,0x1,0xf2,0x1,0x57,0x2,0x9c,0x2,0x9d,0x2, +0x67,0x2,0x1c,0x2,0x55,0x1,0x42,0x0,0xc4,0xff,0xcf,0xff, +0xd3,0xff,0xfd,0xff,0x5f,0x0,0xac,0x0,0x1e,0x1,0xcf,0x1, +0xf,0x2,0xc0,0x1,0x84,0x1,0x4f,0x1,0xa1,0x0,0xaf,0xff, +0xde,0xfe,0x20,0xfe,0x41,0xfd,0x2,0xfc,0x6d,0xfa,0x3,0xf9, +0xa8,0xf7,0xf4,0xf5,0xb1,0xf4,0xa2,0xf4,0x31,0xf5,0x52,0xf6, +0x14,0xf9,0x7f,0xfd,0x75,0x2,0x54,0x7,0xf1,0xb,0xc9,0xf, +0x6,0x12,0x31,0x12,0x7b,0x10,0x8,0xd,0xb2,0x7,0x11,0x1, +0x89,0xfa,0x1a,0xf5,0xe,0xf1,0xc6,0xee,0x1a,0xef,0x78,0xf2, +0xf2,0xf7,0xe3,0xfd,0x32,0x3,0x44,0x7,0x8c,0x9,0xe0,0x9, +0xbb,0x8,0xa7,0x6,0xba,0x3,0x57,0x0,0x80,0xfd,0xa4,0xfb, +0x5c,0xfa,0x9a,0xf9,0xbd,0xf9,0xe,0xfb,0x83,0xfd,0x22,0x0, +0xdb,0x1,0x6,0x3,0xfb,0x3,0xcd,0x3,0x2b,0x2,0xf7,0xff, +0xbc,0xfd,0x93,0xfb,0xcf,0xf9,0xde,0xf8,0xe6,0xf8,0x8e,0xf9, +0x9d,0xfa,0x4e,0xfc,0x3f,0xfe,0xb4,0xff,0xd4,0x0,0xf8,0x1, +0xcd,0x2,0x3c,0x3,0x89,0x3,0xc8,0x3,0xf7,0x3,0xf,0x4, +0xe0,0x3,0x52,0x3,0xa1,0x2,0x28,0x2,0xbf,0x1,0xe4,0x0, +0xc7,0xff,0x3,0xff,0x7b,0xfe,0xe1,0xfd,0x73,0xfd,0x99,0xfd, +0x6f,0xfe,0x92,0xff,0x96,0x0,0x86,0x1,0x61,0x2,0xec,0x2, +0x1e,0x3,0xd8,0x2,0xfe,0x1,0xe9,0x0,0xca,0xff,0xaf,0xfe, +0x2,0xfe,0xbe,0xfd,0x96,0xfd,0xc1,0xfd,0x42,0xfe,0xd5,0xfe, +0x92,0xff,0x33,0x0,0x5a,0x0,0x6d,0x0,0x6e,0x0,0xf1,0xff, +0x2a,0xff,0x37,0xfe,0x7,0xfd,0x42,0xfc,0x37,0xfc,0x4e,0xfc, +0x71,0xfc,0x15,0xfd,0x2c,0xfe,0x3c,0xff,0xc,0x0,0xdb,0x0, +0xa8,0x1,0x17,0x2,0x41,0x2,0x55,0x2,0x27,0x2,0x7,0x2, +0x28,0x2,0xe5,0x1,0x48,0x1,0xe7,0x0,0x7a,0x0,0xf6,0xff, +0xdd,0xff,0xf7,0xff,0xe,0x0,0x82,0x0,0x18,0x1,0x6f,0x1, +0xea,0x1,0xaa,0x2,0x32,0x3,0x4c,0x3,0x32,0x3,0xe4,0x2, +0xff,0x1,0x9b,0x0,0x54,0xff,0x2f,0xfe,0xe,0xfd,0x7e,0xfc, +0x82,0xfc,0xad,0xfc,0x74,0xfd,0xec,0xfe,0x1b,0x0,0xc,0x1, +0x74,0x2,0xba,0x3,0x1c,0x4,0x0,0x4,0xbc,0x3,0xa,0x3, +0xde,0x1,0x7f,0x0,0x2c,0xff,0x16,0xfe,0x4c,0xfd,0xcc,0xfc, +0xca,0xfc,0x79,0xfd,0xac,0xfe,0x1d,0x0,0xa6,0x1,0xf0,0x2, +0xb0,0x3,0x1,0x4,0xe8,0x3,0x3b,0x3,0x1f,0x2,0xd4,0x0, +0x76,0xff,0x5d,0xfe,0xe4,0xfd,0xe3,0xfd,0x28,0xfe,0xee,0xfe, +0x3d,0x0,0x88,0x1,0x4b,0x2,0x95,0x2,0x92,0x2,0x35,0x2, +0x7f,0x1,0x75,0x0,0x1c,0xff,0xc4,0xfd,0xb0,0xfc,0x9d,0xfb, +0x76,0xfa,0x8f,0xf9,0xbe,0xf8,0xa1,0xf7,0x9a,0xf6,0x68,0xf6, +0xff,0xf6,0xec,0xf7,0x92,0xf9,0x9f,0xfc,0x9f,0x0,0xaa,0x4, +0xaa,0x8,0x65,0xc,0xe7,0xe,0xc8,0xf,0x50,0xf,0x6b,0xd, +0xc9,0x9,0x96,0x4,0xc6,0xfe,0xaa,0xf9,0xbf,0xf5,0xd2,0xf2, +0xa8,0xf1,0x5f,0xf3,0x39,0xf7,0x95,0xfb,0xc,0x0,0x5a,0x4, +0x43,0x7,0x3d,0x8,0xe9,0x7,0x9b,0x6,0x65,0x4,0xc8,0x1, +0x31,0xff,0x8,0xfd,0xb9,0xfb,0xe3,0xfa,0x1e,0xfa,0x37,0xfa, +0xc8,0xfb,0xf6,0xfd,0xc3,0xff,0xf,0x1,0xe,0x2,0xa7,0x2, +0x51,0x2,0xde,0x0,0x5,0xff,0x49,0xfd,0x7f,0xfb,0xe9,0xf9, +0x37,0xf9,0x51,0xf9,0xa6,0xf9,0x59,0xfa,0xe8,0xfb,0xee,0xfd, +0xa2,0xff,0x3,0x1,0x47,0x2,0x1a,0x3,0x7d,0x3,0xd3,0x3, +0xe1,0x3,0x6c,0x3,0xe6,0x2,0x6d,0x2,0xa2,0x1,0xc4,0x0, +0x61,0x0,0x3d,0x0,0xc8,0xff,0x36,0xff,0xfd,0xfe,0xef,0xfe, +0xda,0xfe,0xea,0xfe,0xf8,0xfe,0xf,0xff,0xaf,0xff,0x83,0x0, +0xfe,0x0,0x91,0x1,0x44,0x2,0x74,0x2,0x54,0x2,0xff,0x1, +0xe8,0x0,0x85,0xff,0xae,0xfe,0x26,0xfe,0xac,0xfd,0x61,0xfd, +0x41,0xfd,0x81,0xfd,0x32,0xfe,0xe9,0xfe,0x92,0xff,0x3e,0x0, +0xb2,0x0,0xea,0x0,0xbf,0x0,0xdb,0xff,0xa9,0xfe,0xc4,0xfd, +0x11,0xfd,0x76,0xfc,0x19,0xfc,0x1b,0xfc,0xa7,0xfc,0xa1,0xfd, +0xb5,0xfe,0xc5,0xff,0xd6,0x0,0xdb,0x1,0x9e,0x2,0xce,0x2, +0x9f,0x2,0x53,0x2,0xa7,0x1,0xd8,0x0,0x75,0x0,0x2d,0x0, +0xdb,0xff,0xf6,0xff,0x33,0x0,0x49,0x0,0xae,0x0,0x54,0x1, +0xea,0x1,0x81,0x2,0xd9,0x2,0xe5,0x2,0x1,0x3,0xeb,0x2, +0x7c,0x2,0x1,0x2,0x47,0x1,0x59,0x0,0x9b,0xff,0xa8,0xfe, +0x8c,0xfd,0x2e,0xfd,0x66,0xfd,0xa2,0xfd,0x4d,0xfe,0x83,0xff, +0xb0,0x0,0x9c,0x1,0x5a,0x2,0x4,0x3,0x9a,0x3,0xcc,0x3, +0x77,0x3,0xb7,0x2,0xb6,0x1,0xc0,0x0,0xda,0xff,0xd9,0xfe, +0xa,0xfe,0xa1,0xfd,0x85,0xfd,0xd5,0xfd,0x6d,0xfe,0x25,0xff, +0x66,0x0,0xdf,0x1,0xc8,0x2,0x7c,0x3,0x2c,0x4,0x17,0x4, +0x4d,0x3,0x53,0x2,0xb,0x1,0xa1,0xff,0x9b,0xfe,0x1,0xfe, +0xbc,0xfd,0xca,0xfd,0x44,0xfe,0x44,0xff,0x69,0x0,0x5d,0x1, +0x34,0x2,0xaf,0x2,0x95,0x2,0x34,0x2,0x81,0x1,0x50,0x0, +0xdc,0xfe,0x30,0xfd,0x5d,0xfb,0xc4,0xf9,0x51,0xf8,0xea,0xf6, +0x11,0xf6,0xa,0xf6,0x9a,0xf6,0xaa,0xf7,0x76,0xf9,0x45,0xfc, +0xbc,0xff,0x3c,0x3,0xe8,0x6,0x7c,0xa,0xd7,0xc,0xe7,0xd, +0x10,0xe,0xc7,0xc,0xfe,0x9,0x40,0x6,0x96,0x1,0xc9,0xfc, +0xeb,0xf8,0xd3,0xf5,0xd1,0xf3,0x2b,0xf4,0xba,0xf6,0x5c,0xfa, +0x85,0xfe,0xae,0x2,0xd,0x6,0xf1,0x7,0x2b,0x8,0x78,0x7, +0x3c,0x6,0xe9,0x3,0xe3,0x0,0x71,0xfe,0xd3,0xfc,0xb2,0xfb, +0xf3,0xfa,0xa5,0xfa,0x4e,0xfb,0x17,0xfd,0xf9,0xfe,0x5b,0x0, +0xb1,0x1,0xcc,0x2,0xea,0x2,0xfe,0x1,0x8d,0x0,0x0,0xff, +0x67,0xfd,0xb8,0xfb,0x52,0xfa,0xb0,0xf9,0xc0,0xf9,0x40,0xfa, +0x6e,0xfb,0x76,0xfd,0x9f,0xff,0x8,0x1,0xfe,0x1,0x19,0x3, +0xd8,0x3,0xe4,0x3,0xe8,0x3,0x1a,0x4,0x0,0x4,0x9c,0x3, +0x17,0x3,0x70,0x2,0xe5,0x1,0x91,0x1,0x3c,0x1,0xda,0x0, +0x6f,0x0,0xf7,0xff,0x9f,0xff,0x5d,0xff,0x0,0xff,0xce,0xfe, +0x33,0xff,0x19,0x0,0xb,0x1,0xc0,0x1,0x62,0x2,0x18,0x3, +0x99,0x3,0x7f,0x3,0xa3,0x2,0x34,0x1,0xb3,0xff,0x97,0xfe, +0xf0,0xfd,0x7c,0xfd,0x1,0xfd,0xdd,0xfc,0x90,0xfd,0x96,0xfe, +0x47,0xff,0x8,0x0,0xf6,0x0,0x63,0x1,0x48,0x1,0xf2,0x0, +0x28,0x0,0xfb,0xfe,0xc6,0xfd,0xa7,0xfc,0xe4,0xfb,0xb3,0xfb, +0xe8,0xfb,0x7d,0xfc,0x7b,0xfd,0xc0,0xfe,0x25,0x0,0x60,0x1, +0x68,0x2,0x47,0x3,0x80,0x3,0x1c,0x3,0xc5,0x2,0x37,0x2, +0x42,0x1,0xb7,0x0,0x77,0x0,0xee,0xff,0xd0,0xff,0x68,0x0, +0x0,0x1,0x8b,0x1,0x22,0x2,0xa1,0x2,0x4c,0x3,0xd4,0x3, +0xae,0x3,0x5f,0x3,0x3c,0x3,0xc4,0x2,0xd9,0x1,0xae,0x0, +0x7e,0xff,0xa4,0xfe,0xa,0xfe,0x84,0xfd,0x5d,0xfd,0xa5,0xfd, +0x6c,0xfe,0xde,0xff,0x66,0x1,0x76,0x2,0x4d,0x3,0x1,0x4, +0x3e,0x4,0xd7,0x3,0xfb,0x2,0x30,0x2,0x8c,0x1,0x99,0x0, +0x9b,0xff,0x6,0xff,0x66,0xfe,0xc3,0xfd,0xb8,0xfd,0x1a,0xfe, +0xb2,0xfe,0xa7,0xff,0xbe,0x0,0xf2,0x1,0x58,0x3,0x53,0x4, +0xa9,0x4,0xb8,0x4,0x55,0x4,0x64,0x3,0x58,0x2,0x41,0x1, +0x1,0x0,0xf0,0xfe,0x54,0xfe,0x20,0xfe,0x6e,0xfe,0x54,0xff, +0x71,0x0,0x58,0x1,0x22,0x2,0xe1,0x2,0x37,0x3,0x1c,0x3, +0xc0,0x2,0xd1,0x1,0x4a,0x0,0xa3,0xfe,0xee,0xfc,0x25,0xfb, +0x93,0xf9,0x49,0xf8,0x56,0xf7,0xd3,0xf6,0x99,0xf6,0xfa,0xf6, +0x57,0xf8,0x1a,0xfa,0x17,0xfc,0x27,0xff,0x13,0x3,0xbf,0x6, +0xef,0x9,0x8c,0xc,0xe6,0xd,0xe0,0xd,0xd3,0xc,0x58,0xa, +0x17,0x6,0xf7,0x0,0x18,0xfc,0xb0,0xf7,0x7,0xf4,0x3c,0xf2, +0x36,0xf3,0x79,0xf6,0xc6,0xfa,0x7a,0xff,0x55,0x4,0x3d,0x8, +0x1b,0xa,0x2f,0xa,0xf8,0x8,0xa2,0x6,0xcb,0x3,0xbf,0x0, +0x76,0xfd,0xef,0xfa,0xce,0xf9,0x46,0xf9,0x68,0xf9,0x8,0xfb, +0x77,0xfd,0xa1,0xff,0x82,0x1,0x13,0x3,0xe8,0x3,0xaa,0x3, +0x3c,0x2,0x18,0x0,0xe8,0xfd,0xbb,0xfb,0xaa,0xf9,0x54,0xf8, +0x23,0xf8,0xe2,0xf8,0x3b,0xfa,0x25,0xfc,0x69,0xfe,0x47,0x0, +0x71,0x1,0x58,0x2,0xf,0x3,0x6e,0x3,0x96,0x3,0x88,0x3, +0x6b,0x3,0x87,0x3,0x68,0x3,0xd2,0x2,0x70,0x2,0x68,0x2, +0x37,0x2,0xcb,0x1,0x2b,0x1,0x3c,0x0,0x35,0xff,0x6a,0xfe, +0xf0,0xfd,0x89,0xfd,0x30,0xfd,0xa7,0xfd,0x29,0xff,0x9c,0x0, +0x9f,0x1,0xe2,0x2,0x20,0x4,0x8c,0x4,0x34,0x4,0x3a,0x3, +0xa0,0x1,0x3,0x0,0xe0,0xfe,0xe1,0xfd,0xbe,0xfc,0xfa,0xfb, +0x19,0xfc,0xe2,0xfc,0xf1,0xfd,0x20,0xff,0x36,0x0,0x8,0x1, +0x8b,0x1,0x6f,0x1,0x98,0x0,0x73,0xff,0x3f,0xfe,0xc,0xfd, +0x3,0xfc,0x2d,0xfb,0xcd,0xfa,0x5a,0xfb,0x88,0xfc,0xc4,0xfd, +0x1b,0xff,0xa8,0x0,0x19,0x2,0x1e,0x3,0x9f,0x3,0x98,0x3, +0xfe,0x2,0xa,0x2,0x4a,0x1,0xb4,0x0,0xcb,0xff,0xf7,0xfe, +0xee,0xfe,0x7a,0xff,0x22,0x0,0xb2,0x0,0x31,0x1,0xf2,0x1, +0xc6,0x2,0xa,0x3,0xef,0x2,0x2,0x3,0xd,0x3,0xb3,0x2, +0xfe,0x1,0xf,0x1,0xb,0x0,0xe,0xff,0x50,0xfe,0xea,0xfd, +0x76,0xfd,0x2b,0xfd,0xf2,0xfd,0x6d,0xff,0x8a,0x0,0x84,0x1, +0x9c,0x2,0x48,0x3,0x95,0x3,0xac,0x3,0x26,0x3,0x34,0x2, +0x60,0x1,0x85,0x0,0x8a,0xff,0xb2,0xfe,0xef,0xfd,0x30,0xfd, +0xbf,0xfc,0xd1,0xfc,0x73,0xfd,0x99,0xfe,0xee,0xff,0x28,0x1, +0x54,0x2,0x7f,0x3,0x64,0x4,0xb3,0x4,0x48,0x4,0x38,0x3, +0x7,0x2,0x3,0x1,0xc5,0xff,0x57,0xfe,0x93,0xfd,0xa3,0xfd, +0xec,0xfd,0x61,0xfe,0x46,0xff,0x73,0x0,0x8e,0x1,0x4a,0x2, +0x90,0x2,0x8f,0x2,0x4d,0x2,0xa3,0x1,0x94,0x0,0x3b,0xff, +0xcf,0xfd,0x6a,0xfc,0xd7,0xfa,0x37,0xf9,0x2,0xf8,0x34,0xf7, +0xbb,0xf6,0xcb,0xf6,0x32,0xf7,0xdb,0xf7,0x58,0xf9,0xdc,0xfb, +0xe,0xff,0xba,0x2,0xa0,0x6,0x61,0xa,0x8c,0xd,0x54,0xf, +0x49,0xf,0xc9,0xd,0xcf,0xa,0x0,0x6,0x1d,0x0,0x8c,0xfa, +0xc9,0xf5,0xfe,0xf1,0x60,0xf0,0x4,0xf2,0xf3,0xf5,0x70,0xfa, +0x40,0xff,0x74,0x4,0xa3,0x8,0x81,0xa,0x56,0xa,0xd9,0x8, +0x64,0x6,0x31,0x3,0x82,0xff,0xf,0xfc,0xcc,0xf9,0xaa,0xf8, +0xe,0xf8,0x55,0xf8,0x30,0xfa,0x24,0xfd,0xec,0xff,0xdf,0x1, +0x43,0x3,0x1d,0x4,0xa4,0x3,0x98,0x1,0xdd,0xfe,0x36,0xfc, +0xd5,0xf9,0x14,0xf8,0x3b,0xf7,0x34,0xf7,0xa,0xf8,0xcc,0xf9, +0x13,0xfc,0x48,0xfe,0x21,0x0,0xbd,0x1,0x21,0x3,0xdf,0x3, +0xd5,0x3,0xac,0x3,0xd5,0x3,0x11,0x4,0x0,0x4,0x87,0x3, +0xee,0x2,0x8a,0x2,0x28,0x2,0x8b,0x1,0xb6,0x0,0x92,0xff, +0x6a,0xfe,0xba,0xfd,0x9,0xfd,0x10,0xfc,0xd7,0xfb,0xbe,0xfc, +0xe9,0xfd,0x2e,0xff,0xc5,0x0,0x40,0x2,0x67,0x3,0x55,0x4, +0xb6,0x4,0x43,0x4,0x15,0x3,0x65,0x1,0xae,0xff,0x66,0xfe, +0x5e,0xfd,0x57,0xfc,0xc8,0xfb,0x3a,0xfc,0x4e,0xfd,0x41,0xfe, +0x2,0xff,0xd4,0xff,0x70,0x0,0x63,0x0,0xcc,0xff,0x6,0xff, +0x28,0xfe,0x33,0xfd,0x44,0xfc,0x6d,0xfb,0xf3,0xfa,0x5d,0xfb, +0x8b,0xfc,0xb2,0xfd,0xbc,0xfe,0x2b,0x0,0xc0,0x1,0xd4,0x2, +0x51,0x3,0x4c,0x3,0xc2,0x2,0xef,0x1,0x1c,0x1,0x5a,0x0, +0x9f,0xff,0xee,0xfe,0x82,0xfe,0xa6,0xfe,0x43,0xff,0xe8,0xff, +0x4c,0x0,0xb4,0x0,0x82,0x1,0x60,0x2,0xbe,0x2,0xcd,0x2, +0xed,0x2,0x4,0x3,0xcf,0x2,0x22,0x2,0x17,0x1,0x18,0x0, +0x4e,0xff,0x8d,0xfe,0xf8,0xfd,0xc8,0xfd,0xdf,0xfd,0x39,0xfe, +0x27,0xff,0xa4,0x0,0xea,0x1,0x83,0x2,0xf1,0x2,0x53,0x3, +0x30,0x3,0xc7,0x2,0x3b,0x2,0x12,0x1,0xdb,0xff,0x2e,0xff, +0x37,0xfe,0xc,0xfd,0xbb,0xfc,0xcb,0xfc,0xa5,0xfc,0x1c,0xfd, +0x63,0xfe,0xcb,0xff,0x1f,0x1,0x46,0x2,0x13,0x3,0x96,0x3, +0xba,0x3,0x61,0x3,0xa2,0x2,0x98,0x1,0x5f,0x0,0xc,0xff, +0x14,0xfe,0x0,0xfe,0x4e,0xfe,0x7b,0xfe,0x2d,0xff,0x50,0x0, +0xed,0x0,0x46,0x1,0xd1,0x1,0x32,0x2,0x7f,0x2,0xa6,0x2, +0x2,0x2,0xd2,0x0,0x95,0xff,0x2f,0xfe,0xca,0xfc,0x66,0xfb, +0xb8,0xf9,0x48,0xf8,0x6c,0xf7,0xba,0xf6,0x5f,0xf6,0xb7,0xf6, +0xae,0xf7,0x8c,0xf9,0x6b,0xfc,0xd4,0xff,0xca,0x3,0x32,0x8, +0x18,0xc,0xc8,0xe,0x1a,0x10,0xcb,0xf,0xb0,0xd,0xe1,0x9, +0x9a,0x4,0x8e,0xfe,0xde,0xf8,0x5a,0xf4,0x4e,0xf1,0x4e,0xf0, +0x5,0xf2,0xd6,0xf5,0x87,0xfa,0xab,0xff,0x9c,0x4,0xf,0x8, +0xaf,0x9,0xcd,0x9,0x62,0x8,0xe0,0x5,0xee,0x2,0xa1,0xff, +0x8d,0xfc,0x7e,0xfa,0x4f,0xf9,0xf1,0xf8,0xfe,0xf9,0x43,0xfc, +0xc9,0xfe,0x15,0x1,0x4,0x3,0x51,0x4,0x9e,0x4,0x88,0x3, +0x41,0x1,0xc0,0xfe,0x89,0xfc,0x42,0xfa,0x3f,0xf8,0x76,0xf7, +0xe7,0xf7,0x28,0xf9,0x37,0xfb,0x7d,0xfd,0x56,0xff,0x11,0x1, +0xa0,0x2,0x8d,0x3,0x47,0x4,0xd8,0x4,0xbd,0x4,0xae,0x4, +0x22,0x5,0xef,0x4,0xe9,0x3,0x50,0x3,0x3b,0x3,0xa2,0x2, +0x3c,0x1,0xc8,0xff,0xd9,0xfe,0xdf,0xfd,0x7f,0xfc,0xd3,0xfb, +0x5b,0xfc,0xfe,0xfc,0x6f,0xfd,0x87,0xfe,0x4f,0x0,0x15,0x2, +0x8a,0x3,0x9c,0x4,0x26,0x5,0x0,0x5,0x1b,0x4,0xa8,0x2, +0x1b,0x1,0xd3,0xff,0xb6,0xfe,0xaa,0xfd,0x1c,0xfd,0x51,0xfd, +0xcf,0xfd,0x3f,0xfe,0xce,0xfe,0x74,0xff,0xf4,0xff,0x53,0x0, +0x84,0x0,0x26,0x0,0x1f,0xff,0xfd,0xfd,0x2f,0xfd,0x81,0xfc, +0xe2,0xfb,0xc9,0xfb,0x73,0xfc,0x92,0xfd,0xbb,0xfe,0xba,0xff, +0xad,0x0,0x9b,0x1,0x45,0x2,0xa5,0x2,0xc0,0x2,0x57,0x2, +0xab,0x1,0x35,0x1,0xae,0x0,0xce,0xff,0x20,0xff,0x1a,0xff, +0x77,0xff,0xbb,0xff,0xce,0xff,0xf5,0xff,0x47,0x0,0xc2,0x0, +0x84,0x1,0x41,0x2,0x99,0x2,0xc6,0x2,0xce,0x2,0x71,0x2, +0xf7,0x1,0x7e,0x1,0xba,0x0,0xe5,0xff,0x3c,0xff,0x97,0xfe, +0x28,0xfe,0x38,0xfe,0xc5,0xfe,0xd0,0xff,0xf4,0x0,0xae,0x1, +0x41,0x2,0xf5,0x2,0x57,0x3,0x15,0x3,0x6e,0x2,0xc8,0x1, +0x43,0x1,0xa2,0x0,0xb8,0xff,0xaa,0xfe,0xcc,0xfd,0x7b,0xfd, +0xa0,0xfd,0xe6,0xfd,0x8e,0xfe,0xbd,0xff,0xd7,0x0,0xa7,0x1, +0x7c,0x2,0x23,0x3,0x5d,0x3,0x35,0x3,0xa7,0x2,0xd8,0x1, +0xf9,0x0,0x24,0x0,0xbe,0xff,0xd2,0xff,0xc7,0xff,0xb2,0xff, +0x22,0x0,0xc8,0x0,0xf,0x1,0x1d,0x1,0x6c,0x1,0xf1,0x1, +0x1d,0x2,0xd8,0x1,0xa4,0x1,0x62,0x1,0x88,0x0,0x76,0xff, +0xb1,0xfe,0xd5,0xfd,0x6e,0xfc,0xeb,0xfa,0xde,0xf9,0x1,0xf9, +0xef,0xf7,0x3f,0xf7,0x7c,0xf7,0x5e,0xf8,0x24,0xfa,0x4b,0xfd, +0x7,0x1,0xaf,0x4,0xaa,0x8,0x6e,0xc,0xa4,0xe,0x42,0xf, +0xcb,0xe,0xc2,0xc,0xbb,0x8,0x74,0x3,0x19,0xfe,0x39,0xf9, +0x9,0xf5,0x30,0xf2,0xbd,0xf1,0x2,0xf4,0xe7,0xf7,0x15,0xfc, +0x48,0x0,0x5e,0x4,0x58,0x7,0x9e,0x8,0x89,0x8,0x3b,0x7, +0xde,0x4,0x31,0x2,0x9e,0xff,0x40,0xfd,0x92,0xfb,0xba,0xfa, +0x8a,0xfa,0x66,0xfb,0x6f,0xfd,0xb9,0xff,0x8f,0x1,0x11,0x3, +0xfb,0x3,0x99,0x3,0x13,0x2,0x2f,0x0,0x2d,0xfe,0x6,0xfc, +0x1e,0xfa,0xea,0xf8,0x8d,0xf8,0xf0,0xf8,0xf3,0xf9,0xad,0xfb, +0xf6,0xfd,0xf9,0xff,0x41,0x1,0x4a,0x2,0x50,0x3,0x0,0x4, +0x66,0x4,0xc1,0x4,0x0,0x5,0xe8,0x4,0x6f,0x4,0xe2,0x3, +0x74,0x3,0xe2,0x2,0xf4,0x1,0xda,0x0,0xbb,0xff,0x97,0xfe, +0x82,0xfd,0xca,0xfc,0xb5,0xfc,0x9,0xfd,0x77,0xfd,0x59,0xfe, +0xf3,0xff,0xa9,0x1,0xd3,0x2,0x86,0x3,0x1c,0x4,0x6e,0x4, +0xf8,0x3,0xc8,0x2,0x74,0x1,0x49,0x0,0x72,0xff,0xed,0xfe, +0x39,0xfe,0x6c,0xfd,0x53,0xfd,0xe4,0xfd,0x6d,0xfe,0xd3,0xfe, +0x45,0xff,0xd8,0xff,0x60,0x0,0x5d,0x0,0xd6,0xff,0x3c,0xff, +0x72,0xfe,0x84,0xfd,0xec,0xfc,0xa7,0xfc,0xa9,0xfc,0x38,0xfd, +0x0,0xfe,0x8f,0xfe,0x2b,0xff,0x14,0x0,0x13,0x1,0xda,0x1, +0x46,0x2,0x6f,0x2,0x59,0x2,0x9,0x2,0xc3,0x1,0x69,0x1, +0xae,0x0,0x4,0x0,0xc6,0xff,0xb1,0xff,0xb8,0xff,0xda,0xff, +0x14,0x0,0xb9,0x0,0x87,0x1,0xe5,0x1,0x44,0x2,0xf7,0x2, +0x61,0x3,0x63,0x3,0x2a,0x3,0x66,0x2,0x55,0x1,0x82,0x0, +0xa1,0xff,0x96,0xfe,0x18,0xfe,0x5f,0xfe,0xd2,0xfe,0x46,0xff, +0x1e,0x0,0x3a,0x1,0xb,0x2,0x86,0x2,0xda,0x2,0xd7,0x2, +0x6c,0x2,0xdf,0x1,0x52,0x1,0xa8,0x0,0xbd,0xff,0xc5,0xfe, +0x31,0xfe,0x3,0xfe,0xfd,0xfd,0x2d,0xfe,0x95,0xfe,0x3c,0xff, +0x48,0x0,0x52,0x1,0xe4,0x1,0x53,0x2,0xa8,0x2,0x7d,0x2, +0x14,0x2,0xaf,0x1,0xd,0x1,0x5d,0x0,0xf,0x0,0x14,0x0, +0x30,0x0,0x40,0x0,0x50,0x0,0x86,0x0,0xbd,0x0,0xce,0x0, +0xe5,0x0,0x5,0x1,0xf8,0x0,0xc4,0x0,0xab,0x0,0xc1,0x0, +0x88,0x0,0xb8,0xff,0xa,0xff,0xce,0xfe,0x28,0xfe,0xc7,0xfc, +0x39,0xfb,0xab,0xf9,0x55,0xf8,0x91,0xf7,0x35,0xf7,0x4e,0xf7, +0x59,0xf8,0x66,0xfa,0x59,0xfd,0x10,0x1,0xf3,0x4,0x84,0x8, +0x7c,0xb,0x56,0xd,0xda,0xd,0x19,0xd,0xb8,0xa,0x9a,0x6, +0x8b,0x1,0x9f,0xfc,0x82,0xf8,0x4f,0xf5,0x47,0xf3,0x52,0xf3, +0xa7,0xf5,0x2e,0xf9,0x20,0xfd,0x34,0x1,0x86,0x4,0x73,0x6, +0x26,0x7,0xa5,0x6,0x1a,0x5,0x1d,0x3,0xe6,0x0,0x9e,0xfe, +0xd2,0xfc,0x9b,0xfb,0xf4,0xfa,0x49,0xfb,0x81,0xfc,0x11,0xfe, +0xcf,0xff,0x56,0x1,0x2f,0x2,0x94,0x2,0x6d,0x2,0x3d,0x1, +0x64,0xff,0x7b,0xfd,0xa2,0xfb,0x3d,0xfa,0x86,0xf9,0x41,0xf9, +0x99,0xf9,0xb7,0xfa,0x44,0xfc,0xf5,0xfd,0x74,0xff,0x8b,0x0, +0xa1,0x1,0xc8,0x2,0x6a,0x3,0x88,0x3,0xb4,0x3,0x8,0x4, +0x28,0x4,0xd7,0x3,0x63,0x3,0x17,0x3,0xae,0x2,0xf1,0x1, +0xf0,0x0,0xa2,0xff,0x5c,0xfe,0x8b,0xfd,0x1,0xfd,0xc6,0xfc, +0x24,0xfd,0xda,0xfd,0xda,0xfe,0x40,0x0,0x7b,0x1,0x52,0x2, +0x1b,0x3,0x9f,0x3,0x8f,0x3,0xf8,0x2,0xdb,0x1,0x84,0x0, +0x3c,0xff,0x1c,0xfe,0x7c,0xfd,0x25,0xfd,0xa2,0xfc,0xc1,0xfc, +0xcc,0xfd,0x9f,0xfe,0x30,0xff,0x23,0x0,0xe,0x1,0xaa,0x1, +0xcb,0x1,0xfb,0x0,0xe2,0xff,0x1a,0xff,0x16,0xfe,0x13,0xfd, +0x96,0xfc,0x3a,0xfc,0x45,0xfc,0x8,0xfd,0xba,0xfd,0x65,0xfe, +0xa1,0xff,0xe3,0x0,0xc6,0x1,0x7c,0x2,0xcf,0x2,0xc3,0x2, +0x99,0x2,0x19,0x2,0x5a,0x1,0xac,0x0,0x4,0x0,0x85,0xff, +0x7a,0xff,0xb5,0xff,0xe8,0xff,0x2e,0x0,0xd0,0x0,0xa5,0x1, +0x44,0x2,0xc0,0x2,0x33,0x3,0x3f,0x3,0xfa,0x2,0x90,0x2, +0x9b,0x1,0x64,0x0,0x92,0xff,0xab,0xfe,0x90,0xfd,0x33,0xfd, +0x9f,0xfd,0x51,0xfe,0x4d,0xff,0x52,0x0,0x1b,0x1,0xfc,0x1, +0xcd,0x2,0xf9,0x2,0x9d,0x2,0xb,0x2,0x6b,0x1,0xfe,0x0, +0x87,0x0,0x8f,0xff,0x91,0xfe,0x41,0xfe,0x2e,0xfe,0xda,0xfd, +0xd2,0xfd,0x7b,0xfe,0x5e,0xff,0x3c,0x0,0x27,0x1,0xe2,0x1, +0x60,0x2,0xcd,0x2,0xf5,0x2,0x9d,0x2,0xff,0x1,0x77,0x1, +0x19,0x1,0x9d,0x0,0xf6,0xff,0x99,0xff,0xa0,0xff,0xb2,0xff, +0xdf,0xff,0x43,0x0,0x84,0x0,0x84,0x0,0x95,0x0,0xdb,0x0, +0xc,0x1,0xf4,0x0,0xdc,0x0,0xca,0x0,0x2c,0x0,0x24,0xff, +0x3f,0xfe,0x29,0xfd,0xb2,0xfb,0x48,0xfa,0xb7,0xf8,0x1d,0xf7, +0x6b,0xf6,0x81,0xf6,0xd5,0xf6,0xd,0xf8,0x87,0xfa,0xc2,0xfd, +0x81,0x1,0x6c,0x5,0xf0,0x8,0xe0,0xb,0xd8,0xd,0x36,0xe, +0xa,0xd,0x96,0xa,0xc4,0x6,0xf6,0x1,0x2a,0xfd,0xfa,0xf8, +0x95,0xf5,0xab,0xf3,0x12,0xf4,0x7c,0xf6,0xe7,0xf9,0xc9,0xfd, +0xb6,0x1,0xf6,0x4,0xde,0x6,0x21,0x7,0x3e,0x6,0xde,0x4, +0xc6,0x2,0x7,0x0,0xd4,0xfd,0x8e,0xfc,0x81,0xfb,0xb7,0xfa, +0xc2,0xfa,0xb4,0xfb,0x5d,0xfd,0x59,0xff,0xa,0x1,0x16,0x2, +0xa3,0x2,0xa8,0x2,0x97,0x1,0x92,0xff,0xba,0xfd,0x39,0xfc, +0x83,0xfa,0x4d,0xf9,0x29,0xf9,0x65,0xf9,0x14,0xfa,0xb4,0xfb, +0x87,0xfd,0xea,0xfe,0x27,0x0,0x64,0x1,0x7d,0x2,0x16,0x3, +0x2e,0x3,0x87,0x3,0x1b,0x4,0x29,0x4,0xf2,0x3,0xc4,0x3, +0x61,0x3,0x23,0x3,0xf1,0x2,0x0,0x2,0x9e,0x0,0x61,0xff, +0x34,0xfe,0x6d,0xfd,0x36,0xfd,0x2c,0xfd,0x9a,0xfd,0xbc,0xfe, +0xc,0x0,0x60,0x1,0x9a,0x2,0x68,0x3,0x3,0x4,0x46,0x4, +0x7f,0x3,0xe2,0x1,0x30,0x0,0xc0,0xfe,0x8f,0xfd,0x47,0xfc, +0x19,0xfb,0x5,0xfb,0x8,0xfc,0x22,0xfd,0x59,0xfe,0x13,0x0, +0xbe,0x1,0xc8,0x2,0x43,0x3,0x32,0x3,0x75,0x2,0x29,0x1, +0x94,0xff,0xf7,0xfd,0x7b,0xfc,0x48,0xfb,0xaa,0xfa,0xe6,0xfa, +0xb8,0xfb,0xa3,0xfc,0xc3,0xfd,0x4e,0xff,0xed,0x0,0x35,0x2, +0xec,0x2,0xe,0x3,0x23,0x3,0x3e,0x3,0xa9,0x2,0xaa,0x1, +0x11,0x1,0x96,0x0,0x26,0x0,0x46,0x0,0x74,0x0,0x56,0x0, +0xaf,0x0,0x83,0x1,0xc,0x2,0x44,0x2,0x82,0x2,0xdc,0x2, +0x22,0x3,0xa,0x3,0x95,0x2,0xcb,0x1,0xa2,0x0,0x86,0xff, +0xa8,0xfe,0xc0,0xfd,0x3a,0xfd,0x80,0xfd,0x8,0xfe,0xb4,0xfe, +0xd0,0xff,0xfc,0x0,0xd4,0x1,0x5d,0x2,0xa2,0x2,0xc9,0x2, +0xa8,0x2,0x7,0x2,0x71,0x1,0xa,0x1,0x31,0x0,0x17,0xff, +0x62,0xfe,0xf2,0xfd,0x8f,0xfd,0x6c,0xfd,0xcc,0xfd,0xcc,0xfe, +0xed,0xff,0xbf,0x0,0x9f,0x1,0xac,0x2,0x5a,0x3,0x8a,0x3, +0x61,0x3,0xd5,0x2,0x11,0x2,0x46,0x1,0x6a,0x0,0x8b,0xff, +0xf7,0xfe,0xf5,0xfe,0x50,0xff,0x8a,0xff,0xb8,0xff,0x46,0x0, +0xff,0x0,0x8c,0x1,0xed,0x1,0x8,0x2,0xd5,0x1,0x77,0x1, +0xe0,0x0,0xff,0xff,0xdd,0xfe,0x76,0xfd,0xfe,0xfb,0xb9,0xfa, +0x73,0xf9,0xe0,0xf7,0x60,0xf6,0xaf,0xf5,0xe3,0xf5,0x93,0xf6, +0xdd,0xf7,0x1d,0xfa,0x33,0xfd,0xf9,0x0,0x37,0x5,0x38,0x9, +0x72,0xc,0x95,0xe,0x38,0xf,0x81,0xe,0x85,0xc,0xb1,0x8, +0x82,0x3,0x6d,0xfe,0xf1,0xf9,0x34,0xf6,0xea,0xf3,0xb0,0xf3, +0xb1,0xf5,0x2c,0xf9,0xea,0xfc,0xd5,0x0,0xa8,0x4,0xd0,0x6, +0x29,0x7,0xe5,0x6,0xc6,0x5,0x5d,0x3,0xa4,0x0,0x60,0xfe, +0xb8,0xfc,0x97,0xfb,0xae,0xfa,0x65,0xfa,0x59,0xfb,0x12,0xfd, +0xc,0xff,0x18,0x1,0xab,0x2,0x8c,0x3,0xa8,0x3,0x8e,0x2, +0xa2,0x0,0x9a,0xfe,0x56,0xfc,0x2f,0xfa,0xe8,0xf8,0x54,0xf8, +0x56,0xf8,0x3e,0xf9,0xd8,0xfa,0xdd,0xfc,0xf0,0xfe,0x75,0x0, +0xbf,0x1,0x1b,0x3,0xbd,0x3,0xc1,0x3,0x12,0x4,0x4c,0x4, +0xf9,0x3,0x8e,0x3,0x15,0x3,0xb6,0x2,0xd5,0x2,0xb1,0x2, +0xc1,0x1,0xcd,0x0,0xf3,0xff,0xc3,0xfe,0xdb,0xfd,0xa8,0xfd, +0xa4,0xfd,0xcf,0xfd,0x95,0xfe,0xd3,0xff,0x1f,0x1,0x2e,0x2, +0xf9,0x2,0xad,0x3,0xf,0x4,0x93,0x3,0x34,0x2,0x73,0x0, +0xca,0xfe,0x61,0xfd,0x27,0xfc,0x54,0xfb,0x61,0xfb,0x42,0xfc, +0x77,0xfd,0xc0,0xfe,0x1d,0x0,0x7c,0x1,0xa0,0x2,0x13,0x3, +0xa5,0x2,0xa6,0x1,0x50,0x0,0xaf,0xfe,0x1d,0xfd,0xf2,0xfb, +0x30,0xfb,0xfa,0xfa,0x85,0xfb,0x75,0xfc,0x5c,0xfd,0x6f,0xfe, +0xe3,0xff,0x44,0x1,0x23,0x2,0x81,0x2,0x93,0x2,0x84,0x2, +0x42,0x2,0xad,0x1,0x1c,0x1,0xc2,0x0,0x4b,0x0,0xf5,0xff, +0x1f,0x0,0x39,0x0,0x12,0x0,0x55,0x0,0xee,0x0,0x7b,0x1, +0x26,0x2,0xad,0x2,0xed,0x2,0x5d,0x3,0x98,0x3,0xf5,0x2, +0xfa,0x1,0x20,0x1,0x31,0x0,0x12,0xff,0xc8,0xfd,0xe1,0xfc, +0xfc,0xfc,0x7f,0xfd,0x14,0xfe,0x5e,0xff,0xd3,0x0,0xa8,0x1, +0x80,0x2,0x5c,0x3,0x6a,0x3,0xf0,0x2,0x5d,0x2,0x9d,0x1, +0xe3,0x0,0x13,0x0,0xa,0xff,0x47,0xfe,0xc1,0xfd,0x49,0xfd, +0x64,0xfd,0xc,0xfe,0xd3,0xfe,0xe7,0xff,0x1f,0x1,0x21,0x2, +0x4,0x3,0x71,0x3,0x3f,0x3,0xfe,0x2,0x7f,0x2,0x88,0x1, +0xc1,0x0,0xa,0x0,0x21,0xff,0xd9,0xfe,0x24,0xff,0x50,0xff, +0xd5,0xff,0xb7,0x0,0x37,0x1,0xc8,0x1,0xa6,0x2,0xd2,0x2, +0x72,0x2,0x5e,0x2,0x15,0x2,0xe,0x1,0xd6,0xff,0xa1,0xfe, +0x3d,0xfd,0xec,0xfb,0xeb,0xfa,0xdc,0xf9,0x7e,0xf8,0x39,0xf7, +0x92,0xf6,0x7e,0xf6,0xd5,0xf6,0xc9,0xf7,0x9e,0xf9,0x76,0xfc, +0x4a,0x0,0x93,0x4,0x8e,0x8,0xe0,0xb,0x5d,0xe,0x8e,0xf, +0x1d,0xf,0x2a,0xd,0xc6,0x9,0x11,0x5,0xe8,0xff,0x46,0xfb, +0x52,0xf7,0x56,0xf4,0x61,0xf3,0xd5,0xf4,0xca,0xf7,0x73,0xfb, +0x7e,0xff,0x2d,0x3,0x80,0x5,0x4f,0x6,0x3a,0x6,0x7a,0x5, +0xc0,0x3,0x59,0x1,0x26,0xff,0x70,0xfd,0x2,0xfc,0xfe,0xfa, +0xbb,0xfa,0x7a,0xfb,0x26,0xfd,0x21,0xff,0xe2,0x0,0x6a,0x2, +0x87,0x3,0xce,0x3,0xf,0x3,0x42,0x1,0xca,0xfe,0x6e,0xfc, +0x3e,0xfa,0x35,0xf8,0x4b,0xf7,0xd0,0xf7,0xec,0xf8,0x8a,0xfa, +0xe3,0xfc,0x3e,0xff,0x21,0x1,0xbb,0x2,0xea,0x3,0x98,0x4, +0xc5,0x4,0x61,0x4,0xda,0x3,0x78,0x3,0xca,0x2,0xe9,0x1, +0x63,0x1,0x23,0x1,0x8,0x1,0x13,0x1,0xe8,0x0,0x6f,0x0, +0xec,0xff,0x70,0xff,0x1c,0xff,0xec,0xfe,0xbd,0xfe,0xfe,0xfe, +0xd4,0xff,0x9c,0x0,0x3d,0x1,0xa,0x2,0xd4,0x2,0x63,0x3, +0x63,0x3,0x79,0x2,0x3e,0x1,0x4c,0x0,0x3b,0xff,0x7,0xfe, +0x59,0xfd,0x42,0xfd,0x81,0xfd,0x5,0xfe,0xc1,0xfe,0xb1,0xff, +0x88,0x0,0xff,0x0,0x39,0x1,0xed,0x0,0xd4,0xff,0xc7,0xfe, +0x13,0xfe,0x8,0xfd,0x33,0xfc,0x4e,0xfc,0x83,0xfc,0xaa,0xfc, +0x9e,0xfd,0xee,0xfe,0xd4,0xff,0xb0,0x0,0x93,0x1,0x7,0x2, +0x23,0x2,0xfc,0x1,0x82,0x1,0x19,0x1,0xed,0x0,0x96,0x0, +0xfe,0xff,0x73,0xff,0x22,0xff,0x1a,0xff,0x4e,0xff,0x9b,0xff, +0x8,0x0,0xb3,0x0,0x8e,0x1,0x66,0x2,0xf8,0x2,0x40,0x3, +0x82,0x3,0x9c,0x3,0x28,0x3,0x5c,0x2,0x7d,0x1,0x47,0x0, +0xe5,0xfe,0xf5,0xfd,0x84,0xfd,0x70,0xfd,0xe2,0xfd,0xca,0xfe, +0xff,0xff,0x62,0x1,0x84,0x2,0x20,0x3,0x68,0x3,0x47,0x3, +0x94,0x2,0x9e,0x1,0xb1,0x0,0xdc,0xff,0x28,0xff,0x8e,0xfe, +0x1e,0xfe,0xf3,0xfd,0x3,0xfe,0x64,0xfe,0x19,0xff,0xc1,0xff, +0x67,0x0,0x6c,0x1,0x6e,0x2,0xbb,0x2,0x7e,0x2,0x2d,0x2, +0xc5,0x1,0x13,0x1,0x4a,0x0,0xd9,0xff,0xc6,0xff,0xbd,0xff, +0xc0,0xff,0xfd,0xff,0x5e,0x0,0xdc,0x0,0x77,0x1,0xeb,0x1, +0x25,0x2,0x59,0x2,0x7c,0x2,0x50,0x2,0xd6,0x1,0x31,0x1, +0x52,0x0,0x2f,0xff,0xa,0xfe,0x9,0xfd,0x4,0xfc,0x17,0xfb, +0x84,0xfa,0xf2,0xf9,0x19,0xf9,0x75,0xf8,0x53,0xf8,0x79,0xf8, +0x14,0xf9,0x8e,0xfa,0xcb,0xfc,0x8d,0xff,0xd7,0x2,0x65,0x6, +0x96,0x9,0xf3,0xb,0x47,0xd,0x56,0xd,0x3,0xc,0x5f,0x9, +0x78,0x5,0xca,0x0,0x50,0xfc,0xa1,0xf8,0xe0,0xf5,0x8d,0xf4, +0x31,0xf5,0xa1,0xf7,0x17,0xfb,0xb1,0xfe,0xfa,0x1,0xb9,0x4, +0x39,0x6,0xe,0x6,0x1,0x5,0xcc,0x3,0x29,0x2,0xd,0x0, +0x1c,0xfe,0xd0,0xfc,0x24,0xfc,0xd6,0xfb,0xdf,0xfb,0xa1,0xfc, +0x47,0xfe,0x45,0x0,0xdf,0x1,0xe2,0x2,0x5c,0x3,0xe2,0x2, +0x36,0x1,0x16,0xff,0xfb,0xfc,0xac,0xfa,0xc4,0xf8,0x34,0xf8, +0x95,0xf8,0x62,0xf9,0x4,0xfb,0x5b,0xfd,0x9b,0xff,0x75,0x1, +0xef,0x2,0xe9,0x3,0x4b,0x4,0x22,0x4,0xa3,0x3,0x17,0x3, +0x8e,0x2,0xc7,0x1,0xbc,0x0,0x1e,0x0,0x5c,0x0,0xc8,0x0, +0xea,0x0,0x1c,0x1,0x20,0x1,0x9b,0x0,0x29,0x0,0x1,0x0, +0x94,0xff,0xdd,0xfe,0x55,0xfe,0x7d,0xfe,0x6d,0xff,0x5d,0x0, +0x3,0x1,0x4,0x2,0x0,0x3,0x3c,0x3,0x1a,0x3,0x8a,0x2, +0x3d,0x1,0x2c,0x0,0xa3,0xff,0xa8,0xfe,0x99,0xfd,0x7b,0xfd, +0xeb,0xfd,0x4b,0xfe,0xa6,0xfe,0x12,0xff,0xa2,0xff,0x26,0x0, +0xc,0x0,0x45,0xff,0x65,0xfe,0xab,0xfd,0xfe,0xfc,0x8b,0xfc, +0x81,0xfc,0xaa,0xfc,0x23,0xfd,0x49,0xfe,0x86,0xff,0x36,0x0, +0xe7,0x0,0xc8,0x1,0x2e,0x2,0x48,0x2,0x64,0x2,0xfb,0x1, +0x39,0x1,0xcc,0x0,0x6f,0x0,0xca,0xff,0x42,0xff,0x1c,0xff, +0x46,0xff,0x96,0xff,0xe8,0xff,0x62,0x0,0x23,0x1,0x7,0x2, +0xd5,0x2,0x47,0x3,0x56,0x3,0x4b,0x3,0x25,0x3,0xb8,0x2, +0xfb,0x1,0xfd,0x0,0x1c,0x0,0x9c,0xff,0x13,0xff,0x92,0xfe, +0xae,0xfe,0x30,0xff,0xde,0xff,0x12,0x1,0x5f,0x2,0x1a,0x3, +0x78,0x3,0x79,0x3,0xc5,0x2,0xb6,0x1,0xaf,0x0,0xba,0xff, +0xe,0xff,0xd0,0xfe,0xd6,0xfe,0xe7,0xfe,0xd7,0xfe,0xdd,0xfe, +0x5c,0xff,0xc,0x0,0x92,0x0,0x37,0x1,0xe5,0x1,0xf7,0x1, +0x94,0x1,0x56,0x1,0xf3,0x0,0x28,0x0,0xa5,0xff,0xb3,0xff, +0xb5,0xff,0xa9,0xff,0xa,0x0,0xa7,0x0,0x24,0x1,0xa3,0x1, +0x38,0x2,0x98,0x2,0x8b,0x2,0x46,0x2,0x1c,0x2,0xe4,0x1, +0x5c,0x1,0xd9,0x0,0x75,0x0,0xb4,0xff,0x97,0xfe,0xa2,0xfd, +0xf3,0xfc,0x59,0xfc,0xc0,0xfb,0x39,0xfb,0xc0,0xfa,0x2c,0xfa, +0xa9,0xf9,0xa1,0xf9,0xf8,0xf9,0x69,0xfa,0x43,0xfb,0xe8,0xfc, +0x53,0xff,0x48,0x2,0x5a,0x5,0x21,0x8,0x56,0xa,0x9f,0xb, +0xcd,0xb,0xfe,0xa,0x1b,0x9,0xc5,0x5,0x23,0x1,0x7d,0xfc, +0x3,0xf9,0x7d,0xf6,0xd9,0xf4,0x2f,0xf5,0x91,0xf7,0xc5,0xfa, +0x4f,0xfe,0xbf,0x1,0x27,0x4,0x76,0x5,0xda,0x5,0x26,0x5, +0xe2,0x3,0x70,0x2,0x8d,0x0,0xe2,0xfe,0x15,0xfe,0x81,0xfd, +0xda,0xfc,0xa9,0xfc,0x19,0xfd,0x19,0xfe,0x68,0xff,0x81,0x0, +0x39,0x1,0x84,0x1,0x25,0x1,0x15,0x0,0x90,0xfe,0xf2,0xfc, +0x7a,0xfb,0x44,0xfa,0xde,0xf9,0x78,0xfa,0x3f,0xfb,0x32,0xfc, +0xfb,0xfd,0xde,0xff,0xa,0x1,0x0,0x2,0xca,0x2,0xf8,0x2, +0xca,0x2,0x6e,0x2,0xa,0x2,0xf2,0x1,0xc7,0x1,0x4d,0x1, +0x25,0x1,0x5e,0x1,0x87,0x1,0xac,0x1,0xb7,0x1,0x5c,0x1, +0xb0,0x0,0xd8,0xff,0x9,0xff,0x75,0xfe,0xf2,0xfd,0x9b,0xfd, +0xf4,0xfd,0xe3,0xfe,0xf9,0xff,0x33,0x1,0x6e,0x2,0x3d,0x3, +0x97,0x3,0x88,0x3,0xc3,0x2,0x61,0x1,0x1a,0x0,0x38,0xff, +0x60,0xfe,0x91,0xfd,0x49,0xfd,0xba,0xfd,0x96,0xfe,0x52,0xff, +0xb9,0xff,0x32,0x0,0xc6,0x0,0xd2,0x0,0x6,0x0,0xa7,0xfe, +0x51,0xfd,0xa3,0xfc,0x66,0xfc,0x14,0xfc,0xd,0xfc,0x9c,0xfc, +0x6e,0xfd,0x8a,0xfe,0xb7,0xff,0x78,0x0,0x52,0x1,0x57,0x2, +0x8a,0x2,0x2f,0x2,0x25,0x2,0xf1,0x1,0x70,0x1,0x41,0x1, +0x4,0x1,0x67,0x0,0x1e,0x0,0x50,0x0,0x83,0x0,0x90,0x0, +0x8f,0x0,0xc6,0x0,0x56,0x1,0xd0,0x1,0x2,0x2,0x1b,0x2, +0x5,0x2,0xd4,0x1,0xce,0x1,0xa4,0x1,0x1a,0x1,0x98,0x0, +0x2c,0x0,0x91,0xff,0x4,0xff,0xe1,0xfe,0x24,0xff,0xcd,0xff, +0xc6,0x0,0xb3,0x1,0x64,0x2,0xe7,0x2,0x16,0x3,0xbc,0x2, +0x3,0x2,0x2a,0x1,0x39,0x0,0x51,0xff,0xaa,0xfe,0x56,0xfe, +0x58,0xfe,0x9d,0xfe,0xdc,0xfe,0xf,0xff,0x72,0xff,0xa,0x0, +0xcf,0x0,0xa1,0x1,0xb,0x2,0xfb,0x1,0xcb,0x1,0x57,0x1, +0x83,0x0,0xcf,0xff,0x5d,0xff,0xfa,0xfe,0xef,0xfe,0x54,0xff, +0xe3,0xff,0x97,0x0,0x5c,0x1,0x7,0x2,0xb4,0x2,0x2f,0x3, +0x1e,0x3,0xcf,0x2,0x66,0x2,0x94,0x1,0x9d,0x0,0xf7,0xff, +0x53,0xff,0x5a,0xfe,0x5e,0xfd,0xbd,0xfc,0x44,0xfc,0x9e,0xfb, +0x1,0xfb,0x97,0xfa,0x1f,0xfa,0xcb,0xf9,0xe4,0xf9,0x1,0xfa, +0x27,0xfa,0x6,0xfb,0x9e,0xfc,0xb1,0xfe,0x65,0x1,0x78,0x4, +0x6b,0x7,0x1,0xa,0xc2,0xb,0x47,0xc,0x79,0xb,0x64,0x9, +0x41,0x6,0x26,0x2,0x5b,0xfd,0x23,0xf9,0x39,0xf6,0x3c,0xf4, +0xf7,0xf3,0x62,0xf6,0x23,0xfa,0xc3,0xfd,0x5e,0x1,0x73,0x4, +0xf0,0x5,0xfc,0x5,0x50,0x5,0x48,0x4,0xe3,0x2,0xc,0x1, +0x41,0xff,0x3f,0xfe,0xe3,0xfd,0x9b,0xfd,0x60,0xfd,0x98,0xfd, +0x80,0xfe,0x94,0xff,0x16,0x0,0x33,0x0,0x61,0x0,0x42,0x0, +0x5e,0xff,0xff,0xfd,0xb9,0xfc,0xcd,0xfb,0x2c,0xfb,0xdd,0xfa, +0x2,0xfb,0xa9,0xfb,0xc6,0xfc,0x26,0xfe,0x6c,0xff,0x6e,0x0, +0x3c,0x1,0xf0,0x1,0x8e,0x2,0xbc,0x2,0x56,0x2,0x1b,0x2, +0x77,0x2,0xbf,0x2,0xa1,0x2,0x70,0x2,0x47,0x2,0x3d,0x2, +0x42,0x2,0xef,0x1,0x40,0x1,0x5e,0x0,0x3b,0xff,0x39,0xfe, +0xad,0xfd,0x53,0xfd,0x42,0xfd,0xd9,0xfd,0xdc,0xfe,0xfb,0xff, +0x20,0x1,0x16,0x2,0xe3,0x2,0x7d,0x3,0x58,0x3,0x4a,0x2, +0xee,0x0,0xb8,0xff,0xc2,0xfe,0x6,0xfe,0x8d,0xfd,0x92,0xfd, +0x2b,0xfe,0x1e,0xff,0x20,0x0,0xdd,0x0,0x37,0x1,0x75,0x1, +0x6d,0x1,0x93,0x0,0x25,0xff,0xdd,0xfd,0xce,0xfc,0xdd,0xfb, +0x55,0xfb,0x58,0xfb,0xcb,0xfb,0xaa,0xfc,0xb5,0xfd,0xa8,0xfe, +0xb2,0xff,0xc6,0x0,0x84,0x1,0x15,0x2,0xa6,0x2,0xc8,0x2, +0x80,0x2,0x5e,0x2,0x41,0x2,0xdb,0x1,0x81,0x1,0x6b,0x1, +0x61,0x1,0x33,0x1,0xc0,0x0,0x30,0x0,0xf2,0xff,0x1a,0x0, +0x77,0x0,0xd4,0x0,0xf7,0x0,0x2,0x1,0x56,0x1,0xb0,0x1, +0x96,0x1,0x39,0x1,0xe3,0x0,0x68,0x0,0xab,0xff,0xf1,0xfe, +0x84,0xfe,0x68,0xfe,0xa7,0xfe,0x8b,0xff,0xfa,0x0,0x3d,0x2, +0xe,0x3,0xa4,0x3,0xb1,0x3,0xec,0x2,0xd0,0x1,0xc4,0x0, +0x9b,0xff,0x6d,0xfe,0x96,0xfd,0x2a,0xfd,0x2,0xfd,0x22,0xfd, +0xa1,0xfd,0x72,0xfe,0x7a,0xff,0xbb,0x0,0xa,0x2,0xef,0x2, +0x4c,0x3,0x5f,0x3,0xc,0x3,0x37,0x2,0x28,0x1,0x3,0x0, +0xf0,0xfe,0x50,0xfe,0x16,0xfe,0x23,0xfe,0xc6,0xfe,0xee,0xff, +0x2c,0x1,0x57,0x2,0x21,0x3,0x63,0x3,0x7a,0x3,0x37,0x3, +0x4b,0x2,0x68,0x1,0xca,0x0,0xd0,0xff,0xa0,0xfe,0xa0,0xfd, +0xa2,0xfc,0xdb,0xfb,0x69,0xfb,0xcb,0xfa,0x2e,0xfa,0xf9,0xf9, +0xc2,0xf9,0x74,0xf9,0x79,0xf9,0xc9,0xf9,0x83,0xfa,0xf9,0xfb, +0xfa,0xfd,0x7b,0x0,0xa4,0x3,0xed,0x6,0xb2,0x9,0xaf,0xb, +0x97,0xc,0x55,0xc,0xf3,0xa,0x6,0x8,0x80,0x3,0x7e,0xfe, +0x1e,0xfa,0x9d,0xf6,0x37,0xf4,0xbb,0xf3,0x94,0xf5,0xfe,0xf8, +0xdf,0xfc,0xbf,0x0,0x2d,0x4,0x4d,0x6,0xb2,0x6,0xed,0x5, +0xb1,0x4,0xc,0x3,0xfe,0x0,0x2b,0xff,0x22,0xfe,0xac,0xfd, +0x74,0xfd,0x7a,0xfd,0xc8,0xfd,0x81,0xfe,0x92,0xff,0x47,0x0, +0x5b,0x0,0x67,0x0,0x66,0x0,0x8c,0xff,0xf2,0xfd,0x84,0xfc, +0x9d,0xfb,0xf9,0xfa,0x80,0xfa,0x79,0xfa,0x13,0xfb,0x14,0xfc, +0x39,0xfd,0x8d,0xfe,0xf8,0xff,0x18,0x1,0xdb,0x1,0x89,0x2, +0x17,0x3,0x2d,0x3,0xe9,0x2,0xd9,0x2,0x4,0x3,0xe1,0x2, +0x7e,0x2,0x5a,0x2,0x58,0x2,0x24,0x2,0xce,0x1,0x4b,0x1, +0x82,0x0,0xbb,0xff,0x11,0xff,0x45,0xfe,0x7f,0xfd,0x45,0xfd, +0xad,0xfd,0x6c,0xfe,0x62,0xff,0x76,0x0,0x4b,0x1,0xe2,0x1, +0x89,0x2,0xce,0x2,0x22,0x2,0x29,0x1,0x7f,0x0,0xc5,0xff, +0xfd,0xfe,0x7e,0xfe,0x31,0xfe,0x52,0xfe,0x23,0xff,0x4,0x0, +0x82,0x0,0xd2,0x0,0xef,0x0,0xd4,0x0,0x74,0x0,0x7b,0xff, +0x39,0xfe,0x65,0xfd,0xdb,0xfc,0x3f,0xfc,0xe1,0xfb,0xf,0xfc, +0xb9,0xfc,0x99,0xfd,0x69,0xfe,0x32,0xff,0x21,0x0,0x28,0x1, +0x1,0x2,0x69,0x2,0x92,0x2,0xc5,0x2,0xb4,0x2,0x57,0x2, +0x39,0x2,0x21,0x2,0xa3,0x1,0x42,0x1,0xc,0x1,0x7f,0x0, +0x17,0x0,0x24,0x0,0xc,0x0,0xf0,0xff,0x58,0x0,0xe6,0x0, +0x39,0x1,0x89,0x1,0xc9,0x1,0xc7,0x1,0x8b,0x1,0xf,0x1, +0x48,0x0,0x69,0xff,0xae,0xfe,0x28,0xfe,0xfc,0xfd,0x8a,0xfe, +0xd6,0xff,0x4e,0x1,0x79,0x2,0x62,0x3,0x29,0x4,0x7e,0x4, +0xe7,0x3,0x83,0x2,0xf4,0x0,0x86,0xff,0x36,0xfe,0x19,0xfd, +0x60,0xfc,0x4a,0xfc,0xc3,0xfc,0x62,0xfd,0x34,0xfe,0x83,0xff, +0xfe,0x0,0x4e,0x2,0x6a,0x3,0x16,0x4,0x34,0x4,0xe8,0x3, +0x1c,0x3,0xe6,0x1,0xa5,0x0,0x7e,0xff,0x8c,0xfe,0x2,0xfe, +0xfa,0xfd,0x76,0xfe,0x38,0xff,0x15,0x0,0x3c,0x1,0x5b,0x2, +0xdf,0x2,0x3,0x3,0xec,0x2,0x66,0x2,0xd7,0x1,0x59,0x1, +0x78,0x0,0x85,0xff,0xcf,0xfe,0xea,0xfd,0xe0,0xfc,0xfc,0xfb, +0x29,0xfb,0x77,0xfa,0xe0,0xf9,0x3f,0xf9,0xe1,0xf8,0xda,0xf8, +0xf2,0xf8,0x7b,0xf9,0xc8,0xfa,0xd3,0xfc,0xa6,0xff,0xf5,0x2, +0x35,0x6,0x32,0x9,0x96,0xb,0xea,0xc,0x0,0xd,0xc0,0xb, +0x34,0x9,0x72,0x5,0xa1,0x0,0xc4,0xfb,0xf2,0xf7,0x1f,0xf5, +0x9c,0xf3,0xa2,0xf4,0xe2,0xf7,0xa0,0xfb,0x30,0xff,0x9f,0x2, +0x1c,0x5,0xe9,0x5,0xa8,0x5,0x4,0x5,0xa4,0x3,0xab,0x1, +0x5,0x0,0xd3,0xfe,0xee,0xfd,0xad,0xfd,0xc2,0xfd,0xd9,0xfd, +0x84,0xfe,0x93,0xff,0x18,0x0,0x47,0x0,0x9d,0x0,0xa3,0x0, +0xef,0xff,0xba,0xfe,0x74,0xfd,0x6a,0xfc,0x98,0xfb,0xf3,0xfa, +0x9c,0xfa,0xba,0xfa,0x79,0xfb,0xb7,0xfc,0x2,0xfe,0x46,0xff, +0x72,0x0,0x59,0x1,0x44,0x2,0x11,0x3,0x30,0x3,0x12,0x3, +0x2a,0x3,0xf8,0x2,0x9a,0x2,0x66,0x2,0xf7,0x1,0x99,0x1, +0xd7,0x1,0x2,0x2,0xae,0x1,0x42,0x1,0xa2,0x0,0xbb,0xff, +0xf4,0xfe,0x63,0xfe,0x5,0xfe,0xf9,0xfd,0x2c,0xfe,0xad,0xfe, +0x87,0xff,0x5c,0x0,0xfa,0x0,0x92,0x1,0x16,0x2,0x39,0x2, +0xec,0x1,0x70,0x1,0xe7,0x0,0x44,0x0,0xa3,0xff,0x31,0xff, +0x3,0xff,0x39,0xff,0x92,0xff,0xa0,0xff,0x8b,0xff,0xa7,0xff, +0xd0,0xff,0xc3,0xff,0x38,0xff,0x50,0xfe,0xc7,0xfd,0xa6,0xfd, +0x4e,0xfd,0xef,0xfc,0xe0,0xfc,0xfc,0xfc,0x87,0xfd,0x77,0xfe, +0x22,0xff,0xb4,0xff,0x9d,0x0,0x70,0x1,0xfb,0x1,0x72,0x2, +0xab,0x2,0x91,0x2,0x4c,0x2,0xe1,0x1,0x72,0x1,0x27,0x1, +0xf5,0x0,0xcb,0x0,0x84,0x0,0x27,0x0,0xf2,0xff,0xea,0xff, +0x24,0x0,0xb5,0x0,0x19,0x1,0x1f,0x1,0x6a,0x1,0xda,0x1, +0xc1,0x1,0x49,0x1,0xce,0x0,0x30,0x0,0x6e,0xff,0xb4,0xfe, +0x35,0xfe,0x33,0xfe,0xb4,0xfe,0xbc,0xff,0x37,0x1,0x92,0x2, +0x75,0x3,0x7,0x4,0x1c,0x4,0x7e,0x3,0x6f,0x2,0x19,0x1, +0xac,0xff,0x69,0xfe,0x23,0xfd,0x28,0xfc,0x38,0xfc,0xd6,0xfc, +0x4e,0xfd,0x28,0xfe,0x7e,0xff,0xa7,0x0,0xdc,0x1,0x28,0x3, +0xc8,0x3,0xd0,0x3,0xb7,0x3,0x38,0x3,0x64,0x2,0x9a,0x1, +0x9a,0x0,0x7b,0xff,0xcc,0xfe,0x83,0xfe,0x76,0xfe,0xd9,0xfe, +0x94,0xff,0x5a,0x0,0x4,0x1,0x7f,0x1,0xd1,0x1,0x4,0x2, +0xd,0x2,0xf2,0x1,0xad,0x1,0x3e,0x1,0xbd,0x0,0x8,0x0, +0x7,0xff,0x5,0xfe,0x16,0xfd,0x19,0xfc,0x32,0xfb,0x72,0xfa, +0xb6,0xf9,0x16,0xf9,0xd5,0xf8,0x27,0xf9,0xf7,0xf9,0x3,0xfb, +0x78,0xfc,0xb1,0xfe,0x88,0x1,0xa7,0x4,0xa3,0x7,0xd9,0x9, +0x20,0xb,0xa4,0xb,0x2d,0xb,0x7d,0x9,0x78,0x6,0x4e,0x2, +0xf8,0xfd,0x32,0xfa,0x14,0xf7,0x66,0xf5,0xe7,0xf5,0xe9,0xf7, +0x96,0xfa,0xc1,0xfd,0x17,0x1,0xf7,0x3,0x90,0x5,0x95,0x5, +0xf2,0x4,0x41,0x4,0xf8,0x2,0x27,0x1,0x8d,0xff,0x77,0xfe, +0xe6,0xfd,0xaa,0xfd,0x92,0xfd,0xa,0xfe,0x22,0xff,0xf,0x0, +0x83,0x0,0xe7,0x0,0x4c,0x1,0x43,0x1,0x5c,0x0,0xe9,0xfe, +0xc3,0xfd,0xf4,0xfc,0xf2,0xfb,0x1,0xfb,0xb9,0xfa,0x13,0xfb, +0xbd,0xfb,0xb6,0xfc,0x15,0xfe,0x7b,0xff,0x8a,0x0,0x95,0x1, +0x90,0x2,0xe5,0x2,0xe1,0x2,0x3,0x3,0xee,0x2,0xa5,0x2, +0x80,0x2,0x26,0x2,0x9d,0x1,0x7e,0x1,0xb1,0x1,0xcd,0x1, +0x9b,0x1,0xf7,0x0,0x3b,0x0,0xc2,0xff,0x3e,0xff,0x99,0xfe, +0x45,0xfe,0x84,0xfe,0x34,0xff,0xd4,0xff,0x18,0x0,0x84,0x0, +0x58,0x1,0x2,0x2,0x29,0x2,0xee,0x1,0x8a,0x1,0x34,0x1, +0xc5,0x0,0xfe,0xff,0x42,0xff,0xff,0xfe,0x7,0xff,0x1e,0xff, +0x46,0xff,0x8a,0xff,0xbf,0xff,0xb0,0xff,0x76,0xff,0x2a,0xff, +0xb1,0xfe,0x34,0xfe,0xcd,0xfd,0x45,0xfd,0xd2,0xfc,0xcd,0xfc, +0xf8,0xfc,0x4e,0xfd,0x16,0xfe,0x5,0xff,0xd7,0xff,0xc1,0x0, +0x9f,0x1,0x20,0x2,0x68,0x2,0x8b,0x2,0x58,0x2,0xf4,0x1, +0x9f,0x1,0x2b,0x1,0x93,0x0,0x65,0x0,0xaa,0x0,0xb2,0x0, +0x84,0x0,0x9c,0x0,0xbb,0x0,0xb1,0x0,0xd1,0x0,0xb,0x1, +0x20,0x1,0x32,0x1,0x58,0x1,0x71,0x1,0x45,0x1,0xc6,0x0, +0x5c,0x0,0x15,0x0,0x76,0xff,0xdb,0xfe,0xee,0xfe,0x68,0xff, +0x1d,0x0,0x2c,0x1,0xc,0x2,0x8e,0x2,0x18,0x3,0x57,0x3, +0xf6,0x2,0x41,0x2,0x24,0x1,0xc5,0xff,0xcf,0xfe,0x12,0xfe, +0x31,0xfd,0xbf,0xfc,0xf6,0xfc,0x70,0xfd,0x34,0xfe,0x42,0xff, +0x41,0x0,0x36,0x1,0x37,0x2,0x8,0x3,0x92,0x3,0xc5,0x3, +0x84,0x3,0xf1,0x2,0x3f,0x2,0x75,0x1,0x9b,0x0,0xba,0xff, +0xfb,0xfe,0xac,0xfe,0xbd,0xfe,0xf7,0xfe,0x85,0xff,0x43,0x0, +0xb6,0x0,0xf,0x1,0xaf,0x1,0x1d,0x2,0xff,0x1,0xb8,0x1, +0x73,0x1,0xfb,0x0,0x57,0x0,0x8b,0xff,0x8a,0xfe,0x90,0xfd, +0xc6,0xfc,0xfd,0xfb,0x3c,0xfb,0xbf,0xfa,0x5a,0xfa,0xe6,0xf9, +0xda,0xf9,0x68,0xfa,0xc,0xfb,0xe3,0xfb,0x9e,0xfd,0xef,0xff, +0x2b,0x2,0x85,0x4,0xf7,0x6,0xc2,0x8,0xac,0x9,0xbb,0x9, +0x9b,0x8,0x5d,0x6,0x43,0x3,0x79,0xff,0xc4,0xfb,0xe4,0xf8, +0xdb,0xf6,0x26,0xf6,0x71,0xf7,0x2,0xfa,0xd6,0xfc,0xd0,0xff, +0x96,0x2,0x61,0x4,0x10,0x5,0x3,0x5,0x7b,0x4,0x6a,0x3, +0xa7,0x1,0xa3,0xff,0x2e,0xfe,0x63,0xfd,0xdc,0xfc,0x8f,0xfc, +0xb9,0xfc,0x87,0xfd,0xc3,0xfe,0xd6,0xff,0x91,0x0,0x1f,0x1, +0x47,0x1,0xda,0x0,0xc,0x0,0xef,0xfe,0xa0,0xfd,0x66,0xfc, +0x55,0xfb,0x93,0xfa,0x72,0xfa,0xcf,0xfa,0x7d,0xfb,0xa7,0xfc, +0x1c,0xfe,0x6e,0xff,0x93,0x0,0x83,0x1,0x1a,0x2,0x62,0x2, +0x7c,0x2,0x91,0x2,0xac,0x2,0x90,0x2,0x20,0x2,0xa5,0x1, +0x5f,0x1,0x62,0x1,0x6e,0x1,0xe,0x1,0x60,0x0,0xd9,0xff, +0x64,0xff,0xd9,0xfe,0x6a,0xfe,0x1c,0xfe,0x2c,0xfe,0xb,0xff, +0x20,0x0,0x93,0x0,0xe6,0x0,0xa8,0x1,0x38,0x2,0x42,0x2, +0x16,0x2,0x92,0x1,0xd3,0x0,0x57,0x0,0xba,0xff,0xba,0xfe, +0x4b,0xfe,0x99,0xfe,0xbe,0xfe,0xca,0xfe,0x1c,0xff,0x52,0xff, +0x80,0xff,0xdc,0xff,0xd1,0xff,0x37,0xff,0x98,0xfe,0x22,0xfe, +0xc2,0xfd,0x50,0xfd,0xd5,0xfc,0xdf,0xfc,0x74,0xfd,0xfc,0xfd, +0x9f,0xfe,0x6b,0xff,0xf2,0xff,0xa1,0x0,0x80,0x1,0x8c,0x1, +0x45,0x1,0xac,0x1,0xbf,0x1,0x14,0x1,0xd6,0x0,0xd0,0x0, +0x58,0x0,0x36,0x0,0x86,0x0,0x89,0x0,0x83,0x0,0xaa,0x0, +0x7f,0x0,0x52,0x0,0x97,0x0,0xdb,0x0,0xec,0x0,0x2a,0x1, +0x65,0x1,0x4c,0x1,0x1d,0x1,0xf2,0x0,0x80,0x0,0xdb,0xff, +0x71,0xff,0x5c,0xff,0x78,0xff,0xc1,0xff,0x4a,0x0,0x1,0x1, +0xb6,0x1,0x30,0x2,0x4d,0x2,0xb,0x2,0x89,0x1,0xe7,0x0, +0x2b,0x0,0x50,0xff,0x73,0xfe,0xda,0xfd,0xb7,0xfd,0xc9,0xfd, +0xd1,0xfd,0x2f,0xfe,0xa,0xff,0xd4,0xff,0x6f,0x0,0x44,0x1, +0x28,0x2,0xcd,0x2,0x54,0x3,0x77,0x3,0xe7,0x2,0x22,0x2, +0x83,0x1,0xcf,0x0,0xfb,0xff,0x3a,0xff,0xb1,0xfe,0x8f,0xfe, +0xd6,0xfe,0x4d,0xff,0xee,0xff,0xb4,0x0,0x55,0x1,0xb4,0x1, +0xed,0x1,0xfb,0x1,0xc2,0x1,0x48,0x1,0xa6,0x0,0xf9,0xff, +0x51,0xff,0x9a,0xfe,0xde,0xfd,0x59,0xfd,0x2,0xfd,0x84,0xfc, +0xda,0xfb,0x29,0xfb,0x7f,0xfa,0x18,0xfa,0x16,0xfa,0x3e,0xfa, +0xa8,0xfa,0xbf,0xfb,0x95,0xfd,0x13,0x0,0x4,0x3,0xc1,0x5, +0xd9,0x7,0x57,0x9,0x8,0xa,0xa1,0x9,0x30,0x8,0xa2,0x5, +0xeb,0x1,0xdf,0xfd,0x94,0xfa,0x3e,0xf8,0xb7,0xf6,0xa4,0xf6, +0x99,0xf8,0xaa,0xfb,0x8a,0xfe,0x36,0x1,0xcc,0x3,0x5b,0x5, +0x7d,0x5,0x6,0x5,0x42,0x4,0xc0,0x2,0xd5,0x0,0x45,0xff, +0x17,0xfe,0x30,0xfd,0xc3,0xfc,0xb3,0xfc,0x1,0xfd,0x15,0xfe, +0x79,0xff,0x52,0x0,0xf0,0x0,0xab,0x1,0xc4,0x1,0xf1,0x0, +0xd2,0xff,0xa2,0xfe,0x4e,0xfd,0xf,0xfc,0x19,0xfb,0x8c,0xfa, +0x8f,0xfa,0x20,0xfb,0x36,0xfc,0xad,0xfd,0x20,0xff,0x56,0x0, +0x67,0x1,0x46,0x2,0xc9,0x2,0x0,0x3,0x31,0x3,0x7e,0x3, +0xb5,0x3,0x85,0x3,0x4,0x3,0x9c,0x2,0x5d,0x2,0xff,0x1, +0x77,0x1,0xda,0x0,0xd,0x0,0x2a,0xff,0x7e,0xfe,0x9,0xfe, +0xd3,0xfd,0xd,0xfe,0xb0,0xfe,0xae,0xff,0xda,0x0,0xb2,0x1, +0x32,0x2,0xbf,0x2,0xfe,0x2,0x99,0x2,0xf8,0x1,0x31,0x1, +0x47,0x0,0xaf,0xff,0x53,0xff,0xe7,0xfe,0xc3,0xfe,0x7,0xff, +0x62,0xff,0xbd,0xff,0xfb,0xff,0x24,0x0,0x51,0x0,0x3c,0x0, +0xe5,0xff,0x90,0xff,0xe8,0xfe,0xfb,0xfd,0x73,0xfd,0x28,0xfd, +0xe6,0xfc,0x24,0xfd,0xab,0xfd,0xf,0xfe,0xa1,0xfe,0x5c,0xff, +0xf6,0xff,0x9f,0x0,0x3f,0x1,0x8f,0x1,0xda,0x1,0x38,0x2, +0x4d,0x2,0x0,0x2,0x8d,0x1,0x26,0x1,0xd0,0x0,0x79,0x0, +0x42,0x0,0x2e,0x0,0x7,0x0,0xef,0xff,0x25,0x0,0x8e,0x0, +0x11,0x1,0x86,0x1,0xc0,0x1,0xfa,0x1,0x34,0x2,0xfe,0x1, +0x78,0x1,0x6,0x1,0x82,0x0,0xe9,0xff,0x96,0xff,0x89,0xff, +0xa7,0xff,0x1a,0x0,0xde,0x0,0x9e,0x1,0x19,0x2,0x32,0x2, +0xfd,0x1,0xb6,0x1,0x42,0x1,0x57,0x0,0x5f,0xff,0xe7,0xfe, +0xa8,0xfe,0x76,0xfe,0xa4,0xfe,0xec,0xfe,0x1,0xff,0x58,0xff, +0xfe,0xff,0x7f,0x0,0x1,0x1,0xaa,0x1,0x40,0x2,0xb2,0x2, +0xdb,0x2,0xa0,0x2,0x42,0x2,0xc2,0x1,0xb,0x1,0x64,0x0, +0xe6,0xff,0x8b,0xff,0x6a,0xff,0x60,0xff,0x98,0xff,0x54,0x0, +0xf1,0x0,0x2f,0x1,0xad,0x1,0x1a,0x2,0xd7,0x1,0x82,0x1, +0x5e,0x1,0xd3,0x0,0x11,0x0,0x95,0xff,0x23,0xff,0x8b,0xfe, +0xf8,0xfd,0x78,0xfd,0x4,0xfd,0x80,0xfc,0xbd,0xfb,0xcd,0xfa, +0xff,0xf9,0x8b,0xf9,0x6a,0xf9,0x9d,0xf9,0x58,0xfa,0xed,0xfb, +0x6a,0xfe,0x6b,0x1,0x71,0x4,0x46,0x7,0x97,0x9,0xe4,0xa, +0x1c,0xb,0x53,0xa,0x56,0x8,0x37,0x5,0x6a,0x1,0x66,0xfd, +0xe3,0xf9,0x6d,0xf7,0x27,0xf6,0x8e,0xf6,0xd2,0xf8,0xde,0xfb, +0xd0,0xfe,0xac,0x1,0xb,0x4,0x47,0x5,0x69,0x5,0xd1,0x4, +0xbb,0x3,0x3d,0x2,0x81,0x0,0xf6,0xfe,0xe6,0xfd,0x31,0xfd, +0xb2,0xfc,0x84,0xfc,0x17,0xfd,0x88,0xfe,0xef,0xff,0xb4,0x0, +0x50,0x1,0xbf,0x1,0x81,0x1,0xa2,0x0,0x37,0xff,0x71,0xfd, +0xeb,0xfb,0xad,0xfa,0xb9,0xf9,0x9b,0xf9,0x22,0xfa,0xe1,0xfa, +0x3f,0xfc,0x1c,0xfe,0xb8,0xff,0xfb,0x0,0xfe,0x1,0xaf,0x2, +0x1b,0x3,0x3f,0x3,0x67,0x3,0xe0,0x3,0xb,0x4,0x9d,0x3, +0x37,0x3,0xda,0x2,0x55,0x2,0xf1,0x1,0x5b,0x1,0x46,0x0, +0x4d,0xff,0x97,0xfe,0xbd,0xfd,0x17,0xfd,0x16,0xfd,0x96,0xfd, +0x78,0xfe,0x9c,0xff,0xa1,0x0,0x4f,0x1,0xd4,0x1,0x62,0x2, +0xa3,0x2,0x2a,0x2,0x3f,0x1,0x65,0x0,0xb5,0xff,0x45,0xff, +0x34,0xff,0x45,0xff,0x49,0xff,0x79,0xff,0xf4,0xff,0x6b,0x0, +0x94,0x0,0x81,0x0,0x58,0x0,0x10,0x0,0x84,0xff,0xa8,0xfe, +0xd6,0xfd,0x5c,0xfd,0xdd,0xfc,0x3d,0xfc,0x19,0xfc,0x86,0xfc, +0x21,0xfd,0xf0,0xfd,0xc4,0xfe,0x76,0xff,0x69,0x0,0x69,0x1, +0xfe,0x1,0x86,0x2,0xf5,0x2,0xd6,0x2,0x7f,0x2,0x14,0x2, +0x58,0x1,0xc0,0x0,0x69,0x0,0xf3,0xff,0xbb,0xff,0xca,0xff, +0xb3,0xff,0xe3,0xff,0x93,0x0,0x3a,0x1,0xc8,0x1,0x2b,0x2, +0x25,0x2,0xd,0x2,0xf7,0x1,0x8c,0x1,0x2,0x1,0x90,0x0, +0xd,0x0,0xa0,0xff,0x7c,0xff,0xa2,0xff,0x17,0x0,0xc4,0x0, +0x86,0x1,0x2d,0x2,0x67,0x2,0x4f,0x2,0x14,0x2,0x7f,0x1, +0xa1,0x0,0xbc,0xff,0xee,0xfe,0x93,0xfe,0x9e,0xfe,0x83,0xfe, +0x82,0xfe,0xe5,0xfe,0x2a,0xff,0x56,0xff,0xd0,0xff,0x6c,0x0, +0x13,0x1,0xb2,0x1,0x1,0x2,0x3d,0x2,0x75,0x2,0x35,0x2, +0xba,0x1,0x66,0x1,0xf2,0x0,0x64,0x0,0x9,0x0,0xd8,0xff, +0xd4,0xff,0x1,0x0,0x4b,0x0,0xba,0x0,0x1a,0x1,0x47,0x1, +0x7a,0x1,0x9a,0x1,0x73,0x1,0x21,0x1,0xb7,0x0,0x49,0x0, +0xd1,0xff,0x1c,0xff,0x7b,0xfe,0x22,0xfe,0x7b,0xfd,0xca,0xfc, +0xaf,0xfc,0x5d,0xfc,0x7a,0xfb,0xfd,0xfa,0xd2,0xfa,0x5e,0xfa, +0x1e,0xfa,0x8e,0xfa,0x96,0xfb,0x3b,0xfd,0x6d,0xff,0x15,0x2, +0xfe,0x4,0x94,0x7,0x7b,0x9,0x98,0xa,0xa9,0xa,0xbd,0x9, +0xd1,0x7,0x8e,0x4,0x8b,0x0,0xe7,0xfc,0xc6,0xf9,0x40,0xf7, +0x2a,0xf6,0xde,0xf6,0xf1,0xf8,0xdc,0xfb,0x13,0xff,0xf8,0x1, +0x1,0x4,0xfb,0x4,0x2a,0x5,0xc5,0x4,0xc7,0x3,0x40,0x2, +0x76,0x0,0xeb,0xfe,0xfa,0xfd,0x4d,0xfd,0xb3,0xfc,0xc2,0xfc, +0xb7,0xfd,0xa,0xff,0x49,0x0,0x49,0x1,0xef,0x1,0x22,0x2, +0x9f,0x1,0x4a,0x0,0x88,0xfe,0xc2,0xfc,0x1e,0xfb,0xd8,0xf9, +0x37,0xf9,0x61,0xf9,0x42,0xfa,0xa0,0xfb,0x56,0xfd,0x36,0xff, +0xe1,0x0,0x29,0x2,0xc,0x3,0x6e,0x3,0x73,0x3,0x8b,0x3, +0xbe,0x3,0xca,0x3,0xa2,0x3,0x44,0x3,0xc5,0x2,0x6e,0x2, +0x2e,0x2,0xac,0x1,0x5,0x1,0x67,0x0,0x9b,0xff,0xa6,0xfe, +0xe7,0xfd,0x7e,0xfd,0x79,0xfd,0xe9,0xfd,0xa0,0xfe,0x73,0xff, +0x47,0x0,0xf2,0x0,0x98,0x1,0x3d,0x2,0x48,0x2,0xa7,0x1, +0x15,0x1,0xb5,0x0,0x3f,0x0,0xd8,0xff,0xa1,0xff,0x8b,0xff, +0xb4,0xff,0x1,0x0,0x1f,0x0,0x11,0x0,0xf2,0xff,0xc3,0xff, +0x95,0xff,0x57,0xff,0xd5,0xfe,0x22,0xfe,0x8f,0xfd,0x46,0xfd, +0x18,0xfd,0xd3,0xfc,0xaa,0xfc,0xff,0xfc,0xd5,0xfd,0xce,0xfe, +0xa6,0xff,0x71,0x0,0x52,0x1,0x1f,0x2,0x98,0x2,0xb3,0x2, +0x76,0x2,0xf6,0x1,0x61,0x1,0xce,0x0,0x45,0x0,0xd8,0xff, +0xa3,0xff,0xc1,0xff,0x7,0x0,0x13,0x0,0x1f,0x0,0xb0,0x0, +0x84,0x1,0x7,0x2,0x34,0x2,0x26,0x2,0xde,0x1,0x98,0x1, +0x6d,0x1,0x1f,0x1,0x91,0x0,0x6,0x0,0xbb,0xff,0xa3,0xff, +0xa4,0xff,0xd2,0xff,0x54,0x0,0x17,0x1,0xd9,0x1,0x5c,0x2, +0x86,0x2,0x4d,0x2,0xc6,0x1,0x2e,0x1,0x86,0x0,0xa8,0xff, +0xd9,0xfe,0x77,0xfe,0x64,0xfe,0x57,0xfe,0x35,0xfe,0x2a,0xfe, +0x7b,0xfe,0x4,0xff,0x88,0xff,0x42,0x0,0x1d,0x1,0x96,0x1, +0xd8,0x1,0x37,0x2,0x63,0x2,0x39,0x2,0xdb,0x1,0x55,0x1, +0xed,0x0,0xc0,0x0,0x8e,0x0,0x5c,0x0,0x3e,0x0,0x45,0x0, +0xa3,0x0,0xea,0x0,0xc3,0x0,0xd1,0x0,0x2a,0x1,0x23,0x1, +0xdf,0x0,0xaa,0x0,0x62,0x0,0x2c,0x0,0xdb,0xff,0xe,0xff, +0x46,0xfe,0xc3,0xfd,0x34,0xfd,0xd6,0xfc,0xa4,0xfc,0x21,0xfc, +0x9b,0xfb,0x6a,0xfb,0x42,0xfb,0x2c,0xfb,0x4b,0xfb,0x91,0xfb, +0x56,0xfc,0xce,0xfd,0xbb,0xff,0xc,0x2,0x9c,0x4,0xf1,0x6, +0x96,0x8,0x59,0x9,0x61,0x9,0x9b,0x8,0x98,0x6,0x92,0x3, +0x39,0x0,0xc9,0xfc,0xc0,0xf9,0xd4,0xf7,0x2d,0xf7,0xf7,0xf7, +0x18,0xfa,0xa3,0xfc,0x23,0xff,0xa0,0x1,0x71,0x3,0x38,0x4, +0x5e,0x4,0xe9,0x3,0xbe,0x2,0x48,0x1,0x7,0x0,0x2e,0xff, +0x71,0xfe,0x90,0xfd,0x27,0xfd,0xa3,0xfd,0x9f,0xfe,0xc6,0xff, +0xc2,0x0,0x47,0x1,0xab,0x1,0xc1,0x1,0xb5,0x0,0xe4,0xfe, +0x42,0xfd,0xd0,0xfb,0x6c,0xfa,0x6a,0xf9,0x1c,0xf9,0xb7,0xf9, +0xa,0xfb,0xa9,0xfc,0x72,0xfe,0x28,0x0,0x77,0x1,0x78,0x2, +0x1a,0x3,0x29,0x3,0xfe,0x2,0xf1,0x2,0xef,0x2,0xe4,0x2, +0xa2,0x2,0x2d,0x2,0xf0,0x1,0xee,0x1,0xc4,0x1,0x5f,0x1, +0xca,0x0,0x25,0x0,0xa1,0xff,0xfc,0xfe,0x12,0xfe,0x76,0xfd, +0x82,0xfd,0x0,0xfe,0xbc,0xfe,0x7d,0xff,0x29,0x0,0xed,0x0, +0x9f,0x1,0xeb,0x1,0xe8,0x1,0x8c,0x1,0xcb,0x0,0x2b,0x0, +0xd7,0xff,0x65,0xff,0xff,0xfe,0x6,0xff,0x30,0xff,0x66,0xff, +0xdc,0xff,0x1e,0x0,0xd8,0xff,0x95,0xff,0x7c,0xff,0x10,0xff, +0x61,0xfe,0xcc,0xfd,0x39,0xfd,0xb0,0xfc,0x7d,0xfc,0x8d,0xfc, +0xbd,0xfc,0x3d,0xfd,0x1b,0xfe,0x20,0xff,0x1f,0x0,0x1a,0x1, +0x9,0x2,0x9b,0x2,0x8f,0x2,0x26,0x2,0xa6,0x1,0xe7,0x0, +0x19,0x0,0xbe,0xff,0xa2,0xff,0x5c,0xff,0x4c,0xff,0xc2,0xff, +0x43,0x0,0x83,0x0,0xc8,0x0,0x31,0x1,0xab,0x1,0xb,0x2, +0x13,0x2,0xd7,0x1,0x92,0x1,0x3c,0x1,0xe2,0x0,0xae,0x0, +0x61,0x0,0xde,0xff,0x8a,0xff,0x89,0xff,0xa6,0xff,0xe1,0xff, +0x58,0x0,0x5,0x1,0xa0,0x1,0xd6,0x1,0xb9,0x1,0x7f,0x1, +0xf,0x1,0x70,0x0,0xe2,0xff,0x5f,0xff,0xe1,0xfe,0x92,0xfe, +0x5a,0xfe,0x28,0xfe,0x28,0xfe,0x62,0xfe,0xc8,0xfe,0x5c,0xff, +0xf8,0xff,0x78,0x0,0xf3,0x0,0x6b,0x1,0xb8,0x1,0xbe,0x1, +0x92,0x1,0x65,0x1,0x41,0x1,0x10,0x1,0xd0,0x0,0x8f,0x0, +0x70,0x0,0x88,0x0,0x92,0x0,0x74,0x0,0x77,0x0,0x88,0x0, +0x77,0x0,0x6e,0x0,0x54,0x0,0xf,0x0,0x3,0x0,0xe,0x0, +0xc8,0xff,0x8a,0xff,0x69,0xff,0xf8,0xfe,0x7b,0xfe,0x25,0xfe, +0x91,0xfd,0xf2,0xfc,0x95,0xfc,0xfd,0xfb,0x3a,0xfb,0xe5,0xfa, +0xbf,0xfa,0x78,0xfa,0x92,0xfa,0x47,0xfb,0x41,0xfc,0x9a,0xfd, +0xc8,0xff,0x85,0x2,0x8,0x5,0x9,0x7,0x86,0x8,0x2d,0x9, +0xe8,0x8,0xce,0x7,0x8c,0x5,0x5b,0x2,0x3f,0xff,0x6a,0xfc, +0xb7,0xf9,0x2d,0xf8,0x83,0xf8,0xe1,0xf9,0xa5,0xfb,0xf1,0xfd, +0x58,0x0,0x39,0x2,0x69,0x3,0xc5,0x3,0x5f,0x3,0xaf,0x2, +0xb7,0x1,0x6c,0x0,0x6c,0xff,0xf2,0xfe,0x8f,0xfe,0x4d,0xfe, +0x54,0xfe,0x9c,0xfe,0x85,0xff,0xdd,0x0,0x93,0x1,0xa0,0x1, +0x8a,0x1,0xcd,0x0,0x5d,0xff,0xfc,0xfd,0x81,0xfc,0xde,0xfa, +0xe6,0xf9,0xa1,0xf9,0xbb,0xf9,0x9c,0xfa,0x31,0xfc,0xda,0xfd, +0x6c,0xff,0xc3,0x0,0xc0,0x1,0x75,0x2,0xb5,0x2,0xa6,0x2, +0xad,0x2,0x89,0x2,0x3f,0x2,0x35,0x2,0xe,0x2,0xc5,0x1, +0x1,0x2,0x47,0x2,0xa,0x2,0xd7,0x1,0x8f,0x1,0xbc,0x0, +0xe6,0xff,0x31,0xff,0x54,0xfe,0xc8,0xfd,0xd1,0xfd,0x2d,0xfe, +0xf8,0xfe,0xc,0x0,0xe9,0x0,0x99,0x1,0x40,0x2,0xa7,0x2, +0x82,0x2,0xd5,0x1,0x26,0x1,0xad,0x0,0x2,0x0,0x44,0xff, +0xe2,0xfe,0xc2,0xfe,0x1,0xff,0xaa,0xff,0x15,0x0,0x37,0x0, +0x79,0x0,0x88,0x0,0x3a,0x0,0xbb,0xff,0xec,0xfe,0x30,0xfe, +0xe2,0xfd,0x73,0xfd,0xf4,0xfc,0xf1,0xfc,0x1c,0xfd,0x81,0xfd, +0x83,0xfe,0x7b,0xff,0x1d,0x0,0xff,0x0,0xef,0x1,0x69,0x2, +0x83,0x2,0x49,0x2,0xc6,0x1,0x20,0x1,0x6f,0x0,0xd,0x0, +0x9,0x0,0xec,0xff,0xd8,0xff,0x17,0x0,0x44,0x0,0x4f,0x0, +0x9f,0x0,0x28,0x1,0xbb,0x1,0x24,0x2,0x1b,0x2,0xe8,0x1, +0xe5,0x1,0xc2,0x1,0x5b,0x1,0xf5,0x0,0x8f,0x0,0x16,0x0, +0xba,0xff,0xa4,0xff,0xd2,0xff,0x49,0x0,0x1,0x1,0xae,0x1, +0xe,0x2,0x33,0x2,0x16,0x2,0x9f,0x1,0x1f,0x1,0xb6,0x0, +0x19,0x0,0x63,0xff,0xd4,0xfe,0x75,0xfe,0x72,0xfe,0xa0,0xfe, +0xbc,0xfe,0x3b,0xff,0x28,0x0,0xe2,0x0,0x8a,0x1,0x36,0x2, +0x73,0x2,0x90,0x2,0xab,0x2,0x29,0x2,0x77,0x1,0x17,0x1, +0x8b,0x0,0x4,0x0,0xe9,0xff,0xc0,0xff,0xb5,0xff,0x2a,0x0, +0x8e,0x0,0xdf,0x0,0x69,0x1,0x9f,0x1,0x81,0x1,0x83,0x1, +0x30,0x1,0x7b,0x0,0x11,0x0,0xd5,0xff,0x6f,0xff,0xfe,0xfe, +0x8c,0xfe,0x4e,0xfe,0x62,0xfe,0x52,0xfe,0xee,0xfd,0x7f,0xfd, +0xfa,0xfc,0x3a,0xfc,0x6e,0xfb,0xcb,0xfa,0x5d,0xfa,0x10,0xfa, +0x4,0xfa,0xa3,0xfa,0xfb,0xfb,0xdb,0xfd,0x57,0x0,0x45,0x3, +0xf,0x6,0x53,0x8,0xce,0x9,0x41,0xa,0xbc,0x9,0x34,0x8, +0x71,0x5,0xeb,0x1,0x7c,0xfe,0x75,0xfb,0x9,0xf9,0xcf,0xf7, +0x3d,0xf8,0xf,0xfa,0x76,0xfc,0xe0,0xfe,0x4f,0x1,0x63,0x3, +0x4c,0x4,0x37,0x4,0xf0,0x3,0x4a,0x3,0xf2,0x1,0x8c,0x0, +0x81,0xff,0xa4,0xfe,0xf,0xfe,0xcf,0xfd,0xe1,0xfd,0x89,0xfe, +0xa7,0xff,0xbb,0x0,0x96,0x1,0xf9,0x1,0xbf,0x1,0x27,0x1, +0x9,0x0,0x4e,0xfe,0xa9,0xfc,0x77,0xfb,0xa0,0xfa,0x5a,0xfa, +0x9a,0xfa,0x45,0xfb,0x99,0xfc,0x24,0xfe,0x5f,0xff,0x99,0x0, +0xb5,0x1,0x53,0x2,0xbc,0x2,0xe0,0x2,0xae,0x2,0xba,0x2, +0xc3,0x2,0x4b,0x2,0xee,0x1,0xdf,0x1,0xd5,0x1,0xa,0x2, +0x20,0x2,0x98,0x1,0x10,0x1,0x9a,0x0,0xb6,0xff,0xc4,0xfe, +0x3,0xfe,0x7a,0xfd,0xaf,0xfd,0x55,0xfe,0xba,0xfe,0x61,0xff, +0x7c,0x0,0x3f,0x1,0xa2,0x1,0xfa,0x1,0xff,0x1,0x99,0x1, +0x1c,0x1,0xb7,0x0,0x42,0x0,0x81,0xff,0xd8,0xfe,0xd5,0xfe, +0x22,0xff,0x3e,0xff,0x43,0xff,0x5a,0xff,0x82,0xff,0x97,0xff, +0x5a,0xff,0xeb,0xfe,0x89,0xfe,0x25,0xfe,0xd2,0xfd,0xa6,0xfd, +0x80,0xfd,0x94,0xfd,0xf5,0xfd,0x42,0xfe,0x80,0xfe,0x3,0xff, +0xb9,0xff,0x7a,0x0,0xf,0x1,0x45,0x1,0x55,0x1,0x70,0x1, +0x5b,0x1,0x3,0x1,0xa2,0x0,0x6c,0x0,0x66,0x0,0x4e,0x0, +0x18,0x0,0x9,0x0,0x3,0x0,0xdd,0xff,0xee,0xff,0x5b,0x0, +0xe5,0x0,0x4e,0x1,0x61,0x1,0x51,0x1,0x77,0x1,0x95,0x1, +0x60,0x1,0x3,0x1,0x9a,0x0,0x3b,0x0,0xff,0xff,0xd8,0xff, +0xf2,0xff,0x75,0x0,0xff,0x0,0x5d,0x1,0xb2,0x1,0xcd,0x1, +0x92,0x1,0x21,0x1,0x7d,0x0,0xce,0xff,0x3c,0xff,0xa3,0xfe, +0x2b,0xfe,0x17,0xfe,0x38,0xfe,0x7f,0xfe,0x3,0xff,0x99,0xff, +0x56,0x0,0x4c,0x1,0xc,0x2,0x71,0x2,0xc0,0x2,0xe7,0x2, +0xb5,0x2,0x32,0x2,0x79,0x1,0xc5,0x0,0x2d,0x0,0x8c,0xff, +0xef,0xfe,0x98,0xfe,0xab,0xfe,0x2d,0xff,0xf3,0xff,0xb2,0x0, +0x52,0x1,0xd4,0x1,0x23,0x2,0x37,0x2,0x22,0x2,0xd8,0x1, +0x43,0x1,0x85,0x0,0xf0,0xff,0x7e,0xff,0xf2,0xfe,0x6c,0xfe, +0x24,0xfe,0xf5,0xfd,0xa0,0xfd,0xd,0xfd,0x5a,0xfc,0xc9,0xfb, +0x44,0xfb,0x99,0xfa,0x19,0xfa,0x3,0xfa,0x34,0xfa,0xe9,0xfa, +0x73,0xfc,0x95,0xfe,0x28,0x1,0x1c,0x4,0xf7,0x6,0x3f,0x9, +0xbc,0xa,0x29,0xb,0x6a,0xa,0x8e,0x8,0x82,0x5,0x9a,0x1, +0xba,0xfd,0x68,0xfa,0xcd,0xf7,0x98,0xf6,0x4b,0xf7,0x30,0xf9, +0x8a,0xfb,0x5c,0xfe,0x2e,0x1,0x28,0x3,0x3e,0x4,0x8f,0x4, +0xc,0x4,0x39,0x3,0x45,0x2,0xc1,0x0,0x2d,0xff,0x40,0xfe, +0x6c,0xfd,0x7f,0xfc,0x60,0xfc,0x34,0xfd,0x53,0xfe,0x68,0xff, +0x4c,0x0,0xe9,0x0,0x2d,0x1,0xcf,0x0,0xda,0xff,0xba,0xfe, +0x7f,0xfd,0x3a,0xfc,0x74,0xfb,0x4e,0xfb,0x54,0xfb,0x8e,0xfb, +0x72,0xfc,0xc9,0xfd,0xe1,0xfe,0xc5,0xff,0xdb,0x0,0xc3,0x1, +0x11,0x2,0x3e,0x2,0xb1,0x2,0x12,0x3,0x14,0x3,0xca,0x2, +0x73,0x2,0x4f,0x2,0x49,0x2,0x1c,0x2,0xc1,0x1,0x3f,0x1, +0x80,0x0,0xaa,0xff,0xf2,0xfe,0x4c,0xfe,0xbb,0xfd,0x7f,0xfd, +0xb6,0xfd,0x4e,0xfe,0x28,0xff,0xfb,0xff,0x87,0x0,0x7,0x1, +0xad,0x1,0x5,0x2,0xd4,0x1,0x8a,0x1,0x4f,0x1,0xf7,0x0, +0x91,0x0,0x1f,0x0,0xb5,0xff,0xb7,0xff,0xf0,0xff,0xdb,0xff, +0xb6,0xff,0xbe,0xff,0x90,0xff,0x2b,0xff,0xd2,0xfe,0x57,0xfe, +0xc3,0xfd,0x7b,0xfd,0x72,0xfd,0x7e,0xfd,0xb9,0xfd,0x18,0xfe, +0x8b,0xfe,0x37,0xff,0xf9,0xff,0x7b,0x0,0xd3,0x0,0x2d,0x1, +0x5c,0x1,0x50,0x1,0x2d,0x1,0xf9,0x0,0xc6,0x0,0xa5,0x0, +0x76,0x0,0x5e,0x0,0x87,0x0,0x9d,0x0,0x98,0x0,0xbd,0x0, +0xb4,0x0,0x67,0x0,0x7c,0x0,0xdd,0x0,0xfa,0x0,0xff,0x0, +0x5,0x1,0xea,0x0,0xf7,0x0,0x1d,0x1,0x1,0x1,0xeb,0x0, +0xff,0x0,0xe9,0x0,0xc2,0x0,0xc1,0x0,0xd6,0x0,0x1f,0x1, +0x98,0x1,0xe2,0x1,0xcf,0x1,0x79,0x1,0x4,0x1,0x6a,0x0, +0x9e,0xff,0xec,0xfe,0x76,0xfe,0x9,0xfe,0xe9,0xfd,0x48,0xfe, +0xa8,0xfe,0x7,0xff,0xb4,0xff,0x3f,0x0,0x90,0x0,0x26,0x1, +0xc2,0x1,0x10,0x2,0x46,0x2,0x4d,0x2,0x14,0x2,0xdd,0x1, +0x7f,0x1,0xdc,0x0,0x3c,0x0,0xa5,0xff,0xf,0xff,0xbc,0xfe, +0xc1,0xfe,0x16,0xff,0xac,0xff,0x52,0x0,0xf4,0x0,0x8b,0x1, +0xfd,0x1,0x54,0x2,0x6b,0x2,0x8,0x2,0x81,0x1,0x2a,0x1, +0xc8,0x0,0x20,0x0,0x4c,0xff,0x99,0xfe,0x2c,0xfe,0xae,0xfd, +0x7,0xfd,0x87,0xfc,0xf0,0xfb,0x9,0xfb,0x61,0xfa,0x1d,0xfa, +0xe5,0xf9,0xf6,0xf9,0x89,0xfa,0x86,0xfb,0x1a,0xfd,0x5f,0xff, +0x23,0x2,0x21,0x5,0xd3,0x7,0xc3,0x9,0xe1,0xa,0x8,0xb, +0xfe,0x9,0xac,0x7,0x32,0x4,0x4b,0x0,0xb6,0xfc,0x7f,0xf9, +0x10,0xf7,0x57,0xf6,0x6b,0xf7,0xa4,0xf9,0x58,0xfc,0x3,0xff, +0x80,0x1,0x72,0x3,0x3d,0x4,0x2b,0x4,0xdf,0x3,0x21,0x3, +0xde,0x1,0x90,0x0,0x58,0xff,0x3d,0xfe,0x5a,0xfd,0xba,0xfc, +0xbf,0xfc,0x83,0xfd,0x5c,0xfe,0x1f,0xff,0x8,0x0,0xb6,0x0, +0xc9,0x0,0x5d,0x0,0x9d,0xff,0xc8,0xfe,0xdd,0xfd,0xc2,0xfc, +0x9,0xfc,0xa,0xfc,0x2f,0xfc,0x57,0xfc,0x1,0xfd,0x1b,0xfe, +0x28,0xff,0xe6,0xff,0x7a,0x0,0x1d,0x1,0x85,0x1,0x8b,0x1, +0xda,0x1,0x85,0x2,0xca,0x2,0xb5,0x2,0xb6,0x2,0xad,0x2, +0x96,0x2,0x67,0x2,0xdd,0x1,0x46,0x1,0xc2,0x0,0xd6,0xff, +0xc8,0xfe,0x2b,0xfe,0xbc,0xfd,0x90,0xfd,0x4,0xfe,0xa8,0xfe, +0x3d,0xff,0xf7,0xff,0x85,0x0,0xe5,0x0,0x8d,0x1,0x11,0x2, +0xea,0x1,0x8e,0x1,0x5c,0x1,0x38,0x1,0xa,0x1,0xab,0x0, +0x4c,0x0,0x4c,0x0,0x6a,0x0,0x5d,0x0,0x42,0x0,0xed,0xff, +0x5d,0xff,0xe2,0xfe,0x41,0xfe,0x6f,0xfd,0xf7,0xfc,0xbf,0xfc, +0x7a,0xfc,0x77,0xfc,0xc0,0xfc,0x4a,0xfd,0x42,0xfe,0x2f,0xff, +0xcb,0xff,0xa3,0x0,0x6b,0x1,0x7f,0x1,0x77,0x1,0xa0,0x1, +0x5f,0x1,0xe0,0x0,0x9d,0x0,0x66,0x0,0x27,0x0,0xff,0xff, +0xe1,0xff,0xf0,0xff,0x2a,0x0,0x49,0x0,0x5b,0x0,0x8a,0x0, +0xc8,0x0,0xfc,0x0,0x3,0x1,0xe0,0x0,0xc6,0x0,0xa4,0x0, +0x5d,0x0,0x3a,0x0,0x5b,0x0,0x68,0x0,0x41,0x0,0x4a,0x0, +0xa8,0x0,0xe5,0x0,0xf9,0x0,0x7d,0x1,0x33,0x2,0x53,0x2, +0x27,0x2,0xb,0x2,0x69,0x1,0x47,0x0,0x5e,0xff,0xb7,0xfe, +0x26,0xfe,0xc8,0xfd,0xa9,0xfd,0xee,0xfd,0x8d,0xfe,0x11,0xff, +0x7f,0xff,0x2d,0x0,0xdb,0x0,0x53,0x1,0xc7,0x1,0x30,0x2, +0x67,0x2,0x74,0x2,0x53,0x2,0xf6,0x1,0x57,0x1,0xa2,0x0, +0x1c,0x0,0xb1,0xff,0x32,0xff,0xe9,0xfe,0x11,0xff,0x7d,0xff, +0x1a,0x0,0xeb,0x0,0xac,0x1,0x2c,0x2,0x86,0x2,0xbc,0x2, +0x83,0x2,0xd6,0x1,0x3e,0x1,0xdf,0x0,0x3e,0x0,0x60,0xff, +0xb3,0xfe,0x39,0xfe,0xe8,0xfd,0xbd,0xfd,0x66,0xfd,0xd4,0xfc, +0x47,0xfc,0xab,0xfb,0xfa,0xfa,0x74,0xfa,0x2c,0xfa,0x34,0xfa, +0xbd,0xfa,0xd2,0xfb,0x6e,0xfd,0xa0,0xff,0x63,0x2,0x5e,0x5, +0xcd,0x7,0x4d,0x9,0x30,0xa,0x33,0xa,0xa3,0x8,0xd1,0x5, +0x75,0x2,0xd9,0xfe,0x78,0xfb,0xc5,0xf8,0xf5,0xf6,0xc3,0xf6, +0x83,0xf8,0x22,0xfb,0xc1,0xfd,0x6f,0x0,0xc6,0x2,0x20,0x4, +0x90,0x4,0x72,0x4,0xe3,0x3,0xdf,0x2,0x82,0x1,0x27,0x0, +0xf,0xff,0x20,0xfe,0x65,0xfd,0x25,0xfd,0x6f,0xfd,0x18,0xfe, +0xf3,0xfe,0xb4,0xff,0x40,0x0,0xb6,0x0,0xd6,0x0,0x49,0x0, +0x6c,0xff,0x9c,0xfe,0xa8,0xfd,0xca,0xfc,0x79,0xfc,0x75,0xfc, +0x94,0xfc,0x34,0xfd,0x29,0xfe,0x7,0xff,0xec,0xff,0xc2,0x0, +0x22,0x1,0x23,0x1,0x12,0x1,0x11,0x1,0x43,0x1,0x8e,0x1, +0xc8,0x1,0xf9,0x1,0xb,0x2,0x0,0x2,0x17,0x2,0x32,0x2, +0xf2,0x1,0x61,0x1,0xb4,0x0,0x2,0x0,0x57,0xff,0xa0,0xfe, +0xfb,0xfd,0xd0,0xfd,0x35,0xfe,0xe8,0xfe,0x95,0xff,0x9,0x0, +0x77,0x0,0x14,0x1,0x87,0x1,0xa1,0x1,0x96,0x1,0x5d,0x1, +0x6,0x1,0xd2,0x0,0x7a,0x0,0xe0,0xff,0x92,0xff,0xa5,0xff, +0xa8,0xff,0x8a,0xff,0x54,0xff,0xc,0xff,0xe0,0xfe,0xaa,0xfe, +0x36,0xfe,0xd1,0xfd,0x92,0xfd,0x3f,0xfd,0x4,0xfd,0x3,0xfd, +0x12,0xfd,0x64,0xfd,0x24,0xfe,0xe3,0xfe,0x61,0xff,0xef,0xff, +0xa8,0x0,0x35,0x1,0x6c,0x1,0x91,0x1,0xd0,0x1,0xe1,0x1, +0xa2,0x1,0x60,0x1,0x26,0x1,0xae,0x0,0x2d,0x0,0xfb,0xff, +0xf5,0xff,0xe9,0xff,0x0,0x0,0x67,0x0,0xf4,0x0,0x48,0x1, +0x52,0x1,0x63,0x1,0x74,0x1,0x36,0x1,0xe2,0x0,0xd2,0x0, +0xca,0x0,0x8c,0x0,0x4b,0x0,0x40,0x0,0x77,0x0,0xca,0x0, +0x2b,0x1,0xb4,0x1,0x47,0x2,0xa2,0x2,0xc5,0x2,0x92,0x2, +0xdd,0x1,0xf1,0x0,0x13,0x0,0x38,0xff,0x7e,0xfe,0xf8,0xfd, +0xad,0xfd,0xdf,0xfd,0x57,0xfe,0xa9,0xfe,0x3a,0xff,0x25,0x0, +0xb8,0x0,0x31,0x1,0x1b,0x2,0xcd,0x2,0xe9,0x2,0xd7,0x2, +0x80,0x2,0xe3,0x1,0x60,0x1,0xa6,0x0,0xa5,0xff,0x1f,0xff, +0xff,0xfe,0xaa,0xfe,0x95,0xfe,0x52,0xff,0x68,0x0,0x2f,0x1, +0xb0,0x1,0x37,0x2,0x99,0x2,0x70,0x2,0xec,0x1,0x62,0x1, +0xbb,0x0,0x9,0x0,0x79,0xff,0xd4,0xfe,0x3d,0xfe,0x1c,0xfe, +0x1e,0xfe,0xeb,0xfd,0xc5,0xfd,0x8a,0xfd,0xd4,0xfc,0xf1,0xfb, +0x4f,0xfb,0xd9,0xfa,0x6a,0xfa,0x2d,0xfa,0x7a,0xfa,0x88,0xfb, +0x51,0xfd,0xb4,0xff,0x6e,0x2,0x1b,0x5,0x62,0x7,0xf3,0x8, +0x8e,0x9,0x31,0x9,0xd3,0x7,0x3d,0x5,0xbe,0x1,0x2c,0xfe, +0xa,0xfb,0x82,0xf8,0x23,0xf7,0x85,0xf7,0x56,0xf9,0xbf,0xfb, +0x6c,0xfe,0x26,0x1,0x44,0x3,0x74,0x4,0xee,0x4,0xbb,0x4, +0xe2,0x3,0xb5,0x2,0x49,0x1,0xbb,0xff,0x84,0xfe,0xc3,0xfd, +0x31,0xfd,0xe7,0xfc,0x27,0xfd,0xd6,0xfd,0xa5,0xfe,0x59,0xff, +0xef,0xff,0x4d,0x0,0x24,0x0,0x7e,0xff,0xb5,0xfe,0xd9,0xfd, +0xf7,0xfc,0x5e,0xfc,0x1d,0xfc,0x2c,0xfc,0xa2,0xfc,0x5d,0xfd, +0x5f,0xfe,0xc7,0xff,0xec,0x0,0x3e,0x1,0x5c,0x1,0x92,0x1, +0x46,0x1,0xd2,0x0,0xfe,0x0,0x38,0x1,0x9,0x1,0x12,0x1, +0x46,0x1,0x24,0x1,0x3a,0x1,0xb6,0x1,0xae,0x1,0x15,0x1, +0xa9,0x0,0x53,0x0,0xc2,0xff,0x2b,0xff,0xb8,0xfe,0x9b,0xfe, +0xc,0xff,0xbd,0xff,0x43,0x0,0xa4,0x0,0xa,0x1,0x79,0x1, +0xcc,0x1,0xd9,0x1,0x98,0x1,0x24,0x1,0xbe,0x0,0x91,0x0, +0x4a,0x0,0xb2,0xff,0x44,0xff,0x33,0xff,0xe,0xff,0xdb,0xfe, +0xde,0xfe,0xde,0xfe,0xc0,0xfe,0xd0,0xfe,0xb,0xff,0xc,0xff, +0xb7,0xfe,0x6f,0xfe,0x6e,0xfe,0x62,0xfe,0x33,0xfe,0x36,0xfe, +0x67,0xfe,0x8f,0xfe,0xd6,0xfe,0x47,0xff,0xb9,0xff,0x36,0x0, +0xbd,0x0,0x38,0x1,0xba,0x1,0x34,0x2,0x5a,0x2,0x2c,0x2, +0xe2,0x1,0x6c,0x1,0xa4,0x0,0xf9,0xff,0xed,0xff,0xf,0x0, +0xe4,0xff,0xf4,0xff,0x65,0x0,0xaa,0x0,0xe5,0x0,0x48,0x1, +0x49,0x1,0x3,0x1,0x2,0x1,0x0,0x1,0xcd,0x0,0xa6,0x0, +0x68,0x0,0x23,0x0,0x29,0x0,0x4d,0x0,0x96,0x0,0x43,0x1, +0xe0,0x1,0x13,0x2,0x33,0x2,0x42,0x2,0xf2,0x1,0x4f,0x1, +0x7f,0x0,0xaf,0xff,0x6,0xff,0x76,0xfe,0x1a,0xfe,0xf,0xfe, +0x1c,0xfe,0x4a,0xfe,0xe8,0xfe,0xbc,0xff,0x73,0x0,0x30,0x1, +0xfb,0x1,0x9f,0x2,0x5,0x3,0x14,0x3,0xba,0x2,0x16,0x2, +0x5f,0x1,0xaa,0x0,0xe1,0xff,0x23,0xff,0xe3,0xfe,0xc,0xff, +0x25,0xff,0x7e,0xff,0x69,0x0,0x26,0x1,0x69,0x1,0xcd,0x1, +0x31,0x2,0x1,0x2,0x76,0x1,0xf6,0x0,0x8d,0x0,0x35,0x0, +0xbd,0xff,0x1d,0xff,0xa9,0xfe,0x72,0xfe,0x4e,0xfe,0x2b,0xfe, +0xdb,0xfd,0x5f,0xfd,0xdd,0xfc,0x38,0xfc,0x74,0xfb,0xc6,0xfa, +0x27,0xfa,0xf2,0xf9,0xa3,0xfa,0xe3,0xfb,0x82,0xfd,0xe0,0xff, +0xaf,0x2,0x55,0x5,0x9c,0x7,0x27,0x9,0xd0,0x9,0xb2,0x9, +0x55,0x8,0x95,0x5,0x32,0x2,0xb0,0xfe,0x58,0xfb,0xb8,0xf8, +0x3f,0xf7,0x5b,0xf7,0xf,0xf9,0x7c,0xfb,0x27,0xfe,0xa,0x1, +0x69,0x3,0xc0,0x4,0x57,0x5,0x39,0x5,0x76,0x4,0x51,0x3, +0xb8,0x1,0xe,0x0,0xf3,0xfe,0x18,0xfe,0x3a,0xfd,0xda,0xfc, +0x27,0xfd,0xed,0xfd,0xd9,0xfe,0x75,0xff,0xe5,0xff,0x56,0x0, +0x2e,0x0,0x60,0xff,0x93,0xfe,0xc6,0xfd,0xd4,0xfc,0x16,0xfc, +0xb9,0xfb,0xdb,0xfb,0x85,0xfc,0x77,0xfd,0x9e,0xfe,0xd6,0xff, +0xbc,0x0,0x7d,0x1,0x29,0x2,0x2f,0x2,0xd0,0x1,0xb7,0x1, +0x96,0x1,0x55,0x1,0x53,0x1,0x2e,0x1,0xc0,0x0,0xad,0x0, +0xe0,0x0,0xd7,0x0,0xbd,0x0,0xa7,0x0,0x57,0x0,0xfa,0xff, +0xac,0xff,0x32,0xff,0xc1,0xfe,0xd7,0xfe,0x58,0xff,0xd3,0xff, +0x2e,0x0,0x98,0x0,0x19,0x1,0x8f,0x1,0xd0,0x1,0xc3,0x1, +0x76,0x1,0x15,0x1,0xbd,0x0,0x81,0x0,0x4d,0x0,0xdc,0xff, +0x4e,0xff,0x1b,0xff,0x1d,0xff,0xeb,0xfe,0xb4,0xfe,0xb0,0xfe, +0xc3,0xfe,0xf5,0xfe,0x17,0xff,0xeb,0xfe,0xe9,0xfe,0x2b,0xff, +0x1,0xff,0xa6,0xfe,0xcb,0xfe,0xfb,0xfe,0xe4,0xfe,0xff,0xfe, +0x2f,0xff,0x41,0xff,0x96,0xff,0x1,0x0,0x43,0x0,0xbd,0x0, +0x50,0x1,0x94,0x1,0xd8,0x1,0x2c,0x2,0x1c,0x2,0xb1,0x1, +0x49,0x1,0x28,0x1,0x40,0x1,0xf,0x1,0x90,0x0,0x6b,0x0, +0x8e,0x0,0x78,0x0,0x58,0x0,0x5e,0x0,0x7c,0x0,0xb4,0x0, +0xc9,0x0,0xba,0x0,0xed,0x0,0x9,0x1,0xa3,0x0,0x68,0x0, +0x9b,0x0,0x9f,0x0,0xaf,0x0,0x3f,0x1,0xc2,0x1,0xe7,0x1, +0xc,0x2,0x1f,0x2,0xe6,0x1,0x7e,0x1,0xde,0x0,0x5,0x0, +0x44,0xff,0xb7,0xfe,0x4d,0xfe,0x21,0xfe,0x22,0xfe,0x2b,0xfe, +0x82,0xfe,0x42,0xff,0x8,0x0,0xbc,0x0,0x8c,0x1,0x4d,0x2, +0xc5,0x2,0xf2,0x2,0xbc,0x2,0x28,0x2,0x7b,0x1,0xd1,0x0, +0x34,0x0,0xc9,0xff,0x7e,0xff,0x43,0xff,0x5f,0xff,0xd7,0xff, +0x53,0x0,0xbc,0x0,0x10,0x1,0x3a,0x1,0x63,0x1,0x90,0x1, +0x71,0x1,0x1a,0x1,0xe3,0x0,0x9d,0x0,0x3,0x0,0x4f,0xff, +0xbe,0xfe,0x49,0xfe,0xde,0xfd,0x83,0xfd,0x38,0xfd,0xd1,0xfc, +0x35,0xfc,0x9e,0xfb,0x18,0xfb,0x7d,0xfa,0xd,0xfa,0x1b,0xfa, +0xac,0xfa,0xea,0xfb,0xd5,0xfd,0x17,0x0,0xc0,0x2,0xa1,0x5, +0xd4,0x7,0x3e,0x9,0x3b,0xa,0x21,0xa,0x75,0x8,0xba,0x5, +0x48,0x2,0x73,0xfe,0xe8,0xfa,0xfd,0xf7,0x33,0xf6,0x38,0xf6, +0xc4,0xf7,0x45,0xfa,0x76,0xfd,0x85,0x0,0xc2,0x2,0x63,0x4, +0x5e,0x5,0x5b,0x5,0x98,0x4,0x6e,0x3,0xfe,0x1,0x8c,0x0, +0x3d,0xff,0xfe,0xfd,0xf9,0xfc,0x9b,0xfc,0x9,0xfd,0xbb,0xfd, +0x43,0xfe,0xf9,0xfe,0xef,0xff,0x65,0x0,0x13,0x0,0x72,0xff, +0xd1,0xfe,0x19,0xfe,0x1f,0xfd,0x29,0xfc,0xdc,0xfb,0x21,0xfc, +0x66,0xfc,0xfc,0xfc,0x3c,0xfe,0x78,0xff,0x40,0x0,0xfd,0x0, +0xce,0x1,0x42,0x2,0x40,0x2,0x2e,0x2,0x56,0x2,0x74,0x2, +0x2a,0x2,0x8e,0x1,0xa,0x1,0xda,0x0,0xcd,0x0,0x8f,0x0, +0x2c,0x0,0xe8,0xff,0xba,0xff,0x76,0xff,0x1b,0xff,0xc9,0xfe, +0xa5,0xfe,0xcf,0xfe,0x5a,0xff,0xe,0x0,0x7a,0x0,0xc5,0x0, +0x69,0x1,0x15,0x2,0x32,0x2,0xdd,0x1,0x58,0x1,0xd9,0x0, +0x96,0x0,0x4f,0x0,0xd8,0xff,0x9d,0xff,0xa8,0xff,0x95,0xff, +0x66,0xff,0x38,0xff,0x6,0xff,0xe3,0xfe,0xc5,0xfe,0x93,0xfe, +0x54,0xfe,0x1b,0xfe,0x15,0xfe,0x36,0xfe,0x2c,0xfe,0x29,0xfe, +0x7d,0xfe,0xec,0xfe,0x57,0xff,0xbd,0xff,0xcf,0xff,0xc3,0xff, +0xfd,0xff,0x1e,0x0,0xf9,0xff,0xf8,0xff,0x1a,0x0,0x3b,0x0, +0x76,0x0,0xbe,0x0,0x13,0x1,0x71,0x1,0xad,0x1,0xe1,0x1, +0x8,0x2,0xcb,0x1,0x56,0x1,0xfa,0x0,0x7f,0x0,0xec,0xff, +0x92,0xff,0x6d,0xff,0x5c,0xff,0x6e,0xff,0xb0,0xff,0x11,0x0, +0x58,0x0,0x80,0x0,0xa8,0x0,0xa9,0x0,0x9c,0x0,0xdf,0x0, +0x3b,0x1,0x7c,0x1,0xd8,0x1,0x11,0x2,0xf7,0x1,0xe6,0x1, +0xbd,0x1,0x14,0x1,0x35,0x0,0x7b,0xff,0xed,0xfe,0x81,0xfe, +0x1a,0xfe,0xe6,0xfd,0x14,0xfe,0x4f,0xfe,0x8d,0xfe,0x20,0xff, +0xcf,0xff,0x74,0x0,0x49,0x1,0xfc,0x1,0x39,0x2,0x53,0x2, +0x58,0x2,0x10,0x2,0x9c,0x1,0x10,0x1,0x6a,0x0,0xe7,0xff, +0xb4,0xff,0xb3,0xff,0xbc,0xff,0xde,0xff,0x40,0x0,0xb0,0x0, +0xdf,0x0,0xff,0x0,0x56,0x1,0xb7,0x1,0xe8,0x1,0xd9,0x1, +0x84,0x1,0xfd,0x0,0x52,0x0,0x8d,0xff,0xe3,0xfe,0x5f,0xfe, +0xd0,0xfd,0x29,0xfd,0x85,0xfc,0x1,0xfc,0xa5,0xfb,0x42,0xfb, +0xc5,0xfa,0x67,0xfa,0x53,0xfa,0x9e,0xfa,0x6b,0xfb,0xb9,0xfc, +0x98,0xfe,0x1a,0x1,0xe2,0x3,0x6d,0x6,0x70,0x8,0xb3,0x9, +0x2d,0xa,0xe2,0x9,0x5d,0x8,0x59,0x5,0x8e,0x1,0xd8,0xfd, +0x6e,0xfa,0x8a,0xf7,0xee,0xf5,0x3a,0xf6,0x1f,0xf8,0xb7,0xfa, +0x94,0xfd,0x8d,0x0,0xf4,0x2,0x48,0x4,0xd5,0x4,0xdf,0x4, +0x54,0x4,0x4b,0x3,0xee,0x1,0x71,0x0,0x42,0xff,0x64,0xfe, +0x76,0xfd,0xbd,0xfc,0xe0,0xfc,0xaa,0xfd,0x67,0xfe,0xeb,0xfe, +0x78,0xff,0xfd,0xff,0x3,0x0,0x77,0xff,0xe1,0xfe,0x65,0xfe, +0x8b,0xfd,0x8b,0xfc,0x2d,0xfc,0x77,0xfc,0xe0,0xfc,0x5c,0xfd, +0x11,0xfe,0xee,0xfe,0xe0,0xff,0xb0,0x0,0x1d,0x1,0x62,0x1, +0xc8,0x1,0x29,0x2,0x69,0x2,0x82,0x2,0x34,0x2,0xa8,0x1, +0x57,0x1,0x39,0x1,0x13,0x1,0xd9,0x0,0x5d,0x0,0xca,0xff, +0x99,0xff,0x75,0xff,0xee,0xfe,0x89,0xfe,0x9a,0xfe,0xde,0xfe, +0x58,0xff,0xe6,0xff,0x41,0x0,0xc5,0x0,0x90,0x1,0x7,0x2, +0xf2,0x1,0x92,0x1,0x1c,0x1,0xcc,0x0,0x87,0x0,0x1e,0x0, +0xe4,0xff,0xf3,0xff,0xfd,0xff,0xd,0x0,0x10,0x0,0xc8,0xff, +0x7d,0xff,0x61,0xff,0x1f,0xff,0x9c,0xfe,0x7,0xfe,0x9a,0xfd, +0x86,0xfd,0x7c,0xfd,0x46,0xfd,0x6e,0xfd,0xd,0xfe,0xa0,0xfe, +0x31,0xff,0xe8,0xff,0x70,0x0,0xc5,0x0,0x6,0x1,0xf6,0x0, +0xaa,0x0,0x80,0x0,0x6b,0x0,0x43,0x0,0x3e,0x0,0x84,0x0, +0xde,0x0,0x2c,0x1,0xa2,0x1,0x2c,0x2,0x51,0x2,0x14,0x2, +0xcf,0x1,0x77,0x1,0xfc,0x0,0x8b,0x0,0x14,0x0,0xab,0xff, +0x97,0xff,0x9b,0xff,0x7a,0xff,0x90,0xff,0xde,0xff,0x4,0x0, +0x25,0x0,0x67,0x0,0x97,0x0,0xee,0x0,0x8f,0x1,0x6,0x2, +0x4d,0x2,0x9e,0x2,0x9c,0x2,0x2d,0x2,0xa2,0x1,0xd1,0x0, +0xc7,0xff,0x1f,0xff,0xb4,0xfe,0x21,0xfe,0xdf,0xfd,0x24,0xfe, +0x89,0xfe,0x2,0xff,0x9b,0xff,0x3c,0x0,0xed,0x0,0x73,0x1, +0xb7,0x1,0x14,0x2,0x63,0x2,0x4e,0x2,0x16,0x2,0xb6,0x1, +0x4,0x1,0x7e,0x0,0x44,0x0,0xe4,0xff,0xa1,0xff,0xd1,0xff, +0xe,0x0,0x37,0x0,0x97,0x0,0xf,0x1,0x5a,0x1,0x89,0x1, +0xc7,0x1,0x4,0x2,0x7,0x2,0xd2,0x1,0x80,0x1,0x1,0x1, +0x77,0x0,0xfe,0xff,0x52,0xff,0x83,0xfe,0xf6,0xfd,0x6b,0xfd, +0x89,0xfc,0xb8,0xfb,0x3d,0xfb,0xc3,0xfa,0x30,0xfa,0xd8,0xf9, +0xfb,0xf9,0x98,0xfa,0xb3,0xfb,0x64,0xfd,0x95,0xff,0x8,0x2, +0xa1,0x4,0x2a,0x7,0x1a,0x9,0xb,0xa,0xf,0xa,0x35,0x9, +0x41,0x7,0x2f,0x4,0x97,0x0,0x13,0xfd,0xe0,0xf9,0x81,0xf7, +0xad,0xf6,0x80,0xf7,0x70,0xf9,0xfe,0xfb,0xd3,0xfe,0x71,0x1, +0x41,0x3,0x2d,0x4,0x87,0x4,0x51,0x4,0x7c,0x3,0x55,0x2, +0x1f,0x1,0x7,0x0,0x2d,0xff,0x5d,0xfe,0xa9,0xfd,0x9a,0xfd, +0x5,0xfe,0x6b,0xfe,0x2,0xff,0xd2,0xff,0x59,0x0,0x74,0x0, +0x2b,0x0,0x91,0xff,0xf9,0xfe,0x3f,0xfe,0x30,0xfd,0x76,0xfc, +0x7b,0xfc,0xdf,0xfc,0x6e,0xfd,0x13,0xfe,0xbc,0xfe,0x94,0xff, +0x76,0x0,0x1e,0x1,0x97,0x1,0xb9,0x1,0x77,0x1,0x60,0x1, +0x9a,0x1,0xb8,0x1,0x99,0x1,0x51,0x1,0x29,0x1,0x6e,0x1, +0xbd,0x1,0xb5,0x1,0x97,0x1,0x65,0x1,0xfe,0x0,0x8f,0x0, +0xf3,0xff,0x20,0xff,0xb5,0xfe,0xcf,0xfe,0x3,0xff,0x5d,0xff, +0xe0,0xff,0x4d,0x0,0xd3,0x0,0x72,0x1,0xba,0x1,0xb7,0x1, +0xa5,0x1,0x59,0x1,0xe1,0x0,0x8a,0x0,0x40,0x0,0xeb,0xff, +0xc9,0xff,0xe1,0xff,0xe2,0xff,0xb0,0xff,0x78,0xff,0x66,0xff, +0x5f,0xff,0x2a,0xff,0xc9,0xfe,0x65,0xfe,0xff,0xfd,0xa3,0xfd, +0x6e,0xfd,0x4e,0xfd,0x59,0xfd,0xcd,0xfd,0x74,0xfe,0xc,0xff, +0xd3,0xff,0xcc,0x0,0x79,0x1,0xb3,0x1,0xbd,0x1,0xb9,0x1, +0xb7,0x1,0xa4,0x1,0x59,0x1,0x3,0x1,0xe8,0x0,0xf3,0x0, +0xfc,0x0,0xfb,0x0,0xf6,0x0,0xf2,0x0,0xde,0x0,0xb0,0x0, +0x9c,0x0,0xb1,0x0,0xa5,0x0,0x70,0x0,0x5a,0x0,0x3e,0x0, +0xe3,0xff,0x98,0xff,0x7c,0xff,0x4c,0xff,0x42,0xff,0x9f,0xff, +0xe,0x0,0x76,0x0,0x11,0x1,0xc2,0x1,0x68,0x2,0xde,0x2, +0xd0,0x2,0x61,0x2,0xc7,0x1,0xc4,0x0,0xa5,0xff,0xd0,0xfe, +0xf4,0xfd,0x5d,0xfd,0x94,0xfd,0xed,0xfd,0x2d,0xfe,0xb,0xff, +0x13,0x0,0xac,0x0,0x59,0x1,0x4,0x2,0x31,0x2,0x48,0x2, +0x5b,0x2,0x12,0x2,0xa2,0x1,0x28,0x1,0x9a,0x0,0x40,0x0, +0xfc,0xff,0xa3,0xff,0x89,0xff,0x8a,0xff,0x6d,0xff,0xb4,0xff, +0x62,0x0,0xc4,0x0,0xda,0x0,0x12,0x1,0x3b,0x1,0xa,0x1, +0xd4,0x0,0xd0,0x0,0x93,0x0,0x1b,0x0,0xe8,0xff,0xbd,0xff, +0x3e,0xff,0xef,0xfe,0xc7,0xfe,0x2e,0xfe,0x73,0xfd,0xdc,0xfc, +0xb,0xfc,0x34,0xfb,0x91,0xfa,0xf2,0xf9,0xcf,0xf9,0x78,0xfa, +0x7d,0xfb,0xfe,0xfc,0x3a,0xff,0xbc,0x1,0x59,0x4,0xe7,0x6, +0xa9,0x8,0x78,0x9,0x89,0x9,0x8b,0x8,0x51,0x6,0x12,0x3, +0x59,0xff,0x1a,0xfc,0xa8,0xf9,0xbd,0xf7,0x4,0xf7,0x32,0xf8, +0x85,0xfa,0xfe,0xfc,0x72,0xff,0xc3,0x1,0x8e,0x3,0x72,0x4, +0x6e,0x4,0xf2,0x3,0x20,0x3,0xcd,0x1,0x5a,0x0,0x5b,0xff, +0xc6,0xfe,0x2d,0xfe,0x6e,0xfd,0x38,0xfd,0x17,0xfe,0x2b,0xff, +0xa5,0xff,0x34,0x0,0xfe,0x0,0xf9,0x0,0x2c,0x0,0x63,0xff, +0x83,0xfe,0x76,0xfd,0xaa,0xfc,0x24,0xfc,0xed,0xfb,0x5e,0xfc, +0x32,0xfd,0x2,0xfe,0x1,0xff,0x35,0x0,0x2f,0x1,0xc5,0x1, +0xfc,0x1,0xe3,0x1,0xa1,0x1,0x3c,0x1,0xbe,0x0,0x79,0x0, +0x69,0x0,0x3d,0x0,0x3a,0x0,0xc8,0x0,0x7e,0x1,0xe4,0x1, +0x18,0x2,0x27,0x2,0xe5,0x1,0x5a,0x1,0xa7,0x0,0xe8,0xff, +0x4f,0xff,0xfe,0xfe,0xf3,0xfe,0x1a,0xff,0x5c,0xff,0xc1,0xff, +0x50,0x0,0xe5,0x0,0x5d,0x1,0xa7,0x1,0xba,0x1,0xb8,0x1, +0x97,0x1,0x9,0x1,0x59,0x0,0x10,0x0,0xd5,0xff,0x56,0xff, +0x7,0xff,0xf4,0xfe,0xd5,0xfe,0xea,0xfe,0x17,0xff,0xf5,0xfe, +0xe2,0xfe,0x17,0xff,0xf7,0xfe,0x6f,0xfe,0x13,0xfe,0x3,0xfe, +0xee,0xfd,0xc7,0xfd,0xec,0xfd,0x94,0xfe,0x57,0xff,0xe0,0xff, +0x79,0x0,0x3e,0x1,0xd7,0x1,0x27,0x2,0x51,0x2,0x6a,0x2, +0x60,0x2,0xfb,0x1,0x59,0x1,0xf7,0x0,0xdc,0x0,0xaa,0x0, +0x58,0x0,0x11,0x0,0xe8,0xff,0xef,0xff,0x24,0x0,0x69,0x0, +0x93,0x0,0x99,0x0,0x9e,0x0,0x8e,0x0,0x31,0x0,0xc4,0xff, +0x92,0xff,0x65,0xff,0x2f,0xff,0x51,0xff,0xc8,0xff,0x3a,0x0, +0xbc,0x0,0xa4,0x1,0xa9,0x2,0xf,0x3,0xcb,0x2,0x6e,0x2, +0xf9,0x1,0xb,0x1,0xd3,0xff,0xc2,0xfe,0xfd,0xfd,0x7a,0xfd, +0x3f,0xfd,0x7a,0xfd,0x23,0xfe,0xca,0xfe,0x5a,0xff,0x21,0x0, +0x8,0x1,0xc1,0x1,0x2f,0x2,0x46,0x2,0x3e,0x2,0x2f,0x2, +0xb5,0x1,0xf2,0x0,0x7c,0x0,0x3b,0x0,0xfd,0xff,0xec,0xff, +0xdb,0xff,0xa5,0xff,0xa2,0xff,0xec,0xff,0x49,0x0,0x95,0x0, +0xbc,0x0,0xd1,0x0,0xd0,0x0,0x8d,0x0,0x4e,0x0,0x37,0x0, +0xdd,0xff,0x68,0xff,0x50,0xff,0x38,0xff,0xee,0xfe,0xd1,0xfe, +0xb2,0xfe,0x3d,0xfe,0xaf,0xfd,0x2a,0xfd,0x9a,0xfc,0x1,0xfc, +0x48,0xfb,0x8e,0xfa,0x50,0xfa,0xbb,0xfa,0xa8,0xfb,0x8,0xfd, +0xee,0xfe,0x62,0x1,0x13,0x4,0x53,0x6,0xd1,0x7,0xd4,0x8, +0x3f,0x9,0x6b,0x8,0x32,0x6,0x2f,0x3,0xe2,0xff,0x97,0xfc, +0xc1,0xf9,0xd4,0xf7,0x42,0xf7,0x46,0xf8,0x4f,0xfa,0x9a,0xfc, +0xc,0xff,0x67,0x1,0x6,0x3,0xd6,0x3,0x1a,0x4,0xbb,0x3, +0xcc,0x2,0xac,0x1,0x99,0x0,0xaa,0xff,0xc1,0xfe,0xec,0xfd, +0x86,0xfd,0x88,0xfd,0xdb,0xfd,0xc4,0xfe,0xd8,0xff,0x60,0x0, +0xae,0x0,0xe7,0x0,0x62,0x0,0x5d,0xff,0x82,0xfe,0x90,0xfd, +0x84,0xfc,0xf3,0xfb,0xea,0xfb,0x33,0xfc,0xcf,0xfc,0xa7,0xfd, +0xad,0xfe,0xda,0xff,0xe6,0x0,0xac,0x1,0x1b,0x2,0x7,0x2, +0xbf,0x1,0xaf,0x1,0x95,0x1,0x30,0x1,0xca,0x0,0x9e,0x0, +0xbc,0x0,0x1f,0x1,0x78,0x1,0x9d,0x1,0xae,0x1,0x9c,0x1, +0x46,0x1,0xbe,0x0,0x6,0x0,0x43,0xff,0xda,0xfe,0xd4,0xfe, +0xfc,0xfe,0x45,0xff,0x91,0xff,0xd4,0xff,0x55,0x0,0xf4,0x0, +0x39,0x1,0x2e,0x1,0x2e,0x1,0x4e,0x1,0x57,0x1,0xfb,0x0, +0x53,0x0,0xe2,0xff,0xb9,0xff,0x81,0xff,0x24,0xff,0xbe,0xfe, +0x99,0xfe,0xdf,0xfe,0x12,0xff,0xd5,0xfe,0xac,0xfe,0xcf,0xfe, +0xcc,0xfe,0x89,0xfe,0x41,0xfe,0x11,0xfe,0xfe,0xfd,0xf9,0xfd, +0x24,0xfe,0x9a,0xfe,0x2,0xff,0x4b,0xff,0xe1,0xff,0x93,0x0, +0xeb,0x0,0xc,0x1,0x3d,0x1,0x81,0x1,0x9e,0x1,0x52,0x1, +0xfe,0x0,0xb,0x1,0xf4,0x0,0x96,0x0,0x96,0x0,0xc9,0x0, +0xbe,0x0,0xcb,0x0,0xf4,0x0,0xe3,0x0,0xc8,0x0,0xa5,0x0, +0x57,0x0,0x38,0x0,0x50,0x0,0x1d,0x0,0xa5,0xff,0x6f,0xff, +0xad,0xff,0xd,0x0,0x52,0x0,0xbe,0x0,0x6e,0x1,0xa,0x2, +0x91,0x2,0xb,0x3,0xee,0x2,0x3d,0x2,0x94,0x1,0xe7,0x0, +0xf4,0xff,0x2,0xff,0x42,0xfe,0xd1,0xfd,0xe8,0xfd,0x4f,0xfe, +0xa7,0xfe,0xff,0xfe,0x6e,0xff,0xe9,0xff,0x69,0x0,0xd9,0x0, +0x44,0x1,0xac,0x1,0xc1,0x1,0x8b,0x1,0x60,0x1,0x13,0x1, +0x9c,0x0,0x79,0x0,0x78,0x0,0x3b,0x0,0x48,0x0,0x9d,0x0, +0x7d,0x0,0x54,0x0,0xad,0x0,0xc7,0x0,0x6f,0x0,0x6a,0x0, +0x92,0x0,0x86,0x0,0x96,0x0,0xaf,0x0,0x8a,0x0,0x6e,0x0, +0x53,0x0,0xfc,0xff,0xa5,0xff,0x60,0xff,0xf0,0xfe,0x5b,0xfe, +0xaf,0xfd,0xfa,0xfc,0x56,0xfc,0x99,0xfb,0xd1,0xfa,0x63,0xfa, +0x4b,0xfa,0x80,0xfa,0x51,0xfb,0xab,0xfc,0x74,0xfe,0xed,0x0, +0xb7,0x3,0x16,0x6,0xef,0x7,0x2f,0x9,0xa6,0x9,0x5b,0x9, +0xf0,0x7,0xd,0x5,0x8b,0x1,0x50,0xfe,0x42,0xfb,0x9d,0xf8, +0x57,0xf7,0xb8,0xf7,0x3a,0xf9,0x7e,0xfb,0x3b,0xfe,0xcb,0x0, +0x95,0x2,0xa1,0x3,0x1b,0x4,0xda,0x3,0xeb,0x2,0xc3,0x1, +0x9a,0x0,0x82,0xff,0xc0,0xfe,0x27,0xfe,0x62,0xfd,0x19,0xfd, +0xe0,0xfd,0xc7,0xfe,0x1d,0xff,0xa2,0xff,0x87,0x0,0xe7,0x0, +0x8f,0x0,0xe3,0xff,0x6,0xff,0x1c,0xfe,0x3e,0xfd,0x6e,0xfc, +0xff,0xfb,0x26,0xfc,0x97,0xfc,0x21,0xfd,0xf2,0xfd,0x5,0xff, +0x2,0x0,0xac,0x0,0x24,0x1,0x87,0x1,0x9f,0x1,0x91,0x1, +0xc3,0x1,0x4,0x2,0xf,0x2,0x23,0x2,0x43,0x2,0x49,0x2, +0x52,0x2,0x3a,0x2,0xd2,0x1,0x5c,0x1,0xdb,0x0,0x11,0x0, +0x2a,0xff,0x69,0xfe,0xdb,0xfd,0xc2,0xfd,0x4d,0xfe,0x25,0xff, +0xde,0xff,0x89,0x0,0x61,0x1,0x24,0x2,0x5d,0x2,0x22,0x2, +0xde,0x1,0x9d,0x1,0x30,0x1,0x91,0x0,0xee,0xff,0x67,0xff, +0x1,0xff,0xce,0xfe,0xbd,0xfe,0x9f,0xfe,0xb0,0xfe,0x1a,0xff, +0x63,0xff,0x70,0xff,0x97,0xff,0x8d,0xff,0x32,0xff,0xf1,0xfe, +0x9f,0xfe,0x18,0xfe,0xe2,0xfd,0xfc,0xfd,0x19,0xfe,0x6f,0xfe, +0xfe,0xfe,0x92,0xff,0x27,0x0,0x93,0x0,0xda,0x0,0x1c,0x1, +0x16,0x1,0xe7,0x0,0xd4,0x0,0x76,0x0,0xfa,0xff,0x6,0x0, +0x30,0x0,0x31,0x0,0x7a,0x0,0xb0,0x0,0x9a,0x0,0xd3,0x0, +0x29,0x1,0x28,0x1,0x21,0x1,0x5,0x1,0xa3,0x0,0x63,0x0, +0x54,0x0,0x30,0x0,0x3,0x0,0xe4,0xff,0x9,0x0,0x91,0x0, +0x8,0x1,0x59,0x1,0xe0,0x1,0x5d,0x2,0x8a,0x2,0x89,0x2, +0x4b,0x2,0xc8,0x1,0x16,0x1,0x29,0x0,0x47,0xff,0xc5,0xfe, +0x74,0xfe,0x49,0xfe,0x7c,0xfe,0xeb,0xfe,0x65,0xff,0xe0,0xff, +0x45,0x0,0xaf,0x0,0xd,0x1,0x12,0x1,0xfe,0x0,0x38,0x1, +0x6a,0x1,0x59,0x1,0x60,0x1,0x84,0x1,0x72,0x1,0x3c,0x1, +0xf,0x1,0xe0,0x0,0xc8,0x0,0xcf,0x0,0xb0,0x0,0x6c,0x0, +0x3b,0x0,0xfe,0xff,0xc4,0xff,0xe7,0xff,0x28,0x0,0x34,0x0, +0x6c,0x0,0xde,0x0,0x21,0x1,0x4e,0x1,0x6b,0x1,0x1b,0x1, +0xab,0x0,0x69,0x0,0xda,0xff,0xe1,0xfe,0xf,0xfe,0x62,0xfd, +0x81,0xfc,0x92,0xfb,0xc7,0xfa,0x8,0xfa,0x7d,0xf9,0x9c,0xf9, +0x6e,0xfa,0x89,0xfb,0x0,0xfd,0x3a,0xff,0x0,0x2,0xc2,0x4, +0x23,0x7,0xe2,0x8,0xf1,0x9,0x47,0xa,0x5b,0x9,0xe4,0x6, +0x7d,0x3,0xde,0xff,0x72,0xfc,0x91,0xf9,0x83,0xf7,0xc1,0xf6, +0xbf,0xf7,0xa,0xfa,0xcf,0xfc,0xb9,0xff,0x4e,0x2,0xea,0x3, +0xbb,0x4,0xe,0x5,0x8c,0x4,0x38,0x3,0xad,0x1,0x48,0x0, +0x3d,0xff,0x84,0xfe,0xa8,0xfd,0xe4,0xfc,0x8,0xfd,0xd3,0xfd, +0x8a,0xfe,0x4e,0xff,0x40,0x0,0xf2,0x0,0x24,0x1,0xe3,0x0, +0x65,0x0,0xdc,0xff,0x4,0xff,0xce,0xfd,0xe9,0xfc,0xa6,0xfc, +0xb9,0xfc,0xf9,0xfc,0x67,0xfd,0x1f,0xfe,0x14,0xff,0xc2,0xff, +0x24,0x0,0xb7,0x0,0x2e,0x1,0x47,0x1,0x91,0x1,0x13,0x2, +0x60,0x2,0xb1,0x2,0xf,0x3,0x1a,0x3,0xf2,0x2,0xbd,0x2, +0x4c,0x2,0x9c,0x1,0xb5,0x0,0x9f,0xff,0x92,0xfe,0xab,0xfd, +0x10,0xfd,0x5,0xfd,0x6c,0xfd,0x17,0xfe,0x25,0xff,0x73,0x0, +0xa7,0x1,0xae,0x2,0x64,0x3,0x76,0x3,0xf6,0x2,0x58,0x2, +0xbd,0x1,0xe4,0x0,0xd0,0xff,0xd2,0xfe,0x23,0xfe,0xd2,0xfd, +0xad,0xfd,0x89,0xfd,0xbe,0xfd,0x7a,0xfe,0x24,0xff,0x90,0xff, +0x6,0x0,0x38,0x0,0xf6,0xff,0x92,0xff,0x6,0xff,0x67,0xfe, +0x14,0xfe,0xe0,0xfd,0xc6,0xfd,0x1b,0xfe,0xa7,0xfe,0x47,0xff, +0x2d,0x0,0x8,0x1,0x9e,0x1,0x21,0x2,0x55,0x2,0x25,0x2, +0xe9,0x1,0x88,0x1,0xeb,0x0,0x5b,0x0,0xf9,0xff,0xe7,0xff, +0x19,0x0,0x24,0x0,0x1c,0x0,0x48,0x0,0x68,0x0,0x87,0x0, +0xdb,0x0,0xe,0x1,0x18,0x1,0x31,0x1,0x8,0x1,0xa4,0x0, +0x91,0x0,0xa6,0x0,0x85,0x0,0x96,0x0,0x28,0x1,0xba,0x1, +0xef,0x1,0xa,0x2,0x16,0x2,0xde,0x1,0x8f,0x1,0x16,0x1, +0x11,0x0,0xfe,0xfe,0x60,0xfe,0xd3,0xfd,0x7d,0xfd,0xc3,0xfd, +0x15,0xfe,0x6b,0xfe,0x4e,0xff,0x26,0x0,0x7d,0x0,0xdf,0x0, +0x3a,0x1,0x39,0x1,0x29,0x1,0x11,0x1,0xeb,0x0,0xf9,0x0, +0x8,0x1,0xf2,0x0,0xee,0x0,0xc9,0x0,0x6b,0x0,0x3e,0x0, +0x3d,0x0,0x23,0x0,0xfa,0xff,0xcc,0xff,0xa5,0xff,0xa6,0xff, +0xc3,0xff,0xe6,0xff,0x12,0x0,0x48,0x0,0x84,0x0,0xaf,0x0, +0xca,0x0,0xe8,0x0,0xde,0x0,0xa0,0x0,0x6b,0x0,0x23,0x0, +0x90,0xff,0xdd,0xfe,0x29,0xfe,0x7b,0xfd,0xd9,0xfc,0xc,0xfc, +0x1c,0xfb,0x75,0xfa,0x26,0xfa,0x9,0xfa,0x36,0xfa,0xde,0xfa, +0x3a,0xfc,0x48,0xfe,0xae,0x0,0x47,0x3,0xeb,0x5,0xf,0x8, +0x76,0x9,0x21,0xa,0xc3,0x9,0x33,0x8,0x7e,0x5,0xd3,0x1, +0xc,0xfe,0xda,0xfa,0x28,0xf8,0x7a,0xf6,0xbe,0xf6,0x97,0xf8, +0x1,0xfb,0xc6,0xfd,0xc2,0x0,0x2c,0x3,0x7f,0x4,0xfe,0x4, +0xed,0x4,0x38,0x4,0x3,0x3,0xa0,0x1,0x2f,0x0,0xe4,0xfe, +0xcb,0xfd,0xbf,0xfc,0x2b,0xfc,0x73,0xfc,0xe,0xfd,0xc1,0xfd, +0xe3,0xfe,0x18,0x0,0xd2,0x0,0x1e,0x1,0x4,0x1,0x93,0x0, +0xf5,0xff,0x1,0xff,0xfb,0xfd,0x71,0xfd,0x2e,0xfd,0xf9,0xfc, +0x21,0xfd,0x88,0xfd,0xee,0xfd,0x75,0xfe,0xfa,0xfe,0x58,0xff, +0xbb,0xff,0xa,0x0,0x58,0x0,0x11,0x1,0xfd,0x1,0x8d,0x2, +0xec,0x2,0x68,0x3,0xb9,0x3,0x8e,0x3,0x1,0x3,0x48,0x2, +0x51,0x1,0x15,0x0,0xd9,0xfe,0xbe,0xfd,0xb5,0xfc,0x19,0xfc, +0x69,0xfc,0x6a,0xfd,0x76,0xfe,0x73,0xff,0xb3,0x0,0xf,0x2, +0xf9,0x2,0x57,0x3,0x61,0x3,0x5,0x3,0x43,0x2,0x51,0x1, +0x39,0x0,0x2d,0xff,0x72,0xfe,0xda,0xfd,0x55,0xfd,0x3e,0xfd, +0x9b,0xfd,0x40,0xfe,0x1d,0xff,0xcd,0xff,0x18,0x0,0x4c,0x0, +0x43,0x0,0xae,0xff,0x7,0xff,0x7f,0xfe,0xaf,0xfd,0xe6,0xfc, +0xb7,0xfc,0xed,0xfc,0x51,0xfd,0x4,0xfe,0xf5,0xfe,0x2,0x0, +0x14,0x1,0x6,0x2,0xcc,0x2,0x32,0x3,0x3,0x3,0x90,0x2, +0x1c,0x2,0x6b,0x1,0x93,0x0,0xec,0xff,0x71,0xff,0x25,0xff, +0x1f,0xff,0x26,0xff,0x37,0xff,0x96,0xff,0x2b,0x0,0x96,0x0, +0xba,0x0,0xca,0x0,0xea,0x0,0xe9,0x0,0xc8,0x0,0xdb,0x0, +0x3,0x1,0xfc,0x0,0x22,0x1,0x96,0x1,0xe4,0x1,0x7,0x2, +0x3e,0x2,0x42,0x2,0xd4,0x1,0x24,0x1,0x55,0x0,0x44,0xff, +0xe,0xfe,0x53,0xfd,0x46,0xfd,0x59,0xfd,0x99,0xfd,0x78,0xfe, +0x81,0xff,0x3c,0x0,0xeb,0x0,0x8c,0x1,0xdc,0x1,0xde,0x1, +0xa2,0x1,0x70,0x1,0x73,0x1,0x47,0x1,0xe9,0x0,0xb2,0x0, +0x7a,0x0,0x30,0x0,0xff,0xff,0xd7,0xff,0xf8,0xff,0x5d,0x0, +0x64,0x0,0x3b,0x0,0x5d,0x0,0x78,0x0,0xa2,0x0,0xf1,0x0, +0xd7,0x0,0xbb,0x0,0x10,0x1,0xf1,0x0,0x71,0x0,0x77,0x0, +0x66,0x0,0xd7,0xff,0x97,0xff,0x79,0xff,0x5,0xff,0x9e,0xfe, +0x34,0xfe,0x8d,0xfd,0x3,0xfd,0x97,0xfc,0x2,0xfc,0x66,0xfb, +0xf6,0xfa,0xc1,0xfa,0xd3,0xfa,0x43,0xfb,0x22,0xfc,0x6a,0xfd, +0x4f,0xff,0xf4,0x1,0x92,0x4,0x87,0x6,0x15,0x8,0x14,0x9, +0x2d,0x9,0x92,0x8,0xd7,0x6,0xad,0x3,0x26,0x0,0xf1,0xfc, +0xe4,0xf9,0x91,0xf7,0xbc,0xf6,0x82,0xf7,0x9e,0xf9,0x4b,0xfc, +0xe,0xff,0xdc,0x1,0xf3,0x3,0xc6,0x4,0xef,0x4,0xb1,0x4, +0xd9,0x3,0xab,0x2,0x4f,0x1,0xee,0xff,0xba,0xfe,0x60,0xfd, +0x30,0xfc,0xfe,0xfb,0x69,0xfc,0xfb,0xfc,0x13,0xfe,0x68,0xff, +0x82,0x0,0x5e,0x1,0x93,0x1,0x35,0x1,0xd8,0x0,0xf4,0xff, +0x87,0xfe,0xd5,0xfd,0xc0,0xfd,0x52,0xfd,0xfe,0xfc,0x41,0xfd, +0xd8,0xfd,0x9c,0xfe,0x3a,0xff,0x82,0xff,0xd6,0xff,0x2e,0x0, +0x54,0x0,0x98,0x0,0xf,0x1,0x94,0x1,0x19,0x2,0x5b,0x2, +0x67,0x2,0xa2,0x2,0xcc,0x2,0x90,0x2,0x1e,0x2,0x73,0x1, +0x84,0x0,0x7b,0xff,0x58,0xfe,0x7d,0xfd,0x63,0xfd,0xa5,0xfd, +0x0,0xfe,0xc8,0xfe,0xc3,0xff,0x9f,0x0,0x7b,0x1,0x1c,0x2, +0x58,0x2,0x6f,0x2,0x3e,0x2,0xae,0x1,0x9,0x1,0x2d,0x0, +0x2a,0xff,0x7b,0xfe,0xf0,0xfd,0x7d,0xfd,0xcb,0xfd,0x9a,0xfe, +0x42,0xff,0x10,0x0,0xf6,0x0,0x45,0x1,0x1c,0x1,0xde,0x0, +0x53,0x0,0x59,0xff,0x27,0xfe,0xd,0xfd,0x53,0xfc,0xec,0xfb, +0xd0,0xfb,0x3a,0xfc,0x1a,0xfd,0x52,0xfe,0xe7,0xff,0x66,0x1, +0x7d,0x2,0x6f,0x3,0x13,0x4,0xe,0x4,0xb1,0x3,0x15,0x3, +0xf7,0x1,0xb7,0x0,0xcc,0xff,0x5,0xff,0x46,0xfe,0xdc,0xfd, +0x0,0xfe,0x94,0xfe,0x49,0xff,0x5,0x0,0xad,0x0,0xed,0x0, +0xe8,0x0,0xd,0x1,0x33,0x1,0x28,0x1,0x2b,0x1,0x2c,0x1, +0x13,0x1,0x27,0x1,0x57,0x1,0x6d,0x1,0xa7,0x1,0x6,0x2, +0x31,0x2,0x11,0x2,0x9d,0x1,0xd0,0x0,0xe0,0xff,0xfc,0xfe, +0x49,0xfe,0xf9,0xfd,0x1,0xfe,0x46,0xfe,0xcb,0xfe,0x64,0xff, +0xe9,0xff,0x65,0x0,0xd8,0x0,0x55,0x1,0xc6,0x1,0xc7,0x1, +0x90,0x1,0x9e,0x1,0x8c,0x1,0xff,0x0,0x77,0x0,0x25,0x0, +0xce,0xff,0x81,0xff,0x47,0xff,0x37,0xff,0x82,0xff,0xe2,0xff, +0x3e,0x0,0xeb,0x0,0x88,0x1,0xa8,0x1,0xb9,0x1,0xc4,0x1, +0x79,0x1,0x30,0x1,0xf9,0x0,0x7b,0x0,0x6,0x0,0xd3,0xff, +0x9a,0xff,0x73,0xff,0x6e,0xff,0x46,0xff,0xc,0xff,0xbd,0xfe, +0x1f,0xfe,0x7a,0xfd,0xfc,0xfc,0x45,0xfc,0x50,0xfb,0x8e,0xfa, +0x50,0xfa,0xa0,0xfa,0x49,0xfb,0x50,0xfc,0x11,0xfe,0x6c,0x0, +0xe4,0x2,0x43,0x5,0x3f,0x7,0x81,0x8,0xa,0x9,0xd1,0x8, +0xb6,0x7,0xb4,0x5,0xce,0x2,0x7d,0xff,0x80,0xfc,0xf7,0xf9, +0x15,0xf8,0xb4,0xf7,0xfe,0xf8,0x1f,0xfb,0x86,0xfd,0x9,0x0, +0x57,0x2,0xe8,0x3,0x84,0x4,0x94,0x4,0x55,0x4,0x6e,0x3, +0x1f,0x2,0x3,0x1,0xe1,0xff,0x95,0xfe,0x90,0xfd,0xd2,0xfc, +0x78,0xfc,0x4,0xfd,0x10,0xfe,0xb,0xff,0x47,0x0,0x78,0x1, +0xc8,0x1,0x77,0x1,0xfc,0x0,0x1e,0x0,0xe,0xff,0x30,0xfe, +0x60,0xfd,0xb5,0xfc,0x80,0xfc,0xa6,0xfc,0x1b,0xfd,0xe5,0xfd, +0x9f,0xfe,0x35,0xff,0xfb,0xff,0xb7,0x0,0x11,0x1,0x57,0x1, +0xb6,0x1,0xf9,0x1,0x23,0x2,0x32,0x2,0x4,0x2,0xdc,0x1, +0xe6,0x1,0xcd,0x1,0x67,0x1,0xe5,0x0,0x65,0x0,0xee,0xff, +0x71,0xff,0xe5,0xfe,0x87,0xfe,0x7f,0xfe,0xa9,0xfe,0x12,0xff, +0xc1,0xff,0x63,0x0,0xcd,0x0,0x30,0x1,0x97,0x1,0xee,0x1, +0x22,0x2,0x6,0x2,0x9e,0x1,0x27,0x1,0x90,0x0,0xb5,0xff, +0xee,0xfe,0x90,0xfe,0x73,0xfe,0x73,0xfe,0xb8,0xfe,0x51,0xff, +0x11,0x0,0xcc,0x0,0x54,0x1,0x90,0x1,0x9b,0x1,0x64,0x1, +0xa6,0x0,0x80,0xff,0x47,0xfe,0x2a,0xfd,0x67,0xfc,0x3b,0xfc, +0x8b,0xfc,0x42,0xfd,0x4d,0xfe,0x65,0xff,0x8d,0x0,0xf8,0x1, +0x44,0x3,0xf8,0x3,0x43,0x4,0x48,0x4,0xd3,0x3,0xe4,0x2, +0xa7,0x1,0x5d,0x0,0x59,0xff,0xa1,0xfe,0x1f,0xfe,0x2,0xfe, +0x4c,0xfe,0xdd,0xfe,0xb1,0xff,0x6c,0x0,0xb1,0x0,0xd2,0x0, +0x13,0x1,0x3a,0x1,0x3a,0x1,0x28,0x1,0xfe,0x0,0xf0,0x0, +0x4,0x1,0xfc,0x0,0xf3,0x0,0x1e,0x1,0x69,0x1,0xbc,0x1, +0xce,0x1,0x67,0x1,0x6,0x1,0xe6,0x0,0x79,0x0,0xc2,0xff, +0x51,0xff,0x31,0xff,0x37,0xff,0x4e,0xff,0x45,0xff,0x2f,0xff, +0x47,0xff,0x7d,0xff,0xc0,0xff,0x20,0x0,0x93,0x0,0xb,0x1, +0x5b,0x1,0x63,0x1,0x65,0x1,0x6f,0x1,0x1c,0x1,0x80,0x0, +0x17,0x0,0xee,0xff,0xbe,0xff,0x7c,0xff,0x5e,0xff,0x8f,0xff, +0xeb,0xff,0x43,0x0,0x9e,0x0,0xf3,0x0,0x3d,0x1,0x78,0x1, +0x5d,0x1,0xf2,0x0,0xa7,0x0,0x7f,0x0,0x53,0x0,0x44,0x0, +0x26,0x0,0xe2,0xff,0xe2,0xff,0xf5,0xff,0x91,0xff,0xc,0xff, +0x96,0xfe,0xa0,0xfd,0x43,0xfc,0x21,0xfb,0x48,0xfa,0x9e,0xf9, +0x51,0xf9,0x7f,0xf9,0x5b,0xfa,0xa,0xfc,0x56,0xfe,0x16,0x1, +0xa,0x4,0x8c,0x6,0x57,0x8,0x7d,0x9,0x9f,0x9,0x88,0x8, +0x86,0x6,0x95,0x3,0x9,0x0,0xe4,0xfc,0x4f,0xfa,0x1e,0xf8, +0x56,0xf7,0x73,0xf8,0x7d,0xfa,0xec,0xfc,0x9f,0xff,0xdb,0x1, +0x4b,0x3,0xd,0x4,0xf6,0x3,0x48,0x3,0x5f,0x2,0x6,0x1, +0x9a,0xff,0xb9,0xfe,0xf9,0xfd,0x18,0xfd,0xba,0xfc,0x1e,0xfd, +0x7,0xfe,0x43,0xff,0x75,0x0,0x70,0x1,0x46,0x2,0x8c,0x2, +0xe7,0x1,0xd0,0x0,0xc2,0xff,0x7b,0xfe,0xc4,0xfc,0x56,0xfb, +0xf6,0xfa,0x3e,0xfb,0x9f,0xfb,0x7a,0xfc,0xdd,0xfd,0x20,0xff, +0x24,0x0,0x21,0x1,0xd4,0x1,0x8,0x2,0xfd,0x1,0xf9,0x1, +0xf1,0x1,0xbd,0x1,0x92,0x1,0xab,0x1,0xc5,0x1,0xb3,0x1, +0xa2,0x1,0x7d,0x1,0xd,0x1,0x5e,0x0,0x98,0xff,0xfd,0xfe, +0x86,0xfe,0xf3,0xfd,0xa5,0xfd,0x1c,0xfe,0xe2,0xfe,0x93,0xff, +0x61,0x0,0x33,0x1,0xdb,0x1,0x5c,0x2,0x80,0x2,0x48,0x2, +0xff,0x1,0x85,0x1,0xbd,0x0,0xe0,0xff,0x6,0xff,0x5a,0xfe, +0x14,0xfe,0x1e,0xfe,0x79,0xfe,0x13,0xff,0x82,0xff,0xe0,0xff, +0x7a,0x0,0xce,0x0,0xa1,0x0,0x75,0x0,0x32,0x0,0x81,0xff, +0xbe,0xfe,0x19,0xfe,0x5f,0xfd,0xd9,0xfc,0xc0,0xfc,0xde,0xfc, +0x59,0xfd,0x60,0xfe,0x6d,0xff,0x29,0x0,0xd6,0x0,0x7e,0x1, +0xfe,0x1,0x5f,0x2,0x82,0x2,0x5d,0x2,0x27,0x2,0xcf,0x1, +0x4e,0x1,0xea,0x0,0x7b,0x0,0xd5,0xff,0x6a,0xff,0x53,0xff, +0x27,0xff,0x17,0xff,0x6c,0xff,0xc7,0xff,0xdb,0xff,0xd0,0xff, +0xdd,0xff,0xb,0x0,0x41,0x0,0x89,0x0,0xee,0x0,0x43,0x1, +0x85,0x1,0xc9,0x1,0xd5,0x1,0xa7,0x1,0x76,0x1,0x38,0x1, +0xef,0x0,0xb7,0x0,0x79,0x0,0x47,0x0,0x16,0x0,0xa2,0xff, +0x46,0xff,0x5a,0xff,0x5c,0xff,0x41,0xff,0x72,0xff,0xa0,0xff, +0xa9,0xff,0xd7,0xff,0xdb,0xff,0xaf,0xff,0xe5,0xff,0x5a,0x0, +0xaf,0x0,0xf0,0x0,0xfa,0x0,0xdf,0x0,0xf6,0x0,0x4,0x1, +0xd9,0x0,0xd1,0x0,0xd7,0x0,0x86,0x0,0xd,0x0,0xda,0xff, +0xde,0xff,0xbc,0xff,0x83,0xff,0xac,0xff,0x23,0x0,0x6d,0x0, +0x9e,0x0,0xef,0x0,0x26,0x1,0x27,0x1,0x15,0x1,0xf9,0x0, +0xd8,0x0,0x9e,0x0,0x21,0x0,0x8a,0xff,0x29,0xff,0xdf,0xfe, +0x40,0xfe,0x3e,0xfd,0x37,0xfc,0x47,0xfb,0x55,0xfa,0x9c,0xf9, +0x40,0xf9,0x3f,0xf9,0xef,0xf9,0x62,0xfb,0x5c,0xfd,0xe,0x0, +0x3f,0x3,0x5,0x6,0x26,0x8,0xbc,0x9,0x4b,0xa,0x99,0x9, +0xaf,0x7,0x7f,0x4,0xc3,0x0,0x66,0xfd,0x6c,0xfa,0xa,0xf8, +0x1e,0xf7,0x9,0xf8,0x3b,0xfa,0xcd,0xfc,0x54,0xff,0xc7,0x1, +0x89,0x3,0xd,0x4,0xce,0x3,0x27,0x3,0xf3,0x1,0x70,0x0, +0xee,0xfe,0x9b,0xfd,0xd6,0xfc,0x8f,0xfc,0xa1,0xfc,0x69,0xfd, +0xb7,0xfe,0xf2,0xff,0x2a,0x1,0x4e,0x2,0xd7,0x2,0xae,0x2, +0xec,0x1,0xa8,0x0,0x32,0xff,0x98,0xfd,0xde,0xfb,0x84,0xfa, +0x6,0xfa,0x6e,0xfa,0x67,0xfb,0x8b,0xfc,0xfb,0xfd,0xaf,0xff, +0xfa,0x0,0xb2,0x1,0x15,0x2,0xf1,0x1,0x7d,0x1,0x44,0x1, +0x18,0x1,0xee,0x0,0x13,0x1,0x40,0x1,0x59,0x1,0xab,0x1, +0xe7,0x1,0xba,0x1,0x54,0x1,0xaa,0x0,0xae,0xff,0xa6,0xfe, +0xc6,0xfd,0x46,0xfd,0x55,0xfd,0xd5,0xfd,0xaa,0xfe,0xae,0xff, +0xac,0x0,0xc5,0x1,0xcd,0x2,0x30,0x3,0xe5,0x2,0x3c,0x2, +0x46,0x1,0x2d,0x0,0x6,0xff,0xd9,0xfd,0x2d,0xfd,0x41,0xfd, +0xa0,0xfd,0x2b,0xfe,0x1b,0xff,0x37,0x0,0x33,0x1,0xdf,0x1, +0x0,0x2,0x97,0x1,0xd0,0x0,0xc7,0xff,0xac,0xfe,0x9f,0xfd, +0xb4,0xfc,0x2f,0xfc,0x14,0xfc,0x1f,0xfc,0x87,0xfc,0x96,0xfd, +0xd5,0xfe,0xc4,0xff,0x9b,0x0,0x73,0x1,0xdf,0x1,0xde,0x1, +0xda,0x1,0xb3,0x1,0x23,0x1,0xa1,0x0,0xa2,0x0,0xcf,0x0, +0xbf,0x0,0xa0,0x0,0xb7,0x0,0xee,0x0,0xf7,0x0,0xae,0x0, +0x47,0x0,0x1,0x0,0xc2,0xff,0x5c,0xff,0x1b,0xff,0x45,0xff, +0x73,0xff,0x84,0xff,0xf,0x0,0xb,0x1,0xc1,0x1,0x30,0x2, +0x93,0x2,0x9f,0x2,0x46,0x2,0xb5,0x1,0xe2,0x0,0x1c,0x0, +0xc5,0xff,0x8f,0xff,0x3f,0xff,0x23,0xff,0x4e,0xff,0x6a,0xff, +0x60,0xff,0x72,0xff,0xb8,0xff,0xec,0xff,0xfd,0xff,0x28,0x0, +0x64,0x0,0x8b,0x0,0xa4,0x0,0x84,0x0,0x2f,0x0,0x3,0x0, +0xff,0xff,0xf5,0xff,0x1e,0x0,0x70,0x0,0xad,0x0,0xe4,0x0, +0x15,0x1,0x2d,0x1,0x3c,0x1,0x1d,0x1,0xc7,0x0,0x76,0x0, +0xc,0x0,0x87,0xff,0x56,0xff,0x73,0xff,0x93,0xff,0xd8,0xff, +0x45,0x0,0xae,0x0,0x15,0x1,0x64,0x1,0x93,0x1,0xaf,0x1, +0x5f,0x1,0x99,0x0,0x2,0x0,0xa3,0xff,0x7,0xff,0x5d,0xfe, +0xdf,0xfd,0x4d,0xfd,0x95,0xfc,0xcf,0xfb,0xf9,0xfa,0x44,0xfa, +0xe0,0xf9,0xc7,0xf9,0x1c,0xfa,0x8,0xfb,0x8d,0xfc,0xc6,0xfe, +0xa2,0x1,0x93,0x4,0x27,0x7,0x2f,0x9,0x52,0xa,0x5d,0xa, +0x5b,0x9,0x1a,0x7,0xb5,0x3,0x5,0x0,0xa1,0xfc,0xb6,0xf9, +0xdb,0xf7,0x95,0xf7,0xaf,0xf8,0xc3,0xfa,0x6d,0xfd,0x3b,0x0, +0xbf,0x2,0x64,0x4,0xd5,0x4,0x7e,0x4,0xaa,0x3,0x32,0x2, +0x75,0x0,0x9,0xff,0xe7,0xfd,0xe4,0xfc,0x38,0xfc,0x54,0xfc, +0x5a,0xfd,0xb9,0xfe,0xe9,0xff,0x16,0x1,0x38,0x2,0xc0,0x2, +0x7b,0x2,0xab,0x1,0x8f,0x0,0x4a,0xff,0xcb,0xfd,0x45,0xfc, +0x5b,0xfb,0x32,0xfb,0x5b,0xfb,0xc9,0xfb,0xad,0xfc,0xd5,0xfd, +0xe8,0xfe,0xc9,0xff,0x8c,0x0,0x39,0x1,0xaf,0x1,0xe7,0x1, +0x2,0x2,0x27,0x2,0x5c,0x2,0x80,0x2,0x7b,0x2,0x71,0x2, +0x5b,0x2,0xf7,0x1,0x4a,0x1,0x7f,0x0,0x9c,0xff,0xc1,0xfe, +0xf,0xfe,0x94,0xfd,0x92,0xfd,0x3f,0xfe,0x5e,0xff,0x89,0x0, +0x83,0x1,0x5b,0x2,0x1b,0x3,0x6a,0x3,0x4,0x3,0x23,0x2, +0x9,0x1,0xd3,0xff,0xaa,0xfe,0xbf,0xfd,0x58,0xfd,0x97,0xfd, +0x30,0xfe,0xf9,0xfe,0x12,0x0,0x49,0x1,0x47,0x2,0xdb,0x2, +0xd6,0x2,0x3f,0x2,0x4b,0x1,0x15,0x0,0xd9,0xfe,0xbd,0xfd, +0xa6,0xfc,0xe9,0xfb,0xe0,0xfb,0x2c,0xfc,0x9b,0xfc,0x83,0xfd, +0xdd,0xfe,0x47,0x0,0x68,0x1,0x9,0x2,0x61,0x2,0xa4,0x2, +0x9f,0x2,0x42,0x2,0xac,0x1,0xee,0x0,0x59,0x0,0x18,0x0, +0xdd,0xff,0xb5,0xff,0xf4,0xff,0x50,0x0,0x64,0x0,0x4e,0x0, +0x29,0x0,0xe2,0xff,0xa5,0xff,0x99,0xff,0x8f,0xff,0x86,0xff, +0xea,0xff,0xc5,0x0,0xa1,0x1,0x5a,0x2,0xf1,0x2,0x31,0x3, +0x10,0x3,0xab,0x2,0xe9,0x1,0xcf,0x0,0xae,0xff,0xe3,0xfe, +0x97,0xfe,0x88,0xfe,0x93,0xfe,0xe9,0xfe,0x64,0xff,0xc0,0xff, +0x8,0x0,0x22,0x0,0x20,0x0,0x56,0x0,0x79,0x0,0x73,0x0, +0xc6,0x0,0x8,0x1,0xba,0x0,0x8b,0x0,0x94,0x0,0x62,0x0, +0x70,0x0,0xd0,0x0,0xec,0x0,0x4,0x1,0x40,0x1,0x40,0x1, +0x41,0x1,0x4f,0x1,0x14,0x1,0xd7,0x0,0xb5,0x0,0x73,0x0, +0x58,0x0,0x5b,0x0,0x25,0x0,0x16,0x0,0x5d,0x0,0x9b,0x0, +0xd8,0x0,0x15,0x1,0x1d,0x1,0x28,0x1,0x59,0x1,0x6a,0x1, +0x39,0x1,0xd0,0x0,0x4a,0x0,0xc0,0xff,0x2d,0xff,0xaf,0xfe, +0x4a,0xfe,0xb8,0xfd,0x10,0xfd,0x7b,0xfc,0xbd,0xfb,0xfb,0xfa, +0x8a,0xfa,0x3e,0xfa,0x26,0xfa,0x8e,0xfa,0x7b,0xfb,0x24,0xfd, +0xa8,0xff,0x7b,0x2,0x27,0x5,0x79,0x7,0x22,0x9,0xff,0x9, +0xdc,0x9,0x6a,0x8,0xec,0x5,0xd6,0x2,0x6b,0xff,0x25,0xfc, +0x79,0xf9,0xbc,0xf7,0x82,0xf7,0xdf,0xf8,0x3c,0xfb,0x16,0xfe, +0xf3,0x0,0x6c,0x3,0x31,0x5,0xbb,0x5,0x26,0x5,0x43,0x4, +0xea,0x2,0xc2,0x0,0xe0,0xfe,0xe2,0xfd,0x8,0xfd,0x45,0xfc, +0x52,0xfc,0x44,0xfd,0xa7,0xfe,0xb,0x0,0x43,0x1,0x57,0x2, +0xf4,0x2,0xbd,0x2,0xf6,0x1,0xf0,0x0,0xba,0xff,0x6f,0xfe, +0x27,0xfd,0x15,0xfc,0x87,0xfb,0x74,0xfb,0xb4,0xfb,0x5d,0xfc, +0x4e,0xfd,0x4d,0xfe,0x60,0xff,0x65,0x0,0x26,0x1,0xcc,0x1, +0x73,0x2,0xf1,0x2,0x2e,0x3,0x44,0x3,0x33,0x3,0xe8,0x2, +0x7a,0x2,0x11,0x2,0x85,0x1,0xb4,0x0,0xe0,0xff,0x33,0xff, +0x90,0xfe,0x19,0xfe,0xed,0xfd,0x25,0xfe,0xf,0xff,0x61,0x0, +0x4b,0x1,0xde,0x1,0x83,0x2,0xc3,0x2,0x64,0x2,0xe3,0x1, +0x34,0x1,0x2f,0x0,0x5a,0xff,0xe8,0xfe,0x86,0xfe,0x56,0xfe, +0xa6,0xfe,0x49,0xff,0x1,0x0,0xb7,0x0,0x5b,0x1,0xf9,0x1, +0x4b,0x2,0xdc,0x1,0xfc,0x0,0x4c,0x0,0x8b,0xff,0x64,0xfe, +0x58,0xfd,0xb2,0xfc,0x3c,0xfc,0x13,0xfc,0x56,0xfc,0xdd,0xfc, +0xb5,0xfd,0xd8,0xfe,0xf7,0xff,0x3,0x1,0xf0,0x1,0x7f,0x2, +0xc7,0x2,0xe7,0x2,0xad,0x2,0x30,0x2,0xb8,0x1,0x31,0x1, +0x93,0x0,0x5,0x0,0x9d,0xff,0x68,0xff,0x44,0xff,0x5,0xff, +0xd1,0xfe,0xbb,0xfe,0xb9,0xfe,0x3,0xff,0x9a,0xff,0x38,0x0, +0xf1,0x0,0xc6,0x1,0x80,0x2,0x29,0x3,0x9e,0x3,0x8c,0x3, +0x3b,0x3,0xc6,0x2,0xd5,0x1,0xc1,0x0,0xed,0xff,0x9,0xff, +0x53,0xfe,0x55,0xfe,0x9b,0xfe,0xb8,0xfe,0xee,0xfe,0x35,0xff, +0x6b,0xff,0xa8,0xff,0xba,0xff,0xaf,0xff,0xfa,0xff,0x65,0x0, +0x7c,0x0,0x82,0x0,0xa6,0x0,0x9e,0x0,0x82,0x0,0xa3,0x0, +0xe0,0x0,0xfc,0x0,0xfc,0x0,0xf0,0x0,0xd9,0x0,0xaa,0x0, +0x54,0x0,0x6,0x0,0xf4,0xff,0xe,0x0,0x39,0x0,0x84,0x0, +0xe9,0x0,0x39,0x1,0x54,0x1,0x4c,0x1,0x41,0x1,0x23,0x1, +0xd6,0x0,0x83,0x0,0x59,0x0,0x41,0x0,0x2d,0x0,0x38,0x0, +0x4f,0x0,0x55,0x0,0x62,0x0,0x68,0x0,0x3c,0x0,0xfa,0xff, +0xb8,0xff,0x2a,0xff,0x4f,0xfe,0x7f,0xfd,0xa2,0xfc,0x82,0xfb, +0x88,0xfa,0xfa,0xf9,0xb3,0xf9,0xef,0xf9,0xce,0xfa,0xf6,0xfb, +0x9e,0xfd,0x23,0x0,0xd6,0x2,0x15,0x5,0x15,0x7,0xa6,0x8, +0x29,0x9,0x95,0x8,0x21,0x7,0xdc,0x4,0xfb,0x1,0xde,0xfe, +0xfd,0xfb,0xb5,0xf9,0x33,0xf8,0xee,0xf7,0x52,0xf9,0xc9,0xfb, +0x6a,0xfe,0x11,0x1,0x87,0x3,0xfa,0x4,0x37,0x5,0xc6,0x4, +0xc9,0x3,0x23,0x2,0x4e,0x0,0xd4,0xfe,0xc1,0xfd,0x11,0xfd, +0xcd,0xfc,0xf2,0xfc,0xc4,0xfd,0x35,0xff,0x7f,0x0,0x50,0x1, +0x5,0x2,0x7c,0x2,0x30,0x2,0x37,0x1,0x1e,0x0,0x23,0xff, +0x4,0xfe,0xa8,0xfc,0xac,0xfb,0x6c,0xfb,0x82,0xfb,0xcb,0xfb, +0x6d,0xfc,0x3b,0xfd,0x23,0xfe,0xa,0xff,0x93,0xff,0x10,0x0, +0xf0,0x0,0xaf,0x1,0x17,0x2,0xa0,0x2,0x12,0x3,0xb,0x3, +0xce,0x2,0x7d,0x2,0xf4,0x1,0x4a,0x1,0x83,0x0,0x95,0xff, +0xb7,0xfe,0x13,0xfe,0xab,0xfd,0x84,0xfd,0xad,0xfd,0x41,0xfe, +0x42,0xff,0x5a,0x0,0x2c,0x1,0xb7,0x1,0x1c,0x2,0x42,0x2, +0xff,0x1,0x5f,0x1,0x9a,0x0,0xf0,0xff,0x70,0xff,0xe9,0xfe, +0x77,0xfe,0x78,0xfe,0xd8,0xfe,0x58,0xff,0x16,0x0,0xdd,0x0, +0x4e,0x1,0x96,0x1,0xab,0x1,0x15,0x1,0x17,0x0,0x46,0xff, +0x76,0xfe,0x67,0xfd,0x69,0xfc,0xe8,0xfb,0xea,0xfb,0x20,0xfc, +0xa3,0xfc,0xb3,0xfd,0xe4,0xfe,0xde,0xff,0xf3,0x0,0xfd,0x1, +0x9f,0x2,0x8,0x3,0x24,0x3,0xcd,0x2,0x68,0x2,0xdf,0x1, +0xf4,0x0,0x46,0x0,0x6,0x0,0x9c,0xff,0x20,0xff,0xf9,0xfe, +0xec,0xfe,0xe1,0xfe,0x10,0xff,0x5d,0xff,0xab,0xff,0x25,0x0, +0xd2,0x0,0x66,0x1,0xcc,0x1,0x3c,0x2,0xa7,0x2,0xe0,0x2, +0x0,0x3,0xec,0x2,0x71,0x2,0xe2,0x1,0x5f,0x1,0x9d,0x0, +0xcf,0xff,0x5e,0xff,0x1c,0xff,0xd7,0xfe,0xae,0xfe,0xae,0xfe, +0xbe,0xfe,0xc7,0xfe,0xe3,0xfe,0x37,0xff,0x90,0xff,0xcf,0xff, +0x22,0x0,0x80,0x0,0xcd,0x0,0x2,0x1,0xf1,0x0,0xc0,0x0, +0xd5,0x0,0xec,0x0,0xb3,0x0,0x60,0x0,0x18,0x0,0xe5,0xff, +0xd7,0xff,0xc8,0xff,0xd6,0xff,0x29,0x0,0x64,0x0,0x8d,0x0, +0x2,0x1,0x75,0x1,0xaa,0x1,0xc6,0x1,0x95,0x1,0x31,0x1, +0xf9,0x0,0x92,0x0,0xee,0xff,0xb6,0xff,0xce,0xff,0xbb,0xff, +0xc1,0xff,0x9,0x0,0x53,0x0,0x90,0x0,0xba,0x0,0xcd,0x0, +0xc7,0x0,0x64,0x0,0x91,0xff,0x9e,0xfe,0x94,0xfd,0x5a,0xfc, +0x35,0xfb,0x66,0xfa,0xee,0xf9,0xd6,0xf9,0x25,0xfa,0xcb,0xfa, +0xcb,0xfb,0x42,0xfd,0x42,0xff,0xa8,0x1,0x23,0x4,0x46,0x6, +0xac,0x7,0x44,0x8,0x3b,0x8,0x63,0x7,0x7b,0x5,0xc5,0x2, +0xb0,0xff,0xa2,0xfc,0x24,0xfa,0x8f,0xf8,0x5,0xf8,0xd9,0xf8, +0xfe,0xfa,0xad,0xfd,0x43,0x0,0x80,0x2,0xf6,0x3,0x59,0x4, +0xed,0x3,0x13,0x3,0xd5,0x1,0x42,0x0,0xce,0xfe,0xdd,0xfd, +0x55,0xfd,0x1f,0xfd,0x70,0xfd,0x36,0xfe,0x41,0xff,0x93,0x0, +0xc4,0x1,0x4c,0x2,0x50,0x2,0xfb,0x1,0xe,0x1,0xbd,0xff, +0x77,0xfe,0x30,0xfd,0xdd,0xfb,0xf1,0xfa,0xc7,0xfa,0x1e,0xfb, +0x98,0xfb,0x63,0xfc,0x95,0xfd,0xa4,0xfe,0x67,0xff,0x25,0x0, +0xaf,0x0,0x5,0x1,0x97,0x1,0x28,0x2,0x61,0x2,0x9f,0x2, +0xd7,0x2,0xa5,0x2,0x47,0x2,0xe5,0x1,0x43,0x1,0x83,0x0, +0xc2,0xff,0xf1,0xfe,0x4b,0xfe,0xfc,0xfd,0xd5,0xfd,0xd4,0xfd, +0x2d,0xfe,0xe6,0xfe,0xc3,0xff,0x97,0x0,0x57,0x1,0xe1,0x1, +0x2d,0x2,0x4c,0x2,0xf3,0x1,0x20,0x1,0x7b,0x0,0x18,0x0, +0x79,0xff,0xe8,0xfe,0xd5,0xfe,0x28,0xff,0xc9,0xff,0x6d,0x0, +0xc5,0x0,0x2e,0x1,0x9f,0x1,0x6f,0x1,0xc4,0x0,0xd,0x0, +0x1f,0xff,0x6,0xfe,0x13,0xfd,0x6a,0xfc,0x2c,0xfc,0x48,0xfc, +0x98,0xfc,0x40,0xfd,0x2f,0xfe,0x2a,0xff,0x38,0x0,0x3f,0x1, +0x0,0x2,0x66,0x2,0x77,0x2,0x64,0x2,0x37,0x2,0xa3,0x1, +0xd4,0x0,0x3f,0x0,0xd5,0xff,0x93,0xff,0x92,0xff,0x80,0xff, +0x5d,0xff,0x72,0xff,0x8b,0xff,0x86,0xff,0x83,0xff,0x6e,0xff, +0x78,0xff,0xd7,0xff,0x40,0x0,0xa4,0x0,0x3d,0x1,0xd2,0x1, +0x3a,0x2,0x88,0x2,0xa5,0x2,0x87,0x2,0x32,0x2,0xb7,0x1, +0x4b,0x1,0xd2,0x0,0x24,0x0,0xb9,0xff,0xc1,0xff,0xb7,0xff, +0x77,0xff,0x3d,0xff,0x1c,0xff,0xf,0xff,0x8,0xff,0x1d,0xff, +0x7f,0xff,0xe9,0xff,0x11,0x0,0x47,0x0,0xa2,0x0,0xb7,0x0, +0x91,0x0,0xa1,0x0,0xeb,0x0,0x17,0x1,0x9,0x1,0xf3,0x0, +0xdc,0x0,0xa4,0x0,0x6c,0x0,0x45,0x0,0xc,0x0,0xdb,0xff, +0xe4,0xff,0x1b,0x0,0x64,0x0,0xa0,0x0,0xd0,0x0,0x13,0x1, +0x48,0x1,0x47,0x1,0x25,0x1,0xd7,0x0,0x5d,0x0,0x15,0x0, +0x15,0x0,0x14,0x0,0x18,0x0,0x37,0x0,0x3f,0x0,0x28,0x0, +0x6,0x0,0xcf,0xff,0x80,0xff,0x1d,0xff,0x88,0xfe,0xb9,0xfd, +0xe9,0xfc,0x2c,0xfc,0x56,0xfb,0x77,0xfa,0xf0,0xf9,0xdd,0xf9, +0x21,0xfa,0xcf,0xfa,0xc,0xfc,0xf9,0xfd,0x7e,0x0,0x28,0x3, +0xae,0x5,0xf2,0x7,0x5b,0x9,0x85,0x9,0xcd,0x8,0x43,0x7, +0x86,0x4,0xfa,0x0,0xa2,0xfd,0xf7,0xfa,0xe5,0xf8,0xbb,0xf7, +0x28,0xf8,0x17,0xfa,0xa8,0xfc,0x43,0xff,0xb0,0x1,0x86,0x3, +0x61,0x4,0x38,0x4,0x63,0x3,0x42,0x2,0xce,0x0,0x3d,0xff, +0x4b,0xfe,0xfb,0xfd,0xae,0xfd,0xa3,0xfd,0x75,0xfe,0xd9,0xff, +0x26,0x1,0x1f,0x2,0xcc,0x2,0x1,0x3,0x71,0x2,0x29,0x1, +0x91,0xff,0x3,0xfe,0xac,0xfc,0x7a,0xfb,0x7e,0xfa,0x64,0xfa, +0x3b,0xfb,0x1c,0xfc,0x9,0xfd,0x8d,0xfe,0x4,0x0,0xde,0x0, +0x78,0x1,0xdd,0x1,0xfa,0x1,0xd,0x2,0xff,0x1,0xcf,0x1, +0xe0,0x1,0xd,0x2,0xfa,0x1,0xc9,0x1,0x9d,0x1,0x66,0x1, +0x3,0x1,0x59,0x0,0x9b,0xff,0x29,0xff,0xf1,0xfe,0x8f,0xfe, +0x1e,0xfe,0x25,0xfe,0xaa,0xfe,0x36,0xff,0xd1,0xff,0x9b,0x0, +0x37,0x1,0x90,0x1,0xd4,0x1,0xc3,0x1,0x7f,0x1,0x5c,0x1, +0xf2,0x0,0x38,0x0,0xe5,0xff,0xea,0xff,0xdf,0xff,0xf8,0xff, +0x3d,0x0,0x6c,0x0,0x8b,0x0,0xa3,0x0,0x95,0x0,0x37,0x0, +0x87,0xff,0xce,0xfe,0x2d,0xfe,0x90,0xfd,0x1f,0xfd,0xe3,0xfc, +0xd5,0xfc,0x45,0xfd,0x17,0xfe,0xd9,0xfe,0xae,0xff,0xa4,0x0, +0x58,0x1,0xdb,0x1,0x46,0x2,0x4a,0x2,0xf0,0x1,0x74,0x1, +0xd7,0x0,0x3a,0x0,0xc4,0xff,0x7e,0xff,0x68,0xff,0x71,0xff, +0x9b,0xff,0xe2,0xff,0xfd,0xff,0xe7,0xff,0xd4,0xff,0xa3,0xff, +0x5a,0xff,0x55,0xff,0x8a,0xff,0xc6,0xff,0x33,0x0,0xc7,0x0, +0x3e,0x1,0xa7,0x1,0x2d,0x2,0x95,0x2,0x8b,0x2,0x4a,0x2, +0x26,0x2,0xd6,0x1,0x4d,0x1,0xfd,0x0,0xc1,0x0,0x46,0x0, +0xe0,0xff,0xb5,0xff,0x75,0xff,0x1f,0xff,0xd2,0xfe,0x9b,0xfe, +0xad,0xfe,0x10,0xff,0x89,0xff,0xcf,0xff,0xdc,0xff,0x13,0x0, +0x76,0x0,0x99,0x0,0xb6,0x0,0x29,0x1,0x86,0x1,0x9e,0x1, +0x9f,0x1,0x59,0x1,0xdd,0x0,0x73,0x0,0xf4,0xff,0x70,0xff, +0x2e,0xff,0xe,0xff,0x18,0xff,0x7c,0xff,0xf8,0xff,0x60,0x0, +0xc4,0x0,0xe,0x1,0x45,0x1,0x77,0x1,0x78,0x1,0x48,0x1, +0x1e,0x1,0x1,0x1,0xbf,0x0,0x5f,0x0,0x2c,0x0,0xe,0x0, +0xb3,0xff,0x56,0xff,0x2c,0xff,0xe7,0xfe,0x99,0xfe,0x6d,0xfe, +0x9,0xfe,0x72,0xfd,0xe3,0xfc,0x15,0xfc,0x18,0xfb,0x5c,0xfa, +0xe0,0xf9,0xb6,0xf9,0x35,0xfa,0x64,0xfb,0x39,0xfd,0xa5,0xff, +0x66,0x2,0x42,0x5,0xbc,0x7,0x57,0x9,0x1f,0xa,0xfa,0x9, +0x89,0x8,0xe3,0x5,0x66,0x2,0xbf,0xfe,0xaa,0xfb,0x1f,0xf9, +0x53,0xf7,0x53,0xf7,0xe,0xf9,0x6c,0xfb,0x14,0xfe,0xca,0x0, +0xe2,0x2,0x14,0x4,0x64,0x4,0xf4,0x3,0xb,0x3,0xb1,0x1, +0x19,0x0,0xc9,0xfe,0xd8,0xfd,0x48,0xfd,0x61,0xfd,0x2,0xfe, +0xe0,0xfe,0xec,0xff,0xe4,0x0,0x9c,0x1,0x1b,0x2,0x11,0x2, +0x37,0x1,0xcf,0xff,0x4e,0xfe,0xf7,0xfc,0xd1,0xfb,0xfd,0xfa, +0xcd,0xfa,0x3a,0xfb,0x14,0xfc,0x59,0xfd,0xb8,0xfe,0xec,0xff, +0x13,0x1,0xd5,0x1,0xf4,0x1,0xf3,0x1,0xe0,0x1,0x7d,0x1, +0x3e,0x1,0x3e,0x1,0x2c,0x1,0x35,0x1,0x5b,0x1,0x5f,0x1, +0x6b,0x1,0x5a,0x1,0xd1,0x0,0x24,0x0,0xa3,0xff,0x29,0xff, +0xba,0xfe,0x6c,0xfe,0x4c,0xfe,0x77,0xfe,0xe5,0xfe,0x7b,0xff, +0x2a,0x0,0xcb,0x0,0x59,0x1,0xdc,0x1,0x1c,0x2,0x13,0x2, +0xe1,0x1,0x7f,0x1,0xfd,0x0,0x7c,0x0,0xf8,0xff,0x85,0xff, +0x2e,0xff,0xfb,0xfe,0x18,0xff,0x5c,0xff,0x82,0xff,0xb7,0xff, +0xe9,0xff,0xb3,0xff,0x44,0xff,0xe3,0xfe,0x58,0xfe,0xaf,0xfd, +0x4a,0xfd,0x4d,0xfd,0xa3,0xfd,0x22,0xfe,0xbc,0xfe,0x86,0xff, +0x58,0x0,0xfc,0x0,0x7f,0x1,0xd6,0x1,0xde,0x1,0xa3,0x1, +0x2b,0x1,0x92,0x0,0x10,0x0,0x9c,0xff,0x2d,0xff,0xfa,0xfe, +0x7,0xff,0x45,0xff,0xc0,0xff,0x24,0x0,0x36,0x0,0x4b,0x0, +0x5e,0x0,0x1e,0x0,0xe9,0xff,0x4,0x0,0x13,0x0,0x35,0x0, +0xbf,0x0,0x3e,0x1,0x77,0x1,0xea,0x1,0x8a,0x2,0xd3,0x2, +0xce,0x2,0x9a,0x2,0x24,0x2,0x9c,0x1,0x18,0x1,0x83,0x0, +0xc,0x0,0xb8,0xff,0x4a,0xff,0xfc,0xfe,0xfb,0xfe,0xec,0xfe, +0xde,0xfe,0x36,0xff,0xb8,0xff,0x10,0x0,0x5c,0x0,0x97,0x0, +0xae,0x0,0xc7,0x0,0xca,0x0,0xa8,0x0,0xc5,0x0,0x22,0x1, +0x45,0x1,0x41,0x1,0x36,0x1,0xd3,0x0,0x53,0x0,0x2b,0x0, +0x1,0x0,0x99,0xff,0x70,0xff,0xa1,0xff,0xef,0xff,0x48,0x0, +0x82,0x0,0xa2,0x0,0xf1,0x0,0x4b,0x1,0x73,0x1,0x7e,0x1, +0x6d,0x1,0x48,0x1,0x32,0x1,0x8,0x1,0xc8,0x0,0xa0,0x0, +0x5b,0x0,0xe9,0xff,0xa8,0xff,0x91,0xff,0x5a,0xff,0x4,0xff, +0xaa,0xfe,0x63,0xfe,0x1d,0xfe,0x90,0xfd,0xcf,0xfc,0x22,0xfc, +0x7a,0xfb,0xd4,0xfa,0x75,0xfa,0x93,0xfa,0x5f,0xfb,0xf8,0xfc, +0x2d,0xff,0xc7,0x1,0x88,0x4,0x2,0x7,0xcb,0x8,0xaf,0x9, +0xc0,0x9,0xed,0x8,0xc1,0x6,0x5d,0x3,0xdc,0xff,0xd6,0xfc, +0x1a,0xfa,0x20,0xf8,0xdd,0xf7,0x4a,0xf9,0x70,0xfb,0xbd,0xfd, +0x33,0x0,0x83,0x2,0x17,0x4,0xca,0x4,0xb3,0x4,0xf1,0x3, +0xe7,0x2,0xb9,0x1,0x4b,0x0,0x5,0xff,0x2f,0xfe,0x8c,0xfd, +0x58,0xfd,0xf2,0xfd,0xfc,0xfe,0x5,0x0,0xf8,0x0,0xbb,0x1, +0x20,0x2,0xe7,0x1,0xc,0x1,0x5,0x0,0xf4,0xfe,0xad,0xfd, +0x90,0xfc,0x13,0xfc,0x2f,0xfc,0xb5,0xfc,0x85,0xfd,0xaa,0xfe, +0x9,0x0,0xf3,0x0,0x2f,0x1,0x64,0x1,0xa4,0x1,0x89,0x1, +0x55,0x1,0x4c,0x1,0x51,0x1,0x67,0x1,0x92,0x1,0xb9,0x1, +0xe2,0x1,0xf5,0x1,0xd6,0x1,0x8b,0x1,0xb,0x1,0x67,0x0, +0xc9,0xff,0x2b,0xff,0xad,0xfe,0x92,0xfe,0xc4,0xfe,0xe,0xff, +0x80,0xff,0x35,0x0,0xd,0x1,0xb9,0x1,0x37,0x2,0xba,0x2, +0x6,0x3,0xcc,0x2,0x42,0x2,0x9e,0x1,0xe7,0x0,0x2f,0x0, +0x6d,0xff,0xc8,0xfe,0x95,0xfe,0xa8,0xfe,0xda,0xfe,0x65,0xff, +0x6,0x0,0x49,0x0,0x5b,0x0,0x5a,0x0,0x19,0x0,0x98,0xff, +0xf2,0xfe,0x64,0xfe,0x28,0xfe,0x15,0xfe,0x28,0xfe,0x9a,0xfe, +0x33,0xff,0xa8,0xff,0x1b,0x0,0xab,0x0,0x41,0x1,0xbb,0x1, +0xf3,0x1,0xf2,0x1,0xbd,0x1,0x45,0x1,0xb3,0x0,0x30,0x0, +0xb8,0xff,0x6c,0xff,0x5d,0xff,0x67,0xff,0x83,0xff,0x9c,0xff, +0x93,0xff,0x95,0xff,0xb3,0xff,0xc7,0xff,0xee,0xff,0x3f,0x0, +0x90,0x0,0xe5,0x0,0x60,0x1,0xeb,0x1,0x58,0x2,0x9a,0x2, +0xaf,0x2,0x86,0x2,0x1a,0x2,0x95,0x1,0xd,0x1,0x78,0x0, +0xeb,0xff,0x78,0xff,0xc,0xff,0xc7,0xfe,0xba,0xfe,0xc1,0xfe, +0xdd,0xfe,0x1d,0xff,0x72,0xff,0xdb,0xff,0x4a,0x0,0x98,0x0, +0xc1,0x0,0xb6,0x0,0x5b,0x0,0xe1,0xff,0x9e,0xff,0xa6,0xff, +0xca,0xff,0xee,0xff,0x2f,0x0,0x8b,0x0,0xc4,0x0,0xcb,0x0, +0xac,0x0,0x6d,0x0,0x37,0x0,0xf,0x0,0xeb,0xff,0xf8,0xff, +0xf,0x0,0xfb,0xff,0x1d,0x0,0x76,0x0,0x88,0x0,0x9d,0x0, +0xf5,0x0,0xf,0x1,0xc,0x1,0x47,0x1,0x53,0x1,0x1a,0x1, +0xf0,0x0,0xaa,0x0,0x36,0x0,0xca,0xff,0x46,0xff,0xad,0xfe, +0x3b,0xfe,0xef,0xfd,0xa6,0xfd,0x54,0xfd,0x12,0xfd,0xf8,0xfc, +0xb0,0xfc,0x13,0xfc,0xa5,0xfb,0x97,0xfb,0xbe,0xfb,0x5f,0xfc, +0xaf,0xfd,0x7b,0xff,0x98,0x1,0xbf,0x3,0x9b,0x5,0xa,0x7, +0xcb,0x7,0xa0,0x7,0xaf,0x6,0xff,0x4,0x8a,0x2,0xc0,0xff, +0x29,0xfd,0xfd,0xfa,0x79,0xf9,0x1b,0xf9,0x12,0xfa,0xc8,0xfb, +0xad,0xfd,0xcf,0xff,0xdb,0x1,0x11,0x3,0x88,0x3,0xaf,0x3, +0x63,0x3,0xa2,0x2,0xa2,0x1,0x6e,0x0,0x3b,0xff,0x35,0xfe, +0x52,0xfd,0xf4,0xfc,0x5f,0xfd,0x27,0xfe,0x11,0xff,0x2d,0x0, +0x30,0x1,0xc4,0x1,0xd5,0x1,0x6a,0x1,0xa5,0x0,0x9e,0xff, +0x71,0xfe,0x65,0xfd,0xa5,0xfc,0x52,0xfc,0x9a,0xfc,0x3c,0xfd, +0xf3,0xfd,0xfb,0xfe,0xb,0x0,0x7c,0x0,0xb4,0x0,0x26,0x1, +0x3a,0x1,0xe5,0x0,0xdd,0x0,0xed,0x0,0xcb,0x0,0xfb,0x0, +0x56,0x1,0x48,0x1,0x40,0x1,0x9d,0x1,0xd7,0x1,0xc2,0x1, +0x77,0x1,0xb4,0x0,0xc5,0xff,0x39,0xff,0xcf,0xfe,0x64,0xfe, +0x68,0xfe,0xe2,0xfe,0x8a,0xff,0x3f,0x0,0xda,0x0,0x68,0x1, +0x9,0x2,0x6e,0x2,0x6d,0x2,0x3a,0x2,0xb5,0x1,0xc9,0x0, +0xea,0xff,0x41,0xff,0x9f,0xfe,0x37,0xfe,0x4e,0xfe,0xa6,0xfe, +0x8,0xff,0x89,0xff,0xc,0x0,0x4c,0x0,0x50,0x0,0x3a,0x0, +0xf2,0xff,0x70,0xff,0xcf,0xfe,0x2f,0xfe,0xd6,0xfd,0xdc,0xfd, +0xf7,0xfd,0x13,0xfe,0x73,0xfe,0x23,0xff,0xe7,0xff,0x8e,0x0, +0x1a,0x1,0xad,0x1,0x1c,0x2,0xf,0x2,0xb3,0x1,0x58,0x1, +0xe9,0x0,0x5c,0x0,0xd2,0xff,0x5d,0xff,0x13,0xff,0xe2,0xfe, +0x9c,0xfe,0x65,0xfe,0x5f,0xfe,0x91,0xfe,0x12,0xff,0xad,0xff, +0x29,0x0,0xc8,0x0,0x7b,0x1,0xd3,0x1,0x16,0x2,0x8d,0x2, +0xc3,0x2,0x8e,0x2,0x48,0x2,0xf2,0x1,0x68,0x1,0xcc,0x0, +0x3c,0x0,0xb4,0xff,0x3d,0xff,0xfc,0xfe,0xf5,0xfe,0xf1,0xfe, +0xe2,0xfe,0x2,0xff,0x62,0xff,0xde,0xff,0x58,0x0,0xbf,0x0, +0x9,0x1,0x15,0x1,0xb3,0x0,0xc,0x0,0x7a,0xff,0x6,0xff, +0xa9,0xfe,0x8d,0xfe,0xca,0xfe,0x4b,0xff,0xde,0xff,0x65,0x0, +0xfd,0x0,0x8a,0x1,0xa4,0x1,0x56,0x1,0xa,0x1,0xc1,0x0, +0x45,0x0,0xbc,0xff,0x5f,0xff,0x28,0xff,0x14,0xff,0x42,0xff, +0xa0,0xff,0x2,0x0,0x7c,0x0,0x1d,0x1,0xc3,0x1,0x46,0x2, +0x58,0x2,0xce,0x1,0x18,0x1,0x77,0x0,0x97,0xff,0x96,0xfe, +0xda,0xfd,0x47,0xfd,0xc4,0xfc,0x81,0xfc,0x7b,0xfc,0x83,0xfc, +0x6f,0xfc,0x3b,0xfc,0x29,0xfc,0x3e,0xfc,0x3d,0xfc,0x52,0xfc, +0xe7,0xfc,0xc,0xfe,0x92,0xff,0x4f,0x1,0x22,0x3,0xd4,0x4, +0xf5,0x5,0x85,0x6,0xbe,0x6,0x29,0x6,0x71,0x4,0x22,0x2, +0xad,0xff,0x3d,0xfd,0x31,0xfb,0xb4,0xf9,0x10,0xf9,0xc7,0xf9, +0x78,0xfb,0x75,0xfd,0xa5,0xff,0x9a,0x1,0xd2,0x2,0x84,0x3, +0xad,0x3,0x15,0x3,0xa,0x2,0xc6,0x0,0x75,0xff,0x75,0xfe, +0x98,0xfd,0xbd,0xfc,0x82,0xfc,0x1,0xfd,0xbb,0xfd,0xa6,0xfe, +0xd0,0xff,0xee,0x0,0xc0,0x1,0x4,0x2,0xa2,0x1,0xc9,0x0, +0xb0,0xff,0x92,0xfe,0x84,0xfd,0x88,0xfc,0xf,0xfc,0x38,0xfc, +0x6f,0xfc,0xe4,0xfc,0x1d,0xfe,0x5b,0xff,0xfe,0xff,0x7f,0x0, +0xf1,0x0,0xf7,0x0,0xb9,0x0,0x76,0x0,0x50,0x0,0x57,0x0, +0x5b,0x0,0x4f,0x0,0x6b,0x0,0xac,0x0,0x8,0x1,0x69,0x1, +0x7e,0x1,0x48,0x1,0xf3,0x0,0x57,0x0,0x8d,0xff,0xef,0xfe, +0x7c,0xfe,0x39,0xfe,0x46,0xfe,0x84,0xfe,0xf1,0xfe,0x99,0xff, +0x40,0x0,0xca,0x0,0x32,0x1,0x60,0x1,0x6f,0x1,0x3a,0x1, +0x82,0x0,0xd0,0xff,0x7a,0xff,0xf1,0xfe,0x57,0xfe,0x64,0xfe, +0xdc,0xfe,0x42,0xff,0xa1,0xff,0xe2,0xff,0xf8,0xff,0xe,0x0, +0xf2,0xff,0x7f,0xff,0x5,0xff,0xa8,0xfe,0x40,0xfe,0xdb,0xfd, +0xaa,0xfd,0xb6,0xfd,0xef,0xfd,0x68,0xfe,0x2c,0xff,0xf1,0xff, +0x7b,0x0,0xe1,0x0,0x27,0x1,0x49,0x1,0x61,0x1,0x4a,0x1, +0xf4,0x0,0xab,0x0,0x77,0x0,0x31,0x0,0xec,0xff,0xa0,0xff, +0x4e,0xff,0x1a,0xff,0xd0,0xfe,0x79,0xfe,0x85,0xfe,0xc7,0xfe, +0xfa,0xfe,0x74,0xff,0x1c,0x0,0x9e,0x0,0x3c,0x1,0xf0,0x1, +0x5c,0x2,0xa3,0x2,0xc7,0x2,0x88,0x2,0x2b,0x2,0xcf,0x1, +0x29,0x1,0x67,0x0,0xdb,0xff,0x78,0xff,0x3b,0xff,0x20,0xff, +0xb,0xff,0x1f,0xff,0x65,0xff,0xae,0xff,0xf2,0xff,0x4a,0x0, +0xab,0x0,0xef,0x0,0xf9,0x0,0xda,0x0,0x9a,0x0,0xf,0x0, +0x51,0xff,0xc5,0xfe,0x98,0xfe,0xb2,0xfe,0xfb,0xfe,0x66,0xff, +0xff,0xff,0xb2,0x0,0x36,0x1,0x73,0x1,0x96,0x1,0x9e,0x1, +0x79,0x1,0x3d,0x1,0xeb,0x0,0x6b,0x0,0xf1,0xff,0xc7,0xff, +0xc6,0xff,0xbb,0xff,0xdc,0xff,0x4e,0x0,0xc6,0x0,0x23,0x1, +0x7c,0x1,0xae,0x1,0x98,0x1,0x49,0x1,0xc1,0x0,0x12,0x0, +0x60,0xff,0xb9,0xfe,0x2a,0xfe,0xba,0xfd,0x40,0xfd,0xcd,0xfc, +0xac,0xfc,0xab,0xfc,0x50,0xfc,0xcc,0xfb,0x9e,0xfb,0xb6,0xfb, +0xdf,0xfb,0x44,0xfc,0x0,0xfd,0x1e,0xfe,0xd5,0xff,0x7,0x2, +0x27,0x4,0xf7,0x5,0x5b,0x7,0xfa,0x7,0xb0,0x7,0x88,0x6, +0x79,0x4,0xba,0x1,0xc4,0xfe,0xf9,0xfb,0xbd,0xf9,0x70,0xf8, +0x63,0xf8,0xc3,0xf9,0x1f,0xfc,0xbb,0xfe,0x45,0x1,0x59,0x3, +0x7f,0x4,0xe7,0x4,0xbe,0x4,0xaf,0x3,0xec,0x1,0x33,0x0, +0xce,0xfe,0xa1,0xfd,0xab,0xfc,0x32,0xfc,0x84,0xfc,0x6a,0xfd, +0x7b,0xfe,0xc9,0xff,0x3c,0x1,0x4c,0x2,0xbd,0x2,0xaa,0x2, +0x16,0x2,0xa,0x1,0xad,0xff,0x3d,0xfe,0x6,0xfd,0x3d,0xfc, +0x5,0xfc,0x4c,0xfc,0xc5,0xfc,0x70,0xfd,0x71,0xfe,0x70,0xff, +0x2c,0x0,0xbc,0x0,0xe,0x1,0x1c,0x1,0x28,0x1,0x3a,0x1, +0x4b,0x1,0x71,0x1,0x87,0x1,0x78,0x1,0x6c,0x1,0x62,0x1, +0x41,0x1,0x9,0x1,0xbe,0x0,0x6a,0x0,0xc,0x0,0xa0,0xff, +0x5a,0xff,0x3a,0xff,0x11,0xff,0x1a,0xff,0x74,0xff,0xcd,0xff, +0x3b,0x0,0xd8,0x0,0x29,0x1,0x1a,0x1,0x1d,0x1,0xc,0x1, +0xab,0x0,0x40,0x0,0xdd,0xff,0x84,0xff,0x7e,0xff,0xaf,0xff, +0xd2,0xff,0x28,0x0,0xb0,0x0,0xe0,0x0,0xd6,0x0,0xf8,0x0, +0xd2,0x0,0x1f,0x0,0x7c,0xff,0xe,0xff,0x6b,0xfe,0xd7,0xfd, +0xaf,0xfd,0xb5,0xfd,0xea,0xfd,0x7d,0xfe,0x20,0xff,0xb2,0xff, +0x74,0x0,0x35,0x1,0x9b,0x1,0xb1,0x1,0x8c,0x1,0x4b,0x1, +0x18,0x1,0xce,0x0,0x50,0x0,0xfe,0xff,0x8,0x0,0x2b,0x0, +0x3e,0x0,0x36,0x0,0xd,0x0,0xe0,0xff,0xb5,0xff,0x77,0xff, +0x53,0xff,0x62,0xff,0x85,0xff,0xd1,0xff,0x59,0x0,0xe9,0x0, +0x83,0x1,0x2d,0x2,0x98,0x2,0xb0,0x2,0x9d,0x2,0x4f,0x2, +0xdd,0x1,0x67,0x1,0xc9,0x0,0x2f,0x0,0xf4,0xff,0xe7,0xff, +0xe3,0xff,0xb,0x0,0x31,0x0,0x3a,0x0,0x5e,0x0,0x8a,0x0, +0x98,0x0,0xa7,0x0,0xae,0x0,0x98,0x0,0x76,0x0,0x31,0x0, +0xc9,0xff,0x86,0xff,0x76,0xff,0x82,0xff,0xc7,0xff,0x2d,0x0, +0x75,0x0,0xb2,0x0,0x8,0x1,0x49,0x1,0x4f,0x1,0x3e,0x1, +0x2f,0x1,0x10,0x1,0xea,0x0,0xde,0x0,0xe4,0x0,0xe2,0x0, +0xd1,0x0,0xbd,0x0,0xb2,0x0,0x9e,0x0,0x77,0x0,0x78,0x0, +0xc3,0x0,0x6,0x1,0xd,0x1,0xa,0x1,0x16,0x1,0x5,0x1, +0xce,0x0,0x9b,0x0,0x5f,0x0,0xc3,0xff,0xe7,0xfe,0x5a,0xfe, +0xfd,0xfd,0x60,0xfd,0xcd,0xfc,0x78,0xfc,0x4,0xfc,0x8c,0xfb, +0x69,0xfb,0x6f,0xfb,0x9b,0xfb,0x29,0xfc,0x15,0xfd,0x7d,0xfe, +0x8e,0x0,0xdb,0x2,0xde,0x4,0x8d,0x6,0xd8,0x7,0x7d,0x8, +0x4c,0x8,0x26,0x7,0xff,0x4,0x1f,0x2,0x18,0xff,0x62,0xfc, +0x30,0xfa,0xf2,0xf8,0x3a,0xf9,0xc5,0xfa,0xd1,0xfc,0x2f,0xff, +0x9b,0x1,0x4a,0x3,0x1a,0x4,0x82,0x4,0x52,0x4,0x42,0x3, +0xce,0x1,0x62,0x0,0xd,0xff,0xf8,0xfd,0x34,0xfd,0xe4,0xfc, +0x64,0xfd,0x6c,0xfe,0x5d,0xff,0x63,0x0,0x9e,0x1,0x64,0x2, +0x6f,0x2,0xb,0x2,0x47,0x1,0x2a,0x0,0xe2,0xfe,0x90,0xfd, +0x7f,0xfc,0xff,0xfb,0xfb,0xfb,0x47,0xfc,0xd8,0xfc,0x96,0xfd, +0x64,0xfe,0x36,0xff,0x7,0x0,0xb5,0x0,0xc,0x1,0x3f,0x1, +0xb7,0x1,0x55,0x2,0xb9,0x2,0xd5,0x2,0xbd,0x2,0x86,0x2, +0x2f,0x2,0xa5,0x1,0x1a,0x1,0xb0,0x0,0x23,0x0,0x8e,0xff, +0x32,0xff,0xe7,0xfe,0xd2,0xfe,0x39,0xff,0xb4,0xff,0xf,0x0, +0x94,0x0,0x16,0x1,0x67,0x1,0x96,0x1,0x84,0x1,0x4f,0x1, +0x8,0x1,0x6e,0x0,0xdb,0xff,0xa9,0xff,0x74,0xff,0x66,0xff, +0xdb,0xff,0x3c,0x0,0x79,0x0,0xf,0x1,0x75,0x1,0x43,0x1, +0xfb,0x0,0xac,0x0,0x1b,0x0,0x5b,0xff,0x78,0xfe,0xb8,0xfd, +0x56,0xfd,0x1e,0xfd,0x34,0xfd,0xc0,0xfd,0x55,0xfe,0xed,0xfe, +0xc4,0xff,0x92,0x0,0x3b,0x1,0xc9,0x1,0xee,0x1,0xba,0x1, +0x79,0x1,0x14,0x1,0x8d,0x0,0x7,0x0,0x88,0xff,0x52,0xff, +0x84,0xff,0xc6,0xff,0xee,0xff,0xc,0x0,0x1a,0x0,0x13,0x0, +0xf6,0xff,0xe2,0xff,0x6,0x0,0x2b,0x0,0x2a,0x0,0x5f,0x0, +0xdf,0x0,0x5d,0x1,0xc6,0x1,0xa,0x2,0x20,0x2,0x27,0x2, +0xf9,0x1,0x79,0x1,0xf9,0x0,0x9d,0x0,0x44,0x0,0x3,0x0, +0xee,0xff,0xee,0xff,0xff,0xff,0x26,0x0,0x5c,0x0,0x86,0x0, +0x83,0x0,0x62,0x0,0x33,0x0,0xe7,0xff,0xa2,0xff,0x80,0xff, +0x4c,0xff,0x9,0xff,0xfa,0xfe,0x2e,0xff,0xa9,0xff,0x5d,0x0, +0x0,0x1,0x71,0x1,0xce,0x1,0x5,0x2,0xe4,0x1,0x71,0x1, +0xf3,0x0,0x8f,0x0,0x15,0x0,0x91,0xff,0x70,0xff,0x96,0xff, +0x97,0xff,0xaa,0xff,0x11,0x0,0x77,0x0,0xaf,0x0,0xd7,0x0, +0xe8,0x0,0xed,0x0,0x3,0x1,0x20,0x1,0x41,0x1,0x67,0x1, +0x7b,0x1,0x6f,0x1,0x3c,0x1,0xe6,0x0,0x90,0x0,0x15,0x0, +0x4c,0xff,0x89,0xfe,0xeb,0xfd,0x20,0xfd,0x59,0xfc,0xd5,0xfb, +0x42,0xfb,0xb5,0xfa,0xb2,0xfa,0x10,0xfb,0x8a,0xfb,0x54,0xfc, +0x76,0xfd,0xd4,0xfe,0x73,0x0,0x32,0x2,0xec,0x3,0x7d,0x5, +0x85,0x6,0xf3,0x6,0xd6,0x6,0xd4,0x5,0xe7,0x3,0xa8,0x1, +0x68,0xff,0x4a,0xfd,0xb7,0xfb,0xef,0xfa,0xa,0xfb,0x0,0xfc, +0x69,0xfd,0xe0,0xfe,0x39,0x0,0x23,0x1,0x80,0x1,0x94,0x1, +0x65,0x1,0xce,0x0,0x3,0x0,0x5d,0xff,0xff,0xfe,0xae,0xfe, +0x45,0xfe,0x3f,0xfe,0xfa,0xfe,0xed,0xff,0x95,0x0,0x27,0x1, +0xc2,0x1,0xf,0x2,0xcb,0x1,0x21,0x1,0x57,0x0,0x57,0xff, +0x18,0xfe,0x7,0xfd,0x64,0xfc,0x0,0xfc,0xdc,0xfb,0xfb,0xfb, +0x54,0xfc,0x17,0xfd,0x12,0xfe,0xc1,0xfe,0x5a,0xff,0x39,0x0, +0xe5,0x0,0x36,0x1,0xb7,0x1,0x63,0x2,0xc0,0x2,0xcb,0x2, +0xa1,0x2,0x46,0x2,0xd7,0x1,0x5e,0x1,0xd7,0x0,0x4b,0x0, +0xaf,0xff,0x21,0xff,0xd0,0xfe,0x98,0xfe,0x7a,0xfe,0xc0,0xfe, +0x33,0xff,0x89,0xff,0x13,0x0,0xcd,0x0,0x27,0x1,0x24,0x1, +0x15,0x1,0xf0,0x0,0xb9,0x0,0x6a,0x0,0xf6,0xff,0xac,0xff, +0xa4,0xff,0x99,0xff,0xba,0xff,0x28,0x0,0x7e,0x0,0xaf,0x0, +0xd3,0x0,0x97,0x0,0x1e,0x0,0xcf,0xff,0x5d,0xff,0xa3,0xfe, +0x13,0xfe,0xb9,0xfd,0x6d,0xfd,0x60,0xfd,0x95,0xfd,0xd8,0xfd, +0x41,0xfe,0xf4,0xfe,0xca,0xff,0x85,0x0,0x5,0x1,0x57,0x1, +0x82,0x1,0x6b,0x1,0x19,0x1,0xcb,0x0,0x93,0x0,0x3d,0x0, +0xc0,0xff,0x6c,0xff,0x70,0xff,0x89,0xff,0x87,0xff,0x80,0xff, +0x75,0xff,0x63,0xff,0x67,0xff,0x71,0xff,0x7e,0xff,0xc4,0xff, +0x2b,0x0,0x86,0x0,0xf9,0x0,0x6d,0x1,0x95,0x1,0xad,0x1, +0xe7,0x1,0xe6,0x1,0xa5,0x1,0x65,0x1,0xfd,0x0,0x6e,0x0, +0x15,0x0,0xd8,0xff,0x8a,0xff,0x6b,0xff,0x76,0xff,0x7a,0xff, +0x8f,0xff,0xa2,0xff,0x95,0xff,0x8f,0xff,0x83,0xff,0x5c,0xff, +0x48,0xff,0x21,0xff,0xd5,0xfe,0xde,0xfe,0x35,0xff,0x70,0xff, +0xc8,0xff,0x66,0x0,0xf2,0x0,0x60,0x1,0xba,0x1,0xd7,0x1, +0xbb,0x1,0x5e,0x1,0xb7,0x0,0x11,0x0,0x7f,0xff,0xf3,0xfe, +0xac,0xfe,0x9c,0xfe,0x9d,0xfe,0xf7,0xfe,0x7c,0xff,0xad,0xff, +0xdb,0xff,0x56,0x0,0xbe,0x0,0x2,0x1,0x4a,0x1,0x72,0x1, +0x71,0x1,0x5e,0x1,0x36,0x1,0x1,0x1,0xa8,0x0,0x24,0x0, +0xc8,0xff,0x94,0xff,0x1a,0xff,0x72,0xfe,0xf,0xfe,0xcb,0xfd, +0x3c,0xfd,0x99,0xfc,0x2c,0xfc,0xb6,0xfb,0x2e,0xfb,0x16,0xfb, +0x68,0xfb,0xb5,0xfb,0x45,0xfc,0x70,0xfd,0xf0,0xfe,0xa7,0x0, +0x9e,0x2,0x5d,0x4,0x84,0x5,0x1b,0x6,0x22,0x6,0x82,0x5, +0x19,0x4,0xd7,0x1,0x51,0xff,0x46,0xfd,0xb2,0xfb,0x7d,0xfa, +0x3d,0xfa,0x33,0xfb,0xbb,0xfc,0x57,0xfe,0x8,0x0,0x7f,0x1, +0x4e,0x2,0x90,0x2,0x67,0x2,0xaf,0x1,0x90,0x0,0x66,0xff, +0x70,0xfe,0xe7,0xfd,0xcd,0xfd,0xe7,0xfd,0x38,0xfe,0xf3,0xfe, +0x0,0x0,0x8,0x1,0xb7,0x1,0x12,0x2,0x2c,0x2,0xb0,0x1, +0xad,0x0,0xe2,0xff,0x42,0xff,0x2f,0xfe,0x15,0xfd,0x98,0xfc, +0x87,0xfc,0xa8,0xfc,0xf1,0xfc,0x48,0xfd,0xe8,0xfd,0xcd,0xfe, +0x7a,0xff,0xec,0xff,0x65,0x0,0xaa,0x0,0xc2,0x0,0x1b,0x1, +0xa3,0x1,0xf3,0x1,0x9,0x2,0x1a,0x2,0x2,0x2,0x9e,0x1, +0x3b,0x1,0xf7,0x0,0x65,0x0,0x8e,0xff,0xf2,0xfe,0x81,0xfe, +0x14,0xfe,0xfe,0xfd,0x3c,0xfe,0x9d,0xfe,0x55,0xff,0x51,0x0, +0x2a,0x1,0xd1,0x1,0x33,0x2,0x3d,0x2,0x2b,0x2,0xdf,0x1, +0xd,0x1,0x17,0x0,0x63,0xff,0xdf,0xfe,0xb7,0xfe,0xf8,0xfe, +0x28,0xff,0x42,0xff,0xaf,0xff,0x4d,0x0,0xc6,0x0,0xb,0x1, +0x23,0x1,0x5,0x1,0x95,0x0,0xdf,0xff,0x2f,0xff,0x8a,0xfe, +0xcf,0xfd,0x5f,0xfd,0x5f,0xfd,0x80,0xfd,0xf5,0xfd,0xe1,0xfe, +0xb1,0xff,0x75,0x0,0x87,0x1,0x3a,0x2,0x1d,0x2,0xd0,0x1, +0x91,0x1,0x2b,0x1,0xaf,0x0,0x2c,0x0,0xd1,0xff,0xcb,0xff, +0xc1,0xff,0xad,0xff,0xed,0xff,0x2b,0x0,0x1a,0x0,0x2b,0x0, +0x4b,0x0,0x2,0x0,0xa2,0xff,0x91,0xff,0xa5,0xff,0xbc,0xff, +0xf8,0xff,0x79,0x0,0x33,0x1,0xdf,0x1,0x5a,0x2,0xb4,0x2, +0xce,0x2,0xa7,0x2,0x61,0x2,0xc6,0x1,0xd4,0x0,0x9,0x0, +0x67,0xff,0xb3,0xfe,0x52,0xfe,0x7b,0xfe,0xc1,0xfe,0x5,0xff, +0x84,0xff,0x19,0x0,0x97,0x0,0xb,0x1,0x65,0x1,0x81,0x1, +0x69,0x1,0x43,0x1,0x1d,0x1,0xe6,0x0,0xb0,0x0,0xac,0x0, +0xc2,0x0,0xc6,0x0,0xd2,0x0,0xde,0x0,0xcb,0x0,0xcf,0x0, +0xeb,0x0,0xcd,0x0,0x9e,0x0,0x85,0x0,0x35,0x0,0xdb,0xff, +0xd0,0xff,0xcd,0xff,0xbf,0xff,0xf7,0xff,0x5e,0x0,0xc0,0x0, +0x2a,0x1,0x92,0x1,0xe7,0x1,0x1a,0x2,0x9,0x2,0xc1,0x1, +0x5f,0x1,0xed,0x0,0x75,0x0,0xd9,0xff,0x30,0xff,0xe3,0xfe, +0xc9,0xfe,0x80,0xfe,0x4e,0xfe,0x4b,0xfe,0x16,0xfe,0xab,0xfd, +0x27,0xfd,0xa0,0xfc,0x5e,0xfc,0x36,0xfc,0xf6,0xfb,0x24,0xfc, +0xdb,0xfc,0xd3,0xfd,0x6c,0xff,0xaa,0x1,0xdd,0x3,0xc7,0x5, +0x24,0x7,0x9e,0x7,0x7b,0x7,0x9b,0x6,0x7b,0x4,0xad,0x1, +0xa,0xff,0xa4,0xfc,0xae,0xfa,0x7e,0xf9,0x53,0xf9,0x87,0xfa, +0xba,0xfc,0xb,0xff,0x5a,0x1,0x91,0x3,0xe7,0x4,0x28,0x5, +0xcc,0x4,0xdd,0x3,0x50,0x2,0x96,0x0,0x30,0xff,0x34,0xfe, +0x82,0xfd,0x33,0xfd,0x87,0xfd,0x75,0xfe,0x98,0xff,0xa5,0x0, +0xaa,0x1,0x7f,0x2,0x96,0x2,0xe4,0x1,0xee,0x0,0xcd,0xff, +0x77,0xfe,0x64,0xfd,0xc3,0xfc,0x67,0xfc,0x83,0xfc,0xd,0xfd, +0x98,0xfd,0x51,0xfe,0x65,0xff,0x36,0x0,0x80,0x0,0xc3,0x0, +0x14,0x1,0x4,0x1,0xb1,0x0,0xa7,0x0,0xdf,0x0,0xf1,0x0, +0xf5,0x0,0x3a,0x1,0x97,0x1,0xaa,0x1,0x58,0x1,0xf4,0x0, +0xc5,0x0,0x63,0x0,0x95,0xff,0x3,0xff,0xe7,0xfe,0xbd,0xfe, +0xbc,0xfe,0x4a,0xff,0xfc,0xff,0xab,0x0,0x7b,0x1,0xfd,0x1, +0x11,0x2,0x2a,0x2,0x13,0x2,0x60,0x1,0x91,0x0,0x1d,0x0, +0xb0,0xff,0x24,0xff,0xe0,0xfe,0xff,0xfe,0x40,0xff,0xa7,0xff, +0x3d,0x0,0xca,0x0,0x44,0x1,0x96,0x1,0x7b,0x1,0x1f,0x1, +0xcf,0x0,0x40,0x0,0x57,0xff,0x8e,0xfe,0xa,0xfe,0x8d,0xfd, +0x2c,0xfd,0x2d,0xfd,0x98,0xfd,0x33,0xfe,0xc4,0xfe,0x4f,0xff, +0xd8,0xff,0x4a,0x0,0x9b,0x0,0xc6,0x0,0xfd,0x0,0x62,0x1, +0x89,0x1,0x35,0x1,0xe0,0x0,0xb5,0x0,0x82,0x0,0x61,0x0, +0x47,0x0,0x12,0x0,0xef,0xff,0xcd,0xff,0x9a,0xff,0xa2,0xff, +0xc7,0xff,0xc6,0xff,0xe0,0xff,0x15,0x0,0x38,0x0,0x89,0x0, +0xfe,0x0,0x48,0x1,0x86,0x1,0xcc,0x1,0xeb,0x1,0xdc,0x1, +0x95,0x1,0x1c,0x1,0xa3,0x0,0x28,0x0,0xba,0xff,0x91,0xff, +0x8e,0xff,0x9d,0xff,0xea,0xff,0x2c,0x0,0xe,0x0,0xe7,0xff, +0xfa,0xff,0xb,0x0,0x4,0x0,0x2c,0x0,0x8e,0x0,0xbf,0x0, +0x9e,0x0,0xa6,0x0,0xf6,0x0,0x2d,0x1,0x45,0x1,0x54,0x1, +0x38,0x1,0x21,0x1,0x34,0x1,0xa,0x1,0x7c,0x0,0xe8,0xff, +0x7f,0xff,0x3f,0xff,0x30,0xff,0x4f,0xff,0x9f,0xff,0x23,0x0, +0xb9,0x0,0x1f,0x1,0x40,0x1,0x56,0x1,0x64,0x1,0x32,0x1, +0xe0,0x0,0x9a,0x0,0x35,0x0,0xe2,0xff,0xea,0xff,0xfc,0xff, +0xe7,0xff,0x0,0x0,0x47,0x0,0x88,0x0,0xb0,0x0,0x93,0x0, +0x3e,0x0,0xde,0xff,0x2a,0xff,0x1b,0xfe,0x2a,0xfd,0x50,0xfc, +0x50,0xfb,0x7c,0xfa,0x20,0xfa,0x2e,0xfa,0xb9,0xfa,0xdb,0xfb, +0x94,0xfd,0xdf,0xff,0x7a,0x2,0xf9,0x4,0xfc,0x6,0x34,0x8, +0x7a,0x8,0xe7,0x7,0x7a,0x6,0x1e,0x4,0x34,0x1,0x68,0xfe, +0x8,0xfc,0x1d,0xfa,0x20,0xf9,0x9c,0xf9,0x50,0xfb,0x80,0xfd, +0xd4,0xff,0x1b,0x2,0xd6,0x3,0x99,0x4,0x63,0x4,0x77,0x3, +0x11,0x2,0x44,0x0,0x69,0xfe,0x1d,0xfd,0x6f,0xfc,0x4,0xfc, +0x1f,0xfc,0x1a,0xfd,0x7d,0xfe,0xd1,0xff,0x3c,0x1,0x8d,0x2, +0x33,0x3,0x10,0x3,0x54,0x2,0x20,0x1,0xc8,0xff,0x98,0xfe, +0x6d,0xfd,0x5c,0xfc,0xef,0xfb,0x25,0xfc,0x76,0xfc,0xf5,0xfc, +0xe9,0xfd,0xdd,0xfe,0x79,0xff,0x1,0x0,0x6e,0x0,0x87,0x0, +0x84,0x0,0x98,0x0,0xcb,0x0,0x3a,0x1,0x9e,0x1,0xa6,0x1, +0x9b,0x1,0x8d,0x1,0x2e,0x1,0xc1,0x0,0x85,0x0,0x21,0x0, +0xa8,0xff,0x80,0xff,0x7b,0xff,0x54,0xff,0x42,0xff,0x8a,0xff, +0xff,0xff,0x49,0x0,0x7e,0x0,0xc1,0x0,0xc3,0x0,0x7d,0x0, +0x3d,0x0,0xda,0xff,0x5a,0xff,0x35,0xff,0x39,0xff,0x30,0xff, +0x95,0xff,0x52,0x0,0xf1,0x0,0x79,0x1,0xcd,0x1,0xe5,0x1, +0xfa,0x1,0xa2,0x1,0xd1,0x0,0x47,0x0,0xc8,0xff,0xda,0xfe, +0x32,0xfe,0xf1,0xfd,0x8a,0xfd,0x62,0xfd,0xbc,0xfd,0x22,0xfe, +0x8a,0xfe,0xf0,0xfe,0x2b,0xff,0x78,0xff,0xb1,0xff,0x87,0xff, +0x5d,0xff,0x65,0xff,0x70,0xff,0xac,0xff,0xc,0x0,0x53,0x0, +0xbd,0x0,0x41,0x1,0x6c,0x1,0x55,0x1,0x45,0x1,0x16,0x1, +0x9f,0x0,0x5,0x0,0x86,0xff,0x29,0xff,0xe2,0xfe,0xc8,0xfe, +0xdd,0xfe,0x1e,0xff,0xae,0xff,0x63,0x0,0xee,0x0,0x6f,0x1, +0xd4,0x1,0xd2,0x1,0x97,0x1,0x3b,0x1,0x94,0x0,0xf7,0xff, +0xaa,0xff,0x7d,0xff,0x70,0xff,0x96,0xff,0xdd,0xff,0x55,0x0, +0xc7,0x0,0xe3,0x0,0xd5,0x0,0xa4,0x0,0x30,0x0,0xb5,0xff, +0x35,0xff,0x8d,0xfe,0x1e,0xfe,0x30,0xfe,0x96,0xfe,0x21,0xff, +0xc0,0xff,0x83,0x0,0x64,0x1,0x13,0x2,0x70,0x2,0x8d,0x2, +0x57,0x2,0xf8,0x1,0x74,0x1,0x5f,0x0,0x1e,0xff,0x6d,0xfe, +0xf0,0xfd,0x74,0xfd,0x8e,0xfd,0x2f,0xfe,0xec,0xfe,0xd0,0xff, +0xb9,0x0,0x6a,0x1,0xc6,0x1,0xb4,0x1,0x7b,0x1,0x38,0x1, +0x89,0x0,0xce,0xff,0xa4,0xff,0x86,0xff,0x2e,0xff,0x3e,0xff, +0xa6,0xff,0xf5,0xff,0x53,0x0,0xbf,0x0,0xfd,0x0,0x6,0x1, +0xb9,0x0,0x2,0x0,0xc,0xff,0xda,0xfd,0x7b,0xfc,0x31,0xfb, +0xfe,0xf9,0xf9,0xf8,0x92,0xf8,0xf7,0xf8,0x4,0xfa,0xc2,0xfb, +0x2f,0xfe,0xed,0x0,0x93,0x3,0xe0,0x5,0x90,0x7,0x5a,0x8, +0x39,0x8,0x45,0x7,0x6b,0x5,0xc7,0x2,0xe9,0xff,0x6e,0xfd, +0x95,0xfb,0x73,0xfa,0x48,0xfa,0x3d,0xfb,0xfe,0xfc,0xfe,0xfe, +0xe0,0x0,0x49,0x2,0xf8,0x2,0xf1,0x2,0x36,0x2,0xf4,0x0, +0xa7,0xff,0x5d,0xfe,0x3,0xfd,0x25,0xfc,0x9,0xfc,0x49,0xfc, +0xfd,0xfc,0x6c,0xfe,0x13,0x0,0x78,0x1,0xad,0x2,0xa7,0x3, +0x11,0x4,0xa4,0x3,0x79,0x2,0x18,0x1,0xb7,0xff,0x14,0xfe, +0x78,0xfc,0x8c,0xfb,0x4a,0xfb,0x54,0xfb,0xb4,0xfb,0x9a,0xfc, +0xd2,0xfd,0xd4,0xfe,0x8f,0xff,0x73,0x0,0x45,0x1,0x65,0x1, +0x3b,0x1,0x48,0x1,0x22,0x1,0xd1,0x0,0xcf,0x0,0xcf,0x0, +0xb3,0x0,0xe1,0x0,0x14,0x1,0xb,0x1,0x1c,0x1,0xe,0x1, +0x9b,0x0,0x40,0x0,0xf8,0xff,0x66,0xff,0x2,0xff,0x1e,0xff, +0x47,0xff,0x65,0xff,0xa6,0xff,0xed,0xff,0xd,0x0,0xf8,0xff, +0xd0,0xff,0xc4,0xff,0xac,0xff,0x79,0xff,0x71,0xff,0x9b,0xff, +0xfa,0xff,0xad,0x0,0x61,0x1,0xd7,0x1,0x4a,0x2,0x8c,0x2, +0x31,0x2,0x64,0x1,0x7b,0x0,0x9e,0xff,0xd6,0xfe,0x13,0xfe, +0x7c,0xfd,0x4c,0xfd,0x57,0xfd,0x95,0xfd,0x2e,0xfe,0xde,0xfe, +0x70,0xff,0xf9,0xff,0x5b,0x0,0x8a,0x0,0x8e,0x0,0x44,0x0, +0xd6,0xff,0x8e,0xff,0x5a,0xff,0x66,0xff,0xbb,0xff,0xd3,0xff, +0xd7,0xff,0x46,0x0,0x9c,0x0,0x9c,0x0,0xcc,0x0,0xdb,0x0, +0x64,0x0,0x15,0x0,0x15,0x0,0xd6,0xff,0x9b,0xff,0xc3,0xff, +0xda,0xff,0xc0,0xff,0xe0,0xff,0x24,0x0,0x44,0x0,0x85,0x0, +0xf2,0x0,0x14,0x1,0xee,0x0,0xdc,0x0,0xc7,0x0,0xa2,0x0, +0xa1,0x0,0xa7,0x0,0x9d,0x0,0xc2,0x0,0xf2,0x0,0xf1,0x0, +0xe9,0x0,0xcc,0x0,0x76,0x0,0x31,0x0,0x0,0x0,0xa0,0xff, +0x58,0xff,0x4b,0xff,0x20,0xff,0xfc,0xfe,0x50,0xff,0xee,0xff, +0x85,0x0,0x2a,0x1,0xd4,0x1,0x51,0x2,0x8a,0x2,0x6a,0x2, +0xfc,0x1,0x76,0x1,0xe5,0x0,0x2b,0x0,0x66,0xff,0xc5,0xfe, +0x4f,0xfe,0x14,0xfe,0x27,0xfe,0x7a,0xfe,0xf3,0xfe,0x8d,0xff, +0x56,0x0,0x2c,0x1,0xbd,0x1,0x2,0x2,0x26,0x2,0xfd,0x1, +0x83,0x1,0x1e,0x1,0xba,0x0,0xd,0x0,0x7a,0xff,0x4d,0xff, +0x53,0xff,0x7f,0xff,0xb6,0xff,0xdb,0xff,0x44,0x0,0xce,0x0, +0xd8,0x0,0x88,0x0,0x30,0x0,0x7e,0xff,0x6d,0xfe,0x44,0xfd, +0x0,0xfc,0xe7,0xfa,0x45,0xfa,0xf4,0xf9,0x18,0xfa,0x24,0xfb, +0x7,0xfd,0x76,0xff,0x2c,0x2,0xa7,0x4,0x8e,0x6,0xd5,0x7, +0x65,0x8,0x1d,0x8,0xcd,0x6,0x80,0x4,0xe2,0x1,0x83,0xff, +0x53,0xfd,0x6f,0xfb,0x6e,0xfa,0xb1,0xfa,0x1d,0xfc,0x32,0xfe, +0x4d,0x0,0x15,0x2,0x5a,0x3,0xde,0x3,0xa1,0x3,0xcf,0x2, +0x71,0x1,0xc1,0xff,0x2c,0xfe,0xe2,0xfc,0x11,0xfc,0xa,0xfc, +0xa3,0xfc,0x9c,0xfd,0x16,0xff,0xe8,0x0,0x80,0x2,0x97,0x3, +0x20,0x4,0x0,0x4,0x3d,0x3,0xe5,0x1,0x38,0x0,0xb0,0xfe, +0x5e,0xfd,0x55,0xfc,0xfc,0xfb,0x13,0xfc,0x32,0xfc,0xe1,0xfc, +0x20,0xfe,0xf,0xff,0xbd,0xff,0x88,0x0,0xfb,0x0,0xef,0x0, +0xb4,0x0,0x6f,0x0,0x4e,0x0,0x2b,0x0,0xcf,0xff,0xd3,0xff, +0x72,0x0,0xff,0x0,0x73,0x1,0x22,0x2,0xb3,0x2,0xcd,0x2, +0x63,0x2,0xa5,0x1,0xfa,0x0,0x3a,0x0,0x3d,0xff,0xbb,0xfe, +0xca,0xfe,0xcc,0xfe,0x9,0xff,0xac,0xff,0x2a,0x0,0x9a,0x0, +0x20,0x1,0x46,0x1,0x34,0x1,0x29,0x1,0xda,0x0,0x73,0x0, +0x35,0x0,0xfd,0xff,0x8,0x0,0x6f,0x0,0xc4,0x0,0x13,0x1, +0x74,0x1,0x69,0x1,0xe3,0x0,0x49,0x0,0xa7,0xff,0x4,0xff, +0x89,0xfe,0x32,0xfe,0xfe,0xfd,0xf,0xfe,0x77,0xfe,0x13,0xff, +0x98,0xff,0x3,0x0,0x7f,0x0,0xe3,0x0,0xec,0x0,0xaf,0x0, +0x55,0x0,0xfc,0xff,0xbd,0xff,0x82,0xff,0x46,0xff,0x33,0xff, +0x58,0xff,0xae,0xff,0x21,0x0,0x90,0x0,0xf9,0x0,0x4c,0x1, +0x68,0x1,0x68,0x1,0x61,0x1,0x24,0x1,0xc5,0x0,0x89,0x0, +0x5a,0x0,0xd,0x0,0xc1,0xff,0xa4,0xff,0xbd,0xff,0x3,0x0, +0x66,0x0,0xca,0x0,0x1b,0x1,0x6a,0x1,0xb0,0x1,0xae,0x1, +0x70,0x1,0x48,0x1,0x2f,0x1,0xf7,0x0,0xad,0x0,0x5a,0x0, +0x18,0x0,0x18,0x0,0x1c,0x0,0xdc,0xff,0xb9,0xff,0xf1,0xff, +0x12,0x0,0xf3,0xff,0xfd,0xff,0x34,0x0,0x41,0x0,0x3c,0x0, +0x64,0x0,0x98,0x0,0xbb,0x0,0xe1,0x0,0xed,0x0,0xc6,0x0, +0xa7,0x0,0xa2,0x0,0x73,0x0,0x13,0x0,0xc7,0xff,0xa2,0xff, +0x7b,0xff,0x33,0xff,0xf7,0xfe,0x15,0xff,0x83,0xff,0xfd,0xff, +0x90,0x0,0x48,0x1,0xd7,0x1,0x1a,0x2,0x31,0x2,0x5,0x2, +0x8d,0x1,0xe,0x1,0x9a,0x0,0x16,0x0,0xad,0xff,0x82,0xff, +0x7d,0xff,0x9e,0xff,0xe3,0xff,0x24,0x0,0x4e,0x0,0x6d,0x0, +0x7c,0x0,0x67,0x0,0xe,0x0,0x74,0xff,0xce,0xfe,0x1c,0xfe, +0x43,0xfd,0x83,0xfc,0x1c,0xfc,0xea,0xfb,0xdc,0xfb,0x32,0xfc, +0x14,0xfd,0x5d,0xfe,0xe4,0xff,0x9d,0x1,0x5b,0x3,0xae,0x4, +0x5c,0x5,0x94,0x5,0x68,0x5,0x96,0x4,0xfe,0x2,0x0,0x1, +0x29,0xff,0x93,0xfd,0xf,0xfc,0x7,0xfb,0x2a,0xfb,0x48,0xfc, +0xa5,0xfd,0x1b,0xff,0xd9,0x0,0x6e,0x2,0x24,0x3,0x2b,0x3, +0x10,0x3,0x87,0x2,0x47,0x1,0xf8,0xff,0x4,0xff,0x21,0xfe, +0x65,0xfd,0x1d,0xfd,0x4d,0xfd,0x2,0xfe,0x2,0xff,0xe3,0xff, +0xc2,0x0,0x8b,0x1,0x9f,0x1,0x21,0x1,0xb1,0x0,0x3a,0x0, +0x8d,0xff,0xf0,0xfe,0x86,0xfe,0x3e,0xfe,0xd,0xfe,0xf2,0xfd, +0xd,0xfe,0x5b,0xfe,0x88,0xfe,0x7c,0xfe,0x9c,0xfe,0x21,0xff, +0x8e,0xff,0x7e,0xff,0x7a,0xff,0xf5,0xff,0x7a,0x0,0xca,0x0, +0x2b,0x1,0x7c,0x1,0x99,0x1,0xab,0x1,0x9e,0x1,0x63,0x1, +0x18,0x1,0xa8,0x0,0x26,0x0,0xce,0xff,0x7b,0xff,0x30,0xff, +0x42,0xff,0x95,0xff,0xdc,0xff,0x19,0x0,0x5d,0x0,0xa6,0x0, +0xd1,0x0,0xc9,0x0,0xbb,0x0,0xa7,0x0,0x5d,0x0,0x0,0x0, +0xc9,0xff,0xab,0xff,0xa9,0xff,0xbe,0xff,0xe5,0xff,0x45,0x0, +0xa2,0x0,0xa4,0x0,0x92,0x0,0x8a,0x0,0x31,0x0,0xa3,0xff, +0x3a,0xff,0xe8,0xfe,0x97,0xfe,0x59,0xfe,0x41,0xfe,0x72,0xfe, +0xd1,0xfe,0x33,0xff,0x9a,0xff,0xf9,0xff,0x47,0x0,0x7f,0x0, +0x5e,0x0,0xed,0xff,0xaf,0xff,0x9e,0xff,0x5c,0xff,0x20,0xff, +0x30,0xff,0x64,0xff,0xb2,0xff,0x24,0x0,0x84,0x0,0xb2,0x0, +0xd3,0x0,0xf4,0x0,0xe1,0x0,0x93,0x0,0x44,0x0,0xf7,0xff, +0x98,0xff,0x61,0xff,0x67,0xff,0x72,0xff,0x8c,0xff,0xd1,0xff, +0x24,0x0,0x68,0x0,0xa4,0x0,0xd7,0x0,0xf8,0x0,0xf2,0x0, +0xd8,0x0,0xdd,0x0,0xd0,0x0,0x7e,0x0,0x27,0x0,0xfc,0xff, +0xe0,0xff,0xd3,0xff,0xd8,0xff,0xd1,0xff,0xbe,0xff,0xc1,0xff, +0xd5,0xff,0xdd,0xff,0xe7,0xff,0x6,0x0,0x16,0x0,0xe,0x0, +0x25,0x0,0x44,0x0,0x1d,0x0,0xce,0xff,0x9f,0xff,0x96,0xff, +0xa1,0xff,0x9d,0xff,0x9c,0xff,0xe3,0xff,0x38,0x0,0x49,0x0, +0x54,0x0,0x6d,0x0,0x5d,0x0,0x4e,0x0,0x54,0x0,0x3a,0x0, +0x25,0x0,0x39,0x0,0x47,0x0,0x59,0x0,0x77,0x0,0x78,0x0, +0x70,0x0,0x7e,0x0,0x84,0x0,0x7b,0x0,0x60,0x0,0x33,0x0, +0x1b,0x0,0xe,0x0,0xe3,0xff,0xbf,0xff,0xba,0xff,0xab,0xff, +0x95,0xff,0x95,0xff,0x92,0xff,0x7e,0xff,0x62,0xff,0x1e,0xff, +0xab,0xfe,0x49,0xfe,0xa,0xfe,0xb4,0xfd,0x61,0xfd,0x53,0xfd, +0x5a,0xfd,0x59,0xfd,0xa2,0xfd,0x2b,0xfe,0xba,0xfe,0x92,0xff, +0xc8,0x0,0xf7,0x1,0xf6,0x2,0xac,0x3,0xd6,0x3,0x9c,0x3, +0x27,0x3,0x2b,0x2,0xb5,0x0,0x57,0xff,0x42,0xfe,0x54,0xfd, +0xaa,0xfc,0x90,0xfc,0x25,0xfd,0x26,0xfe,0x35,0xff,0x4a,0x0, +0x53,0x1,0xe0,0x1,0xd3,0x1,0x90,0x1,0x29,0x1,0x73,0x0, +0xb9,0xff,0x46,0xff,0xff,0xfe,0xe0,0xfe,0xee,0xfe,0x11,0xff, +0x6d,0xff,0xf,0x0,0x99,0x0,0xef,0x0,0x34,0x1,0x2d,0x1, +0xc7,0x0,0x54,0x0,0xcd,0xff,0x8,0xff,0x42,0xfe,0xb7,0xfd, +0x5e,0xfd,0x35,0xfd,0x3c,0xfd,0x72,0xfd,0xea,0xfd,0x9a,0xfe, +0x59,0xff,0xa,0x0,0xa3,0x0,0x11,0x1,0x3f,0x1,0x36,0x1, +0x1a,0x1,0xea,0x0,0x96,0x0,0x44,0x0,0x1c,0x0,0xd,0x0, +0xa,0x0,0x21,0x0,0x55,0x0,0x81,0x0,0x88,0x0,0x80,0x0, +0x6c,0x0,0x16,0x0,0x99,0xff,0x4b,0xff,0x2a,0xff,0x27,0xff, +0x68,0xff,0xca,0xff,0x13,0x0,0x63,0x0,0xc4,0x0,0xf5,0x0, +0xda,0x0,0x9b,0x0,0x64,0x0,0x27,0x0,0xda,0xff,0xb2,0xff, +0xbe,0xff,0xd7,0xff,0xd,0x0,0x5f,0x0,0x8e,0x0,0x94,0x0, +0x84,0x0,0x47,0x0,0xea,0xff,0x76,0xff,0xf1,0xfe,0x96,0xfe, +0x73,0xfe,0x6b,0xfe,0xa2,0xfe,0x10,0xff,0x6e,0xff,0xd6,0xff, +0x59,0x0,0xa3,0x0,0xa3,0x0,0x8e,0x0,0x6c,0x0,0x3a,0x0, +0xf9,0xff,0xba,0xff,0xa7,0xff,0xac,0xff,0xb5,0xff,0xe1,0xff, +0x1d,0x0,0x3f,0x0,0x5e,0x0,0x76,0x0,0x61,0x0,0x31,0x0, +0xee,0xff,0x98,0xff,0x52,0xff,0x22,0xff,0x9,0xff,0x24,0xff, +0x61,0xff,0xa4,0xff,0xfa,0xff,0x4c,0x0,0x80,0x0,0xb9,0x0, +0xfb,0x0,0x1c,0x1,0x1f,0x1,0x23,0x1,0x1d,0x1,0xf7,0x0, +0xc4,0x0,0x98,0x0,0x60,0x0,0x1c,0x0,0xe1,0xff,0x9e,0xff, +0x57,0xff,0x33,0xff,0x24,0xff,0x2b,0xff,0x6b,0xff,0xb7,0xff, +0xe6,0xff,0x1d,0x0,0x42,0x0,0x2c,0x0,0x15,0x0,0x16,0x0, +0x8,0x0,0xf1,0xff,0xf0,0xff,0x4,0x0,0x1c,0x0,0x2e,0x0, +0x4d,0x0,0x73,0x0,0x7b,0x0,0x79,0x0,0x87,0x0,0x75,0x0, +0x3f,0x0,0x15,0x0,0xef,0xff,0xc8,0xff,0xb1,0xff,0x9d,0xff, +0x9c,0xff,0xb7,0xff,0xcc,0xff,0xdd,0xff,0xfc,0xff,0xd,0x0, +0xe,0x0,0xd,0x0,0x0,0x0,0xf7,0xff,0x4,0x0,0x1e,0x0, +0x42,0x0,0x68,0x0,0x8a,0x0,0xaf,0x0,0xc1,0x0,0xb5,0x0, +0xaa,0x0,0x87,0x0,0x3b,0x0,0xf9,0xff,0xb6,0xff,0x4f,0xff, +0xec,0xfe,0x9d,0xfe,0x46,0xfe,0xf9,0xfd,0xc9,0xfd,0xb5,0xfd, +0xc6,0xfd,0xf5,0xfd,0x41,0xfe,0xab,0xfe,0x22,0xff,0xc2,0xff, +0x9d,0x0,0x5e,0x1,0xda,0x1,0x49,0x2,0x9f,0x2,0xa4,0x2, +0x66,0x2,0xde,0x1,0xfc,0x0,0x8,0x0,0x48,0xff,0x9f,0xfe, +0x16,0xfe,0x6,0xfe,0x71,0xfe,0x1,0xff,0xa7,0xff,0x6e,0x0, +0x6,0x1,0x33,0x1,0x14,0x1,0xc5,0x0,0x47,0x0,0xad,0xff, +0x1c,0xff,0xc7,0xfe,0xc6,0xfe,0xf4,0xfe,0x47,0xff,0xd7,0xff, +0x82,0x0,0x1c,0x1,0x90,0x1,0xca,0x1,0xb9,0x1,0x58,0x1, +0xad,0x0,0xeb,0xff,0x31,0xff,0x75,0xfe,0xea,0xfd,0xc9,0xfd, +0xe8,0xfd,0x20,0xfe,0x87,0xfe,0x14,0xff,0x96,0xff,0xfa,0xff, +0x59,0x0,0xa8,0x0,0xb3,0x0,0x85,0x0,0x65,0x0,0x55,0x0, +0x2c,0x0,0x3,0x0,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xfe,0xff, +0xe,0x0,0x24,0x0,0x3d,0x0,0x5b,0x0,0x6d,0x0,0x5e,0x0, +0x4f,0x0,0x51,0x0,0x3d,0x0,0x2b,0x0,0x3e,0x0,0x4c,0x0, +0x4b,0x0,0x60,0x0,0x6a,0x0,0x54,0x0,0x3d,0x0,0x25,0x0, +0x1,0x0,0xe3,0xff,0xc5,0xff,0xae,0xff,0xb8,0xff,0xd9,0xff, +0xf9,0xff,0x18,0x0,0x3c,0x0,0x5a,0x0,0x68,0x0,0x66,0x0, +0x56,0x0,0x31,0x0,0x0,0x0,0xd4,0xff,0xa6,0xff,0x7e,0xff, +0x6a,0xff,0x5c,0xff,0x53,0xff,0x59,0xff,0x55,0xff,0x55,0xff, +0x7b,0xff,0xa1,0xff,0xb8,0xff,0xe5,0xff,0x11,0x0,0x24,0x0, +0x38,0x0,0x54,0x0,0x72,0x0,0x8b,0x0,0x89,0x0,0x7f,0x0, +0x79,0x0,0x49,0x0,0x1,0x0,0xd8,0xff,0xb1,0xff,0x84,0xff, +0x82,0xff,0x9a,0xff,0xab,0xff,0xd1,0xff,0xd,0x0,0x42,0x0, +0x6c,0x0,0x85,0x0,0x82,0x0,0x70,0x0,0x56,0x0,0x2a,0x0, +0xf1,0xff,0xbf,0xff,0x97,0xff,0x7b,0xff,0x87,0xff,0xc0,0xff, +0x2,0x0,0x4e,0x0,0xaa,0x0,0xe7,0x0,0xf5,0x0,0xee,0x0, +0xc3,0x0,0x73,0x0,0x21,0x0,0xc8,0xff,0x70,0xff,0x3c,0xff, +0x25,0xff,0x2c,0xff,0x66,0xff,0xb7,0xff,0x9,0x0,0x66,0x0, +0xa8,0x0,0xb9,0x0,0xbc,0x0,0xa5,0x0,0x65,0x0,0x2b,0x0, +0x11,0x0,0xfb,0xff,0xec,0xff,0xf8,0xff,0x16,0x0,0x39,0x0, +0x5b,0x0,0x6f,0x0,0x7c,0x0,0x7f,0x0,0x5c,0x0,0x1b,0x0, +0xe3,0xff,0xb2,0xff,0x81,0xff,0x6d,0xff,0x6d,0xff,0x70,0xff, +0x95,0xff,0xce,0xff,0xef,0xff,0x1b,0x0,0x5b,0x0,0x7b,0x0, +0x8e,0x0,0xab,0x0,0xaf,0x0,0xa6,0x0,0xa5,0x0,0x8f,0x0, +0x71,0x0,0x5c,0x0,0x31,0x0,0xfb,0xff,0xd9,0xff,0xbc,0xff, +0xa0,0xff,0x8a,0xff,0x72,0xff,0x6b,0xff,0x66,0xff,0x39,0xff, +0xd,0xff,0xfa,0xfe,0xcf,0xfe,0x94,0xfe,0x76,0xfe,0x6e,0xfe, +0x7b,0xfe,0xbc,0xfe,0x40,0xff,0xfa,0xff,0xc1,0x0,0x72,0x1, +0x4,0x2,0x4f,0x2,0x41,0x2,0x7,0x2,0x9e,0x1,0xe1,0x0, +0x5,0x0,0x48,0xff,0xb5,0xfe,0x51,0xfe,0x38,0xfe,0x78,0xfe, +0x4,0xff,0xac,0xff,0x4e,0x0,0xdc,0x0,0x2f,0x1,0x38,0x1, +0x10,0x1,0xbd,0x0,0x46,0x0,0xd2,0xff,0x75,0xff,0x39,0xff, +0x2f,0xff,0x46,0xff,0x6d,0xff,0xbb,0xff,0x28,0x0,0x84,0x0, +0xc4,0x0,0x0,0x1,0x20,0x1,0xf6,0x0,0xa6,0x0,0x66,0x0, +0x1d,0x0,0xc0,0xff,0x83,0xff,0x77,0xff,0x6a,0xff,0x56,0xff, +0x55,0xff,0x5a,0xff,0x45,0xff,0x25,0xff,0x25,0xff,0x41,0xff, +0x5e,0xff,0x86,0xff,0xca,0xff,0x1b,0x0,0x68,0x0,0xac,0x0, +0xd7,0x0,0xe6,0x0,0xe5,0x0,0xd6,0x0,0xae,0x0,0x6e,0x0, +0x2c,0x0,0xfa,0xff,0xcb,0xff,0xa3,0xff,0x94,0xff,0x93,0xff, +0xa4,0xff,0xde,0xff,0x28,0x0,0x61,0x0,0x8a,0x0,0xa0,0x0, +0x9e,0x0,0x87,0x0,0x4f,0x0,0x3,0x0,0xbd,0xff,0x76,0xff, +0x45,0xff,0x3e,0xff,0x42,0xff,0x68,0xff,0xd1,0xff,0x3f,0x0, +0x98,0x0,0xfe,0x0,0x40,0x1,0x35,0x1,0x13,0x1,0xdc,0x0, +0x7a,0x0,0xd,0x0,0xa3,0xff,0x3e,0xff,0x7,0xff,0xf5,0xfe, +0xea,0xfe,0x2,0xff,0x4b,0xff,0x9d,0xff,0xe3,0xff,0x28,0x0, +0x60,0x0,0x76,0x0,0x6c,0x0,0x55,0x0,0x39,0x0,0x1e,0x0, +0x12,0x0,0xc,0x0,0x1,0x0,0xff,0xff,0x13,0x0,0x27,0x0, +0x28,0x0,0x1f,0x0,0x1a,0x0,0x11,0x0,0xf2,0xff,0xd4,0xff, +0xd3,0xff,0xd7,0xff,0xd5,0xff,0xe3,0xff,0xf4,0xff,0xf8,0xff, +0xff,0xff,0x4,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x5,0x0, +0x14,0x0,0x26,0x0,0x3a,0x0,0x53,0x0,0x6b,0x0,0x87,0x0, +0xa3,0x0,0xaa,0x0,0xa8,0x0,0xa5,0x0,0x8b,0x0,0x5f,0x0, +0x3c,0x0,0x14,0x0,0xe2,0xff,0xbd,0xff,0xab,0xff,0xa0,0xff, +0x9c,0xff,0xa6,0xff,0xc0,0xff,0xdf,0xff,0xf0,0xff,0xff,0xff, +0x1c,0x0,0x33,0x0,0x2b,0x0,0x16,0x0,0x12,0x0,0x16,0x0, +0xc,0x0,0xfe,0xff,0xfc,0xff,0xfe,0xff,0x3,0x0,0x10,0x0, +0x18,0x0,0x13,0x0,0x10,0x0,0x19,0x0,0x25,0x0,0x26,0x0, +0x1f,0x0,0x23,0x0,0x30,0x0,0x31,0x0,0x2b,0x0,0x28,0x0, +0x1c,0x0,0x2,0x0,0xf6,0xff,0xfd,0xff,0x1,0x0,0x7,0x0, +0x29,0x0,0x62,0x0,0x92,0x0,0xbb,0x0,0xdb,0x0,0xd8,0x0, +0xbe,0x0,0x98,0x0,0x50,0x0,0xf2,0xff,0x9a,0xff,0x43,0xff, +0xff,0xfe,0xe2,0xfe,0xd7,0xfe,0xe0,0xfe,0x20,0xff,0x78,0xff, +0xc2,0xff,0x8,0x0,0x42,0x0,0x58,0x0,0x4a,0x0,0x18,0x0, +0xc7,0xff,0x71,0xff,0x31,0xff,0x11,0xff,0xf,0xff,0x31,0xff, +0x8a,0xff,0x6,0x0,0x7d,0x0,0xee,0x0,0x44,0x1,0x5d,0x1, +0x4c,0x1,0x13,0x1,0x95,0x0,0xfc,0xff,0x7f,0xff,0x12,0xff, +0xc6,0xfe,0xc6,0xfe,0x4,0xff,0x5f,0xff,0xca,0xff,0x3a,0x0, +0x9f,0x0,0xdc,0x0,0xdc,0x0,0xbd,0x0,0x93,0x0,0x4f,0x0, +0xfe,0xff,0xcb,0xff,0xbe,0xff,0xbf,0xff,0xc2,0xff,0xd5,0xff, +0x7,0x0,0x42,0x0,0x6d,0x0,0x8c,0x0,0x92,0x0,0x71,0x0, +0x32,0x0,0xe2,0xff,0x90,0xff,0x50,0xff,0x27,0xff,0x19,0xff, +0x32,0xff,0x5e,0xff,0x89,0xff,0xbf,0xff,0xed,0xff,0xf5,0xff, +0xf6,0xff,0x7,0x0,0x15,0x0,0x16,0x0,0x18,0x0,0x20,0x0, +0x38,0x0,0x52,0x0,0x51,0x0,0x42,0x0,0x39,0x0,0x24,0x0, +0x9,0x0,0x2,0x0,0xf8,0xff,0xea,0xff,0xf1,0xff,0xf4,0xff, +0xe6,0xff,0xe7,0xff,0xec,0xff,0xe4,0xff,0xf7,0xff,0x21,0x0, +0x36,0x0,0x3f,0x0,0x3e,0x0,0x26,0x0,0x10,0x0,0x2,0x0, +0xed,0xff,0xe7,0xff,0xf0,0xff,0xf6,0xff,0x10,0x0,0x33,0x0, +0x3f,0x0,0x54,0x0,0x76,0x0,0x77,0x0,0x62,0x0,0x52,0x0, +0x2e,0x0,0x1,0x0,0xe6,0xff,0xc4,0xff,0x9d,0xff,0x92,0xff, +0x9a,0xff,0xa1,0xff,0xa8,0xff,0xb5,0xff,0xc7,0xff,0xd5,0xff, +0xda,0xff,0xe9,0xff,0xff,0xff,0x5,0x0,0x5,0x0,0x1b,0x0, +0x2d,0x0,0x23,0x0,0x16,0x0,0x1c,0x0,0x19,0x0,0x6,0x0, +0x2,0x0,0x3,0x0,0xef,0xff,0xd9,0xff,0xd1,0xff,0xce,0xff, +0xd3,0xff,0xe3,0xff,0xf5,0xff,0x10,0x0,0x28,0x0,0x2b,0x0, +0x2d,0x0,0x33,0x0,0x22,0x0,0xb,0x0,0xf,0x0,0x13,0x0, +0x5,0x0,0xfb,0xff,0xf8,0xff,0xfa,0xff,0xe,0x0,0x2a,0x0, +0x39,0x0,0x3d,0x0,0x44,0x0,0x54,0x0,0x58,0x0,0x47,0x0, +0x38,0x0,0x32,0x0,0x1c,0x0,0x4,0x0,0x9,0x0,0x11,0x0, +0x8,0x0,0xb,0x0,0x14,0x0,0x3,0x0,0xf5,0xff,0xfe,0xff, +0xf3,0xff,0xdb,0xff,0xdc,0xff,0xe1,0xff,0xcf,0xff,0xc9,0xff, +0xdb,0xff,0xeb,0xff,0xfc,0xff,0x13,0x0,0x28,0x0,0x3d,0x0, +0x48,0x0,0x3d,0x0,0x2a,0x0,0x21,0x0,0x14,0x0,0xfa,0xff, +0xe3,0xff,0xd4,0xff,0xcb,0xff,0xc9,0xff,0xce,0xff,0xd1,0xff, +0xd2,0xff,0xd6,0xff,0xdc,0xff,0xea,0xff,0xfe,0xff,0xb,0x0, +0x17,0x0,0x33,0x0,0x4a,0x0,0x48,0x0,0x4d,0x0,0x5f,0x0, +0x56,0x0,0x38,0x0,0x2f,0x0,0x31,0x0,0x2b,0x0,0x2a,0x0, +0x33,0x0,0x37,0x0,0x38,0x0,0x37,0x0,0x23,0x0,0x1,0x0, +0xdb,0xff,0xac,0xff,0x85,0xff,0x80,0xff,0x8a,0xff,0x8a,0xff, +0x9f,0xff,0xd5,0xff,0x4,0x0,0x2a,0x0,0x51,0x0,0x65,0x0, +0x5f,0x0,0x4a,0x0,0x22,0x0,0xf0,0xff,0xc2,0xff,0x8f,0xff, +0x6a,0xff,0x69,0xff,0x6f,0xff,0x79,0xff,0xa6,0xff,0xdd,0xff, +0xfe,0xff,0x22,0x0,0x50,0x0,0x6d,0x0,0x75,0x0,0x6d,0x0, +0x59,0x0,0x41,0x0,0x1e,0x0,0xed,0xff,0xc4,0xff,0xb2,0xff, +0xac,0xff,0xb3,0xff,0xcf,0xff,0xfb,0xff,0x26,0x0,0x43,0x0, +0x57,0x0,0x5a,0x0,0x3b,0x0,0x12,0x0,0xfa,0xff,0xdd,0xff, +0xb7,0xff,0xaa,0xff,0xb8,0xff,0xcd,0xff,0xe9,0xff,0x2,0x0, +0x1d,0x0,0x4c,0x0,0x75,0x0,0x78,0x0,0x6b,0x0,0x5f,0x0, +0x37,0x0,0xfc,0xff,0xce,0xff,0xac,0xff,0x91,0xff,0x85,0xff, +0x8a,0xff,0xa0,0xff,0xbb,0xff,0xca,0xff,0xd2,0xff,0xe5,0xff, +0xfa,0xff,0x3,0x0,0xb,0x0,0x18,0x0,0x1d,0x0,0x19,0x0, +0x1c,0x0,0x1b,0x0,0xf,0x0,0x9,0x0,0x7,0x0,0xec,0xff, +0xd1,0xff,0xd1,0xff,0xd1,0xff,0xcf,0xff,0xee,0xff,0x12,0x0, +0x1e,0x0,0x32,0x0,0x4b,0x0,0x4c,0x0,0x49,0x0,0x45,0x0, +0x26,0x0,0x9,0x0,0xfc,0xff,0xe0,0xff,0xbf,0xff,0xb6,0xff, +0xba,0xff,0xca,0xff,0xf4,0xff,0x1d,0x0,0x37,0x0,0x57,0x0, +0x70,0x0,0x6d,0x0,0x61,0x0,0x56,0x0,0x3b,0x0,0x18,0x0, +0x5,0x0,0xf5,0xff,0xe4,0xff,0xe5,0xff,0xfa,0xff,0x5,0x0, +0xff,0xff,0xf9,0xff,0xf4,0xff,0xe9,0xff,0xe2,0xff,0xd9,0xff, +0xd2,0xff,0xdb,0xff,0xeb,0xff,0xf4,0xff,0x7,0x0,0x21,0x0, +0x2b,0x0,0x36,0x0,0x48,0x0,0x41,0x0,0x25,0x0,0xc,0x0, +0xf6,0xff,0xdd,0xff,0xcb,0xff,0xc3,0xff,0xc5,0xff,0xcf,0xff, +0xdb,0xff,0xf1,0xff,0xd,0x0,0x1c,0x0,0x21,0x0,0x29,0x0, +0x29,0x0,0x1d,0x0,0x10,0x0,0xfd,0xff,0xe9,0xff,0xde,0xff, +0xd5,0xff,0xce,0xff,0xd8,0xff,0xed,0xff,0x1,0x0,0x14,0x0, +0x23,0x0,0x30,0x0,0x3b,0x0,0x34,0x0,0x20,0x0,0x13,0x0, +0x6,0x0,0xfb,0xff,0x4,0x0,0x10,0x0,0x17,0x0,0x2b,0x0, +0x44,0x0,0x4c,0x0,0x4c,0x0,0x47,0x0,0x36,0x0,0x1f,0x0, +0x0,0x0,0xdd,0xff,0xca,0xff,0xc0,0xff,0xad,0xff,0xa9,0xff, +0xc2,0xff,0xdb,0xff,0xf1,0xff,0xb,0x0,0x19,0x0,0x16,0x0, +0x18,0x0,0x18,0x0,0xd,0x0,0x6,0x0,0x5,0x0,0xfe,0xff, +0x2,0x0,0x10,0x0,0xf,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0xf5,0xff,0xe9,0xff,0xe7,0xff,0xec,0xff,0xef,0xff,0xf1,0xff, +0xf8,0xff,0x0,0x0,0x6,0x0,0x8,0x0,0x7,0x0,0x2,0x0, +0xff,0xff,0x1,0x0,0x5,0x0,0x8,0x0,0x9,0x0,0x6,0x0, +0x9,0x0,0x12,0x0,0x16,0x0,0x14,0x0,0x10,0x0,0x12,0x0, +0x1c,0x0,0x1e,0x0,0x15,0x0,0x18,0x0,0x1e,0x0,0x12,0x0, +0x5,0x0,0x5,0x0,0x1,0x0,0xfb,0xff,0x0,0x0,0x1,0x0, +0xf9,0xff,0xfb,0xff,0x5,0x0,0x9,0x0,0xe,0x0,0x19,0x0, +0x21,0x0,0x25,0x0,0x22,0x0,0x16,0x0,0x4,0x0,0xef,0xff, +0xd5,0xff,0xbf,0xff,0xaf,0xff,0x9f,0xff,0x92,0xff,0x92,0xff, +0x9f,0xff,0xb2,0xff,0xca,0xff,0xe3,0xff,0x2,0x0,0x2a,0x0, +0x4e,0x0,0x65,0x0,0x6f,0x0,0x6e,0x0,0x60,0x0,0x43,0x0, +0x1b,0x0,0xf0,0xff,0xca,0xff,0xae,0xff,0xa2,0xff,0xa8,0xff, +0xb9,0xff,0xd2,0xff,0xf1,0xff,0xe,0x0,0x23,0x0,0x32,0x0, +0x3c,0x0,0x3d,0x0,0x30,0x0,0x1c,0x0,0x7,0x0,0xef,0xff, +0xd9,0xff,0xcf,0xff,0xcf,0xff,0xd4,0xff,0xe6,0xff,0x0,0x0, +0x14,0x0,0x24,0x0,0x30,0x0,0x32,0x0,0x27,0x0,0x15,0x0, +0x6,0x0,0xfb,0xff,0xec,0xff,0xe1,0xff,0xe3,0xff,0xe6,0xff, +0xe4,0xff,0xea,0xff,0xf1,0xff,0xf0,0xff,0xee,0xff,0xee,0xff, +0xeb,0xff,0xec,0xff,0xed,0xff,0xee,0xff,0xf5,0xff,0xfd,0xff, +0xff,0xff,0x5,0x0,0xc,0x0,0xc,0x0,0x11,0x0,0x1a,0x0, +0x1f,0x0,0x20,0x0,0x20,0x0,0x17,0x0,0x9,0x0,0xfc,0xff, +0xf0,0xff,0xe8,0xff,0xe8,0xff,0xeb,0xff,0xf1,0xff,0xf7,0xff, +0xf8,0xff,0xf4,0xff,0xf4,0xff,0xfa,0xff,0x2,0x0,0x6,0x0, +0xa,0x0,0x17,0x0,0x22,0x0,0x27,0x0,0x2a,0x0,0x27,0x0, +0x1b,0x0,0xf,0x0,0x4,0x0,0xf6,0xff,0xef,0xff,0xf3,0xff, +0xf3,0xff,0xf0,0xff,0xf7,0xff,0x2,0x0,0x6,0x0,0x7,0x0, +0xd,0x0,0x10,0x0,0xc,0x0,0x6,0x0,0x0,0x0,0xf5,0xff, +0xea,0xff,0xe8,0xff,0xea,0xff,0xea,0xff,0xf1,0xff,0x0,0x0, +0x7,0x0,0xb,0x0,0x15,0x0,0x1d,0x0,0x1f,0x0,0x1f,0x0, +0x19,0x0,0xe,0x0,0x6,0x0,0xfe,0xff,0xf6,0xff,0xf3,0xff, +0xef,0xff,0xe9,0xff,0xea,0xff,0xe9,0xff,0xe6,0xff,0xe8,0xff, +0xeb,0xff,0xee,0xff,0xf6,0xff,0x1,0x0,0x9,0x0,0x10,0x0, +0x15,0x0,0x18,0x0,0x1b,0x0,0x1b,0x0,0x15,0x0,0xd,0x0, +0x4,0x0,0xfa,0xff,0xf4,0xff,0xf1,0xff,0xf4,0xff,0xfb,0xff, +0xfc,0xff,0xff,0xff,0x9,0x0,0xb,0x0,0x9,0x0,0xa,0x0, +0x9,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0x2,0x0,0x6,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xf6,0xff,0xf5,0xff, +0xf8,0xff,0xf8,0xff,0xfa,0xff,0x5,0x0,0xf,0x0,0x14,0x0, +0x15,0x0,0x12,0x0,0xb,0x0,0x2,0x0,0xf7,0xff,0xed,0xff, +0xe6,0xff,0xe5,0xff,0xe8,0xff,0xed,0xff,0xf3,0xff,0xff,0xff, +0xc,0x0,0x10,0x0,0x12,0x0,0x14,0x0,0xd,0x0,0x2,0x0, +0xfd,0xff,0xf5,0xff,0xea,0xff,0xe7,0xff,0xe7,0xff,0xea,0xff, +0xf4,0xff,0x0,0x0,0xa,0x0,0x16,0x0,0x1e,0x0,0x1b,0x0, +0x19,0x0,0x1a,0x0,0x13,0x0,0x9,0x0,0x2,0x0,0xff,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x6,0x0, +0x9,0x0,0xb,0x0,0xd,0x0,0xf,0x0,0x10,0x0,0xd,0x0, +0x8,0x0,0x3,0x0,0xfd,0xff,0xf8,0xff,0xf5,0xff,0xf5,0xff, +0xf5,0xff,0xf5,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0xfd,0xff,0xf8,0xff,0xf3,0xff,0xed,0xff,0xe8,0xff, +0xe4,0xff,0xe2,0xff,0xe3,0xff,0xec,0xff,0xf8,0xff,0x6,0x0, +0x12,0x0,0x1f,0x0,0x2b,0x0,0x30,0x0,0x2c,0x0,0x20,0x0, +0xd,0x0,0xf8,0xff,0xe6,0xff,0xdb,0xff,0xd7,0xff,0xdd,0xff, +0xe9,0xff,0xf4,0xff,0x0,0x0,0xd,0x0,0x15,0x0,0x19,0x0, +0x1b,0x0,0x17,0x0,0x10,0x0,0xb,0x0,0x6,0x0,0xfd,0xff, +0xf7,0xff,0xf6,0xff,0xf6,0xff,0xfa,0xff,0x3,0x0,0xa,0x0, +0xe,0x0,0xf,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x0,0x0, +0xfc,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xf7,0xff,0xf8,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0x5,0x0,0xa,0x0,0xb,0x0,0xd,0x0,0xb,0x0,0x3,0x0, +0xfd,0xff,0xf8,0xff,0xf0,0xff,0xeb,0xff,0xec,0xff,0xee,0xff, +0xf1,0xff,0xf7,0xff,0x0,0x0,0x9,0x0,0x10,0x0,0x13,0x0, +0x16,0x0,0x16,0x0,0x11,0x0,0xd,0x0,0x7,0x0,0xff,0xff, +0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfc,0xff, +0x1,0x0,0x6,0x0,0x4,0x0,0x0,0x0,0xfe,0xff,0xf9,0xff, +0xf7,0xff,0xf7,0xff,0xf3,0xff,0xf5,0xff,0xfb,0xff,0xfd,0xff, +0x1,0x0,0x9,0x0,0xc,0x0,0xc,0x0,0x11,0x0,0x12,0x0, +0x11,0x0,0x11,0x0,0xd,0x0,0x7,0x0,0x5,0x0,0xff,0xff, +0xf7,0xff,0xf4,0xff,0xf0,0xff,0xea,0xff,0xea,0xff,0xed,0xff, +0xec,0xff,0xed,0xff,0xf0,0xff,0xf2,0xff,0xf6,0xff,0xfa,0xff, +0xfb,0xff,0x0,0x0,0x6,0x0,0x9,0x0,0xc,0x0,0xd,0x0, +0xd,0x0,0xd,0x0,0xb,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x3,0x0,0x1,0x0,0x2,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xfa,0xff,0xf7,0xff,0xf7,0xff,0xf4,0xff,0xf3,0xff,0xf5,0xff, +0xf4,0xff,0xf3,0xff,0xf7,0xff,0xfd,0xff,0x1,0x0,0x6,0x0, +0xc,0x0,0x10,0x0,0x12,0x0,0x13,0x0,0x13,0x0,0x12,0x0, +0x10,0x0,0x9,0x0,0x1,0x0,0xfc,0xff,0xf9,0xff,0xf5,0xff, +0xf0,0xff,0xf0,0xff,0xf1,0xff,0xf3,0xff,0xf7,0xff,0xf9,0xff, +0xf8,0xff,0xf8,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0x3,0x0,0x6,0x0,0x7,0x0,0xa,0x0, +0xc,0x0,0xe,0x0,0xd,0x0,0xa,0x0,0x5,0x0,0x2,0x0, +0xfe,0xff,0xf9,0xff,0xf6,0xff,0xf3,0xff,0xf1,0xff,0xf2,0xff, +0xf5,0xff,0xf7,0xff,0xf9,0xff,0xfc,0xff,0xff,0xff,0x2,0x0, +0x3,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x1,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x5,0x0,0x4,0x0,0x5,0x0, +0x7,0x0,0x6,0x0,0x3,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf8,0xff,0xfc,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x8,0x0,0x7,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x8,0x0, +0x5,0x0,0x2,0x0,0x0,0x0,0xfb,0xff,0xf6,0xff,0xf6,0xff, +0xf7,0xff,0xf9,0xff,0xfe,0xff,0x2,0x0,0x4,0x0,0x8,0x0, +0xa,0x0,0x9,0x0,0x8,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xf8,0xff,0xfa,0xff,0xff,0xff,0x2,0x0,0x8,0x0, +0xb,0x0,0xa,0x0,0xc,0x0,0xc,0x0,0x5,0x0,0xff,0xff, +0xfc,0xff,0xf7,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf4,0xff, +0xfa,0xff,0xfd,0xff,0x1,0x0,0x6,0x0,0xa,0x0,0xb,0x0, +0xb,0x0,0x7,0x0,0x4,0x0,0x2,0x0,0xfc,0xff,0xf8,0xff, +0xf9,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0, +0x2,0x0,0x2,0x0,0x4,0x0,0x7,0x0,0x6,0x0,0x6,0x0, +0x7,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xfc,0xff,0x0,0x0,0x3,0x0,0x5,0x0,0x8,0x0,0x9,0x0, +0x6,0x0,0x2,0x0,0xff,0xff,0xff,0xff,0xfc,0xff,0xfa,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x5,0x0,0x9,0x0,0x9,0x0, +0x8,0x0,0x6,0x0,0x2,0x0,0xfd,0xff,0xf8,0xff,0xf7,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0x3,0x0,0x8,0x0,0x9,0x0, +0xc,0x0,0xd,0x0,0xa,0x0,0x7,0x0,0x3,0x0,0xfb,0xff, +0xf7,0xff,0xf5,0xff,0xf2,0xff,0xf4,0xff,0xf9,0xff,0xfb,0xff, +0xff,0xff,0x5,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x3,0x0, +0xff,0xff,0xfb,0xff,0xf6,0xff,0xf3,0xff,0xf4,0xff,0xf6,0xff, +0xf9,0xff,0x1,0x0,0x7,0x0,0x9,0x0,0xb,0x0,0xc,0x0, +0xb,0x0,0xc,0x0,0xa,0x0,0x5,0x0,0x1,0x0,0xfe,0xff, +0xfc,0xff,0xfa,0xff,0xf7,0xff,0xf5,0xff,0xf7,0xff,0xfa,0xff, +0xfc,0xff,0x0,0x0,0x3,0x0,0x5,0x0,0x8,0x0,0x9,0x0, +0x7,0x0,0x6,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xa,0x0, +0x8,0x0,0x6,0x0,0x5,0x0,0x3,0x0,0xfc,0xff,0xf8,0xff, +0xf8,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf7,0xff,0xf7,0xff, +0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x6,0x0,0x5,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff,0xf8,0xff, +0xf7,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xfe,0xff,0x2,0x0, +0x3,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x2,0x0, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0x2,0x0,0x6,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0x6,0x0,0x2,0x0,0xfd,0xff,0xf9,0xff,0xf7,0xff,0xf6,0xff, +0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfc,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfa,0xff, +0xf9,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x6,0x0,0xa,0x0,0xb,0x0,0xb,0x0,0x9,0x0, +0x5,0x0,0x2,0x0,0xff,0xff,0xf9,0xff,0xf6,0xff,0xf4,0xff, +0xf2,0xff,0xf3,0xff,0xf5,0xff,0xf7,0xff,0xfd,0xff,0x3,0x0, +0x7,0x0,0xa,0x0,0xe,0x0,0xd,0x0,0xd,0x0,0xb,0x0, +0x5,0x0,0x0,0x0,0xfd,0xff,0xf5,0xff,0xf0,0xff,0xf0,0xff, +0xee,0xff,0xef,0xff,0xf6,0xff,0xfa,0xff,0xfe,0xff,0x6,0x0, +0xa,0x0,0xd,0x0,0xf,0x0,0xe,0x0,0xa,0x0,0x7,0x0, +0x2,0x0,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x8,0x0,0x9,0x0,0x6,0x0,0x6,0x0, +0x4,0x0,0xfd,0xff,0xf8,0xff,0xf5,0xff,0xf1,0xff,0xf0,0xff, +0xf2,0xff,0xf4,0xff,0xf7,0xff,0xfb,0xff,0xff,0xff,0x5,0x0, +0x9,0x0,0xa,0x0,0xc,0x0,0xf,0x0,0xe,0x0,0xc,0x0, +0xb,0x0,0x8,0x0,0x4,0x0,0x1,0x0,0xfd,0xff,0xfa,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x2,0x0,0x4,0x0,0x5,0x0,0x8,0x0,0xc,0x0,0xe,0x0, +0xe,0x0,0xe,0x0,0xd,0x0,0xa,0x0,0x4,0x0,0xfe,0xff, +0xf9,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf6,0xff, +0xf9,0xff,0xfb,0xff,0xfd,0xff,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0xfe,0xff,0xfb,0xff,0xfa,0xff,0xf7,0xff,0xf4,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xfa,0xff,0xfe,0xff,0x4,0x0, +0x9,0x0,0xc,0x0,0xd,0x0,0xc,0x0,0xc,0x0,0xa,0x0, +0x7,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0x1,0x0,0x3,0x0,0x6,0x0,0x8,0x0,0x9,0x0,0xb,0x0, +0xc,0x0,0xa,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0xff,0xff, +0xfc,0xff,0xf9,0xff,0xf7,0xff,0xf6,0xff,0xf4,0xff,0xf5,0xff, +0xf8,0xff,0xfa,0xff,0xfe,0xff,0x3,0x0,0x4,0x0,0x4,0x0, +0x6,0x0,0x6,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0x1,0x0,0x5,0x0,0x6,0x0, +0x9,0x0,0xa,0x0,0x9,0x0,0x7,0x0,0x4,0x0,0xff,0xff, +0xfc,0xff,0xf9,0xff,0xf5,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff, +0xf9,0xff,0xfe,0xff,0x0,0x0,0x3,0x0,0x7,0x0,0x8,0x0, +0x8,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff, +0xfc,0xff,0x0,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeleton1.pcm b/src/client/sound/data/skeleton1.pcm new file mode 100755 index 0000000..5cb6fdf --- /dev/null +++ b/src/client/sound/data/skeleton1.pcm @@ -0,0 +1,1781 @@ +unsigned char PCM_skeleton1[56920] = { +1,0,0,0,2,0,0,0,68,172,0,0,36,111,0,0,47,255,206,254,207,254,233,254,220,254,200,254,177,254,136,254, +116,254,119,254,121,254,142,254,193,254,7,255,105,255,227,255,86,0,185,0,11,1,57,1,50,1,248,0,148,0,18,0, +130,255,241,254,122,254,46,254,4,254,246,253,8,254,38,254,63,254,83,254,89,254,76,254,57,254,48,254,48,254,63,254, +96,254,150,254,235,254,102,255,2,0,185,0,128,1,70,2,3,3,171,3,54,4,167,4,254,4,46,5,49,5,17,5, +205,4,99,4,231,3,113,3,18,3,216,2,193,2,186,2,178,2,146,2,72,2,208,1,51,1,125,0,196,255,26,255, +144,254,57,254,27,254,41,254,92,254,177,254,26,255,137,255,247,255,92,0,174,0,235,0,18,1,35,1,37,1,28,1, +11,1,249,0,231,0,212,0,190,0,159,0,111,0,51,0,236,255,147,255,38,255,160,254,250,253,52,253,94,252,133,251, +190,250,35,250,199,249,180,249,230,249,80,250,224,250,129,251,28,252,163,252,18,253,106,253,173,253,230,253,30,254,95,254, +181,254,37,255,171,255,68,0,227,0,124,1,4,2,111,2,182,2,219,2,228,2,216,2,187,2,142,2,82,2,7,2, +174,1,78,1,244,0,171,0,125,0,111,0,129,0,172,0,229,0,35,1,93,1,141,1,178,1,203,1,221,1,237,1, +254,1,20,2,55,2,109,2,182,2,14,3,109,3,200,3,17,4,58,4,57,4,14,4,190,3,84,3,220,2,93,2, +223,1,99,1,234,0,111,0,243,255,118,255,253,254,140,254,41,254,214,253,144,253,83,253,29,253,237,252,190,252,145,252, +104,252,73,252,61,252,68,252,97,252,148,252,218,252,50,253,148,253,247,253,84,254,166,254,236,254,35,255,75,255,99,255, +109,255,110,255,104,255,89,255,64,255,30,255,243,254,189,254,123,254,46,254,220,253,144,253,82,253,45,253,39,253,63,253, +112,253,178,253,249,253,57,254,110,254,155,254,210,254,33,255,142,255,28,0,200,0,138,1,75,2,243,2,114,3,200,3, +249,3,10,4,6,4,248,3,235,3,226,3,218,3,210,3,200,3,183,3,154,3,110,3,51,3,229,2,130,2,16,2, +160,1,63,1,239,0,178,0,139,0,123,0,115,0,99,0,79,0,62,0,51,0,54,0,76,0,123,0,193,0,13,1, +73,1,101,1,90,1,38,1,212,0,121,0,43,0,245,255,211,255,195,255,193,255,193,255,175,255,127,255,54,255,219,254, +110,254,238,253,104,253,238,252,133,252,45,252,232,251,193,251,184,251,191,251,202,251,215,251,230,251,243,251,2,252,33,252, +93,252,175,252,10,253,99,253,190,253,18,254,87,254,138,254,186,254,246,254,59,255,133,255,212,255,38,0,111,0,159,0, +182,0,193,0,199,0,199,0,190,0,180,0,176,0,175,0,175,0,184,0,205,0,236,0,14,1,50,1,88,1,121,1, +143,1,160,1,192,1,246,1,56,2,124,2,192,2,6,3,67,3,110,3,135,3,155,3,177,3,203,3,237,3,21,4, +50,4,47,4,8,4,199,3,121,3,31,3,188,2,94,2,13,2,191,1,105,1,13,1,186,0,110,0,29,0,198,255, +121,255,63,255,11,255,207,254,141,254,79,254,27,254,235,253,197,253,175,253,165,253,149,253,117,253,83,253,61,253,56,253, +57,253,67,253,91,253,127,253,158,253,167,253,148,253,109,253,53,253,246,252,188,252,142,252,112,252,95,252,93,252,104,252, +122,252,142,252,164,252,194,252,232,252,15,253,54,253,93,253,129,253,172,253,235,253,68,254,181,254,57,255,204,255,100,0, +250,0,138,1,9,2,111,2,195,2,18,3,96,3,169,3,239,3,46,4,94,4,116,4,114,4,94,4,59,4,16,4, +227,3,182,3,133,3,81,3,35,3,247,2,191,2,121,2,52,2,244,1,184,1,133,1,103,1,97,1,110,1,141,1, +194,1,9,2,84,2,148,2,182,2,183,2,162,2,126,2,72,2,255,1,179,1,117,1,63,1,252,0,166,0,75,0, +233,255,117,255,240,254,108,254,236,253,105,253,230,252,107,252,249,251,141,251,42,251,207,250,122,250,59,250,27,250,12,250, +1,250,14,250,71,250,166,250,24,251,151,251,34,252,167,252,18,253,105,253,185,253,2,254,70,254,144,254,232,254,64,255, +149,255,230,255,33,0,48,0,33,0,11,0,235,255,191,255,160,255,147,255,128,255,102,255,98,255,107,255,104,255,103,255, +137,255,194,255,2,0,88,0,199,0,68,1,214,1,124,2,20,3,137,3,241,3,83,4,157,4,201,4,236,4,12,5, +39,5,68,5,100,5,126,5,138,5,128,5,94,5,40,5,226,4,139,4,42,4,203,3,105,3,248,2,125,2,8,2, +151,1,34,1,170,0,52,0,197,255,107,255,33,255,217,254,150,254,105,254,77,254,48,254,22,254,6,254,248,253,230,253, +211,253,186,253,155,253,138,253,142,253,156,253,175,253,194,253,199,253,188,253,176,253,156,253,109,253,41,253,232,252,170,252, +102,252,33,252,223,251,167,251,131,251,108,251,78,251,50,251,51,251,83,251,124,251,183,251,10,252,97,252,174,252,1,253, +93,253,176,253,247,253,64,254,145,254,234,254,86,255,216,255,105,0,3,1,162,1,59,2,201,2,80,3,203,3,45,4, +111,4,155,4,192,4,228,4,253,4,250,4,226,4,201,4,177,4,138,4,84,4,23,4,208,3,128,3,54,3,4,3, +231,2,209,2,193,2,183,2,173,2,153,2,128,2,109,2,103,2,108,2,120,2,137,2,152,2,160,2,166,2,173,2, +170,2,138,2,71,2,227,1,108,1,243,0,133,0,31,0,188,255,85,255,236,254,137,254,39,254,186,253,65,253,201,252, +88,252,239,251,141,251,49,251,219,250,152,250,113,250,101,250,103,250,119,250,153,250,204,250,4,251,55,251,108,251,166,251, +225,251,26,252,87,252,153,252,218,252,28,253,103,253,184,253,0,254,57,254,116,254,183,254,244,254,30,255,58,255,89,255, +123,255,151,255,172,255,194,255,222,255,254,255,33,0,78,0,139,0,217,0,53,1,153,1,4,2,118,2,238,2,96,3, +196,3,20,4,80,4,123,4,160,4,206,4,255,4,35,5,53,5,73,5,109,5,140,5,135,5,93,5,36,5,230,4, +150,4,46,4,186,3,73,3,214,2,94,2,237,1,146,1,78,1,27,1,245,0,218,0,193,0,157,0,106,0,46,0, +242,255,181,255,119,255,61,255,14,255,234,254,202,254,170,254,141,254,120,254,97,254,61,254,15,254,222,253,172,253,109,253, +27,253,190,252,97,252,7,252,180,251,110,251,52,251,1,251,206,250,165,250,144,250,144,250,158,250,176,250,196,250,220,250, +252,250,42,251,108,251,192,251,32,252,137,252,252,252,126,253,5,254,141,254,24,255,163,255,34,0,139,0,226,0,48,1, +117,1,170,1,204,1,232,1,8,2,47,2,84,2,115,2,146,2,175,2,189,2,191,2,197,2,215,2,236,2,250,2, +254,2,11,3,48,3,101,3,152,3,200,3,2,4,69,4,128,4,171,4,202,4,216,4,213,4,207,4,212,4,216,4, +199,4,165,4,126,4,87,4,48,4,250,3,177,3,97,3,10,3,159,2,27,2,132,1,229,0,79,0,201,255,64,255, +173,254,39,254,186,253,81,253,234,252,149,252,81,252,12,252,198,251,146,251,122,251,109,251,96,251,92,251,97,251,101,251, +115,251,161,251,215,251,253,251,30,252,70,252,110,252,147,252,181,252,199,252,197,252,188,252,177,252,168,252,165,252,165,252, +172,252,199,252,232,252,252,252,17,253,54,253,92,253,125,253,178,253,255,253,78,254,149,254,233,254,83,255,202,255,72,0, +206,0,82,1,202,1,59,2,174,2,32,3,152,3,23,4,131,4,214,4,29,5,92,5,143,5,198,5,3,6,52,6, +77,6,63,6,255,5,175,5,126,5,92,5,36,5,206,4,109,4,18,4,194,3,108,3,252,2,135,2,31,2,195,1, +134,1,109,1,86,1,43,1,8,1,245,0,220,0,185,0,146,0,105,0,71,0,49,0,28,0,255,255,217,255,163,255, +91,255,12,255,188,254,100,254,3,254,161,253,58,253,195,252,61,252,192,251,96,251,17,251,194,250,108,250,22,250,218,249, +193,249,186,249,189,249,222,249,16,250,52,250,86,250,152,250,242,250,72,251,150,251,232,251,72,252,171,252,247,252,47,253, +118,253,215,253,69,254,188,254,56,255,166,255,2,0,90,0,176,0,252,0,69,1,139,1,190,1,220,1,249,1,37,2, +80,2,111,2,150,2,213,2,13,3,43,3,83,3,153,3,225,3,25,4,73,4,117,4,155,4,187,4,208,4,226,4, +12,5,65,5,80,5,54,5,47,5,75,5,86,5,54,5,23,5,11,5,224,4,119,4,252,3,150,3,49,3,189,2, +82,2,253,1,158,1,29,1,154,0,63,0,1,0,179,255,66,255,200,254,91,254,249,253,145,253,44,253,233,252,203,252, +164,252,82,252,235,251,152,251,96,251,58,251,44,251,50,251,58,251,56,251,51,251,57,251,73,251,91,251,114,251,134,251, +136,251,125,251,115,251,116,251,134,251,173,251,223,251,12,252,57,252,107,252,146,252,164,252,188,252,240,252,40,253,76,253, +115,253,183,253,12,254,94,254,181,254,25,255,130,255,244,255,112,0,237,0,110,1,19,2,217,2,130,3,236,3,58,4, +149,4,233,4,23,5,46,5,74,5,104,5,125,5,131,5,124,5,118,5,122,5,130,5,123,5,92,5,41,5,234,4, +176,4,131,4,74,4,238,3,134,3,58,3,3,3,209,2,182,2,188,2,187,2,152,2,112,2,79,2,16,2,172,1, +83,1,24,1,212,0,122,0,40,0,225,255,142,255,46,255,222,254,160,254,85,254,235,253,115,253,18,253,204,252,128,252, +21,252,168,251,95,251,37,251,208,250,113,250,51,250,17,250,243,249,219,249,211,249,214,249,234,249,35,250,117,250,186,250, +243,250,60,251,148,251,235,251,71,252,174,252,18,253,105,253,188,253,13,254,99,254,207,254,71,255,155,255,193,255,232,255, +42,0,99,0,121,0,136,0,169,0,208,0,242,0,21,1,65,1,121,1,190,1,9,2,82,2,163,2,0,3,86,3, +159,3,243,3,90,4,181,4,250,4,61,5,123,5,156,5,172,5,198,5,223,5,224,5,219,5,227,5,218,5,169,5, +112,5,76,5,34,5,207,4,89,4,218,3,87,3,206,2,74,2,210,1,96,1,235,0,113,0,7,0,187,255,125,255, +50,255,222,254,153,254,100,254,39,254,226,253,171,253,135,253,104,253,72,253,45,253,20,253,251,252,225,252,191,252,145,252, +106,252,87,252,59,252,240,251,136,251,57,251,13,251,223,250,160,250,108,250,78,250,42,250,251,249,232,249,10,250,66,250, +110,250,163,250,252,250,104,251,202,251,38,252,142,252,250,252,103,253,221,253,89,254,205,254,71,255,219,255,116,0,236,0, +74,1,180,1,48,2,158,2,233,2,23,3,62,3,124,3,213,3,42,4,95,4,124,4,150,4,174,4,190,4,204,4, +219,4,226,4,227,4,230,4,234,4,237,4,235,4,216,4,182,4,166,4,181,4,186,4,148,4,96,4,68,4,49,4, +14,4,239,3,228,3,219,3,201,3,184,3,145,3,58,3,197,2,85,2,224,1,84,1,198,0,73,0,197,255,43,255, +154,254,33,254,168,253,40,253,191,252,112,252,27,252,171,251,53,251,214,250,155,250,120,250,89,250,57,250,43,250,45,250, +39,250,28,250,56,250,139,250,228,250,27,251,70,251,132,251,201,251,244,251,0,252,7,252,35,252,85,252,136,252,172,252, +202,252,247,252,48,253,101,253,159,253,226,253,32,254,69,254,93,254,126,254,177,254,239,254,56,255,136,255,213,255,34,0, +122,0,222,0,66,1,172,1,42,2,193,2,88,3,218,3,69,4,172,4,26,5,130,5,202,5,239,5,10,6,40,6, +59,6,54,6,46,6,51,6,51,6,20,6,232,5,198,5,158,5,78,5,223,4,116,4,17,4,159,3,30,3,169,2, +70,2,228,1,126,1,40,1,237,0,198,0,168,0,141,0,113,0,78,0,29,0,219,255,146,255,89,255,59,255,32,255, +226,254,127,254,26,254,209,253,146,253,63,253,226,252,155,252,116,252,79,252,20,252,196,251,104,251,6,251,168,250,94,250, +37,250,239,249,184,249,143,249,135,249,161,249,208,249,10,250,76,250,155,250,248,250,91,251,187,251,22,252,120,252,240,252, +130,253,24,254,151,254,251,254,93,255,206,255,67,0,172,0,11,1,101,1,185,1,0,2,56,2,103,2,143,2,170,2, +177,2,169,2,162,2,159,2,160,2,189,2,11,3,100,3,140,3,133,3,137,3,183,3,245,3,46,4,108,4,176,4, +230,4,8,5,25,5,33,5,44,5,60,5,61,5,36,5,10,5,1,5,236,4,172,4,77,4,235,3,137,3,33,3, +182,2,60,2,175,1,40,1,196,0,110,0,254,255,120,255,243,254,112,254,239,253,135,253,74,253,37,253,246,252,174,252, +88,252,11,252,208,251,159,251,115,251,86,251,77,251,73,251,57,251,35,251,17,251,12,251,26,251,52,251,62,251,53,251, +56,251,84,251,103,251,96,251,93,251,111,251,130,251,148,251,192,251,254,251,45,252,92,252,177,252,17,253,61,253,62,253, +100,253,205,253,75,254,181,254,29,255,148,255,5,0,95,0,200,0,99,1,19,2,160,2,5,3,108,3,227,3,81,4, +175,4,2,5,62,5,96,5,140,5,210,5,7,6,2,6,223,5,203,5,196,5,177,5,144,5,110,5,79,5,47,5, +1,5,190,4,122,4,84,4,52,4,234,3,121,3,19,3,197,2,109,2,13,2,207,1,180,1,140,1,62,1,229,0, +157,0,91,0,11,0,178,255,109,255,73,255,50,255,15,255,217,254,139,254,25,254,158,253,80,253,40,253,228,252,113,252, +11,252,204,251,136,251,39,251,207,250,153,250,118,250,89,250,71,250,47,250,4,250,218,249,204,249,216,249,248,249,52,250, +131,250,199,250,251,250,57,251,147,251,0,252,109,252,209,252,39,253,120,253,214,253,68,254,191,254,65,255,186,255,29,0, +113,0,199,0,25,1,91,1,156,1,236,1,62,2,125,2,184,2,1,3,72,3,116,3,144,3,192,3,5,4,60,4, +88,4,114,4,159,4,197,4,203,4,203,4,239,4,41,5,70,5,63,5,53,5,58,5,68,5,83,5,101,5,94,5, +50,5,254,4,215,4,171,4,96,4,254,3,147,3,39,3,186,2,66,2,186,1,45,1,177,0,75,0,239,255,154,255, +72,255,240,254,158,254,99,254,49,254,234,253,150,253,75,253,8,253,201,252,157,252,129,252,85,252,23,252,236,251,227,251, +226,251,224,251,223,251,215,251,189,251,158,251,131,251,105,251,92,251,104,251,117,251,97,251,75,251,98,251,141,251,153,251, +162,251,218,251,28,252,53,252,77,252,160,252,9,253,76,253,119,253,180,253,250,253,60,254,136,254,239,254,97,255,201,255, +40,0,145,0,12,1,135,1,238,1,78,2,186,2,39,3,123,3,187,3,249,3,52,4,99,4,152,4,222,4,23,5, +31,5,8,5,250,4,238,4,212,4,193,4,192,4,187,4,172,4,174,4,177,4,139,4,73,4,27,4,4,4,228,3, +193,3,172,3,150,3,100,3,34,3,235,2,191,2,144,2,91,2,19,2,169,1,52,1,220,0,162,0,97,0,10,0, +157,255,17,255,114,254,236,253,142,253,62,253,236,252,163,252,103,252,25,252,169,251,56,251,238,250,199,250,172,250,163,250, +193,250,243,250,18,251,13,251,240,250,218,250,229,250,12,251,47,251,64,251,71,251,76,251,94,251,149,251,246,251,96,252, +171,252,211,252,248,252,61,253,176,253,59,254,184,254,29,255,123,255,207,255,252,255,249,255,237,255,250,255,32,0,99,0, +197,0,34,1,95,1,155,1,249,1,103,2,207,2,49,3,129,3,179,3,226,3,31,4,90,4,138,4,186,4,231,4, +254,4,248,4,237,4,3,5,62,5,113,5,120,5,91,5,42,5,240,4,199,4,175,4,118,4,250,3,101,3,240,2, +152,2,64,2,225,1,134,1,34,1,159,0,17,0,173,255,111,255,32,255,184,254,105,254,62,254,15,254,208,253,150,253, +99,253,46,253,2,253,242,252,243,252,237,252,216,252,194,252,184,252,177,252,159,252,127,252,86,252,27,252,200,251,115,251, +66,251,47,251,21,251,234,250,205,250,196,250,182,250,166,250,181,250,238,250,69,251,178,251,50,252,175,252,21,253,100,253, +174,253,0,254,75,254,134,254,205,254,61,255,198,255,57,0,133,0,196,0,25,1,127,1,205,1,1,2,83,2,214,2, +75,3,119,3,117,3,116,3,125,3,138,3,163,3,202,3,245,3,27,4,53,4,52,4,35,4,41,4,79,4,98,4, +49,4,235,3,216,3,240,3,251,3,233,3,214,3,216,3,234,3,250,3,252,3,244,3,224,3,183,3,123,3,56,3, +236,2,159,2,85,2,252,1,138,1,26,1,187,0,90,0,248,255,165,255,79,255,240,254,181,254,151,254,73,254,189,253, +62,253,231,252,140,252,33,252,187,251,94,251,8,251,198,250,164,250,153,250,150,250,147,250,154,250,192,250,249,250,35,251, +63,251,114,251,188,251,238,251,247,251,9,252,75,252,160,252,211,252,227,252,240,252,18,253,70,253,129,253,182,253,234,253, +40,254,86,254,97,254,126,254,233,254,107,255,177,255,220,255,64,0,199,0,37,1,113,1,238,1,139,2,5,3,87,3, +170,3,4,4,78,4,136,4,193,4,255,4,71,5,158,5,231,5,253,5,231,5,200,5,189,5,209,5,240,5,235,5, +180,5,126,5,106,5,73,5,250,4,157,4,90,4,37,4,224,3,113,3,221,2,82,2,246,1,169,1,54,1,158,0, +12,0,167,255,112,255,74,255,30,255,231,254,150,254,48,254,233,253,208,253,165,253,78,253,6,253,220,252,153,252,66,252, +18,252,11,252,252,251,212,251,141,251,39,251,199,250,150,250,140,250,147,250,157,250,164,250,176,250,200,250,221,250,232,250, +0,251,49,251,97,251,144,251,211,251,41,252,123,252,207,252,53,253,153,253,222,253,34,254,138,254,254,254,82,255,169,255, +60,0,229,0,93,1,164,1,231,1,49,2,117,2,166,2,197,2,239,2,53,3,121,3,152,3,170,3,209,3,8,4, +53,4,70,4,59,4,47,4,62,4,94,4,114,4,116,4,109,4,115,4,151,4,197,4,215,4,210,4,213,4,205,4, +154,4,98,4,90,4,100,4,55,4,221,3,152,3,102,3,20,3,162,2,62,2,233,1,142,1,58,1,250,0,174,0, +64,0,199,255,91,255,245,254,133,254,11,254,163,253,92,253,27,253,195,252,107,252,43,252,247,251,188,251,130,251,95,251, +89,251,80,251,45,251,27,251,59,251,92,251,85,251,80,251,103,251,129,251,162,251,210,251,220,251,174,251,132,251,130,251, +151,251,196,251,1,252,40,252,59,252,99,252,172,252,14,253,131,253,239,253,70,254,147,254,195,254,211,254,5,255,130,255, +9,0,100,0,174,0,252,0,71,1,157,1,2,2,103,2,219,2,98,3,204,3,18,4,104,4,212,4,24,5,38,5, +53,5,90,5,106,5,80,5,55,5,53,5,41,5,22,5,39,5,71,5,46,5,222,4,146,4,98,4,68,4,37,4, +240,3,162,3,80,3,249,2,149,2,62,2,252,1,176,1,84,1,251,0,165,0,82,0,24,0,241,255,203,255,161,255, +110,255,45,255,241,254,189,254,116,254,22,254,199,253,137,253,71,253,254,252,163,252,41,252,185,251,135,251,119,251,51,251, +173,250,61,250,34,250,41,250,24,250,16,250,49,250,81,250,93,250,141,250,232,250,61,251,131,251,211,251,35,252,101,252, +160,252,209,252,8,253,78,253,136,253,169,253,222,253,59,254,160,254,0,255,101,255,198,255,30,0,104,0,152,0,202,0, +53,1,196,1,59,2,146,2,202,2,200,2,165,2,166,2,222,2,53,3,142,3,197,3,218,3,242,3,6,4,0,4, +21,4,116,4,226,4,29,5,36,5,9,5,224,4,217,4,2,5,42,5,48,5,15,5,200,4,117,4,48,4,217,3, +79,3,186,2,72,2,240,1,149,1,43,1,177,0,71,0,14,0,227,255,147,255,46,255,205,254,88,254,218,253,149,253, +122,253,54,253,221,252,203,252,219,252,162,252,71,252,61,252,115,252,132,252,108,252,110,252,150,252,183,252,187,252,183,252, +192,252,191,252,152,252,101,252,77,252,68,252,42,252,12,252,10,252,52,252,126,252,197,252,243,252,30,253,77,253,101,253, +123,253,201,253,64,254,149,254,200,254,11,255,87,255,126,255,147,255,212,255,64,0,147,0,190,0,15,1,164,1,55,2, +157,2,247,2,93,3,199,3,49,4,106,4,78,4,38,4,71,4,120,4,110,4,83,4,66,4,2,4,144,3,61,3, +46,3,75,3,114,3,126,3,105,3,75,3,68,3,92,3,139,3,163,3,130,3,83,3,60,3,30,3,233,2,183,2, +130,2,57,2,249,1,198,1,113,1,249,0,129,0,4,0,128,255,40,255,1,255,191,254,59,254,176,253,93,253,62,253, +29,253,217,252,131,252,60,252,5,252,213,251,173,251,117,251,23,251,179,250,104,250,30,250,219,249,220,249,35,250,94,250, +117,250,166,250,11,251,130,251,242,251,87,252,186,252,38,253,134,253,191,253,236,253,57,254,138,254,176,254,204,254,7,255, +74,255,133,255,206,255,15,0,26,0,11,0,38,0,119,0,225,0,77,1,179,1,18,2,113,2,194,2,241,2,13,3, +57,3,133,3,219,3,18,4,26,4,16,4,38,4,108,4,206,4,44,5,106,5,134,5,144,5,154,5,151,5,115,5, +47,5,231,4,166,4,92,4,11,4,206,3,154,3,80,3,246,2,154,2,50,2,208,1,148,1,79,1,197,0,41,0, +193,255,105,255,237,254,106,254,8,254,192,253,137,253,103,253,93,253,104,253,115,253,97,253,64,253,50,253,45,253,18,253, +232,252,195,252,152,252,84,252,251,251,174,251,135,251,132,251,144,251,165,251,181,251,165,251,124,251,104,251,122,251,155,251, +186,251,220,251,9,252,59,252,94,252,118,252,161,252,228,252,25,253,52,253,88,253,158,253,5,254,127,254,7,255,162,255, +79,0,223,0,52,1,127,1,235,1,84,2,164,2,254,2,84,3,99,3,55,3,48,3,121,3,211,3,240,3,207,3, +176,3,173,3,184,3,236,3,92,4,179,4,164,4,113,4,128,4,184,4,211,4,197,4,172,4,158,4,144,4,80,4, +239,3,195,3,186,3,109,3,245,2,198,2,196,2,130,2,28,2,238,1,231,1,191,1,114,1,43,1,8,1,231,0, +136,0,248,255,134,255,50,255,190,254,54,254,187,253,33,253,95,252,202,251,148,251,134,251,104,251,56,251,23,251,32,251, +53,251,24,251,221,250,220,250,24,251,61,251,46,251,29,251,46,251,96,251,159,251,222,251,13,252,41,252,67,252,117,252, +162,252,161,252,162,252,239,252,80,253,111,253,127,253,212,253,77,254,176,254,2,255,69,255,117,255,180,255,19,0,116,0, +188,0,229,0,27,1,160,1,75,2,158,2,154,2,187,2,17,3,80,3,134,3,212,3,19,4,59,4,104,4,141,4, +171,4,227,4,21,5,7,5,222,4,209,4,214,4,220,4,216,4,175,4,108,4,35,4,196,3,101,3,67,3,62,3, +16,3,217,2,195,2,159,2,90,2,19,2,183,1,67,1,237,0,185,0,125,0,48,0,203,255,66,255,212,254,174,254, +150,254,91,254,27,254,247,253,240,253,241,253,188,253,90,253,49,253,63,253,11,253,149,252,73,252,26,252,190,251,84,251, +37,251,35,251,23,251,239,250,218,250,3,251,56,251,74,251,121,251,225,251,30,252,23,252,67,252,190,252,29,253,50,253, +46,253,84,253,183,253,13,254,23,254,48,254,164,254,14,255,54,255,148,255,57,0,159,0,191,0,19,1,163,1,16,2, +50,2,61,2,139,2,7,3,34,3,214,2,219,2,81,3,130,3,78,3,76,3,149,3,207,3,245,3,37,4,61,4, +23,4,198,3,149,3,196,3,19,4,5,4,167,3,121,3,144,3,157,3,156,3,197,3,245,3,190,3,3,3,75,2, +29,2,71,2,55,2,218,1,115,1,0,1,121,0,33,0,38,0,86,0,90,0,9,0,126,255,240,254,95,254,203,253, +112,253,88,253,24,253,118,252,196,251,75,251,10,251,23,251,127,251,5,252,102,252,152,252,187,252,226,252,250,252,230,252, +183,252,149,252,121,252,95,252,113,252,173,252,216,252,224,252,227,252,229,252,235,252,24,253,105,253,183,253,242,253,33,254, +72,254,106,254,138,254,170,254,208,254,238,254,235,254,226,254,5,255,71,255,139,255,231,255,111,0,0,1,133,1,8,2, +128,2,244,2,114,3,218,3,236,3,185,3,154,3,197,3,32,4,111,4,139,4,108,4,49,4,21,4,55,4,110,4, +131,4,123,4,102,4,36,4,174,3,82,3,71,3,82,3,33,3,188,2,99,2,59,2,50,2,42,2,36,2,39,2, +1,2,121,1,180,0,17,0,179,255,131,255,100,255,62,255,2,255,196,254,170,254,195,254,1,255,46,255,9,255,149,254, +4,254,96,253,173,252,55,252,40,252,32,252,197,251,80,251,36,251,88,251,196,251,42,252,84,252,86,252,88,252,56,252, +226,251,179,251,224,251,8,252,219,251,159,251,178,251,14,252,134,252,10,253,139,253,236,253,44,254,130,254,20,255,168,255, +249,255,36,0,104,0,168,0,181,0,180,0,206,0,226,0,230,0,3,1,64,1,120,1,163,1,223,1,66,2,188,2, +37,3,85,3,75,3,46,3,41,3,70,3,111,3,155,3,205,3,245,3,254,3,9,4,64,4,142,4,206,4,255,4, +22,5,244,4,175,4,119,4,76,4,12,4,187,3,102,3,8,3,167,2,79,2,242,1,139,1,54,1,252,0,195,0, +112,0,1,0,130,255,11,255,173,254,96,254,7,254,143,253,4,253,146,252,98,252,104,252,94,252,38,252,238,251,225,251, +236,251,8,252,76,252,163,252,203,252,193,252,188,252,214,252,234,252,208,252,132,252,57,252,33,252,42,252,40,252,56,252, +135,252,235,252,36,253,58,253,81,253,89,253,57,253,25,253,43,253,90,253,120,253,150,253,238,253,116,254,249,254,133,255, +37,0,155,0,200,0,236,0,60,1,149,1,202,1,228,1,249,1,33,2,101,2,191,2,60,3,230,3,128,4,212,4, +0,5,22,5,227,4,133,4,103,4,122,4,72,4,210,3,118,3,71,3,28,3,252,2,8,3,57,3,88,3,53,3, +239,2,229,2,24,3,37,3,233,2,164,2,98,2,240,1,106,1,27,1,250,0,194,0,122,0,94,0,122,0,151,0, +123,0,43,0,227,255,176,255,87,255,220,254,157,254,163,254,99,254,177,253,31,253,236,252,150,252,233,251,107,251,74,251, +4,251,122,250,69,250,159,250,10,251,55,251,95,251,164,251,216,251,230,251,245,251,32,252,88,252,135,252,186,252,19,253, +139,253,232,253,28,254,92,254,183,254,250,254,17,255,38,255,76,255,109,255,129,255,163,255,238,255,77,0,151,0,204,0, +27,1,143,1,249,1,66,2,112,2,103,2,32,2,235,1,30,2,139,2,191,2,165,2,147,2,193,2,16,3,92,3, +168,3,225,3,223,3,203,3,241,3,55,4,82,4,93,4,136,4,151,4,78,4,0,4,8,4,56,4,40,4,189,3, +48,3,178,2,59,2,179,1,61,1,0,1,203,0,98,0,241,255,192,255,163,255,79,255,227,254,175,254,167,254,128,254, +47,254,247,253,254,253,13,254,232,253,156,253,74,253,246,252,167,252,132,252,133,252,105,252,35,252,252,251,15,252,20,252, +246,251,6,252,110,252,228,252,35,253,47,253,33,253,15,253,2,253,214,252,102,252,223,251,144,251,131,251,153,251,209,251, +55,252,193,252,110,253,66,254,48,255,23,0,217,0,130,1,65,2,33,3,224,3,77,4,150,4,242,4,67,5,68,5, +219,4,39,4,93,3,161,2,240,1,81,1,215,0,121,0,34,0,247,255,38,0,155,0,39,1,195,1,118,2,44,3, +203,3,60,4,108,4,87,4,255,3,101,3,165,2,231,1,51,1,128,0,234,255,144,255,95,255,87,255,148,255,1,0, +91,0,158,0,251,0,109,1,196,1,3,2,82,2,161,2,185,2,139,2,54,2,183,1,228,0,201,255,177,254,197,253, +231,252,28,252,157,251,104,251,58,251,255,250,225,250,235,250,248,250,249,250,18,251,112,251,29,252,250,252,210,253,122,254, +212,254,226,254,198,254,135,254,3,254,62,253,131,252,10,252,190,251,145,251,183,251,85,252,42,253,206,253,44,254,129,254, +249,254,126,255,243,255,87,0,190,0,54,1,194,1,72,2,154,2,163,2,131,2,117,2,147,2,187,2,189,2,173,2, +191,2,249,2,70,3,178,3,62,4,183,4,9,5,106,5,242,5,84,6,77,6,5,6,213,5,198,5,137,5,231,4, +250,3,254,2,18,2,52,1,95,0,164,255,29,255,219,254,229,254,68,255,222,255,92,0,145,0,169,0,192,0,176,0, +126,0,103,0,85,0,233,255,24,255,56,254,128,253,222,252,61,252,153,251,243,250,97,250,8,250,249,249,31,250,93,250, +180,250,67,251,25,252,15,253,227,253,109,254,175,254,209,254,246,254,8,255,204,254,72,254,195,253,96,253,1,253,172,252, +143,252,155,252,153,252,160,252,242,252,132,253,43,254,238,254,213,255,190,0,144,1,65,2,165,2,165,2,127,2,110,2, +83,2,4,2,165,1,118,1,130,1,161,1,192,1,252,1,96,2,178,2,185,2,151,2,143,2,177,2,248,2,105,3, +244,3,121,4,234,4,74,5,136,5,132,5,46,5,148,4,214,3,5,3,40,2,78,1,116,0,140,255,185,254,57,254, +16,254,28,254,75,254,152,254,14,255,227,255,19,1,40,2,205,2,37,3,71,3,16,3,140,2,219,1,229,0,172,255, +123,254,123,253,163,252,14,252,209,251,183,251,158,251,149,251,134,251,75,251,20,251,30,251,76,251,107,251,154,251,11,252, +169,252,47,253,123,253,165,253,198,253,201,253,151,253,79,253,33,253,18,253,8,253,2,253,56,253,210,253,165,254,101,255, +2,0,150,0,23,1,106,1,173,1,30,2,199,2,97,3,153,3,91,3,223,2,73,2,140,1,182,0,247,255,78,255, +162,254,33,254,8,254,75,254,188,254,91,255,54,0,62,1,86,2,96,3,71,4,254,4,123,5,182,5,186,5,139,5, +32,5,145,4,18,4,162,3,30,3,152,2,65,2,22,2,244,1,196,1,133,1,71,1,32,1,9,1,225,0,160,0, +89,0,15,0,188,255,105,255,39,255,228,254,108,254,193,253,74,253,69,253,77,253,237,252,98,252,32,252,40,252,76,252, +159,252,41,253,190,253,78,254,235,254,124,255,207,255,241,255,24,0,76,0,86,0,11,0,151,255,64,255,250,254,130,254, +219,253,59,253,168,252,4,252,114,251,56,251,97,251,193,251,59,252,205,252,111,253,7,254,127,254,233,254,88,255,169,255, +177,255,153,255,173,255,235,255,37,0,96,0,196,0,73,1,212,1,102,2,0,3,122,3,175,3,186,3,227,3,66,4, +145,4,156,4,144,4,174,4,200,4,151,4,38,4,165,3,33,3,172,2,89,2,252,1,103,1,197,0,76,0,241,255, +163,255,113,255,77,255,42,255,45,255,121,255,249,255,149,0,58,1,183,1,249,1,43,2,98,2,113,2,71,2,4,2, +165,1,6,1,74,0,187,255,77,255,178,254,246,253,140,253,149,253,171,253,141,253,105,253,106,253,126,253,150,253,175,253, +167,253,103,253,255,252,124,252,222,251,72,251,234,250,200,250,201,250,227,250,39,251,167,251,76,252,239,252,150,253,84,254, +1,255,120,255,232,255,117,0,239,0,65,1,176,1,78,2,214,2,24,3,29,3,214,2,55,2,112,1,199,0,87,0, +8,0,206,255,187,255,218,255,251,255,241,255,212,255,228,255,38,0,97,0,113,0,122,0,187,0,62,1,224,1,128,2, +244,2,247,2,137,2,25,2,250,1,14,2,42,2,82,2,132,2,166,2,158,2,117,2,113,2,189,2,254,2,192,2, +69,2,24,2,33,2,245,1,138,1,9,1,128,0,7,0,163,255,33,255,116,254,203,253,59,253,196,252,156,252,214,252, +44,253,103,253,159,253,249,253,127,254,20,255,113,255,117,255,90,255,78,255,54,255,16,255,21,255,80,255,126,255,102,255, +22,255,197,254,133,254,48,254,186,253,85,253,22,253,225,252,195,252,219,252,11,253,53,253,120,253,222,253,57,254,125,254, +197,254,18,255,81,255,125,255,146,255,159,255,194,255,250,255,55,0,130,0,204,0,219,0,193,0,224,0,76,1,180,1, +9,2,137,2,63,3,228,3,57,4,63,4,33,4,12,4,251,3,194,3,75,3,184,2,48,2,185,1,62,1,212,0, +171,0,202,0,249,0,29,1,70,1,106,1,107,1,99,1,122,1,138,1,95,1,25,1,242,0,238,0,0,1,48,1, +105,1,112,1,62,1,4,1,218,0,166,0,96,0,24,0,200,255,96,255,252,254,189,254,141,254,63,254,229,253,176,253, +159,253,144,253,126,253,114,253,86,253,21,253,198,252,143,252,120,252,106,252,73,252,18,252,233,251,249,251,56,252,109,252, +132,252,173,252,23,253,177,253,68,254,188,254,39,255,141,255,223,255,36,0,115,0,184,0,198,0,158,0,122,0,128,0, +147,0,119,0,22,0,153,255,55,255,2,255,231,254,220,254,228,254,255,254,47,255,125,255,1,0,198,0,173,1,142,2, +103,3,61,4,218,4,18,5,13,5,9,5,252,4,179,4,46,4,148,3,17,3,181,2,106,2,47,2,51,2,144,2, +8,3,83,3,103,3,90,3,52,3,248,2,166,2,56,2,177,1,16,1,87,0,154,255,233,254,70,254,185,253,69,253, +212,252,95,252,7,252,234,251,22,252,163,252,103,253,236,253,24,254,88,254,207,254,26,255,38,255,85,255,176,255,205,255, +141,255,72,255,37,255,231,254,99,254,208,253,112,253,46,253,214,252,119,252,69,252,53,252,25,252,243,251,227,251,248,251, +44,252,120,252,214,252,69,253,194,253,81,254,252,254,195,255,118,0,228,0,33,1,80,1,99,1,74,1,55,1,93,1, +161,1,213,1,0,2,64,2,154,2,234,2,12,3,12,3,31,3,84,3,129,3,133,3,105,3,58,3,7,3,235,2, +217,2,163,2,78,2,28,2,18,2,242,1,177,1,136,1,141,1,143,1,111,1,74,1,75,1,110,1,136,1,122,1, +76,1,14,1,205,0,153,0,120,0,92,0,66,0,62,0,84,0,101,0,84,0,40,0,241,255,187,255,145,255,129,255, +108,255,34,255,185,254,123,254,114,254,100,254,64,254,25,254,210,253,75,253,166,252,25,252,182,251,130,251,119,251,114,251, +109,251,129,251,169,251,223,251,63,252,193,252,31,253,83,253,164,253,43,254,183,254,34,255,112,255,178,255,239,255,26,0, +24,0,246,255,233,255,36,0,165,0,34,1,74,1,36,1,10,1,35,1,67,1,72,1,34,1,207,0,128,0,120,0, +154,0,165,0,168,0,216,0,40,1,99,1,128,1,154,1,205,1,33,2,144,2,24,3,179,3,48,4,107,4,139,4, +194,4,245,4,242,4,180,4,79,4,235,3,188,3,176,3,118,3,14,3,194,2,142,2,59,2,224,1,157,1,30,1, +37,0,247,254,232,253,14,253,143,252,124,252,133,252,124,252,160,252,12,253,121,253,206,253,43,254,112,254,104,254,45,254, +245,253,210,253,214,253,251,253,23,254,28,254,25,254,245,253,169,253,135,253,187,253,3,254,29,254,27,254,18,254,243,253, +189,253,131,253,63,253,224,252,116,252,45,252,50,252,123,252,222,252,63,253,138,253,195,253,17,254,136,254,252,254,74,255, +140,255,240,255,131,0,43,1,176,1,254,1,78,2,201,2,60,3,120,3,147,3,177,3,213,3,241,3,238,3,179,3, +75,3,202,2,72,2,246,1,219,1,165,1,70,1,62,1,207,1,151,2,44,3,129,3,164,3,149,3,65,3,118,2, +49,1,213,255,190,254,244,253,113,253,71,253,122,253,6,254,206,254,151,255,68,0,237,0,152,1,35,2,137,2,0,3, +158,3,8,4,187,3,232,2,77,2,239,1,248,0,69,255,199,253,236,252,25,252,232,250,195,249,44,249,41,249,112,249, +234,249,236,250,133,252,244,253,159,254,227,254,52,255,79,255,238,254,124,254,138,254,37,255,221,255,99,0,234,0,161,1, +18,2,195,1,16,1,124,0,237,255,45,255,101,254,206,253,148,253,219,253,105,254,225,254,77,255,205,255,54,0,112,0, +182,0,31,1,124,1,145,1,90,1,51,1,115,1,203,1,189,1,163,1,44,2,34,3,194,3,225,3,243,3,62,4, +125,4,65,4,175,3,108,3,154,3,184,3,175,3,210,3,252,3,221,3,191,3,235,3,27,4,13,4,241,3,238,3, +241,3,206,3,93,3,193,2,89,2,20,2,120,1,135,0,193,255,83,255,7,255,202,254,163,254,119,254,27,254,148,253, +27,253,220,252,167,252,40,252,110,251,209,250,109,250,39,250,3,250,254,249,243,249,237,249,57,250,241,250,213,251,180,252, +139,253,58,254,144,254,172,254,201,254,199,254,90,254,149,253,203,252,44,252,214,251,218,251,20,252,97,252,214,252,125,253, +44,254,206,254,85,255,162,255,216,255,83,0,8,1,130,1,158,1,161,1,180,1,211,1,238,1,246,1,236,1,229,1, +218,1,195,1,200,1,1,2,56,2,61,2,59,2,113,2,233,2,118,3,206,3,235,3,39,4,178,4,47,5,54,5, +212,4,73,4,179,3,26,3,124,2,229,1,119,1,49,1,207,0,52,0,178,255,128,255,87,255,250,254,172,254,192,254, +36,255,165,255,73,0,16,1,187,1,26,2,72,2,100,2,81,2,237,1,80,1,174,0,26,0,127,255,177,254,171,253, +181,252,40,252,243,251,189,251,99,251,21,251,229,250,182,250,128,250,93,250,97,250,132,250,189,250,17,251,148,251,75,252, +21,253,211,253,132,254,24,255,100,255,100,255,68,255,32,255,251,254,217,254,192,254,189,254,210,254,228,254,211,254,172,254, +155,254,170,254,199,254,205,254,156,254,85,254,85,254,174,254,18,255,96,255,184,255,14,0,61,0,83,0,130,0,239,0, +155,1,60,2,122,2,134,2,232,2,181,3,124,4,4,5,113,5,201,5,234,5,227,5,232,5,219,5,97,5,140,4, +252,3,243,3,239,3,137,3,22,3,245,2,6,3,254,2,193,2,81,2,203,1,90,1,2,1,171,0,83,0,255,255, +165,255,80,255,20,255,232,254,196,254,177,254,174,254,155,254,90,254,238,253,130,253,65,253,44,253,24,253,236,252,191,252, +188,252,226,252,0,253,241,252,202,252,167,252,129,252,75,252,29,252,19,252,32,252,21,252,226,251,185,251,195,251,203,251, +141,251,46,251,3,251,29,251,89,251,174,251,44,252,220,252,162,253,84,254,1,255,208,255,127,0,187,0,215,0,59,1, +143,1,125,1,131,1,5,2,149,2,224,2,49,3,176,3,6,4,242,3,138,3,14,3,176,2,100,2,4,2,174,1, +153,1,178,1,222,1,51,2,179,2,41,3,119,3,162,3,167,3,148,3,122,3,91,3,76,3,116,3,193,3,248,3, +11,4,8,4,226,3,143,3,29,3,107,2,68,1,216,255,177,254,20,254,196,253,143,253,155,253,24,254,226,254,161,255, +22,0,59,0,58,0,55,0,44,0,7,0,193,255,93,255,255,254,232,254,11,255,7,255,197,254,138,254,81,254,211,253, +53,253,211,252,148,252,39,252,168,251,113,251,138,251,177,251,193,251,203,251,228,251,19,252,114,252,11,253,158,253,240,253, +51,254,179,254,74,255,164,255,195,255,225,255,39,0,140,0,212,0,207,0,161,0,144,0,158,0,170,0,183,0,204,0, +222,0,227,0,247,0,80,1,229,1,75,2,71,2,43,2,67,2,100,2,122,2,182,2,21,3,112,3,221,3,102,4, +209,4,8,5,26,5,248,4,155,4,42,4,186,3,89,3,44,3,23,3,222,2,161,2,146,2,133,2,87,2,44,2, +14,2,228,1,195,1,187,1,154,1,71,1,238,0,178,0,126,0,35,0,165,255,79,255,68,255,53,255,3,255,3,255, +67,255,82,255,250,254,120,254,252,253,151,253,68,253,202,252,255,251,43,251,160,250,83,250,23,250,234,249,216,249,222,249, +248,249,49,250,153,250,10,251,75,251,123,251,233,251,109,252,177,252,210,252,13,253,52,253,32,253,12,253,56,253,164,253, +51,254,191,254,59,255,200,255,100,0,217,0,29,1,74,1,101,1,112,1,116,1,113,1,127,1,168,1,186,1,173,1, +230,1,123,2,248,2,43,3,84,3,155,3,239,3,51,4,52,4,246,3,196,3,174,3,161,3,213,3,76,4,144,4, +175,4,58,5,11,6,124,6,130,6,94,6,227,5,238,4,202,3,186,2,228,1,89,1,237,0,133,0,84,0,91,0, +90,0,75,0,57,0,234,255,99,255,246,254,176,254,124,254,104,254,53,254,129,253,169,252,84,252,100,252,90,252,50,252, +34,252,45,252,77,252,121,252,142,252,128,252,97,252,66,252,52,252,74,252,119,252,147,252,140,252,118,252,135,252,195,252, +206,252,133,252,84,252,128,252,172,252,145,252,111,252,122,252,133,252,97,252,49,252,87,252,226,252,96,253,135,253,189,253, +77,254,217,254,34,255,126,255,18,0,136,0,189,0,242,0,79,1,179,1,241,1,27,2,117,2,13,3,159,3,9,4, +94,4,142,4,145,4,168,4,237,4,25,5,23,5,18,5,248,4,162,4,62,4,251,3,194,3,124,3,48,3,213,2, +121,2,75,2,75,2,62,2,22,2,6,2,24,2,17,2,222,1,207,1,22,2,95,2,102,2,97,2,127,2,135,2, +105,2,103,2,119,2,61,2,175,1,22,1,148,0,24,0,152,255,19,255,132,254,216,253,16,253,109,252,30,252,220,251, +86,251,216,250,191,250,203,250,165,250,121,250,136,250,194,250,252,250,34,251,43,251,39,251,46,251,68,251,114,251,185,251, +236,251,244,251,9,252,79,252,181,252,58,253,222,253,109,254,205,254,21,255,51,255,27,255,33,255,127,255,239,255,42,0, +65,0,82,0,115,0,202,0,76,1,189,1,17,2,87,2,123,2,103,2,67,2,80,2,157,2,241,2,29,3,94,3, +243,3,118,4,121,4,102,4,194,4,42,5,36,5,20,5,112,5,224,5,210,5,87,5,248,4,11,5,59,5,243,4, +48,4,118,3,5,3,182,2,106,2,26,2,176,1,49,1,180,0,56,0,200,255,114,255,27,255,177,254,77,254,231,253, +98,253,247,252,244,252,50,253,86,253,69,253,27,253,236,252,171,252,65,252,191,251,107,251,102,251,149,251,214,251,21,252, +56,252,62,252,78,252,134,252,214,252,254,252,223,252,199,252,246,252,31,253,252,252,212,252,209,252,184,252,162,252,215,252, +29,253,58,253,112,253,198,253,236,253,3,254,63,254,77,254,30,254,57,254,169,254,238,254,6,255,86,255,229,255,107,0, +178,0,205,0,40,1,240,1,162,2,225,2,17,3,129,3,249,3,88,4,178,4,237,4,241,4,192,4,65,4,154,3, +71,3,90,3,103,3,73,3,38,3,5,3,235,2,225,2,190,2,133,2,117,2,126,2,99,2,87,2,148,2,218,2, +245,2,255,2,244,2,192,2,149,2,138,2,100,2,248,1,104,1,1,1,250,0,41,1,39,1,216,0,110,0,3,0, +168,255,97,255,236,254,51,254,167,253,135,253,92,253,217,252,78,252,246,251,188,251,141,251,86,251,5,251,183,250,137,250, +94,250,29,250,221,249,184,249,183,249,211,249,245,249,46,250,170,250,58,251,149,251,255,251,203,252,157,253,241,253,226,253, +216,253,251,253,72,254,173,254,11,255,97,255,202,255,71,0,201,0,48,1,87,1,68,1,67,1,125,1,211,1,44,2, +133,2,201,2,248,2,58,3,147,3,215,3,244,3,5,4,37,4,72,4,97,4,129,4,201,4,55,5,169,5,1,6, +41,6,27,6,233,5,182,5,157,5,168,5,182,5,130,5,254,4,107,4,252,3,156,3,54,3,219,2,166,2,134,2, +48,2,112,1,145,0,248,255,114,255,176,254,238,253,122,253,42,253,231,252,224,252,248,252,212,252,130,252,81,252,63,252, +11,252,172,251,104,251,124,251,203,251,17,252,70,252,117,252,124,252,101,252,103,252,103,252,38,252,219,251,214,251,244,251, +4,252,22,252,43,252,70,252,139,252,221,252,239,252,225,252,3,253,58,253,82,253,100,253,121,253,124,253,139,253,191,253, +255,253,89,254,243,254,145,255,208,255,192,255,205,255,48,0,197,0,52,1,68,1,52,1,117,1,248,1,61,2,35,2, +35,2,131,2,228,2,241,2,240,2,35,3,66,3,20,3,254,2,90,3,223,3,38,4,49,4,45,4,6,4,169,3, +93,3,107,3,161,3,137,3,43,3,3,3,53,3,118,3,149,3,151,3,136,3,121,3,109,3,50,3,175,2,44,2, +231,1,198,1,173,1,163,1,141,1,77,1,238,0,126,0,7,0,186,255,174,255,148,255,42,255,178,254,96,254,246,253, +75,253,160,252,49,252,238,251,180,251,118,251,67,251,75,251,121,251,96,251,252,250,228,250,63,251,118,251,81,251,65,251, +111,251,154,251,203,251,65,252,209,252,23,253,251,252,202,252,217,252,48,253,143,253,198,253,214,253,200,253,198,253,5,254, +115,254,218,254,57,255,143,255,199,255,20,0,193,0,141,1,22,2,132,2,31,3,196,3,53,4,84,4,36,4,225,3, +188,3,161,3,169,3,19,4,142,4,164,4,186,4,82,5,0,6,50,6,21,6,243,5,203,5,176,5,165,5,120,5, +58,5,37,5,15,5,174,4,45,4,221,3,176,3,94,3,213,2,70,2,188,1,9,1,75,0,232,255,210,255,152,255, +51,255,225,254,135,254,33,254,9,254,42,254,243,253,89,253,203,252,98,252,13,252,233,251,247,251,27,252,72,252,93,252, +72,252,69,252,98,252,81,252,34,252,46,252,57,252,223,251,130,251,169,251,24,252,72,252,31,252,213,251,171,251,196,251, +7,252,87,252,190,252,44,253,110,253,151,253,225,253,75,254,160,254,183,254,156,254,149,254,215,254,51,255,126,255,252,255, +187,0,64,1,95,1,122,1,161,1,149,1,143,1,207,1,236,1,157,1,90,1,125,1,183,1,192,1,183,1,201,1, +6,2,99,2,161,2,166,2,165,2,174,2,130,2,51,2,36,2,113,2,209,2,7,3,28,3,77,3,179,3,5,4, +253,3,188,3,118,3,32,3,190,2,126,2,99,2,76,2,35,2,209,1,107,1,76,1,110,1,74,1,177,0,254,255, +98,255,226,254,160,254,134,254,83,254,24,254,14,254,24,254,14,254,251,253,218,253,163,253,110,253,43,253,168,252,2,252, +150,251,143,251,208,251,26,252,58,252,58,252,61,252,59,252,38,252,255,251,199,251,163,251,195,251,241,251,226,251,218,251, +36,252,125,252,182,252,246,252,38,253,55,253,121,253,227,253,10,254,42,254,189,254,88,255,119,255,129,255,231,255,117,0, +4,1,157,1,14,2,82,2,190,2,95,3,233,3,80,4,180,4,9,5,53,5,64,5,78,5,113,5,134,5,118,5, +135,5,235,5,69,6,49,6,212,5,136,5,102,5,81,5,12,5,118,4,216,3,135,3,108,3,71,3,2,3,171,2, +100,2,76,2,57,2,231,1,104,1,220,0,51,0,155,255,122,255,172,255,143,255,251,254,124,254,108,254,109,254,6,254, +84,253,208,252,164,252,137,252,51,252,184,251,128,251,187,251,237,251,156,251,59,251,108,251,195,251,145,251,45,251,49,251, +88,251,73,251,80,251,153,251,202,251,181,251,177,251,2,252,112,252,150,252,124,252,151,252,27,253,167,253,232,253,5,254, +66,254,186,254,81,255,203,255,251,255,7,0,44,0,117,0,203,0,30,1,99,1,171,1,9,2,105,2,177,2,243,2, +65,3,126,3,112,3,29,3,224,2,254,2,49,3,33,3,23,3,109,3,204,3,191,3,148,3,203,3,61,4,103,4, +49,4,242,3,230,3,231,3,207,3,198,3,221,3,216,3,186,3,195,3,200,3,115,3,5,3,225,2,201,2,113,2, +17,2,234,1,225,1,194,1,94,1,181,0,38,0,3,0,3,0,179,255,46,255,211,254,152,254,71,254,244,253,199,253, +164,253,110,253,86,253,120,253,128,253,48,253,216,252,205,252,222,252,163,252,10,252,91,251,236,250,203,250,210,250,233,250, +24,251,77,251,103,251,83,251,7,251,162,250,114,250,158,250,236,250,40,251,79,251,117,251,187,251,55,252,207,252,104,253, +6,254,145,254,238,254,73,255,185,255,22,0,101,0,204,0,46,1,104,1,143,1,152,1,138,1,186,1,49,2,140,2, +219,2,132,3,83,4,235,4,115,5,248,5,39,6,17,6,25,6,63,6,86,6,95,6,80,6,26,6,236,5,228,5, +218,5,186,5,160,5,180,5,240,5,254,5,136,5,173,4,196,3,4,3,170,2,197,2,208,2,89,2,152,1,188,0, +150,255,104,254,208,253,231,253,84,254,194,254,241,254,228,254,195,254,102,254,201,253,128,253,187,253,200,253,75,253,177,252, +100,252,155,252,100,253,23,254,221,253,202,252,88,251,170,249,55,248,174,247,229,247,70,248,232,248,253,249,44,251,42,252, +24,253,255,253,154,254,153,254,6,254,108,253,46,253,248,252,143,252,118,252,255,252,200,253,149,254,98,255,210,255,165,255, +72,255,52,255,101,255,181,255,21,0,110,0,182,0,6,1,119,1,5,2,120,2,140,2,79,2,9,2,203,1,132,1, +94,1,151,1,63,2,71,3,130,4,168,5,162,6,117,7,183,7,215,6,50,5,232,3,94,3,227,2,45,2,214,1, +9,2,56,2,87,2,230,2,173,3,237,3,165,3,96,3,47,3,209,2,76,2,222,1,165,1,127,1,27,1,99,0, +200,255,191,255,25,0,74,0,35,0,236,255,197,255,83,255,89,254,89,253,243,252,1,253,247,252,211,252,249,252,113,253, +212,253,229,253,216,253,192,253,65,253,61,252,69,251,180,250,56,250,173,249,89,249,72,249,151,249,154,250,236,251,172,252, +230,252,29,253,247,252,12,252,237,250,63,250,44,250,198,250,198,251,116,252,181,252,39,253,21,254,49,255,248,255,17,0, +202,255,196,255,225,255,191,255,185,255,38,0,186,0,137,1,230,2,12,4,22,4,182,3,20,4,18,5,200,5,162,5, +195,4,1,4,7,4,122,4,191,4,226,4,2,5,5,5,246,4,222,4,149,4,60,4,56,4,144,4,226,4,167,4, +189,3,227,2,247,2,153,3,193,3,83,3,226,2,162,2,126,2,103,2,58,2,226,1,89,1,132,0,127,255,190,254, +117,254,120,254,171,254,227,254,208,254,104,254,233,253,122,253,43,253,253,252,197,252,112,252,6,252,112,251,204,250,151,250, +242,250,135,251,27,252,112,252,50,252,165,251,110,251,197,251,142,252,110,253,139,253,172,252,3,252,120,252,70,253,96,253, +142,252,50,251,117,250,136,251,175,253,225,254,218,254,22,255,250,255,160,0,211,0,4,1,21,1,222,0,226,0,71,1, +78,1,193,0,112,0,170,0,184,0,109,0,143,0,117,1,109,2,159,2,241,1,119,1,129,2,184,4,101,6,245,6, +58,7,79,7,154,6,100,5,114,4,217,3,94,3,249,2,148,2,68,2,81,2,166,2,21,3,167,3,223,3,239,2, +92,1,171,0,26,1,128,1,93,1,58,1,50,1,208,0,42,0,192,255,77,255,73,254,100,253,208,253,36,255,205,255, +87,255,141,254,253,253,228,253,118,254,51,255,41,255,107,254,194,253,84,253,199,252,36,252,163,251,132,251,38,252,44,253, +68,253,15,252,4,251,66,251,244,251,249,251,114,251,218,250,57,250,224,249,104,250,134,251,54,252,61,252,102,252,50,253, +12,254,39,254,195,253,244,253,218,254,39,255,92,254,235,253,180,254,129,255,114,255,136,255,152,0,255,1,20,3,208,3, +37,4,21,4,205,3,34,3,22,2,104,1,130,1,234,1,163,2,81,4,112,6,104,7,189,6,138,5,195,4,89,4, +8,4,15,4,159,4,41,5,238,4,46,4,189,3,130,3,148,2,226,0,129,255,57,255,221,255,251,0,115,2,67,4, +35,6,68,7,192,6,215,4,11,3,30,2,238,0,96,254,62,251,55,249,12,249,92,250,98,252,111,254,6,0,152,0, +205,255,108,254,243,253,173,254,70,255,140,254,132,252,14,250,65,248,207,247,149,248,15,250,202,251,35,253,136,253,68,253, +32,253,67,253,51,253,179,252,13,252,136,251,6,251,125,250,133,250,209,251,21,254,51,0,75,1,24,1,215,255,56,254, +20,253,248,252,242,253,152,255,23,1,187,1,152,1,98,1,159,1,38,2,132,2,112,2,189,1,63,0,89,254,41,253, +165,253,195,255,176,2,132,5,187,7,52,9,187,9,34,9,206,7,109,6,20,5,70,3,200,0,18,254,68,252,168,252, +99,255,249,2,193,5,93,7,70,8,191,8,169,8,226,7,142,6,30,5,231,3,178,2,43,1,164,255,205,254,211,254, +127,255,198,0,53,2,170,2,199,1,179,0,105,0,129,0,81,0,249,255,234,255,51,0,76,0,143,255,66,254,94,253, +220,252,185,251,237,249,124,248,235,247,46,248,76,249,215,250,14,252,234,252,177,253,231,253,19,253,219,251,12,251,122,250, +166,249,171,248,246,247,192,247,36,248,46,249,162,250,43,252,135,253,95,254,132,254,117,254,182,254,245,254,211,254,204,254, +64,255,168,255,163,255,151,255,195,255,237,255,6,0,65,0,157,0,255,0,113,1,30,2,16,3,2,4,155,4,209,4, +207,4,163,4,94,4,51,4,76,4,137,4,133,4,27,4,210,3,37,4,160,4,224,4,142,5,230,6,189,7,108,7, +223,6,151,6,193,5,15,4,82,2,14,1,16,0,73,255,11,255,165,255,231,0,15,2,154,2,232,2,59,3,242,2, +204,1,156,0,216,255,228,254,127,253,93,252,235,251,198,251,145,251,95,251,98,251,169,251,42,252,191,252,23,253,216,252, +56,252,7,252,164,252,108,253,174,253,129,253,52,253,202,252,57,252,193,251,197,251,22,252,194,251,109,250,78,249,133,249, +144,250,150,251,168,252,222,253,220,254,134,255,241,255,12,0,249,255,203,255,58,255,87,254,149,253,227,252,42,252,13,252, +194,252,130,253,252,253,188,254,253,255,139,1,67,3,205,4,132,5,41,5,38,4,50,3,187,2,146,2,109,2,134,2, +34,3,220,3,19,4,196,3,108,3,64,3,238,2,115,2,137,2,68,3,119,3,195,2,131,2,98,3,62,4,96,4, +115,4,222,4,34,5,227,4,69,4,155,3,62,3,51,3,17,3,128,2,167,1,236,0,126,0,53,0,7,0,39,0, +126,0,161,0,143,0,147,0,137,0,15,0,49,255,74,254,154,253,41,253,214,252,157,252,142,252,90,252,171,251,255,250, +237,250,29,251,41,251,107,251,236,251,0,252,147,251,87,251,128,251,172,251,195,251,255,251,74,252,78,252,250,251,163,251, +142,251,149,251,139,251,141,251,182,251,249,251,99,252,17,253,224,253,163,254,120,255,126,0,99,1,194,1,194,1,199,1, +207,1,161,1,97,1,98,1,154,1,199,1,235,1,85,2,34,3,16,4,217,4,119,5,241,5,51,6,73,6,70,6, +4,6,144,5,72,5,25,5,143,4,221,3,163,3,209,3,200,3,45,3,17,2,8,1,5,1,59,2,240,3,194,5, +185,7,9,9,95,8,82,5,198,0,119,252,44,250,66,250,128,251,7,253,1,255,10,1,27,2,93,2,174,2,119,2, +150,0,2,254,194,252,253,252,119,253,243,253,187,254,198,254,153,252,161,248,87,245,220,244,3,247,10,250,188,252,249,254, +121,0,192,0,66,0,28,0,135,0,146,0,77,255,167,252,95,249,152,246,106,245,76,246,137,248,187,250,33,252,245,252, +209,253,116,255,47,2,230,4,10,6,171,5,216,4,186,3,54,2,17,1,178,0,62,0,215,254,194,252,35,251,23,251, +166,252,195,254,176,0,114,2,225,3,162,4,11,5,0,6,221,7,196,9,39,10,120,8,228,5,150,3,135,1,185,255, +216,254,216,254,183,254,24,254,237,253,60,255,197,1,65,4,253,5,85,7,36,8,142,7,239,5,240,4,240,4,164,4, +137,3,133,2,4,2,91,1,51,0,33,255,171,254,149,254,130,254,116,254,100,254,16,254,167,253,245,253,86,255,19,1, +44,2,80,2,192,1,149,0,212,254,216,252,31,251,209,249,4,249,198,248,175,248,87,248,68,248,32,249,138,250,212,251, +12,253,36,254,104,254,198,253,90,253,239,253,5,255,164,255,77,255,52,254,243,252,1,252,110,251,57,251,107,251,179,251, +178,251,172,251,48,252,64,253,146,254,16,0,160,1,27,3,121,4,120,5,168,5,70,5,254,4,173,4,155,3,207,1, +22,0,15,255,231,254,154,255,4,1,172,2,226,3,138,4,83,5,114,6,27,7,7,7,227,6,198,6,26,6,14,5, +76,4,202,3,90,3,56,3,95,3,81,3,183,2,153,1,93,0,147,255,77,255,53,255,85,255,239,255,186,0,26,1, +225,0,127,0,145,0,21,1,38,1,33,0,126,254,24,253,54,252,160,251,16,251,146,250,112,250,134,250,111,250,120,250, +22,251,197,251,250,251,61,252,210,252,199,252,189,251,210,250,227,250,138,251,37,252,121,252,89,252,203,251,106,251,207,251, +190,252,131,253,230,253,45,254,132,254,212,254,13,255,93,255,241,255,146,0,229,0,22,1,108,1,124,1,215,0,19,0, +212,255,184,255,93,255,60,255,173,255,81,0,208,0,71,1,241,1,205,2,132,3,212,3,249,3,40,4,24,4,148,3, +236,2,105,2,34,2,38,2,63,2,6,2,124,1,6,1,235,0,61,1,208,1,56,2,72,2,93,2,209,2,139,3, +59,4,159,4,171,4,133,4,55,4,163,3,218,2,30,2,143,1,21,1,124,0,139,255,115,254,9,254,207,254,254,255, +138,0,177,0,75,1,5,2,234,1,50,1,225,0,251,0,174,0,194,255,169,254,174,253,224,252,100,252,99,252,195,252, +23,253,0,253,215,252,60,253,244,253,41,254,229,253,233,253,46,254,252,253,66,253,133,252,203,251,219,250,8,250,164,249, +111,249,109,249,18,250,35,251,206,251,18,252,139,252,47,253,165,253,14,254,132,254,215,254,16,255,58,255,13,255,153,254, +124,254,236,254,124,255,240,255,101,0,226,0,95,1,245,1,146,2,241,2,40,3,161,3,52,4,77,4,18,4,52,4, +169,4,220,4,199,4,170,4,140,4,149,4,208,4,189,4,89,4,82,4,157,4,144,4,90,4,136,4,217,4,246,4, +9,5,242,4,93,4,100,3,80,2,92,1,187,0,54,0,118,255,207,254,192,254,18,255,88,255,141,255,202,255,35,0, +145,0,146,0,210,255,235,254,147,254,182,254,231,254,213,254,98,254,216,253,123,253,232,252,200,251,144,250,176,249,36,249, +252,248,60,249,147,249,238,249,135,250,56,251,176,251,25,252,134,252,149,252,71,252,50,252,131,252,197,252,183,252,150,252, +166,252,252,252,112,253,185,253,222,253,76,254,17,255,171,255,6,0,151,0,68,1,115,1,75,1,125,1,2,2,77,2, +101,2,180,2,74,3,10,4,217,4,106,5,113,5,16,5,140,4,244,3,119,3,108,3,166,3,159,3,112,3,148,3, +228,3,246,3,240,3,241,3,169,3,42,3,208,2,92,2,171,1,145,1,120,2,111,3,185,3,180,3,154,3,19,3, +41,2,91,1,202,0,58,0,148,255,255,254,185,254,230,254,87,255,201,255,79,0,231,0,236,0,240,255,189,254,79,254, +58,254,135,253,121,252,253,251,42,252,142,252,241,252,52,253,80,253,142,253,254,253,70,254,59,254,11,254,212,253,180,253, +194,253,212,253,185,253,110,253,0,253,166,252,165,252,186,252,96,252,196,251,161,251,62,252,74,253,59,254,182,254,243,254, +97,255,237,255,54,0,65,0,43,0,204,255,49,255,202,254,223,254,72,255,188,255,43,0,218,0,216,1,168,2,232,2, +243,2,53,3,123,3,133,3,142,3,188,3,163,3,254,2,96,2,103,2,202,2,229,2,187,2,152,2,114,2,36,2, +200,1,154,1,197,1,24,2,67,2,119,2,14,3,142,3,98,3,13,3,53,3,134,3,146,3,86,3,170,2,162,1, +233,0,161,0,22,0,75,255,6,255,65,255,40,255,163,254,125,254,10,255,136,255,58,255,134,254,80,254,160,254,198,254, +111,254,227,253,123,253,68,253,3,253,162,252,105,252,99,252,52,252,237,251,252,251,25,252,177,251,12,251,227,250,84,251, +18,252,181,252,225,252,201,252,18,253,172,253,229,253,189,253,204,253,254,253,209,253,104,253,93,253,215,253,116,254,219,254, +7,255,44,255,106,255,179,255,248,255,63,0,137,0,245,0,162,1,52,2,51,2,253,1,71,2,255,2,153,3,224,3, +194,3,62,3,214,2,254,2,101,3,159,3,184,3,192,3,172,3,187,3,21,4,139,4,0,5,86,5,55,5,152,4, +226,3,73,3,207,2,141,2,105,2,28,2,206,1,215,1,253,1,198,1,92,1,68,1,101,1,7,1,6,0,57,255, +63,255,165,255,196,255,139,255,22,255,97,254,185,253,149,253,228,253,13,254,175,253,26,253,200,252,135,252,250,251,134,251, +176,251,39,252,111,252,154,252,174,252,148,252,157,252,229,252,232,252,121,252,35,252,58,252,148,252,255,252,78,253,115,253, +139,253,135,253,76,253,63,253,198,253,138,254,13,255,81,255,129,255,156,255,184,255,15,0,171,0,67,1,131,1,115,1, +99,1,97,1,86,1,102,1,160,1,182,1,146,1,133,1,182,1,23,2,184,2,127,3,6,4,43,4,38,4,17,4, +230,3,214,3,2,4,29,4,213,3,88,3,253,2,167,2,13,2,120,1,97,1,151,1,134,1,63,1,80,1,203,1, +30,2,233,1,86,1,187,0,61,0,222,255,156,255,97,255,3,255,114,254,219,253,153,253,208,253,76,254,214,254,99,255, +205,255,237,255,225,255,186,255,74,255,207,254,207,254,236,254,78,254,78,253,252,252,98,253,181,253,189,253,202,253,221,253, +194,253,129,253,90,253,114,253,159,253,174,253,185,253,223,253,229,253,187,253,179,253,214,253,195,253,119,253,70,253,39,253, +247,252,2,253,114,253,228,253,8,254,18,254,58,254,122,254,214,254,76,255,159,255,159,255,110,255,67,255,72,255,143,255, +225,255,7,0,48,0,143,0,240,0,43,1,85,1,91,1,48,1,53,1,150,1,222,1,217,1,12,2,189,2,121,3, +201,3,193,3,169,3,174,3,233,3,102,4,227,4,240,4,124,4,236,3,115,3,11,3,241,2,75,3,170,3,169,3, +128,3,98,3,23,3,155,2,60,2,255,1,141,1,210,0,48,0,253,255,244,255,150,255,254,254,150,254,75,254,210,253, +91,253,56,253,65,253,48,253,35,253,78,253,146,253,161,253,130,253,150,253,235,253,251,253,105,253,114,252,128,251,224,250, +189,250,213,250,189,250,163,250,15,251,241,251,190,252,78,253,227,253,118,254,178,254,150,254,151,254,217,254,216,254,87,254, +236,253,250,253,5,254,192,253,189,253,92,254,18,255,104,255,181,255,111,0,113,1,89,2,4,3,133,3,241,3,84,4, +142,4,97,4,221,3,108,3,49,3,234,2,136,2,66,2,35,2,51,2,171,2,134,3,91,4,0,5,161,5,52,6, +96,6,252,5,41,5,64,4,154,3,54,3,196,2,74,2,254,1,167,1,2,1,122,0,120,0,140,0,83,0,48,0, +85,0,81,0,22,0,25,0,85,0,72,0,229,255,127,255,23,255,109,254,136,253,190,252,72,252,0,252,158,251,43,251, +231,250,225,250,10,251,109,251,255,251,149,252,37,253,184,253,44,254,89,254,64,254,229,253,91,253,228,252,183,252,182,252, +162,252,115,252,99,252,143,252,200,252,242,252,71,253,239,253,159,254,16,255,102,255,209,255,43,0,79,0,96,0,147,0, +235,0,61,1,95,1,65,1,238,0,153,0,130,0,183,0,232,0,198,0,116,0,87,0,148,0,251,0,127,1,60,2, +13,3,149,3,179,3,138,3,45,3,201,2,173,2,194,2,148,2,33,2,220,1,212,1,204,1,211,1,23,2,110,2, +171,2,219,2,239,2,207,2,170,2,169,2,156,2,109,2,82,2,83,2,62,2,27,2,9,2,203,1,50,1,159,0, +128,0,171,0,191,0,158,0,83,0,246,255,180,255,161,255,181,255,245,255,53,0,253,255,62,255,154,254,112,254,103,254, +52,254,6,254,233,253,153,253,19,253,165,252,115,252,82,252,18,252,199,251,174,251,212,251,0,252,32,252,115,252,250,252, +72,253,25,253,188,252,152,252,178,252,188,252,122,252,9,252,218,251,52,252,235,252,165,253,73,254,226,254,109,255,218,255, +12,0,245,255,218,255,33,0,171,0,246,0,235,0,234,0,28,1,108,1,226,1,122,2,228,2,243,2,233,2,11,3, +74,3,124,3,149,3,170,3,227,3,87,4,220,4,31,5,6,5,200,4,147,4,93,4,25,4,218,3,179,3,162,3, +166,3,195,3,226,3,233,3,226,3,210,3,141,3,248,2,71,2,167,1,3,1,57,0,101,255,188,254,96,254,66,254, +28,254,200,253,121,253,87,253,67,253,57,253,89,253,101,253,250,252,87,252,16,252,18,252,246,251,227,251,46,252,150,252, +176,252,130,252,82,252,60,252,64,252,76,252,62,252,24,252,8,252,40,252,114,252,234,252,130,253,244,253,13,254,250,253, +8,254,64,254,98,254,83,254,92,254,173,254,237,254,194,254,163,254,74,255,108,0,6,1,211,0,136,0,169,0,6,1, +69,1,85,1,105,1,168,1,241,1,15,2,38,2,121,2,232,2,29,3,23,3,253,2,213,2,175,2,167,2,166,2, +150,2,144,2,143,2,126,2,153,2,14,3,104,3,66,3,251,2,245,2,223,2,130,2,58,2,27,2,177,1,241,0, +108,0,89,0,110,0,126,0,149,0,167,0,166,0,167,0,175,0,158,0,103,0,45,0,22,0,25,0,252,255,157,255, +27,255,178,254,109,254,47,254,231,253,158,253,113,253,134,253,219,253,39,254,25,254,191,253,125,253,143,253,197,253,193,253, +111,253,13,253,206,252,175,252,153,252,143,252,173,252,16,253,156,253,250,253,8,254,23,254,88,254,122,254,78,254,66,254, +162,254,11,255,24,255,240,254,220,254,217,254,233,254,54,255,173,255,253,255,4,0,229,255,198,255,182,255,221,255,106,0, +52,1,198,1,241,1,0,2,56,2,105,2,93,2,58,2,63,2,108,2,145,2,127,2,58,2,15,2,71,2,183,2, +7,3,55,3,110,3,141,3,122,3,97,3,92,3,81,3,58,3,32,3,241,2,171,2,86,2,216,1,60,1,236,0, +21,1,72,1,60,1,41,1,25,1,198,0,68,0,215,255,113,255,244,254,147,254,92,254,33,254,4,254,69,254,155,254, +148,254,80,254,19,254,193,253,62,253,193,252,111,252,56,252,30,252,45,252,76,252,102,252,130,252,174,252,241,252,57,253, +79,253,40,253,19,253,72,253,119,253,69,253,235,252,237,252,111,253,23,254,136,254,200,254,19,255,108,255,168,255,206,255, +19,0,95,0,105,0,73,0,90,0,180,0,32,1,123,1,195,1,4,2,89,2,193,2,253,2,226,2,167,2,153,2, +196,2,242,2,228,2,161,2,148,2,8,3,143,3,136,3,21,3,223,2,10,3,27,3,213,2,127,2,83,2,48,2, +240,1,172,1,153,1,188,1,223,1,210,1,147,1,45,1,158,0,9,0,207,255,24,0,112,0,71,0,208,255,173,255, +222,255,190,255,39,255,174,254,159,254,177,254,173,254,163,254,132,254,77,254,69,254,135,254,180,254,142,254,79,254,47,254, +39,254,37,254,28,254,253,253,224,253,216,253,181,253,85,253,254,252,223,252,203,252,166,252,160,252,217,252,73,253,229,253, +113,254,161,254,159,254,211,254,34,255,27,255,191,254,124,254,151,254,3,255,118,255,155,255,126,255,153,255,6,0,54,0, +229,255,160,255,238,255,137,0,222,0,221,0,235,0,49,1,109,1,124,1,170,1,17,2,75,2,31,2,238,1,249,1, +255,1,233,1,248,1,58,2,119,2,165,2,197,2,175,2,137,2,184,2,46,3,108,3,81,3,23,3,205,2,101,2, +18,2,3,2,42,2,95,2,123,2,95,2,36,2,245,1,194,1,105,1,21,1,235,0,199,0,138,0,71,0,246,255, +141,255,65,255,61,255,58,255,248,254,160,254,100,254,50,254,3,254,240,253,219,253,138,253,27,253,210,252,161,252,99,252, +75,252,136,252,198,252,167,252,108,252,137,252,216,252,235,252,218,252,251,252,52,253,43,253,230,252,178,252,169,252,182,252, +201,252,229,252,37,253,175,253,91,254,188,254,179,254,161,254,233,254,120,255,225,255,221,255,168,255,193,255,58,0,155,0, +161,0,157,0,240,0,144,1,44,2,104,2,31,2,183,1,204,1,98,2,227,2,253,2,249,2,30,3,84,3,114,3, +122,3,134,3,154,3,165,3,159,3,146,3,117,3,52,3,231,2,193,2,197,2,202,2,193,2,161,2,106,2,73,2, +71,2,16,2,144,1,88,1,176,1,250,1,200,1,142,1,157,1,135,1,3,1,103,0,11,0,216,255,152,255,41,255, +164,254,81,254,46,254,221,253,91,253,58,253,166,253,18,254,27,254,226,253,134,253,30,253,234,252,255,252,21,253,2,253, +228,252,196,252,155,252,126,252,116,252,119,252,173,252,37,253,115,253,71,253,18,253,98,253,2,254,84,254,75,254,89,254, +165,254,215,254,170,254,94,254,97,254,176,254,225,254,199,254,176,254,246,254,133,255,9,0,85,0,145,0,242,0,101,1, +181,1,226,1,7,2,19,2,241,1,198,1,179,1,174,1,187,1,249,1,70,2,97,2,101,2,171,2,62,3,199,3, +243,3,182,3,76,3,4,3,253,2,22,3,41,3,22,3,195,2,77,2,24,2,80,2,145,2,104,2,2,2,229,1, +6,2,207,1,26,1,149,0,190,0,28,1,243,0,73,0,162,255,51,255,211,254,138,254,151,254,8,255,130,255,162,255, +126,255,119,255,130,255,50,255,140,254,17,254,224,253,164,253,95,253,82,253,103,253,111,253,162,253,28,254,114,254,77,254, +205,253,57,253,204,252,177,252,182,252,148,252,150,252,49,253,3,254,92,254,106,254,212,254,129,255,206,255,139,255,7,255, +143,254,67,254,29,254,4,254,10,254,89,254,229,254,127,255,22,0,159,0,254,0,31,1,7,1,215,0,225,0,85,1, +222,1,8,2,10,2,103,2,9,3,114,3,142,3,161,3,165,3,90,3,192,2,40,2,204,1,152,1,105,1,105,1, +212,1,128,2,17,3,132,3,248,3,34,4,161,3,148,2,106,1,112,0,214,255,163,255,154,255,156,255,230,255,136,0, +27,1,100,1,143,1,159,1,85,1,192,0,47,0,172,255,30,255,173,254,122,254,77,254,249,253,188,253,231,253,100,254, +213,254,248,254,191,254,56,254,138,253,248,252,188,252,227,252,74,253,182,253,227,253,162,253,24,253,186,252,211,252,40,253, +78,253,85,253,174,253,85,254,144,254,232,253,253,252,219,252,180,253,209,254,138,255,213,255,244,255,3,0,205,255,35,255, +87,254,14,254,139,254,122,255,130,0,142,1,106,2,191,2,164,2,139,2,138,2,55,2,105,1,159,0,114,0,198,0, +240,0,170,0,149,0,96,1,192,2,183,3,213,3,153,3,147,3,156,3,61,3,118,2,183,1,63,1,248,0,238,0, +92,1,37,2,179,2,182,2,131,2,96,2,238,1,197,0,112,255,10,255,200,255,150,0,111,0,168,255,78,255,182,255, +61,0,107,0,123,0,172,0,163,0,241,255,201,254,194,253,23,253,178,252,169,252,43,253,215,253,232,253,67,253,212,252, +90,253,69,254,94,254,129,253,203,252,5,253,148,253,139,253,38,253,110,253,144,254,123,255,82,255,132,254,251,253,203,253, +97,253,179,252,109,252,223,252,138,253,11,254,206,254,59,0,180,1,44,2,164,1,44,1,86,1,111,1,185,0,190,255, +165,255,127,0,50,1,18,1,193,0,28,1,253,1,163,2,210,2,231,2,252,2,200,2,72,2,232,1,194,1,110,1, +225,0,229,0,7,2,122,3,239,3,94,3,15,3,156,3,241,3,221,2,247,0,251,255,119,0,49,1,13,1,158,0, +31,1,133,2,123,3,41,3,38,2,116,1,53,1,228,0,88,0,248,255,244,255,244,255,180,255,135,255,221,255,129,0, +192,0,77,0,148,255,11,255,128,254,134,253,97,252,246,251,167,252,170,253,244,253,154,253,170,253,172,254,198,255,210,255, +203,254,161,253,231,252,82,252,161,251,69,251,175,251,131,252,5,253,40,253,120,253,33,254,176,254,204,254,187,254,201,254, +170,254,245,253,31,253,32,253,28,254,14,255,37,255,210,254,253,254,184,255,95,0,163,0,187,0,175,0,73,0,186,255, +151,255,252,255,103,0,167,0,55,1,85,2,86,3,143,3,85,3,122,3,0,4,18,4,61,3,23,2,139,1,215,1, +119,2,193,2,142,2,72,2,104,2,225,2,59,3,50,3,239,2,144,2,248,1,60,1,225,0,49,1,195,1,255,1, +221,1,161,1,88,1,253,0,228,0,62,1,132,1,0,1,206,255,172,254,1,254,191,253,3,254,239,254,221,255,206,255, +189,254,202,253,180,253,12,254,41,254,248,253,140,253,185,252,194,251,138,251,118,252,192,253,147,254,2,255,77,255,1,255, +211,253,177,252,185,252,141,253,217,253,65,253,156,252,122,252,157,252,246,252,231,253,65,255,19,0,236,255,106,255,47,255, +28,255,252,254,20,255,134,255,216,255,187,255,152,255,215,255,50,0,76,0,92,0,170,0,223,0,155,0,57,0,80,0, +210,0,78,1,188,1,80,2,214,2,250,2,243,2,44,3,105,3,9,3,24,2,73,1,245,0,210,0,191,0,8,1, +176,1,65,2,119,2,150,2,200,2,209,2,158,2,139,2,180,2,159,2,246,1,30,1,177,0,195,0,6,1,83,1, +151,1,136,1,254,0,72,0,215,255,169,255,125,255,89,255,114,255,175,255,185,255,128,255,75,255,75,255,99,255,112,255, +99,255,33,255,145,254,227,253,118,253,112,253,152,253,179,253,200,253,239,253,31,254,60,254,61,254,35,254,242,253,185,253, +145,253,125,253,106,253,81,253,72,253,101,253,155,253,204,253,234,253,255,253,38,254,116,254,218,254,43,255,71,255,64,255, +65,255,100,255,162,255,236,255,42,0,70,0,63,0,49,0,54,0,74,0,108,0,174,0,25,1,134,1,189,1,187,1, +171,1,175,1,203,1,1,2,69,2,115,2,108,2,73,2,65,2,97,2,134,2,156,2,168,2,167,2,128,2,53,2, +234,1,187,1,162,1,148,1,147,1,148,1,127,1,83,1,47,1,38,1,33,1,255,0,189,0,108,0,28,0,217,255, +178,255,169,255,165,255,140,255,90,255,23,255,209,254,146,254,102,254,84,254,72,254,41,254,241,253,180,253,131,253,99,253, +88,253,102,253,132,253,164,253,189,253,207,253,223,253,246,253,24,254,43,254,23,254,234,253,200,253,189,253,205,253,4,254, +80,254,122,254,120,254,134,254,197,254,11,255,57,255,117,255,211,255,23,0,22,0,244,255,224,255,223,255,236,255,26,0, +115,0,221,0,44,1,63,1,26,1,249,0,20,1,89,1,145,1,191,1,249,1,26,2,253,1,232,1,58,2,201,2, +18,3,248,2,200,2,166,2,109,2,26,2,236,1,11,2,72,2,77,2,248,1,137,1,84,1,81,1,61,1,34,1, +79,1,174,1,183,1,76,1,242,0,2,1,45,1,36,1,1,1,217,0,124,0,228,255,110,255,106,255,194,255,35,0, +65,0,2,0,155,255,75,255,252,254,139,254,52,254,56,254,68,254,250,253,179,253,238,253,78,254,36,254,153,253,94,253, +138,253,179,253,202,253,246,253,6,254,197,253,121,253,103,253,97,253,67,253,86,253,212,253,138,254,19,255,6,255,11,254, +83,252,169,250,147,249,252,248,7,249,100,250,73,253,240,0,69,4,40,6,71,5,147,1,192,253,1,253,24,255,252,0, +121,1,96,2,162,4,63,6,103,5,55,3,203,1,76,1,146,0,120,255,19,255,254,255,150,1,2,3,19,4,147,4, +132,3,126,0,155,253,217,253,233,0,36,3,239,2,24,3,149,5,85,7,6,5,52,1,247,0,41,4,224,5,253,3, +116,1,205,0,207,0,185,255,47,254,125,253,146,253,15,254,92,255,85,1,134,2,14,2,67,1,19,2,43,4,238,4, +168,2,240,254,253,252,193,253,219,254,5,254,82,252,125,252,182,254,35,0,247,254,227,252,105,252,116,253,43,254,250,253, +215,253,24,254,19,254,186,253,164,253,131,253,115,252,8,251,29,251,17,253,23,255,240,255,117,0,129,1,26,2,17,1, +43,255,65,254,222,254,224,255,29,0,164,255,112,255,57,0,135,1,27,2,90,1,1,0,48,255,58,255,203,255,138,0, +36,1,84,1,90,1,203,1,89,2,182,1,87,255,185,252,220,251,2,253,195,254,33,0,115,1,46,3,167,4,186,4, +65,3,71,1,216,255,54,255,49,255,163,255,88,0,17,1,222,1,232,2,224,3,18,4,107,3,212,2,251,2,51,3, +99,2,200,0,224,255,99,0,62,1,3,1,217,255,45,255,217,255,56,1,30,2,12,2,83,1,125,0,214,255,69,255, +103,254,27,253,254,251,244,251,248,252,229,253,215,253,114,253,254,253,112,255,51,0,64,255,146,253,253,252,243,253,66,255, +211,255,207,255,247,255,118,0,211,0,163,0,225,255,211,254,227,253,121,253,127,253,80,253,129,252,169,251,193,251,198,252, +131,253,29,253,56,252,19,252,230,252,208,253,63,254,168,254,155,255,195,0,102,1,112,1,110,1,174,1,228,1,206,1, +165,1,194,1,39,2,161,2,17,3,67,3,213,2,184,1,154,0,93,0,252,0,123,1,28,1,90,0,55,0,217,0, +82,1,227,0,252,255,179,255,107,0,113,1,223,1,157,1,91,1,160,1,60,2,149,2,103,2,5,2,227,1,4,2, +245,1,76,1,30,0,245,254,84,254,74,254,112,254,91,254,4,254,201,253,232,253,40,254,34,254,229,253,242,253,128,254, +244,254,130,254,59,253,28,252,235,251,112,252,246,252,73,253,194,253,128,254,55,255,129,255,114,255,94,255,57,255,208,254, +51,254,159,253,98,253,230,253,60,255,149,0,238,0,70,0,138,255,95,255,152,255,226,255,45,0,82,0,2,0,113,255, +109,255,52,0,13,1,101,1,116,1,117,1,97,1,88,1,111,1,113,1,157,1,103,2,33,3,199,2,246,1,247,1, +98,2,54,2,2,2,144,2,48,3,53,3,25,3,9,3,127,2,184,1,90,1,33,1,171,0,129,0,254,0,145,1, +218,1,243,1,168,1,218,0,70,0,132,0,192,0,181,255,163,253,92,252,13,253,230,254,170,0,147,2,254,4,62,6, +49,4,148,255,229,251,2,252,125,255,234,2,64,3,13,1,192,254,172,252,135,250,49,251,220,0,228,6,163,6,7,1, +146,252,170,251,108,251,37,250,138,249,111,251,60,255,253,1,53,1,80,254,12,253,253,253,210,254,182,255,146,2,28,5, +116,2,119,251,43,247,163,249,71,255,109,2,151,1,113,254,121,250,146,247,5,249,161,255,141,6,10,8,8,4,221,254, +183,251,38,251,89,252,157,253,71,254,232,255,130,2,72,2,156,253,136,249,79,251,95,1,151,6,51,8,203,5,67,0, +253,250,89,250,32,255,77,5,211,7,70,5,247,0,77,255,17,1,187,3,105,5,252,5,104,5,161,3,63,1,164,254, +39,252,66,251,68,253,60,1,33,5,97,7,97,6,214,1,124,253,44,254,83,3,42,7,186,5,123,0,86,251,244,248, +254,249,176,253,241,1,156,3,175,0,18,251,133,247,146,248,86,252,187,255,83,1,209,0,124,254,134,251,65,249,103,248, +131,249,49,252,79,254,49,254,186,252,79,251,189,249,71,248,214,248,16,252,145,255,144,0,201,254,121,252,80,252,237,254, +78,2,100,4,2,5,65,4,170,1,153,254,74,254,99,1,68,4,199,3,71,1,100,0,87,2,231,4,116,5,202,3, +174,1,138,0,134,0,71,1,28,2,9,2,232,0,246,255,73,0,67,1,73,1,178,255,228,253,86,254,193,1,158,5, +187,6,232,4,153,2,160,1,230,1,154,2,216,2,149,1,142,254,101,251,165,250,46,253,14,1,126,3,195,3,103,3, +178,3,41,4,196,3,120,2,3,1,236,255,43,255,146,254,12,254,88,253,36,252,46,251,223,251,102,254,246,0,163,1, +134,0,63,255,199,254,190,254,187,254,12,255,187,255,229,255,3,255,55,254,41,255,171,1,156,3,105,3,202,1,124,0, +16,0,200,255,21,255,55,254,119,253,195,252,88,252,229,252,117,254,229,255,49,0,213,255,16,0,244,0,57,1,66,0, +59,255,138,255,183,0,238,0,109,255,114,253,151,252,18,253,22,254,29,255,17,0,149,0,60,0,147,255,239,255,175,1, +62,3,179,2,58,0,19,254,21,254,206,255,87,1,126,1,165,0,222,255,215,255,163,0,228,1,215,2,197,2,199,1, +238,0,51,1,95,2,88,3,117,3,33,3,7,3,39,3,15,3,169,2,70,2,252,1,132,1,215,0,117,0,188,0, +62,1,63,1,169,0,34,0,32,0,81,0,42,0,175,255,112,255,194,255,83,0,121,0,189,255,44,254,97,252,47,251, +11,251,158,251,40,252,97,252,186,252,155,253,182,254,97,255,117,255,86,255,57,255,218,254,34,254,141,253,136,253,178,253, +91,253,150,252,60,252,179,252,71,253,28,253,105,252,52,252,239,252,250,253,123,254,87,254,28,254,70,254,239,254,219,255, +136,0,91,0,71,255,69,254,177,254,203,0,26,3,205,3,156,2,247,0,75,0,177,0,105,1,8,2,163,2,59,3, +144,3,141,3,112,3,102,3,79,3,244,2,104,2,18,2,55,2,138,2,111,2,226,1,185,1,135,2,151,3,181,3, +199,2,215,1,148,1,179,1,213,1,10,2,36,2,124,1,250,255,160,254,121,254,107,255,143,0,69,1,121,1,76,1, +226,0,84,0,164,255,218,254,27,254,109,253,158,252,209,251,178,251,123,252,85,253,137,253,210,253,54,255,239,0,241,0, +171,254,231,251,161,250,29,251,127,252,22,254,136,255,138,0,22,1,107,1,148,1,88,1,188,0,25,0,201,255,15,0, +14,1,83,2,220,2,80,2,155,1,133,1,108,1,129,0,125,255,184,255,242,0,172,1,123,1,96,1,180,1,121,1, +77,0,117,255,29,0,129,1,207,1,78,0,252,253,56,252,106,251,1,251,91,250,134,249,20,249,96,249,74,250,132,251, +203,252,216,253,148,254,72,255,45,0,228,0,8,1,40,1,52,2,27,4,224,5,237,6,153,7,34,8,42,8,128,7, +121,6,51,5,96,3,42,1,102,255,189,254,83,255,19,1,72,3,97,4,137,3,58,2,137,2,18,4,118,4,202,2, +96,0,46,254,2,252,160,250,220,251,123,255,99,2,97,2,195,0,239,255,62,0,179,0,245,0,198,0,249,254,245,250, +167,246,73,245,33,248,71,253,79,1,220,1,49,255,201,251,38,250,191,250,44,252,20,253,19,253,30,252,74,250,120,248, +37,248,5,250,45,253,2,0,115,1,57,1,127,255,3,253,92,251,62,252,196,255,115,3,18,4,34,1,216,253,181,253, +192,0,24,4,117,5,192,4,190,2,35,0,42,254,47,254,31,0,79,2,87,3,33,3,47,2,25,1,239,0,175,2, +199,5,18,8,228,7,139,5,167,2,214,0,245,0,184,2,146,4,178,4,130,2,27,255,48,252,215,250,33,251,81,252, +105,253,199,253,114,253,228,252,220,252,37,254,241,0,58,4,59,6,224,5,120,3,56,0,113,253,29,252,96,252,71,253, +143,253,209,252,204,251,165,251,247,252,70,255,26,1,21,1,88,255,104,253,101,252,19,252,22,252,246,252,249,254,9,1, +199,1,71,1,194,0,0,1,195,1,112,2,160,2,30,2,215,0,17,255,143,253,63,253,116,254,101,0,226,1,165,2, +106,3,164,4,213,5,104,6,61,6,47,5,253,2,46,0,1,254,11,253,203,252,223,252,119,253,64,254,73,254,146,253, +90,253,66,254,107,255,16,0,144,0,25,1,226,0,176,255,218,254,128,255,212,0,81,1,211,0,88,0,68,0,15,0, +120,255,251,254,12,255,116,255,172,255,145,255,127,255,200,255,82,0,215,0,76,1,197,1,31,2,64,2,103,2,199,2, +254,2,161,2,20,2,16,2,110,2,87,2,154,1,254,0,21,1,121,1,101,1,136,0,28,255,159,253,140,252,0,252, +194,251,188,251,49,252,84,253,25,255,92,1,166,3,223,4,38,4,251,1,185,255,242,253,109,252,144,251,60,252,17,254, +104,255,120,255,13,255,178,254,215,253,83,252,92,251,246,251,150,253,245,254,108,255,2,255,9,254,44,253,21,253,154,253, +217,253,97,253,176,252,144,252,125,253,113,255,172,1,7,3,75,3,135,3,124,4,71,5,144,4,164,2,37,1,202,0, +185,0,75,0,22,0,160,0,28,1,139,0,152,255,26,0,181,2,228,5,205,7,44,8,206,7,0,7,146,5,251,3, +239,2,235,1,180,255,190,252,82,251,121,252,77,254,170,254,45,254,224,254,15,1,34,3,12,4,13,4,109,3,25,2, +108,0,10,255,226,253,124,252,14,251,65,250,33,250,43,250,27,250,222,249,71,249,182,248,67,249,75,251,112,253,55,254, +250,253,9,254,178,254,96,255,237,255,93,0,253,255,113,254,8,253,78,253,175,254,28,255,235,253,124,252,24,252,167,252, +151,253,141,254,37,255,40,255,72,255,130,0,155,2,52,4,149,4,94,4,78,4,86,4,36,4,215,3,169,3,119,3, +0,3,64,2,104,1,169,0,56,0,63,0,199,0,168,1,153,2,55,3,65,3,249,2,20,3,3,4,103,5,88,6, +16,6,89,4,172,1,15,255,140,253,93,253,171,253,83,253,15,252,194,250,153,250,255,251,111,254,39,1,181,3,198,5, +211,6,138,6,77,5,215,3,107,2,205,0,232,254,249,252,56,251,207,249,59,249,6,250,247,251,62,254,86,0,34,2, +84,3,161,3,142,3,249,3,191,4,186,4,80,3,23,1,225,254,255,252,165,251,15,251,246,250,197,250,139,250,5,251, +108,252,21,254,93,255,101,0,132,1,143,2,245,2,74,2,168,0,170,254,252,252,206,251,220,250,29,250,212,249,5,250, +115,250,81,251,7,253,41,255,143,0,231,0,11,1,136,1,195,1,55,1,84,0,128,255,91,254,193,252,156,251,175,251, +128,252,64,253,7,254,62,255,146,0,104,1,224,1,132,2,93,3,15,4,119,4,153,4,68,4,112,3,160,2,101,2, +191,2,75,3,178,3,177,3,24,3,39,2,136,1,155,1,14,2,98,2,136,2,196,2,55,3,204,3,87,4,148,4, +81,4,178,3,33,3,210,2,149,2,52,2,195,1,110,1,67,1,62,1,60,1,222,0,221,255,157,254,242,253,42,254, +179,254,237,254,223,254,207,254,171,254,65,254,190,253,87,253,208,252,238,251,26,251,242,250,73,251,87,251,229,250,175,250, +89,251,155,252,170,253,43,254,82,254,107,254,143,254,193,254,4,255,77,255,110,255,88,255,117,255,57,0,78,1,168,1, +205,0,136,255,203,254,124,254,14,254,185,253,5,254,161,254,216,254,234,254,172,255,249,0,214,1,27,2,156,2,128,3, +223,3,97,3,231,2,20,3,101,3,69,3,230,2,139,2,248,1,58,1,19,1,248,1,86,3,79,4,158,4,81,4, +86,3,224,1,155,0,251,255,176,255,60,255,159,254,40,254,254,253,47,254,240,254,82,0,230,1,248,2,55,3,12,3, +22,3,110,3,132,3,231,2,207,1,178,0,167,255,159,254,245,253,247,253,52,254,255,253,140,253,154,253,50,254,165,254, +206,254,62,255,252,255,70,0,204,255,46,255,230,254,191,254,162,254,242,254,170,255,35,0,46,0,110,0,51,1,233,1, +20,2,0,2,241,1,133,1,137,0,151,255,86,255,151,255,205,255,191,255,116,255,225,254,44,254,218,253,70,254,53,255, +18,0,100,0,11,0,92,255,234,254,237,254,243,254,139,254,254,253,215,253,15,254,40,254,18,254,41,254,129,254,180,254, +140,254,84,254,93,254,164,254,249,254,94,255,0,0,223,0,151,1,172,1,60,1,254,0,74,1,146,1,84,1,5,1, +63,1,144,1,42,1,121,0,193,0,21,2,32,3,21,3,153,2,92,2,24,2,144,1,68,1,113,1,91,1,114,0, +101,255,51,255,217,255,153,0,252,0,248,0,146,0,252,255,164,255,179,255,214,255,228,255,30,0,130,0,134,0,229,255, +33,255,193,254,165,254,125,254,96,254,110,254,98,254,15,254,209,253,18,254,156,254,231,254,206,254,140,254,58,254,201,253, +86,253,45,253,119,253,252,253,74,254,17,254,136,253,83,253,216,253,195,254,101,255,132,255,121,255,147,255,208,255,51,0, +226,0,205,1,137,2,193,2,163,2,150,2,172,2,141,2,248,1,35,1,136,0,96,0,132,0,204,0,72,1,1,2, +181,2,19,3,25,3,236,2,140,2,247,1,117,1,68,1,36,1,168,0,238,255,146,255,207,255,65,0,142,0,201,0, +5,1,23,1,232,0,193,0,226,0,38,1,55,1,232,0,64,0,105,255,179,254,96,254,104,254,142,254,193,254,13,255, +66,255,18,255,153,254,96,254,171,254,23,255,19,255,133,254,190,253,22,253,202,252,10,253,190,253,110,254,174,254,123,254, +27,254,200,253,154,253,168,253,10,254,145,254,224,254,230,254,252,254,93,255,231,255,118,0,238,0,20,1,190,0,21,0, +101,255,224,254,170,254,212,254,72,255,204,255,31,0,39,0,34,0,98,0,224,0,89,1,169,1,193,1,150,1,56,1, +204,0,131,0,155,0,19,1,108,1,83,1,20,1,9,1,40,1,109,1,210,1,248,1,163,1,51,1,227,0,110,0, +227,255,201,255,22,0,30,0,176,255,67,255,30,255,14,255,1,255,59,255,194,255,34,0,27,0,31,0,138,0,25,1, +141,1,5,2,84,2,19,2,101,1,184,0,32,0,174,255,147,255,131,255,15,255,148,254,160,254,248,254,70,255,190,255, +105,0,215,0,219,0,161,0,50,0,152,255,246,254,84,254,176,253,51,253,15,253,83,253,222,253,96,254,204,254,123,255, +88,0,171,0,75,0,213,255,119,255,232,254,99,254,83,254,118,254,113,254,82,254,33,254,222,253,199,253,219,253,211,253, +188,253,203,253,217,253,213,253,238,253,32,254,107,254,254,254,153,255,227,255,57,0,221,0,80,1,142,1,16,2,83,2, +205,1,81,1,17,1,249,255,9,255,149,0,55,3,94,3,170,1,58,1,160,1,5,1,3,1,88,3,186,5,143,5, +193,3,45,2,44,1,9,1,86,2,61,4,220,4,130,3,101,1,51,0,113,0,138,1,20,3,198,4,108,5,197,3, +172,0,156,254,251,254,13,1,8,3,114,3,40,2,76,0,219,254,54,254,255,254,83,1,65,3,144,2,220,255,159,253, +246,252,160,253,157,255,32,2,169,2,7,0,188,252,212,251,0,253,18,254,138,254,1,255,211,254,39,253,23,251,114,250, +91,251,194,252,32,254,70,255,162,255,0,255,49,254,22,254,143,254,16,255,153,255,58,0,53,0,239,254,100,253,50,253, +108,254,190,255,80,0,25,0,64,255,82,254,78,254,150,255,108,1,186,2,196,2,118,1,165,255,142,254,214,254,82,0, +69,2,115,3,246,2,103,1,62,0,13,0,95,0,247,0,254,1,19,3,44,3,183,1,155,255,147,254,107,255,67,1, +206,2,114,3,8,3,186,1,109,0,51,0,252,0,192,1,211,1,65,1,34,0,146,254,84,253,129,253,45,255,248,0, +118,1,154,0,87,255,88,254,206,253,4,254,39,255,124,0,216,0,23,0,45,255,199,254,214,254,100,255,153,0,164,1, +52,1,82,255,145,253,4,253,78,253,232,253,216,254,177,255,134,255,112,254,233,253,224,254,130,0,120,1,90,1,115,0, +5,255,116,253,124,252,167,252,189,253,10,255,228,255,238,255,74,255,166,254,198,254,196,255,228,0,74,1,184,0,148,255, +115,254,216,253,34,254,57,255,90,0,171,0,38,0,128,255,47,255,32,255,90,255,25,0,253,0,20,1,47,0,87,255, +118,255,62,0,239,0,99,1,174,1,118,1,131,0,125,255,71,255,231,255,174,0,42,1,88,1,41,1,134,0,218,255, +238,255,250,0,58,2,181,2,56,2,81,1,155,0,100,0,198,0,157,1,85,2,80,2,133,1,134,0,234,255,236,255, +128,0,78,1,182,1,74,1,94,0,177,255,173,255,43,0,221,0,110,1,99,1,130,0,71,255,140,254,173,254,68,255, +194,255,220,255,126,255,200,254,32,254,251,253,113,254,45,255,191,255,227,255,141,255,247,254,148,254,164,254,242,254,41,255, +50,255,27,255,207,254,84,254,17,254,97,254,5,255,112,255,138,255,165,255,210,255,210,255,180,255,227,255,103,0,176,0, +96,0,210,255,129,255,115,255,131,255,216,255,140,0,58,1,90,1,251,0,157,0,138,0,167,0,218,0,32,1,83,1, +61,1,251,0,232,0,38,1,126,1,189,1,211,1,170,1,55,1,186,0,150,0,199,0,224,0,175,0,117,0,117,0, +142,0,168,0,245,0,130,1,210,1,108,1,143,0,230,255,153,255,66,255,187,254,99,254,100,254,91,254,2,254,182,253, +226,253,61,254,48,254,209,253,195,253,55,254,168,254,182,254,177,254,229,254,255,254,156,254,13,254,239,253,57,254,81,254, +17,254,251,253,92,254,204,254,229,254,226,254,45,255,161,255,216,255,223,255,26,0,129,0,155,0,48,0,162,255,91,255, +81,255,75,255,71,255,102,255,160,255,205,255,240,255,55,0,179,0,46,1,97,1,54,1,225,0,174,0,179,0,208,0, +224,0,225,0,211,0,165,0,94,0,69,0,146,0,18,1,84,1,47,1,228,0,180,0,158,0,151,0,182,0,246,0, +8,1,177,0,48,0,248,255,34,0,103,0,141,0,155,0,147,0,95,0,17,0,246,255,45,0,116,0,122,0,70,0, +15,0,237,255,220,255,230,255,21,0,61,0,39,0,226,255,179,255,185,255,211,255,232,255,255,255,14,0,247,255,198,255, +190,255,252,255,72,0,105,0,108,0,122,0,131,0,108,0,81,0,97,0,125,0,91,0,251,255,171,255,145,255,131,255, +104,255,112,255,182,255,4,0,22,0,3,0,1,0,255,255,202,255,119,255,85,255,125,255,180,255,207,255,231,255,15,0, +31,0,244,255,185,255,166,255,182,255,190,255,195,255,239,255,67,0,144,0,187,0,214,0,240,0,250,0,242,0,248,0, +34,1,86,1,105,1,86,1,50,1,12,1,239,0,238,0,23,1,87,1,136,1,155,1,156,1,152,1,141,1,125,1, +112,1,100,1,75,1,36,1,2,1,240,0,230,0,213,0,192,0,177,0,168,0,162,0,159,0,159,0,150,0,116,0, +58,0,250,255,200,255,170,255,161,255,168,255,180,255,185,255,176,255,150,255,105,255,46,255,238,254,182,254,138,254,102,254, +73,254,56,254,47,254,39,254,37,254,44,254,56,254,73,254,94,254,101,254,92,254,78,254,50,254,4,254,219,253,189,253, +165,253,167,253,204,253,253,253,58,254,146,254,234,254,40,255,94,255,135,255,148,255,153,255,147,255,112,255,95,255,134,255, +183,255,215,255,12,0,80,0,127,0,160,0,170,0,139,0,120,0,140,0,142,0,129,0,154,0,171,0,140,0,126,0, +148,0,163,0,179,0,208,0,214,0,225,0,9,1,251,0,176,0,153,0,184,0,186,0,189,0,227,0,1,1,27,1, +57,1,28,1,219,0,205,0,201,0,153,0,137,0,158,0,124,0,58,0,32,0,15,0,250,255,250,255,228,255,186,255, +211,255,2,0,225,255,169,255,161,255,144,255,101,255,69,255,21,255,217,254,212,254,229,254,214,254,226,254,24,255,49,255, +55,255,85,255,92,255,68,255,68,255,70,255,38,255,32,255,74,255,111,255,147,255,193,255,216,255,233,255,15,0,21,0, +235,255,228,255,13,0,24,0,249,255,224,255,236,255,41,0,95,0,80,0,39,0,49,0,109,0,164,0,199,0,216,0, +228,0,242,0,235,0,198,0,163,0,136,0,108,0,117,0,171,0,203,0,187,0,181,0,216,0,0,1,4,1,214,0, +158,0,148,0,169,0,162,0,133,0,117,0,119,0,118,0,76,0,251,255,240,255,107,0,231,0,249,0,14,1,132,1, +244,1,252,1,198,1,171,1,202,1,225,1,136,1,225,0,130,0,112,0,36,0,146,255,42,255,35,255,106,255,191,255, +198,255,114,255,52,255,88,255,178,255,232,255,199,255,106,255,44,255,61,255,115,255,190,255,26,0,69,0,26,0,232,255, +233,255,1,0,12,0,202,255,249,254,2,254,156,253,171,253,143,253,86,253,121,253,248,253,125,254,197,254,195,254,194,254, +251,254,10,255,188,254,196,254,113,255,231,255,182,255,142,255,217,255,47,0,96,0,142,0,155,0,78,0,193,255,87,255, +117,255,229,255,247,255,166,255,173,255,71,0,53,1,114,2,122,3,54,3,142,1,111,255,133,253,178,252,28,254,6,1, +34,3,194,3,215,3,154,3,65,3,6,4,21,6,170,7,152,7,91,6,170,4,176,2,76,0,178,253,225,251,67,251, +103,250,121,248,110,247,145,248,243,249,46,250,6,251,248,253,169,1,25,4,221,4,254,4,88,5,225,4,251,1,220,253, +145,251,215,251,94,253,115,255,92,1,249,1,250,1,202,2,123,3,117,2,99,0,209,254,85,254,155,254,233,253,255,250, +111,248,43,249,178,250,183,249,51,249,151,252,40,0,77,255,114,252,79,252,79,255,84,3,140,6,51,7,207,4,36,1, +221,253,61,251,137,249,19,249,101,249,56,250,187,251,116,253,44,255,15,2,122,6,75,10,114,11,25,10,224,6,170,1, +91,251,165,246,240,245,86,249,190,254,102,3,191,5,88,6,203,6,156,7,177,7,38,6,242,3,168,2,88,2,246,1, +50,1,62,0,174,254,52,252,162,249,17,248,21,248,254,249,108,253,183,0,76,2,55,2,98,1,60,0,224,254,175,253, +64,253,225,253,247,254,86,255,194,254,95,254,124,255,214,2,20,8,192,12,203,13,77,11,16,8,71,5,62,2,117,255, +31,254,209,253,130,253,235,252,175,251,204,249,129,248,100,248,138,248,205,248,4,250,192,251,217,252,150,253,110,254,145,254, +200,253,69,253,129,253,228,253,103,254,129,255,35,1,219,2,27,4,74,4,177,3,132,3,30,4,153,4,155,4,193,4, +13,5,121,4,119,2,192,255,160,253,253,252,237,253,205,255,198,1,93,3,76,4,2,4,233,1,131,254,95,251,138,249, +213,248,186,248,246,248,103,249,122,250,50,253,81,1,158,4,110,5,213,4,163,4,125,4,210,2,9,0,145,254,146,255, +118,1,113,2,150,2,114,2,202,1,243,0,33,1,28,2,5,2,74,0,146,254,250,253,183,253,229,252,216,251,48,251, +10,251,98,251,107,252,40,254,8,0,96,1,51,2,6,3,232,3,78,4,249,3,79,3,208,2,136,2,50,2,140,1, +158,0,168,255,225,254,127,254,195,254,112,255,159,255,195,254,136,253,249,252,28,253,27,253,137,252,195,251,72,251,104,251, +96,252,3,254,128,255,77,0,248,0,53,2,141,3,251,3,116,3,206,2,120,2,60,2,247,1,213,1,196,1,92,1, +145,0,248,255,211,255,105,255,33,254,177,252,76,252,9,253,14,254,244,254,238,255,224,0,104,1,163,1,6,2,106,2, +26,2,24,1,122,0,15,1,113,2,221,3,74,5,236,6,65,8,129,8,182,7,152,6,97,5,153,3,26,1,144,254, +174,252,125,251,193,250,156,250,88,251,205,252,100,254,144,255,17,0,237,255,106,255,247,254,215,254,211,254,142,254,8,254, +181,253,237,253,135,254,8,255,50,255,50,255,82,255,148,255,190,255,197,255,226,255,34,0,17,0,36,255,144,253,77,252, +37,252,232,252,194,253,33,254,20,254,241,253,240,253,39,254,152,254,54,255,230,255,132,0,218,0,169,0,250,255,95,255, +144,255,171,0,0,2,198,2,215,2,149,2,83,2,10,2,161,1,55,1,4,1,19,1,59,1,91,1,131,1,217,1, +80,2,156,2,120,2,236,1,65,1,177,0,69,0,238,255,168,255,122,255,110,255,151,255,251,255,116,0,195,0,203,0, +166,0,106,0,14,0,151,255,64,255,64,255,140,255,237,255,66,0,142,0,190,0,171,0,80,0,210,255,88,255,236,254, +155,254,139,254,220,254,133,255,96,0,65,1,254,1,107,2,109,2,254,1,49,1,44,0,32,255,60,254,167,253,118,253, +169,253,46,254,227,254,160,255,64,0,167,0,197,0,155,0,56,0,181,255,45,255,187,254,112,254,85,254,103,254,153,254, +220,254,27,255,72,255,91,255,83,255,54,255,16,255,239,254,221,254,225,254,250,254,33,255,75,255,106,255,116,255,98,255, +51,255,236,254,153,254,70,254,253,253,198,253,165,253,153,253,158,253,176,253,206,253,246,253,44,254,114,254,202,254,52,255, +169,255,33,0,145,0,241,0,59,1,112,1,155,1,200,1,6,2,97,2,220,2,110,3,6,4,140,4,228,4,250,4, +196,4,70,4,147,3,201,2,8,2,110,1,10,1,226,0,231,0,5,1,30,1,28,1,240,0,155,0,42,0,181,255, +88,255,41,255,52,255,120,255,232,255,108,0,231,0,65,1,106,1,94,1,34,1,199,0,95,0,253,255,175,255,124,255, +101,255,98,255,107,255,118,255,123,255,117,255,94,255,52,255,246,254,164,254,64,254,204,253,79,253,210,252,99,252,12,252, +217,251,207,251,240,251,53,252,150,252,4,253,116,253,221,253,61,254,149,254,229,254,45,255,111,255,173,255,236,255,40,0, +92,0,132,0,157,0,164,0,155,0,141,0,133,0,131,0,130,0,128,0,118,0,90,0,41,0,236,255,178,255,128,255, +92,255,78,255,96,255,148,255,232,255,80,0,177,0,249,0,53,1,119,1,167,1,154,1,87,1,23,1,253,0,246,0, +242,0,255,0,28,1,37,1,9,1,239,0,239,0,236,0,205,0,171,0,169,0,177,0,155,0,109,0,73,0,54,0, +37,0,39,0,81,0,142,0,167,0,147,0,139,0,196,0,34,1,90,1,78,1,47,1,63,1,116,1,143,1,110,1, +39,1,200,0,66,0,161,255,32,255,214,254,153,254,83,254,54,254,105,254,187,254,238,254,27,255,117,255,225,255,34,0, +57,0,74,0,60,0,229,255,130,255,129,255,232,255,77,0,109,0,114,0,143,0,177,0,176,0,130,0,55,0,217,255, +121,255,34,255,203,254,112,254,47,254,46,254,99,254,173,254,251,254,60,255,71,255,1,255,141,254,34,254,210,253,151,253, +127,253,148,253,193,253,249,253,95,254,10,255,209,255,119,0,243,0,84,1,133,1,93,1,238,0,131,0,74,0,45,0, +13,0,245,255,15,0,118,0,24,1,192,1,60,2,131,2,160,2,128,2,5,2,82,1,189,0,110,0,75,0,61,0, +62,0,42,0,229,255,168,255,188,255,238,255,200,255,73,255,219,254,165,254,112,254,76,254,135,254,5,255,70,255,46,255, +43,255,114,255,181,255,189,255,178,255,170,255,129,255,62,255,35,255,66,255,110,255,169,255,20,0,130,0,150,0,65,0, +210,255,142,255,130,255,164,255,216,255,237,255,212,255,182,255,172,255,171,255,180,255,213,255,1,0,26,0,59,0,135,0, +215,0,233,0,196,0,157,0,132,0,123,0,163,0,246,0,39,1,17,1,1,1,30,1,22,1,172,0,59,0,37,0, +72,0,92,0,114,0,165,0,197,0,181,0,180,0,226,0,249,0,195,0,120,0,84,0,48,0,215,255,104,255,41,255, +37,255,49,255,37,255,1,255,232,254,245,254,16,255,16,255,252,254,255,254,23,255,29,255,30,255,75,255,145,255,182,255, +199,255,243,255,10,0,194,255,89,255,87,255,174,255,206,255,142,255,91,255,114,255,152,255,163,255,193,255,11,0,75,0, +88,0,77,0,65,0,47,0,38,0,82,0,168,0,231,0,243,0,242,0,12,1,63,1,123,1,168,1,178,1,162,1, +146,1,116,1,28,1,160,0,80,0,68,0,63,0,33,0,19,0,44,0,69,0,50,0,246,255,166,255,96,255,73,255, +100,255,135,255,141,255,132,255,149,255,229,255,113,0,3,1,81,1,86,1,71,1,67,1,58,1,42,1,29,1,249,0, +169,0,87,0,55,0,71,0,113,0,183,0,6,1,32,1,234,0,118,0,211,255,36,255,201,254,242,254,58,255,44,255, +231,254,207,254,236,254,22,255,87,255,172,255,209,255,170,255,134,255,161,255,206,255,210,255,183,255,161,255,137,255,87,255, +10,255,185,254,118,254,81,254,90,254,159,254,20,255,136,255,214,255,17,0,84,0,126,0,105,0,30,0,180,255,46,255, +179,254,138,254,174,254,207,254,207,254,214,254,240,254,8,255,47,255,102,255,105,255,42,255,12,255,58,255,77,255,10,255, +222,254,19,255,77,255,53,255,0,255,242,254,234,254,210,254,221,254,30,255,63,255,241,254,81,254,207,253,203,253,62,254, +188,254,255,254,57,255,180,255,93,0,239,0,92,1,200,1,58,2,145,2,176,2,175,2,202,2,13,3,68,3,79,3, +97,3,163,3,206,3,162,3,119,3,182,3,247,3,145,3,178,2,7,2,169,1,63,1,180,0,71,0,28,0,32,0, +35,0,244,255,150,255,96,255,138,255,193,255,157,255,71,255,30,255,13,255,244,254,29,255,129,255,149,255,70,255,14,255, +5,255,244,254,232,254,213,254,137,254,75,254,103,254,131,254,100,254,91,254,123,254,158,254,236,254,86,255,84,255,238,254, +172,254,129,254,33,254,224,253,23,254,127,254,211,254,49,255,177,255,61,0,196,0,75,1,207,1,36,2,33,2,254,1, +32,2,119,2,150,2,97,2,15,2,196,1,137,1,105,1,101,1,113,1,100,1,28,1,174,0,81,0,29,0,15,0, +36,0,66,0,87,0,122,0,178,0,214,0,184,0,86,0,224,255,150,255,104,255,14,255,153,254,74,254,0,254,145,253, +78,253,120,253,204,253,0,254,30,254,96,254,252,254,202,255,76,0,103,0,112,0,117,0,74,0,26,0,41,0,105,0, +187,0,4,1,41,1,65,1,110,1,146,1,153,1,146,1,96,1,248,0,184,0,200,0,204,0,155,0,109,0,81,0, +66,0,69,0,49,0,242,255,194,255,177,255,172,255,218,255,59,0,108,0,112,0,159,0,219,0,216,0,188,0,189,0, +204,0,227,0,244,0,230,0,222,0,235,0,181,0,57,0,238,255,209,255,119,255,15,255,5,255,20,255,205,254,89,254, +11,254,224,253,193,253,155,253,88,253,34,253,83,253,224,253,86,254,129,254,133,254,110,254,61,254,36,254,64,254,93,254, +123,254,222,254,100,255,168,255,201,255,29,0,106,0,94,0,47,0,30,0,14,0,236,255,208,255,209,255,4,0,85,0, +111,0,57,0,33,0,99,0,175,0,203,0,246,0,93,1,180,1,156,1,61,1,246,0,198,0,132,0,93,0,117,0, +107,0,13,0,206,255,235,255,9,0,242,255,222,255,205,255,149,255,91,255,84,255,93,255,86,255,92,255,111,255,94,255, +29,255,222,254,203,254,246,254,97,255,224,255,39,0,45,0,53,0,98,0,176,0,55,1,227,1,36,2,123,1,71,0, +110,255,84,255,144,255,173,255,165,255,147,255,105,255,56,255,91,255,0,0,202,0,57,1,73,1,57,1,17,1,206,0, +195,0,47,1,198,1,20,2,11,2,213,1,120,1,10,1,233,0,73,1,232,1,74,2,41,2,146,1,214,0,91,0, +75,0,110,0,97,0,243,255,72,255,187,254,152,254,226,254,86,255,162,255,146,255,34,255,151,254,71,254,74,254,100,254, +97,254,80,254,82,254,100,254,105,254,115,254,194,254,104,255,247,255,238,255,89,255,168,254,21,254,168,253,163,253,47,254, +207,254,241,254,188,254,178,254,225,254,32,255,147,255,71,0,192,0,148,0,8,0,167,255,162,255,232,255,86,0,177,0, +200,0,173,0,130,0,84,0,61,0,112,0,228,0,78,1,109,1,56,1,194,0,77,0,51,0,131,0,223,0,234,0, +163,0,62,0,246,255,1,0,103,0,211,0,241,0,209,0,182,0,176,0,172,0,192,0,11,1,101,1,133,1,87,1, +12,1,197,0,116,0,16,0,181,255,128,255,102,255,79,255,71,255,110,255,202,255,52,0,135,0,197,0,237,0,228,0, +153,0,47,0,211,255,139,255,90,255,101,255,177,255,250,255,19,0,45,0,116,0,180,0,180,0,152,0,147,0,150,0, +136,0,125,0,132,0,136,0,135,0,129,0,80,0,224,255,109,255,53,255,44,255,50,255,83,255,129,255,133,255,98,255, +101,255,174,255,1,0,34,0,6,0,193,255,122,255,94,255,107,255,95,255,27,255,194,254,119,254,71,254,72,254,143,254, +248,254,69,255,107,255,102,255,10,255,89,254,205,253,230,253,135,254,48,255,164,255,240,255,10,0,216,255,123,255,74,255, +118,255,224,255,59,0,71,0,19,0,253,255,77,0,232,0,123,1,214,1,244,1,220,1,167,1,142,1,182,1,247,1, +254,1,165,1,31,1,190,0,170,0,212,0,41,1,160,1,17,2,59,2,26,2,244,1,254,1,29,2,36,2,9,2, +198,1,67,1,139,0,230,255,156,255,191,255,37,0,137,0,190,0,188,0,149,0,94,0,54,0,50,0,54,0,14,0, +179,255,70,255,208,254,90,254,14,254,9,254,42,254,73,254,112,254,165,254,199,254,208,254,238,254,38,255,57,255,1,255, +176,254,124,254,97,254,73,254,59,254,64,254,70,254,50,254,5,254,215,253,200,253,240,253,88,254,233,254,108,255,170,255, +160,255,123,255,105,255,115,255,129,255,128,255,112,255,94,255,95,255,138,255,218,255,37,0,76,0,110,0,175,0,230,0, +215,0,177,0,209,0,7,1,204,0,40,0,179,255,156,255,139,255,110,255,159,255,34,0,129,0,124,0,76,0,63,0, +110,0,188,0,230,0,187,0,93,0,9,0,206,255,181,255,226,255,70,0,141,0,145,0,130,0,128,0,127,0,141,0, +191,0,234,0,228,0,197,0,158,0,81,0,243,255,205,255,215,255,200,255,179,255,247,255,129,0,215,0,220,0,240,0, +43,1,42,1,179,0,33,0,222,255,211,255,163,255,85,255,74,255,150,255,212,255,202,255,199,255,15,0,102,0,124,0, +105,0,109,0,129,0,103,0,32,0,242,255,19,0,94,0,116,0,32,0,132,255,249,254,214,254,55,255,221,255,89,0, +119,0,83,0,15,0,195,255,171,255,226,255,2,0,143,255,174,254,244,253,172,253,207,253,96,254,85,255,72,0,200,0, +210,0,196,0,232,0,49,1,85,1,47,1,223,0,125,0,239,255,90,255,76,255,2,0,221,0,39,1,221,0,89,0, +203,255,118,255,183,255,116,0,24,1,75,1,55,1,15,1,227,0,233,0,82,1,237,1,68,2,11,2,75,1,65,0, +71,255,179,254,174,254,21,255,131,255,160,255,140,255,169,255,11,0,105,0,164,0,228,0,25,1,247,0,123,0,1,0, +189,255,152,255,118,255,87,255,49,255,255,254,199,254,162,254,185,254,35,255,165,255,225,255,201,255,157,255,129,255,106,255, +97,255,98,255,47,255,179,254,61,254,21,254,42,254,116,254,17,255,212,255,54,0,9,0,180,255,160,255,192,255,222,255, +241,255,248,255,217,255,144,255,97,255,148,255,20,0,146,0,228,0,255,0,201,0,88,0,27,0,106,0,10,1,127,1, +138,1,27,1,65,0,97,255,26,255,163,255,144,0,84,1,147,1,62,1,176,0,128,0,206,0,40,1,57,1,9,1, +161,0,5,0,131,255,98,255,134,255,199,255,65,0,209,0,235,0,114,0,252,255,247,255,27,0,0,0,159,255,25,255, +137,254,43,254,51,254,151,254,40,255,194,255,59,0,109,0,102,0,77,0,45,0,237,255,136,255,20,255,174,254,98,254, +55,254,64,254,150,254,35,255,150,255,185,255,185,255,217,255,18,0,59,0,90,0,127,0,136,0,75,0,217,255,125,255, +119,255,196,255,29,0,60,0,26,0,224,255,170,255,143,255,169,255,237,255,37,0,46,0,42,0,69,0,119,0,133,0, +82,0,13,0,255,255,44,0,86,0,91,0,92,0,106,0,106,0,91,0,102,0,140,0,161,0,153,0,148,0,163,0, +196,0,247,0,37,1,39,1,7,1,228,0,174,0,86,0,20,0,18,0,23,0,247,255,233,255,29,0,90,0,112,0, +144,0,222,0,41,1,57,1,26,1,225,0,147,0,77,0,43,0,23,0,251,255,232,255,248,255,26,0,59,0,106,0, +179,0,243,0,247,0,189,0,115,0,48,0,234,255,167,255,138,255,152,255,176,255,187,255,182,255,147,255,88,255,79,255, +180,255,70,0,139,0,108,0,37,0,207,255,91,255,211,254,92,254,14,254,231,253,210,253,192,253,197,253,16,254,164,254, +58,255,147,255,178,255,164,255,95,255,8,255,252,254,68,255,124,255,108,255,80,255,95,255,126,255,136,255,144,255,183,255, +235,255,23,0,80,0,153,0,194,0,191,0,192,0,200,0,162,0,85,0,35,0,34,0,48,0,57,0,61,0,39,0, +248,255,4,0,145,0,75,1,168,1,158,1,129,1,101,1,22,1,128,0,225,255,138,255,131,255,146,255,146,255,171,255, +9,0,146,0,247,0,20,1,15,1,252,0,204,0,169,0,226,0,85,1,124,1,37,1,155,0,30,0,177,255,82,255, +29,255,21,255,12,255,248,254,29,255,174,255,130,0,80,1,213,1,212,1,68,1,122,0,222,255,150,255,115,255,55,255, +207,254,82,254,231,253,209,253,79,254,80,255,98,0,12,1,33,1,204,0,86,0,220,255,108,255,51,255,51,255,45,255, +3,255,210,254,179,254,201,254,63,255,252,255,162,0,229,0,194,0,107,0,25,0,246,255,18,0,51,0,0,0,115,255, +230,254,141,254,95,254,96,254,166,254,28,255,134,255,191,255,218,255,25,0,174,0,130,1,61,2,117,2,1,2,14,1, +233,255,237,254,121,254,163,254,3,255,33,255,236,254,184,254,216,254,104,255,85,0,129,1,152,2,19,3,176,2,177,1, +128,0,125,255,253,254,244,254,240,254,195,254,187,254,248,254,66,255,154,255,96,0,148,1,150,2,222,2,142,2,251,1, +60,1,99,0,167,255,17,255,112,254,188,253,55,253,29,253,115,253,36,254,32,255,83,0,131,1,88,2,155,2,115,2, +58,2,11,2,159,1,193,0,164,255,166,254,233,253,109,253,74,253,156,253,75,254,26,255,214,255,96,0,179,0,235,0, +44,1,104,1,107,1,31,1,153,0,250,255,86,255,203,254,131,254,117,254,105,254,111,254,219,254,163,255,80,0,193,0, +58,1,182,1,214,1,119,1,216,0,56,0,170,255,67,255,30,255,45,255,73,255,109,255,156,255,203,255,2,0,93,0, +205,0,37,1,67,1,25,1,182,0,78,0,16,0,252,255,252,255,13,0,49,0,76,0,62,0,36,0,31,0,19,0, +250,255,0,0,27,0,38,0,65,0,116,0,137,0,124,0,126,0,145,0,168,0,183,0,138,0,36,0,213,255,175,255, +129,255,77,255,58,255,65,255,59,255,37,255,55,255,146,255,235,255,241,255,207,255,212,255,239,255,221,255,135,255,36,255, +6,255,49,255,103,255,160,255,252,255,97,0,173,0,222,0,208,0,102,0,205,255,74,255,237,254,165,254,116,254,117,254, +145,254,153,254,200,254,117,255,88,0,4,1,136,1,228,1,209,1,97,1,228,0,116,0,29,0,241,255,216,255,192,255, +157,255,91,255,38,255,91,255,13,0,248,0,180,1,242,1,207,1,167,1,152,1,151,1,158,1,98,1,167,0,174,255, +217,254,91,254,92,254,187,254,33,255,104,255,149,255,183,255,23,0,210,0,144,1,22,2,110,2,90,2,150,1,97,0, +75,255,180,254,142,254,142,254,165,254,230,254,31,255,43,255,78,255,186,255,76,0,215,0,34,1,244,0,109,0,217,255, +83,255,218,254,132,254,105,254,129,254,175,254,248,254,121,255,239,255,240,255,177,255,174,255,233,255,29,0,42,0,2,0, +195,255,169,255,186,255,218,255,2,0,28,0,41,0,68,0,81,0,61,0,68,0,107,0,100,0,60,0,40,0,10,0, +206,255,150,255,98,255,52,255,59,255,125,255,191,255,212,255,184,255,150,255,173,255,241,255,36,0,72,0,129,0,180,0, +162,0,86,0,33,0,45,0,70,0,50,0,2,0,233,255,6,0,79,0,153,0,204,0,248,0,19,1,4,1,226,0, +203,0,167,0,118,0,96,0,98,0,71,0,253,255,187,255,189,255,3,0,83,0,127,0,132,0,139,0,200,0,31,1, +32,1,177,0,73,0,41,0,252,255,144,255,53,255,55,255,124,255,190,255,215,255,192,255,140,255,90,255,69,255,98,255, +166,255,214,255,188,255,131,255,111,255,110,255,82,255,53,255,59,255,69,255,45,255,7,255,4,255,40,255,78,255,92,255, +89,255,91,255,127,255,203,255,30,0,88,0,139,0,198,0,240,0,218,0,119,0,12,0,228,255,200,255,103,255,8,255, +0,255,13,255,243,254,248,254,105,255,78,0,113,1,103,2,235,2,27,3,0,3,114,2,148,1,200,0,52,0,162,255, +205,254,219,253,67,253,12,253,236,252,15,253,194,253,175,254,91,255,232,255,180,0,162,1,65,2,111,2,114,2,65,2, +110,1,18,0,241,254,113,254,64,254,249,253,158,253,147,253,19,254,233,254,242,255,81,1,194,2,163,3,171,3,6,3, +26,2,90,1,199,0,37,0,138,255,7,255,85,254,149,253,79,253,170,253,131,254,186,255,253,0,239,1,82,2,248,1, +18,1,50,0,156,255,64,255,31,255,22,255,221,254,131,254,78,254,102,254,201,254,59,255,148,255,0,0,97,0,58,0, +157,255,53,255,109,255,42,0,251,0,112,1,148,1,151,1,100,1,40,1,91,1,200,1,187,1,247,0,201,255,161,254, +183,253,4,253,194,252,106,253,159,254,117,255,235,255,173,0,206,1,222,2,157,3,243,3,193,3,235,2,149,1,68,0, +77,255,138,254,236,253,162,253,164,253,190,253,236,253,79,254,23,255,70,0,135,1,132,2,37,3,72,3,255,2,150,2, +10,2,56,1,92,0,167,255,15,255,176,254,131,254,73,254,54,254,164,254,66,255,180,255,61,0,6,1,169,1,162,1, +255,0,120,0,128,0,124,0,204,255,210,254,32,254,184,253,129,253,162,253,78,254,113,255,133,0,254,0,7,1,28,1, +65,1,59,1,13,1,208,0,133,0,42,0,217,255,194,255,244,255,61,0,103,0,94,0,37,0,200,255,80,255,199,254, +106,254,99,254,133,254,161,254,228,254,134,255,131,0,127,1,11,2,37,2,43,2,22,2,141,1,183,0,6,0,127,255, +2,255,185,254,199,254,3,255,69,255,162,255,37,0,160,0,237,0,28,1,70,1,115,1,160,1,180,1,143,1,94,1, +94,1,91,1,4,1,115,0,218,255,50,255,140,254,38,254,251,253,194,253,68,253,140,252,234,251,213,251,156,252,31,254, +216,255,17,1,85,1,209,0,15,0,110,255,50,255,158,255,122,0,50,1,161,1,254,1,61,2,81,2,98,2,57,2, +98,1,15,0,13,255,210,254,36,255,142,255,210,255,202,255,67,255,123,254,60,254,219,254,232,255,6,1,249,1,54,2, +145,1,148,0,161,255,176,254,222,253,91,253,21,253,16,253,149,253,229,254,227,0,242,2,66,4,69,4,11,3,60,1, +186,255,247,254,177,254,90,254,193,253,33,253,163,252,84,252,145,252,151,253,199,254,125,255,8,0,226,0,8,2,114,3, +228,4,143,5,255,4,138,3,171,1,241,255,252,254,213,254,15,255,97,255,151,255,155,255,167,255,213,255,20,0,100,0, +162,0,159,0,146,0,181,0,6,1,188,1,203,2,104,3,7,3,7,2,236,0,229,255,245,254,3,254,25,253,101,252, +250,251,253,251,195,252,39,254,157,255,210,0,146,1,171,1,84,1,16,1,30,1,75,1,28,1,60,0,214,254,99,253, +111,252,86,252,230,252,148,253,51,254,224,254,167,255,153,0,148,1,47,2,74,2,253,1,25,1,161,255,44,254,74,253, +33,253,139,253,35,254,167,254,26,255,118,255,206,255,81,0,180,0,149,0,62,0,252,255,172,255,116,255,158,255,2,0, +111,0,212,0,245,0,225,0,245,0,42,1,65,1,24,1,135,0,185,255,54,255,5,255,212,254,229,254,120,255,38,0, +167,0,23,1,104,1,151,1,216,1,26,2,244,1,64,1,76,0,128,255,3,255,191,254,167,254,206,254,53,255,189,255, +58,0,156,0,244,0,74,1,139,1,174,1,161,1,89,1,6,1,149,0,155,255,70,254,95,253,17,253,6,253,76,253, +9,254,243,254,157,255,194,255,136,255,128,255,191,255,189,255,118,255,105,255,128,255,78,255,225,254,157,254,191,254,23,255, +40,255,229,254,215,254,38,255,132,255,13,0,8,1,28,2,190,2,201,2,114,2,23,2,232,1,174,1,50,1,141,0, +189,255,158,254,122,253,232,252,16,253,185,253,172,254,145,255,253,255,248,255,254,255,83,0,213,0,58,1,69,1,249,0, +129,0,229,255,46,255,190,254,245,254,168,255,99,0,220,0,0,1,252,0,17,1,76,1,154,1,232,1,5,2,194,1, +78,1,9,1,243,0,177,0,61,0,28,0,130,0,213,0,171,0,129,0,173,0,166,0,27,0,149,255,127,255,144,255, +127,255,108,255,144,255,234,255,66,0,89,0,80,0,138,0,245,0,11,1,185,0,106,0,73,0,65,0,86,0,137,0, +207,0,15,1,244,0,99,0,217,255,142,255,35,255,168,254,137,254,156,254,165,254,246,254,170,255,87,0,189,0,221,0, +205,0,178,0,152,0,147,0,221,0,94,1,170,1,168,1,115,1,236,0,23,0,26,255,247,253,237,252,92,252,51,252, +86,252,12,253,91,254,224,255,105,1,200,2,114,3,29,3,47,2,23,1,212,255,100,254,43,253,139,252,110,252,181,252, +144,253,50,255,112,1,175,3,81,5,87,6,8,7,35,7,126,6,164,5,187,4,58,3,58,1,101,255,234,253,182,252, +189,251,208,250,16,250,206,249,171,249,54,249,226,248,50,249,11,250,72,251,231,252,199,254,174,0,81,2,143,3,129,4, +230,4,76,4,8,3,192,1,139,0,118,255,221,254,216,254,59,255,213,255,73,0,120,0,186,0,32,1,71,1,21,1, +216,0,218,0,21,1,48,1,250,0,164,0,77,0,212,255,85,255,24,255,25,255,35,255,37,255,46,255,53,255,33,255, +66,255,14,0,31,1,145,1,97,1,40,1,1,1,228,0,9,1,82,1,93,1,250,0,43,0,27,255,29,254,92,253, +236,252,244,252,99,253,27,254,45,255,124,0,213,1,21,3,176,3,1,3,93,1,155,255,5,254,190,252,50,252,122,252, +36,253,175,253,12,254,231,254,169,0,129,2,137,3,252,3,23,4,70,3,82,1,27,255,145,253,205,252,40,252,38,251, +75,250,121,250,186,251,122,253,164,255,96,2,7,5,132,6,204,6,223,6,51,7,55,7,122,6,94,5,101,4,122,3, +68,2,250,0,65,0,4,0,106,255,50,254,25,253,180,252,224,252,20,253,213,252,51,252,177,251,123,251,114,251,201,251, +202,252,57,254,149,255,144,0,23,1,66,1,44,1,230,0,154,0,80,0,185,255,199,254,33,254,94,254,77,255,80,0, +248,0,43,1,19,1,247,0,18,1,151,1,129,2,97,3,160,3,15,3,227,1,114,0,28,255,24,254,50,253,50,252, +79,251,230,250,43,251,72,252,49,254,112,0,114,2,200,3,40,4,165,3,168,2,126,1,74,0,80,255,197,254,162,254, +208,254,73,255,10,0,2,1,2,2,203,2,74,3,157,3,211,3,198,3,86,3,180,2,37,2,135,1,153,0,133,255, +156,254,235,253,116,253,67,253,63,253,92,253,184,253,80,254,227,254,37,255,249,254,171,254,162,254,222,254,21,255,53,255, +79,255,65,255,201,254,241,253,51,253,242,252,30,253,158,253,127,254,121,255,56,0,203,0,74,1,147,1,177,1,192,1, +165,1,91,1,241,0,91,0,204,255,161,255,190,255,210,255,229,255,1,0,253,255,197,255,112,255,39,255,1,255,222,254, +161,254,124,254,115,254,66,254,242,253,224,253,75,254,31,255,15,0,224,0,169,1,97,2,179,2,141,2,38,2,119,1, +110,0,73,255,89,254,205,253,200,253,60,254,247,254,218,255,204,0,161,1,27,2,34,2,244,1,199,1,102,1,185,0, +5,0,90,255,169,254,75,254,117,254,203,254,21,255,109,255,215,255,71,0,162,0,186,0,207,0,71,1,230,1,55,2, +82,2,87,2,43,2,224,1,162,1,116,1,97,1,118,1,133,1,86,1,230,0,109,0,35,0,28,0,85,0,198,0, +35,1,35,1,241,0,216,0,197,0,160,0,123,0,68,0,217,255,65,255,172,254,106,254,165,254,19,255,89,255,109,255, +101,255,79,255,61,255,54,255,80,255,163,255,3,0,32,0,253,255,219,255,235,255,44,0,85,0,42,0,229,255,191,255, +129,255,15,255,174,254,128,254,110,254,103,254,99,254,120,254,203,254,53,255,118,255,181,255,46,0,176,0,234,0,223,0, +179,0,84,0,168,255,244,254,184,254,3,255,98,255,132,255,134,255,157,255,205,255,9,0,92,0,223,0,107,1,175,1, +176,1,181,1,198,1,182,1,142,1,113,1,74,1,238,0,95,0,216,255,142,255,129,255,149,255,190,255,246,255,33,0, +21,0,213,255,157,255,150,255,148,255,99,255,25,255,217,254,155,254,80,254,17,254,4,254,56,254,147,254,232,254,65,255, +185,255,52,0,136,0,202,0,31,1,113,1,154,1,140,1,60,1,168,0,240,255,92,255,46,255,93,255,147,255,133,255, +70,255,31,255,40,255,84,255,151,255,224,255,20,0,39,0,36,0,38,0,65,0,99,0,94,0,50,0,252,255,198,255, +150,255,148,255,224,255,114,0,16,1,113,1,136,1,130,1,105,1,37,1,214,0,165,0,116,0,28,0,187,255,137,255, +147,255,183,255,217,255,1,0,53,0,78,0,48,0,3,0,239,255,219,255,151,255,37,255,187,254,133,254,140,254,192,254, +1,255,51,255,71,255,56,255,24,255,30,255,93,255,154,255,162,255,136,255,105,255,81,255,78,255,84,255,70,255,47,255, +49,255,93,255,178,255,34,0,149,0,7,1,119,1,202,1,234,1,222,1,165,1,71,1,238,0,175,0,135,0,122,0, +126,0,114,0,70,0,15,0,244,255,12,0,69,0,126,0,179,0,219,0,234,0,242,0,11,1,24,1,255,0,215,0, +183,0,157,0,131,0,98,0,57,0,14,0,224,255,166,255,96,255,46,255,61,255,150,255,8,0,97,0,157,0,209,0, +0,1,28,1,17,1,209,0,99,0,231,255,136,255,102,255,101,255,94,255,96,255,137,255,195,255,215,255,185,255,143,255, +146,255,192,255,219,255,190,255,153,255,170,255,244,255,74,0,134,0,158,0,158,0,142,0,131,0,152,0,181,0,158,0, +72,0,225,255,144,255,101,255,97,255,126,255,178,255,235,255,11,0,29,0,81,0,159,0,186,0,111,0,231,255,94,255, +227,254,102,254,243,253,188,253,211,253,14,254,65,254,119,254,210,254,72,255,180,255,251,255,23,0,251,255,168,255,61,255, +226,254,166,254,130,254,111,254,121,254,177,254,6,255,73,255,109,255,150,255,222,255,40,0,72,0,49,0,255,255,214,255, +179,255,144,255,130,255,168,255,251,255,82,0,140,0,175,0,216,0,1,1,6,1,227,0,188,0,171,0,164,0,150,0, +133,0,131,0,161,0,213,0,9,1,43,1,50,1,30,1,246,0,200,0,155,0,116,0,90,0,84,0,100,0,140,0, +205,0,32,1,118,1,190,1,235,1,246,1,217,1,138,1,11,1,125,0,10,0,178,255,82,255,221,254,122,254,93,254, +139,254,223,254,36,255,68,255,69,255,68,255,97,255,159,255,223,255,8,0,32,0,60,0,84,0,67,0,0,0,183,255, +153,255,156,255,142,255,100,255,70,255,92,255,158,255,234,255,49,0,108,0,135,0,104,0,23,0,192,255,126,255,73,255, +22,255,245,254,245,254,14,255,44,255,82,255,146,255,236,255,73,0,153,0,226,0,31,1,56,1,31,1,238,0,206,0, +196,0,182,0,143,0,87,0,32,0,238,255,187,255,141,255,117,255,126,255,163,255,207,255,241,255,8,0,41,0,99,0, +166,0,210,0,209,0,179,0,151,0,124,0,77,0,7,0,198,255,164,255,162,255,176,255,200,255,241,255,40,0,95,0, +139,0,169,0,181,0,167,0,135,0,102,0,82,0,68,0,41,0,247,255,179,255,110,255,70,255,92,255,183,255,45,0, +133,0,169,0,185,0,217,0,8,1,39,1,26,1,218,0,118,0,12,0,185,255,129,255,73,255,0,255,190,254,166,254, +180,254,185,254,167,254,166,254,222,254,56,255,124,255,156,255,190,255,247,255,32,0,19,0,223,255,182,255,169,255,160,255, +133,255,93,255,46,255,245,254,186,254,152,254,162,254,196,254,230,254,8,255,63,255,133,255,192,255,226,255,253,255,25,0, +35,0,1,0,194,255,146,255,138,255,159,255,196,255,244,255,41,0,78,0,83,0,75,0,85,0,123,0,161,0,173,0, +166,0,167,0,191,0,223,0,240,0,234,0,215,0,197,0,190,0,201,0,230,0,5,1,16,1,3,1,246,0,255,0, +15,1,4,1,219,0,183,0,178,0,175,0,130,0,47,0,229,255,191,255,159,255,107,255,61,255,54,255,74,255,72,255, +44,255,46,255,112,255,202,255,250,255,245,255,231,255,234,255,237,255,213,255,166,255,115,255,67,255,31,255,23,255,44,255, +69,255,74,255,73,255,95,255,142,255,189,255,231,255,37,0,118,0,180,0,186,0,162,0,155,0,174,0,173,0,123,0, +47,0,248,255,235,255,253,255,29,0,61,0,79,0,84,0,90,0,110,0,132,0,140,0,139,0,145,0,157,0,148,0, +110,0,68,0,49,0,37,0,8,0,224,255,207,255,226,255,255,255,16,0,27,0,50,0,71,0,63,0,19,0,222,255, +188,255,174,255,166,255,158,255,162,255,188,255,229,255,5,0,1,0,222,255,191,255,196,255,235,255,18,0,36,0,39,0, +39,0,30,0,254,255,209,255,175,255,165,255,165,255,167,255,180,255,215,255,10,0,58,0,89,0,95,0,81,0,66,0, +74,0,110,0,149,0,167,0,169,0,179,0,196,0,187,0,133,0,58,0,245,255,190,255,143,255,119,255,135,255,170,255, +182,255,161,255,140,255,144,255,156,255,155,255,150,255,160,255,175,255,171,255,158,255,179,255,242,255,35,0,12,0,186,255, +105,255,55,255,21,255,242,254,218,254,215,254,221,254,222,254,231,254,13,255,69,255,107,255,110,255,97,255,100,255,127,255, +170,255,222,255,23,0,68,0,86,0,82,0,83,0,100,0,124,0,142,0,148,0,144,0,139,0,147,0,173,0,211,0, +246,0,14,1,24,1,23,1,8,1,231,0,191,0,161,0,140,0,118,0,93,0,75,0,63,0,47,0,27,0,24,0, +48,0,85,0,114,0,132,0,151,0,167,0,156,0,103,0,30,0,227,255,197,255,185,255,175,255,163,255,150,255,125,255, +87,255,52,255,48,255,78,255,122,255,153,255,157,255,143,255,133,255,135,255,135,255,116,255,78,255,35,255,10,255,23,255, +64,255,105,255,131,255,143,255,146,255,141,255,120,255,83,255,53,255,62,255,108,255,170,255,234,255,37,0,89,0,121,0, +118,0,79,0,14,0,192,255,109,255,51,255,51,255,110,255,194,255,13,0,76,0,141,0,206,0,249,0,255,0,236,0, +211,0,177,0,126,0,73,0,49,0,65,0,106,0,141,0,157,0,167,0,182,0,201,0,221,0,239,0,246,0,238,0, +223,0,203,0,168,0,113,0,49,0,253,255,229,255,231,255,253,255,32,0,64,0,78,0,64,0,36,0,8,0,232,255, +184,255,133,255,121,255,163,255,225,255,14,0,37,0,46,0,47,0,39,0,27,0,8,0,215,255,126,255,25,255,229,254, +11,255,108,255,195,255,231,255,229,255,229,255,255,255,47,0,100,0,126,0,106,0,53,0,0,0,217,255,185,255,162,255, +144,255,124,255,112,255,130,255,186,255,5,0,69,0,101,0,103,0,87,0,58,0,18,0,230,255,186,255,123,255,22,255, +155,254,63,254,35,254,56,254,109,254,193,254,45,255,152,255,243,255,76,0,168,0,229,0,212,0,103,0,198,255,49,255, +194,254,116,254,79,254,103,254,180,254,17,255,104,255,199,255,62,0,189,0,36,1,107,1,167,1,239,1,77,2,201,2, +79,3,179,3,198,3,129,3,9,3,141,2,9,2,83,1,113,0,168,255,50,255,15,255,45,255,124,255,238,255,94,0, +157,0,147,0,86,0,255,255,140,255,2,255,143,254,93,254,112,254,175,254,252,254,70,255,138,255,188,255,210,255,211,255, +212,255,213,255,200,255,164,255,111,255,66,255,57,255,98,255,173,255,6,0,90,0,150,0,168,0,141,0,83,0,23,0, +227,255,169,255,106,255,78,255,129,255,254,255,150,0,21,1,98,1,127,1,112,1,36,1,141,0,199,255,16,255,147,254, +90,254,99,254,167,254,21,255,153,255,20,0,99,0,122,0,116,0,97,0,59,0,9,0,238,255,249,255,37,0,97,0, +157,0,206,0,244,0,255,0,205,0,93,0,210,255,85,255,231,254,113,254,239,253,147,253,137,253,205,253,60,254,193,254, +68,255,170,255,241,255,32,0,63,0,93,0,115,0,115,0,121,0,174,0,242,0,10,1,5,1,10,1,10,1,225,0, +140,0,39,0,220,255,194,255,208,255,255,255,81,0,180,0,6,1,58,1,85,1,82,1,34,1,196,0,76,0,218,255, +128,255,67,255,54,255,102,255,186,255,16,0,98,0,155,0,150,0,86,0,9,0,210,255,181,255,175,255,186,255,214,255, +5,0,62,0,101,0,119,0,132,0,140,0,122,0,71,0,6,0,206,255,172,255,162,255,151,255,115,255,68,255,45,255, +45,255,36,255,5,255,243,254,21,255,100,255,170,255,192,255,185,255,190,255,206,255,211,255,210,255,230,255,25,0,75,0, +73,0,18,0,221,255,205,255,206,255,203,255,197,255,198,255,216,255,248,255,20,0,43,0,74,0,116,0,167,0,225,0, +11,1,11,1,238,0,212,0,196,0,185,0,176,0,163,0,138,0,102,0,55,0,17,0,11,0,12,0,215,255,105,255, +2,255,204,254,189,254,190,254,196,254,200,254,208,254,230,254,26,255,109,255,185,255,212,255,190,255,155,255,132,255,116,255, +101,255,103,255,151,255,229,255,26,0,35,0,35,0,47,0,58,0,58,0,38,0,248,255,195,255,170,255,183,255,216,255, +247,255,6,0,4,0,2,0,12,0,25,0,22,0,6,0,7,0,45,0,110,0,190,0,30,1,120,1,171,1,169,1, +124,1,59,1,5,1,230,0,194,0,143,0,111,0,110,0,119,0,138,0,169,0,182,0,140,0,63,0,1,0,232,255, +219,255,192,255,158,255,138,255,134,255,129,255,115,255,101,255,105,255,131,255,157,255,167,255,162,255,141,255,110,255,103,255, +135,255,173,255,186,255,203,255,241,255,10,0,238,255,173,255,113,255,77,255,56,255,45,255,61,255,118,255,204,255,20,0, +45,0,29,0,253,255,214,255,172,255,152,255,162,255,173,255,172,255,168,255,171,255,182,255,203,255,225,255,236,255,240,255, +243,255,240,255,230,255,223,255,228,255,1,0,50,0,96,0,123,0,139,0,145,0,144,0,143,0,130,0,101,0,73,0, +63,0,54,0,33,0,8,0,235,255,213,255,209,255,215,255,223,255,243,255,7,0,0,0,235,255,222,255,217,255,218,255, +234,255,5,0,32,0,47,0,32,0,247,255,226,255,239,255,255,255,9,0,28,0,44,0,40,0,26,0,15,0,9,0, +10,0,6,0,249,255,243,255,10,0,51,0,86,0,112,0,140,0,175,0,203,0,208,0,203,0,210,0,229,0,239,0, +236,0,218,0,188,0,153,0,120,0,90,0,64,0,40,0,5,0,199,255,118,255,21,255,164,254,81,254,94,254,199,254, +57,255,141,255,221,255,34,0,38,0,228,255,163,255,177,255,27,0,154,0,223,0,229,0,205,0,125,0,210,255,253,254, +77,254,199,253,74,253,229,252,207,252,29,253,178,253,111,254,93,255,123,0,150,1,132,2,67,3,195,3,208,3,79,3, +93,2,80,1,140,0,52,0,27,0,34,0,87,0,166,0,233,0,34,1,70,1,42,1,203,0,80,0,196,255,34,255, +131,254,22,254,254,253,56,254,143,254,209,254,11,255,97,255,188,255,223,255,185,255,148,255,206,255,96,0,221,0,6,1, +11,1,50,1,115,1,128,1,18,1,54,0,67,255,123,254,226,253,126,253,114,253,210,253,128,254,69,255,230,255,64,0, +93,0,83,0,34,0,189,255,60,255,215,254,177,254,184,254,205,254,249,254,96,255,7,0,187,0,60,1,114,1,118,1, +103,1,90,1,100,1,135,1,166,1,168,1,152,1,148,1,167,1,190,1,179,1,116,1,13,1,140,0,243,255,88,255, +210,254,111,254,60,254,86,254,193,254,89,255,236,255,84,0,141,0,167,0,166,0,127,0,55,0,228,255,160,255,124,255, +113,255,105,255,95,255,80,255,52,255,27,255,35,255,64,255,76,255,69,255,74,255,110,255,177,255,14,0,118,0,224,0, +61,1,96,1,48,1,211,0,126,0,59,0,243,255,168,255,117,255,96,255,84,255,77,255,98,255,152,255,227,255,68,0, +170,0,220,0,182,0,83,0,230,255,150,255,105,255,65,255,20,255,22,255,113,255,7,0,165,0,51,1,159,1,211,1, +203,1,146,1,48,1,178,0,55,0,234,255,215,255,223,255,242,255,28,0,82,0,104,0,82,0,30,0,218,255,151,255, +96,255,35,255,219,254,166,254,148,254,166,254,225,254,58,255,132,255,172,255,209,255,249,255,4,0,247,255,246,255,19,0, +48,0,39,0,252,255,210,255,196,255,206,255,221,255,239,255,16,0,82,0,177,0,11,1,65,1,74,1,48,1,18,1, +6,1,11,1,12,1,5,1,246,0,209,0,141,0,76,0,57,0,83,0,114,0,130,0,135,0,140,0,146,0,144,0, +119,0,79,0,49,0,30,0,3,0,225,255,200,255,186,255,182,255,186,255,185,255,170,255,148,255,121,255,91,255,76,255, +80,255,83,255,80,255,75,255,61,255,42,255,41,255,54,255,50,255,14,255,213,254,168,254,175,254,229,254,22,255,42,255, +55,255,65,255,58,255,30,255,245,254,213,254,219,254,1,255,46,255,89,255,132,255,175,255,233,255,43,0,68,0,43,0, +19,0,25,0,39,0,40,0,28,0,17,0,43,0,113,0,180,0,219,0,10,1,83,1,158,1,206,1,208,1,163,1, +100,1,44,1,237,0,144,0,47,0,248,255,243,255,244,255,230,255,225,255,8,0,79,0,152,0,207,0,225,0,187,0, +99,0,0,0,185,255,155,255,146,255,131,255,118,255,136,255,187,255,231,255,254,255,28,0,73,0,105,0,118,0,121,0, +108,0,76,0,52,0,45,0,33,0,11,0,253,255,248,255,242,255,242,255,246,255,247,255,253,255,7,0,253,255,223,255, +198,255,195,255,209,255,233,255,0,0,10,0,9,0,4,0,4,0,15,0,27,0,26,0,7,0,219,255,163,255,142,255, +173,255,209,255,218,255,224,255,239,255,236,255,207,255,176,255,166,255,184,255,198,255,157,255,74,255,15,255,9,255,29,255, +56,255,83,255,97,255,92,255,71,255,43,255,16,255,250,254,232,254,229,254,244,254,6,255,17,255,30,255,55,255,95,255, +142,255,175,255,179,255,169,255,168,255,180,255,198,255,221,255,2,0,65,0,152,0,232,0,28,1,55,1,72,1,81,1, +79,1,63,1,36,1,7,1,235,0,203,0,170,0,141,0,122,0,119,0,129,0,142,0,151,0,164,0,188,0,220,0, +238,0,226,0,191,0,151,0,112,0,66,0,18,0,223,255,169,255,125,255,101,255,95,255,112,255,168,255,243,255,50,0, +91,0,108,0,88,0,31,0,216,255,156,255,110,255,62,255,0,255,199,254,180,254,213,254,19,255,75,255,119,255,157,255, +175,255,156,255,124,255,116,255,122,255,108,255,78,255,56,255,59,255,97,255,168,255,240,255,22,0,22,0,14,0,20,0, +37,0,48,0,45,0,41,0,51,0,65,0,64,0,43,0,28,0,31,0,32,0,28,0,45,0,74,0,79,0,63,0, +57,0,44,0,4,0,227,255,228,255,245,255,2,0,8,0,16,0,44,0,85,0,105,0,99,0,90,0,74,0,31,0, +229,255,192,255,186,255,190,255,189,255,206,255,9,0,76,0,97,0,87,0,84,0,84,0,68,0,42,0,15,0,249,255, +242,255,241,255,226,255,216,255,233,255,7,0,40,0,78,0,102,0,96,0,90,0,113,0,148,0,157,0,133,0,95,0, +71,0,67,0,63,0,54,0,60,0,88,0,116,0,122,0,114,0,112,0,119,0,117,0,98,0,88,0,104,0,120,0, +104,0,66,0,32,0,8,0,239,255,222,255,228,255,2,0,33,0,45,0,39,0,32,0,31,0,21,0,246,255,199,255, +137,255,70,255,30,255,39,255,71,255,100,255,126,255,161,255,203,255,232,255,219,255,171,255,130,255,108,255,82,255,62,255, +71,255,101,255,135,255,184,255,244,255,31,0,44,0,23,0,233,255,199,255,198,255,205,255,201,255,206,255,226,255,246,255, +5,0,26,0,69,0,126,0,154,0,118,0,53,0,16,0,17,0,32,0,33,0,12,0,1,0,30,0,79,0,115,0, +139,0,142,0,100,0,44,0,24,0,27,0,27,0,34,0,60,0,88,0,104,0,110,0,107,0,103,0,95,0,68,0, +25,0,245,255,221,255,186,255,143,255,132,255,179,255,247,255,30,0,30,0,8,0,218,255,148,255,79,255,29,255,255,254, +255,254,42,255,117,255,186,255,227,255,236,255,218,255,191,255,181,255,196,255,217,255,230,255,240,255,4,0,46,0,109,0, +162,0,172,0,148,0,121,0,94,0,74,0,84,0,109,0,109,0,84,0,71,0,72,0,65,0,52,0,47,0,62,0, +95,0,128,0,138,0,117,0,79,0,47,0,39,0,45,0,38,0,16,0,254,255,252,255,9,0,25,0,30,0,23,0, +18,0,15,0,11,0,3,0,231,255,173,255,112,255,77,255,62,255,59,255,91,255,167,255,4,0,78,0,117,0,124,0, +103,0,58,0,5,0,226,255,210,255,193,255,178,255,178,255,182,255,173,255,165,255,180,255,206,255,208,255,179,255,161,255, +183,255,214,255,219,255,219,255,248,255,42,0,86,0,114,0,127,0,125,0,102,0,61,0,15,0,235,255,213,255,214,255, +239,255,10,0,41,0,123,0,255,0,69,1,225,0,24,0,156,255,187,255,7,0,4,0,197,255,182,255,253,255,99,0, +170,0,171,0,82,0,177,255,26,255,211,254,200,254,178,254,140,254,168,254,78,255,106,0,159,1,113,2,109,2,120,1, +32,0,54,255,244,254,213,254,96,254,198,253,139,253,222,253,152,254,165,255,255,0,74,2,231,2,144,2,145,1,109,0, +110,255,180,254,83,254,53,254,39,254,52,254,183,254,230,255,100,1,132,2,226,2,127,2,133,1,69,0,76,255,12,255, +92,255,158,255,120,255,39,255,21,255,88,255,205,255,90,0,215,0,251,0,154,0,237,255,98,255,67,255,167,255,125,0, +102,1,180,1,8,1,227,255,59,255,108,255,221,255,212,255,81,255,210,254,166,254,198,254,41,255,219,255,185,0,98,1, +132,1,30,1,118,0,226,255,144,255,97,255,9,255,126,254,41,254,120,254,85,255,57,0,208,0,44,1,89,1,21,1, +63,0,76,255,225,254,31,255,141,255,189,255,188,255,220,255,67,0,204,0,53,1,87,1,54,1,241,0,141,0,247,255, +62,255,196,254,231,254,134,255,27,0,86,0,116,0,200,0,61,1,113,1,53,1,176,0,25,0,136,255,21,255,225,254, +250,254,74,255,171,255,2,0,65,0,111,0,159,0,211,0,218,0,137,0,4,0,171,255,165,255,194,255,210,255,232,255, +28,0,71,0,47,0,228,255,174,255,168,255,169,255,146,255,112,255,92,255,100,255,154,255,7,0,134,0,213,0,218,0, +185,0,150,0,110,0,51,0,238,255,170,255,100,255,40,255,34,255,107,255,220,255,58,0,117,0,157,0,181,0,172,0, +138,0,112,0,99,0,76,0,32,0,248,255,241,255,8,0,46,0,89,0,120,0,106,0,32,0,193,255,131,255,124,255, +150,255,174,255,188,255,203,255,237,255,42,0,115,0,163,0,157,0,100,0,9,0,152,255,30,255,187,254,145,254,169,254, +226,254,30,255,90,255,166,255,9,0,113,0,192,0,222,0,194,0,115,0,9,0,163,255,95,255,70,255,74,255,80,255, +80,255,90,255,128,255,186,255,240,255,20,0,41,0,50,0,44,0,27,0,16,0,27,0,58,0,91,0,105,0,85,0, +39,0,242,255,203,255,177,255,151,255,122,255,106,255,121,255,171,255,249,255,91,0,193,0,18,1,58,1,57,1,23,1, +217,0,129,0,29,0,191,255,116,255,63,255,40,255,57,255,112,255,188,255,8,0,72,0,117,0,139,0,137,0,117,0, +85,0,45,0,2,0,222,255,198,255,189,255,190,255,196,255,203,255,209,255,213,255,217,255,221,255,228,255,240,255,2,0, +26,0,53,0,81,0,106,0,123,0,129,0,123,0,105,0,76,0,41,0,5,0,230,255,208,255,199,255,203,255,221,255, +249,255,26,0,61,0,93,0,116,0,129,0,131,0,122,0,104,0,79,0,51,0,22,0,250,255,226,255,206,255,192,255, +182,255,178,255,178,255,184,255,193,255,207,255,224,255,244,255,7,0,25,0,39,0,46,0,45,0,34,0,14,0,243,255, +210,255,175,255,142,255,115,255,98,255,94,255,103,255,125,255,159,255,200,255,245,255,33,0,70,0,96,0,109,0,108,0, +94,0,68,0,34,0,254,255,221,255,193,255,176,255,171,255,179,255,198,255,226,255,3,0,37,0,68,0,93,0,110,0, +117,0,114,0,103,0,85,0,64,0,41,0,18,0,255,255,240,255,230,255,225,255,226,255,232,255,243,255,1,0,18,0, +37,0,56,0,73,0,88,0,97,0,100,0,95,0,84,0,65,0,42,0,14,0,243,255,217,255,195,255,179,255,171,255, +170,255,177,255,190,255,207,255,227,255,247,255,9,0,24,0,34,0,38,0,35,0,25,0,8,0,241,255,215,255,189,255, +165,255,146,255,133,255,128,255,131,255,144,255,164,255,189,255,218,255,246,255,16,0,38,0,54,0,61,0,62,0,55,0, +41,0,21,0,253,255,225,255,198,255,178,255,164,255,161,255,170,255,190,255,219,255,0,0,37,0,67,0,86,0,95,0, +92,0,83,0,70,0,45,0,12,0,231,255,191,255,157,255,136,255,127,255,128,255,141,255,162,255,188,255,219,255,248,255, +16,0,37,0,55,0,64,0,68,0,64,0,45,0,18,0,245,255,217,255,197,255,192,255,195,255,203,255,218,255,237,255, +1,0,27,0,57,0,81,0,103,0,120,0,125,0,122,0,108,0,79,0,43,0,10,0,239,255,222,255,214,255,207,255, +200,255,202,255,218,255,247,255,35,0,81,0,116,0,141,0,155,0,152,0,140,0,121,0,96,0,71,0,55,0,41,0, +29,0,23,0,16,0,7,0,1,0,252,255,245,255,246,255,255,255,9,0,21,0,33,0,35,0,35,0,37,0,33,0, +18,0,251,255,217,255,180,255,152,255,130,255,109,255,97,255,98,255,113,255,147,255,190,255,224,255,250,255,17,0,33,0, +43,0,43,0,18,0,231,255,189,255,155,255,130,255,114,255,102,255,95,255,106,255,136,255,179,255,228,255,18,0,48,0, +69,0,87,0,96,0,96,0,90,0,71,0,41,0,13,0,242,255,215,255,199,255,198,255,213,255,241,255,10,0,22,0, +33,0,54,0,79,0,103,0,118,0,115,0,102,0,95,0,89,0,73,0,47,0,16,0,243,255,222,255,205,255,188,255, +181,255,188,255,206,255,237,255,15,0,32,0,32,0,29,0,32,0,40,0,48,0,44,0,19,0,239,255,203,255,177,255, +166,255,162,255,162,255,172,255,191,255,209,255,232,255,10,0,47,0,76,0,91,0,90,0,75,0,52,0,24,0,253,255, +231,255,216,255,210,255,211,255,210,255,203,255,201,255,211,255,223,255,231,255,244,255,6,0,22,0,28,0,25,0,22,0, +25,0,30,0,30,0,20,0,255,255,237,255,230,255,226,255,211,255,193,255,190,255,204,255,222,255,234,255,246,255,9,0, +34,0,59,0,75,0,78,0,66,0,49,0,32,0,11,0,239,255,211,255,188,255,167,255,150,255,152,255,181,255,223,255, +1,0,22,0,32,0,39,0,47,0,58,0,64,0,53,0,28,0,0,0,238,255,229,255,231,255,241,255,252,255,0,0, +255,255,3,0,12,0,22,0,34,0,53,0,74,0,87,0,87,0,82,0,74,0,60,0,37,0,11,0,240,255,218,255, +209,255,213,255,223,255,235,255,250,255,12,0,22,0,22,0,21,0,29,0,36,0,29,0,7,0,240,255,228,255,231,255, +243,255,248,255,241,255,230,255,225,255,226,255,225,255,220,255,219,255,222,255,225,255,226,255,232,255,245,255,6,0,19,0, +28,0,32,0,31,0,26,0,16,0,1,0,236,255,221,255,220,255,231,255,247,255,9,0,27,0,41,0,47,0,50,0, +53,0,57,0,58,0,58,0,56,0,52,0,43,0,34,0,26,0,22,0,19,0,15,0,8,0,255,255,250,255,255,255, +14,0,30,0,40,0,45,0,46,0,46,0,45,0,42,0,37,0,27,0,11,0,247,255,229,255,217,255,212,255,210,255, +206,255,196,255,183,255,173,255,167,255,166,255,170,255,183,255,203,255,226,255,240,255,238,255,223,255,209,255,201,255,195,255, +182,255,161,255,142,255,142,255,163,255,195,255,220,255,228,255,226,255,227,255,240,255,5,0,21,0,24,0,15,0,6,0, +1,0,253,255,245,255,235,255,229,255,232,255,241,255,255,255,11,0,17,0,16,0,11,0,11,0,15,0,18,0,18,0, +17,0,20,0,28,0,36,0,46,0,58,0,67,0,64,0,46,0,23,0,6,0,1,0,5,0,17,0,37,0,57,0, +68,0,69,0,72,0,84,0,98,0,98,0,79,0,51,0,28,0,15,0,13,0,17,0,20,0,17,0,7,0,254,255, +249,255,246,255,240,255,240,255,251,255,13,0,20,0,14,0,5,0,7,0,13,0,9,0,248,255,231,255,222,255,211,255, +192,255,172,255,165,255,176,255,194,255,213,255,231,255,251,255,12,0,23,0,28,0,24,0,6,0,236,255,213,255,205,255, +206,255,204,255,197,255,196,255,205,255,215,255,216,255,212,255,215,255,228,255,242,255,254,255,9,0,15,0,8,0,246,255, +232,255,233,255,243,255,243,255,232,255,222,255,226,255,240,255,252,255,3,0,9,0,14,0,15,0,18,0,26,0,35,0, +37,0,29,0,23,0,25,0,29,0,26,0,18,0,15,0,17,0,19,0,20,0,24,0,30,0,31,0,26,0,27,0, +37,0,49,0,54,0,53,0,59,0,69,0,67,0,46,0,23,0,14,0,19,0,27,0,33,0,39,0,41,0,35,0, +25,0,24,0,39,0,57,0,65,0,59,0,46,0,30,0,17,0,13,0,22,0,31,0,21,0,252,255,235,255,236,255, +246,255,248,255,247,255,250,255,254,255,251,255,239,255,231,255,236,255,244,255,240,255,225,255,212,255,207,255,203,255,199,255, +205,255,219,255,226,255,216,255,199,255,191,255,194,255,204,255,219,255,238,255,249,255,243,255,230,255,229,255,247,255,8,0, +5,0,243,255,234,255,237,255,235,255,226,255,226,255,241,255,1,0,6,0,4,0,7,0,17,0,29,0,40,0,47,0, +46,0,30,0,5,0,244,255,246,255,1,0,2,0,250,255,249,255,4,0,18,0,30,0,46,0,66,0,77,0,70,0, +50,0,29,0,15,0,5,0,248,255,236,255,234,255,243,255,251,255,255,255,5,0,15,0,20,0,20,0,15,0,4,0, +244,255,231,255,231,255,244,255,253,255,250,255,239,255,237,255,246,255,0,0,1,0,252,255,248,255,244,255,240,255,240,255, +247,255,249,255,242,255,235,255,235,255,236,255,235,255,234,255,239,255,246,255,249,255,246,255,244,255,250,255,7,0,17,0, +18,0,13,0,12,0,12,0,6,0,255,255,2,0,13,0,20,0,15,0,6,0,1,0,0,0,251,255,240,255,230,255, +227,255,226,255,225,255,230,255,245,255,2,0,6,0,4,0,3,0,4,0,2,0,253,255,247,255,241,255,236,255,232,255, +230,255,230,255,234,255,240,255,246,255,252,255,0,0,255,255,251,255,249,255,252,255,1,0,2,0,4,0,4,0,255,255, +248,255,245,255,249,255,253,255,252,255,247,255,245,255,249,255,255,255,4,0,10,0,17,0,22,0,23,0,19,0,17,0, +18,0,17,0,11,0,1,0,250,255,247,255,246,255,243,255,242,255,246,255,1,0,9,0,11,0,12,0,19,0,25,0, +24,0,22,0,22,0,21,0,17,0,12,0,7,0,253,255,240,255,231,255,232,255,239,255,244,255,244,255,245,255,248,255, +254,255,6,0,12,0,16,0,14,0,10,0,7,0,5,0,0,0,251,255,250,255,253,255,252,255,246,255,242,255,245,255, +254,255,10,0,20,0,22,0,20,0,21,0,24,0,20,0,5,0,246,255,241,255,240,255,240,255,241,255,247,255,2,0, +13,0,21,0,27,0,33,0,38,0,39,0,36,0,31,0,28,0,27,0,29,0,32,0,34,0,33,0,32,0,31,0, +30,0,27,0,21,0,12,0,6,0,5,0,4,0,255,255,247,255,242,255,245,255,251,255,254,255,254,255,0,0,6,0, +12,0,11,0,0,0,241,255,233,255,230,255,224,255,213,255,204,255,204,255,209,255,217,255,228,255,240,255,252,255,6,0, +16,0,22,0,22,0,16,0,8,0,255,255,246,255,237,255,229,255,225,255,223,255,222,255,223,255,227,255,232,255,237,255, +243,255,249,255,249,255,247,255,247,255,250,255,250,255,245,255,240,255,239,255,236,255,228,255,222,255,222,255,227,255,233,255, +240,255,250,255,6,0,17,0,25,0,31,0,34,0,35,0,35,0,32,0,24,0,15,0,10,0,9,0,6,0,2,0, +2,0,6,0,9,0,9,0,9,0,11,0,13,0,13,0,13,0,15,0,18,0,18,0,16,0,15,0,12,0,6,0, +252,255,242,255,234,255,232,255,233,255,236,255,243,255,255,255,12,0,21,0,26,0,30,0,34,0,36,0,33,0,29,0, +26,0,22,0,12,0,252,255,235,255,225,255,223,255,226,255,231,255,235,255,241,255,249,255,2,0,7,0,5,0,1,0, +253,255,249,255,245,255,240,255,234,255,228,255,228,255,231,255,233,255,230,255,225,255,224,255,227,255,230,255,233,255,236,255, +241,255,245,255,249,255,0,0,9,0,14,0,14,0,9,0,5,0,2,0,253,255,247,255,242,255,241,255,243,255,249,255, +255,255,4,0,10,0,19,0,28,0,35,0,39,0,41,0,40,0,36,0,32,0,31,0,26,0,15,0,2,0,251,255, +254,255,7,0,17,0,24,0,29,0,34,0,37,0,38,0,37,0,36,0,33,0,28,0,20,0,14,0,11,0,9,0, +6,0,255,255,250,255,249,255,252,255,254,255,255,255,1,0,3,0,4,0,3,0,2,0,0,0,254,255,252,255,248,255, +241,255,232,255,226,255,224,255,223,255,225,255,231,255,238,255,243,255,247,255,248,255,245,255,238,255,230,255,221,255,214,255, +210,255,211,255,213,255,214,255,213,255,213,255,215,255,222,255,229,255,234,255,234,255,232,255,227,255,225,255,228,255,235,255, +238,255,235,255,233,255,239,255,249,255,255,255,255,255,252,255,252,255,255,255,5,0,11,0,16,0,22,0,26,0,30,0, +34,0,40,0,45,0,46,0,45,0,48,0,50,0,50,0,47,0,45,0,42,0,39,0,34,0,29,0,23,0,20,0, +21,0,22,0,21,0,19,0,15,0,7,0,255,255,252,255,253,255,253,255,249,255,243,255,240,255,239,255,240,255,238,255, +235,255,232,255,230,255,230,255,233,255,238,255,241,255,240,255,239,255,245,255,253,255,255,255,255,255,1,0,4,0,4,0, +1,0,251,255,246,255,245,255,245,255,246,255,246,255,252,255,5,0,10,0,10,0,10,0,15,0,23,0,28,0,27,0, +21,0,20,0,24,0,29,0,26,0,19,0,12,0,4,0,251,255,247,255,250,255,255,255,254,255,251,255,250,255,253,255, +255,255,255,255,253,255,251,255,248,255,242,255,236,255,237,255,245,255,254,255,4,0,10,0,18,0,23,0,23,0,19,0, +15,0,14,0,16,0,16,0,9,0,3,0,10,0,22,0,24,0,14,0,6,0,5,0,8,0,12,0,14,0,11,0, +0,0,246,255,245,255,255,255,10,0,16,0,18,0,22,0,25,0,22,0,17,0,16,0,18,0,14,0,3,0,250,255, +248,255,249,255,249,255,252,255,1,0,5,0,6,0,4,0,253,255,247,255,246,255,250,255,251,255,248,255,246,255,244,255, +239,255,235,255,235,255,233,255,228,255,222,255,221,255,226,255,231,255,233,255,232,255,234,255,241,255,248,255,248,255,244,255, +241,255,236,255,224,255,212,255,209,255,212,255,214,255,215,255,218,255,225,255,236,255,248,255,3,0,12,0,20,0,25,0, +25,0,24,0,21,0,13,0,5,0,2,0,4,0,0,0,250,255,250,255,0,0,6,0,12,0,18,0,23,0,22,0, +17,0,17,0,20,0,22,0,18,0,10,0,4,0,1,0,3,0,3,0,253,255,245,255,239,255,238,255,241,255,244,255, +243,255,243,255,244,255,247,255,249,255,253,255,0,0,253,255,247,255,244,255,242,255,238,255,231,255,230,255,236,255,243,255, +246,255,248,255,250,255,248,255,244,255,242,255,239,255,233,255,229,255,230,255,232,255,230,255,232,255,237,255,239,255,236,255, +236,255,239,255,242,255,243,255,240,255,236,255,234,255,236,255,239,255,240,255,244,255,250,255,0,0,3,0,9,0,17,0, +23,0,27,0,31,0,33,0,31,0,25,0,19,0,20,0,26,0,32,0,31,0,26,0,21,0,17,0,13,0,14,0, +21,0,28,0,30,0,31,0,32,0,30,0,28,0,31,0,35,0,36,0,31,0,24,0,16,0,7,0,1,0,3,0, +10,0,11,0,5,0,1,0,3,0,4,0,251,255,242,255,240,255,242,255,243,255,245,255,251,255,5,0,10,0,10,0, +12,0,16,0,15,0,8,0,2,0,255,255,249,255,243,255,242,255,245,255,245,255,245,255,251,255,0,0,3,0,5,0, +6,0,4,0,0,0,249,255,244,255,246,255,251,255,254,255,255,255,3,0,4,0,0,0,1,0,6,0,6,0,1,0, +255,255,254,255,248,255,240,255,235,255,233,255,230,255,229,255,232,255,238,255,242,255,242,255,242,255,240,255,236,255,233,255, +235,255,233,255,229,255,228,255,229,255,229,255,234,255,241,255,244,255,249,255,6,0,15,0,16,0,14,0,6,0,244,255, +228,255,225,255,229,255,237,255,253,255,17,0,32,0,38,0,36,0,35,0,41,0,47,0,43,0,34,0,29,0,29,0, +24,0,18,0,23,0,38,0,42,0,26,0,11,0,13,0,18,0,9,0,251,255,249,255,5,0,21,0,33,0,39,0, +39,0,33,0,20,0,4,0,247,255,239,255,231,255,226,255,235,255,251,255,252,255,241,255,241,255,248,255,246,255,242,255, +247,255,246,255,232,255,228,255,240,255,249,255,245,255,241,255,246,255,254,255,4,0,3,0,253,255,247,255,249,255,3,0, +16,0,22,0,14,0,2,0,252,255,250,255,246,255,239,255,234,255,235,255,241,255,249,255,2,0,12,0,20,0,21,0, +18,0,18,0,20,0,18,0,13,0,13,0,13,0,7,0,1,0,3,0,10,0,12,0,10,0,5,0,255,255,0,0, +8,0,15,0,17,0,16,0,15,0,13,0,8,0,0,0,249,255,252,255,8,0,15,0,9,0,253,255,246,255,243,255, +241,255,240,255,237,255,234,255,235,255,242,255,252,255,2,0,4,0,6,0,7,0,3,0,0,0,3,0,8,0,8,0, +8,0,10,0,7,0,255,255,250,255,253,255,4,0,11,0,13,0,13,0,16,0,20,0,16,0,7,0,2,0,255,255, +249,255,241,255,236,255,237,255,245,255,251,255,254,255,5,0,16,0,21,0,20,0,22,0,26,0,27,0,22,0,11,0, +255,255,245,255,233,255,218,255,211,255,219,255,231,255,237,255,236,255,235,255,239,255,247,255,249,255,243,255,239,255,242,255, +244,255,244,255,246,255,248,255,245,255,242,255,244,255,245,255,243,255,242,255,249,255,6,0,19,0,22,0,15,0,3,0, +249,255,244,255,239,255,233,255,232,255,241,255,254,255,4,0,6,0,10,0,12,0,9,0,4,0,0,0,253,255,255,255, +5,0,8,0,8,0,3,0,250,255,245,255,251,255,4,0,7,0,12,0,19,0,19,0,10,0,3,0,2,0,255,255, +247,255,242,255,242,255,244,255,245,255,249,255,254,255,1,0,254,255,248,255,246,255,250,255,252,255,247,255,247,255,253,255, +0,0,255,255,0,0,0,0,249,255,243,255,245,255,0,0,11,0,6,0,245,255,240,255,249,255,248,255,236,255,234,255, +234,255,220,255,210,255,200,255,159,255,110,255,124,255,201,255,22,0,76,0,129,0,169,0,152,0,77,0,244,255,171,255, +111,255,61,255,37,255,47,255,68,255,75,255,84,255,144,255,1,0,102,0,137,0,144,0,190,0,8,1,44,1,15,1, +214,0,163,0,106,0,27,0,204,255,164,255,163,255,171,255,174,255,174,255,185,255,210,255,237,255,13,0,64,0,108,0, +103,0,62,0,35,0,30,0,34,0,47,0,61,0,61,0,65,0,92,0,128,0,160,0,188,0,191,0,159,0,119,0, +93,0,68,0,36,0,9,0,252,255,241,255,218,255,181,255,148,255,125,255,102,255,78,255,67,255,79,255,112,255,156,255, +192,255,218,255,251,255,27,0,22,0,242,255,220,255,223,255,227,255,231,255,238,255,239,255,236,255,241,255,245,255,239,255, +235,255,236,255,237,255,243,255,5,0,24,0,32,0,33,0,34,0,45,0,55,0,42,0,5,0,228,255,212,255,195,255, +176,255,176,255,206,255,255,255,48,0,82,0,101,0,115,0,122,0,112,0,95,0,87,0,80,0,57,0,24,0,255,255, +232,255,199,255,166,255,145,255,132,255,127,255,139,255,169,255,203,255,230,255,248,255,6,0,24,0,40,0,40,0,36,0, +43,0,47,0,35,0,19,0,10,0,248,255,222,255,203,255,196,255,193,255,196,255,206,255,219,255,238,255,7,0,34,0, +48,0,37,0,11,0,253,255,8,0,23,0,30,0,40,0,52,0,50,0,38,0,31,0,32,0,34,0,37,0,33,0, +9,0,236,255,231,255,240,255,234,255,224,255,240,255,5,0,242,255,202,255,201,255,246,255,41,0,68,0,76,0,78,0, +65,0,25,0,234,255,222,255,236,255,230,255,203,255,187,255,178,255,159,255,138,255,135,255,141,255,139,255,125,255,124,255, +150,255,187,255,213,255,237,255,20,0,51,0,43,0,8,0,241,255,244,255,247,255,239,255,244,255,5,0,11,0,6,0, +15,0,33,0,44,0,50,0,52,0,44,0,35,0,22,0,254,255,241,255,7,0,33,0,26,0,5,0,254,255,5,0, +20,0,41,0,46,0,32,0,24,0,28,0,29,0,25,0,26,0,40,0,67,0,97,0,108,0,97,0,81,0,67,0, +50,0,25,0,251,255,223,255,206,255,206,255,218,255,227,255,222,255,209,255,200,255,195,255,181,255,159,255,152,255,165,255, +185,255,199,255,209,255,223,255,238,255,251,255,2,0,6,0,8,0,10,0,10,0,12,0,10,0,255,255,241,255,237,255, +246,255,254,255,253,255,250,255,0,0,6,0,3,0,1,0,17,0,43,0,58,0,64,0,68,0,69,0,63,0,60,0, +65,0,69,0,64,0,51,0,39,0,30,0,21,0,12,0,4,0,255,255,252,255,247,255,238,255,227,255,224,255,233,255, +246,255,255,255,4,0,9,0,13,0,15,0,18,0,23,0,27,0,23,0,12,0,254,255,240,255,226,255,215,255,208,255, +206,255,207,255,208,255,207,255,211,255,222,255,232,255,238,255,244,255,247,255,245,255,240,255,236,255,234,255,236,255,245,255, +251,255,247,255,239,255,238,255,239,255,236,255,235,255,240,255,249,255,1,0,9,0,20,0,30,0,38,0,48,0,60,0, +68,0,71,0,72,0,71,0,70,0,72,0,66,0,48,0,30,0,23,0,21,0,18,0,16,0,17,0,17,0,15,0, +12,0,7,0,255,255,246,255,237,255,226,255,217,255,212,255,211,255,214,255,221,255,231,255,240,255,250,255,2,0,7,0, +8,0,7,0,7,0,5,0,254,255,246,255,241,255,238,255,236,255,236,255,241,255,246,255,248,255,245,255,244,255,247,255, +248,255,237,255,225,255,223,255,230,255,234,255,236,255,239,255,245,255,250,255,250,255,242,255,237,255,239,255,243,255,246,255, +254,255,10,0,18,0,27,0,42,0,59,0,68,0,71,0,71,0,71,0,62,0,42,0,20,0,10,0,8,0,0,0, +246,255,246,255,251,255,250,255,244,255,241,255,242,255,241,255,233,255,226,255,227,255,228,255,226,255,230,255,240,255,244,255, +241,255,243,255,248,255,247,255,244,255,249,255,2,0,3,0,0,0,5,0,15,0,23,0,21,0,14,0,12,0,15,0, +16,0,10,0,2,0,251,255,246,255,245,255,249,255,0,0,6,0,13,0,22,0,32,0,42,0,46,0,43,0,41,0, +45,0,46,0,35,0,22,0,17,0,16,0,16,0,17,0,19,0,16,0,9,0,3,0,2,0,4,0,6,0,7,0, +13,0,18,0,15,0,6,0,2,0,2,0,255,255,248,255,239,255,234,255,235,255,237,255,232,255,231,255,237,255,242,255, +241,255,238,255,233,255,226,255,222,255,223,255,222,255,218,255,217,255,218,255,219,255,221,255,227,255,231,255,233,255,230,255, +226,255,221,255,221,255,223,255,227,255,236,255,253,255,12,0,16,0,16,0,25,0,40,0,46,0,40,0,33,0,31,0, +30,0,30,0,32,0,39,0,43,0,37,0,20,0,9,0,10,0,16,0,19,0,24,0,33,0,39,0,36,0,28,0, +27,0,34,0,39,0,32,0,22,0,12,0,250,255,231,255,225,255,234,255,243,255,243,255,234,255,229,255,236,255,249,255, +249,255,244,255,251,255,5,0,255,255,239,255,233,255,238,255,237,255,221,255,207,255,211,255,220,255,224,255,234,255,2,0, +20,0,25,0,22,0,16,0,5,0,253,255,244,255,224,255,202,255,196,255,200,255,204,255,212,255,235,255,11,0,41,0, +55,0,53,0,46,0,41,0,28,0,8,0,255,255,4,0,5,0,0,0,4,0,13,0,12,0,5,0,2,0,2,0, +252,255,246,255,249,255,1,0,5,0,4,0,2,0,2,0,4,0,3,0,252,255,242,255,238,255,240,255,241,255,236,255, +231,255,235,255,248,255,4,0,9,0,7,0,1,0,248,255,240,255,228,255,212,255,203,255,214,255,233,255,243,255,246,255, +253,255,6,0,10,0,11,0,12,0,14,0,14,0,13,0,13,0,9,0,2,0,251,255,249,255,253,255,4,0,4,0, +253,255,250,255,2,0,9,0,9,0,15,0,28,0,36,0,33,0,26,0,16,0,8,0,4,0,1,0,253,255,254,255, +7,0,14,0,14,0,11,0,9,0,9,0,8,0,8,0,6,0,1,0,249,255,243,255,243,255,249,255,255,255,1,0, +0,0,253,255,250,255,246,255,238,255,232,255,231,255,232,255,230,255,227,255,229,255,234,255,241,255,246,255,248,255,250,255, +252,255,251,255,251,255,0,0,9,0,14,0,16,0,16,0,12,0,5,0,253,255,249,255,249,255,246,255,240,255,239,255, +246,255,252,255,254,255,3,0,9,0,10,0,8,0,9,0,12,0,11,0,10,0,11,0,11,0,9,0,5,0,4,0, +8,0,12,0,13,0,14,0,15,0,14,0,13,0,11,0,7,0,0,0,254,255,1,0,3,0,0,0,253,255,253,255, +249,255,239,255,232,255,232,255,232,255,226,255,222,255,223,255,223,255,219,255,218,255,223,255,232,255,238,255,237,255,234,255, +236,255,242,255,244,255,242,255,244,255,249,255,251,255,251,255,250,255,250,255,253,255,2,0,4,0,4,0,2,0,255,255, +250,255,250,255,2,0,5,0,0,0,254,255,3,0,9,0,14,0,18,0,20,0,22,0,23,0,18,0,10,0,7,0, +8,0,7,0,3,0,1,0,2,0,0,0,253,255,253,255,0,0,6,0,14,0,19,0,20,0,20,0,20,0,16,0, +10,0,6,0,2,0,252,255,248,255,247,255,244,255,240,255,237,255,240,255,244,255,248,255,252,255,0,0,1,0,255,255, +251,255,247,255,243,255,243,255,244,255,242,255,241,255,242,255,240,255,234,255,233,255,238,255,244,255,249,255,255,255,2,0, +3,0,6,0,9,0,7,0,1,0,255,255,253,255,250,255,248,255,250,255,253,255,3,0,10,0,14,0,16,0,15,0, +15,0,14,0,12,0,9,0,7,0,5,0,3,0,255,255,255,255,1,0,0,0,251,255,251,255,252,255,250,255,249,255, +254,255,4,0,7,0,4,0,2,0,2,0,2,0,3,0,4,0,4,0,1,0,251,255,248,255,247,255,245,255,241,255, +241,255,247,255,251,255,249,255,247,255,250,255,252,255,251,255,250,255,252,255,254,255,0,0,3,0,6,0,7,0,9,0, +11,0,12,0,12,0,11,0,11,0,12,0,12,0,11,0,11,0,12,0,12,0,12,0,15,0,17,0,14,0,11,0, +9,0,6,0,5,0,8,0,9,0,9,0,12,0,17,0,17,0,13,0,11,0,10,0,9,0,6,0,3,0,0,0, +254,255,254,255,255,255,255,255,254,255,253,255,250,255,245,255,243,255,242,255,241,255,239,255,236,255,233,255,230,255,229,255, +232,255,235,255,235,255,237,255,238,255,237,255,235,255,236,255,241,255,246,255,251,255,251,255,250,255,252,255,4,0,10,0, +12,0,14,0,14,0,9,0,255,255,245,255,240,255,240,255,240,255,239,255,239,255,244,255,252,255,255,255,254,255,255,255, +4,0,8,0,11,0,15,0,19,0,22,0,24,0,25,0,25,0,25,0,24,0,22,0,19,0,17,0,11,0,5,0, +2,0,4,0,6,0,7,0,5,0,3,0,0,0,254,255,251,255,249,255,251,255,255,255,1,0,5,0,12,0,18,0, +20,0,19,0,19,0,17,0,12,0,5,0,2,0,2,0,0,0,253,255,251,255,251,255,252,255,252,255,251,255,248,255, +246,255,247,255,250,255,255,255,4,0,9,0,13,0,13,0,8,0,3,0,0,0,253,255,249,255,248,255,250,255,252,255, +251,255,251,255,250,255,247,255,244,255,243,255,245,255,249,255,255,255,4,0,6,0,6,0,5,0,5,0,5,0,4,0, +0,0,252,255,247,255,242,255,236,255,234,255,237,255,244,255,251,255,0,0,2,0,4,0,4,0,0,0,252,255,251,255, +254,255,2,0,4,0,5,0,6,0,7,0,4,0,253,255,244,255,234,255,226,255,219,255,214,255,216,255,222,255,232,255, +244,255,1,0,16,0,28,0,37,0,43,0,46,0,48,0,47,0,41,0,33,0,25,0,20,0,14,0,7,0,3,0, +0,0,254,255,253,255,253,255,253,255,255,255,1,0,0,0,254,255,254,255,0,0,6,0,13,0,20,0,26,0,30,0, +33,0,35,0,33,0,28,0,23,0,20,0,17,0,11,0,5,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255, +253,255,248,255,243,255,238,255,234,255,232,255,232,255,234,255,237,255,242,255,245,255,248,255,247,255,243,255,237,255,233,255, +232,255,234,255,238,255,244,255,248,255,251,255,0,0,5,0,9,0,12,0,15,0,16,0,13,0,6,0,1,0,254,255, +252,255,248,255,244,255,242,255,242,255,245,255,247,255,251,255,0,0,3,0,3,0,3,0,5,0,10,0,17,0,22,0, +21,0,17,0,14,0,11,0,7,0,3,0,1,0,254,255,249,255,242,255,239,255,243,255,249,255,255,255,2,0,3,0, +2,0,255,255,253,255,253,255,253,255,252,255,249,255,243,255,238,255,236,255,238,255,244,255,250,255,0,0,5,0,9,0, +12,0,13,0,12,0,10,0,8,0,4,0,0,0,253,255,251,255,251,255,250,255,249,255,247,255,249,255,253,255,2,0, +6,0,10,0,12,0,11,0,7,0,2,0,1,0,3,0,7,0,9,0,9,0,7,0,5,0,3,0,2,0,4,0, +10,0,16,0,21,0,23,0,23,0,23,0,22,0,20,0,16,0,12,0,6,0,254,255,246,255,240,255,238,255,240,255, +243,255,246,255,247,255,249,255,250,255,250,255,249,255,249,255,250,255,251,255,252,255,254,255,0,0,4,0,6,0,5,0, +3,0,2,0,1,0,0,0,255,255,253,255,251,255,249,255,249,255,250,255,255,255,6,0,12,0,14,0,13,0,9,0, +5,0,2,0,0,0,255,255,255,255,255,255,253,255,250,255,248,255,249,255,253,255,2,0,8,0,13,0,17,0,20,0, +20,0,18,0,16,0,14,0,12,0,8,0,3,0,0,0,253,255,251,255,248,255,245,255,243,255,242,255,242,255,242,255, +244,255,247,255,250,255,252,255,251,255,251,255,251,255,251,255,251,255,249,255,248,255,247,255,246,255,245,255,245,255,247,255, +249,255,249,255,248,255,247,255,248,255,251,255,254,255,0,0,1,0,2,0,2,0,2,0,2,0,4,0,6,0,6,0, +4,0,1,0,254,255,255,255,0,0,2,0,5,0,8,0,12,0,15,0,18,0,20,0,22,0,22,0,20,0,15,0, +10,0,7,0,3,0,255,255,251,255,248,255,247,255,248,255,250,255,254,255,2,0,6,0,9,0,11,0,12,0,12,0, +11,0,6,0,0,0,251,255,248,255,248,255,248,255,248,255,246,255,244,255,240,255,236,255,234,255,236,255,241,255,247,255, +251,255,255,255,2,0,3,0,3,0,1,0,253,255,250,255,247,255,244,255,242,255,242,255,245,255,248,255,252,255,0,0, +7,0,13,0,18,0,18,0,15,0,9,0,3,0,255,255,252,255,253,255,255,255,1,0,2,0,0,0,0,0,1,0, +3,0,4,0,5,0,4,0,3,0,1,0,255,255,255,255,0,0,3,0,5,0,5,0,4,0,3,0,2,0,1,0, +0,0,255,255,254,255,253,255,250,255,247,255,246,255,248,255,252,255,0,0,4,0,7,0,10,0,9,0,6,0,0,0, +252,255,248,255,245,255,244,255,245,255,249,255,253,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255, +253,255,250,255,250,255,253,255,3,0,10,0,14,0,15,0,14,0,12,0,9,0,6,0,5,0,6,0,5,0,3,0, +0,0,255,255,1,0,3,0,4,0,4,0,5,0,5,0,4,0,3,0,3,0,3,0,4,0,3,0,1,0,1,0, +1,0,2,0,1,0,255,255,253,255,251,255,249,255,246,255,245,255,245,255,245,255,246,255,246,255,246,255,249,255,252,255, +253,255,253,255,252,255,250,255,248,255,246,255,247,255,250,255,255,255,2,0,2,0,0,0,252,255,250,255,249,255,250,255, +251,255,254,255,0,0,0,0,0,0,0,0,3,0,6,0,7,0,6,0,4,0,4,0,5,0,8,0,11,0,14,0, +16,0,15,0,12,0,9,0,9,0,10,0,10,0,7,0,5,0,3,0,3,0,5,0,8,0,11,0,12,0,10,0, +7,0,3,0,1,0,1,0,1,0,255,255,252,255,250,255,248,255,248,255,247,255,246,255,243,255,240,255,237,255,236,255, +239,255,245,255,250,255,252,255,251,255,247,255,243,255,242,255,242,255,244,255,248,255,251,255,254,255,0,0,2,0,5,0, +7,0,7,0,4,0,0,0,252,255,250,255,250,255,251,255,253,255,1,0,3,0,3,0,2,0,1,0,0,0,0,0, +0,0,0,0,3,0,7,0,11,0,14,0,17,0,19,0,20,0,18,0,15,0,11,0,8,0,6,0,4,0,3,0, +3,0,5,0,7,0,8,0,8,0,8,0,7,0,4,0,0,0,252,255,250,255,252,255,254,255,255,255,0,0,0,0, +254,255,250,255,247,255,246,255,248,255,251,255,252,255,251,255,250,255,250,255,250,255,249,255,248,255,248,255,249,255,250,255, +251,255,253,255,1,0,4,0,6,0,4,0,2,0,0,0,254,255,250,255,245,255,243,255,243,255,244,255,246,255,248,255, +253,255,1,0,3,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,1,0,3,0,5,0,6,0,7,0,8,0, +7,0,4,0,1,0,254,255,251,255,249,255,247,255,248,255,252,255,255,255,0,0,0,0,254,255,253,255,252,255,252,255, +254,255,1,0,4,0,5,0,3,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,254,255,254,255,254,255, +0,0,2,0,3,0,3,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,6,0,8,0,9,0,10,0, +10,0,9,0,7,0,6,0,5,0,4,0,3,0,2,0,3,0,3,0,2,0,255,255,252,255,249,255,248,255,249,255, +251,255,254,255,0,0,0,0,255,255,254,255,252,255,250,255,247,255,244,255,244,255,246,255,250,255,254,255,2,0,5,0, +7,0,6,0,2,0,254,255,249,255,244,255,240,255,238,255,238,255,241,255,246,255,251,255,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,254,255,254,255,255,255,254,255,0,0,4,0,8,0,9,0,7,0,3,0,0,0,254,255,255,255, +2,0,6,0,10,0,11,0,10,0,9,0,9,0,11,0,11,0,10,0,10,0,9,0,8,0,7,0,6,0,6,0, +5,0,4,0,1,0,0,0,0,0,2,0,5,0,7,0,8,0,9,0,8,0,6,0,2,0,0,0,0,0,3,0, +4,0,3,0,3,0,3,0,3,0,1,0,255,255,253,255,250,255,246,255,241,255,241,255,245,255,250,255,254,255,1,0, +4,0,5,0,2,0,255,255,253,255,251,255,248,255,244,255,239,255,237,255,239,255,243,255,250,255,255,255,2,0,2,0, +1,0,255,255,252,255,251,255,251,255,252,255,252,255,253,255,0,0,4,0,8,0,12,0,13,0,12,0,11,0,9,0, +7,0,5,0,4,0,3,0,0,0,252,255,248,255,248,255,251,255,255,255,3,0,8,0,10,0,8,0,4,0,0,0, +255,255,253,255,251,255,249,255,250,255,252,255,253,255,255,255,1,0,4,0,4,0,3,0,2,0,0,0,254,255,254,255, +255,255,255,255,254,255,251,255,250,255,251,255,254,255,255,255,0,0,255,255,252,255,249,255,248,255,250,255,253,255,0,0, +2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,3,0,5,0,4,0,0,0,252,255,253,255, +0,0,2,0,255,255,251,255,247,255,244,255,243,255,246,255,252,255,1,0,2,0,255,255,252,255,252,255,253,255,0,0, +3,0,6,0,6,0,3,0,255,255,254,255,255,255,1,0,2,0,2,0,3,0,5,0,5,0,5,0,4,0,5,0, +6,0,5,0,2,0,255,255,255,255,2,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,6,0,8,0, +8,0,7,0,6,0,5,0,3,0,255,255,251,255,250,255,251,255,253,255,254,255,254,255,254,255,255,255,254,255,254,255, +253,255,252,255,250,255,248,255,248,255,250,255,250,255,250,255,250,255,252,255,252,255,252,255,250,255,250,255,252,255,254,255, +255,255,253,255,250,255,248,255,250,255,253,255,255,255,0,0,1,0,0,0,253,255,249,255,249,255,251,255,254,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,2,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,3,0, +4,0,3,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,0,0,254,255,255,255,2,0,4,0,4,0, +3,0,2,0,0,0,253,255,252,255,255,255,3,0,4,0,3,0,2,0,0,0,254,255,252,255,251,255,252,255,254,255, +0,0,3,0,3,0,1,0,255,255,253,255,252,255,251,255,251,255,253,255,254,255,253,255,251,255,250,255,249,255,249,255, +250,255,252,255,254,255,254,255,253,255,252,255,253,255,254,255,254,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0, +2,0,4,0,5,0,4,0,3,0,4,0,7,0,7,0,5,0,5,0,6,0,6,0,3,0,2,0,2,0,4,0, +4,0,4,0,5,0,5,0,3,0,1,0,0,0,1,0,1,0,2,0,3,0,4,0,2,0,0,0,255,255,255,255, +254,255,253,255,253,255,253,255,253,255,253,255,0,0,4,0,6,0,6,0,8,0,10,0,10,0,7,0,4,0,5,0, +6,0,4,0,2,0,0,0,255,255,254,255,254,255,0,0,4,0,5,0,3,0,1,0,1,0,1,0,2,0,2,0, +3,0,3,0,4,0,3,0,0,0,253,255,252,255,252,255,253,255,253,255,255,255,0,0,1,0,1,0,2,0,5,0, +5,0,1,0,254,255,252,255,251,255,248,255,246,255,246,255,245,255,243,255,242,255,243,255,247,255,250,255,252,255,253,255, +255,255,254,255,252,255,251,255,251,255,250,255,249,255,250,255,252,255,254,255,253,255,252,255,254,255,0,0,1,0,1,0, +1,0,0,0,0,0,2,0,6,0,9,0,7,0,3,0,1,0,3,0,5,0,7,0,11,0,16,0,17,0,12,0, +5,0,1,0,2,0,3,0,2,0,255,255,254,255,253,255,255,255,4,0,7,0,4,0,251,255,246,255,248,255,254,255, +3,0,12,0,25,0,30,0,19,0,254,255,241,255,244,255,254,255,6,0,6,0,0,0,246,255,239,255,241,255,249,255, +255,255,1,0,4,0,4,0,252,255,240,255,236,255,248,255,11,0,23,0,27,0,23,0,11,0,246,255,227,255,221,255, +231,255,243,255,250,255,250,255,246,255,242,255,240,255,249,255,10,0,23,0,22,0,11,0,0,0,250,255,246,255,246,255, +252,255,4,0,5,0,252,255,243,255,242,255,253,255,10,0,21,0,23,0,16,0,3,0,246,255,242,255,248,255,0,0, +6,0,5,0,255,255,248,255,245,255,247,255,254,255,5,0,8,0,6,0,255,255,248,255,244,255,249,255,1,0,7,0, +7,0,3,0,254,255,250,255,250,255,254,255,3,0,6,0,5,0,254,255,247,255,244,255,246,255,253,255,4,0,8,0, +8,0,4,0,255,255,253,255,0,0,5,0,8,0,8,0,6,0,5,0,2,0,254,255,253,255,2,0,7,0,8,0, +4,0,0,0,254,255,255,255,0,0,4,0,9,0,11,0,9,0,6,0,4,0,2,0,0,0,2,0,5,0,5,0, +1,0,252,255,252,255,255,255,2,0,4,0,6,0,7,0,3,0,254,255,252,255,254,255,1,0,3,0,5,0,5,0, +2,0,253,255,252,255,1,0,6,0,6,0,2,0,255,255,255,255,254,255,253,255,255,255,2,0,4,0,2,0,255,255, +254,255,254,255,0,0,3,0,5,0,3,0,0,0,252,255,250,255,250,255,252,255,0,0,2,0,1,0,254,255,253,255, +255,255,1,0,3,0,4,0,3,0,255,255,252,255,250,255,252,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,2,0,4,0,5,0,3,0,254,255,250,255,250,255,253,255,0,0,0,0,255,255,254,255,250,255,246,255,246,255, +250,255,254,255,254,255,255,255,0,0,2,0,1,0,0,0,0,0,1,0,1,0,254,255,252,255,252,255,250,255,249,255, +249,255,252,255,253,255,253,255,253,255,255,255,1,0,1,0,2,0,3,0,3,0,1,0,254,255,253,255,253,255,251,255, +250,255,250,255,251,255,252,255,252,255,252,255,253,255,255,255,0,0,2,0,4,0,5,0,4,0,1,0,0,0,1,0, +2,0,2,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0,1,0,1,0,2,0,4,0,5,0,5,0,3,0, +2,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0, +1,0,0,0,255,255,254,255,255,255,1,0,1,0,1,0,1,0,3,0,5,0,3,0,1,0,255,255,254,255,253,255, +252,255,254,255,255,255,255,255,255,255,0,0,2,0,3,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255, +252,255,252,255,251,255,250,255,249,255,250,255,251,255,253,255,0,0,3,0,3,0,1,0,254,255,254,255,253,255,253,255, +253,255,253,255,252,255,251,255,252,255,254,255,0,0,255,255,254,255,255,255,255,255,253,255,251,255,251,255,253,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +254,255,254,255,0,0,3,0,6,0,6,0,6,0,6,0,4,0,2,0,1,0,2,0,3,0,2,0,1,0,1,0, +0,0,0,0,1,0,5,0,8,0,7,0,4,0,3,0,2,0,0,0,255,255,0,0,2,0,3,0,1,0,254,255, +254,255,255,255,1,0,3,0,5,0,6,0,4,0,2,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,253,255, +254,255,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255, +0,0,1,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,2,0, +3,0,6,0,7,0,5,0,3,0,3,0,3,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,4,0,5,0, +4,0,5,0,5,0,3,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,0,0,2,0,4,0, +4,0,4,0,4,0,2,0,0,0,0,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,2,0, +3,0,2,0,1,0,1,0,255,255,254,255,255,255,1,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0, +2,0,0,0,254,255,253,255,253,255,253,255,254,255,0,0,2,0,2,0,0,0,254,255,255,255,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,2,0,3,0,2,0, +0,0,255,255,0,0,2,0,3,0,3,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,2,0,3,0,2,0, +2,0,3,0,4,0,5,0,4,0,4,0,4,0,3,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,254,255,254,255,254,255,255,255,2,0,4,0,4,0,0,0,253,255,252,255,253,255,255,255,1,0,2,0, +0,0,255,255,253,255,253,255,252,255,253,255,255,255,255,255,253,255,250,255,251,255,253,255,254,255,254,255,255,255,254,255, +252,255,250,255,249,255,249,255,250,255,250,255,250,255,251,255,252,255,253,255,254,255,255,255,255,255,253,255,250,255,250,255, +251,255,251,255,252,255,253,255,253,255,252,255,252,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,255,255,254,255,255,255,0,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,254,255, +254,255,254,255,255,255,255,255,0,0,1,0,2,0,0,0,254,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255, +253,255,252,255,252,255,252,255,251,255,252,255,253,255,254,255,252,255,251,255,252,255,254,255,254,255,255,255,255,255,0,0, +0,0,254,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,255,255,255,255,1,0,2,0,2,0,3,0,4,0,3,0,2,0,3,0,3,0,2,0,1,0,255,255, +254,255,254,255,253,255,253,255,254,255,255,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,1,0, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,2,0,4,0,4,0,3,0,3,0,2,0, +0,0,255,255,255,255,0,0,2,0,3,0,1,0,0,0,0,0,0,0,255,255,0,0,2,0,2,0,2,0,1,0, +0,0,0,0,1,0,1,0,1,0,2,0,1,0,255,255,255,255,255,255,255,255,0,0,2,0,3,0,2,0,1,0, +255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0, +255,255,255,255,1,0,2,0,0,0,0,0,2,0,3,0,3,0,2,0,0,0,255,255,254,255,252,255,250,255,250,255, +251,255,252,255,255,255,1,0,0,0,255,255,0,0,2,0,3,0,4,0,2,0,1,0,0,0,254,255,251,255,251,255, +252,255,253,255,254,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,251,255,249,255, +250,255,252,255,253,255,255,255,1,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,254,255,253,255,252,255, +254,255,0,0,1,0,3,0,3,0,3,0,2,0,1,0,255,255,255,255,1,0,2,0,2,0,2,0,2,0,2,0, +3,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,255,255,254,255,254,255,0,0,1,0,1,0,2,0,2,0, +2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0, +1,0,2,0,2,0,2,0,3,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,0,0,254,255,254,255,255,255, +0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,0,0,254,255,255,255, +1,0,3,0,4,0,5,0,6,0,5,0,3,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,3,0,3,0,2,0,2,0,2,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,1,0, +1,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0,253,255,253,255,255,255,0,0,255,255,254,255,255,255,1,0, +2,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,3,0,4,0, +4,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,2,0,2,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,254,255,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,254,255,254,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,254,255, +253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,1,0,0,0,255,255,254,255, +254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,254,255,255,255,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,252,255,251,255,253,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,254,255, +0,0,1,0,0,0,0,0,0,0,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255, +253,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255, +255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,254,255,253,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,3,0,2,0,3,0,3,0,2,0, +1,0,2,0,2,0,0,0,255,255,0,0,2,0,3,0,2,0,1,0,1,0,2,0,1,0,255,255,0,0,1,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,2,0,1,0,2,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0, +0,0,255,255,254,255,255,255,255,255,255,255,255,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,2,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,4,0,4,0, +3,0,1,0,0,0,0,0,255,255,255,255,1,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0, +3,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0, +1,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,254,255, +254,255,253,255,254,255,254,255,255,255,1,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,0,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255, +254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,253,255,253,255,254,255,255,255,255,255,255,255,0,0, +1,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255, +254,255,254,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0, +4,0,3,0,4,0,4,0,3,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,254,255,253,255,253,255, +255,255,255,255,255,255,255,255,255,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,255,255,255,255, +0,0,0,0,0,0,255,255,253,255,254,255,254,255,255,255,254,255,254,255,255,255,0,0,1,0,2,0,2,0,1,0, +1,0,0,0,254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,252,255, +252,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,255,255,1,0,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,254,255,254,255,255,255,255,255,0,0,255,255,254,255,253,255,254,255,254,255,255,255,0,0,1,0, +0,0,0,0,255,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255, +255,255,0,0,255,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,1,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,1,0,2,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0, +1,0,0,0,255,255,255,255,255,255,1,0,2,0,3,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0, +0,0,1,0,2,0,0,0,255,255,1,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0, +1,0,2,0,2,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,2,0,2,0,0,0,1,0,5,0, +8,0,7,0,4,0,255,255,251,255,251,255,254,255,0,0,2,0,1,0,255,255,255,255,1,0,2,0,3,0,4,0, +3,0,2,0,1,0,255,255,254,255,0,0,4,0,6,0,4,0,3,0,2,0,2,0,1,0,0,0,1,0,2,0, +1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,1,0,1,0,2,0,1,0,2,0,3,0, +3,0,2,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,2,0, +2,0,3,0,3,0,3,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0, +3,0,3,0,3,0,3,0,2,0,2,0,3,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,1,0,1,0,1,0,1,0,1,0,255,255,254,255,255,255,255,255,0,0,0,0, +1,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255, +254,255,253,255,252,255,253,255,253,255,253,255,254,255,0,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,253,255,254,255,253,255,253,255,254,255,255,255,255,255, +255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +2,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255, +254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,1,0,1,0,255,255,254,255,253,255,253,255,253,255,254,255,254,255,253,255,252,255,252,255, +253,255,254,255,253,255,253,255,254,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,254,255,254,255, +254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255, +253,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255,254,255,255,255,0,0,0,0,255,255, +253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,0,0,1,0, +0,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,254,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255, +254,255,254,255,253,255,253,255,253,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,255,255,254,255,255,255,1,0,2,0,1,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,254,255, +254,255,255,255,0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0, +2,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,1,0,2,0,2,0,3,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0, +3,0,1,0,1,0,1,0,2,0,3,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0, +2,0,2,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0, +2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,4,0, +4,0,3,0,3,0,4,0,3,0,1,0,1,0,1,0,2,0,3,0,3,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,0,0,1,0,2,0,3,0,3,0,2,0, +1,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255,255,255,254,255,253,255, +254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,2,0,2,0,1,0,1,0, +1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +254,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,253,255,254,255,253,255,253,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,0,0,1,0,2,0,2,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,253,255,252,255,252,255,253,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255, +253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255, +255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255, +254,255,255,255,0,0,255,255,255,255,1,0,0,0,254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,254,255,254,255,255,255,255,255, +254,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,255,255,0,0,0,0,255,255, +0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0,255,255,254,255,255,255,255,255,254,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,255,255,1,0,1,0,255,255,255,255,1,0,2,0, +2,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0, +2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,1,0,2,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,0,0,1,0,2,0,2,0,2,0,3,0,3,0, +2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,3,0,4,0,3,0,2,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,2,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,254,255,253,255,253,255,254,255, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,254,255,254,255,255,255,255,255,255,255,1,0,0,0,254,255, +254,255,254,255,254,255,255,255,0,0,255,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,254,255,255,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,1,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,0,0,1,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,2,0,1,0,2,0, +2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,254,255,0,0,1,0,0,0,254,255,254,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,2,0,2,0, +3,0,3,0,2,0,1,0,1,0,0,0,0,0,2,0,2,0,3,0,3,0,2,0,0,0,1,0,0,0,255,255, +0,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255, +255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,255,255,0,0,0,0,255,255,254,255, +255,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0, +1,0,2,0,3,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0, +255,255,0,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,1,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255, +254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,255,255, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,3,0,2,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,3,0,2,0,1,0,2,0,2,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,2,0,3,0,2,0,2,0,2,0,1,0,1,0, +2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,254,255, +255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255, +255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,255,255,254,255,255,255,255,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,1,0,2,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,2,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0, +3,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,254,255,253,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,254,255,0,0,1,0,0,0, +0,0,2,0,1,0,255,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,0,0,1,0,1,0,1,0, +2,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,255,255, +254,255,255,255,254,255,254,255,255,255,1,0,1,0,0,0,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,2,0, +2,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0, +1,0,2,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,4,0,3,0,2,0, +1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,1,0,2,0,3,0,4,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0, +2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,254,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,0,0,255,255,0,0,255,255,254,255,254,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +254,255,255,255,255,255,255,255,255,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,252,255,252,255, +252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255, +251,255,249,255,249,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255, +254,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,253,255,252,255,253,255,254,255, +254,255,255,255,0,0,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,254,255, +255,255,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,1,0,1,0,0,0,0,0,255,255,254,255, +254,255,255,255,254,255,254,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,254,255,253,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,2,0,3,0,2,0,1,0, +2,0,2,0,1,0,2,0,2,0,2,0,2,0,3,0,4,0,3,0,3,0,2,0,3,0,3,0,4,0,4,0, +4,0,4,0,3,0,2,0,1,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0, +3,0,2,0,3,0,3,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,2,0,4,0,5,0, +4,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,4,0,3,0,2,0,2,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,1,0,2,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,2,0,1,0,2,0,3,0,1,0,1,0,1,0,0,0,0,0,2,0,3,0,3,0, +2,0,1,0,1,0,2,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,1,0,2,0,2,0, +2,0,3,0,2,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,254,255,255,255,1,0, +1,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,254,255,254,255,255,255,254,255,254,255,253,255,254,255,255,255,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,1,0,0,0,255,255,0,0,254,255,252,255,253,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,0,0, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,2,0,2,0,1,0,1,0,0,0, +254,255,255,255,0,0,255,255,255,255,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0, +1,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,255,255,255,255,0,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,2,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,254,255,254,255,255,255,0,0,255,255,0,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,254,255,0,0,0,0,255,255,254,255,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,3,0,2,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,2,0,2,0,1,0, +2,0,2,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0, +2,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,1,0,1,0,1,0,1,0,2,0,1,0,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,2,0,2,0,2,0,2,0,3,0,2,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255, +255,255,255,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,254,255, +254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255, +0,0,255,255,254,255,255,255,255,255,254,255,255,255,254,255,253,255,255,255,0,0,254,255,254,255,255,255,255,255,254,255, +255,255,255,255,255,255,0,0,1,0,0,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0,1,0, +2,0,0,0,254,255,255,255,0,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +254,255,253,255,254,255,0,0,0,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0, +2,0,2,0,1,0,0,0,1,0,0,0,254,255,254,255,255,255,254,255,253,255,255,255,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,2,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0, +1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,254,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,1,0,2,0,1,0,1,0,255,255,255,255,0,0,1,0, +0,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,255,255,0,0,1,0,1,0,2,0,1,0, +0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255, +253,255,254,255,254,255,255,255,0,0,0,0,254,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,253,255,252,255,253,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,254,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,2,0,3,0,4,0,3,0,2,0, +2,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255,1,0,1,0,0,0,2,0, +2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,255,255,255,255,255,255,255,255,0,0,1,0,2,0,1,0,1,0,1,0,2,0, +2,0,3,0,2,0,2,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,2,0,2,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,254,255,255,255,0,0,255,255,255,255,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,254,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +2,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,254,255,254,255,0,0, +255,255,254,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,0,0, +255,255,254,255,255,255,255,255,254,255,253,255,254,255,255,255,255,255,254,255,253,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,253,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,255,255,1,0,2,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +254,255,255,255,255,255,253,255,253,255,253,255,252,255,253,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,2,0,1,0,0,0,0,0,1,0,2,0, +2,0,0,0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,2,0,2,0, +1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0, +2,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,2,0,2,0,0,0,0,0, +1,0,1,0,0,0,1,0,2,0,3,0,3,0,4,0,5,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,3,0,3,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255, +254,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,254,255, +255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255, +0,0,2,0,2,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,255,255, +254,255,255,255,254,255,254,255,0,0,1,0,0,0,1,0,1,0,255,255,255,255,255,255,254,255,254,255,255,255,254,255, +254,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,254,255,254,255,0,0, +1,0,1,0,2,0,3,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,1,0, +1,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0, +1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,253,255,255,255,0,0,0,0,255,255,0,0,255,255, +255,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,254,255,253,255,254,255,254,255,254,255, +255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,253,255,254,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +254,255,255,255,0,0,0,0,0,0,0,0,0,0,254,255,255,255,1,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0, +1,0,2,0,3,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255,254,255,255,255,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,2,0,1,0,2,0,2,0,0,0,1,0,1,0,1,0,3,0,2,0,1,0,1,0,2,0,0,0,0,0, +2,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,1,0,2,0,1,0,1,0,0,0, +255,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255, +254,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,2,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,255,255,255,255,255,255,1,0, +2,0,1,0,255,255,254,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,255,255,0,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,1,0,1,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,255,255,0,0,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0, +0,0,255,255,255,255,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,2,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,254,255,253,255,254,255,254,255, +255,255,255,255,0,0,255,255,255,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,2,0,1,0,255,255,255,255,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,255,255,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,254,255,254,255, +255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0, +1,0,0,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0, +1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0, +2,0,1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0,1,0,1,0,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255, +255,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255, +252,255,253,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0, +3,0,4,0,4,0,3,0,3,0,3,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0, +0,0,0,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,253,255,253,255,254,255,254,255,0,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255, +253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255, +254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,255,255,254,255,254,255,255,255,1,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255,255,255,0,0,2,0,2,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,0,0,1,0,2,0,2,0,3,0,4,0,4,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255, +255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeleton2.pcm b/src/client/sound/data/skeleton2.pcm new file mode 100755 index 0000000..a2cb7ab --- /dev/null +++ b/src/client/sound/data/skeleton2.pcm @@ -0,0 +1,1781 @@ +unsigned char PCM_skeleton2[56920] = { +1,0,0,0,2,0,0,0,68,172,0,0,36,111,0,0,246,0,106,1,70,1,234,0,228,0,244,0,204,0,174,0, +143,0,81,0,54,0,42,0,249,255,214,255,203,255,189,255,181,255,163,255,144,255,152,255,146,255,120,255,115,255,110,255, +86,255,70,255,58,255,34,255,13,255,252,254,232,254,216,254,207,254,196,254,196,254,209,254,223,254,243,254,21,255,57,255, +98,255,146,255,188,255,228,255,17,0,56,0,82,0,105,0,128,0,146,0,156,0,162,0,166,0,175,0,184,0,184,0, +189,0,203,0,215,0,225,0,241,0,4,1,22,1,42,1,61,1,77,1,91,1,99,1,100,1,96,1,81,1,52,1, +21,1,240,0,190,0,135,0,83,0,30,0,235,255,186,255,143,255,109,255,83,255,58,255,38,255,28,255,20,255,10,255, +4,255,254,254,245,254,239,254,232,254,221,254,213,254,205,254,196,254,187,254,181,254,174,254,170,254,171,254,172,254,180,254, +198,254,218,254,247,254,36,255,84,255,138,255,204,255,18,0,88,0,156,0,219,0,21,1,71,1,104,1,127,1,142,1, +144,1,139,1,130,1,115,1,102,1,95,1,87,1,80,1,75,1,69,1,63,1,56,1,45,1,32,1,14,1,248,0, +224,0,197,0,167,0,136,0,103,0,68,0,30,0,244,255,199,255,150,255,97,255,42,255,243,254,189,254,141,254,100,254, +69,254,50,254,43,254,49,254,64,254,87,254,114,254,142,254,168,254,188,254,202,254,210,254,213,254,213,254,212,254,213,254, +219,254,231,254,251,254,23,255,58,255,99,255,144,255,192,255,243,255,38,0,90,0,143,0,195,0,249,0,46,1,97,1, +147,1,192,1,231,1,6,2,26,2,34,2,29,2,12,2,240,1,203,1,161,1,115,1,71,1,30,1,252,0,225,0, +205,0,190,0,180,0,171,0,160,0,145,0,124,0,96,0,61,0,20,0,230,255,181,255,131,255,81,255,32,255,240,254, +194,254,150,254,108,254,69,254,34,254,3,254,235,253,219,253,212,253,215,253,229,253,253,253,30,254,71,254,117,254,165,254, +214,254,6,255,50,255,89,255,124,255,155,255,181,255,206,255,230,255,255,255,28,0,61,0,100,0,145,0,195,0,250,0, +51,1,109,1,165,1,217,1,8,2,47,2,78,2,101,2,113,2,115,2,108,2,92,2,68,2,37,2,253,1,206,1, +155,1,99,1,40,1,234,0,173,0,116,0,61,0,10,0,220,255,180,255,144,255,110,255,79,255,50,255,21,255,245,254, +210,254,171,254,129,254,83,254,36,254,247,253,204,253,167,253,138,253,119,253,111,253,115,253,132,253,162,253,202,253,251,253, +49,254,106,254,166,254,230,254,38,255,101,255,164,255,228,255,35,0,95,0,151,0,205,0,1,1,46,1,81,1,110,1, +135,1,154,1,169,1,182,1,198,1,214,1,231,1,248,1,9,2,24,2,38,2,49,2,52,2,45,2,27,2,1,2, +221,1,174,1,119,1,62,1,4,1,196,0,129,0,65,0,8,0,210,255,157,255,109,255,65,255,25,255,240,254,202,254, +167,254,136,254,109,254,84,254,61,254,40,254,24,254,10,254,254,253,243,253,233,253,222,253,209,253,197,253,191,253,192,253, +201,253,223,253,3,254,50,254,105,254,171,254,251,254,82,255,167,255,253,255,85,0,170,0,243,0,51,1,111,1,167,1, +209,1,238,1,3,2,21,2,33,2,37,2,38,2,38,2,36,2,28,2,14,2,253,1,236,1,221,1,207,1,193,1, +178,1,164,1,151,1,132,1,105,1,71,1,29,1,233,0,170,0,98,0,22,0,201,255,124,255,50,255,235,254,168,254, +107,254,54,254,8,254,227,253,201,253,188,253,183,253,182,253,186,253,197,253,213,253,229,253,246,253,10,254,32,254,56,254, +84,254,116,254,149,254,180,254,213,254,250,254,30,255,65,255,102,255,147,255,198,255,251,255,53,0,118,0,187,0,254,0, +60,1,121,1,181,1,233,1,17,2,45,2,67,2,84,2,94,2,93,2,81,2,64,2,43,2,17,2,242,1,210,1, +179,1,148,1,113,1,76,1,39,1,3,1,220,0,180,0,141,0,103,0,61,0,13,0,215,255,157,255,99,255,44,255, +246,254,189,254,130,254,73,254,22,254,233,253,194,253,162,253,138,253,124,253,117,253,121,253,136,253,161,253,195,253,237,253, +29,254,79,254,128,254,175,254,222,254,12,255,59,255,109,255,159,255,206,255,250,255,38,0,87,0,138,0,185,0,228,0, +13,1,57,1,103,1,146,1,184,1,220,1,252,1,23,2,44,2,59,2,70,2,74,2,68,2,51,2,27,2,0,2, +222,1,180,1,135,1,91,1,47,1,254,0,200,0,146,0,97,0,55,0,13,0,226,255,181,255,136,255,92,255,52,255, +17,255,242,254,210,254,174,254,134,254,96,254,61,254,31,254,9,254,248,253,236,253,227,253,224,253,226,253,234,253,245,253, +8,254,37,254,72,254,108,254,146,254,191,254,246,254,51,255,111,255,169,255,225,255,23,0,73,0,121,0,167,0,212,0, +254,0,32,1,60,1,87,1,116,1,145,1,167,1,181,1,192,1,206,1,221,1,233,1,240,1,244,1,246,1,245,1, +238,1,226,1,210,1,187,1,159,1,123,1,80,1,27,1,223,0,161,0,101,0,41,0,235,255,172,255,110,255,50,255, +248,254,197,254,155,254,119,254,85,254,55,254,35,254,23,254,14,254,6,254,0,254,253,253,250,253,249,253,253,253,8,254, +23,254,42,254,65,254,93,254,123,254,154,254,189,254,231,254,25,255,78,255,134,255,196,255,9,0,81,0,151,0,213,0, +12,1,61,1,105,1,143,1,172,1,193,1,211,1,226,1,235,1,236,1,230,1,220,1,208,1,197,1,191,1,188,1, +178,1,160,1,140,1,124,1,107,1,85,1,59,1,30,1,250,0,201,0,146,0,97,0,54,0,5,0,200,255,136,255, +78,255,23,255,219,254,157,254,106,254,73,254,53,254,35,254,17,254,2,254,0,254,11,254,27,254,42,254,53,254,56,254, +51,254,47,254,54,254,73,254,100,254,131,254,167,254,212,254,15,255,83,255,146,255,198,255,245,255,32,0,70,0,104,0, +140,0,172,0,197,0,226,0,19,1,84,1,147,1,198,1,234,1,3,2,27,2,52,2,63,2,45,2,3,2,210,1, +159,1,109,1,66,1,37,1,17,1,4,1,255,0,0,1,6,1,16,1,17,1,254,0,218,0,178,0,128,0,53,0, +213,255,118,255,38,255,225,254,162,254,107,254,64,254,40,254,31,254,26,254,12,254,248,253,231,253,221,253,221,253,227,253, +233,253,242,253,12,254,65,254,135,254,199,254,238,254,3,255,28,255,72,255,126,255,173,255,207,255,231,255,251,255,18,0, +51,0,90,0,127,0,163,0,206,0,2,1,60,1,116,1,166,1,204,1,234,1,19,2,70,2,114,2,145,2,180,2, +250,2,108,3,222,3,244,3,111,3,110,2,64,1,8,0,181,254,66,253,223,251,207,250,65,250,76,250,231,250,244,251, +58,253,103,254,59,255,185,255,29,0,132,0,205,0,223,0,205,0,181,0,146,0,77,0,242,255,168,255,149,255,181,255, +216,255,215,255,191,255,198,255,15,0,152,0,54,1,178,1,236,1,253,1,37,2,133,2,244,2,41,3,254,2,132,2, +219,1,14,1,26,0,25,255,74,254,224,253,221,253,24,254,119,254,5,255,217,255,246,0,46,2,60,3,226,3,8,4, +198,3,84,3,234,2,149,2,55,2,171,1,254,0,106,0,30,0,14,0,247,255,160,255,21,255,146,254,55,254,228,253, +108,253,203,252,33,252,148,251,42,251,209,250,120,250,34,250,223,249,189,249,192,249,232,249,41,250,131,250,12,251,238,251, +55,253,194,254,92,0,234,1,110,3,223,4,18,6,205,6,243,6,150,6,235,5,32,5,69,4,81,3,48,2,226,0, +143,255,123,254,212,253,146,253,139,253,165,253,233,253,95,254,242,254,116,255,208,255,31,0,119,0,205,0,10,1,62,1, +163,1,97,2,90,3,70,4,245,4,108,5,191,5,244,5,7,6,4,6,249,5,216,5,118,5,192,4,226,3,10,3, +31,2,213,0,10,255,2,253,43,251,200,249,202,248,6,248,128,247,111,247,237,247,201,248,179,249,148,250,124,251,120,252, +128,253,140,254,135,255,73,0,183,0,216,0,191,0,113,0,232,255,36,255,63,254,112,253,247,252,229,252,21,253,95,253, +191,253,58,254,208,254,120,255,37,0,207,0,118,1,34,2,204,2,86,3,161,3,146,3,30,3,96,2,157,1,11,1, +172,0,112,0,95,0,143,0,9,1,189,1,134,2,60,3,211,3,72,4,136,4,129,4,80,4,35,4,229,3,84,3, +85,2,6,1,143,255,25,254,221,252,254,251,116,251,66,251,138,251,99,252,169,253,28,255,121,0,122,1,252,1,33,2, +29,2,252,1,179,1,78,1,222,0,95,0,206,255,59,255,177,254,41,254,161,253,39,253,206,252,173,252,206,252,35,253, +138,253,247,253,107,254,212,254,24,255,51,255,48,255,28,255,250,254,204,254,146,254,68,254,228,253,140,253,92,253,115,253, +214,253,114,254,58,255,56,0,111,1,189,2,242,3,251,4,204,5,73,6,95,6,37,6,183,5,35,5,112,4,176,3, +230,2,254,1,251,0,248,255,4,255,26,254,65,253,150,252,40,252,244,251,241,251,25,252,99,252,197,252,50,253,151,253, +226,253,28,254,92,254,164,254,226,254,15,255,55,255,97,255,130,255,151,255,178,255,231,255,65,0,187,0,63,1,182,1, +29,2,124,2,202,2,230,2,188,2,84,2,199,1,45,1,158,0,48,0,230,255,177,255,142,255,140,255,188,255,19,0, +121,0,222,0,68,1,172,1,12,2,85,2,137,2,179,2,196,2,160,2,63,2,181,1,33,1,145,0,7,0,116,255, +201,254,24,254,134,253,26,253,183,252,77,252,245,251,199,251,199,251,244,251,84,252,228,252,142,253,61,254,225,254,119,255, +12,0,159,0,22,1,93,1,137,1,175,1,184,1,142,1,69,1,253,0,177,0,78,0,216,255,96,255,236,254,124,254, +19,254,174,253,86,253,31,253,18,253,32,253,78,253,177,253,76,254,7,255,210,255,174,0,140,1,78,2,228,2,84,3, +172,3,249,3,56,4,75,4,43,4,255,3,242,3,244,3,228,3,197,3,172,3,145,3,100,3,44,3,240,2,171,2, +83,2,223,1,62,1,107,0,125,255,146,254,179,253,235,252,74,252,208,251,122,251,85,251,110,251,182,251,21,252,130,252, +244,252,92,253,187,253,30,254,116,254,160,254,164,254,153,254,130,254,85,254,26,254,233,253,207,253,218,253,18,254,110,254, +221,254,94,255,237,255,116,0,231,0,83,1,185,1,6,2,55,2,93,2,120,2,112,2,66,2,248,1,147,1,27,1, +170,0,83,0,10,0,211,255,199,255,243,255,68,0,165,0,18,1,125,1,203,1,241,1,246,1,238,1,230,1,216,1, +174,1,93,1,242,0,135,0,37,0,200,255,118,255,50,255,253,254,222,254,220,254,249,254,48,255,124,255,205,255,14,0, +58,0,98,0,138,0,166,0,170,0,152,0,106,0,32,0,189,255,78,255,221,254,125,254,57,254,16,254,4,254,37,254, +113,254,191,254,234,254,253,254,11,255,15,255,250,254,218,254,196,254,187,254,182,254,188,254,219,254,16,255,78,255,143,255, +215,255,48,0,169,0,75,1,11,2,208,2,137,3,49,4,183,4,4,5,17,5,235,4,160,4,43,4,132,3,183,2, +215,1,239,0,1,0,16,255,39,254,83,253,166,252,43,252,225,251,200,251,231,251,57,252,170,252,39,253,162,253,13,254, +86,254,134,254,183,254,239,254,24,255,38,255,39,255,44,255,55,255,67,255,86,255,115,255,149,255,184,255,222,255,10,0, +58,0,101,0,139,0,166,0,171,0,156,0,137,0,134,0,143,0,157,0,182,0,222,0,10,1,49,1,88,1,126,1, +145,1,145,1,149,1,166,1,181,1,192,1,214,1,248,1,24,2,43,2,47,2,28,2,237,1,170,1,83,1,231,0, +122,0,34,0,220,255,147,255,83,255,52,255,47,255,47,255,54,255,84,255,135,255,187,255,229,255,4,0,18,0,10,0, +242,255,209,255,165,255,103,255,24,255,195,254,114,254,35,254,208,253,126,253,51,253,239,252,178,252,134,252,114,252,111,252, +124,252,171,252,254,252,96,253,196,253,49,254,164,254,2,255,67,255,118,255,172,255,241,255,80,0,198,0,60,1,168,1, +15,2,109,2,170,2,195,2,204,2,205,2,192,2,169,2,154,2,149,2,151,2,167,2,193,2,208,2,196,2,170,2, +142,2,106,2,53,2,241,1,155,1,44,1,169,0,36,0,172,255,64,255,224,254,145,254,94,254,65,254,45,254,29,254, +26,254,36,254,48,254,65,254,100,254,151,254,196,254,230,254,16,255,70,255,115,255,136,255,135,255,124,255,114,255,120,255, +146,255,179,255,204,255,219,255,224,255,228,255,235,255,237,255,208,255,149,255,103,255,105,255,140,255,180,255,219,255,8,0, +52,0,82,0,98,0,107,0,109,0,108,0,109,0,122,0,153,0,198,0,241,0,11,1,23,1,31,1,39,1,36,1, +14,1,231,0,189,0,152,0,112,0,58,0,254,255,203,255,157,255,108,255,70,255,65,255,81,255,94,255,103,255,126,255, +158,255,182,255,193,255,195,255,189,255,175,255,156,255,130,255,98,255,68,255,38,255,252,254,199,254,153,254,117,254,81,254, +44,254,17,254,9,254,24,254,73,254,151,254,225,254,17,255,63,255,142,255,7,0,144,0,15,1,115,1,191,1,9,2, +107,2,236,2,127,3,8,4,107,4,160,4,182,4,177,4,129,4,38,4,186,3,82,3,229,2,102,2,213,1,56,1, +144,0,237,255,95,255,229,254,115,254,6,254,154,253,55,253,241,252,215,252,223,252,240,252,4,253,31,253,60,253,90,253, +124,253,168,253,216,253,6,254,48,254,80,254,102,254,124,254,148,254,177,254,218,254,21,255,80,255,116,255,137,255,166,255, +193,255,195,255,173,255,153,255,150,255,147,255,132,255,108,255,97,255,112,255,144,255,177,255,203,255,227,255,246,255,3,0, +33,0,100,0,187,0,1,1,45,1,89,1,148,1,204,1,243,1,19,2,65,2,122,2,176,2,222,2,5,3,32,3, +40,3,29,3,10,3,238,2,188,2,108,2,7,2,163,1,77,1,9,1,200,0,127,0,47,0,232,255,175,255,123,255, +59,255,242,254,171,254,112,254,70,254,39,254,4,254,216,253,185,253,191,253,230,253,16,254,40,254,51,254,71,254,104,254, +141,254,169,254,186,254,196,254,199,254,197,254,193,254,186,254,175,254,162,254,156,254,168,254,200,254,244,254,36,255,93,255, +163,255,230,255,17,0,43,0,84,0,152,0,228,0,45,1,121,1,198,1,242,1,240,1,222,1,215,1,212,1,196,1, +169,1,133,1,83,1,28,1,242,0,208,0,159,0,88,0,7,0,183,255,110,255,44,255,242,254,196,254,169,254,149,254, +117,254,65,254,18,254,0,254,13,254,52,254,120,254,222,254,85,255,192,255,20,0,106,0,215,0,77,1,166,1,214,1, +235,1,245,1,234,1,192,1,126,1,39,1,180,0,46,0,188,255,124,255,108,255,121,255,146,255,180,255,228,255,32,0, +71,0,71,0,70,0,101,0,122,0,76,0,250,255,213,255,249,255,59,0,116,0,146,0,141,0,109,0,77,0,78,0, +125,0,206,0,32,1,77,1,74,1,44,1,0,1,186,0,90,0,249,255,166,255,91,255,24,255,225,254,165,254,85,254, +1,254,195,253,149,253,103,253,54,253,9,253,245,252,18,253,89,253,167,253,243,253,71,254,146,254,205,254,14,255,89,255, +137,255,143,255,145,255,166,255,184,255,188,255,200,255,241,255,44,0,102,0,140,0,156,0,178,0,237,0,72,1,155,1, +218,1,32,2,111,2,172,2,212,2,4,3,55,3,68,3,30,3,226,2,177,2,155,2,151,2,142,2,115,2,90,2, +87,2,85,2,55,2,251,1,170,1,67,1,199,0,79,0,236,255,144,255,36,255,186,254,120,254,96,254,75,254,47,254, +31,254,29,254,19,254,1,254,250,253,6,254,30,254,58,254,89,254,130,254,181,254,218,254,237,254,10,255,49,255,61,255, +42,255,41,255,68,255,77,255,43,255,246,254,204,254,177,254,158,254,135,254,107,254,90,254,89,254,93,254,101,254,133,254, +198,254,12,255,58,255,90,255,137,255,202,255,13,0,79,0,154,0,237,0,52,1,99,1,129,1,160,1,207,1,10,2, +54,2,71,2,70,2,65,2,44,2,4,2,226,1,223,1,229,1,195,1,119,1,42,1,232,0,151,0,70,0,40,0, +55,0,59,0,31,0,249,255,215,255,186,255,171,255,153,255,106,255,43,255,248,254,209,254,184,254,182,254,190,254,193,254, +217,254,24,255,85,255,109,255,121,255,143,255,157,255,159,255,169,255,185,255,201,255,230,255,22,0,64,0,92,0,119,0, +148,0,172,0,197,0,219,0,214,0,189,0,192,0,236,0,24,1,36,1,34,1,34,1,24,1,1,1,232,0,206,0, +177,0,150,0,130,0,115,0,104,0,87,0,40,0,216,255,129,255,64,255,25,255,253,254,213,254,153,254,83,254,5,254, +177,253,106,253,71,253,67,253,85,253,130,253,197,253,7,254,69,254,143,254,223,254,46,255,136,255,225,255,33,0,76,0, +117,0,147,0,166,0,221,0,68,1,146,1,147,1,105,1,68,1,57,1,75,1,107,1,108,1,72,1,41,1,30,1, +13,1,247,0,232,0,203,0,158,0,148,0,180,0,199,0,193,0,218,0,24,1,70,1,82,1,80,1,74,1,74,1, +101,1,142,1,173,1,202,1,235,1,235,1,194,1,150,1,108,1,34,1,187,0,91,0,11,0,187,255,109,255,38,255, +232,254,182,254,148,254,113,254,64,254,15,254,231,253,194,253,162,253,146,253,144,253,141,253,140,253,150,253,170,253,188,253, +198,253,208,253,241,253,43,254,88,254,84,254,58,254,63,254,105,254,160,254,219,254,16,255,47,255,63,255,88,255,120,255, +160,255,238,255,95,0,194,0,13,1,86,1,156,1,214,1,20,2,80,2,98,2,86,2,88,2,98,2,83,2,54,2, +28,2,251,1,220,1,208,1,191,1,142,1,86,1,45,1,254,0,192,0,135,0,98,0,67,0,26,0,228,255,167,255, +113,255,68,255,29,255,5,255,2,255,0,255,237,254,219,254,226,254,1,255,31,255,53,255,88,255,131,255,153,255,146,255, +145,255,169,255,202,255,221,255,221,255,213,255,210,255,214,255,214,255,209,255,214,255,219,255,214,255,216,255,227,255,233,255, +236,255,242,255,223,255,177,255,154,255,171,255,184,255,174,255,165,255,161,255,157,255,162,255,170,255,167,255,180,255,236,255, +47,0,96,0,133,0,151,0,132,0,103,0,96,0,95,0,78,0,65,0,73,0,96,0,104,0,73,0,14,0,227,255, +211,255,189,255,155,255,128,255,104,255,73,255,54,255,59,255,59,255,38,255,15,255,254,254,224,254,174,254,127,254,103,254, +97,254,106,254,139,254,186,254,223,254,6,255,81,255,180,255,0,0,46,0,87,0,134,0,194,0,16,1,87,1,133,1, +175,1,214,1,232,1,248,1,24,2,31,2,245,1,214,1,227,1,245,1,249,1,4,2,10,2,247,1,227,1,223,1, +213,1,191,1,175,1,159,1,118,1,53,1,233,0,146,0,36,0,163,255,39,255,203,254,140,254,89,254,55,254,35,254, +254,253,198,253,164,253,167,253,184,253,201,253,207,253,199,253,206,253,2,254,63,254,88,254,93,254,115,254,147,254,169,254, +196,254,246,254,40,255,66,255,87,255,141,255,212,255,247,255,240,255,239,255,2,0,19,0,26,0,23,0,255,255,226,255, +216,255,213,255,212,255,231,255,4,0,8,0,255,255,4,0,14,0,36,0,110,0,213,0,17,1,39,1,81,1,140,1, +176,1,202,1,244,1,22,2,36,2,65,2,119,2,155,2,139,2,105,2,91,2,82,2,53,2,21,2,3,2,228,1, +163,1,87,1,21,1,207,0,124,0,19,0,147,255,24,255,192,254,119,254,36,254,219,253,175,253,135,253,96,253,90,253, +115,253,132,253,134,253,139,253,160,253,207,253,18,254,79,254,123,254,165,254,210,254,252,254,51,255,132,255,220,255,27,0, +65,0,95,0,135,0,193,0,255,0,47,1,74,1,92,1,116,1,146,1,165,1,154,1,124,1,104,1,97,1,74,1, +16,1,196,0,125,0,60,0,251,255,199,255,172,255,153,255,131,255,114,255,100,255,72,255,54,255,79,255,113,255,94,255, +27,255,224,254,190,254,173,254,181,254,208,254,235,254,9,255,57,255,104,255,139,255,177,255,225,255,10,0,37,0,67,0, +107,0,157,0,207,0,237,0,239,0,236,0,243,0,241,0,229,0,220,0,205,0,165,0,125,0,112,0,112,0,103,0, +96,0,95,0,80,0,50,0,34,0,42,0,62,0,88,0,112,0,114,0,92,0,72,0,75,0,95,0,125,0,153,0, +173,0,203,0,249,0,20,1,10,1,8,1,38,1,56,1,35,1,255,0,218,0,165,0,114,0,92,0,73,0,35,0, +253,255,215,255,135,255,14,255,165,254,95,254,37,254,242,253,200,253,150,253,94,253,77,253,104,253,126,253,119,253,116,253, +128,253,133,253,131,253,149,253,196,253,7,254,72,254,109,254,135,254,199,254,57,255,173,255,2,0,66,0,114,0,152,0, +201,0,16,1,88,1,149,1,209,1,253,1,16,2,30,2,55,2,79,2,91,2,102,2,113,2,111,2,95,2,74,2, +51,2,20,2,224,1,154,1,90,1,48,1,13,1,226,0,187,0,162,0,144,0,121,0,89,0,43,0,236,255,168,255, +115,255,83,255,63,255,54,255,58,255,50,255,17,255,247,254,5,255,31,255,39,255,48,255,62,255,50,255,22,255,26,255, +53,255,54,255,32,255,32,255,54,255,64,255,44,255,13,255,13,255,52,255,81,255,66,255,46,255,56,255,68,255,60,255, +60,255,83,255,112,255,145,255,185,255,218,255,233,255,249,255,19,0,38,0,40,0,40,0,57,0,95,0,142,0,187,0, +222,0,233,0,216,0,191,0,180,0,187,0,212,0,239,0,245,0,240,0,252,0,16,1,22,1,18,1,254,0,196,0, +121,0,80,0,70,0,59,0,51,0,43,0,9,0,214,255,170,255,122,255,70,255,49,255,47,255,12,255,217,254,197,254, +185,254,151,254,147,254,207,254,17,255,41,255,58,255,108,255,176,255,236,255,38,0,108,0,177,0,228,0,1,1,18,1, +26,1,38,1,69,1,109,1,133,1,141,1,147,1,156,1,161,1,149,1,102,1,33,1,227,0,170,0,115,0,93,0, +110,0,111,0,71,0,30,0,5,0,226,255,183,255,141,255,92,255,43,255,23,255,24,255,18,255,3,255,239,254,218,254, +203,254,188,254,155,254,132,254,152,254,182,254,191,254,200,254,216,254,203,254,166,254,149,254,147,254,139,254,149,254,195,254, +243,254,20,255,53,255,81,255,90,255,94,255,117,255,150,255,176,255,193,255,204,255,215,255,243,255,37,0,80,0,79,0, +52,0,51,0,79,0,96,0,98,0,120,0,162,0,205,0,244,0,16,1,24,1,34,1,61,1,78,1,77,1,91,1, +118,1,136,1,166,1,223,1,10,2,18,2,26,2,38,2,34,2,37,2,55,2,45,2,252,1,214,1,200,1,161,1, +66,1,201,0,89,0,250,255,161,255,80,255,25,255,243,254,181,254,87,254,5,254,213,253,168,253,117,253,89,253,87,253, +78,253,49,253,31,253,52,253,94,253,127,253,157,253,210,253,17,254,71,254,134,254,231,254,83,255,167,255,221,255,8,0, +67,0,147,0,211,0,225,0,218,0,234,0,6,1,17,1,12,1,6,1,11,1,17,1,248,0,182,0,126,0,122,0, +147,0,158,0,156,0,147,0,129,0,110,0,104,0,115,0,138,0,161,0,163,0,141,0,125,0,126,0,125,0,110,0, +92,0,83,0,73,0,58,0,51,0,66,0,85,0,74,0,46,0,50,0,87,0,106,0,87,0,63,0,56,0,57,0, +49,0,37,0,38,0,53,0,56,0,32,0,9,0,9,0,7,0,247,255,246,255,19,0,42,0,32,0,253,255,215,255, +193,255,184,255,172,255,155,255,162,255,197,255,212,255,179,255,147,255,169,255,225,255,4,0,8,0,18,0,46,0,69,0, +76,0,89,0,126,0,168,0,184,0,179,0,184,0,213,0,240,0,233,0,198,0,164,0,142,0,136,0,136,0,114,0, +50,0,222,255,144,255,81,255,33,255,252,254,203,254,144,254,109,254,89,254,36,254,207,253,158,253,175,253,214,253,226,253, +215,253,218,253,13,254,96,254,157,254,186,254,225,254,28,255,68,255,93,255,153,255,250,255,75,0,122,0,173,0,246,0, +60,1,108,1,141,1,181,1,242,1,50,2,84,2,94,2,118,2,145,2,119,2,32,2,206,1,176,1,176,1,167,1, +146,1,121,1,85,1,27,1,221,0,187,0,186,0,178,0,138,0,93,0,74,0,70,0,64,0,53,0,31,0,0,0, +228,255,201,255,161,255,122,255,89,255,41,255,248,254,248,254,23,255,10,255,208,254,175,254,172,254,147,254,105,254,90,254, +111,254,139,254,146,254,107,254,49,254,45,254,104,254,138,254,98,254,60,254,92,254,156,254,210,254,16,255,90,255,142,255, +161,255,170,255,183,255,204,255,245,255,29,0,39,0,46,0,91,0,139,0,141,0,136,0,171,0,207,0,200,0,189,0, +223,0,22,1,59,1,70,1,70,1,79,1,101,1,130,1,161,1,190,1,202,1,189,1,171,1,162,1,148,1,109,1, +52,1,7,1,245,0,228,0,172,0,95,0,53,0,36,0,235,255,149,255,97,255,78,255,43,255,8,255,8,255,23,255, +14,255,241,254,205,254,173,254,166,254,189,254,203,254,187,254,191,254,253,254,67,255,87,255,84,255,116,255,178,255,226,255, +244,255,244,255,239,255,1,0,49,0,94,0,123,0,158,0,180,0,142,0,86,0,88,0,132,0,156,0,160,0,163,0, +141,0,94,0,68,0,72,0,71,0,56,0,33,0,251,255,210,255,193,255,200,255,203,255,188,255,151,255,107,255,87,255, +102,255,124,255,122,255,101,255,89,255,105,255,130,255,123,255,81,255,53,255,64,255,82,255,88,255,98,255,115,255,119,255, +115,255,122,255,138,255,163,255,200,255,230,255,228,255,212,255,218,255,240,255,243,255,229,255,236,255,9,0,36,0,75,0, +146,0,219,0,3,1,21,1,36,1,55,1,93,1,133,1,128,1,84,1,64,1,75,1,74,1,66,1,65,1,35,1, +231,0,200,0,205,0,203,0,204,0,226,0,217,0,153,0,97,0,88,0,91,0,88,0,88,0,78,0,61,0,58,0, +66,0,64,0,61,0,62,0,42,0,252,255,199,255,141,255,79,255,40,255,25,255,255,254,217,254,195,254,172,254,103,254, +4,254,193,253,178,253,185,253,194,253,201,253,200,253,192,253,188,253,199,253,231,253,30,254,97,254,154,254,211,254,47,255, +168,255,23,0,112,0,193,0,251,0,22,1,43,1,77,1,112,1,133,1,134,1,116,1,115,1,166,1,221,1,212,1, +160,1,124,1,115,1,121,1,141,1,143,1,94,1,37,1,23,1,33,1,29,1,13,1,243,0,204,0,167,0,143,0, +118,0,92,0,89,0,104,0,111,0,100,0,72,0,37,0,15,0,13,0,13,0,6,0,250,255,225,255,169,255,104,255, +64,255,54,255,43,255,13,255,245,254,244,254,238,254,198,254,168,254,200,254,10,255,52,255,65,255,74,255,78,255,75,255, +81,255,97,255,120,255,146,255,164,255,157,255,142,255,147,255,156,255,143,255,126,255,144,255,195,255,230,255,227,255,218,255, +251,255,56,0,93,0,88,0,64,0,45,0,36,0,34,0,35,0,31,0,25,0,20,0,19,0,24,0,35,0,40,0, +42,0,55,0,69,0,69,0,67,0,79,0,91,0,84,0,57,0,18,0,226,255,182,255,150,255,129,255,124,255,131,255, +129,255,93,255,32,255,234,254,213,254,221,254,241,254,23,255,97,255,183,255,229,255,231,255,228,255,234,255,242,255,16,0, +89,0,185,0,254,0,23,1,20,1,29,1,77,1,145,1,186,1,175,1,136,1,114,1,124,1,136,1,130,1,128,1, +134,1,104,1,27,1,208,0,156,0,100,0,52,0,41,0,49,0,38,0,254,255,172,255,55,255,234,254,252,254,47,255, +61,255,49,255,27,255,247,254,225,254,247,254,18,255,24,255,32,255,37,255,4,255,221,254,230,254,2,255,247,254,210,254, +177,254,141,254,113,254,135,254,191,254,208,254,172,254,147,254,169,254,220,254,23,255,77,255,95,255,71,255,56,255,96,255, +177,255,4,0,64,0,78,0,54,0,46,0,80,0,117,0,129,0,143,0,180,0,228,0,11,1,32,1,44,1,70,1, +101,1,110,1,113,1,150,1,198,1,206,1,181,1,168,1,178,1,182,1,154,1,104,1,77,1,96,1,109,1,75,1, +40,1,35,1,20,1,231,0,191,0,161,0,126,0,100,0,78,0,29,0,231,255,204,255,176,255,116,255,67,255,48,255, +8,255,200,254,163,254,156,254,134,254,96,254,74,254,76,254,88,254,99,254,106,254,130,254,186,254,254,254,40,255,66,255, +103,255,147,255,180,255,215,255,15,0,61,0,54,0,9,0,241,255,254,255,27,0,62,0,101,0,131,0,156,0,174,0, +153,0,105,0,97,0,130,0,118,0,56,0,29,0,38,0,18,0,238,255,241,255,8,0,6,0,237,255,200,255,181,255, +220,255,36,0,59,0,39,0,55,0,111,0,147,0,152,0,149,0,120,0,72,0,62,0,118,0,184,0,206,0,176,0, +116,0,58,0,35,0,49,0,58,0,40,0,30,0,42,0,32,0,252,255,252,255,30,0,19,0,211,255,172,255,178,255, +192,255,216,255,253,255,14,0,10,0,27,0,61,0,83,0,92,0,74,0,16,0,237,255,32,0,113,0,141,0,123,0, +106,0,104,0,125,0,155,0,152,0,120,0,96,0,76,0,42,0,26,0,46,0,53,0,19,0,236,255,221,255,221,255, +217,255,196,255,166,255,162,255,183,255,175,255,123,255,71,255,36,255,254,254,208,254,156,254,98,254,45,254,39,254,92,254, +168,254,219,254,220,254,185,254,140,254,111,254,98,254,71,254,14,254,237,253,36,254,152,254,252,254,66,255,130,255,171,255, +182,255,200,255,249,255,65,0,151,0,236,0,32,1,64,1,110,1,164,1,192,1,195,1,177,1,137,1,112,1,141,1, +197,1,229,1,214,1,157,1,86,1,42,1,16,1,216,0,142,0,114,0,139,0,166,0,165,0,144,0,125,0,115,0, +87,0,19,0,211,255,197,255,206,255,210,255,231,255,17,0,42,0,40,0,31,0,18,0,252,255,223,255,188,255,161,255, +174,255,202,255,191,255,144,255,106,255,85,255,53,255,2,255,198,254,159,254,160,254,168,254,150,254,135,254,151,254,143,254, +88,254,61,254,107,254,161,254,159,254,126,254,123,254,177,254,12,255,90,255,123,255,127,255,126,255,126,255,133,255,173,255, +249,255,76,0,143,0,204,0,16,1,57,1,41,1,7,1,16,1,45,1,32,1,236,0,208,0,245,0,61,1,85,1, +7,1,154,0,130,0,176,0,198,0,177,0,150,0,105,0,45,0,30,0,65,0,81,0,44,0,243,255,200,255,191,255, +211,255,228,255,225,255,228,255,238,255,212,255,154,255,121,255,133,255,154,255,141,255,92,255,68,255,121,255,222,255,45,0, +89,0,113,0,105,0,70,0,65,0,122,0,206,0,8,1,17,1,2,1,13,1,48,1,56,1,24,1,245,0,212,0, +169,0,140,0,129,0,99,0,30,0,209,255,153,255,129,255,126,255,106,255,48,255,1,255,17,255,63,255,76,255,48,255, +16,255,21,255,76,255,140,255,166,255,154,255,131,255,107,255,97,255,116,255,150,255,174,255,183,255,175,255,145,255,111,255, +111,255,147,255,180,255,176,255,141,255,118,255,130,255,151,255,152,255,145,255,144,255,147,255,162,255,188,255,195,255,175,255, +167,255,201,255,1,0,39,0,33,0,251,255,232,255,9,0,69,0,123,0,174,0,233,0,41,1,100,1,131,1,123,1, +116,1,130,1,133,1,117,1,124,1,147,1,145,1,139,1,163,1,182,1,160,1,119,1,79,1,39,1,11,1,255,0, +243,0,236,0,231,0,179,0,83,0,32,0,56,0,59,0,240,255,139,255,76,255,52,255,30,255,240,254,184,254,156,254, +166,254,165,254,124,254,79,254,63,254,60,254,51,254,68,254,138,254,211,254,210,254,152,254,124,254,143,254,162,254,173,254, +212,254,14,255,47,255,51,255,68,255,138,255,252,255,76,0,71,0,41,0,64,0,114,0,135,0,144,0,184,0,245,0, +41,1,61,1,41,1,255,0,216,0,175,0,131,0,117,0,134,0,134,0,107,0,100,0,119,0,116,0,80,0,63,0, +90,0,121,0,100,0,41,0,6,0,19,0,31,0,9,0,253,255,43,0,114,0,138,0,108,0,96,0,147,0,209,0, +219,0,184,0,144,0,105,0,67,0,42,0,31,0,26,0,21,0,244,255,176,255,127,255,121,255,94,255,28,255,5,255, +45,255,55,255,11,255,241,254,6,255,44,255,85,255,116,255,130,255,167,255,242,255,30,0,23,0,40,0,101,0,139,0, +141,0,143,0,136,0,114,0,122,0,156,0,148,0,102,0,81,0,88,0,87,0,84,0,81,0,51,0,14,0,11,0, +14,0,230,255,181,255,177,255,195,255,184,255,160,255,145,255,120,255,81,255,60,255,60,255,61,255,66,255,85,255,99,255, +101,255,104,255,97,255,60,255,27,255,27,255,38,255,39,255,44,255,55,255,54,255,62,255,104,255,152,255,172,255,178,255, +191,255,213,255,248,255,34,0,74,0,110,0,154,0,201,0,245,0,28,1,53,1,71,1,119,1,207,1,34,2,55,2, +253,1,152,1,89,1,120,1,179,1,156,1,65,1,6,1,254,0,234,0,176,0,103,0,38,0,244,255,213,255,188,255, +165,255,161,255,164,255,137,255,97,255,84,255,87,255,66,255,46,255,78,255,152,255,207,255,217,255,197,255,167,255,137,255, +104,255,65,255,36,255,41,255,60,255,50,255,16,255,255,254,1,255,245,254,225,254,230,254,0,255,12,255,255,254,233,254, +211,254,190,254,180,254,193,254,230,254,9,255,21,255,28,255,65,255,127,255,174,255,197,255,226,255,17,0,68,0,108,0, +136,0,167,0,209,0,246,0,6,1,22,1,63,1,100,1,86,1,42,1,33,1,79,1,133,1,149,1,133,1,111,1, +87,1,50,1,15,1,9,1,24,1,20,1,226,0,155,0,119,0,125,0,119,0,69,0,16,0,0,0,0,0,250,255, +251,255,245,255,204,255,151,255,133,255,147,255,165,255,175,255,155,255,100,255,70,255,107,255,158,255,166,255,161,255,165,255, +149,255,127,255,150,255,202,255,224,255,219,255,228,255,249,255,255,255,240,255,223,255,241,255,57,0,133,0,133,0,69,0, +32,0,54,0,82,0,79,0,60,0,36,0,3,0,233,255,230,255,236,255,216,255,159,255,91,255,66,255,115,255,188,255, +199,255,146,255,110,255,125,255,144,255,129,255,108,255,122,255,164,255,184,255,164,255,149,255,187,255,242,255,251,255,235,255, +249,255,25,0,48,0,71,0,91,0,82,0,64,0,62,0,47,0,16,0,19,0,48,0,31,0,240,255,243,255,21,0, +28,0,34,0,60,0,52,0,255,255,232,255,2,0,36,0,69,0,98,0,85,0,52,0,70,0,132,0,169,0,190,0, +236,0,20,1,20,1,10,1,3,1,231,0,202,0,217,0,252,0,1,1,245,0,245,0,234,0,196,0,162,0,149,0, +133,0,108,0,92,0,77,0,33,0,223,255,180,255,163,255,125,255,53,255,238,254,191,254,167,254,167,254,188,254,195,254, +166,254,127,254,105,254,93,254,100,254,152,254,218,254,229,254,174,254,122,254,131,254,182,254,224,254,231,254,219,254,225,254, +3,255,34,255,46,255,68,255,123,255,172,255,177,255,158,255,165,255,206,255,5,0,65,0,116,0,140,0,143,0,149,0, +175,0,229,0,42,1,69,1,28,1,244,0,16,1,50,1,20,1,228,0,242,0,41,1,64,1,39,1,250,0,232,0, +1,1,28,1,16,1,241,0,222,0,194,0,146,0,115,0,114,0,108,0,86,0,61,0,41,0,41,0,69,0,87,0, +65,0,50,0,70,0,78,0,48,0,25,0,15,0,230,255,157,255,110,255,112,255,129,255,132,255,117,255,94,255,72,255, +46,255,14,255,254,254,16,255,47,255,52,255,12,255,205,254,170,254,187,254,226,254,250,254,13,255,37,255,45,255,40,255, +71,255,152,255,239,255,39,0,68,0,90,0,106,0,105,0,85,0,68,0,84,0,128,0,172,0,210,0,242,0,239,0, +174,0,71,0,251,255,242,255,28,0,73,0,86,0,59,0,11,0,228,255,219,255,218,255,202,255,181,255,163,255,133,255, +113,255,150,255,230,255,28,0,36,0,26,0,10,0,248,255,249,255,12,0,25,0,29,0,36,0,35,0,21,0,20,0, +46,0,84,0,114,0,124,0,112,0,91,0,70,0,57,0,74,0,121,0,141,0,99,0,49,0,49,0,84,0,131,0, +184,0,214,0,191,0,152,0,146,0,164,0,175,0,175,0,163,0,140,0,121,0,110,0,92,0,64,0,46,0,31,0, +0,0,212,255,170,255,139,255,122,255,121,255,121,255,115,255,109,255,108,255,104,255,86,255,52,255,17,255,3,255,24,255, +64,255,98,255,104,255,80,255,58,255,70,255,88,255,69,255,37,255,41,255,73,255,97,255,114,255,127,255,127,255,124,255, +136,255,142,255,118,255,87,255,71,255,54,255,39,255,66,255,129,255,162,255,150,255,141,255,160,255,182,255,210,255,20,0, +107,0,161,0,169,0,172,0,203,0,252,0,38,1,61,1,76,1,102,1,127,1,121,1,99,1,109,1,129,1,97,1, +18,1,219,0,214,0,221,0,215,0,183,0,125,0,67,0,40,0,24,0,5,0,7,0,19,0,254,255,219,255,221,255, +233,255,195,255,140,255,128,255,143,255,135,255,105,255,70,255,43,255,44,255,74,255,94,255,98,255,107,255,102,255,49,255, +248,254,2,255,71,255,127,255,127,255,83,255,38,255,38,255,81,255,118,255,120,255,114,255,118,255,115,255,108,255,132,255, +180,255,199,255,187,255,197,255,230,255,236,255,222,255,244,255,42,0,67,0,47,0,26,0,39,0,85,0,136,0,145,0, +107,0,85,0,103,0,104,0,55,0,0,0,233,255,234,255,254,255,33,0,60,0,68,0,80,0,111,0,158,0,202,0, +197,0,130,0,65,0,62,0,93,0,111,0,123,0,130,0,109,0,79,0,86,0,118,0,138,0,140,0,125,0,85,0, +46,0,37,0,33,0,0,0,217,255,208,255,221,255,226,255,208,255,170,255,140,255,152,255,198,255,235,255,247,255,254,255, +2,0,245,255,231,255,248,255,30,0,57,0,76,0,114,0,160,0,185,0,199,0,230,0,252,0,224,0,159,0,101,0, +73,0,74,0,86,0,69,0,21,0,3,0,35,0,50,0,7,0,207,255,167,255,120,255,67,255,53,255,76,255,87,255, +70,255,50,255,47,255,60,255,84,255,115,255,134,255,128,255,109,255,101,255,114,255,143,255,177,255,196,255,184,255,166,255, +185,255,236,255,14,0,16,0,12,0,24,0,45,0,52,0,23,0,236,255,228,255,254,255,10,0,10,0,40,0,88,0, +96,0,69,0,58,0,82,0,121,0,165,0,215,0,11,1,42,1,25,1,223,0,185,0,210,0,244,0,221,0,152,0, +98,0,78,0,71,0,59,0,52,0,62,0,61,0,16,0,223,255,232,255,25,0,40,0,21,0,17,0,19,0,237,255, +161,255,93,255,72,255,105,255,158,255,184,255,182,255,181,255,178,255,157,255,135,255,136,255,153,255,168,255,168,255,141,255, +105,255,88,255,73,255,35,255,14,255,46,255,83,255,72,255,45,255,49,255,71,255,88,255,103,255,119,255,126,255,120,255, +97,255,72,255,89,255,166,255,252,255,37,0,48,0,67,0,88,0,90,0,90,0,120,0,174,0,212,0,219,0,221,0, +238,0,248,0,222,0,177,0,150,0,153,0,164,0,166,0,166,0,165,0,145,0,102,0,58,0,27,0,7,0,249,255, +240,255,225,255,197,255,175,255,185,255,216,255,232,255,211,255,178,255,170,255,188,255,209,255,232,255,19,0,61,0,65,0, +46,0,32,0,7,0,224,255,218,255,10,0,57,0,56,0,10,0,206,255,182,255,229,255,30,0,12,0,208,255,191,255, +215,255,224,255,229,255,4,0,43,0,58,0,50,0,29,0,13,0,12,0,18,0,29,0,68,0,124,0,145,0,117,0, +74,0,26,0,229,255,196,255,184,255,174,255,183,255,210,255,192,255,108,255,35,255,12,255,0,255,3,255,68,255,164,255, +205,255,164,255,75,255,253,254,251,254,61,255,112,255,121,255,163,255,245,255,24,0,10,0,37,0,99,0,99,0,22,0, +197,255,152,255,150,255,211,255,65,0,170,0,237,0,254,0,200,0,97,0,15,0,226,255,166,255,107,255,135,255,241,255, +62,0,78,0,99,0,134,0,134,0,101,0,85,0,107,0,162,0,242,0,61,1,107,1,128,1,119,1,57,1,218,0, +142,0,105,0,97,0,116,0,132,0,102,0,55,0,59,0,106,0,124,0,83,0,0,0,161,255,99,255,101,255,132,255, +139,255,123,255,104,255,83,255,52,255,23,255,9,255,21,255,58,255,90,255,84,255,41,255,247,254,228,254,1,255,57,255, +99,255,111,255,112,255,116,255,116,255,102,255,71,255,37,255,37,255,74,255,112,255,139,255,180,255,225,255,225,255,183,255, +148,255,147,255,175,255,209,255,228,255,249,255,44,0,90,0,74,0,38,0,60,0,102,0,89,0,56,0,75,0,122,0, +143,0,153,0,182,0,210,0,204,0,160,0,110,0,94,0,103,0,88,0,54,0,70,0,140,0,174,0,124,0,47,0, +6,0,7,0,26,0,39,0,45,0,70,0,110,0,122,0,99,0,88,0,102,0,104,0,86,0,84,0,95,0,82,0, +57,0,51,0,55,0,38,0,8,0,238,255,216,255,202,255,209,255,216,255,199,255,181,255,190,255,193,255,154,255,101,255, +74,255,69,255,72,255,88,255,122,255,175,255,235,255,7,0,236,255,203,255,225,255,20,0,51,0,67,0,79,0,65,0, +33,0,33,0,74,0,116,0,126,0,105,0,63,0,9,0,211,255,174,255,167,255,182,255,187,255,182,255,185,255,187,255, +167,255,148,255,150,255,145,255,124,255,115,255,126,255,138,255,159,255,187,255,197,255,209,255,5,0,55,0,43,0,25,0, +61,0,96,0,76,0,63,0,101,0,132,0,115,0,88,0,93,0,117,0,125,0,100,0,68,0,79,0,120,0,129,0, +109,0,128,0,192,0,220,0,177,0,120,0,99,0,109,0,129,0,156,0,191,0,217,0,208,0,168,0,137,0,136,0, +136,0,101,0,38,0,253,255,4,0,29,0,25,0,4,0,8,0,35,0,28,0,220,255,143,255,95,255,70,255,49,255, +48,255,86,255,142,255,171,255,162,255,149,255,156,255,157,255,126,255,83,255,82,255,141,255,198,255,183,255,118,255,75,255, +57,255,12,255,218,254,246,254,95,255,177,255,181,255,140,255,107,255,93,255,90,255,115,255,177,255,230,255,209,255,142,255, +141,255,233,255,57,0,53,0,20,0,26,0,71,0,123,0,162,0,184,0,203,0,222,0,218,0,189,0,181,0,202,0, +211,0,214,0,0,1,61,1,74,1,27,1,218,0,164,0,132,0,127,0,139,0,149,0,145,0,114,0,59,0,17,0, +13,0,21,0,6,0,237,255,232,255,247,255,254,255,237,255,203,255,180,255,182,255,190,255,176,255,146,255,135,255,160,255, +195,255,202,255,184,255,165,255,144,255,111,255,92,255,119,255,170,255,208,255,231,255,244,255,230,255,184,255,141,255,145,255, +196,255,242,255,235,255,193,255,178,255,206,255,239,255,6,0,27,0,26,0,248,255,213,255,208,255,225,255,4,0,38,0, +39,0,19,0,27,0,53,0,40,0,3,0,6,0,39,0,48,0,40,0,36,0,5,0,192,255,138,255,142,255,180,255, +212,255,225,255,220,255,221,255,251,255,37,0,45,0,22,0,12,0,26,0,31,0,15,0,5,0,17,0,48,0,78,0, +72,0,16,0,216,255,226,255,28,0,64,0,61,0,44,0,21,0,253,255,0,0,29,0,29,0,240,255,205,255,220,255, +1,0,15,0,255,255,239,255,253,255,25,0,30,0,27,0,60,0,118,0,141,0,121,0,123,0,162,0,169,0,106,0, +31,0,13,0,40,0,54,0,52,0,79,0,134,0,157,0,121,0,72,0,49,0,21,0,210,255,138,255,112,255,125,255, +120,255,82,255,57,255,78,255,118,255,126,255,97,255,72,255,75,255,83,255,62,255,25,255,8,255,22,255,42,255,51,255, +67,255,107,255,155,255,171,255,146,255,112,255,103,255,122,255,159,255,205,255,243,255,253,255,249,255,21,0,97,0,161,0, +143,0,70,0,27,0,48,0,79,0,84,0,87,0,114,0,135,0,115,0,80,0,78,0,105,0,125,0,129,0,133,0, +140,0,132,0,115,0,122,0,163,0,192,0,165,0,103,0,69,0,85,0,106,0,93,0,75,0,96,0,137,0,134,0, +74,0,8,0,239,255,242,255,247,255,250,255,0,0,7,0,13,0,19,0,12,0,237,255,193,255,162,255,148,255,134,255, +121,255,118,255,120,255,113,255,103,255,106,255,121,255,133,255,128,255,103,255,66,255,44,255,67,255,114,255,138,255,140,255, +168,255,226,255,243,255,190,255,139,255,168,255,248,255,46,0,67,0,100,0,139,0,131,0,72,0,21,0,23,0,60,0, +96,0,129,0,170,0,206,0,207,0,169,0,133,0,127,0,129,0,100,0,46,0,18,0,30,0,52,0,64,0,79,0, +95,0,79,0,30,0,247,255,233,255,211,255,167,255,139,255,144,255,148,255,140,255,162,255,223,255,7,0,252,255,250,255, +52,0,116,0,103,0,26,0,222,255,215,255,234,255,5,0,40,0,62,0,51,0,30,0,35,0,62,0,77,0,69,0, +52,0,37,0,29,0,33,0,41,0,43,0,46,0,63,0,73,0,53,0,21,0,13,0,11,0,232,255,187,255,196,255, +7,0,65,0,68,0,44,0,40,0,51,0,34,0,228,255,162,255,149,255,192,255,235,255,242,255,235,255,238,255,220,255, +167,255,126,255,132,255,136,255,94,255,64,255,118,255,213,255,244,255,206,255,177,255,182,255,164,255,103,255,60,255,76,255, +114,255,136,255,166,255,229,255,27,0,14,0,204,255,160,255,162,255,166,255,150,255,160,255,226,255,46,0,74,0,66,0, +68,0,80,0,72,0,45,0,36,0,61,0,99,0,126,0,144,0,171,0,209,0,226,0,196,0,157,0,171,0,227,0, +252,0,239,0,255,0,59,1,78,1,18,1,220,0,235,0,4,1,214,0,127,0,77,0,80,0,90,0,84,0,78,0, +86,0,96,0,72,0,246,255,147,255,100,255,101,255,80,255,27,255,21,255,93,255,158,255,144,255,94,255,73,255,73,255, +77,255,107,255,157,255,167,255,131,255,114,255,152,255,197,255,211,255,200,255,162,255,84,255,3,255,246,254,60,255,153,255, +216,255,237,255,235,255,239,255,250,255,223,255,136,255,62,255,91,255,190,255,243,255,224,255,225,255,24,0,58,0,31,0, +13,0,58,0,110,0,99,0,54,0,50,0,98,0,135,0,122,0,92,0,94,0,124,0,129,0,94,0,66,0,86,0, +122,0,122,0,93,0,73,0,58,0,13,0,207,255,188,255,225,255,9,0,8,0,245,255,251,255,18,0,11,0,218,255, +175,255,187,255,239,255,20,0,19,0,0,0,241,255,225,255,209,255,207,255,214,255,209,255,196,255,202,255,220,255,215,255, +186,255,182,255,223,255,4,0,243,255,191,255,152,255,143,255,149,255,174,255,233,255,56,0,114,0,121,0,91,0,70,0, +91,0,136,0,151,0,112,0,56,0,23,0,4,0,232,255,217,255,237,255,5,0,251,255,227,255,230,255,240,255,216,255, +183,255,188,255,207,255,185,255,139,255,131,255,158,255,162,255,132,255,116,255,143,255,196,255,237,255,236,255,204,255,196,255, +246,255,51,0,40,0,223,255,180,255,202,255,224,255,201,255,176,255,200,255,243,255,4,0,3,0,9,0,14,0,10,0, +5,0,254,255,237,255,239,255,20,0,46,0,28,0,9,0,35,0,76,0,90,0,95,0,117,0,139,0,150,0,171,0, +201,0,197,0,153,0,125,0,147,0,176,0,170,0,150,0,147,0,160,0,178,0,195,0,193,0,157,0,109,0,72,0, +45,0,29,0,33,0,42,0,30,0,7,0,238,255,199,255,159,255,161,255,205,255,232,255,212,255,167,255,129,255,107,255, +91,255,58,255,15,255,12,255,69,255,122,255,122,255,108,255,128,255,163,255,171,255,156,255,137,255,107,255,63,255,28,255, +31,255,69,255,126,255,190,255,247,255,17,0,7,0,231,255,181,255,136,255,152,255,239,255,62,0,64,0,22,0,255,255, +11,0,56,0,135,0,216,0,5,1,15,1,246,0,172,0,78,0,10,0,231,255,233,255,36,0,125,0,164,0,149,0, +158,0,206,0,233,0,209,0,165,0,124,0,77,0,1,0,161,255,103,255,132,255,210,255,14,0,54,0,85,0,78,0, +36,0,23,0,65,0,118,0,140,0,105,0,249,255,108,255,32,255,39,255,72,255,120,255,202,255,17,0,19,0,225,255, +185,255,188,255,221,255,228,255,175,255,121,255,134,255,160,255,119,255,69,255,116,255,235,255,70,0,105,0,99,0,48,0, +228,255,185,255,188,255,205,255,216,255,214,255,181,255,138,255,135,255,185,255,245,255,33,0,68,0,82,0,49,0,242,255, +187,255,145,255,114,255,119,255,170,255,227,255,4,0,29,0,59,0,84,0,109,0,139,0,147,0,120,0,87,0,61,0, +29,0,0,0,251,255,0,0,248,255,245,255,3,0,19,0,34,0,56,0,62,0,40,0,20,0,8,0,226,255,178,255, +171,255,185,255,171,255,163,255,216,255,44,0,97,0,119,0,142,0,169,0,191,0,194,0,166,0,141,0,166,0,200,0, +168,0,107,0,116,0,179,0,190,0,140,0,113,0,133,0,149,0,130,0,92,0,54,0,27,0,10,0,251,255,246,255, +7,0,15,0,226,255,158,255,144,255,183,255,214,255,223,255,222,255,184,255,109,255,51,255,36,255,23,255,250,254,247,254, +31,255,85,255,129,255,145,255,135,255,138,255,166,255,170,255,129,255,102,255,122,255,133,255,108,255,107,255,155,255,204,255, +225,255,234,255,231,255,221,255,231,255,253,255,255,255,252,255,20,0,38,0,22,0,20,0,72,0,131,0,162,0,191,0, +225,0,244,0,254,0,8,1,242,0,187,0,163,0,173,0,151,0,97,0,84,0,114,0,125,0,116,0,140,0,204,0, +19,1,68,1,58,1,231,0,125,0,44,0,206,255,33,255,50,254,77,253,178,252,139,252,219,252,96,253,228,253,151,254, +198,255,69,1,149,2,127,3,40,4,162,4,178,4,26,4,234,2,124,1,49,0,53,255,113,254,189,253,17,253,140,252, +80,252,108,252,215,252,113,253,7,254,120,254,199,254,254,254,27,255,58,255,151,255,50,0,166,0,167,0,99,0,48,0, +34,0,26,0,255,255,188,255,67,255,181,254,67,254,2,254,251,253,67,254,220,254,161,255,112,0,48,1,192,1,47,2, +215,2,223,3,213,4,42,5,212,4,54,4,161,3,45,3,209,2,105,2,218,1,46,1,132,0,232,255,102,255,28,255, +18,255,48,255,97,255,152,255,167,255,117,255,62,255,89,255,189,255,7,0,3,0,204,255,149,255,114,255,115,255,171,255, +43,0,232,0,169,1,34,2,57,2,26,2,253,1,231,1,197,1,127,1,242,0,2,0,217,254,214,253,54,253,229,252, +205,252,0,253,144,253,85,254,1,255,114,255,211,255,89,0,235,0,41,1,212,0,19,0,72,255,184,254,127,254,164,254, +21,255,161,255,22,0,105,0,162,0,185,0,152,0,70,0,230,255,138,255,19,255,107,254,197,253,129,253,198,253,98,254, +15,255,182,255,87,0,215,0,12,1,235,0,151,0,49,0,184,255,35,255,142,254,46,254,29,254,84,254,203,254,130,255, +84,0,247,0,61,1,59,1,25,1,217,0,110,0,231,255,114,255,40,255,253,254,222,254,221,254,25,255,146,255,28,0, +144,0,237,0,53,1,88,1,80,1,65,1,72,1,77,1,40,1,227,0,184,0,197,0,233,0,242,0,219,0,200,0, +199,0,186,0,132,0,54,0,253,255,246,255,26,0,91,0,159,0,193,0,170,0,109,0,48,0,242,255,143,255,6,255, +145,254,107,254,139,254,183,254,207,254,240,254,60,255,158,255,226,255,246,255,243,255,250,255,11,0,22,0,25,0,30,0, +50,0,85,0,118,0,132,0,114,0,68,0,10,0,212,255,161,255,97,255,26,255,237,254,239,254,8,255,12,255,242,254, +219,254,233,254,23,255,62,255,72,255,75,255,100,255,142,255,173,255,185,255,186,255,175,255,148,255,123,255,119,255,116,255, +95,255,74,255,87,255,123,255,145,255,143,255,132,255,133,255,157,255,200,255,242,255,2,0,251,255,232,255,196,255,148,255, +108,255,84,255,61,255,40,255,49,255,82,255,94,255,62,255,19,255,0,255,252,254,244,254,234,254,224,254,211,254,209,254, +240,254,58,255,163,255,35,0,173,0,48,1,147,1,206,1,238,1,9,2,37,2,39,2,0,2,200,1,163,1,144,1, +122,1,100,1,99,1,115,1,125,1,116,1,100,1,94,1,100,1,106,1,99,1,76,1,34,1,234,0,181,0,152,0, +146,0,150,0,161,0,176,0,175,0,144,0,100,0,43,0,206,255,83,255,228,254,133,254,18,254,148,253,70,253,60,253, +85,253,129,253,201,253,30,254,107,254,170,254,212,254,215,254,196,254,202,254,230,254,239,254,221,254,216,254,254,254,76,255, +173,255,15,0,104,0,182,0,237,0,244,0,216,0,190,0,170,0,125,0,64,0,29,0,17,0,249,255,219,255,226,255, +16,0,66,0,94,0,99,0,89,0,85,0,96,0,105,0,101,0,106,0,133,0,164,0,187,0,213,0,251,0,32,1, +59,1,73,1,68,1,50,1,31,1,6,1,233,0,224,0,239,0,235,0,197,0,161,0,139,0,95,0,22,0,217,255, +181,255,144,255,99,255,65,255,37,255,0,255,220,254,204,254,198,254,194,254,196,254,206,254,230,254,10,255,48,255,74,255, +106,255,161,255,223,255,18,0,60,0,80,0,56,0,12,0,254,255,248,255,190,255,91,255,17,255,236,254,208,254,191,254, +210,254,11,255,104,255,239,255,137,0,8,1,98,1,180,1,3,2,59,2,81,2,66,2,27,2,253,1,243,1,219,1, +158,1,94,1,58,1,33,1,6,1,255,0,9,1,253,0,217,0,186,0,163,0,122,0,66,0,18,0,237,255,198,255, +165,255,153,255,167,255,202,255,239,255,6,0,16,0,23,0,21,0,6,0,242,255,219,255,179,255,120,255,61,255,12,255, +222,254,186,254,164,254,149,254,146,254,168,254,198,254,210,254,222,254,7,255,58,255,82,255,89,255,107,255,129,255,146,255, +167,255,176,255,151,255,117,255,128,255,181,255,223,255,235,255,238,255,242,255,244,255,243,255,233,255,212,255,203,255,215,255, +223,255,214,255,232,255,45,0,126,0,177,0,221,0,27,1,81,1,91,1,68,1,49,1,47,1,45,1,23,1,231,0, +175,0,135,0,121,0,120,0,121,0,125,0,137,0,157,0,177,0,185,0,174,0,151,0,126,0,101,0,63,0,254,255, +172,255,104,255,73,255,63,255,58,255,78,255,138,255,203,255,232,255,242,255,21,0,79,0,122,0,135,0,135,0,137,0, +139,0,137,0,125,0,106,0,89,0,75,0,48,0,3,0,214,255,170,255,114,255,66,255,67,255,115,255,158,255,178,255, +218,255,34,0,84,0,78,0,50,0,48,0,67,0,75,0,56,0,22,0,252,255,241,255,237,255,237,255,251,255,25,0, +42,0,19,0,227,255,187,255,165,255,154,255,158,255,182,255,215,255,241,255,255,255,252,255,238,255,239,255,10,0,29,0, +11,0,237,255,234,255,248,255,236,255,198,255,187,255,228,255,23,0,25,0,232,255,188,255,182,255,187,255,164,255,119,255, +81,255,58,255,40,255,21,255,6,255,7,255,38,255,99,255,154,255,170,255,161,255,166,255,203,255,11,0,77,0,121,0, +134,0,139,0,156,0,174,0,180,0,179,0,178,0,171,0,157,0,136,0,102,0,63,0,50,0,72,0,97,0,96,0, +80,0,73,0,83,0,106,0,121,0,106,0,60,0,11,0,225,255,181,255,140,255,119,255,109,255,96,255,92,255,109,255, +129,255,140,255,153,255,177,255,203,255,230,255,255,255,12,0,20,0,51,0,93,0,102,0,73,0,46,0,34,0,17,0, +247,255,227,255,209,255,187,255,171,255,168,255,172,255,190,255,235,255,27,0,52,0,66,0,88,0,112,0,123,0,124,0, +108,0,60,0,253,255,206,255,181,255,164,255,165,255,190,255,226,255,1,0,25,0,40,0,50,0,62,0,70,0,54,0, +3,0,186,255,117,255,77,255,81,255,111,255,136,255,150,255,167,255,186,255,198,255,219,255,248,255,252,255,216,255,166,255, +123,255,87,255,77,255,107,255,150,255,181,255,214,255,251,255,254,255,214,255,182,255,175,255,155,255,110,255,70,255,47,255, +30,255,35,255,83,255,158,255,235,255,47,0,98,0,124,0,141,0,156,0,144,0,96,0,48,0,28,0,19,0,3,0, +252,255,10,0,41,0,93,0,159,0,210,0,221,0,209,0,204,0,211,0,223,0,242,0,251,0,226,0,175,0,140,0, +145,0,166,0,168,0,157,0,163,0,178,0,154,0,88,0,48,0,63,0,79,0,48,0,2,0,230,255,206,255,185,255, +204,255,5,0,38,0,10,0,195,255,97,255,230,254,94,254,231,253,157,253,140,253,171,253,240,253,108,254,56,255,44,0, +227,0,46,1,62,1,64,1,34,1,209,0,104,0,8,0,183,255,116,255,66,255,34,255,27,255,50,255,82,255,84,255, +51,255,0,255,198,254,146,254,143,254,214,254,58,255,119,255,138,255,164,255,218,255,8,0,22,0,18,0,14,0,246,255, +180,255,90,255,10,255,209,254,179,254,197,254,9,255,93,255,159,255,220,255,39,0,111,0,151,0,164,0,182,0,220,0, +23,1,101,1,199,1,62,2,194,2,57,3,124,3,115,3,37,3,162,2,246,1,42,1,74,0,106,255,175,254,64,254, +39,254,81,254,162,254,6,255,112,255,203,255,245,255,204,255,86,255,206,254,118,254,88,254,90,254,126,254,229,254,147,255, +87,0,255,0,129,1,228,1,21,2,0,2,170,1,39,1,131,0,209,255,54,255,206,254,146,254,104,254,77,254,78,254, +116,254,191,254,45,255,179,255,54,0,153,0,213,0,247,0,6,1,0,1,241,0,244,0,19,1,49,1,42,1,2,1, +210,0,157,0,97,0,37,0,241,255,188,255,140,255,123,255,145,255,184,255,230,255,34,0,106,0,174,0,227,0,3,1, +17,1,26,1,50,1,85,1,107,1,109,1,98,1,69,1,24,1,238,0,208,0,171,0,100,0,0,0,144,255,30,255, +175,254,79,254,23,254,22,254,57,254,95,254,121,254,153,254,208,254,28,255,105,255,158,255,170,255,149,255,122,255,99,255, +67,255,31,255,22,255,59,255,117,255,163,255,202,255,9,0,101,0,188,0,222,0,197,0,149,0,103,0,44,0,235,255, +207,255,223,255,239,255,249,255,40,0,121,0,183,0,205,0,218,0,236,0,231,0,192,0,127,0,48,0,239,255,220,255, +228,255,213,255,181,255,182,255,228,255,18,0,52,0,101,0,171,0,232,0,12,1,38,1,66,1,91,1,104,1,103,1, +100,1,92,1,51,1,217,0,115,0,50,0,27,0,13,0,250,255,229,255,215,255,206,255,198,255,189,255,189,255,200,255, +202,255,174,255,130,255,93,255,65,255,36,255,9,255,248,254,255,254,46,255,120,255,176,255,202,255,225,255,249,255,233,255, +166,255,89,255,35,255,255,254,243,254,14,255,62,255,108,255,165,255,250,255,62,0,73,0,52,0,41,0,20,0,220,255, +157,255,125,255,116,255,107,255,101,255,124,255,180,255,240,255,10,0,253,255,225,255,198,255,174,255,159,255,164,255,183,255, +199,255,198,255,181,255,173,255,196,255,246,255,40,0,73,0,90,0,103,0,117,0,124,0,126,0,148,0,192,0,219,0, +202,0,162,0,123,0,82,0,39,0,16,0,31,0,57,0,45,0,0,0,242,255,15,0,30,0,12,0,19,0,89,0, +169,0,205,0,203,0,190,0,164,0,115,0,50,0,248,255,198,255,150,255,121,255,137,255,181,255,215,255,231,255,242,255, +251,255,243,255,207,255,156,255,122,255,117,255,116,255,111,255,129,255,178,255,229,255,19,0,75,0,136,0,174,0,174,0, +153,0,138,0,142,0,143,0,119,0,82,0,58,0,41,0,11,0,226,255,208,255,235,255,29,0,58,0,50,0,28,0, +10,0,248,255,223,255,195,255,175,255,164,255,158,255,162,255,177,255,196,255,208,255,217,255,229,255,225,255,193,255,156,255, +156,255,198,255,253,255,45,0,85,0,130,0,174,0,195,0,182,0,147,0,102,0,47,0,245,255,194,255,144,255,95,255, +75,255,99,255,135,255,154,255,171,255,205,255,244,255,6,0,239,255,178,255,117,255,94,255,96,255,90,255,83,255,111,255, +175,255,237,255,20,0,53,0,94,0,128,0,123,0,76,0,8,0,196,255,137,255,96,255,81,255,92,255,116,255,131,255, +131,255,143,255,178,255,198,255,170,255,112,255,71,255,63,255,60,255,40,255,26,255,59,255,122,255,162,255,178,255,206,255, +248,255,19,0,14,0,227,255,160,255,104,255,81,255,66,255,32,255,246,254,219,254,216,254,230,254,0,255,42,255,94,255, +146,255,204,255,20,0,88,0,134,0,165,0,197,0,228,0,2,1,20,1,3,1,225,0,224,0,250,0,250,0,212,0, +169,0,142,0,124,0,109,0,91,0,69,0,53,0,54,0,67,0,76,0,75,0,86,0,125,0,158,0,149,0,118,0, +119,0,156,0,190,0,190,0,169,0,165,0,177,0,168,0,124,0,74,0,36,0,254,255,218,255,195,255,186,255,186,255, +181,255,157,255,140,255,158,255,184,255,179,255,168,255,194,255,244,255,25,0,50,0,80,0,121,0,154,0,157,0,131,0, +98,0,68,0,38,0,6,0,237,255,225,255,228,255,226,255,206,255,180,255,163,255,142,255,113,255,97,255,104,255,118,255, +126,255,130,255,144,255,177,255,223,255,1,0,16,0,30,0,53,0,74,0,76,0,55,0,30,0,14,0,252,255,214,255, +173,255,150,255,141,255,137,255,141,255,148,255,149,255,156,255,184,255,226,255,3,0,14,0,12,0,15,0,24,0,15,0, +243,255,232,255,4,0,50,0,85,0,106,0,124,0,149,0,174,0,192,0,207,0,227,0,240,0,230,0,212,0,215,0, +233,0,247,0,4,1,17,1,22,1,17,1,5,1,240,0,218,0,219,0,244,0,14,1,27,1,13,1,222,0,160,0, +113,0,89,0,83,0,90,0,101,0,94,0,67,0,33,0,10,0,13,0,34,0,34,0,252,255,197,255,162,255,150,255, +135,255,111,255,94,255,80,255,28,255,193,254,116,254,85,254,86,254,122,254,186,254,234,254,244,254,239,254,232,254,231,254, +3,255,42,255,50,255,45,255,55,255,51,255,19,255,7,255,32,255,54,255,57,255,47,255,29,255,22,255,42,255,55,255, +43,255,38,255,56,255,64,255,40,255,15,255,36,255,114,255,216,255,55,0,126,0,151,0,134,0,122,0,136,0,147,0, +148,0,160,0,171,0,173,0,186,0,199,0,191,0,198,0,242,0,3,1,209,0,143,0,103,0,80,0,70,0,69,0, +71,0,80,0,84,0,52,0,15,0,44,0,123,0,168,0,158,0,133,0,101,0,47,0,243,255,209,255,209,255,216,255, +202,255,170,255,147,255,152,255,178,255,203,255,202,255,185,255,180,255,185,255,184,255,183,255,197,255,221,255,254,255,41,0, +72,0,82,0,94,0,119,0,137,0,134,0,112,0,79,0,50,0,43,0,45,0,38,0,33,0,49,0,78,0,105,0, +122,0,122,0,113,0,108,0,95,0,54,0,2,0,225,255,199,255,163,255,137,255,143,255,180,255,232,255,29,0,77,0, +119,0,136,0,114,0,79,0,74,0,90,0,87,0,64,0,45,0,25,0,2,0,252,255,22,0,65,0,101,0,107,0, +80,0,41,0,12,0,254,255,246,255,227,255,189,255,156,255,156,255,179,255,207,255,245,255,34,0,68,0,88,0,99,0, +99,0,96,0,92,0,82,0,70,0,59,0,48,0,38,0,32,0,15,0,245,255,240,255,252,255,238,255,191,255,150,255, +132,255,126,255,122,255,113,255,104,255,109,255,126,255,144,255,165,255,174,255,151,255,115,255,97,255,92,255,85,255,88,255, +96,255,97,255,109,255,136,255,156,255,169,255,187,255,190,255,167,255,144,255,138,255,131,255,115,255,108,255,114,255,122,255, +131,255,157,255,211,255,15,0,47,0,50,0,63,0,104,0,145,0,152,0,135,0,139,0,174,0,202,0,198,0,176,0, +155,0,146,0,153,0,154,0,126,0,100,0,116,0,141,0,125,0,84,0,61,0,61,0,65,0,61,0,50,0,34,0, +19,0,253,255,225,255,201,255,192,255,199,255,215,255,228,255,230,255,227,255,222,255,204,255,168,255,131,255,106,255,77,255, +25,255,229,254,218,254,249,254,29,255,54,255,75,255,95,255,109,255,110,255,91,255,59,255,38,255,32,255,19,255,252,254, +235,254,236,254,5,255,44,255,76,255,101,255,134,255,167,255,183,255,189,255,183,255,158,255,142,255,168,255,206,255,218,255, +222,255,254,255,50,0,98,0,135,0,166,0,192,0,199,0,183,0,163,0,152,0,135,0,104,0,90,0,117,0,159,0, +183,0,190,0,211,0,251,0,23,1,10,1,225,0,192,0,180,0,164,0,126,0,92,0,100,0,135,0,148,0,136,0, +141,0,166,0,177,0,159,0,129,0,101,0,85,0,77,0,68,0,64,0,75,0,88,0,100,0,116,0,121,0,96,0, +74,0,79,0,77,0,46,0,21,0,19,0,2,0,222,255,205,255,211,255,216,255,227,255,252,255,12,0,17,0,34,0, +50,0,32,0,248,255,222,255,209,255,209,255,229,255,245,255,239,255,243,255,14,0,28,0,20,0,20,0,19,0,0,0, +255,255,23,0,25,0,3,0,6,0,27,0,28,0,33,0,66,0,97,0,104,0,111,0,124,0,120,0,99,0,79,0, +55,0,22,0,9,0,27,0,47,0,55,0,64,0,64,0,31,0,243,255,216,255,191,255,158,255,142,255,145,255,148,255, +154,255,160,255,139,255,100,255,80,255,72,255,67,255,89,255,129,255,137,255,118,255,118,255,130,255,125,255,115,255,122,255, +131,255,130,255,127,255,132,255,145,255,159,255,170,255,180,255,185,255,187,255,207,255,246,255,17,0,26,0,39,0,54,0, +46,0,25,0,21,0,44,0,71,0,72,0,46,0,27,0,35,0,43,0,36,0,36,0,61,0,90,0,100,0,90,0, +67,0,47,0,46,0,58,0,50,0,7,0,223,255,227,255,3,0,30,0,57,0,92,0,107,0,84,0,53,0,40,0, +42,0,49,0,42,0,9,0,222,255,196,255,181,255,170,255,182,255,212,255,231,255,239,255,254,255,19,0,21,0,2,0, +229,255,205,255,192,255,187,255,179,255,169,255,165,255,169,255,183,255,218,255,17,0,54,0,62,0,81,0,125,0,139,0, +101,0,63,0,56,0,43,0,11,0,251,255,1,0,6,0,8,0,17,0,43,0,79,0,100,0,80,0,45,0,35,0, +44,0,48,0,50,0,47,0,30,0,11,0,6,0,6,0,7,0,22,0,48,0,51,0,14,0,220,255,196,255,206,255, +222,255,232,255,245,255,11,0,48,0,87,0,94,0,64,0,46,0,68,0,79,0,30,0,214,255,177,255,182,255,199,255, +206,255,209,255,232,255,18,0,40,0,22,0,4,0,24,0,68,0,93,0,91,0,72,0,37,0,241,255,201,255,194,255, +213,255,236,255,1,0,16,0,26,0,34,0,34,0,28,0,35,0,49,0,23,0,206,255,159,255,173,255,200,255,216,255, +0,0,62,0,94,0,83,0,63,0,47,0,28,0,20,0,22,0,14,0,0,0,252,255,249,255,249,255,28,0,80,0, +90,0,62,0,43,0,33,0,3,0,221,255,187,255,159,255,153,255,166,255,159,255,140,255,163,255,218,255,243,255,242,255, +7,0,45,0,59,0,51,0,50,0,57,0,51,0,36,0,27,0,22,0,7,0,251,255,2,0,27,0,63,0,106,0, +133,0,133,0,124,0,112,0,81,0,53,0,56,0,70,0,73,0,77,0,75,0,48,0,19,0,16,0,22,0,14,0, +243,255,200,255,166,255,166,255,177,255,163,255,136,255,119,255,101,255,75,255,50,255,35,255,32,255,45,255,66,255,91,255, +103,255,84,255,55,255,53,255,66,255,61,255,51,255,52,255,50,255,45,255,57,255,79,255,104,255,148,255,191,255,203,255, +201,255,205,255,198,255,177,255,167,255,164,255,156,255,160,255,192,255,233,255,12,0,42,0,61,0,82,0,122,0,163,0, +161,0,110,0,56,0,40,0,56,0,66,0,52,0,31,0,26,0,43,0,75,0,98,0,94,0,77,0,67,0,52,0, +9,0,212,255,190,255,211,255,248,255,9,0,2,0,255,255,13,0,21,0,12,0,2,0,254,255,249,255,244,255,231,255, +192,255,146,255,135,255,156,255,179,255,198,255,205,255,197,255,192,255,208,255,220,255,213,255,206,255,202,255,182,255,152,255, +126,255,112,255,125,255,163,255,193,255,203,255,214,255,221,255,207,255,191,255,186,255,182,255,178,255,178,255,174,255,171,255, +190,255,214,255,225,255,245,255,30,0,54,0,40,0,12,0,245,255,230,255,226,255,233,255,249,255,8,0,5,0,250,255, +8,0,46,0,71,0,68,0,57,0,70,0,107,0,132,0,110,0,69,0,50,0,37,0,9,0,237,255,229,255,245,255, +22,0,40,0,31,0,38,0,83,0,112,0,98,0,74,0,54,0,39,0,47,0,60,0,40,0,15,0,22,0,31,0, +21,0,28,0,54,0,68,0,87,0,130,0,168,0,178,0,177,0,167,0,145,0,126,0,124,0,127,0,128,0,138,0, +155,0,163,0,157,0,156,0,162,0,159,0,147,0,142,0,135,0,116,0,103,0,101,0,103,0,114,0,137,0,149,0, +145,0,148,0,162,0,171,0,185,0,200,0,184,0,136,0,87,0,51,0,27,0,17,0,19,0,33,0,62,0,79,0, +53,0,9,0,2,0,30,0,34,0,245,255,189,255,161,255,151,255,125,255,88,255,89,255,145,255,201,255,199,255,162,255, +153,255,179,255,192,255,176,255,143,255,96,255,37,255,247,254,223,254,219,254,242,254,32,255,72,255,99,255,113,255,104,255, +92,255,118,255,156,255,143,255,91,255,63,255,60,255,52,255,56,255,104,255,172,255,210,255,212,255,211,255,220,255,225,255, +215,255,199,255,187,255,186,255,192,255,196,255,207,255,247,255,50,0,87,0,92,0,79,0,64,0,57,0,55,0,47,0, +39,0,57,0,78,0,62,0,28,0,17,0,33,0,65,0,103,0,134,0,138,0,116,0,80,0,49,0,32,0,15,0, +255,255,15,0,56,0,78,0,73,0,80,0,116,0,156,0,154,0,96,0,30,0,0,0,234,255,188,255,154,255,167,255, +190,255,186,255,170,255,169,255,193,255,226,255,241,255,239,255,249,255,14,0,25,0,28,0,35,0,42,0,45,0,49,0, +60,0,79,0,91,0,75,0,50,0,46,0,57,0,69,0,83,0,96,0,100,0,113,0,130,0,131,0,132,0,138,0, +113,0,61,0,37,0,39,0,36,0,38,0,53,0,62,0,70,0,81,0,73,0,60,0,78,0,97,0,78,0,49,0, +41,0,34,0,12,0,255,255,6,0,17,0,23,0,24,0,26,0,18,0,252,255,245,255,8,0,16,0,253,255,238,255, +225,255,196,255,175,255,193,255,220,255,230,255,230,255,233,255,240,255,248,255,240,255,228,255,244,255,14,0,8,0,236,255, +220,255,215,255,222,255,244,255,252,255,241,255,243,255,253,255,237,255,214,255,217,255,221,255,204,255,191,255,188,255,167,255, +135,255,131,255,168,255,216,255,241,255,237,255,233,255,244,255,250,255,233,255,211,255,202,255,200,255,182,255,149,255,130,255, +144,255,176,255,202,255,226,255,3,0,30,0,38,0,30,0,27,0,40,0,51,0,36,0,253,255,227,255,236,255,11,0, +36,0,46,0,55,0,77,0,104,0,109,0,94,0,100,0,133,0,153,0,143,0,136,0,144,0,140,0,128,0,139,0, +161,0,164,0,159,0,161,0,152,0,115,0,71,0,45,0,40,0,48,0,51,0,23,0,225,255,181,255,175,255,201,255, +221,255,211,255,180,255,160,255,171,255,203,255,216,255,185,255,152,255,181,255,239,255,227,255,151,255,113,255,144,255,167,255, +142,255,102,255,81,255,83,255,99,255,106,255,91,255,79,255,106,255,148,255,143,255,78,255,32,255,65,255,137,255,175,255, +173,255,162,255,153,255,155,255,170,255,171,255,155,255,159,255,182,255,179,255,145,255,127,255,137,255,154,255,175,255,205,255, +231,255,241,255,227,255,200,255,193,255,223,255,0,0,252,255,225,255,220,255,247,255,15,0,7,0,248,255,6,0,29,0, +24,0,13,0,27,0,45,0,52,0,58,0,64,0,54,0,46,0,57,0,66,0,53,0,28,0,15,0,29,0,66,0, +103,0,120,0,110,0,82,0,62,0,69,0,83,0,77,0,67,0,74,0,88,0,92,0,93,0,98,0,106,0,118,0, +131,0,142,0,151,0,150,0,130,0,99,0,72,0,45,0,20,0,6,0,7,0,19,0,28,0,17,0,251,255,250,255, +11,0,13,0,252,255,246,255,1,0,12,0,9,0,247,255,209,255,157,255,127,255,146,255,181,255,186,255,171,255,180,255, +211,255,222,255,211,255,209,255,229,255,249,255,246,255,226,255,218,255,227,255,222,255,188,255,153,255,142,255,147,255,157,255, +170,255,197,255,242,255,26,0,28,0,5,0,3,0,31,0,57,0,53,0,23,0,245,255,220,255,204,255,196,255,204,255, +229,255,0,0,17,0,12,0,0,0,13,0,57,0,92,0,87,0,45,0,250,255,225,255,234,255,239,255,221,255,221,255, +0,0,29,0,30,0,25,0,20,0,15,0,17,0,14,0,250,255,236,255,240,255,244,255,241,255,248,255,12,0,19,0, +246,255,198,255,181,255,204,255,217,255,200,255,189,255,198,255,206,255,203,255,201,255,223,255,19,0,52,0,26,0,252,255, +20,0,53,0,48,0,33,0,32,0,36,0,50,0,63,0,48,0,40,0,74,0,107,0,97,0,77,0,78,0,90,0, +96,0,89,0,73,0,65,0,62,0,43,0,25,0,29,0,29,0,10,0,243,255,218,255,194,255,193,255,205,255,201,255, +195,255,205,255,212,255,208,255,216,255,235,255,2,0,29,0,38,0,27,0,18,0,5,0,230,255,205,255,203,255,203,255, +207,255,216,255,192,255,146,255,146,255,197,255,238,255,0,0,11,0,1,0,240,255,254,255,14,0,237,255,185,255,181,255, +221,255,252,255,249,255,231,255,223,255,228,255,230,255,228,255,242,255,16,0,27,0,242,255,175,255,143,255,156,255,169,255, +160,255,159,255,177,255,192,255,215,255,10,0,52,0,43,0,7,0,250,255,0,0,245,255,222,255,215,255,238,255,22,0, +57,0,64,0,44,0,27,0,32,0,47,0,52,0,52,0,59,0,64,0,43,0,254,255,240,255,30,0,69,0,48,0, +21,0,46,0,86,0,91,0,64,0,31,0,18,0,37,0,57,0,49,0,48,0,74,0,88,0,76,0,81,0,115,0, +143,0,149,0,142,0,125,0,105,0,92,0,88,0,86,0,80,0,79,0,97,0,122,0,124,0,106,0,102,0,112,0, +119,0,115,0,97,0,67,0,47,0,34,0,13,0,5,0,33,0,55,0,27,0,228,255,196,255,204,255,231,255,244,255, +236,255,233,255,233,255,198,255,135,255,113,255,152,255,199,255,210,255,189,255,166,255,165,255,183,255,193,255,191,255,200,255, +218,255,205,255,162,255,140,255,159,255,167,255,135,255,102,255,95,255,95,255,96,255,108,255,115,255,110,255,129,255,185,255, +226,255,221,255,200,255,196,255,206,255,218,255,229,255,232,255,223,255,211,255,211,255,223,255,235,255,252,255,29,0,50,0, +29,0,255,255,3,0,23,0,21,0,1,0,247,255,3,0,28,0,50,0,63,0,79,0,106,0,133,0,145,0,137,0, +114,0,89,0,75,0,70,0,85,0,114,0,123,0,103,0,101,0,125,0,118,0,78,0,56,0,52,0,27,0,253,255, +250,255,8,0,24,0,36,0,24,0,252,255,3,0,41,0,37,0,236,255,203,255,240,255,42,0,58,0,35,0,9,0, +2,0,11,0,29,0,36,0,15,0,244,255,251,255,15,0,3,0,236,255,244,255,5,0,248,255,230,255,239,255,2,0, +1,0,240,255,212,255,176,255,152,255,157,255,184,255,210,255,213,255,199,255,200,255,229,255,7,0,19,0,0,0,229,255, +233,255,9,0,7,0,205,255,153,255,152,255,167,255,174,255,185,255,196,255,191,255,190,255,207,255,219,255,210,255,192,255, +177,255,168,255,166,255,173,255,187,255,196,255,193,255,191,255,204,255,216,255,207,255,196,255,202,255,211,255,202,255,190,255, +194,255,212,255,227,255,226,255,214,255,209,255,221,255,242,255,5,0,3,0,232,255,213,255,230,255,7,0,22,0,15,0, +19,0,45,0,68,0,55,0,22,0,18,0,53,0,82,0,80,0,68,0,69,0,74,0,75,0,81,0,97,0,108,0, +109,0,107,0,103,0,93,0,86,0,85,0,73,0,56,0,66,0,96,0,99,0,70,0,59,0,82,0,108,0,100,0, +60,0,19,0,253,255,244,255,234,255,222,255,214,255,219,255,242,255,11,0,18,0,23,0,49,0,69,0,51,0,13,0, +234,255,204,255,184,255,183,255,194,255,214,255,244,255,21,0,39,0,47,0,50,0,34,0,251,255,211,255,193,255,185,255, +166,255,149,255,162,255,200,255,226,255,232,255,242,255,9,0,32,0,42,0,34,0,4,0,213,255,167,255,151,255,176,255, +214,255,223,255,212,255,223,255,4,0,24,0,4,0,231,255,222,255,225,255,211,255,172,255,147,255,161,255,188,255,186,255, +171,255,182,255,209,255,224,255,222,255,205,255,168,255,124,255,102,255,106,255,115,255,115,255,109,255,116,255,151,255,195,255, +216,255,209,255,196,255,186,255,177,255,173,255,167,255,157,255,161,255,177,255,192,255,217,255,8,0,38,0,25,0,7,0, +22,0,43,0,35,0,13,0,8,0,15,0,18,0,19,0,27,0,47,0,77,0,105,0,111,0,94,0,94,0,128,0, +146,0,118,0,81,0,74,0,87,0,99,0,103,0,95,0,88,0,108,0,142,0,148,0,114,0,76,0,57,0,44,0, +13,0,227,255,214,255,247,255,35,0,55,0,62,0,84,0,112,0,127,0,122,0,108,0,98,0,85,0,51,0,254,255, +214,255,217,255,250,255,21,0,33,0,49,0,73,0,97,0,126,0,157,0,158,0,113,0,46,0,246,255,221,255,235,255, +8,0,16,0,16,0,28,0,30,0,5,0,250,255,15,0,27,0,5,0,241,255,248,255,2,0,253,255,240,255,250,255, +40,0,91,0,91,0,46,0,21,0,41,0,53,0,16,0,211,255,171,255,164,255,177,255,189,255,197,255,217,255,248,255, +4,0,240,255,224,255,225,255,215,255,192,255,189,255,205,255,207,255,195,255,192,255,207,255,225,255,232,255,233,255,240,255, +252,255,244,255,216,255,202,255,205,255,187,255,145,255,128,255,158,255,196,255,201,255,192,255,211,255,254,255,26,0,22,0, +14,0,19,0,20,0,0,0,231,255,217,255,226,255,19,0,100,0,157,0,148,0,104,0,68,0,45,0,29,0,27,0, +31,0,33,0,40,0,52,0,62,0,68,0,70,0,79,0,111,0,130,0,82,0,6,0,242,255,1,0,2,0,13,0, +41,0,42,0,32,0,45,0,43,0,13,0,3,0,5,0,240,255,233,255,251,255,244,255,223,255,225,255,219,255,194,255, +207,255,243,255,243,255,236,255,11,0,36,0,27,0,254,255,201,255,152,255,158,255,192,255,181,255,136,255,110,255,113,255, +143,255,191,255,219,255,213,255,206,255,207,255,200,255,189,255,180,255,184,255,218,255,8,0,19,0,243,255,205,255,192,255, +212,255,241,255,236,255,202,255,193,255,223,255,255,255,23,0,45,0,58,0,69,0,92,0,103,0,81,0,52,0,44,0, +47,0,44,0,29,0,9,0,254,255,0,0,8,0,25,0,61,0,101,0,119,0,113,0,94,0,64,0,32,0,23,0, +33,0,33,0,13,0,242,255,214,255,202,255,229,255,18,0,31,0,22,0,46,0,90,0,81,0,19,0,240,255,14,0, +52,0,41,0,2,0,250,255,10,0,7,0,249,255,10,0,56,0,96,0,107,0,75,0,4,0,197,255,183,255,207,255, +242,255,10,0,13,0,12,0,30,0,50,0,52,0,44,0,30,0,6,0,240,255,221,255,199,255,195,255,218,255,227,255, +203,255,192,255,215,255,234,255,233,255,231,255,232,255,217,255,179,255,146,255,149,255,158,255,133,255,124,255,195,255,20,0, +15,0,225,255,221,255,232,255,205,255,180,255,212,255,20,0,35,0,229,255,158,255,151,255,183,255,197,255,205,255,237,255, +3,0,247,255,231,255,233,255,236,255,229,255,223,255,220,255,211,255,202,255,213,255,243,255,25,0,71,0,120,0,145,0, +131,0,99,0,75,0,81,0,122,0,145,0,97,0,20,0,244,255,247,255,10,0,76,0,163,0,191,0,151,0,100,0, +62,0,42,0,35,0,14,0,238,255,227,255,228,255,213,255,220,255,6,0,33,0,44,0,75,0,80,0,3,0,169,255, +153,255,179,255,180,255,158,255,150,255,159,255,156,255,140,255,138,255,162,255,176,255,157,255,119,255,88,255,78,255,93,255, +114,255,119,255,120,255,136,255,168,255,223,255,27,0,52,0,31,0,2,0,238,255,221,255,205,255,187,255,175,255,198,255, +248,255,21,0,29,0,54,0,85,0,96,0,99,0,105,0,100,0,97,0,115,0,115,0,68,0,29,0,50,0,96,0, +109,0,97,0,112,0,152,0,166,0,135,0,100,0,78,0,49,0,19,0,27,0,74,0,114,0,121,0,112,0,109,0, +113,0,113,0,98,0,50,0,236,255,193,255,209,255,250,255,8,0,254,255,246,255,236,255,222,255,233,255,16,0,32,0, +254,255,208,255,187,255,175,255,164,255,186,255,229,255,223,255,152,255,103,255,123,255,147,255,115,255,62,255,56,255,108,255, +180,255,243,255,29,0,47,0,47,0,45,0,39,0,5,0,201,255,156,255,151,255,181,255,232,255,25,0,36,0,254,255, +214,255,228,255,37,0,82,0,71,0,43,0,34,0,22,0,9,0,25,0,41,0,12,0,222,255,203,255,186,255,161,255, +165,255,201,255,240,255,21,0,48,0,54,0,63,0,78,0,62,0,21,0,4,0,7,0,3,0,3,0,3,0,251,255, +9,0,51,0,86,0,112,0,150,0,166,0,154,0,155,0,148,0,83,0,18,0,39,0,101,0,104,0,37,0,236,255, +248,255,45,0,67,0,73,0,136,0,227,0,241,0,172,0,101,0,59,0,33,0,27,0,39,0,48,0,43,0,31,0, +30,0,63,0,121,0,146,0,104,0,29,0,227,255,201,255,199,255,216,255,253,255,38,0,61,0,63,0,51,0,33,0, +14,0,249,255,219,255,183,255,149,255,108,255,60,255,26,255,35,255,109,255,220,255,20,0,221,255,148,255,164,255,218,255, +203,255,135,255,90,255,79,255,67,255,43,255,30,255,56,255,111,255,150,255,171,255,196,255,204,255,178,255,156,255,158,255, +158,255,152,255,141,255,111,255,94,255,123,255,152,255,146,255,164,255,228,255,12,0,251,255,215,255,191,255,187,255,199,255, +203,255,186,255,166,255,137,255,105,255,133,255,224,255,24,0,14,0,12,0,31,0,33,0,40,0,66,0,61,0,13,0, +240,255,240,255,214,255,168,255,163,255,212,255,14,0,45,0,54,0,65,0,86,0,100,0,100,0,102,0,111,0,103,0, +83,0,71,0,52,0,9,0,250,255,49,0,112,0,99,0,39,0,1,0,243,255,235,255,8,0,72,0,109,0,87,0, +46,0,34,0,55,0,78,0,65,0,15,0,241,255,12,0,44,0,22,0,227,255,209,255,243,255,53,0,115,0,124,0, +72,0,21,0,10,0,26,0,56,0,89,0,95,0,68,0,40,0,2,0,207,255,204,255,9,0,46,0,29,0,23,0, +43,0,49,0,49,0,59,0,64,0,73,0,90,0,78,0,33,0,7,0,14,0,41,0,84,0,116,0,90,0,22,0, +212,255,155,255,125,255,151,255,210,255,4,0,39,0,40,0,250,255,213,255,235,255,31,0,54,0,33,0,245,255,222,255, +236,255,243,255,221,255,214,255,244,255,11,0,255,255,223,255,186,255,156,255,151,255,167,255,179,255,160,255,102,255,33,255, +24,255,110,255,229,255,36,0,27,0,250,255,234,255,239,255,255,255,5,0,240,255,195,255,147,255,102,255,63,255,57,255, +102,255,170,255,231,255,26,0,63,0,79,0,78,0,63,0,45,0,48,0,58,0,34,0,242,255,214,255,212,255,236,255, +46,0,119,0,143,0,138,0,142,0,142,0,126,0,104,0,66,0,21,0,3,0,9,0,18,0,44,0,89,0,122,0, +143,0,152,0,134,0,118,0,133,0,104,0,242,255,142,255,149,255,199,255,234,255,28,0,106,0,162,0,166,0,140,0, +137,0,164,0,140,0,19,0,158,255,138,255,157,255,145,255,151,255,220,255,34,0,46,0,15,0,244,255,233,255,219,255, +192,255,174,255,179,255,183,255,166,255,153,255,169,255,206,255,240,255,16,0,48,0,61,0,33,0,226,255,167,255,142,255, +151,255,168,255,164,255,150,255,178,255,3,0,75,0,82,0,49,0,37,0,52,0,38,0,219,255,126,255,82,255,99,255, +141,255,182,255,229,255,25,0,55,0,42,0,8,0,252,255,0,0,236,255,175,255,109,255,76,255,86,255,114,255,139,255, +168,255,220,255,19,0,27,0,230,255,165,255,151,255,194,255,238,255,234,255,206,255,199,255,213,255,233,255,19,0,81,0, +122,0,110,0,72,0,55,0,62,0,43,0,249,255,233,255,17,0,48,0,49,0,80,0,159,0,222,0,242,0,251,0, +254,0,227,0,160,0,65,0,235,255,200,255,232,255,57,0,138,0,158,0,120,0,98,0,116,0,109,0,69,0,69,0, +118,0,131,0,90,0,65,0,78,0,76,0,48,0,51,0,94,0,101,0,29,0,212,255,221,255,33,0,86,0,84,0, +38,0,244,255,215,255,196,255,187,255,208,255,249,255,26,0,50,0,55,0,9,0,206,255,201,255,234,255,243,255,231,255, +223,255,210,255,199,255,200,255,195,255,185,255,191,255,192,255,153,255,105,255,90,255,96,255,114,255,156,255,195,255,199,255, +194,255,201,255,187,255,125,255,70,255,81,255,132,255,154,255,129,255,100,255,105,255,141,255,182,255,219,255,1,0,18,0, +229,255,152,255,119,255,120,255,95,255,79,255,132,255,200,255,180,255,85,255,31,255,109,255,22,0,133,0,113,0,59,0, +58,0,47,0,242,255,221,255,21,0,65,0,44,0,255,255,234,255,241,255,4,0,16,0,17,0,24,0,41,0,66,0, +89,0,72,0,7,0,224,255,1,0,51,0,44,0,236,255,160,255,109,255,103,255,132,255,168,255,189,255,203,255,248,255, +89,0,170,0,155,0,87,0,64,0,85,0,92,0,81,0,74,0,68,0,59,0,69,0,109,0,153,0,161,0,126,0, +91,0,89,0,98,0,111,0,143,0,154,0,92,0,4,0,239,255,18,0,48,0,72,0,111,0,133,0,111,0,65,0, +26,0,8,0,14,0,26,0,17,0,247,255,216,255,184,255,166,255,192,255,3,0,63,0,78,0,55,0,25,0,0,0, +216,255,164,255,154,255,180,255,156,255,74,255,50,255,118,255,180,255,200,255,238,255,26,0,15,0,222,255,190,255,158,255, +93,255,41,255,83,255,201,255,19,0,235,255,161,255,156,255,218,255,27,0,50,0,11,0,192,255,148,255,149,255,151,255, +144,255,161,255,222,255,60,0,124,0,99,0,58,0,118,0,219,0,229,0,185,0,170,0,143,0,80,0,42,0,42,0, +56,0,90,0,118,0,100,0,86,0,110,0,111,0,105,0,183,0,31,1,15,1,151,0,61,0,50,0,67,0,54,0, +255,255,214,255,224,255,229,255,193,255,172,255,206,255,8,0,57,0,69,0,49,0,60,0,123,0,149,0,94,0,43,0, +45,0,44,0,253,255,181,255,143,255,183,255,13,0,71,0,99,0,132,0,136,0,80,0,41,0,57,0,41,0,202,255, +109,255,79,255,91,255,115,255,144,255,181,255,245,255,77,0,115,0,51,0,204,255,168,255,215,255,20,0,36,0,252,255, +204,255,213,255,27,0,86,0,95,0,100,0,127,0,117,0,39,0,209,255,181,255,200,255,215,255,203,255,175,255,160,255, +170,255,185,255,187,255,184,255,174,255,143,255,97,255,57,255,28,255,24,255,58,255,99,255,90,255,37,255,250,254,239,254, +241,254,10,255,67,255,110,255,98,255,73,255,101,255,160,255,183,255,177,255,204,255,1,0,15,0,4,0,34,0,84,0, +82,0,46,0,50,0,86,0,98,0,91,0,115,0,182,0,238,0,226,0,158,0,111,0,120,0,138,0,131,0,129,0, +143,0,139,0,124,0,132,0,151,0,154,0,154,0,174,0,184,0,138,0,48,0,225,255,174,255,136,255,126,255,173,255, +250,255,40,0,43,0,31,0,11,0,0,0,31,0,75,0,56,0,234,255,176,255,167,255,170,255,177,255,198,255,208,255, +189,255,162,255,155,255,169,255,206,255,6,0,43,0,35,0,6,0,240,255,208,255,158,255,136,255,181,255,1,0,23,0, +220,255,158,255,180,255,16,0,103,0,141,0,128,0,70,0,255,255,214,255,212,255,238,255,39,0,98,0,94,0,22,0, +211,255,204,255,239,255,23,0,42,0,31,0,7,0,253,255,251,255,235,255,223,255,251,255,40,0,47,0,26,0,21,0, +6,0,216,255,220,255,59,0,111,0,17,0,142,255,108,255,156,255,212,255,253,255,10,0,2,0,9,0,37,0,50,0, +37,0,33,0,69,0,126,0,128,0,53,0,251,255,18,0,41,0,15,0,20,0,85,0,103,0,27,0,203,255,208,255, +28,0,89,0,83,0,53,0,40,0,4,0,193,255,171,255,220,255,19,0,48,0,60,0,51,0,47,0,88,0,132,0, +116,0,68,0,47,0,59,0,74,0,52,0,244,255,216,255,22,0,86,0,64,0,253,255,206,255,175,255,163,255,189,255, +238,255,24,0,32,0,244,255,193,255,205,255,4,0,13,0,207,255,118,255,57,255,66,255,119,255,137,255,107,255,94,255, +126,255,175,255,218,255,238,255,217,255,178,255,164,255,189,255,217,255,183,255,79,255,21,255,101,255,233,255,30,0,0,0, +208,255,195,255,255,255,88,0,102,0,62,0,65,0,62,0,217,255,105,255,100,255,154,255,200,255,252,255,37,0,21,0, +236,255,221,255,232,255,4,0,32,0,21,0,251,255,18,0,69,0,74,0,48,0,51,0,82,0,98,0,83,0,32,0, +221,255,191,255,228,255,33,0,57,0,37,0,25,0,59,0,122,0,176,0,193,0,159,0,96,0,54,0,45,0,23,0, +223,255,170,255,157,255,191,255,236,255,247,255,223,255,210,255,224,255,245,255,20,0,58,0,46,0,229,255,172,255,171,255, +173,255,153,255,140,255,155,255,194,255,241,255,0,0,233,255,228,255,7,0,47,0,81,0,122,0,142,0,106,0,44,0, +15,0,29,0,35,0,248,255,185,255,175,255,224,255,6,0,4,0,6,0,38,0,83,0,115,0,97,0,26,0,233,255, +9,0,44,0,252,255,177,255,171,255,215,255,251,255,22,0,35,0,21,0,10,0,23,0,26,0,7,0,243,255,207,255, +146,255,137,255,218,255,32,0,11,0,215,255,205,255,212,255,210,255,216,255,220,255,194,255,166,255,174,255,179,255,128,255, +76,255,112,255,204,255,246,255,218,255,189,255,184,255,182,255,204,255,5,0,32,0,237,255,166,255,148,255,167,255,167,255, +156,255,200,255,56,0,145,0,126,0,32,0,210,255,193,255,229,255,19,0,17,0,209,255,143,255,141,255,202,255,25,0, +79,0,97,0,94,0,93,0,108,0,128,0,115,0,61,0,32,0,90,0,163,0,152,0,82,0,40,0,53,0,108,0, +165,0,166,0,116,0,82,0,63,0,30,0,37,0,99,0,123,0,100,0,117,0,140,0,80,0,4,0,11,0,54,0, +78,0,102,0,111,0,74,0,43,0,55,0,67,0,75,0,121,0,182,0,200,0,179,0,136,0,68,0,240,255,165,255, +118,255,97,255,82,255,67,255,91,255,195,255,62,0,98,0,34,0,229,255,234,255,245,255,199,255,143,255,129,255,114,255, +79,255,83,255,129,255,143,255,115,255,100,255,110,255,143,255,195,255,187,255,75,255,247,254,57,255,170,255,167,255,70,255, +18,255,78,255,177,255,212,255,188,255,189,255,223,255,220,255,192,255,210,255,254,255,252,255,195,255,129,255,118,255,190,255, +13,0,20,0,8,0,59,0,124,0,128,0,95,0,59,0,18,0,4,0,32,0,49,0,44,0,78,0,139,0,152,0, +128,0,147,0,201,0,208,0,133,0,32,0,239,255,3,0,51,0,93,0,121,0,132,0,135,0,157,0,200,0,230,0, +219,0,171,0,105,0,43,0,5,0,244,255,224,255,190,255,174,255,222,255,66,0,141,0,146,0,128,0,136,0,156,0, +138,0,67,0,235,255,172,255,132,255,94,255,93,255,168,255,5,0,38,0,48,0,107,0,185,0,205,0,148,0,53,0, +222,255,173,255,150,255,117,255,78,255,79,255,137,255,228,255,63,0,120,0,132,0,119,0,90,0,45,0,13,0,8,0, +248,255,194,255,156,255,183,255,240,255,20,0,31,0,42,0,58,0,56,0,4,0,173,255,117,255,124,255,154,255,182,255, +225,255,10,0,8,0,246,255,244,255,225,255,185,255,184,255,207,255,175,255,103,255,78,255,94,255,108,255,144,255,206,255, +228,255,197,255,179,255,199,255,215,255,186,255,121,255,73,255,99,255,175,255,212,255,181,255,139,255,142,255,194,255,3,0, +34,0,21,0,255,255,240,255,224,255,230,255,32,0,102,0,122,0,105,0,97,0,84,0,33,0,226,255,208,255,234,255, +4,0,10,0,8,0,19,0,62,0,133,0,185,0,207,0,226,0,232,0,189,0,134,0,112,0,83,0,19,0,241,255, +253,255,242,255,198,255,190,255,247,255,97,0,212,0,248,0,172,0,102,0,126,0,154,0,90,0,245,255,201,255,219,255, +236,255,205,255,168,255,207,255,35,0,53,0,13,0,19,0,54,0,9,0,150,255,74,255,76,255,96,255,105,255,141,255, +224,255,41,0,39,0,244,255,207,255,201,255,208,255,204,255,162,255,114,255,141,255,223,255,243,255,199,255,200,255,0,0, +20,0,239,255,203,255,191,255,176,255,151,255,127,255,110,255,92,255,70,255,68,255,114,255,191,255,247,255,250,255,226,255, +227,255,0,0,3,0,220,255,190,255,183,255,160,255,127,255,141,255,196,255,241,255,13,0,46,0,87,0,119,0,114,0, +64,0,18,0,1,0,231,255,187,255,176,255,197,255,209,255,222,255,254,255,11,0,8,0,30,0,41,0,253,255,217,255, +237,255,248,255,218,255,215,255,6,0,48,0,62,0,74,0,93,0,108,0,98,0,45,0,233,255,226,255,24,0,29,0, +175,255,66,255,110,255,18,0,135,0,139,0,106,0,110,0,154,0,200,0,189,0,98,0,4,0,0,0,51,0,53,0, +5,0,252,255,50,0,104,0,138,0,187,0,239,0,233,0,187,0,183,0,212,0,193,0,126,0,84,0,85,0,85,0, +52,0,251,255,218,255,7,0,99,0,138,0,100,0,65,0,87,0,137,0,157,0,109,0,19,0,234,255,20,0,51,0, +252,255,174,255,155,255,185,255,233,255,32,0,50,0,255,255,194,255,197,255,240,255,255,255,240,255,231,255,231,255,238,255, +249,255,229,255,151,255,63,255,36,255,64,255,84,255,65,255,38,255,61,255,146,255,222,255,226,255,200,255,208,255,222,255, +198,255,166,255,161,255,170,255,185,255,205,255,199,255,172,255,173,255,199,255,194,255,168,255,185,255,231,255,222,255,158,255, +140,255,212,255,15,0,240,255,193,255,224,255,31,0,21,0,198,255,154,255,197,255,12,0,23,0,242,255,236,255,17,0, +45,0,61,0,90,0,101,0,75,0,64,0,93,0,110,0,105,0,100,0,76,0,25,0,16,0,69,0,86,0,26,0, +252,255,69,0,144,0,120,0,58,0,61,0,88,0,45,0,216,255,192,255,233,255,4,0,246,255,236,255,12,0,68,0, +116,0,148,0,171,0,164,0,112,0,69,0,74,0,82,0,60,0,50,0,58,0,29,0,233,255,216,255,224,255,223,255, +234,255,5,0,6,0,233,255,206,255,179,255,139,255,121,255,162,255,233,255,253,255,192,255,122,255,123,255,164,255,166,255, +133,255,120,255,131,255,133,255,123,255,130,255,174,255,235,255,8,0,243,255,211,255,195,255,172,255,125,255,79,255,60,255, +56,255,45,255,31,255,49,255,101,255,141,255,134,255,110,255,122,255,187,255,254,255,247,255,181,255,172,255,5,0,80,0, +56,0,7,0,26,0,89,0,128,0,118,0,75,0,39,0,48,0,87,0,108,0,97,0,85,0,95,0,125,0,160,0, +175,0,144,0,88,0,64,0,95,0,122,0,86,0,43,0,71,0,127,0,122,0,73,0,62,0,101,0,146,0,179,0, +186,0,138,0,48,0,245,255,252,255,251,255,182,255,108,255,117,255,174,255,198,255,210,255,22,0,117,0,158,0,141,0, +118,0,103,0,75,0,30,0,2,0,2,0,249,255,201,255,156,255,176,255,235,255,3,0,250,255,9,0,59,0,91,0, +88,0,92,0,122,0,132,0,98,0,64,0,67,0,71,0,36,0,247,255,250,255,38,0,62,0,39,0,6,0,7,0, +34,0,53,0,42,0,10,0,232,255,216,255,221,255,224,255,203,255,167,255,150,255,158,255,167,255,171,255,191,255,238,255, +24,0,31,0,14,0,6,0,13,0,17,0,8,0,254,255,252,255,255,255,249,255,233,255,223,255,227,255,236,255,240,255, +252,255,30,0,61,0,51,0,10,0,254,255,46,0,108,0,112,0,36,0,189,255,142,255,188,255,11,0,29,0,225,255, +168,255,184,255,239,255,255,255,220,255,201,255,248,255,73,0,109,0,66,0,252,255,235,255,21,0,61,0,57,0,25,0, +234,255,159,255,86,255,73,255,116,255,141,255,124,255,132,255,209,255,40,0,74,0,76,0,98,0,127,0,109,0,26,0, +174,255,94,255,65,255,61,255,50,255,36,255,53,255,109,255,174,255,229,255,20,0,61,0,91,0,112,0,120,0,95,0, +34,0,223,255,169,255,123,255,96,255,115,255,157,255,161,255,138,255,165,255,250,255,53,0,57,0,71,0,116,0,115,0, +33,0,214,255,230,255,38,0,74,0,79,0,93,0,117,0,124,0,110,0,92,0,81,0,79,0,77,0,69,0,58,0, +46,0,24,0,251,255,246,255,27,0,63,0,48,0,254,255,227,255,235,255,251,255,17,0,64,0,120,0,153,0,187,0, +253,0,65,1,63,1,251,0,199,0,207,0,203,0,109,0,216,255,115,255,94,255,102,255,100,255,112,255,171,255,244,255, +24,0,55,0,123,0,185,0,183,0,145,0,102,0,20,0,141,255,12,255,199,254,192,254,217,254,247,254,16,255,45,255, +84,255,132,255,185,255,233,255,27,0,71,0,57,0,234,255,190,255,236,255,30,0,31,0,43,0,77,0,58,0,232,255, +152,255,108,255,105,255,150,255,215,255,234,255,179,255,108,255,115,255,206,255,37,0,95,0,178,0,250,0,210,0,82,0, +247,255,239,255,21,0,30,0,198,255,49,255,218,254,239,254,52,255,128,255,198,255,245,255,28,0,76,0,111,0,125,0, +133,0,141,0,171,0,240,0,25,1,228,0,129,0,61,0,28,0,9,0,253,255,233,255,204,255,146,255,28,255,179,254, +200,254,50,255,121,255,173,255,11,0,89,0,96,0,79,0,75,0,71,0,39,0,215,255,103,255,13,255,233,254,244,254, +12,255,253,254,215,254,9,255,164,255,25,0,49,0,67,0,101,0,114,0,130,0,155,0,122,0,32,0,226,255,233,255, +37,0,99,0,99,0,36,0,227,255,191,255,175,255,181,255,192,255,201,255,238,255,32,0,33,0,255,255,248,255,248,255, +235,255,2,0,63,0,99,0,82,0,25,0,205,255,155,255,149,255,146,255,136,255,145,255,166,255,189,255,242,255,67,0, +121,0,122,0,93,0,67,0,56,0,35,0,252,255,237,255,245,255,228,255,221,255,25,0,63,0,253,255,194,255,238,255, +59,0,97,0,88,0,5,0,132,255,76,255,119,255,147,255,111,255,80,255,83,255,86,255,92,255,145,255,231,255,16,0, +243,255,219,255,251,255,41,0,70,0,113,0,164,0,177,0,137,0,52,0,193,255,97,255,72,255,130,255,235,255,54,0, +58,0,63,0,146,0,230,0,206,0,132,0,110,0,118,0,93,0,52,0,23,0,8,0,18,0,51,0,62,0,10,0, +182,255,148,255,211,255,56,0,103,0,91,0,77,0,77,0,73,0,91,0,139,0,155,0,98,0,29,0,10,0,3,0, +226,255,208,255,248,255,50,0,91,0,134,0,182,0,200,0,175,0,137,0,115,0,98,0,87,0,97,0,141,0,193,0, +188,0,101,0,8,0,236,255,242,255,243,255,22,0,91,0,107,0,48,0,253,255,240,255,213,255,181,255,205,255,254,255, +239,255,158,255,101,255,111,255,139,255,144,255,154,255,218,255,58,0,113,0,108,0,108,0,148,0,165,0,82,0,184,255, +65,255,29,255,42,255,57,255,56,255,47,255,66,255,156,255,16,0,54,0,243,255,156,255,109,255,76,255,20,255,214,254, +195,254,254,254,104,255,169,255,159,255,133,255,132,255,116,255,79,255,75,255,99,255,83,255,22,255,249,254,46,255,137,255, +178,255,164,255,181,255,242,255,226,255,87,255,250,254,90,255,39,0,214,0,84,1,189,1,250,1,224,1,108,1,225,0, +172,0,198,0,173,0,47,0,164,255,52,255,241,254,89,255,127,0,95,1,84,1,54,1,204,1,114,2,92,2,218,1, +116,1,11,1,89,0,142,255,37,255,104,255,0,0,57,0,233,255,161,255,198,255,104,0,244,1,82,4,102,5,226,2, +68,254,45,252,86,254,35,1,48,1,32,0,225,0,68,2,38,1,227,253,209,251,169,252,58,255,126,1,16,2,164,0, +84,254,11,253,20,254,1,1,144,3,97,3,180,0,71,254,194,253,249,253,143,253,59,253,60,254,20,0,177,0,169,254, +108,251,145,250,164,253,174,1,227,2,46,1,5,255,251,253,108,254,58,0,84,2,114,3,115,3,154,2,203,0,174,254, +136,253,125,253,20,254,69,255,41,0,32,255,237,252,135,252,9,255,155,2,45,5,209,5,169,4,221,2,96,1,201,255, +198,253,97,252,95,252,251,252,6,253,32,252,13,251,110,251,27,254,174,1,4,4,166,4,121,4,22,4,131,3,175,2, +151,1,74,0,225,254,98,253,2,252,62,251,104,251,93,252,218,253,150,255,4,1,158,1,176,1,40,2,56,3,240,3, +167,3,186,2,161,1,97,0,36,255,59,254,191,253,211,253,117,254,239,254,205,254,202,254,140,255,148,0,102,1,5,2, +52,2,211,1,121,1,118,1,96,1,37,1,5,1,182,0,240,255,253,254,37,254,152,253,203,253,199,254,201,255,56,0, +71,0,96,0,195,0,101,1,219,1,204,1,93,1,225,0,114,0,243,255,69,255,162,254,121,254,215,254,76,255,129,255, +119,255,92,255,129,255,10,0,131,0,118,0,5,0,121,255,7,255,17,255,153,255,248,255,253,255,58,0,192,0,250,0, +174,0,30,0,181,255,223,255,70,0,217,255,125,254,106,253,83,253,214,253,155,254,100,255,220,255,37,0,165,0,37,1, +86,1,111,1,129,1,67,1,194,0,48,0,116,255,161,254,35,254,44,254,159,254,60,255,153,255,172,255,32,0,70,1, +61,2,26,2,56,1,153,0,157,0,192,0,118,0,232,255,147,255,125,255,84,255,17,255,241,254,28,255,139,255,5,0, +71,0,87,0,114,0,170,0,231,0,16,1,3,1,188,0,86,0,209,255,69,255,30,255,106,255,141,255,70,255,36,255, +122,255,231,255,33,0,85,0,173,0,25,1,98,1,85,1,8,1,174,0,69,0,220,255,195,255,239,255,230,255,145,255, +87,255,90,255,105,255,128,255,190,255,15,0,73,0,103,0,108,0,73,0,252,255,193,255,228,255,70,0,94,0,244,255, +123,255,107,255,172,255,232,255,6,0,5,0,211,255,121,255,64,255,81,255,143,255,224,255,103,0,27,1,138,1,84,1, +188,0,87,0,81,0,102,0,95,0,57,0,246,255,158,255,101,255,118,255,169,255,187,255,189,255,239,255,69,0,117,0, +117,0,134,0,194,0,250,0,9,1,241,0,162,0,14,0,122,255,75,255,113,255,109,255,16,255,191,254,221,254,70,255, +168,255,240,255,46,0,80,0,72,0,54,0,40,0,241,255,138,255,74,255,116,255,194,255,193,255,118,255,67,255,76,255, +92,255,76,255,48,255,32,255,37,255,82,255,175,255,17,0,70,0,96,0,139,0,174,0,139,0,52,0,10,0,48,0, +85,0,43,0,205,255,140,255,135,255,162,255,185,255,190,255,189,255,219,255,41,0,123,0,139,0,91,0,66,0,123,0, +217,0,248,0,176,0,48,0,201,255,173,255,197,255,198,255,136,255,72,255,100,255,217,255,66,0,98,0,112,0,167,0, +223,0,207,0,126,0,51,0,7,0,222,255,183,255,188,255,234,255,0,0,226,255,194,255,216,255,13,0,41,0,35,0, +25,0,16,0,243,255,213,255,240,255,72,0,139,0,109,0,21,0,235,255,7,0,22,0,227,255,169,255,177,255,226,255, +240,255,213,255,213,255,10,0,59,0,58,0,41,0,60,0,86,0,48,0,221,255,200,255,17,0,91,0,76,0,2,0, +202,255,186,255,185,255,198,255,236,255,12,0,246,255,198,255,210,255,43,0,110,0,58,0,192,255,149,255,220,255,246,255, +110,255,199,254,185,254,46,255,133,255,124,255,81,255,89,255,162,255,224,255,229,255,223,255,225,255,171,255,90,255,99,255, +172,255,169,255,93,255,67,255,121,255,168,255,149,255,107,255,139,255,3,0,84,0,51,0,247,255,248,255,27,0,51,0, +54,0,38,0,57,0,140,0,180,0,99,0,15,0,43,0,127,0,189,0,218,0,201,0,142,0,109,0,123,0,140,0, +145,0,137,0,104,0,89,0,136,0,170,0,107,0,20,0,25,0,106,0,153,0,122,0,67,0,51,0,72,0,87,0, +86,0,87,0,99,0,110,0,96,0,41,0,242,255,231,255,238,255,237,255,2,0,27,0,252,255,205,255,252,255,132,0, +223,0,191,0,93,0,44,0,75,0,101,0,53,0,224,255,150,255,99,255,98,255,140,255,159,255,156,255,196,255,245,255, +247,255,11,0,86,0,132,0,112,0,73,0,8,0,174,255,124,255,100,255,40,255,245,254,12,255,74,255,149,255,225,255, +236,255,199,255,243,255,87,0,68,0,186,255,110,255,156,255,210,255,185,255,116,255,113,255,200,255,0,0,213,255,177,255, +204,255,208,255,172,255,172,255,186,255,158,255,148,255,196,255,240,255,247,255,232,255,195,255,175,255,228,255,24,0,225,255, +132,255,148,255,13,0,106,0,95,0,20,0,225,255,3,0,89,0,138,0,106,0,32,0,238,255,234,255,234,255,195,255, +140,255,125,255,169,255,227,255,250,255,227,255,193,255,192,255,231,255,22,0,39,0,21,0,251,255,242,255,253,255,16,0, +23,0,10,0,12,0,45,0,47,0,231,255,181,255,239,255,79,0,104,0,59,0,249,255,202,255,227,255,63,0,132,0, +135,0,111,0,85,0,68,0,87,0,105,0,66,0,33,0,89,0,152,0,104,0,11,0,16,0,115,0,172,0,118,0, +30,0,4,0,20,0,18,0,28,0,82,0,113,0,76,0,50,0,67,0,49,0,236,255,207,255,250,255,55,0,93,0, +78,0,0,0,188,255,227,255,67,0,83,0,4,0,193,255,197,255,231,255,221,255,155,255,114,255,170,255,231,255,155,255, +17,255,7,255,111,255,174,255,188,255,241,255,41,0,26,0,226,255,181,255,138,255,90,255,40,255,251,254,252,254,66,255, +141,255,149,255,137,255,205,255,112,0,254,0,249,0,133,0,79,0,128,0,129,0,12,0,163,255,162,255,199,255,201,255, +185,255,203,255,10,0,54,0,32,0,9,0,66,0,128,0,87,0,13,0,26,0,87,0,85,0,14,0,211,255,223,255, +32,0,74,0,41,0,241,255,244,255,32,0,37,0,9,0,43,0,142,0,190,0,145,0,102,0,125,0,169,0,183,0, +166,0,132,0,117,0,138,0,139,0,90,0,64,0,100,0,124,0,111,0,116,0,134,0,139,0,157,0,186,0,191,0, +188,0,169,0,78,0,225,255,219,255,26,0,38,0,9,0,8,0,16,0,6,0,247,255,233,255,227,255,242,255,248,255, +212,255,169,255,148,255,141,255,164,255,221,255,14,0,30,0,16,0,220,255,152,255,131,255,140,255,110,255,61,255,49,255, +44,255,5,255,235,254,26,255,133,255,229,255,247,255,207,255,196,255,223,255,211,255,152,255,125,255,153,255,172,255,150,255, +130,255,145,255,168,255,181,255,218,255,16,0,7,0,196,255,182,255,234,255,7,0,25,0,79,0,99,0,44,0,7,0, +32,0,41,0,5,0,216,255,173,255,144,255,149,255,152,255,131,255,139,255,216,255,62,0,114,0,86,0,21,0,255,255, +25,0,26,0,241,255,214,255,225,255,252,255,9,0,2,0,25,0,106,0,131,0,22,0,188,255,244,255,46,0,5,0, +254,255,69,0,72,0,254,255,250,255,50,0,45,0,253,255,245,255,253,255,234,255,214,255,212,255,200,255,185,255,200,255, +230,255,229,255,211,255,218,255,248,255,21,0,43,0,33,0,233,255,188,255,188,255,181,255,165,255,209,255,26,0,43,0, +38,0,62,0,65,0,40,0,64,0,107,0,62,0,211,255,145,255,135,255,125,255,88,255,59,255,98,255,181,255,222,255, +211,255,214,255,229,255,214,255,196,255,182,255,128,255,69,255,86,255,142,255,148,255,123,255,154,255,4,0,105,0,114,0, +81,0,135,0,233,0,210,0,86,0,18,0,8,0,229,255,190,255,190,255,222,255,51,0,159,0,189,0,174,0,245,0, +112,1,162,1,136,1,66,1,210,0,124,0,78,0,215,255,57,255,46,255,153,255,174,255,116,255,118,255,170,255,209,255, +0,0,42,0,37,0,7,0,226,255,161,255,125,255,167,255,215,255,217,255,216,255,229,255,235,255,249,255,248,255,182,255, +128,255,190,255,12,0,225,255,144,255,178,255,35,0,98,0,60,0,217,255,137,255,143,255,198,255,209,255,181,255,187,255, +219,255,225,255,233,255,33,0,102,0,132,0,125,0,103,0,84,0,81,0,66,0,255,255,183,255,204,255,52,0,141,0, +188,0,226,0,246,0,238,0,251,0,24,1,240,0,115,0,9,0,236,255,234,255,223,255,234,255,24,0,68,0,71,0, +43,0,46,0,110,0,147,0,68,0,209,255,193,255,241,255,241,255,198,255,164,255,137,255,143,255,212,255,18,0,19,0, +24,0,33,0,205,255,85,255,92,255,183,255,180,255,86,255,43,255,74,255,118,255,163,255,200,255,190,255,134,255,94,255, +123,255,194,255,220,255,167,255,106,255,113,255,164,255,210,255,245,255,19,0,29,0,25,0,23,0,3,0,199,255,149,255, +170,255,216,255,180,255,69,255,3,255,34,255,116,255,202,255,14,0,37,0,51,0,110,0,149,0,83,0,248,255,251,255, +49,0,73,0,80,0,70,0,17,0,247,255,74,0,183,0,191,0,123,0,80,0,83,0,88,0,59,0,248,255,189,255, +186,255,238,255,61,0,118,0,112,0,76,0,84,0,121,0,117,0,87,0,97,0,128,0,121,0,65,0,234,255,165,255, +191,255,42,0,104,0,83,0,88,0,162,0,190,0,100,0,240,255,208,255,214,255,163,255,98,255,132,255,227,255,247,255, +214,255,6,0,126,0,192,0,176,0,115,0,11,0,156,255,120,255,134,255,116,255,91,255,139,255,233,255,39,0,57,0, +59,0,60,0,70,0,74,0,37,0,233,255,209,255,236,255,14,0,21,0,1,0,244,255,11,0,28,0,219,255,112,255, +91,255,168,255,231,255,5,0,71,0,134,0,92,0,250,255,226,255,24,0,59,0,26,0,209,255,164,255,206,255,26,0, +21,0,220,255,255,255,124,0,164,0,60,0,204,255,193,255,239,255,3,0,219,255,133,255,58,255,62,255,138,255,204,255, +213,255,211,255,230,255,221,255,167,255,163,255,255,255,68,0,19,0,215,255,250,255,35,0,252,255,229,255,26,0,42,0, +236,255,207,255,249,255,29,0,61,0,133,0,182,0,157,0,136,0,160,0,136,0,25,0,186,255,193,255,24,0,117,0, +143,0,96,0,54,0,72,0,105,0,124,0,152,0,150,0,70,0,253,255,14,0,25,0,204,255,169,255,24,0,154,0, +163,0,110,0,74,0,31,0,237,255,247,255,46,0,46,0,232,255,173,255,145,255,92,255,20,255,34,255,152,255,236,255, +196,255,142,255,193,255,7,0,233,255,179,255,205,255,223,255,128,255,14,255,16,255,86,255,118,255,116,255,144,255,227,255, +100,0,219,0,232,0,122,0,252,255,184,255,137,255,100,255,150,255,34,0,134,0,119,0,59,0,26,0,15,0,31,0, +90,0,134,0,106,0,69,0,93,0,101,0,18,0,202,255,245,255,61,0,33,0,208,255,183,255,212,255,233,255,236,255, +213,255,150,255,112,255,168,255,245,255,223,255,154,255,176,255,9,0,32,0,233,255,188,255,155,255,88,255,24,255,22,255, +54,255,83,255,124,255,167,255,165,255,147,255,187,255,3,0,23,0,9,0,18,0,2,0,179,255,140,255,216,255,21,0, +209,255,134,255,189,255,22,0,13,0,245,255,55,0,114,0,64,0,18,0,87,0,145,0,56,0,203,255,7,0,168,0, +216,0,117,0,28,0,44,0,109,0,126,0,70,0,254,255,250,255,66,0,111,0,62,0,17,0,102,0,245,0,247,0, +83,0,211,255,248,255,67,0,23,0,169,255,146,255,211,255,241,255,211,255,215,255,26,0,61,0,19,0,235,255,11,0, +53,0,10,0,164,255,123,255,194,255,32,0,38,0,218,255,176,255,239,255,71,0,65,0,231,255,181,255,225,255,21,0, +3,0,210,255,214,255,6,0,30,0,18,0,30,0,85,0,130,0,124,0,108,0,122,0,124,0,47,0,175,255,98,255, +116,255,174,255,199,255,193,255,206,255,4,0,56,0,39,0,218,255,184,255,247,255,42,0,220,255,92,255,82,255,177,255, +216,255,168,255,147,255,176,255,162,255,111,255,115,255,161,255,164,255,141,255,167,255,217,255,219,255,174,255,128,255,108,255, +130,255,178,255,204,255,194,255,201,255,253,255,45,0,35,0,242,255,212,255,220,255,226,255,211,255,235,255,84,0,175,0, +145,0,56,0,50,0,127,0,190,0,197,0,141,0,31,0,214,255,0,0,77,0,87,0,89,0,142,0,160,0,103,0, +76,0,112,0,124,0,107,0,115,0,110,0,68,0,67,0,113,0,119,0,99,0,127,0,131,0,36,0,216,255,0,0, +51,0,40,0,47,0,98,0,110,0,87,0,83,0,68,0,22,0,2,0,16,0,254,255,222,255,230,255,238,255,187,255, +118,255,100,255,160,255,6,0,39,0,199,255,128,255,234,255,113,0,68,0,210,255,212,255,231,255,124,255,13,255,30,255, +96,255,134,255,190,255,4,0,48,0,86,0,99,0,22,0,192,255,220,255,6,0,188,255,135,255,230,255,38,0,176,255, +58,255,115,255,234,255,15,0,19,0,65,0,113,0,100,0,18,0,182,255,165,255,230,255,33,0,37,0,30,0,16,0, +218,255,175,255,202,255,249,255,11,0,41,0,78,0,37,0,194,255,154,255,186,255,189,255,125,255,54,255,53,255,136,255, +199,255,136,255,72,255,225,255,224,0,212,0,204,255,151,255,218,0,226,1,74,1,15,0,213,255,142,0,249,0,181,0, +137,0,216,0,237,0,81,0,217,255,108,0,108,1,128,1,168,0,42,0,141,0,236,0,146,0,255,255,235,255,38,0, +29,0,227,255,233,255,33,0,31,0,227,255,198,255,207,255,193,255,164,255,156,255,140,255,96,255,102,255,192,255,7,0, +219,255,106,255,18,255,244,254,40,255,197,255,107,0,90,0,118,255,170,254,199,254,110,255,174,255,96,255,45,255,101,255, +175,255,186,255,164,255,159,255,181,255,209,255,201,255,145,255,108,255,154,255,214,255,187,255,121,255,158,255,48,0,153,0, +123,0,20,0,201,255,187,255,210,255,2,0,67,0,101,0,64,0,16,0,53,0,156,0,193,0,114,0,18,0,249,255, +15,0,22,0,4,0,232,255,211,255,231,255,54,0,141,0,161,0,103,0,32,0,250,255,234,255,219,255,220,255,244,255, +5,0,252,255,247,255,28,0,87,0,104,0,61,0,24,0,51,0,117,0,150,0,118,0,68,0,64,0,92,0,71,0, +229,255,147,255,164,255,240,255,46,0,90,0,130,0,137,0,90,0,31,0,24,0,69,0,94,0,42,0,213,255,173,255, +182,255,193,255,209,255,6,0,62,0,58,0,2,0,211,255,217,255,7,0,18,0,208,255,147,255,202,255,62,0,79,0, +233,255,150,255,174,255,241,255,241,255,170,255,128,255,172,255,224,255,221,255,243,255,106,0,210,0,160,0,12,0,186,255, +226,255,44,0,39,0,204,255,149,255,218,255,70,0,93,0,66,0,85,0,131,0,130,0,83,0,47,0,52,0,65,0, +31,0,222,255,217,255,27,0,53,0,0,0,244,255,67,0,126,0,81,0,5,0,254,255,63,0,112,0,69,0,240,255, +244,255,70,0,72,0,203,255,97,255,117,255,201,255,253,255,0,0,2,0,43,0,80,0,34,0,198,255,191,255,12,0, +33,0,217,255,157,255,170,255,206,255,197,255,131,255,78,255,127,255,240,255,25,0,228,255,188,255,206,255,224,255,212,255, +189,255,177,255,198,255,253,255,29,0,7,0,228,255,199,255,154,255,120,255,138,255,168,255,165,255,171,255,215,255,1,0, +10,0,3,0,252,255,10,0,59,0,108,0,120,0,108,0,81,0,18,0,190,255,115,255,41,255,247,254,45,255,182,255, +2,0,227,255,212,255,39,0,149,0,188,0,146,0,89,0,67,0,44,0,218,255,126,255,103,255,120,255,88,255,20,255, +252,254,41,255,119,255,184,255,191,255,157,255,165,255,214,255,192,255,69,255,238,254,48,255,217,255,91,0,108,0,49,0, +246,255,207,255,170,255,151,255,165,255,166,255,125,255,106,255,149,255,197,255,222,255,19,0,94,0,102,0,43,0,36,0, +148,0,34,1,76,1,246,0,115,0,17,0,223,255,222,255,18,0,72,0,67,0,45,0,81,0,123,0,55,0,164,255, +94,255,164,255,38,0,137,0,177,0,141,0,19,0,135,255,103,255,227,255,146,0,240,0,252,0,11,1,59,1,78,1, +3,1,81,0,122,255,236,254,216,254,231,254,163,254,45,254,35,254,210,254,206,255,147,0,24,1,133,1,168,1,41,1, +47,0,65,255,178,254,128,254,163,254,8,255,124,255,243,255,158,0,99,1,172,1,48,1,123,0,12,0,33,255,115,252, +95,248,158,245,27,247,50,253,50,5,77,11,214,12,158,9,224,3,186,254,46,252,111,252,149,254,107,1,190,3,194,4, +107,4,47,3,161,1,31,0,144,254,138,252,63,250,186,248,183,248,223,249,221,251,105,255,31,5,171,11,9,16,221,15, +92,11,201,4,110,254,140,249,246,246,50,247,78,249,207,250,23,250,95,248,72,248,234,250,38,255,110,3,23,7,175,9, +30,10,122,7,169,2,37,254,239,251,84,252,67,254,255,255,246,255,40,254,95,252,60,252,166,253,163,255,109,1,48,2, +34,1,166,254,59,252,29,251,228,251,230,254,143,3,191,7,47,9,140,7,151,4,77,2,67,1,175,0,164,255,14,254, +85,252,172,250,59,249,154,248,116,249,231,251,118,255,61,3,13,6,241,6,215,5,182,3,229,1,16,1,163,0,180,255, +116,254,192,253,135,253,237,252,21,252,16,252,35,253,120,254,93,255,173,255,111,255,17,255,90,255,85,0,46,1,109,1, +108,1,115,1,92,1,5,1,124,0,213,255,51,255,176,254,47,254,154,253,19,253,191,252,172,252,6,253,248,253,70,255, +124,0,107,1,71,2,68,3,25,4,21,4,249,2,124,1,86,0,90,255,70,254,169,253,237,253,137,254,29,255,28,0, +137,1,103,2,55,2,159,1,61,1,252,0,180,0,92,0,211,255,41,255,189,254,192,254,41,255,36,0,184,1,55,3, +219,3,144,3,144,2,246,0,36,255,215,253,125,253,242,253,240,254,30,0,223,0,214,0,115,0,117,0,240,0,72,1, +27,1,156,0,254,255,16,255,224,253,55,253,200,253,56,255,147,0,104,1,209,1,192,1,20,1,51,0,207,255,9,0, +73,0,1,0,82,255,180,254,89,254,41,254,61,254,214,254,220,255,214,0,95,1,101,1,23,1,216,0,7,1,152,1, +12,2,240,1,51,1,14,0,232,254,43,254,254,253,74,254,241,254,178,255,30,0,16,0,228,255,216,255,188,255,140,255, +181,255,82,0,216,0,214,0,132,0,92,0,151,0,15,1,102,1,90,1,19,1,189,0,21,0,217,254,130,253,207,252, +195,252,233,252,88,253,117,254,244,255,2,1,104,1,174,1,34,2,106,2,31,2,95,1,170,0,58,0,209,255,57,255, +183,254,173,254,241,254,30,255,59,255,120,255,156,255,105,255,63,255,140,255,6,0,47,0,51,0,126,0,246,0,73,1, +148,1,14,2,120,2,110,2,248,1,108,1,239,0,96,0,176,255,32,255,2,255,57,255,72,255,1,255,220,254,66,255, +247,255,141,0,251,0,93,1,147,1,127,1,74,1,31,1,246,0,200,0,144,0,46,0,153,255,16,255,199,254,165,254, +153,254,208,254,77,255,160,255,110,255,241,254,160,254,164,254,205,254,243,254,25,255,84,255,148,255,177,255,181,255,211,255, +22,0,58,0,11,0,159,255,7,255,46,254,54,253,134,252,92,252,142,252,230,252,99,253,254,253,146,254,20,255,160,255, +55,0,172,0,218,0,198,0,131,0,24,0,147,255,31,255,251,254,68,255,221,255,146,0,71,1,247,1,148,2,5,3, +73,3,107,3,99,3,33,3,163,2,255,1,83,1,194,0,107,0,94,0,141,0,220,0,35,1,64,1,39,1,230,0, +155,0,99,0,74,0,77,0,94,0,112,0,116,0,97,0,58,0,15,0,248,255,7,0,48,0,86,0,105,0,117,0, +143,0,182,0,206,0,192,0,137,0,39,0,145,255,203,254,255,253,113,253,80,253,155,253,56,254,8,255,222,255,121,0, +161,0,91,0,220,255,84,255,201,254,61,254,210,253,179,253,219,253,30,254,95,254,169,254,10,255,100,255,138,255,123,255, +96,255,89,255,100,255,127,255,190,255,38,0,150,0,222,0,250,0,12,1,42,1,72,1,95,1,126,1,166,1,174,1, +108,1,241,0,124,0,51,0,13,0,9,0,73,0,219,0,125,1,205,1,176,1,90,1,249,0,125,0,209,255,31,255, +183,254,179,254,232,254,50,255,160,255,56,0,206,0,33,1,40,1,5,1,196,0,73,0,153,255,255,254,196,254,225,254, +15,255,50,255,115,255,254,255,172,0,40,1,68,1,31,1,236,0,178,0,79,0,174,255,237,254,75,254,247,253,233,253, +240,253,234,253,239,253,42,254,161,254,38,255,144,255,226,255,53,0,131,0,174,0,179,0,168,0,141,0,81,0,15,0, +15,0,112,0,242,0,52,1,56,1,104,1,246,1,118,2,99,2,218,1,113,1,111,1,116,1,0,1,42,0,151,255, +158,255,216,255,217,255,228,255,100,0,47,1,199,1,249,1,225,1,146,1,254,0,18,0,14,255,109,254,75,254,52,254, +233,253,227,253,143,254,141,255,25,0,225,255,98,255,81,255,160,255,126,255,159,254,204,253,184,253,8,254,16,254,193,253, +135,253,175,253,36,254,140,254,192,254,243,254,57,255,81,255,56,255,65,255,116,255,133,255,120,255,151,255,247,255,107,0, +169,0,142,0,94,0,119,0,163,0,109,0,252,255,202,255,213,255,221,255,234,255,10,0,35,0,73,0,154,0,1,1, +108,1,222,1,66,2,139,2,202,2,200,2,54,2,75,1,124,0,215,255,87,255,61,255,129,255,195,255,1,0,113,0, +240,0,73,1,133,1,132,1,12,1,94,0,229,255,148,255,56,255,226,254,176,254,172,254,228,254,66,255,158,255,0,0, +87,0,75,0,219,255,135,255,131,255,133,255,114,255,86,255,10,255,162,254,154,254,40,255,249,255,177,0,40,1,98,1, +141,1,162,1,78,1,161,0,46,0,37,0,39,0,33,0,60,0,73,0,57,0,115,0,7,1,103,1,78,1,16,1, +230,0,202,0,174,0,113,0,6,0,184,255,202,255,19,0,102,0,203,0,44,1,83,1,67,1,24,1,203,0,108,0, +25,0,185,255,47,255,160,254,64,254,28,254,56,254,143,254,252,254,94,255,175,255,230,255,11,0,38,0,1,0,110,255, +205,254,148,254,148,254,98,254,27,254,10,254,38,254,83,254,165,254,37,255,187,255,90,0,212,0,238,0,181,0,117,0, +65,0,240,255,139,255,67,255,61,255,124,255,232,255,90,0,213,0,110,1,234,1,224,1,112,1,57,1,116,1,156,1, +55,1,125,0,242,255,188,255,187,255,241,255,110,0,5,1,116,1,186,1,0,2,70,2,77,2,226,1,30,1,100,0, +251,255,197,255,123,255,37,255,9,255,41,255,65,255,65,255,109,255,224,255,56,0,19,0,158,255,79,255,61,255,41,255, +252,254,239,254,41,255,130,255,160,255,94,255,254,254,221,254,246,254,255,254,233,254,220,254,224,254,227,254,237,254,24,255, +107,255,198,255,209,255,90,255,209,254,228,254,127,255,239,255,252,255,9,0,77,0,145,0,155,0,98,0,16,0,236,255, +9,0,33,0,14,0,13,0,69,0,119,0,106,0,79,0,132,0,6,1,84,1,24,1,184,0,174,0,179,0,69,0, +178,255,155,255,210,255,184,255,96,255,90,255,192,255,16,0,237,255,142,255,104,255,133,255,127,255,48,255,237,254,233,254, +240,254,236,254,7,255,83,255,174,255,244,255,253,255,197,255,144,255,130,255,90,255,254,254,202,254,230,254,242,254,178,254, +128,254,199,254,104,255,244,255,58,0,116,0,209,0,18,1,245,0,180,0,147,0,105,0,11,0,194,255,199,255,231,255, +1,0,90,0,21,1,205,1,15,2,212,1,115,1,55,1,16,1,213,0,141,0,100,0,84,0,65,0,71,0,160,0, +66,1,192,1,181,1,72,1,10,1,43,1,53,1,193,0,27,0,210,255,235,255,229,255,115,255,243,254,10,255,198,255, +119,0,164,0,157,0,208,0,0,1,165,0,196,255,237,254,139,254,133,254,130,254,111,254,143,254,248,254,100,255,175,255, +13,0,152,0,246,0,195,0,26,0,117,255,24,255,226,254,176,254,182,254,38,255,181,255,244,255,234,255,248,255,79,0, +187,0,215,0,128,0,27,0,27,0,78,0,71,0,44,0,98,0,176,0,171,0,116,0,112,0,162,0,216,0,251,0, +11,1,13,1,240,0,124,0,184,255,54,255,112,255,26,0,145,0,163,0,129,0,93,0,87,0,108,0,116,0,89,0, +34,0,213,255,123,255,55,255,28,255,37,255,82,255,136,255,117,255,232,254,249,253,251,252,139,252,95,253,131,255,238,1, +87,3,54,3,236,1,100,0,118,255,90,255,206,255,158,0,124,1,189,1,7,1,218,255,228,254,95,254,84,254,153,254, +169,254,52,254,177,253,187,253,91,254,115,255,44,1,102,3,90,5,20,6,46,5,33,3,2,1,173,255,49,255,5,255, +176,254,15,254,78,253,177,252,103,252,177,252,244,253,36,0,102,2,206,3,58,4,252,3,49,3,246,1,207,0,69,0, +48,0,225,255,251,254,245,253,133,253,200,253,97,254,30,255,224,255,59,0,238,255,105,255,46,255,48,255,77,255,198,255, +177,0,150,1,242,1,182,1,25,1,109,0,254,255,213,255,162,255,25,255,61,254,67,253,105,252,242,251,25,252,240,252, +88,254,9,0,182,1,13,3,184,3,132,3,171,2,163,1,152,0,107,255,65,254,138,253,101,253,126,253,164,253,15,254, +219,254,185,255,81,0,178,0,26,1,127,1,165,1,144,1,142,1,185,1,212,1,178,1,115,1,54,1,212,0,45,0, +125,255,44,255,80,255,114,255,0,255,14,254,105,253,167,253,133,254,121,255,120,0,171,1,199,2,64,3,239,2,55,2, +126,1,206,0,255,255,16,255,59,254,178,253,133,253,187,253,89,254,80,255,111,0,91,1,144,1,220,0,204,255,45,255, +45,255,101,255,153,255,213,255,17,0,44,0,38,0,23,0,3,0,229,255,162,255,28,255,92,254,171,253,107,253,215,253, +214,254,15,0,55,1,47,2,201,2,202,2,83,2,208,1,126,1,68,1,3,1,177,0,75,0,216,255,129,255,125,255, +239,255,191,0,156,1,67,2,148,2,114,2,219,1,38,1,177,0,110,0,42,0,239,255,184,255,93,255,251,254,224,254, +255,254,20,255,36,255,78,255,110,255,90,255,28,255,228,254,224,254,32,255,107,255,140,255,158,255,178,255,144,255,53,255, +25,255,127,255,252,255,11,0,165,255,43,255,217,254,149,254,55,254,254,253,72,254,238,254,112,255,161,255,176,255,193,255, +240,255,74,0,154,0,182,0,202,0,222,0,166,0,38,0,215,255,244,255,64,0,133,0,171,0,161,0,136,0,132,0, +110,0,66,0,85,0,188,0,31,1,100,1,169,1,193,1,120,1,10,1,181,0,108,0,63,0,76,0,69,0,207,255, +42,255,219,254,245,254,50,255,106,255,175,255,25,0,129,0,159,0,135,0,138,0,142,0,57,0,181,255,101,255,44,255, +209,254,151,254,200,254,47,255,104,255,63,255,194,254,88,254,88,254,138,254,159,254,213,254,99,255,228,255,248,255,207,255, +191,255,232,255,78,0,191,0,246,0,0,1,252,0,170,0,242,255,99,255,118,255,214,255,255,255,242,255,228,255,233,255, +12,0,69,0,101,0,95,0,99,0,133,0,153,0,114,0,26,0,222,255,245,255,39,0,19,0,205,255,190,255,236,255, +0,0,216,255,156,255,127,255,158,255,223,255,247,255,210,255,187,255,208,255,218,255,214,255,9,0,114,0,180,0,158,0, +87,0,17,0,202,255,101,255,10,255,38,255,187,255,39,0,253,255,165,255,151,255,159,255,113,255,76,255,124,255,210,255, +255,255,8,0,28,0,63,0,91,0,117,0,159,0,204,0,220,0,194,0,139,0,73,0,19,0,7,0,34,0,53,0, +51,0,72,0,130,0,190,0,234,0,41,1,127,1,182,1,171,1,135,1,116,1,82,1,243,0,133,0,74,0,40,0, +227,255,165,255,179,255,250,255,65,0,132,0,191,0,205,0,172,0,137,0,124,0,98,0,19,0,169,255,119,255,155,255, +199,255,177,255,129,255,113,255,111,255,84,255,29,255,200,254,101,254,53,254,93,254,188,254,53,255,220,255,154,0,15,1, +243,0,113,0,254,255,232,255,5,0,248,255,180,255,132,255,134,255,145,255,154,255,169,255,176,255,169,255,164,255,140,255, +82,255,55,255,133,255,50,0,28,1,15,2,166,2,166,2,75,2,203,1,25,1,84,0,202,255,123,255,51,255,234,254, +196,254,229,254,108,255,57,0,243,0,121,1,251,1,128,2,183,2,120,2,249,1,113,1,217,0,36,0,110,255,231,254, +163,254,154,254,204,254,52,255,163,255,206,255,165,255,117,255,132,255,180,255,194,255,159,255,109,255,89,255,117,255,147,255, +138,255,137,255,184,255,199,255,112,255,255,254,192,254,142,254,73,254,28,254,35,254,83,254,177,254,67,255,240,255,152,0, +14,1,42,1,253,0,191,0,115,0,254,255,133,255,70,255,49,255,7,255,210,254,217,254,45,255,169,255,62,0,228,0, +105,1,159,1,150,1,112,1,52,1,229,0,154,0,111,0,101,0,91,0,67,0,60,0,86,0,124,0,146,0,136,0, +77,0,252,255,192,255,135,255,51,255,255,254,47,255,161,255,8,0,65,0,82,0,95,0,126,0,126,0,36,0,154,255, +59,255,18,255,230,254,165,254,111,254,90,254,102,254,152,254,238,254,72,255,162,255,39,0,197,0,9,1,212,0,140,0, +95,0,4,0,99,255,203,254,131,254,142,254,191,254,234,254,37,255,140,255,239,255,23,0,48,0,125,0,221,0,5,1, +236,0,200,0,187,0,172,0,114,0,33,0,240,255,236,255,251,255,9,0,21,0,45,0,93,0,133,0,135,0,124,0, +136,0,137,0,80,0,252,255,232,255,59,0,168,0,207,0,182,0,156,0,124,0,51,0,214,255,122,255,26,255,203,254, +178,254,196,254,233,254,34,255,104,255,173,255,252,255,78,0,124,0,124,0,96,0,60,0,33,0,10,0,217,255,155,255, +129,255,134,255,121,255,104,255,124,255,160,255,188,255,3,0,142,0,14,1,63,1,46,1,238,0,143,0,69,0,56,0, +75,0,95,0,113,0,104,0,60,0,49,0,126,0,236,0,30,1,253,0,184,0,132,0,95,0,36,0,235,255,3,0, +90,0,136,0,114,0,110,0,160,0,182,0,100,0,231,255,189,255,223,255,184,255,30,255,186,254,11,255,171,255,246,255, +225,255,212,255,240,255,237,255,171,255,114,255,132,255,187,255,206,255,167,255,113,255,105,255,140,255,143,255,116,255,158,255, +20,0,77,0,248,255,108,255,54,255,125,255,216,255,220,255,187,255,210,255,238,255,203,255,185,255,2,0,88,0,110,0, +85,0,44,0,6,0,1,0,22,0,37,0,32,0,19,0,30,0,83,0,127,0,102,0,55,0,66,0,107,0,100,0, +62,0,69,0,126,0,163,0,141,0,97,0,69,0,41,0,250,255,206,255,178,255,175,255,206,255,234,255,219,255,206,255, +252,255,67,0,100,0,77,0,14,0,210,255,187,255,166,255,116,255,83,255,104,255,150,255,211,255,23,0,48,0,18,0, +248,255,240,255,225,255,218,255,235,255,251,255,240,255,198,255,140,255,103,255,112,255,128,255,118,255,112,255,140,255,183,255, +222,255,254,255,20,0,33,0,51,0,63,0,44,0,3,0,238,255,243,255,249,255,9,0,33,0,0,0,169,255,155,255, +255,255,86,0,91,0,84,0,98,0,97,0,78,0,65,0,73,0,108,0,140,0,130,0,114,0,116,0,76,0,249,255, +214,255,246,255,18,0,26,0,35,0,25,0,0,0,245,255,239,255,219,255,204,255,221,255,7,0,29,0,1,0,216,255, +216,255,235,255,230,255,224,255,236,255,229,255,212,255,242,255,56,0,90,0,61,0,16,0,244,255,206,255,127,255,66,255, +123,255,32,0,180,0,212,0,141,0,54,0,21,0,16,0,239,255,206,255,230,255,13,0,0,0,219,255,204,255,201,255, +204,255,217,255,212,255,195,255,216,255,7,0,5,0,222,255,6,0,152,0,3,1,210,0,77,0,27,0,106,0,204,0, +195,0,87,0,26,0,97,0,195,0,174,0,49,0,219,255,9,0,130,0,175,0,80,0,210,255,158,255,134,255,83,255, +59,255,87,255,97,255,73,255,84,255,182,255,93,0,248,0,49,1,19,1,0,1,8,1,195,0,10,0,70,255,242,254, +9,255,30,255,236,254,175,254,207,254,83,255,239,255,104,0,171,0,186,0,178,0,179,0,178,0,146,0,91,0,41,0, +252,255,204,255,181,255,201,255,233,255,253,255,9,0,22,0,33,0,29,0,234,255,151,255,116,255,148,255,160,255,115,255, +85,255,126,255,218,255,63,0,138,0,163,0,155,0,136,0,95,0,20,0,186,255,127,255,115,255,102,255,66,255,66,255, +115,255,118,255,69,255,89,255,196,255,9,0,238,255,188,255,194,255,246,255,251,255,168,255,114,255,187,255,22,0,12,0, +224,255,228,255,12,0,61,0,86,0,50,0,14,0,43,0,59,0,247,255,168,255,154,255,174,255,180,255,151,255,115,255, +141,255,215,255,235,255,200,255,200,255,233,255,242,255,243,255,8,0,34,0,69,0,112,0,121,0,82,0,21,0,213,255, +168,255,158,255,150,255,124,255,131,255,199,255,14,0,31,0,15,0,23,0,70,0,114,0,115,0,95,0,86,0,82,0, +67,0,47,0,32,0,30,0,44,0,53,0,50,0,41,0,18,0,232,255,210,255,231,255,14,0,47,0,57,0,21,0, +231,255,250,255,68,0,100,0,65,0,38,0,62,0,92,0,81,0,50,0,27,0,12,0,20,0,61,0,87,0,56,0, +24,0,55,0,111,0,116,0,63,0,251,255,200,255,178,255,186,255,217,255,6,0,49,0,95,0,160,0,223,0,252,0, +249,0,222,0,159,0,95,0,73,0,56,0,254,255,184,255,155,255,176,255,223,255,248,255,223,255,200,255,236,255,44,0, +73,0,53,0,11,0,244,255,3,0,5,0,213,255,168,255,181,255,222,255,250,255,20,0,55,0,87,0,101,0,94,0, +86,0,88,0,65,0,252,255,178,255,143,255,136,255,127,255,116,255,129,255,189,255,8,0,34,0,17,0,16,0,37,0, +35,0,0,0,205,255,162,255,159,255,192,255,201,255,177,255,190,255,1,0,37,0,5,0,220,255,207,255,188,255,148,255, +129,255,138,255,131,255,99,255,94,255,137,255,187,255,220,255,7,0,75,0,129,0,141,0,130,0,114,0,79,0,24,0, +233,255,199,255,159,255,122,255,112,255,134,255,184,255,244,255,25,0,34,0,25,0,250,255,214,255,225,255,27,0,73,0, +95,0,118,0,131,0,115,0,86,0,61,0,45,0,49,0,66,0,61,0,20,0,220,255,183,255,197,255,232,255,224,255, +186,255,189,255,217,255,188,255,124,255,117,255,182,255,239,255,240,255,225,255,251,255,37,0,42,0,28,0,31,0,29,0, +250,255,219,255,207,255,181,255,147,255,152,255,191,255,209,255,198,255,203,255,227,255,242,255,2,0,34,0,44,0,255,255, +195,255,177,255,191,255,208,255,218,255,221,255,223,255,234,255,246,255,252,255,0,0,249,255,249,255,44,0,109,0,97,0, +33,0,30,0,81,0,96,0,63,0,30,0,21,0,34,0,54,0,71,0,87,0,88,0,55,0,24,0,32,0,46,0, +40,0,30,0,255,255,209,255,207,255,233,255,215,255,197,255,8,0,90,0,87,0,31,0,247,255,220,255,181,255,131,255, +117,255,173,255,226,255,185,255,115,255,138,255,225,255,25,0,35,0,37,0,60,0,112,0,130,0,57,0,223,255,206,255, +232,255,243,255,232,255,216,255,224,255,20,0,59,0,42,0,35,0,71,0,72,0,11,0,227,255,241,255,13,0,37,0, +57,0,58,0,43,0,35,0,40,0,48,0,34,0,232,255,174,255,179,255,203,255,161,255,98,255,129,255,234,255,41,0, +38,0,34,0,44,0,36,0,12,0,244,255,217,255,185,255,170,255,185,255,221,255,14,0,72,0,114,0,104,0,55,0, +31,0,48,0,36,0,228,255,185,255,207,255,233,255,220,255,206,255,225,255,3,0,13,0,245,255,208,255,197,255,219,255, +251,255,31,0,66,0,68,0,22,0,225,255,203,255,201,255,196,255,202,255,237,255,13,0,249,255,196,255,169,255,172,255, +178,255,198,255,234,255,252,255,3,0,39,0,80,0,76,0,56,0,61,0,70,0,44,0,1,0,242,255,15,0,50,0, +51,0,48,0,92,0,147,0,142,0,86,0,44,0,41,0,64,0,95,0,96,0,52,0,18,0,39,0,68,0,49,0, +19,0,25,0,33,0,8,0,233,255,220,255,209,255,201,255,227,255,30,0,76,0,79,0,55,0,38,0,34,0,30,0, +23,0,18,0,8,0,251,255,255,255,23,0,45,0,60,0,68,0,51,0,17,0,19,0,64,0,76,0,7,0,179,255, +164,255,208,255,237,255,224,255,207,255,223,255,6,0,32,0,32,0,16,0,247,255,214,255,193,255,198,255,189,255,141,255, +119,255,175,255,245,255,1,0,234,255,209,255,182,255,186,255,244,255,45,0,56,0,46,0,25,0,242,255,219,255,231,255, +242,255,232,255,227,255,241,255,3,0,8,0,233,255,188,255,191,255,240,255,8,0,247,255,248,255,32,0,67,0,58,0, +26,0,16,0,31,0,28,0,246,255,215,255,219,255,231,255,234,255,247,255,34,0,83,0,105,0,96,0,73,0,38,0, +245,255,210,255,207,255,216,255,220,255,233,255,0,0,26,0,61,0,99,0,117,0,106,0,63,0,254,255,213,255,223,255, +244,255,239,255,224,255,215,255,224,255,12,0,63,0,66,0,44,0,62,0,102,0,101,0,53,0,4,0,243,255,11,0, +46,0,46,0,17,0,4,0,17,0,40,0,62,0,76,0,65,0,38,0,39,0,67,0,53,0,232,255,176,255,200,255, +239,255,243,255,245,255,0,0,238,255,199,255,180,255,172,255,162,255,169,255,198,255,233,255,14,0,30,0,8,0,242,255, +251,255,7,0,245,255,199,255,145,255,123,255,158,255,189,255,165,255,142,255,163,255,186,255,197,255,237,255,27,0,23,0, +235,255,192,255,170,255,188,255,229,255,236,255,215,255,236,255,28,0,21,0,214,255,172,255,200,255,16,0,62,0,36,0, +233,255,210,255,221,255,236,255,2,0,20,0,0,0,219,255,226,255,14,0,34,0,19,0,2,0,248,255,242,255,252,255, +31,0,71,0,100,0,120,0,125,0,100,0,55,0,8,0,214,255,177,255,198,255,13,0,52,0,23,0,241,255,237,255, +243,255,234,255,216,255,199,255,198,255,209,255,209,255,199,255,210,255,236,255,239,255,217,255,209,255,233,255,2,0,244,255, +198,255,185,255,238,255,34,0,3,0,176,255,134,255,157,255,207,255,255,255,39,0,61,0,59,0,40,0,13,0,251,255, +250,255,254,255,255,255,0,0,250,255,230,255,222,255,237,255,250,255,250,255,3,0,9,0,230,255,178,255,171,255,203,255, +232,255,255,255,20,0,16,0,247,255,243,255,12,0,36,0,32,0,253,255,208,255,186,255,193,255,201,255,211,255,237,255, +0,0,253,255,2,0,26,0,26,0,255,255,245,255,5,0,13,0,10,0,13,0,12,0,1,0,250,255,1,0,13,0, +24,0,37,0,44,0,39,0,29,0,19,0,12,0,5,0,246,255,234,255,2,0,48,0,55,0,7,0,227,255,250,255, +36,0,40,0,2,0,219,255,214,255,235,255,252,255,3,0,20,0,43,0,46,0,30,0,16,0,9,0,1,0,242,255, +219,255,210,255,236,255,11,0,1,0,224,255,219,255,240,255,0,0,6,0,13,0,15,0,7,0,255,255,246,255,230,255, +219,255,227,255,249,255,21,0,52,0,75,0,65,0,29,0,9,0,19,0,24,0,15,0,11,0,15,0,22,0,48,0, +94,0,120,0,103,0,67,0,52,0,72,0,99,0,94,0,65,0,60,0,84,0,94,0,77,0,61,0,59,0,65,0, +75,0,71,0,47,0,27,0,16,0,245,255,212,255,203,255,204,255,192,255,192,255,226,255,17,0,47,0,50,0,30,0, +9,0,10,0,17,0,11,0,254,255,240,255,227,255,222,255,225,255,229,255,238,255,0,0,5,0,252,255,247,255,245,255, +229,255,223,255,250,255,26,0,24,0,1,0,246,255,252,255,2,0,1,0,254,255,247,255,240,255,241,255,251,255,254,255, +248,255,249,255,8,0,28,0,37,0,23,0,249,255,234,255,245,255,0,0,253,255,252,255,4,0,11,0,15,0,13,0, +1,0,248,255,255,255,10,0,11,0,1,0,241,255,227,255,223,255,228,255,236,255,244,255,246,255,238,255,228,255,228,255, +234,255,240,255,245,255,247,255,240,255,226,255,215,255,218,255,227,255,235,255,243,255,0,0,7,0,255,255,241,255,240,255, +254,255,13,0,21,0,26,0,36,0,42,0,30,0,8,0,255,255,5,0,10,0,5,0,252,255,242,255,238,255,239,255, +240,255,246,255,7,0,26,0,36,0,36,0,28,0,6,0,242,255,236,255,239,255,241,255,240,255,231,255,209,255,195,255, +202,255,219,255,229,255,233,255,240,255,245,255,246,255,245,255,243,255,238,255,233,255,236,255,246,255,1,0,3,0,0,0, +4,0,17,0,22,0,10,0,251,255,248,255,2,0,11,0,14,0,9,0,252,255,234,255,222,255,220,255,229,255,246,255, +10,0,27,0,36,0,40,0,42,0,41,0,38,0,33,0,30,0,23,0,7,0,243,255,229,255,226,255,233,255,253,255, +25,0,44,0,43,0,30,0,18,0,6,0,251,255,242,255,238,255,236,255,237,255,239,255,238,255,235,255,241,255,255,255, +8,0,4,0,249,255,238,255,233,255,234,255,239,255,248,255,1,0,0,0,241,255,225,255,216,255,216,255,224,255,238,255, +250,255,252,255,248,255,240,255,231,255,224,255,228,255,240,255,254,255,6,0,9,0,11,0,12,0,12,0,12,0,13,0, +13,0,11,0,8,0,7,0,9,0,11,0,12,0,13,0,12,0,6,0,252,255,244,255,246,255,254,255,5,0,8,0, +12,0,15,0,17,0,19,0,25,0,33,0,38,0,38,0,30,0,19,0,8,0,4,0,9,0,19,0,27,0,29,0, +20,0,255,255,229,255,213,255,211,255,219,255,231,255,246,255,5,0,15,0,18,0,18,0,19,0,22,0,24,0,22,0, +15,0,4,0,250,255,244,255,247,255,1,0,13,0,23,0,31,0,33,0,27,0,17,0,10,0,6,0,4,0,3,0, +0,0,253,255,250,255,246,255,243,255,243,255,249,255,3,0,11,0,12,0,5,0,251,255,241,255,234,255,230,255,233,255, +242,255,250,255,254,255,254,255,251,255,251,255,255,255,4,0,11,0,16,0,13,0,2,0,244,255,235,255,233,255,240,255, +252,255,8,0,16,0,18,0,16,0,14,0,16,0,22,0,29,0,32,0,28,0,16,0,2,0,246,255,242,255,249,255, +6,0,18,0,24,0,23,0,16,0,9,0,3,0,0,0,255,255,253,255,248,255,241,255,234,255,232,255,238,255,252,255, +14,0,31,0,42,0,46,0,43,0,34,0,22,0,10,0,253,255,242,255,235,255,232,255,234,255,240,255,248,255,255,255, +2,0,3,0,1,0,0,0,1,0,1,0,0,0,250,255,241,255,229,255,221,255,221,255,230,255,245,255,5,0,16,0, +18,0,11,0,2,0,250,255,250,255,0,0,10,0,17,0,20,0,16,0,8,0,1,0,252,255,251,255,251,255,251,255, +250,255,249,255,250,255,255,255,9,0,20,0,29,0,33,0,30,0,23,0,14,0,7,0,4,0,3,0,3,0,2,0, +254,255,250,255,247,255,247,255,250,255,254,255,1,0,1,0,253,255,246,255,240,255,235,255,233,255,233,255,232,255,229,255, +225,255,219,255,215,255,214,255,217,255,226,255,237,255,248,255,0,0,2,0,254,255,243,255,229,255,215,255,203,255,197,255, +197,255,201,255,208,255,214,255,221,255,226,255,233,255,242,255,253,255,10,0,21,0,28,0,29,0,24,0,15,0,5,0, +254,255,251,255,253,255,1,0,6,0,10,0,12,0,14,0,16,0,18,0,21,0,24,0,25,0,25,0,23,0,19,0, +15,0,12,0,10,0,10,0,10,0,9,0,6,0,2,0,253,255,251,255,252,255,1,0,9,0,15,0,18,0,15,0, +6,0,250,255,239,255,231,255,229,255,231,255,235,255,239,255,242,255,243,255,245,255,248,255,252,255,255,255,0,0,252,255, +244,255,236,255,231,255,233,255,242,255,254,255,8,0,13,0,10,0,1,0,248,255,242,255,243,255,249,255,0,0,6,0, +7,0,5,0,2,0,2,0,5,0,10,0,15,0,16,0,12,0,6,0,1,0,0,0,3,0,10,0,17,0,20,0, +16,0,9,0,0,0,250,255,249,255,250,255,253,255,253,255,249,255,244,255,239,255,238,255,243,255,251,255,5,0,12,0, +14,0,11,0,5,0,0,0,254,255,255,255,3,0,6,0,8,0,8,0,7,0,4,0,2,0,1,0,1,0,1,0, +1,0,2,0,5,0,8,0,13,0,18,0,22,0,24,0,23,0,20,0,15,0,9,0,3,0,252,255,246,255,242,255, +241,255,244,255,250,255,3,0,12,0,19,0,20,0,16,0,8,0,254,255,245,255,241,255,240,255,242,255,246,255,248,255, +250,255,250,255,250,255,252,255,255,255,3,0,7,0,8,0,6,0,2,0,254,255,251,255,250,255,251,255,252,255,252,255, +250,255,246,255,241,255,237,255,236,255,238,255,241,255,244,255,247,255,249,255,250,255,253,255,0,0,3,0,3,0,0,0, +249,255,240,255,233,255,229,255,230,255,236,255,242,255,248,255,250,255,249,255,248,255,248,255,251,255,1,0,6,0,7,0, +4,0,254,255,246,255,241,255,240,255,244,255,250,255,0,0,3,0,4,0,3,0,4,0,7,0,12,0,17,0,20,0, +19,0,15,0,9,0,4,0,1,0,0,0,1,0,2,0,2,0,2,0,3,0,4,0,6,0,9,0,11,0,11,0, +10,0,9,0,8,0,8,0,8,0,8,0,6,0,3,0,0,0,254,255,255,255,2,0,6,0,10,0,11,0,10,0, +8,0,6,0,5,0,6,0,7,0,7,0,5,0,2,0,0,0,1,0,5,0,11,0,16,0,19,0,18,0,15,0, +12,0,11,0,12,0,15,0,17,0,16,0,13,0,8,0,5,0,6,0,11,0,18,0,24,0,28,0,29,0,26,0, +23,0,21,0,19,0,18,0,17,0,14,0,10,0,8,0,8,0,11,0,17,0,22,0,25,0,24,0,20,0,16,0, +13,0,13,0,16,0,19,0,21,0,20,0,18,0,14,0,11,0,9,0,7,0,5,0,2,0,253,255,248,255,245,255, +245,255,247,255,251,255,255,255,2,0,3,0,3,0,2,0,0,0,255,255,254,255,252,255,248,255,244,255,240,255,237,255, +236,255,236,255,237,255,238,255,239,255,240,255,242,255,244,255,247,255,248,255,248,255,245,255,241,255,237,255,234,255,234,255, +237,255,241,255,244,255,245,255,245,255,243,255,242,255,241,255,243,255,246,255,250,255,253,255,254,255,254,255,253,255,253,255, +253,255,253,255,253,255,253,255,252,255,250,255,248,255,246,255,245,255,245,255,246,255,246,255,248,255,249,255,250,255,250,255, +250,255,249,255,248,255,246,255,244,255,243,255,242,255,242,255,241,255,240,255,239,255,238,255,238,255,239,255,241,255,244,255, +246,255,247,255,246,255,243,255,240,255,237,255,235,255,235,255,235,255,236,255,239,255,241,255,244,255,247,255,250,255,251,255, +250,255,248,255,246,255,245,255,245,255,246,255,248,255,250,255,252,255,252,255,252,255,252,255,252,255,254,255,255,255,255,255, +254,255,252,255,250,255,249,255,251,255,254,255,1,0,4,0,4,0,1,0,253,255,249,255,246,255,245,255,245,255,245,255, +245,255,245,255,244,255,244,255,245,255,247,255,249,255,249,255,248,255,245,255,243,255,242,255,243,255,246,255,249,255,253,255, +255,255,1,0,2,0,3,0,4,0,4,0,3,0,1,0,254,255,251,255,249,255,248,255,250,255,254,255,2,0,6,0, +9,0,12,0,13,0,14,0,15,0,15,0,15,0,14,0,13,0,11,0,11,0,12,0,13,0,16,0,19,0,22,0, +24,0,24,0,24,0,22,0,21,0,20,0,20,0,21,0,22,0,22,0,23,0,24,0,24,0,25,0,25,0,25,0, +23,0,20,0,17,0,14,0,12,0,13,0,15,0,19,0,23,0,26,0,26,0,24,0,21,0,19,0,17,0,15,0, +14,0,12,0,9,0,7,0,5,0,5,0,6,0,8,0,10,0,11,0,12,0,13,0,12,0,11,0,9,0,6,0, +2,0,253,255,249,255,247,255,248,255,251,255,255,255,3,0,6,0,8,0,9,0,9,0,10,0,10,0,10,0,10,0, +9,0,8,0,7,0,7,0,6,0,5,0,3,0,255,255,249,255,243,255,238,255,234,255,233,255,234,255,236,255,239,255, +242,255,245,255,248,255,251,255,253,255,253,255,252,255,250,255,249,255,248,255,248,255,248,255,248,255,246,255,243,255,240,255, +237,255,237,255,239,255,241,255,244,255,245,255,245,255,244,255,243,255,244,255,245,255,247,255,249,255,249,255,248,255,246,255, +244,255,242,255,241,255,239,255,237,255,237,255,238,255,242,255,246,255,251,255,254,255,254,255,251,255,246,255,241,255,239,255, +239,255,243,255,247,255,250,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,253,255,251,255,249,255,249,255,251,255, +255,255,4,0,8,0,10,0,10,0,8,0,7,0,7,0,8,0,9,0,9,0,8,0,6,0,5,0,4,0,5,0, +7,0,9,0,11,0,13,0,13,0,13,0,14,0,15,0,16,0,17,0,17,0,15,0,13,0,9,0,6,0,4,0, +2,0,1,0,1,0,1,0,1,0,1,0,0,0,254,255,253,255,252,255,251,255,252,255,253,255,255,255,0,0,1,0, +1,0,0,0,255,255,254,255,253,255,253,255,253,255,254,255,0,0,3,0,5,0,8,0,9,0,10,0,8,0,6,0, +4,0,3,0,3,0,3,0,5,0,7,0,8,0,10,0,11,0,11,0,12,0,12,0,12,0,11,0,10,0,9,0, +8,0,7,0,7,0,7,0,7,0,6,0,6,0,5,0,4,0,3,0,1,0,255,255,253,255,252,255,253,255,255,255, +1,0,3,0,4,0,4,0,3,0,1,0,255,255,254,255,252,255,250,255,247,255,244,255,241,255,240,255,241,255,244,255, +248,255,253,255,1,0,4,0,5,0,4,0,2,0,0,0,253,255,251,255,249,255,250,255,251,255,254,255,1,0,3,0, +4,0,3,0,1,0,255,255,253,255,252,255,251,255,251,255,251,255,251,255,252,255,254,255,0,0,1,0,2,0,0,0, +254,255,251,255,248,255,245,255,243,255,241,255,238,255,235,255,232,255,231,255,233,255,237,255,243,255,248,255,252,255,253,255, +252,255,249,255,247,255,246,255,246,255,246,255,246,255,245,255,244,255,242,255,241,255,240,255,241,255,241,255,241,255,240,255, +239,255,239,255,239,255,241,255,243,255,245,255,247,255,248,255,248,255,249,255,250,255,252,255,254,255,255,255,0,0,255,255, +254,255,251,255,249,255,248,255,248,255,249,255,251,255,253,255,254,255,254,255,253,255,250,255,248,255,247,255,247,255,248,255, +250,255,252,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,2,0,4,0,7,0, +10,0,11,0,11,0,9,0,6,0,3,0,1,0,255,255,254,255,253,255,252,255,252,255,253,255,255,255,2,0,5,0, +8,0,9,0,10,0,10,0,12,0,14,0,16,0,19,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0,21,0, +20,0,18,0,17,0,16,0,17,0,18,0,20,0,20,0,20,0,19,0,20,0,22,0,25,0,28,0,31,0,31,0, +29,0,26,0,22,0,19,0,16,0,13,0,10,0,8,0,6,0,5,0,6,0,9,0,12,0,15,0,18,0,18,0, +18,0,16,0,13,0,12,0,10,0,10,0,10,0,10,0,8,0,6,0,3,0,255,255,251,255,248,255,246,255,245,255, +245,255,245,255,245,255,245,255,245,255,244,255,245,255,246,255,248,255,248,255,248,255,247,255,246,255,246,255,248,255,251,255, +254,255,0,0,1,0,1,0,0,0,0,0,2,0,5,0,8,0,9,0,8,0,4,0,0,0,252,255,250,255,251,255, +252,255,254,255,253,255,252,255,249,255,248,255,247,255,248,255,250,255,251,255,251,255,250,255,249,255,247,255,247,255,248,255, +249,255,250,255,251,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,255,255,254,255,252,255,251,255,250,255,250,255, +251,255,253,255,254,255,254,255,253,255,250,255,246,255,241,255,236,255,233,255,231,255,231,255,233,255,235,255,236,255,238,255, +240,255,242,255,245,255,247,255,249,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,248,255,246,255,244,255, +243,255,244,255,246,255,248,255,250,255,252,255,253,255,254,255,255,255,1,0,2,0,3,0,4,0,3,0,2,0,0,0, +254,255,252,255,249,255,247,255,244,255,243,255,244,255,246,255,251,255,255,255,2,0,4,0,5,0,4,0,3,0,3,0, +4,0,5,0,5,0,5,0,3,0,2,0,1,0,2,0,4,0,6,0,7,0,7,0,5,0,3,0,1,0,0,0, +255,255,254,255,253,255,251,255,248,255,247,255,246,255,247,255,249,255,252,255,255,255,1,0,2,0,2,0,3,0,4,0, +5,0,6,0,7,0,6,0,5,0,3,0,1,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0,255,255,252,255, +251,255,251,255,254,255,1,0,5,0,6,0,6,0,3,0,0,0,254,255,253,255,253,255,254,255,254,255,254,255,253,255, +252,255,253,255,255,255,2,0,4,0,5,0,4,0,3,0,2,0,3,0,6,0,9,0,12,0,12,0,10,0,7,0, +4,0,3,0,5,0,9,0,14,0,19,0,22,0,23,0,24,0,25,0,25,0,24,0,23,0,19,0,15,0,10,0, +6,0,4,0,3,0,3,0,5,0,6,0,7,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,7,0, +6,0,5,0,3,0,2,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,253,255,252,255,251,255, +249,255,247,255,246,255,245,255,244,255,244,255,245,255,246,255,247,255,248,255,249,255,251,255,254,255,1,0,3,0,3,0, +2,0,0,0,253,255,251,255,250,255,250,255,251,255,250,255,250,255,249,255,248,255,248,255,248,255,249,255,250,255,252,255, +253,255,0,0,2,0,5,0,6,0,7,0,6,0,2,0,253,255,249,255,246,255,247,255,249,255,251,255,253,255,253,255, +252,255,251,255,251,255,253,255,0,0,4,0,7,0,8,0,7,0,5,0,3,0,0,0,254,255,252,255,250,255,248,255, +246,255,246,255,246,255,248,255,252,255,0,0,3,0,4,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0, +1,0,0,0,254,255,252,255,251,255,251,255,251,255,250,255,249,255,247,255,246,255,246,255,247,255,250,255,253,255,1,0, +3,0,3,0,2,0,255,255,252,255,250,255,249,255,249,255,251,255,252,255,252,255,252,255,253,255,0,0,3,0,6,0, +9,0,9,0,7,0,5,0,3,0,3,0,2,0,2,0,0,0,254,255,251,255,250,255,251,255,254,255,3,0,9,0, +12,0,13,0,11,0,7,0,4,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,253,255,255,255,1,0, +2,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,4,0,6,0,7,0, +8,0,7,0,7,0,5,0,5,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,2,0, +2,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,3,0,1,0,254,255,251,255,250,255,250,255, +253,255,0,0,3,0,4,0,4,0,3,0,4,0,5,0,7,0,8,0,8,0,7,0,5,0,4,0,4,0,6,0, +7,0,8,0,8,0,6,0,5,0,2,0,1,0,0,0,0,0,0,0,254,255,252,255,250,255,251,255,254,255,1,0, +4,0,6,0,6,0,4,0,1,0,254,255,252,255,252,255,254,255,0,0,2,0,3,0,5,0,6,0,7,0,7,0, +5,0,3,0,0,0,253,255,250,255,247,255,247,255,248,255,249,255,248,255,247,255,246,255,245,255,246,255,248,255,250,255, +252,255,253,255,252,255,251,255,250,255,250,255,250,255,251,255,251,255,252,255,253,255,252,255,252,255,251,255,250,255,250,255, +250,255,250,255,250,255,251,255,252,255,253,255,252,255,250,255,248,255,247,255,247,255,248,255,248,255,246,255,245,255,243,255, +242,255,242,255,246,255,252,255,1,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,254,255,251,255, +250,255,251,255,254,255,0,0,2,0,3,0,3,0,2,0,1,0,1,0,4,0,6,0,7,0,6,0,4,0,2,0, +1,0,0,0,255,255,253,255,250,255,247,255,247,255,248,255,252,255,0,0,5,0,7,0,7,0,3,0,254,255,250,255, +248,255,249,255,250,255,252,255,253,255,253,255,253,255,253,255,254,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,4,0,8,0,10,0,11,0,10,0,9,0,8,0,8,0,7,0,5,0,4,0,4,0,4,0,3,0, +2,0,2,0,5,0,7,0,8,0,6,0,3,0,0,0,253,255,250,255,249,255,250,255,253,255,1,0,4,0,5,0, +5,0,6,0,6,0,5,0,3,0,1,0,255,255,254,255,254,255,255,255,1,0,2,0,3,0,4,0,4,0,5,0, +5,0,4,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,7,0, +7,0,7,0,6,0,3,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,1,0,3,0,5,0,7,0,6,0,5,0,3,0,1,0,254,255,250,255,248,255,247,255,247,255,246,255,244,255, +244,255,246,255,249,255,251,255,253,255,255,255,2,0,3,0,3,0,3,0,3,0,3,0,1,0,253,255,250,255,249,255, +249,255,249,255,249,255,250,255,251,255,252,255,253,255,254,255,255,255,255,255,1,0,2,0,2,0,1,0,254,255,251,255, +247,255,245,255,244,255,244,255,247,255,250,255,253,255,255,255,1,0,0,0,255,255,255,255,255,255,0,0,1,0,255,255, +253,255,250,255,247,255,246,255,247,255,251,255,254,255,0,0,1,0,3,0,4,0,5,0,3,0,1,0,1,0,2,0, +3,0,3,0,3,0,4,0,5,0,6,0,5,0,4,0,2,0,1,0,1,0,1,0,255,255,252,255,248,255,248,255, +251,255,255,255,2,0,3,0,3,0,2,0,0,0,253,255,251,255,250,255,250,255,249,255,248,255,248,255,249,255,253,255, +0,0,3,0,3,0,2,0,255,255,253,255,251,255,249,255,249,255,249,255,251,255,251,255,250,255,249,255,251,255,253,255, +0,0,2,0,2,0,2,0,3,0,6,0,9,0,10,0,9,0,7,0,5,0,4,0,3,0,2,0,0,0,0,0, +2,0,4,0,5,0,6,0,6,0,8,0,8,0,6,0,5,0,4,0,3,0,2,0,3,0,4,0,4,0,3,0, +0,0,0,0,1,0,4,0,4,0,4,0,3,0,4,0,3,0,2,0,0,0,253,255,251,255,250,255,250,255,252,255, +0,0,3,0,5,0,7,0,9,0,9,0,9,0,8,0,7,0,6,0,4,0,2,0,0,0,1,0,2,0,4,0, +5,0,7,0,6,0,4,0,1,0,0,0,2,0,5,0,7,0,6,0,5,0,4,0,5,0,7,0,8,0,9,0, +7,0,5,0,1,0,255,255,255,255,0,0,2,0,4,0,5,0,5,0,3,0,255,255,252,255,252,255,253,255,254,255, +252,255,250,255,249,255,250,255,253,255,255,255,2,0,4,0,6,0,5,0,3,0,1,0,255,255,253,255,252,255,252,255, +253,255,254,255,254,255,252,255,250,255,250,255,252,255,255,255,1,0,0,0,254,255,253,255,254,255,255,255,1,0,1,0, +1,0,2,0,1,0,255,255,252,255,251,255,250,255,249,255,246,255,243,255,238,255,234,255,230,255,229,255,231,255,234,255, +239,255,248,255,4,0,18,0,28,0,30,0,26,0,19,0,14,0,14,0,19,0,26,0,29,0,25,0,13,0,253,255, +238,255,229,255,225,255,226,255,228,255,228,255,226,255,226,255,235,255,252,255,17,0,34,0,42,0,40,0,28,0,10,0, +248,255,238,255,235,255,235,255,232,255,224,255,219,255,218,255,224,255,235,255,247,255,3,0,11,0,14,0,14,0,13,0, +15,0,18,0,21,0,23,0,22,0,14,0,2,0,244,255,235,255,233,255,234,255,235,255,236,255,239,255,246,255,0,0, +12,0,24,0,33,0,38,0,36,0,27,0,14,0,0,0,245,255,240,255,240,255,240,255,240,255,241,255,247,255,1,0, +15,0,29,0,41,0,48,0,48,0,42,0,32,0,22,0,14,0,6,0,251,255,239,255,227,255,220,255,219,255,226,255, +237,255,249,255,3,0,11,0,16,0,18,0,20,0,22,0,24,0,23,0,18,0,9,0,255,255,247,255,242,255,239,255, +237,255,235,255,231,255,228,255,227,255,231,255,239,255,249,255,2,0,10,0,17,0,23,0,26,0,24,0,20,0,15,0, +10,0,3,0,250,255,241,255,235,255,232,255,233,255,235,255,239,255,243,255,248,255,253,255,2,0,8,0,13,0,17,0, +18,0,17,0,15,0,12,0,7,0,2,0,253,255,251,255,249,255,247,255,245,255,244,255,245,255,249,255,254,255,2,0, +6,0,8,0,9,0,9,0,9,0,10,0,11,0,8,0,3,0,253,255,248,255,246,255,246,255,247,255,249,255,251,255, +252,255,251,255,250,255,247,255,245,255,244,255,247,255,251,255,253,255,254,255,255,255,2,0,5,0,6,0,5,0,3,0, +3,0,3,0,0,0,251,255,248,255,247,255,248,255,248,255,249,255,251,255,254,255,0,0,0,0,255,255,253,255,252,255, +251,255,250,255,249,255,250,255,252,255,0,0,3,0,5,0,3,0,1,0,0,0,255,255,255,255,255,255,254,255,253,255, +252,255,251,255,252,255,252,255,253,255,0,0,2,0,4,0,2,0,255,255,253,255,254,255,255,255,255,255,252,255,249,255, +248,255,249,255,251,255,253,255,0,0,2,0,3,0,3,0,3,0,1,0,0,0,0,0,0,0,255,255,252,255,247,255, +243,255,241,255,240,255,241,255,242,255,245,255,250,255,255,255,4,0,9,0,13,0,16,0,16,0,15,0,13,0,11,0, +9,0,6,0,4,0,3,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,2,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,254,255,0,0,4,0,7,0, +9,0,12,0,15,0,17,0,17,0,15,0,12,0,8,0,4,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +3,0,3,0,5,0,8,0,11,0,13,0,11,0,10,0,10,0,10,0,8,0,4,0,0,0,253,255,249,255,247,255, +246,255,248,255,251,255,253,255,255,255,1,0,3,0,5,0,6,0,8,0,8,0,7,0,3,0,0,0,253,255,251,255, +249,255,247,255,247,255,249,255,252,255,254,255,0,0,2,0,5,0,7,0,8,0,8,0,7,0,5,0,2,0,254,255, +251,255,248,255,248,255,249,255,250,255,250,255,250,255,249,255,249,255,250,255,252,255,254,255,254,255,254,255,254,255,255,255, +0,0,2,0,4,0,5,0,4,0,1,0,253,255,249,255,248,255,247,255,247,255,247,255,247,255,250,255,253,255,1,0, +4,0,5,0,6,0,5,0,3,0,2,0,0,0,255,255,254,255,252,255,250,255,248,255,248,255,250,255,254,255,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,0,0,255,255,254,255, +254,255,253,255,253,255,255,255,2,0,5,0,5,0,4,0,3,0,4,0,5,0,5,0,3,0,0,0,253,255,251,255, +249,255,249,255,250,255,252,255,254,255,1,0,3,0,4,0,3,0,1,0,1,0,0,0,255,255,253,255,252,255,252,255, +253,255,253,255,254,255,255,255,1,0,1,0,0,0,254,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,253,255, +254,255,0,0,2,0,1,0,255,255,253,255,253,255,253,255,254,255,254,255,0,0,2,0,1,0,255,255,254,255,255,255, +1,0,1,0,0,0,255,255,253,255,252,255,253,255,0,0,3,0,6,0,7,0,6,0,5,0,2,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,3,0,1,0,255,255,253,255,253,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,2,0,3,0, +3,0,2,0,1,0,1,0,0,0,0,0,1,0,3,0,4,0,5,0,5,0,5,0,7,0,9,0,10,0,9,0, +8,0,7,0,4,0,1,0,255,255,255,255,255,255,254,255,252,255,250,255,250,255,251,255,253,255,254,255,254,255,254,255, +253,255,253,255,253,255,255,255,1,0,1,0,255,255,252,255,250,255,249,255,249,255,249,255,250,255,250,255,250,255,249,255, +249,255,251,255,254,255,1,0,2,0,1,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,255,255,254,255,253,255, +254,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,255,255, +254,255,0,0,1,0,1,0,1,0,0,0,1,0,2,0,3,0,5,0,6,0,8,0,8,0,6,0,3,0,1,0, +0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,1,0,4,0,5,0,5,0,3,0,1,0,255,255,255,255, +255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,1,0,1,0,1,0,0,0,1,0,2,0,3,0,3,0, +4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,3,0, +4,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,252,255,251,255,251,255,253,255,254,255,255,255,255,255,255,255, +254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255, +253,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255, +254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,254,255,254,255, +254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,254,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,1,0,3,0, +4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,2,0, +2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255, +253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255, +253,255,253,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,2,0, +2,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0, +3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0, +1,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,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, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,255,255, +255,255,0,0,1,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255, +254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0, +3,0,4,0,4,0,4,0,3,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,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, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,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,1,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,1,0, +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, +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,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,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,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,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,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,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,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,1,0,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,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,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,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +1,0,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,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,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,255,255,255,255, +255,255,0,0,0,0,1,0,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,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,1,0,1,0,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,1,0,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,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,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,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,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,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,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,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,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +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,1,0,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, +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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0, +1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,1,0, +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,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,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,1,0,1,0,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,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,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,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeleton3.pcm b/src/client/sound/data/skeleton3.pcm new file mode 100755 index 0000000..e61d90c --- /dev/null +++ b/src/client/sound/data/skeleton3.pcm @@ -0,0 +1,1559 @@ +unsigned char PCM_skeleton3[49808] = { +1,0,0,0,2,0,0,0,68,172,0,0,64,97,0,0,21,255,190,254,237,254,17,255,254,254,248,254,243,254,215,254, +203,254,208,254,206,254,217,254,247,254,16,255,35,255,59,255,80,255,94,255,111,255,132,255,157,255,185,255,209,255,223,255, +231,255,225,255,202,255,171,255,143,255,132,255,140,255,164,255,206,255,1,0,46,0,86,0,130,0,170,0,208,0,253,0, +33,1,43,1,38,1,17,1,228,0,185,0,173,0,186,0,213,0,247,0,14,1,30,1,48,1,50,1,25,1,246,0, +214,0,197,0,214,0,249,0,13,1,25,1,64,1,139,1,229,1,38,2,51,2,28,2,1,2,234,1,210,1,175,1, +105,1,255,0,154,0,89,0,56,0,53,0,87,0,136,0,165,0,172,0,156,0,83,0,214,255,92,255,2,255,188,254, +160,254,194,254,4,255,69,255,124,255,150,255,165,255,224,255,69,0,140,0,143,0,73,0,187,255,18,255,136,254,51,254, +29,254,80,254,163,254,225,254,7,255,14,255,222,254,151,254,116,254,111,254,114,254,127,254,129,254,110,254,107,254,128,254, +137,254,142,254,169,254,194,254,186,254,158,254,114,254,27,254,136,253,199,252,64,252,111,252,99,253,237,254,203,0,36,2, +232,1,245,255,27,253,202,250,200,250,120,253,26,1,227,3,48,5,175,4,192,2,203,0,164,255,47,255,149,255,198,0, +180,1,168,1,252,0,21,0,64,255,19,255,154,255,36,0,115,0,239,0,165,1,90,2,35,3,3,4,119,4,10,4, +229,2,143,1,96,0,126,255,48,255,205,255,75,1,250,2,185,3,190,2,151,0,28,255,2,0,118,3,237,7,249,10, +203,10,127,7,192,2,65,254,246,250,94,249,148,249,36,251,249,252,209,253,134,253,151,253,144,255,248,2,116,5,29,5, +163,2,156,0,176,0,10,2,195,2,200,1,102,255,216,252,116,251,169,251,207,252,42,254,155,255,11,1,206,1,74,1, +0,0,27,255,9,255,7,255,50,254,153,252,48,251,177,250,178,250,51,250,9,249,45,248,189,248,7,251,117,254,226,1, +63,4,252,4,238,3,116,1,187,254,255,252,100,252,54,252,232,251,71,251,128,250,80,250,122,251,192,253,249,255,77,1, +251,1,210,2,27,4,86,5,225,5,89,5,133,3,145,0,85,253,21,251,146,250,150,251,72,253,214,254,239,255,210,0, +220,1,0,3,227,3,92,4,142,4,126,4,250,3,249,2,202,1,185,0,190,255,172,254,163,253,13,253,88,253,182,254, +254,0,116,3,25,5,132,5,71,5,30,5,11,5,160,4,205,3,239,2,80,2,241,1,167,1,45,1,85,0,79,255, +164,254,186,254,107,255,52,0,181,0,228,0,223,0,202,0,213,0,3,1,247,0,87,0,62,255,25,254,59,253,199,252, +198,252,24,253,162,253,120,254,149,255,172,0,160,1,188,2,253,3,170,4,17,4,75,2,21,0,57,254,66,253,51,253, +130,253,128,253,245,252,77,252,39,252,172,252,102,253,239,253,102,254,231,254,12,255,124,254,139,253,198,252,78,252,11,252, +15,252,104,252,224,252,39,253,30,253,233,252,205,252,1,253,161,253,154,254,159,255,93,0,187,0,202,0,130,0,240,255, +115,255,80,255,63,255,247,254,183,254,211,254,67,255,235,255,180,0,60,1,37,1,194,0,202,0,111,1,64,2,169,2, +87,2,87,1,15,0,240,254,76,254,93,254,36,255,39,0,232,0,121,1,45,2,21,3,232,3,72,4,227,3,193,2, +114,1,146,0,77,0,123,0,217,0,35,1,43,1,0,1,241,0,100,1,121,2,228,3,51,5,16,6,66,6,189,5, +164,4,41,3,128,1,231,255,191,254,113,254,0,255,230,255,182,0,86,1,163,1,140,1,70,1,217,0,37,0,110,255, +246,254,125,254,253,253,225,253,19,254,229,253,9,253,225,251,31,251,83,251,145,252,128,254,139,0,212,1,174,1,91,0, +178,254,101,253,235,252,108,253,146,254,201,255,129,0,110,0,228,255,107,255,7,255,186,254,245,254,214,255,221,0,131,1, +89,1,37,0,58,254,42,252,110,250,182,249,97,250,226,251,137,253,15,255,30,0,131,0,136,0,86,0,209,255,14,255, +59,254,132,253,87,253,214,253,123,254,191,254,112,254,147,253,159,252,67,252,235,252,209,254,177,1,99,4,228,5,48,6, +128,5,11,4,116,2,74,1,155,0,104,0,150,0,228,0,107,1,73,2,29,3,189,3,95,4,224,4,10,5,15,5, +247,4,144,4,208,3,141,2,178,0,195,254,54,253,47,252,17,252,39,253,8,255,52,1,92,3,12,5,250,5,40,6, +126,5,27,4,132,2,245,0,122,255,117,254,10,254,231,253,241,253,56,254,188,254,179,255,62,1,9,3,190,4,11,6, +84,6,93,5,150,3,105,1,57,255,155,253,215,252,218,252,127,253,98,254,250,254,41,255,225,254,239,253,143,252,65,251, +61,250,184,249,226,249,120,250,24,251,133,251,137,251,74,251,96,251,15,252,51,253,179,254,64,0,89,1,214,1,203,1, +67,1,141,0,245,255,121,255,48,255,72,255,136,255,192,255,10,0,70,0,61,0,242,255,94,255,148,254,2,254,218,253, +222,253,238,253,227,253,117,253,202,252,83,252,66,252,180,252,177,253,219,254,224,255,184,0,43,1,8,1,155,0,53,0, +249,255,38,0,197,0,154,1,154,2,188,3,175,4,86,5,201,5,224,5,151,5,66,5,2,5,190,4,104,4,201,3, +202,2,188,1,215,0,9,0,114,255,59,255,63,255,105,255,192,255,23,0,78,0,114,0,127,0,146,0,237,0,119,1, +228,1,50,2,116,2,136,2,99,2,14,2,150,1,50,1,24,1,69,1,179,1,86,2,224,2,5,3,209,2,99,2, +186,1,242,0,52,0,159,255,90,255,88,255,72,255,254,254,142,254,255,253,107,253,21,253,27,253,105,253,225,253,89,254, +166,254,192,254,143,254,239,253,16,253,75,252,198,251,139,251,151,251,204,251,19,252,107,252,201,252,43,253,165,253,34,254, +128,254,216,254,69,255,161,255,197,255,160,255,56,255,196,254,119,254,76,254,61,254,104,254,197,254,62,255,219,255,125,0, +226,0,251,0,225,0,179,0,163,0,172,0,138,0,50,0,213,255,122,255,21,255,183,254,98,254,40,254,66,254,186,254, +86,255,231,255,66,0,67,0,38,0,63,0,132,0,208,0,39,1,130,1,212,1,34,2,57,2,238,1,126,1,63,1, +69,1,155,1,38,2,135,2,156,2,147,2,134,2,116,2,113,2,113,2,114,2,168,2,18,3,84,3,69,3,249,2, +133,2,34,2,253,1,234,1,179,1,105,1,31,1,221,0,195,0,194,0,168,0,140,0,155,0,194,0,226,0,241,0, +220,0,190,0,219,0,46,1,115,1,129,1,62,1,163,0,228,255,55,255,147,254,0,254,166,253,130,253,123,253,122,253, +76,253,213,252,81,252,15,252,30,252,126,252,24,253,173,253,30,254,112,254,137,254,95,254,36,254,252,253,236,253,8,254, +55,254,55,254,2,254,199,253,147,253,108,253,111,253,151,253,225,253,102,254,23,255,188,255,61,0,152,0,187,0,182,0, +165,0,119,0,34,0,191,255,91,255,253,254,195,254,181,254,205,254,20,255,112,255,163,255,181,255,218,255,41,0,164,0, +73,1,214,1,253,1,195,1,81,1,194,0,67,0,254,255,248,255,57,0,187,0,67,1,160,1,224,1,39,2,134,2, +255,2,122,3,212,3,17,4,70,4,122,4,154,4,124,4,251,3,67,3,178,2,109,2,92,2,110,2,132,2,116,2, +59,2,230,1,115,1,238,0,132,0,70,0,29,0,228,255,121,255,215,254,58,254,218,253,174,253,138,253,103,253,102,253, +172,253,55,254,224,254,108,255,178,255,182,255,177,255,206,255,239,255,215,255,122,255,241,254,90,254,215,253,145,253,157,253, +253,253,160,254,88,255,237,255,71,0,112,0,117,0,91,0,35,0,191,255,34,255,115,254,226,253,107,253,227,252,73,252, +211,251,177,251,236,251,112,252,17,253,153,253,247,253,72,254,165,254,4,255,69,255,77,255,11,255,134,254,240,253,136,253, +121,253,198,253,79,254,233,254,132,255,45,0,232,0,159,1,64,2,193,2,7,3,5,3,216,2,181,2,170,2,164,2, +151,2,130,2,96,2,53,2,24,2,29,2,62,2,98,2,115,2,97,2,55,2,14,2,241,1,214,1,185,1,159,1, +126,1,82,1,51,1,70,1,142,1,229,1,29,2,30,2,245,1,213,1,225,1,247,1,215,1,119,1,13,1,202,0, +177,0,179,0,203,0,247,0,45,1,91,1,128,1,163,1,189,1,177,1,113,1,18,1,183,0,102,0,14,0,169,255, +65,255,247,254,240,254,49,255,124,255,127,255,38,255,170,254,97,254,115,254,194,254,242,254,181,254,21,254,107,253,249,252, +177,252,103,252,32,252,1,252,19,252,56,252,86,252,130,252,209,252,39,253,56,253,232,252,138,252,153,252,44,253,219,253, +40,254,239,253,105,253,225,252,142,252,143,252,213,252,40,253,97,253,162,253,32,254,201,254,81,255,155,255,218,255,56,0, +157,0,225,0,20,1,91,1,172,1,198,1,118,1,195,0,239,255,97,255,119,255,76,0,138,1,153,2,25,3,39,3, +33,3,41,3,12,3,169,2,63,2,36,2,92,2,166,2,213,2,238,2,243,2,209,2,143,2,92,2,103,2,192,2, +96,3,18,4,110,4,43,4,122,3,204,2,71,2,177,1,4,1,160,0,204,0,66,1,131,1,112,1,83,1,130,1, +35,2,35,3,32,4,131,4,252,3,226,2,235,1,109,1,33,1,145,0,171,255,199,254,50,254,233,253,190,253,175,253, +234,253,111,254,226,254,235,254,164,254,115,254,137,254,181,254,193,254,179,254,159,254,118,254,52,254,0,254,245,253,223,253, +120,253,230,252,176,252,37,253,249,253,139,254,116,254,197,253,228,252,78,252,66,252,127,252,122,252,13,252,196,251,58,252, +72,253,50,254,146,254,167,254,181,254,157,254,70,254,245,253,236,253,9,254,32,254,95,254,247,254,172,255,43,0,126,0, +212,0,24,1,34,1,29,1,61,1,78,1,255,0,111,0,246,255,137,255,230,254,62,254,11,254,95,254,222,254,92,255, +252,255,182,0,67,1,156,1,22,2,205,2,114,3,173,3,130,3,55,3,27,3,77,3,124,3,30,3,44,2,113,1, +156,1,86,2,179,2,98,2,214,1,123,1,92,1,131,1,252,1,118,2,114,2,239,1,109,1,47,1,253,0,184,0, +155,0,213,0,56,1,131,1,163,1,170,1,185,1,255,1,117,2,176,2,81,2,143,1,248,0,192,0,174,0,148,0, +116,0,57,0,177,255,233,254,49,254,214,253,249,253,148,254,91,255,222,255,247,255,240,255,242,255,166,255,192,254,166,253, +4,253,245,252,15,253,19,253,26,253,45,253,48,253,40,253,51,253,80,253,113,253,176,253,12,254,60,254,34,254,30,254, +133,254,250,254,208,254,9,254,88,253,63,253,150,253,243,253,27,254,1,254,184,253,125,253,154,253,17,254,157,254,245,254, +0,255,214,254,177,254,199,254,10,255,54,255,52,255,60,255,120,255,201,255,15,0,112,0,20,1,194,1,30,2,34,2, +28,2,71,2,137,2,151,2,60,2,160,1,61,1,105,1,222,1,13,2,205,1,126,1,116,1,170,1,15,2,179,2, +109,3,215,3,201,3,151,3,140,3,137,3,96,3,43,3,254,2,155,2,217,1,22,1,211,0,12,1,60,1,7,1, +130,0,2,0,214,255,33,0,167,0,211,0,69,0,70,255,132,254,90,254,132,254,155,254,128,254,87,254,55,254,22,254, +253,253,35,254,193,254,194,255,199,0,118,1,197,1,230,1,248,1,225,1,117,1,177,0,201,255,10,255,154,254,88,254, +248,253,101,253,224,252,186,252,2,253,129,253,240,253,22,254,215,253,91,253,13,253,63,253,191,253,255,253,178,253,33,253, +218,252,29,253,182,253,74,254,165,254,203,254,210,254,214,254,247,254,69,255,133,255,68,255,64,254,199,252,142,251,32,251, +133,251,105,252,104,253,49,254,169,254,2,255,155,255,141,0,118,1,230,1,232,1,244,1,83,2,214,2,46,3,81,3, +95,3,70,3,221,2,71,2,251,1,58,2,193,2,30,3,51,3,47,3,54,3,66,3,62,3,17,3,160,2,255,1, +136,1,124,1,177,1,209,1,220,1,19,2,117,2,187,2,212,2,17,3,153,3,30,4,55,4,198,3,228,2,189,1, +166,0,9,0,239,255,213,255,77,255,146,254,73,254,191,254,166,255,122,0,249,0,54,1,110,1,198,1,27,2,28,2, +162,1,218,0,17,0,105,255,218,254,85,254,225,253,154,253,157,253,228,253,43,254,49,254,2,254,214,253,176,253,112,253, +54,253,88,253,203,253,8,254,184,253,49,253,240,252,228,252,152,252,235,251,39,251,133,250,8,250,188,249,189,249,244,249, +46,250,137,250,105,251,201,252,246,253,74,254,246,253,198,253,43,254,212,254,43,255,250,254,145,254,124,254,4,255,224,255, +125,0,157,0,170,0,30,1,215,1,69,2,66,2,59,2,125,2,192,2,151,2,254,1,59,1,117,0,189,255,81,255, +123,255,46,0,7,1,174,1,25,2,111,2,223,2,132,3,78,4,6,5,144,5,250,5,70,6,69,6,220,5,72,5, +218,4,152,4,72,4,214,3,111,3,66,3,83,3,137,3,177,3,138,3,248,2,46,2,126,1,20,1,237,0,246,0, +26,1,47,1,35,1,30,1,79,1,158,1,186,1,123,1,3,1,137,0,28,0,176,255,69,255,241,254,194,254,165,254, +121,254,65,254,60,254,161,254,76,255,232,255,96,0,233,0,132,1,192,1,59,1,42,0,23,255,52,254,61,253,8,252, +222,250,59,250,87,250,1,251,203,251,85,252,131,252,127,252,130,252,150,252,147,252,91,252,253,251,161,251,104,251,85,251, +75,251,55,251,67,251,198,251,216,252,2,254,145,254,80,254,198,253,161,253,251,253,101,254,147,254,181,254,15,255,135,255, +187,255,116,255,225,254,105,254,77,254,125,254,178,254,200,254,242,254,113,255,12,0,44,0,158,255,2,255,39,255,44,0, +119,1,121,2,13,3,58,3,10,3,157,2,47,2,226,1,189,1,216,1,64,2,183,2,207,2,120,2,29,2,49,2, +207,2,217,3,39,5,94,6,253,6,215,6,80,6,232,5,170,5,80,5,203,4,94,4,21,4,154,3,179,2,186,1, +77,1,143,1,4,2,52,2,38,2,7,2,189,1,27,1,93,0,245,255,225,255,171,255,4,255,24,254,59,253,166,252, +146,252,24,253,205,253,2,254,154,253,56,253,102,253,6,254,188,254,104,255,235,255,247,255,114,255,189,254,68,254,6,254, +214,253,213,253,53,254,195,254,31,255,64,255,93,255,124,255,109,255,17,255,105,254,140,253,192,252,102,252,157,252,21,253, +96,253,100,253,70,253,43,253,67,253,208,253,215,254,226,255,91,0,248,255,216,254,108,253,82,252,246,251,48,252,136,252, +214,252,90,253,43,254,4,255,182,255,110,0,67,1,244,1,76,2,108,2,133,2,124,2,18,2,61,1,67,0,128,255, +26,255,246,254,214,254,178,254,193,254,34,255,150,255,239,255,119,0,118,1,150,2,86,3,208,3,95,4,203,4,97,4, +238,2,24,1,163,255,229,254,245,254,208,255,23,1,74,2,89,3,99,4,20,5,243,4,88,4,40,4,141,4,169,4, +211,3,133,2,169,1,103,1,38,1,109,0,89,255,103,254,38,254,204,254,231,255,173,0,183,0,56,0,167,255,88,255, +108,255,202,255,26,0,247,255,75,255,94,254,127,253,236,252,246,252,192,253,228,254,211,255,104,0,204,0,249,0,214,0, +137,0,59,0,196,255,247,254,47,254,246,253,34,254,9,254,147,253,94,253,188,253,53,254,86,254,86,254,164,254,60,255, +186,255,241,255,1,0,234,255,108,255,97,254,245,252,143,251,187,250,215,250,172,251,131,252,188,252,110,252,75,252,243,252, +72,254,152,255,77,0,87,0,25,0,15,0,90,0,157,0,121,0,252,255,132,255,112,255,224,255,142,0,22,1,118,1, +240,1,138,2,3,3,24,3,180,2,253,1,71,1,201,0,126,0,83,0,79,0,115,0,144,0,104,0,29,0,78,0, +75,1,114,2,208,2,86,2,214,1,240,1,122,2,224,2,229,2,190,2,169,2,151,2,72,2,184,1,75,1,106,1, +2,2,125,2,99,2,223,1,155,1,21,2,8,3,174,3,129,3,145,2,76,1,47,0,129,255,45,255,2,255,239,254, +228,254,197,254,162,254,158,254,182,254,228,254,58,255,153,255,166,255,58,255,143,254,9,254,197,253,129,253,21,253,220,252, +36,253,138,253,132,253,46,253,3,253,71,253,232,253,148,254,211,254,108,254,167,253,7,253,212,252,247,252,35,253,37,253, +246,252,161,252,82,252,81,252,179,252,56,253,175,253,24,254,89,254,50,254,176,253,58,253,15,253,26,253,62,253,135,253, +0,254,162,254,108,255,84,0,47,1,193,1,247,1,251,1,255,1,250,1,211,1,198,1,49,2,218,2,254,2,55,2, +245,0,1,0,204,255,50,0,186,0,37,1,152,1,68,2,29,3,231,3,105,4,124,4,38,4,147,3,15,3,212,2, +195,2,136,2,20,2,155,1,39,1,164,0,64,0,61,0,132,0,232,0,113,1,24,2,168,2,14,3,126,3,254,3, +39,4,161,3,176,2,4,2,250,1,64,2,88,2,11,2,100,1,122,0,158,255,80,255,181,255,63,0,59,0,180,255, +88,255,118,255,143,255,43,255,160,254,129,254,187,254,195,254,97,254,230,253,189,253,251,253,75,254,93,254,72,254,64,254, +67,254,71,254,96,254,129,254,121,254,84,254,68,254,64,254,13,254,150,253,253,252,116,252,44,252,67,252,167,252,243,252, +223,252,216,252,162,253,34,255,66,0,70,0,139,255,197,254,62,254,242,253,209,253,198,253,178,253,129,253,73,253,58,253, +103,253,191,253,71,254,1,255,173,255,243,255,242,255,17,0,84,0,97,0,21,0,165,255,40,255,176,254,144,254,3,255, +181,255,39,0,89,0,193,0,172,1,212,2,170,3,249,3,239,3,185,3,113,3,51,3,202,2,221,1,170,0,210,255, +114,255,58,255,50,255,197,255,42,1,249,2,92,4,241,4,91,5,80,6,117,7,214,7,2,7,67,5,74,3,184,1, +177,0,254,255,159,255,192,255,77,0,18,1,225,1,146,2,42,3,218,3,152,4,32,5,70,5,216,4,125,3,40,1, +125,254,107,252,107,251,68,251,123,251,225,251,163,252,214,253,61,255,127,0,104,1,225,1,200,1,29,1,43,0,50,255, +31,254,242,252,232,251,28,251,118,250,5,250,251,249,105,250,50,251,31,252,1,253,229,253,230,254,231,255,184,0,63,1, +93,1,252,0,32,0,189,254,21,253,3,252,6,252,119,252,158,252,176,252,28,253,207,253,136,254,79,255,73,0,63,1, +130,1,194,0,186,255,57,255,1,255,103,254,133,253,1,253,43,253,203,253,130,254,46,255,225,255,148,0,24,1,67,1, +3,1,138,0,83,0,124,0,115,0,206,255,7,255,220,254,113,255,75,0,222,0,12,1,53,1,184,1,142,2,114,3, +59,4,245,4,166,5,10,6,229,5,117,5,243,4,240,3,12,2,230,255,140,254,96,254,3,255,22,0,147,1,81,3, +150,4,208,4,125,4,104,4,98,4,193,3,168,2,206,1,99,1,255,0,120,0,67,0,178,0,69,1,79,1,231,0, +155,0,153,0,181,0,205,0,201,0,158,0,69,0,182,255,20,255,170,254,152,254,234,254,195,255,219,0,100,1,252,0, +33,0,101,255,189,254,202,253,121,252,74,251,176,250,119,250,71,250,94,250,13,251,14,252,225,252,66,253,52,253,3,253, +23,253,143,253,31,254,101,254,69,254,24,254,66,254,129,254,70,254,162,253,33,253,230,252,195,252,222,252,132,253,152,254, +149,255,29,0,59,0,32,0,216,255,102,255,234,254,132,254,79,254,97,254,170,254,12,255,139,255,42,0,166,0,208,0, +202,0,220,0,14,1,19,1,176,0,88,0,197,0,232,1,242,2,113,3,162,3,179,3,110,3,136,2,33,1,216,255, +74,255,141,255,67,0,242,0,49,1,19,1,57,1,7,2,50,3,83,4,71,5,226,5,228,5,73,5,74,4,57,3, +80,2,139,1,234,0,191,0,91,1,123,2,92,3,118,3,208,2,191,1,137,0,98,255,141,254,44,254,20,254,23,254, +76,254,200,254,56,255,47,255,183,254,106,254,193,254,124,255,16,0,105,0,191,0,252,0,223,0,153,0,177,0,63,1, +159,1,46,1,75,0,236,255,60,0,95,0,198,255,233,254,96,254,11,254,121,253,191,252,123,252,217,252,51,253,254,252, +158,252,182,252,68,253,231,253,138,254,49,255,132,255,45,255,108,254,220,253,166,253,113,253,25,253,7,253,145,253,118,254, +58,255,194,255,54,0,154,0,240,0,104,1,4,2,87,2,9,2,95,1,220,0,171,0,120,0,221,255,241,254,90,254, +135,254,27,255,128,255,170,255,221,255,13,0,247,255,157,255,85,255,87,255,138,255,212,255,105,0,91,1,42,2,72,2, +244,1,221,1,10,2,225,1,71,1,246,0,100,1,238,1,191,1,20,1,231,0,126,1,36,2,92,2,79,2,18,2, +117,1,188,0,121,0,156,0,138,0,44,0,23,0,188,0,193,1,106,2,139,2,197,2,104,3,202,3,83,3,103,2, +155,1,220,0,3,0,84,255,7,255,231,254,181,254,153,254,221,254,72,255,64,255,169,254,40,254,60,254,155,254,166,254, +23,254,68,253,227,252,59,253,179,253,128,253,176,252,27,252,117,252,154,253,179,254,24,255,251,254,244,254,23,255,243,254, +83,254,113,253,129,252,164,251,80,251,7,252,123,253,160,254,193,254,22,254,77,253,220,252,189,252,182,252,209,252,83,253, +28,254,180,254,235,254,7,255,71,255,154,255,204,255,203,255,197,255,231,255,30,0,71,0,93,0,108,0,158,0,9,1, +86,1,37,1,240,0,158,1,60,3,217,4,140,5,93,5,41,5,127,5,196,5,25,5,148,3,6,2,249,0,130,0, +131,0,191,0,254,0,73,1,227,1,245,2,17,4,124,4,64,4,44,4,122,4,100,4,120,3,85,2,209,1,249,1, +25,2,170,1,253,0,200,0,58,1,5,2,200,2,22,3,169,2,194,1,236,0,99,0,242,255,88,255,159,254,22,254, +239,253,13,254,69,254,124,254,149,254,144,254,155,254,190,254,187,254,120,254,47,254,17,254,227,253,66,253,61,252,89,251, +214,250,134,250,103,250,171,250,80,251,24,252,176,252,221,252,196,252,205,252,5,253,35,253,7,253,171,252,236,251,236,250, +20,250,188,249,244,249,118,250,227,250,109,251,161,252,83,254,176,255,79,0,98,0,46,0,0,0,26,0,113,0,203,0, +220,0,110,0,246,255,62,0,10,1,78,1,244,0,240,0,140,1,7,2,228,1,158,1,229,1,159,2,31,3,37,3, +26,3,41,3,244,2,109,2,13,2,245,1,168,1,255,0,196,0,183,1,91,3,157,4,79,5,6,6,185,6,179,6, +205,5,187,4,216,3,168,2,12,1,13,0,101,0,46,1,54,1,198,0,235,0,193,1,133,2,164,2,57,2,178,1, +68,1,26,1,189,1,52,3,34,4,81,3,158,1,184,0,182,0,110,0,110,255,139,254,155,254,53,255,41,255,65,254, +138,253,140,253,167,253,116,253,132,253,82,254,96,255,187,255,33,255,90,254,41,254,97,254,153,254,240,254,115,255,173,255, +119,255,62,255,37,255,204,254,27,254,133,253,89,253,64,253,198,252,28,252,215,251,5,252,50,252,45,252,59,252,129,252, +208,252,55,253,24,254,93,255,33,0,209,255,255,254,139,254,140,254,136,254,83,254,55,254,123,254,242,254,40,255,8,255, +250,254,78,255,244,255,175,0,58,1,114,1,131,1,172,1,228,1,252,1,210,1,103,1,247,0,199,0,189,0,135,0, +12,0,96,255,159,254,13,254,245,253,94,254,18,255,219,255,155,0,101,1,88,2,66,3,196,3,190,3,101,3,31,3, +76,3,214,3,26,4,165,3,195,2,5,2,168,1,147,1,169,1,232,1,75,2,168,2,224,2,11,3,60,3,83,3, +49,3,210,2,57,2,140,1,24,1,233,0,174,0,77,0,24,0,45,0,46,0,229,255,183,255,16,0,209,0,132,1, +236,1,0,2,161,1,180,0,147,255,208,254,117,254,2,254,107,253,83,253,242,253,148,254,158,254,84,254,61,254,113,254, +192,254,29,255,136,255,201,255,151,255,7,255,137,254,67,254,242,253,106,253,207,252,80,252,31,252,104,252,14,253,172,253, +3,254,26,254,242,253,137,253,250,252,125,252,85,252,158,252,11,253,30,253,204,252,136,252,173,252,45,253,221,253,162,254, +90,255,194,255,170,255,73,255,47,255,140,255,221,255,175,255,65,255,8,255,16,255,82,255,218,255,123,0,217,0,234,0, +4,1,115,1,34,2,155,2,157,2,152,2,25,3,233,3,96,4,55,4,157,3,246,2,168,2,179,2,160,2,42,2, +149,1,62,1,46,1,50,1,32,1,16,1,61,1,154,1,207,1,213,1,7,2,135,2,254,2,15,3,210,2,173,2, +195,2,198,2,141,2,115,2,186,2,226,2,89,2,136,1,80,1,158,1,118,1,137,0,180,255,168,255,13,0,58,0, +247,255,103,255,192,254,64,254,28,254,83,254,144,254,109,254,225,253,59,253,187,252,131,252,170,252,12,253,73,253,69,253, +51,253,58,253,74,253,61,253,21,253,8,253,46,253,55,253,249,252,200,252,225,252,10,253,11,253,232,252,177,252,150,252, +209,252,68,253,148,253,201,253,67,254,248,254,66,255,183,254,249,253,12,254,225,254,87,255,211,254,250,253,193,253,78,254, +234,254,244,254,174,254,240,254,14,0,125,1,118,2,149,2,30,2,206,1,54,2,18,3,143,3,77,3,222,2,0,3, +137,3,168,3,52,3,215,2,249,2,99,3,207,3,17,4,254,3,164,3,84,3,73,3,107,3,78,3,155,2,172,1, +57,1,57,1,0,1,126,0,96,0,213,0,35,1,193,0,44,0,49,0,197,0,65,1,109,1,157,1,0,2,88,2, +76,2,182,1,205,0,244,255,100,255,36,255,58,255,146,255,241,255,43,0,52,0,1,0,175,255,124,255,141,255,213,255, +21,0,246,255,125,255,11,255,181,254,56,254,156,253,62,253,58,253,106,253,186,253,31,254,100,254,61,254,166,253,20,253, +244,252,5,253,220,252,195,252,77,253,72,254,234,254,222,254,144,254,122,254,157,254,195,254,250,254,100,255,217,255,50,0, +134,0,180,0,79,0,74,255,71,254,224,253,2,254,36,254,255,253,223,253,31,254,164,254,33,255,111,255,137,255,130,255, +136,255,159,255,154,255,107,255,57,255,28,255,17,255,29,255,62,255,98,255,120,255,127,255,129,255,146,255,176,255,193,255, +166,255,104,255,88,255,196,255,124,0,34,1,203,1,167,2,75,3,42,3,122,2,12,2,84,2,2,3,97,3,33,3, +165,2,111,2,135,2,168,2,160,2,93,2,233,1,128,1,97,1,133,1,177,1,186,1,161,1,125,1,100,1,108,1, +144,1,171,1,198,1,47,2,227,2,102,3,92,3,238,2,113,2,13,2,178,1,42,1,110,0,231,255,4,0,148,0, +232,0,158,0,34,0,47,0,227,0,150,1,189,1,120,1,24,1,185,0,108,0,49,0,186,255,189,254,132,253,190,252, +195,252,69,253,201,253,31,254,70,254,32,254,159,253,23,253,244,252,47,253,93,253,59,253,234,252,173,252,175,252,235,252, +45,253,71,253,80,253,127,253,208,253,38,254,132,254,200,254,149,254,217,253,14,253,177,252,205,252,53,253,185,253,23,254, +45,254,28,254,29,254,68,254,114,254,118,254,63,254,253,253,7,254,142,254,108,255,65,0,157,0,65,0,95,255,146,254, +113,254,14,255,4,0,230,0,121,1,186,1,228,1,52,2,155,2,216,2,230,2,237,2,17,3,120,3,48,4,231,4, +56,5,75,5,140,5,218,5,183,5,22,5,91,4,183,3,20,3,138,2,91,2,144,2,227,2,11,3,241,2,157,2, +27,2,134,1,12,1,185,0,108,0,39,0,37,0,120,0,233,0,56,1,77,1,26,1,172,0,68,0,30,0,40,0, +24,0,195,255,68,255,232,254,239,254,83,255,206,255,9,0,203,255,19,255,32,254,91,253,44,253,191,253,203,254,169,255, +220,255,130,255,25,255,232,254,231,254,240,254,213,254,106,254,185,253,249,252,66,252,126,251,185,250,45,250,243,249,242,249, +23,250,110,250,249,250,141,251,240,251,20,252,35,252,83,252,208,252,172,253,175,254,70,255,13,255,80,254,192,253,192,253, +73,254,79,255,163,0,193,1,63,2,78,2,92,2,130,2,159,2,151,2,92,2,252,1,182,1,155,1,89,1,196,0, +47,0,248,255,34,0,139,0,19,1,143,1,232,1,56,2,128,2,130,2,38,2,190,1,176,1,242,1,33,2,252,1, +161,1,86,1,79,1,159,1,56,2,202,2,241,2,201,2,4,3,4,4,25,5,76,5,166,4,254,3,172,3,64,3, +132,2,232,1,188,1,157,1,11,1,20,0,30,255,106,254,5,254,246,253,45,254,115,254,171,254,231,254,42,255,73,255, +46,255,254,254,220,254,182,254,110,254,36,254,30,254,99,254,148,254,99,254,14,254,19,254,108,254,156,254,152,254,255,254, +12,0,250,0,10,1,131,0,31,0,229,255,77,255,65,254,90,253,245,252,200,252,144,252,155,252,47,253,253,253,152,254, +11,255,116,255,175,255,187,255,237,255,90,0,142,0,42,0,75,255,61,254,26,253,245,251,45,251,74,251,98,252,214,253, +243,254,175,255,121,0,111,1,83,2,255,2,86,3,249,2,185,1,46,0,42,255,197,254,100,254,170,253,252,252,246,252, +163,253,110,254,254,254,179,255,238,0,75,2,21,3,47,3,241,2,147,2,61,2,39,2,39,2,161,1,98,0,26,255, +129,254,137,254,214,254,108,255,120,0,183,1,179,2,107,3,50,4,240,4,249,4,232,3,73,2,37,1,239,0,56,1, +89,1,49,1,24,1,100,1,5,2,157,2,225,2,224,2,242,2,71,3,134,3,12,3,203,1,141,0,24,0,65,0, +68,0,211,255,95,255,82,255,131,255,125,255,41,255,223,254,229,254,41,255,123,255,191,255,197,255,82,255,125,254,193,253, +109,253,97,253,116,253,190,253,77,254,230,254,66,255,95,255,116,255,172,255,240,255,0,0,205,255,141,255,113,255,97,255, +29,255,132,254,190,253,38,253,242,252,240,252,214,252,188,252,248,252,151,253,66,254,171,254,202,254,197,254,192,254,170,254, +95,254,6,254,251,253,50,254,34,254,171,253,116,253,17,254,62,255,71,0,213,0,31,1,125,1,240,1,32,2,222,1, +143,1,160,1,238,1,18,2,12,2,46,2,131,2,206,2,228,2,196,2,122,2,43,2,247,1,207,1,130,1,6,1, +129,0,21,0,208,255,191,255,240,255,105,0,250,0,79,1,56,1,244,0,243,0,91,1,223,1,21,2,209,1,43,1, +102,0,220,255,204,255,19,0,66,0,46,0,39,0,110,0,194,0,202,0,179,0,244,0,143,1,242,1,173,1,237,0, +45,0,147,255,215,254,197,253,159,252,200,251,103,251,113,251,223,251,131,252,19,253,138,253,46,254,20,255,254,255,193,0, +107,1,238,1,19,2,230,1,197,1,235,1,25,2,213,1,246,0,217,255,252,254,142,254,135,254,215,254,91,255,203,255, +245,255,229,255,182,255,130,255,111,255,145,255,168,255,85,255,137,254,174,253,78,253,128,253,176,253,65,253,114,252,40,252, +196,252,192,253,139,254,37,255,178,255,43,0,136,0,198,0,195,0,105,0,241,255,145,255,46,255,148,254,225,253,124,253, +185,253,144,254,158,255,125,0,11,1,86,1,107,1,95,1,61,1,238,0,103,0,248,255,3,0,101,0,158,0,133,0, +116,0,181,0,61,1,223,1,120,2,224,2,247,2,200,2,123,2,40,2,194,1,59,1,153,0,0,0,166,255,172,255, +7,0,145,0,54,1,228,1,110,2,168,2,159,2,130,2,104,2,100,2,134,2,164,2,90,2,152,1,203,0,83,0, +50,0,95,0,244,0,203,1,117,2,189,2,224,2,10,3,16,3,214,2,152,2,148,2,139,2,1,2,233,0,185,255, +189,254,208,253,225,252,56,252,251,251,239,251,247,251,74,252,239,252,118,253,119,253,5,253,133,252,67,252,67,252,83,252, +92,252,115,252,180,252,22,253,135,253,242,253,54,254,85,254,141,254,246,254,54,255,237,254,72,254,197,253,147,253,120,253, +68,253,22,253,38,253,114,253,221,253,124,254,99,255,33,0,28,0,151,255,129,255,14,0,93,0,247,255,136,255,196,255, +112,0,6,1,120,1,232,1,57,2,87,2,116,2,197,2,51,3,136,3,171,3,159,3,101,3,1,3,140,2,57,2, +46,2,109,2,231,2,130,3,247,3,241,3,120,3,23,3,66,3,178,3,168,3,247,2,75,2,47,2,73,2,234,1, +21,1,88,0,240,255,164,255,106,255,148,255,40,0,164,0,158,0,86,0,60,0,55,0,227,255,73,255,203,254,111,254, +226,253,54,253,222,252,244,252,23,253,16,253,247,252,217,252,193,252,234,252,106,253,227,253,236,253,159,253,92,253,50,253, +217,252,62,252,208,251,20,252,242,252,181,253,229,253,226,253,92,254,110,255,153,0,103,1,212,1,23,2,66,2,52,2, +217,1,51,1,61,0,26,255,82,254,105,254,52,255,16,0,181,0,74,1,189,1,202,1,142,1,109,1,115,1,95,1, +45,1,7,1,233,0,175,0,82,0,233,255,127,255,24,255,199,254,182,254,7,255,154,255,25,0,92,0,134,0,185,0, +225,0,238,0,255,0,49,1,102,1,101,1,7,1,109,0,11,0,69,0,243,0,116,1,89,1,205,0,86,0,87,0, +192,0,14,1,209,0,56,0,227,255,25,0,114,0,132,0,110,0,116,0,118,0,66,0,28,0,119,0,78,1,38,2, +169,2,227,2,2,3,40,3,78,3,57,3,185,2,239,1,47,1,160,0,53,0,232,255,189,255,165,255,169,255,234,255, +106,0,235,0,45,1,15,1,131,0,153,255,151,254,227,253,195,253,38,254,165,254,209,254,160,254,115,254,173,254,74,255, +214,255,207,255,56,255,186,254,220,254,59,255,8,255,54,254,130,253,85,253,72,253,223,252,63,252,238,251,20,252,68,252, +21,252,187,251,210,251,143,252,123,253,254,253,247,253,187,253,184,253,30,254,177,254,9,255,243,254,139,254,18,254,208,253, +1,254,146,254,23,255,49,255,228,254,143,254,162,254,61,255,248,255,76,0,73,0,122,0,8,1,138,1,186,1,201,1, +223,1,216,1,173,1,160,1,210,1,9,2,21,2,15,2,34,2,70,2,98,2,145,2,17,3,202,3,64,4,13,4, +108,3,242,2,241,2,48,3,88,3,91,3,101,3,159,3,13,4,152,4,14,5,55,5,5,5,152,4,2,4,69,3, +134,2,243,1,110,1,158,0,115,255,96,254,223,253,234,253,21,254,21,254,20,254,99,254,241,254,105,255,169,255,222,255, +12,0,5,0,186,255,71,255,176,254,5,254,164,253,216,253,94,254,153,254,79,254,221,253,192,253,14,254,116,254,165,254, +157,254,121,254,51,254,175,253,2,253,86,252,190,251,62,251,238,250,236,250,91,251,81,252,168,253,236,254,179,255,7,0, +61,0,138,0,213,0,252,0,19,1,71,1,131,1,110,1,233,0,84,0,16,0,20,0,32,0,39,0,69,0,120,0, +166,0,179,0,143,0,82,0,60,0,110,0,179,0,198,0,158,0,108,0,82,0,84,0,98,0,106,0,106,0,104,0, +96,0,87,0,112,0,188,0,7,1,17,1,214,0,131,0,51,0,247,255,229,255,251,255,0,0,196,255,122,255,130,255, +234,255,95,0,173,0,245,0,68,1,94,1,32,1,209,0,198,0,225,0,188,0,64,0,195,255,151,255,177,255,219,255, +254,255,26,0,57,0,141,0,76,1,69,2,241,2,31,3,43,3,67,3,7,3,63,2,111,1,51,1,82,1,7,1, +16,0,21,255,227,254,120,255,11,0,251,255,108,255,240,254,223,254,44,255,152,255,204,255,161,255,109,255,171,255,62,0, +118,0,6,0,123,255,111,255,178,255,190,255,164,255,228,255,121,0,180,0,57,0,112,255,197,254,33,254,107,253,254,252, +21,253,72,253,35,253,203,252,161,252,175,252,206,252,13,253,119,253,188,253,122,253,218,252,122,252,168,252,6,253,21,253, +225,252,211,252,22,253,127,253,239,253,100,254,193,254,221,254,221,254,24,255,157,255,17,0,69,0,138,0,41,1,197,1, +203,1,104,1,119,1,78,2,44,3,64,3,173,2,34,2,219,1,161,1,106,1,102,1,145,1,186,1,229,1,55,2, +176,2,65,3,254,3,201,4,22,5,135,4,151,3,16,3,13,3,245,2,116,2,220,1,136,1,93,1,24,1,200,0, +196,0,50,1,195,1,1,2,207,1,120,1,68,1,25,1,192,0,55,0,172,255,69,255,14,255,7,255,13,255,221,254, +87,254,188,253,115,253,137,253,161,253,113,253,31,253,2,253,66,253,193,253,59,254,122,254,129,254,154,254,231,254,24,255, +209,254,58,254,192,253,114,253,16,253,172,252,163,252,4,253,107,253,151,253,187,253,43,254,240,254,206,255,119,0,183,0, +154,0,97,0,46,0,228,255,121,255,69,255,151,255,36,0,91,0,61,0,98,0,5,1,173,1,215,1,154,1,100,1, +104,1,140,1,177,1,203,1,210,1,188,1,131,1,69,1,56,1,99,1,135,1,106,1,54,1,52,1,76,1,29,1, +143,0,254,255,164,255,83,255,214,254,77,254,1,254,18,254,102,254,184,254,178,254,74,254,254,253,75,254,240,254,51,255, +250,254,249,254,160,255,110,0,189,0,180,0,218,0,43,1,47,1,198,0,86,0,51,0,64,0,51,0,245,255,169,255, +148,255,231,255,127,0,241,0,239,0,142,0,33,0,236,255,14,0,116,0,234,0,70,1,128,1,142,1,90,1,255,0, +229,0,76,1,248,1,131,2,223,2,41,3,81,3,70,3,58,3,83,3,72,3,181,2,200,1,25,1,224,0,204,0, +146,0,66,0,249,255,177,255,105,255,60,255,37,255,250,254,174,254,99,254,52,254,26,254,17,254,11,254,220,253,99,253, +199,252,93,252,88,252,164,252,245,252,246,252,149,252,45,252,52,252,168,252,28,253,92,253,151,253,222,253,234,253,166,253, +114,253,158,253,234,253,252,253,241,253,31,254,129,254,221,254,43,255,137,255,218,255,253,255,29,0,130,0,18,1,102,1, +81,1,19,1,248,0,11,1,35,1,27,1,1,1,17,1,112,1,255,1,125,2,215,2,56,3,188,3,64,4,129,4, +94,4,245,3,160,3,158,3,182,3,101,3,156,2,255,1,16,2,127,2,184,2,200,2,31,3,163,3,192,3,83,3, +214,2,156,2,106,2,12,2,179,1,137,1,94,1,2,1,153,0,72,0,238,255,106,255,224,254,138,254,116,254,128,254, +143,254,132,254,79,254,10,254,219,253,178,253,85,253,193,252,68,252,31,252,53,252,58,252,31,252,45,252,164,252,93,253, +230,253,14,254,39,254,133,254,226,254,169,254,219,253,50,253,59,253,184,253,24,254,50,254,54,254,67,254,93,254,153,254, +8,255,153,255,50,0,189,0,5,1,196,0,13,0,90,255,251,254,196,254,117,254,42,254,37,254,116,254,2,255,203,255, +169,0,62,1,90,1,67,1,99,1,198,1,53,2,137,2,164,2,91,2,180,1,33,1,19,1,107,1,152,1,82,1, +230,0,212,0,56,1,184,1,240,1,216,1,194,1,251,1,103,2,160,2,95,2,189,1,13,1,140,0,52,0,215,255, +108,255,43,255,73,255,152,255,179,255,149,255,162,255,19,0,157,0,233,0,5,1,24,1,7,1,199,0,162,0,198,0, +203,0,63,0,111,255,13,255,51,255,94,255,96,255,152,255,56,0,212,0,2,1,225,0,185,0,135,0,45,0,204,255, +155,255,144,255,123,255,89,255,66,255,53,255,32,255,19,255,46,255,98,255,129,255,151,255,227,255,101,0,175,0,115,0, +12,0,41,0,213,0,83,1,15,1,94,0,244,255,250,255,0,0,184,255,53,255,142,254,198,253,20,253,200,252,213,252, +230,252,254,252,124,253,92,254,7,255,36,255,30,255,121,255,0,0,32,0,201,255,106,255,64,255,26,255,207,254,139,254, +132,254,181,254,252,254,70,255,137,255,191,255,247,255,68,0,137,0,139,0,63,0,238,255,211,255,194,255,102,255,212,254, +154,254,10,255,182,255,223,255,97,255,231,254,40,255,35,0,70,1,13,2,81,2,64,2,47,2,96,2,195,2,248,2, +200,2,99,2,16,2,192,1,64,1,188,0,165,0,23,1,162,1,208,1,174,1,170,1,6,2,143,2,207,2,127,2, +188,1,241,0,119,0,85,0,84,0,58,0,252,255,184,255,153,255,178,255,239,255,43,0,87,0,130,0,168,0,164,0, +97,0,13,0,251,255,70,0,181,0,253,0,0,1,212,0,151,0,74,0,231,255,128,255,67,255,71,255,98,255,78,255, +10,255,217,254,228,254,234,254,143,254,230,253,131,253,206,253,113,254,179,254,72,254,154,253,55,253,43,253,46,253,53,253, +132,253,25,254,118,254,47,254,135,253,46,253,124,253,36,254,187,254,52,255,188,255,73,0,138,0,69,0,164,255,18,255, +222,254,1,255,66,255,117,255,148,255,175,255,204,255,234,255,24,0,92,0,158,0,184,0,166,0,149,0,170,0,194,0, +156,0,70,0,28,0,89,0,208,0,51,1,117,1,207,1,70,2,133,2,76,2,214,1,159,1,219,1,61,2,84,2, +6,2,148,1,60,1,248,0,166,0,67,0,236,255,183,255,173,255,226,255,102,0,15,1,132,1,153,1,124,1,109,1, +112,1,109,1,98,1,100,1,102,1,71,1,6,1,186,0,106,0,5,0,145,255,45,255,246,254,245,254,48,255,162,255, +30,0,103,0,118,0,130,0,169,0,210,0,213,0,177,0,119,0,22,0,110,255,159,254,23,254,23,254,96,254,141,254, +155,254,221,254,125,255,47,0,150,0,179,0,177,0,130,0,23,0,169,255,116,255,82,255,243,254,87,254,206,253,117,253, +21,253,167,252,132,252,223,252,123,253,7,254,101,254,112,254,234,253,247,252,71,252,96,252,232,252,33,253,244,252,250,252, +141,253,75,254,159,254,126,254,84,254,119,254,249,254,213,255,220,0,169,1,228,1,175,1,132,1,176,1,2,2,55,2, +107,2,202,2,35,3,58,3,46,3,49,3,43,3,231,2,133,2,89,2,77,2,3,2,158,1,181,1,55,2,76,2, +149,1,222,0,9,1,238,1,180,2,254,2,28,3,56,3,21,3,160,2,29,2,188,1,110,1,50,1,29,1,49,1, +85,1,118,1,136,1,108,1,38,1,254,0,44,1,110,1,71,1,149,0,179,255,252,254,103,254,185,253,255,252,145,252, +164,252,1,253,49,253,9,253,223,252,14,253,104,253,130,253,83,253,22,253,224,252,161,252,104,252,104,252,152,252,173,252, +152,252,178,252,30,253,137,253,192,253,245,253,88,254,214,254,76,255,177,255,3,0,56,0,74,0,70,0,38,0,212,255, +121,255,110,255,183,255,254,255,41,0,127,0,51,1,21,2,210,2,81,3,161,3,174,3,96,3,194,2,252,1,70,1, +210,0,162,0,130,0,72,0,9,0,1,0,78,0,202,0,58,1,114,1,90,1,26,1,22,1,93,1,127,1,49,1, +172,0,82,0,57,0,59,0,63,0,75,0,86,0,75,0,66,0,71,0,32,0,210,255,205,255,43,0,83,0,217,255, +49,255,21,255,130,255,200,255,139,255,48,255,25,255,54,255,97,255,152,255,193,255,203,255,234,255,78,0,192,0,215,0, +155,0,131,0,190,0,252,0,251,0,216,0,183,0,129,0,36,0,210,255,217,255,49,0,133,0,170,0,199,0,21,1, +156,1,29,2,67,2,11,2,183,1,97,1,3,1,183,0,160,0,186,0,222,0,216,0,156,0,66,0,208,255,78,255, +244,254,220,254,226,254,254,254,63,255,126,255,105,255,225,254,42,254,190,253,210,253,33,254,70,254,37,254,222,253,161,253, +129,253,93,253,10,253,141,252,11,252,192,251,250,251,205,252,212,253,108,254,88,254,252,253,227,253,41,254,160,254,24,255, +81,255,12,255,102,254,219,253,193,253,240,253,6,254,253,253,15,254,57,254,110,254,249,254,238,255,186,0,210,0,129,0, +135,0,45,1,244,1,94,2,152,2,230,2,8,3,185,2,66,2,13,2,44,2,92,2,88,2,43,2,53,2,169,2, +84,3,218,3,247,3,184,3,111,3,75,3,54,3,18,3,201,2,79,2,199,1,116,1,110,1,149,1,190,1,221,1, +244,1,239,1,209,1,217,1,31,2,83,2,14,2,81,1,120,0,214,255,117,255,71,255,68,255,52,255,206,254,62,254, +248,253,9,254,30,254,22,254,39,254,116,254,175,254,115,254,254,253,232,253,34,254,23,254,176,253,93,253,83,253,84,253, +33,253,229,252,247,252,57,253,81,253,109,253,250,253,223,254,171,255,61,0,180,0,4,1,233,0,85,0,177,255,113,255, +146,255,208,255,5,0,34,0,34,0,51,0,136,0,4,1,72,1,44,1,254,0,11,1,54,1,76,1,94,1,108,1, +37,1,62,0,0,255,62,254,113,254,32,255,133,255,121,255,95,255,135,255,232,255,51,0,66,0,78,0,140,0,247,0, +138,1,40,2,130,2,106,2,5,2,135,1,34,1,237,0,213,0,205,0,208,0,176,0,83,0,229,255,157,255,167,255, +34,0,215,0,76,1,91,1,73,1,84,1,80,1,234,0,50,0,155,255,81,255,17,255,203,254,204,254,54,255,170,255, +179,255,77,255,229,254,231,254,118,255,86,0,251,0,16,1,252,0,74,1,212,1,253,1,132,1,206,0,87,0,32,0, +243,255,242,255,61,0,134,0,146,0,138,0,131,0,95,0,39,0,251,255,226,255,205,255,182,255,185,255,211,255,168,255, +7,255,99,254,34,254,11,254,234,253,241,253,69,254,170,254,203,254,152,254,83,254,68,254,133,254,10,255,119,255,59,255, +85,254,144,253,133,253,227,253,8,254,226,253,221,253,43,254,143,254,221,254,29,255,61,255,35,255,239,254,213,254,223,254, +237,254,239,254,250,254,5,255,205,254,79,254,250,253,27,254,158,254,84,255,5,0,129,0,199,0,245,0,67,1,230,1, +176,2,21,3,236,2,142,2,78,2,57,2,59,2,72,2,116,2,165,2,120,2,232,1,137,1,193,1,78,2,184,2, +201,2,155,2,114,2,118,2,166,2,220,2,207,2,101,2,234,1,159,1,108,1,45,1,247,0,207,0,127,0,248,255, +178,255,30,0,228,0,57,1,246,0,166,0,177,0,223,0,179,0,10,0,66,255,191,254,149,254,176,254,225,254,242,254, +237,254,230,254,196,254,143,254,134,254,169,254,179,254,123,254,3,254,108,253,208,252,34,252,120,251,43,251,86,251,181,251, +22,252,91,252,126,252,186,252,77,253,8,254,144,254,199,254,214,254,242,254,30,255,53,255,65,255,93,255,119,255,135,255, +176,255,230,255,241,255,217,255,242,255,97,0,195,0,183,0,135,0,187,0,74,1,174,1,155,1,72,1,31,1,71,1, +122,1,105,1,13,1,154,0,85,0,76,0,54,0,246,255,225,255,24,0,81,0,104,0,132,0,190,0,253,0,38,1, +87,1,214,1,124,2,173,2,53,2,123,1,228,0,148,0,123,0,86,0,17,0,240,255,37,0,127,0,166,0,118,0, +44,0,33,0,72,0,94,0,94,0,104,0,142,0,240,0,153,1,38,2,246,1,220,0,138,255,248,254,85,255,243,255, +35,0,217,255,138,255,160,255,13,0,132,0,240,0,110,1,237,1,33,2,207,1,56,1,248,0,32,1,13,1,114,0, +191,255,113,255,139,255,190,255,192,255,161,255,163,255,216,255,56,0,175,0,239,0,200,0,107,0,6,0,154,255,65,255, +22,255,1,255,240,254,4,255,93,255,227,255,60,0,40,0,229,255,202,255,195,255,157,255,100,255,45,255,220,254,101,254, +240,253,184,253,177,253,160,253,128,253,137,253,208,253,51,254,132,254,187,254,241,254,53,255,91,255,52,255,200,254,107,254, +140,254,50,255,203,255,231,255,183,255,161,255,192,255,242,255,251,255,202,255,142,255,114,255,153,255,43,0,242,0,102,1, +90,1,18,1,216,0,200,0,201,0,177,0,147,0,148,0,144,0,100,0,52,0,53,0,118,0,236,0,96,1,174,1, +243,1,74,2,159,2,200,2,181,2,140,2,132,2,132,2,54,2,165,1,79,1,128,1,223,1,216,1,111,1,57,1, +133,1,0,2,47,2,222,1,34,1,63,0,115,255,226,254,153,254,125,254,111,254,121,254,144,254,145,254,159,254,225,254, +27,255,9,255,210,254,198,254,13,255,122,255,181,255,177,255,160,255,138,255,102,255,80,255,67,255,47,255,79,255,203,255, +75,0,93,0,240,255,82,255,214,254,130,254,58,254,19,254,12,254,219,253,112,253,52,253,122,253,24,254,168,254,234,254, +231,254,194,254,163,254,181,254,239,254,22,255,28,255,54,255,121,255,179,255,178,255,141,255,150,255,219,255,20,0,40,0, +81,0,185,0,73,1,203,1,250,1,213,1,156,1,107,1,43,1,228,0,169,0,132,0,133,0,159,0,173,0,165,0, +136,0,90,0,85,0,136,0,153,0,81,0,242,255,177,255,120,255,56,255,24,255,95,255,10,0,193,0,92,1,5,2, +171,2,246,2,229,2,209,2,210,2,156,2,241,1,22,1,137,0,110,0,129,0,126,0,77,0,4,0,229,255,37,0, +171,0,3,1,187,0,235,255,56,255,22,255,99,255,189,255,218,255,185,255,143,255,118,255,89,255,51,255,236,254,94,254, +192,253,143,253,224,253,89,254,173,254,224,254,35,255,97,255,67,255,242,254,23,255,198,255,72,0,63,0,16,0,59,0, +187,0,48,1,95,1,95,1,48,1,201,0,118,0,119,0,126,0,26,0,108,255,232,254,178,254,133,254,53,254,248,253, +6,254,74,254,159,254,253,254,79,255,121,255,135,255,153,255,164,255,89,255,152,254,220,253,188,253,43,254,148,254,138,254, +32,254,211,253,248,253,102,254,223,254,85,255,173,255,206,255,242,255,87,0,230,0,82,1,105,1,83,1,111,1,178,1, +183,1,132,1,113,1,140,1,179,1,236,1,50,2,88,2,57,2,237,1,202,1,238,1,241,1,124,1,202,0,71,0, +23,0,41,0,83,0,119,0,158,0,219,0,24,1,30,1,223,0,173,0,233,0,117,1,218,1,218,1,147,1,65,1, +27,1,51,1,113,1,154,1,125,1,61,1,38,1,45,1,41,1,57,1,99,1,67,1,172,0,0,0,155,255,88,255, +213,254,26,254,175,253,189,253,215,253,204,253,223,253,238,253,150,253,18,253,254,252,128,253,42,254,152,254,217,254,19,255, +7,255,146,254,31,254,8,254,16,254,249,253,241,253,21,254,41,254,4,254,221,253,10,254,138,254,29,255,172,255,62,0, +176,0,220,0,213,0,199,0,207,0,233,0,248,0,212,0,110,0,4,0,9,0,114,0,151,0,31,0,123,255,61,255, +130,255,240,255,24,0,0,0,21,0,138,0,34,1,128,1,124,1,99,1,166,1,21,2,15,2,126,1,225,0,130,0, +67,0,241,255,155,255,136,255,192,255,245,255,8,0,35,0,81,0,128,0,169,0,201,0,236,0,42,1,97,1,89,1, +24,1,211,0,164,0,131,0,109,0,120,0,184,0,18,1,88,1,117,1,73,1,175,0,206,255,27,255,228,254,240,254, +205,254,135,254,126,254,188,254,251,254,46,255,87,255,88,255,58,255,56,255,113,255,205,255,34,0,105,0,179,0,196,0, +71,0,161,255,155,255,59,0,191,0,170,0,43,0,183,255,133,255,138,255,198,255,47,0,119,0,111,0,105,0,185,0, +47,1,101,1,47,1,188,0,102,0,73,0,43,0,225,255,124,255,32,255,236,254,225,254,228,254,239,254,9,255,32,255, +30,255,14,255,25,255,84,255,141,255,115,255,242,254,80,254,249,253,38,254,137,254,164,254,120,254,104,254,150,254,217,254, +19,255,54,255,50,255,3,255,192,254,182,254,22,255,122,255,101,255,252,254,182,254,197,254,19,255,117,255,200,255,27,0, +124,0,208,0,255,0,22,1,47,1,100,1,146,1,98,1,225,0,148,0,188,0,22,1,79,1,94,1,109,1,152,1, +221,1,58,2,172,2,2,3,13,3,219,2,141,2,46,2,190,1,74,1,233,0,164,0,112,0,64,0,11,0,204,255, +179,255,5,0,157,0,255,0,252,0,214,0,216,0,243,0,219,0,108,0,218,255,90,255,248,254,188,254,146,254,88,254, +56,254,127,254,22,255,166,255,248,255,2,0,220,255,165,255,92,255,13,255,210,254,153,254,81,254,29,254,247,253,170,253, +90,253,109,253,239,253,129,254,236,254,82,255,197,255,1,0,209,255,124,255,99,255,121,255,118,255,90,255,99,255,152,255, +159,255,59,255,174,254,88,254,91,254,169,254,10,255,57,255,66,255,132,255,32,0,195,0,18,1,29,1,59,1,119,1, +126,1,53,1,231,0,195,0,160,0,77,0,238,255,236,255,109,0,7,1,72,1,88,1,155,1,41,2,188,2,234,2, +152,2,51,2,37,2,80,2,91,2,30,2,158,1,16,1,193,0,176,0,137,0,31,0,165,255,113,255,155,255,229,255, +18,0,40,0,73,0,119,0,151,0,148,0,123,0,92,0,57,0,33,0,9,0,200,255,105,255,61,255,104,255,172,255, +218,255,6,0,96,0,221,0,53,1,46,1,228,0,142,0,56,0,218,255,118,255,31,255,244,254,234,254,206,254,146,254, +113,254,179,254,98,255,20,0,62,0,228,255,153,255,192,255,44,0,102,0,22,0,104,255,233,254,225,254,12,255,21,255, +233,254,173,254,126,254,89,254,55,254,54,254,115,254,203,254,10,255,40,255,57,255,66,255,64,255,70,255,109,255,159,255, +166,255,136,255,134,255,198,255,34,0,85,0,84,0,89,0,131,0,182,0,222,0,5,1,33,1,22,1,213,0,118,0, +52,0,54,0,92,0,102,0,50,0,188,255,51,255,228,254,216,254,217,254,224,254,23,255,128,255,225,255,22,0,72,0, +157,0,212,0,135,0,220,255,105,255,109,255,144,255,126,255,97,255,141,255,237,255,35,0,36,0,57,0,133,0,243,0, +107,1,214,1,29,2,71,2,112,2,146,2,126,2,15,2,114,1,16,1,34,1,107,1,118,1,14,1,98,0,202,255, +132,255,139,255,154,255,106,255,23,255,254,254,53,255,137,255,221,255,47,0,117,0,155,0,136,0,66,0,14,0,43,0, +103,0,116,0,83,0,60,0,67,0,69,0,34,0,238,255,230,255,26,0,71,0,47,0,232,255,172,255,146,255,148,255, +182,255,233,255,233,255,145,255,22,255,189,254,149,254,139,254,146,254,174,254,230,254,17,255,235,254,129,254,52,254,63,254, +125,254,175,254,185,254,158,254,114,254,91,254,112,254,174,254,4,255,111,255,248,255,159,0,51,1,97,1,15,1,140,0, +45,0,233,255,174,255,137,255,108,255,54,255,9,255,30,255,108,255,181,255,222,255,23,0,144,0,37,1,138,1,194,1, +243,1,253,1,169,1,44,1,245,0,252,0,211,0,118,0,99,0,206,0,61,1,62,1,1,1,252,0,67,1,137,1, +155,1,153,1,168,1,188,1,194,1,174,1,91,1,176,0,242,255,152,255,188,255,248,255,247,255,217,255,241,255,75,0, +159,0,173,0,112,0,24,0,230,255,4,0,95,0,168,0,163,0,110,0,98,0,134,0,143,0,105,0,90,0,125,0, +128,0,30,0,161,255,135,255,188,255,176,255,52,255,197,254,206,254,42,255,114,255,117,255,64,255,236,254,146,254,91,254, +105,254,178,254,14,255,89,255,107,255,39,255,192,254,169,254,11,255,118,255,110,255,19,255,228,254,21,255,100,255,124,255, +71,255,244,254,196,254,191,254,183,254,138,254,81,254,64,254,108,254,175,254,223,254,13,255,91,255,170,255,183,255,144,255, +142,255,213,255,53,0,103,0,83,0,21,0,235,255,7,0,90,0,179,0,250,0,50,1,89,1,116,1,155,1,212,1, +13,2,52,2,63,2,51,2,29,2,245,1,169,1,67,1,232,0,157,0,95,0,80,0,127,0,174,0,142,0,31,0, +179,255,168,255,22,0,155,0,180,0,95,0,21,0,17,0,15,0,215,255,152,255,149,255,180,255,159,255,68,255,18,255, +112,255,40,0,161,0,156,0,92,0,52,0,78,0,169,0,18,1,71,1,56,1,235,0,72,0,87,255,122,254,17,254, +23,254,56,254,59,254,60,254,118,254,240,254,87,255,92,255,14,255,196,254,195,254,11,255,89,255,91,255,5,255,166,254, +137,254,179,254,15,255,134,255,242,255,56,0,92,0,82,0,253,255,124,255,51,255,76,255,138,255,164,255,162,255,191,255, +18,0,124,0,202,0,223,0,174,0,70,0,244,255,251,255,46,0,31,0,209,255,187,255,4,0,64,0,32,0,230,255, +253,255,104,0,206,0,240,0,220,0,186,0,161,0,154,0,161,0,151,0,86,0,244,255,185,255,200,255,241,255,243,255, +209,255,195,255,234,255,54,0,135,0,204,0,0,1,17,1,240,0,171,0,94,0,29,0,4,0,41,0,101,0,102,0, +36,0,6,0,93,0,215,0,233,0,166,0,176,0,65,1,203,1,201,1,99,1,255,0,178,0,110,0,77,0,82,0, +55,0,208,255,102,255,95,255,169,255,220,255,210,255,198,255,213,255,218,255,217,255,13,0,115,0,173,0,134,0,43,0, +216,255,160,255,138,255,149,255,152,255,106,255,23,255,233,254,29,255,157,255,18,0,75,0,92,0,105,0,117,0,131,0, +144,0,115,0,4,0,99,255,225,254,171,254,169,254,164,254,132,254,107,254,126,254,158,254,168,254,189,254,5,255,69,255, +45,255,219,254,170,254,170,254,151,254,67,254,211,253,156,253,203,253,59,254,163,254,223,254,246,254,20,255,112,255,2,0, +106,0,99,0,35,0,10,0,34,0,59,0,49,0,0,0,195,255,177,255,216,255,10,0,42,0,90,0,192,0,79,1, +224,1,83,2,157,2,194,2,199,2,171,2,116,2,40,2,191,1,72,1,252,0,246,0,3,1,252,0,241,0,240,0, +243,0,17,1,101,1,206,1,31,2,100,2,180,2,234,2,209,2,106,2,234,1,111,1,239,0,98,0,239,255,178,255, +130,255,64,255,40,255,122,255,255,255,74,0,88,0,122,0,207,0,19,1,242,0,101,0,193,255,101,255,90,255,79,255, +253,254,96,254,172,253,41,253,19,253,102,253,214,253,22,254,31,254,50,254,129,254,230,254,6,255,198,254,121,254,123,254, +196,254,246,254,195,254,66,254,231,253,9,254,117,254,172,254,150,254,159,254,14,255,142,255,169,255,102,255,55,255,84,255, +131,255,128,255,91,255,79,255,115,255,171,255,199,255,168,255,100,255,50,255,45,255,57,255,60,255,80,255,157,255,17,0, +105,0,124,0,105,0,106,0,143,0,190,0,209,0,193,0,177,0,195,0,224,0,199,0,125,0,97,0,174,0,35,1, +100,1,107,1,105,1,117,1,139,1,168,1,185,1,145,1,30,1,152,0,80,0,82,0,88,0,54,0,10,0,241,255, +216,255,182,255,175,255,215,255,32,0,129,0,243,0,73,1,84,1,22,1,172,0,57,0,229,255,212,255,251,255,33,0, +19,0,223,255,211,255,32,0,134,0,155,0,112,0,116,0,199,0,254,0,184,0,37,0,203,255,225,255,252,255,168,255, +24,255,241,254,91,255,218,255,12,0,16,0,33,0,77,0,135,0,183,0,210,0,229,0,5,1,28,1,247,0,146,0, +41,0,5,0,31,0,33,0,209,255,114,255,88,255,110,255,110,255,83,255,60,255,47,255,49,255,75,255,76,255,250,254, +115,254,29,254,37,254,88,254,104,254,56,254,234,253,177,253,158,253,177,253,235,253,59,254,120,254,149,254,174,254,220,254, +47,255,179,255,65,0,133,0,93,0,5,0,197,255,187,255,250,255,125,0,3,1,61,1,43,1,19,1,51,1,138,1, +217,1,219,1,119,1,211,0,70,0,47,0,152,0,4,1,241,0,128,0,77,0,161,0,38,1,96,1,66,1,43,1, +112,1,242,1,72,2,58,2,241,1,167,1,110,1,76,1,72,1,88,1,91,1,57,1,224,0,78,0,164,255,41,255, +26,255,89,255,136,255,114,255,72,255,90,255,188,255,84,0,250,0,99,1,59,1,146,0,240,255,193,255,219,255,215,255, +167,255,107,255,21,255,151,254,77,254,169,254,125,255,16,0,11,0,201,255,180,255,195,255,195,255,182,255,167,255,130,255, +56,255,242,254,225,254,255,254,32,255,49,255,52,255,9,255,149,254,22,254,251,253,98,254,242,254,58,255,34,255,239,254, +249,254,80,255,168,255,180,255,126,255,80,255,107,255,203,255,39,0,38,0,206,255,125,255,117,255,151,255,177,255,213,255, +29,0,111,0,153,0,166,0,219,0,69,1,135,1,77,1,207,0,122,0,94,0,82,0,99,0,171,0,246,0,251,0, +198,0,149,0,143,0,187,0,13,1,99,1,136,1,89,1,241,0,168,0,185,0,249,0,22,1,11,1,10,1,30,1, +37,1,17,1,250,0,3,1,63,1,140,1,163,1,95,1,218,0,50,0,131,255,6,255,225,254,239,254,249,254,0,255, +22,255,50,255,86,255,157,255,11,0,116,0,164,0,152,0,129,0,127,0,119,0,72,0,255,255,157,255,255,254,70,254, +236,253,30,254,118,254,153,254,153,254,166,254,200,254,16,255,162,255,88,0,172,0,68,0,121,255,9,255,48,255,101,255, +38,255,162,254,79,254,64,254,62,254,59,254,92,254,180,254,32,255,95,255,89,255,87,255,179,255,83,0,172,0,94,0, +170,255,43,255,64,255,166,255,191,255,75,255,185,254,152,254,243,254,105,255,182,255,239,255,61,0,150,0,218,0,15,1, +78,1,135,1,145,1,114,1,59,1,203,0,7,0,54,255,198,254,182,254,175,254,164,254,241,254,201,255,211,0,143,1, +218,1,238,1,2,2,23,2,17,2,210,1,99,1,253,0,224,0,253,0,9,1,227,0,189,0,197,0,227,0,244,0, +15,1,82,1,140,1,115,1,23,1,213,0,219,0,238,0,194,0,79,0,199,255,93,255,50,255,65,255,93,255,82,255, +37,255,29,255,111,255,243,255,74,0,72,0,29,0,8,0,21,0,37,0,21,0,203,255,85,255,238,254,215,254,20,255, +110,255,176,255,217,255,10,0,86,0,162,0,186,0,138,0,50,0,236,255,211,255,219,255,228,255,224,255,198,255,139,255, +63,255,30,255,71,255,131,255,139,255,122,255,154,255,226,255,244,255,181,255,125,255,135,255,150,255,82,255,200,254,87,254, +68,254,143,254,3,255,69,255,19,255,155,254,117,254,1,255,238,255,153,0,197,0,189,0,220,0,29,1,57,1,249,0, +113,0,243,255,200,255,220,255,214,255,132,255,30,255,247,254,16,255,46,255,66,255,126,255,246,255,112,0,185,0,230,0, +25,1,51,1,2,1,153,0,59,0,245,255,151,255,33,255,229,254,28,255,141,255,228,255,39,0,145,0,31,1,139,1, +181,1,185,1,176,1,133,1,44,1,190,0,89,0,11,0,223,255,221,255,250,255,33,0,71,0,93,0,80,0,46,0, +63,0,178,0,79,1,175,1,185,1,167,1,163,1,147,1,77,1,210,0,77,0,243,255,230,255,11,0,35,0,18,0, +252,255,254,255,255,255,240,255,244,255,41,0,105,0,126,0,105,0,69,0,12,0,189,255,124,255,87,255,40,255,230,254, +214,254,34,255,126,255,136,255,82,255,51,255,56,255,50,255,20,255,249,254,227,254,196,254,180,254,201,254,221,254,195,254, +152,254,150,254,174,254,173,254,174,254,1,255,172,255,50,0,23,0,100,255,163,254,88,254,133,254,179,254,141,254,70,254, +72,254,172,254,52,255,184,255,60,0,163,0,177,0,118,0,74,0,88,0,116,0,140,0,206,0,63,1,119,1,34,1, +134,0,50,0,91,0,184,0,245,0,7,1,27,1,84,1,165,1,235,1,24,2,68,2,112,2,112,2,33,2,164,1, +56,1,241,0,177,0,90,0,234,255,116,255,45,255,80,255,200,255,43,0,58,0,51,0,105,0,181,0,172,0,62,0, +204,255,180,255,245,255,75,0,106,0,57,0,234,255,212,255,13,0,76,0,75,0,31,0,0,0,242,255,221,255,206,255, +217,255,227,255,196,255,134,255,83,255,54,255,17,255,207,254,121,254,56,254,52,254,103,254,139,254,107,254,67,254,113,254, +225,254,12,255,192,254,106,254,123,254,221,254,63,255,139,255,204,255,232,255,209,255,178,255,194,255,238,255,7,0,13,0, +29,0,54,0,70,0,81,0,102,0,131,0,162,0,197,0,218,0,199,0,154,0,140,0,172,0,199,0,182,0,155,0, +160,0,183,0,180,0,144,0,101,0,75,0,71,0,82,0,83,0,54,0,23,0,43,0,99,0,114,0,63,0,14,0, +35,0,106,0,157,0,170,0,162,0,145,0,133,0,151,0,173,0,138,0,45,0,248,255,54,0,168,0,202,0,128,0, +49,0,37,0,65,0,88,0,93,0,72,0,31,0,244,255,224,255,233,255,244,255,222,255,177,255,147,255,152,255,201,255, +26,0,86,0,85,0,42,0,232,255,145,255,60,255,5,255,243,254,251,254,4,255,6,255,32,255,90,255,147,255,199,255, +248,255,7,0,1,0,35,0,113,0,174,0,170,0,114,0,62,0,41,0,3,0,190,255,158,255,183,255,209,255,218,255, +232,255,23,0,114,0,213,0,253,0,215,0,138,0,78,0,86,0,141,0,139,0,53,0,214,255,144,255,73,255,254,254, +203,254,225,254,73,255,177,255,211,255,224,255,14,0,53,0,15,0,127,255,200,254,126,254,217,254,96,255,152,255,114,255, +27,255,222,254,236,254,43,255,117,255,187,255,234,255,17,0,99,0,200,0,240,0,197,0,97,0,231,255,151,255,144,255, +184,255,1,0,89,0,153,0,191,0,213,0,194,0,157,0,171,0,246,0,89,1,177,1,212,1,195,1,166,1,121,1, +42,1,224,0,179,0,146,0,142,0,183,0,245,0,46,1,60,1,4,1,187,0,161,0,154,0,116,0,44,0,206,255, +128,255,109,255,122,255,132,255,135,255,117,255,87,255,117,255,225,255,65,0,68,0,239,255,152,255,156,255,221,255,228,255, +158,255,87,255,54,255,48,255,43,255,254,254,172,254,106,254,102,254,178,254,65,255,202,255,9,0,14,0,243,255,195,255, +143,255,74,255,231,254,170,254,204,254,4,255,218,254,87,254,15,254,118,254,40,255,77,255,229,254,201,254,92,255,29,0, +125,0,117,0,73,0,23,0,218,255,181,255,218,255,17,0,251,255,190,255,192,255,2,0,44,0,24,0,247,255,14,0, +92,0,161,0,193,0,215,0,229,0,224,0,208,0,189,0,169,0,144,0,99,0,37,0,8,0,47,0,115,0,147,0, +114,0,56,0,41,0,91,0,168,0,218,0,202,0,128,0,58,0,45,0,49,0,246,255,136,255,87,255,167,255,43,0, +105,0,79,0,55,0,91,0,162,0,218,0,243,0,235,0,198,0,157,0,150,0,178,0,189,0,133,0,19,0,166,255, +117,255,125,255,153,255,180,255,221,255,20,0,52,0,28,0,221,255,171,255,165,255,194,255,243,255,44,0,68,0,10,0, +147,255,66,255,101,255,213,255,36,0,21,0,207,255,158,255,168,255,215,255,237,255,192,255,109,255,71,255,122,255,217,255, +27,0,42,0,36,0,40,0,59,0,88,0,106,0,81,0,21,0,240,255,6,0,43,0,43,0,26,0,56,0,121,0, +144,0,91,0,12,0,211,255,179,255,164,255,168,255,156,255,76,255,193,254,85,254,74,254,128,254,186,254,239,254,53,255, +131,255,196,255,241,255,4,0,241,255,207,255,218,255,20,0,36,0,204,255,87,255,54,255,98,255,122,255,93,255,82,255, +147,255,3,0,111,0,203,0,11,1,19,1,225,0,173,0,174,0,217,0,250,0,241,0,198,0,154,0,146,0,183,0, +224,0,213,0,152,0,111,0,150,0,247,0,74,1,89,1,42,1,241,0,209,0,193,0,158,0,114,0,116,0,185,0, +244,0,212,0,116,0,52,0,60,0,100,0,141,0,190,0,215,0,144,0,246,255,135,255,134,255,158,255,113,255,34,255, +28,255,119,255,223,255,12,0,4,0,218,255,153,255,111,255,126,255,162,255,163,255,131,255,127,255,178,255,209,255,148,255, +60,255,48,255,89,255,89,255,34,255,242,254,4,255,76,255,101,255,8,255,135,254,118,254,239,254,135,255,205,255,193,255, +165,255,131,255,63,255,241,254,183,254,145,254,154,254,250,254,124,255,203,255,213,255,194,255,195,255,247,255,84,0,169,0, +216,0,233,0,244,0,10,1,47,1,96,1,126,1,89,1,241,0,118,0,23,0,1,0,81,0,200,0,245,0,208,0, +191,0,242,0,34,1,21,1,254,0,251,0,206,0,105,0,34,0,29,0,37,0,35,0,9,0,202,255,159,255,205,255, +61,0,187,0,39,1,83,1,32,1,173,0,57,0,248,255,221,255,170,255,119,255,136,255,182,255,215,255,12,0,44,0, +248,255,179,255,147,255,113,255,108,255,178,255,254,255,33,0,48,0,14,0,174,255,68,255,251,254,244,254,38,255,55,255, +46,255,108,255,201,255,239,255,2,0,237,255,108,255,237,254,203,254,194,254,209,254,17,255,47,255,33,255,91,255,222,255, +63,0,45,0,143,255,206,254,113,254,37,254,110,253,162,252,61,252,129,252,182,253,127,255,252,0,38,2,88,3,58,4, +143,4,151,4,26,4,185,2,193,0,205,254,132,253,94,253,17,254,19,255,70,0,85,1,165,1,62,1,119,0,173,255, +187,255,17,1,229,2,110,4,86,5,229,4,203,2,215,255,218,252,52,250,134,248,83,248,152,249,243,251,104,254,239,255, +120,0,78,0,128,255,143,254,30,254,75,254,76,255,65,1,95,3,229,4,224,5,23,6,39,5,152,3,32,2,6,1, +146,0,193,0,251,0,220,0,95,0,160,255,11,255,186,254,76,254,44,254,82,255,170,1,98,4,221,6,111,8,183,8, +9,8,103,6,175,3,214,0,12,255,76,254,227,253,72,253,78,252,92,251,197,250,47,250,96,249,146,248,9,248,96,248, +33,250,153,252,158,254,239,255,121,0,239,255,141,254,225,252,107,251,252,250,7,252,203,253,84,255,87,0,213,0,240,0, +193,0,59,0,189,255,248,255,25,1,3,3,112,5,59,7,51,7,178,5,214,3,42,2,231,0,24,0,146,255,139,255, +61,0,7,1,46,1,166,0,178,255,169,254,1,254,13,254,25,255,39,1,72,3,136,4,226,4,98,4,239,2,66,1, +56,0,212,255,238,255,93,0,108,0,142,255,237,253,239,251,35,250,19,249,156,248,129,248,38,249,211,250,48,253,151,255, +43,1,158,1,176,1,231,1,8,2,84,2,77,3,163,4,204,5,127,6,63,6,0,5,112,3,229,1,91,0,41,255, +173,254,225,254,130,255,232,255,129,255,137,254,112,253,109,252,15,252,171,252,211,253,94,255,107,1,73,3,5,4,129,3, +37,2,162,0,206,255,177,255,194,255,227,255,13,0,231,255,118,255,231,254,23,254,27,253,107,252,109,252,104,253,26,255, +149,0,119,1,34,2,110,2,232,1,251,0,60,0,188,255,135,255,150,255,167,255,167,255,139,255,21,255,100,254,204,253, +77,253,33,253,192,253,236,254,243,255,138,0,148,0,22,0,104,255,186,254,38,254,26,254,162,254,40,255,126,255,212,255, +244,255,193,255,132,255,90,255,85,255,166,255,51,0,219,0,192,1,148,2,209,2,161,2,71,2,199,1,81,1,250,0, +129,0,238,255,128,255,54,255,10,255,226,254,90,254,121,253,240,252,53,253,44,254,99,255,64,0,159,0,242,0,93,1, +138,1,96,1,2,1,163,0,167,0,51,1,230,1,66,2,232,1,194,0,90,255,103,254,254,253,255,253,148,254,173,255, +202,0,132,1,219,1,24,2,93,2,98,2,21,2,254,1,97,2,231,2,86,3,187,3,232,3,144,3,180,2,161,1, +201,0,101,0,74,0,74,0,94,0,66,0,152,255,143,254,160,253,242,252,97,252,253,251,49,252,74,253,235,254,76,0, +6,1,40,1,206,0,52,0,210,255,229,255,58,0,165,0,15,1,49,1,191,0,196,255,138,254,102,253,158,252,62,252, +49,252,112,252,236,252,102,253,157,253,110,253,230,252,99,252,102,252,30,253,92,254,184,255,188,0,68,1,126,1,96,1, +204,0,25,0,168,255,124,255,159,255,42,0,216,0,71,1,86,1,13,1,141,0,10,0,155,255,97,255,155,255,58,0, +218,0,51,1,46,1,243,0,216,0,218,0,165,0,70,0,36,0,88,0,207,0,123,1,243,1,196,1,7,1,47,0, +140,255,65,255,62,255,101,255,210,255,154,0,112,1,236,1,229,1,122,1,14,1,236,0,1,1,74,1,243,1,205,2, +94,3,117,3,0,3,241,1,154,0,133,255,226,254,154,254,144,254,155,254,184,254,17,255,145,255,246,255,48,0,96,0, +167,0,4,1,53,1,253,0,125,0,216,255,2,255,45,254,184,253,167,253,217,253,64,254,163,254,201,254,200,254,193,254, +187,254,217,254,48,255,157,255,23,0,175,0,68,1,156,1,137,1,254,0,61,0,142,255,234,254,79,254,1,254,20,254, +87,254,168,254,227,254,227,254,217,254,7,255,93,255,189,255,35,0,114,0,156,0,198,0,228,0,195,0,90,0,199,255, +64,255,254,254,242,254,219,254,190,254,186,254,189,254,196,254,221,254,252,254,49,255,165,255,58,0,168,0,231,0,249,0, +231,0,243,0,66,1,165,1,243,1,41,2,68,2,89,2,123,2,125,2,64,2,224,1,110,1,251,0,180,0,142,0, +88,0,15,0,190,255,96,255,24,255,4,255,8,255,29,255,94,255,180,255,5,0,90,0,164,0,213,0,10,1,49,1, +18,1,172,0,32,0,132,255,4,255,189,254,134,254,77,254,48,254,59,254,118,254,252,254,162,255,33,0,108,0,151,0, +168,0,181,0,193,0,157,0,70,0,224,255,116,255,25,255,250,254,11,255,39,255,85,255,152,255,214,255,13,0,64,0, +111,0,188,0,44,1,123,1,133,1,114,1,94,1,67,1,18,1,163,0,230,255,26,255,127,254,44,254,41,254,88,254, +124,254,157,254,245,254,132,255,33,0,175,0,32,1,116,1,179,1,188,1,117,1,13,1,172,0,63,0,191,255,67,255, +225,254,170,254,164,254,179,254,194,254,209,254,217,254,229,254,37,255,156,255,22,0,116,0,186,0,224,0,220,0,174,0, +105,0,52,0,37,0,24,0,254,255,8,0,82,0,174,0,224,0,208,0,155,0,113,0,98,0,89,0,73,0,45,0, +250,255,186,255,144,255,133,255,128,255,126,255,152,255,221,255,54,0,115,0,137,0,162,0,208,0,234,0,201,0,143,0, +125,0,159,0,192,0,166,0,73,0,203,255,77,255,235,254,183,254,178,254,202,254,242,254,51,255,146,255,241,255,43,0, +73,0,107,0,144,0,151,0,127,0,127,0,183,0,240,0,217,0,109,0,249,255,187,255,171,255,165,255,163,255,176,255, +193,255,207,255,230,255,18,0,63,0,81,0,78,0,71,0,52,0,0,0,175,255,98,255,25,255,182,254,69,254,24,254, +110,254,35,255,217,255,91,0,181,0,251,0,34,1,30,1,250,0,184,0,82,0,220,255,137,255,109,255,92,255,40,255, +233,254,212,254,240,254,21,255,59,255,142,255,32,0,188,0,28,1,50,1,34,1,11,1,239,0,199,0,139,0,50,0, +204,255,131,255,116,255,127,255,112,255,69,255,47,255,73,255,119,255,151,255,171,255,182,255,155,255,73,255,239,254,211,254, +249,254,37,255,44,255,44,255,82,255,164,255,253,255,67,0,113,0,140,0,163,0,194,0,228,0,238,0,213,0,172,0, +133,0,79,0,253,255,179,255,160,255,189,255,212,255,218,255,4,0,121,0,13,1,124,1,191,1,5,2,97,2,184,2, +240,2,9,3,4,3,207,2,104,2,243,1,146,1,76,1,25,1,3,1,8,1,251,0,186,0,98,0,34,0,2,0, +251,255,27,0,109,0,202,0,250,0,251,0,244,0,237,0,179,0,40,0,143,255,70,255,54,255,244,254,109,254,252,253, +222,253,248,253,56,254,170,254,44,255,121,255,119,255,78,255,35,255,246,254,184,254,116,254,81,254,81,254,70,254,33,254, +25,254,76,254,133,254,163,254,217,254,60,255,131,255,122,255,86,255,89,255,105,255,82,255,37,255,40,255,112,255,180,255, +172,255,115,255,96,255,143,255,202,255,228,255,230,255,224,255,212,255,201,255,209,255,249,255,60,0,116,0,124,0,84,0, +31,0,254,255,0,0,27,0,62,0,106,0,183,0,28,1,99,1,124,1,132,1,125,1,86,1,50,1,60,1,69,1, +14,1,170,0,73,0,240,255,169,255,151,255,175,255,189,255,162,255,112,255,99,255,183,255,74,0,148,0,116,0,118,0, +215,0,3,1,151,0,4,0,182,255,136,255,85,255,68,255,87,255,82,255,30,255,203,254,138,254,160,254,8,255,90,255, +113,255,162,255,249,255,22,0,6,0,62,0,178,0,227,0,202,0,187,0,188,0,168,0,123,0,45,0,191,255,129,255, +161,255,195,255,150,255,89,255,72,255,43,255,230,254,194,254,236,254,75,255,191,255,19,0,21,0,0,0,40,0,75,0, +2,0,170,255,203,255,28,0,25,0,250,255,59,0,210,0,89,1,133,1,56,1,183,0,135,0,201,0,4,1,228,0, +144,0,60,0,247,255,212,255,205,255,197,255,203,255,12,0,112,0,185,0,225,0,8,1,26,1,244,0,182,0,156,0, +151,0,75,0,169,255,48,255,76,255,164,255,149,255,29,255,216,254,50,255,245,255,142,0,143,0,21,0,181,255,201,255, +23,0,49,0,248,255,163,255,125,255,173,255,8,0,51,0,18,0,240,255,11,0,66,0,86,0,57,0,11,0,235,255, +250,255,78,0,169,0,148,0,5,0,135,255,124,255,171,255,197,255,198,255,184,255,156,255,128,255,81,255,242,254,168,254, +230,254,149,255,59,0,160,0,203,0,177,0,107,0,56,0,26,0,242,255,211,255,206,255,185,255,134,255,103,255,109,255, +117,255,103,255,57,255,253,254,246,254,65,255,153,255,191,255,197,255,183,255,143,255,150,255,222,255,254,255,217,255,185,255, +188,255,253,255,134,0,208,0,134,0,34,0,228,255,170,255,166,255,212,255,184,255,111,255,128,255,232,255,88,0,146,0, +99,0,26,0,26,0,37,0,18,0,25,0,8,0,216,255,59,0,41,1,153,1,23,1,63,0,223,255,40,0,128,0, +182,0,100,1,50,2,248,1,35,1,230,0,240,0,131,0,7,0,255,255,75,0,154,0,174,0,144,0,70,0,218,255, +21,0,85,1,38,2,160,1,6,1,9,1,227,0,80,0,124,255,145,254,28,254,191,253,242,252,204,253,211,1,124,5, +135,4,126,255,237,249,111,247,64,250,173,0,238,5,46,7,150,5,212,3,126,2,23,255,108,248,105,242,205,241,158,246, +161,253,181,3,183,6,169,6,29,6,177,7,176,10,230,10,172,5,30,254,248,248,67,247,243,247,124,249,91,249,213,247, +89,248,237,250,112,252,127,252,116,252,240,253,40,4,197,13,26,18,207,12,53,3,253,250,181,246,56,248,29,253,172,255, +50,255,182,255,240,2,191,6,137,7,147,3,38,254,38,252,90,254,146,2,35,6,9,6,245,1,176,253,246,251,215,251, +181,251,188,250,95,249,31,250,153,254,148,4,95,8,168,7,64,2,96,251,93,248,51,251,139,0,106,4,41,6,53,7, +28,8,27,8,117,6,255,2,80,254,13,250,195,247,83,247,202,247,250,248,18,251,159,253,194,255,2,1,216,1,24,3, +217,4,140,6,156,7,81,7,104,5,28,3,226,1,71,1,181,255,228,252,84,250,155,249,4,251,149,253,180,255,50,0, +229,255,244,0,64,3,236,3,182,1,167,254,233,252,239,252,44,254,116,255,195,255,88,255,198,254,214,253,136,252,1,252, +184,253,206,1,7,6,123,7,236,5,172,3,16,2,79,0,214,253,50,251,245,248,157,247,24,248,183,250,252,253,15,0, +227,0,83,1,43,1,238,255,92,254,194,253,181,254,243,0,131,3,22,5,253,4,150,3,145,1,127,255,229,253,61,253, +202,253,110,255,134,1,236,2,197,2,125,1,75,0,152,255,242,254,116,254,232,254,148,0,196,2,102,4,208,4,16,4, +156,2,221,0,36,255,188,253,253,252,62,253,99,254,181,255,120,0,108,0,159,255,63,254,204,252,245,251,15,252,218,252, +221,253,196,254,121,255,242,255,25,0,254,255,4,0,145,0,142,1,150,2,113,3,13,4,44,4,141,3,68,2,152,0, +193,254,51,253,148,252,9,253,225,253,96,254,119,254,128,254,173,254,245,254,45,255,51,255,55,255,203,255,51,1,226,2, +234,3,210,3,196,2,78,1,23,0,108,255,2,255,123,254,35,254,146,254,180,255,171,0,193,0,7,0,19,255,126,254, +143,254,42,255,249,255,170,0,21,1,51,1,32,1,236,0,103,0,94,255,45,254,170,253,71,254,160,255,255,0,239,1, +80,2,71,2,31,2,241,1,137,1,243,0,192,0,89,1,81,2,214,2,140,2,158,1,102,0,76,255,164,254,78,254, +230,253,112,253,104,253,247,253,160,254,233,254,232,254,230,254,246,254,24,255,107,255,249,255,159,0,69,1,225,1,46,2, +195,1,164,0,106,255,167,254,98,254,107,254,195,254,118,255,59,0,174,0,187,0,143,0,70,0,222,255,118,255,66,255, +95,255,198,255,86,0,188,0,152,0,224,255,0,255,107,254,62,254,112,254,35,255,100,0,206,1,186,2,209,2,73,2, +144,1,238,0,115,0,28,0,247,255,18,0,96,0,164,0,146,0,242,255,212,254,163,253,239,252,249,252,145,253,113,254, +143,255,212,0,193,1,202,1,3,1,31,0,194,255,26,0,248,0,237,1,132,2,168,2,169,2,150,2,1,2,188,0, +82,255,82,254,165,253,10,253,206,252,85,253,111,254,132,255,36,0,24,0,110,255,182,254,180,254,119,255,87,0,239,0, +131,1,60,2,168,2,77,2,67,1,247,255,212,254,47,254,64,254,221,254,151,255,26,0,75,0,18,0,71,255,255,253, +191,252,39,252,110,252,65,253,55,254,59,255,104,0,166,1,154,2,231,2,115,2,146,1,247,0,52,1,42,2,45,3, +193,3,225,3,152,3,197,2,108,1,229,255,143,254,167,253,103,253,255,253,68,255,150,0,71,1,38,1,151,0,23,0, +207,255,169,255,168,255,235,255,88,0,150,0,105,0,210,255,247,254,29,254,181,253,12,254,246,254,1,0,216,0,87,1, +117,1,65,1,205,0,20,0,27,255,53,254,206,253,9,254,176,254,115,255,253,255,10,0,180,255,112,255,161,255,63,0, +31,1,43,2,72,3,38,4,104,4,221,3,165,2,23,1,141,255,74,254,135,253,97,253,154,253,189,253,169,253,161,253, +173,253,115,253,251,252,246,252,215,253,41,255,70,0,26,1,200,1,12,2,140,1,126,0,146,255,67,255,157,255,96,0, +43,1,144,1,69,1,106,0,120,255,236,254,233,254,54,255,133,255,200,255,28,0,122,0,144,0,23,0,44,255,53,254, +132,253,61,253,139,253,122,254,189,255,211,0,130,1,205,1,158,1,242,0,53,0,243,255,37,0,87,0,75,0,27,0, +217,255,135,255,63,255,5,255,180,254,75,254,18,254,68,254,211,254,131,255,251,255,245,255,162,255,169,255,80,0,18,1, +105,1,120,1,147,1,163,1,121,1,61,1,27,1,248,0,188,0,136,0,95,0,9,0,121,255,252,254,229,254,69,255, +243,255,165,0,26,1,68,1,80,1,91,1,82,1,38,1,250,0,0,1,50,1,98,1,129,1,182,1,29,2,131,2, +152,2,72,2,182,1,7,1,80,0,176,255,47,255,177,254,48,254,225,253,218,253,239,253,245,253,247,253,10,254,59,254, +183,254,152,255,144,0,50,1,114,1,140,1,138,1,79,1,216,0,52,0,105,255,174,254,92,254,116,254,131,254,68,254, +243,253,223,253,3,254,56,254,118,254,209,254,89,255,12,0,182,0,3,1,211,0,98,0,13,0,14,0,94,0,180,0, +189,0,124,0,72,0,61,0,6,0,111,255,215,254,195,254,65,255,236,255,88,0,100,0,53,0,17,0,15,0,8,0, +226,255,191,255,202,255,242,255,15,0,27,0,35,0,40,0,52,0,100,0,187,0,20,1,75,1,89,1,74,1,40,1, +8,1,244,0,218,0,138,0,245,255,89,255,28,255,101,255,221,255,14,0,236,255,210,255,1,0,85,0,128,0,89,0, +253,255,196,255,3,0,164,0,28,1,0,1,132,0,46,0,41,0,39,0,237,255,169,255,166,255,240,255,71,0,108,0, +74,0,255,255,189,255,158,255,131,255,61,255,218,254,166,254,201,254,17,255,60,255,81,255,116,255,163,255,203,255,0,0, +85,0,149,0,126,0,28,0,172,255,70,255,227,254,159,254,151,254,175,254,193,254,222,254,42,255,141,255,211,255,3,0, +73,0,170,0,17,1,117,1,194,1,198,1,115,1,253,0,144,0,31,0,176,255,134,255,193,255,27,0,76,0,108,0, +173,0,236,0,223,0,144,0,88,0,106,0,180,0,9,1,65,1,59,1,244,0,150,0,81,0,42,0,1,0,209,255, +191,255,228,255,20,0,15,0,215,255,182,255,204,255,218,255,171,255,102,255,80,255,107,255,149,255,202,255,18,0,82,0, +106,0,102,0,87,0,44,0,217,255,140,255,123,255,161,255,209,255,229,255,207,255,146,255,64,255,233,254,142,254,55,254, +15,254,68,254,185,254,30,255,81,255,120,255,175,255,221,255,3,0,76,0,187,0,248,0,193,0,80,0,4,0,215,255, +138,255,29,255,202,254,182,254,228,254,91,255,8,0,157,0,225,0,3,1,72,1,148,1,156,1,97,1,42,1,27,1, +25,1,249,0,179,0,84,0,235,255,122,255,1,255,145,254,84,254,112,254,222,254,97,255,183,255,196,255,158,255,123,255, +128,255,166,255,200,255,209,255,202,255,209,255,244,255,29,0,37,0,12,0,243,255,239,255,237,255,223,255,223,255,2,0, +50,0,73,0,67,0,41,0,252,255,196,255,162,255,183,255,0,0,78,0,114,0,92,0,41,0,10,0,30,0,79,0, +115,0,132,0,160,0,206,0,225,0,178,0,94,0,38,0,23,0,11,0,244,255,244,255,48,0,163,0,27,1,81,1, +24,1,151,0,59,0,76,0,157,0,205,0,191,0,162,0,157,0,166,0,147,0,72,0,235,255,200,255,252,255,84,0, +148,0,188,0,234,0,31,1,50,1,250,0,125,0,255,255,236,255,107,0,30,1,126,1,103,1,12,1,148,0,13,0, +127,255,6,255,200,254,219,254,24,255,50,255,19,255,250,254,26,255,76,255,96,255,134,255,250,255,138,0,223,0,234,0, +200,0,116,0,226,255,53,255,141,254,223,253,46,253,195,252,219,252,68,253,153,253,192,253,245,253,104,254,12,255,176,255, +55,0,144,0,167,0,131,0,76,0,10,0,162,255,40,255,218,254,200,254,194,254,191,254,230,254,60,255,141,255,195,255, +249,255,49,0,91,0,126,0,146,0,113,0,42,0,9,0,19,0,241,255,137,255,64,255,112,255,250,255,139,0,253,0, +62,1,58,1,20,1,14,1,36,1,15,1,189,0,91,0,26,0,4,0,11,0,17,0,254,255,226,255,232,255,36,0, +142,0,14,1,121,1,152,1,121,1,96,1,94,1,66,1,11,1,226,0,183,0,100,0,13,0,2,0,74,0,149,0, +164,0,140,0,119,0,105,0,90,0,87,0,110,0,137,0,131,0,92,0,69,0,80,0,81,0,40,0,247,255,230,255, +240,255,0,0,14,0,16,0,240,255,158,255,58,255,2,255,23,255,109,255,219,255,48,0,73,0,47,0,0,0,210,255, +196,255,223,255,233,255,140,255,197,254,240,253,103,253,64,253,125,253,27,254,234,254,160,255,36,0,126,0,152,0,103,0, +14,0,203,255,200,255,251,255,31,0,2,0,201,255,177,255,170,255,121,255,32,255,227,254,236,254,40,255,138,255,11,0, +124,0,164,0,154,0,173,0,237,0,19,1,235,0,180,0,195,0,6,1,39,1,3,1,186,0,107,0,37,0,241,255, +211,255,200,255,205,255,231,255,47,0,172,0,40,1,90,1,64,1,26,1,11,1,0,1,236,0,207,0,150,0,55,0, +236,255,236,255,12,0,243,255,157,255,92,255,103,255,151,255,170,255,167,255,201,255,28,0,107,0,135,0,93,0,236,255, +107,255,40,255,41,255,34,255,235,254,184,254,206,254,54,255,192,255,48,0,101,0,112,0,129,0,164,0,183,0,143,0, +34,0,157,255,71,255,42,255,14,255,215,254,190,254,246,254,96,255,188,255,239,255,19,0,86,0,195,0,49,1,104,1, +84,1,21,1,230,0,221,0,201,0,99,0,192,255,69,255,35,255,60,255,110,255,176,255,239,255,35,0,107,0,214,0, +37,1,19,1,193,0,142,0,156,0,166,0,112,0,33,0,249,255,234,255,200,255,162,255,141,255,107,255,66,255,99,255, +221,255,74,0,116,0,152,0,203,0,189,0,78,0,215,255,175,255,205,255,251,255,28,0,30,0,250,255,204,255,205,255, +7,0,51,0,21,0,208,255,191,255,247,255,57,0,72,0,27,0,217,255,189,255,218,255,255,255,0,0,225,255,172,255, +98,255,43,255,52,255,94,255,111,255,109,255,137,255,211,255,39,0,89,0,82,0,31,0,232,255,212,255,220,255,212,255, +157,255,81,255,53,255,104,255,161,255,146,255,104,255,135,255,254,255,140,0,233,0,236,0,164,0,91,0,75,0,102,0, +108,0,46,0,195,255,123,255,139,255,213,255,22,0,46,0,60,0,108,0,194,0,18,1,38,1,250,0,218,0,251,0, +36,1,2,1,169,0,86,0,20,0,209,255,124,255,24,255,195,254,160,254,181,254,250,254,92,255,191,255,8,0,49,0, +65,0,75,0,93,0,100,0,64,0,229,255,122,255,48,255,13,255,248,254,237,254,242,254,244,254,231,254,204,254,164,254, +148,254,199,254,22,255,59,255,56,255,63,255,101,255,153,255,187,255,192,255,193,255,219,255,8,0,35,0,32,0,16,0, +5,0,243,255,208,255,161,255,103,255,54,255,70,255,159,255,11,0,91,0,135,0,146,0,160,0,211,0,15,1,24,1, +234,0,203,0,0,1,108,1,158,1,101,1,255,0,165,0,95,0,41,0,4,0,238,255,238,255,16,0,61,0,63,0, +2,0,201,255,201,255,220,255,214,255,209,255,225,255,1,0,60,0,137,0,184,0,184,0,149,0,74,0,229,255,152,255, +145,255,203,255,18,0,48,0,40,0,18,0,247,255,214,255,176,255,134,255,108,255,127,255,182,255,248,255,24,0,238,255, +150,255,97,255,103,255,135,255,161,255,183,255,234,255,61,0,89,0,0,0,103,255,227,254,166,254,194,254,25,255,96,255, +122,255,158,255,3,0,127,0,166,0,99,0,37,0,58,0,120,0,154,0,143,0,118,0,118,0,134,0,122,0,74,0, +3,0,185,255,174,255,5,0,98,0,103,0,52,0,46,0,111,0,163,0,112,0,250,255,167,255,158,255,215,255,68,0, +178,0,223,0,206,0,183,0,190,0,215,0,228,0,247,0,40,1,70,1,39,1,245,0,208,0,155,0,74,0,246,255, +184,255,173,255,216,255,19,0,57,0,49,0,244,255,173,255,136,255,132,255,157,255,208,255,6,0,55,0,92,0,94,0, +49,0,224,255,118,255,33,255,19,255,61,255,111,255,140,255,135,255,108,255,77,255,32,255,239,254,224,254,234,254,245,254, +19,255,79,255,132,255,154,255,146,255,134,255,147,255,168,255,168,255,175,255,216,255,20,0,78,0,96,0,42,0,200,255, +119,255,91,255,113,255,126,255,71,255,9,255,52,255,190,255,64,0,117,0,108,0,93,0,81,0,49,0,30,0,55,0, +67,0,30,0,5,0,29,0,62,0,60,0,28,0,0,0,9,0,52,0,126,0,217,0,247,0,172,0,79,0,60,0, +91,0,102,0,67,0,33,0,63,0,135,0,175,0,176,0,162,0,141,0,137,0,172,0,221,0,241,0,204,0,137,0, +122,0,171,0,176,0,78,0,204,255,116,255,86,255,87,255,74,255,47,255,54,255,118,255,229,255,75,0,92,0,29,0, +238,255,252,255,24,0,20,0,246,255,245,255,48,0,95,0,60,0,234,255,160,255,100,255,60,255,48,255,65,255,118,255, +188,255,227,255,219,255,166,255,92,255,62,255,99,255,138,255,147,255,165,255,215,255,23,0,73,0,92,0,83,0,45,0, +249,255,0,0,86,0,154,0,145,0,108,0,69,0,254,255,148,255,31,255,203,254,189,254,237,254,66,255,165,255,229,255, +243,255,11,0,62,0,83,0,53,0,23,0,45,0,110,0,140,0,93,0,17,0,201,255,116,255,41,255,13,255,30,255, +76,255,120,255,146,255,181,255,239,255,25,0,51,0,80,0,87,0,76,0,105,0,180,0,251,0,24,1,251,0,182,0, +112,0,60,0,38,0,51,0,72,0,80,0,85,0,80,0,72,0,80,0,77,0,39,0,2,0,244,255,235,255,240,255, +15,0,65,0,127,0,156,0,125,0,91,0,105,0,128,0,126,0,98,0,34,0,209,255,155,255,147,255,174,255,201,255, +197,255,183,255,195,255,224,255,254,255,15,0,10,0,12,0,39,0,47,0,27,0,26,0,44,0,61,0,101,0,156,0, +189,0,196,0,185,0,163,0,138,0,86,0,0,0,195,255,192,255,211,255,213,255,188,255,141,255,91,255,54,255,49,255, +113,255,216,255,38,0,77,0,88,0,68,0,41,0,31,0,24,0,28,0,43,0,32,0,7,0,16,0,39,0,34,0, +15,0,255,255,247,255,2,0,25,0,38,0,41,0,38,0,43,0,45,0,8,0,199,255,166,255,173,255,195,255,214,255, +199,255,161,255,173,255,253,255,69,0,69,0,241,255,121,255,51,255,51,255,69,255,93,255,132,255,142,255,114,255,90,255, +83,255,73,255,49,255,29,255,44,255,97,255,157,255,203,255,212,255,165,255,111,255,107,255,131,255,158,255,193,255,215,255, +217,255,222,255,221,255,207,255,207,255,214,255,206,255,206,255,224,255,234,255,245,255,19,0,66,0,124,0,187,0,241,0, +16,1,14,1,254,0,7,1,17,1,228,0,155,0,121,0,132,0,143,0,111,0,58,0,68,0,141,0,183,0,181,0, +191,0,198,0,174,0,154,0,148,0,126,0,93,0,87,0,115,0,145,0,140,0,123,0,135,0,145,0,102,0,24,0, +220,255,210,255,227,255,214,255,167,255,138,255,120,255,86,255,74,255,100,255,115,255,95,255,57,255,33,255,59,255,108,255, +109,255,69,255,42,255,39,255,49,255,80,255,113,255,123,255,114,255,119,255,157,255,192,255,180,255,154,255,157,255,172,255, +188,255,209,255,204,255,163,255,120,255,107,255,157,255,26,0,144,0,180,0,175,0,189,0,213,0,223,0,209,0,177,0, +160,0,171,0,176,0,142,0,71,0,10,0,9,0,48,0,69,0,68,0,85,0,133,0,188,0,191,0,125,0,55,0, +32,0,46,0,96,0,157,0,157,0,104,0,76,0,78,0,61,0,32,0,27,0,50,0,77,0,82,0,70,0,61,0, +55,0,54,0,64,0,64,0,41,0,13,0,5,0,23,0,42,0,8,0,191,255,161,255,190,255,220,255,217,255,181,255, +131,255,111,255,135,255,173,255,222,255,39,0,102,0,127,0,123,0,103,0,84,0,91,0,126,0,165,0,185,0,184,0, +182,0,173,0,123,0,37,0,216,255,178,255,188,255,201,255,144,255,54,255,40,255,102,255,137,255,93,255,246,254,143,254, +115,254,184,254,24,255,59,255,255,254,172,254,167,254,232,254,2,255,200,254,136,254,157,254,255,254,94,255,142,255,178,255, +230,255,31,0,82,0,92,0,38,0,241,255,10,0,93,0,162,0,175,0,139,0,125,0,187,0,20,1,49,1,14,1, +219,0,186,0,188,0,213,0,233,0,226,0,202,0,195,0,215,0,231,0,234,0,253,0,30,1,55,1,64,1,52,1, +28,1,19,1,17,1,226,0,127,0,14,0,206,255,229,255,31,0,25,0,207,255,133,255,82,255,33,255,247,254,232,254, +247,254,21,255,58,255,99,255,123,255,112,255,87,255,67,255,37,255,4,255,253,254,20,255,62,255,97,255,98,255,86,255, +99,255,116,255,108,255,117,255,181,255,17,0,95,0,151,0,194,0,220,0,203,0,137,0,61,0,17,0,12,0,42,0, +92,0,141,0,174,0,180,0,158,0,119,0,70,0,19,0,239,255,206,255,169,255,163,255,209,255,254,255,247,255,196,255, +122,255,62,255,62,255,121,255,184,255,206,255,194,255,166,255,126,255,68,255,14,255,251,254,5,255,25,255,64,255,130,255, +200,255,231,255,200,255,145,255,119,255,119,255,110,255,104,255,133,255,187,255,220,255,189,255,106,255,50,255,85,255,178,255, +1,0,30,0,26,0,42,0,110,0,183,0,181,0,97,0,25,0,54,0,165,0,249,0,245,0,177,0,108,0,75,0, +70,0,57,0,34,0,30,0,53,0,99,0,157,0,195,0,182,0,148,0,153,0,191,0,199,0,139,0,55,0,18,0, +26,0,27,0,2,0,231,255,230,255,3,0,45,0,61,0,35,0,255,255,11,0,77,0,135,0,136,0,113,0,112,0, +121,0,114,0,86,0,49,0,20,0,10,0,5,0,244,255,238,255,20,0,84,0,116,0,85,0,41,0,54,0,130,0, +213,0,233,0,156,0,21,0,178,255,188,255,23,0,101,0,112,0,100,0,132,0,196,0,219,0,156,0,26,0,135,255, +23,255,231,254,244,254,23,255,44,255,53,255,73,255,97,255,99,255,86,255,106,255,175,255,1,0,50,0,57,0,44,0, +27,0,8,0,225,255,156,255,90,255,83,255,141,255,204,255,225,255,223,255,222,255,195,255,124,255,61,255,51,255,66,255, +59,255,40,255,34,255,31,255,22,255,38,255,88,255,118,255,88,255,41,255,46,255,100,255,156,255,187,255,197,255,196,255, +206,255,3,0,87,0,142,0,138,0,127,0,159,0,204,0,211,0,201,0,228,0,26,1,55,1,65,1,101,1,160,1, +183,1,156,1,121,1,94,1,41,1,214,0,160,0,172,0,211,0,219,0,193,0,163,0,143,0,131,0,125,0,117,0, +97,0,83,0,103,0,150,0,174,0,148,0,86,0,4,0,156,255,50,255,248,254,251,254,12,255,5,255,247,254,247,254, +230,254,174,254,129,254,156,254,224,254,4,255,14,255,69,255,178,255,4,0,253,255,188,255,124,255,84,255,59,255,42,255, +14,255,217,254,154,254,122,254,128,254,141,254,156,254,217,254,90,255,236,255,86,0,147,0,182,0,196,0,191,0,179,0, +162,0,122,0,83,0,100,0,179,0,234,0,200,0,134,0,139,0,212,0,4,1,244,0,220,0,236,0,5,1,245,0, +192,0,133,0,83,0,52,0,55,0,80,0,90,0,72,0,59,0,80,0,111,0,114,0,97,0,99,0,125,0,146,0, +135,0,86,0,2,0,153,255,55,255,237,254,178,254,128,254,113,254,162,254,1,255,89,255,153,255,216,255,37,0,102,0, +130,0,130,0,119,0,86,0,22,0,206,255,157,255,120,255,68,255,7,255,235,254,252,254,29,255,51,255,79,255,137,255, +210,255,16,0,67,0,117,0,160,0,181,0,185,0,191,0,200,0,203,0,205,0,222,0,238,0,226,0,189,0,158,0, +143,0,119,0,82,0,65,0,86,0,110,0,102,0,73,0,52,0,40,0,20,0,253,255,246,255,250,255,0,0,13,0, +27,0,12,0,205,255,138,255,119,255,136,255,140,255,126,255,142,255,203,255,255,255,248,255,194,255,138,255,103,255,88,255, +90,255,99,255,100,255,104,255,138,255,191,255,208,255,164,255,120,255,147,255,240,255,72,0,118,0,144,0,165,0,163,0, +119,0,46,0,219,255,145,255,106,255,123,255,183,255,241,255,23,0,57,0,91,0,99,0,75,0,61,0,89,0,139,0, +168,0,174,0,179,0,184,0,165,0,116,0,61,0,15,0,234,255,207,255,192,255,180,255,153,255,117,255,92,255,76,255, +57,255,50,255,89,255,174,255,251,255,22,0,18,0,27,0,55,0,69,0,46,0,0,0,221,255,222,255,2,0,43,0, +50,0,17,0,239,255,240,255,10,0,22,0,8,0,254,255,14,0,43,0,65,0,79,0,94,0,106,0,105,0,89,0, +72,0,66,0,78,0,101,0,119,0,124,0,128,0,152,0,193,0,219,0,205,0,163,0,124,0,99,0,75,0,38,0, +255,255,232,255,232,255,245,255,2,0,20,0,53,0,99,0,133,0,113,0,42,0,230,255,197,255,179,255,133,255,43,255, +198,254,146,254,165,254,205,254,212,254,188,254,166,254,172,254,196,254,212,254,197,254,174,254,177,254,202,254,235,254,24,255, +67,255,84,255,88,255,93,255,83,255,75,255,106,255,159,255,178,255,150,255,123,255,156,255,237,255,28,0,27,0,38,0, +61,0,75,0,145,0,36,1,142,1,157,1,164,1,177,1,122,1,18,1,220,0,248,0,39,1,24,1,201,0,139,0, +145,0,172,0,152,0,54,0,167,255,88,255,151,255,43,0,191,0,53,1,111,1,88,1,20,1,193,0,88,0,238,255, +148,255,62,255,9,255,41,255,146,255,239,255,229,255,119,255,17,255,232,254,198,254,223,254,168,255,162,0,248,0,228,0, +228,0,167,0,251,255,108,255,67,255,53,255,31,255,53,255,166,255,81,0,197,0,198,0,138,0,46,0,187,255,152,255, +250,255,98,0,129,0,159,0,203,0,198,0,136,0,37,0,181,255,147,255,236,255,120,0,251,0,107,1,135,1,26,1, +129,0,65,0,125,0,28,1,203,1,156,1,197,255,9,253,46,251,251,250,239,251,85,253,118,254,34,255,122,0,77,3, +140,6,208,8,60,9,136,6,206,0,61,251,124,248,57,248,49,250,152,254,20,3,145,4,3,3,29,0,130,253,14,253, +8,255,48,1,227,1,111,1,42,0,123,254,22,253,99,251,176,248,153,246,93,247,182,251,60,3,106,11,110,15,141,12, +40,5,236,253,59,250,149,250,50,252,215,251,168,249,87,248,111,249,62,252,55,255,51,1,197,1,81,1,129,1,80,4, +188,8,212,10,247,8,89,5,141,1,96,253,192,249,109,248,29,250,109,254,238,2,122,3,105,255,192,251,216,252,220,0, +195,2,169,0,230,253,200,254,182,2,221,4,150,2,236,253,78,250,184,249,248,251,243,254,212,0,196,1,155,2,76,3, +92,3,111,2,205,0,245,255,243,0,58,2,147,1,168,255,2,255,44,0,19,1,49,0,105,254,89,253,170,253,102,255, +5,2,220,3,173,3,104,2,112,1,178,0,47,0,225,0,184,2,20,4,245,3,211,2,110,1,47,0,67,255,150,254, +1,254,131,253,59,253,87,253,202,253,49,254,121,254,38,255,75,0,75,1,220,1,116,2,80,3,212,3,82,3,197,1, +212,255,78,254,93,253,124,252,134,251,2,251,49,251,236,251,83,253,52,255,94,0,46,0,185,255,233,255,19,0,164,255, +58,255,34,255,176,254,166,253,154,252,255,251,22,252,50,253,28,255,229,0,213,1,224,1,103,1,17,1,71,1,149,1, +54,1,54,0,67,255,183,254,126,254,99,254,53,254,24,254,143,254,175,255,225,0,187,1,111,2,31,3,137,3,103,3, +163,2,129,1,199,0,13,1,222,1,58,2,194,1,228,0,53,0,6,0,57,0,116,0,160,0,254,0,122,1,158,1, +67,1,180,0,40,0,169,255,58,255,219,254,173,254,9,255,251,255,220,0,253,0,94,0,128,255,224,254,175,254,183,254, +147,254,60,254,13,254,46,254,117,254,197,254,34,255,128,255,206,255,252,255,244,255,197,255,165,255,137,255,40,255,135,254, +15,254,2,254,116,254,112,255,184,0,171,1,234,1,180,1,115,1,75,1,69,1,103,1,145,1,136,1,53,1,182,0, +67,0,4,0,250,255,254,255,247,255,249,255,55,0,213,0,189,1,139,2,215,2,141,2,211,1,248,0,76,0,234,255, +198,255,207,255,200,255,118,255,254,254,165,254,135,254,181,254,1,255,22,255,31,255,128,255,45,0,248,0,187,1,245,1, +94,1,94,0,92,255,179,254,216,254,133,255,242,255,11,0,255,255,178,255,123,255,179,255,220,255,165,255,64,255,166,254, +58,254,180,254,134,255,170,255,75,255,221,254,132,254,194,254,109,255,127,255,211,254,161,253,110,251,192,248,67,247,199,247, +119,250,252,254,116,3,96,6,180,8,96,11,113,13,40,13,135,8,101,255,3,246,171,241,148,243,148,249,103,0,221,4, +59,6,231,5,44,4,14,1,93,254,163,253,33,255,247,2,162,7,16,10,23,9,133,5,90,0,152,251,15,249,46,248, +101,248,153,250,113,254,106,2,120,5,245,5,226,2,104,254,97,251,207,250,194,252,188,255,10,1,224,0,253,1,249,4, +227,7,72,8,104,4,2,254,24,250,32,251,5,255,148,2,252,2,8,255,29,249,161,244,201,242,254,243,99,248,152,254, +73,5,140,11,3,15,213,13,44,9,47,3,169,253,131,250,18,250,211,250,252,251,79,253,11,254,111,254,28,255,71,255, +156,254,129,254,211,255,32,2,104,4,219,4,157,2,129,255,121,253,164,252,221,252,17,254,166,255,149,1,3,4,222,5, +35,6,235,4,127,2,183,255,36,254,1,254,31,254,244,253,171,253,134,253,46,254,184,255,1,1,56,1,110,0,215,254, +65,253,200,252,79,253,224,253,40,254,57,254,62,254,169,254,153,255,240,0,252,2,150,5,110,7,128,7,15,6,250,3, +21,2,169,0,75,255,201,253,162,252,35,252,46,252,218,252,52,254,218,255,55,1,180,1,26,1,31,0,192,255,34,0, +128,0,228,255,248,253,166,251,110,250,221,250,62,252,178,253,13,255,165,0,101,2,76,3,122,2,139,0,16,255,222,254, +80,255,32,255,209,253,70,252,151,251,209,251,59,252,88,252,80,252,183,252,235,253,158,255,82,1,248,2,143,4,178,5, +189,5,71,4,175,1,63,255,24,254,38,254,151,254,218,254,227,254,14,255,176,255,137,0,44,1,164,1,19,2,97,2, +150,2,190,2,181,2,125,2,47,2,157,1,205,0,38,0,188,255,119,255,146,255,9,0,184,0,190,1,233,2,142,3, +106,3,158,2,96,1,78,0,0,0,76,0,178,0,196,0,246,255,84,254,210,252,59,252,182,252,251,253,53,255,151,255, +70,255,214,254,128,254,97,254,124,254,163,254,233,254,116,255,242,255,49,0,116,0,201,0,246,0,200,0,244,255,147,254, +138,253,126,253,30,254,212,254,47,255,250,254,163,254,193,254,96,255,83,0,111,1,73,2,173,2,212,2,206,2,117,2, +221,1,36,1,119,0,47,0,73,0,95,0,100,0,136,0,177,0,183,0,136,0,2,0,81,255,251,254,74,255,37,0, +35,1,141,1,24,1,120,0,110,0,234,0,92,1,84,1,243,0,228,0,110,1,223,1,120,1,80,0,5,255,42,254, +235,253,241,253,231,253,221,253,244,253,32,254,66,254,54,254,2,254,249,253,81,254,224,254,143,255,118,0,139,1,174,2, +161,3,244,3,94,3,43,2,233,0,227,255,8,255,18,254,234,252,221,251,94,251,164,251,139,252,175,253,184,254,156,255, +138,0,170,1,255,2,59,4,231,4,206,4,29,4,10,3,185,1,115,0,150,255,51,255,254,254,192,254,156,254,189,254, +0,255,35,255,25,255,12,255,25,255,43,255,44,255,68,255,174,255,96,0,255,0,61,1,49,1,47,1,115,1,239,1, +81,2,64,2,179,1,13,1,179,0,143,0,50,0,128,255,239,254,5,255,194,255,171,0,62,1,82,1,6,1,136,0, +214,255,218,254,185,253,227,252,176,252,19,253,195,253,144,254,102,255,33,0,156,0,220,0,1,1,30,1,48,1,58,1, +75,1,84,1,5,1,19,0,177,254,153,253,96,253,241,253,231,254,13,0,60,1,19,2,56,2,189,1,241,0,0,0, +11,255,85,254,30,254,102,254,242,254,128,255,233,255,49,0,111,0,167,0,194,0,184,0,153,0,124,0,119,0,136,0, +121,0,255,255,29,255,65,254,223,253,33,254,221,254,187,255,92,0,168,0,222,0,37,1,67,1,238,0,72,0,190,255, +145,255,186,255,21,0,124,0,207,0,242,0,214,0,124,0,3,0,179,255,212,255,109,0,46,1,145,1,63,1,78,0, +43,255,50,254,136,253,63,253,97,253,220,253,149,254,135,255,171,0,181,1,71,2,101,2,108,2,144,2,136,2,253,1, +10,1,34,0,138,255,34,255,177,254,69,254,45,254,169,254,163,255,177,0,95,1,124,1,36,1,153,0,19,0,177,255, +122,255,90,255,46,255,215,254,93,254,245,253,214,253,0,254,70,254,141,254,236,254,137,255,102,0,65,1,163,1,32,1, +189,255,255,253,133,252,168,251,124,251,3,252,16,253,67,254,69,255,4,0,151,0,6,1,67,1,82,1,90,1,123,1, +172,1,203,1,221,1,12,2,99,2,175,2,191,2,152,2,82,2,229,1,69,1,146,0,21,0,13,0,128,0,32,1, +138,1,158,1,138,1,122,1,91,1,17,1,174,0,103,0,99,0,157,0,229,0,5,1,237,0,177,0,116,0,84,0, +81,0,68,0,247,255,102,255,201,254,90,254,39,254,34,254,47,254,55,254,65,254,112,254,215,254,94,255,216,255,32,0, +26,0,199,255,93,255,37,255,43,255,46,255,226,254,48,254,91,253,216,252,4,253,229,253,51,255,132,0,115,1,207,1, +165,1,26,1,53,0,9,255,234,253,75,253,88,253,216,253,102,254,192,254,219,254,213,254,214,254,245,254,71,255,226,255, +186,0,141,1,30,2,109,2,152,2,146,2,28,2,46,1,55,0,215,255,73,0,35,1,180,1,168,1,49,1,175,0, +79,0,23,0,9,0,56,0,168,0,54,1,163,1,180,1,105,1,252,0,168,0,113,0,64,0,36,0,81,0,213,0, +104,1,161,1,67,1,114,0,162,255,70,255,102,255,151,255,110,255,2,255,217,254,79,255,63,0,35,1,146,1,153,1, +146,1,163,1,141,1,247,0,224,255,179,254,238,253,188,253,203,253,158,253,34,253,195,252,232,252,130,253,72,254,31,255, +3,0,194,0,9,1,178,0,235,255,38,255,216,254,30,255,180,255,80,0,224,0,100,1,201,1,253,1,255,1,202,1, +87,1,190,0,52,0,225,255,184,255,111,255,179,254,140,253,138,252,73,252,235,252,38,254,159,255,253,0,224,1,14,2, +167,1,248,0,64,0,161,255,43,255,217,254,165,254,141,254,145,254,160,254,180,254,213,254,7,255,77,255,187,255,100,0, +60,1,29,2,217,2,56,3,0,3,49,2,32,1,67,0,239,255,34,0,143,0,208,0,187,0,125,0,89,0,98,0, +141,0,227,0,115,1,39,2,182,2,218,2,140,2,12,2,158,1,74,1,214,0,25,0,54,255,130,254,52,254,65,254, +118,254,157,254,138,254,47,254,173,253,65,253,24,253,58,253,150,253,27,254,189,254,95,255,194,255,160,255,238,254,237,253, +250,252,83,252,27,252,110,252,70,253,99,254,110,255,53,0,190,0,47,1,165,1,30,2,145,2,6,3,122,3,173,3, +86,3,132,2,160,1,247,0,128,0,28,0,211,255,215,255,78,0,35,1,1,2,127,2,119,2,10,2,105,1,171,0, +220,255,40,255,215,254,21,255,164,255,249,255,203,255,115,255,118,255,228,255,99,0,179,0,233,0,40,1,95,1,70,1, +158,0,123,255,73,254,111,253,2,253,230,252,23,253,166,253,127,254,98,255,19,0,141,0,243,0,94,1,170,1,168,1, +85,1,215,0,80,0,198,255,54,255,136,254,174,253,225,252,155,252,29,253,25,254,6,255,171,255,49,0,197,0,95,1, +208,1,254,1,245,1,206,1,136,1,11,1,74,0,108,255,189,254,108,254,96,254,90,254,90,254,171,254,121,255,115,0, +36,1,126,1,215,1,104,2,255,2,59,3,240,2,58,2,104,1,202,0,121,0,73,0,2,0,180,255,157,255,203,255, +250,255,238,255,210,255,3,0,145,0,39,1,104,1,69,1,245,0,176,0,120,0,38,0,177,255,87,255,111,255,4,0, +189,0,46,1,64,1,31,1,227,0,105,0,163,255,197,254,12,254,132,253,49,253,69,253,214,253,146,254,10,255,43,255, +61,255,110,255,177,255,235,255,27,0,73,0,106,0,98,0,13,0,99,255,148,254,254,253,239,253,102,254,14,255,143,255, +229,255,65,0,172,0,241,0,240,0,197,0,148,0,114,0,105,0,103,0,45,0,153,255,241,254,160,254,190,254,7,255, +59,255,98,255,166,255,29,0,177,0,37,1,65,1,4,1,175,0,138,0,161,0,178,0,121,0,252,255,117,255,252,254, +134,254,45,254,58,254,189,254,86,255,148,255,110,255,61,255,92,255,224,255,146,0,41,1,130,1,174,1,191,1,165,1, +70,1,181,0,47,0,222,255,175,255,132,255,111,255,149,255,228,255,27,0,37,0,49,0,110,0,209,0,53,1,131,1, +175,1,175,1,140,1,96,1,59,1,11,1,174,0,47,0,212,255,212,255,17,0,71,0,85,0,69,0,51,0,66,0, +128,0,205,0,247,0,243,0,214,0,150,0,22,0,84,255,136,254,5,254,11,254,166,254,151,255,100,0,168,0,86,0, +183,255,31,255,194,254,163,254,174,254,217,254,20,255,51,255,22,255,219,254,180,254,162,254,140,254,119,254,126,254,166,254, +223,254,16,255,46,255,70,255,110,255,154,255,174,255,170,255,190,255,19,0,143,0,230,0,237,0,195,0,145,0,76,0, +206,255,30,255,137,254,89,254,129,254,179,254,194,254,206,254,253,254,77,255,165,255,254,255,94,0,198,0,50,1,171,1, +49,2,157,2,181,2,136,2,113,2,186,2,92,3,31,4,208,4,99,5,229,5,67,6,57,6,145,5,81,4,173,2, +246,0,124,255,98,254,139,253,215,252,80,252,254,251,205,251,164,251,151,251,210,251,76,252,189,252,238,252,249,252,25,253, +108,253,232,253,88,254,140,254,148,254,146,254,110,254,18,254,189,253,188,253,23,254,171,254,83,255,229,255,77,0,151,0, +200,0,232,0,27,1,100,1,119,1,19,1,95,0,197,255,137,255,153,255,177,255,160,255,96,255,18,255,238,254,26,255, +132,255,5,0,149,0,42,1,153,1,198,1,180,1,113,1,26,1,197,0,92,0,215,255,132,255,146,255,187,255,170,255, +93,255,1,255,200,254,239,254,149,255,152,0,159,1,81,2,153,2,164,2,150,2,121,2,127,2,209,2,54,3,81,3, +239,2,27,2,39,1,122,0,27,0,195,255,116,255,116,255,198,255,3,0,185,255,244,254,64,254,5,254,37,254,102,254, +209,254,110,255,37,0,185,0,218,0,117,0,207,255,63,255,26,255,154,255,132,0,69,1,142,1,108,1,12,1,173,0, +101,0,17,0,203,255,216,255,10,0,232,255,103,255,202,254,48,254,183,253,103,253,242,252,52,252,185,251,22,252,45,253, +97,254,46,255,121,255,146,255,204,255,29,0,82,0,125,0,197,0,25,1,88,1,114,1,80,1,244,0,164,0,169,0, +237,0,32,1,33,1,254,0,174,0,30,0,106,255,219,254,163,254,200,254,61,255,226,255,127,0,220,0,236,0,221,0, +239,0,39,1,76,1,77,1,95,1,164,1,220,1,182,1,53,1,168,0,76,0,18,0,202,255,105,255,36,255,42,255, +110,255,181,255,204,255,160,255,81,255,22,255,0,255,223,254,149,254,78,254,62,254,76,254,57,254,244,253,159,253,112,253, +136,253,222,253,76,254,198,254,83,255,228,255,97,0,220,0,112,1,254,1,78,2,71,2,1,2,171,1,112,1,73,1, +12,1,181,0,112,0,72,0,43,0,23,0,4,0,196,255,71,255,197,254,121,254,108,254,154,254,16,255,213,255,201,0, +161,1,18,2,44,2,77,2,154,2,194,2,129,2,11,2,190,1,196,1,246,1,10,2,199,1,63,1,189,0,123,0, +139,0,222,0,56,1,73,1,245,0,126,0,50,0,38,0,61,0,64,0,250,255,91,255,127,254,146,253,201,252,99,252, +118,252,183,252,204,252,185,252,195,252,10,253,125,253,24,254,229,254,212,255,193,0,143,1,39,2,110,2,89,2,254,1, +140,1,35,1,198,0,112,0,30,0,199,255,104,255,8,255,173,254,92,254,40,254,32,254,57,254,99,254,147,254,180,254, +172,254,119,254,33,254,172,253,10,253,102,252,72,252,50,253,7,255,42,1,14,3,96,4,209,4,23,4,58,2,230,255, +92,254,144,254,48,0,38,2,163,3,26,4,46,3,117,1,48,0,221,255,65,0,75,1,171,2,90,3,173,2,226,0, +170,254,29,253,89,253,23,255,229,0,1,2,134,2,42,2,79,0,7,253,101,249,14,247,64,247,246,249,44,254,143,2, +236,5,190,7,55,8,138,7,232,5,250,3,85,2,199,0,193,254,33,252,176,249,195,248,240,249,107,252,16,255,58,1, +183,2,162,3,16,4,154,3,250,1,197,255,5,254,130,253,119,254,82,0,0,2,232,2,12,3,127,2,110,1,66,0, +95,255,15,255,118,255,46,0,142,0,93,0,178,255,164,254,149,253,38,253,125,253,87,254,127,255,186,0,166,1,249,1, +156,1,175,0,138,255,114,254,127,253,235,252,235,252,77,253,192,253,45,254,122,254,145,254,184,254,56,255,237,255,147,0, +12,1,72,1,75,1,52,1,19,1,4,1,51,1,127,1,138,1,79,1,11,1,219,0,192,0,171,0,116,0,38,0, +16,0,45,0,47,0,24,0,24,0,38,0,55,0,107,0,187,0,5,1,57,1,37,1,148,0,197,255,62,255,66,255, +199,255,131,0,9,1,43,1,30,1,255,0,158,0,234,255,35,255,168,254,181,254,29,255,113,255,114,255,41,255,190,254, +115,254,143,254,254,254,102,255,173,255,248,255,80,0,153,0,186,0,176,0,162,0,191,0,238,0,241,0,182,0,96,0, +27,0,241,255,195,255,116,255,40,255,21,255,69,255,162,255,249,255,6,0,201,255,139,255,117,255,111,255,110,255,94,255, +13,255,133,254,18,254,203,253,155,253,136,253,159,253,218,253,73,254,0,255,212,255,133,0,248,0,42,1,32,1,219,0, +89,0,212,255,189,255,50,0,206,0,29,1,252,0,148,0,56,0,39,0,105,0,13,1,35,2,99,3,81,4,162,4, +62,4,41,3,181,1,79,0,51,255,131,254,90,254,157,254,5,255,92,255,111,255,44,255,223,254,242,254,115,255,19,0, +119,0,99,0,227,255,63,255,184,254,124,254,189,254,117,255,104,0,120,1,126,2,7,3,187,2,220,1,229,0,5,0, +61,255,165,254,88,254,76,254,97,254,153,254,15,255,190,255,120,0,37,1,209,1,119,2,253,2,68,3,38,3,132,2, +97,1,251,255,189,254,242,253,139,253,126,253,242,253,204,254,138,255,224,255,248,255,21,0,98,0,222,0,58,1,23,1, +130,0,193,255,244,254,26,254,50,253,72,252,174,251,209,251,170,252,190,253,164,254,67,255,194,255,99,0,54,1,0,2, +136,2,207,2,224,2,191,2,108,2,223,1,19,1,53,0,157,255,137,255,184,255,141,255,232,254,120,254,212,254,199,255, +200,0,138,1,231,1,231,1,193,1,139,1,37,1,143,0,248,255,131,255,61,255,31,255,13,255,252,254,252,254,2,255, +244,254,234,254,27,255,157,255,79,0,248,0,91,1,74,1,188,0,225,255,31,255,196,254,206,254,10,255,82,255,148,255, +202,255,238,255,221,255,123,255,242,254,155,254,169,254,25,255,186,255,72,0,138,0,91,0,188,255,251,254,128,254,107,254, +147,254,230,254,105,255,255,255,130,0,215,0,242,0,247,0,33,1,114,1,192,1,2,2,58,2,73,2,43,2,4,2, +215,1,145,1,63,1,236,0,145,0,56,0,253,255,231,255,238,255,8,0,46,0,96,0,157,0,205,0,224,0,225,0, +225,0,214,0,172,0,71,0,175,255,36,255,221,254,199,254,193,254,213,254,12,255,77,255,126,255,156,255,163,255,146,255, +103,255,29,255,214,254,194,254,225,254,12,255,46,255,67,255,73,255,90,255,153,255,254,255,87,0,131,0,133,0,104,0, +54,0,251,255,198,255,163,255,137,255,100,255,56,255,21,255,10,255,33,255,93,255,170,255,228,255,252,255,3,0,30,0, +89,0,149,0,166,0,130,0,58,0,232,255,174,255,153,255,148,255,139,255,138,255,164,255,215,255,23,0,80,0,96,0, +62,0,7,0,214,255,175,255,145,255,121,255,94,255,64,255,34,255,5,255,236,254,217,254,215,254,2,255,107,255,236,255, +70,0,102,0,97,0,76,0,60,0,60,0,72,0,89,0,115,0,149,0,181,0,202,0,198,0,157,0,107,0,91,0, +115,0,156,0,199,0,246,0,36,1,66,1,67,1,45,1,27,1,20,1,253,0,202,0,132,0,37,0,168,255,45,255, +229,254,229,254,29,255,92,255,110,255,86,255,56,255,24,255,235,254,209,254,229,254,26,255,93,255,165,255,200,255,170,255, +118,255,105,255,136,255,198,255,26,0,111,0,176,0,227,0,17,1,45,1,45,1,15,1,198,0,80,0,214,255,150,255, +149,255,150,255,104,255,37,255,8,255,31,255,69,255,81,255,55,255,16,255,8,255,60,255,153,255,240,255,18,0,245,255, +200,255,183,255,188,255,203,255,245,255,62,0,125,0,127,0,51,0,192,255,124,255,178,255,75,0,222,0,24,1,249,0, +192,0,157,0,135,0,103,0,76,0,77,0,101,0,142,0,199,0,246,0,5,1,12,1,37,1,64,1,63,1,26,1, +217,0,128,0,21,0,182,255,142,255,167,255,225,255,42,0,118,0,162,0,139,0,75,0,29,0,34,0,85,0,137,0, +135,0,75,0,244,255,149,255,63,255,25,255,32,255,44,255,46,255,37,255,7,255,229,254,227,254,248,254,13,255,46,255, +97,255,138,255,161,255,172,255,166,255,158,255,192,255,14,0,87,0,113,0,77,0,253,255,198,255,230,255,69,0,160,0, +209,0,221,0,222,0,229,0,225,0,171,0,72,0,246,255,229,255,1,0,33,0,64,0,114,0,166,0,184,0,170,0, +157,0,153,0,156,0,166,0,171,0,145,0,95,0,57,0,58,0,84,0,84,0,28,0,204,255,157,255,153,255,175,255, +221,255,22,0,42,0,249,255,177,255,137,255,126,255,101,255,64,255,44,255,31,255,240,254,173,254,145,254,175,254,225,254, +24,255,95,255,181,255,251,255,23,0,21,0,19,0,34,0,56,0,70,0,78,0,94,0,130,0,181,0,216,0,211,0, +167,0,105,0,54,0,47,0,86,0,122,0,122,0,95,0,61,0,32,0,22,0,37,0,61,0,85,0,102,0,108,0, +114,0,137,0,151,0,125,0,78,0,48,0,30,0,17,0,30,0,67,0,78,0,41,0,249,255,217,255,190,255,162,255, +158,255,178,255,182,255,147,255,90,255,33,255,251,254,255,254,52,255,126,255,179,255,199,255,212,255,232,255,225,255,159,255, +76,255,34,255,25,255,13,255,255,254,0,255,23,255,80,255,178,255,30,0,101,0,121,0,117,0,132,0,168,0,180,0, +153,0,128,0,131,0,134,0,121,0,107,0,91,0,71,0,57,0,51,0,49,0,58,0,78,0,87,0,76,0,45,0, +5,0,229,255,213,255,198,255,181,255,171,255,168,255,154,255,125,255,92,255,76,255,98,255,135,255,137,255,93,255,53,255, +57,255,105,255,172,255,225,255,240,255,217,255,162,255,95,255,55,255,53,255,60,255,66,255,95,255,145,255,200,255,3,0, +69,0,116,0,133,0,136,0,146,0,173,0,218,0,5,1,27,1,23,1,246,0,184,0,123,0,97,0,102,0,107,0, +108,0,118,0,130,0,120,0,100,0,106,0,133,0,139,0,124,0,131,0,161,0,172,0,137,0,74,0,17,0,241,255, +226,255,211,255,198,255,204,255,224,255,244,255,1,0,244,255,195,255,144,255,132,255,151,255,165,255,167,255,162,255,158,255, +154,255,142,255,122,255,113,255,119,255,113,255,81,255,50,255,49,255,78,255,116,255,143,255,168,255,207,255,253,255,26,0, +41,0,68,0,103,0,121,0,119,0,107,0,79,0,33,0,253,255,253,255,20,0,32,0,28,0,41,0,85,0,133,0, +167,0,183,0,183,0,169,0,149,0,119,0,66,0,5,0,224,255,217,255,233,255,2,0,21,0,28,0,41,0,69,0, +91,0,91,0,84,0,95,0,133,0,179,0,192,0,147,0,73,0,22,0,10,0,15,0,19,0,16,0,1,0,222,255, +159,255,70,255,234,254,193,254,235,254,66,255,137,255,163,255,153,255,135,255,137,255,166,255,197,255,208,255,208,255,222,255, +250,255,19,0,21,0,246,255,199,255,167,255,163,255,177,255,197,255,218,255,242,255,20,0,67,0,103,0,114,0,111,0, +109,0,99,0,76,0,50,0,29,0,17,0,18,0,26,0,18,0,248,255,236,255,1,0,30,0,41,0,42,0,47,0, +51,0,40,0,14,0,237,255,212,255,203,255,208,255,225,255,253,255,30,0,54,0,64,0,62,0,54,0,54,0,66,0, +67,0,46,0,25,0,21,0,14,0,239,255,204,255,192,255,204,255,224,255,237,255,235,255,226,255,226,255,242,255,4,0, +13,0,14,0,8,0,250,255,244,255,3,0,31,0,51,0,62,0,73,0,93,0,118,0,132,0,110,0,61,0,25,0, +29,0,68,0,126,0,173,0,175,0,132,0,77,0,23,0,227,255,205,255,234,255,22,0,38,0,27,0,9,0,245,255, +220,255,193,255,168,255,159,255,175,255,193,255,196,255,187,255,166,255,124,255,72,255,42,255,46,255,67,255,76,255,69,255, +59,255,64,255,86,255,107,255,109,255,99,255,107,255,148,255,206,255,240,255,231,255,205,255,201,255,224,255,241,255,242,255, +1,0,37,0,60,0,50,0,27,0,17,0,23,0,36,0,42,0,37,0,36,0,50,0,72,0,98,0,127,0,143,0, +132,0,109,0,94,0,78,0,56,0,46,0,61,0,94,0,130,0,163,0,189,0,208,0,208,0,174,0,111,0,43,0, +250,255,230,255,235,255,253,255,254,255,217,255,163,255,141,255,158,255,173,255,160,255,140,255,135,255,143,255,148,255,141,255, +130,255,138,255,165,255,180,255,171,255,160,255,164,255,179,255,201,255,213,255,196,255,171,255,172,255,192,255,201,255,192,255, +182,255,179,255,194,255,229,255,11,0,31,0,28,0,14,0,4,0,10,0,25,0,33,0,39,0,57,0,74,0,70,0, +51,0,51,0,77,0,109,0,130,0,135,0,124,0,108,0,111,0,131,0,140,0,126,0,115,0,126,0,151,0,165,0, +151,0,121,0,108,0,119,0,117,0,73,0,14,0,242,255,247,255,247,255,219,255,180,255,163,255,167,255,160,255,130,255, +101,255,98,255,122,255,164,255,202,255,207,255,171,255,133,255,125,255,129,255,117,255,109,255,141,255,200,255,247,255,10,0, +8,0,252,255,246,255,1,0,15,0,3,0,214,255,163,255,153,255,189,255,230,255,245,255,3,0,45,0,93,0,109,0, +93,0,72,0,69,0,91,0,120,0,125,0,108,0,105,0,126,0,145,0,139,0,119,0,96,0,83,0,84,0,81,0, +43,0,243,255,218,255,235,255,245,255,219,255,195,255,218,255,24,0,69,0,59,0,4,0,197,255,151,255,128,255,129,255, +143,255,143,255,129,255,121,255,114,255,77,255,16,255,235,254,251,254,53,255,122,255,175,255,195,255,192,255,184,255,169,255, +140,255,124,255,153,255,222,255,34,0,63,0,46,0,10,0,246,255,248,255,254,255,253,255,3,0,33,0,76,0,104,0, +100,0,78,0,75,0,101,0,126,0,124,0,107,0,104,0,120,0,148,0,168,0,157,0,114,0,76,0,70,0,73,0, +61,0,48,0,47,0,45,0,32,0,12,0,248,255,232,255,229,255,233,255,230,255,221,255,213,255,212,255,214,255,212,255, +197,255,177,255,176,255,197,255,216,255,219,255,207,255,187,255,169,255,165,255,164,255,139,255,98,255,85,255,116,255,164,255, +199,255,217,255,224,255,231,255,244,255,2,0,10,0,24,0,52,0,80,0,93,0,102,0,112,0,115,0,105,0,92,0, +83,0,82,0,91,0,106,0,121,0,134,0,147,0,157,0,168,0,178,0,165,0,124,0,87,0,84,0,97,0,93,0, +74,0,49,0,17,0,241,255,221,255,212,255,202,255,190,255,178,255,170,255,173,255,186,255,193,255,186,255,184,255,198,255, +220,255,240,255,253,255,245,255,212,255,166,255,124,255,99,255,97,255,114,255,133,255,143,255,153,255,164,255,164,255,155,255, +150,255,159,255,178,255,203,255,222,255,230,255,237,255,255,255,18,0,26,0,31,0,35,0,38,0,45,0,66,0,91,0, +103,0,100,0,83,0,51,0,22,0,23,0,54,0,92,0,118,0,125,0,119,0,118,0,132,0,141,0,126,0,94,0, +72,0,69,0,84,0,98,0,88,0,46,0,253,255,221,255,206,255,207,255,220,255,237,255,246,255,242,255,222,255,194,255, +183,255,204,255,236,255,255,255,12,0,26,0,25,0,7,0,245,255,231,255,213,255,203,255,219,255,244,255,252,255,239,255, +230,255,242,255,10,0,14,0,246,255,225,255,237,255,17,0,49,0,73,0,93,0,106,0,107,0,99,0,75,0,36,0, +2,0,250,255,11,0,40,0,68,0,79,0,72,0,68,0,65,0,36,0,243,255,216,255,227,255,247,255,0,0,7,0, +22,0,33,0,33,0,19,0,1,0,254,255,19,0,52,0,67,0,40,0,229,255,153,255,110,255,101,255,104,255,113,255, +147,255,197,255,237,255,250,255,229,255,177,255,125,255,115,255,145,255,182,255,210,255,232,255,238,255,217,255,180,255,148,255, +138,255,157,255,199,255,235,255,242,255,233,255,231,255,244,255,5,0,13,0,13,0,20,0,48,0,85,0,110,0,117,0, +106,0,81,0,53,0,29,0,254,255,213,255,196,255,223,255,11,0,38,0,50,0,61,0,66,0,62,0,47,0,21,0, +250,255,249,255,20,0,39,0,26,0,255,255,240,255,242,255,252,255,4,0,6,0,1,0,250,255,244,255,250,255,8,0, +10,0,248,255,224,255,202,255,174,255,149,255,160,255,207,255,249,255,0,0,234,255,204,255,185,255,195,255,228,255,2,0, +17,0,29,0,37,0,36,0,28,0,19,0,4,0,250,255,4,0,31,0,55,0,70,0,84,0,93,0,84,0,51,0, +14,0,8,0,51,0,109,0,141,0,143,0,134,0,116,0,90,0,66,0,46,0,22,0,3,0,7,0,31,0,55,0, +74,0,86,0,77,0,48,0,26,0,21,0,25,0,30,0,31,0,19,0,249,255,219,255,198,255,194,255,205,255,216,255, +206,255,184,255,171,255,171,255,172,255,171,255,169,255,166,255,167,255,173,255,169,255,148,255,128,255,131,255,148,255,167,255, +179,255,176,255,161,255,155,255,169,255,192,255,216,255,250,255,28,0,41,0,32,0,18,0,7,0,2,0,9,0,26,0, +40,0,48,0,46,0,32,0,12,0,254,255,249,255,255,255,20,0,47,0,63,0,67,0,68,0,62,0,45,0,35,0, +46,0,63,0,74,0,91,0,115,0,117,0,80,0,22,0,239,255,245,255,20,0,32,0,11,0,244,255,237,255,232,255, +218,255,210,255,209,255,199,255,184,255,181,255,186,255,180,255,165,255,153,255,148,255,150,255,160,255,177,255,202,255,218,255, +204,255,164,255,134,255,137,255,155,255,165,255,179,255,205,255,234,255,1,0,21,0,28,0,12,0,238,255,222,255,237,255, +23,0,65,0,79,0,73,0,74,0,83,0,77,0,58,0,51,0,54,0,47,0,34,0,26,0,20,0,18,0,33,0, +58,0,69,0,61,0,55,0,64,0,77,0,73,0,51,0,33,0,37,0,42,0,23,0,254,255,1,0,22,0,25,0, +1,0,221,255,189,255,178,255,190,255,208,255,209,255,196,255,186,255,187,255,206,255,232,255,239,255,221,255,202,255,204,255, +213,255,215,255,207,255,191,255,169,255,155,255,167,255,206,255,253,255,30,0,39,0,28,0,9,0,251,255,5,0,43,0, +80,0,74,0,32,0,0,0,255,255,13,0,30,0,52,0,77,0,97,0,114,0,116,0,91,0,48,0,24,0,36,0, +54,0,50,0,33,0,32,0,55,0,74,0,67,0,39,0,9,0,233,255,201,255,181,255,186,255,208,255,229,255,241,255, +248,255,253,255,247,255,224,255,194,255,179,255,187,255,198,255,192,255,181,255,175,255,164,255,142,255,135,255,164,255,205,255, +228,255,235,255,238,255,233,255,220,255,221,255,239,255,243,255,222,255,209,255,228,255,2,0,7,0,248,255,243,255,5,0, +26,0,37,0,52,0,72,0,78,0,57,0,35,0,28,0,28,0,27,0,31,0,35,0,36,0,44,0,63,0,73,0, +61,0,35,0,11,0,6,0,30,0,64,0,74,0,56,0,34,0,19,0,8,0,6,0,23,0,43,0,39,0,5,0, +217,255,180,255,156,255,140,255,148,255,197,255,4,0,34,0,23,0,7,0,252,255,227,255,194,255,183,255,201,255,225,255, +237,255,226,255,198,255,175,255,172,255,181,255,196,255,225,255,7,0,34,0,46,0,49,0,45,0,38,0,35,0,40,0, +45,0,49,0,57,0,75,0,104,0,125,0,114,0,83,0,75,0,94,0,103,0,90,0,84,0,94,0,100,0,93,0, +82,0,70,0,60,0,61,0,76,0,82,0,63,0,29,0,2,0,246,255,246,255,247,255,244,255,240,255,244,255,254,255, +4,0,255,255,236,255,214,255,205,255,209,255,205,255,185,255,176,255,199,255,230,255,235,255,217,255,196,255,185,255,181,255, +179,255,166,255,146,255,140,255,157,255,182,255,197,255,203,255,207,255,210,255,214,255,209,255,192,255,190,255,221,255,6,0, +23,0,18,0,13,0,15,0,22,0,31,0,33,0,25,0,17,0,21,0,33,0,45,0,55,0,58,0,51,0,40,0, +27,0,14,0,10,0,17,0,22,0,18,0,7,0,238,255,205,255,189,255,204,255,227,255,231,255,219,255,211,255,218,255, +232,255,235,255,219,255,196,255,180,255,175,255,179,255,190,255,205,255,218,255,230,255,236,255,229,255,228,255,248,255,11,0, +252,255,220,255,219,255,1,0,38,0,43,0,22,0,5,0,6,0,14,0,14,0,9,0,11,0,17,0,24,0,32,0, +30,0,6,0,235,255,236,255,14,0,52,0,73,0,82,0,83,0,74,0,58,0,46,0,45,0,56,0,76,0,100,0, +113,0,105,0,85,0,66,0,59,0,58,0,53,0,42,0,35,0,42,0,50,0,38,0,8,0,244,255,242,255,247,255, +248,255,242,255,234,255,241,255,5,0,9,0,240,255,222,255,241,255,26,0,54,0,52,0,25,0,253,255,239,255,221,255, +186,255,165,255,186,255,226,255,255,255,15,0,13,0,242,255,212,255,205,255,214,255,224,255,243,255,17,0,38,0,38,0, +19,0,246,255,230,255,243,255,7,0,6,0,252,255,254,255,14,0,38,0,53,0,33,0,251,255,246,255,34,0,84,0, +109,0,113,0,94,0,60,0,42,0,44,0,34,0,3,0,238,255,242,255,5,0,25,0,32,0,17,0,252,255,237,255, +222,255,208,255,209,255,217,255,211,255,196,255,183,255,171,255,168,255,191,255,219,255,221,255,211,255,210,255,201,255,171,255, +147,255,150,255,165,255,179,255,196,255,213,255,227,255,243,255,1,0,4,0,255,255,255,255,1,0,253,255,239,255,223,255, +213,255,218,255,236,255,254,255,2,0,1,0,6,0,20,0,33,0,30,0,15,0,7,0,23,0,49,0,64,0,72,0, +92,0,117,0,119,0,93,0,72,0,67,0,63,0,53,0,49,0,45,0,26,0,1,0,248,255,244,255,228,255,203,255, +185,255,183,255,200,255,229,255,242,255,228,255,207,255,201,255,208,255,207,255,194,255,181,255,191,255,223,255,245,255,238,255, +225,255,226,255,227,255,214,255,197,255,191,255,190,255,200,255,226,255,255,255,6,0,245,255,228,255,236,255,13,0,52,0, +77,0,86,0,88,0,83,0,63,0,37,0,21,0,16,0,12,0,12,0,29,0,56,0,66,0,52,0,37,0,31,0, +27,0,23,0,32,0,53,0,67,0,58,0,37,0,24,0,31,0,47,0,55,0,53,0,56,0,64,0,60,0,36,0, +3,0,232,255,222,255,228,255,231,255,217,255,196,255,188,255,192,255,202,255,213,255,214,255,201,255,202,255,230,255,254,255, +236,255,187,255,158,255,170,255,202,255,227,255,236,255,240,255,247,255,249,255,241,255,226,255,207,255,193,255,200,255,236,255, +20,0,41,0,49,0,55,0,52,0,31,0,8,0,9,0,31,0,55,0,61,0,48,0,26,0,7,0,0,0,9,0, +28,0,36,0,28,0,23,0,36,0,55,0,54,0,32,0,11,0,5,0,7,0,5,0,252,255,239,255,224,255,218,255, +225,255,238,255,250,255,253,255,245,255,232,255,225,255,224,255,223,255,218,255,209,255,202,255,202,255,210,255,210,255,195,255, +189,255,207,255,229,255,234,255,228,255,222,255,211,255,203,255,208,255,209,255,194,255,183,255,200,255,231,255,247,255,252,255, +8,0,31,0,49,0,44,0,29,0,34,0,68,0,95,0,96,0,92,0,92,0,80,0,62,0,62,0,70,0,69,0, +69,0,78,0,74,0,51,0,33,0,37,0,55,0,73,0,76,0,50,0,11,0,246,255,251,255,2,0,248,255,224,255, +209,255,220,255,241,255,243,255,227,255,220,255,228,255,233,255,231,255,234,255,239,255,234,255,223,255,221,255,227,255,233,255, +238,255,243,255,242,255,226,255,198,255,182,255,196,255,223,255,233,255,223,255,216,255,223,255,231,255,224,255,207,255,202,255, +222,255,248,255,4,0,11,0,26,0,39,0,42,0,43,0,44,0,35,0,22,0,29,0,56,0,74,0,68,0,49,0, +32,0,25,0,18,0,1,0,241,255,247,255,9,0,11,0,248,255,229,255,221,255,220,255,223,255,228,255,230,255,230,255, +224,255,207,255,196,255,213,255,241,255,241,255,216,255,207,255,219,255,222,255,204,255,183,255,173,255,174,255,188,255,213,255, +231,255,223,255,198,255,189,255,212,255,244,255,254,255,243,255,237,255,243,255,245,255,236,255,226,255,221,255,222,255,232,255, +251,255,13,0,18,0,11,0,2,0,253,255,255,255,7,0,21,0,41,0,64,0,79,0,77,0,63,0,52,0,55,0, +59,0,52,0,45,0,60,0,88,0,97,0,82,0,67,0,67,0,67,0,52,0,25,0,1,0,249,255,252,255,250,255, +235,255,223,255,229,255,246,255,2,0,2,0,243,255,223,255,211,255,211,255,215,255,219,255,227,255,239,255,249,255,250,255, +235,255,211,255,201,255,217,255,240,255,248,255,252,255,15,0,41,0,52,0,42,0,22,0,6,0,3,0,10,0,18,0, +19,0,13,0,7,0,7,0,13,0,14,0,7,0,1,0,6,0,20,0,32,0,36,0,34,0,39,0,56,0,75,0, +82,0,76,0,58,0,33,0,11,0,8,0,24,0,43,0,45,0,27,0,6,0,4,0,15,0,17,0,5,0,247,255, +240,255,236,255,232,255,232,255,232,255,226,255,216,255,211,255,216,255,225,255,227,255,221,255,215,255,209,255,192,255,171,255, +169,255,191,255,219,255,235,255,241,255,248,255,1,0,253,255,227,255,195,255,183,255,198,255,231,255,6,0,18,0,14,0, +18,0,37,0,40,0,10,0,235,255,238,255,15,0,48,0,59,0,47,0,31,0,36,0,56,0,67,0,63,0,57,0, +57,0,63,0,75,0,82,0,74,0,62,0,59,0,49,0,24,0,6,0,8,0,20,0,35,0,49,0,43,0,15,0, +247,255,240,255,237,255,232,255,235,255,241,255,243,255,249,255,1,0,251,255,234,255,226,255,225,255,220,255,213,255,210,255, +209,255,211,255,218,255,221,255,217,255,225,255,254,255,17,0,11,0,0,0,8,0,26,0,34,0,23,0,0,0,239,255, +240,255,1,0,23,0,42,0,52,0,48,0,39,0,42,0,49,0,36,0,7,0,250,255,6,0,26,0,43,0,61,0, +74,0,75,0,76,0,76,0,58,0,19,0,239,255,230,255,244,255,8,0,19,0,19,0,14,0,9,0,1,0,241,255, +217,255,196,255,195,255,225,255,8,0,13,0,232,255,194,255,186,255,193,255,192,255,185,255,181,255,186,255,203,255,225,255, +232,255,216,255,190,255,177,255,183,255,194,255,199,255,201,255,208,255,215,255,220,255,223,255,227,255,234,255,243,255,249,255, +245,255,236,255,235,255,245,255,252,255,245,255,231,255,227,255,244,255,16,0,40,0,48,0,40,0,23,0,15,0,34,0, +69,0,80,0,49,0,10,0,1,0,20,0,38,0,40,0,30,0,20,0,15,0,9,0,0,0,255,255,255,255,244,255, +229,255,227,255,234,255,237,255,239,255,245,255,251,255,249,255,242,255,230,255,222,255,224,255,222,255,199,255,177,255,177,255, +189,255,201,255,213,255,218,255,211,255,213,255,230,255,240,255,232,255,230,255,244,255,2,0,6,0,0,0,241,255,231,255, +245,255,15,0,22,0,13,0,11,0,20,0,32,0,39,0,26,0,1,0,0,0,31,0,59,0,66,0,71,0,80,0, +81,0,77,0,73,0,62,0,49,0,52,0,69,0,79,0,80,0,78,0,75,0,71,0,68,0,60,0,40,0,23,0, +17,0,16,0,11,0,6,0,6,0,8,0,4,0,238,255,200,255,170,255,172,255,194,255,199,255,178,255,163,255,174,255, +193,255,202,255,206,255,209,255,207,255,206,255,220,255,239,255,244,255,235,255,227,255,230,255,243,255,255,255,255,255,249,255, +255,255,19,0,33,0,31,0,26,0,26,0,25,0,29,0,42,0,49,0,44,0,42,0,39,0,32,0,31,0,36,0, +33,0,32,0,42,0,50,0,46,0,40,0,28,0,12,0,10,0,29,0,46,0,41,0,15,0,243,255,232,255,239,255, +247,255,246,255,245,255,2,0,19,0,9,0,233,255,208,255,202,255,204,255,212,255,216,255,211,255,215,255,233,255,238,255, +224,255,205,255,189,255,183,255,200,255,223,255,229,255,220,255,210,255,202,255,202,255,220,255,249,255,16,0,23,0,18,0, +7,0,247,255,227,255,207,255,196,255,198,255,210,255,232,255,13,0,64,0,97,0,83,0,37,0,6,0,14,0,47,0, +77,0,78,0,51,0,30,0,31,0,38,0,35,0,31,0,39,0,53,0,64,0,72,0,72,0,57,0,37,0,25,0, +16,0,254,255,240,255,246,255,10,0,16,0,253,255,220,255,195,255,189,255,199,255,213,255,216,255,210,255,203,255,203,255, +207,255,206,255,193,255,181,255,193,255,220,255,232,255,223,255,208,255,200,255,207,255,223,255,232,255,232,255,239,255,2,0, +13,0,7,0,244,255,229,255,232,255,252,255,18,0,29,0,31,0,36,0,49,0,63,0,70,0,61,0,41,0,31,0, +39,0,48,0,48,0,48,0,48,0,46,0,52,0,66,0,68,0,54,0,42,0,38,0,32,0,20,0,10,0,255,255, +240,255,229,255,226,255,228,255,233,255,242,255,243,255,236,255,230,255,226,255,220,255,216,255,215,255,216,255,224,255,231,255, +223,255,216,255,232,255,249,255,235,255,207,255,197,255,205,255,215,255,216,255,211,255,210,255,218,255,236,255,3,0,6,0, +244,255,238,255,4,0,28,0,34,0,20,0,254,255,247,255,7,0,26,0,32,0,26,0,19,0,22,0,39,0,53,0, +51,0,45,0,42,0,44,0,49,0,39,0,15,0,2,0,3,0,6,0,19,0,32,0,22,0,9,0,29,0,52,0, +42,0,17,0,0,0,251,255,255,255,8,0,11,0,10,0,7,0,255,255,241,255,229,255,232,255,243,255,246,255,237,255, +228,255,215,255,202,255,201,255,208,255,208,255,214,255,232,255,238,255,234,255,241,255,248,255,233,255,215,255,210,255,216,255, +238,255,9,0,12,0,245,255,225,255,223,255,233,255,250,255,13,0,20,0,13,0,19,0,39,0,45,0,29,0,23,0, +31,0,34,0,29,0,30,0,37,0,37,0,27,0,13,0,4,0,12,0,37,0,60,0,66,0,59,0,49,0,37,0, +26,0,22,0,19,0,9,0,1,0,2,0,7,0,6,0,249,255,226,255,208,255,212,255,230,255,246,255,253,255,253,255, +245,255,228,255,208,255,195,255,197,255,211,255,224,255,227,255,217,255,202,255,194,255,194,255,206,255,231,255,252,255,252,255, +249,255,1,0,252,255,221,255,195,255,199,255,220,255,237,255,3,0,35,0,64,0,70,0,49,0,22,0,14,0,31,0, +52,0,64,0,67,0,58,0,33,0,13,0,18,0,33,0,41,0,50,0,69,0,80,0,69,0,46,0,23,0,1,0, +246,255,2,0,21,0,20,0,4,0,249,255,247,255,246,255,247,255,244,255,234,255,227,255,231,255,237,255,231,255,201,255, +168,255,173,255,214,255,241,255,238,255,237,255,245,255,242,255,224,255,207,255,209,255,226,255,236,255,234,255,224,255,209,255, +205,255,230,255,2,0,4,0,243,255,230,255,234,255,9,0,37,0,22,0,238,255,223,255,241,255,16,0,41,0,46,0, +45,0,60,0,85,0,101,0,97,0,71,0,40,0,33,0,39,0,33,0,17,0,11,0,25,0,52,0,68,0,55,0, +35,0,28,0,27,0,23,0,9,0,237,255,220,255,233,255,248,255,241,255,225,255,218,255,228,255,249,255,3,0,252,255, +245,255,241,255,227,255,210,255,202,255,189,255,172,255,174,255,200,255,223,255,219,255,207,255,212,255,228,255,235,255,234,255, +232,255,223,255,219,255,235,255,255,255,1,0,244,255,237,255,247,255,16,0,45,0,65,0,68,0,52,0,28,0,19,0, +24,0,18,0,254,255,249,255,18,0,47,0,50,0,39,0,37,0,42,0,53,0,66,0,67,0,49,0,29,0,21,0, +18,0,11,0,254,255,245,255,2,0,31,0,44,0,25,0,247,255,227,255,225,255,221,255,210,255,214,255,235,255,248,255, +240,255,219,255,202,255,197,255,211,255,230,255,238,255,229,255,211,255,194,255,195,255,216,255,234,255,228,255,211,255,215,255, +244,255,7,0,255,255,234,255,223,255,227,255,243,255,1,0,5,0,9,0,14,0,9,0,251,255,252,255,17,0,38,0, +49,0,58,0,60,0,48,0,33,0,28,0,28,0,31,0,43,0,58,0,65,0,56,0,31,0,6,0,7,0,25,0, +24,0,15,0,30,0,55,0,52,0,25,0,1,0,244,255,238,255,234,255,231,255,233,255,241,255,247,255,236,255,210,255, +199,255,215,255,230,255,227,255,222,255,216,255,201,255,202,255,219,255,225,255,220,255,221,255,221,255,223,255,240,255,252,255, +242,255,228,255,227,255,234,255,246,255,248,255,238,255,232,255,237,255,248,255,10,0,32,0,45,0,49,0,50,0,39,0, +24,0,12,0,10,0,19,0,31,0,27,0,26,0,46,0,66,0,63,0,52,0,50,0,62,0,85,0,94,0,75,0, +45,0,20,0,2,0,250,255,247,255,249,255,14,0,47,0,55,0,35,0,9,0,242,255,228,255,228,255,230,255,222,255, +212,255,205,255,199,255,195,255,198,255,204,255,210,255,222,255,237,255,238,255,221,255,206,255,203,255,200,255,192,255,187,255, +186,255,192,255,215,255,242,255,244,255,234,255,240,255,3,0,15,0,20,0,22,0,16,0,5,0,4,0,11,0,11,0, +3,0,5,0,25,0,50,0,60,0,47,0,34,0,39,0,47,0,39,0,24,0,12,0,2,0,4,0,24,0,37,0, +25,0,8,0,1,0,4,0,15,0,27,0,24,0,5,0,244,255,237,255,229,255,218,255,214,255,225,255,237,255,236,255, +230,255,233,255,243,255,246,255,233,255,214,255,204,255,206,255,214,255,229,255,238,255,222,255,194,255,182,255,193,255,218,255, +242,255,249,255,240,255,239,255,248,255,249,255,237,255,230,255,234,255,246,255,8,0,27,0,32,0,29,0,27,0,30,0, +36,0,50,0,62,0,56,0,49,0,51,0,43,0,27,0,30,0,51,0,56,0,45,0,39,0,39,0,38,0,35,0, +37,0,45,0,48,0,40,0,34,0,40,0,46,0,42,0,33,0,28,0,29,0,30,0,24,0,17,0,4,0,239,255, +230,255,238,255,236,255,222,255,224,255,235,255,233,255,231,255,235,255,231,255,223,255,220,255,212,255,202,255,197,255,196,255, +203,255,215,255,213,255,202,255,204,255,211,255,208,255,206,255,212,255,228,255,255,255,27,0,40,0,45,0,46,0,43,0, +44,0,47,0,43,0,35,0,28,0,25,0,28,0,28,0,21,0,29,0,48,0,48,0,33,0,31,0,37,0,37,0, +33,0,20,0,253,255,249,255,12,0,29,0,35,0,28,0,3,0,233,255,235,255,254,255,3,0,247,255,237,255,234,255, +230,255,220,255,213,255,215,255,227,255,240,255,241,255,222,255,203,255,198,255,204,255,213,255,213,255,200,255,196,255,222,255, +251,255,248,255,226,255,218,255,227,255,243,255,0,0,0,0,242,255,238,255,0,0,14,0,6,0,251,255,5,0,23,0, +31,0,26,0,21,0,30,0,48,0,55,0,48,0,45,0,48,0,49,0,52,0,56,0,52,0,44,0,38,0,36,0, +35,0,34,0,28,0,22,0,25,0,30,0,26,0,19,0,15,0,7,0,250,255,251,255,5,0,3,0,243,255,234,255, +230,255,215,255,198,255,200,255,212,255,213,255,203,255,197,255,203,255,215,255,215,255,198,255,187,255,198,255,214,255,223,255, +226,255,220,255,209,255,209,255,218,255,214,255,201,255,213,255,251,255,22,0,22,0,10,0,0,0,253,255,255,255,251,255, +247,255,10,0,45,0,64,0,55,0,35,0,16,0,18,0,39,0,51,0,40,0,32,0,44,0,57,0,53,0,37,0, +24,0,20,0,19,0,22,0,34,0,40,0,25,0,7,0,3,0,3,0,254,255,247,255,248,255,3,0,5,0,247,255, +235,255,235,255,231,255,228,255,232,255,233,255,234,255,242,255,238,255,220,255,217,255,227,255,226,255,229,255,236,255,228,255, +211,255,211,255,221,255,227,255,225,255,225,255,236,255,2,0,7,0,245,255,230,255,233,255,244,255,253,255,6,0,22,0, +36,0,33,0,20,0,15,0,16,0,29,0,56,0,71,0,58,0,46,0,47,0,39,0,24,0,24,0,30,0,32,0, +41,0,53,0,53,0,40,0,21,0,8,0,13,0,21,0,9,0,245,255,244,255,254,255,248,255,226,255,212,255,211,255, +211,255,215,255,226,255,231,255,221,255,211,255,213,255,216,255,212,255,207,255,215,255,229,255,232,255,218,255,207,255,213,255, +227,255,235,255,236,255,232,255,226,255,225,255,228,255,225,255,218,255,225,255,249,255,10,0,7,0,255,255,253,255,1,0, +15,0,33,0,42,0,43,0,46,0,51,0,54,0,56,0,51,0,41,0,38,0,44,0,50,0,52,0,45,0,34,0, +29,0,30,0,24,0,15,0,20,0,36,0,39,0,24,0,6,0,255,255,255,255,0,0,250,255,234,255,218,255,221,255, +238,255,242,255,230,255,218,255,219,255,231,255,243,255,242,255,228,255,218,255,215,255,209,255,207,255,215,255,227,255,237,255, +242,255,241,255,235,255,234,255,242,255,238,255,222,255,222,255,245,255,7,0,8,0,254,255,243,255,236,255,244,255,7,0, +30,0,52,0,56,0,36,0,18,0,16,0,17,0,17,0,25,0,38,0,46,0,54,0,56,0,48,0,38,0,32,0, +27,0,22,0,27,0,47,0,56,0,36,0,12,0,7,0,6,0,255,255,255,255,5,0,7,0,11,0,8,0,250,255, +242,255,244,255,238,255,233,255,241,255,241,255,227,255,218,255,216,255,214,255,216,255,218,255,216,255,226,255,245,255,249,255, +234,255,224,255,228,255,233,255,232,255,236,255,250,255,1,0,0,0,255,255,247,255,236,255,243,255,6,0,8,0,2,0, +10,0,19,0,18,0,18,0,15,0,4,0,6,0,31,0,55,0,60,0,51,0,43,0,46,0,50,0,42,0,30,0, +27,0,27,0,20,0,14,0,20,0,26,0,18,0,0,0,248,255,247,255,247,255,249,255,255,255,255,255,240,255,223,255, +218,255,230,255,248,255,0,0,250,255,239,255,235,255,238,255,235,255,222,255,210,255,211,255,224,255,235,255,239,255,234,255, +223,255,221,255,231,255,244,255,245,255,235,255,225,255,220,255,224,255,238,255,245,255,240,255,242,255,255,255,5,0,253,255, +254,255,9,0,12,0,10,0,15,0,19,0,20,0,29,0,35,0,26,0,16,0,26,0,45,0,51,0,48,0,41,0, +31,0,21,0,19,0,19,0,10,0,253,255,250,255,4,0,19,0,26,0,13,0,246,255,244,255,9,0,20,0,11,0, +253,255,244,255,237,255,230,255,221,255,207,255,208,255,232,255,254,255,250,255,232,255,219,255,211,255,214,255,229,255,238,255, +229,255,225,255,235,255,237,255,225,255,222,255,235,255,251,255,2,0,2,0,255,255,5,0,18,0,23,0,11,0,1,0, +8,0,19,0,20,0,15,0,12,0,12,0,24,0,50,0,64,0,53,0,32,0,17,0,12,0,14,0,18,0,19,0, +17,0,18,0,18,0,22,0,28,0,26,0,23,0,20,0,9,0,249,255,250,255,6,0,4,0,241,255,229,255,236,255, +250,255,255,255,250,255,245,255,249,255,251,255,243,255,231,255,227,255,233,255,243,255,247,255,241,255,225,255,217,255,230,255, +245,255,237,255,221,255,221,255,230,255,238,255,248,255,251,255,240,255,234,255,243,255,250,255,251,255,1,0,12,0,20,0, +23,0,17,0,9,0,12,0,24,0,26,0,17,0,15,0,20,0,18,0,18,0,28,0,36,0,36,0,39,0,47,0, +44,0,32,0,20,0,12,0,12,0,23,0,31,0,25,0,17,0,16,0,12,0,0,0,249,255,247,255,245,255,245,255, +250,255,252,255,251,255,247,255,241,255,235,255,230,255,223,255,214,255,207,255,210,255,221,255,241,255,253,255,241,255,215,255, +206,255,219,255,222,255,212,255,207,255,215,255,223,255,229,255,238,255,248,255,4,0,15,0,20,0,18,0,16,0,18,0, +21,0,20,0,21,0,24,0,21,0,10,0,5,0,14,0,23,0,19,0,15,0,23,0,34,0,33,0,27,0,27,0, +27,0,22,0,19,0,26,0,35,0,36,0,28,0,13,0,254,255,250,255,253,255,251,255,242,255,237,255,240,255,246,255, +245,255,240,255,243,255,252,255,251,255,229,255,207,255,207,255,221,255,227,255,221,255,216,255,220,255,229,255,235,255,228,255, +214,255,211,255,222,255,241,255,3,0,13,0,12,0,4,0,3,0,7,0,0,0,245,255,245,255,1,0,8,0,7,0, +5,0,0,0,1,0,15,0,28,0,18,0,3,0,13,0,37,0,47,0,42,0,33,0,22,0,14,0,16,0,22,0, +26,0,30,0,35,0,33,0,26,0,21,0,16,0,7,0,4,0,8,0,8,0,7,0,13,0,19,0,16,0,9,0, +6,0,2,0,248,255,236,255,230,255,229,255,227,255,220,255,214,255,221,255,231,255,231,255,228,255,235,255,245,255,243,255, +231,255,224,255,220,255,219,255,225,255,233,255,235,255,232,255,234,255,246,255,0,0,2,0,0,0,2,0,7,0,12,0, +15,0,13,0,7,0,6,0,18,0,32,0,34,0,25,0,19,0,18,0,25,0,35,0,33,0,20,0,16,0,24,0, +19,0,3,0,6,0,28,0,35,0,21,0,9,0,5,0,0,0,251,255,253,255,3,0,7,0,5,0,254,255,250,255, +250,255,248,255,245,255,248,255,252,255,249,255,246,255,248,255,247,255,239,255,233,255,225,255,212,255,208,255,226,255,246,255, +247,255,234,255,226,255,229,255,235,255,240,255,241,255,241,255,243,255,245,255,245,255,243,255,241,255,239,255,241,255,252,255, +9,0,12,0,5,0,1,0,6,0,18,0,24,0,25,0,28,0,35,0,38,0,33,0,26,0,25,0,35,0,47,0, +48,0,35,0,23,0,29,0,42,0,44,0,33,0,18,0,13,0,18,0,20,0,14,0,5,0,0,0,255,255,2,0, +4,0,252,255,242,255,248,255,13,0,18,0,252,255,226,255,218,255,227,255,241,255,244,255,235,255,230,255,235,255,240,255, +236,255,228,255,224,255,226,255,235,255,242,255,241,255,236,255,241,255,254,255,5,0,2,0,243,255,223,255,219,255,240,255, +6,0,8,0,3,0,6,0,6,0,1,0,2,0,9,0,18,0,31,0,45,0,44,0,22,0,254,255,249,255,3,0, +15,0,20,0,21,0,22,0,22,0,19,0,12,0,2,0,250,255,250,255,9,0,30,0,34,0,16,0,255,255,5,0, +21,0,18,0,255,255,242,255,243,255,246,255,245,255,241,255,232,255,223,255,223,255,228,255,229,255,226,255,225,255,223,255, +219,255,212,255,204,255,203,255,223,255,253,255,11,0,7,0,0,0,248,255,238,255,237,255,245,255,246,255,241,255,252,255, +20,0,29,0,20,0,8,0,253,255,246,255,248,255,0,0,2,0,5,0,15,0,19,0,13,0,8,0,5,0,2,0, +6,0,24,0,37,0,32,0,20,0,14,0,15,0,23,0,37,0,41,0,29,0,21,0,27,0,33,0,23,0,6,0, +255,255,7,0,15,0,7,0,245,255,232,255,234,255,242,255,247,255,249,255,246,255,243,255,242,255,240,255,228,255,213,255, +207,255,213,255,218,255,218,255,219,255,227,255,239,255,254,255,9,0,3,0,243,255,238,255,248,255,1,0,1,0,255,255, +255,255,5,0,15,0,14,0,255,255,248,255,12,0,37,0,34,0,10,0,249,255,251,255,3,0,9,0,16,0,20,0, +15,0,9,0,15,0,29,0,29,0,14,0,5,0,9,0,13,0,14,0,19,0,18,0,4,0,248,255,250,255,255,255, +253,255,255,255,6,0,6,0,254,255,248,255,248,255,248,255,244,255,236,255,231,255,235,255,244,255,241,255,227,255,221,255, +223,255,225,255,226,255,230,255,237,255,243,255,242,255,234,255,228,255,228,255,230,255,236,255,249,255,5,0,6,0,0,0, +253,255,1,0,9,0,19,0,24,0,21,0,17,0,21,0,28,0,27,0,20,0,18,0,23,0,27,0,28,0,29,0, +27,0,18,0,9,0,10,0,24,0,38,0,42,0,34,0,14,0,252,255,255,255,16,0,23,0,18,0,19,0,20,0, +11,0,254,255,247,255,238,255,231,255,233,255,242,255,249,255,248,255,241,255,233,255,235,255,245,255,245,255,232,255,223,255, +229,255,236,255,236,255,232,255,225,255,220,255,230,255,246,255,249,255,248,255,252,255,254,255,247,255,243,255,245,255,252,255, +3,0,6,0,5,0,7,0,12,0,13,0,12,0,14,0,12,0,4,0,4,0,21,0,35,0,32,0,27,0,30,0, +37,0,39,0,36,0,24,0,8,0,6,0,17,0,20,0,13,0,6,0,5,0,12,0,18,0,12,0,1,0,3,0, +11,0,7,0,253,255,249,255,247,255,243,255,247,255,1,0,2,0,243,255,231,255,233,255,238,255,235,255,228,255,225,255, +224,255,224,255,222,255,223,255,238,255,255,255,251,255,237,255,236,255,246,255,251,255,250,255,251,255,251,255,248,255,252,255, +7,0,14,0,7,0,254,255,253,255,253,255,254,255,3,0,7,0,7,0,8,0,7,0,2,0,1,0,5,0,9,0, +16,0,25,0,28,0,26,0,27,0,27,0,15,0,2,0,2,0,9,0,8,0,5,0,10,0,16,0,10,0,0,0, +251,255,250,255,0,0,9,0,7,0,254,255,254,255,3,0,253,255,241,255,235,255,236,255,239,255,241,255,241,255,240,255, +240,255,235,255,230,255,227,255,231,255,239,255,248,255,254,255,252,255,241,255,231,255,233,255,245,255,254,255,8,0,20,0, +26,0,23,0,18,0,7,0,251,255,251,255,7,0,18,0,20,0,19,0,22,0,24,0,19,0,13,0,11,0,10,0, +10,0,21,0,31,0,30,0,23,0,21,0,20,0,18,0,18,0,18,0,18,0,17,0,15,0,13,0,9,0,1,0, +247,255,243,255,247,255,1,0,9,0,7,0,254,255,247,255,246,255,246,255,241,255,236,255,237,255,241,255,238,255,233,255, +232,255,228,255,224,255,231,255,240,255,235,255,228,255,232,255,235,255,234,255,238,255,249,255,251,255,241,255,236,255,242,255, +254,255,10,0,20,0,19,0,8,0,1,0,4,0,7,0,8,0,9,0,8,0,9,0,19,0,28,0,26,0,17,0, +9,0,9,0,18,0,24,0,14,0,1,0,3,0,13,0,15,0,10,0,11,0,20,0,21,0,10,0,1,0,255,255, +1,0,10,0,14,0,3,0,246,255,249,255,0,0,248,255,232,255,226,255,233,255,237,255,234,255,229,255,229,255,231,255, +235,255,236,255,231,255,230,255,235,255,237,255,242,255,251,255,247,255,233,255,237,255,254,255,253,255,236,255,229,255,243,255, +6,0,15,0,9,0,0,0,2,0,9,0,7,0,252,255,253,255,19,0,43,0,46,0,33,0,21,0,23,0,34,0, +36,0,22,0,12,0,16,0,23,0,26,0,25,0,11,0,251,255,0,0,17,0,26,0,26,0,24,0,18,0,12,0, +8,0,2,0,248,255,247,255,0,0,1,0,244,255,240,255,252,255,2,0,243,255,225,255,220,255,224,255,234,255,241,255, +235,255,230,255,239,255,249,255,247,255,231,255,215,255,217,255,237,255,251,255,245,255,237,255,238,255,242,255,246,255,249,255, +252,255,253,255,2,0,10,0,13,0,3,0,252,255,4,0,14,0,11,0,9,0,18,0,24,0,24,0,21,0,18,0, +19,0,20,0,16,0,11,0,12,0,16,0,18,0,17,0,14,0,10,0,4,0,251,255,248,255,2,0,12,0,18,0, +19,0,8,0,245,255,239,255,247,255,255,255,5,0,6,0,249,255,234,255,229,255,225,255,217,255,214,255,225,255,240,255, +240,255,228,255,225,255,231,255,233,255,233,255,231,255,224,255,228,255,245,255,253,255,248,255,241,255,231,255,224,255,236,255, +254,255,1,0,255,255,3,0,8,0,7,0,2,0,1,0,4,0,5,0,7,0,13,0,14,0,12,0,20,0,27,0, +17,0,5,0,7,0,13,0,17,0,18,0,11,0,7,0,15,0,24,0,26,0,21,0,13,0,6,0,7,0,14,0, +23,0,24,0,10,0,254,255,1,0,1,0,244,255,241,255,251,255,253,255,245,255,239,255,238,255,240,255,241,255,240,255, +238,255,234,255,228,255,233,255,244,255,248,255,249,255,250,255,243,255,233,255,235,255,242,255,249,255,2,0,6,0,6,0, +6,0,0,0,252,255,2,0,6,0,255,255,0,0,12,0,22,0,27,0,28,0,23,0,19,0,22,0,25,0,27,0, +29,0,28,0,32,0,37,0,33,0,28,0,25,0,18,0,16,0,23,0,23,0,20,0,25,0,28,0,23,0,18,0, +8,0,255,255,1,0,4,0,255,255,255,255,4,0,2,0,248,255,233,255,223,255,226,255,241,255,252,255,253,255,241,255, +229,255,235,255,247,255,241,255,228,255,222,255,223,255,240,255,7,0,3,0,232,255,217,255,222,255,234,255,246,255,249,255, +242,255,243,255,255,255,6,0,4,0,1,0,3,0,11,0,13,0,8,0,4,0,1,0,3,0,13,0,14,0,6,0, +15,0,31,0,25,0,13,0,13,0,9,0,7,0,20,0,26,0,17,0,12,0,16,0,16,0,9,0,255,255,250,255, +1,0,12,0,11,0,0,0,248,255,255,255,5,0,252,255,246,255,253,255,246,255,233,255,249,255,10,0,249,255,231,255, +238,255,240,255,229,255,229,255,236,255,236,255,234,255,233,255,230,255,230,255,236,255,248,255,0,0,255,255,251,255,250,255, +251,255,1,0,10,0,4,0,250,255,255,255,8,0,9,0,11,0,10,0,5,0,15,0,30,0,23,0,6,0,0,0, +2,0,11,0,20,0,16,0,9,0,13,0,20,0,19,0,14,0,8,0,7,0,11,0,9,0,8,0,16,0,21,0, +15,0,3,0,246,255,241,255,254,255,8,0,4,0,254,255,248,255,243,255,248,255,254,255,243,255,233,255,237,255,248,255, +3,0,7,0,249,255,237,255,244,255,251,255,249,255,243,255,235,255,231,255,236,255,239,255,243,255,251,255,252,255,246,255, +244,255,245,255,246,255,255,255,7,0,9,0,10,0,10,0,6,0,4,0,1,0,1,0,10,0,18,0,14,0,11,0, +10,0,6,0,11,0,24,0,23,0,15,0,17,0,20,0,18,0,20,0,12,0,251,255,247,255,0,0,6,0,5,0, +5,0,10,0,16,0,11,0,0,0,250,255,247,255,251,255,8,0,10,0,255,255,250,255,252,255,248,255,246,255,243,255, +236,255,239,255,248,255,245,255,238,255,245,255,248,255,241,255,242,255,245,255,241,255,240,255,245,255,246,255,242,255,238,255, +240,255,246,255,253,255,5,0,11,0,4,0,251,255,253,255,252,255,248,255,2,0,11,0,1,0,255,255,15,0,19,0, +9,0,4,0,6,0,10,0,16,0,19,0,17,0,15,0,13,0,13,0,16,0,16,0,18,0,27,0,28,0,19,0, +10,0,4,0,5,0,15,0,16,0,3,0,252,255,252,255,247,255,243,255,244,255,243,255,240,255,240,255,241,255,245,255, +251,255,250,255,248,255,245,255,240,255,240,255,243,255,238,255,238,255,248,255,249,255,243,255,248,255,1,0,1,0,253,255, +249,255,241,255,239,255,248,255,2,0,8,0,1,0,244,255,243,255,255,255,5,0,4,0,3,0,4,0,8,0,11,0, +10,0,12,0,16,0,14,0,12,0,12,0,12,0,18,0,30,0,28,0,16,0,12,0,10,0,4,0,4,0,3,0, +255,255,6,0,16,0,10,0,254,255,0,0,6,0,5,0,2,0,254,255,251,255,251,255,254,255,252,255,240,255,233,255, +240,255,241,255,227,255,230,255,251,255,4,0,254,255,246,255,234,255,229,255,243,255,0,0,251,255,243,255,240,255,244,255, +5,0,14,0,253,255,234,255,238,255,251,255,254,255,0,0,4,0,1,0,254,255,8,0,19,0,10,0,1,0,8,0, +14,0,9,0,12,0,21,0,14,0,4,0,3,0,253,255,247,255,2,0,16,0,19,0,24,0,22,0,4,0,250,255, +4,0,9,0,4,0,5,0,8,0,1,0,251,255,254,255,0,0,0,0,4,0,4,0,245,255,235,255,248,255,6,0, +1,0,247,255,241,255,237,255,244,255,1,0,253,255,244,255,251,255,254,255,245,255,245,255,253,255,251,255,247,255,248,255, +240,255,231,255,238,255,252,255,254,255,253,255,253,255,250,255,251,255,5,0,8,0,250,255,244,255,0,0,6,0,1,0, +6,0,13,0,7,0,3,0,10,0,8,0,3,0,12,0,13,0,254,255,255,255,15,0,14,0,255,255,252,255,254,255, +255,255,4,0,11,0,6,0,251,255,252,255,253,255,247,255,246,255,0,0,4,0,4,0,9,0,11,0,255,255,245,255, +246,255,248,255,248,255,255,255,1,0,249,255,242,255,244,255,250,255,1,0,255,255,244,255,239,255,246,255,252,255,254,255, +255,255,248,255,235,255,232,255,244,255,0,0,0,0,253,255,1,0,5,0,2,0,2,0,5,0,6,0,5,0,7,0, +10,0,11,0,9,0,7,0,9,0,14,0,12,0,5,0,6,0,18,0,22,0,14,0,3,0,253,255,252,255,0,0, +7,0,13,0,13,0,5,0,255,255,1,0,5,0,4,0,255,255,252,255,253,255,254,255,252,255,252,255,251,255,244,255, +236,255,242,255,0,0,2,0,252,255,253,255,4,0,8,0,4,0,252,255,244,255,243,255,249,255,250,255,241,255,238,255, +250,255,7,0,6,0,254,255,249,255,249,255,254,255,3,0,2,0,0,0,5,0,8,0,5,0,5,0,7,0,6,0, +9,0,18,0,15,0,6,0,7,0,14,0,8,0,1,0,8,0,14,0,11,0,11,0,14,0,6,0,250,255,250,255, +255,255,250,255,249,255,3,0,7,0,1,0,254,255,0,0,2,0,5,0,255,255,240,255,238,255,254,255,3,0,248,255, +245,255,255,255,2,0,249,255,242,255,238,255,237,255,244,255,251,255,251,255,250,255,252,255,1,0,4,0,0,0,246,255, +239,255,241,255,244,255,242,255,246,255,3,0,12,0,15,0,19,0,16,0,2,0,255,255,11,0,14,0,7,0,8,0, +13,0,11,0,12,0,15,0,11,0,9,0,17,0,19,0,14,0,18,0,25,0,15,0,0,0,6,0,20,0,17,0, +10,0,12,0,15,0,10,0,6,0,2,0,252,255,253,255,2,0,255,255,253,255,3,0,2,0,249,255,251,255,2,0, +253,255,247,255,255,255,3,0,246,255,234,255,238,255,249,255,254,255,253,255,248,255,239,255,233,255,241,255,251,255,253,255, +251,255,251,255,249,255,246,255,245,255,242,255,239,255,242,255,254,255,9,0,10,0,6,0,5,0,9,0,13,0,16,0, +13,0,3,0,251,255,3,0,12,0,10,0,6,0,7,0,12,0,18,0,19,0,9,0,2,0,5,0,9,0,7,0, +7,0,8,0,4,0,0,0,4,0,9,0,3,0,248,255,247,255,255,255,3,0,1,0,254,255,248,255,243,255,241,255, +241,255,245,255,254,255,0,0,249,255,248,255,252,255,248,255,242,255,244,255,247,255,245,255,244,255,249,255,254,255,252,255, +246,255,243,255,243,255,244,255,247,255,254,255,1,0,255,255,253,255,248,255,244,255,244,255,251,255,3,0,8,0,9,0, +11,0,13,0,10,0,6,0,6,0,6,0,5,0,8,0,14,0,13,0,7,0,2,0,252,255,254,255,8,0,14,0, +10,0,8,0,12,0,14,0,9,0,2,0,2,0,6,0,7,0,4,0,5,0,3,0,250,255,244,255,247,255,255,255, +5,0,4,0,254,255,250,255,250,255,250,255,247,255,246,255,246,255,245,255,240,255,239,255,244,255,244,255,238,255,237,255, +243,255,245,255,248,255,254,255,254,255,250,255,254,255,3,0,255,255,251,255,252,255,253,255,254,255,4,0,7,0,2,0, +255,255,255,255,252,255,247,255,254,255,6,0,4,0,2,0,14,0,20,0,7,0,0,0,11,0,14,0,2,0,252,255, +1,0,9,0,12,0,9,0,2,0,254,255,254,255,0,0,0,0,2,0,5,0,2,0,252,255,251,255,254,255,252,255, +246,255,249,255,0,0,2,0,255,255,251,255,248,255,248,255,252,255,255,255,253,255,250,255,250,255,253,255,252,255,247,255, +240,255,233,255,231,255,238,255,248,255,251,255,253,255,4,0,8,0,5,0,3,0,5,0,2,0,251,255,250,255,0,0, +5,0,3,0,2,0,4,0,5,0,1,0,255,255,5,0,9,0,8,0,4,0,2,0,5,0,10,0,12,0,10,0, +5,0,0,0,0,0,6,0,12,0,12,0,9,0,3,0,253,255,250,255,254,255,2,0,255,255,247,255,245,255,254,255, +6,0,3,0,255,255,253,255,251,255,247,255,248,255,250,255,249,255,251,255,1,0,4,0,254,255,250,255,251,255,249,255, +246,255,255,255,8,0,0,0,243,255,243,255,246,255,242,255,245,255,0,0,6,0,4,0,7,0,11,0,12,0,14,0, +15,0,8,0,254,255,251,255,252,255,255,255,8,0,12,0,3,0,253,255,3,0,6,0,1,0,3,0,8,0,3,0, +5,0,20,0,21,0,6,0,4,0,15,0,12,0,0,0,254,255,0,0,255,255,3,0,9,0,7,0,2,0,3,0, +255,255,246,255,245,255,252,255,254,255,253,255,249,255,241,255,239,255,248,255,0,0,2,0,1,0,254,255,242,255,235,255, +243,255,250,255,246,255,242,255,242,255,244,255,248,255,253,255,254,255,253,255,253,255,248,255,245,255,252,255,2,0,0,0, +2,0,10,0,13,0,12,0,18,0,21,0,14,0,12,0,17,0,16,0,12,0,15,0,12,0,254,255,249,255,4,0, +11,0,12,0,15,0,15,0,6,0,4,0,10,0,7,0,255,255,0,0,4,0,5,0,7,0,7,0,255,255,250,255, +1,0,3,0,249,255,246,255,250,255,249,255,248,255,252,255,251,255,243,255,242,255,249,255,253,255,255,255,2,0,255,255, +250,255,251,255,253,255,248,255,244,255,249,255,252,255,249,255,244,255,239,255,238,255,246,255,4,0,10,0,6,0,1,0, +253,255,254,255,5,0,7,0,0,0,252,255,4,0,13,0,15,0,16,0,12,0,5,0,3,0,9,0,11,0,5,0, +1,0,5,0,10,0,15,0,17,0,8,0,250,255,247,255,253,255,255,255,253,255,255,255,0,0,252,255,250,255,249,255, +247,255,248,255,255,255,1,0,249,255,242,255,244,255,247,255,252,255,3,0,2,0,247,255,241,255,245,255,246,255,244,255, +247,255,250,255,250,255,0,0,8,0,6,0,252,255,251,255,0,0,255,255,2,0,12,0,17,0,14,0,13,0,13,0, +4,0,251,255,252,255,0,0,1,0,5,0,9,0,9,0,8,0,10,0,7,0,3,0,7,0,14,0,15,0,13,0, +14,0,11,0,2,0,1,0,4,0,0,0,253,255,2,0,7,0,5,0,255,255,248,255,239,255,238,255,249,255,4,0, +3,0,0,0,255,255,251,255,247,255,247,255,247,255,239,255,231,255,235,255,251,255,11,0,17,0,10,0,253,255,240,255, +228,255,222,255,229,255,246,255,1,0,3,0,7,0,14,0,11,0,1,0,251,255,248,255,242,255,238,255,240,255,248,255, +2,0,9,0,10,0,7,0,10,0,17,0,14,0,2,0,249,255,250,255,2,0,16,0,27,0,25,0,13,0,3,0, +250,255,244,255,245,255,254,255,7,0,19,0,33,0,32,0,17,0,8,0,4,0,245,255,227,255,218,255,208,255,189,255, +178,255,178,255,174,255,182,255,234,255,68,0,155,0,201,0,191,0,137,0,68,0,240,255,127,255,30,255,21,255,106,255, +221,255,60,0,112,0,110,0,73,0,28,0,239,255,195,255,175,255,208,255,25,0,96,0,107,0,43,0,213,255,185,255, +226,255,17,0,14,0,243,255,5,0,61,0,73,0,10,0,189,255,158,255,177,255,225,255,20,0,60,0,88,0,99,0, +77,0,34,0,250,255,226,255,227,255,251,255,5,0,236,255,215,255,233,255,3,0,0,0,227,255,185,255,153,255,172,255, +239,255,45,0,69,0,74,0,68,0,47,0,26,0,19,0,18,0,19,0,25,0,21,0,248,255,208,255,175,255,157,255, +157,255,172,255,193,255,222,255,255,255,14,0,2,0,245,255,243,255,239,255,238,255,3,0,32,0,41,0,41,0,56,0, +75,0,80,0,76,0,77,0,83,0,80,0,65,0,42,0,20,0,252,255,223,255,196,255,185,255,191,255,206,255,226,255, +249,255,16,0,33,0,41,0,43,0,48,0,56,0,53,0,34,0,11,0,255,255,253,255,250,255,241,255,233,255,226,255, +214,255,201,255,205,255,230,255,251,255,1,0,12,0,27,0,22,0,1,0,249,255,253,255,254,255,2,0,14,0,18,0, +6,0,252,255,249,255,243,255,239,255,242,255,249,255,6,0,21,0,18,0,253,255,238,255,234,255,224,255,211,255,213,255, +223,255,236,255,254,255,13,0,9,0,251,255,240,255,233,255,238,255,12,0,45,0,51,0,44,0,41,0,26,0,242,255, +208,255,203,255,213,255,222,255,226,255,232,255,242,255,253,255,5,0,7,0,9,0,7,0,3,0,9,0,25,0,33,0, +24,0,10,0,254,255,241,255,233,255,235,255,242,255,252,255,8,0,13,0,4,0,249,255,245,255,243,255,243,255,248,255, +251,255,252,255,1,0,12,0,15,0,7,0,253,255,251,255,6,0,23,0,32,0,30,0,28,0,26,0,15,0,4,0, +6,0,13,0,13,0,15,0,27,0,31,0,15,0,251,255,237,255,228,255,224,255,235,255,1,0,21,0,30,0,27,0, +12,0,254,255,254,255,10,0,23,0,36,0,48,0,49,0,36,0,19,0,6,0,252,255,242,255,241,255,250,255,5,0, +7,0,2,0,252,255,245,255,237,255,228,255,226,255,231,255,239,255,247,255,255,255,4,0,1,0,246,255,237,255,232,255, +230,255,233,255,246,255,1,0,4,0,255,255,249,255,239,255,224,255,213,255,216,255,227,255,235,255,244,255,4,0,14,0, +10,0,5,0,7,0,7,0,6,0,17,0,30,0,31,0,29,0,34,0,26,0,1,0,243,255,247,255,247,255,245,255, +255,255,5,0,250,255,239,255,240,255,243,255,248,255,1,0,6,0,5,0,12,0,20,0,17,0,14,0,15,0,7,0, +252,255,2,0,11,0,5,0,3,0,10,0,255,255,232,255,231,255,244,255,241,255,232,255,239,255,243,255,238,255,241,255, +251,255,247,255,235,255,233,255,236,255,240,255,253,255,15,0,23,0,24,0,26,0,26,0,20,0,10,0,0,0,250,255, +251,255,253,255,250,255,252,255,2,0,0,0,249,255,249,255,255,255,1,0,5,0,17,0,29,0,28,0,19,0,14,0, +15,0,17,0,23,0,33,0,42,0,39,0,26,0,13,0,2,0,247,255,243,255,250,255,2,0,4,0,1,0,253,255, +244,255,233,255,233,255,236,255,236,255,241,255,2,0,18,0,20,0,17,0,15,0,13,0,8,0,9,0,13,0,9,0, +254,255,246,255,244,255,239,255,227,255,215,255,212,255,219,255,231,255,245,255,3,0,12,0,15,0,16,0,16,0,14,0, +6,0,253,255,248,255,249,255,247,255,241,255,238,255,238,255,236,255,231,255,229,255,231,255,237,255,251,255,7,0,6,0, +253,255,249,255,248,255,243,255,245,255,0,0,8,0,7,0,12,0,23,0,21,0,5,0,252,255,253,255,0,0,5,0, +14,0,16,0,11,0,6,0,3,0,252,255,251,255,2,0,4,0,1,0,5,0,10,0,5,0,252,255,248,255,244,255, +234,255,233,255,243,255,251,255,252,255,252,255,249,255,240,255,233,255,234,255,235,255,239,255,250,255,0,0,251,255,249,255, +254,255,254,255,251,255,1,0,9,0,7,0,4,0,10,0,13,0,8,0,6,0,8,0,5,0,4,0,10,0,12,0, +10,0,14,0,19,0,13,0,1,0,255,255,0,0,254,255,253,255,4,0,9,0,6,0,1,0,255,255,2,0,2,0, +254,255,255,255,4,0,4,0,253,255,251,255,1,0,1,0,250,255,247,255,252,255,1,0,4,0,7,0,6,0,3,0, +255,255,250,255,246,255,249,255,253,255,254,255,3,0,9,0,6,0,251,255,246,255,247,255,249,255,255,255,4,0,3,0, +1,0,8,0,11,0,2,0,254,255,1,0,0,0,252,255,2,0,8,0,1,0,250,255,253,255,2,0,254,255,252,255, +2,0,8,0,10,0,9,0,8,0,9,0,9,0,7,0,5,0,7,0,10,0,10,0,10,0,12,0,12,0,7,0, +255,255,250,255,249,255,249,255,247,255,247,255,252,255,1,0,1,0,254,255,254,255,255,255,253,255,249,255,248,255,253,255, +2,0,1,0,252,255,249,255,249,255,246,255,245,255,251,255,253,255,246,255,242,255,247,255,249,255,243,255,241,255,244,255, +246,255,250,255,3,0,8,0,6,0,4,0,5,0,4,0,2,0,2,0,1,0,0,0,2,0,7,0,8,0,6,0, +4,0,4,0,4,0,3,0,2,0,5,0,14,0,18,0,15,0,12,0,13,0,10,0,6,0,10,0,16,0,14,0, +7,0,5,0,7,0,4,0,254,255,252,255,253,255,252,255,252,255,1,0,6,0,4,0,251,255,246,255,246,255,245,255, +244,255,244,255,243,255,239,255,240,255,247,255,251,255,252,255,255,255,0,0,253,255,255,255,2,0,1,0,255,255,0,0, +0,0,252,255,251,255,251,255,250,255,253,255,2,0,4,0,2,0,2,0,2,0,0,0,3,0,10,0,11,0,11,0, +17,0,19,0,10,0,5,0,8,0,5,0,1,0,6,0,11,0,7,0,1,0,1,0,0,0,254,255,2,0,6,0, +6,0,5,0,6,0,7,0,7,0,5,0,1,0,253,255,252,255,253,255,255,255,1,0,253,255,246,255,246,255,253,255, +253,255,247,255,247,255,247,255,243,255,243,255,251,255,251,255,241,255,238,255,244,255,244,255,243,255,246,255,250,255,252,255, +253,255,254,255,251,255,251,255,252,255,252,255,254,255,6,0,5,0,253,255,255,255,9,0,7,0,255,255,1,0,6,0, +4,0,7,0,17,0,15,0,2,0,252,255,1,0,3,0,4,0,8,0,8,0,0,0,255,255,6,0,8,0,3,0, +1,0,2,0,0,0,0,0,3,0,3,0,252,255,247,255,247,255,251,255,252,255,251,255,247,255,245,255,247,255,250,255, +252,255,252,255,252,255,248,255,243,255,245,255,251,255,251,255,247,255,247,255,247,255,244,255,243,255,250,255,0,0,1,0, +1,0,2,0,1,0,1,0,5,0,8,0,10,0,8,0,3,0,255,255,1,0,6,0,8,0,6,0,3,0,1,0, +2,0,7,0,11,0,13,0,10,0,4,0,1,0,7,0,14,0,10,0,1,0,0,0,1,0,255,255,1,0,8,0, +3,0,250,255,253,255,8,0,10,0,7,0,7,0,3,0,251,255,253,255,6,0,4,0,253,255,250,255,248,255,245,255, +248,255,254,255,254,255,251,255,254,255,255,255,251,255,251,255,254,255,253,255,253,255,1,0,1,0,252,255,251,255,252,255, +248,255,245,255,249,255,252,255,251,255,1,0,11,0,10,0,0,0,253,255,2,0,4,0,4,0,6,0,7,0,1,0, +251,255,255,255,8,0,8,0,3,0,2,0,6,0,10,0,14,0,16,0,12,0,4,0,0,0,255,255,0,0,1,0, +255,255,248,255,246,255,251,255,1,0,0,0,252,255,251,255,250,255,250,255,255,255,4,0,3,0,255,255,252,255,252,255, +252,255,251,255,247,255,246,255,248,255,249,255,248,255,246,255,246,255,246,255,246,255,247,255,249,255,252,255,254,255,255,255, +0,0,1,0,254,255,247,255,248,255,0,0,5,0,5,0,4,0,2,0,255,255,2,0,8,0,8,0,5,0,5,0, +2,0,255,255,7,0,14,0,6,0,251,255,253,255,3,0,1,0,3,0,11,0,11,0,5,0,6,0,11,0,11,0, +5,0,2,0,2,0,6,0,10,0,8,0,0,0,250,255,247,255,244,255,248,255,255,255,0,0,251,255,249,255,251,255, +253,255,255,255,2,0,5,0,7,0,7,0,7,0,4,0,0,0,253,255,252,255,251,255,249,255,246,255,247,255,250,255, +251,255,254,255,1,0,254,255,249,255,254,255,6,0,7,0,4,0,4,0,4,0,3,0,6,0,10,0,8,0,3,0, +2,0,3,0,7,0,13,0,13,0,6,0,3,0,8,0,9,0,5,0,5,0,3,0,253,255,252,255,3,0,5,0, +1,0,254,255,253,255,253,255,1,0,8,0,8,0,4,0,3,0,4,0,1,0,255,255,254,255,250,255,246,255,248,255, +249,255,247,255,246,255,246,255,245,255,245,255,250,255,253,255,251,255,250,255,254,255,0,0,252,255,249,255,251,255,253,255, +253,255,254,255,1,0,255,255,249,255,249,255,255,255,4,0,4,0,2,0,1,0,2,0,5,0,7,0,6,0,5,0, +6,0,4,0,2,0,6,0,8,0,0,0,250,255,255,255,5,0,5,0,5,0,6,0,4,0,1,0,4,0,7,0, +6,0,5,0,4,0,1,0,255,255,255,255,252,255,245,255,244,255,250,255,0,0,0,0,255,255,253,255,252,255,250,255, +250,255,254,255,3,0,3,0,0,0,2,0,5,0,1,0,251,255,251,255,252,255,252,255,252,255,249,255,246,255,250,255, +254,255,252,255,253,255,4,0,2,0,248,255,254,255,13,0,12,0,2,0,4,0,9,0,1,0,253,255,6,0,8,0, +2,0,3,0,6,0,2,0,255,255,1,0,253,255,249,255,2,0,10,0,3,0,254,255,5,0,6,0,0,0,5,0, +14,0,10,0,4,0,9,0,11,0,5,0,2,0,2,0,250,255,245,255,250,255,252,255,245,255,246,255,254,255,255,255, +250,255,254,255,4,0,254,255,249,255,0,0,7,0,3,0,254,255,254,255,254,255,248,255,246,255,247,255,246,255,245,255, +250,255,253,255,254,255,0,0,0,0,250,255,249,255,3,0,9,0,6,0,4,0,7,0,4,0,253,255,253,255,2,0, +1,0,0,0,4,0,8,0,6,0,3,0,2,0,1,0,2,0,5,0,6,0,6,0,6,0,6,0,4,0,3,0, +2,0,2,0,2,0,2,0,4,0,5,0,2,0,252,255,251,255,254,255,253,255,253,255,0,0,254,255,247,255,249,255, +255,255,252,255,248,255,253,255,255,255,249,255,250,255,4,0,0,0,247,255,252,255,4,0,254,255,249,255,254,255,252,255, +242,255,245,255,254,255,252,255,248,255,252,255,254,255,250,255,253,255,3,0,1,0,254,255,2,0,3,0,1,0,7,0, +11,0,5,0,1,0,5,0,4,0,254,255,3,0,10,0,5,0,255,255,3,0,4,0,253,255,252,255,4,0,6,0, +0,0,255,255,3,0,3,0,2,0,6,0,8,0,5,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +1,0,1,0,252,255,250,255,252,255,253,255,253,255,0,0,0,0,251,255,247,255,249,255,254,255,1,0,2,0,2,0, +254,255,252,255,252,255,251,255,251,255,252,255,251,255,249,255,251,255,1,0,2,0,0,0,1,0,1,0,1,0,3,0, +7,0,8,0,6,0,5,0,4,0,1,0,1,0,1,0,255,255,254,255,0,0,4,0,5,0,5,0,5,0,6,0, +5,0,1,0,1,0,6,0,6,0,1,0,255,255,1,0,252,255,244,255,246,255,251,255,249,255,247,255,252,255,255,255, +252,255,250,255,252,255,253,255,253,255,253,255,254,255,0,0,0,0,251,255,247,255,249,255,252,255,250,255,251,255,0,0, +254,255,248,255,251,255,3,0,1,0,254,255,3,0,4,0,255,255,255,255,4,0,4,0,254,255,0,0,4,0,3,0, +3,0,6,0,5,0,255,255,254,255,3,0,5,0,4,0,3,0,1,0,255,255,254,255,255,255,3,0,4,0,3,0, +3,0,3,0,3,0,2,0,2,0,2,0,4,0,4,0,2,0,0,0,255,255,253,255,247,255,247,255,253,255,255,255, +249,255,249,255,255,255,254,255,250,255,255,255,3,0,255,255,252,255,253,255,250,255,247,255,252,255,1,0,253,255,253,255, +1,0,252,255,244,255,251,255,2,0,251,255,245,255,255,255,4,0,252,255,251,255,4,0,5,0,252,255,251,255,1,0, +4,0,4,0,5,0,6,0,5,0,4,0,2,0,1,0,4,0,6,0,5,0,4,0,7,0,7,0,2,0,0,0, +2,0,3,0,1,0,3,0,7,0,6,0,2,0,1,0,0,0,253,255,255,255,4,0,3,0,255,255,1,0,6,0, +1,0,250,255,253,255,1,0,252,255,249,255,0,0,6,0,2,0,253,255,255,255,0,0,251,255,249,255,254,255,3,0, +0,0,252,255,254,255,1,0,253,255,250,255,251,255,255,255,254,255,254,255,1,0,3,0,3,0,1,0,254,255,254,255, +1,0,4,0,2,0,2,0,6,0,5,0,1,0,2,0,5,0,2,0,0,0,6,0,10,0,6,0,3,0,6,0, +6,0,3,0,3,0,2,0,0,0,1,0,4,0,3,0,3,0,4,0,2,0,253,255,254,255,1,0,255,255,253,255, +1,0,3,0,0,0,255,255,1,0,254,255,249,255,251,255,255,255,253,255,251,255,254,255,1,0,255,255,253,255,254,255, +254,255,252,255,254,255,5,0,6,0,1,0,252,255,254,255,255,255,253,255,253,255,2,0,5,0,1,0,254,255,0,0, +3,0,1,0,255,255,1,0,3,0,1,0,0,0,3,0,3,0,0,0,1,0,7,0,8,0,5,0,4,0,3,0, +0,0,2,0,9,0,11,0,6,0,2,0,255,255,251,255,252,255,1,0,3,0,1,0,2,0,3,0,3,0,5,0, +5,0,255,255,251,255,2,0,5,0,255,255,254,255,3,0,1,0,251,255,252,255,255,255,252,255,253,255,3,0,3,0, +0,0,2,0,1,0,252,255,254,255,6,0,3,0,251,255,254,255,4,0,2,0,254,255,1,0,2,0,253,255,251,255, +2,0,8,0,6,0,253,255,251,255,0,0,4,0,1,0,255,255,3,0,2,0,255,255,3,0,7,0,4,0,0,0, +255,255,254,255,254,255,3,0,5,0,1,0,255,255,0,0,0,0,0,0,3,0,3,0,255,255,255,255,3,0,3,0, +3,0,6,0,2,0,251,255,254,255,2,0,251,255,247,255,255,255,1,0,248,255,246,255,253,255,251,255,244,255,247,255, +254,255,254,255,253,255,0,0,255,255,252,255,253,255,253,255,249,255,248,255,253,255,1,0,1,0,1,0,254,255,251,255, +252,255,2,0,3,0,2,0,0,0,255,255,0,0,1,0,1,0,255,255,254,255,1,0,5,0,6,0,6,0,5,0, +3,0,1,0,1,0,4,0,7,0,5,0,1,0,255,255,1,0,5,0,5,0,2,0,254,255,254,255,0,0,1,0, +1,0,255,255,253,255,250,255,249,255,252,255,254,255,255,255,254,255,253,255,252,255,253,255,254,255,0,0,2,0,0,0, +251,255,251,255,0,0,2,0,253,255,251,255,252,255,253,255,253,255,255,255,255,255,251,255,248,255,250,255,252,255,0,0, +2,0,0,0,251,255,249,255,251,255,254,255,2,0,5,0,2,0,252,255,253,255,2,0,3,0,1,0,2,0,2,0, +0,0,0,0,2,0,3,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0,1,0,254,255,254,255,2,0, +3,0,254,255,253,255,254,255,251,255,249,255,253,255,1,0,0,0,252,255,251,255,249,255,248,255,252,255,2,0,255,255, +249,255,248,255,252,255,254,255,253,255,251,255,249,255,248,255,250,255,255,255,3,0,3,0,254,255,250,255,251,255,0,0, +2,0,1,0,2,0,2,0,254,255,252,255,0,0,3,0,252,255,249,255,0,0,7,0,5,0,3,0,5,0,2,0, +253,255,0,0,7,0,6,0,2,0,4,0,6,0,3,0,1,0,1,0,0,0,254,255,0,0,2,0,2,0,2,0, +0,0,253,255,254,255,5,0,7,0,2,0,0,0,1,0,254,255,255,255,5,0,5,0,253,255,249,255,254,255,0,0, +255,255,0,0,255,255,251,255,251,255,255,255,1,0,255,255,255,255,254,255,253,255,255,255,2,0,2,0,1,0,1,0, +1,0,0,0,2,0,3,0,1,0,0,0,2,0,2,0,1,0,3,0,3,0,2,0,2,0,3,0,1,0,1,0, +4,0,5,0,5,0,4,0,3,0,0,0,0,0,4,0,4,0,2,0,1,0,1,0,0,0,1,0,3,0,3,0, +1,0,2,0,0,0,251,255,251,255,1,0,2,0,0,0,255,255,0,0,255,255,0,0,1,0,255,255,252,255,252,255, +254,255,254,255,255,255,255,255,250,255,248,255,253,255,1,0,255,255,255,255,0,0,0,0,0,0,1,0,3,0,3,0, +0,0,252,255,251,255,254,255,0,0,253,255,253,255,4,0,11,0,11,0,5,0,2,0,2,0,3,0,3,0,4,0, +5,0,2,0,254,255,255,255,5,0,5,0,255,255,253,255,2,0,5,0,5,0,7,0,10,0,7,0,2,0,0,0, +0,0,4,0,8,0,8,0,3,0,3,0,6,0,3,0,254,255,254,255,254,255,250,255,251,255,2,0,3,0,0,0, +255,255,254,255,249,255,249,255,254,255,0,0,253,255,253,255,252,255,249,255,252,255,1,0,1,0,252,255,253,255,0,0, +254,255,253,255,0,0,3,0,4,0,3,0,1,0,254,255,253,255,1,0,4,0,4,0,2,0,2,0,3,0,4,0, +3,0,2,0,2,0,2,0,3,0,5,0,6,0,6,0,7,0,5,0,255,255,253,255,2,0,4,0,255,255,253,255, +0,0,254,255,252,255,0,0,5,0,1,0,253,255,255,255,255,255,254,255,2,0,5,0,2,0,254,255,253,255,251,255, +253,255,6,0,8,0,253,255,248,255,0,0,3,0,254,255,253,255,0,0,253,255,251,255,254,255,1,0,255,255,255,255, +0,0,254,255,253,255,255,255,254,255,253,255,255,255,2,0,255,255,254,255,0,0,1,0,255,255,0,0,0,0,1,0, +3,0,4,0,4,0,5,0,5,0,0,0,252,255,0,0,9,0,9,0,3,0,254,255,253,255,254,255,2,0,4,0, +3,0,3,0,2,0,254,255,252,255,255,255,254,255,250,255,251,255,254,255,254,255,253,255,254,255,254,255,250,255,249,255, +253,255,255,255,254,255,254,255,253,255,251,255,252,255,0,0,255,255,250,255,249,255,255,255,1,0,254,255,252,255,254,255, +254,255,251,255,251,255,255,255,2,0,1,0,0,0,1,0,5,0,5,0,1,0,254,255,0,0,1,0,255,255,0,0, +2,0,0,0,251,255,252,255,3,0,5,0,3,0,3,0,3,0,1,0,255,255,1,0,4,0,5,0,5,0,2,0, +254,255,252,255,255,255,2,0,3,0,2,0,255,255,254,255,255,255,254,255,253,255,253,255,254,255,251,255,251,255,0,0, +4,0,255,255,252,255,254,255,254,255,251,255,255,255,4,0,0,0,250,255,253,255,2,0,1,0,0,0,1,0,255,255, +250,255,249,255,252,255,255,255,1,0,1,0,254,255,252,255,254,255,255,255,254,255,3,0,7,0,2,0,253,255,3,0, +9,0,3,0,0,0,7,0,8,0,0,0,254,255,6,0,9,0,2,0,1,0,3,0,1,0,0,0,3,0,4,0, +0,0,254,255,255,255,254,255,253,255,1,0,0,0,250,255,248,255,254,255,0,0,253,255,252,255,253,255,250,255,249,255, +255,255,3,0,3,0,1,0,255,255,251,255,251,255,0,0,0,0,254,255,1,0,2,0,250,255,244,255,249,255,0,0, +253,255,252,255,1,0,4,0,0,0,254,255,2,0,3,0,0,0,255,255,2,0,4,0,1,0,255,255,0,0,1,0, +1,0,0,0,2,0,3,0,2,0,2,0,2,0,0,0,0,0,4,0,4,0,0,0,1,0,3,0,0,0,255,255, +4,0,7,0,2,0,255,255,0,0,0,0,1,0,3,0,1,0,252,255,253,255,0,0,254,255,255,255,5,0,2,0, +251,255,254,255,4,0,253,255,246,255,254,255,6,0,1,0,254,255,4,0,2,0,250,255,251,255,3,0,2,0,254,255, +254,255,254,255,252,255,254,255,2,0,2,0,0,0,0,0,0,0,0,0,2,0,1,0,255,255,1,0,5,0,4,0, +1,0,2,0,2,0,255,255,0,0,4,0,6,0,3,0,1,0,2,0,255,255,252,255,0,0,8,0,8,0,0,0, +254,255,3,0,4,0,254,255,255,255,3,0,2,0,252,255,252,255,1,0,0,0,253,255,255,255,3,0,2,0,254,255, +251,255,251,255,254,255,254,255,251,255,252,255,254,255,252,255,251,255,255,255,2,0,254,255,253,255,1,0,2,0,0,0, +2,0,2,0,252,255,249,255,255,255,3,0,255,255,254,255,2,0,3,0,2,0,4,0,6,0,3,0,0,0,255,255, +0,0,4,0,7,0,6,0,5,0,6,0,2,0,252,255,254,255,6,0,7,0,2,0,1,0,3,0,255,255,252,255, +255,255,4,0,3,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,1,0,1,0,253,255, +252,255,1,0,3,0,1,0,254,255,253,255,253,255,254,255,253,255,254,255,1,0,3,0,255,255,251,255,252,255,253,255, +253,255,254,255,2,0,2,0,253,255,253,255,0,0,1,0,1,0,0,0,255,255,255,255,2,0,3,0,2,0,5,0, +7,0,1,0,253,255,0,0,3,0,0,0,255,255,3,0,4,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,255,255,253,255,255,255,1,0,0,0,253,255,253,255,255,255,254,255,251,255,250,255,0,0,4,0,0,0, +250,255,252,255,2,0,0,0,251,255,253,255,1,0,0,0,253,255,253,255,253,255,250,255,248,255,249,255,254,255,4,0, +4,0,253,255,250,255,254,255,0,0,254,255,0,0,5,0,2,0,252,255,254,255,2,0,0,0,253,255,255,255,2,0, +2,0,2,0,0,0,255,255,2,0,4,0,1,0,255,255,2,0,3,0,1,0,1,0,3,0,0,0,255,255,4,0, +6,0,1,0,254,255,0,0,0,0,254,255,1,0,3,0,0,0,254,255,0,0,0,0,254,255,0,0,4,0,1,0, +251,255,251,255,251,255,252,255,255,255,1,0,254,255,251,255,253,255,254,255,252,255,255,255,3,0,255,255,249,255,252,255, +1,0,254,255,252,255,2,0,4,0,0,0,255,255,2,0,0,0,252,255,0,0,5,0,4,0,1,0,0,0,255,255, +0,0,4,0,4,0,0,0,0,0,3,0,4,0,3,0,3,0,255,255,251,255,1,0,10,0,6,0,254,255,255,255, +0,0,251,255,253,255,8,0,11,0,1,0,251,255,255,255,1,0,1,0,5,0,6,0,0,0,251,255,253,255,0,0, +0,0,0,0,255,255,252,255,251,255,252,255,255,255,0,0,255,255,253,255,251,255,253,255,0,0,0,0,255,255,0,0, +0,0,0,0,2,0,6,0,6,0,0,0,254,255,2,0,5,0,2,0,1,0,5,0,8,0,1,0,251,255,255,255, +6,0,7,0,3,0,1,0,255,255,253,255,1,0,7,0,5,0,253,255,251,255,1,0,3,0,2,0,4,0,4,0, +255,255,254,255,4,0,7,0,0,0,253,255,1,0,2,0,0,0,2,0,2,0,252,255,250,255,0,0,4,0,0,0, +255,255,254,255,249,255,249,255,0,0,2,0,255,255,0,0,0,0,251,255,251,255,2,0,1,0,250,255,252,255,1,0, +251,255,248,255,0,0,3,0,251,255,250,255,2,0,2,0,0,0,5,0,7,0,255,255,255,255,7,0,6,0,0,0, +3,0,6,0,2,0,254,255,1,0,3,0,2,0,4,0,4,0,254,255,254,255,4,0,4,0,2,0,4,0,3,0, +253,255,254,255,6,0,5,0,255,255,253,255,254,255,253,255,0,0,6,0,5,0,253,255,248,255,251,255,0,0,2,0, +1,0,253,255,250,255,250,255,254,255,1,0,1,0,253,255,251,255,0,0,3,0,255,255,254,255,2,0,4,0,1,0, +255,255,1,0,0,0,255,255,3,0,7,0,2,0,250,255,252,255,3,0,4,0,0,0,255,255,0,0,253,255,254,255, +4,0,5,0,255,255,251,255,0,0,3,0,2,0,4,0,5,0,2,0,0,0,2,0,2,0,2,0,6,0,4,0, +251,255,251,255,4,0,5,0,254,255,254,255,1,0,252,255,250,255,1,0,1,0,251,255,252,255,255,255,250,255,250,255, +3,0,2,0,245,255,245,255,0,0,1,0,251,255,254,255,0,0,251,255,250,255,254,255,253,255,252,255,0,0,1,0, +252,255,252,255,255,255,253,255,253,255,2,0,1,0,251,255,254,255,4,0,1,0,254,255,3,0,5,0,255,255,254,255, +2,0,1,0,254,255,0,0,3,0,2,0,1,0,1,0,255,255,254,255,2,0,5,0,4,0,2,0,0,0,255,255, +1,0,2,0,3,0,3,0,0,0,252,255,251,255,0,0,2,0,253,255,249,255,252,255,255,255,255,255,255,255,254,255, +251,255,250,255,254,255,0,0,254,255,253,255,255,255,0,0,255,255,253,255,255,255,0,0,1,0,2,0,2,0,0,0, +0,0,3,0,5,0,1,0,255,255,2,0,2,0,1,0,3,0,4,0,255,255,252,255,1,0,4,0,1,0,4,0, +7,0,0,0,251,255,3,0,8,0,2,0,1,0,7,0,5,0,254,255,1,0,6,0,1,0,0,0,6,0,2,0, +251,255,2,0,10,0,2,0,250,255,255,255,3,0,1,0,1,0,2,0,254,255,253,255,1,0,254,255,249,255,252,255, +255,255,251,255,251,255,255,255,253,255,246,255,249,255,0,0,0,0,253,255,252,255,249,255,250,255,2,0,4,0,254,255, +252,255,1,0,3,0,255,255,255,255,1,0,1,0,0,0,1,0,1,0,2,0,4,0,3,0,1,0,0,0,0,0, +0,0,3,0,7,0,6,0,2,0,1,0,1,0,255,255,0,0,4,0,5,0,2,0,0,0,255,255,255,255,1,0, +1,0,253,255,252,255,0,0,2,0,254,255,252,255,254,255,254,255,251,255,252,255,255,255,1,0,255,255,252,255,253,255, +253,255,254,255,255,255,253,255,252,255,253,255,0,0,255,255,253,255,0,0,2,0,254,255,253,255,4,0,6,0,0,0, +255,255,5,0,3,0,252,255,254,255,3,0,2,0,1,0,4,0,3,0,253,255,254,255,1,0,0,0,1,0,6,0, +3,0,251,255,253,255,5,0,4,0,1,0,4,0,5,0,0,0,255,255,1,0,2,0,2,0,3,0,0,0,255,255, +3,0,4,0,254,255,253,255,2,0,3,0,255,255,254,255,255,255,254,255,0,0,2,0,254,255,250,255,254,255,3,0, +1,0,255,255,0,0,253,255,251,255,254,255,1,0,0,0,2,0,2,0,252,255,248,255,254,255,3,0,0,0,255,255, +2,0,2,0,0,0,1,0,1,0,0,0,1,0,3,0,1,0,1,0,4,0,3,0,254,255,1,0,6,0,5,0, +1,0,2,0,3,0,0,0,255,255,4,0,5,0,2,0,2,0,1,0,254,255,255,255,5,0,5,0,1,0,0,0, +0,0,252,255,252,255,2,0,4,0,254,255,253,255,1,0,0,0,249,255,252,255,3,0,2,0,254,255,0,0,1,0, +254,255,254,255,1,0,1,0,1,0,4,0,3,0,252,255,254,255,6,0,4,0,254,255,2,0,8,0,1,0,250,255, +255,255,5,0,3,0,3,0,5,0,3,0,255,255,0,0,1,0,2,0,5,0,4,0,254,255,253,255,3,0,2,0, +253,255,0,0,7,0,5,0,0,0,0,0,1,0,2,0,4,0,2,0,253,255,254,255,3,0,0,0,250,255,254,255, +3,0,0,0,254,255,3,0,1,0,248,255,247,255,254,255,1,0,1,0,2,0,255,255,249,255,251,255,0,0,255,255, +254,255,3,0,1,0,251,255,251,255,1,0,0,0,255,255,3,0,3,0,252,255,250,255,0,0,0,0,254,255,3,0, +5,0,255,255,251,255,254,255,255,255,254,255,1,0,4,0,0,0,253,255,255,255,251,255,247,255,253,255,4,0,1,0, +252,255,255,255,255,255,252,255,255,255,5,0,1,0,253,255,0,0,255,255,249,255,251,255,3,0,2,0,255,255,2,0, +1,0,249,255,250,255,4,0,4,0,253,255,255,255,4,0,253,255,249,255,0,0,5,0,255,255,253,255,2,0,0,0, +251,255,253,255,255,255,255,255,0,0,1,0,253,255,250,255,253,255,253,255,251,255,255,255,5,0,2,0,252,255,253,255, +1,0,0,0,255,255,1,0,2,0,0,0,255,255,253,255,253,255,3,0,8,0,1,0,250,255,254,255,4,0,1,0, +254,255,2,0,4,0,0,0,255,255,2,0,2,0,1,0,1,0,0,0,255,255,2,0,1,0,252,255,253,255,5,0, +4,0,254,255,255,255,4,0,1,0,251,255,254,255,3,0,1,0,0,0,2,0,255,255,251,255,255,255,3,0,0,0, +254,255,1,0,1,0,253,255,255,255,2,0,0,0,255,255,2,0,2,0,254,255,254,255,0,0,0,0,0,0,4,0, +3,0,0,0,0,0,2,0,255,255,0,0,5,0,6,0,2,0,1,0,0,0,251,255,252,255,4,0,4,0,252,255, +252,255,2,0,2,0,255,255,1,0,2,0,252,255,250,255,2,0,6,0,1,0,254,255,255,255,0,0,1,0,2,0, +0,0,253,255,0,0,4,0,4,0,3,0,2,0,0,0,254,255,2,0,4,0,0,0,253,255,0,0,3,0,255,255, +251,255,254,255,2,0,2,0,255,255,253,255,253,255,254,255,0,0,0,0,0,0,0,0,255,255,253,255,253,255,1,0, +1,0,253,255,253,255,2,0,3,0,255,255,251,255,254,255,3,0,2,0,252,255,249,255,1,0,7,0,3,0,251,255, +254,255,5,0,4,0,0,0,2,0,2,0,254,255,0,0,6,0,6,0,255,255,252,255,253,255,254,255,3,0,6,0, +0,0,247,255,249,255,2,0,3,0,255,255,254,255,255,255,0,0,2,0,3,0,255,255,254,255,1,0,3,0,2,0, +1,0,255,255,253,255,255,255,4,0,4,0,1,0,2,0,4,0,2,0,0,0,1,0,0,0,255,255,3,0,6,0, +2,0,254,255,254,255,254,255,253,255,253,255,1,0,2,0,0,0,254,255,253,255,254,255,254,255,254,255,255,255,1,0, +1,0,253,255,253,255,1,0,4,0,2,0,255,255,254,255,0,0,3,0,2,0,0,0,2,0,5,0,3,0,0,0, +1,0,3,0,4,0,5,0,4,0,255,255,254,255,3,0,5,0,3,0,4,0,4,0,254,255,252,255,4,0,8,0, +1,0,255,255,4,0,2,0,254,255,3,0,5,0,253,255,248,255,255,255,5,0,4,0,255,255,253,255,254,255,2,0, +3,0,253,255,253,255,2,0,1,0,252,255,254,255,3,0,0,0,252,255,255,255,2,0,1,0,254,255,253,255,252,255, +0,0,4,0,0,0,251,255,1,0,5,0,253,255,249,255,1,0,6,0,1,0,252,255,252,255,255,255,1,0,1,0, +255,255,254,255,254,255,251,255,250,255,1,0,4,0,255,255,251,255,254,255,0,0,255,255,255,255,1,0,255,255,252,255, +254,255,2,0,1,0,252,255,249,255,251,255,0,0,255,255,252,255,254,255,1,0,254,255,249,255,251,255,254,255,255,255, +1,0,2,0,254,255,250,255,252,255,0,0,0,0,0,0,255,255,252,255,252,255,0,0,0,0,254,255,1,0,2,0, +255,255,254,255,255,255,255,255,1,0,3,0,255,255,252,255,1,0,5,0,1,0,0,0,6,0,2,0,248,255,254,255, +10,0,7,0,253,255,253,255,0,0,0,0,1,0,2,0,254,255,253,255,1,0,3,0,1,0,1,0,255,255,253,255, +0,0,5,0,1,0,252,255,255,255,2,0,0,0,0,0,1,0,253,255,252,255,3,0,7,0,3,0,255,255,255,255, +254,255,2,0,8,0,4,0,250,255,252,255,5,0,7,0,2,0,254,255,253,255,2,0,7,0,2,0,250,255,0,0, +10,0,3,0,249,255,252,255,3,0,2,0,1,0,4,0,2,0,252,255,254,255,4,0,7,0,5,0,254,255,249,255, +255,255,8,0,7,0,0,0,0,0,4,0,4,0,2,0,2,0,1,0,2,0,5,0,5,0,0,0,254,255,254,255, +253,255,255,255,4,0,1,0,249,255,250,255,3,0,4,0,252,255,247,255,251,255,2,0,5,0,1,0,251,255,250,255, +253,255,1,0,3,0,254,255,245,255,247,255,5,0,11,0,255,255,243,255,248,255,3,0,6,0,3,0,253,255,250,255, +253,255,4,0,7,0,3,0,253,255,251,255,0,0,7,0,5,0,251,255,249,255,5,0,11,0,3,0,251,255,252,255, +2,0,5,0,3,0,0,0,255,255,0,0,1,0,2,0,2,0,255,255,250,255,250,255,0,0,3,0,0,0,250,255, +249,255,1,0,7,0,2,0,248,255,251,255,3,0,4,0,254,255,252,255,252,255,254,255,4,0,5,0,251,255,244,255, +252,255,6,0,4,0,253,255,251,255,252,255,0,0,4,0,0,0,250,255,252,255,0,0,255,255,255,255,2,0,254,255, +249,255,1,0,10,0,2,0,247,255,250,255,3,0,6,0,5,0,3,0,0,0,2,0,8,0,5,0,252,255,252,255, +4,0,8,0,5,0,2,0,255,255,254,255,1,0,5,0,2,0,252,255,251,255,0,0,5,0,5,0,0,0,253,255, +255,255,3,0,4,0,255,255,249,255,250,255,3,0,8,0,3,0,253,255,253,255,254,255,254,255,0,0,2,0,254,255, +251,255,255,255,4,0,5,0,3,0,254,255,250,255,255,255,8,0,6,0,251,255,252,255,6,0,5,0,254,255,255,255, +4,0,3,0,255,255,253,255,253,255,0,0,6,0,5,0,254,255,253,255,1,0,3,0,2,0,4,0,2,0,253,255, +255,255,6,0,6,0,1,0,1,0,3,0,2,0,1,0,0,0,0,0,0,0,3,0,5,0,3,0,253,255,251,255, +253,255,1,0,0,0,252,255,251,255,0,0,5,0,3,0,252,255,250,255,252,255,252,255,252,255,254,255,1,0,0,0, +252,255,252,255,0,0,1,0,250,255,246,255,250,255,1,0,1,0,252,255,251,255,0,0,4,0,3,0,255,255,250,255, +252,255,1,0,4,0,2,0,0,0,1,0,2,0,2,0,3,0,1,0,251,255,253,255,4,0,7,0,1,0,254,255, +3,0,4,0,2,0,1,0,255,255,254,255,255,255,2,0,1,0,1,0,3,0,2,0,253,255,254,255,2,0,255,255, +253,255,0,0,1,0,254,255,254,255,0,0,251,255,249,255,254,255,3,0,254,255,251,255,254,255,0,0,254,255,253,255, +254,255,0,0,1,0,255,255,251,255,251,255,1,0,4,0,0,0,252,255,253,255,0,0,3,0,1,0,252,255,251,255, +254,255,1,0,2,0,3,0,1,0,252,255,250,255,0,0,5,0,3,0,255,255,254,255,1,0,7,0,7,0,1,0, +255,255,2,0,2,0,0,0,3,0,5,0,2,0,3,0,8,0,5,0,253,255,253,255,4,0,3,0,255,255,2,0, +1,0,253,255,255,255,4,0,1,0,252,255,255,255,1,0,254,255,253,255,254,255,252,255,254,255,4,0,4,0,254,255, +252,255,251,255,249,255,252,255,5,0,3,0,249,255,249,255,1,0,3,0,255,255,255,255,0,0,255,255,255,255,1,0, +254,255,254,255,4,0,8,0,4,0,255,255,254,255,255,255,255,255,1,0,4,0,4,0,1,0,0,0,0,0,0,0, +0,0,1,0,2,0,1,0,0,0,255,255,0,0,3,0,3,0,0,0,255,255,1,0,1,0,253,255,253,255,2,0, +2,0,255,255,1,0,4,0,254,255,249,255,255,255,5,0,0,0,252,255,0,0,2,0,255,255,252,255,252,255,254,255, +255,255,255,255,253,255,1,0,6,0,2,0,252,255,255,255,6,0,2,0,250,255,253,255,1,0,0,0,2,0,5,0, +0,0,250,255,251,255,255,255,255,255,0,0,1,0,254,255,252,255,1,0,3,0,0,0,3,0,11,0,7,0,252,255, +252,255,3,0,5,0,2,0,0,0,3,0,5,0,5,0,0,0,252,255,254,255,3,0,2,0,1,0,3,0,4,0, +0,0,1,0,5,0,2,0,252,255,254,255,3,0,0,0,252,255,3,0,9,0,4,0,252,255,254,255,4,0,3,0, +254,255,254,255,1,0,1,0,255,255,254,255,1,0,3,0,0,0,249,255,249,255,1,0,5,0,2,0,0,0,255,255, +253,255,253,255,1,0,2,0,0,0,254,255,0,0,2,0,1,0,1,0,255,255,254,255,0,0,3,0,1,0,253,255, +254,255,1,0,1,0,0,0,0,0,255,255,255,255,1,0,3,0,2,0,255,255,255,255,2,0,5,0,3,0,255,255, +252,255,253,255,253,255,252,255,255,255,2,0,255,255,253,255,0,0,1,0,252,255,251,255,1,0,4,0,255,255,251,255, +252,255,0,0,1,0,254,255,254,255,1,0,1,0,252,255,252,255,1,0,2,0,253,255,252,255,1,0,3,0,1,0, +254,255,254,255,254,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,251,255,249,255,254,255,2,0,0,0, +252,255,254,255,255,255,254,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,2,0,255,255,251,255,254,255,6,0, +4,0,252,255,254,255,3,0,0,0,252,255,0,0,4,0,0,0,254,255,255,255,1,0,4,0,4,0,254,255,251,255, +2,0,7,0,1,0,255,255,4,0,2,0,250,255,253,255,5,0,3,0,254,255,1,0,2,0,253,255,252,255,2,0, +3,0,254,255,253,255,1,0,3,0,2,0,0,0,252,255,253,255,4,0,6,0,254,255,250,255,0,0,4,0,0,0, +0,0,5,0,2,0,253,255,255,255,0,0,253,255,255,255,6,0,6,0,255,255,254,255,1,0,1,0,2,0,5,0, +3,0,255,255,1,0,4,0,255,255,253,255,4,0,4,0,253,255,253,255,4,0,3,0,254,255,255,255,3,0,2,0, +0,0,0,0,252,255,251,255,0,0,4,0,1,0,254,255,1,0,2,0,1,0,1,0,0,0,253,255,254,255,3,0, +3,0,255,255,254,255,0,0,254,255,253,255,0,0,3,0,2,0,254,255,252,255,253,255,0,0,3,0,3,0,1,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,2,0,3,0,1,0,253,255,254,255,1,0,1,0,0,0, +0,0,1,0,1,0,4,0,5,0,254,255,250,255,3,0,11,0,7,0,255,255,252,255,254,255,2,0,5,0,2,0, +254,255,253,255,253,255,255,255,3,0,4,0,255,255,250,255,252,255,1,0,255,255,253,255,255,255,1,0,0,0,255,255, +254,255,251,255,252,255,3,0,3,0,253,255,252,255,253,255,253,255,0,0,3,0,254,255,251,255,254,255,0,0,254,255, +0,0,1,0,254,255,0,0,4,0,1,0,252,255,0,0,5,0,2,0,0,0,1,0,255,255,252,255,2,0,7,0, +255,255,249,255,0,0,4,0,0,0,255,255,0,0,254,255,254,255,255,255,251,255,250,255,2,0,6,0,0,0,251,255, +253,255,255,255,255,255,4,0,5,0,252,255,247,255,1,0,8,0,4,0,254,255,252,255,250,255,0,0,8,0,4,0, +249,255,250,255,3,0,5,0,1,0,0,0,1,0,255,255,255,255,4,0,7,0,4,0,254,255,252,255,0,0,6,0, +4,0,251,255,250,255,2,0,7,0,2,0,253,255,254,255,3,0,7,0,4,0,254,255,253,255,1,0,5,0,6,0, +1,0,253,255,0,0,5,0,4,0,0,0,255,255,0,0,1,0,1,0,1,0,2,0,0,0,253,255,254,255,1,0, +1,0,1,0,1,0,255,255,0,0,3,0,2,0,255,255,255,255,1,0,0,0,253,255,254,255,2,0,1,0,251,255, +252,255,3,0,3,0,254,255,253,255,255,255,1,0,2,0,1,0,255,255,1,0,255,255,252,255,0,0,7,0,4,0, +255,255,254,255,2,0,5,0,1,0,251,255,255,255,3,0,1,0,0,0,255,255,251,255,254,255,6,0,5,0,254,255, +252,255,252,255,255,255,6,0,6,0,255,255,251,255,249,255,252,255,2,0,4,0,254,255,247,255,248,255,255,255,2,0, +254,255,249,255,249,255,250,255,253,255,255,255,254,255,252,255,255,255,255,255,253,255,255,255,5,0,5,0,253,255,250,255, +255,255,5,0,4,0,2,0,0,0,254,255,1,0,1,0,254,255,0,0,4,0,255,255,254,255,6,0,6,0,254,255, +254,255,2,0,4,0,6,0,4,0,254,255,255,255,4,0,5,0,3,0,254,255,252,255,0,0,1,0,0,0,3,0, +3,0,255,255,253,255,253,255,253,255,2,0,2,0,252,255,253,255,4,0,0,0,252,255,3,0,5,0,255,255,253,255, +254,255,252,255,254,255,3,0,1,0,251,255,250,255,0,0,2,0,255,255,254,255,255,255,255,255,1,0,5,0,3,0, +255,255,1,0,0,0,255,255,4,0,6,0,2,0,3,0,7,0,3,0,253,255,254,255,3,0,5,0,4,0,1,0, +255,255,253,255,254,255,3,0,6,0,4,0,3,0,0,0,252,255,255,255,6,0,7,0,2,0,254,255,252,255,255,255, +4,0,2,0,253,255,254,255,1,0,254,255,253,255,0,0,255,255,251,255,249,255,250,255,252,255,254,255,1,0,255,255, +249,255,249,255,255,255,1,0,255,255,254,255,253,255,252,255,255,255,0,0,0,0,2,0,0,0,251,255,254,255,3,0, +1,0,0,0,2,0,2,0,1,0,2,0,0,0,254,255,2,0,7,0,5,0,1,0,2,0,4,0,2,0,3,0, +6,0,3,0,252,255,254,255,4,0,3,0,2,0,2,0,253,255,251,255,2,0,4,0,255,255,253,255,255,255,255,255, +255,255,2,0,2,0,254,255,253,255,2,0,1,0,252,255,254,255,6,0,1,0,251,255,0,0,1,0,249,255,253,255, +4,0,255,255,251,255,255,255,255,255,255,255,2,0,255,255,251,255,1,0,3,0,255,255,255,255,2,0,1,0,2,0, +4,0,255,255,252,255,255,255,2,0,5,0,5,0,2,0,253,255,252,255,0,0,4,0,4,0,2,0,255,255,254,255, +255,255,2,0,4,0,4,0,0,0,254,255,253,255,255,255,2,0,2,0,0,0,255,255,255,255,252,255,253,255,3,0, +4,0,254,255,252,255,255,255,255,255,254,255,1,0,1,0,253,255,254,255,254,255,253,255,0,0,3,0,255,255,252,255, +255,255,0,0,250,255,250,255,255,255,0,0,253,255,252,255,253,255,255,255,1,0,0,0,251,255,250,255,0,0,3,0, +1,0,0,0,0,0,253,255,254,255,3,0,5,0,2,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0, +1,0,2,0,0,0,254,255,2,0,6,0,4,0,0,0,0,0,0,0,253,255,255,255,2,0,3,0,0,0,0,0, +2,0,3,0,0,0,253,255,254,255,3,0,5,0,3,0,255,255,253,255,255,255,0,0,2,0,5,0,5,0,0,0, +253,255,0,0,3,0,1,0,2,0,4,0,1,0,255,255,253,255,252,255,1,0,7,0,5,0,255,255,0,0,1,0, +252,255,251,255,4,0,6,0,0,0,254,255,0,0,254,255,254,255,3,0,4,0,0,0,0,0,1,0,252,255,254,255, +4,0,0,0,250,255,0,0,5,0,0,0,253,255,254,255,255,255,255,255,0,0,1,0,0,0,253,255,252,255,253,255, +253,255,2,0,5,0,0,0,252,255,2,0,1,0,249,255,252,255,5,0,4,0,255,255,255,255,255,255,253,255,254,255, +1,0,4,0,1,0,252,255,253,255,1,0,1,0,254,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeletondeath.pcm b/src/client/sound/data/skeletondeath.pcm new file mode 100755 index 0000000..e8b51d1 --- /dev/null +++ b/src/client/sound/data/skeletondeath.pcm @@ -0,0 +1,1628 @@ +unsigned char PCM_skeletondeath[52030] = { +1,0,0,0,2,0,0,0,68,172,0,0,151,101,0,0,131,0,113,0,187,255,155,254,87,253,80,252,241,251,76,252, +4,253,218,253,209,254,166,255,14,0,57,0,86,0,105,0,107,0,44,0,214,255,238,255,83,0,192,0,104,1,240,1, +211,1,162,1,170,1,69,1,125,0,200,255,233,254,4,254,179,253,204,253,35,254,252,254,232,255,114,0,252,0,95,1, +31,1,224,0,6,1,206,0,71,0,56,0,95,0,116,0,13,1,18,2,149,2,95,2,198,1,244,0,25,0,115,255, +40,255,57,255,95,255,102,255,134,255,176,255,96,255,182,254,149,254,41,255,205,255,134,0,139,1,19,2,234,1,29,2, +155,2,91,2,174,1,44,1,122,0,220,255,236,255,65,0,144,0,8,1,37,1,157,0,10,0,124,255,227,254,1,255, +191,255,6,0,215,255,217,255,215,255,180,255,204,255,250,255,245,255,229,255,202,255,146,255,55,255,123,254,172,253,160,253, +19,254,54,254,129,254,116,255,90,0,12,1,2,2,130,2,209,1,240,0,179,0,140,0,37,0,179,255,1,255,20,254, +131,253,121,253,187,253,59,254,194,254,39,255,157,255,23,0,99,0,193,0,82,1,189,1,1,2,75,2,139,2,234,2, +94,3,72,3,159,2,208,1,170,0,101,255,208,254,130,254,231,253,254,253,50,255,81,0,243,0,81,1,193,0,79,255, +60,254,234,253,41,254,32,255,86,0,29,1,144,1,127,1,181,0,40,0,70,0,34,0,149,255,224,254,76,253,62,251, +150,250,169,251,119,253,176,255,163,1,64,2,254,1,194,1,105,1,68,1,240,1,183,2,213,2,161,2,37,2,48,1, +100,0,0,0,74,255,52,254,126,253,90,253,125,253,206,253,98,254,81,255,107,0,38,1,24,1,40,0,129,254,226,252, +67,252,203,252,222,253,12,255,7,0,45,0,51,255,197,253,169,252,251,251,4,252,148,253,140,0,200,3,147,6,97,8, +89,8,6,7,17,6,149,5,241,4,176,4,151,4,104,3,190,1,184,0,143,255,43,254,145,253,176,252,123,250,224,248, +29,249,44,250,16,252,193,254,72,0,48,0,0,0,205,255,111,255,24,0,134,1,90,2,198,2,16,3,219,2,8,3, +29,4,243,4,71,5,103,5,106,4,101,2,177,0,76,255,67,254,230,254,85,0,165,0,19,0,225,254,197,252,238,251, +151,254,49,3,108,7,63,10,144,9,123,4,186,253,132,246,107,237,44,228,89,222,143,220,18,223,142,230,179,240,190,251, +56,9,65,24,24,37,86,46,121,51,255,50,228,44,44,33,37,15,6,250,249,231,204,220,99,217,237,219,149,224,24,229, +250,231,178,230,110,225,109,218,203,210,210,206,46,212,68,225,212,241,34,4,163,17,57,19,38,12,153,1,176,244,51,235, +82,234,0,239,162,249,156,14,107,41,180,67,174,92,40,110,245,111,43,100,135,78,146,47,11,15,130,246,193,230,189,223, +15,228,209,240,216,255,0,13,58,19,248,13,212,253,196,230,157,205,218,183,142,170,68,169,34,180,210,199,45,225,87,253, +86,24,21,48,136,66,252,73,135,68,134,55,217,38,46,21,114,8,232,1,89,253,8,251,42,252,39,253,203,252,87,252, +152,249,243,243,0,238,171,231,15,225,169,220,90,218,254,217,47,222,109,230,194,239,31,249,69,0,180,2,192,1,3,255, +140,251,76,250,121,251,203,252,47,255,4,3,144,6,44,12,204,21,93,31,8,38,77,41,3,38,25,28,251,15,255,3, +11,251,247,248,97,251,55,254,226,0,122,0,137,251,97,247,214,245,222,243,253,242,200,243,196,242,239,241,41,244,116,246, +170,249,26,1,211,8,52,14,13,19,98,19,170,12,104,5,102,0,172,251,127,250,40,254,88,2,253,6,34,13,97,17, +22,19,169,19,132,17,47,13,75,8,41,1,17,249,44,244,160,242,225,244,103,252,33,5,71,11,17,15,128,13,61,5, +102,251,44,241,178,229,112,222,178,220,224,219,17,223,143,233,112,245,102,0,144,11,171,16,4,13,143,6,161,254,94,245, +110,240,186,239,241,238,10,240,246,242,132,243,119,244,206,248,83,252,216,253,98,254,225,249,68,240,94,231,74,225,76,224, +229,232,169,248,135,10,46,29,137,43,241,47,143,45,170,39,113,29,2,19,105,12,212,6,61,2,4,2,91,4,168,7, +145,13,84,19,80,21,109,20,134,15,144,4,117,247,231,235,244,225,133,220,67,222,122,228,43,237,109,248,106,3,106,11, +40,16,93,16,133,11,213,3,156,250,76,241,107,235,50,234,124,236,149,242,197,251,191,4,36,12,129,17,253,18,140,16, +126,11,56,4,146,252,203,246,159,242,157,240,38,242,15,245,29,247,219,248,180,248,117,244,47,238,9,232,74,226,98,223, +27,225,235,229,112,237,161,247,245,1,214,11,70,22,204,30,107,35,92,37,140,35,123,28,69,19,146,10,57,2,19,252, +175,249,5,249,213,248,60,249,180,248,12,247,36,246,0,246,120,246,48,249,191,253,76,2,91,7,43,13,220,17,6,21, +144,23,219,24,120,24,130,23,142,22,86,21,1,20,168,18,250,16,246,14,194,12,36,10,214,6,183,2,75,253,20,246, +232,237,94,230,58,224,117,220,167,220,106,224,213,229,137,236,65,244,105,251,5,2,26,9,136,15,68,20,174,23,232,24, +113,23,9,21,45,18,79,14,220,10,39,8,160,4,47,1,23,255,213,252,96,250,69,249,101,248,12,247,202,246,237,246, +0,246,9,245,195,243,201,240,96,237,25,234,168,229,152,225,44,224,60,225,254,229,182,239,121,251,120,6,64,16,51,23, +5,27,112,30,192,33,77,35,106,35,130,33,147,28,99,23,60,20,96,18,42,18,27,19,240,17,0,14,33,9,227,2, +169,251,126,245,122,239,218,232,217,227,189,224,203,222,208,223,197,227,163,232,237,238,43,246,76,251,250,253,0,255,187,253, +125,252,157,254,75,3,42,9,112,15,184,18,147,17,190,14,143,11,164,8,234,7,12,8,24,6,141,2,230,253,198,247, +190,242,106,240,68,239,132,239,111,241,151,242,171,242,203,242,160,241,106,239,96,238,207,237,43,237,21,238,195,239,97,241, +39,245,56,251,221,1,128,9,207,16,178,20,196,21,67,21,114,18,2,15,146,12,35,9,85,4,140,255,198,249,161,243, +33,240,253,238,39,239,149,241,124,244,105,245,211,245,145,246,35,247,210,249,104,255,16,5,9,10,84,14,234,15,166,15, +53,16,230,16,53,17,78,18,191,18,159,17,89,17,101,18,149,19,172,21,173,23,209,22,154,19,79,15,100,9,71,3, +196,254,142,250,40,246,180,242,75,239,151,235,130,233,42,233,176,233,237,235,80,239,182,241,33,243,254,243,157,243,38,243, +118,244,34,247,204,250,213,255,226,4,168,8,215,11,115,14,245,15,107,17,27,19,187,19,28,19,135,17,61,14,177,9, +92,5,59,1,32,253,165,249,44,246,244,241,236,237,189,234,85,232,151,231,243,232,138,235,82,239,149,244,120,250,125,0, +128,6,40,11,143,13,53,14,52,13,12,11,195,9,61,10,209,11,160,14,15,18,196,19,255,18,171,16,113,12,114,6, +160,0,132,251,73,246,193,241,212,238,226,236,38,236,167,237,202,240,97,244,2,248,216,250,252,251,190,251,223,250,11,250, +20,250,83,251,203,253,191,1,205,6,17,12,48,17,52,21,126,22,19,21,244,17,103,13,177,8,208,5,93,4,23,3, +106,2,239,1,83,0,164,254,252,253,164,252,140,249,105,245,145,239,205,231,217,224,218,220,186,219,240,221,231,227,41,236, +46,245,146,254,173,7,81,15,126,20,194,22,79,22,91,19,154,14,61,10,228,7,24,7,202,7,94,10,4,13,23,14, +82,14,102,13,249,9,78,5,247,0,109,252,80,248,247,245,104,244,45,243,179,243,160,245,209,247,156,250,234,252,210,252, +87,251,240,249,129,248,128,248,101,251,156,255,10,4,28,9,98,13,134,15,191,16,230,16,124,14,102,10,61,5,26,254, +0,247,214,242,236,240,156,240,164,242,4,245,218,245,30,247,163,249,99,251,81,252,19,253,20,252,57,249,218,246,158,245, +248,244,172,245,33,248,103,251,222,254,75,2,60,5,96,7,154,8,25,9,69,9,34,9,227,8,102,9,183,10,220,11, +87,12,233,11,92,10,160,8,161,7,197,6,112,5,128,3,80,0,84,252,100,249,194,247,158,246,125,246,100,247,246,247, +73,248,50,249,202,249,168,249,40,250,151,251,76,253,175,255,197,2,115,5,147,7,144,9,227,10,123,11,22,12,133,12, +74,12,186,11,182,10,160,8,7,6,239,3,81,2,4,1,100,0,70,0,255,255,127,255,19,255,169,254,11,254,97,253, +237,252,112,252,97,251,232,249,174,248,211,247,83,247,173,247,196,248,167,249,64,250,14,251,188,251,41,252,41,253,207,254, +134,0,104,2,14,4,86,4,135,3,151,2,63,1,145,255,117,254,141,253,115,252,150,252,104,254,71,0,144,1,132,2, +122,2,202,1,23,2,77,3,26,4,58,4,162,3,34,2,170,0,0,0,242,255,173,0,85,2,27,4,103,5,26,6, +160,5,249,3,49,2,183,0,51,255,182,253,96,252,65,251,214,250,60,251,19,252,40,253,1,254,58,254,151,254,87,255, +84,255,124,254,174,253,127,252,230,250,77,250,167,250,170,250,171,250,60,251,137,251,78,251,27,251,196,250,52,250,18,250, +160,250,189,251,56,253,121,254,62,255,217,255,54,0,72,0,157,0,64,1,159,1,207,1,42,2,159,2,73,3,104,4, +218,5,65,7,58,8,135,8,63,8,96,7,180,5,114,3,12,1,168,254,124,252,237,250,34,250,20,250,173,250,233,251, +213,253,223,255,45,1,226,1,78,2,225,1,166,0,111,255,9,254,29,252,185,250,131,250,225,250,168,251,40,253,59,255, +177,1,105,4,32,7,134,9,248,10,89,11,176,11,18,12,72,11,120,9,75,7,28,4,142,0,136,254,136,253,66,252, +98,251,229,250,11,250,33,250,6,252,133,254,98,1,134,4,19,6,150,5,59,4,175,1,83,254,74,252,112,251,103,250, +220,249,198,249,206,248,238,247,129,248,115,249,84,250,220,251,65,253,241,253,209,254,213,255,37,0,239,255,154,255,60,255, +42,255,127,255,21,0,176,0,204,0,176,0,97,1,146,2,175,3,178,5,126,8,112,10,212,11,101,13,123,13,130,11, +112,9,166,7,81,5,127,3,207,2,208,1,50,0,12,255,93,254,189,253,123,253,116,253,26,253,98,252,106,251,66,250, +60,249,126,248,247,247,252,247,218,248,42,250,111,251,170,252,215,253,179,254,108,255,146,0,38,2,161,3,213,4,208,5, +29,6,72,5,162,3,198,1,4,0,163,254,225,253,134,253,248,252,231,251,180,250,16,250,49,250,211,250,203,251,241,252, +213,253,76,254,189,254,51,255,11,255,42,254,102,253,45,253,67,253,191,253,178,254,89,255,64,255,23,255,75,255,118,255, +136,255,194,255,236,255,216,255,216,255,7,0,58,0,122,0,210,0,17,1,245,0,78,0,13,255,118,253,36,252,159,251, +253,251,17,253,215,254,26,1,55,3,243,4,112,6,45,7,191,6,226,5,17,5,196,3,38,2,28,1,158,0,90,0, +200,0,220,1,148,2,166,2,163,2,160,2,65,2,125,1,76,0,148,254,206,252,190,251,167,251,45,252,183,252,215,252, +131,252,1,252,153,251,74,251,232,250,151,250,156,250,17,251,54,252,24,254,238,255,20,1,217,1,88,2,76,2,10,2, +184,1,222,0,143,255,88,254,110,253,51,253,230,253,43,255,27,1,209,3,55,6,214,7,65,9,194,9,195,8,207,7, +72,7,207,5,234,3,143,2,192,0,196,254,77,254,204,254,59,255,44,0,17,1,236,0,151,0,78,0,87,255,133,254, +56,254,115,253,214,252,41,253,71,253,71,253,23,254,136,254,69,254,203,254,117,255,85,255,126,255,60,255,92,253,51,252, +52,253,225,254,148,1,65,5,143,6,70,5,165,4,125,4,216,3,48,4,44,4,76,1,242,253,195,252,25,253,133,255, +93,4,132,8,97,10,20,11,49,10,181,7,171,5,50,4,49,2,44,0,212,253,45,250,110,246,233,243,143,242,235,242, +217,244,206,246,147,248,102,250,100,251,255,251,44,253,10,254,166,254,35,0,73,1,12,1,225,0,235,0,118,0,242,0, +114,2,186,2,248,1,88,1,26,0,217,254,72,255,135,0,228,1,94,4,239,6,217,7,127,7,241,5,241,2,132,0, +7,0,118,0,117,1,224,2,110,3,120,3,122,4,208,5,128,6,188,6,156,5,80,2,48,254,62,250,108,246,177,243, +182,242,147,242,234,242,238,243,7,245,24,246,178,247,136,249,28,251,142,252,184,253,145,254,123,255,55,0,140,0,9,1, +166,1,11,2,204,2,199,3,235,3,172,3,227,3,174,3,149,2,59,1,29,255,43,252,116,250,213,250,14,252,215,253, +250,255,177,0,200,255,26,255,220,254,92,254,153,254,237,255,239,0,146,1,198,2,207,3,5,4,52,4,45,4,244,2, +103,1,182,0,99,0,73,0,1,1,165,1,76,1,44,1,21,2,16,3,188,3,39,4,128,3,10,2,102,1,213,1, +142,2,118,3,5,4,129,3,200,2,182,2,161,2,58,2,224,1,51,1,26,0,56,255,103,254,69,253,81,252,227,251, +12,252,65,253,65,255,11,1,99,2,114,3,6,4,74,4,118,4,67,4,163,3,166,2,19,1,53,255,129,253,202,251, +84,250,199,249,195,249,188,249,223,249,247,249,211,249,38,250,242,250,101,251,154,251,226,251,238,251,121,252,102,254,203,0, +173,2,50,4,22,5,40,5,60,5,125,5,97,5,51,5,24,5,140,4,176,3,185,2,72,1,218,255,137,255,110,0, +11,2,170,3,33,4,28,3,104,1,160,255,81,254,6,254,40,254,7,254,22,254,128,254,251,254,228,255,12,1,145,1, +154,1,91,1,15,0,31,254,182,252,128,251,64,250,211,249,206,249,61,249,247,248,173,249,166,250,168,251,172,252,219,252, +54,252,191,251,197,251,47,252,38,253,148,254,117,0,247,2,185,5,20,8,100,9,237,8,32,7,129,5,126,4,197,3, +175,3,241,3,148,3,12,3,10,3,199,2,218,1,202,0,128,255,2,254,26,253,181,252,72,252,47,252,168,252,102,253, +134,254,215,255,145,0,179,0,172,0,88,0,198,255,56,255,81,254,32,253,150,252,6,253,247,253,44,255,77,0,202,0, +203,0,2,1,174,1,151,2,137,3,108,4,35,5,157,5,225,5,218,5,64,5,40,4,17,3,65,2,211,1,195,1, +115,1,89,0,191,254,235,252,253,250,179,249,68,249,229,248,167,248,34,249,198,249,82,250,147,251,243,252,102,253,208,253, +186,254,22,255,25,255,164,255,252,255,221,255,104,0,94,1,173,1,148,1,74,1,108,0,127,255,30,255,236,254,165,254, +74,254,188,253,79,253,108,253,219,253,144,254,158,255,132,0,48,1,52,2,89,3,10,4,127,4,219,4,191,4,97,4, +83,4,100,4,45,4,0,4,68,4,179,4,3,5,60,5,1,5,215,3,86,2,112,1,13,1,210,0,171,0,250,255, +95,254,193,252,220,251,148,251,242,251,167,252,201,252,85,252,228,251,113,251,52,251,162,251,60,252,138,252,242,252,102,253, +168,253,56,254,33,255,207,255,82,0,190,0,191,0,183,0,42,1,244,1,57,3,26,5,219,6,17,8,206,8,141,8, +61,7,161,5,183,3,94,1,105,255,6,254,198,252,48,252,118,252,175,252,199,252,58,253,140,253,118,253,115,253,79,253, +195,252,112,252,178,252,73,253,6,254,130,254,95,254,255,253,219,253,15,254,213,254,255,255,210,0,55,1,139,1,154,1, +52,1,196,0,141,0,147,0,252,0,181,1,52,2,0,2,31,1,41,0,197,255,8,0,183,0,130,1,224,1,125,1, +164,0,201,255,36,255,210,254,209,254,218,254,139,254,187,253,208,252,158,252,107,253,215,254,132,0,224,1,55,2,217,1, +197,1,9,2,4,2,151,1,224,0,226,255,244,254,137,254,154,254,204,254,162,254,246,253,65,253,198,252,60,252,238,251, +122,252,110,253,24,254,231,254,63,0,211,1,196,3,47,6,14,8,131,8,212,7,95,6,136,4,21,3,20,2,245,0, +239,255,107,255,44,255,38,255,103,255,142,255,207,255,192,0,235,1,197,2,107,3,85,3,8,2,139,0,155,255,163,254, +172,253,79,253,81,253,94,253,118,253,71,253,241,252,5,253,104,253,242,253,229,254,175,255,156,255,61,255,18,255,185,254, +254,253,242,252,223,251,143,251,49,252,42,253,117,254,232,255,130,0,107,0,213,0,165,1,59,2,226,2,152,3,225,3, +199,3,79,3,102,2,152,1,39,1,185,0,108,0,37,0,15,255,18,253,243,250,31,249,28,248,169,248,109,250,106,252, +110,254,110,0,225,1,209,2,238,3,206,4,255,3,128,1,212,254,133,252,156,250,103,250,101,252,214,254,106,0,29,1, +152,0,8,255,161,253,10,253,180,253,206,255,212,1,23,3,86,5,166,8,89,11,201,13,111,15,107,13,164,8,211,4, +72,2,193,0,181,1,78,3,177,2,101,1,197,0,86,255,127,253,112,252,70,251,72,250,146,250,70,251,74,252,99,254, +70,0,173,1,239,3,10,5,204,2,236,255,128,254,37,253,47,252,162,252,187,252,228,251,47,252,11,254,251,255,204,0, +184,255,65,253,15,251,244,249,36,250,183,251,191,253,190,255,129,2,177,5,251,7,16,9,133,8,201,5,19,2,254,254, +240,252,105,252,167,253,188,255,244,1,217,3,155,4,108,4,227,3,140,2,203,0,222,255,70,255,91,254,24,254,140,254, +9,255,63,0,248,1,63,2,224,0,6,255,200,252,213,250,146,250,78,251,141,251,134,251,173,251,220,251,112,252,204,253, +172,255,156,1,212,2,160,2,107,1,1,0,209,254,174,254,251,255,133,1,24,2,220,1,19,1,174,255,46,254,59,253, +228,252,50,253,100,254,55,0,207,1,127,2,34,2,226,0,83,255,127,254,227,254,248,255,238,0,96,1,34,1,117,0, +47,0,122,0,100,0,86,255,174,253,239,251,179,250,103,250,181,250,8,251,65,251,169,251,208,252,151,254,189,255,241,255, +88,0,76,1,161,2,230,4,70,7,191,7,166,6,177,5,8,5,161,4,223,4,251,4,75,4,102,3,156,2,25,2, +71,2,129,2,72,2,118,2,204,2,41,2,62,1,199,0,250,255,76,255,241,255,234,0,215,0,19,0,242,254,95,253, +6,252,95,251,249,250,96,250,157,249,47,249,143,249,180,250,106,252,82,254,122,255,86,255,73,254,224,252,245,251,120,252, +63,254,110,0,49,2,136,2,115,1,33,0,222,254,190,253,162,253,236,253,133,253,216,253,146,255,6,1,132,2,187,4, +68,5,174,3,184,2,117,2,17,2,44,3,18,5,2,5,112,3,91,1,60,254,156,251,249,250,54,251,91,252,174,254, +8,0,64,0,45,1,212,1,183,1,182,2,130,3,219,1,188,255,109,254,155,252,101,251,216,251,196,251,182,250,123,250, +203,250,24,251,23,252,46,253,157,253,52,254,94,255,12,1,126,3,14,6,21,8,251,9,102,11,174,11,91,11,101,10, +39,8,95,5,217,2,102,0,128,254,203,253,247,253,140,254,237,254,134,254,189,253,241,252,65,252,131,252,120,253,158,253, +101,253,221,253,53,254,143,254,9,0,76,1,62,1,85,1,194,1,155,1,229,1,236,2,72,3,28,3,224,2,224,1, +162,0,17,0,172,255,142,255,244,255,165,255,149,254,232,253,33,253,60,252,159,252,197,253,156,254,11,0,221,1,141,2, +148,2,163,2,32,2,154,1,4,2,181,2,43,3,97,3,177,2,52,1,178,255,82,254,154,253,18,254,191,254,254,254, +51,255,198,254,121,253,159,252,109,252,45,252,120,252,109,253,243,253,23,254,80,254,16,254,118,253,41,253,214,252,82,252, +242,251,120,251,251,250,21,251,140,251,22,252,253,252,216,253,46,254,147,254,56,255,195,255,156,0,3,2,75,3,59,4, +13,5,126,5,127,5,99,5,2,5,247,3,68,2,38,0,12,254,144,252,0,252,65,252,235,252,109,253,133,253,89,253, +53,253,101,253,22,254,16,255,225,255,58,0,14,0,160,255,97,255,156,255,89,0,78,1,10,2,50,2,182,1,212,0, +234,255,73,255,12,255,27,255,80,255,155,255,13,0,199,0,215,1,29,3,82,4,41,5,122,5,83,5,239,4,133,4, +43,4,198,3,36,3,42,2,246,0,219,255,56,255,67,255,232,255,199,0,108,1,127,1,247,0,14,0,33,255,123,254, +50,254,41,254,44,254,20,254,221,253,156,253,106,253,73,253,38,253,227,252,113,252,228,251,104,251,46,251,76,251,182,251, +65,252,194,252,35,253,111,253,195,253,63,254,234,254,179,255,123,0,41,1,187,1,72,2,236,2,180,3,141,4,66,5, +143,5,63,5,72,4,213,2,65,1,247,255,81,255,111,255,45,0,48,1,4,2,80,2,247,1,40,1,66,0,172,255, +158,255,12,0,171,0,27,1,21,1,142,0,187,255,239,254,114,254,89,254,137,254,199,254,227,254,210,254,173,254,157,254, +188,254,254,254,62,255,78,255,27,255,185,254,91,254,61,254,129,254,39,255,13,0,10,1,251,1,212,2,151,3,70,4, +216,4,56,5,81,5,23,5,149,4,230,3,45,3,133,2,251,1,143,1,58,1,240,0,162,0,65,0,198,255,57,255, +147,254,212,253,18,253,84,252,162,251,33,251,215,250,173,250,180,250,237,250,41,251,105,251,215,251,106,252,43,253,81,254, +173,255,205,0,135,1,197,1,112,1,232,0,169,0,195,0,52,1,242,1,146,2,200,2,176,2,84,2,204,1,140,1, +174,1,209,1,217,1,198,1,90,1,196,0,122,0,98,0,42,0,204,255,31,255,247,253,161,252,112,251,134,250,40,250, +117,250,45,251,20,252,232,252,66,253,50,253,28,253,12,253,5,253,46,253,75,253,12,253,167,252,68,252,222,251,194,251, +54,252,26,253,93,254,195,255,198,0,80,1,160,1,167,1,138,1,154,1,131,1,6,1,182,0,207,0,1,1,132,1, +102,2,251,2,52,3,134,3,180,3,155,3,181,3,230,3,222,3,244,3,25,4,225,3,178,3,209,3,161,3,18,3, +105,2,29,1,74,255,15,254,131,253,20,253,13,253,90,253,64,253,31,253,169,253,108,254,34,255,28,0,229,0,16,1, +22,1,11,1,182,0,166,0,16,1,79,1,90,1,103,1,13,1,121,0,114,0,189,0,201,0,228,0,25,1,6,1, +11,1,148,1,50,2,166,2,41,3,145,3,151,3,93,3,233,2,44,2,108,1,216,0,82,0,215,255,110,255,248,254, +128,254,60,254,32,254,249,253,215,253,218,253,227,253,192,253,137,253,97,253,71,253,101,253,249,253,197,254,74,255,120,255, +117,255,78,255,48,255,76,255,127,255,175,255,215,255,211,255,186,255,213,255,18,0,106,0,43,1,22,2,129,2,144,2, +179,2,185,2,158,2,195,2,213,2,66,2,95,1,180,0,70,0,13,0,16,0,35,0,26,0,238,255,194,255,229,255, +91,0,212,0,88,1,229,1,221,1,0,1,251,255,50,255,149,254,96,254,147,254,137,254,246,253,66,253,200,252,156,252, +177,252,236,252,67,253,144,253,165,253,187,253,16,254,111,254,229,254,235,255,68,1,71,2,1,3,139,3,159,3,108,3, +85,3,25,3,141,2,253,1,115,1,225,0,130,0,65,0,253,255,5,0,109,0,217,0,39,1,58,1,198,0,13,0, +144,255,68,255,15,255,240,254,149,254,226,253,62,253,180,252,39,252,5,252,99,252,198,252,25,253,134,253,201,253,251,253, +164,254,172,255,176,0,162,1,67,2,98,2,104,2,115,2,75,2,37,2,244,1,80,1,143,0,40,0,239,255,28,0, +233,0,137,1,130,1,87,1,3,1,111,0,96,0,240,0,90,1,138,1,135,1,173,0,247,254,31,253,179,251,53,251, +226,251,110,253,164,255,160,1,153,1,175,255,4,254,54,253,223,252,182,253,77,255,149,255,126,254,85,253,220,251,61,250, +54,250,179,251,135,252,223,251,167,250,252,249,12,251,111,254,249,2,134,6,220,7,73,7,253,5,77,5,8,6,113,7, +171,7,97,6,26,5,83,4,166,3,1,4,143,5,18,6,67,4,232,0,131,252,167,248,166,248,23,253,179,2,170,6, +251,7,108,6,255,2,78,255,125,252,163,251,220,252,157,254,32,0,171,1,76,2,58,1,152,255,45,254,167,252,54,251, +5,250,29,249,127,249,225,251,189,255,61,4,91,7,169,6,252,2,252,254,87,251,215,248,175,249,162,253,39,2,241,5, +2,8,179,6,55,2,13,253,13,250,135,250,25,253,250,255,188,2,33,4,26,3,211,0,14,255,11,255,152,1,33,5, +51,7,110,7,60,5,251,255,160,250,2,248,161,247,106,250,184,0,5,5,19,4,175,1,25,255,68,251,228,249,249,251, +20,253,234,253,100,0,191,0,97,1,43,10,41,23,215,30,103,31,35,22,91,0,23,231,220,211,11,201,82,205,181,226, +171,251,108,14,29,24,233,15,206,251,42,245,227,1,66,24,95,57,204,83,113,69,247,25,104,246,13,217,8,190,56,186, +136,192,102,183,228,187,69,229,103,20,17,62,21,105,5,109,78,54,35,251,51,218,176,196,94,199,255,225,180,229,125,208, +101,204,141,217,46,245,13,53,33,116,231,117,133,75,230,18,219,198,89,148,57,175,73,231,40,7,206,36,174,60,119,51, +87,49,151,78,183,81,196,39,49,249,23,199,225,148,197,147,207,191,208,225,85,245,132,4,56,251,237,238,231,8,25,46, +66,57,22,52,76,22,40,211,36,156,196,155,160,187,115,234,11,39,236,80,50,86,217,79,201,68,159,44,97,23,194,6, +47,231,83,198,105,187,52,190,8,208,174,251,112,35,44,41,36,28,77,7,103,230,64,209,255,215,19,224,23,220,176,217, +203,214,25,214,155,239,148,30,203,68,177,91,67,97,9,71,13,28,84,1,249,246,229,242,207,252,41,13,119,16,55,13, +18,14,16,10,207,1,8,253,87,239,60,212,103,193,11,191,123,196,5,215,166,245,101,10,206,17,180,27,17,37,214,38, +198,41,227,40,46,21,3,251,76,238,208,236,180,245,220,12,158,33,212,35,107,26,204,9,124,241,255,224,18,225,40,229, +151,233,99,241,231,241,17,237,86,246,225,8,105,17,251,18,163,16,94,1,47,241,6,241,187,243,11,239,229,239,168,245, +247,246,244,254,131,17,47,29,93,31,222,30,9,17,247,244,15,225,77,223,173,234,98,2,226,26,108,33,53,26,238,17, +228,5,101,248,127,243,53,240,81,230,22,225,110,229,70,233,118,238,134,252,197,10,56,17,86,22,245,26,149,22,159,10, +136,255,86,246,188,238,58,238,189,245,4,254,98,2,224,2,193,0,143,3,107,19,186,40,234,52,60,51,217,29,100,239, +143,188,68,162,40,163,242,189,79,247,150,49,7,68,89,57,53,46,59,31,244,12,231,4,231,248,246,220,177,200,49,200, +10,212,7,246,58,42,248,79,219,90,72,70,95,3,95,181,202,151,225,161,244,185,62,236,250,25,226,18,230,1,129,21, +233,36,149,34,20,50,69,57,38,27,66,7,22,16,67,18,145,22,252,42,5,44,225,18,72,249,222,218,44,191,198,192, +122,203,254,203,103,220,189,243,123,243,54,249,68,21,248,27,133,15,184,19,251,13,252,239,236,236,18,8,202,18,137,19, +174,24,225,7,22,240,0,253,13,27,147,37,187,33,65,12,135,223,130,192,27,198,170,217,242,242,186,19,1,36,216,29, +243,23,37,18,241,5,57,2,184,1,59,239,30,213,30,193,146,171,93,162,160,188,173,233,206,18,142,56,16,76,12,61, +195,37,80,31,191,27,58,20,177,19,228,17,166,7,25,8,7,28,115,51,215,67,62,73,137,58,22,23,8,234,204,190, +166,160,217,150,36,159,212,180,175,206,49,221,47,225,159,237,153,6,54,31,89,48,5,51,64,31,70,1,8,239,236,238, +249,0,86,36,194,72,52,89,160,78,101,44,131,1,213,229,150,224,5,230,33,236,193,232,253,214,180,202,24,215,32,242, +168,14,195,36,120,32,220,1,172,233,141,226,49,225,65,239,152,10,159,20,214,14,54,16,197,13,137,3,192,10,113,25, +253,17,55,0,61,240,8,216,101,204,198,227,121,3,79,22,151,33,239,24,87,255,196,250,216,11,47,21,139,26,153,25, +180,251,21,219,235,222,4,244,179,8,250,38,194,51,220,22,140,245,156,230,51,217,206,217,155,240,52,246,230,224,241,207, +183,195,135,188,156,215,88,7,156,32,171,39,172,39,253,17,245,251,8,7,91,29,197,38,64,44,155,33,171,253,18,232, +210,245,52,13,208,36,108,55,226,38,2,248,234,211,209,193,182,187,56,207,1,236,72,240,23,233,8,237,241,242,123,255, +65,30,131,52,143,46,208,31,206,15,202,252,49,254,122,25,20,49,136,58,147,57,136,34,241,254,124,237,152,235,237,231, +200,231,175,230,230,213,245,198,184,207,112,229,148,254,23,27,194,40,59,29,10,11,141,253,82,244,169,248,251,7,63,15, +100,13,29,10,138,0,119,247,158,253,73,7,160,4,129,253,143,244,101,227,233,215,68,223,59,237,70,249,96,7,190,16, +179,15,252,13,42,16,237,18,26,24,252,27,206,21,55,9,59,252,212,237,103,229,13,234,242,240,28,243,63,248,191,253, +4,251,210,246,132,246,26,243,91,238,79,240,195,245,163,251,213,5,186,17,248,25,182,30,142,29,10,21,11,12,96,5, +99,254,72,251,254,252,32,250,71,242,69,238,175,237,49,238,243,243,107,251,48,252,180,248,12,246,218,243,202,244,250,250, +238,1,18,8,136,14,62,18,202,19,215,22,28,23,197,17,247,12,180,8,197,255,149,246,78,242,36,241,154,245,218,0, +49,8,221,4,179,251,182,239,144,227,17,222,133,223,236,228,21,241,138,1,129,13,42,20,227,22,99,19,163,15,232,17, +184,18,135,13,151,7,88,255,128,244,244,241,41,248,99,252,119,255,121,3,81,0,70,248,185,245,139,246,178,248,111,1, +90,10,146,10,243,8,196,10,117,13,153,21,149,34,20,39,87,33,201,25,152,15,197,5,235,5,178,8,100,1,74,244, +184,229,97,213,193,207,21,220,107,236,33,248,4,1,216,0,192,248,13,248,173,254,29,1,18,2,176,2,96,249,117,235, +118,230,175,231,11,236,247,248,120,6,17,7,128,254,254,244,249,236,229,236,169,246,194,0,75,7,80,12,216,12,253,11, +222,17,150,24,245,23,92,21,15,17,231,4,210,250,176,253,136,3,208,4,48,8,94,11,81,7,89,3,45,5,1,5, +252,255,37,251,111,246,121,241,200,239,109,241,97,245,199,252,74,5,162,12,33,20,107,24,215,21,6,19,231,19,206,16, +230,7,19,0,140,249,196,243,156,245,43,254,170,2,146,0,181,251,11,243,0,232,83,225,99,224,107,226,28,231,177,236, +155,240,54,245,45,253,124,7,24,19,71,29,105,32,80,27,220,17,1,7,100,254,19,252,74,254,220,0,18,3,101,3, +58,0,6,254,130,0,58,4,110,6,178,6,15,1,28,245,62,235,64,233,246,237,199,248,48,7,240,16,29,17,180,10, +123,2,207,252,215,252,128,0,193,2,177,0,12,250,170,242,4,241,1,246,67,253,243,4,76,11,13,12,103,8,103,5, +139,2,45,255,242,255,146,4,190,6,138,5,104,3,29,0,49,254,216,0,94,3,119,0,217,250,206,245,143,241,56,240, +203,242,84,246,195,249,42,254,126,2,222,5,192,8,50,10,13,9,172,4,154,252,196,244,119,243,136,248,23,0,213,8, +127,14,83,11,123,3,17,255,196,253,191,253,38,1,105,5,144,5,177,3,228,2,7,1,230,253,0,253,208,254,113,0, +167,255,124,252,202,248,182,245,171,243,175,244,23,249,199,253,179,2,5,10,242,16,20,21,10,25,44,27,103,22,134,13, +109,5,168,252,213,243,229,238,19,236,231,233,94,237,4,247,158,0,188,7,118,12,162,12,223,8,45,4,160,254,126,248, +105,244,71,244,159,249,110,3,58,11,44,13,231,11,214,7,219,0,10,253,85,254,30,254,151,251,239,250,4,249,113,244, +22,245,182,252,239,3,147,8,252,10,205,6,199,252,201,244,2,242,74,243,148,248,246,254,223,1,128,1,243,255,113,254, +117,255,5,3,32,5,73,4,66,1,134,251,79,246,68,247,14,253,247,2,145,8,129,12,181,11,201,8,178,6,55,2, +28,251,166,246,17,245,101,243,150,243,247,246,55,250,189,252,166,0,58,4,184,4,22,3,43,1,70,255,184,253,210,253, +3,1,153,6,243,11,179,16,182,21,146,23,160,18,206,9,38,1,198,248,143,242,212,241,70,244,215,245,211,247,12,252, +250,255,21,1,174,255,173,252,193,248,90,245,194,244,206,247,110,251,210,252,161,254,234,3,210,10,193,17,222,24,93,28, +148,24,210,16,58,9,230,1,81,252,210,250,174,251,82,252,36,252,149,250,20,249,166,250,73,254,14,1,80,2,187,255, +123,247,133,239,36,238,90,241,184,246,159,254,5,5,252,5,166,4,156,3,84,1,232,254,58,254,168,253,95,252,228,250, +93,248,63,246,80,247,139,250,114,255,120,7,164,14,251,15,244,13,111,10,183,2,171,249,57,245,135,244,51,246,4,252, +229,1,156,1,103,253,35,250,136,248,98,249,97,252,32,253,203,249,101,245,164,242,23,244,196,251,149,6,82,15,221,19, +54,19,221,13,252,7,79,4,12,2,220,1,25,4,130,5,130,4,153,2,122,255,100,251,178,249,88,251,59,254,207,1, +232,4,97,4,155,0,81,253,25,252,226,252,191,255,60,3,183,5,151,7,53,9,197,9,33,9,219,7,121,6,60,5, +120,3,133,0,27,253,254,249,242,247,232,248,21,253,38,1,166,2,130,1,58,253,222,246,156,242,109,242,91,244,127,247, +52,252,246,0,47,4,60,6,95,7,253,6,28,5,218,2,78,1,249,255,205,253,66,252,198,253,152,1,214,5,12,10, +208,11,249,7,249,0,255,251,225,249,145,249,97,251,158,253,89,253,57,251,31,250,165,251,20,0,29,6,0,11,130,12, +91,9,45,2,54,251,58,248,40,248,73,249,191,251,159,253,241,252,38,252,27,253,179,253,149,253,182,254,65,0,148,0, +110,0,105,0,214,0,39,3,223,6,119,9,38,10,7,9,198,5,14,2,158,255,42,253,73,250,45,249,203,249,52,250, +148,250,8,251,67,250,247,248,8,249,163,250,155,253,96,1,144,3,2,3,240,0,175,253,243,249,192,248,152,250,151,252, +56,254,69,0,225,0,204,255,105,0,63,3,112,5,140,6,152,7,162,7,87,6,98,5,82,5,33,5,78,4,33,3, +251,1,15,1,108,0,79,0,65,0,178,254,195,251,18,250,203,250,200,252,115,255,25,2,224,2,233,1,70,1,44,1, +15,1,3,2,250,3,174,4,27,3,252,255,23,252,81,249,44,250,32,254,135,1,184,1,70,255,116,252,254,250,200,251, +220,254,13,2,113,2,179,0,153,255,20,255,1,255,63,2,108,8,120,12,242,12,229,11,98,8,117,2,189,254,162,254, +135,254,112,253,113,252,32,250,16,246,193,242,114,241,185,241,149,243,183,246,138,250,61,254,46,0,163,0,7,2,253,3, +209,4,4,6,189,7,135,6,135,2,181,254,126,250,172,246,5,248,14,254,72,3,103,6,173,7,231,4,142,255,240,251, +2,250,249,248,244,250,14,255,158,1,57,2,123,1,202,254,231,251,59,251,15,252,63,253,84,254,214,253,223,251,160,250, +161,250,230,251,154,255,137,4,78,8,124,11,9,14,78,13,152,9,159,5,123,1,162,253,213,252,167,254,5,0,255,0, +229,2,8,5,23,7,19,9,60,9,151,6,156,2,204,254,245,251,117,250,170,249,103,249,161,250,252,252,48,255,82,1, +29,3,46,3,218,1,95,0,46,254,33,251,22,249,251,248,33,250,65,252,246,254,11,1,253,1,54,2,16,2,98,1, +108,255,12,252,193,248,220,246,133,246,132,248,41,253,29,2,50,5,189,6,178,6,107,4,188,1,237,0,96,1,245,1, +243,2,225,3,168,3,205,2,113,2,101,2,210,1,101,0,81,254,249,251,190,249,41,248,178,247,240,247,47,248,191,248, +20,250,135,251,126,252,29,253,90,253,99,253,63,254,115,0,74,3,240,5,191,7,31,8,74,7,2,6,92,4,118,2, +79,1,69,1,82,1,241,0,170,0,70,0,18,255,184,253,12,253,98,252,205,251,22,253,20,0,47,2,193,2,49,3, +74,3,120,2,23,2,174,2,166,2,183,1,71,1,94,1,15,1,152,0,120,0,240,255,26,254,167,251,80,250,166,250, +235,251,215,253,232,255,69,0,155,254,88,253,198,253,15,255,27,1,128,3,36,4,197,2,136,1,9,1,210,0,120,1, +135,2,141,2,0,2,200,1,114,1,128,1,3,3,197,4,245,4,114,3,131,0,14,253,89,251,128,252,40,255,116,1, +14,2,203,0,44,255,74,254,232,253,95,254,193,255,124,0,32,0,193,255,193,254,188,252,20,252,196,253,213,255,167,1, +97,3,63,3,0,1,36,255,143,254,154,254,147,255,206,0,178,0,222,255,150,255,115,255,124,255,38,0,92,0,155,255, +227,254,35,254,39,253,85,253,215,254,9,0,143,0,156,0,143,255,32,254,138,253,4,253,43,252,33,252,146,252,239,252, +183,254,25,2,26,5,77,7,144,8,49,7,246,3,250,1,155,1,190,1,184,2,152,3,149,2,204,0,166,255,88,254, +22,253,204,252,64,252,222,250,26,250,234,249,216,249,103,251,160,254,91,1,51,3,93,4,188,3,247,1,9,1,175,0, +83,0,168,0,217,0,234,255,53,255,89,255,142,255,188,0,6,3,246,3,27,3,6,2,66,0,17,254,36,254,93,0, +71,2,3,4,211,5,2,6,25,5,242,4,177,4,154,3,220,2,13,2,77,0,218,254,27,254,57,253,4,253,170,253, +102,253,144,252,200,252,68,253,122,253,88,254,184,254,86,253,28,252,55,252,150,252,174,253,249,255,144,1,218,1,239,1, +73,1,231,255,178,255,129,0,173,0,151,0,103,0,55,255,123,254,210,255,137,1,45,2,83,2,108,1,64,255,16,254, +174,254,142,255,121,0,145,1,125,1,57,0,53,255,114,254,217,253,114,254,236,255,19,1,247,1,108,2,177,1,145,0, +33,0,242,255,215,255,5,0,140,255,20,254,222,252,84,252,24,252,165,252,198,253,28,254,161,253,67,253,225,252,127,252, +217,252,124,253,126,253,124,253,89,254,211,255,165,1,181,3,37,5,43,5,18,4,131,2,249,0,12,0,66,0,111,1, +211,2,194,3,15,4,233,3,145,3,52,3,186,2,203,1,42,0,16,254,37,252,29,251,61,251,61,252,156,253,204,254, +101,255,177,255,68,0,246,0,65,1,13,1,92,0,87,255,231,254,184,255,77,1,48,3,58,5,164,6,231,6,144,6, +207,5,96,4,226,2,209,1,169,0,158,255,121,255,185,255,135,255,13,255,52,254,188,252,137,251,98,251,219,251,164,252, +161,253,33,254,250,253,219,253,24,254,232,254,146,0,55,2,177,2,62,2,96,1,45,0,108,255,150,255,179,255,76,255, +21,255,19,255,6,255,124,255,111,0,10,1,64,1,59,1,129,0,48,255,251,253,5,253,137,252,18,253,50,254,26,255, +222,255,124,0,157,0,168,0,6,1,58,1,20,1,255,0,238,0,191,0,213,0,92,1,18,2,192,2,238,2,24,2, +128,0,199,254,85,253,157,252,185,252,21,253,116,253,72,254,139,255,195,0,229,1,221,2,41,3,149,2,113,1,1,0, +155,254,197,253,171,253,229,253,222,253,93,253,185,252,117,252,178,252,75,253,37,254,3,255,139,255,187,255,222,255,29,0, +146,0,118,1,192,2,231,3,109,4,84,4,210,3,229,2,127,1,232,255,146,254,204,253,226,253,243,254,128,0,161,1, +232,1,180,1,152,1,224,1,136,2,58,3,80,3,104,2,2,1,243,255,117,255,67,255,48,255,44,255,33,255,35,255, +90,255,182,255,245,255,240,255,219,255,251,255,28,0,182,255,136,254,92,252,229,248,188,244,127,241,84,240,113,241,209,244, +237,249,98,255,5,4,96,7,55,9,150,9,255,8,248,7,210,6,129,5,168,3,159,1,133,0,195,0,6,2,70,4, +239,6,141,8,212,8,173,8,42,8,9,7,206,5,106,4,20,2,3,255,2,252,90,249,140,247,33,247,225,247,158,249, +33,252,36,254,216,254,12,255,68,255,117,255,67,0,116,1,84,1,150,255,155,253,221,251,95,250,217,249,86,250,34,251, +32,252,11,253,65,253,255,252,142,252,160,251,168,250,26,250,52,249,105,248,172,249,246,252,228,0,144,5,104,10,25,13, +92,13,241,12,20,12,144,10,99,9,79,8,209,5,243,1,200,253,254,249,167,247,124,247,212,248,36,251,14,254,22,0, +164,0,251,0,110,1,187,1,72,3,130,6,27,9,182,9,170,8,157,5,26,1,166,253,75,252,28,252,169,252,68,253, +210,252,208,251,162,250,76,248,177,245,216,244,11,245,198,245,254,248,15,254,28,2,149,5,7,9,147,9,57,7,200,5, +165,5,185,4,68,3,60,1,194,253,149,250,130,249,171,249,102,250,39,251,172,250,48,250,100,251,229,252,59,255,18,5, +93,11,22,13,240,10,188,5,241,252,46,246,18,247,180,252,117,3,61,10,139,12,124,8,41,3,106,255,164,253,48,0, +77,3,66,255,236,245,44,237,184,230,124,232,78,247,203,9,89,21,174,25,46,22,75,11,235,1,13,255,152,255,165,2, +220,5,245,3,15,254,101,246,198,237,78,237,119,249,91,6,222,12,175,14,149,6,94,247,65,241,172,244,244,246,15,251, +1,2,157,2,190,254,145,252,11,249,196,246,221,251,20,3,137,7,189,9,175,5,81,253,234,250,42,254,78,1,3,5, +198,4,230,250,55,240,246,237,110,242,80,253,196,12,184,22,63,23,53,18,23,8,57,253,76,250,153,253,91,1,30,6, +42,8,110,2,24,252,184,251,204,252,142,254,31,4,78,8,39,7,57,5,206,3,211,0,198,254,149,254,25,253,58,250, +104,247,6,245,153,245,245,249,208,254,120,3,72,8,147,9,132,6,41,3,0,0,53,252,241,250,52,252,171,251,98,249, +221,247,160,246,81,246,193,248,250,251,198,253,240,254,108,255,30,255,94,0,183,3,218,6,12,9,66,10,4,9,107,5, +130,1,63,254,251,251,195,251,245,253,105,1,239,3,162,3,189,0,218,252,75,249,249,247,118,250,218,254,220,1,249,2, +198,2,83,1,86,0,8,2,181,5,26,9,250,10,163,10,166,7,218,2,113,254,187,252,246,253,254,255,216,0,165,255, +16,252,215,247,49,246,126,247,156,249,208,251,239,253,8,255,192,255,100,1,80,3,18,5,46,7,84,8,16,7,122,4, +178,1,253,254,187,253,57,254,122,254,245,253,219,253,246,253,148,253,238,252,237,251,202,250,210,250,114,252,243,254,108,1, +128,2,231,1,125,1,20,2,164,2,41,3,120,3,244,1,59,255,247,253,71,254,248,254,116,0,58,2,144,2,185,1, +212,0,186,255,163,254,56,254,12,254,162,253,35,253,217,252,193,253,199,0,40,5,171,9,102,13,167,14,161,12,171,8, +219,3,1,255,254,251,46,251,206,250,100,250,28,250,56,249,189,248,148,250,174,253,95,0,181,2,138,3,157,1,214,254, +43,253,138,252,131,253,49,0,138,2,169,3,67,4,54,4,250,3,132,4,146,4,20,3,234,0,197,253,154,249,57,247, +112,247,245,247,192,248,59,250,95,250,208,249,105,251,222,253,252,254,223,255,64,0,234,254,91,254,62,0,122,2,121,4, +111,6,11,6,58,3,248,0,222,255,178,255,162,1,13,4,45,4,248,2,168,1,226,255,84,255,203,0,115,1,76,0, +163,254,31,252,3,250,163,251,245,255,148,3,30,6,170,6,164,3,5,0,253,254,38,255,213,255,227,1,11,3,180,1, +15,0,221,254,136,253,213,253,50,0,29,2,181,2,52,2,251,255,138,253,109,253,86,255,32,2,16,5,234,5,165,3, +108,0,173,253,195,251,26,252,53,254,82,255,231,254,197,253,202,251,159,250,168,252,136,0,111,3,77,4,51,2,107,253, +75,249,64,248,169,249,132,252,158,255,45,1,18,1,108,0,177,255,149,255,176,0,7,2,181,2,189,2,206,1,180,0, +112,1,218,3,64,6,15,8,64,8,168,5,243,1,60,255,75,253,90,252,255,252,142,253,249,252,147,252,181,252,25,253, +219,254,176,1,152,3,63,4,240,3,58,2,76,0,180,255,227,255,115,0,146,1,227,1,230,0,24,0,107,255,72,254, +253,253,86,254,102,253,203,251,152,250,212,248,112,247,129,248,168,250,29,252,150,253,135,254,234,253,156,253,159,254,105,255, +15,0,86,1,15,2,46,2,232,2,90,3,202,2,105,2,27,2,39,1,153,0,117,0,131,255,159,254,207,254,54,255, +246,255,135,1,77,2,192,1,95,1,6,1,54,0,86,0,118,1,53,2,31,3,117,4,114,4,59,3,186,2,240,2, +123,3,222,4,239,5,30,5,89,3,235,1,217,0,112,0,153,0,50,0,20,255,239,253,220,252,63,252,142,252,252,252, +4,253,36,253,25,253,135,252,69,252,146,252,204,252,77,253,90,254,245,254,193,254,76,254,145,253,202,252,212,252,152,253, +103,254,70,255,23,0,107,0,143,0,229,0,61,1,151,1,7,2,49,2,250,1,166,1,90,1,79,1,146,1,179,1, +155,1,124,1,1,1,38,0,169,255,158,255,167,255,31,0,244,0,38,1,171,0,93,0,81,0,109,0,251,0,151,1, +136,1,247,0,105,0,40,0,113,0,30,1,172,1,228,1,152,1,149,0,84,255,112,254,1,254,107,254,8,0,2,2, +69,3,169,3,57,3,37,2,53,1,174,0,245,255,241,254,253,253,16,253,71,252,226,251,119,251,188,250,50,250,13,250, +245,249,250,249,98,250,19,251,5,252,80,253,171,254,143,255,185,255,94,255,244,254,204,254,23,255,29,0,158,1,179,2, +246,2,184,2,31,2,92,1,29,1,154,1,61,2,153,2,134,2,195,1,99,0,9,255,108,254,225,254,27,0,120,1, +159,2,106,3,196,3,26,4,223,4,182,5,58,6,145,6,144,6,233,5,240,4,226,3,175,2,225,1,203,1,189,1, +57,1,54,0,100,254,68,252,62,251,97,251,177,251,249,251,0,252,47,251,18,250,154,249,135,249,161,249,55,250,253,250, +142,251,26,252,170,252,123,253,27,255,4,1,59,2,194,2,109,2,234,0,135,255,108,255,184,255,242,255,115,0,56,0, +171,254,96,253,66,253,235,253,151,255,223,1,46,3,74,3,233,2,8,2,52,1,61,1,128,1,160,1,60,2,224,2, +253,2,103,3,12,4,0,4,190,3,154,3,196,2,104,1,29,0,184,254,214,253,64,254,55,255,58,0,85,1,140,1, +178,0,45,0,31,0,75,0,232,1,194,4,189,6,54,7,101,6,234,3,197,0,211,254,41,254,1,254,8,254,144,253, +73,252,239,250,38,250,82,250,188,251,171,253,255,254,123,255,4,255,137,253,20,252,196,251,144,252,44,254,66,0,198,1, +3,2,119,1,180,0,244,255,109,255,217,254,174,253,30,252,200,250,16,250,92,250,189,251,126,253,255,254,55,0,29,1, +170,1,41,2,186,2,27,3,66,3,86,3,79,3,45,3,7,3,221,2,174,2,146,2,136,2,133,2,130,2,66,2, +147,1,169,0,226,255,123,255,159,255,41,0,135,0,74,0,160,255,248,254,177,254,6,255,207,255,131,0,174,0,44,0, +36,255,14,254,138,253,251,253,54,255,141,0,22,1,73,0,128,254,190,252,241,251,98,252,142,253,122,254,127,254,200,253, +12,253,244,252,183,253,253,254,26,0,142,0,61,0,100,255,113,254,209,253,189,253,49,254,249,254,188,255,46,0,57,0, +239,255,108,255,217,254,102,254,58,254,120,254,58,255,104,0,182,1,214,2,156,3,2,4,25,4,247,3,163,3,46,3, +194,2,155,2,216,2,90,3,188,3,146,3,192,2,157,1,191,0,156,0,40,1,203,1,204,1,220,0,81,255,239,253, +97,253,195,253,158,254,78,255,123,255,71,255,33,255,97,255,16,0,240,0,174,1,14,2,251,1,131,1,202,0,8,0, +126,255,87,255,132,255,194,255,194,255,89,255,153,254,190,253,5,253,138,252,74,252,59,252,89,252,168,252,37,253,189,253, +89,254,233,254,105,255,221,255,70,0,148,0,166,0,101,0,214,255,41,255,175,254,170,254,42,255,246,255,179,0,30,1, +52,1,44,1,68,1,133,1,188,1,158,1,2,1,14,0,38,255,194,254,40,255,65,0,161,1,188,2,58,3,43,3, +251,2,28,3,169,3,77,4,136,4,36,4,106,3,235,2,245,2,71,3,45,3,14,2,235,255,105,253,103,251,116,250, +142,250,63,251,239,251,47,252,225,251,62,251,191,250,234,250,254,251,187,253,119,255,127,0,149,0,15,0,139,255,112,255, +171,255,225,255,211,255,150,255,113,255,128,255,150,255,104,255,228,254,77,254,5,254,56,254,191,254,76,255,185,255,39,0, +217,0,237,1,50,3,59,4,161,4,62,4,74,3,59,2,146,1,140,1,8,2,150,2,203,2,133,2,254,1,148,1, +115,1,108,1,39,1,123,0,153,255,244,254,237,254,143,255,152,0,171,1,125,2,234,2,243,2,186,2,122,2,118,2, +198,2,60,3,116,3,27,3,42,2,240,0,215,255,23,255,166,254,85,254,0,254,160,253,68,253,251,252,213,252,229,252, +47,253,131,253,145,253,30,253,77,252,156,251,147,251,79,252,92,253,20,254,38,254,218,253,196,253,62,254,26,255,216,255, +27,0,244,255,181,255,148,255,116,255,23,255,117,254,221,253,194,253,87,254,96,255,87,0,199,0,142,0,224,255,36,255, +198,254,10,255,236,255,32,1,55,2,213,2,244,2,239,2,56,3,244,3,213,4,67,5,198,4,93,3,132,1,238,255, +25,255,17,255,118,255,204,255,191,255,86,255,241,254,255,254,164,255,144,0,47,1,9,1,33,0,6,255,123,254,252,254, +101,0,20,2,61,3,90,3,106,2,218,0,74,255,65,254,230,253,247,253,1,254,180,253,37,253,207,252,67,253,160,254, +103,0,194,1,2,2,8,1,80,255,157,253,119,252,7,252,36,252,137,252,255,252,111,253,216,253,63,254,186,254,74,255, +206,255,27,0,29,0,244,255,248,255,129,0,154,1,245,2,42,4,228,4,13,5,199,4,47,4,58,3,246,1,161,0, +139,255,243,254,215,254,213,254,132,254,232,253,115,253,173,253,209,254,124,0,216,1,58,2,166,1,194,0,106,0,19,1, +99,2,114,3,130,3,110,2,182,0,49,255,119,254,132,254,237,254,56,255,27,255,159,254,3,254,114,253,0,253,172,252, +89,252,237,251,127,251,62,251,78,251,209,251,205,252,4,254,48,255,59,0,36,1,219,1,79,2,113,2,65,2,236,1, +184,1,190,1,205,1,128,1,157,0,93,255,74,254,219,253,59,254,38,255,253,255,57,0,201,255,239,254,20,254,182,253, +41,254,85,255,215,0,51,2,252,2,21,3,207,2,159,2,189,2,12,3,41,3,187,2,199,1,190,0,55,0,143,0, +160,1,200,2,80,3,215,2,142,1,42,0,116,255,172,255,107,0,1,1,232,0,13,0,240,254,67,254,83,254,240,254, +183,255,64,0,64,0,196,255,37,255,203,254,7,255,233,255,252,0,117,1,188,0,218,254,139,252,230,250,165,250,168,251, +47,253,125,254,34,255,38,255,242,254,232,254,48,255,226,255,0,1,53,2,243,2,215,2,229,1,171,0,248,255,46,0, +246,0,143,1,82,1,43,0,205,254,23,254,82,254,61,255,90,0,14,1,15,1,192,0,193,0,112,1,231,2,196,4, +29,6,42,6,225,4,226,2,37,1,114,0,171,0,254,0,178,0,146,255,4,254,223,252,180,252,62,253,220,253,32,254, +228,253,113,253,103,253,31,254,102,255,202,0,207,1,42,2,15,2,246,1,52,2,216,2,164,3,34,4,18,4,133,3, +130,2,17,1,98,255,173,253,72,252,170,251,227,251,109,252,183,252,134,252,243,251,130,251,190,251,162,252,194,253,199,254, +148,255,58,0,237,0,194,1,178,2,169,3,105,4,165,4,57,4,9,3,46,1,86,255,52,254,200,253,200,253,23,254, +108,254,160,254,5,255,176,255,33,0,9,0,153,255,21,255,217,254,68,255,69,0,125,1,146,2,47,3,31,3,129,2, +142,1,150,0,5,0,234,255,189,255,8,255,199,253,68,252,42,251,59,251,129,252,78,254,235,255,222,0,2,1,186,0, +137,0,132,0,136,0,132,0,99,0,45,0,57,0,209,0,198,1,182,2,95,3,126,3,221,2,184,1,134,0,111,255, +118,254,211,253,145,253,118,253,144,253,18,254,206,254,149,255,90,0,191,0,124,0,226,255,87,255,14,255,81,255,254,255, +119,0,175,0,26,1,218,1,3,3,145,4,165,5,124,5,128,4,59,3,236,1,49,1,24,1,171,0,200,255,29,255, +154,254,64,254,168,254,93,255,105,255,42,255,27,255,233,254,245,254,191,255,129,0,171,0,156,0,43,0,86,255,24,255, +156,255,48,0,232,0,146,1,56,1,37,0,79,255,110,254,119,253,69,253,119,253,66,253,62,253,170,253,210,253,2,254, +190,254,112,255,2,0,239,0,157,1,138,1,61,1,180,0,206,255,141,255,61,0,240,0,143,1,77,2,92,2,186,1, +88,1,15,1,120,0,65,0,140,0,156,0,125,0,89,0,178,255,203,254,123,254,162,254,210,254,2,255,212,254,9,254, +80,253,46,253,113,253,8,254,214,254,101,255,169,255,239,255,27,0,28,0,54,0,74,0,19,0,189,255,104,255,6,255, +245,254,154,255,142,0,39,1,34,1,106,0,30,255,226,253,95,253,130,253,199,253,232,253,209,253,128,253,77,253,190,253, +210,254,32,0,81,1,0,2,212,1,22,1,89,0,218,255,185,255,252,255,38,0,193,255,5,255,65,254,163,253,151,253, +98,254,161,255,218,0,193,1,20,2,236,1,185,1,187,1,14,2,174,2,44,3,70,3,94,3,143,3,131,3,94,3, +81,3,235,2,26,2,103,1,183,0,168,255,159,254,21,254,239,253,30,254,159,254,15,255,49,255,57,255,97,255,186,255, +37,0,95,0,105,0,123,0,133,0,108,0,67,0,232,255,73,255,216,254,215,254,248,254,17,255,27,255,220,254,109,254, +46,254,18,254,237,253,231,253,13,254,78,254,214,254,162,255,104,0,253,0,53,1,215,0,20,0,79,255,194,254,202,254, +144,255,125,0,247,0,0,1,159,0,243,255,153,255,206,255,15,0,17,0,227,255,131,255,64,255,156,255,131,0,151,1, +157,2,22,3,181,2,243,1,55,1,136,0,64,0,150,0,247,0,1,1,1,1,1,1,236,0,31,1,174,1,5,2, +197,1,245,0,188,255,143,254,246,253,248,253,70,254,136,254,96,254,211,253,115,253,134,253,207,253,35,254,93,254,57,254, +219,253,201,253,35,254,166,254,48,255,156,255,186,255,162,255,132,255,88,255,40,255,20,255,5,255,238,254,12,255,104,255, +215,255,123,0,115,1,91,2,222,2,25,3,0,3,111,2,178,1,32,1,153,0,10,0,174,255,151,255,174,255,247,255, +78,0,103,0,39,0,186,255,110,255,156,255,82,0,71,1,57,2,236,2,45,3,46,3,53,3,29,3,206,2,128,2, +24,2,107,1,212,0,139,0,78,0,59,0,159,0,14,1,7,1,175,0,49,0,136,255,11,255,10,255,60,255,58,255, +243,254,156,254,126,254,176,254,32,255,207,255,117,0,124,0,219,255,253,254,229,253,193,252,95,252,228,252,145,253,11,254, +79,254,32,254,191,253,232,253,161,254,110,255,10,0,41,0,176,255,29,255,215,254,230,254,128,255,159,0,170,1,81,2, +161,2,101,2,194,1,95,1,96,1,116,1,137,1,109,1,247,0,178,0,26,1,236,1,234,2,202,3,200,3,190,2, +122,1,108,0,171,255,166,255,61,0,155,0,139,0,87,0,248,255,161,255,204,255,68,0,137,0,143,0,53,0,90,255, +117,254,245,253,193,253,216,253,46,254,74,254,5,254,197,253,195,253,13,254,190,254,128,255,200,255,155,255,54,255,175,254, +86,254,90,254,98,254,75,254,98,254,153,254,166,254,146,254,98,254,247,253,156,253,185,253,50,254,171,254,245,254,252,254, +244,254,68,255,7,0,0,1,229,1,87,2,19,2,111,1,2,1,248,0,84,1,30,2,249,2,74,3,244,2,77,2, +165,1,58,1,65,1,161,1,226,1,139,1,165,0,172,255,2,255,194,254,0,255,156,255,14,0,15,0,2,0,51,0, +117,0,197,0,61,1,135,1,87,1,239,0,138,0,19,0,165,255,124,255,132,255,130,255,89,255,1,255,128,254,5,254, +202,253,239,253,86,254,186,254,255,254,53,255,79,255,84,255,120,255,174,255,181,255,163,255,129,255,4,255,74,254,247,253, +72,254,20,255,73,0,106,1,152,1,184,0,123,255,106,254,209,253,231,253,115,254,244,254,68,255,141,255,247,255,161,0, +129,1,91,2,255,2,52,3,204,2,0,2,84,1,22,1,96,1,25,2,196,2,216,2,86,2,161,1,36,1,49,1, +174,1,255,1,163,1,144,0,7,255,156,253,30,253,203,253,20,255,75,0,10,1,0,1,53,0,73,255,200,254,139,254, +72,254,31,254,33,254,38,254,99,254,40,255,55,0,29,1,192,1,243,1,102,1,51,0,214,254,186,253,34,253,10,253, +44,253,105,253,205,253,80,254,10,255,252,255,142,0,76,0,147,255,195,254,240,253,132,253,195,253,81,254,36,255,128,0, +0,2,21,3,178,3,177,3,6,3,88,2,8,2,201,1,150,1,135,1,68,1,225,0,208,0,235,0,4,1,96,1, +197,1,178,1,86,1,209,0,249,255,80,255,82,255,137,255,174,255,252,255,60,0,77,0,166,0,56,1,124,1,105,1, +6,1,61,0,109,255,223,254,118,254,126,254,28,255,184,255,27,0,110,0,37,0,24,255,55,254,220,253,164,253,214,253, +123,254,195,254,134,254,72,254,6,254,216,253,27,254,126,254,156,254,148,254,72,254,202,253,233,253,200,254,208,255,247,0, +251,1,252,1,51,1,145,0,29,0,236,255,114,0,6,1,208,0,78,0,218,255,94,255,151,255,182,0,124,1,120,1, +49,1,130,0,186,255,7,0,61,1,60,2,228,2,38,3,137,2,167,1,85,1,81,1,113,1,207,1,202,1,38,1, +145,0,32,0,185,255,245,255,158,0,173,0,44,0,125,255,83,254,51,253,34,253,177,253,19,254,116,254,161,254,52,254, +254,253,174,254,158,255,85,0,226,0,198,0,203,255,193,254,36,254,186,253,156,253,252,253,139,254,12,255,143,255,244,255, +24,0,15,0,223,255,138,255,54,255,234,254,177,254,224,254,149,255,86,0,210,0,51,1,105,1,70,1,46,1,102,1, +102,1,2,1,231,0,64,1,166,1,58,2,248,2,35,3,159,2,13,2,124,1,216,0,148,0,152,0,103,0,62,0, +57,0,247,255,221,255,111,0,8,1,58,1,90,1,9,1,11,0,108,255,159,255,223,255,30,0,139,0,129,0,26,0, +51,0,139,0,170,0,240,0,35,1,170,0,9,0,153,255,225,254,64,254,80,254,108,254,58,254,54,254,20,254,143,253, +120,253,242,253,72,254,157,254,24,255,19,255,192,254,240,254,94,255,201,255,177,0,168,1,195,1,81,1,216,0,59,0, +234,255,112,0,39,1,89,1,31,1,133,0,152,255,233,254,182,254,171,254,190,254,245,254,3,255,247,254,55,255,205,255, +159,0,182,1,173,2,223,2,67,2,94,1,177,0,149,0,31,1,228,1,100,2,134,2,126,2,123,2,137,2,107,2, +181,1,106,0,9,255,222,253,5,253,209,252,69,253,202,253,47,254,189,254,32,255,229,254,130,254,95,254,25,254,180,253, +165,253,191,253,191,253,21,254,234,254,204,255,136,0,24,1,69,1,18,1,163,0,240,255,23,255,84,254,169,253,76,253, +155,253,99,254,79,255,112,0,131,1,250,1,234,1,147,1,203,0,205,255,40,255,204,254,142,254,205,254,150,255,131,0, +138,1,151,2,25,3,213,2,41,2,91,1,144,0,14,0,243,255,16,0,57,0,101,0,174,0,34,1,155,1,237,1, +248,1,119,1,64,0,167,254,50,253,68,252,42,252,243,252,67,254,157,255,150,0,3,1,25,1,21,1,244,0,185,0, +113,0,244,255,70,255,216,254,222,254,42,255,146,255,228,255,226,255,156,255,63,255,226,254,177,254,162,254,87,254,218,253, +140,253,106,253,126,253,59,254,127,255,150,0,96,1,5,2,63,2,6,2,184,1,101,1,254,0,199,0,226,0,42,1, +122,1,138,1,50,1,193,0,108,0,19,0,208,255,197,255,188,255,195,255,57,0,0,1,173,1,46,2,123,2,121,2, +62,2,222,1,92,1,229,0,155,0,117,0,119,0,124,0,55,0,207,255,170,255,192,255,215,255,214,255,119,255,161,254, +213,253,130,253,168,253,62,254,24,255,209,255,71,0,144,0,156,0,120,0,86,0,64,0,63,0,85,0,77,0,35,0, +22,0,11,0,217,255,188,255,157,255,27,255,150,254,123,254,87,254,239,253,190,253,200,253,205,253,34,254,235,254,161,255, +25,0,161,0,61,1,192,1,255,1,211,1,95,1,236,0,146,0,130,0,212,0,26,1,21,1,59,1,142,1,139,1, +64,1,238,0,95,0,180,255,120,255,149,255,187,255,36,0,224,0,152,1,40,2,115,2,47,2,129,1,218,0,83,0, +230,255,166,255,133,255,122,255,169,255,9,0,109,0,185,0,200,0,145,0,60,0,191,255,5,255,103,254,42,254,36,254, +83,254,201,254,47,255,79,255,110,255,145,255,102,255,240,254,102,254,231,253,169,253,231,253,131,254,65,255,248,255,138,0, +246,0,66,1,76,1,19,1,197,0,103,0,245,255,155,255,96,255,59,255,111,255,25,0,212,0,83,1,124,1,29,1, +92,0,202,255,157,255,153,255,173,255,208,255,207,255,190,255,236,255,98,0,245,0,122,1,179,1,124,1,241,0,71,0, +200,255,180,255,235,255,22,0,52,0,99,0,151,0,225,0,84,1,153,1,83,1,161,0,216,255,50,255,219,254,225,254, +34,255,100,255,127,255,113,255,98,255,95,255,80,255,64,255,60,255,24,255,194,254,133,254,141,254,190,254,9,255,97,255, +144,255,124,255,87,255,98,255,167,255,248,255,39,0,34,0,234,255,147,255,102,255,144,255,218,255,8,0,45,0,81,0, +108,0,175,0,37,1,118,1,120,1,76,1,247,0,149,0,113,0,134,0,158,0,187,0,225,0,239,0,249,0,35,1, +77,1,108,1,145,1,154,1,120,1,83,1,38,1,236,0,221,0,224,0,157,0,43,0,172,255,255,254,97,254,64,254, +109,254,156,254,237,254,70,255,95,255,103,255,139,255,153,255,157,255,175,255,143,255,56,255,241,254,176,254,135,254,210,254, +87,255,141,255,133,255,89,255,209,254,59,254,19,254,41,254,68,254,154,254,23,255,125,255,231,255,81,0,130,0,134,0, +83,0,196,255,35,255,183,254,101,254,96,254,232,254,142,255,0,0,144,0,40,1,110,1,163,1,237,1,216,1,96,1, +229,0,104,0,10,0,54,0,216,0,143,1,46,2,103,2,255,1,67,1,117,0,156,255,14,255,255,254,41,255,128,255, +19,0,129,0,167,0,222,0,21,1,10,1,231,0,153,0,222,255,33,255,210,254,194,254,230,254,90,255,188,255,204,255, +210,255,203,255,138,255,73,255,36,255,232,254,178,254,169,254,178,254,243,254,147,255,63,0,193,0,36,1,37,1,171,0, +32,0,159,255,255,254,139,254,126,254,148,254,194,254,46,255,150,255,205,255,249,255,3,0,201,255,123,255,48,255,230,254, +225,254,58,255,179,255,76,0,6,1,131,1,163,1,154,1,96,1,232,0,117,0,32,0,201,255,133,255,116,255,150,255, +252,255,161,0,75,1,207,1,1,2,166,1,229,0,36,0,134,255,42,255,63,255,154,255,236,255,60,0,140,0,167,0, +138,0,65,0,180,255,2,255,112,254,16,254,5,254,125,254,75,255,32,0,217,0,52,1,255,0,115,0,204,255,8,255, +77,254,194,253,87,253,59,253,176,253,133,254,133,255,176,0,163,1,244,1,219,1,132,1,207,0,24,0,212,255,202,255, +205,255,37,0,201,0,122,1,75,2,36,3,137,3,81,3,149,2,102,1,40,0,86,255,249,254,16,255,156,255,31,0, +64,0,96,0,179,0,6,1,128,1,17,2,255,1,31,1,15,0,29,255,113,254,129,254,46,255,195,255,12,0,39,0, +251,255,196,255,235,255,52,0,59,0,7,0,145,255,233,254,161,254,11,255,215,255,209,0,187,1,16,2,195,1,62,1, +154,0,238,255,150,255,99,255,228,254,84,254,7,254,223,253,4,254,163,254,35,255,12,255,185,254,121,254,73,254,111,254, +250,254,118,255,177,255,208,255,203,255,170,255,169,255,213,255,56,0,230,0,141,1,197,1,168,1,84,1,195,0,72,0, +39,0,12,0,210,255,209,255,7,0,43,0,83,0,141,0,163,0,177,0,242,0,55,1,64,1,12,1,169,0,57,0, +247,255,228,255,221,255,229,255,255,255,38,0,114,0,207,0,244,0,221,0,186,0,131,0,50,0,222,255,121,255,254,254, +191,254,232,254,71,255,167,255,229,255,223,255,163,255,109,255,81,255,73,255,85,255,106,255,127,255,144,255,128,255,71,255, +20,255,1,255,2,255,37,255,103,255,155,255,195,255,11,0,93,0,138,0,154,0,150,0,123,0,106,0,117,0,135,0, +155,0,175,0,168,0,136,0,104,0,63,0,38,0,93,0,209,0,61,1,155,1,230,1,236,1,184,1,116,1,13,1, +122,0,250,255,174,255,134,255,127,255,142,255,148,255,166,255,220,255,28,0,78,0,102,0,62,0,219,255,119,255,32,255, +200,254,152,254,166,254,209,254,35,255,165,255,25,0,91,0,127,0,113,0,16,0,137,255,12,255,160,254,111,254,169,254, +33,255,155,255,20,0,121,0,160,0,135,0,61,0,201,255,77,255,251,254,232,254,16,255,85,255,143,255,199,255,21,0, +97,0,148,0,182,0,172,0,74,0,184,255,61,255,228,254,194,254,7,255,156,255,41,0,130,0,171,0,168,0,138,0, +123,0,132,0,139,0,118,0,82,0,61,0,73,0,126,0,225,0,88,1,170,1,174,1,97,1,223,0,99,0,43,0, +68,0,140,0,217,0,248,0,206,0,116,0,4,0,129,255,10,255,201,254,193,254,228,254,38,255,102,255,139,255,151,255, +139,255,112,255,95,255,72,255,28,255,9,255,30,255,43,255,64,255,137,255,201,255,208,255,225,255,5,0,254,255,238,255, +7,0,15,0,237,255,217,255,205,255,178,255,176,255,209,255,252,255,58,0,108,0,82,0,19,0,234,255,211,255,5,0, +181,0,113,1,202,1,224,1,174,1,14,1,109,0,37,0,233,255,159,255,120,255,68,255,6,255,65,255,0,0,215,0, +164,1,30,2,210,1,8,1,92,0,226,255,168,255,231,255,67,0,77,0,54,0,23,0,206,255,162,255,184,255,172,255, +99,255,20,255,161,254,39,254,34,254,101,254,121,254,132,254,162,254,155,254,186,254,95,255,27,0,144,0,229,0,3,1, +210,0,189,0,243,0,44,1,88,1,108,1,34,1,166,0,91,0,38,0,241,255,231,255,201,255,80,255,226,254,197,254, +197,254,237,254,96,255,195,255,225,255,4,0,80,0,186,0,88,1,2,2,93,2,84,2,244,1,75,1,158,0,32,0, +172,255,74,255,54,255,83,255,114,255,186,255,39,0,116,0,164,0,207,0,191,0,84,0,202,255,94,255,43,255,74,255, +177,255,53,0,169,0,233,0,238,0,202,0,125,0,18,0,176,255,88,255,235,254,123,254,51,254,33,254,88,254,225,254, +138,255,19,0,101,0,117,0,70,0,2,0,206,255,175,255,166,255,155,255,115,255,75,255,86,255,161,255,44,0,195,0, +244,0,158,0,9,0,100,255,216,254,180,254,238,254,50,255,128,255,239,255,64,0,95,0,141,0,197,0,224,0,240,0, +236,0,163,0,55,0,235,255,205,255,239,255,82,0,180,0,241,0,20,1,0,1,176,0,108,0,66,0,16,0,0,0, +42,0,75,0,96,0,152,0,199,0,202,0,210,0,220,0,179,0,115,0,57,0,235,255,169,255,172,255,214,255,4,0, +67,0,110,0,93,0,37,0,206,255,71,255,191,254,115,254,103,254,158,254,21,255,155,255,15,0,122,0,199,0,219,0, +190,0,117,0,13,0,193,255,182,255,209,255,251,255,47,0,85,0,104,0,129,0,157,0,149,0,98,0,24,0,198,255, +125,255,80,255,77,255,117,255,194,255,46,0,164,0,226,0,187,0,77,0,201,255,75,255,251,254,231,254,224,254,218,254, +253,254,76,255,158,255,232,255,28,0,48,0,73,0,130,0,180,0,196,0,175,0,113,0,52,0,41,0,50,0,36,0, +21,0,252,255,186,255,121,255,86,255,33,255,234,254,233,254,243,254,220,254,206,254,214,254,226,254,30,255,143,255,223,255, +243,255,229,255,159,255,52,255,243,254,218,254,212,254,23,255,151,255,254,255,70,0,141,0,167,0,159,0,186,0,213,0, +182,0,130,0,77,0,6,0,217,255,227,255,241,255,246,255,14,0,32,0,40,0,95,0,176,0,230,0,15,1,30,1, +214,0,93,0,11,0,222,255,215,255,33,0,142,0,204,0,242,0,27,1,36,1,23,1,26,1,6,1,192,0,119,0, +62,0,255,255,212,255,202,255,179,255,127,255,83,255,52,255,31,255,41,255,58,255,25,255,203,254,120,254,59,254,64,254, +161,254,40,255,162,255,23,0,111,0,142,0,154,0,161,0,102,0,250,255,177,255,133,255,105,255,161,255,31,0,104,0, +98,0,59,0,224,255,111,255,78,255,123,255,164,255,192,255,214,255,208,255,212,255,2,0,33,0,26,0,254,255,177,255, +76,255,54,255,117,255,216,255,124,0,72,1,188,1,211,1,225,1,200,1,133,1,113,1,116,1,58,1,238,0,182,0, +96,0,10,0,241,255,223,255,192,255,209,255,242,255,240,255,2,0,28,0,234,255,153,255,112,255,80,255,70,255,136,255, +207,255,210,255,203,255,213,255,212,255,243,255,52,0,74,0,56,0,47,0,9,0,199,255,169,255,153,255,127,255,162,255, +1,0,71,0,120,0,173,0,170,0,109,0,63,0,23,0,222,255,205,255,239,255,15,0,42,0,63,0,38,0,230,255, +172,255,124,255,90,255,96,255,129,255,173,255,251,255,111,0,241,0,119,1,230,1,18,2,247,1,167,1,37,1,140,0, +13,0,184,255,150,255,176,255,236,255,25,0,46,0,51,0,27,0,223,255,136,255,33,255,190,254,128,254,128,254,188,254, +20,255,106,255,195,255,23,0,68,0,61,0,16,0,185,255,63,255,219,254,173,254,157,254,175,254,241,254,66,255,133,255, +190,255,225,255,220,255,189,255,145,255,88,255,44,255,31,255,39,255,80,255,162,255,245,255,66,0,162,0,244,0,25,1, +45,1,50,1,6,1,199,0,155,0,109,0,89,0,150,0,7,1,111,1,181,1,163,1,31,1,129,0,17,0,193,255, +160,255,185,255,210,255,233,255,58,0,170,0,250,0,58,1,84,1,6,1,120,0,239,255,119,255,62,255,114,255,202,255, +251,255,15,0,254,255,207,255,209,255,17,0,69,0,97,0,106,0,43,0,181,255,95,255,37,255,239,254,230,254,249,254, +241,254,240,254,25,255,61,255,84,255,118,255,133,255,123,255,140,255,185,255,228,255,35,0,113,0,153,0,154,0,138,0, +86,0,15,0,228,255,208,255,187,255,186,255,207,255,229,255,15,0,87,0,151,0,181,0,176,0,130,0,56,0,255,255, +232,255,221,255,208,255,210,255,243,255,60,0,172,0,30,1,88,1,78,1,36,1,243,0,195,0,172,0,172,0,162,0, +142,0,129,0,94,0,30,0,238,255,204,255,158,255,129,255,125,255,115,255,124,255,177,255,214,255,208,255,197,255,165,255, +102,255,77,255,98,255,108,255,123,255,147,255,121,255,62,255,39,255,34,255,43,255,112,255,191,255,208,255,199,255,178,255, +105,255,39,255,53,255,92,255,129,255,208,255,33,0,67,0,102,0,148,0,148,0,115,0,80,0,22,0,218,255,205,255, +222,255,254,255,60,0,110,0,108,0,88,0,73,0,49,0,48,0,88,0,121,0,130,0,143,0,150,0,136,0,126,0, +127,0,124,0,131,0,164,0,198,0,214,0,213,0,182,0,117,0,47,0,246,255,192,255,134,255,84,255,48,255,26,255, +27,255,55,255,89,255,114,255,136,255,161,255,176,255,169,255,133,255,69,255,252,254,188,254,145,254,133,254,156,254,206,254, +25,255,126,255,228,255,46,0,82,0,75,0,31,0,231,255,188,255,183,255,228,255,43,0,102,0,141,0,155,0,132,0, +102,0,105,0,123,0,111,0,79,0,35,0,214,255,128,255,97,255,112,255,129,255,171,255,252,255,72,0,136,0,217,0, +24,1,33,1,25,1,11,1,226,0,195,0,215,0,8,1,79,1,175,1,236,1,222,1,167,1,86,1,227,0,116,0, +18,0,162,255,56,255,238,254,191,254,196,254,9,255,96,255,170,255,223,255,212,255,145,255,87,255,45,255,1,255,246,254, +16,255,51,255,118,255,222,255,59,0,142,0,226,0,6,1,248,0,223,0,157,0,63,0,21,0,8,0,214,255,181,255, +190,255,192,255,217,255,31,0,59,0,25,0,247,255,190,255,105,255,65,255,56,255,53,255,123,255,245,255,68,0,140,0, +245,0,55,1,100,1,179,1,215,1,176,1,151,1,129,1,75,1,59,1,80,1,74,1,80,1,100,1,46,1,215,0, +156,0,46,0,137,255,252,254,93,254,165,253,94,253,151,253,5,254,202,254,191,255,75,0,107,0,90,0,246,255,142,255, +160,255,219,255,228,255,243,255,229,255,137,255,88,255,117,255,104,255,51,255,252,254,111,254,172,253,60,253,33,253,88,253, +27,254,252,254,110,255,160,255,182,255,144,255,148,255,245,255,56,0,66,0,87,0,76,0,27,0,37,0,91,0,130,0, +196,0,6,1,247,0,203,0,180,0,128,0,79,0,81,0,58,0,249,255,223,255,234,255,254,255,69,0,170,0,228,0, +251,0,250,0,200,0,137,0,105,0,75,0,51,0,58,0,53,0,11,0,231,255,210,255,194,255,207,255,244,255,1,0, +237,255,196,255,146,255,118,255,131,255,163,255,207,255,252,255,17,0,16,0,14,0,12,0,7,0,255,255,226,255,166,255, +89,255,9,255,210,254,210,254,248,254,42,255,99,255,142,255,145,255,129,255,110,255,84,255,68,255,75,255,88,255,112,255, +165,255,232,255,55,0,153,0,234,0,21,1,48,1,54,1,23,1,241,0,204,0,152,0,103,0,68,0,19,0,219,255, +177,255,143,255,135,255,173,255,223,255,255,255,27,0,33,0,8,0,243,255,231,255,212,255,215,255,249,255,27,0,66,0, +106,0,112,0,97,0,95,0,81,0,51,0,33,0,6,0,220,255,209,255,219,255,214,255,218,255,228,255,207,255,175,255, +150,255,101,255,49,255,45,255,64,255,79,255,108,255,118,255,87,255,77,255,112,255,152,255,204,255,4,0,2,0,210,255, +168,255,126,255,99,255,143,255,231,255,54,0,137,0,202,0,213,0,223,0,11,1,47,1,63,1,65,1,4,1,148,0, +69,0,37,0,42,0,110,0,198,0,238,0,245,0,243,0,210,0,179,0,177,0,153,0,88,0,20,0,206,255,148,255, +164,255,244,255,69,0,140,0,181,0,146,0,68,0,2,0,198,255,154,255,155,255,161,255,143,255,134,255,134,255,128,255, +144,255,180,255,190,255,185,255,185,255,167,255,138,255,125,255,110,255,92,255,104,255,137,255,158,255,170,255,164,255,123,255, +80,255,62,255,49,255,37,255,32,255,17,255,251,254,2,255,43,255,108,255,202,255,47,0,113,0,137,0,128,0,95,0, +69,0,79,0,106,0,122,0,113,0,69,0,7,0,224,255,232,255,19,0,81,0,135,0,157,0,144,0,114,0,80,0, +59,0,63,0,88,0,122,0,152,0,166,0,166,0,163,0,168,0,185,0,203,0,204,0,176,0,123,0,65,0,21,0, +1,0,7,0,26,0,46,0,61,0,67,0,57,0,31,0,252,255,208,255,163,255,129,255,110,255,112,255,145,255,202,255, +5,0,47,0,60,0,33,0,241,255,202,255,177,255,158,255,139,255,104,255,51,255,5,255,250,254,22,255,97,255,214,255, +83,0,187,0,1,1,17,1,231,0,161,0,93,0,42,0,30,0,63,0,111,0,154,0,184,0,181,0,140,0,88,0, +45,0,11,0,2,0,13,0,14,0,6,0,9,0,25,0,56,0,110,0,157,0,161,0,130,0,83,0,27,0,248,255, +254,255,20,0,41,0,71,0,97,0,108,0,120,0,125,0,94,0,32,0,214,255,129,255,58,255,41,255,61,255,87,255, +109,255,110,255,77,255,53,255,76,255,134,255,213,255,39,0,78,0,58,0,21,0,244,255,217,255,215,255,233,255,231,255, +211,255,203,255,200,255,208,255,248,255,38,0,58,0,65,0,70,0,65,0,76,0,123,0,172,0,205,0,230,0,233,0, +205,0,181,0,167,0,144,0,126,0,127,0,123,0,117,0,118,0,106,0,78,0,63,0,65,0,71,0,94,0,120,0, +108,0,62,0,11,0,211,255,168,255,170,255,195,255,212,255,240,255,26,0,59,0,93,0,124,0,121,0,91,0,54,0, +236,255,124,255,24,255,219,254,201,254,240,254,55,255,104,255,131,255,153,255,158,255,160,255,182,255,192,255,168,255,146,255, +136,255,122,255,117,255,129,255,144,255,182,255,252,255,46,0,47,0,27,0,239,255,165,255,106,255,89,255,102,255,146,255, +200,255,207,255,176,255,158,255,159,255,188,255,27,0,170,0,39,1,128,1,169,1,149,1,103,1,67,1,15,1,205,0, +157,0,106,0,21,0,190,255,115,255,28,255,197,254,135,254,101,254,140,254,23,255,194,255,78,0,186,0,234,0,180,0, +54,0,166,255,35,255,226,254,237,254,4,255,29,255,111,255,2,0,178,0,84,1,107,1,94,0,27,254,26,251,11,248, +207,245,26,245,15,246,140,248,65,252,74,0,131,3,83,5,193,5,63,5,137,4,23,4,201,3,100,3,229,2,77,2, +212,1,241,1,182,2,186,3,169,4,88,5,175,5,206,5,207,5,94,5,30,4,19,2,101,255,124,252,27,250,187,248, +58,248,95,248,46,249,206,250,138,253,80,1,49,5,3,8,66,9,252,8,142,7,145,5,86,3,200,0,251,253,85,251, +53,249,245,247,198,247,86,248,39,249,32,250,48,251,6,252,112,252,111,252,31,252,240,251,89,252,86,253,183,254,131,0, +167,2,221,4,250,6,171,8,97,9,215,8,52,7,206,4,59,2,13,0,69,254,162,252,67,251,113,250,83,250,10,251, +118,252,28,254,170,255,14,1,42,2,254,2,194,3,126,4,27,5,194,5,136,6,17,7,243,6,240,5,8,4,193,1, +217,255,119,254,78,253,58,252,55,251,93,250,7,250,105,250,58,251,17,252,178,252,252,252,57,253,4,254,138,255,109,1, +75,3,194,4,103,5,37,5,23,4,76,2,15,0,232,253,42,252,12,251,216,250,117,251,103,252,102,253,99,254,79,255, +51,0,12,1,143,1,158,1,121,1,57,1,194,0,47,0,161,255,39,255,0,255,96,255,33,0,16,1,16,2,216,2, +65,3,109,3,75,3,143,2,65,1,193,255,120,254,214,253,17,254,212,254,197,255,215,0,232,1,186,2,66,3,110,3, +21,3,100,2,199,1,118,1,115,1,139,1,70,1,107,0,97,255,144,254,0,254,162,253,88,253,231,252,86,252,243,251, +219,251,254,251,75,252,128,252,113,252,106,252,209,252,171,253,220,254,78,0,205,1,57,3,141,4,137,5,214,5,90,5, +15,4,253,1,159,255,157,253,49,252,74,251,219,250,199,250,5,251,185,251,220,252,47,254,150,255,1,1,43,2,232,2, +62,3,49,3,205,2,76,2,209,1,84,1,223,0,116,0,21,0,6,0,140,0,110,1,45,2,109,2,5,2,15,1, +237,255,244,254,60,254,226,253,8,254,158,254,139,255,185,0,217,1,135,2,167,2,91,2,211,1,57,1,152,0,213,255, +231,254,227,253,215,252,219,251,35,251,197,250,191,250,38,251,11,252,83,253,217,254,118,0,244,1,52,3,55,4,226,4, +252,4,126,4,151,3,129,2,106,1,111,0,157,255,250,254,128,254,41,254,253,253,7,254,50,254,89,254,114,254,133,254, +162,254,216,254,47,255,161,255,45,0,224,0,188,1,168,2,124,3,17,4,75,4,27,4,152,3,249,2,96,2,205,1, +55,1,160,0,18,0,145,255,17,255,125,254,202,253,7,253,84,252,208,251,143,251,153,251,251,251,185,252,203,253,21,255, +96,0,104,1,5,2,56,2,31,2,212,1,109,1,1,1,159,0,78,0,21,0,251,255,249,255,253,255,247,255,225,255, +181,255,113,255,20,255,156,254,15,254,144,253,81,253,107,253,202,253,81,254,243,254,177,255,137,0,120,1,100,2,21,3, +75,3,248,2,61,2,79,1,84,0,101,255,146,254,230,253,122,253,101,253,170,253,58,254,11,255,29,0,95,1,172,2, +226,3,238,4,181,5,16,6,227,5,38,5,227,3,55,2,93,0,155,254,45,253,61,252,216,251,236,251,86,252,244,252, +174,253,100,254,243,254,72,255,103,255,105,255,120,255,190,255,79,0,28,1,0,2,209,2,107,3,174,3,130,3,225,2, +218,1,145,0,63,255,10,254,2,253,34,252,109,251,237,250,175,250,201,250,77,251,57,252,112,253,201,254,22,0,36,1, +207,1,21,2,11,2,199,1,95,1,241,0,145,0,69,0,15,0,243,255,235,255,224,255,195,255,149,255,98,255,64,255, +80,255,159,255,19,0,125,0,194,0,231,0,250,0,8,1,18,1,18,1,253,0,220,0,204,0,224,0,13,1,56,1, +73,1,41,1,206,0,69,0,178,255,49,255,211,254,159,254,146,254,154,254,166,254,188,254,235,254,60,255,158,255,246,255, +34,0,22,0,228,255,176,255,148,255,140,255,130,255,92,255,13,255,163,254,68,254,15,254,0,254,255,253,247,253,234,253, +233,253,11,254,88,254,199,254,76,255,232,255,162,0,122,1,104,2,86,3,27,4,134,4,122,4,253,3,46,3,58,2, +95,1,213,0,174,0,211,0,22,1,68,1,53,1,217,0,66,0,142,255,214,254,45,254,176,253,118,253,150,253,38,254, +41,255,113,0,176,1,172,2,82,3,162,3,161,3,100,3,254,2,118,2,207,1,18,1,73,0,115,255,144,254,174,253, +224,252,47,252,157,251,39,251,208,250,172,250,225,250,141,251,154,252,198,253,207,254,152,255,39,0,150,0,2,1,107,1, +182,1,201,1,166,1,106,1,53,1,21,1,3,1,242,0,223,0,209,0,204,0,198,0,183,0,168,0,176,0,222,0, +52,1,156,1,237,1,8,2,230,1,154,1,53,1,192,0,64,0,185,255,47,255,169,254,49,254,202,253,120,253,76,253, +92,253,169,253,34,254,175,254,68,255,214,255,105,0,5,1,165,1,35,2,89,2,73,2,18,2,218,1,179,1,155,1, +122,1,42,1,157,0,230,255,34,255,107,254,211,253,95,253,6,253,196,252,174,252,225,252,91,253,11,254,214,254,161,255, +72,0,177,0,220,0,222,0,205,0,196,0,218,0,30,1,132,1,241,1,66,2,95,2,60,2,229,1,100,1,189,0, +248,255,47,255,129,254,251,253,157,253,100,253,80,253,102,253,173,253,40,254,202,254,124,255,37,0,184,0,57,1,182,1, +58,2,187,2,31,3,87,3,103,3,91,3,52,3,238,2,128,2,229,1,39,1,97,0,176,255,33,255,193,254,155,254, +172,254,227,254,44,255,119,255,184,255,237,255,35,0,103,0,176,0,230,0,255,0,0,1,241,0,218,0,186,0,132,0, +41,0,171,255,42,255,197,254,139,254,128,254,161,254,221,254,27,255,73,255,104,255,123,255,129,255,127,255,125,255,127,255, +136,255,159,255,193,255,222,255,234,255,235,255,231,255,217,255,184,255,138,255,91,255,58,255,50,255,72,255,120,255,177,255, +228,255,10,0,47,0,105,0,212,0,112,1,32,2,188,2,40,3,86,3,70,3,4,3,162,2,42,2,160,1,8,1, +109,0,229,255,129,255,75,255,54,255,49,255,47,255,35,255,1,255,204,254,155,254,132,254,127,254,113,254,80,254,40,254, +22,254,48,254,125,254,237,254,96,255,188,255,246,255,6,0,242,255,204,255,160,255,102,255,21,255,183,254,97,254,31,254, +246,253,233,253,248,253,25,254,68,254,128,254,208,254,48,255,157,255,28,0,167,0,38,1,129,1,170,1,165,1,133,1, +102,1,87,1,72,1,33,1,220,0,134,0,58,0,15,0,19,0,58,0,98,0,113,0,102,0,77,0,54,0,46,0, +65,0,106,0,152,0,190,0,214,0,229,0,235,0,225,0,191,0,134,0,63,0,239,255,149,255,52,255,220,254,153,254, +101,254,55,254,25,254,43,254,132,254,28,255,207,255,112,0,224,0,25,1,29,1,244,0,169,0,78,0,240,255,153,255, +87,255,58,255,62,255,70,255,62,255,44,255,29,255,20,255,20,255,35,255,62,255,90,255,110,255,126,255,150,255,194,255, +4,0,80,0,146,0,203,0,7,1,75,1,135,1,168,1,174,1,159,1,126,1,85,1,53,1,37,1,24,1,254,0, +210,0,146,0,64,0,240,255,188,255,179,255,215,255,31,0,124,0,217,0,27,1,50,1,29,1,238,0,192,0,174,0, +186,0,219,0,8,1,57,1,93,1,96,1,64,1,9,1,203,0,133,0,46,0,200,255,96,255,16,255,235,254,245,254, +28,255,69,255,88,255,84,255,78,255,85,255,98,255,89,255,45,255,235,254,162,254,89,254,21,254,225,253,199,253,200,253, +221,253,4,254,58,254,134,254,231,254,75,255,162,255,230,255,28,0,69,0,95,0,114,0,142,0,182,0,226,0,14,1, +62,1,110,1,133,1,111,1,42,1,189,0,61,0,205,255,136,255,108,255,101,255,99,255,99,255,112,255,156,255,242,255, +105,0,238,0,116,1,236,1,65,2,96,2,75,2,23,2,216,1,141,1,46,1,188,0,63,0,197,255,93,255,14,255, +200,254,125,254,48,254,240,253,207,253,209,253,237,253,20,254,68,254,127,254,195,254,12,255,89,255,164,255,224,255,252,255, +240,255,197,255,146,255,106,255,78,255,56,255,30,255,250,254,208,254,177,254,174,254,213,254,39,255,136,255,221,255,33,0, +104,0,191,0,46,1,169,1,12,2,51,2,19,2,199,1,123,1,77,1,63,1,59,1,45,1,0,1,181,0,100,0, +44,0,27,0,49,0,92,0,124,0,126,0,116,0,113,0,119,0,128,0,138,0,145,0,153,0,171,0,199,0,229,0, +245,0,226,0,161,0,58,0,187,255,54,255,205,254,148,254,131,254,128,254,123,254,105,254,79,254,68,254,78,254,91,254, +94,254,94,254,99,254,129,254,203,254,63,255,206,255,100,0,229,0,57,1,91,1,78,1,21,1,190,0,98,0,16,0, +211,255,176,255,155,255,130,255,98,255,66,255,40,255,30,255,34,255,38,255,45,255,71,255,121,255,190,255,20,0,121,0, +231,0,94,1,216,1,60,2,119,2,128,2,88,2,9,2,167,1,65,1,229,0,168,0,150,0,164,0,191,0,203,0, +168,0,88,0,4,0,207,255,201,255,241,255,50,0,98,0,103,0,69,0,20,0,235,255,208,255,177,255,120,255,37,255, +201,254,125,254,87,254,85,254,105,254,136,254,169,254,197,254,225,254,13,255,79,255,156,255,229,255,23,0,42,0,41,0, +47,0,79,0,137,0,192,0,199,0,132,0,0,0,88,255,189,254,85,254,41,254,35,254,49,254,80,254,139,254,244,254, +142,255,64,0,232,0,105,1,171,1,177,1,149,1,111,1,89,1,115,1,198,1,53,2,154,2,211,2,199,2,130,2, +39,2,205,1,116,1,19,1,166,0,54,0,214,255,140,255,77,255,27,255,245,254,204,254,157,254,123,254,118,254,148,254, +212,254,37,255,111,255,166,255,198,255,214,255,224,255,228,255,222,255,207,255,182,255,142,255,103,255,89,255,102,255,128,255, +165,255,199,255,203,255,169,255,106,255,21,255,184,254,99,254,24,254,225,253,215,253,15,254,135,254,50,255,245,255,165,0, +33,1,95,1,95,1,45,1,227,0,152,0,100,0,83,0,112,0,188,0,44,1,161,1,255,1,60,2,80,2,55,2, +248,1,151,1,34,1,187,0,124,0,90,0,67,0,43,0,6,0,216,255,183,255,161,255,128,255,90,255,55,255,24,255, +15,255,57,255,139,255,229,255,46,0,83,0,74,0,35,0,243,255,198,255,160,255,134,255,112,255,93,255,87,255,100,255, +135,255,181,255,206,255,182,255,112,255,16,255,169,254,86,254,45,254,39,254,60,254,104,254,166,254,244,254,77,255,158,255, +204,255,203,255,172,255,145,255,159,255,217,255,39,0,110,0,157,0,177,0,183,0,197,0,233,0,31,1,82,1,103,1, +83,1,35,1,240,0,218,0,234,0,7,1,17,1,253,0,214,0,173,0,156,0,171,0,193,0,201,0,194,0,180,0, +173,0,178,0,179,0,159,0,122,0,77,0,31,0,0,0,250,255,5,0,27,0,48,0,44,0,11,0,223,255,175,255, +135,255,122,255,127,255,126,255,120,255,114,255,91,255,54,255,23,255,245,254,197,254,155,254,135,254,132,254,155,254,208,254, +13,255,65,255,103,255,128,255,149,255,185,255,243,255,58,0,133,0,193,0,222,0,223,0,208,0,190,0,179,0,174,0, +173,0,169,0,153,0,117,0,78,0,50,0,24,0,4,0,0,0,0,0,2,0,24,0,70,0,123,0,185,0,246,0, +14,1,250,0,216,0,185,0,163,0,159,0,163,0,150,0,124,0,93,0,56,0,15,0,233,255,192,255,149,255,120,255, +113,255,130,255,160,255,175,255,153,255,104,255,39,255,222,254,163,254,130,254,111,254,100,254,94,254,85,254,85,254,114,254, +166,254,233,254,58,255,134,255,175,255,180,255,160,255,125,255,105,255,124,255,166,255,200,255,226,255,249,255,16,0,56,0, +105,0,134,0,128,0,96,0,51,0,16,0,11,0,30,0,64,0,111,0,151,0,162,0,142,0,99,0,44,0,253,255, +226,255,213,255,216,255,241,255,24,0,72,0,135,0,203,0,255,0,28,1,33,1,13,1,237,0,205,0,175,0,152,0, +136,0,107,0,64,0,24,0,246,255,212,255,177,255,127,255,50,255,227,254,165,254,114,254,78,254,74,254,102,254,154,254, +230,254,50,255,100,255,132,255,155,255,166,255,190,255,244,255,52,0,110,0,170,0,220,0,241,0,250,0,247,0,207,0, +130,0,33,0,179,255,80,255,29,255,22,255,37,255,76,255,132,255,193,255,13,0,105,0,186,0,252,0,51,1,69,1, +47,1,23,1,9,1,8,1,43,1,106,1,151,1,166,1,153,1,102,1,38,1,0,1,226,0,180,0,136,0,94,0, +44,0,24,0,48,0,73,0,78,0,69,0,21,0,194,255,134,255,110,255,94,255,92,255,102,255,96,255,84,255,91,255, +98,255,104,255,133,255,165,255,170,255,164,255,159,255,145,255,147,255,188,255,234,255,5,0,25,0,37,0,39,0,56,0, +77,0,65,0,27,0,226,255,142,255,56,255,6,255,251,254,22,255,86,255,149,255,170,255,161,255,140,255,109,255,86,255, +79,255,74,255,82,255,133,255,225,255,99,0,7,1,165,1,18,2,75,2,82,2,28,2,191,1,92,1,247,0,153,0, +77,0,8,0,203,255,181,255,198,255,230,255,10,0,29,0,249,255,169,255,87,255,23,255,251,254,34,255,124,255,222,255, +55,0,122,0,154,0,160,0,144,0,88,0,1,0,172,255,98,255,54,255,62,255,99,255,120,255,127,255,129,255,106,255, +66,255,32,255,244,254,183,254,127,254,81,254,50,254,69,254,148,254,251,254,110,255,217,255,11,0,254,255,221,255,180,255, +138,255,128,255,153,255,175,255,200,255,244,255,38,0,95,0,173,0,247,0,32,1,52,1,57,1,47,1,49,1,76,1, +103,1,116,1,120,1,105,1,73,1,33,1,227,0,131,0,18,0,156,255,51,255,250,254,252,254,32,255,93,255,176,255, +255,255,61,0,115,0,154,0,165,0,159,0,148,0,137,0,132,0,123,0,94,0,58,0,26,0,246,255,210,255,176,255, +126,255,67,255,23,255,253,254,227,254,200,254,167,254,136,254,131,254,159,254,205,254,17,255,101,255,174,255,238,255,48,0, +85,0,82,0,85,0,101,0,115,0,141,0,174,0,167,0,121,0,74,0,26,0,244,255,248,255,20,0,37,0,54,0, +77,0,90,0,112,0,163,0,210,0,241,0,13,1,26,1,26,1,39,1,52,1,33,1,249,0,198,0,122,0,36,0, +219,255,149,255,92,255,78,255,97,255,129,255,179,255,238,255,32,0,81,0,126,0,142,0,138,0,129,0,107,0,81,0, +68,0,52,0,11,0,217,255,157,255,80,255,3,255,191,254,124,254,62,254,14,254,239,253,240,253,28,254,95,254,175,254, +8,255,85,255,140,255,191,255,232,255,243,255,240,255,245,255,250,255,11,0,56,0,105,0,136,0,167,0,197,0,214,0, +219,0,196,0,117,0,251,255,123,255,10,255,197,254,202,254,16,255,121,255,246,255,109,0,193,0,239,0,8,1,16,1, +19,1,28,1,41,1,57,1,73,1,82,1,79,1,64,1,17,1,185,0,74,0,218,255,118,255,49,255,18,255,3,255, +250,254,8,255,48,255,103,255,166,255,224,255,253,255,247,255,218,255,178,255,135,255,106,255,97,255,96,255,92,255,86,255, +81,255,77,255,77,255,77,255,62,255,20,255,224,254,187,254,178,254,210,254,24,255,108,255,189,255,20,0,113,0,202,0, +34,1,115,1,163,1,163,1,129,1,60,1,212,0,105,0,20,0,201,255,131,255,79,255,46,255,23,255,24,255,56,255, +103,255,155,255,227,255,68,0,184,0,60,1,199,1,70,2,167,2,219,2,219,2,177,2,115,2,42,2,209,1,99,1, +224,0,70,0,167,255,32,255,190,254,128,254,104,254,110,254,122,254,129,254,123,254,94,254,40,254,237,253,191,253,176,253, +207,253,34,254,161,254,71,255,2,0,183,0,79,1,198,1,25,2,77,2,117,2,155,2,192,2,222,2,229,2,190,2, +94,2,205,1,26,1,84,0,148,255,238,254,106,254,22,254,10,254,78,254,204,254,99,255,245,255,98,0,155,0,166,0, +147,0,113,0,89,0,98,0,140,0,203,0,14,1,60,1,68,1,33,1,210,0,101,0,234,255,109,255,245,254,151,254, +98,254,78,254,73,254,73,254,73,254,87,254,137,254,220,254,54,255,138,255,199,255,219,255,212,255,207,255,202,255,188,255, +179,255,181,255,188,255,213,255,2,0,43,0,73,0,105,0,142,0,185,0,251,0,84,1,170,1,236,1,8,2,230,1, +134,1,0,1,101,0,200,255,67,255,228,254,167,254,140,254,157,254,214,254,40,255,129,255,209,255,6,0,18,0,247,255, +200,255,150,255,111,255,92,255,85,255,76,255,80,255,122,255,184,255,244,255,46,0,99,0,138,0,184,0,0,1,78,1, +134,1,150,1,97,1,223,0,46,0,113,255,192,254,61,254,251,253,238,253,15,254,84,254,159,254,221,254,20,255,58,255, +66,255,71,255,106,255,166,255,255,255,128,0,27,1,175,1,43,2,130,2,163,2,151,2,112,2,56,2,248,1,182,1, +111,1,28,1,190,0,84,0,219,255,86,255,210,254,99,254,44,254,59,254,114,254,174,254,227,254,7,255,16,255,15,255, +18,255,19,255,19,255,29,255,45,255,56,255,71,255,96,255,123,255,158,255,216,255,40,0,134,0,235,0,69,1,137,1, +182,1,180,1,112,1,254,0,118,0,214,255,52,255,183,254,97,254,42,254,44,254,106,254,191,254,26,255,111,255,163,255, +174,255,175,255,183,255,201,255,245,255,70,0,173,0,30,1,148,1,250,1,74,2,134,2,162,2,149,2,105,2,34,2, +180,1,39,1,140,0,237,255,86,255,222,254,139,254,92,254,85,254,106,254,135,254,162,254,197,254,232,254,255,254,10,255, +15,255,19,255,27,255,40,255,62,255,96,255,137,255,174,255,202,255,226,255,246,255,13,0,48,0,83,0,100,0,102,0, +92,0,69,0,40,0,25,0,22,0,13,0,254,255,235,255,208,255,179,255,158,255,153,255,170,255,212,255,6,0,46,0, +77,0,88,0,75,0,57,0,52,0,56,0,79,0,133,0,197,0,1,1,67,1,127,1,167,1,197,1,218,1,205,1, +160,1,103,1,34,1,211,0,142,0,78,0,13,0,225,255,205,255,182,255,144,255,90,255,12,255,177,254,97,254,34,254, +3,254,24,254,89,254,173,254,9,255,90,255,141,255,178,255,222,255,16,0,71,0,129,0,169,0,191,0,218,0,245,0, +1,1,1,1,230,0,164,0,81,0,4,0,179,255,102,255,48,255,254,254,203,254,173,254,161,254,151,254,162,254,213,254, +30,255,123,255,240,255,105,0,210,0,42,1,107,1,139,1,151,1,154,1,147,1,136,1,126,1,103,1,66,1,18,1, +212,0,145,0,93,0,61,0,43,0,39,0,41,0,35,0,17,0,244,255,195,255,129,255,58,255,240,254,174,254,141,254, +146,254,173,254,208,254,243,254,8,255,15,255,24,255,46,255,87,255,151,255,231,255,59,0,141,0,211,0,253,0,0,1, +224,0,165,0,80,0,240,255,154,255,88,255,40,255,12,255,251,254,226,254,186,254,147,254,120,254,105,254,111,254,145,254, +199,254,10,255,90,255,180,255,21,0,124,0,222,0,47,1,111,1,158,1,187,1,208,1,231,1,245,1,239,1,207,1, +151,1,78,1,0,1,179,0,102,0,34,0,236,255,187,255,144,255,113,255,82,255,47,255,22,255,11,255,255,254,252,254, +20,255,71,255,142,255,232,255,69,0,143,0,197,0,242,0,17,1,34,1,41,1,30,1,0,1,223,0,182,0,122,0, +48,0,222,255,129,255,37,255,227,254,183,254,151,254,136,254,140,254,152,254,177,254,215,254,254,254,40,255,89,255,140,255, +183,255,221,255,250,255,14,0,38,0,71,0,115,0,174,0,242,0,44,1,89,1,122,1,127,1,101,1,56,1,244,0, +153,0,70,0,18,0,248,255,251,255,26,0,64,0,93,0,116,0,127,0,112,0,73,0,17,0,207,255,144,255,96,255, +72,255,86,255,136,255,202,255,24,0,111,0,191,0,248,0,29,1,40,1,20,1,239,0,190,0,126,0,57,0,253,255, +205,255,166,255,128,255,86,255,42,255,3,255,217,254,165,254,115,254,70,254,23,254,245,253,239,253,5,254,53,254,124,254, +204,254,18,255,79,255,139,255,199,255,7,0,76,0,146,0,211,0,9,1,46,1,61,1,41,1,235,0,145,0,51,0, +224,255,171,255,160,255,178,255,207,255,247,255,36,0,66,0,75,0,70,0,53,0,24,0,251,255,233,255,230,255,242,255, +13,0,51,0,91,0,123,0,142,0,158,0,177,0,192,0,205,0,217,0,223,0,220,0,217,0,212,0,198,0,169,0, +126,0,72,0,15,0,218,255,167,255,121,255,83,255,50,255,25,255,13,255,5,255,250,254,240,254,223,254,194,254,172,254, +174,254,196,254,236,254,41,255,104,255,152,255,196,255,240,255,18,0,43,0,67,0,81,0,84,0,78,0,59,0,21,0, +233,255,190,255,152,255,134,255,136,255,148,255,166,255,182,255,176,255,150,255,125,255,106,255,96,255,112,255,156,255,215,255, +35,0,128,0,218,0,44,1,123,1,185,1,217,1,229,1,232,1,223,1,205,1,176,1,128,1,71,1,14,1,206,0, +141,0,86,0,30,0,224,255,174,255,135,255,99,255,84,255,101,255,129,255,160,255,189,255,200,255,182,255,154,255,124,255, +90,255,65,255,56,255,61,255,89,255,141,255,201,255,1,0,50,0,81,0,89,0,79,0,48,0,254,255,207,255,174,255, +149,255,133,255,132,255,135,255,136,255,141,255,149,255,149,255,136,255,112,255,79,255,39,255,3,255,251,254,29,255,98,255, +185,255,23,0,103,0,157,0,199,0,248,0,52,1,113,1,166,1,204,1,232,1,4,2,30,2,45,2,37,2,251,1, +180,1,91,1,245,0,140,0,53,0,244,255,188,255,143,255,112,255,84,255,60,255,47,255,35,255,12,255,245,254,228,254, +215,254,217,254,241,254,28,255,86,255,153,255,210,255,254,255,29,0,35,0,22,0,14,0,10,0,250,255,230,255,209,255, +171,255,121,255,80,255,44,255,15,255,4,255,5,255,10,255,24,255,45,255,62,255,81,255,104,255,121,255,132,255,138,255, +136,255,142,255,182,255,246,255,58,0,122,0,172,0,199,0,220,0,251,0,28,1,56,1,74,1,71,1,43,1,3,1, +223,0,196,0,181,0,170,0,154,0,130,0,96,0,53,0,15,0,243,255,211,255,167,255,122,255,85,255,64,255,67,255, +92,255,132,255,180,255,230,255,18,0,50,0,67,0,76,0,83,0,88,0,87,0,77,0,54,0,20,0,243,255,217,255, +193,255,165,255,128,255,76,255,17,255,221,254,181,254,157,254,152,254,160,254,172,254,190,254,205,254,213,254,232,254,14,255, +62,255,113,255,170,255,226,255,28,0,99,0,173,0,234,0,30,1,70,1,87,1,83,1,61,1,19,1,229,0,194,0, +161,0,125,0,102,0,91,0,85,0,93,0,115,0,132,0,138,0,133,0,107,0,76,0,63,0,65,0,82,0,120,0, +167,0,204,0,229,0,239,0,227,0,209,0,195,0,174,0,146,0,122,0,94,0,62,0,39,0,20,0,245,255,200,255, +142,255,71,255,7,255,220,254,201,254,206,254,232,254,9,255,36,255,55,255,58,255,51,255,49,255,50,255,42,255,29,255, +23,255,27,255,45,255,82,255,127,255,170,255,203,255,221,255,229,255,236,255,241,255,250,255,15,0,40,0,61,0,76,0, +84,0,86,0,95,0,111,0,118,0,110,0,90,0,59,0,26,0,4,0,254,255,6,0,32,0,69,0,110,0,156,0, +199,0,229,0,248,0,0,1,240,0,207,0,173,0,140,0,119,0,127,0,154,0,172,0,172,0,153,0,107,0,41,0, +221,255,136,255,53,255,247,254,204,254,180,254,183,254,206,254,238,254,24,255,69,255,94,255,104,255,111,255,113,255,111,255, +114,255,118,255,121,255,134,255,154,255,165,255,172,255,187,255,202,255,218,255,237,255,251,255,250,255,238,255,216,255,192,255, +183,255,187,255,187,255,182,255,178,255,177,255,185,255,212,255,248,255,23,0,51,0,76,0,93,0,112,0,141,0,170,0, +189,0,196,0,191,0,180,0,181,0,200,0,234,0,21,1,61,1,80,1,73,1,49,1,12,1,217,0,152,0,75,0, +253,255,191,255,149,255,123,255,114,255,120,255,124,255,115,255,98,255,74,255,50,255,36,255,38,255,47,255,55,255,60,255, +62,255,64,255,67,255,70,255,69,255,68,255,73,255,91,255,127,255,175,255,221,255,2,0,25,0,27,0,10,0,238,255, +199,255,155,255,118,255,97,255,89,255,95,255,112,255,133,255,152,255,170,255,190,255,212,255,238,255,13,0,51,0,89,0, +121,0,157,0,204,0,247,0,18,1,30,1,32,1,30,1,34,1,45,1,52,1,48,1,34,1,16,1,2,1,252,0, +249,0,245,0,237,0,214,0,177,0,137,0,97,0,52,0,9,0,223,255,175,255,130,255,101,255,83,255,69,255,68,255, +79,255,91,255,106,255,131,255,160,255,194,255,229,255,255,255,13,0,19,0,13,0,4,0,0,0,255,255,253,255,3,0, +8,0,245,255,205,255,157,255,98,255,30,255,233,254,201,254,185,254,189,254,215,254,2,255,59,255,122,255,176,255,217,255, +247,255,8,0,18,0,37,0,72,0,128,0,206,0,27,1,78,1,104,1,116,1,107,1,79,1,46,1,2,1,200,0, +146,0,108,0,89,0,89,0,98,0,95,0,63,0,4,0,185,255,116,255,67,255,39,255,31,255,45,255,70,255,98,255, +143,255,207,255,15,0,65,0,94,0,97,0,78,0,51,0,27,0,5,0,240,255,221,255,205,255,193,255,185,255,178,255, +169,255,154,255,126,255,85,255,35,255,240,254,201,254,184,254,186,254,199,254,217,254,237,254,250,254,251,254,247,254,248,254, +5,255,36,255,89,255,159,255,237,255,59,0,134,0,201,0,255,0,38,1,65,1,79,1,77,1,65,1,49,1,33,1, +14,1,246,0,213,0,171,0,124,0,85,0,59,0,46,0,42,0,37,0,29,0,18,0,3,0,244,255,236,255,238,255, +245,255,254,255,8,0,21,0,40,0,64,0,87,0,104,0,115,0,114,0,101,0,85,0,72,0,60,0,46,0,28,0, +0,0,214,255,160,255,97,255,35,255,245,254,216,254,197,254,190,254,198,254,216,254,240,254,12,255,36,255,55,255,75,255, +99,255,130,255,176,255,235,255,38,0,88,0,118,0,121,0,110,0,97,0,83,0,75,0,91,0,126,0,164,0,202,0, +237,0,4,1,15,1,13,1,250,0,219,0,186,0,149,0,106,0,64,0,23,0,236,255,200,255,174,255,163,255,179,255, +228,255,37,0,104,0,163,0,200,0,211,0,209,0,198,0,179,0,160,0,150,0,145,0,145,0,150,0,154,0,146,0, +120,0,67,0,251,255,177,255,111,255,58,255,25,255,9,255,1,255,2,255,13,255,25,255,32,255,36,255,39,255,41,255, +46,255,59,255,81,255,113,255,156,255,204,255,253,255,40,0,71,0,90,0,106,0,122,0,138,0,152,0,160,0,156,0, +140,0,113,0,79,0,52,0,36,0,24,0,4,0,229,255,191,255,149,255,106,255,66,255,37,255,23,255,33,255,75,255, +150,255,247,255,90,0,171,0,216,0,221,0,192,0,145,0,101,0,75,0,78,0,111,0,166,0,228,0,28,1,71,1, +97,1,106,1,106,1,103,1,94,1,77,1,45,1,246,0,168,0,67,0,197,255,56,255,177,254,65,254,241,253,204,253, +217,253,18,254,103,254,193,254,14,255,78,255,127,255,160,255,184,255,209,255,232,255,248,255,0,0,248,255,227,255,204,255, +184,255,157,255,124,255,90,255,51,255,15,255,249,254,241,254,241,254,244,254,237,254,215,254,198,254,205,254,250,254,81,255, +192,255,45,0,146,0,237,0,48,1,90,1,115,1,113,1,80,1,38,1,4,1,240,0,248,0,30,1,78,1,123,1, +157,1,174,1,183,1,192,1,191,1,168,1,124,1,44,1,183,0,53,0,183,255,61,255,223,254,174,254,161,254,178,254, +224,254,16,255,47,255,66,255,71,255,54,255,29,255,6,255,245,254,249,254,16,255,43,255,71,255,103,255,120,255,119,255, +116,255,115,255,121,255,154,255,210,255,7,0,55,0,95,0,104,0,77,0,22,0,198,255,100,255,4,255,180,254,129,254, +128,254,174,254,249,254,84,255,178,255,2,0,75,0,151,0,223,0,40,1,121,1,196,1,1,2,58,2,109,2,136,2, +139,2,124,2,87,2,36,2,238,1,188,1,147,1,109,1,51,1,222,0,117,0,253,255,130,255,34,255,233,254,211,254, +231,254,32,255,97,255,148,255,180,255,189,255,176,255,152,255,127,255,111,255,103,255,93,255,75,255,56,255,35,255,9,255, +244,254,239,254,249,254,14,255,50,255,101,255,161,255,220,255,5,0,15,0,247,255,195,255,125,255,53,255,245,254,200,254, +181,254,190,254,216,254,253,254,45,255,97,255,139,255,164,255,184,255,212,255,250,255,51,0,134,0,239,0,100,1,220,1, +67,2,132,2,157,2,143,2,94,2,41,2,255,1,200,1,131,1,65,1,244,0,141,0,49,0,226,255,136,255,56,255, +12,255,240,254,234,254,15,255,54,255,54,255,37,255,16,255,242,254,236,254,14,255,66,255,141,255,244,255,71,0,95,0, +82,0,54,0,10,0,210,255,153,255,112,255,103,255,120,255,141,255,132,255,61,255,201,254,91,254,13,254,251,253,76,254, +208,254,43,255,79,255,88,255,76,255,88,255,150,255,206,255,232,255,20,0,51,0,12,0,208,255,197,255,254,255,159,0, +155,1,117,2,214,2,212,2,139,2,32,2,221,1,230,1,21,2,46,2,6,2,142,1,226,0,35,0,104,255,197,254, +73,254,38,254,146,254,84,255,7,0,155,0,2,1,3,1,198,0,139,0,52,0,234,255,11,0,62,0,14,0,215,255, +218,255,224,255,21,0,140,0,167,0,68,0,237,255,153,255,39,255,18,255,76,255,35,255,151,254,17,254,128,253,13,253, +29,253,95,253,105,253,133,253,204,253,198,253,90,253,231,252,207,252,82,253,169,254,174,0,205,2,158,4,247,5,118,6, +120,5,232,2,73,255,81,251,136,248,12,249,117,253,100,4,200,11,222,16,30,17,187,12,233,5,84,254,162,247,162,243, +135,242,201,243,174,247,141,253,148,3,226,8,169,12,38,13,9,10,217,4,154,254,71,248,167,243,138,241,186,241,152,244, +24,250,198,0,57,7,112,12,31,15,168,14,145,11,109,6,82,0,126,251,123,249,248,249,84,252,15,0,200,3,35,6, +203,6,114,5,197,1,126,252,178,246,49,241,81,237,80,236,105,238,176,243,104,251,196,2,120,7,153,9,76,9,187,6, +176,3,92,1,44,255,106,253,226,252,68,253,242,254,160,2,242,6,137,10,43,13,83,13,11,10,109,5,226,0,254,251, +243,247,18,246,138,245,111,246,163,249,241,253,26,2,33,6,215,8,1,9,37,7,76,3,136,253,45,248,54,245,136,244, +64,246,74,250,15,255,82,3,136,6,193,7,240,6,37,5,247,2,254,0,13,0,32,0,41,1,112,3,60,6,126,8, +227,9,245,9,135,8,32,6,100,2,233,252,5,247,38,242,215,238,22,238,33,240,155,243,216,247,127,252,74,0,9,3, +92,5,92,6,120,5,145,3,144,0,206,252,253,250,121,252,252,255,136,4,204,8,154,10,220,9,189,7,74,4,100,0, +156,253,128,251,162,249,48,249,25,250,187,251,25,255,255,3,243,7,183,9,60,9,42,6,136,1,65,253,231,249,220,247, +222,247,60,249,250,250,74,253,235,255,18,2,234,3,80,5,26,5,51,3,195,0,142,254,31,253,252,252,253,253,191,255, +36,2,195,4,249,6,84,8,93,8,206,6,227,3,7,0,197,251,18,248,221,245,140,245,232,246,80,249,41,252,11,255, +93,1,143,2,145,2,111,1,95,255,84,253,53,252,1,252,184,252,129,254,197,0,185,2,32,4,173,4,44,4,35,3, +204,1,234,255,239,253,121,252,140,251,149,251,15,253,60,255,80,1,96,3,1,5,128,5,56,5,131,4,41,3,140,1, +47,0,225,254,237,253,251,253,200,254,234,255,106,1,172,2,1,3,173,2,220,1,92,0,185,254,162,253,47,253,140,253, +216,254,138,0,23,2,62,3,168,3,55,3,49,2,216,0,87,255,249,253,240,252,91,252,65,252,128,252,47,253,65,254, +71,255,20,0,165,0,155,0,5,0,117,255,239,254,109,254,106,254,202,254,6,255,100,255,253,255,64,0,90,0,178,0, +188,0,93,0,36,0,193,255,240,254,109,254,84,254,60,254,162,254,169,255,130,0,35,1,211,1,4,2,181,1,155,1, +147,1,95,1,131,1,238,1,31,2,89,2,182,2,170,2,55,2,162,1,177,0,138,255,192,254,97,254,78,254,163,254, +40,255,128,255,183,255,226,255,243,255,248,255,243,255,196,255,107,255,3,255,183,254,192,254,35,255,192,255,125,0,21,1, +74,1,63,1,7,1,140,0,4,0,151,255,26,255,175,254,163,254,208,254,27,255,168,255,36,0,44,0,233,255,92,255, +94,254,77,253,129,252,224,251,154,251,249,251,194,252,192,253,2,255,51,0,238,0,75,1,76,1,219,0,76,0,246,255, +218,255,27,0,221,0,228,1,245,2,251,3,187,4,252,4,202,4,47,4,49,3,2,2,219,0,221,255,51,255,249,254, +37,255,148,255,23,0,113,0,109,0,245,255,13,255,222,253,162,252,170,251,62,251,135,251,133,252,18,254,226,255,157,1, +238,2,155,3,142,3,224,2,202,1,153,0,155,255,9,255,252,254,102,255,27,0,218,0,97,1,124,1,18,1,41,0, +233,254,140,253,87,252,136,251,74,251,174,251,163,252,252,253,124,255,220,0,222,1,86,2,57,2,154,1,169,0,169,255, +224,254,135,254,189,254,127,255,167,0,246,1,34,3,233,3,35,4,198,3,239,2,214,1,194,0,246,255,160,255,207,255, +110,0,76,1,40,2,193,2,230,2,128,2,153,1,87,0,244,254,178,253,204,252,104,252,151,252,77,253,103,254,176,255, +241,0,245,1,151,2,196,2,132,2,241,1,55,1,132,0,3,0,207,255,239,255,80,0,205,0,53,1,88,1,21,1, +96,0,74,255,252,253,176,252,165,251,14,251,11,251,154,251,160,252,233,253,51,255,66,0,232,0,16,1,192,0,26,0, +80,255,154,254,40,254,27,254,121,254,49,255,28,0,9,1,197,1,42,2,37,2,189,1,13,1,68,0,149,255,48,255, +47,255,152,255,85,0,59,1,19,2,169,2,213,2,136,2,202,1,200,0,189,255,222,254,88,254,66,254,158,254,86,255, +67,0,56,1,4,2,131,2,164,2,100,2,218,1,39,1,109,0,205,255,93,255,28,255,4,255,9,255,13,255,252,254, +205,254,121,254,2,254,132,253,20,253,195,252,180,252,245,252,122,253,59,254,36,255,8,0,204,0,100,1,182,1,188,1, +141,1,51,1,185,0,65,0,220,255,137,255,95,255,102,255,137,255,185,255,241,255,23,0,35,0,39,0,41,0,43,0, +65,0,112,0,171,0,240,0,60,1,131,1,188,1,224,1,225,1,173,1,67,1,184,0,36,0,158,255,65,255,28,255, +33,255,75,255,155,255,248,255,78,0,166,0,239,0,16,1,20,1,3,1,208,0,155,0,135,0,126,0,121,0,129,0, +119,0,64,0,246,255,150,255,16,255,143,254,44,254,218,253,177,253,199,253,0,254,89,254,225,254,108,255,218,255,49,0, +90,0,70,0,27,0,235,255,183,255,164,255,193,255,240,255,45,0,113,0,157,0,181,0,200,0,194,0,157,0,110,0, +48,0,241,255,213,255,222,255,251,255,51,0,111,0,134,0,130,0,113,0,73,0,32,0,11,0,246,255,221,255,210,255, +211,255,226,255,17,0,84,0,142,0,187,0,215,0,217,0,205,0,202,0,209,0,224,0,245,0,2,1,251,0,227,0, +197,0,159,0,110,0,51,0,244,255,178,255,118,255,76,255,50,255,36,255,48,255,79,255,105,255,118,255,114,255,85,255, +48,255,32,255,36,255,56,255,101,255,162,255,218,255,16,0,58,0,70,0,55,0,27,0,231,255,156,255,74,255,246,254, +170,254,124,254,118,254,146,254,206,254,41,255,146,255,248,255,80,0,140,0,156,0,127,0,67,0,251,255,196,255,192,255, +253,255,102,0,220,0,56,1,90,1,57,1,236,0,133,0,23,0,183,255,118,255,88,255,102,255,162,255,253,255,98,0, +194,0,11,1,48,1,47,1,15,1,210,0,132,0,64,0,21,0,6,0,19,0,52,0,82,0,101,0,111,0,102,0, +62,0,1,0,190,255,128,255,99,255,116,255,153,255,187,255,211,255,205,255,163,255,103,255,25,255,177,254,68,254,231,253, +157,253,123,253,147,253,211,253,47,254,165,254,32,255,138,255,234,255,61,0,115,0,153,0,193,0,230,0,20,1,89,1, +159,1,209,1,238,1,233,1,182,1,108,1,21,1,169,0,60,0,227,255,150,255,92,255,65,255,52,255,43,255,55,255, +86,255,117,255,152,255,189,255,217,255,251,255,56,0,127,0,192,0,255,0,45,1,65,1,74,1,68,1,22,1,201,0, +114,0,21,0,197,255,147,255,103,255,51,255,5,255,225,254,197,254,198,254,232,254,20,255,70,255,132,255,183,255,213,255, +240,255,9,0,31,0,63,0,99,0,113,0,101,0,59,0,236,255,148,255,86,255,51,255,45,255,84,255,158,255,237,255, +63,0,143,0,197,0,220,0,224,0,208,0,188,0,186,0,193,0,193,0,188,0,166,0,117,0,61,0,3,0,189,255, +123,255,81,255,61,255,68,255,107,255,159,255,209,255,12,0,82,0,161,0,3,1,110,1,199,1,7,2,47,2,53,2, +31,2,1,2,215,1,159,1,94,1,3,1,133,0,250,255,108,255,220,254,102,254,25,254,231,253,218,253,0,254,67,254, +144,254,232,254,57,255,110,255,149,255,176,255,189,255,207,255,244,255,26,0,58,0,81,0,74,0,41,0,12,0,244,255, +215,255,196,255,187,255,171,255,169,255,194,255,231,255,20,0,80,0,134,0,169,0,196,0,207,0,187,0,146,0,92,0, +19,0,194,255,113,255,31,255,225,254,199,254,190,254,183,254,187,254,191,254,189,254,205,254,255,254,77,255,183,255,47,0, +156,0,251,0,76,1,139,1,192,1,235,1,239,1,190,1,104,1,242,0,113,0,14,0,208,255,159,255,121,255,97,255, +75,255,57,255,45,255,23,255,248,254,227,254,213,254,208,254,232,254,15,255,53,255,108,255,171,255,195,255,178,255,135,255, +52,255,205,254,132,254,84,254,46,254,47,254,95,254,170,254,26,255,172,255,52,0,164,0,252,0,36,1,26,1,255,0, +224,0,201,0,222,0,25,1,74,1,112,1,139,1,124,1,74,1,17,1,187,0,63,0,211,255,152,255,140,255,197,255, +72,0,230,0,121,1,237,1,33,2,6,2,180,1,59,1,168,0,21,0,140,255,16,255,195,254,188,254,238,254,77,255, +193,255,18,0,29,0,251,255,200,255,141,255,104,255,118,255,175,255,254,255,90,0,178,0,249,0,40,1,60,1,48,1, +2,1,170,0,52,0,188,255,84,255,10,255,229,254,223,254,230,254,238,254,240,254,237,254,236,254,247,254,16,255,60,255, +116,255,169,255,217,255,24,0,100,0,183,0,11,1,70,1,75,1,38,1,247,0,196,0,152,0,129,0,118,0,107,0, +104,0,105,0,101,0,101,0,111,0,129,0,159,0,197,0,215,0,212,0,210,0,205,0,189,0,182,0,181,0,158,0, +122,0,92,0,47,0,228,255,148,255,75,255,7,255,222,254,213,254,221,254,239,254,20,255,69,255,119,255,159,255,175,255, +172,255,175,255,190,255,214,255,254,255,42,0,67,0,75,0,76,0,58,0,22,0,243,255,206,255,155,255,107,255,76,255, +53,255,44,255,62,255,106,255,156,255,204,255,253,255,46,0,85,0,104,0,112,0,111,0,91,0,59,0,34,0,7,0, +216,255,160,255,102,255,37,255,224,254,166,254,127,254,113,254,130,254,177,254,254,254,101,255,206,255,42,0,120,0,173,0, +192,0,198,0,204,0,199,0,187,0,182,0,168,0,147,0,142,0,150,0,151,0,145,0,124,0,73,0,14,0,231,255, +214,255,215,255,243,255,23,0,46,0,61,0,65,0,45,0,13,0,232,255,183,255,124,255,67,255,14,255,224,254,203,254, +209,254,229,254,6,255,52,255,102,255,150,255,195,255,228,255,251,255,17,0,49,0,95,0,152,0,205,0,241,0,0,1, +253,0,225,0,163,0,68,0,213,255,106,255,15,255,220,254,216,254,241,254,27,255,88,255,152,255,206,255,10,0,84,0, +155,0,231,0,67,1,148,1,200,1,232,1,231,1,183,1,119,1,65,1,17,1,239,0,225,0,207,0,179,0,157,0, +132,0,105,0,97,0,92,0,72,0,61,0,67,0,65,0,65,0,94,0,125,0,140,0,155,0,152,0,104,0,39,0, +240,255,182,255,122,255,75,255,31,255,244,254,228,254,240,254,18,255,77,255,149,255,214,255,18,0,74,0,113,0,140,0, +163,0,171,0,161,0,140,0,98,0,32,0,216,255,150,255,90,255,45,255,18,255,1,255,247,254,248,254,9,255,46,255, +101,255,170,255,246,255,50,0,75,0,78,0,74,0,60,0,51,0,59,0,59,0,33,0,0,0,222,255,178,255,140,255, +106,255,55,255,252,254,215,254,202,254,218,254,14,255,73,255,116,255,155,255,181,255,177,255,167,255,159,255,129,255,87,255, +58,255,21,255,230,254,205,254,200,254,191,254,193,254,203,254,201,254,196,254,202,254,203,254,207,254,245,254,45,255,99,255, +159,255,211,255,228,255,230,255,233,255,227,255,213,255,205,255,199,255,201,255,236,255,40,0,107,0,185,0,9,1,75,1, +126,1,156,1,151,1,131,1,121,1,117,1,114,1,111,1,93,1,63,1,44,1,39,1,35,1,26,1,4,1,215,0, +161,0,115,0,83,0,72,0,80,0,95,0,113,0,131,0,131,0,113,0,98,0,82,0,59,0,41,0,21,0,234,255, +178,255,128,255,76,255,28,255,7,255,11,255,24,255,46,255,66,255,69,255,63,255,60,255,61,255,73,255,104,255,143,255, +191,255,2,0,76,0,136,0,173,0,169,0,112,0,27,0,201,255,127,255,71,255,55,255,70,255,100,255,149,255,211,255, +1,0,19,0,24,0,27,0,29,0,36,0,50,0,73,0,103,0,136,0,165,0,194,0,219,0,231,0,227,0,212,0, +185,0,148,0,114,0,97,0,92,0,96,0,105,0,118,0,126,0,130,0,131,0,124,0,109,0,94,0,89,0,90,0, +91,0,87,0,78,0,72,0,75,0,75,0,62,0,37,0,8,0,229,255,192,255,159,255,130,255,107,255,104,255,126,255, +156,255,182,255,199,255,202,255,198,255,199,255,203,255,200,255,192,255,185,255,181,255,187,255,207,255,224,255,226,255,220,255, +209,255,189,255,176,255,179,255,190,255,209,255,242,255,23,0,63,0,116,0,178,0,232,0,26,1,71,1,90,1,87,1, +78,1,56,1,15,1,226,0,180,0,130,0,94,0,81,0,75,0,75,0,84,0,80,0,62,0,49,0,36,0,7,0, +227,255,191,255,151,255,117,255,102,255,96,255,102,255,133,255,176,255,209,255,232,255,236,255,212,255,178,255,149,255,125,255, +110,255,111,255,119,255,126,255,137,255,146,255,143,255,131,255,111,255,75,255,30,255,241,254,194,254,154,254,136,254,137,254, +149,254,174,254,213,254,1,255,45,255,82,255,113,255,139,255,163,255,180,255,196,255,214,255,235,255,9,0,47,0,74,0, +77,0,59,0,25,0,233,255,179,255,127,255,79,255,40,255,11,255,252,254,249,254,250,254,249,254,252,254,15,255,46,255, +89,255,146,255,210,255,10,0,53,0,79,0,88,0,88,0,89,0,98,0,117,0,144,0,173,0,199,0,221,0,239,0, +0,1,26,1,57,1,85,1,115,1,147,1,180,1,217,1,8,2,56,2,86,2,89,2,67,2,29,2,235,1,178,1, +120,1,63,1,0,1,177,0,82,0,234,255,134,255,60,255,22,255,11,255,15,255,29,255,44,255,58,255,76,255,98,255, +115,255,120,255,119,255,117,255,114,255,116,255,126,255,134,255,133,255,120,255,97,255,66,255,35,255,20,255,36,255,81,255, +142,255,210,255,27,0,93,0,141,0,179,0,217,0,250,0,17,1,39,1,60,1,66,1,60,1,46,1,12,1,213,0, +155,0,104,0,58,0,18,0,242,255,217,255,200,255,194,255,194,255,201,255,215,255,226,255,232,255,237,255,228,255,199,255, +169,255,148,255,128,255,115,255,115,255,119,255,129,255,159,255,196,255,219,255,231,255,232,255,217,255,199,255,188,255,184,255, +191,255,216,255,249,255,26,0,56,0,70,0,59,0,35,0,6,0,217,255,159,255,103,255,57,255,24,255,10,255,14,255, +42,255,92,255,149,255,202,255,246,255,19,0,33,0,49,0,72,0,89,0,100,0,118,0,145,0,176,0,208,0,232,0, +235,0,213,0,168,0,110,0,49,0,242,255,189,255,157,255,150,255,162,255,189,255,220,255,241,255,251,255,247,255,213,255, +149,255,74,255,2,255,207,254,197,254,230,254,35,255,105,255,169,255,216,255,245,255,255,255,249,255,228,255,197,255,159,255, +135,255,139,255,163,255,198,255,240,255,17,0,20,0,255,255,220,255,172,255,124,255,91,255,77,255,79,255,97,255,131,255, +183,255,250,255,63,0,121,0,168,0,199,0,212,0,213,0,208,0,197,0,195,0,214,0,242,0,15,1,43,1,53,1, +38,1,12,1,231,0,175,0,113,0,60,0,25,0,13,0,30,0,61,0,97,0,136,0,170,0,188,0,186,0,164,0, +125,0,82,0,48,0,27,0,24,0,39,0,59,0,76,0,84,0,72,0,47,0,28,0,17,0,0,0,235,255,216,255, +193,255,166,255,150,255,145,255,140,255,131,255,127,255,123,255,107,255,76,255,41,255,7,255,235,254,223,254,225,254,229,254, +236,254,0,255,39,255,91,255,146,255,188,255,213,255,227,255,240,255,9,0,61,0,137,0,215,0,30,1,85,1,109,1, +103,1,81,1,45,1,254,0,210,0,166,0,114,0,66,0,29,0,253,255,235,255,241,255,247,255,236,255,217,255,195,255, +168,255,152,255,147,255,139,255,130,255,126,255,127,255,140,255,172,255,210,255,239,255,0,0,252,255,220,255,182,255,153,255, +133,255,127,255,133,255,130,255,115,255,105,255,97,255,86,255,79,255,70,255,53,255,40,255,41,255,54,255,77,255,111,255, +151,255,192,255,228,255,253,255,13,0,26,0,39,0,55,0,74,0,86,0,91,0,97,0,105,0,115,0,141,0,181,0, +220,0,253,0,24,1,34,1,28,1,15,1,255,0,234,0,211,0,182,0,149,0,122,0,105,0,95,0,94,0,93,0, +83,0,68,0,50,0,22,0,254,255,249,255,3,0,25,0,63,0,100,0,122,0,136,0,147,0,147,0,136,0,116,0, +80,0,32,0,240,255,194,255,156,255,129,255,108,255,90,255,79,255,69,255,48,255,17,255,233,254,185,254,149,254,141,254, +154,254,182,254,227,254,23,255,78,255,138,255,194,255,234,255,1,0,3,0,237,255,209,255,188,255,176,255,184,255,217,255, +0,0,34,0,57,0,57,0,36,0,10,0,238,255,200,255,163,255,130,255,97,255,77,255,84,255,108,255,140,255,181,255, +221,255,249,255,9,0,12,0,5,0,7,0,22,0,41,0,69,0,104,0,134,0,160,0,193,0,228,0,1,1,22,1, +22,1,250,0,205,0,151,0,95,0,55,0,36,0,24,0,16,0,14,0,6,0,246,255,231,255,215,255,195,255,176,255, +160,255,147,255,145,255,157,255,179,255,207,255,233,255,246,255,245,255,235,255,216,255,199,255,194,255,193,255,193,255,207,255, +233,255,8,0,44,0,81,0,104,0,117,0,130,0,137,0,136,0,132,0,121,0,107,0,102,0,107,0,117,0,129,0, +138,0,138,0,133,0,124,0,107,0,89,0,81,0,80,0,86,0,100,0,117,0,132,0,150,0,168,0,177,0,176,0, +161,0,132,0,101,0,78,0,59,0,40,0,21,0,252,255,220,255,191,255,166,255,142,255,119,255,98,255,78,255,61,255, +50,255,44,255,46,255,56,255,69,255,84,255,99,255,114,255,132,255,154,255,175,255,191,255,203,255,208,255,203,255,195,255, +188,255,185,255,188,255,192,255,191,255,187,255,181,255,171,255,162,255,163,255,170,255,175,255,179,255,180,255,175,255,170,255, +173,255,184,255,202,255,223,255,239,255,254,255,15,0,33,0,52,0,76,0,99,0,114,0,124,0,129,0,135,0,148,0, +167,0,183,0,195,0,204,0,203,0,198,0,194,0,185,0,168,0,148,0,120,0,81,0,41,0,9,0,238,255,219,255, +209,255,200,255,185,255,170,255,156,255,147,255,148,255,160,255,176,255,195,255,213,255,230,255,252,255,21,0,36,0,39,0, +35,0,25,0,12,0,0,0,246,255,232,255,219,255,206,255,188,255,171,255,160,255,151,255,144,255,142,255,139,255,130,255, +120,255,113,255,111,255,119,255,136,255,158,255,179,255,201,255,222,255,239,255,0,0,18,0,36,0,57,0,83,0,114,0, +146,0,175,0,201,0,227,0,252,0,14,1,24,1,24,1,14,1,251,0,226,0,196,0,161,0,125,0,88,0,53,0, +16,0,234,255,202,255,180,255,166,255,161,255,160,255,158,255,153,255,152,255,157,255,169,255,185,255,197,255,203,255,210,255, +219,255,227,255,235,255,241,255,237,255,225,255,213,255,199,255,180,255,163,255,154,255,146,255,139,255,132,255,125,255,122,255, +129,255,140,255,151,255,165,255,181,255,196,255,215,255,235,255,246,255,248,255,245,255,242,255,244,255,252,255,2,0,6,0, +11,0,14,0,12,0,13,0,16,0,14,0,10,0,10,0,11,0,10,0,7,0,4,0,8,0,25,0,49,0,69,0, +83,0,86,0,74,0,52,0,27,0,0,0,230,255,218,255,218,255,224,255,234,255,251,255,11,0,22,0,31,0,34,0, +27,0,13,0,254,255,247,255,245,255,247,255,249,255,245,255,232,255,214,255,197,255,181,255,161,255,136,255,108,255,82,255, +60,255,47,255,47,255,62,255,87,255,118,255,149,255,174,255,194,255,212,255,227,255,237,255,244,255,246,255,249,255,5,0, +22,0,38,0,51,0,62,0,68,0,73,0,87,0,104,0,117,0,127,0,130,0,117,0,97,0,82,0,71,0,62,0, +56,0,54,0,50,0,48,0,48,0,50,0,54,0,57,0,53,0,51,0,55,0,60,0,68,0,79,0,88,0,90,0, +92,0,93,0,82,0,68,0,58,0,46,0,34,0,24,0,16,0,9,0,7,0,6,0,2,0,251,255,237,255,215,255, +193,255,173,255,151,255,132,255,124,255,122,255,123,255,130,255,143,255,159,255,179,255,200,255,215,255,228,255,242,255,1,0, +15,0,29,0,39,0,44,0,43,0,38,0,30,0,21,0,14,0,10,0,11,0,11,0,11,0,14,0,20,0,26,0, +31,0,34,0,31,0,23,0,17,0,15,0,18,0,26,0,36,0,44,0,50,0,54,0,54,0,47,0,36,0,28,0, +25,0,22,0,17,0,15,0,15,0,14,0,14,0,13,0,6,0,251,255,246,255,248,255,252,255,0,0,1,0,247,255, +234,255,221,255,205,255,187,255,173,255,159,255,142,255,129,255,126,255,135,255,154,255,178,255,203,255,228,255,246,255,0,0, +7,0,13,0,17,0,24,0,34,0,39,0,37,0,36,0,38,0,37,0,31,0,21,0,255,255,228,255,203,255,190,255, +190,255,205,255,228,255,249,255,13,0,30,0,42,0,54,0,68,0,80,0,91,0,101,0,106,0,112,0,122,0,135,0, +148,0,158,0,156,0,143,0,126,0,112,0,96,0,78,0,59,0,41,0,23,0,7,0,251,255,242,255,235,255,226,255, +216,255,205,255,190,255,173,255,160,255,149,255,133,255,119,255,111,255,108,255,106,255,107,255,106,255,106,255,113,255,129,255, +144,255,155,255,166,255,177,255,187,255,197,255,207,255,214,255,219,255,220,255,222,255,223,255,222,255,216,255,212,255,207,255, +200,255,193,255,185,255,176,255,175,255,190,255,210,255,228,255,246,255,5,0,16,0,31,0,51,0,69,0,85,0,104,0, +119,0,128,0,132,0,133,0,129,0,125,0,125,0,124,0,118,0,110,0,101,0,91,0,76,0,59,0,46,0,33,0, +13,0,247,255,231,255,218,255,207,255,203,255,205,255,204,255,200,255,201,255,204,255,203,255,201,255,202,255,207,255,209,255, +209,255,210,255,218,255,232,255,249,255,10,0,20,0,15,0,254,255,236,255,221,255,210,255,200,255,194,255,194,255,202,255, +219,255,239,255,253,255,4,0,8,0,13,0,18,0,22,0,26,0,26,0,28,0,36,0,48,0,63,0,85,0,111,0, +133,0,149,0,156,0,152,0,139,0,125,0,111,0,93,0,72,0,52,0,34,0,20,0,11,0,5,0,0,0,252,255, +246,255,236,255,226,255,216,255,208,255,200,255,191,255,183,255,185,255,196,255,211,255,229,255,250,255,8,0,13,0,17,0, +17,0,7,0,252,255,245,255,235,255,224,255,218,255,215,255,213,255,217,255,227,255,233,255,233,255,226,255,210,255,194,255, +181,255,169,255,160,255,153,255,149,255,152,255,169,255,192,255,216,255,242,255,8,0,15,0,17,0,21,0,25,0,30,0, +44,0,62,0,71,0,74,0,74,0,71,0,70,0,75,0,82,0,81,0,73,0,54,0,29,0,11,0,5,0,7,0, +13,0,17,0,15,0,12,0,12,0,8,0,254,255,246,255,242,255,236,255,232,255,232,255,234,255,240,255,253,255,9,0, +14,0,12,0,2,0,244,255,234,255,226,255,216,255,204,255,191,255,176,255,163,255,154,255,146,255,139,255,136,255,139,255, +144,255,150,255,155,255,163,255,181,255,206,255,230,255,251,255,11,0,20,0,27,0,36,0,47,0,53,0,55,0,59,0, +62,0,62,0,61,0,59,0,53,0,46,0,40,0,37,0,34,0,37,0,45,0,49,0,49,0,48,0,46,0,43,0, +41,0,40,0,37,0,33,0,33,0,36,0,43,0,55,0,69,0,79,0,86,0,86,0,79,0,69,0,57,0,39,0, +23,0,11,0,1,0,250,255,252,255,255,255,254,255,250,255,241,255,222,255,202,255,187,255,172,255,161,255,161,255,168,255, +176,255,185,255,196,255,206,255,214,255,220,255,223,255,225,255,223,255,215,255,208,255,205,255,202,255,203,255,215,255,234,255, +252,255,14,0,27,0,31,0,33,0,35,0,30,0,17,0,4,0,244,255,232,255,231,255,240,255,255,255,21,0,45,0, +59,0,67,0,75,0,80,0,85,0,90,0,90,0,82,0,74,0,72,0,73,0,79,0,89,0,97,0,94,0,83,0, +67,0,49,0,30,0,11,0,252,255,242,255,234,255,231,255,232,255,229,255,217,255,205,255,194,255,185,255,177,255,172,255, +169,255,174,255,187,255,205,255,225,255,245,255,2,0,6,0,4,0,253,255,238,255,226,255,221,255,218,255,214,255,214,255, +218,255,221,255,225,255,227,255,226,255,221,255,209,255,194,255,181,255,170,255,164,255,163,255,165,255,174,255,191,255,214,255, +236,255,1,0,25,0,46,0,63,0,81,0,96,0,103,0,105,0,108,0,109,0,107,0,105,0,104,0,108,0,113,0, +116,0,114,0,108,0,95,0,79,0,64,0,49,0,33,0,21,0,17,0,17,0,19,0,21,0,21,0,14,0,2,0, +240,255,216,255,191,255,171,255,158,255,155,255,161,255,175,255,196,255,220,255,238,255,245,255,248,255,247,255,242,255,235,255, +229,255,221,255,212,255,205,255,205,255,211,255,219,255,226,255,230,255,220,255,198,255,176,255,165,255,161,255,163,255,172,255, +183,255,192,255,206,255,220,255,229,255,236,255,247,255,0,0,9,0,23,0,39,0,57,0,78,0,100,0,114,0,121,0, +123,0,119,0,111,0,103,0,96,0,88,0,81,0,74,0,68,0,63,0,58,0,54,0,49,0,40,0,29,0,19,0, +4,0,243,255,231,255,225,255,223,255,226,255,234,255,240,255,245,255,253,255,1,0,255,255,253,255,253,255,248,255,246,255, +250,255,254,255,255,255,6,0,14,0,17,0,17,0,12,0,253,255,231,255,213,255,198,255,183,255,171,255,167,255,167,255, +170,255,179,255,191,255,201,255,210,255,219,255,231,255,242,255,251,255,3,0,10,0,17,0,29,0,46,0,66,0,86,0, +101,0,107,0,106,0,98,0,84,0,66,0,55,0,51,0,50,0,52,0,61,0,69,0,69,0,63,0,52,0,33,0, +11,0,254,255,253,255,1,0,8,0,16,0,21,0,22,0,21,0,18,0,12,0,8,0,13,0,23,0,33,0,42,0, +48,0,49,0,46,0,43,0,40,0,32,0,17,0,251,255,227,255,205,255,183,255,163,255,154,255,156,255,163,255,172,255, +182,255,188,255,189,255,190,255,192,255,193,255,197,255,204,255,215,255,230,255,250,255,13,0,28,0,35,0,32,0,20,0, +5,0,246,255,235,255,231,255,235,255,238,255,240,255,245,255,253,255,5,0,15,0,23,0,22,0,14,0,3,0,250,255, +245,255,246,255,250,255,251,255,246,255,244,255,245,255,249,255,251,255,250,255,246,255,240,255,234,255,230,255,223,255,216,255, +215,255,220,255,229,255,240,255,250,255,253,255,248,255,237,255,219,255,198,255,178,255,164,255,155,255,155,255,166,255,182,255, +196,255,209,255,220,255,221,255,218,255,217,255,215,255,210,255,206,255,206,255,208,255,215,255,229,255,247,255,9,0,24,0, +30,0,24,0,14,0,9,0,3,0,253,255,253,255,4,0,15,0,28,0,47,0,64,0,72,0,75,0,75,0,70,0, +62,0,54,0,47,0,41,0,38,0,40,0,44,0,47,0,53,0,56,0,56,0,55,0,53,0,42,0,27,0,15,0, +8,0,8,0,15,0,26,0,36,0,41,0,41,0,35,0,26,0,18,0,9,0,251,255,238,255,230,255,223,255,213,255, +205,255,198,255,189,255,182,255,185,255,194,255,201,255,206,255,211,255,211,255,205,255,205,255,212,255,222,255,233,255,244,255, +253,255,5,0,11,0,13,0,8,0,255,255,246,255,238,255,234,255,237,255,246,255,1,0,13,0,25,0,33,0,38,0, +42,0,41,0,38,0,38,0,39,0,40,0,43,0,48,0,53,0,57,0,63,0,74,0,82,0,86,0,86,0,82,0, +75,0,68,0,62,0,56,0,48,0,40,0,37,0,39,0,44,0,50,0,52,0,48,0,35,0,17,0,254,255,235,255, +219,255,210,255,210,255,214,255,221,255,229,255,236,255,234,255,225,255,214,255,205,255,200,255,198,255,198,255,197,255,197,255, +198,255,200,255,205,255,213,255,224,255,233,255,238,255,238,255,237,255,237,255,239,255,240,255,239,255,242,255,251,255,4,0, +10,0,11,0,6,0,252,255,239,255,225,255,209,255,198,255,199,255,210,255,224,255,242,255,3,0,12,0,15,0,18,0, +23,0,28,0,37,0,49,0,61,0,68,0,75,0,80,0,81,0,80,0,75,0,61,0,44,0,28,0,9,0,245,255, +233,255,232,255,232,255,230,255,227,255,224,255,219,255,217,255,217,255,215,255,211,255,211,255,214,255,217,255,224,255,236,255, +250,255,8,0,21,0,27,0,21,0,12,0,4,0,253,255,245,255,239,255,233,255,226,255,224,255,229,255,234,255,239,255, +246,255,250,255,250,255,248,255,248,255,246,255,244,255,244,255,244,255,239,255,237,255,237,255,234,255,230,255,236,255,247,255, +0,0,6,0,13,0,21,0,29,0,38,0,44,0,45,0,45,0,46,0,44,0,38,0,33,0,30,0,28,0,30,0, +30,0,22,0,5,0,245,255,230,255,216,255,205,255,194,255,181,255,170,255,167,255,172,255,181,255,194,255,209,255,217,255, +218,255,218,255,220,255,223,255,227,255,230,255,229,255,225,255,221,255,220,255,224,255,234,255,244,255,248,255,241,255,228,255, +217,255,210,255,210,255,211,255,213,255,215,255,224,255,239,255,0,0,16,0,30,0,40,0,48,0,53,0,50,0,42,0, +35,0,34,0,39,0,47,0,54,0,57,0,55,0,51,0,50,0,52,0,52,0,46,0,36,0,23,0,9,0,0,0, +0,0,9,0,22,0,35,0,47,0,55,0,55,0,50,0,46,0,41,0,33,0,21,0,9,0,1,0,1,0,8,0, +16,0,22,0,25,0,23,0,16,0,7,0,255,255,248,255,246,255,251,255,3,0,8,0,9,0,10,0,12,0,17,0, +22,0,22,0,12,0,252,255,236,255,220,255,212,255,212,255,214,255,214,255,219,255,232,255,243,255,247,255,247,255,248,255, +251,255,3,0,18,0,32,0,43,0,51,0,59,0,65,0,70,0,73,0,69,0,58,0,45,0,32,0,18,0,11,0, +9,0,7,0,0,0,249,255,243,255,238,255,241,255,251,255,255,255,250,255,245,255,241,255,240,255,248,255,5,0,12,0, +11,0,9,0,7,0,0,0,246,255,235,255,216,255,193,255,177,255,168,255,161,255,156,255,157,255,162,255,172,255,188,255, +206,255,215,255,219,255,222,255,224,255,224,255,225,255,224,255,221,255,218,255,217,255,214,255,209,255,206,255,206,255,205,255, +203,255,204,255,205,255,208,255,214,255,221,255,223,255,228,255,238,255,250,255,2,0,9,0,12,0,8,0,255,255,245,255, +237,255,233,255,232,255,231,255,226,255,224,255,224,255,222,255,217,255,216,255,221,255,230,255,242,255,253,255,3,0,1,0, +255,255,255,255,252,255,244,255,233,255,223,255,217,255,219,255,227,255,234,255,238,255,240,255,242,255,247,255,2,0,16,0, +28,0,34,0,35,0,33,0,31,0,32,0,36,0,42,0,49,0,56,0,61,0,67,0,72,0,71,0,67,0,62,0, +56,0,48,0,42,0,40,0,37,0,31,0,26,0,27,0,35,0,45,0,52,0,55,0,52,0,44,0,40,0,44,0, +53,0,61,0,63,0,65,0,67,0,69,0,71,0,70,0,64,0,55,0,50,0,50,0,52,0,60,0,72,0,82,0, +86,0,89,0,90,0,87,0,81,0,74,0,64,0,52,0,41,0,34,0,29,0,29,0,34,0,41,0,46,0,45,0, +40,0,30,0,18,0,7,0,251,255,243,255,241,255,244,255,250,255,3,0,9,0,9,0,3,0,254,255,249,255,242,255, +237,255,240,255,244,255,247,255,252,255,1,0,1,0,1,0,2,0,0,0,246,255,235,255,224,255,210,255,198,255,195,255, +194,255,194,255,193,255,190,255,183,255,177,255,176,255,178,255,183,255,192,255,203,255,211,255,215,255,219,255,219,255,219,255, +222,255,230,255,235,255,236,255,236,255,236,255,238,255,242,255,242,255,233,255,223,255,216,255,208,255,201,255,199,255,199,255, +197,255,194,255,192,255,191,255,191,255,199,255,213,255,224,255,228,255,226,255,220,255,212,255,210,255,213,255,217,255,222,255, +229,255,233,255,233,255,234,255,237,255,237,255,234,255,235,255,240,255,245,255,248,255,248,255,243,255,237,255,236,255,240,255, +246,255,250,255,251,255,248,255,244,255,242,255,238,255,234,255,235,255,238,255,238,255,237,255,240,255,250,255,11,0,34,0, +54,0,65,0,69,0,73,0,74,0,73,0,69,0,62,0,54,0,49,0,50,0,52,0,52,0,52,0,54,0,56,0, +58,0,60,0,61,0,61,0,60,0,65,0,73,0,76,0,72,0,63,0,56,0,54,0,56,0,62,0,65,0,60,0, +46,0,28,0,6,0,237,255,214,255,200,255,195,255,197,255,204,255,214,255,223,255,231,255,237,255,240,255,236,255,228,255, +219,255,212,255,206,255,202,255,202,255,206,255,213,255,219,255,224,255,228,255,229,255,227,255,227,255,229,255,227,255,219,255, +210,255,205,255,207,255,221,255,243,255,4,0,12,0,18,0,25,0,29,0,32,0,34,0,31,0,23,0,20,0,22,0, +23,0,19,0,16,0,13,0,10,0,9,0,10,0,13,0,16,0,21,0,24,0,24,0,24,0,27,0,31,0,36,0, +41,0,46,0,51,0,60,0,67,0,66,0,59,0,47,0,31,0,11,0,249,255,235,255,225,255,222,255,229,255,243,255, +2,0,17,0,23,0,18,0,10,0,7,0,9,0,12,0,15,0,16,0,10,0,2,0,254,255,250,255,241,255,229,255, +221,255,215,255,210,255,207,255,203,255,201,255,204,255,215,255,227,255,239,255,252,255,6,0,13,0,19,0,24,0,23,0, +16,0,5,0,248,255,237,255,229,255,227,255,229,255,236,255,244,255,247,255,245,255,243,255,245,255,249,255,254,255,0,0, +252,255,247,255,249,255,254,255,2,0,0,0,251,255,241,255,226,255,214,255,207,255,202,255,196,255,189,255,182,255,177,255, +178,255,187,255,201,255,216,255,231,255,243,255,247,255,241,255,230,255,218,255,212,255,213,255,220,255,231,255,242,255,252,255, +6,0,15,0,20,0,20,0,15,0,10,0,5,0,4,0,6,0,11,0,15,0,21,0,28,0,35,0,40,0,42,0, +43,0,39,0,32,0,21,0,9,0,255,255,247,255,243,255,242,255,244,255,251,255,6,0,19,0,26,0,28,0,29,0, +31,0,32,0,33,0,35,0,39,0,42,0,42,0,38,0,31,0,23,0,16,0,8,0,253,255,242,255,238,255,242,255, +250,255,1,0,7,0,11,0,16,0,23,0,30,0,35,0,38,0,41,0,41,0,38,0,32,0,27,0,24,0,22,0, +21,0,17,0,10,0,255,255,241,255,230,255,225,255,225,255,231,255,240,255,254,255,11,0,23,0,35,0,48,0,58,0, +63,0,63,0,56,0,42,0,28,0,19,0,14,0,12,0,13,0,12,0,10,0,8,0,9,0,8,0,4,0,0,0, +251,255,249,255,254,255,9,0,20,0,29,0,36,0,41,0,43,0,39,0,29,0,13,0,251,255,236,255,226,255,221,255, +220,255,220,255,222,255,225,255,230,255,233,255,235,255,236,255,236,255,234,255,230,255,225,255,221,255,222,255,229,255,239,255, +246,255,249,255,251,255,255,255,2,0,4,0,0,0,247,255,238,255,233,255,233,255,237,255,245,255,1,0,11,0,19,0, +26,0,32,0,36,0,38,0,38,0,37,0,33,0,27,0,19,0,9,0,1,0,254,255,1,0,4,0,6,0,3,0, +250,255,240,255,231,255,223,255,217,255,214,255,213,255,218,255,227,255,238,255,245,255,245,255,236,255,220,255,202,255,186,255, +173,255,163,255,157,255,156,255,160,255,165,255,171,255,180,255,190,255,199,255,205,255,205,255,203,255,201,255,199,255,197,255, +195,255,194,255,194,255,195,255,199,255,205,255,215,255,225,255,230,255,233,255,236,255,242,255,250,255,3,0,13,0,24,0, +37,0,49,0,56,0,56,0,51,0,43,0,34,0,24,0,13,0,1,0,249,255,250,255,3,0,16,0,30,0,41,0, +48,0,52,0,52,0,49,0,45,0,41,0,40,0,43,0,50,0,60,0,71,0,83,0,93,0,99,0,99,0,91,0, +77,0,61,0,47,0,37,0,33,0,36,0,45,0,58,0,68,0,70,0,64,0,55,0,45,0,36,0,29,0,26,0, +29,0,36,0,46,0,56,0,64,0,68,0,67,0,61,0,54,0,47,0,40,0,35,0,32,0,32,0,33,0,33,0, +33,0,31,0,29,0,27,0,25,0,22,0,16,0,8,0,255,255,247,255,242,255,238,255,236,255,234,255,233,255,235,255, +236,255,235,255,230,255,221,255,209,255,197,255,188,255,184,255,186,255,193,255,204,255,216,255,226,255,232,255,234,255,231,255, +224,255,214,255,203,255,196,255,194,255,196,255,201,255,207,255,214,255,220,255,224,255,224,255,221,255,214,255,204,255,190,255, +176,255,170,255,174,255,185,255,199,255,212,255,221,255,229,255,236,255,243,255,246,255,246,255,243,255,239,255,239,255,247,255, +5,0,18,0,28,0,33,0,33,0,26,0,14,0,251,255,231,255,214,255,205,255,204,255,210,255,224,255,242,255,6,0, +24,0,37,0,41,0,38,0,31,0,23,0,15,0,8,0,5,0,7,0,13,0,21,0,29,0,35,0,37,0,33,0, +24,0,13,0,2,0,250,255,246,255,249,255,2,0,17,0,33,0,44,0,52,0,56,0,57,0,52,0,41,0,28,0, +17,0,10,0,9,0,11,0,18,0,27,0,36,0,42,0,43,0,37,0,25,0,9,0,251,255,241,255,239,255,247,255, +6,0,25,0,43,0,55,0,60,0,61,0,58,0,52,0,40,0,24,0,7,0,247,255,236,255,230,255,227,255,225,255, +223,255,222,255,221,255,218,255,211,255,201,255,192,255,189,255,194,255,203,255,214,255,222,255,228,255,231,255,231,255,230,255, +227,255,224,255,220,255,215,255,210,255,207,255,205,255,208,255,215,255,224,255,232,255,234,255,230,255,226,255,225,255,229,255, +236,255,242,255,248,255,254,255,5,0,14,0,25,0,32,0,32,0,28,0,21,0,16,0,15,0,18,0,24,0,33,0, +39,0,42,0,42,0,42,0,47,0,54,0,60,0,62,0,60,0,56,0,52,0,49,0,47,0,43,0,38,0,31,0, +24,0,19,0,17,0,20,0,26,0,33,0,39,0,45,0,51,0,59,0,67,0,72,0,71,0,65,0,54,0,41,0, +27,0,15,0,7,0,4,0,4,0,4,0,3,0,0,0,249,255,239,255,229,255,220,255,212,255,207,255,204,255,208,255, +217,255,228,255,238,255,245,255,249,255,251,255,252,255,250,255,244,255,235,255,224,255,213,255,205,255,205,255,212,255,220,255, +225,255,224,255,216,255,204,255,191,255,180,255,171,255,168,255,169,255,175,255,183,255,192,255,199,255,205,255,209,255,210,255, +206,255,199,255,193,255,187,255,183,255,183,255,188,255,201,255,218,255,234,255,244,255,249,255,250,255,246,255,238,255,226,255, +214,255,207,255,208,255,217,255,232,255,250,255,8,0,15,0,13,0,3,0,243,255,227,255,214,255,208,255,209,255,216,255, +225,255,238,255,253,255,13,0,25,0,31,0,32,0,32,0,34,0,36,0,37,0,36,0,33,0,31,0,29,0,29,0, +27,0,23,0,18,0,14,0,12,0,11,0,11,0,11,0,12,0,14,0,19,0,27,0,34,0,40,0,43,0,45,0, +47,0,48,0,47,0,41,0,32,0,22,0,14,0,9,0,4,0,1,0,255,255,1,0,5,0,8,0,8,0,4,0, +0,0,253,255,253,255,253,255,254,255,255,255,3,0,10,0,15,0,18,0,18,0,20,0,25,0,29,0,30,0,26,0, +18,0,7,0,254,255,247,255,245,255,248,255,255,255,5,0,10,0,13,0,12,0,9,0,5,0,2,0,1,0,2,0, +6,0,12,0,20,0,29,0,39,0,47,0,51,0,52,0,51,0,49,0,49,0,49,0,48,0,44,0,40,0,36,0, +35,0,35,0,35,0,33,0,29,0,23,0,17,0,12,0,9,0,8,0,8,0,10,0,13,0,15,0,17,0,20,0, +26,0,34,0,40,0,42,0,44,0,46,0,47,0,45,0,41,0,37,0,34,0,29,0,20,0,11,0,5,0,3,0, +3,0,1,0,253,255,247,255,243,255,241,255,240,255,239,255,238,255,238,255,242,255,247,255,255,255,5,0,8,0,7,0, +1,0,249,255,240,255,233,255,230,255,229,255,230,255,231,255,229,255,225,255,218,255,210,255,204,255,199,255,197,255,201,255, +209,255,218,255,225,255,226,255,222,255,215,255,210,255,205,255,203,255,202,255,204,255,207,255,208,255,208,255,206,255,203,255, +199,255,195,255,192,255,192,255,194,255,197,255,200,255,202,255,206,255,212,255,218,255,223,255,228,255,230,255,230,255,226,255, +223,255,219,255,215,255,212,255,211,255,213,255,219,255,231,255,247,255,7,0,18,0,22,0,24,0,24,0,24,0,22,0, +17,0,11,0,8,0,10,0,15,0,22,0,27,0,29,0,29,0,27,0,22,0,15,0,9,0,7,0,10,0,16,0, +22,0,28,0,37,0,47,0,57,0,66,0,70,0,68,0,63,0,56,0,49,0,44,0,43,0,47,0,55,0,64,0, +71,0,76,0,75,0,70,0,61,0,49,0,34,0,20,0,9,0,6,0,9,0,16,0,25,0,32,0,39,0,44,0, +48,0,49,0,46,0,40,0,32,0,22,0,15,0,14,0,17,0,24,0,31,0,36,0,38,0,37,0,36,0,32,0, +23,0,11,0,252,255,240,255,232,255,231,255,235,255,241,255,246,255,248,255,247,255,244,255,242,255,239,255,235,255,231,255, +229,255,231,255,236,255,243,255,252,255,7,0,14,0,16,0,11,0,3,0,249,255,243,255,241,255,239,255,237,255,235,255, +233,255,234,255,237,255,241,255,244,255,244,255,243,255,241,255,239,255,237,255,234,255,233,255,234,255,240,255,250,255,3,0, +9,0,12,0,13,0,9,0,1,0,248,255,239,255,233,255,233,255,238,255,246,255,255,255,8,0,13,0,14,0,10,0, +4,0,253,255,247,255,241,255,237,255,235,255,237,255,242,255,248,255,252,255,252,255,250,255,245,255,238,255,231,255,228,255, +226,255,226,255,228,255,229,255,231,255,234,255,236,255,235,255,233,255,230,255,228,255,230,255,234,255,239,255,244,255,248,255, +252,255,255,255,2,0,4,0,4,0,0,0,250,255,240,255,228,255,217,255,207,255,203,255,203,255,209,255,218,255,229,255, +237,255,238,255,235,255,231,255,227,255,225,255,226,255,227,255,230,255,236,255,246,255,255,255,7,0,10,0,7,0,0,0, +246,255,238,255,232,255,229,255,232,255,237,255,244,255,253,255,6,0,14,0,18,0,17,0,12,0,5,0,253,255,247,255, +243,255,241,255,240,255,241,255,243,255,247,255,249,255,247,255,239,255,231,255,225,255,223,255,223,255,225,255,230,255,237,255, +245,255,255,255,9,0,15,0,19,0,22,0,21,0,18,0,14,0,14,0,19,0,26,0,34,0,39,0,41,0,40,0, +38,0,35,0,31,0,26,0,21,0,17,0,15,0,19,0,24,0,27,0,30,0,33,0,35,0,33,0,30,0,27,0, +25,0,25,0,27,0,30,0,33,0,36,0,40,0,42,0,41,0,38,0,34,0,29,0,22,0,17,0,16,0,19,0, +24,0,30,0,34,0,35,0,38,0,39,0,37,0,29,0,18,0,6,0,251,255,244,255,245,255,252,255,6,0,16,0, +22,0,23,0,19,0,10,0,0,0,246,255,239,255,236,255,237,255,239,255,242,255,247,255,252,255,254,255,254,255,251,255, +247,255,244,255,244,255,244,255,243,255,241,255,242,255,246,255,252,255,1,0,6,0,8,0,8,0,7,0,6,0,2,0, +253,255,247,255,245,255,245,255,247,255,249,255,250,255,249,255,249,255,251,255,254,255,254,255,250,255,246,255,240,255,235,255, +231,255,228,255,226,255,226,255,229,255,234,255,238,255,241,255,243,255,244,255,245,255,246,255,246,255,243,255,240,255,238,255, +237,255,236,255,237,255,239,255,240,255,239,255,240,255,243,255,245,255,247,255,249,255,251,255,254,255,2,0,6,0,8,0, +5,0,255,255,249,255,242,255,235,255,231,255,231,255,232,255,233,255,233,255,231,255,230,255,234,255,243,255,252,255,3,0, +9,0,12,0,13,0,12,0,12,0,11,0,8,0,4,0,1,0,255,255,254,255,254,255,254,255,253,255,252,255,249,255, +246,255,242,255,242,255,244,255,247,255,251,255,254,255,254,255,250,255,247,255,246,255,249,255,253,255,0,0,2,0,3,0, +3,0,4,0,6,0,7,0,7,0,6,0,5,0,5,0,4,0,2,0,253,255,249,255,245,255,243,255,245,255,252,255, +4,0,10,0,11,0,10,0,9,0,7,0,5,0,2,0,254,255,251,255,250,255,250,255,251,255,255,255,4,0,9,0, +12,0,12,0,11,0,11,0,15,0,19,0,20,0,20,0,21,0,22,0,21,0,20,0,19,0,18,0,18,0,18,0, +18,0,18,0,17,0,18,0,20,0,21,0,21,0,22,0,25,0,28,0,31,0,31,0,27,0,22,0,17,0,12,0, +7,0,4,0,3,0,7,0,12,0,18,0,21,0,23,0,24,0,24,0,22,0,18,0,13,0,9,0,5,0,2,0, +0,0,0,0,0,0,255,255,0,0,0,0,253,255,248,255,243,255,237,255,232,255,229,255,230,255,235,255,243,255,252,255, +4,0,9,0,11,0,11,0,10,0,5,0,254,255,247,255,242,255,241,255,244,255,251,255,4,0,11,0,15,0,14,0, +10,0,5,0,1,0,254,255,251,255,247,255,244,255,242,255,245,255,249,255,252,255,254,255,254,255,255,255,0,0,1,0, +1,0,0,0,254,255,253,255,252,255,252,255,251,255,249,255,248,255,248,255,250,255,255,255,5,0,12,0,15,0,16,0, +17,0,17,0,14,0,9,0,4,0,1,0,254,255,251,255,249,255,247,255,242,255,235,255,231,255,229,255,229,255,230,255, +232,255,234,255,234,255,234,255,234,255,238,255,246,255,254,255,2,0,3,0,3,0,1,0,255,255,253,255,253,255,251,255, +249,255,248,255,249,255,248,255,247,255,245,255,241,255,235,255,229,255,224,255,220,255,215,255,212,255,214,255,221,255,230,255, +241,255,252,255,6,0,11,0,12,0,9,0,4,0,255,255,250,255,249,255,249,255,250,255,251,255,252,255,250,255,247,255, +244,255,243,255,242,255,242,255,243,255,245,255,250,255,255,255,4,0,7,0,8,0,5,0,2,0,255,255,252,255,250,255, +249,255,249,255,250,255,250,255,248,255,247,255,248,255,253,255,1,0,4,0,4,0,3,0,1,0,0,0,0,0,0,0, +253,255,251,255,255,255,4,0,8,0,11,0,14,0,13,0,9,0,3,0,254,255,251,255,253,255,3,0,10,0,16,0, +23,0,30,0,34,0,31,0,24,0,19,0,15,0,14,0,13,0,11,0,6,0,1,0,251,255,244,255,238,255,235,255, +236,255,240,255,249,255,5,0,16,0,25,0,33,0,36,0,33,0,24,0,18,0,15,0,13,0,13,0,15,0,16,0, +15,0,15,0,16,0,15,0,11,0,9,0,9,0,10,0,12,0,15,0,19,0,21,0,23,0,25,0,29,0,32,0, +34,0,35,0,33,0,33,0,32,0,29,0,25,0,21,0,15,0,6,0,252,255,246,255,244,255,244,255,247,255,253,255, +5,0,12,0,16,0,17,0,17,0,15,0,13,0,12,0,9,0,4,0,1,0,1,0,3,0,5,0,5,0,3,0, +253,255,245,255,238,255,234,255,234,255,238,255,244,255,252,255,2,0,7,0,10,0,10,0,6,0,255,255,247,255,241,255, +236,255,232,255,231,255,234,255,238,255,242,255,245,255,247,255,251,255,254,255,254,255,250,255,243,255,237,255,234,255,234,255, +239,255,244,255,250,255,255,255,0,0,253,255,248,255,243,255,239,255,234,255,229,255,228,255,228,255,229,255,232,255,237,255, +239,255,238,255,233,255,228,255,223,255,219,255,218,255,217,255,217,255,215,255,214,255,212,255,212,255,212,255,210,255,206,255, +202,255,201,255,205,255,213,255,222,255,231,255,236,255,239,255,241,255,242,255,243,255,245,255,247,255,249,255,250,255,252,255, +253,255,254,255,254,255,255,255,2,0,3,0,4,0,8,0,14,0,19,0,24,0,29,0,33,0,35,0,34,0,34,0, +33,0,32,0,29,0,24,0,20,0,21,0,25,0,30,0,37,0,43,0,47,0,49,0,50,0,48,0,45,0,43,0, +45,0,49,0,51,0,51,0,50,0,50,0,47,0,43,0,38,0,33,0,27,0,20,0,12,0,4,0,255,255,255,255, +3,0,10,0,17,0,22,0,25,0,26,0,24,0,18,0,12,0,7,0,5,0,5,0,5,0,6,0,6,0,5,0, +2,0,254,255,249,255,245,255,240,255,236,255,233,255,232,255,235,255,238,255,243,255,248,255,254,255,2,0,4,0,4,0, +2,0,252,255,245,255,237,255,233,255,236,255,242,255,248,255,254,255,3,0,7,0,8,0,6,0,4,0,255,255,249,255, +245,255,244,255,245,255,249,255,0,0,7,0,13,0,17,0,19,0,19,0,14,0,5,0,248,255,234,255,224,255,221,255, +226,255,233,255,241,255,247,255,253,255,0,0,2,0,2,0,253,255,248,255,245,255,244,255,242,255,242,255,246,255,251,255, +0,0,5,0,10,0,10,0,5,0,254,255,245,255,235,255,227,255,225,255,226,255,229,255,235,255,243,255,251,255,255,255, +2,0,0,0,248,255,235,255,224,255,215,255,211,255,214,255,224,255,236,255,248,255,3,0,10,0,12,0,11,0,6,0, +254,255,246,255,241,255,240,255,243,255,251,255,8,0,17,0,21,0,19,0,15,0,7,0,250,255,237,255,228,255,225,255, +226,255,231,255,238,255,242,255,247,255,252,255,0,0,2,0,2,0,255,255,250,255,245,255,242,255,241,255,243,255,248,255, +255,255,8,0,15,0,20,0,22,0,21,0,17,0,13,0,9,0,4,0,1,0,1,0,4,0,8,0,10,0,12,0, +15,0,18,0,20,0,22,0,22,0,19,0,15,0,12,0,11,0,11,0,12,0,13,0,13,0,14,0,17,0,19,0, +17,0,13,0,9,0,3,0,254,255,249,255,246,255,241,255,237,255,238,255,244,255,250,255,252,255,252,255,253,255,252,255, +250,255,248,255,246,255,245,255,243,255,242,255,241,255,242,255,245,255,250,255,253,255,0,0,2,0,4,0,5,0,5,0, +5,0,4,0,4,0,6,0,7,0,7,0,8,0,10,0,11,0,9,0,6,0,5,0,6,0,10,0,12,0,13,0, +11,0,8,0,7,0,9,0,12,0,15,0,18,0,21,0,24,0,25,0,26,0,27,0,28,0,28,0,27,0,27,0, +28,0,28,0,29,0,31,0,31,0,30,0,26,0,22,0,18,0,18,0,19,0,18,0,16,0,12,0,7,0,5,0, +4,0,5,0,8,0,11,0,10,0,6,0,1,0,253,255,251,255,248,255,243,255,239,255,238,255,238,255,239,255,242,255, +247,255,252,255,252,255,250,255,245,255,241,255,237,255,235,255,235,255,237,255,239,255,239,255,238,255,238,255,238,255,236,255, +234,255,232,255,229,255,225,255,222,255,221,255,221,255,222,255,225,255,231,255,238,255,244,255,248,255,251,255,252,255,251,255, +247,255,243,255,242,255,242,255,245,255,250,255,255,255,4,0,8,0,8,0,3,0,249,255,237,255,226,255,219,255,217,255, +222,255,230,255,241,255,251,255,3,0,6,0,8,0,9,0,6,0,255,255,251,255,250,255,249,255,247,255,249,255,255,255, +7,0,13,0,19,0,23,0,22,0,18,0,12,0,3,0,250,255,246,255,248,255,254,255,5,0,11,0,15,0,15,0, +14,0,10,0,3,0,250,255,244,255,240,255,240,255,243,255,251,255,4,0,12,0,16,0,15,0,10,0,2,0,251,255, +244,255,238,255,235,255,236,255,242,255,250,255,4,0,15,0,23,0,26,0,23,0,16,0,8,0,2,0,252,255,247,255, +242,255,238,255,235,255,236,255,242,255,251,255,2,0,6,0,6,0,1,0,250,255,242,255,235,255,231,255,232,255,240,255, +253,255,10,0,21,0,28,0,32,0,31,0,26,0,17,0,7,0,255,255,250,255,251,255,1,0,10,0,19,0,25,0, +28,0,28,0,26,0,22,0,17,0,12,0,5,0,254,255,249,255,249,255,254,255,6,0,15,0,25,0,35,0,43,0, +45,0,43,0,36,0,26,0,17,0,14,0,17,0,22,0,28,0,33,0,37,0,37,0,34,0,29,0,21,0,11,0, +2,0,254,255,255,255,5,0,12,0,16,0,15,0,10,0,5,0,1,0,252,255,244,255,236,255,230,255,227,255,230,255, +237,255,243,255,250,255,255,255,2,0,2,0,0,0,255,255,254,255,253,255,251,255,249,255,247,255,247,255,247,255,248,255, +251,255,253,255,252,255,246,255,236,255,224,255,213,255,206,255,203,255,204,255,207,255,213,255,219,255,224,255,229,255,232,255, +231,255,228,255,225,255,226,255,230,255,237,255,246,255,254,255,4,0,6,0,8,0,9,0,9,0,9,0,10,0,11,0, +8,0,3,0,252,255,248,255,246,255,247,255,249,255,252,255,253,255,251,255,249,255,246,255,242,255,239,255,238,255,239,255, +242,255,244,255,247,255,250,255,253,255,0,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255, +253,255,254,255,252,255,249,255,247,255,248,255,248,255,246,255,244,255,244,255,242,255,243,255,246,255,251,255,252,255,252,255, +251,255,252,255,254,255,1,0,5,0,10,0,15,0,19,0,22,0,24,0,23,0,19,0,15,0,12,0,10,0,10,0, +11,0,13,0,15,0,15,0,15,0,14,0,12,0,11,0,10,0,8,0,8,0,9,0,13,0,16,0,19,0,19,0, +18,0,17,0,18,0,20,0,22,0,22,0,24,0,26,0,26,0,25,0,22,0,17,0,11,0,6,0,4,0,2,0, +0,0,254,255,253,255,254,255,255,255,255,255,253,255,254,255,0,0,2,0,5,0,8,0,8,0,5,0,2,0,255,255, +251,255,247,255,246,255,249,255,253,255,1,0,6,0,10,0,10,0,7,0,2,0,252,255,244,255,238,255,236,255,237,255, +239,255,242,255,245,255,247,255,247,255,245,255,242,255,240,255,240,255,243,255,246,255,249,255,252,255,253,255,254,255,254,255, +253,255,250,255,248,255,248,255,253,255,4,0,10,0,14,0,17,0,21,0,23,0,23,0,21,0,17,0,14,0,11,0, +13,0,18,0,22,0,23,0,22,0,20,0,15,0,9,0,5,0,2,0,0,0,254,255,254,255,1,0,2,0,2,0, +255,255,252,255,249,255,246,255,244,255,244,255,245,255,246,255,248,255,251,255,254,255,254,255,252,255,250,255,249,255,251,255, +255,255,6,0,10,0,10,0,7,0,3,0,255,255,253,255,250,255,246,255,240,255,236,255,234,255,233,255,233,255,236,255, +238,255,239,255,238,255,238,255,236,255,232,255,229,255,229,255,229,255,230,255,234,255,239,255,241,255,241,255,241,255,242,255, +241,255,240,255,239,255,237,255,237,255,238,255,241,255,245,255,247,255,248,255,247,255,244,255,241,255,239,255,238,255,238,255, +237,255,237,255,242,255,249,255,255,255,2,0,3,0,3,0,2,0,2,0,2,0,0,0,254,255,254,255,0,0,3,0, +6,0,9,0,10,0,7,0,2,0,251,255,247,255,248,255,251,255,254,255,0,0,2,0,4,0,6,0,7,0,7,0, +8,0,9,0,12,0,13,0,13,0,11,0,9,0,7,0,7,0,6,0,6,0,4,0,2,0,2,0,4,0,6,0, +10,0,14,0,18,0,21,0,24,0,27,0,27,0,24,0,22,0,22,0,24,0,25,0,28,0,30,0,31,0,31,0, +29,0,26,0,22,0,19,0,16,0,13,0,9,0,7,0,7,0,9,0,11,0,11,0,11,0,12,0,15,0,18,0, +22,0,24,0,24,0,22,0,20,0,18,0,15,0,14,0,17,0,21,0,23,0,22,0,20,0,15,0,10,0,7,0, +5,0,2,0,255,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,248,255,247,255,246,255,244,255, +244,255,245,255,245,255,245,255,247,255,248,255,250,255,252,255,253,255,252,255,249,255,248,255,246,255,243,255,242,255,244,255, +249,255,255,255,8,0,14,0,12,0,7,0,3,0,0,0,249,255,242,255,239,255,237,255,235,255,234,255,236,255,239,255, +242,255,245,255,248,255,247,255,245,255,243,255,244,255,245,255,245,255,248,255,252,255,0,0,4,0,7,0,9,0,9,0, +8,0,5,0,1,0,252,255,246,255,239,255,233,255,231,255,233,255,238,255,241,255,242,255,243,255,245,255,245,255,243,255, +239,255,238,255,239,255,242,255,246,255,249,255,250,255,250,255,252,255,255,255,254,255,251,255,250,255,250,255,248,255,246,255, +247,255,250,255,253,255,255,255,1,0,2,0,2,0,1,0,0,0,253,255,248,255,243,255,242,255,243,255,247,255,251,255, +254,255,255,255,252,255,249,255,248,255,246,255,242,255,239,255,240,255,243,255,246,255,251,255,254,255,253,255,252,255,253,255, +253,255,253,255,254,255,1,0,2,0,0,0,255,255,0,0,1,0,4,0,7,0,9,0,7,0,6,0,6,0,6,0, +6,0,7,0,8,0,9,0,10,0,13,0,19,0,24,0,27,0,29,0,30,0,28,0,24,0,18,0,15,0,13,0, +13,0,15,0,15,0,14,0,14,0,15,0,19,0,23,0,26,0,27,0,25,0,21,0,16,0,14,0,13,0,14,0, +14,0,15,0,16,0,18,0,19,0,17,0,13,0,9,0,6,0,3,0,2,0,4,0,7,0,9,0,8,0,5,0, +3,0,2,0,2,0,3,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,4,0,4,0,4,0, +5,0,7,0,9,0,9,0,9,0,11,0,11,0,10,0,7,0,3,0,254,255,251,255,250,255,249,255,249,255,247,255, +245,255,243,255,243,255,247,255,252,255,0,0,3,0,3,0,1,0,254,255,253,255,252,255,253,255,255,255,2,0,3,0, +1,0,252,255,248,255,245,255,241,255,237,255,233,255,229,255,227,255,227,255,229,255,233,255,239,255,243,255,243,255,241,255, +241,255,241,255,241,255,242,255,242,255,242,255,244,255,248,255,255,255,5,0,7,0,7,0,4,0,255,255,249,255,244,255, +241,255,241,255,240,255,241,255,241,255,239,255,235,255,231,255,227,255,224,255,223,255,224,255,226,255,229,255,232,255,236,255, +237,255,236,255,237,255,238,255,236,255,232,255,231,255,233,255,235,255,239,255,243,255,246,255,249,255,251,255,253,255,253,255, +251,255,251,255,252,255,251,255,249,255,247,255,244,255,242,255,242,255,245,255,248,255,251,255,254,255,255,255,255,255,254,255, +255,255,0,0,1,0,2,0,4,0,7,0,10,0,9,0,7,0,6,0,6,0,7,0,7,0,9,0,10,0,11,0, +12,0,14,0,16,0,18,0,20,0,21,0,20,0,17,0,14,0,11,0,9,0,9,0,9,0,10,0,10,0,10,0, +12,0,13,0,11,0,10,0,8,0,7,0,5,0,5,0,6,0,7,0,9,0,14,0,21,0,24,0,24,0,20,0, +16,0,11,0,6,0,3,0,4,0,6,0,8,0,12,0,17,0,19,0,18,0,16,0,15,0,14,0,14,0,16,0, +19,0,21,0,22,0,23,0,26,0,29,0,33,0,35,0,34,0,28,0,21,0,14,0,9,0,7,0,7,0,7,0, +10,0,16,0,21,0,22,0,18,0,13,0,8,0,2,0,254,255,254,255,255,255,2,0,8,0,15,0,20,0,20,0, +18,0,14,0,7,0,254,255,246,255,240,255,238,255,239,255,242,255,248,255,1,0,11,0,16,0,16,0,12,0,5,0, +253,255,246,255,242,255,240,255,242,255,247,255,252,255,1,0,3,0,4,0,3,0,1,0,255,255,250,255,246,255,242,255, +239,255,238,255,240,255,246,255,253,255,2,0,3,0,1,0,253,255,247,255,242,255,240,255,240,255,241,255,242,255,243,255, +244,255,246,255,247,255,247,255,245,255,241,255,234,255,227,255,224,255,225,255,229,255,236,255,242,255,245,255,245,255,245,255, +246,255,245,255,242,255,238,255,232,255,227,255,224,255,225,255,230,255,236,255,242,255,248,255,252,255,254,255,252,255,249,255, +247,255,245,255,243,255,243,255,244,255,248,255,253,255,2,0,5,0,5,0,2,0,253,255,248,255,243,255,240,255,240,255, +243,255,247,255,249,255,250,255,253,255,0,0,2,0,4,0,6,0,8,0,9,0,9,0,9,0,10,0,12,0,14,0, +14,0,13,0,9,0,5,0,2,0,255,255,252,255,250,255,250,255,252,255,254,255,0,0,1,0,2,0,4,0,6,0, +9,0,9,0,8,0,7,0,5,0,3,0,2,0,2,0,4,0,7,0,11,0,13,0,13,0,12,0,10,0,7,0, +4,0,1,0,0,0,2,0,6,0,9,0,11,0,13,0,16,0,19,0,21,0,23,0,23,0,20,0,15,0,11,0, +9,0,5,0,2,0,255,255,255,255,0,0,2,0,5,0,7,0,8,0,10,0,13,0,17,0,19,0,22,0,25,0, +27,0,29,0,29,0,29,0,26,0,22,0,17,0,11,0,5,0,255,255,254,255,255,255,3,0,6,0,7,0,8,0, +7,0,5,0,1,0,254,255,249,255,245,255,242,255,241,255,244,255,248,255,254,255,4,0,7,0,7,0,4,0,2,0, +0,0,253,255,249,255,246,255,245,255,246,255,248,255,252,255,1,0,4,0,4,0,255,255,248,255,241,255,236,255,233,255, +231,255,232,255,236,255,242,255,247,255,252,255,2,0,7,0,7,0,5,0,2,0,254,255,249,255,246,255,246,255,248,255, +251,255,254,255,2,0,5,0,6,0,6,0,4,0,2,0,253,255,247,255,243,255,242,255,243,255,244,255,246,255,248,255, +249,255,247,255,244,255,241,255,239,255,235,255,232,255,230,255,228,255,228,255,228,255,231,255,235,255,240,255,243,255,243,255, +241,255,238,255,237,255,238,255,240,255,242,255,245,255,248,255,253,255,1,0,2,0,255,255,252,255,249,255,247,255,245,255, +243,255,242,255,242,255,243,255,246,255,247,255,246,255,244,255,243,255,245,255,247,255,250,255,255,255,2,0,4,0,4,0, +4,0,5,0,5,0,3,0,2,0,3,0,5,0,5,0,6,0,8,0,9,0,11,0,13,0,16,0,18,0,17,0, +16,0,16,0,16,0,14,0,12,0,11,0,10,0,7,0,3,0,0,0,253,255,250,255,249,255,249,255,250,255,252,255, +254,255,2,0,6,0,10,0,13,0,13,0,11,0,7,0,4,0,3,0,5,0,8,0,13,0,16,0,19,0,22,0, +25,0,25,0,22,0,16,0,12,0,9,0,7,0,4,0,1,0,255,255,255,255,254,255,254,255,255,255,3,0,7,0, +10,0,11,0,11,0,13,0,17,0,20,0,22,0,23,0,24,0,24,0,22,0,20,0,16,0,11,0,6,0,3,0, +2,0,1,0,2,0,5,0,8,0,10,0,13,0,16,0,17,0,14,0,9,0,7,0,6,0,5,0,3,0,2,0, +3,0,1,0,254,255,252,255,250,255,247,255,246,255,247,255,250,255,252,255,253,255,0,0,3,0,5,0,5,0,4,0, +1,0,253,255,248,255,245,255,244,255,244,255,243,255,243,255,243,255,242,255,241,255,241,255,242,255,241,255,242,255,243,255, +247,255,250,255,253,255,255,255,2,0,5,0,9,0,10,0,9,0,4,0,254,255,248,255,245,255,244,255,245,255,247,255, +249,255,253,255,1,0,4,0,5,0,3,0,1,0,254,255,251,255,247,255,245,255,243,255,242,255,243,255,245,255,247,255, +249,255,247,255,242,255,237,255,234,255,231,255,230,255,231,255,233,255,237,255,244,255,252,255,2,0,6,0,7,0,7,0, +5,0,0,0,251,255,248,255,246,255,244,255,242,255,242,255,244,255,248,255,250,255,251,255,250,255,248,255,246,255,243,255, +241,255,238,255,238,255,240,255,243,255,247,255,252,255,2,0,7,0,9,0,7,0,3,0,255,255,252,255,252,255,253,255, +255,255,1,0,2,0,5,0,8,0,10,0,9,0,7,0,5,0,2,0,253,255,249,255,247,255,249,255,254,255,4,0, +9,0,12,0,14,0,14,0,12,0,9,0,3,0,253,255,250,255,251,255,254,255,2,0,7,0,13,0,19,0,23,0, +24,0,21,0,17,0,12,0,8,0,5,0,6,0,8,0,10,0,11,0,13,0,17,0,20,0,20,0,19,0,18,0, +16,0,13,0,10,0,8,0,5,0,3,0,5,0,11,0,17,0,20,0,20,0,19,0,15,0,8,0,2,0,255,255, +255,255,255,255,0,0,2,0,5,0,8,0,10,0,12,0,12,0,10,0,8,0,6,0,3,0,0,0,0,0,2,0, +3,0,2,0,2,0,4,0,5,0,3,0,0,0,253,255,251,255,250,255,251,255,252,255,253,255,255,255,1,0,4,0, +5,0,4,0,2,0,0,0,253,255,250,255,249,255,250,255,252,255,254,255,0,0,4,0,8,0,10,0,10,0,8,0, +7,0,6,0,5,0,3,0,1,0,0,0,1,0,3,0,5,0,8,0,9,0,9,0,8,0,7,0,5,0,1,0, +253,255,251,255,251,255,251,255,250,255,248,255,247,255,248,255,251,255,253,255,254,255,252,255,249,255,247,255,247,255,247,255, +247,255,248,255,249,255,250,255,251,255,251,255,250,255,249,255,248,255,247,255,245,255,241,255,237,255,236,255,235,255,236,255, +237,255,240,255,242,255,242,255,241,255,240,255,239,255,237,255,235,255,234,255,233,255,233,255,234,255,237,255,241,255,243,255, +245,255,247,255,249,255,251,255,252,255,253,255,254,255,255,255,254,255,253,255,252,255,251,255,250,255,250,255,251,255,252,255, +253,255,253,255,252,255,250,255,248,255,244,255,240,255,239,255,240,255,243,255,245,255,248,255,250,255,252,255,253,255,253,255, +254,255,0,0,0,0,1,0,3,0,5,0,8,0,12,0,17,0,21,0,24,0,25,0,25,0,22,0,17,0,11,0, +7,0,3,0,255,255,252,255,252,255,254,255,1,0,4,0,8,0,11,0,12,0,12,0,10,0,7,0,4,0,2,0, +2,0,3,0,5,0,9,0,14,0,18,0,20,0,20,0,19,0,16,0,12,0,9,0,6,0,5,0,3,0,3,0, +4,0,6,0,9,0,11,0,13,0,12,0,10,0,8,0,5,0,2,0,1,0,3,0,6,0,7,0,7,0,7,0, +7,0,6,0,4,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,2,0,5,0,7,0,5,0,3,0,1,0, +255,255,254,255,251,255,249,255,248,255,247,255,249,255,252,255,255,255,0,0,1,0,2,0,3,0,3,0,1,0,0,0, +255,255,0,0,3,0,7,0,12,0,13,0,12,0,11,0,10,0,8,0,4,0,0,0,254,255,254,255,255,255,2,0, +4,0,5,0,6,0,6,0,5,0,3,0,0,0,253,255,252,255,252,255,254,255,1,0,3,0,5,0,7,0,8,0, +10,0,12,0,13,0,10,0,6,0,2,0,255,255,252,255,248,255,245,255,243,255,244,255,245,255,246,255,247,255,247,255, +245,255,243,255,243,255,243,255,244,255,244,255,244,255,245,255,246,255,246,255,247,255,247,255,245,255,241,255,236,255,233,255, +230,255,229,255,230,255,233,255,235,255,238,255,241,255,245,255,249,255,251,255,253,255,252,255,250,255,249,255,249,255,250,255, +251,255,252,255,253,255,254,255,255,255,0,0,255,255,253,255,249,255,247,255,245,255,242,255,240,255,241,255,245,255,251,255, +0,0,2,0,5,0,8,0,10,0,10,0,9,0,8,0,6,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0, +3,0,3,0,3,0,3,0,2,0,0,0,255,255,1,0,3,0,5,0,6,0,8,0,11,0,13,0,11,0,9,0, +6,0,2,0,254,255,254,255,254,255,253,255,254,255,255,255,0,0,0,0,0,0,2,0,4,0,5,0,6,0,7,0, +8,0,8,0,7,0,6,0,7,0,8,0,8,0,8,0,6,0,1,0,253,255,252,255,252,255,252,255,253,255,254,255, +1,0,3,0,5,0,6,0,5,0,3,0,1,0,1,0,3,0,7,0,11,0,15,0,18,0,21,0,21,0,20,0, +17,0,15,0,12,0,9,0,5,0,3,0,4,0,6,0,5,0,4,0,5,0,5,0,6,0,7,0,8,0,8,0, +7,0,5,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,6,0,7,0,8,0,9,0,7,0,3,0,0,0, +254,255,253,255,255,255,2,0,4,0,4,0,4,0,4,0,1,0,255,255,253,255,251,255,249,255,248,255,247,255,247,255, +246,255,247,255,249,255,250,255,250,255,251,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0, +255,255,255,255,0,0,0,0,254,255,252,255,251,255,252,255,252,255,255,255,1,0,0,0,254,255,253,255,252,255,250,255, +248,255,247,255,248,255,248,255,248,255,246,255,247,255,247,255,246,255,246,255,246,255,244,255,243,255,243,255,243,255,243,255, +246,255,251,255,254,255,0,0,2,0,3,0,4,0,4,0,2,0,0,0,252,255,250,255,250,255,249,255,249,255,252,255, +255,255,254,255,252,255,248,255,243,255,240,255,241,255,242,255,244,255,246,255,248,255,251,255,254,255,0,0,0,0,255,255, +254,255,254,255,255,255,0,0,0,0,1,0,2,0,2,0,0,0,255,255,254,255,252,255,250,255,248,255,249,255,250,255, +250,255,251,255,252,255,252,255,254,255,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,254,255,255,255, +1,0,1,0,1,0,0,0,255,255,255,255,254,255,252,255,250,255,250,255,251,255,252,255,254,255,255,255,255,255,255,255, +1,0,1,0,0,0,0,0,2,0,3,0,5,0,10,0,13,0,14,0,14,0,17,0,19,0,19,0,16,0,13,0, +11,0,9,0,8,0,9,0,9,0,9,0,11,0,11,0,9,0,6,0,4,0,2,0,2,0,1,0,0,0,0,0, +2,0,2,0,5,0,9,0,10,0,10,0,10,0,10,0,9,0,8,0,8,0,5,0,3,0,3,0,4,0,5,0, +7,0,9,0,11,0,14,0,16,0,16,0,14,0,11,0,8,0,5,0,3,0,3,0,4,0,6,0,8,0,10,0, +9,0,7,0,3,0,0,0,1,0,3,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,3,0,255,255,253,255, +254,255,255,255,254,255,254,255,255,255,254,255,254,255,0,0,0,0,0,0,2,0,3,0,2,0,2,0,1,0,253,255, +250,255,250,255,249,255,248,255,247,255,244,255,242,255,241,255,241,255,242,255,243,255,242,255,242,255,243,255,245,255,249,255, +252,255,252,255,252,255,253,255,252,255,249,255,247,255,246,255,245,255,248,255,252,255,255,255,1,0,0,0,253,255,252,255, +251,255,251,255,252,255,252,255,251,255,250,255,251,255,252,255,252,255,253,255,254,255,0,0,2,0,3,0,4,0,4,0, +2,0,2,0,2,0,1,0,0,0,255,255,252,255,250,255,251,255,251,255,250,255,251,255,252,255,249,255,248,255,250,255, +251,255,253,255,0,0,4,0,7,0,8,0,7,0,4,0,0,0,252,255,250,255,251,255,251,255,253,255,0,0,3,0, +6,0,9,0,9,0,6,0,1,0,253,255,251,255,250,255,249,255,247,255,247,255,248,255,248,255,248,255,250,255,252,255, +254,255,255,255,255,255,0,0,2,0,4,0,6,0,10,0,14,0,16,0,18,0,18,0,17,0,13,0,8,0,5,0, +1,0,252,255,248,255,247,255,248,255,251,255,0,0,4,0,5,0,7,0,9,0,8,0,7,0,6,0,4,0,2,0, +3,0,3,0,5,0,7,0,8,0,7,0,4,0,255,255,252,255,250,255,246,255,244,255,247,255,252,255,0,0,3,0, +7,0,9,0,10,0,10,0,10,0,10,0,9,0,5,0,2,0,0,0,254,255,251,255,248,255,245,255,244,255,244,255, +245,255,246,255,246,255,248,255,249,255,248,255,249,255,249,255,250,255,253,255,2,0,5,0,6,0,6,0,3,0,255,255, +252,255,250,255,248,255,247,255,248,255,248,255,250,255,251,255,252,255,253,255,253,255,252,255,253,255,0,0,1,0,2,0, +3,0,4,0,6,0,7,0,6,0,4,0,3,0,2,0,255,255,254,255,255,255,255,255,255,255,1,0,1,0,2,0, +7,0,11,0,12,0,13,0,12,0,12,0,13,0,12,0,11,0,12,0,13,0,12,0,10,0,9,0,6,0,4,0, +1,0,254,255,252,255,251,255,250,255,249,255,249,255,250,255,249,255,249,255,249,255,252,255,254,255,0,0,1,0,1,0, +0,0,253,255,250,255,250,255,251,255,252,255,254,255,0,0,0,0,253,255,251,255,251,255,250,255,250,255,250,255,252,255, +252,255,252,255,249,255,247,255,248,255,248,255,248,255,250,255,249,255,247,255,247,255,248,255,248,255,249,255,253,255,255,255, +2,0,5,0,7,0,9,0,13,0,14,0,11,0,8,0,5,0,4,0,4,0,3,0,3,0,4,0,3,0,0,0, +254,255,252,255,249,255,250,255,254,255,0,0,1,0,4,0,5,0,6,0,8,0,9,0,6,0,4,0,1,0,255,255, +255,255,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,0,0,254,255,252,255,252,255,253,255,253,255, +255,255,1,0,2,0,3,0,2,0,255,255,252,255,249,255,248,255,248,255,250,255,253,255,2,0,7,0,11,0,12,0, +13,0,12,0,12,0,12,0,11,0,9,0,8,0,8,0,9,0,12,0,15,0,15,0,14,0,13,0,12,0,10,0, +7,0,5,0,3,0,255,255,253,255,253,255,254,255,0,0,2,0,4,0,6,0,7,0,8,0,10,0,11,0,11,0, +12,0,11,0,10,0,8,0,7,0,7,0,7,0,8,0,6,0,4,0,3,0,1,0,254,255,250,255,248,255,249,255, +250,255,250,255,251,255,251,255,250,255,250,255,251,255,251,255,248,255,246,255,245,255,244,255,244,255,243,255,243,255,245,255, +247,255,247,255,246,255,246,255,245,255,245,255,246,255,247,255,247,255,246,255,243,255,241,255,240,255,239,255,238,255,240,255, +241,255,242,255,242,255,243,255,242,255,241,255,241,255,242,255,244,255,245,255,246,255,247,255,249,255,250,255,252,255,254,255, +253,255,252,255,251,255,249,255,248,255,249,255,247,255,245,255,244,255,244,255,244,255,245,255,245,255,246,255,249,255,252,255, +253,255,252,255,250,255,249,255,251,255,254,255,255,255,1,0,3,0,5,0,6,0,6,0,3,0,1,0,0,0,253,255, +253,255,255,255,1,0,2,0,4,0,4,0,5,0,7,0,9,0,10,0,11,0,10,0,9,0,8,0,6,0,3,0, +3,0,3,0,2,0,0,0,0,0,0,0,2,0,6,0,10,0,13,0,13,0,10,0,8,0,9,0,9,0,8,0, +10,0,11,0,10,0,10,0,12,0,12,0,10,0,7,0,4,0,3,0,3,0,3,0,2,0,3,0,4,0,5,0, +5,0,5,0,4,0,4,0,3,0,2,0,3,0,5,0,6,0,6,0,5,0,5,0,4,0,2,0,1,0,1,0, +2,0,4,0,5,0,4,0,1,0,0,0,3,0,5,0,5,0,7,0,8,0,8,0,6,0,4,0,3,0,2,0, +1,0,1,0,1,0,2,0,2,0,2,0,0,0,255,255,254,255,252,255,251,255,250,255,249,255,248,255,248,255,250,255, +253,255,254,255,253,255,254,255,254,255,253,255,251,255,250,255,250,255,252,255,253,255,254,255,255,255,255,255,254,255,254,255, +253,255,249,255,248,255,249,255,249,255,250,255,253,255,255,255,0,0,2,0,4,0,4,0,3,0,1,0,0,0,1,0, +3,0,4,0,5,0,6,0,8,0,10,0,10,0,10,0,9,0,7,0,4,0,2,0,0,0,253,255,254,255,1,0, +4,0,6,0,9,0,10,0,7,0,4,0,2,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,1,0,1,0, +1,0,0,0,254,255,252,255,252,255,252,255,251,255,253,255,0,0,2,0,2,0,2,0,3,0,4,0,4,0,1,0, +0,0,255,255,254,255,254,255,1,0,2,0,2,0,4,0,5,0,6,0,7,0,8,0,6,0,3,0,0,0,254,255, +253,255,253,255,255,255,0,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,253,255,252,255,252,255,250,255, +250,255,252,255,252,255,253,255,0,0,0,0,1,0,2,0,1,0,0,0,2,0,2,0,0,0,1,0,2,0,2,0, +3,0,6,0,5,0,3,0,1,0,255,255,254,255,252,255,250,255,249,255,249,255,249,255,251,255,254,255,255,255,255,255, +1,0,2,0,2,0,3,0,4,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,255,255,2,0,2,0,1,0, +2,0,2,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,2,0,4,0,4,0,1,0,255,255,253,255,252,255, +249,255,247,255,247,255,247,255,247,255,248,255,249,255,251,255,254,255,1,0,2,0,3,0,5,0,6,0,6,0,7,0, +8,0,7,0,7,0,7,0,6,0,4,0,3,0,1,0,255,255,254,255,253,255,252,255,251,255,250,255,251,255,251,255, +251,255,252,255,253,255,254,255,255,255,0,0,255,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,253,255,254,255, +255,255,0,0,1,0,1,0,1,0,3,0,3,0,2,0,2,0,1,0,255,255,254,255,254,255,253,255,253,255,252,255, +251,255,249,255,249,255,248,255,247,255,246,255,247,255,249,255,251,255,253,255,255,255,1,0,1,0,1,0,1,0,255,255, +253,255,253,255,254,255,255,255,2,0,5,0,6,0,5,0,3,0,254,255,250,255,248,255,246,255,243,255,243,255,245,255, +247,255,249,255,251,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0, +254,255,252,255,250,255,249,255,248,255,248,255,249,255,250,255,251,255,252,255,253,255,254,255,254,255,255,255,0,0,255,255, +254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,3,0,4,0,6,0,7,0,8,0,9,0, +8,0,5,0,3,0,4,0,5,0,5,0,6,0,5,0,3,0,5,0,7,0,5,0,2,0,0,0,254,255,251,255, +250,255,248,255,247,255,248,255,250,255,251,255,255,255,2,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,4,0, +7,0,8,0,8,0,9,0,8,0,7,0,5,0,3,0,254,255,253,255,254,255,255,255,1,0,3,0,4,0,3,0, +3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,4,0,4,0, +4,0,4,0,4,0,6,0,9,0,10,0,11,0,11,0,11,0,12,0,13,0,13,0,11,0,9,0,7,0,6,0, +5,0,4,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,252,255,253,255,254,255, +0,0,0,0,1,0,3,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,254,255,253,255,251,255,250,255,250,255, +249,255,249,255,248,255,247,255,247,255,246,255,245,255,245,255,246,255,248,255,250,255,251,255,253,255,255,255,1,0,1,0, +0,0,255,255,252,255,251,255,251,255,252,255,252,255,254,255,0,0,2,0,4,0,5,0,4,0,4,0,4,0,3,0, +4,0,4,0,3,0,3,0,5,0,4,0,3,0,2,0,2,0,0,0,255,255,254,255,252,255,251,255,251,255,251,255, +252,255,254,255,0,0,3,0,6,0,7,0,6,0,7,0,7,0,4,0,1,0,255,255,253,255,251,255,250,255,249,255, +251,255,252,255,253,255,254,255,254,255,254,255,254,255,0,0,1,0,1,0,3,0,5,0,6,0,7,0,8,0,7,0, +5,0,3,0,0,0,255,255,255,255,255,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,1,0, +255,255,254,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255, +254,255,255,255,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,4,0,5,0,5,0,6,0, +7,0,7,0,7,0,6,0,5,0,4,0,3,0,3,0,2,0,0,0,255,255,0,0,2,0,4,0,4,0,4,0, +5,0,6,0,6,0,6,0,5,0,3,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,253,255, +252,255,251,255,251,255,252,255,254,255,255,255,255,255,1,0,3,0,4,0,4,0,4,0,3,0,4,0,3,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,0,0,253,255,250,255,249,255,250,255, +251,255,252,255,254,255,254,255,255,255,255,255,255,255,254,255,252,255,251,255,250,255,250,255,252,255,252,255,253,255,254,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,1,0,2,0,2,0,1,0,0,0,254,255,253,255, +253,255,253,255,253,255,253,255,253,255,252,255,252,255,251,255,251,255,253,255,254,255,255,255,1,0,2,0,3,0,3,0, +4,0,4,0,4,0,3,0,2,0,0,0,255,255,253,255,252,255,252,255,252,255,252,255,253,255,255,255,0,0,0,0, +0,0,255,255,255,255,254,255,255,255,255,255,1,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255, +254,255,255,255,0,0,1,0,2,0,2,0,3,0,4,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0, +4,0,3,0,2,0,0,0,254,255,253,255,254,255,255,255,2,0,4,0,5,0,4,0,3,0,3,0,3,0,2,0, +1,0,0,0,255,255,254,255,254,255,253,255,252,255,251,255,252,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,1,0,0,0,255,255,253,255,253,255,255,255, +2,0,5,0,6,0,6,0,5,0,5,0,5,0,3,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,5,0, +5,0,3,0,2,0,1,0,255,255,253,255,253,255,254,255,255,255,0,0,1,0,3,0,4,0,4,0,1,0,255,255, +254,255,251,255,249,255,248,255,248,255,249,255,251,255,254,255,255,255,1,0,1,0,0,0,253,255,252,255,252,255,251,255, +251,255,252,255,252,255,253,255,254,255,254,255,254,255,253,255,251,255,249,255,249,255,248,255,248,255,248,255,249,255,250,255, +252,255,254,255,254,255,255,255,254,255,252,255,250,255,249,255,248,255,247,255,249,255,250,255,251,255,251,255,251,255,251,255, +252,255,251,255,251,255,251,255,252,255,253,255,254,255,255,255,254,255,255,255,1,0,2,0,2,0,0,0,254,255,253,255, +253,255,252,255,252,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,253,255,251,255,250,255,249,255,249,255, +250,255,250,255,250,255,252,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,1,0,255,255,254,255,252,255,249,255,248,255,249,255,248,255,248,255,249,255,250,255,251,255, +252,255,253,255,253,255,255,255,1,0,2,0,2,0,4,0,3,0,3,0,4,0,4,0,2,0,0,0,255,255,254,255, +0,0,1,0,1,0,2,0,4,0,3,0,3,0,4,0,6,0,7,0,7,0,7,0,7,0,9,0,10,0,11,0, +12,0,12,0,10,0,8,0,7,0,6,0,5,0,5,0,5,0,4,0,4,0,5,0,6,0,7,0,8,0,9,0, +9,0,9,0,9,0,11,0,12,0,13,0,11,0,11,0,10,0,8,0,6,0,4,0,3,0,3,0,3,0,2,0, +1,0,3,0,4,0,5,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,7,0,7,0,7,0,6,0,5,0, +5,0,4,0,2,0,1,0,0,0,254,255,253,255,254,255,255,255,255,255,254,255,254,255,255,255,1,0,2,0,2,0, +2,0,3,0,3,0,4,0,5,0,5,0,6,0,7,0,8,0,8,0,7,0,6,0,4,0,4,0,2,0,0,0, +255,255,255,255,254,255,254,255,0,0,0,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,4,0,5,0,4,0, +4,0,5,0,5,0,4,0,5,0,5,0,4,0,4,0,3,0,3,0,4,0,5,0,4,0,3,0,4,0,4,0, +5,0,6,0,6,0,4,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,254,255,255,255,1,0,2,0,3,0,4,0,4,0,4,0,4,0,2,0,1,0,0,0,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,253,255,253,255,252,255,252,255,253,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0,3,0,4,0,3,0,3,0,2,0,1,0, +1,0,2,0,2,0,3,0,5,0,6,0,5,0,4,0,3,0,2,0,3,0,3,0,1,0,1,0,3,0,4,0, +4,0,4,0,5,0,5,0,5,0,4,0,3,0,3,0,3,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0, +2,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,3,0,3,0,4,0,4,0,4,0,3,0,4,0,5,0, +4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,255,255,255,255,254,255,252,255,250,255,249,255,250,255, +250,255,252,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,4,0,4,0,5,0,5,0,4,0,3,0,3,0, +2,0,0,0,254,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,253,255,254,255,255,255,254,255,253,255,254,255,253,255, +252,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,251,255,250,255,249,255,250,255,250,255,249,255,250,255,251,255, +251,255,252,255,252,255,252,255,253,255,253,255,253,255,252,255,251,255,249,255,247,255,245,255,245,255,245,255,245,255,245,255, +245,255,244,255,245,255,245,255,245,255,246,255,246,255,246,255,245,255,245,255,245,255,246,255,247,255,247,255,248,255,249,255, +250,255,249,255,249,255,249,255,249,255,249,255,250,255,251,255,252,255,253,255,253,255,251,255,250,255,249,255,248,255,247,255, +246,255,246,255,247,255,248,255,249,255,250,255,252,255,254,255,254,255,254,255,253,255,252,255,251,255,250,255,250,255,250,255, +251,255,250,255,250,255,250,255,250,255,251,255,251,255,253,255,253,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,253,255,252,255,251,255,252,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,255,255,255,255,255,255,255,255,254,255,254,255, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,253,255, +254,255,254,255,255,255,0,0,0,0,255,255,253,255,253,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255, +253,255,253,255,252,255,251,255,251,255,250,255,249,255,250,255,251,255,252,255,252,255,251,255,252,255,253,255,253,255,252,255, +253,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,253,255,252,255,252,255,252,255,252,255, +253,255,255,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,1,0,1,0,0,0,1,0,1,0, +3,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,2,0,1,0,1,0, +0,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0, +2,0,2,0,3,0,4,0,3,0,2,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0, +1,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,4,0,4,0,4,0,6,0,6,0,6,0,4,0,3,0, +3,0,3,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0, +3,0,4,0,4,0,4,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0, +3,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0, +6,0,7,0,6,0,5,0,5,0,5,0,6,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0, +4,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,3,0,4,0,4,0, +4,0,4,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,254,255,255,255,255,255,0,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,3,0, +3,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,3,0,4,0,4,0,5,0, +4,0,3,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255,254,255,254,255, +254,255,254,255,254,255,253,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,2,0, +1,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,252,255,253,255, +253,255,253,255,253,255,253,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0,3,0,2,0,2,0, +1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,254,255,254,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0, +3,0,3,0,2,0,3,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255, +255,255,0,0,255,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255, +254,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255, +255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0, +2,0,2,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,254,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0, +2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0, +0,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +2,0,0,0,255,255,0,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +254,255,254,255,254,255,254,255,253,255,254,255,254,255,253,255,253,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,0,0, +0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,2,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,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,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,0,0,1,0,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,255,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,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,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,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,1,0,1,0,1,0,1,0,1,0,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,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,1,0,1,0,1,0, +1,0,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,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeletonhurt1.pcm b/src/client/sound/data/skeletonhurt1.pcm new file mode 100755 index 0000000..5ba6c69 --- /dev/null +++ b/src/client/sound/data/skeletonhurt1.pcm @@ -0,0 +1,1343 @@ +unsigned char PCM_skeletonhurt1[42886] = { +1,0,0,0,2,0,0,0,68,172,0,0,187,83,0,0,217,255,16,254,44,253,161,252,25,253,135,254,86,253,249,247, +247,242,240,241,219,244,245,254,206,17,171,31,190,21,23,246,63,217,77,216,178,249,30,39,127,56,232,28,91,242,159,226, +147,244,220,13,60,18,156,249,14,216,68,209,209,244,193,38,16,54,190,14,68,211,194,186,67,213,193,2,5,33,10,37, +231,16,158,246,253,244,15,14,163,27,19,9,75,241,98,239,120,254,124,18,190,35,19,33,67,0,218,217,210,211,128,242, +50,20,26,27,15,13,232,3,1,9,81,16,101,17,154,13,223,1,18,238,88,228,193,243,185,12,149,21,157,12,107,0, +235,248,199,246,230,247,14,247,240,243,83,245,136,253,243,9,53,24,40,29,49,11,128,237,129,222,233,225,237,234,100,248, +188,8,217,14,109,10,44,8,229,6,214,255,79,248,209,241,68,233,232,234,204,254,189,16,112,12,102,241,228,194,147,149, +190,153,187,218,182,23,145,21,177,236,188,219,175,247,51,36,209,61,165,58,154,40,193,22,98,15,237,28,160,54,127,56, +173,18,125,233,39,228,102,249,7,12,164,24,129,35,74,22,34,223,128,163,26,158,240,203,113,247,146,10,134,19,39,16, +202,254,206,3,67,56,143,116,255,127,27,99,146,59,153,26,102,243,252,197,247,166,89,154,61,144,1,145,4,182,84,240, +238,24,96,49,18,77,129,88,183,62,122,30,74,33,216,67,230,99,114,101,104,67,44,12,63,207,165,152,0,128,0,128, +0,128,219,144,248,202,133,33,14,98,184,125,255,127,249,127,209,75,90,252,11,183,0,146,39,144,95,168,117,206,182,249, +246,24,96,24,191,2,41,246,116,245,102,242,11,243,234,255,214,11,32,13,88,13,30,18,191,17,112,3,193,239,60,236, +132,255,108,23,64,41,40,58,73,59,216,20,250,216,239,174,190,156,235,155,58,185,161,242,17,41,64,75,148,95,27,103, +7,93,229,67,170,33,236,254,132,229,182,213,250,203,156,203,229,209,103,211,1,209,116,213,20,226,83,246,1,24,110,66, +164,98,242,104,34,80,4,31,89,233,37,192,169,166,114,158,253,169,160,194,125,224,138,0,72,23,127,23,147,8,73,250, +16,238,160,227,104,229,82,248,217,19,172,43,147,50,239,31,245,251,124,218,252,201,65,209,220,235,174,9,10,32,76,49, +200,59,37,54,58,32,141,3,58,232,32,214,77,211,30,221,123,240,103,15,122,51,78,77,84,85,35,75,83,46,201,8, +55,237,1,225,226,219,2,219,153,223,9,228,215,226,84,224,11,231,56,253,192,26,143,46,169,51,106,50,204,43,246,26, +147,4,45,235,126,199,38,162,248,149,117,169,103,201,234,235,183,18,56,50,72,58,128,46,152,29,88,12,198,248,171,231, +118,225,125,228,23,230,168,228,224,234,216,251,253,12,160,22,203,23,64,14,199,253,106,243,126,243,226,245,134,247,14,250, +225,248,46,243,44,243,53,255,237,20,143,49,32,75,106,78,187,54,71,22,75,253,193,237,47,231,138,231,79,230,109,225, +193,228,208,247,63,18,108,42,147,61,185,66,129,44,180,3,32,232,159,232,203,242,239,245,78,246,13,244,234,229,70,213, +167,215,93,234,77,249,243,0,51,8,137,10,111,4,89,254,95,249,60,236,106,219,53,214,109,219,219,222,116,227,20,243, +46,6,210,14,115,15,16,16,247,12,226,3,166,254,199,0,40,0,205,250,141,250,180,0,90,4,108,5,130,10,205,16, +193,18,221,21,72,32,134,43,204,46,225,41,9,30,225,10,184,246,110,235,208,233,159,236,83,244,215,3,148,23,195,41, +17,56,132,62,12,55,125,35,185,13,27,251,197,233,248,218,233,212,249,216,28,225,32,232,253,237,94,243,159,246,189,247, +152,251,130,6,185,19,212,23,90,14,42,255,205,242,64,232,192,219,172,208,176,205,242,211,215,223,145,238,28,254,11,10, +111,12,79,3,59,245,105,237,186,239,125,244,84,245,7,248,199,3,151,18,107,25,9,25,48,26,163,29,175,28,40,22, +164,15,182,11,221,7,39,3,119,0,20,2,70,6,81,9,89,10,247,12,206,19,76,27,43,30,9,29,141,27,9,24, +170,13,214,253,154,239,80,230,206,223,73,219,5,219,43,223,101,229,110,238,214,253,38,18,91,34,108,38,157,30,208,15, +123,253,74,235,37,223,14,219,101,217,187,213,184,212,107,220,212,233,92,245,197,252,3,2,60,5,249,5,126,5,151,3, +210,253,169,244,164,236,80,233,116,235,175,242,4,252,39,2,157,4,17,10,113,21,249,29,229,25,207,12,36,2,81,253, +70,250,28,250,57,2,65,16,217,27,63,36,63,47,53,58,202,57,67,43,167,25,47,14,196,6,71,255,95,249,171,246, +54,244,249,239,211,235,201,232,79,230,24,231,236,238,254,250,225,3,21,7,21,7,66,3,168,248,230,233,54,221,134,211, +154,202,163,198,23,207,240,225,238,243,40,254,176,2,101,4,154,3,195,2,62,5,223,8,108,8,235,3,19,255,153,249, +201,241,146,236,92,241,2,255,255,13,250,27,97,43,213,56,106,59,42,48,224,28,197,7,195,244,9,234,194,237,174,253, +82,16,250,30,95,40,184,42,77,35,63,20,215,3,212,245,37,235,13,231,83,237,65,251,204,8,79,17,23,22,241,24, +234,25,65,26,23,28,150,30,142,30,197,26,51,20,247,10,10,255,10,243,82,234,253,228,104,225,185,224,254,229,249,240, +240,252,132,4,182,4,51,253,64,240,254,225,233,213,124,205,229,201,225,204,39,214,228,225,214,235,123,242,219,245,57,245, +140,240,251,234,51,233,79,237,163,245,34,255,152,7,199,13,195,16,42,16,36,13,185,10,232,11,196,16,2,22,253,23, +22,22,229,18,109,17,180,18,214,21,120,25,95,28,55,29,22,27,180,22,84,18,121,15,207,12,90,7,58,254,181,244, +200,239,148,241,180,247,2,254,66,2,188,4,254,5,112,5,111,2,242,253,248,249,137,247,15,246,254,244,19,245,20,247, +113,249,133,248,1,242,251,231,194,223,116,221,220,224,158,230,215,235,36,240,162,244,209,249,232,254,156,2,241,3,100,2, +9,254,228,247,216,241,164,237,238,235,134,236,139,239,181,245,40,255,71,10,101,20,220,27,6,33,216,36,204,38,224,36, +230,29,126,19,86,9,111,2,104,255,85,255,140,1,19,6,100,12,157,18,136,22,121,23,182,22,208,21,202,20,50,18, +47,13,11,7,98,2,167,0,174,0,230,255,24,253,162,249,210,247,249,247,137,247,60,243,65,234,18,223,76,213,5,207, +83,204,252,204,163,209,204,218,252,230,141,242,195,249,252,250,198,246,119,238,109,227,211,215,57,207,68,205,66,211,52,223, +113,237,8,251,130,6,232,14,37,19,241,18,230,15,215,12,181,11,8,12,18,12,82,11,126,10,81,10,49,11,221,12, +221,14,245,17,68,23,182,29,92,34,85,35,192,33,197,32,234,33,205,35,54,37,246,37,247,36,113,33,238,27,116,20, +228,11,127,5,218,2,209,2,68,5,193,9,140,13,49,15,215,14,146,11,202,5,249,255,151,250,216,244,170,239,255,235, +206,233,234,232,146,232,221,232,143,234,184,235,188,234,96,234,183,235,95,236,51,238,57,244,204,250,198,253,222,253,144,251, +87,247,165,243,24,240,164,235,155,234,74,240,195,248,151,254,187,255,234,253,82,253,203,254,82,255,19,255,19,0,197,1, +69,5,238,11,94,17,176,18,29,19,90,19,105,18,232,18,215,18,54,12,208,2,47,255,118,0,200,1,173,2,235,3, +1,6,201,8,213,9,74,8,85,5,52,0,92,250,78,248,39,249,100,249,213,249,54,249,127,244,228,239,40,239,27,238, +93,235,229,233,101,232,216,230,203,232,149,235,69,235,185,235,1,239,172,240,56,240,240,241,104,247,12,254,202,1,215,2, +6,6,162,9,34,7,112,2,241,2,60,4,137,1,6,0,229,2,227,7,20,14,215,18,67,20,230,22,215,27,95,29, +214,27,175,27,214,26,2,23,121,19,80,18,184,18,125,19,96,19,137,19,13,21,6,21,152,19,214,19,26,17,79,7, +4,255,199,253,134,252,18,249,143,249,80,253,159,254,187,252,164,250,156,251,226,254,200,253,143,246,12,241,150,240,192,239, +180,236,190,235,244,238,142,242,225,241,221,240,14,248,87,2,17,2,231,249,231,245,247,243,170,237,10,232,73,231,175,231, +210,231,88,233,245,236,119,243,150,249,52,249,229,244,179,244,132,248,140,251,183,253,106,0,152,2,120,3,32,4,0,6, +140,7,210,4,12,255,252,252,181,0,95,6,147,11,111,15,34,17,7,18,193,18,123,17,108,14,0,11,249,6,124,4, +34,7,9,13,145,17,89,19,198,18,112,17,109,17,56,16,30,10,158,2,61,255,34,255,156,255,138,0,242,0,242,254, +147,250,204,245,248,243,217,246,102,250,143,249,207,246,129,248,40,254,118,0,239,251,9,246,230,244,87,246,29,245,22,243, +11,246,89,253,202,2,44,4,148,5,142,9,9,12,146,8,108,2,230,0,139,4,222,5,62,1,59,253,217,255,226,4, +97,6,15,7,179,11,66,17,44,18,40,15,42,12,196,9,105,6,181,2,65,1,217,2,104,4,204,2,163,255,30,254, +16,253,50,250,201,247,107,248,24,250,51,251,176,253,199,1,247,4,32,7,146,9,40,11,23,11,77,11,90,12,105,12, +23,11,9,9,38,5,118,254,150,246,45,240,250,236,206,236,79,237,230,236,23,237,38,239,170,241,188,243,169,245,227,245, +25,243,211,239,136,238,23,238,255,237,213,239,148,242,142,243,23,244,68,247,197,251,250,253,231,253,125,254,228,0,195,3, +97,6,146,9,118,12,232,11,53,8,193,6,193,9,137,12,100,12,180,12,179,14,14,15,34,14,3,16,123,19,64,19, +245,15,150,15,96,19,248,21,34,20,28,17,38,16,220,14,173,10,20,7,18,7,183,5,74,254,30,246,99,244,179,246, +240,246,107,245,212,245,103,248,246,250,182,251,247,249,114,247,61,247,63,249,77,250,176,249,58,250,41,253,177,255,91,255, +185,254,240,1,151,6,121,5,46,255,164,253,193,3,233,6,60,0,67,248,164,248,112,253,77,254,201,252,251,254,68,2, +177,254,91,245,92,240,238,242,118,244,149,239,148,235,165,239,76,246,118,246,187,241,204,239,14,241,15,240,137,237,34,240, +229,247,85,252,162,249,54,246,172,247,214,250,243,250,197,249,87,252,117,3,52,10,172,11,89,9,186,8,44,10,157,8, +17,4,137,3,76,9,136,14,37,14,192,11,247,11,191,11,2,5,43,250,139,245,35,250,140,254,192,253,31,0,229,9, +121,16,210,12,246,6,176,4,202,255,63,246,99,241,206,245,241,251,30,253,39,252,85,254,116,3,99,7,151,8,58,9, +146,9,33,7,97,3,75,3,58,6,208,6,57,4,212,0,61,252,158,247,101,247,122,250,147,251,201,252,166,2,15,7, +134,2,194,251,125,252,46,0,169,254,240,252,213,2,137,9,64,5,85,250,255,247,102,255,124,1,31,249,34,244,225,249, +223,253,27,248,224,244,25,253,145,4,46,0,158,249,248,252,209,4,252,6,44,6,49,10,227,17,220,22,94,23,135,21, +110,18,156,14,237,10,123,6,144,255,90,247,252,240,228,237,20,239,16,247,242,4,130,16,16,18,78,12,179,7,176,5, +100,0,156,246,65,238,249,232,145,225,138,216,181,214,2,222,96,229,14,233,89,240,214,253,201,8,250,10,130,8,145,6, +48,4,51,254,191,244,222,235,190,231,184,232,34,237,134,245,201,1,232,12,26,18,161,18,196,17,135,16,205,15,78,16, +202,16,136,17,76,21,252,26,141,29,71,28,211,26,158,25,25,22,33,16,135,9,126,3,221,254,183,251,193,249,142,250, +154,255,213,6,44,14,127,22,91,30,175,32,117,28,116,21,186,12,115,1,217,246,117,240,131,236,35,233,44,233,72,238, +113,244,241,247,10,251,112,1,0,9,7,12,57,10,153,8,94,7,43,1,163,246,23,239,33,235,2,228,59,218,88,214, +254,217,110,222,212,225,146,232,45,242,74,249,191,253,112,3,227,7,71,4,110,250,80,244,211,244,122,245,191,244,1,248, +253,252,101,250,222,241,252,239,245,247,115,0,146,5,252,12,104,23,111,29,126,28,133,26,91,27,153,28,87,29,80,32, +195,35,108,32,134,20,23,7,18,253,26,245,40,240,117,242,28,250,36,1,66,8,5,19,129,28,1,29,242,22,73,18, +49,16,78,13,12,10,47,7,233,255,193,240,98,224,175,216,224,217,72,221,53,226,91,237,188,252,166,7,247,10,51,11, +121,11,151,11,237,12,189,16,187,19,18,17,174,7,33,250,237,236,150,229,199,230,190,236,151,241,56,245,38,252,236,5, +96,11,101,9,160,5,253,3,240,0,151,251,24,250,186,253,151,254,141,248,248,240,120,236,38,234,230,233,5,238,101,246, +45,0,15,9,14,16,169,20,139,22,242,21,81,20,155,18,24,15,232,8,130,3,70,1,61,255,43,252,211,251,220,253, +62,252,167,246,230,243,155,246,26,251,9,255,135,2,35,5,137,6,88,6,164,3,39,0,29,255,152,254,154,249,241,240, +30,233,21,226,5,218,35,212,69,213,122,221,233,232,207,243,191,252,67,4,131,9,190,9,134,5,54,1,241,253,150,249, +11,246,220,246,4,249,2,247,10,242,214,238,133,238,39,241,240,248,39,6,10,21,81,33,202,39,101,38,253,30,107,23, +117,19,122,17,7,15,211,12,222,11,86,10,178,6,84,3,25,3,28,4,175,2,165,0,252,3,161,13,1,23,116,26, +224,24,213,20,217,13,20,4,71,251,199,245,109,241,222,236,29,234,73,233,130,231,164,228,194,227,54,230,103,235,206,242, +105,250,186,255,140,3,25,7,251,7,55,5,118,2,45,0,106,249,205,238,243,232,91,235,22,239,47,238,219,235,136,237, +139,241,167,242,23,243,35,251,171,9,2,18,79,15,54,11,124,10,127,5,203,250,177,244,134,246,175,247,86,244,64,242, +9,245,206,250,6,2,37,10,181,17,185,23,239,27,14,30,83,31,252,33,167,37,155,38,97,33,223,22,245,12,75,8, +227,5,3,1,161,252,214,252,111,252,63,246,49,241,225,244,177,251,208,253,252,254,193,4,56,10,142,8,136,2,140,254, +250,251,211,245,209,235,153,226,173,220,31,217,245,216,83,223,47,235,197,246,100,254,244,2,78,6,103,9,113,12,26,14, +102,13,128,12,67,13,191,12,240,7,75,2,212,0,184,1,245,255,0,253,230,254,6,6,252,12,176,18,215,26,103,35, +105,36,204,28,148,20,59,16,180,12,195,8,25,7,213,6,234,3,132,254,22,250,176,246,249,241,162,237,14,239,212,247, +185,2,105,10,107,15,120,19,162,19,94,13,183,4,204,254,231,250,91,246,169,241,222,237,26,234,198,229,158,225,60,223, +55,225,210,232,77,243,200,252,72,4,61,10,15,14,14,15,2,13,27,8,248,1,169,252,8,248,32,243,208,238,239,235, +58,233,204,229,53,227,55,228,186,234,239,245,138,2,31,14,207,23,230,28,204,26,197,20,76,16,7,13,221,7,20,2, +243,253,215,249,182,244,230,241,89,244,147,250,96,1,199,7,30,15,100,23,162,29,124,32,120,34,121,35,148,30,74,19, +206,7,223,254,97,246,135,240,170,241,196,246,118,249,175,249,197,250,234,252,32,255,193,1,129,4,193,5,8,4,84,255, +89,250,93,248,166,248,35,248,162,246,227,244,68,241,32,236,195,233,254,235,123,240,62,246,136,253,124,4,242,9,49,15, +165,19,71,21,99,21,168,21,251,18,152,10,100,0,205,249,108,246,188,242,155,238,198,236,183,237,34,239,29,241,122,247, +249,2,94,13,210,16,40,15,106,13,149,12,252,10,174,8,105,6,136,3,196,255,73,252,124,249,128,246,233,243,201,243, +25,246,200,248,208,251,188,0,7,6,151,8,73,9,240,10,48,12,124,9,40,3,128,252,111,247,57,244,92,242,57,240, +160,236,185,232,255,230,127,233,120,240,255,248,82,255,87,3,237,6,40,9,134,8,223,6,154,5,175,2,102,253,117,248, +108,245,156,243,179,242,90,242,105,242,196,244,22,250,243,254,26,2,190,7,220,16,207,23,158,25,226,24,115,22,68,17, +36,12,148,10,209,10,5,9,112,4,244,254,16,251,33,250,64,251,245,253,192,3,167,11,187,17,126,21,190,24,213,24, +50,19,125,12,170,8,162,3,252,250,64,244,148,242,27,242,24,241,62,242,39,245,45,246,226,244,128,244,82,247,36,252, +214,255,165,1,173,3,127,5,158,3,166,254,9,251,145,248,176,243,226,237,210,234,18,233,203,230,144,231,241,237,248,245, +59,251,104,254,227,1,211,5,45,9,123,11,128,12,108,11,214,7,72,3,63,0,131,255,43,0,88,1,246,1,243,0, +121,255,215,255,115,1,179,1,22,1,29,3,138,8,122,13,178,14,222,13,192,13,186,12,1,8,190,1,193,253,78,251, +172,248,252,247,102,250,229,252,255,253,102,255,201,0,157,0,149,0,196,2,90,5,90,5,44,2,38,253,41,248,22,244, +133,240,77,238,204,238,243,239,132,239,177,240,45,246,128,251,244,252,15,254,58,1,80,3,142,3,223,4,110,6,23,5, +92,2,14,2,216,3,64,4,49,2,10,1,67,4,185,9,123,12,222,12,99,14,195,15,168,14,237,14,175,19,174,23, +234,21,250,17,198,16,9,17,146,15,93,12,206,8,17,5,238,0,142,253,123,252,161,252,163,251,196,250,5,253,116,0, +162,0,49,254,36,252,150,249,93,245,64,242,185,241,166,240,5,237,114,233,8,233,100,235,145,237,227,237,12,238,22,240, +1,243,89,245,6,248,84,251,105,253,187,253,110,253,126,252,47,251,127,251,104,253,36,254,81,253,100,253,200,254,239,255, +17,1,148,3,76,7,240,10,181,13,160,15,49,17,174,18,146,19,48,19,91,17,73,14,235,10,176,8,221,7,54,7, +5,6,225,4,55,4,201,3,149,3,199,3,23,4,46,4,76,4,145,4,60,4,235,2,136,1,93,0,213,253,114,249, +152,245,200,243,129,242,78,241,83,242,184,245,57,248,246,247,144,246,1,246,128,246,89,247,58,248,175,249,227,251,6,253, +27,251,64,247,116,244,218,243,125,244,110,245,132,246,29,248,118,250,201,252,108,254,98,0,134,3,104,6,183,7,95,8, +5,9,144,8,34,7,196,6,161,7,94,7,110,5,75,4,41,5,58,6,174,6,103,8,185,11,215,13,169,13,147,13, +139,14,58,14,147,11,157,8,143,6,9,4,29,0,90,252,190,250,205,250,81,250,204,248,211,247,191,247,148,247,3,248, +80,250,43,253,173,254,230,254,160,253,19,250,110,246,198,245,167,246,185,245,194,243,52,243,14,243,91,241,129,239,22,240, +203,242,86,245,92,247,4,251,208,0,127,5,185,6,210,6,40,8,87,8,178,4,220,255,16,254,196,254,115,254,169,252, +35,252,180,253,39,255,210,255,58,2,88,7,14,12,105,13,112,12,251,11,175,12,123,12,235,9,212,6,140,5,220,4, +209,2,104,1,0,3,85,5,147,5,206,4,149,4,180,4,185,5,254,7,145,9,157,9,214,9,37,10,130,8,25,5, +140,1,68,254,173,251,116,250,28,250,103,250,166,251,101,252,142,251,63,251,112,252,174,252,233,251,20,253,153,255,188,0, +90,1,74,2,102,0,191,250,213,245,117,244,100,244,188,243,221,243,64,246,175,249,168,251,24,252,112,253,233,255,248,0, +210,0,22,2,192,3,46,3,102,2,93,4,203,6,122,6,219,4,81,4,17,4,220,2,3,2,90,3,192,5,247,5, +171,3,32,2,26,2,210,0,166,254,18,255,104,1,75,2,78,2,254,2,83,2,130,255,81,253,77,252,131,250,5,249, +63,250,254,252,102,254,10,254,139,253,233,253,179,253,248,250,214,247,107,248,71,251,161,251,74,250,179,250,177,250,105,247, +158,244,9,246,211,248,248,249,73,251,87,254,58,1,30,2,149,1,220,0,250,255,91,254,32,253,133,254,184,1,72,3, +212,2,18,3,22,4,173,3,139,2,84,3,23,6,0,9,105,11,147,13,18,15,245,14,30,13,196,10,247,8,114,7, +56,6,63,6,3,7,175,6,151,5,75,5,240,4,10,3,200,0,183,255,72,255,233,254,242,254,1,255,106,254,66,253, +113,251,230,248,157,246,52,245,25,244,79,243,126,243,75,244,49,245,37,246,14,246,35,244,172,242,208,243,88,245,199,244, +90,244,181,246,118,249,73,249,139,247,123,247,233,248,129,249,46,249,3,250,151,252,224,254,45,255,214,254,62,0,193,2, +141,3,167,2,9,3,30,5,37,6,165,5,251,5,96,7,196,7,203,6,169,5,19,5,157,5,21,7,207,7,199,7, +26,9,200,10,58,9,112,5,223,3,161,4,139,4,143,3,82,3,94,3,202,2,188,1,104,0,140,255,218,255,20,0, +156,255,170,0,105,3,30,4,13,2,203,0,235,0,106,255,38,252,148,249,128,248,13,249,191,251,49,255,41,1,164,1, +127,1,175,0,231,255,47,0,171,0,101,0,134,0,181,1,64,2,50,1,14,0,52,0,86,1,215,2,176,4,222,6, +241,8,20,10,166,9,36,8,198,6,211,5,138,4,44,3,63,3,249,4,156,6,24,7,201,6,133,5,242,2,102,0, +143,255,29,0,228,0,104,1,33,1,178,255,240,253,123,252,237,250,166,249,178,249,110,250,146,250,131,250,231,250,55,251, +152,251,252,252,172,254,204,254,84,253,8,252,14,252,241,252,149,253,162,253,165,253,155,253,198,252,94,251,80,250,105,249, +52,248,196,247,86,249,101,252,154,255,64,2,65,4,173,5,138,6,16,7,160,7,164,7,250,5,203,3,168,3,213,4, +73,4,52,2,199,0,206,255,230,254,150,255,117,1,135,2,22,4,222,7,27,11,25,11,162,9,56,8,123,5,118,1, +143,254,89,254,95,0,35,2,99,1,96,0,158,2,95,5,47,4,190,1,160,1,54,0,7,251,59,247,3,248,127,249, +215,248,2,247,141,244,123,242,1,243,47,245,5,246,228,245,223,246,105,248,235,248,39,248,22,247,215,247,96,251,45,255, +177,1,153,5,101,11,199,14,255,14,186,16,186,20,149,22,95,21,80,20,212,19,110,17,222,12,85,8,253,4,248,1, +133,254,183,251,241,250,142,251,246,251,228,251,111,251,8,250,11,248,123,246,209,244,20,242,36,239,6,237,1,235,141,232, +204,230,172,230,100,231,195,231,55,232,91,234,248,237,176,240,49,242,7,245,61,249,165,251,59,252,171,254,70,3,79,6, +154,6,244,6,87,9,176,12,203,14,211,14,113,14,149,15,132,17,160,18,155,19,69,21,218,21,225,19,159,16,116,13, +76,10,103,7,127,5,175,4,28,5,207,6,50,8,126,7,112,5,182,3,254,1,60,255,37,252,19,250,213,248,40,247, +137,244,239,241,157,240,66,240,115,239,140,238,174,239,225,242,149,245,56,247,17,250,124,254,1,2,204,3,86,5,169,6, +150,6,234,5,107,6,162,7,135,7,104,5,188,2,187,1,70,3,26,6,191,8,48,11,176,13,217,15,140,17,148,18, +215,17,5,15,123,11,222,7,176,3,144,255,129,252,195,249,230,246,135,245,52,246,153,246,1,245,173,242,138,241,214,241, +123,242,172,242,163,242,141,242,216,241,254,240,213,241,83,244,247,245,20,246,232,246,115,249,22,252,140,253,52,254,194,254, +105,255,207,255,230,255,219,0,118,3,46,6,121,7,125,8,210,10,208,13,39,16,166,17,123,18,171,18,50,18,21,17, +3,16,229,15,189,15,139,13,197,9,170,6,137,4,85,2,70,0,0,255,51,254,151,253,240,252,98,251,201,248,37,246, +175,243,245,240,160,238,142,237,65,237,53,237,211,237,24,239,74,240,107,241,63,243,246,245,104,248,248,248,218,247,134,247, +53,249,187,250,151,250,43,251,131,254,115,2,156,4,141,6,76,10,48,14,213,15,86,16,51,18,244,20,9,22,6,21, +51,20,3,21,13,22,44,21,84,18,65,15,247,12,181,10,179,7,148,4,115,2,105,1,172,0,190,255,56,255,241,255, +219,0,79,255,255,250,233,246,154,244,56,242,209,238,231,235,175,233,185,230,124,227,239,225,126,226,88,228,232,230,166,233, +107,236,166,239,247,242,113,245,92,247,73,249,196,250,209,251,35,253,100,254,86,255,53,1,252,3,199,5,196,6,216,8, +140,11,147,13,44,16,62,20,172,23,213,24,176,24,64,24,116,23,244,21,46,19,142,15,44,13,163,12,219,11,49,10, +93,9,41,9,69,7,120,3,231,255,9,254,153,253,24,253,94,251,193,249,7,250,69,250,125,247,88,243,151,241,166,241, +121,240,108,238,100,238,251,240,226,243,70,245,12,246,21,248,209,250,216,251,78,251,22,252,200,254,144,0,2,0,43,255, +26,0,98,2,143,4,66,6,108,8,148,11,68,14,107,14,62,12,50,10,247,9,12,11,48,12,221,12,5,13,36,12, +150,9,15,6,81,3,190,1,204,255,11,253,120,251,71,252,168,253,126,253,98,252,17,252,100,252,177,251,140,249,68,247, +179,245,97,244,48,243,21,243,105,244,4,246,204,246,239,246,38,247,2,248,193,249,209,251,17,253,154,253,231,254,89,1, +130,3,213,4,90,6,214,7,107,7,108,5,254,4,75,7,106,9,251,8,194,7,69,8,97,9,91,8,159,5,203,3, +14,3,94,1,223,254,223,253,141,254,216,254,86,254,83,254,156,254,204,253,245,251,254,249,223,247,182,245,183,244,70,245, +28,246,117,246,250,246,223,247,42,248,166,247,185,247,52,249,3,251,64,252,245,253,251,0,222,3,36,5,224,5,127,7, +8,9,67,9,90,9,138,10,140,11,5,11,84,10,62,11,253,12,249,13,99,14,223,14,158,14,237,12,208,10,76,9, +194,7,130,5,87,3,65,2,213,1,245,0,91,255,129,253,159,251,134,249,90,247,165,245,128,244,161,243,37,243,23,243, +150,242,246,240,52,239,144,238,185,238,214,238,253,238,105,239,240,239,239,240,0,243,147,245,128,247,210,248,175,250,144,253, +94,0,179,1,209,1,138,2,143,4,106,6,48,7,1,8,127,9,88,10,213,9,102,9,76,10,229,11,45,13,64,14, +148,15,207,16,7,17,249,15,79,14,134,12,81,10,163,7,41,5,60,3,155,1,85,0,165,255,36,255,140,254,92,254, +108,254,109,253,27,251,10,249,40,248,145,247,162,246,32,246,126,246,218,246,133,246,45,246,174,246,182,247,109,248,209,248, +90,249,244,249,166,250,55,252,153,254,2,0,164,255,136,255,119,1,253,3,224,4,150,4,240,4,55,6,106,7,14,8, +86,8,76,8,160,7,45,6,176,4,92,4,72,5,1,6,112,5,118,4,157,4,180,5,207,5,7,4,11,2,151,1, +131,1,203,255,137,253,75,253,86,254,199,253,198,251,32,251,42,252,71,252,148,250,66,249,232,249,61,251,76,251,41,250, +59,249,238,248,162,248,137,248,171,249,1,252,39,254,77,255,233,255,100,0,114,0,20,0,24,0,13,1,65,2,120,2, +200,1,178,1,218,2,212,3,107,3,168,2,241,2,149,3,100,3,31,3,218,3,37,4,0,2,167,254,63,253,53,254, +20,255,195,254,211,254,41,0,74,1,222,0,189,255,70,255,37,255,65,254,234,252,121,252,51,253,14,254,118,254,219,254, +116,255,172,255,251,254,162,253,144,252,164,252,198,253,6,255,250,255,39,1,180,2,226,3,66,4,72,4,100,4,161,4, +5,5,102,5,49,5,78,4,186,3,76,4,107,5,221,5,125,5,46,5,82,5,116,5,112,5,169,5,206,5,252,4, +151,3,77,3,100,4,243,4,185,3,230,1,230,0,66,0,240,254,45,253,147,251,180,249,18,247,140,244,146,243,92,244, +208,245,238,246,141,247,225,247,11,248,60,248,180,248,96,249,251,249,150,250,112,251,79,252,186,252,183,252,231,252,207,253, +79,255,206,0,222,1,204,2,39,4,208,5,22,7,209,7,115,8,248,8,190,8,181,7,216,6,225,6,39,7,200,6, +78,6,171,6,240,6,65,5,19,2,225,255,112,255,242,254,104,253,69,252,219,252,30,254,28,254,177,252,137,251,132,251, +133,251,126,250,66,249,9,249,92,249,236,248,146,247,147,246,30,247,206,248,253,249,25,250,154,250,82,252,170,253,161,253, +34,254,211,0,233,3,219,4,84,4,209,4,148,6,139,7,228,6,93,6,31,7,151,7,87,6,242,4,107,5,185,6, +194,6,200,5,79,5,97,5,17,5,41,4,6,3,224,1,205,0,213,255,247,254,71,254,194,253,36,253,111,252,11,252, +2,252,158,251,79,250,169,248,240,247,120,248,16,249,212,248,161,248,103,249,40,250,183,249,17,249,157,249,139,250,135,250, +147,250,94,252,8,255,92,0,104,0,17,1,165,2,141,3,122,3,30,4,48,6,2,8,9,8,221,6,193,5,224,4, +11,4,182,3,53,4,5,5,112,5,50,5,85,4,58,3,150,2,136,2,16,2,141,0,14,255,203,254,47,255,232,254, +14,254,125,253,246,252,173,251,17,250,46,249,210,248,255,247,8,247,104,247,70,249,226,250,248,250,24,250,55,249,117,248, +246,247,98,248,217,249,181,251,165,253,211,255,244,1,95,3,18,4,177,4,138,5,98,6,7,7,127,7,190,7,173,7, +136,7,176,7,40,8,143,8,153,8,32,8,8,7,179,5,243,4,234,4,175,4,226,3,112,3,201,3,194,3,112,2, +191,0,218,255,66,255,5,254,201,252,170,252,2,253,81,252,250,250,173,250,69,251,191,250,164,248,10,247,82,247,58,248, +39,248,140,247,198,247,248,248,81,250,155,251,57,253,229,254,190,255,166,255,178,255,201,0,119,2,158,3,237,3,24,4, +173,4,72,5,81,5,27,5,98,5,252,5,30,6,244,5,139,6,232,7,183,8,83,8,170,7,100,7,176,6,219,4, +223,2,11,2,15,2,190,1,239,0,68,0,136,255,239,253,199,251,95,250,22,250,239,249,81,249,236,248,107,249,58,250, +105,250,20,250,34,250,220,250,125,251,86,251,233,250,77,251,169,252,5,254,199,254,107,255,88,0,243,0,185,0,107,0, +7,1,37,2,173,2,209,2,210,3,208,5,83,7,118,7,6,7,230,6,169,6,188,5,198,4,184,4,55,5,26,5, +11,4,192,2,201,1,234,0,190,255,102,254,106,253,18,253,56,253,164,253,95,254,77,255,205,255,50,255,175,253,53,252, +75,251,156,250,242,249,221,249,205,250,55,252,77,253,236,253,57,254,238,253,239,252,4,252,11,252,223,252,192,253,127,254, +121,255,180,0,208,1,161,2,32,3,29,3,153,2,26,2,249,1,208,1,54,1,151,0,156,0,49,1,218,1,121,2, +4,3,0,3,37,2,17,1,127,0,55,0,160,255,245,254,244,254,137,255,212,255,116,255,219,254,84,254,143,253,82,252, +253,250,31,250,1,250,158,250,215,251,100,253,207,254,134,255,72,255,147,254,83,254,204,254,35,255,159,254,234,253,53,254, +106,255,106,0,226,0,135,1,131,2,33,3,107,3,102,4,45,6,80,7,246,6,55,6,67,6,129,6,226,5,228,4, +208,4,149,5,253,5,157,5,36,5,218,4,50,4,1,3,1,2,188,1,172,1,2,1,207,255,226,254,159,254,140,254, +25,254,126,253,83,253,116,253,34,253,79,252,239,251,120,252,254,252,166,252,14,252,50,252,169,252,116,252,231,251,51,252, +59,253,183,253,136,253,16,254,203,255,67,1,65,1,134,0,103,0,219,0,34,1,76,1,242,1,219,2,52,3,226,2, +165,2,230,2,50,3,19,3,212,2,1,3,128,3,170,3,66,3,212,2,230,2,26,3,169,2,149,1,164,0,51,0, +207,255,42,255,164,254,143,254,160,254,147,254,146,254,139,254,230,253,147,252,133,251,115,251,216,251,222,251,155,251,144,251, +168,251,154,251,171,251,36,252,139,252,97,252,51,252,226,252,66,254,92,255,227,255,105,0,88,1,116,2,107,3,18,4, +52,4,183,3,250,2,146,2,164,2,202,2,158,2,36,2,202,1,15,2,238,2,156,3,78,3,48,2,37,1,144,0, +12,0,73,255,145,254,47,254,13,254,4,254,1,254,199,253,54,253,186,252,200,252,0,253,172,252,249,251,190,251,46,252, +189,252,44,253,163,253,211,253,87,253,199,252,42,253,68,254,210,254,146,254,151,254,91,255,6,0,255,255,190,255,168,255, +106,255,14,255,91,255,131,0,156,1,243,1,226,1,228,1,219,1,188,1,218,1,41,2,58,2,47,2,165,2,85,3, +7,3,104,1,183,255,31,255,105,255,198,255,246,255,12,0,238,255,158,255,108,255,126,255,155,255,137,255,45,255,112,254, +127,253,226,252,200,252,177,252,119,252,218,252,35,254,59,255,75,255,74,255,80,0,100,1,245,0,168,255,122,255,131,0, +9,1,173,0,8,1,183,2,59,4,117,4,67,4,157,4,245,4,119,4,155,3,75,3,140,3,202,3,200,3,140,3, +254,2,16,2,236,0,210,255,29,255,39,255,182,255,4,0,232,255,50,0,33,1,126,1,94,0,201,254,32,254,0,254, +78,253,117,252,141,252,34,253,247,252,112,252,235,252,5,254,5,254,229,252,113,252,58,253,229,253,240,253,165,254,109,0, +162,1,71,1,204,0,157,1,167,2,42,2,174,0,67,0,102,1,135,2,138,2,50,2,143,2,70,3,66,3,138,2, +56,2,165,2,189,2,228,1,87,1,97,2,239,3,212,3,41,2,32,1,84,1,191,0,128,254,227,252,206,253,131,255, +86,255,222,253,133,253,69,254,8,254,158,252,11,252,223,252,92,253,195,252,162,252,237,253,54,255,28,255,106,254,104,254, +190,254,135,254,44,254,155,254,140,255,32,0,123,0,95,1,148,2,15,3,152,2,18,2,17,2,38,2,217,1,119,1, +109,1,134,1,106,1,102,1,244,1,171,2,141,2,146,1,245,0,125,1,61,2,244,1,237,0,113,0,160,0,77,0, +21,255,26,254,30,254,61,254,125,253,132,252,141,252,109,253,244,253,205,253,177,253,229,253,200,253,38,253,192,252,33,253, +186,253,216,253,190,253,31,254,238,254,113,255,81,255,235,254,159,254,101,254,53,254,78,254,220,254,177,255,142,0,107,1, +37,2,90,2,235,1,72,1,221,0,135,0,17,0,225,255,99,0,16,1,222,0,183,255,170,254,114,254,148,254,95,254, +14,254,73,254,253,254,113,255,94,255,78,255,190,255,70,0,37,0,116,255,48,255,205,255,91,0,211,255,189,254,109,254, +211,254,145,254,128,253,68,253,152,254,222,255,198,255,167,255,47,1,42,3,45,3,138,1,202,0,141,1,214,1,198,0, +26,0,20,1,102,2,152,2,97,2,255,2,218,3,146,3,83,2,113,1,83,1,61,1,216,0,156,0,208,0,14,1, +255,0,226,0,30,1,152,1,185,1,35,1,62,0,194,255,204,255,222,255,205,255,223,255,241,255,134,255,213,254,180,254, +22,255,238,254,29,254,241,253,221,254,111,255,183,254,242,253,72,254,172,254,252,253,129,253,227,254,10,1,199,1,121,1, +26,2,112,3,83,3,134,1,40,0,43,0,74,0,232,255,49,0,149,1,179,2,171,2,107,2,193,2,0,3,139,2, +239,1,171,1,67,1,119,0,249,255,54,0,135,0,88,0,255,255,225,255,194,255,118,255,96,255,173,255,226,255,141,255, +231,254,124,254,164,254,78,255,247,255,8,0,173,255,190,255,111,0,215,0,120,0,48,0,182,0,45,1,153,0,189,255, +216,255,110,0,43,0,132,255,39,0,251,1,226,2,234,1,181,0,221,0,179,1,193,1,43,1,35,1,197,1,252,1, +111,1,30,1,176,1,45,2,69,1,97,255,73,254,173,254,83,255,54,255,51,255,89,0,182,1,137,1,30,0,98,255, +184,255,131,255,54,254,143,253,158,254,210,255,130,255,171,254,5,255,229,255,94,255,173,253,241,252,183,253,76,254,214,253, +177,253,217,254,255,255,170,255,175,254,203,254,194,255,215,255,196,254,56,254,5,255,217,255,150,255,56,255,255,255,57,1, +116,1,204,0,137,0,229,0,141,0,206,254,36,253,59,253,94,254,215,254,181,254,21,255,192,255,138,255,64,254,243,252, +193,252,135,253,5,254,220,253,95,254,18,0,57,1,140,0,60,255,218,254,46,255,46,255,208,254,46,255,214,0,129,2, +177,2,60,2,215,2,202,3,31,3,59,1,39,0,92,0,174,0,159,0,239,0,22,2,32,3,182,2,61,1,132,0, +242,0,235,0,152,255,94,254,188,254,45,0,15,1,233,0,193,0,30,1,8,1,204,255,90,254,209,253,10,254,96,254, +185,254,67,255,197,255,181,255,27,255,201,254,234,254,114,254,19,253,10,252,243,251,46,252,146,252,64,253,144,253,92,253, +124,253,234,253,239,253,197,253,213,253,212,253,221,253,75,254,185,254,24,255,220,255,89,0,207,255,90,255,207,255,69,0, +122,0,2,1,55,1,242,0,176,1,25,3,9,3,238,1,184,1,176,1,100,0,208,254,96,254,35,255,126,0,26,1, +48,0,97,255,137,255,29,254,29,250,34,247,238,247,65,251,242,254,53,1,200,0,21,255,249,253,191,251,237,246,219,242, +172,242,112,244,124,245,114,246,235,248,12,253,92,1,232,3,251,4,192,6,111,8,217,6,162,2,181,255,2,255,238,254, +94,255,184,0,75,2,199,3,134,4,155,2,38,254,151,250,6,250,187,250,123,250,99,249,56,249,1,251,140,253,184,255, +95,3,231,9,52,15,211,13,182,6,40,255,39,249,75,243,115,238,154,238,183,245,115,0,138,9,168,15,95,21,110,27, +231,30,48,30,49,28,110,28,135,30,102,31,193,29,130,27,123,26,107,25,178,21,207,14,158,6,241,254,74,248,164,242, +171,238,131,237,53,239,54,242,14,245,111,247,68,249,224,249,164,248,194,245,123,242,67,240,21,239,187,237,84,236,156,236, +38,239,126,242,86,245,164,247,243,249,151,252,227,254,86,255,178,253,15,252,143,252,40,255,96,2,18,5,44,7,243,8, +191,9,131,8,14,6,147,4,104,4,244,3,46,3,235,3,94,6,69,8,31,8,61,7,199,7,146,9,72,10,161,8, +226,5,88,3,88,0,40,252,30,248,54,246,123,246,65,247,142,247,85,248,144,250,20,253,235,253,250,252,39,252,228,252, +201,254,249,0,180,3,167,7,65,12,203,15,29,17,120,16,144,14,124,11,1,7,146,1,118,252,221,248,15,247,150,246, +255,246,255,247,242,248,180,248,150,246,74,243,72,240,69,238,240,236,92,236,171,237,158,241,9,247,196,251,3,255,172,1, +87,4,45,6,95,6,210,5,60,6,251,7,211,9,230,10,228,11,215,13,82,16,191,17,64,17,124,15,125,13,119,11, +53,9,6,7,124,5,116,4,68,3,247,1,95,1,160,1,146,1,86,0,205,254,103,254,209,254,6,254,198,250,0,246, +118,241,238,237,91,235,248,233,87,234,125,236,162,239,220,242,165,245,207,247,92,249,113,250,75,251,45,252,90,253,240,254, +186,0,85,2,127,3,0,4,103,3,83,1,42,254,8,251,193,248,88,247,173,246,15,247,168,248,216,250,196,252,63,254, +144,255,158,0,248,0,149,0,244,255,135,255,129,255,12,0,49,1,152,2,225,3,32,5,138,6,217,7,147,8,196,8, +196,8,132,8,216,7,82,7,236,7,178,9,163,11,13,13,1,14,116,14,209,13,245,11,191,9,205,7,171,5,5,3, +166,0,95,255,227,254,147,254,173,254,160,255,190,0,200,0,167,255,101,254,57,253,81,251,213,248,52,247,5,247,109,247, +202,247,125,248,226,249,103,251,8,252,152,251,239,250,120,250,169,249,154,248,113,248,160,249,139,251,202,253,53,0,68,2, +127,3,186,3,207,2,234,0,165,254,96,252,97,250,36,249,190,248,203,248,64,249,49,250,49,251,237,251,168,252,163,253, +221,254,80,0,210,1,60,3,170,4,25,6,61,7,254,7,151,8,23,9,34,9,56,8,100,6,98,4,185,2,104,1, +165,0,204,0,129,1,22,2,112,2,169,2,187,2,155,2,14,2,253,0,242,255,46,255,82,254,216,253,142,254,124,255, +46,255,47,254,169,253,123,253,75,253,90,253,211,253,169,254,70,255,163,254,56,253,243,252,1,254,199,254,66,255,159,0, +99,2,30,3,113,2,205,0,232,254,89,253,218,251,58,250,138,249,112,250,232,251,42,253,178,254,177,0,119,2,89,3, +12,3,220,1,180,0,41,0,46,0,195,0,225,1,253,2,120,3,4,3,207,1,112,0,62,255,43,254,80,253,234,252, +237,252,97,253,92,254,122,255,93,0,34,1,138,1,36,1,79,0,95,255,243,253,107,252,223,251,77,252,36,253,134,254, +54,0,70,1,107,1,173,0,251,254,63,253,145,252,99,252,36,252,215,252,207,254,143,0,18,1,166,0,159,255,17,254, +6,252,169,249,5,248,42,248,106,249,120,250,158,251,147,253,171,255,235,0,92,1,172,1,116,2,181,3,237,4,51,6, +27,8,39,10,34,11,8,11,179,10,78,10,143,9,172,8,7,8,165,7,71,7,181,6,208,5,125,4,180,2,181,0, +236,254,154,253,226,252,196,252,241,252,50,253,136,253,163,253,53,253,163,252,36,252,37,251,202,249,57,249,184,249,167,250, +10,252,13,254,255,255,73,1,27,2,158,2,217,2,11,3,43,3,3,3,235,2,84,3,1,4,158,4,70,5,230,5, +229,5,219,4,49,3,176,1,168,0,244,255,168,255,251,255,150,0,212,0,147,0,9,0,86,255,147,254,185,253,151,252, +98,251,189,250,203,250,33,251,182,251,200,252,235,253,96,254,51,254,16,254,89,254,15,255,29,0,68,1,56,2,233,2, +72,3,33,3,161,2,90,2,83,2,240,1,17,1,72,0,219,255,144,255,88,255,80,255,63,255,208,254,1,254,238,252, +184,251,190,250,83,250,52,250,246,249,198,249,8,250,169,250,94,251,45,252,60,253,105,254,89,255,204,255,238,255,66,0, +235,0,96,1,78,1,50,1,98,1,98,1,238,0,186,0,69,1,8,2,125,2,221,2,94,3,182,3,173,3,88,3, +195,2,255,1,72,1,163,0,233,255,77,255,37,255,48,255,240,254,116,254,24,254,193,253,45,253,131,252,19,252,249,251, +59,252,215,252,184,253,221,254,63,0,122,1,43,2,140,2,242,2,35,3,253,2,8,3,139,3,4,4,69,4,212,4, +157,5,195,5,41,5,128,4,192,3,83,2,166,0,200,255,181,255,157,255,103,255,130,255,165,255,28,255,225,253,132,252, +90,251,73,250,60,249,116,248,89,248,231,248,143,249,6,250,159,250,108,251,221,251,196,251,213,251,107,252,11,253,126,253, +50,254,46,255,226,255,53,0,145,0,247,0,35,1,70,1,174,1,41,2,135,2,7,3,163,3,226,3,170,3,104,3, +29,3,100,2,89,1,122,0,192,255,202,254,191,253,24,253,213,252,155,252,109,252,154,252,30,253,151,253,213,253,30,254, +174,254,59,255,103,255,131,255,32,0,251,0,86,1,90,1,216,1,176,2,245,2,158,2,128,2,165,2,83,2,157,1, +71,1,88,1,70,1,47,1,115,1,184,1,147,1,110,1,181,1,240,1,153,1,7,1,177,0,119,0,38,0,238,255, +4,0,77,0,163,0,0,1,116,1,10,2,160,2,232,2,223,2,252,2,142,3,74,4,202,4,29,5,113,5,167,5, +119,5,188,4,141,3,45,2,204,0,101,255,34,254,142,253,204,253,17,254,198,253,131,253,228,253,58,254,163,253,127,252, +163,251,10,251,86,250,192,249,153,249,184,249,237,249,51,250,73,250,5,250,223,249,70,250,230,250,85,251,211,251,162,252, +119,253,35,254,217,254,134,255,233,255,68,0,221,0,52,1,209,0,76,0,70,0,78,0,233,255,187,255,90,0,19,1, +3,1,115,0,46,0,83,0,146,0,184,0,168,0,102,0,81,0,185,0,89,1,204,1,38,2,134,2,153,2,36,2, +130,1,242,0,52,0,67,255,188,254,249,254,131,255,205,255,250,255,114,0,60,1,30,2,245,2,188,3,68,4,72,4, +199,3,31,3,174,2,108,2,38,2,230,1,214,1,225,1,222,1,218,1,208,1,142,1,36,1,231,0,184,0,23,0, +32,255,140,254,130,254,88,254,206,253,104,253,114,253,155,253,176,253,210,253,236,253,219,253,243,253,138,254,71,255,172,255, +227,255,98,0,36,1,218,1,87,2,123,2,57,2,215,1,165,1,115,1,9,1,200,0,11,1,94,1,61,1,248,0, +237,0,145,0,74,255,142,253,67,252,145,251,68,251,156,251,216,252,130,254,237,255,254,0,236,1,132,2,78,2,75,1, +22,0,62,255,176,254,25,254,161,253,195,253,125,254,74,255,16,0,48,1,127,2,23,3,184,2,65,2,74,2,37,2, +37,1,238,255,152,255,28,0,169,0,35,1,28,2,129,3,116,4,173,4,213,4,66,5,61,5,39,4,148,2,155,1, +140,1,205,1,204,1,149,1,140,1,215,1,66,2,161,2,245,2,43,3,13,3,211,2,9,3,159,3,181,3,201,2, +97,1,42,0,67,255,164,254,128,254,234,254,172,255,131,0,43,1,66,1,170,0,165,255,88,254,171,252,198,250,43,249, +40,248,182,247,225,247,193,248,41,250,186,251,43,253,53,254,148,254,91,254,250,253,189,253,150,253,111,253,103,253,152,253, +230,253,47,254,139,254,71,255,144,0,63,2,8,4,182,5,4,7,156,7,108,7,202,6,245,5,183,4,231,2,237,0, +127,255,235,254,237,254,37,255,126,255,11,0,141,0,145,0,4,0,49,255,47,254,232,252,182,251,36,251,51,251,152,251, +121,252,248,253,143,255,192,0,209,1,226,2,57,3,121,2,106,1,186,0,14,0,27,255,126,254,221,254,22,0,188,1, +127,3,240,4,125,5,187,4,144,2,115,255,109,252,66,250,179,248,75,247,85,246,33,246,33,246,187,245,102,245,241,245, +62,247,148,248,211,249,142,251,19,254,210,0,213,2,184,3,212,3,129,3,172,2,105,1,72,0,180,255,130,255,116,255, +155,255,229,255,244,255,146,255,225,254,16,254,87,253,33,253,220,253,133,255,154,1,113,3,145,4,203,4,47,4,47,3, +174,2,81,3,120,4,223,4,92,4,245,3,249,3,153,3,151,2,199,1,122,1,32,1,196,0,83,1,10,3,232,4, +222,5,172,5,152,4,230,2,166,0,253,253,163,251,191,250,199,251,53,254,147,1,170,5,145,9,209,11,233,11,119,10, +242,7,134,4,3,1,132,254,80,253,18,253,161,253,200,254,194,255,190,255,133,254,98,252,234,249,221,247,230,246,90,247, +49,249,248,251,219,254,20,1,60,2,26,2,160,0,78,254,0,252,63,250,78,249,127,249,194,250,97,252,191,253,192,254, +20,255,22,254,240,251,220,249,233,248,79,249,26,251,104,254,203,2,17,7,234,9,182,10,195,9,203,7,53,5,54,2, +123,255,211,253,56,253,34,253,173,253,52,255,13,1,231,1,85,1,1,0,164,254,158,253,32,253,51,253,184,253,137,254, +74,255,118,255,235,254,250,253,207,252,155,251,59,251,130,252,8,255,178,1,13,4,5,6,250,6,61,6,255,3,233,0, +90,253,187,249,229,246,169,245,46,246,224,247,238,249,227,251,194,253,92,255,33,0,249,255,131,255,21,255,135,254,61,254, +6,255,177,0,32,2,231,2,99,3,115,3,159,2,64,1,32,0,124,255,96,255,47,0,235,1,183,3,179,4,190,4, +29,4,251,2,116,1,204,255,139,254,68,254,242,254,227,255,165,0,101,1,253,1,176,1,91,0,238,254,27,254,175,253, +137,253,41,254,194,255,139,1,115,2,15,2,189,0,21,255,126,253,75,252,15,252,38,253,36,255,89,1,155,3,197,5, +232,6,30,6,210,3,69,1,75,255,42,254,11,254,230,254,105,0,60,2,238,3,225,4,208,4,6,4,201,2,57,1, +230,255,121,255,202,255,80,0,35,1,109,2,111,3,40,3,147,1,120,255,150,253,105,252,45,252,244,252,246,254,86,2, +47,6,250,8,57,10,118,10,160,9,37,7,199,3,99,1,167,0,174,0,212,0,84,1,37,2,160,2,85,2,90,1, +250,255,115,254,227,252,107,251,128,250,177,250,206,251,228,252,77,253,62,253,16,253,172,252,253,251,112,251,163,251,177,252, +12,254,41,255,20,0,11,1,195,1,197,1,99,1,111,1,41,2,31,3,238,3,129,4,224,4,66,5,216,5,71,6, +230,5,147,4,170,2,110,0,60,254,217,252,185,252,102,253,24,254,83,254,185,253,45,252,66,250,223,248,111,248,235,248, +71,250,123,252,117,255,31,3,232,6,167,9,169,10,86,10,54,9,94,7,88,5,51,4,7,4,220,3,118,3,130,3, +183,3,185,2,45,0,71,253,244,250,3,249,115,247,24,247,108,248,116,250,146,251,52,251,58,250,140,249,251,248,30,248, +121,247,202,247,185,248,130,249,106,250,70,252,213,254,203,0,116,1,66,1,204,0,55,0,176,255,174,255,74,0,197,0, +109,0,179,255,147,255,252,255,222,255,200,254,100,253,65,252,100,251,48,251,88,252,162,254,214,0,21,2,89,2,182,1, +23,0,188,253,93,251,179,249,36,249,185,249,56,251,87,253,151,255,25,1,34,1,242,255,125,254,93,253,173,252,151,252, +76,253,153,254,14,0,73,1,214,1,77,1,220,255,48,254,185,252,162,251,97,251,141,252,17,255,3,2,94,4,177,5, +44,6,25,6,87,5,166,3,132,1,17,0,199,255,41,0,200,0,184,1,171,2,223,2,71,2,219,1,38,2,109,2, +210,1,177,0,37,0,134,0,20,1,56,1,62,1,134,1,176,1,79,1,216,0,251,0,148,1,28,2,171,2,194,3, +72,5,148,6,36,7,207,6,167,5,22,4,206,2,58,2,71,2,194,2,148,3,132,4,43,5,80,5,16,5,152,4, +242,3,30,3,59,2,130,1,20,1,216,0,142,0,235,255,209,254,140,253,192,252,206,252,124,253,74,254,234,254,48,255, +237,254,45,254,45,253,237,251,60,250,70,248,186,246,48,246,179,246,252,247,206,249,2,252,96,254,135,0,31,2,62,3, +82,4,114,5,38,6,43,6,237,5,223,5,200,5,61,5,51,4,215,2,66,1,175,255,140,254,14,254,4,254,42,254, +102,254,176,254,17,255,157,255,59,0,145,0,77,0,79,255,172,253,184,251,18,250,88,249,186,249,230,250,101,252,215,253, +222,254,47,255,232,254,116,254,43,254,59,254,199,254,207,255,14,1,45,2,218,2,207,2,12,2,252,0,27,0,147,255, +104,255,204,255,188,0,191,1,129,2,59,3,243,3,9,4,9,3,119,1,41,0,102,255,15,255,49,255,213,255,148,0, +236,0,203,0,113,0,41,0,54,0,149,0,224,0,202,0,131,0,62,0,209,255,31,255,127,254,76,254,107,254,162,254, +8,255,165,255,19,0,2,0,167,255,93,255,32,255,189,254,81,254,58,254,162,254,87,255,32,0,218,0,60,1,3,1, +93,0,195,255,141,255,195,255,72,0,2,1,233,1,194,2,27,3,206,2,52,2,131,1,128,0,46,255,46,254,227,253, +227,253,204,253,242,253,155,254,92,255,204,255,8,0,45,0,22,0,208,255,161,255,141,255,107,255,82,255,105,255,116,255, +63,255,254,254,210,254,120,254,235,253,173,253,251,253,110,254,162,254,153,254,104,254,24,254,217,253,210,253,213,253,177,253, +139,253,151,253,186,253,168,253,59,253,163,252,72,252,116,252,10,253,198,253,141,254,72,255,190,255,246,255,68,0,196,0, +17,1,224,0,121,0,105,0,232,0,162,1,25,2,68,2,145,2,12,3,40,3,196,2,118,2,142,2,180,2,158,2, +87,2,246,1,149,1,98,1,124,1,213,1,53,2,63,2,169,1,168,0,7,0,75,0,242,0,44,1,250,0,242,0, +117,1,112,2,111,3,231,3,216,3,170,3,116,3,16,3,177,2,163,2,181,2,145,2,107,2,157,2,222,2,168,2, +3,2,78,1,163,0,11,0,160,255,48,255,118,254,160,253,5,253,171,252,105,252,78,252,138,252,233,252,223,252,130,252, +122,252,209,252,234,252,184,252,239,252,31,254,15,0,205,1,161,2,222,2,5,3,200,2,0,2,109,1,128,1,180,1, +182,1,235,1,114,2,226,2,9,3,22,3,30,3,36,3,66,3,88,3,252,2,249,1,85,0,28,254,168,251,177,249, +224,248,130,249,99,251,206,253,10,0,178,1,111,2,17,2,222,0,75,255,170,253,77,252,113,251,49,251,165,251,191,252, +1,254,198,254,178,254,241,253,59,253,28,253,86,253,144,253,28,254,77,255,174,0,146,1,191,1,46,1,255,255,202,254, +57,254,108,254,63,255,133,0,171,1,33,2,13,2,204,1,55,1,81,0,194,255,215,255,9,0,0,0,6,0,41,0, +245,255,83,255,212,254,243,254,155,255,90,0,148,0,246,255,232,254,15,254,134,253,24,253,238,252,89,253,65,254,38,255, +167,255,199,255,180,255,152,255,144,255,137,255,112,255,104,255,131,255,158,255,190,255,15,0,92,0,61,0,195,255,110,255, +158,255,38,0,158,0,16,1,232,1,24,3,30,4,188,4,9,5,232,4,13,4,156,2,100,1,247,0,253,0,247,0, +217,0,121,0,181,255,33,255,69,255,206,255,96,0,37,1,47,2,45,3,196,3,210,3,140,3,48,3,190,2,32,2, +70,1,70,0,146,255,127,255,187,255,1,0,146,0,120,1,76,2,226,2,65,3,65,3,199,2,28,2,171,1,131,1, +119,1,133,1,157,1,115,1,27,1,230,0,149,0,255,255,176,255,213,255,230,255,225,255,40,0,136,0,171,0,172,0, +168,0,131,0,62,0,252,255,224,255,217,255,173,255,73,255,193,254,42,254,159,253,33,253,149,252,42,252,36,252,91,252, +176,252,85,253,33,254,145,254,148,254,89,254,222,253,65,253,236,252,19,253,127,253,3,254,151,254,245,254,190,254,63,254, +51,254,183,254,99,255,16,0,166,0,223,0,209,0,211,0,202,0,100,0,201,255,85,255,38,255,67,255,177,255,36,0, +41,0,196,255,62,255,146,254,186,253,23,253,234,252,240,252,241,252,27,253,166,253,110,254,250,254,247,254,172,254,146,254, +164,254,151,254,130,254,176,254,12,255,75,255,117,255,208,255,103,0,247,0,98,1,228,1,170,2,118,3,249,3,58,4, +39,4,117,3,119,2,246,1,231,1,221,1,13,2,152,2,255,2,39,3,67,3,40,3,251,2,69,3,201,3,242,3, +215,3,152,3,229,2,216,1,238,0,68,0,171,255,32,255,205,254,179,254,137,254,19,254,110,253,218,252,104,252,13,252, +227,251,30,252,163,252,39,253,186,253,141,254,106,255,39,0,203,0,8,1,189,0,97,0,24,0,206,255,235,255,100,0, +124,0,82,0,140,0,226,0,247,0,39,1,105,1,61,1,175,0,30,0,187,255,149,255,116,255,23,255,192,254,200,254, +242,254,213,254,132,254,83,254,48,254,191,253,40,253,249,252,75,253,219,253,114,254,191,254,153,254,92,254,63,254,26,254, +25,254,150,254,95,255,242,255,29,0,14,0,9,0,20,0,24,0,47,0,95,0,132,0,166,0,196,0,166,0,106,0, +89,0,80,0,28,0,220,255,154,255,84,255,42,255,7,255,204,254,154,254,120,254,85,254,95,254,150,254,161,254,149,254, +229,254,127,255,227,255,4,0,44,0,74,0,20,0,164,255,96,255,112,255,188,255,40,0,152,0,234,0,10,1,249,0, +222,0,207,0,171,0,113,0,119,0,208,0,19,1,9,1,251,0,13,1,11,1,233,0,231,0,16,1,54,1,89,1, +114,1,63,1,193,0,98,0,83,0,127,0,231,0,118,1,239,1,66,2,133,2,200,2,43,3,163,3,211,3,135,3, +22,3,218,2,177,2,88,2,5,2,38,2,176,2,57,3,121,3,100,3,35,3,229,2,118,2,183,1,28,1,212,0, +107,0,190,255,28,255,148,254,35,254,222,253,172,253,156,253,209,253,22,254,79,254,180,254,19,255,18,255,222,254,160,254, +40,254,134,253,2,253,185,252,172,252,185,252,168,252,124,252,101,252,124,252,164,252,174,252,161,252,155,252,147,252,165,252, +5,253,86,253,76,253,108,253,219,253,247,253,218,253,46,254,168,254,195,254,214,254,61,255,184,255,19,0,117,0,1,1, +123,1,128,1,43,1,254,0,248,0,173,0,8,0,87,255,246,254,247,254,49,255,159,255,83,0,14,1,150,1,238,1, +248,1,196,1,177,1,166,1,77,1,252,0,246,0,223,0,205,0,25,1,65,1,173,0,208,255,96,255,115,255,189,255, +246,255,24,0,90,0,185,0,220,0,182,0,162,0,187,0,158,0,53,0,0,0,47,0,80,0,38,0,229,255,183,255, +178,255,230,255,48,0,107,0,168,0,217,0,204,0,133,0,53,0,233,255,130,255,2,255,188,254,239,254,111,255,11,0, +212,0,172,1,75,2,184,2,18,3,59,3,45,3,7,3,183,2,52,2,212,1,172,1,84,1,176,0,33,0,204,255, +155,255,168,255,228,255,251,255,249,255,48,0,152,0,248,0,65,1,109,1,135,1,142,1,81,1,217,0,98,0,196,255, +235,254,85,254,39,254,1,254,4,254,147,254,102,255,13,0,136,0,221,0,240,0,189,0,83,0,215,255,132,255,115,255, +118,255,86,255,27,255,246,254,204,254,101,254,207,253,37,253,107,252,233,251,238,251,106,252,39,253,227,253,114,254,4,255, +190,255,72,0,137,0,203,0,19,1,88,1,176,1,216,1,185,1,184,1,206,1,180,1,207,1,81,2,171,2,168,2, +157,2,142,2,88,2,20,2,207,1,130,1,35,1,163,0,14,0,130,255,9,255,189,254,152,254,128,254,169,254,53,255, +170,255,191,255,222,255,75,0,178,0,173,0,67,0,220,255,165,255,78,255,167,254,255,253,165,253,160,253,202,253,237,253, +24,254,110,254,171,254,168,254,188,254,244,254,8,255,12,255,51,255,118,255,224,255,82,0,114,0,78,0,59,0,60,0, +86,0,188,0,74,1,161,1,180,1,167,1,136,1,89,1,24,1,205,0,128,0,42,0,222,255,212,255,42,0,204,0, +149,1,81,2,199,2,229,2,204,2,154,2,48,2,139,1,13,1,249,0,246,0,171,0,76,0,38,0,20,0,209,255, +108,255,37,255,9,255,254,254,2,255,19,255,10,255,224,254,194,254,188,254,180,254,141,254,55,254,211,253,165,253,158,253, +82,253,156,252,242,251,176,251,161,251,162,251,19,252,250,252,196,253,78,254,245,254,168,255,11,0,33,0,31,0,35,0, +68,0,119,0,172,0,242,0,62,1,101,1,112,1,135,1,186,1,243,1,12,2,21,2,60,2,100,2,91,2,28,2, +142,1,172,0,206,255,29,255,129,254,27,254,236,253,169,253,94,253,42,253,225,252,211,252,112,253,29,254,53,254,67,254, +231,254,191,255,55,0,98,0,166,0,252,0,1,1,177,0,121,0,124,0,144,0,174,0,221,0,24,1,71,1,62,1, +32,1,54,1,83,1,61,1,59,1,100,1,110,1,86,1,52,1,5,1,237,0,211,0,93,0,187,255,116,255,127,255, +129,255,91,255,33,255,25,255,103,255,208,255,46,0,150,0,229,0,248,0,245,0,239,0,224,0,191,0,115,0,40,0, +63,0,154,0,218,0,244,0,232,0,170,0,114,0,107,0,117,0,132,0,158,0,159,0,145,0,173,0,238,0,17,1, +246,0,190,0,142,0,93,0,20,0,183,255,92,255,8,255,186,254,135,254,156,254,229,254,243,254,179,254,171,254,242,254, +237,254,131,254,67,254,115,254,214,254,28,255,44,255,79,255,199,255,52,0,54,0,18,0,14,0,13,0,41,0,139,0, +211,0,186,0,159,0,170,0,131,0,57,0,46,0,66,0,54,0,52,0,88,0,139,0,220,0,45,1,47,1,247,0, +190,0,107,0,17,0,240,255,234,255,187,255,136,255,147,255,202,255,218,255,160,255,114,255,147,255,208,255,4,0,88,0, +184,0,4,1,87,1,144,1,117,1,69,1,76,1,87,1,89,1,175,1,81,2,166,2,99,2,247,1,185,1,124,1, +46,1,247,0,197,0,123,0,61,0,21,0,229,255,138,255,228,254,59,254,15,254,22,254,232,253,4,254,158,254,14,255, +86,255,209,255,248,255,163,255,139,255,161,255,80,255,226,254,194,254,187,254,198,254,8,255,77,255,115,255,158,255,183,255, +153,255,128,255,178,255,11,0,69,0,117,0,172,0,186,0,174,0,190,0,160,0,37,0,170,255,84,255,243,254,182,254, +176,254,148,254,112,254,125,254,147,254,164,254,223,254,34,255,71,255,95,255,102,255,107,255,162,255,224,255,212,255,159,255, +144,255,163,255,172,255,163,255,178,255,226,255,251,255,241,255,240,255,252,255,253,255,242,255,223,255,224,255,251,255,222,255, +119,255,72,255,96,255,80,255,50,255,96,255,145,255,132,255,135,255,171,255,183,255,184,255,185,255,130,255,45,255,40,255, +111,255,160,255,181,255,214,255,227,255,203,255,194,255,216,255,217,255,183,255,148,255,173,255,24,0,131,0,152,0,136,0, +165,0,210,0,217,0,200,0,187,0,196,0,248,0,81,1,177,1,236,1,211,1,90,1,193,0,97,0,93,0,164,0, +18,1,88,1,50,1,227,0,239,0,34,1,234,0,122,0,105,0,175,0,225,0,232,0,227,0,216,0,176,0,104,0, +25,0,207,255,151,255,161,255,221,255,243,255,248,255,46,0,82,0,56,0,38,0,18,0,214,255,196,255,7,0,72,0, +112,0,182,0,4,1,27,1,246,0,192,0,149,0,88,0,238,255,127,255,67,255,74,255,122,255,134,255,94,255,78,255, +86,255,52,255,30,255,92,255,183,255,240,255,244,255,198,255,172,255,205,255,199,255,131,255,113,255,166,255,213,255,239,255, +252,255,11,0,61,0,108,0,99,0,79,0,77,0,35,0,219,255,201,255,237,255,227,255,110,255,219,254,167,254,221,254, +37,255,65,255,54,255,53,255,99,255,153,255,189,255,8,0,86,0,51,0,209,255,192,255,238,255,241,255,180,255,95,255, +48,255,72,255,114,255,128,255,146,255,189,255,225,255,221,255,162,255,82,255,63,255,115,255,169,255,203,255,21,0,159,0, +41,1,111,1,114,1,79,1,20,1,224,0,176,0,98,0,60,0,165,0,61,1,102,1,90,1,131,1,158,1,122,1, +88,1,56,1,234,0,168,0,179,0,216,0,217,0,182,0,135,0,108,0,102,0,65,0,10,0,27,0,84,0,67,0, +11,0,5,0,255,255,200,255,165,255,173,255,185,255,203,255,222,255,225,255,239,255,255,255,232,255,220,255,0,0,5,0, +209,255,180,255,173,255,128,255,68,255,45,255,59,255,87,255,92,255,56,255,32,255,41,255,21,255,225,254,225,254,244,254, +191,254,161,254,16,255,144,255,139,255,71,255,17,255,198,254,111,254,48,254,21,254,77,254,164,254,138,254,57,254,92,254, +179,254,203,254,239,254,50,255,61,255,64,255,119,255,162,255,195,255,23,0,85,0,40,0,196,255,127,255,123,255,182,255, +235,255,196,255,95,255,46,255,90,255,175,255,17,0,131,0,208,0,184,0,97,0,25,0,228,255,186,255,169,255,180,255, +223,255,44,0,127,0,211,0,45,1,107,1,98,1,29,1,207,0,181,0,229,0,35,1,64,1,64,1,27,1,220,0, +187,0,192,0,197,0,208,0,230,0,238,0,228,0,219,0,222,0,243,0,251,0,184,0,70,0,1,0,14,0,70,0, +115,0,111,0,76,0,62,0,75,0,79,0,68,0,69,0,99,0,147,0,188,0,202,0,157,0,59,0,237,255,209,255, +164,255,92,255,88,255,149,255,179,255,184,255,206,255,177,255,78,255,47,255,133,255,189,255,164,255,204,255,100,0,220,0, +246,0,21,1,73,1,43,1,191,0,129,0,141,0,154,0,167,0,198,0,173,0,77,0,38,0,90,0,98,0,36,0, +3,0,240,255,167,255,102,255,116,255,157,255,161,255,120,255,34,255,194,254,156,254,176,254,172,254,113,254,78,254,139,254, +235,254,7,255,30,255,171,255,75,0,48,0,152,255,114,255,203,255,235,255,175,255,124,255,112,255,130,255,178,255,202,255, +177,255,175,255,197,255,147,255,45,255,23,255,91,255,154,255,187,255,238,255,56,0,90,0,41,0,215,255,191,255,253,255, +78,0,93,0,69,0,114,0,230,0,44,1,58,1,85,1,82,1,3,1,197,0,215,0,250,0,15,1,21,1,231,0, +164,0,150,0,165,0,149,0,102,0,34,0,234,255,17,0,125,0,152,0,67,0,237,255,186,255,145,255,148,255,187,255, +175,255,129,255,143,255,190,255,185,255,149,255,129,255,123,255,135,255,165,255,193,255,218,255,236,255,231,255,0,0,96,0, +166,0,130,0,68,0,62,0,80,0,87,0,86,0,68,0,28,0,242,255,225,255,7,0,94,0,166,0,173,0,153,0, +181,0,249,0,10,1,192,0,113,0,97,0,109,0,122,0,151,0,160,0,117,0,96,0,141,0,162,0,103,0,38,0, +14,0,253,255,239,255,8,0,65,0,96,0,71,0,42,0,67,0,92,0,23,0,156,255,83,255,63,255,49,255,47,255, +56,255,55,255,65,255,92,255,104,255,125,255,158,255,132,255,58,255,43,255,90,255,125,255,149,255,157,255,124,255,141,255, +13,0,91,0,1,0,149,255,154,255,186,255,176,255,175,255,198,255,213,255,220,255,228,255,247,255,32,0,59,0,21,0, +208,255,168,255,164,255,176,255,173,255,147,255,165,255,5,0,75,0,74,0,118,0,230,0,253,0,173,0,156,0,211,0, +196,0,121,0,108,0,143,0,149,0,161,0,197,0,171,0,72,0,11,0,4,0,215,255,127,255,80,255,86,255,107,255, +138,255,165,255,141,255,73,255,27,255,30,255,51,255,69,255,102,255,155,255,197,255,206,255,205,255,222,255,245,255,233,255, +169,255,87,255,55,255,107,255,205,255,14,0,6,0,229,255,238,255,24,0,44,0,59,0,99,0,106,0,34,0,228,255, +231,255,203,255,96,255,27,255,67,255,124,255,117,255,83,255,80,255,116,255,139,255,107,255,44,255,232,254,139,254,80,254, +146,254,254,254,7,255,238,254,19,255,8,255,167,254,163,254,36,255,117,255,91,255,72,255,105,255,169,255,251,255,48,0, +38,0,10,0,247,255,223,255,220,255,255,255,30,0,50,0,101,0,169,0,191,0,155,0,114,0,128,0,189,0,218,0, +168,0,102,0,81,0,102,0,168,0,253,0,14,1,203,0,159,0,179,0,190,0,164,0,147,0,141,0,108,0,56,0, +19,0,1,0,232,255,204,255,204,255,241,255,23,0,41,0,71,0,138,0,217,0,254,0,228,0,185,0,165,0,133,0, +75,0,79,0,184,0,13,1,238,0,178,0,208,0,41,1,78,1,44,1,255,0,201,0,119,0,74,0,107,0,111,0, +30,0,249,255,65,0,128,0,125,0,110,0,67,0,252,255,4,0,83,0,82,0,242,255,181,255,205,255,18,0,90,0, +128,0,134,0,131,0,94,0,41,0,60,0,107,0,57,0,221,255,213,255,234,255,224,255,250,255,45,0,48,0,63,0, +128,0,133,0,48,0,234,255,198,255,148,255,121,255,159,255,220,255,235,255,187,255,152,255,216,255,49,0,9,0,142,255, +93,255,123,255,180,255,19,0,86,0,40,0,231,255,243,255,4,0,228,255,204,255,191,255,144,255,98,255,97,255,118,255, +138,255,137,255,101,255,67,255,64,255,62,255,55,255,79,255,121,255,154,255,177,255,151,255,70,255,40,255,116,255,181,255, +165,255,148,255,152,255,113,255,59,255,72,255,133,255,176,255,176,255,138,255,98,255,111,255,163,255,176,255,138,255,93,255, +43,255,247,254,247,254,47,255,89,255,113,255,172,255,230,255,236,255,250,255,69,0,122,0,111,0,118,0,159,0,150,0, +119,0,167,0,253,0,0,1,186,0,137,0,117,0,75,0,35,0,55,0,94,0,60,0,237,255,227,255,27,0,59,0, +65,0,95,0,111,0,76,0,53,0,83,0,120,0,152,0,209,0,232,0,161,0,79,0,89,0,132,0,123,0,110,0, +132,0,112,0,26,0,233,255,247,255,245,255,230,255,3,0,34,0,14,0,244,255,231,255,197,255,184,255,232,255,245,255, +164,255,95,255,99,255,109,255,114,255,161,255,214,255,193,255,124,255,96,255,148,255,236,255,34,0,37,0,27,0,14,0, +242,255,228,255,250,255,16,0,15,0,18,0,35,0,55,0,89,0,126,0,129,0,117,0,135,0,151,0,113,0,45,0, +8,0,21,0,84,0,158,0,154,0,65,0,26,0,114,0,202,0,183,0,122,0,63,0,216,255,124,255,169,255,36,0, +70,0,9,0,214,255,195,255,191,255,215,255,3,0,24,0,6,0,232,255,246,255,37,0,31,0,224,255,212,255,237,255, +187,255,112,255,141,255,215,255,225,255,232,255,35,0,66,0,7,0,159,255,85,255,101,255,192,255,255,255,252,255,248,255, +9,0,33,0,76,0,108,0,81,0,44,0,40,0,31,0,25,0,57,0,45,0,209,255,168,255,223,255,255,255,255,255, +56,0,126,0,134,0,127,0,135,0,106,0,46,0,5,0,233,255,189,255,152,255,162,255,207,255,229,255,208,255,201,255, +234,255,245,255,212,255,209,255,239,255,215,255,127,255,68,255,75,255,103,255,125,255,170,255,243,255,44,0,70,0,97,0, +128,0,122,0,78,0,34,0,254,255,249,255,54,0,128,0,140,0,123,0,124,0,104,0,74,0,92,0,117,0,92,0, +74,0,91,0,93,0,80,0,80,0,73,0,79,0,123,0,120,0,43,0,22,0,74,0,63,0,2,0,7,0,38,0, +13,0,250,255,31,0,64,0,53,0,1,0,158,255,61,255,39,255,78,255,122,255,158,255,174,255,171,255,192,255,238,255, +250,255,226,255,212,255,188,255,140,255,129,255,188,255,251,255,254,255,201,255,132,255,84,255,67,255,60,255,70,255,121,255, +168,255,149,255,106,255,122,255,171,255,190,255,204,255,238,255,233,255,166,255,122,255,145,255,171,255,156,255,148,255,173,255, +193,255,203,255,0,0,96,0,135,0,55,0,192,255,146,255,174,255,214,255,5,0,96,0,223,0,60,1,60,1,251,0, +208,0,207,0,186,0,141,0,135,0,154,0,128,0,95,0,138,0,206,0,197,0,130,0,76,0,42,0,15,0,25,0, +64,0,65,0,7,0,201,255,161,255,122,255,104,255,148,255,224,255,7,0,5,0,248,255,220,255,181,255,164,255,183,255, +223,255,0,0,246,255,197,255,173,255,207,255,254,255,35,0,77,0,97,0,57,0,254,255,234,255,242,255,228,255,171,255, +99,255,62,255,76,255,123,255,199,255,39,0,99,0,91,0,50,0,239,255,136,255,68,255,82,255,97,255,59,255,49,255, +108,255,154,255,168,255,201,255,211,255,141,255,73,255,84,255,103,255,76,255,72,255,95,255,67,255,17,255,29,255,58,255, +46,255,62,255,128,255,162,255,153,255,154,255,153,255,152,255,202,255,249,255,207,255,143,255,163,255,234,255,39,0,86,0, +101,0,92,0,104,0,119,0,102,0,100,0,126,0,120,0,88,0,75,0,58,0,49,0,98,0,143,0,108,0,78,0, +120,0,152,0,123,0,83,0,45,0,19,0,52,0,114,0,114,0,59,0,23,0,37,0,79,0,106,0,99,0,88,0, +74,0,15,0,201,255,194,255,205,255,172,255,151,255,178,255,195,255,175,255,140,255,93,255,72,255,105,255,131,255,116,255, +137,255,206,255,248,255,7,0,52,0,114,0,147,0,126,0,59,0,22,0,75,0,143,0,141,0,120,0,119,0,104,0, +125,0,234,0,70,1,50,1,13,1,26,1,14,1,208,0,164,0,125,0,53,0,17,0,71,0,131,0,122,0,112,0, +155,0,187,0,161,0,142,0,148,0,114,0,44,0,13,0,16,0,242,255,183,255,157,255,184,255,236,255,15,0,26,0, +47,0,85,0,97,0,76,0,65,0,71,0,94,0,144,0,180,0,152,0,122,0,150,0,166,0,108,0,47,0,51,0, +85,0,86,0,54,0,29,0,42,0,55,0,4,0,158,255,91,255,95,255,145,255,211,255,19,0,63,0,74,0,74,0, +91,0,98,0,39,0,199,255,163,255,179,255,164,255,127,255,129,255,154,255,160,255,153,255,137,255,127,255,167,255,249,255, +66,0,123,0,150,0,83,0,216,255,166,255,184,255,169,255,142,255,182,255,246,255,249,255,210,255,199,255,242,255,44,0, +69,0,62,0,55,0,41,0,13,0,14,0,41,0,10,0,164,255,91,255,90,255,99,255,108,255,162,255,231,255,238,255, +185,255,129,255,91,255,83,255,127,255,190,255,216,255,230,255,23,0,66,0,58,0,33,0,13,0,231,255,194,255,175,255, +137,255,93,255,115,255,184,255,224,255,227,255,210,255,165,255,127,255,130,255,119,255,76,255,80,255,146,255,179,255,154,255, +127,255,121,255,119,255,111,255,85,255,36,255,6,255,37,255,110,255,164,255,177,255,179,255,184,255,166,255,143,255,173,255, +225,255,211,255,155,255,154,255,213,255,0,0,250,255,220,255,205,255,214,255,238,255,24,0,77,0,90,0,61,0,72,0, +135,0,156,0,128,0,130,0,144,0,121,0,100,0,109,0,115,0,121,0,127,0,112,0,118,0,158,0,133,0,38,0, +13,0,62,0,65,0,41,0,49,0,28,0,240,255,9,0,58,0,54,0,62,0,95,0,64,0,2,0,249,255,235,255, +190,255,209,255,14,0,10,0,239,255,17,0,50,0,34,0,36,0,56,0,28,0,226,255,214,255,1,0,42,0,33,0, +0,0,16,0,79,0,106,0,82,0,67,0,59,0,14,0,234,255,22,0,95,0,101,0,58,0,54,0,90,0,95,0, +58,0,19,0,243,255,216,255,224,255,25,0,87,0,110,0,101,0,94,0,109,0,121,0,101,0,73,0,81,0,108,0, +128,0,162,0,195,0,169,0,107,0,73,0,44,0,251,255,247,255,39,0,41,0,240,255,213,255,222,255,216,255,206,255, +213,255,224,255,251,255,44,0,56,0,0,0,212,255,214,255,189,255,124,255,110,255,169,255,225,255,251,255,34,0,89,0, +119,0,114,0,82,0,37,0,7,0,246,255,213,255,185,255,200,255,217,255,194,255,194,255,2,0,59,0,55,0,40,0, +54,0,76,0,82,0,70,0,39,0,248,255,198,255,161,255,146,255,129,255,89,255,59,255,65,255,78,255,74,255,53,255, +7,255,210,254,202,254,215,254,202,254,209,254,19,255,68,255,66,255,79,255,113,255,128,255,153,255,209,255,242,255,234,255, +196,255,132,255,100,255,151,255,223,255,4,0,40,0,55,0,7,0,244,255,54,0,92,0,54,0,19,0,247,255,195,255, +182,255,219,255,232,255,241,255,22,0,24,0,2,0,56,0,135,0,135,0,117,0,147,0,170,0,163,0,150,0,109,0, +92,0,180,0,13,1,221,0,139,0,155,0,174,0,115,0,86,0,142,0,182,0,154,0,137,0,175,0,219,0,208,0, +143,0,65,0,12,0,252,255,10,0,45,0,91,0,121,0,111,0,86,0,93,0,100,0,47,0,224,255,190,255,177,255, +156,255,172,255,217,255,235,255,251,255,47,0,91,0,104,0,103,0,59,0,243,255,252,255,71,0,61,0,203,255,108,255, +69,255,57,255,82,255,113,255,111,255,129,255,195,255,232,255,226,255,235,255,238,255,201,255,182,255,202,255,212,255,231,255, +22,0,22,0,217,255,202,255,246,255,0,0,222,255,212,255,234,255,7,0,19,0,215,255,95,255,40,255,94,255,139,255, +110,255,77,255,77,255,82,255,110,255,178,255,232,255,226,255,183,255,155,255,165,255,194,255,203,255,214,255,10,0,48,0, +5,0,211,255,240,255,18,0,244,255,227,255,26,0,78,0,72,0,49,0,55,0,81,0,83,0,29,0,213,255,178,255, +166,255,165,255,211,255,18,0,16,0,231,255,237,255,18,0,23,0,253,255,226,255,220,255,253,255,38,0,50,0,55,0, +72,0,71,0,61,0,64,0,53,0,23,0,10,0,246,255,187,255,142,255,115,255,52,255,3,255,47,255,121,255,167,255, +243,255,105,0,190,0,238,0,31,1,73,1,116,1,172,1,179,1,118,1,63,1,36,1,238,0,161,0,111,0,98,0, +105,0,104,0,77,0,58,0,76,0,90,0,90,0,108,0,104,0,29,0,208,255,194,255,201,255,213,255,4,0,65,0, +107,0,128,0,113,0,76,0,84,0,116,0,78,0,6,0,253,255,13,0,237,255,194,255,190,255,202,255,219,255,243,255, +248,255,218,255,171,255,129,255,107,255,96,255,80,255,65,255,65,255,70,255,84,255,118,255,124,255,76,255,38,255,46,255, +64,255,105,255,183,255,217,255,193,255,218,255,35,0,31,0,208,255,170,255,189,255,214,255,231,255,227,255,202,255,198,255, +226,255,2,0,45,0,90,0,77,0,10,0,235,255,6,0,29,0,16,0,224,255,148,255,95,255,113,255,164,255,192,255, +198,255,196,255,181,255,163,255,152,255,155,255,196,255,250,255,255,255,241,255,23,0,55,0,251,255,188,255,226,255,26,0, +24,0,37,0,88,0,100,0,99,0,162,0,227,0,207,0,154,0,127,0,124,0,141,0,147,0,94,0,51,0,115,0, +190,0,153,0,91,0,110,0,135,0,85,0,18,0,255,255,19,0,61,0,110,0,139,0,145,0,140,0,135,0,140,0, +136,0,108,0,87,0,86,0,62,0,17,0,14,0,48,0,68,0,73,0,79,0,89,0,113,0,120,0,64,0,9,0, +28,0,39,0,234,255,190,255,192,255,137,255,37,255,25,255,108,255,178,255,197,255,186,255,149,255,100,255,59,255,25,255, +1,255,239,254,211,254,182,254,171,254,163,254,142,254,111,254,88,254,104,254,172,254,239,254,6,255,32,255,105,255,177,255, +204,255,214,255,233,255,255,255,3,0,246,255,250,255,34,0,63,0,38,0,253,255,235,255,233,255,239,255,6,0,41,0, +79,0,89,0,47,0,9,0,29,0,37,0,1,0,36,0,155,0,225,0,237,0,26,1,60,1,45,1,54,1,59,1, +237,0,180,0,226,0,249,0,216,0,243,0,18,1,193,0,96,0,59,0,238,255,123,255,85,255,78,255,29,255,30,255, +127,255,236,255,103,0,13,1,129,1,149,1,143,1,119,1,36,1,211,0,165,0,72,0,179,255,74,255,40,255,30,255, +37,255,74,255,142,255,253,255,120,0,179,0,176,0,186,0,204,0,172,0,117,0,103,0,100,0,63,0,15,0,242,255, +214,255,186,255,171,255,163,255,169,255,202,255,246,255,31,0,81,0,120,0,125,0,147,0,215,0,233,0,125,0,241,255, +179,255,172,255,165,255,153,255,137,255,108,255,96,255,130,255,202,255,27,0,93,0,132,0,156,0,174,0,167,0,118,0, +40,0,219,255,172,255,163,255,163,255,137,255,83,255,25,255,243,254,248,254,39,255,102,255,166,255,244,255,85,0,185,0, +12,1,67,1,63,1,239,0,116,0,17,0,219,255,177,255,126,255,81,255,54,255,52,255,68,255,79,255,94,255,157,255, +255,255,71,0,122,0,176,0,181,0,114,0,42,0,236,255,138,255,40,255,14,255,28,255,35,255,59,255,109,255,167,255, +229,255,15,0,26,0,77,0,175,0,209,0,142,0,52,0,206,255,74,255,238,254,226,254,237,254,1,255,47,255,86,255, +104,255,125,255,117,255,78,255,96,255,171,255,200,255,210,255,38,0,139,0,172,0,169,0,149,0,78,0,243,255,186,255, +127,255,42,255,239,254,236,254,0,255,31,255,88,255,163,255,227,255,4,0,23,0,61,0,128,0,199,0,234,0,200,0, +109,0,18,0,217,255,187,255,167,255,124,255,39,255,253,254,83,255,200,255,195,255,125,255,139,255,232,255,47,0,67,0, +55,0,20,0,240,255,215,255,194,255,177,255,179,255,199,255,214,255,215,255,218,255,255,255,56,0,84,0,71,0,49,0, +36,0,37,0,47,0,35,0,6,0,16,0,57,0,44,0,219,255,120,255,32,255,247,254,37,255,87,255,45,255,241,254, +21,255,98,255,135,255,174,255,7,0,110,0,179,0,202,0,207,0,231,0,242,0,167,0,43,0,218,255,165,255,88,255, +44,255,84,255,156,255,204,255,237,255,11,0,48,0,98,0,125,0,100,0,67,0,77,0,111,0,151,0,187,0,172,0, +94,0,37,0,40,0,21,0,220,255,222,255,29,0,40,0,249,255,239,255,10,0,8,0,244,255,230,255,203,255,205,255, +21,0,87,0,86,0,80,0,91,0,69,0,57,0,116,0,164,0,135,0,104,0,84,0,245,255,119,255,91,255,143,255, +191,255,251,255,76,0,123,0,132,0,145,0,146,0,109,0,56,0,254,255,192,255,166,255,203,255,5,0,51,0,120,0, +217,0,23,1,11,1,229,0,227,0,5,1,42,1,60,1,44,1,252,0,219,0,228,0,220,0,151,0,95,0,119,0, +165,0,141,0,54,0,232,255,199,255,186,255,142,255,78,255,70,255,133,255,178,255,159,255,148,255,192,255,237,255,241,255, +217,255,185,255,162,255,173,255,208,255,232,255,235,255,219,255,178,255,132,255,98,255,59,255,33,255,73,255,156,255,220,255, +18,0,79,0,105,0,93,0,88,0,59,0,229,255,159,255,145,255,122,255,82,255,84,255,109,255,121,255,171,255,19,0, +112,0,181,0,240,0,250,0,213,0,186,0,149,0,70,0,18,0,27,0,9,0,196,255,172,255,220,255,7,0,253,255, +214,255,182,255,189,255,223,255,237,255,222,255,215,255,246,255,46,0,90,0,92,0,69,0,51,0,26,0,233,255,187,255, +165,255,157,255,160,255,182,255,221,255,19,0,70,0,77,0,53,0,63,0,117,0,163,0,184,0,184,0,145,0,81,0, +44,0,43,0,36,0,4,0,222,255,205,255,209,255,212,255,211,255,238,255,29,0,53,0,62,0,84,0,95,0,68,0, +37,0,38,0,59,0,62,0,7,0,168,255,114,255,129,255,166,255,205,255,248,255,4,0,240,255,252,255,40,0,61,0, +66,0,89,0,114,0,127,0,126,0,92,0,58,0,70,0,86,0,62,0,56,0,70,0,31,0,220,255,199,255,184,255, +145,255,141,255,151,255,115,255,101,255,170,255,242,255,26,0,76,0,90,0,18,0,188,255,128,255,58,255,18,255,45,255, +62,255,61,255,120,255,187,255,157,255,102,255,126,255,177,255,185,255,177,255,188,255,219,255,247,255,227,255,167,255,144,255, +155,255,133,255,99,255,104,255,117,255,119,255,149,255,201,255,229,255,222,255,196,255,199,255,15,0,71,0,11,0,198,255, +238,255,1,0,147,255,48,255,60,255,97,255,132,255,196,255,239,255,2,0,67,0,119,0,84,0,58,0,92,0,78,0, +44,0,99,0,158,0,145,0,185,0,35,1,22,1,159,0,108,0,117,0,111,0,140,0,194,0,183,0,145,0,147,0, +129,0,83,0,104,0,161,0,163,0,157,0,182,0,166,0,123,0,141,0,169,0,114,0,36,0,16,0,15,0,243,255, +204,255,168,255,144,255,148,255,168,255,184,255,205,255,222,255,217,255,227,255,27,0,77,0,59,0,239,255,147,255,61,255, +253,254,226,254,239,254,24,255,56,255,46,255,18,255,9,255,4,255,240,254,236,254,3,255,28,255,54,255,99,255,141,255, +151,255,145,255,153,255,173,255,195,255,217,255,241,255,23,0,75,0,100,0,72,0,14,0,219,255,189,255,184,255,204,255, +234,255,3,0,24,0,47,0,81,0,109,0,85,0,15,0,222,255,218,255,220,255,223,255,239,255,232,255,190,255,163,255, +166,255,174,255,200,255,238,255,233,255,208,255,245,255,52,0,72,0,101,0,175,0,205,0,171,0,165,0,194,0,201,0, +215,0,0,1,13,1,253,0,243,0,204,0,137,0,128,0,160,0,111,0,3,0,216,255,234,255,230,255,211,255,218,255, +230,255,232,255,247,255,23,0,59,0,92,0,105,0,75,0,8,0,203,255,175,255,172,255,194,255,1,0,72,0,92,0, +86,0,92,0,54,0,206,255,152,255,189,255,213,255,202,255,234,255,27,0,27,0,15,0,18,0,1,0,12,0,80,0, +94,0,29,0,18,0,75,0,92,0,81,0,75,0,9,0,168,255,160,255,191,255,147,255,92,255,113,255,147,255,148,255, +144,255,128,255,107,255,124,255,135,255,102,255,110,255,180,255,199,255,153,255,145,255,180,255,196,255,199,255,198,255,185,255, +201,255,251,255,28,0,49,0,82,0,74,0,29,0,39,0,81,0,66,0,48,0,103,0,161,0,156,0,128,0,94,0, +61,0,78,0,124,0,122,0,97,0,98,0,78,0,30,0,36,0,75,0,64,0,46,0,88,0,130,0,113,0,72,0, +25,0,226,255,205,255,219,255,207,255,174,255,183,255,227,255,12,0,60,0,106,0,108,0,82,0,65,0,37,0,254,255, +2,0,38,0,46,0,46,0,96,0,155,0,147,0,78,0,253,255,206,255,231,255,39,0,52,0,15,0,9,0,28,0, +10,0,229,255,204,255,161,255,126,255,159,255,212,255,215,255,208,255,210,255,165,255,102,255,95,255,111,255,119,255,162,255, +199,255,154,255,99,255,107,255,102,255,62,255,78,255,122,255,109,255,89,255,113,255,132,255,159,255,228,255,253,255,192,255, +155,255,169,255,153,255,139,255,188,255,230,255,231,255,249,255,7,0,225,255,191,255,192,255,181,255,186,255,248,255,47,0, +64,0,90,0,108,0,70,0,27,0,9,0,237,255,230,255,47,0,135,0,158,0,131,0,90,0,66,0,89,0,108,0, +62,0,33,0,96,0,151,0,116,0,57,0,24,0,252,255,237,255,239,255,236,255,251,255,36,0,33,0,247,255,246,255, +2,0,204,255,138,255,132,255,146,255,180,255,20,0,109,0,111,0,73,0,55,0,47,0,54,0,61,0,15,0,226,255, +21,0,95,0,65,0,241,255,216,255,221,255,211,255,204,255,192,255,167,255,162,255,163,255,122,255,86,255,106,255,110,255, +52,255,23,255,76,255,133,255,157,255,194,255,244,255,12,0,23,0,37,0,36,0,38,0,66,0,79,0,62,0,80,0, +129,0,117,0,59,0,51,0,64,0,17,0,217,255,218,255,222,255,195,255,198,255,233,255,6,0,50,0,109,0,125,0, +118,0,138,0,140,0,109,0,134,0,204,0,211,0,184,0,225,0,25,1,10,1,227,0,198,0,143,0,83,0,58,0, +39,0,25,0,58,0,98,0,96,0,112,0,181,0,225,0,218,0,212,0,208,0,187,0,183,0,189,0,148,0,92,0, +80,0,83,0,65,0,54,0,51,0,35,0,27,0,32,0,19,0,20,0,83,0,154,0,166,0,141,0,114,0,84,0, +71,0,70,0,33,0,244,255,21,0,91,0,91,0,41,0,19,0,17,0,0,0,225,255,186,255,165,255,200,255,242,255, +217,255,171,255,164,255,150,255,95,255,60,255,56,255,42,255,42,255,84,255,109,255,93,255,73,255,60,255,56,255,79,255, +86,255,43,255,30,255,97,255,149,255,150,255,177,255,226,255,232,255,216,255,209,255,185,255,176,255,210,255,211,255,164,255, +167,255,194,255,146,255,88,255,111,255,142,255,142,255,168,255,197,255,188,255,188,255,192,255,156,255,157,255,235,255,8,0, +230,255,13,0,97,0,92,0,34,0,9,0,10,0,57,0,141,0,151,0,87,0,54,0,10,0,153,255,109,255,193,255, +253,255,4,0,62,0,133,0,134,0,119,0,114,0,93,0,102,0,141,0,118,0,74,0,101,0,126,0,96,0,111,0, +163,0,123,0,26,0,245,255,245,255,249,255,19,0,19,0,222,255,197,255,205,255,171,255,143,255,180,255,183,255,112,255, +88,255,138,255,172,255,189,255,220,255,229,255,224,255,250,255,18,0,7,0,250,255,223,255,151,255,108,255,138,255,163,255, +156,255,177,255,209,255,201,255,192,255,200,255,186,255,163,255,154,255,132,255,126,255,205,255,58,0,97,0,87,0,69,0, +19,0,212,255,195,255,207,255,196,255,163,255,134,255,136,255,183,255,222,255,206,255,180,255,194,255,196,255,153,255,117,255, +133,255,192,255,15,0,73,0,77,0,54,0,33,0,10,0,253,255,8,0,16,0,3,0,4,0,35,0,56,0,45,0, +26,0,16,0,8,0,244,255,222,255,218,255,226,255,219,255,200,255,191,255,190,255,192,255,206,255,218,255,206,255,198,255, +240,255,50,0,82,0,81,0,98,0,133,0,123,0,52,0,241,255,234,255,13,0,40,0,40,0,39,0,62,0,88,0, +85,0,83,0,107,0,95,0,37,0,68,0,226,0,74,1,16,1,188,0,174,0,147,0,65,0,1,0,6,0,70,0, +143,0,142,0,67,0,26,0,30,0,242,255,195,255,240,255,30,0,234,255,189,255,223,255,235,255,201,255,218,255,17,0, +38,0,44,0,69,0,102,0,151,0,181,0,131,0,58,0,53,0,56,0,5,0,222,255,219,255,196,255,171,255,178,255, +178,255,164,255,166,255,150,255,108,255,93,255,79,255,37,255,47,255,104,255,99,255,76,255,145,255,219,255,214,255,230,255, +41,0,56,0,30,0,36,0,32,0,4,0,15,0,39,0,28,0,39,0,75,0,46,0,229,255,208,255,218,255,185,255, +137,255,129,255,152,255,179,255,210,255,249,255,31,0,40,0,19,0,10,0,32,0,48,0,30,0,4,0,1,0,22,0, +41,0,30,0,253,255,243,255,9,0,13,0,238,255,222,255,221,255,182,255,127,255,132,255,175,255,181,255,165,255,169,255, +174,255,189,255,254,255,57,0,51,0,41,0,55,0,25,0,240,255,24,0,87,0,92,0,96,0,128,0,121,0,88,0, +67,0,20,0,225,255,245,255,18,0,223,255,170,255,193,255,227,255,227,255,225,255,224,255,218,255,219,255,214,255,219,255, +30,0,132,0,188,0,206,0,222,0,188,0,97,0,42,0,60,0,81,0,70,0,53,0,49,0,57,0,67,0,59,0, +30,0,6,0,249,255,241,255,255,255,48,0,79,0,54,0,21,0,20,0,9,0,216,255,176,255,169,255,165,255,150,255, +136,255,127,255,141,255,178,255,194,255,173,255,162,255,185,255,238,255,75,0,171,0,208,0,211,0,233,0,230,0,185,0, +171,0,203,0,211,0,206,0,246,0,45,1,52,1,9,1,187,0,102,0,57,0,43,0,11,0,227,255,200,255,140,255, +46,255,12,255,44,255,30,255,201,254,168,254,235,254,44,255,29,255,225,254,177,254,147,254,128,254,118,254,137,254,211,254, +65,255,153,255,193,255,194,255,149,255,71,255,32,255,59,255,71,255,23,255,255,254,70,255,172,255,218,255,232,255,17,0, +59,0,78,0,121,0,209,0,27,1,65,1,91,1,87,1,47,1,36,1,78,1,120,1,157,1,205,1,218,1,195,1, +205,1,228,1,178,1,96,1,72,1,57,1,233,0,146,0,119,0,95,0,16,0,171,255,85,255,5,255,199,254,190,254, +218,254,245,254,25,255,100,255,185,255,232,255,233,255,206,255,177,255,164,255,164,255,170,255,177,255,164,255,127,255,115,255, +141,255,148,255,131,255,141,255,171,255,200,255,247,255,30,0,25,0,27,0,62,0,56,0,24,0,49,0,87,0,70,0, +64,0,96,0,85,0,32,0,2,0,224,255,159,255,119,255,137,255,193,255,247,255,233,255,167,255,161,255,216,255,197,255, +110,255,87,255,136,255,170,255,191,255,231,255,5,0,244,255,195,255,163,255,173,255,186,255,166,255,151,255,174,255,206,255, +221,255,250,255,50,0,113,0,157,0,160,0,137,0,119,0,92,0,23,0,190,255,125,255,100,255,115,255,145,255,176,255, +227,255,31,0,51,0,36,0,11,0,212,255,168,255,204,255,242,255,183,255,123,255,139,255,127,255,87,255,158,255,36,0, +69,0,38,0,55,0,84,0,87,0,111,0,151,0,165,0,176,0,206,0,227,0,226,0,207,0,159,0,98,0,64,0, +58,0,38,0,244,255,204,255,200,255,206,255,186,255,162,255,165,255,166,255,127,255,84,255,75,255,75,255,46,255,17,255, +28,255,56,255,55,255,27,255,10,255,23,255,66,255,112,255,113,255,75,255,60,255,77,255,73,255,47,255,34,255,27,255, +28,255,73,255,143,255,181,255,191,255,212,255,250,255,31,0,43,0,18,0,250,255,15,0,66,0,126,0,206,0,16,1, +23,1,248,0,220,0,202,0,200,0,215,0,213,0,186,0,163,0,135,0,83,0,46,0,51,0,77,0,116,0,160,0, +164,0,125,0,98,0,83,0,36,0,222,255,179,255,185,255,239,255,61,0,116,0,146,0,176,0,173,0,100,0,26,0, +17,0,25,0,12,0,21,0,54,0,53,0,32,0,34,0,27,0,240,255,210,255,211,255,209,255,193,255,187,255,205,255, +254,255,54,0,98,0,166,0,252,0,12,1,222,0,223,0,243,0,180,0,95,0,72,0,32,0,198,255,155,255,159,255, +145,255,160,255,222,255,240,255,227,255,15,0,51,0,0,0,209,255,235,255,232,255,157,255,112,255,138,255,163,255,162,255, +181,255,216,255,217,255,205,255,236,255,29,0,39,0,28,0,35,0,41,0,37,0,45,0,68,0,75,0,45,0,243,255, +204,255,208,255,208,255,187,255,208,255,8,0,22,0,15,0,35,0,21,0,230,255,254,255,65,0,54,0,4,0,9,0, +41,0,61,0,75,0,65,0,57,0,100,0,130,0,90,0,81,0,144,0,160,0,93,0,24,0,230,255,201,255,234,255, +29,0,18,0,242,255,242,255,240,255,222,255,211,255,178,255,117,255,99,255,127,255,123,255,99,255,127,255,167,255,137,255, +85,255,93,255,112,255,71,255,40,255,84,255,134,255,122,255,95,255,107,255,138,255,158,255,173,255,220,255,40,0,68,0, +14,0,249,255,62,0,98,0,60,0,71,0,126,0,105,0,45,0,52,0,93,0,121,0,157,0,173,0,158,0,171,0, +178,0,108,0,39,0,52,0,53,0,239,255,184,255,165,255,127,255,115,255,175,255,244,255,34,0,108,0,194,0,208,0, +161,0,142,0,162,0,144,0,60,0,222,255,157,255,109,255,66,255,39,255,30,255,38,255,74,255,145,255,247,255,93,0, +132,0,109,0,107,0,138,0,109,0,8,0,196,255,203,255,214,255,186,255,154,255,158,255,174,255,142,255,81,255,74,255, +104,255,89,255,66,255,112,255,160,255,134,255,125,255,190,255,229,255,200,255,185,255,207,255,222,255,238,255,5,0,8,0, +15,0,54,0,77,0,56,0,34,0,17,0,248,255,250,255,25,0,35,0,57,0,132,0,173,0,123,0,91,0,112,0, +71,0,220,255,159,255,154,255,151,255,144,255,126,255,116,255,198,255,89,0,174,0,224,0,94,1,215,1,210,1,160,1, +155,1,135,1,46,1,169,0,32,0,202,255,189,255,191,255,195,255,2,0,75,0,76,0,64,0,103,0,121,0,100,0, +111,0,124,0,56,0,216,255,174,255,160,255,130,255,92,255,38,255,230,254,217,254,11,255,39,255,11,255,13,255,93,255, +171,255,181,255,173,255,207,255,2,0,16,0,3,0,12,0,32,0,6,0,199,255,181,255,207,255,199,255,180,255,225,255, +42,0,78,0,105,0,133,0,128,0,129,0,178,0,226,0,0,1,36,1,17,1,177,0,109,0,89,0,19,0,185,255, +174,255,198,255,196,255,212,255,246,255,1,0,16,0,54,0,91,0,152,0,249,0,52,1,57,1,74,1,78,1,6,1, +169,0,123,0,80,0,255,255,185,255,174,255,185,255,167,255,151,255,192,255,4,0,34,0,52,0,95,0,116,0,86,0, +53,0,33,0,253,255,201,255,148,255,94,255,53,255,35,255,38,255,74,255,137,255,191,255,242,255,43,0,64,0,48,0, +46,0,28,0,212,255,157,255,150,255,122,255,75,255,71,255,83,255,66,255,51,255,42,255,24,255,42,255,108,255,150,255, +160,255,184,255,212,255,217,255,209,255,193,255,177,255,185,255,190,255,164,255,157,255,188,255,190,255,163,255,182,255,252,255, +65,0,129,0,188,0,203,0,176,0,166,0,181,0,165,0,118,0,103,0,140,0,166,0,137,0,88,0,54,0,17,0, +216,255,161,255,141,255,167,255,201,255,204,255,190,255,195,255,212,255,235,255,3,0,252,255,222,255,246,255,71,0,107,0, +74,0,62,0,90,0,99,0,86,0,77,0,57,0,25,0,12,0,3,0,226,255,197,255,202,255,212,255,209,255,228,255, +16,0,33,0,17,0,24,0,63,0,68,0,9,0,185,255,130,255,122,255,151,255,176,255,186,255,222,255,32,0,69,0, +53,0,18,0,227,255,165,255,130,255,158,255,228,255,37,0,71,0,68,0,41,0,254,255,192,255,134,255,114,255,113,255, +94,255,80,255,106,255,144,255,153,255,157,255,198,255,245,255,235,255,178,255,157,255,215,255,36,0,60,0,36,0,5,0, +225,255,191,255,211,255,23,0,42,0,250,255,241,255,53,0,110,0,104,0,73,0,53,0,57,0,87,0,118,0,121,0, +95,0,49,0,6,0,241,255,203,255,118,255,45,255,31,255,30,255,28,255,71,255,147,255,213,255,14,0,46,0,31,0, +29,0,62,0,44,0,226,255,208,255,255,255,17,0,243,255,211,255,180,255,147,255,127,255,136,255,175,255,209,255,208,255, +226,255,46,0,99,0,73,0,40,0,40,0,24,0,0,0,1,0,250,255,215,255,195,255,190,255,169,255,133,255,101,255, +77,255,84,255,129,255,181,255,218,255,228,255,201,255,164,255,155,255,158,255,152,255,172,255,225,255,4,0,1,0,254,255, +254,255,221,255,167,255,137,255,148,255,200,255,43,0,138,0,156,0,134,0,162,0,198,0,145,0,54,0,27,0,37,0, +30,0,29,0,36,0,12,0,220,255,177,255,146,255,139,255,159,255,194,255,254,255,68,0,97,0,107,0,145,0,145,0, +66,0,21,0,65,0,92,0,56,0,34,0,37,0,30,0,26,0,29,0,22,0,24,0,33,0,9,0,238,255,16,0, +73,0,77,0,48,0,48,0,85,0,105,0,60,0,239,255,214,255,240,255,244,255,218,255,205,255,189,255,154,255,140,255, +156,255,132,255,68,255,54,255,119,255,188,255,219,255,234,255,215,255,139,255,81,255,122,255,198,255,213,255,194,255,208,255, +244,255,7,0,2,0,232,255,204,255,208,255,244,255,32,0,75,0,107,0,115,0,121,0,136,0,120,0,62,0,29,0, +48,0,60,0,43,0,42,0,70,0,96,0,110,0,129,0,150,0,154,0,130,0,93,0,86,0,121,0,134,0,90,0, +60,0,96,0,141,0,135,0,107,0,83,0,45,0,6,0,0,0,22,0,39,0,24,0,222,255,160,255,147,255,174,255, +196,255,222,255,16,0,72,0,102,0,91,0,37,0,233,255,213,255,233,255,11,0,33,0,16,0,214,255,158,255,131,255, +118,255,116,255,137,255,179,255,253,255,99,0,165,0,147,0,93,0,65,0,61,0,58,0,48,0,41,0,39,0,32,0, +14,0,0,0,246,255,222,255,198,255,202,255,221,255,231,255,242,255,249,255,230,255,208,255,221,255,4,0,43,0,69,0, +74,0,64,0,66,0,97,0,133,0,125,0,59,0,244,255,216,255,216,255,224,255,1,0,36,0,21,0,249,255,25,0, +81,0,76,0,18,0,233,255,225,255,219,255,206,255,209,255,223,255,221,255,206,255,190,255,164,255,159,255,209,255,244,255, +213,255,225,255,82,0,150,0,103,0,76,0,124,0,150,0,126,0,96,0,53,0,12,0,10,0,15,0,255,255,248,255, +233,255,179,255,144,255,179,255,253,255,72,0,113,0,96,0,84,0,123,0,118,0,10,0,168,255,160,255,172,255,143,255, +90,255,35,255,13,255,44,255,90,255,123,255,156,255,184,255,185,255,177,255,197,255,244,255,26,0,10,0,217,255,214,255, +252,255,250,255,207,255,190,255,198,255,199,255,201,255,197,255,183,255,194,255,218,255,210,255,201,255,240,255,23,0,21,0, +20,0,36,0,33,0,3,0,221,255,187,255,178,255,195,255,192,255,156,255,137,255,160,255,201,255,240,255,22,0,55,0, +74,0,84,0,89,0,82,0,56,0,22,0,246,255,228,255,4,0,86,0,138,0,117,0,93,0,104,0,97,0,64,0, +52,0,53,0,34,0,22,0,35,0,53,0,59,0,45,0,16,0,9,0,22,0,19,0,23,0,65,0,77,0,18,0, +229,255,242,255,245,255,214,255,195,255,199,255,206,255,218,255,239,255,10,0,38,0,47,0,53,0,101,0,151,0,122,0, +55,0,41,0,58,0,53,0,46,0,61,0,73,0,76,0,86,0,106,0,98,0,35,0,223,255,233,255,41,0,63,0, +46,0,58,0,68,0,25,0,238,255,245,255,8,0,7,0,254,255,245,255,243,255,254,255,7,0,7,0,9,0,9,0, +254,255,251,255,6,0,7,0,254,255,251,255,6,0,35,0,77,0,96,0,56,0,235,255,182,255,189,255,213,255,185,255, +121,255,109,255,180,255,22,0,106,0,156,0,141,0,68,0,250,255,221,255,247,255,57,0,110,0,111,0,86,0,73,0, +45,0,215,255,82,255,232,254,251,254,149,255,64,0,160,0,207,0,227,0,184,0,97,0,23,0,205,255,106,255,50,255, +110,255,250,255,94,0,58,0,169,255,53,255,57,255,133,255,189,255,200,255,199,255,228,255,46,0,96,0,20,0,97,255, +216,254,209,254,46,255,195,255,110,0,217,0,199,0,122,0,86,0,64,0,223,255,89,255,62,255,194,255,113,0,197,0, +181,0,117,0,21,0,168,255,108,255,112,255,126,255,138,255,191,255,24,0,95,0,112,0,46,0,163,255,50,255,58,255, +154,255,245,255,43,0,77,0,117,0,171,0,184,0,98,0,233,255,174,255,171,255,192,255,10,0,115,0,164,0,153,0, +156,0,179,0,150,0,44,0,189,255,177,255,17,0,124,0,162,0,136,0,63,0,207,255,108,255,62,255,45,255,53,255, +121,255,215,255,13,0,27,0,16,0,205,255,92,255,17,255,20,255,62,255,113,255,178,255,243,255,23,0,8,0,211,255, +157,255,116,255,83,255,78,255,138,255,237,255,51,0,61,0,26,0,229,255,184,255,157,255,139,255,141,255,187,255,254,255, +43,0,59,0,38,0,217,255,132,255,119,255,162,255,202,255,239,255,34,0,77,0,116,0,156,0,148,0,72,0,255,255, +247,255,23,0,68,0,125,0,169,0,170,0,127,0,70,0,33,0,30,0,33,0,27,0,45,0,103,0,150,0,144,0, +97,0,33,0,221,255,172,255,159,255,181,255,219,255,249,255,1,0,253,255,0,0,8,0,247,255,200,255,181,255,230,255, +34,0,38,0,24,0,53,0,96,0,105,0,93,0,68,0,24,0,241,255,228,255,225,255,228,255,239,255,229,255,194,255, +171,255,174,255,195,255,255,255,92,0,181,0,248,0,22,1,240,0,149,0,64,0,243,255,155,255,102,255,146,255,10,0, +125,0,177,0,165,0,129,0,96,0,47,0,233,255,191,255,215,255,19,0,73,0,112,0,130,0,92,0,12,0,235,255, +30,0,83,0,74,0,48,0,38,0,22,0,14,0,38,0,39,0,236,255,179,255,176,255,203,255,240,255,29,0,46,0, +5,0,190,255,130,255,98,255,87,255,90,255,118,255,187,255,23,0,93,0,109,0,63,0,244,255,205,255,220,255,250,255, +22,0,58,0,101,0,140,0,172,0,171,0,112,0,26,0,229,255,233,255,12,0,33,0,24,0,10,0,6,0,4,0, +6,0,10,0,241,255,203,255,205,255,241,255,6,0,13,0,2,0,212,255,162,255,149,255,147,255,147,255,190,255,249,255, +4,0,253,255,27,0,47,0,249,255,153,255,92,255,85,255,92,255,96,255,121,255,159,255,171,255,182,255,237,255,31,0, +13,0,233,255,239,255,8,0,25,0,25,0,243,255,178,255,133,255,110,255,94,255,100,255,113,255,125,255,176,255,249,255, +1,0,209,255,201,255,229,255,240,255,255,255,36,0,66,0,90,0,115,0,126,0,126,0,102,0,17,0,178,255,169,255, +207,255,204,255,211,255,29,0,100,0,123,0,141,0,155,0,126,0,69,0,25,0,15,0,34,0,44,0,17,0,240,255, +239,255,249,255,252,255,0,0,253,255,243,255,7,0,67,0,108,0,85,0,26,0,235,255,214,255,213,255,223,255,239,255, +0,0,25,0,58,0,69,0,17,0,170,255,88,255,96,255,185,255,9,0,17,0,247,255,251,255,26,0,43,0,29,0, +239,255,172,255,123,255,121,255,152,255,197,255,228,255,232,255,246,255,42,0,69,0,36,0,2,0,2,0,2,0,250,255, +241,255,212,255,177,255,182,255,206,255,222,255,255,255,53,0,83,0,88,0,92,0,73,0,18,0,210,255,161,255,140,255, +160,255,197,255,214,255,218,255,222,255,228,255,244,255,5,0,253,255,237,255,240,255,239,255,217,255,205,255,208,255,202,255, +212,255,6,0,59,0,80,0,84,0,100,0,141,0,188,0,189,0,122,0,36,0,237,255,207,255,179,255,154,255,147,255, +170,255,216,255,6,0,33,0,30,0,251,255,214,255,210,255,214,255,186,255,152,255,163,255,213,255,3,0,21,0,9,0, +236,255,215,255,221,255,252,255,18,0,0,0,220,255,205,255,207,255,204,255,212,255,239,255,2,0,5,0,10,0,23,0, +45,0,75,0,86,0,71,0,61,0,61,0,48,0,44,0,71,0,75,0,28,0,251,255,251,255,224,255,174,255,169,255, +201,255,217,255,227,255,255,255,20,0,15,0,10,0,13,0,15,0,17,0,20,0,12,0,243,255,197,255,139,255,109,255, +132,255,168,255,185,255,205,255,241,255,9,0,16,0,23,0,17,0,245,255,231,255,0,0,41,0,64,0,70,0,81,0, +119,0,159,0,151,0,101,0,61,0,45,0,38,0,47,0,70,0,67,0,45,0,60,0,113,0,145,0,136,0,130,0, +130,0,104,0,65,0,57,0,62,0,23,0,221,255,213,255,236,255,231,255,217,255,236,255,254,255,241,255,235,255,12,0, +49,0,59,0,39,0,8,0,255,255,28,0,61,0,66,0,53,0,41,0,37,0,46,0,57,0,39,0,0,0,249,255, +27,0,56,0,51,0,38,0,31,0,28,0,40,0,82,0,122,0,109,0,50,0,2,0,246,255,235,255,202,255,181,255, +210,255,2,0,17,0,7,0,16,0,30,0,18,0,1,0,254,255,239,255,210,255,198,255,199,255,193,255,196,255,216,255, +225,255,217,255,222,255,244,255,3,0,251,255,226,255,199,255,188,255,197,255,225,255,12,0,43,0,40,0,10,0,237,255, +224,255,221,255,208,255,185,255,176,255,184,255,187,255,197,255,236,255,18,0,18,0,243,255,188,255,116,255,88,255,126,255, +163,255,161,255,160,255,179,255,192,255,192,255,177,255,145,255,126,255,151,255,210,255,28,0,73,0,37,0,220,255,211,255, +240,255,227,255,202,255,228,255,8,0,10,0,17,0,45,0,45,0,22,0,32,0,91,0,142,0,136,0,101,0,83,0, +64,0,19,0,241,255,254,255,23,0,34,0,50,0,67,0,52,0,21,0,16,0,40,0,62,0,65,0,67,0,80,0, +81,0,53,0,28,0,34,0,34,0,3,0,242,255,18,0,67,0,75,0,26,0,225,255,208,255,214,255,216,255,244,255, +49,0,71,0,32,0,3,0,254,255,218,255,164,255,150,255,187,255,241,255,32,0,44,0,19,0,246,255,237,255,243,255, +249,255,250,255,16,0,75,0,120,0,94,0,34,0,252,255,220,255,182,255,166,255,167,255,161,255,165,255,196,255,228,255, +251,255,10,0,248,255,209,255,213,255,13,0,47,0,28,0,3,0,255,255,248,255,230,255,235,255,11,0,30,0,8,0, +225,255,202,255,196,255,199,255,206,255,221,255,245,255,24,0,57,0,72,0,63,0,37,0,4,0,232,255,214,255,218,255, +234,255,242,255,245,255,10,0,35,0,35,0,23,0,14,0,4,0,9,0,51,0,93,0,100,0,99,0,98,0,74,0, +49,0,48,0,34,0,244,255,205,255,192,255,190,255,202,255,224,255,230,255,225,255,219,255,205,255,202,255,230,255,253,255, +250,255,250,255,243,255,190,255,112,255,38,255,231,254,216,254,26,255,115,255,186,255,11,0,78,0,62,0,1,0,236,255, +2,0,54,0,163,0,47,1,136,1,133,1,43,1,152,0,18,0,201,255,165,255,148,255,168,255,211,255,224,255,183,255, +99,255,7,255,215,254,240,254,52,255,136,255,226,255,28,0,15,0,204,255,121,255,33,255,214,254,196,254,6,255,130,255, +255,255,74,0,84,0,58,0,24,0,251,255,243,255,17,0,80,0,155,0,212,0,225,0,194,0,149,0,96,0,10,0, +172,255,130,255,139,255,150,255,166,255,219,255,22,0,34,0,2,0,225,255,207,255,200,255,217,255,13,0,70,0,74,0, +14,0,194,255,134,255,77,255,46,255,84,255,174,255,24,0,145,0,241,0,229,0,120,0,11,0,201,255,159,255,159,255, +220,255,41,0,91,0,111,0,98,0,47,0,229,255,162,255,139,255,178,255,249,255,45,0,58,0,35,0,232,255,159,255, +120,255,137,255,196,255,23,0,100,0,135,0,127,0,93,0,41,0,242,255,211,255,210,255,225,255,247,255,10,0,10,0, +5,0,13,0,21,0,12,0,4,0,6,0,254,255,231,255,219,255,222,255,216,255,196,255,180,255,179,255,184,255,190,255, +207,255,239,255,15,0,36,0,54,0,59,0,26,0,227,255,199,255,204,255,216,255,236,255,13,0,30,0,16,0,249,255, +220,255,177,255,149,255,167,255,230,255,57,0,126,0,143,0,109,0,70,0,54,0,48,0,45,0,58,0,93,0,136,0, +157,0,135,0,81,0,30,0,3,0,8,0,46,0,94,0,122,0,133,0,135,0,105,0,45,0,255,255,242,255,241,255, +249,255,16,0,18,0,228,255,170,255,140,255,133,255,136,255,155,255,192,255,233,255,2,0,5,0,5,0,21,0,46,0, +56,0,54,0,63,0,89,0,123,0,155,0,170,0,156,0,125,0,97,0,73,0,51,0,33,0,27,0,37,0,55,0, +63,0,66,0,76,0,76,0,39,0,246,255,221,255,208,255,191,255,199,255,233,255,248,255,231,255,210,255,200,255,194,255, +202,255,231,255,13,0,47,0,71,0,74,0,48,0,3,0,219,255,206,255,212,255,212,255,207,255,220,255,237,255,231,255, +225,255,252,255,45,0,88,0,117,0,134,0,142,0,149,0,146,0,113,0,72,0,56,0,63,0,75,0,93,0,115,0, +118,0,93,0,55,0,23,0,5,0,248,255,230,255,220,255,234,255,254,255,248,255,219,255,191,255,171,255,152,255,133,255, +116,255,109,255,126,255,161,255,184,255,178,255,158,255,142,255,136,255,133,255,136,255,155,255,175,255,176,255,175,255,204,255, +244,255,243,255,220,255,238,255,40,0,88,0,116,0,140,0,140,0,102,0,64,0,48,0,28,0,250,255,234,255,243,255, +247,255,234,255,226,255,229,255,220,255,197,255,192,255,216,255,246,255,20,0,56,0,79,0,59,0,11,0,227,255,193,255, +154,255,127,255,130,255,152,255,188,255,237,255,15,0,8,0,237,255,223,255,226,255,239,255,5,0,36,0,70,0,98,0, +103,0,72,0,20,0,243,255,246,255,2,0,4,0,12,0,40,0,62,0,44,0,2,0,219,255,189,255,173,255,190,255, +234,255,9,0,11,0,7,0,10,0,13,0,3,0,229,255,186,255,159,255,167,255,186,255,186,255,173,255,175,255,192,255, +211,255,227,255,248,255,15,0,29,0,32,0,32,0,40,0,51,0,52,0,36,0,13,0,1,0,255,255,249,255,243,255, +1,0,22,0,18,0,243,255,221,255,219,255,224,255,241,255,29,0,80,0,104,0,101,0,90,0,74,0,46,0,15,0, +245,255,228,255,221,255,225,255,228,255,217,255,202,255,200,255,208,255,217,255,236,255,21,0,60,0,66,0,44,0,24,0, +17,0,16,0,18,0,26,0,31,0,21,0,2,0,245,255,238,255,228,255,220,255,240,255,40,0,94,0,106,0,78,0, +44,0,30,0,32,0,41,0,53,0,67,0,84,0,107,0,127,0,126,0,99,0,64,0,36,0,13,0,2,0,12,0, +28,0,28,0,22,0,29,0,37,0,21,0,0,0,255,255,6,0,250,255,232,255,237,255,9,0,31,0,39,0,43,0, +41,0,26,0,8,0,9,0,32,0,56,0,66,0,60,0,35,0,253,255,219,255,201,255,199,255,211,255,233,255,1,0, +17,0,16,0,251,255,215,255,182,255,164,255,165,255,187,255,220,255,241,255,239,255,225,255,206,255,186,255,175,255,183,255, +202,255,225,255,251,255,23,0,37,0,23,0,249,255,230,255,237,255,251,255,249,255,236,255,228,255,225,255,216,255,203,255, +198,255,200,255,201,255,207,255,232,255,15,0,36,0,29,0,29,0,60,0,79,0,49,0,0,0,234,255,232,255,231,255, +238,255,251,255,253,255,252,255,14,0,34,0,29,0,13,0,13,0,22,0,24,0,37,0,68,0,81,0,47,0,9,0, +21,0,55,0,49,0,16,0,1,0,251,255,227,255,213,255,234,255,2,0,0,0,252,255,6,0,15,0,8,0,241,255, +206,255,179,255,181,255,205,255,223,255,224,255,223,255,229,255,232,255,225,255,217,255,229,255,1,0,27,0,37,0,39,0, +40,0,43,0,46,0,38,0,25,0,26,0,42,0,47,0,41,0,40,0,35,0,15,0,2,0,12,0,23,0,16,0, +11,0,16,0,12,0,250,255,233,255,222,255,219,255,222,255,224,255,221,255,216,255,223,255,246,255,12,0,3,0,221,255, +193,255,195,255,204,255,200,255,198,255,216,255,249,255,23,0,27,0,255,255,223,255,208,255,205,255,212,255,229,255,243,255, +245,255,250,255,10,0,20,0,18,0,15,0,13,0,14,0,27,0,40,0,34,0,17,0,11,0,11,0,254,255,229,255, +211,255,221,255,249,255,5,0,244,255,225,255,227,255,237,255,246,255,1,0,6,0,252,255,235,255,225,255,222,255,228,255, +240,255,243,255,236,255,234,255,239,255,239,255,242,255,3,0,26,0,49,0,62,0,59,0,47,0,43,0,36,0,10,0, +245,255,251,255,16,0,29,0,31,0,26,0,14,0,6,0,8,0,4,0,244,255,224,255,209,255,208,255,222,255,237,255, +243,255,243,255,241,255,248,255,15,0,33,0,17,0,243,255,237,255,249,255,252,255,248,255,252,255,2,0,4,0,9,0, +17,0,31,0,51,0,61,0,46,0,16,0,248,255,237,255,237,255,237,255,229,255,232,255,9,0,49,0,59,0,43,0, +16,0,236,255,202,255,200,255,224,255,248,255,8,0,22,0,34,0,37,0,21,0,247,255,232,255,239,255,239,255,222,255, +216,255,230,255,241,255,249,255,16,0,43,0,60,0,75,0,84,0,74,0,50,0,23,0,251,255,223,255,206,255,199,255, +202,255,222,255,254,255,25,0,41,0,41,0,26,0,7,0,252,255,240,255,228,255,232,255,245,255,251,255,0,0,13,0, +30,0,46,0,59,0,46,0,7,0,236,255,231,255,227,255,218,255,222,255,231,255,232,255,237,255,0,0,21,0,33,0, +43,0,54,0,61,0,50,0,17,0,245,255,239,255,239,255,239,255,252,255,18,0,30,0,42,0,63,0,70,0,55,0, +45,0,42,0,23,0,255,255,248,255,243,255,229,255,225,255,239,255,251,255,254,255,1,0,13,0,28,0,41,0,48,0, +48,0,36,0,9,0,238,255,225,255,216,255,201,255,193,255,191,255,181,255,179,255,200,255,221,255,226,255,245,255,26,0, +43,0,32,0,24,0,26,0,22,0,13,0,11,0,17,0,16,0,3,0,246,255,249,255,4,0,5,0,6,0,26,0, +46,0,45,0,39,0,42,0,43,0,36,0,22,0,3,0,247,255,253,255,254,255,231,255,210,255,216,255,224,255,221,255, +227,255,247,255,7,0,12,0,9,0,0,0,251,255,251,255,239,255,214,255,194,255,185,255,184,255,200,255,224,255,230,255, +221,255,214,255,213,255,219,255,232,255,232,255,210,255,196,255,215,255,236,255,235,255,218,255,204,255,196,255,196,255,195,255, +189,255,197,255,226,255,251,255,253,255,240,255,229,255,224,255,225,255,235,255,253,255,20,0,37,0,38,0,34,0,37,0, +36,0,19,0,2,0,252,255,254,255,7,0,23,0,39,0,49,0,42,0,16,0,248,255,246,255,251,255,247,255,253,255, +18,0,27,0,16,0,6,0,1,0,246,255,243,255,0,0,11,0,3,0,243,255,241,255,10,0,47,0,61,0,54,0, +58,0,71,0,68,0,61,0,73,0,80,0,63,0,42,0,31,0,23,0,19,0,22,0,17,0,12,0,22,0,35,0, +38,0,42,0,49,0,42,0,29,0,29,0,28,0,23,0,28,0,33,0,11,0,235,255,228,255,233,255,222,255,204,255, +203,255,222,255,235,255,225,255,207,255,211,255,219,255,197,255,170,255,183,255,222,255,236,255,227,255,224,255,225,255,213,255, +199,255,201,255,218,255,231,255,229,255,221,255,231,255,252,255,9,0,11,0,18,0,33,0,53,0,68,0,69,0,63,0, +69,0,85,0,91,0,84,0,65,0,28,0,237,255,199,255,181,255,187,255,212,255,234,255,235,255,233,255,254,255,31,0, +54,0,58,0,40,0,12,0,253,255,245,255,226,255,204,255,196,255,187,255,175,255,184,255,209,255,216,255,205,255,207,255, +227,255,242,255,231,255,201,255,178,255,177,255,185,255,188,255,203,255,230,255,244,255,243,255,247,255,250,255,249,255,6,0, +35,0,45,0,28,0,9,0,0,0,251,255,253,255,3,0,1,0,253,255,4,0,23,0,46,0,66,0,68,0,60,0, +64,0,79,0,80,0,62,0,37,0,13,0,252,255,250,255,251,255,244,255,247,255,21,0,57,0,73,0,71,0,73,0, +87,0,95,0,75,0,40,0,20,0,10,0,250,255,236,255,233,255,230,255,229,255,250,255,26,0,37,0,33,0,33,0, +28,0,16,0,10,0,8,0,248,255,234,255,243,255,1,0,253,255,239,255,234,255,237,255,239,255,236,255,231,255,229,255, +235,255,246,255,0,0,3,0,253,255,2,0,23,0,39,0,38,0,40,0,54,0,53,0,22,0,241,255,220,255,218,255, +223,255,221,255,214,255,215,255,229,255,242,255,249,255,0,0,4,0,253,255,246,255,253,255,10,0,14,0,10,0,6,0, +0,0,242,255,227,255,226,255,234,255,229,255,212,255,206,255,217,255,217,255,203,255,200,255,218,255,240,255,249,255,245,255, +240,255,246,255,253,255,241,255,220,255,212,255,217,255,222,255,228,255,230,255,224,255,224,255,234,255,238,255,232,255,241,255, +11,0,25,0,27,0,24,0,9,0,241,255,231,255,234,255,232,255,230,255,238,255,242,255,235,255,241,255,11,0,35,0, +49,0,56,0,46,0,26,0,17,0,26,0,37,0,32,0,9,0,242,255,239,255,249,255,251,255,248,255,1,0,7,0, +245,255,225,255,239,255,23,0,52,0,58,0,52,0,45,0,39,0,32,0,18,0,4,0,252,255,249,255,247,255,237,255, +220,255,213,255,228,255,244,255,233,255,220,255,239,255,16,0,23,0,18,0,24,0,27,0,9,0,251,255,0,0,253,255, +232,255,226,255,242,255,246,255,234,255,246,255,30,0,54,0,46,0,33,0,35,0,41,0,38,0,23,0,12,0,21,0, +45,0,53,0,39,0,27,0,25,0,14,0,251,255,254,255,23,0,47,0,59,0,61,0,53,0,47,0,52,0,53,0, +36,0,14,0,2,0,248,255,234,255,230,255,244,255,5,0,4,0,243,255,230,255,239,255,250,255,246,255,241,255,251,255, +6,0,249,255,221,255,202,255,205,255,223,255,236,255,235,255,240,255,4,0,19,0,17,0,15,0,22,0,27,0,28,0, +24,0,0,0,216,255,192,255,196,255,214,255,244,255,24,0,34,0,8,0,243,255,253,255,10,0,254,255,234,255,228,255, +234,255,249,255,14,0,30,0,32,0,22,0,13,0,9,0,2,0,246,255,241,255,1,0,30,0,47,0,47,0,40,0, +33,0,29,0,27,0,24,0,18,0,10,0,4,0,7,0,21,0,38,0,50,0,55,0,54,0,47,0,38,0,29,0, +10,0,242,255,241,255,12,0,35,0,32,0,22,0,23,0,36,0,50,0,55,0,37,0,1,0,229,255,223,255,234,255, +249,255,251,255,237,255,224,255,224,255,231,255,235,255,244,255,11,0,33,0,36,0,23,0,10,0,1,0,247,255,240,255, +238,255,232,255,213,255,198,255,201,255,212,255,217,255,218,255,215,255,208,255,202,255,208,255,215,255,214,255,210,255,210,255, +204,255,197,255,197,255,198,255,189,255,186,255,208,255,240,255,3,0,11,0,16,0,11,0,251,255,241,255,253,255,11,0, +1,0,234,255,235,255,8,0,30,0,24,0,2,0,238,255,225,255,219,255,221,255,234,255,251,255,9,0,22,0,31,0, +13,0,232,255,236,255,40,0,65,0,3,0,201,255,234,255,36,0,36,0,23,0,50,0,67,0,26,0,232,255,226,255, +248,255,4,0,4,0,5,0,3,0,251,255,246,255,0,0,20,0,27,0,18,0,254,255,222,255,182,255,175,255,214,255, +0,0,0,0,238,255,237,255,244,255,227,255,192,255,178,255,200,255,227,255,224,255,204,255,206,255,231,255,1,0,23,0, +34,0,15,0,230,255,204,255,202,255,202,255,202,255,218,255,239,255,244,255,236,255,229,255,228,255,242,255,8,0,14,0, +247,255,227,255,234,255,251,255,255,255,252,255,1,0,7,0,12,0,19,0,29,0,41,0,58,0,67,0,52,0,23,0, +8,0,8,0,6,0,254,255,253,255,2,0,8,0,18,0,28,0,27,0,19,0,16,0,17,0,14,0,13,0,13,0, +7,0,1,0,0,0,254,255,247,255,242,255,239,255,229,255,221,255,231,255,254,255,16,0,20,0,10,0,1,0,6,0, +14,0,6,0,245,255,235,255,227,255,219,255,224,255,244,255,1,0,255,255,246,255,227,255,202,255,187,255,194,255,214,255, +229,255,233,255,234,255,243,255,252,255,250,255,253,255,19,0,32,0,13,0,255,255,26,0,58,0,63,0,56,0,56,0, +47,0,34,0,36,0,46,0,48,0,49,0,54,0,53,0,41,0,30,0,26,0,24,0,26,0,29,0,24,0,11,0, +250,255,231,255,215,255,216,255,229,255,241,255,254,255,22,0,42,0,32,0,255,255,237,255,243,255,245,255,226,255,210,255, +216,255,227,255,232,255,236,255,245,255,253,255,1,0,1,0,252,255,253,255,15,0,36,0,35,0,13,0,251,255,251,255, +5,0,8,0,251,255,243,255,1,0,24,0,26,0,16,0,26,0,49,0,49,0,24,0,12,0,26,0,39,0,31,0, +18,0,8,0,250,255,243,255,8,0,37,0,42,0,38,0,51,0,68,0,66,0,66,0,82,0,85,0,55,0,25,0, +17,0,16,0,7,0,252,255,250,255,1,0,12,0,16,0,8,0,254,255,1,0,18,0,36,0,44,0,41,0,36,0, +29,0,15,0,251,255,234,255,222,255,213,255,215,255,234,255,8,0,29,0,36,0,32,0,25,0,15,0,3,0,0,0, +12,0,20,0,12,0,1,0,254,255,246,255,233,255,240,255,11,0,20,0,1,0,238,255,231,255,233,255,245,255,1,0, +248,255,223,255,211,255,224,255,250,255,15,0,21,0,12,0,2,0,0,0,252,255,243,255,235,255,229,255,224,255,224,255, +225,255,220,255,221,255,241,255,18,0,47,0,63,0,55,0,24,0,254,255,252,255,0,0,241,255,214,255,198,255,205,255, +225,255,238,255,233,255,223,255,228,255,249,255,19,0,37,0,39,0,31,0,29,0,34,0,29,0,14,0,7,0,12,0, +14,0,7,0,254,255,249,255,252,255,1,0,2,0,5,0,22,0,46,0,56,0,51,0,43,0,33,0,7,0,231,255, +216,255,221,255,228,255,225,255,220,255,224,255,239,255,3,0,10,0,255,255,241,255,245,255,255,255,253,255,248,255,252,255, +251,255,234,255,219,255,214,255,208,255,208,255,227,255,241,255,228,255,208,255,215,255,241,255,255,255,249,255,243,255,0,0, +22,0,28,0,13,0,0,0,0,0,2,0,3,0,8,0,7,0,252,255,249,255,6,0,21,0,23,0,16,0,6,0, +255,255,255,255,255,255,247,255,239,255,236,255,235,255,232,255,228,255,222,255,220,255,228,255,232,255,218,255,210,255,229,255, +250,255,253,255,249,255,247,255,237,255,224,255,222,255,221,255,215,255,221,255,236,255,236,255,224,255,225,255,237,255,237,255, +233,255,249,255,16,0,15,0,246,255,238,255,8,0,36,0,35,0,19,0,20,0,29,0,21,0,1,0,253,255,9,0, +21,0,23,0,19,0,11,0,8,0,16,0,29,0,37,0,32,0,18,0,6,0,3,0,8,0,9,0,253,255,240,255, +236,255,239,255,236,255,229,255,228,255,239,255,254,255,9,0,14,0,21,0,32,0,37,0,27,0,4,0,241,255,231,255, +225,255,220,255,216,255,217,255,227,255,239,255,242,255,239,255,247,255,10,0,17,0,5,0,244,255,233,255,226,255,223,255, +227,255,232,255,228,255,213,255,202,255,211,255,237,255,3,0,9,0,7,0,4,0,251,255,239,255,238,255,249,255,4,0, +6,0,1,0,248,255,245,255,247,255,246,255,245,255,249,255,253,255,250,255,250,255,1,0,3,0,252,255,251,255,5,0, +13,0,11,0,6,0,5,0,5,0,4,0,0,0,251,255,241,255,233,255,236,255,251,255,5,0,3,0,6,0,20,0, +26,0,17,0,6,0,5,0,10,0,20,0,30,0,32,0,27,0,25,0,23,0,13,0,252,255,240,255,240,255,254,255, +11,0,6,0,245,255,245,255,8,0,23,0,23,0,18,0,15,0,16,0,21,0,27,0,27,0,20,0,8,0,0,0, +6,0,21,0,28,0,28,0,34,0,36,0,21,0,3,0,6,0,21,0,26,0,19,0,10,0,2,0,255,255,251,255, +239,255,224,255,217,255,216,255,216,255,222,255,235,255,245,255,242,255,230,255,218,255,221,255,238,255,250,255,245,255,232,255, +226,255,222,255,215,255,214,255,222,255,230,255,229,255,223,255,216,255,209,255,201,255,199,255,205,255,216,255,224,255,225,255, +223,255,221,255,225,255,236,255,244,255,242,255,240,255,251,255,13,0,23,0,23,0,19,0,10,0,251,255,239,255,244,255, +8,0,24,0,32,0,47,0,69,0,75,0,59,0,49,0,57,0,67,0,70,0,75,0,89,0,106,0,120,0,124,0, +117,0,115,0,123,0,123,0,110,0,102,0,103,0,94,0,78,0,75,0,80,0,74,0,53,0,27,0,5,0,249,255, +243,255,231,255,218,255,216,255,222,255,226,255,225,255,221,255,208,255,196,255,202,255,221,255,237,255,247,255,254,255,252,255, +243,255,235,255,232,255,230,255,232,255,235,255,234,255,231,255,231,255,227,255,214,255,205,255,208,255,218,255,231,255,245,255, +254,255,255,255,254,255,254,255,248,255,242,255,236,255,223,255,211,255,220,255,244,255,2,0,0,0,253,255,247,255,234,255, +228,255,237,255,245,255,241,255,241,255,252,255,9,0,14,0,10,0,0,0,246,255,240,255,231,255,220,255,218,255,227,255, +232,255,228,255,226,255,233,255,247,255,15,0,40,0,51,0,47,0,39,0,37,0,36,0,35,0,32,0,26,0,23,0, +28,0,31,0,26,0,18,0,20,0,28,0,32,0,25,0,12,0,2,0,3,0,9,0,10,0,6,0,3,0,3,0, +2,0,3,0,2,0,253,255,251,255,7,0,26,0,33,0,25,0,20,0,27,0,37,0,38,0,34,0,37,0,43,0, +41,0,26,0,5,0,245,255,239,255,235,255,231,255,230,255,234,255,238,255,239,255,235,255,231,255,230,255,235,255,242,255, +242,255,238,255,230,255,214,255,195,255,185,255,183,255,178,255,175,255,181,255,181,255,171,255,169,255,185,255,206,255,222,255, +237,255,0,0,13,0,12,0,250,255,231,255,230,255,241,255,242,255,238,255,252,255,20,0,28,0,23,0,23,0,24,0, +15,0,4,0,255,255,1,0,9,0,22,0,28,0,29,0,35,0,41,0,33,0,19,0,7,0,251,255,240,255,239,255, +244,255,248,255,251,255,0,0,0,0,251,255,247,255,243,255,239,255,242,255,2,0,20,0,35,0,41,0,34,0,16,0, +5,0,7,0,9,0,5,0,252,255,242,255,235,255,238,255,250,255,3,0,3,0,0,0,255,255,3,0,9,0,9,0, +254,255,246,255,249,255,253,255,249,255,251,255,8,0,16,0,8,0,251,255,247,255,248,255,242,255,231,255,228,255,240,255, +2,0,11,0,6,0,254,255,250,255,251,255,251,255,248,255,239,255,227,255,218,255,218,255,220,255,222,255,228,255,238,255, +237,255,226,255,227,255,251,255,27,0,48,0,55,0,53,0,50,0,50,0,49,0,39,0,23,0,10,0,1,0,254,255, +3,0,9,0,10,0,8,0,6,0,1,0,251,255,0,0,12,0,19,0,22,0,26,0,24,0,15,0,9,0,10,0, +12,0,15,0,19,0,14,0,254,255,243,255,246,255,0,0,13,0,20,0,13,0,1,0,1,0,12,0,15,0,9,0, +2,0,0,0,10,0,27,0,33,0,20,0,9,0,11,0,13,0,2,0,250,255,253,255,2,0,3,0,253,255,243,255, +240,255,252,255,8,0,10,0,7,0,10,0,18,0,29,0,42,0,48,0,45,0,44,0,45,0,34,0,12,0,247,255, +231,255,216,255,211,255,218,255,228,255,235,255,241,255,246,255,248,255,252,255,3,0,7,0,9,0,10,0,8,0,0,0, +243,255,229,255,219,255,221,255,233,255,237,255,232,255,232,255,243,255,255,255,5,0,10,0,12,0,6,0,252,255,246,255, +247,255,246,255,240,255,237,255,242,255,248,255,243,255,231,255,225,255,231,255,235,255,229,255,223,255,233,255,251,255,2,0, +247,255,233,255,226,255,221,255,208,255,185,255,164,255,161,255,181,255,211,255,237,255,1,0,22,0,44,0,63,0,71,0, +52,0,13,0,240,255,242,255,6,0,12,0,249,255,216,255,194,255,188,255,183,255,170,255,175,255,218,255,29,0,78,0, +91,0,78,0,64,0,62,0,56,0,22,0,230,255,210,255,227,255,246,255,245,255,238,255,251,255,29,0,55,0,47,0, +8,0,228,255,219,255,224,255,221,255,209,255,206,255,230,255,24,0,70,0,77,0,48,0,18,0,4,0,251,255,245,255, +249,255,7,0,22,0,31,0,29,0,24,0,33,0,56,0,69,0,56,0,20,0,244,255,237,255,255,255,14,0,7,0, +254,255,13,0,40,0,51,0,38,0,17,0,1,0,251,255,246,255,233,255,221,255,228,255,251,255,10,0,0,0,224,255, +197,255,196,255,215,255,228,255,222,255,216,255,227,255,248,255,6,0,5,0,251,255,243,255,237,255,227,255,216,255,219,255, +244,255,18,0,35,0,32,0,17,0,7,0,7,0,13,0,10,0,246,255,224,255,222,255,246,255,22,0,34,0,25,0, +22,0,35,0,45,0,40,0,29,0,24,0,20,0,8,0,249,255,245,255,2,0,18,0,23,0,16,0,2,0,245,255, +244,255,2,0,17,0,15,0,5,0,6,0,20,0,27,0,18,0,4,0,253,255,254,255,255,255,253,255,254,255,9,0, +23,0,28,0,23,0,12,0,4,0,5,0,15,0,22,0,15,0,252,255,237,255,234,255,242,255,250,255,248,255,239,255, +236,255,240,255,237,255,225,255,216,255,217,255,221,255,221,255,225,255,240,255,6,0,19,0,15,0,9,0,11,0,11,0, +253,255,236,255,230,255,235,255,236,255,231,255,227,255,233,255,248,255,6,0,12,0,12,0,14,0,14,0,9,0,2,0, +2,0,8,0,18,0,19,0,10,0,0,0,0,0,3,0,4,0,3,0,5,0,6,0,8,0,10,0,12,0,13,0, +14,0,12,0,3,0,249,255,247,255,249,255,249,255,246,255,244,255,249,255,3,0,7,0,254,255,245,255,246,255,250,255, +252,255,255,255,2,0,255,255,253,255,7,0,21,0,21,0,5,0,247,255,245,255,251,255,253,255,248,255,247,255,1,0, +12,0,20,0,33,0,49,0,50,0,30,0,9,0,255,255,254,255,2,0,10,0,18,0,22,0,20,0,12,0,0,0, +248,255,244,255,242,255,244,255,253,255,1,0,254,255,250,255,248,255,240,255,229,255,223,255,225,255,230,255,233,255,232,255, +233,255,243,255,2,0,9,0,8,0,11,0,19,0,22,0,14,0,4,0,252,255,251,255,255,255,7,0,13,0,17,0, +18,0,20,0,25,0,31,0,29,0,18,0,4,0,249,255,240,255,237,255,244,255,0,0,8,0,10,0,13,0,14,0, +9,0,1,0,254,255,1,0,3,0,7,0,18,0,28,0,19,0,248,255,226,255,227,255,244,255,3,0,9,0,12,0, +16,0,19,0,16,0,13,0,11,0,8,0,9,0,18,0,26,0,18,0,254,255,242,255,242,255,248,255,2,0,15,0, +26,0,31,0,28,0,14,0,249,255,231,255,221,255,216,255,214,255,215,255,212,255,210,255,216,255,226,255,227,255,221,255, +217,255,220,255,230,255,241,255,248,255,250,255,2,0,17,0,24,0,23,0,28,0,35,0,26,0,4,0,246,255,246,255, +252,255,255,255,251,255,246,255,247,255,251,255,249,255,244,255,246,255,250,255,245,255,237,255,237,255,244,255,254,255,8,0, +4,0,245,255,237,255,243,255,251,255,253,255,251,255,245,255,237,255,236,255,240,255,240,255,233,255,231,255,237,255,242,255, +244,255,240,255,235,255,238,255,248,255,251,255,245,255,244,255,254,255,5,0,2,0,248,255,239,255,237,255,245,255,253,255, +254,255,251,255,251,255,254,255,253,255,252,255,2,0,15,0,31,0,41,0,39,0,30,0,23,0,20,0,14,0,10,0, +12,0,20,0,24,0,26,0,31,0,33,0,24,0,10,0,1,0,6,0,17,0,26,0,32,0,34,0,34,0,29,0, +18,0,7,0,254,255,248,255,246,255,253,255,9,0,14,0,14,0,16,0,15,0,3,0,244,255,242,255,254,255,10,0, +11,0,0,0,244,255,244,255,253,255,0,0,248,255,243,255,247,255,1,0,8,0,12,0,8,0,254,255,247,255,245,255, +245,255,248,255,254,255,0,0,255,255,255,255,254,255,250,255,250,255,2,0,6,0,7,0,9,0,15,0,17,0,18,0, +19,0,20,0,21,0,29,0,33,0,24,0,12,0,11,0,17,0,18,0,13,0,5,0,1,0,6,0,10,0,6,0, +253,255,248,255,242,255,232,255,227,255,229,255,230,255,232,255,244,255,0,0,0,0,247,255,243,255,245,255,245,255,240,255, +233,255,231,255,236,255,241,255,242,255,241,255,241,255,235,255,226,255,227,255,235,255,238,255,236,255,238,255,244,255,245,255, +241,255,241,255,247,255,255,255,4,0,3,0,254,255,251,255,251,255,252,255,252,255,251,255,247,255,244,255,247,255,255,255, +7,0,13,0,19,0,27,0,33,0,33,0,23,0,11,0,8,0,18,0,28,0,25,0,19,0,18,0,20,0,17,0, +11,0,10,0,14,0,17,0,22,0,30,0,33,0,25,0,12,0,3,0,254,255,252,255,252,255,254,255,254,255,249,255, +243,255,244,255,251,255,251,255,247,255,247,255,253,255,252,255,242,255,237,255,241,255,242,255,237,255,235,255,240,255,246,255, +250,255,250,255,249,255,248,255,247,255,240,255,232,255,234,255,246,255,2,0,5,0,1,0,252,255,252,255,0,0,1,0, +254,255,255,255,5,0,12,0,17,0,22,0,21,0,11,0,3,0,3,0,5,0,2,0,254,255,254,255,254,255,0,0, +6,0,12,0,11,0,5,0,2,0,6,0,12,0,10,0,0,0,249,255,255,255,8,0,8,0,0,0,247,255,244,255, +245,255,242,255,230,255,217,255,216,255,227,255,235,255,234,255,230,255,229,255,235,255,244,255,251,255,250,255,243,255,239,255, +242,255,251,255,4,0,10,0,9,0,2,0,251,255,247,255,249,255,252,255,255,255,1,0,4,0,8,0,9,0,10,0, +13,0,15,0,11,0,6,0,2,0,0,0,254,255,254,255,1,0,4,0,5,0,7,0,11,0,15,0,14,0,13,0, +16,0,22,0,25,0,22,0,18,0,18,0,22,0,24,0,18,0,6,0,252,255,251,255,254,255,255,255,252,255,252,255, +2,0,11,0,16,0,14,0,13,0,16,0,18,0,16,0,8,0,0,0,248,255,241,255,237,255,238,255,247,255,1,0, +8,0,13,0,17,0,19,0,16,0,10,0,7,0,6,0,2,0,255,255,0,0,1,0,253,255,248,255,247,255,248,255, +248,255,248,255,251,255,2,0,8,0,13,0,18,0,22,0,17,0,8,0,4,0,5,0,1,0,246,255,237,255,235,255, +235,255,235,255,235,255,239,255,243,255,246,255,248,255,251,255,255,255,0,0,253,255,250,255,247,255,246,255,243,255,237,255, +229,255,224,255,225,255,228,255,230,255,231,255,238,255,251,255,8,0,14,0,13,0,8,0,6,0,8,0,10,0,10,0, +9,0,9,0,6,0,253,255,242,255,239,255,246,255,0,0,4,0,4,0,5,0,8,0,12,0,15,0,17,0,14,0, +9,0,7,0,11,0,15,0,15,0,10,0,6,0,5,0,6,0,7,0,6,0,6,0,7,0,2,0,249,255,241,255, +241,255,245,255,249,255,251,255,2,0,12,0,19,0,20,0,16,0,12,0,5,0,254,255,252,255,5,0,15,0,17,0, +11,0,1,0,245,255,237,255,235,255,238,255,239,255,235,255,234,255,240,255,249,255,251,255,248,255,251,255,7,0,18,0, +21,0,17,0,13,0,9,0,4,0,252,255,244,255,236,255,229,255,223,255,224,255,232,255,241,255,246,255,247,255,250,255, +255,255,3,0,0,0,249,255,243,255,243,255,246,255,248,255,246,255,243,255,244,255,250,255,2,0,9,0,12,0,12,0, +11,0,9,0,5,0,1,0,252,255,249,255,245,255,244,255,250,255,4,0,11,0,10,0,7,0,11,0,17,0,16,0, +9,0,1,0,254,255,250,255,247,255,250,255,2,0,8,0,10,0,13,0,20,0,21,0,12,0,4,0,7,0,15,0, +14,0,1,0,240,255,229,255,224,255,227,255,236,255,244,255,245,255,244,255,247,255,254,255,1,0,254,255,254,255,2,0, +5,0,6,0,8,0,13,0,19,0,17,0,9,0,255,255,251,255,253,255,1,0,2,0,1,0,255,255,255,255,0,0, +2,0,5,0,11,0,18,0,24,0,25,0,18,0,6,0,253,255,252,255,0,0,1,0,1,0,4,0,10,0,15,0, +20,0,24,0,25,0,22,0,21,0,24,0,25,0,23,0,23,0,28,0,33,0,28,0,18,0,13,0,14,0,14,0, +12,0,8,0,2,0,250,255,245,255,249,255,254,255,253,255,249,255,250,255,255,255,2,0,3,0,6,0,6,0,255,255, +248,255,248,255,251,255,253,255,249,255,245,255,239,255,233,255,232,255,234,255,235,255,231,255,228,255,229,255,227,255,219,255, +215,255,224,255,237,255,243,255,243,255,246,255,252,255,0,0,0,0,254,255,252,255,248,255,245,255,247,255,252,255,1,0, +3,0,3,0,2,0,5,0,13,0,19,0,20,0,18,0,20,0,25,0,24,0,16,0,11,0,12,0,13,0,9,0, +3,0,3,0,5,0,7,0,8,0,7,0,7,0,10,0,17,0,21,0,18,0,11,0,9,0,6,0,250,255,232,255, +222,255,225,255,232,255,235,255,234,255,237,255,243,255,250,255,253,255,254,255,1,0,2,0,254,255,245,255,234,255,232,255, +236,255,240,255,242,255,245,255,251,255,255,255,252,255,248,255,250,255,3,0,11,0,13,0,11,0,4,0,251,255,242,255, +238,255,244,255,254,255,5,0,3,0,250,255,248,255,1,0,12,0,9,0,251,255,244,255,252,255,11,0,17,0,15,0, +13,0,14,0,14,0,10,0,6,0,4,0,6,0,9,0,10,0,8,0,4,0,2,0,3,0,5,0,6,0,4,0, +2,0,3,0,8,0,14,0,17,0,13,0,5,0,253,255,252,255,0,0,6,0,9,0,10,0,7,0,3,0,255,255, +255,255,1,0,6,0,12,0,18,0,21,0,21,0,18,0,13,0,6,0,253,255,249,255,250,255,252,255,248,255,241,255, +239,255,241,255,241,255,237,255,237,255,246,255,1,0,7,0,10,0,12,0,10,0,254,255,239,255,228,255,224,255,222,255, +223,255,227,255,235,255,244,255,253,255,5,0,10,0,10,0,8,0,8,0,9,0,7,0,5,0,4,0,3,0,0,0, +250,255,248,255,248,255,249,255,251,255,0,0,8,0,14,0,19,0,23,0,23,0,17,0,4,0,249,255,246,255,248,255, +250,255,248,255,244,255,242,255,242,255,244,255,248,255,253,255,3,0,6,0,7,0,6,0,3,0,253,255,244,255,238,255, +236,255,236,255,239,255,244,255,252,255,2,0,6,0,9,0,8,0,1,0,246,255,242,255,246,255,253,255,254,255,250,255, +246,255,245,255,246,255,248,255,252,255,0,0,2,0,4,0,7,0,7,0,3,0,253,255,246,255,238,255,233,255,236,255, +246,255,252,255,250,255,249,255,2,0,15,0,19,0,15,0,10,0,11,0,12,0,8,0,1,0,252,255,251,255,252,255, +254,255,0,0,3,0,9,0,19,0,27,0,28,0,20,0,9,0,2,0,2,0,5,0,6,0,7,0,10,0,13,0, +12,0,8,0,3,0,251,255,238,255,226,255,221,255,227,255,232,255,231,255,230,255,235,255,246,255,0,0,10,0,21,0, +30,0,30,0,22,0,12,0,6,0,4,0,4,0,1,0,252,255,245,255,241,255,242,255,248,255,251,255,248,255,241,255, +235,255,232,255,230,255,227,255,227,255,235,255,251,255,14,0,28,0,32,0,26,0,13,0,4,0,0,0,254,255,247,255, +243,255,249,255,6,0,14,0,17,0,24,0,32,0,33,0,22,0,12,0,12,0,18,0,23,0,30,0,43,0,55,0, +58,0,53,0,44,0,29,0,11,0,250,255,238,255,227,255,219,255,223,255,242,255,9,0,23,0,27,0,26,0,23,0, +14,0,254,255,239,255,227,255,219,255,215,255,216,255,226,255,243,255,5,0,16,0,20,0,21,0,23,0,23,0,22,0, +24,0,29,0,33,0,30,0,24,0,20,0,13,0,254,255,233,255,213,255,198,255,191,255,194,255,210,255,233,255,2,0, +24,0,42,0,50,0,45,0,31,0,13,0,249,255,230,255,220,255,222,255,235,255,255,255,20,0,38,0,45,0,37,0, +20,0,1,0,236,255,214,255,195,255,184,255,186,255,201,255,224,255,248,255,15,0,35,0,47,0,41,0,13,0,234,255, +207,255,191,255,183,255,185,255,204,255,236,255,10,0,30,0,41,0,44,0,38,0,27,0,16,0,11,0,14,0,29,0, +56,0,80,0,84,0,73,0,59,0,47,0,26,0,253,255,227,255,216,255,210,255,206,255,207,255,219,255,234,255,239,255, +233,255,226,255,226,255,231,255,235,255,234,255,227,255,220,255,221,255,236,255,1,0,18,0,26,0,31,0,33,0,30,0, +21,0,7,0,252,255,244,255,238,255,231,255,228,255,232,255,243,255,253,255,2,0,2,0,253,255,246,255,244,255,250,255, +7,0,21,0,32,0,39,0,39,0,30,0,17,0,7,0,5,0,3,0,0,0,255,255,3,0,10,0,15,0,15,0, +10,0,0,0,241,255,222,255,204,255,189,255,180,255,179,255,188,255,201,255,213,255,221,255,231,255,244,255,2,0,10,0, +17,0,26,0,37,0,44,0,45,0,44,0,43,0,42,0,39,0,32,0,19,0,3,0,244,255,236,255,237,255,243,255, +250,255,4,0,17,0,31,0,39,0,35,0,20,0,0,0,240,255,230,255,224,255,222,255,224,255,231,255,242,255,251,255, +1,0,4,0,9,0,17,0,26,0,31,0,29,0,21,0,13,0,7,0,1,0,250,255,242,255,237,255,239,255,248,255, +2,0,7,0,9,0,14,0,20,0,21,0,15,0,6,0,253,255,243,255,227,255,211,255,203,255,200,255,200,255,206,255, +223,255,246,255,10,0,20,0,25,0,25,0,20,0,11,0,5,0,3,0,1,0,1,0,5,0,12,0,15,0,12,0, +8,0,8,0,12,0,16,0,25,0,40,0,54,0,59,0,53,0,39,0,23,0,4,0,240,255,220,255,207,255,203,255, +206,255,212,255,217,255,226,255,241,255,3,0,18,0,29,0,35,0,37,0,33,0,26,0,17,0,6,0,251,255,241,255, +234,255,230,255,227,255,228,255,231,255,237,255,244,255,251,255,255,255,0,0,0,0,4,0,11,0,11,0,1,0,243,255, +235,255,233,255,235,255,238,255,243,255,252,255,9,0,23,0,36,0,42,0,40,0,32,0,21,0,9,0,252,255,243,255, +239,255,242,255,247,255,252,255,254,255,1,0,6,0,10,0,7,0,0,0,252,255,0,0,8,0,14,0,19,0,23,0, +23,0,21,0,20,0,22,0,22,0,16,0,9,0,7,0,8,0,5,0,0,0,1,0,6,0,10,0,6,0,1,0, +254,255,254,255,251,255,248,255,244,255,243,255,243,255,246,255,252,255,6,0,15,0,19,0,18,0,16,0,13,0,9,0, +5,0,0,0,251,255,244,255,237,255,235,255,238,255,242,255,243,255,243,255,248,255,0,0,8,0,10,0,8,0,6,0, +5,0,4,0,3,0,4,0,6,0,6,0,0,0,247,255,240,255,235,255,234,255,233,255,234,255,239,255,246,255,252,255, +255,255,254,255,252,255,249,255,246,255,245,255,246,255,249,255,253,255,0,0,1,0,255,255,253,255,252,255,255,255,3,0, +7,0,9,0,11,0,11,0,11,0,6,0,254,255,245,255,238,255,236,255,237,255,238,255,239,255,241,255,244,255,248,255, +254,255,1,0,0,0,252,255,250,255,249,255,248,255,246,255,244,255,245,255,249,255,251,255,252,255,254,255,4,0,11,0, +12,0,7,0,1,0,253,255,252,255,253,255,254,255,254,255,0,0,1,0,1,0,1,0,3,0,8,0,13,0,16,0, +18,0,22,0,25,0,25,0,20,0,13,0,6,0,0,0,249,255,242,255,239,255,240,255,243,255,246,255,247,255,249,255, +253,255,2,0,4,0,1,0,253,255,250,255,253,255,2,0,6,0,5,0,3,0,4,0,5,0,3,0,253,255,247,255, +243,255,240,255,238,255,238,255,243,255,249,255,253,255,254,255,1,0,6,0,11,0,13,0,11,0,9,0,6,0,2,0, +253,255,249,255,249,255,252,255,255,255,0,0,255,255,254,255,253,255,253,255,253,255,252,255,250,255,248,255,248,255,250,255, +251,255,250,255,248,255,246,255,245,255,244,255,244,255,247,255,252,255,0,0,1,0,2,0,4,0,8,0,12,0,13,0, +14,0,16,0,20,0,22,0,22,0,20,0,16,0,13,0,13,0,14,0,16,0,15,0,13,0,10,0,9,0,8,0, +5,0,1,0,253,255,249,255,248,255,250,255,253,255,0,0,1,0,0,0,255,255,255,255,255,255,253,255,249,255,246,255, +244,255,242,255,240,255,240,255,244,255,249,255,252,255,254,255,0,0,3,0,6,0,6,0,4,0,4,0,7,0,12,0, +13,0,11,0,7,0,5,0,4,0,1,0,253,255,250,255,253,255,2,0,7,0,8,0,7,0,7,0,9,0,9,0, +8,0,4,0,2,0,0,0,253,255,250,255,247,255,247,255,248,255,248,255,248,255,250,255,254,255,2,0,3,0,1,0, +255,255,255,255,255,255,254,255,252,255,252,255,255,255,4,0,5,0,4,0,3,0,4,0,4,0,1,0,253,255,250,255, +252,255,255,255,1,0,1,0,1,0,2,0,2,0,0,0,254,255,252,255,251,255,249,255,248,255,247,255,249,255,252,255, +253,255,252,255,250,255,249,255,248,255,248,255,248,255,249,255,251,255,253,255,255,255,0,0,2,0,6,0,9,0,10,0, +9,0,8,0,8,0,8,0,8,0,7,0,6,0,7,0,8,0,8,0,7,0,8,0,10,0,12,0,10,0,6,0, +1,0,253,255,253,255,254,255,0,0,3,0,4,0,3,0,0,0,254,255,253,255,254,255,255,255,2,0,5,0,8,0, +10,0,11,0,10,0,9,0,6,0,2,0,254,255,251,255,250,255,252,255,254,255,0,0,2,0,2,0,3,0,3,0, +3,0,1,0,1,0,0,0,0,0,254,255,253,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,255,255,254,255, +254,255,255,255,0,0,1,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,2,0,0,0,255,255,0,0,0,0, +255,255,253,255,252,255,252,255,254,255,0,0,1,0,2,0,1,0,255,255,254,255,252,255,250,255,248,255,247,255,247,255, +248,255,250,255,253,255,1,0,3,0,3,0,2,0,2,0,2,0,1,0,255,255,252,255,251,255,249,255,247,255,245,255, +245,255,249,255,253,255,0,0,3,0,6,0,8,0,9,0,8,0,5,0,3,0,2,0,1,0,255,255,253,255,253,255, +255,255,1,0,4,0,5,0,6,0,7,0,8,0,8,0,8,0,6,0,4,0,2,0,1,0,255,255,252,255,249,255, +246,255,245,255,245,255,246,255,247,255,248,255,248,255,249,255,250,255,250,255,251,255,251,255,253,255,255,255,1,0,2,0, +2,0,3,0,2,0,0,0,254,255,254,255,255,255,1,0,3,0,3,0,2,0,2,0,2,0,1,0,254,255,253,255, +252,255,253,255,254,255,255,255,0,0,1,0,0,0,254,255,250,255,249,255,249,255,249,255,248,255,247,255,246,255,247,255, +247,255,247,255,248,255,250,255,251,255,252,255,253,255,255,255,1,0,2,0,2,0,1,0,255,255,253,255,252,255,251,255, +253,255,0,0,2,0,4,0,5,0,5,0,5,0,6,0,7,0,8,0,7,0,5,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,2,0,255,255,252,255,251,255,251,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,3,0, +6,0,7,0,7,0,6,0,6,0,5,0,3,0,2,0,0,0,255,255,253,255,252,255,254,255,0,0,2,0,3,0, +4,0,5,0,4,0,2,0,255,255,253,255,252,255,251,255,250,255,249,255,249,255,251,255,253,255,255,255,0,0,1,0, +1,0,0,0,253,255,251,255,249,255,248,255,249,255,251,255,252,255,252,255,253,255,255,255,0,0,0,0,0,0,1,0, +2,0,2,0,0,0,255,255,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,2,0,4,0,4,0, +2,0,1,0,2,0,3,0,3,0,4,0,4,0,4,0,2,0,1,0,0,0,1,0,3,0,4,0,3,0,3,0, +3,0,4,0,4,0,5,0,5,0,7,0,9,0,10,0,8,0,6,0,5,0,4,0,3,0,0,0,254,255,254,255, +255,255,0,0,0,0,0,0,1,0,2,0,2,0,0,0,254,255,253,255,255,255,1,0,2,0,1,0,0,0,1,0, +3,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,2,0,1,0,255,255,253,255,253,255,253,255,252,255, +250,255,250,255,252,255,253,255,254,255,253,255,253,255,254,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +254,255,253,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,254,255,253,255,252,255, +252,255,253,255,253,255,254,255,254,255,0,0,2,0,3,0,4,0,5,0,6,0,7,0,6,0,4,0,3,0,2,0, +0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255, +254,255,253,255,252,255,253,255,254,255,255,255,255,255,254,255,254,255,253,255,252,255,252,255,253,255,254,255,0,0,1,0, +2,0,3,0,4,0,3,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0, +3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,4,0,6,0,7,0,7,0,7,0,8,0, +8,0,8,0,7,0,6,0,6,0,6,0,6,0,5,0,3,0,2,0,1,0,0,0,254,255,253,255,253,255,253,255, +254,255,255,255,255,255,0,0,255,255,255,255,254,255,252,255,252,255,254,255,0,0,1,0,2,0,1,0,1,0,255,255, +254,255,253,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0, +2,0,1,0,0,0,254,255,253,255,252,255,250,255,249,255,249,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255, +251,255,251,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,254,255,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,3,0, +3,0,3,0,2,0,1,0,0,0,255,255,0,0,1,0,2,0,3,0,4,0,6,0,7,0,7,0,6,0,5,0, +4,0,3,0,3,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,5,0,4,0,2,0,2,0,1,0,1,0, +0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0, +2,0,2,0,3,0,3,0,3,0,3,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255, +252,255,252,255,253,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +2,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,254,255,254,255,253,255,254,255,254,255,255,255,0,0,0,0,0,0, +255,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +254,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,255,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,252,255,253,255,253,255,254,255,255,255, +255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,252,255,251,255,251,255,250,255,251,255,252,255,253,255,254,255, +254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,3,0,3,0,3,0, +3,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0, +0,0,255,255,0,0,0,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,4,0,4,0,4,0,2,0,1,0, +255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255, +250,255,250,255,250,255,251,255,252,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0, +4,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,5,0,6,0,6,0,5,0,4,0,2,0,1,0, +1,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255, +254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255, +253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,253,255,253,255,254,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,0,0,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,253,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,254,255, +255,255,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +2,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0, +2,0,3,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,253,255,254,255,255,255,0,0, +0,0,255,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0, +1,0,0,0,255,255,253,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0, +1,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0, +2,0,1,0,0,0,254,255,253,255,253,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0, +2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0, +3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,2,0,3,0,3,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0, +255,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255, +253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0, +1,0,1,0,2,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0, +2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,254,255,254,255, +255,255,0,0,0,0,0,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +254,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255, +254,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,2,0,1,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,1,0,1,0,1,0,1,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255, +255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,254,255,254,255,255,255,0,0, +0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,1,0,1,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255, +255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,1,0,2,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,3,0,3,0, +3,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,2,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255, +255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0, +1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255, +254,255,254,255,254,255,253,255,253,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,3,0,1,0,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,2,0,2,0, +1,0,1,0,1,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,1,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,1,0,1,0, +1,0,2,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0, +1,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,2,0,2,0,1,0,2,0,1,0,0,0,0,0, +255,255,254,255,254,255,254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,254,255,253,255,254,255,255,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,0,0,255,255,255,255, +254,255,253,255,255,255,0,0,255,255,255,255,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0, +255,255,255,255,255,255,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,2,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,255,255,254,255,255,255,254,255,253,255,253,255, +255,255,1,0,0,0,0,0,0,0,2,0,2,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +2,0,1,0,1,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,1,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0, +0,0,0,0,255,255,255,255,255,255,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,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,255,255,255,255,255,255,255,255,254,255,254,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,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,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeletonhurt2.pcm b/src/client/sound/data/skeletonhurt2.pcm new file mode 100755 index 0000000..66b3284 --- /dev/null +++ b/src/client/sound/data/skeletonhurt2.pcm @@ -0,0 +1,1337 @@ +unsigned char PCM_skeletonhurt2[42694] = { +1,0,0,0,2,0,0,0,68,172,0,0,91,83,0,0,60,246,232,240,240,246,65,255,255,3,77,8,156,10,242,6, +175,0,112,1,184,11,177,13,16,248,132,223,15,226,203,252,53,24,42,29,95,255,45,215,179,208,210,235,57,253,62,240, +22,217,95,205,183,204,139,211,176,240,128,45,250,105,100,124,144,105,249,80,116,58,40,30,109,253,20,222,198,201,60,209, +218,248,91,41,252,60,91,30,251,226,221,186,9,187,24,208,99,228,20,242,115,248,138,247,92,237,71,219,114,210,142,221, +101,233,195,233,236,242,9,14,180,34,151,28,200,5,100,248,229,253,19,5,87,5,220,12,111,26,236,26,244,16,127,15, +127,24,176,29,221,20,144,4,219,252,190,254,6,253,137,247,138,246,142,243,68,231,160,221,63,227,88,240,130,245,99,243, +214,250,100,18,205,39,237,42,46,37,60,34,17,26,106,6,28,244,197,238,222,239,206,236,225,232,225,238,120,253,254,7, +10,12,45,20,76,35,224,48,184,55,230,54,22,42,7,14,246,232,79,202,115,192,105,203,80,221,191,233,202,238,179,240, +12,244,85,251,190,6,45,20,34,31,169,36,90,39,44,41,227,34,166,11,35,232,187,201,235,189,75,198,167,223,235,3, +194,36,17,51,21,47,26,37,114,25,173,5,51,235,227,216,234,216,237,228,43,241,57,249,56,253,198,251,75,245,23,240, +233,242,220,251,242,0,217,251,82,243,87,244,107,1,188,14,23,17,185,9,67,0,90,249,183,247,13,253,32,4,244,2, +38,248,222,236,197,229,218,221,146,212,141,211,23,224,165,243,28,8,214,29,132,47,9,47,238,23,13,250,93,233,220,234, +185,246,75,4,181,13,202,14,24,7,206,250,106,239,162,233,226,237,190,254,166,25,120,54,244,73,202,73,133,50,235,11, +236,229,141,207,114,207,75,225,108,248,173,8,157,15,26,18,26,17,14,8,252,247,121,235,85,235,35,246,170,5,183,20, +18,29,77,25,66,13,8,5,105,7,158,15,163,22,130,27,39,32,110,36,115,38,224,34,221,20,120,251,38,223,0,205, +40,204,42,218,33,239,17,2,83,12,230,12,62,7,230,253,149,241,172,229,60,224,16,228,77,238,177,249,69,0,87,252, +26,238,87,223,121,219,196,228,136,245,121,8,177,25,254,34,59,31,130,15,8,250,138,228,9,211,154,202,96,207,49,224, +133,246,134,9,34,18,205,15,183,8,17,3,82,0,39,0,134,3,66,10,142,16,156,17,130,11,94,255,81,240,179,228, +2,228,107,239,155,0,238,17,188,32,183,39,200,33,157,18,232,2,47,246,243,235,122,230,45,233,197,242,141,253,126,4, +93,6,1,5,176,3,163,5,100,11,42,18,236,22,106,23,216,16,4,3,109,243,158,232,117,229,186,234,158,247,70,8, +72,24,123,36,241,40,245,33,51,16,239,249,58,232,217,224,15,226,222,231,203,241,25,254,152,7,203,13,33,21,65,29, +179,33,154,33,81,30,184,23,252,13,97,1,21,241,41,223,56,210,234,207,2,216,17,229,59,241,218,250,191,3,218,12, +181,20,54,24,22,21,2,14,202,8,238,6,167,5,227,3,197,1,144,254,91,251,81,250,102,251,15,254,32,2,43,6, +51,10,200,15,55,20,90,18,93,9,225,250,8,233,120,218,53,214,104,219,54,229,4,241,120,252,206,5,102,14,143,22, +87,27,150,27,18,25,13,21,202,15,156,8,233,253,120,240,47,229,27,225,75,230,237,242,213,1,157,14,149,23,227,27, +168,27,47,24,134,17,219,7,21,254,127,246,50,241,133,239,10,242,127,245,218,247,136,250,206,253,131,1,250,6,75,12, +55,13,81,10,178,6,27,2,189,251,129,244,5,237,127,231,60,232,253,239,238,250,99,5,50,13,131,17,60,19,9,19, +179,16,230,12,54,8,135,2,123,253,7,251,114,250,175,250,116,251,237,250,100,248,187,246,229,247,251,250,52,255,177,2, +236,1,127,252,116,245,45,239,143,235,224,235,125,238,53,242,23,249,38,3,19,12,77,16,126,14,241,6,35,254,49,250, +201,251,109,255,30,3,96,5,158,3,36,254,59,249,102,248,6,252,2,3,4,11,42,16,29,16,31,12,213,5,150,253, +34,246,112,244,90,249,250,0,43,8,120,13,152,15,255,14,233,12,126,8,209,1,111,252,0,251,179,252,216,255,165,2, +143,3,65,3,247,2,111,2,129,2,225,4,239,7,219,8,240,7,194,5,92,1,195,251,242,246,167,242,195,239,198,241, +185,248,126,0,34,7,211,12,156,15,183,13,207,8,83,3,157,254,140,252,70,253,53,254,10,254,62,254,79,255,120,255, +92,253,155,249,153,246,196,246,171,249,50,252,40,252,76,249,82,244,184,239,173,238,105,241,245,245,21,251,238,254,22,255, +24,253,180,252,253,252,142,250,177,246,41,245,191,246,186,250,100,0,49,5,253,6,244,6,80,6,71,4,129,1,28,0, +41,0,169,0,162,1,75,2,45,1,6,255,144,253,235,252,9,253,117,254,78,0,242,0,95,0,128,255,17,255,72,255, +70,254,133,249,23,243,118,240,212,242,136,246,126,249,237,251,0,253,119,252,109,252,15,254,87,0,247,2,142,6,132,10, +186,13,145,15,9,15,101,11,252,5,250,0,72,253,84,251,213,251,50,254,107,0,201,1,88,3,221,4,101,4,3,2, +160,0,115,1,66,2,158,1,218,0,116,0,177,254,199,250,100,246,18,244,241,245,158,252,92,6,129,16,30,25,86,30, +190,30,247,26,229,19,185,8,125,250,132,238,110,233,9,235,40,241,22,250,79,3,84,10,248,14,52,18,254,19,145,19, +24,16,136,9,250,1,16,252,196,247,31,244,173,242,255,244,28,249,200,252,221,0,206,5,249,8,254,7,34,3,132,251, +99,242,8,234,183,228,22,227,142,228,33,232,77,237,0,245,162,255,195,9,115,14,84,13,66,10,146,7,10,5,127,2, +59,255,143,249,178,242,94,239,63,242,75,249,63,1,71,8,67,14,120,20,164,26,165,28,66,23,56,13,57,3,46,251, +128,246,51,246,233,246,164,244,23,242,158,244,244,251,74,4,193,11,47,17,24,19,193,17,146,13,56,5,54,249,86,237, +153,228,71,224,178,225,205,231,105,238,213,243,173,250,251,3,212,12,103,18,24,20,61,18,154,13,88,7,184,0,237,250, +87,246,174,242,71,241,99,244,20,251,210,1,105,7,195,12,61,17,125,19,100,19,144,16,137,10,247,2,0,252,26,246, +225,241,103,240,214,240,91,242,7,247,226,255,78,9,155,15,248,18,35,20,40,18,52,13,76,7,116,1,135,251,185,246, +102,245,83,248,190,253,99,3,72,8,120,12,5,16,168,18,140,19,224,17,47,14,211,9,12,5,243,255,15,252,48,250, +61,249,157,249,121,253,229,3,0,9,42,11,17,11,122,8,126,3,221,253,195,248,96,244,135,241,64,240,161,239,176,240, +122,244,86,248,222,249,191,250,232,251,189,251,153,251,146,254,193,2,36,4,232,2,155,0,19,253,190,249,229,248,164,249, +7,251,230,254,212,4,203,8,98,9,4,8,65,4,83,254,72,250,141,250,99,252,42,253,140,253,48,254,171,254,166,255, +47,2,175,5,134,8,238,9,96,10,49,10,137,8,171,4,156,255,249,250,215,247,213,247,65,252,55,3,33,9,177,12, +74,14,159,13,192,10,145,6,23,1,186,250,58,246,96,245,78,246,36,247,132,248,118,250,139,251,34,252,12,254,187,0, +252,1,16,2,28,3,217,4,128,4,29,1,162,252,105,248,21,244,141,240,75,240,35,244,179,250,45,2,76,8,212,10, +29,10,56,8,116,5,137,1,91,254,79,253,250,252,210,252,117,254,4,1,80,1,185,255,238,255,183,2,115,5,188,6, +78,7,173,7,186,7,42,7,47,5,96,1,73,253,110,251,157,252,152,255,249,2,225,5,43,7,40,6,1,4,59,2, +123,0,47,254,225,252,206,253,34,255,152,254,183,252,19,251,235,249,29,249,234,248,79,249,36,250,145,251,215,252,116,252, +164,250,106,249,91,249,20,249,52,248,37,248,189,249,131,252,243,255,85,3,206,4,221,2,187,254,83,251,178,249,99,248, +73,246,87,244,60,244,137,246,76,250,221,253,133,0,242,2,78,5,50,6,187,4,185,1,48,254,16,251,52,250,149,252, +55,0,122,2,4,3,249,2,84,3,189,4,54,7,3,10,99,12,159,13,244,12,145,10,205,7,219,5,200,4,174,3, +44,2,203,1,235,3,136,6,180,6,62,5,194,4,97,5,182,5,175,4,239,0,148,250,240,244,226,242,178,243,136,245, +136,247,91,249,175,251,194,255,205,4,87,8,25,9,160,7,25,5,116,2,124,255,129,251,57,247,233,243,205,241,133,241, +88,244,68,249,85,253,157,255,83,1,172,2,159,2,251,0,254,254,59,254,247,254,247,255,114,0,109,0,26,255,23,252, +187,249,119,250,135,253,57,1,1,5,57,7,167,5,80,1,30,253,217,249,144,247,248,247,143,251,204,255,73,2,222,2, +165,2,251,2,15,4,19,4,49,2,104,0,238,255,63,255,116,253,135,251,222,249,102,248,220,247,137,248,8,250,181,252, +130,0,117,3,228,3,171,2,165,1,128,1,171,1,165,1,208,1,90,2,57,2,182,0,149,254,121,252,122,250,206,249, +250,251,89,0,147,4,186,6,45,6,194,3,187,0,85,253,122,249,44,246,123,244,120,244,67,246,77,250,220,255,217,4, +194,7,29,9,247,9,145,9,16,7,116,4,32,4,21,5,119,5,112,5,201,4,66,2,129,254,130,251,85,250,97,251, +186,253,252,254,243,254,95,255,65,255,250,252,5,251,202,251,234,253,164,0,132,4,62,7,68,6,168,2,68,254,53,250, +54,248,68,248,127,248,137,249,114,252,35,254,40,252,57,249,1,248,205,247,30,248,91,249,204,250,119,251,21,251,238,249, +14,249,113,248,137,246,108,244,181,245,12,250,115,253,211,254,149,255,144,255,176,254,175,254,141,0,229,3,190,7,36,10, +245,9,225,8,80,8,26,7,250,4,7,4,52,5,31,7,116,8,10,9,100,9,4,10,136,10,60,10,182,9,54,10, +155,11,110,12,152,11,50,9,242,5,96,2,25,255,109,253,43,254,82,0,127,2,147,4,159,6,26,8,211,8,152,8, +221,6,103,4,36,3,73,3,123,3,64,3,148,2,33,1,183,255,142,255,232,255,145,255,234,254,225,253,113,251,168,248, +235,247,56,249,197,250,163,251,194,251,221,251,87,253,195,255,212,0,220,255,221,253,1,251,216,247,97,246,237,246,191,247, +129,248,66,250,206,252,215,254,86,255,67,254,2,253,141,252,235,251,247,250,186,251,164,254,198,1,114,4,182,6,43,7, +75,5,175,2,126,0,165,255,108,1,39,4,36,4,194,1,99,0,11,0,150,254,228,252,61,253,100,255,144,1,249,2, +235,3,116,4,174,3,29,1,125,254,227,253,122,254,21,254,214,252,73,252,93,252,43,252,240,251,183,251,60,250,136,247, +113,246,3,249,185,253,30,2,84,5,242,6,145,6,9,5,225,3,1,4,203,5,187,8,9,11,147,11,228,10,82,9, +103,6,144,2,115,255,88,254,11,255,41,0,209,0,151,1,211,2,191,3,93,4,72,5,147,5,75,4,241,2,15,3, +161,3,20,3,79,1,25,255,112,253,244,252,138,253,78,255,56,2,136,4,236,4,46,5,188,6,63,7,204,4,176,1, +90,0,147,255,117,253,139,250,71,248,247,246,34,246,140,245,145,245,247,246,249,249,111,253,168,255,243,255,159,254,18,252, +218,248,16,246,170,244,191,244,202,245,136,247,99,250,77,254,118,1,230,1,86,0,42,255,50,255,173,255,55,0,193,0, +7,1,236,0,159,0,129,0,202,0,219,0,79,0,79,0,186,1,163,3,104,5,246,6,212,6,69,4,152,1,134,0, +16,0,193,255,255,255,6,0,161,255,163,255,107,255,161,254,50,255,113,1,104,3,120,5,206,8,47,11,166,10,195,8, +176,6,223,3,249,0,74,255,69,255,28,1,171,3,171,4,30,4,131,3,124,2,211,0,14,0,4,0,82,255,162,254, +55,254,62,252,251,248,143,246,217,244,84,243,104,243,28,245,255,246,126,249,224,252,81,255,147,0,138,2,81,5,201,7, +160,9,211,9,114,7,20,4,57,1,247,253,14,250,217,246,162,244,157,243,77,245,73,249,182,252,156,254,83,0,36,2, +143,3,18,5,174,6,43,7,48,6,9,5,226,4,100,5,24,5,9,3,239,255,44,253,182,251,129,252,218,255,178,3, +251,4,21,3,239,255,111,253,39,252,165,251,104,251,172,251,215,252,113,254,162,255,186,255,12,254,51,251,140,249,62,250, +197,251,231,252,232,253,139,254,91,254,67,254,36,255,77,0,188,0,80,0,123,255,179,254,10,254,164,253,241,253,7,254, +22,252,85,249,111,249,4,253,147,1,196,5,241,8,189,9,156,8,199,7,253,7,231,8,38,10,36,10,9,8,195,5, +35,4,86,1,170,253,119,251,155,250,26,250,251,250,90,253,116,255,232,0,112,2,74,4,7,7,46,10,34,11,87,9, +104,7,208,5,8,3,124,0,34,0,247,255,11,254,155,252,181,253,138,255,205,255,20,255,86,255,212,0,236,1,245,1, +76,2,26,3,211,1,139,253,130,249,205,248,207,250,149,253,43,0,145,1,211,0,192,254,8,253,25,252,66,251,6,250, +243,248,204,249,92,253,1,1,144,1,233,255,215,254,230,254,235,255,99,2,167,4,214,3,138,0,9,254,225,253,47,255, +246,255,241,254,242,253,177,255,15,3,64,5,120,6,41,7,112,5,195,1,33,0,252,1,113,4,196,4,216,2,93,0, +16,255,239,254,11,255,188,255,92,1,174,2,23,3,143,3,81,4,162,4,83,4,68,3,78,1,89,255,102,254,22,254, +104,253,200,251,109,249,101,247,93,246,202,245,99,245,156,245,81,246,87,247,41,249,51,251,24,252,102,252,175,253,189,255, +165,1,152,3,130,5,117,6,106,6,154,6,163,7,151,8,140,8,167,8,175,10,100,13,129,13,140,10,20,7,164,4, +240,2,154,1,37,0,220,253,214,250,244,247,48,246,26,246,211,246,133,246,49,245,204,244,246,245,137,247,58,249,120,251, +133,253,127,254,60,255,7,1,123,3,14,5,54,5,14,5,211,5,34,7,77,7,137,5,218,2,131,0,186,254,155,253, +159,253,116,254,233,254,110,254,102,253,107,252,63,252,94,253,14,255,48,0,161,0,147,0,216,255,209,254,104,254,163,254, +206,254,235,254,109,255,240,255,127,255,25,254,243,252,25,253,163,254,8,1,10,3,16,3,38,1,160,255,11,0,103,1, +116,2,123,3,23,5,63,7,163,9,170,11,99,12,16,11,196,7,163,3,52,0,0,254,183,252,66,252,109,252,119,252, +73,252,198,252,90,254,109,0,53,2,112,3,181,4,191,6,237,8,168,9,55,8,254,4,36,1,75,254,196,252,3,251, +182,248,198,247,229,248,207,250,86,253,240,0,244,3,230,3,208,0,253,252,65,250,151,248,57,247,48,246,255,245,124,246, +103,247,74,249,40,252,156,254,111,255,244,254,108,254,19,255,92,1,62,4,128,5,169,3,220,255,176,252,219,250,22,249, +67,247,121,246,65,246,170,245,7,246,153,248,159,251,244,252,46,253,36,254,123,0,107,3,136,5,248,5,103,5,97,5, +204,6,39,9,22,11,160,11,219,10,139,9,233,8,235,9,136,11,35,11,29,8,255,4,8,4,168,4,206,4,75,3, +156,0,231,253,244,251,119,251,170,252,17,254,246,253,244,252,182,252,135,253,244,254,123,0,14,1,78,0,105,255,102,255, +97,0,252,1,70,3,2,4,146,5,218,7,45,8,152,5,194,1,138,253,210,249,210,248,159,250,180,252,176,253,83,253, +195,251,85,251,143,253,107,255,137,254,73,253,103,253,207,253,191,254,156,0,120,1,230,0,212,0,79,1,127,1,19,2, +177,2,132,2,94,3,229,5,184,6,109,4,126,1,172,254,56,251,227,248,14,249,228,249,213,249,56,249,167,248,8,249, +101,250,129,250,178,248,255,247,167,249,39,251,133,251,9,252,100,252,252,251,244,251,146,252,251,252,200,253,124,255,194,0, +66,1,249,1,9,2,34,0,123,253,140,251,21,250,57,249,100,249,121,249,216,248,225,248,38,250,62,251,74,251,0,251, +220,251,14,255,157,3,184,6,73,7,104,6,121,4,204,1,63,0,78,0,212,255,84,254,48,254,90,0,1,3,105,4, +112,4,24,4,131,4,138,5,47,6,92,6,57,6,7,5,238,2,155,1,110,1,176,0,115,254,249,251,21,251,97,252, +235,254,110,1,133,3,31,5,252,5,107,6,177,6,216,5,106,3,28,1,116,0,181,0,169,0,77,0,253,255,179,255, +122,255,216,255,84,1,25,3,98,3,106,2,118,2,138,3,194,2,78,255,9,252,81,251,180,252,180,254,95,0,91,1, +141,1,207,0,78,255,235,253,122,253,237,253,170,254,32,255,89,255,46,0,202,1,135,2,26,1,209,254,229,253,224,254, +213,0,215,2,95,4,30,5,220,4,162,3,6,2,225,0,119,0,99,0,111,0,245,0,28,2,30,3,33,3,73,2, +61,1,107,0,75,0,220,0,65,1,98,1,92,2,218,3,221,3,6,2,11,0,236,254,82,254,137,253,28,252,147,250, +216,249,122,249,180,248,85,248,16,249,33,250,80,251,94,253,8,0,228,1,189,1,217,255,164,254,204,255,55,1,152,0, +15,255,89,253,60,250,49,247,33,247,163,248,232,248,232,248,30,250,109,251,20,252,178,252,137,253,217,254,196,0,42,2, +19,2,198,0,178,254,172,252,37,252,3,253,212,253,136,254,3,0,75,2,28,5,40,8,95,10,212,10,179,9,242,7, +212,6,189,6,162,6,33,6,20,6,30,6,58,5,66,4,11,4,95,3,238,1,102,1,48,2,237,2,246,2,139,2, +210,1,8,1,124,0,94,0,195,0,72,1,105,1,114,1,173,1,180,1,183,1,108,2,14,3,41,2,52,0,9,255, +83,255,222,255,51,255,124,253,68,252,45,252,95,252,98,252,173,252,81,253,196,253,209,253,219,253,67,254,162,254,42,254, +1,253,234,251,13,251,129,250,171,250,25,251,144,251,98,253,157,0,162,2,151,2,248,2,192,4,199,5,144,4,162,1, +13,254,230,250,211,248,200,247,47,248,146,250,163,253,137,255,179,0,182,2,103,5,32,7,13,7,2,6,76,5,230,4, +81,3,172,255,32,251,197,247,206,246,1,248,115,250,133,253,231,0,187,3,7,5,11,5,151,4,78,3,126,0,6,253, +75,250,58,248,28,246,7,244,18,242,15,240,37,239,31,241,91,245,36,249,189,251,59,255,184,4,43,10,41,13,208,13, +170,13,31,13,147,11,52,9,2,7,86,5,176,3,21,2,182,1,84,3,160,5,230,6,86,7,199,7,237,7,182,7, +178,7,224,6,199,3,164,255,149,252,115,250,131,248,92,247,145,247,72,249,108,252,143,255,73,1,123,2,52,4,180,5, +187,6,9,8,226,8,251,7,194,5,14,3,20,0,88,253,79,251,29,250,128,250,177,252,47,255,225,0,60,2,94,3, +170,3,234,2,42,1,184,254,128,252,18,251,39,250,162,249,113,249,236,248,158,247,181,245,203,243,47,243,214,244,210,247, +199,250,191,253,166,0,55,2,238,1,190,0,128,255,92,254,97,253,190,252,218,252,12,254,14,0,59,2,74,4,7,6, +197,6,39,6,55,5,13,5,159,4,106,2,182,255,149,254,56,254,68,253,164,252,229,252,3,253,38,253,218,253,245,253, +92,253,240,253,225,255,255,1,157,4,190,7,230,9,0,11,194,11,27,11,129,8,107,5,78,2,222,254,200,252,68,253, +133,254,147,254,108,253,176,251,98,250,159,250,184,251,163,251,223,249,22,248,66,248,192,250,191,253,67,255,149,255,60,0, +208,1,91,4,184,7,87,10,113,10,251,8,102,8,245,8,10,9,1,8,66,6,243,3,61,1,201,254,23,253,14,252, +237,250,47,249,41,248,198,249,209,252,33,254,183,253,221,253,120,254,52,254,80,253,158,251,86,248,52,245,161,244,247,245, +230,247,237,250,215,254,255,1,213,3,243,4,220,5,236,6,238,7,175,8,39,10,82,12,157,12,178,9,122,5,95,1, +225,252,92,248,116,245,43,245,44,247,103,250,127,254,240,3,134,9,121,12,86,12,183,10,155,7,7,3,70,255,14,253, +80,250,15,247,151,245,31,246,163,247,148,250,210,254,86,2,248,3,103,4,145,4,37,5,47,6,42,6,218,3,224,0, +196,255,123,0,137,1,130,2,238,2,166,1,71,255,228,253,224,253,141,254,63,0,101,2,58,3,44,3,176,3,117,3, +228,0,180,253,187,251,95,250,77,249,87,249,92,250,27,251,143,250,247,248,249,247,143,248,159,249,152,250,124,252,248,254, +124,0,20,1,121,1,58,1,241,255,126,253,145,249,89,245,210,242,232,241,201,241,43,243,62,246,252,249,80,254,235,2, +207,5,72,6,196,5,186,4,239,2,148,1,131,1,184,1,101,1,31,1,127,1,53,2,78,2,110,1,141,0,98,0, +75,0,6,0,28,0,37,0,112,255,174,254,129,254,83,254,19,254,120,254,98,255,81,0,89,1,49,2,39,2,155,1, +158,1,139,2,23,4,216,5,2,7,0,7,97,6,20,6,5,6,169,5,25,5,139,4,193,3,4,3,76,3,174,4, +47,6,33,7,64,7,92,6,47,5,251,4,95,5,223,4,78,3,48,1,238,253,125,249,4,246,54,245,235,245,43,246, +3,246,20,247,41,250,238,253,102,0,43,1,228,0,89,255,115,252,224,249,245,248,181,248,45,248,82,248,253,249,153,252, +62,255,59,1,77,2,45,3,151,4,30,6,32,7,120,7,228,6,150,5,175,4,171,4,170,4,3,4,183,2,237,0, +71,255,112,254,204,253,45,252,170,249,143,247,234,246,168,247,2,249,177,250,247,252,120,255,128,1,232,2,92,3,82,2, +153,0,175,255,192,255,119,0,62,2,194,4,102,6,89,6,96,5,86,4,23,3,39,1,38,255,155,254,227,255,181,1, +180,2,15,2,204,255,106,253,75,252,17,252,121,252,9,254,192,255,31,0,209,255,178,255,9,255,228,253,23,253,102,252, +96,252,160,254,20,2,249,3,54,4,12,4,36,3,77,1,180,255,2,255,171,254,253,253,31,253,40,253,77,254,60,255, +202,255,251,0,94,2,133,3,171,5,54,8,234,8,231,8,136,10,130,12,240,12,56,12,85,10,159,7,128,6,216,6, +140,5,29,3,96,2,253,1,175,255,182,253,128,254,93,0,250,0,40,0,203,254,58,254,19,255,130,255,147,253,197,250, +222,249,41,250,158,248,83,245,154,243,200,244,22,247,95,249,225,251,94,254,156,0,195,2,37,4,62,4,46,4,169,4, +206,4,136,4,20,5,173,6,219,7,222,6,111,3,107,255,229,252,199,251,219,250,14,250,86,250,69,252,232,254,77,0, +64,0,146,0,97,1,252,0,212,255,106,255,8,255,254,253,136,253,247,253,162,254,235,255,93,1,92,1,217,0,41,2, +136,4,195,5,198,5,134,5,170,5,122,6,223,6,148,5,182,3,190,2,216,1,76,0,35,255,187,254,88,254,213,253, +77,253,146,252,222,251,54,251,1,250,111,248,117,247,113,247,97,248,13,250,71,251,83,251,118,251,185,252,202,253,83,253, +36,252,193,251,171,252,60,254,43,255,23,255,100,255,184,0,91,1,100,0,173,255,154,0,249,1,100,2,214,1,16,1, +31,1,248,1,208,1,17,0,202,254,218,254,181,254,96,254,145,255,232,1,151,3,57,4,254,3,7,3,144,2,106,3, +51,4,186,3,181,2,205,1,209,0,204,255,189,254,93,253,40,252,200,251,151,251,223,250,99,250,197,250,251,250,42,250, +103,249,223,249,219,250,64,251,172,251,43,253,27,255,1,0,151,255,226,254,195,254,64,255,245,255,181,0,129,1,23,2, +24,2,167,1,101,1,150,1,166,1,6,1,28,0,152,255,129,255,208,255,181,0,157,1,203,1,176,1,164,1,201,0, +7,255,148,253,149,252,102,251,161,250,189,250,184,250,64,250,129,250,8,252,28,254,186,255,72,0,94,0,241,0,69,1, +90,0,137,255,49,0,240,0,78,0,61,255,215,254,186,254,48,254,29,253,57,252,146,252,252,253,21,255,121,255,240,255, +180,0,122,1,30,2,62,2,169,1,39,1,53,1,230,0,140,255,17,254,118,253,124,253,218,253,34,255,91,1,74,3, +0,4,197,3,51,3,185,2,151,2,95,2,126,1,157,0,213,0,0,2,22,3,122,3,87,3,106,3,18,4,119,4, +14,4,202,3,243,3,32,3,33,1,244,255,93,0,189,0,42,0,228,255,228,0,27,2,53,2,157,1,94,1,76,1, +212,0,80,0,46,0,13,0,143,255,241,254,154,254,132,254,34,254,55,253,135,252,173,252,33,253,179,253,253,254,132,0, +236,0,51,0,72,255,76,254,55,253,193,252,89,253,53,254,97,254,250,253,207,253,13,254,100,254,7,255,219,255,222,255, +10,255,193,254,86,255,215,255,31,0,108,0,90,0,231,255,140,255,74,255,41,255,47,255,141,254,52,253,184,252,150,253, +88,254,111,254,191,254,155,255,106,0,161,0,100,0,124,0,28,1,114,1,94,1,150,1,242,1,4,2,23,2,218,1, +230,0,103,0,35,1,0,2,169,2,218,3,211,4,193,4,195,4,92,5,84,5,125,4,216,3,100,3,196,2,124,2, +211,2,248,2,42,2,215,0,253,255,186,255,112,255,8,255,176,254,68,254,20,254,115,254,165,254,133,254,62,255,171,0, +180,1,7,3,240,4,74,5,141,3,57,2,81,2,117,2,215,1,94,0,107,254,195,253,59,255,3,1,208,1,112,2, +59,3,157,3,175,3,193,3,111,3,12,2,126,255,55,253,4,253,37,254,61,254,46,253,103,252,12,252,223,251,90,252, +73,253,201,253,177,253,120,253,204,253,9,255,47,0,48,0,192,255,165,255,54,255,59,254,101,253,203,252,205,252,82,254, +115,0,44,1,145,0,90,0,85,1,229,2,129,3,36,2,12,0,0,255,153,254,31,254,102,254,46,255,181,254,103,253, +169,253,195,255,153,1,220,1,225,0,124,255,163,254,27,255,99,0,184,0,86,255,10,254,190,254,116,0,247,0,95,0, +47,0,151,0,221,0,245,0,45,1,112,1,110,1,254,0,136,0,161,0,236,0,145,0,245,255,250,255,70,0,71,0, +92,0,107,0,189,255,234,254,253,254,62,255,178,254,43,254,128,254,10,255,94,255,207,255,214,255,177,254,133,253,128,254, +165,1,66,4,106,4,111,3,71,3,69,3,11,2,111,0,184,255,104,255,243,254,222,254,49,255,94,255,107,255,150,255, +220,255,88,0,196,0,143,0,27,0,0,0,166,255,221,254,6,255,102,0,54,1,210,0,204,0,8,2,130,3,3,4, +77,3,247,1,221,0,120,0,120,0,232,255,245,253,113,251,205,250,246,252,148,255,48,0,40,255,32,254,230,253,158,254, +196,255,64,0,210,255,72,255,247,254,191,254,237,254,139,255,243,255,234,255,234,255,107,0,88,1,229,1,142,1,38,1, +97,1,95,1,162,0,48,0,91,0,71,0,36,0,220,0,21,2,204,2,180,2,250,1,205,0,89,255,182,253,73,252, +151,251,69,251,170,250,82,250,20,251,100,252,88,253,30,254,241,254,50,255,162,254,220,253,38,253,81,252,180,251,7,252, +80,253,223,254,15,0,205,0,183,1,48,3,70,4,216,3,146,2,187,1,17,1,236,255,240,254,141,254,204,253,75,252, +92,251,225,251,243,252,152,253,29,254,223,254,122,255,238,255,178,0,89,1,49,1,207,0,236,0,45,1,89,1,126,1, +23,1,80,0,89,0,253,0,28,1,12,1,56,1,213,0,51,0,81,0,94,0,191,255,226,255,35,1,29,2,138,2, +123,2,55,1,171,255,162,255,99,0,161,0,60,1,126,2,203,2,236,1,93,1,74,1,184,0,238,255,79,0,253,1, +30,3,125,2,103,1,19,1,208,0,121,0,13,1,237,1,175,1,242,0,233,0,38,1,229,0,28,0,6,255,96,254, +220,254,241,255,174,0,241,0,236,0,224,0,40,1,172,1,2,2,233,1,30,1,8,0,212,255,131,0,205,0,131,0, +96,0,100,0,129,0,236,0,13,1,100,0,93,255,16,254,173,252,95,252,35,253,105,253,46,253,155,253,65,254,110,254, +217,254,162,255,225,255,153,255,62,255,218,254,208,254,97,255,211,255,12,0,15,1,234,2,93,4,157,4,204,3,66,2, +115,0,9,255,125,254,125,254,82,254,255,253,13,254,118,254,5,255,186,255,13,0,180,255,203,255,218,0,164,1,191,1, +18,2,62,2,91,1,94,0,121,0,14,1,35,1,201,0,154,0,25,1,236,1,15,2,112,1,207,0,53,0,165,255, +224,255,193,0,39,1,19,1,47,1,35,1,146,0,20,0,238,255,192,255,132,255,98,255,51,255,244,254,235,254,21,255, +23,255,201,254,133,254,170,254,14,255,75,255,72,255,15,255,178,254,91,254,0,254,137,253,121,253,88,254,156,255,71,0, +22,0,90,255,130,254,4,254,234,253,233,253,22,254,168,254,91,255,233,255,131,0,49,1,159,1,164,1,120,1,124,1, +240,1,170,2,50,3,49,3,175,2,25,2,10,2,189,2,156,3,181,3,205,2,171,1,34,1,43,1,27,1,134,0, +168,255,241,254,105,254,239,253,168,253,192,253,12,254,50,254,1,254,158,253,88,253,36,253,151,252,174,251,13,251,30,251, +154,251,23,252,133,252,9,253,190,253,179,254,184,255,41,0,110,255,231,253,206,252,14,253,121,254,234,255,74,0,233,255, +249,255,138,0,230,0,118,1,166,2,77,3,188,2,26,2,19,2,25,2,249,1,110,1,232,255,87,254,109,254,232,255, +87,1,67,2,187,2,224,2,73,3,14,4,40,4,242,2,52,1,110,0,95,1,254,2,146,3,200,2,90,1,217,255, +16,255,115,255,30,0,129,0,57,1,209,1,86,1,227,0,124,1,219,1,141,1,194,1,23,2,122,1,237,0,52,1, +11,1,22,0,163,255,238,255,12,0,195,255,121,255,132,255,251,255,81,0,183,255,82,254,32,253,162,252,137,252,133,252, +182,252,22,253,109,253,245,253,215,254,67,255,196,254,93,254,169,254,221,254,147,254,75,254,44,254,24,254,3,254,175,253, +80,253,161,253,156,254,178,255,181,0,47,1,163,0,222,255,151,255,251,254,169,253,214,252,58,253,18,254,67,254,135,253, +220,252,53,253,209,253,203,253,210,253,50,254,35,254,243,253,82,254,143,254,110,254,191,254,34,255,6,255,54,255,163,255, +41,255,80,254,37,254,30,254,31,254,2,255,35,0,72,0,203,255,81,255,243,254,41,255,238,255,75,0,47,0,80,0, +113,0,1,0,113,255,130,255,34,0,86,0,115,255,115,254,149,254,25,255,246,254,4,255,206,255,51,0,233,255,215,255, +207,255,63,255,194,254,183,254,88,254,109,253,213,252,6,253,114,253,83,253,180,252,143,252,100,253,43,254,198,253,206,252, +189,252,204,253,13,255,8,0,195,0,214,0,84,0,122,0,142,1,208,1,87,0,202,254,213,254,235,255,120,0,26,0, +243,255,164,0,227,0,198,255,209,254,95,255,76,0,86,0,209,255,68,255,1,255,66,255,41,255,246,253,7,253,94,253, +126,253,207,252,71,253,122,255,102,1,250,1,230,1,177,1,222,1,51,3,5,5,105,5,205,3,205,1,55,1,53,2, +54,3,190,2,103,1,47,1,147,2,251,3,61,4,233,3,214,3,7,4,18,4,182,3,37,3,179,2,21,2,8,1, +136,0,98,1,89,2,75,2,126,2,229,3,17,5,10,5,177,4,61,4,103,3,85,3,126,4,180,4,145,2,59,0, +63,0,12,2,117,3,237,3,84,4,142,4,184,3,94,2,216,1,205,1,11,1,0,0,24,0,63,1,8,2,195,1, +233,0,236,255,51,255,135,255,156,0,172,0,146,255,73,255,254,255,197,255,132,254,156,253,5,253,98,252,72,252,173,252, +3,253,116,253,251,253,43,254,95,254,246,254,90,255,239,254,184,253,85,252,251,251,247,252,18,254,155,254,0,255,76,255, +139,255,111,0,188,1,62,2,232,1,211,1,106,2,234,2,154,2,249,1,245,1,48,2,245,1,222,1,58,2,39,2, +191,1,247,1,154,2,21,3,76,3,163,2,55,1,177,0,126,1,10,2,130,1,130,0,226,255,79,0,111,1,10,2, +237,1,133,1,187,0,39,0,167,0,21,1,253,255,73,254,124,253,204,253,225,254,2,0,80,0,208,255,242,254,23,254, +249,253,144,254,186,254,107,254,162,254,33,255,23,255,151,254,237,253,112,253,179,253,128,254,63,255,23,0,194,0,111,0, +140,255,7,255,182,254,115,254,136,254,161,254,110,254,56,254,24,254,56,254,240,254,185,255,1,0,109,0,85,1,248,1, +240,1,127,1,217,0,102,0,108,0,143,0,124,0,255,255,231,254,220,253,225,253,153,254,221,254,107,254,215,253,192,253, +48,254,75,254,124,253,111,252,246,251,87,252,119,253,84,254,178,253,243,251,144,250,79,250,10,251,218,251,166,251,156,250, +191,249,117,249,21,250,223,251,153,253,22,254,61,254,70,255,5,1,165,2,40,3,67,2,64,1,247,0,178,0,125,0, +255,0,79,1,158,0,5,0,115,0,177,1,60,3,39,4,50,4,165,4,164,5,124,5,218,3,218,1,199,255,43,254, +23,254,22,255,20,0,14,1,226,1,76,2,195,2,11,3,115,2,244,1,133,2,35,3,19,3,173,2,97,1,200,254, +49,252,233,250,46,251,145,252,163,253,111,253,55,253,247,253,127,254,51,254,14,254,53,254,0,254,160,253,137,253,239,253, +214,254,110,255,21,255,239,254,196,255,17,0,208,254,78,253,213,252,107,253,216,254,72,0,228,0,22,1,104,1,162,1, +216,1,232,1,214,0,243,254,35,254,231,254,0,0,147,0,120,0,219,255,102,255,134,255,38,0,38,1,205,1,43,1, +7,0,229,255,136,0,201,0,110,0,180,255,248,254,173,254,184,254,8,255,55,0,3,2,44,3,82,3,194,2,145,1, +83,0,114,255,100,254,188,253,187,254,35,0,10,0,123,255,228,255,90,0,49,0,219,255,107,254,14,250,70,243,37,238, +78,239,90,246,141,253,72,1,184,2,99,2,221,255,148,253,149,253,241,254,54,2,181,8,60,15,212,17,97,16,70,10, +65,254,70,241,25,236,223,241,124,254,226,10,211,16,103,14,143,6,16,254,64,249,56,249,58,250,120,249,199,249,156,253, +26,3,64,9,71,16,47,21,49,21,58,18,129,14,52,9,47,1,215,246,39,237,140,233,253,237,61,245,76,249,126,249, +42,249,233,252,244,6,238,18,177,25,162,25,26,22,142,17,3,13,252,8,211,3,17,251,126,239,152,229,255,225,196,229, +209,237,144,246,146,255,26,10,180,20,82,26,4,23,72,13,14,4,45,255,58,253,120,252,131,252,23,252,150,250,218,249, +204,250,94,251,15,250,12,248,4,247,208,247,132,251,245,2,199,11,129,16,59,14,219,7,58,1,51,251,179,246,21,246, +238,249,165,0,151,7,106,10,96,6,47,255,173,250,118,249,206,248,126,247,233,245,102,245,234,247,233,253,5,6,16,14, +224,18,188,18,1,16,193,12,63,7,249,254,188,246,249,239,19,235,69,234,223,237,217,242,79,248,219,255,174,8,214,15, +245,18,233,16,69,11,103,5,74,0,164,251,97,249,25,250,202,250,96,250,201,250,168,251,79,251,207,250,127,251,211,252, +31,255,23,3,9,7,222,8,180,8,92,7,12,5,32,2,67,255,25,253,64,252,13,253,70,255,174,1,66,2,123,0, +56,254,223,252,45,252,81,252,129,253,144,254,139,255,74,2,43,6,103,8,233,8,211,8,146,6,21,1,251,250,189,246, +196,244,72,246,217,251,235,1,137,4,45,4,49,3,97,2,55,2,251,2,84,3,101,2,132,1,47,1,213,255,30,253, +116,250,179,248,80,248,102,249,61,250,151,249,100,249,74,251,254,253,227,0,106,4,230,6,149,6,22,5,219,3,138,1, +214,253,157,250,193,248,225,248,53,252,249,0,26,3,70,2,162,1,79,2,50,3,137,3,124,2,147,255,145,252,163,251, +203,252,255,254,127,1,232,3,254,6,134,11,119,15,147,15,96,11,195,4,243,253,119,249,132,248,237,248,69,248,138,247, +229,248,131,252,30,1,238,4,163,6,92,7,72,9,184,11,136,11,42,7,6,0,27,249,4,245,192,243,28,243,5,242, +108,241,127,242,96,246,44,253,204,3,139,6,253,5,33,5,217,4,213,4,7,5,240,3,99,0,226,252,55,252,238,252, +96,252,148,250,204,248,17,248,124,249,154,252,253,254,145,255,245,255,196,1,162,4,180,6,39,6,53,3,64,0,32,255, +140,255,26,0,76,255,204,252,150,250,181,250,112,252,68,254,111,0,255,2,215,4,63,6,63,8,105,9,153,7,222,3, +15,1,47,0,95,0,124,0,234,255,17,255,238,254,202,255,46,1,195,2,110,4,246,5,201,6,34,6,21,4,160,1, +201,254,189,250,134,246,117,244,197,244,75,246,10,249,197,252,190,255,96,1,172,2,43,3,153,1,254,254,85,253,144,252, +157,251,67,250,184,248,134,247,224,247,108,250,73,254,4,2,177,4,242,5,182,5,35,4,214,1,202,255,20,254,191,251, +227,248,65,247,219,247,254,249,225,252,28,0,39,3,252,5,192,8,111,10,8,10,121,8,251,6,8,5,245,1,188,254, +143,252,82,251,88,250,209,249,208,250,176,253,232,0,178,2,93,3,42,4,252,4,237,4,244,3,188,2,21,2,161,2, +198,3,254,3,232,2,82,1,124,255,102,253,214,251,32,251,117,250,201,249,100,250,201,252,224,255,81,2,127,3,95,3, +71,2,192,0,49,255,184,253,73,252,37,251,253,250,25,252,166,253,163,254,248,254,16,255,21,255,233,254,110,254,203,253, +154,253,123,254,52,0,160,1,216,1,97,1,155,1,209,2,217,3,228,3,60,3,17,2,110,0,245,254,29,254,181,253, +51,254,68,0,234,2,219,4,161,6,175,8,161,9,187,8,252,6,153,4,21,1,186,253,106,252,221,252,168,253,78,254, +249,254,210,255,210,0,123,1,139,1,178,1,83,2,141,2,141,1,129,255,11,253,255,250,227,249,58,249,193,248,124,249, +190,251,35,254,249,255,176,1,159,2,233,1,183,0,77,0,236,255,2,255,173,254,156,255,62,1,34,3,213,4,32,5, +100,3,172,0,79,254,139,252,81,251,113,251,195,253,82,1,239,3,172,4,78,4,205,3,201,3,96,4,139,4,111,3, +41,2,193,1,14,1,89,255,77,254,14,255,175,0,111,2,36,4,27,5,46,5,23,5,181,4,111,3,221,1,247,0, +47,1,215,2,46,5,61,6,158,5,157,4,60,3,248,0,246,254,212,253,165,252,238,251,242,252,103,254,210,254,58,255, +245,255,205,255,145,255,127,0,236,0,214,255,80,255,193,255,1,255,26,253,172,251,142,250,229,249,39,251,118,253,130,254, +159,254,17,255,42,255,147,254,26,254,120,253,117,252,98,252,87,253,233,253,115,254,217,255,117,0,227,254,209,252,224,251, +170,251,225,251,174,252,205,253,129,255,32,2,49,4,54,4,64,3,215,2,140,2,167,1,166,0,250,255,148,255,189,255, +178,0,245,1,184,2,169,2,111,2,29,3,206,4,72,6,126,6,145,5,61,4,30,3,70,2,90,1,77,0,180,255, +220,255,132,0,128,1,154,2,51,3,221,2,170,1,216,255,251,253,171,252,157,251,115,250,9,250,3,251,70,252,190,252, +165,252,60,252,132,251,37,251,65,251,230,250,40,250,22,250,98,250,75,250,176,250,250,251,133,252,227,251,47,252,34,254, +147,255,237,254,238,252,251,250,38,250,226,250,91,252,100,253,54,254,134,255,200,0,38,1,6,1,7,1,255,0,243,0, +121,1,115,2,17,3,108,3,126,4,112,6,21,8,76,8,22,7,64,5,56,3,161,0,138,253,112,251,225,251,188,254, +228,2,146,7,0,12,29,15,67,16,38,15,183,11,29,7,47,3,78,0,176,253,126,251,38,250,253,248,199,247,172,247, +219,248,199,249,125,249,71,248,148,246,29,245,211,244,140,245,181,246,12,249,42,253,89,1,80,3,244,2,175,1,61,0, +120,254,171,252,9,252,94,253,214,255,224,1,243,2,112,3,137,3,247,2,80,1,136,254,130,251,83,249,45,248,60,248, +98,250,107,254,136,2,206,5,176,8,178,10,193,10,66,9,79,7,71,5,98,3,178,1,172,255,187,253,161,253,235,255, +92,3,249,6,233,9,233,10,41,10,72,9,143,8,44,7,115,5,1,4,107,2,130,0,130,254,252,251,240,248,125,246, +207,244,15,243,137,241,4,241,8,241,82,241,180,242,90,245,178,248,160,252,99,0,67,2,251,1,213,0,49,255,216,252, +184,250,212,249,11,250,242,250,24,252,192,252,233,252,80,253,230,253,50,254,231,254,175,0,79,2,20,2,65,0,184,254, +204,254,249,255,233,0,125,1,211,2,73,5,197,7,24,9,5,9,61,8,245,7,171,8,137,9,170,9,253,8,125,7, +56,5,53,3,100,2,90,2,128,2,0,3,207,3,132,4,57,5,240,5,242,5,36,5,123,4,57,4,94,3,73,1, +167,254,152,252,140,251,4,251,77,250,105,249,223,248,235,248,102,249,63,250,142,251,72,253,240,254,234,255,83,0,253,0, +23,2,199,2,101,2,14,1,64,255,204,253,112,253,195,253,193,253,122,253,209,253,230,254,219,255,223,255,8,255,130,254, +67,255,150,0,55,1,104,1,38,2,110,3,202,4,19,6,247,6,61,7,51,7,166,6,254,4,188,2,205,0,4,255, +95,253,249,252,247,253,46,255,91,0,228,1,50,3,231,3,159,4,25,5,129,4,177,3,241,3,117,4,245,3,182,2, +41,1,247,254,59,252,125,249,1,247,126,245,222,245,135,247,241,248,233,249,37,251,155,252,241,253,92,255,205,0,127,1, +1,1,192,255,81,254,235,252,178,251,11,251,61,251,217,251,27,252,27,252,188,252,55,254,174,255,121,0,16,1,61,2, +223,3,22,5,164,5,115,6,44,8,225,9,4,10,124,8,198,6,237,5,95,5,87,4,75,3,4,3,22,3,130,2, +47,1,196,255,205,254,139,254,224,254,56,255,122,255,91,0,247,1,68,3,183,3,222,3,226,3,45,3,179,1,11,0, +123,254,7,253,238,251,99,251,97,251,217,251,94,252,43,252,55,251,119,250,138,250,240,250,21,251,56,251,196,251,134,252, +15,253,65,253,29,253,151,252,0,252,239,251,76,252,90,252,3,252,14,252,184,252,50,253,248,252,198,252,149,253,60,255, +144,0,217,0,203,0,132,1,209,2,91,3,216,2,214,2,124,4,175,6,134,7,208,6,208,5,65,5,195,4,190,3, +235,1,142,255,129,253,137,252,181,252,180,253,28,255,82,0,30,1,12,2,57,3,160,3,152,2,196,0,247,254,100,253, +244,251,79,250,94,248,30,247,127,247,174,248,53,249,11,249,240,248,27,249,154,249,117,250,92,251,88,252,230,253,166,255, +164,0,10,1,146,1,34,2,88,2,37,2,56,1,157,255,124,254,129,254,245,254,100,255,73,0,210,1,187,3,162,5, +128,6,191,5,219,4,116,5,209,6,150,7,231,7,7,8,172,7,101,7,242,7,157,8,108,8,155,7,145,6,88,5, +91,4,201,3,9,3,34,2,237,1,58,2,236,1,18,1,191,0,49,1,163,1,152,1,73,1,8,1,147,0,76,255, +78,253,114,251,12,250,158,248,227,246,239,244,209,242,252,240,28,240,19,240,104,240,115,241,164,243,142,246,195,249,49,253, +12,0,72,1,40,1,171,0,21,0,98,255,205,254,29,254,9,253,111,252,78,253,14,255,109,0,79,1,71,2,82,3, +255,3,55,4,72,4,161,4,130,5,223,6,146,8,109,10,240,11,146,12,84,12,129,11,72,10,235,8,184,7,144,6, +50,5,227,3,253,2,83,2,192,1,136,1,178,1,252,1,95,2,182,2,111,2,124,1,106,0,43,255,103,253,254,251, +37,252,62,253,188,253,121,253,56,253,214,252,171,251,193,249,154,247,199,245,240,244,75,245,57,246,44,247,65,248,148,249, +13,251,219,252,231,254,89,0,182,0,204,0,93,1,254,1,255,1,96,1,99,0,66,255,87,254,201,253,76,253,213,252, +221,252,173,253,47,255,67,1,119,3,255,4,170,5,3,6,64,6,41,6,205,5,53,5,253,3,76,2,28,1,205,0, +216,0,5,1,136,1,27,2,104,2,145,2,145,2,25,2,107,1,12,1,235,0,206,0,198,0,156,0,244,255,45,255, +182,254,249,253,71,252,248,249,214,247,107,246,41,246,10,247,54,248,9,249,155,249,250,249,13,250,32,250,101,250,163,250, +25,251,110,252,76,254,211,255,32,1,161,2,197,3,8,4,3,4,56,4,67,4,232,3,94,3,173,2,252,1,197,1, +247,1,48,2,236,2,184,4,190,6,215,7,56,8,122,8,89,8,158,7,248,6,243,6,92,7,237,7,118,8,127,8, +159,7,28,6,164,4,170,3,22,3,112,2,104,1,63,0,118,255,61,255,82,255,96,255,73,255,48,255,39,255,249,254, +92,254,61,253,199,251,102,250,135,249,26,249,162,248,25,248,1,248,85,248,85,248,184,247,24,247,255,246,86,247,247,247, +8,249,140,250,17,252,39,253,246,253,226,254,197,255,33,0,237,255,105,255,147,254,129,253,214,252,32,253,53,254,128,255, +128,0,17,1,127,1,253,1,33,2,173,1,64,1,140,1,115,2,164,3,245,4,229,5,245,5,152,5,141,5,159,5, +23,5,241,3,197,2,224,1,17,1,52,0,141,255,135,255,43,0,27,1,229,1,40,2,177,1,205,0,34,0,250,255, +250,255,167,255,230,254,22,254,161,253,94,253,225,252,79,252,6,252,189,251,55,251,45,251,29,252,72,253,234,253,81,254, +251,254,231,255,226,0,141,1,148,1,92,1,130,1,208,1,226,1,0,2,45,2,226,1,116,1,217,1,223,2,127,3, +127,3,51,3,223,2,23,3,43,4,21,5,216,4,40,4,11,4,69,4,78,4,51,4,249,3,178,3,193,3,212,3, +245,2,91,1,54,0,170,255,4,255,71,254,165,253,177,252,124,251,211,250,212,250,30,251,221,251,246,252,130,253,95,253, +104,253,159,253,82,253,166,252,247,251,246,250,243,249,236,249,138,250,141,250,0,250,176,249,153,249,209,249,243,250,156,252, +206,253,211,254,66,0,104,1,208,1,45,2,136,2,55,2,214,1,57,2,139,2,43,2,83,2,182,3,23,5,131,5, +98,5,55,5,102,5,46,6,181,6,24,6,88,5,172,5,30,6,149,5,9,5,71,5,87,5,171,4,2,4,136,3, +200,2,242,1,48,1,20,0,220,254,59,254,237,253,139,253,173,253,91,254,124,254,242,253,179,253,170,253,53,253,198,252, +173,252,55,252,132,251,144,251,229,251,107,251,201,250,9,251,106,251,10,251,136,250,139,250,232,250,138,251,55,252,125,252, +245,252,106,254,207,255,242,255,249,255,25,1,26,2,242,1,191,1,52,2,93,2,243,1,184,1,199,1,234,1,105,2, +15,3,62,3,42,3,45,3,228,2,133,2,255,2,245,3,68,4,92,4,23,5,142,5,218,4,248,3,167,3,6,3, +156,1,56,0,67,255,109,254,144,253,120,252,238,250,137,249,237,248,181,248,146,248,24,249,54,250,251,250,113,251,85,252, +65,253,127,253,158,253,29,254,59,254,162,253,33,253,253,252,188,252,123,252,168,252,253,252,35,253,71,253,143,253,28,254, +32,255,8,0,254,255,172,255,93,0,138,1,209,1,151,1,6,2,190,2,231,2,233,2,94,3,214,3,180,3,253,2, +51,2,16,2,196,2,91,3,24,3,178,2,224,2,8,3,180,2,134,2,217,2,64,3,192,3,135,4,210,4,217,3, +55,2,17,1,200,0,27,1,155,1,198,1,113,1,193,0,138,255,172,253,243,251,76,251,162,251,134,252,1,254,192,255, +178,0,55,0,153,254,93,252,68,250,120,249,123,250,103,252,5,254,240,254,59,255,220,254,187,253,255,251,101,250,42,250, +207,251,99,254,167,0,69,2,41,3,5,3,50,2,201,1,32,2,126,2,139,2,207,2,124,3,203,3,231,2,19,1, +145,255,52,255,101,255,41,255,202,254,58,255,69,0,207,0,165,0,165,0,67,1,33,2,229,2,152,3,77,4,238,4, +55,5,236,4,36,4,60,3,125,2,252,1,194,1,190,1,213,1,254,1,17,2,155,1,126,0,109,255,29,255,88,255, +129,255,150,255,240,255,104,0,122,0,12,0,127,255,15,255,174,254,117,254,213,254,231,255,248,0,70,1,250,0,208,0, +249,0,29,1,50,1,147,1,54,2,157,2,153,2,106,2,25,2,93,1,75,0,136,255,126,255,210,255,244,255,197,255, +103,255,192,254,212,253,40,253,54,253,166,253,213,253,219,253,73,254,4,255,49,255,142,254,245,253,42,254,205,254,16,255, +242,254,20,255,158,255,15,0,17,0,209,255,131,255,18,255,110,254,187,253,38,253,188,252,126,252,93,252,54,252,2,252, +3,252,122,252,56,253,198,253,17,254,121,254,37,255,183,255,244,255,41,0,135,0,179,0,90,0,222,255,196,255,226,255, +183,255,81,255,70,255,204,255,123,0,9,1,156,1,50,2,90,2,227,1,85,1,65,1,111,1,86,1,12,1,35,1, +192,1,84,2,84,2,200,1,12,1,92,0,209,255,137,255,164,255,43,0,3,1,223,1,67,2,235,1,43,1,162,0, +127,0,103,0,13,0,144,255,45,255,232,254,169,254,123,254,122,254,170,254,2,255,129,255,29,0,172,0,12,1,77,1, +113,1,55,1,145,0,22,0,119,0,124,1,66,2,104,2,112,2,227,2,144,3,222,3,141,3,230,2,88,2,254,1, +168,1,46,1,153,0,31,0,6,0,84,0,161,0,134,0,48,0,7,0,249,255,159,255,251,254,108,254,20,254,210,253, +153,253,96,253,243,252,57,252,112,251,244,250,231,250,18,251,48,251,69,251,131,251,222,251,47,252,173,252,146,253,119,254, +191,254,142,254,134,254,186,254,189,254,97,254,212,253,74,253,239,252,241,252,77,253,205,253,71,254,180,254,43,255,178,255, +30,0,84,0,167,0,104,1,76,2,226,2,108,3,77,4,31,5,47,5,155,4,24,4,243,3,241,3,234,3,252,3, +73,4,167,4,195,4,151,4,113,4,103,4,48,4,182,3,58,3,200,2,53,2,174,1,114,1,41,1,91,0,87,255, +220,254,23,255,157,255,2,0,23,0,221,255,134,255,71,255,53,255,78,255,104,255,73,255,0,255,220,254,214,254,156,254, +84,254,118,254,222,254,239,254,148,254,52,254,223,253,95,253,207,252,124,252,108,252,101,252,67,252,51,252,149,252,114,253, +71,254,168,254,214,254,65,255,239,255,180,0,109,1,204,1,154,1,37,1,246,0,31,1,66,1,19,1,137,0,215,255, +72,255,14,255,45,255,128,255,163,255,62,255,144,254,72,254,155,254,255,254,12,255,243,254,5,255,83,255,196,255,41,0, +66,0,251,255,143,255,92,255,134,255,200,255,180,255,70,255,12,255,100,255,218,255,203,255,104,255,128,255,76,0,34,1, +78,1,219,0,80,0,6,0,255,255,34,0,112,0,243,0,146,1,18,2,70,2,62,2,36,2,17,2,255,1,228,1, +208,1,219,1,252,1,4,2,213,1,159,1,174,1,244,1,14,2,198,1,88,1,21,1,249,0,245,0,43,1,146,1, +173,1,57,1,173,0,132,0,120,0,6,0,85,255,6,255,80,255,187,255,193,255,131,255,148,255,252,255,3,0,71,255, +92,254,209,253,112,253,226,252,77,252,213,251,90,251,227,250,197,250,55,251,10,252,206,252,57,253,116,253,228,253,171,254, +163,255,156,0,73,1,124,1,131,1,202,1,26,2,250,1,148,1,103,1,132,1,170,1,200,1,220,1,222,1,213,1, +219,1,246,1,42,2,83,2,56,2,4,2,41,2,144,2,156,2,47,2,205,1,172,1,142,1,89,1,11,1,108,0, +125,255,211,254,220,254,54,255,66,255,246,254,174,254,150,254,127,254,56,254,231,253,224,253,16,254,243,253,112,253,53,253, +164,253,25,254,251,253,186,253,240,253,82,254,68,254,220,253,170,253,243,253,125,254,237,254,51,255,137,255,4,0,99,0, +142,0,176,0,193,0,139,0,51,0,24,0,84,0,191,0,36,1,67,1,34,1,46,1,153,1,2,2,44,2,93,2, +206,2,87,3,186,3,203,3,128,3,38,3,9,3,248,2,160,2,4,2,63,1,97,0,187,255,138,255,117,255,255,254, +70,254,166,253,38,253,185,252,143,252,205,252,67,253,167,253,213,253,230,253,37,254,190,254,122,255,242,255,250,255,189,255, +105,255,7,255,180,254,162,254,187,254,169,254,102,254,90,254,197,254,82,255,115,255,248,254,80,254,30,254,114,254,204,254, +0,255,115,255,46,0,150,0,92,0,252,255,0,0,80,0,114,0,65,0,44,0,159,0,82,1,175,1,190,1,247,1, +111,2,216,2,19,3,52,3,85,3,145,3,211,3,195,3,67,3,166,2,57,2,247,1,193,1,122,1,20,1,163,0, +60,0,215,255,149,255,168,255,212,255,175,255,91,255,82,255,141,255,157,255,101,255,47,255,35,255,8,255,165,254,45,254, +1,254,18,254,245,253,170,253,150,253,192,253,205,253,175,253,185,253,15,254,137,254,247,254,61,255,84,255,66,255,31,255, +37,255,113,255,182,255,155,255,92,255,99,255,134,255,110,255,83,255,158,255,29,0,62,0,225,255,149,255,230,255,153,0, +223,0,109,0,211,255,167,255,235,255,104,0,6,1,161,1,22,2,100,2,151,2,164,2,116,2,249,1,49,1,72,0, +147,255,87,255,128,255,163,255,124,255,82,255,118,255,169,255,132,255,61,255,73,255,161,255,214,255,189,255,159,255,222,255, +97,0,150,0,94,0,87,0,188,0,241,0,180,0,142,0,164,0,114,0,232,255,142,255,156,255,208,255,234,255,221,255, +213,255,0,0,41,0,6,0,215,255,233,255,216,255,42,255,54,254,168,253,163,253,213,253,220,253,178,253,196,253,91,254, +24,255,140,255,217,255,53,0,138,0,218,0,45,1,67,1,4,1,192,0,148,0,69,0,221,255,167,255,175,255,224,255, +55,0,113,0,52,0,180,255,118,255,138,255,143,255,101,255,77,255,130,255,8,0,179,0,83,1,203,1,13,2,0,2, +156,1,30,1,236,0,2,1,242,0,147,0,79,0,89,0,80,0,10,0,226,255,242,255,234,255,207,255,250,255,91,0, +157,0,172,0,165,0,161,0,181,0,218,0,222,0,198,0,229,0,86,1,184,1,153,1,247,0,67,0,212,255,123,255, +248,254,141,254,128,254,147,254,128,254,90,254,37,254,215,253,177,253,208,253,215,253,180,253,205,253,41,254,117,254,194,254, +51,255,132,255,146,255,148,255,153,255,166,255,14,0,192,0,21,1,223,0,191,0,20,1,135,1,166,1,79,1,191,0, +122,0,180,0,255,0,244,0,174,0,110,0,73,0,77,0,161,0,103,1,113,2,39,3,50,3,18,3,87,3,185,3, +177,3,92,3,5,3,200,2,231,2,100,3,126,3,208,2,29,2,248,1,180,1,181,0,129,255,220,254,199,254,222,254, +225,254,206,254,204,254,235,254,230,254,130,254,17,254,10,254,85,254,116,254,82,254,74,254,125,254,168,254,176,254,173,254, +140,254,44,254,188,253,140,253,171,253,241,253,33,254,249,253,152,253,125,253,202,253,16,254,21,254,34,254,109,254,217,254, +77,255,203,255,75,0,165,0,192,0,191,0,239,0,90,1,189,1,232,1,217,1,157,1,128,1,222,1,117,2,179,2, +161,2,149,2,126,2,93,2,119,2,137,2,48,2,239,1,74,2,138,2,252,1,61,1,252,0,232,0,164,0,67,0, +186,255,20,255,189,254,214,254,14,255,81,255,158,255,152,255,44,255,226,254,9,255,78,255,87,255,32,255,214,254,177,254, +179,254,162,254,114,254,69,254,7,254,170,253,115,253,137,253,207,253,58,254,172,254,191,254,123,254,128,254,246,254,94,255, +157,255,2,0,113,0,189,0,52,1,234,1,76,2,1,2,110,1,246,0,165,0,113,0,80,0,47,0,37,0,92,0, +181,0,235,0,254,0,249,0,166,0,4,0,163,255,231,255,99,0,132,0,92,0,75,0,117,0,229,0,117,1,138,1, +203,0,213,255,117,255,145,255,152,255,100,255,36,255,243,254,208,254,166,254,87,254,235,253,139,253,86,253,76,253,75,253, +49,253,46,253,150,253,72,254,229,254,116,255,8,0,86,0,70,0,34,0,240,255,174,255,188,255,2,0,178,255,212,254, +110,254,165,254,176,254,132,254,186,254,54,255,118,255,120,255,127,255,187,255,63,0,171,0,132,0,23,0,241,255,223,255, +158,255,154,255,8,0,113,0,171,0,243,0,19,1,194,0,95,0,73,0,78,0,50,0,9,0,228,255,179,255,113,255, +72,255,132,255,33,0,121,0,21,0,124,255,100,255,207,255,121,0,58,1,160,1,83,1,219,0,231,0,49,1,45,1, +248,0,207,0,135,0,36,0,21,0,124,0,254,0,84,1,108,1,57,1,216,0,170,0,208,0,241,0,209,0,145,0, +86,0,28,0,22,0,122,0,7,1,53,1,231,0,128,0,103,0,159,0,197,0,156,0,100,0,83,0,27,0,160,255, +90,255,108,255,90,255,10,255,216,254,168,254,58,254,247,253,50,254,106,254,40,254,211,253,238,253,81,254,101,254,232,253, +101,253,149,253,51,254,105,254,78,254,146,254,12,255,47,255,60,255,149,255,242,255,32,0,47,0,222,255,48,255,248,254, +146,255,75,0,165,0,200,0,176,0,82,0,31,0,84,0,148,0,166,0,170,0,182,0,225,0,63,1,161,1,240,1, +97,2,178,2,80,2,132,1,43,1,71,1,80,1,88,1,168,1,251,1,1,2,208,1,128,1,33,1,221,0,161,0, +44,0,170,255,135,255,155,255,92,255,193,254,93,254,141,254,254,254,13,255,155,254,60,254,104,254,233,254,90,255,178,255, +222,255,135,255,183,254,19,254,11,254,68,254,71,254,47,254,58,254,76,254,75,254,114,254,222,254,70,255,81,255,252,254, +181,254,3,255,217,255,136,0,186,0,225,0,66,1,147,1,180,1,229,1,40,2,70,2,41,2,223,1,182,1,37,2, +242,2,52,3,190,2,73,2,19,2,205,1,162,1,190,1,139,1,193,0,25,0,36,0,155,0,11,1,44,1,239,0, +196,0,5,1,70,1,13,1,178,0,156,0,178,0,232,0,63,1,85,1,235,0,90,0,253,255,199,255,143,255,42,255, +138,254,22,254,27,254,67,254,95,254,208,254,123,255,172,255,107,255,94,255,142,255,158,255,163,255,180,255,155,255,110,255, +115,255,114,255,49,255,13,255,75,255,142,255,153,255,180,255,16,0,124,0,183,0,156,0,61,0,241,255,251,255,43,0, +46,0,250,255,193,255,179,255,240,255,113,0,220,0,199,0,63,0,191,255,145,255,162,255,223,255,54,0,99,0,39,0, +190,255,144,255,162,255,158,255,89,255,23,255,58,255,188,255,31,0,20,0,252,255,79,0,216,0,216,0,6,0,15,255, +223,254,83,255,135,255,110,255,222,255,193,0,37,1,18,1,60,1,63,1,103,0,127,255,148,255,25,0,20,0,185,255, +149,255,167,255,223,255,69,0,156,0,153,0,47,0,118,255,208,254,202,254,74,255,161,255,146,255,92,255,32,255,251,254, +42,255,128,255,154,255,137,255,133,255,109,255,45,255,252,254,229,254,216,254,250,254,83,255,153,255,153,255,97,255,38,255, +53,255,133,255,136,255,35,255,10,255,110,255,162,255,129,255,174,255,74,0,220,0,55,1,60,1,185,0,53,0,139,0, +111,1,212,1,180,1,198,1,245,1,183,1,108,1,191,1,54,2,211,1,202,0,47,0,68,0,96,0,62,0,34,0, +1,0,176,255,150,255,27,0,224,0,70,1,92,1,121,1,120,1,245,0,30,0,160,255,177,255,193,255,109,255,37,255, +90,255,193,255,241,255,234,255,180,255,32,255,50,254,68,253,204,252,11,253,214,253,177,254,70,255,141,255,163,255,208,255, +62,0,117,0,252,255,68,255,234,254,181,254,92,254,52,254,89,254,142,254,8,255,225,255,99,0,68,0,82,0,214,0, +21,1,225,0,199,0,174,0,21,0,84,255,73,255,33,0,68,1,23,2,140,2,218,2,219,2,73,2,143,1,89,1, +117,1,72,1,206,0,78,0,227,255,238,255,176,0,127,1,158,1,85,1,39,1,239,0,127,0,33,0,15,0,60,0, +124,0,135,0,55,0,214,255,189,255,238,255,89,0,229,0,46,1,212,0,1,0,36,255,124,254,41,254,57,254,101,254, +59,254,186,253,117,253,222,253,159,254,10,255,245,254,174,254,89,254,8,254,253,253,74,254,180,254,25,255,104,255,105,255, +65,255,131,255,60,0,199,0,220,0,231,0,54,1,136,1,137,1,71,1,41,1,97,1,146,1,101,1,24,1,253,0, +253,0,250,0,3,1,16,1,22,1,31,1,13,1,216,0,234,0,107,1,224,1,246,1,178,1,235,0,223,255,157,255, +105,0,246,0,115,0,194,255,201,255,57,0,118,0,81,0,212,255,33,255,96,254,178,253,109,253,233,253,206,254,104,255, +140,255,112,255,20,255,141,254,67,254,110,254,204,254,12,255,30,255,59,255,157,255,32,0,110,0,139,0,160,0,112,0, +202,255,30,255,253,254,92,255,197,255,247,255,28,0,133,0,23,1,78,1,27,1,251,0,4,1,208,0,120,0,126,0, +197,0,216,0,225,0,95,1,47,2,182,2,175,2,62,2,144,1,232,0,176,0,248,0,51,1,10,1,222,0,223,0, +109,0,94,255,174,254,241,254,81,255,21,255,172,254,145,254,147,254,165,254,24,255,199,255,232,255,23,255,13,254,231,253, +186,254,125,255,157,255,172,255,17,0,92,0,85,0,84,0,69,0,182,255,241,254,202,254,105,255,27,0,61,0,241,255, +225,255,79,0,143,0,238,255,225,254,126,254,253,254,148,255,188,255,224,255,115,0,242,0,150,0,189,255,106,255,152,255, +130,255,49,255,51,255,67,255,235,254,166,254,243,254,62,255,240,254,136,254,166,254,6,255,34,255,44,255,172,255,122,0, +196,0,96,0,44,0,164,0,13,1,165,0,184,255,239,254,159,254,228,254,152,255,41,0,56,0,22,0,60,0,160,0, +236,0,242,0,181,0,80,0,239,255,207,255,11,0,101,0,152,0,203,0,33,1,55,1,210,0,114,0,118,0,146,0, +165,0,241,0,66,1,49,1,12,1,53,1,79,1,254,0,181,0,229,0,40,1,224,0,14,0,64,255,226,254,215,254, +190,254,134,254,78,254,24,254,232,253,213,253,215,253,224,253,35,254,175,254,30,255,22,255,207,254,184,254,235,254,6,255, +170,254,27,254,245,253,49,254,62,254,0,254,207,253,187,253,192,253,37,254,225,254,106,255,124,255,85,255,57,255,101,255, +232,255,76,0,47,0,10,0,125,0,67,1,184,1,212,1,252,1,70,2,107,2,81,2,69,2,142,2,255,2,88,3, +160,3,177,3,58,3,137,2,70,2,73,2,246,1,100,1,0,1,179,0,86,0,29,0,38,0,84,0,157,0,248,0, +56,1,67,1,9,1,123,0,204,255,66,255,236,254,217,254,38,255,133,255,116,255,23,255,241,254,19,255,41,255,5,255, +194,254,161,254,181,254,185,254,162,254,226,254,104,255,84,255,113,254,201,253,255,253,115,254,117,254,64,254,85,254,171,254, +202,254,178,254,4,255,236,255,154,0,144,0,120,0,230,0,117,1,159,1,116,1,50,1,247,0,220,0,236,0,44,1, +122,1,112,1,4,1,4,1,230,1,223,2,34,3,251,2,196,2,60,2,118,1,12,1,10,1,244,0,165,0,96,0, +51,0,7,0,239,255,16,0,54,0,248,255,84,255,199,254,160,254,167,254,137,254,38,254,146,253,51,253,107,253,245,253, +70,254,89,254,85,254,58,254,92,254,19,255,205,255,202,255,130,255,177,255,230,255,128,255,4,255,51,255,197,255,238,255, +141,255,63,255,133,255,31,0,101,0,40,0,221,255,4,0,160,0,51,1,83,1,58,1,82,1,102,1,33,1,234,0, +31,1,85,1,80,1,115,1,150,1,18,1,59,0,3,0,111,0,213,0,238,0,176,0,38,0,212,255,14,0,56,0, +192,255,54,255,85,255,211,255,1,0,211,255,150,255,75,255,222,254,136,254,141,254,192,254,192,254,136,254,102,254,138,254, +204,254,233,254,216,254,223,254,19,255,18,255,166,254,76,254,121,254,235,254,57,255,105,255,130,255,89,255,13,255,28,255, +176,255,80,0,96,0,198,255,26,255,7,255,163,255,107,0,211,0,199,0,206,0,83,1,235,1,227,1,108,1,41,1, +10,1,196,0,162,0,213,0,238,0,210,0,241,0,57,1,29,1,169,0,110,0,151,0,220,0,3,1,238,0,150,0, +67,0,106,0,16,1,146,1,76,1,119,0,232,255,230,255,240,255,194,255,157,255,149,255,119,255,98,255,156,255,228,255, +184,255,40,255,186,254,181,254,5,255,125,255,211,255,193,255,132,255,147,255,206,255,201,255,196,255,56,0,201,0,229,0, +203,0,242,0,61,1,118,1,155,1,116,1,227,0,89,0,63,0,130,0,226,0,254,0,116,0,173,255,143,255,6,0, +51,0,239,255,181,255,137,255,64,255,35,255,83,255,116,255,82,255,19,255,200,254,119,254,97,254,188,254,44,255,19,255, +137,254,104,254,226,254,7,255,130,254,69,254,165,254,185,254,83,254,116,254,57,255,137,255,15,255,162,254,202,254,70,255, +187,255,5,0,38,0,71,0,123,0,139,0,93,0,69,0,134,0,194,0,148,0,121,0,17,1,205,1,183,1,18,1, +176,0,137,0,95,0,124,0,225,0,18,1,39,1,142,1,35,2,151,2,221,2,181,2,3,2,96,1,56,1,56,1, +71,1,140,1,151,1,9,1,102,0,26,0,238,255,229,255,23,0,14,0,154,255,85,255,127,255,134,255,29,255,167,254, +145,254,183,254,133,254,243,253,228,253,173,254,32,255,155,254,100,254,111,255,172,0,241,0,147,0,78,0,73,0,96,0, +95,0,24,0,178,255,111,255,105,255,182,255,75,0,207,0,251,0,240,0,230,0,229,0,185,0,14,0,18,255,147,254, +249,254,209,255,179,0,132,1,250,1,244,1,193,1,106,1,198,0,78,0,140,0,27,1,86,1,51,1,230,0,160,0, +141,0,145,0,136,0,144,0,115,0,199,255,20,255,22,255,64,255,231,254,177,254,4,255,13,255,146,254,97,254,155,254, +183,254,155,254,105,254,66,254,101,254,129,254,3,254,193,253,11,255,253,0,134,1,170,0,2,0,8,0,251,255,108,255, +160,254,45,254,116,254,45,255,193,255,232,255,158,255,26,255,239,254,101,255,252,255,40,0,221,255,95,255,29,255,115,255, +39,0,200,0,82,1,171,1,101,1,172,0,54,0,39,0,64,0,151,0,10,1,4,1,128,0,31,0,51,0,124,0, +149,0,94,0,56,0,151,0,56,1,131,1,105,1,38,1,226,0,237,0,92,1,173,1,172,1,161,1,83,1,129,0, +226,255,226,255,218,255,164,255,203,255,244,255,160,255,167,255,142,0,38,1,180,0,20,0,250,255,51,0,138,0,201,0, +175,0,132,0,142,0,107,0,254,255,213,255,2,0,242,255,149,255,92,255,119,255,185,255,199,255,88,255,198,254,183,254, +12,255,39,255,0,255,12,255,91,255,161,255,181,255,187,255,237,255,55,0,59,0,246,255,206,255,222,255,232,255,207,255, +143,255,50,255,2,255,41,255,81,255,79,255,112,255,196,255,5,0,50,0,106,0,136,0,110,0,54,0,10,0,19,0, +59,0,46,0,18,0,87,0,134,0,224,255,25,255,80,255,9,0,63,0,63,0,171,0,51,1,99,1,73,1,9,1, +199,0,165,0,130,0,103,0,163,0,243,0,208,0,153,0,235,0,74,1,0,1,70,0,121,255,159,254,22,254,47,254, +107,254,113,254,191,254,134,255,36,0,65,0,53,0,68,0,96,0,97,0,17,0,102,255,217,254,211,254,210,254,18,254, +247,252,190,252,154,253,103,254,129,254,147,254,44,255,229,255,83,0,145,0,174,0,120,0,20,0,21,0,184,0,91,1, +57,1,176,0,218,0,149,1,156,1,229,0,194,0,122,1,237,1,172,1,95,1,86,1,67,1,246,0,122,0,250,255, +179,255,180,255,246,255,150,0,94,1,177,1,119,1,68,1,68,1,7,1,89,0,119,255,208,254,213,254,92,255,142,255, +53,255,14,255,70,255,58,255,239,254,26,255,157,255,182,255,77,255,228,254,172,254,144,254,130,254,67,254,160,253,245,252, +232,252,151,253,149,254,99,255,170,255,116,255,67,255,133,255,255,255,79,0,135,0,200,0,219,0,184,0,170,0,178,0, +181,0,217,0,250,0,165,0,50,0,111,0,23,1,63,1,3,1,228,0,153,0,15,0,1,0,140,0,232,0,243,0, +67,1,204,1,7,2,243,1,223,1,209,1,162,1,64,1,195,0,104,0,68,0,18,0,168,255,37,255,156,254,46,254, +42,254,144,254,246,254,37,255,61,255,70,255,73,255,97,255,116,255,92,255,95,255,182,255,239,255,141,255,202,254,48,254, +10,254,104,254,21,255,118,255,48,255,174,254,131,254,187,254,46,255,227,255,171,0,34,1,84,1,126,1,68,1,108,0, +206,255,49,0,6,1,118,1,156,1,203,1,244,1,52,2,128,2,47,2,23,1,44,0,11,0,87,0,214,0,124,1, +192,1,99,1,254,0,222,0,149,0,28,0,235,255,242,255,213,255,167,255,147,255,125,255,83,255,30,255,223,254,165,254, +125,254,99,254,128,254,252,254,113,255,103,255,60,255,146,255,67,0,176,0,169,0,110,0,56,0,0,0,167,255,74,255, +61,255,100,255,31,255,89,254,240,253,100,254,15,255,83,255,133,255,24,0,202,0,51,1,100,1,110,1,29,1,177,0, +225,0,192,1,107,2,59,2,139,1,26,1,41,1,94,1,92,1,72,1,104,1,105,1,208,0,253,255,163,255,189,255, +219,255,224,255,197,255,128,255,88,255,111,255,103,255,45,255,43,255,82,255,76,255,90,255,166,255,146,255,231,254,113,254, +154,254,214,254,206,254,168,254,110,254,56,254,76,254,164,254,246,254,60,255,131,255,161,255,166,255,201,255,219,255,170,255, +122,255,116,255,70,255,232,254,221,254,72,255,182,255,240,255,60,0,185,0,26,1,23,1,198,0,131,0,180,0,106,1, +41,2,67,2,174,1,27,1,28,1,128,1,207,1,228,1,208,1,133,1,3,1,155,0,158,0,241,0,66,1,102,1, +59,1,159,0,236,255,195,255,246,255,169,255,226,254,141,254,198,254,221,254,214,254,23,255,24,255,63,254,52,253,219,252, +5,253,49,253,81,253,82,253,35,253,53,253,232,253,227,254,138,255,158,255,78,255,40,255,140,255,252,255,203,255,67,255, +29,255,88,255,177,255,73,0,242,0,255,0,93,0,203,255,191,255,255,255,51,0,58,0,57,0,123,0,239,0,44,1, +49,1,127,1,32,2,121,2,52,2,169,1,93,1,137,1,241,1,18,2,169,1,7,1,156,0,138,0,171,0,161,0, +27,0,95,255,39,255,133,255,185,255,103,255,12,255,247,254,235,254,239,254,81,255,191,255,137,255,213,254,110,254,138,254, +179,254,175,254,139,254,57,254,224,253,251,253,141,254,222,254,148,254,65,254,116,254,246,254,72,255,97,255,132,255,158,255, +99,255,243,254,216,254,39,255,100,255,113,255,168,255,16,0,92,0,146,0,217,0,29,1,89,1,144,1,134,1,67,1, +80,1,189,1,14,2,80,2,223,2,88,3,57,3,203,2,67,2,95,1,129,0,128,0,34,1,111,1,39,1,171,0, +60,0,40,0,166,0,70,1,102,1,249,0,68,0,127,255,7,255,31,255,127,255,167,255,113,255,3,255,136,254,44,254, +15,254,40,254,59,254,34,254,44,254,168,254,42,255,12,255,146,254,106,254,122,254,101,254,143,254,61,255,184,255,114,255, +249,254,6,255,124,255,222,255,2,0,16,0,55,0,112,0,149,0,172,0,233,0,100,1,217,1,220,1,104,1,11,1, +37,1,121,1,210,1,54,2,61,2,154,1,28,1,130,1,13,2,235,1,157,1,151,1,95,1,246,0,239,0,27,1, +6,1,246,0,11,1,208,0,91,0,48,0,31,0,188,255,77,255,42,255,42,255,47,255,57,255,49,255,40,255,59,255, +57,255,1,255,199,254,161,254,132,254,166,254,31,255,150,255,204,255,204,255,163,255,140,255,203,255,21,0,252,255,201,255, +223,255,3,0,248,255,222,255,184,255,139,255,149,255,168,255,73,255,198,254,227,254,108,255,140,255,54,255,14,255,81,255, +176,255,249,255,77,0,173,0,212,0,190,0,206,0,18,1,33,1,244,0,226,0,229,0,228,0,10,1,16,1,129,0, +236,255,1,0,39,0,209,255,202,255,108,0,177,0,51,0,209,255,210,255,168,255,62,255,248,254,19,255,162,255,84,0, +122,0,247,255,100,255,31,255,50,255,172,255,42,0,255,255,90,255,11,255,76,255,202,255,75,0,155,0,130,0,42,0, +246,255,24,0,124,0,211,0,221,0,202,0,182,0,64,0,146,255,155,255,97,0,202,0,134,0,71,0,52,0,15,0, +32,0,126,0,139,0,12,0,122,255,14,255,170,254,114,254,151,254,240,254,45,255,49,255,33,255,32,255,29,255,17,255, +55,255,119,255,87,255,245,254,217,254,219,254,164,254,171,254,58,255,171,255,183,255,214,255,251,255,196,255,136,255,167,255, +199,255,217,255,63,0,186,0,187,0,96,0,252,255,180,255,222,255,151,0,74,1,147,1,171,1,144,1,46,1,17,1, +135,1,217,1,134,1,58,1,132,1,218,1,169,1,102,1,185,1,20,2,111,1,53,0,197,255,32,0,51,0,24,0, +160,0,72,1,32,1,148,0,87,0,33,0,177,255,76,255,246,254,180,254,230,254,94,255,118,255,66,255,53,255,15,255, +150,254,86,254,190,254,124,255,14,0,42,0,218,255,141,255,139,255,173,255,222,255,35,0,47,0,227,255,171,255,170,255, +145,255,139,255,227,255,47,0,6,0,185,255,168,255,216,255,67,0,174,0,199,0,185,0,180,0,107,0,255,255,41,0, +180,0,190,0,131,0,203,0,37,1,213,0,94,0,107,0,138,0,69,0,16,0,88,0,170,0,133,0,57,0,60,0, +74,0,4,0,227,255,68,0,92,0,155,255,231,254,12,255,135,255,195,255,197,255,123,255,245,254,184,254,197,254,170,254, +176,254,32,255,52,255,137,254,25,254,112,254,220,254,249,254,26,255,83,255,136,255,194,255,214,255,188,255,214,255,10,0, +203,255,131,255,23,0,30,1,114,1,6,1,169,0,162,0,160,0,124,0,112,0,187,0,32,1,44,1,240,0,201,0, +180,0,158,0,188,0,231,0,193,0,139,0,158,0,147,0,65,0,94,0,26,1,162,1,146,1,80,1,3,1,144,0, +54,0,59,0,98,0,62,0,196,255,112,255,171,255,47,0,112,0,86,0,247,255,85,255,238,254,71,255,193,255,112,255, +180,254,94,254,86,254,82,254,128,254,211,254,252,254,255,254,228,254,190,254,7,255,208,255,53,0,232,255,185,255,223,255, +189,255,111,255,112,255,101,255,3,255,223,254,58,255,150,255,197,255,242,255,243,255,188,255,190,255,12,0,60,0,44,0, +37,0,55,0,47,0,13,0,36,0,132,0,185,0,117,0,22,0,243,255,200,255,135,255,148,255,215,255,196,255,129,255, +153,255,226,255,212,255,110,255,14,255,1,255,71,255,120,255,72,255,34,255,121,255,6,0,97,0,136,0,115,0,39,0, +255,255,22,0,34,0,41,0,77,0,37,0,156,255,119,255,7,0,140,0,158,0,166,0,210,0,218,0,150,0,44,0, +239,255,16,0,47,0,238,255,212,255,93,0,229,0,201,0,147,0,192,0,221,0,179,0,189,0,20,1,84,1,117,1, +153,1,127,1,240,0,66,0,241,255,3,0,17,0,235,255,218,255,41,0,154,0,168,0,48,0,161,255,123,255,174,255, +191,255,159,255,182,255,222,255,133,255,250,254,39,255,201,255,182,255,228,254,115,254,229,254,134,255,145,255,51,255,46,255, +154,255,142,255,192,254,88,254,4,255,183,255,151,255,106,255,227,255,115,0,143,0,118,0,125,0,173,0,233,0,240,0, +179,0,156,0,208,0,212,0,120,0,65,0,136,0,9,1,86,1,59,1,218,0,143,0,114,0,57,0,250,255,53,0, +192,0,192,0,28,0,208,255,89,0,238,0,204,0,85,0,68,0,124,0,89,0,200,255,89,255,121,255,239,255,39,0, +233,255,138,255,82,255,20,255,209,254,249,254,112,255,89,255,151,254,61,254,213,254,166,255,9,0,44,0,71,0,54,0, +240,255,171,255,163,255,215,255,255,255,230,255,221,255,51,0,139,0,132,0,116,0,165,0,182,0,111,0,63,0,109,0, +189,0,0,1,63,1,113,1,128,1,99,1,17,1,182,0,169,0,225,0,227,0,142,0,84,0,115,0,164,0,149,0, +64,0,221,255,200,255,23,0,80,0,14,0,169,255,140,255,115,255,10,255,168,254,151,254,142,254,103,254,119,254,212,254, +30,255,29,255,227,254,149,254,119,254,166,254,193,254,149,254,165,254,53,255,142,255,47,255,182,254,204,254,63,255,166,255, +224,255,215,255,162,255,150,255,175,255,151,255,120,255,200,255,66,0,70,0,13,0,76,0,224,0,23,1,228,0,219,0, +58,1,165,1,168,1,53,1,188,0,185,0,2,1,24,1,10,1,49,1,76,1,241,0,148,0,220,0,112,1,114,1, +206,0,53,0,32,0,77,0,32,0,121,255,246,254,9,255,68,255,44,255,9,255,52,255,140,255,244,255,118,0,200,0, +151,0,11,0,118,255,3,255,221,254,17,255,104,255,183,255,238,255,214,255,103,255,13,255,252,254,224,254,201,254,47,255, +230,255,54,0,19,0,255,255,255,255,189,255,90,255,76,255,183,255,88,0,199,0,197,0,144,0,184,0,41,1,29,1, +115,0,19,0,70,0,24,0,79,255,48,255,65,0,27,1,178,0,217,255,163,255,237,255,15,0,206,255,123,255,134,255, +210,255,207,255,169,255,37,0,229,0,188,0,242,255,206,255,54,0,19,0,120,255,77,255,173,255,13,0,17,0,194,255, +137,255,207,255,60,0,43,0,192,255,134,255,121,255,113,255,181,255,74,0,158,0,80,0,178,255,72,255,56,255,84,255, +133,255,223,255,53,0,56,0,38,0,155,0,110,1,215,1,179,1,130,1,101,1,35,1,216,0,219,0,29,1,74,1, +68,1,52,1,34,1,235,0,177,0,203,0,12,1,250,0,169,0,119,0,60,0,214,255,184,255,243,255,237,255,149,255, +128,255,191,255,236,255,225,255,172,255,136,255,208,255,37,0,187,255,243,254,235,254,92,255,59,255,198,254,180,254,177,254, +101,254,70,254,120,254,168,254,246,254,114,255,162,255,135,255,164,255,203,255,134,255,69,255,150,255,255,255,220,255,109,255, +63,255,91,255,148,255,229,255,64,0,81,0,248,255,165,255,198,255,44,0,141,0,247,0,37,1,136,0,117,255,19,255, +185,255,144,0,220,0,167,0,96,0,54,0,227,255,94,255,107,255,97,0,51,1,7,1,127,0,60,0,226,255,87,255, +15,255,248,254,195,254,180,254,245,254,67,255,170,255,57,0,106,0,13,0,197,255,250,255,108,0,200,0,214,0,164,0, +175,0,244,0,166,0,204,255,128,255,227,255,4,0,210,255,5,0,137,0,217,0,226,0,169,0,69,0,65,0,188,0, +251,0,192,0,186,0,23,1,22,1,102,0,180,255,161,255,247,255,71,0,192,0,181,1,211,2,119,3,150,3,142,3, +93,3,181,2,137,1,17,0,196,254,41,254,59,254,109,254,153,254,37,255,38,0,66,1,61,2,248,2,120,3,215,3, +152,3,24,2,63,0,149,255,138,255,146,254,44,253,159,252,103,252,184,251,58,251,122,251,255,251,129,252,15,253,141,253, +25,254,212,254,78,255,81,255,73,255,86,255,67,255,73,255,176,255,73,0,203,0,20,1,49,1,134,1,51,2,229,2, +155,3,132,4,14,5,158,4,137,3,99,2,85,1,93,0,63,255,227,253,238,252,142,252,201,251,181,250,229,250,76,252, +230,252,54,252,223,251,221,252,141,254,238,255,132,0,134,0,68,0,136,255,103,254,16,254,56,255,169,0,188,0,138,255, +169,254,48,255,151,0,188,1,73,2,120,2,59,2,165,1,102,1,245,1,178,2,120,2,249,0,56,255,66,254,252,253, +245,253,77,254,236,254,74,255,121,255,205,255,7,0,42,0,157,0,228,0,96,0,185,255,144,255,144,255,194,255,108,0, +217,0,144,0,75,0,113,0,196,0,111,1,44,2,194,1,54,0,18,255,9,255,113,255,218,255,78,0,169,0,207,0, +254,0,118,1,8,2,53,2,218,1,105,1,29,1,214,0,194,0,36,1,185,1,42,2,109,2,121,2,92,2,48,2, +167,1,197,0,69,0,25,0,90,255,75,254,255,253,36,254,182,253,232,252,127,252,189,252,115,253,33,254,104,254,179,254, +78,255,192,255,17,0,221,0,191,1,216,1,126,1,92,1,55,1,205,0,140,0,221,0,162,1,65,2,55,2,249,1, +45,2,39,2,14,1,209,255,190,255,46,0,194,255,198,254,128,254,245,254,241,254,247,253,198,252,232,251,13,251,42,250, +186,249,225,249,106,250,60,251,29,252,237,252,240,253,7,255,156,255,252,255,206,0,119,1,58,1,10,1,233,1,241,2, +238,2,53,2,158,1,48,1,169,0,45,0,227,255,131,255,221,254,119,254,10,255,136,0,52,2,117,3,28,4,112,4, +198,4,149,4,205,2,190,255,41,253,220,251,18,251,122,250,239,250,198,252,3,255,221,0,196,2,60,5,134,7,124,8, +69,8,206,7,248,6,239,4,22,2,200,255,74,254,205,252,63,251,87,250,28,250,99,250,142,251,111,253,3,255,251,255, +212,0,96,1,42,1,192,0,189,0,165,0,14,0,142,255,124,255,94,255,243,254,121,254,48,254,118,254,108,255,109,0, +41,1,79,2,184,3,231,3,148,2,59,1,119,0,106,255,228,253,213,252,183,252,7,253,21,253,216,252,243,252,217,253, +20,255,229,255,43,0,87,0,220,0,185,1,133,2,242,2,221,2,28,2,216,0,147,255,87,254,59,253,79,253,215,254, +1,0,198,255,148,255,95,0,100,1,94,2,57,3,188,2,190,0,31,255,165,254,81,254,227,253,122,253,96,252,5,251, +49,251,237,252,134,254,145,255,146,0,213,0,143,255,202,253,231,252,63,252,99,250,7,248,81,247,127,248,53,250,131,252, +94,0,250,4,166,8,184,10,102,11,73,12,2,16,53,22,191,26,18,27,219,23,117,17,173,8,32,1,100,253,108,252, +78,253,126,255,133,255,246,250,105,245,178,242,18,241,114,238,228,236,83,238,245,241,66,247,120,253,43,1,224,255,227,251, +224,248,126,248,43,252,31,4,74,11,207,11,158,7,201,4,199,3,237,1,155,0,96,1,121,1,155,255,247,254,129,0, +218,0,84,254,235,250,25,249,234,249,60,252,51,254,200,0,185,5,212,9,93,8,190,2,154,253,17,250,249,247,252,248, +7,253,26,1,147,3,97,5,71,7,171,8,51,8,88,5,154,1,235,254,180,253,18,254,255,255,26,1,156,254,238,249, +254,246,69,247,154,249,114,252,79,254,166,254,121,254,116,254,64,254,87,254,105,255,113,0,84,0,12,0,180,0,61,1, +41,0,214,253,175,251,64,250,141,249,106,250,170,253,43,2,138,5,189,6,116,6,84,5,106,3,225,0,79,254,151,252, +113,252,220,253,62,0,197,2,43,4,16,3,114,255,30,251,11,248,177,246,139,246,253,247,6,252,56,1,228,3,75,3, +242,2,108,4,197,4,148,2,232,0,178,1,183,2,58,2,209,1,220,2,204,3,57,3,80,3,28,7,247,12,87,15, +205,11,124,5,15,0,73,252,47,250,133,250,27,253,10,0,72,1,40,0,159,253,76,251,206,249,89,248,72,246,233,244, +253,246,144,253,140,5,49,10,18,10,187,7,145,5,174,3,169,1,253,255,132,255,174,0,234,2,169,4,242,4,211,4, +166,5,57,6,70,4,160,0,143,254,231,254,81,255,176,254,106,254,220,254,128,254,66,253,232,252,172,253,207,253,216,252, +2,252,131,251,115,250,43,249,252,248,6,250,155,251,221,253,12,1,73,4,128,6,65,7,41,6,118,3,76,1,166,1, +43,3,42,3,36,2,150,2,244,3,61,3,51,0,127,253,241,251,42,250,189,248,34,250,32,254,62,1,97,1,206,255, +71,254,223,252,78,251,85,250,252,250,43,253,119,255,80,0,158,255,175,254,34,254,20,253,36,251,182,249,201,249,84,250, +92,250,225,250,203,252,188,254,38,255,235,254,223,255,230,1,145,3,116,4,42,5,187,5,142,5,137,4,47,3,250,1, +50,1,31,1,246,1,146,3,82,5,91,6,59,6,73,5,39,4,16,3,242,1,235,0,45,0,170,255,55,255,170,254, +177,253,50,252,214,250,127,250,31,251,24,252,131,253,193,255,16,2,20,3,192,2,29,2,113,1,62,0,233,254,150,254, +85,255,10,0,19,0,181,255,6,255,252,253,71,253,221,253,168,255,186,1,134,3,36,5,104,6,250,6,11,7,255,6, +158,6,103,5,128,3,152,1,14,0,226,254,23,254,155,253,35,253,161,252,130,252,10,253,250,253,16,255,36,0,171,0, +5,0,128,254,39,253,86,252,141,251,190,250,151,250,55,251,223,251,61,252,226,252,11,254,19,255,150,255,42,0,121,1, +92,3,43,5,106,6,244,6,229,6,97,6,82,5,188,3,72,2,180,1,166,1,58,1,204,0,161,1,121,3,106,4, +202,3,25,3,22,3,81,2,247,255,175,253,221,252,37,252,229,249,59,247,54,246,119,246,42,246,75,245,120,245,245,246, +80,248,220,248,149,249,54,251,5,253,34,254,232,254,98,0,188,2,237,4,239,5,225,5,146,5,51,5,79,4,3,3, +73,2,125,2,171,2,253,1,5,1,179,0,214,0,170,0,52,0,47,0,239,0,30,2,60,3,239,3,252,3,83,3, +247,1,255,255,14,254,59,253,195,253,95,254,237,253,37,253,107,253,172,254,234,255,61,1,92,3,122,5,204,5,64,4, +185,2,83,2,40,2,63,1,23,0,151,255,177,255,216,255,15,0,198,0,252,1,216,2,128,2,95,1,239,0,217,1, +247,2,251,2,59,2,171,1,232,0,20,255,11,253,150,252,129,253,183,253,98,252,244,250,148,250,180,250,188,250,84,251, +252,252,215,254,218,255,59,0,227,0,36,2,121,3,51,4,11,4,86,3,152,2,218,1,197,0,135,255,223,254,234,254, +219,254,102,254,94,254,69,255,72,0,139,0,125,0,235,0,142,1,136,1,193,0,207,255,255,254,26,254,7,253,15,252, +151,251,198,251,79,252,185,252,6,253,165,253,127,254,189,254,27,254,150,253,4,254,201,254,3,255,39,255,25,0,96,1, +216,1,168,1,7,2,47,3,26,4,72,4,97,4,190,4,155,4,84,3,145,1,127,0,98,0,121,0,46,0,181,255, +111,255,38,255,108,254,136,253,79,253,231,253,112,254,107,254,151,254,181,255,26,1,146,1,37,1,224,0,17,1,252,0, +86,0,204,255,206,255,208,255,96,255,28,255,223,255,96,1,114,2,133,2,68,2,140,2,76,3,213,3,254,3,65,4, +198,4,8,5,180,4,72,4,57,4,4,4,227,2,55,1,82,0,200,0,173,1,220,1,73,1,144,0,214,255,218,254, +205,253,71,253,78,253,14,253,26,252,58,251,80,251,6,252,81,252,228,251,122,251,190,251,93,252,154,252,125,252,159,252, +239,252,212,252,139,252,12,253,132,254,238,255,101,0,32,0,254,255,72,0,105,0,16,0,215,255,34,0,98,0,64,0, +67,0,202,0,91,1,95,1,207,0,45,0,9,0,84,0,126,0,99,0,93,0,132,0,169,0,201,0,204,0,126,0, +247,255,85,255,113,254,145,253,99,253,217,253,58,254,82,254,130,254,246,254,118,255,158,255,78,255,8,255,46,255,59,255, +219,254,192,254,72,255,181,255,161,255,158,255,13,0,167,0,31,1,93,1,129,1,181,1,175,1,37,1,136,0,60,0, +213,255,51,255,254,254,61,255,52,255,203,254,132,254,108,254,77,254,27,254,223,253,214,253,57,254,186,254,27,255,172,255, +78,0,68,0,182,255,154,255,14,0,122,0,174,0,191,0,199,0,40,1,238,1,117,2,103,2,31,2,237,1,6,2, +147,2,50,3,119,3,176,3,10,4,22,4,239,3,16,4,224,3,140,2,201,0,236,255,40,0,159,0,123,0,231,255, +237,255,189,0,245,0,213,255,143,254,13,254,202,253,155,253,37,254,21,255,15,255,152,253,216,251,118,251,214,252,159,254, +128,255,164,255,171,255,125,255,23,255,226,254,195,254,77,254,182,253,130,253,190,253,17,254,23,254,230,253,50,254,6,255, +92,255,15,255,55,255,213,255,220,255,169,255,87,0,60,1,20,1,85,0,40,0,144,0,211,0,128,0,193,255,66,255, +65,255,7,255,63,254,205,253,66,254,15,255,191,255,128,0,97,1,49,2,208,2,19,3,241,2,167,2,83,2,245,1, +221,1,31,2,31,2,146,1,18,1,228,0,99,0,107,255,230,254,51,255,84,255,177,254,81,254,254,254,188,255,142,255, +67,255,190,255,68,0,254,255,122,255,125,255,233,255,47,0,208,255,222,254,110,254,43,255,246,255,184,255,84,255,210,255, +98,0,15,0,119,255,100,255,158,255,199,255,245,255,77,0,252,0,21,2,21,3,85,3,28,3,44,3,116,3,87,3, +0,3,36,3,148,3,105,3,161,2,60,2,137,2,187,2,104,2,22,2,34,2,72,2,77,2,63,2,6,2,120,1, +205,0,71,0,194,255,68,255,36,255,35,255,165,254,246,253,225,253,54,254,54,254,16,254,112,254,19,255,67,255,48,255, +114,255,227,255,24,0,43,0,72,0,70,0,250,255,92,255,178,254,152,254,39,255,142,255,38,255,78,254,220,253,38,254, +163,254,141,254,207,253,233,252,62,252,10,252,108,252,44,253,231,253,32,254,173,253,146,253,185,254,224,255,172,255,90,255, +61,0,78,1,154,1,156,1,138,1,69,1,37,1,44,1,33,1,53,1,120,1,178,1,215,1,194,1,119,1,88,1, +59,1,203,0,177,0,80,1,199,1,156,1,65,1,251,0,241,0,22,1,231,0,167,0,25,1,120,1,210,0,28,0, +40,0,6,0,69,255,172,254,128,254,91,254,38,254,11,254,54,254,160,254,218,254,137,254,252,253,220,253,75,254,159,254, +112,254,118,254,31,255,110,255,196,254,30,254,94,254,226,254,169,254,230,253,231,253,57,255,150,0,216,0,201,0,150,1, +216,2,75,3,210,2,172,2,75,3,77,3,62,2,219,1,183,2,15,3,63,2,111,1,23,1,252,0,238,0,134,0, +4,0,40,0,127,0,96,0,87,0,124,0,24,0,124,255,53,255,24,255,104,255,70,0,177,0,93,0,64,0,123,0, +82,0,166,255,16,255,67,255,208,255,87,255,79,254,141,254,57,255,71,254,250,252,91,253,45,254,201,253,252,252,231,252, +122,253,28,254,49,254,235,253,30,254,162,254,178,254,143,254,193,254,27,255,113,255,203,255,246,255,20,0,147,0,34,1, +24,1,208,0,3,1,61,1,180,0,54,0,246,0,253,1,184,1,224,0,237,0,81,1,233,0,63,0,105,0,31,1, +51,1,112,0,11,0,192,0,135,1,89,1,188,0,121,0,105,0,38,0,183,255,113,255,159,255,9,0,73,0,133,0, +236,0,32,1,228,0,123,0,23,0,207,255,196,255,224,255,216,255,149,255,89,255,77,255,7,255,83,254,19,254,223,254, +138,255,19,255,124,254,223,254,142,255,122,255,230,254,212,254,155,255,116,0,191,0,253,0,116,1,85,1,129,0,27,0, +107,0,126,0,246,255,74,255,189,254,114,254,125,254,154,254,195,254,83,255,240,255,178,255,240,254,246,254,186,255,0,0, +196,255,53,0,108,1,46,2,5,2,207,1,30,2,74,2,169,1,213,0,205,0,81,1,130,1,139,1,238,1,55,2, +7,2,253,1,93,2,137,2,70,2,206,1,38,1,134,0,65,0,3,0,105,255,199,254,118,254,100,254,87,254,245,253, +48,253,166,252,200,252,36,253,59,253,41,253,99,253,42,254,254,254,13,255,145,254,139,254,239,254,206,254,58,254,78,254, +109,255,156,0,218,0,111,0,73,0,119,0,73,0,164,255,47,255,108,255,237,255,217,255,114,255,4,0,113,1,10,2, +107,1,225,0,21,1,137,1,156,1,26,1,176,0,14,1,63,1,127,0,107,0,255,1,28,3,50,2,225,0,228,0, +148,1,132,1,147,0,225,255,247,255,188,255,151,254,220,253,95,254,229,254,123,254,229,253,12,254,205,254,113,255,155,255, +177,255,51,0,239,0,72,1,252,0,133,0,156,0,225,0,63,0,62,255,94,255,16,0,195,255,236,254,203,254,60,255, +204,255,70,0,56,0,204,255,173,255,139,255,239,254,145,254,252,254,131,255,160,255,149,255,195,255,40,0,108,0,144,0, +19,1,218,1,51,2,65,2,138,2,180,2,97,2,12,2,33,2,105,2,90,2,179,1,2,1,217,0,170,0,244,255, +108,255,115,255,105,255,31,255,212,254,149,254,189,254,65,255,27,255,64,254,12,254,124,254,69,254,163,253,213,253,189,254, +84,255,96,255,112,255,181,255,168,255,24,255,176,254,188,254,165,254,78,254,80,254,187,254,24,255,56,255,56,255,98,255, +202,255,239,255,165,255,122,255,129,255,88,255,76,255,172,255,13,0,80,0,191,0,4,1,200,0,122,0,125,0,181,0, +241,0,240,0,159,0,110,0,150,0,187,0,178,0,149,0,98,0,51,0,61,0,114,0,172,0,252,0,92,1,143,1, +114,1,67,1,100,1,163,1,84,1,144,0,44,0,53,0,6,0,194,255,17,0,209,0,47,1,190,0,1,0,227,255, +92,0,72,0,72,255,130,254,174,254,252,254,182,254,128,254,23,255,205,255,110,255,42,254,67,253,16,253,200,252,70,252, +83,252,13,253,148,253,155,253,245,253,6,255,219,255,167,255,25,255,57,255,225,255,76,0,146,0,85,1,93,2,195,2, +109,2,54,2,125,2,182,2,137,2,66,2,255,1,124,1,226,0,201,0,87,1,5,2,88,2,68,2,3,2,189,1, +104,1,231,0,92,0,27,0,85,0,219,0,61,1,45,1,226,0,222,0,42,1,79,1,55,1,86,1,169,1,141,1, +220,0,55,0,16,0,40,0,27,0,223,255,160,255,101,255,253,254,109,254,52,254,148,254,237,254,150,254,206,253,42,253, +199,252,164,252,239,252,124,253,211,253,216,253,196,253,206,253,58,254,3,255,113,255,2,255,100,254,131,254,41,255,151,255, +184,255,1,0,183,0,174,1,95,2,108,2,33,2,233,1,132,1,174,0,236,255,198,255,8,0,103,0,230,0,74,1, +51,1,197,0,97,0,62,0,154,0,131,1,73,2,43,2,130,1,72,1,191,1,64,2,35,2,154,1,111,1,179,1, +97,1,28,0,21,255,3,255,248,254,107,254,77,254,248,254,83,255,241,254,173,254,246,254,98,255,175,255,192,255,67,255, +112,254,248,253,235,253,187,253,65,253,200,252,133,252,164,252,64,253,42,254,34,255,30,0,19,1,217,1,91,2,120,2, +250,1,4,1,15,0,96,255,23,255,86,255,222,255,53,0,112,0,210,0,252,0,142,0,232,255,106,255,30,255,105,255, +149,0,202,1,55,2,111,2,247,2,27,3,134,2,42,2,110,2,153,2,108,2,99,2,88,2,233,1,157,1,18,2, +177,2,127,2,135,1,161,0,78,0,94,0,137,0,204,0,254,0,155,0,144,255,131,254,223,253,84,253,196,252,146,252, +165,252,108,252,216,251,74,251,237,250,246,250,177,251,183,252,88,253,209,253,203,254,239,255,76,0,119,255,151,253,93,251, +75,250,102,251,152,253,220,254,207,254,148,254,228,254,162,255,164,0,173,1,41,2,210,1,75,1,135,1,166,2,193,3, +247,3,129,3,93,3,254,3,194,4,204,4,31,4,147,3,167,3,189,3,28,3,50,2,218,1,242,1,242,1,57,2, +18,3,93,3,18,2,61,0,129,255,158,255,53,255,57,254,205,253,80,254,1,255,71,255,56,255,254,254,136,254,242,253, +173,253,233,253,69,254,104,254,178,254,201,255,126,1,155,2,40,2,132,0,245,254,77,254,100,254,156,254,130,254,227,253, +255,252,158,252,66,253,96,254,15,255,34,255,0,255,224,254,189,254,178,254,214,254,254,254,247,254,244,254,106,255,93,0, +68,1,226,1,137,2,69,3,134,3,12,3,72,2,164,1,44,1,230,0,201,0,183,0,193,0,16,1,129,1,250,1, +183,2,182,3,85,4,37,4,117,3,176,2,178,1,58,0,158,254,127,253,254,252,221,252,62,253,64,254,27,255,212,254, +229,253,164,253,40,254,73,254,175,253,51,253,58,253,47,253,223,252,248,252,200,253,144,254,178,254,175,254,49,255,206,255, +163,255,152,254,134,253,71,253,221,253,129,254,159,254,123,254,104,254,16,254,87,253,13,253,234,253,117,255,150,0,195,0, +83,0,23,0,126,0,58,1,239,1,165,2,67,3,122,3,80,3,13,3,211,2,184,2,156,2,26,2,117,1,139,1, +25,2,223,1,241,0,159,0,29,1,177,1,115,2,164,3,140,4,133,4,195,3,143,2,23,1,216,255,72,255,120,255, +10,0,44,0,147,255,57,255,176,255,224,255,43,255,163,254,168,254,33,254,247,252,118,252,238,252,149,253,252,253,253,253, +169,253,160,253,246,253,216,253,82,253,87,253,181,253,140,253,96,253,26,254,43,255,143,255,74,255,22,255,149,255,195,0, +209,1,78,2,185,2,250,2,77,2,101,1,191,1,180,2,119,2,50,1,22,0,33,255,73,254,112,254,208,255,180,1, +195,3,116,5,204,5,249,4,213,3,196,1,7,254,63,250,161,248,96,249,157,251,174,254,145,1,179,3,193,5,158,7, +63,7,82,3,109,253,147,248,201,246,23,248,14,251,22,254,213,255,81,255,198,253,187,254,252,2,69,6,73,5,52,2, +60,0,123,255,39,255,244,254,229,253,199,251,121,250,245,250,234,251,178,252,30,254,44,0,12,2,136,3,117,4,60,4, +166,2,32,0,205,253,63,253,98,254,198,254,27,253,117,251,42,252,220,254,177,1,130,3,130,4,210,5,220,7,95,9, +10,9,232,6,128,3,109,255,21,252,144,250,126,250,31,251,50,252,103,253,233,254,151,1,210,4,6,6,67,4,196,1, +130,0,220,255,161,254,29,253,64,252,90,252,108,253,97,255,109,1,110,2,114,2,102,2,57,2,4,1,245,254,36,253, +251,251,125,251,52,252,22,254,197,255,51,0,239,255,33,0,41,1,54,2,251,1,33,0,224,253,164,252,192,252,138,253, +39,254,100,254,250,254,94,0,215,1,158,2,203,2,145,2,52,2,125,2,119,3,224,3,45,3,38,2,22,1,229,255, +94,255,206,255,229,255,243,254,92,254,124,255,221,1,206,3,251,3,223,2,65,2,137,2,81,2,31,1,230,255,214,254, +143,253,193,252,40,253,49,254,23,255,189,255,37,0,136,0,48,1,140,1,233,0,193,255,227,254,56,254,111,253,134,252, +147,251,52,251,76,252,114,254,34,0,182,0,146,0,3,0,63,255,147,254,221,253,255,252,133,252,216,252,161,253,154,254, +193,255,206,0,135,1,53,2,254,2,122,3,36,3,205,1,237,255,150,254,114,254,237,254,35,255,3,255,242,254,49,255, +2,0,116,1,228,2,127,3,44,3,101,2,115,1,123,0,242,255,71,0,22,1,120,1,76,1,49,1,61,1,198,0, +199,255,40,255,59,255,63,255,204,254,121,254,161,254,178,254,91,254,81,254,38,255,45,0,107,0,254,255,155,255,69,255, +140,254,173,253,75,253,94,253,106,253,141,253,96,254,220,255,64,1,18,2,107,2,71,2,104,1,4,0,225,254,134,254, +215,254,132,255,76,0,215,0,227,0,163,0,140,0,188,0,245,0,50,1,166,1,77,2,218,2,36,3,31,3,150,2, +113,1,63,0,206,255,30,0,108,0,79,0,62,0,183,0,125,1,19,2,110,2,196,2,251,2,204,2,62,2,161,1, +2,1,11,0,146,254,7,253,35,252,49,252,210,252,135,253,56,254,1,255,175,255,204,255,63,255,101,254,133,253,132,252, +109,251,207,250,53,251,112,252,206,253,213,254,122,255,212,255,248,255,10,0,26,0,8,0,180,255,69,255,225,254,111,254, +213,253,83,253,69,253,190,253,154,254,216,255,109,1,220,2,137,3,97,3,218,2,71,2,151,1,193,0,9,0,179,255, +192,255,21,0,166,0,94,1,23,2,200,2,122,3,8,4,53,4,14,4,227,3,194,3,81,3,97,2,79,1,124,0, +180,255,149,254,102,253,242,252,122,253,102,254,51,255,33,0,114,1,138,2,133,2,130,1,121,0,204,255,227,254,113,253, +46,252,212,251,17,252,57,252,120,252,135,253,92,255,14,1,8,2,140,2,223,2,156,2,105,1,181,255,73,254,100,253, +209,252,157,252,20,253,30,254,48,255,251,255,172,0,83,1,160,1,104,1,3,1,188,0,88,0,152,255,228,254,216,254, +86,255,190,255,249,255,142,0,154,1,107,2,147,2,151,2,245,2,38,3,90,2,209,0,148,255,4,255,165,254,89,254, +186,254,244,255,33,1,101,1,12,1,212,0,200,0,129,0,33,0,38,0,120,0,125,0,20,0,180,255,146,255,93,255, +252,254,204,254,231,254,229,254,165,254,157,254,8,255,98,255,66,255,10,255,49,255,93,255,1,255,102,254,50,254,62,254, +217,253,27,253,230,252,139,253,90,254,212,254,79,255,6,0,102,0,245,255,58,255,253,254,37,255,32,255,249,254,44,255, +183,255,31,0,100,0,2,1,254,1,177,2,193,2,145,2,126,2,87,2,243,1,171,1,199,1,234,1,152,1,255,0, +171,0,180,0,204,0,228,0,48,1,161,1,214,1,178,1,132,1,129,1,120,1,47,1,186,0,71,0,207,255,86,255, +23,255,61,255,147,255,184,255,153,255,104,255,73,255,59,255,79,255,146,255,224,255,230,255,127,255,204,254,14,254,118,253, +41,253,69,253,193,253,108,254,14,255,134,255,207,255,237,255,233,255,193,255,112,255,15,255,208,254,222,254,59,255,205,255, +116,0,249,0,31,1,226,0,142,0,115,0,140,0,144,0,93,0,17,0,204,255,158,255,156,255,228,255,108,0,7,1, +146,1,249,1,6,2,137,1,170,0,225,255,114,255,53,255,5,255,24,255,154,255,73,0,197,0,21,1,114,1,180,1, +109,1,166,0,247,255,205,255,239,255,241,255,189,255,125,255,58,255,241,254,193,254,191,254,188,254,133,254,55,254,20,254, +17,254,245,253,202,253,232,253,110,254,16,255,132,255,209,255,9,0,12,0,195,255,115,255,113,255,166,255,184,255,154,255, +163,255,1,0,114,0,168,0,180,0,198,0,199,0,141,0,75,0,109,0,240,0,88,1,96,1,103,1,197,1,33,2, +216,1,3,1,116,0,168,0,63,1,167,1,231,1,80,2,192,2,200,2,90,2,233,1,197,1,176,1,90,1,233,0, +181,0,192,0,180,0,111,0,40,0,24,0,35,0,20,0,238,255,211,255,170,255,65,255,189,254,108,254,59,254,211,253, +76,253,50,253,169,253,35,254,60,254,55,254,88,254,90,254,2,254,169,253,192,253,36,254,108,254,140,254,197,254,31,255, +84,255,77,255,87,255,186,255,67,0,140,0,152,0,205,0,40,1,32,1,140,0,17,0,51,0,148,0,163,0,148,0, +239,0,165,1,47,2,78,2,46,2,6,2,245,1,245,1,219,1,158,1,137,1,194,1,224,1,140,1,26,1,245,0, +211,0,68,0,161,255,128,255,175,255,144,255,50,255,31,255,93,255,95,255,243,254,127,254,103,254,142,254,163,254,157,254, +196,254,46,255,124,255,109,255,85,255,149,255,214,255,141,255,255,254,211,254,230,254,153,254,18,254,16,254,164,254,56,255, +162,255,43,0,159,0,142,0,57,0,38,0,46,0,217,255,106,255,125,255,252,255,86,0,121,0,194,0,65,1,156,1, +167,1,140,1,116,1,90,1,35,1,227,0,234,0,84,1,187,1,182,1,133,1,164,1,216,1,132,1,205,0,123,0, +187,0,230,0,171,0,109,0,99,0,51,0,190,255,96,255,58,255,10,255,203,254,177,254,172,254,183,254,21,255,157,255, +172,255,81,255,81,255,180,255,158,255,238,254,114,254,113,254,90,254,247,253,214,253,80,254,247,254,59,255,53,255,101,255, +203,255,219,255,110,255,23,255,57,255,128,255,149,255,172,255,23,0,175,0,248,0,183,0,74,0,64,0,161,0,13,1, +80,1,110,1,85,1,30,1,66,1,215,1,23,2,104,1,103,0,28,0,170,0,89,1,153,1,107,1,23,1,253,0, +82,1,198,1,204,1,80,1,170,0,12,0,150,255,146,255,232,255,23,0,54,0,192,0,48,1,142,0,99,255,20,255, +136,255,131,255,248,254,249,254,170,255,21,0,170,255,227,254,115,254,93,254,64,254,82,254,17,255,217,255,106,255,27,254, +152,253,69,254,251,254,41,255,59,255,101,255,149,255,200,255,180,255,38,255,155,254,128,254,152,254,244,254,2,0,58,1, +135,1,11,1,186,0,169,0,70,0,192,255,238,255,247,0,230,1,228,1,53,1,162,0,73,0,250,255,37,0,249,0, +127,1,13,1,93,0,247,255,129,255,58,255,222,255,247,0,102,1,254,0,60,0,140,255,88,255,148,255,229,255,218,0, +163,2,148,2,4,254,184,247,204,245,120,250,132,2,92,9,75,11,109,6,38,253,4,246,99,246,63,253,9,4,251,4, +112,0,83,251,77,249,211,250,20,255,194,3,58,5,0,3,199,0,230,255,218,253,125,251,222,252,193,255,51,253,218,246, +213,246,203,255,208,8,169,11,149,11,46,11,208,6,120,253,234,245,217,245,190,250,133,255,217,2,91,4,129,2,243,254, +139,254,183,1,50,3,219,0,21,255,9,1,244,3,78,4,123,2,79,0,241,253,63,251,0,250,81,252,61,1,35,5, +90,6,160,6,147,6,199,3,43,254,121,250,128,251,181,253,79,253,56,252,196,253,187,0,204,1,235,0,99,0,170,0, +161,0,149,0,172,1,2,3,107,2,204,255,199,252,214,249,24,247,221,246,53,251,155,1,133,5,121,6,45,7,143,7, +189,4,189,254,123,249,152,247,66,248,155,250,7,255,58,4,244,6,7,6,138,3,244,0,164,253,88,250,47,250,46,254, +21,3,204,5,212,6,56,7,122,5,126,0,19,251,17,249,154,250,10,253,64,255,217,1,140,4,72,6,253,6,187,6, +95,4,190,255,172,251,24,251,42,253,225,254,92,255,198,255,59,0,211,255,56,255,27,0,57,2,132,3,36,3,229,1, +251,255,207,252,109,249,148,248,63,251,245,254,236,0,46,1,31,1,235,0,88,0,25,0,84,0,194,255,229,253,74,252, +111,252,17,254,13,0,136,1,245,1,17,1,71,255,178,253,73,253,222,253,156,254,164,255,153,1,129,3,110,3,129,1, +164,255,145,254,144,253,162,252,166,252,225,253,245,255,133,2,9,5,123,6,208,5,241,2,76,255,213,252,76,252,34,253, +216,254,21,1,226,2,73,3,114,2,44,1,239,255,2,255,200,254,52,255,156,255,138,255,62,255,48,255,126,255,249,255, +52,0,175,255,121,254,106,253,48,253,187,253,223,254,112,0,170,1,220,1,126,1,112,1,173,1,184,1,112,1,184,0, +98,255,211,253,239,252,36,253,4,254,209,254,101,255,70,0,136,1,27,2,77,1,193,255,65,254,248,252,25,252,2,252, +227,252,197,254,101,1,210,3,32,5,24,5,193,3,77,1,222,254,213,253,65,254,63,255,113,0,255,1,153,3,78,4, +101,3,70,1,45,255,218,253,77,253,196,253,144,255,227,1,77,3,45,3,194,1,169,255,188,253,129,252,239,251,65,252, +209,253,221,255,36,1,151,1,209,1,187,1,14,1,247,255,166,254,113,253,12,253,141,253,50,254,204,254,254,255,180,1, +226,2,203,2,143,1,207,255,93,254,221,253,103,254,120,255,46,0,244,255,68,255,16,255,117,255,213,255,253,255,50,0, +101,0,106,0,116,0,166,0,168,0,76,0,17,0,114,0,42,1,176,1,230,1,183,1,228,0,194,255,77,255,224,255, +242,0,56,2,172,3,172,4,103,4,223,2,157,0,30,254,245,251,189,250,209,250,74,252,192,254,59,1,6,3,25,4, +51,4,199,2,38,0,124,253,199,251,155,251,250,252,223,254,20,0,131,0,153,0,87,0,227,255,181,255,175,255,96,255, +24,255,90,255,225,255,19,0,195,255,37,255,174,254,182,254,235,254,221,254,237,254,164,255,160,0,27,1,243,0,131,0, +8,0,168,255,154,255,1,0,178,0,41,1,28,1,215,0,186,0,185,0,213,0,70,1,223,1,52,2,100,2,186,2, +208,2,14,2,183,0,162,255,59,255,69,255,89,255,115,255,221,255,161,0,95,1,189,1,152,1,223,0,205,255,254,254, +225,254,60,255,136,255,107,255,233,254,100,254,72,254,137,254,198,254,213,254,212,254,221,254,255,254,51,255,66,255,242,254, +98,254,226,253,136,253,69,253,58,253,163,253,134,254,163,255,167,0,62,1,54,1,201,0,122,0,114,0,98,0,24,0, +207,255,200,255,10,0,134,0,27,1,137,1,156,1,83,1,239,0,220,0,47,1,100,1,23,1,165,0,115,0,81,0, +29,0,34,0,104,0,148,0,170,0,232,0,35,1,19,1,215,0,162,0,111,0,87,0,112,0,121,0,61,0,241,255, +202,255,177,255,140,255,106,255,83,255,81,255,101,255,122,255,156,255,248,255,114,0,156,0,84,0,214,255,90,255,254,254, +202,254,157,254,124,254,217,254,204,255,146,0,142,0,25,0,167,255,49,255,200,254,198,254,44,255,190,255,109,0,27,1, +106,1,61,1,207,0,64,0,180,255,127,255,174,255,202,255,149,255,91,255,87,255,99,255,115,255,191,255,75,0,168,0, +138,0,49,0,253,255,231,255,216,255,8,0,128,0,204,0,163,0,85,0,56,0,67,0,88,0,111,0,135,0,194,0, +58,1,148,1,87,1,164,0,2,0,155,255,59,255,219,254,167,254,153,254,128,254,109,254,175,254,67,255,192,255,240,255, +249,255,220,255,119,255,1,255,211,254,217,254,224,254,5,255,90,255,170,255,242,255,92,0,180,0,157,0,50,0,215,255, +175,255,160,255,182,255,30,0,197,0,71,1,80,1,239,0,106,0,237,255,147,255,126,255,189,255,57,0,190,0,20,1, +54,1,76,1,81,1,41,1,6,1,21,1,2,1,156,0,96,0,151,0,203,0,185,0,187,0,237,0,3,1,240,0, +202,0,126,0,14,0,171,255,92,255,26,255,245,254,235,254,246,254,32,255,72,255,63,255,58,255,99,255,97,255,19,255, +243,254,42,255,60,255,3,255,223,254,254,254,71,255,155,255,201,255,207,255,241,255,36,0,3,0,159,255,104,255,83,255, +36,255,20,255,99,255,226,255,98,0,223,0,50,1,61,1,30,1,222,0,98,0,217,255,174,255,236,255,53,0,89,0, +146,0,251,0,65,1,50,1,30,1,44,1,241,0,85,0,253,255,49,0,104,0,80,0,64,0,107,0,162,0,192,0, +192,0,153,0,101,0,63,0,20,0,212,255,165,255,176,255,242,255,57,0,78,0,40,0,221,255,102,255,214,254,145,254, +187,254,252,254,42,255,139,255,15,0,75,0,46,0,245,255,196,255,195,255,8,0,65,0,56,0,60,0,110,0,98,0, +248,255,160,255,158,255,180,255,170,255,147,255,157,255,205,255,249,255,1,0,252,255,247,255,228,255,205,255,188,255,157,255, +137,255,182,255,248,255,26,0,94,0,206,0,214,0,80,0,233,255,235,255,244,255,229,255,227,255,219,255,203,255,0,0, +110,0,173,0,167,0,145,0,122,0,80,0,11,0,172,255,72,255,254,254,226,254,23,255,176,255,70,0,100,0,52,0, +11,0,191,255,52,255,232,254,47,255,179,255,14,0,66,0,91,0,63,0,216,255,71,255,235,254,19,255,140,255,224,255, +0,0,44,0,92,0,89,0,47,0,27,0,36,0,34,0,18,0,21,0,46,0,61,0,70,0,88,0,87,0,47,0, +18,0,39,0,80,0,139,0,233,0,38,1,244,0,146,0,111,0,123,0,121,0,112,0,108,0,92,0,58,0,9,0, +204,255,171,255,201,255,5,0,48,0,71,0,61,0,0,0,174,255,112,255,77,255,78,255,122,255,159,255,150,255,139,255, +170,255,216,255,228,255,182,255,86,255,4,255,241,254,246,254,238,254,4,255,64,255,105,255,127,255,186,255,248,255,237,255, +174,255,129,255,111,255,122,255,189,255,36,0,106,0,118,0,103,0,77,0,24,0,218,255,210,255,21,0,104,0,147,0, +168,0,181,0,164,0,135,0,143,0,157,0,120,0,72,0,89,0,140,0,157,0,150,0,143,0,117,0,66,0,11,0, +216,255,185,255,208,255,7,0,21,0,245,255,231,255,251,255,5,0,250,255,255,255,30,0,54,0,48,0,14,0,206,255, +121,255,53,255,52,255,113,255,171,255,189,255,202,255,239,255,21,0,27,0,2,0,205,255,129,255,75,255,94,255,159,255, +208,255,229,255,240,255,237,255,204,255,154,255,121,255,142,255,237,255,103,0,165,0,150,0,122,0,95,0,29,0,210,255, +200,255,239,255,251,255,251,255,49,0,136,0,185,0,190,0,196,0,215,0,232,0,229,0,189,0,123,0,67,0,40,0, +29,0,33,0,59,0,95,0,128,0,145,0,119,0,52,0,253,255,238,255,223,255,186,255,148,255,107,255,54,255,32,255, +74,255,145,255,206,255,254,255,10,0,221,255,159,255,131,255,134,255,152,255,176,255,188,255,180,255,165,255,125,255,34,255, +184,254,127,254,137,254,207,254,83,255,247,255,133,0,218,0,221,0,130,0,247,255,147,255,111,255,110,255,128,255,170,255, +239,255,84,0,203,0,29,1,45,1,22,1,255,0,238,0,220,0,198,0,180,0,168,0,159,0,153,0,164,0,181,0, +162,0,116,0,103,0,141,0,192,0,224,0,225,0,173,0,88,0,20,0,242,255,234,255,252,255,17,0,242,255,163,255, +107,255,113,255,141,255,149,255,151,255,189,255,9,0,73,0,80,0,47,0,7,0,201,255,107,255,19,255,233,254,236,254, +20,255,94,255,182,255,236,255,205,255,88,255,210,254,149,254,190,254,42,255,161,255,250,255,43,0,60,0,51,0,9,0, +195,255,133,255,129,255,210,255,83,0,190,0,251,0,11,1,202,0,63,0,221,255,241,255,55,0,101,0,141,0,176,0, +153,0,88,0,49,0,41,0,29,0,29,0,74,0,161,0,246,0,14,1,226,0,187,0,194,0,179,0,97,0,11,0, +234,255,243,255,20,0,54,0,36,0,232,255,191,255,171,255,131,255,92,255,100,255,128,255,145,255,175,255,224,255,241,255, +192,255,114,255,77,255,114,255,179,255,202,255,177,255,155,255,161,255,177,255,188,255,198,255,207,255,208,255,199,255,196,255, +218,255,5,0,28,0,3,0,215,255,211,255,3,0,60,0,106,0,166,0,244,0,21,1,227,0,150,0,109,0,98,0, +85,0,69,0,66,0,81,0,107,0,124,0,134,0,160,0,185,0,144,0,42,0,221,255,206,255,212,255,223,255,7,0, +64,0,97,0,100,0,80,0,40,0,252,255,227,255,225,255,237,255,251,255,240,255,180,255,73,255,220,254,168,254,175,254, +202,254,246,254,71,255,144,255,142,255,96,255,80,255,77,255,32,255,225,254,210,254,250,254,45,255,78,255,94,255,117,255, +161,255,213,255,249,255,5,0,8,0,31,0,81,0,121,0,119,0,115,0,146,0,168,0,141,0,104,0,91,0,77,0, +61,0,86,0,163,0,246,0,35,1,35,1,16,1,5,1,5,1,255,0,240,0,223,0,193,0,141,0,93,0,73,0, +79,0,92,0,97,0,87,0,77,0,93,0,128,0,137,0,93,0,25,0,224,255,169,255,106,255,80,255,107,255,121,255, +83,255,45,255,51,255,65,255,53,255,37,255,46,255,73,255,94,255,97,255,104,255,130,255,127,255,59,255,254,254,24,255, +89,255,119,255,139,255,184,255,216,255,214,255,213,255,233,255,250,255,250,255,240,255,249,255,42,0,99,0,106,0,80,0, +91,0,134,0,151,0,129,0,96,0,73,0,74,0,101,0,131,0,149,0,161,0,162,0,140,0,112,0,86,0,51,0, +22,0,38,0,93,0,136,0,133,0,95,0,46,0,254,255,217,255,215,255,0,0,35,0,21,0,240,255,222,255,211,255, +178,255,137,255,113,255,109,255,122,255,148,255,178,255,207,255,218,255,196,255,162,255,144,255,137,255,127,255,127,255,140,255, +147,255,154,255,181,255,220,255,254,255,18,0,10,0,238,255,227,255,234,255,225,255,220,255,10,0,73,0,93,0,82,0, +95,0,135,0,169,0,191,0,203,0,195,0,159,0,122,0,133,0,205,0,20,1,24,1,220,0,150,0,106,0,92,0, +86,0,66,0,50,0,50,0,36,0,2,0,248,255,10,0,3,0,223,255,211,255,221,255,207,255,161,255,115,255,93,255, +103,255,125,255,127,255,114,255,106,255,96,255,71,255,45,255,28,255,9,255,248,254,0,255,30,255,73,255,116,255,132,255, +118,255,107,255,107,255,96,255,90,255,127,255,193,255,247,255,29,0,59,0,67,0,50,0,18,0,244,255,236,255,6,0, +47,0,76,0,101,0,130,0,147,0,139,0,118,0,106,0,108,0,122,0,151,0,189,0,208,0,188,0,151,0,124,0, +102,0,88,0,106,0,147,0,166,0,155,0,146,0,150,0,145,0,115,0,68,0,32,0,20,0,0,0,203,255,157,255, +161,255,178,255,168,255,154,255,150,255,130,255,97,255,85,255,97,255,103,255,92,255,64,255,39,255,50,255,85,255,96,255, +78,255,73,255,91,255,110,255,117,255,125,255,142,255,169,255,194,255,215,255,248,255,35,0,53,0,34,0,13,0,14,0, +16,0,11,0,22,0,61,0,109,0,145,0,174,0,203,0,221,0,206,0,175,0,163,0,170,0,178,0,187,0,206,0, +222,0,223,0,217,0,210,0,197,0,172,0,139,0,107,0,92,0,88,0,78,0,65,0,57,0,36,0,249,255,212,255, +198,255,195,255,193,255,197,255,199,255,200,255,199,255,178,255,137,255,117,255,129,255,134,255,118,255,107,255,99,255,71,255, +40,255,49,255,94,255,129,255,126,255,110,255,119,255,148,255,161,255,145,255,130,255,144,255,183,255,222,255,248,255,4,0, +4,0,245,255,234,255,255,255,46,0,76,0,79,0,88,0,107,0,113,0,114,0,130,0,151,0,166,0,185,0,201,0, +200,0,194,0,194,0,189,0,183,0,187,0,193,0,183,0,162,0,139,0,115,0,95,0,82,0,69,0,54,0,36,0, +15,0,2,0,252,255,229,255,186,255,165,255,176,255,173,255,145,255,128,255,127,255,115,255,99,255,105,255,123,255,121,255, +100,255,83,255,85,255,100,255,108,255,108,255,116,255,136,255,146,255,141,255,138,255,157,255,186,255,200,255,197,255,203,255, +225,255,241,255,248,255,6,0,22,0,26,0,31,0,51,0,72,0,82,0,84,0,70,0,46,0,48,0,78,0,101,0, +111,0,129,0,139,0,126,0,113,0,122,0,130,0,125,0,118,0,106,0,86,0,71,0,72,0,85,0,95,0,90,0, +73,0,56,0,42,0,20,0,3,0,7,0,10,0,238,255,195,255,170,255,161,255,150,255,138,255,129,255,129,255,135,255, +138,255,136,255,133,255,126,255,109,255,90,255,79,255,74,255,73,255,78,255,95,255,123,255,151,255,155,255,137,255,131,255, +157,255,195,255,224,255,240,255,250,255,15,0,52,0,84,0,90,0,81,0,69,0,51,0,46,0,69,0,96,0,100,0, +101,0,116,0,127,0,128,0,135,0,141,0,138,0,142,0,152,0,141,0,107,0,78,0,75,0,99,0,132,0,154,0, +157,0,146,0,118,0,79,0,53,0,54,0,56,0,42,0,23,0,14,0,4,0,240,255,216,255,199,255,189,255,176,255, +163,255,158,255,158,255,157,255,154,255,150,255,136,255,122,255,123,255,131,255,128,255,129,255,143,255,150,255,152,255,171,255, +204,255,225,255,231,255,225,255,206,255,187,255,185,255,198,255,217,255,243,255,11,0,16,0,6,0,252,255,247,255,253,255, +13,0,24,0,22,0,27,0,50,0,73,0,90,0,112,0,130,0,131,0,114,0,98,0,96,0,104,0,107,0,100,0, +98,0,104,0,92,0,57,0,28,0,15,0,2,0,245,255,243,255,246,255,238,255,217,255,197,255,183,255,175,255,171,255, +170,255,169,255,168,255,175,255,184,255,175,255,148,255,134,255,144,255,156,255,169,255,195,255,217,255,215,255,208,255,216,255, +217,255,206,255,205,255,212,255,212,255,211,255,218,255,219,255,216,255,229,255,4,0,36,0,57,0,59,0,49,0,50,0, +74,0,99,0,108,0,105,0,98,0,89,0,87,0,107,0,138,0,151,0,134,0,107,0,98,0,102,0,98,0,90,0, +93,0,101,0,98,0,88,0,74,0,52,0,28,0,9,0,242,255,210,255,187,255,188,255,209,255,235,255,255,255,252,255, +220,255,173,255,141,255,138,255,147,255,144,255,140,255,156,255,179,255,188,255,186,255,180,255,160,255,137,255,133,255,142,255, +149,255,168,255,205,255,231,255,229,255,215,255,203,255,195,255,204,255,231,255,0,0,12,0,12,0,6,0,8,0,33,0, +70,0,95,0,109,0,125,0,138,0,137,0,133,0,138,0,149,0,154,0,157,0,165,0,177,0,183,0,181,0,175,0, +160,0,133,0,111,0,96,0,78,0,60,0,57,0,60,0,51,0,36,0,29,0,22,0,7,0,239,255,214,255,194,255, +188,255,190,255,191,255,190,255,185,255,171,255,156,255,148,255,137,255,121,255,114,255,119,255,127,255,135,255,138,255,119,255, +90,255,89,255,116,255,133,255,127,255,115,255,117,255,132,255,154,255,179,255,204,255,222,255,224,255,220,255,227,255,243,255, +251,255,2,0,23,0,53,0,77,0,91,0,104,0,116,0,122,0,126,0,135,0,147,0,154,0,147,0,129,0,109,0, +99,0,103,0,118,0,132,0,137,0,138,0,134,0,117,0,84,0,43,0,7,0,249,255,12,0,39,0,46,0,34,0, +19,0,3,0,240,255,219,255,196,255,175,255,168,255,173,255,178,255,185,255,192,255,179,255,148,255,130,255,125,255,103,255, +69,255,61,255,79,255,85,255,76,255,81,255,108,255,132,255,137,255,137,255,144,255,158,255,177,255,204,255,228,255,236,255, +232,255,232,255,246,255,15,0,45,0,66,0,73,0,79,0,91,0,97,0,92,0,89,0,92,0,94,0,98,0,114,0, +139,0,157,0,160,0,150,0,135,0,117,0,98,0,80,0,72,0,71,0,69,0,67,0,65,0,55,0,34,0,12,0, +3,0,6,0,7,0,247,255,226,255,222,255,227,255,207,255,167,255,144,255,142,255,138,255,134,255,146,255,155,255,134,255, +106,255,99,255,101,255,95,255,90,255,102,255,124,255,140,255,142,255,136,255,133,255,144,255,167,255,183,255,190,255,209,255, +249,255,34,0,52,0,54,0,47,0,33,0,25,0,42,0,73,0,92,0,100,0,118,0,147,0,171,0,177,0,163,0, +138,0,118,0,112,0,118,0,135,0,155,0,162,0,152,0,137,0,125,0,114,0,106,0,107,0,107,0,92,0,69,0, +56,0,54,0,47,0,25,0,3,0,249,255,236,255,209,255,183,255,173,255,173,255,176,255,188,255,203,255,203,255,184,255, +163,255,142,255,118,255,88,255,60,255,42,255,43,255,62,255,83,255,89,255,87,255,91,255,104,255,119,255,138,255,169,255, +201,255,212,255,203,255,199,255,214,255,241,255,12,0,36,0,48,0,46,0,41,0,46,0,64,0,87,0,105,0,121,0, +138,0,149,0,147,0,136,0,129,0,121,0,106,0,94,0,92,0,95,0,101,0,113,0,128,0,132,0,126,0,120,0, +115,0,104,0,90,0,81,0,77,0,68,0,48,0,19,0,248,255,228,255,214,255,203,255,189,255,170,255,150,255,142,255, +151,255,166,255,168,255,151,255,130,255,122,255,133,255,155,255,175,255,185,255,184,255,176,255,165,255,152,255,148,255,165,255, +195,255,215,255,222,255,232,255,250,255,15,0,36,0,54,0,55,0,38,0,23,0,31,0,52,0,67,0,74,0,80,0, +84,0,80,0,81,0,93,0,106,0,112,0,116,0,122,0,121,0,111,0,109,0,118,0,124,0,121,0,113,0,105,0, +99,0,95,0,92,0,81,0,62,0,41,0,21,0,3,0,249,255,247,255,243,255,232,255,213,255,193,255,174,255,164,255, +167,255,172,255,171,255,165,255,163,255,162,255,159,255,158,255,160,255,163,255,166,255,171,255,173,255,175,255,187,255,203,255, +202,255,184,255,173,255,181,255,194,255,204,255,223,255,250,255,10,0,10,0,10,0,13,0,10,0,7,0,16,0,34,0, +47,0,55,0,63,0,66,0,66,0,74,0,93,0,111,0,116,0,112,0,106,0,97,0,86,0,79,0,81,0,88,0, +96,0,95,0,83,0,67,0,59,0,52,0,36,0,12,0,250,255,246,255,251,255,254,255,247,255,227,255,203,255,187,255, +183,255,187,255,191,255,188,255,175,255,158,255,148,255,146,255,148,255,159,255,178,255,193,255,192,255,186,255,187,255,191,255, +188,255,185,255,188,255,191,255,190,255,191,255,204,255,221,255,233,255,238,255,240,255,237,255,232,255,232,255,243,255,5,0, +24,0,41,0,49,0,45,0,38,0,40,0,49,0,60,0,73,0,91,0,107,0,112,0,108,0,102,0,96,0,83,0, +60,0,36,0,26,0,31,0,38,0,36,0,23,0,8,0,252,255,243,255,236,255,233,255,234,255,233,255,222,255,208,255, +200,255,204,255,209,255,206,255,197,255,188,255,180,255,169,255,161,255,169,255,185,255,196,255,199,255,196,255,189,255,177,255, +167,255,164,255,165,255,164,255,158,255,152,255,156,255,169,255,187,255,207,255,222,255,229,255,228,255,228,255,237,255,254,255, +16,0,29,0,37,0,42,0,50,0,60,0,66,0,68,0,69,0,75,0,80,0,78,0,80,0,94,0,112,0,115,0, +100,0,80,0,67,0,64,0,67,0,69,0,64,0,58,0,54,0,52,0,50,0,47,0,38,0,16,0,240,255,213,255, +199,255,194,255,193,255,198,255,210,255,220,255,220,255,214,255,212,255,214,255,209,255,194,255,181,255,175,255,173,255,171,255, +175,255,188,255,206,255,216,255,213,255,209,255,210,255,213,255,213,255,217,255,230,255,245,255,252,255,251,255,247,255,245,255, +252,255,11,0,29,0,44,0,54,0,61,0,67,0,75,0,85,0,90,0,85,0,83,0,92,0,106,0,112,0,105,0, +94,0,84,0,77,0,77,0,81,0,80,0,70,0,60,0,56,0,55,0,54,0,55,0,54,0,52,0,52,0,50,0, +41,0,23,0,4,0,249,255,246,255,244,255,238,255,231,255,225,255,218,255,208,255,195,255,186,255,178,255,169,255,158,255, +154,255,162,255,181,255,200,255,212,255,214,255,203,255,183,255,165,255,163,255,176,255,195,255,211,255,222,255,230,255,235,255, +236,255,237,255,242,255,251,255,3,0,10,0,23,0,44,0,63,0,69,0,64,0,65,0,81,0,100,0,107,0,105,0, +100,0,96,0,91,0,81,0,68,0,54,0,49,0,53,0,60,0,61,0,57,0,51,0,45,0,42,0,41,0,39,0, +31,0,18,0,3,0,252,255,255,255,7,0,11,0,3,0,245,255,230,255,220,255,216,255,214,255,211,255,202,255,184,255, +161,255,139,255,129,255,133,255,143,255,150,255,147,255,139,255,136,255,142,255,156,255,170,255,179,255,185,255,192,255,199,255, +207,255,214,255,218,255,220,255,220,255,223,255,236,255,1,0,19,0,28,0,30,0,34,0,41,0,45,0,44,0,42,0, +47,0,56,0,62,0,59,0,53,0,54,0,65,0,81,0,91,0,92,0,87,0,81,0,79,0,84,0,90,0,90,0, +78,0,60,0,48,0,49,0,56,0,60,0,56,0,47,0,32,0,10,0,239,255,221,255,218,255,222,255,219,255,202,255, +181,255,168,255,164,255,163,255,159,255,156,255,155,255,154,255,153,255,155,255,161,255,168,255,168,255,166,255,172,255,191,255, +214,255,231,255,235,255,234,255,233,255,237,255,242,255,244,255,244,255,248,255,0,0,12,0,23,0,29,0,32,0,38,0, +45,0,48,0,44,0,38,0,40,0,53,0,70,0,87,0,100,0,105,0,102,0,91,0,81,0,80,0,87,0,91,0, +86,0,80,0,80,0,83,0,79,0,68,0,59,0,53,0,42,0,17,0,245,255,229,255,229,255,233,255,227,255,214,255, +205,255,201,255,194,255,183,255,171,255,165,255,162,255,158,255,156,255,158,255,160,255,156,255,149,255,151,255,165,255,183,255, +194,255,195,255,193,255,192,255,191,255,189,255,190,255,194,255,202,255,214,255,228,255,243,255,252,255,253,255,251,255,0,0, +14,0,32,0,47,0,59,0,72,0,87,0,99,0,108,0,115,0,118,0,119,0,117,0,117,0,122,0,130,0,138,0, +142,0,139,0,127,0,104,0,80,0,67,0,65,0,65,0,55,0,37,0,20,0,6,0,247,255,231,255,220,255,217,255, +216,255,212,255,202,255,195,255,190,255,183,255,173,255,169,255,175,255,185,255,186,255,179,255,174,255,178,255,181,255,175,255, +163,255,158,255,167,255,180,255,188,255,186,255,181,255,176,255,172,255,171,255,177,255,189,255,201,255,210,255,219,255,232,255, +248,255,6,0,13,0,14,0,12,0,13,0,23,0,45,0,73,0,100,0,117,0,124,0,125,0,123,0,124,0,129,0, +136,0,137,0,124,0,101,0,77,0,60,0,50,0,38,0,25,0,16,0,13,0,15,0,14,0,12,0,10,0,10,0, +7,0,2,0,253,255,249,255,244,255,237,255,229,255,223,255,218,255,214,255,209,255,209,255,214,255,218,255,215,255,202,255, +186,255,173,255,165,255,161,255,158,255,155,255,152,255,153,255,160,255,174,255,187,255,192,255,189,255,186,255,190,255,203,255, +225,255,252,255,26,0,50,0,61,0,62,0,61,0,65,0,76,0,86,0,91,0,93,0,97,0,106,0,116,0,122,0, +124,0,120,0,111,0,99,0,86,0,74,0,64,0,56,0,47,0,36,0,26,0,17,0,7,0,252,255,240,255,231,255, +229,255,233,255,239,255,243,255,245,255,246,255,244,255,239,255,231,255,223,255,217,255,216,255,216,255,216,255,209,255,197,255, +183,255,173,255,169,255,167,255,165,255,164,255,166,255,171,255,177,255,183,255,190,255,196,255,199,255,198,255,198,255,207,255, +227,255,252,255,20,0,39,0,53,0,61,0,65,0,66,0,67,0,69,0,71,0,71,0,71,0,72,0,73,0,72,0, +70,0,69,0,72,0,75,0,73,0,64,0,51,0,38,0,27,0,21,0,20,0,23,0,30,0,38,0,46,0,49,0, +45,0,36,0,25,0,12,0,250,255,231,255,219,255,215,255,213,255,205,255,191,255,179,255,175,255,173,255,166,255,155,255, +149,255,153,255,162,255,165,255,164,255,162,255,162,255,158,255,149,255,146,255,159,255,183,255,206,255,221,255,233,255,245,255, +255,255,4,0,6,0,12,0,22,0,34,0,45,0,55,0,65,0,76,0,84,0,91,0,93,0,88,0,78,0,68,0, +64,0,68,0,76,0,81,0,83,0,84,0,84,0,81,0,76,0,72,0,69,0,68,0,66,0,63,0,60,0,57,0, +53,0,48,0,37,0,21,0,0,0,240,255,231,255,225,255,215,255,199,255,185,255,179,255,182,255,184,255,183,255,180,255, +178,255,174,255,167,255,163,255,164,255,170,255,172,255,173,255,180,255,196,255,214,255,227,255,234,255,240,255,244,255,240,255, +231,255,228,255,235,255,250,255,6,0,12,0,17,0,24,0,26,0,21,0,15,0,16,0,22,0,26,0,24,0,26,0, +36,0,48,0,53,0,52,0,53,0,60,0,70,0,75,0,74,0,69,0,68,0,67,0,61,0,47,0,34,0,31,0, +39,0,45,0,40,0,29,0,22,0,21,0,18,0,7,0,244,255,227,255,216,255,211,255,203,255,190,255,179,255,172,255, +166,255,156,255,149,255,149,255,153,255,154,255,151,255,150,255,152,255,154,255,156,255,164,255,182,255,206,255,226,255,237,255, +241,255,243,255,242,255,238,255,233,255,232,255,239,255,248,255,0,0,9,0,19,0,27,0,28,0,22,0,19,0,21,0, +24,0,27,0,32,0,42,0,56,0,69,0,76,0,78,0,79,0,82,0,88,0,93,0,93,0,90,0,89,0,91,0, +91,0,86,0,75,0,61,0,50,0,41,0,27,0,7,0,240,255,222,255,211,255,206,255,202,255,200,255,200,255,201,255, +205,255,207,255,205,255,196,255,186,255,183,255,189,255,198,255,205,255,209,255,212,255,214,255,215,255,212,255,204,255,199,255, +200,255,204,255,207,255,210,255,219,255,231,255,236,255,235,255,235,255,240,255,245,255,244,255,241,255,245,255,3,0,18,0, +28,0,34,0,38,0,45,0,55,0,63,0,69,0,75,0,87,0,100,0,105,0,100,0,93,0,89,0,88,0,85,0, +78,0,70,0,65,0,63,0,60,0,52,0,38,0,20,0,4,0,250,255,246,255,246,255,245,255,241,255,235,255,234,255, +237,255,235,255,225,255,211,255,204,255,205,255,210,255,214,255,217,255,220,255,221,255,216,255,208,255,201,255,199,255,203,255, +211,255,217,255,220,255,219,255,216,255,212,255,210,255,209,255,210,255,212,255,217,255,228,255,241,255,251,255,255,255,2,0, +8,0,17,0,26,0,33,0,41,0,51,0,59,0,62,0,63,0,64,0,65,0,65,0,68,0,76,0,87,0,90,0, +83,0,69,0,56,0,45,0,37,0,31,0,24,0,17,0,15,0,17,0,20,0,15,0,3,0,249,255,247,255,249,255, +249,255,246,255,246,255,251,255,2,0,1,0,248,255,236,255,231,255,235,255,243,255,245,255,238,255,227,255,218,255,210,255, +199,255,186,255,177,255,176,255,181,255,190,255,199,255,206,255,209,255,210,255,210,255,211,255,212,255,215,255,221,255,231,255, +243,255,255,255,10,0,18,0,21,0,21,0,25,0,36,0,46,0,48,0,43,0,37,0,34,0,37,0,42,0,49,0, +56,0,58,0,57,0,54,0,51,0,49,0,46,0,42,0,41,0,43,0,46,0,45,0,41,0,38,0,37,0,30,0, +14,0,255,255,252,255,3,0,9,0,7,0,254,255,245,255,239,255,233,255,227,255,216,255,203,255,194,255,195,255,202,255, +207,255,204,255,197,255,188,255,179,255,173,255,174,255,181,255,187,255,191,255,193,255,195,255,195,255,199,255,207,255,217,255, +226,255,238,255,1,0,18,0,23,0,21,0,23,0,33,0,41,0,42,0,40,0,42,0,45,0,47,0,45,0,41,0, +38,0,37,0,36,0,35,0,35,0,41,0,51,0,61,0,65,0,61,0,55,0,51,0,51,0,56,0,60,0,59,0, +53,0,45,0,37,0,29,0,22,0,15,0,4,0,249,255,240,255,235,255,228,255,219,255,212,255,209,255,205,255,198,255, +191,255,189,255,190,255,191,255,192,255,191,255,187,255,183,255,180,255,181,255,184,255,191,255,198,255,205,255,208,255,211,255, +216,255,223,255,228,255,234,255,243,255,252,255,2,0,6,0,14,0,24,0,31,0,34,0,34,0,33,0,34,0,41,0, +51,0,57,0,56,0,55,0,55,0,56,0,59,0,66,0,69,0,64,0,52,0,48,0,52,0,55,0,55,0,56,0, +59,0,55,0,44,0,34,0,30,0,25,0,15,0,6,0,0,0,249,255,240,255,235,255,233,255,229,255,221,255,213,255, +207,255,203,255,200,255,199,255,197,255,191,255,187,255,189,255,194,255,194,255,189,255,186,255,188,255,193,255,201,255,210,255, +219,255,225,255,229,255,232,255,234,255,238,255,244,255,253,255,7,0,16,0,24,0,31,0,34,0,33,0,33,0,34,0, +36,0,38,0,41,0,43,0,43,0,46,0,56,0,69,0,77,0,79,0,78,0,75,0,68,0,60,0,56,0,52,0, +45,0,34,0,22,0,13,0,7,0,5,0,5,0,7,0,7,0,5,0,255,255,243,255,229,255,219,255,213,255,207,255, +198,255,189,255,184,255,182,255,182,255,184,255,185,255,182,255,178,255,179,255,184,255,191,255,200,255,210,255,216,255,215,255, +215,255,219,255,225,255,228,255,234,255,244,255,250,255,250,255,250,255,255,255,7,0,11,0,17,0,25,0,33,0,37,0, +44,0,56,0,67,0,69,0,69,0,74,0,80,0,84,0,87,0,92,0,95,0,91,0,84,0,78,0,71,0,62,0, +54,0,50,0,47,0,43,0,42,0,39,0,32,0,20,0,9,0,0,0,245,255,231,255,221,255,217,255,214,255,209,255, +202,255,194,255,187,255,184,255,185,255,188,255,189,255,189,255,187,255,182,255,177,255,174,255,175,255,174,255,173,255,177,255, +186,255,194,255,198,255,200,255,204,255,208,255,213,255,219,255,226,255,229,255,229,255,232,255,244,255,4,0,15,0,21,0, +27,0,37,0,50,0,61,0,64,0,64,0,66,0,71,0,76,0,78,0,79,0,83,0,86,0,87,0,88,0,87,0, +85,0,79,0,72,0,65,0,59,0,53,0,50,0,47,0,43,0,38,0,30,0,16,0,255,255,242,255,239,255,241,255, +240,255,235,255,230,255,222,255,211,255,203,255,201,255,198,255,188,255,178,255,174,255,175,255,175,255,175,255,180,255,189,255, +192,255,188,255,187,255,191,255,198,255,207,255,217,255,223,255,224,255,223,255,227,255,237,255,248,255,0,0,4,0,5,0, +10,0,20,0,30,0,36,0,36,0,39,0,47,0,57,0,63,0,68,0,78,0,88,0,92,0,91,0,90,0,91,0, +90,0,84,0,75,0,71,0,72,0,70,0,59,0,42,0,27,0,20,0,17,0,14,0,11,0,10,0,7,0,1,0, +249,255,243,255,239,255,232,255,222,255,215,255,212,255,212,255,210,255,206,255,201,255,194,255,185,255,178,255,176,255,177,255, +174,255,169,255,167,255,173,255,181,255,184,255,182,255,182,255,185,255,192,255,199,255,207,255,217,255,226,255,235,255,241,255, +246,255,253,255,7,0,17,0,26,0,35,0,44,0,52,0,53,0,48,0,45,0,48,0,53,0,57,0,62,0,68,0, +69,0,62,0,56,0,58,0,63,0,63,0,56,0,51,0,54,0,59,0,58,0,52,0,45,0,38,0,30,0,20,0, +12,0,8,0,4,0,253,255,241,255,229,255,223,255,223,255,223,255,219,255,211,255,202,255,198,255,197,255,197,255,198,255, +196,255,191,255,186,255,183,255,185,255,190,255,194,255,196,255,199,255,201,255,203,255,206,255,213,255,222,255,230,255,235,255, +240,255,245,255,250,255,253,255,2,0,11,0,21,0,28,0,28,0,25,0,23,0,26,0,32,0,35,0,36,0,40,0, +49,0,57,0,59,0,57,0,53,0,49,0,47,0,49,0,50,0,48,0,45,0,46,0,53,0,55,0,47,0,35,0, +26,0,17,0,10,0,7,0,10,0,10,0,3,0,249,255,243,255,242,255,242,255,240,255,236,255,228,255,218,255,212,255, +210,255,209,255,207,255,207,255,207,255,206,255,203,255,204,255,207,255,206,255,201,255,199,255,205,255,215,255,222,255,228,255, +235,255,243,255,249,255,254,255,4,0,11,0,15,0,15,0,17,0,23,0,35,0,45,0,48,0,45,0,44,0,44,0, +44,0,42,0,43,0,47,0,50,0,51,0,52,0,52,0,51,0,47,0,45,0,46,0,49,0,52,0,52,0,48,0, +38,0,27,0,18,0,15,0,13,0,8,0,253,255,238,255,227,255,227,255,234,255,235,255,226,255,217,255,215,255,219,255, +221,255,217,255,211,255,203,255,195,255,191,255,194,255,200,255,204,255,203,255,201,255,202,255,210,255,220,255,222,255,218,255, +216,255,223,255,233,255,237,255,238,255,243,255,249,255,248,255,247,255,252,255,6,0,12,0,14,0,19,0,28,0,34,0, +39,0,44,0,46,0,44,0,44,0,51,0,60,0,65,0,66,0,67,0,63,0,52,0,46,0,51,0,59,0,57,0, +49,0,45,0,45,0,42,0,37,0,33,0,28,0,19,0,8,0,0,0,253,255,250,255,248,255,246,255,242,255,235,255, +228,255,224,255,224,255,227,255,230,255,232,255,229,255,223,255,219,255,216,255,214,255,214,255,215,255,215,255,212,255,209,255, +210,255,215,255,220,255,222,255,223,255,224,255,227,255,233,255,242,255,247,255,250,255,252,255,1,0,7,0,11,0,13,0, +14,0,16,0,20,0,30,0,42,0,50,0,51,0,50,0,49,0,48,0,47,0,45,0,40,0,33,0,28,0,27,0, +27,0,25,0,24,0,26,0,27,0,23,0,14,0,3,0,248,255,240,255,239,255,242,255,243,255,239,255,234,255,229,255, +222,255,218,255,218,255,220,255,215,255,208,255,206,255,207,255,206,255,202,255,202,255,206,255,206,255,202,255,203,255,209,255, +213,255,213,255,215,255,220,255,222,255,225,255,232,255,242,255,246,255,244,255,244,255,251,255,3,0,8,0,11,0,13,0, +16,0,24,0,39,0,52,0,57,0,57,0,60,0,65,0,68,0,69,0,70,0,70,0,66,0,60,0,59,0,61,0, +63,0,62,0,56,0,48,0,42,0,40,0,39,0,35,0,25,0,14,0,4,0,251,255,245,255,244,255,246,255,244,255, +236,255,229,255,226,255,225,255,221,255,215,255,208,255,202,255,196,255,191,255,187,255,183,255,179,255,177,255,177,255,178,255, +180,255,181,255,182,255,181,255,182,255,189,255,198,255,204,255,206,255,208,255,215,255,226,255,235,255,242,255,248,255,2,0, +13,0,20,0,23,0,27,0,33,0,36,0,37,0,39,0,43,0,49,0,56,0,64,0,71,0,75,0,76,0,77,0, +77,0,71,0,62,0,56,0,55,0,53,0,48,0,46,0,49,0,50,0,47,0,42,0,36,0,27,0,14,0,3,0, +252,255,248,255,247,255,250,255,252,255,248,255,237,255,228,255,225,255,223,255,220,255,214,255,209,255,206,255,205,255,205,255, +204,255,199,255,193,255,190,255,190,255,192,255,196,255,199,255,202,255,205,255,211,255,219,255,227,255,230,255,231,255,233,255, +237,255,244,255,255,255,11,0,22,0,30,0,35,0,38,0,42,0,46,0,50,0,52,0,51,0,51,0,52,0,53,0, +53,0,55,0,61,0,67,0,68,0,63,0,60,0,60,0,59,0,55,0,49,0,46,0,47,0,46,0,42,0,35,0, +27,0,19,0,11,0,5,0,0,0,251,255,244,255,236,255,230,255,225,255,221,255,217,255,215,255,212,255,205,255,196,255, +187,255,184,255,184,255,186,255,189,255,191,255,192,255,194,255,198,255,201,255,202,255,203,255,209,255,216,255,219,255,221,255, +225,255,231,255,236,255,240,255,245,255,253,255,5,0,11,0,14,0,16,0,19,0,25,0,34,0,45,0,54,0,58,0, +58,0,57,0,57,0,60,0,65,0,72,0,73,0,69,0,62,0,60,0,60,0,58,0,53,0,46,0,41,0,39,0, +40,0,42,0,40,0,33,0,26,0,21,0,15,0,3,0,245,255,235,255,230,255,228,255,227,255,226,255,223,255,218,255, +214,255,212,255,213,255,210,255,205,255,199,255,196,255,193,255,192,255,192,255,196,255,201,255,206,255,209,255,208,255,205,255, +209,255,219,255,228,255,234,255,238,255,244,255,251,255,255,255,5,0,13,0,19,0,20,0,18,0,20,0,24,0,29,0, +34,0,42,0,52,0,63,0,70,0,73,0,70,0,64,0,62,0,64,0,66,0,62,0,56,0,52,0,50,0,50,0, +48,0,45,0,39,0,32,0,26,0,22,0,17,0,10,0,4,0,254,255,248,255,242,255,236,255,230,255,221,255,212,255, +209,255,213,255,218,255,217,255,212,255,207,255,201,255,196,255,195,255,197,255,199,255,200,255,201,255,202,255,202,255,203,255, +206,255,212,255,218,255,226,255,234,255,239,255,238,255,237,255,242,255,251,255,3,0,7,0,11,0,14,0,17,0,20,0, +27,0,35,0,36,0,33,0,32,0,36,0,42,0,47,0,51,0,54,0,49,0,41,0,34,0,31,0,31,0,29,0, +28,0,26,0,23,0,19,0,14,0,9,0,4,0,254,255,249,255,244,255,241,255,240,255,240,255,237,255,232,255,228,255, +226,255,224,255,220,255,215,255,212,255,210,255,211,255,213,255,215,255,213,255,212,255,212,255,214,255,217,255,221,255,226,255, +228,255,227,255,227,255,231,255,234,255,232,255,229,255,232,255,241,255,255,255,12,0,21,0,25,0,27,0,31,0,37,0, +43,0,48,0,50,0,48,0,44,0,42,0,45,0,49,0,49,0,47,0,49,0,57,0,64,0,66,0,63,0,54,0, +42,0,28,0,17,0,14,0,18,0,21,0,15,0,4,0,252,255,253,255,255,255,251,255,247,255,247,255,246,255,238,255, +229,255,227,255,228,255,223,255,216,255,214,255,216,255,219,255,222,255,229,255,232,255,224,255,209,255,201,255,199,255,200,255, +203,255,212,255,221,255,223,255,224,255,229,255,237,255,238,255,230,255,222,255,224,255,241,255,12,0,32,0,30,0,10,0, +249,255,255,255,24,0,51,0,70,0,77,0,73,0,63,0,54,0,48,0,38,0,22,0,13,0,21,0,31,0,30,0, +22,0,27,0,44,0,58,0,59,0,54,0,48,0,39,0,31,0,32,0,35,0,23,0,255,255,241,255,247,255,3,0, +4,0,253,255,244,255,234,255,227,255,230,255,244,255,254,255,252,255,238,255,220,255,202,255,182,255,165,255,161,255,183,255, +224,255,5,0,21,0,30,0,48,0,63,0,46,0,247,255,179,255,128,255,106,255,116,255,155,255,214,255,20,0,71,0, +99,0,102,0,86,0,64,0,42,0,17,0,241,255,210,255,185,255,172,255,174,255,196,255,230,255,11,0,51,0,102,0, +158,0,192,0,184,0,134,0,61,0,245,255,195,255,172,255,169,255,176,255,189,255,217,255,5,0,60,0,112,0,142,0, +140,0,113,0,79,0,51,0,22,0,233,255,174,255,121,255,96,255,101,255,125,255,160,255,208,255,8,0,57,0,83,0, +85,0,62,0,13,0,200,255,131,255,82,255,59,255,60,255,87,255,138,255,198,255,254,255,49,0,93,0,117,0,109,0, +78,0,44,0,14,0,237,255,202,255,179,255,180,255,206,255,247,255,32,0,61,0,81,0,99,0,118,0,131,0,131,0, +117,0,88,0,49,0,11,0,243,255,233,255,227,255,225,255,236,255,9,0,46,0,79,0,97,0,100,0,88,0,66,0, +40,0,14,0,241,255,205,255,169,255,149,255,153,255,175,255,202,255,227,255,251,255,18,0,32,0,32,0,19,0,252,255, +225,255,198,255,175,255,154,255,139,255,137,255,154,255,184,255,214,255,239,255,4,0,19,0,21,0,12,0,254,255,239,255, +223,255,206,255,193,255,188,255,199,255,222,255,251,255,20,0,38,0,52,0,62,0,67,0,65,0,57,0,44,0,25,0, +7,0,254,255,255,255,8,0,20,0,32,0,42,0,49,0,56,0,65,0,71,0,72,0,67,0,60,0,53,0,47,0, +39,0,28,0,12,0,254,255,247,255,249,255,253,255,1,0,7,0,15,0,22,0,23,0,17,0,2,0,238,255,215,255, +197,255,184,255,177,255,173,255,174,255,181,255,194,255,212,255,231,255,248,255,255,255,251,255,241,255,230,255,222,255,213,255, +204,255,196,255,193,255,196,255,207,255,221,255,235,255,247,255,3,0,15,0,25,0,30,0,29,0,26,0,24,0,21,0, +16,0,11,0,10,0,14,0,19,0,26,0,37,0,50,0,62,0,70,0,76,0,81,0,81,0,73,0,61,0,47,0, +34,0,23,0,16,0,11,0,7,0,7,0,13,0,22,0,31,0,35,0,33,0,26,0,14,0,3,0,250,255,240,255, +228,255,216,255,209,255,207,255,208,255,209,255,212,255,217,255,220,255,220,255,216,255,213,255,209,255,205,255,200,255,196,255, +194,255,194,255,198,255,204,255,210,255,214,255,219,255,225,255,232,255,237,255,240,255,243,255,248,255,253,255,4,0,12,0, +19,0,23,0,27,0,32,0,38,0,46,0,54,0,60,0,62,0,59,0,53,0,50,0,48,0,47,0,47,0,48,0, +46,0,41,0,35,0,31,0,28,0,26,0,26,0,24,0,17,0,9,0,4,0,4,0,4,0,1,0,255,255,252,255, +245,255,235,255,228,255,223,255,220,255,219,255,222,255,227,255,227,255,222,255,217,255,215,255,212,255,210,255,211,255,214,255, +213,255,212,255,213,255,215,255,217,255,220,255,227,255,233,255,234,255,234,255,238,255,246,255,252,255,255,255,2,0,5,0, +5,0,7,0,13,0,19,0,23,0,26,0,32,0,39,0,44,0,48,0,51,0,50,0,45,0,42,0,42,0,41,0, +34,0,24,0,19,0,21,0,26,0,30,0,31,0,31,0,30,0,29,0,27,0,24,0,17,0,8,0,255,255,248,255, +243,255,241,255,239,255,235,255,232,255,232,255,233,255,230,255,221,255,214,255,211,255,210,255,211,255,212,255,210,255,206,255, +200,255,199,255,202,255,208,255,214,255,220,255,225,255,231,255,237,255,242,255,245,255,245,255,244,255,242,255,241,255,241,255, +246,255,1,0,13,0,23,0,30,0,33,0,32,0,28,0,26,0,27,0,30,0,33,0,34,0,36,0,34,0,30,0, +29,0,34,0,41,0,44,0,42,0,40,0,38,0,35,0,30,0,25,0,19,0,13,0,9,0,8,0,8,0,7,0, +7,0,6,0,4,0,2,0,255,255,253,255,247,255,238,255,227,255,217,255,212,255,211,255,210,255,208,255,207,255,210,255, +215,255,218,255,219,255,220,255,223,255,224,255,222,255,219,255,218,255,217,255,217,255,222,255,231,255,241,255,249,255,254,255, +2,0,4,0,5,0,8,0,12,0,13,0,11,0,8,0,8,0,11,0,19,0,28,0,34,0,36,0,38,0,43,0, +49,0,51,0,50,0,48,0,45,0,41,0,37,0,34,0,32,0,31,0,30,0,31,0,32,0,32,0,30,0,26,0, +19,0,10,0,1,0,250,255,244,255,237,255,228,255,222,255,221,255,225,255,231,255,236,255,237,255,235,255,232,255,227,255, +221,255,216,255,214,255,215,255,215,255,217,255,218,255,219,255,221,255,225,255,231,255,236,255,238,255,241,255,244,255,247,255, +249,255,249,255,247,255,244,255,244,255,248,255,255,255,7,0,16,0,24,0,29,0,33,0,37,0,40,0,40,0,37,0, +35,0,35,0,36,0,36,0,39,0,42,0,42,0,39,0,36,0,37,0,40,0,39,0,34,0,28,0,23,0,19,0, +15,0,11,0,8,0,4,0,0,0,250,255,247,255,245,255,244,255,241,255,238,255,235,255,233,255,229,255,224,255,221,255, +221,255,220,255,215,255,212,255,214,255,218,255,222,255,224,255,225,255,225,255,224,255,225,255,228,255,228,255,225,255,222,255, +226,255,234,255,242,255,247,255,251,255,254,255,0,0,3,0,10,0,15,0,16,0,15,0,17,0,24,0,30,0,32,0, +32,0,33,0,36,0,39,0,44,0,51,0,56,0,60,0,60,0,55,0,48,0,41,0,37,0,35,0,34,0,32,0, +29,0,26,0,24,0,23,0,21,0,17,0,9,0,2,0,253,255,250,255,246,255,244,255,240,255,233,255,225,255,220,255, +222,255,227,255,227,255,224,255,221,255,220,255,218,255,215,255,210,255,208,255,209,255,211,255,213,255,214,255,216,255,219,255, +224,255,229,255,234,255,238,255,241,255,246,255,253,255,3,0,6,0,8,0,11,0,16,0,21,0,24,0,26,0,30,0, +33,0,37,0,43,0,49,0,53,0,53,0,49,0,44,0,42,0,42,0,43,0,43,0,40,0,37,0,34,0,30,0, +27,0,26,0,26,0,24,0,20,0,16,0,13,0,8,0,2,0,255,255,252,255,246,255,236,255,231,255,234,255,237,255, +237,255,235,255,236,255,239,255,236,255,227,255,216,255,210,255,210,255,212,255,212,255,211,255,213,255,218,255,221,255,220,255, +217,255,215,255,213,255,215,255,223,255,231,255,234,255,233,255,238,255,249,255,0,0,1,0,4,0,10,0,14,0,12,0, +13,0,21,0,28,0,28,0,25,0,23,0,24,0,26,0,29,0,32,0,34,0,35,0,36,0,39,0,39,0,36,0, +33,0,31,0,28,0,24,0,20,0,18,0,20,0,24,0,24,0,17,0,7,0,3,0,6,0,12,0,13,0,8,0, +255,255,243,255,233,255,227,255,226,255,227,255,226,255,224,255,223,255,221,255,219,255,218,255,220,255,219,255,215,255,213,255, +216,255,219,255,219,255,220,255,223,255,230,255,235,255,236,255,238,255,241,255,248,255,254,255,0,0,255,255,255,255,6,0, +15,0,20,0,17,0,12,0,11,0,14,0,20,0,24,0,25,0,26,0,29,0,35,0,39,0,39,0,39,0,40,0, +40,0,38,0,34,0,32,0,32,0,31,0,29,0,25,0,18,0,11,0,10,0,11,0,10,0,5,0,2,0,2,0, +1,0,252,255,246,255,243,255,242,255,240,255,237,255,234,255,231,255,229,255,228,255,228,255,227,255,222,255,216,255,212,255, +210,255,211,255,211,255,211,255,215,255,223,255,230,255,233,255,232,255,232,255,233,255,237,255,242,255,248,255,255,255,1,0, +2,0,6,0,11,0,15,0,16,0,20,0,27,0,32,0,30,0,26,0,23,0,25,0,28,0,32,0,34,0,32,0, +28,0,27,0,30,0,35,0,38,0,39,0,37,0,33,0,28,0,23,0,22,0,22,0,20,0,17,0,11,0,6,0, +4,0,3,0,0,0,251,255,246,255,242,255,238,255,234,255,229,255,226,255,226,255,227,255,228,255,226,255,222,255,220,255, +221,255,223,255,222,255,221,255,221,255,223,255,223,255,224,255,226,255,230,255,234,255,238,255,241,255,244,255,247,255,250,255, +253,255,0,0,2,0,3,0,4,0,6,0,7,0,10,0,13,0,18,0,22,0,22,0,17,0,14,0,18,0,27,0, +32,0,30,0,24,0,21,0,24,0,28,0,29,0,28,0,24,0,21,0,17,0,15,0,12,0,10,0,10,0,10,0, +9,0,5,0,255,255,251,255,251,255,251,255,248,255,239,255,230,255,225,255,227,255,232,255,235,255,235,255,232,255,228,255, +225,255,224,255,226,255,230,255,231,255,230,255,228,255,229,255,230,255,230,255,228,255,226,255,229,255,234,255,236,255,234,255, +231,255,232,255,240,255,251,255,5,0,9,0,9,0,7,0,9,0,14,0,17,0,15,0,15,0,21,0,29,0,31,0, +28,0,25,0,27,0,34,0,39,0,38,0,32,0,27,0,27,0,31,0,32,0,28,0,22,0,19,0,22,0,26,0, +25,0,19,0,13,0,11,0,13,0,11,0,5,0,253,255,247,255,244,255,241,255,237,255,232,255,227,255,223,255,224,255, +226,255,225,255,223,255,223,255,226,255,227,255,225,255,222,255,223,255,226,255,229,255,230,255,230,255,228,255,227,255,230,255, +237,255,241,255,241,255,239,255,237,255,240,255,245,255,250,255,254,255,3,0,9,0,14,0,16,0,16,0,17,0,19,0, +20,0,21,0,23,0,26,0,27,0,27,0,28,0,31,0,30,0,29,0,31,0,36,0,38,0,34,0,29,0,27,0, +27,0,26,0,24,0,22,0,21,0,20,0,18,0,15,0,11,0,6,0,1,0,252,255,248,255,246,255,245,255,244,255, +241,255,237,255,230,255,222,255,216,255,216,255,220,255,224,255,226,255,227,255,229,255,229,255,230,255,231,255,234,255,234,255, +231,255,229,255,230,255,232,255,235,255,239,255,243,255,246,255,248,255,250,255,251,255,252,255,255,255,4,0,9,0,10,0, +8,0,6,0,8,0,15,0,23,0,29,0,31,0,29,0,30,0,32,0,34,0,36,0,36,0,35,0,33,0,29,0, +26,0,22,0,20,0,19,0,19,0,18,0,15,0,12,0,10,0,10,0,9,0,5,0,255,255,249,255,246,255,245,255, +245,255,244,255,239,255,232,255,223,255,219,255,219,255,223,255,224,255,222,255,220,255,223,255,226,255,228,255,229,255,232,255, +235,255,237,255,239,255,242,255,245,255,247,255,249,255,250,255,250,255,248,255,248,255,250,255,253,255,254,255,254,255,2,0, +7,0,12,0,15,0,16,0,19,0,25,0,32,0,35,0,34,0,34,0,35,0,34,0,32,0,31,0,33,0,36,0, +38,0,40,0,41,0,39,0,34,0,32,0,30,0,25,0,17,0,12,0,12,0,10,0,4,0,254,255,251,255,250,255, +247,255,247,255,252,255,1,0,253,255,240,255,225,255,219,255,220,255,222,255,219,255,212,255,210,255,218,255,231,255,240,255, +240,255,230,255,220,255,220,255,230,255,238,255,237,255,235,255,242,255,248,255,237,255,216,255,207,255,223,255,248,255,4,0, +254,255,242,255,234,255,233,255,241,255,251,255,255,255,255,255,2,0,16,0,31,0,40,0,43,0,47,0,52,0,51,0, +42,0,33,0,37,0,52,0,64,0,63,0,56,0,52,0,49,0,42,0,33,0,33,0,39,0,40,0,29,0,18,0, +12,0,10,0,8,0,6,0,3,0,250,255,242,255,244,255,253,255,254,255,243,255,231,255,228,255,230,255,227,255,222,255, +221,255,229,255,237,255,238,255,231,255,225,255,228,255,238,255,247,255,251,255,252,255,254,255,2,0,3,0,2,0,254,255, +248,255,246,255,248,255,251,255,253,255,255,255,8,0,16,0,16,0,9,0,7,0,13,0,19,0,18,0,11,0,5,0, +0,0,252,255,250,255,249,255,248,255,251,255,6,0,19,0,25,0,25,0,26,0,33,0,40,0,44,0,44,0,44,0, +41,0,35,0,26,0,16,0,7,0,255,255,250,255,243,255,235,255,230,255,228,255,225,255,220,255,215,255,211,255,207,255, +204,255,204,255,207,255,209,255,211,255,214,255,214,255,210,255,207,255,212,255,225,255,234,255,239,255,244,255,255,255,10,0, +18,0,21,0,19,0,14,0,12,0,16,0,23,0,23,0,16,0,8,0,2,0,1,0,5,0,14,0,24,0,32,0, +34,0,33,0,32,0,30,0,31,0,34,0,34,0,32,0,29,0,26,0,25,0,28,0,32,0,33,0,27,0,18,0, +15,0,18,0,24,0,29,0,30,0,26,0,15,0,4,0,251,255,243,255,233,255,222,255,215,255,211,255,207,255,207,255, +212,255,220,255,226,255,227,255,230,255,235,255,242,255,249,255,254,255,0,0,255,255,254,255,0,0,1,0,1,0,255,255, +0,0,5,0,10,0,10,0,6,0,1,0,254,255,253,255,248,255,241,255,235,255,235,255,240,255,245,255,246,255,245,255, +244,255,247,255,1,0,12,0,17,0,15,0,14,0,19,0,24,0,25,0,22,0,21,0,24,0,27,0,25,0,21,0, +18,0,16,0,16,0,19,0,21,0,18,0,12,0,8,0,8,0,9,0,5,0,254,255,249,255,249,255,250,255,249,255, +246,255,240,255,235,255,228,255,222,255,221,255,223,255,226,255,227,255,226,255,226,255,227,255,227,255,227,255,230,255,236,255, +242,255,246,255,250,255,254,255,2,0,4,0,6,0,9,0,10,0,10,0,8,0,8,0,9,0,8,0,7,0,7,0, +11,0,15,0,15,0,12,0,10,0,13,0,19,0,24,0,27,0,27,0,27,0,25,0,23,0,20,0,18,0,16,0, +14,0,9,0,5,0,3,0,2,0,1,0,0,0,255,255,253,255,251,255,251,255,254,255,1,0,1,0,254,255,250,255, +245,255,239,255,235,255,232,255,229,255,226,255,220,255,216,255,216,255,220,255,224,255,225,255,222,255,221,255,225,255,231,255, +234,255,236,255,237,255,240,255,243,255,247,255,252,255,2,0,6,0,9,0,12,0,13,0,13,0,13,0,14,0,14,0, +11,0,6,0,2,0,3,0,6,0,9,0,10,0,9,0,9,0,14,0,20,0,25,0,27,0,26,0,24,0,21,0, +18,0,16,0,15,0,13,0,10,0,7,0,8,0,11,0,14,0,14,0,13,0,8,0,2,0,253,255,249,255,247,255, +244,255,241,255,237,255,233,255,229,255,226,255,225,255,226,255,228,255,229,255,228,255,226,255,227,255,230,255,233,255,235,255, +237,255,239,255,239,255,239,255,240,255,245,255,252,255,255,255,255,255,255,255,255,255,0,0,2,0,6,0,12,0,17,0, +19,0,18,0,13,0,6,0,2,0,4,0,10,0,14,0,13,0,9,0,8,0,10,0,12,0,10,0,8,0,9,0, +12,0,15,0,18,0,20,0,20,0,20,0,19,0,18,0,16,0,13,0,9,0,8,0,8,0,7,0,3,0,255,255, +253,255,250,255,247,255,242,255,240,255,239,255,236,255,232,255,229,255,227,255,225,255,225,255,227,255,230,255,231,255,230,255, +229,255,233,255,238,255,241,255,241,255,242,255,245,255,248,255,250,255,251,255,253,255,254,255,254,255,254,255,255,255,1,0, +2,0,3,0,5,0,8,0,10,0,12,0,14,0,16,0,17,0,16,0,13,0,13,0,16,0,20,0,23,0,26,0, +28,0,28,0,26,0,25,0,26,0,29,0,33,0,35,0,34,0,31,0,27,0,23,0,21,0,18,0,13,0,8,0, +4,0,0,0,253,255,249,255,246,255,244,255,241,255,239,255,236,255,232,255,230,255,229,255,230,255,232,255,231,255,231,255, +232,255,234,255,235,255,236,255,236,255,239,255,242,255,245,255,245,255,243,255,242,255,243,255,243,255,245,255,246,255,248,255, +250,255,251,255,252,255,253,255,254,255,252,255,251,255,253,255,0,0,5,0,8,0,11,0,14,0,17,0,21,0,24,0, +26,0,26,0,26,0,29,0,33,0,33,0,30,0,27,0,27,0,27,0,27,0,24,0,20,0,20,0,21,0,22,0, +19,0,12,0,6,0,2,0,1,0,1,0,255,255,252,255,247,255,243,255,240,255,239,255,240,255,241,255,241,255,242,255, +241,255,241,255,241,255,239,255,235,255,232,255,231,255,231,255,233,255,234,255,236,255,238,255,239,255,239,255,240,255,243,255, +245,255,247,255,249,255,250,255,252,255,254,255,0,0,2,0,2,0,2,0,2,0,4,0,8,0,13,0,16,0,16,0, +16,0,19,0,22,0,24,0,23,0,22,0,23,0,25,0,26,0,25,0,21,0,17,0,14,0,15,0,16,0,15,0, +12,0,9,0,8,0,9,0,8,0,4,0,1,0,0,0,0,0,255,255,251,255,247,255,244,255,241,255,239,255,237,255, +237,255,238,255,238,255,237,255,237,255,235,255,233,255,232,255,232,255,234,255,236,255,237,255,236,255,237,255,239,255,241,255, +243,255,246,255,249,255,252,255,253,255,255,255,2,0,4,0,4,0,5,0,7,0,10,0,12,0,12,0,11,0,12,0, +14,0,15,0,17,0,19,0,21,0,22,0,23,0,25,0,26,0,27,0,26,0,24,0,23,0,22,0,19,0,15,0, +14,0,15,0,18,0,18,0,15,0,12,0,10,0,9,0,6,0,2,0,252,255,249,255,249,255,248,255,246,255,240,255, +235,255,232,255,232,255,233,255,233,255,232,255,230,255,230,255,232,255,233,255,233,255,232,255,232,255,234,255,235,255,236,255, +237,255,239,255,242,255,244,255,247,255,249,255,252,255,254,255,255,255,0,0,0,0,0,0,2,0,5,0,9,0,10,0, +10,0,11,0,13,0,16,0,16,0,15,0,14,0,16,0,20,0,22,0,20,0,18,0,17,0,18,0,21,0,23,0, +23,0,23,0,22,0,21,0,20,0,19,0,17,0,16,0,13,0,8,0,3,0,0,0,254,255,252,255,248,255,244,255, +241,255,241,255,242,255,243,255,243,255,241,255,239,255,238,255,238,255,237,255,236,255,235,255,236,255,237,255,238,255,238,255, +238,255,238,255,240,255,242,255,242,255,242,255,243,255,246,255,249,255,250,255,250,255,250,255,253,255,0,0,3,0,5,0, +6,0,7,0,9,0,12,0,15,0,15,0,16,0,18,0,21,0,22,0,22,0,21,0,23,0,25,0,25,0,22,0, +19,0,19,0,21,0,21,0,18,0,14,0,10,0,7,0,3,0,0,0,254,255,252,255,251,255,250,255,249,255,248,255, +247,255,246,255,245,255,244,255,244,255,243,255,241,255,239,255,238,255,236,255,235,255,234,255,233,255,234,255,234,255,235,255, +236,255,237,255,236,255,235,255,234,255,235,255,237,255,239,255,241,255,242,255,243,255,244,255,245,255,247,255,250,255,253,255, +255,255,3,0,9,0,14,0,16,0,16,0,16,0,18,0,21,0,23,0,23,0,23,0,24,0,24,0,24,0,25,0, +26,0,27,0,27,0,24,0,23,0,22,0,23,0,22,0,20,0,16,0,12,0,9,0,8,0,8,0,6,0,3,0, +0,0,253,255,251,255,249,255,248,255,247,255,246,255,245,255,244,255,242,255,240,255,237,255,234,255,232,255,231,255,232,255, +232,255,232,255,232,255,232,255,233,255,233,255,234,255,235,255,236,255,238,255,242,255,246,255,250,255,254,255,0,0,1,0, +3,0,4,0,7,0,9,0,11,0,12,0,13,0,14,0,15,0,14,0,14,0,14,0,15,0,16,0,16,0,16,0, +15,0,16,0,17,0,17,0,17,0,18,0,20,0,19,0,16,0,12,0,9,0,7,0,5,0,2,0,0,0,0,0, +255,255,255,255,253,255,251,255,249,255,247,255,244,255,242,255,241,255,241,255,241,255,242,255,241,255,238,255,235,255,233,255, +234,255,235,255,236,255,235,255,234,255,234,255,234,255,235,255,237,255,238,255,240,255,240,255,240,255,241,255,243,255,246,255, +249,255,252,255,0,0,4,0,7,0,10,0,14,0,17,0,18,0,19,0,20,0,22,0,24,0,22,0,20,0,19,0, +21,0,23,0,23,0,20,0,17,0,16,0,15,0,15,0,15,0,15,0,15,0,14,0,12,0,9,0,7,0,5,0, +3,0,3,0,1,0,0,0,254,255,252,255,251,255,249,255,246,255,244,255,243,255,242,255,240,255,239,255,237,255,237,255, +237,255,236,255,235,255,235,255,236,255,237,255,238,255,237,255,237,255,236,255,237,255,239,255,242,255,245,255,245,255,245,255, +245,255,246,255,248,255,250,255,253,255,0,0,3,0,6,0,8,0,11,0,13,0,16,0,19,0,20,0,20,0,20,0, +20,0,19,0,17,0,15,0,15,0,17,0,18,0,18,0,15,0,12,0,12,0,14,0,15,0,16,0,15,0,14,0, +13,0,11,0,8,0,6,0,3,0,0,0,253,255,250,255,247,255,244,255,242,255,242,255,243,255,243,255,242,255,242,255, +242,255,242,255,242,255,240,255,239,255,238,255,238,255,238,255,239,255,240,255,240,255,241,255,243,255,246,255,249,255,251,255, +252,255,254,255,0,0,1,0,1,0,1,0,3,0,5,0,6,0,5,0,5,0,6,0,7,0,7,0,8,0,10,0, +13,0,16,0,18,0,19,0,19,0,19,0,19,0,19,0,19,0,20,0,19,0,17,0,15,0,13,0,12,0,11,0, +10,0,9,0,7,0,6,0,4,0,3,0,2,0,0,0,253,255,252,255,252,255,252,255,251,255,249,255,247,255,246,255, +245,255,245,255,244,255,244,255,244,255,244,255,244,255,245,255,246,255,245,255,242,255,241,255,242,255,243,255,242,255,241,255, +240,255,241,255,242,255,242,255,241,255,242,255,245,255,249,255,251,255,254,255,1,0,4,0,7,0,9,0,10,0,10,0, +10,0,11,0,13,0,14,0,14,0,14,0,15,0,16,0,18,0,18,0,17,0,17,0,17,0,17,0,16,0,14,0, +12,0,9,0,8,0,6,0,4,0,2,0,255,255,253,255,252,255,251,255,249,255,246,255,246,255,247,255,249,255,250,255, +250,255,248,255,247,255,247,255,245,255,244,255,243,255,243,255,244,255,244,255,244,255,243,255,241,255,240,255,239,255,238,255, +238,255,238,255,240,255,241,255,241,255,242,255,244,255,246,255,248,255,249,255,250,255,252,255,254,255,0,0,1,0,3,0, +6,0,9,0,11,0,13,0,15,0,16,0,18,0,19,0,19,0,18,0,17,0,17,0,17,0,18,0,17,0,14,0, +12,0,11,0,11,0,11,0,10,0,9,0,8,0,8,0,8,0,8,0,7,0,6,0,5,0,4,0,3,0,1,0, +254,255,254,255,255,255,0,0,254,255,249,255,246,255,245,255,245,255,243,255,240,255,237,255,238,255,240,255,240,255,238,255, +237,255,236,255,238,255,240,255,241,255,243,255,243,255,244,255,246,255,247,255,249,255,250,255,251,255,253,255,255,255,1,0, +2,0,4,0,7,0,10,0,12,0,13,0,14,0,17,0,19,0,20,0,19,0,18,0,16,0,15,0,15,0,16,0, +15,0,15,0,15,0,14,0,12,0,10,0,8,0,8,0,7,0,7,0,5,0,4,0,3,0,3,0,2,0,0,0, +255,255,255,255,0,0,255,255,253,255,250,255,249,255,249,255,248,255,245,255,241,255,239,255,238,255,237,255,236,255,235,255, +235,255,237,255,239,255,240,255,240,255,240,255,242,255,246,255,248,255,248,255,247,255,247,255,248,255,249,255,251,255,252,255, +253,255,255,255,1,0,5,0,8,0,10,0,12,0,13,0,15,0,17,0,17,0,17,0,18,0,20,0,21,0,20,0, +19,0,19,0,20,0,21,0,22,0,22,0,20,0,18,0,16,0,14,0,12,0,9,0,7,0,6,0,4,0,2,0, +0,0,253,255,252,255,251,255,251,255,249,255,248,255,247,255,245,255,244,255,242,255,242,255,242,255,241,255,238,255,236,255, +236,255,237,255,237,255,237,255,238,255,240,255,242,255,242,255,241,255,241,255,243,255,244,255,245,255,246,255,248,255,249,255, +250,255,252,255,253,255,0,0,2,0,3,0,5,0,8,0,10,0,10,0,9,0,9,0,12,0,14,0,14,0,14,0, +14,0,15,0,16,0,16,0,15,0,14,0,13,0,13,0,14,0,13,0,11,0,9,0,7,0,6,0,6,0,6,0, +5,0,5,0,5,0,4,0,2,0,0,0,255,255,0,0,255,255,254,255,252,255,250,255,248,255,247,255,246,255,245,255, +245,255,243,255,241,255,238,255,238,255,238,255,238,255,239,255,240,255,240,255,240,255,241,255,241,255,241,255,242,255,244,255, +247,255,248,255,249,255,250,255,252,255,254,255,0,0,2,0,3,0,4,0,6,0,9,0,10,0,10,0,10,0,11,0, +13,0,16,0,17,0,16,0,16,0,16,0,16,0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,12,0,9,0, +8,0,8,0,7,0,5,0,3,0,2,0,1,0,0,0,254,255,251,255,250,255,249,255,250,255,249,255,247,255,246,255, +245,255,244,255,242,255,241,255,240,255,239,255,239,255,239,255,239,255,240,255,240,255,239,255,239,255,239,255,240,255,241,255, +241,255,243,255,246,255,249,255,250,255,251,255,253,255,254,255,255,255,1,0,3,0,4,0,5,0,6,0,6,0,7,0, +9,0,12,0,13,0,15,0,16,0,16,0,16,0,15,0,16,0,16,0,15,0,15,0,14,0,13,0,12,0,11,0, +10,0,9,0,8,0,7,0,7,0,7,0,7,0,5,0,2,0,1,0,0,0,0,0,254,255,252,255,251,255,250,255, +250,255,249,255,248,255,247,255,246,255,245,255,245,255,244,255,242,255,240,255,239,255,239,255,241,255,242,255,241,255,241,255, +243,255,244,255,244,255,244,255,245,255,248,255,251,255,252,255,252,255,254,255,0,0,2,0,3,0,4,0,6,0,7,0, +9,0,10,0,12,0,13,0,15,0,16,0,16,0,15,0,13,0,12,0,13,0,14,0,15,0,15,0,15,0,14,0, +13,0,14,0,14,0,13,0,11,0,10,0,9,0,8,0,6,0,5,0,4,0,3,0,0,0,255,255,254,255,253,255, +252,255,251,255,249,255,247,255,245,255,245,255,244,255,243,255,242,255,241,255,241,255,241,255,241,255,240,255,240,255,240,255, +241,255,241,255,243,255,245,255,246,255,247,255,249,255,250,255,251,255,251,255,254,255,0,0,2,0,3,0,5,0,6,0, +6,0,7,0,9,0,10,0,11,0,11,0,13,0,14,0,13,0,14,0,14,0,15,0,14,0,14,0,15,0,15,0, +15,0,14,0,12,0,11,0,10,0,9,0,8,0,9,0,8,0,5,0,3,0,2,0,1,0,0,0,254,255,254,255, +252,255,251,255,249,255,249,255,249,255,248,255,248,255,248,255,247,255,244,255,243,255,243,255,244,255,243,255,242,255,242,255, +242,255,242,255,241,255,242,255,243,255,244,255,245,255,245,255,246,255,248,255,249,255,250,255,251,255,253,255,254,255,0,0, +3,0,4,0,5,0,5,0,7,0,8,0,8,0,9,0,10,0,11,0,10,0,11,0,12,0,12,0,12,0,12,0, +12,0,12,0,11,0,11,0,10,0,9,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0,5,0,4,0,3,0, +3,0,2,0,1,0,0,0,0,0,255,255,252,255,250,255,248,255,247,255,246,255,244,255,242,255,241,255,240,255,240,255, +241,255,242,255,242,255,241,255,241,255,242,255,242,255,243,255,245,255,246,255,246,255,246,255,248,255,251,255,253,255,255,255, +1,0,2,0,3,0,4,0,5,0,7,0,8,0,9,0,9,0,9,0,10,0,12,0,12,0,11,0,11,0,11,0, +12,0,12,0,11,0,11,0,11,0,11,0,12,0,12,0,13,0,13,0,12,0,11,0,10,0,10,0,8,0,6,0, +5,0,5,0,3,0,1,0,255,255,253,255,251,255,250,255,250,255,249,255,249,255,248,255,248,255,248,255,247,255,247,255, +247,255,246,255,245,255,244,255,245,255,246,255,247,255,247,255,246,255,246,255,247,255,247,255,248,255,249,255,250,255,249,255, +249,255,251,255,253,255,255,255,0,0,2,0,4,0,5,0,6,0,8,0,9,0,10,0,10,0,11,0,11,0,10,0, +10,0,11,0,11,0,11,0,12,0,13,0,13,0,13,0,13,0,13,0,12,0,12,0,11,0,10,0,8,0,8,0, +6,0,5,0,3,0,2,0,1,0,0,0,0,0,255,255,254,255,253,255,251,255,249,255,247,255,247,255,248,255,248,255, +247,255,247,255,248,255,247,255,245,255,243,255,243,255,244,255,245,255,245,255,246,255,246,255,246,255,245,255,246,255,247,255, +248,255,250,255,252,255,252,255,253,255,254,255,255,255,0,0,1,0,2,0,4,0,5,0,6,0,7,0,8,0,8,0, +8,0,7,0,8,0,9,0,10,0,9,0,9,0,11,0,11,0,10,0,10,0,10,0,10,0,9,0,8,0,7,0, +6,0,4,0,4,0,4,0,4,0,2,0,1,0,1,0,1,0,1,0,255,255,253,255,251,255,251,255,250,255,249,255, +249,255,249,255,248,255,247,255,246,255,246,255,246,255,246,255,247,255,247,255,246,255,246,255,245,255,246,255,246,255,247,255, +247,255,247,255,248,255,250,255,251,255,250,255,249,255,249,255,250,255,252,255,253,255,255,255,1,0,2,0,3,0,3,0, +4,0,5,0,7,0,9,0,10,0,11,0,11,0,10,0,9,0,9,0,10,0,9,0,8,0,7,0,6,0,5,0, +5,0,5,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,4,0,2,0,1,0,0,0,255,255,254,255,253,255, +252,255,251,255,249,255,248,255,247,255,246,255,246,255,245,255,243,255,243,255,244,255,245,255,245,255,245,255,244,255,244,255, +243,255,242,255,243,255,245,255,246,255,248,255,250,255,252,255,251,255,251,255,251,255,251,255,253,255,254,255,254,255,255,255, +0,0,1,0,1,0,2,0,4,0,5,0,6,0,7,0,9,0,10,0,9,0,8,0,8,0,9,0,9,0,10,0, +11,0,10,0,9,0,8,0,6,0,5,0,5,0,5,0,5,0,4,0,2,0,2,0,1,0,0,0,255,255,254,255, +253,255,252,255,252,255,251,255,250,255,249,255,248,255,247,255,246,255,247,255,247,255,247,255,247,255,247,255,248,255,246,255, +245,255,244,255,244,255,245,255,246,255,246,255,247,255,247,255,248,255,249,255,250,255,251,255,252,255,252,255,252,255,252,255, +252,255,252,255,253,255,255,255,1,0,1,0,2,0,3,0,5,0,6,0,7,0,8,0,8,0,9,0,9,0,9,0, +9,0,10,0,11,0,11,0,10,0,10,0,9,0,8,0,7,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0, +4,0,2,0,1,0,255,255,255,255,254,255,254,255,253,255,251,255,248,255,247,255,247,255,247,255,246,255,245,255,246,255, +246,255,245,255,244,255,243,255,243,255,244,255,245,255,246,255,247,255,248,255,249,255,250,255,251,255,252,255,253,255,254,255, +255,255,0,0,0,0,1,0,2,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,6,0,7,0,7,0,8,0, +11,0,13,0,12,0,10,0,10,0,11,0,11,0,10,0,11,0,11,0,10,0,8,0,7,0,6,0,5,0,4,0, +2,0,1,0,0,0,0,0,255,255,254,255,252,255,250,255,250,255,250,255,250,255,249,255,249,255,248,255,248,255,248,255, +248,255,248,255,248,255,248,255,248,255,248,255,247,255,246,255,246,255,247,255,248,255,249,255,250,255,252,255,251,255,250,255, +251,255,253,255,255,255,0,0,2,0,4,0,5,0,5,0,6,0,7,0,8,0,8,0,9,0,10,0,11,0,12,0, +12,0,12,0,12,0,12,0,12,0,12,0,12,0,11,0,9,0,8,0,8,0,8,0,7,0,6,0,6,0,6,0, +5,0,5,0,4,0,2,0,0,0,255,255,0,0,255,255,253,255,252,255,252,255,251,255,250,255,250,255,249,255,248,255, +248,255,249,255,248,255,247,255,247,255,247,255,247,255,247,255,247,255,247,255,248,255,249,255,250,255,250,255,248,255,248,255, +250,255,251,255,252,255,253,255,255,255,2,0,5,0,8,0,9,0,9,0,9,0,9,0,8,0,8,0,8,0,10,0, +11,0,12,0,13,0,13,0,12,0,12,0,12,0,11,0,10,0,9,0,9,0,8,0,7,0,7,0,8,0,9,0, +9,0,8,0,7,0,6,0,4,0,2,0,1,0,0,0,0,0,255,255,253,255,252,255,252,255,251,255,250,255,248,255, +247,255,246,255,245,255,244,255,243,255,242,255,242,255,243,255,244,255,244,255,246,255,247,255,247,255,248,255,250,255,251,255, +250,255,250,255,251,255,252,255,253,255,254,255,0,0,2,0,3,0,6,0,7,0,6,0,6,0,6,0,7,0,7,0, +7,0,8,0,9,0,11,0,11,0,11,0,12,0,12,0,12,0,11,0,11,0,11,0,11,0,9,0,9,0,9,0, +10,0,9,0,8,0,8,0,8,0,5,0,3,0,2,0,2,0,0,0,254,255,255,255,0,0,255,255,253,255,252,255, +252,255,250,255,249,255,247,255,246,255,245,255,245,255,245,255,245,255,245,255,245,255,246,255,246,255,246,255,246,255,246,255, +248,255,249,255,249,255,250,255,251,255,251,255,252,255,253,255,254,255,255,255,0,0,2,0,3,0,4,0,5,0,6,0, +6,0,7,0,9,0,11,0,11,0,11,0,11,0,11,0,11,0,12,0,13,0,13,0,13,0,12,0,11,0,10,0, +10,0,9,0,8,0,7,0,7,0,6,0,5,0,4,0,3,0,3,0,3,0,2,0,0,0,255,255,253,255,251,255, +251,255,250,255,249,255,248,255,248,255,248,255,247,255,246,255,246,255,246,255,244,255,243,255,244,255,244,255,245,255,245,255, +246,255,247,255,248,255,248,255,249,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,253,255,255,255,0,0,1,0, +3,0,4,0,5,0,6,0,6,0,5,0,6,0,7,0,9,0,10,0,10,0,11,0,12,0,11,0,10,0,10,0, +9,0,7,0,6,0,7,0,8,0,8,0,9,0,10,0,9,0,8,0,7,0,6,0,3,0,2,0,0,0,255,255, +253,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,250,255,249,255,248,255,247,255,246,255,246,255,246,255,246,255, +245,255,246,255,247,255,248,255,248,255,247,255,247,255,247,255,248,255,248,255,249,255,250,255,253,255,254,255,255,255,1,0, +2,0,1,0,1,0,2,0,4,0,5,0,6,0,6,0,6,0,7,0,6,0,5,0,4,0,5,0,6,0,6,0, +8,0,9,0,8,0,7,0,7,0,6,0,4,0,4,0,5,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255, +254,255,252,255,251,255,250,255,249,255,248,255,248,255,248,255,248,255,247,255,247,255,246,255,245,255,244,255,244,255,245,255, +244,255,243,255,245,255,246,255,245,255,246,255,248,255,250,255,250,255,250,255,250,255,251,255,251,255,253,255,254,255,255,255, +255,255,255,255,0,0,1,0,2,0,3,0,3,0,4,0,3,0,3,0,4,0,5,0,5,0,5,0,6,0,7,0, +8,0,8,0,8,0,7,0,6,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,3,0,2,0,1,0, +0,0,0,0,0,0,255,255,253,255,253,255,251,255,249,255,249,255,250,255,248,255,246,255,247,255,248,255,247,255,246,255, +246,255,247,255,246,255,245,255,245,255,245,255,245,255,246,255,246,255,247,255,249,255,250,255,251,255,253,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,1,0,2,0,3,0,4,0,5,0,5,0,6,0,5,0,5,0,6,0,8,0, +8,0,8,0,9,0,9,0,9,0,10,0,11,0,11,0,10,0,9,0,9,0,8,0,6,0,5,0,5,0,5,0, +5,0,4,0,2,0,2,0,1,0,255,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,249,255,249,255,248,255, +248,255,249,255,249,255,247,255,246,255,246,255,245,255,245,255,245,255,246,255,247,255,248,255,250,255,250,255,251,255,251,255, +252,255,252,255,252,255,252,255,252,255,253,255,255,255,1,0,1,0,2,0,3,0,4,0,4,0,5,0,7,0,7,0, +7,0,6,0,7,0,8,0,9,0,9,0,9,0,10,0,12,0,12,0,12,0,10,0,9,0,8,0,8,0,7,0, +6,0,6,0,5,0,4,0,3,0,3,0,3,0,2,0,1,0,0,0,254,255,253,255,252,255,251,255,250,255,249,255, +249,255,248,255,248,255,249,255,249,255,249,255,249,255,249,255,248,255,247,255,247,255,247,255,246,255,246,255,246,255,248,255, +248,255,248,255,248,255,249,255,250,255,251,255,253,255,255,255,255,255,254,255,255,255,1,0,2,0,4,0,5,0,6,0, +7,0,9,0,9,0,9,0,10,0,10,0,9,0,8,0,9,0,11,0,11,0,10,0,11,0,12,0,11,0,9,0, +8,0,7,0,6,0,5,0,5,0,6,0,5,0,4,0,4,0,2,0,1,0,0,0,1,0,0,0,254,255,253,255, +254,255,253,255,251,255,250,255,249,255,248,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,249,255,250,255,249,255, +248,255,248,255,248,255,247,255,248,255,249,255,251,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +2,0,3,0,4,0,6,0,7,0,9,0,9,0,9,0,8,0,8,0,7,0,7,0,8,0,8,0,7,0,6,0, +6,0,6,0,7,0,7,0,8,0,7,0,6,0,4,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,255,255, +254,255,254,255,253,255,251,255,250,255,251,255,250,255,248,255,249,255,249,255,249,255,250,255,250,255,249,255,248,255,247,255, +248,255,248,255,249,255,249,255,250,255,251,255,250,255,251,255,252,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0, +2,0,2,0,2,0,4,0,6,0,7,0,8,0,8,0,9,0,9,0,9,0,9,0,9,0,9,0,8,0,7,0, +7,0,7,0,7,0,7,0,6,0,6,0,6,0,7,0,6,0,6,0,5,0,5,0,4,0,4,0,4,0,4,0, +3,0,2,0,2,0,0,0,255,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,251,255, +251,255,251,255,251,255,252,255,252,255,252,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0, +4,0,4,0,3,0,4,0,4,0,4,0,3,0,5,0,7,0,7,0,6,0,8,0,9,0,10,0,9,0,10,0, +10,0,9,0,9,0,9,0,11,0,10,0,9,0,8,0,8,0,7,0,6,0,6,0,5,0,4,0,2,0,2,0, +2,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,251,255,250,255,250,255,251,255,251,255,251,255,250,255,250,255, +251,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,255,255,0,0,1,0,1,0,2,0, +1,0,0,0,1,0,2,0,2,0,3,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,6,0, +7,0,6,0,6,0,7,0,7,0,6,0,5,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,3,0,3,0, +2,0,0,0,254,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,250,255,249,255, +250,255,250,255,249,255,248,255,248,255,249,255,249,255,249,255,249,255,250,255,251,255,250,255,250,255,251,255,251,255,251,255, +253,255,254,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,2,0,3,0, +2,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0, +0,0,0,0,0,0,254,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,250,255,249,255,248,255, +247,255,247,255,248,255,249,255,250,255,249,255,250,255,250,255,250,255,250,255,250,255,251,255,250,255,250,255,249,255,250,255, +251,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,1,0,1,0,2,0,2,0,3,0,3,0, +3,0,4,0,4,0,4,0,4,0,4,0,3,0,2,0,3,0,4,0,4,0,4,0,5,0,5,0,4,0,3,0, +3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,253,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,251,255,250,255,251,255,251,255,251,255,250,255,251,255,252,255,252,255,251,255,252,255,253,255, +252,255,252,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,4,0, +5,0,5,0,5,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,6,0,7,0,7,0,7,0,7,0, +6,0,5,0,4,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeletonhurt3.pcm b/src/client/sound/data/skeletonhurt3.pcm new file mode 100755 index 0000000..e009191 --- /dev/null +++ b/src/client/sound/data/skeletonhurt3.pcm @@ -0,0 +1,1376 @@ +unsigned char PCM_skeletonhurt3[43954] = { +1,0,0,0,2,0,0,0,68,172,0,0,209,85,0,0,66,4,172,0,209,249,9,248,28,253,156,0,204,252,9,247, +200,246,241,250,46,253,205,250,95,246,250,243,0,246,11,251,144,254,154,253,32,250,95,248,111,250,161,254,173,0,6,254, +64,250,194,250,99,253,82,251,161,246,59,249,84,3,113,8,193,2,219,251,106,252,110,0,224,1,148,2,191,4,64,4, +63,254,109,247,122,245,149,248,23,254,157,3,108,6,76,5,8,3,243,2,108,4,56,5,106,5,26,6,62,7,118,8, +0,9,50,7,113,3,190,1,80,4,41,7,101,5,67,0,187,252,58,252,7,252,249,250,176,251,4,0,1,6,139,11, +245,14,200,8,44,244,142,232,217,14,217,91,30,118,160,31,239,162,174,130,251,197,168,252,27,249,112,4,6,57,231,57, +66,219,157,144,70,201,33,68,8,118,159,73,0,9,37,209,16,152,117,139,250,225,113,93,147,120,201,29,189,197,129,200, +240,245,164,5,203,10,66,46,127,67,106,7,214,161,135,131,213,206,74,54,22,106,31,89,188,17,67,183,50,144,144,198, +181,26,138,41,218,249,88,231,245,6,219,13,103,226,169,213,77,32,60,126,255,127,191,57,106,213,86,149,76,132,244,152, +43,192,166,220,20,226,217,233,19,14,88,57,228,66,147,54,157,73,74,121,200,117,114,22,232,166,218,132,77,164,224,188, +171,196,158,230,185,26,154,39,107,8,194,251,26,32,172,71,15,68,128,36,89,13,193,253,35,226,37,198,175,201,124,233, +14,253,153,247,253,255,85,42,130,69,31,35,164,237,107,239,177,26,72,30,68,234,46,197,181,211,44,231,20,222,176,223, +105,12,253,58,74,58,233,31,66,29,197,44,144,35,140,255,55,234,211,241,180,244,64,222,235,201,135,209,15,225,242,223, +227,228,63,15,219,66,199,69,150,27,184,4,73,27,85,46,99,21,30,239,239,232,119,246,46,239,120,213,253,206,106,229, +107,253,110,8,232,19,245,33,6,28,126,252,173,226,65,230,22,243,221,236,167,223,48,235,5,12,181,29,235,16,253,254, +55,2,102,20,68,31,36,27,40,15,233,253,136,226,229,192,78,172,227,182,115,222,235,13,42,46,17,52,123,38,148,26, +195,32,104,48,163,49,53,30,137,7,85,247,174,225,216,193,41,173,6,185,120,224,32,11,142,41,237,56,147,54,10,35, +244,10,129,253,45,253,35,2,75,5,95,2,33,247,67,232,236,225,188,237,247,9,10,42,44,60,233,50,1,17,105,234, +161,211,125,209,129,219,67,232,248,242,66,250,223,254,92,2,24,7,228,17,156,36,106,51,54,43,208,11,197,237,154,225, +199,217,129,199,44,187,27,205,119,242,40,8,180,3,99,252,161,4,168,21,92,36,16,49,34,58,179,50,10,19,15,232, +65,201,215,195,26,212,225,237,145,5,233,18,151,18,210,9,11,5,63,12,12,25,230,30,56,27,206,19,154,7,109,240, +33,214,112,206,224,225,46,255,208,17,83,23,100,22,177,15,40,3,74,248,35,245,60,245,170,242,198,239,178,239,78,238, +107,233,150,234,68,252,249,23,37,41,202,34,66,12,211,246,128,235,50,231,226,229,186,233,255,243,137,253,250,253,184,247, +37,245,18,251,43,5,4,15,158,24,151,32,251,32,89,21,211,0,169,236,73,226,99,229,183,240,223,249,5,251,178,247, +180,246,176,250,75,3,203,16,169,32,119,41,202,33,50,12,13,246,234,233,178,229,119,227,30,229,66,238,59,249,190,252, +134,250,9,254,128,11,110,25,252,29,113,26,17,21,99,15,14,9,223,5,68,8,123,9,6,1,47,243,217,238,138,250, +104,11,191,18,54,14,16,6,208,0,213,254,194,254,0,255,191,251,158,242,196,233,37,237,193,0,61,25,99,38,40,35, +144,23,14,12,190,0,212,242,205,229,141,225,198,231,86,240,211,242,211,240,57,243,110,254,12,13,123,22,94,23,65,18, +89,11,42,6,186,4,196,5,8,5,130,0,10,252,74,252,70,255,191,254,54,250,24,249,159,0,37,12,42,19,91,19, +52,16,161,11,209,4,157,253,219,250,142,253,31,0,233,252,230,244,193,237,120,235,225,237,114,242,108,246,75,248,179,248, +23,249,21,249,65,247,239,244,194,245,163,249,235,250,7,246,157,239,93,238,89,241,116,242,28,241,47,243,64,250,117,255, +135,253,140,248,230,246,191,247,222,246,167,245,136,248,139,253,52,254,56,251,150,253,227,8,11,20,24,21,114,14,228,9, +127,10,252,10,112,8,139,6,225,7,246,8,38,6,167,1,211,255,59,1,1,3,63,4,87,6,184,8,182,8,235,5, +30,3,6,2,238,0,213,253,139,249,84,246,42,245,75,245,25,245,238,242,16,239,74,237,227,241,150,251,76,3,0,4, +146,0,17,255,208,0,231,2,137,4,156,7,55,11,16,11,70,6,3,2,162,2,19,6,108,8,85,10,35,14,20,17, +138,13,228,3,166,251,95,250,218,253,38,1,251,2,38,4,101,3,76,255,145,250,39,250,36,255,133,5,201,8,33,7, +181,0,75,247,41,239,252,236,92,241,66,248,160,253,86,0,95,0,179,253,179,250,35,252,121,3,118,11,164,13,122,9, +235,2,4,252,222,244,136,240,199,243,88,253,250,4,22,5,21,1,231,254,151,254,30,253,253,251,103,255,229,5,167,8, +63,5,18,1,232,0,104,2,115,1,72,255,114,255,206,0,90,255,112,251,126,249,178,250,106,251,248,249,182,249,242,252, +107,0,57,0,209,253,31,253,30,254,181,253,150,251,126,250,244,250,107,250,94,248,254,247,3,251,146,254,208,255,83,0, +211,2,23,6,251,6,25,6,14,7,104,10,118,12,238,10,33,8,184,6,131,5,195,2,144,0,34,2,36,6,27,8, +13,7,151,6,207,8,92,11,33,12,199,12,239,14,19,16,2,13,131,7,137,4,158,5,3,8,251,9,199,12,114,16, +212,17,10,15,206,10,142,8,139,7,227,4,190,0,212,253,190,252,127,251,173,249,116,249,135,251,143,253,37,254,53,255, +13,2,209,3,243,0,152,250,34,245,130,242,111,241,170,241,202,244,3,250,27,253,170,251,109,248,237,246,125,246,145,244, +242,241,161,241,129,243,39,244,98,242,21,241,138,242,101,245,3,248,136,251,182,0,65,4,21,2,26,251,97,244,21,241, +143,240,252,241,212,245,156,250,105,252,23,250,56,248,147,251,171,2,199,7,26,8,99,5,146,1,35,253,33,250,64,252, +154,3,145,10,243,11,56,9,183,7,79,9,76,11,160,11,60,11,178,10,56,8,228,2,77,253,205,250,187,251,71,254, +151,1,212,5,249,9,28,12,224,11,178,10,160,9,130,8,74,7,68,6,253,4,204,2,190,0,207,0,136,2,216,2, +131,0,38,254,206,253,234,252,8,248,6,241,135,237,104,239,9,243,164,245,234,248,54,254,107,2,73,2,16,0,111,0, +14,3,240,2,173,254,112,251,120,253,166,1,41,2,225,254,229,252,28,255,98,3,142,6,229,7,242,7,73,6,11,2, +149,252,238,249,123,252,4,1,63,2,79,0,101,0,118,4,75,8,253,7,147,4,183,0,112,253,52,251,101,250,73,250, +154,250,62,253,118,3,202,10,169,15,21,17,73,15,136,9,130,0,176,248,180,246,171,249,210,251,210,249,131,247,238,250, +97,3,194,9,114,10,181,9,158,11,51,13,203,9,191,2,235,252,240,249,51,248,88,247,240,248,90,253,60,2,166,4, +114,4,108,4,55,6,140,7,116,5,105,0,191,250,99,245,17,241,89,240,69,245,100,254,144,7,121,12,15,11,126,5, +88,0,110,253,78,251,221,249,15,250,59,249,77,244,130,239,95,242,69,252,124,5,222,9,235,9,240,4,187,251,14,245, +30,246,189,250,123,252,173,251,53,251,143,250,32,250,209,253,170,5,207,10,248,8,197,4,32,4,17,5,241,0,168,246, +125,237,185,236,50,243,39,250,121,254,22,2,139,5,181,6,4,6,18,5,106,3,170,1,48,2,37,4,3,3,50,254, +119,250,209,249,156,249,138,249,255,251,216,255,4,2,59,3,222,4,145,4,218,1,206,1,94,6,94,9,81,6,114,1, +167,255,219,254,111,251,149,247,169,248,72,255,196,4,57,2,28,250,83,246,187,250,108,0,79,1,49,255,111,252,69,249, +54,250,28,3,69,11,141,6,103,249,248,242,166,246,99,252,241,0,81,5,75,6,5,3,137,1,156,2,68,255,155,248, +133,248,176,255,128,5,76,8,116,10,216,6,210,251,137,245,168,250,28,255,5,250,117,244,24,246,184,250,88,1,213,11, +156,17,58,16,71,27,65,53,20,47,142,229,13,143,160,141,9,243,226,98,238,117,114,31,87,180,105,158,87,249,91,111, +255,127,17,51,199,186,117,132,56,171,244,1,172,61,119,42,215,222,13,177,2,214,176,29,14,55,93,28,163,7,108,16, +172,19,62,251,235,227,46,238,235,16,39,43,40,40,134,7,231,216,156,185,68,192,75,223,103,239,129,226,64,214,235,229, +29,4,22,25,53,44,86,76,189,98,247,72,18,6,103,207,252,202,17,237,215,14,222,14,77,228,138,174,208,165,102,222, +54,40,121,71,253,58,112,42,166,38,92,36,221,34,74,42,22,45,197,19,207,226,138,182,121,160,156,161,180,186,12,231, +237,16,1,36,87,37,25,39,188,44,24,44,157,34,155,24,185,17,56,7,25,244,100,223,140,213,204,217,163,227,109,235, +136,242,86,252,199,7,34,20,44,34,93,44,203,41,94,28,21,14,177,255,63,237,34,226,135,237,253,1,11,0,17,230, +139,213,116,226,38,253,197,17,24,29,138,28,90,10,43,241,188,230,3,238,132,247,61,254,46,9,152,18,153,10,70,243, +56,226,112,229,36,248,23,14,113,26,19,19,94,252,159,233,41,230,163,233,212,236,224,248,122,18,220,37,218,27,62,251, +77,227,92,231,19,253,19,14,170,15,47,6,55,250,245,241,188,241,176,250,119,7,189,15,101,16,70,11,188,255,244,236, +231,220,108,224,80,249,236,17,146,19,32,0,49,238,161,239,206,1,244,20,227,29,115,30,252,28,84,23,127,5,31,234, +160,214,116,216,189,232,188,245,95,247,188,243,176,243,162,250,182,6,172,21,88,35,102,40,160,33,182,19,238,6,172,255, +53,252,41,249,135,245,85,241,43,236,183,231,237,231,202,237,137,245,57,252,197,2,204,9,26,15,184,16,18,15,4,12, +129,9,109,7,147,2,72,249,1,240,116,236,98,238,39,242,94,246,57,250,92,251,211,249,85,249,171,252,59,4,250,14, +165,23,72,22,250,10,123,0,153,254,130,1,8,2,41,254,211,247,7,243,94,244,87,251,26,2,105,6,33,11,96,15, +184,14,149,10,186,8,69,10,65,13,102,17,106,19,159,12,100,254,128,244,90,247,185,3,118,15,161,15,171,1,243,245, +167,4,223,46,46,87,48,95,188,64,9,10,68,209,178,172,118,168,149,192,152,230,241,6,95,13,204,245,14,217,75,216, +181,251,159,46,116,82,124,77,250,25,1,213,16,174,80,187,35,232,13,16,58,29,0,16,38,249,86,237,40,246,56,15, +237,43,1,55,171,26,238,221,103,173,126,176,77,223,247,17,82,42,69,33,0,255,30,215,164,193,69,205,171,248,64,49, +199,84,53,70,238,12,151,210,70,188,148,208,211,253,105,39,107,51,235,30,95,255,201,234,149,232,142,249,247,24,104,50, +30,45,47,7,47,216,53,188,46,198,150,249,92,65,38,117,243,116,238,64,251,248,183,198,164,189,73,205,189,220,177,235, +212,1,208,11,61,240,2,195,230,186,17,239,108,60,39,110,215,105,101,54,41,238,77,176,38,151,34,177,2,243,72,47, +99,53,3,9,43,229,159,248,208,50,109,95,38,94,120,50,46,241,76,176,30,131,0,128,22,161,52,235,17,51,76,80, +11,59,75,16,180,246,149,3,54,47,111,89,153,96,133,58,58,246,197,173,0,128,0,128,12,160,173,203,178,233,54,3, +82,37,103,71,231,87,179,82,221,63,71,39,212,12,233,242,199,221,244,210,2,208,144,199,99,181,138,175,238,206,57,9, +249,54,19,63,166,41,173,10,140,239,38,228,156,244,237,28,234,63,225,59,78,10,45,199,89,154,22,157,226,205,129,16, +14,60,6,57,251,20,215,239,79,219,184,217,147,239,45,27,153,64,72,60,218,13,79,219,216,199,227,216,127,0,66,43, +146,65,44,49,147,0,148,206,113,183,176,192,76,224,13,11,233,51,162,70,62,54,137,15,38,243,251,247,227,19,73,37, +28,22,112,242,26,216,9,212,62,218,40,223,29,233,88,1,28,33,9,57,67,65,68,56,141,29,26,251,78,232,240,240, +186,0,43,251,161,226,174,211,129,220,6,239,62,252,4,7,32,21,0,33,226,35,48,32,82,25,97,13,193,254,40,248, +117,254,166,7,2,7,61,250,41,230,149,209,127,201,215,220,89,8,244,47,94,57,129,40,186,22,115,18,149,19,7,14, +100,2,106,248,25,242,70,235,133,226,142,220,62,222,126,230,84,240,156,249,70,4,243,15,229,22,203,21,169,19,201,26, +11,41,81,46,212,30,171,2,92,237,97,231,236,229,3,219,26,201,4,193,13,205,200,228,0,249,35,6,182,19,177,36, +236,49,203,52,175,46,237,34,113,17,96,251,192,229,55,211,75,194,56,182,222,184,179,204,192,228,208,243,134,253,51,14, +2,38,105,55,22,57,97,47,84,35,87,24,74,12,121,252,138,233,90,217,217,210,194,212,81,213,247,208,174,211,120,234, +213,14,37,43,62,51,15,47,137,43,10,42,171,34,22,17,239,250,171,234,222,231,208,239,37,247,175,245,174,238,6,235, +35,238,164,244,204,251,9,5,138,17,179,29,151,34,47,28,118,14,45,3,11,0,26,0,82,250,237,237,94,227,61,225, +230,229,58,237,16,247,181,4,65,19,112,27,53,23,4,8,17,248,252,241,4,245,200,245,4,238,136,229,62,230,75,238, +167,246,175,0,251,16,189,32,52,34,48,20,214,4,240,254,15,255,81,253,193,247,211,239,176,230,254,223,209,224,90,232, +62,240,239,246,91,2,228,20,129,38,225,45,130,43,182,38,159,34,223,26,214,10,122,245,156,228,140,223,203,226,11,228, +194,223,187,222,161,234,243,0,53,22,2,35,255,39,10,39,193,31,237,19,172,9,9,6,40,7,73,5,200,249,94,230, +247,213,255,211,130,225,195,244,1,4,14,13,172,17,55,18,141,15,137,13,154,14,124,15,139,11,252,2,60,249,7,240, +115,232,254,229,17,235,175,243,247,248,170,249,161,250,207,254,195,3,240,6,101,9,218,11,74,11,74,5,87,253,174,249, +212,251,250,255,61,3,74,6,59,9,100,9,230,5,239,2,254,4,198,10,125,14,39,13,17,8,221,0,101,248,167,241, +87,241,69,248,7,1,22,6,95,8,165,12,80,19,199,22,175,18,159,9,137,1,229,252,72,250,93,249,38,252,46,2, +255,5,121,2,203,249,57,244,100,247,152,0,122,8,190,10,177,8,58,5,6,1,217,251,7,248,216,249,96,2,99,12, +119,16,40,12,65,3,44,250,237,241,81,235,136,234,236,242,11,0,21,8,229,6,74,2,227,0,71,1,211,254,175,251, +197,254,7,8,203,13,202,8,146,253,92,246,26,247,194,251,93,255,249,255,83,253,160,248,114,245,178,246,141,250,2,253, +11,254,179,0,27,4,22,3,143,252,179,246,138,246,106,249,12,251,41,253,182,2,41,7,164,2,114,246,154,237,150,239, +211,248,13,2,57,8,245,9,109,4,21,249,106,241,119,245,224,0,49,8,120,7,114,4,222,2,66,255,212,247,233,242, +28,247,109,1,86,8,80,6,112,253,114,243,133,238,85,243,135,0,229,12,35,15,239,7,98,0,169,254,203,0,190,2, +241,3,154,4,188,2,170,253,3,249,69,248,249,249,15,251,105,252,76,0,242,3,222,1,31,251,65,248,112,254,44,8, +31,12,255,7,155,1,160,255,3,4,105,11,57,15,139,10,44,0,192,249,130,253,84,6,183,9,115,4,55,253,14,251, +237,253,153,1,182,3,161,4,20,5,111,5,236,5,245,5,97,4,5,1,149,252,190,246,12,239,152,232,142,233,104,244, +126,3,251,13,24,16,157,12,9,8,220,4,78,3,111,1,15,252,154,242,47,234,235,233,55,243,164,255,56,7,104,7, +193,3,164,1,230,3,201,8,99,11,43,8,174,0,159,249,124,245,241,242,150,240,171,239,223,241,105,246,249,250,149,254, +135,2,242,8,85,18,225,26,14,27,66,14,1,250,9,235,48,233,188,240,76,249,121,255,39,4,112,6,116,4,235,0, +200,1,110,8,211,15,48,19,248,17,102,12,152,1,237,243,219,234,69,236,73,246,74,2,145,11,80,16,198,15,217,11, +48,10,76,14,91,19,214,16,193,5,193,250,182,247,7,251,80,253,0,251,234,247,95,250,35,4,189,15,195,20,2,16, +6,7,199,1,160,1,71,1,64,253,74,248,156,246,130,248,110,251,148,253,95,254,238,253,177,254,235,3,63,12,211,16, +244,12,255,3,109,252,202,247,250,243,203,241,245,243,153,248,80,250,149,248,127,249,26,1,76,11,35,17,230,16,106,13, +114,8,52,2,64,252,74,248,135,245,129,242,17,240,7,240,84,242,106,245,200,248,96,253,205,2,21,6,242,4,175,0, +67,252,219,249,152,250,158,253,102,255,8,253,206,247,152,243,157,242,98,244,194,247,172,251,187,253,194,251,208,248,208,251, +165,5,87,13,80,10,183,254,166,244,162,243,240,250,156,4,26,11,111,11,195,5,140,254,233,251,96,255,255,4,208,8, +147,9,216,6,160,0,106,249,96,246,135,251,146,6,62,15,230,14,126,6,180,252,73,248,138,251,1,3,229,8,220,9, +245,5,69,255,22,249,121,246,247,248,48,0,181,8,237,12,124,10,205,4,122,0,56,255,31,0,187,0,49,255,233,252, +124,252,120,253,47,253,179,250,123,248,116,250,69,1,202,7,228,7,64,1,75,249,43,246,110,250,240,2,12,9,79,8, +60,1,173,247,176,240,112,240,139,247,39,2,240,9,52,10,162,3,53,251,172,245,254,245,84,253,185,7,88,12,90,6, +221,250,52,243,247,243,20,251,195,3,41,10,212,11,158,7,40,255,14,247,219,243,251,246,4,254,80,4,127,6,128,4, +48,0,136,252,76,253,26,3,240,8,176,9,219,5,137,1,225,255,60,1,70,3,113,3,178,1,141,255,55,254,121,254, +24,0,229,1,199,3,65,6,101,8,51,9,229,8,149,7,199,5,220,4,3,4,14,1,166,253,131,253,0,0,63,1, +144,255,133,252,17,251,28,253,139,1,6,6,104,9,133,10,75,8,28,4,33,0,135,252,56,249,47,247,94,247,148,250, +192,255,78,2,224,255,223,252,141,253,24,0,179,1,102,2,71,2,51,1,77,0,12,0,99,255,234,253,87,252,175,251, +185,252,228,254,193,0,240,1,142,2,253,1,13,0,115,253,62,251,89,251,221,254,32,3,36,4,80,1,245,252,206,249, +4,250,42,253,241,255,37,0,157,254,7,253,164,252,152,253,237,253,109,252,212,251,188,254,133,2,213,2,209,255,38,253, +213,252,190,253,126,254,33,255,154,255,46,255,223,253,91,252,4,251,222,250,24,253,106,0,198,1,232,255,208,251,155,247, +107,246,23,250,62,0,118,4,157,4,114,1,105,253,142,251,63,253,250,0,48,4,25,5,251,2,129,254,171,249,222,246, +204,247,85,252,251,1,136,5,134,5,44,3,114,1,140,2,186,5,38,8,145,7,185,3,173,254,183,251,255,251,123,253, +125,254,35,255,248,254,200,253,231,253,6,1,240,4,67,7,213,8,82,10,153,9,75,5,250,255,131,253,111,254,151,255, +119,254,143,252,21,253,54,0,177,2,23,2,115,255,77,253,229,252,56,254,178,0,182,2,160,2,84,1,37,1,21,2, +33,2,230,0,196,255,84,255,47,255,27,255,13,255,33,255,165,255,55,0,202,255,126,254,16,254,201,255,254,2,215,5, +146,6,73,4,237,255,133,252,199,252,8,0,240,2,77,3,244,1,247,0,36,1,131,1,13,1,96,0,129,0,223,0, +190,0,239,0,167,1,90,1,220,255,254,254,79,255,12,0,108,1,39,3,76,3,103,1,152,255,18,255,53,255,220,255, +46,1,212,1,82,0,134,253,0,252,28,253,207,255,5,2,29,2,246,255,252,253,52,255,116,2,52,3,148,0,45,254, +140,253,82,253,193,253,171,255,27,1,55,0,89,254,139,253,47,254,166,255,231,0,65,1,23,1,156,0,92,255,1,254, +170,253,157,253,111,252,146,250,134,249,16,250,6,252,113,254,229,255,111,255,104,253,183,251,89,252,165,254,190,255,115,254, +34,252,78,250,20,250,33,252,247,254,65,0,83,0,238,0,166,1,91,1,3,1,215,1,3,3,22,3,237,1,114,0, +104,255,241,254,21,255,75,0,134,2,50,4,171,3,127,1,210,255,176,255,238,255,88,255,241,254,109,0,214,2,61,3, +45,1,163,255,187,0,28,3,137,4,159,4,7,4,216,2,212,0,63,254,8,252,82,251,141,252,57,255,132,2,89,5, +85,6,51,5,140,3,149,2,164,1,16,0,118,254,118,253,0,253,249,252,72,253,162,253,189,253,99,253,192,252,158,252, +174,253,185,255,182,1,88,2,30,1,53,255,228,253,211,252,178,251,166,251,17,253,84,254,93,254,29,254,152,254,52,255, +213,254,8,254,161,254,124,0,23,1,188,255,146,254,102,254,159,253,240,251,8,251,181,251,15,253,214,253,161,253,116,253, +191,254,17,1,5,2,53,0,100,253,144,252,16,254,134,255,249,255,147,0,46,1,143,0,126,255,91,255,109,255,6,255, +24,255,223,255,88,0,70,0,108,0,140,1,176,3,127,5,153,5,171,4,216,3,143,2,78,0,84,254,21,254,157,255, +123,1,207,1,131,0,99,255,106,255,115,0,254,2,188,6,61,9,182,8,52,6,11,4,117,3,84,3,209,1,202,255, +134,255,69,0,254,255,182,255,148,0,157,0,206,254,146,253,215,254,37,2,31,6,171,8,167,7,92,3,156,254,83,252, +124,253,100,0,73,2,81,2,200,1,203,1,58,2,136,2,151,2,123,2,58,1,235,253,164,250,166,250,115,253,12,0, +170,1,195,2,135,2,223,0,82,255,105,254,183,253,172,253,126,254,254,254,86,254,60,253,168,252,175,252,61,253,211,254, +70,1,224,2,119,2,231,0,79,255,73,254,155,254,182,255,149,255,46,254,113,253,133,253,110,253,154,253,34,254,254,253, +111,253,130,253,18,254,225,254,244,255,95,0,173,255,12,255,69,255,212,255,39,0,234,255,85,255,53,255,76,255,146,254, +55,253,200,251,73,250,215,249,119,251,205,253,116,255,156,0,140,0,180,254,124,253,233,254,108,1,214,2,67,2,147,255, +217,252,90,253,37,1,74,5,120,7,137,6,143,2,192,253,211,250,51,251,216,254,39,3,67,4,82,2,74,1,179,2, +193,4,97,6,107,7,20,7,252,4,214,1,157,254,107,252,36,252,224,253,223,0,81,3,102,3,159,1,207,255,59,254, +212,252,38,253,175,255,68,2,231,2,91,1,120,254,97,252,79,253,171,0,173,3,91,4,72,2,127,254,199,251,144,252, +235,255,109,2,15,2,27,0,16,255,204,255,140,1,99,3,53,4,211,2,168,255,162,252,69,251,65,252,155,255,145,3, +69,5,149,3,42,0,195,253,244,253,218,255,104,1,22,2,164,2,232,2,38,2,137,0,173,254,9,253,74,252,197,252, +226,253,243,254,244,255,203,0,172,0,53,255,203,253,70,254,56,0,114,1,71,1,240,0,234,0,63,0,53,254,172,251, +192,250,167,252,255,255,133,2,212,3,113,4,168,3,225,0,223,253,224,252,112,253,134,253,204,252,61,252,148,251,60,250, +195,249,55,252,190,0,2,4,131,3,216,255,59,252,150,251,1,254,148,1,125,4,60,5,239,2,169,254,235,250,153,249, +78,251,124,255,53,4,237,6,73,6,15,3,241,255,153,255,191,1,101,3,224,2,108,1,131,0,30,0,220,255,33,0, +179,1,49,4,92,5,102,3,154,255,206,252,87,252,232,253,154,0,21,3,22,4,225,2,207,255,48,253,120,253,204,255, +107,1,165,1,15,1,133,255,187,253,67,253,42,254,128,255,13,1,77,2,47,2,2,1,75,0,186,0,128,1,106,1, +72,0,14,255,121,254,104,254,189,254,167,255,249,0,23,2,154,2,213,2,83,3,115,3,211,1,232,254,251,252,237,252, +92,253,64,253,53,253,230,253,23,255,135,0,30,2,237,2,7,2,107,0,187,255,151,255,215,254,205,253,33,253,210,252, +4,253,169,253,40,254,243,254,185,0,181,1,188,255,90,252,212,250,139,251,239,252,193,254,18,1,57,2,186,0,222,253, +77,252,227,252,90,254,114,255,209,255,44,255,170,253,169,252,246,252,145,253,55,254,251,255,201,1,236,0,196,253,105,251, +105,251,35,253,25,255,164,255,183,254,234,253,235,253,109,254,159,255,46,1,28,2,141,2,12,3,72,3,17,3,67,2, +84,0,19,254,104,253,102,254,141,255,22,0,34,0,54,0,234,0,9,2,29,3,101,4,114,5,166,4,169,1,108,254, +57,253,233,254,86,2,235,4,231,4,231,2,170,0,62,255,253,254,16,0,254,1,160,3,8,4,229,2,129,0,143,254, +135,255,129,3,121,7,216,8,210,7,22,6,145,4,187,2,94,0,38,255,45,0,126,1,3,1,166,255,87,255,117,0, +227,1,46,2,69,1,109,0,156,255,132,253,182,250,5,249,101,248,232,247,62,248,125,250,26,254,168,1,40,4,229,4, +151,3,138,1,235,0,60,2,26,4,52,5,144,4,204,1,192,254,40,254,26,0,98,2,41,3,188,1,209,254,79,252, +246,250,151,249,132,247,177,245,48,245,58,246,81,248,144,250,48,252,52,253,50,254,14,255,18,255,42,255,103,1,48,5, +116,7,16,7,152,5,191,4,43,5,60,6,166,6,121,6,201,6,114,7,34,7,192,4,109,0,101,252,34,251,79,252, +65,254,73,0,48,1,62,255,5,251,228,246,203,244,194,245,50,249,245,252,164,255,23,1,105,1,77,1,168,1,161,2, +108,4,235,6,110,8,191,7,194,5,94,3,236,0,191,255,159,0,226,1,91,1,206,254,245,251,221,250,235,251,134,253, +11,254,91,253,94,252,12,252,236,252,212,254,241,0,123,2,28,3,93,2,252,255,139,253,101,253,182,255,238,2,214,5, +89,7,95,7,164,7,98,8,89,7,96,4,177,1,197,255,66,254,31,254,43,255,158,255,18,255,97,254,201,253,90,253, +82,253,49,253,170,251,153,248,100,246,245,246,228,247,92,245,100,239,225,232,44,229,105,232,84,244,245,3,110,15,113,19, +44,18,100,15,92,14,104,17,141,23,247,26,121,22,171,11,67,255,103,243,234,233,125,229,174,229,227,231,80,235,15,240, +119,246,136,255,41,9,2,14,114,12,222,7,24,3,144,255,80,255,173,2,193,6,117,8,38,7,0,4,132,0,24,254, +243,253,92,0,116,4,20,9,25,13,169,15,194,16,6,16,50,12,194,5,100,255,58,250,51,245,125,240,21,238,133,238, +113,239,157,238,99,237,203,238,148,243,40,251,107,5,142,16,229,24,103,28,137,27,161,23,23,18,133,11,255,3,3,252, +138,243,47,235,218,230,179,233,49,241,129,249,138,1,71,7,182,7,170,3,239,254,238,251,217,250,186,250,149,250,110,250, +94,250,11,250,37,250,70,252,252,0,151,7,39,15,43,22,163,25,146,22,164,13,124,3,54,252,237,248,228,248,28,250, +127,250,15,250,246,249,62,251,112,255,239,5,11,10,163,8,218,3,136,254,201,249,29,247,202,247,20,251,152,254,97,255, +170,252,162,249,210,249,134,253,65,3,3,9,29,12,113,11,34,9,78,8,206,9,213,11,132,12,131,11,185,8,98,4, +86,0,149,253,69,250,52,245,190,239,40,235,82,232,175,232,174,236,114,243,71,252,20,6,148,14,79,19,222,18,114,14, +35,9,78,4,183,254,124,247,102,239,129,232,75,229,123,230,197,234,109,241,61,250,180,3,219,11,84,17,72,19,244,17, +63,14,180,8,87,2,135,252,80,247,248,241,198,236,245,232,247,231,72,234,212,238,139,244,2,251,12,1,116,5,104,8, +45,10,135,10,148,9,192,7,15,6,215,5,179,6,104,7,93,8,124,9,145,8,197,4,201,255,49,251,37,248,178,247, +172,249,15,253,119,0,33,2,3,2,61,2,232,3,236,5,165,6,4,5,113,1,24,253,43,248,184,243,61,243,79,248, +246,255,197,6,153,11,71,14,79,15,28,16,112,17,39,18,60,16,52,11,141,4,127,253,202,246,97,242,191,241,182,243, +42,246,4,248,76,249,74,251,200,254,113,2,236,4,1,6,16,5,59,2,98,255,82,253,165,251,45,251,83,252,206,253, +109,255,103,2,96,6,73,9,132,9,233,6,218,2,169,255,98,255,219,1,236,3,191,2,62,255,205,251,96,249,132,248, +52,249,165,249,203,248,196,247,102,247,153,247,173,248,203,250,125,253,29,0,222,1,153,2,24,3,235,3,118,5,202,7, +254,8,237,6,186,2,82,255,50,254,88,255,131,1,199,2,128,2,41,1,34,255,44,253,223,251,139,250,204,248,99,247, +219,246,90,247,182,248,220,249,41,250,135,250,33,252,150,255,152,4,59,9,194,11,122,12,24,12,150,10,9,8,141,4, +124,0,49,253,187,251,180,251,19,252,226,251,105,251,238,252,112,1,83,6,199,8,176,8,47,7,72,5,8,4,130,4, +52,7,154,10,141,11,178,8,153,3,122,254,119,251,34,252,168,255,167,3,109,6,11,7,242,5,107,5,197,6,148,8, +229,8,214,6,188,2,84,254,178,251,237,251,188,254,236,1,195,2,55,1,130,255,51,255,131,0,148,2,199,3,116,3, +2,2,101,255,250,251,19,249,28,247,113,245,1,244,78,243,234,243,242,245,85,248,47,250,48,252,202,254,216,0,100,1, +15,1,56,1,238,1,114,1,94,255,188,253,187,252,231,249,46,245,65,241,142,239,57,240,86,243,184,247,136,251,22,254, +218,255,5,2,109,5,23,9,65,11,96,11,205,9,22,7,226,3,142,0,185,253,96,252,109,252,25,253,64,254,112,255, +193,255,166,255,65,0,152,1,232,2,64,3,247,1,222,255,207,254,7,0,100,3,223,6,176,7,133,5,144,2,89,0, +48,255,108,255,236,0,124,2,153,2,244,0,62,255,255,254,127,255,13,0,121,1,89,3,204,3,57,2,126,255,20,253, +151,252,164,253,56,254,68,254,1,255,235,255,99,0,77,1,170,2,0,3,233,1,131,0,99,255,213,253,110,251,156,249, +86,250,234,253,238,2,66,7,73,9,78,9,231,8,21,9,38,10,144,11,131,11,37,9,224,5,1,3,198,0,101,255, +86,254,254,252,118,252,172,253,187,255,230,1,171,3,172,3,33,2,109,1,145,2,75,4,55,5,88,4,173,1,226,254, +158,253,164,253,187,253,69,253,110,252,139,251,21,251,209,251,155,253,240,254,251,254,57,254,210,252,80,251,87,251,225,252, +136,253,234,251,199,248,124,245,98,243,255,242,96,243,114,243,241,242,87,242,254,242,28,246,92,251,53,1,140,5,236,6, +138,6,179,6,85,7,65,7,146,6,52,5,111,2,217,254,184,251,159,249,3,249,20,250,1,252,233,253,187,255,213,1, +63,4,241,5,179,5,244,3,30,2,161,0,85,255,147,254,208,254,0,0,170,1,84,3,172,4,44,5,183,4,84,4, +191,4,211,5,18,8,119,11,139,13,78,12,191,8,172,4,174,1,99,1,2,3,133,3,24,2,151,0,215,255,208,254, +202,252,164,250,190,249,16,250,209,250,116,252,51,255,89,1,235,1,6,2,78,2,110,2,97,2,98,1,111,254,91,251, +120,251,111,254,155,0,147,0,236,255,249,254,175,252,4,250,155,248,25,248,2,248,165,248,25,249,166,248,118,248,212,248, +247,248,196,249,201,251,81,253,17,254,199,255,98,2,179,4,239,6,239,8,1,9,253,5,184,0,236,251,140,250,119,252, +158,254,124,255,73,0,70,1,239,0,172,255,85,0,212,3,171,7,94,9,38,8,49,4,99,255,169,252,167,252,210,253, +242,254,149,254,72,251,184,246,180,244,161,246,225,250,14,255,19,1,128,0,56,255,82,255,203,0,64,2,44,3,233,3, +144,3,179,0,180,252,109,250,217,249,100,249,72,249,212,249,248,249,134,249,128,249,74,250,224,251,87,254,88,1,24,4, +106,5,106,4,151,2,23,3,77,6,197,8,216,7,128,4,228,0,236,253,112,252,244,253,132,2,183,7,121,10,55,9, +111,5,8,3,4,4,144,6,173,8,249,9,159,9,69,7,141,4,164,2,63,1,141,0,122,0,228,255,178,254,192,253, +11,253,181,252,115,253,164,254,33,255,63,255,149,255,235,255,132,0,196,1,190,2,128,2,226,1,6,2,84,2,171,1, +21,0,36,254,55,252,236,250,104,250,177,249,57,248,214,246,182,246,117,248,96,251,114,253,189,253,48,253,18,252,53,250, +105,249,98,251,179,254,247,0,126,1,196,0,246,255,24,0,172,0,206,0,242,0,182,1,156,2,190,2,159,1,195,255, +189,254,113,255,202,0,32,1,226,255,187,253,246,251,176,251,230,252,131,254,187,255,150,0,222,0,3,0,174,254,117,254, +165,255,119,1,141,3,31,5,193,4,105,2,174,255,37,254,159,254,152,0,72,2,164,2,20,2,214,0,33,255,24,254, +78,254,137,254,125,253,174,251,1,251,161,252,142,255,192,1,2,2,42,0,29,253,222,250,204,250,102,252,178,254,68,1, +151,3,20,5,140,5,62,5,255,4,192,5,39,7,182,7,191,6,0,5,63,3,178,1,163,0,124,0,35,1,29,2, +208,2,122,2,28,1,242,255,149,255,107,255,147,255,91,0,178,0,142,0,151,1,42,3,62,3,46,3,228,4,13,6, +159,4,249,2,183,2,182,1,12,255,208,252,233,251,238,250,100,249,221,248,227,250,8,255,255,2,169,4,231,3,171,1, +48,254,12,250,131,247,18,248,60,250,194,251,26,252,207,251,127,251,145,251,7,252,233,252,23,254,62,254,87,252,242,249, +8,249,53,249,228,249,8,252,93,255,82,1,163,0,82,255,184,255,136,1,207,2,166,2,159,1,112,0,143,255,89,255, +210,255,205,0,47,2,103,3,150,3,172,2,57,1,116,255,98,253,124,251,156,250,132,251,33,254,220,0,216,1,148,1, +166,2,182,5,9,8,135,7,79,5,232,2,139,0,2,255,88,255,111,0,41,0,141,254,112,253,245,253,230,255,132,2, +219,4,184,5,88,4,119,1,246,254,27,254,206,254,26,0,205,0,149,0,103,0,197,0,219,0,140,0,37,1,231,2, +82,4,184,4,14,5,195,5,213,5,181,4,87,3,199,2,183,2,36,2,225,0,177,255,244,254,54,254,125,253,197,253, +77,255,193,0,15,1,208,0,126,1,236,3,17,7,37,8,97,5,57,0,212,251,20,250,18,251,183,253,248,255,25,0, +82,254,123,252,97,252,136,254,24,2,141,5,48,7,207,5,73,2,113,255,191,254,150,254,115,253,85,252,129,252,145,253, +198,254,202,255,19,0,113,255,187,254,146,254,127,254,19,254,213,253,97,254,51,255,40,255,41,254,77,253,18,253,3,253, +14,253,102,253,173,253,181,253,245,253,91,254,67,254,232,253,34,254,238,254,80,255,160,254,137,253,101,253,130,254,202,255, +40,0,88,255,220,253,228,252,16,253,147,253,221,253,106,254,246,254,170,254,28,254,81,254,14,255,35,0,234,1,174,3, +147,4,52,5,38,6,233,6,98,7,209,7,189,7,237,6,22,6,179,5,166,5,115,5,41,4,135,1,39,255,212,254, +134,0,253,2,70,5,45,7,151,8,221,8,212,7,201,6,112,6,104,5,244,2,138,0,104,255,135,255,131,0,61,1, +252,0,86,1,122,3,44,5,97,4,111,2,7,1,52,0,20,0,166,0,168,0,65,255,51,253,231,251,105,252,102,254, +247,255,219,255,178,254,68,253,227,251,44,251,17,251,125,250,161,249,9,250,1,252,37,254,67,255,144,255,146,255,153,254, +35,252,58,250,17,251,233,252,200,252,114,251,119,251,11,253,1,255,147,0,7,1,134,0,54,0,2,0,200,254,130,252, +204,249,41,247,245,245,46,247,184,249,77,252,252,254,128,1,26,3,253,3,120,4,62,4,93,3,242,1,123,255,72,252, +237,249,39,249,11,249,176,248,104,248,32,249,213,250,91,252,56,253,55,254,114,255,8,0,237,255,241,255,125,0,104,1, +213,1,194,0,255,254,115,254,206,254,73,254,63,253,81,253,97,254,19,255,165,254,77,253,28,252,21,252,227,252,229,253, +103,255,55,1,43,2,31,2,43,2,178,2,67,3,158,3,183,3,138,3,62,3,197,2,3,2,110,1,184,1,243,2, +151,4,28,6,105,7,147,8,43,9,131,8,164,6,19,4,21,1,45,254,58,252,65,251,135,250,7,250,105,250,253,251, +133,254,65,1,4,3,58,3,103,2,62,1,249,255,175,254,142,253,193,252,94,252,58,252,16,252,250,251,103,252,129,253, +218,254,134,255,195,254,26,253,33,252,95,252,114,252,104,251,144,250,122,251,59,253,209,253,32,253,119,252,7,252,31,251, +32,250,15,250,172,250,250,250,49,251,72,252,225,253,165,254,155,254,94,255,149,1,191,3,42,4,235,2,59,1,1,0, +183,255,131,0,189,1,82,2,55,2,60,2,95,2,199,1,169,0,64,0,168,0,156,0,155,255,148,254,60,254,49,254, +247,253,192,253,245,253,162,254,108,255,222,255,212,255,151,255,168,255,94,0,161,1,226,2,157,3,234,3,49,4,157,4, +38,5,185,5,2,6,188,5,104,5,144,5,132,5,93,4,211,2,48,2,68,2,67,2,116,2,253,2,178,2,45,1, +32,0,219,0,99,2,100,3,218,3,250,3,171,3,134,3,111,4,7,6,33,7,116,7,135,7,127,7,54,7,234,6, +233,6,229,6,81,6,49,5,19,4,42,3,25,2,216,0,248,255,133,255,193,254,179,253,114,253,51,254,244,254,113,255, +66,0,241,0,153,0,13,0,157,0,123,1,71,1,193,0,42,1,190,1,78,1,117,0,24,0,212,255,66,255,187,254, +51,254,63,253,54,252,163,251,39,251,112,250,77,250,88,251,161,252,153,252,237,250,17,249,120,248,7,249,140,249,171,249, +43,250,35,251,187,251,40,252,127,253,77,255,19,0,235,255,45,0,229,0,214,0,129,255,217,253,48,253,13,254,160,255, +62,0,240,254,182,252,178,251,180,252,109,254,140,255,56,0,202,0,229,0,143,0,90,0,92,0,114,0,196,0,34,1, +8,1,118,0,202,255,156,255,209,0,78,3,100,5,74,6,13,7,222,7,176,7,205,6,61,6,164,5,138,4,163,3, +255,2,189,1,14,0,246,254,230,254,227,255,92,1,254,1,76,1,55,0,81,255,130,254,42,254,112,254,201,254,47,255, +182,255,134,255,130,254,49,254,52,255,83,0,193,0,243,0,85,1,179,1,122,1,115,0,90,255,198,254,104,254,146,254, +230,255,212,0,94,255,196,252,60,251,115,250,253,249,219,250,139,252,149,253,186,254,208,0,71,2,130,2,23,3,245,3, +131,3,73,2,224,1,224,1,26,1,181,255,118,254,151,253,219,252,40,252,218,251,208,251,227,250,169,248,238,245,159,242, +58,238,1,234,45,231,245,228,45,227,23,227,145,228,54,231,207,236,205,245,76,255,125,7,136,14,143,18,174,17,134,14, +218,12,146,12,10,12,98,11,126,11,184,12,93,14,101,14,177,11,226,7,169,4,130,1,251,253,130,251,187,251,189,254, +177,2,248,4,138,4,10,2,123,253,100,247,128,243,169,245,218,252,224,4,100,11,151,16,131,20,254,21,36,21,130,21, +20,26,123,31,74,32,108,30,18,32,207,36,90,38,243,33,229,25,5,17,19,9,33,2,8,251,40,245,10,244,91,246, +161,245,114,239,119,232,8,229,151,228,239,228,173,229,23,232,197,236,149,241,89,243,152,242,3,244,191,249,22,255,28,255, +21,253,151,255,233,4,81,5,171,0,172,254,117,1,94,3,205,1,96,255,178,252,121,248,106,244,236,242,166,243,129,246, +53,253,223,6,118,14,230,15,104,12,235,8,165,8,95,9,238,5,187,252,95,242,246,236,27,238,177,242,234,247,52,254, +65,6,161,13,255,16,82,16,62,14,45,12,66,9,247,4,221,0,168,254,121,253,110,251,162,249,9,251,221,254,174,0, +36,255,214,253,180,254,183,254,114,251,99,247,175,245,95,245,204,243,21,241,249,238,0,238,200,238,161,242,253,248,37,255, +132,3,144,6,66,8,224,7,32,6,155,4,147,3,204,2,221,2,72,3,194,1,72,254,206,252,150,255,45,3,136,3, +207,1,66,1,116,1,222,255,252,252,218,251,167,253,165,0,247,2,95,4,82,5,188,5,243,4,214,2,74,0,2,254, +103,251,23,248,222,245,253,246,231,250,5,255,64,2,71,5,227,7,249,8,211,8,191,8,211,8,146,8,224,8,158,10, +248,11,27,10,87,5,22,1,112,255,227,254,0,253,218,249,155,247,43,247,154,246,214,243,2,240,70,238,110,239,30,241, +178,241,136,242,75,245,101,249,109,253,38,1,160,4,240,6,50,7,207,5,212,3,199,1,155,255,73,253,34,251,212,249, +201,249,110,250,220,250,98,251,80,253,192,0,195,3,117,4,237,2,188,0,54,255,171,254,181,254,234,254,101,255,139,0, +60,2,215,3,25,5,113,6,76,8,166,10,28,13,222,14,226,14,18,13,188,10,219,8,159,6,208,2,21,254,117,250, +232,248,171,248,230,248,177,249,58,251,239,252,3,254,86,254,88,254,85,254,57,254,35,254,104,254,197,254,134,254,165,253, +20,253,148,253,154,254,215,254,232,253,232,252,229,252,117,253,172,253,184,253,129,254,42,0,250,1,93,3,88,4,65,5, +57,6,11,7,98,7,13,7,221,5,212,3,168,1,60,0,121,255,133,254,60,253,105,252,146,252,138,253,38,255,150,1, +204,4,20,8,109,10,73,11,210,10,126,9,181,7,188,5,171,3,131,1,140,255,56,254,125,253,234,252,102,252,49,252, +79,252,137,252,180,252,167,252,90,252,43,252,110,252,247,252,99,253,127,253,43,253,116,252,197,251,126,251,133,251,118,251, +226,250,146,249,5,248,42,247,50,247,138,247,4,248,244,248,51,250,54,251,236,251,141,252,244,252,219,252,145,252,174,252, +45,253,87,253,239,252,218,252,219,253,113,255,232,0,103,2,238,3,179,4,105,4,219,3,196,3,56,4,228,4,18,5, +72,4,57,3,242,2,119,3,88,4,154,5,7,7,48,8,74,9,75,10,31,10,140,8,27,7,186,6,198,6,200,6, +137,6,57,5,0,3,126,1,8,1,66,0,30,255,181,254,118,254,35,253,84,251,44,250,142,249,56,249,59,249,13,249, +89,248,243,247,99,248,32,249,234,249,212,250,118,251,229,251,219,252,178,253,215,252,215,250,236,249,147,250,131,251,46,252, +217,252,120,253,14,254,221,254,157,255,195,255,118,255,62,255,77,255,164,255,48,0,174,0,238,0,13,1,42,1,90,1, +201,1,127,2,69,3,241,3,102,4,148,4,200,4,111,5,70,6,136,6,8,6,111,5,78,5,141,5,186,5,192,5, +4,6,155,6,234,6,119,6,133,5,71,4,134,2,156,0,116,255,47,255,248,254,94,254,176,253,56,253,251,252,4,253, +54,253,62,253,240,252,120,252,38,252,51,252,145,252,231,252,245,252,211,252,183,252,181,252,200,252,224,252,2,253,99,253, +7,254,142,254,169,254,143,254,146,254,171,254,168,254,132,254,108,254,127,254,156,254,167,254,235,254,210,255,44,1,91,2, +38,3,188,3,51,4,176,4,141,5,210,6,8,8,206,8,33,9,34,9,252,8,209,8,137,8,253,7,75,7,152,6, +181,5,135,4,99,3,181,2,121,2,74,2,218,1,45,1,103,0,150,255,203,254,79,254,90,254,186,254,252,254,248,254, +229,254,235,254,236,254,199,254,141,254,75,254,209,253,255,252,28,252,149,251,120,251,115,251,77,251,34,251,11,251,235,250, +190,250,213,250,118,251,93,252,250,252,21,253,237,252,187,252,104,252,248,251,196,251,27,252,198,252,75,253,151,253,6,254, +204,254,173,255,94,0,222,0,66,1,112,1,82,1,39,1,69,1,172,1,17,2,84,2,162,2,1,3,33,3,217,2, +130,2,152,2,9,3,69,3,250,2,103,2,249,1,200,1,169,1,123,1,56,1,222,0,117,0,38,0,14,0,9,0, +233,255,192,255,195,255,215,255,151,255,229,254,48,254,255,253,78,254,169,254,193,254,162,254,103,254,7,254,141,253,37,253, +222,252,140,252,26,252,199,251,207,251,11,252,44,252,61,252,130,252,236,252,16,253,219,252,223,252,165,253,240,254,15,0, +189,0,64,1,189,1,246,1,233,1,21,2,202,2,126,3,91,3,68,2,246,0,27,0,188,255,174,255,251,255,148,0, +255,0,206,0,59,0,224,255,248,255,80,0,227,0,249,1,120,3,77,4,147,3,3,2,8,1,247,0,252,0,129,0, +218,255,127,255,54,255,120,254,124,253,255,252,24,253,37,253,188,252,11,252,148,251,145,251,141,251,27,251,151,250,62,250, +168,249,14,249,55,249,224,249,82,250,219,250,212,251,161,252,213,252,233,252,116,253,148,254,212,255,141,0,163,0,83,0, +187,255,116,255,26,0,239,0,41,1,190,1,114,3,46,5,11,6,136,6,58,7,59,8,198,8,210,6,242,0,216,247, +184,236,156,224,133,213,150,205,109,202,156,206,125,220,150,242,1,12,228,35,7,55,94,67,181,70,215,62,87,45,14,25, +99,8,228,252,86,246,3,245,128,247,71,250,69,250,27,247,62,244,11,246,77,252,39,3,148,8,73,12,189,12,49,9, +88,3,170,252,153,245,43,239,150,234,184,232,174,234,113,241,25,253,24,12,162,26,210,37,40,47,98,56,151,62,142,62, +94,57,63,49,49,39,101,28,161,16,177,1,26,240,194,224,96,216,206,215,87,219,5,221,219,218,137,217,39,222,155,231, +15,240,111,243,219,243,54,246,245,249,177,249,100,244,187,238,11,236,222,236,96,241,107,247,16,251,26,252,80,253,20,255, +133,255,170,253,5,250,63,246,87,244,66,245,93,249,209,0,106,10,18,20,172,27,73,30,142,26,219,19,0,14,139,8, +201,2,203,254,17,253,157,251,25,250,155,249,234,249,38,250,220,249,36,249,86,249,174,251,57,255,124,2,114,5,57,8, +103,10,233,11,232,12,231,13,87,15,207,15,144,13,3,10,37,7,137,3,252,253,64,249,23,248,177,249,146,251,212,251, +146,250,66,250,71,252,114,254,90,254,61,252,52,249,235,245,77,243,113,242,124,244,217,249,50,0,187,3,156,3,57,2, +134,1,228,1,123,3,146,6,221,10,129,14,171,14,205,10,145,5,81,1,145,254,194,253,154,254,197,254,188,252,39,250, +139,249,181,251,210,255,84,4,64,8,206,11,242,14,158,16,14,16,75,13,158,8,193,2,129,252,230,245,80,239,126,234, +211,232,214,233,90,236,129,239,104,242,85,244,161,245,167,247,101,251,53,0,116,4,93,7,60,9,31,10,173,9,30,8, +112,6,137,5,49,5,232,3,113,0,108,251,229,246,172,244,53,245,119,247,78,249,58,249,249,247,20,247,194,246,152,246, +4,247,92,248,100,249,142,248,53,246,101,244,224,244,223,247,40,252,229,255,227,1,87,2,95,2,23,3,25,5,98,8, +117,12,129,16,92,19,1,20,157,18,131,16,74,14,17,11,90,6,96,1,145,253,23,251,194,249,239,249,231,251,127,255, +125,4,61,10,69,15,117,18,50,20,77,21,81,21,240,18,203,13,248,6,246,255,128,249,182,243,35,239,235,236,112,237, +173,239,147,242,14,246,21,250,219,253,177,0,124,2,227,2,90,1,80,254,56,251,8,249,118,247,181,245,76,243,132,240, +105,238,60,238,138,240,234,244,112,250,34,0,60,5,59,9,199,11,216,12,233,12,139,12,195,11,76,10,46,8,162,5, +203,2,11,0,198,253,153,251,215,248,4,246,103,244,61,244,183,244,183,245,245,247,162,251,5,0,85,4,39,8,95,11, +248,13,165,15,228,15,204,14,233,12,31,10,246,5,32,1,38,253,144,250,218,248,224,247,187,247,198,247,97,247,6,247, +128,247,213,248,167,250,169,252,92,254,98,255,16,0,190,0,34,1,48,1,89,1,69,1,246,255,134,253,62,251,200,249, +204,248,56,248,90,248,204,248,208,248,118,248,116,248,63,249,224,250,23,253,78,255,15,1,105,2,107,3,202,3,159,3, +147,3,206,3,193,3,92,3,95,3,29,4,21,5,238,5,229,6,31,8,97,9,117,10,101,11,53,12,181,12,133,12, +112,11,209,9,96,8,115,7,222,6,142,6,174,6,34,7,117,7,114,7,76,7,40,7,185,6,157,5,221,3,244,1, +70,0,192,254,73,253,22,252,65,251,97,250,34,249,213,247,234,246,80,246,193,245,69,245,254,244,239,244,27,245,139,245, +50,246,26,247,63,248,66,249,182,249,192,249,187,249,129,249,217,248,63,248,77,248,217,248,122,249,57,250,21,251,151,251, +135,251,69,251,56,251,143,251,137,252,45,254,13,0,213,1,154,3,62,5,94,6,10,7,165,7,4,8,193,7,38,7, +207,6,198,6,231,6,105,7,101,8,110,9,63,10,255,10,181,11,53,12,145,12,221,12,198,12,1,12,182,10,11,9, +230,6,126,4,93,2,183,0,101,255,117,254,6,254,213,253,144,253,82,253,80,253,100,253,124,253,184,253,245,253,219,253, +108,253,237,252,93,252,160,251,235,250,115,250,8,250,129,249,26,249,10,249,77,249,236,249,248,250,49,252,65,253,17,254, +147,254,152,254,63,254,247,253,215,253,136,253,244,252,91,252,189,251,247,250,85,250,104,250,99,251,29,253,107,255,8,2, +145,4,196,6,122,8,125,9,197,9,160,9,55,9,81,8,238,6,152,5,175,4,15,4,162,3,171,3,44,4,171,4, +192,4,102,4,185,3,213,2,207,1,171,0,118,255,98,254,136,253,169,252,165,251,227,250,197,250,10,251,72,251,136,251, +236,251,35,252,198,251,243,250,26,250,125,249,25,249,223,248,219,248,48,249,222,249,154,250,43,251,203,251,204,252,245,253, +204,254,80,255,211,255,69,0,67,0,201,255,73,255,12,255,241,254,200,254,173,254,231,254,135,255,77,0,0,1,200,1, +215,2,233,3,114,4,82,4,231,3,92,3,122,2,64,1,44,0,172,255,158,255,169,255,202,255,77,0,75,1,124,2, +163,3,227,4,103,6,225,7,187,8,205,8,109,8,216,7,221,6,93,5,182,3,75,2,5,1,137,255,224,253,139,252, +227,251,188,251,211,251,65,252,45,253,73,254,4,255,52,255,48,255,55,255,27,255,167,254,255,253,95,253,162,252,134,251, +60,250,104,249,100,249,239,249,167,250,144,251,206,252,45,254,72,255,32,0,25,1,82,2,83,3,154,3,50,3,138,2, +219,1,19,1,75,0,214,255,216,255,17,0,75,0,168,0,91,1,51,2,218,2,89,3,15,4,17,5,232,5,45,6, +4,6,216,5,178,5,71,5,127,4,162,3,222,2,255,1,204,0,119,255,105,254,194,253,88,253,26,253,32,253,86,253, +107,253,44,253,203,252,130,252,49,252,151,251,200,250,34,250,184,249,43,249,63,248,80,247,239,246,56,247,194,247,49,248, +143,248,12,249,182,249,139,250,150,251,192,252,168,253,246,253,192,253,112,253,70,253,43,253,13,253,28,253,126,253,9,254, +137,254,44,255,91,0,21,2,207,3,254,4,168,5,44,6,198,6,111,7,26,8,210,8,130,9,242,9,8,10,222,9, +143,9,14,9,90,8,174,7,60,7,211,6,18,6,7,5,72,4,91,4,24,5,226,5,71,6,52,6,197,5,8,5, +32,4,84,3,200,2,57,2,80,1,8,0,162,254,98,253,108,252,184,251,42,251,163,250,245,249,0,249,17,248,176,247, +242,247,109,248,207,248,34,249,137,249,4,250,79,250,43,250,209,249,174,249,162,249,64,249,150,248,22,248,251,247,80,248, +12,249,3,250,17,251,38,252,24,253,223,253,199,254,202,255,108,0,161,0,247,0,158,1,64,2,158,2,195,2,248,2, +150,3,126,4,21,5,66,5,127,5,241,5,96,6,211,6,63,7,82,7,11,7,172,6,62,6,198,5,84,5,150,4, +85,3,26,2,105,1,16,1,191,0,104,0,241,255,122,255,111,255,209,255,78,0,232,0,124,1,119,1,213,0,58,0, +219,255,95,255,146,254,116,253,54,252,98,251,37,251,5,251,220,250,12,251,128,251,211,251,21,252,80,252,31,252,124,251, +237,250,211,250,74,251,41,252,213,252,248,252,28,253,182,253,120,254,43,255,229,255,116,0,182,0,15,1,178,1,82,2, +198,2,36,3,125,3,16,4,16,5,32,6,222,6,83,7,109,7,244,6,74,6,246,5,183,5,48,5,182,4,145,4, +144,4,111,4,249,3,46,3,140,2,93,2,52,2,207,1,118,1,1,1,242,255,152,254,185,253,114,253,80,253,6,253, +158,252,104,252,132,252,131,252,20,252,165,251,137,251,75,251,147,250,201,249,79,249,33,249,67,249,239,249,64,251,223,252, +19,254,96,254,29,254,223,253,181,253,126,253,83,253,29,253,154,252,204,251,213,250,234,249,177,249,186,250,124,252,254,253, +7,255,199,255,69,0,217,0,9,2,139,3,131,4,176,4,140,4,173,4,98,5,139,6,168,7,103,8,207,8,3,9, +140,9,28,11,77,13,181,14,218,14,150,14,44,14,226,12,182,10,133,8,141,6,81,4,205,1,122,255,112,253,88,251, +20,249,11,247,171,245,208,244,1,244,75,243,68,243,19,244,50,245,40,246,252,246,229,247,215,248,132,249,212,249,24,250, +105,250,98,250,14,250,28,250,164,250,227,250,128,250,243,249,191,249,59,250,120,251,16,253,214,254,252,0,228,2,145,3, +140,3,231,3,37,4,208,3,229,3,108,4,6,4,24,3,54,3,237,3,103,4,164,5,167,7,228,8,24,10,41,13, +195,16,209,18,19,20,228,20,240,19,17,18,112,16,95,12,12,5,254,255,78,0,133,1,234,0,41,1,45,1,72,251, +160,239,44,229,100,224,100,224,70,227,119,232,97,240,153,250,16,3,72,4,45,254,123,246,53,241,94,237,246,233,31,234, +243,241,238,255,49,12,193,16,140,15,132,12,227,6,255,253,15,247,98,247,65,253,235,2,204,4,22,3,77,0,255,253, +120,250,164,244,108,240,3,242,108,247,246,251,43,255,181,3,213,9,14,14,73,13,247,9,226,10,81,18,96,26,81,30, +163,33,115,40,230,46,216,45,206,35,236,21,184,10,229,4,32,2,117,255,85,253,22,253,82,253,22,252,232,249,230,247, +49,245,31,240,90,233,228,228,244,229,177,233,106,234,150,232,13,234,181,239,217,243,113,243,199,241,186,242,213,246,68,252, +183,0,106,3,114,5,225,6,15,6,251,2,164,255,144,252,147,248,192,243,252,239,170,239,11,244,9,251,168,0,104,4, +82,9,40,15,59,17,154,13,20,8,223,4,24,4,76,3,99,1,212,255,223,255,2,0,162,254,131,253,26,255,155,2, +233,5,202,8,57,12,253,16,230,22,107,27,68,27,244,22,51,18,50,14,29,9,4,3,111,254,104,252,118,251,211,249, +5,247,249,243,168,241,232,239,209,238,230,239,62,243,215,245,133,245,208,243,25,243,228,243,87,245,182,245,210,243,237,241, +247,243,225,249,186,255,152,3,215,6,238,9,80,11,50,10,187,7,85,5,252,2,203,255,120,252,113,251,3,253,233,253, +225,251,235,248,240,247,16,249,153,250,85,251,104,251,14,252,228,253,175,255,76,0,82,0,57,0,52,255,92,253,61,252, +112,252,46,253,26,254,139,255,254,1,27,6,168,11,188,16,248,19,76,22,175,24,8,26,226,24,93,21,147,16,123,11, +147,6,200,1,225,252,12,248,125,243,65,239,233,235,85,234,106,234,29,235,216,235,4,237,58,239,82,242,58,245,252,246, +0,248,129,249,226,251,112,254,120,0,200,1,143,2,63,3,252,3,95,4,98,4,166,4,77,5,237,5,212,6,147,8, +72,10,41,10,201,7,82,4,206,0,138,253,166,250,62,248,119,246,209,245,216,246,65,249,236,251,83,254,253,0,46,4, +79,7,21,10,231,12,135,15,219,16,165,16,7,16,184,15,16,15,71,13,91,10,206,6,92,3,190,0,37,255,85,254, +58,254,192,254,79,255,79,255,183,254,153,253,233,251,1,250,124,248,74,247,227,245,115,244,168,243,109,243,11,243,110,242, +56,242,136,242,248,242,204,243,195,245,177,248,157,251,25,254,87,0,69,2,166,3,119,4,108,4,26,3,8,1,59,255, +145,253,42,251,124,248,37,247,186,247,96,249,106,251,246,253,228,0,121,3,99,5,58,7,136,9,194,11,205,12,92,12, +80,11,183,10,176,10,105,10,93,9,33,8,116,7,15,7,92,6,198,5,247,5,103,6,44,6,124,5,26,5,245,4, +129,4,150,3,130,2,181,1,130,1,191,1,240,1,3,2,87,2,222,2,241,2,62,2,104,1,25,1,189,0,39,255, +119,252,241,249,242,247,241,245,87,244,21,244,207,244,135,245,53,246,31,247,48,248,203,249,60,252,113,254,147,255,127,0, +171,1,218,1,168,0,104,255,157,254,153,253,106,252,162,251,58,251,120,251,182,252,50,254,47,255,117,0,171,2,232,4, +134,6,34,8,214,9,203,10,184,10,243,9,209,8,0,8,245,7,222,7,245,6,12,6,8,6,85,6,61,6,18,6, +29,6,244,5,48,5,194,3,219,1,1,0,152,254,64,253,108,251,91,249,192,247,190,246,231,245,45,245,46,245,26,246, +16,247,119,247,244,247,23,249,105,250,143,251,166,252,85,253,139,253,26,254,208,254,84,254,13,253,179,252,193,252,168,251, +109,250,149,250,249,250,151,250,186,250,163,251,178,251,248,250,228,250,77,251,204,251,48,253,225,254,1,255,75,254,0,255, +217,0,107,2,24,4,31,6,123,7,95,8,209,9,10,11,43,11,110,11,131,12,8,13,113,12,198,11,41,11,226,9, +10,8,234,5,140,3,153,1,115,0,82,255,21,254,210,253,104,254,151,254,138,254,43,255,34,0,227,0,144,1,135,1, +44,0,227,254,228,254,196,254,84,253,12,252,254,251,20,252,199,251,201,251,188,251,236,250,41,250,28,250,205,249,189,248, +186,247,241,246,38,246,51,246,140,247,224,248,118,249,81,250,156,251,51,252,77,252,40,253,108,254,39,255,235,255,68,1, +52,2,51,2,62,2,213,2,83,3,127,3,190,3,16,4,76,4,168,4,86,5,92,6,149,7,90,8,10,8,46,7, +194,6,160,6,20,6,83,5,252,4,2,5,6,5,194,4,234,3,151,2,111,1,120,0,254,254,40,253,34,252,54,252, +119,252,99,252,92,252,181,252,123,253,157,254,178,255,55,0,45,0,191,255,197,254,103,253,92,252,224,251,91,251,150,250, +20,250,11,250,44,250,114,250,34,251,255,251,120,252,136,252,149,252,145,252,19,252,59,251,190,250,241,250,154,251,159,252, +22,254,164,255,208,0,193,1,231,2,20,4,215,4,67,5,174,5,39,6,169,6,73,7,231,7,61,8,54,8,218,7, +72,7,250,6,91,7,252,7,6,8,88,7,114,6,156,5,205,4,4,4,58,3,80,2,79,1,82,0,93,255,152,254, +83,254,129,254,177,254,166,254,130,254,114,254,122,254,134,254,115,254,37,254,158,253,235,252,20,252,64,251,162,250,69,250, +35,250,78,250,184,250,26,251,55,251,5,251,153,250,36,250,220,249,210,249,236,249,250,249,224,249,182,249,184,249,36,250, +19,251,107,252,235,253,77,255,111,0,90,1,53,2,19,3,225,3,114,4,169,4,146,4,80,4,243,3,117,3,205,2, +18,2,118,1,50,1,112,1,63,2,138,3,16,5,112,6,79,7,142,7,72,7,173,6,207,5,164,4,45,3,153,1, +41,0,10,255,70,254,225,253,237,253,113,254,64,255,253,255,81,0,32,0,133,255,176,254,199,253,233,252,55,252,178,251, +43,251,100,250,88,249,95,248,247,247,93,248,94,249,144,250,166,251,133,252,36,253,114,253,108,253,56,253,25,253,56,253, +139,253,251,253,148,254,112,255,125,0,115,1,14,2,89,2,156,2,17,3,166,3,31,4,98,4,131,4,144,4,109,4, +242,3,50,3,130,2,53,2,92,2,213,2,141,3,133,4,167,5,157,6,3,7,185,6,253,5,27,5,45,4,37,3, +20,2,69,1,247,0,29,1,106,1,171,1,231,1,50,2,95,2,16,2,8,1,96,255,101,253,87,251,96,249,194,247, +238,246,47,247,98,248,253,249,120,251,159,252,125,253,12,254,41,254,201,253,35,253,128,252,243,251,80,251,130,250,201,249, +139,249,0,250,14,251,119,252,20,254,214,255,146,1,243,2,168,3,175,3,73,3,178,2,228,1,205,0,165,255,230,254, +224,254,115,255,73,0,62,1,99,2,166,3,178,4,59,5,72,5,26,5,210,4,96,4,193,3,32,3,187,2,168,2, +201,2,243,2,12,3,31,3,73,3,134,3,162,3,100,3,205,2,25,2,110,1,181,0,225,255,35,255,186,254,143,254, +66,254,172,253,16,253,192,252,174,252,145,252,86,252,54,252,89,252,163,252,243,252,83,253,219,253,118,254,239,254,38,255, +25,255,203,254,77,254,201,253,109,253,64,253,58,253,97,253,190,253,28,254,32,254,185,253,79,253,85,253,219,253,160,254, +125,255,104,0,48,1,121,1,52,1,203,0,180,0,252,0,100,1,209,1,98,2,37,3,249,3,192,4,118,5,248,5, +0,6,113,5,141,4,186,3,43,3,226,2,228,2,37,3,102,3,86,3,244,2,140,2,80,2,19,2,153,1,234,0, +38,0,63,255,19,254,199,252,182,251,14,251,183,250,164,250,252,250,203,251,198,252,143,253,10,254,79,254,86,254,251,253, +66,253,109,252,167,251,231,250,63,250,243,249,47,250,192,250,80,251,176,251,235,251,30,252,84,252,146,252,236,252,111,253, +226,253,243,253,181,253,155,253,213,253,55,254,188,254,132,255,86,0,204,0,243,0,51,1,172,1,34,2,113,2,182,2, +19,3,135,3,8,4,157,4,94,5,43,6,157,6,129,6,47,6,244,5,169,5,63,5,22,5,65,5,66,5,217,4, +109,4,62,4,1,4,120,3,201,2,42,2,186,1,125,1,86,1,41,1,18,1,23,1,251,0,199,0,211,0,2,1, +177,0,214,255,33,255,205,254,112,254,250,253,215,253,12,254,43,254,12,254,233,253,236,253,12,254,34,254,241,253,104,253, +170,252,197,251,199,250,24,250,12,250,76,250,98,250,113,250,202,250,82,251,252,251,14,253,135,254,0,0,88,1,154,2, +126,3,209,3,236,3,7,4,184,3,223,2,23,2,216,1,253,1,108,2,56,3,25,4,136,4,103,4,255,3,146,3, +53,3,222,2,112,2,238,1,116,1,237,0,68,0,220,255,43,0,248,0,159,1,232,1,232,1,141,1,213,0,14,0, +111,255,209,254,36,254,159,253,84,253,15,253,167,252,26,252,111,251,225,250,222,250,114,251,23,252,133,252,247,252,95,253, +78,253,213,252,106,252,29,252,185,251,100,251,82,251,118,251,191,251,40,252,159,252,47,253,232,253,154,254,32,255,147,255, +5,0,146,0,102,1,74,2,175,2,104,2,140,1,11,0,53,254,230,252,152,252,17,253,33,254,206,255,230,1,253,3, +163,5,134,6,174,6,98,6,191,5,204,4,205,3,7,3,93,2,141,1,187,0,82,0,97,0,142,0,170,0,225,0, +101,1,82,2,121,3,25,4,179,3,213,2,15,2,9,1,173,255,186,254,97,254,21,254,214,253,18,254,176,254,80,255, +201,255,5,0,20,0,251,255,67,255,150,253,120,251,134,249,209,247,133,246,56,246,121,247,98,250,32,254,100,1,227,3, +9,6,52,7,83,6,207,3,184,0,87,253,35,250,56,248,229,247,166,248,72,250,147,252,217,254,251,0,98,3,177,5, +250,6,253,6,8,6,27,4,70,1,75,254,39,252,90,251,14,252,91,254,167,1,210,4,119,7,165,9,217,10,121,10, +158,8,164,5,240,1,76,254,83,251,31,249,57,248,96,249,34,252,76,255,60,2,140,4,171,5,153,5,184,4,243,2, +71,0,61,253,67,250,192,247,134,246,1,247,157,248,173,250,243,252,63,255,69,1,184,2,88,3,63,3,164,2,31,1, +54,254,167,250,237,247,202,246,50,247,14,249,72,252,88,0,73,4,101,7,151,9,247,10,69,11,47,10,194,7,114,4, +240,0,196,253,37,251,152,249,4,250,111,252,178,255,249,2,33,6,187,8,40,10,67,10,4,9,104,6,24,3,33,0, +22,254,27,253,57,253,99,254,137,0,91,3,243,5,117,7,224,7,106,7,229,5,70,3,4,0,171,252,160,249,69,247, +244,245,244,245,101,247,24,250,111,253,116,0,75,2,209,2,87,2,255,0,17,255,60,253,147,251,142,249,130,247,88,246, +16,246,100,246,193,247,7,250,36,252,168,253,161,254,116,254,250,252,51,251,127,249,86,247,33,245,211,243,91,243,142,243, +9,245,220,247,78,251,55,255,173,3,20,8,232,11,49,15,130,17,23,18,215,16,242,13,170,9,228,4,161,0,62,253, +29,251,225,250,67,252,26,254,191,255,42,1,76,2,70,3,90,4,45,5,11,5,234,3,105,2,61,1,199,0,231,0, +52,1,192,1,9,3,30,5,100,7,80,9,211,10,254,11,157,12,90,12,44,11,47,9,70,6,145,2,248,254,71,252, +68,250,99,248,162,246,46,245,24,244,140,243,150,243,205,243,223,243,237,243,62,244,46,245,9,247,136,249,218,251,152,253, +9,255,101,0,127,1,36,2,97,2,67,2,193,1,8,1,135,0,71,0,180,255,207,254,201,254,124,0,68,3,7,6, +106,8,106,10,191,11,17,12,51,11,71,9,145,6,62,3,179,255,3,253,37,252,251,252,236,254,161,1,151,4,40,7, +61,9,227,10,155,11,3,11,91,9,4,7,71,4,111,1,130,254,163,251,142,249,161,248,77,248,120,248,190,249,166,251, +234,252,120,253,235,253,216,253,156,252,158,250,139,248,161,246,34,245,85,244,64,244,2,245,177,246,226,248,35,251,128,253, +5,0,108,2,70,4,33,5,228,4,232,3,71,2,234,255,167,253,100,252,215,251,142,251,241,251,12,253,71,254,11,0, +235,2,107,5,217,5,17,5,133,4,207,3,134,2,124,1,249,0,138,0,109,0,201,0,225,0,141,0,110,0,85,0, +193,255,51,255,48,255,112,255,1,0,105,1,148,3,212,5,78,7,50,7,15,6,219,5,236,6,67,7,43,6,38,5, +127,4,244,2,231,0,239,255,225,255,112,255,124,254,159,253,1,253,194,252,209,252,116,252,121,251,223,250,6,251,216,250, +168,249,59,248,88,247,233,246,193,246,9,247,235,247,165,249,81,252,71,255,161,1,139,3,196,5,246,7,255,8,158,8, +116,7,210,5,194,3,179,1,67,0,190,255,4,0,104,0,64,0,211,255,198,255,182,255,231,254,236,253,204,253,46,254, +26,254,182,253,198,253,121,254,149,255,233,0,45,2,28,3,196,3,66,4,123,4,60,4,127,3,132,2,160,1,225,0, +23,0,67,255,168,254,106,254,101,254,59,254,152,253,193,252,116,252,176,252,132,252,157,251,211,250,188,250,5,251,106,251, +248,251,127,252,215,252,81,253,26,254,216,254,55,255,66,255,35,255,6,255,0,255,244,254,208,254,218,254,59,255,147,255, +164,255,223,255,144,0,56,1,118,1,163,1,239,1,207,1,237,0,208,255,30,255,242,254,32,255,141,255,64,0,103,1, +21,3,235,4,95,6,55,7,108,7,247,6,33,6,98,5,165,4,105,3,217,1,189,0,73,0,237,255,109,255,54,255, +147,255,87,0,57,1,248,1,111,2,185,2,251,2,20,3,219,2,115,2,252,1,106,1,222,0,147,0,88,0,193,255, +230,254,66,254,235,253,150,253,56,253,252,252,237,252,0,253,53,253,111,253,148,253,190,253,1,254,62,254,100,254,154,254, +218,254,237,254,224,254,2,255,84,255,153,255,212,255,47,0,153,0,225,0,6,1,29,1,42,1,44,1,32,1,255,0, +214,0,200,0,199,0,169,0,128,0,132,0,176,0,217,0,22,1,150,1,62,2,198,2,21,3,55,3,34,3,190,2, +19,2,56,1,72,0,89,255,117,254,157,253,232,252,115,252,69,252,81,252,143,252,240,252,87,253,187,253,38,254,135,254, +169,254,114,254,2,254,140,253,42,253,220,252,165,252,154,252,225,252,139,253,129,254,141,255,133,0,90,1,15,2,147,2, +196,2,141,2,255,1,79,1,175,0,49,0,209,255,152,255,160,255,252,255,154,0,71,1,212,1,54,2,124,2,174,2, +190,2,151,2,63,2,224,1,164,1,156,1,182,1,230,1,51,2,173,2,77,3,237,3,94,4,148,4,163,4,163,4, +143,4,74,4,192,3,255,2,40,2,78,1,112,0,139,255,186,254,42,254,243,253,2,254,37,254,51,254,37,254,10,254, +225,253,152,253,35,253,151,252,32,252,222,251,209,251,227,251,9,252,82,252,200,252,83,253,188,253,212,253,152,253,42,253, +176,252,61,252,216,251,152,251,161,251,10,252,191,252,141,253,72,254,234,254,134,255,34,0,167,0,243,0,255,0,231,0, +203,0,184,0,168,0,158,0,181,0,5,1,133,1,5,2,78,2,79,2,35,2,236,1,184,1,128,1,70,1,30,1, +32,1,71,1,113,1,126,1,112,1,100,1,110,1,125,1,116,1,69,1,12,1,237,0,247,0,25,1,59,1,89,1, +121,1,152,1,149,1,83,1,218,0,90,0,5,0,235,255,238,255,235,255,222,255,209,255,201,255,188,255,161,255,126,255, +109,255,134,255,194,255,249,255,251,255,198,255,137,255,106,255,91,255,62,255,29,255,24,255,56,255,112,255,177,255,242,255, +53,0,127,0,204,0,252,0,248,0,214,0,189,0,177,0,160,0,130,0,89,0,33,0,216,255,142,255,75,255,253,254, +147,254,33,254,211,253,207,253,12,254,89,254,148,254,222,254,106,255,37,0,199,0,52,1,150,1,11,2,117,2,162,2, +125,2,31,2,197,1,147,1,98,1,1,1,153,0,122,0,145,0,109,0,222,255,46,255,169,254,82,254,22,254,247,253, +3,254,69,254,198,254,121,255,62,0,18,1,254,1,216,2,82,3,95,3,59,3,9,3,174,2,35,2,154,1,71,1, +36,1,245,0,130,0,215,255,57,255,206,254,125,254,57,254,53,254,135,254,210,254,175,254,43,254,168,253,105,253,131,253, +225,253,78,254,166,254,13,255,170,255,79,0,191,0,26,1,139,1,215,1,184,1,100,1,66,1,67,1,26,1,214,0, +199,0,244,0,11,1,219,0,130,0,55,0,12,0,246,255,242,255,20,0,78,0,87,0,12,0,184,255,173,255,193,255, +154,255,66,255,13,255,10,255,16,255,28,255,65,255,109,255,145,255,188,255,228,255,206,255,115,255,22,255,232,254,214,254, +201,254,195,254,192,254,187,254,192,254,198,254,146,254,16,254,133,253,52,253,24,253,14,253,14,253,29,253,62,253,132,253, +248,253,117,254,219,254,70,255,213,255,87,0,136,0,122,0,127,0,191,0,253,0,240,0,175,0,170,0,24,1,144,1, +156,1,113,1,174,1,93,2,228,2,240,2,217,2,246,2,24,3,252,2,176,2,88,2,236,1,103,1,239,0,160,0, +105,0,45,0,229,255,159,255,106,255,68,255,19,255,201,254,132,254,102,254,109,254,139,254,201,254,56,255,203,255,104,0, +8,1,163,1,33,2,96,2,73,2,222,1,67,1,166,0,6,0,64,255,98,254,182,253,104,253,78,253,56,253,61,253, +132,253,241,253,70,254,115,254,168,254,253,254,78,255,122,255,155,255,231,255,86,0,173,0,212,0,246,0,47,1,92,1, +95,1,91,1,107,1,114,1,79,1,34,1,19,1,255,0,170,0,47,0,220,255,182,255,117,255,3,255,160,254,123,254, +110,254,83,254,74,254,127,254,210,254,16,255,79,255,184,255,33,0,48,0,235,255,188,255,213,255,242,255,218,255,204,255, +41,0,224,0,127,1,194,1,191,1,155,1,86,1,230,0,94,0,216,255,103,255,32,255,19,255,43,255,60,255,58,255, +51,255,32,255,237,254,172,254,145,254,168,254,187,254,176,254,189,254,6,255,76,255,64,255,13,255,35,255,154,255,10,0, +47,0,70,0,155,0,5,1,36,1,232,0,160,0,137,0,142,0,125,0,69,0,239,255,153,255,106,255,121,255,168,255, +192,255,178,255,170,255,202,255,1,0,45,0,71,0,92,0,121,0,166,0,216,0,232,0,168,0,40,0,180,255,118,255, +68,255,240,254,156,254,135,254,165,254,180,254,171,254,200,254,33,255,109,255,124,255,127,255,190,255,34,0,93,0,90,0, +71,0,52,0,4,0,182,255,125,255,120,255,136,255,135,255,127,255,124,255,101,255,46,255,252,254,243,254,0,255,2,255, +25,255,125,255,24,0,134,0,156,0,163,0,235,0,83,1,133,1,119,1,84,1,57,1,33,1,24,1,31,1,21,1, +245,0,227,0,238,0,253,0,246,0,221,0,219,0,251,0,3,1,207,0,138,0,86,0,35,0,248,255,248,255,43,0, +137,0,5,1,109,1,161,1,200,1,250,1,26,2,41,2,62,2,53,2,240,1,163,1,114,1,65,1,9,1,211,0, +122,0,245,255,121,255,23,255,175,254,77,254,31,254,63,254,188,254,108,255,201,255,143,255,49,255,46,255,103,255,147,255, +206,255,85,0,20,1,194,1,29,2,20,2,206,1,97,1,152,0,99,255,75,254,236,253,56,254,183,254,56,255,186,255, +14,0,20,0,223,255,95,255,143,254,225,253,230,253,162,254,170,255,129,0,186,0,94,0,7,0,247,255,179,255,11,255, +104,254,255,253,181,253,158,253,181,253,210,253,77,254,122,255,200,0,135,1,214,1,252,1,229,1,169,1,83,1,160,0, +201,255,107,255,87,255,251,254,160,254,173,254,192,254,177,254,231,254,85,255,151,255,197,255,25,0,126,0,172,0,50,0, +22,255,245,253,21,252,158,247,238,241,204,239,11,243,214,248,13,255,249,4,26,8,230,6,199,3,130,0,183,251,50,246, +158,243,72,244,79,245,40,246,173,247,6,249,94,250,227,253,56,3,58,7,37,9,174,11,57,17,227,24,252,29,156,27, +190,18,77,9,0,2,175,250,79,243,180,239,204,241,105,247,108,253,198,1,239,3,212,4,62,5,9,5,125,4,237,3, +80,2,75,255,19,253,65,253,46,254,5,254,203,253,206,255,236,4,129,11,42,16,244,16,116,15,239,13,247,11,85,8, +73,4,110,2,220,3,97,7,122,10,16,11,8,9,128,5,242,0,70,251,255,244,18,239,127,234,143,232,58,234,33,239, +244,245,57,253,111,3,127,7,41,9,55,8,126,4,128,255,61,252,246,251,189,252,108,252,147,251,79,252,42,255,112,2, +102,4,213,4,13,4,209,1,124,254,220,251,109,251,193,252,217,254,162,1,202,4,184,6,72,6,87,4,103,2,209,0, +25,255,54,253,217,251,205,251,79,253,254,255,43,3,17,6,224,7,62,8,166,7,172,6,81,5,161,3,24,2,228,0, +199,255,198,254,208,253,82,252,67,250,160,248,254,247,251,247,83,248,0,249,176,249,46,250,197,250,126,251,42,252,30,253, +155,254,60,0,158,1,157,2,247,2,199,2,134,2,249,1,170,0,38,255,14,254,4,253,33,252,133,252,49,254,171,255, +134,0,174,1,40,3,208,3,25,3,183,1,198,0,197,0,44,1,113,1,8,2,60,3,21,4,192,3,167,2,21,1, +210,254,138,252,69,251,168,250,220,249,73,249,174,249,203,250,24,252,134,253,35,255,236,0,202,2,101,4,149,5,155,6, +88,7,82,7,198,6,72,6,136,5,239,3,208,1,202,255,252,253,125,252,112,251,144,250,197,249,127,249,160,249,83,249, +110,248,158,247,59,247,15,247,255,246,28,247,134,247,110,248,217,249,142,251,112,253,69,255,124,0,248,0,92,1,246,1, +93,2,135,2,221,2,73,3,91,3,21,3,171,2,14,2,84,1,226,0,218,0,223,0,129,0,181,255,229,254,115,254, +34,254,115,253,122,252,190,251,101,251,65,251,101,251,10,252,62,253,246,254,14,1,20,3,130,4,52,5,99,5,90,5, +62,5,1,5,129,4,204,3,26,3,145,2,41,2,197,1,65,1,165,0,19,0,132,255,222,254,21,254,76,253,190,252, +136,252,138,252,131,252,83,252,30,252,44,252,161,252,93,253,31,254,186,254,56,255,188,255,88,0,3,1,174,1,95,2, +34,3,234,3,133,4,187,4,133,4,15,4,147,3,30,3,138,2,175,1,153,0,144,255,224,254,171,254,215,254,65,255, +218,255,171,0,179,1,208,2,212,3,163,4,63,5,170,5,207,5,142,5,222,4,237,3,7,3,93,2,224,1,83,1, +132,0,118,255,85,254,76,253,108,252,181,251,53,251,12,251,85,251,6,252,244,252,242,253,228,254,190,255,110,0,209,0, +208,0,121,0,5,0,175,255,134,255,106,255,41,255,176,254,24,254,145,253,63,253,49,253,103,253,224,253,143,254,78,255, +230,255,39,0,6,0,159,255,33,255,174,254,91,254,50,254,69,254,158,254,49,255,210,255,77,0,130,0,119,0,82,0, +60,0,76,0,139,0,246,0,129,1,28,2,175,2,43,3,141,3,230,3,73,4,186,4,42,5,125,5,157,5,126,5, +32,5,140,4,211,3,12,3,82,2,188,1,80,1,5,1,201,0,132,0,27,0,132,255,192,254,220,253,239,252,21,252, +107,251,247,250,178,250,154,250,186,250,32,251,196,251,141,252,87,253,254,253,99,254,128,254,106,254,76,254,70,254,109,254, +210,254,119,255,56,0,219,0,57,1,91,1,81,1,13,1,122,0,173,255,241,254,127,254,83,254,69,254,68,254,82,254, +100,254,92,254,46,254,239,253,181,253,132,253,94,253,88,253,129,253,200,253,16,254,92,254,205,254,111,255,31,0,181,0, +47,1,164,1,15,2,69,2,46,2,229,1,170,1,168,1,209,1,243,1,231,1,179,1,119,1,56,1,215,0,53,0, +112,255,211,254,134,254,115,254,115,254,137,254,210,254,63,255,153,255,189,255,191,255,187,255,174,255,143,255,119,255,129,255, +159,255,177,255,198,255,16,0,140,0,234,0,248,0,241,0,41,1,140,1,167,1,70,1,187,0,119,0,128,0,137,0, +93,0,6,0,146,255,250,254,97,254,33,254,140,254,159,255,15,1,123,2,125,3,194,3,81,3,171,2,99,2,134,2, +163,2,93,2,212,1,79,1,211,0,74,0,217,255,202,255,36,0,160,0,28,1,185,1,108,2,227,2,229,2,142,2, +26,2,161,1,21,1,136,0,70,0,151,0,88,1,18,2,134,2,231,2,104,3,197,3,144,3,192,2,200,1,18,1, +157,0,39,0,166,255,79,255,47,255,249,254,142,254,80,254,154,254,30,255,93,255,120,255,228,255,134,0,207,0,168,0, +135,0,132,0,40,0,42,255,221,253,189,252,16,252,226,251,26,252,168,252,191,253,128,255,99,1,151,2,12,3,83,3, +94,3,95,2,66,0,40,254,255,252,144,252,91,252,114,252,253,252,194,253,152,254,147,255,156,0,116,1,27,2,141,2, +114,2,192,1,44,1,30,1,224,0,204,255,133,254,234,253,168,253,13,253,163,252,120,253,73,255,172,0,237,0,193,0, +41,1,73,2,79,3,53,3,201,1,226,255,99,254,115,253,52,253,95,254,254,0,88,3,172,3,164,2,88,2,34,3, +85,3,43,2,0,1,217,0,109,0,44,254,83,251,7,251,57,254,254,1,19,3,210,1,243,0,60,1,214,0,241,254, +62,253,238,252,197,252,194,251,51,251,68,252,199,253,107,254,10,255,147,0,178,1,4,1,204,255,16,0,91,1,184,1, +190,0,127,255,125,254,152,253,44,253,110,253,141,253,23,253,51,253,192,254,113,0,174,0,29,0,87,0,48,1,56,1, +24,0,202,254,5,254,171,253,102,253,48,253,82,253,253,253,216,254,89,255,133,255,213,255,73,0,86,0,206,255,47,255, +192,254,53,254,172,253,20,254,167,255,245,0,208,0,13,0,3,0,100,0,26,0,69,255,210,254,238,254,6,255,197,254, +95,254,59,254,136,254,29,255,185,255,45,0,71,0,19,0,40,0,220,0,149,1,195,1,191,1,214,1,168,1,50,1, +14,1,59,1,34,1,221,0,2,1,123,1,202,1,252,1,93,2,217,2,40,3,53,3,17,3,202,2,105,2,20,2, +246,1,229,1,127,1,227,0,147,0,108,0,208,255,11,255,79,255,252,0,246,2,229,3,148,3,23,3,132,3,133,4, +209,4,23,4,14,3,195,1,169,255,61,253,197,251,114,251,51,251,70,250,60,249,111,249,98,251,173,253,151,254,131,254, +16,255,64,0,169,0,239,255,17,255,176,254,169,254,216,254,89,255,80,0,131,1,38,2,165,1,169,0,57,0,255,255, +212,254,207,252,113,251,178,251,211,252,85,253,201,252,79,252,24,253,231,254,154,0,145,1,253,1,76,2,205,2,121,3, +20,4,115,4,87,4,87,3,179,1,155,0,190,0,98,1,148,1,61,1,178,0,64,0,44,0,74,0,46,0,20,0, +124,0,243,0,178,0,15,0,218,255,9,0,26,0,215,255,41,255,34,254,46,253,136,252,16,252,36,252,89,253,54,255, +134,0,248,0,82,1,30,2,46,3,12,4,77,4,188,3,90,2,65,0,221,253,47,252,21,252,52,253,56,254,89,254, +60,254,13,255,246,0,244,2,24,4,109,4,102,4,20,4,79,3,16,2,150,0,103,255,235,254,244,254,7,255,35,255, +121,255,208,255,224,255,199,255,152,255,45,255,178,254,144,254,223,254,151,255,203,0,8,2,88,2,124,1,75,0,142,255, +43,255,146,254,92,253,179,251,92,250,234,249,253,249,254,249,81,250,201,251,39,254,34,0,220,0,152,0,17,0,179,255, +118,255,17,255,101,254,176,253,41,253,195,252,154,252,44,253,146,254,250,255,145,0,129,0,113,0,144,0,150,0,79,0, +200,255,74,255,44,255,90,255,117,255,137,255,14,0,17,1,13,2,178,2,39,3,126,3,149,3,96,3,231,2,43,2, +74,1,164,0,146,0,37,1,41,2,76,3,65,4,221,4,35,5,35,5,202,4,24,4,94,3,215,2,55,2,56,1, +74,0,9,0,98,0,217,0,35,1,22,1,160,0,255,255,111,255,220,254,96,254,89,254,179,254,1,255,105,255,77,0, +92,1,248,1,34,2,46,2,36,2,220,1,46,1,255,255,179,254,11,254,49,254,160,254,18,255,169,255,97,0,7,1, +151,1,28,2,121,2,113,2,204,1,150,0,76,255,91,254,173,253,26,253,212,252,3,253,127,253,14,254,155,254,69,255, +88,0,191,1,196,2,239,2,173,2,117,2,36,2,160,1,36,1,188,0,69,0,187,255,20,255,84,254,235,253,39,254, +141,254,164,254,152,254,144,254,84,254,255,253,245,253,47,254,90,254,72,254,235,253,117,253,110,253,240,253,94,254,100,254, +102,254,161,254,224,254,8,255,29,255,24,255,30,255,88,255,136,255,124,255,111,255,100,255,41,255,241,254,19,255,74,255, +31,255,165,254,78,254,123,254,66,255,52,0,185,0,238,0,102,1,11,2,91,2,86,2,75,2,46,2,234,1,161,1, +103,1,91,1,161,1,255,1,20,2,21,2,104,2,209,2,227,2,176,2,109,2,18,2,160,1,23,1,101,0,202,255, +161,255,163,255,87,255,19,255,118,255,79,0,1,1,122,1,2,2,154,2,222,2,82,2,242,0,87,255,6,254,218,252, +152,251,132,250,244,249,216,249,245,249,58,250,206,250,211,251,250,252,166,253,239,253,166,254,235,255,207,0,210,0,139,0, +137,0,160,0,103,0,171,255,161,254,228,253,207,253,3,254,30,254,95,254,226,254,25,255,184,254,82,254,104,254,165,254, +119,254,242,253,160,253,169,253,150,253,31,253,193,252,31,253,22,254,242,254,85,255,133,255,225,255,116,0,245,0,47,1, +67,1,97,1,102,1,12,1,95,0,186,255,121,255,173,255,17,0,89,0,166,0,70,1,16,2,153,2,231,2,57,3, +84,3,251,2,170,2,242,2,115,3,99,3,184,2,19,2,228,1,53,2,222,2,115,3,113,3,240,2,146,2,150,2, +157,2,141,2,190,2,27,3,4,3,74,2,120,1,239,0,104,0,146,255,173,254,64,254,101,254,199,254,37,255,140,255, +34,0,3,1,18,2,19,3,236,3,133,4,154,4,50,4,192,3,106,3,237,2,58,2,114,1,161,0,245,255,184,255, +226,255,37,0,68,0,42,0,199,255,30,255,131,254,101,254,170,254,175,254,49,254,126,253,239,252,196,252,31,253,183,253, +34,254,90,254,140,254,202,254,4,255,24,255,39,255,118,255,188,255,110,255,191,254,45,254,187,253,96,253,71,253,82,253, +81,253,86,253,86,253,83,253,168,253,98,254,246,254,34,255,84,255,251,255,208,0,22,1,170,0,48,0,243,255,141,255, +225,254,95,254,118,254,24,255,176,255,239,255,101,0,125,1,145,2,10,3,39,3,52,3,59,3,65,3,2,3,74,2, +113,1,174,0,208,255,236,254,67,254,221,253,203,253,247,253,5,254,7,254,110,254,32,255,175,255,41,0,205,0,115,1, +169,1,87,1,252,0,248,0,5,1,218,0,154,0,81,0,7,0,248,255,26,0,48,0,91,0,193,0,41,1,113,1, +137,1,98,1,80,1,120,1,68,1,140,0,245,255,165,255,48,255,166,254,68,254,243,253,186,253,208,253,50,254,163,254, +223,254,228,254,255,254,66,255,96,255,73,255,60,255,83,255,150,255,4,0,123,0,217,0,15,1,38,1,101,1,214,1, +0,2,185,1,85,1,197,0,238,255,87,255,56,255,3,255,114,254,226,253,147,253,147,253,214,253,41,254,100,254,120,254, +78,254,43,254,138,254,69,255,221,255,72,0,177,0,8,1,96,1,255,1,213,2,83,3,25,3,166,2,163,2,190,2, +50,2,16,1,229,255,192,254,116,253,35,252,36,251,192,250,221,250,5,251,12,251,52,251,156,251,45,252,204,252,77,253, +200,253,172,254,248,255,40,1,41,2,81,3,74,4,56,4,22,3,242,1,140,1,99,1,183,0,234,255,215,255,94,0, +195,0,250,0,138,1,87,2,144,2,235,1,44,1,253,0,252,0,142,0,241,255,176,255,183,255,108,255,146,254,138,253, +208,252,108,252,30,252,239,251,15,252,91,252,121,252,120,252,231,252,40,254,228,255,124,1,200,2,16,4,96,5,101,6, +239,6,46,7,70,7,252,6,27,6,204,4,94,3,244,1,176,0,217,255,151,255,190,255,244,255,254,255,228,255,222,255, +10,0,76,0,94,0,7,0,91,255,184,254,102,254,100,254,163,254,31,255,158,255,208,255,198,255,198,255,167,255,13,255, +23,254,90,253,25,253,0,253,184,252,133,252,222,252,166,253,98,254,23,255,16,0,251,0,49,1,195,0,91,0,77,0, +86,0,32,0,166,255,48,255,0,255,24,255,97,255,182,255,211,255,142,255,16,255,124,254,184,253,233,252,156,252,29,253, +51,254,126,255,192,0,214,1,182,2,61,3,43,3,140,2,222,1,111,1,23,1,157,0,23,0,221,255,44,0,185,0, +248,0,230,0,221,0,179,0,240,255,209,254,31,254,45,254,153,254,238,254,33,255,132,255,64,0,20,1,193,1,108,2, +27,3,125,3,115,3,49,3,195,2,16,2,42,1,57,0,98,255,209,254,127,254,48,254,230,253,234,253,96,254,53,255, +58,0,12,1,96,1,109,1,133,1,153,1,117,1,21,1,139,0,246,255,114,255,219,254,26,254,125,253,71,253,62,253, +18,253,199,252,137,252,143,252,16,253,247,253,240,254,212,255,164,0,87,1,225,1,37,2,244,1,135,1,107,1,168,1, +177,1,86,1,244,0,246,0,115,1,30,2,143,2,215,2,71,3,159,3,81,3,119,2,147,1,196,0,241,255,47,255, +157,254,69,254,13,254,201,253,158,253,248,253,176,254,11,255,196,254,92,254,58,254,73,254,58,254,250,253,237,253,104,254, +6,255,53,255,46,255,94,255,153,255,150,255,107,255,34,255,191,254,102,254,37,254,20,254,142,254,120,255,16,0,33,0, +86,0,254,0,182,1,46,2,81,2,32,2,229,1,219,1,220,1,220,1,2,2,46,2,33,2,251,1,244,1,255,1, +255,1,221,1,142,1,71,1,50,1,25,1,205,0,113,0,32,0,220,255,192,255,193,255,184,255,201,255,21,0,68,0, +35,0,31,0,145,0,65,1,207,1,240,1,148,1,42,1,43,1,106,1,109,1,50,1,0,1,228,0,205,0,203,0, +226,0,249,0,4,1,15,1,29,1,26,1,241,0,160,0,63,0,251,255,251,255,39,0,51,0,19,0,255,255,253,255, +243,255,248,255,39,0,98,0,126,0,105,0,19,0,174,255,168,255,15,0,106,0,89,0,250,255,173,255,161,255,152,255, +63,255,175,254,80,254,59,254,64,254,68,254,79,254,133,254,9,255,165,255,246,255,253,255,229,255,152,255,31,255,199,254, +137,254,42,254,218,253,213,253,222,253,202,253,188,253,172,253,147,253,161,253,185,253,118,253,2,253,218,252,248,252,19,253, +46,253,92,253,166,253,47,254,226,254,97,255,156,255,203,255,254,255,50,0,108,0,128,0,71,0,6,0,14,0,72,0, +113,0,108,0,77,0,87,0,163,0,229,0,9,1,108,1,13,2,73,2,226,1,98,1,64,1,106,1,154,1,161,1, +143,1,138,1,112,1,15,1,198,0,36,1,240,1,114,2,136,2,133,2,121,2,58,2,215,1,128,1,74,1,20,1, +160,0,237,255,93,255,52,255,49,255,12,255,223,254,213,254,235,254,21,255,63,255,86,255,112,255,178,255,249,255,6,0, +206,255,104,255,239,254,141,254,86,254,60,254,62,254,88,254,100,254,86,254,96,254,149,254,192,254,208,254,227,254,247,254, +251,254,251,254,12,255,53,255,103,255,132,255,168,255,49,0,21,1,180,1,176,1,109,1,95,1,123,1,105,1,254,0, +105,0,246,255,157,255,32,255,165,254,132,254,157,254,154,254,155,254,223,254,55,255,114,255,188,255,53,0,172,0,247,0, +41,1,85,1,78,1,233,0,98,0,32,0,18,0,226,255,173,255,205,255,4,0,223,255,155,255,199,255,76,0,147,0, +100,0,35,0,60,0,132,0,94,0,161,255,242,254,203,254,209,254,136,254,33,254,25,254,132,254,8,255,86,255,127,255, +197,255,39,0,112,0,156,0,218,0,20,1,230,0,64,0,185,255,235,255,147,0,205,0,131,0,165,0,130,1,17,2, +179,1,86,1,237,1,224,2,34,3,196,2,128,2,132,2,117,2,41,2,206,1,128,1,64,1,21,1,24,1,90,1, +221,1,104,2,122,2,220,1,25,1,220,0,9,1,23,1,6,1,76,1,237,1,61,2,164,1,96,0,79,255,238,254, +214,254,127,254,55,254,154,254,90,255,125,255,195,254,246,253,204,253,43,254,151,254,191,254,150,254,73,254,253,253,159,253, +44,253,19,253,181,253,135,254,105,254,21,253,165,251,147,251,151,253,22,1,244,3,145,3,69,255,195,249,234,246,62,248, +44,252,50,0,171,2,243,2,49,1,76,254,158,251,157,250,67,252,206,255,146,2,174,2,161,1,32,2,201,3,204,3, +120,1,239,254,47,253,36,251,1,249,222,248,32,251,219,253,68,0,39,3,151,5,71,5,190,2,28,1,47,1,211,0, +127,255,27,255,184,255,4,255,198,252,190,251,22,253,215,254,193,255,245,0,195,2,73,3,200,1,149,0,220,1,34,4, +255,3,217,0,37,254,240,254,91,1,221,0,243,252,0,250,171,250,163,252,47,254,153,1,38,7,47,9,46,4,242,253, +252,253,133,2,150,4,101,3,31,3,19,3,219,254,125,248,191,247,23,254,214,3,178,3,132,1,25,2,78,3,53,1, +3,254,211,254,60,3,196,5,220,3,116,0,164,254,92,254,7,255,16,1,27,3,1,2,219,253,105,251,176,253,183,1, +130,3,157,3,38,4,239,3,1,1,43,253,183,251,144,252,104,253,178,253,39,254,94,254,218,253,134,253,227,253,25,254, +89,254,10,0,22,2,14,1,190,252,131,249,54,250,187,252,122,254,224,255,134,1,245,1,173,0,189,255,94,0,254,0, +73,0,40,255,125,254,180,253,184,252,184,252,31,254,224,255,66,1,90,2,185,2,228,1,0,1,166,1,51,3,142,3, +129,2,159,1,5,1,70,255,251,252,7,253,36,0,30,3,80,3,20,2,181,1,153,1,82,0,68,255,195,0,212,3, +56,5,30,4,163,2,3,2,108,1,160,0,183,0,176,1,228,1,167,0,106,255,117,255,65,0,213,0,74,1,22,2, +183,2,24,2,30,0,60,254,45,254,7,0,243,1,59,2,32,1,27,0,193,255,133,255,64,255,149,255,161,0,101,1, +251,0,161,255,83,254,232,253,176,254,80,0,199,1,42,2,129,1,149,0,233,255,107,255,50,255,169,255,159,0,242,0, +223,255,42,254,65,253,127,253,38,254,192,254,136,255,119,0,236,0,164,0,69,0,151,0,130,1,45,2,210,1,103,0, +162,254,81,253,186,252,170,252,240,252,121,253,21,254,148,254,236,254,3,255,196,254,152,254,27,255,12,0,91,0,151,255, +147,254,58,254,144,254,20,255,107,255,88,255,204,254,50,254,254,253,227,253,110,253,56,253,62,254,246,255,161,0,199,255, +235,254,52,255,239,255,17,0,224,255,15,0,95,0,47,0,168,255,97,255,118,255,165,255,217,255,6,0,0,0,199,255, +152,255,134,255,122,255,161,255,42,0,177,0,183,0,151,0,34,1,42,2,158,2,34,2,129,1,65,1,236,0,37,0, +116,255,116,255,230,255,67,0,143,0,28,1,234,1,178,2,78,3,186,3,217,3,130,3,173,2,147,1,171,0,82,0, +99,0,101,0,64,0,102,0,4,1,150,1,162,1,101,1,75,1,45,1,180,0,4,0,139,255,87,255,57,255,44,255, +55,255,39,255,224,254,165,254,169,254,172,254,114,254,54,254,56,254,66,254,14,254,215,253,247,253,58,254,59,254,32,254, +119,254,87,255,50,0,156,0,202,0,30,1,139,1,164,1,67,1,209,0,193,0,237,0,193,0,26,0,147,255,184,255, +68,0,151,0,166,0,231,0,96,1,122,1,236,0,63,0,16,0,64,0,56,0,205,255,101,255,67,255,31,255,189,254, +120,254,209,254,161,255,55,0,54,0,246,255,222,255,220,255,179,255,134,255,162,255,229,255,207,255,52,255,129,254,54,254, +91,254,167,254,237,254,29,255,25,255,208,254,127,254,132,254,245,254,137,255,240,255,8,0,199,255,62,255,199,254,209,254, +106,255,30,0,133,0,168,0,184,0,167,0,93,0,39,0,111,0,10,1,82,1,3,1,166,0,207,0,92,1,209,1, +31,2,135,2,229,2,176,2,209,1,248,0,205,0,35,1,94,1,82,1,83,1,133,1,144,1,55,1,206,0,205,0, +38,1,82,1,5,1,140,0,87,0,100,0,85,0,6,0,191,255,189,255,190,255,82,255,146,254,32,254,84,254,202,254, +251,254,252,254,63,255,166,255,150,255,246,254,147,254,10,255,218,255,22,0,177,255,111,255,153,255,159,255,35,255,168,254, +181,254,230,254,135,254,201,253,141,253,25,254,194,254,10,255,73,255,238,255,158,0,185,0,82,0,17,0,61,0,124,0, +120,0,73,0,28,0,228,255,157,255,134,255,199,255,46,0,115,0,152,0,192,0,234,0,15,1,68,1,122,1,89,1, +180,0,242,255,137,255,79,255,188,254,221,253,98,253,156,253,11,254,46,254,70,254,201,254,125,255,196,255,154,255,148,255, +211,255,184,255,232,254,254,253,179,253,206,253,144,253,249,252,216,252,150,253,172,254,123,255,34,0,254,0,223,1,81,2, +105,2,157,2,223,2,150,2,156,1,155,0,51,0,55,0,48,0,42,0,121,0,249,0,45,1,11,1,0,1,41,1, +36,1,214,0,182,0,6,1,73,1,246,0,95,0,62,0,159,0,230,0,208,0,201,0,27,1,113,1,133,1,161,1, +27,2,155,2,133,2,223,1,71,1,18,1,241,0,139,0,8,0,190,255,185,255,194,255,197,255,221,255,38,0,136,0, +205,0,192,0,89,0,198,255,54,255,176,254,51,254,239,253,33,254,161,254,253,254,22,255,78,255,227,255,114,0,123,0, +26,0,213,255,205,255,182,255,122,255,114,255,193,255,10,0,246,255,181,255,169,255,207,255,228,255,215,255,196,255,164,255, +82,255,225,254,141,254,114,254,138,254,219,254,93,255,199,255,213,255,176,255,181,255,224,255,216,255,152,255,139,255,205,255, +223,255,122,255,32,255,86,255,188,255,160,255,43,255,34,255,158,255,231,255,185,255,189,255,86,0,209,0,108,0,148,255, +60,255,106,255,92,255,237,254,206,254,67,255,149,255,51,255,164,254,173,254,44,255,109,255,85,255,112,255,240,255,92,0, +100,0,98,0,197,0,97,1,185,1,176,1,146,1,150,1,155,1,109,1,22,1,204,0,164,0,127,0,55,0,229,255, +208,255,14,0,82,0,73,0,11,0,243,255,21,0,43,0,34,0,81,0,230,0,120,1,142,1,72,1,37,1,54,1, +26,1,178,0,98,0,105,0,113,0,33,0,175,255,136,255,165,255,159,255,89,255,34,255,42,255,61,255,39,255,14,255, +41,255,101,255,130,255,112,255,90,255,95,255,113,255,119,255,112,255,101,255,90,255,74,255,49,255,21,255,13,255,42,255, +93,255,128,255,133,255,134,255,152,255,168,255,161,255,149,255,162,255,191,255,195,255,168,255,146,255,146,255,143,255,119,255, +88,255,76,255,75,255,69,255,61,255,66,255,84,255,106,255,132,255,169,255,210,255,248,255,34,0,84,0,130,0,159,0, +182,0,223,0,19,1,42,1,28,1,18,1,40,1,62,1,38,1,246,0,232,0,248,0,227,0,153,0,94,0,99,0, +116,0,81,0,20,0,11,0,59,0,91,0,77,0,79,0,156,0,8,1,65,1,57,1,48,1,78,1,103,1,71,1, +1,1,224,0,243,0,243,0,170,0,77,0,55,0,89,0,75,0,239,255,170,255,213,255,50,0,73,0,26,0,17,0, +81,0,131,0,105,0,63,0,84,0,139,0,148,0,120,0,136,0,209,0,246,0,180,0,78,0,50,0,92,0,98,0, +18,0,198,255,233,255,89,0,149,0,116,0,85,0,130,0,189,0,173,0,116,0,110,0,148,0,131,0,42,0,225,255, +213,255,182,255,72,255,209,254,179,254,222,254,7,255,39,255,102,255,180,255,213,255,195,255,184,255,196,255,196,255,172,255, +154,255,146,255,115,255,58,255,16,255,4,255,249,254,230,254,231,254,248,254,233,254,177,254,137,254,159,254,208,254,236,254, +244,254,248,254,230,254,184,254,165,254,227,254,79,255,158,255,191,255,218,255,254,255,15,0,5,0,3,0,37,0,95,0, +136,0,127,0,64,0,252,255,243,255,43,0,102,0,117,0,121,0,157,0,194,0,166,0,91,0,60,0,112,0,175,0, +172,0,111,0,51,0,22,0,11,0,5,0,6,0,17,0,26,0,17,0,239,255,204,255,206,255,253,255,45,0,55,0, +52,0,80,0,119,0,105,0,33,0,237,255,4,0,64,0,90,0,58,0,253,255,199,255,185,255,225,255,22,0,25,0, +244,255,253,255,83,0,159,0,143,0,85,0,91,0,160,0,186,0,120,0,24,0,214,255,165,255,119,255,119,255,191,255, +37,0,120,0,199,0,44,1,132,1,153,1,121,1,91,1,65,1,241,0,92,0,200,255,128,255,124,255,135,255,144,255, +180,255,241,255,21,0,242,255,157,255,85,255,56,255,51,255,39,255,13,255,229,254,171,254,113,254,88,254,109,254,133,254, +123,254,97,254,99,254,132,254,154,254,159,254,191,254,23,255,131,255,199,255,205,255,166,255,113,255,82,255,104,255,161,255, +188,255,156,255,110,255,109,255,141,255,154,255,151,255,195,255,51,0,164,0,206,0,189,0,164,0,149,0,133,0,127,0, +149,0,181,0,193,0,194,0,214,0,240,0,237,0,220,0,241,0,47,1,87,1,76,1,66,1,104,1,147,1,115,1, +16,1,206,0,228,0,10,1,230,0,144,0,119,0,183,0,240,0,223,0,210,0,28,1,125,1,116,1,8,1,182,0, +166,0,124,0,7,0,154,255,135,255,166,255,169,255,143,255,138,255,169,255,208,255,224,255,197,255,131,255,69,255,54,255, +70,255,86,255,112,255,168,255,211,255,189,255,142,255,152,255,198,255,193,255,136,255,117,255,150,255,151,255,100,255,81,255, +141,255,217,255,5,0,52,0,119,0,151,0,115,0,67,0,56,0,55,0,16,0,206,255,151,255,126,255,133,255,156,255, +167,255,162,255,180,255,229,255,245,255,199,255,176,255,246,255,72,0,50,0,222,255,212,255,20,0,35,0,221,255,175,255, +224,255,52,0,92,0,74,0,8,0,168,255,94,255,79,255,73,255,15,255,212,254,0,255,131,255,227,255,239,255,243,255, +34,0,82,0,84,0,54,0,9,0,197,255,132,255,115,255,144,255,172,255,193,255,239,255,44,0,73,0,56,0,23,0, +244,255,205,255,195,255,248,255,70,0,119,0,156,0,227,0,41,1,38,1,241,0,232,0,21,1,34,1,237,0,186,0, +187,0,192,0,158,0,121,0,135,0,195,0,255,0,28,1,13,1,222,0,185,0,184,0,188,0,147,0,82,0,48,0, +46,0,28,0,246,255,226,255,240,255,10,0,46,0,97,0,134,0,129,0,99,0,72,0,27,0,213,255,182,255,227,255, +8,0,196,255,85,255,69,255,150,255,198,255,168,255,155,255,206,255,246,255,211,255,133,255,58,255,228,254,131,254,81,254, +108,254,168,254,212,254,242,254,15,255,27,255,12,255,248,254,232,254,218,254,210,254,215,254,214,254,200,254,220,254,54,255, +166,255,223,255,231,255,255,255,43,0,49,0,255,255,204,255,182,255,175,255,182,255,229,255,38,0,56,0,5,0,204,255, +216,255,40,0,126,0,152,0,112,0,59,0,41,0,34,0,245,255,190,255,213,255,66,0,148,0,124,0,58,0,42,0, +56,0,29,0,230,255,215,255,234,255,219,255,165,255,148,255,201,255,255,255,26,0,39,0,82,0,151,0,188,0,162,0, +139,0,187,0,3,1,3,1,179,0,98,0,56,0,23,0,238,255,223,255,10,0,76,0,84,0,21,0,250,255,89,0, +219,0,223,0,117,0,66,0,96,0,58,0,168,255,88,255,176,255,43,0,54,0,1,0,0,0,46,0,58,0,21,0, +245,255,255,255,20,0,2,0,212,255,223,255,81,0,231,0,58,1,20,1,119,0,169,255,74,255,146,255,167,255,178,254, +133,253,220,253,246,255,67,2,88,3,182,2,51,0,164,252,155,250,235,251,212,254,50,0,219,255,237,255,142,0,249,255, +156,254,39,255,212,1,54,3,14,1,111,253,210,251,64,253,106,0,163,3,91,5,81,4,192,0,196,252,142,250,160,250, +58,252,160,254,249,0,211,1,108,0,80,254,17,254,24,0,106,2,173,3,58,4,215,3,56,1,6,253,149,250,218,251, +1,255,95,1,55,2,102,1,191,254,43,252,247,252,27,1,120,4,151,4,207,3,11,5,206,7,255,9,80,10,79,7, +186,255,207,245,113,239,231,240,231,248,81,2,206,7,9,6,172,253,158,244,155,242,138,250,186,7,157,17,57,18,179,9, +6,253,52,242,159,237,108,241,145,252,127,9,98,16,64,13,82,3,110,249,146,244,112,246,2,254,30,7,163,11,49,8, +98,255,75,247,133,244,241,247,74,255,130,6,196,9,162,7,224,1,123,252,171,251,208,0,58,8,124,11,75,7,55,254, +84,245,106,240,136,241,213,248,199,2,86,9,103,9,180,5,229,2,145,2,68,3,131,3,190,2,92,0,247,251,210,246, +13,244,111,246,96,253,144,4,137,7,199,5,114,2,90,0,162,255,60,255,201,254,79,254,160,253,254,252,83,253,36,255, +230,1,195,4,15,7,147,7,188,4,167,254,139,248,146,246,174,249,103,254,138,0,117,255,249,253,151,254,26,1,173,3, +199,4,171,3,75,0,160,251,164,247,96,246,203,248,42,254,51,4,50,8,195,8,119,6,242,2,207,255,40,254,16,254, +56,254,234,252,230,249,206,246,251,245,30,249,63,0,213,8,122,14,33,14,182,8,243,1,13,253,38,251,215,251,171,253, +132,254,39,253,144,250,27,249,125,250,201,254,159,4,139,9,20,11,121,8,92,3,178,254,131,252,7,253,62,255,154,1, +157,2,182,1,186,255,53,254,61,254,218,255,245,1,214,2,111,1,132,254,30,252,170,251,43,253,254,255,88,3,233,5, +74,6,101,4,190,1,214,255,241,254,159,254,139,254,90,254,177,253,221,252,206,252,215,253,35,255,209,255,228,255,201,255, +152,255,89,255,107,255,35,0,74,1,77,2,172,2,42,2,235,0,136,255,149,254,23,254,185,253,96,253,34,253,249,252, +11,253,250,253,34,0,164,2,0,4,166,3,98,2,78,1,10,1,172,1,174,2,232,2,112,1,184,254,64,252,35,251, +101,251,129,252,230,253,231,254,241,254,45,254,140,253,0,254,205,255,116,2,1,5,101,6,10,6,48,4,177,1,117,255, +28,254,198,253,226,253,134,253,94,252,31,251,226,250,34,252,136,254,72,1,111,3,50,4,119,3,1,2,203,0,76,0, +98,0,173,0,189,0,47,0,9,255,228,253,125,253,13,254,53,255,86,0,240,0,206,0,28,0,83,255,253,254,103,255, +129,0,232,1,16,3,138,3,53,3,71,2,34,1,44,0,180,255,170,255,186,255,186,255,174,255,195,255,40,0,225,0, +191,1,108,2,156,2,53,2,97,1,120,0,211,255,156,255,191,255,248,255,2,0,191,255,82,255,2,255,21,255,155,255, +97,0,10,1,62,1,219,0,13,0,51,255,168,254,155,254,243,254,106,255,186,255,200,255,171,255,156,255,195,255,31,0, +129,0,171,0,120,0,242,255,77,255,198,254,127,254,119,254,145,254,174,254,199,254,233,254,38,255,126,255,218,255,21,0, +28,0,247,255,201,255,179,255,192,255,217,255,217,255,174,255,105,255,62,255,92,255,203,255,94,0,199,0,198,0,85,0, +177,255,54,255,39,255,133,255,11,0,89,0,53,0,176,255,30,255,224,254,37,255,201,255,107,0,165,0,83,0,167,255, +13,255,231,254,84,255,25,0,202,0,9,1,195,0,53,0,199,255,199,255,58,0,217,0,63,1,41,1,158,0,234,255, +112,255,109,255,214,255,98,0,186,0,172,0,71,0,209,255,151,255,190,255,46,0,166,0,225,0,198,0,112,0,31,0, +9,0,61,0,152,0,220,0,220,0,150,0,52,0,243,255,250,255,72,0,182,0,16,1,50,1,26,1,228,0,187,0, +184,0,210,0,224,0,189,0,97,0,232,255,123,255,62,255,72,255,142,255,235,255,48,0,66,0,47,0,24,0,20,0, +39,0,61,0,66,0,44,0,254,255,198,255,152,255,132,255,146,255,187,255,232,255,254,255,240,255,203,255,169,255,152,255, +149,255,152,255,156,255,161,255,158,255,146,255,135,255,132,255,128,255,110,255,85,255,72,255,78,255,84,255,76,255,77,255, +115,255,184,255,252,255,51,0,110,0,175,0,205,0,160,0,63,0,235,255,198,255,185,255,164,255,143,255,145,255,162,255, +163,255,152,255,167,255,231,255,52,0,86,0,61,0,4,0,201,255,152,255,123,255,129,255,164,255,197,255,202,255,182,255, +165,255,170,255,195,255,239,255,44,0,102,0,126,0,97,0,39,0,1,0,14,0,68,0,120,0,129,0,89,0,28,0, +236,255,215,255,211,255,219,255,248,255,40,0,76,0,73,0,50,0,59,0,116,0,177,0,192,0,163,0,128,0,92,0, +30,0,207,255,169,255,207,255,17,0,35,0,248,255,197,255,175,255,165,255,156,255,174,255,240,255,58,0,78,0,49,0, +26,0,30,0,20,0,217,255,149,255,124,255,133,255,123,255,89,255,87,255,153,255,245,255,51,0,79,0,107,0,136,0, +131,0,81,0,26,0,255,255,236,255,187,255,117,255,73,255,89,255,152,255,224,255,20,0,39,0,26,0,255,255,238,255, +241,255,251,255,250,255,237,255,219,255,200,255,184,255,175,255,173,255,174,255,180,255,200,255,224,255,221,255,178,255,134,255, +134,255,157,255,136,255,53,255,237,254,2,255,123,255,25,0,158,0,224,0,186,0,58,0,189,255,163,255,218,255,249,255, +220,255,196,255,199,255,155,255,54,255,53,255,11,0,24,1,82,1,170,0,6,0,207,255,141,255,59,255,199,255,93,1, +104,2,157,1,61,0,97,0,151,1,110,1,145,255,154,254,216,255,252,0,234,255,119,254,113,255,192,1,245,1,221,255, +173,254,156,255,94,0,221,255,99,0,255,2,122,4,21,2,133,254,65,254,162,0,37,1,240,254,40,254,212,0,25,3, +54,1,170,253,135,253,198,0,162,2,249,0,235,254,85,255,155,0,26,0,187,254,9,255,139,0,130,0,181,254,10,254, +209,255,162,1,67,1,22,0,126,0,193,1,82,1,67,255,114,254,7,0,150,1,231,0,62,255,30,255,100,0,228,0, +26,0,184,255,135,0,245,0,194,255,55,254,92,254,19,0,120,1,145,1,12,1,152,0,5,0,53,255,183,254,201,254, +211,254,116,254,70,254,216,254,152,255,176,255,108,255,200,255,191,0,60,1,192,0,18,0,241,255,0,0,170,255,61,255, +80,255,160,255,112,255,213,254,172,254,65,255,234,255,37,0,75,0,177,0,218,0,57,0,60,255,210,254,32,255,118,255, +124,255,162,255,38,0,121,0,29,0,132,255,122,255,246,255,55,0,236,255,153,255,182,255,3,0,17,0,2,0,71,0, +214,0,28,1,189,0,3,0,115,255,61,255,67,255,104,255,175,255,25,0,138,0,216,0,220,0,141,0,43,0,31,0, +147,0,43,1,83,1,209,0,250,255,79,255,21,255,75,255,207,255,86,0,131,0,47,0,161,255,82,255,117,255,228,255, +113,0,6,1,107,1,60,1,93,0,84,255,218,254,28,255,142,255,161,255,89,255,31,255,47,255,115,255,212,255,86,0, +226,0,41,1,245,0,119,0,23,0,11,0,51,0,95,0,130,0,140,0,76,0,166,255,227,254,147,254,251,254,199,255, +88,0,99,0,39,0,8,0,29,0,56,0,59,0,53,0,49,0,9,0,163,255,40,255,226,254,231,254,15,255,71,255, +169,255,45,0,123,0,87,0,27,0,116,0,124,1,104,2,85,2,68,1,7,0,73,255,250,254,178,254,75,254,232,253, +160,253,127,253,190,253,174,254,70,0,250,1,31,3,89,3,166,2,59,1,155,255,130,254,107,254,10,255,132,255,61,255, +106,254,195,253,213,253,185,254,51,0,224,1,61,3,197,3,72,3,27,2,241,0,96,0,102,0,91,0,141,255,12,254, +188,252,109,252,15,253,9,254,36,255,140,0,242,1,102,2,139,1,106,0,93,0,95,1,53,2,41,2,184,1,97,1, +184,0,101,255,63,254,111,254,178,255,114,0,189,255,70,254,64,253,40,253,12,254,16,0,211,2,230,4,247,4,101,3, +214,1,37,1,172,0,203,255,255,254,221,254,199,254,184,253,19,252,127,251,214,252,22,255,185,0,105,1,203,1,38,2, +40,2,197,1,139,1,203,1,6,2,136,1,70,0,203,254,142,253,178,252,81,252,158,252,147,253,201,254,198,255,88,0, +150,0,170,0,182,0,204,0,212,0,145,0,225,255,246,254,63,254,33,254,189,254,226,255,27,1,218,1,204,1,26,1, +57,0,134,255,14,255,183,254,112,254,39,254,203,253,124,253,156,253,116,254,213,255,45,1,12,2,102,2,84,2,224,1, +34,1,109,0,10,0,232,255,172,255,54,255,202,254,182,254,241,254,54,255,101,255,152,255,233,255,70,0,145,0,201,0, +1,1,74,1,153,1,200,1,176,1,63,1,143,0,211,255,52,255,201,254,167,254,225,254,94,255,219,255,36,0,76,0, +129,0,196,0,228,0,194,0,124,0,55,0,247,255,196,255,198,255,23,0,136,0,200,0,194,0,171,0,157,0,116,0, +23,0,187,255,163,255,177,255,141,255,47,255,3,255,99,255,35,0,203,0,33,1,62,1,58,1,6,1,160,0,54,0, +237,255,184,255,127,255,92,255,122,255,196,255,249,255,10,0,50,0,156,0,17,1,53,1,244,0,140,0,51,0,228,255, +139,255,68,255,57,255,101,255,152,255,175,255,184,255,208,255,3,0,71,0,134,0,164,0,138,0,61,0,230,255,172,255, +144,255,124,255,103,255,90,255,87,255,80,255,69,255,83,255,144,255,233,255,41,0,56,0,40,0,26,0,26,0,40,0, +64,0,88,0,87,0,42,0,224,255,154,255,109,255,81,255,64,255,70,255,103,255,144,255,174,255,204,255,4,0,83,0, +145,0,159,0,141,0,124,0,113,0,80,0,20,0,215,255,176,255,151,255,124,255,115,255,156,255,246,255,83,0,135,0, +150,0,151,0,141,0,105,0,47,0,9,0,22,0,72,0,112,0,107,0,65,0,9,0,219,255,197,255,199,255,209,255, +198,255,157,255,114,255,109,255,160,255,247,255,79,0,151,0,196,0,202,0,157,0,76,0,5,0,239,255,2,0,15,0, +238,255,167,255,98,255,66,255,84,255,142,255,224,255,51,0,104,0,111,0,94,0,97,0,144,0,205,0,223,0,166,0, +55,0,189,255,86,255,20,255,5,255,56,255,152,255,243,255,35,0,46,0,52,0,64,0,67,0,54,0,38,0,25,0, +252,255,190,255,117,255,78,255,89,255,125,255,158,255,181,255,193,255,181,255,135,255,81,255,64,255,88,255,114,255,115,255, +115,255,148,255,207,255,248,255,253,255,250,255,1,0,255,255,219,255,164,255,128,255,124,255,129,255,129,255,141,255,181,255, +234,255,19,0,48,0,81,0,111,0,112,0,72,0,20,0,247,255,247,255,2,0,6,0,0,0,235,255,205,255,188,255, +209,255,4,0,45,0,43,0,7,0,232,255,232,255,5,0,51,0,101,0,147,0,170,0,162,0,135,0,108,0,95,0, +96,0,105,0,114,0,113,0,93,0,58,0,28,0,19,0,33,0,49,0,47,0,23,0,252,255,245,255,13,0,59,0, +110,0,157,0,197,0,213,0,183,0,104,0,11,0,205,255,190,255,203,255,220,255,237,255,255,255,12,0,16,0,18,0, +34,0,65,0,93,0,106,0,105,0,88,0,52,0,8,0,237,255,238,255,242,255,224,255,195,255,189,255,210,255,225,255, +218,255,219,255,1,0,54,0,77,0,65,0,57,0,72,0,73,0,28,0,222,255,202,255,232,255,15,0,32,0,44,0, +68,0,76,0,44,0,251,255,230,255,237,255,235,255,209,255,191,255,203,255,219,255,210,255,203,255,246,255,70,0,115,0, +84,0,21,0,242,255,229,255,190,255,124,255,89,255,120,255,177,255,203,255,204,255,233,255,54,0,133,0,167,0,150,0, +108,0,49,0,230,255,166,255,154,255,195,255,244,255,253,255,232,255,221,255,232,255,240,255,231,255,236,255,30,0,97,0, +121,0,77,0,9,0,227,255,225,255,228,255,227,255,246,255,39,0,88,0,105,0,95,0,82,0,68,0,35,0,242,255, +208,255,206,255,216,255,222,255,240,255,40,0,117,0,174,0,192,0,197,0,197,0,159,0,50,0,155,255,38,255,1,255, +29,255,93,255,182,255,31,0,112,0,128,0,97,0,75,0,72,0,38,0,197,255,89,255,47,255,84,255,151,255,218,255, +29,0,66,0,17,0,166,255,111,255,157,255,214,255,178,255,85,255,49,255,99,255,169,255,211,255,238,255,252,255,215,255, +115,255,9,255,224,254,10,255,98,255,173,255,195,255,165,255,139,255,180,255,28,0,121,0,133,0,65,0,220,255,126,255, +71,255,94,255,204,255,89,0,170,0,163,0,117,0,84,0,71,0,67,0,81,0,111,0,111,0,38,0,186,255,127,255, +148,255,204,255,252,255,43,0,93,0,104,0,41,0,212,255,192,255,240,255,16,0,237,255,179,255,163,255,184,255,198,255, +212,255,10,0,94,0,141,0,126,0,102,0,120,0,150,0,133,0,78,0,47,0,57,0,64,0,36,0,255,255,237,255, +217,255,176,255,154,255,204,255,50,0,119,0,104,0,45,0,6,0,3,0,16,0,35,0,67,0,94,0,84,0,43,0, +17,0,30,0,53,0,51,0,30,0,20,0,23,0,14,0,242,255,226,255,248,255,37,0,68,0,66,0,48,0,43,0, +67,0,100,0,105,0,69,0,29,0,42,0,110,0,168,0,151,0,69,0,238,255,180,255,141,255,120,255,148,255,227,255, +46,0,53,0,8,0,248,255,55,0,179,0,51,1,122,1,78,1,153,0,163,255,250,254,237,254,58,255,94,255,48,255, +237,254,188,254,127,254,69,254,138,254,172,255,71,1,93,2,68,2,34,1,143,255,34,254,102,253,214,253,99,255,34,1, +234,1,102,1,70,0,100,255,10,255,48,255,208,255,154,0,190,0,165,255,230,253,240,252,149,253,77,255,248,0,227,1, +236,1,55,1,66,0,226,255,156,0,233,1,146,2,204,1,217,255,164,253,18,252,199,251,240,252,3,255,221,0,159,1, +107,1,21,1,38,1,110,1,137,1,101,1,19,1,96,0,27,255,169,253,249,252,169,253,74,255,193,0,70,1,237,0, +84,0,238,255,205,255,218,255,24,0,133,0,234,0,246,0,141,0,242,255,134,255,118,255,165,255,222,255,249,255,238,255, +203,255,190,255,236,255,66,0,115,0,70,0,217,255,126,255,112,255,171,255,22,0,148,0,249,0,7,1,181,0,69,0, +10,0,6,0,240,255,149,255,12,255,146,254,81,254,100,254,230,254,209,255,213,0,132,1,166,1,94,1,245,0,162,0, +130,0,147,0,161,0,85,0,145,255,172,254,50,254,92,254,225,254,85,255,140,255,153,255,150,255,150,255,195,255,73,0, +25,1,219,1,48,2,245,1,73,1,100,0,141,255,11,255,252,254,43,255,53,255,237,254,136,254,103,254,184,254,97,255, +41,0,222,0,88,1,124,1,81,1,254,0,176,0,119,0,75,0,26,0,210,255,109,255,4,255,208,254,253,254,128,255, +22,0,120,0,138,0,93,0,28,0,250,255,25,0,111,0,194,0,211,0,161,0,99,0,75,0,95,0,135,0,177,0, +203,0,177,0,68,0,153,255,0,255,200,254,251,254,102,255,209,255,41,0,113,0,168,0,200,0,209,0,208,0,197,0, +157,0,72,0,214,255,120,255,91,255,126,255,181,255,208,255,204,255,211,255,3,0,81,0,147,0,168,0,147,0,102,0, +44,0,236,255,185,255,169,255,192,255,236,255,11,0,8,0,229,255,188,255,174,255,203,255,2,0,39,0,27,0,232,255, +191,255,199,255,253,255,63,0,99,0,93,0,57,0,13,0,227,255,185,255,153,255,151,255,187,255,233,255,247,255,215,255, +181,255,197,255,8,0,78,0,105,0,87,0,47,0,251,255,189,255,136,255,124,255,154,255,191,255,198,255,173,255,141,255, +123,255,125,255,151,255,205,255,13,0,54,0,56,0,32,0,10,0,5,0,9,0,16,0,20,0,6,0,214,255,143,255, +88,255,83,255,119,255,156,255,168,255,165,255,173,255,213,255,25,0,97,0,146,0,156,0,135,0,98,0,57,0,14,0, +234,255,224,255,246,255,19,0,19,0,244,255,214,255,218,255,252,255,34,0,58,0,70,0,71,0,63,0,52,0,51,0, +67,0,83,0,84,0,71,0,60,0,63,0,73,0,72,0,48,0,11,0,245,255,248,255,253,255,239,255,228,255,22,0, +152,0,35,1,81,1,0,1,108,0,218,255,101,255,20,255,8,255,84,255,181,255,200,255,117,255,24,255,18,255,105,255, +235,255,127,0,21,1,105,1,36,1,89,0,153,255,98,255,148,255,185,255,154,255,102,255,80,255,91,255,135,255,229,255, +102,0,184,0,157,0,54,0,209,255,139,255,93,255,102,255,205,255,94,0,159,0,104,0,29,0,20,0,26,0,217,255, +124,255,121,255,208,255,1,0,217,255,203,255,46,0,159,0,130,0,232,255,104,255,64,255,42,255,26,255,128,255,135,0, +141,1,205,1,78,1,169,0,30,0,125,255,211,254,156,254,254,254,108,255,97,255,36,255,94,255,41,0,246,0,77,1, +61,1,2,1,165,0,55,0,246,255,1,0,24,0,236,255,149,255,103,255,124,255,164,255,207,255,45,0,200,0,73,1, +78,1,222,0,82,0,238,255,174,255,130,255,117,255,153,255,229,255,68,0,155,0,212,0,230,0,230,0,250,0,30,1, +12,1,128,0,150,255,192,254,97,254,132,254,243,254,124,255,11,0,143,0,227,0,236,0,187,0,128,0,93,0,61,0, +242,255,117,255,7,255,252,254,96,255,236,255,75,0,105,0,104,0,96,0,77,0,52,0,42,0,43,0,9,0,165,255, +31,255,195,254,184,254,235,254,72,255,208,255,113,0,234,0,5,1,214,0,157,0,116,0,49,0,185,255,54,255,230,254, +214,254,231,254,9,255,79,255,191,255,53,0,129,0,150,0,127,0,65,0,225,255,120,255,39,255,252,254,239,254,3,255, +75,255,198,255,79,0,192,0,14,1,61,1,54,1,217,0,55,0,146,255,30,255,214,254,158,254,129,254,161,254,10,255, +147,255,25,0,151,0,17,1,104,1,107,1,19,1,138,0,6,0,153,255,65,255,11,255,13,255,72,255,154,255,224,255, +12,0,34,0,41,0,36,0,31,0,43,0,78,0,128,0,174,0,208,0,225,0,224,0,207,0,185,0,167,0,137,0, +63,0,189,255,47,255,215,254,217,254,28,255,114,255,199,255,41,0,151,0,244,0,31,1,27,1,2,1,221,0,155,0, +42,0,158,255,35,255,222,254,221,254,25,255,123,255,224,255,48,0,112,0,175,0,227,0,233,0,172,0,76,0,254,255, +211,255,178,255,141,255,126,255,158,255,224,255,32,0,76,0,114,0,149,0,162,0,134,0,71,0,245,255,160,255,87,255, +55,255,83,255,153,255,220,255,7,0,43,0,88,0,125,0,135,0,134,0,151,0,169,0,135,0,24,0,146,255,63,255, +53,255,80,255,115,255,165,255,244,255,72,0,116,0,112,0,85,0,63,0,49,0,29,0,251,255,204,255,154,255,123,255, +133,255,184,255,243,255,18,0,21,0,31,0,62,0,89,0,81,0,38,0,251,255,225,255,202,255,168,255,129,255,110,255, +123,255,160,255,211,255,12,0,58,0,82,0,86,0,94,0,121,0,153,0,160,0,135,0,105,0,88,0,71,0,30,0, +225,255,177,255,166,255,180,255,190,255,182,255,169,255,172,255,199,255,245,255,44,0,95,0,130,0,140,0,133,0,116,0, +92,0,61,0,32,0,13,0,0,0,233,255,194,255,152,255,126,255,124,255,144,255,180,255,227,255,15,0,34,0,25,0, +10,0,14,0,38,0,57,0,56,0,44,0,38,0,40,0,38,0,28,0,12,0,249,255,224,255,197,255,180,255,186,255, +212,255,248,255,25,0,51,0,63,0,51,0,10,0,213,255,177,255,178,255,205,255,232,255,241,255,242,255,254,255,21,0, +29,0,4,0,216,255,184,255,178,255,181,255,171,255,149,255,141,255,163,255,208,255,1,0,37,0,45,0,24,0,241,255, +208,255,198,255,204,255,211,255,213,255,214,255,213,255,204,255,195,255,205,255,244,255,35,0,60,0,49,0,16,0,237,255, +212,255,211,255,248,255,52,0,92,0,77,0,19,0,215,255,181,255,169,255,168,255,180,255,211,255,248,255,19,0,35,0, +54,0,77,0,91,0,96,0,101,0,104,0,87,0,40,0,248,255,232,255,244,255,249,255,228,255,207,255,214,255,245,255, +19,0,41,0,70,0,104,0,120,0,107,0,85,0,76,0,72,0,49,0,7,0,225,255,204,255,189,255,175,255,177,255, +213,255,10,0,43,0,40,0,19,0,8,0,16,0,35,0,53,0,59,0,44,0,5,0,215,255,187,255,191,255,218,255, +252,255,25,0,44,0,50,0,48,0,48,0,53,0,51,0,31,0,1,0,237,255,235,255,240,255,240,255,241,255,247,255, +249,255,233,255,201,255,183,255,200,255,245,255,31,0,50,0,48,0,39,0,33,0,29,0,25,0,20,0,11,0,251,255, +231,255,218,255,220,255,240,255,8,0,22,0,23,0,18,0,13,0,5,0,245,255,232,255,238,255,7,0,21,0,255,255, +205,255,163,255,159,255,186,255,220,255,251,255,25,0,56,0,73,0,69,0,54,0,44,0,40,0,28,0,1,0,218,255, +176,255,143,255,132,255,156,255,207,255,0,0,20,0,13,0,1,0,0,0,6,0,13,0,20,0,26,0,20,0,249,255, +208,255,175,255,167,255,180,255,202,255,223,255,241,255,250,255,251,255,253,255,11,0,36,0,61,0,77,0,80,0,68,0, +36,0,248,255,215,255,214,255,235,255,253,255,251,255,236,255,224,255,212,255,200,255,197,255,220,255,7,0,40,0,42,0, +24,0,12,0,14,0,20,0,18,0,11,0,4,0,246,255,223,255,206,255,213,255,245,255,21,0,29,0,18,0,1,0, +244,255,229,255,215,255,211,255,220,255,229,255,227,255,225,255,240,255,15,0,41,0,41,0,16,0,243,255,220,255,203,255, +189,255,190,255,212,255,246,255,12,0,8,0,245,255,234,255,247,255,21,0,46,0,48,0,29,0,4,0,240,255,222,255, +199,255,178,255,179,255,206,255,241,255,2,0,255,255,3,0,32,0,70,0,78,0,42,0,241,255,194,255,168,255,155,255, +150,255,163,255,198,255,245,255,29,0,57,0,75,0,88,0,91,0,81,0,60,0,28,0,247,255,220,255,224,255,6,0, +50,0,64,0,40,0,7,0,251,255,1,0,3,0,251,255,251,255,17,0,47,0,59,0,51,0,42,0,51,0,71,0, +80,0,61,0,20,0,233,255,210,255,215,255,239,255,9,0,29,0,46,0,66,0,82,0,80,0,59,0,41,0,47,0, +70,0,85,0,73,0,41,0,13,0,2,0,4,0,8,0,9,0,4,0,252,255,244,255,241,255,242,255,246,255,1,0, +22,0,46,0,55,0,39,0,11,0,251,255,2,0,16,0,15,0,253,255,234,255,225,255,223,255,224,255,227,255,238,255, +0,0,14,0,15,0,6,0,250,255,243,255,244,255,251,255,0,0,251,255,235,255,214,255,201,255,198,255,202,255,206,255, +208,255,215,255,226,255,237,255,239,255,234,255,233,255,243,255,1,0,1,0,236,255,209,255,199,255,210,255,227,255,229,255, +217,255,208,255,213,255,228,255,240,255,246,255,255,255,16,0,32,0,37,0,27,0,9,0,249,255,241,255,237,255,229,255, +212,255,196,255,195,255,214,255,242,255,3,0,2,0,250,255,250,255,5,0,21,0,38,0,50,0,55,0,49,0,31,0, +6,0,234,255,209,255,192,255,192,255,210,255,233,255,253,255,18,0,51,0,89,0,113,0,109,0,84,0,55,0,28,0, +255,255,224,255,202,255,198,255,206,255,215,255,224,255,238,255,3,0,21,0,31,0,33,0,32,0,31,0,31,0,34,0, +40,0,44,0,39,0,28,0,14,0,1,0,241,255,222,255,212,255,219,255,234,255,243,255,239,255,233,255,239,255,4,0, +27,0,42,0,44,0,37,0,24,0,10,0,251,255,236,255,224,255,219,255,225,255,237,255,243,255,239,255,236,255,245,255, +13,0,35,0,40,0,27,0,10,0,253,255,246,255,236,255,221,255,206,255,202,255,210,255,226,255,241,255,250,255,0,0, +9,0,18,0,21,0,10,0,245,255,227,255,221,255,225,255,231,255,235,255,242,255,0,0,17,0,27,0,22,0,9,0, +1,0,2,0,5,0,255,255,243,255,236,255,242,255,253,255,2,0,255,255,255,255,12,0,32,0,42,0,34,0,20,0, +16,0,24,0,27,0,8,0,230,255,205,255,208,255,233,255,255,255,3,0,1,0,18,0,60,0,99,0,105,0,77,0, +48,0,45,0,60,0,53,0,7,0,205,255,182,255,210,255,253,255,14,0,2,0,2,0,44,0,111,0,150,0,133,0, +85,0,55,0,60,0,63,0,23,0,204,255,145,255,142,255,180,255,209,255,200,255,180,255,190,255,238,255,31,0,41,0, +18,0,2,0,19,0,52,0,64,0,41,0,4,0,242,255,246,255,252,255,240,255,215,255,200,255,209,255,231,255,247,255, +247,255,242,255,244,255,255,255,6,0,1,0,243,255,233,255,237,255,245,255,247,255,240,255,233,255,233,255,238,255,239,255, +237,255,237,255,246,255,5,0,15,0,17,0,13,0,10,0,11,0,11,0,2,0,240,255,222,255,213,255,213,255,216,255, +217,255,215,255,217,255,227,255,239,255,243,255,234,255,222,255,217,255,225,255,237,255,244,255,246,255,250,255,4,0,19,0, +28,0,24,0,8,0,246,255,234,255,229,255,226,255,220,255,214,255,216,255,231,255,253,255,14,0,19,0,15,0,10,0, +8,0,3,0,248,255,230,255,214,255,211,255,222,255,241,255,2,0,14,0,24,0,37,0,52,0,61,0,56,0,38,0, +16,0,1,0,250,255,246,255,240,255,233,255,234,255,245,255,5,0,16,0,17,0,12,0,8,0,11,0,16,0,17,0, +12,0,6,0,7,0,14,0,21,0,21,0,12,0,1,0,251,255,250,255,249,255,246,255,242,255,244,255,255,255,14,0, +24,0,27,0,25,0,22,0,18,0,12,0,3,0,249,255,242,255,241,255,244,255,247,255,250,255,252,255,255,255,2,0, +3,0,2,0,1,0,2,0,7,0,11,0,13,0,11,0,10,0,10,0,8,0,2,0,248,255,240,255,240,255,246,255, +255,255,3,0,5,0,9,0,16,0,22,0,20,0,8,0,250,255,242,255,245,255,251,255,255,255,255,255,1,0,11,0, +25,0,33,0,27,0,13,0,1,0,254,255,1,0,0,0,249,255,243,255,246,255,3,0,15,0,17,0,10,0,1,0, +255,255,5,0,9,0,5,0,254,255,253,255,5,0,17,0,23,0,19,0,11,0,7,0,11,0,15,0,14,0,6,0, +0,0,0,0,5,0,8,0,5,0,253,255,247,255,248,255,251,255,253,255,253,255,252,255,254,255,4,0,8,0,9,0, +5,0,2,0,0,0,255,255,254,255,252,255,251,255,253,255,254,255,254,255,253,255,252,255,254,255,1,0,3,0,4,0, +6,0,12,0,19,0,23,0,21,0,14,0,8,0,5,0,3,0,253,255,246,255,241,255,244,255,252,255,5,0,6,0, +1,0,252,255,250,255,250,255,245,255,236,255,225,255,221,255,227,255,235,255,240,255,239,255,236,255,237,255,242,255,244,255, +240,255,232,255,227,255,229,255,237,255,243,255,244,255,243,255,243,255,248,255,253,255,255,255,253,255,251,255,253,255,2,0, +7,0,9,0,8,0,5,0,3,0,1,0,255,255,252,255,249,255,248,255,248,255,250,255,253,255,1,0,3,0,3,0, +2,0,2,0,4,0,8,0,12,0,12,0,11,0,11,0,12,0,12,0,8,0,254,255,245,255,241,255,244,255,251,255, +0,0,2,0,5,0,13,0,23,0,28,0,23,0,13,0,4,0,3,0,6,0,7,0,5,0,4,0,8,0,18,0, +27,0,29,0,22,0,13,0,11,0,14,0,16,0,14,0,9,0,6,0,10,0,16,0,18,0,12,0,4,0,1,0, +5,0,12,0,16,0,18,0,19,0,24,0,30,0,31,0,25,0,14,0,3,0,253,255,251,255,250,255,251,255,254,255, +5,0,13,0,19,0,19,0,15,0,8,0,1,0,250,255,243,255,238,255,238,255,243,255,249,255,253,255,255,255,0,0, +0,0,254,255,248,255,239,255,231,255,229,255,233,255,239,255,243,255,245,255,248,255,253,255,1,0,255,255,247,255,237,255, +230,255,230,255,232,255,231,255,228,255,227,255,232,255,241,255,248,255,248,255,243,255,239,255,242,255,248,255,251,255,248,255, +243,255,242,255,245,255,250,255,250,255,245,255,241,255,242,255,248,255,253,255,253,255,247,255,241,255,241,255,243,255,244,255, +241,255,235,255,234,255,239,255,248,255,0,0,4,0,5,0,8,0,12,0,14,0,13,0,7,0,3,0,2,0,4,0, +8,0,9,0,8,0,7,0,8,0,11,0,12,0,11,0,8,0,4,0,3,0,3,0,4,0,5,0,5,0,6,0, +7,0,9,0,12,0,14,0,16,0,18,0,19,0,19,0,17,0,14,0,9,0,5,0,1,0,0,0,2,0,5,0, +8,0,10,0,11,0,13,0,14,0,12,0,7,0,253,255,243,255,235,255,232,255,232,255,233,255,235,255,237,255,241,255, +246,255,250,255,250,255,247,255,244,255,242,255,243,255,244,255,244,255,245,255,248,255,254,255,5,0,9,0,6,0,0,0, +250,255,247,255,248,255,250,255,249,255,248,255,248,255,252,255,2,0,5,0,3,0,255,255,251,255,250,255,250,255,248,255, +245,255,243,255,246,255,253,255,3,0,3,0,253,255,247,255,245,255,247,255,248,255,246,255,240,255,236,255,235,255,238,255, +240,255,239,255,238,255,239,255,245,255,253,255,3,0,5,0,7,0,11,0,16,0,20,0,17,0,10,0,4,0,2,0, +5,0,9,0,11,0,11,0,12,0,14,0,16,0,16,0,13,0,10,0,8,0,8,0,9,0,11,0,12,0,15,0, +19,0,22,0,22,0,20,0,17,0,14,0,11,0,9,0,7,0,8,0,11,0,16,0,20,0,23,0,26,0,29,0, +32,0,31,0,26,0,20,0,15,0,15,0,16,0,16,0,13,0,10,0,11,0,16,0,21,0,22,0,19,0,14,0, +12,0,12,0,11,0,6,0,0,0,253,255,255,255,1,0,1,0,251,255,246,255,246,255,251,255,1,0,0,0,249,255, +240,255,235,255,235,255,236,255,234,255,231,255,229,255,232,255,237,255,240,255,240,255,238,255,238,255,241,255,242,255,238,255, +231,255,227,255,228,255,237,255,246,255,253,255,254,255,251,255,248,255,245,255,242,255,238,255,234,255,231,255,230,255,231,255, +232,255,235,255,239,255,245,255,251,255,255,255,0,0,253,255,249,255,245,255,243,255,244,255,247,255,251,255,254,255,254,255, +255,255,2,0,7,0,12,0,14,0,11,0,6,0,1,0,254,255,253,255,254,255,0,0,6,0,14,0,22,0,25,0, +22,0,16,0,10,0,8,0,6,0,3,0,253,255,248,255,249,255,255,255,7,0,14,0,18,0,20,0,20,0,19,0, +14,0,6,0,255,255,252,255,255,255,5,0,9,0,11,0,11,0,13,0,16,0,20,0,20,0,17,0,11,0,4,0, +254,255,249,255,247,255,249,255,255,255,6,0,11,0,13,0,12,0,9,0,5,0,2,0,0,0,255,255,253,255,249,255, +246,255,244,255,245,255,250,255,0,0,4,0,4,0,0,0,252,255,252,255,254,255,1,0,2,0,2,0,0,0,253,255, +249,255,243,255,239,255,238,255,242,255,248,255,251,255,249,255,244,255,241,255,241,255,244,255,244,255,240,255,234,255,231,255, +232,255,238,255,244,255,249,255,254,255,3,0,7,0,8,0,4,0,254,255,251,255,252,255,255,255,255,255,252,255,249,255, +248,255,253,255,3,0,7,0,8,0,5,0,2,0,0,0,253,255,251,255,249,255,250,255,254,255,3,0,8,0,11,0, +14,0,17,0,18,0,17,0,14,0,8,0,4,0,2,0,2,0,4,0,6,0,8,0,9,0,10,0,10,0,10,0, +9,0,9,0,8,0,6,0,4,0,4,0,5,0,8,0,9,0,8,0,5,0,1,0,0,0,0,0,2,0,3,0, +3,0,2,0,2,0,3,0,3,0,5,0,8,0,12,0,16,0,16,0,12,0,7,0,3,0,3,0,6,0,9,0, +9,0,8,0,7,0,9,0,13,0,16,0,17,0,14,0,9,0,2,0,250,255,245,255,242,255,243,255,248,255,254,255, +0,0,255,255,252,255,250,255,252,255,0,0,3,0,2,0,253,255,248,255,244,255,244,255,246,255,249,255,250,255,250,255, +247,255,244,255,241,255,239,255,239,255,239,255,239,255,238,255,235,255,232,255,232,255,237,255,244,255,250,255,253,255,252,255, +247,255,243,255,240,255,240,255,241,255,241,255,240,255,239,255,238,255,239,255,242,255,246,255,251,255,255,255,1,0,1,0, +1,0,2,0,3,0,6,0,7,0,5,0,0,0,252,255,249,255,249,255,253,255,1,0,5,0,6,0,4,0,2,0, +1,0,2,0,5,0,7,0,8,0,7,0,4,0,3,0,4,0,7,0,10,0,12,0,12,0,11,0,9,0,9,0, +10,0,13,0,16,0,16,0,13,0,8,0,2,0,0,0,2,0,8,0,13,0,16,0,14,0,11,0,7,0,5,0, +4,0,3,0,2,0,0,0,255,255,254,255,255,255,2,0,7,0,13,0,16,0,15,0,11,0,3,0,254,255,251,255, +251,255,253,255,253,255,251,255,249,255,249,255,252,255,1,0,6,0,10,0,12,0,11,0,7,0,0,0,251,255,248,255, +247,255,249,255,250,255,250,255,248,255,247,255,246,255,248,255,249,255,250,255,250,255,249,255,248,255,247,255,248,255,251,255, +254,255,2,0,3,0,2,0,0,0,252,255,249,255,248,255,249,255,251,255,252,255,253,255,252,255,251,255,250,255,251,255, +254,255,1,0,5,0,6,0,4,0,2,0,255,255,253,255,253,255,255,255,1,0,2,0,2,0,0,0,253,255,251,255, +250,255,250,255,251,255,251,255,249,255,248,255,249,255,253,255,4,0,11,0,16,0,17,0,15,0,11,0,6,0,4,0, +4,0,7,0,11,0,13,0,13,0,11,0,8,0,7,0,7,0,9,0,9,0,8,0,4,0,0,0,254,255,254,255, +1,0,6,0,9,0,11,0,10,0,8,0,7,0,7,0,8,0,10,0,11,0,9,0,6,0,2,0,255,255,255,255, +2,0,5,0,7,0,6,0,4,0,2,0,0,0,0,0,2,0,4,0,5,0,5,0,2,0,255,255,252,255,250,255, +249,255,249,255,251,255,252,255,254,255,0,0,1,0,2,0,2,0,1,0,254,255,250,255,244,255,239,255,236,255,234,255, +235,255,238,255,243,255,248,255,251,255,253,255,252,255,250,255,247,255,245,255,244,255,244,255,244,255,243,255,242,255,242,255, +243,255,246,255,251,255,255,255,2,0,0,0,252,255,245,255,240,255,237,255,239,255,244,255,249,255,253,255,255,255,0,0, +0,0,2,0,3,0,3,0,0,0,249,255,241,255,235,255,234,255,239,255,249,255,4,0,12,0,15,0,13,0,9,0, +7,0,7,0,8,0,10,0,9,0,4,0,254,255,250,255,249,255,254,255,5,0,11,0,14,0,12,0,8,0,5,0, +5,0,9,0,15,0,19,0,19,0,15,0,10,0,6,0,6,0,10,0,14,0,15,0,11,0,5,0,255,255,252,255, +255,255,6,0,13,0,17,0,17,0,12,0,7,0,4,0,4,0,7,0,10,0,10,0,7,0,2,0,254,255,253,255, +255,255,2,0,3,0,1,0,253,255,248,255,246,255,248,255,253,255,3,0,6,0,6,0,3,0,255,255,252,255,252,255, +254,255,0,0,1,0,0,0,254,255,252,255,252,255,254,255,0,0,1,0,0,0,253,255,248,255,245,255,243,255,243,255, +243,255,243,255,242,255,241,255,241,255,243,255,246,255,250,255,253,255,253,255,253,255,252,255,252,255,254,255,2,0,5,0, +8,0,8,0,6,0,4,0,1,0,0,0,254,255,253,255,251,255,250,255,251,255,253,255,1,0,6,0,10,0,11,0, +9,0,5,0,0,0,253,255,252,255,253,255,253,255,254,255,253,255,253,255,253,255,255,255,2,0,5,0,5,0,3,0, +255,255,251,255,248,255,246,255,247,255,249,255,250,255,251,255,252,255,254,255,0,0,4,0,6,0,6,0,4,0,0,0, +251,255,248,255,248,255,250,255,253,255,1,0,3,0,4,0,4,0,3,0,2,0,2,0,1,0,0,0,254,255,253,255, +253,255,255,255,2,0,5,0,8,0,10,0,10,0,10,0,10,0,9,0,7,0,6,0,3,0,1,0,255,255,254,255, +254,255,0,0,1,0,3,0,4,0,5,0,5,0,4,0,3,0,0,0,253,255,250,255,247,255,245,255,245,255,246,255, +247,255,249,255,250,255,251,255,252,255,253,255,255,255,0,0,1,0,255,255,252,255,249,255,246,255,245,255,246,255,248,255, +250,255,251,255,252,255,251,255,251,255,251,255,252,255,252,255,252,255,251,255,250,255,250,255,252,255,255,255,2,0,5,0, +6,0,5,0,2,0,255,255,253,255,253,255,255,255,1,0,3,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0, +6,0,6,0,5,0,4,0,3,0,4,0,4,0,5,0,5,0,5,0,4,0,3,0,3,0,3,0,5,0,6,0, +7,0,7,0,6,0,4,0,2,0,1,0,1,0,3,0,6,0,7,0,8,0,7,0,6,0,5,0,5,0,7,0, +9,0,9,0,8,0,5,0,1,0,255,255,255,255,0,0,3,0,4,0,3,0,0,0,253,255,251,255,252,255,255,255, +3,0,7,0,8,0,6,0,4,0,3,0,5,0,8,0,12,0,12,0,10,0,4,0,255,255,252,255,254,255,3,0, +9,0,12,0,10,0,6,0,1,0,255,255,0,0,4,0,7,0,7,0,3,0,252,255,246,255,244,255,247,255,253,255, +3,0,5,0,2,0,253,255,248,255,247,255,249,255,253,255,254,255,251,255,244,255,237,255,233,255,234,255,240,255,248,255, +253,255,252,255,246,255,238,255,233,255,232,255,236,255,242,255,247,255,248,255,247,255,246,255,247,255,251,255,1,0,5,0, +6,0,2,0,251,255,245,255,244,255,248,255,255,255,7,0,11,0,11,0,9,0,6,0,4,0,5,0,7,0,8,0, +7,0,2,0,253,255,249,255,249,255,252,255,0,0,3,0,4,0,3,0,2,0,3,0,5,0,8,0,11,0,13,0, +13,0,11,0,8,0,5,0,4,0,3,0,3,0,3,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,1,0,2,0,4,0,5,0,6,0,5,0,4,0,1,0,254,255,253,255,253,255, +0,0,4,0,7,0,8,0,7,0,5,0,4,0,5,0,6,0,6,0,5,0,2,0,254,255,251,255,249,255,250,255, +253,255,0,0,2,0,1,0,253,255,250,255,249,255,251,255,254,255,0,0,255,255,251,255,247,255,245,255,247,255,251,255, +0,0,4,0,6,0,4,0,0,0,252,255,251,255,252,255,255,255,1,0,1,0,0,0,253,255,253,255,254,255,1,0, +3,0,3,0,0,0,251,255,246,255,244,255,246,255,251,255,1,0,5,0,7,0,6,0,5,0,4,0,5,0,6,0, +7,0,7,0,4,0,1,0,254,255,254,255,0,0,3,0,6,0,6,0,3,0,254,255,250,255,248,255,250,255,253,255, +0,0,2,0,2,0,3,0,3,0,4,0,5,0,5,0,5,0,4,0,1,0,254,255,252,255,252,255,254,255,1,0, +3,0,2,0,0,0,254,255,252,255,251,255,252,255,253,255,255,255,1,0,2,0,3,0,2,0,2,0,2,0,2,0, +2,0,1,0,255,255,253,255,253,255,253,255,254,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,254,255,253,255,253,255,253,255,252,255,251,255,250,255,249,255,250,255,250,255,251,255,251,255,251,255,252,255, +252,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255, +0,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,255,255,255,255,255,255,255,255,0,0,1,0, +2,0,3,0,2,0,2,0,2,0,3,0,4,0,5,0,5,0,3,0,1,0,0,0,255,255,254,255,252,255,250,255, +247,255,246,255,247,255,249,255,252,255,254,255,255,255,0,0,0,0,255,255,255,255,1,0,3,0,6,0,7,0,7,0, +6,0,5,0,5,0,6,0,7,0,7,0,5,0,3,0,1,0,1,0,3,0,7,0,11,0,13,0,13,0,9,0, +5,0,3,0,2,0,4,0,6,0,7,0,7,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0,2,0,255,255, +253,255,254,255,3,0,7,0,9,0,8,0,4,0,1,0,255,255,254,255,253,255,252,255,249,255,247,255,245,255,246,255, +249,255,252,255,0,0,2,0,2,0,255,255,250,255,246,255,244,255,245,255,247,255,248,255,248,255,247,255,248,255,250,255, +253,255,1,0,3,0,3,0,1,0,254,255,252,255,251,255,252,255,254,255,0,0,1,0,2,0,1,0,1,0,1,0, +1,0,0,0,254,255,252,255,250,255,248,255,248,255,250,255,253,255,1,0,4,0,5,0,5,0,4,0,4,0,3,0, +2,0,0,0,254,255,254,255,255,255,1,0,3,0,4,0,4,0,4,0,3,0,2,0,0,0,254,255,254,255,255,255, +1,0,3,0,4,0,4,0,5,0,6,0,7,0,7,0,7,0,6,0,5,0,3,0,2,0,1,0,1,0,0,0, +1,0,2,0,2,0,1,0,0,0,255,255,254,255,254,255,253,255,254,255,254,255,0,0,1,0,1,0,1,0,1,0, +0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,255,255,253,255,251,255, +250,255,251,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0, +255,255,254,255,253,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,0,0,253,255,251,255,251,255,251,255,253,255,254,255,255,255,255,255,254,255,253,255,252,255, +252,255,254,255,255,255,0,0,255,255,253,255,253,255,253,255,254,255,0,0,2,0,2,0,2,0,2,0,2,0,3,0, +4,0,4,0,3,0,2,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,2,0,3,0,4,0,4,0,3,0,2,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0, +1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0, +2,0,3,0,4,0,5,0,6,0,5,0,4,0,2,0,0,0,0,0,1,0,3,0,4,0,4,0,2,0,255,255, +255,255,0,0,2,0,4,0,4,0,2,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,0,0,254,255,253,255, +252,255,252,255,253,255,254,255,252,255,250,255,248,255,247,255,248,255,251,255,254,255,255,255,254,255,253,255,253,255,253,255, +254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255, +252,255,252,255,253,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,2,0,4,0,5,0,5,0,3,0,2,0,1,0, +0,0,255,255,0,0,2,0,4,0,6,0,7,0,7,0,7,0,7,0,8,0,9,0,8,0,6,0,4,0,2,0, +2,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,255,255,253,255, +252,255,253,255,254,255,255,255,255,255,255,255,253,255,252,255,251,255,251,255,252,255,253,255,254,255,255,255,0,0,1,0, +3,0,5,0,6,0,5,0,4,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,2,0,2,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255,252,255, +253,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,253,255,253,255, +253,255,254,255,255,255,0,0,255,255,253,255,252,255,253,255,255,255,1,0,1,0,0,0,255,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,2,0,3,0, +2,0,1,0,0,0,255,255,0,0,1,0,3,0,5,0,6,0,6,0,5,0,4,0,3,0,3,0,3,0,3,0, +2,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,255,255,0,0,2,0,3,0, +3,0,1,0,254,255,253,255,253,255,254,255,253,255,252,255,252,255,252,255,254,255,0,0,1,0,2,0,3,0,3,0, +2,0,0,0,254,255,253,255,253,255,254,255,254,255,253,255,252,255,252,255,254,255,255,255,0,0,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,254,255,254,255,254,255,0,0, +1,0,1,0,255,255,254,255,254,255,255,255,0,0,1,0,0,0,255,255,254,255,254,255,253,255,253,255,254,255,0,0, +2,0,3,0,2,0,1,0,0,0,0,0,1,0,2,0,0,0,254,255,252,255,252,255,253,255,254,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,1,0,2,0,2,0,1,0,0,0,255,255,0,0,1,0,2,0,1,0, +1,0,0,0,255,255,0,0,2,0,4,0,5,0,5,0,4,0,2,0,1,0,1,0,2,0,3,0,3,0,3,0, +2,0,2,0,2,0,3,0,4,0,5,0,5,0,5,0,4,0,2,0,0,0,0,0,1,0,2,0,2,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,253,255,253,255,254,255,0,0,1,0,0,0,255,255,254,255,253,255,254,255,255,255,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255,1,0,1,0,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,2,0,3,0,4,0,3,0,3,0,2,0,2,0, +2,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255, +251,255,252,255,253,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255,2,0,3,0,2,0,255,255,252,255, +251,255,252,255,255,255,1,0,1,0,255,255,253,255,253,255,255,255,0,0,0,0,0,0,255,255,254,255,253,255,252,255, +253,255,254,255,0,0,0,0,0,0,254,255,254,255,254,255,1,0,3,0,3,0,2,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0, +1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0,1,0,2,0,2,0,1,0,0,0,255,255, +254,255,253,255,253,255,254,255,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,4,0,3,0,2,0,1,0, +1,0,2,0,2,0,2,0,1,0,0,0,254,255,253,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,1,0,2,0,2,0,2,0, +3,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,0,0,254,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255, +253,255,254,255,254,255,255,255,1,0,1,0,2,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +254,255,253,255,254,255,254,255,254,255,255,255,1,0,1,0,0,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255, +254,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0, +255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255, +254,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,255,255,0,0, +1,0,0,0,1,0,1,0,0,0,254,255,255,255,255,255,254,255,254,255,0,0,0,0,1,0,1,0,1,0,0,0, +1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0, +1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,2,0,1,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,255,255,255,255,255,255,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,1,0,255,255,254,255,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,2,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,1,0,1,0,0,0,255,255,254,255, +254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255, +254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,255,255,254,255, +255,255,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,254,255,253,255,254,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,3,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,254,255,255,255,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,255,255,0,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255, +255,255,0,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,1,0,0,0,255,255,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,2,0,2,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0, +0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0, +1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0, +1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,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,1,0,1,0,1,0,1,0,1,0,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,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,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,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +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,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,1,0,1,0,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, +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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,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,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,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, +1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,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,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,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,1,0, +1,0,1,0,1,0,1,0,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,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,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,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/skeletonhurt4.pcm b/src/client/sound/data/skeletonhurt4.pcm new file mode 100755 index 0000000..99cd3c3 --- /dev/null +++ b/src/client/sound/data/skeletonhurt4.pcm @@ -0,0 +1,1490 @@ +unsigned char PCM_skeletonhurt4[47602] = { +1,0,0,0,2,0,0,0,68,172,0,0,241,92,0,0,142,15,180,14,25,6,172,2,90,2,77,1,28,3,209,6, +96,11,248,18,93,24,191,21,238,15,163,11,185,6,79,1,102,254,117,253,196,252,31,252,0,251,28,250,18,251,17,252, +164,250,214,248,101,248,102,246,5,241,170,234,69,229,189,225,34,226,44,230,79,234,127,237,151,240,96,241,240,238,201,237, +237,239,72,241,152,240,174,240,223,240,155,239,160,239,165,242,6,247,195,252,115,3,84,7,136,7,115,7,18,8,64,8, +17,8,243,6,242,4,37,4,200,3,54,1,130,254,55,255,125,2,253,5,181,8,106,10,145,11,158,11,99,9,130,6, +255,4,172,4,186,7,245,16,10,29,146,38,230,42,91,39,40,28,3,15,45,3,232,248,127,244,149,248,7,1,221,10, +89,19,114,18,101,6,233,248,195,239,245,233,212,233,182,239,147,245,199,248,246,248,122,242,45,232,191,226,126,225,243,224, +251,230,114,244,155,254,156,0,111,253,211,246,187,243,152,250,154,255,0,245,177,227,225,216,155,209,191,201,212,195,192,190, +170,185,7,184,186,186,68,200,187,239,125,45,145,101,255,127,51,126,26,79,230,3,54,198,136,177,136,191,68,225,48,13, +130,59,13,102,255,127,255,127,124,127,129,125,67,118,53,81,205,19,8,215,49,168,42,142,95,144,234,171,3,215,132,8, +177,49,178,67,57,60,130,31,173,245,91,211,199,203,137,220,165,248,129,21,247,35,71,25,12,2,122,244,83,247,226,4, +103,22,158,35,225,35,3,18,94,238,59,196,253,166,90,161,129,176,65,207,202,245,201,19,68,28,78,18,143,1,109,243, +200,238,88,247,91,8,4,20,226,12,173,242,234,211,94,192,7,190,141,203,94,228,251,255,88,20,17,28,52,25,9,19, +248,16,247,22,197,37,190,57,58,73,200,74,6,61,147,36,148,8,194,243,66,238,96,244,56,251,25,251,194,240,116,221, +194,201,25,193,100,201,216,223,130,249,18,10,239,14,235,13,97,10,217,6,124,11,10,29,212,51,21,68,55,71,51,59, +142,34,79,5,2,237,239,224,112,227,1,239,115,250,217,0,154,0,165,248,132,237,26,233,251,238,146,247,21,249,150,240, +228,226,77,215,127,209,100,209,180,215,177,229,121,248,33,9,190,18,106,20,246,16,181,12,81,10,134,11,22,17,45,25, +1,32,43,35,70,35,169,33,90,30,116,25,134,20,20,16,229,8,244,250,144,231,198,213,147,203,183,200,179,201,60,205, +224,211,197,219,46,225,72,228,72,235,101,252,213,22,82,51,255,73,244,85,207,84,172,70,160,47,153,22,193,0,207,238, +116,223,164,210,238,200,142,193,27,188,165,187,228,196,227,215,156,237,121,253,9,4,66,3,68,254,177,247,38,243,54,244, +38,250,6,255,120,253,158,246,110,240,235,238,25,241,99,244,74,248,118,253,4,3,208,6,2,8,213,7,1,8,162,9, +93,13,235,18,21,24,218,25,191,23,7,21,38,21,116,23,226,23,218,19,163,12,135,4,100,251,193,239,129,226,119,215, +245,209,42,210,165,214,19,223,14,236,174,252,213,13,88,28,241,38,158,45,43,48,85,46,214,40,27,33,250,23,216,13, +89,4,172,254,20,255,175,4,165,12,33,21,165,29,147,36,43,38,154,31,96,18,112,3,42,247,5,239,174,234,137,233, +164,234,220,236,126,240,122,247,44,2,102,12,245,15,166,10,229,255,72,244,35,234,125,225,178,219,52,220,53,229,89,244, +5,4,156,15,123,21,7,22,203,18,165,13,230,6,195,252,40,238,230,221,3,210,135,207,90,214,84,225,112,235,14,244, +165,251,177,254,154,249,122,240,250,235,211,238,15,245,124,252,245,5,13,15,153,18,210,15,34,11,42,8,69,7,81,7, +194,6,80,4,235,255,176,249,67,241,69,232,45,226,71,223,122,220,237,217,204,219,77,227,21,238,180,252,174,17,164,42, +68,66,193,86,243,102,13,109,217,99,163,77,49,49,199,20,15,254,157,239,208,229,54,221,134,217,31,222,228,228,210,229, +104,225,34,219,253,209,222,198,150,193,238,199,125,215,202,236,24,8,76,40,9,72,102,96,45,106,165,96,53,72,20,45, +40,24,191,10,104,4,7,4,103,4,142,0,10,249,10,239,105,225,67,212,148,208,113,214,110,219,165,218,92,216,228,211, +220,198,162,181,200,176,52,195,64,234,61,29,61,80,181,114,95,120,40,99,224,61,53,17,131,227,24,191,4,178,219,196, +183,239,6,27,76,51,184,59,14,68,45,79,89,81,71,69,15,50,221,26,240,249,62,207,33,166,88,140,193,137,27,157, +155,187,11,218,201,248,180,28,251,59,27,66,10,44,177,16,82,4,153,255,199,237,23,204,194,175,221,173,215,197,242,230, +166,4,156,28,226,42,45,39,4,20,252,2,5,1,24,10,45,22,254,34,38,42,192,29,132,249,60,206,41,181,61,187, +170,217,182,254,81,26,14,34,225,15,63,231,102,186,6,160,55,160,132,175,8,189,78,195,181,202,160,219,4,243,51,9, +9,29,161,47,230,59,189,60,213,54,219,52,37,60,130,72,20,83,165,91,225,101,78,108,226,97,148,69,9,39,9,18, +62,2,186,239,189,220,183,210,234,213,193,222,167,226,149,226,65,231,118,239,117,240,15,232,111,224,205,225,31,234,236,241, +175,245,172,251,79,12,0,35,172,48,218,46,220,35,51,21,24,4,163,245,248,240,102,245,196,249,102,246,171,237,144,233, +67,239,244,247,185,249,225,242,181,231,121,218,182,203,117,191,35,189,59,201,169,224,73,252,105,23,196,47,182,65,105,73, +7,70,245,56,25,37,70,15,76,251,123,233,81,218,78,209,223,210,135,225,155,252,151,30,66,59,224,70,231,62,17,42, +213,17,11,253,34,238,157,227,144,218,162,210,254,206,106,210,237,220,30,238,226,4,15,28,117,45,116,55,187,57,49,49, +30,30,37,8,54,247,34,239,102,241,61,250,227,255,7,253,69,246,173,241,190,241,112,248,6,5,247,16,123,22,63,22, +123,19,29,16,30,13,21,10,85,6,195,3,202,4,12,8,135,9,14,7,213,2,55,2,202,7,115,15,39,20,227,21, +163,21,17,18,207,11,198,5,233,0,252,253,247,254,207,1,186,1,62,255,40,254,101,254,90,255,75,3,42,9,232,11, +180,10,218,8,215,6,65,3,134,254,18,249,137,242,162,235,32,228,219,217,211,205,145,197,158,196,214,200,121,206,154,212, +23,221,199,233,26,250,117,11,249,26,255,37,182,42,207,41,244,37,253,32,214,26,85,18,146,6,146,248,133,234,58,220, +187,203,19,187,210,176,19,177,72,186,73,201,129,220,65,243,123,12,200,37,75,59,19,74,104,81,68,80,132,68,9,47, +75,21,130,252,71,230,140,211,39,199,113,195,245,199,117,210,9,224,18,238,33,251,79,6,165,14,7,20,45,24,38,28, +10,30,13,28,20,24,252,20,17,18,132,12,245,3,104,250,23,241,239,231,180,223,213,218,239,219,156,227,159,239,195,252, +80,9,29,20,233,25,235,22,250,11,223,254,136,244,165,237,181,233,169,233,249,237,253,244,251,252,193,5,212,14,136,21, +129,22,217,16,83,7,8,254,212,246,79,241,229,238,12,244,73,2,75,19,33,30,14,32,178,28,253,22,87,14,236,1, +44,243,186,228,236,216,43,209,245,205,206,207,66,215,246,226,57,239,35,249,93,0,44,5,139,7,247,8,134,11,153,14, +35,16,0,17,219,19,20,24,157,25,183,21,224,12,25,1,134,244,175,232,11,222,63,213,239,207,146,206,110,207,174,209, +164,214,73,222,82,230,49,238,63,247,159,255,63,2,172,253,177,246,207,242,234,242,152,243,39,241,11,236,127,233,214,237, +41,247,85,0,28,7,7,12,70,15,149,17,65,21,190,26,229,30,207,30,170,26,244,19,51,12,180,5,106,2,33,2, +112,3,69,5,144,6,141,6,136,5,128,3,81,255,186,249,71,246,66,247,118,251,135,1,142,10,2,22,143,31,165,35, +97,35,91,34,77,34,88,33,55,28,252,18,152,10,100,7,68,8,114,10,254,14,146,23,165,32,92,36,120,33,107,27, +109,21,201,16,11,14,208,12,19,11,87,6,195,253,149,243,137,236,3,236,44,240,168,243,56,243,167,239,178,234,96,229, +52,225,194,223,25,225,230,228,46,236,60,247,2,3,92,11,54,15,231,16,74,19,38,23,127,26,234,26,222,24,122,22, +251,18,11,12,25,4,22,1,132,3,144,5,6,4,49,1,123,254,147,250,123,246,230,245,39,250,244,0,54,7,78,10, +170,8,5,3,97,251,44,243,79,236,179,233,218,235,145,239,240,241,37,243,181,244,28,248,160,254,129,7,115,15,181,19, +5,20,35,17,82,12,254,7,214,5,38,5,239,4,31,5,127,4,79,1,226,252,119,250,46,250,69,249,251,246,39,245, +87,244,24,243,13,241,9,240,152,241,7,245,186,248,164,252,218,1,209,7,25,12,16,13,214,10,33,6,108,0,45,252, +88,250,74,249,68,248,13,249,49,252,50,255,137,0,9,2,118,5,12,10,202,13,100,15,48,15,13,15,60,17,33,22, +25,27,65,28,240,23,146,16,140,10,47,8,178,8,167,10,16,13,245,13,254,10,100,4,17,253,153,247,210,244,143,244, +241,245,211,247,231,249,36,252,85,253,80,252,60,250,93,249,36,250,104,251,215,252,123,255,228,3,155,8,39,11,29,11, +208,10,152,11,185,11,17,10,111,8,162,7,132,5,119,1,226,253,20,251,84,246,132,239,250,233,68,231,50,230,79,230, +4,232,33,235,60,240,58,248,41,1,173,7,130,11,242,13,186,13,194,9,26,5,53,3,62,3,200,2,158,1,101,0, +18,255,230,253,72,253,240,252,149,252,113,251,48,247,255,238,193,230,248,226,141,227,190,230,66,237,219,246,76,255,115,3, +92,5,83,8,18,13,57,19,222,25,240,29,94,28,13,22,134,14,159,7,5,1,172,250,107,245,14,242,209,240,66,241, +161,242,208,244,14,248,174,251,167,254,100,1,24,5,42,9,94,11,0,11,204,9,27,9,10,8,147,5,193,2,51,1, +200,0,180,0,196,1,95,5,204,10,84,15,4,17,5,16,116,13,219,9,223,4,100,254,40,248,180,244,186,244,29,247, +179,250,34,254,136,255,194,254,101,254,118,0,40,4,99,8,139,13,52,19,1,23,114,23,105,21,49,18,45,14,130,9, +62,4,74,254,72,248,69,243,143,239,128,237,82,238,214,241,108,245,114,247,223,248,22,250,198,249,178,247,253,244,34,242, +134,239,94,238,218,238,245,239,193,241,4,245,35,249,230,252,233,255,30,2,150,3,115,4,135,3,108,255,193,249,177,245, +82,243,192,240,147,238,20,239,159,242,156,247,94,252,40,0,203,3,49,8,239,11,39,13,235,12,241,12,252,11,150,8, +114,4,161,1,129,255,176,252,116,249,50,247,49,247,107,249,255,251,30,253,135,253,85,255,231,2,115,6,80,8,132,8, +245,7,251,6,134,5,34,4,189,3,167,4,136,6,89,8,187,8,194,7,27,7,236,6,104,5,203,2,138,1,198,1, +64,1,164,255,151,254,211,254,68,0,109,2,129,3,38,2,70,255,121,251,197,245,60,239,117,235,233,235,228,238,17,243, +160,248,187,255,203,7,7,15,242,18,215,18,140,16,158,13,226,9,4,5,220,255,252,251,94,250,109,250,243,250,250,251, +232,253,141,255,231,255,80,0,39,2,110,4,115,5,117,4,178,1,23,255,217,254,9,0,2,0,73,255,128,0,178,3, +243,6,122,9,46,11,239,11,128,12,79,13,0,13,135,10,121,6,64,1,255,250,97,245,102,242,30,242,124,243,15,246, +206,249,95,254,181,2,45,5,2,5,64,3,101,1,244,255,217,254,211,253,175,252,240,251,23,252,67,252,94,251,190,249, +2,248,59,246,68,245,34,246,219,247,174,248,108,248,136,247,5,246,149,244,40,244,100,244,224,244,114,246,99,249,139,252, +44,255,120,1,100,3,13,5,37,7,154,9,66,11,128,11,199,10,175,9,90,8,108,6,124,3,50,0,92,254,30,255, +167,1,230,3,25,4,8,2,214,254,115,251,226,247,112,244,75,242,95,242,191,244,37,249,223,254,195,4,255,9,21,14, +60,16,229,15,141,13,42,10,131,6,119,3,156,1,123,0,42,255,107,253,146,251,238,249,188,248,57,248,129,248,151,249, +68,251,254,252,87,254,123,255,204,0,30,2,171,2,216,1,3,0,46,254,24,253,194,252,150,252,95,252,141,252,146,253, +30,255,31,0,180,255,72,254,66,253,100,253,232,253,117,253,116,251,131,248,6,246,28,245,196,245,98,247,230,249,152,253, +10,2,11,6,99,8,142,8,93,7,175,6,64,7,66,7,129,4,78,255,254,249,92,246,128,244,129,243,169,242,92,242, +90,243,57,245,177,246,68,247,63,247,201,246,120,246,94,247,31,249,186,249,144,248,113,247,207,247,26,249,99,250,239,251, +196,254,59,3,2,8,239,10,108,11,183,10,65,9,128,6,168,3,13,3,73,4,174,4,179,3,116,3,234,4,140,6, +121,6,99,4,176,1,14,0,166,255,183,255,224,0,67,4,202,8,67,12,107,14,189,15,36,15,33,12,229,8,124,7, +20,7,228,5,160,3,70,1,245,255,199,255,102,255,13,254,47,253,18,254,109,255,201,255,179,255,135,255,60,254,237,251, +85,250,37,250,148,250,24,251,107,251,68,251,62,251,29,252,52,253,185,253,100,254,190,255,249,0,205,1,199,2,50,3, +176,1,150,254,108,251,111,249,167,249,5,252,55,254,69,254,121,253,207,253,154,254,176,254,211,254,242,255,110,1,60,2, +3,2,99,1,216,1,225,3,123,5,211,4,17,3,3,2,75,1,67,0,167,255,172,255,180,255,77,0,9,2,53,3, +240,1,101,255,113,254,43,0,183,2,195,2,51,255,190,251,230,252,128,1,150,4,234,4,50,5,65,6,155,6,93,6, +190,6,46,7,252,5,116,2,55,253,86,248,85,246,89,247,49,249,215,250,229,252,192,254,23,255,66,254,185,252,107,249, +218,244,134,242,101,244,51,248,93,251,93,254,194,2,111,8,109,13,80,15,93,13,165,9,188,6,212,4,210,2,202,0, +83,255,249,253,120,252,20,252,253,253,135,1,15,5,202,7,226,9,100,11,203,11,142,10,227,7,181,4,246,1,22,0, +10,255,202,254,152,255,95,1,39,3,35,4,208,4,154,5,29,5,167,1,221,251,12,246,227,241,70,240,168,241,11,245, +57,248,209,249,251,249,116,249,81,249,158,250,26,253,193,255,161,2,219,5,151,7,38,6,28,3,62,1,210,0,169,0, +172,0,240,0,89,0,59,254,149,251,182,249,34,249,197,249,229,250,203,251,189,252,20,254,192,254,142,253,240,251,151,252, +133,255,162,2,137,5,81,9,80,13,133,15,67,15,48,13,245,9,163,6,122,4,70,3,209,1,218,255,209,253,180,251, +15,250,29,250,78,251,96,251,13,250,110,249,40,250,220,250,104,251,252,252,66,255,226,0,247,1,54,3,240,3,21,3, +217,0,91,254,34,253,114,254,48,1,230,1,11,255,48,251,26,249,114,248,240,247,162,247,116,247,159,246,157,245,14,246, +43,248,124,250,0,252,0,253,64,254,86,0,25,3,153,5,119,7,129,9,207,11,235,12,77,12,169,11,38,12,27,12, +103,9,163,4,124,0,171,254,154,254,199,254,188,254,41,255,90,0,150,1,90,2,12,3,230,3,78,4,186,3,73,2, +85,0,94,254,75,253,9,254,220,0,14,5,252,8,41,11,197,11,5,12,167,11,29,9,164,4,151,0,20,254,212,251, +139,248,50,244,121,239,254,235,235,235,88,239,166,243,149,246,45,248,52,249,34,250,109,251,160,252,98,252,57,251,193,251, +98,254,76,0,95,0,32,1,124,4,49,9,22,13,178,14,49,13,164,9,156,6,145,4,139,1,64,253,68,250,20,250, +78,251,177,252,158,254,34,1,129,3,111,5,132,6,51,6,146,5,25,6,79,6,207,3,224,255,223,253,97,254,95,255, +123,255,238,254,135,254,175,254,254,254,187,254,213,253,15,253,72,253,172,254,174,0,185,2,42,4,16,4,162,2,195,1, +36,2,216,1,133,255,125,252,117,250,189,249,240,249,110,250,133,250,49,250,57,250,111,251,10,254,24,1,222,2,184,2, +15,2,73,2,81,2,230,255,114,251,90,248,102,248,160,249,36,250,23,251,50,254,202,2,173,6,189,8,255,9,231,11, +251,13,89,14,101,12,47,9,198,5,139,2,155,255,57,253,1,252,55,252,9,253,110,253,108,253,204,253,218,254,220,255, +56,0,234,0,243,2,46,5,46,6,75,6,151,5,178,3,103,2,82,3,97,4,172,3,190,2,209,2,13,3,13,3, +81,2,197,255,173,252,98,251,231,250,188,248,88,245,38,243,23,243,226,243,49,244,42,245,100,248,10,252,218,253,124,255, +64,2,221,3,159,3,128,3,48,3,192,1,32,1,239,1,251,1,40,1,103,1,24,2,77,1,143,255,111,254,252,253, +128,253,4,253,49,253,39,254,105,255,213,0,56,2,202,2,183,2,212,2,125,2,101,1,161,1,216,3,86,5,202,4, +180,3,173,2,66,1,177,255,56,254,140,253,244,254,255,0,101,0,181,253,87,252,184,252,18,253,39,253,45,253,168,252, +231,251,92,251,120,250,215,249,159,251,115,255,149,1,55,0,240,253,38,253,25,253,10,253,19,254,140,0,57,3,32,5, +206,5,133,5,188,5,221,6,236,6,197,4,162,1,114,254,131,251,172,249,230,248,118,248,13,249,62,251,156,253,62,255, +12,1,128,3,48,6,147,8,153,9,211,8,149,7,136,6,111,4,59,1,55,255,106,255,109,255,253,252,13,250,13,250, +74,252,165,253,233,253,147,254,218,255,3,2,110,4,17,4,214,0,22,255,205,255,91,0,165,1,16,5,210,7,230,8, +145,9,117,6,252,252,56,243,245,238,51,238,77,238,235,238,95,238,253,236,100,238,220,242,46,248,72,255,153,8,229,16, +85,22,19,25,201,23,180,18,105,13,118,9,65,5,195,255,38,248,51,238,11,230,109,229,233,236,29,248,116,2,44,9, +178,12,170,16,15,23,166,28,88,29,248,25,97,22,83,19,15,14,151,5,38,252,107,243,219,235,83,231,90,232,146,239, +45,251,202,6,122,13,4,15,226,15,105,18,224,20,3,22,183,21,191,18,231,11,249,1,9,247,40,237,109,229,1,224, +180,221,181,223,111,229,255,236,168,244,197,250,144,255,49,6,231,15,28,25,39,30,51,30,33,25,15,16,57,6,127,253, +149,245,210,238,123,233,193,228,131,225,169,225,161,228,28,233,243,239,208,249,93,5,212,16,128,26,216,32,41,35,173,32, +119,25,58,17,217,11,114,7,206,255,152,245,204,236,97,231,21,229,182,229,0,234,137,242,203,252,214,3,201,6,31,10, +215,15,252,19,13,19,165,14,54,10,113,6,50,1,114,249,11,242,103,238,228,237,30,238,170,239,0,244,52,249,69,252, +180,253,79,0,235,4,73,9,118,10,143,7,145,2,225,253,83,249,193,243,209,238,145,237,177,239,251,241,204,242,12,243, +90,244,79,248,243,254,138,5,206,9,234,12,43,16,224,17,95,16,240,12,102,9,41,6,164,2,122,253,224,245,54,238, +46,234,99,234,76,237,184,242,55,250,22,1,126,5,51,8,185,9,162,9,208,8,203,8,246,9,24,12,248,13,221,12, +36,8,30,3,6,0,46,253,228,249,81,248,216,248,121,249,185,249,49,250,107,250,2,251,10,254,38,3,161,7,109,10, +208,11,64,11,45,9,140,7,162,6,65,5,211,3,8,3,168,1,69,255,133,253,235,252,138,252,196,252,247,253,129,254, +214,253,233,253,68,255,99,0,139,1,6,4,129,6,245,6,45,6,163,5,239,4,161,3,82,2,10,1,116,255,68,254, +38,254,105,254,38,254,115,253,16,253,184,253,68,255,115,0,185,0,89,1,1,3,36,4,119,3,242,1,198,0,134,255, +119,253,180,250,95,247,104,243,138,239,86,237,184,237,248,239,178,242,108,245,87,248,12,251,8,253,177,254,60,0,230,0, +18,1,224,2,196,6,78,10,255,11,20,13,147,14,183,15,231,15,107,15,80,14,164,12,11,11,238,9,89,9,195,9, +99,11,34,13,119,13,213,11,212,8,199,5,207,3,171,2,158,1,248,0,5,1,88,0,171,253,224,250,195,250,206,252, +128,254,168,255,171,1,218,3,61,4,195,2,148,0,129,254,212,253,99,255,2,1,254,255,139,253,153,252,255,252,131,252, +157,250,132,248,60,247,193,246,94,246,95,246,108,248,56,252,120,254,56,254,86,255,14,4,186,8,151,9,219,7,214,5, +233,2,131,254,139,250,11,248,208,245,55,244,95,245,95,248,242,249,157,250,231,253,114,3,20,7,26,7,66,5,250,2, +172,0,210,254,109,253,43,252,112,251,144,251,235,251,254,251,249,251,236,251,136,251,205,250,113,250,90,251,64,253,100,254, +184,253,166,252,108,253,80,0,16,3,70,3,197,1,86,2,47,6,47,9,149,7,53,3,136,255,134,252,19,249,178,246, +188,246,218,246,143,244,113,242,220,244,135,250,98,254,223,255,50,2,227,4,21,5,185,3,75,3,16,3,114,1,173,254, +142,251,218,249,3,252,52,1,50,6,139,10,1,15,204,17,34,18,46,18,233,17,178,14,200,8,5,3,239,254,158,252, +98,251,248,249,130,248,196,247,192,246,94,245,232,245,213,247,28,247,254,242,166,239,97,242,47,253,199,8,38,9,40,0, +154,252,93,255,192,250,96,241,27,244,126,0,166,4,237,254,141,250,159,250,55,255,107,9,182,14,134,4,83,248,27,252, +10,5,133,0,152,249,169,3,206,17,180,10,150,246,140,242,37,0,106,6,188,252,112,243,254,245,3,255,245,4,139,2, +124,251,121,252,252,7,169,12,82,2,190,251,94,5,226,14,183,10,180,3,91,3,222,1,46,250,13,244,122,245,89,251, +209,255,191,254,81,247,230,237,80,234,181,241,204,255,51,8,102,4,140,252,183,250,83,253,161,254,139,255,107,3,52,9, +19,12,154,7,88,254,89,250,26,255,184,2,57,255,71,253,16,3,153,8,31,6,55,255,255,250,219,252,134,4,82,13, +165,16,190,12,238,4,127,252,251,245,247,243,215,246,149,252,224,2,50,7,205,7,188,6,180,7,13,10,43,10,227,8, +151,10,48,14,168,12,9,4,74,251,70,248,136,249,122,252,248,0,167,4,87,3,88,253,9,247,158,243,132,244,84,249, +167,253,71,253,31,251,9,253,48,2,17,5,204,4,54,5,124,7,174,8,148,6,198,1,225,251,18,247,80,246,175,250, +18,1,251,4,111,5,10,5,115,5,48,5,211,2,0,0,60,255,4,0,226,255,196,254,29,255,175,1,127,4,67,6, +163,7,106,8,235,6,63,3,57,0,51,0,226,2,198,6,235,10,30,15,117,19,21,23,88,23,117,18,60,11,255,6, +2,7,164,7,140,6,58,5,86,4,159,1,112,252,222,247,236,245,196,244,202,242,227,241,253,243,37,247,187,247,49,245, +163,242,29,243,135,246,96,250,1,253,35,255,220,1,132,4,227,5,55,6,46,6,7,5,214,1,214,253,119,251,144,251, +40,253,96,255,32,2,68,5,33,8,213,9,189,9,3,8,113,5,87,2,90,254,239,249,178,246,103,245,20,245,1,245, +246,245,101,248,35,251,13,253,60,254,166,254,144,253,81,251,168,249,71,249,239,248,218,247,72,247,130,248,232,250,14,253, +146,254,209,255,177,0,194,0,36,0,86,255,67,254,63,252,74,249,186,246,242,245,180,246,166,247,126,248,124,250,88,254, +165,2,76,5,223,5,140,5,2,5,205,3,203,1,6,0,94,255,67,255,250,254,226,254,113,255,222,255,8,255,118,253, +241,252,187,253,191,253,104,251,224,247,69,245,3,244,40,243,121,242,6,243,167,245,134,249,5,253,216,255,169,2,236,4, +105,5,175,4,75,4,25,4,228,2,204,0,37,255,236,254,48,0,11,2,194,3,67,6,106,10,93,14,206,15,132,15, +44,15,64,14,21,12,176,9,46,7,25,3,47,253,193,246,182,240,135,235,186,231,34,229,92,227,215,226,206,227,137,229, +211,231,120,235,232,240,146,247,81,254,3,4,92,8,182,11,219,13,160,14,42,15,87,16,20,17,105,16,31,15,139,13, +253,9,248,2,166,249,86,241,90,236,132,233,176,230,44,229,204,231,250,237,116,245,103,254,205,8,184,17,35,23,183,25, +62,25,234,20,81,14,85,7,69,0,208,250,68,249,58,250,56,251,170,253,53,3,79,9,243,12,244,13,189,12,216,9, +204,6,181,3,243,254,16,249,153,244,100,242,60,242,216,244,215,249,30,255,203,3,48,8,131,11,247,12,37,13,111,12, +135,10,255,7,195,5,205,3,9,2,185,0,119,255,12,254,169,253,33,255,61,1,36,2,103,1,221,255,233,253,6,251, +175,247,24,246,76,247,148,249,200,251,248,254,222,2,1,5,33,5,160,5,208,6,99,6,38,3,175,253,32,247,158,241, +129,239,218,240,9,244,100,248,83,254,208,5,214,13,101,20,132,23,36,23,183,20,234,16,174,11,160,5,127,255,222,249, +96,246,207,246,122,250,38,255,27,4,145,9,117,14,53,17,152,17,3,16,123,12,99,7,4,2,88,253,58,249,118,245, +16,243,150,243,66,247,125,252,103,1,55,5,240,7,141,9,230,9,20,9,125,7,69,5,36,2,71,254,2,251,224,249, +239,250,218,252,170,254,182,0,124,3,50,6,95,7,147,6,173,4,179,2,64,1,173,0,240,0,225,1,236,3,98,7, +54,11,245,13,142,15,120,16,246,15,6,13,29,8,153,2,71,253,93,248,88,244,99,242,147,243,118,247,16,252,240,255, +117,3,75,7,189,10,62,12,16,11,252,7,154,4,173,1,155,254,46,251,213,248,5,249,42,251,147,253,147,255,143,1, +131,3,125,4,174,3,104,1,183,254,40,252,108,249,69,246,117,243,69,242,70,243,249,245,163,249,243,253,154,2,186,6, +59,9,179,9,165,8,195,6,89,4,123,1,125,254,254,251,140,250,94,250,113,251,191,253,4,1,126,4,73,7,219,8, +253,8,163,7,40,5,81,2,215,255,14,254,248,252,125,252,182,252,233,253,236,255,250,1,136,3,181,4,90,5,167,4, +46,2,131,254,191,250,190,247,194,245,142,244,42,244,47,245,151,247,52,250,41,252,222,253,186,255,26,1,36,1,168,255, +52,253,217,250,86,249,133,248,105,248,254,249,189,253,102,2,122,6,172,9,25,12,115,13,64,13,28,11,12,7,14,2, +71,253,210,248,181,244,32,242,45,242,112,244,218,247,196,251,154,255,210,2,45,5,71,6,196,5,63,4,188,2,87,1, +218,255,227,254,31,255,111,0,127,2,10,5,104,7,254,8,178,9,76,9,121,7,161,4,151,1,167,254,237,251,228,249, +204,248,114,248,200,248,221,249,85,251,195,252,0,254,210,254,228,254,62,254,25,253,127,251,156,249,220,247,120,246,105,245, +202,244,192,244,66,245,48,246,104,247,180,248,217,249,173,250,255,250,211,250,82,250,153,249,214,248,75,248,37,248,98,248, +18,249,69,250,223,251,189,253,196,255,152,1,213,2,147,3,26,4,110,4,161,4,14,5,214,5,191,6,136,7,241,7, +209,7,103,7,217,6,161,5,98,3,161,0,248,253,119,251,82,249,28,248,19,248,15,249,193,250,161,252,86,254,23,0, +180,1,54,2,104,1,86,0,127,255,111,254,88,253,13,253,148,253,76,254,213,254,246,254,186,254,181,254,8,255,234,254, +50,254,221,253,34,254,3,254,47,253,123,252,143,252,142,253,65,255,195,0,29,1,167,0,137,0,10,1,108,1,30,1, +47,0,9,255,236,253,134,252,148,250,235,248,194,248,13,250,176,251,25,253,146,254,58,0,147,1,16,2,216,1,190,1, +6,2,208,1,154,0,122,255,136,255,55,0,131,0,159,0,54,1,20,2,156,2,196,2,249,2,105,3,140,3,129,2, +93,0,176,254,214,254,85,0,211,1,233,2,241,3,188,4,195,4,74,4,38,4,163,4,42,5,239,4,154,3,139,1, +176,255,196,254,150,254,115,254,25,254,207,253,161,253,70,253,126,252,125,251,147,250,5,250,219,249,159,249,214,248,215,247, +132,247,85,248,28,250,138,252,72,255,229,1,52,4,84,6,243,7,85,8,173,7,33,7,242,6,2,6,231,3,234,1, +57,1,137,1,4,2,42,2,147,1,59,0,9,255,234,254,173,255,120,0,186,0,51,0,1,255,225,253,107,253,54,253, +196,252,135,252,247,252,141,253,187,253,186,253,189,253,146,253,99,253,129,253,155,253,90,253,77,253,1,254,46,255,155,0, +122,2,61,4,181,4,226,3,11,3,202,2,91,2,236,0,160,254,118,252,178,251,173,252,33,254,114,254,186,253,192,253, +11,0,133,4,141,9,113,13,64,16,99,19,184,22,171,23,111,20,70,14,100,7,177,0,6,251,251,247,166,247,156,247, +15,246,169,244,192,246,24,253,93,4,105,8,183,8,67,8,242,8,119,9,218,8,200,8,115,10,35,12,4,12,157,10, +186,8,178,5,98,1,112,253,104,251,58,251,134,251,254,249,159,244,73,236,192,228,116,224,211,221,64,218,33,214,46,212, +204,213,185,217,107,222,74,228,110,236,10,246,8,255,8,7,62,15,83,23,253,28,115,31,133,32,226,33,108,35,56,36, +113,35,237,32,246,29,234,27,114,25,202,19,69,11,52,3,50,253,35,248,224,243,252,241,247,242,210,245,233,249,204,254, +113,3,21,7,105,9,142,9,92,7,58,5,122,5,170,6,215,5,101,3,75,2,137,3,95,5,113,6,44,7,63,8, +11,9,18,8,185,4,250,255,15,251,80,246,240,241,157,238,186,236,43,236,19,237,74,239,158,241,110,243,196,245,4,249, +146,251,95,252,114,252,146,252,66,252,198,251,16,252,157,252,119,252,187,252,22,255,189,2,181,5,194,7,177,9,245,10, +20,10,178,6,38,2,107,254,165,252,57,252,174,251,185,250,180,250,213,252,172,0,197,4,56,8,243,10,151,12,253,11, +177,8,63,4,223,0,56,255,116,254,26,254,131,254,224,255,214,1,9,4,88,6,115,8,107,9,22,8,107,4,9,0, +153,252,49,250,12,248,7,246,109,244,78,243,243,242,30,244,10,247,225,250,79,254,18,0,117,255,2,253,103,250,10,249, +234,248,35,249,19,249,227,248,49,249,92,250,60,252,117,254,186,0,137,2,147,3,184,3,155,2,11,0,34,253,152,251, +80,251,134,250,14,249,251,248,81,251,111,254,150,0,231,1,49,3,133,4,166,5,139,6,9,7,69,7,90,8,213,10, +234,12,149,12,5,11,226,10,212,11,39,11,50,8,227,4,185,2,181,1,60,1,141,0,149,255,144,255,135,1,188,4, +210,7,53,10,137,11,28,11,160,8,236,4,215,1,222,0,130,1,4,2,229,1,242,1,85,2,165,2,221,2,175,2, +160,1,21,0,226,253,143,249,10,244,21,241,20,241,19,240,90,237,232,236,193,239,89,242,81,243,255,244,77,248,55,251, +215,251,79,250,161,248,212,248,140,250,255,251,231,252,5,254,72,255,218,0,86,3,238,5,255,7,75,11,84,16,183,19, +53,19,189,16,231,13,46,10,115,6,85,4,250,2,212,0,44,254,8,252,181,251,87,254,199,1,48,2,217,0,100,2, +239,5,219,6,189,5,50,6,60,7,68,6,248,4,123,5,249,5,78,4,236,0,129,252,168,247,159,244,42,245,147,247, +242,248,24,249,200,249,102,251,238,252,51,254,111,255,197,255,35,255,228,254,156,255,32,0,36,0,161,0,106,0,188,253, +41,250,249,247,79,247,151,248,246,251,109,255,149,3,138,10,225,13,117,5,69,250,82,253,159,12,107,22,100,17,237,0, +19,236,161,218,50,210,59,213,167,228,213,245,161,240,130,205,48,168,254,160,75,187,229,227,104,8,109,35,19,58,179,81, +235,105,242,122,124,117,62,83,96,40,227,11,132,247,212,220,155,195,234,180,49,169,71,161,63,170,89,193,178,217,11,241, +97,1,177,0,79,2,157,36,184,85,232,101,74,80,238,54,60,40,63,27,231,11,227,245,175,210,120,176,154,167,29,181, +184,195,127,210,148,237,55,12,44,26,100,26,56,34,138,54,147,69,71,66,61,51,148,37,206,30,204,26,177,14,62,244, +169,215,129,205,247,216,182,235,63,250,1,1,29,1,221,2,126,11,184,17,29,15,187,13,39,17,113,11,240,249,201,239, +27,247,122,1,150,253,55,235,41,218,93,220,134,241,126,2,157,254,118,244,140,250,106,13,170,27,26,36,24,47,39,56, +223,52,207,38,201,22,37,9,177,254,237,245,4,234,61,219,209,211,114,218,232,231,112,240,250,240,161,239,217,245,1,7, +145,23,134,23,91,9,247,255,101,3,104,9,219,9,42,7,74,2,185,247,167,232,127,219,132,213,2,217,194,227,168,238, +24,247,170,4,50,27,98,46,107,47,209,31,222,12,75,255,32,246,22,235,40,217,46,196,16,184,2,187,168,198,12,212, +66,229,155,252,219,19,103,35,102,43,139,48,105,52,251,51,211,43,105,29,180,15,219,7,32,3,76,252,34,244,60,239, +65,239,113,243,57,251,188,3,61,8,121,8,211,8,179,10,172,11,105,12,8,16,144,20,122,20,180,15,101,11,223,8, +146,3,113,248,33,235,20,227,157,228,76,236,65,242,200,243,200,246,21,1,69,16,141,29,153,37,241,40,182,39,104,32, +86,18,96,1,89,246,248,246,225,252,225,251,39,243,66,239,253,246,95,255,237,249,242,232,125,221,187,225,186,235,209,233, +83,217,151,201,26,199,217,204,155,207,142,206,5,208,134,212,36,215,95,215,149,218,210,228,146,245,204,10,5,35,163,59, +161,79,117,90,64,92,33,89,177,83,51,74,26,58,226,35,7,10,208,239,251,215,128,196,10,184,184,181,20,191,144,209, +196,230,198,248,112,6,143,18,58,31,120,43,72,53,11,60,15,64,18,65,65,62,46,55,120,44,84,32,79,22,156,16, +48,13,163,7,118,255,118,250,151,254,173,10,150,23,190,31,131,34,209,32,101,26,212,15,10,4,17,249,7,237,249,220, +7,202,105,185,109,175,59,172,144,173,51,178,82,187,47,203,38,226,39,252,8,18,241,30,33,36,228,37,144,37,18,33, +9,24,204,13,43,5,85,253,115,245,128,240,207,241,27,247,71,250,90,249,248,248,175,253,25,6,209,13,118,19,143,24, +247,28,15,30,170,26,200,20,107,14,8,7,186,253,83,244,45,238,94,236,218,236,143,237,1,239,99,243,215,251,40,7, +137,18,38,27,148,31,173,32,2,33,152,34,186,36,93,36,20,31,116,21,116,10,9,1,250,250,26,249,35,251,226,254, +5,1,220,255,201,252,20,250,229,247,150,244,132,239,218,233,114,228,153,222,192,215,49,209,225,204,109,203,89,204,172,207, +9,214,130,223,96,235,212,248,174,6,183,18,207,26,233,30,239,32,150,33,175,30,222,22,173,11,208,255,94,244,134,233, +48,225,63,222,236,224,6,230,202,234,228,239,74,247,171,0,168,9,203,16,49,22,125,25,63,25,18,21,203,14,180,8, +159,3,110,255,82,252,160,250,26,250,79,250,85,251,105,253,75,0,197,3,131,8,73,15,36,23,124,29,148,32,1,33, +19,32,239,29,76,26,40,22,236,18,27,16,109,11,191,3,194,250,255,242,253,236,129,231,51,226,121,222,34,221,235,220, +110,220,72,220,213,221,232,224,49,228,21,231,171,233,159,235,110,236,79,236,237,235,190,235,52,236,31,238,33,242,241,247, +110,254,165,4,156,10,207,16,233,22,194,27,203,30,80,32,209,31,197,27,9,20,16,11,56,3,61,252,205,244,139,237, +208,232,214,231,194,233,108,237,153,242,206,248,82,254,141,1,193,2,64,3,111,3,200,2,81,1,190,255,136,254,20,254, +65,255,121,2,173,6,147,10,120,14,133,19,126,25,117,30,181,32,224,31,250,27,167,20,93,10,134,255,21,247,207,241, +22,238,93,234,216,230,174,228,118,228,178,229,53,231,21,232,180,232,237,233,234,235,104,238,110,241,68,245,203,249,155,254, +69,3,181,6,97,7,26,5,196,1,94,255,27,254,7,253,145,251,23,250,120,249,64,250,209,251,230,252,91,253,147,254, +201,1,169,6,211,11,252,15,115,18,70,19,242,18,133,17,116,14,204,9,232,4,118,1,2,0,1,0,16,1,189,3, +186,8,83,15,107,21,84,25,37,27,171,27,242,26,144,24,185,20,34,16,35,11,140,5,85,255,61,249,194,244,41,243, +95,244,25,247,48,250,89,253,136,0,57,3,182,4,176,4,81,3,194,0,230,252,173,247,163,241,15,236,121,232,216,231, +210,233,188,236,1,239,177,240,11,243,131,246,72,250,156,253,113,0,229,2,51,5,216,7,139,10,194,11,123,10,148,7, +58,4,78,0,170,251,176,247,8,246,154,246,7,248,142,249,153,251,155,254,4,2,157,4,235,5,191,6,4,8,147,9, +211,10,215,11,240,12,221,13,64,14,111,14,14,15,42,16,27,17,39,17,34,16,153,14,21,13,104,11,91,9,185,7, +125,7,243,7,255,6,163,3,54,255,161,251,27,249,87,246,180,242,128,239,128,238,191,239,192,241,201,243,162,246,188,250, +233,254,179,1,247,2,85,3,173,2,58,0,226,251,158,246,146,241,72,237,11,234,55,232,219,231,200,232,68,235,202,239, +204,245,206,251,253,0,127,5,248,8,112,10,246,9,182,8,52,7,2,5,37,2,58,255,61,252,205,248,112,245,97,243, +16,243,206,243,209,244,0,246,215,247,157,250,209,253,142,0,138,2,43,4,195,5,76,7,202,8,35,10,221,10,165,10, +208,9,223,8,2,8,49,7,90,6,98,5,141,4,126,4,78,5,52,6,181,6,72,7,57,8,157,8,74,7,87,4, +30,1,228,254,160,253,32,252,114,249,23,246,98,243,230,241,66,241,65,241,77,242,175,244,17,248,199,251,63,255,12,2, +250,3,24,5,138,5,48,5,201,3,120,1,213,254,63,252,170,249,117,247,183,246,254,247,134,250,104,253,164,0,30,4, +189,6,168,7,105,7,253,6,136,6,171,5,86,4,208,2,120,1,154,0,60,0,88,0,109,1,253,3,103,7,74,10, +48,12,209,13,152,15,246,16,80,17,189,16,157,15,14,14,247,11,132,9,74,7,148,5,198,3,47,1,93,254,172,252, +154,252,105,253,54,254,116,254,232,253,29,253,70,253,181,254,63,0,222,0,14,1,181,1,147,2,128,2,186,0,165,253, +146,250,183,248,10,248,125,247,162,246,158,246,209,248,246,252,68,1,100,4,144,6,164,8,129,10,33,11,252,9,180,7, +62,5,217,2,0,0,31,252,108,247,23,243,92,240,108,239,151,239,134,240,165,242,126,246,0,252,54,2,147,7,10,11, +234,12,7,14,98,14,122,13,132,11,51,9,195,6,68,4,57,2,5,1,107,0,88,0,97,1,186,3,142,6,235,8, +187,10,92,12,177,13,41,14,117,13,246,11,26,10,184,7,173,4,192,1,223,255,179,254,84,253,254,251,127,251,119,251, +242,250,71,250,143,250,162,251,85,252,107,252,198,252,230,253,86,255,79,0,55,0,208,254,87,252,102,249,160,246,180,244, +62,244,40,245,139,246,194,247,126,249,2,253,35,2,175,6,116,8,169,7,134,6,114,6,135,6,12,5,128,1,193,252, +216,247,58,243,9,239,173,235,252,233,179,234,213,237,165,242,241,247,92,252,31,255,170,0,218,1,129,2,198,1,235,255, +92,254,228,253,11,254,74,254,166,254,23,255,101,255,193,255,183,0,100,2,47,4,87,5,188,5,253,5,144,6,251,6, +114,6,227,4,203,2,97,0,165,253,183,250,151,247,66,244,106,241,19,240,63,240,45,241,252,242,137,246,163,251,212,0, +229,4,119,7,112,8,231,7,103,6,98,4,194,1,106,254,185,250,79,247,220,244,16,244,6,245,212,246,90,248,132,249, +36,251,155,253,34,0,178,1,38,2,40,2,39,2,241,1,50,1,198,255,176,253,92,251,184,249,82,249,116,249,250,248, +252,247,252,247,113,250,100,255,109,5,205,10,179,14,73,17,169,18,119,18,219,16,229,14,121,13,110,12,58,11,229,9, +247,8,203,8,70,9,249,9,131,10,163,10,246,9,83,8,153,6,30,6,218,6,58,7,85,6,20,5,115,4,207,3, +208,1,48,254,25,250,15,247,170,245,68,245,32,245,135,245,228,246,102,248,216,248,134,248,236,248,189,250,102,253,227,255, +42,1,123,0,50,254,156,251,128,249,168,247,23,246,96,245,125,245,139,245,90,245,39,246,251,248,251,252,51,0,200,1, +127,2,47,3,167,3,108,3,170,2,219,1,52,1,218,0,252,0,103,1,180,1,250,1,170,2,181,3,135,4,229,4, +36,5,163,5,109,6,66,7,184,7,141,7,238,6,63,6,132,5,46,4,201,1,252,254,114,253,61,254,131,0,130,2, +190,3,2,5,143,6,185,7,71,8,203,8,135,9,244,9,109,9,172,7,197,4,42,1,115,253,246,249,10,247,60,245, +204,244,70,245,32,246,5,247,121,247,55,247,243,246,184,247,124,249,113,251,55,253,191,254,175,255,7,0,139,0,105,1, +114,1,196,255,37,253,175,250,46,248,15,245,67,242,185,241,206,243,115,246,148,247,167,247,214,248,14,252,1,0,16,3, +243,4,71,6,73,7,142,7,178,6,15,5,167,3,33,3,26,3,244,2,226,2,99,3,52,4,171,4,218,4,73,5, +184,5,10,5,178,2,162,255,92,253,87,252,221,251,87,251,0,251,40,251,154,251,22,252,162,252,9,253,232,252,124,252, +150,252,138,253,222,254,7,0,225,0,145,1,83,2,3,3,235,2,159,1,219,255,145,254,131,253,238,251,9,250,180,248, +46,248,46,248,161,248,112,249,62,250,239,250,184,251,142,252,62,253,12,254,78,255,164,0,108,1,189,1,50,2,11,3, +229,3,42,4,133,3,34,2,148,0,121,255,83,255,150,0,56,3,68,6,118,8,97,9,142,9,156,9,137,9,219,8, +80,7,88,5,163,3,105,2,153,1,126,1,91,2,151,3,68,4,83,4,113,4,206,4,0,5,200,4,52,4,27,3, +90,1,123,255,136,254,231,254,206,255,75,0,132,0,48,1,27,2,65,2,101,1,80,0,148,255,76,255,190,255,246,0, +27,2,83,2,216,1,84,1,246,0,159,0,244,255,43,254,18,251,25,248,212,246,219,246,179,246,91,246,85,247,86,250, +48,254,32,1,157,2,154,3,10,5,127,6,222,6,25,6,77,5,31,5,59,5,79,5,110,5,141,5,112,5,38,5, +237,4,207,4,206,4,42,5,255,5,205,6,220,6,42,6,152,5,197,5,13,6,42,5,227,2,89,0,158,254,202,253, +176,253,109,254,212,255,27,1,210,1,114,2,125,3,180,4,161,5,69,6,156,6,66,6,28,5,207,3,231,2,243,1, +70,0,51,254,173,252,231,251,54,251,71,250,116,249,231,248,100,248,10,248,64,248,224,248,121,249,53,250,106,251,180,252, +147,253,84,254,90,255,72,0,196,0,14,1,60,1,221,0,223,255,193,254,208,253,1,253,83,252,205,251,79,251,191,250, +22,250,108,249,62,249,32,250,191,251,247,252,56,253,28,253,111,253,117,254,253,255,125,1,86,2,112,2,96,2,169,2, +56,3,150,3,105,3,193,2,0,2,66,1,57,0,234,254,23,254,35,254,60,254,109,253,41,252,181,251,56,252,121,252, +198,251,20,251,149,251,4,253,44,254,155,254,232,254,146,255,95,0,172,0,8,0,167,254,73,253,102,252,169,251,129,250, +251,248,154,247,200,246,184,246,133,247,255,248,163,250,1,252,22,253,3,254,171,254,2,255,83,255,176,255,160,255,14,255, +222,254,178,255,212,0,76,1,54,1,24,1,237,0,150,0,78,0,74,0,116,0,177,0,249,0,88,1,2,2,7,3, +15,4,197,4,30,5,16,5,157,4,30,4,204,3,95,3,192,2,74,2,251,1,153,1,167,1,204,2,104,4,68,5, +83,5,105,5,174,5,162,5,31,5,139,4,58,4,248,3,52,3,188,1,31,0,8,255,123,254,43,254,24,254,122,254, +110,255,198,0,222,1,16,2,151,1,102,1,203,1,255,1,79,1,7,0,0,255,165,254,134,254,230,253,170,252,97,251, +104,250,182,249,165,249,208,250,239,252,194,254,182,255,148,0,212,1,47,2,36,0,152,252,15,250,76,249,115,248,42,246, +159,243,200,242,245,243,220,245,32,247,133,247,249,247,84,249,54,251,192,252,247,253,121,255,101,1,101,3,47,5,146,6, +113,7,204,7,146,7,26,7,138,7,124,9,155,11,41,12,91,11,133,10,207,9,74,8,147,5,70,2,119,255,24,254, +30,254,98,254,0,254,100,253,154,253,6,255,13,1,190,2,211,3,245,4,207,6,55,9,154,11,160,13,33,15,19,16, +178,16,20,17,231,16,248,15,128,14,206,12,46,11,227,9,159,8,185,6,89,4,113,2,61,1,248,255,2,254,104,251, +143,248,52,246,24,245,35,245,104,245,71,245,252,244,1,245,102,245,181,245,139,245,93,245,51,246,72,248,150,250,30,252, +11,253,49,254,227,255,164,1,217,2,106,3,127,3,10,3,7,2,227,0,250,255,30,255,12,254,7,253,155,252,39,253, +124,254,196,255,71,0,96,0,216,0,144,1,223,1,188,1,118,1,1,1,102,0,232,255,96,255,156,254,40,254,139,254, +64,255,135,255,128,255,181,255,68,0,236,0,53,1,198,0,224,255,18,255,123,254,18,254,33,254,167,254,237,254,121,254, +158,253,202,252,13,252,75,251,81,250,254,248,156,247,144,246,184,245,203,244,14,244,252,243,189,244,52,246,29,248,2,250, +144,251,204,252,194,253,107,254,227,254,24,255,174,254,221,253,176,253,179,254,19,0,169,0,100,0,47,0,204,0,26,2, +103,3,77,4,231,4,85,5,157,5,253,5,176,6,101,7,123,7,187,6,137,5,110,4,200,3,167,3,240,3,141,4, +94,5,41,6,188,6,234,6,124,6,125,5,99,4,116,3,117,2,102,1,226,0,83,1,112,2,201,3,24,5,14,6, +99,6,20,6,75,5,69,4,71,3,79,2,23,1,194,255,225,254,130,254,6,254,2,253,179,251,142,250,224,249,158,249, +120,249,71,249,38,249,14,249,191,248,63,248,198,247,88,247,15,247,99,247,136,248,4,250,66,251,26,252,198,252,164,253, +206,254,181,255,191,255,85,255,110,255,67,0,59,1,229,1,74,2,162,2,29,3,150,3,164,3,54,3,165,2,23,2, +120,1,247,0,169,0,38,0,62,255,110,254,28,254,41,254,140,254,87,255,67,0,12,1,224,1,222,2,174,3,4,4, +244,3,165,3,77,3,33,3,18,3,236,2,219,2,30,3,109,3,65,3,128,2,109,1,80,0,78,255,73,254,2,253, +161,251,162,250,18,250,149,249,51,249,58,249,125,249,129,249,76,249,98,249,27,250,76,251,127,252,88,253,243,253,183,254, +175,255,117,0,182,0,146,0,144,0,34,1,255,1,87,2,3,2,230,1,161,2,153,3,229,3,102,3,151,2,240,1, +154,1,97,1,22,1,29,1,224,1,235,2,129,3,204,3,104,4,59,5,174,5,165,5,134,5,188,5,98,6,19,7, +56,7,202,6,65,6,168,5,171,4,100,3,56,2,31,1,248,255,11,255,143,254,70,254,247,253,148,253,241,252,10,252, +78,251,2,251,214,250,143,250,139,250,45,251,71,252,83,253,233,253,253,253,231,253,10,254,85,254,81,254,196,253,6,253, +139,252,73,252,221,251,71,251,22,251,158,251,109,252,238,252,33,253,88,253,158,253,191,253,176,253,154,253,181,253,11,254, +104,254,171,254,2,255,160,255,106,0,46,1,204,1,23,2,221,1,42,1,51,0,33,255,60,254,229,253,34,254,173,254, +140,255,251,0,200,2,94,4,102,5,223,5,216,5,140,5,94,5,101,5,79,5,236,4,113,4,18,4,194,3,110,3, +32,3,207,2,92,2,219,1,158,1,202,1,33,2,65,2,247,1,68,1,64,0,255,254,183,253,201,252,136,252,202,252, +249,252,210,252,200,252,88,253,77,254,8,255,78,255,104,255,167,255,3,0,48,0,4,0,171,255,92,255,247,254,95,254, +231,253,222,253,240,253,167,253,54,253,44,253,177,253,143,254,155,255,166,0,107,1,221,1,43,2,95,2,90,2,48,2, +42,2,92,2,142,2,135,2,69,2,234,1,139,1,31,1,157,0,27,0,189,255,141,255,151,255,1,0,210,0,201,1, +145,2,27,3,137,3,249,3,112,4,239,4,120,5,21,6,190,6,72,7,122,7,93,7,38,7,211,6,17,6,170,4, +242,2,125,1,135,0,183,255,146,254,254,252,92,251,48,250,191,249,212,249,237,249,181,249,106,249,146,249,93,250,124,251, +106,252,209,252,199,252,189,252,240,252,23,253,237,252,196,252,9,253,149,253,237,253,6,254,57,254,150,254,175,254,51,254, +103,253,223,252,194,252,189,252,158,252,171,252,39,253,18,254,77,255,155,0,132,1,205,1,218,1,54,2,220,2,94,3, +139,3,162,3,233,3,84,4,142,4,94,4,219,3,62,3,160,2,21,2,196,1,191,1,229,1,12,2,21,2,233,1, +144,1,48,1,217,0,123,0,19,0,186,255,138,255,155,255,243,255,108,0,197,0,222,0,183,0,74,0,178,255,66,255, +37,255,17,255,168,254,13,254,182,253,191,253,197,253,145,253,105,253,141,253,190,253,158,253,54,253,205,252,126,252,38,252, +163,251,14,251,179,250,179,250,187,250,107,250,8,250,82,250,131,251,224,252,123,253,74,253,56,253,243,253,245,254,73,255, +11,255,69,255,85,0,126,1,39,2,146,2,33,3,185,3,18,4,35,4,31,4,49,4,72,4,34,4,156,3,233,2, +89,2,11,2,244,1,22,2,112,2,228,2,80,3,170,3,249,3,59,4,94,4,67,4,191,3,219,2,244,1,110,1, +52,1,228,0,127,0,118,0,232,0,91,1,85,1,237,0,149,0,140,0,161,0,117,0,220,255,245,254,248,253,40,253, +198,252,193,252,160,252,28,252,155,251,164,251,38,252,198,252,117,253,59,254,212,254,9,255,29,255,95,255,165,255,140,255, +29,255,203,254,236,254,126,255,54,0,173,0,170,0,97,0,41,0,3,0,200,255,159,255,194,255,8,0,38,0,47,0, +114,0,22,1,248,1,186,2,30,3,106,3,248,3,108,4,34,4,87,3,234,2,39,3,144,3,203,3,237,3,32,4, +104,4,151,4,91,4,196,3,82,3,68,3,86,3,100,3,143,3,161,3,46,3,60,2,18,1,171,255,249,253,75,252, +255,250,27,250,126,249,32,249,248,248,241,248,10,249,100,249,39,250,47,251,39,252,239,252,175,253,79,254,118,254,59,254, +46,254,128,254,199,254,184,254,143,254,164,254,242,254,14,255,183,254,74,254,94,254,226,254,70,255,106,255,176,255,49,0, +157,0,167,0,61,0,145,255,38,255,78,255,180,255,229,255,6,0,110,0,4,1,126,1,191,1,179,1,84,1,234,0, +190,0,158,0,57,0,160,255,38,255,247,254,21,255,101,255,153,255,119,255,49,255,32,255,47,255,8,255,188,254,188,254, +49,255,192,255,254,255,227,255,179,255,159,255,151,255,110,255,26,255,187,254,116,254,106,254,181,254,9,255,192,254,181,253, +173,252,88,252,108,252,76,252,8,252,30,252,179,252,138,253,87,254,244,254,126,255,58,0,44,1,15,2,198,2,147,3, +175,4,219,5,134,6,115,6,37,6,82,6,233,6,59,7,28,7,14,7,79,7,108,7,239,6,246,5,7,5,119,4, +251,3,9,3,187,1,200,0,115,0,83,0,54,0,107,0,18,1,211,1,86,2,138,2,153,2,172,2,160,2,39,2, +103,1,252,0,22,1,83,1,106,1,100,1,69,1,32,1,32,1,41,1,252,0,174,0,98,0,204,255,201,254,247,253, +245,253,131,254,240,254,239,254,196,254,200,254,241,254,199,254,10,254,34,253,156,252,141,252,195,252,27,253,115,253,197,253, +72,254,22,255,219,255,73,0,133,0,186,0,199,0,133,0,5,0,111,255,238,254,170,254,155,254,163,254,215,254,103,255, +72,0,56,1,247,1,99,2,119,2,77,2,255,1,136,1,243,0,122,0,77,0,88,0,92,0,59,0,8,0,230,255, +232,255,8,0,67,0,163,0,24,1,101,1,106,1,78,1,49,1,222,0,37,0,79,255,213,254,176,254,107,254,219,253, +84,253,36,253,50,253,69,253,82,253,103,253,123,253,120,253,81,253,4,253,155,252,62,252,31,252,76,252,168,252,14,253, +98,253,147,253,182,253,255,253,105,254,147,254,59,254,163,253,55,253,26,253,47,253,100,253,208,253,145,254,158,255,175,0, +135,1,41,2,159,2,206,2,175,2,103,2,254,1,103,1,202,0,93,0,31,0,7,0,46,0,135,0,209,0,247,0, +9,1,236,0,144,0,59,0,48,0,54,0,235,255,68,255,134,254,247,253,189,253,221,253,65,254,203,254,84,255,193,255, +11,0,56,0,86,0,114,0,121,0,54,0,160,255,13,255,191,254,143,254,56,254,197,253,122,253,132,253,211,253,28,254, +37,254,7,254,242,253,213,253,146,253,50,253,176,252,0,252,77,251,183,250,11,250,79,249,29,249,205,249,236,250,240,251, +202,252,144,253,89,254,90,255,139,0,126,1,239,1,26,2,58,2,47,2,222,1,105,1,11,1,227,0,216,0,171,0, +65,0,189,255,48,255,143,254,241,253,111,253,237,252,104,252,58,252,174,252,145,253,119,254,47,255,223,255,194,0,220,1, +253,2,250,3,194,4,43,5,28,5,220,4,200,4,235,4,39,5,107,5,138,5,105,5,73,5,121,5,197,5,184,5, +39,5,34,4,226,2,215,1,69,1,222,0,58,0,121,255,5,255,14,255,120,255,245,255,42,0,18,0,23,0,112,0, +218,0,15,1,36,1,68,1,102,1,110,1,83,1,33,1,234,0,161,0,44,0,179,255,146,255,204,255,231,255,128,255, +203,254,95,254,145,254,48,255,212,255,75,0,163,0,244,0,63,1,127,1,174,1,203,1,219,1,206,1,130,1,16,1, +209,0,231,0,15,1,8,1,229,0,214,0,240,0,37,1,78,1,70,1,19,1,217,0,161,0,105,0,54,0,246,255, +141,255,26,255,234,254,6,255,31,255,10,255,240,254,3,255,57,255,105,255,120,255,101,255,59,255,16,255,14,255,76,255, +148,255,137,255,30,255,179,254,150,254,157,254,114,254,15,254,179,253,123,253,75,253,28,253,21,253,94,253,242,253,159,254, +48,255,144,255,202,255,248,255,9,0,202,255,57,255,180,254,147,254,193,254,225,254,209,254,196,254,244,254,114,255,44,0, +253,0,176,1,24,2,54,2,41,2,1,2,204,1,160,1,141,1,133,1,110,1,70,1,56,1,104,1,201,1,35,2, +99,2,184,2,68,3,219,3,48,4,40,4,237,3,182,3,131,3,37,3,132,2,201,1,37,1,146,0,8,0,173,255, +145,255,106,255,237,254,56,254,161,253,85,253,69,253,66,253,36,253,227,252,162,252,146,252,205,252,57,253,156,253,212,253, +247,253,29,254,52,254,55,254,80,254,143,254,210,254,12,255,102,255,233,255,95,0,158,0,174,0,181,0,216,0,37,1, +118,1,145,1,98,1,254,0,120,0,212,255,23,255,99,254,244,253,235,253,36,254,110,254,227,254,175,255,167,0,119,1, +16,2,159,2,26,3,60,3,237,2,111,2,27,2,14,2,41,2,66,2,62,2,8,2,167,1,79,1,49,1,60,1, +56,1,25,1,242,0,184,0,76,0,182,255,44,255,201,254,122,254,60,254,64,254,176,254,90,255,204,255,218,255,189,255, +179,255,166,255,105,255,9,255,179,254,108,254,20,254,165,253,93,253,116,253,195,253,216,253,120,253,250,252,231,252,89,253, +245,253,102,254,179,254,9,255,102,255,165,255,192,255,232,255,89,0,20,1,227,1,149,2,51,3,203,3,53,4,34,4, +126,3,147,2,223,1,225,1,0,3,63,5,4,8,91,10,164,11,209,11,232,10,167,8,39,5,144,1,80,255,128,254, +220,253,142,252,65,251,241,250,134,251,60,252,199,252,62,253,101,253,226,252,8,252,202,251,239,252,182,255,229,3,129,8, +176,11,218,11,33,9,31,5,34,1,71,253,109,249,16,246,195,243,95,242,90,241,173,240,14,241,107,243,27,248,49,254, +187,3,22,7,45,8,254,7,4,7,241,4,255,1,119,255,32,254,255,252,137,250,193,246,72,243,114,241,55,241,13,242, +232,243,214,246,51,250,255,252,10,255,64,1,132,4,122,8,208,11,133,13,111,13,189,11,193,8,78,5,168,2,160,1, +240,1,204,2,188,3,146,4,247,4,133,4,86,3,10,2,74,1,112,1,120,2,212,3,107,4,109,3,63,1,43,255, +8,254,135,253,233,252,219,251,137,250,65,249,116,248,201,248,186,250,17,254,202,1,131,4,70,5,59,4,134,2,22,1, +186,255,198,253,120,251,231,249,122,249,62,249,92,248,116,247,206,247,153,249,190,251,78,253,84,254,35,255,148,255,100,255, +223,254,203,254,160,255,14,1,38,2,23,2,227,0,92,255,88,254,245,253,209,253,219,253,111,254,176,255,35,1,42,2, +189,2,110,3,205,4,169,6,248,7,143,7,64,5,41,2,188,255,143,254,105,254,9,255,79,0,167,1,16,2,36,1, +180,255,9,255,200,255,162,1,202,3,111,5,31,6,4,6,145,5,233,4,237,3,241,2,163,2,237,2,128,2,70,0, +230,252,69,250,153,249,148,250,52,252,178,253,144,254,162,254,62,254,5,254,36,254,57,254,21,254,30,254,140,254,195,254, +10,254,177,252,225,251,71,252,104,253,151,254,228,255,143,1,238,2,219,2,103,1,70,0,223,0,141,2,137,3,43,3, +86,2,220,1,148,1,46,1,239,0,49,1,222,1,246,2,202,4,34,7,178,8,76,8,72,6,46,4,27,3,248,2, +18,3,205,2,221,1,90,0,202,254,218,253,234,253,236,254,106,0,152,1,198,1,20,1,130,0,242,0,92,2,47,4, +10,6,153,7,36,8,9,7,142,4,165,1,243,254,169,252,20,251,132,250,130,250,25,250,44,249,204,248,193,249,106,251, +173,252,126,253,151,254,13,0,21,1,56,1,2,1,37,1,137,1,154,1,14,1,252,255,105,254,84,252,37,250,176,248, +147,248,184,249,131,251,83,253,196,254,179,255,76,0,242,0,236,1,8,3,181,3,152,3,219,2,227,1,217,0,184,255, +172,254,29,254,77,254,25,255,31,0,9,1,168,1,253,1,69,2,200,2,141,3,67,4,150,4,99,4,170,3,126,2, +47,1,66,0,243,255,217,255,91,255,92,254,74,253,127,252,251,251,181,251,223,251,166,252,229,253,61,255,79,0,213,0, +189,0,80,0,4,0,15,0,38,0,225,255,41,255,34,254,223,252,120,251,78,250,223,249,77,250,58,251,47,252,5,253, +221,253,216,254,230,255,209,0,107,1,187,1,242,1,29,2,246,1,55,1,11,0,4,255,134,254,112,254,106,254,93,254, +103,254,133,254,139,254,110,254,114,254,223,254,169,255,120,0,254,0,51,1,52,1,13,1,195,0,129,0,137,0,235,0, +89,1,118,1,59,1,246,0,244,0,75,1,233,1,162,2,41,3,33,3,116,2,108,1,111,0,168,255,22,255,180,254, +126,254,90,254,67,254,93,254,194,254,55,255,90,255,34,255,227,254,215,254,203,254,113,254,216,253,106,253,113,253,211,253, +54,254,97,254,91,254,72,254,59,254,63,254,113,254,0,255,236,255,227,0,127,1,176,1,204,1,37,2,173,2,19,3, +30,3,220,2,120,2,255,1,95,1,148,0,197,255,43,255,221,254,200,254,209,254,252,254,86,255,218,255,127,0,71,1, +42,2,248,2,123,3,185,3,215,3,211,3,133,3,249,2,113,2,11,2,149,1,241,0,90,0,9,0,217,255,145,255, +93,255,158,255,74,0,232,0,37,1,34,1,18,1,233,0,151,0,63,0,10,0,221,255,133,255,9,255,157,254,105,254, +122,254,213,254,120,255,61,0,244,0,131,1,224,1,246,1,182,1,62,1,185,0,51,0,151,255,223,254,31,254,115,253, +249,252,210,252,255,252,62,253,73,253,52,253,100,253,14,254,245,254,190,255,100,0,21,1,197,1,38,2,26,2,222,1, +170,1,95,1,196,0,4,0,151,255,170,255,230,255,228,255,174,255,134,255,121,255,108,255,101,255,133,255,177,255,160,255, +85,255,41,255,70,255,103,255,71,255,253,254,188,254,110,254,238,253,107,253,59,253,100,253,167,253,246,253,121,254,39,255, +186,255,16,0,84,0,158,0,199,0,187,0,169,0,184,0,179,0,80,0,153,255,220,254,81,254,11,254,24,254,122,254, +2,255,120,255,212,255,56,0,166,0,252,0,35,1,29,1,214,0,41,0,41,255,54,254,172,253,148,253,189,253,8,254, +123,254,21,255,183,255,59,0,148,0,206,0,255,0,56,1,128,1,211,1,27,2,53,2,4,2,154,1,45,1,234,0, +207,0,189,0,166,0,156,0,166,0,182,0,187,0,199,0,249,0,83,1,162,1,167,1,74,1,177,0,15,0,116,255, +217,254,86,254,29,254,56,254,103,254,107,254,91,254,122,254,217,254,72,255,165,255,243,255,42,0,43,0,246,255,193,255, +176,255,170,255,138,255,99,255,82,255,68,255,19,255,211,254,192,254,229,254,17,255,40,255,79,255,165,255,14,0,91,0, +145,0,208,0,10,1,7,1,185,0,92,0,44,0,21,0,215,255,108,255,42,255,97,255,253,255,167,0,56,1,215,1, +157,2,92,3,214,3,18,4,71,4,121,4,116,4,21,4,116,3,190,2,2,2,61,1,113,0,175,255,17,255,194,254, +224,254,86,255,226,255,97,0,234,0,151,1,75,2,201,2,236,2,188,2,78,2,185,1,31,1,153,0,40,0,192,255, +99,255,21,255,210,254,165,254,179,254,21,255,164,255,16,0,57,0,56,0,35,0,241,255,159,255,79,255,26,255,228,254, +143,254,43,254,232,253,212,253,213,253,221,253,253,253,57,254,114,254,143,254,164,254,218,254,49,255,127,255,164,255,176,255, +202,255,242,255,7,0,238,255,182,255,147,255,172,255,5,0,122,0,214,0,251,0,248,0,246,0,19,1,74,1,144,1, +223,1,41,2,73,2,42,2,224,1,148,1,73,1,231,0,115,0,12,0,189,255,120,255,55,255,10,255,248,254,239,254, +255,254,81,255,216,255,52,0,25,0,171,255,81,255,49,255,32,255,254,254,218,254,191,254,161,254,133,254,145,254,201,254, +248,254,249,254,232,254,241,254,6,255,251,254,199,254,140,254,100,254,73,254,58,254,65,254,81,254,71,254,24,254,229,253, +218,253,4,254,82,254,171,254,251,254,54,255,99,255,155,255,239,255,78,0,149,0,176,0,172,0,161,0,151,0,137,0, +107,0,60,0,15,0,11,0,82,0,221,0,118,1,230,1,32,2,68,2,99,2,107,2,76,2,29,2,3,2,251,1, +217,1,135,1,32,1,197,0,121,0,47,0,237,255,186,255,139,255,83,255,49,255,91,255,221,255,138,0,28,1,104,1, +91,1,254,0,115,0,235,255,131,255,53,255,241,254,184,254,147,254,136,254,160,254,215,254,25,255,72,255,97,255,130,255, +195,255,18,0,76,0,104,0,120,0,143,0,172,0,199,0,210,0,188,0,129,0,62,0,19,0,2,0,239,255,210,255, +194,255,208,255,241,255,23,0,83,0,187,0,67,1,187,1,1,2,33,2,53,2,54,2,10,2,176,1,84,1,32,1, +5,1,210,0,118,0,25,0,238,255,255,255,57,0,144,0,254,0,110,1,195,1,247,1,24,2,40,2,21,2,225,1, +163,1,101,1,17,1,152,0,20,0,176,255,121,255,85,255,57,255,50,255,76,255,119,255,158,255,188,255,213,255,238,255, +5,0,24,0,40,0,45,0,38,0,28,0,27,0,38,0,55,0,75,0,97,0,117,0,120,0,90,0,28,0,216,255, +178,255,188,255,222,255,245,255,243,255,241,255,7,0,49,0,76,0,52,0,234,255,148,255,91,255,79,255,88,255,83,255, +44,255,234,254,173,254,152,254,184,254,252,254,62,255,104,255,126,255,141,255,157,255,179,255,220,255,26,0,82,0,96,0, +68,0,32,0,18,0,16,0,6,0,239,255,208,255,164,255,94,255,245,254,115,254,241,253,155,253,142,253,186,253,229,253, +230,253,208,253,218,253,33,254,153,254,37,255,173,255,16,0,53,0,39,0,13,0,0,0,241,255,206,255,161,255,129,255, +116,255,112,255,115,255,130,255,155,255,174,255,181,255,186,255,197,255,213,255,230,255,251,255,25,0,59,0,87,0,106,0, +117,0,113,0,85,0,40,0,254,255,221,255,181,255,121,255,53,255,10,255,3,255,18,255,37,255,63,255,108,255,168,255, +225,255,13,0,48,0,73,0,70,0,20,0,183,255,72,255,227,254,152,254,103,254,85,254,103,254,161,254,249,254,88,255, +170,255,240,255,49,0,104,0,131,0,120,0,81,0,28,0,221,255,150,255,81,255,25,255,236,254,195,254,165,254,166,254, +211,254,34,255,132,255,238,255,88,0,179,0,241,0,18,1,35,1,53,1,75,1,92,1,87,1,53,1,3,1,218,0, +191,0,159,0,106,0,46,0,15,0,27,0,58,0,73,0,70,0,80,0,129,0,210,0,33,1,91,1,133,1,173,1, +205,1,211,1,179,1,112,1,23,1,178,0,73,0,242,255,195,255,190,255,208,255,226,255,247,255,39,0,127,0,240,0, +85,1,138,1,135,1,88,1,21,1,213,0,161,0,114,0,50,0,212,255,113,255,60,255,85,255,161,255,228,255,246,255, +237,255,248,255,42,0,107,0,146,0,150,0,142,0,152,0,181,0,212,0,225,0,219,0,196,0,161,0,116,0,74,0, +49,0,42,0,38,0,27,0,17,0,25,0,51,0,67,0,43,0,240,255,181,255,159,255,184,255,237,255,41,0,100,0, +157,0,208,0,247,0,11,1,3,1,208,0,110,0,241,255,133,255,75,255,60,255,53,255,29,255,3,255,5,255,44,255, +96,255,136,255,163,255,197,255,251,255,59,0,112,0,147,0,171,0,185,0,183,0,155,0,106,0,44,0,226,255,132,255, +18,255,160,254,70,254,12,254,234,253,222,253,242,253,45,254,127,254,202,254,253,254,39,255,95,255,169,255,242,255,38,0, +72,0,104,0,138,0,157,0,143,0,94,0,23,0,196,255,107,255,25,255,226,254,210,254,221,254,235,254,245,254,18,255, +86,255,181,255,255,255,10,0,210,255,122,255,36,255,226,254,179,254,146,254,127,254,122,254,138,254,191,254,36,255,177,255, +65,0,173,0,230,0,249,0,245,0,213,0,141,0,46,0,222,255,188,255,187,255,181,255,152,255,122,255,127,255,175,255, +237,255,23,0,36,0,36,0,38,0,48,0,69,0,109,0,162,0,203,0,206,0,169,0,124,0,104,0,116,0,138,0, +154,0,159,0,156,0,126,0,43,0,151,255,217,254,19,254,93,253,193,252,73,252,10,252,21,252,106,252,253,252,191,253, +159,254,127,255,52,0,165,0,226,0,18,1,74,1,115,1,109,1,58,1,11,1,11,1,52,1,83,1,62,1,241,0, +136,0,25,0,162,255,27,255,142,254,20,254,207,253,220,253,79,254,38,255,61,0,97,1,112,2,116,3,137,4,174,5, +170,6,56,7,62,7,225,6,93,6,210,5,57,5,133,4,183,3,226,2,29,2,130,1,40,1,20,1,42,1,49,1, +2,1,163,0,57,0,210,255,82,255,155,254,188,253,245,252,134,252,122,252,171,252,244,252,89,253,238,253,182,254,144,255, +72,0,183,0,202,0,139,0,24,0,156,255,54,255,234,254,168,254,114,254,106,254,185,254,96,255,48,0,235,0,115,1, +207,1,2,2,252,1,171,1,26,1,113,0,216,255,102,255,40,255,42,255,114,255,231,255,85,0,149,0,176,0,197,0, +226,0,233,0,184,0,82,0,229,255,155,255,121,255,106,255,105,255,136,255,221,255,92,0,232,0,107,1,221,1,59,2, +117,2,116,2,45,2,169,1,246,0,35,0,72,255,137,254,3,254,182,253,139,253,118,253,132,253,197,253,36,254,107,254, +106,254,31,254,172,253,49,253,184,252,69,252,238,251,213,251,17,252,154,252,92,253,77,254,99,255,116,0,66,1,165,1, +163,1,100,1,254,0,108,0,171,255,217,254,47,254,209,253,190,253,226,253,53,254,188,254,108,255,37,0,193,0,51,1, +130,1,169,1,152,1,71,1,206,0,80,0,226,255,132,255,58,255,25,255,66,255,178,255,68,0,206,0,68,1,167,1, +240,1,10,2,231,1,139,1,16,1,141,0,13,0,156,255,84,255,76,255,125,255,191,255,238,255,8,0,31,0,54,0, +56,0,18,0,196,255,82,255,175,254,217,253,244,252,64,252,235,251,245,251,56,252,149,252,19,253,197,253,155,254,94,255, +229,255,59,0,128,0,194,0,236,0,239,0,217,0,215,0,5,1,90,1,187,1,29,2,119,2,177,2,170,2,91,2, +225,1,107,1,6,1,136,0,202,255,213,254,234,253,76,253,26,253,79,253,199,253,89,254,232,254,106,255,241,255,157,0, +109,1,45,2,167,2,211,2,209,2,197,2,187,2,182,2,195,2,254,2,115,3,255,3,103,4,147,4,158,4,163,4, +145,4,52,4,104,3,59,2,217,0,99,255,227,253,122,252,103,251,212,250,174,250,188,250,214,250,5,251,113,251,42,252, +10,253,214,253,103,254,184,254,213,254,223,254,246,254,52,255,157,255,29,0,146,0,231,0,54,1,160,1,29,2,142,2, +217,2,238,2,182,2,38,2,78,1,98,0,166,255,71,255,58,255,92,255,160,255,19,0,178,0,91,1,233,1,86,2, +182,2,19,3,70,3,30,3,161,2,15,2,163,1,110,1,87,1,66,1,44,1,42,1,64,1,89,1,110,1,143,1, +181,1,172,1,65,1,114,0,105,255,94,254,126,253,204,252,62,252,225,251,201,251,241,251,71,252,205,252,149,253,155,254, +172,255,136,0,11,1,65,1,68,1,33,1,231,0,170,0,113,0,38,0,186,255,51,255,168,254,55,254,234,253,157,253, +37,253,141,252,19,252,225,251,241,251,46,252,151,252,45,253,237,253,192,254,136,255,62,0,226,0,104,1,182,1,194,1, +157,1,90,1,5,1,158,0,31,0,155,255,75,255,80,255,139,255,196,255,244,255,73,0,228,0,175,1,97,2,201,2, +234,2,229,2,194,2,128,2,42,2,194,1,59,1,156,0,3,0,142,255,70,255,43,255,40,255,38,255,34,255,45,255, +77,255,112,255,124,255,91,255,7,255,143,254,9,254,137,253,42,253,255,252,249,252,3,253,41,253,140,253,43,254,217,254, +87,255,132,255,131,255,157,255,239,255,65,0,80,0,27,0,221,255,191,255,178,255,138,255,62,255,236,254,169,254,110,254, +64,254,56,254,95,254,161,254,239,254,62,255,130,255,185,255,245,255,52,0,83,0,60,0,5,0,208,255,169,255,135,255, +110,255,116,255,165,255,239,255,64,0,144,0,224,0,35,1,85,1,134,1,197,1,8,2,51,2,49,2,253,1,181,1, +126,1,92,1,43,1,209,0,97,0,1,0,195,255,156,255,128,255,118,255,153,255,234,255,64,0,108,0,105,0,88,0, +80,0,78,0,67,0,45,0,21,0,254,255,228,255,195,255,159,255,121,255,79,255,21,255,193,254,87,254,249,253,204,253, +222,253,35,254,143,254,27,255,186,255,90,0,238,0,118,1,231,1,42,2,55,2,35,2,10,2,241,1,196,1,110,1, +252,0,158,0,138,0,197,0,31,1,104,1,162,1,229,1,50,2,100,2,104,2,72,2,30,2,235,1,162,1,65,1, +218,0,127,0,43,0,212,255,118,255,38,255,252,254,255,254,27,255,63,255,119,255,215,255,79,0,179,0,231,0,246,0, +0,1,22,1,33,1,1,1,186,0,124,0,100,0,104,0,117,0,138,0,162,0,183,0,196,0,207,0,216,0,220,0, +221,0,218,0,202,0,170,0,123,0,70,0,254,255,143,255,3,255,137,254,55,254,240,253,169,253,137,253,167,253,230,253, +50,254,161,254,54,255,197,255,30,0,62,0,65,0,65,0,70,0,71,0,63,0,59,0,74,0,119,0,188,0,245,0, +252,0,224,0,209,0,218,0,219,0,189,0,130,0,49,0,224,255,169,255,149,255,157,255,181,255,199,255,178,255,128,255, +92,255,97,255,127,255,148,255,143,255,130,255,145,255,194,255,243,255,26,0,88,0,170,0,237,0,28,1,74,1,104,1, +76,1,243,0,130,0,32,0,226,255,194,255,165,255,121,255,70,255,32,255,25,255,57,255,98,255,109,255,106,255,132,255, +172,255,170,255,122,255,71,255,43,255,34,255,32,255,33,255,51,255,100,255,171,255,239,255,44,0,93,0,100,0,64,0, +20,0,237,255,191,255,152,255,141,255,143,255,149,255,189,255,5,0,66,0,101,0,143,0,196,0,233,0,241,0,233,0, +223,0,214,0,194,0,159,0,125,0,111,0,113,0,125,0,154,0,180,0,179,0,173,0,192,0,208,0,190,0,158,0, +134,0,113,0,106,0,128,0,152,0,143,0,117,0,89,0,48,0,255,255,225,255,207,255,178,255,143,255,116,255,94,255, +82,255,87,255,95,255,98,255,96,255,82,255,45,255,2,255,223,254,187,254,153,254,136,254,133,254,148,254,200,254,24,255, +92,255,145,255,201,255,248,255,21,0,66,0,136,0,183,0,184,0,157,0,106,0,34,0,242,255,251,255,37,0,80,0, +117,0,159,0,223,0,62,1,161,1,226,1,3,2,16,2,253,1,198,1,138,1,82,1,15,1,208,0,171,0,152,0, +138,0,125,0,103,0,64,0,28,0,4,0,242,255,237,255,247,255,242,255,210,255,191,255,200,255,203,255,197,255,210,255, +225,255,203,255,154,255,101,255,45,255,251,254,233,254,246,254,7,255,11,255,254,254,240,254,9,255,83,255,157,255,197,255, +223,255,248,255,255,255,248,255,247,255,254,255,0,0,245,255,208,255,152,255,108,255,88,255,71,255,58,255,70,255,100,255, +139,255,199,255,11,0,56,0,82,0,108,0,114,0,88,0,64,0,53,0,22,0,235,255,226,255,244,255,247,255,242,255, +2,0,14,0,246,255,201,255,178,255,185,255,195,255,185,255,158,255,134,255,104,255,66,255,57,255,93,255,117,255,93,255, +70,255,81,255,86,255,57,255,30,255,27,255,36,255,57,255,84,255,98,255,104,255,128,255,153,255,144,255,105,255,61,255, +16,255,238,254,230,254,231,254,215,254,191,254,178,254,180,254,198,254,233,254,16,255,51,255,83,255,116,255,149,255,189,255, +234,255,13,0,38,0,61,0,80,0,102,0,148,0,196,0,198,0,173,0,181,0,212,0,213,0,192,0,186,0,192,0, +197,0,212,0,236,0,243,0,229,0,209,0,190,0,178,0,186,0,208,0,225,0,228,0,211,0,173,0,121,0,63,0, +252,255,186,255,132,255,76,255,5,255,194,254,158,254,148,254,161,254,203,254,5,255,57,255,103,255,147,255,187,255,228,255, +23,0,68,0,91,0,101,0,105,0,95,0,81,0,82,0,85,0,76,0,76,0,97,0,103,0,71,0,35,0,35,0, +56,0,69,0,64,0,52,0,38,0,17,0,244,255,225,255,245,255,43,0,103,0,144,0,157,0,149,0,138,0,141,0, +149,0,157,0,169,0,178,0,180,0,201,0,3,1,72,1,127,1,180,1,234,1,253,1,221,1,169,1,106,1,15,1, +163,0,77,0,21,0,233,255,200,255,191,255,191,255,181,255,175,255,205,255,10,0,57,0,65,0,47,0,16,0,222,255, +157,255,91,255,26,255,217,254,173,254,172,254,202,254,243,254,40,255,103,255,156,255,190,255,209,255,203,255,163,255,122,255, +116,255,130,255,124,255,98,255,87,255,111,255,161,255,223,255,24,0,63,0,86,0,106,0,126,0,135,0,124,0,92,0, +37,0,234,255,203,255,213,255,229,255,224,255,211,255,217,255,229,255,233,255,241,255,11,0,32,0,36,0,47,0,78,0, +107,0,122,0,144,0,175,0,171,0,114,0,46,0,11,0,245,255,203,255,149,255,109,255,79,255,47,255,25,255,29,255, +56,255,89,255,115,255,126,255,124,255,120,255,112,255,94,255,72,255,66,255,78,255,96,255,110,255,116,255,112,255,107,255, +105,255,103,255,115,255,162,255,232,255,28,0,40,0,27,0,5,0,220,255,161,255,102,255,52,255,248,254,159,254,64,254, +7,254,252,253,10,254,47,254,113,254,195,254,16,255,99,255,188,255,252,255,14,0,5,0,230,255,173,255,113,255,81,255, +70,255,58,255,58,255,90,255,147,255,222,255,57,0,147,0,204,0,225,0,229,0,237,0,246,0,244,0,228,0,213,0, +205,0,196,0,178,0,162,0,163,0,192,0,0,1,90,1,175,1,240,1,32,2,52,2,36,2,3,2,214,1,133,1, +33,1,217,0,175,0,121,0,68,0,57,0,70,0,63,0,47,0,50,0,52,0,13,0,201,255,150,255,155,255,212,255, +26,0,78,0,112,0,137,0,153,0,162,0,160,0,135,0,88,0,30,0,212,255,117,255,27,255,216,254,160,254,131,254, +169,254,2,255,87,255,167,255,26,0,166,0,29,1,111,1,155,1,151,1,122,1,100,1,74,1,17,1,199,0,143,0, +113,0,96,0,77,0,63,0,80,0,137,0,199,0,226,0,222,0,204,0,174,0,145,0,125,0,105,0,79,0,65,0, +64,0,58,0,59,0,89,0,133,0,179,0,249,0,81,1,141,1,149,1,117,1,54,1,226,0,151,0,93,0,32,0, +231,255,186,255,143,255,104,255,101,255,128,255,145,255,147,255,152,255,153,255,141,255,138,255,156,255,182,255,207,255,226,255, +233,255,223,255,202,255,173,255,151,255,156,255,164,255,149,255,136,255,150,255,158,255,140,255,137,255,169,255,204,255,229,255, +9,0,47,0,73,0,90,0,87,0,38,0,218,255,157,255,121,255,107,255,124,255,151,255,153,255,143,255,163,255,213,255, +8,0,46,0,68,0,84,0,108,0,130,0,110,0,46,0,236,255,192,255,169,255,158,255,141,255,115,255,107,255,126,255, +144,255,165,255,230,255,67,0,118,0,120,0,110,0,77,0,3,0,181,255,135,255,95,255,41,255,239,254,173,254,97,254, +48,254,59,254,118,254,199,254,36,255,131,255,218,255,35,0,86,0,114,0,125,0,99,0,11,0,151,255,55,255,233,254, +167,254,153,254,200,254,9,255,71,255,145,255,212,255,247,255,16,0,54,0,73,0,51,0,5,0,212,255,173,255,151,255, +134,255,113,255,119,255,173,255,228,255,244,255,241,255,253,255,22,0,59,0,109,0,156,0,179,0,173,0,144,0,120,0, +141,0,194,0,225,0,225,0,224,0,222,0,191,0,144,0,103,0,62,0,16,0,222,255,162,255,95,255,54,255,50,255, +71,255,121,255,208,255,26,0,43,0,21,0,251,255,222,255,191,255,175,255,173,255,172,255,172,255,167,255,156,255,165,255, +219,255,43,0,130,0,223,0,46,1,83,1,77,1,37,1,221,0,139,0,81,0,52,0,30,0,12,0,7,0,16,0, +48,0,100,0,141,0,156,0,163,0,166,0,150,0,127,0,124,0,123,0,104,0,95,0,122,0,164,0,198,0,220,0, +229,0,231,0,248,0,20,1,26,1,1,1,222,0,185,0,137,0,80,0,24,0,237,255,206,255,174,255,127,255,77,255, +42,255,14,255,246,254,245,254,10,255,29,255,41,255,61,255,72,255,64,255,63,255,75,255,72,255,58,255,72,255,115,255, +131,255,101,255,58,255,35,255,29,255,18,255,242,254,194,254,152,254,122,254,105,254,118,254,168,254,240,254,63,255,141,255, +200,255,227,255,236,255,245,255,250,255,248,255,246,255,232,255,200,255,182,255,214,255,28,0,107,0,175,0,220,0,240,0, +242,0,233,0,213,0,188,0,168,0,141,0,98,0,56,0,33,0,24,0,18,0,12,0,14,0,37,0,80,0,116,0, +113,0,74,0,21,0,233,255,209,255,206,255,196,255,151,255,81,255,18,255,243,254,247,254,23,255,72,255,126,255,170,255, +193,255,182,255,148,255,127,255,141,255,169,255,177,255,163,255,145,255,141,255,148,255,162,255,183,255,206,255,221,255,224,255, +222,255,215,255,202,255,191,255,191,255,186,255,161,255,135,255,146,255,191,255,221,255,226,255,1,0,81,0,164,0,209,0, +222,0,216,0,184,0,138,0,109,0,101,0,99,0,94,0,73,0,26,0,237,255,231,255,251,255,15,0,40,0,83,0, +115,0,121,0,126,0,145,0,160,0,153,0,136,0,117,0,92,0,57,0,13,0,230,255,212,255,208,255,202,255,197,255, +207,255,228,255,243,255,245,255,235,255,216,255,195,255,177,255,149,255,107,255,70,255,50,255,44,255,51,255,72,255,98,255, +129,255,169,255,202,255,207,255,196,255,206,255,238,255,6,0,8,0,3,0,1,0,255,255,250,255,3,0,34,0,72,0, +104,0,140,0,190,0,232,0,248,0,252,0,252,0,232,0,195,0,170,0,166,0,174,0,195,0,215,0,211,0,191,0, +198,0,226,0,225,0,193,0,167,0,145,0,108,0,78,0,77,0,81,0,68,0,58,0,59,0,61,0,64,0,74,0, +79,0,77,0,81,0,89,0,88,0,81,0,70,0,46,0,18,0,5,0,2,0,253,255,248,255,241,255,228,255,228,255, +252,255,15,0,12,0,12,0,28,0,41,0,51,0,69,0,77,0,59,0,39,0,39,0,44,0,41,0,40,0,52,0, +71,0,85,0,86,0,79,0,82,0,104,0,141,0,179,0,204,0,205,0,196,0,191,0,185,0,176,0,162,0,131,0, +80,0,42,0,36,0,30,0,6,0,250,255,11,0,29,0,25,0,9,0,250,255,233,255,207,255,168,255,125,255,98,255, +85,255,70,255,55,255,53,255,66,255,81,255,89,255,92,255,94,255,101,255,110,255,115,255,122,255,135,255,146,255,152,255, +157,255,160,255,160,255,173,255,201,255,218,255,211,255,200,255,210,255,235,255,249,255,230,255,196,255,186,255,203,255,214,255, +206,255,200,255,204,255,204,255,192,255,167,255,132,255,100,255,88,255,86,255,79,255,66,255,51,255,41,255,52,255,78,255, +95,255,102,255,125,255,162,255,192,255,210,255,218,255,213,255,199,255,185,255,172,255,165,255,169,255,173,255,170,255,177,255, +196,255,206,255,205,255,213,255,232,255,245,255,251,255,255,255,4,0,15,0,30,0,40,0,47,0,65,0,87,0,103,0, +120,0,141,0,154,0,160,0,172,0,179,0,156,0,105,0,51,0,15,0,5,0,5,0,248,255,226,255,216,255,215,255, +215,255,223,255,240,255,246,255,228,255,201,255,181,255,173,255,179,255,189,255,198,255,210,255,222,255,223,255,215,255,215,255, +223,255,228,255,228,255,225,255,219,255,217,255,225,255,236,255,244,255,254,255,14,0,32,0,47,0,58,0,60,0,61,0, +64,0,61,0,49,0,36,0,23,0,253,255,214,255,182,255,172,255,186,255,210,255,227,255,232,255,239,255,250,255,3,0, +5,0,0,0,241,255,221,255,208,255,207,255,215,255,223,255,234,255,248,255,5,0,11,0,6,0,254,255,0,0,11,0, +22,0,27,0,30,0,32,0,29,0,25,0,27,0,45,0,74,0,99,0,111,0,112,0,110,0,110,0,105,0,91,0, +71,0,52,0,39,0,34,0,39,0,53,0,66,0,66,0,52,0,41,0,46,0,59,0,59,0,35,0,2,0,233,255, +219,255,209,255,205,255,219,255,254,255,35,0,60,0,76,0,93,0,109,0,107,0,78,0,42,0,19,0,8,0,246,255, +212,255,181,255,175,255,194,255,221,255,241,255,250,255,252,255,250,255,247,255,249,255,1,0,3,0,248,255,229,255,218,255, +225,255,243,255,3,0,11,0,17,0,23,0,27,0,23,0,11,0,248,255,220,255,185,255,149,255,125,255,120,255,127,255, +130,255,125,255,119,255,124,255,141,255,158,255,164,255,158,255,147,255,135,255,127,255,129,255,144,255,167,255,188,255,203,255, +220,255,244,255,10,0,20,0,16,0,9,0,6,0,0,0,239,255,216,255,200,255,197,255,196,255,194,255,198,255,212,255, +229,255,237,255,237,255,236,255,229,255,209,255,178,255,155,255,154,255,160,255,156,255,143,255,144,255,168,255,200,255,220,255, +231,255,243,255,4,0,17,0,27,0,46,0,82,0,118,0,137,0,139,0,137,0,139,0,138,0,130,0,117,0,106,0, +92,0,72,0,50,0,34,0,21,0,3,0,232,255,210,255,202,255,203,255,201,255,191,255,179,255,171,255,171,255,175,255, +181,255,185,255,186,255,187,255,192,255,205,255,220,255,233,255,243,255,1,0,21,0,44,0,62,0,69,0,66,0,60,0, +60,0,68,0,80,0,86,0,86,0,87,0,98,0,116,0,131,0,139,0,140,0,138,0,130,0,119,0,112,0,116,0, +123,0,126,0,120,0,115,0,118,0,126,0,128,0,121,0,112,0,108,0,115,0,129,0,139,0,138,0,122,0,101,0, +85,0,80,0,81,0,83,0,81,0,78,0,75,0,72,0,68,0,62,0,51,0,38,0,31,0,39,0,57,0,72,0, +73,0,67,0,64,0,65,0,63,0,51,0,32,0,14,0,0,0,244,255,232,255,220,255,209,255,201,255,198,255,204,255, +216,255,226,255,240,255,10,0,49,0,85,0,101,0,101,0,101,0,108,0,106,0,85,0,55,0,36,0,26,0,8,0, +227,255,191,255,182,255,203,255,229,255,238,255,230,255,220,255,220,255,231,255,247,255,7,0,20,0,33,0,54,0,89,0, +128,0,152,0,150,0,132,0,114,0,101,0,91,0,82,0,75,0,72,0,66,0,50,0,31,0,23,0,29,0,34,0, +24,0,255,255,229,255,205,255,181,255,156,255,135,255,118,255,96,255,68,255,45,255,41,255,55,255,76,255,91,255,96,255, +91,255,81,255,74,255,69,255,65,255,60,255,53,255,49,255,56,255,83,255,120,255,150,255,164,255,176,255,194,255,212,255, +217,255,211,255,197,255,181,255,165,255,154,255,145,255,133,255,119,255,112,255,115,255,125,255,138,255,156,255,177,255,199,255, +224,255,254,255,27,0,49,0,72,0,101,0,130,0,145,0,143,0,132,0,115,0,90,0,60,0,29,0,0,0,234,255, +227,255,232,255,235,255,232,255,232,255,242,255,255,255,10,0,26,0,45,0,52,0,34,0,5,0,237,255,224,255,215,255, +209,255,203,255,199,255,201,255,210,255,219,255,224,255,234,255,3,0,31,0,43,0,38,0,28,0,21,0,16,0,17,0, +26,0,33,0,27,0,20,0,24,0,38,0,46,0,42,0,31,0,21,0,15,0,18,0,29,0,39,0,50,0,66,0, +83,0,86,0,73,0,58,0,53,0,49,0,37,0,21,0,7,0,246,255,224,255,208,255,211,255,232,255,11,0,48,0, +76,0,92,0,102,0,113,0,122,0,122,0,121,0,125,0,126,0,109,0,83,0,66,0,65,0,76,0,90,0,99,0, +93,0,75,0,58,0,54,0,59,0,70,0,84,0,93,0,86,0,64,0,46,0,40,0,38,0,36,0,43,0,55,0, +56,0,42,0,30,0,32,0,41,0,42,0,38,0,36,0,35,0,31,0,27,0,28,0,35,0,45,0,52,0,50,0, +37,0,16,0,252,255,236,255,223,255,215,255,214,255,223,255,242,255,10,0,31,0,45,0,55,0,67,0,74,0,63,0, +34,0,6,0,244,255,237,255,234,255,236,255,243,255,254,255,16,0,41,0,68,0,88,0,105,0,122,0,131,0,119,0, +92,0,68,0,53,0,39,0,16,0,251,255,244,255,251,255,8,0,19,0,26,0,29,0,30,0,29,0,22,0,5,0, +233,255,204,255,181,255,162,255,143,255,124,255,111,255,108,255,111,255,124,255,151,255,184,255,204,255,206,255,202,255,208,255, +212,255,195,255,155,255,116,255,92,255,76,255,55,255,33,255,22,255,23,255,30,255,41,255,56,255,63,255,52,255,33,255, +35,255,67,255,108,255,134,255,145,255,158,255,173,255,180,255,178,255,174,255,170,255,154,255,123,255,92,255,73,255,60,255, +50,255,60,255,110,255,189,255,4,0,40,0,50,0,47,0,32,0,3,0,234,255,245,255,38,0,89,0,103,0,83,0, +62,0,58,0,51,0,14,0,207,255,157,255,140,255,140,255,129,255,106,255,90,255,94,255,109,255,133,255,173,255,220,255, +244,255,237,255,237,255,24,0,94,0,142,0,152,0,161,0,185,0,190,0,140,0,60,0,4,0,239,255,221,255,195,255, +185,255,208,255,235,255,240,255,244,255,34,0,121,0,208,0,7,1,28,1,21,1,237,0,169,0,104,0,66,0,52,0, +37,0,10,0,234,255,209,255,197,255,202,255,226,255,7,0,44,0,68,0,73,0,60,0,35,0,14,0,5,0,8,0, +21,0,48,0,86,0,118,0,126,0,116,0,116,0,139,0,169,0,184,0,173,0,141,0,93,0,40,0,2,0,249,255, +7,0,20,0,23,0,17,0,8,0,3,0,16,0,56,0,108,0,145,0,159,0,160,0,152,0,128,0,85,0,49,0, +39,0,45,0,39,0,14,0,241,255,220,255,202,255,193,255,204,255,241,255,29,0,57,0,61,0,50,0,36,0,33,0, +52,0,88,0,119,0,130,0,125,0,117,0,108,0,96,0,89,0,98,0,117,0,129,0,128,0,130,0,148,0,185,0, +238,0,49,1,110,1,133,1,97,1,22,1,196,0,119,0,31,0,180,255,71,255,241,254,178,254,115,254,34,254,204,253, +153,253,169,253,243,253,79,254,154,254,215,254,25,255,90,255,131,255,138,255,126,255,99,255,37,255,188,254,67,254,226,253, +165,253,127,253,123,253,179,253,44,254,199,254,106,255,26,0,226,0,176,1,99,2,245,2,112,3,214,3,19,4,32,4, +13,4,236,3,188,3,120,3,42,3,222,2,142,2,36,2,155,1,252,0,84,0,173,255,14,255,126,254,252,253,135,253, +43,253,251,252,244,252,1,253,28,253,85,253,186,253,44,254,121,254,146,254,151,254,164,254,177,254,173,254,173,254,209,254, +18,255,73,255,101,255,133,255,200,255,33,0,104,0,143,0,157,0,153,0,126,0,90,0,73,0,81,0,81,0,53,0, +21,0,18,0,36,0,37,0,10,0,244,255,6,0,59,0,117,0,166,0,208,0,241,0,9,1,39,1,95,1,165,1, +209,1,195,1,130,1,39,1,187,0,63,0,198,255,111,255,71,255,59,255,48,255,40,255,50,255,88,255,152,255,234,255, +73,0,166,0,232,0,3,1,255,0,233,0,201,0,160,0,116,0,72,0,22,0,211,255,129,255,49,255,244,254,201,254, +163,254,127,254,103,254,96,254,102,254,114,254,134,254,176,254,244,254,73,255,161,255,239,255,38,0,58,0,47,0,25,0, +18,0,30,0,40,0,33,0,20,0,18,0,29,0,35,0,36,0,50,0,91,0,145,0,187,0,213,0,238,0,14,1, +47,1,73,1,99,1,129,1,152,1,152,1,130,1,99,1,66,1,24,1,231,0,187,0,157,0,133,0,101,0,63,0, +38,0,32,0,41,0,58,0,80,0,102,0,113,0,110,0,104,0,106,0,114,0,113,0,96,0,71,0,43,0,9,0, +227,255,199,255,192,255,203,255,217,255,228,255,239,255,251,255,247,255,222,255,189,255,166,255,151,255,124,255,71,255,5,255, +200,254,154,254,118,254,93,254,88,254,102,254,123,254,136,254,143,254,159,254,194,254,247,254,53,255,117,255,172,255,213,255, +241,255,9,0,36,0,64,0,85,0,95,0,93,0,82,0,67,0,54,0,52,0,64,0,87,0,118,0,157,0,196,0, +226,0,239,0,240,0,244,0,255,0,7,1,255,0,227,0,189,0,149,0,111,0,82,0,65,0,56,0,41,0,4,0, +204,255,145,255,93,255,48,255,0,255,200,254,139,254,83,254,45,254,29,254,31,254,37,254,40,254,50,254,84,254,145,254, +216,254,20,255,60,255,90,255,116,255,138,255,146,255,141,255,136,255,145,255,167,255,194,255,214,255,225,255,239,255,6,0, +36,0,62,0,76,0,86,0,98,0,114,0,127,0,135,0,141,0,150,0,156,0,150,0,134,0,121,0,122,0,134,0, +149,0,165,0,189,0,225,0,13,1,52,1,83,1,113,1,146,1,176,1,193,1,190,1,168,1,135,1,91,1,35,1, +227,0,165,0,113,0,70,0,31,0,253,255,232,255,232,255,249,255,15,0,32,0,43,0,51,0,54,0,49,0,33,0, +6,0,226,255,179,255,125,255,74,255,40,255,24,255,17,255,11,255,4,255,2,255,11,255,29,255,46,255,55,255,54,255, +48,255,49,255,60,255,77,255,94,255,105,255,111,255,117,255,127,255,139,255,150,255,158,255,163,255,169,255,181,255,203,255, +232,255,9,0,43,0,81,0,127,0,179,0,232,0,27,1,78,1,128,1,166,1,179,1,164,1,139,1,120,1,110,1, +100,1,81,1,57,1,36,1,20,1,4,1,243,0,226,0,214,0,206,0,198,0,190,0,182,0,169,0,153,0,134,0, +115,0,94,0,66,0,27,0,237,255,191,255,146,255,101,255,60,255,27,255,9,255,2,255,2,255,6,255,14,255,26,255, +39,255,55,255,75,255,93,255,99,255,90,255,73,255,60,255,53,255,39,255,11,255,230,254,199,254,180,254,171,254,172,254, +192,254,236,254,43,255,110,255,172,255,229,255,26,0,71,0,106,0,129,0,144,0,152,0,154,0,152,0,148,0,147,0, +148,0,153,0,165,0,183,0,203,0,221,0,237,0,254,0,21,1,48,1,77,1,100,1,112,1,107,1,85,1,47,1, +254,0,199,0,144,0,90,0,43,0,5,0,228,255,194,255,157,255,125,255,109,255,104,255,102,255,93,255,77,255,59,255, +45,255,34,255,21,255,8,255,2,255,0,255,243,254,207,254,163,254,134,254,131,254,138,254,139,254,138,254,143,254,161,254, +189,254,230,254,24,255,73,255,110,255,135,255,155,255,176,255,203,255,233,255,5,0,25,0,32,0,27,0,21,0,24,0, +46,0,82,0,118,0,150,0,185,0,224,0,255,0,12,1,15,1,24,1,32,1,21,1,249,0,226,0,216,0,209,0, +190,0,168,0,153,0,144,0,131,0,113,0,104,0,108,0,117,0,122,0,117,0,106,0,94,0,75,0,47,0,16,0, +247,255,225,255,196,255,160,255,130,255,109,255,90,255,70,255,58,255,61,255,65,255,60,255,56,255,66,255,85,255,104,255, +124,255,152,255,181,255,198,255,205,255,212,255,219,255,222,255,219,255,214,255,204,255,186,255,165,255,154,255,157,255,167,255, +179,255,197,255,223,255,253,255,24,0,45,0,61,0,77,0,99,0,126,0,149,0,160,0,162,0,162,0,168,0,179,0, +191,0,193,0,185,0,175,0,171,0,167,0,156,0,146,0,151,0,166,0,171,0,165,0,161,0,166,0,168,0,161,0, +153,0,148,0,140,0,123,0,104,0,89,0,72,0,50,0,29,0,17,0,10,0,2,0,249,255,239,255,228,255,216,255, +210,255,212,255,216,255,214,255,207,255,200,255,193,255,183,255,168,255,148,255,132,255,122,255,120,255,119,255,118,255,120,255, +132,255,152,255,175,255,201,255,229,255,255,255,19,0,33,0,43,0,47,0,45,0,42,0,42,0,40,0,32,0,19,0, +9,0,1,0,253,255,2,0,19,0,40,0,55,0,63,0,72,0,84,0,98,0,110,0,121,0,131,0,135,0,131,0, +118,0,103,0,87,0,73,0,57,0,39,0,19,0,254,255,235,255,220,255,208,255,199,255,194,255,192,255,193,255,194,255, +193,255,187,255,178,255,167,255,156,255,146,255,136,255,125,255,111,255,94,255,77,255,63,255,53,255,50,255,52,255,56,255, +60,255,63,255,65,255,71,255,79,255,87,255,94,255,99,255,103,255,104,255,103,255,104,255,113,255,130,255,148,255,166,255, +183,255,203,255,223,255,240,255,0,0,19,0,40,0,61,0,80,0,101,0,125,0,147,0,165,0,178,0,188,0,196,0, +197,0,191,0,181,0,171,0,160,0,149,0,139,0,133,0,133,0,138,0,143,0,147,0,148,0,149,0,152,0,156,0, +155,0,145,0,125,0,100,0,76,0,54,0,35,0,18,0,1,0,240,255,221,255,202,255,184,255,167,255,153,255,147,255, +149,255,153,255,154,255,152,255,149,255,149,255,149,255,148,255,145,255,139,255,134,255,135,255,140,255,144,255,141,255,135,255, +134,255,139,255,144,255,150,255,161,255,181,255,204,255,221,255,237,255,3,0,26,0,39,0,39,0,38,0,42,0,45,0, +40,0,37,0,50,0,71,0,85,0,87,0,95,0,119,0,149,0,166,0,172,0,179,0,191,0,198,0,191,0,178,0, +168,0,161,0,149,0,131,0,114,0,99,0,81,0,60,0,39,0,23,0,12,0,2,0,251,255,248,255,248,255,247,255, +241,255,235,255,232,255,234,255,233,255,227,255,216,255,204,255,191,255,177,255,162,255,153,255,155,255,160,255,154,255,135,255, +119,255,120,255,138,255,156,255,164,255,169,255,181,255,197,255,208,255,209,255,207,255,208,255,212,255,215,255,216,255,219,255, +227,255,238,255,253,255,11,0,22,0,35,0,54,0,77,0,95,0,102,0,105,0,112,0,122,0,128,0,125,0,116,0, +108,0,104,0,103,0,103,0,99,0,86,0,68,0,50,0,39,0,34,0,28,0,18,0,6,0,249,255,236,255,228,255, +228,255,233,255,236,255,232,255,228,255,223,255,212,255,189,255,162,255,145,255,139,255,138,255,133,255,130,255,132,255,133,255, +126,255,115,255,108,255,110,255,112,255,106,255,95,255,86,255,84,255,86,255,92,255,100,255,105,255,102,255,94,255,89,255, +91,255,97,255,101,255,106,255,114,255,126,255,135,255,141,255,150,255,168,255,190,255,212,255,230,255,249,255,11,0,25,0, +34,0,41,0,47,0,51,0,50,0,48,0,53,0,66,0,76,0,79,0,83,0,92,0,102,0,107,0,103,0,101,0, +107,0,116,0,119,0,115,0,109,0,103,0,96,0,86,0,73,0,60,0,49,0,39,0,31,0,25,0,18,0,10,0, +4,0,5,0,13,0,16,0,11,0,2,0,251,255,247,255,239,255,226,255,217,255,218,255,221,255,214,255,200,255,191,255, +188,255,185,255,181,255,182,255,193,255,207,255,218,255,228,255,236,255,239,255,234,255,224,255,213,255,206,255,203,255,198,255, +189,255,184,255,193,255,216,255,242,255,10,0,34,0,58,0,80,0,103,0,127,0,153,0,182,0,213,0,238,0,252,0, +252,0,244,0,230,0,215,0,198,0,174,0,140,0,108,0,89,0,80,0,71,0,65,0,63,0,61,0,57,0,51,0, +44,0,33,0,25,0,36,0,71,0,119,0,167,0,214,0,5,1,45,1,71,1,83,1,84,1,74,1,49,1,253,0, +175,0,77,0,225,255,117,255,15,255,184,254,121,254,81,254,47,254,255,253,187,253,110,253,39,253,246,252,239,252,43,253, +177,253,110,254,62,255,9,0,192,0,91,1,207,1,29,2,74,2,94,2,83,2,32,2,195,1,65,1,170,0,21,0, +156,255,75,255,29,255,11,255,21,255,52,255,94,255,146,255,209,255,20,0,80,0,135,0,193,0,248,0,24,1,23,1, +247,0,192,0,121,0,45,0,224,255,150,255,86,255,44,255,36,255,58,255,105,255,167,255,234,255,37,0,80,0,113,0, +142,0,166,0,180,0,184,0,177,0,151,0,96,0,18,0,190,255,119,255,74,255,59,255,69,255,92,255,115,255,130,255, +136,255,135,255,131,255,133,255,151,255,190,255,233,255,5,0,16,0,19,0,23,0,22,0,11,0,248,255,225,255,203,255, +187,255,174,255,162,255,157,255,164,255,174,255,174,255,167,255,165,255,167,255,164,255,160,255,168,255,188,255,211,255,230,255, +247,255,2,0,5,0,255,255,239,255,213,255,185,255,170,255,169,255,180,255,205,255,245,255,32,0,70,0,108,0,145,0, +171,0,172,0,143,0,91,0,29,0,226,255,179,255,143,255,120,255,115,255,126,255,146,255,167,255,194,255,229,255,12,0, +43,0,62,0,69,0,68,0,56,0,33,0,4,0,234,255,213,255,196,255,186,255,192,255,214,255,248,255,34,0,79,0, +124,0,165,0,195,0,204,0,186,0,155,0,121,0,84,0,37,0,238,255,189,255,151,255,122,255,102,255,96,255,109,255, +137,255,176,255,228,255,39,0,115,0,191,0,6,1,68,1,112,1,130,1,123,1,93,1,38,1,217,0,130,0,40,0, +205,255,122,255,63,255,28,255,7,255,253,254,12,255,50,255,101,255,153,255,205,255,252,255,30,0,52,0,67,0,72,0, +61,0,42,0,25,0,10,0,249,255,233,255,227,255,230,255,239,255,253,255,15,0,25,0,19,0,3,0,244,255,235,255, +232,255,234,255,239,255,236,255,225,255,210,255,199,255,191,255,184,255,181,255,185,255,196,255,208,255,221,255,237,255,2,0, +23,0,42,0,64,0,92,0,121,0,140,0,149,0,156,0,162,0,162,0,153,0,132,0,100,0,60,0,19,0,239,255, +211,255,199,255,205,255,222,255,239,255,5,0,41,0,83,0,117,0,136,0,143,0,139,0,124,0,98,0,61,0,14,0, +224,255,191,255,176,255,171,255,169,255,166,255,164,255,170,255,186,255,201,255,205,255,204,255,207,255,212,255,214,255,210,255, +205,255,195,255,180,255,161,255,142,255,123,255,106,255,95,255,94,255,109,255,137,255,175,255,214,255,254,255,40,0,82,0, +113,0,127,0,121,0,102,0,76,0,42,0,253,255,203,255,158,255,121,255,93,255,79,255,82,255,93,255,106,255,132,255, +174,255,222,255,9,0,54,0,101,0,144,0,171,0,182,0,177,0,156,0,123,0,87,0,52,0,21,0,248,255,223,255, +203,255,191,255,190,255,201,255,222,255,248,255,14,0,23,0,20,0,7,0,244,255,226,255,212,255,200,255,190,255,190,255, +198,255,202,255,194,255,189,255,200,255,224,255,252,255,29,0,68,0,102,0,120,0,126,0,124,0,111,0,86,0,58,0, +32,0,2,0,225,255,194,255,169,255,152,255,143,255,143,255,154,255,172,255,193,255,210,255,219,255,225,255,235,255,255,255, +23,0,40,0,49,0,55,0,58,0,55,0,52,0,57,0,70,0,80,0,81,0,81,0,85,0,94,0,102,0,108,0, +114,0,118,0,117,0,110,0,101,0,91,0,81,0,70,0,60,0,52,0,44,0,34,0,22,0,8,0,250,255,240,255, +232,255,222,255,211,255,203,255,202,255,211,255,231,255,2,0,29,0,51,0,73,0,93,0,103,0,95,0,75,0,49,0, +19,0,241,255,208,255,178,255,160,255,157,255,166,255,181,255,204,255,236,255,16,0,46,0,65,0,78,0,88,0,89,0, +81,0,68,0,52,0,34,0,17,0,2,0,249,255,246,255,248,255,250,255,255,255,10,0,26,0,41,0,50,0,53,0, +49,0,44,0,38,0,25,0,2,0,230,255,210,255,200,255,197,255,202,255,217,255,234,255,248,255,8,0,29,0,49,0, +64,0,76,0,82,0,80,0,71,0,57,0,39,0,17,0,248,255,223,255,197,255,175,255,161,255,156,255,156,255,156,255, +155,255,155,255,160,255,169,255,179,255,186,255,194,255,200,255,198,255,193,255,189,255,190,255,197,255,214,255,239,255,1,0, +4,0,0,0,255,255,2,0,3,0,255,255,255,255,9,0,24,0,36,0,37,0,29,0,20,0,12,0,0,0,240,255, +221,255,203,255,185,255,167,255,147,255,130,255,120,255,119,255,123,255,135,255,160,255,195,255,226,255,249,255,10,0,25,0, +34,0,36,0,31,0,23,0,11,0,253,255,241,255,229,255,211,255,190,255,172,255,162,255,159,255,161,255,166,255,172,255, +180,255,193,255,215,255,241,255,5,0,16,0,21,0,25,0,26,0,22,0,12,0,0,0,243,255,232,255,226,255,225,255, +225,255,221,255,211,255,198,255,192,255,196,255,211,255,228,255,241,255,252,255,10,0,29,0,45,0,55,0,60,0,63,0, +56,0,36,0,10,0,248,255,241,255,238,255,241,255,252,255,12,0,25,0,37,0,47,0,53,0,58,0,62,0,63,0, +56,0,49,0,49,0,55,0,61,0,66,0,69,0,65,0,55,0,45,0,35,0,27,0,21,0,20,0,22,0,27,0, +33,0,36,0,35,0,34,0,34,0,34,0,31,0,29,0,27,0,24,0,19,0,15,0,10,0,4,0,0,0,3,0, +7,0,9,0,7,0,8,0,15,0,26,0,32,0,28,0,20,0,17,0,20,0,22,0,19,0,10,0,1,0,252,255, +254,255,2,0,6,0,17,0,34,0,49,0,58,0,66,0,74,0,76,0,72,0,70,0,71,0,67,0,52,0,35,0, +22,0,12,0,255,255,237,255,218,255,210,255,217,255,230,255,236,255,235,255,237,255,245,255,255,255,6,0,12,0,18,0, +25,0,30,0,33,0,36,0,41,0,42,0,36,0,29,0,28,0,30,0,29,0,26,0,28,0,30,0,24,0,12,0, +0,0,246,255,234,255,224,255,220,255,215,255,206,255,191,255,177,255,167,255,162,255,159,255,156,255,156,255,167,255,188,255, +209,255,222,255,232,255,247,255,8,0,18,0,20,0,22,0,19,0,8,0,245,255,226,255,212,255,201,255,193,255,189,255, +188,255,186,255,181,255,177,255,178,255,184,255,196,255,207,255,218,255,230,255,245,255,6,0,24,0,43,0,56,0,56,0, +46,0,32,0,19,0,3,0,237,255,214,255,197,255,190,255,190,255,193,255,201,255,215,255,231,255,240,255,241,255,241,255, +242,255,240,255,234,255,232,255,232,255,231,255,227,255,225,255,224,255,225,255,229,255,241,255,4,0,27,0,43,0,47,0, +43,0,43,0,53,0,61,0,57,0,44,0,29,0,14,0,251,255,229,255,208,255,191,255,178,255,170,255,171,255,178,255, +184,255,194,255,213,255,242,255,9,0,16,0,16,0,21,0,31,0,42,0,50,0,54,0,51,0,42,0,29,0,12,0, +254,255,246,255,239,255,225,255,206,255,201,255,210,255,222,255,234,255,255,255,30,0,62,0,89,0,110,0,123,0,129,0, +129,0,123,0,111,0,103,0,103,0,108,0,113,0,121,0,133,0,144,0,151,0,155,0,154,0,147,0,133,0,111,0, +76,0,33,0,250,255,219,255,194,255,171,255,152,255,135,255,120,255,111,255,105,255,99,255,94,255,96,255,104,255,110,255, +112,255,117,255,130,255,149,255,171,255,198,255,227,255,251,255,11,0,24,0,40,0,59,0,74,0,82,0,89,0,97,0, +103,0,102,0,96,0,90,0,91,0,97,0,98,0,89,0,77,0,73,0,78,0,83,0,84,0,79,0,73,0,70,0, +70,0,69,0,68,0,65,0,58,0,45,0,33,0,27,0,27,0,27,0,31,0,42,0,54,0,56,0,45,0,31,0, +25,0,24,0,18,0,1,0,237,255,218,255,202,255,190,255,184,255,187,255,197,255,206,255,210,255,212,255,215,255,220,255, +222,255,217,255,208,255,200,255,192,255,176,255,154,255,135,255,126,255,122,255,119,255,120,255,125,255,130,255,135,255,146,255, +164,255,180,255,188,255,192,255,197,255,205,255,213,255,218,255,217,255,216,255,221,255,230,255,238,255,244,255,1,0,22,0, +46,0,64,0,80,0,93,0,103,0,105,0,105,0,106,0,105,0,97,0,86,0,76,0,64,0,49,0,36,0,28,0, +24,0,21,0,20,0,22,0,21,0,18,0,16,0,13,0,5,0,252,255,251,255,255,255,255,255,254,255,254,255,253,255, +252,255,1,0,11,0,15,0,12,0,7,0,254,255,243,255,234,255,229,255,222,255,212,255,208,255,213,255,215,255,208,255, +197,255,191,255,192,255,197,255,202,255,201,255,198,255,200,255,207,255,212,255,211,255,212,255,218,255,226,255,232,255,236,255, +241,255,244,255,249,255,255,255,3,0,4,0,6,0,12,0,20,0,27,0,36,0,47,0,52,0,54,0,59,0,69,0, +76,0,74,0,68,0,66,0,66,0,63,0,58,0,56,0,54,0,56,0,65,0,80,0,88,0,88,0,88,0,88,0, +81,0,71,0,60,0,46,0,28,0,13,0,4,0,249,255,234,255,220,255,207,255,197,255,189,255,181,255,171,255,162,255, +156,255,154,255,152,255,156,255,166,255,179,255,189,255,196,255,207,255,223,255,238,255,246,255,252,255,6,0,15,0,22,0, +29,0,36,0,36,0,31,0,30,0,36,0,43,0,48,0,49,0,46,0,44,0,47,0,53,0,58,0,60,0,64,0, +68,0,66,0,59,0,52,0,48,0,47,0,46,0,43,0,38,0,35,0,37,0,40,0,42,0,46,0,55,0,63,0, +66,0,63,0,61,0,61,0,60,0,57,0,52,0,45,0,39,0,33,0,30,0,29,0,27,0,26,0,26,0,26,0, +26,0,25,0,24,0,19,0,4,0,241,255,223,255,209,255,196,255,180,255,164,255,156,255,156,255,158,255,157,255,159,255, +169,255,181,255,189,255,196,255,200,255,199,255,195,255,193,255,195,255,196,255,193,255,188,255,180,255,174,255,172,255,175,255, +180,255,189,255,203,255,221,255,240,255,254,255,6,0,12,0,21,0,27,0,28,0,27,0,26,0,22,0,18,0,17,0, +18,0,16,0,12,0,7,0,2,0,0,0,0,0,0,0,254,255,254,255,1,0,3,0,0,0,252,255,249,255,247,255, +242,255,234,255,225,255,218,255,212,255,205,255,198,255,195,255,194,255,197,255,202,255,210,255,218,255,224,255,226,255,228,255, +232,255,237,255,238,255,235,255,232,255,228,255,220,255,212,255,204,255,198,255,197,255,197,255,193,255,187,255,186,255,193,255, +205,255,215,255,222,255,230,255,239,255,248,255,254,255,1,0,5,0,11,0,17,0,22,0,23,0,18,0,11,0,7,0, +9,0,13,0,16,0,15,0,15,0,19,0,28,0,37,0,42,0,46,0,52,0,55,0,52,0,48,0,46,0,46,0, +45,0,42,0,39,0,33,0,27,0,19,0,11,0,4,0,0,0,1,0,1,0,255,255,253,255,254,255,1,0,2,0, +0,0,255,255,255,255,254,255,251,255,246,255,245,255,246,255,241,255,234,255,230,255,233,255,235,255,236,255,237,255,242,255, +248,255,253,255,1,0,6,0,12,0,15,0,14,0,13,0,19,0,26,0,30,0,33,0,34,0,32,0,28,0,27,0, +24,0,20,0,20,0,25,0,32,0,38,0,45,0,55,0,67,0,77,0,82,0,81,0,78,0,74,0,71,0,64,0, +54,0,38,0,23,0,16,0,16,0,17,0,16,0,15,0,18,0,21,0,23,0,22,0,19,0,17,0,18,0,16,0, +14,0,15,0,15,0,11,0,6,0,5,0,3,0,252,255,243,255,238,255,236,255,237,255,237,255,236,255,235,255,234,255, +235,255,237,255,237,255,234,255,230,255,229,255,231,255,232,255,232,255,234,255,238,255,241,255,242,255,242,255,243,255,247,255, +251,255,254,255,253,255,253,255,255,255,2,0,2,0,2,0,3,0,4,0,6,0,12,0,21,0,29,0,31,0,31,0, +31,0,31,0,28,0,24,0,20,0,16,0,14,0,14,0,13,0,10,0,11,0,18,0,27,0,30,0,26,0,20,0, +16,0,10,0,0,0,244,255,233,255,224,255,219,255,219,255,220,255,218,255,216,255,218,255,221,255,221,255,220,255,219,255, +215,255,208,255,205,255,206,255,207,255,206,255,204,255,199,255,193,255,188,255,184,255,181,255,176,255,172,255,172,255,176,255, +180,255,183,255,188,255,199,255,208,255,214,255,218,255,221,255,223,255,226,255,229,255,227,255,222,255,216,255,211,255,206,255, +200,255,198,255,202,255,213,255,226,255,236,255,247,255,6,0,22,0,33,0,40,0,44,0,43,0,41,0,39,0,40,0, +41,0,40,0,34,0,28,0,28,0,30,0,27,0,24,0,28,0,35,0,40,0,39,0,36,0,31,0,26,0,22,0, +16,0,7,0,0,0,252,255,252,255,251,255,248,255,244,255,242,255,246,255,252,255,254,255,253,255,252,255,253,255,1,0, +5,0,6,0,4,0,1,0,254,255,247,255,239,255,231,255,224,255,218,255,217,255,220,255,222,255,225,255,229,255,232,255, +236,255,245,255,4,0,17,0,26,0,33,0,41,0,47,0,51,0,53,0,55,0,53,0,44,0,33,0,26,0,25,0, +25,0,24,0,25,0,29,0,35,0,44,0,55,0,64,0,69,0,69,0,68,0,68,0,65,0,59,0,54,0,51,0, +48,0,46,0,43,0,38,0,32,0,29,0,30,0,30,0,30,0,27,0,21,0,16,0,14,0,11,0,9,0,10,0, +14,0,17,0,19,0,21,0,24,0,25,0,23,0,19,0,13,0,9,0,5,0,1,0,253,255,252,255,251,255,248,255, +250,255,0,0,3,0,0,0,253,255,251,255,249,255,248,255,247,255,242,255,237,255,234,255,231,255,228,255,227,255,231,255, +236,255,238,255,239,255,240,255,245,255,252,255,1,0,4,0,7,0,13,0,18,0,20,0,23,0,24,0,21,0,16,0, +14,0,13,0,12,0,11,0,8,0,4,0,3,0,4,0,5,0,5,0,3,0,2,0,1,0,255,255,255,255,3,0, +5,0,3,0,0,0,1,0,3,0,0,0,250,255,244,255,241,255,237,255,232,255,225,255,217,255,211,255,211,255,212,255, +211,255,208,255,205,255,207,255,211,255,215,255,218,255,221,255,221,255,218,255,213,255,209,255,205,255,204,255,203,255,199,255, +191,255,183,255,181,255,182,255,185,255,189,255,195,255,202,255,211,255,222,255,233,255,238,255,239,255,241,255,246,255,251,255, +253,255,250,255,247,255,248,255,252,255,1,0,6,0,12,0,18,0,22,0,22,0,18,0,13,0,8,0,7,0,11,0, +14,0,13,0,10,0,9,0,11,0,10,0,8,0,7,0,6,0,7,0,10,0,14,0,16,0,16,0,18,0,22,0, +24,0,22,0,20,0,21,0,22,0,20,0,18,0,18,0,18,0,15,0,12,0,12,0,11,0,5,0,254,255,248,255, +245,255,244,255,246,255,245,255,242,255,242,255,244,255,244,255,244,255,244,255,247,255,250,255,252,255,252,255,250,255,252,255, +2,0,6,0,7,0,5,0,4,0,4,0,4,0,0,0,251,255,253,255,2,0,2,0,1,0,3,0,6,0,8,0, +12,0,20,0,25,0,26,0,25,0,25,0,26,0,29,0,30,0,27,0,21,0,18,0,17,0,16,0,15,0,17,0, +18,0,18,0,17,0,16,0,15,0,14,0,13,0,10,0,8,0,5,0,1,0,253,255,249,255,245,255,242,255,240,255, +238,255,234,255,233,255,234,255,235,255,236,255,240,255,246,255,250,255,254,255,5,0,15,0,21,0,22,0,24,0,28,0, +29,0,26,0,22,0,18,0,14,0,11,0,9,0,5,0,5,0,11,0,16,0,15,0,11,0,12,0,18,0,25,0, +29,0,33,0,38,0,46,0,52,0,50,0,44,0,41,0,41,0,42,0,40,0,35,0,29,0,24,0,17,0,10,0, +5,0,6,0,6,0,6,0,7,0,8,0,4,0,254,255,252,255,251,255,248,255,243,255,237,255,228,255,221,255,222,255, +226,255,226,255,228,255,234,255,242,255,246,255,247,255,246,255,244,255,240,255,236,255,233,255,231,255,226,255,221,255,219,255, +219,255,217,255,216,255,220,255,225,255,229,255,231,255,237,255,243,255,248,255,251,255,254,255,0,0,4,0,7,0,5,0, +254,255,248,255,245,255,245,255,244,255,242,255,241,255,242,255,242,255,242,255,242,255,242,255,242,255,243,255,248,255,254,255, +1,0,4,0,7,0,6,0,2,0,0,0,0,0,255,255,254,255,251,255,246,255,243,255,244,255,249,255,254,255,2,0, +3,0,2,0,0,0,1,0,3,0,5,0,5,0,0,0,250,255,247,255,249,255,249,255,248,255,249,255,253,255,2,0, +3,0,2,0,4,0,10,0,16,0,18,0,19,0,21,0,23,0,24,0,26,0,25,0,22,0,15,0,9,0,4,0, +254,255,246,255,238,255,235,255,236,255,242,255,250,255,2,0,9,0,16,0,26,0,35,0,41,0,41,0,39,0,36,0, +33,0,31,0,29,0,28,0,28,0,27,0,24,0,20,0,19,0,20,0,21,0,24,0,25,0,25,0,24,0,23,0, +21,0,16,0,11,0,6,0,3,0,2,0,2,0,254,255,250,255,247,255,245,255,241,255,238,255,237,255,239,255,245,255, +251,255,254,255,255,255,255,255,255,255,253,255,252,255,253,255,254,255,249,255,242,255,233,255,229,255,230,255,234,255,236,255, +236,255,238,255,242,255,246,255,252,255,4,0,13,0,17,0,18,0,15,0,9,0,3,0,254,255,252,255,254,255,1,0, +4,0,5,0,9,0,13,0,13,0,11,0,9,0,9,0,7,0,2,0,251,255,246,255,247,255,253,255,3,0,5,0, +5,0,5,0,7,0,10,0,13,0,10,0,1,0,245,255,235,255,231,255,229,255,227,255,225,255,224,255,226,255,230,255, +235,255,240,255,244,255,245,255,243,255,240,255,239,255,243,255,246,255,247,255,246,255,244,255,242,255,240,255,238,255,234,255, +232,255,232,255,233,255,235,255,237,255,240,255,243,255,246,255,246,255,246,255,247,255,247,255,247,255,247,255,247,255,247,255, +245,255,242,255,241,255,241,255,239,255,237,255,238,255,242,255,247,255,251,255,254,255,0,0,2,0,0,0,249,255,242,255, +238,255,236,255,234,255,232,255,231,255,232,255,235,255,237,255,239,255,241,255,244,255,246,255,245,255,245,255,248,255,254,255, +2,0,1,0,1,0,2,0,3,0,3,0,3,0,6,0,7,0,3,0,253,255,250,255,252,255,255,255,255,255,254,255, +253,255,252,255,249,255,248,255,251,255,1,0,5,0,3,0,253,255,248,255,245,255,242,255,238,255,236,255,237,255,237,255, +238,255,241,255,247,255,251,255,254,255,1,0,4,0,3,0,253,255,248,255,246,255,248,255,250,255,249,255,247,255,246,255, +251,255,4,0,12,0,18,0,21,0,23,0,25,0,31,0,38,0,42,0,40,0,32,0,25,0,22,0,19,0,14,0, +8,0,6,0,8,0,11,0,13,0,16,0,20,0,23,0,24,0,27,0,30,0,34,0,36,0,35,0,35,0,36,0, +35,0,31,0,26,0,23,0,20,0,16,0,13,0,14,0,14,0,13,0,10,0,8,0,8,0,9,0,12,0,15,0, +16,0,14,0,10,0,8,0,9,0,11,0,12,0,9,0,3,0,0,0,2,0,8,0,15,0,18,0,18,0,16,0, +15,0,13,0,10,0,6,0,1,0,253,255,252,255,252,255,251,255,247,255,243,255,241,255,242,255,244,255,246,255,246,255, +246,255,244,255,241,255,242,255,245,255,247,255,247,255,246,255,246,255,244,255,242,255,241,255,241,255,241,255,238,255,234,255, +232,255,231,255,232,255,230,255,228,255,228,255,230,255,235,255,238,255,240,255,241,255,241,255,243,255,244,255,245,255,247,255, +249,255,250,255,250,255,251,255,253,255,254,255,252,255,248,255,247,255,250,255,252,255,249,255,242,255,239,255,243,255,248,255, +249,255,247,255,246,255,246,255,248,255,251,255,254,255,254,255,252,255,249,255,249,255,250,255,251,255,251,255,251,255,251,255, +253,255,254,255,253,255,250,255,248,255,249,255,249,255,247,255,245,255,245,255,248,255,252,255,254,255,0,0,5,0,10,0, +14,0,13,0,10,0,7,0,4,0,2,0,3,0,6,0,6,0,5,0,6,0,9,0,13,0,17,0,20,0,24,0, +26,0,23,0,19,0,19,0,22,0,23,0,19,0,14,0,10,0,7,0,5,0,3,0,2,0,0,0,254,255,254,255, +1,0,4,0,5,0,7,0,12,0,18,0,21,0,20,0,18,0,17,0,16,0,14,0,11,0,10,0,10,0,13,0, +15,0,15,0,15,0,17,0,21,0,26,0,28,0,26,0,22,0,17,0,12,0,8,0,8,0,9,0,9,0,8,0, +8,0,12,0,15,0,17,0,19,0,21,0,21,0,14,0,4,0,255,255,1,0,3,0,3,0,255,255,250,255,244,255, +236,255,228,255,223,255,221,255,223,255,227,255,231,255,234,255,237,255,241,255,245,255,246,255,245,255,245,255,245,255,244,255, +241,255,239,255,240,255,243,255,244,255,243,255,242,255,242,255,240,255,237,255,239,255,246,255,253,255,254,255,250,255,248,255, +252,255,2,0,6,0,9,0,11,0,12,0,11,0,10,0,11,0,12,0,12,0,12,0,13,0,16,0,19,0,20,0, +19,0,18,0,20,0,24,0,26,0,26,0,23,0,21,0,20,0,20,0,20,0,19,0,18,0,16,0,15,0,16,0, +18,0,17,0,12,0,7,0,6,0,9,0,13,0,16,0,16,0,9,0,255,255,249,255,254,255,12,0,23,0,23,0, +14,0,4,0,254,255,251,255,250,255,250,255,248,255,243,255,238,255,237,255,240,255,244,255,247,255,250,255,253,255,252,255, +244,255,235,255,234,255,240,255,250,255,0,0,2,0,1,0,255,255,250,255,247,255,247,255,251,255,253,255,251,255,247,255, +245,255,246,255,247,255,245,255,243,255,244,255,245,255,246,255,245,255,247,255,251,255,255,255,3,0,6,0,9,0,10,0, +8,0,4,0,5,0,8,0,7,0,0,0,247,255,245,255,248,255,250,255,247,255,242,255,241,255,242,255,243,255,240,255, +236,255,234,255,236,255,240,255,244,255,246,255,246,255,245,255,245,255,245,255,246,255,247,255,247,255,247,255,246,255,244,255, +240,255,236,255,235,255,239,255,245,255,250,255,251,255,251,255,252,255,253,255,253,255,251,255,250,255,250,255,251,255,251,255, +249,255,247,255,247,255,250,255,254,255,0,0,0,0,0,0,4,0,11,0,19,0,23,0,24,0,22,0,20,0,20,0, +20,0,20,0,20,0,21,0,24,0,27,0,28,0,27,0,23,0,17,0,13,0,11,0,10,0,8,0,4,0,255,255, +254,255,254,255,255,255,254,255,250,255,245,255,240,255,237,255,237,255,238,255,237,255,234,255,232,255,234,255,238,255,241,255, +242,255,243,255,246,255,247,255,248,255,248,255,248,255,248,255,246,255,243,255,243,255,247,255,250,255,251,255,252,255,252,255, +254,255,254,255,253,255,253,255,255,255,255,255,254,255,251,255,249,255,251,255,255,255,2,0,4,0,4,0,3,0,2,0, +1,0,3,0,9,0,15,0,18,0,18,0,15,0,12,0,11,0,12,0,13,0,12,0,8,0,3,0,1,0,3,0, +6,0,2,0,246,255,230,255,219,255,220,255,233,255,249,255,3,0,4,0,4,0,8,0,13,0,13,0,7,0,254,255, +248,255,243,255,237,255,231,255,230,255,233,255,237,255,239,255,239,255,238,255,236,255,236,255,241,255,251,255,4,0,6,0, +3,0,255,255,253,255,251,255,249,255,249,255,250,255,250,255,248,255,244,255,244,255,248,255,254,255,1,0,2,0,2,0, +3,0,4,0,2,0,0,0,0,0,3,0,8,0,12,0,13,0,11,0,6,0,3,0,3,0,3,0,3,0,1,0, +1,0,3,0,5,0,4,0,2,0,4,0,9,0,14,0,16,0,12,0,8,0,6,0,7,0,9,0,9,0,7,0, +6,0,6,0,7,0,8,0,10,0,13,0,15,0,14,0,12,0,8,0,7,0,7,0,8,0,7,0,5,0,5,0, +9,0,12,0,10,0,4,0,255,255,254,255,1,0,4,0,5,0,2,0,253,255,249,255,249,255,252,255,255,255,252,255, +247,255,245,255,248,255,249,255,247,255,242,255,239,255,238,255,240,255,242,255,245,255,248,255,252,255,255,255,255,255,255,255, +254,255,254,255,0,0,4,0,6,0,7,0,5,0,3,0,0,0,253,255,253,255,255,255,1,0,1,0,255,255,253,255, +254,255,0,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,3,0,1,0,0,0,1,0,3,0,4,0,1,0, +250,255,246,255,247,255,251,255,255,255,0,0,1,0,3,0,6,0,9,0,10,0,10,0,10,0,8,0,6,0,5,0, +4,0,3,0,255,255,254,255,1,0,3,0,2,0,0,0,255,255,0,0,1,0,1,0,3,0,8,0,12,0,11,0, +8,0,5,0,3,0,3,0,6,0,11,0,13,0,11,0,7,0,7,0,11,0,13,0,14,0,14,0,14,0,14,0, +13,0,11,0,8,0,4,0,4,0,9,0,13,0,12,0,9,0,10,0,14,0,16,0,14,0,11,0,13,0,15,0, +13,0,8,0,7,0,8,0,7,0,4,0,1,0,255,255,253,255,252,255,251,255,251,255,250,255,251,255,252,255,253,255, +254,255,250,255,244,255,241,255,243,255,247,255,250,255,252,255,252,255,252,255,251,255,246,255,238,255,233,255,234,255,241,255, +246,255,247,255,243,255,237,255,237,255,243,255,251,255,0,0,255,255,252,255,249,255,249,255,252,255,255,255,2,0,7,0, +10,0,6,0,252,255,245,255,245,255,250,255,255,255,0,0,253,255,249,255,248,255,250,255,254,255,3,0,4,0,1,0, +0,0,2,0,3,0,3,0,4,0,6,0,6,0,5,0,4,0,5,0,6,0,5,0,2,0,255,255,254,255,1,0, +5,0,8,0,8,0,6,0,4,0,6,0,11,0,14,0,12,0,8,0,2,0,254,255,253,255,253,255,250,255,246,255, +243,255,245,255,250,255,252,255,254,255,1,0,6,0,7,0,5,0,1,0,255,255,255,255,255,255,1,0,6,0,8,0, +7,0,5,0,4,0,5,0,3,0,253,255,246,255,243,255,244,255,246,255,248,255,248,255,249,255,250,255,252,255,253,255, +253,255,252,255,251,255,249,255,248,255,248,255,248,255,248,255,247,255,247,255,246,255,244,255,241,255,238,255,238,255,240,255, +241,255,243,255,245,255,245,255,244,255,243,255,246,255,249,255,249,255,246,255,243,255,241,255,240,255,242,255,245,255,246,255, +245,255,245,255,247,255,250,255,252,255,251,255,251,255,0,0,5,0,7,0,6,0,6,0,7,0,7,0,9,0,12,0, +15,0,13,0,11,0,9,0,8,0,8,0,7,0,8,0,13,0,20,0,21,0,14,0,7,0,6,0,10,0,12,0, +13,0,11,0,10,0,10,0,11,0,10,0,8,0,9,0,10,0,10,0,10,0,8,0,5,0,3,0,5,0,8,0, +10,0,11,0,10,0,6,0,2,0,3,0,5,0,3,0,2,0,4,0,7,0,7,0,5,0,1,0,0,0,3,0, +7,0,9,0,10,0,11,0,10,0,8,0,9,0,11,0,12,0,11,0,11,0,10,0,9,0,7,0,2,0,251,255, +249,255,0,0,10,0,15,0,14,0,11,0,9,0,8,0,7,0,8,0,11,0,12,0,8,0,3,0,1,0,0,0, +251,255,246,255,245,255,248,255,250,255,249,255,249,255,249,255,246,255,244,255,246,255,252,255,255,255,253,255,249,255,247,255, +244,255,243,255,247,255,254,255,2,0,0,0,251,255,247,255,245,255,245,255,244,255,244,255,246,255,248,255,249,255,250,255, +251,255,253,255,255,255,1,0,0,0,252,255,249,255,248,255,247,255,249,255,251,255,250,255,247,255,246,255,249,255,249,255, +247,255,244,255,244,255,245,255,247,255,247,255,243,255,242,255,246,255,250,255,251,255,249,255,248,255,250,255,1,0,7,0, +5,0,255,255,254,255,255,255,254,255,252,255,252,255,253,255,252,255,252,255,255,255,2,0,5,0,6,0,6,0,9,0, +15,0,19,0,19,0,20,0,21,0,19,0,14,0,11,0,11,0,10,0,9,0,7,0,6,0,5,0,4,0,5,0, +5,0,7,0,9,0,8,0,5,0,4,0,1,0,252,255,249,255,249,255,248,255,244,255,241,255,237,255,235,255,234,255, +235,255,239,255,244,255,248,255,248,255,247,255,246,255,246,255,245,255,244,255,245,255,244,255,239,255,235,255,238,255,245,255, +247,255,244,255,239,255,240,255,246,255,253,255,0,0,253,255,248,255,245,255,246,255,247,255,246,255,243,255,242,255,244,255, +246,255,249,255,252,255,255,255,2,0,3,0,1,0,254,255,250,255,249,255,251,255,255,255,1,0,0,0,2,0,6,0, +5,0,0,0,255,255,2,0,5,0,6,0,4,0,2,0,2,0,3,0,6,0,9,0,11,0,11,0,9,0,9,0, +12,0,14,0,15,0,20,0,24,0,23,0,19,0,17,0,13,0,9,0,8,0,10,0,10,0,8,0,9,0,9,0, +9,0,11,0,12,0,13,0,15,0,15,0,13,0,12,0,13,0,12,0,9,0,8,0,10,0,10,0,7,0,6,0, +7,0,9,0,8,0,6,0,2,0,2,0,6,0,9,0,7,0,6,0,7,0,7,0,9,0,12,0,14,0,13,0, +11,0,8,0,6,0,6,0,7,0,5,0,1,0,255,255,253,255,252,255,252,255,254,255,255,255,0,0,1,0,3,0, +2,0,0,0,255,255,254,255,254,255,254,255,253,255,252,255,251,255,251,255,250,255,247,255,245,255,244,255,245,255,248,255, +250,255,250,255,249,255,250,255,252,255,253,255,252,255,249,255,248,255,248,255,248,255,246,255,244,255,242,255,243,255,246,255, +247,255,247,255,247,255,247,255,247,255,247,255,247,255,247,255,247,255,247,255,247,255,246,255,245,255,243,255,243,255,242,255, +241,255,240,255,240,255,241,255,242,255,243,255,243,255,243,255,243,255,244,255,245,255,247,255,249,255,249,255,250,255,251,255, +251,255,251,255,251,255,254,255,0,0,0,0,1,0,2,0,2,0,3,0,4,0,5,0,6,0,7,0,6,0,5,0, +6,0,8,0,8,0,8,0,10,0,10,0,9,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,5,0,4,0, +3,0,3,0,3,0,3,0,4,0,5,0,6,0,6,0,5,0,5,0,5,0,4,0,5,0,6,0,6,0,6,0, +6,0,7,0,5,0,4,0,3,0,3,0,2,0,0,0,254,255,253,255,255,255,1,0,1,0,1,0,2,0,4,0, +4,0,4,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0, +3,0,4,0,4,0,4,0,4,0,5,0,6,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,255,255,253,255, +252,255,251,255,250,255,249,255,250,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,255,255,1,0,1,0,2,0,4,0,6,0,7,0,5,0,5,0,6,0,7,0,7,0,7,0, +7,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0, +4,0,3,0,2,0,2,0,3,0,4,0,3,0,2,0,0,0,254,255,253,255,252,255,251,255,251,255,250,255,248,255, +248,255,249,255,248,255,247,255,247,255,248,255,248,255,247,255,248,255,248,255,249,255,250,255,251,255,251,255,250,255,250,255, +250,255,250,255,249,255,248,255,248,255,249,255,251,255,253,255,255,255,0,0,2,0,2,0,2,0,2,0,1,0,255,255, +253,255,253,255,252,255,251,255,251,255,251,255,252,255,252,255,254,255,255,255,0,0,1,0,1,0,2,0,3,0,4,0, +2,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,252,255,250,255,250,255,250,255,250,255,250,255,250,255, +251,255,251,255,251,255,252,255,253,255,252,255,251,255,251,255,252,255,253,255,252,255,251,255,250,255,250,255,251,255,252,255, +254,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,3,0,4,0, +4,0,4,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,2,0,3,0,4,0,6,0, +7,0,7,0,7,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,4,0,4,0,5,0,5,0,6,0,6,0, +7,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,8,0,6,0,6,0,5,0,5,0,5,0, +5,0,5,0,6,0,6,0,5,0,4,0,4,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,255,255,253,255,252,255,252,255,252,255, +252,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,252,255,252,255,252,255,253,255,254,255,255,255,254,255, +254,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,2,0, +3,0,3,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255, +254,255,253,255,252,255,253,255,255,255,255,255,254,255,254,255,255,255,0,0,1,0,0,0,254,255,253,255,253,255,253,255, +253,255,254,255,255,255,0,0,255,255,0,0,1,0,1,0,1,0,2,0,4,0,4,0,3,0,4,0,4,0,3,0, +2,0,1,0,1,0,2,0,2,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,253,255,253,255,0,0,2,0, +2,0,0,0,255,255,254,255,254,255,254,255,254,255,253,255,253,255,251,255,250,255,252,255,253,255,253,255,252,255,252,255, +253,255,253,255,252,255,251,255,251,255,250,255,250,255,249,255,248,255,248,255,249,255,250,255,251,255,252,255,253,255,253,255, +254,255,255,255,254,255,253,255,251,255,250,255,250,255,251,255,251,255,250,255,251,255,253,255,254,255,254,255,254,255,253,255, +253,255,254,255,255,255,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,3,0,4,0,5,0,4,0,3,0, +3,0,3,0,3,0,3,0,3,0,2,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0, +2,0,4,0,4,0,5,0,5,0,5,0,4,0,4,0,4,0,3,0,2,0,1,0,1,0,2,0,3,0,2,0, +1,0,255,255,0,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,4,0,5,0, +5,0,4,0,4,0,5,0,5,0,4,0,3,0,2,0,3,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0, +4,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,1,0,255,255,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +255,255,255,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,250,255,250,255,251,255,251,255, +252,255,252,255,252,255,252,255,254,255,255,255,254,255,254,255,255,255,1,0,2,0,2,0,1,0,0,0,255,255,254,255, +254,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0, +1,0,2,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255, +255,255,254,255,254,255,255,255,0,0,1,0,0,0,255,255,0,0,2,0,3,0,2,0,0,0,255,255,255,255,0,0, +1,0,0,0,254,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,254,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0, +1,0,2,0,3,0,3,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,3,0,2,0,0,0,255,255,255,255,254,255,253,255,252,255,253,255,254,255,253,255,252,255,252,255, +252,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,254,255,255,255,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,3,0,4,0,3,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,253,255, +253,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255, +0,0,255,255,255,255,255,255,1,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,254,255,254,255,0,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0, +3,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,3,0,3,0,3,0, +2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0, +1,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,252,255,253,255,254,255, +254,255,254,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,2,0, +2,0,1,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255, +253,255,253,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0, +2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0, +1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255, +254,255,253,255,252,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255, +254,255,254,255,253,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,253,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,1,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0, +0,0,1,0,1,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0, +5,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0, +4,0,3,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,253,255, +254,255,255,255,255,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,255,255, +0,0,2,0,3,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,254,255,255,255,255,255,255,255,254,255, +255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,254,255,254,255,255,255,1,0,2,0, +1,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,2,0,2,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,2,0, +2,0,2,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0,255,255,255,255,255,255,254,255,254,255,254,255, +255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,2,0, +2,0,1,0,0,0,255,255,255,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0, +1,0,0,0,0,0,2,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,254,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,1,0, +2,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,2,0,2,0,2,0, +2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,1,0,1,0,255,255, +254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0, +2,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0, +2,0,1,0,1,0,1,0,0,0,254,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,253,255,253,255,255,255,255,255, +254,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,0,0,255,255, +254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,253,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255, +254,255,254,255,254,255,255,255,0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,255,255,1,0,1,0,2,0,3,0,3,0,2,0,2,0,4,0,4,0,3,0,3,0,2,0,1,0,1,0, +3,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,254,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255, +254,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255, +254,255,255,255,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,4,0,4,0,4,0, +3,0,3,0,3,0,3,0,3,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0,1,0,2,0,2,0, +1,0,1,0,2,0,2,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0, +2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0, +1,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0, +2,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,254,255,0,0,0,0,0,0,255,255, +254,255,253,255,254,255,255,255,254,255,255,255,0,0,0,0,254,255,254,255,255,255,255,255,0,0,1,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,1,0,3,0,3,0,2,0,2,0,2,0,3,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255, +254,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,0,0,0,0, +0,0,0,0,0,0,254,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255, +0,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,255,255,254,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255,255,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,2,0,2,0,1,0,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255, +255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,1,0,1,0,1,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,1,0,0,0,254,255,255,255,0,0,255,255,255,255,0,0,255,255, +254,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,2,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +254,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,255,255,1,0,0,0, +255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255, +254,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,0,0, +254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,4,0, +3,0,1,0,0,0,0,0,255,255,254,255,255,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255, +255,255,254,255,254,255,0,0,2,0,3,0,3,0,4,0,5,0,5,0,4,0,1,0,0,0,255,255,253,255,251,255, +250,255,250,255,250,255,251,255,253,255,255,255,1,0,4,0,6,0,7,0,8,0,7,0,6,0,5,0,2,0,0,0, +254,255,252,255,251,255,250,255,251,255,252,255,253,255,255,255,1,0,2,0,3,0,3,0,3,0,4,0,3,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,254,255,253,255, +254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,0,0,255,255, +254,255,253,255,252,255,252,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,3,0,4,0,4,0,4,0,3,0, +2,0,2,0,2,0,0,0,255,255,254,255,253,255,252,255,251,255,252,255,253,255,254,255,254,255,255,255,0,0,1,0, +2,0,3,0,3,0,3,0,3,0,3,0,2,0,0,0,255,255,255,255,255,255,253,255,251,255,253,255,253,255,252,255, +251,255,253,255,255,255,0,0,1,0,3,0,4,0,4,0,5,0,4,0,3,0,2,0,1,0,255,255,254,255,252,255, +251,255,252,255,252,255,252,255,254,255,0,0,0,0,1,0,2,0,3,0,3,0,4,0,3,0,1,0,1,0,0,0, +255,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255, +254,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0, +3,0,3,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255,255,255, +0,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255, +252,255,253,255,254,255,254,255,0,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0, +255,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,1,0,2,0,2,0,2,0,3,0,4,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255, +254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255, +0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,254,255,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,0,0,255,255,0,0,1,0,255,255, +254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,254,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,2,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255, +254,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +254,255,255,255,0,0,0,0,255,255,1,0,0,0,255,255,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0, +1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,255,255,255,255,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,2,0,1,0,0,0,0,0,255,255,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,255,255,255,255,0,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,1,0,1,0,0,0, +0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0, +2,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,1,0,2,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0, +1,0,255,255,254,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +254,255,0,0,1,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,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,1,0, +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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0, +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,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0, +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,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +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,1,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,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,1,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0, +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,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,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,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,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,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/spider1.pcm b/src/client/sound/data/spider1.pcm new file mode 100755 index 0000000..b35154c --- /dev/null +++ b/src/client/sound/data/spider1.pcm @@ -0,0 +1,1943 @@ +unsigned char PCM_spider1[62082] = { +1,0,0,0,2,0,0,0,68,172,0,0,57,121,0,0,0,0,1,0,2,0,255,255,255,255,2,0,0,0,255,255, +3,0,4,0,1,0,1,0,0,0,252,255,254,255,5,0,4,0,253,255,249,255,252,255,0,0,2,0,2,0,0,0, +254,255,252,255,254,255,254,255,253,255,254,255,254,255,252,255,1,0,13,0,15,0,5,0,255,255,1,0,254,255,248,255, +249,255,0,0,7,0,8,0,2,0,249,255,248,255,248,255,248,255,254,255,4,0,255,255,246,255,252,255,7,0,6,0, +252,255,247,255,246,255,239,255,236,255,251,255,16,0,13,0,247,255,240,255,2,0,20,0,17,0,11,0,13,0,8,0, +247,255,245,255,7,0,15,0,2,0,249,255,0,0,12,0,16,0,14,0,7,0,251,255,239,255,241,255,2,0,17,0, +17,0,6,0,4,0,4,0,243,255,216,255,219,255,252,255,13,0,5,0,5,0,18,0,17,0,6,0,7,0,10,0, +3,0,249,255,241,255,246,255,19,0,42,0,11,0,219,255,226,255,13,0,23,0,4,0,250,255,238,255,224,255,243,255, +20,0,14,0,250,255,6,0,13,0,239,255,232,255,9,0,13,0,242,255,0,0,31,0,32,0,10,0,221,255,205,255, +20,0,65,0,240,255,194,255,40,0,96,0,249,255,168,255,204,255,239,255,240,255,28,0,89,0,78,0,247,255,179,255, +216,255,55,0,64,0,7,0,48,0,136,0,70,0,206,255,16,0,147,0,128,0,91,0,112,0,235,255,36,255,155,255, +222,0,243,0,208,255,58,255,196,255,113,0,138,0,67,0,8,0,234,255,208,255,210,255,0,0,40,0,79,0,152,0, +176,0,49,0,141,255,139,255,32,0,163,0,196,0,168,0,75,0,145,255,50,255,15,0,23,1,94,0,206,254,240,254, +40,0,46,0,204,255,136,0,219,0,227,255,184,255,164,0,107,0,117,255,243,255,51,1,60,1,7,0,86,254,76,253, +144,254,55,1,33,2,249,0,223,255,82,255,109,255,202,0,178,1,96,0,203,254,49,254,199,252,177,251,232,253,249,0, +83,1,54,1,52,2,36,1,161,254,89,255,39,2,53,2,234,255,238,253,63,252,185,251,227,253,165,0,147,1,89,1, +91,0,216,254,78,255,154,1,232,1,117,0,82,0,115,255,243,251,213,250,150,254,146,1,206,0,195,255,178,255,67,255, +226,255,237,1,44,2,49,0,214,254,88,254,77,254,22,0,170,1,147,255,33,253,157,254,41,0,77,254,90,253,126,255, +163,0,255,255,192,0,126,2,175,2,54,1,53,255,3,254,114,254,182,254,27,253,244,251,228,253,103,1,129,3,89,3, +157,1,84,255,235,253,98,254,103,255,103,254,47,252,67,252,90,254,69,255,244,255,172,2,70,4,83,1,41,253,148,252, +199,254,16,0,182,255,172,255,185,255,219,253,45,252,109,254,134,1,157,0,42,255,126,1,196,2,96,254,221,249,28,252, +44,2,113,3,66,254,56,250,129,251,34,253,242,252,51,255,186,2,128,2,175,0,151,0,175,255,77,254,194,255,244,0, +186,254,73,253,59,254,94,253,171,251,239,253,26,2,142,2,198,255,47,254,151,254,138,254,235,253,177,254,32,0,119,255, +37,252,79,248,29,248,16,254,93,4,47,3,163,254,123,255,244,2,21,3,161,2,8,3,200,255,53,250,185,248,0,252, +19,0,209,1,52,0,67,254,139,255,217,1,217,1,222,0,116,0,250,255,136,255,94,255,38,255,49,255,132,254,166,252, +187,252,152,254,210,253,231,252,161,0,239,3,13,2,211,255,61,0,213,0,2,1,95,0,214,254,77,255,127,0,73,254, +31,252,95,254,117,1,131,2,193,2,144,2,204,2,218,1,85,251,155,244,47,247,134,253,203,253,17,251,180,249,42,249, +24,252,24,2,204,5,56,7,105,5,50,252,212,244,55,251,55,5,167,4,160,254,49,251,255,249,32,252,13,1,70,3, +69,2,25,0,116,251,210,248,243,254,17,7,78,6,93,255,185,249,189,246,165,247,165,252,215,255,69,255,121,0,158,2, +245,255,194,252,10,0,56,5,103,5,2,2,135,254,174,252,50,253,186,253,35,253,155,253,96,253,236,250,89,252,151,2, +156,4,63,1,65,0,94,2,12,3,186,1,204,0,244,0,83,253,156,244,228,243,73,255,242,2,12,251,82,253,27,7, +186,4,193,0,15,7,248,5,155,250,170,248,130,254,165,0,32,2,27,0,188,247,68,248,218,3,113,7,36,2,122,1, +252,3,32,4,254,2,49,255,75,250,42,250,63,253,56,255,70,255,176,251,213,247,36,251,1,3,171,7,2,7,71,0, +137,247,230,247,211,0,61,4,228,254,38,251,207,253,121,1,13,1,44,255,5,0,100,0,41,255,63,2,157,4,233,252, +86,247,142,255,182,5,135,255,110,250,104,251,16,253,211,1,244,5,157,1,13,254,97,2,26,4,165,0,47,254,97,249, +160,244,80,250,219,2,182,0,213,250,106,252,59,3,151,8,164,6,178,253,149,249,94,255,80,2,68,251,94,245,130,250, +179,4,201,6,78,255,67,252,248,2,148,4,239,251,226,249,70,2,222,2,185,249,102,250,45,6,201,8,46,255,195,250, +171,255,89,2,2,0,149,253,36,251,143,249,205,251,184,255,157,3,176,7,204,6,172,0,64,254,70,254,61,250,234,250, +176,3,63,3,168,247,54,246,134,0,114,3,10,254,201,254,17,6,65,7,75,254,100,247,222,252,200,3,47,254,180,246, +39,252,119,4,2,2,244,252,107,0,175,5,30,2,227,251,112,0,157,8,252,0,243,241,122,245,120,5,102,9,247,4, +106,4,233,254,241,243,18,245,242,1,171,8,209,2,82,247,204,242,145,251,237,0,152,246,197,244,177,8,86,16,187,250, +77,234,42,244,214,4,109,11,205,6,86,251,176,246,43,254,211,1,181,252,83,253,230,2,149,2,161,2,135,5,196,253, +121,241,114,247,78,8,253,8,193,251,200,246,245,251,90,254,227,252,19,0,166,8,8,12,39,2,67,244,32,244,35,2, +170,10,17,2,118,246,79,251,233,8,37,6,49,246,179,246,197,7,44,11,105,254,217,247,149,247,136,245,79,251,249,6, +236,6,223,255,214,0,223,2,171,255,99,1,241,6,121,4,149,252,102,248,39,250,153,2,82,11,25,8,207,254,211,255, +14,5,136,0,137,252,205,2,49,2,47,244,33,241,14,255,103,3,67,250,243,251,70,7,249,7,14,3,145,4,35,4, +88,254,94,252,33,253,165,253,17,1,28,1,243,252,212,3,198,14,9,6,99,247,146,252,236,3,1,251,52,247,27,1, +205,2,10,252,145,254,174,4,136,2,212,255,236,2,55,4,97,254,63,246,252,244,207,252,247,2,139,0,81,255,18,5, +243,6,205,255,116,250,102,254,220,5,51,8,47,4,44,255,164,251,70,248,113,249,173,2,130,10,211,8,48,4,186,1, +15,255,3,255,113,3,58,5,0,2,164,254,85,252,227,252,74,3,27,9,249,6,228,0,253,253,220,1,152,9,119,7, +72,248,207,242,134,1,236,12,155,7,249,0,132,1,111,3,179,4,191,2,151,252,225,252,141,6,40,10,60,1,239,248, +48,251,242,2,187,5,139,1,163,255,233,3,74,5,212,0,117,255,153,3,222,6,85,6,108,3,107,0,30,254,130,251, +46,253,119,7,243,12,155,255,231,238,204,241,99,1,70,8,128,3,197,254,196,254,245,253,183,250,45,251,204,0,159,7, +137,13,37,10,145,246,132,230,139,240,115,5,103,12,87,7,21,253,229,239,115,236,219,246,110,3,115,15,159,20,12,2, +115,233,95,240,46,8,175,9,160,254,42,0,45,2,54,247,192,237,4,243,93,3,22,18,196,15,54,252,78,236,40,238, +171,250,54,7,58,14,193,10,21,254,95,242,114,238,95,240,42,247,87,4,210,15,162,11,29,251,171,242,49,249,74,1, +138,4,252,7,28,6,238,246,239,233,227,242,36,6,0,11,239,0,97,247,152,246,131,254,145,4,198,253,112,248,227,3, +154,10,38,253,38,247,236,4,143,10,1,2,222,1,154,7,84,1,181,245,228,243,170,250,194,2,255,6,226,2,1,252, +158,255,5,10,100,7,219,247,27,242,62,250,17,254,178,249,55,247,168,247,90,250,161,1,80,6,225,4,68,8,219,13, +173,3,202,241,222,242,196,1,73,5,241,255,100,0,91,0,68,251,250,251,123,1,205,2,147,3,39,3,135,251,8,249, +61,3,33,7,83,255,29,254,43,0,109,244,177,231,107,239,99,0,81,5,137,3,182,5,85,255,83,237,87,237,255,6, +35,20,239,3,72,240,229,232,177,236,84,251,224,6,38,5,46,4,133,3,20,243,191,228,130,243,39,14,168,20,23,4, +226,237,97,227,207,233,195,248,52,5,35,7,198,255,37,251,5,252,74,252,178,1,139,11,137,8,13,250,16,240,239,235, +152,240,86,0,100,8,114,3,65,1,156,251,36,239,20,246,20,13,181,15,248,253,84,243,246,247,47,3,246,2,75,241, +132,234,72,251,81,4,104,251,72,248,190,253,57,3,57,12,210,15,145,3,242,244,72,238,103,233,157,232,232,242,178,1, +180,8,3,4,163,252,195,254,29,8,22,12,185,3,181,240,158,224,188,227,202,241,206,247,31,253,119,11,30,16,136,3, +47,254,183,7,30,11,141,3,96,253,183,245,214,231,41,227,156,240,242,255,201,4,114,5,56,6,169,4,211,2,208,2, +33,3,28,3,222,253,54,239,64,229,245,240,225,5,113,11,18,4,250,255,65,253,50,247,205,248,69,3,225,5,87,255, +75,254,78,2,254,1,212,254,216,253,209,1,35,7,188,253,106,230,26,227,248,254,196,19,85,10,27,252,117,1,64,14, +127,10,199,249,192,246,56,2,180,255,56,238,36,232,78,240,182,251,46,11,120,22,240,17,227,7,181,0,212,247,142,246, +56,2,109,4,92,245,98,238,236,247,185,254,173,255,233,6,209,13,145,8,90,1,114,2,228,2,9,255,74,254,57,253, +51,248,114,249,111,2,12,8,82,8,99,6,119,3,3,5,148,8,132,3,160,251,89,253,126,2,74,2,163,1,115,3, +201,0,144,245,223,236,102,246,170,9,139,14,5,5,144,253,132,251,214,253,220,2,22,3,49,3,141,7,91,255,25,238, +189,241,122,4,130,11,80,13,35,17,225,10,33,3,14,8,63,13,219,7,131,252,223,242,61,247,7,6,89,5,192,245, +86,244,148,2,118,9,190,5,165,5,92,11,102,8,230,249,148,244,222,253,57,2,157,1,14,7,224,7,112,2,112,1, +91,250,94,241,85,0,213,18,133,8,19,253,210,5,85,8,71,3,37,7,134,2,153,241,245,239,163,252,130,2,108,2, +95,2,83,2,239,6,1,14,50,13,221,2,85,247,170,245,62,0,126,9,136,6,150,252,29,245,50,247,245,1,158,8, +3,8,187,9,121,8,77,253,128,248,7,1,25,4,82,253,74,252,88,2,191,4,154,2,132,1,218,3,227,8,167,11, +31,5,53,250,35,251,47,6,88,7,25,2,191,8,140,13,183,255,32,246,40,255,80,4,198,253,172,250,168,254,17,7, +198,12,217,1,196,244,156,2,133,24,75,18,208,255,12,0,222,8,39,6,236,251,100,246,225,251,255,8,229,13,78,3, +84,252,9,6,126,11,206,0,130,0,32,17,216,15,160,250,255,245,175,0,45,2,160,2,22,7,60,255,15,246,192,253, +211,3,228,253,31,255,110,6,36,6,123,8,190,15,71,8,162,245,131,239,163,246,50,253,11,0,249,253,50,247,194,248, +95,8,221,18,6,11,226,0,29,2,47,3,153,251,236,246,130,252,212,3,168,4,2,255,70,249,119,252,30,5,64,4, +121,253,70,2,108,8,13,252,235,240,211,253,25,11,104,5,71,2,178,9,104,9,165,1,94,252,4,249,254,252,73,7, +65,7,157,255,238,253,10,251,113,248,191,3,230,10,29,251,139,236,179,241,153,251,168,0,89,1,175,253,207,255,34,8, +102,4,77,247,161,245,219,251,215,250,11,248,82,253,94,2,71,252,156,245,162,254,144,11,105,8,38,255,187,253,203,252, +219,252,248,3,163,4,227,249,131,243,214,243,101,244,65,248,154,251,54,250,96,253,101,4,82,4,49,0,84,254,21,254, +228,255,39,255,211,249,85,251,10,2,167,253,0,243,72,241,67,247,232,255,116,5,240,0,72,254,73,8,229,11,198,254, +21,246,149,250,140,253,184,249,87,245,138,244,72,250,160,4,74,10,88,7,183,3,213,3,48,255,115,246,27,251,44,10, +195,10,1,255,68,251,94,252,233,252,55,4,143,9,170,4,21,3,75,4,84,250,210,240,36,248,103,5,246,5,114,247, +40,238,146,253,243,15,62,7,10,249,37,1,49,11,3,4,131,250,66,252,212,5,240,7,219,248,90,240,185,2,143,16, +216,0,255,241,177,251,9,10,254,8,129,254,152,253,7,9,212,7,194,243,249,236,79,252,38,6,223,3,173,2,224,1, +146,254,92,252,201,253,53,5,102,10,185,2,172,252,82,4,248,5,212,250,125,248,167,255,59,255,29,251,8,254,253,3, +125,6,55,5,186,3,208,3,94,0,103,249,251,249,189,3,103,9,90,3,154,249,187,250,155,7,114,12,55,1,0,250, +20,255,145,255,184,249,44,253,57,8,90,12,73,6,19,254,217,252,49,1,19,255,223,246,214,246,77,253,236,253,95,254, +181,5,64,8,45,3,123,3,81,6,162,1,110,253,23,253,83,247,1,244,167,252,191,1,121,253,199,254,14,1,194,250, +31,252,149,8,94,11,41,7,11,12,148,16,250,7,214,245,241,224,57,216,25,231,178,248,82,248,149,246,186,0,129,6, +0,3,62,5,47,13,35,15,199,10,249,1,159,242,114,230,110,235,206,251,29,8,102,12,97,8,106,253,133,249,142,2, +242,6,66,1,137,3,142,14,44,15,45,3,61,247,72,240,88,238,66,243,126,254,204,9,172,11,152,3,223,254,243,4, +76,11,142,7,20,255,216,252,137,0,101,1,146,255,197,0,88,0,217,250,88,249,10,254,243,0,174,1,192,1,220,254, +230,252,71,254,165,255,82,4,201,11,66,10,227,255,238,248,7,249,239,252,0,254,69,249,16,253,138,13,167,18,117,8, +100,6,63,10,192,4,64,254,154,252,146,250,230,252,9,2,13,0,22,252,235,251,64,252,224,0,112,9,186,13,186,14, +13,10,153,252,83,247,176,253,238,250,221,244,59,251,61,254,233,249,249,255,179,6,48,2,55,1,184,3,180,0,135,3, +203,8,170,254,65,240,19,238,252,242,85,252,86,6,128,4,134,253,89,1,73,10,233,13,52,13,185,8,91,1,13,252, +83,252,82,1,114,1,160,245,93,236,168,244,154,3,235,9,188,8,89,7,234,9,57,12,84,6,37,253,67,250,116,251, +51,253,28,254,120,250,86,248,226,253,2,3,70,9,32,23,111,25,61,8,34,0,224,5,238,254,131,241,108,245,23,0, +30,255,238,248,195,248,179,0,170,12,80,18,225,11,98,2,165,1,57,8,238,10,79,5,97,253,102,249,214,252,118,5, +240,7,92,2,127,2,38,8,210,5,116,0,33,4,99,12,175,15,227,8,168,253,118,0,162,12,150,5,104,244,196,249, +215,9,117,11,243,7,97,5,54,253,145,250,231,1,232,5,162,7,106,9,137,1,204,250,3,5,239,14,27,9,248,0, +228,252,110,247,86,248,41,2,194,4,247,254,50,4,151,17,73,13,245,250,10,250,227,7,144,4,74,244,115,245,236,4, +246,10,28,6,157,1,197,2,58,9,186,10,210,0,114,252,49,8,61,13,154,254,214,245,3,1,69,9,116,2,20,252, +48,253,132,0,75,6,210,9,222,3,21,255,209,5,103,11,116,3,11,246,79,243,6,2,59,18,45,12,185,249,64,249, +238,5,128,5,57,252,147,252,161,0,57,251,55,244,223,250,107,10,109,15,146,6,59,255,66,255,22,254,161,248,182,246, +231,253,15,3,201,248,114,241,94,5,32,27,155,16,252,251,93,251,8,2,132,1,39,253,124,246,122,245,20,254,108,0, +151,253,209,6,222,12,178,254,114,245,222,254,14,3,76,254,21,3,12,9,198,254,251,240,47,242,9,251,121,254,0,0, +11,3,46,1,203,252,109,255,98,5,185,4,199,252,229,244,64,248,31,6,85,9,51,250,240,237,11,241,67,251,44,4, +204,5,100,3,107,7,202,7,24,250,167,244,129,255,204,254,14,240,18,236,115,245,230,2,102,12,20,5,88,247,40,251, +211,4,140,255,189,246,47,246,245,248,27,253,175,255,245,253,66,253,158,252,178,249,19,252,35,1,145,254,156,248,185,245, +80,246,177,252,32,4,105,6,201,4,42,249,222,232,56,240,210,8,11,11,154,249,234,240,120,241,108,247,86,0,167,254, +43,251,249,2,244,0,236,242,169,244,207,252,146,248,202,249,220,1,204,253,56,248,230,251,129,254,253,0,218,1,12,247, +170,240,43,254,53,11,169,5,60,246,240,238,226,248,79,3,240,254,41,1,94,15,47,8,51,241,67,239,252,250,159,3, +231,16,132,19,205,253,194,237,244,240,192,245,80,3,163,29,182,35,142,10,64,240,133,231,178,237,90,254,92,16,48,23, +155,14,64,254,179,243,129,245,163,254,219,5,26,3,212,248,226,244,74,250,197,255,137,6,111,16,109,16,101,3,136,249, +240,249,187,251,3,250,4,250,197,254,35,1,66,254,95,1,83,12,61,16,72,10,167,3,91,253,253,248,97,249,27,249, +14,252,174,7,220,7,194,244,34,238,98,254,254,7,129,3,252,2,245,5,197,2,73,253,105,252,45,1,29,6,121,3, +99,252,13,250,247,250,185,250,70,253,194,2,103,1,50,247,193,243,81,1,63,15,150,10,220,251,26,244,181,245,117,251, +196,252,74,247,163,249,129,3,180,253,239,241,42,254,189,13,95,2,101,247,70,2,68,5,96,245,81,236,120,241,74,252, +132,9,122,12,139,254,188,244,0,251,27,0,172,254,75,5,214,12,129,0,137,237,190,240,249,2,16,14,145,18,200,15, +244,254,149,243,43,253,151,4,99,255,91,1,195,4,60,248,90,238,80,246,171,255,77,5,6,13,131,10,136,251,189,244, +35,250,58,253,40,253,87,2,53,9,54,6,167,249,241,243,29,253,147,7,206,8,139,4,214,252,167,245,248,246,64,250, +142,248,113,255,62,16,225,17,188,0,152,247,254,254,72,4,48,252,241,238,210,234,60,246,202,8,115,17,181,9,22,2, +217,11,87,23,8,12,251,248,27,247,38,248,80,239,213,242,180,5,12,11,20,1,181,252,108,253,214,254,216,6,115,10, +162,255,241,251,56,9,191,10,196,248,18,243,73,0,1,6,33,1,5,0,151,255,201,255,190,7,172,10,154,6,232,19, +154,35,243,13,131,239,220,247,95,7,133,250,39,244,92,7,190,18,188,10,104,0,176,251,147,0,215,7,74,2,116,254, +9,12,87,16,128,253,41,241,161,247,54,2,87,11,72,12,46,1,214,250,179,253,37,255,237,8,226,25,103,21,76,2, +211,255,186,1,106,247,138,248,185,8,46,11,23,1,101,254,87,255,67,253,171,251,69,248,113,247,67,5,122,21,86,14, +65,248,37,245,114,7,37,14,236,254,2,244,145,248,121,253,124,255,234,3,128,4,89,2,169,6,152,10,138,6,33,2, +25,255,137,250,251,252,38,8,40,14,133,8,71,255,16,252,121,254,115,253,104,252,170,7,44,18,81,7,233,245,93,245, +74,3,79,19,205,19,10,253,158,239,85,254,56,1,189,239,194,251,233,28,17,23,43,246,82,241,53,3,217,7,164,253, +237,246,82,253,237,10,158,15,46,6,226,251,150,252,85,3,77,2,182,248,92,244,43,248,90,252,4,1,22,3,118,255, +84,6,160,22,64,16,6,249,28,249,13,8,72,3,139,244,222,243,92,254,154,7,43,6,30,253,115,253,0,6,37,6, +30,0,135,251,120,249,71,2,185,12,213,1,126,243,167,251,134,1,85,246,70,250,149,16,35,22,65,6,198,247,57,247, +186,3,237,12,159,4,143,251,213,255,195,252,86,237,138,240,19,6,75,7,107,247,248,254,203,19,176,10,229,241,14,243, +55,1,245,254,24,249,157,254,230,2,199,253,37,246,101,245,0,255,75,6,8,2,170,1,5,10,119,7,27,253,249,0, +159,10,230,3,237,243,81,239,131,245,206,246,108,244,223,253,158,9,40,2,208,247,203,0,166,8,126,255,168,248,142,252, +149,2,183,7,36,4,240,248,164,248,51,254,95,249,78,249,240,2,63,254,156,244,226,0,88,15,56,8,220,255,77,5, +148,9,127,6,13,2,232,249,130,241,36,248,89,9,126,11,89,253,174,246,159,250,185,255,84,9,85,13,45,255,142,247, +80,2,208,255,253,240,194,243,15,247,66,233,148,233,175,255,77,14,180,15,48,9,155,254,169,5,71,26,197,21,184,250, +177,238,55,243,170,242,238,236,53,243,38,11,205,26,11,14,37,3,3,15,92,15,56,250,108,244,7,1,51,4,57,249, +44,235,236,234,222,255,147,12,71,2,22,4,250,21,156,15,39,247,166,243,91,1,90,6,55,254,131,244,129,244,117,248, +143,245,239,248,121,10,218,18,81,9,223,255,98,252,59,253,89,2,56,0,250,246,251,247,219,255,80,1,179,0,74,254, +125,246,17,245,214,251,12,253,14,251,58,254,202,0,39,0,188,2,131,11,94,21,40,19,244,2,122,248,174,249,219,246, +4,242,114,247,202,255,15,3,68,4,223,3,128,5,45,10,34,7,115,0,246,3,64,5,103,249,221,243,135,251,1,255, +219,251,200,250,100,252,145,0,244,3,71,4,11,11,7,19,114,6,228,239,86,238,107,252,248,1,189,253,236,248,197,249, +122,3,80,10,189,2,214,249,40,253,27,4,147,5,225,2,188,253,82,250,229,251,120,253,185,254,108,5,240,10,18,5, +150,250,112,246,180,248,233,254,242,5,219,6,5,1,130,252,1,254,180,1,212,255,134,247,234,245,167,2,227,13,19,9, +168,254,95,252,46,255,41,0,212,255,62,0,120,254,138,248,199,247,141,2,61,9,243,0,22,251,152,1,221,5,10,3, +138,255,53,250,8,248,23,254,174,255,53,251,252,255,176,7,188,5,222,3,65,3,114,252,159,254,20,12,84,9,101,249, +168,248,241,253,166,245,1,241,88,253,4,9,157,9,172,5,129,255,177,250,78,253,26,255,31,248,122,245,177,253,153,255, +110,248,126,249,109,255,19,255,22,2,180,5,36,251,17,245,237,0,144,255,87,237,32,241,158,6,144,11,84,4,74,255, +9,251,96,253,178,0,108,247,232,244,97,4,8,6,33,244,28,239,7,249,244,0,151,8,79,11,193,1,212,249,137,250, +72,251,197,253,203,1,2,255,252,252,73,3,2,5,255,253,49,250,60,250,103,250,215,255,201,5,229,0,195,249,16,255, +180,8,168,8,233,2,19,254,103,248,238,245,85,251,94,1,172,3,182,4,73,0,112,248,132,249,246,254,77,253,176,253, +197,4,188,3,12,251,2,251,228,2,78,5,180,254,244,249,118,2,8,13,111,6,77,250,208,251,8,255,210,249,213,248, +19,253,168,253,254,253,161,255,92,1,89,7,186,9,56,1,237,253,189,4,76,2,237,248,141,252,65,5,144,255,51,244, +52,247,132,4,72,10,38,9,105,10,107,6,14,252,126,253,137,6,69,3,87,254,7,3,122,255,38,243,238,241,76,250, +101,4,123,12,117,4,215,244,1,250,205,6,114,0,156,250,42,6,108,10,139,252,16,243,189,250,89,6,227,5,223,254, +22,255,4,0,120,252,182,1,173,8,175,255,191,247,205,254,149,2,227,0,218,3,70,1,54,250,104,251,182,252,198,252, +222,3,85,2,12,247,164,251,170,4,26,250,213,243,44,4,49,17,35,11,243,255,167,255,226,9,27,10,139,252,204,251, +246,3,106,249,221,239,78,0,2,14,83,5,96,251,27,252,224,2,73,5,169,249,90,244,117,6,163,14,212,253,201,248, +114,3,41,3,176,1,116,7,174,1,132,245,236,243,120,247,48,254,164,6,73,1,243,244,251,248,185,6,129,11,248,7, +255,1,179,254,187,1,217,1,225,248,195,243,207,251,51,6,18,5,255,251,41,250,36,0,114,2,214,4,169,12,234,12, +191,3,185,255,20,255,19,252,27,254,25,2,55,0,30,253,229,246,174,237,44,243,201,3,74,7,202,2,143,3,108,254, +165,244,221,245,110,252,162,1,179,9,79,10,196,254,157,248,164,250,148,249,60,249,196,251,37,252,4,1,122,8,104,3, +110,251,221,3,54,16,57,15,63,8,204,255,229,240,45,230,70,238,160,1,210,14,180,17,181,14,234,4,147,245,237,240, +96,1,86,16,36,4,219,237,171,237,0,253,170,1,61,254,222,5,124,20,254,19,12,2,14,248,5,2,138,7,157,250, +111,245,22,3,1,6,47,246,191,240,214,252,106,5,225,2,203,253,63,254,66,4,83,5,113,0,29,3,23,8,178,0, +166,250,139,0,173,254,12,244,190,247,218,4,227,8,28,7,189,1,12,247,112,247,195,8,228,18,253,8,75,251,30,249, +137,1,111,9,34,6,80,252,219,250,243,0,79,255,176,246,151,248,1,5,56,9,105,3,119,0,151,255,223,254,11,7, +228,15,146,7,57,248,2,246,75,254,196,5,30,5,227,250,63,246,91,0,159,5,104,254,153,1,78,18,202,23,37,12, +73,0,89,254,146,0,133,251,83,242,44,245,144,0,9,2,34,254,66,3,56,11,5,13,48,9,93,254,77,245,159,253, +100,11,169,7,67,252,234,251,147,254,21,252,35,252,25,254,111,255,27,8,140,13,63,251,225,230,31,243,24,11,49,9, +247,249,153,247,191,252,126,255,239,1,245,4,167,9,31,12,252,2,159,249,97,2,31,12,87,0,174,241,217,244,41,252, +121,253,231,1,222,5,98,255,169,248,178,252,62,3,61,5,220,3,146,252,69,246,159,254,118,7,225,251,176,239,236,247, +206,255,243,250,157,250,128,0,93,5,217,12,2,13,97,1,207,0,207,9,167,4,140,253,125,0,13,249,15,240,117,253, +83,7,215,249,193,244,27,4,62,14,253,8,187,252,0,249,224,9,12,22,84,255,162,226,76,232,209,255,70,8,78,0, +220,244,23,239,103,243,177,255,101,10,222,5,176,244,102,239,131,251,1,1,213,249,91,247,169,253,218,3,169,3,167,254, +104,255,114,3,174,251,128,245,106,4,162,14,136,253,133,237,61,246,223,7,19,13,89,1,92,246,39,253,109,2,175,246, +33,245,176,4,70,7,32,255,7,0,254,0,127,255,206,2,155,253,216,242,158,248,5,3,206,255,179,252,237,254,217,255, +14,8,143,16,30,5,89,243,123,241,217,247,218,251,76,253,237,251,206,255,229,11,178,14,152,2,255,250,10,1,80,8, +82,5,124,252,233,250,122,254,60,248,58,239,131,247,95,7,48,7,216,251,251,249,94,5,26,16,184,13,236,3,224,0, +121,0,178,245,236,233,139,239,126,254,178,0,214,249,92,0,202,16,227,15,144,253,204,246,151,1,129,7,219,0,245,252, +134,3,233,5,52,246,70,229,99,238,120,6,183,11,2,253,114,243,102,248,250,1,17,5,208,1,133,2,147,6,39,2, +49,249,181,247,146,250,101,252,11,251,98,241,236,236,164,0,245,20,20,11,42,249,134,250,205,255,184,255,198,7,216,15, +243,6,194,247,51,241,191,241,82,248,40,2,76,3,53,251,208,246,96,248,21,251,123,1,83,8,72,5,183,252,35,249, +12,247,191,245,53,255,250,13,42,17,205,9,69,3,39,255,48,250,51,243,42,239,12,248,144,6,35,4,250,244,151,244, +148,3,65,11,189,8,66,9,121,10,97,253,121,231,108,231,135,2,64,16,229,253,52,238,112,244,59,253,119,3,10,12, +165,8,209,248,90,242,187,246,204,249,64,253,203,255,165,251,102,250,6,2,8,6,74,1,46,253,90,254,117,2,91,6, +217,6,176,2,2,250,123,241,169,243,6,255,56,4,48,3,144,6,120,5,123,247,107,239,141,250,199,8,46,10,255,1, +167,251,16,255,226,6,47,8,114,6,240,6,40,0,225,242,120,240,88,249,33,0,134,3,123,3,174,253,158,253,126,8, +186,13,15,7,142,0,156,253,222,251,62,253,4,253,25,247,201,242,108,244,25,250,90,2,217,6,73,6,77,10,218,13, +146,3,215,247,230,249,238,253,139,251,133,250,91,252,122,2,190,11,129,6,173,247,2,0,99,18,252,4,52,238,111,248, +255,7,8,252,207,242,247,0,29,9,108,253,48,244,91,251,1,9,186,10,10,252,52,243,121,255,220,9,130,255,191,245, +242,252,247,2,160,252,44,248,54,253,161,3,53,6,197,5,146,2,155,252,171,247,131,251,94,6,21,7,100,249,156,243, +108,255,19,8,97,3,178,0,193,5,34,6,242,254,136,252,196,3,117,7,138,254,85,247,78,253,235,1,48,254,194,1, +136,8,153,255,130,246,126,2,89,13,201,3,5,252,133,2,160,7,14,10,22,15,43,9,109,250,166,252,231,9,22,1, +168,233,15,235,4,6,206,21,240,12,52,1,82,4,40,13,242,9,252,254,196,255,101,7,194,254,237,237,49,241,58,2, +201,6,154,1,249,2,212,7,229,5,252,253,42,252,146,9,140,19,135,0,69,232,182,243,42,13,136,9,152,249,173,251, +1,2,135,2,37,10,200,15,116,5,198,252,21,2,131,5,62,255,158,249,176,252,235,6,207,9,126,251,209,240,88,251, +148,5,186,1,138,2,170,8,88,4,207,0,243,6,174,4,230,249,70,248,32,249,229,243,59,246,49,1,10,5,215,0, +105,253,239,255,171,9,19,13,16,255,218,245,210,3,195,14,223,0,216,241,238,248,224,8,226,12,51,5,20,254,2,250, +198,242,207,239,227,253,121,13,116,6,165,247,63,254,85,16,233,17,148,5,21,255,252,254,169,250,31,244,110,243,198,247, +54,253,198,2,133,6,92,9,128,14,210,14,226,2,30,247,143,249,198,2,161,6,65,3,17,251,97,246,74,252,226,2, +16,0,254,251,151,252,85,252,153,252,126,2,233,9,4,13,216,10,252,6,60,5,197,253,7,236,63,231,156,253,242,15, +216,7,177,253,102,2,16,8,250,9,9,12,181,6,206,250,116,245,168,248,83,254,228,2,239,1,42,253,153,252,11,0, +11,4,112,8,9,6,234,250,63,248,119,2,131,3,124,247,195,246,222,3,151,5,77,250,28,251,3,9,17,12,6,4, +149,3,169,5,204,253,97,249,176,1,198,5,95,253,79,244,112,243,242,252,77,7,40,0,138,244,67,4,238,25,15,8, +212,229,1,232,235,2,73,11,173,254,134,244,139,247,149,1,174,5,59,1,201,254,16,1,128,1,21,0,33,254,147,249, +207,247,105,255,163,8,48,6,38,250,32,246,159,0,180,7,95,0,20,250,255,253,75,2,129,4,44,5,157,254,96,251, +0,6,26,10,216,253,122,250,10,4,205,2,3,250,66,252,46,4,247,5,168,1,162,252,152,254,107,3,220,253,67,247, +246,253,164,1,108,249,121,250,190,4,204,2,161,250,214,251,47,0,239,255,0,252,166,249,102,3,125,16,17,9,144,249, +56,254,219,6,190,253,99,246,24,253,133,2,241,3,107,5,5,1,174,252,143,1,184,5,112,2,56,254,170,249,226,245, +231,249,124,1,91,3,195,1,73,2,159,5,51,8,22,4,39,251,210,244,191,242,95,249,21,9,19,12,3,253,64,253, +124,15,24,11,248,242,217,239,57,254,5,3,102,1,173,1,56,1,110,2,144,2,226,254,39,2,31,7,73,252,242,240, +58,249,42,3,146,1,58,2,171,4,72,0,213,254,128,3,13,4,118,1,52,0,176,255,167,3,191,8,234,5,234,0, +149,253,243,244,54,242,46,0,242,8,185,1,143,255,15,3,0,253,143,248,180,253,19,254,39,251,27,254,96,255,163,1, +5,11,228,8,160,250,0,253,248,6,117,251,28,240,244,253,99,10,213,4,206,0,164,1,75,1,201,7,23,11,110,252, +11,243,169,0,161,10,224,0,207,246,151,247,66,254,161,5,157,3,65,249,32,251,116,9,174,12,229,4,124,2,220,254, +125,240,112,230,210,239,131,4,162,14,201,1,17,240,11,246,2,11,95,16,135,8,128,5,21,255,231,240,220,240,6,1, +100,6,97,253,127,252,164,5,59,7,130,0,72,255,118,4,193,4,22,254,226,248,9,248,74,249,49,255,188,8,0,11, +227,2,240,251,205,252,169,0,37,4,63,6,230,2,245,250,198,248,14,2,17,12,197,8,92,252,222,247,106,255,45,6, +115,2,193,247,13,241,25,246,158,0,80,3,44,0,113,3,158,8,215,2,7,250,163,252,17,1,150,249,253,242,216,251, +129,7,222,8,211,8,34,13,17,14,110,10,43,5,139,252,88,246,139,249,147,253,190,251,229,251,24,1,81,6,93,9, +26,7,203,255,41,251,152,249,91,249,88,1,188,10,40,6,20,255,33,3,83,3,50,253,157,3,138,13,243,5,66,248, +118,245,4,250,194,0,88,5,179,3,13,3,30,5,176,0,45,252,104,1,98,4,61,254,122,250,176,250,116,249,118,250, +221,252,213,252,151,0,198,8,39,12,202,9,23,4,1,251,216,246,133,251,246,253,87,253,188,3,98,9,221,2,49,251, +173,253,21,4,84,7,12,4,61,250,209,246,72,0,194,4,228,252,75,251,132,2,119,1,179,250,237,250,163,255,117,6, +25,14,174,9,230,250,140,247,175,254,84,253,78,249,10,0,33,6,55,2,250,0,114,7,57,8,96,254,71,245,217,245, +250,253,54,5,21,3,86,251,227,252,7,6,162,3,200,249,242,254,20,12,70,10,150,254,149,247,144,244,159,246,101,255, +77,5,84,5,73,6,75,7,180,3,90,252,207,247,93,254,26,8,5,4,223,251,118,0,155,3,110,252,116,253,246,6, +29,6,51,251,45,244,195,252,206,15,115,15,83,250,97,249,207,8,123,1,99,247,238,4,93,6,204,243,224,246,111,10, +227,14,236,8,106,253,195,237,232,239,246,255,167,2,212,254,115,1,184,254,208,248,244,250,156,255,21,5,97,8,182,254, +205,246,233,253,144,251,46,239,174,249,227,11,202,3,54,248,78,255,29,2,110,252,12,0,121,4,207,2,16,7,217,8, +37,252,251,243,67,252,28,4,225,2,88,255,213,254,104,5,107,10,225,254,94,242,84,251,11,6,95,253,47,244,172,246, +170,247,101,245,117,246,8,252,98,7,243,11,101,253,98,239,130,239,56,240,198,248,78,14,205,12,38,242,193,236,46,250, +92,251,157,255,10,15,113,14,71,254,127,240,75,232,203,241,70,9,76,12,227,254,8,2,39,9,95,0,156,250,140,251, +174,242,217,235,82,243,56,249,98,250,195,5,96,19,115,13,19,250,20,243,61,251,23,254,196,246,243,242,188,246,40,252, +168,255,145,1,19,7,198,12,49,3,71,242,52,244,69,0,222,253,193,246,203,247,150,244,6,235,207,234,26,251,249,17, +31,23,36,4,26,251,245,9,155,13,231,254,252,251,185,254,45,244,205,240,182,254,142,4,142,252,63,250,174,3,5,15, +231,14,119,1,208,251,99,6,200,5,155,242,165,238,167,254,108,255,109,239,52,237,19,250,159,6,82,17,29,18,0,5, +245,255,118,5,179,252,178,239,8,247,254,0,215,253,142,253,74,0,129,254,167,3,59,11,44,9,229,9,234,9,190,247, +185,235,145,251,230,9,97,6,144,0,57,248,118,241,67,253,170,11,149,8,105,4,26,3,35,245,7,236,165,250,208,7, +169,1,121,252,179,2,144,7,194,7,85,8,123,5,143,253,223,249,200,254,47,3,243,254,85,249,72,1,52,19,105,21, +148,2,56,249,194,4,152,10,62,3,0,3,13,8,143,1,196,245,254,245,22,4,61,16,68,12,238,4,228,11,10,15, +17,253,60,240,239,252,50,13,163,9,76,245,38,230,22,240,87,6,244,14,123,14,161,13,57,3,75,250,119,3,13,13, +120,8,119,255,137,244,172,238,136,253,246,16,125,13,158,249,180,233,119,237,99,10,183,32,16,16,32,246,214,248,36,3, +214,252,64,249,185,4,184,11,179,3,146,250,116,251,49,2,135,8,234,11,99,9,164,1,14,251,170,251,164,4,223,11, +157,5,210,252,115,255,190,0,68,253,130,6,195,14,150,0,79,245,117,254,106,3,8,0,21,4,24,8,66,7,23,7, +100,2,25,0,158,6,180,255,253,238,132,247,30,13,232,13,35,6,107,6,36,6,13,4,250,255,237,249,77,0,199,10, +98,1,126,247,236,3,134,12,201,5,125,9,134,17,101,4,234,243,108,250,132,5,210,253,78,243,49,249,133,3,140,5, +206,3,172,254,160,248,234,252,210,3,75,0,209,254,183,4,154,3,156,255,72,2,32,4,74,4,141,1,188,245,77,245, +147,10,167,18,179,3,240,250,138,250,213,252,33,9,83,10,214,245,71,239,14,253,88,2,117,1,225,2,63,255,130,255, +43,5,77,2,193,0,227,3,185,248,231,236,47,245,214,252,175,249,222,252,74,3,71,3,240,0,54,254,178,1,242,10, +128,4,41,242,162,240,121,251,143,1,238,6,243,5,72,248,218,241,119,252,44,8,117,9,111,2,191,254,121,1,125,250, +106,240,252,252,33,12,59,0,7,244,0,253,235,3,11,1,227,0,167,3,150,7,156,6,202,252,104,252,67,5,98,253, +239,241,201,251,122,1,226,242,213,238,156,255,119,12,14,9,102,0,253,1,229,6,26,251,247,238,13,252,147,8,42,254, +174,249,80,5,115,7,179,1,165,4,66,6,50,253,112,248,196,0,92,4,113,250,44,251,106,9,255,2,242,242,20,2, +232,18,9,255,122,240,211,255,195,3,25,248,17,252,179,5,173,1,52,251,218,255,144,10,32,8,186,248,62,249,158,3, +155,249,48,245,222,10,27,12,246,246,246,254,106,17,209,8,137,1,71,4,232,247,197,240,234,1,65,14,81,8,241,0, +162,1,31,6,69,255,24,241,97,250,175,15,241,8,226,251,90,8,65,13,83,251,9,247,12,2,108,2,247,255,114,5, +116,5,234,253,115,254,222,8,188,12,86,5,10,2,56,4,15,254,64,248,34,255,143,2,14,252,75,253,30,6,132,9, +218,8,150,7,104,5,125,3,159,1,101,3,149,6,7,0,140,250,4,3,170,2,176,245,49,251,155,8,157,4,197,5, +226,14,136,2,227,245,146,2,239,8,201,255,167,3,99,11,249,2,170,249,113,252,229,4,112,9,30,6,55,7,134,14, +243,5,148,248,1,4,220,13,226,251,132,240,84,248,138,248,107,251,189,12,28,14,165,255,227,4,80,20,155,13,218,252, +145,251,112,255,12,248,116,245,126,6,11,18,206,4,22,250,94,3,124,8,182,0,66,254,106,0,115,252,222,249,117,255, +205,4,48,3,118,255,199,254,234,252,246,249,231,255,213,7,232,0,30,248,19,0,248,9,126,8,1,4,183,253,23,247, +3,249,152,252,132,254,47,10,26,17,153,0,21,243,2,254,85,8,248,0,55,247,75,248,201,2,197,10,124,7,66,3, +123,4,235,0,232,251,178,254,219,255,183,253,202,1,26,3,228,252,105,254,13,6,223,5,88,1,172,252,17,248,46,252, +253,2,208,252,233,246,47,1,251,7,153,252,217,243,215,252,174,6,50,0,147,245,194,250,160,6,234,5,24,2,167,7, +178,6,190,247,35,239,115,245,185,254,246,4,71,7,227,3,47,0,16,1,236,1,121,255,245,253,191,0,230,3,149,1, +67,254,89,3,127,10,116,5,74,250,251,250,204,5,5,9,78,1,237,252,235,255,32,254,189,248,40,255,22,10,87,4, +29,247,222,249,228,6,37,12,238,9,227,5,99,255,49,250,36,252,19,1,180,0,145,254,161,3,129,8,209,1,135,251, +207,0,162,3,140,1,22,9,72,12,158,250,89,240,107,0,213,11,135,1,1,250,110,2,178,11,122,8,41,254,41,252, +192,1,119,254,211,245,90,248,68,255,16,255,33,255,124,2,57,3,115,1,234,252,106,249,41,255,90,3,74,251,105,248, +84,0,5,0,105,253,194,7,131,11,52,251,52,238,174,242,110,252,238,1,105,2,104,255,91,252,61,251,146,253,212,1, +152,0,43,251,74,251,3,254,91,252,0,253,219,3,187,7,90,2,230,247,174,242,94,248,16,255,80,252,70,247,21,249, +152,254,82,2,160,1,253,252,232,249,148,251,77,254,56,252,184,244,83,243,148,254,194,3,237,247,134,240,240,246,81,252, +184,1,169,9,156,4,213,248,77,251,120,1,68,253,13,252,239,2,86,4,15,252,17,243,11,245,88,1,32,6,173,254, +220,249,1,250,4,251,217,255,0,255,237,243,191,241,72,249,91,249,238,250,205,4,2,4,179,250,69,251,77,254,187,251, +14,253,91,1,205,3,194,9,132,15,251,10,95,254,180,241,131,232,174,225,193,223,123,237,200,5,39,19,228,28,152,53, +142,66,0,41,68,5,64,240,197,221,81,208,136,216,30,238,142,4,13,33,207,63,227,74,30,57,97,28,171,5,224,241, +26,224,154,216,131,216,251,224,115,255,248,35,231,46,122,44,109,49,187,38,201,2,67,235,182,238,206,237,223,222,142,226, +1,4,24,27,196,14,39,0,16,9,81,19,52,15,26,5,8,248,159,241,168,251,204,2,82,252,1,250,49,249,115,240, +58,245,237,9,37,15,168,3,98,255,175,3,5,7,33,5,194,250,48,238,178,234,241,244,247,8,204,17,1,3,139,249, +124,6,120,10,15,254,236,254,8,7,225,1,173,254,148,1,155,247,239,236,182,245,39,0,41,253,233,254,171,15,2,28, +67,19,47,1,41,249,22,246,21,235,117,230,116,249,4,17,21,20,249,12,144,12,9,8,143,247,166,238,128,246,65,253, +74,253,210,1,200,6,125,5,182,6,146,8,244,254,165,242,28,243,173,249,250,248,5,246,14,0,58,16,24,11,96,248, +176,253,144,11,125,249,226,231,146,253,0,13,180,250,56,249,8,18,23,19,250,253,81,251,95,6,213,2,12,244,48,241, +98,253,222,1,88,247,48,246,94,3,196,4,211,249,168,249,239,2,125,8,20,9,31,2,107,247,223,248,185,2,119,2, +152,251,135,248,166,244,132,244,133,2,214,14,171,8,142,255,183,255,29,252,235,243,57,245,82,252,82,255,39,0,154,254, +57,253,152,5,99,14,63,8,189,255,172,1,49,3,11,1,60,1,122,254,4,250,156,251,225,251,179,248,206,253,97,6, +85,5,155,254,62,251,4,1,37,13,127,11,38,250,109,246,96,255,9,249,9,242,191,0,16,9,212,252,64,253,168,14, +239,18,135,10,192,4,255,252,25,247,156,253,130,0,86,244,142,240,69,255,127,8,249,5,10,9,198,13,3,7,44,0, +5,3,34,1,86,246,201,245,221,0,103,255,99,243,38,253,71,22,137,19,125,251,134,248,16,1,212,250,22,250,76,5, +224,0,56,246,10,251,29,253,71,250,144,7,240,15,105,254,193,243,29,255,120,0,241,243,116,249,199,15,165,17,86,249, +192,238,62,253,165,255,236,243,200,252,61,9,250,249,198,240,225,4,5,13,90,252,169,247,169,0,75,252,33,243,78,252, +65,9,163,255,207,241,129,255,226,17,103,6,135,244,177,248,216,2,128,5,250,1,251,245,9,241,77,253,189,1,151,249, +57,253,44,5,152,0,116,251,19,251,43,251,115,255,138,255,29,249,96,253,48,3,205,249,237,247,241,6,45,10,222,253, +100,246,5,249,83,5,208,16,20,8,174,247,101,250,37,6,61,4,28,249,89,246,135,255,243,3,10,251,117,249,211,8, +250,17,219,9,52,254,43,250,209,255,94,2,94,246,211,242,209,6,244,17,165,5,124,253,166,0,203,1,36,1,134,255, +155,253,133,255,248,255,177,1,166,11,64,12,0,255,249,253,34,5,206,253,5,246,95,252,92,3,8,4,4,1,128,254, +67,2,12,1,215,246,12,251,207,7,167,1,29,250,42,1,140,254,190,247,129,3,91,12,53,6,167,7,142,11,3,1, +18,248,247,253,233,6,151,8,209,4,166,1,101,255,222,254,230,8,167,18,204,5,249,243,49,245,118,249,83,253,225,11, +13,13,44,252,37,253,185,10,167,9,31,5,75,3,165,251,35,247,165,245,100,246,169,6,39,17,150,2,135,253,179,5, +21,253,58,253,65,16,212,7,107,242,215,249,21,0,189,248,91,2,15,8,124,250,91,255,216,13,209,0,242,240,22,250, +236,6,165,4,158,251,181,255,53,15,124,7,102,238,103,247,196,18,90,10,104,245,204,247,160,248,25,243,133,2,20,26, +209,30,112,19,148,0,24,238,6,233,172,243,3,4,181,12,76,6,193,251,35,254,75,13,38,25,182,17,120,251,160,237, +90,239,80,246,223,0,47,9,254,4,119,0,175,4,107,5,66,5,231,10,96,9,128,3,196,3,210,250,60,235,182,240, +191,3,84,13,252,15,112,10,8,251,9,245,27,251,64,253,58,254,156,1,236,254,56,249,129,245,156,242,116,247,27,3, +156,8,199,8,135,7,34,255,214,246,118,251,170,4,247,3,94,253,226,253,46,2,144,252,13,249,102,9,82,18,32,255, +61,247,13,9,41,9,121,247,199,250,16,7,78,2,168,253,203,4,17,6,156,251,189,245,208,254,106,8,129,3,23,254, +196,1,114,0,239,1,48,17,231,15,11,249,239,246,193,7,147,11,173,12,109,16,27,3,143,242,49,242,218,245,54,252, +12,7,82,4,103,250,53,254,135,6,176,11,11,17,255,8,183,246,200,240,102,240,16,241,242,5,195,28,227,21,139,6, +237,2,154,252,68,251,153,7,21,5,20,245,26,252,184,9,200,247,222,227,1,245,97,10,163,1,77,250,177,10,6,15, +162,251,96,248,10,7,125,1,122,241,191,245,110,252,139,247,24,255,154,13,251,7,122,254,56,4,62,5,146,253,32,0, +121,3,135,250,248,246,204,255,5,2,206,249,156,247,160,2,108,15,231,14,60,4,151,254,93,252,189,247,162,253,21,12, +7,9,31,249,241,248,179,0,50,252,218,250,142,6,168,6,44,247,14,249,49,18,253,27,99,5,80,240,208,245,13,0, +90,253,234,255,107,13,110,14,88,0,12,250,20,0,122,5,154,5,132,1,247,251,71,251,217,254,24,1,234,3,45,7, +116,2,144,247,228,245,115,2,100,12,239,3,137,246,103,250,194,3,6,0,165,1,176,14,211,5,138,238,85,245,48,8, +91,255,180,246,141,3,233,2,134,245,134,254,135,13,112,6,237,251,99,253,57,255,233,252,90,249,226,246,73,249,194,252, +229,255,118,8,36,13,126,5,125,1,38,6,46,2,186,246,28,244,63,250,1,255,147,255,37,2,248,7,199,4,145,251, +82,1,137,11,160,3,249,251,0,0,118,250,91,246,219,6,56,14,134,0,193,251,85,254,252,251,229,4,24,13,86,251, +151,237,59,0,4,19,236,9,210,247,155,244,23,253,148,0,179,255,18,6,211,8,212,253,175,248,140,255,60,2,4,5, +209,9,145,255,197,242,11,250,207,3,179,1,232,0,172,254,214,245,231,247,135,4,45,6,216,253,241,249,165,249,149,247, +129,247,222,253,25,3,237,252,169,246,42,0,170,9,116,1,6,251,57,5,218,8,98,250,89,244,235,1,187,7,88,250, +216,242,137,249,254,250,45,248,51,254,101,1,49,250,85,249,87,0,95,254,145,244,131,240,109,242,100,240,218,234,204,239, +169,253,133,254,59,243,250,239,188,242,77,247,105,2,146,254,62,226,220,213,93,232,164,248,189,253,151,254,74,244,240,239, +108,3,37,17,51,3,159,242,222,243,157,251,14,248,72,239,153,249,117,12,188,6,118,252,200,11,103,20,104,4,156,253, +212,0,230,250,67,251,102,1,146,249,66,244,95,0,163,10,231,8,75,0,170,247,33,250,58,0,220,251,159,249,107,253, +122,250,45,255,249,15,252,12,21,250,243,250,27,9,233,11,205,4,177,251,59,247,50,250,23,252,82,254,30,4,224,255, +158,247,128,254,56,5,131,2,114,11,176,18,115,254,141,236,133,246,73,1,48,0,32,3,220,5,228,255,212,253,166,5, +206,10,3,6,89,255,114,254,65,255,132,254,147,255,66,0,149,255,176,3,85,6,30,255,148,251,125,2,34,4,27,0, +230,2,39,6,129,4,242,5,59,3,252,243,32,238,7,0,33,14,154,5,161,254,209,6,173,9,173,4,95,6,158,1, +230,239,216,237,31,253,157,1,58,2,164,10,2,5,76,246,25,253,67,10,140,2,243,247,97,251,251,254,183,252,76,252, +139,254,101,1,177,4,118,5,164,1,197,255,251,4,29,3,203,242,221,240,9,6,100,8,112,243,48,243,94,1,102,0, +130,4,57,15,205,254,95,236,6,255,255,16,163,1,240,242,146,248,92,0,49,4,6,5,209,255,140,253,185,4,239,9, +42,4,190,251,236,251,10,255,33,251,8,252,249,9,130,13,142,254,172,250,0,9,239,15,55,8,207,251,185,242,54,249, +178,10,194,12,106,255,100,252,232,4,252,8,107,7,8,4,139,255,157,253,193,253,56,252,6,250,210,247,0,248,64,0, +180,9,223,8,20,5,74,6,159,2,235,249,25,253,190,12,92,20,228,7,221,244,244,242,222,254,18,255,48,249,152,3, +87,8,111,243,215,236,245,5,61,16,221,0,254,250,46,250,203,239,88,243,244,4,110,7,57,5,46,17,22,18,190,253, +52,246,124,2,129,5,164,0,73,6,134,4,213,241,205,243,37,14,73,14,249,248,207,1,120,21,22,7,85,243,207,247, +183,252,72,254,121,8,163,7,206,251,114,255,49,7,59,1,188,254,92,1,9,252,198,253,43,8,161,0,218,242,16,254, +81,12,32,255,92,241,193,253,163,9,109,0,139,249,177,1,255,5,180,0,175,253,221,253,128,254,147,1,241,2,239,255, +157,252,118,249,70,249,188,255,243,2,108,254,236,254,221,3,244,1,35,1,30,7,218,4,249,249,187,249,124,3,109,5, +125,255,155,254,223,1,200,0,218,253,34,253,223,252,139,0,29,6,100,1,142,250,126,0,50,2,78,247,13,250,135,8, +209,6,29,253,160,251,204,250,4,254,224,4,67,252,219,240,115,250,127,4,13,255,8,253,149,1,78,3,208,3,14,254, +44,247,144,1,168,12,38,255,166,238,187,243,191,0,127,5,56,3,33,1,225,1,114,254,25,249,37,254,124,4,41,0, +208,253,132,0,55,255,169,1,168,6,124,2,14,255,182,254,224,247,225,251,85,10,229,0,139,238,228,248,151,7,73,3, +148,3,73,8,23,0,157,248,185,249,206,251,236,1,115,3,102,248,10,249,72,10,93,10,103,248,119,246,101,4,9,5, +159,247,117,246,95,3,114,3,180,245,158,244,152,254,73,0,119,255,114,4,114,6,191,1,43,250,200,248,39,6,28,14, +168,252,68,239,54,251,198,1,152,251,68,4,117,14,172,0,189,244,9,0,25,7,238,252,238,250,124,3,77,254,44,245, +93,2,140,18,228,10,73,255,100,255,33,253,66,254,65,8,71,1,57,239,43,248,199,13,236,8,79,248,171,250,222,7, +141,11,222,3,236,251,196,250,195,252,208,255,14,4,222,3,118,0,5,254,81,248,255,249,216,12,130,18,91,253,170,244, +156,255,66,254,255,249,69,2,44,0,126,246,192,252,27,2,198,249,95,250,181,3,45,2,255,253,104,3,164,7,183,2, +113,254,127,2,218,4,175,254,90,254,195,5,178,1,157,250,202,3,153,8,28,252,107,248,185,254,53,251,36,251,226,5, +227,3,231,246,174,245,214,251,160,252,51,252,168,0,3,10,38,16,78,9,161,254,151,254,60,2,115,255,160,251,99,253, +160,4,173,9,106,2,173,247,63,251,197,5,77,8,177,8,92,8,166,252,133,239,123,243,233,0,156,7,231,6,31,2, +165,253,225,1,102,10,71,10,209,4,156,1,241,251,184,248,119,2,158,8,81,252,19,246,80,4,135,12,251,7,171,12, +152,14,179,248,80,234,76,253,85,12,160,254,238,243,135,250,235,255,163,7,225,17,58,5,20,241,45,253,173,15,6,3, +251,247,197,3,224,3,118,249,123,1,132,7,42,250,147,246,164,0,64,255,91,250,32,0,189,3,67,2,31,3,93,254, +149,246,228,252,215,7,80,3,87,251,133,254,95,254,51,249,218,4,77,21,7,9,156,241,138,246,129,9,95,9,109,254, +161,251,97,252,204,248,36,246,41,255,212,14,94,12,61,247,46,241,37,255,188,4,108,0,173,255,9,254,88,0,20,12, +38,9,180,243,83,241,151,5,6,10,104,251,13,246,114,250,145,252,243,4,57,18,190,14,6,255,47,253,82,4,64,1, +212,251,14,251,39,247,26,249,87,6,226,10,239,4,56,5,64,6,191,3,156,5,42,255,70,239,23,243,12,3,242,255, +55,252,135,10,56,13,233,255,219,255,94,3,138,249,219,249,179,6,21,1,254,244,47,3,24,18,47,0,190,239,21,2, +134,19,81,5,75,243,226,244,177,252,10,255,132,252,109,248,175,249,186,253,247,252,161,0,17,12,139,10,102,248,244,238, +97,247,181,0,252,255,159,252,222,0,156,8,94,8,7,2,46,254,167,251,24,249,123,250,174,253,86,253,15,252,3,1, +249,7,216,0,142,241,249,247,47,13,175,10,52,248,202,246,222,252,27,251,2,252,242,252,151,248,138,250,54,0,200,3, +39,10,17,4,87,240,91,243,244,4,23,253,21,245,223,8,121,14,154,248,118,242,164,254,67,2,122,1,5,2,41,251, +194,243,185,251,128,15,64,20,225,252,30,234,111,246,236,5,182,2,14,254,112,253,151,252,243,2,79,7,29,1,65,1, +152,4,5,251,244,246,173,0,204,254,175,245,134,253,93,10,125,8,54,253,9,245,232,248,199,2,134,0,232,246,200,246, +234,250,80,254,172,4,162,3,125,252,145,1,70,7,139,252,137,247,0,2,239,2,216,251,204,255,72,2,171,252,208,4, +209,20,210,15,167,255,211,254,45,5,101,4,9,5,230,9,71,10,228,7,62,5,108,255,145,254,178,8,158,15,157,9, +223,1,86,2,48,6,236,3,11,251,230,246,151,253,238,4,79,3,246,251,216,247,180,252,40,4,12,3,214,253,139,253, +207,253,254,252,46,254,233,252,248,252,125,3,120,2,234,250,58,0,252,4,65,250,158,250,253,8,165,6,115,254,137,4, +99,3,209,249,210,255,115,7,66,0,236,250,109,250,12,248,120,253,237,3,163,253,71,251,16,7,228,11,250,254,71,240, +34,243,164,3,205,4,251,243,122,244,123,5,176,6,166,3,221,12,166,6,155,241,245,243,213,4,220,3,105,253,120,3, +31,7,239,254,240,249,243,1,198,7,255,252,169,244,12,1,42,11,181,3,9,0,155,2,212,253,158,255,138,9,73,3, +51,247,245,251,44,0,185,250,65,255,10,7,28,0,76,249,14,0,22,7,193,4,76,255,120,255,55,4,86,2,204,251, +215,255,90,8,184,4,196,252,146,252,103,255,253,1,3,4,7,3,158,2,140,1,78,251,47,251,89,3,161,255,153,244, +225,250,12,8,35,6,194,0,165,3,234,2,166,253,55,2,15,11,4,3,183,240,107,242,21,4,8,5,180,251,220,1, +31,7,50,253,70,252,143,4,225,254,140,247,240,252,212,255,170,0,19,8,207,6,18,252,143,251,178,0,16,254,113,249, +68,248,240,251,6,7,119,14,121,6,41,249,251,246,166,0,147,6,224,253,24,245,125,250,253,0,225,0,78,3,173,2, +44,251,34,251,67,255,166,251,187,250,240,254,8,254,187,0,69,9,201,8,8,5,97,5,182,253,223,246,231,1,129,12, +217,5,49,251,57,247,128,251,140,5,161,7,211,255,158,252,38,254,138,254,105,0,164,255,124,252,69,0,129,3,90,1, +21,9,242,19,85,13,8,3,129,5,125,6,240,255,247,253,215,1,220,3,158,255,67,250,71,255,76,7,114,2,193,253, +72,7,179,13,139,6,10,252,93,244,199,247,178,4,155,2,179,246,8,2,46,20,203,10,251,253,183,6,114,10,11,253, +227,245,195,250,93,1,167,7,53,7,174,251,53,246,163,3,23,17,56,10,70,253,206,255,51,7,95,4,170,4,106,13, +80,10,7,254,197,255,164,4,252,248,129,243,114,5,132,16,190,5,230,1,114,11,227,8,236,251,184,248,246,251,74,254, +127,2,234,1,118,253,29,6,161,19,96,13,140,253,34,252,64,3,102,3,143,252,75,245,15,242,203,243,209,252,94,13, +106,19,255,3,27,250,150,4,241,8,79,0,175,250,136,240,12,230,174,244,202,11,176,13,68,9,248,8,11,2,148,1, +201,13,184,14,88,0,243,241,96,235,76,247,252,12,116,15,151,5,202,3,97,255,147,252,74,8,66,7,12,245,176,248, +247,8,220,4,3,254,211,254,207,246,226,247,136,13,67,21,175,4,149,246,250,246,186,2,223,12,143,6,190,253,1,1, +242,1,36,0,1,5,76,1,237,247,49,255,15,8,202,3,167,5,157,9,247,255,104,250,25,253,222,247,73,247,1,2, +8,4,81,1,82,4,118,0,95,252,244,5,229,10,224,3,238,255,56,249,208,238,122,245,136,5,138,7,20,2,217,255, +230,253,149,254,49,254,9,245,197,240,68,252,227,5,1,0,208,247,55,253,111,9,55,9,38,255,185,254,38,3,184,253, +107,249,110,251,73,246,165,244,178,3,18,10,128,251,131,244,195,253,45,3,119,2,62,3,69,0,110,247,6,242,16,248, +45,4,161,4,16,247,238,242,230,255,160,8,41,7,211,8,212,7,213,248,140,237,179,248,112,7,117,1,18,245,131,248, +33,255,82,251,196,254,0,13,222,10,184,248,192,244,45,255,44,2,91,255,37,1,227,2,77,0,194,252,6,252,9,0, +84,2,145,252,161,250,42,4,174,7,143,255,239,254,161,4,131,254,208,245,93,251,254,3,216,3,150,3,164,7,98,8, +148,2,137,251,23,251,52,0,42,255,201,248,182,252,215,8,1,12,167,6,103,2,189,253,161,249,96,252,186,0,83,254, +28,250,88,252,62,2,13,3,44,255,107,0,2,7,150,7,232,255,4,247,54,241,220,243,240,253,4,1,104,252,40,255, +90,3,58,252,20,248,85,0,245,4,172,2,62,3,247,0,76,250,79,251,145,0,202,255,115,253,252,249,128,242,216,244, +134,3,237,5,212,248,80,246,173,254,149,252,196,247,192,1,91,10,46,255,112,241,133,244,47,255,6,4,91,3,195,254, +59,248,68,248,166,0,149,4,209,252,136,245,161,249,201,1,163,6,162,9,242,3,232,242,156,236,143,251,253,6,69,3, +148,2,121,8,98,9,77,7,16,6,193,3,70,2,54,253,242,241,162,241,98,1,104,9,230,1,212,253,112,4,60,11, +83,9,181,0,59,252,215,251,164,245,132,243,122,255,43,5,195,254,232,3,156,13,245,4,97,252,44,5,136,9,28,0, +78,248,186,246,131,252,253,9,61,15,57,6,42,255,77,0,83,4,38,9,254,6,239,252,97,252,9,7,204,8,251,255, +56,253,46,3,172,6,133,2,5,0,94,7,61,9,218,248,192,239,157,255,236,9,124,255,3,252,181,0,27,248,198,245, +238,10,245,19,47,2,78,251,144,5,1,0,173,239,171,242,159,0,190,255,3,247,50,253,38,12,224,9,9,251,160,253, +13,11,204,3,228,243,132,248,187,2,63,255,190,252,31,1,107,0,136,253,25,0,124,5,50,9,112,5,204,253,26,0, +223,6,29,5,100,2,237,253,167,240,252,241,41,8,195,14,28,6,184,10,250,8,21,245,69,246,2,11,115,8,50,249, +212,252,73,4,161,254,8,251,233,3,2,13,173,7,26,253,149,3,172,16,214,8,131,247,68,243,129,244,12,248,109,4, +161,11,65,6,121,1,30,254,162,250,11,1,227,9,39,5,179,249,190,245,78,252,148,6,167,8,240,5,77,10,155,9, +208,251,123,248,193,3,107,5,169,254,130,253,194,253,105,0,213,7,158,6,80,253,129,250,15,251,1,250,149,254,2,6, +112,6,248,254,136,244,188,240,77,249,108,5,129,10,67,4,12,247,170,245,229,3,47,9,65,2,73,255,76,245,214,227, +195,233,142,255,21,5,157,5,29,12,144,5,136,250,137,254,113,3,238,2,158,6,216,3,183,248,73,247,219,250,126,247, +5,247,206,252,143,0,5,3,219,4,177,2,32,251,69,238,50,234,17,251,17,9,138,255,231,244,227,247,186,249,49,250, +164,1,32,9,131,12,9,9,38,249,0,236,108,240,46,247,20,247,6,251,33,255,18,252,149,252,105,2,217,3,215,4, +230,7,146,1,33,243,221,237,92,246,190,0,251,4,50,5,120,4,173,2,138,0,136,1,72,7,54,10,13,0,100,242, +96,246,7,4,229,2,54,251,157,255,220,4,158,2,144,4,75,8,203,5,29,2,91,250,32,240,128,248,76,13,169,13, +169,253,68,249,135,255,28,3,85,4,33,6,119,7,24,4,122,252,211,252,251,5,244,8,221,6,34,6,132,253,98,242, +231,244,94,252,241,0,188,9,62,12,67,4,100,7,105,16,53,9,15,1,11,4,226,253,229,242,177,250,227,9,204,9, +173,253,100,244,138,247,144,1,195,5,187,9,61,16,13,6,79,244,24,253,101,16,141,9,243,251,91,1,165,2,251,244, +54,245,213,8,252,18,236,9,68,254,80,248,113,245,10,250,199,6,125,11,132,0,226,247,159,253,178,3,176,255,52,254, +100,9,96,20,110,15,142,0,115,248,13,252,18,4,205,5,70,254,78,251,52,5,91,11,85,5,77,1,128,255,74,250, +32,1,241,16,54,12,69,249,134,247,222,2,14,8,86,7,196,3,27,1,251,4,81,6,163,0,47,2,34,10,136,8, +19,0,103,252,207,253,220,255,125,0,139,5,141,17,140,17,240,255,187,250,129,7,7,10,66,5,230,7,201,1,212,245, +92,252,11,5,24,253,0,254,219,12,43,12,10,1,62,3,72,8,208,2,56,255,77,4,182,7,86,3,229,252,247,251, +111,255,9,1,222,0,187,2,231,6,102,10,135,5,88,246,113,238,184,249,62,5,178,1,229,254,208,5,71,4,163,247, +205,248,28,9,143,10,161,252,164,254,134,10,20,255,109,235,235,243,251,6,81,4,107,251,184,1,219,10,110,10,93,3, +146,248,138,242,61,249,101,0,11,253,23,252,109,2,209,254,233,244,64,253,204,12,63,4,205,242,62,248,120,4,189,1, +225,254,137,253,17,241,192,239,167,4,204,9,188,248,45,249,202,7,109,5,133,254,13,3,115,1,35,248,70,248,42,253, +33,253,222,251,221,249,135,249,1,0,169,3,82,255,243,255,12,5,145,2,50,254,107,253,178,249,97,249,125,2,8,6, +128,255,140,252,227,252,137,251,237,254,231,2,80,254,99,250,83,253,232,253,146,252,236,255,137,2,211,0,127,0,203,3, +50,8,163,9,77,6,119,3,132,1,30,252,80,253,237,7,186,4,247,243,8,245,33,3,25,2,140,253,24,5,195,5, +71,252,141,252,27,3,57,4,22,5,254,5,105,3,173,1,89,252,1,241,22,241,241,0,110,12,181,12,94,8,253,252, +216,238,232,237,31,251,150,7,30,9,228,255,143,245,110,246,243,1,79,11,120,10,222,2,140,251,64,247,240,246,230,253, +72,8,248,8,21,255,66,249,185,252,13,3,66,8,177,6,229,252,21,249,63,0,51,3,144,1,226,5,109,3,39,244, +255,241,195,0,240,3,218,252,47,0,157,3,162,252,50,250,2,254,122,255,207,5,221,11,133,1,0,246,253,251,17,4, +194,4,122,7,77,4,172,245,184,239,160,247,72,252,139,253,3,4,216,9,131,10,38,8,215,0,237,246,170,242,127,245, +254,250,109,254,199,252,90,249,148,248,244,249,222,255,240,11,149,18,210,8,78,247,77,239,45,245,68,253,101,253,176,251, +63,0,114,5,101,7,101,9,220,4,151,247,232,245,103,6,157,12,55,250,107,234,210,242,206,2,248,4,62,255,226,255, +35,4,161,3,198,0,194,255,150,254,87,252,141,251,123,253,90,0,212,1,221,3,138,8,18,10,65,5,44,1,48,0, +86,0,126,5,81,8,80,251,124,238,15,247,12,3,206,255,112,253,116,3,171,3,148,0,58,4,53,5,90,251,111,241, +234,243,239,255,57,6,65,1,201,254,100,3,155,0,9,246,56,244,164,253,38,7,67,9,184,2,67,251,159,252,94,2, +146,2,65,253,51,247,175,244,129,246,27,247,113,247,185,254,231,4,213,254,210,246,64,247,101,249,166,250,249,254,60,3, +135,4,109,2,102,251,174,246,181,251,32,1,186,253,96,247,147,245,213,250,52,2,229,255,2,249,59,255,102,8,85,0, +53,246,215,251,33,2,42,0,211,0,213,0,30,249,124,244,115,248,17,253,109,255,83,255,142,252,195,251,233,250,102,246, +206,249,128,6,192,6,245,250,58,252,216,5,184,0,178,246,218,251,124,6,23,7,172,0,4,250,192,246,134,250,47,2, +190,5,6,3,166,253,202,250,164,254,185,6,30,10,251,3,34,250,26,246,4,250,236,0,81,6,232,6,248,1,89,253, +219,252,127,253,68,0,251,4,220,2,112,254,223,5,129,13,45,6,232,1,100,9,163,5,132,247,34,247,205,254,249,253, +128,250,63,250,125,253,182,6,122,11,119,5,2,4,31,8,250,4,122,3,47,5,100,248,9,237,158,251,137,9,235,255, +228,247,230,252,79,0,196,5,78,14,190,8,215,249,211,245,100,251,45,0,17,2,178,1,126,2,16,3,33,252,115,245, +227,250,236,1,16,1,190,2,152,8,118,7,40,1,124,255,230,3,121,8,100,5,12,253,198,251,190,255,142,252,145,246, +248,247,59,253,238,1,72,4,243,255,235,251,102,2,68,9,60,5,84,255,150,255,12,2,9,3,159,255,205,249,248,251, +218,4,232,6,140,1,136,251,253,245,87,249,69,9,203,16,16,5,59,251,1,254,42,0,79,255,17,1,89,255,25,249, +220,246,32,247,193,247,90,1,210,14,255,11,92,252,34,250,201,7,94,12,172,0,58,247,248,246,189,246,20,250,133,7, +217,13,73,255,220,241,166,251,17,13,27,15,246,4,48,251,139,244,144,241,0,246,182,1,70,11,228,7,104,252,81,249, +183,255,138,2,136,2,104,7,236,8,26,1,68,252,25,255,221,255,245,254,145,1,164,1,92,253,39,252,235,253,56,0, +91,5,92,7,159,255,58,247,82,247,229,253,217,6,88,8,158,252,139,246,27,1,168,4,186,250,102,253,254,8,71,4, +117,251,27,1,143,6,22,6,185,10,226,8,88,247,26,236,81,242,234,250,66,0,201,5,102,6,190,1,161,1,61,9, +166,13,45,2,221,238,15,235,219,245,6,249,16,246,241,251,232,1,67,253,163,248,66,253,32,9,20,20,148,15,148,253, +199,244,52,247,46,245,185,244,70,253,83,2,5,4,239,9,15,6,173,246,75,246,237,8,63,22,195,19,206,5,201,242, +144,231,168,235,158,249,34,9,229,13,114,1,75,245,141,249,138,4,39,12,175,15,49,9,215,252,80,250,135,253,195,249, +174,246,14,251,54,253,212,251,220,255,101,6,113,4,196,250,211,247,162,1,172,8,228,3,137,1,195,4,79,255,98,246, +44,247,16,251,138,254,238,3,237,255,22,248,229,1,32,11,242,251,248,244,53,12,123,26,56,12,57,253,169,248,100,248, +38,255,35,5,155,2,253,2,203,4,178,251,83,245,84,254,137,7,36,10,28,12,99,5,228,246,169,245,60,2,63,7, +33,0,221,249,239,252,27,6,107,9,247,2,14,255,117,2,184,2,108,254,193,252,248,252,234,255,231,8,193,11,158,254, +13,244,213,251,79,4,220,255,140,0,225,12,53,12,88,250,186,244,141,2,112,11,220,6,140,255,141,248,161,243,234,245, +251,250,181,254,237,4,136,9,43,7,0,6,36,8,203,3,49,252,248,251,152,255,170,0,36,0,116,253,29,249,216,246, +178,246,213,250,211,5,18,13,38,8,20,2,80,2,158,0,254,250,162,247,114,247,168,250,186,0,167,3,159,3,43,5, +189,2,223,251,77,255,77,11,106,8,234,245,161,238,59,249,75,1,223,255,97,0,27,3,159,0,67,253,109,252,165,249, +77,252,73,11,211,18,8,4,133,243,71,243,39,250,88,0,126,4,190,0,104,251,198,255,72,3,247,252,84,252,195,6, +30,11,59,4,62,252,180,247,212,247,143,251,188,251,46,249,10,253,246,3,81,3,105,254,74,255,41,5,50,8,230,5, +213,2,8,3,215,4,78,5,72,4,251,0,221,250,157,248,30,3,210,19,1,21,218,0,105,240,165,246,181,3,49,5, +107,1,131,255,48,252,59,251,112,0,166,5,194,10,97,17,198,13,5,254,11,244,30,244,122,244,112,250,190,9,69,17, +139,9,240,255,148,251,24,253,146,6,98,11,74,255,53,245,72,253,159,1,235,245,59,244,55,4,50,10,145,0,15,252, +229,253,153,252,2,254,41,3,75,1,112,249,5,245,110,247,230,0,194,8,21,3,89,251,135,1,131,5,244,249,58,245, +95,1,208,6,148,253,244,245,162,246,80,252,124,0,230,249,132,241,206,250,254,12,37,17,203,6,10,248,162,238,212,247, +94,10,246,9,106,250,113,246,195,252,74,254,47,253,150,253,179,253,96,253,119,249,23,244,195,247,237,255,96,255,154,250, +207,248,89,247,201,249,64,0,92,255,108,249,48,249,228,250,67,252,210,255,140,252,251,244,60,252,227,11,23,13,57,2, +148,248,54,245,74,252,193,4,44,0,48,251,98,3,181,6,4,251,57,243,155,249,46,4,67,6,175,251,244,243,237,255, +174,16,137,14,64,254,237,242,209,247,118,6,16,6,82,242,217,234,210,249,73,6,39,8,99,6,116,0,127,0,103,10, +178,7,231,247,249,245,29,0,121,5,82,6,148,253,61,240,182,250,106,16,220,6,212,240,111,247,113,7,39,10,50,16, +103,21,106,6,169,243,189,240,51,247,89,1,26,8,84,0,62,247,229,253,222,4,4,253,147,244,4,250,27,9,220,18, +184,8,221,242,148,236,172,249,102,3,142,1,187,254,181,255,105,1,132,1,124,1,130,3,222,1,171,249,37,249,208,3, +83,3,86,245,128,244,202,0,169,0,184,245,72,244,172,253,142,7,111,11,241,6,75,0,203,254,206,254,182,252,2,252, +91,253,217,254,211,254,210,250,167,248,239,255,182,5,157,254,213,248,39,1,32,10,136,6,87,253,48,251,112,3,113,10, +17,1,131,240,82,242,17,4,192,9,145,255,119,252,36,5,198,8,90,4,6,1,25,253,32,248,4,253,3,8,95,6, +233,249,214,244,167,248,130,252,190,1,22,10,9,13,147,2,78,240,15,234,126,253,233,25,70,31,188,8,223,241,81,238, +137,245,219,253,17,11,213,21,149,13,69,250,163,240,66,243,69,1,191,23,133,28,89,5,2,245,39,252,21,1,29,252, +61,252,7,0,204,1,199,2,101,255,126,250,110,250,26,251,189,0,40,16,172,20,28,6,80,251,177,247,119,242,163,249, +199,8,33,6,119,254,236,5,22,6,180,247,211,250,132,17,47,25,196,7,228,244,170,242,220,247,152,245,221,244,159,255, +75,5,132,253,160,248,127,250,18,251,199,251,62,250,210,246,36,255,147,11,70,6,76,252,46,2,238,8,59,4,29,0, +241,255,36,255,95,255,41,252,219,245,231,252,243,14,1,16,124,253,201,246,3,6,189,16,80,10,121,5,113,8,107,2, +207,245,177,247,191,6,247,16,142,17,155,10,81,252,190,239,215,239,159,247,227,250,180,251,168,3,98,11,2,6,143,255, +109,6,172,10,70,2,242,0,121,8,183,2,2,244,48,240,107,244,23,251,92,7,161,13,182,3,35,250,210,254,198,7, +12,15,117,25,228,27,91,8,241,240,75,238,138,246,188,249,90,254,231,2,41,253,32,248,59,251,47,251,201,254,217,14, +105,20,153,5,164,247,115,241,123,244,94,8,201,19,182,0,87,243,195,1,35,8,155,252,216,253,3,11,230,13,251,6, +156,253,58,245,71,246,203,0,85,8,77,6,191,255,106,251,52,250,182,251,234,1,35,7,4,4,214,255,213,254,169,249, +18,247,59,253,124,253,16,251,216,5,224,10,81,255,233,1,15,19,28,17,55,1,118,248,99,243,187,244,196,253,77,254, +161,253,159,10,230,14,43,253,215,237,95,238,119,250,13,12,235,15,129,0,43,246,116,247,62,246,167,246,254,252,19,255, +202,255,8,8,77,17,207,17,80,6,18,245,87,237,112,243,75,255,78,11,43,12,252,252,99,244,163,253,44,6,133,11, +186,18,163,8,187,239,65,234,12,249,122,1,105,0,107,254,25,255,126,5,249,6,181,250,60,244,130,1,53,17,200,19, +51,10,255,250,77,243,205,248,207,254,204,255,50,5,128,13,111,11,96,253,109,241,173,242,142,251,196,2,58,10,34,18, +6,18,77,8,171,250,157,240,66,245,166,3,94,4,119,248,94,247,206,253,240,251,122,251,39,5,116,12,62,11,141,5, +98,252,44,247,215,251,211,252,68,243,221,243,13,6,50,13,128,252,61,241,126,250,152,1,6,0,70,7,165,15,90,6, +1,248,178,245,140,249,254,254,54,6,62,7,134,3,153,5,250,7,172,0,144,247,133,247,159,253,199,0,208,252,228,245, +0,244,1,251,207,6,117,12,137,6,36,0,115,3,90,9,176,9,163,3,221,246,166,237,116,244,101,254,189,253,216,1, +252,14,49,13,15,253,104,248,2,252,207,245,193,241,228,253,6,8,133,2,17,254,130,1,34,251,0,237,56,241,177,9, +13,29,255,28,38,14,73,253,96,247,130,251,135,1,131,10,3,16,84,3,238,240,55,240,109,247,76,248,36,2,8,25, +108,33,29,17,233,0,47,0,6,1,70,250,4,248,218,253,57,255,2,252,211,252,236,255,203,7,180,22,48,25,48,7, +14,249,28,248,181,246,62,247,105,254,233,0,138,253,232,251,136,250,180,250,63,0,112,8,209,16,89,16,41,0,51,245, +21,252,186,252,156,244,78,252,174,7,184,1,75,252,252,0,48,3,94,8,242,17,103,14,223,1,62,252,56,250,246,249, +184,253,190,251,206,243,230,242,196,249,160,2,9,12,75,17,73,14,233,3,107,249,162,252,214,8,91,7,181,253,207,254, +106,252,13,239,107,239,129,252,158,1,91,8,84,20,231,15,176,0,161,250,152,247,212,248,149,9,6,19,54,1,61,241, +36,248,131,253,141,245,193,246,56,5,10,10,188,1,230,253,242,0,18,2,151,2,140,4,13,5,83,5,11,4,212,254, +29,254,63,3,62,0,238,245,175,242,143,245,73,248,148,252,3,0,250,2,56,13,245,22,186,15,49,254,19,248,242,1, +239,9,42,2,191,246,52,247,197,249,125,244,165,243,23,254,91,9,251,11,203,4,101,255,136,6,123,10,135,255,114,250, +240,0,90,0,158,253,220,255,193,249,179,244,233,252,53,251,32,240,236,248,177,4,109,250,154,244,51,0,233,5,63,6, +191,10,202,8,19,3,4,3,70,254,142,244,178,246,64,3,141,7,159,251,43,238,61,242,124,253,185,251,180,251,116,12, +215,22,122,13,138,1,37,252,107,253,186,3,98,2,90,251,79,255,74,4,122,251,183,243,90,246,90,251,10,2,227,4, +208,253,32,252,14,4,216,3,77,254,117,255,54,254,120,247,180,244,95,244,199,246,207,255,85,2,28,247,222,240,33,251, +199,6,48,3,199,247,162,250,4,11,154,15,250,2,93,247,198,245,178,253,46,6,60,254,196,240,68,249,251,8,237,3, +164,248,130,248,198,250,183,253,80,2,120,0,49,253,254,254,58,255,33,0,181,2,96,251,170,243,135,252,202,4,33,253, +178,246,111,250,15,254,182,254,88,254,101,253,15,253,10,251,84,250,95,1,68,7,142,3,85,254,144,249,97,243,51,246, +50,1,181,6,40,7,223,3,240,248,176,242,36,248,80,252,243,0,70,12,222,12,11,0,83,251,122,253,133,252,111,3, +242,13,73,6,211,245,184,245,157,0,94,3,159,255,205,1,20,7,103,2,46,248,100,248,238,253,163,251,132,250,232,0, +29,0,248,247,80,250,100,4,32,6,214,2,213,5,167,10,170,7,158,0,128,254,35,254,17,249,136,247,79,1,211,9, +251,4,227,251,60,250,253,253,40,1,41,1,217,254,227,255,156,6,225,8,89,254,83,243,38,248,240,3,99,3,158,251, +98,253,85,4,69,4,4,2,227,3,71,2,217,249,210,245,89,253,24,8,219,11,243,8,109,4,176,0,43,255,13,1, +42,6,143,11,175,8,96,251,6,245,88,255,92,5,90,252,167,250,159,5,94,6,52,253,3,253,239,0,63,255,90,2, +54,11,125,8,37,251,163,248,0,4,95,9,236,1,71,251,35,251,196,251,91,253,245,255,212,255,241,1,133,7,192,5, +144,0,225,3,175,4,231,252,253,255,96,11,115,4,57,242,25,241,168,253,117,3,37,2,109,3,70,5,199,0,170,253, +147,7,178,16,212,7,219,255,68,10,232,16,74,7,105,1,191,1,229,249,115,242,255,247,218,1,35,6,51,5,224,3, +24,8,116,12,195,4,175,248,82,251,73,10,34,18,241,10,139,255,98,252,192,254,203,253,158,251,1,252,24,252,247,254, +41,7,39,10,218,4,2,3,241,5,38,6,113,5,229,5,95,6,102,10,126,12,28,1,34,243,252,243,174,250,30,253, +48,5,199,14,170,7,91,249,188,248,29,254,141,253,69,255,17,5,7,6,170,3,174,255,26,248,105,247,15,1,214,3, +77,254,232,0,60,6,209,0,56,250,208,250,84,250,47,248,147,251,205,0,107,0,157,253,248,0,236,7,214,5,173,252, +110,251,29,0,161,1,216,5,123,9,177,254,113,240,118,240,0,249,219,3,223,13,35,10,201,254,7,255,108,1,24,251, +241,250,254,0,175,255,231,254,48,3,66,2,50,0,26,1,188,253,200,253,13,7,117,9,186,0,136,247,5,241,116,246, +130,9,148,13,163,250,110,241,242,250,214,1,210,4,10,13,158,19,10,16,196,3,145,249,250,251,128,2,73,255,42,248, +142,246,98,250,74,3,253,8,199,2,225,252,9,0,201,1,87,4,77,14,29,15,176,1,28,252,226,1,38,1,147,249, +87,249,44,4,249,13,75,8,118,249,224,245,179,253,198,1,30,0,152,253,26,252,30,1,221,11,168,16,55,12,80,6, +246,1,1,252,83,245,147,245,197,253,40,0,203,247,76,244,32,251,183,0,81,4,14,11,32,16,27,17,136,14,183,5, +32,252,249,247,129,245,183,246,165,252,163,251,222,248,67,4,140,14,163,7,141,2,153,6,109,2,79,251,99,255,153,3, +151,255,120,253,96,0,110,0,247,250,41,250,53,7,39,17,77,4,163,245,218,252,107,6,57,2,244,254,58,1,34,4, +86,11,125,14,114,5,198,253,97,250,254,242,181,244,38,4,115,11,123,7,168,4,136,254,169,247,190,252,227,3,81,1, +124,253,146,250,158,246,35,251,20,5,72,5,216,254,50,254,186,4,44,11,245,6,160,251,169,252,242,5,139,0,24,246, +145,252,201,7,84,8,153,4,193,253,27,245,123,248,186,4,84,8,86,4,193,0,193,252,65,252,90,0,8,0,28,255, +79,7,183,11,253,253,62,237,5,239,216,255,120,11,0,7,118,252,203,251,186,4,240,10,129,8,99,0,99,249,254,249, +230,254,14,254,107,248,117,247,125,251,239,254,109,1,122,3,115,4,22,6,50,7,177,4,163,1,209,255,177,251,210,248, +209,251,90,253,67,251,177,254,3,4,70,1,210,253,184,1,18,7,2,10,143,7,244,250,28,241,127,249,104,5,211,1, +192,249,30,253,213,4,22,2,166,246,242,243,210,254,196,4,93,254,74,251,83,255,0,1,193,2,158,5,61,2,197,253, +15,255,217,255,186,255,70,2,148,1,183,255,246,3,4,4,215,249,21,246,154,255,217,7,56,7,37,4,27,3,243,0, +160,252,189,253,76,3,47,254,72,243,144,249,45,8,6,4,161,245,232,243,6,251,93,255,163,255,95,253,211,254,102,7, +83,13,132,10,106,3,173,250,55,246,67,253,130,5,74,0,244,244,188,243,163,251,240,253,126,246,6,245,63,2,31,12, +32,5,170,251,249,251,127,254,131,253,159,251,222,249,230,249,225,252,101,254,73,252,81,251,115,253,104,253,82,248,117,245, +110,252,102,7,253,10,155,6,249,0,191,253,178,253,79,255,1,255,116,252,21,252,19,1,38,6,48,0,59,240,141,232, +163,242,46,2,141,10,222,9,40,1,179,247,248,248,55,1,238,0,119,249,206,251,124,7,197,8,232,252,220,246,100,252, +250,1,137,4,158,6,149,4,16,0,4,255,147,254,224,252,88,255,164,4,158,6,111,5,111,1,151,249,240,243,239,246, +57,254,68,1,187,255,83,255,6,1,36,2,81,2,130,255,217,250,63,255,121,10,48,9,142,255,197,1,66,5,66,251, +78,246,26,255,34,3,116,1,74,5,82,6,97,253,108,245,19,248,72,1,207,3,242,252,26,253,2,7,141,8,54,2, +176,254,96,247,124,241,195,252,212,8,177,3,76,0,38,8,161,6,177,246,42,235,153,240,195,0,55,9,88,2,58,249, +185,248,156,0,48,11,157,9,187,250,132,247,104,3,176,4,38,251,226,248,188,250,164,251,134,255,10,0,60,251,80,252, +226,4,68,14,104,19,137,13,71,0,252,248,248,247,237,246,16,247,150,248,34,253,96,7,150,11,161,255,182,240,57,239, +203,250,90,6,7,5,29,254,3,1,229,2,221,246,212,238,146,245,226,251,108,252,116,251,209,247,157,246,105,248,91,245, +97,247,197,5,141,12,151,7,255,8,217,7,134,244,2,228,124,235,137,252,41,1,60,250,15,250,139,5,93,8,105,251, +238,244,145,252,226,1,254,0,253,255,183,252,104,248,223,247,215,248,55,250,103,252,29,251,6,249,72,254,122,5,247,3, +202,254,11,1,253,7,137,7,113,251,246,236,136,234,125,248,11,7,201,3,130,247,141,248,124,3,172,6,30,5,42,8, +26,10,10,7,139,3,90,254,249,244,89,237,44,237,69,241,168,243,51,247,212,1,165,10,154,6,199,255,93,0,233,0, +254,0,97,5,126,2,158,246,15,247,193,5,88,11,26,0,167,242,151,241,17,253,209,5,167,3,94,2,164,7,185,9, +150,5,186,254,81,248,37,252,29,10,156,13,34,0,111,245,247,246,77,250,213,250,90,252,61,253,16,253,199,3,102,15, +78,13,144,251,226,243,122,255,174,7,226,255,87,244,95,240,227,244,191,252,243,0,207,1,227,2,46,3,99,6,193,15, +116,19,21,9,31,252,110,248,152,252,129,254,79,245,219,235,123,245,53,7,49,8,246,255,222,1,139,7,52,6,176,4, +17,9,88,12,54,7,53,254,16,250,36,249,57,247,105,249,244,0,89,7,97,12,33,14,134,5,247,251,211,255,165,7, +5,6,37,1,94,1,231,5,115,9,154,3,252,246,88,244,173,254,205,6,255,5,52,1,75,253,77,255,180,6,39,8, +144,253,184,242,113,246,232,4,85,12,214,7,179,3,120,4,119,1,212,247,107,240,139,245,122,4,197,10,71,2,50,254, +63,4,73,1,19,245,57,243,211,251,90,3,79,8,215,7,70,0,240,251,231,254,0,2,15,5,159,9,28,11,81,11, +57,12,0,5,22,247,219,243,232,252,119,1,244,254,138,1,120,9,163,11,229,4,118,251,134,245,135,246,224,253,225,4, +159,3,158,250,93,245,99,253,231,9,173,8,223,250,206,246,146,5,197,18,41,10,203,245,109,238,126,248,221,4,213,10, +88,10,21,2,214,247,68,247,155,254,2,3,166,3,105,5,45,8,199,7,87,255,121,244,236,247,8,8,229,12,102,2, +45,253,40,2,23,4,56,255,130,249,23,248,13,253,191,2,224,2,190,2,91,7,49,10,139,7,4,3,104,251,75,241, +104,241,164,1,225,15,243,9,208,251,22,253,251,8,224,7,186,250,185,247,86,1,88,6,91,2,124,254,64,254,148,0, +102,3,155,255,246,244,206,242,106,0,153,13,34,12,237,2,36,254,197,0,28,6,7,5,29,251,225,245,13,0,154,13, +33,12,193,251,132,236,75,236,76,249,121,4,160,5,6,4,133,5,55,7,208,7,210,5,112,254,242,249,121,0,89,5, +222,254,114,252,115,4,137,3,125,245,37,239,186,247,174,2,61,8,97,7,247,255,80,248,89,249,118,2,226,8,195,4, +50,253,17,255,70,8,79,11,28,4,47,251,186,249,192,255,54,4,69,3,143,1,107,252,75,241,29,238,131,249,59,4, +211,7,119,10,8,8,192,1,212,5,216,14,84,9,90,248,206,236,102,237,126,247,224,255,44,252,5,245,172,247,178,0, +230,7,227,9,240,4,93,1,25,10,157,20,181,13,14,250,235,238,167,243,99,252,243,252,113,247,253,246,115,255,169,6, +14,2,210,249,138,255,146,14,94,17,190,7,238,2,235,3,58,2,61,0,136,0,232,255,45,0,140,4,226,8,59,6, +201,252,140,248,193,1,245,10,21,7,52,2,235,6,220,9,236,4,181,1,4,4,142,7,90,9,184,6,144,0,9,253, +7,255,48,4,186,7,132,4,112,253,24,252,78,1,243,4,161,3,100,0,77,255,43,2,52,5,6,3,93,252,67,247, +162,249,1,2,226,4,194,253,61,250,243,1,93,8,50,7,75,7,167,7,146,0,155,250,42,255,45,4,228,1,202,0, +76,3,161,1,108,252,88,249,69,249,185,253,146,5,107,9,244,8,66,9,133,7,170,2,233,255,247,252,143,248,137,251, +35,3,62,2,215,252,232,253,75,2,87,5,25,6,10,0,137,248,39,253,10,8,142,7,37,255,7,255,63,4,55,254, +118,239,137,237,79,252,224,6,51,3,24,252,220,248,254,249,31,1,178,8,48,8,59,3,242,1,16,4,228,4,127,1, +112,252,246,251,29,254,192,250,186,244,48,246,236,253,79,1,195,252,187,247,236,248,26,254,252,2,208,5,170,3,132,255, +78,2,180,6,101,0,104,248,205,251,117,0,26,253,11,250,251,249,60,248,156,248,104,254,71,4,24,5,246,0,158,254, +199,3,150,7,142,0,76,248,25,249,17,253,133,254,148,255,182,0,149,255,109,248,177,235,115,230,162,242,38,4,185,9, +25,3,206,252,154,0,89,7,12,1,184,243,73,244,182,254,249,1,23,2,226,2,10,250,196,239,76,245,238,253,38,250, +32,250,148,8,233,17,159,8,242,246,90,235,244,238,180,254,37,8,25,3,138,254,211,1,195,0,141,248,109,245,140,250, +60,0,142,2,95,1,8,254,217,253,194,2,228,5,227,2,242,254,139,254,204,255,126,0,95,255,209,251,168,250,60,0, +215,5,8,4,197,254,98,250,70,246,89,247,114,0,98,6,88,1,156,250,98,251,227,0,167,4,25,2,46,250,85,246, +155,252,64,5,53,7,125,4,205,1,146,255,249,254,101,254,30,246,163,235,7,244,104,11,16,16,108,253,84,245,134,0, +127,5,201,253,250,249,64,254,158,1,50,255,212,250,147,252,240,2,215,3,191,2,59,9,84,13,224,3,213,248,255,247, +254,250,49,251,95,250,136,251,189,255,168,2,229,255,209,253,223,1,105,4,55,2,212,3,3,9,8,8,133,1,163,253, +235,252,207,250,18,247,130,246,111,252,157,3,61,4,24,1,223,0,16,0,205,251,173,252,152,5,185,11,90,8,105,255, +166,247,53,248,120,0,58,3,18,251,104,245,121,251,23,4,149,3,204,251,5,249,187,255,252,3,226,254,197,252,172,4, +141,10,59,7,163,2,220,0,144,251,87,241,192,237,72,248,125,4,252,5,169,4,55,5,167,252,19,239,57,240,166,254, +242,7,158,7,235,4,64,4,252,5,144,6,193,2,242,252,250,246,204,240,66,241,80,255,218,15,77,14,211,253,249,248, +244,4,30,10,93,2,206,253,176,253,205,252,159,1,22,7,142,0,5,248,170,251,39,4,123,5,108,253,44,245,203,251, +212,10,156,10,96,254,180,250,203,253,93,255,25,2,170,3,88,3,233,6,227,7,175,255,8,248,15,247,194,250,172,1, +214,2,203,252,188,0,0,14,120,14,192,0,203,244,138,243,194,255,76,11,232,1,16,244,11,253,232,11,98,8,192,255, +120,255,106,254,8,249,240,245,212,247,210,254,63,8,231,12,151,8,206,255,237,251,99,255,45,3,141,5,147,8,228,3, +67,245,140,237,119,243,199,250,24,0,142,6,73,8,241,5,21,9,217,13,174,8,169,251,204,242,244,246,213,5,31,14, +151,2,176,242,93,246,189,6,68,11,80,3,248,255,189,3,253,6,30,8,237,4,205,252,89,250,151,2,63,9,4,5, +3,250,38,241,175,245,89,8,94,18,133,4,18,244,179,246,123,0,122,2,208,2,162,5,116,7,134,11,155,13,178,0, +192,240,228,245,142,5,147,7,73,1,238,254,78,254,225,1,209,9,195,8,213,255,214,255,232,7,199,10,95,6,251,255, +11,254,84,4,138,11,157,10,30,3,161,251,182,250,211,1,40,8,51,8,190,6,185,5,13,5,15,5,200,254,201,244, +177,248,22,7,17,11,178,6,248,3,189,252,150,244,218,248,64,3,203,7,224,8,41,9,19,6,209,254,23,245,238,240, +26,250,102,9,244,16,199,11,67,255,34,248,146,252,193,2,107,4,253,6,63,9,234,6,30,5,31,5,143,255,172,243, +61,235,70,241,107,3,151,15,204,12,219,3,56,250,206,243,211,250,82,10,124,16,8,11,209,2,130,253,83,254,27,1, +187,1,161,4,14,4,63,249,86,246,107,3,63,10,122,6,78,5,164,255,188,245,246,250,44,10,186,16,187,15,246,7, +99,248,39,240,249,245,98,255,209,7,150,10,16,3,233,254,152,6,220,10,0,4,56,251,126,246,138,248,57,0,84,5, +220,5,94,3,199,249,41,239,235,240,54,251,170,2,239,5,116,3,138,250,177,245,231,251,108,5,182,8,126,4,167,254, +192,253,78,0,104,1,64,3,204,6,125,3,255,247,47,243,49,252,28,6,124,7,114,4,142,254,66,247,228,247,153,0, +65,7,243,10,27,11,14,1,55,246,23,249,238,255,175,253,85,249,120,250,224,254,20,3,104,4,80,4,128,3,69,253, +176,248,59,0,96,6,217,1,204,2,99,5,19,246,94,231,239,241,109,2,157,2,183,251,39,250,91,254,232,2,106,2, +21,1,177,3,101,4,90,1,30,254,249,248,159,245,138,249,86,253,58,253,107,254,226,253,247,249,233,247,59,246,100,248, +210,4,220,12,250,6,77,3,15,3,124,250,199,245,113,253,104,3,243,4,171,3,98,246,207,233,94,245,125,11,87,15, +128,2,12,250,215,253,218,1,154,254,122,255,39,6,246,3,147,253,236,254,121,252,184,243,203,247,188,5,150,8,96,254, +237,242,40,241,85,250,84,0,10,0,206,7,225,16,27,10,102,255,111,0,121,6,245,9,6,7,96,252,108,247,248,253, +138,255,160,247,2,245,81,252,123,5,52,8,210,3,93,2,161,5,137,2,137,252,218,255,181,7,240,11,30,12,167,6, +6,0,205,253,153,250,201,249,94,3,249,7,30,252,126,242,103,249,37,10,248,22,242,17,187,3,189,3,180,6,123,249, +144,243,93,0,72,1,66,243,126,241,157,251,207,2,180,3,78,255,21,1,5,15,28,22,28,16,179,11,68,2,34,235, +41,220,132,229,64,252,1,14,221,12,182,1,92,2,170,4,70,248,106,245,92,9,211,20,63,8,97,245,208,235,140,243, +231,3,41,5,59,251,139,252,96,3,40,2,34,252,43,242,193,235,67,247,213,5,156,4,163,4,163,14,204,14,236,5, +12,3,46,254,42,242,73,238,35,245,138,247,6,242,156,242,199,0,91,12,48,5,66,250,35,0,99,12,233,13,97,8, +71,2,50,252,30,249,172,246,236,240,230,241,254,255,214,9,83,1,46,246,85,251,84,7,254,7,225,0,23,254,226,254, +44,0,219,3,89,6,86,3,180,254,218,251,198,250,96,252,153,254,103,0,143,5,18,9,22,1,148,245,33,246,107,0, +213,7,34,7,220,1,152,0,30,6,157,7,168,254,217,248,134,2,224,14,100,11,69,1,80,4,12,10,10,0,176,247, +242,1,123,8,230,0,198,2,152,11,208,2,126,245,177,250,136,3,131,1,78,1,214,6,125,8,7,8,175,8,183,3, +36,249,196,243,234,248,190,2,23,8,164,4,10,252,106,246,226,248,139,0,12,6,70,6,97,4,80,4,114,5,200,1, +5,248,223,244,109,1,206,13,1,6,51,243,31,239,105,255,26,16,12,14,95,253,185,242,237,247,84,1,115,2,29,0, +172,3,30,8,222,4,121,0,154,2,251,2,183,253,182,254,45,6,147,5,55,255,247,255,25,1,1,248,55,241,220,249, +149,5,111,5,131,0,180,0,255,0,96,255,202,2,191,7,178,6,27,6,107,9,70,6,67,252,169,246,121,246,47,246, +77,245,153,245,202,251,53,8,111,12,142,0,15,244,183,243,90,249,51,255,84,7,236,14,156,12,114,255,130,247,249,255, +28,9,83,2,131,246,24,245,199,251,174,1,19,1,20,254,205,2,108,7,200,254,71,247,173,252,55,254,239,249,140,255, +197,5,4,1,19,253,37,252,238,248,242,251,242,0,19,252,206,251,21,8,109,10,128,253,101,246,178,251,118,2,243,1, +41,253,106,1,80,12,34,9,109,250,17,246,221,251,213,0,180,3,237,0,136,250,146,251,106,255,9,253,198,251,100,253, +251,252,10,2,164,10,154,6,3,250,60,245,77,248,108,252,85,253,38,250,70,253,229,9,19,14,123,3,253,250,168,252, +26,1,3,2,112,254,210,251,197,254,60,2,157,2,235,0,13,251,37,247,221,254,109,7,212,4,143,1,28,2,251,251, +9,245,221,250,155,4,84,2,220,248,195,248,4,3,204,7,220,2,236,254,64,251,46,244,75,245,129,255,191,5,228,11, +98,19,83,9,200,241,73,233,156,244,230,6,219,21,226,16,148,248,80,234,61,240,201,249,141,2,166,11,66,14,8,12, +168,6,169,248,89,236,128,242,165,5,163,20,223,20,225,5,28,245,215,239,56,244,66,253,40,6,31,6,206,255,232,252, +47,251,95,251,128,4,125,11,47,5,48,255,115,1,177,1,191,0,178,5,189,9,201,6,74,1,50,253,146,250,4,247, +59,242,174,242,156,249,75,255,69,4,24,13,127,17,173,9,225,252,4,246,146,250,227,8,149,21,235,20,202,6,154,245, +210,238,26,246,165,254,252,252,167,247,183,251,207,9,212,18,201,9,180,249,92,248,143,5,123,16,135,16,235,6,202,251, +233,248,153,249,136,245,102,245,100,254,34,5,73,7,119,9,85,4,63,249,154,248,215,0,117,1,235,250,51,249,240,254, +33,6,133,8,151,6,13,5,213,1,35,251,184,249,28,0,107,4,86,5,250,7,90,6,144,252,152,245,67,248,200,253, +232,1,74,7,52,11,212,5,41,249,160,242,25,248,26,0,121,3,137,6,72,11,250,11,18,6,220,253,12,249,122,250, +202,254,186,0,113,2,243,6,136,6,99,252,68,245,230,251,21,7,211,11,174,12,10,13,137,9,146,0,241,246,192,244, +208,251,249,1,163,1,172,3,3,8,74,1,239,243,128,241,98,247,187,250,120,0,40,10,166,11,141,3,49,254,65,0, +72,4,226,4,114,0,142,251,37,254,20,7,62,8,192,248,179,230,18,231,101,247,237,4,5,10,215,11,119,8,11,254, +182,245,183,248,3,4,70,13,142,15,65,12,247,2,113,246,113,242,243,249,146,255,255,252,145,249,240,248,197,250,60,255, +189,2,39,5,117,9,144,8,132,255,134,252,91,3,16,5,188,254,170,251,22,255,183,3,197,3,240,254,244,253,144,3, +64,6,209,3,217,0,233,250,251,244,151,248,192,0,65,2,9,254,115,249,116,249,36,0,197,2,207,249,65,242,253,246, +75,2,127,11,110,10,15,255,11,249,84,252,200,250,195,248,131,3,87,13,106,8,63,1,128,0,22,1,100,3,205,6, +195,5,82,2,103,255,50,252,110,253,47,2,107,254,78,244,249,243,255,251,181,252,46,246,128,246,103,0,90,6,48,255, +107,245,104,248,36,3,206,3,255,251,42,255,157,12,226,12,13,252,194,239,82,241,240,249,178,7,57,19,27,14,17,1, +43,3,152,15,76,15,72,3,81,255,219,4,244,2,139,248,240,246,17,254,213,253,172,250,199,0,179,4,27,255,183,255, +69,7,133,4,171,250,71,250,172,4,54,15,176,14,215,2,68,251,105,254,81,255,245,249,130,247,23,251,51,4,19,14, +141,12,58,1,241,249,216,247,231,250,38,9,37,21,184,14,147,3,37,1,200,252,137,242,23,238,255,245,4,6,32,15, +197,6,151,252,112,255,160,1,215,251,162,251,24,0,116,0,198,3,217,7,77,254,202,241,70,247,13,5,226,6,112,1, +113,1,76,2,240,252,80,250,166,0,254,2,22,251,98,247,178,252,236,0,116,6,221,15,80,13,217,253,234,249,195,5, +167,10,237,0,191,246,74,246,198,253,18,5,204,4,78,254,98,248,153,245,247,244,194,246,158,251,190,1,80,5,233,4, +227,2,126,0,16,254,0,255,3,4,112,6,198,1,40,250,209,245,163,246,184,249,169,251,161,253,96,1,200,3,140,3, +149,3,139,2,65,255,220,0,131,8,217,8,101,252,64,241,146,242,226,249,170,253,241,254,68,2,12,5,146,2,74,254, +247,253,63,0,34,4,4,11,245,12,68,3,72,250,24,252,237,253,78,251,181,255,170,8,21,8,75,255,42,247,215,243, +123,251,59,10,71,13,61,2,248,249,159,247,202,245,187,250,146,6,167,11,141,5,59,251,56,243,89,244,98,253,28,0, +73,248,199,244,15,255,186,13,246,16,111,4,107,247,80,250,84,5,116,6,229,254,194,250,52,251,213,250,50,249,1,249, +41,251,9,255,16,5,210,10,61,8,242,254,176,255,149,11,198,11,69,252,69,245,203,253,197,3,37,0,6,251,108,248, +169,248,205,251,52,255,161,1,133,2,113,255,72,252,32,0,248,6,245,8,198,6,130,1,213,248,207,243,31,248,208,0, +172,6,10,5,185,252,54,249,199,255,246,2,185,253,93,254,118,6,6,8,16,3,174,0,66,0,143,255,78,255,72,254, +39,254,69,255,111,252,143,249,35,254,38,1,142,252,122,253,41,5,72,4,235,252,182,251,94,254,179,255,7,0,243,252, +146,250,69,0,205,4,137,255,5,254,96,8,173,14,171,5,139,248,245,246,255,0,6,8,97,4,191,255,188,255,48,253, +105,248,185,248,224,252,1,2,255,6,173,5,139,255,242,254,139,0,216,252,72,252,9,1,196,254,189,248,105,251,48,0, +113,254,78,252,217,251,156,250,217,253,223,4,75,6,218,2,219,0,4,0,6,2,155,8,17,10,15,255,129,242,117,243, +248,255,162,6,249,253,106,244,244,250,233,8,206,10,4,0,207,246,20,249,229,3,244,9,70,5,188,1,211,6,84,9, +68,2,254,250,206,250,203,254,178,2,153,4,254,3,56,1,6,254,209,253,74,255,76,253,145,253,92,9,106,21,156,16, +236,1,188,249,42,250,16,255,255,3,209,2,46,254,86,254,234,0,62,255,185,250,175,248,53,254,52,9,46,11,28,255, +23,246,73,249,201,253,196,255,13,4,238,5,77,2,49,0,217,255,99,252,159,251,63,3,7,10,234,5,180,252,245,249, +44,253,137,254,242,254,221,2,7,5,175,0,96,252,230,251,33,250,18,248,136,252,238,3,91,3,165,250,189,245,151,250, +225,0,195,1,246,1,145,4,96,6,237,7,192,7,245,254,139,243,74,244,231,253,146,2,47,1,225,253,7,250,97,250, +105,255,193,1,182,255,231,252,242,252,36,6,117,18,85,13,208,249,75,243,38,252,17,1,217,1,221,4,103,2,55,250, +164,245,180,243,91,243,140,250,239,4,1,10,111,13,82,17,79,12,174,251,161,237,9,241,36,0,183,6,88,1,49,254, +247,252,157,245,79,243,237,252,88,1,222,250,228,248,154,253,14,0,192,1,199,3,218,1,190,254,147,253,156,251,167,249, +84,250,102,254,144,7,56,14,122,4,22,242,213,237,64,248,70,255,86,253,231,250,112,254,44,6,156,10,156,6,12,252, +45,242,96,244,224,4,128,15,205,3,190,242,206,243,57,1,168,7,133,2,168,252,182,0,5,9,206,6,115,252,9,248, +61,249,228,250,28,1,172,7,44,4,173,253,247,254,127,1,85,255,245,253,116,254,107,253,150,252,53,253,62,253,142,252, +192,252,50,1,101,11,127,18,66,13,201,2,92,254,245,252,132,247,40,242,170,245,228,0,160,7,55,4,137,1,157,4, +130,0,30,245,161,246,240,4,116,10,51,7,208,9,182,11,154,1,199,244,140,240,8,246,56,5,69,21,3,21,224,4, +110,246,224,241,52,245,234,254,179,8,95,11,6,10,204,8,205,4,88,254,31,250,181,249,94,254,151,6,14,8,37,255, +143,248,1,250,19,249,56,245,202,251,245,11,105,20,83,14,230,3,229,253,129,250,246,246,217,247,76,1,3,13,132,17, +71,13,101,3,73,248,110,244,195,251,77,5,14,8,168,6,231,5,249,3,220,253,247,246,179,248,76,6,198,19,106,20, +34,11,55,1,89,251,85,252,114,0,110,253,213,245,11,248,1,3,162,7,137,3,247,255,164,255,14,1,112,5,251,8, +232,3,119,252,123,3,244,19,79,18,41,251,229,237,151,248,46,4,113,0,163,250,234,0,170,11,189,9,212,250,207,242, +65,251,232,6,75,13,26,16,168,7,127,245,91,243,175,6,167,15,207,0,64,244,178,251,133,8,103,8,244,253,215,247, +59,250,149,253,158,0,90,6,196,9,190,9,164,13,0,17,196,9,127,0,226,0,16,3,255,252,211,242,124,236,84,239, +70,252,166,8,44,7,12,252,5,250,249,9,209,29,252,31,224,13,158,250,22,247,0,1,155,9,106,5,75,247,211,237, +241,241,163,251,185,254,147,253,93,3,148,13,125,13,201,2,152,254,248,7,36,18,35,15,97,255,156,241,14,243,163,253, +180,2,249,0,17,253,12,247,246,244,118,252,5,4,58,4,170,3,203,4,246,4,177,6,38,7,60,1,140,252,191,252, +168,248,120,243,174,248,39,1,231,0,90,252,250,251,215,1,182,9,227,9,11,3,138,1,235,2,163,252,196,247,51,253, +243,0,169,253,165,252,53,253,93,250,77,250,19,0,117,3,133,254,25,247,118,250,155,9,143,16,199,4,236,246,148,244, +135,249,37,1,36,6,126,2,66,254,154,1,166,3,196,255,88,253,173,252,159,251,165,252,141,251,92,248,201,255,189,14, +136,15,63,255,194,241,45,244,43,0,67,5,239,254,251,251,223,1,226,2,189,252,118,250,67,252,167,254,75,2,177,2, +208,0,205,3,254,3,171,251,40,250,55,3,42,8,124,9,19,11,18,3,96,247,67,248,240,252,87,249,165,246,104,249, +205,252,200,1,96,3,78,253,185,254,11,13,47,18,117,4,79,245,73,242,46,249,185,0,112,1,230,254,252,254,215,254, +132,0,60,9,56,13,100,2,160,248,20,254,144,7,136,6,19,252,126,243,214,244,129,249,62,247,112,243,120,247,158,0, +217,9,130,14,152,7,46,252,182,253,65,10,23,17,20,14,23,7,41,0,34,254,38,2,90,3,103,251,91,243,250,246, +163,254,214,250,236,244,84,255,7,12,87,6,160,254,90,6,77,12,155,3,49,249,101,247,229,254,118,10,93,11,184,255, +10,249,249,249,115,248,227,249,187,1,205,5,167,7,211,12,131,11,80,2,250,254,106,2,141,3,210,1,124,0,236,1, +154,4,79,0,211,246,83,245,152,251,193,1,238,8,55,11,77,0,98,246,38,251,93,4,105,9,184,10,241,3,73,250, +173,250,149,0,101,2,18,2,10,255,86,250,98,252,21,255,13,248,204,243,90,252,148,5,32,9,156,9,77,2,94,246, +142,243,154,250,97,0,7,254,81,248,174,253,86,12,175,11,62,251,140,247,51,1,57,2,29,254,184,0,37,4,59,3, +94,253,98,244,205,245,144,2,113,6,117,2,249,5,168,6,72,254,14,254,254,2,33,255,102,254,184,4,51,1,21,250, +69,254,109,2,154,255,62,0,69,2,200,254,208,251,117,254,79,5,57,9,18,0,188,244,135,252,238,10,96,8,179,255, +188,254,133,252,179,248,30,250,216,250,107,251,200,1,133,4,65,0,153,0,255,2,125,255,52,255,226,5,162,7,2,1, +247,249,60,249,219,254,113,0,236,248,171,246,75,0,207,6,179,4,120,2,243,254,48,248,219,247,235,1,164,12,206,12, +100,1,182,246,104,246,78,250,234,252,179,255,225,253,201,249,117,2,38,18,118,18,255,5,56,254,194,252,141,253,151,254, +77,251,93,247,6,249,182,250,213,250,156,254,94,0,182,254,116,4,16,12,171,8,10,3,179,2,240,254,136,249,112,250, +87,252,62,252,192,253,60,254,181,254,135,3,175,5,168,0,136,251,113,249,67,252,52,5,65,6,28,249,20,243,132,253, +119,6,185,6,202,3,8,252,104,244,2,248,246,2,25,11,163,12,141,6,84,255,234,254,165,0,149,0,131,1,231,254, +15,250,180,255,236,9,239,8,37,3,55,0,135,250,249,248,134,2,214,7,70,1,166,250,112,248,122,249,122,254,76,1, +63,1,141,4,60,4,152,253,119,254,166,2,151,250,108,241,95,245,151,254,228,5,171,4,60,245,198,237,68,255,251,12, +44,5,30,0,239,4,160,5,87,7,29,10,13,255,44,239,151,237,177,247,204,4,247,10,54,0,144,244,92,251,29,4, +142,255,126,250,70,248,109,244,119,251,41,13,232,18,13,7,8,248,17,242,106,249,83,2,211,254,225,250,34,2,255,3, +53,249,20,242,66,243,248,248,175,5,143,14,205,5,151,247,18,246,235,0,232,12,53,11,37,251,189,245,125,4,182,11, +187,253,111,240,166,242,35,252,136,1,71,254,21,248,233,247,122,252,13,3,146,13,194,19,202,11,215,254,177,250,32,0, +115,7,198,4,181,245,101,236,150,243,121,253,118,0,92,0,194,253,111,252,153,2,231,8,36,9,196,7,121,0,81,243, +0,245,217,6,105,12,21,1,122,250,112,249,86,243,113,241,10,253,84,9,33,8,161,0,245,2,153,11,130,7,181,247, +223,241,254,250,82,4,145,6,83,4,10,0,91,251,84,245,245,239,170,244,254,1,198,7,18,3,179,0,163,3,18,5, +66,3,250,0,17,2,66,7,103,10,223,8,191,6,254,1,162,248,9,245,155,252,89,4,156,4,9,2,204,255,254,250, +91,244,224,244,11,0,186,7,114,2,8,255,162,5,152,5,122,250,224,244,131,248,175,254,23,7,180,11,180,7,254,5, +29,8,28,2,122,251,97,2,111,12,89,12,228,4,43,250,0,243,226,247,163,255,106,254,29,253,217,2,5,6,2,2, +167,251,119,246,146,246,146,252,100,1,11,1,35,253,196,249,195,253,30,5,40,2,90,251,174,1,43,11,61,7,214,254, +248,251,24,252,125,2,235,12,212,12,53,4,63,0,74,252,227,242,90,239,75,246,149,254,91,2,145,0,97,252,154,253, +99,3,94,5,238,3,75,3,124,2,233,2,250,5,33,6,14,1,42,252,236,250,105,252,4,253,174,249,144,247,220,252, +43,4,64,6,197,2,203,249,87,242,93,250,19,11,166,11,55,251,154,242,191,251,47,7,145,5,227,250,109,247,22,255, +213,4,20,3,227,255,108,251,52,247,89,253,79,9,123,8,39,252,253,246,83,252,91,0,50,254,236,250,106,251,40,255, +252,2,91,5,49,5,154,2,67,1,186,255,100,247,9,240,200,248,227,7,222,6,128,249,86,243,157,247,186,254,154,4, +166,6,246,5,47,6,209,3,242,251,3,247,144,250,171,255,104,1,109,1,252,253,25,247,221,246,234,2,96,14,13,10, +41,251,50,244,65,252,192,8,57,12,169,4,245,251,79,250,255,250,29,247,77,244,82,250,7,3,170,3,229,253,20,252, +156,0,43,2,52,253,215,253,93,9,248,14,130,4,30,250,107,252,10,0,166,249,157,240,180,241,245,252,31,5,243,1, +158,251,82,250,21,252,158,2,244,13,35,14,83,253,207,241,170,248,117,2,195,2,175,252,249,245,159,247,27,5,190,13, +183,3,44,245,7,246,45,4,144,14,194,10,118,0,86,253,38,255,136,252,112,250,227,253,140,253,89,248,22,251,170,4, +181,5,19,251,102,241,242,244,54,4,7,14,27,6,51,248,42,246,204,254,126,5,26,4,199,253,35,250,239,252,225,1, +193,4,141,5,251,2,95,253,247,250,168,254,233,2,138,3,119,3,148,5,120,5,103,253,109,243,43,244,92,254,54,5, +247,5,224,6,34,7,11,1,227,245,234,239,37,248,235,6,51,10,223,1,112,253,224,253,16,251,237,249,12,254,59,255, +230,253,162,0,104,1,36,252,98,251,246,2,253,7,126,3,76,250,30,246,190,250,2,0,120,0,203,3,134,10,242,8, +1,0,172,249,250,243,216,238,85,244,174,0,14,6,60,6,94,7,134,4,67,254,174,252,108,253,217,250,241,250,212,3, +148,13,56,10,66,249,119,236,189,239,199,248,42,255,125,9,19,18,81,8,211,245,65,243,34,254,36,4,147,4,39,7, +74,9,221,5,227,254,234,250,34,253,100,255,235,251,71,250,242,1,166,9,242,6,240,255,223,254,180,3,29,9,201,10, +84,6,98,255,70,254,43,3,156,3,42,253,237,251,157,3,154,7,215,3,231,1,54,2,86,255,237,254,188,3,161,4, +111,1,1,3,128,6,189,4,50,0,145,252,119,252,213,3,219,11,150,8,130,255,164,253,215,0,165,1,34,1,142,1, +180,2,235,4,10,7,107,7,228,5,248,2,134,1,38,1,26,250,114,239,22,242,58,1,231,9,148,9,178,9,61,9, +25,9,199,13,156,13,32,3,233,252,187,255,212,255,104,253,75,254,172,252,69,248,202,250,134,4,227,13,220,16,121,9, +104,254,90,252,178,0,21,2,33,4,242,8,120,8,41,4,216,4,17,6,32,254,228,242,8,245,248,6,225,18,13,8, +64,247,46,247,74,1,84,6,158,6,124,4,58,0,3,0,44,4,38,5,123,2,190,255,99,254,72,2,109,9,173,10, +213,6,243,2,64,252,212,247,20,255,218,7,8,7,113,6,144,10,15,9,147,2,146,255,214,255,222,1,31,5,94,7, +17,11,250,13,83,5,241,245,34,241,39,248,210,3,101,16,197,17,119,3,220,247,8,247,94,246,61,248,145,1,250,5, +95,2,53,2,230,4,16,5,39,4,36,0,188,252,81,3,132,8,43,255,88,248,39,255,127,0,59,247,83,245,134,251, +162,252,249,249,233,252,226,5,247,10,123,4,192,252,115,1,233,8,246,3,191,248,251,242,48,245,254,253,32,4,175,254, +221,246,127,246,67,248,190,250,214,255,79,255,54,250,8,253,153,3,59,4,100,5,155,8,236,5,201,2,197,4,168,1, +60,247,34,242,165,247,15,2,102,8,185,3,48,248,219,238,94,234,248,238,177,254,89,12,231,14,152,12,96,4,16,246, +106,244,237,2,237,9,243,4,190,3,241,2,218,248,223,236,173,230,231,232,15,247,50,9,173,18,127,18,191,6,113,240, +52,232,238,253,55,22,170,20,246,3,194,248,121,245,166,244,63,243,162,241,19,243,17,249,87,2,11,11,119,11,8,2, +46,249,8,249,15,1,146,13,115,18,162,4,154,242,164,241,138,249,161,249,236,249,253,3,54,11,169,4,52,250,10,249, +84,255,203,1,66,253,112,250,20,254,124,1,170,255,169,252,224,252,14,255,235,255,98,0,90,4,92,8,147,3,138,249, +3,247,250,251,80,255,123,0,114,1,36,255,217,251,78,254,41,5,75,9,125,6,99,254,252,249,225,255,164,7,217,6, +120,2,27,2,70,2,105,255,247,251,45,249,168,248,140,253,255,4,36,9,191,8,250,2,123,248,166,243,169,252,58,9, +154,10,211,1,61,249,20,247,241,251,55,2,99,0,152,245,65,239,234,249,16,13,173,15,152,250,160,233,2,245,98,11, +70,15,100,3,250,251,32,254,209,3,212,7,151,4,176,250,42,245,204,250,84,4,205,6,177,0,29,251,112,253,78,2, +131,1,191,253,5,253,135,255,56,4,4,8,82,5,10,0,202,1,126,6,113,4,9,0,178,255,23,254,116,250,6,254, +29,7,39,8,185,254,244,245,249,243,158,246,217,252,248,3,143,3,69,251,41,249,34,4,49,15,234,13,98,4,108,252, +144,250,181,253,55,0,193,253,45,249,122,247,155,250,173,1,152,6,226,2,200,251,61,252,138,3,108,8,106,7,169,3, +135,0,79,254,156,250,31,246,131,245,200,248,144,251,192,253,232,0,77,3,127,4,28,5,92,3,111,0,119,0,215,2, +73,5,118,7,12,5,146,251,55,244,109,246,5,252,98,254,51,254,215,252,81,254,231,5,3,9,241,253,201,243,213,251, +149,9,96,8,250,251,50,244,79,246,253,253,184,2,34,254,41,247,73,250,45,4,135,6,29,0,50,253,185,2,4,8, +225,4,207,251,91,244,211,243,180,252,14,9,18,9,92,250,164,243,248,255,188,7,160,250,58,237,26,243,251,0,215,5, +203,1,91,253,144,253,194,0,86,2,50,2,56,2,122,0,246,253,2,0,243,4,250,5,210,2,247,254,205,251,62,251, +220,253,48,0,73,0,161,255,197,254,240,252,148,250,161,250,80,255,77,4,76,4,65,2,181,0,179,252,119,251,120,3, +83,8,106,254,189,242,189,242,178,248,70,254,177,3,247,6,240,7,77,8,154,6,76,4,64,3,207,255,194,252,22,1, +183,5,221,1,50,251,123,245,26,239,58,238,80,245,177,253,69,6,105,12,184,8,17,3,25,4,107,255,218,243,76,246, +193,5,136,12,75,6,62,248,57,230,97,224,124,239,133,1,106,7,5,5,13,0,52,254,49,2,156,2,170,252,8,253, +220,6,4,16,166,15,177,254,240,229,8,226,74,247,227,6,116,4,34,1,1,3,206,1,74,252,152,248,88,253,56,7, +146,8,51,3,231,6,249,14,22,13,220,6,35,0,120,240,235,225,102,231,0,250,85,6,93,6,6,1,186,1,217,6, +126,0,245,242,140,245,113,6,93,16,123,14,65,6,65,253,64,251,155,250,53,242,97,240,240,253,135,6,103,2,73,0, +230,255,115,250,171,247,4,252,132,4,195,13,109,13,220,3,225,1,106,2,74,246,59,242,5,7,82,21,232,6,7,243, +101,238,161,244,55,251,243,250,10,250,70,3,245,10,222,3,127,252,54,254,214,252,128,250,75,3,218,13,169,12,11,4, +35,253,163,251,98,252,52,249,67,247,73,253,183,255,105,248,36,248,126,4,129,13,65,11,98,0,93,243,239,244,168,8, +128,20,182,9,13,250,155,244,25,247,139,252,59,254,78,249,17,248,154,1,45,13,130,15,93,6,135,251,199,252,83,6, +147,7,141,0,231,251,182,247,41,240,74,234,200,233,200,239,29,249,225,252,2,0,169,14,32,26,12,16,65,2,162,2, +169,4,38,2,156,1,218,250,140,235,101,230,49,240,146,249,35,252,200,252,80,1,186,12,201,22,152,20,70,11,58,6, +143,6,100,6,145,254,192,239,8,232,196,237,164,244,98,246,201,249,29,0,23,6,144,10,161,10,87,8,170,9,189,8, +242,255,212,250,45,254,42,252,18,244,61,246,199,1,176,5,14,1,253,0,198,5,104,5,40,2,185,5,235,11,17,10, +165,3,204,1,138,2,192,0,254,253,248,252,66,255,81,5,91,9,48,6,104,2,208,4,58,7,4,4,12,1,65,2, +128,3,86,3,101,3,154,2,150,1,101,2,96,2,198,255,154,253,35,252,95,251,54,0,147,8,180,9,201,3,160,1, +60,3,91,255,102,247,216,246,244,255,198,6,59,3,174,252,35,252,66,0,1,5,134,7,225,3,56,253,238,252,227,1, +33,2,87,252,77,247,206,247,242,254,157,7,98,8,41,1,210,252,38,0,252,4,41,7,15,7,100,2,51,250,163,247, +207,251,247,251,54,248,151,251,67,4,255,8,52,10,125,7,215,253,250,246,98,252,179,4,203,4,127,255,40,251,193,249, +129,249,95,247,152,245,158,248,253,253,78,1,192,2,173,4,3,10,83,15,6,9,201,248,252,242,106,255,47,12,177,6, +7,243,225,233,219,248,45,10,73,7,35,254,140,0,232,6,203,10,70,13,4,6,8,247,26,244,151,255,229,7,10,7, +52,3,83,255,54,252,223,249,44,247,77,246,236,250,169,4,244,12,49,11,61,2,98,255,124,2,33,0,1,253,180,3, +62,11,102,9,104,4,176,254,113,244,137,238,41,245,114,255,140,5,159,7,58,2,123,249,227,251,101,6,182,8,118,5, +97,6,62,5,227,254,1,252,220,253,218,0,50,4,43,2,139,251,249,253,169,7,90,6,212,249,180,241,104,243,162,250, +200,0,180,0,203,254,198,1,253,6,111,9,80,7,78,2,145,1,192,4,144,1,235,251,45,254,108,254,156,246,229,246, +129,0,94,2,105,255,129,3,173,7,217,4,104,2,134,5,102,9,188,6,66,253,152,246,234,248,212,255,38,6,245,5, +162,250,241,239,167,244,112,0,64,4,232,0,236,251,48,249,10,253,38,1,248,251,1,245,190,246,51,252,87,0,233,4, +64,4,184,250,66,246,26,0,90,8,21,1,103,247,238,250,144,3,191,2,42,251,37,249,135,254,224,0,221,252,27,254, +0,7,26,7,37,251,95,246,8,255,66,5,59,0,12,249,195,251,39,6,2,7,193,249,20,243,137,253,144,7,125,3, +105,248,142,243,216,251,145,7,91,5,140,251,238,253,86,6,189,4,106,1,148,5,111,5,223,252,127,250,106,0,49,254, +65,241,1,236,205,245,60,0,184,1,27,0,22,1,105,4,197,6,26,4,5,0,94,1,170,3,128,0,56,251,211,245, +182,241,45,246,128,255,99,0,24,252,88,253,62,0,49,0,23,2,42,6,106,7,176,5,172,4,124,5,97,2,100,248, +152,243,197,251,60,2,159,252,4,246,128,246,201,250,132,0,149,3,19,1,239,0,89,8,192,14,40,12,227,2,66,251, +218,251,52,0,181,253,247,244,177,240,166,245,77,254,103,2,82,0,33,254,50,0,60,6,78,14,113,16,22,5,201,245, +159,242,18,250,244,254,221,252,255,250,94,0,84,7,141,3,116,248,27,246,255,252,85,0,20,1,16,8,180,13,232,6, +10,254,241,255,90,2,0,252,89,249,242,255,248,3,170,3,234,3,42,0,85,252,183,3,217,13,143,11,55,0,209,246, +249,246,128,1,12,9,198,4,196,255,255,255,215,255,14,2,228,5,229,0,229,248,139,251,143,3,198,6,115,3,83,249, +222,240,255,245,123,2,73,9,165,9,168,6,203,3,242,4,126,4,250,253,24,250,199,251,236,251,54,252,93,255,169,253, +177,246,215,245,254,253,75,6,120,8,193,6,230,6,38,10,51,11,194,5,217,253,7,252,56,0,3,0,56,249,16,246, +136,248,73,250,242,253,123,5,57,8,55,6,208,9,75,15,50,9,250,250,151,246,43,1,147,10,178,5,216,251,141,250, +199,253,140,252,194,248,154,246,189,245,254,247,154,0,27,10,30,9,115,255,59,253,134,5,134,9,234,4,28,1,116,1, +231,4,39,9,222,4,246,246,72,238,225,241,115,250,211,1,67,4,1,1,213,253,155,253,32,0,37,7,99,11,238,3, +186,250,69,251,239,255,161,3,167,5,80,0,64,247,22,247,30,254,7,1,25,253,226,247,76,250,96,5,167,10,136,2, +79,250,147,252,237,3,43,7,200,2,73,253,232,254,26,2,242,255,45,255,100,1,156,253,164,246,122,247,194,255,227,6, +186,6,96,2,227,3,84,8,222,0,106,242,39,242,26,1,121,12,35,10,163,0,41,251,37,251,115,249,79,247,89,251, +160,0,150,1,30,4,109,7,248,1,54,248,154,246,217,251,212,1,32,10,150,17,54,14,217,1,231,248,179,246,250,246, +126,249,118,253,183,0,128,5,1,9,47,3,72,249,239,246,106,251,135,3,28,13,121,12,2,255,130,245,155,246,19,250, +110,254,157,1,68,254,73,253,136,6,253,12,123,6,240,251,106,247,82,249,113,253,185,1,216,6,70,7,117,254,110,248, +3,252,156,250,251,243,186,251,30,12,61,13,197,1,110,252,140,0,47,6,15,6,34,0,128,255,92,10,222,19,159,13, +109,252,164,240,95,241,28,249,244,2,202,11,163,12,189,6,178,4,92,4,240,252,96,246,64,250,49,2,237,6,82,5, +204,250,126,240,67,242,249,249,206,252,105,251,51,249,226,249,42,1,52,9,172,10,120,9,74,9,74,5,21,252,32,246, +229,250,91,4,204,6,211,4,41,7,245,6,121,252,159,241,53,240,96,247,183,3,121,10,36,2,89,248,80,253,172,5, +167,1,82,249,48,251,93,6,153,15,215,14,37,5,107,249,237,242,73,245,224,251,138,254,133,253,16,253,112,250,116,244, +165,242,196,248,11,2,160,11,2,20,161,19,180,6,32,249,190,247,213,253,43,1,140,1,21,0,205,251,166,248,118,247, +26,244,144,242,55,248,112,1,2,11,123,16,77,11,122,4,230,5,140,2,255,246,199,247,251,3,125,6,252,255,120,251, +76,250,133,254,214,2,78,253,128,248,108,254,93,1,39,253,223,253,244,1,121,4,171,7,76,5,113,253,86,253,59,1, +21,255,250,0,107,9,134,9,161,2,250,254,98,250,65,244,158,245,38,253,110,2,167,1,166,251,198,248,111,0,48,10, +88,10,210,2,35,250,4,244,113,245,5,255,22,8,146,8,190,1,19,251,74,249,152,249,122,248,174,249,94,0,146,5, +219,2,42,253,176,249,89,247,71,249,15,2,236,8,114,9,211,10,220,10,109,2,52,251,115,254,19,3,200,2,154,2, +126,3,255,2,194,0,240,252,100,251,78,254,25,1,173,3,177,6,163,1,134,246,200,244,180,251,190,255,104,1,222,2, +199,3,46,8,33,10,249,0,54,249,119,253,89,1,25,253,55,247,186,244,110,250,6,5,169,5,152,0,11,8,0,18, +139,10,253,251,195,246,209,247,193,251,39,3,24,6,124,255,45,248,111,249,77,255,59,0,151,253,68,1,96,11,139,17, +43,14,139,4,61,251,183,246,91,247,104,254,148,11,131,19,53,12,82,255,5,252,191,1,40,5,251,255,93,249,184,251, +58,1,210,253,35,247,15,248,185,254,32,8,5,17,1,14,192,254,55,245,121,250,107,4,209,6,116,0,7,252,125,0, +201,3,224,253,139,247,204,246,12,248,132,253,226,8,56,16,87,12,105,2,162,250,240,249,179,254,158,255,192,249,101,250, +225,8,228,17,40,4,94,242,119,245,97,2,235,2,141,252,117,255,227,10,71,18,18,13,13,1,130,251,173,251,236,247, +10,245,211,251,103,5,120,7,20,2,246,251,94,251,191,252,166,247,253,240,159,242,110,248,134,252,143,2,80,11,7,16, +248,9,204,251,196,244,85,250,208,251,202,243,99,242,56,250,196,1,50,10,10,16,72,10,174,2,2,5,197,8,76,5, +0,253,19,244,24,241,236,245,130,249,248,247,19,246,38,246,149,251,163,7,180,17,59,21,190,19,31,8,213,245,207,238, +48,245,35,250,241,249,144,249,214,250,157,255,65,3,252,252,30,244,252,246,21,2,72,10,199,13,206,11,78,3,182,251, +211,249,230,246,143,242,94,247,9,2,210,2,107,252,179,253,0,2,189,251,240,240,51,241,26,255,38,16,83,24,91,20, +93,8,69,247,46,232,209,230,167,239,254,244,102,249,134,3,136,7,207,251,20,238,188,241,225,6,175,23,63,18,12,2, +232,252,135,3,33,10,52,9,32,254,5,242,148,242,115,250,106,251,190,247,117,249,88,2,70,13,162,18,56,17,186,15, +56,14,74,7,43,253,99,245,124,244,22,252,158,0,238,248,219,243,215,252,189,7,158,13,57,17,138,12,130,2,199,2, +113,9,14,6,73,251,26,246,177,249,43,0,85,1,246,253,47,255,197,2,209,255,115,252,68,1,77,7,26,7,226,3, +146,2,2,5,199,6,248,254,98,241,4,239,252,250,35,5,166,4,92,0,232,252,244,248,165,248,217,0,96,10,41,10, +90,3,3,5,14,19,31,26,41,9,152,240,201,236,7,251,32,5,180,5,140,3,43,1,173,1,126,7,241,12,42,11, +176,2,1,252,137,0,173,12,236,16,54,6,29,247,79,244,220,255,100,6,164,254,168,252,243,7,193,10,235,1,227,254, +214,254,160,251,6,255,157,4,172,0,126,252,23,254,22,253,25,253,3,3,232,4,25,1,226,0,201,4,97,7,13,4, +219,251,18,250,164,255,132,254,235,249,80,254,24,2,152,254,82,1,206,9,161,11,140,11,37,15,133,14,88,7,166,254, +149,248,79,249,69,251,183,244,113,240,221,252,245,10,68,7,175,253,41,1,185,9,228,6,179,253,197,251,67,255,209,1, +7,6,60,9,179,2,114,247,70,244,242,249,61,1,246,4,23,3,0,255,139,253,209,254,32,2,196,5,225,3,92,252, +60,248,43,252,14,3,19,5,45,255,15,247,123,243,247,243,53,248,78,1,209,7,167,4,99,253,222,249,136,252,184,4, +177,10,102,7,220,1,226,0,205,254,217,250,96,252,38,1,5,2,0,0,66,253,150,250,53,253,72,4,254,3,120,250, +101,246,252,254,240,9,162,12,4,7,225,255,54,253,22,252,165,246,12,242,221,244,159,249,192,252,1,1,57,1,245,252, +242,1,238,13,189,12,12,255,81,247,165,249,14,254,165,254,42,251,186,250,72,255,39,0,174,253,220,253,75,251,254,246, +99,252,185,5,118,7,162,6,19,4,144,250,157,244,107,249,154,254,108,1,138,5,127,4,126,253,66,250,24,254,73,6, +230,11,112,5,126,249,55,248,147,255,125,4,230,3,241,251,16,244,136,253,237,16,20,18,159,255,71,242,164,245,246,255, +175,2,113,251,38,248,249,255,78,7,92,7,80,4,255,252,45,245,193,250,118,9,1,13,195,4,163,254,244,251,139,249, +15,250,157,251,201,251,88,254,127,1,100,1,50,3,200,4,10,252,129,243,229,251,224,7,63,5,6,254,96,253,149,252, +168,248,224,245,11,245,18,248,108,255,114,4,8,3,202,252,253,245,11,248,42,4,60,9,138,255,128,249,17,4,198,16, +43,13,187,252,234,240,169,240,175,246,65,1,233,12,49,13,205,1,80,250,30,250,222,248,210,247,41,252,214,4,51,13, +126,13,208,4,61,254,216,252,2,251,211,252,233,1,165,254,235,248,78,255,217,7,97,4,178,252,194,251,38,3,208,13, +207,14,152,3,109,252,61,253,39,250,55,247,153,254,15,7,243,6,226,3,157,0,170,249,166,243,168,246,112,0,158,6, +199,3,27,253,99,250,183,252,162,255,160,255,142,253,143,252,47,254,87,2,25,7,67,7,50,1,45,251,160,249,82,251, +148,254,151,254,83,249,8,250,15,5,133,9,168,0,64,250,249,252,13,2,178,7,220,9,176,3,99,255,40,3,221,1, +158,248,202,245,219,249,88,251,146,254,20,6,6,5,98,250,194,249,100,8,245,17,52,11,44,0,9,250,116,246,252,247, +140,0,217,4,75,254,253,247,15,251,65,2,180,4,211,255,114,251,32,2,90,13,48,11,129,252,15,244,228,249,27,5, +125,9,57,3,209,252,29,0,169,3,97,253,236,246,158,247,162,247,102,246,253,251,122,5,124,9,53,5,65,254,76,0, +92,11,102,11,16,251,166,242,61,252,106,4,92,1,95,252,81,250,60,250,113,252,78,255,184,0,239,255,184,253,167,254, +219,2,168,2,35,255,163,1,237,7,110,8,217,0,107,245,120,241,249,253,237,12,157,10,253,254,183,252,247,1,57,3, +216,254,39,250,50,248,56,248,98,252,220,6,152,12,97,3,215,247,53,247,201,250,231,252,37,254,102,252,146,0,138,16, +197,20,89,0,156,238,247,240,252,250,131,5,87,11,224,2,60,249,45,0,217,9,24,5,51,251,58,250,53,3,108,11, +77,6,146,251,25,254,154,7,106,5,91,252,207,250,38,0,22,4,252,1,254,253,22,0,191,3,202,0,214,254,80,2, +118,0,69,251,196,255,97,7,59,4,99,251,18,249,127,255,244,6,250,5,197,255,173,255,95,2,82,254,4,250,229,252, +174,255,16,253,37,249,42,248,8,253,172,4,97,5,219,0,225,3,220,12,178,13,37,5,95,254,245,253,189,254,254,252, +208,251,13,253,112,252,136,250,143,254,248,5,95,6,216,1,77,3,32,11,44,16,201,12,7,4,200,253,95,252,75,250, +70,246,27,246,243,251,11,4,155,8,30,5,84,254,204,254,150,5,17,9,210,7,18,5,3,1,30,254,7,253,104,248, +106,243,171,249,124,8,254,14,222,6,65,252,98,253,219,7,175,10,163,255,23,245,206,245,170,250,255,250,221,248,242,251, +206,6,1,15,162,9,124,255,248,253,249,254,97,251,26,252,191,1,127,255,231,247,37,248,84,253,207,254,191,255,162,2, +228,2,122,0,117,255,54,1,107,5,241,7,96,3,32,253,14,255,229,4,114,4,21,0,110,254,22,254,156,253,52,255, +111,0,150,253,238,250,113,253,170,255,136,251,28,249,171,1,5,11,153,7,102,0,82,2,56,4,154,252,249,246,8,252, +181,1,73,0,220,253,53,0,51,3,13,0,122,250,187,253,147,7,31,9,188,1,157,254,240,1,111,4,200,3,52,0, +240,251,252,251,240,253,136,252,129,252,172,0,6,2,62,0,44,0,7,254,17,250,118,253,246,4,136,5,85,3,52,6, +234,7,161,2,202,252,147,253,47,3,188,5,22,2,164,255,25,2,235,0,1,251,210,251,182,2,112,3,80,255,99,0, +198,5,223,7,37,3,41,251,245,249,20,2,174,7,246,5,221,4,202,2,113,250,46,246,61,252,254,255,27,252,205,250, +158,0,239,8,45,12,87,3,232,246,220,248,173,4,31,7,243,1,23,2,252,4,144,3,9,0,234,253,106,254,107,1, +125,4,226,6,254,7,224,3,221,252,192,251,3,0,48,2,199,1,237,0,155,254,230,252,7,1,109,10,67,14,18,3, +120,244,41,247,40,5,152,7,191,253,109,245,230,242,143,248,83,5,187,11,103,7,176,2,218,254,89,250,83,252,164,0, +172,252,24,248,95,252,74,2,178,2,236,253,100,248,204,250,205,1,140,255,125,249,225,251,219,253,154,251,227,0,62,7, +246,1,126,251,120,252,235,254,14,2,65,2,190,249,28,246,145,255,219,4,192,1,148,3,64,6,118,3,232,3,68,5, +9,255,156,248,6,247,236,246,178,252,185,6,227,8,58,4,248,255,1,251,228,249,165,0,196,3,245,254,39,254,142,3, +45,6,249,1,42,248,230,240,228,245,83,1,77,7,183,7,209,4,170,255,90,255,19,4,244,3,19,254,104,249,0,249, +97,253,248,1,182,1,39,3,255,7,227,3,64,250,203,250,77,254,206,249,164,248,170,253,83,253,211,254,236,10,26,16, +53,3,67,245,146,245,204,0,247,10,9,10,4,2,171,255,39,1,47,252,188,245,115,247,95,253,183,1,149,5,203,6, +192,1,189,251,191,251,226,254,152,254,205,252,151,0,173,8,53,10,149,0,95,246,16,247,122,255,95,5,96,5,213,0, +11,250,242,246,1,250,103,253,142,255,203,3,27,5,220,255,232,252,170,254,79,253,177,251,125,254,225,252,161,246,218,248, +133,0,101,0,62,252,138,252,232,254,165,2,23,8,176,7,232,255,201,250,237,251,144,253,230,253,69,255,148,0,188,254, +250,250,54,251,0,1,82,5,92,4,54,4,73,7,1,6,148,254,219,250,16,254,166,254,79,250,41,251,81,2,95,5, +30,3,116,2,90,3,245,2,110,0,186,250,177,248,42,2,151,10,117,3,245,248,233,248,203,251,252,252,17,0,145,255, +93,252,198,3,3,17,239,16,152,4,94,251,84,250,16,254,251,0,192,253,155,248,174,251,177,5,246,8,75,254,91,242, +182,246,41,6,40,12,246,4,165,251,147,245,93,246,99,254,44,0,74,247,211,246,179,3,69,7,122,250,179,241,164,247, +88,1,79,4,189,1,76,255,87,255,154,1,121,5,108,6,200,255,250,247,211,248,3,255,101,1,71,255,137,253,140,0, +243,6,230,6,180,253,0,249,214,254,111,2,177,253,46,250,228,252,234,0,109,2,182,1,184,0,107,0,74,0,31,2, +86,6,218,5,250,252,189,244,196,245,116,253,118,3,93,1,123,250,149,250,92,2,149,4,14,255,86,253,71,1,49,3, +209,2,17,4,84,5,239,3,165,1,250,0,238,255,162,250,23,244,182,244,253,253,254,7,140,10,36,5,178,0,232,3, +133,6,245,0,166,253,168,3,26,8,242,6,13,7,6,2,213,240,135,228,18,238,73,2,247,12,56,10,42,3,172,0, +27,4,24,8,244,6,223,255,228,249,151,254,197,9,145,10,86,254,192,246,129,253,68,7,255,6,120,254,128,248,186,249, +102,253,68,1,206,7,139,12,128,8,206,0,117,254,246,255,144,0,186,0,245,1,50,4,102,4,252,253,144,245,106,245, +147,251,198,1,103,12,204,22,22,14,242,246,8,238,242,248,97,3,230,2,253,251,240,247,244,254,208,7,120,1,142,245, +191,248,69,4,130,8,189,6,50,1,138,249,87,250,21,3,79,6,15,4,206,3,7,3,211,255,210,252,3,252,162,2, +216,12,176,9,174,251,101,248,126,255,125,1,53,255,7,254,212,252,174,254,244,2,227,2,224,0,206,255,225,251,166,251, +75,4,180,5,105,249,27,245,85,1,79,9,16,3,216,254,102,5,192,6,181,249,247,242,116,1,128,14,19,5,4,247, +130,249,160,2,180,2,79,254,155,0,54,8,35,11,192,6,90,0,84,249,248,243,77,249,88,6,90,9,101,255,174,248, +202,253,112,7,123,9,127,0,67,251,56,6,100,16,199,5,236,244,247,244,240,255,175,4,162,2,104,1,150,2,171,3, +25,2,78,253,48,249,156,250,137,1,30,10,129,14,10,8,185,250,150,247,21,2,27,7,79,0,165,254,106,6,138,9, +73,4,0,253,27,247,83,248,82,2,168,8,51,3,209,251,42,253,40,4,177,6,196,1,40,253,251,253,94,1,115,8, +225,17,155,14,8,252,192,241,250,250,151,5,3,4,101,253,155,252,4,3,69,7,201,1,84,250,26,251,47,1,239,6, +45,11,222,11,189,9,79,7,178,1,232,249,177,248,154,254,102,3,29,3,152,253,213,246,109,248,201,1,46,4,17,251, +25,245,111,254,73,15,234,19,166,5,110,245,127,244,124,255,210,8,235,5,208,244,50,230,136,239,8,8,33,17,172,4, +172,250,101,2,180,15,97,16,3,5,51,252,49,252,14,0,132,3,29,1,1,244,27,232,50,239,164,1,123,8,218,1, +172,254,188,5,173,13,219,11,144,0,107,247,122,250,81,6,118,14,47,10,25,253,134,245,30,252,114,6,79,5,191,251, +82,249,68,2,65,11,0,11,225,3,107,251,10,245,119,246,139,1,181,9,161,2,4,246,97,246,47,2,159,8,246,4, +125,1,138,2,86,1,171,251,73,248,44,251,197,0,237,2,229,255,25,255,139,5,166,8,162,1,191,253,64,2,4,1, +181,249,76,250,200,0,70,5,226,9,210,9,6,255,131,245,196,246,16,251,4,254,4,0,24,253,220,249,198,254,186,4, +247,2,15,255,63,255,20,4,230,11,60,14,176,5,130,252,201,251,200,254,196,0,16,1,4,253,112,247,153,247,112,250, +5,249,59,249,96,2,84,12,1,13,128,7,198,1,204,253,18,255,10,3,5,255,14,245,4,243,202,248,245,252,111,255, +53,0,105,252,141,251,165,3,59,11,92,10,29,5,128,1,95,2,216,4,192,2,121,254,121,253,21,252,109,249,38,252, +145,2,93,6,244,6,181,1,152,247,192,246,66,3,203,9,213,253,206,238,20,242,92,4,206,13,95,5,129,251,180,251, +251,0,126,6,55,7,108,254,16,246,177,248,179,253,116,252,205,250,250,254,18,8,255,12,193,3,185,246,28,248,249,255, +178,255,21,255,147,3,241,4,98,3,95,255,121,243,66,236,196,248,112,8,32,6,196,250,14,248,136,255,79,7,75,5, +238,251,59,250,189,4,233,13,252,10,61,254,137,240,98,237,171,248,99,3,236,253,131,243,77,249,28,9,80,13,245,5, +207,0,195,254,208,252,245,254,82,2,144,254,225,247,68,249,106,1,170,4,170,255,3,254,77,6,51,10,16,254,64,241, +210,245,46,4,171,11,201,8,74,0,209,248,156,249,64,0,183,0,238,249,231,249,73,5,38,15,178,13,248,2,76,245, +103,239,36,248,250,3,22,5,165,0,216,255,145,1,102,3,40,3,128,255,237,254,10,4,234,6,21,7,166,9,175,9, +125,3,85,251,134,242,63,237,218,242,217,253,190,4,68,6,102,255,144,243,72,244,166,4,111,19,77,23,94,16,224,1, +104,249,83,253,3,0,138,250,43,247,28,253,12,7,26,7,27,249,191,240,66,250,247,4,195,7,61,11,51,12,163,6, +247,1,174,251,90,244,63,252,182,12,113,11,193,251,53,243,185,245,32,252,103,253,240,246,169,246,162,1,198,8,46,9, +159,7,55,252,182,238,14,244,2,3,177,8,253,11,117,16,93,10,8,252,176,241,202,238,19,242,247,247,253,253,54,5, +135,6,68,252,87,245,82,253,98,8,49,12,243,9,149,2,33,252,170,253,157,0,93,253,248,247,72,246,26,251,134,3, +89,5,161,255,242,252,198,253,6,252,78,251,20,254,18,0,199,2,50,8,199,9,31,4,48,254,43,255,68,4,8,4, +51,254,210,252,201,254,105,249,33,242,62,246,57,0,175,3,85,3,228,4,75,3,188,251,224,247,199,254,80,7,60,7, +238,3,234,3,141,1,213,251,145,252,127,4,71,9,151,6,227,255,125,250,110,252,24,4,38,5,171,250,124,242,162,250, +81,12,35,20,206,10,219,251,121,245,172,250,64,4,47,8,211,2,86,252,135,254,78,5,173,4,227,252,117,249,103,254, +169,5,168,9,227,6,146,253,125,246,192,248,10,0,229,6,83,11,236,7,145,252,6,245,16,247,2,250,203,247,230,246, +234,255,119,13,228,12,61,249,208,231,109,234,23,251,211,11,182,17,178,9,168,1,245,5,183,10,133,2,216,245,17,242, +26,250,52,7,99,11,143,1,243,245,63,241,180,241,21,249,94,6,142,15,200,15,94,8,154,251,240,243,122,249,48,2, +243,2,171,254,63,250,188,247,126,248,60,249,157,250,108,4,89,17,115,17,146,6,109,255,72,253,253,248,32,245,16,249, +150,2,241,5,111,253,64,243,14,243,234,249,188,255,60,4,254,8,242,10,29,7,113,255,15,251,102,255,15,6,9,3, +122,247,229,240,85,245,128,253,127,1,73,1,211,0,138,1,63,2,99,3,112,5,202,4,189,255,82,252,201,254,87,2, +107,2,181,0,33,255,38,253,19,250,94,246,31,245,218,248,183,254,193,3,65,8,7,9,64,3,159,253,61,253,235,251, +164,247,29,249,213,1,199,7,87,6,90,2,162,254,181,250,202,249,175,254,181,4,71,7,117,8,5,7,167,252,37,237, +52,230,200,236,179,248,106,1,177,5,188,6,150,2,241,250,206,249,122,1,77,6,51,3,187,252,254,242,212,235,199,243, +102,2,192,4,45,1,250,5,171,11,151,7,251,252,224,242,176,240,130,249,158,3,101,4,113,252,246,242,119,241,140,250, +244,2,228,3,59,4,238,5,112,5,95,5,177,3,244,249,105,240,60,243,169,251,118,252,51,248,8,251,1,6,224,12, +135,10,110,6,34,1,145,246,214,240,230,247,4,255,20,253,110,252,13,4,24,10,43,3,236,244,91,242,69,254,98,4, +198,254,255,254,133,7,86,7,24,252,110,244,90,248,85,2,217,7,236,4,118,255,53,254,173,2,233,8,159,8,2,0, +108,248,234,247,197,251,4,0,24,0,56,252,21,253,19,3,27,3,207,251,153,247,120,253,48,9,196,11,198,0,236,251, +221,3,38,3,168,248,238,249,50,2,119,0,91,251,111,251,9,253,236,254,174,253,117,247,39,247,143,254,101,1,105,0, +232,1,230,1,203,2,76,9,185,11,198,4,245,251,100,244,94,241,250,248,194,3,50,6,199,2,202,255,197,254,251,254, +82,252,173,247,123,249,184,0,107,4,61,5,130,7,96,7,216,255,54,245,118,244,61,1,226,9,32,4,143,0,180,6, +71,6,28,252,128,245,143,244,114,247,67,2,1,15,250,16,145,8,143,0,123,254,89,252,159,243,116,237,73,246,153,4, +85,7,18,2,203,1,95,6,34,7,14,1,48,251,229,254,250,9,228,14,212,6,34,252,91,252,174,3,235,3,84,254, +73,254,222,0,47,255,219,254,64,1,11,0,8,0,130,6,4,10,21,5,151,255,200,254,197,0,54,1,160,252,48,248, +100,251,11,1,9,1,92,254,239,253,174,0,97,7,239,12,158,8,124,254,203,251,235,1,119,6,170,5,191,4,48,5, +43,4,177,2,99,2,104,1,141,255,179,253,173,251,105,252,100,0,10,2,94,3,196,9,203,12,86,7,145,5,218,9, +229,7,89,255,160,247,248,242,30,246,119,255,152,1,90,252,250,251,143,255,68,1,64,3,133,4,20,3,58,2,169,1, +16,0,20,254,222,246,17,237,162,239,224,252,181,3,129,3,168,4,47,5,24,4,154,4,20,4,205,254,166,246,213,244, +161,1,24,15,54,7,142,244,225,239,158,246,77,253,56,3,25,4,204,1,174,7,37,14,185,7,141,254,174,251,108,249, +6,250,69,254,66,253,37,253,96,7,148,14,207,8,134,1,84,1,246,5,208,8,65,2,127,249,119,253,28,6,17,4, +171,255,192,2,138,5,180,4,35,5,106,4,152,255,144,251,84,252,213,255,108,2,211,3,139,4,128,0,56,248,11,247, +209,255,47,6,72,5,127,3,228,2,222,2,80,3,112,0,178,250,239,248,193,252,187,2,126,6,198,2,64,252,1,254, +214,2,11,255,91,249,181,251,41,1,253,3,134,3,255,254,111,251,50,254,218,2,1,6,70,8,35,5,166,254,224,0, +95,8,167,4,56,248,150,244,60,253,147,6,125,7,133,1,82,253,219,254,251,0,7,1,70,3,221,7,60,8,186,2, +70,255,40,3,101,5,119,252,131,243,154,250,60,8,175,7,38,251,12,245,211,251,209,4,5,4,169,252,255,251,253,0, +8,0,239,253,158,3,222,5,1,254,164,251,174,4,91,10,213,4,226,250,6,247,21,254,22,5,53,0,27,250,14,254, +47,2,252,1,54,5,39,6,29,254,103,249,187,254,216,3,106,4,187,3,4,1,96,253,112,253,251,0,28,3,3,0, +204,250,163,251,210,1,63,4,198,2,73,3,141,4,130,5,95,8,140,7,227,253,152,245,27,249,210,255,187,252,137,245, +146,248,227,2,29,5,146,253,150,248,49,252,164,3,111,7,218,3,166,254,82,0,129,4,6,0,255,245,167,244,232,253, +19,4,58,0,108,252,3,1,197,7,222,8,196,4,231,254,147,251,74,254,173,3,216,4,26,0,82,250,83,250,197,255, +108,2,208,1,100,5,47,9,164,3,145,249,184,245,29,250,0,2,203,4,3,255,226,250,154,255,60,5,102,5,61,2, +234,253,117,252,153,0,208,3,131,1,194,254,197,253,6,250,126,242,220,237,27,243,210,253,240,2,49,3,51,6,1,9, +176,6,34,2,74,253,64,250,238,252,250,255,82,251,154,242,237,237,169,241,182,252,223,4,59,4,103,3,20,6,140,5, +97,2,67,1,157,2,25,6,54,4,249,246,121,239,222,252,161,13,165,13,130,2,184,249,230,249,8,0,247,0,236,251, +121,252,5,4,204,10,86,12,37,5,20,250,156,248,2,0,39,4,99,2,164,252,49,247,253,251,29,6,61,4,101,250, +66,249,100,255,223,3,159,5,32,4,169,0,210,255,230,0,30,0,82,252,120,247,143,248,67,1,36,5,138,254,39,250, +102,254,223,1,185,255,88,253,155,253,33,254,204,254,18,2,129,4,195,255,137,248,7,248,0,252,175,255,40,3,68,0, +32,245,6,243,180,2,108,15,126,7,209,246,244,241,47,251,131,4,85,4,150,255,229,253,46,0,45,5,223,8,31,5, +66,253,43,251,164,254,196,255,30,253,241,251,5,255,168,1,122,254,141,250,184,253,120,3,41,4,37,2,212,0,111,255, +16,255,255,254,21,252,245,249,93,253,247,1,102,2,30,255,220,250,74,250,6,255,207,1,201,254,226,252,21,255,237,0, +109,2,201,4,227,4,79,3,204,2,172,0,230,251,196,248,192,248,103,250,94,252,1,252,235,250,238,254,91,5,232,5, +90,1,97,253,233,251,223,254,203,4,177,3,207,247,222,238,233,245,45,4,105,6,6,252,204,246,200,252,85,2,220,2, +145,4,138,6,246,2,227,252,55,252,228,0,73,2,184,252,114,248,162,250,162,252,57,252,19,255,76,3,222,4,247,7, +230,10,38,4,40,247,70,242,170,248,255,255,183,255,114,250,210,248,60,253,45,2,193,2,244,254,54,253,131,5,230,17, +8,17,181,0,248,242,70,245,12,2,218,9,143,4,78,250,141,248,17,1,171,9,252,7,106,252,58,244,83,250,152,8, +18,17,224,13,193,3,170,252,0,253,93,254,42,253,146,255,100,5,12,5,143,254,118,252,100,0,40,1,68,252,22,251, +115,3,123,12,9,9,195,250,173,243,117,254,55,12,242,9,197,253,159,248,22,252,202,1,225,5,65,4,81,0,34,3, +90,8,198,5,169,255,142,254,45,2,169,6,129,6,123,255,191,249,148,251,165,0,185,4,207,5,161,1,123,252,44,253, +150,2,141,6,229,4,255,0,108,2,128,5,227,1,149,254,220,1,209,2,80,1,35,5,36,7,87,3,82,4,64,7, +225,255,253,243,26,241,194,250,211,10,89,18,219,9,48,0,109,2,110,7,97,3,22,251,186,251,139,5,183,8,39,1, +228,252,65,252,126,245,175,242,59,254,238,10,79,12,90,5,162,253,33,253,211,2,114,4,222,2,100,4,3,4,253,0, +173,1,50,1,71,251,219,247,238,249,129,253,8,1,131,2,190,2,122,4,82,3,40,254,147,252,14,0,62,6,32,13, +75,11,70,0,88,250,22,249,15,245,184,249,65,9,27,15,218,6,178,254,107,250,123,247,138,246,67,248,22,255,225,8, +232,12,231,8,31,255,227,242,17,240,81,251,28,8,133,15,64,16,195,4,32,248,220,250,235,255,238,247,39,241,190,248, +153,6,36,13,136,4,122,246,250,245,214,254,224,0,77,0,225,4,172,8,108,8,160,4,105,252,180,245,245,246,233,254, +215,7,110,7,170,251,207,243,99,246,34,251,253,1,126,8,126,4,63,255,254,3,98,4,250,250,230,246,65,248,15,249, +98,255,191,5,66,0,40,247,81,246,119,251,167,0,36,2,94,3,9,12,24,20,46,12,175,249,247,237,44,240,47,251, +206,2,152,2,121,3,155,5,161,0,91,250,252,249,118,250,21,252,175,0,22,1,209,255,109,4,178,5,215,252,251,243, +199,241,239,246,228,2,47,10,123,5,67,0,14,0,41,252,40,245,246,243,244,249,169,2,129,8,164,8,177,5,45,1, +179,251,57,249,3,248,207,243,84,244,247,255,162,12,114,16,219,11,146,1,83,247,158,243,178,246,105,0,215,14,125,22, +103,16,235,3,13,248,20,240,40,241,12,250,30,3,162,7,221,3,29,249,222,242,188,245,127,249,162,252,27,4,12,12, +59,13,118,6,8,252,135,246,33,249,6,252,122,251,165,251,207,251,8,251,75,253,80,255,245,250,123,245,119,246,87,253, +205,5,135,9,173,4,95,252,25,247,30,247,250,252,30,2,173,253,26,245,201,243,5,249,74,254,6,0,22,253,22,250, +68,253,77,6,60,16,166,17,108,4,69,246,136,246,21,251,176,249,190,252,31,5,46,5,53,254,112,250,190,249,199,249, +111,251,122,254,114,1,69,0,168,251,184,253,22,5,161,2,175,248,234,247,14,255,117,0,128,250,39,246,185,248,14,254, +45,1,8,4,228,4,185,254,150,249,128,252,103,253,182,250,45,255,177,4,77,1,171,252,165,249,117,242,228,237,127,243, +242,254,16,11,222,15,148,6,15,251,30,251,191,254,193,250,211,244,106,248,198,5,132,14,98,7,163,249,226,243,188,247, +223,255,150,4,206,0,198,252,213,255,63,2,243,255,90,254,28,254,203,255,122,3,142,0,114,248,75,249,44,0,74,0, +215,253,224,255,128,2,109,3,18,2,24,253,241,249,88,252,20,254,114,251,120,249,234,252,125,2,193,1,245,251,139,251, +8,255,138,254,100,255,252,3,48,2,136,252,85,254,249,0,192,249,5,241,140,244,78,3,150,14,98,11,94,0,68,250, +58,251,164,255,82,2,61,253,83,246,175,249,79,2,76,3,246,254,39,254,28,0,46,254,96,247,47,245,208,253,91,6, +71,4,229,253,17,250,226,247,222,249,168,0,176,4,89,4,124,6,148,10,113,8,135,0,38,253,153,255,154,253,177,248, +38,253,71,5,247,0,241,244,142,241,230,249,194,5,16,10,35,2,196,249,55,253,252,5,44,9,238,5,96,254,249,246, +134,247,38,255,17,3,191,254,90,250,10,253,23,1,160,254,106,249,122,248,34,253,11,7,10,16,114,13,65,2,215,250, +136,248,134,247,120,248,134,250,170,255,32,12,225,22,226,18,240,3,204,246,252,243,123,253,186,9,55,12,4,6,91,254, +89,247,255,244,64,253,134,11,70,16,81,4,128,248,182,255,185,13,166,11,242,254,51,249,93,251,179,255,9,3,33,1, +158,250,35,245,53,245,209,253,6,9,145,10,161,4,26,2,35,1,151,253,143,252,3,0,163,4,95,7,187,4,138,255, +159,254,253,254,83,252,183,251,149,254,41,0,247,255,117,254,166,252,116,255,126,5,155,6,48,1,114,250,170,248,11,255, +97,7,39,10,190,8,147,4,47,254,181,251,16,253,254,252,74,1,27,12,40,15,70,5,171,250,217,247,6,253,167,4, +195,4,135,254,61,253,113,0,203,255,72,252,188,251,93,0,62,7,164,8,15,2,36,251,231,249,85,253,70,2,84,5, +1,5,214,1,95,253,157,252,136,255,108,252,31,246,27,253,21,12,185,12,179,255,209,246,111,247,70,253,227,3,64,6, +206,4,30,5,169,7,46,7,64,0,189,247,156,247,51,255,206,1,87,251,105,245,140,247,217,255,47,6,97,4,177,255, +155,1,181,8,55,12,5,8,180,255,57,251,227,253,149,1,248,0,92,254,117,253,194,254,100,255,159,252,88,250,114,253, +21,2,54,4,237,6,17,10,247,7,244,0,13,253,231,0,13,5,40,255,101,245,219,246,19,0,130,1,125,251,58,249, +182,251,76,253,198,253,121,255,199,1,26,5,151,11,193,14,240,3,38,244,154,245,238,6,104,16,217,7,217,248,157,243, +177,253,249,8,94,4,182,247,151,246,119,0,218,6,165,4,51,0,120,0,14,4,234,3,2,0,248,255,175,6,154,13, +123,11,69,0,204,247,214,248,23,252,49,251,92,248,82,248,31,255,134,8,251,8,135,1,247,253,39,0,164,5,109,14, +215,17,216,10,89,5,165,5,166,0,205,246,203,243,180,248,232,253,212,254,108,252,32,251,177,253,224,3,89,11,25,13, +41,6,157,0,90,3,66,7,192,6,143,3,23,255,243,251,79,252,72,253,29,253,37,253,155,253,64,254,50,252,105,246, +2,248,3,7,206,18,217,14,225,5,66,2,99,2,245,3,52,4,207,0,204,252,203,249,217,246,56,246,89,248,24,251, +242,254,169,1,79,255,73,252,100,255,192,7,146,14,16,11,193,253,241,247,162,3,24,16,99,11,178,252,197,246,31,254, +155,4,66,254,33,244,132,245,151,255,255,4,135,2,250,255,91,4,207,12,155,15,159,9,155,0,206,249,235,248,31,255, +124,4,21,1,77,251,174,253,233,4,142,4,94,250,17,244,70,253,56,13,195,17,24,8,245,253,237,253,59,4,160,6, +27,2,245,252,170,252,139,255,18,0,157,251,168,246,175,248,238,1,64,9,37,6,83,251,30,246,210,254,199,10,219,9, +250,255,116,254,42,5,10,3,207,246,108,242,254,249,6,254,97,249,249,247,32,0,216,9,21,10,62,0,201,248,157,251, +57,1,117,4,16,8,69,6,113,250,125,241,134,245,153,255,60,8,222,11,70,6,239,251,177,247,167,251,124,1,112,2, +46,252,96,245,25,247,90,0,92,7,166,4,98,252,181,251,91,6,252,15,102,13,90,0,117,244,78,244,96,250,148,250, +16,250,0,255,160,253,231,245,91,249,41,4,93,4,13,253,23,249,36,248,142,249,27,253,180,253,39,249,147,243,41,245, +45,1,217,10,48,7,164,0,153,0,98,0,244,252,47,250,179,249,62,253,239,0,167,254,24,254,73,4,40,4,187,249, +245,241,164,243,212,253,55,8,168,3,0,246,193,245,240,254,186,253,33,245,14,243,190,251,51,11,177,18,149,6,5,244, +132,239,69,250,13,7,58,11,39,9,37,8,18,5,197,253,61,250,33,249,23,245,165,246,44,253,40,251,240,246,14,252, +130,0,147,254,112,254,6,1,129,6,223,15,107,17,40,6,232,251,131,250,116,253,155,254,62,249,50,243,118,245,157,249, +73,251,222,1,185,7,14,5,154,5,29,12,155,9,237,253,153,245,56,246,102,255,85,6,88,255,108,245,94,247,241,254, +85,4,199,7,70,6,203,1,132,1,6,2,233,252,56,247,102,251,231,9,204,16,147,2,31,242,95,245,178,1,156,6, +117,3,233,249,237,243,222,253,72,9,109,3,93,248,66,248,125,255,210,5,233,4,148,253,48,251,138,254,154,254,3,0, +226,6,251,7,219,255,149,247,77,244,102,248,21,2,131,8,7,8,67,2,54,250,105,250,229,4,210,8,136,1,130,253, +247,255,247,1,2,2,190,254,170,250,121,252,205,254,14,251,38,250,48,0,197,2,190,254,147,252,71,1,148,7,83,6, +56,255,57,252,200,252,235,252,30,2,25,10,194,8,246,254,59,247,243,247,200,2,79,13,158,9,149,255,115,254,97,2, +158,3,137,2,153,253,160,247,113,250,156,6,24,18,1,18,79,3,224,244,131,247,230,3,51,10,14,9,70,4,32,0, +15,2,124,4,105,255,25,250,37,252,137,0,61,1,193,251,144,243,242,244,87,2,249,12,13,13,132,8,202,2,82,253, +144,253,247,3,111,7,242,1,227,251,165,254,194,1,109,251,32,246,106,251,113,2,233,4,111,6,51,7,10,6,49,3, +137,254,142,253,250,1,24,1,190,250,88,253,137,7,35,10,128,2,18,249,255,245,46,251,168,255,215,254,171,1,52,7, +49,4,253,255,226,8,9,21,59,18,209,3,32,251,127,254,246,3,27,2,57,251,230,244,156,242,203,247,220,1,151,8, +122,9,230,7,171,7,55,10,51,9,150,0,71,252,29,3,148,6,79,254,97,245,212,243,201,247,103,253,124,255,115,253, +213,252,178,254,25,0,245,255,150,254,50,0,33,7,51,11,221,7,213,3,83,0,23,251,14,250,109,253,240,252,176,250, +95,254,140,5,136,8,245,3,142,252,182,250,47,253,61,254,2,2,44,9,95,8,99,254,147,247,50,249,85,255,11,4, +18,2,187,252,19,252,207,254,155,255,232,255,107,1,6,0,77,249,30,245,144,252,193,6,92,4,254,252,8,0,103,6, +145,4,163,254,133,249,231,246,14,250,204,254,125,255,222,254,22,253,183,249,26,252,174,2,51,2,102,252,35,250,237,251, +79,0,58,4,242,1,187,252,138,251,227,252,37,255,105,2,112,1,131,251,166,248,116,251,60,254,88,253,197,252,126,2, +217,9,84,8,218,0,68,253,66,253,161,254,141,1,71,0,41,250,11,249,118,254,126,2,198,2,12,1,177,254,52,254, +182,0,80,5,99,7,62,0,227,245,53,246,91,253,174,254,34,253,69,255,75,2,70,3,114,0,94,251,235,251,40,0, +38,255,110,255,249,5,23,4,13,247,43,242,109,251,219,5,152,8,32,4,9,255,224,255,180,2,74,0,33,252,209,253, +51,4,43,7,157,3,131,255,65,253,104,248,120,245,178,252,26,6,193,5,63,0,219,255,137,4,35,5,138,252,231,245, +129,252,214,4,67,2,181,253,17,254,58,253,160,251,157,253,131,1,176,5,237,5,145,254,100,249,130,253,10,1,254,255, +210,1,205,4,46,3,74,255,75,251,144,248,102,251,203,1,123,3,53,254,173,247,228,245,135,249,166,255,36,5,41,5, +235,255,31,1,100,10,97,10,99,255,73,252,81,1,224,255,117,250,209,249,120,252,154,1,179,8,89,11,87,7,92,1, +51,253,74,252,245,252,116,252,203,252,76,1,92,8,70,12,16,8,125,255,187,251,98,252,67,253,253,1,62,7,209,2, +236,250,160,250,90,252,60,251,31,252,218,254,24,2,207,6,205,7,90,4,32,3,170,0,15,250,106,251,103,6,80,10, +232,2,41,252,124,251,171,254,193,3,19,6,87,1,233,250,49,252,161,2,134,3,112,0,43,3,57,9,233,9,251,4, +173,253,28,249,140,253,164,5,53,7,208,4,132,3,132,1,130,255,158,253,146,250,102,253,26,7,105,10,26,5,212,0, +197,253,111,252,180,1,251,4,184,255,142,254,242,4,76,4,233,251,78,250,228,1,189,7,36,5,153,254,255,252,99,1, +134,3,184,255,183,254,99,7,183,14,127,7,211,251,188,251,166,0,254,255,150,254,122,254,104,254,15,6,121,16,193,9, +67,246,182,239,105,250,101,4,156,3,127,254,0,255,131,3,255,1,140,250,65,247,95,253,241,10,66,22,85,17,151,254, +200,242,237,247,6,2,181,1,179,246,120,241,46,254,116,17,9,24,42,14,219,253,177,244,234,247,209,252,130,251,254,252, +245,4,130,7,20,255,222,243,142,239,85,245,92,254,57,2,123,3,170,5,232,2,3,250,209,244,226,249,51,5,68,13, +218,11,65,4,44,253,117,248,59,246,105,247,59,251,93,255,192,0,15,255,162,253,229,251,160,249,219,255,5,14,218,16, +234,3,144,251,146,1,137,9,215,5,249,246,215,238,180,250,206,8,81,4,216,249,223,250,62,0,5,2,13,4,18,6, +165,5,22,5,55,4,77,1,232,254,106,255,51,1,70,0,151,249,230,240,191,239,247,248,154,3,20,8,147,9,148,9, +158,1,116,246,53,248,64,4,45,9,252,5,162,1,157,249,243,241,163,243,116,248,211,249,85,255,252,10,47,19,25,16, +195,255,67,237,159,236,23,253,53,8,224,4,5,254,113,253,76,3,224,6,183,255,106,245,255,246,49,2,26,7,163,0, +95,249,153,250,232,1,99,8,160,9,198,3,85,252,85,253,26,4,233,3,125,252,36,249,255,254,182,8,46,11,229,1, +220,248,177,249,160,251,19,249,94,250,94,1,116,7,31,10,132,7,180,255,232,250,64,252,176,250,215,243,92,244,67,3, +218,17,25,14,49,254,112,245,80,246,140,248,247,251,237,255,186,255,174,255,179,5,179,10,168,4,62,246,126,238,166,248, +74,10,214,14,117,4,185,248,33,243,172,244,144,250,148,253,183,254,252,5,224,14,44,15,213,9,157,3,223,248,187,238, +115,243,89,3,243,8,66,255,191,248,197,254,213,4,177,255,88,244,45,241,66,254,96,14,189,13,82,2,18,254,81,253, +143,249,100,253,120,7,16,7,12,254,91,250,219,250,43,248,161,242,29,239,82,244,113,2,45,14,149,15,246,9,173,2, +37,254,32,254,20,254,242,251,82,252,20,255,211,254,89,251,218,248,225,249,95,254,39,4,99,8,33,9,95,6,59,3, +219,1,221,255,156,252,36,252,45,0,57,5,168,5,163,255,217,250,190,254,29,5,120,5,35,2,37,255,209,253,171,255, +228,255,128,250,221,249,83,4,15,12,20,7,112,255,92,0,161,7,107,11,47,6,208,253,240,250,124,252,252,252,171,251, +128,250,14,252,154,0,35,2,194,252,77,247,137,249,251,0,83,6,219,7,17,9,159,9,192,4,106,251,157,243,90,238, +162,235,234,240,229,253,191,6,152,4,5,0,41,2,211,5,92,3,157,0,169,3,200,4,156,0,203,0,209,5,162,5, +116,0,154,252,137,250,141,250,151,251,187,248,135,245,161,250,70,4,252,8,184,7,88,3,105,255,215,255,233,0,64,253, +48,252,212,4,178,11,15,4,161,246,44,243,155,249,116,0,132,3,6,3,44,2,6,6,228,9,101,2,30,245,54,245, +47,4,29,16,202,13,9,1,226,244,203,244,251,0,25,10,71,5,239,252,56,255,195,5,252,1,111,247,84,244,231,250, +245,3,175,9,110,8,113,2,25,254,197,251,242,250,69,255,138,4,210,3,218,2,10,6,8,6,181,1,152,254,216,250, +62,246,159,247,233,255,75,8,61,8,238,252,93,244,143,252,71,8,115,6,130,0,183,0,157,255,110,253,122,2,25,7, +150,1,44,252,215,0,105,5,121,0,97,251,143,254,127,2,158,1,101,1,252,3,103,6,72,7,213,3,229,253,241,254, +41,5,179,5,178,3,144,4,77,1,172,251,38,253,67,255,204,251,47,252,171,1,66,4,78,6,190,7,18,1,191,249, +250,253,136,5,59,5,224,2,141,4,156,5,203,2,245,254,223,252,33,253,192,254,249,255,243,0,120,2,104,1,45,252, +151,250,139,1,178,6,194,2,24,255,169,1,146,4,214,5,215,4,96,253,131,247,156,254,2,6,218,253,219,244,212,253, +41,12,207,11,173,2,153,0,240,3,222,2,141,255,20,1,130,5,29,8,44,8,179,3,227,249,180,241,105,242,20,250, +36,1,35,3,66,2,160,1,54,0,132,255,32,4,126,9,169,7,108,3,6,3,248,0,43,252,185,252,34,0,12,253, +69,248,175,252,89,6,118,7,96,252,17,242,123,246,190,3,58,7,121,255,41,253,214,3,52,6,189,1,221,255,225,0, +21,0,177,255,199,255,122,252,134,248,212,246,189,244,102,245,130,253,71,6,89,9,2,10,118,8,159,2,43,254,174,255, +109,4,107,8,127,5,26,250,140,244,106,254,71,7,111,255,131,242,230,241,23,252,154,4,205,3,159,253,204,253,155,7, +62,14,56,7,137,250,72,246,67,252,196,2,81,0,76,246,53,242,227,251,98,6,4,3,233,248,232,246,106,254,82,8, +82,12,196,4,48,250,45,251,115,3,137,4,113,0,155,0,255,1,94,254,40,248,6,245,226,248,22,2,40,6,198,254, +225,246,213,250,48,4,85,5,208,253,126,246,157,245,168,252,162,6,86,10,224,5,135,255,70,251,57,251,174,1,113,9, +157,9,63,2,113,249,180,244,169,248,58,1,9,2,156,250,103,248,129,255,15,6,228,5,111,2,141,0,244,0,135,1, +86,1,172,0,211,254,119,252,165,252,112,255,218,0,179,255,111,0,0,5,149,6,215,0,110,252,150,255,165,1,170,253, +150,252,179,2,135,9,114,11,145,6,223,254,92,254,159,5,216,8,230,2,20,250,161,245,204,249,54,3,144,6,249,254, +225,244,13,244,171,255,95,11,124,7,55,250,236,247,62,2,113,9,249,6,213,0,187,252,233,251,180,253,190,0,210,0, +54,251,94,247,62,252,20,2,149,1,231,255,150,255,85,254,115,254,207,255,249,255,53,1,164,0,139,250,180,249,214,3, +226,10,248,6,64,255,101,250,1,253,214,2,149,254,130,245,213,247,121,253,144,251,158,253,12,5,198,5,146,5,136,9, +185,5,228,252,49,253,13,1,232,254,107,251,43,249,219,246,79,247,254,248,205,248,88,251,45,2,232,5,204,2,79,254, +101,255,79,5,204,7,253,2,33,252,215,248,89,250,132,252,48,249,108,245,8,252,254,5,48,5,225,254,165,253,115,255, +6,2,188,3,158,254,210,248,155,254,37,7,192,3,73,251,173,248,7,250,128,253,18,2,239,1,82,254,150,253,217,251, +24,245,38,242,38,249,88,3,153,8,247,4,159,250,95,246,153,255,117,7,225,0,136,249,41,0,207,9,229,8,233,3, +29,2,58,253,141,244,168,243,240,251,197,0,136,255,118,1,90,5,26,2,239,250,241,249,91,255,31,5,136,7,6,5, +202,255,29,253,73,254,180,255,193,253,7,248,4,244,57,248,192,0,170,3,128,0,85,254,255,255,211,3,208,5,52,1, +18,251,38,0,59,12,229,10,168,251,188,245,37,0,45,8,196,1,134,245,71,242,208,252,104,7,90,2,153,247,32,250, +251,2,129,3,217,1,143,4,148,5,13,6,171,8,218,1,13,239,76,230,6,245,0,8,198,7,202,250,245,246,243,253, +7,1,163,252,62,248,122,249,113,2,26,12,164,10,101,0,69,246,143,236,153,233,211,246,22,8,170,12,86,7,227,253, +253,244,84,247,95,0,219,0,152,254,129,3,49,7,110,7,170,8,170,1,30,243,133,240,145,251,194,4,10,7,37,1, +179,243,33,238,60,249,236,4,216,3,26,254,121,254,19,4,214,7,229,4,167,252,29,246,144,248,28,2,195,6,114,2, +43,0,253,3,60,4,95,255,221,253,49,1,41,5,220,5,87,255,39,247,73,250,60,5,182,6,210,254,189,253,36,6, +120,12,66,11,12,4,157,249,62,244,61,250,225,2,212,2,239,253,8,254,171,3,64,7,49,2,90,248,10,245,37,250, +1,0,193,3,123,4,65,0,27,253,59,255,13,0,243,0,39,9,45,14,205,4,186,249,215,249,90,253,202,250,158,246, +13,250,251,2,30,5,249,255,137,254,55,254,214,249,220,253,3,12,24,17,173,10,200,5,135,2,32,255,31,253,190,245, +34,238,159,247,175,7,31,5,193,246,86,243,59,253,130,8,223,9,11,0,27,249,132,254,75,6,178,6,157,1,137,250, +86,246,94,250,142,1,109,1,181,250,50,249,97,2,228,10,83,6,211,251,67,249,8,253,105,255,102,0,108,0,52,254, +253,252,194,255,197,3,190,3,144,253,236,247,135,251,29,3,28,3,201,254,204,255,179,3,126,4,176,2,56,254,194,248, +0,251,203,4,43,7,2,254,127,248,204,253,201,4,86,8,88,8,112,0,195,244,53,244,206,255,122,7,69,2,140,246, +59,240,96,247,124,6,134,13,81,6,57,252,72,252,185,5,232,10,214,1,221,242,175,238,63,249,152,7,38,12,227,2, +42,248,251,250,225,5,157,7,32,255,75,249,226,251,134,3,91,10,152,9,248,0,20,250,92,251,160,0,214,3,33,3, +192,255,244,252,165,252,227,254,75,4,176,8,141,4,20,253,216,254,19,6,186,6,86,2,152,254,147,251,216,252,249,2, +161,4,24,0,26,254,185,0,244,4,105,9,209,9,137,4,177,254,143,250,214,248,199,252,111,2,119,1,74,252,169,252, +143,4,136,8,184,253,228,240,84,247,171,7,29,11,186,5,252,1,191,250,226,243,191,247,93,255,111,2,150,3,95,3, +189,3,126,5,197,254,127,243,157,248,208,9,37,15,10,7,1,254,4,250,155,254,171,4,72,255,250,246,52,251,90,4, +61,5,166,255,148,250,171,250,136,254,145,255,170,255,174,4,10,8,17,3,19,252,205,248,186,248,108,251,163,255,244,3, +225,5,158,0,75,249,70,251,48,1,151,255,142,252,37,255,106,1,138,1,122,2,7,1,159,253,197,254,79,3,203,4, +112,3,64,4,242,6,38,4,230,250,236,246,246,252,16,2,35,1,197,0,81,2,98,2,85,1,115,255,4,253,172,252, +106,254,135,0,227,2,151,3,167,1,133,0,210,0,134,255,207,253,71,255,78,4,192,9,87,9,151,255,246,243,196,241, +11,249,248,254,223,253,56,253,171,3,186,10,22,11,67,7,114,2,169,254,162,0,23,5,206,2,105,253,12,253,134,252, +219,247,108,247,205,253,73,2,83,0,135,252,59,254,155,6,61,11,71,4,94,252,245,255,8,8,252,8,106,5,65,2, +15,253,139,248,75,252,250,3,140,4,166,254,201,250,111,253,212,5,54,11,90,3,167,246,217,247,144,4,172,10,20,6, +210,255,90,253,112,255,206,3,1,5,215,0,87,251,237,249,12,254,92,2,192,0,170,252,15,254,84,3,37,4,52,0, +81,255,16,3,67,4,194,0,76,254,122,254,213,254,59,0,119,1,106,255,123,254,196,1,192,1,71,252,133,250,71,255, +157,4,125,7,123,6,14,0,100,248,181,246,245,252,35,5,79,6,129,0,58,254,196,2,100,4,231,254,154,250,126,252, +238,255,199,1,10,4,174,5,24,3,138,254,84,252,181,250,199,248,117,251,45,2,202,4,9,2,162,1,106,6,131,9, +53,5,197,253,161,250,249,251,77,254,216,0,242,2,52,4,47,5,169,2,223,251,14,250,188,1,21,9,240,7,191,1, +96,255,219,5,12,11,133,255,218,236,10,236,69,252,183,7,208,6,127,1,252,253,77,253,106,253,154,253,255,255,56,3, +14,4,23,4,59,4,98,2,222,0,244,2,141,4,68,0,41,250,238,251,215,3,49,4,158,252,194,252,4,6,191,10, +48,8,107,3,69,254,44,253,115,0,208,0,31,0,224,3,193,5,161,2,113,0,158,253,40,248,215,247,186,254,71,5, +118,6,18,2,171,253,36,0,87,5,3,5,77,0,30,252,201,251,168,255,199,1,234,0,108,3,107,5,63,0,190,251, +208,252,58,254,33,1,206,4,57,2,62,254,66,255,95,0,173,2,242,6,136,2,89,250,139,253,43,3,167,0,185,0, +148,4,22,2,163,253,246,252,238,252,248,253,49,254,89,251,46,254,36,6,202,4,253,252,240,252,240,1,42,3,73,1, +148,0,10,4,94,6,71,254,228,243,119,246,64,0,25,4,138,2,187,255,48,254,17,0,215,255,157,249,139,246,35,253, +231,6,91,11,27,7,39,254,177,248,194,247,221,248,234,254,66,7,78,9,119,7,103,6,136,255,48,244,160,243,252,254, +42,6,255,3,2,2,182,3,253,2,52,253,100,247,155,247,232,254,108,7,42,9,2,4,176,255,95,255,11,254,15,250, +101,250,99,2,100,8,36,4,110,254,15,1,82,4,64,0,5,251,79,248,118,245,92,246,92,253,131,3,168,4,83,1, +36,251,183,249,32,0,0,4,228,0,144,254,75,255,69,1,196,4,226,2,36,247,164,238,100,244,226,254,250,0,68,251, +235,247,244,253,13,8,136,11,17,8,78,5,173,4,56,2,111,254,253,252,96,253,161,253,186,255,29,3,197,1,200,251, +213,247,64,248,128,253,20,6,11,8,17,2,208,2,194,9,212,5,190,250,81,249,208,254,187,1,171,3,136,4,122,0, +68,250,164,247,214,250,3,1,108,4,75,4,89,4,66,5,137,5,178,2,124,252,50,252,98,5,70,8,213,254,103,250, +58,0,181,1,240,250,26,246,182,250,107,5,190,8,38,1,37,253,33,0,23,0,31,1,226,5,77,1,182,247,244,250, +231,3,254,3,58,1,163,1,196,1,193,1,93,1,48,255,243,253,123,252,229,248,176,248,86,252,0,254,188,254,242,255, +45,255,166,255,58,3,125,5,165,6,158,6,75,1,222,252,121,0,220,2,163,253,237,248,101,248,242,250,210,2,141,9, +101,5,28,254,133,0,30,8,218,8,170,1,217,251,95,254,199,4,207,5,51,0,151,249,78,247,193,252,35,7,79,12, +149,7,198,0,166,255,85,1,241,255,174,253,177,0,188,6,218,6,37,255,32,247,195,245,194,252,169,8,37,17,48,16, +82,9,92,3,146,255,215,252,240,251,143,252,232,253,69,1,191,4,181,2,132,252,47,249,17,249,141,250,200,1,80,12, +172,14,117,7,202,255,203,251,95,252,152,1,154,4,143,2,110,3,244,6,250,3,59,254,156,254,201,0,85,255,109,253, +6,253,193,254,134,2,126,1,88,250,159,249,27,4,208,13,218,13,189,6,139,255,36,254,248,255,9,255,17,255,138,3, +103,4,84,254,182,248,215,246,124,249,163,2,204,9,12,4,200,249,125,252,155,11,12,20,80,10,1,252,241,251,172,4, +93,5,177,254,158,250,135,250,213,251,34,252,156,250,80,253,210,6,46,12,118,5,136,250,31,247,189,254,208,9,151,11, +17,2,232,248,145,248,192,253,8,0,245,250,67,244,160,245,99,255,37,9,54,11,133,4,168,253,133,255,180,5,135,6, +22,1,129,250,67,249,182,255,234,3,172,253,83,247,251,250,220,0,239,255,103,251,20,251,244,1,188,8,95,5,249,251, +181,249,201,0,34,8,15,8,3,1,198,250,98,250,110,251,39,249,223,245,224,246,5,254,91,5,21,6,251,3,104,4, +231,3,253,1,139,2,174,1,121,252,161,248,34,248,121,249,6,254,116,2,85,2,27,1,92,1,129,2,212,4,239,2, +195,251,108,253,201,9,11,13,165,2,177,249,147,245,221,241,124,243,215,252,170,5,238,7,22,7,151,7,181,5,86,254, +120,250,125,255,46,3,214,0,185,255,12,255,106,250,184,247,145,250,27,254,198,0,61,3,43,3,101,0,211,253,218,253, +35,1,249,4,217,5,243,3,189,1,111,0,172,253,164,247,41,245,190,251,202,2,92,4,11,6,242,4,223,251,147,246, +235,251,159,0,230,0,211,1,188,1,243,1,81,5,242,3,115,252,188,250,14,0,129,2,94,255,132,250,214,248,211,252, +153,1,186,2,80,2,235,0,44,254,49,252,166,249,52,247,192,251,85,5,199,8,108,3,10,252,194,249,62,254,196,1, +250,254,222,252,133,255,69,2,226,3,56,3,180,254,221,254,113,7,80,11,156,4,113,253,160,251,38,253,18,255,160,254, +191,254,149,3,16,8,90,7,14,4,228,255,227,252,22,254,196,0,75,3,150,6,83,4,254,251,119,250,33,1,254,3, +17,1,137,252,89,249,24,255,52,11,211,12,17,3,227,253,50,255,159,253,162,250,218,254,160,9,173,14,137,7,104,255, +35,254,117,250,52,243,174,244,10,253,82,1,185,3,95,7,83,6,151,0,172,252,81,253,237,2,31,10,61,11,158,5, +210,255,199,251,187,248,178,249,212,254,175,1,127,255,105,254,46,2,198,4,102,1,35,252,195,249,20,252,254,2,141,6, +121,254,78,244,175,247,237,4,242,12,193,9,101,254,38,243,20,243,123,254,187,6,27,2,27,250,120,252,90,5,14,6, +122,253,99,247,90,249,239,2,53,17,97,22,202,8,106,248,1,246,131,248,151,245,239,243,192,248,156,2,191,14,139,17, +214,3,129,246,60,249,5,2,40,5,254,5,203,6,234,4,122,0,202,249,242,242,237,240,62,243,193,248,81,6,205,22, +49,25,138,11,195,253,182,248,71,250,115,0,127,7,106,8,119,0,14,245,125,240,7,247,97,254,0,253,217,252,80,9, +142,21,90,15,173,253,223,243,191,245,48,251,149,255,72,2,16,4,66,6,31,6,253,255,94,248,156,247,12,255,220,8, +26,14,245,11,6,5,221,251,167,242,202,240,148,250,28,7,134,12,126,11,242,6,165,255,216,247,202,241,219,240,97,249, +212,6,78,14,50,13,163,7,188,0,212,252,70,253,189,252,146,251,183,0,5,9,111,10,24,5,107,255,33,251,165,249, +183,253,230,2,20,1,61,250,28,248,150,252,116,0,223,255,216,253,52,253,152,253,105,254,218,255,18,0,234,252,112,251, +184,2,49,12,185,10,14,0,166,248,127,250,36,3,45,9,185,3,44,251,245,253,108,4,58,255,197,245,209,247,216,2, +173,9,17,7,42,0,51,252,204,253,71,3,28,7,215,2,179,250,58,250,18,0,60,2,53,0,230,252,165,249,233,252, +214,5,144,7,177,0,12,252,41,252,148,254,137,1,188,255,193,251,223,255,27,7,98,4,238,252,242,253,209,4,3,6, +0,1,18,0,84,5,40,6,99,255,161,249,165,247,215,247,193,252,114,3,96,5,225,4,184,5,39,7,182,9,113,10, +121,4,41,253,123,251,117,252,41,252,185,250,10,250,249,252,151,255,146,251,22,248,114,254,2,10,119,19,40,21,59,10, +204,252,11,250,162,251,221,251,230,0,9,5,222,0,37,255,124,3,61,2,228,251,192,249,18,252,3,0,145,3,183,4, +173,4,48,2,31,252,157,250,178,0,163,5,234,7,130,10,247,7,201,255,234,249,77,248,0,250,216,254,65,2,9,3, +93,4,143,3,71,0,168,0,172,2,74,0,177,252,39,252,171,253,163,255,81,0,29,1,70,5,104,7,53,1,242,249, +88,251,237,2,176,6,215,1,14,253,244,0,76,3,8,252,19,250,102,3,135,6,26,0,95,255,74,5,138,6,199,255, +64,246,87,243,185,250,3,2,21,1,159,254,15,1,55,6,47,11,230,13,253,11,83,5,255,252,59,248,54,249,209,252, +121,1,26,6,81,5,123,255,43,252,83,252,113,254,143,4,186,7,58,1,164,253,228,5,195,11,6,6,59,254,99,250, +175,248,130,250,64,255,195,1,38,1,115,0,90,0,134,255,80,253,31,251,187,251,255,254,119,0,106,254,116,254,224,3, +239,6,184,0,116,248,253,247,228,252,141,0,129,3,74,7,100,7,101,1,195,252,122,255,73,2,200,254,130,252,170,255, +99,255,67,249,243,245,99,248,226,252,171,0,18,2,145,3,102,7,104,6,152,253,236,248,246,253,207,2,189,2,232,1, +117,0,31,253,68,250,7,250,41,253,207,0,118,254,109,248,218,250,33,6,235,10,200,3,217,253,221,1,18,8,89,7, +121,0,250,248,223,245,219,248,74,254,101,2,239,4,0,5,230,1,18,254,241,250,90,249,117,251,237,254,91,1,229,6, +163,12,62,8,164,254,76,252,6,254,55,254,20,0,114,0,12,252,114,251,234,255,204,255,109,252,32,253,219,255,145,1, +51,2,28,0,86,253,240,252,43,252,242,251,246,0,197,5,253,2,196,253,79,252,44,252,43,252,167,254,64,1,173,255, +46,253,175,1,55,12,228,16,97,10,202,2,177,2,205,4,136,2,147,254,251,252,179,252,13,252,155,251,193,251,255,251, +66,252,80,253,50,0,189,3,64,4,208,1,229,1,20,5,218,4,78,0,183,253,113,254,183,254,206,253,128,252,166,250, +185,249,201,250,141,252,204,254,38,2,185,5,185,8,17,10,137,8,13,7,66,8,227,6,150,255,103,250,41,253,46,2, +22,4,30,3,26,0,41,254,121,255,24,255,91,252,77,255,62,6,26,7,200,3,47,2,116,254,219,249,114,253,8,6, +139,8,89,5,182,4,58,9,242,11,105,4,181,247,243,243,58,250,233,0,112,4,248,3,234,254,147,250,180,249,222,250, +104,2,215,14,83,18,68,10,28,2,58,253,15,249,32,247,226,247,112,252,105,5,21,10,111,5,132,0,192,254,244,250, +50,250,185,2,164,12,190,16,31,17,120,12,169,255,186,243,81,247,75,8,139,18,196,11,153,0,57,253,147,252,156,247, +218,243,219,250,212,9,29,18,207,13,28,6,13,0,151,249,187,246,254,249,93,255,149,7,149,15,123,11,8,255,71,250, +98,252,61,253,254,253,253,252,54,251,127,3,242,15,149,11,17,249,88,238,11,243,124,255,31,11,52,19,32,27,251,31, +221,23,187,6,31,250,145,242,134,236,162,237,242,246,190,0,207,5,251,3,184,253,247,251,116,0,130,4,152,10,199,22, +242,27,177,14,2,252,149,243,98,241,221,238,142,240,133,247,96,253,229,1,128,9,152,17,5,19,134,12,50,5,138,3, +227,3,191,255,48,250,62,248,169,247,96,247,63,249,132,250,140,249,168,249,179,251,28,0,197,7,18,11,87,3,181,249, +136,248,181,251,191,251,220,248,83,248,237,253,198,4,15,4,7,253,4,248,114,248,113,253,18,3,168,1,32,248,184,240, +18,244,41,255,205,8,46,13,197,15,253,15,93,8,113,253,158,249,240,250,155,250,108,251,100,255,209,0,252,253,36,251, +139,250,142,252,199,0,18,4,207,3,81,2,57,3,47,4,149,255,20,248,115,246,128,250,121,253,185,255,71,3,125,3, +156,255,78,254,152,0,96,1,171,0,188,1,169,2,159,255,111,250,222,248,188,252,19,1,135,0,238,252,229,252,155,1, +114,5,66,6,142,7,93,8,232,2,181,248,84,243,206,246,48,253,68,1,51,4,3,6,9,4,172,0,218,255,201,255, +201,0,182,5,239,7,13,2,98,254,142,2,237,2,234,249,196,240,187,240,182,252,157,11,96,12,14,1,245,253,138,5, +143,7,99,255,145,247,162,249,236,2,107,5,152,252,50,246,202,249,120,255,60,0,86,250,69,244,86,252,136,14,162,20, +233,12,112,6,8,2,209,252,41,250,28,247,93,246,129,1,198,12,159,7,81,254,146,254,251,254,17,250,121,247,41,251, +41,5,109,15,191,12,210,253,109,243,149,244,241,250,191,0,178,3,108,6,79,12,14,14,235,3,1,247,167,244,175,251, +254,1,132,1,177,252,77,250,135,252,19,0,19,2,178,0,124,253,139,254,31,3,121,3,234,1,214,4,87,5,119,254, +144,250,253,252,195,251,21,247,34,248,140,253,52,0,170,255,88,0,123,6,214,14,233,13,36,2,227,249,110,252,90,1, +38,2,199,255,248,250,31,246,115,247,226,255,93,5,127,255,246,247,176,253,244,9,230,12,244,10,94,13,177,11,77,1, +87,249,207,246,6,243,32,241,203,246,111,254,26,1,30,1,252,3,129,8,138,8,73,4,175,1,66,1,201,0,38,1, +168,0,72,254,96,254,53,255,233,251,111,250,60,253,139,251,206,248,0,0,217,9,34,11,223,6,0,0,10,248,107,246, +75,250,194,251,215,252,59,0,108,1,205,1,133,3,100,0,126,249,71,248,46,252,193,254,228,254,103,251,160,244,108,242, +111,249,246,1,165,1,54,250,252,248,238,0,107,1,51,244,126,236,125,244,73,254,203,1,185,3,48,3,87,255,53,254, +20,255,244,252,112,251,74,254,120,2,195,5,122,5,78,255,136,251,20,1,52,5,5,0,3,253,238,2,71,7,228,3, +125,254,251,251,131,253,8,2,52,5,127,4,7,2,117,0,38,1,252,1,75,254,75,249,222,251,37,3,191,4,45,2, +50,3,43,6,201,5,73,3,91,3,157,6,77,6,21,253,170,243,162,245,93,253,244,255,38,1,168,5,6,6,212,0, +18,1,20,8,148,10,48,6,193,2,218,1,65,255,100,251,208,249,123,251,152,254,126,0,156,0,125,0,117,255,69,253, +96,254,51,3,2,5,182,3,232,4,201,3,204,249,218,240,208,244,139,255,8,6,165,9,44,15,126,18,19,14,93,6, +244,2,183,1,219,253,20,252,153,255,134,255,92,247,79,242,180,249,219,6,210,12,189,7,239,255,234,253,241,255,46,2, +135,5,39,6,146,254,68,246,33,246,216,247,193,245,50,246,116,250,250,252,197,0,62,9,51,13,183,5,146,251,53,250, +11,1,17,7,153,6,127,1,134,251,67,247,18,248,108,253,91,0,174,254,40,254,186,255,67,255,97,254,252,255,9,1, +37,0,208,0,59,4,88,8,209,10,158,9,90,6,198,4,194,2,202,252,46,248,153,250,53,255,194,0,158,1,52,2, +241,255,223,254,191,2,218,4,59,1,246,255,179,3,229,2,43,251,56,246,164,248,90,253,54,255,106,253,129,251,195,253, +226,1,96,1,198,251,150,247,7,251,247,4,34,11,19,6,234,252,219,249,209,251,119,254,195,1,115,3,41,0,96,250, +219,246,19,248,161,254,174,6,179,8,167,2,154,252,145,255,122,7,176,6,225,252,230,248,80,253,128,254,186,252,148,255, +183,1,47,254,129,252,205,254,203,254,209,253,226,255,143,1,99,0,159,254,203,252,137,250,11,249,166,249,58,253,238,1, +77,4,57,5,176,5,249,1,170,251,220,249,39,251,56,251,225,254,176,7,144,12,108,9,0,3,206,252,59,249,205,249, +243,251,36,255,231,4,230,6,104,254,65,243,75,242,169,251,252,4,193,6,2,3,163,0,220,1,68,3,17,2,172,253, +16,248,218,246,167,252,217,3,225,5,120,2,169,253,43,251,201,250,88,250,83,251,182,255,149,4,245,6,19,6,226,0, +234,251,166,254,205,3,227,0,92,251,127,253,8,2,17,0,1,251,228,250,26,1,119,6,153,3,251,253,197,0,147,7, +125,5,200,252,253,249,22,0,176,7,92,9,204,4,209,0,75,1,4,2,50,0,226,254,14,0,74,2,174,2,168,254, +50,249,155,249,249,0,250,7,121,7,30,0,221,251,26,2,55,9,53,4,189,250,15,253,11,8,199,10,237,255,226,243, +243,244,17,1,2,8,176,2,221,251,128,253,153,4,212,8,27,6,49,1,188,2,94,9,23,11,84,6,198,1,5,255, +32,252,112,250,190,251,147,255,102,2,197,254,218,247,3,250,107,5,174,9,241,0,110,249,73,253,87,5,67,7,31,2, +236,251,234,250,147,0,51,7,183,6,246,254,98,249,42,252,109,1,35,1,63,253,212,252,85,0,254,1,244,255,25,255, +106,2,230,5,39,5,142,1,199,255,77,2,185,5,28,4,21,255,68,254,250,0,40,0,116,253,189,254,142,1,79,2, +55,3,254,3,159,1,42,254,46,253,204,254,129,2,89,6,236,6,29,5,13,4,231,2,88,0,178,253,224,251,80,252, +141,0,9,5,242,4,204,1,41,255,1,253,206,250,140,249,124,250,55,254,118,2,218,3,15,3,27,2,248,0,56,1, +55,3,41,2,147,254,85,0,27,5,135,1,17,248,226,246,76,255,29,4,33,255,227,249,134,253,211,3,232,3,171,2, +89,4,165,0,221,248,220,251,15,7,69,9,15,3,139,254,109,249,129,244,222,249,127,4,204,3,244,248,218,244,241,253, +96,8,150,6,203,252,223,250,239,2,72,9,105,9,43,4,86,248,92,238,75,242,47,253,7,0,228,251,213,250,200,0, +81,9,210,9,24,0,51,251,67,2,242,6,72,2,19,254,236,251,183,246,40,245,65,254,78,10,189,13,56,6,197,251, +145,248,247,251,136,253,18,253,180,255,165,3,61,5,68,4,17,0,238,250,106,250,179,253,176,0,179,4,46,9,229,7, +74,0,250,249,144,250,46,0,35,4,250,2,236,255,170,252,82,248,110,248,92,0,135,5,251,0,83,253,154,2,120,9, +222,9,147,3,134,250,113,245,165,247,0,252,76,254,176,0,122,3,122,3,157,0,167,253,6,253,90,255,158,0,61,252, +50,247,153,250,4,3,84,4,47,254,119,251,85,255,29,4,98,8,135,12,254,10,122,0,91,243,209,235,244,235,239,240, +21,248,7,2,95,12,26,13,154,1,213,247,5,250,40,1,138,4,40,4,219,2,56,3,242,4,152,4,229,2,150,1, +174,252,252,245,7,247,36,254,169,1,181,0,161,252,184,246,210,248,228,3,247,7,159,2,53,1,29,2,244,253,165,252, +65,1,201,0,238,249,188,246,178,250,164,0,84,1,146,252,231,251,160,0,16,0,119,251,154,253,133,3,122,5,229,4, +8,2,187,252,249,250,255,252,5,254,82,0,121,4,215,5,125,5,59,3,236,251,204,248,56,1,86,8,29,6,77,3, +96,1,247,252,142,251,190,252,125,251,186,253,41,4,63,4,118,0,255,0,126,255,157,249,197,248,64,252,118,254,59,3, +196,8,169,5,21,252,215,245,84,246,175,251,172,0,119,1,223,2,106,7,183,6,93,253,82,244,30,243,10,249,108,0, +49,4,225,5,161,6,158,0,35,247,157,248,162,2,128,3,152,251,61,250,193,0,172,5,207,5,104,1,82,249,227,244, +124,251,164,7,106,11,41,2,150,246,124,245,70,255,120,8,51,7,179,255,189,253,194,0,158,254,1,250,170,253,69,5, +85,5,132,255,72,251,28,250,190,251,211,254,96,255,124,253,125,253,159,0,248,3,150,3,227,254,164,251,70,254,97,3, +144,6,192,5,58,255,201,247,37,248,236,253,82,255,9,252,214,251,151,1,137,6,202,2,12,252,160,254,123,5,212,3, +3,255,230,254,51,253,47,251,21,0,102,1,246,248,96,248,162,4,201,10,190,5,25,1,153,255,32,255,241,0,73,3, +132,4,77,5,59,4,49,3,211,4,171,2,8,251,197,249,91,0,107,1,51,252,142,253,45,7,167,12,198,6,163,255, +175,3,156,9,14,2,17,249,160,0,114,11,107,7,73,254,64,253,137,1,137,7,242,11,107,7,236,252,1,248,61,250, +194,253,1,0,180,255,187,253,130,254,151,1,176,1,25,255,158,254,67,0,98,255,166,250,203,247,107,252,158,4,238,6, +106,0,33,248,88,248,138,2,177,9,145,2,169,246,119,246,55,0,120,5,223,255,108,245,142,241,154,250,130,7,52,9, +84,0,52,250,36,251,118,253,21,255,3,0,93,253,24,249,105,250,28,1,146,5,64,4,58,255,244,250,182,252,177,2, +105,4,25,2,111,2,48,2,139,253,153,252,202,0,58,255,122,249,144,251,129,2,62,3,78,254,201,249,38,249,189,253, +163,1,207,253,149,249,122,255,60,8,76,7,22,1,103,1,66,6,101,5,16,0,215,255,124,3,205,2,114,255,76,253, +122,248,32,244,124,250,65,5,180,4,221,251,186,248,4,253,3,3,4,8,56,9,123,5,182,1,77,2,85,4,94,1, +243,248,234,243,226,248,112,1,254,3,86,1,209,255,145,1,104,4,121,5,148,4,124,4,53,6,244,7,127,8,143,6, +56,1,234,251,134,251,171,255,147,3,38,3,135,255,229,254,210,2,130,4,137,1,100,255,68,254,71,250,26,248,174,253, +36,5,255,5,89,2,238,0,111,2,230,2,50,0,33,252,48,251,21,0,36,5,173,1,241,249,52,250,18,0,78,0, +203,253,2,0,216,1,35,0,100,1,33,5,28,5,115,2,120,255,187,251,94,250,86,252,245,253,38,0,49,3,140,1, +209,253,251,0,142,7,247,7,18,3,201,254,226,253,204,255,53,0,163,254,117,1,175,6,123,4,204,253,168,253,176,2, +138,4,70,2,246,255,247,255,136,0,198,254,143,253,240,255,7,0,145,250,178,247,189,251,189,0,108,2,30,1,108,254, +24,253,153,252,176,250,172,250,67,254,255,0,107,3,21,7,40,4,41,250,69,247,144,253,191,254,147,248,248,246,136,252, +63,0,86,254,85,253,75,1,188,3,104,1,246,1,200,4,210,254,115,245,155,248,198,1,130,255,53,247,219,248,119,1, +27,3,189,252,166,249,64,254,14,2,145,0,228,0,96,4,23,2,60,250,130,247,28,252,67,0,14,0,70,255,179,1, +107,3,207,253,95,245,198,245,244,254,234,5,210,5,42,3,51,2,127,1,218,253,201,249,73,250,25,254,245,2,219,8, +72,8,99,252,203,243,76,249,145,255,46,254,180,255,207,5,29,7,124,4,65,2,250,254,43,253,187,255,212,1,193,0, +99,255,255,254,93,0,147,2,4,1,125,253,123,255,65,5,4,7,107,3,6,254,253,251,217,255,113,2,155,254,108,253, +175,3,207,6,239,1,16,253,205,252,52,255,229,1,15,3,161,3,160,4,173,3,20,2,135,2,189,255,100,249,40,251, +96,4,193,5,148,254,57,251,231,253,1,2,65,5,167,4,124,1,119,2,242,6,147,7,99,2,184,251,27,250,68,0, +101,6,157,4,165,255,213,253,166,253,37,253,183,250,127,245,91,245,134,255,124,8,214,6,130,1,66,254,13,252,202,253, +148,3,74,6,103,4,59,1,72,252,4,248,176,249,167,253,43,254,219,254,80,2,235,2,86,255,1,254,243,0,7,4, +19,6,179,7,79,5,90,254,90,251,56,0,159,3,85,255,77,250,251,250,48,255,113,2,95,1,102,252,177,249,58,252, +53,255,180,255,167,255,109,0,231,2,116,5,185,2,223,252,152,253,232,3,182,5,56,2,211,254,87,252,54,252,9,0, +152,1,28,252,197,246,89,249,105,0,165,4,215,4,154,3,206,1,169,0,3,3,28,6,36,3,60,253,193,253,12,2, +82,1,6,254,126,254,48,1,45,3,48,4,143,3,43,2,74,1,60,0,109,0,37,2,92,0,27,252,0,253,216,255, +107,252,155,248,89,253,30,6,167,10,195,8,243,2,167,255,79,1,133,1,166,254,147,254,30,0,226,254,32,254,85,255, +11,255,102,255,211,2,98,4,232,1,83,255,184,254,76,0,130,2,98,1,162,254,128,255,162,0,98,253,175,250,62,252, +236,254,128,1,251,2,205,0,200,254,194,0,206,0,4,252,150,250,149,0,156,6,128,4,160,250,219,242,216,245,18,254, +20,1,52,0,252,0,140,1,136,0,124,0,114,255,245,250,216,248,132,254,133,5,227,3,103,252,73,251,219,1,177,4, +235,0,122,255,136,1,161,255,11,250,121,247,169,249,152,253,165,255,126,254,227,253,205,0,88,3,46,2,238,255,195,254, +158,254,140,0,197,3,63,4,41,0,205,250,236,249,159,255,59,5,175,2,108,251,159,249,81,254,193,1,215,0,209,255, +196,0,142,0,22,255,245,0,237,4,173,3,48,254,113,253,191,1,50,2,115,252,13,248,150,250,81,0,57,2,56,0, +152,255,238,0,234,0,27,0,139,0,113,1,221,1,74,1,152,255,247,254,96,255,183,253,162,252,54,0,206,2,3,0, +100,254,100,0,197,255,55,252,184,250,214,252,240,1,6,5,92,0,210,251,64,1,90,6,8,0,248,248,48,251,66,0, +64,3,97,4,24,1,69,253,152,0,36,5,133,1,213,251,243,252,48,1,146,2,84,1,16,254,157,249,156,249,12,1, +242,6,51,2,2,251,7,254,213,4,65,2,189,250,237,249,52,255,57,3,155,1,66,251,250,247,76,252,108,0,17,255, +33,254,143,255,232,255,83,1,170,3,59,1,120,253,175,255,14,3,107,1,29,255,225,255,204,1,222,2,41,0,10,250, +16,249,249,255,95,4,32,1,214,253,190,254,84,0,14,2,83,5,122,6,210,2,176,255,123,1,2,3,20,0,200,254, +116,2,61,3,254,253,161,251,135,0,221,5,91,6,252,3,137,2,149,3,3,5,240,3,65,2,17,3,159,3,163,0, +93,254,182,1,207,5,239,2,16,253,84,254,106,4,140,4,197,255,166,255,15,4,113,6,139,5,38,2,145,252,243,248, +86,251,246,1,74,7,100,6,137,1,84,2,69,9,105,9,131,255,226,248,255,251,235,0,177,1,113,0,104,0,109,1, +238,0,199,255,5,2,123,5,213,4,236,2,78,3,0,2,235,254,239,254,56,255,76,252,250,251,182,255,129,255,189,250, +91,250,121,0,195,4,165,1,78,253,213,255,110,4,143,2,65,255,168,1,232,3,236,1,150,1,60,2,199,253,196,248, +150,250,186,255,235,1,78,1,140,0,114,0,222,255,163,254,27,255,36,1,113,1,19,0,229,254,196,253,128,254,23,1, +142,255,96,251,195,253,153,2,189,255,113,252,78,1,57,4,167,254,230,250,253,253,159,1,192,2,95,1,2,253,184,249, +150,251,1,0,27,3,95,3,114,0,11,254,148,0,160,4,245,3,34,0,116,254,1,255,234,254,117,254,171,255,119,1, +214,0,172,254,31,255,227,1,134,1,149,253,233,253,212,4,66,7,27,255,205,248,80,253,123,1,10,254,103,253,167,2, +65,3,149,255,181,0,152,3,175,1,77,255,230,0,17,3,51,2,42,254,4,250,46,250,22,253,213,252,176,250,43,252, +201,255,38,1,1,1,65,1,240,0,194,255,213,255,178,1,175,1,88,253,114,249,211,251,33,2,70,5,213,1,218,250, +81,248,212,253,70,3,66,1,107,253,111,254,253,0,124,0,178,253,71,252,233,254,100,1,27,254,154,251,198,0,151,3, +129,253,162,250,45,255,6,0,134,253,159,255,186,0,204,251,45,249,37,252,23,254,137,254,91,2,148,8,33,11,160,5, +68,251,254,245,127,250,177,1,53,2,137,251,156,246,86,250,110,0,128,0,255,255,107,4,136,5,158,0,155,255,12,2, +135,254,141,249,118,252,173,1,93,0,136,251,5,250,126,252,40,255,214,255,65,0,170,0,114,254,31,252,190,254,145,2, +197,1,20,0,138,1,115,2,78,1,130,1,112,2,51,1,128,255,225,255,232,0,186,0,201,255,32,254,167,251,232,251, +251,1,104,8,156,7,156,2,255,0,91,2,181,2,139,1,249,254,196,252,74,255,155,4,6,5,211,255,5,251,205,249, +190,252,204,2,61,6,151,2,159,252,173,252,5,3,195,6,35,2,44,252,49,254,90,4,236,4,0,0,103,252,56,253, +73,0,84,0,47,251,234,247,49,253,13,5,64,6,140,2,16,1,104,2,97,2,36,0,99,254,27,254,33,255,31,2, +142,3,101,254,208,248,187,252,109,4,222,4,122,1,215,0,163,0,52,0,89,1,103,1,138,0,174,0,44,253,229,247, +170,252,214,7,102,8,72,255,133,251,47,0,107,5,81,4,14,252,237,246,110,254,243,8,108,8,174,0,28,252,189,252, +254,0,240,4,40,3,3,255,27,0,112,3,119,1,211,251,32,249,22,252,172,2,43,7,164,4,40,254,12,252,240,255, +116,2,38,0,36,255,167,1,61,1,25,254,201,254,143,255,26,251,111,250,100,2,33,6,2,0,188,251,94,254,156,0, +191,255,10,255,204,255,184,1,88,3,118,2,102,255,34,252,210,250,153,253,110,1,31,0,131,252,35,254,125,1,108,255, +223,252,199,0,14,6,131,5,53,1,216,253,237,251,81,251,179,252,69,254,189,253,193,252,92,253,175,253,24,253,48,255, +126,4,132,7,49,4,99,253,182,250,206,255,92,5,236,2,85,253,102,253,252,255,62,255,109,254,35,0,132,0,104,254, +218,252,10,253,8,254,246,253,245,251,147,251,20,0,121,5,164,5,184,0,155,252,111,254,81,3,143,2,210,251,50,249, +109,254,99,3,174,1,142,252,105,251,104,0,226,4,42,3,58,255,221,253,98,254,64,1,15,5,108,2,216,250,246,250, +147,3,163,7,253,2,202,253,204,253,125,0,180,255,209,251,66,253,74,3,15,2,165,251,7,254,8,5,79,2,255,251, +56,0,46,9,250,8,136,0,110,250,168,251,151,0,98,3,107,2,38,0,239,254,93,255,79,0,108,0,168,0,217,1, +22,2,9,1,250,0,153,1,148,1,234,1,192,1,33,255,0,253,8,255,18,3,172,4,245,1,116,253,187,252,221,255, +59,0,236,253,144,255,1,3,150,1,148,254,134,255,22,2,139,3,250,3,236,1,195,254,234,254,161,0,78,255,104,253, +140,254,149,255,0,254,180,253,105,1,11,5,234,3,56,0,145,255,87,1,117,255,81,250,189,250,98,3,114,10,71,8, +221,1,194,253,6,251,91,249,18,252,38,1,109,3,193,3,246,3,90,1,155,252,18,251,235,253,1,2,89,4,192,2, +124,255,236,255,104,2,56,1,102,254,116,254,203,255,255,0,37,2,227,255,26,251,127,251,223,0,72,2,175,254,40,253, +168,255,111,2,17,3,181,1,163,255,114,254,86,255,93,2,198,4,241,2,192,254,148,254,136,3,196,6,198,2,163,251, +54,250,70,255,15,3,246,2,99,3,240,3,80,1,196,254,175,255,82,1,85,2,221,3,240,3,231,1,142,0,94,255, +192,252,126,251,236,252,95,254,81,255,105,0,77,0,174,255,24,1,201,3,96,5,131,5,6,5,156,4,124,3,53,0, +8,253,87,253,206,254,101,254,202,254,44,1,248,1,50,1,182,1,68,2,142,1,10,2,226,3,192,3,170,0,216,252, +25,251,249,252,40,0,32,0,153,252,70,250,203,252,136,2,189,5,115,2,175,252,185,252,84,3,185,7,17,4,79,253, +1,251,195,253,12,2,121,5,142,5,87,1,197,253,139,255,157,2,252,0,217,252,176,251,115,253,197,254,55,255,58,1, +191,4,13,5,215,255,86,251,237,253,242,3,6,6,62,4,5,3,78,2,52,255,241,250,248,249,245,252,123,0,229,2, +118,4,11,4,218,1,129,0,140,255,28,253,60,252,47,255,104,1,169,0,102,1,234,3,224,2,243,254,222,253,45,255, +68,254,13,252,146,252,253,254,71,0,75,1,97,3,104,4,77,3,231,1,101,0,141,254,228,254,55,1,113,1,201,255, +94,255,118,254,215,251,238,251,99,255,48,0,225,252,41,251,1,255,208,5,115,8,11,3,227,251,37,251,153,254,96,0, +2,1,220,0,74,253,5,250,255,252,160,1,9,0,105,251,80,251,241,254,35,1,24,1,229,0,225,1,100,4,0,6, +133,2,117,251,102,248,196,251,194,255,135,0,255,254,138,251,162,248,238,251,175,3,119,6,146,2,136,255,172,255,23,255, +1,254,48,255,124,0,71,254,95,250,186,249,84,253,198,0,127,0,173,254,45,255,107,1,114,2,22,2,156,1,66,0, +216,253,233,253,159,2,185,6,189,3,89,252,194,248,159,250,36,253,160,254,224,0,141,2,165,0,223,252,199,251,203,253, +144,255,240,255,151,0,103,1,44,0,55,253,62,252,41,255,154,2,36,2,195,254,140,253,137,0,138,4,38,5,167,0, +7,251,252,251,194,3,43,7,82,0,6,249,15,250,26,254,210,254,171,254,206,255,183,0,79,2,155,4,189,2,77,252, +133,249,206,254,108,5,80,5,45,255,105,250,240,251,43,0,67,0,32,253,96,253,109,0,6,0,57,254,223,1,251,6, +96,4,21,253,0,251,81,254,90,0,69,255,103,253,130,252,137,253,136,255,253,255,221,254,5,254,244,253,42,255,250,1, +77,3,174,0,199,253,128,254,104,0,84,0,204,255,86,0,8,0,3,254,52,253,191,255,131,2,221,0,79,252,14,251, +195,253,52,254,203,250,133,250,23,1,231,7,156,7,192,1,224,252,113,252,112,255,180,2,239,2,197,255,206,252,156,252, +174,252,88,250,144,248,96,251,194,0,18,4,25,5,108,5,206,3,29,0,178,253,78,253,130,252,168,252,70,0,216,2, +1,255,31,249,139,248,113,252,241,255,205,1,153,2,99,2,33,2,65,2,117,1,82,255,6,253,235,251,103,253,221,0, +2,2,207,254,206,251,119,252,203,253,101,253,155,253,178,255,9,2,168,3,190,3,141,1,90,255,231,254,63,253,35,250, +30,252,67,4,188,8,231,3,207,252,10,251,187,253,8,1,207,2,25,2,50,0,229,255,223,0,221,255,103,252,131,250, +104,253,175,2,166,4,146,1,164,253,144,252,118,253,172,254,47,0,67,1,206,0,214,255,186,255,157,255,122,254,70,253, +140,253,154,255,238,1,43,2,24,0,113,254,206,254,137,255,87,255,10,255,1,255,15,255,25,0,239,1,250,1,130,255, +207,253,4,255,134,0,78,255,1,253,123,253,152,0,47,2,159,0,208,254,115,254,176,253,57,252,170,252,185,255,50,3, +67,5,253,4,62,2,42,255,250,253,204,253,131,253,109,254,140,0,17,1,0,255,161,252,61,252,121,254,171,1,114,2, +131,0,215,255,108,1,177,1,175,0,221,1,117,3,90,1,31,254,243,253,79,254,211,252,217,253,105,3,9,7,168,3, +95,253,170,250,128,252,237,255,199,2,162,4,97,5,147,4,20,2,222,254,220,252,75,253,231,254,132,255,46,0,69,3, +225,5,218,2,34,253,48,252,213,254,21,255,73,255,240,3,132,7,104,4,196,0,78,2,125,3,80,0,225,254,208,2, +87,6,168,4,212,255,169,251,188,250,26,254,74,3,89,6,188,6,10,6,233,3,246,255,243,252,202,253,140,1,33,5, +2,7,235,6,248,3,203,254,158,251,63,253,250,255,185,255,191,255,117,4,216,9,158,8,4,1,238,249,28,249,33,255, +207,6,14,9,39,5,186,1,141,2,117,3,74,0,205,251,224,251,21,2,43,9,244,9,136,3,88,252,10,250,106,252, +221,0,72,5,116,7,124,6,239,3,209,0,249,252,205,250,150,253,228,2,101,4,87,1,44,255,217,255,142,255,163,253, +124,254,226,1,239,1,136,254,20,254,252,0,207,1,2,1,18,2,145,1,28,253,9,252,6,2,8,6,89,2,175,253, +200,252,118,252,197,252,173,0,19,4,81,1,56,252,58,252,28,1,130,4,127,2,34,254,28,254,58,3,164,5,182,0, +214,250,246,250,188,254,219,0,155,0,57,255,93,253,173,252,95,254,116,0,240,255,95,253,202,252,30,0,29,3,28,1, +84,253,50,254,23,2,115,2,92,255,169,253,179,253,126,253,77,254,99,0,56,0,49,253,207,251,38,254,235,0,59,1, +18,0,137,255,183,255,229,254,194,252,95,252,32,0,131,4,209,3,92,254,249,249,25,250,3,253,131,255,181,255,213,253, +142,252,82,254,155,1,249,2,105,2,78,2,250,1,75,255,146,252,197,253,237,0,230,0,236,253,107,252,56,254,60,2, +103,6,21,7,114,2,98,252,75,249,240,248,10,251,1,1,231,7,22,10,54,7,207,2,189,254,145,252,104,253,243,254, +81,0,144,4,254,8,235,4,229,249,149,244,100,249,119,0,251,4,233,8,53,12,9,12,114,7,216,255,90,249,123,249, +5,0,158,5,31,5,210,0,133,253,164,253,201,255,177,255,97,252,147,251,255,0,255,6,8,7,33,3,204,0,211,0, +158,0,2,255,143,253,144,254,54,1,131,1,119,254,50,252,44,253,88,255,55,1,238,2,37,3,78,1,25,0,198,0, +231,0,133,255,177,254,6,255,29,255,226,254,69,255,203,255,83,255,8,254,76,253,232,253,241,254,48,255,76,255,142,0, +142,1,145,255,236,251,225,251,184,0,203,4,66,4,161,2,102,2,198,255,102,250,14,249,252,252,24,255,63,254,37,0, +7,3,130,0,0,252,206,252,88,0,207,0,186,255,179,255,42,255,31,254,28,254,169,253,122,252,170,253,87,0,205,255, +173,252,167,251,92,253,251,255,8,3,90,4,145,1,175,253,239,252,9,254,124,254,37,255,248,255,38,255,213,253,66,254, +23,255,148,254,47,254,43,255,52,0,45,0,202,255,152,255,163,254,86,252,98,251,235,254,176,3,190,2,15,253,236,250, +77,254,244,0,28,0,235,254,4,255,172,255,149,0,76,0,187,253,40,252,81,254,96,0,211,254,71,253,153,254,248,254, +177,252,109,252,116,255,4,1,57,0,183,0,168,1,219,255,2,254,198,255,185,1,196,255,245,252,105,253,96,255,158,255, +173,254,201,254,201,0,117,3,145,3,63,255,201,250,126,252,112,2,71,4,135,0,3,254,121,255,10,1,48,1,47,1, +33,0,120,254,135,255,69,2,50,2,0,0,41,255,52,255,58,255,82,0,12,1,177,255,154,254,241,254,180,254,53,255, +154,2,200,4,226,1,212,253,56,253,228,254,119,0,124,1,238,1,49,2,125,2,237,1,120,0,105,255,110,255,173,0, +255,1,90,0,161,252,2,253,223,1,179,3,131,1,100,2,221,5,111,4,58,255,223,253,71,0,0,1,42,0,208,0, +203,1,248,0,85,255,207,253,81,252,64,253,152,2,187,7,142,6,105,1,36,255,253,255,119,255,139,253,166,253,24,0, +99,2,207,2,254,0,48,254,70,253,135,255,64,2,26,2,206,255,26,255,80,1,95,3,74,2,100,255,93,254,6,0, +35,1,118,255,250,253,41,0,243,2,53,1,90,253,168,253,116,1,37,3,148,1,222,255,208,255,54,1,195,2,155,2, +214,0,166,255,210,255,145,0,176,1,86,2,220,0,75,254,179,253,15,255,181,255,102,255,85,0,157,2,107,3,45,1, +58,254,238,253,9,0,35,1,150,255,152,253,200,253,141,255,21,0,115,254,68,253,97,255,137,3,73,5,131,2,228,253, +53,251,149,251,229,253,251,255,192,255,19,254,70,254,6,0,27,255,195,251,78,251,110,254,54,0,24,255,20,254,107,254, +207,254,51,254,149,252,215,251,69,254,223,1,28,2,101,255,48,254,56,255,108,255,56,254,97,254,50,1,27,4,22,4, +250,1,192,0,133,0,126,255,33,254,159,253,92,253,156,253,134,255,212,0,146,254,9,252,198,254,240,4,158,7,83,5, +186,2,1,2,83,0,116,252,19,250,47,252,50,0,5,2,21,2,56,3,218,4,86,4,106,2,148,1,2,1,69,255, +152,254,46,0,124,0,232,253,87,252,15,254,97,0,8,1,159,0,119,0,145,1,82,3,91,3,157,1,62,1,198,2, +191,2,222,255,34,253,210,252,148,253,190,253,123,254,168,0,129,1,12,0,152,0,167,3,176,2,178,253,144,253,225,2, +91,4,199,0,153,255,150,1,125,1,0,255,130,253,217,253,215,254,150,255,34,0,0,1,168,1,164,1,65,2,76,3, +77,2,25,0,241,255,245,0,172,0,52,0,114,0,169,255,215,253,235,252,152,253,194,255,32,2,5,2,236,255,142,255, +28,1,42,1,36,255,254,253,10,0,14,4,52,5,6,1,162,252,87,253,49,0,46,0,71,254,9,254,170,0,155,4, +249,5,157,2,232,253,37,252,176,253,233,0,18,3,109,1,114,254,215,254,90,0,182,254,83,253,235,255,45,2,120,0, +27,254,230,253,211,254,38,0,128,1,190,1,66,1,88,1,83,1,145,255,96,252,120,250,70,252,85,0,150,2,31,2, +146,1,190,1,203,0,20,254,99,251,65,251,61,254,9,1,48,0,83,253,47,252,255,252,76,254,231,255,230,0,62,0, +250,255,233,1,45,3,239,0,34,254,254,254,171,1,13,1,58,253,176,251,222,254,179,2,36,3,98,1,87,0,22,0, +67,255,58,254,150,254,110,0,170,1,101,0,159,253,120,252,46,254,54,0,243,255,189,254,89,255,93,1,133,2,54,2, +173,0,79,254,68,253,247,254,134,0,50,255,148,253,141,254,175,255,91,254,104,253,63,0,67,4,67,4,65,0,49,253, +193,253,227,255,6,1,118,0,157,254,58,253,239,253,247,254,138,253,88,251,83,252,50,0,192,2,154,1,253,254,148,254, +10,0,164,255,52,253,169,252,175,254,44,0,142,0,35,1,41,1,54,0,188,255,176,255,16,255,185,254,75,255,183,255, +184,255,127,255,66,254,204,252,214,253,48,1,247,2,49,1,221,254,193,255,215,2,121,3,117,0,197,253,216,253,159,254, +156,254,205,254,42,255,208,254,225,254,160,0,120,2,177,2,198,2,61,4,157,4,73,1,55,253,61,253,118,0,229,1, +144,255,192,251,126,249,56,250,255,252,190,255,155,1,209,2,46,3,136,2,44,1,212,255,55,0,194,2,44,4,29,2, +105,255,205,254,195,254,195,253,114,252,164,251,154,252,216,255,177,2,5,3,106,2,255,1,127,1,87,2,108,4,92,4, +232,1,249,255,27,254,6,251,91,249,8,251,125,254,179,1,72,2,24,255,111,252,150,254,99,2,92,3,177,2,216,2, +213,3,145,4,219,2,54,254,28,251,191,252,186,255,122,0,187,255,210,254,148,254,199,255,187,0,194,255,71,255,108,1, +231,3,28,4,49,2,152,255,40,254,160,254,177,255,139,0,46,1,76,0,254,253,32,253,6,254,108,254,40,255,204,1, +186,3,185,2,243,0,93,0,40,0,224,255,156,0,214,2,44,4,130,1,51,253,65,253,155,0,74,0,226,252,132,253, +77,2,222,4,28,3,16,0,190,254,14,0,4,2,33,2,112,1,222,1,40,2,45,1,55,0,183,255,100,255,40,0, +207,1,193,2,177,2,127,1,253,254,225,253,119,0,185,3,118,4,250,3,224,2,254,255,245,253,247,255,174,2,74,1, +177,253,218,252,90,255,194,1,164,1,91,0,187,0,97,2,80,2,120,0,201,255,217,0,139,1,206,0,245,254,83,253, +171,254,7,3,10,5,134,1,86,253,147,253,150,0,250,2,5,4,44,3,143,0,249,254,16,0,141,1,18,1,35,255, +244,253,51,255,163,1,43,2,10,1,19,1,107,1,176,255,50,254,209,255,91,2,7,3,83,2,249,0,74,255,91,254, +42,254,46,254,96,255,73,1,69,1,193,255,219,255,139,1,168,2,221,2,48,2,52,0,64,254,7,254,216,254,45,255, +239,254,77,255,100,1,208,3,253,2,206,254,72,252,89,254,136,1,220,1,102,0,55,0,41,1,145,0,234,253,251,251, +240,252,194,255,5,2,96,2,30,1,140,255,188,254,229,254,192,255,152,0,8,1,222,1,242,2,1,2,52,255,61,254, +166,255,218,255,118,254,97,254,89,255,250,254,195,253,29,254,248,0,103,4,175,4,5,1,142,253,93,253,215,254,253,255, +42,0,214,254,181,253,29,255,145,0,205,254,229,252,194,254,15,2,36,3,88,2,106,1,23,1,21,1,8,0,206,253, +180,252,10,254,93,0,229,1,173,1,255,255,6,255,41,0,178,1,145,1,205,255,155,253,184,252,39,254,255,255,214,255, +229,254,192,255,144,1,98,1,64,255,168,254,3,1,194,2,45,1,224,254,40,254,116,253,193,252,26,254,216,255,108,255, +253,254,223,0,9,3,54,3,190,1,35,0,217,255,54,0,82,255,222,254,110,1,176,3,195,1,116,254,46,253,57,253, +38,254,78,255,84,254,235,252,245,254,217,1,107,1,62,0,227,0,254,0,6,0,233,255,42,0,45,0,63,0,228,254, +136,252,230,252,192,255,67,1,81,1,32,1,201,255,225,254,192,0,135,2,99,1,199,255,84,255,206,254,221,254,215,255, +125,255,93,254,95,255,86,1,141,1,4,1,22,1,238,0,119,0,63,0,233,255,195,255,58,0,26,0,48,255,86,255, +143,0,35,1,102,1,25,2,187,1,228,255,57,255,217,0,96,2,234,1,76,0,76,255,246,255,163,1,39,2,183,0, +59,255,246,254,217,254,142,254,27,255,73,0,70,1,138,2,225,3,143,3,134,1,181,255,231,254,207,254,162,255,248,0, +112,1,161,0,101,255,128,254,32,254,234,253,206,253,234,254,154,1,142,3,215,2,11,1,108,0,160,0,89,0,105,255, +53,254,69,253,68,253,236,253,53,254,93,254,164,255,127,1,245,1,70,1,115,1,44,2,144,1,85,0,65,0,92,0, +12,255,110,253,111,253,7,255,149,0,147,0,116,255,50,255,21,0,203,0,111,1,25,2,67,1,196,255,104,0,171,1, +45,0,223,253,107,254,249,0,219,2,91,2,1,255,90,252,210,254,111,3,58,4,218,2,223,3,115,5,205,3,238,255, +46,253,151,253,121,0,183,2,41,3,118,3,138,2,108,254,33,251,20,253,157,0,26,1,195,0,35,2,235,2,65,1, +160,254,6,253,152,253,13,0,66,2,151,2,109,1,154,255,28,254,74,254,201,255,124,0,4,0,28,0,250,0,176,0, +207,254,222,253,15,0,220,3,40,5,8,2,183,253,249,252,68,255,147,255,209,252,84,251,245,252,30,255,106,0,20,1, +158,0,4,0,241,0,209,1,26,1,226,0,171,1,222,0,214,254,0,254,29,254,204,254,112,0,163,0,28,254,189,252, +211,254,117,1,83,2,79,1,11,255,173,254,225,1,185,3,207,0,227,253,146,254,153,255,107,254,161,252,113,252,84,255, +143,3,165,3,156,254,242,250,146,252,41,0,223,1,10,1,53,255,93,255,252,1,210,2,82,255,47,251,34,251,60,255, +10,3,39,2,119,254,124,254,160,2,176,3,38,255,85,251,16,253,173,1,23,4,103,2,226,254,65,253,115,254,18,0, +77,0,198,255,185,255,150,0,245,1,187,2,18,2,182,0,71,0,196,0,49,0,67,254,192,253,207,255,133,1,189,0, +31,255,187,254,169,255,244,0,87,1,166,0,89,0,190,0,196,0,37,1,54,2,31,1,191,253,16,253,217,255,130,0, +188,253,123,252,98,254,52,0,108,0,62,0,141,0,97,1,244,1,66,1,248,255,210,255,252,0,11,2,116,1,206,254, +95,252,29,253,96,255,181,254,44,252,111,253,214,2,142,6,143,5,57,2,94,255,22,254,147,254,227,255,190,0,219,0, +80,0,104,255,181,254,159,253,212,251,75,252,157,0,246,3,149,2,168,0,254,1,63,3,14,1,82,253,99,251,224,252, +55,0,32,1,223,254,129,253,145,253,136,252,8,253,153,1,191,4,129,2,152,255,86,255,113,255,206,255,225,1,67,3, +92,1,107,253,127,250,104,251,148,255,193,1,153,255,219,253,132,255,133,1,217,1,134,1,246,0,188,0,92,1,14,1, +126,255,166,255,111,1,246,0,238,253,208,251,33,252,2,254,231,255,234,255,56,254,217,253,79,0,88,3,35,4,92,2, +36,0,165,255,156,0,74,1,28,1,113,0,84,255,247,253,205,252,63,252,10,253,71,255,87,1,179,1,215,0,87,0, +6,1,205,1,30,1,39,0,222,0,55,1,197,254,114,252,32,253,141,254,33,255,32,0,123,0,1,255,53,254,169,254, +197,253,3,253,123,255,137,2,244,2,108,2,191,1,109,255,101,253,72,254,216,255,104,255,82,254,28,254,11,254,128,253, +214,252,235,252,227,254,100,2,199,4,247,3,252,0,199,254,57,255,76,1,73,2,220,0,82,254,197,252,205,252,27,253, +161,252,223,252,224,255,241,3,177,4,55,1,178,253,215,253,146,0,154,2,175,2,166,1,44,0,143,254,76,253,169,252, +215,252,33,254,239,255,19,1,81,1,247,0,81,0,108,0,105,1,31,1,64,255,18,255,12,1,16,1,255,253,179,251, +85,252,25,254,52,255,211,255,233,0,37,2,218,1,150,0,126,1,234,3,61,3,159,255,18,254,25,255,28,255,58,254, +222,254,47,0,59,0,136,255,91,255,186,255,250,255,238,255,167,0,152,2,124,3,152,1,111,255,225,255,112,1,75,1, +185,255,177,254,210,254,64,255,32,255,246,254,200,255,233,0,34,1,63,1,217,1,86,1,235,255,104,0,3,2,30,1, +67,255,127,0,85,2,82,0,92,253,252,253,37,0,152,0,71,0,232,255,164,254,234,253,109,255,121,1,221,1,16,1, +180,0,73,1,77,1,107,255,56,254,182,0,110,3,69,1,218,252,231,251,251,253,189,255,9,1,130,2,31,3,111,2, +84,1,139,0,228,255,233,254,150,254,93,0,91,2,137,1,113,255,51,255,218,255,183,255,196,255,61,0,112,0,1,1, +67,1,191,255,187,254,86,0,122,1,83,0,9,0,66,1,221,0,5,255,105,254,7,255,9,0,187,1,1,3,252,1, +106,255,176,253,166,253,108,254,89,255,94,0,224,0,128,0,148,0,119,1,227,0,17,255,174,255,49,2,15,2,160,255, +191,254,97,255,235,255,158,0,183,0,192,255,192,255,82,0,8,255,255,253,16,0,118,2,6,3,142,3,0,3,54,255, +5,252,84,253,37,0,234,0,168,0,233,0,118,1,88,1,113,255,252,252,105,253,162,0,180,2,124,2,25,2,122,1, +243,254,222,251,113,251,202,253,220,255,78,0,159,0,37,1,142,0,118,255,39,255,175,254,253,253,62,255,235,1,199,2, +94,1,148,255,17,254,51,253,153,253,163,254,183,255,237,0,164,1,155,1,151,1,4,1,123,255,72,255,51,1,21,2, +102,0,106,254,222,253,115,254,48,255,48,255,252,254,142,255,219,255,126,255,107,0,241,1,68,1,228,255,60,0,252,255, +16,254,168,253,225,254,74,255,5,0,182,1,119,1,142,255,60,255,176,255,214,254,106,254,152,255,133,0,179,0,85,1, +16,2,136,1,122,255,138,253,239,253,80,0,21,2,105,2,198,1,193,255,225,253,248,254,63,1,226,0,53,255,97,255, +186,0,152,1,131,1,213,255,186,253,220,253,122,255,209,255,46,255,12,255,178,255,125,1,250,2,3,1,118,253,182,253, +137,0,87,0,29,254,3,255,157,2,105,4,226,2,207,255,18,253,188,251,126,252,96,255,96,2,109,2,246,255,2,255, +84,0,27,0,177,253,127,253,36,1,108,4,200,3,215,0,13,255,208,254,7,254,91,252,224,251,60,253,189,254,199,255, +66,1,151,2,32,2,39,0,123,254,42,254,38,255,201,0,5,2,42,2,20,1,234,254,242,252,228,252,237,253,186,253, +96,253,159,255,154,2,95,2,36,0,146,255,61,0,90,0,191,0,166,1,140,1,227,0,210,0,253,255,209,253,220,252, +72,254,78,0,238,1,174,2,234,0,144,253,254,252,230,255,131,1,219,255,209,254,203,0,39,3,99,3,21,2,158,0, +249,255,118,0,137,0,212,254,52,253,185,253,203,254,184,254,234,254,44,0,9,1,53,1,80,1,161,0,148,255,136,0, +22,3,141,3,139,0,211,252,159,251,79,253,45,255,53,255,110,255,211,1,93,3,50,1,101,254,82,254,80,255,206,255, +46,1,162,2,115,1,48,255,146,255,51,1,43,0,187,253,2,254,94,0,243,0,127,255,242,254,80,0,219,1,198,1, +37,0,41,255,74,0,114,1,105,0,49,255,63,0,198,1,91,1,227,255,11,255,43,255,9,0,138,0,153,255,112,254, +234,254,164,0,50,2,166,2,115,1,182,255,118,255,32,0,219,255,135,255,145,0,148,1,41,1,91,0,78,0,210,0, +61,1,230,0,5,0,197,255,93,0,252,0,69,1,200,0,84,255,155,254,227,255,94,1,120,1,52,1,3,1,80,0, +27,0,42,1,3,2,213,1,60,1,216,255,245,253,20,254,161,0,94,2,169,1,116,0,62,0,119,0,138,0,77,0, +175,255,127,255,167,0,19,2,182,1,223,255,205,254,240,254,203,254,111,254,135,255,4,2,178,3,213,2,151,255,58,252, +240,251,46,255,42,2,203,1,181,255,211,254,34,255,149,255,131,0,180,1,143,1,0,0,230,254,220,254,225,254,244,254, +228,255,101,1,107,2,36,2,111,0,188,254,219,254,5,0,103,0,210,0,108,2,51,3,100,1,254,254,162,254,4,0, +245,0,81,0,162,255,197,0,17,2,189,0,34,254,83,253,77,254,13,0,46,2,168,2,142,0,30,255,56,0,9,1, +221,255,147,254,103,254,205,254,245,254,87,254,235,253,47,255,16,1,191,1,142,1,175,0,66,255,139,255,118,1,1,1, +116,254,86,254,236,255,164,255,200,254,220,254,91,254,119,254,194,0,201,1,33,0,201,255,249,0,248,255,25,254,145,254, +161,255,104,255,61,255,206,254,189,252,106,251,222,253,19,2,119,3,99,1,125,255,156,255,116,255,31,254,40,254,21,0, +109,1,53,1,226,255,39,254,38,254,12,0,27,0,24,254,124,254,218,0,195,0,65,255,136,255,240,255,207,254,2,254, +106,254,129,255,252,0,50,1,190,255,139,255,191,0,38,0,211,254,198,255,170,0,39,255,60,254,138,255,140,0,138,0, +228,0,56,1,189,0,12,0,153,255,80,255,20,255,175,254,99,254,147,254,12,255,220,255,230,0,223,0,216,255,244,255, +33,1,47,1,49,0,83,255,83,254,238,253,94,255,217,0,110,0,105,255,9,255,238,254,115,255,153,0,38,1,57,1, +118,1,237,0,163,255,11,255,183,254,228,253,253,253,103,255,71,0,247,255,247,254,118,253,208,252,110,254,237,0,38,2, +213,1,155,0,114,255,17,255,168,254,50,254,91,255,247,0,35,0,223,254,89,0,150,1,127,255,128,253,123,254,1,0, +74,0,112,0,204,0,231,0,103,0,179,254,14,253,29,254,246,0,231,1,79,0,104,254,120,253,204,253,33,255,40,0, +102,0,193,0,251,0,17,0,205,254,189,254,210,255,188,0,57,0,133,254,174,253,190,254,3,0,28,0,201,255,171,255, +216,255,180,0,56,1,180,255,203,253,114,254,128,0,247,0,60,0,35,0,124,0,162,0,119,0,124,255,65,254,196,254, +225,0,174,1,236,255,246,253,115,254,229,0,27,2,109,0,66,254,66,254,65,255,28,255,136,254,5,255,31,0,130,0, +152,255,75,254,147,254,159,0,229,1,240,0,252,254,182,253,134,254,102,1,193,2,32,0,131,253,136,254,251,255,125,255, +255,255,174,1,240,0,127,254,248,253,93,255,17,1,90,2,214,1,189,255,210,254,64,255,255,254,217,254,214,255,31,0, +111,255,155,255,254,255,127,255,156,255,119,0,69,0,175,255,9,0,74,0,75,0,20,1,27,1,37,255,255,253,137,255, +82,1,88,1,99,0,87,255,158,254,216,254,162,255,245,255,255,255,141,0,68,1,2,1,170,255,169,254,16,255,247,255, +30,0,241,255,54,0,120,0,22,0,67,255,167,254,230,254,208,255,112,0,217,0,223,1,124,2,16,1,14,255,45,255, +254,0,219,1,181,0,206,254,36,254,133,255,42,1,177,0,198,254,71,254,183,255,170,0,214,255,221,254,134,255,85,1, +151,2,93,2,229,0,73,255,242,254,15,0,233,0,40,0,214,254,158,254,43,255,67,255,46,255,188,255,106,0,236,0, +57,2,147,3,100,2,169,255,171,255,35,2,46,2,51,255,83,253,106,253,98,253,236,253,11,0,55,1,42,0,1,0, +68,2,161,3,142,1,121,254,53,254,1,1,146,3,50,3,193,0,217,254,42,254,170,253,122,253,183,254,180,0,137,1, +18,1,94,0,71,255,20,254,3,255,36,2,77,3,174,0,179,254,155,0,156,2,138,0,75,253,3,254,118,1,40,2, +72,255,145,253,49,255,201,0,174,255,1,254,198,254,125,1,56,3,122,2,189,0,41,0,225,0,160,1,145,1,130,0, +233,254,241,253,244,253,63,254,184,254,102,255,165,255,233,255,219,0,210,0,129,255,154,0,181,4,146,6,56,4,124,1, +219,255,246,253,29,253,115,254,127,255,237,254,115,254,188,254,103,255,247,0,208,2,60,3,136,2,12,2,126,1,132,0, +75,0,17,1,228,0,206,254,19,253,182,253,248,254,137,254,147,253,248,253,52,255,187,0,179,2,189,3,214,2,126,1, +223,0,163,0,214,0,223,0,165,255,154,254,28,255,249,254,145,253,36,254,205,0,186,1,56,0,169,254,123,254,79,0, +171,2,200,1,29,254,254,252,159,255,250,1,237,1,51,0,58,254,49,254,249,255,88,0,237,254,101,254,174,254,158,254, +68,255,92,0,128,0,25,1,183,2,126,2,22,0,100,254,53,254,65,255,143,1,55,2,234,254,127,251,19,252,255,254, +86,1,252,1,118,0,164,254,66,255,196,0,115,0,213,255,138,0,216,0,238,255,34,255,238,254,26,255,87,255,239,254, +130,254,73,255,34,0,0,0,90,0,55,1,187,0,183,255,173,255,72,255,101,254,69,255,30,1,47,1,255,255,22,255, +25,254,157,253,246,254,255,0,34,2,158,2,63,2,94,0,118,254,100,254,125,255,48,0,71,0,64,0,15,0,72,255, +105,254,24,255,104,1,162,2,50,1,42,255,186,254,143,255,227,0,79,2,154,2,40,1,150,255,91,255,145,255,244,254, +58,254,191,254,84,0,162,1,182,1,141,0,46,255,13,255,241,255,7,0,142,255,1,1,178,3,139,3,10,0,74,253, +46,253,241,253,3,255,3,1,121,2,230,1,178,0,85,0,184,255,72,254,36,254,140,0,9,3,212,2,198,0,42,255, +40,254,138,253,219,254,29,2,234,3,73,2,143,255,86,254,108,254,169,254,190,254,84,255,1,1,61,2,190,0,52,254, +171,254,118,1,163,2,26,2,246,1,117,1,230,255,51,255,187,255,212,255,114,255,33,255,110,254,69,254,203,255,109,1, +191,1,125,1,151,0,67,255,25,0,216,2,254,2,251,255,28,254,108,254,4,255,17,0,76,1,185,0,71,255,71,255, +173,255,59,255,124,255,204,0,134,1,89,1,172,0,116,255,177,254,44,255,192,255,192,255,190,255,191,255,37,0,103,1, +147,1,109,255,2,254,61,255,114,0,31,0,152,255,211,254,230,253,227,254,37,1,151,1,201,0,226,0,129,0,124,254, +37,253,219,253,100,255,224,0,143,1,104,0,67,254,28,253,156,253,64,255,153,0,50,0,141,255,25,1,181,2,7,1, +65,254,22,254,145,255,173,0,157,1,230,1,166,0,7,255,13,254,141,253,72,254,18,0,138,0,137,255,129,255,46,0, +178,255,10,255,106,255,187,255,239,255,208,0,225,0,91,255,146,254,68,255,39,255,251,253,252,253,185,255,184,1,106,2, +13,1,214,254,44,254,39,255,188,255,70,255,195,254,220,254,139,255,247,255,60,255,147,254,193,255,54,1,87,0,69,254, +190,253,167,254,85,255,82,255,9,255,223,254,220,254,181,254,211,254,221,255,228,0,166,0,228,255,142,255,61,255,95,255, +187,0,162,1,109,0,2,255,103,255,66,0,219,255,244,254,250,254,34,0,59,1,161,0,179,254,2,254,102,255,204,0, +237,0,124,0,195,255,202,254,195,254,44,0,96,1,43,1,127,0,69,0,227,255,48,255,102,255,161,0,255,0,221,255, +25,255,122,255,107,255,220,254,255,255,213,2,61,4,135,2,154,255,67,254,100,255,164,1,220,2,15,2,32,0,188,254, +178,254,66,255,102,255,150,255,156,0,86,1,161,0,224,255,128,0,152,1,56,2,89,2,64,1,68,255,215,254,24,0, +51,0,53,255,172,255,207,0,101,0,162,255,221,255,116,255,37,254,100,254,157,0,171,2,88,3,196,2,87,1,233,255, +251,254,89,254,89,254,100,255,187,0,176,1,65,2,232,1,104,0,254,254,190,254,163,255,120,1,55,3,66,3,208,1, +74,0,201,254,184,253,159,254,164,0,45,1,123,0,55,0,197,255,213,254,27,255,158,0,90,1,199,0,201,255,11,255, +65,255,91,0,52,1,144,1,161,1,153,0,60,255,184,255,227,0,18,0,220,254,158,255,184,0,66,1,217,2,227,3, +83,1,136,253,206,252,159,254,115,0,209,1,201,2,48,3,251,2,105,1,155,254,247,252,205,253,7,0,223,2,32,5, +66,4,237,0,248,254,203,254,20,254,229,253,61,0,24,3,192,3,77,2,226,255,11,254,66,254,111,255,186,255,60,0, +206,1,58,2,195,0,184,255,146,255,240,254,110,254,3,255,144,255,101,255,101,255,170,255,143,255,112,255,13,0,49,1, +187,1,228,0,202,255,23,0,233,0,98,0,101,255,159,255,25,0,151,255,213,254,115,254,188,254,131,0,160,2,66,2, +244,255,213,254,28,255,45,255,127,255,156,0,67,1,7,1,140,0,169,255,190,254,4,255,218,255,184,255,66,255,142,255, +233,255,248,255,115,0,255,0,231,0,169,0,68,0,236,254,153,253,71,254,127,0,214,1,58,1,207,255,62,255,201,255, +21,0,134,255,140,255,249,0,45,2,201,1,146,0,115,255,133,254,59,254,228,254,185,255,42,0,138,0,176,0,24,0, +87,255,74,255,157,255,166,255,99,255,233,254,112,254,202,254,251,255,115,0,125,255,155,254,1,255,214,255,33,0,50,0, +81,0,28,0,178,255,206,255,78,0,8,0,174,254,183,253,120,254,19,0,196,0,117,0,54,0,8,0,94,255,203,254, +20,255,201,255,72,0,190,0,13,1,95,0,205,254,238,253,184,254,247,255,43,0,197,255,247,255,101,0,39,0,162,255, +109,255,48,255,7,255,164,255,146,0,183,0,50,0,202,255,237,255,188,0,93,1,129,0,5,255,230,254,97,255,207,254, +153,254,7,0,215,0,243,255,212,255,248,0,232,0,233,255,82,0,34,1,246,255,17,254,33,254,160,255,47,0,86,255, +187,254,103,255,92,0,133,0,161,0,93,1,130,1,111,0,161,255,229,255,47,0,239,255,147,255,81,255,118,255,38,0, +81,0,95,255,186,254,110,255,141,0,36,1,0,1,219,255,139,254,21,255,81,1,124,2,138,1,105,0,93,0,92,0, +140,255,221,254,101,255,138,0,229,0,69,0,156,255,108,255,152,255,15,0,163,0,18,1,97,1,72,1,83,0,68,255, +102,255,61,0,85,0,206,255,178,255,248,255,22,0,1,0,186,255,91,255,77,255,162,255,9,0,93,0,88,0,226,255, +202,255,105,0,114,0,107,255,36,255,91,0,56,1,193,0,40,0,232,255,82,255,214,254,122,255,207,0,138,1,38,1, +5,0,36,255,99,255,42,0,27,0,139,255,251,255,34,1,96,1,189,0,102,0,58,0,165,255,59,255,69,255,19,255, +3,255,50,0,167,1,93,1,212,255,79,255,64,0,15,1,177,0,203,255,162,255,97,0,190,0,216,255,149,254,55,254, +207,254,196,255,95,0,10,0,59,255,39,255,254,255,241,0,142,1,129,1,112,0,37,255,233,254,123,255,203,255,201,255, +232,255,57,0,142,0,102,0,108,255,161,254,24,255,11,0,106,0,158,0,219,0,106,0,153,255,126,255,195,255,112,255, +230,254,25,255,11,0,240,0,25,1,126,0,184,255,75,255,86,255,197,255,24,0,223,255,177,255,31,0,105,0,253,255, +142,255,133,255,194,255,145,0,92,1,175,0,57,255,249,254,107,255,41,255,22,255,172,255,122,255,221,254,173,255,249,0, +217,0,60,0,88,0,67,0,157,255,60,255,48,255,108,255,88,0,30,1,171,0,194,255,81,255,27,255,69,255,2,0, +101,0,77,0,196,0,50,1,33,0,131,254,81,254,126,255,214,0,118,1,204,0,101,255,202,254,102,255,68,0,165,0, +58,0,73,255,31,255,21,0,118,0,135,255,251,254,176,255,55,0,148,255,169,254,188,254,214,255,159,0,84,0,53,0, +12,1,63,1,4,0,46,255,147,255,231,255,244,255,131,0,198,0,254,255,92,255,177,255,29,0,33,0,69,0,186,0, +10,1,179,0,215,255,86,255,96,255,47,255,16,255,253,255,237,0,101,0,153,255,218,255,252,255,123,255,178,255,122,0, +150,0,153,0,232,0,35,0,151,254,165,254,82,0,81,1,226,0,223,255,231,254,155,254,61,255,243,255,58,0,151,0, +212,0,69,0,159,255,227,255,108,0,78,0,12,0,90,0,180,0,100,0,205,255,172,255,189,255,126,255,159,255,205,0, +206,1,56,1,252,255,202,255,86,0,77,0,138,255,3,255,137,255,204,0,107,1,192,0,239,255,237,255,41,0,26,0, +18,0,50,0,77,0,95,0,23,0,84,255,237,254,102,255,22,0,176,0,123,1,226,1,100,1,244,0,33,1,1,1, +97,0,74,0,193,0,164,0,196,255,18,255,21,255,128,255,233,255,123,0,106,1,255,1,127,1,195,0,209,0,204,0, +223,255,88,255,59,0,32,1,178,0,183,255,60,255,58,255,132,255,46,0,22,1,228,1,22,2,63,1,245,255,138,255, +44,0,143,0,10,0,147,255,228,255,52,0,221,255,178,255,85,0,190,0,30,0,123,255,193,255,54,0,30,0,254,255, +76,0,151,0,87,0,168,255,105,255,74,0,104,1,55,1,4,0,97,255,122,255,165,255,24,0,146,0,250,255,245,254, +109,255,214,0,223,0,129,255,194,254,105,255,138,0,41,1,241,0,75,0,4,0,80,0,220,0,89,1,33,1,205,255, +161,254,33,255,80,0,51,0,53,255,62,255,109,0,88,1,126,1,108,1,89,1,240,0,43,0,133,255,90,255,162,255, +31,0,91,0,198,255,163,254,34,254,213,254,4,0,17,1,221,1,201,1,112,0,15,255,12,255,217,255,37,0,249,255, +11,0,60,0,11,0,149,255,70,255,31,255,13,255,90,255,29,0,155,0,94,0,26,0,99,0,159,0,89,0,13,0, +219,255,92,255,4,255,130,255,55,0,53,0,212,255,235,255,109,0,161,0,23,0,110,255,193,255,174,0,117,0,7,255, +133,254,157,255,154,0,128,0,252,255,126,255,34,255,127,255,125,0,251,0,136,0,222,255,145,255,156,255,200,255,191,255, +122,255,130,255,4,0,109,0,93,0,19,0,195,255,139,255,160,255,224,255,226,255,206,255,44,0,198,0,205,0,60,0, +245,255,44,0,6,0,69,255,253,254,206,255,193,0,167,0,151,255,150,254,140,254,117,255,77,0,93,0,76,0,192,0, +248,0,66,0,101,255,61,255,113,255,128,255,148,255,211,255,1,0,247,255,202,255,149,255,90,255,22,255,29,255,207,255, +170,0,201,0,74,0,248,255,232,255,195,255,167,255,176,255,197,255,26,0,169,0,184,0,5,0,102,255,92,255,112,255, +79,255,81,255,192,255,91,0,127,0,239,255,112,255,206,255,129,0,109,0,149,255,226,254,203,254,34,255,152,255,235,255, +14,0,18,0,216,255,95,255,37,255,132,255,9,0,34,0,254,255,41,0,131,0,80,0,111,255,196,254,1,255,191,255, +98,0,191,0,173,0,16,0,104,255,57,255,119,255,243,255,113,0,93,0,181,255,108,255,220,255,50,0,243,255,129,255, +58,255,114,255,90,0,57,1,46,1,167,0,103,0,27,0,120,255,41,255,120,255,205,255,242,255,57,0,123,0,68,0, +207,255,209,255,89,0,131,0,211,255,87,255,38,0,61,1,208,0,58,255,124,254,83,255,139,0,207,0,10,0,83,255, +157,255,109,0,147,0,255,255,176,255,14,0,121,0,88,0,218,255,172,255,22,0,115,0,25,0,116,255,105,255,5,0, +140,0,89,0,139,255,250,254,93,255,75,0,202,0,139,0,244,255,106,255,68,255,172,255,71,0,159,0,171,0,152,0, +120,0,65,0,213,255,91,255,130,255,126,0,64,1,222,0,253,255,178,255,248,255,24,0,211,255,147,255,212,255,95,0, +114,0,238,255,147,255,187,255,5,0,65,0,87,0,215,255,4,255,43,255,150,0,141,1,159,0,190,254,12,254,41,255, +140,0,145,0,154,255,89,255,69,0,18,1,191,0,239,255,201,255,101,0,229,0,157,0,221,255,128,255,228,255,118,0, +93,0,140,255,242,254,88,255,68,0,165,0,99,0,70,0,131,0,133,0,30,0,213,255,237,255,254,255,197,255,176,255, +38,0,163,0,73,0,88,255,27,255,7,0,9,1,12,1,78,0,188,255,205,255,74,0,192,0,198,0,59,0,129,255, +78,255,229,255,144,0,127,0,232,255,174,255,229,255,202,255,53,255,21,255,0,0,28,1,39,1,48,0,124,255,199,255, +112,0,153,0,81,0,38,0,57,0,81,0,94,0,92,0,40,0,196,255,114,255,71,255,34,255,26,255,115,255,27,0, +156,0,185,0,161,0,124,0,45,0,189,255,148,255,224,255,31,0,184,255,250,254,215,254,130,255,36,0,46,0,19,0, +72,0,132,0,116,0,97,0,144,0,158,0,35,0,141,255,156,255,69,0,197,0,190,0,136,0,74,0,188,255,1,255, +227,254,160,255,83,0,40,0,136,255,106,255,239,255,89,0,71,0,44,0,115,0,214,0,210,0,91,0,209,255,130,255, +132,255,192,255,249,255,2,0,251,255,36,0,90,0,50,0,184,255,167,255,92,0,10,1,173,0,132,255,216,254,72,255, +24,0,80,0,220,255,103,255,120,255,4,0,135,0,123,0,224,255,92,255,148,255,70,0,135,0,11,0,169,255,13,0, +162,0,116,0,196,255,171,255,91,0,198,0,60,0,118,255,112,255,1,0,74,0,20,0,211,255,177,255,133,255,119,255, +223,255,130,0,178,0,73,0,224,255,225,255,1,0,216,255,154,255,189,255,57,0,133,0,65,0,157,255,27,255,38,255, +188,255,87,0,100,0,253,255,215,255,59,0,130,0,17,0,101,255,114,255,37,0,110,0,216,255,58,255,111,255,22,0, +62,0,214,255,176,255,59,0,234,0,241,0,47,0,69,255,241,254,116,255,67,0,127,0,232,255,78,255,140,255,98,0, +205,0,127,0,52,0,90,0,86,0,158,255,225,254,34,255,32,0,161,0,54,0,193,255,1,0,119,0,73,0,150,255, +52,255,128,255,7,0,78,0,85,0,82,0,73,0,30,0,208,255,146,255,165,255,18,0,111,0,47,0,101,255,235,254, +99,255,83,0,183,0,96,0,32,0,128,0,252,0,220,0,59,0,197,255,193,255,245,255,44,0,95,0,101,0,27,0, +198,255,205,255,15,0,250,255,123,255,48,255,140,255,33,0,68,0,240,255,174,255,205,255,20,0,56,0,34,0,239,255, +221,255,25,0,104,0,59,0,117,255,231,254,102,255,136,0,252,0,70,0,110,255,134,255,52,0,92,0,206,255,125,255, +254,255,179,0,169,0,217,255,30,255,40,255,218,255,138,0,177,0,83,0,224,255,179,255,184,255,177,255,171,255,226,255, +62,0,86,0,21,0,231,255,252,255,235,255,107,255,10,255,135,255,155,0,36,1,153,0,170,255,56,255,64,255,71,255, +80,255,192,255,128,0,216,0,91,0,131,255,47,255,183,255,152,0,250,0,127,0,162,255,60,255,140,255,242,255,203,255, +104,255,150,255,98,0,232,0,150,0,252,255,235,255,66,0,58,0,177,255,92,255,169,255,15,0,221,255,69,255,28,255, +188,255,151,0,223,0,109,0,215,255,191,255,36,0,113,0,68,0,246,255,33,0,170,0,194,0,255,255,18,255,244,254, +165,255,67,0,70,0,18,0,41,0,96,0,59,0,195,255,124,255,184,255,61,0,160,0,172,0,109,0,10,0,184,255, +150,255,151,255,161,255,183,255,237,255,48,0,80,0,70,0,42,0,8,0,222,255,209,255,23,0,131,0,148,0,35,0, +177,255,191,255,6,0,223,255,73,255,19,255,190,255,189,0,13,1,104,0,140,255,82,255,202,255,81,0,91,0,1,0, +209,255,11,0,82,0,34,0,151,255,86,255,180,255,57,0,74,0,4,0,6,0,118,0,180,0,63,0,116,255,32,255, +138,255,48,0,119,0,69,0,242,255,216,255,5,0,73,0,98,0,50,0,216,255,145,255,134,255,178,255,236,255,10,0, +244,255,199,255,188,255,236,255,37,0,49,0,35,0,54,0,94,0,71,0,226,255,160,255,216,255,64,0,65,0,215,255, +161,255,255,255,134,0,135,0,250,255,130,255,154,255,255,255,24,0,192,255,112,255,154,255,19,0,60,0,209,255,89,255, +134,255,82,0,238,0,192,0,29,0,207,255,12,0,66,0,242,255,97,255,52,255,151,255,21,0,53,0,0,0,219,255, +249,255,52,0,77,0,60,0,47,0,71,0,109,0,112,0,66,0,255,255,207,255,199,255,236,255,45,0,89,0,67,0, +3,0,237,255,36,0,82,0,25,0,167,255,155,255,34,0,165,0,122,0,210,255,123,255,220,255,116,0,136,0,7,0, +136,255,136,255,239,255,74,0,94,0,79,0,81,0,95,0,69,0,248,255,178,255,180,255,248,255,53,0,62,0,41,0, +41,0,71,0,100,0,96,0,56,0,4,0,229,255,244,255,23,0,16,0,191,255,92,255,72,255,161,255,30,0,104,0, +108,0,74,0,33,0,246,255,209,255,196,255,212,255,243,255,13,0,19,0,10,0,4,0,7,0,241,255,166,255,89,255, +114,255,10,0,162,0,177,0,85,0,44,0,100,0,113,0,230,255,67,255,96,255,54,0,195,0,81,0,108,255,46,255, +214,255,136,0,123,0,253,255,245,255,154,0,23,1,157,0,133,255,251,254,138,255,106,0,125,0,188,255,46,255,137,255, +80,0,148,0,43,0,197,255,231,255,75,0,91,0,251,255,158,255,175,255,34,0,133,0,112,0,233,255,99,255,84,255, +187,255,45,0,89,0,80,0,62,0,28,0,212,255,146,255,165,255,13,0,114,0,142,0,109,0,57,0,248,255,171,255, +126,255,157,255,250,255,84,0,122,0,99,0,23,0,183,255,131,255,165,255,250,255,57,0,77,0,95,0,116,0,74,0, +193,255,56,255,59,255,210,255,100,0,94,0,218,255,124,255,178,255,54,0,104,0,30,0,220,255,27,0,141,0,110,0, +153,255,232,254,43,255,23,0,167,0,105,0,242,255,235,255,50,0,59,0,237,255,180,255,208,255,7,0,20,0,0,0, +241,255,233,255,222,255,229,255,21,0,76,0,84,0,35,0,229,255,200,255,210,255,235,255,241,255,220,255,198,255,213,255, +248,255,248,255,199,255,175,255,240,255,92,0,134,0,82,0,17,0,4,0,4,0,219,255,171,255,186,255,254,255,26,0, +228,255,162,255,179,255,18,0,93,0,81,0,21,0,1,0,44,0,69,0,8,0,173,255,171,255,13,0,63,0,213,255, +60,255,64,255,239,255,113,0,40,0,136,255,114,255,4,0,131,0,110,0,19,0,248,255,29,0,32,0,226,255,169,255, +172,255,212,255,239,255,240,255,233,255,225,255,211,255,198,255,205,255,246,255,48,0,78,0,46,0,232,255,194,255,226,255, +20,0,15,0,225,255,222,255,25,0,63,0,2,0,155,255,140,255,249,255,119,0,134,0,20,0,130,255,57,255,79,255, +139,255,180,255,204,255,255,255,78,0,113,0,41,0,164,255,95,255,157,255,31,0,119,0,111,0,24,0,158,255,63,255, +58,255,155,255,21,0,79,0,75,0,75,0,93,0,63,0,211,255,107,255,111,255,210,255,31,0,12,0,195,255,151,255, +167,255,206,255,231,255,239,255,2,0,53,0,122,0,155,0,118,0,39,0,241,255,237,255,237,255,191,255,119,255,90,255, +140,255,228,255,32,0,40,0,21,0,20,0,53,0,100,0,133,0,137,0,112,0,48,0,197,255,79,255,25,255,72,255, +166,255,214,255,204,255,208,255,18,0,96,0,118,0,95,0,87,0,98,0,69,0,235,255,155,255,166,255,243,255,29,0, +243,255,170,255,156,255,215,255,25,0,34,0,2,0,254,255,55,0,111,0,83,0,234,255,159,255,189,255,22,0,62,0, +27,0,244,255,1,0,24,0,253,255,197,255,189,255,247,255,39,0,17,0,223,255,237,255,66,0,125,0,70,0,203,255, +138,255,191,255,27,0,47,0,245,255,200,255,225,255,12,0,254,255,203,255,202,255,19,0,88,0,83,0,26,0,245,255, +241,255,226,255,190,255,194,255,21,0,127,0,146,0,43,0,158,255,91,255,137,255,239,255,65,0,94,0,88,0,64,0, +23,0,222,255,185,255,206,255,22,0,81,0,76,0,14,0,209,255,192,255,218,255,8,0,53,0,79,0,65,0,15,0, +220,255,212,255,251,255,38,0,47,0,26,0,17,0,45,0,89,0,104,0,66,0,251,255,190,255,164,255,169,255,193,255, +227,255,6,0,29,0,34,0,33,0,36,0,34,0,18,0,2,0,7,0,34,0,52,0,40,0,14,0,6,0,18,0, +25,0,8,0,236,255,220,255,218,255,221,255,226,255,242,255,13,0,30,0,16,0,240,255,231,255,19,0,88,0,121,0, +79,0,244,255,170,255,150,255,166,255,181,255,188,255,210,255,9,0,71,0,96,0,62,0,250,255,208,255,235,255,60,0, +128,0,121,0,33,0,180,255,124,255,150,255,225,255,31,0,35,0,251,255,220,255,240,255,42,0,82,0,69,0,26,0, +8,0,36,0,73,0,70,0,22,0,230,255,223,255,247,255,255,255,221,255,175,255,177,255,242,255,63,0,81,0,34,0, +238,255,238,255,24,0,49,0,29,0,248,255,237,255,249,255,249,255,224,255,206,255,234,255,41,0,80,0,52,0,235,255, +183,255,194,255,246,255,27,0,23,0,2,0,1,0,19,0,31,0,18,0,252,255,246,255,9,0,34,0,38,0,6,0, +209,255,170,255,174,255,214,255,255,255,11,0,5,0,11,0,43,0,75,0,76,0,43,0,7,0,1,0,23,0,46,0, +40,0,10,0,242,255,246,255,16,0,36,0,32,0,10,0,248,255,2,0,42,0,90,0,103,0,54,0,227,255,179,255, +210,255,30,0,70,0,35,0,227,255,217,255,21,0,85,0,80,0,10,0,207,255,220,255,30,0,80,0,71,0,26,0, +248,255,243,255,245,255,240,255,247,255,27,0,70,0,76,0,28,0,220,255,189,255,203,255,235,255,1,0,13,0,27,0, +38,0,34,0,12,0,251,255,4,0,38,0,66,0,58,0,9,0,206,255,176,255,192,255,243,255,41,0,64,0,43,0, +249,255,206,255,199,255,226,255,5,0,24,0,25,0,21,0,16,0,2,0,235,255,218,255,224,255,1,0,38,0,53,0, +29,0,231,255,177,255,159,255,194,255,4,0,60,0,76,0,59,0,43,0,45,0,52,0,36,0,253,255,225,255,238,255, +22,0,40,0,8,0,210,255,190,255,224,255,19,0,40,0,24,0,8,0,21,0,52,0,61,0,31,0,243,255,221,255, +234,255,10,0,36,0,39,0,18,0,240,255,214,255,217,255,0,0,52,0,76,0,50,0,253,255,221,255,238,255,28,0, +58,0,51,0,21,0,253,255,244,255,240,255,231,255,224,255,231,255,255,255,20,0,22,0,3,0,239,255,237,255,1,0, +28,0,44,0,39,0,16,0,244,255,226,255,227,255,249,255,21,0,35,0,20,0,239,255,208,255,209,255,243,255,26,0, +37,0,18,0,249,255,247,255,11,0,27,0,21,0,4,0,1,0,21,0,42,0,37,0,3,0,226,255,224,255,0,0, +40,0,58,0,46,0,18,0,252,255,248,255,2,0,12,0,10,0,254,255,246,255,0,0,29,0,54,0,53,0,23,0, +240,255,219,255,225,255,246,255,9,0,19,0,24,0,24,0,15,0,247,255,218,255,207,255,229,255,20,0,57,0,52,0, +1,0,197,255,175,255,205,255,4,0,37,0,28,0,252,255,232,255,236,255,249,255,250,255,246,255,254,255,21,0,38,0, +29,0,1,0,234,255,231,255,238,255,235,255,222,255,215,255,222,255,231,255,231,255,230,255,247,255,24,0,42,0,23,0, +234,255,204,255,212,255,239,255,251,255,237,255,218,255,216,255,230,255,241,255,241,255,242,255,253,255,13,0,24,0,26,0, +25,0,21,0,5,0,235,255,222,255,236,255,9,0,19,0,249,255,209,255,197,255,223,255,0,0,4,0,234,255,214,255, +225,255,3,0,29,0,29,0,13,0,0,0,3,0,16,0,28,0,26,0,1,0,219,255,189,255,193,255,228,255,10,0, +26,0,21,0,17,0,25,0,33,0,24,0,8,0,6,0,21,0,28,0,0,0,207,255,175,255,184,255,220,255,252,255, +13,0,24,0,33,0,27,0,255,255,228,255,232,255,14,0,46,0,38,0,2,0,233,255,235,255,243,255,231,255,210,255, +215,255,253,255,32,0,26,0,244,255,221,255,237,255,16,0,32,0,23,0,7,0,254,255,244,255,221,255,202,255,212,255, +249,255,21,0,13,0,238,255,218,255,224,255,235,255,233,255,229,255,250,255,32,0,54,0,33,0,246,255,225,255,242,255, +16,0,26,0,12,0,248,255,237,255,228,255,216,255,212,255,223,255,241,255,247,255,242,255,242,255,3,0,20,0,13,0, +239,255,220,255,234,255,12,0,32,0,23,0,1,0,242,255,235,255,224,255,213,255,213,255,227,255,238,255,234,255,232,255, +252,255,29,0,40,0,14,0,237,255,240,255,22,0,48,0,21,0,221,255,191,255,210,255,239,255,234,255,201,255,188,255, +218,255,9,0,28,0,17,0,8,0,24,0,44,0,39,0,11,0,243,255,240,255,246,255,241,255,233,255,239,255,252,255, +250,255,225,255,204,255,220,255,9,0,42,0,34,0,4,0,247,255,3,0,16,0,8,0,251,255,1,0,21,0,23,0, +246,255,203,255,191,255,215,255,245,255,255,255,250,255,255,255,18,0,33,0,31,0,21,0,20,0,27,0,26,0,14,0, +1,0,255,255,1,0,251,255,240,255,238,255,247,255,255,255,251,255,246,255,255,255,15,0,15,0,250,255,237,255,6,0, +54,0,74,0,41,0,241,255,219,255,242,255,9,0,251,255,217,255,215,255,4,0,52,0,52,0,8,0,227,255,236,255, +21,0,54,0,56,0,38,0,15,0,246,255,222,255,213,255,232,255,10,0,30,0,21,0,2,0,253,255,6,0,8,0, +255,255,255,255,23,0,49,0,43,0,1,0,222,255,233,255,23,0,54,0,38,0,251,255,225,255,232,255,249,255,0,0, +0,0,10,0,25,0,23,0,253,255,225,255,226,255,4,0,49,0,77,0,77,0,55,0,23,0,250,255,239,255,253,255, +20,0,25,0,4,0,235,255,231,255,246,255,255,255,246,255,241,255,9,0,50,0,70,0,45,0,4,0,246,255,12,0, +37,0,31,0,2,0,239,255,244,255,252,255,242,255,225,255,231,255,8,0,38,0,36,0,11,0,250,255,1,0,20,0, +30,0,26,0,20,0,14,0,5,0,249,255,244,255,249,255,250,255,234,255,213,255,216,255,251,255,34,0,37,0,3,0, +229,255,238,255,21,0,52,0,52,0,36,0,23,0,14,0,248,255,215,255,197,255,216,255,4,0,35,0,36,0,17,0, +2,0,254,255,253,255,252,255,2,0,17,0,28,0,19,0,248,255,225,255,220,255,231,255,248,255,8,0,22,0,28,0, +17,0,249,255,236,255,248,255,17,0,28,0,14,0,250,255,249,255,8,0,10,0,244,255,218,255,218,255,247,255,19,0, +19,0,249,255,223,255,214,255,221,255,235,255,253,255,16,0,32,0,33,0,22,0,12,0,11,0,10,0,3,0,251,255, +2,0,26,0,42,0,29,0,247,255,216,255,214,255,236,255,3,0,16,0,24,0,30,0,22,0,251,255,221,255,218,255, +249,255,30,0,39,0,17,0,247,255,240,255,250,255,3,0,3,0,4,0,12,0,14,0,0,0,232,255,220,255,233,255, +4,0,20,0,18,0,8,0,5,0,7,0,7,0,2,0,253,255,253,255,255,255,251,255,242,255,233,255,230,255,236,255, +253,255,20,0,38,0,41,0,27,0,7,0,253,255,0,0,5,0,2,0,253,255,255,255,8,0,9,0,249,255,227,255, +221,255,237,255,4,0,14,0,11,0,6,0,7,0,10,0,7,0,2,0,2,0,7,0,9,0,3,0,252,255,251,255, +252,255,247,255,239,255,243,255,9,0,34,0,36,0,10,0,237,255,233,255,255,255,18,0,13,0,245,255,228,255,227,255, +233,255,234,255,232,255,243,255,12,0,36,0,40,0,21,0,252,255,237,255,237,255,245,255,252,255,253,255,250,255,246,255, +248,255,1,0,12,0,18,0,17,0,12,0,4,0,246,255,228,255,214,255,216,255,230,255,240,255,234,255,222,255,229,255, +5,0,41,0,51,0,33,0,13,0,12,0,21,0,17,0,249,255,227,255,228,255,245,255,253,255,242,255,230,255,238,255, +6,0,24,0,25,0,17,0,14,0,15,0,9,0,253,255,249,255,5,0,18,0,10,0,238,255,213,255,213,255,234,255, +0,0,16,0,30,0,43,0,43,0,23,0,254,255,251,255,21,0,48,0,43,0,4,0,218,255,206,255,223,255,246,255, +0,0,2,0,7,0,18,0,28,0,28,0,20,0,8,0,254,255,253,255,9,0,25,0,24,0,255,255,227,255,224,255, +251,255,23,0,17,0,240,255,219,255,238,255,23,0,41,0,20,0,245,255,239,255,2,0,17,0,10,0,252,255,0,0, +16,0,19,0,254,255,230,255,229,255,250,255,10,0,8,0,253,255,250,255,251,255,247,255,240,255,252,255,33,0,67,0, +64,0,22,0,231,255,214,255,226,255,242,255,250,255,2,0,16,0,23,0,5,0,228,255,213,255,239,255,28,0,55,0, +49,0,28,0,14,0,8,0,253,255,238,255,235,255,253,255,18,0,21,0,1,0,237,255,233,255,242,255,254,255,12,0, +32,0,47,0,40,0,9,0,234,255,228,255,246,255,7,0,4,0,250,255,254,255,9,0,3,0,230,255,205,255,218,255, +5,0,35,0,26,0,250,255,234,255,246,255,5,0,1,0,246,255,255,255,28,0,44,0,22,0,236,255,213,255,223,255, +246,255,254,255,251,255,0,0,19,0,33,0,26,0,7,0,0,0,10,0,24,0,26,0,19,0,14,0,6,0,244,255, +221,255,216,255,242,255,19,0,29,0,12,0,252,255,9,0,36,0,40,0,9,0,227,255,221,255,249,255,23,0,25,0, +3,0,238,255,231,255,233,255,241,255,0,0,23,0,37,0,28,0,2,0,238,255,239,255,250,255,0,0,0,0,8,0, +22,0,24,0,0,0,223,255,219,255,252,255,34,0,38,0,10,0,240,255,239,255,252,255,251,255,239,255,245,255,24,0, +58,0,50,0,0,0,207,255,202,255,234,255,10,0,15,0,1,0,249,255,252,255,0,0,254,255,254,255,6,0,13,0, +6,0,244,255,235,255,243,255,1,0,4,0,255,255,253,255,3,0,2,0,242,255,223,255,228,255,2,0,32,0,32,0, +4,0,233,255,231,255,248,255,11,0,20,0,23,0,17,0,253,255,222,255,201,255,213,255,252,255,30,0,33,0,10,0, +245,255,243,255,250,255,254,255,254,255,4,0,13,0,9,0,241,255,213,255,205,255,223,255,247,255,6,0,13,0,22,0, +28,0,18,0,248,255,233,255,248,255,25,0,39,0,14,0,228,255,207,255,219,255,241,255,249,255,248,255,3,0,28,0, +41,0,24,0,245,255,228,255,240,255,6,0,10,0,251,255,238,255,241,255,254,255,3,0,254,255,250,255,253,255,2,0, +2,0,1,0,4,0,10,0,7,0,250,255,239,255,244,255,5,0,15,0,10,0,1,0,2,0,10,0,10,0,254,255, +244,255,252,255,15,0,24,0,12,0,250,255,246,255,1,0,9,0,4,0,250,255,250,255,1,0,4,0,253,255,247,255, +251,255,7,0,12,0,7,0,2,0,4,0,6,0,250,255,231,255,226,255,245,255,17,0,25,0,8,0,244,255,243,255, +1,0,7,0,253,255,243,255,250,255,14,0,21,0,5,0,238,255,231,255,241,255,254,255,255,255,252,255,255,255,6,0, +5,0,250,255,243,255,254,255,17,0,23,0,8,0,244,255,238,255,247,255,254,255,251,255,246,255,250,255,4,0,6,0, +252,255,239,255,238,255,249,255,5,0,10,0,9,0,7,0,2,0,246,255,238,255,244,255,8,0,23,0,16,0,249,255, +230,255,232,255,249,255,8,0,14,0,17,0,19,0,15,0,254,255,235,255,231,255,247,255,9,0,9,0,249,255,238,255, +245,255,3,0,7,0,0,0,252,255,3,0,12,0,7,0,247,255,238,255,246,255,7,0,16,0,12,0,6,0,8,0, +10,0,4,0,251,255,255,255,17,0,34,0,30,0,7,0,245,255,245,255,1,0,6,0,253,255,243,255,245,255,255,255, +7,0,8,0,9,0,14,0,19,0,14,0,2,0,251,255,253,255,0,0,252,255,241,255,236,255,240,255,246,255,246,255, +246,255,254,255,15,0,29,0,27,0,11,0,254,255,252,255,2,0,4,0,255,255,250,255,247,255,243,255,238,255,238,255, +250,255,10,0,18,0,13,0,4,0,5,0,16,0,21,0,12,0,255,255,252,255,4,0,7,0,251,255,236,255,236,255, +252,255,12,0,11,0,255,255,249,255,1,0,11,0,10,0,0,0,251,255,1,0,10,0,10,0,0,0,249,255,251,255, +0,0,255,255,247,255,243,255,245,255,250,255,251,255,253,255,3,0,12,0,14,0,5,0,250,255,249,255,3,0,10,0, +5,0,249,255,244,255,247,255,251,255,249,255,246,255,249,255,4,0,12,0,8,0,252,255,245,255,249,255,0,0,4,0, +4,0,6,0,10,0,11,0,7,0,1,0,254,255,252,255,247,255,243,255,245,255,2,0,16,0,17,0,5,0,251,255, +254,255,12,0,20,0,16,0,6,0,2,0,3,0,0,0,247,255,242,255,249,255,6,0,10,0,1,0,245,255,244,255, +253,255,6,0,7,0,5,0,11,0,21,0,23,0,8,0,244,255,236,255,247,255,8,0,18,0,14,0,5,0,252,255, +246,255,242,255,242,255,249,255,2,0,8,0,6,0,3,0,3,0,4,0,2,0,255,255,255,255,6,0,11,0,5,0, +246,255,234,255,235,255,246,255,0,0,4,0,6,0,11,0,18,0,18,0,9,0,254,255,251,255,254,255,1,0,255,255, +252,255,252,255,254,255,253,255,251,255,251,255,1,0,8,0,12,0,9,0,5,0,2,0,254,255,249,255,247,255,255,255, +12,0,17,0,6,0,242,255,233,255,242,255,3,0,11,0,4,0,251,255,252,255,4,0,7,0,255,255,244,255,244,255, +254,255,9,0,10,0,3,0,252,255,250,255,252,255,252,255,253,255,255,255,1,0,1,0,253,255,251,255,252,255,255,255, +0,0,253,255,253,255,0,0,5,0,6,0,4,0,2,0,1,0,255,255,250,255,246,255,248,255,0,0,8,0,7,0, +254,255,246,255,245,255,250,255,254,255,1,0,4,0,8,0,9,0,3,0,251,255,248,255,252,255,2,0,3,0,254,255, +248,255,246,255,247,255,250,255,254,255,4,0,9,0,9,0,1,0,248,255,245,255,249,255,254,255,255,255,254,255,0,0, +6,0,10,0,7,0,255,255,251,255,254,255,1,0,254,255,245,255,241,255,246,255,0,0,3,0,253,255,245,255,245,255, +250,255,0,0,1,0,0,0,1,0,3,0,3,0,254,255,248,255,247,255,252,255,4,0,8,0,6,0,255,255,246,255, +243,255,248,255,4,0,16,0,19,0,12,0,1,0,249,255,246,255,245,255,245,255,247,255,254,255,6,0,7,0,255,255, +245,255,243,255,252,255,9,0,15,0,11,0,1,0,248,255,244,255,246,255,251,255,1,0,5,0,3,0,254,255,248,255, +247,255,250,255,252,255,253,255,1,0,7,0,14,0,13,0,3,0,248,255,244,255,249,255,1,0,6,0,5,0,2,0, +0,0,254,255,251,255,248,255,249,255,255,255,4,0,4,0,255,255,252,255,253,255,2,0,5,0,4,0,2,0,2,0, +4,0,5,0,3,0,254,255,250,255,249,255,252,255,1,0,4,0,5,0,4,0,1,0,0,0,0,0,1,0,0,0, +255,255,254,255,254,255,254,255,255,255,0,0,1,0,3,0,3,0,1,0,255,255,254,255,255,255,255,255,254,255,252,255, +254,255,4,0,11,0,13,0,9,0,3,0,0,0,254,255,254,255,252,255,251,255,253,255,1,0,4,0,3,0,0,0, +254,255,254,255,1,0,5,0,8,0,9,0,6,0,1,0,253,255,253,255,0,0,4,0,4,0,255,255,249,255,248,255, +253,255,4,0,8,0,8,0,6,0,5,0,5,0,4,0,2,0,0,0,255,255,0,0,255,255,252,255,247,255,245,255, +248,255,255,255,6,0,10,0,8,0,3,0,255,255,254,255,255,255,3,0,7,0,9,0,9,0,3,0,251,255,244,255, +244,255,249,255,3,0,10,0,12,0,9,0,5,0,3,0,2,0,4,0,5,0,4,0,255,255,248,255,242,255,242,255, +248,255,2,0,11,0,14,0,12,0,8,0,4,0,3,0,3,0,3,0,3,0,2,0,255,255,249,255,245,255,244,255, +248,255,255,255,5,0,6,0,3,0,0,0,255,255,1,0,3,0,4,0,2,0,1,0,0,0,255,255,253,255,251,255, +252,255,0,0,4,0,6,0,3,0,254,255,249,255,250,255,254,255,2,0,4,0,2,0,255,255,252,255,251,255,252,255, +0,0,4,0,5,0,3,0,1,0,1,0,2,0,4,0,3,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255, +2,0,5,0,6,0,3,0,0,0,255,255,0,0,3,0,4,0,4,0,3,0,1,0,255,255,253,255,252,255,253,255, +255,255,255,255,255,255,254,255,255,255,255,255,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255, +252,255,254,255,3,0,7,0,7,0,4,0,0,0,255,255,255,255,254,255,253,255,251,255,252,255,254,255,254,255,254,255, +253,255,254,255,255,255,255,255,254,255,252,255,254,255,2,0,5,0,5,0,4,0,3,0,3,0,3,0,1,0,253,255, +250,255,251,255,253,255,254,255,255,255,254,255,252,255,252,255,254,255,2,0,7,0,10,0,8,0,3,0,255,255,255,255, +1,0,3,0,1,0,254,255,250,255,247,255,246,255,246,255,248,255,253,255,5,0,11,0,12,0,9,0,4,0,1,0, +0,0,1,0,3,0,2,0,255,255,250,255,246,255,246,255,249,255,253,255,1,0,5,0,8,0,9,0,8,0,4,0, +0,0,255,255,0,0,2,0,1,0,254,255,252,255,253,255,255,255,255,255,254,255,253,255,255,255,1,0,2,0,1,0, +0,0,0,0,1,0,1,0,255,255,254,255,254,255,0,0,2,0,2,0,2,0,0,0,255,255,254,255,254,255,255,255, +1,0,3,0,2,0,0,0,254,255,253,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,254,255,253,255,254,255, +1,0,2,0,1,0,255,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,254,255,253,255,254,255,1,0, +3,0,3,0,2,0,255,255,252,255,247,255,245,255,246,255,250,255,255,255,3,0,6,0,6,0,6,0,4,0,1,0, +1,0,2,0,4,0,4,0,255,255,248,255,244,255,245,255,249,255,253,255,0,0,3,0,4,0,5,0,2,0,254,255, +252,255,254,255,2,0,6,0,6,0,4,0,255,255,250,255,247,255,246,255,249,255,254,255,2,0,4,0,3,0,0,0, +254,255,253,255,253,255,0,0,3,0,6,0,6,0,3,0,255,255,251,255,250,255,252,255,254,255,0,0,2,0,3,0, +3,0,2,0,1,0,1,0,4,0,6,0,7,0,5,0,1,0,253,255,250,255,249,255,250,255,253,255,1,0,3,0, +4,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,255,255,251,255,249,255,250,255,254,255,3,0,5,0, +6,0,4,0,2,0,0,0,255,255,0,0,3,0,5,0,5,0,3,0,255,255,251,255,250,255,252,255,255,255,3,0, +5,0,5,0,3,0,255,255,252,255,251,255,253,255,0,0,3,0,4,0,3,0,0,0,253,255,251,255,250,255,252,255, +255,255,1,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,0,0,254,255,252,255,252,255, +252,255,254,255,255,255,1,0,3,0,3,0,3,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255, +253,255,253,255,253,255,255,255,1,0,2,0,2,0,1,0,0,0,254,255,254,255,254,255,255,255,0,0,0,0,255,255, +254,255,255,255,0,0,2,0,3,0,4,0,3,0,1,0,255,255,253,255,253,255,254,255,0,0,2,0,2,0,1,0, +255,255,253,255,253,255,255,255,1,0,2,0,2,0,1,0,0,0,254,255,254,255,255,255,0,0,1,0,1,0,0,0, +255,255,253,255,254,255,255,255,1,0,4,0,5,0,4,0,2,0,0,0,254,255,254,255,254,255,255,255,255,255,254,255, +253,255,253,255,253,255,255,255,2,0,4,0,5,0,5,0,3,0,1,0,255,255,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,253,255,253,255,254,255,0,0,1,0,2,0,1,0,0,0,254,255,253,255,254,255,255,255,0,0,1,0, +2,0,1,0,0,0,254,255,254,255,254,255,255,255,1,0,2,0,3,0,2,0,1,0,255,255,255,255,255,255,1,0, +3,0,4,0,4,0,3,0,1,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,2,0,2,0,2,0,1,0,255,255,253,255,253,255, +254,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,254,255,253,255,253,255, +254,255,0,0,2,0,3,0,2,0,1,0,255,255,253,255,252,255,253,255,254,255,0,0,1,0,2,0,1,0,0,0, +255,255,254,255,254,255,255,255,1,0,3,0,3,0,3,0,1,0,255,255,253,255,253,255,254,255,0,0,3,0,4,0, +4,0,2,0,0,0,254,255,254,255,255,255,0,0,2,0,2,0,0,0,254,255,252,255,252,255,253,255,0,0,3,0, +4,0,4,0,2,0,254,255,252,255,252,255,253,255,255,255,2,0,3,0,2,0,1,0,255,255,254,255,255,255,0,0, +2,0,2,0,2,0,1,0,255,255,255,255,255,255,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,1,0, +2,0,3,0,2,0,1,0,255,255,255,255,255,255,1,0,2,0,3,0,2,0,0,0,254,255,253,255,253,255,254,255, +1,0,2,0,3,0,2,0,0,0,254,255,253,255,253,255,254,255,0,0,1,0,1,0,0,0,255,255,253,255,253,255, +255,255,1,0,3,0,4,0,4,0,2,0,0,0,254,255,253,255,254,255,255,255,0,0,1,0,2,0,1,0,0,0, +255,255,255,255,0,0,1,0,2,0,3,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +255,255,254,255,254,255,255,255,0,0,1,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,1,0, +0,0,254,255,253,255,253,255,254,255,0,0,1,0,1,0,1,0,0,0,254,255,254,255,254,255,255,255,1,0,2,0, +2,0,1,0,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255, +0,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,254,255, +255,255,0,0,1,0,2,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,2,0,2,0,1,0,0,0,255,255, +255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,254,255,254,255,0,0,1,0,2,0,2,0,1,0,0,0, +255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,1,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,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, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/spider2.pcm b/src/client/sound/data/spider2.pcm new file mode 100755 index 0000000..acf32c9 --- /dev/null +++ b/src/client/sound/data/spider2.pcm @@ -0,0 +1,1458 @@ +unsigned char PCM_spider2[46566] = { +1,0,0,0,2,0,0,0,68,172,0,0,235,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,1,0,3,0,3,0,0,0,255,255,0,0,0,0,254,255,252,255,252,255, +253,255,0,0,3,0,4,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,3,0,2,0,2,0,1,0,0,0, +0,0,1,0,255,255,251,255,249,255,253,255,1,0,1,0,254,255,251,255,253,255,0,0,4,0,7,0,6,0,3,0, +1,0,254,255,250,255,251,255,4,0,9,0,7,0,3,0,253,255,248,255,248,255,254,255,5,0,7,0,4,0,255,255, +252,255,250,255,249,255,252,255,2,0,6,0,7,0,3,0,253,255,253,255,5,0,11,0,7,0,1,0,0,0,0,0, +253,255,250,255,251,255,254,255,254,255,253,255,250,255,246,255,246,255,251,255,0,0,252,255,247,255,248,255,252,255,2,0, +7,0,10,0,8,0,6,0,5,0,1,0,247,255,240,255,243,255,248,255,248,255,249,255,1,0,9,0,11,0,9,0, +3,0,248,255,242,255,249,255,5,0,6,0,255,255,250,255,252,255,252,255,248,255,0,0,13,0,11,0,4,0,0,0, +0,0,5,0,6,0,255,255,0,0,4,0,250,255,245,255,249,255,248,255,12,0,48,0,45,0,255,255,211,255,188,255, +201,255,237,255,247,255,255,255,42,0,64,0,36,0,21,0,21,0,251,255,235,255,240,255,233,255,241,255,30,0,43,0, +3,0,240,255,28,0,71,0,36,0,206,255,179,255,210,255,208,255,199,255,6,0,71,0,53,0,30,0,76,0,124,0, +90,0,3,0,209,255,228,255,11,0,21,0,14,0,12,0,8,0,251,255,248,255,42,0,138,0,192,0,165,0,131,0, +137,0,113,0,0,0,120,255,97,255,191,255,18,0,89,0,1,1,137,1,255,0,206,255,79,255,222,255,145,0,142,0, +43,0,76,0,164,0,52,0,103,255,81,255,173,255,202,255,212,255,11,0,99,0,205,0,231,0,122,0,7,0,216,255, +230,255,105,0,31,1,107,1,109,1,51,1,107,0,142,255,31,255,210,254,18,255,97,0,80,1,147,0,95,255,65,255, +6,0,127,0,16,0,222,255,21,1,17,2,252,0,142,255,171,255,49,0,226,255,104,255,172,255,174,0,95,1,195,0, +199,255,164,255,168,255,54,255,254,254,72,255,86,0,77,2,69,3,200,1,231,255,135,255,165,255,115,255,119,255,255,255, +228,0,30,1,168,255,217,253,82,253,112,253,55,254,129,0,81,2,174,1,179,0,83,1,223,1,133,0,88,254,51,254, +214,0,122,2,90,0,244,253,94,254,175,254,25,253,179,252,208,254,14,1,184,1,8,1,44,0,238,255,107,255,150,254, +106,255,79,1,48,1,180,255,206,255,143,0,33,255,238,251,238,249,68,251,205,254,243,0,148,0,73,0,38,1,51,1, +22,0,233,255,70,1,56,2,51,1,64,255,112,254,181,254,109,254,233,253,21,255,46,1,201,0,150,253,39,252,243,254, +143,1,135,255,217,251,27,252,237,255,129,2,181,1,240,255,52,0,91,2,201,3,206,2,195,255,113,252,154,251,38,254, +147,0,34,255,85,251,231,249,253,252,235,1,55,4,99,3,43,3,37,4,183,2,25,255,178,253,91,255,26,1,166,0, +62,253,82,249,153,249,34,253,223,253,47,252,249,253,236,2,13,6,28,6,19,3,244,252,213,248,83,251,119,0,102,2, +131,1,163,0,33,0,134,254,96,251,104,249,150,251,240,255,88,2,146,2,66,2,159,1,52,1,37,1,237,254,38,250, +74,248,22,253,195,3,113,5,113,1,170,251,79,248,213,249,164,253,50,254,143,252,21,255,137,4,151,5,111,2,145,0, +121,255,121,252,193,250,119,253,56,1,232,1,133,0,122,255,35,254,21,251,208,247,255,247,184,253,222,5,15,9,111,4, +127,254,212,252,163,252,7,252,87,254,250,2,111,5,125,4,244,255,146,248,111,244,128,246,200,248,172,249,196,254,73,5, +94,4,183,253,87,250,244,252,3,2,110,5,70,5,201,3,145,3,77,2,170,253,229,248,114,247,7,249,118,253,140,3, +177,5,185,1,70,254,149,255,56,1,174,0,71,0,200,255,223,255,149,3,250,5,125,0,127,250,92,252,24,255,59,252, +61,250,134,254,40,5,183,6,47,255,224,245,130,246,0,254,207,1,91,3,141,5,119,3,158,255,230,0,206,2,212,0, +113,255,95,255,22,255,56,1,39,2,186,252,50,248,25,250,90,252,251,253,242,2,15,6,169,3,165,3,238,8,156,10, +29,3,91,247,229,239,59,241,250,248,176,0,203,1,39,250,53,241,139,240,16,247,170,254,90,5,19,8,11,6,47,6, +27,7,207,253,130,240,125,241,140,254,29,7,159,6,216,1,246,252,137,251,63,252,25,252,206,254,96,5,99,8,192,5, +237,0,75,249,210,242,176,246,218,0,252,4,62,3,32,2,193,0,34,253,25,249,163,246,48,248,165,253,98,1,54,1, +143,0,231,254,86,251,47,251,80,255,118,1,108,1,254,2,140,4,53,5,57,6,238,3,250,253,100,251,155,251,211,248, +217,247,204,252,234,254,58,251,115,251,250,1,125,7,162,8,52,5,129,254,135,251,119,255,41,2,204,254,60,253,54,3, +252,8,74,4,213,246,37,236,44,237,38,249,162,5,167,6,159,254,20,253,92,4,39,5,159,252,175,249,106,0,230,5, +242,4,215,0,38,253,22,253,163,0,243,2,222,0,199,251,70,248,190,251,84,3,185,4,229,255,89,255,230,3,255,5, +168,5,249,4,129,0,194,250,229,251,124,0,206,254,235,250,102,254,185,3,233,255,250,245,133,240,248,243,218,253,94,7, +145,10,255,8,61,5,61,252,90,241,87,241,111,253,62,7,210,6,88,1,72,253,10,254,42,2,178,1,219,249,209,244, +197,250,43,5,1,9,84,5,62,1,142,255,189,252,114,249,51,251,177,0,52,3,243,1,15,0,74,254,1,253,64,252, +197,251,17,254,74,2,173,1,151,253,155,255,247,5,24,6,50,0,255,251,147,250,149,248,188,245,20,246,110,253,60,6, +201,4,149,249,246,242,231,248,11,5,146,13,165,13,35,6,176,252,179,248,159,252,56,1,155,253,235,244,72,242,85,249, +212,3,102,8,68,2,127,250,237,253,91,6,198,5,79,0,51,255,181,255,0,1,172,3,166,254,237,243,143,245,113,2, +39,7,62,1,229,250,55,248,91,253,216,7,227,7,63,252,109,247,170,252,68,255,214,253,163,253,224,254,125,2,76,6, +81,4,33,0,182,255,51,255,2,254,141,255,72,253,245,246,124,251,3,8,87,6,167,247,225,242,98,252,220,4,85,3, +138,252,137,251,81,3,116,7,172,255,90,246,207,245,16,251,40,0,89,1,187,253,207,251,2,0,104,4,85,4,151,0, +158,250,193,249,170,2,159,7,98,254,96,246,124,252,206,5,109,7,164,2,179,249,202,242,211,247,201,4,45,10,253,3, +55,253,126,254,68,2,252,252,149,241,56,241,229,255,203,13,152,15,20,6,98,246,7,238,198,246,208,255,31,247,203,236, +55,245,78,6,94,15,120,11,246,247,85,225,21,227,196,253,72,19,203,19,100,7,12,250,14,247,180,255,242,4,56,255, +33,249,89,249,24,252,206,254,7,1,175,3,39,7,183,3,243,244,63,234,218,243,239,8,114,20,32,15,155,1,201,247, +119,247,47,253,85,0,95,253,38,250,56,252,90,1,35,5,148,2,114,245,63,233,138,241,142,6,38,14,252,7,154,4, +133,3,101,1,1,6,234,12,234,5,222,242,78,233,105,246,29,11,184,11,203,248,70,239,162,246,77,250,111,247,119,253, +29,9,234,11,225,7,165,5,38,3,34,253,205,249,80,255,40,8,48,9,176,0,173,249,151,254,22,9,101,7,174,248, +182,241,106,250,50,4,215,7,44,9,217,4,2,252,237,251,153,5,122,10,125,4,80,249,224,240,23,243,120,254,232,3, +107,251,42,242,186,246,124,3,200,9,63,8,63,6,199,4,75,3,137,3,148,1,75,252,42,252,109,0,155,255,101,254, +116,3,82,5,95,1,254,2,58,7,186,0,192,244,109,244,175,0,32,7,206,253,37,247,78,3,99,14,99,4,51,248, +203,253,21,8,222,6,92,253,7,246,222,248,55,3,73,7,65,255,207,242,126,235,191,241,248,3,102,15,107,9,146,255, +72,254,95,1,121,1,78,253,45,250,6,254,92,5,28,9,203,7,160,0,224,247,189,249,146,3,178,2,112,246,159,241, +81,252,108,14,224,25,111,18,94,253,194,240,49,247,103,3,223,4,205,253,234,253,242,6,91,8,202,254,131,249,11,252, +244,253,18,0,34,4,93,4,245,1,172,3,211,7,228,8,38,5,241,252,208,244,115,245,164,1,235,15,36,19,45,10, +205,255,9,249,3,243,100,241,98,249,239,3,164,6,59,2,7,0,162,5,47,12,165,9,51,1,247,251,121,251,56,255, +58,4,86,2,79,253,142,0,83,4,92,253,147,247,249,253,116,7,67,11,59,9,60,4,78,2,146,2,169,254,175,251, +148,254,120,0,213,2,209,10,146,13,17,6,245,253,71,245,203,237,153,244,197,1,167,3,76,4,223,10,254,5,100,247, +115,243,111,247,18,249,240,252,217,1,63,3,213,8,37,18,58,16,229,255,236,237,219,231,184,242,149,3,102,10,174,7, +241,2,67,249,146,235,17,231,73,241,155,0,87,10,251,11,43,10,251,7,101,0,67,243,7,240,27,255,25,14,83,9, +163,249,204,244,143,254,121,7,222,1,219,242,191,237,216,249,16,8,112,12,202,11,75,7,56,249,204,233,110,233,162,248, +6,9,219,15,141,15,91,15,253,10,30,250,78,232,216,231,225,242,172,249,203,252,126,1,6,6,125,8,119,4,70,247, +153,238,82,248,160,9,88,16,209,12,231,7,39,2,149,248,3,239,106,238,14,249,124,4,222,5,61,0,75,253,31,253, +62,250,47,249,197,0,82,8,209,5,85,2,51,6,42,6,145,251,96,243,9,247,86,0,202,6,226,7,174,5,35,3, +48,1,134,0,85,0,226,252,184,247,108,246,55,248,30,253,95,7,168,11,46,1,12,249,190,255,127,6,239,3,131,255, +215,251,44,250,47,254,122,1,11,254,12,248,45,242,105,241,187,252,60,9,251,8,224,3,185,1,67,255,14,2,176,10, +241,8,185,252,162,248,244,254,73,4,243,3,61,255,201,252,112,0,63,0,3,249,49,248,167,254,227,0,36,2,231,6, +103,5,35,254,203,254,88,6,178,8,144,4,208,254,214,248,56,246,164,249,146,250,184,241,80,234,104,240,155,251,186,1, +176,6,82,11,117,10,125,5,238,252,151,241,215,239,129,251,135,5,229,6,9,1,187,240,223,226,162,235,253,254,177,6, +30,7,72,8,36,8,234,7,226,0,248,236,163,225,196,239,141,4,114,14,93,14,43,2,139,239,197,232,162,238,125,243, +226,245,245,251,220,6,89,16,70,13,66,255,91,246,90,246,200,247,31,252,32,4,53,9,17,9,243,1,129,245,12,242, +136,250,67,254,57,251,174,252,228,255,203,0,206,0,206,248,35,237,110,242,12,5,104,14,226,11,236,2,204,244,22,241, +19,1,86,14,38,6,153,243,51,232,147,236,238,252,165,5,164,252,87,244,98,252,57,9,254,10,214,3,242,0,165,7, +98,11,10,255,246,236,9,233,110,242,168,249,33,249,86,247,152,251,72,6,74,14,218,11,5,5,106,3,19,6,160,9, +227,12,104,6,185,239,176,218,140,220,70,237,155,249,183,1,12,11,99,13,175,4,67,253,173,255,251,5,214,10,60,14, +14,12,150,2,2,251,104,249,184,244,71,235,165,231,65,237,85,248,68,7,54,18,246,14,113,4,207,1,140,6,198,6, +153,254,66,247,42,250,45,0,61,251,206,240,201,240,32,249,219,254,215,1,236,3,221,3,18,5,241,7,47,5,87,252, +24,247,67,251,231,3,75,7,207,1,35,250,102,248,125,254,45,8,201,11,44,3,27,248,40,250,94,7,80,11,53,250, +72,231,27,238,3,6,223,14,100,5,69,253,179,250,231,251,29,6,248,16,146,13,138,1,44,251,19,252,180,253,36,251, +182,247,0,251,240,0,233,0,72,255,146,0,59,1,179,3,60,9,6,10,107,6,74,3,196,253,231,250,103,1,213,3, +246,250,237,246,188,251,125,253,178,253,224,1,254,5,196,7,94,5,165,255,158,2,45,14,9,15,71,4,131,255,18,1, +149,254,121,249,172,248,229,255,158,10,93,12,22,5,218,3,32,11,54,14,95,8,74,2,238,5,163,14,130,12,167,2, +236,2,213,5,222,250,0,242,78,254,40,16,26,15,1,249,205,228,218,238,187,14,119,27,148,12,2,0,155,0,168,1, +148,254,56,251,4,252,136,0,92,1,205,1,27,9,133,8,47,249,3,244,215,254,184,1,178,252,7,255,239,2,191,4, +183,10,144,12,60,4,24,253,209,252,148,0,95,6,3,7,133,1,39,0,238,0,85,251,29,246,68,247,252,249,129,253, +198,0,74,1,87,6,62,14,120,8,231,249,103,247,214,252,22,252,246,250,150,254,91,255,49,253,208,253,163,254,94,253, +21,255,240,4,95,6,47,255,86,252,145,8,240,18,124,8,36,250,13,255,186,9,242,6,93,3,182,11,116,16,207,4, +22,245,5,240,236,244,1,251,45,252,140,250,232,251,141,255,238,2,210,9,62,18,128,15,173,0,49,247,12,252,191,3, +235,2,138,253,90,252,228,253,201,250,65,244,11,243,218,249,128,2,51,6,90,5,112,7,219,13,79,13,176,0,64,244, +15,243,62,252,241,9,222,16,240,7,48,250,22,249,104,0,137,1,79,253,26,253,185,0,219,1,241,0,45,3,153,6, +210,5,160,4,213,6,0,5,67,253,77,251,183,1,31,4,219,252,206,244,253,245,238,253,160,0,30,252,227,249,50,249, +5,245,178,246,242,0,190,4,29,2,51,7,70,14,190,11,107,6,124,2,58,251,55,248,124,1,17,12,144,10,119,253, +44,239,30,236,229,245,224,0,116,6,247,8,215,6,185,255,138,252,192,1,19,6,175,1,128,253,56,6,111,18,246,12, +218,249,11,241,146,247,28,254,152,252,141,250,146,1,42,11,180,7,74,253,224,252,25,254,181,247,66,250,154,7,42,12, +236,9,114,9,243,3,13,1,91,8,254,3,65,240,106,234,234,245,223,255,183,5,222,4,111,250,107,245,128,250,62,254, +110,2,36,8,115,7,20,7,174,10,240,6,39,1,11,1,103,250,208,242,144,251,115,4,247,254,22,254,249,5,234,4, +136,253,166,252,68,1,70,5,111,4,18,2,191,5,31,8,170,0,106,250,197,250,12,250,212,251,131,2,220,5,111,8, +138,10,177,0,224,244,46,248,230,252,197,249,187,255,213,12,132,13,206,4,195,254,245,251,234,253,182,4,58,9,235,8, +20,4,226,249,193,241,224,242,120,246,105,245,234,244,74,251,250,4,117,9,144,6,254,1,169,255,180,255,9,2,59,2, +208,252,64,250,94,0,57,4,101,254,167,247,57,246,175,246,25,248,184,252,202,3,216,9,13,11,1,7,123,1,90,252, +211,248,202,251,243,2,239,1,81,248,242,243,34,246,176,245,196,246,235,254,244,3,165,1,16,2,142,4,13,0,221,249, +146,252,226,5,41,12,210,9,245,2,217,254,211,249,128,240,116,240,96,254,227,4,192,249,236,238,229,241,172,253,162,7, +94,7,27,0,82,254,46,3,50,6,38,5,234,255,48,248,48,248,153,2,117,10,86,7,217,251,49,239,51,238,206,251, +229,4,100,255,97,252,217,4,168,9,52,3,178,252,220,252,77,254,90,253,207,253,248,2,45,8,214,5,39,254,166,251, +139,0,220,4,149,6,75,10,147,12,34,6,177,251,12,249,235,255,149,5,177,0,3,248,81,252,61,13,153,20,186,6, +245,242,207,237,223,251,201,15,184,21,142,9,195,251,110,248,60,252,167,2,120,6,197,255,122,246,7,253,138,12,171,10, +147,246,96,235,54,248,126,15,53,25,104,13,19,254,123,254,238,7,245,8,18,0,17,248,251,250,6,8,213,12,226,253, +158,238,202,241,222,252,32,3,125,4,151,255,195,250,71,2,236,12,222,9,161,254,22,247,121,246,76,254,208,5,30,1, +9,250,170,253,93,3,140,1,34,252,202,250,135,3,221,12,160,2,249,236,120,231,190,242,202,0,11,13,58,13,108,0, +61,254,36,10,156,12,144,4,234,255,1,253,163,252,121,3,252,6,135,0,216,248,10,246,206,250,118,4,1,4,231,247, +191,244,49,255,67,5,73,0,131,252,101,3,142,11,122,6,251,253,222,2,220,6,16,251,141,242,179,248,5,254,68,254, +146,254,125,250,89,245,82,246,228,247,253,249,223,1,65,6,5,2,209,0,12,7,59,13,211,12,87,4,9,253,230,253, +146,251,254,242,240,243,234,252,158,255,164,0,86,5,95,5,246,0,81,254,90,254,20,5,125,15,61,16,19,12,226,18, +69,29,133,25,210,7,6,243,196,228,190,226,69,234,144,244,99,252,245,252,197,247,163,247,195,2,229,15,145,16,58,6, +27,4,29,18,70,30,234,23,139,3,158,239,168,232,42,240,230,248,213,249,193,249,122,254,32,5,38,10,140,9,151,2, +14,254,154,2,21,10,238,11,191,8,252,5,237,3,165,255,10,252,121,251,165,247,64,239,230,236,130,246,38,5,215,12, +70,8,185,1,29,3,13,4,56,0,104,2,36,7,85,2,10,252,120,253,109,0,131,1,155,254,211,245,196,243,3,253, +203,0,22,253,217,253,214,255,143,2,212,11,87,12,238,250,42,239,132,246,98,2,242,8,74,9,7,3,192,254,231,2, +191,6,224,2,189,252,152,251,6,255,83,1,99,255,159,250,188,246,85,250,100,5,34,10,176,1,79,248,192,249,47,6, +236,19,49,19,11,4,91,248,5,244,254,240,142,244,7,252,63,253,97,255,5,4,52,253,40,242,161,241,130,243,222,247, +27,9,183,21,181,12,103,1,4,4,156,7,85,255,235,241,0,240,155,251,115,0,22,247,0,243,58,251,57,1,31,1, +254,2,125,8,167,12,31,10,218,2,16,255,33,254,252,249,112,245,173,243,130,242,194,243,228,248,142,253,211,254,49,252, +44,248,244,249,91,2,60,10,113,15,220,19,52,22,96,17,206,255,238,235,128,238,212,5,159,18,203,9,248,250,24,240, +244,237,100,249,168,9,9,15,235,5,143,250,149,254,77,17,163,26,185,13,253,249,235,241,113,248,128,2,126,2,70,251, +53,250,134,253,240,250,244,244,86,244,109,252,30,11,180,24,177,28,204,20,218,6,125,255,200,3,244,6,67,0,186,249, +236,250,157,254,203,255,24,254,39,252,195,252,67,254,219,0,77,7,209,11,134,8,244,2,64,0,231,1,134,9,44,15, +35,11,66,5,116,1,174,250,41,249,239,3,56,12,168,6,233,251,80,248,151,1,190,16,112,19,238,3,42,243,124,244, +27,10,93,31,200,26,186,0,190,240,182,249,147,8,122,7,125,252,182,250,103,255,92,253,228,252,6,7,88,12,118,3, +230,250,70,254,144,8,238,12,247,4,162,251,39,252,204,0,61,3,176,2,24,254,146,254,191,7,81,7,142,252,192,253, +139,5,51,2,189,253,33,0,120,0,177,254,65,253,231,253,242,7,70,15,195,1,50,242,40,248,129,8,176,17,215,12, +227,252,35,246,45,0,136,7,201,7,133,9,197,5,239,254,217,1,161,6,109,5,37,4,8,1,170,255,138,8,34,12, +163,255,39,246,61,250,99,6,148,21,209,22,145,3,179,245,171,247,85,249,72,253,246,10,36,18,70,8,174,249,197,246, +133,2,77,11,183,3,36,250,248,250,177,255,143,6,43,13,222,8,213,252,165,243,71,241,213,251,12,11,62,8,166,250, +252,249,188,255,199,253,230,247,158,243,120,249,200,12,105,24,147,14,252,253,95,243,173,243,23,0,70,7,113,253,59,242, +216,241,153,250,26,6,207,2,102,242,118,246,7,15,220,21,152,8,172,255,92,252,139,251,183,0,201,3,200,0,158,254, +191,252,218,248,120,244,116,239,64,240,216,251,166,7,179,11,56,9,171,255,127,248,99,254,68,3,88,251,46,245,91,249, +5,1,250,8,109,9,178,251,16,239,100,241,208,249,126,255,215,2,223,2,248,1,237,4,59,8,160,5,135,254,105,251, +247,0,23,5,88,253,122,244,227,247,57,255,165,254,144,249,224,247,119,252,200,3,35,6,196,2,102,255,239,252,20,252, +159,255,37,1,188,250,98,246,127,252,203,4,252,5,95,0,253,248,224,246,254,252,182,5,114,10,22,8,92,0,146,253, +234,3,67,4,212,247,76,242,45,253,114,5,94,0,10,250,43,250,166,251,55,250,104,247,212,248,72,0,23,5,249,1, +108,255,45,2,151,2,41,253,6,247,0,244,150,246,125,255,161,7,192,7,251,2,95,254,245,248,18,245,38,249,233,1, +236,5,166,4,151,1,185,252,114,249,186,250,219,251,2,252,115,254,95,254,104,251,246,254,39,5,15,3,177,253,80,250, +43,246,200,248,175,4,204,8,27,0,150,248,215,246,186,248,31,254,180,0,182,255,248,1,242,0,182,248,241,249,201,7, +22,14,177,6,236,251,198,243,234,242,108,249,209,253,41,255,97,5,123,12,51,11,131,4,213,255,75,252,31,246,41,243, +198,253,89,15,66,20,179,9,111,253,72,246,77,244,218,246,175,249,179,254,112,13,80,29,214,27,8,9,239,244,73,235, +203,237,105,246,70,255,47,10,145,22,93,25,25,12,185,249,16,243,56,251,233,4,119,5,112,1,199,254,3,251,160,247, +231,249,249,251,164,247,93,249,80,12,31,32,181,29,49,8,237,244,69,242,35,255,9,12,11,9,59,252,121,247,124,250, +8,251,114,250,64,251,1,253,98,6,17,20,234,19,126,7,145,1,189,0,242,251,211,250,76,254,150,251,115,249,11,3, +48,11,96,3,169,245,112,241,253,245,114,249,143,249,223,253,168,6,184,8,73,3,125,1,107,3,220,2,188,3,124,7, +176,6,38,1,4,252,59,247,82,244,21,246,43,249,167,252,164,3,125,8,66,3,254,248,138,245,1,255,199,16,50,27, +159,18,70,1,60,250,128,254,176,255,204,247,88,239,38,239,13,247,200,0,208,4,122,0,31,250,190,249,131,0,133,9, +73,11,84,1,17,250,231,2,202,10,112,253,203,233,12,232,35,245,226,0,154,4,219,2,72,0,161,252,218,246,64,246, +114,254,39,5,247,3,9,1,86,1,163,3,236,2,167,250,92,242,19,247,49,5,226,13,78,12,109,5,175,254,34,251, +54,251,168,255,247,6,185,8,86,1,130,250,78,251,86,254,234,253,194,251,206,250,29,251,171,254,66,8,129,15,147,9, +60,0,236,255,66,254,184,246,59,248,116,0,106,1,17,1,57,3,101,254,23,248,128,248,79,247,84,245,146,252,192,7, +184,13,242,11,65,2,19,251,160,252,19,249,7,240,222,243,31,0,4,5,59,7,8,10,156,6,210,0,170,253,219,250, +124,250,50,251,131,246,135,241,183,244,9,255,178,12,96,21,138,15,32,2,168,252,162,2,108,12,40,15,119,7,38,0, +136,255,158,253,115,247,18,243,252,243,59,251,6,5,64,11,216,15,113,17,189,7,95,251,241,251,104,2,33,2,135,253, +109,250,100,255,134,14,19,22,94,6,230,237,76,229,210,242,148,7,159,14,218,7,142,6,138,13,220,13,169,4,160,250, +35,246,219,251,69,11,14,26,49,25,37,4,243,240,144,247,74,8,125,7,229,251,53,245,143,245,171,3,49,25,201,25, +196,4,1,248,17,252,251,3,0,7,87,0,49,246,72,247,108,2,219,11,70,14,92,5,41,246,65,243,202,254,188,8, +232,12,121,13,207,6,191,254,13,254,239,254,154,254,239,5,135,17,70,18,179,7,143,254,193,252,75,255,81,1,87,255, +187,252,25,0,114,5,87,4,25,1,204,1,98,0,230,250,73,249,175,251,84,253,26,0,164,3,228,3,88,2,141,0, +147,254,191,1,231,9,1,11,42,0,222,244,225,244,212,253,225,2,49,254,65,249,71,253,153,6,68,13,152,13,252,7, +157,0,152,252,174,253,156,0,171,255,167,250,191,247,40,251,135,6,219,21,17,24,213,4,180,241,100,243,217,1,244,11, +85,8,156,249,98,244,108,4,144,18,122,8,245,243,84,238,220,252,141,16,177,24,78,20,249,9,83,252,28,246,85,0, +152,8,114,252,112,236,130,240,17,6,7,23,51,17,240,252,6,244,45,251,81,3,146,6,49,3,33,248,59,243,171,254, +124,13,229,16,102,8,195,252,19,249,65,253,78,255,57,254,186,253,191,251,166,249,101,250,59,252,150,255,149,1,66,252, +120,248,252,255,146,8,171,9,181,7,250,3,113,255,201,252,148,250,39,253,160,4,183,0,247,242,198,242,84,254,200,2, +47,1,124,255,108,253,1,254,86,254,180,253,223,4,77,9,187,251,182,239,62,246,187,254,120,1,165,5,103,5,197,254, +171,248,221,241,213,240,197,252,129,1,36,245,243,244,234,10,236,19,149,253,139,229,99,236,132,9,125,25,57,14,163,251, +227,244,223,246,68,247,121,245,101,246,112,247,30,245,28,249,94,7,136,13,109,2,96,248,6,253,166,7,105,10,99,2, +254,250,247,252,125,254,93,248,12,244,189,245,18,250,165,1,169,5,12,255,99,248,165,249,144,253,160,3,245,7,45,1, +122,250,149,2,79,11,155,5,76,251,197,246,38,248,64,255,46,6,139,3,35,251,61,250,132,2,227,6,219,0,50,250, +23,250,122,253,74,4,195,11,146,7,204,248,16,243,207,253,17,10,221,8,96,253,216,246,197,249,204,252,190,253,92,255, +135,252,116,248,2,255,230,8,192,5,101,250,179,246,47,254,94,6,93,4,183,253,141,254,71,1,29,254,29,254,130,2, +222,255,109,250,176,253,59,5,23,8,250,4,149,254,234,249,66,250,41,255,123,5,136,4,7,250,195,244,83,252,45,4, +227,4,177,3,90,4,174,6,55,5,161,252,252,248,164,1,83,9,79,9,212,7,19,3,156,249,199,241,67,237,47,238, +136,246,131,254,16,7,142,23,78,31,49,15,196,252,201,252,225,6,216,14,1,15,226,5,168,251,202,246,199,246,29,252, +92,255,5,248,77,243,40,255,222,16,32,25,6,18,103,255,45,247,211,7,229,25,181,18,76,252,135,240,76,247,99,2, +171,2,239,252,118,250,82,246,114,242,126,250,91,5,31,2,140,249,225,252,120,10,137,19,80,12,135,250,96,241,215,246, +87,0,221,5,38,3,214,248,67,243,191,248,210,254,66,254,56,250,124,247,106,252,191,7,169,10,29,0,132,247,170,251, +214,4,159,7,212,3,156,1,58,3,92,3,204,1,50,1,104,254,104,250,113,252,234,1,132,1,233,251,236,248,16,251, +56,252,203,246,196,242,122,250,228,3,154,1,223,252,124,0,244,5,130,9,9,13,79,10,175,0,12,251,230,250,46,250, +67,250,32,251,248,247,197,243,61,245,105,252,41,4,220,5,59,2,246,3,19,11,92,9,66,254,224,247,147,250,149,1, +64,7,177,3,143,248,23,243,50,247,6,255,107,7,97,9,9,255,108,243,163,242,60,247,22,249,98,250,135,255,35,7, +28,11,207,9,225,8,16,8,2,1,102,247,20,244,163,246,4,250,236,250,103,249,196,249,210,251,86,252,234,0,241,8, +60,5,254,246,246,240,241,244,79,251,197,5,182,13,108,7,204,250,0,246,26,248,128,249,206,247,35,248,135,254,107,3, +128,2,6,4,234,4,98,250,185,239,222,243,82,253,121,0,116,1,178,4,180,6,173,1,179,248,88,249,250,2,208,3, +125,252,54,253,34,3,252,2,220,0,132,4,72,12,200,13,169,0,68,241,148,242,36,254,214,3,10,4,210,2,209,1, +231,3,29,2,52,248,181,244,102,253,95,5,143,8,178,7,19,253,249,240,248,243,94,2,162,12,56,11,101,255,190,243, +164,243,79,251,109,255,68,254,141,254,167,3,29,7,58,3,61,255,217,0,191,0,87,253,224,254,96,4,200,6,58,6, +253,5,58,6,21,2,6,247,171,241,254,250,179,1,159,250,54,248,150,2,168,8,245,4,159,2,205,4,254,4,217,254, +141,249,186,0,15,11,19,5,223,247,88,247,252,251,1,250,28,249,194,253,211,3,75,10,56,10,13,255,176,248,45,1, +238,7,230,2,159,254,205,0,219,0,22,253,234,251,16,0,202,7,202,14,218,16,159,14,33,9,151,254,89,245,236,248, +213,3,126,4,211,250,120,246,83,252,180,3,169,4,226,254,174,250,20,255,167,5,100,6,174,5,87,6,92,2,79,251, +131,249,23,252,45,253,2,252,46,251,58,254,126,3,106,2,168,252,85,254,251,4,115,6,103,8,232,13,138,10,64,255, +220,249,0,249,92,249,141,2,186,13,33,11,78,1,20,254,81,255,158,1,210,5,218,6,54,2,33,252,200,246,96,246, +189,255,255,10,57,13,151,8,137,2,229,251,111,248,43,251,193,255,197,2,63,5,174,5,217,1,56,253,250,252,220,0, +173,3,25,1,48,251,7,250,207,1,249,10,248,9,5,253,68,239,161,239,9,0,48,15,108,14,129,3,88,248,179,240, +158,244,0,3,235,5,156,246,210,237,80,248,69,5,221,6,184,255,211,248,96,252,35,10,219,18,53,13,229,1,131,253, +36,3,55,11,59,11,10,2,110,248,12,245,15,247,186,250,54,253,167,253,200,253,197,0,106,6,148,9,35,8,178,5, +91,2,202,251,245,247,229,253,78,7,212,8,248,3,184,2,150,3,216,251,14,240,98,240,128,250,22,255,5,254,195,255, +88,4,47,7,255,1,155,245,40,243,115,0,60,7,117,253,141,246,146,253,196,7,193,9,234,1,12,249,230,248,255,253, +134,255,223,251,235,246,147,249,45,6,27,12,3,3,203,252,96,3,215,9,32,6,183,249,71,238,101,241,215,0,127,11, +235,9,165,254,171,240,13,239,22,252,79,3,43,251,43,243,1,249,136,7,239,14,234,7,126,251,103,244,247,247,76,5, +214,9,150,247,93,230,45,238,134,0,151,11,163,12,13,0,33,242,68,249,59,12,167,16,36,2,197,239,233,238,249,2, +233,12,237,251,183,235,146,239,169,251,98,5,112,8,178,5,6,6,81,6,231,0,249,1,8,8,114,0,122,243,41,244, +187,252,139,3,238,4,244,251,69,243,240,248,219,3,44,9,104,11,127,10,143,6,126,2,36,252,129,245,17,244,76,246, +191,251,153,2,106,3,85,1,92,255,66,245,51,239,188,0,204,21,19,21,19,9,76,254,17,248,84,254,137,7,76,2, +175,247,251,245,201,251,41,5,61,9,237,2,211,255,140,4,143,5,53,4,232,2,36,251,45,247,198,1,101,12,223,10, +158,1,141,248,163,250,45,5,83,4,74,251,125,254,159,7,2,7,93,0,84,249,218,243,122,244,130,248,126,250,139,250, +207,249,116,253,250,6,42,10,122,3,25,253,132,247,224,244,180,254,47,9,238,4,227,254,46,1,253,2,177,3,242,3, +102,252,163,243,100,244,108,248,120,250,235,253,115,0,50,255,157,253,246,254,34,3,216,4,74,0,74,254,12,7,148,18, +18,21,70,11,249,250,85,239,2,234,166,226,97,220,165,224,38,235,245,244,83,255,243,8,209,13,1,13,151,7,255,2, +117,3,80,4,235,2,78,3,90,5,126,5,48,255,75,238,241,221,113,224,87,240,58,252,18,4,113,10,236,9,231,8, +144,15,58,17,103,3,165,244,100,244,225,254,18,10,42,14,91,6,210,251,83,254,71,9,105,11,137,3,146,249,107,241, +242,243,74,3,166,13,163,9,25,3,132,1,42,4,21,9,105,6,225,250,104,248,175,3,139,12,181,12,112,8,135,0, +132,248,117,245,201,247,145,253,86,255,7,249,110,247,223,1,17,10,69,8,178,4,29,1,102,251,29,249,74,252,146,255, +177,1,123,5,92,9,64,9,118,6,188,3,161,254,0,250,178,254,138,7,1,9,126,6,66,3,101,252,232,250,219,0, +246,253,28,245,138,246,214,249,253,246,192,250,120,4,220,8,116,10,59,8,27,254,106,248,55,254,65,5,146,8,136,8, +101,4,148,1,63,1,239,253,88,252,83,1,182,5,169,5,210,1,63,249,181,243,133,248,143,255,116,2,24,5,167,6, +158,4,48,3,100,4,141,5,211,6,172,9,12,10,227,2,102,251,126,254,121,2,194,248,77,237,127,240,186,251,23,5, +251,9,245,6,250,0,71,0,102,1,126,3,37,10,187,12,211,6,207,1,154,253,240,246,221,247,96,2,1,9,32,5, +37,252,39,248,200,253,9,3,128,1,57,2,159,5,171,3,198,1,27,4,249,4,79,7,120,10,29,1,93,241,68,241, +223,253,233,3,224,0,240,251,28,246,194,240,161,241,155,249,140,1,126,4,169,4,17,5,196,7,217,11,31,9,202,254, +82,251,95,2,108,7,101,8,169,8,94,1,206,243,186,237,144,242,38,250,147,253,213,252,163,255,227,7,150,11,226,7, +49,3,204,255,31,1,198,7,177,8,92,2,245,255,249,255,246,253,247,255,189,2,208,255,5,255,168,1,235,254,199,250, +99,250,234,247,2,245,188,248,155,255,133,3,198,4,65,6,89,8,30,7,132,3,49,4,54,5,227,0,227,255,77,3, +120,255,210,248,212,249,169,251,144,248,53,245,58,244,64,249,169,3,45,7,120,0,71,249,169,245,71,248,99,3,151,12, +82,11,214,3,161,249,180,241,25,244,251,252,200,3,143,4,68,250,112,237,197,241,226,255,177,1,163,252,208,253,198,0, +143,3,213,6,62,3,120,252,157,254,56,5,7,5,136,254,61,247,235,244,95,252,169,7,234,9,51,1,22,247,100,240, +163,235,35,237,199,247,202,0,92,1,54,2,192,6,132,8,191,5,106,254,226,245,82,247,202,1,104,8,206,9,133,6, +153,250,172,240,27,241,77,243,77,250,192,9,156,12,126,255,210,251,111,2,140,4,55,7,49,10,31,5,85,1,135,3, +39,3,92,4,202,8,252,5,97,2,233,6,253,5,21,251,250,245,45,250,70,253,175,249,32,242,150,240,20,249,205,0, +247,1,193,1,214,255,113,251,7,251,22,1,12,10,13,15,183,7,217,248,131,241,140,242,194,242,144,241,124,242,114,247, +78,255,8,2,131,254,164,0,124,9,0,12,211,4,104,252,5,251,28,2,21,8,86,6,153,4,163,4,171,254,73,248, +46,250,24,254,254,255,12,1,78,250,177,238,133,240,38,0,251,9,55,7,22,0,63,250,42,249,98,255,80,7,159,8, +179,4,50,2,181,1,163,1,249,0,101,248,27,231,161,224,84,239,243,254,75,255,6,249,187,245,132,248,68,4,81,17, +181,19,69,13,247,4,12,253,132,249,16,253,77,4,72,9,128,5,125,251,148,247,74,249,94,247,223,247,196,253,8,252, +213,246,2,254,19,8,126,7,99,3,252,254,139,249,228,252,149,5,5,5,199,0,163,0,210,252,137,249,79,0,26,5, +79,0,199,253,217,253,44,248,36,244,238,248,210,255,17,4,219,5,80,2,8,248,1,237,73,237,20,254,24,16,169,16, +119,3,93,248,21,247,61,252,231,251,231,242,244,242,12,3,125,14,174,10,2,2,92,248,34,240,17,241,26,245,204,244, +43,249,140,2,136,5,54,6,29,11,188,10,29,0,217,243,142,240,68,251,139,7,44,4,73,251,158,252,220,252,63,246, +206,246,138,250,90,245,40,242,123,249,28,3,119,12,125,18,184,12,205,2,121,0,115,255,146,250,172,246,155,242,196,238, +102,243,137,254,9,5,6,4,229,253,103,243,168,234,102,239,162,2,193,17,197,13,207,3,132,6,117,14,234,11,247,255, +59,242,48,232,212,232,24,245,249,3,8,11,232,4,188,247,19,242,114,247,240,253,206,0,120,2,70,3,132,3,42,5, +4,9,52,13,228,10,173,253,213,239,234,238,156,248,193,1,71,5,60,4,169,2,15,4,102,5,62,2,28,255,249,1, +9,4,246,252,248,246,158,254,54,8,23,5,225,255,219,3,27,7,100,2,92,251,20,245,81,242,230,247,107,2,128,11, +57,15,88,8,53,253,137,253,16,3,56,251,25,238,227,238,113,249,130,0,29,2,100,1,91,2,77,6,26,6,9,255, +218,251,24,2,128,7,249,4,35,2,240,4,122,5,85,253,97,244,195,242,118,246,175,252,103,2,206,0,79,251,47,254, +230,5,175,5,87,2,204,5,32,10,108,9,39,7,149,2,24,253,37,0,139,7,165,4,86,252,78,252,171,255,149,252, +216,244,199,238,179,242,42,2,221,13,172,12,197,7,57,1,54,248,59,251,127,10,129,15,185,7,77,2,188,254,136,250, +179,252,213,2,103,6,222,6,79,0,54,245,227,243,80,253,243,3,212,2,235,253,212,251,81,1,88,6,111,3,236,1, +48,4,5,254,201,244,45,250,199,7,173,8,67,252,205,243,189,247,115,1,147,9,17,11,228,0,44,244,131,246,165,2, +221,6,171,3,11,253,184,243,178,246,127,7,36,12,40,2,227,254,180,254,182,249,36,253,209,6,75,7,132,3,124,1, +231,251,127,247,233,248,192,251,192,3,231,14,131,11,181,250,139,242,164,248,58,2,63,8,202,7,54,3,104,0,235,253, +16,249,11,248,66,254,171,3,137,1,160,253,92,1,185,9,208,10,1,3,186,252,6,254,83,2,240,3,173,4,36,7, +18,4,48,248,111,242,138,250,37,1,123,255,225,0,55,5,34,4,154,2,40,5,77,4,236,252,250,245,190,246,171,0, +237,10,181,9,170,255,122,250,147,254,66,4,58,5,159,3,70,4,49,6,5,4,129,253,54,249,13,252,133,3,187,7, +199,1,26,244,126,236,222,244,46,4,134,11,137,9,237,2,122,250,43,248,229,255,89,7,89,8,43,7,131,3,218,254, +200,0,31,5,133,2,37,252,91,246,49,243,49,249,162,2,168,1,28,253,128,0,214,2,212,254,84,254,70,2,89,3, +250,1,252,1,165,3,152,4,66,4,201,5,98,5,153,251,163,242,114,247,207,254,198,253,107,253,2,1,20,2,35,2, +5,2,102,255,77,255,31,2,165,0,70,254,49,2,135,6,46,3,69,252,244,252,240,6,104,12,227,5,63,0,180,3, +105,7,96,6,217,2,118,252,249,245,122,243,48,243,20,245,92,251,18,2,108,4,90,3,31,3,193,5,104,4,251,249, +3,243,78,250,9,5,129,8,66,7,58,2,114,249,214,242,101,243,187,251,225,4,185,4,153,0,24,3,150,4,138,255, +93,254,180,1,239,2,37,4,100,0,163,244,247,242,23,255,60,3,115,255,60,4,1,10,26,5,151,253,47,251,8,0, +255,12,193,21,142,13,102,254,131,248,210,250,33,251,25,246,98,241,81,243,34,251,115,3,233,7,85,6,205,255,145,247, +208,241,245,244,181,1,219,12,137,14,178,10,210,3,69,251,244,248,24,253,209,252,251,247,177,247,176,249,183,247,154,246, +7,251,211,255,223,255,250,251,1,249,231,253,210,9,22,16,166,9,108,254,210,247,206,249,43,3,142,9,214,4,91,252, +200,248,114,249,202,252,150,254,32,251,243,250,246,0,117,0,5,251,145,253,215,1,140,0,4,1,43,0,46,249,125,248, +227,0,152,7,5,13,168,15,229,7,222,254,187,253,202,253,108,255,40,4,15,1,212,247,180,244,120,246,32,252,109,6, +220,8,141,1,166,254,101,255,248,254,173,2,231,3,202,253,223,254,149,6,120,6,229,4,137,5,111,251,183,239,117,245, +133,1,40,3,173,254,238,250,136,250,217,254,23,1,204,252,192,248,164,248,26,251,186,2,94,13,150,16,250,8,146,254, +58,249,77,250,30,254,124,255,51,254,203,255,61,3,221,255,199,248,177,249,91,254,38,254,114,0,52,6,225,4,176,3, +128,11,29,13,243,2,144,253,215,254,202,254,117,1,237,3,45,254,150,250,75,0,104,2,74,253,23,251,225,250,148,246, +148,242,144,244,65,251,2,3,180,7,246,5,219,0,28,0,101,4,234,7,155,10,104,11,203,0,247,238,16,234,60,243, +42,251,88,0,134,4,33,2,229,253,180,252,24,248,88,246,232,1,246,11,177,7,188,1,89,0,201,252,60,250,252,251, +221,253,232,1,171,7,225,6,80,2,255,0,176,253,7,248,191,249,186,0,235,3,53,3,94,254,151,246,45,248,90,5, +184,12,113,7,24,255,126,247,101,243,101,248,106,254,69,253,60,254,41,3,176,1,52,254,121,254,78,249,160,242,161,249, +51,7,247,10,108,4,135,250,245,245,27,250,184,251,75,248,36,254,88,10,241,12,167,8,152,5,44,2,105,254,173,248, +140,240,163,241,42,254,184,7,164,9,92,6,202,253,1,249,222,250,69,248,228,245,192,252,42,1,254,1,144,10,147,15, +106,9,186,6,85,4,226,248,52,244,69,250,36,252,213,254,78,6,212,3,124,253,234,3,122,10,135,3,125,251,123,252, +93,1,105,4,253,4,251,5,238,5,173,254,107,245,237,244,123,249,125,252,221,0,78,4,236,0,55,252,82,253,252,0, +239,1,115,0,38,0,122,2,152,3,93,0,14,252,69,251,251,253,92,0,254,255,160,254,178,252,108,248,238,245,194,249, +157,254,251,0,82,6,70,13,9,12,37,2,3,250,234,249,10,252,131,247,54,240,140,242,44,255,223,10,115,14,249,10, +242,5,95,3,50,1,113,255,81,3,117,10,248,11,7,5,110,248,3,238,187,239,199,249,44,0,9,4,167,8,67,7, +131,2,219,5,9,13,186,11,148,4,90,3,3,9,208,8,216,252,130,243,95,247,163,252,73,251,129,252,126,2,38,5, +213,3,226,2,235,3,136,5,251,1,54,250,72,252,80,11,65,21,55,15,105,2,205,250,42,254,20,10,146,16,164,7, +113,250,24,249,35,2,245,9,210,9,2,2,20,250,124,249,74,251,170,249,53,252,49,6,203,12,40,11,0,6,165,1, +194,3,23,9,156,3,96,248,29,249,123,254,23,251,91,247,171,246,59,243,184,244,138,252,17,255,39,0,177,5,31,7, +101,8,71,17,21,19,181,8,76,4,212,6,90,2,154,250,116,249,250,251,102,251,178,247,25,248,123,254,107,0,189,251, +151,251,158,0,54,4,17,7,95,6,2,1,217,2,223,11,33,11,47,0,225,249,138,252,197,2,166,4,173,253,251,245, +150,245,153,248,222,252,226,0,175,251,104,240,200,238,163,246,218,254,165,10,96,24,220,23,28,6,214,246,181,248,124,3, +65,7,209,0,194,247,76,242,91,242,253,246,182,255,96,14,193,27,8,23,211,1,93,243,218,243,118,247,74,252,58,7, +212,15,97,14,7,11,226,11,211,9,70,1,249,248,138,244,122,243,134,249,144,5,155,11,84,6,61,254,136,249,129,246, +181,244,188,246,142,252,173,0,74,255,136,254,200,2,217,3,165,254,234,251,120,251,94,247,118,246,195,254,194,6,155,4, +251,250,238,244,239,248,57,254,3,252,176,249,251,250,38,248,74,246,79,255,225,8,24,7,130,255,30,249,24,246,84,248, +108,251,203,250,166,251,121,1,31,7,139,9,59,10,73,8,222,1,75,251,95,251,191,254,172,253,99,252,17,255,171,253, +162,249,124,253,150,1,156,252,141,249,11,251,236,245,78,242,164,254,49,16,189,20,247,10,223,254,22,254,84,7,189,9, +3,0,99,246,180,243,37,245,239,247,117,249,202,248,195,248,25,252,46,3,226,10,253,15,108,20,249,22,212,17,236,10, +155,11,68,11,137,0,254,243,95,238,62,239,247,244,183,250,104,252,53,252,215,249,115,247,193,255,83,16,9,24,128,19, +35,10,8,255,88,250,9,1,132,5,204,255,75,250,230,248,13,249,12,0,170,10,196,11,43,6,102,4,225,1,119,250, +35,247,222,250,171,255,98,5,172,10,196,7,114,255,139,252,14,253,36,250,230,248,59,254,82,5,254,9,158,10,158,6, +170,2,98,0,169,251,210,249,174,0,98,3,183,249,82,243,91,249,3,1,24,4,118,3,212,253,6,249,35,250,194,248, +246,244,7,252,101,7,13,4,21,248,136,244,93,248,226,254,180,8,3,15,22,13,254,8,135,4,188,254,172,252,170,252, +54,249,80,248,148,251,181,248,29,242,142,243,191,252,113,10,209,23,194,20,130,0,120,244,110,250,33,3,106,7,98,8, +55,3,123,252,21,251,101,250,127,247,18,248,84,252,194,255,5,2,112,2,111,255,82,253,45,1,202,6,147,6,132,2, +231,0,116,255,72,251,51,250,244,253,62,0,165,255,216,253,11,250,220,246,231,246,242,249,210,2,196,12,30,10,200,254, +199,250,251,252,19,255,182,3,120,6,25,3,64,1,100,0,235,250,197,248,249,251,163,250,12,247,41,246,246,243,137,246, +51,3,5,12,194,10,119,8,255,3,65,252,47,252,36,3,168,5,252,2,185,254,190,250,167,252,120,3,146,5,232,0, +87,251,103,249,174,252,251,0,236,255,118,250,21,246,72,247,77,255,33,7,235,8,239,10,20,14,117,7,86,250,95,246, +250,250,187,253,93,254,147,254,25,252,138,249,144,250,109,253,72,1,182,5,197,3,13,248,135,238,132,242,103,253,178,6, +86,16,101,21,168,12,252,254,29,248,46,244,49,245,251,0,191,7,254,254,60,249,221,253,106,255,92,0,9,6,120,3, +223,249,85,250,52,1,4,4,12,7,12,7,110,253,116,247,229,252,174,0,79,2,254,13,50,27,227,23,59,6,145,244, +167,236,26,242,47,255,210,6,220,3,75,254,157,253,16,255,218,252,114,248,181,248,84,255,21,4,104,255,168,248,35,253, +17,9,15,14,109,11,104,7,40,0,62,248,173,247,118,249,90,246,222,245,216,252,194,4,205,10,25,13,183,6,199,252, +98,247,229,243,221,242,182,250,48,5,249,6,0,1,124,249,202,245,147,250,148,3,66,7,84,3,112,250,78,242,167,243, +103,252,33,1,206,0,195,255,167,251,90,247,0,250,2,255,167,1,111,9,92,22,152,25,13,13,193,252,108,245,98,247, +103,252,199,1,248,5,126,4,194,254,74,253,60,0,252,254,57,249,236,246,215,249,70,252,174,251,159,252,204,2,95,10, +204,13,229,11,43,5,45,252,245,245,145,243,10,244,80,249,25,0,169,2,141,6,191,14,78,13,54,253,135,239,191,238, +41,245,246,253,145,4,227,3,79,2,198,6,63,9,89,4,53,1,110,3,85,3,67,255,215,251,243,248,103,246,186,248, +138,0,107,7,19,8,127,3,45,255,109,255,109,1,101,255,43,251,90,251,41,255,47,0,6,254,10,253,33,252,233,246, +173,240,20,241,44,247,118,252,215,255,10,2,134,3,229,9,20,20,105,19,117,5,159,250,49,248,101,248,15,254,92,5, +81,1,210,248,133,249,54,251,251,247,237,248,50,250,188,244,87,244,83,252,178,255,252,0,153,8,238,13,39,13,176,12, +157,6,59,248,212,241,192,247,95,251,223,251,65,2,63,8,155,6,78,4,142,3,6,254,221,247,83,248,16,249,238,244, +162,242,147,243,9,244,36,250,110,8,197,18,51,19,9,15,235,6,43,253,103,251,77,1,92,5,31,5,120,2,183,255, +103,1,193,4,178,1,89,250,210,245,49,246,227,251,87,1,105,254,228,249,112,253,237,1,235,1,141,2,3,1,214,250, +111,250,175,2,233,9,25,11,109,5,68,252,52,250,251,255,25,3,250,0,71,250,93,240,10,241,71,255,193,4,138,251, +122,246,101,247,4,245,19,245,184,249,83,253,244,5,4,21,83,28,100,24,65,17,121,7,174,253,91,252,128,0,105,0, +227,251,25,248,111,248,216,253,228,3,7,4,126,254,92,249,31,248,102,249,231,251,140,255,186,1,238,0,54,0,90,255, +66,252,138,252,233,2,198,7,139,9,143,10,72,4,130,249,17,249,196,255,22,2,85,6,150,13,52,10,59,0,205,253, +182,253,230,248,30,246,46,248,91,252,132,3,208,11,82,16,206,13,90,3,181,248,186,247,110,251,167,250,143,246,116,241, +56,240,20,252,237,12,0,17,50,12,40,9,45,3,59,250,25,247,25,249,159,254,162,8,3,13,233,5,82,254,219,250, +237,246,68,247,217,254,133,4,98,4,34,3,185,1,39,255,58,252,210,249,219,250,96,1,129,9,246,13,96,12,229,5, +156,255,118,252,151,250,116,251,207,1,149,8,6,9,36,3,213,251,236,250,163,2,213,6,81,254,142,244,163,246,3,255, +66,2,236,254,123,251,18,255,125,9,68,16,237,10,97,0,136,255,10,11,241,20,124,17,184,4,179,249,229,246,0,252, +243,1,137,1,162,252,186,248,234,246,188,247,14,250,197,248,52,246,35,251,18,5,33,11,17,14,102,15,78,11,45,5, +104,2,150,254,82,250,252,0,147,16,33,23,145,14,150,2,180,252,69,252,48,253,179,252,245,250,78,250,139,252,66,2, +173,10,133,17,3,16,33,4,76,246,124,242,107,249,184,0,162,4,139,11,185,20,47,22,10,14,96,4,166,253,246,248, +99,246,194,246,182,249,115,253,172,254,39,252,169,249,231,251,30,2,138,5,155,2,136,255,252,255,189,252,231,245,57,247, +82,255,181,2,104,4,133,9,172,9,187,3,4,0,55,252,156,246,86,247,22,252,5,253,214,255,161,7,185,11,229,9, +134,4,175,251,131,247,118,253,49,2,144,254,160,249,48,248,211,253,64,12,239,20,119,11,153,252,206,245,249,242,181,242, +158,249,6,3,240,7,129,9,122,10,237,10,141,10,45,9,159,6,195,2,18,255,216,253,35,253,203,250,194,251,13,2, +76,5,119,0,185,248,39,245,248,250,96,8,72,17,104,14,72,7,111,5,181,9,255,13,98,12,81,7,202,3,132,255, +158,250,36,250,97,250,81,248,173,251,3,2,7,0,14,251,198,251,12,253,52,255,131,6,207,8,117,0,224,249,231,253, +23,9,46,17,54,10,144,249,72,243,250,249,168,2,122,11,187,16,81,11,217,1,186,251,33,247,168,247,55,254,111,1, +181,1,157,3,161,0,117,250,25,250,116,249,236,245,235,249,156,255,22,252,16,250,220,254,39,255,238,253,1,5,65,13, +211,14,133,10,107,0,126,247,199,249,168,1,235,4,197,4,127,2,211,251,10,245,21,244,69,248,194,253,107,1,43,1, +91,252,129,246,37,248,102,3,12,13,149,12,28,6,37,255,147,251,47,0,27,10,196,15,157,11,219,253,211,238,88,235, +81,242,233,247,135,251,213,0,198,1,184,251,231,245,3,247,144,1,1,15,119,16,131,2,49,242,243,236,0,248,162,8, +203,9,191,252,22,246,76,246,74,245,213,252,32,11,44,12,76,1,111,248,99,241,116,240,107,251,201,2,71,254,135,252, +155,254,201,250,243,249,224,2,56,10,68,10,205,4,161,249,255,241,217,247,220,2,39,7,113,3,52,250,126,243,122,248, +148,2,105,5,97,1,77,250,140,241,150,238,45,245,47,252,147,254,142,2,11,9,73,10,54,4,145,253,162,251,125,253, +21,0,67,0,97,251,183,245,99,249,207,5,91,13,153,10,41,5,147,0,168,251,19,250,214,251,112,249,173,243,124,243, +248,247,180,250,88,255,221,9,159,17,32,15,136,7,62,1,255,252,245,251,61,254,47,255,204,252,117,251,170,253,161,255, +147,253,44,250,30,251,53,255,14,0,139,254,85,255,10,255,72,252,135,255,199,7,196,8,173,4,83,6,224,7,119,0, +201,247,93,246,54,251,220,2,138,4,26,251,46,245,142,253,102,5,6,4,211,5,109,10,235,3,46,247,114,243,42,250, +115,6,172,19,238,23,158,13,138,253,193,245,140,251,114,6,171,10,96,7,68,1,85,250,217,248,134,0,65,6,169,3, +95,2,41,3,98,253,155,246,119,247,180,251,95,0,126,5,97,5,32,1,72,0,24,0,228,252,158,251,235,250,187,246, +122,247,19,2,240,9,48,5,87,251,181,247,16,251,191,0,192,9,209,21,88,25,229,13,5,255,223,246,161,245,185,252, +224,6,22,6,248,250,231,242,5,243,63,252,184,11,200,17,120,7,109,252,180,251,221,0,164,7,167,11,55,9,255,5, +78,5,45,2,38,254,123,253,218,252,1,252,8,254,30,255,18,254,59,0,48,4,56,5,187,4,247,2,169,254,188,253, +190,4,61,10,78,2,80,244,235,243,145,1,216,10,65,11,142,10,154,6,120,1,52,7,85,18,218,19,1,14,65,5, +2,249,199,243,18,249,126,251,128,251,24,1,69,2,12,252,178,251,221,255,88,2,116,9,235,15,143,10,121,2,142,255, +41,254,45,5,54,19,85,17,135,254,67,243,132,243,202,244,37,249,62,255,83,254,185,250,237,251,29,253,253,251,26,255, +43,6,25,9,58,6,42,2,232,253,54,251,39,1,73,12,72,13,56,5,99,4,70,9,179,6,97,255,80,251,113,250, +123,254,37,5,95,3,228,250,213,249,99,0,103,4,172,4,189,3,103,0,128,253,238,1,205,11,149,14,80,5,245,251, +151,252,130,3,147,11,24,16,158,9,112,252,18,245,84,243,34,244,67,251,193,1,100,255,14,254,206,1,135,1,34,3, +243,12,230,14,37,3,30,250,44,249,19,252,191,5,118,17,100,19,89,11,2,0,168,248,17,252,226,3,151,4,226,0, +144,253,55,250,235,253,17,9,150,12,91,6,15,1,51,252,73,249,255,255,38,5,53,252,219,243,151,249,85,4,165,11, +184,13,29,7,150,252,172,247,28,249,221,255,223,10,71,16,101,9,194,253,159,247,58,252,227,8,32,15,23,6,200,249, +197,245,65,246,66,250,24,6,84,17,232,14,179,1,222,245,191,241,81,247,30,6,103,21,138,24,19,13,195,252,228,242, +225,245,195,3,63,15,199,12,247,2,214,253,93,252,56,253,217,6,28,19,62,18,222,6,214,253,182,247,63,246,190,0, +9,12,151,7,34,253,232,250,148,250,96,250,44,3,25,12,227,6,165,252,182,249,183,249,15,251,209,3,110,15,90,18, +64,10,233,254,143,249,94,251,125,253,246,253,91,0,177,1,13,254,210,250,1,252,185,253,7,255,214,2,128,7,92,8, +48,3,211,250,64,247,63,252,112,2,1,3,85,1,206,0,50,254,46,249,102,247,64,251,10,2,42,9,246,11,126,4, +103,247,145,241,101,245,102,252,98,5,158,12,65,8,30,253,179,250,152,254,142,252,35,248,8,250,82,0,237,7,71,15, +136,16,209,9,210,1,64,254,87,255,249,1,82,2,17,0,45,253,19,250,158,248,96,251,27,0,87,3,102,4,136,2, +206,254,160,252,141,251,203,250,137,254,102,7,161,15,191,18,108,13,215,255,220,244,84,246,183,254,151,3,213,2,48,1, +112,4,66,10,68,8,72,254,52,248,41,249,158,251,94,255,68,3,63,2,227,255,182,3,17,11,113,14,233,9,143,252, +167,236,206,231,49,244,63,7,66,17,44,14,187,5,98,254,228,249,30,251,225,1,23,7,19,7,54,5,85,2,205,252, +4,248,74,249,152,255,1,3,48,254,114,246,207,243,189,247,128,1,116,12,36,13,119,3,219,253,132,255,143,2,142,9, +201,15,13,10,123,2,67,3,143,253,159,241,182,246,168,7,146,13,99,11,56,6,133,246,165,233,10,243,227,6,234,17, +48,18,110,8,254,248,93,241,180,246,140,2,77,13,28,15,143,7,26,0,144,251,21,248,238,250,108,2,236,2,250,252, +94,250,63,252,249,255,4,4,244,4,67,3,214,1,87,255,255,252,165,253,76,253,81,251,0,254,153,2,58,2,43,1, +10,4,18,7,63,8,107,7,49,2,60,251,99,249,101,253,57,1,16,0,7,254,183,3,85,14,12,18,7,13,123,5, +25,253,21,245,172,240,145,241,117,250,135,8,126,15,118,12,254,7,134,1,34,248,88,247,3,0,220,4,32,5,248,5, +147,2,110,253,37,1,233,8,3,8,224,254,163,245,197,241,103,244,174,249,246,253,148,0,19,0,255,253,76,254,191,253, +98,249,79,248,29,254,33,5,167,10,92,13,145,9,90,2,243,253,144,252,97,254,227,3,237,7,6,7,44,2,206,249, +214,243,160,247,141,254,147,255,137,255,88,2,62,3,154,3,37,8,133,12,195,9,89,255,188,243,56,240,205,244,136,247, +97,246,210,247,126,251,86,254,177,2,23,8,211,9,114,6,186,255,98,250,168,251,71,0,74,1,1,0,169,255,33,255, +60,255,137,255,88,251,196,244,38,242,69,242,10,245,92,254,235,6,94,6,30,6,79,12,54,13,97,7,146,7,59,10, +157,4,57,255,224,0,47,254,218,245,90,244,254,247,47,249,3,252,131,254,215,248,134,244,206,250,248,254,160,251,117,255, +158,11,5,17,140,13,70,9,232,5,5,3,50,1,197,254,30,251,50,247,241,243,81,243,106,244,221,243,15,243,234,243, +58,245,60,250,5,4,185,9,117,9,144,10,157,9,90,2,82,255,107,3,46,3,5,255,115,255,165,1,25,2,110,2, +116,255,205,249,48,249,211,251,86,251,117,251,236,255,115,5,157,9,104,10,71,8,187,9,22,13,70,8,61,255,210,252, +182,252,248,248,102,247,35,250,104,253,232,0,157,1,175,252,238,249,141,254,10,4,233,5,23,3,63,250,255,243,132,249, +119,2,110,5,149,4,0,254,125,242,150,241,172,253,2,5,141,4,39,4,45,254,126,244,5,247,131,1,177,4,201,5, +192,9,121,6,21,254,219,251,168,253,100,1,11,10,238,14,225,9,219,4,85,4,179,4,141,9,23,17,138,16,243,9, +97,6,213,3,80,255,194,249,62,240,204,228,106,223,49,222,50,219,120,217,196,219,181,224,219,234,214,250,138,9,127,17, +19,21,90,26,133,34,246,37,65,32,129,24,90,19,45,12,89,0,92,241,115,226,151,217,84,214,241,209,53,206,76,206, +228,205,239,210,28,232,184,2,204,19,155,29,238,32,32,29,209,30,213,39,85,40,36,32,63,25,194,15,93,3,111,251, +110,242,203,229,41,225,133,225,201,215,242,198,35,188,30,191,3,213,3,246,247,14,73,27,2,33,95,30,55,23,61,24, +198,31,87,33,219,26,251,17,206,9,175,0,97,242,39,227,20,224,8,234,26,243,9,244,156,239,212,232,198,229,215,237, +154,253,222,9,209,14,56,17,220,18,85,16,211,10,14,9,250,12,35,19,95,24,148,23,153,13,53,2,177,253,40,252, +47,249,200,249,172,1,31,11,194,12,204,4,151,253,70,255,212,3,55,5,71,5,176,0,28,245,107,239,3,249,174,7, +34,16,156,17,124,13,175,7,204,6,183,9,20,9,226,3,239,0,202,3,23,6,248,1,146,253,173,255,233,2,46,1, +66,252,32,246,204,241,150,245,144,1,172,14,188,21,82,17,11,5,208,253,189,255,127,4,210,9,32,13,34,9,123,2, +245,255,18,255,135,0,206,7,133,14,72,15,84,11,127,1,246,248,74,255,184,11,128,10,85,254,197,242,45,234,193,233, +174,243,94,253,55,2,197,6,80,9,171,7,192,4,148,2,150,5,83,14,89,17,202,10,175,2,11,249,72,241,3,248, +6,2,233,248,213,231,19,227,90,230,39,240,26,4,140,16,71,11,152,7,21,14,176,17,9,15,156,9,109,0,96,250, +32,253,247,253,199,246,71,242,121,245,183,248,86,249,4,252,15,1,70,5,142,9,117,14,219,14,174,9,177,5,179,3, +195,255,203,255,177,7,109,10,38,255,202,240,175,234,223,237,84,248,88,2,70,2,160,252,63,252,224,254,168,255,38,5, +92,16,192,19,228,10,161,1,87,253,128,251,22,1,158,13,72,17,235,6,146,250,69,240,193,231,67,234,113,246,185,253, +78,0,190,5,75,7,55,2,235,1,9,9,86,15,117,17,69,15,188,9,126,4,154,255,164,250,81,249,203,249,117,248, +81,251,184,3,49,7,59,3,0,254,223,248,54,246,15,248,5,248,240,246,161,254,57,9,116,10,150,7,167,5,18,255, +248,249,8,255,167,3,210,1,251,4,181,11,10,10,198,6,168,10,20,11,70,3,22,253,119,248,41,241,254,238,154,244, +119,250,42,1,244,8,204,8,249,2,102,1,25,255,44,248,143,246,156,250,152,253,139,4,128,13,183,11,169,5,166,8, +179,11,143,6,88,2,127,0,116,250,189,244,175,244,11,247,97,250,192,254,162,0,238,253,114,248,101,245,188,249,239,1, +194,6,255,7,234,7,236,6,191,5,56,3,33,2,230,9,179,18,161,13,234,2,36,255,255,250,102,247,94,255,94,7, +183,3,24,1,125,0,41,245,19,235,108,242,25,0,114,7,195,8,23,3,180,250,51,250,186,1,94,9,140,10,0,4, +99,0,116,6,54,9,216,3,41,4,25,8,183,2,81,251,53,250,41,248,252,246,191,253,171,3,128,2,140,1,171,0, +86,251,214,249,243,2,255,12,160,13,9,8,147,3,60,1,108,0,177,2,69,5,201,3,124,1,195,1,131,1,113,1, +143,3,174,0,248,246,174,243,47,253,33,8,165,9,125,3,235,252,44,247,107,240,186,240,22,255,231,13,200,15,246,11, +30,6,132,249,126,241,70,248,161,1,138,6,57,12,71,11,180,254,175,245,116,247,244,249,116,250,182,252,225,252,182,247, +83,243,75,247,198,0,8,5,9,3,25,3,64,4,197,2,139,4,218,8,38,8,18,7,91,8,12,3,43,251,156,251, +128,253,23,251,20,251,137,249,217,239,85,232,170,235,36,246,203,3,51,14,72,14,75,7,246,254,28,249,172,251,209,1, +135,0,192,254,240,4,175,7,73,2,215,255,55,0,28,253,58,250,115,248,108,246,126,250,80,2,175,1,76,251,87,251, +45,1,254,4,22,4,82,255,187,249,154,247,169,250,231,255,114,1,224,254,234,253,222,252,149,246,157,243,215,251,178,4, +52,6,17,5,148,255,132,245,47,245,79,0,248,4,208,0,249,255,150,254,123,245,176,239,227,244,141,251,38,254,136,0, +56,1,50,253,30,249,186,249,119,254,67,4,248,4,84,253,242,245,250,248,36,3,247,9,71,8,244,255,169,246,225,240, +240,239,145,244,250,251,62,0,31,2,58,4,175,1,28,252,230,252,113,255,141,252,146,253,227,2,177,254,201,246,104,247, +36,247,191,243,183,250,93,5,17,6,51,5,172,6,254,255,53,244,66,237,212,236,186,246,84,7,11,13,237,5,137,0, +45,254,129,249,70,245,8,242,55,241,144,249,40,6,183,10,73,7,193,0,202,249,7,250,173,2,32,7,145,1,157,249, +241,244,117,245,125,252,115,4,113,5,202,1,30,1,49,3,248,2,60,0,182,251,164,244,99,242,160,252,207,8,99,10, +222,7,145,6,186,0,181,252,243,4,255,15,3,18,164,12,90,2,236,248,212,249,210,254,140,253,29,255,50,12,124,27, +140,34,217,28,31,11,141,250,47,247,100,252,83,2,142,6,140,7,35,10,224,19,228,27,171,22,1,8,163,252,47,253, +13,6,211,10,43,8,177,4,227,2,0,7,131,21,60,31,140,19,37,255,210,244,99,243,163,245,198,249,69,252,138,255, +207,4,41,3,151,251,193,251,228,3,47,9,90,9,235,6,255,2,89,255,42,252,211,250,56,255,100,6,213,7,29,0, +129,243,111,237,10,245,189,254,214,254,63,252,238,249,65,242,93,241,190,1,200,14,168,9,175,3,207,6,47,7,73,3, +121,3,86,3,145,252,59,247,158,250,237,254,126,252,5,250,21,254,159,2,68,2,138,255,135,251,59,248,185,251,32,4, +217,8,111,8,90,6,154,5,55,9,199,12,199,7,211,253,110,247,246,243,25,244,201,251,35,4,109,4,235,0,56,255, +97,253,234,251,176,255,14,7,150,7,184,252,169,242,18,245,69,253,201,3,217,11,190,14,102,1,253,240,102,240,35,249, +8,255,151,2,253,0,7,248,58,244,202,251,195,3,162,8,80,13,248,6,45,243,44,234,183,246,74,3,207,4,237,4, +40,2,10,250,88,250,188,2,156,3,143,2,230,7,95,3,241,241,106,233,142,237,163,245,216,5,25,21,250,13,26,250, +148,242,62,247,83,255,167,9,70,13,8,4,164,249,79,247,108,250,215,2,251,13,255,14,15,2,211,246,80,248,198,252, +104,251,67,252,202,2,242,3,238,254,115,255,116,4,220,3,184,253,249,247,137,247,134,254,220,5,217,6,118,6,42,6, +241,255,43,248,214,246,217,249,250,255,45,8,34,8,187,253,77,246,246,247,196,253,24,5,56,10,198,5,183,247,129,235, +204,237,34,252,59,7,238,10,230,12,212,6,231,245,34,236,25,242,124,251,77,3,195,8,181,1,79,241,235,235,48,249, +129,14,231,28,252,25,75,11,144,0,155,253,171,251,169,246,167,237,231,228,26,226,110,226,49,229,211,240,175,0,152,10, +155,15,215,14,37,5,89,254,188,2,53,8,186,9,249,9,225,6,179,5,212,11,247,12,212,3,64,252,237,244,107,231, +212,223,252,228,98,237,78,246,226,254,57,0,192,255,184,6,130,13,48,13,252,10,118,6,74,252,142,245,146,251,171,7, +129,12,218,7,177,2,176,1,217,1,19,3,142,5,81,4,16,255,111,249,209,241,200,234,48,236,4,243,62,249,200,1, +172,8,8,5,62,255,32,3,90,9,131,7,101,0,188,250,208,249,35,253,14,1,36,3,10,3,201,1,36,3,187,7, +211,10,36,10,97,4,16,249,183,241,180,243,5,242,129,233,192,235,56,250,216,3,112,6,72,8,89,6,81,1,36,255, +97,255,242,1,158,7,78,9,7,3,14,252,87,251,91,1,3,8,210,6,16,1,4,0,175,254,78,248,27,249,183,3, +142,8,189,5,147,4,176,255,6,244,82,241,24,253,83,7,34,8,226,6,53,5,140,255,185,250,199,253,135,6,206,12, +31,11,236,3,184,254,227,252,117,250,105,250,141,255,151,1,19,255,242,2,233,9,126,7,121,2,238,2,112,254,157,245, +70,247,87,253,75,251,148,252,63,8,232,13,204,7,206,2,83,2,12,1,155,0,53,3,115,6,231,8,18,9,150,5, +232,1,100,0,99,253,137,250,218,255,133,8,130,6,31,254,232,253,0,1,249,254,157,2,85,14,5,17,169,9,104,5, +184,0,239,247,154,246,37,251,109,249,109,248,95,0,150,5,255,2,87,3,49,7,172,5,55,0,90,254,60,1,40,5, +166,7,140,9,65,12,144,14,43,14,207,9,245,1,182,249,223,244,249,244,14,248,197,247,60,240,80,233,85,237,159,250, +52,8,55,15,76,14,193,11,195,11,19,9,169,4,79,6,140,7,19,255,22,246,60,245,246,247,88,252,233,0,64,1, +105,2,210,5,119,0,127,246,217,245,69,247,166,243,106,245,15,249,57,244,19,244,226,255,213,6,32,6,232,7,182,4, +47,249,35,247,107,3,219,12,242,10,231,3,242,251,21,244,36,242,99,251,114,7,8,8,85,254,17,245,128,238,145,237, +64,249,197,8,142,11,218,3,99,254,122,254,233,0,75,2,90,2,67,5,157,9,93,8,119,3,97,1,45,1,163,1, +2,3,61,1,64,253,246,253,248,1,191,3,40,4,228,2,205,252,56,245,246,242,190,247,206,255,78,6,103,9,246,7, +155,0,234,249,122,252,74,3,145,6,158,7,191,3,242,249,96,248,210,2,136,9,102,9,115,7,126,252,174,239,57,246, +109,6,137,8,127,3,166,3,83,1,87,252,166,252,252,251,115,247,107,250,149,3,116,4,178,253,182,251,61,255,47,1, +30,2,218,2,30,252,11,241,87,244,54,7,26,19,81,17,174,14,85,10,123,254,144,246,181,248,21,250,181,248,119,250, +140,249,182,243,122,245,233,0,72,8,26,8,164,7,3,6,25,1,41,0,87,4,166,3,236,253,205,253,45,3,21,6, +33,7,143,8,251,6,27,3,198,254,136,245,45,235,223,237,78,252,101,5,139,4,139,2,247,2,107,5,96,9,28,8, +251,252,29,240,176,234,160,237,166,248,187,7,194,14,36,10,204,4,20,3,99,255,15,252,95,253,22,253,254,249,154,251, +33,253,165,247,34,249,144,10,18,24,73,19,185,7,85,253,44,242,92,237,243,242,220,248,159,251,150,0,63,4,157,2, +235,0,40,0,117,253,242,252,227,255,232,0,14,1,213,1,244,252,5,246,80,250,243,5,172,10,55,10,105,9,41,1, +229,244,86,244,138,252,52,254,142,251,93,253,5,255,59,252,172,249,111,249,237,249,138,250,173,250,49,251,238,251,173,251, +182,1,65,18,164,27,165,16,167,1,226,253,147,0,2,7,244,13,136,8,89,249,166,242,170,245,150,247,136,247,46,246, +163,241,59,239,171,244,104,0,164,13,150,19,55,11,105,252,188,245,104,249,230,255,19,6,33,13,112,17,30,14,255,6, +148,0,158,248,0,245,71,255,90,10,123,4,12,248,28,243,198,241,140,247,211,9,126,20,22,8,31,247,169,242,89,244, +201,247,30,255,86,3,209,255,242,255,87,11,131,20,94,14,182,1,238,250,96,248,181,248,132,253,18,255,27,252,155,1, +7,12,221,7,130,248,204,241,119,245,219,250,103,1,71,7,135,6,146,0,158,252,43,254,201,2,161,5,218,4,80,2, +143,255,197,253,35,254,209,255,96,2,40,6,123,7,238,3,220,0,126,0,78,252,100,243,41,237,255,235,35,238,175,243, +200,248,238,249,198,253,253,6,146,8,123,250,40,232,75,224,106,230,226,243,49,253,24,253,59,251,73,0,200,8,7,9, +53,252,135,236,145,230,75,234,255,242,59,254,184,2,21,250,227,240,223,242,251,248,95,251,76,250,75,245,173,240,179,244, +108,254,51,5,253,7,0,8,113,5,155,2,122,255,207,251,72,253,77,6,245,14,251,15,38,10,238,0,191,247,219,243, +126,248,203,1,214,9,119,13,120,8,24,252,118,246,229,252,179,0,96,253,156,253,239,253,216,248,118,251,102,7,232,10, +81,5,32,2,91,255,196,252,168,0,93,3,41,252,214,244,45,246,214,249,32,250,21,250,198,252,115,0,213,1,227,255, +221,251,162,248,27,249,164,251,185,252,1,254,37,1,52,3,23,4,87,5,96,4,152,1,47,0,92,253,178,247,163,245, +2,251,96,4,204,11,53,12,2,6,239,253,241,247,253,247,220,252,101,254,17,253,250,254,189,253,76,246,89,245,134,252, +38,0,200,255,194,254,216,252,229,0,239,9,170,10,80,6,76,7,91,4,236,248,16,243,243,244,26,246,182,249,29,0, +139,255,195,250,68,253,240,3,118,4,19,0,45,253,139,251,152,250,212,253,156,3,150,6,103,8,192,10,208,8,231,3, +175,2,242,2,20,1,91,0,214,255,97,252,144,250,71,252,240,251,68,249,15,248,4,247,125,245,231,247,89,255,154,5, +250,5,56,5,25,9,96,12,53,8,135,2,15,3,41,5,159,2,151,254,245,251,36,248,199,245,27,251,83,2,74,0, +15,249,109,247,111,250,159,254,50,6,240,13,221,14,61,9,64,2,30,255,239,0,121,2,43,3,73,7,108,8,233,255, +189,246,150,243,88,243,178,248,2,3,152,5,97,253,201,245,248,245,209,251,45,1,15,3,44,4,217,1,225,249,42,249, +164,3,241,7,156,3,24,3,36,1,201,248,168,246,205,253,114,6,154,13,145,11,4,254,209,244,200,245,85,247,232,250, +26,2,93,2,189,251,148,248,61,250,243,254,4,6,98,9,104,5,172,254,111,251,102,254,185,3,95,6,74,7,24,6, +179,0,11,252,82,249,26,243,79,240,48,250,110,6,64,9,227,5,151,0,187,250,190,247,219,248,21,254,73,5,178,6, +154,1,7,255,244,255,94,255,127,254,169,253,202,250,96,249,162,251,145,254,74,1,254,2,33,1,167,253,235,251,76,251, +167,251,191,254,241,3,82,8,150,9,142,7,251,2,166,252,146,247,89,247,123,251,254,0,64,5,244,6,237,8,84,12, +31,10,248,255,28,248,169,248,131,252,202,255,93,3,178,6,20,6,47,0,48,252,8,0,144,4,91,3,73,0,146,251, +192,244,99,244,126,251,177,0,88,2,173,1,24,254,193,254,120,4,99,3,193,252,56,251,102,251,4,250,105,254,165,7, +162,12,161,9,151,0,218,248,239,247,33,249,152,250,157,0,208,5,176,3,206,255,249,253,4,252,18,251,21,251,29,251, +137,254,194,3,148,4,189,1,71,254,29,251,107,251,107,254,229,254,15,255,231,3,216,8,195,5,120,251,42,243,88,242, +52,246,84,253,110,5,252,3,40,249,28,245,150,249,111,252,184,1,169,8,238,1,112,244,115,247,150,6,9,12,253,3, +115,250,251,249,48,1,241,3,28,254,160,248,66,248,224,250,128,255,32,3,43,1,179,250,158,245,59,246,148,250,52,254, +122,1,91,4,192,2,9,255,140,254,212,253,143,250,249,249,62,253,184,1,65,5,83,2,65,248,51,240,201,238,254,240, +103,245,90,251,24,1,38,4,73,2,201,255,5,0,18,252,40,245,218,246,176,252,162,253,68,0,70,3,81,255,102,1, +137,14,105,18,213,9,3,3,177,250,181,238,86,236,250,243,35,252,160,5,17,15,90,17,155,13,253,7,3,2,53,255, +92,255,228,252,66,248,85,248,251,254,227,5,252,7,141,7,119,5,203,254,251,248,131,251,57,0,33,0,89,255,244,254, +143,251,129,248,4,249,135,250,214,251,19,254,104,2,190,7,59,8,187,2,175,254,231,253,30,253,117,254,113,0,68,254, +176,253,214,1,63,0,202,248,183,249,78,4,91,13,78,17,219,16,98,10,6,2,131,254,38,253,125,249,36,249,108,255, +31,3,50,255,255,250,244,250,44,253,216,0,245,2,120,0,33,253,242,251,29,252,59,255,86,4,19,7,132,7,66,4, +131,250,140,243,97,249,40,4,229,7,67,4,208,253,103,247,161,243,29,247,53,3,177,11,17,5,223,249,253,246,206,249, +232,2,10,17,7,19,193,6,236,254,160,252,230,248,191,252,49,6,21,6,243,0,112,1,89,2,131,1,226,4,147,10, +145,11,108,4,209,247,168,237,102,235,199,243,121,6,221,20,248,15,137,1,198,249,226,249,118,0,207,9,127,11,236,5, +29,1,195,252,132,250,214,253,222,255,15,254,102,254,29,255,92,255,71,3,176,3,4,252,236,247,49,250,172,250,113,253, +222,6,131,12,67,7,208,253,213,249,12,253,138,255,28,253,42,252,255,253,155,252,159,249,177,249,222,251,13,255,179,0, +100,253,199,249,119,251,41,0,195,4,245,5,140,0,192,250,131,250,85,250,180,249,126,255,112,6,126,5,69,0,165,251, +73,249,227,254,30,9,51,9,97,255,200,250,117,252,146,251,88,252,94,4,211,9,123,4,32,251,85,246,149,247,1,252, +29,255,0,1,80,4,172,3,224,250,173,242,28,241,84,242,107,247,170,1,42,8,115,6,107,2,136,255,224,254,107,2, +98,6,201,3,99,250,192,242,116,245,225,253,53,0,124,253,191,252,153,251,87,250,112,253,104,254,194,250,116,254,51,8, +69,8,248,255,140,252,58,254,41,254,249,252,185,254,34,2,148,2,20,0,253,252,157,248,138,245,232,246,55,247,71,246, +153,252,116,4,86,4,7,5,241,8,217,3,183,250,15,250,227,251,158,251,54,254,119,255,106,251,20,248,48,249,194,0, +104,12,121,13,74,0,218,245,42,244,21,243,64,244,93,251,226,2,54,7,204,8,27,7,34,2,29,250,18,243,13,244, +131,250,23,255,154,2,192,3,120,253,87,247,77,250,249,254,185,254,40,255,113,2,19,4,33,3,211,0,39,253,115,250, +121,251,73,253,251,251,206,251,255,0,59,4,159,255,69,250,229,249,187,252,72,1,245,1,239,250,168,248,117,2,45,8, +97,1,151,251,206,251,163,250,76,250,4,0,125,6,78,7,65,3,216,253,47,249,206,246,58,249,192,255,198,3,215,2, +150,3,208,8,158,11,121,7,207,0,188,252,66,250,222,247,77,249,23,0,84,6,21,8,241,6,105,3,222,254,131,253, +95,255,175,0,214,255,5,254,235,254,127,3,177,5,128,3,253,1,87,255,31,248,216,243,191,246,36,251,39,1,69,10, +204,13,198,7,153,0,9,253,132,250,8,249,169,250,189,253,161,254,253,253,34,0,239,4,110,8,248,9,214,8,112,2, +47,250,132,246,60,248,166,253,194,3,224,4,22,1,120,254,126,254,98,255,42,0,244,253,235,249,177,250,120,254,32,253, +72,249,201,250,137,255,109,2,197,4,127,5,252,254,238,244,225,241,31,245,71,248,130,254,170,7,72,9,210,3,219,0, +84,254,116,250,33,254,206,6,97,7,127,1,231,254,55,255,101,255,165,1,101,7,244,12,53,12,52,4,1,250,9,241, +205,237,206,246,229,4,78,8,228,1,181,252,221,249,52,249,89,0,12,13,194,18,229,9,1,251,222,245,205,251,137,1, +102,4,252,5,116,2,73,254,198,255,198,252,132,242,211,243,112,3,103,11,172,4,155,252,191,249,129,250,19,1,126,12, +123,16,85,4,185,244,12,244,63,255,11,7,222,6,238,1,52,252,181,251,229,1,175,8,16,9,223,255,179,244,74,244, +120,251,228,255,173,5,134,12,186,7,68,254,222,0,144,5,70,255,158,248,170,248,44,250,39,254,233,2,171,1,191,0, +106,6,113,8,196,1,5,251,128,247,30,246,235,249,66,1,240,5,136,6,10,3,216,252,41,252,48,4,126,9,254,2, +83,247,224,240,69,242,154,249,225,3,11,12,236,12,34,6,107,253,4,249,181,249,254,251,26,252,60,249,189,247,39,251, +62,255,97,0,63,2,128,4,120,1,57,252,69,251,235,251,2,252,130,254,182,254,117,247,92,243,49,252,109,6,147,4, +119,254,219,255,85,2,16,254,193,251,101,1,128,5,107,3,207,1,138,2,107,2,225,0,133,254,179,254,120,3,168,5, +96,1,97,253,140,251,210,250,41,0,195,6,177,3,173,253,174,253,166,252,204,249,150,253,161,3,114,4,78,3,149,2, +193,1,96,1,191,253,17,246,32,242,246,245,180,254,111,6,154,4,89,251,56,248,141,251,73,252,153,253,138,1,229,255, +205,249,158,246,209,245,106,248,122,255,179,2,190,0,20,3,88,8,121,8,128,6,129,7,190,8,24,7,176,1,36,249, +144,243,193,248,115,6,147,14,152,7,103,250,227,244,247,246,118,250,20,254,217,255,118,255,92,2,218,6,190,4,252,254, +166,253,31,254,108,252,69,252,42,255,211,0,149,255,127,255,124,4,51,10,90,7,100,252,246,243,97,243,35,247,201,250, +183,251,125,251,160,255,105,8,202,14,241,13,69,7,150,255,87,251,171,249,37,248,157,250,40,3,57,10,130,11,204,11, +51,11,109,4,251,249,223,244,103,249,206,2,58,7,188,2,58,252,151,250,190,253,87,3,17,7,125,3,5,250,177,241, +149,239,114,246,33,4,81,15,152,17,65,13,61,7,214,3,23,3,60,255,124,248,109,246,71,248,101,248,50,249,191,251, +234,251,71,252,31,255,51,254,193,249,172,249,132,253,244,0,192,3,11,3,39,254,255,253,19,7,135,16,142,16,50,6, +102,248,52,240,229,240,216,248,242,5,238,16,169,15,39,3,140,246,80,242,226,249,145,9,249,18,111,12,187,255,32,250, +52,251,242,254,8,5,209,7,71,1,61,248,209,245,106,247,19,249,7,253,35,2,4,5,107,7,221,8,59,4,57,251, +14,246,164,248,56,0,162,6,161,8,121,9,3,9,144,1,104,248,66,249,36,0,84,3,193,5,76,8,242,2,6,248, +41,242,188,243,243,250,162,4,240,7,201,2,254,253,91,252,142,252,123,3,127,13,167,12,152,1,100,248,42,243,19,243, +122,254,73,13,77,15,188,6,52,255,111,250,91,249,183,254,102,3,127,0,144,251,114,249,75,248,86,249,91,252,140,251, +60,249,8,254,154,6,21,9,160,5,85,1,2,254,165,252,198,251,27,249,128,249,228,255,241,2,183,254,113,254,251,4, +113,6,194,0,15,253,53,252,53,252,152,1,5,9,53,7,138,254,163,249,46,247,127,244,187,248,178,2,192,6,151,4, +224,2,71,255,141,249,158,248,171,250,158,249,187,248,157,250,174,252,191,1,80,11,188,18,6,21,128,17,20,4,143,244, +205,242,79,252,109,5,43,14,189,17,109,4,195,241,121,240,187,250,240,252,210,248,89,248,67,249,99,250,145,1,20,12, +67,16,28,13,214,7,51,2,169,253,70,253,224,255,51,2,114,4,190,6,62,6,11,1,156,248,112,242,181,244,159,252, +42,0,183,253,152,252,249,254,241,0,18,0,18,252,225,247,78,249,110,0,192,5,68,4,158,254,241,250,52,253,167,3, +207,8,159,8,89,2,203,249,50,246,237,249,191,255,61,3,69,3,112,254,58,247,63,245,41,251,233,3,220,10,57,13, +198,7,22,253,129,247,253,251,0,3,88,6,179,9,59,13,74,9,131,255,242,250,34,252,222,251,31,251,227,251,233,249, +7,247,196,249,54,255,179,1,111,2,51,1,238,251,152,246,53,245,68,248,16,2,56,15,88,19,94,11,62,2,115,254, +177,253,93,254,180,254,52,251,8,245,243,242,57,249,128,2,30,5,144,1,111,0,37,1,81,253,128,248,148,248,32,251, +15,255,80,6,41,12,2,12,46,9,129,5,114,255,20,251,155,253,254,3,16,7,63,3,128,251,59,248,218,252,67,255, +129,246,24,237,175,242,145,2,40,12,226,10,69,4,43,252,22,247,20,249,65,255,93,5,115,10,251,11,33,9,116,6, +224,4,167,0,213,249,255,241,145,235,178,238,125,252,74,5,240,255,97,249,249,252,28,3,29,2,163,252,254,248,157,248, +154,251,179,1,147,5,255,1,121,252,220,254,210,7,81,12,65,5,92,246,220,235,53,239,142,251,118,4,115,5,16,2, +211,253,113,251,5,253,248,1,66,7,223,8,21,5,201,254,55,249,228,245,182,247,238,253,53,1,169,0,230,3,180,9, +220,9,26,6,121,3,45,255,106,249,245,247,186,249,229,251,193,1,64,9,139,10,96,6,23,0,157,244,117,232,80,232, +159,242,27,250,238,252,217,1,194,7,64,9,45,6,209,1,105,254,212,251,124,249,216,249,249,254,171,4,24,6,207,4, +113,3,177,1,239,0,64,2,114,1,162,252,248,249,160,252,219,254,250,253,226,254,198,2,224,4,145,3,161,0,236,252, +104,251,169,255,216,5,234,6,184,3,15,1,206,254,228,252,138,255,83,6,249,9,104,7,35,2,171,252,146,248,185,248, +122,252,143,255,248,255,7,254,100,251,223,251,182,255,220,1,30,1,24,0,189,253,103,250,42,251,61,0,185,5,210,10, +211,11,165,3,22,249,56,246,130,248,173,251,4,2,106,7,230,4,35,0,144,0,61,1,214,253,76,251,219,251,244,251, +247,250,254,250,174,252,104,0,118,5,223,7,66,4,166,252,58,247,15,249,69,1,60,9,208,10,211,5,154,254,201,248, +99,245,133,245,198,250,29,2,147,4,119,1,181,255,5,2,216,3,216,1,34,252,228,244,121,242,61,249,180,2,66,6, +190,5,207,6,71,8,194,5,179,254,146,247,117,247,49,1,162,13,170,17,35,10,139,254,221,247,6,247,229,246,13,246, +88,248,107,255,156,7,182,11,78,9,53,3,102,254,14,252,38,251,125,252,120,254,201,252,224,249,231,252,212,4,39,10, +185,9,76,4,179,252,69,250,76,0,146,5,110,1,233,248,55,245,57,248,66,255,40,6,227,7,193,3,226,253,186,248, +104,245,254,246,42,253,112,2,5,5,81,7,81,7,65,3,117,1,237,4,15,6,143,2,22,1,1,0,68,250,9,248, +39,255,214,4,47,4,68,5,102,5,134,253,58,248,33,254,174,3,225,1,37,0,12,0,139,255,130,2,196,5,56,2, +191,253,96,253,202,249,158,244,165,248,140,1,246,4,192,5,118,6,114,2,42,253,166,254,199,5,90,12,157,12,41,4, +120,250,219,246,238,244,9,244,4,251,205,2,145,0,14,254,20,3,232,2,107,251,131,252,238,5,113,9,220,6,36,5, +245,3,223,2,160,2,235,2,170,6,84,11,118,6,221,250,31,246,116,246,31,244,122,245,52,253,129,2,16,6,29,11, +247,7,126,252,202,248,47,254,17,1,168,2,254,4,86,0,214,249,119,254,254,6,231,6,57,3,125,255,113,246,108,240, +209,249,164,8,167,12,30,8,215,3,78,1,151,0,126,1,186,1,98,2,48,5,109,6,177,3,229,255,223,252,63,252, +232,0,184,6,166,5,64,255,140,249,108,244,36,241,155,244,238,251,10,1,204,5,135,10,223,8,141,2,203,0,237,2, +167,0,226,248,64,242,205,243,145,254,192,9,78,12,41,8,225,2,108,254,75,254,234,2,219,3,118,254,202,250,43,250, +111,248,150,250,182,3,65,10,120,9,217,7,109,7,57,5,55,2,145,255,89,253,204,253,103,255,144,253,154,250,164,251, +171,255,153,3,144,4,64,0,98,252,81,0,142,6,110,8,153,10,17,12,194,3,167,247,69,245,241,248,245,249,103,251, +82,254,127,253,164,251,134,254,65,3,203,4,198,2,26,0,28,1,24,5,6,6,50,4,217,3,240,1,31,254,224,0, +195,8,79,10,185,5,105,1,124,250,205,240,235,236,243,239,0,245,44,253,9,7,54,10,119,5,180,255,165,252,138,253, +112,3,27,10,197,10,112,4,21,253,56,252,65,2,46,7,66,7,97,6,40,3,125,250,12,245,220,249,130,0,65,3, +8,7,77,9,16,4,48,255,180,1,193,2,145,253,201,251,28,1,149,5,254,5,196,5,169,4,50,0,66,250,0,247, +206,247,60,251,125,255,239,2,152,3,34,1,60,255,31,2,179,7,88,8,243,0,204,247,253,243,99,245,136,249,173,0, +32,8,132,9,198,4,196,255,146,251,31,247,229,246,39,252,43,255,11,253,49,252,227,254,230,1,180,4,127,5,6,1, +173,252,64,255,156,2,180,254,39,248,140,246,120,250,173,1,222,6,141,2,132,247,145,242,238,247,190,255,81,4,90,5, +119,3,193,2,72,6,103,7,138,1,167,253,177,0,151,1,146,253,81,252,59,253,142,251,241,251,130,1,227,6,38,9, +47,7,73,254,171,243,137,240,224,243,165,248,174,254,72,4,110,7,121,11,214,15,40,13,246,2,180,249,19,247,0,250, +115,253,234,253,245,254,40,3,109,3,163,253,202,252,35,3,197,5,39,5,33,8,193,6,120,253,136,251,14,4,34,8, +96,7,225,10,10,13,135,7,87,255,63,249,1,251,9,7,193,13,238,3,180,248,72,247,229,247,89,250,44,2,91,5, +34,1,206,255,161,255,143,250,91,249,35,1,206,8,1,12,167,12,14,9,49,3,83,0,244,253,128,250,254,252,210,4, +81,7,141,3,142,255,39,249,227,240,192,240,180,248,185,254,138,2,0,7,10,7,20,3,11,2,186,2,11,2,164,3, +51,8,135,11,83,11,210,6,2,1,138,255,182,0,4,0,98,0,228,2,190,1,242,251,108,246,37,245,139,250,36,3, +72,6,148,3,70,2,145,3,130,4,249,5,249,7,222,6,238,2,70,2,111,6,193,7,23,3,171,0,76,3,36,3, +201,255,166,255,81,0,43,254,185,254,182,3,221,5,241,2,70,1,10,4,67,6,70,4,61,3,12,7,201,9,137,7, +32,4,143,255,71,247,196,239,242,237,175,241,229,250,108,6,91,12,50,11,100,9,185,9,253,8,213,5,179,3,82,4, +207,2,194,252,193,249,246,253,13,1,248,253,59,251,248,251,54,251,183,249,175,253,16,3,69,0,142,250,93,253,121,3, +164,4,191,8,184,18,206,21,37,15,253,6,17,253,214,242,189,242,16,253,139,8,236,15,70,13,110,255,206,243,237,241, +94,241,26,240,127,242,203,243,144,243,216,250,52,6,15,11,24,13,141,16,97,13,34,3,198,252,231,252,7,0,46,6, +90,10,176,6,0,2,104,1,201,252,9,243,89,237,87,234,158,229,145,231,238,243,217,0,107,10,117,19,22,23,139,16, +82,5,184,253,155,254,77,6,190,10,96,6,179,1,21,4,173,8,31,10,51,9,229,5,53,255,134,247,182,241,87,238, +42,238,114,242,240,249,1,1,206,5,19,10,183,13,191,11,212,3,235,255,115,5,128,10,106,5,174,251,212,247,190,251, +97,2,98,6,89,4,94,252,231,244,88,247,155,2,195,8,250,3,217,254,80,255,211,255,63,0,237,3,17,5,87,255, +178,249,237,249,47,254,131,4,31,11,182,12,201,5,195,250,187,243,123,243,185,247,92,255,40,8,132,11,141,7,77,3, +84,3,102,4,199,3,130,3,217,4,191,3,93,252,0,244,58,244,101,253,166,6,145,8,13,3,124,252,246,249,106,249, +215,249,211,254,26,5,115,5,47,3,77,4,104,5,62,4,145,4,239,3,158,252,72,244,38,245,34,252,221,254,101,254, +211,1,197,5,249,3,185,255,87,253,20,254,155,4,68,11,218,5,126,249,63,247,64,255,109,5,3,6,51,3,19,0, +203,0,246,3,5,5,35,5,116,5,218,2,25,254,84,250,186,246,150,244,187,248,224,0,144,4,140,2,211,0,132,0, +60,255,0,1,252,7,196,10,64,5,248,1,208,2,161,252,182,242,141,243,168,251,19,254,141,253,155,0,177,1,215,254, +243,255,86,4,234,3,62,1,118,2,192,3,175,2,156,3,66,4,248,0,18,1,89,7,82,8,49,0,106,250,159,252, +201,255,92,253,114,246,113,241,197,242,9,247,192,249,128,252,69,0,115,2,29,4,59,7,226,7,204,3,102,255,254,252, +130,251,121,252,160,255,107,1,141,2,19,4,230,1,218,252,113,250,61,248,162,243,215,243,128,251,139,3,171,8,28,10, +112,5,82,255,11,254,146,253,69,250,244,248,67,251,8,254,214,1,163,6,125,7,21,4,137,3,235,6,113,5,31,253, +10,247,50,246,213,246,30,251,151,2,236,4,197,2,139,2,154,0,123,251,198,250,195,253,73,254,94,254,236,255,109,1, +228,4,231,8,177,7,0,3,60,0,249,253,71,248,218,241,28,244,203,0,193,9,115,7,158,5,30,8,245,3,76,251, +63,251,70,2,82,4,39,254,68,248,50,250,251,255,152,4,0,11,95,15,76,9,129,0,216,254,202,254,137,254,202,2, +204,5,198,2,145,255,220,255,212,3,83,8,70,5,181,253,129,252,5,254,223,252,15,255,60,2,246,255,106,255,128,4, +104,8,219,9,72,9,9,5,43,2,55,3,218,2,209,0,59,0,127,0,166,0,155,254,159,251,36,255,86,6,73,6, +86,1,10,254,32,251,23,252,223,3,67,9,250,5,109,254,86,250,204,255,89,7,182,3,111,252,50,254,254,1,246,2, +91,5,136,4,114,0,17,0,194,252,152,245,78,249,66,3,143,4,41,5,101,10,116,7,26,255,211,0,21,8,19,7, +190,1,82,3,25,6,10,255,147,248,56,254,34,1,154,250,165,252,218,4,73,2,179,255,122,5,38,3,80,251,220,255, +46,9,71,10,64,7,31,2,171,251,39,251,115,255,254,0,186,255,90,255,122,1,230,4,190,7,131,10,36,8,167,250, +121,239,27,245,117,255,230,1,225,1,68,0,246,251,176,251,11,251,208,243,38,243,37,255,112,8,75,8,97,6,33,5, +40,2,70,254,142,252,105,253,221,252,157,250,104,249,104,246,142,245,11,2,253,16,120,14,176,3,231,255,95,252,189,246, +132,246,222,247,226,248,231,0,30,11,207,11,4,4,95,252,158,250,86,252,250,248,64,242,14,244,173,254,241,6,73,7, +157,1,216,250,168,247,242,248,214,253,16,3,208,2,12,255,223,254,119,0,60,0,45,1,222,2,122,2,250,0,156,252, +20,246,255,245,116,252,11,1,88,4,72,7,110,3,237,252,76,255,215,6,81,8,28,5,70,4,49,4,44,1,205,255, +192,2,23,2,120,252,220,252,46,2,118,255,147,247,123,247,164,254,247,5,5,11,154,10,248,2,117,249,219,244,239,247, +209,255,132,5,168,5,169,2,129,255,14,255,243,1,195,2,134,254,153,251,72,253,13,252,67,245,38,244,119,254,161,8, +193,10,175,10,238,7,187,253,160,247,34,255,147,6,29,4,58,1,168,1,114,0,167,0,2,4,98,3,112,253,206,247, +56,244,78,243,233,247,164,0,223,7,233,10,244,9,39,5,230,0,202,3,48,9,103,6,166,255,140,255,137,1,162,254, +247,252,210,0,1,5,63,5,166,0,101,250,11,249,166,252,198,0,148,4,33,4,102,252,245,247,131,254,18,6,19,7, +160,5,63,2,123,251,7,248,33,254,246,8,244,13,243,8,106,255,21,248,249,245,27,249,248,252,108,254,64,1,197,3, +155,254,54,248,136,251,57,2,228,3,3,4,212,2,44,254,174,252,58,1,35,4,158,1,195,253,216,252,78,0,190,5, +92,7,67,0,64,243,0,236,198,240,153,250,252,3,10,11,245,7,85,253,206,250,185,253,62,250,110,251,219,7,143,11, +239,1,172,253,166,255,173,254,59,2,170,11,47,11,68,255,55,247,210,246,173,248,224,254,128,7,214,5,2,250,69,244, +100,248,139,253,87,3,97,8,93,4,79,253,94,255,71,4,183,3,182,2,29,3,113,3,210,5,41,4,2,250,88,244, +52,249,72,253,120,255,99,5,53,7,33,2,184,0,115,1,6,251,99,244,24,247,52,253,28,1,42,6,84,10,195,7, +204,2,120,2,72,4,246,3,174,0,153,248,119,241,24,249,87,11,115,18,48,11,121,4,78,0,125,250,247,249,71,255, +30,255,198,249,135,249,77,254,228,2,84,8,130,13,22,11,63,0,97,248,71,252,179,4,178,6,1,5,222,5,27,5, +245,255,181,252,190,253,122,255,62,0,32,254,7,249,199,247,84,253,27,3,38,5,17,5,141,4,84,6,212,8,190,3, +145,248,183,244,205,250,198,0,142,3,214,6,14,9,49,7,105,3,153,255,171,250,159,247,102,251,13,1,143,0,155,254, +103,1,64,3,223,1,160,2,119,2,213,253,164,251,50,253,22,253,46,254,188,1,77,1,191,254,118,0,190,3,190,4, +170,3,121,0,38,254,9,0,231,3,132,6,98,4,171,251,169,244,77,246,28,249,231,247,232,247,172,250,117,255,23,7, +33,12,215,10,34,8,101,4,251,252,112,247,219,247,188,249,37,249,178,247,181,250,184,3,78,11,72,12,32,8,132,254, +59,245,110,247,40,255,149,255,248,252,170,252,228,252,60,3,140,13,41,12,248,255,9,246,65,239,228,236,201,243,168,251, +62,253,246,254,36,3,202,4,177,3,84,3,21,5,7,5,200,255,68,252,79,254,110,253,186,250,207,254,149,2,1,0, +143,255,4,1,252,254,62,255,249,0,31,252,130,246,169,247,22,251,92,253,173,254,54,254,221,252,106,251,87,253,16,7, +164,15,169,13,191,9,175,7,232,255,145,249,119,252,101,252,82,244,204,239,118,243,7,252,229,3,189,3,176,255,140,0, +39,1,49,253,173,251,88,253,247,252,218,250,167,249,186,252,229,3,92,7,248,5,39,6,138,6,238,5,182,6,225,0, +33,243,187,239,41,251,161,3,24,1,195,249,202,244,211,247,81,255,135,1,241,254,165,253,223,254,17,3,150,8,136,10, +188,7,20,3,39,2,196,7,13,10,60,2,206,251,103,251,139,247,153,243,19,247,72,251,231,254,92,6,7,9,191,2, +29,254,39,254,12,254,192,253,148,252,212,250,100,253,53,4,189,10,111,13,95,8,130,254,107,249,240,249,40,251,212,253, +212,1,202,2,206,254,182,248,90,247,72,252,128,254,88,252,101,254,122,2,28,3,189,5,81,9,46,7,218,5,117,8, +189,4,229,251,161,248,52,250,137,252,87,255,50,255,254,252,53,0,220,7,160,10,26,5,249,252,2,249,250,249,36,253, +236,0,230,1,160,254,62,254,89,3,26,5,79,1,222,254,13,254,242,251,26,251,62,254,138,5,49,14,8,18,162,15, +57,11,135,5,41,254,67,249,216,249,84,253,201,253,135,249,230,248,83,1,166,9,184,10,83,9,248,6,218,0,129,251, +232,252,151,4,185,13,84,16,23,8,142,252,156,248,110,253,105,3,9,4,240,255,68,251,199,249,245,254,48,7,153,8, +154,4,1,4,44,3,81,253,46,249,147,248,231,247,70,250,30,255,219,2,235,10,76,22,164,24,188,16,8,6,193,251, +230,247,38,253,5,3,202,5,44,7,30,3,194,251,57,251,113,1,219,5,192,2,81,248,195,239,129,241,68,250,95,6, +40,20,172,26,163,21,109,11,113,0,46,250,87,253,86,255,78,248,193,244,45,252,84,5,84,9,31,7,47,0,255,249, +131,246,115,246,169,253,182,5,72,5,47,4,25,8,189,6,99,0,47,1,216,7,21,12,131,12,137,7,6,253,93,245, +82,247,36,254,48,1,82,0,207,0,206,0,133,252,101,249,24,252,238,0,50,4,88,2,224,250,32,248,188,254,79,4, +52,6,105,9,42,8,92,0,149,251,80,250,15,247,160,245,154,249,137,0,160,6,126,6,45,1,125,255,252,1,235,3, +174,7,241,12,222,12,208,5,147,251,160,244,149,247,124,0,136,4,180,0,39,250,86,250,25,5,205,11,5,3,77,249, +167,250,181,254,176,1,170,5,25,5,11,0,51,253,199,252,248,254,39,3,142,1,136,251,169,251,174,255,191,254,249,249, +69,247,127,250,105,0,12,0,89,251,51,251,243,252,128,254,204,4,187,8,146,2,95,252,1,252,88,251,216,250,48,252, +3,253,75,0,24,4,33,0,234,249,72,251,84,255,185,255,201,253,184,251,186,252,48,255,85,252,18,249,138,254,223,6, +14,11,34,12,197,6,223,252,73,251,226,0,208,255,19,249,106,247,111,251,24,255,105,255,67,254,111,254,9,255,252,0, +13,7,66,9,184,255,204,246,14,250,65,255,20,255,170,0,36,3,112,0,6,254,79,0,189,2,170,4,147,5,101,255, +93,246,92,246,250,251,71,253,59,254,23,3,103,4,241,255,62,253,227,254,160,1,255,2,162,1,111,255,112,255,1,0, +130,0,76,4,138,8,50,6,200,254,48,249,149,247,68,248,9,250,247,252,178,255,237,254,193,252,225,254,106,1,212,254, +14,255,41,6,140,7,6,255,193,249,57,253,46,1,206,255,107,251,180,250,227,255,8,3,83,255,60,251,95,249,207,246, +247,248,61,3,19,10,225,5,96,255,174,253,168,253,85,253,165,253,89,252,86,249,165,250,210,1,70,7,196,6,89,4, +150,2,138,1,9,3,116,4,71,0,27,250,77,248,153,248,248,249,38,255,27,2,164,253,151,250,235,253,48,0,208,0, +170,4,237,6,18,4,39,2,234,2,235,2,113,2,94,1,63,255,81,254,36,252,27,247,13,248,124,0,223,3,163,1, +80,5,253,12,127,15,138,12,193,4,218,249,203,245,79,252,24,4,185,7,133,8,138,3,184,248,219,243,105,252,119,7, +98,10,244,10,204,11,84,4,34,250,7,251,28,255,242,252,192,255,193,6,43,2,158,249,69,251,217,253,152,253,4,5, +176,13,185,10,72,0,62,247,253,246,219,2,153,12,211,7,225,255,208,253,189,251,205,249,120,250,12,251,206,254,59,4, +117,255,44,244,249,241,217,248,118,0,206,4,158,3,62,4,137,13,17,16,4,1,119,244,205,248,92,0,2,1,13,255, +242,251,241,247,205,246,7,249,14,253,84,1,118,1,105,253,38,254,220,7,184,16,45,14,196,3,113,252,195,249,115,245, +198,241,70,247,180,1,66,3,244,251,185,248,134,251,212,250,109,247,121,251,19,6,115,12,156,10,192,3,111,251,78,247, +18,251,199,255,161,253,138,250,57,254,0,2,68,255,83,254,34,5,252,10,127,8,35,1,122,252,75,0,141,7,182,4, +133,249,188,245,25,250,129,252,45,253,234,253,101,253,245,255,114,3,196,254,184,248,255,251,39,0,182,253,175,251,84,253, +112,0,101,3,88,0,177,248,93,249,89,1,31,2,77,252,24,251,210,254,113,2,184,4,51,3,15,252,133,245,118,247, +77,254,126,0,131,254,94,253,28,251,206,249,232,255,87,6,114,3,187,252,59,247,253,242,228,246,209,0,106,3,180,2, +235,8,171,12,193,7,214,2,6,254,190,246,35,244,29,246,1,248,138,253,83,3,175,0,231,252,4,0,133,2,46,1, +191,1,47,3,181,1,142,253,158,247,194,244,156,249,245,255,158,0,6,254,146,251,175,250,42,253,176,254,67,251,89,251, +70,4,156,10,181,6,200,0,248,254,38,254,77,253,2,255,197,2,71,3,110,252,131,245,58,249,46,0,189,252,241,246, +13,251,226,0,156,1,121,3,93,3,221,250,113,244,125,249,236,1,149,4,202,1,182,253,165,251,230,250,254,249,157,250, +167,252,78,255,147,3,200,4,190,255,10,253,5,255,188,253,103,253,81,3,163,3,32,251,118,247,119,250,9,252,53,252, +181,252,240,254,198,4,213,6,26,0,111,250,180,250,63,251,249,252,174,1,145,4,189,4,236,2,25,254,227,251,178,255, +66,2,79,0,227,252,244,247,161,244,74,247,136,251,120,255,66,8,160,16,18,13,154,0,88,247,179,245,131,249,25,0, +80,4,2,1,210,250,188,251,52,1,183,1,215,1,191,8,245,12,94,7,191,0,29,253,153,248,70,247,175,252,103,1, +204,255,201,250,141,247,1,251,26,5,171,13,195,14,84,11,176,6,222,0,47,253,157,255,211,2,154,254,205,247,19,250, +93,3,253,6,66,2,193,253,108,253,104,253,81,253,111,1,221,7,123,9,140,5,102,0,175,252,116,253,198,2,210,5, +68,4,22,3,181,1,95,252,39,246,189,244,105,250,61,2,104,2,52,254,195,3,236,14,161,15,236,6,244,253,244,248, +21,253,150,4,101,1,116,250,241,252,96,255,121,251,142,251,208,253,30,250,102,247,99,251,163,0,131,2,56,0,115,255, +225,5,106,8,169,253,50,245,225,250,5,3,16,5,151,4,101,3,102,2,143,1,127,254,162,252,120,254,246,253,255,250, +33,252,38,0,252,4,133,11,160,11,88,0,248,247,194,253,161,6,198,5,205,255,84,254,5,0,150,254,37,251,226,250, +222,254,43,5,9,9,220,4,178,253,92,255,190,6,84,6,225,255,111,255,48,3,149,1,104,253,192,254,112,3,91,5, +207,3,186,255,118,251,88,252,144,2,51,8,163,9,179,5,140,254,243,251,121,254,70,253,34,250,120,254,93,6,15,8, +155,2,232,249,223,245,219,252,40,6,39,7,4,5,251,4,176,2,241,254,145,254,38,255,116,252,94,248,129,249,57,2, +99,8,33,3,135,251,20,252,228,255,232,0,150,0,165,255,98,254,151,254,165,255,213,255,171,254,100,253,225,254,52,1, +76,254,4,248,206,246,178,253,47,7,15,9,102,1,55,253,190,1,252,3,53,3,85,5,145,1,63,247,192,246,48,254, +45,0,96,2,211,7,4,4,220,248,168,244,128,249,64,2,21,8,34,3,157,249,115,248,229,251,80,251,202,250,52,254, +202,1,229,2,108,0,192,250,114,247,219,251,125,6,212,15,61,15,16,5,243,252,82,253,197,254,175,251,27,249,207,250, +111,254,141,2,100,5,85,3,225,254,94,253,44,253,10,254,65,4,244,8,71,2,206,249,89,251,90,254,47,251,155,250, +58,0,246,2,133,255,25,252,175,251,153,252,102,0,157,7,30,9,209,255,45,248,125,251,175,0,219,0,2,0,157,255, +117,255,236,255,8,254,148,252,124,1,26,6,189,3,24,0,135,253,153,251,70,254,53,255,178,248,90,249,173,4,3,6, +221,251,73,248,204,250,147,251,138,254,14,2,23,0,221,253,95,0,35,3,123,1,0,251,45,246,42,253,182,11,84,15, +47,3,171,247,30,248,161,252,46,253,56,255,196,4,81,4,243,252,125,249,92,252,222,255,181,2,230,4,26,5,156,3, +242,255,47,251,13,250,97,252,31,253,81,252,190,253,252,1,49,5,137,3,116,1,240,4,83,6,60,255,49,252,86,3, +171,6,83,2,84,1,97,3,35,2,52,0,177,253,201,247,136,245,245,251,193,1,180,0,123,0,68,6,82,11,40,8, +229,253,194,245,122,249,51,5,218,8,28,1,25,252,205,253,112,251,106,244,152,243,148,251,215,4,25,9,229,8,236,7, +236,5,134,2,132,2,193,4,113,1,154,251,136,251,234,253,204,253,206,252,148,250,187,248,221,252,215,3,255,5,179,3, +197,0,232,255,189,1,161,1,12,255,215,0,230,4,32,3,165,254,110,253,142,253,167,252,137,250,175,249,184,254,139,4, +142,1,203,250,199,249,190,253,57,4,87,8,162,3,6,255,20,3,178,1,45,246,88,244,139,253,32,254,10,248,192,250, +37,3,149,6,30,4,238,254,193,251,117,254,197,2,3,4,54,6,68,10,149,7,185,252,111,244,118,244,171,249,243,1, +167,9,175,10,129,6,7,2,137,253,190,252,192,2,186,4,250,251,192,246,214,253,17,4,8,1,200,253,98,254,141,251, +0,247,235,250,215,1,60,254,180,248,191,255,221,6,19,0,104,248,239,249,222,251,143,252,140,1,203,6,57,7,114,3, +115,254,160,254,225,2,174,255,51,247,186,247,41,254,171,253,125,249,239,251,144,5,202,15,108,18,249,9,140,253,126,247, +70,250,62,0,220,2,161,0,172,252,19,251,125,253,182,255,170,253,202,252,144,1,34,5,248,4,237,7,57,12,249,9, +152,2,61,252,172,250,150,253,224,253,38,250,189,253,87,9,66,13,67,5,24,253,19,252,100,0,227,4,8,6,82,5, +74,3,210,254,5,253,82,0,186,0,192,251,34,248,212,247,177,250,0,2,133,7,39,5,154,0,125,255,168,254,254,251, +242,250,27,255,8,7,85,11,163,6,211,252,190,245,87,245,234,249,133,254,9,1,44,3,4,4,165,1,236,254,216,253, +178,251,139,249,202,252,18,4,20,8,18,7,146,3,0,253,75,246,84,247,155,252,7,251,159,246,91,248,144,250,24,252, +229,6,154,18,187,13,110,1,140,254,157,254,217,250,212,253,115,8,40,10,44,255,242,246,180,247,165,248,133,249,100,0, +160,5,33,2,6,255,248,255,55,254,85,252,69,252,8,248,150,246,201,254,195,0,181,246,117,243,96,249,0,250,151,248, +73,253,83,2,48,4,50,3,175,253,23,252,217,4,46,9,147,0,59,250,224,250,207,246,243,243,70,255,58,12,126,10, +21,2,108,253,29,250,64,249,160,253,43,1,19,1,190,1,25,3,195,2,60,255,135,246,196,240,2,249,177,4,224,3, +163,254,13,0,34,1,85,254,213,254,151,2,193,3,76,1,6,254,227,254,131,6,129,14,38,13,195,0,166,242,220,238, +53,246,46,255,38,5,116,8,161,6,23,1,67,254,254,254,14,0,99,0,211,255,140,255,25,0,24,0,182,2,29,8, +214,3,215,243,220,235,112,244,143,0,135,7,216,6,246,252,45,246,22,254,212,7,242,6,250,5,134,11,219,12,56,5, +176,250,207,241,150,240,133,251,162,7,239,5,78,250,27,243,207,244,107,251,190,1,189,2,158,255,135,255,252,3,31,8, +212,8,75,5,1,255,27,250,243,247,14,248,15,252,50,1,149,0,132,251,27,250,209,254,17,4,15,3,209,253,228,254, +38,7,179,10,184,6,222,3,20,4,107,2,42,253,248,247,202,249,105,1,226,1,211,249,73,248,12,255,168,0,5,252, +112,251,78,2,224,11,122,15,176,7,201,252,27,251,43,0,45,0,13,249,20,245,225,251,33,6,124,6,142,252,11,245, +115,248,145,1,158,5,17,3,233,1,55,4,158,4,220,3,42,5,165,3,103,252,113,247,144,251,17,4,181,6,235,255, +203,247,79,247,73,252,199,255,242,0,186,2,157,5,146,6,202,2,203,253,36,254,236,2,131,5,83,3,168,254,108,251, +213,252,191,0,155,0,25,251,177,247,49,252,3,3,189,3,153,1,12,4,77,7,216,4,9,0,155,252,71,248,147,244, +122,247,193,1,110,12,214,13,253,2,58,245,230,239,249,243,44,251,118,0,103,3,162,6,85,9,140,6,180,254,97,248, +211,246,184,249,145,1,18,11,188,12,40,2,55,246,226,247,191,4,212,11,69,6,252,252,3,248,1,248,59,251,163,255, +56,4,242,7,252,6,119,0,109,250,49,249,251,251,102,2,249,9,182,11,78,5,211,253,73,252,148,254,193,253,200,249, +86,249,132,253,186,1,23,5,126,6,9,1,186,247,214,245,127,254,8,10,197,15,72,10,78,252,171,242,219,245,39,254, +126,255,162,250,66,250,15,1,28,5,160,1,177,254,160,255,76,254,50,252,190,254,212,255,51,251,184,250,12,2,27,6, +233,1,10,253,84,254,30,5,167,9,71,6,147,2,76,5,232,3,14,247,67,235,133,234,138,240,196,250,228,7,188,14, +94,10,204,1,237,251,219,250,40,0,137,8,111,10,115,3,126,254,142,1,46,1,68,246,9,239,97,246,188,1,203,7, +240,11,104,12,33,3,101,245,173,236,166,234,230,238,245,249,206,5,121,7,185,254,51,251,90,5,188,13,244,7,191,1, +56,6,179,8,147,2,99,1,38,9,74,11,6,0,40,240,99,232,37,238,89,251,185,4,241,6,92,6,197,4,152,2, +52,3,199,6,47,9,176,9,250,9,79,9,118,6,29,255,198,241,102,231,218,234,179,245,43,252,152,0,159,5,2,5, +54,0,77,255,129,2,58,7,222,11,57,12,16,10,229,10,29,9,4,255,50,245,230,242,42,246,194,254,186,8,107,8, +100,253,64,247,179,255,30,13,116,15,34,6,76,255,145,0,79,3,163,4,112,3,74,252,111,244,96,243,5,246,72,250, +181,1,186,5,178,3,172,3,227,4,46,2,128,2,183,7,165,7,47,3,157,2,37,2,108,252,57,246,76,245,205,249, +233,253,39,252,133,250,110,0,7,7,95,7,78,6,169,6,217,6,215,7,239,6,201,1,146,254,64,253,97,246,184,241, +194,251,162,9,209,9,0,1,145,253,112,0,72,0,8,249,56,242,249,244,25,254,17,3,157,1,226,254,40,253,237,252, +210,0,215,7,26,10,201,2,203,248,227,246,25,254,121,5,79,6,6,4,8,5,174,6,26,1,11,246,118,239,153,241, +6,250,52,5,209,12,106,11,63,4,115,253,134,248,208,247,217,254,76,8,51,10,131,5,239,1,21,253,174,241,183,233, +180,240,242,252,103,0,23,0,18,4,227,6,173,3,196,253,54,248,122,246,130,252,117,6,174,11,89,9,144,3,40,255, +88,251,111,245,241,242,203,248,217,254,174,0,179,6,126,14,250,10,84,255,132,247,130,243,251,241,153,247,188,2,180,11, +197,12,167,5,153,255,221,1,219,2,130,251,162,248,39,1,127,7,103,4,182,0,79,0,206,254,150,253,122,0,80,3, +227,1,185,0,22,2,228,0,205,254,7,2,230,4,219,0,223,253,78,1,74,4,225,4,93,6,133,5,62,0,31,251, +90,249,140,250,106,251,80,249,174,250,36,4,192,9,203,2,91,250,215,249,190,253,125,3,216,8,246,7,146,2,189,0, +217,2,216,2,96,255,232,253,218,1,85,5,88,2,53,253,52,251,72,250,92,248,108,246,229,247,136,1,44,13,241,12, +225,4,27,4,28,7,178,3,65,0,203,3,76,8,113,7,55,1,35,250,163,247,155,247,1,246,118,247,48,254,3,4, +137,6,99,5,32,255,61,251,219,254,208,255,181,251,150,254,79,6,158,6,23,3,228,1,148,251,54,238,177,229,35,233, +244,243,177,255,147,9,47,16,6,17,105,11,45,3,147,252,243,249,122,253,108,5,56,10,111,6,118,252,97,243,129,240, +62,242,193,244,150,250,152,5,78,13,107,11,64,7,90,7,146,6,161,1,74,255,4,3,97,6,133,4,207,254,43,247, +220,241,132,244,113,251,2,255,210,1,29,7,200,8,116,5,249,2,161,0,70,252,167,250,75,254,73,4,222,7,39,3, +101,249,13,247,44,252,117,254,242,254,236,1,187,2,236,0,44,0,240,252,191,246,131,245,146,251,36,3,57,6,111,3, +206,0,126,2,71,3,29,2,144,4,231,7,247,6,71,3,49,253,39,248,242,250,60,253,139,245,122,241,163,249,54,255, +92,253,93,254,86,2,45,6,12,11,103,11,129,5,97,1,87,255,158,252,244,253,36,1,216,254,53,250,17,247,143,244, +202,245,103,249,102,250,84,255,71,10,147,12,68,4,126,0,222,1,216,255,243,255,44,7,221,11,9,7,71,254,212,248, +141,248,198,251,39,254,226,250,202,244,167,245,105,253,155,0,99,254,167,0,189,6,214,9,63,10,48,7,205,255,118,253, +240,4,102,11,106,9,48,4,0,2,222,3,242,2,116,246,20,231,24,233,96,251,128,8,192,8,126,6,158,7,75,9, +214,8,97,4,251,253,150,254,65,7,221,9,170,0,106,248,64,247,103,246,190,245,209,247,133,248,116,250,207,2,82,8, +58,3,36,252,82,251,217,1,241,12,24,16,21,5,106,251,175,251,245,250,133,249,34,0,48,5,145,254,16,246,37,245, +122,249,243,254,221,0,161,252,152,248,190,251,141,3,218,7,185,4,134,0,28,3,126,7,216,3,20,250,90,242,194,240, +3,247,232,1,72,6,10,253,216,239,214,239,76,253,81,6,184,4,208,4,186,8,251,7,1,5,71,1,240,246,159,240, +87,251,221,6,235,2,154,253,5,3,121,8,192,4,247,250,7,243,154,245,246,0,187,6,171,0,204,248,130,248,210,253, +46,2,206,3,10,5,197,5,26,4,72,0,192,251,233,249,149,253,160,1,216,0,40,255,146,253,76,249,215,248,85,254, +75,254,39,249,81,251,170,1,55,3,40,3,32,3,36,1,232,0,12,1,242,252,202,250,137,254,211,1,160,3,12,5, +177,1,12,253,174,253,29,253,236,246,246,244,211,252,231,6,245,9,24,4,120,252,63,250,164,250,141,249,132,249,62,252, +183,0,23,5,191,4,206,0,126,1,46,4,114,255,63,249,197,252,86,5,142,8,16,5,23,255,36,251,132,251,90,255, +52,4,40,5,155,255,101,251,157,255,87,5,138,5,128,4,172,4,71,1,84,249,96,242,203,242,26,252,223,6,101,9, +0,4,169,254,137,252,171,250,52,249,41,252,122,2,155,6,110,7,17,6,58,2,124,0,224,3,48,3,69,250,236,245, +89,251,84,255,168,254,25,0,48,2,217,0,62,0,56,2,76,0,122,249,158,247,30,254,27,3,223,3,15,8,91,10, +250,1,200,252,97,6,175,13,113,5,9,250,61,248,208,255,173,8,85,8,45,1,166,254,137,254,122,252,62,255,1,3, +18,0,37,1,189,7,42,4,58,253,244,1,65,5,254,254,110,255,81,7,83,7,174,0,177,252,24,253,251,0,246,3, +24,2,42,255,124,253,144,252,153,255,139,4,164,5,74,5,183,4,69,1,223,0,179,5,105,5,28,255,255,252,26,1, +204,6,102,7,8,254,186,245,199,250,0,2,90,0,34,255,99,2,176,3,162,4,4,6,39,3,16,0,172,1,37,4, +44,5,137,3,216,253,189,251,54,1,51,3,181,253,222,249,160,248,203,246,146,250,178,5,209,13,67,12,161,5,255,1, +159,4,22,9,131,8,59,2,243,253,222,1,160,6,31,1,128,247,17,247,161,252,97,254,232,252,20,252,230,253,113,2, +180,3,74,1,117,5,6,13,119,9,94,0,82,0,159,3,104,0,43,252,2,253,119,255,145,253,64,246,56,241,124,245, +27,254,60,4,108,7,170,6,194,3,88,5,213,8,245,5,85,0,138,0,33,5,81,6,1,0,70,248,89,249,188,255, +228,254,71,248,129,246,20,251,224,2,172,10,8,11,135,2,24,252,110,255,74,7,99,10,63,6,228,0,20,0,38,2, +185,2,121,255,6,250,53,250,64,3,37,10,97,7,39,3,62,3,28,3,37,1,16,1,137,5,136,11,15,9,84,253, +251,248,21,1,117,4,206,254,98,254,18,3,137,1,14,253,117,254,210,2,244,3,248,1,61,255,252,252,31,252,93,252, +245,251,51,252,221,0,247,5,153,3,7,255,179,1,150,4,156,254,94,247,178,247,220,253,219,5,137,10,191,7,237,0, +198,249,215,243,152,245,87,255,48,6,39,7,111,6,19,2,224,252,199,253,135,254,100,250,31,251,255,0,225,1,5,1, +11,4,30,5,67,3,254,1,215,253,167,249,188,254,205,6,59,4,55,250,23,245,71,247,40,251,102,254,243,2,9,6, +36,2,173,252,146,254,14,2,61,0,62,1,251,7,119,8,160,255,131,248,9,249,75,253,142,254,70,249,32,243,12,245, +203,254,220,8,208,11,17,5,201,252,38,252,83,254,93,254,10,3,193,9,92,6,150,255,102,2,55,4,147,250,148,244, +17,253,56,6,72,4,183,253,10,252,205,255,14,2,82,253,37,247,138,249,135,2,85,6,229,1,56,255,14,4,91,7, +116,1,130,250,17,251,85,254,118,255,196,255,253,252,1,247,251,245,154,251,163,0,215,3,239,6,146,6,231,2,44,1, +147,2,45,4,34,2,53,251,102,245,190,244,25,244,240,243,99,251,198,4,232,5,254,3,219,5,49,6,223,1,201,253, +179,252,96,253,35,254,99,255,220,2,185,4,130,255,170,248,127,248,39,253,251,1,59,4,89,1,21,254,229,255,114,0, +198,252,2,253,104,0,220,0,105,2,219,4,129,1,217,253,21,255,207,253,191,251,164,1,128,8,109,7,91,2,180,251, +57,245,95,246,39,253,46,0,157,255,34,254,9,252,212,254,223,4,75,2,173,250,47,253,201,6,113,10,2,8,190,3, +238,253,26,251,202,254,82,2,56,0,17,254,18,1,109,4,139,2,56,254,155,252,37,254,114,1,246,5,240,9,32,10, +173,4,26,253,232,250,149,254,79,255,216,250,165,250,233,2,200,10,146,8,247,253,104,247,14,253,122,6,182,7,240,2, +174,0,253,2,96,7,27,9,40,4,224,252,180,251,157,1,141,7,0,5,123,249,15,241,19,244,209,250,98,254,169,1, +164,3,213,1,134,1,213,3,244,2,243,255,118,254,44,253,32,254,145,2,197,2,2,254,46,255,2,5,48,2,172,248, +104,247,43,255,20,3,11,0,100,254,171,255,245,253,2,251,242,253,90,4,16,5,164,255,66,253,9,2,85,6,118,3, +148,254,165,253,128,253,233,251,206,251,252,252,187,254,163,2,185,4,80,1,34,255,85,2,77,4,91,2,2,1,207,0, +110,255,141,253,21,253,24,254,241,253,53,252,189,253,1,2,32,2,173,0,176,3,184,4,28,255,226,250,99,252,226,0, +146,5,199,4,228,255,19,1,45,2,113,247,48,240,238,249,243,1,216,253,171,253,54,5,41,9,252,7,98,4,96,0, +247,255,108,255,59,252,48,255,228,4,42,0,177,249,189,252,206,252,163,246,159,250,29,6,108,8,207,3,193,1,228,0, +128,255,118,254,27,252,50,249,5,249,217,251,47,255,251,255,42,254,98,253,45,254,32,254,223,253,149,253,184,252,217,255, +20,8,50,12,89,6,53,252,232,246,235,250,4,2,188,1,248,252,52,253,217,254,73,252,14,251,184,252,219,251,171,250, +207,253,41,2,86,2,230,251,205,243,151,245,232,0,131,6,41,2,230,254,73,1,56,4,70,3,21,254,243,249,183,251, +229,255,168,2,39,4,6,2,139,253,93,253,120,255,12,255,242,0,47,5,107,4,71,2,159,3,33,1,28,250,94,247, +103,248,91,250,23,0,74,5,138,4,112,3,178,3,123,255,60,250,13,251,121,255,199,2,27,3,78,0,211,254,83,0, +152,254,106,250,211,252,5,4,248,5,252,1,229,253,0,252,153,252,197,255,64,3,26,3,245,254,72,253,48,2,227,5, +43,1,92,250,201,248,118,250,19,253,55,0,73,1,216,0,234,1,112,2,50,0,104,253,247,250,96,250,191,255,184,6, +29,5,226,253,144,252,118,0,175,0,168,252,238,249,86,251,237,255,221,2,34,0,177,252,175,254,64,1,233,254,217,252, +143,254,89,255,169,254,205,255,246,0,78,1,72,3,31,4,56,1,160,254,227,252,182,249,123,250,146,1,157,5,31,2, +22,253,123,249,207,247,45,251,107,1,102,4,153,4,84,5,5,5,42,1,115,250,39,244,40,243,221,248,233,254,155,254, +68,251,8,253,32,2,64,1,218,251,235,252,206,4,108,9,26,7,108,1,202,251,246,248,193,248,243,248,224,250,116,254, +172,255,33,0,95,2,228,0,44,252,161,253,144,2,6,1,205,252,175,252,178,252,51,250,152,248,194,248,89,249,64,249, +7,249,143,252,117,2,222,2,35,255,168,254,109,254,171,250,161,249,84,253,186,255,44,255,13,254,165,253,54,254,244,253, +212,253,241,1,118,5,28,1,1,252,105,253,213,254,187,253,212,254,152,254,76,250,86,249,46,253,116,254,188,251,45,250, +197,253,201,4,44,7,253,1,230,252,229,251,244,251,107,253,184,255,98,254,152,251,240,252,161,0,245,1,71,255,223,250, +49,250,137,252,165,251,198,250,69,255,104,2,39,1,201,1,94,1,21,252,223,250,8,0,85,3,167,4,137,4,69,254, +188,247,244,248,147,252,55,254,22,255,230,253,242,0,8,13,209,15,175,253,172,238,72,246,96,5,91,9,184,2,101,250, +133,247,76,249,120,250,245,252,241,2,145,5,212,2,54,2,26,5,196,5,154,1,165,251,231,250,191,0,138,2,176,251, +5,248,18,254,216,4,101,5,146,2,255,0,4,1,128,255,178,254,0,5,131,11,111,5,6,251,191,251,148,0,44,253, +136,247,51,248,132,253,102,4,94,9,112,8,59,4,97,1,117,255,240,253,27,253,253,250,90,249,170,253,188,5,143,8, +136,3,9,253,0,252,242,1,182,9,232,10,110,3,212,251,43,252,246,0,23,2,134,253,98,246,219,242,240,249,3,9, +153,18,174,14,229,2,17,250,159,250,147,0,96,2,94,0,20,2,228,4,156,2,223,255,248,255,1,253,190,247,37,248, +92,253,86,1,46,4,254,6,78,6,149,0,102,251,68,253,253,2,174,3,139,1,66,6,223,13,254,11,137,2,132,252, +133,251,121,251,232,251,217,252,206,253,178,255,142,1,89,1,195,255,14,253,77,249,49,250,22,3,234,9,234,4,183,251, +166,250,42,0,49,2,63,252,7,245,60,248,177,4,212,9,31,2,9,251,66,251,72,253,15,0,212,2,126,0,20,252, +173,251,243,253,193,3,155,11,75,8,217,250,95,248,157,0,244,254,103,246,23,249,44,4,27,9,10,4,169,252,79,254, +58,7,254,6,83,252,82,248,190,253,186,1,192,2,136,2,168,255,47,254,213,0,15,3,66,2,59,253,233,244,55,244, +82,0,210,10,5,9,8,2,150,253,118,253,76,1,233,3,68,2,235,0,112,1,57,1,93,0,122,254,233,252,37,0, +192,2,0,252,146,244,29,248,64,1,160,8,215,12,92,9,254,0,66,0,146,5,174,3,81,252,16,252,21,4,197,9, +111,5,64,251,66,245,3,246,243,249,79,0,132,6,129,7,63,6,197,7,209,6,232,254,15,248,195,250,150,3,224,8, +33,6,32,255,204,249,9,249,94,252,33,255,39,253,4,251,144,254,121,3,213,3,144,0,48,252,19,251,229,0,168,5, +181,0,29,250,142,251,18,1,105,5,136,7,182,5,65,2,229,0,11,0,33,0,31,2,58,255,176,246,61,243,37,247, +33,252,66,1,62,4,71,2,186,2,222,8,7,13,21,15,253,16,236,9,104,251,134,245,5,250,239,253,7,255,158,254, +126,252,174,252,106,255,172,255,12,255,231,1,14,9,15,20,88,25,76,13,48,252,255,249,232,254,253,251,11,248,98,249, +97,250,251,253,171,7,180,10,179,0,101,249,71,1,15,15,4,19,241,10,171,1,143,254,241,253,106,252,115,252,209,253, +150,253,87,253,108,255,115,1,30,0,218,251,229,249,77,0,39,12,169,17,23,12,131,4,35,4,198,8,179,9,49,3, +127,251,165,250,100,254,249,253,146,249,244,249,43,0,190,3,154,2,223,3,234,8,99,10,72,6,205,2,178,1,214,254, +84,252,136,0,150,6,156,2,178,247,215,245,106,255,251,5,208,2,239,253,99,253,140,255,51,3,236,6,12,5,140,252, +18,248,149,254,108,4,194,253,170,245,255,250,103,4,154,1,220,246,21,242,177,247,160,3,107,12,202,9,204,1,64,0, +253,2,148,2,119,1,48,1,186,252,118,247,9,251,196,3,21,4,68,251,97,247,100,255,195,8,66,7,178,253,90,249, +174,0,66,10,20,8,70,252,41,247,84,253,81,2,124,255,107,251,89,251,161,253,152,254,53,252,147,249,109,251,181,255, +158,1,57,2,157,4,28,8,148,9,16,6,77,254,53,247,108,244,46,247,127,254,222,2,2,254,128,247,4,249,57,254, +113,255,205,253,189,252,32,253,249,254,51,1,138,2,8,1,47,251,3,247,95,251,58,1,223,255,217,253,16,1,216,2, +28,0,38,253,9,250,21,247,180,249,231,1,89,7,144,4,168,254,210,254,8,4,129,4,178,254,187,248,226,244,103,246, +211,255,84,6,77,0,188,247,31,247,239,249,102,251,223,252,94,255,39,3,151,5,17,4,203,3,87,6,133,2,13,249, +231,246,244,253,33,5,43,6,87,255,111,247,210,247,1,252,178,253,210,1,189,4,242,254,239,253,56,9,9,11,187,251, +179,242,10,249,195,255,124,255,187,252,47,252,13,255,199,255,211,250,41,248,187,252,222,1,108,3,52,3,18,2,73,1, +244,0,233,254,231,252,249,252,124,252,89,252,46,255,25,0,174,252,121,251,119,254,222,0,69,1,92,0,63,254,129,252, +73,251,152,250,140,253,132,2,57,2,236,252,181,249,12,250,111,251,58,254,171,1,92,1,230,252,118,251,110,1,72,8, +209,8,151,4,63,255,207,251,20,254,129,0,120,249,90,242,201,249,70,4,51,1,142,250,10,253,9,0,153,252,36,251, +208,255,144,3,109,2,67,0,209,255,210,254,207,252,197,253,119,2,203,5,154,3,44,253,244,248,123,251,110,254,68,251, +234,249,126,0,219,4,128,1,106,254,241,253,201,253,77,1,223,5,31,3,207,252,194,252,82,2,22,6,247,2,128,251, +198,249,199,255,71,2,197,253,251,250,6,252,153,252,82,253,154,255,65,2,199,4,22,6,89,6,254,7,51,8,89,2, +105,251,181,250,90,254,198,0,143,255,221,251,135,250,95,253,207,254,42,253,66,255,200,5,184,7,21,2,31,252,120,250, +160,251,171,255,7,6,245,7,70,2,242,251,144,249,195,248,231,249,18,253,163,253,178,252,4,255,186,0,196,254,86,255, +143,3,2,5,15,3,69,1,210,0,247,1,117,2,200,255,44,252,84,248,178,243,138,244,186,252,24,3,139,5,81,8, +218,5,86,252,21,248,79,253,118,2,229,1,136,252,137,247,136,250,213,1,73,2,184,254,72,255,145,255,172,252,219,253, +168,3,233,5,174,1,21,251,153,247,155,249,245,253,126,0,92,0,14,255,131,255,175,1,19,1,153,254,161,255,71,1, +25,255,177,253,132,255,30,1,145,3,192,7,22,9,170,5,1,254,220,244,128,244,237,254,15,4,130,253,6,249,111,253, +150,5,28,14,143,16,192,6,141,249,236,244,186,247,128,253,210,4,107,9,16,8,99,3,109,255,99,254,123,255,82,0, +186,1,41,4,220,2,181,252,59,248,63,248,135,249,150,251,161,255,90,3,167,4,149,5,66,8,55,10,149,7,88,1, +68,252,155,251,35,255,107,2,133,0,63,252,88,252,37,0,209,2,208,2,167,255,205,251,13,253,20,2,32,4,105,2, +165,254,86,251,174,255,64,9,111,9,53,0,58,251,167,251,105,253,49,3,124,7,249,2,158,254,219,0,130,1,62,255, +178,255,201,0,3,3,79,10,203,13,32,5,116,251,141,252,250,2,151,5,55,3,210,253,197,247,241,245,28,252,35,5, +16,7,65,2,154,0,254,3,6,5,66,1,229,253,194,0,62,10,184,17,36,14,18,3,58,251,199,250,45,254,179,255, +235,253,67,254,162,2,57,4,41,1,119,255,238,254,46,252,162,253,109,9,116,21,143,18,152,3,119,250,129,253,127,1, +90,1,159,3,130,7,59,7,94,5,118,2,39,250,115,245,240,0,210,17,26,20,82,9,188,0,80,255,139,255,206,253, +237,251,20,253,97,1,49,5,196,5,28,5,8,5,67,2,115,252,142,250,128,254,244,2,105,7,11,11,107,6,78,252, +75,249,21,253,131,1,80,9,203,15,76,10,126,0,39,254,144,253,170,251,192,255,61,6,151,5,182,254,112,247,102,247, +198,3,95,16,255,12,54,0,137,250,207,255,18,11,141,18,252,12,0,1,179,251,13,251,252,248,133,249,37,254,242,1, +177,3,166,3,24,2,153,3,231,8,163,10,18,6,90,0,184,252,81,252,30,1,25,8,218,8,12,0,162,244,46,241, +148,249,230,5,143,9,253,2,71,253,2,254,95,255,75,0,115,5,213,9,136,5,84,253,53,249,185,249,215,253,67,2, +204,0,155,251,101,250,75,253,58,1,17,5,10,5,19,1,58,255,78,254,182,249,232,247,28,255,123,7,3,7,152,254, +56,248,6,252,255,2,151,255,153,246,154,247,65,0,254,2,94,255,135,253,60,255,119,1,254,1,34,0,217,253,109,255, +201,5,109,9,125,2,62,246,254,240,144,245,90,254,81,4,114,0,116,246,112,245,152,255,204,6,16,6,193,3,85,2, +55,2,54,3,116,1,218,253,71,252,143,249,152,246,98,251,178,2,151,0,167,249,208,246,12,246,192,247,192,255,165,8, +196,11,127,9,0,3,162,251,111,249,130,251,251,253,114,2,91,6,129,1,125,247,222,245,168,253,242,1,14,253,16,248, +216,251,240,3,201,5,79,1,203,0,202,6,254,8,156,2,49,252,11,251,253,250,230,250,138,252,57,253,160,252,188,253, +199,253,224,250,65,250,147,252,64,254,195,0,144,2,195,255,176,255,63,7,48,11,247,5,217,255,137,251,107,248,164,250, +24,255,192,255,68,0,28,1,214,252,190,248,89,251,92,254,69,254,171,255,140,1,71,1,34,1,248,0,153,0,195,2, +153,3,198,253,126,247,33,248,142,252,6,0,77,1,130,254,74,249,161,249,235,2,76,12,229,11,223,4,252,0,120,1, +126,1,73,255,79,250,43,244,193,243,10,251,78,2,193,4,222,3,144,0,173,253,179,255,72,5,205,9,141,10,16,6, +9,255,22,250,212,245,93,242,37,247,215,2,231,8,142,6,155,2,131,253,52,247,133,247,88,1,95,11,213,12,214,6, +68,255,255,249,49,249,206,253,78,3,242,1,87,250,83,246,97,250,70,255,241,253,83,250,195,251,13,0,9,1,27,1, +83,4,36,7,99,7,17,7,44,3,245,249,6,244,91,248,163,1,74,5,236,254,145,247,186,251,43,6,188,7,38,1, +207,252,156,253,178,3,254,10,170,8,87,255,142,253,21,1,92,255,161,252,151,252,8,250,157,248,255,252,122,255,181,253, +147,254,6,1,35,2,192,4,180,5,68,1,183,254,95,1,86,2,83,1,21,2,183,255,195,248,26,247,59,254,211,4, +131,4,183,255,177,250,76,250,77,1,121,8,64,6,35,255,126,253,76,255,250,254,79,0,36,4,68,3,210,254,72,255, +223,2,60,1,17,251,194,247,73,250,21,0,156,5,120,7,69,3,197,252,56,252,226,1,144,5,183,4,94,2,195,254, +224,251,26,252,248,250,22,249,70,255,37,8,225,5,240,254,93,0,180,3,205,0,91,254,138,0,85,2,124,1,146,255, +195,253,67,253,130,254,64,1,102,4,112,4,247,255,42,251,77,250,0,254,46,3,31,4,184,255,255,251,161,253,64,4, +252,9,181,5,205,251,128,252,209,2,89,251,142,239,16,245,196,1,246,3,121,2,75,3,230,255,215,251,232,254,44,4, +92,5,162,3,218,0,206,254,221,254,236,254,31,253,58,250,51,248,52,250,118,255,28,1,13,253,165,249,44,251,40,0, +128,5,62,8,36,8,114,7,224,5,222,2,239,1,235,3,184,2,108,251,197,244,176,245,114,252,62,3,48,6,78,3, +73,253,196,250,201,251,245,251,110,255,216,8,148,12,175,4,172,252,52,252,61,0,158,5,38,6,119,254,38,250,113,0, +239,5,170,4,174,3,146,2,33,253,172,249,117,254,18,6,68,6,165,253,185,248,237,255,51,7,49,3,53,252,33,250, +151,249,209,250,35,0,239,5,228,9,123,10,1,4,182,250,140,247,115,250,31,255,154,2,191,0,223,252,30,0,166,5, +31,1,30,247,194,245,161,254,177,7,51,8,223,0,173,250,253,250,36,254,118,255,88,254,230,253,196,1,13,6,186,3, +246,254,188,254,157,254,226,251,138,252,112,255,228,255,203,2,72,8,46,6,77,254,28,253,197,1,128,2,23,255,31,253, +140,254,111,2,35,5,18,2,22,251,30,248,246,251,227,255,193,254,193,253,92,2,57,7,84,5,117,255,126,251,37,250, +22,251,154,255,45,5,54,5,228,254,25,251,32,255,26,3,180,255,226,250,167,252,23,3,200,7,214,7,77,5,77,3, +96,0,70,251,28,250,48,0,254,5,73,5,63,255,207,246,146,241,248,243,112,249,212,253,205,3,123,9,211,9,230,5, +185,254,78,246,94,246,166,0,96,8,47,8,30,5,214,254,141,245,122,241,179,246,244,255,168,5,19,4,144,255,18,254, +13,254,193,254,8,4,184,9,206,7,82,1,191,253,23,255,92,4,77,8,240,4,35,255,106,255,35,2,195,254,87,247, +210,244,231,248,202,252,37,254,112,1,105,5,253,4,111,2,69,0,116,252,44,251,180,1,4,10,96,12,198,7,36,254, +77,246,229,245,14,247,9,246,150,249,18,1,81,4,22,4,250,3,44,2,116,255,148,255,199,3,191,9,94,10,226,2, +109,252,201,251,102,251,135,251,232,253,227,252,29,251,48,0,35,5,62,3,105,1,118,1,43,0,96,2,244,6,134,4, +222,254,214,255,118,4,97,6,147,4,120,255,143,252,110,0,109,2,159,252,75,251,127,5,245,12,52,7,207,253,195,250, +253,250,121,250,47,252,177,1,105,6,159,5,195,255,175,249,135,248,48,253,82,3,192,5,8,4,234,1,51,1,44,1, +157,2,174,3,186,254,134,247,85,249,103,1,191,3,226,1,94,2,233,1,231,255,155,1,158,4,7,5,237,5,37,7, +161,4,49,255,122,249,237,246,224,251,121,3,234,4,209,3,76,5,236,1,70,247,154,241,177,246,52,253,105,254,99,255, +155,4,254,7,153,3,34,254,34,0,85,5,93,5,126,0,208,252,163,255,100,7,19,9,13,254,42,240,134,236,169,243, +226,253,205,4,72,7,87,8,223,6,229,253,176,243,190,246,244,4,244,12,183,9,156,4,63,1,42,253,116,250,118,251, +125,253,167,253,1,252,243,250,20,253,206,0,9,3,241,4,109,6,201,3,3,0,228,1,239,5,180,4,107,0,232,254, +156,0,133,3,19,6,252,6,49,5,139,0,196,252,239,253,238,255,79,253,139,250,171,252,77,0,15,2,39,1,248,252, +219,250,144,0,40,7,131,4,180,250,188,242,16,243,194,251,214,3,56,3,238,254,9,254,109,252,205,246,222,244,143,251, +201,3,45,7,63,8,97,8,81,4,25,255,126,0,237,5,152,5,34,0,201,254,187,2,153,4,106,1,28,253,16,251, +112,251,226,252,197,253,157,254,207,0,98,1,12,254,129,252,169,255,145,0,83,253,120,252,184,254,247,0,169,3,93,5, +237,4,42,4,144,255,77,247,42,248,135,3,26,9,190,4,62,0,215,255,43,4,82,8,158,1,108,247,159,251,37,7, +7,9,52,4,22,255,83,250,62,252,36,4,10,6,52,0,193,250,64,251,77,3,9,9,171,0,2,246,220,249,116,3, +111,5,206,1,253,251,56,248,244,252,41,3,237,255,170,249,124,251,97,4,4,12,217,9,31,254,72,245,249,246,140,253, +150,3,112,8,13,10,166,6,47,0,208,250,85,248,153,246,133,247,26,0,48,9,253,6,244,254,233,252,117,255,224,0, +3,0,9,254,60,0,44,7,151,7,204,254,7,250,182,253,223,0,172,0,102,1,110,4,108,7,81,6,155,0,114,252, +101,253,36,255,96,253,49,249,201,247,72,253,131,5,55,8,34,5,238,1,32,0,98,254,27,254,216,0,14,3,35,0, +159,251,57,252,89,255,221,255,220,255,253,254,35,250,147,247,62,252,202,0,23,2,159,4,86,5,152,0,104,251,176,248, +220,248,57,254,146,3,135,2,80,1,162,3,169,1,137,251,44,250,96,254,232,3,133,7,202,5,137,2,229,3,233,3, +4,255,90,255,37,4,135,0,6,250,194,253,80,3,144,255,91,250,12,252,77,2,100,8,97,7,33,253,248,245,90,250, +189,0,211,1,190,2,42,5,208,4,49,2,183,0,13,0,233,253,220,251,228,254,15,5,158,4,135,253,141,251,6,1, +47,4,110,1,28,254,233,253,193,255,205,0,39,0,182,255,17,1,237,3,90,5,219,1,34,253,19,253,69,253,101,250, +77,252,193,2,152,4,203,4,217,6,67,3,122,253,33,255,218,1,244,1,70,6,204,7,40,0,147,253,143,3,187,3, +4,255,51,255,39,2,47,5,119,6,126,1,11,254,150,4,109,9,90,4,126,255,235,254,199,254,129,0,17,1,100,252, +10,251,189,0,240,2,56,0,153,1,92,5,20,4,239,254,212,250,87,251,237,1,210,7,171,4,59,254,74,254,174,255, +117,252,54,253,24,4,163,4,20,254,240,251,105,254,78,0,74,2,196,1,34,254,240,254,182,2,39,2,56,2,131,5, +196,3,208,254,202,253,4,253,131,252,153,1,200,5,198,2,7,254,181,250,82,250,63,0,88,4,80,254,232,248,207,252, +82,1,123,1,68,1,144,0,26,255,235,255,142,2,248,4,78,6,139,4,239,255,36,252,28,251,85,252,181,253,29,253, +50,253,39,1,202,4,93,3,189,255,107,254,37,0,72,3,133,4,14,2,60,255,85,0,208,3,194,3,30,255,78,252, +63,253,191,251,247,248,27,253,201,3,100,2,89,253,75,253,101,254,252,253,123,1,110,6,40,5,62,1,32,1,149,1, +234,0,221,2,178,3,154,254,166,251,32,1,152,6,241,5,115,3,67,1,254,255,150,2,141,4,206,254,219,247,137,250, +151,3,229,7,15,4,210,253,56,251,13,253,96,1,183,4,222,1,255,251,47,255,109,9,238,9,85,0,169,252,248,0, +154,2,161,255,186,253,226,255,222,3,19,4,159,255,123,252,198,252,147,253,251,254,65,1,160,1,247,255,24,255,87,0, +43,2,60,1,41,254,150,254,73,2,254,2,218,0,60,255,115,252,41,249,235,249,254,253,45,2,155,5,84,5,161,255, +228,249,197,249,23,255,47,5,1,5,216,253,198,249,131,253,63,0,71,254,162,254,18,1,193,255,246,254,175,2,59,2, +239,249,233,244,187,249,244,1,192,5,47,2,233,251,30,252,241,0,121,0,43,254,91,2,25,6,250,2,1,1,144,3, +131,3,26,255,17,251,59,251,55,0,254,3,83,0,242,249,221,248,169,252,238,255,157,254,34,251,199,253,19,6,5,9, +183,4,133,0,75,253,142,250,201,252,89,2,167,4,146,3,80,1,191,252,117,246,92,241,100,239,218,242,193,252,76,7, +126,9,166,3,113,255,173,255,48,254,251,251,152,254,144,1,74,0,39,0,40,2,179,0,238,253,87,254,121,254,238,251, +117,250,53,252,107,255,244,1,84,3,188,3,174,1,168,253,181,252,129,255,125,0,148,254,0,253,210,252,219,254,218,1, +193,0,115,251,247,247,141,249,134,254,222,1,233,0,194,1,75,7,52,8,147,0,111,247,25,241,216,242,7,0,176,9, +184,3,61,252,223,253,143,255,211,254,112,255,147,253,24,252,24,2,217,7,196,4,79,254,128,250,119,250,87,254,126,2, +37,4,32,4,74,1,248,253,148,255,129,1,220,254,254,254,206,2,49,0,42,249,103,248,153,253,244,2,33,6,166,5, +237,3,155,5,190,7,43,4,234,252,131,248,12,248,85,248,236,249,175,255,94,6,122,8,110,6,64,0,78,245,36,240, +128,250,202,8,236,10,83,4,61,1,238,4,2,8,157,0,39,243,14,242,227,255,225,9,94,8,87,4,234,255,76,248, +200,242,60,244,118,250,173,1,181,5,197,5,128,7,146,10,255,5,120,251,238,247,195,253,14,4,5,6,140,3,240,253, +231,249,17,250,84,251,103,252,33,255,215,2,167,5,152,6,117,4,180,255,105,250,98,246,50,247,224,254,135,7,253,9, +98,6,17,0,114,250,129,249,36,253,104,1,227,4,37,7,30,6,90,2,206,254,35,253,141,254,156,2,49,5,48,4, +185,3,19,6,1,5,189,252,228,246,38,251,170,255,90,252,92,250,151,254,143,1,123,3,72,8,76,9,13,4,152,0, +144,0,224,0,28,3,88,6,249,7,224,8,81,5,9,250,38,242,203,248,129,5,35,9,42,4,199,2,97,6,218,3, +119,252,26,253,48,2,254,0,157,0,109,5,54,3,201,249,224,246,102,252,145,3,137,6,112,0,232,248,81,253,100,8, +46,12,32,6,103,249,84,239,175,244,230,2,223,7,156,3,8,0,156,255,68,2,254,3,133,0,50,0,100,7,30,9, +203,0,209,248,145,244,84,244,178,251,207,2,89,255,241,248,188,251,5,6,72,13,187,8,158,251,110,245,252,252,249,6, +149,8,127,2,196,249,67,244,53,246,84,251,206,251,148,250,224,0,108,10,79,10,15,3,111,0,12,1,235,255,57,1, +114,3,155,255,184,250,97,252,82,1,212,4,139,3,166,251,244,246,168,253,80,4,45,2,29,1,6,5,18,5,163,0, +196,254,52,1,151,4,169,3,217,253,64,251,134,254,104,255,16,252,146,250,239,250,27,252,66,1,220,6,61,6,161,2, +38,1,45,0,144,255,178,0,121,0,212,254,30,0,224,1,52,255,153,251,2,251,249,251,192,254,86,2,13,1,222,252, +204,254,182,5,136,8,68,4,106,251,253,243,103,246,139,0,241,4,191,255,8,251,206,252,164,1,95,5,8,6,95,3, +167,255,151,253,137,253,187,253,234,252,159,252,51,255,200,2,60,2,155,253,154,252,242,2,100,8,243,4,95,253,221,250, +173,254,216,2,174,1,108,253,28,254,242,2,223,2,237,254,43,255,252,1,178,2,217,2,92,2,215,0,184,2,239,6, +180,6,51,2,230,252,43,247,125,244,94,248,119,254,161,1,57,2,43,2,87,2,220,1,140,0,235,2,149,9,167,10, +225,1,62,250,21,252,186,1,35,3,31,0,76,253,20,253,42,254,6,0,127,3,154,6,5,6,42,2,73,255,59,1, +138,5,234,4,172,254,237,249,148,249,18,251,48,253,46,255,203,0,63,3,97,4,255,1,159,0,140,2,153,2,195,255, +70,255,247,2,191,7,201,8,90,4,123,0,66,1,146,0,112,252,87,253,85,4,73,7,185,2,62,254,161,255,77,3, +9,3,95,0,64,1,117,4,73,4,82,0,40,252,161,251,208,0,158,6,228,4,0,253,194,247,53,249,154,254,255,2, +100,3,44,2,135,3,88,6,80,6,30,3,224,0,74,2,3,5,120,5,26,4,77,3,250,2,37,1,195,252,46,248, +49,248,126,253,192,2,34,4,40,3,131,2,191,2,114,2,61,1,70,1,103,2,173,1,192,0,55,3,183,5,56,3, +160,253,124,250,95,253,55,4,245,6,216,1,152,251,235,250,250,254,116,3,75,4,63,1,82,254,255,252,198,252,38,0, +179,5,149,6,253,2,247,0,162,0,60,255,135,253,10,253,176,254,223,1,74,3,2,2,52,0,77,254,111,253,123,255, +63,1,105,0,243,0,69,3,42,3,132,1,166,0,143,255,82,255,128,0,26,0,123,255,188,1,234,2,162,0,150,255, +124,0,46,0,94,0,215,1,15,1,210,254,177,254,39,255,227,253,68,252,251,251,21,254,167,1,78,2,182,255,129,255, +74,1,110,255,118,252,89,253,61,254,254,252,225,254,5,3,210,2,22,255,176,252,5,253,74,0,160,3,21,2,161,254, +94,255,86,1,55,0,90,254,179,252,54,251,207,253,212,2,110,2,197,253,163,252,118,255,48,2,96,3,90,2,76,0, +32,0,129,0,134,254,12,252,12,251,99,250,232,250,14,254,196,1,100,4,22,6,36,5,65,1,207,253,212,251,53,250, +23,251,30,255,133,1,233,255,92,253,97,252,103,253,165,255,20,1,80,2,26,5,159,5,226,0,15,253,73,254,229,254, +43,252,91,251,25,254,242,255,87,255,207,255,131,3,203,6,117,5,211,1,1,0,29,255,58,254,38,255,172,0,224,255, +86,253,92,251,56,252,180,0,121,4,249,2,0,254,193,248,131,245,98,248,211,255,195,2,94,255,58,253,109,255,162,2, +191,3,28,1,136,252,169,250,105,252,178,255,103,3,130,4,50,0,125,250,226,248,217,250,164,253,242,255,71,0,123,254, +23,253,168,253,163,254,173,254,94,255,236,1,152,3,112,2,151,1,166,2,139,1,124,252,62,248,55,249,232,253,11,1, +196,255,227,252,254,251,198,252,124,254,117,1,191,3,136,3,209,2,176,3,4,5,19,4,59,255,172,249,177,249,10,255, +187,2,25,2,8,0,58,254,247,253,83,0,221,1,92,255,168,252,26,254,82,1,89,2,158,0,116,253,145,251,140,253, +111,1,191,2,18,1,225,254,238,252,207,251,210,252,233,254,102,0,39,2,17,4,107,3,233,255,163,252,58,252,125,255, +18,4,157,4,182,255,15,251,97,251,24,255,23,2,135,1,168,253,85,250,159,250,73,253,1,0,194,1,216,1,12,1, +156,1,161,3,45,5,115,5,66,4,68,1,0,254,245,252,48,254,66,255,47,254,230,251,150,251,22,254,10,0,118,255, +39,255,53,1,103,3,228,3,233,3,200,3,101,1,3,253,65,251,168,254,143,2,157,1,36,254,104,253,133,254,159,253, +35,252,21,254,27,2,60,3,117,1,176,1,82,4,128,3,4,254,255,250,108,254,229,2,168,2,241,254,62,252,99,252, +158,253,201,253,53,253,20,253,107,253,141,254,241,0,212,2,63,2,211,255,26,253,249,251,47,255,209,5,159,9,3,7, +249,1,102,255,174,254,28,253,190,251,156,253,128,1,169,2,221,255,118,252,180,250,29,250,180,250,114,253,132,1,194,3, +78,2,167,255,55,255,251,255,222,254,85,252,107,251,170,253,25,2,136,5,229,4,108,1,84,255,253,255,107,1,246,1, +53,1,198,255,50,255,227,255,141,0,69,0,18,255,220,253,193,254,190,1,153,2,85,255,87,252,19,253,247,254,213,254, +30,253,231,251,241,252,227,255,170,1,112,0,26,254,6,253,93,254,92,2,233,5,125,4,141,255,41,253,205,254,170,0, +114,0,101,255,122,255,77,0,251,254,72,251,29,250,206,253,72,1,115,0,58,254,46,254,160,255,214,0,26,1,17,0, +128,254,14,254,121,255,25,2,193,3,242,1,11,254,173,252,50,254,52,254,60,252,183,252,5,1,167,5,190,6,172,2, +41,252,108,249,168,252,55,1,240,2,24,2,58,0,25,255,182,255,233,255,23,254,31,253,60,255,76,2,179,3,236,1, +246,252,83,249,113,251,27,0,5,2,199,1,150,1,71,1,254,0,121,0,195,254,225,253,241,255,124,2,80,3,158,3, +79,3,71,1,138,254,254,251,103,250,211,251,253,254,241,255,181,255,75,1,92,2,173,0,1,255,228,254,234,254,65,255, +219,0,226,2,40,3,99,255,202,249,185,249,134,0,148,5,147,3,125,254,41,251,207,251,132,0,171,4,87,3,170,254, +30,252,153,253,241,0,2,2,160,255,65,254,207,255,229,255,144,253,231,252,1,254,211,254,118,0,44,2,53,1,11,255, +88,254,159,254,122,255,143,0,170,0,0,1,42,2,4,1,63,254,82,254,103,255,200,253,254,252,150,255,174,1,152,1, +212,0,77,255,74,254,104,255,91,0,120,0,16,2,6,3,154,0,6,254,72,253,124,252,182,252,244,254,109,0,54,1, +225,2,70,2,179,254,94,253,67,255,223,0,5,2,191,2,58,1,80,255,150,255,66,0,208,255,6,255,22,254,160,254, +239,1,218,3,32,1,131,253,5,252,156,251,87,253,182,1,23,4,49,2,35,0,201,0,242,1,18,1,8,255,187,254, +52,0,245,255,43,254,123,255,27,3,129,2,86,253,159,250,112,253,133,1,155,2,32,1,172,255,89,255,10,0,149,1, +95,2,149,0,28,254,19,254,139,255,95,0,25,1,162,1,35,0,104,253,172,252,219,254,56,1,193,0,157,254,189,254, +213,0,11,1,232,255,67,0,120,0,28,255,221,254,130,255,0,254,154,252,119,255,12,4,172,4,211,0,124,253,154,254, +40,1,209,255,18,253,255,254,90,3,247,3,23,1,143,253,116,250,215,250,77,0,70,5,143,4,44,1,181,0,41,3, +123,3,219,254,232,249,158,250,109,255,78,3,49,5,169,4,68,0,69,251,240,250,74,254,222,0,215,1,209,2,224,3, +124,3,211,0,136,253,222,251,110,252,153,255,181,4,38,7,231,3,201,255,189,255,194,0,152,254,39,251,202,250,133,254, +234,2,138,3,58,0,187,252,170,251,103,253,133,0,190,1,187,0,112,1,122,3,222,1,61,254,199,254,27,2,70,2, +92,255,129,253,213,253,104,254,75,254,94,255,25,2,78,2,19,255,18,255,131,3,129,3,59,253,221,250,21,0,41,4, +113,1,2,253,126,253,207,1,137,3,242,0,11,255,229,255,5,0,223,254,95,255,3,1,155,1,165,1,125,1,53,0, +173,254,111,254,215,254,144,254,15,254,31,255,37,2,144,4,95,4,107,3,144,3,46,3,213,0,60,254,145,253,203,254, +249,255,181,255,7,255,218,254,237,253,172,252,53,254,198,2,195,6,48,7,112,3,11,254,161,251,238,252,82,254,239,254, +95,0,244,1,71,3,171,4,124,3,55,255,113,253,201,0,143,4,102,4,15,0,13,251,79,251,206,0,126,3,111,0, +113,253,177,253,8,0,142,3,242,4,183,1,127,254,25,255,136,0,87,1,240,2,154,3,38,2,40,0,41,253,254,249, +27,251,233,255,22,3,197,3,48,3,200,0,145,254,84,254,172,253,100,253,14,1,45,5,134,4,182,1,33,0,104,254, +167,252,40,253,39,0,222,3,197,4,36,1,62,254,62,0,155,1,65,254,236,251,36,254,168,0,45,1,168,1,194,2, +78,3,215,1,195,254,206,253,100,0,63,2,53,1,4,0,114,255,91,254,151,253,62,253,184,252,209,253,141,0,158,1, +254,0,133,1,162,2,41,2,90,0,209,254,20,255,126,0,177,255,196,252,128,252,98,255,26,1,241,0,103,0,156,254, +110,252,176,252,140,254,188,255,181,0,194,1,32,2,88,2,177,2,126,2,152,1,94,255,106,252,186,252,174,0,244,1, +243,254,254,253,123,0,228,0,55,254,196,252,241,253,171,255,197,0,32,2,142,4,234,5,79,3,251,254,116,253,249,253, +60,254,70,0,47,4,185,4,161,0,52,253,212,252,192,252,10,252,247,252,138,0,193,4,150,6,2,5,162,1,59,254, +59,252,254,253,22,3,163,5,37,2,159,253,99,253,52,255,245,254,29,253,13,252,240,252,241,255,153,3,59,5,180,3, +71,0,157,253,76,254,178,1,220,3,40,3,245,1,84,1,209,255,110,253,216,251,71,252,47,255,216,2,184,3,136,1, +181,255,73,255,112,254,112,253,22,254,18,0,142,1,67,1,161,255,221,254,218,255,93,0,50,255,112,254,21,255,122,255, +4,255,190,254,57,255,95,0,63,1,46,0,126,253,241,251,17,253,209,255,120,2,122,3,21,2,166,255,160,254,192,255, +78,1,253,0,137,254,151,252,168,253,139,0,223,1,127,0,92,254,144,253,104,254,239,255,2,1,253,0,75,0,25,0, +178,0,5,1,125,0,188,255,22,255,73,254,204,253,168,254,197,0,43,2,191,0,126,253,132,252,177,255,98,3,16,3, +232,254,37,251,183,251,113,0,135,4,135,3,220,254,218,251,87,253,76,1,128,3,205,1,136,254,161,253,151,255,150,1, +120,1,114,255,96,253,98,253,81,255,121,0,100,255,219,253,243,253,82,255,66,0,18,0,194,255,74,0,250,0,208,0, +100,0,185,0,28,1,53,0,64,254,176,252,95,252,19,253,64,254,98,255,251,255,15,0,35,0,104,0,153,0,162,0, +117,0,223,255,76,255,143,255,155,0,106,1,233,0,247,254,43,253,125,253,128,255,244,0,230,0,246,255,238,254,166,254, +100,255,29,0,64,0,124,0,174,0,16,0,57,255,254,254,229,254,145,254,110,254,183,254,138,255,163,0,208,0,206,255, +25,255,100,255,245,255,138,0,236,0,94,0,130,255,178,255,64,0,196,255,213,254,174,254,85,255,64,0,178,0,33,0, +95,255,130,255,242,255,149,255,216,254,227,254,52,0,255,1,82,2,106,0,128,254,119,254,225,254,75,254,16,254,10,255, +216,255,42,0,57,1,97,2,134,1,245,254,212,253,0,0,11,3,29,3,155,0,113,255,91,0,53,0,87,254,56,253, +89,253,148,253,97,254,32,0,53,1,137,0,249,254,233,253,56,254,164,255,232,0,97,1,69,1,145,0,208,255,197,255, +109,255,50,254,119,254,27,1,112,2,37,0,14,253,63,252,111,253,250,254,24,0,26,1,23,2,225,1,52,0,60,255, +3,0,164,0,24,0,130,255,104,255,164,255,82,0,145,0,101,255,218,253,141,253,188,254,165,0,189,1,180,0,191,254, +109,254,33,0,239,1,231,1,15,0,17,255,220,0,190,2,41,1,201,253,250,252,139,255,121,2,173,2,232,255,20,253, +221,252,194,254,196,0,177,1,44,1,46,0,87,0,65,1,83,1,178,0,31,0,120,255,96,255,162,0,218,1,68,1, +72,255,141,253,108,253,230,254,45,0,31,0,221,255,12,0,244,255,254,255,167,0,183,0,2,0,110,0,72,2,103,3, +38,2,39,255,39,253,77,254,155,0,69,0,158,253,55,252,72,253,49,255,95,0,153,0,228,0,203,1,254,1,234,0, +172,0,60,2,63,3,231,1,102,255,188,253,186,253,182,254,87,255,90,255,140,255,225,255,211,255,201,255,24,0,111,0, +33,1,171,2,12,4,175,3,108,1,201,254,154,253,20,254,119,254,203,253,165,253,128,255,251,1,108,2,78,0,243,253, +194,253,103,255,157,0,124,0,98,0,110,1,154,2,235,1,15,255,68,252,29,252,175,254,178,1,0,3,61,2,143,0, +64,255,203,254,242,254,71,255,118,255,184,255,132,0,84,1,239,0,131,255,168,254,12,255,209,255,59,0,140,0,10,1, +44,1,105,0,134,255,158,255,7,0,53,255,168,253,116,253,38,255,45,1,225,1,231,0,46,255,34,254,111,254,154,255, +177,0,8,1,165,0,16,0,127,255,213,254,109,254,176,254,47,255,99,255,171,255,129,0,139,1,11,2,181,1,239,0, +115,0,129,0,137,0,229,255,161,254,155,253,173,253,140,254,237,254,96,254,29,254,87,255,152,1,49,3,228,2,9,1, +51,255,177,254,103,255,22,0,173,255,88,254,85,253,137,253,167,254,198,255,90,0,114,0,170,0,139,1,173,2,13,3, +101,2,129,1,44,1,55,1,194,0,103,255,209,253,241,252,29,253,38,254,144,255,169,0,29,1,88,1,192,1,26,2, +13,2,171,1,60,1,210,0,71,0,155,255,23,255,211,254,103,254,167,253,70,253,22,254,213,255,45,1,15,1,9,0, +203,255,242,0,253,1,57,1,43,255,254,253,189,254,24,0,48,0,246,254,0,254,101,254,150,255,105,0,121,0,77,0, +139,0,59,1,189,1,131,1,174,0,252,255,247,255,83,0,65,0,134,255,217,254,2,255,199,255,40,0,185,255,74,255, +182,255,147,0,198,0,66,0,34,0,220,0,104,1,192,0,138,255,90,255,90,0,238,0,1,0,144,254,71,254,101,255, +188,0,86,1,78,1,10,1,115,0,103,255,119,254,108,254,70,255,88,0,44,1,190,1,244,1,119,1,73,0,28,255, +186,254,42,255,208,255,55,0,74,0,253,255,109,255,28,255,125,255,56,0,143,0,132,0,5,1,104,2,79,3,33,2, +128,255,246,253,216,254,139,0,162,0,5,255,210,253,101,254,179,255,26,0,173,255,178,255,141,0,88,1,104,1,35,1, +11,1,222,0,48,0,107,255,80,255,198,255,230,255,65,255,113,254,77,254,241,254,214,255,120,0,164,0,117,0,90,0, +196,0,108,1,80,1,10,0,216,254,94,255,63,1,19,2,95,0,203,253,73,253,85,255,88,1,11,1,72,255,157,254, +239,255,159,1,218,1,153,0,25,255,72,254,80,254,8,255,9,0,158,0,97,0,207,255,184,255,8,0,230,255,29,255, +180,254,132,255,213,0,28,1,251,255,167,254,80,254,218,254,106,255,150,255,133,255,89,255,40,255,82,255,38,0,44,1, +114,1,197,0,19,0,35,0,128,0,55,0,61,255,114,254,87,254,129,254,133,254,178,254,93,255,14,0,13,0,140,255, +117,255,21,0,169,0,127,0,232,255,138,255,87,255,217,254,60,254,74,254,45,255,251,255,224,255,53,255,244,254,102,255, +253,255,86,0,177,0,62,1,139,1,20,1,28,0,116,255,146,255,44,0,179,0,207,0,101,0,157,255,247,254,4,255, +186,255,81,0,43,0,170,255,183,255,132,0,60,1,19,1,68,0,176,255,197,255,45,0,101,0,73,0,0,0,187,255, +176,255,241,255,54,0,18,0,152,255,141,255,120,0,165,1,182,1,83,0,209,254,187,254,251,255,253,0,166,0,153,255, +69,255,21,0,11,1,4,1,251,255,233,254,158,254,14,255,160,255,240,255,18,0,64,0,106,0,59,0,158,255,4,255, +5,255,180,255,118,0,178,0,110,0,34,0,6,0,228,255,150,255,101,255,161,255,11,0,13,0,144,255,53,255,139,255, +69,0,140,0,16,0,118,255,138,255,74,0,241,0,234,0,108,0,17,0,21,0,44,0,5,0,192,255,174,255,213,255, +222,255,150,255,65,255,81,255,200,255,45,0,34,0,229,255,254,255,138,0,2,1,229,0,85,0,238,255,2,0,68,0, +56,0,205,255,97,255,67,255,99,255,132,255,150,255,190,255,28,0,153,0,245,0,244,0,149,0,22,0,211,255,252,255, +101,0,167,0,112,0,207,255,41,255,241,254,69,255,216,255,58,0,78,0,108,0,230,0,122,1,109,1,114,0,59,255, +227,254,173,255,172,0,207,0,21,0,103,255,105,255,195,255,200,255,113,255,88,255,223,255,165,0,248,0,164,0,19,0, +211,255,13,0,124,0,178,0,120,0,251,255,158,255,159,255,215,255,238,255,202,255,172,255,210,255,42,0,104,0,109,0, +77,0,35,0,248,255,229,255,17,0,102,0,135,0,57,0,194,255,154,255,211,255,4,0,231,255,194,255,247,255,105,0, +144,0,49,0,174,255,146,255,236,255,94,0,147,0,130,0,78,0,24,0,252,255,0,0,254,255,202,255,129,255,133,255, +247,255,104,0,70,0,159,255,35,255,91,255,9,0,139,0,157,0,135,0,145,0,160,0,113,0,254,255,141,255,97,255, +144,255,249,255,86,0,82,0,224,255,94,255,74,255,186,255,67,0,131,0,139,0,157,0,175,0,120,0,246,255,143,255, +154,255,238,255,35,0,25,0,250,255,221,255,166,255,93,255,83,255,184,255,73,0,146,0,124,0,84,0,76,0,61,0, +253,255,177,255,162,255,211,255,10,0,37,0,52,0,64,0,36,0,213,255,141,255,146,255,218,255,18,0,12,0,231,255, +213,255,226,255,253,255,31,0,64,0,71,0,45,0,25,0,47,0,86,0,77,0,18,0,233,255,253,255,20,0,230,255, +150,255,142,255,232,255,63,0,56,0,250,255,235,255,29,0,65,0,38,0,255,255,4,0,27,0,4,0,208,255,204,255, +11,0,60,0,14,0,161,255,99,255,141,255,242,255,62,0,76,0,50,0,25,0,17,0,11,0,236,255,188,255,178,255, +250,255,103,0,133,0,27,0,130,255,82,255,171,255,22,0,39,0,255,255,14,0,100,0,152,0,88,0,221,255,154,255, +180,255,236,255,9,0,19,0,34,0,40,0,13,0,230,255,222,255,254,255,34,0,45,0,38,0,28,0,6,0,219,255, +176,255,175,255,226,255,35,0,68,0,46,0,241,255,177,255,159,255,208,255,38,0,95,0,84,0,32,0,250,255,247,255, +254,255,0,0,11,0,40,0,59,0,40,0,4,0,254,255,22,0,25,0,231,255,172,255,166,255,216,255,10,0,16,0, +1,0,5,0,28,0,36,0,23,0,22,0,56,0,96,0,97,0,49,0,239,255,195,255,178,255,172,255,164,255,166,255, +195,255,253,255,56,0,82,0,65,0,31,0,16,0,23,0,31,0,23,0,13,0,16,0,14,0,227,255,144,255,85,255, +115,255,225,255,79,0,119,0,92,0,55,0,55,0,78,0,84,0,48,0,248,255,211,255,218,255,254,255,24,0,14,0, +233,255,203,255,207,255,246,255,38,0,70,0,73,0,47,0,2,0,213,255,187,255,194,255,225,255,3,0,19,0,15,0, +7,0,10,0,23,0,30,0,22,0,7,0,3,0,16,0,34,0,41,0,39,0,31,0,7,0,210,255,145,255,128,255, +197,255,64,0,150,0,134,0,46,0,228,255,223,255,10,0,41,0,29,0,255,255,246,255,9,0,28,0,14,0,225,255, +186,255,191,255,240,255,40,0,68,0,72,0,78,0,91,0,88,0,54,0,8,0,243,255,8,0,52,0,88,0,94,0, +65,0,7,0,208,255,195,255,233,255,26,0,38,0,13,0,0,0,30,0,70,0,65,0,10,0,221,255,231,255,30,0, +78,0,86,0,61,0,20,0,231,255,197,255,187,255,199,255,214,255,215,255,211,255,222,255,249,255,15,0,18,0,6,0, +254,255,5,0,27,0,50,0,56,0,36,0,5,0,249,255,6,0,11,0,235,255,186,255,176,255,226,255,30,0,48,0, +30,0,28,0,60,0,84,0,66,0,33,0,38,0,74,0,83,0,32,0,218,255,191,255,214,255,241,255,242,255,232,255, +244,255,21,0,45,0,36,0,2,0,227,255,227,255,2,0,39,0,48,0,20,0,241,255,230,255,239,255,240,255,223,255, +219,255,250,255,38,0,51,0,26,0,252,255,245,255,247,255,240,255,239,255,10,0,48,0,52,0,8,0,218,255,220,255, +11,0,50,0,48,0,20,0,249,255,236,255,237,255,254,255,22,0,25,0,249,255,202,255,188,255,222,255,15,0,41,0, +36,0,27,0,27,0,27,0,19,0,4,0,251,255,251,255,5,0,21,0,25,0,1,0,213,255,185,255,207,255,6,0, +44,0,42,0,24,0,21,0,31,0,27,0,4,0,239,255,236,255,238,255,234,255,238,255,4,0,29,0,28,0,2,0, +244,255,8,0,40,0,44,0,15,0,241,255,240,255,4,0,21,0,25,0,20,0,15,0,15,0,20,0,26,0,25,0, +14,0,7,0,18,0,37,0,35,0,7,0,232,255,228,255,246,255,6,0,9,0,17,0,37,0,50,0,31,0,249,255, +232,255,1,0,41,0,52,0,22,0,235,255,218,255,241,255,25,0,44,0,22,0,237,255,223,255,3,0,53,0,60,0, +10,0,211,255,211,255,7,0,47,0,30,0,239,255,224,255,7,0,62,0,76,0,39,0,244,255,223,255,239,255,13,0, +25,0,6,0,228,255,208,255,217,255,244,255,8,0,11,0,10,0,20,0,41,0,56,0,54,0,37,0,20,0,12,0, +16,0,24,0,22,0,4,0,237,255,234,255,4,0,38,0,45,0,20,0,250,255,255,255,36,0,67,0,62,0,23,0, +238,255,226,255,245,255,22,0,45,0,41,0,15,0,240,255,223,255,222,255,229,255,235,255,243,255,3,0,18,0,17,0, +252,255,228,255,228,255,1,0,34,0,40,0,13,0,236,255,229,255,248,255,8,0,251,255,219,255,204,255,229,255,19,0, +41,0,20,0,238,255,221,255,241,255,19,0,38,0,35,0,20,0,5,0,245,255,230,255,223,255,235,255,4,0,21,0, +16,0,250,255,233,255,236,255,251,255,9,0,14,0,17,0,24,0,30,0,25,0,9,0,251,255,252,255,9,0,20,0, +19,0,10,0,5,0,5,0,5,0,255,255,246,255,245,255,5,0,31,0,48,0,40,0,9,0,233,255,228,255,253,255, +26,0,31,0,6,0,230,255,219,255,233,255,254,255,7,0,2,0,252,255,255,255,8,0,14,0,14,0,15,0,21,0, +24,0,10,0,237,255,214,255,221,255,254,255,26,0,21,0,246,255,223,255,233,255,9,0,33,0,34,0,21,0,15,0, +16,0,13,0,255,255,237,255,233,255,246,255,10,0,20,0,14,0,255,255,243,255,241,255,246,255,254,255,8,0,21,0, +32,0,31,0,14,0,246,255,234,255,241,255,3,0,17,0,23,0,24,0,20,0,8,0,243,255,222,255,219,255,240,255, +14,0,30,0,22,0,0,0,240,255,243,255,3,0,20,0,28,0,30,0,31,0,31,0,19,0,251,255,228,255,224,255, +241,255,6,0,11,0,253,255,237,255,234,255,244,255,4,0,19,0,32,0,41,0,38,0,20,0,253,255,243,255,0,0, +23,0,33,0,18,0,245,255,229,255,238,255,2,0,10,0,253,255,238,255,246,255,20,0,44,0,37,0,3,0,231,255, +239,255,17,0,46,0,44,0,15,0,243,255,239,255,250,255,255,255,242,255,221,255,218,255,242,255,24,0,47,0,41,0, +15,0,250,255,251,255,16,0,40,0,49,0,37,0,12,0,245,255,233,255,229,255,227,255,226,255,231,255,248,255,16,0, +34,0,32,0,12,0,249,255,249,255,14,0,37,0,40,0,20,0,251,255,244,255,2,0,19,0,18,0,254,255,235,255, +239,255,9,0,36,0,40,0,17,0,245,255,233,255,242,255,2,0,9,0,4,0,253,255,0,0,12,0,21,0,17,0, +4,0,248,255,246,255,254,255,6,0,7,0,2,0,253,255,250,255,250,255,251,255,254,255,3,0,13,0,24,0,32,0, +32,0,26,0,15,0,4,0,251,255,245,255,245,255,251,255,1,0,3,0,254,255,246,255,243,255,251,255,9,0,21,0, +21,0,14,0,6,0,5,0,11,0,16,0,13,0,2,0,247,255,242,255,244,255,250,255,3,0,12,0,19,0,20,0, +13,0,255,255,245,255,245,255,2,0,19,0,27,0,22,0,7,0,248,255,241,255,244,255,252,255,6,0,12,0,14,0, +11,0,5,0,1,0,0,0,0,0,255,255,252,255,252,255,0,0,7,0,10,0,5,0,249,255,243,255,247,255,3,0, +11,0,9,0,255,255,249,255,254,255,10,0,17,0,11,0,253,255,239,255,234,255,240,255,251,255,8,0,19,0,22,0, +13,0,251,255,234,255,233,255,251,255,19,0,30,0,21,0,0,0,240,255,238,255,241,255,240,255,235,255,237,255,254,255, +21,0,32,0,22,0,254,255,236,255,236,255,251,255,10,0,18,0,19,0,17,0,10,0,250,255,231,255,223,255,240,255, +18,0,45,0,44,0,16,0,243,255,234,255,250,255,15,0,21,0,9,0,247,255,238,255,242,255,255,255,10,0,16,0, +14,0,6,0,251,255,245,255,249,255,6,0,15,0,9,0,247,255,233,255,234,255,249,255,5,0,6,0,0,0,1,0, +14,0,28,0,31,0,19,0,5,0,255,255,254,255,248,255,238,255,236,255,250,255,16,0,24,0,7,0,239,255,236,255, +4,0,33,0,38,0,15,0,247,255,249,255,15,0,24,0,0,0,216,255,199,255,224,255,15,0,42,0,33,0,4,0, +244,255,249,255,5,0,5,0,254,255,2,0,23,0,41,0,36,0,8,0,235,255,230,255,248,255,12,0,18,0,12,0, +5,0,4,0,1,0,246,255,234,255,230,255,242,255,6,0,22,0,29,0,29,0,21,0,5,0,242,255,231,255,239,255, +6,0,24,0,17,0,246,255,223,255,225,255,248,255,12,0,13,0,0,0,251,255,9,0,28,0,30,0,9,0,241,255, +234,255,247,255,6,0,6,0,249,255,241,255,246,255,3,0,9,0,3,0,251,255,252,255,8,0,19,0,20,0,12,0, +6,0,6,0,9,0,8,0,5,0,4,0,7,0,8,0,3,0,249,255,246,255,253,255,9,0,13,0,2,0,244,255, +239,255,250,255,11,0,19,0,14,0,6,0,3,0,5,0,5,0,254,255,247,255,247,255,3,0,14,0,13,0,255,255, +240,255,238,255,248,255,7,0,14,0,12,0,7,0,5,0,7,0,7,0,4,0,0,0,255,255,2,0,4,0,4,0, +2,0,255,255,253,255,252,255,250,255,251,255,0,0,6,0,9,0,6,0,1,0,255,255,3,0,9,0,10,0,4,0, +252,255,251,255,255,255,4,0,4,0,254,255,250,255,251,255,255,255,1,0,255,255,253,255,255,255,6,0,12,0,11,0, +5,0,254,255,252,255,255,255,2,0,2,0,1,0,1,0,2,0,1,0,253,255,248,255,248,255,254,255,6,0,9,0, +5,0,255,255,251,255,251,255,254,255,255,255,254,255,253,255,0,0,2,0,3,0,255,255,252,255,252,255,1,0,5,0, +5,0,2,0,253,255,252,255,255,255,2,0,3,0,2,0,0,0,0,0,2,0,3,0,4,0,4,0,3,0,2,0, +1,0,0,0,255,255,254,255,254,255,254,255,255,255,1,0,3,0,4,0,3,0,0,0,0,0,3,0,7,0,8,0, +4,0,254,255,250,255,252,255,1,0,4,0,2,0,254,255,252,255,254,255,3,0,6,0,5,0,2,0,0,0,0,0, +2,0,1,0,254,255,251,255,251,255,253,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0, +3,0,4,0,2,0,254,255,250,255,249,255,252,255,1,0,4,0,4,0,1,0,254,255,253,255,253,255,0,0,3,0, +5,0,5,0,2,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0,1,0,2,0,3,0,2,0,0,0,255,255, +255,255,0,0,3,0,4,0,4,0,2,0,1,0,255,255,255,255,0,0,2,0,4,0,4,0,3,0,0,0,255,255, +255,255,0,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,255,255,0,0,2,0,4,0,4,0, +2,0,0,0,254,255,253,255,255,255,1,0,3,0,3,0,1,0,253,255,251,255,251,255,254,255,2,0,4,0,2,0, +0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,254,255,252,255,253,255,255,255,1,0,1,0, +0,0,0,0,1,0,3,0,4,0,2,0,254,255,253,255,255,255,2,0,3,0,1,0,253,255,252,255,255,255,3,0, +5,0,4,0,2,0,0,0,0,0,2,0,2,0,2,0,1,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,254,255,254,255,1,0,3,0, +3,0,0,0,254,255,254,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,255,255,3,0, +5,0,3,0,255,255,252,255,252,255,255,255,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,255,255,2,0, +5,0,5,0,3,0,0,0,255,255,0,0,1,0,0,0,254,255,254,255,255,255,1,0,2,0,0,0,254,255,255,255, +2,0,4,0,4,0,1,0,0,0,0,0,2,0,4,0,2,0,0,0,254,255,254,255,254,255,255,255,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,4,0,5,0,2,0,253,255,250,255,251,255, +0,0,4,0,4,0,1,0,253,255,253,255,0,0,2,0,2,0,1,0,2,0,4,0,6,0,3,0,254,255,251,255, +252,255,1,0,4,0,3,0,255,255,253,255,254,255,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +3,0,5,0,5,0,2,0,255,255,255,255,1,0,2,0,1,0,254,255,252,255,254,255,1,0,1,0,254,255,251,255, +253,255,2,0,6,0,6,0,2,0,255,255,0,0,3,0,3,0,254,255,250,255,249,255,254,255,3,0,5,0,1,0, +253,255,251,255,253,255,1,0,4,0,5,0,5,0,4,0,1,0,254,255,251,255,252,255,254,255,0,0,1,0,1,0, +2,0,3,0,2,0,255,255,252,255,253,255,1,0,6,0,6,0,3,0,0,0,0,0,1,0,1,0,255,255,254,255, +1,0,5,0,6,0,2,0,252,255,248,255,251,255,0,0,3,0,2,0,255,255,255,255,2,0,5,0,4,0,0,0, +254,255,254,255,1,0,3,0,2,0,255,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,3,0,3,0,1,0, +0,0,0,0,1,0,0,0,255,255,254,255,254,255,255,255,1,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,255,255,1,0,2,0,1,0,0,0,254,255,255,255,1,0,3,0,3,0,1,0, +255,255,254,255,254,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,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,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,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,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,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,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,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,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,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, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,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,1,0,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,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, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,1,0, +1,0,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,1,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/spider3.pcm b/src/client/sound/data/spider3.pcm new file mode 100755 index 0000000..2dde877 --- /dev/null +++ b/src/client/sound/data/spider3.pcm @@ -0,0 +1,1458 @@ +unsigned char PCM_spider3[46566] = { +1,0,0,0,2,0,0,0,68,172,0,0,235,90,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,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,1,0,1,0,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,253,255,252,255,255,255,0,0,2,0,6,0,6,0,0,0,252,255, +254,255,0,0,0,0,1,0,254,255,248,255,245,255,248,255,254,255,2,0,3,0,2,0,0,0,1,0,3,0,3,0, +1,0,1,0,5,0,8,0,4,0,255,255,255,255,253,255,249,255,247,255,250,255,250,255,250,255,252,255,255,255,255,255, +253,255,251,255,252,255,0,0,8,0,12,0,9,0,3,0,253,255,247,255,244,255,248,255,0,0,5,0,6,0,5,0, +2,0,1,0,6,0,10,0,8,0,8,0,14,0,14,0,6,0,2,0,0,0,246,255,239,255,244,255,253,255,254,255, +253,255,255,255,1,0,255,255,250,255,244,255,246,255,4,0,22,0,34,0,28,0,9,0,253,255,251,255,253,255,6,0, +16,0,5,0,234,255,228,255,247,255,3,0,6,0,14,0,17,0,7,0,1,0,1,0,253,255,254,255,2,0,252,255, +248,255,1,0,0,0,249,255,4,0,17,0,13,0,17,0,21,0,1,0,232,255,230,255,237,255,245,255,18,0,43,0, +20,0,234,255,225,255,241,255,12,0,39,0,33,0,253,255,233,255,238,255,250,255,1,0,239,255,216,255,246,255,40,0, +29,0,247,255,1,0,39,0,51,0,16,0,220,255,218,255,245,255,231,255,233,255,36,0,30,0,218,255,243,255,67,0, +57,0,16,0,52,0,92,0,29,0,162,255,134,255,3,0,132,0,130,0,88,0,74,0,11,0,202,255,2,0,76,0, +34,0,227,255,228,255,2,0,71,0,152,0,151,0,119,0,146,0,134,0,25,0,193,255,154,255,130,255,223,255,170,0, +255,0,132,0,204,255,114,255,200,255,135,0,199,0,99,0,55,0,84,0,4,0,136,255,141,255,222,255,41,0,144,0, +247,0,10,1,164,0,232,255,156,255,94,0,72,1,92,1,42,1,21,1,99,0,80,255,251,254,98,255,0,0,164,0, +178,0,11,0,201,255,251,255,182,255,223,255,98,1,32,2,169,0,116,255,32,0,176,0,71,0,140,0,117,1,110,1, +206,0,183,0,147,0,138,255,72,254,26,254,164,255,16,2,79,3,114,2,234,0,83,0,108,0,113,0,139,0,249,0, +255,0,205,255,33,254,125,253,253,253,38,255,253,0,127,2,157,2,168,2,250,2,3,1,242,253,31,255,139,3,24,4, +39,0,147,253,125,253,41,253,165,253,91,0,126,2,162,2,149,2,124,1,77,254,94,253,245,0,144,3,8,2,85,0, +20,0,7,255,200,253,203,253,118,254,231,255,47,1,8,0,205,254,82,0,239,0,133,255,24,1,243,3,1,2,125,254, +109,254,214,254,203,254,50,1,112,2,235,254,57,252,119,254,57,1,205,0,0,255,197,254,146,0,140,1,12,0,159,255, +111,2,137,4,28,3,51,0,47,254,51,254,124,255,4,255,242,252,54,253,143,255,111,0,168,0,207,2,110,5,112,5, +14,2,229,253,30,253,140,255,90,0,30,254,115,252,67,253,227,254,121,255,182,255,131,2,44,7,114,7,145,1,110,252, +117,252,167,254,22,0,146,0,7,0,187,254,57,253,39,252,15,253,194,255,167,1,54,2,165,2,159,2,6,2,239,0, +21,254,153,251,77,254,232,3,228,4,124,0,153,252,178,252,163,254,160,254,136,253,191,255,24,4,244,4,185,2,189,0, +73,254,177,252,236,254,32,1,192,255,210,254,215,255,60,255,18,253,130,251,5,252,192,0,9,6,140,4,127,255,160,254, +110,255,31,254,88,254,3,1,70,2,220,0,109,253,15,250,162,249,4,251,48,253,74,2,75,6,185,3,146,0,41,2, +18,3,90,2,0,4,195,3,112,255,142,253,154,253,232,250,108,250,164,254,23,0,178,253,228,253,219,0,80,3,249,4, +216,4,39,2,62,255,191,253,179,253,147,255,219,1,67,1,183,253,250,250,18,252,157,255,32,1,168,254,190,251,210,252, +233,0,219,2,101,1,143,0,90,1,66,1,73,1,238,1,169,255,173,252,69,254,58,0,179,254,120,255,204,1,107,254, +217,250,182,255,110,7,117,10,196,7,112,255,155,248,27,252,103,2,214,0,219,252,19,252,253,250,176,250,226,252,165,253, +13,0,67,8,34,12,186,4,64,253,80,254,233,1,8,2,16,0,155,255,73,1,130,0,234,250,158,247,152,252,154,4, +110,8,103,7,92,3,21,254,6,251,183,253,103,5,60,11,165,8,79,0,111,250,33,249,212,249,244,251,35,255,13,1, +238,0,87,0,45,255,168,252,247,251,221,255,201,3,79,3,253,1,58,2,110,0,184,252,177,251,147,254,130,3,130,6, +33,3,232,252,201,251,19,255,145,1,97,2,165,1,144,0,142,0,155,253,95,249,217,254,180,8,6,5,223,249,188,249, +91,0,181,2,102,2,43,255,49,251,129,1,22,11,46,4,237,245,52,248,61,5,101,8,113,1,102,252,206,253,216,1, +163,1,160,251,109,248,82,255,7,10,45,12,21,4,248,252,199,254,182,3,145,3,47,0,92,255,128,0,183,254,231,249, +92,248,183,252,148,0,12,255,218,251,64,252,170,1,37,9,132,11,224,5,254,254,113,252,83,253,150,0,134,2,232,253, +248,248,160,253,19,5,250,2,235,251,236,251,117,2,203,5,91,2,94,254,194,254,254,255,63,255,85,0,122,3,89,2, +54,252,170,248,228,251,146,0,225,0,56,0,35,3,30,4,47,255,145,252,151,0,198,3,178,2,64,0,205,252,236,250, +220,253,69,0,139,253,134,250,22,252,61,3,4,13,236,14,32,5,15,253,175,254,238,1,138,1,187,254,68,250,229,250, +141,4,33,10,251,2,66,251,251,251,42,0,89,4,27,6,126,1,17,252,85,252,18,252,85,249,45,255,149,12,229,15, +161,4,37,250,25,250,251,254,97,2,0,3,7,0,53,251,248,249,146,252,171,253,212,253,247,1,6,7,19,6,11,1, +41,254,141,252,129,249,100,250,240,2,22,8,29,0,184,247,108,253,220,5,20,2,25,252,117,0,41,6,51,3,15,254, +3,254,245,255,218,255,57,255,220,255,215,255,20,255,209,1,82,6,79,4,148,253,240,251,194,253,200,252,140,254,9,6, +95,8,12,1,70,250,248,250,9,1,55,9,167,14,116,12,43,5,169,254,57,249,216,244,247,247,179,4,9,15,92,11, +141,255,218,248,79,250,200,254,229,0,210,254,153,255,29,10,105,18,116,7,27,243,154,239,184,1,129,20,253,19,59,2, +90,245,115,251,18,6,151,3,54,252,162,253,146,2,56,3,55,3,127,4,65,3,198,254,217,249,189,249,180,2,234,11, +225,6,122,249,47,247,248,255,152,2,127,251,215,248,61,3,37,16,159,13,179,250,193,236,64,243,254,5,16,20,169,18, +51,4,29,252,26,6,82,14,229,2,214,245,135,251,29,9,222,11,172,2,44,248,232,244,227,246,11,250,174,3,222,16, +163,15,170,2,20,1,158,6,12,255,65,247,136,2,189,13,182,4,49,248,244,248,71,253,88,253,77,255,194,3,56,5, +242,4,9,6,78,5,68,0,194,252,203,0,209,4,164,252,180,240,80,245,12,5,125,7,48,253,77,252,219,6,75,10, +150,1,60,251,121,255,96,4,62,2,186,0,28,2,77,253,194,247,106,253,43,3,120,0,74,7,170,23,46,20,158,253, +236,243,205,249,138,251,102,251,246,1,130,6,181,4,216,3,136,3,2,0,79,253,148,253,102,255,23,4,27,7,93,0, +140,246,25,247,69,0,78,6,233,3,192,255,25,5,74,14,59,7,0,245,104,242,36,255,225,7,16,12,250,12,241,3, +204,252,189,2,193,4,234,250,72,249,43,6,176,14,153,7,92,251,120,250,34,3,27,3,110,250,26,252,4,7,212,9, +208,3,202,254,225,254,219,3,37,6,187,254,72,247,125,251,9,6,132,12,203,11,9,4,175,249,92,247,100,4,84,22, +52,22,249,1,16,244,186,249,75,4,184,7,156,2,67,248,59,248,103,10,67,24,17,14,31,250,197,243,202,253,194,9, +79,12,103,8,100,2,158,249,25,246,126,252,91,255,182,252,54,3,26,12,226,6,122,251,134,246,216,248,118,2,231,11, +178,13,2,17,251,19,0,5,65,239,17,237,115,249,50,5,233,14,70,15,160,1,59,246,148,248,207,254,114,254,243,251, +68,4,113,22,80,27,115,7,158,240,13,236,103,246,197,5,135,19,205,21,96,7,29,245,55,242,58,251,128,253,118,255, +185,18,36,35,78,20,111,249,135,242,100,251,135,3,10,7,228,5,183,2,125,0,31,252,177,245,225,243,148,251,167,11, +110,22,1,13,148,251,154,247,17,250,98,247,135,251,47,11,155,21,122,17,4,4,28,246,30,241,186,244,79,248,76,254, +237,12,240,23,222,14,47,249,58,238,62,246,45,3,111,8,37,8,234,4,163,252,102,244,174,244,239,252,189,6,109,12, +127,10,184,1,138,246,235,240,191,248,96,6,186,6,15,252,114,251,223,3,53,2,159,249,121,251,198,3,47,4,101,0, +22,2,250,3,190,253,253,243,150,240,45,247,61,3,212,11,212,12,181,8,229,255,191,246,247,250,202,9,251,9,120,248, +28,241,188,250,167,254,123,247,126,244,135,246,90,245,33,247,158,0,119,5,51,2,243,5,183,14,90,7,89,245,48,244, +109,2,93,8,182,3,182,0,130,255,22,252,0,249,31,248,170,249,232,255,249,7,181,6,29,250,98,243,33,252,92,4, +128,1,100,254,198,253,156,249,80,249,77,254,130,251,109,246,83,253,228,4,140,1,82,0,91,6,175,4,82,248,171,242, +139,254,247,14,23,17,122,6,217,250,254,240,112,239,219,253,51,13,57,13,159,7,55,4,48,252,6,244,45,246,162,0, +239,12,95,18,22,9,230,250,117,246,184,247,179,246,142,246,98,250,6,255,154,254,25,249,223,249,173,3,93,7,60,2, +185,1,67,4,34,1,124,253,180,251,207,246,245,244,246,252,61,4,50,255,115,245,36,245,44,252,154,2,83,14,82,27, +252,16,101,246,18,243,38,4,99,5,62,249,131,245,10,247,66,249,9,253,43,250,7,246,147,254,101,9,226,9,159,7, +231,3,77,250,35,244,252,245,117,247,129,246,70,246,144,247,125,251,242,254,11,254,221,252,140,254,31,3,23,13,236,19, +194,7,47,240,64,229,171,235,56,246,154,253,105,3,131,8,158,9,207,4,29,255,236,254,69,3,239,4,127,0,88,253, +29,0,179,253,126,243,3,244,75,0,159,3,113,1,238,8,8,13,106,3,113,252,218,252,190,250,142,250,236,254,99,254, +240,251,226,254,34,255,104,249,134,248,176,254,236,2,59,1,138,252,82,249,37,251,117,1,198,5,66,1,22,249,148,251, +100,6,244,5,44,250,192,247,201,255,25,1,102,251,25,248,223,243,35,239,201,245,113,3,202,5,70,255,243,255,173,4, +104,1,55,250,159,248,44,252,159,255,2,255,149,251,19,251,213,251,64,248,239,247,60,4,12,19,217,20,222,9,115,252, +109,244,95,243,169,247,9,0,131,5,188,254,80,245,58,251,86,6,1,2,96,250,99,3,226,14,210,9,120,254,92,248, +144,241,77,237,64,246,211,0,183,253,107,249,61,255,0,1,208,250,218,253,138,10,1,17,146,15,155,13,193,11,205,7, +86,1,171,251,152,249,198,246,85,245,27,255,119,9,125,2,67,247,195,249,104,1,48,8,216,16,75,16,233,3,56,252, +147,251,96,250,235,252,11,2,22,2,236,0,200,254,72,246,73,243,72,254,254,4,125,254,201,254,187,13,122,21,64,10, +152,255,109,5,74,14,54,11,14,2,168,251,156,251,119,3,77,7,5,252,189,241,11,248,64,1,197,0,99,254,174,1, +198,8,105,10,134,255,111,245,96,251,75,5,70,5,20,2,117,255,172,251,86,253,72,3,19,3,178,254,243,254,139,4, +106,9,131,6,52,0,241,1,241,5,101,4,227,9,210,19,43,10,34,246,170,245,15,1,179,1,72,252,219,250,160,252, +180,3,188,14,34,17,196,4,224,246,62,248,99,3,32,5,101,255,234,0,35,3,233,251,22,247,116,252,48,2,213,4, +119,9,33,15,11,15,217,1,71,237,147,233,25,255,180,17,95,10,115,249,36,249,104,6,51,11,55,3,0,254,61,1, +39,6,194,9,3,7,163,251,91,248,77,4,66,8,17,253,193,251,13,9,7,13,134,0,87,244,107,247,202,7,102,17, +237,4,190,240,101,237,95,252,117,12,174,15,255,5,120,251,2,250,197,255,237,6,59,11,24,9,45,3,82,0,20,254, +148,245,70,238,56,246,101,8,156,17,66,13,129,6,56,2,44,254,119,252,0,255,184,3,132,9,145,11,101,2,175,244, +160,242,78,252,51,4,133,6,62,7,161,3,206,249,71,242,172,243,223,250,204,4,181,14,128,16,70,9,196,4,72,7, +194,7,14,1,128,247,107,243,123,250,59,3,68,253,141,238,243,237,41,0,185,19,50,24,81,12,180,254,46,254,210,6, +57,9,250,255,70,245,254,245,180,254,169,255,249,249,60,253,208,6,216,9,251,9,136,11,150,6,56,253,76,250,36,250, +168,244,62,242,165,252,212,8,116,7,28,0,177,1,5,7,57,7,190,5,208,0,138,247,71,248,42,3,20,6,54,3, +62,3,20,252,227,243,254,254,98,15,190,13,97,3,122,250,229,239,163,237,15,249,103,0,171,251,71,248,0,253,198,1, +86,0,5,254,23,0,74,255,4,249,30,249,105,255,39,0,184,254,133,253,91,243,16,236,21,251,216,15,232,17,110,9, +155,3,15,251,179,238,121,236,109,251,228,11,221,10,148,253,52,244,10,241,231,242,246,250,126,1,170,3,131,8,232,9, +206,255,142,246,231,247,89,254,130,6,138,10,40,2,84,247,220,248,194,0,105,0,246,244,162,235,145,243,152,2,56,3, +189,253,74,3,164,9,177,7,22,5,76,0,78,249,136,252,211,3,176,253,237,241,39,241,217,248,33,255,77,0,99,0, +87,6,223,13,218,12,52,5,205,252,153,246,155,250,27,7,163,9,166,254,84,247,242,249,125,255,145,5,150,10,156,10, +198,7,20,6,72,3,151,253,49,249,240,248,94,252,159,4,52,11,73,1,160,239,68,244,63,10,151,14,178,2,219,255, +206,1,199,255,234,2,127,4,158,252,206,254,78,10,27,0,127,233,0,240,109,14,109,26,216,8,229,244,7,246,167,3, +204,4,154,250,175,253,134,13,24,16,60,255,109,236,18,230,122,240,83,2,37,8,42,1,118,2,3,14,2,12,53,248, +160,238,187,254,214,16,24,10,19,248,221,249,196,7,173,1,14,239,17,242,44,5,183,8,48,254,245,250,233,255,68,5, +60,9,215,6,95,0,60,4,190,14,93,9,117,245,49,237,252,246,227,0,211,2,132,3,251,4,172,3,192,255,97,253, +178,0,2,7,42,7,51,0,124,250,99,248,205,249,63,2,94,10,123,7,170,2,202,5,174,6,85,0,152,252,133,252, +239,249,177,246,181,248,61,2,184,9,190,0,21,243,136,250,54,13,148,15,199,5,32,0,250,254,221,0,238,1,54,250, +10,242,112,246,62,1,37,7,190,3,190,249,140,248,150,4,178,8,53,2,250,8,75,25,32,24,162,3,137,235,212,216, +216,211,147,224,17,244,201,254,87,253,141,251,199,0,65,2,66,253,251,1,204,15,74,20,106,14,151,5,198,247,79,234, +188,231,211,237,221,245,75,253,4,4,255,10,14,11,25,255,93,248,155,2,254,12,72,13,58,10,211,3,136,253,58,253, +35,247,36,234,47,234,180,244,89,250,185,0,188,7,158,6,153,8,238,15,215,10,140,0,218,1,67,3,162,254,108,0, +95,4,241,0,233,253,133,255,135,0,131,255,231,252,189,253,13,8,164,16,200,8,83,249,66,245,189,255,82,11,70,11, +94,4,16,3,78,6,245,7,151,6,252,252,196,239,26,242,73,0,214,1,233,249,0,255,19,14,121,17,254,3,138,249, +38,5,170,23,24,18,99,249,200,235,48,239,181,244,98,245,85,244,65,248,110,1,66,5,92,1,8,0,248,3,92,9, +141,13,120,9,186,254,107,251,81,252,198,243,186,236,149,245,221,1,36,5,246,4,249,4,163,4,180,6,244,8,39,7, +180,4,214,3,68,0,227,249,191,246,160,248,54,250,155,247,81,244,2,246,38,253,240,4,51,7,154,2,142,254,226,2, +88,13,12,20,61,14,191,253,135,242,192,248,146,5,14,6,166,249,67,240,110,245,7,3,162,9,218,6,181,5,203,8, +154,10,89,11,255,9,111,3,136,254,190,254,38,250,186,242,101,246,39,255,53,255,165,255,4,10,196,16,81,11,68,6, +67,9,122,12,5,11,207,8,131,7,163,3,4,253,67,250,98,255,106,6,69,8,34,7,111,8,200,10,127,9,51,5, +149,2,190,3,56,7,50,10,143,9,171,5,115,3,160,4,104,5,220,3,27,0,73,251,231,252,202,8,59,18,131,14, +237,4,112,253,80,250,15,0,160,7,43,2,11,249,100,255,116,11,73,10,139,255,34,247,76,247,214,0,115,9,10,9, +55,7,179,6,190,0,149,250,156,251,18,255,142,4,22,13,59,13,138,3,49,0,143,4,39,2,206,249,0,249,21,0, +24,3,11,255,218,252,237,254,66,0,89,4,177,13,255,16,252,8,213,254,243,249,245,254,237,9,183,6,183,244,173,242, +9,6,10,18,208,13,158,4,249,250,3,248,141,254,110,2,102,3,182,10,240,14,223,6,141,250,134,240,51,240,130,0, +9,16,97,12,205,2,113,0,65,253,241,248,54,253,79,7,73,12,101,8,1,3,249,2,90,1,96,249,213,246,172,254, +140,7,27,12,37,7,96,250,56,252,63,14,28,14,241,248,60,242,150,254,6,7,246,5,46,0,39,252,183,1,178,7, +129,3,188,0,129,4,152,3,224,254,166,250,8,245,252,248,110,8,230,8,30,246,153,241,221,3,127,14,242,4,226,252, +125,2,88,5,171,252,220,248,246,253,89,252,223,248,117,0,240,3,200,250,224,250,119,7,203,8,49,253,38,248,243,253, +170,3,154,3,90,3,108,5,218,255,184,243,205,243,146,254,112,0,235,252,250,254,215,253,151,248,66,251,80,3,140,10, +107,16,67,11,90,250,130,240,100,243,190,250,129,4,243,5,129,246,221,236,155,247,85,255,119,251,142,255,46,8,42,5, +113,255,182,253,99,246,146,243,173,3,225,14,224,253,205,233,19,238,51,252,40,2,137,3,135,0,207,248,166,247,135,251, +113,249,157,250,173,5,191,9,137,3,149,255,12,248,229,236,239,243,228,6,209,7,237,251,163,248,175,248,222,247,182,254, +191,3,107,253,53,252,177,6,220,8,175,252,162,242,31,241,81,243,164,250,197,4,238,4,209,250,32,247,157,253,251,0, +116,255,17,1,113,1,21,252,238,250,179,0,197,0,77,248,61,243,129,247,170,255,64,5,178,5,97,2,150,255,124,0, +60,3,204,3,5,1,42,250,14,239,102,233,191,244,95,8,109,16,25,8,189,247,112,235,16,239,43,252,6,0,105,255, +226,8,127,14,92,1,52,241,33,236,127,239,144,253,54,17,86,20,46,3,222,242,60,236,115,232,193,235,145,255,220,22, +3,23,77,255,251,232,9,223,154,221,181,235,203,6,100,21,49,16,219,7,85,255,29,245,119,245,106,255,44,3,96,255, +6,250,149,243,252,240,196,245,97,254,83,11,106,23,236,17,113,252,225,239,205,247,220,6,12,13,250,6,99,251,80,240, +115,233,220,237,73,254,56,14,110,20,55,18,120,11,60,6,219,3,233,253,24,248,141,250,39,254,166,0,70,9,231,8, +207,243,232,231,226,247,141,7,41,6,88,4,63,9,42,12,31,9,25,4,12,5,96,9,235,4,139,254,32,3,107,4, +58,248,124,240,68,244,1,251,126,5,18,11,28,253,130,237,197,245,43,11,204,21,183,14,91,255,205,251,50,8,72,10, +74,245,90,226,226,230,198,249,179,6,211,4,61,254,64,0,72,6,15,5,148,254,134,252,206,3,102,12,160,6,52,246, +175,240,16,248,60,254,20,2,159,4,62,1,84,254,126,1,125,3,189,3,217,6,237,7,156,4,247,255,239,250,63,253, +23,10,230,16,176,10,34,4,217,253,198,244,108,246,52,3,81,7,95,0,26,254,177,4,184,7,117,252,251,239,115,248, +242,8,184,6,241,254,5,3,221,0,208,247,169,255,142,8,74,248,129,234,163,251,152,16,151,12,249,253,149,251,1,4, +239,8,215,6,218,5,168,5,94,255,80,250,166,254,217,255,211,246,243,246,49,9,152,20,145,8,96,250,245,252,163,2, +162,255,225,252,43,250,233,241,131,242,84,1,102,8,220,2,199,2,115,7,4,8,215,10,155,13,142,5,66,250,167,245, +0,244,209,245,242,252,85,2,176,4,203,5,58,1,87,254,200,8,15,19,81,13,131,3,107,1,197,0,140,1,31,8, +148,9,174,253,194,242,103,247,220,2,211,4,52,255,193,255,247,7,98,13,84,12,135,9,58,8,134,10,123,16,38,17, +39,4,81,244,98,244,95,0,209,3,135,253,24,254,204,6,47,10,98,5,201,255,129,253,18,254,160,254,9,255,183,4, +125,14,171,17,112,10,210,253,64,242,99,242,153,0,92,10,17,5,97,255,205,255,158,252,173,251,176,8,54,22,135,18, +191,4,97,251,60,250,186,1,37,12,25,11,192,255,107,254,132,6,196,255,6,238,177,239,26,3,238,11,158,7,163,4, +100,3,237,2,160,5,79,4,70,254,253,254,163,4,126,4,24,0,89,250,149,242,104,241,18,251,32,4,151,7,24,11, +225,10,130,2,59,253,1,3,121,8,195,3,49,251,122,245,124,243,123,250,76,8,177,10,8,255,175,249,7,253,217,251, +81,252,173,2,216,1,3,1,63,12,157,10,107,240,178,227,93,245,184,6,119,6,69,253,81,244,73,247,57,5,59,7, +77,250,255,246,188,2,40,11,184,5,137,247,177,239,138,246,195,253,90,250,140,250,203,5,209,13,7,12,13,5,199,249, +134,241,182,248,124,9,179,17,158,14,236,10,135,7,103,253,6,243,5,246,121,2,144,11,9,16,239,14,236,2,143,245, +83,247,224,5,19,16,8,10,166,250,222,246,178,1,236,6,132,3,221,4,18,6,25,2,170,2,43,0,3,242,29,240, +8,3,229,11,48,2,63,252,52,254,127,0,35,2,84,253,218,246,56,0,145,15,83,11,246,249,185,241,213,245,9,0, +89,9,229,9,204,4,81,2,253,255,218,248,169,239,111,236,231,247,228,11,112,16,90,0,5,247,214,1,74,9,201,253, +157,242,27,247,221,251,168,245,205,243,255,253,3,5,188,1,1,252,78,248,80,251,144,7,122,15,134,8,59,253,236,247, +238,248,172,255,221,4,60,2,98,0,132,0,221,247,147,240,74,250,110,5,135,2,162,255,189,4,226,5,134,0,89,252, +219,251,85,0,23,7,154,4,32,247,176,240,157,252,100,9,86,2,53,244,166,247,99,3,69,0,240,246,236,250,192,5, +198,8,222,3,113,255,79,4,91,14,140,10,139,248,230,241,92,254,119,10,79,9,30,252,120,237,204,241,250,8,78,17, +160,255,33,246,52,2,191,5,134,249,193,250,199,9,185,7,187,246,51,244,205,254,130,1,18,254,88,252,10,245,66,233, +243,231,218,244,56,6,44,17,138,14,227,2,117,251,163,253,117,6,150,14,31,9,209,247,106,241,177,248,212,244,213,229, +196,233,67,5,98,25,119,17,37,252,178,245,197,2,203,12,181,7,92,0,72,255,166,254,172,250,65,243,113,236,182,240, +149,253,54,2,158,255,21,5,89,14,12,13,90,2,193,246,63,242,107,251,82,7,89,3,184,247,112,248,19,255,109,253, +3,252,160,4,103,13,18,12,57,4,253,253,229,253,247,1,109,2,182,252,166,249,157,255,221,5,127,1,201,248,169,249, +173,1,119,3,16,255,85,254,241,0,40,0,247,251,241,247,59,247,186,252,178,4,116,7,128,6,175,6,104,3,30,251, +99,248,17,253,30,252,140,243,169,240,149,246,198,251,140,253,144,0,229,5,217,10,107,10,63,1,20,247,24,247,251,253, +52,1,1,255,91,250,38,248,44,255,222,7,216,1,64,245,126,247,200,2,194,6,21,9,28,15,35,14,228,4,168,252, +55,247,82,246,225,251,85,254,81,249,165,246,253,246,106,244,2,247,121,3,9,12,21,9,4,3,214,255,170,254,195,252, +99,248,36,247,74,252,197,251,28,241,88,239,58,255,149,14,122,16,24,9,238,252,236,242,183,244,202,253,8,3,197,4, +157,3,232,251,246,246,54,255,79,9,15,8,152,0,59,249,248,244,15,252,56,9,66,9,203,255,220,255,234,3,196,254, +119,250,238,255,255,5,17,6,26,255,234,243,122,244,143,4,238,10,85,255,110,248,211,250,18,252,161,3,231,12,15,2, +68,243,159,253,4,9,202,251,4,245,215,5,61,12,70,0,72,255,134,6,137,1,211,253,151,8,249,13,175,4,208,255, +102,5,151,5,56,251,158,243,31,249,18,4,248,4,242,252,243,250,233,253,194,250,231,250,233,7,0,14,30,2,182,251, +134,2,189,255,247,244,112,249,99,3,204,252,229,244,236,253,209,4,23,252,247,250,11,13,5,23,30,9,142,252,139,3, +94,10,96,3,243,255,4,5,158,255,105,244,55,251,239,10,192,8,118,250,8,246,220,251,92,1,158,2,64,255,228,250, +223,251,22,2,138,6,22,2,66,247,129,245,181,1,218,8,18,2,58,253,162,254,39,252,240,251,136,4,49,7,244,253, +134,248,197,252,90,0,197,255,166,2,128,11,160,13,90,0,215,246,169,1,116,10,193,254,174,244,249,248,190,249,227,246, +210,254,43,7,231,3,158,0,202,3,184,4,62,1,62,254,116,253,225,253,37,254,184,255,86,1,217,249,240,237,227,244, +65,13,131,21,26,3,153,242,88,250,42,15,15,21,250,1,162,238,73,244,107,4,113,2,40,243,102,240,169,253,238,5, +126,255,86,250,122,3,141,15,233,13,151,254,85,242,60,251,62,16,86,16,173,249,252,239,107,250,72,254,16,248,19,247, +189,252,202,6,237,15,168,10,197,253,202,252,193,255,230,249,169,248,154,1,168,5,94,1,137,250,52,243,123,244,125,0, +82,4,83,250,208,247,197,3,199,9,241,0,23,250,248,252,229,250,19,244,94,253,154,14,160,8,203,243,63,240,87,250, +100,0,156,5,66,8,236,255,182,247,239,250,83,3,7,11,39,12,253,255,197,243,217,247,233,255,190,251,119,246,233,255, +87,15,154,14,92,252,205,242,162,254,74,10,75,5,251,248,119,239,214,237,116,246,44,251,84,242,160,241,164,7,133,25, +225,12,157,242,7,239,174,5,143,17,183,254,45,237,40,247,15,4,7,252,101,239,178,241,148,254,27,9,150,10,208,5, +178,0,220,253,104,0,80,5,74,1,112,250,228,0,180,6,254,249,67,240,118,250,69,4,160,4,205,7,192,8,109,0, +202,252,105,2,241,1,190,247,126,242,14,249,106,254,151,248,244,244,26,254,132,5,73,3,96,3,18,7,80,8,84,9, +201,3,162,245,121,244,18,3,239,6,193,254,139,252,213,253,250,254,205,1,23,253,10,249,110,7,12,17,176,0,27,247, +167,5,98,11,47,253,144,242,114,245,118,1,153,11,172,5,77,250,36,252,159,254,102,247,233,247,154,2,1,8,7,8, +172,4,211,252,197,252,131,4,117,2,13,255,91,12,175,23,6,12,21,249,79,241,203,242,222,248,191,254,177,253,91,249, +46,252,139,5,151,8,168,255,176,249,103,6,141,26,160,29,217,10,62,243,250,232,12,237,183,240,34,241,21,252,61,13, +246,17,55,15,57,16,237,10,212,255,18,1,240,8,101,4,67,248,100,240,237,237,41,243,255,251,199,253,185,0,143,17, +45,32,111,22,43,253,144,240,95,253,76,15,78,9,46,244,67,242,141,3,244,9,215,254,151,244,47,248,190,7,206,16, +32,4,13,245,146,252,218,8,25,255,82,239,62,246,55,13,201,22,30,7,97,243,226,244,172,1,206,254,27,242,46,246, +219,9,239,19,162,9,218,248,36,243,116,248,99,254,169,4,201,11,100,9,102,255,2,253,90,255,30,254,61,3,8,13, +122,8,213,251,10,251,245,254,189,250,3,245,254,244,54,252,32,8,64,10,244,254,5,250,45,255,135,254,101,254,218,10, +249,17,118,5,14,248,213,250,178,4,163,6,167,255,187,248,19,246,194,246,163,253,131,6,152,4,152,254,126,5,102,14, +23,9,83,2,75,4,175,4,206,0,114,250,9,238,90,231,45,243,152,1,17,1,249,248,226,246,150,0,242,14,251,15, +40,4,11,253,129,248,61,241,87,246,189,2,219,253,225,242,102,249,185,4,255,5,214,3,16,255,23,250,120,0,253,9, +171,6,64,252,125,243,3,240,79,250,209,7,169,1,93,244,13,249,61,3,31,2,5,2,240,7,173,7,133,3,63,3, +21,0,28,250,185,254,220,8,248,2,29,241,156,238,139,253,203,5,141,2,225,2,206,7,37,8,183,2,19,250,177,244, +82,251,13,7,14,8,74,255,43,248,44,247,239,251,160,1,194,1,222,254,169,252,74,248,100,245,92,250,174,2,74,10, +66,16,205,11,70,254,234,249,167,0,100,3,127,1,106,1,248,255,168,252,102,249,243,243,80,243,106,255,204,9,160,1, +17,242,166,242,240,6,8,24,243,14,13,248,172,246,170,13,38,25,100,7,24,241,133,240,73,253,190,255,91,248,213,248, +162,254,28,251,165,246,224,0,48,15,186,14,170,1,237,246,66,248,153,2,33,7,165,253,78,241,195,238,27,245,140,255, +194,8,178,7,170,254,240,253,235,4,110,0,110,246,88,1,210,21,206,14,161,244,155,238,114,252,78,3,196,1,154,1, +210,254,210,249,231,251,58,3,103,4,133,252,222,246,243,253,90,8,35,7,109,1,49,1,169,251,127,239,231,239,228,250, +174,250,222,242,32,248,164,7,64,12,7,255,7,242,65,250,196,15,136,22,232,9,139,254,84,252,236,250,246,248,142,249, +246,249,152,249,98,253,222,4,56,8,35,4,117,254,68,253,172,1,34,9,212,11,170,3,58,249,228,248,62,255,115,1, +168,251,133,241,59,240,66,255,255,8,20,251,119,239,78,255,226,18,213,16,96,6,113,1,148,252,161,247,23,247,64,247, +177,247,118,252,236,254,24,247,81,240,126,252,57,21,202,31,240,17,40,254,15,248,119,255,188,7,85,6,215,251,184,242, +79,242,178,246,51,248,150,247,157,254,89,13,228,16,50,1,243,243,55,249,105,4,131,7,6,2,14,249,1,247,208,252, +110,249,159,236,66,237,67,251,53,1,131,253,36,250,74,247,44,245,4,245,207,247,5,4,204,17,84,11,38,247,242,238, +149,241,242,244,185,254,129,8,165,3,58,250,26,250,165,250,24,244,180,239,237,248,175,12,175,22,110,11,43,252,14,249, +5,253,57,4,143,10,30,3,6,245,102,244,231,248,151,243,55,240,229,247,192,4,231,21,96,33,226,21,44,0,37,249, +99,251,2,248,244,241,112,239,127,242,177,250,237,255,175,253,64,251,216,253,62,5,177,14,34,16,187,6,130,0,249,0, +211,250,55,240,1,242,173,0,228,11,169,8,255,251,197,243,9,245,50,249,115,253,69,3,200,7,81,9,38,8,63,2, +144,251,226,250,246,252,216,253,25,255,100,253,224,248,8,250,181,253,145,252,216,254,177,5,81,3,103,251,90,252,19,2, +98,3,179,253,123,240,224,235,68,255,1,18,20,11,168,0,15,4,53,1,46,245,21,245,93,254,159,1,4,0,17,253, +224,248,19,249,206,254,15,5,17,10,252,10,119,6,161,2,3,0,47,250,224,246,198,249,62,251,147,251,73,0,189,2, +130,255,191,255,68,4,89,5,9,3,121,0,189,254,10,255,141,253,147,248,70,249,65,0,7,0,214,248,191,248,247,0, +94,7,209,5,165,253,109,249,228,0,247,9,53,10,222,4,209,251,30,243,236,247,145,4,17,4,201,252,224,0,235,5, +190,254,224,245,176,244,85,251,190,9,16,21,51,17,111,5,245,252,163,249,57,251,35,251,208,246,139,253,87,13,81,9, +79,244,115,240,178,254,5,8,22,10,218,7,151,254,139,248,25,254,210,4,233,2,215,251,19,250,156,1,199,3,95,247, +242,239,218,247,51,254,95,1,65,9,243,5,37,245,28,243,4,2,234,7,125,1,218,251,177,250,75,253,110,255,123,253, +44,253,88,255,222,255,238,3,38,8,42,1,208,251,217,4,251,7,166,251,191,245,133,252,243,1,46,3,159,2,235,0, +204,2,39,6,2,4,146,254,104,250,204,250,33,2,110,6,85,255,178,248,59,250,119,254,204,7,164,17,227,10,29,252, +184,251,186,1,239,253,84,246,202,243,222,247,212,255,219,1,58,253,41,252,99,254,32,4,78,17,5,18,13,250,190,235, +161,250,89,6,19,254,34,246,232,247,104,255,32,10,137,12,176,255,42,241,50,240,74,254,76,14,175,14,184,3,209,255, +197,0,132,253,233,252,74,255,94,254,79,1,224,6,106,2,194,253,158,5,167,9,169,255,64,248,236,251,174,2,212,7, +90,9,37,5,26,254,28,250,159,253,168,5,151,10,117,14,108,18,204,7,25,240,232,233,9,251,222,4,146,255,93,1, +145,11,198,9,178,252,38,251,143,8,155,12,248,255,71,249,114,252,192,245,21,238,101,252,222,13,230,5,133,245,20,248, +137,5,151,12,232,13,254,10,83,254,254,239,78,244,14,8,174,14,40,3,223,253,65,2,130,0,9,255,69,6,92,5, +103,248,109,245,46,254,49,255,195,250,169,2,227,17,161,15,209,246,46,230,8,247,11,19,214,21,48,4,26,249,129,249, +23,252,212,252,38,250,45,248,21,255,56,8,229,3,153,246,195,245,208,5,240,17,21,11,6,253,237,247,62,248,99,247, +38,251,248,2,91,4,16,1,64,1,142,255,3,247,145,242,22,250,116,3,137,2,67,250,224,246,9,253,235,4,115,5, +208,254,5,251,177,3,59,17,166,15,217,253,151,241,234,245,88,0,174,4,18,0,53,250,202,251,133,253,117,248,114,252, +54,13,84,14,250,250,211,243,53,254,65,0,46,250,5,253,151,1,198,251,39,245,116,248,67,255,236,0,13,1,194,4, +196,5,111,0,4,255,80,3,61,0,37,248,47,251,50,5,212,4,4,250,207,241,4,244,210,253,150,4,19,4,248,4, +31,10,248,9,179,1,5,250,234,249,110,255,29,1,109,250,12,244,125,243,143,244,7,250,73,4,93,4,105,252,12,5, +171,24,129,22,14,255,234,237,182,235,100,244,12,4,172,11,216,2,69,248,146,246,65,250,3,4,156,15,91,15,126,6, +50,2,116,253,137,243,114,241,61,250,76,0,245,254,7,251,57,248,65,251,89,2,1,4,46,1,223,2,83,7,2,6, +16,253,118,244,180,247,100,3,166,5,221,252,255,246,192,244,55,244,54,253,57,7,202,1,165,247,151,248,245,252,106,254, +225,1,145,5,172,7,136,9,117,4,75,249,2,247,168,253,30,254,21,248,69,247,180,252,35,254,239,246,132,243,25,0, +1,15,129,12,166,0,221,252,126,0,230,4,105,6,29,0,90,247,183,249,23,4,6,7,140,2,172,2,241,6,16,5, +26,254,98,251,26,251,170,247,139,249,13,7,89,17,197,10,157,253,0,251,82,2,81,5,137,254,209,247,223,247,156,251, +79,2,184,7,150,0,82,243,63,243,243,252,22,2,164,6,82,13,6,11,120,0,20,251,36,253,52,253,80,248,69,251, +203,13,6,26,218,12,105,252,128,0,216,12,162,16,34,8,143,245,92,236,205,248,255,1,49,250,11,247,19,252,98,253, +109,5,47,19,225,16,222,4,217,0,96,253,81,248,71,250,20,251,107,249,46,3,169,13,110,4,3,245,110,247,105,8, +134,20,220,16,252,3,24,252,83,252,243,253,5,254,185,254,176,3,50,11,140,10,136,255,185,247,134,250,236,2,246,9, +74,7,89,254,61,1,126,11,202,4,191,244,152,244,147,252,225,251,250,250,169,255,186,255,0,252,195,0,240,13,69,21, +112,14,39,3,96,255,235,254,238,250,0,249,207,252,174,255,68,254,21,253,25,255,42,1,78,0,34,1,35,7,223,9, +160,3,237,252,69,251,144,250,108,250,250,251,126,252,29,253,2,0,134,0,80,251,20,247,179,254,138,15,253,19,72,4, +254,249,155,2,184,6,37,251,38,242,15,243,247,248,212,6,55,21,185,17,169,0,43,248,113,253,66,4,36,7,149,11, +3,17,224,12,210,253,56,241,2,241,243,251,149,8,196,9,71,0,206,250,238,249,214,245,59,247,251,1,224,6,169,3, +100,2,110,253,61,242,40,242,214,1,248,12,215,5,107,246,51,240,59,246,152,253,41,0,135,255,162,253,117,255,144,3, +23,254,194,245,1,254,138,10,192,5,224,254,83,5,210,8,119,2,137,254,185,252,251,249,160,253,72,3,150,253,184,241, +134,241,133,253,241,1,189,248,104,248,9,10,103,19,21,8,231,254,155,2,46,3,89,250,174,243,7,246,137,251,151,252, +131,251,211,254,196,5,1,14,249,21,152,22,97,15,204,8,77,0,17,243,76,238,143,244,74,248,41,249,167,251,58,252, +216,1,4,15,248,15,109,2,182,253,209,2,143,0,175,248,80,245,86,248,198,1,95,12,224,14,80,9,229,2,101,0, +68,1,74,2,239,3,133,3,221,248,21,238,44,245,85,0,80,255,83,3,238,12,40,3,134,244,213,253,5,11,221,4, +40,250,183,245,209,244,237,249,51,254,142,249,230,244,74,244,120,244,252,250,104,3,244,1,9,0,159,6,250,9,192,6, +247,3,55,255,209,249,196,249,120,250,123,250,80,254,9,1,217,2,140,11,34,16,58,4,4,248,122,251,121,4,22,6, +195,0,183,250,165,248,146,248,192,247,240,250,214,2,172,6,189,3,158,255,191,253,213,254,201,255,113,251,180,246,186,251, +117,6,183,8,171,255,84,248,137,253,175,6,238,3,193,249,66,249,54,1,251,2,170,253,19,252,250,1,68,9,142,9, +231,255,174,244,184,244,34,255,193,4,82,1,159,1,215,6,57,3,87,250,194,251,244,1,187,0,251,254,22,2,21,2, +56,254,112,250,2,244,15,240,105,249,40,9,97,15,42,11,175,5,52,3,0,2,127,255,181,252,37,252,171,252,32,253, +44,255,47,2,236,3,232,2,26,253,198,247,10,255,21,15,245,19,176,8,37,251,203,245,32,251,75,5,90,5,12,250, +250,245,132,253,69,2,112,2,95,4,221,4,179,4,192,5,76,253,24,240,237,246,134,11,249,14,190,3,252,253,245,249, +235,244,153,249,236,1,186,2,18,3,153,5,178,3,166,1,45,0,138,246,192,238,107,250,238,13,180,15,37,254,99,239, +106,244,44,3,214,5,242,253,43,253,47,3,209,3,86,254,98,248,196,244,149,244,120,247,39,254,235,5,75,5,119,255, +135,2,107,6,208,252,143,246,157,0,39,5,82,251,182,246,132,249,73,249,155,254,210,12,160,15,192,253,146,235,68,239, +47,3,60,13,77,5,60,254,67,255,185,251,218,243,129,240,115,238,63,240,207,254,40,13,247,10,186,2,181,254,3,248, +39,242,143,247,238,1,62,9,184,12,250,3,125,240,154,234,136,249,237,6,129,9,9,10,7,7,52,255,49,252,156,251, +103,244,210,241,243,255,118,14,10,11,25,2,48,6,78,12,206,1,161,243,246,246,66,254,98,244,212,230,64,232,248,239, +46,246,120,2,178,17,225,22,47,17,163,7,0,254,149,246,126,242,71,242,161,246,145,250,91,247,93,241,180,242,213,250, +57,1,145,5,114,14,67,21,142,8,172,238,138,232,171,254,155,15,129,4,64,241,183,238,120,246,167,245,165,236,72,234, +252,245,169,10,187,25,91,19,160,253,198,244,196,1,243,12,52,6,152,250,138,252,182,8,1,8,142,244,212,235,157,251, +152,4,240,247,228,242,22,0,187,7,149,4,106,6,111,12,63,11,34,6,92,5,120,0,146,239,48,232,244,250,1,10, +99,253,175,238,12,237,43,234,208,241,194,15,255,33,251,20,25,3,247,251,90,252,199,3,186,5,91,252,251,250,219,1, +251,253,225,247,67,251,90,251,122,248,145,254,211,3,33,1,85,4,243,15,242,18,23,3,81,238,22,240,117,8,114,20, +146,7,13,252,61,252,9,249,156,241,102,244,116,4,59,18,60,14,204,0,120,249,245,240,165,228,84,235,243,5,103,22, +111,19,191,9,118,255,225,252,66,7,229,14,64,7,115,250,221,245,242,251,166,4,120,6,33,5,140,5,9,0,155,249, +168,4,220,23,166,23,134,4,98,245,8,247,74,4,213,12,33,7,251,252,79,250,15,254,116,2,203,2,48,254,141,251, +43,0,123,7,107,10,255,7,116,7,189,12,199,12,243,2,108,255,3,5,97,3,203,253,43,253,25,243,53,226,183,233, +233,6,95,20,108,12,172,9,202,18,89,20,124,5,104,250,44,7,129,26,190,20,30,251,49,236,11,239,22,245,137,252, +50,11,186,18,0,3,196,239,226,244,165,5,230,10,35,13,209,18,107,12,22,253,44,250,106,1,249,0,182,247,116,242, +118,249,151,5,15,7,25,253,49,247,244,251,70,4,128,9,133,9,35,5,253,254,139,250,168,250,226,250,152,246,249,248, +136,7,79,13,29,3,109,0,198,7,192,3,144,249,72,252,4,5,231,3,207,248,145,238,199,240,64,253,28,5,26,6, +49,9,207,12,51,12,100,9,61,4,103,254,152,0,134,10,151,11,226,248,96,229,147,237,253,4,229,6,230,251,51,4, +143,17,85,11,36,2,84,1,84,251,166,246,19,0,229,7,45,1,12,249,245,251,215,3,13,3,112,251,99,254,75,8, +79,3,84,247,0,251,68,5,126,5,139,0,134,252,238,252,201,5,72,12,52,7,244,0,200,253,250,247,39,246,147,252, +150,0,66,254,121,253,209,3,134,13,123,14,66,4,250,252,55,254,223,2,58,9,45,5,69,241,210,235,111,255,174,5, +76,249,180,254,95,13,150,5,93,246,21,247,159,0,195,9,192,10,85,252,218,238,51,244,180,0,65,4,22,0,110,253, +70,4,193,12,194,5,28,248,88,249,140,1,163,254,19,245,143,240,146,246,138,4,66,9,89,253,128,247,205,4,168,16, +144,11,118,254,156,245,144,248,192,5,155,10,82,252,135,239,53,247,169,2,115,254,58,249,197,3,40,14,168,7,237,251, +90,246,137,243,147,249,76,13,81,23,57,7,46,247,136,251,53,252,158,236,105,236,123,5,230,17,232,3,161,249,243,252, +51,253,123,252,64,3,125,7,233,4,126,3,17,2,137,254,118,254,67,0,85,0,123,1,60,255,105,247,9,250,205,8, +94,8,43,244,248,236,97,253,160,9,32,5,97,1,67,6,173,9,55,8,95,4,15,253,2,248,139,252,143,1,8,254, +108,251,132,254,201,252,73,247,157,251,145,8,134,15,16,10,182,255,107,253,156,5,141,9,177,255,71,245,157,247,159,253, +3,250,95,242,67,244,91,255,225,6,182,3,9,254,114,2,28,12,31,7,87,245,130,244,240,8,20,15,18,251,24,238, +133,250,30,10,255,5,178,243,88,236,195,252,140,14,202,8,118,250,36,252,203,5,40,8,237,7,163,10,40,12,203,9, +1,5,179,1,147,1,1,255,5,248,231,244,248,249,55,3,119,11,46,12,147,5,50,3,108,6,134,3,211,253,252,2, +93,13,147,12,181,255,177,244,165,248,62,8,42,15,4,4,97,247,66,248,41,0,131,3,76,1,222,255,123,2,209,3, +176,0,28,0,124,4,144,6,118,4,97,255,30,248,54,251,230,12,1,19,117,2,226,248,212,0,116,2,208,252,106,255, +28,2,37,0,19,5,146,9,178,3,117,2,60,10,19,12,28,10,175,10,10,4,157,248,249,246,254,251,197,253,233,251, +101,248,162,249,60,1,36,1,234,251,3,8,245,24,154,14,55,250,186,253,225,6,127,250,74,238,44,250,185,9,84,6, +155,252,179,251,57,252,118,251,136,3,126,14,38,14,60,10,51,12,156,7,102,249,216,246,212,5,91,13,60,254,9,239, +186,249,193,13,78,11,40,254,92,3,6,13,13,3,13,247,56,254,32,9,214,4,165,248,94,245,183,254,223,7,100,4, +6,249,176,244,112,255,15,15,208,11,206,244,226,236,1,1,17,15,70,6,238,254,236,3,77,7,17,4,17,253,9,245, +14,247,193,5,233,12,183,1,144,248,23,1,143,9,70,1,35,249,128,1,248,9,58,3,32,249,4,247,140,250,4,2, +59,9,219,7,206,254,214,246,41,248,191,3,226,9,133,254,20,245,147,255,147,10,200,3,160,250,47,254,24,6,129,8, +198,7,21,7,60,2,100,249,112,248,38,0,153,255,185,248,59,0,169,15,117,15,56,4,64,255,48,255,82,255,246,2, +141,7,51,6,185,0,216,254,130,1,99,2,186,1,180,4,48,5,118,253,63,249,251,253,4,254,1,247,13,247,80,0, +157,6,47,2,118,249,14,251,106,6,202,9,14,3,44,0,66,0,10,252,95,249,124,252,10,2,57,9,60,14,24,10, +214,253,76,243,235,246,9,7,106,12,83,254,238,243,76,249,182,1,210,4,75,255,198,245,230,252,128,15,184,11,206,248, +93,249,54,3,79,255,35,250,127,252,247,254,84,6,216,15,30,10,118,251,87,251,229,9,89,16,145,0,216,235,215,237, +175,253,242,254,204,248,58,0,252,10,252,10,16,7,49,3,238,253,40,253,201,0,103,255,139,249,87,250,73,2,179,3, +109,253,156,0,247,11,201,10,92,1,55,2,222,5,233,1,146,254,201,252,165,249,231,251,59,255,140,253,106,1,109,7, +249,1,166,254,146,5,121,2,91,249,68,255,113,4,46,250,94,247,37,1,66,1,0,253,104,5,125,11,32,0,211,244, +244,247,240,251,82,248,94,250,105,3,49,1,32,245,94,245,78,3,206,11,116,7,9,255,161,255,166,12,139,20,136,8, +108,248,6,248,207,255,177,0,14,252,152,252,168,5,8,12,22,5,37,250,221,248,22,252,93,250,92,249,113,1,106,10, +209,3,63,243,88,243,83,5,214,11,208,1,92,253,106,254,98,247,43,242,34,253,105,14,177,18,106,7,91,253,85,255, +222,2,172,1,95,3,69,2,214,246,63,242,227,251,145,254,61,247,77,250,203,6,175,11,207,7,60,3,96,0,181,254, +191,253,8,252,108,246,130,238,188,238,69,249,251,0,232,1,83,4,175,6,185,3,143,254,21,249,239,246,58,255,64,9, +79,5,2,250,104,249,104,3,59,6,51,250,188,244,249,6,100,22,246,9,233,248,122,246,121,245,16,248,177,4,192,5, +252,249,135,251,237,1,179,249,168,245,242,255,237,2,105,251,169,247,148,247,255,249,215,255,239,255,54,251,255,254,49,6, +41,1,232,245,255,245,213,0,121,7,145,5,53,3,130,3,39,6,226,13,75,19,220,12,38,6,251,5,200,247,195,216, +52,199,12,204,59,213,169,225,66,248,243,12,189,20,205,22,247,26,237,29,204,25,124,14,221,253,124,232,111,213,157,204, +103,199,237,195,160,212,124,249,225,20,163,30,17,39,210,43,44,36,101,24,84,10,6,246,99,231,117,225,131,210,145,189, +50,190,141,218,221,252,69,19,240,27,228,29,14,32,76,34,118,31,245,18,202,252,136,231,112,225,233,231,132,234,178,229, +170,230,174,245,232,10,115,22,90,17,15,8,104,9,143,16,205,18,161,17,52,11,70,250,163,240,108,0,170,16,119,4, +239,243,92,254,124,13,9,3,56,242,167,248,253,10,91,15,211,6,252,1,85,6,205,13,123,15,189,7,111,1,154,7, +54,12,99,253,208,236,157,246,101,15,28,22,98,5,70,244,19,246,193,6,50,17,94,11,121,4,172,9,250,15,255,10, +7,3,228,2,253,3,227,252,163,243,172,241,138,244,57,248,221,254,108,6,254,9,231,11,188,14,170,14,185,8,26,254, +246,243,40,240,146,237,79,229,34,229,196,249,178,15,207,17,104,10,156,8,33,10,94,9,119,3,14,249,106,243,10,247, +251,251,90,255,168,4,82,8,180,6,208,2,127,0,185,5,43,17,94,15,35,250,140,237,65,249,73,6,129,4,24,255, +70,254,35,1,19,6,176,3,157,249,192,253,46,17,173,17,143,249,6,239,131,254,179,10,112,5,16,254,140,0,255,8, +59,11,179,1,213,249,239,254,25,3,51,251,178,246,155,255,87,7,12,3,198,248,206,241,92,246,80,6,247,15,80,7, +165,251,41,251,121,251,90,246,202,248,228,4,217,11,130,8,231,255,120,246,246,245,114,2,48,13,101,12,57,6,142,251, +178,238,145,238,15,250,53,255,157,255,224,5,111,10,19,7,144,1,115,251,199,247,125,252,186,1,238,254,65,251,127,251, +211,251,54,253,245,0,116,3,184,2,168,255,255,254,81,3,17,3,233,251,212,254,52,12,162,11,131,249,225,238,154,250, +181,14,124,16,180,254,164,249,99,9,142,14,206,6,65,13,119,25,168,23,70,20,13,18,103,3,212,250,159,12,48,30, +152,20,60,2,240,1,252,14,131,20,48,15,183,12,170,15,133,14,77,9,100,5,204,2,195,1,113,1,243,1,91,8, +75,11,241,250,240,233,192,243,184,6,71,6,235,250,21,247,198,252,182,5,69,7,67,254,44,246,0,246,56,251,124,1, +176,255,185,247,144,250,96,3,45,255,177,248,114,255,209,6,6,6,68,1,180,247,66,245,99,6,136,18,52,5,197,247, +146,252,129,1,131,253,13,250,239,247,85,246,131,251,235,4,217,7,117,2,51,251,107,246,112,246,187,251,50,255,124,251, +30,250,15,1,232,3,174,254,250,252,227,252,1,248,162,248,93,254,68,249,30,241,95,247,130,255,219,250,61,248,201,2, +124,9,209,254,215,242,64,249,252,6,107,5,125,248,133,240,154,239,163,245,5,1,127,3,123,252,61,255,128,9,174,6, +165,248,54,240,150,244,181,3,3,15,123,6,120,245,202,242,89,251,158,254,194,250,240,246,11,247,2,252,23,3,242,4, +240,253,102,246,16,247,110,251,12,1,50,12,89,14,165,249,78,233,88,245,15,4,2,0,16,249,149,249,95,255,17,8, +140,3,36,241,154,241,101,6,123,10,228,253,33,251,20,254,25,253,155,0,187,6,32,6,79,1,215,253,80,254,238,0, +34,0,117,255,146,2,63,1,70,255,234,7,223,13,145,5,180,252,230,246,9,241,155,249,128,11,210,10,154,253,231,253, +247,6,10,7,58,253,130,244,3,248,59,2,202,3,121,0,164,0,61,254,212,253,104,5,167,3,228,246,248,246,157,1, +137,4,26,3,205,0,121,252,189,0,141,8,137,1,228,246,147,251,84,3,10,0,171,251,92,1,200,10,158,10,213,2, +68,0,226,255,129,251,31,253,184,0,170,249,165,250,193,11,154,11,83,248,214,246,5,4,118,6,144,4,86,6,244,5, +61,5,9,1,128,247,67,250,204,9,153,14,160,9,152,10,56,11,138,2,96,246,112,241,18,254,183,19,146,21,15,0, +180,240,57,245,199,254,103,1,179,3,238,15,150,27,170,17,182,250,113,244,173,1,211,10,201,3,197,248,5,252,19,9, +143,8,78,249,194,241,251,250,200,14,89,29,62,15,206,242,135,247,124,18,6,12,20,240,178,242,224,8,144,12,93,3, +44,253,80,247,119,246,23,3,138,18,27,19,36,3,199,242,171,242,65,1,216,11,12,4,144,243,11,244,131,9,42,22, +136,7,197,243,205,245,128,9,89,21,87,7,22,237,180,232,66,255,119,14,236,2,236,241,78,243,200,1,184,6,95,250, +157,243,181,8,29,39,60,43,75,21,139,0,58,246,182,236,243,226,28,226,10,238,188,255,68,11,186,11,190,7,71,5, +30,4,199,7,118,18,220,23,51,13,44,252,5,242,8,239,242,240,116,246,197,249,212,249,201,252,82,1,233,255,84,251, +154,253,101,5,32,6,29,254,185,251,72,3,245,6,17,2,126,253,80,249,19,244,121,246,196,253,14,252,203,245,65,248, +250,254,75,0,135,253,151,251,249,252,54,255,116,254,109,255,221,3,252,1,125,252,0,255,34,0,12,248,168,246,99,252, +230,247,18,242,200,249,95,2,156,3,120,5,16,5,113,255,118,253,210,255,127,1,166,0,48,248,163,239,70,248,172,5, +168,1,116,251,33,3,123,6,48,254,206,250,168,252,135,251,110,254,133,6,96,7,115,255,103,249,203,249,135,252,232,253, +158,254,170,255,238,255,251,254,202,251,116,246,152,246,207,255,145,6,247,3,143,255,191,252,219,251,234,0,160,3,113,251, +169,248,190,3,141,6,11,252,25,251,230,3,135,4,65,1,113,3,157,2,166,250,240,244,243,246,204,253,157,3,224,4, +209,3,86,1,119,252,253,249,149,250,133,248,145,249,244,2,97,7,138,2,130,0,47,254,3,247,231,248,192,1,238,1, +41,2,138,7,213,1,119,249,32,0,120,4,23,254,113,0,12,4,93,249,233,244,68,255,17,3,65,1,143,5,159,5, +146,254,43,251,101,250,106,251,109,0,178,0,161,252,135,254,48,255,20,249,44,249,207,255,82,2,238,3,95,5,57,1, +50,255,82,2,108,0,12,252,228,251,180,250,241,251,136,5,130,9,255,0,30,251,104,253,196,0,162,3,233,3,131,1, +250,2,252,3,154,253,181,249,194,251,45,250,176,251,244,6,60,10,25,0,252,251,197,0,36,1,89,253,217,251,77,254, +54,4,224,5,177,253,58,245,253,245,43,254,158,6,223,5,47,254,90,255,127,6,162,2,226,250,53,252,93,253,62,250, +242,250,190,252,117,253,70,1,134,2,127,254,112,252,92,252,230,254,239,6,201,8,212,0,224,254,37,2,164,255,55,254, +254,255,4,254,107,253,247,253,60,251,247,254,165,2,19,248,5,247,198,9,242,10,137,250,80,254,159,9,218,2,227,253, +49,2,143,253,146,247,32,251,29,253,126,252,214,254,144,254,83,254,198,3,186,4,136,253,171,251,242,1,198,3,2,0, +236,2,140,8,233,255,190,242,169,246,233,254,190,251,234,253,9,8,216,6,146,1,109,3,26,0,94,251,199,0,168,0, +59,247,106,249,143,3,66,3,222,251,236,247,1,253,240,7,23,6,22,247,22,246,206,2,56,4,205,253,31,253,90,252, +176,252,255,3,50,5,188,250,37,247,243,1,86,9,104,1,41,248,80,253,59,6,221,2,167,251,197,252,67,1,227,3, +55,3,70,253,247,249,81,253,111,252,219,251,164,8,44,16,159,1,236,245,186,252,45,1,16,252,4,250,118,250,229,251, +36,3,106,7,7,3,44,2,143,5,247,1,149,252,197,252,89,251,239,247,45,250,80,255,16,2,151,2,206,0,23,0, +128,2,3,1,147,252,130,254,183,0,152,251,120,251,24,5,190,7,223,254,5,251,33,2,202,5,90,255,22,253,73,3, +7,1,107,248,96,252,99,2,113,252,46,253,110,5,135,253,122,243,101,253,137,6,62,4,112,7,204,8,247,254,148,252, +56,2,218,253,43,247,78,250,60,254,192,254,199,1,198,4,97,1,110,250,19,250,200,1,129,5,54,2,156,1,36,3, +209,1,100,0,4,253,88,248,120,251,246,255,248,250,67,248,150,255,129,3,56,254,26,250,240,0,39,12,200,7,118,249, +201,251,74,2,150,246,105,242,20,1,214,3,52,253,63,255,14,251,6,245,226,255,49,8,23,5,143,6,149,1,60,246, +231,252,43,5,84,252,219,247,76,244,66,232,75,242,147,8,95,255,210,236,201,239,170,239,167,233,183,241,2,247,131,241, +18,246,217,0,110,255,227,242,191,231,61,233,200,241,244,245,3,254,90,4,63,245,196,234,75,252,128,4,107,249,113,252, +48,2,226,252,146,4,191,9,14,248,5,247,138,10,130,6,154,251,245,7,251,13,248,2,106,0,4,2,62,253,139,251, +132,253,132,2,184,10,152,8,118,255,157,0,74,3,109,255,243,255,212,254,13,248,229,253,114,8,123,1,164,250,2,4, +41,7,250,251,100,245,57,248,189,253,6,3,72,5,227,6,208,8,237,4,128,1,246,4,205,0,88,248,53,3,101,16, +91,4,23,249,236,1,82,4,42,0,222,7,26,6,236,245,240,248,200,7,84,6,61,2,16,2,245,248,181,248,42,7, +153,7,93,0,221,6,184,7,223,253,225,0,19,7,96,0,66,252,18,255,247,0,32,7,186,9,188,255,181,252,45,6, +201,7,206,4,225,8,89,6,136,251,205,252,37,6,58,4,16,0,40,8,60,13,93,6,53,7,230,13,211,4,31,254, +140,13,20,18,196,0,85,0,57,12,11,3,160,247,83,255,56,6,34,6,243,5,241,254,184,250,73,4,76,8,180,254, +124,248,92,251,210,4,197,14,120,11,64,1,24,1,102,3,183,0,237,0,163,255,111,249,228,250,157,4,228,10,187,8, +208,254,165,247,75,253,188,5,78,5,160,252,99,242,181,248,158,15,33,19,1,0,9,252,127,4,118,2,156,0,75,254, +147,241,176,242,103,6,212,12,116,4,103,253,247,247,193,253,116,13,60,12,112,250,87,240,134,246,61,10,143,21,122,3, +30,242,29,252,228,5,138,4,131,4,178,249,214,239,214,0,224,11,45,252,185,248,228,2,90,255,150,254,171,4,20,253, +102,248,43,0,100,255,174,254,128,4,26,250,236,240,41,3,18,14,198,0,69,0,88,11,64,4,175,249,244,251,128,248, +98,240,206,247,85,3,234,1,46,2,228,9,52,6,89,252,220,255,136,3,207,250,123,247,174,251,213,250,220,254,240,6, +219,255,214,246,48,254,30,3,69,253,226,250,5,247,76,239,12,245,107,4,224,8,249,1,5,253,176,2,116,10,107,0, +205,237,177,240,19,2,199,8,213,8,25,6,123,249,186,244,31,4,32,10,178,247,216,235,227,245,63,254,122,250,157,247, +69,247,52,247,223,254,186,5,48,254,69,246,183,246,100,243,85,245,68,2,136,255,148,244,140,2,54,16,70,2,229,250, +212,2,132,252,164,244,36,251,74,251,112,248,222,1,129,7,23,6,54,9,200,3,161,244,34,243,34,254,107,4,108,4, +251,3,153,9,18,17,205,8,148,244,36,236,4,246,24,9,144,19,166,6,103,249,215,3,11,10,157,251,155,245,33,250, +102,248,41,255,240,12,118,7,10,251,202,254,124,3,99,253,226,248,114,248,173,246,216,248,83,1,175,4,181,254,65,255, +145,8,166,4,27,248,122,250,163,254,225,249,183,0,247,3,39,238,45,234,247,6,199,13,45,253,201,255,130,6,205,255, +38,1,60,2,240,245,200,245,20,2,71,4,199,8,214,17,151,5,142,243,43,251,11,6,246,250,150,241,60,251,43,7, +35,12,20,11,35,255,194,244,81,253,222,6,42,1,151,255,249,4,203,2,216,7,248,18,186,5,47,243,217,251,206,3, +65,253,148,1,79,3,29,247,234,252,114,13,56,9,15,1,232,0,105,252,71,255,233,7,3,1,62,248,0,248,61,245, +154,255,134,19,129,13,83,1,202,11,214,10,90,248,100,247,128,252,34,250,145,2,214,7,202,252,86,250,62,254,33,249, +98,251,34,2,23,254,223,1,252,12,10,4,150,244,62,248,201,2,25,4,251,253,54,252,196,8,161,17,22,4,8,247, +98,250,132,251,187,250,159,5,18,16,136,14,131,6,84,254,152,252,234,253,87,248,160,245,64,253,36,2,5,5,11,11, +215,5,12,250,21,253,180,5,83,4,25,0,3,252,224,248,102,0,37,12,164,11,124,0,205,247,40,251,234,5,209,7, +58,2,57,3,209,3,209,251,170,247,72,251,23,0,85,7,61,11,204,5,154,4,134,11,136,7,249,246,27,241,224,253, +160,9,93,7,238,1,146,254,22,249,27,255,72,15,226,7,9,243,183,251,203,10,83,253,180,245,96,1,166,253,80,246, +232,3,132,14,248,11,247,6,66,249,8,242,124,0,46,4,178,247,17,255,232,13,81,10,223,7,87,8,67,252,25,248, +95,0,186,252,155,248,193,1,76,2,33,252,114,2,87,5,104,252,52,253,250,4,63,2,44,254,217,0,160,0,38,254, +43,0,201,2,55,3,145,2,164,0,170,2,174,8,205,4,166,247,6,244,19,249,68,250,20,254,60,5,194,1,192,252, +22,3,64,2,14,245,218,243,167,252,42,253,83,0,249,11,105,10,5,251,219,246,78,0,175,2,87,249,40,245,21,253, +15,4,4,4,166,2,144,254,211,249,52,253,63,1,208,253,172,250,207,245,151,238,128,246,85,4,112,254,246,246,43,2, +2,8,151,254,17,250,203,252,129,254,73,253,211,247,71,248,55,4,175,11,70,9,76,2,76,246,180,245,219,5,62,7, +3,252,75,3,10,11,107,2,74,1,11,1,215,247,3,1,192,11,165,249,1,244,105,9,138,11,91,3,192,8,95,255, +154,241,102,253,94,0,136,242,211,253,130,15,223,6,20,255,95,0,131,249,154,250,212,3,104,251,146,238,22,244,115,0, +222,7,191,7,29,254,19,247,159,251,211,2,8,5,247,255,202,248,75,251,137,255,58,249,125,248,79,2,227,0,231,249, +71,1,149,8,43,1,95,248,193,246,113,249,62,255,58,3,105,2,130,0,145,254,203,253,114,255,213,254,82,252,227,252, +15,253,144,251,104,253,243,254,166,252,233,251,251,251,121,250,251,253,221,4,127,5,137,2,114,0,1,251,182,246,162,251, +139,2,238,4,189,7,183,9,197,10,68,20,83,25,156,2,183,230,138,233,67,250,149,254,234,255,173,2,134,4,133,17, +182,27,245,9,240,244,1,246,60,249,129,250,178,5,34,8,198,253,232,255,123,10,33,13,189,12,169,5,227,245,204,240, +72,248,42,254,114,3,163,6,95,3,71,2,109,3,114,2,181,4,15,2,78,246,52,246,29,0,110,0,109,0,95,3, +105,252,189,251,16,8,234,7,226,0,110,3,97,254,23,245,160,250,59,253,254,248,87,3,79,10,249,254,17,255,31,10, +58,2,41,243,84,243,178,250,57,1,124,5,191,4,222,6,31,16,220,20,220,12,136,253,160,245,1,253,107,4,176,0, +156,0,116,9,7,13,78,11,129,11,215,6,195,250,193,243,61,249,17,2,120,4,131,4,250,4,93,2,252,4,129,12, +251,4,81,249,156,1,123,4,214,242,224,241,87,3,183,8,65,11,174,13,120,255,16,247,222,254,156,252,108,250,227,2, +95,252,80,247,150,11,68,20,243,8,178,7,82,1,14,243,74,251,205,3,206,247,35,250,171,11,158,15,174,9,81,253, +112,245,255,5,122,13,234,249,158,252,231,11,57,251,152,244,187,9,235,5,238,252,142,15,116,13,210,248,69,2,232,9, +201,249,32,253,84,11,127,4,65,255,225,2,137,253,194,250,1,255,19,254,220,254,3,3,60,1,91,253,83,249,175,246, +90,252,142,1,30,2,216,6,190,3,41,247,53,250,15,3,213,254,158,4,210,17,6,8,207,251,195,2,150,4,229,0, +155,5,121,1,216,250,253,7,135,13,7,250,165,244,124,7,176,12,217,255,10,253,204,3,251,2,3,2,98,10,161,11, +110,255,251,249,119,254,252,254,190,253,86,253,248,251,150,3,15,14,22,9,179,255,153,252,109,246,155,247,92,3,38,1, +163,252,29,12,229,15,187,252,201,250,39,8,70,5,68,252,80,252,52,254,5,1,89,4,89,5,29,7,3,5,247,254, +41,255,231,253,96,245,119,245,18,253,245,254,27,0,175,2,179,4,85,8,124,2,197,247,123,253,126,255,67,240,91,245, +72,7,128,255,159,251,184,9,204,0,78,245,158,4,1,2,200,238,216,248,193,2,37,248,239,0,190,13,99,255,175,248, +195,1,56,252,244,244,171,249,141,251,228,251,132,251,194,248,254,1,210,9,87,253,95,248,79,1,142,251,114,245,35,253, +138,249,91,243,217,252,51,253,59,246,244,255,185,4,237,250,222,251,58,254,205,247,35,253,141,255,112,238,42,240,175,7, +91,4,53,243,40,254,32,10,18,252,130,243,96,249,81,246,170,248,121,11,181,8,122,237,77,237,235,7,206,12,204,249, +10,235,121,234,126,253,6,21,9,13,21,238,220,225,8,239,136,6,193,24,237,15,205,247,80,245,115,0,168,251,69,237, +90,232,83,247,66,20,156,27,147,3,8,247,94,1,70,2,212,247,160,241,90,241,96,254,29,17,191,17,225,9,161,9, +106,3,240,250,23,1,39,5,91,250,21,244,198,250,89,3,101,6,196,3,149,3,147,9,83,11,189,3,159,246,199,236, +14,246,242,5,123,252,88,239,209,0,49,16,192,7,86,6,16,3,134,233,154,226,101,250,105,3,187,253,137,1,127,0, +203,251,195,2,103,0,198,240,141,242,75,255,229,253,76,248,213,247,220,245,12,250,9,6,225,6,156,251,65,249,199,3, +37,9,223,0,76,248,135,249,1,253,163,254,179,0,210,251,172,242,167,247,100,4,1,4,101,255,86,0,198,248,75,240, +249,250,197,5,110,254,76,251,151,4,173,7,97,6,159,5,140,250,149,241,227,252,3,8,125,2,203,253,167,255,190,253, +84,252,206,254,186,255,24,2,108,7,150,9,38,8,64,4,222,253,194,247,38,242,166,243,115,3,147,13,241,3,91,0, +228,9,7,8,193,2,101,7,71,1,225,245,123,252,235,0,102,250,104,3,245,14,29,8,249,8,228,17,60,5,75,246, +122,251,175,254,129,254,85,9,69,12,202,1,105,254,239,253,190,252,251,8,8,16,118,252,153,238,147,254,45,13,238,3, +193,245,145,247,49,8,165,18,83,7,227,249,230,0,144,10,32,4,188,252,185,254,175,2,189,6,106,5,87,252,101,253, +229,6,94,1,193,250,39,6,249,7,76,249,8,250,27,3,207,0,110,4,211,10,245,1,60,255,227,6,32,254,119,246, +90,5,66,13,18,4,206,254,17,253,174,0,117,10,67,0,23,235,251,242,179,7,127,8,151,2,248,252,215,243,245,249, +127,9,177,5,150,248,243,247,169,253,204,2,20,7,248,7,98,5,184,252,252,245,224,1,15,15,141,3,163,244,183,250, +171,7,26,12,193,5,90,251,103,251,134,254,74,249,64,254,190,9,95,2,148,253,225,7,42,253,231,235,49,253,182,15, +46,7,251,0,241,251,205,239,184,251,80,17,43,5,246,242,218,254,126,13,10,8,60,250,63,239,198,241,29,3,189,13, +163,6,143,254,11,2,235,3,86,246,63,234,93,242,45,253,109,253,41,2,189,8,89,5,231,2,211,0,67,249,226,255, +196,13,108,3,60,244,185,250,244,254,84,251,8,4,161,6,176,246,16,243,55,255,222,254,157,248,207,0,151,6,251,248, +107,241,38,1,45,8,45,249,170,248,105,9,218,9,202,4,249,11,153,7,30,248,111,246,184,249,50,250,86,255,226,254, +153,254,20,12,91,13,213,255,249,5,79,11,238,241,153,223,120,234,168,250,224,10,13,21,96,12,192,4,146,6,218,253, +247,238,254,229,220,229,128,249,22,15,179,12,185,10,190,15,149,255,197,244,126,3,252,252,81,230,154,240,198,5,74,11, +144,17,53,11,251,248,154,0,194,10,135,246,42,238,38,0,224,4,167,0,91,5,60,6,248,5,244,5,251,249,234,246, +38,7,205,7,186,249,46,254,109,5,192,247,96,238,202,250,209,7,107,9,9,9,234,6,121,253,45,247,43,250,241,246, +211,238,17,248,30,9,209,8,196,0,224,0,85,4,155,5,186,254,211,243,250,247,214,254,227,241,137,237,12,2,51,11, +76,6,46,9,118,0,209,236,117,240,231,252,171,249,44,252,156,6,49,3,171,253,10,3,207,5,146,0,67,249,99,248, +57,5,69,15,34,4,184,244,46,244,3,252,204,2,206,4,196,3,186,4,200,1,114,250,114,252,100,2,233,255,155,254, +244,255,25,254,245,3,71,9,243,252,24,246,253,255,212,255,53,251,95,3,138,3,36,252,139,3,240,7,115,254,37,0, +109,8,105,3,231,254,22,5,236,10,147,9,249,253,173,242,63,250,35,8,84,8,242,4,102,4,129,0,50,255,226,255, +53,253,233,0,217,6,96,1,7,253,81,1,15,2,151,2,233,2,19,249,96,249,219,12,5,15,203,253,118,254,93,8, +132,2,71,252,49,253,104,249,165,251,175,8,170,9,125,252,66,248,141,255,157,2,67,255,165,255,96,5,197,7,165,3, +183,254,228,253,223,1,135,4,187,254,187,250,32,4,225,9,231,255,145,253,27,10,166,9,4,251,101,249,59,2,10,2, +235,252,115,252,221,0,149,11,26,17,156,0,40,238,154,247,25,9,132,5,142,253,3,0,63,253,223,247,226,253,79,2, +26,255,130,2,208,5,12,0,69,255,218,254,32,241,52,237,72,255,16,9,32,3,184,1,158,0,80,251,46,255,186,3, +9,252,62,248,105,255,22,3,76,2,77,0,171,248,147,244,241,252,221,5,49,5,212,252,196,243,132,247,155,5,27,7, +80,254,7,0,38,4,231,255,119,255,215,255,0,249,200,251,166,6,21,3,118,252,64,1,76,254,230,244,175,249,10,255, +26,250,219,252,127,1,159,249,92,248,3,2,79,255,144,246,93,249,40,253,230,253,240,3,205,3,218,247,213,243,134,253, +92,5,49,5,43,0,211,249,28,251,80,5,6,8,123,253,249,249,76,5,160,8,23,253,150,250,2,6,115,12,254,11, +100,10,226,2,64,251,130,253,154,2,165,3,88,1,114,252,220,254,232,9,161,9,57,255,167,253,58,252,73,247,34,2, +144,11,66,250,113,239,173,1,144,12,68,3,75,254,0,253,114,250,210,3,6,14,130,3,99,243,49,244,4,254,33,2, +104,0,113,253,86,254,59,7,130,14,201,4,153,241,64,232,231,231,31,238,0,2,105,15,167,1,108,249,249,11,123,15, +57,245,43,232,125,244,57,2,140,10,130,10,212,0,218,255,41,9,7,7,220,252,15,252,15,255,86,255,169,3,243,7, +209,2,184,253,247,4,189,11,152,1,21,245,165,247,116,251,209,248,160,255,131,9,21,4,106,253,6,3,10,6,140,2, +52,3,148,5,11,6,242,5,46,1,67,250,147,249,72,253,158,0,117,1,71,254,124,254,217,6,210,10,22,3,132,251, +24,254,93,4,170,1,178,250,13,1,37,12,217,7,2,3,63,8,183,255,129,239,125,244,74,253,21,249,122,0,240,15, +188,12,112,3,254,0,190,248,253,242,251,251,109,3,186,1,7,1,254,1,148,3,199,5,228,0,183,246,152,243,3,248, +28,251,82,251,31,255,181,6,79,7,104,1,244,1,211,4,48,1,120,255,54,255,168,250,122,254,4,8,223,4,158,0, +168,6,61,7,206,3,191,4,246,254,84,249,134,254,233,253,70,250,70,2,218,4,20,1,200,7,204,6,87,252,113,1, +105,1,76,242,212,249,65,5,255,241,144,239,118,11,15,10,189,246,34,255,133,4,91,243,183,238,97,247,116,249,106,254, +78,8,182,8,88,255,138,248,71,253,112,2,163,247,236,236,112,245,127,1,61,4,152,1,79,251,197,254,151,11,50,2, +191,235,137,240,85,255,52,253,209,0,53,11,115,5,252,255,137,6,231,4,184,253,146,252,8,247,187,241,236,250,143,3, +79,253,215,250,126,10,7,21,38,4,150,239,137,242,66,251,192,252,223,5,52,12,66,3,117,3,221,12,183,4,112,248, +218,248,14,246,66,243,147,252,130,4,226,5,239,3,41,253,56,1,9,11,91,249,108,226,90,239,125,2,80,3,245,10, +118,17,19,5,70,255,41,4,132,255,93,251,239,250,111,243,119,246,141,7,125,10,208,0,255,253,145,254,179,255,232,1, +82,253,137,248,189,252,75,254,46,248,75,246,43,254,252,9,31,11,91,251,196,241,155,254,155,10,144,2,81,245,24,244, +142,253,120,5,232,2,39,252,189,251,54,0,179,1,238,250,59,241,233,243,17,3,49,12,52,8,75,253,186,241,31,239, +62,246,57,251,28,253,197,255,33,255,178,0,90,7,42,3,208,245,203,244,117,253,103,0,43,255,74,255,181,3,46,12, +196,12,255,0,11,246,193,243,14,251,195,9,146,15,123,4,162,250,110,252,2,255,71,252,209,248,102,249,144,253,10,0, +7,0,194,254,35,250,115,248,132,254,134,1,77,0,1,3,198,2,28,1,39,6,111,0,4,241,42,248,14,8,51,0, +165,248,12,3,233,5,149,0,180,0,38,254,126,251,163,251,192,244,210,244,19,2,215,3,70,0,102,7,112,3,167,248, +99,1,91,7,16,253,239,253,205,2,185,252,248,1,155,10,209,253,124,245,0,3,206,10,10,4,22,252,11,249,55,255, +181,4,121,254,119,253,217,5,234,2,62,252,184,0,130,0,171,249,189,253,237,3,59,255,78,252,252,1,107,4,178,254, +201,249,219,252,176,3,55,7,104,6,150,2,66,255,111,255,230,254,204,253,102,0,129,0,55,0,208,8,104,9,89,250, +26,248,243,1,53,0,186,1,75,10,140,2,219,253,232,8,170,255,110,238,215,251,163,9,195,2,141,3,163,4,207,252, +46,4,195,8,107,248,1,249,151,7,93,0,208,251,165,8,24,8,148,3,175,8,11,254,16,242,229,0,234,10,173,254, +107,250,202,1,78,5,189,7,44,7,45,0,87,252,169,0,154,9,195,11,104,253,240,240,29,248,249,0,224,0,236,2, +144,3,26,2,219,7,150,6,19,247,253,241,178,252,214,5,174,11,53,13,61,6,131,2,218,5,89,3,211,250,186,248, +255,2,50,14,252,4,136,241,89,246,242,7,220,2,5,249,83,5,80,14,121,1,110,248,28,0,111,3,36,247,125,239, +59,254,217,15,93,11,51,255,197,0,91,5,70,0,113,249,250,249,248,1,214,7,8,2,245,251,165,3,208,11,101,7, +90,1,46,255,40,250,139,247,251,252,253,255,60,253,165,0,101,9,229,9,131,3,216,255,46,253,108,251,52,255,38,2, +213,0,242,2,118,4,137,0,86,2,80,6,28,254,209,246,172,252,119,0,41,255,12,3,99,4,189,254,190,252,18,0, +78,4,174,4,87,251,203,242,154,247,88,0,192,5,83,6,94,250,80,243,229,3,43,10,74,244,30,239,13,4,83,9, +193,254,145,252,129,252,83,250,59,254,61,3,241,2,74,254,21,251,53,2,116,8,231,253,99,246,51,0,219,2,178,250, +142,254,62,6,247,255,27,247,199,248,147,1,35,7,152,0,29,246,121,247,144,0,212,3,31,255,86,251,211,2,231,10, +104,255,9,241,228,248,151,4,86,3,84,3,21,6,15,6,70,7,228,255,110,243,57,250,220,4,99,253,238,254,50,12, +30,4,212,247,238,254,232,254,43,246,133,252,148,2,189,255,202,3,223,0,74,243,116,249,86,9,157,4,235,252,71,1, +228,255,201,250,230,253,170,0,219,0,66,3,128,2,117,255,76,254,89,252,68,255,88,8,142,8,228,0,71,0,100,2, +10,0,63,255,240,255,237,0,234,5,133,6,189,253,200,249,13,255,178,2,232,2,136,1,183,254,220,255,187,1,211,252, +57,250,119,255,162,3,139,8,121,14,181,7,54,252,119,254,13,2,149,252,224,252,114,2,162,3,165,6,31,6,81,251, +189,250,44,6,187,3,237,250,89,0,102,6,37,5,28,6,51,0,227,243,171,248,177,7,168,6,150,251,213,247,37,252, +226,4,67,8,170,254,112,248,87,2,220,9,21,0,130,244,18,249,57,5,161,3,238,247,239,250,90,8,183,4,161,248, +45,254,149,7,85,1,41,252,188,0,102,255,73,252,23,3,238,5,14,255,91,254,213,0,200,250,241,246,79,250,224,251, +217,2,235,15,72,12,222,250,135,246,175,250,157,245,49,242,113,254,173,15,71,17,213,0,178,246,207,252,136,250,18,240, +142,249,206,7,169,0,57,251,121,2,39,255,5,249,213,255,179,3,84,2,9,5,98,1,156,250,114,252,23,251,62,248, +183,1,205,6,27,0,167,2,252,8,10,2,219,248,15,247,18,250,3,255,133,253,53,253,138,10,215,13,65,254,129,252, +169,2,151,248,104,250,2,13,84,7,89,248,178,1,161,5,18,246,210,244,158,1,29,6,227,5,202,2,65,251,245,251, +39,4,37,5,237,255,15,255,119,4,220,6,246,255,112,253,152,7,68,10,216,252,124,242,214,243,214,252,62,9,193,11, +25,2,207,252,118,252,189,248,5,249,87,254,167,0,217,2,100,6,126,8,12,9,241,255,115,242,127,249,82,10,111,6, +166,255,255,9,57,11,97,254,44,253,89,0,96,252,46,0,74,3,170,246,185,244,154,5,118,4,133,243,222,248,255,9, +211,8,69,1,163,255,48,251,18,252,95,5,148,1,100,245,108,248,192,0,234,0,187,2,34,3,46,252,62,251,114,255, +197,252,102,249,228,249,92,253,1,7,166,8,68,252,200,251,179,3,110,249,187,242,208,1,139,6,181,253,147,1,173,6, +151,1,205,254,217,248,136,239,111,245,4,2,162,2,108,251,11,244,184,247,241,8,196,10,202,247,189,243,85,1,55,8, +138,7,99,255,125,242,138,244,201,254,255,255,64,6,172,13,122,254,92,235,246,235,70,242,204,247,31,1,29,6,123,4, +88,253,183,241,228,238,144,244,246,248,157,5,43,16,234,0,95,241,78,247,115,248,253,243,73,249,103,248,14,249,195,9, +6,9,22,246,142,250,42,7,96,0,232,249,133,248,73,248,108,3,245,2,91,240,214,246,220,11,184,5,180,253,104,5, +222,0,148,246,37,242,102,234,54,247,254,23,24,25,149,2,18,255,79,254,76,246,185,250,236,251,81,243,187,251,133,12, +242,14,184,8,204,252,166,245,62,3,205,10,134,250,116,246,253,5,164,9,85,2,23,251,51,244,15,254,251,15,20,7, +26,247,152,2,185,9,124,247,36,244,193,4,6,3,241,249,224,5,132,13,187,255,146,251,61,5,128,1,195,249,242,255, +124,3,91,255,63,3,34,10,243,9,174,5,243,254,6,254,61,4,148,253,247,243,80,5,81,24,233,13,118,4,23,13, +85,14,158,5,27,253,45,246,190,254,58,13,35,3,153,247,7,11,102,26,8,9,98,245,187,245,20,0,99,7,236,2, +186,249,251,252,198,9,68,14,63,2,227,242,54,249,10,14,205,13,143,253,61,251,61,254,146,250,30,251,139,251,124,252, +51,12,148,20,171,3,216,250,37,3,20,0,65,250,119,2,238,7,162,8,46,14,83,9,42,247,34,239,39,248,205,3, +60,6,172,3,19,9,77,13,237,0,135,249,102,5,133,7,95,253,73,3,60,9,64,248,95,237,254,248,39,1,91,0, +173,3,30,3,112,251,177,251,93,1,161,253,249,248,243,1,224,10,17,3,90,249,172,253,126,2,42,255,162,1,163,7, +99,255,246,242,64,248,167,4,38,4,128,254,144,255,65,1,154,255,245,251,195,244,8,245,27,5,142,12,120,254,125,249, +18,5,88,2,206,244,111,246,238,254,10,2,28,5,94,2,69,249,209,248,208,253,162,254,44,0,74,0,51,255,133,8, +249,15,247,3,91,246,255,246,153,252,90,2,54,3,235,250,124,250,214,5,192,6,208,252,186,247,180,249,132,5,118,17, +12,7,156,248,183,3,7,15,29,4,243,252,148,1,197,254,234,248,179,251,191,1,31,4,115,255,169,249,129,253,150,1, +88,252,233,252,58,6,211,8,153,7,29,7,222,255,115,251,233,1,218,2,80,254,15,5,30,11,121,0,153,247,133,0, +155,10,242,5,254,252,188,252,37,255,56,1,142,13,33,26,245,14,6,249,128,245,241,253,34,2,154,4,118,5,161,5, +182,11,21,13,98,1,243,249,178,253,204,255,94,254,59,251,251,247,215,0,169,14,49,11,152,3,253,8,126,5,96,246, +102,248,224,2,199,254,194,253,94,10,144,13,227,2,8,252,160,253,222,1,233,1,205,252,6,255,224,10,234,14,216,7, +212,2,74,1,13,254,30,250,30,249,225,255,228,9,233,9,196,3,189,3,62,3,57,252,158,248,239,252,181,4,242,7, +82,255,159,249,103,6,228,13,29,0,0,249,150,1,99,5,200,5,57,6,134,255,33,0,161,9,97,2,119,246,55,0, +238,9,171,3,225,255,185,254,104,252,197,3,160,8,71,2,168,3,203,5,152,250,164,250,25,7,255,1,232,250,251,6, +34,9,28,250,3,250,195,6,12,8,41,1,254,254,33,1,87,255,246,247,122,249,233,5,224,5,101,250,66,253,205,7, +76,5,148,253,224,250,101,252,99,3,49,6,139,254,217,253,174,5,251,2,181,252,7,254,130,248,181,240,51,252,30,12, +38,9,196,254,105,249,240,246,207,252,114,7,34,6,191,254,25,0,47,0,164,249,57,252,101,4,82,0,208,249,103,0, +142,7,103,3,116,253,55,254,121,3,178,5,208,254,141,248,118,255,210,6,125,255,109,246,218,249,19,2,85,4,239,255, +81,252,154,255,123,1,32,251,16,248,70,252,126,253,58,254,244,1,50,255,211,249,9,252,169,253,180,251,242,254,137,2, +125,1,68,0,156,249,224,240,166,248,148,7,19,5,31,250,13,248,53,248,95,245,4,245,173,249,178,4,129,15,209,11, +188,251,63,240,170,241,203,251,1,4,11,4,248,1,19,0,155,249,119,245,93,249,22,252,247,252,176,1,1,2,204,251, +39,250,196,252,92,255,150,3,167,2,87,251,100,251,189,0,118,253,101,247,38,249,74,254,222,0,9,255,203,250,216,250, +110,253,205,252,146,254,90,2,17,253,46,245,143,248,26,0,194,3,180,12,69,28,127,31,173,8,18,232,224,220,4,236, +129,1,88,24,7,50,175,55,5,26,29,242,72,220,47,218,253,232,169,10,211,50,255,70,246,54,254,12,128,230,115,218, +198,228,170,245,149,14,164,47,83,58,225,28,104,248,104,233,6,231,213,238,118,3,234,17,105,18,231,14,30,4,55,247, +113,248,64,251,139,245,68,250,187,2,94,251,108,249,248,5,11,5,36,252,93,0,209,254,210,241,225,244,42,3,34,4, +245,255,43,4,71,7,112,1,36,250,62,250,65,253,229,248,6,244,133,251,134,7,35,12,129,11,40,6,196,250,65,240, +28,238,6,249,91,12,3,20,73,8,168,250,109,246,135,249,24,1,5,3,32,252,250,251,233,2,89,0,80,250,185,254, +175,3,170,255,229,251,217,253,82,254,60,250,207,249,31,1,173,7,153,9,149,8,1,254,137,240,160,245,235,1,81,252, +0,247,189,4,17,12,234,255,4,247,21,251,49,0,152,253,246,247,79,252,2,5,176,254,96,245,166,254,185,9,106,5, +168,253,176,248,111,246,139,251,67,255,144,253,190,3,123,13,193,12,54,7,70,1,32,249,85,246,119,249,209,253,177,5, +216,7,169,253,188,248,107,253,215,252,195,249,27,250,92,250,131,254,77,1,61,251,206,253,32,10,70,8,107,0,233,1, +4,0,144,255,251,6,4,255,10,244,240,4,150,16,20,254,165,246,190,1,80,254,182,248,118,2,49,5,237,251,119,248, +16,250,102,251,78,255,238,3,8,5,1,0,243,248,233,249,199,253,112,249,232,247,139,2,66,10,134,5,166,253,244,250, +3,253,165,253,248,250,161,252,65,3,185,6,47,6,83,2,4,251,114,248,24,253,109,0,20,255,240,249,247,246,228,0, +151,13,239,9,197,254,152,248,40,243,255,243,48,253,182,0,10,3,75,11,102,8,228,250,157,245,195,245,73,249,211,3, +204,4,29,252,88,254,228,0,172,248,83,249,93,1,24,1,53,1,158,1,163,251,244,253,176,4,36,255,161,253,162,4, +96,253,218,244,241,254,233,3,204,249,126,248,32,1,92,1,81,249,36,248,210,3,112,10,19,255,214,247,167,0,178,2, +175,250,73,250,5,254,221,254,152,253,200,246,86,246,228,5,107,13,68,3,86,254,171,0,18,255,96,254,42,253,188,250, +90,2,83,11,22,7,132,0,197,255,81,0,10,1,225,251,177,246,91,5,184,22,101,13,204,254,254,0,41,1,197,251, +194,255,53,6,35,8,109,9,221,5,164,0,182,3,143,7,132,4,124,1,5,0,100,253,158,254,93,4,5,5,85,254, +234,253,97,8,93,11,140,2,193,0,178,2,84,252,134,252,71,2,23,251,161,252,168,21,93,30,129,8,97,244,146,238, +69,247,61,11,251,15,100,7,31,17,246,26,53,7,20,242,237,243,83,254,13,7,132,7,108,0,57,5,151,16,18,11, +212,253,182,246,176,243,144,252,138,9,22,5,179,253,197,2,88,3,154,254,133,252,44,245,107,246,167,8,248,10,34,252, +137,253,151,3,172,253,123,1,82,9,222,254,173,246,52,254,61,0,244,254,12,9,172,13,9,1,227,247,239,251,123,251, +214,244,136,253,12,16,230,14,51,0,57,255,168,5,149,3,160,255,148,1,176,11,59,22,217,10,4,242,238,240,239,0, +45,4,185,2,227,4,224,1,42,3,178,6,193,248,75,236,24,251,82,15,82,18,193,10,139,1,203,255,53,5,94,0, +94,244,88,245,23,254,120,1,22,3,219,4,84,4,55,1,148,250,9,247,181,251,218,255,254,0,68,3,68,2,200,0, +196,3,161,1,190,251,130,252,197,252,105,252,114,3,182,4,187,0,238,8,164,8,141,242,10,240,89,9,84,16,245,255, +16,249,154,254,113,255,2,248,48,248,229,10,22,22,233,5,24,249,172,255,184,1,42,0,238,4,102,1,225,252,241,4, +69,4,165,250,241,255,150,4,4,250,111,247,173,255,217,3,249,7,40,7,215,252,35,254,229,8,102,2,129,244,15,246, +229,252,130,252,213,249,126,249,174,254,48,7,127,7,160,254,115,248,57,248,131,248,229,249,82,1,4,12,106,16,86,10, +15,253,145,241,177,244,19,2,251,3,26,252,194,254,150,7,147,8,82,2,238,246,40,243,57,1,220,4,97,245,111,253, +226,20,183,7,79,239,214,249,199,5,47,248,151,239,5,246,112,251,7,250,50,239,42,234,164,250,41,2,120,236,61,224, +130,240,234,253,237,249,128,244,251,249,97,4,145,0,159,241,130,244,145,6,120,9,136,254,207,249,232,253,182,5,26,9, +58,3,172,254,250,253,55,248,252,245,69,253,44,254,106,247,221,247,126,253,138,255,35,254,151,251,130,252,80,0,96,255, +162,253,57,2,124,6,88,5,65,255,142,245,169,244,98,255,202,1,193,251,66,255,21,3,8,252,203,248,159,251,198,249, +54,250,193,1,240,8,190,14,193,13,149,254,113,240,245,242,222,252,81,3,214,5,151,4,7,4,159,6,206,2,117,246, +124,242,150,0,181,16,235,14,71,0,110,249,102,254,200,0,229,250,192,248,69,2,205,9,238,1,12,249,130,254,45,4, +206,254,138,250,174,252,122,0,135,4,62,3,194,255,188,4,181,3,70,244,112,243,52,3,15,4,106,254,164,3,125,0, +252,247,115,254,248,1,88,251,87,0,90,6,229,255,32,0,241,3,193,254,148,2,185,9,49,253,167,245,111,3,179,5, +95,250,180,252,71,1,232,250,100,251,51,3,190,3,6,2,124,2,166,255,204,253,124,0,55,1,188,255,182,0,170,1, +72,0,9,0,33,1,120,0,239,0,169,4,72,4,216,254,196,254,133,1,54,253,225,250,142,0,253,253,115,242,202,243, +98,0,163,1,95,248,158,248,138,3,45,6,59,252,68,249,91,4,58,10,90,2,25,252,246,255,12,5,225,2,48,254, +192,2,171,11,174,6,200,249,235,248,69,253,105,252,146,0,102,5,77,253,76,248,219,3,225,11,117,5,23,255,255,254, +195,0,62,2,36,255,179,249,172,254,202,11,147,13,10,2,209,250,54,251,243,250,38,255,151,8,105,8,141,2,171,5, +105,5,140,252,199,0,80,9,254,253,11,246,105,3,249,7,201,254,208,0,18,4,231,251,186,250,220,2,246,6,116,8, +97,4,245,249,141,250,205,3,140,2,29,254,10,1,246,1,196,1,184,4,251,255,204,246,247,248,5,1,26,2,54,254, +55,251,55,253,135,3,63,4,7,254,133,252,30,0,222,255,135,254,245,1,72,5,250,3,222,0,7,253,115,248,81,249, +145,1,184,6,232,3,10,1,66,0,88,254,191,253,21,253,92,250,104,253,211,3,33,1,112,252,164,0,125,4,15,3, +4,0,43,248,220,243,93,253,112,3,95,253,74,254,124,4,44,255,252,247,13,250,164,255,114,6,191,6,140,250,93,246, +78,2,232,5,196,254,247,255,65,4,165,2,27,2,43,1,135,253,95,254,61,1,57,3,105,8,83,7,115,252,159,251, +40,5,181,3,86,252,163,254,131,2,253,0,47,255,228,251,90,250,103,2,82,8,107,0,215,250,98,3,107,9,68,2, +173,250,3,252,84,2,37,8,57,7,122,254,57,250,222,254,251,253,216,247,140,255,249,14,22,13,26,255,109,252,73,3, +126,4,123,0,21,255,211,0,180,2,12,4,247,3,45,255,212,248,242,251,173,5,136,4,223,250,144,252,134,6,116,6, +212,255,155,255,97,2,223,1,111,0,136,254,45,252,224,253,119,2,66,4,5,5,231,5,81,1,118,252,164,2,2,10, +37,4,228,252,232,255,3,1,133,251,118,250,222,252,168,252,241,252,203,253,41,0,72,8,22,11,17,1,148,252,110,3, +40,3,102,253,116,0,200,4,106,2,75,0,118,0,154,1,186,3,74,2,247,254,18,254,80,251,195,251,115,5,87,7, +7,254,119,255,8,5,178,252,76,248,61,0,247,1,11,3,99,10,61,4,160,247,149,252,61,3,30,253,155,253,39,6, +170,5,108,255,28,252,59,252,54,255,188,255,149,0,115,8,14,7,38,247,161,245,181,2,215,1,16,253,20,5,211,5, +5,252,38,252,150,0,235,254,4,0,46,3,34,2,63,0,191,252,98,250,40,0,43,2,84,250,57,253,133,10,204,7, +17,250,251,250,247,3,230,1,11,254,213,4,157,6,181,250,238,248,46,5,43,0,121,240,154,251,185,15,28,8,229,251, +113,1,206,255,182,244,238,248,217,4,153,8,59,10,32,8,3,254,131,248,145,251,152,253,117,255,40,5,140,8,100,3, +220,248,80,244,177,250,206,0,43,0,139,1,100,6,103,7,24,5,244,0,49,251,101,250,179,253,141,252,10,253,72,6, +129,9,241,253,223,245,186,251,131,0,180,253,252,254,152,3,208,0,82,253,224,0,101,0,206,249,142,250,135,255,166,254, +184,255,11,6,18,6,29,255,212,249,178,247,74,248,85,251,105,254,218,1,225,3,245,255,131,250,6,252,161,2,192,2, +75,247,148,242,34,4,14,16,133,255,157,246,174,6,228,3,180,235,221,238,96,4,198,2,198,249,227,2,237,10,202,3, +185,252,40,254,98,255,17,252,54,253,8,5,5,6,6,1,186,3,241,3,13,249,220,247,71,1,157,255,175,252,130,5, +208,7,3,1,76,0,220,254,23,249,47,251,239,255,47,255,38,1,150,4,200,1,69,254,164,253,225,251,27,249,228,247, +53,251,216,1,250,4,189,5,208,4,195,251,128,248,154,6,232,7,46,244,238,245,223,10,62,6,6,245,151,250,14,6, +175,3,238,254,8,253,165,251,200,252,131,255,136,4,183,7,249,0,122,252,119,3,63,3,79,250,76,252,212,1,234,0, +164,5,178,8,15,253,193,245,236,251,189,254,45,255,50,5,142,7,119,4,254,1,106,253,142,250,170,0,35,7,50,5, +68,0,50,255,246,1,240,3,140,3,110,4,66,4,235,0,156,2,45,5,230,251,211,245,4,2,210,9,21,1,78,254, +106,5,157,4,17,254,240,252,146,0,196,5,177,7,3,3,73,255,190,0,72,1,184,0,68,2,165,1,222,252,235,249, +28,254,197,6,113,9,12,3,12,0,202,3,124,255,17,244,136,246,75,6,117,11,161,2,0,255,202,2,243,255,204,249, +200,252,254,2,36,3,51,1,38,254,152,249,135,252,42,4,229,1,164,251,83,255,238,3,13,255,166,250,231,254,132,4, +209,2,231,251,44,249,80,252,138,254,245,0,31,6,117,4,106,250,24,248,28,2,75,8,82,0,144,245,38,249,75,6, +159,8,205,0,164,254,242,254,244,250,183,252,4,6,152,11,140,10,108,5,75,0,203,254,129,249,136,243,59,0,174,17, +160,9,13,252,128,2,200,3,27,245,33,243,210,255,156,7,167,11,135,13,144,6,18,251,94,243,123,246,228,3,35,8, +145,254,117,255,198,9,0,6,192,254,181,6,34,15,79,12,68,8,17,7,39,6,250,7,63,15,195,23,164,20,117,5, +87,0,173,8,160,9,178,7,161,15,75,16,146,6,24,8,236,10,43,250,251,233,27,243,167,8,47,16,214,5,252,254, +156,1,217,246,75,232,98,250,32,20,70,9,159,250,23,9,93,14,48,252,195,247,68,2,232,3,18,3,52,6,239,2, +144,252,222,253,3,3,160,1,244,250,11,253,242,7,142,6,222,249,47,251,90,5,94,0,95,246,29,251,239,3,31,3, +157,0,214,4,38,8,133,1,40,249,137,250,138,254,245,254,213,3,173,7,193,255,205,250,196,0,205,254,24,246,226,249, +48,1,96,253,6,250,52,254,204,255,137,252,45,250,209,250,140,253,33,255,52,255,190,255,252,251,128,245,90,250,52,5, +68,0,199,244,96,251,240,5,177,252,246,242,73,254,56,8,190,254,226,247,165,255,249,2,222,252,122,251,148,254,75,254, +185,252,208,252,239,254,134,1,25,254,166,247,171,250,250,2,161,3,138,0,64,0,203,255,65,0,183,1,190,254,145,251, +83,253,128,252,55,248,77,250,46,1,223,3,173,2,223,0,134,253,6,251,152,255,255,6,111,3,43,249,217,251,231,4, +121,255,181,247,191,254,44,4,68,255,72,255,179,1,210,250,73,243,221,244,102,253,54,5,150,2,119,253,9,5,91,9, +254,252,84,248,3,0,211,251,93,246,69,1,203,5,42,250,198,244,42,249,115,252,40,254,224,253,99,255,98,5,121,1, +68,244,173,244,175,253,159,251,58,251,43,7,128,9,16,250,17,242,145,254,244,9,172,3,135,255,80,10,177,8,7,244, +229,240,138,2,50,9,234,7,162,12,62,8,200,248,43,242,196,248,39,5,214,12,15,7,26,1,16,4,177,253,164,241, +172,248,19,6,96,5,126,3,25,4,86,254,68,253,187,1,100,254,4,254,174,6,235,4,254,251,149,255,79,6,8,2, +70,251,157,250,232,255,102,6,81,4,144,251,158,249,204,253,61,254,131,252,230,253,151,0,142,0,176,253,224,252,245,255, +126,1,118,255,244,253,128,0,210,7,65,10,236,253,13,244,234,253,13,5,232,250,205,250,135,8,68,4,192,244,178,250, +234,9,144,4,76,246,11,249,207,5,51,6,35,254,218,2,43,13,235,2,120,240,60,247,180,8,33,3,157,248,204,4, +147,13,111,252,6,241,200,253,167,5,130,255,106,2,157,10,132,4,133,250,222,251,93,255,117,252,125,249,196,253,92,7, +129,8,221,251,227,245,31,0,142,3,163,249,42,249,152,2,134,0,220,244,224,242,51,254,164,8,193,5,158,251,112,249, +96,254,196,254,0,250,219,246,71,249,11,1,165,5,196,254,215,243,21,242,219,248,218,252,191,250,211,252,213,5,222,7, +108,0,51,251,243,245,18,240,21,248,39,5,32,3,255,255,153,4,252,252,6,243,126,253,155,6,126,0,29,3,62,10, +57,1,8,249,28,253,160,251,199,247,15,1,236,11,188,8,132,252,45,246,33,254,157,7,84,2,242,250,196,1,24,9, +206,3,10,254,216,2,141,8,85,0,52,243,92,250,60,13,35,11,176,253,198,1,211,7,175,253,126,249,87,3,243,3, +90,250,118,253,217,12,46,13,246,248,1,243,121,6,91,10,79,248,48,253,48,17,218,8,197,248,178,255,96,3,156,249, +16,250,174,0,94,5,64,15,81,12,96,246,139,243,20,8,248,11,147,255,218,253,148,1,154,2,208,7,140,7,12,251, +198,247,211,4,161,9,106,0,224,255,8,9,225,5,165,250,33,254,87,9,32,7,255,254,86,0,227,3,214,1,208,0, +137,2,98,1,166,255,36,3,21,7,82,3,180,254,65,4,87,9,76,1,50,252,4,6,167,10,73,1,86,252,210,254, +82,255,37,3,43,8,152,2,42,253,130,2,0,3,218,252,159,1,171,8,60,3,113,0,143,4,73,253,49,245,53,0, +151,9,168,0,16,252,44,3,219,3,214,0,227,1,96,253,166,248,57,0,210,6,95,4,175,5,100,5,166,248,79,241, +62,250,227,1,235,1,14,4,214,5,215,0,16,250,240,249,87,2,200,8,85,2,207,249,75,254,100,5,106,1,117,251, +103,253,46,2,132,5,209,7,96,6,180,0,123,252,47,252,136,252,245,253,171,2,224,4,22,1,176,254,230,254,18,253, +52,255,153,4,235,0,204,252,54,3,52,0,130,241,175,245,47,5,77,1,162,250,119,4,52,7,112,252,2,250,119,254, +125,255,211,0,164,0,129,255,185,4,202,6,30,255,77,252,186,255,245,254,254,255,33,3,149,253,109,249,183,1,12,7, +246,0,222,252,69,255,176,255,230,251,183,249,193,253,125,4,212,6,229,3,114,253,179,245,127,243,102,248,160,254,237,5, +151,11,208,5,152,248,183,241,175,244,182,255,31,10,3,6,227,252,238,255,14,1,191,246,85,246,216,0,22,2,108,255, +136,1,223,255,38,255,148,3,234,254,229,246,225,253,191,7,239,5,25,2,163,254,170,247,58,247,3,255,187,2,107,255, +223,248,39,245,5,254,60,11,132,7,176,248,175,245,120,252,27,254,206,253,235,1,5,1,169,247,92,246,99,1,52,2, +4,244,250,241,132,0,111,4,149,251,104,251,170,0,222,252,41,248,33,252,29,0,203,253,136,250,109,250,101,253,185,1, +47,2,145,252,67,249,234,254,36,4,207,254,253,247,178,251,29,3,20,5,251,6,11,9,178,0,170,246,1,255,92,11, +125,1,80,246,16,4,170,11,212,248,232,246,84,17,134,19,174,248,196,242,50,3,240,9,235,10,216,15,213,12,83,1, +84,248,3,246,227,251,242,3,119,6,111,10,56,15,251,5,81,248,175,250,165,1,171,255,76,1,18,8,176,6,66,3, +211,5,77,2,251,247,46,248,60,0,26,1,6,3,214,12,66,9,191,246,232,246,223,8,238,6,141,245,96,247,27,6, +8,8,250,0,89,254,7,0,94,1,12,1,157,2,194,3,82,252,174,247,30,2,243,5,54,251,122,254,245,8,14,253, +1,243,151,2,141,11,132,2,26,0,200,254,242,246,11,252,21,7,110,3,247,255,107,5,99,0,231,244,189,247,91,1, +38,2,145,255,144,0,105,0,81,254,82,0,249,3,99,2,113,0,205,2,91,2,22,0,51,2,185,0,228,251,156,0, +65,5,159,254,81,253,149,3,101,1,72,255,11,2,228,249,133,243,204,0,63,10,100,3,66,255,135,252,242,244,177,246, +65,254,192,254,238,1,135,8,71,4,57,250,221,244,236,245,150,0,62,8,206,253,150,246,100,1,133,1,21,240,238,237, +120,252,70,0,93,251,72,253,119,255,255,250,222,248,1,253,156,1,151,4,206,3,116,253,152,252,23,6,220,6,221,250, +131,249,49,2,37,2,47,2,142,7,115,1,254,250,228,5,122,9,200,251,131,251,217,6,155,2,165,250,72,1,163,7, +142,3,212,254,155,255,244,4,139,8,236,3,59,254,115,0,27,5,94,5,5,3,78,2,112,5,193,7,255,2,101,253, +121,0,7,6,47,2,94,250,111,254,49,9,131,5,41,251,82,2,247,12,102,4,214,250,160,253,237,253,249,255,72,10, +147,8,136,252,195,252,207,1,142,1,207,4,231,4,95,254,45,0,244,1,87,249,152,251,68,8,91,6,17,255,213,0, +202,254,107,251,50,1,35,3,62,255,200,1,151,2,67,253,45,255,31,4,63,0,238,251,55,254,7,1,210,2,171,5, +201,6,39,2,121,249,38,247,135,0,149,9,250,6,87,254,28,250,138,251,240,251,26,251,252,1,93,9,225,0,235,247, +21,2,68,9,221,254,10,252,28,6,226,6,125,255,142,253,77,0,122,3,62,2,29,252,83,251,55,255,42,255,62,1, +207,5,192,1,187,251,104,253,65,0,217,1,157,0,155,249,230,250,246,4,106,0,234,246,137,255,158,5,203,252,11,253, +237,1,183,248,145,242,110,249,87,253,147,253,19,255,209,253,45,254,141,255,231,250,123,250,247,1,60,1,42,250,96,251, +81,1,87,3,45,255,115,248,173,251,5,5,82,1,98,251,240,3,16,4,50,243,133,242,224,3,130,6,138,253,122,255, +231,2,119,251,120,248,129,0,110,1,229,250,64,1,6,11,140,0,203,244,30,255,107,7,220,253,194,249,251,255,74,1, +33,1,123,0,201,248,19,248,117,5,122,11,241,2,96,253,160,255,19,255,223,249,117,249,122,0,73,4,182,1,63,2, +94,4,26,1,114,253,215,250,97,249,123,2,55,12,40,4,41,251,27,0,218,255,229,249,0,255,91,3,123,255,163,1, +175,4,172,255,236,252,157,253,83,255,95,5,184,3,130,251,233,1,8,7,164,247,197,243,51,3,59,2,213,250,231,5, +155,10,220,255,200,253,41,255,180,250,129,251,84,250,78,246,44,3,241,13,230,253,28,245,111,4,2,4,7,244,150,251, +91,11,52,2,137,245,227,251,31,2,5,254,128,251,204,250,199,249,125,254,195,4,65,8,49,11,105,2,116,240,241,244, +47,8,80,2,202,247,115,9,189,15,243,247,32,245,79,9,129,3,192,238,47,243,116,7,246,13,120,1,126,249,160,7, +7,12,81,243,47,241,251,15,128,14,157,247,150,9,62,29,50,1,80,236,62,253,34,5,18,254,204,4,98,11,18,1, +65,246,90,247,122,255,228,5,82,7,220,7,72,3,191,244,81,239,144,254,119,11,113,9,56,6,111,2,37,248,9,244, +13,253,1,6,107,7,151,6,99,4,170,254,211,252,8,4,9,7,245,252,216,246,15,0,68,8,190,3,206,252,103,254, +20,6,108,6,148,250,187,245,49,1,169,6,247,0,30,6,173,13,251,253,218,233,71,242,178,7,169,7,117,250,134,255, +166,14,88,7,150,245,133,251,70,10,22,5,153,252,165,2,181,7,213,2,181,252,122,252,146,4,177,9,113,1,29,253, +95,4,25,0,201,244,150,254,251,13,199,5,223,247,97,252,203,4,209,255,191,250,4,6,234,16,137,5,1,249,92,2, +253,6,109,249,237,251,169,14,228,12,246,255,95,2,21,4,101,251,68,252,64,4,8,2,28,254,149,3,96,5,224,248, +35,238,157,248,72,12,0,15,240,4,186,0,38,252,157,241,8,244,3,5,104,10,15,2,112,3,201,10,29,0,40,239, +217,248,15,17,196,15,183,251,8,249,142,2,120,255,138,250,69,3,207,7,101,252,178,245,241,253,158,2,21,255,154,3, +26,10,10,1,139,246,208,249,124,251,209,250,195,6,244,12,224,1,47,3,29,13,155,252,106,234,34,252,213,14,222,4, +8,255,43,8,29,3,11,244,190,244,74,254,11,255,26,254,88,6,125,13,235,8,136,3,188,2,55,248,26,236,205,248, +225,13,104,10,34,0,175,5,3,4,87,243,23,241,132,254,114,3,60,2,232,4,4,3,221,252,15,253,223,253,254,247, +194,245,114,253,140,6,75,10,185,5,4,250,87,245,156,253,207,255,117,247,113,252,152,12,89,9,88,247,208,245,71,1, +75,1,85,248,191,246,234,250,64,250,89,247,134,251,113,0,220,249,154,242,224,249,248,1,138,253,172,251,229,2,194,2, +22,250,120,248,226,254,219,2,88,1,212,254,61,254,29,251,73,244,203,245,191,1,211,5,225,254,234,253,233,1,225,254, +115,251,78,253,85,252,172,251,77,1,12,0,101,245,107,247,58,6,51,6,83,247,1,246,244,3,92,8,32,255,63,250, +144,254,153,0,188,252,216,250,4,253,9,254,68,255,245,3,101,5,178,0,43,254,11,253,16,248,249,249,99,5,76,6, +180,252,62,255,75,8,97,2,13,247,136,248,158,0,145,4,207,3,15,1,185,1,253,4,173,1,149,250,54,250,179,253, +208,0,37,6,31,7,83,255,91,251,225,255,184,1,76,255,109,255,157,2,123,7,29,9,67,2,253,253,38,4,61,3, +79,247,247,248,4,7,233,7,95,3,16,12,234,15,3,1,74,246,126,253,76,7,21,8,118,4,141,6,244,13,115,9, +130,248,208,246,234,4,243,5,252,0,6,12,64,18,179,3,186,250,2,0,81,255,125,250,27,254,183,3,250,3,128,0, +54,253,42,0,105,5,139,2,8,253,98,252,221,251,55,254,16,4,45,0,219,250,240,4,79,8,82,248,118,248,78,11, +161,6,207,244,4,254,164,12,106,2,231,250,52,5,154,4,50,248,72,249,55,1,38,1,109,3,15,10,61,7,102,253, +215,247,30,248,233,253,229,4,44,5,214,3,176,6,174,4,193,253,101,254,66,3,201,0,167,249,141,247,138,0,2,14, +137,13,179,0,196,251,24,251,4,245,206,250,22,13,182,17,231,10,70,6,124,249,131,238,103,253,224,12,214,255,212,244, +123,2,120,9,57,252,235,246,192,255,214,255,92,248,149,254,228,11,172,8,61,251,167,249,87,0,214,0,133,253,162,253, +195,0,236,2,209,1,190,1,148,3,87,255,55,251,241,2,151,6,220,251,136,250,139,4,113,0,108,248,136,0,129,5, +9,254,213,254,231,4,72,0,116,252,51,2,176,2,249,249,216,246,179,253,201,2,64,1,95,2,219,5,1,255,215,244, +189,249,132,3,204,0,241,253,248,3,88,1,205,244,215,245,198,3,170,6,219,255,84,0,57,0,236,247,20,249,204,1, +137,252,100,248,51,6,252,7,217,246,139,246,242,255,80,247,223,242,22,0,44,3,2,252,250,252,29,253,104,250,230,254, +174,255,125,248,97,248,21,255,219,2,206,0,37,248,133,244,110,253,139,255,57,247,199,250,209,3,96,0,66,253,6,255, +167,247,188,241,231,250,33,4,158,2,249,253,41,251,179,250,91,251,135,252,45,2,15,6,50,253,192,244,44,252,31,3, +121,251,81,246,114,254,42,3,23,252,18,250,233,3,182,6,246,252,164,250,54,2,103,1,65,250,153,252,203,5,117,7, +145,253,241,245,173,253,49,5,111,251,213,244,147,255,88,4,204,252,83,252,11,1,124,0,188,253,241,249,130,250,192,4, +196,8,17,0,91,251,186,250,51,248,42,253,207,2,176,254,59,254,63,255,3,246,88,246,27,2,123,252,152,244,114,4, +80,12,47,250,239,240,56,248,165,249,180,250,79,3,216,3,149,249,122,244,92,248,234,251,183,252,103,0,165,3,35,253, +251,244,36,249,144,0,172,254,107,252,0,1,10,2,15,250,81,244,156,249,73,0,46,254,37,252,14,255,230,251,33,247, +153,252,237,255,82,251,140,254,177,3,36,253,88,250,52,1,172,0,60,252,217,254,10,0,168,253,76,253,214,251,60,252, +12,0,24,252,232,245,235,251,69,2,125,254,238,253,3,3,60,3,194,0,231,254,155,251,164,251,200,0,46,4,104,4, +212,3,206,0,114,252,204,252,62,3,99,8,190,6,210,2,18,0,101,254,46,4,24,13,154,5,30,246,245,250,79,8, +41,3,67,250,254,254,142,1,159,252,247,255,163,10,228,12,190,3,243,252,15,2,93,6,125,255,152,252,87,1,121,252, +71,248,17,6,78,13,235,254,164,247,250,254,26,255,238,252,103,4,44,7,178,255,179,251,85,253,178,255,87,3,115,4, +178,1,125,2,233,4,234,0,71,253,119,2,25,7,91,2,238,252,193,255,80,5,83,4,55,253,118,249,103,254,97,4, +233,3,62,2,89,3,205,1,189,253,142,252,111,254,6,5,88,14,224,11,177,254,22,253,224,3,123,253,4,247,63,4, +171,14,144,3,32,250,130,1,25,9,17,7,43,3,12,2,38,0,108,250,109,249,189,7,18,22,104,14,15,0,158,1, +15,4,25,252,188,255,80,18,74,24,250,11,174,0,64,253,107,252,123,253,52,3,155,12,55,17,49,11,96,2,222,253, +205,251,215,255,102,10,209,12,84,5,248,4,89,10,67,5,14,251,230,252,33,8,159,11,124,3,118,254,101,2,154,1, +85,252,102,4,227,17,116,12,32,252,126,248,202,254,138,0,166,254,175,2,217,11,218,11,147,255,160,249,27,255,140,255, +35,252,241,1,51,9,33,8,135,3,253,251,46,243,57,243,226,248,171,250,61,0,242,12,35,15,78,0,210,243,181,245, +122,250,172,250,10,254,229,2,68,0,34,253,167,254,226,250,143,246,215,253,169,5,17,5,156,3,147,254,108,247,204,251, +83,0,139,247,183,246,156,3,194,5,2,255,85,255,233,255,21,252,102,248,107,246,234,253,81,8,28,0,2,244,164,252, +88,3,242,247,169,244,198,254,21,2,145,0,67,2,213,2,19,1,12,252,236,245,145,248,98,254,12,251,108,249,170,1, +10,3,187,249,70,250,192,5,50,3,234,242,67,244,194,4,31,2,76,247,19,1,236,4,22,244,213,248,54,17,158,13, +75,250,125,249,31,252,124,248,240,252,122,4,167,7,134,8,243,1,17,250,184,250,190,250,155,252,38,9,108,12,23,255, +31,248,131,247,127,243,216,248,104,4,106,4,235,255,158,255,163,253,15,253,18,0,18,255,150,251,174,251,216,255,6,6, +142,6,76,255,229,250,148,252,171,0,202,5,48,3,212,249,200,249,10,253,170,248,2,252,211,3,172,250,93,240,35,247, +162,0,33,9,213,14,211,1,97,244,190,253,2,4,205,251,248,253,187,4,24,2,124,3,60,4,48,250,170,249,188,4, +82,4,22,254,251,0,109,2,103,251,118,248,81,1,242,8,223,1,4,252,251,5,132,7,45,248,147,246,22,0,95,252, +201,252,197,10,88,10,20,253,165,250,236,253,50,255,36,3,163,5,39,4,229,0,5,252,222,251,177,253,85,249,14,254, +109,13,185,10,82,254,188,3,70,7,40,253,221,254,123,5,170,0,157,6,230,19,141,8,239,246,255,254,197,10,8,4, +216,0,24,13,106,14,73,253,22,252,198,15,207,14,100,251,93,255,14,12,108,1,153,250,201,8,189,14,93,7,210,2, +110,0,148,2,150,7,94,4,98,5,101,16,99,12,150,253,66,254,21,4,184,2,30,4,8,4,104,1,235,6,53,6, +118,249,146,250,144,4,99,255,4,253,234,10,74,13,152,253,183,246,98,254,183,2,171,254,74,0,87,12,105,14,3,253, +180,241,212,251,140,6,191,2,153,253,209,2,219,5,4,249,193,237,93,247,90,2,219,255,233,1,68,5,194,249,253,243, +36,253,67,253,239,250,205,4,253,5,250,254,113,2,102,253,184,237,207,244,116,4,255,254,231,254,209,14,148,11,9,249, +117,246,128,251,58,249,231,250,10,4,5,9,231,5,114,0,255,253,11,253,213,251,188,254,27,2,249,252,165,248,100,0, +110,7,164,2,43,252,169,250,209,250,217,0,105,13,9,14,154,250,34,238,109,250,182,5,171,1,81,5,205,12,194,254, +55,241,85,253,207,5,103,253,199,254,241,3,26,251,9,249,110,2,251,253,237,242,114,246,125,255,246,4,79,8,85,2, +1,248,139,248,83,252,140,249,71,252,185,6,116,8,220,254,124,247,81,248,230,250,104,250,196,252,30,5,152,8,237,1, +75,251,71,249,116,248,20,251,28,0,146,255,255,250,107,250,29,253,7,254,53,253,127,253,48,254,241,251,223,249,100,253, +11,0,42,252,208,251,241,1,217,1,89,250,36,245,181,244,153,250,140,3,210,2,56,252,193,253,79,254,34,247,211,250, +138,8,136,7,252,250,203,247,81,252,21,0,112,4,1,6,114,0,193,250,180,252,48,2,205,1,24,254,33,3,117,12, +79,8,167,249,130,244,28,252,103,1,186,252,79,250,186,4,164,10,79,253,143,244,140,255,223,5,2,1,190,2,139,3, +211,252,217,254,56,2,64,249,188,249,237,8,92,9,120,252,33,252,100,4,179,3,152,250,24,246,79,254,154,6,89,1, +151,252,110,0,158,252,32,247,203,1,238,10,190,2,112,251,88,252,179,250,2,250,21,255,240,2,178,3,83,3,252,255, +102,252,75,254,61,2,189,255,43,252,166,3,239,9,109,255,206,249,175,4,201,1,155,244,185,0,221,16,0,5,242,251, +168,6,235,7,250,255,32,0,140,255,64,254,217,3,50,5,24,2,110,4,46,4,48,254,90,251,18,253,185,4,139,10, +182,255,66,248,59,8,47,14,37,251,35,246,212,2,148,1,141,252,81,7,108,14,78,4,145,250,128,253,168,2,7,0, +152,254,75,4,171,3,81,252,32,254,134,3,254,1,104,1,41,0,38,251,204,255,126,6,162,253,115,247,88,1,175,6, +99,1,81,253,58,252,105,255,34,4,182,4,21,9,223,10,15,251,148,243,95,4,115,6,99,245,150,250,36,11,141,5, +149,251,247,255,250,2,28,252,88,245,105,250,242,7,231,8,220,253,60,254,135,4,228,255,0,250,202,247,22,247,54,2, +220,12,241,1,34,247,73,255,234,4,65,1,234,2,171,5,93,1,21,251,24,249,253,252,250,253,49,248,120,251,175,5, +186,0,2,247,25,252,185,2,69,4,179,8,144,6,209,253,90,252,114,250,254,244,116,251,87,5,222,1,203,251,138,253, +57,1,248,0,247,252,67,0,15,12,198,9,84,252,247,254,192,4,155,251,225,251,238,6,2,2,35,251,107,3,194,5, +192,254,8,255,87,1,191,255,67,255,77,255,130,2,79,7,61,3,69,254,239,1,82,1,118,252,162,255,120,1,131,253, +242,255,2,4,169,2,77,3,1,1,222,246,155,245,230,1,169,8,146,1,81,249,145,251,195,255,194,248,194,243,114,254, +122,5,165,254,58,252,235,254,0,252,48,251,147,254,235,255,190,2,199,2,0,252,136,251,221,255,156,253,64,255,213,5, +156,2,52,255,120,3,26,1,215,253,0,3,18,0,9,249,152,1,123,9,66,2,8,0,93,6,241,1,106,245,51,244, +34,2,208,11,210,0,146,243,213,250,165,4,112,254,221,250,180,4,54,11,223,6,12,0,164,252,163,251,75,250,171,252, +14,4,144,4,169,253,42,253,197,255,126,254,126,1,88,4,26,254,220,251,98,1,185,1,125,1,181,4,213,255,179,248, +43,251,248,253,198,251,174,250,163,251,109,1,21,8,186,1,196,247,225,251,253,0,38,252,113,251,200,1,55,6,249,6, +112,0,223,247,108,252,169,5,211,3,116,1,211,4,170,2,75,255,15,4,134,7,115,3,71,255,206,254,43,255,167,253, +173,253,27,5,32,11,102,3,55,249,38,250,188,252,156,251,213,0,210,9,217,9,107,2,118,253,121,253,62,255,14,0, +209,254,148,252,9,253,142,0,127,0,79,252,173,252,244,255,99,255,43,2,194,8,94,4,71,250,97,251,245,254,31,252, +127,255,153,6,45,2,245,250,191,252,44,254,236,250,123,250,155,253,125,2,149,6,247,2,140,252,211,254,54,1,32,249, +119,245,213,0,241,9,14,5,227,253,74,253,121,255,95,1,118,1,177,254,185,253,242,0,134,1,102,253,225,252,232,0, +216,254,81,246,79,247,127,5,211,10,248,252,116,244,126,255,224,6,3,0,38,0,6,8,179,2,131,248,15,253,216,4, +255,2,236,0,92,255,152,249,140,253,169,12,79,13,202,253,141,250,4,5,202,3,87,247,193,247,230,7,22,17,35,8, +155,254,46,3,34,6,163,250,82,246,8,7,194,18,247,7,188,251,61,254,168,2,199,255,187,0,167,9,11,9,253,249, +17,247,136,8,24,14,17,0,241,254,235,10,11,6,145,249,155,0,190,13,152,8,206,250,164,249,179,3,6,8,110,3, +190,3,116,9,253,4,102,248,58,246,108,1,187,11,144,10,9,2,155,253,235,252,98,249,115,250,159,3,150,6,68,1, +235,254,59,254,46,255,137,7,128,12,170,5,14,254,90,250,51,250,7,3,175,11,212,9,114,7,127,4,99,248,36,243, +152,254,64,8,55,10,136,12,32,10,33,1,236,248,146,244,102,249,7,6,4,11,53,6,188,0,24,250,115,247,155,254, +148,2,244,255,187,1,91,1,80,251,86,253,236,1,11,253,136,250,129,255,175,1,59,1,236,254,28,251,167,255,251,5, +17,0,71,251,219,255,193,254,6,253,5,6,234,8,230,255,83,253,175,1,71,2,30,1,199,255,74,255,114,4,242,7, +8,0,205,245,0,247,136,1,133,8,136,6,204,2,70,0,63,252,17,254,228,5,64,4,178,254,63,4,233,3,220,244, +100,243,40,3,29,8,72,3,173,5,95,9,34,7,68,3,235,254,243,251,35,254,31,3,97,5,140,1,149,254,141,6, +66,11,107,252,122,242,237,0,63,10,65,0,17,0,151,12,221,10,163,254,154,251,243,252,206,252,46,4,251,13,135,10, +134,1,200,1,35,0,164,245,94,247,208,6,230,9,125,3,216,5,147,4,189,249,107,250,48,4,95,3,251,253,128,253, +67,253,49,255,142,2,150,255,157,253,203,2,101,3,109,254,222,254,231,0,254,253,189,252,179,0,113,2,129,252,100,246, +192,250,118,2,7,2,174,1,150,4,100,254,213,248,165,2,163,6,220,249,144,248,248,5,26,3,145,240,157,236,70,254, +162,14,29,9,224,247,192,244,167,251,191,246,8,240,22,252,176,12,226,9,59,249,146,241,217,249,133,1,215,254,170,254, +137,3,254,0,159,253,241,255,147,248,2,238,148,247,192,4,217,254,96,250,2,4,237,5,84,251,104,246,239,250,75,254, +184,251,239,251,56,5,111,7,77,249,128,241,117,246,84,243,171,242,248,7,231,21,63,5,185,243,63,245,162,249,134,249, +14,251,193,254,49,3,184,4,208,0,33,253,180,250,136,245,139,243,155,249,65,1,146,5,104,5,244,1,85,1,92,0, +247,245,232,236,13,244,202,1,174,8,176,10,204,9,43,3,12,248,119,240,227,245,41,3,77,8,153,5,132,3,52,254, +41,248,48,250,73,253,120,255,156,7,216,6,150,248,144,248,253,1,114,247,153,239,42,3,150,12,36,252,197,250,106,11, +75,9,231,249,161,248,105,254,47,252,203,249,64,254,224,255,236,249,167,248,34,1,92,5,191,1,8,4,77,9,46,2, +14,247,55,250,6,4,76,2,41,249,220,248,239,255,11,0,165,250,36,253,220,4,75,5,43,0,76,253,54,251,210,247, +215,247,230,253,188,2,4,255,114,251,20,2,193,5,93,252,160,249,52,5,189,5,195,246,58,244,66,2,28,8,122,0, +77,253,215,1,58,254,231,243,38,249,145,10,123,11,234,255,246,1,184,6,139,250,193,242,19,0,245,9,228,1,80,251, +239,255,111,2,69,253,50,250,0,255,90,6,5,8,107,1,188,250,192,253,253,2,241,253,232,248,48,255,216,1,249,250, +145,252,128,4,0,2,3,253,22,254,164,250,193,245,194,251,156,4,243,3,57,252,150,248,107,1,236,9,4,1,154,248, +84,1,30,3,149,248,25,253,208,5,132,250,250,242,143,255,175,7,198,4,171,2,207,253,218,249,184,254,176,0,216,254, +239,5,195,8,21,251,220,243,114,254,15,4,53,253,223,252,201,5,222,4,12,247,40,241,233,251,169,6,139,5,87,255, +3,253,169,0,155,3,48,253,39,246,96,252,145,4,247,254,58,247,179,253,219,10,132,10,1,250,247,243,87,5,203,11, +129,248,66,246,145,12,14,12,171,249,196,255,24,11,186,253,26,246,135,6,38,16,144,8,27,3,143,1,68,252,105,250, +61,3,74,13,210,10,112,0,53,253,125,255,18,0,138,5,92,12,76,6,83,254,9,3,197,4,117,253,61,1,95,14, +88,17,35,12,191,5,236,253,73,255,16,10,121,9,119,0,198,4,121,12,186,6,213,3,178,11,246,9,25,0,19,3, +17,11,80,7,178,2,75,6,180,6,128,2,3,3,69,5,4,6,127,9,112,9,247,0,20,255,51,8,18,8,80,253, +53,255,131,10,53,5,246,245,133,249,22,9,183,7,196,251,75,0,189,12,4,6,175,245,219,245,35,255,77,0,246,1, +230,7,74,3,125,249,195,251,77,0,84,252,226,253,50,7,114,9,56,6,216,2,245,252,99,254,213,5,230,252,203,240, +148,255,94,13,71,254,28,250,4,14,75,8,110,236,142,238,104,2,136,1,241,254,3,12,64,12,26,247,117,233,180,238, +98,248,63,255,106,8,173,16,28,9,35,244,240,236,36,251,21,5,31,0,166,252,124,255,211,255,175,254,24,0,211,1, +0,3,246,2,96,0,239,255,207,3,192,3,110,254,203,255,198,7,98,5,216,247,37,244,250,254,34,5,67,0,1,254, +144,2,116,4,198,255,76,249,156,246,181,249,34,255,52,2,242,1,0,0,161,255,86,1,198,255,212,251,71,254,200,3, +177,2,99,1,26,6,30,7,0,2,146,254,100,251,202,249,12,1,134,6,214,255,125,252,232,2,122,2,141,253,223,2, +210,6,56,253,184,246,196,254,132,7,202,4,20,251,26,246,230,249,117,253,103,254,79,6,22,13,148,2,57,246,44,251, +194,1,107,254,161,253,201,253,16,249,231,253,84,9,161,4,197,248,215,251,255,3,17,4,221,1,55,254,70,249,80,250, +179,251,58,248,180,252,27,7,32,4,142,250,40,253,56,2,186,253,111,253,49,7,47,8,49,250,138,241,111,249,119,3, +82,4,181,2,154,2,98,255,51,252,145,255,232,4,213,5,59,5,49,4,52,251,216,236,19,237,236,254,201,7,150,1, +213,3,147,7,147,246,55,234,198,248,162,1,248,250,239,3,14,15,52,254,193,236,96,243,156,251,163,252,183,0,252,2, +64,5,189,10,217,1,192,239,99,243,25,3,82,255,95,245,104,255,237,12,120,4,123,244,35,248,250,3,68,254,195,246, +26,2,137,5,49,245,140,246,206,8,217,0,99,235,165,241,53,2,189,254,13,247,61,252,62,4,214,4,70,252,159,241, +32,244,41,2,31,7,46,0,151,254,108,2,248,251,66,241,79,246,108,3,180,4,84,3,33,8,182,253,235,228,240,227, +132,253,47,11,213,5,133,3,71,0,196,236,186,219,162,235,173,13,235,20,105,1,72,251,248,0,126,244,227,232,241,251, +170,17,243,11,110,254,136,252,29,255,50,0,141,255,85,0,15,8,49,12,222,0,149,247,145,0,73,11,138,9,20,5, +107,5,117,7,112,8,51,7,72,6,89,7,152,3,215,251,50,254,253,8,204,10,93,5,151,5,203,5,28,0,76,255, +109,3,22,2,23,3,131,12,208,13,178,4,50,2,30,1,14,248,184,249,32,11,56,19,8,13,28,6,238,252,37,245, +54,251,161,4,85,5,248,8,175,15,135,8,114,249,127,246,7,255,27,6,89,7,2,6,225,4,148,2,157,254,109,253, +171,0,93,3,143,0,114,250,62,251,89,4,19,6,30,255,33,2,216,8,2,255,230,244,164,254,143,8,96,4,116,2, +139,7,102,6,196,252,204,244,67,248,54,4,62,10,144,7,154,3,3,253,230,246,16,251,69,3,191,6,254,7,62,3, +163,250,208,252,63,2,197,252,117,250,224,0,237,0,205,254,201,255,86,249,82,246,116,1,35,4,25,251,237,254,195,7, +24,1,54,247,97,248,193,254,61,2,80,255,205,252,188,1,135,1,128,248,245,249,141,2,222,254,171,249,249,255,64,3, +173,252,57,246,125,243,224,245,29,254,195,4,146,5,117,3,251,255,45,251,134,245,93,245,157,1,131,12,142,5,86,251, +157,252,220,251,30,245,198,247,104,3,61,9,178,2,245,248,172,251,54,3,44,253,170,251,196,12,161,12,14,245,169,243, +172,3,197,254,190,248,38,8,117,14,40,1,179,250,103,254,77,0,183,1,249,3,73,5,231,4,84,1,153,255,24,2, +100,0,99,253,4,3,124,7,161,0,208,249,97,252,175,2,239,5,235,4,45,2,210,252,141,243,166,243,139,4,170,14, +249,3,118,251,29,0,250,255,217,248,246,250,142,6,17,12,124,4,250,251,8,255,201,2,58,251,238,246,136,255,198,4, +116,1,94,2,160,5,127,1,127,250,167,248,203,252,0,3,238,3,217,254,53,253,225,0,25,1,219,253,77,255,27,3, +155,0,63,252,48,0,219,5,146,1,79,251,133,253,91,255,88,252,161,255,183,5,252,255,66,248,154,255,38,8,108,0, +82,249,15,3,186,9,103,255,12,250,108,3,119,5,59,252,13,251,76,1,128,3,53,4,208,2,9,253,72,253,221,1, +245,254,122,0,162,12,116,10,60,251,170,254,226,9,79,254,102,241,221,254,36,13,216,4,243,252,206,5,110,8,162,247, +160,239,95,2,133,16,31,4,141,250,210,2,36,1,128,243,97,244,246,254,18,4,121,9,65,8,0,249,226,245,136,6, +227,8,83,249,252,246,146,255,1,255,33,255,119,7,42,6,50,251,125,251,192,1,196,251,174,247,48,5,213,13,126,3, +40,253,91,2,167,0,36,249,193,248,183,253,195,3,197,5,250,254,60,252,221,3,51,4,180,252,215,252,206,253,209,251, +4,3,7,9,21,2,121,255,87,4,132,255,101,246,29,247,47,0,110,9,196,5,13,248,31,250,237,5,172,253,122,242, +4,254,206,7,193,0,99,253,188,255,171,254,110,255,65,0,110,254,143,255,158,254,69,252,100,3,26,6,176,248,98,244, +100,2,231,8,159,2,112,254,134,252,177,250,139,253,35,3,81,6,209,5,48,3,180,255,58,250,11,249,108,4,28,13, +8,2,141,246,154,255,119,12,218,7,246,247,226,241,69,255,147,13,145,8,113,253,88,253,35,0,82,0,128,0,5,253, +238,252,177,6,182,8,116,253,172,248,218,252,94,254,9,254,203,254,83,4,27,15,109,12,220,249,9,247,103,6,67,8, +91,255,254,1,83,7,175,4,225,3,35,3,43,248,19,238,224,245,152,6,36,10,72,1,140,252,84,249,140,239,74,240, +36,5,77,17,186,0,48,237,80,242,118,2,22,4,12,254,53,3,144,8,80,254,217,245,135,254,114,6,206,0,161,251, +155,1,45,10,79,7,34,248,41,237,51,241,88,251,8,2,6,5,153,5,26,4,145,252,189,239,176,238,219,253,22,7, +147,4,223,3,11,0,117,244,145,240,175,247,83,0,249,8,69,11,97,2,73,250,25,248,205,247,249,253,206,5,10,5, +88,4,216,4,115,250,100,243,177,254,74,7,235,1,17,1,116,8,77,10,25,2,196,247,253,250,2,11,112,13,163,0, +31,1,206,9,115,2,53,250,36,3,17,10,64,3,75,253,170,254,200,1,136,3,106,3,114,4,204,5,116,255,204,246, +160,250,171,5,128,10,202,10,189,6,247,251,168,247,24,255,14,2,243,254,214,1,0,4,228,255,187,0,111,3,112,254, +145,252,168,1,0,1,54,253,47,254,116,255,51,2,255,4,63,253,207,246,178,0,63,6,42,252,237,250,146,6,231,8, +65,0,235,249,154,251,237,2,114,5,122,1,92,1,194,254,18,244,197,246,75,8,178,11,134,2,110,0,162,253,1,247, +255,250,21,4,225,5,236,3,74,254,186,245,85,245,201,251,90,0,221,5,6,9,63,1,9,249,76,252,253,1,53,0, +171,250,220,248,247,253,78,4,137,3,149,254,88,252,136,250,159,248,147,253,133,6,178,6,189,254,46,252,141,0,185,0, +207,250,27,248,151,252,58,1,96,255,122,254,171,6,98,8,56,248,196,240,100,255,162,3,165,247,175,253,43,13,60,4, +177,245,20,253,4,5,62,253,192,249,39,3,209,9,175,5,218,254,135,253,213,254,150,253,37,253,143,255,6,1,237,1, +8,3,159,2,213,2,212,0,201,248,178,247,75,3,24,7,72,253,156,250,169,2,69,5,64,0,45,254,122,1,108,2, +40,255,100,0,230,3,69,255,222,252,153,5,192,6,35,253,183,252,233,255,252,251,59,255,54,6,75,255,132,246,132,246, +42,246,194,252,226,11,41,12,210,0,204,255,196,255,240,248,197,251,73,5,97,6,208,4,123,4,188,255,110,252,31,254, +134,254,187,255,174,3,45,4,65,3,112,3,7,254,136,248,19,254,142,3,234,254,78,254,128,5,220,4,52,254,81,253, +131,253,96,253,64,2,70,2,217,251,63,255,84,5,32,255,40,253,147,4,202,255,183,247,33,0,217,6,70,1,51,255, +23,252,198,242,196,246,207,6,242,12,244,7,36,255,255,247,29,252,107,3,65,2,46,5,205,10,215,255,176,243,137,250, +166,0,187,253,81,4,37,12,50,3,52,248,76,251,35,3,192,4,212,1,214,255,112,254,96,250,83,249,166,0,143,6, +99,4,208,1,250,0,25,254,17,253,198,255,131,1,16,2,218,3,132,5,40,4,183,254,165,249,203,250,199,255,31,3, +105,4,135,4,8,4,37,2,147,252,132,249,63,0,133,5,142,255,62,252,163,2,8,4,122,254,43,255,2,3,234,255, +123,253,242,2,139,4,127,252,244,249,112,2,164,6,232,1,152,254,69,255,211,2,226,7,204,4,46,252,17,254,90,3, +129,254,92,254,141,8,154,8,149,255,74,254,181,255,127,254,61,2,12,7,23,5,89,0,139,253,46,254,177,0,228,0, +69,2,18,4,238,250,55,242,114,254,43,11,161,1,113,249,62,1,227,2,162,251,244,251,101,254,126,252,170,255,213,3, +220,253,15,248,79,253,13,3,248,2,170,4,177,3,103,248,207,242,145,254,55,8,219,2,123,251,116,249,121,250,175,254, +211,255,93,253,55,3,63,9,167,253,131,240,236,248,242,9,31,11,189,250,161,238,243,249,45,10,38,3,241,247,29,1, +231,6,85,251,105,248,48,1,196,0,234,251,13,255,217,3,146,3,86,255,248,252,21,2,106,5,114,254,97,251,255,1, +43,1,208,249,251,251,55,0,29,253,249,255,108,8,197,3,254,249,228,254,17,5,0,254,190,252,172,6,3,3,80,244, +152,245,45,2,36,5,93,1,61,0,203,1,104,4,199,1,97,248,12,246,211,255,157,7,221,4,104,253,132,250,101,253, +65,252,135,247,251,252,74,6,124,3,204,253,152,252,164,246,111,245,3,1,187,3,132,251,158,254,74,3,33,250,127,247, +41,2,0,3,3,251,32,253,121,2,91,253,181,248,165,0,41,7,151,253,59,243,157,248,75,0,99,255,175,1,164,7, +242,4,186,252,201,246,102,245,138,254,92,11,72,9,68,255,154,0,151,3,64,250,155,244,22,0,192,11,128,8,111,0, +50,253,189,250,222,251,72,4,218,4,235,248,231,247,70,5,149,7,84,254,227,252,121,255,41,254,254,1,4,9,8,6, +229,253,36,253,224,255,14,254,70,253,72,3,68,6,53,255,167,250,199,255,154,1,53,252,154,251,158,255,222,254,85,252, +117,254,107,1,238,255,152,253,153,1,232,8,153,7,251,252,119,246,86,250,162,0,191,1,51,1,228,4,19,6,153,253, +61,247,28,252,5,2,192,5,30,11,162,8,156,254,233,251,216,252,150,251,193,2,33,11,214,6,67,3,134,4,19,253, +119,249,129,3,218,4,2,253,188,1,219,9,243,6,18,4,127,4,57,1,144,254,183,255,11,3,152,6,174,2,180,251, +222,0,114,8,71,3,20,255,24,2,213,254,255,251,139,2,172,3,227,255,208,4,97,3,220,243,11,245,123,12,126,20, +112,5,148,252,34,254,220,250,105,249,212,3,202,12,173,6,200,250,171,250,228,4,177,5,30,251,213,251,146,7,94,5, +231,250,71,255,132,7,213,3,36,1,162,4,170,2,77,253,38,253,26,2,40,8,64,7,216,255,22,0,60,5,226,255, +127,248,86,252,180,1,76,0,231,253,139,1,187,12,120,17,37,4,159,248,42,252,16,252,220,250,202,10,106,21,225,6, +169,250,66,254,25,253,213,246,35,252,63,10,77,17,141,9,154,253,4,252,237,253,205,249,255,249,199,0,44,3,31,3, +17,3,25,0,36,1,184,0,254,243,8,244,165,11,19,14,40,245,127,246,191,12,107,3,73,236,244,243,227,2,33,252, +158,250,15,11,7,14,13,253,79,245,221,252,62,1,162,0,87,4,124,6,123,253,36,243,9,248,30,4,37,1,35,246, +169,251,188,7,186,0,176,242,191,247,157,9,60,15,211,0,123,244,22,253,68,1,176,239,255,243,52,21,75,14,218,227, +149,231,157,8,206,0,47,242,135,10,225,23,28,255,154,242,208,2,249,9,48,253,76,247,43,5,121,17,101,10,99,0, +40,0,113,251,93,246,168,2,9,12,106,254,220,247,36,11,151,22,87,7,50,248,109,248,39,249,144,248,10,4,93,17, +124,10,201,247,193,241,234,249,204,1,153,2,111,255,194,254,146,1,1,3,169,1,213,252,117,245,177,246,186,0,240,0, +162,249,8,253,82,1,108,251,24,253,79,8,22,8,163,253,43,247,83,248,109,3,121,14,73,7,222,249,219,250,205,253, +1,250,207,255,234,8,231,0,159,248,38,2,22,3,192,241,125,245,246,14,125,10,58,240,176,249,64,20,167,8,64,243, +175,0,5,13,170,249,51,240,105,7,154,21,61,4,150,245,126,252,251,253,102,246,123,3,86,22,34,10,26,247,158,251, +153,254,163,248,177,0,219,7,89,255,136,253,152,0,223,247,141,244,59,253,200,0,133,3,214,7,187,255,78,246,25,250, +12,252,88,247,249,250,127,4,142,4,152,249,90,244,236,254,34,4,149,248,64,250,83,10,38,1,38,236,61,246,191,10, +104,8,138,255,92,252,106,246,34,245,127,255,87,10,242,10,216,0,92,246,131,244,225,246,205,252,57,7,189,6,122,249, +203,243,240,246,148,251,128,6,109,10,224,251,57,244,34,253,252,253,168,246,90,249,136,1,9,4,131,254,54,246,44,248, +131,0,38,254,32,249,170,253,87,0,252,254,210,0,46,253,99,246,47,251,80,1,105,251,53,247,194,254,243,4,148,253, +30,242,113,245,171,1,38,1,58,250,114,252,72,254,133,252,24,255,118,252,125,247,89,2,9,12,34,1,101,249,39,0, +179,0,181,251,123,255,135,5,248,2,92,250,221,248,140,3,134,6,197,249,237,247,101,5,113,7,214,255,159,255,173,0, +201,254,116,253,123,249,244,250,158,6,148,6,19,247,73,246,86,8,243,13,39,255,127,247,65,1,128,2,141,244,24,245, +191,3,128,1,90,247,49,254,87,8,25,8,3,4,115,252,128,249,3,2,169,2,108,251,11,3,48,11,173,1,47,251, +26,254,47,254,146,2,72,8,161,3,108,1,149,2,222,249,116,248,113,6,65,10,88,2,207,254,115,252,239,253,183,5, +255,3,16,253,97,0,87,3,62,2,16,7,95,7,127,255,130,253,80,253,231,252,36,7,180,12,19,1,37,252,75,3, +50,1,148,251,70,1,242,7,15,5,190,253,92,253,226,8,116,16,253,6,28,254,85,2,15,5,56,1,40,0,233,2, +157,8,194,13,114,8,121,254,121,254,167,2,170,1,100,3,223,9,34,10,120,5,223,6,222,9,172,3,76,253,92,3, +130,10,49,6,64,0,30,1,105,4,56,7,14,5,3,254,231,255,100,9,87,9,178,5,68,7,198,255,124,245,151,254, +206,9,75,2,119,253,216,4,210,1,23,246,255,248,177,7,255,12,128,5,20,1,117,4,157,0,197,248,183,2,141,15, +1,2,113,242,126,253,11,6,237,251,191,255,236,17,179,14,176,251,2,248,238,0,208,4,5,5,146,8,214,10,208,1, +233,242,92,244,103,6,1,12,31,1,19,255,86,4,215,254,13,249,165,254,108,2,25,0,106,1,160,3,130,0,7,251, +93,248,182,253,98,5,196,0,62,248,167,253,221,3,154,253,177,250,70,255,191,255,241,0,234,2,144,251,243,246,170,253, +185,254,18,251,59,1,195,4,38,253,217,251,177,2,225,2,140,253,239,250,226,252,217,0,146,254,227,247,118,251,80,4, +162,0,47,248,40,251,31,2,73,1,161,252,28,251,178,251,92,251,50,253,217,1,138,254,208,243,29,245,178,0,15,0, +29,248,63,251,121,0,125,252,198,248,12,251,73,255,30,2,242,255,43,253,21,0,225,255,139,251,236,1,49,10,246,1, +191,249,195,0,55,4,74,253,210,251,234,255,231,1,137,3,188,2,195,254,139,253,181,253,68,255,203,6,199,9,62,1, +213,252,208,255,142,253,165,253,77,7,162,9,188,1,212,255,89,1,236,253,221,254,97,6,205,7,233,1,184,254,1,0, +40,1,45,2,254,3,182,2,25,0,190,4,213,9,225,1,84,251,33,7,248,14,17,0,152,244,188,0,111,14,137,9, +68,255,165,1,226,7,126,0,59,247,160,255,187,8,7,1,40,254,154,8,141,7,130,253,243,0,135,5,7,252,31,249, +64,7,210,14,204,5,156,255,13,4,123,3,54,251,23,252,179,5,128,6,243,255,80,0,232,5,72,6,145,255,146,249, +175,252,180,2,115,0,201,253,42,3,80,5,39,0,139,253,122,253,145,252,45,253,32,255,144,3,235,6,98,255,156,247, +165,252,119,253,231,247,203,2,138,14,232,2,56,250,32,3,151,2,155,248,7,250,85,0,60,1,176,253,185,246,31,248, +127,4,21,5,117,248,108,248,127,4,198,5,62,250,129,246,102,4,69,12,223,251,13,242,223,2,115,9,218,249,23,249, +107,4,168,252,59,242,210,253,45,10,153,2,46,247,214,248,111,254,204,252,59,251,8,254,117,253,50,252,15,253,190,246, +212,241,252,250,189,0,139,253,128,3,195,6,163,249,179,243,117,249,76,247,229,244,164,250,8,254,29,255,214,251,126,242, +225,245,174,1,67,254,253,249,4,0,47,253,64,251,252,3,234,253,51,244,189,0,99,5,241,247,97,251,209,4,234,252, +178,250,196,1,79,253,14,247,117,249,220,253,222,1,255,252,38,244,109,253,208,6,87,247,109,237,140,250,194,2,80,1, +174,0,126,252,32,252,61,255,206,246,103,243,20,2,91,7,93,254,114,253,128,0,61,254,85,249,17,242,184,245,176,4, +245,255,171,240,94,253,214,14,102,2,19,244,167,248,82,251,71,247,58,248,166,255,211,8,211,6,237,246,229,240,71,252, +90,1,70,250,129,250,183,5,10,8,219,248,189,239,192,253,161,10,11,4,86,253,78,254,104,250,220,246,31,251,106,0, +219,4,251,4,94,252,225,247,179,253,246,2,231,7,178,10,42,255,54,243,185,251,192,9,153,9,43,0,184,248,8,251, +69,1,69,252,100,247,231,3,110,11,216,254,184,250,121,7,110,9,52,255,149,253,28,1,219,254,103,255,187,6,177,7, +82,2,64,5,233,9,172,1,76,251,9,3,110,4,230,249,115,251,188,10,247,16,59,7,230,249,30,247,24,254,224,255, +89,255,249,10,207,18,19,5,119,248,34,254,45,3,137,254,110,254,149,7,22,15,216,11,54,3,99,0,127,255,21,250, +202,250,42,5,229,10,240,7,8,4,87,3,192,6,179,5,20,249,226,242,29,0,155,10,208,4,1,3,38,13,201,13, +36,254,114,247,56,5,78,12,186,0,99,0,167,16,255,15,7,255,166,250,94,255,140,255,81,1,57,5,71,7,37,10, +85,8,97,0,247,253,165,255,212,253,178,255,116,7,0,12,237,9,125,2,96,252,253,253,69,254,33,251,61,2,25,11, +176,6,54,4,88,8,212,0,200,246,226,249,233,252,194,254,27,10,112,13,83,0,206,250,224,255,2,253,215,248,198,1, +38,14,231,15,161,8,112,0,44,250,66,246,140,250,150,7,73,14,218,6,217,254,232,254,237,255,100,255,247,0,159,2, +181,2,28,4,51,4,85,254,244,249,224,255,194,6,52,3,243,252,55,252,117,251,11,250,117,254,235,5,111,8,38,3, +39,250,27,247,211,251,70,255,52,0,155,1,72,254,128,249,198,253,211,4,40,3,237,250,204,244,41,250,53,6,200,3, +56,248,138,251,214,254,131,241,245,240,46,2,186,1,31,248,142,2,87,12,105,1,5,247,134,249,225,253,93,252,42,248, +34,253,183,7,111,1,72,243,143,248,217,0,74,250,63,253,71,9,4,2,126,246,7,252,98,254,15,250,56,2,111,8, +234,253,218,248,17,0,132,255,59,250,248,254,246,3,154,255,100,253,125,0,5,253,30,248,2,1,118,11,119,2,48,244, +129,248,108,4,233,3,45,254,254,255,100,2,172,250,55,240,143,243,120,1,117,4,209,251,249,252,174,7,63,8,162,0, +194,0,20,5,243,255,71,246,224,250,114,11,178,11,78,249,185,247,151,9,170,9,158,250,110,252,25,5,230,1,59,3, +204,10,137,4,18,251,125,0,95,6,208,1,9,255,154,1,215,1,206,0,185,3,121,7,92,4,92,252,148,249,87,252, +210,0,123,10,107,17,213,8,136,253,214,252,195,252,77,254,132,8,206,10,105,1,224,255,183,1,99,252,158,253,94,3, +84,254,147,251,121,5,105,10,93,3,218,251,231,251,8,3,5,5,113,253,40,254,238,6,8,3,175,250,47,253,205,254, +45,254,13,4,183,4,103,255,139,1,21,1,87,249,179,252,242,6,108,6,142,0,124,252,107,249,238,250,139,253,205,254, +49,5,13,8,85,255,150,251,233,0,199,255,13,251,9,252,39,255,125,2,68,2,192,252,198,253,217,1,166,250,84,247, +249,1,243,2,107,249,221,251,106,1,236,251,69,248,114,252,185,0,162,3,178,3,145,0,224,253,78,250,152,249,67,1, +57,5,217,254,12,252,128,254,109,253,108,253,67,254,60,250,113,252,238,7,181,8,232,251,198,246,110,255,253,5,244,255, +130,247,154,251,116,5,172,3,204,251,71,254,171,4,248,255,37,247,240,248,213,0,122,2,138,255,254,254,96,0,187,1, +48,0,49,250,245,249,199,3,99,8,57,5,87,6,120,4,192,251,152,253,10,4,124,254,21,255,245,11,25,9,62,252, +69,1,123,9,127,0,111,247,214,252,33,7,0,9,147,255,129,248,211,252,184,255,180,254,226,3,238,3,123,251,189,1, +232,13,218,1,151,241,15,253,108,13,231,5,42,247,125,248,87,3,215,5,90,0,222,3,186,15,5,11,171,244,197,239, +30,5,211,14,211,254,113,248,180,6,106,7,62,247,67,247,132,2,156,254,64,250,101,5,10,8,52,250,76,246,230,254, +138,254,31,248,0,252,101,4,70,4,116,0,151,0,172,255,50,252,8,253,232,255,210,255,103,1,51,2,91,251,254,248, +108,3,241,7,222,254,211,250,210,254,164,252,196,249,123,2,221,9,239,255,170,242,212,246,178,3,190,5,29,0,67,254, +201,254,87,255,29,1,203,0,231,254,215,255,84,0,168,254,50,255,28,254,42,249,134,252,131,7,85,4,95,244,194,245, +204,7,181,6,13,244,103,246,166,8,10,6,225,248,26,253,54,2,14,248,156,242,51,251,236,3,161,4,32,254,244,249, +95,255,92,255,254,244,124,248,34,8,179,6,43,251,67,254,88,4,183,250,100,239,157,247,207,9,89,9,113,249,149,249, +3,4,130,253,74,249,226,10,199,16,35,254,119,246,153,0,120,4,251,0,192,0,139,3,229,4,51,0,241,250,216,255, +149,6,114,3,234,254,210,255,87,0,149,253,134,249,234,250,69,4,6,6,189,250,209,245,171,249,200,249,62,254,88,7, +202,2,98,250,16,1,192,5,188,250,212,243,51,252,178,4,115,1,88,251,53,0,102,7,209,0,64,250,226,2,20,7, +45,253,176,250,124,2,65,4,237,1,184,2,46,4,183,4,153,0,21,249,97,251,127,4,242,3,145,0,239,4,236,3, +15,251,37,250,115,254,149,254,244,1,212,7,107,4,134,253,20,254,229,0,146,1,90,3,205,4,227,4,75,5,174,3, +6,2,186,3,126,0,187,248,251,252,188,7,128,4,249,253,243,4,2,9,212,255,97,251,107,0,145,2,13,2,3,4, +61,6,115,6,46,2,247,250,247,249,181,255,220,3,33,6,67,7,164,3,108,0,131,2,12,2,189,252,97,252,38,3, +31,9,13,9,77,4,21,1,105,2,139,1,219,250,246,248,176,2,131,10,35,4,69,252,177,0,80,4,194,251,29,247, +68,255,144,4,169,2,95,4,233,5,162,255,27,250,101,251,211,252,218,252,118,0,163,4,162,2,97,253,88,251,217,250, +83,250,126,254,14,5,29,6,177,3,181,1,71,254,198,253,86,3,123,5,130,1,139,255,14,255,91,253,107,254,194,0, +127,1,169,2,107,1,65,253,165,252,101,253,239,252,117,1,184,4,34,254,28,251,123,1,51,2,12,254,13,0,107,2, +19,2,168,4,163,4,238,255,59,0,139,3,73,2,115,0,48,255,179,250,193,248,196,253,104,2,182,1,121,255,237,254, +128,254,199,252,209,252,70,0,66,2,254,0,110,1,81,3,45,1,227,251,157,249,169,252,161,0,26,1,97,1,10,4, +147,1,92,248,50,245,62,252,162,1,70,0,40,255,231,0,155,0,240,252,49,251,181,253,3,0,134,0,64,2,92,3, +93,0,17,252,101,250,183,251,244,253,187,253,16,252,102,253,23,0,204,0,44,1,121,0,182,253,32,253,228,253,123,252, +43,253,241,255,178,254,140,253,251,255,203,253,114,247,140,247,241,253,115,2,182,0,153,251,14,253,7,5,56,4,229,250, +128,250,48,1,212,0,88,254,186,2,96,5,191,254,165,248,28,252,201,0,250,254,228,255,91,5,103,0,93,245,211,248, +131,3,154,1,235,250,148,253,34,3,91,2,158,253,220,251,215,253,32,253,187,252,112,5,118,11,236,1,34,249,51,253, +240,0,36,0,191,1,183,2,229,1,209,1,159,255,49,255,11,3,220,0,189,251,97,0,161,4,236,253,59,249,85,253, +75,2,131,4,100,2,229,253,233,253,189,254,244,251,75,253,165,1,107,1,26,2,34,4,175,255,200,251,131,253,237,251, +127,250,119,0,194,3,91,1,43,2,157,2,166,254,156,253,78,255,178,254,120,254,147,255,71,0,66,1,69,0,84,254, +62,1,195,3,244,254,112,252,162,2,146,6,98,3,47,2,42,5,203,3,90,252,4,249,14,0,204,8,210,7,86,255, +146,251,74,1,35,6,129,1,222,252,166,1,230,6,166,5,133,4,166,4,216,2,124,3,251,5,182,3,135,255,167,254, +178,255,255,1,118,4,83,5,105,6,233,3,24,251,5,250,235,4,189,6,211,252,196,253,186,7,178,5,132,252,251,253, +186,5,126,5,196,255,30,1,125,8,193,8,17,2,57,1,201,4,138,0,29,248,132,249,169,3,6,8,89,2,96,254, +65,2,66,4,132,255,251,252,155,255,83,0,10,255,177,1,105,6,237,5,9,1,216,255,165,1,138,254,130,251,185,0, +205,3,112,254,242,254,57,6,118,3,203,249,136,248,197,253,211,2,35,7,42,6,110,255,81,252,35,255,2,0,169,252, +115,252,32,3,155,7,120,3,95,0,60,2,73,254,244,247,217,252,186,5,138,6,150,4,156,3,205,1,249,2,186,3, +169,253,37,251,246,2,79,7,92,2,100,255,62,1,228,0,58,254,236,253,218,255,157,0,109,0,89,2,169,4,105,3, +242,0,239,0,220,1,188,2,76,4,38,4,113,0,186,252,223,253,66,3,106,6,52,3,142,253,42,252,122,0,40,4, +148,1,207,255,169,5,166,7,127,255,202,252,215,2,15,3,98,0,221,3,3,5,140,2,213,4,228,4,211,254,116,254, +81,3,139,3,114,1,238,0,254,1,139,5,63,5,6,254,218,251,22,2,170,4,200,0,44,254,255,0,45,6,207,4, +41,253,205,251,214,255,234,254,105,254,162,2,182,3,34,3,252,2,185,252,247,248,43,1,18,6,155,0,228,254,5,1, +246,253,253,250,143,253,1,2,112,3,123,255,105,252,190,255,169,1,209,0,79,4,12,4,104,252,17,252,68,0,210,252, +190,252,230,3,107,3,11,0,48,3,52,1,131,250,0,253,89,1,173,253,181,251,160,255,7,1,196,254,43,255,78,3, +93,3,144,251,43,247,213,252,169,1,21,1,95,1,108,1,186,0,25,2,49,255,61,249,30,253,18,5,190,3,61,1, +166,3,251,0,3,251,106,252,71,1,226,1,6,1,63,2,175,2,94,0,127,0,6,5,88,4,52,253,87,253,111,3, +75,1,243,252,136,1,48,5,80,1,224,254,176,254,110,251,27,250,91,255,198,4,116,3,169,254,138,254,216,1,185,0, +203,253,63,0,226,3,31,3,78,1,65,1,198,1,229,0,135,253,40,252,194,255,29,1,1,255,126,2,151,7,135,3, +67,253,114,254,207,0,150,255,26,0,40,3,241,3,158,1,255,254,131,254,213,0,95,3,41,2,128,254,195,254,251,2, +247,3,95,1,218,0,22,2,34,3,34,4,37,2,46,255,204,1,87,4,163,0,94,0,225,5,47,5,121,255,176,254, +213,0,192,1,27,2,240,1,155,3,189,5,197,1,24,253,5,0,228,2,16,1,207,0,246,255,27,253,191,255,182,3, +179,1,253,0,117,2,221,254,28,253,30,1,201,255,229,250,20,254,49,4,198,4,108,3,154,0,187,249,131,246,107,253, +99,5,163,3,98,253,76,253,5,0,117,253,242,250,7,255,177,2,137,0,214,254,242,0,143,1,188,254,155,253,42,0, +117,1,207,255,240,255,245,1,141,1,206,255,55,255,163,254,56,254,86,254,103,254,32,0,37,2,235,0,163,255,238,255, +75,254,250,254,223,3,195,2,26,253,226,254,207,2,8,0,134,253,65,255,92,1,51,3,169,1,229,252,120,253,250,0, +149,255,83,255,235,1,149,255,103,253,33,0,34,255,51,252,140,255,122,2,10,0,222,254,198,0,156,2,2,1,207,250, +116,250,92,4,126,6,8,252,3,250,5,3,254,4,190,255,126,254,17,1,23,3,213,2,240,255,214,253,50,255,231,0, +93,255,6,253,129,255,78,3,155,255,196,251,30,2,169,4,241,250,41,249,52,3,188,3,98,252,6,254,165,3,180,2, +213,253,43,250,116,251,224,255,152,0,192,0,232,3,188,0,175,248,199,249,123,0,24,1,73,254,159,253,53,0,42,4, +54,2,61,253,92,0,172,2,24,250,170,247,168,1,153,3,161,252,215,253,230,2,4,1,31,254,253,254,80,255,5,254, +88,254,186,1,245,3,25,0,75,251,187,252,27,0,154,0,246,0,89,1,118,0,88,0,51,0,81,255,1,0,72,255, +229,251,19,254,244,4,85,4,252,253,90,253,19,0,86,255,9,255,145,1,196,1,191,255,39,1,205,4,27,4,109,255, +91,254,23,2,237,1,173,251,139,250,196,2,165,7,86,2,165,252,213,251,253,250,12,252,152,2,79,6,236,1,110,254, +188,0,144,1,247,253,138,252,255,255,36,2,43,0,213,0,118,5,239,3,251,251,178,250,34,0,172,0,181,254,100,2, +50,5,70,0,175,251,226,254,244,3,60,3,180,255,216,255,97,1,192,255,13,255,36,2,170,2,166,254,47,253,244,255, +97,0,82,252,222,250,191,0,112,5,228,0,230,252,13,2,211,4,68,255,218,253,238,1,253,255,234,251,133,255,100,4, +188,2,81,255,119,254,2,254,99,253,5,255,191,2,46,4,6,1,155,253,30,253,211,252,70,253,112,2,129,7,71,4, +33,253,7,252,160,255,99,0,61,254,20,254,98,1,42,5,249,3,232,252,4,249,110,253,190,0,177,254,228,0,127,6, +241,3,191,253,39,255,25,2,8,255,159,253,251,2,252,6,65,3,49,253,8,253,121,0,211,255,115,254,236,2,70,6, +132,2,168,255,66,1,54,1,224,255,176,0,57,1,114,0,162,255,81,254,190,254,81,2,181,3,210,0,48,255,245,0, +177,2,131,2,81,1,231,0,51,2,96,3,213,1,94,254,115,253,197,0,100,2,26,255,138,254,16,3,230,2,71,254, +194,255,79,3,117,255,100,252,66,2,122,6,57,1,255,251,50,254,181,1,88,1,253,0,124,2,236,1,100,0,222,1, +128,2,121,255,23,255,188,2,178,3,35,1,146,254,61,253,76,255,216,2,101,1,117,254,191,1,6,5,144,0,212,251, +104,255,102,6,7,6,214,252,16,247,119,252,109,2,96,1,15,2,201,5,131,2,123,250,28,248,152,252,246,2,158,4, +143,255,210,253,217,2,206,1,190,250,43,252,151,2,111,2,149,0,236,0,212,254,69,254,236,1,194,1,38,254,136,254, +161,0,31,1,2,2,204,1,232,255,71,255,150,254,44,254,207,1,41,4,169,255,67,252,11,255,10,1,219,255,250,255, +202,1,209,2,91,1,244,253,89,253,6,1,45,3,131,1,172,255,71,255,107,0,243,1,94,0,17,254,35,1,9,5, +176,1,221,251,5,252,28,0,111,2,68,2,15,1,142,255,162,254,251,254,172,255,179,255,116,0,39,2,159,1,101,255, +208,255,101,1,172,0,137,0,159,1,112,255,184,252,112,255,111,3,236,2,100,1,216,1,187,0,158,253,130,253,206,0, +231,1,187,255,223,254,11,255,147,252,111,250,198,252,113,0,243,1,133,1,193,254,172,251,82,252,162,254,115,255,133,1, +26,4,45,1,139,250,131,248,123,252,140,0,48,1,11,1,100,2,45,1,162,251,173,249,1,255,234,2,204,0,181,254, +16,255,144,254,207,253,32,255,221,0,200,0,184,255,200,255,161,0,127,255,67,253,182,254,106,2,46,1,138,252,125,253, +216,2,236,2,27,254,238,252,117,255,63,0,99,0,235,1,89,1,74,254,95,253,140,254,86,254,56,254,39,1,42,4, +125,2,2,254,146,252,7,254,72,254,66,255,47,3,113,3,151,253,196,251,89,1,216,3,13,0,145,254,239,0,90,0, +63,253,216,254,250,4,186,6,228,0,206,251,183,253,174,1,36,2,68,1,196,1,216,1,66,0,250,254,134,255,18,1, +217,2,158,4,84,4,61,1,247,255,213,2,255,3,213,0,164,255,83,2,16,3,131,1,139,2,131,4,186,2,156,255, +201,255,44,1,16,0,213,254,121,0,174,1,167,255,78,254,248,255,127,0,151,254,181,254,128,1,190,2,114,1,197,255, +105,254,23,254,5,0,104,2,141,2,62,1,44,0,16,255,244,253,186,253,175,254,6,1,89,3,21,2,163,253,222,251, +220,254,199,1,100,1,87,0,66,1,11,2,251,255,165,253,145,254,217,255,26,254,8,253,99,255,3,1,232,255,151,255, +201,0,146,0,2,255,30,255,25,1,87,1,3,255,136,254,243,0,88,1,11,255,95,254,59,255,47,255,32,255,85,255, +52,255,118,0,136,2,19,2,212,255,209,254,4,255,158,255,148,0,86,1,209,1,240,1,37,1,141,0,36,1,111,1, +238,0,241,0,157,1,164,2,47,3,81,1,116,254,91,254,166,255,250,254,154,254,24,1,2,3,16,1,51,254,200,254, +147,1,209,1,154,255,195,255,81,2,23,2,216,254,37,254,105,1,127,3,119,1,18,255,142,255,144,0,118,0,68,1, +30,2,130,0,30,255,127,0,9,1,239,254,51,254,45,0,105,1,168,0,64,0,5,1,154,0,23,254,210,252,185,254, +84,0,123,255,23,255,103,0,167,0,235,254,143,253,71,254,37,0,254,0,150,0,159,0,194,0,68,255,172,253,146,254, +185,0,121,1,187,0,232,255,215,255,21,0,88,255,12,254,141,254,183,0,9,1,186,254,225,253,99,0,16,2,232,255, +114,253,41,254,21,0,231,0,66,1,166,0,237,253,206,251,73,253,218,255,28,0,182,255,123,0,243,255,110,253,7,253, +226,255,135,1,0,0,101,254,143,254,67,255,187,255,250,255,213,255,192,255,26,0,233,255,205,254,106,254,99,255,240,255, +177,255,148,0,186,1,41,0,166,253,39,254,123,255,25,254,133,253,176,0,55,2,172,254,4,252,95,254,242,0,23,0, +56,255,121,0,122,0,190,253,248,251,127,253,34,0,166,1,253,1,86,1,244,255,209,254,144,254,125,255,149,1,249,2, +91,1,7,254,138,252,99,253,94,254,247,254,250,255,138,0,149,255,109,254,226,254,91,0,222,0,184,255,84,254,182,254, +174,0,168,1,170,0,232,255,139,0,184,0,195,255,184,255,222,0,168,0,182,254,3,254,168,255,13,1,138,0,170,255, +197,255,8,0,181,255,109,255,190,255,65,0,120,0,128,0,168,0,188,0,87,0,189,255,123,255,131,255,168,255,59,0, +24,1,76,1,141,0,148,255,175,254,243,253,119,254,157,0,234,1,91,0,95,254,18,255,170,0,194,255,172,253,30,254, +184,0,237,1,215,0,209,255,30,0,102,0,176,255,41,255,212,255,105,0,140,255,195,254,34,0,16,2,103,1,13,255, +113,254,127,255,157,255,82,255,169,0,3,2,216,0,17,255,144,255,135,0,59,255,192,253,54,255,185,1,157,1,157,255, +222,254,117,255,100,255,216,254,106,255,179,0,7,1,114,0,4,0,158,255,33,255,191,255,72,1,47,1,30,255,69,254, +107,255,121,255,63,254,58,255,197,1,85,1,120,254,239,253,121,255,124,255,20,255,123,0,158,0,172,253,106,252,248,254, +82,0,229,254,85,255,117,1,103,0,31,254,23,0,31,3,65,1,250,253,215,254,124,0,5,255,76,254,112,0,193,0, +108,254,153,254,16,1,143,0,11,254,79,254,240,255,68,255,98,254,176,255,98,0,36,255,35,255,166,0,67,0,152,254, +16,255,134,0,10,0,81,255,124,0,219,0,164,254,140,253,249,255,63,2,73,1,154,255,7,0,23,1,216,0,109,0, +23,1,137,1,171,0,234,255,95,0,161,0,181,255,68,255,91,0,40,1,109,0,136,255,67,255,228,254,94,255,12,2, +95,4,243,2,206,255,251,254,176,255,100,255,125,255,102,1,108,2,0,1,237,255,107,0,13,0,186,254,33,255,208,0, +26,1,105,0,94,0,1,0,209,254,208,254,40,0,171,0,198,0,67,2,35,3,245,0,100,254,161,254,199,255,181,255, +43,0,81,1,6,0,71,253,61,254,86,2,8,3,68,255,47,253,23,255,167,0,20,0,145,0,135,2,34,2,3,255, +153,253,135,255,91,1,17,1,185,0,137,1,192,1,158,0,200,255,217,255,177,255,80,255,211,255,211,0,248,0,77,0, +154,255,241,254,152,254,62,255,65,0,50,0,122,255,189,255,196,0,206,0,156,255,178,254,3,255,248,255,148,0,137,0, +45,0,148,255,154,254,52,254,175,255,170,1,36,1,202,254,145,254,183,0,69,1,142,255,26,255,111,0,150,0,170,255, +56,0,69,1,19,0,210,253,123,253,223,254,63,0,30,1,254,0,152,255,175,254,134,255,45,0,88,255,57,255,218,0, +160,1,58,0,215,254,209,254,71,255,239,255,223,0,226,0,143,255,150,254,227,254,176,255,167,0,147,1,36,1,67,255, +33,254,185,254,172,255,74,0,204,0,113,0,70,255,43,255,26,0,223,255,26,255,76,0,222,1,147,0,87,254,180,254, +214,255,232,254,70,254,47,0,155,1,87,0,76,255,89,0,17,1,32,0,93,255,166,255,36,0,197,0,122,1,77,1, +141,0,190,0,160,1,171,1,199,0,206,255,56,255,220,255,223,1,229,2,31,1,205,254,170,254,161,255,233,255,86,0, +94,1,120,1,146,0,88,0,138,0,187,255,228,254,159,255,183,0,127,0,3,0,158,0,37,1,247,255,217,253,255,252, +66,254,28,0,137,0,185,255,94,255,108,255,151,254,215,253,22,255,213,0,80,0,178,254,206,254,208,255,178,255,150,255, +155,0,201,0,80,255,203,254,39,0,0,1,170,0,205,0,225,0,63,255,186,253,42,255,247,1,124,2,188,0,101,255, +66,255,28,255,102,254,230,253,111,254,167,255,26,0,77,255,235,254,221,255,21,0,90,254,155,253,28,0,112,2,195,0, +205,253,64,254,136,0,27,0,248,253,70,254,46,0,231,255,96,254,239,254,6,0,106,254,178,252,17,255,204,2,120,2, +55,255,185,253,19,254,13,254,166,254,196,0,173,1,32,0,9,255,167,255,120,255,39,254,119,254,78,0,186,0,168,255, +132,255,74,0,47,0,91,255,39,255,144,255,229,255,11,0,42,0,135,0,74,1,196,1,57,1,71,0,174,255,30,255, +232,254,13,0,107,1,203,0,66,255,159,255,249,0,101,0,155,254,89,254,109,255,34,0,151,0,4,1,125,0,100,255, +21,255,0,255,56,254,56,254,241,255,31,1,7,0,100,254,8,254,135,254,37,255,106,255,134,254,32,253,114,253,85,255, +4,0,3,255,151,254,32,255,23,255,250,254,43,0,97,1,135,0,147,254,24,254,148,255,28,1,226,0,113,255,28,255, +75,0,91,0,138,254,63,254,213,0,39,2,204,255,158,253,162,254,38,0,225,255,193,255,199,0,240,0,206,255,4,255, +147,254,217,253,43,254,38,0,137,1,216,0,115,255,166,254,106,254,239,254,22,0,157,0,33,0,161,255,60,255,159,254, +219,254,55,0,139,0,44,255,145,254,127,255,167,255,194,254,8,255,27,0,246,255,201,255,87,1,52,2,34,0,49,254, +106,255,57,1,165,0,171,255,156,0,153,1,152,0,15,255,189,254,28,255,161,255,186,0,189,1,60,1,173,255,233,254, +51,255,87,255,55,255,178,255,103,0,50,0,163,255,45,0,46,1,209,0,146,255,130,255,100,0,76,0,151,255,56,0, +161,1,119,1,221,255,47,255,12,0,218,0,164,0,5,0,211,255,39,0,84,0,179,255,241,254,105,255,159,0,175,0, +158,255,93,255,16,0,228,255,226,254,21,255,140,0,28,1,60,0,164,255,237,255,231,255,90,255,130,255,121,0,215,0, +66,0,10,0,189,0,83,1,46,1,194,0,33,0,51,255,18,255,103,0,102,1,132,0,144,255,97,0,15,1,175,255, +139,254,243,255,175,1,38,1,232,255,9,0,118,0,34,0,29,0,140,0,44,0,144,255,57,0,47,1,166,0,114,255, +64,255,174,255,242,255,106,0,232,0,109,0,70,255,191,254,22,255,195,255,135,0,237,0,128,0,217,255,153,255,75,255, +2,255,174,255,159,0,14,0,220,254,95,255,165,0,248,255,58,254,99,254,251,255,80,0,121,255,102,255,244,255,180,255, +225,254,183,254,81,255,211,255,176,255,78,255,149,255,134,0,204,0,204,255,233,254,58,255,190,255,113,255,2,255,25,255, +68,255,80,255,151,255,229,255,225,255,217,255,218,255,125,255,61,255,213,255,101,0,174,255,133,254,109,254,21,255,126,255, +218,255,109,0,146,0,19,0,148,255,89,255,79,255,176,255,42,0,216,255,6,255,252,254,153,255,157,255,42,255,70,255, +138,255,0,255,98,254,247,254,48,0,127,0,192,255,32,255,69,255,136,255,34,255,141,254,2,255,75,0,156,0,116,255, +179,254,124,255,114,0,89,0,231,255,206,255,147,255,69,255,175,255,129,0,168,0,41,0,172,255,51,255,243,254,174,255, +218,0,190,0,122,255,29,255,251,255,34,0,46,255,10,255,48,0,167,0,182,255,31,255,190,255,25,0,109,255,30,255, +243,255,126,0,177,255,178,254,206,254,126,255,181,255,163,255,229,255,59,0,19,0,139,255,79,255,172,255,43,0,32,0, +182,255,212,255,153,0,211,0,223,255,216,254,241,254,200,255,89,0,112,0,75,0,11,0,246,255,40,0,42,0,215,255, +229,255,124,0,160,0,5,0,219,255,162,0,24,1,113,0,182,255,244,255,163,0,204,0,126,0,101,0,164,0,196,0, +122,0,42,0,78,0,159,0,129,0,27,0,47,0,189,0,239,0,98,0,174,255,158,255,90,0,61,1,97,1,173,0, +9,0,8,0,18,0,177,255,133,255,15,0,155,0,113,0,251,255,235,255,49,0,91,0,58,0,229,255,161,255,187,255, +29,0,91,0,51,0,202,255,116,255,147,255,38,0,122,0,8,0,109,255,133,255,230,255,183,255,82,255,138,255,9,0, +5,0,188,255,226,255,66,0,45,0,161,255,49,255,73,255,201,255,30,0,229,255,139,255,191,255,61,0,48,0,174,255, +157,255,36,0,123,0,75,0,22,0,40,0,34,0,184,255,93,255,201,255,220,0,126,1,243,0,236,255,142,255,209,255, +240,255,234,255,89,0,14,1,28,1,72,0,100,255,61,255,198,255,85,0,94,0,242,255,152,255,156,255,202,255,233,255, +244,255,223,255,170,255,173,255,29,0,122,0,62,0,208,255,229,255,78,0,68,0,188,255,123,255,225,255,104,0,108,0, +249,255,149,255,138,255,178,255,229,255,43,0,116,0,126,0,55,0,242,255,249,255,44,0,60,0,30,0,253,255,241,255, +232,255,201,255,169,255,187,255,6,0,51,0,234,255,92,255,38,255,153,255,81,0,165,0,81,0,166,255,52,255,72,255, +185,255,29,0,59,0,33,0,225,255,126,255,61,255,137,255,75,0,197,0,122,0,229,255,186,255,227,255,232,255,225,255, +53,0,175,0,175,0,48,0,221,255,9,0,59,0,2,0,171,255,216,255,125,0,206,0,71,0,127,255,105,255,15,0, +154,0,143,0,85,0,85,0,94,0,39,0,223,255,220,255,21,0,62,0,63,0,69,0,110,0,141,0,91,0,225,255, +141,255,186,255,72,0,183,0,171,0,57,0,197,255,169,255,228,255,30,0,11,0,194,255,154,255,178,255,220,255,244,255, +21,0,77,0,106,0,60,0,233,255,185,255,177,255,147,255,72,255,255,254,237,254,20,255,86,255,140,255,153,255,134,255, +136,255,200,255,24,0,32,0,206,255,125,255,138,255,213,255,233,255,158,255,99,255,167,255,45,0,86,0,241,255,106,255, +40,255,32,255,37,255,67,255,152,255,255,255,33,0,213,255,92,255,38,255,109,255,246,255,71,0,35,0,191,255,130,255, +144,255,172,255,148,255,105,255,138,255,252,255,67,0,252,255,119,255,99,255,232,255,114,0,109,0,244,255,162,255,205,255, +54,0,99,0,43,0,213,255,189,255,239,255,29,0,7,0,215,255,235,255,71,0,106,0,254,255,100,255,82,255,214,255, +58,0,255,255,151,255,178,255,57,0,102,0,242,255,118,255,143,255,6,0,53,0,247,255,174,255,157,255,159,255,157,255, +195,255,26,0,81,0,48,0,239,255,221,255,231,255,211,255,190,255,243,255,87,0,110,0,16,0,168,255,143,255,156,255, +150,255,184,255,63,0,188,0,119,0,136,255,238,254,70,255,250,255,33,0,184,255,125,255,187,255,234,255,160,255,59,255, +74,255,185,255,1,0,245,255,231,255,12,0,49,0,25,0,212,255,155,255,149,255,213,255,92,0,227,0,232,0,61,0, +111,255,58,255,174,255,46,0,67,0,38,0,66,0,130,0,118,0,14,0,196,255,253,255,125,0,169,0,72,0,192,255, +159,255,248,255,87,0,80,0,255,255,223,255,41,0,142,0,166,0,120,0,89,0,94,0,68,0,249,255,218,255,48,0, +172,0,192,0,98,0,13,0,2,0,9,0,255,255,55,0,224,0,121,1,81,1,138,0,19,0,115,0,38,1,91,1, +244,0,112,0,24,0,204,255,144,255,177,255,57,0,166,0,130,0,0,0,179,255,203,255,245,255,236,255,205,255,202,255, +225,255,254,255,35,0,77,0,81,0,30,0,236,255,4,0,80,0,117,0,69,0,241,255,191,255,201,255,251,255,55,0, +86,0,63,0,24,0,38,0,105,0,131,0,53,0,190,255,144,255,188,255,234,255,236,255,238,255,12,0,21,0,231,255, +201,255,3,0,85,0,65,0,218,255,193,255,55,0,160,0,79,0,126,255,7,255,75,255,205,255,249,255,212,255,180,255, +176,255,158,255,134,255,154,255,217,255,241,255,181,255,95,255,86,255,174,255,26,0,65,0,16,0,197,255,180,255,247,255, +84,0,112,0,48,0,219,255,195,255,234,255,10,0,252,255,231,255,243,255,14,0,16,0,6,0,28,0,61,0,29,0, +184,255,122,255,187,255,56,0,97,0,24,0,211,255,241,255,63,0,77,0,9,0,199,255,200,255,240,255,8,0,3,0, +252,255,251,255,232,255,190,255,164,255,190,255,241,255,11,0,22,0,74,0,144,0,114,0,205,255,68,255,135,255,77,0, +153,0,33,0,169,255,203,255,7,0,175,255,44,255,132,255,167,0,70,1,143,0,91,255,9,255,186,255,104,0,109,0, +54,0,71,0,90,0,248,255,107,255,108,255,255,255,88,0,6,0,144,255,149,255,224,255,229,255,196,255,7,0,144,0, +155,0,254,255,140,255,215,255,72,0,13,0,102,255,61,255,205,255,106,0,144,0,105,0,54,0,238,255,159,255,156,255, +248,255,72,0,63,0,22,0,20,0,14,0,203,255,152,255,231,255,140,0,215,0,131,0,9,0,231,255,0,0,252,255, +240,255,37,0,114,0,77,0,169,255,63,255,151,255,57,0,67,0,175,255,80,255,147,255,246,255,254,255,252,255,90,0, +174,0,75,0,113,255,23,255,146,255,46,0,73,0,21,0,253,255,239,255,182,255,137,255,182,255,11,0,34,0,14,0, +52,0,133,0,123,0,245,255,134,255,181,255,61,0,113,0,33,0,194,255,181,255,212,255,204,255,162,255,159,255,221,255, +39,0,74,0,65,0,19,0,204,255,164,255,212,255,53,0,74,0,242,255,170,255,210,255,18,0,227,255,125,255,145,255, +33,0,96,0,231,255,97,255,149,255,63,0,113,0,245,255,141,255,209,255,81,0,62,0,140,255,7,255,57,255,196,255, +247,255,200,255,190,255,8,0,55,0,251,255,170,255,189,255,13,0,33,0,242,255,228,255,12,0,14,0,196,255,133,255, +155,255,219,255,0,0,20,0,45,0,25,0,180,255,78,255,103,255,0,0,128,0,102,0,222,255,139,255,187,255,19,0, +17,0,195,255,180,255,22,0,111,0,69,0,217,255,190,255,1,0,48,0,26,0,5,0,14,0,245,255,172,255,147,255, +235,255,97,0,130,0,67,0,223,255,135,255,106,255,182,255,65,0,128,0,51,0,204,255,209,255,26,0,36,0,229,255, +200,255,244,255,20,0,242,255,203,255,226,255,15,0,3,0,200,255,174,255,224,255,42,0,58,0,0,0,193,255,194,255, +248,255,29,0,19,0,255,255,17,0,69,0,114,0,109,0,28,0,154,255,77,255,139,255,25,0,85,0,13,0,197,255, +241,255,66,0,49,0,224,255,226,255,62,0,96,0,17,0,204,255,241,255,48,0,33,0,243,255,6,0,64,0,66,0, +26,0,37,0,93,0,88,0,5,0,226,255,51,0,143,0,118,0,17,0,228,255,12,0,55,0,55,0,48,0,51,0, +22,0,215,255,190,255,246,255,61,0,61,0,5,0,232,255,1,0,27,0,16,0,5,0,40,0,93,0,91,0,23,0, +218,255,223,255,255,255,233,255,164,255,141,255,208,255,33,0,44,0,1,0,229,255,240,255,11,0,44,0,69,0,43,0, +219,255,175,255,232,255,52,0,28,0,209,255,230,255,82,0,107,0,247,255,139,255,168,255,8,0,52,0,60,0,85,0, +75,0,230,255,125,255,147,255,19,0,120,0,129,0,76,0,243,255,130,255,66,255,131,255,16,0,92,0,51,0,232,255, +204,255,212,255,214,255,211,255,231,255,18,0,55,0,53,0,17,0,252,255,19,0,33,0,228,255,151,255,190,255,81,0, +153,0,56,0,190,255,204,255,32,0,30,0,217,255,223,255,55,0,87,0,23,0,228,255,243,255,252,255,221,255,227,255, +53,0,122,0,97,0,26,0,1,0,29,0,58,0,66,0,69,0,77,0,81,0,69,0,39,0,23,0,53,0,101,0, +86,0,251,255,199,255,17,0,126,0,120,0,20,0,239,255,57,0,122,0,89,0,28,0,30,0,67,0,60,0,9,0, +239,255,12,0,62,0,85,0,69,0,42,0,41,0,61,0,68,0,54,0,52,0,78,0,89,0,57,0,14,0,254,255, +246,255,228,255,234,255,13,0,14,0,212,255,187,255,14,0,113,0,95,0,246,255,196,255,235,255,9,0,244,255,237,255, +11,0,9,0,201,255,147,255,168,255,235,255,31,0,48,0,33,0,248,255,192,255,153,255,158,255,216,255,51,0,102,0, +51,0,201,255,163,255,215,255,241,255,187,255,166,255,249,255,58,0,246,255,160,255,210,255,63,0,47,0,197,255,191,255, +38,0,70,0,244,255,208,255,25,0,69,0,0,0,189,255,223,255,24,0,11,0,225,255,227,255,249,255,244,255,230,255, +232,255,231,255,224,255,239,255,3,0,237,255,192,255,188,255,217,255,220,255,217,255,11,0,65,0,25,0,203,255,225,255, +68,0,80,0,250,255,229,255,54,0,79,0,253,255,225,255,71,0,138,0,54,0,220,255,16,0,107,0,83,0,12,0, +31,0,86,0,45,0,203,255,194,255,15,0,50,0,5,0,220,255,219,255,220,255,205,255,200,255,210,255,229,255,8,0, +29,0,233,255,143,255,144,255,5,0,94,0,56,0,240,255,244,255,4,0,205,255,166,255,247,255,102,0,92,0,7,0, +3,0,66,0,53,0,213,255,176,255,239,255,27,0,248,255,220,255,252,255,24,0,252,255,218,255,230,255,253,255,253,255, +252,255,13,0,19,0,255,255,226,255,203,255,189,255,203,255,4,0,57,0,41,0,224,255,171,255,164,255,178,255,205,255, +11,0,75,0,72,0,4,0,202,255,195,255,210,255,230,255,25,0,93,0,108,0,42,0,219,255,202,255,241,255,32,0, +61,0,69,0,50,0,5,0,229,255,241,255,26,0,47,0,24,0,236,255,210,255,219,255,239,255,232,255,191,255,150,255, +149,255,194,255,4,0,52,0,50,0,255,255,193,255,171,255,204,255,9,0,66,0,101,0,95,0,43,0,236,255,212,255, +238,255,23,0,60,0,93,0,100,0,46,0,211,255,169,255,212,255,26,0,57,0,49,0,31,0,3,0,227,255,226,255, +11,0,46,0,31,0,249,255,238,255,254,255,9,0,5,0,251,255,239,255,236,255,255,255,35,0,49,0,30,0,5,0, +249,255,234,255,217,255,228,255,13,0,30,0,5,0,240,255,252,255,8,0,247,255,242,255,24,0,53,0,23,0,233,255, +241,255,30,0,52,0,46,0,53,0,64,0,38,0,246,255,238,255,18,0,44,0,36,0,29,0,42,0,39,0,3,0, +226,255,232,255,7,0,32,0,43,0,42,0,21,0,241,255,222,255,245,255,35,0,66,0,61,0,29,0,251,255,239,255, +255,255,29,0,48,0,45,0,32,0,24,0,22,0,18,0,12,0,8,0,14,0,30,0,51,0,63,0,52,0,18,0, +238,255,229,255,251,255,26,0,43,0,41,0,25,0,248,255,210,255,199,255,230,255,18,0,37,0,36,0,37,0,23,0, +234,255,194,255,215,255,22,0,52,0,36,0,27,0,33,0,2,0,195,255,182,255,245,255,43,0,29,0,8,0,33,0, +45,0,247,255,195,255,228,255,47,0,66,0,42,0,44,0,59,0,20,0,207,255,194,255,245,255,33,0,43,0,50,0, +56,0,33,0,254,255,253,255,23,0,41,0,51,0,62,0,42,0,237,255,203,255,241,255,27,0,7,0,240,255,29,0, +73,0,27,0,215,255,241,255,52,0,31,0,217,255,241,255,77,0,74,0,226,255,186,255,3,0,44,0,246,255,220,255, +28,0,63,0,248,255,179,255,216,255,26,0,23,0,249,255,11,0,40,0,21,0,243,255,243,255,251,255,237,255,234,255, +2,0,17,0,12,0,31,0,58,0,30,0,224,255,236,255,67,0,101,0,42,0,5,0,40,0,45,0,231,255,209,255, +35,0,83,0,254,255,162,255,204,255,40,0,33,0,224,255,226,255,16,0,255,255,205,255,231,255,53,0,64,0,255,255, +215,255,235,255,255,255,254,255,14,0,43,0,45,0,21,0,3,0,243,255,217,255,218,255,7,0,36,0,3,0,218,255, +229,255,253,255,236,255,219,255,253,255,28,0,243,255,192,255,224,255,44,0,53,0,250,255,220,255,239,255,245,255,226,255, +232,255,6,0,4,0,220,255,203,255,228,255,255,255,7,0,9,0,5,0,241,255,224,255,230,255,240,255,236,255,239,255, +9,0,14,0,229,255,193,255,217,255,11,0,24,0,14,0,24,0,37,0,14,0,238,255,247,255,19,0,12,0,236,255, +232,255,0,0,12,0,4,0,248,255,236,255,225,255,237,255,13,0,16,0,239,255,229,255,12,0,47,0,40,0,37,0, +63,0,62,0,13,0,252,255,54,0,90,0,23,0,191,255,200,255,15,0,38,0,19,0,33,0,65,0,39,0,238,255, +236,255,27,0,36,0,1,0,248,255,28,0,50,0,36,0,18,0,2,0,237,255,236,255,16,0,41,0,20,0,255,255, +22,0,34,0,245,255,208,255,245,255,33,0,4,0,223,255,15,0,80,0,43,0,216,255,230,255,59,0,64,0,238,255, +215,255,20,0,35,0,222,255,188,255,248,255,41,0,15,0,247,255,25,0,41,0,235,255,172,255,194,255,6,0,42,0, +38,0,20,0,240,255,201,255,205,255,254,255,33,0,29,0,19,0,12,0,231,255,187,255,203,255,12,0,30,0,244,255, +231,255,15,0,20,0,218,255,200,255,12,0,64,0,15,0,208,255,228,255,25,0,16,0,234,255,247,255,20,0,246,255, +201,255,240,255,77,0,97,0,12,0,176,255,150,255,171,255,209,255,11,0,65,0,56,0,236,255,171,255,176,255,228,255, +15,0,27,0,10,0,231,255,204,255,215,255,3,0,42,0,53,0,43,0,21,0,246,255,226,255,244,255,29,0,49,0, +32,0,11,0,5,0,2,0,251,255,4,0,31,0,37,0,2,0,224,255,236,255,17,0,31,0,23,0,23,0,27,0, +8,0,236,255,246,255,36,0,56,0,26,0,253,255,5,0,17,0,3,0,254,255,34,0,64,0,32,0,230,255,221,255, +2,0,25,0,24,0,35,0,50,0,19,0,208,255,186,255,232,255,26,0,29,0,11,0,6,0,3,0,247,255,253,255, +33,0,59,0,43,0,5,0,237,255,231,255,241,255,15,0,45,0,42,0,11,0,246,255,247,255,243,255,239,255,11,0, +51,0,43,0,248,255,230,255,6,0,23,0,250,255,236,255,15,0,38,0,9,0,246,255,30,0,68,0,33,0,224,255, +213,255,240,255,245,255,237,255,8,0,47,0,34,0,233,255,206,255,233,255,13,0,26,0,25,0,12,0,236,255,207,255, +216,255,253,255,25,0,30,0,22,0,1,0,232,255,230,255,1,0,14,0,242,255,212,255,224,255,2,0,12,0,0,0, +255,255,3,0,244,255,230,255,249,255,21,0,15,0,235,255,219,255,238,255,4,0,10,0,7,0,0,0,244,255,242,255, +4,0,27,0,37,0,37,0,33,0,18,0,248,255,234,255,242,255,245,255,230,255,217,255,226,255,236,255,233,255,234,255, +253,255,9,0,246,255,221,255,220,255,241,255,8,0,27,0,31,0,9,0,233,255,227,255,245,255,255,255,251,255,0,0, +7,0,241,255,210,255,221,255,5,0,7,0,224,255,221,255,14,0,37,0,1,0,235,255,16,0,43,0,9,0,227,255, +248,255,21,0,0,0,227,255,248,255,26,0,5,0,216,255,215,255,253,255,19,0,14,0,9,0,2,0,243,255,244,255, +14,0,27,0,7,0,254,255,19,0,25,0,255,255,252,255,31,0,31,0,231,255,213,255,20,0,64,0,9,0,204,255, +242,255,53,0,33,0,229,255,239,255,30,0,7,0,204,255,225,255,48,0,52,0,225,255,182,255,222,255,254,255,234,255, +224,255,1,0,24,0,6,0,250,255,13,0,25,0,15,0,14,0,21,0,9,0,247,255,2,0,19,0,3,0,238,255, +10,0,46,0,22,0,233,255,0,0,61,0,52,0,243,255,237,255,44,0,62,0,8,0,243,255,35,0,55,0,4,0, +230,255,22,0,58,0,9,0,205,255,226,255,27,0,37,0,13,0,13,0,29,0,18,0,0,0,10,0,29,0,20,0, +251,255,246,255,255,255,6,0,14,0,25,0,14,0,244,255,245,255,21,0,30,0,253,255,232,255,253,255,16,0,254,255, +241,255,9,0,29,0,5,0,233,255,248,255,16,0,253,255,216,255,219,255,251,255,0,0,231,255,219,255,231,255,239,255, +236,255,243,255,1,0,254,255,235,255,226,255,236,255,251,255,4,0,7,0,3,0,249,255,245,255,254,255,4,0,253,255, +247,255,255,255,8,0,4,0,250,255,248,255,250,255,249,255,253,255,12,0,24,0,16,0,251,255,236,255,232,255,238,255, +249,255,5,0,4,0,249,255,241,255,241,255,242,255,245,255,0,0,14,0,12,0,253,255,249,255,4,0,8,0,252,255, +243,255,246,255,245,255,235,255,230,255,241,255,251,255,247,255,243,255,252,255,10,0,17,0,16,0,13,0,3,0,245,255, +239,255,245,255,251,255,0,0,10,0,19,0,14,0,5,0,10,0,24,0,22,0,5,0,0,0,12,0,19,0,14,0, +19,0,41,0,47,0,24,0,2,0,7,0,17,0,8,0,249,255,255,255,12,0,10,0,255,255,4,0,19,0,19,0, +8,0,6,0,15,0,18,0,11,0,8,0,13,0,16,0,11,0,5,0,0,0,252,255,0,0,11,0,19,0,11,0, +253,255,248,255,252,255,2,0,9,0,14,0,6,0,238,255,221,255,236,255,13,0,31,0,26,0,13,0,4,0,252,255, +248,255,4,0,23,0,26,0,6,0,243,255,244,255,255,255,5,0,10,0,20,0,24,0,11,0,247,255,238,255,244,255, +252,255,1,0,5,0,4,0,250,255,237,255,236,255,252,255,11,0,7,0,247,255,237,255,242,255,1,0,19,0,30,0, +22,0,255,255,234,255,236,255,4,0,28,0,35,0,22,0,0,0,237,255,232,255,244,255,7,0,19,0,19,0,12,0, +2,0,248,255,245,255,254,255,10,0,15,0,15,0,13,0,8,0,252,255,245,255,254,255,15,0,19,0,9,0,0,0, +0,0,254,255,248,255,250,255,6,0,7,0,249,255,238,255,243,255,251,255,245,255,236,255,236,255,239,255,234,255,229,255, +239,255,0,0,9,0,5,0,0,0,252,255,245,255,238,255,238,255,245,255,247,255,243,255,240,255,239,255,240,255,245,255, +249,255,246,255,234,255,224,255,226,255,235,255,239,255,241,255,246,255,247,255,241,255,238,255,248,255,3,0,254,255,239,255, +232,255,238,255,245,255,248,255,0,0,11,0,11,0,1,0,251,255,1,0,7,0,4,0,254,255,252,255,253,255,251,255, +250,255,255,255,4,0,4,0,3,0,4,0,3,0,255,255,251,255,246,255,242,255,242,255,252,255,11,0,22,0,23,0, +17,0,7,0,250,255,243,255,252,255,16,0,29,0,24,0,7,0,246,255,236,255,238,255,252,255,14,0,21,0,10,0, +248,255,236,255,237,255,244,255,251,255,254,255,251,255,248,255,248,255,253,255,3,0,1,0,249,255,239,255,232,255,230,255, +233,255,236,255,236,255,232,255,232,255,235,255,239,255,240,255,239,255,240,255,244,255,249,255,254,255,1,0,252,255,244,255, +238,255,243,255,255,255,11,0,17,0,14,0,5,0,253,255,252,255,3,0,10,0,13,0,10,0,5,0,1,0,2,0, +7,0,11,0,9,0,3,0,254,255,255,255,4,0,10,0,13,0,12,0,8,0,3,0,4,0,9,0,12,0,10,0, +4,0,255,255,255,255,5,0,14,0,21,0,21,0,10,0,252,255,240,255,238,255,246,255,4,0,15,0,18,0,10,0, +255,255,246,255,245,255,252,255,5,0,10,0,7,0,253,255,245,255,243,255,248,255,255,255,6,0,11,0,13,0,12,0, +8,0,1,0,247,255,239,255,237,255,247,255,6,0,18,0,19,0,11,0,2,0,254,255,4,0,15,0,22,0,18,0, +8,0,254,255,254,255,6,0,16,0,19,0,13,0,3,0,251,255,252,255,4,0,12,0,15,0,12,0,6,0,3,0, +5,0,12,0,19,0,21,0,17,0,9,0,1,0,253,255,254,255,1,0,5,0,5,0,1,0,254,255,252,255,254,255, +1,0,3,0,3,0,3,0,4,0,5,0,4,0,1,0,253,255,252,255,255,255,6,0,11,0,11,0,4,0,251,255, +246,255,248,255,255,255,2,0,0,0,250,255,246,255,249,255,255,255,3,0,0,0,249,255,245,255,250,255,5,0,13,0, +13,0,3,0,248,255,246,255,0,0,14,0,24,0,22,0,12,0,1,0,253,255,2,0,10,0,16,0,15,0,10,0, +4,0,255,255,255,255,2,0,8,0,14,0,16,0,11,0,0,0,245,255,240,255,246,255,0,0,7,0,5,0,253,255, +246,255,249,255,3,0,13,0,14,0,7,0,254,255,250,255,254,255,4,0,4,0,253,255,244,255,242,255,250,255,6,0, +13,0,9,0,253,255,243,255,241,255,246,255,252,255,254,255,252,255,252,255,1,0,8,0,11,0,7,0,253,255,245,255, +246,255,0,0,12,0,19,0,17,0,10,0,4,0,2,0,2,0,3,0,0,0,253,255,249,255,247,255,247,255,247,255, +247,255,248,255,250,255,251,255,251,255,250,255,249,255,249,255,251,255,253,255,252,255,250,255,249,255,252,255,0,0,3,0, +0,0,248,255,239,255,233,255,234,255,238,255,244,255,248,255,253,255,2,0,7,0,7,0,0,0,247,255,239,255,239,255, +244,255,251,255,252,255,248,255,243,255,242,255,247,255,254,255,254,255,248,255,240,255,238,255,244,255,255,255,5,0,3,0, +251,255,244,255,244,255,251,255,3,0,6,0,4,0,255,255,252,255,252,255,253,255,253,255,253,255,254,255,1,0,5,0, +6,0,5,0,4,0,6,0,9,0,12,0,11,0,8,0,6,0,10,0,17,0,21,0,16,0,3,0,247,255,245,255, +255,255,15,0,23,0,19,0,4,0,248,255,246,255,0,0,12,0,19,0,16,0,8,0,3,0,3,0,8,0,10,0, +8,0,3,0,255,255,255,255,2,0,4,0,5,0,5,0,6,0,8,0,10,0,9,0,7,0,6,0,9,0,16,0, +22,0,21,0,14,0,3,0,251,255,251,255,0,0,6,0,10,0,10,0,7,0,4,0,1,0,0,0,0,0,1,0, +4,0,7,0,7,0,4,0,253,255,247,255,244,255,246,255,252,255,1,0,3,0,1,0,253,255,248,255,247,255,250,255, +0,0,8,0,13,0,13,0,8,0,2,0,253,255,251,255,252,255,255,255,255,255,254,255,252,255,252,255,255,255,3,0, +6,0,5,0,2,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,3,0,4,0,3,0,1,0,255,255,254,255, +255,255,0,0,255,255,251,255,248,255,247,255,249,255,253,255,1,0,5,0,8,0,7,0,4,0,0,0,253,255,251,255, +252,255,0,0,6,0,9,0,7,0,1,0,254,255,0,0,6,0,11,0,11,0,6,0,251,255,242,255,242,255,251,255, +6,0,13,0,10,0,3,0,252,255,250,255,255,255,6,0,11,0,8,0,254,255,243,255,238,255,242,255,253,255,8,0, +16,0,17,0,11,0,1,0,249,255,245,255,247,255,252,255,2,0,8,0,9,0,5,0,253,255,246,255,243,255,247,255, +254,255,6,0,10,0,10,0,6,0,255,255,249,255,246,255,247,255,251,255,1,0,7,0,9,0,5,0,253,255,247,255, +247,255,253,255,8,0,15,0,15,0,8,0,1,0,255,255,3,0,10,0,12,0,6,0,255,255,252,255,254,255,3,0, +3,0,253,255,245,255,240,255,244,255,255,255,10,0,13,0,9,0,4,0,0,0,254,255,252,255,248,255,244,255,245,255, +249,255,255,255,2,0,0,0,250,255,244,255,243,255,247,255,252,255,254,255,251,255,250,255,252,255,0,0,4,0,5,0, +3,0,255,255,251,255,249,255,252,255,0,0,1,0,0,0,0,0,3,0,6,0,4,0,0,0,252,255,253,255,1,0, +6,0,9,0,7,0,255,255,246,255,243,255,249,255,2,0,7,0,7,0,5,0,1,0,252,255,245,255,242,255,248,255, +3,0,10,0,9,0,3,0,252,255,248,255,250,255,2,0,10,0,12,0,6,0,0,0,1,0,6,0,7,0,1,0, +250,255,249,255,252,255,0,0,3,0,7,0,7,0,4,0,0,0,0,0,3,0,4,0,0,0,254,255,255,255,1,0, +254,255,251,255,252,255,1,0,2,0,255,255,251,255,249,255,246,255,245,255,247,255,254,255,2,0,254,255,245,255,242,255, +249,255,1,0,4,0,0,0,252,255,248,255,249,255,254,255,5,0,5,0,253,255,243,255,244,255,0,0,10,0,9,0, +0,0,248,255,245,255,247,255,252,255,2,0,2,0,251,255,243,255,242,255,246,255,249,255,247,255,246,255,250,255,1,0, +5,0,3,0,0,0,252,255,247,255,244,255,249,255,0,0,3,0,253,255,246,255,246,255,251,255,254,255,254,255,0,0, +3,0,4,0,3,0,2,0,1,0,252,255,245,255,244,255,251,255,4,0,5,0,0,0,252,255,253,255,253,255,251,255, +250,255,0,0,6,0,7,0,3,0,254,255,251,255,247,255,246,255,252,255,6,0,9,0,2,0,250,255,247,255,249,255, +249,255,248,255,252,255,6,0,13,0,12,0,6,0,1,0,253,255,249,255,249,255,0,0,11,0,15,0,9,0,1,0, +250,255,246,255,244,255,248,255,2,0,10,0,9,0,0,0,250,255,251,255,254,255,255,255,0,0,3,0,7,0,6,0, +2,0,0,0,2,0,5,0,7,0,8,0,10,0,9,0,6,0,3,0,2,0,1,0,254,255,253,255,1,0,10,0, +16,0,13,0,4,0,253,255,253,255,1,0,4,0,4,0,1,0,253,255,252,255,255,255,4,0,7,0,4,0,255,255, +252,255,254,255,3,0,7,0,8,0,8,0,4,0,255,255,251,255,251,255,255,255,4,0,5,0,2,0,254,255,252,255, +251,255,254,255,1,0,4,0,4,0,3,0,1,0,0,0,254,255,251,255,250,255,252,255,254,255,255,255,254,255,253,255, +253,255,251,255,250,255,249,255,250,255,251,255,251,255,252,255,252,255,251,255,250,255,249,255,251,255,255,255,0,0,254,255, +252,255,252,255,251,255,248,255,247,255,249,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,2,0,5,0, +3,0,254,255,251,255,251,255,252,255,252,255,253,255,1,0,2,0,255,255,251,255,252,255,255,255,1,0,255,255,253,255, +253,255,254,255,254,255,255,255,3,0,7,0,5,0,255,255,253,255,1,0,6,0,6,0,3,0,0,0,255,255,254,255, +255,255,3,0,7,0,6,0,1,0,0,0,5,0,9,0,6,0,255,255,251,255,253,255,2,0,5,0,7,0,8,0, +6,0,1,0,254,255,255,255,3,0,3,0,1,0,1,0,3,0,4,0,3,0,0,0,255,255,255,255,0,0,1,0, +4,0,8,0,8,0,4,0,254,255,251,255,252,255,254,255,255,255,1,0,2,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,254,255,0,0,3,0,5,0,5,0,4,0,4,0,6,0,9,0,8,0, +5,0,2,0,1,0,2,0,5,0,7,0,7,0,2,0,252,255,249,255,251,255,0,0,4,0,6,0,5,0,3,0, +255,255,252,255,252,255,254,255,1,0,1,0,0,0,255,255,254,255,253,255,252,255,251,255,251,255,252,255,254,255,1,0, +4,0,5,0,2,0,254,255,252,255,252,255,253,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,255,255,253,255, +254,255,1,0,3,0,3,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,255,255,254,255,255,255,3,0,4,0, +1,0,254,255,253,255,253,255,253,255,253,255,0,0,2,0,0,0,249,255,246,255,251,255,2,0,5,0,2,0,254,255, +251,255,250,255,251,255,255,255,3,0,1,0,249,255,246,255,252,255,3,0,4,0,0,0,254,255,0,0,1,0,254,255, +251,255,252,255,254,255,253,255,252,255,254,255,1,0,0,0,253,255,253,255,0,0,1,0,255,255,255,255,2,0,4,0, +1,0,251,255,251,255,254,255,0,0,253,255,252,255,255,255,4,0,5,0,2,0,255,255,255,255,254,255,255,255,2,0, +5,0,4,0,0,0,0,0,4,0,6,0,1,0,250,255,248,255,252,255,2,0,5,0,5,0,3,0,0,0,252,255, +251,255,252,255,255,255,255,255,255,255,1,0,2,0,0,0,253,255,252,255,253,255,254,255,254,255,255,255,1,0,1,0, +255,255,252,255,251,255,252,255,253,255,254,255,254,255,254,255,253,255,253,255,255,255,2,0,3,0,0,0,255,255,0,0, +2,0,0,0,254,255,255,255,2,0,3,0,2,0,0,0,0,0,1,0,1,0,3,0,6,0,7,0,4,0,1,0, +0,0,1,0,1,0,255,255,255,255,1,0,2,0,0,0,255,255,2,0,6,0,7,0,5,0,3,0,2,0,2,0, +2,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,3,0,2,0,1,0,0,0,254,255,251,255,251,255,255,255, +3,0,4,0,1,0,253,255,253,255,0,0,4,0,5,0,3,0,0,0,254,255,255,255,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,254,255,252,255,252,255,254,255,255,255,252,255,249,255, +251,255,0,0,2,0,0,0,253,255,254,255,0,0,1,0,0,0,0,0,2,0,3,0,1,0,255,255,255,255,0,0, +1,0,3,0,6,0,6,0,255,255,249,255,250,255,1,0,7,0,4,0,255,255,253,255,255,255,255,255,254,255,0,0, +4,0,7,0,6,0,2,0,0,0,254,255,254,255,0,0,6,0,9,0,7,0,2,0,2,0,6,0,9,0,6,0, +0,0,254,255,0,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,4,0,4,0,2,0,255,255,254,255,0,0, +2,0,2,0,3,0,3,0,1,0,252,255,250,255,253,255,2,0,5,0,4,0,3,0,2,0,2,0,1,0,255,255, +252,255,252,255,254,255,2,0,6,0,5,0,0,0,252,255,251,255,255,255,2,0,3,0,1,0,0,0,0,0,1,0, +2,0,1,0,255,255,252,255,250,255,253,255,1,0,3,0,3,0,0,0,254,255,253,255,254,255,255,255,0,0,1,0, +0,0,255,255,1,0,5,0,6,0,3,0,255,255,254,255,255,255,1,0,2,0,2,0,2,0,1,0,0,0,0,0, +1,0,2,0,0,0,255,255,0,0,2,0,2,0,255,255,252,255,252,255,253,255,254,255,254,255,1,0,4,0,3,0, +253,255,250,255,251,255,254,255,255,255,255,255,0,0,2,0,1,0,253,255,251,255,253,255,0,0,1,0,1,0,2,0, +2,0,254,255,249,255,250,255,1,0,6,0,4,0,255,255,254,255,0,0,0,0,255,255,0,0,3,0,2,0,253,255, +250,255,251,255,253,255,252,255,250,255,253,255,1,0,1,0,253,255,252,255,255,255,255,255,251,255,248,255,252,255,3,0, +4,0,255,255,250,255,249,255,250,255,251,255,254,255,4,0,6,0,2,0,253,255,254,255,2,0,2,0,254,255,252,255, +255,255,1,0,0,0,0,0,3,0,6,0,5,0,2,0,1,0,3,0,2,0,254,255,253,255,254,255,0,0,255,255, +254,255,253,255,253,255,250,255,248,255,251,255,2,0,2,0,253,255,249,255,249,255,253,255,255,255,0,0,1,0,0,0, +251,255,250,255,255,255,6,0,6,0,1,0,253,255,255,255,3,0,3,0,1,0,1,0,1,0,253,255,251,255,255,255, +5,0,5,0,0,0,253,255,255,255,0,0,254,255,253,255,1,0,5,0,5,0,0,0,252,255,253,255,254,255,253,255, +253,255,2,0,7,0,5,0,1,0,1,0,3,0,1,0,253,255,253,255,2,0,7,0,6,0,2,0,2,0,5,0, +3,0,255,255,255,255,4,0,7,0,4,0,255,255,255,255,1,0,1,0,0,0,3,0,4,0,1,0,252,255,253,255, +1,0,5,0,3,0,254,255,254,255,3,0,5,0,0,0,253,255,254,255,0,0,1,0,3,0,5,0,2,0,252,255, +251,255,255,255,3,0,4,0,3,0,1,0,255,255,254,255,252,255,252,255,0,0,3,0,2,0,1,0,1,0,255,255, +255,255,1,0,3,0,3,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,253,255, +254,255,2,0,2,0,255,255,254,255,255,255,254,255,254,255,1,0,3,0,0,0,255,255,1,0,1,0,254,255,252,255, +251,255,252,255,255,255,1,0,3,0,3,0,0,0,253,255,254,255,254,255,253,255,252,255,253,255,0,0,2,0,2,0, +1,0,255,255,253,255,251,255,251,255,254,255,1,0,3,0,4,0,3,0,255,255,253,255,0,0,3,0,1,0,255,255, +255,255,0,0,0,0,1,0,1,0,255,255,254,255,254,255,253,255,254,255,3,0,4,0,1,0,255,255,0,0,0,0, +0,0,2,0,1,0,1,0,0,0,253,255,252,255,0,0,5,0,4,0,255,255,251,255,252,255,255,255,0,0,1,0, +3,0,4,0,1,0,254,255,254,255,0,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,255,255,254,255,252,255,255,255,4,0,5,0,2,0,254,255,253,255,255,255,1,0,3,0, +2,0,254,255,251,255,254,255,3,0,3,0,1,0,255,255,254,255,1,0,2,0,255,255,255,255,4,0,1,0,253,255, +0,0,1,0,254,255,254,255,0,0,0,0,255,255,0,0,0,0,2,0,1,0,0,0,0,0,255,255,253,255,0,0, +4,0,254,255,251,255,0,0,2,0,255,255,255,255,0,0,255,255,2,0,4,0,1,0,253,255,253,255,255,255,2,0, +4,0,2,0,254,255,254,255,255,255,1,0,3,0,5,0,4,0,255,255,252,255,0,0,5,0,2,0,254,255,255,255, +1,0,2,0,2,0,0,0,0,0,1,0,255,255,254,255,255,255,1,0,0,0,255,255,0,0,255,255,255,255,3,0, +5,0,3,0,1,0,254,255,254,255,0,0,2,0,2,0,2,0,0,0,253,255,0,0,4,0,4,0,0,0,255,255, +255,255,0,0,4,0,6,0,3,0,2,0,3,0,255,255,252,255,255,255,1,0,1,0,3,0,2,0,254,255,254,255, +1,0,0,0,254,255,255,255,255,255,253,255,254,255,3,0,5,0,1,0,254,255,255,255,0,0,254,255,0,0,3,0, +3,0,0,0,254,255,0,0,3,0,2,0,254,255,253,255,0,0,1,0,255,255,1,0,3,0,3,0,255,255,251,255, +252,255,0,0,2,0,0,0,0,0,255,255,253,255,1,0,4,0,254,255,252,255,3,0,5,0,255,255,255,255,4,0, +1,0,250,255,253,255,1,0,254,255,252,255,0,0,1,0,254,255,254,255,254,255,255,255,1,0,2,0,2,0,2,0, +255,255,252,255,0,0,2,0,255,255,0,0,2,0,0,0,254,255,255,255,254,255,255,255,3,0,1,0,255,255,2,0, +3,0,253,255,253,255,2,0,2,0,255,255,0,0,2,0,0,0,252,255,254,255,3,0,1,0,255,255,3,0,6,0, +3,0,1,0,2,0,1,0,4,0,5,0,1,0,254,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,252,255, +253,255,2,0,1,0,253,255,0,0,4,0,1,0,255,255,0,0,255,255,255,255,1,0,254,255,254,255,4,0,3,0, +254,255,255,255,1,0,253,255,252,255,2,0,5,0,1,0,254,255,255,255,0,0,255,255,254,255,0,0,1,0,0,0, +1,0,1,0,254,255,255,255,2,0,2,0,254,255,254,255,1,0,0,0,254,255,0,0,2,0,2,0,1,0,0,0, +255,255,255,255,254,255,254,255,0,0,0,0,1,0,1,0,255,255,255,255,3,0,1,0,253,255,255,255,2,0,254,255, +253,255,2,0,1,0,255,255,0,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255, +0,0,2,0,0,0,254,255,254,255,254,255,255,255,1,0,0,0,0,0,255,255,253,255,253,255,255,255,0,0,0,0, +0,0,0,0,255,255,1,0,1,0,0,0,0,0,255,255,253,255,254,255,0,0,0,0,255,255,255,255,0,0,3,0, +4,0,0,0,255,255,1,0,2,0,255,255,253,255,254,255,1,0,0,0,0,0,2,0,2,0,255,255,253,255,254,255, +254,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,254,255,254,255,0,0,1,0, +255,255,255,255,0,0,1,0,254,255,253,255,255,255,2,0,1,0,1,0,2,0,1,0,255,255,0,0,1,0,0,0, +1,0,2,0,2,0,0,0,254,255,255,255,2,0,1,0,255,255,1,0,1,0,253,255,254,255,4,0,4,0,255,255, +255,255,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,1,0,2,0,0,0,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,1,0,1,0,255,255,255,255,2,0,1,0,254,255,254,255,0,0,0,0,254,255,255,255, +1,0,1,0,0,0,1,0,1,0,0,0,255,255,1,0,2,0,0,0,254,255,0,0,2,0,255,255,254,255,1,0, +2,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,1,0,2,0,1,0,255,255,0,0,1,0,255,255,255,255, +2,0,1,0,0,0,0,0,1,0,2,0,3,0,1,0,0,0,3,0,2,0,255,255,255,255,255,255,255,255,1,0, +0,0,253,255,253,255,255,255,0,0,255,255,255,255,1,0,1,0,254,255,255,255,3,0,3,0,0,0,0,0,1,0, +2,0,2,0,0,0,254,255,1,0,3,0,254,255,253,255,3,0,3,0,254,255,255,255,3,0,2,0,0,0,255,255, +2,0,4,0,1,0,254,255,0,0,1,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,2,0,0,0,254,255,0,0,2,0,0,0,0,0,2,0,1,0,0,0,1,0,1,0,255,255,255,255, +2,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,254,255,254,255,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,1,0,254,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,2,0,1,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255, +1,0,0,0,254,255,0,0,2,0,0,0,253,255,0,0,2,0,0,0,255,255,1,0,1,0,1,0,1,0,0,0, +255,255,1,0,1,0,0,0,1,0,1,0,255,255,1,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,2,0,1,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,254,255, +255,255,1,0,1,0,255,255,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/spider4.pcm b/src/client/sound/data/spider4.pcm new file mode 100755 index 0000000..fd23be1 --- /dev/null +++ b/src/client/sound/data/spider4.pcm @@ -0,0 +1,973 @@ +unsigned char PCM_spider4[31050] = { +1,0,0,0,2,0,0,0,68,172,0,0,157,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0, +0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,2,0,3,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,4,0,2,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,253,255,253,255,1,0,3,0,3,0,3,0,4,0, +4,0,2,0,3,0,4,0,3,0,255,255,253,255,253,255,251,255,249,255,250,255,252,255,253,255,253,255,0,0,4,0, +5,0,1,0,255,255,0,0,4,0,6,0,5,0,2,0,254,255,249,255,248,255,250,255,0,0,2,0,255,255,251,255, +252,255,1,0,4,0,4,0,4,0,7,0,9,0,8,0,6,0,6,0,3,0,252,255,248,255,251,255,252,255,247,255, +247,255,252,255,252,255,247,255,249,255,4,0,9,0,3,0,253,255,254,255,2,0,1,0,254,255,253,255,254,255,0,0, +255,255,249,255,243,255,241,255,246,255,0,0,11,0,13,0,4,0,247,255,240,255,236,255,236,255,242,255,253,255,6,0, +8,0,2,0,253,255,0,0,7,0,3,0,251,255,1,0,11,0,4,0,252,255,0,0,2,0,253,255,255,255,6,0, +3,0,0,0,11,0,18,0,6,0,247,255,244,255,236,255,222,255,229,255,6,0,32,0,21,0,248,255,254,255,37,0, +41,0,0,0,225,255,215,255,226,255,23,0,64,0,23,0,238,255,10,0,13,0,229,255,249,255,30,0,236,255,204,255, +28,0,89,0,35,0,215,255,204,255,240,255,253,255,207,255,189,255,14,0,70,0,16,0,232,255,15,0,45,0,79,0, +148,0,139,0,9,0,165,255,159,255,175,255,201,255,23,0,104,0,94,0,39,0,87,0,217,0,227,0,103,0,40,0, +41,0,234,255,166,255,152,255,138,255,238,255,0,1,106,1,100,0,129,255,3,0,225,0,216,0,48,0,198,255,219,255, +250,255,207,255,168,255,218,255,91,0,250,0,45,1,114,0,140,255,154,255,49,0,151,0,47,1,191,1,58,1,8,0, +94,255,55,255,86,255,255,255,143,0,71,0,238,255,38,0,72,0,86,0,7,1,157,1,248,0,24,0,74,0,141,0, +220,255,165,255,210,0,119,1,101,0,111,255,167,255,126,255,121,254,187,254,42,1,174,3,190,3,139,1,7,0,160,0, +18,1,66,0,70,0,232,0,161,255,124,253,29,253,12,254,124,255,129,1,189,2,228,2,45,3,28,2,58,255,219,254, +204,1,209,2,230,0,121,255,87,254,196,252,85,253,12,0,240,1,131,2,27,2,42,0,195,254,66,0,87,2,31,2, +199,0,237,255,217,254,72,253,203,252,85,254,110,0,34,1,228,0,242,0,135,0,145,255,89,0,89,2,229,1,120,255, +153,254,188,254,143,254,70,0,200,2,38,1,112,253,33,254,29,1,5,0,242,252,180,253,246,0,236,1,182,0,229,0, +16,3,223,3,139,1,234,254,170,254,105,255,250,254,157,253,216,252,215,253,53,0,81,2,219,3,250,4,203,3,252,255, +137,253,148,254,226,255,206,254,76,253,242,253,142,255,128,255,100,255,178,2,77,6,7,4,34,254,3,252,68,254,37,0, +245,255,119,255,200,255,124,255,109,253,181,252,233,255,210,2,214,1,205,0,90,2,13,3,167,0,253,252,217,251,21,0, +251,4,75,2,169,251,129,251,148,255,73,255,108,253,135,0,102,5,251,5,184,2,86,255,115,253,42,253,139,254,9,0, +60,255,99,253,168,253,128,254,48,253,226,252,3,1,203,5,151,5,43,1,54,254,211,254,226,254,49,253,172,254,102,2, +84,1,200,252,168,250,192,249,133,250,96,1,215,7,181,4,166,254,31,255,197,2,236,4,156,5,81,3,19,255,28,253, +146,252,227,251,194,253,163,0,232,255,8,254,77,255,144,1,234,1,74,1,16,1,30,1,171,0,23,0,128,0,247,255, +136,252,144,250,198,253,76,1,60,0,182,252,162,250,194,252,12,3,81,7,143,4,108,255,81,254,126,0,23,2,49,1, +186,254,139,253,231,253,67,253,125,252,70,254,197,0,115,1,199,2,251,6,21,10,250,6,200,255,54,251,225,250,218,251, +84,253,192,253,110,250,200,247,97,251,195,0,151,3,191,6,99,8,209,4,153,1,200,1,163,0,241,255,103,2,83,1, +116,252,203,251,4,253,29,252,77,255,26,5,225,3,27,255,151,254,115,255,255,0,70,6,211,8,144,3,215,253,93,252, +205,250,241,247,251,247,12,253,132,3,153,4,163,255,89,252,196,254,212,2,75,5,106,5,158,2,197,255,200,255,174,255, +244,252,245,250,143,252,76,255,71,255,46,254,8,2,11,8,159,5,217,253,140,253,18,1,166,254,129,253,162,2,42,3, +60,253,74,250,96,250,12,252,39,2,59,5,10,0,226,253,86,1,116,255,208,252,99,3,244,8,218,3,233,252,235,251, +68,255,249,2,208,0,194,249,255,249,96,3,84,8,140,3,22,254,5,0,149,6,195,6,67,254,167,250,59,0,114,1, +144,252,29,253,74,0,114,253,178,249,12,251,177,0,91,9,109,13,67,5,87,250,44,249,7,254,19,1,23,1,29,255, +193,254,220,1,231,2,95,255,151,252,28,254,101,3,234,7,143,4,90,252,198,249,94,252,72,255,230,3,122,5,221,254, +180,249,53,251,255,251,126,254,213,5,11,6,235,254,90,255,255,3,114,1,112,253,121,252,71,250,240,250,129,0,41,2, +76,254,144,250,60,250,58,3,120,18,178,20,28,6,193,250,97,251,63,255,89,0,196,252,135,248,125,253,185,6,103,5, +95,254,170,254,11,2,184,2,150,4,26,5,180,255,226,250,194,251,172,255,100,5,21,9,213,3,109,250,120,249,65,0, +64,3,225,255,232,252,216,252,42,253,235,253,66,0,21,2,165,1,194,0,251,0,206,0,109,254,204,251,64,253,235,1, +38,3,74,255,73,252,137,253,228,0,64,3,111,2,33,0,129,0,175,1,176,255,35,254,153,255,133,255,27,254,108,255, +141,0,129,255,80,0,120,1,21,255,102,253,77,255,180,0,231,0,163,1,184,0,46,254,229,253,72,0,133,2,32,2, +121,254,165,251,6,254,24,2,3,2,120,255,159,255,141,2,220,3,164,1,185,255,222,0,48,1,242,253,129,251,92,253, +171,0,62,1,187,254,148,253,73,1,96,5,72,4,0,1,138,255,137,254,124,254,136,0,25,0,18,252,30,252,133,2, +93,6,46,2,162,252,191,253,220,2,44,4,70,1,100,254,48,252,251,251,106,0,212,4,82,3,186,255,220,254,245,254, +171,255,176,1,225,0,182,252,113,252,27,2,189,5,143,2,192,254,173,0,184,3,118,1,32,254,137,254,127,254,42,253, +161,255,20,3,22,2,65,0,102,0,46,0,75,1,238,3,91,2,231,253,65,253,194,254,95,255,204,0,177,1,42,1, +78,2,169,2,136,255,68,255,196,2,105,2,71,0,106,1,53,0,64,252,79,253,196,0,61,1,214,1,7,1,219,252, +72,254,71,5,32,5,70,255,200,253,233,254,221,255,66,1,6,255,15,252,155,255,135,2,119,255,196,255,195,2,7,0, +183,254,149,3,33,4,162,255,147,254,45,255,239,254,153,255,0,254,198,251,188,255,89,4,16,2,35,255,126,0,171,2, +193,4,9,5,216,255,191,249,51,249,180,252,247,0,246,2,186,255,179,252,87,1,186,7,67,6,154,0,58,255,121,1, +249,1,61,255,41,251,4,249,114,252,190,3,50,6,118,0,160,251,218,254,42,4,162,3,111,255,115,254,148,0,140,255, +203,251,199,252,115,1,42,2,196,0,133,2,16,4,96,2,240,255,177,254,107,0,86,2,83,252,44,244,72,249,132,5, +99,7,179,1,23,255,161,255,156,2,92,5,168,0,204,249,1,252,45,1,152,254,162,249,152,251,213,2,123,7,129,5, +2,1,14,255,15,254,253,251,18,251,249,252,126,0,233,0,205,251,102,250,171,2,42,8,114,4,219,1,24,0,173,250, +99,253,155,7,228,5,125,251,154,249,36,252,138,252,192,254,205,254,185,252,51,2,70,7,98,0,191,250,79,255,225,1, +253,255,174,0,191,255,122,251,75,251,105,254,232,254,163,253,127,253,252,255,176,4,75,6,212,1,219,252,253,252,199,0, +124,2,7,255,68,251,85,252,241,253,28,252,143,251,193,254,81,2,141,5,184,7,20,5,23,255,158,251,124,251,99,252, +87,254,249,255,220,253,227,249,77,250,83,255,215,3,100,6,122,6,115,1,27,251,91,250,242,252,6,255,88,2,212,3, +251,255,16,253,16,253,10,251,138,251,95,1,5,2,111,253,57,0,104,7,162,6,197,255,200,251,135,253,216,0,52,254, +239,247,35,249,88,254,95,251,112,246,7,252,89,6,87,9,201,4,128,0,248,0,134,1,173,253,10,251,240,252,202,253, +153,253,247,255,98,1,208,0,20,1,94,255,106,252,241,253,240,0,68,1,184,0,87,252,74,245,134,246,26,254,127,1, +82,3,73,4,35,255,166,253,150,4,31,3,152,248,90,248,133,0,243,1,136,253,3,250,231,250,65,1,11,4,91,255, +155,0,224,8,208,7,103,255,252,253,147,255,195,251,228,248,246,251,49,254,47,250,251,245,255,250,20,6,234,10,8,8, +14,5,109,2,119,253,94,249,33,250,193,255,89,4,77,0,172,248,200,249,123,0,70,2,32,2,117,4,122,3,149,253, +231,248,168,248,242,252,172,2,241,2,125,254,192,254,57,4,196,4,26,254,63,249,24,251,157,255,73,3,228,4,77,1, +150,249,249,245,253,249,79,0,78,3,60,0,81,250,234,251,76,6,191,11,107,6,229,255,183,253,187,252,131,251,7,252, +43,0,83,4,242,0,62,250,77,253,235,6,82,8,187,1,95,254,221,0,222,2,68,0,5,255,2,5,236,7,222,255, +152,251,236,1,88,2,31,251,25,252,55,2,22,1,49,253,151,255,208,7,244,12,26,5,26,249,144,251,224,3,81,255, +76,248,190,251,112,255,153,255,251,2,155,4,158,1,169,1,171,3,24,2,36,255,78,253,23,255,32,5,45,5,59,252, +2,250,152,2,181,6,122,2,128,254,63,252,222,251,87,1,107,8,72,6,40,251,13,246,182,255,130,11,36,12,13,7, +30,2,24,250,218,244,189,251,224,7,133,12,86,6,186,251,254,248,138,254,119,253,24,249,86,3,51,15,154,4,145,243, +123,246,195,5,66,16,129,17,17,8,124,251,122,249,109,254,151,254,199,252,0,254,10,255,179,0,1,4,46,2,167,252, +112,255,83,8,226,7,14,254,168,248,15,250,148,251,8,254,130,3,176,6,76,3,47,252,3,249,189,255,248,8,1,7, +43,255,34,2,56,11,67,8,36,251,104,246,145,255,141,7,245,1,119,248,160,249,113,1,177,6,251,8,248,5,50,255, +11,0,86,4,157,253,45,246,30,252,39,2,3,255,101,253,203,255,172,2,2,7,238,5,36,255,62,1,114,7,252,1, +203,252,166,1,68,254,3,243,75,247,113,4,251,2,91,250,68,253,162,5,242,4,255,254,53,1,213,9,18,9,185,252, +128,245,233,250,252,0,209,254,180,252,129,3,206,8,154,255,21,245,65,251,142,6,38,7,111,4,107,3,222,254,141,252, +30,0,38,0,148,253,228,255,252,0,192,252,64,250,239,251,68,0,212,4,71,4,229,3,224,10,66,10,121,249,122,240, +72,252,133,9,100,11,228,5,246,253,113,252,59,3,21,5,73,1,190,3,131,6,14,1,214,253,103,0,26,0,237,0, +17,6,195,3,50,251,154,251,62,2,122,3,95,2,20,2,23,0,237,3,64,14,74,11,180,249,253,245,30,6,199,14, +3,5,155,248,152,246,189,0,242,12,167,10,66,254,157,253,64,8,25,11,50,3,25,251,224,250,182,4,219,12,232,5, +174,250,225,251,161,2,236,2,136,0,189,2,97,8,235,8,86,0,26,250,181,253,243,0,179,3,93,14,34,16,142,252, +142,240,179,254,255,12,102,9,204,255,236,248,156,245,144,246,220,247,216,252,7,13,53,25,187,13,247,248,13,244,4,253, +214,6,90,13,3,10,2,249,10,235,40,240,105,254,121,10,95,23,221,25,131,4,114,241,134,250,253,6,218,1,105,255, +160,4,183,254,12,243,134,240,92,248,108,13,17,33,220,19,193,244,53,240,53,0,156,6,11,7,96,7,78,0,38,250, +90,249,17,244,34,245,27,8,70,20,218,7,136,248,254,247,154,253,20,1,137,4,249,8,1,8,220,251,6,240,108,246, +254,6,107,10,69,0,89,248,91,247,95,250,84,255,18,2,237,1,116,2,102,1,234,252,126,252,252,2,95,8,245,8, +121,5,90,251,148,240,51,241,120,249,193,0,109,10,101,15,222,2,31,249,32,7,241,15,69,252,179,236,181,247,11,3, +253,252,24,242,240,238,132,248,241,6,151,7,230,254,43,1,174,6,159,255,223,247,218,248,155,249,244,251,254,3,5,4, +93,248,39,243,43,251,87,3,238,2,144,253,90,249,123,248,233,249,245,251,23,252,245,248,74,246,62,247,100,248,76,247, +97,248,210,255,21,10,86,13,55,4,173,246,59,242,233,251,222,10,6,13,140,252,18,238,23,243,208,0,98,10,183,15, +173,11,102,253,247,242,6,243,69,252,146,13,229,18,71,253,139,234,108,242,185,253,180,0,26,8,19,9,116,252,181,247, +4,249,214,240,218,242,89,6,233,9,136,249,153,242,158,244,134,242,19,246,134,1,248,5,49,254,71,240,114,234,246,250, +164,16,161,11,173,248,159,251,190,9,227,1,141,239,19,242,26,1,97,2,102,250,167,250,213,254,69,253,199,252,46,3, +8,7,148,255,169,241,14,232,98,233,18,246,236,6,77,13,111,2,22,247,69,255,126,17,236,18,244,252,104,227,28,220, +52,231,203,243,188,253,31,11,204,13,166,252,74,246,129,10,10,22,3,8,57,250,24,243,23,232,138,229,3,241,36,251, +180,4,198,17,51,17,138,1,87,249,137,251,160,251,211,250,81,250,159,245,75,244,110,251,35,0,145,1,254,8,75,10, +142,248,161,235,229,248,103,8,167,3,224,251,37,255,13,3,15,3,15,1,47,252,147,253,12,5,184,252,7,234,154,238, +32,4,51,9,221,2,87,6,199,12,116,9,251,253,82,243,119,244,78,252,62,249,178,242,48,250,31,3,140,2,202,8, +169,20,87,15,131,252,198,243,122,250,207,2,216,254,125,243,32,244,175,254,148,0,49,1,231,12,172,16,155,3,106,253, +32,3,97,2,97,253,180,254,46,255,33,252,171,254,157,4,114,6,225,8,5,16,233,18,173,9,157,251,182,247,213,0, +30,6,230,250,129,241,114,0,143,18,30,5,80,236,243,243,38,15,37,20,79,5,69,251,69,247,162,246,51,255,146,9, +29,8,164,253,98,247,127,250,163,254,42,253,30,0,166,13,114,20,244,9,161,255,123,3,27,12,180,11,112,1,198,249, +235,252,156,255,145,249,117,247,139,254,103,3,41,5,160,7,137,3,122,251,124,252,221,2,33,4,105,3,145,3,166,1, +147,1,41,5,210,2,94,249,218,247,138,2,248,8,174,3,1,255,201,0,106,4,2,11,241,15,5,7,140,248,156,246, +106,252,50,254,84,252,54,249,130,253,132,14,39,21,245,3,252,247,62,254,21,255,190,250,4,1,77,3,1,249,166,246, +123,255,153,4,221,7,133,12,209,8,10,253,144,246,226,251,160,5,94,7,231,0,46,254,2,0,26,254,189,254,25,10, +39,18,112,7,68,246,41,246,72,5,242,10,207,0,15,253,56,7,159,9,89,254,106,252,84,9,45,12,97,251,2,238, +114,244,246,1,10,7,49,5,203,2,208,2,128,7,80,13,45,12,241,3,157,251,21,247,251,245,33,247,172,251,189,4, +168,10,91,5,15,254,7,0,247,3,100,4,66,9,140,13,71,3,33,245,233,246,135,0,117,0,164,251,143,252,188,254, +85,253,172,251,139,251,53,255,13,10,224,19,166,16,99,5,68,0,208,4,17,10,144,2,7,239,135,231,170,246,188,2, +57,253,93,250,64,1,205,2,29,3,168,12,167,16,117,6,216,1,201,9,202,9,144,252,215,245,220,251,53,0,88,253, +204,250,139,252,172,2,148,10,88,11,143,2,226,250,201,249,85,250,55,251,121,254,43,3,136,7,186,7,237,0,238,250, +103,255,209,7,136,4,54,246,219,240,56,252,151,5,255,2,96,2,186,5,19,1,127,251,30,0,139,6,208,7,118,4, +36,250,17,240,163,238,225,238,176,241,217,253,4,4,83,253,242,253,197,4,141,0,239,252,245,2,173,0,26,247,39,249, +198,0,179,255,123,250,17,247,9,244,144,243,2,250,161,4,106,9,212,5,24,3,197,0,36,248,220,245,30,2,197,6, +171,249,181,240,115,244,0,247,190,245,158,249,45,4,147,13,156,13,236,6,118,1,46,253,184,251,228,1,47,4,130,246, +57,233,235,240,207,3,229,7,169,247,63,237,183,252,202,14,207,7,252,248,174,250,132,3,206,6,73,6,46,0,147,246, +127,245,9,252,201,251,163,243,136,242,244,253,232,7,174,6,82,3,53,5,170,8,93,11,237,8,177,252,11,241,101,240, +151,246,209,1,72,12,154,5,226,247,46,254,121,12,16,9,39,0,58,2,187,6,139,8,2,9,228,1,34,244,51,237, +242,246,198,9,210,12,14,248,57,234,73,248,117,11,255,13,90,7,249,2,203,3,58,6,83,3,213,254,124,0,251,0, +36,249,179,240,144,240,81,252,112,12,231,11,234,251,106,251,194,11,51,12,100,252,188,248,133,2,253,8,231,6,244,249, +246,232,3,235,52,0,245,8,190,254,232,252,172,7,73,8,5,253,43,249,167,2,137,12,120,7,146,246,188,242,59,3, +15,11,203,252,199,242,67,251,144,3,228,254,123,245,32,244,120,255,105,12,183,12,147,5,75,4,170,7,197,6,166,253, +117,241,111,241,236,2,173,16,220,7,43,246,134,242,234,250,192,254,71,253,28,2,20,10,202,8,158,2,158,1,151,1, +179,255,207,0,122,1,14,255,190,0,146,4,166,2,59,255,152,252,153,246,8,246,215,0,212,6,21,0,1,251,226,253, +76,3,35,11,33,16,250,7,213,250,73,249,237,255,78,0,56,248,207,241,69,247,241,5,135,14,248,10,114,4,71,254, +218,246,245,246,38,2,58,12,163,15,23,16,77,9,76,247,102,224,42,207,177,210,201,238,170,6,111,1,161,242,113,244, +100,1,191,12,83,18,90,14,37,7,97,8,95,10,153,253,89,232,208,224,118,240,226,5,144,9,1,0,12,254,179,1, +170,253,44,250,249,3,112,18,204,21,154,12,233,3,7,4,118,0,165,239,243,228,204,238,73,250,173,250,228,253,147,8, +195,15,12,16,22,9,102,252,5,248,76,1,234,7,187,4,134,2,132,4,202,5,65,4,106,253,63,245,201,245,253,250, +14,252,236,255,10,8,38,7,27,0,82,1,52,7,106,9,227,9,152,6,163,255,83,255,184,2,147,251,5,240,135,241, +53,253,218,2,1,255,176,253,210,6,168,16,205,14,66,5,124,255,225,2,213,12,188,14,138,252,177,230,17,229,220,240, +21,248,135,253,141,6,163,8,228,253,43,244,148,250,192,10,205,17,206,12,25,8,10,6,38,0,221,247,109,242,61,243, +21,252,114,3,58,254,118,248,91,0,102,7,125,2,220,2,240,12,46,15,184,12,185,15,131,8,174,245,252,242,11,253, +216,247,92,238,235,246,221,1,255,0,249,255,179,2,193,6,242,14,191,17,234,8,175,2,186,1,58,253,188,255,123,13, +131,16,127,1,149,241,253,235,239,243,17,5,89,12,22,2,167,250,232,4,39,17,107,10,62,249,189,246,53,0,152,255, +76,250,202,255,63,3,199,251,66,249,114,254,196,1,135,7,200,13,202,7,86,252,82,251,39,3,120,9,33,7,69,254, +97,252,183,2,108,0,91,246,234,247,219,4,250,12,95,12,241,6,118,254,250,249,235,1,113,17,32,25,252,16,205,0, +134,246,178,248,48,1,53,4,141,254,233,248,196,251,158,5,168,10,157,1,147,247,43,1,148,19,215,18,37,0,223,242, +214,246,87,4,244,6,41,249,233,243,159,255,158,3,198,0,97,10,1,14,126,254,247,250,239,8,121,8,99,255,8,9, +243,21,163,12,63,252,127,252,70,4,74,0,165,247,130,249,168,253,8,252,201,255,223,6,134,3,160,254,237,2,160,6, +6,6,77,4,145,254,212,253,159,7,150,6,55,245,168,237,60,247,170,3,234,12,177,11,179,254,132,250,10,4,45,5, +175,253,175,1,212,12,198,12,31,1,182,243,99,237,133,246,235,8,109,14,84,2,135,250,212,0,164,7,80,9,115,9, +6,5,198,0,57,5,144,6,81,252,126,246,83,251,252,255,83,4,4,8,128,2,215,250,10,253,199,2,21,4,147,1, +205,251,7,248,133,251,68,0,246,0,137,0,59,2,161,7,194,11,80,6,132,253,180,252,22,0,0,1,251,254,239,250, +124,252,123,4,2,4,180,255,1,11,24,22,253,8,185,246,28,246,57,253,183,0,10,1,119,254,124,251,62,249,13,248, +191,253,236,5,195,5,254,5,189,12,247,8,255,250,209,249,25,3,86,3,4,254,33,255,49,2,175,255,89,251,72,252, +110,1,119,3,32,0,79,252,242,252,175,2,20,8,118,7,227,3,99,1,163,253,226,249,103,251,64,2,96,9,127,6, +23,245,118,232,29,242,196,1,248,4,134,2,238,0,46,255,92,255,216,251,9,243,3,246,43,5,179,7,177,250,167,242, +124,245,125,253,53,7,82,9,165,253,239,241,139,245,87,254,134,250,201,243,215,250,62,1,12,249,243,244,172,252,109,255, +222,255,119,5,76,1,136,246,166,249,197,255,93,250,28,249,110,255,146,254,165,252,110,1,3,1,134,249,60,244,6,240, +204,239,69,252,213,9,236,5,183,248,40,246,175,252,155,255,150,255,228,255,107,251,29,247,235,253,74,5,184,253,178,241, +167,241,222,250,85,2,161,1,113,253,124,1,132,8,180,2,209,248,159,251,68,0,219,249,15,244,243,248,223,1,206,7, +98,8,161,1,39,245,61,235,186,237,100,251,189,7,246,12,116,13,143,6,254,247,100,236,40,236,27,246,33,3,120,9, +121,7,224,3,230,252,53,238,128,228,199,239,173,9,69,26,34,18,149,250,107,231,46,223,47,225,96,239,93,0,40,6, +12,5,45,4,138,254,187,248,248,253,171,6,201,7,184,5,85,1,178,244,29,232,52,235,220,254,247,21,83,32,48,21, +120,255,245,244,121,249,237,255,21,7,56,18,222,16,203,250,57,233,199,235,3,244,40,255,242,18,128,27,239,12,90,255, +243,255,234,255,121,251,95,251,11,255,179,3,83,7,157,3,182,249,51,242,168,238,175,238,155,246,28,4,128,12,20,11, +230,6,0,8,53,11,221,8,51,5,51,8,97,10,181,0,92,242,42,237,251,240,33,247,198,255,218,8,172,7,40,252, +153,247,4,0,200,6,83,6,79,7,118,8,248,4,5,4,48,6,230,255,116,243,67,238,164,240,28,246,170,0,21,9, +50,3,231,247,76,250,210,7,122,14,146,8,140,0,230,0,69,7,74,8,215,0,204,248,6,244,108,242,57,247,46,255, +178,2,89,6,62,12,169,5,153,243,229,239,47,254,255,5,99,1,42,254,32,254,153,253,29,0,125,3,202,2,12,4, +161,10,3,13,73,8,28,6,183,7,245,2,68,247,138,241,203,248,223,3,159,5,14,254,192,250,193,3,137,13,252,7, +113,247,63,239,135,245,222,254,144,3,90,5,124,4,254,0,93,255,65,1,222,3,53,5,204,1,108,249,32,247,191,0, +45,10,76,10,53,5,181,253,72,248,79,254,185,10,43,15,80,13,226,11,220,4,164,247,191,242,225,252,241,7,23,3, +187,243,177,239,169,250,175,3,149,6,102,10,169,10,15,5,228,0,137,251,229,243,32,247,243,0,231,252,151,243,82,251, +59,9,32,9,151,2,185,0,146,254,144,252,89,2,69,10,27,8,181,253,192,246,247,246,23,248,230,246,227,247,187,251, +156,253,185,1,115,13,111,18,54,5,253,249,35,1,26,8,36,2,194,254,22,3,121,2,10,253,68,252,51,1,145,7, +184,7,136,252,230,240,38,243,192,254,64,5,175,2,240,254,9,1,43,6,245,8,237,8,107,4,56,253,16,255,136,10, +250,15,114,12,134,7,44,255,76,247,244,250,184,0,245,249,78,241,134,247,180,9,216,22,240,17,65,4,254,1,96,7, +142,4,21,0,18,3,169,3,217,255,98,3,166,12,202,14,130,6,7,251,143,243,229,241,209,246,248,2,184,12,155,9, +192,2,98,3,10,4,45,0,255,255,209,2,81,1,88,253,15,252,43,0,10,9,215,13,88,8,250,0,185,0,215,4, +54,7,83,5,209,0,211,254,111,1,87,3,237,254,104,247,219,245,114,252,203,4,130,9,154,6,124,252,208,247,166,254, +180,2,134,0,118,6,122,14,241,6,116,248,242,242,191,243,22,246,170,249,119,252,245,0,145,7,29,9,7,6,214,4, +27,5,30,5,122,3,168,254,22,254,127,3,131,255,11,242,17,240,33,252,29,8,49,15,85,12,48,253,201,243,218,250, +66,1,102,254,10,255,137,4,195,5,202,6,235,9,83,2,153,239,113,229,205,235,75,249,189,7,54,17,173,13,78,2, +206,250,104,251,146,4,18,11,20,254,68,237,4,246,15,9,0,7,133,248,11,242,81,244,43,253,196,5,125,2,242,250, +92,253,33,5,69,9,211,8,135,5,217,2,47,255,132,248,138,249,40,4,184,7,0,3,250,1,7,3,93,5,28,9, +133,0,84,241,67,245,174,3,201,4,44,2,7,6,117,6,16,5,156,5,179,0,142,253,221,4,128,6,193,249,224,240, +110,247,187,2,223,5,87,2,131,1,46,1,171,250,145,247,145,254,81,2,183,253,93,250,230,248,181,248,86,255,47,8, +169,12,117,13,234,3,141,240,254,234,157,250,81,5,66,255,25,251,193,2,212,9,155,6,10,255,42,253,88,2,183,8, +76,11,104,9,219,5,25,2,237,250,65,242,166,243,168,255,226,2,22,246,93,240,130,0,8,16,171,9,68,252,200,251, +152,3,29,8,168,4,173,250,167,244,190,245,133,241,102,234,69,240,46,253,249,4,86,10,44,7,128,249,90,249,20,9, +40,11,188,255,96,253,133,1,255,2,5,2,135,251,92,247,136,254,48,2,155,255,255,8,146,15,127,251,177,230,24,237, +152,251,246,253,150,250,140,250,237,1,57,12,103,10,196,251,80,242,197,244,255,250,159,1,108,7,73,5,255,250,100,245, +226,249,116,253,139,251,88,252,104,255,209,254,121,253,16,251,195,245,204,247,5,1,50,0,187,247,189,248,240,255,236,3, +143,6,132,4,235,250,234,243,218,245,188,254,159,11,249,16,182,6,100,251,28,252,132,254,108,249,117,246,246,253,76,6, +178,2,17,249,87,247,252,250,34,252,193,0,198,11,27,17,25,9,206,251,236,247,100,2,22,12,247,6,35,253,213,249, +194,245,61,237,61,231,188,231,128,243,135,10,102,27,17,25,169,12,170,2,57,0,80,7,160,18,111,25,163,23,40,11, +39,249,69,240,60,244,113,246,157,236,106,225,207,233,46,8,86,32,255,25,193,2,189,249,175,9,170,31,41,31,66,6, +148,241,127,239,216,243,149,250,77,4,50,2,197,241,25,233,119,242,97,1,10,7,97,254,43,247,191,7,243,32,172,28, +248,254,171,237,251,242,100,254,92,6,190,5,63,251,68,245,141,252,32,2,227,251,27,245,232,246,249,254,51,8,34,10, +50,2,165,251,48,252,182,254,249,3,83,9,42,4,209,251,76,254,3,1,140,250,66,248,3,253,153,253,70,253,8,1, +225,1,31,0,243,0,101,0,103,252,96,248,158,245,71,247,35,253,173,254,32,252,43,255,23,7,92,12,61,13,248,9, +181,3,180,254,131,253,197,254,242,252,8,244,9,237,77,243,241,255,157,4,148,255,220,250,235,1,68,16,237,16,126,1, +23,247,3,248,103,253,13,8,210,14,13,5,205,247,94,244,118,243,98,246,254,0,221,3,162,250,17,245,245,245,101,247, +245,249,94,251,181,254,71,11,156,20,180,14,122,6,205,1,141,248,72,243,249,249,152,254,165,249,68,243,181,239,113,241, +244,249,18,3,110,9,114,12,180,6,193,252,156,251,120,0,135,1,170,1,5,4,76,4,53,1,235,251,70,246,30,245, +209,248,117,253,201,3,116,11,67,14,157,9,215,255,160,244,50,239,27,243,166,250,119,2,96,10,180,10,238,255,124,246, +202,246,74,249,217,248,116,249,46,252,117,255,204,2,67,3,248,1,187,5,166,10,130,6,48,255,228,254,213,254,246,248, +10,246,202,249,84,253,219,254,153,0,76,0,44,252,245,248,184,253,134,8,71,13,218,7,233,1,36,0,24,254,75,251, +215,250,116,254,221,4,189,6,129,2,207,2,21,6,198,253,189,240,60,243,101,2,189,11,226,6,230,250,62,247,117,253, +223,252,153,246,219,253,228,13,15,19,112,12,197,0,131,245,87,243,4,246,179,244,34,249,77,5,113,6,8,253,171,251, +50,1,167,1,224,251,48,245,77,247,141,5,143,16,162,12,182,1,17,249,174,246,174,251,127,0,161,0,254,1,44,3, +239,254,217,251,127,254,163,1,146,2,174,0,60,255,98,7,120,17,153,8,147,243,37,238,141,252,26,13,162,19,248,14, +247,5,171,255,60,250,23,246,27,252,180,8,54,9,57,251,210,243,226,251,233,0,171,248,132,244,107,254,133,7,96,7, +239,4,191,1,242,253,10,255,131,1,67,254,163,250,4,252,175,253,157,253,248,254,93,1,199,1,252,255,66,0,236,4, +213,6,37,1,224,252,29,255,182,254,152,249,255,249,66,1,177,6,137,8,19,10,254,7,115,255,170,249,119,255,243,8, +10,10,202,2,202,248,97,242,27,246,184,254,3,1,124,0,140,3,170,3,100,255,241,253,122,253,143,252,56,1,89,6, +204,2,215,253,171,255,171,3,188,5,102,4,171,253,141,248,236,253,233,7,253,10,185,4,16,249,161,240,209,246,191,8, +38,17,146,6,206,251,102,255,64,5,179,2,247,253,92,248,135,240,51,242,38,0,1,8,30,2,6,252,247,254,211,7, +129,15,91,14,11,3,233,246,224,245,64,1,154,9,22,2,111,248,154,253,28,4,14,251,28,240,42,245,199,3,227,13, +52,16,103,14,226,11,204,8,188,2,178,248,190,239,158,240,180,250,80,3,202,7,168,10,143,4,140,245,50,239,26,247, +45,0,115,2,80,254,48,251,208,3,55,13,51,3,44,243,9,244,195,251,18,252,250,249,155,248,211,249,62,1,218,5, +89,3,255,3,255,3,95,250,170,243,22,247,79,248,50,246,214,249,66,1,210,5,37,3,138,251,112,252,187,6,244,6, +113,250,32,244,253,249,248,2,119,5,199,250,200,236,42,240,198,1,155,9,25,0,74,244,245,244,199,0,138,10,209,10, +213,2,36,244,167,232,180,237,210,249,129,249,43,240,193,235,146,241,154,3,81,22,80,18,114,252,133,245,79,6,143,21, +172,14,152,248,62,237,53,250,123,10,227,4,74,243,22,237,249,242,147,250,153,1,72,6,227,5,235,4,38,7,173,7, +180,2,178,250,252,242,3,241,81,250,89,8,84,12,3,3,195,246,36,241,87,245,78,1,162,12,132,13,95,4,163,252, +10,252,112,250,212,243,102,242,106,250,216,0,91,255,48,253,243,255,44,1,11,249,189,241,211,253,110,20,54,25,31,10, +223,250,136,244,26,250,135,6,181,4,238,244,65,242,188,251,176,253,73,0,12,9,214,6,229,253,145,254,121,255,233,249, +76,249,194,253,184,2,182,9,241,9,6,1,165,255,2,7,63,8,82,3,185,251,239,240,100,240,12,1,224,14,181,11, +157,0,45,246,139,238,111,238,195,246,51,0,103,4,225,5,137,9,123,11,2,6,43,253,75,246,230,243,255,250,43,6, +204,6,56,3,216,12,206,24,222,15,157,247,142,233,63,240,213,252,125,253,139,248,86,253,150,4,89,2,131,254,139,254, +37,253,251,253,137,3,89,6,83,10,120,21,136,24,171,9,236,249,35,245,134,241,210,233,111,232,213,244,9,6,88,13, +155,11,10,14,72,21,124,21,37,12,211,255,136,246,76,249,96,9,157,17,197,1,176,235,204,231,22,244,227,1,249,7, +41,3,172,252,18,3,119,18,22,26,218,19,60,4,64,245,95,244,2,1,85,10,194,6,97,250,4,240,179,244,6,4, +25,7,67,250,98,241,85,245,159,1,39,14,11,11,222,247,197,239,239,252,165,8,73,6,6,0,77,255,112,6,56,16, +174,16,179,4,180,246,30,241,216,244,84,248,114,244,56,242,95,250,125,4,14,9,163,11,159,11,242,4,210,251,239,247, +107,251,120,1,112,4,100,5,121,5,132,0,10,249,9,246,188,245,141,248,241,3,212,13,111,8,240,253,154,254,12,5, +34,2,39,245,132,238,43,248,176,3,27,3,218,255,136,2,122,5,215,6,63,5,176,251,78,243,6,248,176,2,95,10, +177,14,69,11,215,0,117,250,19,251,140,254,138,3,167,4,174,253,14,246,226,245,56,253,172,5,148,5,152,254,184,254, +244,6,122,11,114,11,128,11,12,8,187,255,191,249,255,251,154,2,208,2,83,250,1,243,253,241,57,245,237,251,253,0, +125,0,132,1,142,5,93,6,0,7,216,5,237,249,205,239,105,246,96,255,235,255,254,0,142,0,152,250,191,247,76,246, +63,244,83,254,92,13,146,10,41,252,113,244,114,244,29,252,182,7,128,8,210,255,120,251,45,251,117,253,253,3,27,3, +47,247,218,241,248,248,99,1,178,6,230,6,42,0,103,253,178,6,93,16,223,13,92,2,151,248,166,248,156,1,248,8, +160,6,166,254,111,249,10,248,145,247,193,248,119,251,0,253,86,255,123,2,149,254,70,245,19,243,191,248,11,0,187,9, +107,15,23,7,155,249,193,242,193,239,98,243,150,2,56,13,109,6,0,254,35,0,181,255,225,244,200,237,50,245,181,2, +160,10,214,11,121,9,172,4,85,255,35,252,56,253,136,3,95,10,200,9,226,0,16,247,119,245,235,252,181,255,206,247, +164,247,186,4,199,6,157,249,218,243,11,248,235,254,56,14,97,27,117,20,97,5,238,251,21,244,141,246,115,7,76,13, +161,254,9,242,46,242,122,249,98,3,93,7,107,4,231,4,4,6,242,255,202,249,255,248,33,253,106,7,176,10,253,249, +81,233,223,238,178,255,9,11,73,13,36,5,56,248,103,241,157,243,112,253,20,8,73,7,125,255,145,255,30,2,230,252, +239,247,136,248,58,251,191,3,133,15,235,15,166,3,228,246,75,240,184,243,189,1,145,13,84,10,66,253,196,244,48,246, +238,251,68,0,185,1,20,254,111,246,98,245,173,0,141,13,150,16,84,11,80,4,96,254,112,249,233,246,116,248,78,248, +121,241,43,238,253,245,6,254,6,2,81,9,221,10,27,253,70,242,158,250,150,12,157,26,70,26,103,6,20,241,43,238, +208,243,30,246,181,251,209,1,249,253,115,247,49,249,7,2,155,13,25,19,165,10,249,254,42,253,203,254,187,252,16,252, +35,254,58,255,101,255,134,254,134,252,59,251,184,247,222,239,53,237,96,248,144,8,76,13,106,3,191,247,190,245,253,251, +183,4,65,12,95,13,157,6,6,255,50,250,100,244,89,238,22,237,169,240,11,246,35,252,165,1,251,1,72,251,1,249, +126,7,84,25,52,23,166,7,153,0,31,2,11,3,40,5,208,6,151,1,221,250,7,251,110,254,119,254,168,252,108,252, +117,250,127,244,202,244,243,1,247,11,213,5,239,253,183,0,12,4,117,1,52,0,180,2,65,4,47,1,243,249,11,246, +124,249,205,249,32,241,130,237,86,249,166,7,183,6,176,248,228,238,49,241,4,248,193,255,67,12,39,23,66,20,250,5, +155,248,29,241,52,237,17,236,149,239,247,247,82,2,152,10,167,10,96,254,234,238,218,234,92,241,83,248,248,253,188,3, +250,7,92,10,106,9,128,3,71,252,78,247,94,247,174,255,53,7,22,1,167,245,69,243,13,247,33,251,193,252,115,247, +52,244,226,254,227,12,61,21,68,30,168,30,255,11,118,250,120,248,129,248,169,245,14,246,188,245,150,244,85,248,52,253, +79,0,133,2,170,254,131,248,122,254,4,15,58,26,173,23,186,10,209,255,219,255,185,1,112,251,160,243,181,241,104,245, +86,254,169,7,146,8,176,255,7,245,155,244,179,255,93,5,96,0,40,3,2,14,246,12,175,4,125,4,14,3,61,249, +11,244,43,248,140,253,145,255,45,253,29,251,202,255,64,4,150,0,1,253,253,254,100,253,59,245,192,241,61,250,12,7, +138,12,233,8,243,0,89,249,167,247,162,250,119,250,167,252,70,9,149,15,215,1,88,242,76,240,162,244,218,250,111,0, +91,255,60,253,125,255,5,255,162,252,56,254,147,254,117,252,238,252,229,254,80,4,121,10,72,2,176,243,251,246,10,1, +210,252,5,247,29,249,192,249,99,252,94,2,112,0,2,252,247,252,42,251,128,250,117,1,19,2,201,252,21,1,85,3, +89,248,226,243,40,252,35,0,21,255,239,254,126,250,199,245,49,249,63,253,147,251,173,251,102,255,227,253,151,248,67,253, +205,9,130,10,8,1,88,2,4,9,69,2,185,248,111,251,190,0,45,0,140,251,189,244,80,246,92,4,3,12,172,4, +235,250,49,244,244,246,41,13,54,34,6,25,16,254,195,238,31,241,131,251,159,0,85,251,25,249,91,1,162,8,64,9, +156,3,160,245,41,237,165,249,180,11,55,15,94,8,254,254,17,247,233,249,214,5,152,10,35,2,30,247,165,246,41,2, +115,10,89,3,185,246,127,242,144,245,245,250,197,2,204,11,107,16,19,11,216,254,247,246,180,247,18,251,229,252,153,252, +133,250,221,248,219,246,91,244,105,248,199,1,156,3,243,254,132,255,80,2,160,255,134,251,241,250,118,254,56,5,168,9, +182,7,90,0,197,243,192,233,21,239,169,252,110,1,196,255,67,0,135,0,219,255,86,255,7,253,79,254,248,6,86,13, +10,12,219,7,71,2,203,253,37,254,134,254,42,253,249,255,101,4,194,4,185,2,223,253,97,248,81,251,224,2,45,3, +193,254,239,251,44,252,226,3,163,12,46,9,164,3,154,8,53,10,185,3,177,3,34,4,238,251,84,253,137,11,212,11, +165,250,179,238,6,240,185,251,164,14,164,24,84,13,50,251,107,244,98,247,32,252,205,255,51,1,250,1,237,4,97,7, +105,6,153,4,28,2,217,251,219,246,186,251,139,6,36,11,93,5,3,251,5,245,112,248,160,255,116,1,3,0,203,1, +201,2,231,253,215,249,39,253,195,2,253,4,117,6,85,8,189,5,54,0,54,1,78,8,201,9,21,3,13,253,194,251, +93,253,54,1,109,4,63,2,22,252,76,249,195,254,246,7,207,9,135,2,253,254,199,5,34,11,210,4,186,249,0,245, +223,247,84,254,171,5,43,8,116,255,117,242,8,240,44,248,141,0,84,8,139,14,188,9,118,253,65,250,129,1,58,8, +137,11,43,11,34,4,129,250,27,246,101,249,95,2,1,9,127,4,58,251,129,250,96,255,155,254,182,248,157,244,179,247, +70,6,94,23,163,21,154,0,56,242,248,246,38,3,170,13,37,17,212,5,143,245,243,243,187,251,111,252,230,248,186,247, +231,248,55,2,16,14,168,7,90,245,212,243,178,1,23,9,181,8,206,6,126,255,203,245,215,243,108,249,245,254,244,0, +110,1,208,2,72,3,201,1,38,2,136,3,202,255,30,248,78,244,46,249,165,3,112,7,233,254,250,247,71,251,26,254, +169,254,115,5,164,10,69,6,28,4,143,8,110,6,30,250,114,238,42,236,225,243,177,254,94,5,8,8,208,8,225,7, +105,5,101,0,92,252,172,1,116,12,213,14,57,5,181,245,56,236,254,245,211,7,202,8,138,0,227,2,99,5,50,1, +247,4,225,10,187,4,4,255,65,1,46,0,128,253,43,253,221,247,192,244,216,253,160,5,231,1,75,251,206,246,58,246, +215,252,150,3,77,3,86,0,32,255,202,1,78,7,243,5,88,254,74,0,101,10,152,11,100,2,184,247,157,242,175,250, +185,8,74,9,10,254,139,245,66,238,243,232,27,244,54,10,15,16,219,0,122,247,40,5,48,24,145,22,217,0,180,235, +47,230,214,240,219,255,112,6,223,4,118,255,193,244,62,236,178,242,122,2,95,12,204,11,218,3,93,253,222,0,210,6, +57,4,155,253,92,249,234,247,81,249,107,247,121,242,41,250,37,10,223,9,224,253,164,250,200,251,138,251,48,0,191,3, +194,1,71,1,2,253,87,243,63,245,127,0,176,2,103,255,241,253,155,250,211,252,57,5,255,1,242,247,36,251,79,2, +241,253,94,248,28,252,115,3,78,5,20,254,6,247,50,252,90,6,10,7,129,254,54,246,79,248,211,3,41,6,19,252, +130,250,21,255,36,247,161,241,201,255,104,12,243,8,48,4,83,3,30,0,166,252,107,249,49,246,43,249,205,255,16,1, +98,255,175,255,87,255,48,255,0,4,218,10,49,10,89,0,231,249,246,253,184,255,78,248,92,245,39,252,234,2,37,7, +152,8,175,3,70,255,152,0,237,255,125,254,148,2,86,2,255,249,86,248,175,254,109,0,3,255,108,0,65,0,97,253, +27,253,252,255,114,3,90,7,228,11,205,12,137,4,109,249,35,248,27,251,173,244,174,237,246,245,8,7,63,17,56,15, +78,5,173,255,135,5,40,13,156,13,179,9,73,1,104,244,179,237,248,241,91,249,198,255,196,4,13,4,220,254,211,252, +152,255,76,3,25,6,106,7,31,6,206,2,199,255,36,253,107,249,4,248,66,253,112,4,51,8,142,10,26,8,8,252, +18,244,88,254,0,14,102,16,226,7,92,1,148,3,63,8,180,2,14,248,172,251,9,11,91,17,67,10,59,255,208,246, +173,245,165,249,79,252,39,1,190,7,243,3,127,251,245,255,232,7,47,2,73,249,217,249,11,253,231,253,212,253,253,250, +19,249,105,254,241,4,106,3,123,253,245,253,4,7,80,13,94,8,255,1,184,3,246,3,12,252,233,246,118,249,149,251, +223,251,119,254,61,1,223,2,167,5,126,6,99,3,158,4,228,12,101,14,64,3,140,251,106,255,80,1,53,253,197,253, +157,255,41,251,202,251,234,6,208,12,38,7,209,254,250,247,79,248,125,5,137,17,202,13,96,4,163,1,224,3,20,9, +214,9,14,250,21,230,85,231,38,249,58,6,22,12,234,11,68,254,37,236,12,234,122,247,230,5,37,15,26,16,176,8, +216,3,109,5,143,2,64,251,112,249,16,249,240,245,103,249,12,1,37,255,37,248,20,248,140,252,107,0,223,1,23,0, +76,3,107,12,254,8,45,249,8,246,11,0,119,3,168,0,51,253,48,246,233,243,33,251,213,255,12,2,225,8,37,10, +40,3,240,0,231,1,75,0,33,2,214,2,183,252,194,252,4,3,194,255,219,251,193,5,147,14,142,9,239,0,17,252, +251,250,222,254,194,2,113,1,222,253,249,249,83,246,78,246,75,249,220,251,32,253,198,253,124,2,231,11,83,13,235,2, +227,251,117,252,251,251,12,253,151,0,23,253,4,246,80,245,240,246,151,247,21,251,183,255,211,4,11,11,43,11,202,6, +215,9,199,14,5,8,72,251,165,243,7,242,220,245,254,251,27,254,255,252,44,253,64,0,31,6,14,10,62,8,209,4, +196,0,232,251,195,254,143,5,134,255,47,245,248,250,78,6,129,6,201,4,42,8,27,8,117,2,93,252,87,250,91,255, +9,5,56,3,123,255,45,0,223,255,152,250,104,246,18,253,124,13,210,19,178,5,32,247,164,246,104,251,56,3,114,12, +144,7,226,250,117,253,239,4,124,254,181,248,23,252,140,248,53,242,31,252,133,12,225,10,229,248,251,239,68,252,64,11, +49,11,143,5,199,4,222,2,107,255,44,255,129,253,58,249,168,247,115,248,141,251,201,0,92,3,17,8,22,18,186,15, +181,253,103,245,100,251,21,255,232,2,144,8,100,2,222,246,0,247,69,251,76,249,53,248,10,253,40,4,85,7,84,2, +9,253,184,255,54,3,5,4,31,6,219,1,78,247,56,248,40,2,142,2,189,252,244,250,207,251,126,2,206,12,35,10, +126,251,184,245,117,254,208,7,136,4,140,249,157,252,238,13,41,16,113,0,168,250,161,0,254,1,100,0,38,254,214,250, +179,0,53,10,179,6,76,1,66,6,179,6,92,0,78,0,14,0,180,251,168,254,181,2,206,254,167,255,216,5,146,2, +113,252,119,254,37,0,200,254,226,0,251,1,64,255,24,255,163,0,190,255,214,254,9,255,0,0,28,2,85,0,167,249, +36,249,41,2,117,7,29,2,25,252,172,253,119,1,76,1,108,0,142,0,213,253,215,251,60,255,1,0,172,251,213,252, +111,0,89,252,163,251,176,6,131,12,191,5,100,1,115,3,194,2,42,254,47,250,41,251,81,1,151,2,12,253,198,0, +32,13,34,11,59,252,50,249,62,2,237,4,52,1,172,255,78,253,155,249,140,252,115,4,69,7,216,4,218,2,172,0, +68,255,8,3,126,5,118,254,28,248,239,252,115,2,140,255,16,253,97,0,95,2,115,255,224,251,23,252,143,255,97,0, +38,253,138,252,118,255,45,1,71,4,249,8,141,6,162,255,40,0,36,4,178,0,69,250,100,249,202,252,224,0,228,3, +251,4,229,5,27,7,50,6,40,3,102,255,60,252,74,253,33,2,52,3,138,254,142,251,28,254,101,1,114,0,82,254, +30,1,27,4,82,255,112,252,197,5,118,12,174,4,100,253,22,255,118,0,204,2,123,8,253,4,154,250,201,251,90,4, +6,4,50,255,59,254,126,253,159,253,246,1,33,5,11,3,125,254,208,251,74,255,190,5,70,6,158,3,118,4,157,2, +90,253,28,0,97,6,174,2,119,252,117,254,201,0,25,255,72,1,164,6,130,6,219,255,17,249,193,247,103,250,198,251, +235,254,135,8,62,15,151,9,188,255,37,252,135,252,215,251,185,251,75,0,238,6,143,6,133,255,207,252,25,255,45,254, +230,250,115,248,83,247,178,253,144,8,63,8,138,0,35,2,219,6,9,4,32,2,106,3,92,1,57,1,148,3,226,254, +5,249,238,251,153,0,22,1,155,254,140,247,153,242,168,248,139,1,200,5,164,8,28,5,200,250,124,250,62,5,189,8, +251,2,158,254,72,255,5,6,218,12,14,9,185,0,113,254,86,252,9,249,227,252,52,2,150,1,170,1,158,1,41,251, +174,248,2,2,248,8,30,3,143,251,150,254,129,6,57,6,11,0,227,255,22,2,83,253,25,250,48,0,185,5,236,4, +58,2,151,253,233,248,28,251,10,1,194,0,23,249,180,242,203,246,201,1,94,6,243,4,213,6,215,6,10,2,29,4, +240,8,133,1,242,247,248,250,173,0,97,0,135,255,160,253,93,248,208,245,7,250,228,2,242,8,167,3,251,250,173,254, +39,7,238,4,182,0,190,5,86,9,119,2,251,250,246,252,119,3,118,4,37,1,19,1,89,2,81,0,59,254,9,252, +20,247,214,246,203,254,241,4,163,5,244,5,152,6,234,7,221,8,63,5,44,3,8,7,25,3,33,246,36,244,123,253, +45,3,128,6,5,7,148,252,97,242,255,245,173,254,121,3,143,4,64,1,248,255,253,4,72,6,175,3,214,6,17,8, +67,1,217,253,85,253,129,247,153,245,132,252,157,1,205,2,239,2,95,0,250,255,219,2,58,0,140,251,104,254,196,4, +235,9,142,12,8,8,62,3,128,6,179,4,225,248,172,245,243,252,196,255,164,255,165,1,39,2,213,3,241,5,225,0, +187,250,138,249,194,244,191,239,130,247,179,4,200,8,68,3,3,250,55,246,74,253,252,4,5,6,7,7,254,7,82,5, +213,3,44,1,250,248,4,246,166,251,182,253,228,252,57,1,98,5,13,4,39,255,18,250,142,253,20,9,54,11,162,2, +150,255,139,0,205,254,171,2,104,9,33,7,91,2,143,1,36,254,130,252,2,3,89,6,41,1,80,252,100,249,41,248, +10,254,131,5,193,3,37,252,55,248,250,250,218,1,168,5,124,2,231,254,2,0,173,1,21,1,145,0,108,1,164,2, +142,2,157,0,189,254,12,255,131,1,224,2,68,255,133,250,213,251,105,254,221,250,226,248,3,255,44,4,54,3,55,2, +132,3,143,5,143,6,216,1,58,249,122,245,252,245,52,246,36,250,113,0,30,255,139,247,232,243,53,245,166,246,160,247, +35,250,230,254,237,3,118,7,226,9,244,7,80,254,61,245,178,246,29,254,231,1,6,0,137,251,134,250,164,255,163,2, +116,253,14,247,26,246,147,249,75,255,64,4,102,6,15,7,249,3,102,251,129,245,13,247,70,249,175,250,92,255,166,2, +124,0,101,255,196,2,165,3,15,252,138,240,193,236,112,244,136,254,159,4,98,6,69,0,21,246,193,245,249,253,18,0, +78,252,154,251,222,253,137,2,8,9,1,10,92,5,248,3,9,6,41,6,132,2,245,249,166,242,37,246,186,252,49,251, +35,250,187,254,102,254,99,251,13,0,106,5,38,5,2,6,11,6,129,0,48,254,63,1,42,1,66,2,125,9,201,10, +232,2,138,255,175,0,57,250,42,239,25,235,213,239,148,249,37,3,143,5,174,1,117,0,222,3,247,5,23,5,250,2, +89,255,184,253,243,3,234,12,132,12,177,2,229,249,96,246,151,246,142,251,124,3,186,6,97,2,163,252,3,252,69,0, +219,3,210,3,154,3,135,3,44,254,100,248,101,254,253,9,116,10,6,3,215,255,19,255,191,255,21,6,84,8,162,254, +123,246,218,246,69,246,183,246,37,253,29,254,115,247,59,247,215,253,136,3,234,9,86,13,137,8,18,4,212,1,39,249, +73,242,114,248,1,1,69,3,26,4,121,1,154,250,252,250,33,4,152,9,238,5,114,252,216,243,43,245,65,0,212,9, +220,10,151,5,111,0,101,255,35,253,6,246,133,244,231,253,252,5,134,5,146,1,18,253,101,251,22,1,166,7,236,5, +1,255,54,250,69,250,176,254,193,2,87,2,50,0,208,255,51,1,110,3,110,4,115,4,86,5,170,0,236,242,155,236, +111,249,92,8,163,8,108,0,193,247,141,240,248,241,119,253,60,6,198,5,23,5,25,9,133,9,105,1,244,249,67,252, +44,2,255,255,143,245,181,236,175,237,182,247,255,1,210,7,242,11,214,9,58,251,195,239,16,250,59,12,218,15,253,9, +166,5,171,255,198,250,106,254,159,1,143,250,209,243,149,249,254,5,61,13,49,12,98,6,13,0,200,252,188,254,60,3, +179,3,147,254,40,250,237,250,192,254,2,3,252,5,213,2,120,248,190,242,206,251,218,7,249,5,119,252,30,251,132,1, +187,7,48,10,237,4,76,248,72,237,112,236,156,249,248,12,69,16,244,253,71,239,53,243,88,254,48,7,230,7,75,253, +183,248,138,4,169,9,207,254,219,250,81,0,79,253,20,247,37,251,52,3,34,4,5,253,38,247,1,253,211,7,83,9, +77,5,137,3,125,255,85,250,28,251,223,254,152,1,185,2,140,255,243,252,233,1,251,6,18,6,104,4,27,0,58,247, +88,246,148,1,153,10,110,9,139,3,115,255,117,255,196,0,201,0,237,255,109,250,9,242,24,246,88,7,3,17,96,13, +59,5,21,247,90,233,29,237,76,249,59,249,173,244,185,248,21,255,176,5,180,15,132,19,32,11,35,253,45,238,200,230, +14,242,203,5,194,15,76,17,237,13,132,0,120,241,187,239,77,250,165,8,127,16,139,6,205,244,131,243,138,255,69,3, +30,255,202,255,109,4,166,6,79,3,249,249,253,242,61,247,111,0,121,4,242,5,157,8,77,6,242,253,94,251,250,1, +78,4,229,252,141,246,185,246,105,251,67,5,58,13,125,8,220,252,74,244,33,238,49,240,194,0,168,16,129,18,188,14, +170,10,3,4,5,2,2,7,69,9,220,7,203,4,26,249,214,235,167,241,96,6,83,16,146,8,163,253,190,250,125,255, +65,2,217,251,235,246,192,254,250,6,255,4,159,5,51,11,58,6,152,252,28,255,51,6,118,7,102,7,83,5,89,2, +254,5,16,5,144,247,230,244,117,3,117,7,10,255,21,1,67,10,253,12,39,12,68,9,123,4,57,4,194,4,179,255, +227,253,66,3,171,2,122,247,117,241,248,251,160,6,129,251,116,234,147,244,127,15,158,21,39,4,198,245,25,249,30,7, +236,12,210,2,140,250,68,255,46,2,231,252,31,251,232,253,61,255,162,3,73,14,74,22,93,16,192,254,14,245,109,252, +0,1,97,247,167,242,163,251,194,2,123,2,241,1,206,3,156,10,39,17,214,7,154,246,100,249,103,11,19,14,200,254, +247,240,195,235,92,239,21,251,39,4,81,2,9,253,110,255,215,11,14,24,154,20,54,3,207,246,166,247,34,0,36,10, +43,12,90,2,138,249,172,248,36,248,204,247,203,250,121,253,170,2,79,9,187,3,10,249,89,255,111,12,187,9,226,255, +46,254,138,2,215,9,70,14,254,5,225,248,74,247,69,254,136,1,151,255,206,252,26,251,253,251,23,2,111,11,200,14, +182,7,68,253,17,247,237,250,72,11,213,24,19,18,167,2,184,253,183,254,192,254,210,2,25,8,216,5,73,253,5,247, +28,251,235,6,242,11,245,5,92,255,202,252,81,255,230,8,55,14,42,6,232,254,252,1,53,4,37,2,107,2,83,1, +167,252,89,253,24,4,161,6,122,2,248,253,58,252,249,251,190,251,45,251,51,254,216,9,190,21,37,16,95,251,250,238, +15,245,100,2,225,12,184,17,69,16,193,8,14,250,58,234,7,233,226,245,59,253,173,253,31,8,141,26,105,33,71,20, +99,252,251,235,191,239,247,0,199,14,151,17,246,11,138,1,117,244,25,234,35,236,207,249,241,3,194,7,142,19,234,34, +209,29,197,3,122,239,145,239,240,250,69,5,157,9,213,7,191,3,162,1,230,255,61,250,17,242,127,238,83,247,81,13, +118,32,111,27,153,0,210,232,254,228,123,241,216,255,169,5,168,7,152,13,159,16,228,8,27,252,253,241,189,238,228,242, +44,247,85,252,121,13,250,30,182,23,226,254,251,238,10,240,121,253,68,13,238,17,2,14,20,10,35,255,217,238,236,234, +56,242,146,248,178,1,42,12,186,10,148,1,204,253,149,252,196,249,21,250,141,251,248,248,15,249,88,2,179,9,80,1, +38,241,151,237,132,251,230,12,228,17,155,6,84,248,239,247,106,1,140,1,146,245,180,239,7,250,122,7,56,10,140,8, +76,9,186,2,255,246,210,251,78,13,14,13,154,249,17,239,86,246,82,0,97,1,49,250,147,244,91,248,120,254,153,253, +243,252,155,4,113,9,247,1,196,252,201,5,132,12,102,2,24,245,224,243,156,252,116,8,0,15,90,10,87,1,244,248, +68,239,152,239,171,1,179,16,151,12,92,1,238,250,13,251,246,0,141,3,96,254,249,251,102,254,83,254,42,255,116,2, +251,0,131,252,198,248,215,242,30,240,175,247,211,3,21,14,84,18,81,11,129,0,192,252,243,249,65,246,96,255,51,17, +222,20,80,7,99,249,97,242,226,238,110,241,125,255,14,17,88,21,166,11,219,2,234,254,57,249,164,245,51,252,78,9, +195,20,132,24,212,14,181,251,84,238,109,236,238,238,253,244,181,0,74,9,115,7,16,255,14,245,234,240,62,250,204,5, +47,5,55,3,25,9,154,7,255,249,110,241,201,244,11,252,19,255,228,251,148,252,54,6,231,8,40,0,68,252,127,250, +191,242,55,249,109,18,154,27,125,7,188,242,188,244,180,8,152,22,190,10,138,242,26,234,17,243,153,254,71,5,127,1, +221,245,231,244,169,4,135,16,160,9,156,252,171,251,181,3,36,4,244,248,194,237,51,236,146,243,127,252,211,1,122,5, +133,6,84,0,88,250,226,254,232,7,13,14,144,17,89,11,25,250,104,238,236,237,37,239,91,243,84,252,250,1,61,7, +112,16,203,15,164,1,66,249,183,254,5,8,28,14,162,12,69,3,202,252,224,252,177,248,117,240,177,239,163,244,177,249, +76,4,89,16,225,14,164,3,161,253,113,252,126,251,69,253,175,255,177,255,103,253,104,245,178,238,42,247,124,1,137,250, +134,244,60,0,3,10,214,6,244,2,142,255,139,250,237,250,190,253,223,253,138,255,213,254,157,248,92,249,235,1,247,3, +53,1,140,1,145,254,241,247,56,249,142,0,81,0,132,247,39,243,131,250,58,6,107,12,206,11,185,7,111,4,204,5, +190,8,193,5,224,251,78,242,100,242,111,252,147,1,26,249,211,240,137,243,218,248,182,251,244,2,214,17,7,32,8,29, +199,5,178,243,97,248,201,1,72,1,218,255,239,253,245,245,25,243,125,250,254,253,189,249,67,250,169,4,52,17,117,21, +42,13,37,0,154,250,188,254,230,4,250,5,15,1,44,250,52,246,27,248,209,254,159,3,123,0,199,250,13,255,143,13, +6,23,202,19,64,13,202,8,242,1,31,252,218,252,30,253,179,248,159,246,79,248,120,250,88,254,172,0,81,252,241,246, +27,249,64,4,4,18,255,20,125,9,126,254,18,252,59,251,47,251,28,253,205,251,24,251,233,0,0,5,55,2,103,254, +82,251,153,249,120,251,29,253,227,255,254,10,42,22,61,19,39,6,4,252,163,252,56,7,70,14,206,6,12,251,60,249, +250,254,235,2,8,1,98,251,145,247,242,248,192,254,94,5,150,6,108,2,224,1,69,6,31,7,172,2,169,252,40,247, +29,247,254,253,79,3,26,3,64,3,230,5,179,6,236,2,139,252,235,247,49,247,106,251,134,5,204,12,182,5,91,250, +7,253,211,5,99,5,108,6,164,18,172,21,117,2,184,241,109,248,27,5,122,3,225,251,207,249,79,249,148,248,170,253, +198,10,117,25,144,27,92,11,60,251,51,251,97,255,39,253,86,254,127,4,37,2,169,245,82,237,11,242,122,250,47,250, +176,250,72,10,160,25,230,20,195,7,49,1,251,252,86,252,130,5,122,14,106,11,146,0,197,247,24,246,79,250,213,253, +33,252,32,248,56,250,0,8,16,24,129,24,176,8,211,251,132,254,57,7,102,4,249,247,121,247,117,7,225,17,233,10, +217,252,29,243,30,246,28,6,252,15,38,6,45,248,163,247,1,0,250,5,220,5,161,2,37,2,128,5,1,7,198,2, +35,252,143,250,201,0,204,7,35,9,6,7,169,3,217,253,204,247,170,245,183,249,96,3,164,10,80,5,35,247,51,240, +7,247,82,255,221,254,110,0,114,13,79,22,1,15,74,5,4,1,240,250,92,249,68,3,59,9,96,2,48,251,158,248, +158,245,25,245,64,249,147,253,58,2,219,8,182,12,137,10,172,6,204,7,216,14,9,18,40,6,171,241,110,233,52,244, +27,2,140,5,7,1,136,250,68,246,57,250,44,6,213,16,171,18,244,11,59,6,114,11,178,17,134,8,127,250,12,249, +217,250,11,246,182,244,12,250,1,254,55,255,16,0,110,4,174,13,9,15,44,3,140,252,38,0,132,252,139,242,77,241, +219,247,243,0,20,11,159,13,86,6,39,1,197,3,224,7,93,6,192,253,0,246,126,247,207,253,244,1,38,5,177,7, +242,5,170,254,215,245,91,246,64,6,33,23,189,22,33,8,199,250,211,246,132,249,164,250,2,247,53,244,238,245,241,250, +119,2,4,8,142,5,239,255,110,0,97,4,85,3,54,254,27,252,92,254,47,0,77,254,0,250,38,247,2,248,180,249, +173,250,231,0,36,13,57,19,36,12,49,255,241,245,48,246,92,254,45,4,141,3,70,1,27,253,51,248,209,247,149,245, +5,238,134,239,17,252,24,4,131,5,206,2,224,247,114,240,72,249,209,5,113,11,54,14,34,10,207,253,69,246,133,248, +47,254,145,1,61,253,235,244,209,243,135,248,165,252,163,255,254,251,73,245,8,254,212,16,122,20,36,9,4,253,210,244, +100,249,37,9,162,10,40,248,153,235,176,240,68,252,10,4,62,3,122,254,128,1,113,11,37,16,110,11,225,2,79,254, +82,255,74,254,114,251,174,0,2,7,113,0,250,248,185,255,159,7,174,5,202,4,246,7,57,7,242,5,54,7,19,4, +61,254,124,251,176,248,231,251,88,14,163,27,73,12,190,242,140,237,235,252,189,15,103,22,74,11,91,252,244,246,51,245, +235,244,29,252,148,2,247,255,23,253,17,0,165,3,154,0,83,245,60,243,180,9,243,28,247,13,138,246,19,250,132,11, +60,15,135,0,40,240,50,248,182,20,75,28,103,4,126,240,238,238,21,243,80,252,251,5,106,1,65,248,235,253,216,9, +66,10,15,1,179,249,87,250,147,1,175,6,45,1,164,245,28,245,118,4,131,12,242,251,144,233,122,239,192,255,24,3, +13,253,225,248,215,249,128,2,82,12,37,8,47,249,239,244,164,1,1,14,159,11,11,0,195,248,29,250,100,1,189,9, +131,8,15,252,34,248,13,3,19,5,109,250,52,252,218,7,62,6,95,253,65,251,150,250,190,252,169,6,202,11,224,6, +211,1,112,252,31,246,136,247,138,253,233,255,89,0,173,253,178,248,126,249,157,249,186,243,8,250,150,11,235,11,115,255, +22,2,73,14,129,17,74,14,25,9,72,2,218,253,98,249,185,243,127,244,102,248,32,248,41,253,196,9,137,12,49,3, +81,254,165,1,213,5,49,9,113,11,169,14,10,25,195,34,212,24,20,255,104,238,90,237,150,238,92,239,16,245,94,251, +253,252,44,253,191,255,157,4,157,7,107,4,7,2,13,12,156,28,30,34,123,23,212,5,235,246,89,238,56,236,208,241, +186,251,31,0,87,0,8,7,191,13,102,6,133,248,181,244,166,253,186,12,89,23,97,20,11,8,62,253,195,248,223,250, +242,253,97,249,69,240,74,238,53,248,231,7,6,15,216,7,121,2,12,8,178,9,90,3,153,1,139,2,163,255,5,254, +17,253,200,249,156,250,247,253,247,251,138,248,49,248,103,249,210,252,146,254,1,253,162,2,164,12,251,9,33,0,141,255, +115,3,84,3,151,1,175,253,185,248,36,251,25,6,24,15,57,10,84,249,237,239,45,246,147,252,133,254,59,4,71,5, +192,253,246,254,117,8,136,7,3,255,31,252,202,254,115,5,13,12,12,8,131,253,185,250,91,253,89,251,156,247,130,249, +6,0,16,5,6,5,221,0,217,251,55,251,37,2,163,9,244,9,90,8,36,8,178,0,122,243,231,238,103,245,36,253, +113,1,103,3,197,3,86,1,208,251,178,249,254,255,158,6,203,5,61,2,30,1,79,2,112,4,148,2,150,251,179,247, +36,248,240,245,143,244,152,249,52,254,46,254,32,254,29,253,112,249,59,250,109,2,245,9,229,11,150,12,82,14,108,10, +186,253,131,245,97,254,138,11,36,8,173,249,198,244,87,250,144,252,56,251,164,255,248,6,158,8,139,7,243,9,122,12, +198,9,69,2,55,250,211,247,22,252,29,255,250,253,141,254,136,255,252,250,41,246,225,248,218,255,142,4,203,6,125,10, +214,14,242,9,54,251,246,247,248,8,103,19,146,5,63,245,224,246,108,0,178,2,23,254,209,250,94,253,35,2,140,3, +162,2,135,2,181,1,67,255,251,255,50,8,17,18,169,17,65,7,129,255,234,253,19,254,109,3,208,11,199,7,170,248, +231,245,82,5,185,16,24,10,26,254,180,252,232,3,209,11,5,19,158,18,222,3,11,247,168,253,17,10,26,10,254,1, +22,250,94,248,129,0,65,3,93,245,121,237,233,249,84,4,96,2,32,4,105,10,65,8,215,255,54,252,4,0,20,4, +31,2,105,0,1,5,88,6,120,255,140,251,146,253,173,252,219,248,235,249,84,2,245,10,70,9,237,0,53,2,214,13, +196,18,84,8,175,247,181,242,134,254,225,5,104,251,23,244,108,253,42,7,16,9,127,8,110,5,192,4,241,8,162,5, +2,254,78,2,157,7,42,0,39,252,213,2,91,4,199,254,23,251,8,251,111,2,122,14,94,15,154,4,239,252,223,249, +12,248,123,254,97,12,63,18,137,8,31,252,59,253,16,7,188,6,31,251,85,245,236,250,156,2,130,7,26,11,49,12, +116,6,243,250,59,245,151,252,91,5,111,3,85,254,55,0,196,4,83,5,250,2,156,0,82,255,140,255,188,0,20,1, +49,255,251,252,13,254,73,1,202,1,232,254,178,252,49,254,96,2,135,3,96,253,108,248,117,1,151,15,195,11,44,250, +99,246,153,0,20,1,153,249,204,250,91,254,96,252,48,253,119,254,28,250,42,252,207,5,196,4,243,250,133,249,125,254, +162,255,180,252,210,249,95,252,93,2,82,1,193,252,109,255,98,1,193,251,130,249,42,253,219,255,121,3,24,6,31,2, +218,253,118,252,3,249,36,248,97,252,189,252,2,249,150,248,134,253,198,6,56,9,47,252,59,245,190,3,227,12,147,2, +249,252,18,2,195,1,229,252,201,248,104,245,120,250,131,5,52,8,7,5,64,4,116,2,198,1,138,5,71,5,251,0, +111,2,109,6,134,4,122,254,195,250,77,253,2,1,16,255,46,255,14,5,217,2,186,251,155,1,186,10,129,7,215,2, +171,1,33,253,126,253,242,2,191,255,140,254,200,10,95,13,83,253,7,246,77,0,7,9,219,8,123,5,126,2,150,1, +187,0,40,255,132,1,207,4,219,1,31,254,33,255,83,254,175,251,61,0,108,9,76,12,249,6,94,255,90,251,56,253, +184,0,177,0,54,255,188,255,154,0,27,1,132,2,50,2,85,255,44,255,24,2,16,3,68,3,186,3,236,254,245,248, +84,253,157,5,107,3,38,253,42,255,40,3,134,1,234,0,117,3,150,1,62,254,15,2,43,5,73,254,183,250,156,4, +76,11,23,4,188,252,76,253,76,1,224,6,30,7,15,253,196,246,106,251,48,254,176,254,126,4,148,6,164,2,113,3, +93,4,90,0,80,1,228,3,134,255,231,254,176,3,170,1,129,0,127,7,40,7,46,254,160,252,200,255,32,254,208,251, +225,251,114,254,89,5,217,9,4,6,26,1,39,1,164,4,242,8,61,8,27,0,210,248,217,248,96,254,159,4,191,5, +126,2,180,1,202,1,239,255,18,2,170,6,226,7,249,10,150,12,10,1,114,245,224,250,253,2,61,1,2,2,24,9, +147,10,190,2,200,248,90,247,88,0,107,4,14,253,185,250,183,2,144,6,211,3,135,3,21,6,156,7,118,5,52,255, +72,252,45,1,192,4,18,1,180,252,72,251,180,248,192,244,33,246,204,255,223,8,140,7,134,255,153,250,208,252,190,4, +247,9,93,4,95,252,203,252,12,253,100,246,79,245,168,254,39,5,219,2,111,255,242,255,20,3,239,6,134,9,2,7, +50,254,58,246,159,246,214,252,193,2,128,4,32,255,207,248,239,251,107,2,110,2,143,3,165,8,124,6,33,1,2,4, +193,5,189,254,111,252,180,3,153,6,200,255,220,249,49,253,150,4,104,5,141,1,143,4,178,12,254,11,150,255,21,244, +187,245,220,1,47,8,84,1,150,249,237,249,66,252,83,254,73,5,211,13,203,14,72,7,59,254,80,249,17,249,116,251, +235,253,158,253,174,250,89,248,95,248,46,253,70,7,248,10,181,0,163,249,244,1,61,8,182,2,229,0,205,5,211,3, +210,252,232,251,139,0,59,5,107,5,169,254,123,249,140,254,141,4,251,1,61,255,81,0,192,251,199,245,59,251,14,2, +165,253,238,252,148,6,79,5,229,248,134,249,30,3,221,2,25,0,10,3,110,3,13,2,170,1,56,252,182,248,111,254, +208,255,5,251,176,255,57,7,96,3,137,254,133,1,240,3,228,3,104,5,138,6,157,4,190,252,198,241,241,242,33,2, +67,8,43,252,15,243,141,251,24,8,52,8,69,2,17,4,141,8,40,7,211,5,7,3,130,247,17,242,178,251,105,255, +244,249,171,0,211,12,27,11,242,4,220,4,35,4,142,1,139,254,140,250,150,252,94,3,77,3,41,254,156,249,222,245, +59,252,66,10,139,8,230,249,171,247,162,254,23,0,228,255,105,255,152,255,100,8,3,12,161,251,188,240,119,254,36,12, +64,10,15,5,178,254,180,246,66,249,118,3,100,4,38,254,48,254,65,2,21,1,230,253,12,0,173,3,218,3,236,5, +54,10,108,7,121,255,205,251,198,250,209,250,167,254,167,253,129,245,30,249,170,10,61,17,114,7,235,255,203,254,53,252, +220,249,121,251,134,255,188,3,80,4,19,1,220,0,67,3,222,0,78,254,140,3,77,8,101,4,238,254,94,252,224,250, +176,255,206,9,26,10,8,255,137,249,145,254,103,3,17,3,229,0,110,255,99,254,252,254,170,5,169,13,185,8,210,251, +150,250,98,255,84,251,86,251,83,7,32,11,10,2,138,253,107,255,35,255,17,254,102,0,142,6,98,8,21,253,30,243, +140,250,166,2,219,254,125,254,186,2,177,1,163,3,230,6,51,0,156,253,81,6,135,7,81,3,171,4,47,253,102,240, +45,248,151,9,14,10,217,1,154,255,84,255,142,254,129,0,180,6,121,11,161,1,2,240,46,241,100,0,61,0,124,245, +135,250,52,12,58,16,100,252,173,232,19,242,136,10,239,14,80,2,114,251,250,251,25,0,167,4,205,0,112,252,141,3, +153,8,191,3,203,0,183,252,17,245,13,250,253,5,162,4,171,255,76,2,154,0,60,252,153,0,194,5,90,6,166,7, +116,2,201,244,132,242,85,2,121,15,131,12,201,4,200,5,206,8,226,255,126,243,129,248,67,9,18,13,128,2,211,251, +6,252,108,251,43,254,37,7,129,11,139,8,31,7,159,4,188,253,208,254,129,7,209,5,152,253,104,255,165,2,136,252, +152,250,172,3,38,10,32,8,133,4,0,3,211,3,138,5,12,1,126,244,21,239,169,251,100,7,216,255,215,247,254,1, +137,11,61,6,197,0,0,1,39,255,128,252,55,251,91,252,35,3,47,7,22,6,105,14,214,20,167,2,28,241,90,249, +121,255,39,249,168,2,202,19,133,16,86,5,194,3,12,4,97,3,223,3,139,2,20,5,242,11,78,8,29,252,246,250, +8,3,61,2,209,252,52,5,43,18,218,9,181,246,205,248,128,8,141,10,221,5,215,7,229,5,54,254,225,253,193,4, +81,9,127,5,180,251,133,250,114,3,151,2,220,249,65,254,119,8,48,8,65,5,190,4,178,2,26,4,28,5,152,254, +64,0,42,14,141,14,148,255,144,250,200,255,7,2,45,5,2,8,134,2,132,0,202,10,243,13,35,0,68,247,237,255, +168,9,3,7,109,253,32,248,108,254,223,9,25,10,255,0,182,255,18,4,96,2,116,0,0,3,25,4,177,6,147,10, +159,4,96,251,186,252,52,0,83,1,3,11,68,18,204,4,39,243,163,243,77,254,108,5,129,6,245,255,73,248,97,253, +124,9,235,7,252,252,109,1,227,16,212,12,200,244,254,231,45,242,207,3,88,12,33,3,167,241,165,239,43,253,215,4, +202,8,44,21,99,24,4,3,24,238,246,243,69,6,124,10,170,3,231,2,174,2,245,245,190,234,85,245,150,12,44,25, +64,17,74,252,234,237,153,241,138,251,64,1,215,7,111,12,56,6,68,252,88,247,12,245,20,248,107,4,90,14,51,9, +33,252,248,247,186,255,45,6,90,5,179,6,139,9,211,0,205,243,85,247,54,6,243,9,251,255,222,246,137,248,146,4, +45,14,69,7,31,250,153,252,241,6,123,3,77,252,242,2,147,8,253,1,18,0,155,3,215,251,220,242,29,249,246,2, +48,6,195,6,72,0,36,246,76,251,126,9,142,5,151,243,251,239,98,253,106,4,93,251,227,241,15,245,214,252,198,254, +116,254,111,1,6,6,133,7,239,1,91,249,87,248,142,254,182,2,79,3,34,1,170,249,61,243,6,248,48,4,66,10, +120,4,30,252,218,253,80,5,45,4,227,252,115,252,219,0,90,253,79,239,35,229,84,239,169,5,83,14,145,6,22,0, +230,251,112,243,240,241,135,0,106,16,146,11,104,241,231,221,54,232,3,0,230,9,75,9,187,9,248,2,148,242,70,235, +73,248,48,11,217,14,166,1,96,243,197,236,105,235,156,240,171,252,114,5,235,2,38,249,85,243,227,250,78,10,20,16, +141,8,240,255,218,249,97,243,186,242,201,250,226,1,17,4,49,5,40,255,232,239,28,238,182,4,159,19,215,4,145,244, +98,250,84,5,188,4,37,252,32,244,136,246,187,255,44,254,208,247,103,254,66,5,47,2,27,7,248,14,102,1,54,235, +186,229,117,237,241,250,175,9,150,11,199,2,39,1,64,5,187,5,199,5,198,0,183,237,197,219,111,224,97,244,218,2, +223,9,158,15,109,13,56,2,36,254,208,3,36,5,3,3,221,0,152,242,71,222,170,221,158,241,154,7,69,21,61,19, +123,5,60,255,70,1,12,254,251,251,111,1,7,0,185,243,72,236,125,243,138,3,198,13,177,11,51,7,220,2,138,248, +166,245,34,4,233,12,119,2,8,248,20,249,99,0,139,9,125,11,131,4,96,2,190,0,181,240,30,230,164,247,145,12, +21,11,230,4,149,9,65,11,236,4,246,1,237,1,220,254,78,250,36,242,191,233,7,242,240,6,23,15,28,13,34,18, +164,16,34,255,88,246,89,255,20,5,157,0,161,250,154,246,220,248,154,1,1,7,177,6,199,5,82,4,206,3,171,6, +178,8,224,6,83,1,254,248,64,246,253,252,174,1,171,0,130,4,63,12,39,14,151,11,149,9,53,7,16,4,82,2, +141,1,81,254,82,251,183,0,149,6,14,253,3,242,67,252,242,13,147,17,206,10,212,253,243,240,253,245,156,4,69,4, +123,254,195,1,141,0,135,250,54,255,107,7,239,8,248,9,158,9,121,4,24,2,236,3,201,4,199,3,97,255,38,252, +249,2,6,10,133,3,33,251,201,254,135,5,151,4,232,0,112,3,135,9,96,7,214,253,41,252,188,3,149,7,214,5, +44,5,94,7,73,9,224,2,247,245,193,246,228,6,215,11,213,2,25,2,142,6,152,3,225,5,154,15,7,9,167,244, +43,242,134,3,181,11,110,2,83,249,237,251,208,6,165,13,148,6,85,252,159,254,193,2,208,252,214,252,156,7,41,7, +135,251,48,250,245,1,214,5,120,6,120,6,175,4,241,255,200,248,53,251,203,11,125,16,65,254,195,245,172,3,139,10, +242,1,199,254,122,4,142,6,250,2,253,1,221,8,240,13,26,4,247,246,181,252,90,13,96,14,20,0,131,251,157,4, +194,2,1,243,252,243,212,10,17,22,51,9,143,250,176,250,46,5,88,10,89,4,59,4,197,12,27,5,10,243,231,245, +192,3,68,6,55,9,209,12,152,2,210,250,244,254,122,253,205,0,71,21,71,25,86,3,94,252,1,8,174,6,28,0, +138,6,194,8,47,254,25,249,142,251,97,251,48,1,142,16,248,21,166,14,43,14,198,13,110,250,30,235,181,250,46,13, +101,4,27,246,85,249,131,2,116,7,128,9,164,5,233,1,65,9,124,13,100,253,160,238,35,250,122,10,141,5,77,252, +139,0,70,5,175,4,7,6,18,3,209,251,44,253,149,255,117,249,225,251,196,9,212,11,180,1,120,253,216,254,129,255, +188,254,237,249,23,248,214,1,203,9,92,4,189,254,138,1,8,4,137,4,44,7,30,5,191,249,190,240,108,243,7,251, +188,2,109,11,186,10,101,254,183,252,223,6,122,1,212,242,168,245,131,253,115,250,94,250,106,251,219,244,18,250,110,10, +183,9,17,1,196,6,106,8,177,249,76,241,52,248,50,255,76,252,194,242,145,240,214,252,137,8,240,8,225,5,92,2, +17,254,242,254,56,2,114,3,120,6,178,3,176,245,4,242,237,255,53,3,73,246,254,244,50,1,240,2,40,250,178,249, +203,3,150,11,104,7,50,248,64,237,42,245,83,2,157,253,126,242,156,248,187,4,181,4,211,2,116,6,161,6,168,4, +92,3,156,252,136,247,207,252,27,0,25,253,111,1,125,9,230,7,48,3,54,2,192,254,75,253,50,4,156,3,234,244, +90,242,165,3,173,7,217,246,47,244,219,5,61,15,55,12,233,6,219,251,89,244,68,251,60,0,232,255,224,8,150,7, +249,238,231,233,69,7,73,20,70,2,125,251,0,8,83,8,244,248,209,242,10,253,70,5,18,255,87,245,94,246,37,255, +96,3,51,0,28,2,115,14,153,15,11,252,249,243,231,3,29,9,86,252,113,252,126,7,70,5,234,250,3,248,195,253, +197,5,131,5,241,254,129,0,103,2,115,248,201,247,63,9,217,13,176,253,204,244,53,251,233,2,187,4,33,0,35,252, +228,255,64,1,215,250,235,252,56,8,104,7,193,253,127,2,104,15,202,11,48,252,7,248,92,0,42,5,34,2,202,253, +111,252,58,254,9,0,118,0,50,2,224,2,241,255,173,1,63,9,65,9,171,1,227,254,251,254,79,251,174,247,201,247, +138,253,136,6,103,5,101,250,242,249,87,4,130,7,151,6,13,12,50,16,25,11,253,251,22,228,198,211,200,221,218,246, +77,4,176,0,133,250,206,251,15,1,154,5,214,11,61,18,219,15,193,1,75,239,155,229,53,237,37,251,109,1,106,6, +238,10,251,0,126,244,163,251,213,7,228,7,244,7,24,11,17,7,188,254,135,244,68,235,131,240,32,254,158,1,154,4, +41,15,151,15,171,6,51,5,213,5,20,3,134,3,176,1,1,253,170,1,218,7,28,3,49,254,88,253,204,249,202,253, +59,11,166,11,91,254,176,251,207,3,207,4,111,1,180,5,179,11,31,7,172,250,17,243,16,246,6,254,127,2,124,2, +60,4,169,7,156,3,209,249,239,249,175,5,135,10,88,255,57,241,37,238,222,243,157,249,27,255,176,5,201,5,179,253, +166,250,95,2,213,10,56,14,46,14,227,9,184,2,96,253,154,250,171,250,75,255,4,5,239,6,140,6,118,6,133,4, +114,0,125,0,142,6,30,10,222,6,173,1,154,250,228,241,126,241,188,249,145,254,145,255,82,0,155,252,2,252,51,7, +246,14,79,10,247,6,78,6,4,1,104,254,114,253,183,244,5,241,254,253,117,11,19,13,84,9,239,4,73,2,73,4, +104,6,75,4,208,0,240,254,118,254,152,253,119,254,28,6,8,12,186,4,239,253,180,3,135,4,86,252,105,255,191,8, +179,7,227,6,169,10,144,4,68,252,12,0,33,4,71,2,54,5,78,7,43,255,188,250,93,4,87,15,217,16,169,10, +25,0,64,249,246,255,159,10,243,5,137,250,186,0,39,16,38,13,106,253,189,251,64,7,224,9,89,255,227,249,237,4, +103,17,210,12,69,1,249,0,94,5,157,4,136,5,1,7,35,0,28,250,223,254,181,4,231,6,49,11,203,10,150,2, +60,3,40,12,76,6,11,248,184,252,146,10,50,7,178,250,146,246,46,250,152,7,219,24,246,19,19,253,84,249,208,5, +223,0,6,244,200,251,201,9,56,7,193,1,61,7,21,10,23,3,247,255,78,6,11,13,81,14,23,6,232,244,107,238, +239,254,28,15,25,12,142,3,116,254,164,251,105,4,48,16,4,8,79,250,225,254,122,4,100,253,248,250,199,1,128,9, +173,15,46,7,218,241,200,242,221,9,197,11,67,250,128,250,163,5,90,4,104,2,237,8,225,9,41,4,32,1,223,253, +90,250,77,252,100,252,254,247,212,253,100,8,32,2,199,251,165,14,213,27,204,5,30,241,120,249,47,0,242,246,164,245, +238,254,146,2,120,255,221,250,51,252,135,9,15,17,46,2,126,244,176,253,48,7,18,254,28,246,193,252,30,1,247,249, +148,244,210,247,138,252,229,255,77,3,127,4,245,2,121,0,17,254,193,254,90,0,191,251,3,248,40,255,1,4,113,251, +238,244,203,249,153,254,129,255,130,2,226,5,231,2,245,248,155,243,162,252,227,5,76,255,180,244,157,243,203,248,249,1, +149,6,173,253,66,250,255,4,196,1,59,242,96,246,27,2,41,255,182,255,216,3,16,247,161,239,240,255,219,5,16,245, +235,239,80,253,101,2,155,250,188,248,77,2,120,8,157,1,58,247,127,242,224,242,149,249,132,2,76,3,26,255,22,252, +206,246,57,246,11,255,50,0,40,250,68,1,253,8,235,253,1,245,42,251,71,251,70,243,115,245,41,255,179,3,116,1, +134,252,34,251,63,252,40,247,241,243,18,2,65,18,181,9,155,242,97,236,100,249,217,1,172,255,50,2,92,8,32,2, +66,245,198,243,80,251,13,3,118,12,128,17,254,6,9,244,114,234,196,241,20,5,50,22,53,21,211,1,10,238,67,233, +160,242,108,2,52,18,219,23,152,12,205,251,108,246,34,253,105,5,218,5,153,251,247,240,65,241,221,247,122,1,187,19, +202,32,192,17,126,244,221,236,126,253,84,8,249,254,31,244,79,247,95,251,228,247,57,255,74,21,184,31,38,18,195,252, +160,241,218,245,35,253,111,250,111,250,228,6,218,8,60,249,124,244,118,254,67,0,102,253,151,3,157,8,212,3,71,253, +194,250,38,254,47,7,23,12,105,5,168,250,101,246,72,251,250,5,11,12,45,1,151,237,219,237,83,6,131,21,145,12, +164,3,31,4,97,255,94,248,214,248,126,250,217,252,59,2,66,255,6,248,89,254,82,5,142,250,50,243,50,255,64,5, +241,247,125,239,50,248,216,0,87,1,142,2,82,2,149,250,161,245,247,246,61,244,7,247,196,8,59,13,86,248,106,239, +44,0,118,13,23,13,74,6,247,250,65,249,65,3,175,255,159,243,27,251,140,6,20,254,190,244,174,248,87,254,237,4, +245,11,72,8,153,0,188,1,223,1,253,247,92,241,234,249,92,7,108,9,13,4,103,4,122,6,15,5,15,7,36,6, +181,251,115,250,252,3,165,0,113,249,155,1,193,6,12,2,180,4,174,2,124,244,163,245,54,0,170,245,79,234,106,249, +183,11,60,12,237,4,23,1,189,7,223,16,252,6,216,244,50,246,93,253,44,246,116,244,40,4,193,15,232,11,170,2, +40,253,5,254,3,1,120,0,106,255,89,3,248,10,237,12,29,255,159,236,170,238,159,0,95,8,181,5,107,4,27,0, +57,250,3,253,130,7,111,22,116,31,125,13,70,239,175,238,233,0,142,253,154,243,234,1,212,19,82,17,104,7,217,0, +129,251,128,252,156,3,110,7,4,8,117,7,49,0,41,246,13,246,155,254,241,4,128,7,112,7,44,0,192,247,236,255, +23,21,200,26,177,9,60,251,0,252,33,255,111,0,11,6,146,9,230,3,7,253,171,252,174,0,112,4,133,2,212,250, +15,248,124,254,52,3,158,0,167,254,84,3,26,10,216,7,41,250,55,242,69,250,115,0,213,251,93,255,193,12,104,14, +147,6,114,7,228,11,37,7,46,253,20,247,142,251,170,10,42,19,159,6,97,244,33,243,239,254,249,5,55,7,121,13, +41,19,115,7,31,242,24,239,232,1,126,17,0,14,179,255,24,247,57,249,117,252,1,254,155,7,129,19,240,14,19,254, +230,245,42,251,9,2,100,255,237,246,194,250,113,11,6,15,69,255,77,245,244,252,193,9,11,14,129,4,156,247,26,248, +141,0,226,1,65,1,248,6,75,12,123,10,177,1,177,248,38,250,184,0,177,253,160,248,225,255,96,10,230,10,31,4, +158,254,42,0,202,3,202,254,24,247,37,249,5,0,99,3,234,1,126,252,207,254,166,10,14,7,174,247,92,1,196,21, +248,9,218,243,213,251,12,15,77,15,222,0,187,243,95,245,89,0,127,252,104,241,145,253,43,18,11,13,250,251,123,252, +79,7,35,7,135,252,165,246,5,247,40,243,146,242,69,0,53,8,230,252,87,246,133,254,27,5,131,9,163,11,187,0, +230,246,29,252,37,254,119,250,171,0,70,1,31,243,242,242,254,2,55,5,95,253,78,1,171,8,176,4,120,252,219,252, +171,4,247,4,40,249,104,243,27,252,236,2,62,0,175,252,139,250,214,248,6,250,54,253,100,1,255,3,188,254,4,249, +251,255,74,7,227,253,24,243,203,250,235,8,15,8,117,251,209,248,154,6,94,14,247,1,197,246,170,251,100,254,248,249, +120,1,212,12,188,4,106,249,200,3,207,15,139,5,4,247,199,246,157,248,212,246,161,255,28,17,56,21,172,6,212,251, +204,6,119,25,78,23,163,0,112,242,34,245,220,240,246,224,137,229,94,7,118,28,248,13,8,0,218,8,200,8,73,244, +119,238,221,254,23,6,163,252,205,243,246,241,136,246,26,254,220,1,231,6,234,14,46,8,142,246,170,248,91,9,150,7, +108,249,32,249,167,254,243,249,199,246,163,255,134,7,247,3,247,252,101,251,221,254,25,4,239,3,162,249,249,243,62,0, +161,10,28,2,89,251,158,1,217,0,80,248,242,248,31,251,199,246,35,249,201,0,75,1,160,3,90,13,162,14,108,5, +140,0,56,0,172,252,60,248,209,244,47,241,157,243,238,255,94,11,42,12,204,6,237,0,154,252,213,0,72,10,158,4, +10,242,199,240,117,2,60,9,158,0,226,250,219,249,96,248,27,250,92,0,71,9,177,16,145,12,165,253,15,244,51,247, +30,0,93,5,114,255,32,244,189,244,125,1,124,8,185,3,191,252,129,252,54,4,13,11,42,8,239,255,18,251,48,251, +27,254,149,0,93,2,150,5,181,4,21,253,82,250,70,254,184,254,165,0,60,6,82,0,186,246,68,254,64,6,90,252, +48,246,24,254,68,0,148,252,151,1,5,8,71,4,161,253,53,0,90,9,64,8,252,248,186,240,46,250,212,5,76,9, +116,5,14,251,59,246,95,0,123,8,3,3,234,254,133,1,207,255,10,252,83,254,75,2,136,3,251,4,223,5,128,1, +211,251,195,255,53,10,235,10,154,2,28,255,33,253,33,247,137,248,234,0,68,2,50,1,250,3,191,255,18,249,3,0, +100,8,183,1,82,250,144,253,130,254,164,249,49,249,55,250,29,248,48,253,84,8,148,7,168,254,214,0,145,6,69,1, +3,254,142,4,180,6,6,4,216,2,85,251,227,244,97,254,111,5,148,251,201,247,121,255,255,251,29,243,134,247,237,252, +32,247,233,243,101,250,7,255,208,252,176,251,129,254,141,253,74,248,175,249,158,1,103,3,114,253,163,248,171,249,103,255, +26,3,177,2,204,6,18,10,127,254,214,244,221,254,15,4,147,247,171,245,152,2,223,5,116,1,183,0,125,253,112,250, +147,255,49,5,180,4,0,254,110,242,213,241,21,3,132,10,205,252,42,249,79,8,6,11,43,251,182,244,19,0,65,10, +236,7,194,255,161,250,229,249,224,250,47,253,55,2,98,5,78,254,221,243,208,249,102,11,184,11,96,252,29,253,181,11, +186,9,214,251,107,250,220,253,19,249,110,249,7,2,78,2,39,255,63,6,123,9,201,254,177,248,76,253,130,255,167,1, +166,6,158,2,153,250,231,252,227,255,102,252,27,255,174,5,36,3,95,252,135,247,117,244,7,251,87,9,183,14,160,8, +97,0,25,251,35,253,100,0,144,249,136,244,144,252,87,0,18,253,90,6,218,15,71,2,35,243,2,252,246,8,83,3, +53,250,255,0,78,11,45,5,190,249,183,254,244,9,219,5,233,249,185,249,6,4,145,5,88,245,193,236,213,4,44,28, +46,10,38,242,211,253,82,10,51,251,176,244,253,3,183,5,250,244,118,239,125,252,195,10,133,11,166,0,35,252,148,3, +188,3,228,248,224,250,217,10,148,10,208,245,14,238,116,0,67,17,58,13,140,3,46,2,7,0,121,246,110,240,161,246, +46,1,81,2,175,249,169,247,80,5,29,18,218,12,178,255,18,252,32,255,137,254,111,250,118,247,245,248,145,255,53,5, +64,5,210,3,241,1,42,253,41,253,108,6,224,11,177,6,141,1,121,255,62,250,15,247,77,252,211,1,10,1,10,0, +78,2,201,1,48,252,118,249,228,255,185,8,3,8,193,254,7,251,64,1,92,4,72,0,31,3,241,11,16,7,95,247, +184,242,232,248,207,251,107,249,125,245,63,247,8,3,105,8,51,255,196,254,252,10,40,10,187,255,67,253,241,246,138,235, +64,241,153,1,12,7,250,7,20,14,27,16,176,6,48,250,147,252,55,12,110,9,83,240,37,233,162,249,235,254,4,251, +27,7,155,23,49,20,132,0,176,243,241,252,25,12,217,6,85,247,166,246,207,255,245,2,13,253,88,244,37,249,151,11, +88,15,180,1,245,252,108,253,240,248,82,2,31,18,150,7,143,241,27,242,244,252,64,251,191,244,22,247,101,3,32,16, +196,14,98,0,79,247,210,250,2,1,180,3,109,5,84,4,93,252,213,247,68,2,108,11,54,1,168,246,47,254,33,5, +100,0,226,0,115,7,138,5,85,1,58,4,212,3,206,252,110,253,106,7,134,12,7,9,41,3,28,253,232,251,233,2, +161,4,37,250,194,245,131,254,108,3,241,0,118,2,17,9,228,15,226,16,38,8,118,0,168,255,110,250,88,245,194,251, +34,255,230,250,166,0,234,7,234,3,203,7,142,19,65,13,46,252,160,246,90,250,72,2,198,8,235,1,152,247,31,250, +20,255,177,252,153,251,104,255,77,4,111,5,207,255,134,253,8,5,119,8,202,0,9,246,53,238,93,242,29,2,253,8, +36,6,88,10,213,11,235,1,50,254,123,1,182,0,4,3,233,3,158,247,178,239,139,248,65,1,26,2,29,0,191,252, +93,254,235,4,17,6,106,2,62,253,128,247,52,251,8,3,141,253,83,246,55,249,22,246,16,240,175,247,37,1,59,6, +123,14,112,12,65,1,208,4,36,10,134,253,3,246,249,252,59,252,9,245,81,246,61,253,23,1,102,252,196,250,227,14, +133,30,120,7,46,240,132,1,164,19,226,3,80,241,25,242,89,247,152,250,31,255,10,255,46,249,41,251,242,10,235,19, +102,5,37,244,5,247,124,1,135,1,43,249,107,242,71,246,159,254,139,250,51,243,129,250,69,0,88,250,74,255,96,11, +14,3,142,242,246,243,100,252,72,252,178,250,77,252,181,252,186,251,164,250,233,249,235,253,200,7,241,12,210,5,86,252, +165,249,176,248,30,248,103,250,0,250,179,250,33,4,169,6,162,251,186,252,87,13,54,17,40,5,188,250,89,246,45,248, +189,253,187,255,45,1,92,3,220,0,211,2,115,10,214,3,4,246,29,249,255,0,186,253,26,253,27,1,191,252,110,247, +179,253,201,8,237,7,241,247,78,242,85,7,129,23,163,11,173,254,183,254,92,249,60,241,18,245,75,253,211,254,39,251, +106,252,29,11,23,24,50,16,29,3,98,3,120,5,106,0,119,248,66,240,238,241,198,254,57,1,112,248,1,253,153,11, +17,11,220,251,228,244,92,254,182,4,91,251,87,246,219,253,113,251,148,242,147,248,177,254,250,247,242,244,73,245,5,246, +24,7,133,22,160,6,68,242,158,246,10,1,182,5,31,10,83,7,34,254,155,246,9,239,166,240,236,1,53,13,118,8, +119,2,63,253,61,248,245,253,188,7,118,6,187,253,94,245,198,239,72,240,240,246,126,4,130,22,17,27,236,10,15,250, +139,243,7,241,163,244,155,254,1,2,95,250,151,241,188,242,173,255,1,11,113,11,231,12,15,18,230,7,110,241,227,236, +75,254,86,7,109,252,194,245,56,255,158,2,221,247,157,247,49,6,51,9,235,253,111,250,82,254,134,249,108,242,144,249, +73,5,107,0,203,244,17,249,158,1,108,252,29,250,198,3,112,2,66,243,194,238,220,249,176,5,146,8,77,2,151,252, +8,254,232,253,95,248,4,247,205,252,166,2,255,1,196,253,71,2,84,11,194,6,139,255,149,6,177,5,211,243,201,238, +181,247,152,250,198,1,198,13,9,10,134,2,79,7,236,7,28,2,245,1,65,253,251,243,123,247,33,254,38,248,33,242, +139,247,48,3,69,13,109,11,169,254,118,252,50,10,25,14,39,253,138,242,91,0,161,11,170,253,252,241,12,255,53,9, +18,254,3,247,18,5,226,21,64,16,149,247,69,239,227,255,82,2,175,244,244,254,196,13,162,249,251,233,24,3,237,23, +97,8,255,242,107,242,53,1,228,10,217,2,147,250,216,0,173,2,53,249,180,247,79,254,198,2,208,7,168,7,232,252, +146,248,197,3,119,13,2,7,132,247,202,241,20,250,23,1,208,2,40,6,168,3,79,252,184,0,73,8,115,4,17,3, +19,4,113,248,243,243,76,3,144,7,1,252,219,252,18,2,186,250,83,251,171,9,146,10,57,253,244,250,210,4,172,9, +148,6,233,0,88,250,66,249,157,1,224,4,123,249,250,243,57,3,224,16,74,9,103,253,93,1,2,11,147,7,4,255, +254,4,100,14,17,3,84,242,37,249,168,9,41,9,146,255,60,254,178,3,81,8,155,7,14,3,121,3,164,8,71,4, +233,244,10,241,236,3,231,19,157,10,115,252,79,254,238,0,149,252,247,254,39,3,49,1,241,3,186,5,140,251,38,250, +184,10,96,19,207,10,76,253,75,242,224,243,250,254,55,255,134,252,2,8,87,12,98,255,130,252,208,4,169,2,255,251, +217,248,106,243,10,246,228,4,219,7,23,250,190,247,195,7,205,15,119,4,96,249,141,251,80,1,142,3,232,1,112,249, +133,245,84,3,236,14,198,6,94,255,26,0,230,245,212,235,6,250,222,13,167,9,81,248,131,248,77,11,0,18,66,3, +21,251,106,255,17,250,206,243,57,253,84,2,243,251,124,254,79,4,142,0,193,0,216,6,181,5,70,2,202,2,46,3, +125,3,167,0,49,251,84,254,216,2,184,252,114,253,173,8,222,2,70,242,245,246,112,8,104,12,58,6,196,3,209,5, +18,3,152,245,194,235,31,245,200,3,46,6,57,2,201,253,171,248,224,252,223,11,246,16,243,1,245,243,214,250,156,6, +236,254,143,242,234,251,179,11,207,8,236,255,85,2,226,6,231,4,43,1,189,255,21,0,50,253,41,246,183,246,107,0, +50,2,98,253,132,4,11,14,63,5,29,249,32,254,166,5,110,2,249,1,235,6,90,2,215,244,109,234,125,235,121,253, +196,14,5,4,215,244,231,7,42,26,249,254,27,226,207,243,126,15,144,10,105,246,160,239,118,248,162,3,109,5,127,2, +63,3,28,1,166,250,204,250,38,254,188,250,92,248,250,255,169,8,118,5,126,249,54,247,86,3,140,7,198,249,116,240, +89,249,153,5,143,6,77,255,217,251,109,254,230,251,106,246,13,252,164,2,28,252,156,250,45,7,78,11,132,3,187,0, +200,0,156,254,89,0,194,1,211,254,121,255,81,0,247,249,56,249,113,6,13,16,205,8,239,251,122,246,232,247,85,254, +111,7,95,7,46,252,203,248,150,1,63,6,79,7,106,9,54,255,189,239,252,242,206,254,247,0,230,1,181,1,38,253, +61,4,146,13,69,1,251,246,27,2,96,2,135,243,15,247,27,3,232,255,115,255,52,9,156,7,210,252,208,249,126,251, +42,252,138,255,35,5,75,8,168,6,95,3,189,4,207,7,146,3,63,250,167,244,230,245,88,253,107,5,39,6,43,2, +13,2,62,5,107,5,63,1,83,253,252,251,188,248,90,246,67,0,106,12,135,4,80,246,222,252,38,10,21,9,222,6, +153,9,128,2,44,249,251,254,250,8,182,6,127,251,74,242,46,246,208,5,197,10,86,254,118,248,209,255,160,2,83,0, +174,255,149,250,5,247,71,254,0,1,36,250,215,253,53,9,18,10,29,8,180,7,23,252,226,241,34,251,246,4,241,0, +201,254,200,0,252,252,74,253,250,6,94,9,249,255,158,251,224,2,26,6,242,249,159,240,208,253,69,12,66,2,208,245, +249,254,247,8,40,4,98,2,39,8,63,4,91,244,10,231,14,235,5,4,133,26,214,15,53,240,47,231,89,253,232,16, +51,14,203,2,205,251,212,246,175,242,230,244,196,254,236,7,91,6,203,253,142,252,252,1,124,1,67,255,143,3,21,3, +179,250,132,250,155,0,141,254,173,251,217,0,255,3,199,1,196,1,155,3,191,4,213,5,170,5,75,5,150,4,32,1, +2,2,77,10,233,10,145,255,60,248,69,250,65,255,154,3,15,2,77,252,155,250,211,246,103,240,8,251,238,14,178,12, +82,254,145,255,139,3,109,250,224,243,203,246,214,247,170,247,16,254,133,7,253,9,230,4,63,5,188,11,209,4,191,244, +165,246,177,0,191,248,255,241,227,0,47,11,222,3,23,3,250,8,58,1,14,248,112,1,99,14,21,12,164,3,6,2, +122,5,129,8,157,6,86,255,42,253,152,5,244,10,190,4,181,253,85,252,20,254,203,3,159,6,252,252,148,244,3,253, +191,6,85,0,86,245,77,246,230,1,48,12,24,11,62,1,140,249,182,245,117,244,148,253,245,13,187,16,198,1,15,247, +54,252,138,3,200,255,226,245,42,243,224,251,103,5,92,6,173,6,3,12,208,7,70,249,142,250,189,9,229,5,160,245, +164,249,218,5,201,0,176,249,18,255,211,4,250,6,197,5,14,250,5,240,163,248,135,6,35,9,182,5,229,0,24,252, +229,253,74,2,60,1,246,0,102,2,158,250,203,241,123,250,172,9,178,8,131,255,155,255,180,0,121,250,253,250,190,4, +30,5,207,252,89,254,20,7,251,8,75,7,129,6,199,255,83,247,220,250,46,4,81,2,96,251,187,254,245,3,102,255, +103,252,175,1,9,5,91,7,85,11,170,3,119,244,202,244,24,255,222,254,232,250,130,253,173,253,136,250,235,254,189,7, +254,7,228,255,46,252,14,254,3,250,78,246,167,0,43,7,233,248,162,238,223,247,228,255,79,1,132,6,243,7,150,2, +207,255,165,253,154,251,234,254,83,2,85,6,92,12,67,3,31,241,157,245,217,3,21,253,237,245,186,255,23,0,72,244, +199,245,246,0,30,5,241,0,127,246,229,240,47,252,43,7,43,254,165,240,95,242,229,253,213,7,11,12,32,8,123,253, +134,245,111,250,165,6,189,7,58,254,48,254,74,6,237,2,79,247,96,242,162,240,209,239,136,250,223,11,139,16,22,6, +195,250,52,248,7,251,182,248,246,240,178,239,109,245,211,250,205,4,206,12,89,254,179,235,193,246,93,8,249,255,207,244, +36,245,235,234,106,227,152,248,88,14,219,9,177,0,89,1,53,3,111,5,104,3,175,246,253,239,101,251,176,5,116,0, +125,249,145,253,34,5,153,7,33,9,204,8,58,253,7,241,4,248,148,4,43,254,212,240,242,242,197,254,37,7,233,11, +101,12,182,3,118,248,135,249,219,0,70,250,200,241,250,253,30,7,74,250,9,252,159,19,85,17,27,246,173,239,242,253, +115,7,85,7,201,253,88,246,4,0,134,9,135,5,166,4,144,1,64,241,71,242,43,12,20,19,62,0,134,248,147,0, +246,4,144,3,241,2,194,6,98,9,138,254,200,241,14,251,106,12,110,10,170,1,152,6,198,12,73,7,113,0,27,0, +150,0,151,254,5,255,133,4,62,8,53,6,4,8,95,15,108,12,233,0,197,0,100,3,4,245,159,233,117,247,95,10, +16,16,180,15,116,10,89,3,119,6,122,10,228,1,174,248,145,247,20,252,87,7,134,8,132,243,225,234,240,0,193,15, +123,9,160,5,201,0,157,245,125,248,108,5,223,6,176,2,163,1,156,254,202,253,162,2,161,5,77,4,180,255,116,251, +236,255,238,6,14,4,28,255,5,0,92,1,173,5,132,10,58,0,208,240,234,245,80,7,140,15,114,16,125,12,19,0, +199,249,239,3,159,8,189,250,186,243,144,0,42,9,111,6,184,9,139,11,12,0,135,250,48,0,150,252,75,245,244,248, +134,253,33,3,220,15,174,14,173,252,179,248,18,2,146,0,109,251,87,254,107,255,83,254,131,2,102,5,143,0,107,249, +47,250,139,5,160,11,117,2,170,253,38,5,210,2,122,249,35,0,168,7,139,253,42,251,232,7,193,3,138,246,119,1, +60,12,50,250,59,240,59,1,132,6,119,253,176,3,244,9,178,1,16,1,228,1,167,244,30,245,184,6,182,4,77,249, +123,1,193,6,236,250,100,248,150,1,134,3,221,0,17,0,199,255,44,2,228,2,75,253,244,250,74,0,78,4,138,3, +248,1,26,1,181,254,128,250,123,251,207,2,244,4,151,2,19,6,104,7,242,1,165,3,70,7,40,0,18,255,180,7, +53,0,187,240,4,246,150,0,200,250,83,247,151,0,143,5,38,5,253,6,105,1,239,244,53,243,234,250,109,255,102,3, +92,5,229,254,11,255,105,10,21,7,47,249,72,255,160,9,73,255,57,249,253,2,4,5,187,4,42,12,218,6,80,250, +230,252,177,254,145,247,101,251,231,0,217,251,199,0,210,11,16,6,72,254,40,0,84,251,38,248,160,3,117,7,2,254, +120,254,125,5,124,4,136,2,247,255,98,249,218,253,144,9,247,3,134,249,129,2,231,8,39,252,9,249,146,5,190,7, +160,5,153,10,117,2,144,242,248,246,160,1,148,0,73,4,189,7,76,253,110,254,26,13,163,5,203,245,109,254,200,6, +178,251,19,247,44,252,180,252,30,4,136,15,19,7,187,246,7,250,112,5,232,3,5,255,194,2,249,4,138,255,133,252, +237,252,139,249,111,249,99,1,111,5,209,4,169,7,177,4,99,250,95,251,116,4,192,2,95,253,221,0,229,4,149,3, +29,1,147,254,209,253,190,255,255,255,202,255,190,2,97,3,223,253,115,249,166,252,116,3,219,5,218,3,26,3,130,3, +104,2,215,255,106,251,221,250,170,3,99,7,188,252,96,248,155,2,99,7,182,2,36,254,170,249,241,252,20,8,7,4, +142,247,50,1,131,15,108,5,59,249,104,252,42,253,183,252,242,4,176,6,203,255,122,0,227,2,60,255,15,1,91,5, +24,1,101,0,222,6,215,1,35,248,129,255,0,9,164,1,121,251,171,0,59,1,130,254,241,2,33,5,7,1,31,255, +47,254,30,255,198,5,81,7,238,2,83,6,181,8,34,0,244,253,7,5,184,4,87,0,72,254,100,252,84,3,136,11, +205,0,19,248,186,5,80,9,168,248,199,247,10,3,107,254,116,251,12,10,130,15,182,2,122,252,97,2,179,3,87,254, +177,251,239,250,96,251,77,4,177,12,128,3,20,248,98,255,87,6,12,254,104,251,36,2,215,255,64,250,250,252,207,0, +110,3,33,5,135,255,103,250,228,254,34,2,57,0,142,1,83,1,142,252,71,253,0,1,107,255,145,254,124,255,35,251, +83,249,137,0,128,3,37,255,69,2,62,8,37,0,248,245,220,252,236,5,198,255,4,248,251,249,109,253,255,255,215,2, +194,0,134,254,158,2,144,3,172,254,196,255,89,4,8,1,228,251,57,254,96,0,168,250,10,246,225,251,88,4,252,4, +168,1,142,0,230,1,121,6,36,9,27,3,59,253,16,253,36,248,167,244,224,0,115,11,48,3,228,250,137,1,7,10, +155,6,153,250,100,247,16,2,12,4,0,249,5,250,229,0,235,248,196,245,7,0,186,253,68,247,80,1,228,4,219,249, +209,249,212,254,22,250,229,251,183,2,45,251,183,242,20,249,81,255,27,254,171,255,4,3,40,0,79,249,103,247,247,252, +86,1,15,0,245,255,200,0,74,252,178,247,214,248,66,252,52,0,64,2,41,255,43,254,72,2,235,0,116,251,175,253, +231,2,139,2,72,0,83,251,207,242,226,243,110,255,78,2,207,252,42,0,66,6,235,1,58,254,71,2,154,1,33,252, +203,251,184,252,87,252,150,255,33,2,88,1,237,1,202,0,7,255,86,3,28,4,104,254,126,1,248,3,246,247,56,247, +102,8,192,7,29,248,6,249,92,254,253,247,245,248,1,4,208,6,154,1,63,252,71,250,43,0,7,7,13,5,247,255, +223,253,68,253,229,253,171,253,129,253,217,0,245,255,188,250,114,0,62,9,97,2,172,250,98,0,117,1,5,248,86,245, +43,252,119,1,137,254,39,246,186,245,254,255,217,4,188,2,78,5,87,5,236,251,164,247,201,253,247,0,170,253,223,252, +214,0,66,2,147,254,129,254,195,3,159,1,177,247,97,245,155,252,142,3,36,6,188,1,212,249,238,249,0,255,103,254, +149,254,107,2,53,254,6,248,159,253,61,2,69,252,112,252,62,4,23,3,132,255,230,2,23,255,226,246,173,254,246,9, +80,5,236,255,240,0,2,252,196,251,249,5,86,4,236,251,132,2,10,7,55,254,131,255,151,7,66,0,224,244,17,244, +251,248,180,1,246,4,151,251,88,250,102,6,200,6,99,254,106,255,91,255,176,249,165,251,248,255,58,255,87,0,190,0, +223,253,172,0,5,7,73,9,54,8,222,1,64,250,251,251,167,255,35,253,159,254,70,2,186,254,233,254,73,5,213,2, +223,252,208,253,163,251,181,248,61,3,194,13,224,5,242,248,251,247,175,253,134,1,125,3,149,3,215,0,16,253,169,250, +91,250,33,252,216,0,133,9,28,17,91,11,244,247,19,237,242,247,131,6,223,6,151,254,144,248,169,250,57,3,25,4, +169,250,1,250,141,3,210,4,114,0,151,1,133,0,254,250,89,251,198,255,245,1,216,2,34,255,85,247,29,249,58,8, +75,20,214,16,143,4,76,253,248,254,175,1,128,253,252,245,242,247,9,4,248,7,123,0,251,0,72,8,177,5,37,1, +249,1,2,253,70,249,99,254,166,252,0,253,87,15,234,18,177,252,212,249,204,8,5,2,69,247,50,255,21,0,172,247, +86,251,245,255,98,254,141,3,46,6,7,255,127,255,229,4,250,253,105,246,34,254,48,7,193,0,186,246,81,254,109,13, +6,8,202,246,152,248,97,6,79,6,89,252,196,246,72,247,125,253,211,1,160,252,184,252,119,10,167,13,185,254,105,250, +224,4,167,3,164,250,67,255,224,5,36,1,35,255,74,0,30,251,17,0,172,16,32,15,86,255,113,252,53,253,40,249, +218,1,224,12,39,4,161,249,148,253,100,0,194,251,68,248,146,249,26,3,36,14,144,9,10,249,50,241,230,249,139,10, +22,17,96,5,101,250,14,254,208,1,183,253,54,251,237,251,77,255,111,7,133,10,146,1,59,247,21,245,213,250,55,4, +144,8,31,4,116,255,0,1,76,2,13,251,252,242,115,251,199,14,74,18,163,1,164,241,151,240,126,0,157,19,24,18, +214,1,238,254,91,6,35,5,46,255,11,252,211,253,145,7,78,10,225,250,34,241,129,248,199,251,50,251,29,5,36,13, +210,9,247,4,77,255,6,251,254,1,163,8,11,1,63,250,132,254,75,0,85,253,202,0,112,6,6,5,7,3,243,5, +23,4,168,250,110,248,235,0,208,2,116,250,118,249,62,1,140,255,98,246,188,250,44,9,30,11,183,3,28,4,91,4, +6,252,53,251,214,3,133,4,113,1,0,3,196,254,197,251,71,8,99,14,146,255,193,246,29,252,47,251,26,250,25,6, +225,12,2,3,3,251,166,255,72,6,189,6,253,4,216,5,79,5,226,253,163,244,155,243,24,253,223,8,42,11,37,5, +42,5,125,10,186,4,50,247,22,245,47,255,99,8,55,10,35,4,90,252,7,252,8,255,45,254,115,2,15,14,33,13, +63,253,209,249,138,7,239,9,244,252,100,251,113,8,19,14,44,7,100,254,244,249,156,253,170,5,35,5,102,253,7,255, +73,10,65,13,89,2,179,248,33,253,243,8,26,14,227,9,44,2,114,254,199,5,10,16,130,9,193,247,50,246,178,5, +217,13,54,7,95,253,163,250,14,3,190,13,162,11,48,2,134,2,214,6,74,0,99,248,88,253,137,6,217,8,145,6, +90,1,186,251,128,252,91,255,167,0,49,12,92,26,48,15,78,246,231,244,249,3,19,7,152,2,239,1,242,254,45,249, +86,247,24,250,217,0,13,10,123,18,196,22,64,14,153,249,192,238,184,248,20,8,61,15,220,8,46,246,246,235,248,245, +93,255,90,2,187,18,130,34,93,17,207,242,217,241,174,7,139,14,230,255,56,244,190,248,196,0,74,252,121,240,231,242, +235,8,17,25,43,15,251,250,131,243,187,247,79,253,241,0,4,4,50,9,73,11,190,1,142,245,238,243,18,248,116,255, +125,13,221,18,223,3,26,242,94,237,224,243,10,2,209,13,208,12,79,5,57,252,204,240,151,241,10,4,69,14,177,1, +135,241,112,240,245,252,129,8,221,4,13,249,119,250,68,8,98,11,117,255,100,251,52,7,173,10,47,252,15,246,1,1, +229,3,185,249,22,245,23,249,23,3,156,17,38,17,136,251,151,240,134,254,56,9,208,1,246,248,81,248,39,250,237,251, +100,252,77,247,161,242,188,250,35,8,53,9,12,6,115,13,93,16,252,1,115,245,25,248,164,255,141,4,112,4,56,253, +164,246,232,246,144,249,156,253,157,3,8,6,135,3,86,255,1,252,139,253,137,0,19,254,51,254,124,4,66,0,33,241, +117,236,182,244,222,254,14,10,198,16,29,11,219,0,5,249,81,244,184,252,197,15,37,18,60,252,85,233,254,235,41,253, +206,15,31,24,190,16,126,2,23,247,25,240,144,243,115,5,13,21,227,16,186,0,230,243,5,238,166,239,107,247,136,254, +218,1,135,1,6,254,231,253,185,1,21,255,144,251,92,4,133,10,203,254,34,243,40,243,117,243,243,245,143,0,70,6, +1,2,44,252,192,245,219,246,202,9,214,23,241,8,126,244,57,247,184,2,14,0,52,245,19,243,89,251,186,1,242,0, +245,1,48,5,162,255,108,248,143,255,68,10,174,6,158,252,76,247,200,243,34,243,164,248,106,0,171,9,110,15,119,5, +86,248,51,2,173,20,200,14,151,249,89,240,16,242,110,245,103,253,148,9,169,18,137,17,245,3,253,247,237,254,168,13, +114,13,240,2,159,253,86,250,165,245,164,247,121,253,232,253,9,0,118,9,242,12,86,5,158,254,67,252,43,251,85,254, +223,0,203,250,113,245,112,249,28,254,86,255,76,2,22,5,206,3,147,255,5,251,64,251,180,255,148,255,165,252,197,254, +242,0,14,0,187,1,122,2,97,0,33,2,250,255,12,243,140,238,79,252,94,9,115,10,67,5,42,0,248,1,4,7, +152,1,168,248,135,253,143,6,22,3,223,250,114,249,130,251,138,252,92,254,26,4,32,13,184,17,150,10,99,253,203,248, +82,0,24,5,142,253,11,247,108,252,125,1,26,253,207,250,82,3,67,14,82,16,24,7,180,249,148,243,239,248,119,255, +208,251,194,246,201,255,105,12,237,9,115,2,29,5,232,10,85,15,47,18,226,7,116,246,95,245,124,254,164,253,171,249, +162,252,238,0,91,2,141,253,91,246,22,255,204,21,153,30,232,16,23,252,142,239,234,244,44,1,89,255,145,249,110,1, +104,6,190,252,14,246,227,248,93,254,245,8,189,19,169,17,161,6,52,0,214,2,234,8,81,7,117,252,197,246,18,253, +98,3,209,255,142,247,8,246,22,254,137,5,156,4,3,1,240,1,134,4,87,0,124,245,65,242,151,252,89,5,38,6, +73,8,7,7,205,251,228,244,212,249,168,1,85,9,128,11,190,0,96,246,185,249,118,3,158,14,195,21,214,10,31,248, +154,245,104,252,210,254,163,2,68,3,206,250,187,252,41,13,255,16,204,4,206,255,192,2,244,255,19,252,155,254,194,0, +0,255,244,254,191,255,252,252,138,252,46,4,184,10,233,5,100,253,168,255,29,10,10,13,72,6,35,1,124,253,187,246, +34,246,184,253,201,1,123,6,20,17,209,14,86,254,215,250,165,2,110,255,96,251,18,6,125,15,2,8,143,247,242,239, +13,252,236,12,103,10,245,253,247,253,93,3,73,3,217,3,121,3,26,0,98,4,93,11,200,5,168,254,182,5,5,13, +62,5,157,249,191,248,218,255,220,6,45,11,161,9,32,0,46,248,245,250,180,255,194,255,255,6,144,20,103,17,122,253, +105,245,205,255,143,7,248,5,242,4,205,3,50,253,240,247,230,249,252,250,108,245,198,243,57,0,115,16,240,18,68,11, +31,12,46,22,64,22,207,5,101,244,120,239,132,244,123,250,191,252,241,252,96,253,91,252,81,250,10,0,6,17,164,27, +173,14,18,252,166,0,121,14,242,4,201,240,52,242,143,254,112,253,187,249,205,0,213,4,91,0,4,2,136,8,250,3, +146,249,69,251,58,5,145,8,61,6,192,1,238,248,80,247,251,4,18,12,236,255,83,248,183,0,243,5,189,1,180,254, +82,253,15,251,152,252,165,3,119,10,63,8,109,253,86,248,116,253,72,1,242,3,67,10,41,8,228,251,248,247,230,252, +52,253,186,253,191,3,94,4,22,254,86,252,74,1,212,6,130,7,75,255,5,243,85,238,187,242,47,249,3,0,245,4, +206,0,200,247,229,246,219,252,121,1,18,7,177,11,236,7,168,4,208,8,136,4,86,244,69,238,167,248,7,3,211,2, +67,249,147,239,58,240,14,249,255,1,181,5,153,254,61,247,202,1,254,12,94,0,23,241,3,244,30,250,112,1,191,14, +230,9,8,243,241,241,156,5,172,6,218,245,181,240,189,249,42,2,197,5,227,4,104,254,26,250,93,3,244,16,112,13, +25,253,177,245,99,249,245,254,175,2,149,254,121,246,32,251,4,8,187,8,102,0,251,253,107,0,138,1,197,1,9,4, +242,7,248,4,145,248,101,242,194,251,182,8,222,12,9,7,14,0,20,3,50,8,34,1,36,250,220,255,93,5,88,8, +52,16,166,9,147,236,223,221,57,242,172,12,44,18,155,5,7,246,218,243,33,4,4,20,45,15,196,254,251,249,8,0, +194,255,65,251,39,255,0,6,86,6,230,3,249,254,46,243,250,234,147,246,222,16,80,31,171,18,35,255,205,255,144,12, +3,11,225,248,80,236,19,248,207,18,249,25,202,0,39,231,3,232,81,248,103,5,66,10,0,8,223,2,245,254,28,253, +154,252,136,249,155,245,56,252,166,9,255,9,157,253,104,248,233,0,151,10,149,4,28,241,125,237,71,3,44,16,20,3, +55,246,106,249,254,2,86,10,66,9,194,1,81,2,129,10,228,10,29,2,128,247,246,239,242,243,42,1,12,7,75,2, +77,254,33,1,77,8,228,8,186,252,174,245,157,0,98,9,121,3,220,255,58,4,24,5,179,2,171,255,107,248,206,244, +143,252,90,4,37,3,241,254,66,250,191,244,152,245,68,253,138,2,228,5,242,10,241,7,108,250,172,245,24,3,249,17, +118,20,86,14,161,5,110,253,116,249,44,249,85,248,89,247,140,251,173,6,182,15,31,10,136,250,58,246,254,2,27,13, +231,9,47,9,155,22,230,35,221,30,106,10,33,247,19,237,129,231,10,230,134,241,253,4,241,9,177,252,137,245,162,255, +45,10,212,9,53,9,141,19,25,32,190,27,120,7,218,248,140,245,66,242,158,242,54,252,79,1,244,254,165,3,118,10, +205,5,130,254,201,252,187,250,146,254,211,14,239,23,122,12,1,0,135,1,45,4,8,254,185,245,182,238,50,235,196,244, +169,6,227,11,147,4,222,3,123,8,37,6,148,3,142,7,238,7,81,1,2,254,99,1,38,4,155,0,106,249,83,246, +72,250,128,0,26,2,245,250,10,242,31,247,118,9,157,19,221,11,10,255,156,250,42,0,167,6,208,3,123,252,133,254, +209,8,239,12,103,4,118,247,167,242,243,247,142,253,229,253,78,253,144,0,102,7,237,9,65,0,197,244,54,249,97,9, +191,19,130,16,55,0,109,238,107,239,110,0,17,6,159,250,232,245,109,0,11,6,236,250,100,239,33,244,44,2,166,11, +41,13,241,7,112,1,252,0,154,1,183,252,110,250,220,252,48,250,136,248,219,2,106,10,16,0,73,243,1,247,154,3, +205,8,16,7,125,6,221,4,198,255,208,253,170,252,37,244,186,238,240,246,136,254,194,252,10,254,185,2,144,254,194,246, +231,248,13,3,248,9,91,9,180,6,55,7,145,7,81,4,62,1,210,1,180,4,191,4,34,253,83,245,1,250,158,4, +169,5,240,255,94,254,189,2,42,11,123,17,165,12,160,1,160,254,143,3,236,4,122,255,124,249,174,247,90,250,170,255, +71,2,7,255,70,254,213,5,232,11,113,13,189,17,23,15,16,255,105,248,101,1,164,1,64,250,12,253,165,253,119,241, +153,234,82,241,12,252,219,4,185,7,42,7,234,8,26,3,239,244,83,245,196,2,154,4,218,0,220,6,85,9,112,1, +225,252,185,253,29,255,63,2,36,1,66,249,20,249,246,5,174,14,42,8,210,255,217,5,56,18,110,17,95,5,59,255, +197,3,4,12,166,13,218,255,150,238,72,241,86,2,88,10,6,10,205,12,24,14,35,9,25,3,91,254,226,249,245,246, +156,249,219,4,114,15,216,10,95,253,199,248,21,252,112,254,220,1,135,6,100,8,165,8,130,5,80,253,63,249,24,251, +221,249,44,253,168,14,21,26,20,13,112,249,85,245,23,254,97,5,132,0,143,243,73,241,222,254,135,10,100,10,250,6, +84,7,117,10,115,11,105,6,221,0,248,1,15,6,47,9,80,11,140,5,13,247,190,240,154,251,47,10,254,14,203,10, +233,4,246,0,70,253,24,254,212,10,87,22,138,12,88,250,241,248,14,1,122,1,18,255,236,254,56,253,133,0,238,11, +153,15,218,4,91,250,29,249,213,254,151,9,121,14,216,0,150,240,120,247,71,10,159,12,143,2,85,0,19,4,105,3, +182,0,152,254,143,250,15,250,88,3,24,10,221,254,111,241,34,253,127,17,250,7,116,239,78,246,79,20,157,28,36,12, +43,255,123,253,59,254,39,252,245,247,161,249,98,3,142,7,205,1,77,0,39,4,195,0,25,252,188,3,57,12,248,2, +72,242,144,242,183,2,200,11,9,6,46,255,253,254,72,255,214,251,56,248,130,250,87,3,248,7,123,1,221,252,50,3, +76,6,135,255,47,253,200,0,109,254,160,251,102,1,153,4,252,253,131,250,156,1,76,9,204,7,208,253,112,243,207,241, +31,250,151,2,77,1,67,250,91,250,187,1,135,3,10,254,214,251,13,0,190,6,35,10,70,0,45,236,236,228,178,243, +92,6,3,13,69,6,32,249,179,244,53,254,139,4,67,254,61,249,229,253,97,4,75,7,147,6,139,255,31,243,48,237, +169,246,165,1,245,251,20,242,160,247,154,255,185,252,65,254,97,5,205,254,81,244,95,253,240,13,103,13,181,253,202,239, +198,238,7,248,58,254,179,253,241,254,4,1,89,253,245,247,72,246,234,248,79,0,230,5,203,1,18,253,202,3,145,12, +45,6,109,242,223,229,64,239,5,3,206,10,72,5,156,255,126,251,194,246,148,247,46,254,13,3,243,4,166,2,15,248, +202,239,32,249,32,10,73,14,107,6,10,251,28,236,229,227,29,240,205,1,223,2,106,254,216,6,230,16,233,10,85,249, +253,235,150,236,97,247,133,1,248,9,18,18,8,13,219,247,47,233,167,235,81,241,67,247,102,4,200,14,118,11,148,1, +125,248,191,237,136,226,240,224,174,240,237,8,35,23,32,23,88,16,60,3,1,245,194,243,200,250,243,251,45,255,101,9, +234,6,163,244,156,234,49,239,136,245,97,254,76,15,188,29,28,27,200,7,73,244,253,241,56,0,119,13,203,11,46,255, +80,247,69,248,51,244,107,233,33,235,229,252,99,13,252,21,84,23,45,14,82,4,36,4,28,2,172,250,92,253,127,4, +170,255,214,252,138,8,242,11,220,250,184,237,60,243,109,252,102,255,210,2,198,6,117,4,9,2,106,8,68,14,98,11, +5,11,65,16,113,13,141,5,43,6,56,6,94,249,211,235,98,234,187,240,87,251,210,9,93,16,167,1,241,233,113,234, +254,8,157,30,220,18,44,255,58,251,20,255,42,3,138,3,27,246,91,230,28,237,198,1,228,9,207,3,44,251,66,247, +243,253,65,8,78,7,211,255,204,255,118,5,155,9,104,8,202,253,4,241,186,239,105,246,38,252,12,5,93,13,46,5, +12,241,227,232,37,244,226,3,26,9,54,3,17,0,252,9,14,20,185,11,230,249,151,245,103,254,227,3,46,4,0,6, +188,5,73,255,149,248,245,246,102,249,230,252,191,253,51,253,123,3,198,14,180,13,62,250,187,232,128,236,1,253,120,5, +89,3,159,2,242,4,69,3,213,255,67,0,19,0,40,250,214,244,243,249,141,7,202,14,228,7,100,255,68,1,70,7, +189,9,8,9,101,4,42,0,23,4,38,8,149,2,185,252,32,251,178,245,2,244,8,0,195,10,34,8,247,2,89,2, +155,2,163,2,166,0,227,251,2,247,2,239,182,231,121,242,82,11,126,22,178,14,9,5,138,255,160,255,143,8,191,15, +114,11,175,4,69,1,61,250,177,239,253,232,43,233,118,242,86,4,113,19,43,20,73,10,227,2,209,2,88,5,25,8, +198,10,127,9,77,5,178,4,138,5,143,2,178,254,250,249,206,242,146,243,173,255,30,7,139,4,177,3,124,6,0,8, +84,9,119,8,137,4,174,4,35,9,190,12,212,15,79,12,185,252,8,241,187,244,67,249,115,247,129,249,152,254,251,1, +217,9,34,18,249,12,158,255,166,251,107,2,240,6,113,3,91,0,24,5,69,11,100,10,149,2,225,244,43,231,249,232, +253,250,143,8,184,9,138,9,214,9,158,3,199,249,142,245,240,251,190,9,245,19,48,19,45,11,248,1,38,252,152,253, +169,1,241,0,23,1,52,9,11,15,216,6,43,249,208,246,226,255,118,4,49,254,188,250,230,1,143,6,8,3,63,5, +198,12,113,6,243,245,36,244,56,2,24,12,134,10,9,1,76,245,247,244,30,0,209,255,237,244,0,252,105,13,191,8, +121,251,29,3,229,12,208,2,89,251,187,4,171,7,154,249,72,239,97,247,77,8,108,17,184,14,121,7,207,254,1,245, +22,241,69,245,81,249,77,251,233,255,110,6,248,11,78,10,244,249,179,232,0,239,133,5,63,16,140,9,38,253,111,244, +151,247,235,1,65,0,61,242,215,237,204,250,192,11,173,19,107,12,149,248,65,232,23,236,56,255,218,9,11,2,72,251, +61,4,128,14,145,13,30,8,81,255,11,242,252,238,60,251,62,4,67,2,212,1,14,7,8,8,189,254,241,242,102,243, +206,0,114,11,146,13,209,13,13,11,130,4,10,2,95,1,103,251,148,249,64,3,153,9,18,1,148,246,201,249,198,4, +111,8,31,6,26,7,141,6,75,1,67,2,150,5,168,251,87,239,153,242,250,251,36,3,228,12,193,12,144,250,95,240, +32,252,144,4,184,252,4,249,138,4,116,14,40,7,237,247,87,243,2,249,139,253,0,2,208,7,213,4,168,250,131,249, +139,2,204,6,222,255,231,245,17,245,229,254,150,5,48,1,118,252,201,254,58,1,144,0,77,0,172,0,224,2,246,6, +48,3,22,246,179,243,244,3,210,13,206,1,251,245,84,252,71,5,235,1,142,252,181,0,28,9,157,11,138,6,246,0, +53,0,140,0,219,255,181,3,84,9,83,3,55,242,162,233,96,244,170,3,62,4,206,250,163,250,8,5,132,10,109,5, +86,251,28,243,199,245,246,1,185,5,14,252,95,245,205,247,27,253,48,5,68,9,103,254,135,243,128,251,55,5,235,253, +228,246,30,254,14,4,43,1,35,1,75,4,88,2,14,0,101,2,203,0,49,249,72,249,124,4,153,10,49,5,68,0, +234,252,225,242,61,239,206,255,134,14,69,5,218,245,7,245,34,251,197,254,107,2,230,6,254,9,133,7,255,253,70,249, +22,1,83,7,173,2,232,252,220,248,215,239,237,228,181,225,68,236,5,1,252,15,223,15,142,8,67,0,166,251,190,4, +118,19,156,17,235,255,62,239,178,232,9,241,199,253,11,246,242,223,28,223,194,249,126,19,13,24,216,10,161,254,23,2, +22,14,196,18,113,9,118,245,239,232,242,244,144,9,56,10,31,247,187,227,69,224,224,240,59,3,111,5,219,3,56,12, +196,19,209,16,13,5,59,246,82,242,204,252,115,4,138,3,209,1,95,253,131,250,80,2,251,5,202,250,131,245,245,255, +41,9,81,9,69,4,152,253,99,255,190,11,100,17,60,7,43,250,61,248,240,0,19,7,206,1,23,251,1,254,135,2, +214,254,243,249,174,253,183,4,243,1,201,246,124,244,190,255,103,7,246,1,194,251,233,255,211,7,50,8,58,3,170,1, +213,255,118,248,40,246,238,251,94,249,17,240,152,245,23,5,207,5,70,250,253,248,78,4,4,10,109,1,223,246,130,246, +117,251,130,255,115,5,197,8,6,0,79,242,110,240,187,253,176,11,12,8,92,244,102,232,8,239,53,249,73,254,26,3, +203,3,49,254,72,255,118,9,118,11,246,254,142,242,29,243,13,253,12,1,227,246,245,235,136,239,63,250,189,0,25,6, +68,7,168,251,42,241,228,248,138,6,208,10,68,11,192,10,221,4,191,253,235,247,63,242,120,244,162,255,227,6,130,8, +236,10,118,7,169,250,248,242,128,249,11,4,119,6,215,3,131,7,235,14,183,10,25,251,48,242,58,248,171,3,58,8, +228,3,46,0,157,2,225,4,252,3,253,1,165,253,23,253,123,6,92,11,143,2,227,252,3,1,12,2,228,254,62,252, +199,247,9,248,14,2,5,8,28,2,125,251,29,251,158,252,245,252,172,255,8,7,119,8,125,252,82,246,251,3,210,13, +129,3,209,250,194,255,26,1,159,250,59,252,139,7,198,12,162,6,79,1,58,4,246,7,82,6,133,1,6,253,252,252, +241,255,226,251,84,244,58,249,168,4,244,4,120,0,248,2,218,4,224,1,147,1,185,2,139,0,161,255,223,0,215,253, +116,250,39,0,61,7,144,2,85,251,20,255,74,3,186,253,61,250,174,255,247,5,150,10,56,13,230,8,128,0,111,251, +62,251,177,254,3,2,182,3,68,8,249,9,116,0,70,249,194,254,189,3,14,5,207,7,56,1,20,246,56,251,59,3, +110,249,186,241,182,251,201,4,31,3,213,255,34,0,222,4,190,8,111,4,112,255,230,1,86,3,102,255,40,254,255,255, +173,253,54,249,35,252,9,5,71,6,49,0,97,1,112,5,36,0,180,253,94,6,240,9,72,5,115,3,85,0,4,250, +98,250,4,255,38,0,100,255,51,253,198,250,13,252,232,253,17,0,145,5,189,5,130,254,153,253,163,2,34,3,9,2, +165,1,133,255,129,0,204,3,208,4,212,7,146,7,173,251,49,244,235,252,181,6,57,9,247,6,26,252,238,241,125,248, +193,5,93,8,79,3,169,255,126,0,60,3,246,0,190,250,38,248,191,248,76,250,54,252,60,249,3,245,94,251,237,6, +129,9,15,4,93,254,19,253,229,2,134,10,112,10,103,0,115,243,115,240,59,249,164,252,91,246,111,247,159,0,183,4, +8,5,40,4,241,0,92,3,72,7,211,254,60,246,55,252,43,2,190,0,211,2,110,3,228,251,94,249,143,255,154,0, +201,250,85,250,68,2,246,6,39,0,242,246,75,246,17,250,136,252,107,255,247,1,24,3,69,4,113,2,127,253,223,252, +59,0,102,255,240,250,2,252,239,4,124,9,167,255,197,243,194,244,138,252,33,4,31,11,7,7,184,248,95,246,130,1, +102,6,141,1,227,248,70,243,138,253,38,12,3,3,238,239,145,243,95,4,214,11,67,11,135,4,171,249,252,248,197,3, +95,9,109,2,250,246,99,245,42,5,67,22,207,16,115,249,223,237,251,251,48,13,247,6,206,245,66,247,50,6,49,9, +129,253,82,240,127,235,87,244,28,4,174,12,48,11,134,4,44,253,32,252,45,1,172,1,73,250,6,243,186,244,92,0, +18,7,237,252,189,243,133,253,184,9,60,8,85,4,24,4,232,255,174,251,31,254,39,0,41,253,64,251,85,252,245,252, +84,254,186,0,185,253,133,246,50,249,54,8,29,17,35,10,163,0,124,0,18,5,213,5,87,0,78,248,31,245,69,250, +194,1,198,3,6,1,24,255,224,254,79,254,56,254,253,255,240,3,17,9,24,9,198,0,8,251,72,0,187,6,224,4, +74,254,195,247,227,244,108,250,50,5,154,10,27,5,2,251,156,248,124,253,199,251,114,245,183,250,52,7,45,10,89,4, +49,253,169,247,13,249,30,255,186,0,2,0,201,1,175,3,149,6,172,7,15,255,57,245,102,246,193,250,4,251,166,251, +116,251,21,251,252,1,126,9,103,5,192,252,81,252,200,1,24,5,244,7,96,14,112,13,51,251,10,234,136,234,109,235, +104,228,82,234,21,253,5,6,29,4,136,3,237,6,117,11,76,8,245,252,136,252,151,8,218,8,10,250,165,237,91,233, +165,237,248,247,126,252,17,252,78,1,71,7,126,8,149,9,5,7,171,255,43,255,206,5,76,8,185,3,104,250,23,243, +40,247,85,255,109,253,250,247,177,251,216,3,87,6,180,3,134,2,181,2,107,254,198,250,180,0,245,5,41,1,226,255, +194,6,246,5,173,252,32,248,25,249,251,250,5,253,159,252,139,250,34,252,214,1,85,6,45,4,62,254,179,254,187,3, +81,2,99,254,208,255,80,1,52,2,225,5,254,3,12,252,210,251,192,3,219,9,214,10,18,4,247,249,215,250,144,3, +169,2,163,250,38,250,120,255,185,0,73,255,58,2,94,6,231,2,71,253,69,1,168,8,43,8,104,4,33,3,20,2, +94,0,0,252,84,245,92,245,99,252,67,255,14,253,122,252,164,254,88,1,216,255,120,251,241,255,196,9,8,9,23,5, +180,9,76,9,50,254,61,247,227,246,79,247,12,249,199,248,3,248,148,254,53,5,177,4,93,5,246,5,20,1,143,1, +20,8,32,7,226,2,1,3,116,255,185,248,64,248,86,252,163,1,5,7,117,6,54,2,226,3,21,8,216,4,229,251, +5,248,200,254,142,7,122,7,155,2,35,0,226,254,220,0,254,5,108,4,9,253,194,250,44,252,135,252,128,253,41,254, +101,1,26,9,169,7,138,251,19,250,78,4,7,8,131,5,84,2,73,253,148,254,156,4,157,254,76,244,190,247,162,253, +208,252,27,3,87,12,100,5,36,246,158,243,66,254,188,8,79,9,202,0,122,250,202,253,19,4,246,4,227,1,130,255, +43,253,7,249,255,246,198,250,150,255,12,0,15,255,9,1,34,5,245,7,224,6,58,3,51,2,210,4,106,5,166,0, +166,250,17,249,143,251,7,253,70,252,1,253,96,255,201,0,75,2,70,3,74,255,151,249,21,251,167,1,156,3,211,0, +43,255,101,254,186,252,133,252,134,254,107,0,18,0,13,252,185,247,176,249,101,255,101,1,247,1,4,3,241,253,208,246, +120,250,195,4,70,8,31,4,103,253,242,248,230,252,83,4,142,2,177,250,122,249,205,253,139,254,72,252,172,254,131,5, +81,6,238,254,1,252,246,255,57,254,126,248,118,252,178,6,0,10,121,5,81,254,199,246,152,242,175,246,129,1,250,7, +79,2,168,250,35,253,233,2,192,2,238,255,115,252,143,249,149,254,248,7,0,9,162,3,41,0,136,252,2,249,166,250, +141,253,138,252,218,250,13,250,74,248,192,248,143,254,198,4,199,4,180,255,108,252,164,255,243,7,30,13,150,6,182,249, +42,245,201,248,7,249,83,247,16,250,137,251,248,248,73,250,197,0,38,6,96,8,170,7,79,4,234,0,4,255,103,254, +163,254,196,253,245,251,19,252,90,252,189,249,152,247,74,248,8,248,226,246,117,251,161,5,0,9,0,255,218,245,27,252, +111,8,90,10,83,2,210,249,124,246,203,248,152,250,168,246,0,242,235,242,196,247,81,251,38,250,178,247,127,251,115,4, +149,11,236,13,215,7,102,251,82,248,85,2,205,7,75,2,160,251,200,247,211,247,219,251,179,252,75,250,200,251,152,253, +233,252,207,255,148,2,7,255,215,251,110,252,75,254,55,4,162,9,238,4,97,252,69,250,126,252,181,254,242,253,187,249, +3,249,17,252,44,251,212,250,201,255,238,254,172,246,6,246,93,0,23,11,231,13,123,7,77,255,18,252,88,249,160,245, +109,247,251,253,44,4,69,7,219,2,155,250,253,248,195,250,4,250,7,254,216,5,103,6,241,2,2,3,56,2,128,253, +64,248,255,245,94,249,145,254,24,0,222,0,3,1,147,253,50,254,249,2,241,254,250,248,85,0,31,10,35,11,71,10, +1,5,47,249,179,246,228,253,143,253,9,249,209,250,70,252,131,251,14,255,189,1,187,254,89,253,202,0,144,4,145,6, +70,6,90,4,223,3,33,4,187,0,127,249,130,243,42,244,201,252,148,7,177,10,63,3,30,251,149,251,22,255,217,253, +33,253,246,1,208,6,218,7,24,5,59,254,251,249,45,253,193,253,16,248,154,248,76,255,234,255,216,253,245,0,54,3, +175,1,144,1,198,0,47,253,68,253,11,2,30,4,234,0,189,252,244,251,203,253,220,252,103,250,7,255,178,7,90,7, +114,255,38,252,2,254,227,254,235,253,80,250,251,245,232,248,130,0,15,0,53,250,138,251,147,0,151,0,117,0,64,3, +251,1,222,252,129,251,18,254,81,255,229,252,9,249,47,249,230,253,162,0,156,0,139,2,49,3,94,255,39,254,119,1, +187,1,87,255,164,255,248,255,10,255,114,1,200,4,226,2,69,254,172,251,154,250,196,250,250,251,139,251,8,251,81,255, +224,4,47,3,62,252,51,250,167,255,35,6,181,7,204,2,212,251,63,251,253,0,172,2,220,253,13,251,45,252,183,252, +120,253,21,255,132,254,23,254,70,1,56,4,6,4,2,3,166,1,17,0,86,0,235,0,188,254,88,251,94,250,100,253, +189,1,150,1,136,253,60,253,76,1,6,3,76,1,109,255,87,254,228,253,203,253,173,254,143,1,13,2,168,252,14,249, +226,252,103,1,94,2,158,1,23,254,200,250,237,253,145,2,67,1,131,253,60,251,253,249,187,250,136,251,22,250,150,250, +111,253,51,253,114,251,130,251,166,250,204,249,57,252,149,254,211,254,146,255,33,0,138,255,118,255,46,255,229,254,15,1, +14,3,89,0,118,250,117,247,106,252,236,4,174,4,246,252,63,253,113,5,31,6,31,254,142,249,160,252,79,2,193,4, +150,2,55,0,36,0,17,0,218,255,49,0,148,255,236,254,221,254,4,253,59,251,124,252,198,253,60,254,65,0,215,0, +159,254,84,254,143,255,178,254,192,253,96,254,194,255,78,2,196,2,80,254,52,251,131,253,22,0,133,0,181,255,48,252, +98,249,150,252,60,1,64,1,103,255,22,255,119,255,5,0,244,0,94,2,142,3,14,2,195,254,177,254,95,1,47,1, +195,253,102,251,6,252,116,254,24,0,217,255,229,255,76,1,142,2,146,3,253,3,55,2,62,0,166,0,15,1,237,255, +77,255,194,254,204,253,99,255,66,2,240,0,21,253,93,253,195,1,230,4,4,4,42,0,12,253,154,254,37,3,108,4, +68,1,215,254,56,255,115,255,155,254,73,254,154,254,186,255,244,1,148,2,59,0,122,254,176,254,72,254,2,254,85,255, +78,255,186,253,183,254,44,1,65,1,172,0,32,1,23,0,250,253,47,254,94,0,179,1,16,1,176,255,64,0,164,2, +19,3,129,1,105,1,74,1,202,254,40,254,5,1,83,1,217,253,157,252,197,254,134,0,252,0,135,0,139,255,210,0, +16,4,212,3,142,255,24,253,194,253,201,253,173,252,202,252,114,254,199,255,254,254,49,253,116,253,75,255,2,0,115,0, +110,1,213,0,211,255,203,0,150,0,232,253,141,253,131,255,253,254,112,253,181,254,243,0,172,1,8,1,19,255,56,253, +121,253,250,253,212,252,207,252,211,255,142,2,143,1,227,253,246,250,186,250,175,252,252,254,240,255,167,255,155,255,11,0, +251,255,56,255,247,253,228,252,104,253,122,254,210,253,242,252,107,253,57,253,235,252,122,254,190,254,194,252,146,253,7,1, +133,2,178,2,81,2,122,255,92,253,247,254,10,0,187,254,155,254,155,255,173,255,156,255,96,255,52,254,135,253,74,254, +201,255,24,1,95,1,101,1,63,2, +}; \ No newline at end of file diff --git a/src/client/sound/data/spiderdeath.pcm b/src/client/sound/data/spiderdeath.pcm new file mode 100755 index 0000000..e7f018b --- /dev/null +++ b/src/client/sound/data/spiderdeath.pcm @@ -0,0 +1,3793 @@ +unsigned char PCM_spiderdeath[121292] = { +1,0,0,0,2,0,0,0,68,172,0,0,222,236,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +2,0,0,0,254,255,255,255,1,0,1,0,0,0,0,0,1,0,255,255,253,255,254,255,255,255,0,0,3,0,6,0, +2,0,252,255,252,255,0,0,2,0,1,0,0,0,2,0,3,0,0,0,252,255,253,255,0,0,1,0,255,255,254,255, +255,255,1,0,2,0,0,0,254,255,0,0,0,0,250,255,250,255,253,255,250,255,244,255,247,255,254,255,253,255,248,255, +251,255,2,0,2,0,252,255,253,255,3,0,6,0,2,0,253,255,249,255,252,255,3,0,4,0,253,255,253,255,7,0, +9,0,3,0,3,0,14,0,17,0,9,0,5,0,9,0,9,0,3,0,1,0,2,0,255,255,249,255,252,255,5,0, +7,0,2,0,253,255,254,255,5,0,11,0,2,0,244,255,248,255,6,0,1,0,246,255,3,0,24,0,14,0,242,255, +236,255,248,255,252,255,254,255,11,0,14,0,254,255,248,255,5,0,5,0,246,255,250,255,18,0,22,0,254,255,238,255, +244,255,254,255,252,255,236,255,231,255,4,0,36,0,16,0,229,255,244,255,34,0,20,0,229,255,234,255,13,0,18,0, +20,0,45,0,43,0,3,0,248,255,11,0,253,255,241,255,23,0,35,0,244,255,234,255,22,0,43,0,63,0,98,0, +49,0,200,255,209,255,41,0,42,0,0,0,38,0,100,0,93,0,42,0,3,0,13,0,54,0,45,0,236,255,239,255, +106,0,212,0,146,0,209,255,121,255,235,255,80,0,27,0,254,255,75,0,105,0,96,0,133,0,103,0,22,0,73,0, +104,0,160,255,48,255,34,0,31,1,17,1,174,0,110,0,18,0,147,255,16,255,29,255,86,0,113,1,202,0,201,255, +87,0,241,0,207,255,149,254,40,255,111,0,173,0,20,0,234,255,115,0,144,0,176,255,248,254,56,255,167,255,218,255, +95,0,246,0,202,0,12,0,117,255,90,255,152,255,151,255,57,255,80,255,231,255,15,0,21,0,220,0,111,1,185,0, +182,255,84,255,39,255,71,255,76,0,136,1,176,1,181,0,170,255,83,255,82,255,91,255,39,0,122,1,97,1,199,255, +37,255,248,255,53,0,127,255,54,255,156,255,73,0,215,0,139,0,189,255,185,255,44,0,159,255,127,254,138,254,10,0, +134,1,116,1,221,255,174,254,63,255,5,0,82,255,167,254,187,255,25,1,12,1,49,0,143,255,168,255,28,0,37,255, +112,253,171,254,184,1,195,1,88,0,97,1,235,1,128,255,11,254,8,255,187,255,2,0,146,0,127,0,70,0,93,0, +229,255,159,255,241,255,57,255,24,254,122,254,157,255,182,0,156,1,252,0,182,255,232,255,21,0,59,255,74,255,199,255, +22,0,45,2,148,3,89,0,241,252,34,254,181,255,83,254,186,253,83,0,31,3,98,2,5,255,80,254,243,0,253,0, +243,253,42,254,125,1,217,1,47,255,182,254,148,1,221,2,130,255,186,252,48,255,139,1,150,255,94,254,191,255,47,0, +186,0,184,1,174,255,138,253,16,255,210,255,20,255,78,1,214,2,26,0,79,255,167,1,145,0,42,253,242,252,213,254, +24,0,166,0,135,0,99,0,167,0,113,0,251,255,100,255,89,254,213,254,229,0,60,1,252,0,91,2,133,1,72,254, +107,254,250,255,236,253,20,253,34,1,122,3,228,0,185,254,118,255,128,0,150,0,46,0,129,255,120,255,192,0,16,1, +126,254,24,253,37,0,5,2,108,255,142,254,127,0,4,0,150,255,87,1,166,255,246,252,127,255,84,0,148,252,10,255, +3,6,34,5,204,255,125,254,95,254,133,254,240,0,78,1,160,255,198,0,35,1,232,253,235,253,32,2,234,2,127,255, +136,253,254,254,232,0,5,0,108,254,158,0,142,3,134,1,250,253,78,254,14,0,245,255,56,255,48,255,173,255,234,255, +81,255,210,254,66,255,221,255,57,0,133,0,208,0,33,1,196,0,44,0,236,0,172,0,35,254,118,255,208,4,119,4, +62,255,189,254,5,1,176,0,32,0,30,255,218,253,37,1,237,2,154,252,149,251,113,5,168,7,37,255,147,253,26,2, +121,0,32,253,95,254,187,255,15,0,135,1,64,2,86,1,83,255,211,252,63,253,115,0,91,1,163,0,163,1,48,2, +34,2,153,3,241,2,141,255,108,255,89,0,195,252,194,251,220,2,94,7,188,2,231,254,120,1,194,2,103,255,164,253, +6,0,165,2,88,3,197,2,76,1,193,255,33,255,160,254,68,253,156,252,29,255,249,2,64,3,164,0,231,255,161,255, +168,253,6,255,167,3,118,3,185,255,99,255,151,255,132,254,38,1,176,3,224,0,8,0,240,2,159,0,183,251,216,252, +34,1,245,4,30,7,121,2,141,252,92,0,217,4,74,0,249,254,5,5,229,5,225,2,180,2,144,0,106,255,139,4, +236,4,179,254,52,255,154,2,52,0,175,0,205,3,121,0,55,0,79,7,58,6,9,255,49,0,208,2,88,0,161,1, +3,4,37,1,132,1,108,5,66,3,83,255,132,255,14,0,241,1,19,4,30,0,101,254,38,6,171,8,0,1,198,254, +43,3,7,4,161,2,227,255,169,252,29,3,96,13,161,7,228,250,88,254,64,8,132,3,159,248,171,250,53,7,3,13, +132,5,177,253,173,0,54,5,157,0,82,250,174,252,53,5,159,9,117,3,8,251,68,254,98,7,5,6,140,253,136,251, +65,0,17,5,149,4,238,253,169,252,164,6,58,10,6,255,187,248,120,255,78,3,21,255,12,252,212,252,28,255,252,0, +118,0,85,0,146,2,25,2,188,254,41,254,71,255,166,255,198,1,89,4,84,4,13,3,249,255,224,251,137,252,100,255, +128,253,220,252,145,3,168,8,255,4,149,254,5,253,177,0,140,2,239,253,135,251,60,2,156,6,56,0,126,250,109,253, +212,0,74,255,188,252,42,252,244,254,11,4,128,3,164,251,215,250,95,5,170,6,2,249,212,246,211,6,125,11,73,253, +51,247,245,0,25,7,140,1,143,249,120,248,14,255,112,3,201,254,8,250,167,253,15,4,160,4,194,253,202,247,75,252, +188,2,46,254,248,249,97,1,90,6,237,1,216,254,253,252,232,249,102,252,190,254,28,250,129,251,99,5,18,6,76,252, +174,246,173,249,42,0,189,1,114,253,14,1,246,10,56,4,236,241,119,241,204,0,118,8,253,4,177,255,159,255,110,4, +22,1,93,244,125,243,206,0,5,7,99,3,199,0,197,254,136,252,61,251,222,248,64,251,218,3,86,4,48,252,216,250, +142,254,61,254,41,254,240,255,44,0,187,0,29,255,218,249,42,250,23,0,45,2,25,3,38,5,226,0,127,250,66,251, +177,253,207,253,161,1,16,7,17,6,231,255,103,252,104,254,90,255,169,251,207,252,171,4,32,6,131,1,227,0,27,255, +105,251,27,0,181,3,220,252,179,254,163,12,76,13,33,1,221,253,194,1,237,1,247,254,150,250,13,251,216,4,251,9, +52,3,0,255,88,0,181,253,12,252,73,255,184,254,145,252,85,1,63,7,128,7,236,4,108,1,216,254,57,0,244,0, +1,253,40,252,234,2,196,6,25,1,32,252,0,255,79,1,196,254,76,254,223,255,70,255,35,0,83,1,184,254,81,1, +245,9,46,7,180,251,59,251,20,0,97,254,83,1,189,10,119,10,20,2,171,254,93,255,132,254,243,251,33,252,109,4, +34,12,40,6,165,253,205,0,253,3,248,254,222,251,253,252,243,255,201,6,236,8,140,1,157,254,185,2,29,2,47,0, +236,1,47,255,141,250,170,253,127,3,20,6,227,6,142,4,28,2,114,4,121,3,84,251,45,249,184,1,143,8,55,5, +198,252,211,251,226,4,149,7,75,254,216,251,71,3,136,1,23,249,206,250,91,1,209,3,107,9,213,15,125,9,147,251, +92,247,157,252,232,254,9,254,248,2,249,10,162,10,50,2,195,251,221,250,181,252,25,255,136,0,219,1,110,3,238,0, +185,251,169,252,253,1,61,3,244,2,208,2,236,253,89,251,194,0,30,1,206,251,152,1,247,10,164,4,127,249,181,250, +209,255,4,255,97,254,85,1,76,1,133,252,219,251,219,0,42,255,110,248,126,253,40,7,236,1,39,249,171,253,249,2, +19,254,202,248,173,250,5,1,238,3,242,254,15,253,77,4,32,4,2,249,109,247,208,0,155,3,5,0,88,0,251,2, +236,2,120,0,16,253,112,250,52,252,219,2,232,5,138,0,231,253,80,2,232,0,239,251,67,1,52,7,177,1,116,253, +112,2,47,7,176,5,186,254,186,250,71,1,101,4,224,251,53,253,235,9,66,7,1,251,19,253,197,2,245,252,18,249, +125,1,8,11,174,8,86,254,39,252,68,3,202,4,221,0,189,0,60,0,153,253,139,254,44,0,159,0,149,2,232,1, +92,255,40,0,102,254,127,249,162,250,9,255,67,3,186,9,15,8,168,252,209,249,235,252,203,248,240,249,217,2,236,255, +135,248,249,254,165,5,64,0,214,251,156,253,147,253,36,252,107,253,221,254,103,253,110,252,18,0,102,4,140,4,33,2, +110,253,154,248,61,251,43,0,155,252,230,249,229,0,238,6,233,8,252,11,90,8,250,251,145,244,126,247,45,254,8,1, +60,255,242,4,230,17,217,12,39,246,168,239,147,252,32,3,159,0,162,255,83,1,3,6,133,8,147,2,184,252,109,251, +90,248,36,250,77,5,87,10,5,5,178,1,136,0,195,253,227,253,28,254,131,250,26,251,20,2,249,4,161,0,247,253, +170,2,9,8,115,4,23,252,249,250,253,254,17,254,156,252,177,3,88,11,21,8,0,0,12,252,0,249,101,248,209,0, +176,6,138,254,62,249,118,2,45,8,191,2,11,0,180,0,29,253,234,249,2,251,70,255,174,6,17,10,135,4,189,254, +64,251,238,245,235,246,123,0,63,5,96,5,167,8,45,6,201,252,155,252,150,2,95,255,140,250,76,255,250,4,59,6, +106,7,7,5,99,254,22,253,196,255,66,253,30,251,234,1,109,10,155,10,203,3,71,254,211,254,44,255,46,250,210,250, +141,5,54,8,234,253,198,250,208,2,100,6,26,3,47,0,161,255,161,2,143,5,116,2,184,255,85,3,203,5,131,5, +240,7,242,6,27,255,182,252,39,3,121,5,65,0,250,253,78,2,92,6,81,6,102,4,250,1,88,0,43,2,33,5, +125,4,58,2,248,1,191,2,235,3,166,4,234,2,55,1,12,2,185,2,199,2,247,3,51,5,137,5,77,3,111,255, +21,2,230,7,252,1,119,248,246,252,251,2,38,253,247,249,125,255,19,3,237,3,254,1,184,251,244,251,228,2,30,1, +5,251,89,255,240,7,131,9,237,4,56,255,49,253,54,253,202,250,77,253,198,7,14,11,32,3,127,253,6,253,228,252, +224,253,163,254,179,254,191,1,171,4,2,2,35,252,213,248,176,251,40,0,68,254,221,251,101,0,142,2,110,255,135,0, +207,1,108,254,150,254,186,254,43,248,142,247,69,1,162,7,118,6,126,0,139,248,45,248,93,253,185,251,88,250,189,2, +45,8,86,3,150,254,143,254,176,254,115,251,240,247,176,251,123,2,110,1,56,253,58,252,223,250,140,253,55,4,13,1, +129,249,16,252,80,254,231,249,123,250,19,254,102,0,137,5,165,2,138,246,117,248,234,3,179,0,19,250,29,0,168,3, +199,253,153,251,217,254,172,254,39,249,235,246,194,255,33,9,41,5,175,252,93,252,238,0,124,3,88,254,149,245,178,250, +55,8,245,3,133,246,233,249,24,4,242,3,22,1,180,0,80,255,62,253,121,248,242,243,220,249,14,6,38,10,31,4, +34,253,105,252,179,253,32,249,133,246,237,253,159,3,36,2,196,0,14,252,146,246,119,252,179,1,72,249,5,244,82,249, +244,253,136,2,125,4,53,254,220,253,226,3,67,253,73,245,148,252,166,1,233,254,181,2,63,4,46,253,1,253,241,255, +202,249,9,247,78,253,164,254,8,252,128,255,12,3,29,255,53,250,119,251,179,254,8,254,57,252,8,252,14,252,4,255, +198,2,142,254,154,250,139,2,151,6,136,251,251,244,74,252,149,2,225,0,225,250,37,246,230,250,16,5,230,5,209,252, +16,246,32,250,7,5,27,6,26,251,124,250,15,7,155,9,19,1,221,252,109,252,57,253,2,0,111,255,78,254,177,255, +42,251,237,248,95,5,91,11,182,255,177,253,83,7,142,1,42,245,6,250,88,5,145,7,111,5,73,2,183,255,211,3, +94,9,158,5,169,253,86,252,243,255,110,2,170,3,216,4,241,6,123,10,29,9,83,255,252,249,149,0,213,4,94,1, +184,2,87,6,249,1,72,255,244,3,47,2,169,249,115,250,27,4,152,7,141,1,192,253,168,3,106,9,235,5,111,2, +61,4,149,1,23,253,19,1,219,4,35,1,18,0,6,2,213,255,177,0,93,5,192,0,44,248,84,251,110,3,159,4, +105,4,36,6,169,3,104,254,123,252,91,254,71,2,164,3,114,254,161,251,24,3,179,7,128,255,204,249,72,1,122,8, +81,4,30,251,87,246,222,248,159,254,64,2,248,3,177,3,220,255,252,254,122,3,170,0,126,246,48,249,169,8,2,12, +34,255,131,248,52,0,34,6,162,1,28,253,91,254,109,254,108,253,136,1,112,5,105,3,221,1,103,2,197,254,181,250, +178,253,67,3,253,3,203,1,128,2,97,5,81,4,243,255,150,255,2,2,131,255,5,250,107,249,172,253,193,0,202,1, +14,5,40,6,55,252,244,242,73,250,118,1,61,250,149,252,51,13,194,10,110,248,131,249,37,6,243,1,29,247,4,250, +88,3,253,3,132,252,217,248,94,253,38,1,248,0,71,2,204,1,75,252,6,250,144,253,186,255,24,254,66,252,239,254, +200,4,63,5,6,2,160,2,247,255,86,249,102,252,254,0,97,250,122,250,243,5,225,5,52,0,230,5,187,3,68,241, +67,235,141,249,141,5,145,7,198,7,177,7,8,3,108,249,240,241,27,243,247,250,20,4,164,8,98,5,203,255,223,251, +54,247,72,246,181,250,132,251,90,253,236,7,249,10,89,0,232,251,21,254,80,248,153,243,99,251,56,6,152,8,123,1, +234,251,6,2,223,6,34,255,244,250,30,1,157,3,16,2,131,0,197,250,57,249,119,1,156,6,144,5,174,2,88,250, +206,244,18,250,45,253,141,252,33,2,40,3,78,252,172,254,255,4,233,255,67,249,187,249,206,250,137,251,167,252,253,253, +63,3,33,6,249,255,36,251,251,250,30,247,218,246,162,0,190,4,222,253,144,254,3,10,63,9,61,247,224,240,74,0, +21,7,185,251,120,249,103,2,199,2,2,0,223,0,228,252,46,251,12,2,115,3,102,254,234,253,22,0,177,3,82,6, +145,254,98,247,197,253,185,0,48,251,64,255,180,5,235,1,233,1,198,6,173,2,13,254,166,1,200,4,39,6,124,7, +244,3,57,255,90,254,164,254,12,1,50,4,224,1,71,255,95,2,27,4,209,1,149,0,159,255,34,254,92,0,87,6, +68,9,117,4,188,255,69,4,179,7,249,255,48,251,13,1,135,3,117,255,115,253,196,253,102,0,255,3,216,2,208,2, +237,6,35,2,134,248,240,251,7,5,239,5,137,3,225,1,114,1,10,3,3,255,40,249,115,255,55,6,193,0,227,255, +136,6,33,4,25,255,165,255,83,253,170,253,52,4,7,2,85,253,112,4,82,7,195,255,178,0,20,5,223,254,83,251, +239,254,149,251,227,248,234,2,140,9,206,2,0,0,99,6,184,4,190,249,54,246,72,250,249,251,89,0,126,8,76,7, +41,1,157,4,213,6,11,252,110,244,245,250,106,3,70,4,53,255,160,251,147,1,115,9,99,4,247,248,201,246,156,251, +91,254,3,254,238,253,142,1,205,5,70,3,144,252,143,248,241,246,38,249,62,0,254,3,179,2,67,3,178,1,189,250, +128,249,108,0,172,4,28,4,211,1,77,253,28,250,199,250,134,252,216,0,172,5,104,1,213,249,93,254,168,7,160,4, +103,251,254,251,63,4,61,5,138,250,230,242,30,251,68,7,68,6,54,255,113,0,167,5,68,4,27,253,223,247,249,249, +127,1,143,6,228,4,140,0,95,0,3,5,114,5,23,253,81,248,233,255,252,6,97,2,159,250,237,249,233,255,9,6, +3,4,150,251,150,250,75,3,113,6,27,254,18,247,180,250,23,1,131,255,74,251,204,255,110,8,110,9,14,3,34,249, +191,236,117,231,139,242,11,4,120,10,53,5,154,1,95,2,182,251,51,239,168,239,250,253,194,7,214,8,22,7,133,1, +39,253,150,0,150,2,144,252,123,248,214,252,206,3,80,5,149,0,246,254,33,3,92,2,212,252,181,251,188,251,110,253, +165,6,80,9,252,254,121,253,109,6,129,5,114,0,32,3,63,4,184,1,87,255,146,248,11,247,24,3,75,8,49,255, +181,253,190,4,21,2,28,251,60,254,58,5,213,3,40,253,207,252,170,2,132,4,66,3,36,5,157,3,35,251,127,246, +97,250,8,1,101,6,107,7,228,4,27,5,16,7,227,3,213,253,189,253,109,4,179,7,113,3,173,2,85,6,224,0, +183,249,96,255,86,2,18,250,77,251,96,5,150,5,119,2,16,4,194,2,228,255,104,252,38,246,104,249,156,4,42,5, +33,3,215,8,200,4,76,249,189,251,215,2,103,0,179,252,69,250,7,249,7,0,154,7,191,5,33,2,246,1,159,1, +21,255,161,249,43,247,185,251,227,254,4,1,139,6,205,3,190,251,185,254,126,0,147,249,62,253,69,3,141,252,101,254, +24,8,176,1,139,252,95,4,59,254,89,240,68,245,75,1,37,7,26,8,58,255,27,250,96,3,233,1,153,245,175,251, +31,7,9,2,165,253,76,1,63,2,174,2,45,1,212,252,170,254,15,255,161,249,150,253,189,2,72,253,163,0,64,8, +23,253,141,244,169,252,127,250,38,244,125,255,251,5,127,254,196,1,55,8,21,0,75,250,168,253,26,251,8,248,254,254, +119,4,59,2,25,3,93,5,231,251,115,239,42,242,234,249,94,249,70,254,71,9,251,6,248,255,138,2,14,0,242,247, +254,249,205,252,75,251,227,2,2,9,187,1,96,254,95,2,168,0,244,254,2,1,119,255,227,253,9,254,48,254,196,4, +140,8,70,252,103,242,114,249,190,1,182,2,97,254,165,246,62,250,54,8,251,5,14,248,152,249,184,2,244,0,50,250, +141,246,42,250,223,5,254,10,226,1,140,247,255,242,40,243,63,248,190,250,7,249,177,254,153,8,40,8,190,254,48,247, +153,247,121,253,20,254,130,249,152,251,189,1,15,4,48,5,128,0,10,245,245,245,122,4,153,9,130,3,132,255,101,253, +135,252,168,254,169,254,157,254,144,4,136,9,81,5,157,251,98,246,122,251,122,2,99,1,186,255,175,3,69,5,208,2, +190,254,234,247,56,247,95,255,191,1,76,0,203,5,85,5,171,251,94,252,228,2,19,254,142,247,204,249,216,253,34,1, +99,4,176,5,225,5,82,2,245,251,231,252,191,1,245,254,9,251,119,254,71,4,110,7,4,4,220,252,179,254,183,3, +7,253,73,249,167,3,223,6,99,255,134,0,223,4,168,0,140,253,68,255,25,255,133,254,15,255,15,0,169,3,36,6, +253,2,191,252,118,246,189,246,73,1,209,7,79,2,215,255,215,4,123,4,158,254,191,251,35,253,117,0,39,1,167,255, +127,3,196,8,13,7,107,4,101,3,19,0,230,2,10,10,124,3,80,247,142,251,207,7,224,9,6,3,33,253,128,0, +105,7,147,1,69,247,113,251,121,2,71,0,72,0,107,2,73,2,245,7,52,8,32,250,92,249,103,8,248,4,173,248, +198,0,43,9,119,1,86,255,13,4,7,1,171,255,87,4,189,2,230,252,177,251,117,254,75,2,15,2,61,254,110,1, +223,6,71,0,103,247,7,250,117,255,14,1,24,2,136,0,134,255,183,4,64,6,215,253,252,247,25,252,122,2,142,2, +191,252,78,251,227,1,113,4,89,0,124,0,89,2,148,255,239,253,133,252,168,248,112,251,137,1,57,1,5,5,171,11, +112,1,95,244,88,252,122,5,126,255,135,253,237,1,201,255,33,0,125,5,221,1,117,252,50,2,121,6,241,254,206,247, +136,251,60,3,67,2,148,250,244,251,165,6,67,9,178,1,112,252,227,251,128,252,160,253,144,254,77,1,115,4,218,0, +248,251,203,255,193,2,180,253,51,253,112,2,147,1,237,254,38,1,129,1,242,0,131,4,126,3,142,251,159,248,3,252, +14,0,179,5,52,6,21,252,99,248,58,2,106,3,78,249,238,250,219,3,28,2,136,255,67,1,91,250,72,246,34,3, +120,10,26,2,25,1,22,7,82,1,240,248,118,251,164,1,40,5,0,4,119,253,20,251,11,255,177,254,124,252,185,255, +153,1,33,0,177,0,204,255,252,252,181,253,117,255,207,0,206,2,194,255,86,251,65,255,250,2,165,255,37,0,66,4, +137,2,239,254,162,252,17,251,121,0,69,7,169,4,38,2,204,2,144,249,88,242,175,254,27,10,78,4,225,0,207,5, +127,0,87,244,133,245,194,0,108,4,221,1,160,5,44,10,210,1,140,245,94,247,144,1,159,4,227,2,129,4,138,5, +247,0,222,251,189,251,253,253,190,255,114,2,39,5,137,5,38,4,234,0,149,254,162,1,169,2,94,252,218,251,113,2, +235,1,108,2,97,11,219,7,195,249,203,250,213,0,143,252,24,255,193,6,122,2,192,0,32,8,112,5,33,254,20,255, +109,254,90,254,197,5,113,6,107,0,202,0,249,254,205,248,228,251,67,1,126,255,212,255,200,2,181,2,210,0,47,250, +236,246,17,4,160,12,134,254,144,245,210,0,154,7,70,2,199,255,150,1,137,0,147,251,127,249,253,255,87,4,45,254, +137,250,36,254,82,255,196,255,141,255,236,250,164,253,111,6,124,3,86,254,30,2,186,254,72,249,193,2,68,8,106,255, +56,253,220,1,46,0,182,251,181,246,129,246,179,1,156,6,157,254,83,254,3,0,112,246,113,245,165,254,214,254,109,1, +199,9,252,2,207,248,69,251,208,249,188,247,165,2,176,6,78,254,137,252,105,252,27,251,113,4,15,8,35,252,183,251, +43,7,50,4,191,250,64,252,205,0,12,3,241,4,58,3,90,0,163,254,242,249,57,247,181,252,91,2,6,2,190,1, +151,4,215,4,178,0,238,254,96,255,50,251,194,250,0,5,205,6,163,251,234,252,239,7,129,4,16,252,64,253,158,254, +101,0,27,5,242,0,41,251,244,0,155,4,17,1,128,1,245,254,79,249,49,0,72,8,61,3,203,0,113,2,155,250, +106,247,43,1,50,3,109,253,154,0,101,4,119,1,83,4,103,8,60,255,227,246,30,255,22,7,3,2,66,255,68,3, +89,0,32,251,243,254,250,2,137,1,37,1,215,255,26,254,237,1,57,2,17,251,177,250,52,0,228,1,238,3,251,1, +32,249,113,252,154,7,164,1,16,249,208,0,128,4,142,254,220,254,130,254,49,251,93,1,225,6,152,2,85,255,230,252, +156,252,43,6,71,7,170,248,139,246,106,0,198,255,79,255,38,4,241,255,152,254,207,3,238,250,112,245,224,6,23,12, +206,251,118,252,186,6,210,252,6,243,211,248,234,249,212,249,35,5,225,5,149,246,155,247,5,9,200,7,216,245,198,241, +194,251,92,2,235,2,16,254,52,248,53,253,139,5,39,2,67,254,218,0,133,251,12,244,123,247,113,248,238,245,6,1, +151,12,16,6,9,252,22,251,23,253,14,253,101,248,215,246,147,1,101,6,9,251,182,248,62,1,88,252,214,242,86,243, +223,243,230,248,18,6,205,5,100,252,243,1,51,10,166,4,111,253,218,249,158,247,62,251,158,254,57,255,83,7,104,13, +123,3,233,248,39,250,194,251,239,246,109,242,113,248,76,9,164,16,108,4,211,249,210,250,149,250,177,249,189,253,194,0, +21,3,140,5,130,2,127,255,242,255,102,252,247,251,81,3,253,0,9,248,200,254,143,10,139,5,237,248,73,244,130,249, +39,3,236,4,166,254,140,255,160,4,187,2,97,2,252,3,120,252,160,249,16,7,5,14,138,3,83,252,169,0,18,5, +214,3,206,254,253,251,150,0,63,6,188,5,87,3,72,3,230,4,162,6,65,2,81,248,252,247,42,3,128,7,8,2, +185,1,79,8,169,11,42,7,237,253,32,251,133,3,193,6,197,253,249,251,138,4,255,4,248,0,103,3,189,1,17,253, +23,3,152,6,154,252,180,249,5,2,15,2,130,253,210,255,85,1,155,0,209,1,207,254,28,253,189,5,38,8,101,252, +159,249,252,5,224,11,88,5,234,254,217,254,193,2,157,3,112,253,46,248,120,251,18,3,62,8,68,7,1,0,187,249, +166,249,107,251,126,254,3,7,25,13,114,6,131,252,79,253,59,2,103,0,125,254,46,2,231,2,128,255,62,0,167,1, +174,254,3,255,216,2,255,255,216,250,208,254,161,5,197,2,86,251,112,253,63,5,68,2,151,250,223,0,111,8,2,255, +76,248,79,0,222,0,223,250,118,0,154,2,215,248,98,249,25,0,67,251,253,250,215,4,174,2,174,250,103,255,67,4, +209,255,66,253,26,254,156,254,174,255,189,253,56,252,254,1,149,5,86,2,104,2,69,2,85,252,75,252,17,1,100,254, +201,253,54,6,246,7,143,1,66,0,165,255,209,250,162,251,163,255,65,252,25,250,225,1,150,7,44,4,66,0,75,253, +202,249,208,253,42,4,4,254,143,249,4,8,206,16,145,3,136,252,101,3,108,255,52,247,70,253,51,2,34,253,58,253, +183,0,31,254,144,251,221,251,246,254,75,8,35,13,92,5,222,254,136,254,50,252,222,253,144,5,101,7,91,6,93,9, +150,6,111,253,22,251,248,255,83,4,163,4,76,0,86,254,111,3,251,6,161,6,203,7,32,4,183,250,61,250,6,2, +166,3,28,0,138,255,112,3,151,10,13,11,72,253,100,242,37,249,128,1,150,254,251,252,22,3,72,7,59,7,2,7, +77,5,137,2,79,1,167,254,29,251,3,254,164,4,88,5,227,2,57,3,220,1,226,253,255,252,187,253,16,254,196,0, +142,2,223,1,177,5,154,10,134,6,210,255,111,255,223,254,78,251,119,253,106,5,226,8,35,5,73,1,60,1,248,1, +202,1,201,0,176,253,99,252,217,0,183,3,179,2,124,7,61,13,206,7,222,0,214,2,189,4,125,2,25,1,125,1, +43,5,170,7,151,1,72,254,186,4,252,3,81,251,181,250,106,253,109,255,88,7,81,9,192,1,176,2,81,5,160,253, +84,253,51,4,86,1,113,1,148,6,215,252,40,245,40,2,186,10,137,6,55,5,93,255,12,247,180,252,24,0,39,248, +235,253,131,11,57,6,185,251,6,254,161,0,237,253,235,253,167,1,117,6,139,6,252,255,180,253,145,1,224,0,116,254, +49,0,128,255,173,253,29,1,109,1,97,250,252,248,212,0,47,4,217,255,235,0,81,7,72,3,153,249,101,253,116,5, +252,255,81,250,96,0,216,3,154,255,86,253,158,253,124,254,2,255,241,250,9,249,80,1,221,6,71,0,237,251,237,1, +7,4,174,249,34,242,34,250,40,2,199,253,172,254,33,8,52,3,165,247,212,251,69,255,140,246,240,247,210,2,124,4, +126,3,133,3,166,252,173,250,64,2,210,0,79,248,148,250,248,2,181,3,209,252,166,248,247,254,25,5,166,254,185,248, +202,252,66,253,158,249,150,251,183,253,72,1,142,9,179,4,206,245,234,250,248,9,214,2,45,243,155,245,66,1,249,5, +207,2,64,253,184,251,112,251,161,247,56,250,189,3,136,1,142,247,46,252,23,8,10,6,136,251,120,248,34,254,27,4, +194,1,78,250,250,250,231,0,156,253,59,247,119,251,58,2,203,0,128,252,129,249,183,247,151,251,233,2,213,4,83,2, +142,0,188,254,249,254,186,5,217,13,81,12,148,254,50,240,1,238,133,245,53,0,214,17,40,36,192,34,232,12,243,244, +56,228,5,225,61,242,39,14,163,36,204,45,217,35,132,11,211,245,198,233,93,231,9,242,242,3,42,21,97,35,94,32, +127,7,46,244,46,242,21,241,57,244,168,1,159,6,74,3,56,8,196,8,101,251,115,244,112,249,189,253,3,1,90,2, +156,254,5,255,230,3,186,1,27,253,84,255,111,1,144,253,30,250,241,252,86,2,84,1,82,251,55,252,238,2,91,4, +48,2,140,0,48,251,241,245,17,248,219,252,66,1,211,8,204,13,237,7,19,252,20,244,212,243,183,250,228,4,66,11, +187,8,65,1,91,253,118,253,251,252,20,254,233,1,194,1,35,254,179,255,13,3,122,254,64,249,21,255,19,6,54,2, +21,255,89,3,137,254,240,241,186,244,197,2,172,7,238,7,179,8,214,0,14,249,255,252,221,254,139,248,87,248,220,254, +16,2,211,1,89,0,54,0,243,3,216,3,148,251,177,247,49,255,126,5,74,255,97,246,224,251,150,8,217,6,174,251, +177,249,31,252,55,251,69,253,58,0,43,0,13,3,107,6,203,5,159,5,154,2,173,251,7,251,8,253,145,252,224,2, +95,7,29,255,133,253,1,5,30,0,87,249,113,253,196,252,149,252,163,6,90,5,94,252,172,3,167,8,144,254,30,255, +246,5,104,254,88,250,187,2,5,3,78,253,23,0,33,4,47,1,156,252,8,253,196,0,104,255,220,251,171,0,95,6, +158,4,38,3,0,0,6,249,156,252,205,4,202,255,106,250,135,254,226,254,23,254,124,0,169,251,94,249,213,2,228,4, +178,253,217,252,157,252,155,251,190,0,211,255,246,250,232,2,59,7,158,251,249,246,250,250,216,248,124,251,36,3,196,255, +62,252,67,2,143,3,79,1,181,3,47,0,180,247,104,249,64,1,197,2,178,255,139,255,41,3,45,3,185,252,127,248, +186,248,156,249,80,0,148,7,100,1,238,250,154,2,237,4,64,251,22,251,177,1,152,255,167,254,6,2,152,252,41,248, +20,2,23,9,43,1,173,249,135,250,185,252,95,255,80,2,223,1,36,1,19,1,192,253,184,253,116,3,97,1,204,250, +224,0,5,9,153,4,178,0,73,0,34,250,200,251,14,7,202,4,216,252,138,2,30,4,41,250,246,249,23,1,137,3, +119,7,12,8,56,1,42,2,197,5,61,255,244,0,188,13,206,9,99,251,160,254,182,10,78,9,149,253,4,247,203,252, +114,6,79,7,212,1,214,254,190,0,34,6,22,5,73,249,228,245,51,2,172,9,190,7,92,7,163,5,88,3,138,4, +99,0,32,252,255,2,60,5,87,254,160,0,185,2,12,250,185,251,96,4,213,254,71,252,163,5,97,2,214,248,125,253, +230,0,227,251,136,253,40,1,22,3,114,13,54,18,46,2,37,241,252,239,251,247,226,1,70,7,6,7,67,11,227,15, +61,7,114,250,181,246,40,247,213,250,78,3,131,5,208,255,226,254,82,3,244,3,216,253,246,244,51,244,109,255,25,7, +207,2,45,254,246,253,109,255,196,4,70,6,43,253,100,248,163,253,118,254,248,252,192,1,195,2,127,254,160,254,229,254, +230,255,192,7,248,6,123,249,184,247,163,0,103,1,13,4,137,11,208,4,162,250,52,255,109,0,43,247,174,248,207,3, +85,8,69,7,92,3,111,254,240,0,196,5,236,1,214,253,55,2,51,7,236,6,35,2,99,250,183,247,99,255,84,6, +199,1,48,251,172,0,177,10,64,7,207,249,173,244,176,251,187,6,59,14,14,11,210,1,183,0,134,4,203,0,204,250, +134,250,28,252,90,254,42,1,181,0,124,0,10,3,72,1,229,251,175,250,247,251,141,252,251,254,198,2,124,5,56,5, +255,255,81,251,203,253,227,0,64,254,75,253,205,1,32,3,74,255,20,0,173,5,222,3,100,252,197,253,86,4,114,3, +43,1,155,2,41,255,182,250,49,253,114,254,58,255,155,8,109,13,14,3,190,250,140,254,164,3,11,4,250,1,185,0, +9,3,7,5,90,2,234,252,235,247,140,250,149,5,151,7,228,253,249,252,68,2,189,254,242,252,128,0,138,253,206,255, +51,13,5,13,148,254,87,249,210,250,200,250,90,255,125,2,202,253,171,251,184,254,155,0,57,1,39,255,126,251,107,252, +50,255,214,1,134,8,206,11,56,7,190,5,52,4,23,249,48,244,3,255,153,5,108,1,89,2,245,6,45,2,41,251, +40,254,101,2,163,254,183,252,73,255,218,251,202,250,246,5,246,8,126,252,66,250,19,3,146,1,177,253,33,3,41,5, +71,1,9,1,95,1,241,255,16,1,52,3,252,2,240,253,12,247,17,250,9,3,139,0,58,249,200,251,213,0,40,3, +100,4,109,253,254,244,42,249,179,255,231,255,53,1,121,255,5,251,76,1,94,7,236,253,2,246,155,250,116,254,236,253, +253,253,180,255,101,3,76,1,175,247,48,246,231,251,224,250,67,251,198,0,175,253,97,250,28,1,190,254,119,241,244,241, +82,253,10,253,217,241,235,235,42,241,247,247,65,247,51,246,242,249,189,249,56,246,9,246,88,245,239,246,154,254,86,0, +205,253,197,4,100,9,250,1,146,254,185,254,56,247,242,244,19,254,246,4,190,7,233,7,117,2,144,255,131,254,184,245, +226,243,163,1,51,7,138,0,153,1,61,4,16,254,236,252,165,2,72,2,209,255,70,1,109,0,102,254,86,0,40,1, +21,254,172,252,66,254,234,255,76,1,101,1,239,254,45,254,41,1,191,0,65,252,65,254,239,4,211,3,45,255,18,1, +185,2,167,255,194,0,117,5,239,3,199,253,66,253,161,5,69,12,238,4,207,248,34,250,141,2,226,2,160,0,33,2, +141,1,96,0,141,1,109,254,174,249,252,252,126,2,150,1,4,0,201,1,167,1,212,255,82,1,86,2,132,251,154,243, +118,248,127,4,206,5,74,255,105,255,209,1,109,254,145,252,166,254,89,254,230,254,241,1,48,0,15,254,133,2,152,2, +248,250,68,251,123,2,187,1,244,254,182,4,89,9,27,5,251,253,204,248,193,249,47,2,161,6,40,1,247,253,248,2, +29,7,101,5,168,0,177,253,7,0,179,2,182,0,25,1,154,5,70,4,44,0,27,3,112,4,239,252,61,249,211,253, +211,255,10,0,167,4,61,6,125,1,34,0,24,3,70,3,86,2,17,2,152,255,148,254,207,255,113,252,181,250,250,2, +105,6,16,252,71,246,237,251,58,255,110,255,116,2,226,2,90,255,33,253,90,254,47,5,79,11,71,4,90,249,82,252, +81,5,145,7,217,7,69,7,219,1,117,254,19,1,100,2,228,255,106,255,5,3,51,4,134,255,204,253,199,1,44,0, +168,251,73,1,176,7,109,2,98,252,2,253,180,254,56,1,82,2,106,254,34,253,80,0,33,0,144,254,116,254,194,252, +213,252,75,255,98,0,123,3,225,4,159,255,125,0,217,5,117,254,183,249,66,6,121,9,45,254,252,254,2,4,251,251, +118,247,29,254,87,3,138,4,230,0,122,250,167,251,228,254,64,252,32,254,250,2,29,1,160,0,195,0,28,250,111,250, +209,1,134,254,61,251,62,2,80,3,4,1,203,3,180,252,221,243,217,253,217,6,189,1,211,2,151,5,11,252,44,249, +181,3,151,7,207,2,58,255,105,254,210,1,201,3,33,254,180,251,226,255,213,254,88,252,159,0,238,2,166,0,233,255, +116,253,229,251,21,3,221,6,57,253,149,248,62,3,75,9,202,0,232,249,236,252,201,0,29,1,25,0,232,253,34,252, +255,251,143,252,110,0,94,5,238,2,54,255,162,3,240,3,78,250,99,248,172,255,42,1,23,1,132,5,189,4,98,0, +186,1,194,1,206,250,85,247,251,253,24,6,75,4,151,252,81,253,51,3,26,0,20,251,71,0,136,6,45,5,117,1, +94,255,221,255,192,0,220,253,112,253,239,3,253,6,241,3,138,1,143,254,144,254,207,4,44,3,250,249,116,252,36,4, +237,1,5,255,59,254,32,250,123,253,92,5,228,255,51,248,156,255,249,9,70,10,160,2,66,250,65,252,206,3,218,255, +50,250,173,1,159,5,38,254,85,252,149,255,131,253,237,251,253,252,1,253,10,0,197,3,16,2,183,0,147,3,188,5, +183,4,201,255,149,251,116,0,149,6,145,1,125,250,25,252,16,0,22,1,16,0,153,254,190,1,192,5,128,0,215,251, +19,4,217,9,65,3,214,0,18,5,254,1,212,253,10,1,240,255,126,251,202,2,10,12,172,6,14,254,176,253,158,253, +220,251,219,252,97,254,71,2,67,8,93,5,145,252,177,252,56,2,53,3,152,1,224,254,113,254,29,4,72,3,57,248, +249,247,106,2,253,1,91,253,219,2,185,5,211,255,218,253,235,255,43,254,102,251,217,252,57,2,198,5,224,2,253,254, +225,254,167,254,147,253,122,251,115,246,68,247,39,1,64,5,57,1,184,0,106,1,10,0,90,1,108,0,35,252,107,253, +178,255,33,254,171,0,226,2,253,253,212,252,103,1,173,3,21,6,167,4,15,252,249,252,152,5,208,255,29,247,179,255, +157,8,79,5,69,3,6,4,239,255,135,251,18,251,127,252,95,254,83,1,159,6,38,8,202,0,93,252,25,255,168,250, +38,244,101,251,174,5,225,7,107,7,31,2,252,251,215,0,145,3,205,250,170,249,177,255,191,253,107,255,50,7,178,2, +97,250,191,252,58,254,147,252,40,255,221,254,224,254,213,6,235,6,44,252,69,252,234,3,70,0,182,248,7,250,28,255, +242,0,76,255,216,254,26,3,114,4,181,253,91,249,38,252,255,252,19,251,223,253,254,2,126,2,193,253,21,252,29,253, +76,252,220,253,38,4,110,4,150,252,149,250,154,1,17,7,58,5,177,253,164,250,227,3,113,8,94,251,109,245,70,3, +249,7,228,251,206,249,241,2,24,5,199,2,188,0,21,251,146,249,231,255,246,0,21,252,143,253,111,2,118,2,214,0, +155,254,213,249,214,248,19,254,86,1,55,0,132,0,109,2,218,0,198,252,12,254,150,4,81,3,30,249,141,248,3,3, +123,4,95,254,223,255,241,255,74,246,52,245,170,2,217,8,77,254,18,244,87,249,189,5,172,6,72,255,54,1,166,7, +29,4,138,253,20,252,211,251,160,254,237,2,140,0,73,254,83,1,18,255,57,251,214,255,146,1,96,252,85,253,18,1, +100,255,26,255,131,0,104,255,185,0,111,3,255,3,29,5,181,1,132,250,98,254,234,6,173,2,153,252,200,255,196,1, +116,2,28,6,183,2,64,250,230,249,254,253,89,254,53,254,241,1,20,8,6,8,80,254,205,248,75,254,183,3,110,6, +188,6,244,254,54,251,34,4,0,5,194,251,72,255,48,8,71,5,79,1,192,1,110,0,70,1,230,0,242,250,204,252, +19,6,13,6,62,255,95,251,193,251,149,2,108,7,165,1,109,254,122,1,148,255,186,0,10,7,193,2,181,253,105,3, +45,2,104,253,112,5,215,6,244,250,234,250,226,0,1,253,172,255,63,9,80,5,58,252,5,254,169,4,2,6,91,253, +209,244,202,253,57,9,219,0,128,249,6,3,142,5,53,251,190,247,40,252,220,0,241,3,138,0,201,252,89,2,102,5, +44,253,48,248,44,254,47,4,13,2,193,252,189,253,22,3,85,3,186,0,246,255,168,252,55,250,136,253,55,254,139,252, +229,255,50,0,107,252,7,0,215,3,230,0,247,1,249,2,156,253,31,0,54,5,84,252,204,248,239,5,227,8,36,255, +191,255,234,5,224,5,72,5,89,5,169,7,22,15,52,14,118,3,227,3,45,12,202,7,253,253,144,252,216,254,145,3, +200,9,138,5,208,250,116,252,184,5,157,2,11,247,237,245,124,254,50,2,56,1,80,4,171,6,224,1,200,254,135,2, +135,3,180,255,231,255,52,3,2,3,226,2,147,6,212,6,235,255,203,251,215,0,183,5,29,3,51,0,109,0,115,252, +123,247,47,253,24,7,184,6,98,1,234,0,179,255,188,251,55,252,109,254,92,255,199,5,194,11,143,5,182,254,35,2, +128,1,157,247,38,244,217,250,28,4,190,11,222,9,215,255,151,254,66,3,171,250,179,238,156,245,147,5,17,10,122,5, +2,2,138,1,123,3,68,4,195,253,2,245,78,248,226,5,206,10,65,3,254,253,200,254,2,255,188,255,74,1,244,255, +171,254,217,255,11,2,250,5,105,5,18,252,254,248,91,1,150,3,104,255,247,1,58,5,69,4,44,4,224,255,76,251, +68,2,7,6,218,252,16,252,169,3,29,0,38,252,28,2,168,2,32,254,59,255,45,0,248,0,103,4,232,255,53,248, +118,251,166,255,202,253,69,1,124,4,25,253,48,249,213,0,234,5,252,1,206,252,21,252,23,255,243,1,108,3,214,3, +248,255,160,249,233,248,76,253,228,255,245,254,221,252,48,254,23,2,245,254,191,247,218,250,105,3,174,3,49,255,128,252, +207,253,168,6,221,12,114,4,227,250,59,253,160,1,160,0,137,252,254,248,192,253,244,6,51,5,176,252,47,250,223,250, +48,255,150,7,84,5,29,251,169,252,232,2,240,255,222,253,27,0,145,254,122,254,184,1,161,0,44,255,171,0,144,255, +78,0,184,5,142,4,61,253,202,252,173,1,188,2,233,1,33,3,58,2,180,252,19,250,155,255,70,4,209,0,203,252, +29,253,31,254,189,0,187,3,239,255,49,249,63,249,134,253,198,254,218,252,105,251,124,252,92,253,193,252,113,255,172,2, +173,254,161,250,208,253,101,254,254,249,197,250,203,254,204,255,67,0,37,255,249,251,164,253,150,1,12,255,55,250,6,251, +187,255,147,2,73,0,35,252,134,252,176,255,141,255,194,252,9,252,50,0,197,4,82,1,255,250,235,252,107,0,156,254, +197,255,69,2,11,0,89,2,47,6,185,253,0,247,130,255,26,4,91,254,155,255,64,5,57,3,36,254,244,249,33,248, +7,255,158,7,129,5,31,0,163,1,111,3,67,255,232,250,252,252,88,2,36,2,103,253,255,254,148,6,23,7,20,254, +176,248,108,253,118,1,30,254,222,253,151,3,0,4,197,1,67,4,176,0,80,247,127,249,74,1,217,0,75,1,34,4, +0,0,223,253,247,255,28,250,117,246,217,253,160,255,156,253,4,5,66,6,50,253,234,255,88,7,184,0,181,250,16,255, +113,0,105,255,197,1,188,1,235,1,39,4,159,254,244,247,83,253,250,1,224,251,99,250,58,1,160,2,17,0,97,0, +131,253,128,249,210,253,236,1,174,253,234,254,122,8,182,7,224,253,133,253,78,3,65,3,18,1,180,254,178,250,69,254, +167,8,154,8,81,254,134,251,9,1,252,0,182,250,114,250,51,2,73,5,192,255,229,253,230,2,15,4,40,1,64,1, +25,1,112,254,47,254,181,253,166,249,47,251,43,5,175,8,124,255,123,247,247,247,92,250,57,255,69,6,153,1,25,246, +30,253,82,12,93,3,100,240,246,242,244,254,74,1,117,2,153,4,69,1,120,255,68,1,61,254,170,248,81,247,150,249, +171,253,88,1,126,3,36,5,243,0,27,245,49,240,55,250,137,4,175,1,104,248,179,248,103,4,181,9,97,0,159,248, +41,252,157,0,122,254,86,249,208,249,22,4,13,11,34,4,250,252,127,253,138,252,160,253,59,4,124,3,214,253,249,255, +43,3,55,3,106,5,10,2,142,249,58,251,219,1,116,1,8,1,113,3,176,3,185,2,193,253,158,248,207,255,134,7, +7,0,166,250,154,2,35,9,177,9,200,4,137,249,92,250,41,10,240,9,197,248,252,246,190,3,238,7,194,3,74,1, +169,1,0,3,51,3,74,1,198,253,227,252,118,4,148,9,94,254,251,245,168,2,197,13,223,7,161,0,103,254,237,0, +61,10,56,9,149,249,216,247,114,6,89,10,131,2,229,252,232,252,61,3,120,5,133,252,146,250,26,3,164,3,191,2, +171,8,233,4,205,251,98,253,54,254,65,252,232,3,13,7,130,254,49,254,60,4,186,3,8,4,80,2,16,249,24,251, +217,7,245,5,184,252,218,1,192,10,207,8,9,2,254,252,84,251,162,253,226,0,193,3,219,5,66,4,96,1,9,2, +195,2,154,254,171,249,14,252,246,3,68,5,38,255,117,255,107,6,206,6,255,0,171,253,101,254,27,2,0,4,156,0, +74,0,63,5,68,5,24,1,251,253,31,250,2,252,65,4,98,3,76,255,136,7,211,10,179,254,107,249,48,253,249,251, +195,254,172,5,124,1,92,254,21,8,55,9,20,251,28,245,48,253,38,2,117,253,62,251,111,3,27,8,236,254,12,249, +228,255,232,3,239,1,26,1,11,253,80,251,106,3,59,5,215,253,49,0,241,4,30,254,87,250,129,253,244,251,138,253, +102,3,87,255,225,251,4,4,213,5,134,254,136,254,199,1,201,0,247,255,3,253,244,251,250,4,36,8,190,253,13,252, +36,3,86,255,208,250,61,1,15,5,29,5,111,7,101,2,21,251,188,254,198,255,185,248,180,252,164,5,209,0,85,252, +88,4,1,9,7,5,19,1,118,252,207,248,214,250,65,254,81,3,179,10,199,6,99,248,23,247,247,2,51,4,85,250, +149,247,123,254,235,5,86,7,100,255,194,245,175,249,241,6,253,6,47,250,206,249,102,5,108,3,136,249,240,0,133,13, +253,6,245,249,235,248,23,254,62,3,222,5,175,255,71,248,190,252,119,6,24,9,17,4,112,253,207,253,192,2,13,254, +146,246,32,254,184,6,251,0,183,255,184,7,40,3,135,247,219,248,113,254,36,254,170,255,181,1,218,255,105,2,247,8, +41,7,33,254,194,250,29,0,228,4,126,3,92,2,152,4,81,2,40,253,5,255,15,1,99,250,19,247,33,254,164,2, +44,0,156,255,128,2,1,4,103,1,48,252,188,251,88,1,72,2,198,253,254,255,72,6,161,2,198,248,60,247,213,252, +22,254,134,250,1,251,183,0,181,2,165,251,121,242,82,243,150,255,12,9,170,5,45,254,149,251,65,250,121,249,33,252, +86,253,205,252,111,1,25,5,172,253,234,242,141,240,140,245,130,250,67,249,115,245,41,250,132,3,145,3,27,253,127,249, +62,248,90,250,221,254,121,253,171,249,174,252,175,1,137,3,41,1,107,247,6,244,222,2,215,9,227,249,35,242,188,252, +153,0,68,254,220,0,26,254,87,249,8,255,227,2,195,253,165,252,253,255,133,1,212,2,34,0,172,250,255,252,0,3, +146,4,15,5,74,2,103,253,30,1,123,3,116,249,62,248,6,6,9,8,78,253,107,250,27,253,244,254,101,2,8,2, +197,255,29,4,227,5,28,0,222,254,73,0,216,252,47,253,3,2,213,2,88,4,53,7,155,3,15,0,169,0,95,252, +136,249,254,0,5,4,36,254,115,0,49,7,118,2,93,252,33,1,43,5,113,1,60,255,237,0,64,1,218,0,50,2, +12,5,129,7,72,4,31,252,47,251,178,2,243,2,81,251,215,251,11,2,151,255,177,250,202,255,50,7,39,5,130,254, +250,253,28,2,145,0,162,250,150,253,29,7,78,6,180,253,86,254,116,5,243,4,146,255,6,0,249,3,38,2,63,252, +201,252,20,3,129,3,64,255,153,1,51,6,13,1,246,248,115,252,77,5,0,2,96,247,15,251,142,9,112,9,174,251, +194,247,234,254,154,2,132,1,32,0,217,255,5,2,218,3,93,4,41,6,86,3,170,251,99,253,92,5,166,3,131,255, +177,1,182,255,225,251,247,255,252,1,130,253,149,252,186,253,40,255,1,5,219,4,218,251,243,252,211,6,68,4,132,248, +236,245,78,254,110,6,5,5,184,254,220,254,208,0,39,253,28,252,249,253,35,251,220,251,74,2,165,2,240,2,67,9, +22,6,159,249,150,244,146,245,238,249,109,4,226,6,252,253,68,254,91,6,117,4,87,252,57,245,220,240,34,250,96,9, +232,4,110,246,10,251,228,8,5,7,126,252,25,250,254,251,100,251,50,254,124,4,189,2,188,251,57,254,153,4,7,1, +15,251,141,250,118,249,27,251,152,3,21,7,197,2,246,0,117,1,254,2,154,8,127,8,164,253,141,248,141,0,170,7, +60,5,28,255,5,255,230,5,27,7,102,254,152,250,251,255,16,3,100,3,191,4,82,2,45,0,106,5,157,7,71,255, +213,248,186,252,35,4,99,7,144,3,147,252,178,252,225,3,234,4,79,254,116,253,189,2,85,1,15,251,205,251,49,0, +146,255,252,254,243,2,188,4,143,1,138,254,215,253,141,254,97,0,106,2,117,3,37,3,113,2,165,1,56,254,225,249, +139,251,135,0,149,0,31,0,164,4,200,6,92,2,196,251,116,246,103,247,163,254,47,2,77,1,163,2,180,2,36,2, +253,4,77,255,42,243,194,249,14,10,17,5,172,248,147,254,138,7,218,4,238,0,148,255,253,254,49,1,69,1,203,254, +133,0,247,1,141,0,162,3,198,5,34,1,83,1,28,6,72,3,255,0,204,5,29,2,80,247,72,249,139,1,156,254, +63,250,39,255,95,2,230,1,86,5,117,1,180,243,32,247,56,10,149,6,178,242,61,248,118,11,131,8,129,253,253,255, +115,2,44,255,42,0,65,1,101,254,19,254,209,255,238,0,191,2,9,2,68,254,165,252,207,252,231,252,126,254,129,0, +12,2,102,3,5,3,194,1,175,254,6,249,128,251,171,5,131,2,62,247,148,252,191,5,215,255,37,253,20,4,116,3, +26,255,203,252,30,246,200,247,78,5,94,5,10,251,38,254,26,4,226,0,99,0,106,255,205,248,40,251,29,3,98,1, +73,254,251,255,190,254,177,254,241,0,140,252,11,249,197,253,223,255,105,255,11,4,34,5,98,0,118,0,224,0,227,249, +125,245,123,250,213,1,184,5,103,4,87,255,0,253,114,255,84,0,91,252,122,249,36,253,10,2,77,2,180,3,234,6, +50,1,212,248,118,253,101,3,11,253,109,251,91,4,124,3,237,251,71,255,40,2,75,251,1,252,139,3,39,255,150,248, +213,0,88,9,248,3,122,253,153,0,237,5,223,3,215,251,185,250,19,5,254,9,58,1,162,250,22,252,156,253,75,2, +236,6,8,254,110,244,157,252,158,5,134,0,44,252,4,255,236,1,252,4,120,3,251,250,102,250,139,2,252,1,84,252, +170,255,241,5,45,5,235,254,127,249,47,251,100,0,169,0,169,255,176,255,124,252,44,255,254,8,193,4,53,245,185,244, +18,1,29,7,21,3,139,250,132,252,205,11,60,10,80,246,168,248,242,8,10,2,200,249,116,3,248,255,105,244,183,255, +31,11,193,1,139,251,75,252,187,248,166,252,216,3,32,255,140,254,56,8,82,6,233,253,124,0,183,0,232,247,204,248, +58,3,240,4,208,254,215,253,188,2,232,5,222,5,68,6,146,4,180,251,61,243,170,247,49,4,105,7,206,253,45,249, +119,5,111,17,133,8,244,246,145,244,108,254,140,3,26,1,60,254,147,254,116,0,191,0,131,255,80,255,61,1,162,4, +168,6,227,3,201,254,26,254,218,2,153,5,169,1,174,0,34,11,138,16,163,1,114,243,247,249,248,3,52,2,147,253, +219,251,249,254,104,7,240,6,130,252,91,254,70,8,149,3,36,251,52,255,242,3,220,3,200,3,15,255,22,252,210,3, +81,6,155,253,3,253,110,4,236,4,151,1,213,253,71,248,195,251,109,7,71,9,255,4,72,9,82,11,145,255,141,245, +53,251,177,6,22,9,164,1,101,251,82,253,166,0,242,253,76,251,53,255,236,1,186,254,236,1,189,13,27,12,114,247, +253,236,111,251,115,10,156,6,139,252,14,254,89,8,29,10,51,252,119,239,166,245,110,4,144,6,93,254,160,253,219,6, +130,12,161,6,117,251,251,247,84,1,14,9,124,255,157,242,65,249,164,8,118,10,68,3,156,254,241,252,232,255,227,2, +68,253,87,249,62,255,238,1,34,1,138,5,45,2,199,246,75,251,143,8,217,4,215,249,184,249,92,255,49,4,132,3, +68,251,228,250,0,7,15,9,125,252,216,246,139,253,188,2,48,254,213,246,19,251,85,8,200,11,71,4,142,254,133,252, +162,253,241,254,14,250,163,251,255,9,123,9,103,247,176,245,194,0,80,0,1,253,96,250,84,244,132,0,127,22,173,13, +198,247,48,251,242,2,117,253,105,252,195,251,219,249,208,9,63,23,179,7,102,250,10,3,168,3,106,247,251,246,87,1, +80,8,38,8,227,0,97,250,142,252,54,1,47,2,91,0,185,252,37,253,80,2,24,0,225,247,94,248,132,254,80,1, +143,5,33,10,48,7,104,1,13,254,151,250,69,249,5,251,245,251,168,0,8,10,175,10,35,2,7,0,40,3,221,254, +24,247,124,246,246,253,225,8,181,12,18,3,105,251,99,2,105,7,237,254,54,248,183,249,127,250,188,252,14,2,210,1, +254,255,175,4,81,7,31,3,74,0,106,255,122,252,228,248,199,246,16,252,180,8,147,11,226,2,227,3,18,10,4,0, +36,243,134,247,31,255,63,254,225,255,79,6,150,8,14,5,65,255,131,251,157,251,117,251,202,249,187,249,249,250,203,253, +68,3,221,6,96,5,63,0,190,249,200,248,249,254,104,255,226,247,2,248,118,1,178,7,254,6,196,0,219,249,136,251, +58,1,8,0,107,253,221,253,21,251,12,249,249,251,66,251,80,249,152,255,63,4,69,253,232,245,90,249,16,2,64,3, +185,250,47,247,112,255,114,4,101,0,158,254,152,254,81,251,195,252,228,2,87,2,105,252,60,250,230,251,144,251,151,247, +7,248,130,0,250,2,215,251,64,253,228,4,186,255,167,247,190,251,85,255,92,253,233,255,228,0,79,252,53,254,81,2, +2,252,129,246,208,253,9,6,235,3,253,253,218,252,253,254,127,255,1,255,77,255,17,255,232,255,114,2,246,0,126,252, +218,251,237,251,2,250,132,251,226,254,6,2,193,8,173,10,242,1,128,254,229,2,54,255,82,250,168,254,12,254,94,249, +106,1,26,9,97,0,31,249,188,254,70,2,252,253,177,250,254,251,87,0,88,5,12,7,41,2,101,250,12,252,23,7, +188,7,57,253,7,253,210,1,80,251,4,250,135,5,178,5,216,252,185,1,23,9,253,3,7,0,255,0,226,253,171,253, +147,4,4,8,36,5,81,1,229,0,42,6,74,8,148,255,147,248,30,251,20,253,235,254,106,6,27,10,64,8,227,9, +250,7,16,254,43,251,139,0,46,1,213,0,122,4,216,3,40,2,20,8,212,11,8,5,79,253,59,252,75,255,69,2, +142,1,118,255,232,1,73,6,170,7,199,7,197,5,151,255,99,251,127,253,113,1,40,2,198,253,76,249,205,253,137,6, +118,6,45,0,228,252,84,253,16,2,82,6,200,255,172,247,88,252,83,2,213,0,36,2,100,2,92,252,153,0,113,11, +24,4,253,245,94,250,83,4,96,3,242,0,212,0,230,253,106,253,54,2,18,5,214,2,5,0,90,0,222,255,181,251, +86,253,7,5,205,1,168,249,62,2,159,12,175,3,23,251,210,254,105,252,134,246,115,252,94,3,51,2,52,2,183,4, +205,4,220,0,204,248,141,247,35,2,241,4,106,251,180,250,134,0,196,254,190,0,118,8,84,4,105,251,250,252,230,254, +214,251,49,253,80,0,229,1,115,8,67,15,243,11,165,1,110,249,165,248,185,253,88,1,24,3,40,5,159,1,97,253, +126,4,139,9,155,254,68,247,232,254,180,3,165,0,69,254,113,252,55,0,204,9,64,7,19,252,97,255,84,8,194,3, +114,252,29,251,56,250,179,254,78,6,17,4,211,0,107,6,109,6,161,254,132,253,121,255,150,253,127,254,146,0,203,254, +82,255,198,2,25,3,134,0,64,252,96,250,26,0,163,4,22,2,112,2,136,3,100,254,107,0,14,9,114,3,132,248, +205,251,222,0,154,255,15,2,227,1,218,251,88,254,55,3,18,253,32,249,199,254,226,1,249,1,179,2,56,255,20,251, +84,250,110,248,85,248,84,252,58,253,122,253,234,1,187,2,130,255,121,255,233,254,0,253,56,255,27,0,114,253,21,255, +56,1,235,254,22,1,135,6,85,3,52,251,127,248,142,251,188,1,141,5,7,0,88,247,65,249,52,5,168,11,116,4, +37,252,227,254,125,2,14,253,123,248,138,250,174,253,114,2,147,6,163,2,41,253,128,253,192,252,166,250,164,252,102,253, +198,253,69,5,185,9,194,1,147,250,96,252,30,254,116,252,64,251,17,251,186,253,221,3,177,5,135,254,152,248,177,253, +122,4,86,1,157,252,55,255,119,1,9,0,117,255,25,253,84,251,115,0,228,2,175,253,105,252,18,253,173,250,113,1, +254,9,131,0,189,247,254,1,101,5,188,248,252,247,255,3,58,5,55,254,189,253,179,0,49,255,25,253,20,0,245,0, +76,250,231,249,87,4,180,6,125,255,216,253,147,252,125,249,39,1,241,6,187,252,169,247,72,254,140,253,117,252,100,3, +93,255,218,244,48,251,176,6,88,4,150,252,88,248,158,250,124,4,195,5,60,248,186,245,5,5,63,9,142,252,131,247, +225,253,208,254,99,250,142,251,51,255,65,0,183,4,194,8,17,0,34,245,110,249,238,1,153,0,225,254,154,1,35,0, +175,251,189,249,118,248,186,248,17,253,151,1,166,1,253,252,20,248,15,248,7,251,119,253,96,0,38,1,238,253,30,253, +209,254,193,252,80,250,236,250,82,251,46,254,123,3,65,2,47,252,139,250,16,253,141,0,231,1,173,253,6,250,241,250, +56,249,218,247,176,253,229,0,16,254,177,255,0,3,241,0,219,253,101,251,141,251,61,1,234,1,187,251,147,253,137,2, +147,254,114,252,25,255,108,253,98,255,221,5,207,3,40,0,211,0,254,251,79,251,176,5,222,5,2,253,237,255,140,4, +22,0,150,254,156,254,102,252,131,1,246,5,68,0,15,254,63,1,132,255,76,254,93,255,79,254,246,0,200,2,130,253, +134,254,191,2,124,252,253,254,247,14,89,10,23,247,172,249,191,5,202,3,226,1,56,4,246,253,202,248,59,255,180,4, +199,0,175,252,227,1,129,11,154,11,62,1,153,250,4,254,196,4,175,5,25,254,1,249,134,254,208,2,227,254,244,251, +19,251,33,251,194,1,179,5,115,255,56,255,224,5,96,1,9,251,151,0,225,1,55,251,110,255,191,8,217,4,124,252, +39,254,152,2,111,0,124,254,48,3,50,6,54,2,104,255,202,254,84,251,247,252,116,5,167,6,186,2,178,5,250,6, +73,0,252,253,228,1,36,2,149,254,248,252,223,1,91,10,136,9,154,0,217,255,63,4,240,0,203,252,208,255,71,4, +248,5,13,4,138,0,216,0,63,2,196,1,87,3,203,0,9,249,246,253,54,10,251,5,121,252,26,255,164,0,248,254, +117,3,232,2,164,253,128,1,234,2,175,252,156,255,54,3,252,252,151,2,60,18,0,15,208,255,121,250,193,250,9,252, +137,255,131,1,71,8,36,20,25,17,109,255,206,247,144,253,143,1,111,0,54,0,106,5,47,13,113,14,173,8,174,2, +43,254,122,253,214,0,56,255,196,250,230,0,192,11,245,12,20,9,147,6,131,1,241,252,248,254,247,1,206,255,225,253, +105,2,186,7,61,5,55,0,227,0,106,0,194,250,27,251,61,2,114,4,45,3,224,3,206,0,176,251,35,254,145,2, +246,254,223,250,43,0,50,8,104,8,2,2,184,252,198,252,123,0,49,2,222,255,69,255,49,2,41,2,93,0,72,3, +220,4,175,254,250,248,120,249,4,252,82,254,61,255,92,0,120,6,144,9,208,255,56,246,137,248,139,252,240,252,99,254, +15,255,25,0,78,3,65,1,62,252,127,252,235,251,147,250,105,0,198,1,250,248,119,248,229,0,149,3,37,4,154,3, +152,252,115,251,86,1,176,252,224,245,151,252,204,3,76,4,243,4,156,254,255,244,21,252,104,9,113,4,108,247,66,248, +114,3,247,7,49,255,41,245,163,247,21,255,76,254,201,249,196,249,131,253,71,2,165,3,97,255,43,251,237,250,5,253, +133,255,126,255,82,254,155,0,247,0,157,251,159,249,4,251,71,249,175,252,89,5,95,3,151,252,215,0,92,4,17,252, +95,246,84,250,84,254,132,255,25,0,157,254,240,251,162,251,17,254,152,254,212,250,49,251,97,4,18,9,160,1,146,250, +250,250,48,253,86,255,215,255,159,252,64,253,146,3,180,2,25,250,72,249,171,0,99,2,177,253,180,251,75,253,134,0, +168,6,211,9,203,2,35,250,68,251,243,255,232,254,25,252,176,252,225,254,26,0,173,255,21,255,23,254,105,249,201,246, +177,254,17,5,209,252,177,245,175,253,198,5,167,2,107,253,144,251,41,251,57,253,198,0,58,2,39,1,75,254,203,250, +125,249,171,251,246,254,15,0,168,255,219,0,70,1,128,253,137,249,138,248,118,249,20,254,147,3,5,3,83,0,234,255, +181,253,154,253,238,1,133,255,57,250,86,255,226,3,182,0,204,4,13,10,185,255,7,246,36,253,146,6,73,6,91,0, +86,252,154,255,40,2,43,252,34,250,192,255,138,0,28,2,78,8,171,2,138,248,84,254,210,5,159,1,77,0,55,3, +159,0,226,253,235,253,82,255,47,5,235,7,35,3,103,2,181,2,87,250,195,246,99,255,25,6,184,6,6,5,133,0, +228,254,202,0,84,254,216,251,42,254,14,255,138,0,135,5,240,6,85,6,103,6,165,0,224,251,159,0,219,2,206,254, +44,255,1,2,218,4,120,10,61,8,215,251,77,247,59,255,65,7,229,6,55,255,129,255,145,12,239,12,39,254,224,254, +231,7,4,1,182,253,30,7,123,4,232,253,17,6,111,8,244,254,223,0,165,9,244,7,157,2,148,1,139,2,46,3, +48,1,241,1,242,7,129,5,26,254,58,6,119,15,67,2,231,244,6,253,43,6,224,3,80,3,139,4,116,0,84,0, +205,7,59,7,80,251,120,248,107,4,193,8,32,254,216,249,31,2,38,5,146,255,8,254,13,0,42,253,1,250,158,254, +235,3,89,0,32,252,112,1,156,7,28,5,48,255,154,250,48,248,4,252,183,2,162,2,194,253,193,253,161,3,25,6, +153,254,34,247,243,250,107,255,194,252,90,0,127,7,198,0,80,247,22,251,223,254,52,251,122,250,225,251,41,252,54,0, +34,4,99,2,132,255,59,255,193,0,104,255,218,248,251,248,35,2,240,0,63,249,158,0,106,9,56,2,232,251,189,252, +10,250,26,250,8,254,89,253,32,0,45,5,230,255,255,253,18,8,127,8,72,253,129,248,246,248,8,250,97,252,239,250, +61,251,36,2,113,3,111,1,9,5,255,0,68,247,37,250,149,253,153,249,97,2,67,15,191,8,230,252,178,249,217,247, +7,250,199,253,148,249,200,251,168,10,39,14,165,0,160,245,199,245,232,253,23,4,180,0,101,254,23,2,139,255,175,250, +244,253,239,255,129,252,253,250,34,250,8,251,202,254,204,253,54,254,237,5,121,4,214,250,36,251,192,252,201,249,159,255, +149,3,206,253,101,3,101,11,28,255,222,246,91,0,191,255,231,247,8,254,37,3,122,254,164,0,64,7,151,6,34,2, +119,253,48,251,218,252,39,251,19,249,228,0,195,7,125,2,41,253,102,255,251,1,174,1,16,255,229,251,121,252,24,255, +9,0,124,1,104,3,150,2,91,255,54,253,182,0,168,5,222,0,149,249,39,254,97,2,24,251,189,248,194,255,162,0, +153,252,131,252,245,253,67,255,231,253,109,249,208,253,178,8,243,5,193,249,25,246,195,248,9,254,42,5,180,2,148,252, +105,4,238,10,1,255,156,245,37,251,21,255,201,254,26,2,196,2,60,0,16,4,127,9,77,5,233,251,184,249,223,255, +117,3,95,255,101,252,101,255,107,1,186,1,228,5,147,7,201,255,214,249,33,255,134,4,12,2,136,255,224,253,195,248, +248,249,79,4,164,5,185,251,120,250,38,3,174,5,238,255,153,250,128,251,32,1,59,2,54,255,46,2,23,4,14,253, +142,252,188,3,136,255,17,249,250,255,53,3,19,252,175,251,51,255,154,255,255,5,183,9,152,255,36,251,144,3,75,4, +205,253,135,253,83,253,39,252,48,3,147,8,93,1,37,250,144,253,214,3,66,5,203,2,87,255,16,254,207,1,166,6, +207,2,82,248,200,247,129,2,105,4,17,249,20,243,202,250,198,5,233,7,32,255,56,249,85,2,99,11,149,2,158,246, +212,249,112,1,92,1,13,1,51,4,207,3,138,0,151,1,253,6,15,10,237,4,65,248,140,238,184,243,77,4,240,12, +71,3,45,248,147,255,189,12,44,6,215,244,137,243,186,254,65,4,67,5,187,4,183,255,45,0,210,8,42,8,82,255, +118,255,112,1,67,252,65,253,104,3,14,2,42,3,33,10,210,5,66,253,242,0,236,1,89,249,154,252,215,8,170,7, +130,255,145,255,243,1,75,0,139,252,12,250,150,0,68,12,79,10,95,253,182,249,105,253,144,254,154,2,149,6,136,2, +163,1,61,7,225,3,109,252,174,255,69,3,67,255,24,254,173,253,81,249,73,252,120,4,12,4,188,0,223,1,188,1, +208,1,67,1,85,247,216,239,65,250,93,7,136,6,47,255,28,252,222,0,53,6,117,254,67,243,79,248,106,1,156,255, +165,255,216,3,248,1,107,1,64,3,142,253,42,251,244,2,147,5,19,3,141,3,180,254,9,249,46,254,101,0,244,249, +102,251,177,255,82,250,223,249,116,3,59,3,53,248,168,245,41,254,91,4,144,3,0,2,42,1,31,255,41,2,112,8, +98,1,10,243,38,245,121,255,213,254,97,253,19,0,206,251,181,250,83,5,64,8,31,255,24,253,12,3,147,4,93,2, +199,2,198,4,39,2,49,253,161,0,38,6,120,0,121,253,247,5,124,3,177,247,137,253,146,9,30,5,163,254,242,255, +15,255,22,1,158,7,177,3,187,250,49,254,53,7,65,6,132,253,225,249,235,255,200,4,239,0,241,252,198,253,249,255, +107,3,8,3,53,253,181,255,156,7,198,3,158,255,103,5,163,0,63,244,79,249,90,4,64,3,25,2,236,3,159,0, +59,254,133,252,67,248,180,250,144,254,147,251,235,0,49,10,62,0,200,245,162,1,7,9,48,254,191,251,130,4,133,4, +224,254,31,254,62,0,81,3,28,5,129,1,134,252,224,253,249,4,136,7,98,254,74,245,185,251,255,6,175,3,95,250, +17,255,207,10,183,7,253,249,181,249,118,4,24,3,23,251,34,255,135,3,189,253,82,253,93,0,44,248,211,244,137,2, +209,9,134,1,6,252,140,251,35,249,251,251,196,3,112,4,5,0,93,1,216,5,197,3,153,253,61,253,162,255,222,251, +170,250,18,4,203,6,71,251,167,248,54,4,93,6,231,253,94,253,71,1,155,255,60,255,86,1,73,255,202,255,168,5, +206,3,189,251,216,252,187,2,252,1,78,1,225,3,64,0,128,249,25,250,62,255,252,2,32,4,230,0,30,254,3,2, +195,3,138,251,6,245,175,250,129,4,245,6,174,2,126,0,40,2,106,1,118,0,168,3,210,1,87,250,216,252,136,4, +57,1,111,254,191,5,244,4,87,251,127,253,254,5,158,4,209,255,167,254,106,254,153,1,28,5,63,0,94,250,188,253, +245,2,90,2,166,255,133,254,111,0,35,4,94,2,106,251,98,251,182,2,198,3,16,255,171,0,239,3,169,254,69,251, +193,2,132,6,1,255,68,251,65,0,128,2,253,0,255,1,162,2,31,0,236,254,213,0,214,1,247,254,201,251,112,254, +42,4,197,4,207,1,215,0,182,254,80,250,37,251,35,1,255,2,182,0,248,1,11,4,61,0,207,253,6,3,98,3, +212,249,104,247,170,255,192,2,191,0,43,1,252,253,118,251,161,4,92,10,103,254,113,242,105,244,106,252,210,3,106,4, +198,251,31,250,28,5,82,8,216,255,108,252,14,253,238,249,242,249,66,255,68,3,62,4,212,255,223,248,188,252,115,6, +62,0,98,240,230,240,198,0,124,11,107,8,110,252,220,245,121,254,209,5,50,252,99,244,48,254,115,8,179,6,246,254, +187,245,27,246,80,5,16,10,119,251,167,248,181,4,225,3,50,253,28,0,36,255,112,253,189,7,121,8,242,247,99,244, +221,0,159,5,209,1,197,252,229,248,109,255,131,10,9,8,123,253,240,249,7,254,239,4,172,3,184,245,152,240,120,254, +3,9,99,6,8,0,40,249,79,250,44,6,190,6,220,248,173,246,135,2,168,9,158,6,111,251,98,243,209,252,120,8, +217,2,4,252,180,0,252,3,159,3,86,4,138,0,43,253,117,2,23,6,51,1,14,252,168,250,84,252,168,1,206,6, +179,6,68,1,29,253,254,1,219,8,248,3,55,250,218,250,121,3,204,9,181,7,216,254,109,252,224,2,67,3,69,0, +178,4,155,3,7,251,16,0,79,10,12,2,222,245,26,252,233,9,55,13,166,5,234,254,112,0,46,1,6,251,150,248, +212,251,121,254,80,5,33,11,111,3,51,252,23,1,52,0,142,246,4,247,0,0,87,4,183,3,109,2,23,4,4,6, +217,0,250,251,219,253,243,250,253,247,223,2,92,9,117,0,72,255,191,5,23,1,230,251,75,253,204,249,42,250,189,3, +120,4,232,255,19,5,62,8,8,2,193,252,159,249,255,250,166,3,253,5,67,2,176,6,97,7,178,253,61,0,220,8, +12,255,62,248,8,8,221,13,209,252,163,246,20,2,59,5,38,255,11,0,244,4,136,4,247,1,29,1,132,255,169,254, +182,2,230,6,157,3,155,253,191,255,88,7,144,5,198,248,243,243,159,254,134,5,229,255,110,254,196,3,244,1,153,255, +120,6,169,6,52,251,12,250,27,5,253,7,105,3,181,3,160,3,182,253,131,249,254,249,72,252,99,0,92,3,70,3, +248,5,45,10,228,6,168,0,214,0,119,1,205,253,42,253,142,255,33,0,214,3,19,10,240,7,209,255,128,254,194,2, +45,1,126,249,8,249,113,5,188,14,20,8,141,254,202,254,216,1,199,2,196,1,17,252,117,250,219,3,224,6,76,253, +132,252,23,6,162,6,154,0,116,255,129,255,149,254,193,254,176,253,228,253,212,1,33,3,197,255,7,252,44,250,111,253, +86,3,195,2,216,254,75,255,224,254,218,252,161,255,205,0,53,253,172,255,11,5,161,1,79,252,157,252,235,252,35,254, +253,2,164,3,180,255,73,0,177,3,24,3,78,0,114,254,245,253,79,0,129,2,211,253,118,245,64,245,158,254,175,5, +68,4,181,0,14,0,59,255,13,251,56,247,66,250,99,1,253,1,174,253,91,0,228,5,205,0,112,246,177,244,167,250, +228,0,164,4,23,4,194,255,29,252,247,251,156,253,173,252,31,249,145,250,255,2,53,8,157,4,117,254,71,251,43,251, +226,252,22,255,103,0,118,255,33,254,35,0,45,1,182,253,222,255,103,6,143,254,61,241,19,249,241,7,3,3,77,249, +242,251,117,254,109,254,1,3,20,1,59,248,173,251,177,5,163,1,121,249,169,253,115,2,133,255,102,0,50,3,205,253, +129,250,182,254,2,252,157,246,83,254,103,6,93,2,70,0,90,2,15,254,61,250,159,250,171,249,140,253,235,1,247,250, +237,249,140,6,60,6,51,251,41,253,157,255,86,249,81,250,103,251,85,246,171,253,60,8,231,3,209,1,24,4,167,252, +225,252,2,4,34,247,48,237,125,254,226,6,216,253,129,4,68,12,248,255,81,251,51,2,88,250,181,240,36,249,251,2, +137,3,245,3,196,4,165,2,183,0,168,0,185,255,54,250,202,244,85,250,113,6,46,10,28,5,39,255,1,252,201,254, +86,2,86,252,247,243,148,247,134,2,165,7,30,4,97,253,93,251,114,1,37,8,50,5,138,250,190,246,21,255,125,4, +217,254,34,250,34,251,93,253,240,2,72,5,129,252,12,249,62,2,124,4,120,0,118,4,43,5,86,254,160,254,203,255, +76,251,30,255,252,4,186,254,249,250,241,254,138,251,137,247,51,253,81,1,55,1,74,2,187,0,98,0,176,4,103,3, +149,254,52,254,39,250,226,245,251,253,60,4,105,254,162,254,149,5,34,3,22,255,144,1,59,255,62,250,212,253,100,2, +3,0,86,253,10,254,220,255,235,0,168,254,52,252,156,254,148,255,97,251,36,252,142,1,252,254,236,249,24,255,64,5, +132,2,173,255,221,255,229,253,59,253,216,252,130,248,218,251,245,7,221,6,253,250,38,252,11,4,107,2,36,0,43,1, +137,253,198,251,197,255,203,255,42,254,169,1,122,3,76,1,17,1,36,1,0,254,174,249,141,248,200,253,175,2,186,255, +121,254,184,4,9,6,173,1,117,1,54,255,223,248,41,251,210,2,158,3,163,1,167,1,81,1,124,2,227,2,182,254, +184,253,180,2,12,4,146,0,80,255,54,2,150,6,82,5,92,252,72,249,195,1,205,5,146,255,101,253,217,2,91,4, +181,255,37,254,109,1,132,1,98,254,83,0,237,4,76,4,88,1,118,255,95,254,202,2,214,7,31,2,6,253,46,4, +22,6,78,253,24,254,102,5,186,1,32,252,239,254,111,0,158,253,227,251,216,251,179,0,34,8,84,5,97,251,197,250, +240,0,106,0,37,251,175,250,180,0,73,7,61,6,156,253,234,247,170,249,120,253,199,1,33,5,73,0,218,248,108,254, +43,9,139,4,142,248,115,249,57,2,38,5,102,2,214,254,139,255,12,5,146,5,166,0,0,1,22,3,103,1,76,3, +96,4,188,254,157,0,186,7,173,2,44,0,31,11,32,9,239,250,220,254,247,9,111,3,83,249,242,250,122,1,184,6, +47,6,3,1,128,0,147,1,14,255,14,0,61,0,220,249,167,251,34,6,141,7,21,3,3,1,211,253,26,255,54,2, +15,250,194,246,78,5,199,10,198,255,178,252,94,0,235,0,95,5,146,6,178,254,215,253,70,2,122,255,30,0,234,5, +208,2,65,254,143,1,162,3,26,3,123,2,110,255,184,1,169,7,70,2,210,251,100,2,173,5,195,0,89,2,135,3, +157,255,151,4,235,7,224,251,134,248,8,6,116,7,2,252,2,251,151,255,31,0,8,5,147,9,148,3,150,254,59,1, +52,0,86,252,113,253,135,253,198,251,176,255,178,2,178,0,58,5,7,11,47,1,177,243,92,246,219,255,139,2,9,1, +118,253,6,250,204,253,20,6,88,8,49,2,197,250,83,251,112,3,139,6,203,254,169,244,172,242,10,254,144,12,63,10, +36,253,143,253,104,6,247,3,117,249,201,240,45,241,200,0,139,12,24,2,112,250,137,5,227,8,24,255,115,251,59,248, +74,243,158,252,12,7,104,255,129,250,98,7,72,15,74,4,242,245,159,243,76,251,183,1,172,1,137,254,154,252,13,0, +32,6,187,3,127,252,187,254,128,4,157,2,160,254,234,250,39,248,24,255,53,7,255,2,131,255,83,3,234,1,72,1, +54,6,39,0,97,245,90,249,177,0,168,0,174,1,206,0,230,253,192,2,79,4,42,251,29,249,12,254,38,252,137,251, +244,254,174,251,70,249,239,254,69,3,54,4,251,0,22,248,77,249,211,4,190,1,198,246,32,251,27,1,116,254,58,3, +6,8,72,0,61,255,21,7,176,1,187,248,97,253,129,0,169,253,113,3,12,7,142,252,36,248,154,1,177,4,145,255, +148,255,66,0,180,253,203,0,87,5,89,1,149,252,49,254,40,0,121,1,12,4,151,2,169,253,88,253,11,2,254,4, +11,2,95,253,90,255,163,4,245,2,105,254,199,253,92,252,68,252,194,1,214,2,127,254,253,254,184,254,183,251,219,1, +235,6,238,253,157,250,79,5,241,9,199,6,124,3,143,250,171,245,105,255,139,4,6,253,226,250,101,254,192,254,15,3, +105,8,218,1,247,246,57,247,19,1,151,7,255,2,165,252,219,1,6,11,39,10,16,2,59,249,183,243,12,249,181,4, +196,8,76,6,51,4,246,255,191,250,33,250,142,252,105,255,172,2,118,3,98,0,184,254,57,3,92,6,98,252,200,239, +10,245,40,2,194,2,3,255,10,0,7,0,232,3,68,8,28,251,214,236,191,246,53,2,87,253,73,254,46,6,160,4, +248,3,26,5,214,248,80,240,43,251,84,1,175,251,131,255,225,5,12,255,249,252,218,8,198,8,58,246,213,238,232,251, +251,4,58,0,184,250,18,249,144,251,223,5,88,11,230,255,197,245,133,251,93,1,59,253,181,247,60,246,74,252,187,7, +123,8,169,252,191,248,141,0,41,2,11,248,131,239,49,244,229,0,244,5,58,0,77,251,229,253,22,5,172,7,76,254, +131,245,185,251,139,1,116,250,250,248,172,2,150,5,65,2,77,2,185,0,105,253,27,252,219,247,127,246,211,0,157,9, +239,7,40,7,66,7,124,254,65,243,247,238,39,241,92,250,206,6,66,10,52,4,145,1,192,3,200,254,113,242,75,237, +3,244,95,253,230,5,133,13,3,12,93,1,41,252,64,254,121,250,252,243,148,250,73,8,168,9,159,3,73,7,4,12, +222,3,148,252,2,1,143,4,84,4,101,6,109,3,195,253,124,1,179,3,163,252,188,253,197,5,188,2,104,252,153,253, +205,254,111,0,250,3,13,2,249,0,208,4,209,0,166,250,25,0,99,4,197,0,93,1,40,1,37,251,156,252,203,1, +40,255,233,255,100,7,146,7,96,2,30,255,211,250,55,251,4,5,52,11,133,6,90,255,41,252,67,254,221,2,178,2, +174,253,59,253,42,5,160,11,197,6,203,255,247,2,224,3,202,248,90,244,40,252,172,254,239,254,57,6,70,8,41,4, +0,5,197,3,87,254,6,254,76,252,169,249,22,3,116,9,178,255,100,254,51,10,209,8,186,253,149,250,221,249,50,251, +214,3,181,6,35,0,174,255,41,6,163,7,239,1,66,251,214,250,0,255,33,254,250,250,53,253,50,254,170,252,246,0, +224,3,132,255,15,1,41,8,102,5,93,252,43,248,30,248,235,252,45,4,247,3,74,1,130,5,131,5,100,252,81,249, +149,252,240,250,11,251,28,1,7,2,205,0,158,5,187,4,227,251,218,251,103,0,74,251,161,247,4,254,209,1,235,255, +186,253,198,249,93,249,225,254,242,254,163,252,153,1,99,2,32,253,229,255,17,1,156,248,245,249,27,3,108,0,118,252, +167,0,245,255,147,253,98,255,216,250,254,247,21,1,147,3,1,252,73,252,238,254,10,252,1,253,40,254,151,251,33,255, +93,1,197,249,237,246,159,250,190,251,30,3,7,13,244,7,245,254,0,0,224,255,53,253,132,255,13,255,227,250,49,252, +119,0,126,4,45,8,212,5,85,0,10,254,8,250,135,246,111,250,90,254,15,1,234,8,155,11,52,5,210,2,9,1, +180,249,110,249,204,254,245,254,155,3,152,12,160,8,44,255,225,255,96,2,81,0,92,254,26,251,8,250,52,1,78,8, +64,8,244,3,221,252,158,249,172,0,82,6,150,1,165,253,50,0,191,1,242,0,245,0,117,0,39,254,125,252,140,255, +100,5,132,4,255,251,169,246,221,248,121,255,186,7,231,10,17,6,194,1,126,0,26,252,168,247,121,248,105,250,145,252, +233,2,55,9,216,8,255,3,131,0,239,254,237,250,114,245,213,247,207,2,205,8,108,5,14,3,228,2,171,253,50,249, +215,252,240,254,100,250,132,251,3,3,146,3,109,0,20,2,23,1,135,254,224,3,151,4,59,249,240,246,156,255,146,254, +157,251,104,4,249,8,184,3,99,2,121,0,154,248,186,247,1,254,151,255,249,254,129,1,43,4,126,4,34,1,88,252, +84,251,163,252,28,255,183,3,64,2,105,250,22,251,70,3,255,5,140,3,26,253,243,246,166,255,162,11,17,3,254,247, +50,254,169,2,141,1,63,6,222,0,19,244,99,253,215,13,152,7,248,251,198,250,227,250,151,0,151,8,245,1,235,250, +122,3,193,7,77,0,146,252,83,251,247,250,217,2,92,8,139,4,225,3,203,3,137,252,127,250,82,254,224,250,229,248, +99,0,47,3,181,255,6,1,40,4,123,7,3,12,18,4,3,242,195,240,175,255,8,7,200,7,115,8,105,1,24,252, +1,3,6,3,236,246,133,245,29,253,231,253,117,0,139,6,49,3,31,255,35,2,216,255,152,253,167,4,173,2,234,246, +140,249,184,2,239,255,149,253,230,255,51,252,129,253,141,7,51,5,152,248,12,247,175,253,192,255,152,252,157,248,152,252, +1,8,147,9,105,1,112,0,212,0,62,249,200,247,217,253,213,251,194,248,85,0,61,6,210,3,106,2,65,1,137,253, +189,254,197,2,20,0,151,250,84,249,189,250,63,255,160,5,70,5,253,254,233,252,74,255,132,1,203,2,187,255,167,251, +46,0,100,4,31,254,13,254,254,7,50,4,96,248,22,253,94,4,236,253,244,251,250,1,239,255,36,252,70,254,62,254, +62,255,145,4,216,4,119,2,123,1,223,251,167,251,26,7,250,7,24,252,98,251,30,1,60,255,232,254,135,253,31,244, +223,246,36,8,224,11,221,3,125,4,152,4,171,251,193,247,205,250,184,252,114,1,217,6,167,2,144,252,195,0,48,5, +218,254,134,248,221,251,249,1,210,5,32,7,92,1,107,250,99,0,122,11,214,8,197,252,185,246,159,249,195,255,77,1, +112,255,182,5,39,13,241,3,136,246,90,247,0,252,98,255,185,6,184,3,41,247,91,252,165,11,128,7,207,249,103,246, +123,248,27,255,152,9,88,9,8,0,107,253,174,0,217,3,161,5,93,0,71,249,94,254,85,8,188,6,1,254,153,250, +206,252,44,254,61,253,29,0,73,7,163,7,131,255,185,250,49,251,134,252,66,2,40,9,219,6,82,0,30,0,240,0, +89,251,11,245,120,245,119,253,208,9,182,16,158,8,141,250,86,247,133,250,188,248,79,250,195,2,75,4,148,2,6,9, +72,9,153,253,220,250,19,0,183,252,139,250,66,0,213,255,232,253,31,7,47,14,151,6,76,250,163,245,132,250,180,254, +186,249,104,248,171,3,202,10,185,6,183,3,11,2,225,252,232,248,63,248,22,252,31,3,59,4,57,4,82,11,250,7, +140,247,121,246,44,1,159,255,165,254,247,6,209,4,126,254,183,4,220,7,149,0,230,253,213,253,54,250,37,251,194,255, +29,1,214,1,154,3,133,4,0,3,245,253,113,251,200,253,249,251,29,249,42,255,27,7,245,11,6,15,7,6,158,247, +59,250,117,1,71,251,66,251,248,5,168,5,186,1,87,7,210,6,193,252,65,249,95,255,1,9,61,11,121,254,32,245, +221,252,184,2,241,255,13,2,254,3,25,1,253,3,51,6,240,252,0,244,193,245,82,254,74,6,235,6,8,7,163,14, +241,13,147,255,213,248,106,249,104,245,46,250,111,7,188,8,157,4,183,4,85,255,215,252,253,3,75,0,204,245,249,251, +221,5,92,4,45,5,86,6,228,252,7,248,228,255,43,4,94,255,136,251,120,253,81,0,228,253,106,252,193,3,167,7, +69,0,148,252,139,255,154,254,81,254,157,255,213,250,142,251,154,6,188,6,205,252,64,254,247,2,246,251,214,245,229,248, +157,252,145,255,210,1,26,255,240,252,48,0,98,0,85,250,39,247,34,250,209,253,224,255,158,1,227,1,185,254,164,250, +105,250,35,253,130,253,176,251,250,251,94,253,214,253,159,0,151,3,72,255,41,249,162,251,49,0,189,253,44,249,53,247, +111,249,114,1,221,4,176,254,246,255,180,8,196,3,145,248,9,248,61,247,181,245,78,255,89,3,137,250,250,250,119,255, +45,249,203,249,69,0,248,247,123,243,112,0,97,4,242,253,164,255,44,0,99,0,247,11,199,12,175,250,26,245,96,255, +103,3,94,1,81,253,121,251,56,8,41,19,160,5,226,246,41,251,43,0,8,0,231,0,35,251,9,248,146,5,24,15, +237,5,226,251,200,249,41,251,171,255,189,255,39,250,54,253,208,4,64,2,60,255,229,2,239,254,132,246,105,251,205,5, +200,5,100,2,250,2,119,0,98,252,169,254,206,0,191,253,69,255,153,4,40,2,156,253,115,255,87,0,248,255,254,1, +51,253,14,248,162,2,203,9,82,253,24,249,167,5,79,6,112,252,121,251,157,252,214,253,68,6,94,8,19,0,113,253, +69,254,179,252,62,0,7,0,249,245,110,247,248,4,60,6,219,254,19,254,86,255,144,0,185,1,200,252,180,250,254,0, +112,0,19,252,25,1,174,1,232,251,238,2,200,7,92,250,233,246,41,3,221,1,255,251,125,3,19,3,98,250,87,2, +37,11,231,0,223,250,222,2,196,4,22,0,235,255,189,1,129,3,233,3,77,0,30,255,102,0,11,252,44,250,203,0, +168,1,101,252,17,255,9,4,131,2,241,0,70,0,17,255,84,2,252,3,230,253,254,251,100,2,75,5,38,3,76,1, +59,254,167,250,193,250,181,254,16,2,110,255,49,252,110,2,174,8,126,4,84,3,30,7,206,254,20,245,13,253,251,5, +99,1,174,254,221,4,208,9,162,7,101,255,112,250,5,254,127,254,189,250,92,255,192,4,41,2,14,3,150,3,183,249, +79,247,38,2,120,4,106,254,86,253,53,253,102,254,255,1,240,252,213,247,131,1,210,8,138,2,23,255,234,0,31,1, +220,3,100,2,251,248,217,249,22,4,177,3,171,255,236,4,46,8,203,3,254,254,116,250,20,249,41,254,62,1,10,0, +181,2,14,7,29,6,39,2,203,255,204,0,183,2,122,0,55,254,216,2,86,6,181,0,3,251,152,252,158,0,191,3, +102,4,206,254,233,247,154,250,225,3,131,5,122,254,140,252,192,3,170,8,183,4,224,253,91,251,111,254,177,2,150,2, +0,255,214,253,198,0,54,3,34,1,35,254,78,0,225,3,206,2,0,2,99,3,183,255,97,251,205,255,4,5,84,2, +111,254,12,255,7,3,91,6,3,2,52,250,244,251,83,3,35,5,82,3,182,254,92,248,166,251,44,5,102,4,15,254, +126,253,152,253,243,252,158,254,70,253,62,251,222,255,40,5,249,4,205,1,206,254,124,0,33,2,1,249,94,241,104,249, +231,0,58,0,48,4,6,4,90,249,138,250,186,5,255,0,237,244,30,247,229,0,254,6,109,8,240,4,199,255,96,251, +148,248,84,251,216,254,74,254,123,2,9,7,19,255,35,248,162,251,61,251,76,251,98,3,65,2,20,253,87,6,249,8, +110,250,81,248,20,3,20,3,226,254,22,255,235,252,231,251,154,253,98,255,5,6,21,7,23,251,16,250,138,6,33,4, +120,249,122,251,117,255,255,0,126,6,11,4,246,250,107,252,71,2,87,3,203,3,228,255,172,251,10,2,110,5,236,253, +248,252,17,2,51,2,136,3,29,2,217,248,199,249,82,3,247,255,229,249,83,0,100,6,240,5,187,2,72,251,204,250, +100,5,55,5,147,248,85,246,248,254,245,5,65,8,45,2,193,248,55,249,211,255,118,3,26,4,243,254,207,249,131,0, +143,6,22,0,29,253,203,0,246,253,130,253,206,4,255,3,62,254,185,255,47,255,46,252,241,0,246,1,214,250,232,253, +166,5,18,0,238,250,131,0,107,255,215,248,169,252,105,0,204,251,253,254,155,7,160,2,107,249,79,253,7,4,152,1, +1,252,81,250,157,254,132,4,142,2,35,253,65,255,184,1,157,253,159,251,57,252,186,251,178,0,121,5,130,255,56,251, +197,255,2,0,169,252,183,252,109,251,92,255,95,11,196,10,24,255,50,254,62,254,191,246,158,252,109,9,130,5,118,255, +93,3,165,0,218,251,22,0,166,253,72,246,189,254,149,11,77,10,245,3,34,254,59,248,237,253,83,10,158,7,230,251, +69,252,17,3,118,2,2,0,194,1,130,1,194,253,1,253,216,255,61,1,150,255,253,252,122,253,104,3,154,8,236,5, +238,255,6,254,127,255,30,1,91,0,168,253,7,255,19,3,77,1,87,254,101,0,74,255,195,252,52,2,9,4,40,252, +149,252,230,4,70,4,97,0,125,0,29,254,229,253,216,0,14,252,41,250,163,5,96,10,124,3,221,2,4,2,50,249, +60,249,39,1,172,1,16,1,111,2,99,254,238,253,246,2,86,255,37,251,49,2,46,5,126,255,123,255,63,1,182,253, +235,253,242,0,20,255,70,254,98,1,39,2,177,0,212,254,82,253,132,255,165,1,245,255,64,1,156,3,234,254,157,251, +204,254,111,254,18,254,153,3,221,1,164,250,217,254,129,4,40,0,214,1,31,9,152,3,182,251,16,0,172,2,254,253, +114,254,227,1,18,0,45,253,130,254,2,4,7,8,103,3,100,252,147,252,115,254,80,254,234,255,40,255,190,253,0,3, +13,4,229,252,14,255,117,4,120,251,43,246,108,1,138,7,53,4,183,4,181,3,255,0,116,4,31,2,242,246,19,245, +196,252,158,4,127,12,2,10,83,252,247,251,39,8,105,7,14,254,186,251,23,252,211,255,156,8,43,8,72,255,121,255, +44,5,123,2,89,252,110,253,51,3,212,3,66,254,225,252,92,2,205,4,154,1,76,254,217,253,43,2,161,5,142,0, +165,253,61,4,143,4,254,252,98,253,65,0,88,253,66,254,136,0,85,254,58,3,221,10,243,4,202,252,241,254,174,0, +134,254,33,252,140,247,21,250,177,7,68,13,24,6,186,1,220,0,107,254,13,254,27,253,186,250,142,254,237,4,175,5, +92,4,230,3,105,3,111,3,38,0,82,250,138,250,146,253,206,251,142,251,132,0,149,4,144,6,109,5,22,255,51,251, +194,253,112,254,187,250,18,249,147,253,65,6,74,8,5,254,236,246,36,254,102,5,208,1,130,252,206,252,98,255,224,0, +70,2,46,4,181,2,61,255,222,2,40,8,60,1,145,248,20,253,45,2,91,254,136,253,223,1,198,2,118,0,228,252, +91,250,232,253,229,2,137,2,71,0,181,254,185,255,1,6,0,7,82,253,244,249,166,0,62,2,220,1,188,5,99,2, +241,250,121,253,230,0,87,252,1,251,149,254,106,255,110,2,25,9,123,7,26,252,56,246,94,254,29,8,126,4,241,251, +150,0,233,13,250,16,30,5,28,247,169,246,147,3,220,9,22,0,223,247,17,254,14,7,195,5,197,253,47,250,101,253, +112,0,247,0,77,0,236,251,201,249,116,1,37,4,184,248,23,246,74,4,16,11,81,4,206,253,27,249,115,248,24,255, +239,255,31,249,151,252,131,7,44,8,82,1,210,252,198,250,75,252,18,1,163,3,154,2,163,254,9,249,203,248,75,0, +163,6,24,5,49,255,107,252,97,253,6,251,203,247,224,253,151,5,137,1,169,250,242,250,10,253,250,0,124,5,215,0, +248,252,122,6,109,9,159,251,179,245,56,252,192,252,235,252,30,5,223,7,80,3,245,0,162,252,16,247,106,249,45,254, +3,1,172,7,24,9,219,253,88,247,0,253,33,1,135,1,209,255,192,247,191,247,240,7,80,11,173,248,238,242,24,1, +95,6,66,1,101,0,39,255,73,254,226,5,22,9,228,252,159,241,117,246,182,3,165,9,122,3,24,252,205,252,12,255, +80,252,116,248,92,248,179,0,114,12,248,7,50,246,35,245,237,3,178,5,76,252,33,251,174,255,69,2,118,2,124,255, +136,255,72,4,193,0,188,246,2,247,3,255,163,2,254,1,104,255,19,254,232,0,13,1,136,254,138,0,64,253,186,242, +211,246,102,5,134,5,166,255,185,0,147,251,68,245,203,253,241,4,222,254,81,252,233,255,232,255,3,0,235,253,120,244, +128,242,49,255,178,8,173,5,230,254,128,250,106,249,14,251,148,251,228,249,85,252,173,6,57,13,41,3,106,246,196,249, +139,255,230,250,20,252,187,3,90,2,232,3,36,12,99,1,139,238,137,244,113,1,50,255,113,2,66,10,175,255,52,244, +248,250,112,255,12,250,110,250,171,253,195,252,30,255,145,4,93,5,110,0,213,248,224,245,9,252,39,3,173,4,23,2, +70,252,231,249,52,255,86,255,79,248,95,250,226,0,217,254,73,255,56,4,30,255,9,250,105,0,5,1,183,249,185,251, +196,255,24,252,208,252,203,0,166,253,100,253,239,3,157,2,151,249,149,245,26,249,61,1,43,7,140,2,133,249,240,247, +18,254,69,7,8,11,28,1,205,246,54,253,234,6,235,2,85,251,246,250,14,255,29,6,113,10,84,3,106,248,180,246, +6,252,30,1,114,3,173,1,97,254,145,254,102,2,22,6,86,5,161,0,209,255,200,3,77,3,67,0,184,2,55,3, +175,253,15,0,133,9,22,7,124,251,46,249,5,255,201,2,155,4,51,3,40,253,117,252,145,4,168,8,112,4,192,1, +22,2,193,255,93,253,151,254,212,255,35,0,141,4,103,12,225,12,4,0,114,243,153,246,203,255,128,255,73,253,105,1, +186,3,71,4,173,6,66,255,100,241,53,244,91,2,155,5,215,3,83,5,205,0,35,253,135,4,80,6,20,252,127,249, +189,0,64,3,12,2,191,2,43,2,100,255,10,253,97,254,11,4,247,5,156,1,146,0,96,1,57,253,202,253,17,5, +82,4,229,255,227,4,62,8,168,1,168,253,98,254,253,251,253,250,136,255,18,4,65,5,230,2,188,255,247,0,118,3, +246,1,167,0,139,0,102,254,176,255,93,4,185,1,89,251,75,253,118,3,239,5,11,6,253,2,204,252,25,251,254,255, +190,3,14,1,64,252,7,255,91,9,97,13,140,5,109,252,68,249,162,251,251,0,87,2,50,255,148,0,111,4,142,3, +175,3,91,5,42,2,171,3,3,12,28,7,140,249,170,253,102,10,186,7,40,255,36,255,210,1,173,4,53,7,155,1, +58,249,209,251,43,5,166,8,165,4,89,254,109,251,167,254,95,4,32,7,128,3,22,251,74,248,227,255,38,5,43,0, +106,251,215,253,21,2,225,3,34,3,205,1,189,1,232,255,165,252,203,254,214,2,117,0,173,254,225,2,153,2,173,252, +67,252,164,0,8,3,97,3,65,1,216,254,216,0,133,1,53,253,117,253,203,1,222,0,238,0,211,5,135,2,60,248, +196,245,154,248,200,250,222,1,36,8,218,3,129,255,100,2,19,0,212,245,120,241,140,248,234,3,180,9,238,5,82,0, +177,254,226,251,15,250,226,255,43,3,36,253,250,251,140,2,100,3,37,1,73,3,214,1,182,252,172,253,41,255,13,250, +116,247,206,253,232,6,202,8,139,255,20,249,179,1,103,7,90,253,62,248,68,253,225,251,107,254,193,10,150,4,108,241, +36,247,15,8,87,3,182,249,5,251,135,249,52,250,125,3,141,1,125,246,162,249,142,2,189,0,247,254,126,2,160,0, +35,251,254,250,24,255,141,1,150,255,15,253,130,254,24,0,142,255,248,255,46,254,182,250,96,253,254,255,150,252,135,0, +100,9,21,3,159,247,38,251,222,1,79,1,243,2,205,3,8,253,235,248,14,253,132,2,185,3,96,255,104,253,68,3, +12,3,9,250,141,250,85,255,192,250,175,253,204,9,223,5,150,251,124,255,187,0,3,251,252,254,56,255,15,246,204,253, +196,12,210,5,97,251,136,255,182,0,207,255,130,5,120,0,97,245,161,253,220,9,40,3,94,252,164,1,136,2,68,255, +61,2,105,1,250,248,168,249,96,3,46,3,110,252,138,1,155,10,247,5,97,253,121,253,23,254,188,253,38,2,234,2, +118,255,10,3,166,5,105,0,107,1,41,5,210,254,23,254,184,7,156,5,236,253,36,2,227,3,245,255,201,5,85,7, +94,251,11,251,68,6,40,5,126,255,64,1,190,0,251,0,47,7,240,5,163,254,83,255,99,2,185,1,68,3,42,4, +173,1,81,1,207,0,19,255,193,1,221,2,192,253,237,252,44,1,190,1,102,1,139,1,210,254,90,0,210,6,107,5, +57,253,250,249,35,252,183,255,223,1,45,255,164,252,113,0,79,5,57,5,135,255,79,248,245,250,182,5,1,5,49,251, +72,252,115,2,3,1,149,255,143,254,47,249,12,251,86,4,134,6,38,4,204,255,119,244,19,243,138,3,1,10,85,1, +170,1,84,5,136,255,251,254,61,3,50,254,59,252,45,3,201,0,45,250,217,0,244,8,24,6,115,1,236,253,16,249, +139,249,130,254,238,254,224,252,101,255,218,4,186,6,98,1,189,249,171,249,239,0,71,4,154,255,194,251,198,254,19,2, +96,0,64,0,167,3,239,0,184,248,49,247,148,253,36,4,69,5,4,253,164,243,68,249,94,7,86,9,181,254,76,243, +77,240,160,253,64,14,114,7,144,242,57,240,0,255,219,7,162,4,226,250,110,245,58,253,127,5,111,255,60,246,244,246, +245,253,28,5,189,4,140,251,243,249,157,2,138,1,102,249,28,253,224,3,191,0,212,254,191,1,8,0,162,254,97,3, +107,3,186,249,129,242,206,246,103,255,234,1,35,2,58,6,29,5,16,252,195,250,52,1,136,255,96,250,236,250,41,248, +198,244,250,253,104,8,181,5,145,255,238,252,244,249,13,249,245,249,174,250,238,0,172,5,186,252,159,246,107,1,39,6, +55,249,177,241,151,247,205,252,123,255,31,2,39,0,113,254,82,4,41,10,112,7,182,0,161,253,202,254,140,255,58,254, +252,253,204,254,82,255,0,3,190,6,171,1,166,250,193,253,34,2,242,252,26,247,120,248,66,253,118,2,17,4,193,0, +143,1,12,5,221,254,145,248,48,255,159,1,216,248,213,251,24,8,44,5,89,252,10,255,6,1,121,253,139,255,216,1, +152,254,97,253,25,252,93,249,144,253,27,1,180,252,104,254,218,4,115,2,88,2,192,6,143,253,120,245,93,0,141,2, +136,244,79,247,59,5,91,3,192,255,42,4,105,254,58,245,212,249,223,0,228,1,148,2,206,254,43,249,57,255,15,9, +237,4,120,248,45,243,189,247,22,1,173,8,198,6,67,252,251,248,223,3,2,7,254,246,10,240,32,254,16,5,112,0, +15,4,10,5,5,251,118,253,113,8,14,1,149,245,164,253,18,9,153,6,126,253,208,247,180,251,235,5,194,9,105,6, +176,1,217,250,172,249,249,1,37,3,230,252,80,0,224,3,112,253,136,255,31,8,128,0,128,245,38,252,88,5,127,3, +76,255,179,252,22,253,58,3,225,4,151,252,135,248,173,254,76,3,15,1,60,254,31,255,237,1,242,3,159,4,76,2, +61,253,68,253,65,3,106,3,162,254,40,0,106,2,30,0,1,4,245,9,182,3,26,251,65,252,68,255,194,0,186,2, +205,1,147,3,75,9,91,5,35,254,67,2,219,1,243,246,36,249,103,3,3,1,175,0,183,9,90,7,109,255,49,2, +192,1,188,250,23,253,76,1,191,253,237,254,151,5,19,7,198,5,190,3,178,0,223,1,94,2,80,254,247,0,232,4, +69,251,11,246,96,4,183,12,195,2,66,253,99,2,202,4,54,3,130,255,43,250,149,252,237,5,149,6,29,255,227,253, +25,2,214,3,25,5,91,5,72,0,202,252,66,0,20,1,6,253,81,254,206,1,64,255,85,254,175,1,5,0,163,254, +57,4,30,3,45,249,65,249,15,3,152,5,149,0,173,252,25,252,117,255,129,2,216,255,143,253,184,0,76,2,170,255, +203,254,121,0,112,1,143,1,197,1,8,2,177,1,152,0,102,255,18,254,40,254,253,0,35,1,44,253,147,254,181,3, +221,0,69,253,44,3,143,5,85,254,154,252,203,1,107,2,212,255,1,254,5,253,110,1,229,6,240,2,61,253,242,255, +68,2,94,255,203,255,232,3,4,5,74,2,229,254,175,255,58,4,255,2,221,251,133,250,220,254,30,1,143,2,20,3, +152,0,111,1,221,4,5,2,32,255,80,3,159,3,3,254,3,255,154,3,38,2,247,255,150,0,201,255,217,255,9,2, +171,1,178,255,96,254,215,252,121,254,196,2,21,2,84,254,164,254,75,0,57,0,63,0,203,254,207,252,223,254,242,1, +147,1,100,0,42,0,85,0,109,1,215,1,228,0,104,0,151,255,38,255,188,0,227,255,58,253,88,0,83,4,213,1, +176,0,233,1,152,252,89,249,120,1,100,6,152,255,22,250,62,252,152,0,251,3,202,3,138,255,193,252,92,254,201,1, +242,2,32,255,51,251,74,253,143,255,2,253,244,252,127,0,38,0,169,255,72,4,251,4,144,254,46,253,166,2,249,2, +250,253,21,253,133,254,180,253,35,255,59,2,76,0,219,252,75,253,80,254,243,255,141,2,168,255,44,252,31,2,122,6, +86,255,94,250,150,253,245,254,165,255,60,3,241,1,3,252,26,251,126,0,104,6,213,6,119,1,249,254,160,1,228,1, +81,0,13,0,11,254,220,254,99,5,189,5,42,255,233,254,87,2,239,0,103,255,51,0,51,1,158,3,27,3,17,254, +45,253,196,254,144,251,88,250,72,253,192,251,3,250,6,255,186,3,203,4,125,5,159,3,145,0,188,0,152,0,108,254, +223,253,138,254,178,0,0,5,92,5,78,1,240,0,23,3,90,1,253,254,198,0,108,3,13,2,61,254,14,254,221,255, +43,252,3,248,241,251,77,255,132,251,150,250,152,254,46,0,156,1,6,4,215,2,63,2,151,4,131,3,51,1,188,1, +141,255,245,251,123,252,149,251,111,249,210,254,190,5,17,5,231,2,190,1,226,252,71,249,175,250,117,251,158,251,187,253, +180,253,171,251,227,251,178,252,42,253,20,255,137,255,234,253,179,254,206,0,168,0,156,255,53,254,188,252,193,254,99,2, +67,1,74,253,32,253,213,0,151,3,74,2,171,254,63,253,28,254,188,253,10,253,49,255,201,2,107,3,6,255,203,249, +169,249,9,252,137,251,108,251,203,253,226,253,90,253,93,0,11,2,167,0,116,1,227,2,224,1,138,1,137,1,236,255, +101,255,81,255,109,254,70,0,36,2,35,255,10,253,201,254,70,254,6,253,241,255,126,2,150,0,184,252,24,250,174,251, +70,0,150,2,232,2,47,3,6,1,46,254,145,253,251,251,155,250,248,253,72,2,231,3,59,4,143,1,31,253,2,252, +21,252,107,251,30,253,148,254,45,255,57,4,210,7,29,3,242,255,58,3,205,3,118,0,60,254,35,253,112,254,131,1, +118,1,238,255,187,255,154,254,248,254,244,1,248,0,156,253,11,255,176,1,108,1,71,1,176,0,38,254,172,252,138,253, +24,0,92,2,93,1,171,0,202,3,193,4,174,2,7,4,144,5,211,2,226,0,63,0,135,253,125,251,239,250,95,251, +203,255,243,3,154,2,67,1,216,0,160,252,216,249,204,250,144,249,175,250,122,1,200,2,171,253,176,253,208,1,193,2, +193,0,183,253,148,253,223,2,88,6,248,4,61,5,6,5,93,255,238,250,27,251,188,250,99,251,221,255,35,3,48,3, +128,2,39,0,181,252,31,252,81,254,109,0,255,0,217,254,84,251,241,250,241,253,180,255,200,255,100,1,64,3,206,2, +27,2,5,2,39,1,25,2,4,5,191,3,90,255,47,255,57,1,146,0,89,255,32,253,177,248,177,248,136,254,29,2, +3,2,197,1,237,0,21,1,122,2,252,254,147,248,242,247,47,250,26,250,19,253,206,2,161,2,5,254,245,251,1,252, +151,253,199,1,163,4,253,4,192,6,126,7,161,3,171,0,116,1,131,0,61,253,51,251,148,249,137,249,160,253,14,1, +171,0,206,0,220,0,164,253,187,251,38,253,42,253,159,252,35,254,149,254,180,253,142,253,163,251,4,249,198,250,205,254, +233,0,188,2,73,5,245,6,30,7,255,4,219,1,147,0,135,255,207,252,158,251,209,252,89,253,248,252,207,252,22,253, +91,254,82,255,1,255,219,255,245,1,222,2,92,3,142,2,110,253,237,247,26,247,125,247,22,246,214,245,132,247,225,249, +17,254,220,3,2,9,4,12,183,10,159,4,214,254,142,253,74,254,161,254,65,0,160,2,226,2,126,2,40,4,52,6, +19,7,11,7,79,4,36,255,75,251,115,248,216,245,133,247,210,251,41,252,142,251,3,255,87,1,12,255,80,252,64,251, +247,251,252,253,217,253,220,252,33,0,172,3,50,2,8,1,37,3,15,3,41,0,160,254,161,254,21,255,176,255,76,255, +199,254,203,255,180,0,223,255,72,254,171,252,158,251,133,252,160,254,48,255,121,254,76,255,239,0,96,0,204,254,146,254, +201,253,30,251,247,248,222,248,227,250,6,254,53,255,86,254,181,254,157,255,166,255,51,1,63,3,224,2,80,2,100,2, +57,1,70,1,248,2,99,2,140,1,82,3,229,3,160,2,133,2,9,2,146,0,124,255,231,252,143,250,178,252,124,255, +30,255,6,255,85,255,154,253,95,252,131,252,122,251,42,250,129,250,110,252,160,255,92,2,158,3,35,5,43,7,31,9, +132,11,154,12,108,11,62,10,35,8,108,3,187,254,226,250,90,247,65,246,30,246,112,245,221,248,239,254,192,0,66,1, +41,3,249,255,254,248,252,245,241,245,246,246,83,250,49,252,151,251,104,253,97,0,38,2,214,5,192,9,50,10,124,10, +221,11,223,10,96,8,95,5,31,255,139,247,116,244,167,246,203,250,108,255,20,5,157,9,232,8,249,3,199,255,233,253, +8,254,118,255,8,255,178,252,229,251,58,251,67,249,194,249,102,252,171,254,17,3,251,7,111,8,146,7,126,7,161,3, +23,254,178,251,97,249,151,246,135,247,8,251,165,255,135,6,8,12,36,13,53,12,61,9,158,3,215,254,255,251,99,249, +153,247,218,246,155,246,122,247,162,248,136,249,227,251,158,254,76,255,229,254,1,254,114,252,167,252,227,254,8,0,243,255, +35,0,53,0,84,0,108,0,61,255,13,254,29,255,210,1,199,4,113,6,214,4,193,1,97,1,218,2,8,2,123,255, +180,254,241,254,76,253,231,250,46,250,33,250,191,249,9,250,253,250,209,252,88,0,9,3,29,2,54,255,110,252,249,250, +172,252,99,0,16,4,244,8,160,12,219,9,50,4,105,1,219,254,168,251,96,252,170,255,27,1,27,1,93,0,225,254, +102,254,157,254,44,255,88,2,199,5,130,4,173,0,211,253,107,250,33,247,193,246,66,247,198,246,87,248,156,253,183,3, +187,6,212,4,131,0,197,253,182,252,108,252,136,254,69,2,18,4,124,3,104,1,94,253,14,250,255,250,245,253,74,0, +126,3,125,6,255,5,117,3,80,1,208,254,126,252,15,252,13,253,137,254,88,255,211,254,90,255,85,0,174,252,111,247, +213,248,83,253,172,253,202,254,212,4,146,8,143,6,123,4,56,4,95,2,240,254,61,253,126,254,113,0,181,0,148,0, +62,2,44,3,252,255,4,252,22,252,178,253,13,253,85,252,185,252,231,251,88,251,128,252,216,251,162,250,222,253,119,1, +199,255,117,252,75,250,192,247,221,246,113,248,214,249,175,252,81,2,232,6,74,9,196,10,197,10,53,10,152,8,179,2, +110,251,23,248,51,247,29,247,251,248,96,251,238,253,81,1,7,3,39,3,29,3,252,255,210,251,181,252,102,255,213,255, +215,0,186,0,246,253,46,254,159,255,93,252,163,249,124,251,176,253,92,0,159,3,165,3,239,2,23,3,94,255,196,250, +217,250,158,251,180,251,206,253,226,253,80,251,99,252,116,0,108,3,5,5,165,3,78,0,135,255,77,255,254,252,83,252, +177,252,121,250,208,248,155,250,176,253,6,0,191,255,169,253,63,254,176,0,19,1,24,1,186,1,246,0,167,0,233,1, +125,2,0,3,53,3,210,0,228,254,202,255,91,255,149,252,145,250,124,249,110,249,184,250,169,251,100,253,88,1,206,3, +138,2,174,255,3,253,134,252,80,254,239,254,17,255,226,1,14,5,168,6,1,8,128,8,32,10,220,14,85,15,12,8, +22,2,120,0,73,254,104,253,221,254,23,254,215,252,102,253,13,251,34,247,27,248,16,252,74,255,62,3,114,7,188,9, +210,8,239,2,201,251,103,250,188,252,21,254,60,1,126,5,187,4,21,1,165,0,156,2,173,4,216,5,9,4,26,1, +160,0,138,0,22,255,35,254,118,252,161,249,202,249,18,252,155,252,219,254,66,5,246,9,213,9,64,7,74,3,25,0, +49,0,116,0,109,254,42,254,79,1,194,2,113,255,41,251,75,250,119,251,252,251,151,253,104,0,127,0,62,255,171,0, +118,1,20,255,137,253,34,253,39,252,192,253,97,1,194,2,161,3,212,4,157,2,169,255,11,0,123,255,29,252,227,250, +56,252,182,252,155,252,118,253,70,255,254,0,148,1,33,2,61,3,32,2,80,254,166,251,64,252,187,254,131,0,203,0, +30,2,27,4,237,1,66,253,58,252,204,252,129,251,23,252,206,255,90,3,120,6,27,8,16,5,87,255,106,251,216,249, +137,249,46,250,53,252,170,255,25,2,176,1,199,255,54,253,52,251,193,251,75,252,156,251,54,255,213,5,219,6,157,3, +179,1,243,253,165,247,195,245,243,250,73,3,66,8,234,4,49,254,51,252,233,252,69,253,121,0,220,4,154,6,215,7, +193,6,109,254,71,245,117,244,5,249,90,252,231,253,209,255,165,3,38,8,168,9,51,8,196,6,171,4,243,0,225,254, +147,255,48,0,214,0,63,2,114,0,213,250,215,247,45,249,0,251,147,254,102,5,85,10,56,11,96,10,228,5,146,253, +251,247,163,247,255,248,183,250,63,253,0,0,56,1,82,254,43,249,230,246,2,247,50,248,80,254,156,7,28,13,194,14, +246,13,17,8,209,254,25,247,87,243,248,244,244,248,103,251,216,0,38,10,109,14,214,13,43,14,10,10,204,255,139,249, +254,248,199,248,129,250,200,254,114,1,76,1,155,254,49,251,19,251,236,252,192,253,198,255,34,2,111,1,105,0,184,0, +48,0,167,0,93,2,7,1,128,253,246,250,69,249,255,249,252,252,104,253,124,251,80,251,225,252,92,0,97,6,189,10, +250,9,16,6,113,2,114,0,129,253,192,248,220,247,123,251,81,252,183,250,173,251,163,252,22,252,207,252,255,253,231,255, +123,3,27,5,46,6,90,9,5,7,170,254,106,250,81,247,12,241,133,242,215,251,201,0,85,4,0,11,57,12,128,7, +75,3,248,254,229,252,13,0,217,2,209,4,51,9,37,10,239,5,249,1,155,252,133,246,106,246,79,249,79,252,45,5, +63,14,176,11,164,2,224,252,199,249,127,248,255,249,133,252,150,254,189,253,25,249,141,246,238,248,137,252,161,1,229,7, +92,9,52,7,241,7,55,9,19,7,16,5,120,4,180,1,185,253,162,252,92,253,103,252,19,252,11,0,106,4,224,4, +9,4,251,1,85,252,191,248,164,250,239,250,125,248,82,249,30,251,23,250,122,249,231,249,72,250,224,252,236,255,194,0, +150,2,21,5,109,4,234,2,236,1,106,255,91,255,108,3,252,3,194,255,56,253,181,251,204,248,91,249,157,254,44,1, +8,253,75,247,229,245,58,248,197,251,109,1,119,6,192,3,253,251,230,248,72,249,58,247,84,247,78,254,162,6,20,11, +195,11,169,8,73,3,223,255,182,255,234,0,22,2,249,1,94,0,8,0,30,2,167,2,16,255,8,251,226,249,166,249, +233,248,221,249,231,252,153,255,137,1,135,3,57,4,254,2,106,2,136,3,125,3,230,1,32,3,72,7,83,7,33,1, +150,252,92,254,111,0,176,253,114,250,214,251,42,255,127,255,61,253,94,251,28,251,161,253,243,2,211,6,80,6,109,4, +198,2,164,254,18,250,182,251,244,2,198,7,193,6,95,3,222,255,182,251,101,248,120,248,33,252,109,2,234,8,110,10, +10,6,240,1,180,255,113,249,170,240,126,239,32,247,29,254,187,0,84,3,214,5,215,3,160,255,216,254,176,255,42,255, +144,1,15,8,121,11,237,8,60,4,14,255,69,250,229,247,95,247,31,249,88,254,149,2,154,3,253,6,145,11,173,9, +190,4,21,4,133,3,252,254,179,251,133,252,182,254,136,0,165,0,223,254,62,254,216,255,25,2,121,5,42,9,59,9, +49,6,123,4,20,3,4,254,217,247,90,246,96,249,109,252,185,253,77,254,90,254,186,253,194,253,57,255,180,0,224,1, +134,4,138,7,35,7,61,3,74,254,158,249,231,248,88,254,255,2,145,2,214,3,28,7,236,3,229,253,188,253,211,254, +112,253,51,255,255,1,59,0,189,254,240,255,36,255,223,254,120,2,78,4,161,2,241,1,181,1,188,0,161,1,147,3, +226,4,64,7,252,8,171,6,54,3,93,2,132,2,165,1,178,255,223,252,74,251,120,253,194,1,252,4,68,7,224,8, +8,7,53,1,33,252,189,250,61,250,182,248,73,249,157,254,149,5,242,8,234,7,246,4,243,0,44,253,30,252,55,252, +196,251,157,254,32,4,42,5,49,3,165,4,89,6,120,4,171,2,207,1,163,0,5,1,165,0,252,252,93,251,65,253, +29,253,123,251,95,251,43,251,244,251,160,255,35,3,112,5,39,7,140,5,212,0,112,251,248,244,164,241,237,246,111,254, +32,0,216,254,129,254,67,255,231,1,205,4,254,5,29,8,206,11,243,13,118,13,59,9,219,0,34,249,118,245,122,244, +114,246,99,251,79,0,97,4,89,7,2,7,155,4,193,2,102,0,25,254,80,254,217,254,191,252,196,249,219,248,22,251, +199,254,41,0,161,254,66,253,8,253,142,253,136,0,151,6,201,12,76,16,251,16,108,14,152,6,120,251,205,243,214,241, +208,242,152,246,246,251,238,254,206,1,217,7,11,12,88,12,205,12,254,10,34,4,249,253,8,251,94,248,206,246,209,246, +12,247,99,249,18,253,4,255,238,1,158,6,219,8,247,10,107,16,5,20,63,18,195,12,132,3,166,249,21,245,102,245, +171,248,51,255,40,5,74,7,124,7,99,5,176,0,231,253,37,254,10,255,140,1,212,3,162,0,53,250,137,246,187,245, +201,246,114,250,81,254,5,0,133,2,129,8,100,14,129,15,243,12,30,10,123,6,163,0,63,251,255,249,32,252,199,252, +76,250,210,249,226,252,231,252,62,250,154,253,82,5,208,8,244,8,178,8,221,5,77,2,160,0,193,253,234,249,47,249, +221,250,143,252,20,253,64,251,53,250,103,253,66,1,165,3,200,7,143,12,11,14,65,12,176,7,222,0,190,250,150,247, +40,248,231,250,177,251,36,251,89,253,98,0,140,2,228,6,66,10,83,8,76,6,48,6,7,3,168,254,122,252,209,249, +167,247,105,248,31,249,99,250,217,254,125,2,220,3,128,6,170,7,113,3,162,253,184,250,64,251,105,253,54,254,251,253, +115,254,224,253,111,253,7,0,196,0,219,252,27,251,208,252,138,253,213,255,159,4,94,6,189,5,219,5,129,3,19,255, +178,253,42,254,82,253,56,253,40,255,33,1,190,1,220,0,147,255,19,0,190,2,174,4,7,3,45,255,7,252,27,249, +215,246,60,248,151,250,243,249,211,250,161,254,6,255,69,254,229,1,207,3,129,1,123,2,199,4,245,1,160,254,190,253, +244,250,71,248,220,250,178,1,229,8,128,10,130,3,152,251,119,249,192,249,78,250,199,251,223,251,222,251,34,254,94,254, +111,251,3,250,165,249,51,249,192,250,204,250,148,247,249,247,231,251,12,253,144,255,120,7,75,12,18,9,179,3,238,0, +235,0,144,1,236,0,26,2,99,6,132,6,196,0,202,253,246,254,201,253,23,251,62,251,184,252,73,253,18,254,214,255, +250,0,202,255,9,255,134,2,52,5,83,0,37,250,245,250,40,254,143,254,6,0,40,4,54,7,180,7,87,6,57,4, +236,2,238,1,115,0,214,255,131,255,145,253,213,251,157,252,253,254,168,1,122,3,6,3,98,0,111,252,236,248,193,248, +44,251,216,252,222,254,199,2,227,4,192,2,73,254,249,249,1,249,227,251,18,253,198,250,252,250,25,255,228,1,198,2, +79,5,184,8,223,9,166,9,167,9,79,6,187,253,208,246,3,246,150,246,101,247,151,251,220,255,195,2,89,9,10,17, +36,19,192,16,79,10,71,255,247,246,128,244,71,243,110,245,219,251,230,254,5,0,123,5,235,8,2,6,130,3,80,3, +210,3,63,6,157,6,20,2,166,253,253,249,27,245,239,242,253,243,20,246,55,252,111,4,106,8,252,9,159,10,55,7, +202,2,225,255,49,252,231,250,29,252,196,248,66,245,199,248,191,250,45,247,100,247,206,250,52,251,163,252,227,0,23,3, +128,3,230,3,36,3,169,1,128,255,204,252,47,252,12,253,116,253,23,255,77,0,92,254,51,254,54,2,168,4,173,4, +244,5,114,6,218,2,53,253,239,249,16,250,98,249,0,247,40,248,232,250,57,249,118,249,148,1,171,8,139,9,61,9, +72,7,71,2,43,255,11,254,41,251,19,248,183,246,16,247,181,249,79,253,138,1,109,7,150,10,213,8,186,7,63,6, +250,254,219,247,90,247,161,249,117,253,27,4,158,7,148,4,252,255,195,252,61,249,75,244,25,240,184,241,247,248,66,255, +69,4,119,10,11,11,198,2,198,250,80,247,240,245,163,249,161,1,37,5,96,4,227,5,192,6,87,3,67,1,157,2, +68,2,10,1,59,4,231,8,77,7,143,255,99,248,81,244,210,240,61,238,24,240,85,245,205,248,127,250,4,255,90,5, +62,8,37,8,144,8,1,8,197,4,19,2,181,1,149,1,198,1,227,3,10,6,74,6,253,6,35,9,220,8,148,5, +171,3,57,1,109,248,27,238,178,234,72,235,29,236,172,241,202,250,138,255,202,255,240,255,62,0,80,1,200,3,81,5, +19,6,45,7,226,5,66,2,21,0,76,255,153,255,73,3,202,7,161,8,112,7,177,6,187,5,201,4,83,3,120,255, +93,251,225,249,67,248,8,244,228,240,159,241,202,242,207,242,41,246,205,252,209,255,154,255,73,3,254,8,255,9,190,7, +16,5,232,0,39,254,241,255,186,2,253,3,140,5,62,7,36,7,241,3,23,254,135,250,187,252,10,0,161,0,178,0, +122,0,207,254,53,253,222,250,115,246,233,243,58,246,228,250,149,254,116,255,82,255,61,2,143,5,69,4,161,2,151,4, +88,5,186,3,85,2,36,254,141,248,33,249,86,253,46,255,154,2,161,7,21,7,9,4,83,4,162,2,163,253,205,252, +111,254,206,252,165,252,131,0,192,1,6,0,7,1,185,3,244,4,206,4,204,1,112,253,50,254,197,2,185,3,86,2, +129,2,182,255,208,247,143,240,249,236,183,237,33,245,55,255,103,4,67,6,20,9,138,9,173,5,39,2,30,1,210,0, +125,1,242,3,186,6,177,7,61,6,197,3,36,1,3,254,233,252,79,0,243,3,115,3,11,1,192,253,66,248,252,244, +204,247,65,252,245,253,28,253,224,250,129,250,129,253,231,254,149,253,168,255,3,5,105,8,160,10,156,12,82,11,162,8, +95,8,153,7,236,2,243,252,203,249,203,250,101,253,39,254,61,254,36,0,224,1,57,1,16,255,38,252,46,249,82,247, +21,247,148,249,133,253,204,253,34,251,38,252,42,0,70,2,2,4,195,6,198,7,172,7,201,7,62,6,105,4,169,4, +41,4,130,1,209,255,125,255,219,254,208,254,4,0,7,1,23,1,0,1,168,0,30,254,49,250,192,249,180,252,77,253, +6,252,187,253,27,1,54,3,107,4,218,3,37,2,34,3,92,6,195,8,170,9,158,7,4,4,225,4,9,9,27,10, +76,9,236,8,44,6,217,1,109,254,52,251,107,250,42,253,155,254,6,255,1,2,68,3,143,255,188,250,172,247,93,250, +218,4,126,12,71,9,89,3,186,255,211,250,21,247,98,246,164,245,171,248,2,1,146,5,217,5,97,9,244,11,61,8, +153,4,52,3,30,255,139,250,254,249,96,251,88,252,35,253,83,253,24,253,112,253,40,254,146,254,62,254,206,253,100,255, +87,3,77,6,223,4,198,255,215,251,75,252,54,254,68,254,41,254,196,255,67,2,131,4,44,4,181,0,154,255,44,3, +113,5,17,5,177,7,53,12,69,12,12,8,55,3,128,254,53,251,48,252,165,0,217,3,62,3,209,1,91,2,96,1, +85,251,105,244,153,242,37,246,49,252,211,1,129,4,180,4,117,4,172,2,208,253,104,248,78,246,58,249,117,255,65,3, +123,1,234,255,141,3,58,7,18,6,246,3,170,3,244,1,252,253,80,251,56,252,135,255,98,1,241,254,190,250,43,249, +4,251,252,254,131,2,13,2,142,254,180,252,7,253,205,253,112,0,166,4,237,5,166,2,69,255,97,0,4,4,100,4, +46,2,102,2,65,2,52,253,185,248,127,249,224,251,117,255,137,5,62,8,98,5,0,3,254,1,64,255,177,252,79,252, +232,253,221,1,187,4,202,2,89,0,126,1,124,3,228,4,243,5,33,4,115,255,180,250,53,246,128,243,74,246,123,253, +184,3,75,5,245,2,98,1,18,2,31,0,216,250,252,247,54,248,37,249,90,253,118,4,35,8,195,7,24,8,150,8, +74,5,201,254,243,249,219,250,12,0,158,3,50,3,151,2,204,3,69,3,188,255,137,253,51,254,221,254,73,0,223,2, +99,0,154,248,16,245,155,246,3,247,194,249,216,0,103,3,21,1,4,2,109,3,20,1,219,0,194,3,226,4,177,5, +87,6,184,2,198,253,250,250,36,247,3,245,21,251,51,4,36,8,100,8,133,7,162,4,50,2,134,2,32,2,239,254, +223,252,236,253,83,254,100,252,203,251,122,254,69,2,67,5,1,6,207,3,156,1,141,1,205,1,49,3,191,7,84,10, +18,6,246,255,79,253,37,252,72,251,165,253,155,3,147,9,119,12,249,10,55,5,200,254,177,252,212,253,171,253,174,254, +12,4,172,7,219,5,120,3,129,0,23,251,226,249,58,254,210,255,118,255,130,3,242,7,77,7,243,2,246,252,12,249, +106,249,41,248,144,244,149,247,146,255,77,2,231,1,95,5,94,9,250,8,113,5,75,1,210,254,78,0,51,5,236,8, +147,6,32,0,16,252,230,250,4,251,103,255,82,5,142,5,173,3,206,4,201,3,16,0,56,255,246,253,10,249,187,245, +239,244,151,244,112,247,171,251,99,253,184,0,32,6,23,7,88,5,48,5,134,2,238,252,210,250,139,252,214,254,38,2, +114,5,46,5,163,1,30,255,114,0,143,3,68,5,5,6,84,6,161,4,116,1,94,253,208,247,209,244,129,247,98,251, +105,254,135,2,50,4,41,2,251,1,206,2,186,0,101,255,117,255,191,252,137,250,4,252,0,253,255,252,14,254,38,254, +106,254,146,0,138,0,28,255,52,1,116,3,75,3,224,4,102,5,19,0,96,251,210,252,80,0,18,3,178,5,172,7, +91,8,185,5,192,255,45,252,150,251,42,248,137,245,182,250,155,1,39,3,34,3,84,3,122,0,170,252,182,251,199,252, +155,254,70,1,111,4,110,7,21,8,31,5,77,2,166,2,42,3,189,1,92,0,104,255,177,254,209,0,47,5,144,6, +162,4,252,3,217,3,97,0,8,252,172,250,87,250,193,249,142,251,223,254,83,0,202,0,169,1,48,1,141,255,200,254, +10,254,53,252,26,251,155,252,180,0,86,5,23,7,177,5,107,4,40,3,65,255,125,251,79,252,91,255,139,0,131,0, +189,255,216,252,136,249,193,248,237,250,241,255,213,5,124,7,138,4,173,2,232,2,221,1,27,1,217,2,116,3,245,0, +28,255,114,255,85,255,115,254,75,255,68,1,4,0,249,250,237,247,242,249,74,253,144,255,11,2,231,3,97,3,121,1, +234,255,60,0,63,3,69,6,154,5,128,1,177,253,99,254,130,3,16,7,153,6,204,6,230,7,173,5,73,2,67,0, +69,252,145,247,239,246,113,247,137,245,135,244,185,245,195,246,60,248,40,251,67,254,248,255,192,254,23,252,21,252,241,253, +253,254,131,1,79,5,237,5,205,4,121,4,84,1,105,252,222,251,9,253,229,250,37,250,165,253,208,254,74,251,74,249, +217,251,121,255,49,1,82,1,138,0,77,254,88,251,189,250,195,252,242,252,82,250,78,250,195,253,91,254,40,252,125,254, +114,4,156,6,153,5,150,5,166,4,236,1,121,0,203,255,187,254,82,255,117,0,249,255,201,0,146,3,98,3,97,255, +145,252,145,253,46,255,62,252,212,245,147,243,29,247,179,250,148,253,61,1,159,1,189,254,206,254,36,1,190,0,225,254, +68,254,208,254,41,1,5,4,192,3,97,1,160,0,3,1,37,1,172,2,195,5,223,6,185,4,102,3,10,5,51,5, +72,1,178,253,26,253,14,252,151,248,38,246,112,248,213,253,196,1,119,4,221,7,226,6,151,254,40,247,254,244,160,243, +12,245,205,252,17,3,21,3,102,3,146,5,144,4,208,0,208,253,97,253,150,0,113,5,192,8,194,9,157,7,141,3, +222,1,246,0,139,252,144,248,26,249,217,250,100,252,52,255,237,1,2,4,4,5,176,1,191,250,20,245,75,243,22,247, +243,254,140,3,138,2,193,0,145,255,86,255,126,2,45,6,7,7,83,7,152,6,199,3,176,3,170,5,4,3,215,253, +169,251,51,251,87,251,62,252,35,252,34,253,77,1,127,4,178,5,181,7,9,8,218,4,240,0,81,252,213,247,169,247, +171,250,131,254,83,5,154,11,222,10,40,7,174,6,207,6,222,4,51,3,46,3,156,3,182,2,105,0,219,254,163,254, +49,255,232,0,240,0,141,252,130,248,178,248,205,250,115,255,5,7,2,11,20,9,213,4,107,253,218,243,64,239,101,241, +18,248,169,2,125,11,148,13,171,13,200,13,187,9,211,3,158,255,52,251,100,249,211,253,78,2,23,2,60,1,63,2, +164,3,83,3,140,255,92,252,85,255,83,4,217,5,34,6,48,5,241,0,50,253,41,250,216,243,165,240,29,248,76,3, +0,10,235,12,88,12,193,8,74,5,5,0,82,248,188,246,215,252,230,0,6,2,162,5,17,6,185,254,35,249,83,251, +108,255,172,2,62,6,253,6,169,4,236,3,14,3,53,253,46,246,70,244,6,246,60,247,244,247,220,250,38,1,135,7, +230,8,38,6,113,4,128,3,57,0,33,254,75,1,35,5,82,5,14,5,77,4,249,253,75,246,11,247,9,254,25,3, +166,6,77,10,149,10,183,7,2,4,123,253,15,246,103,244,13,248,69,252,97,0,166,2,238,0,45,255,64,255,36,253, +30,251,186,254,242,2,48,1,68,254,96,255,217,0,177,255,233,253,87,252,50,251,227,252,218,1,228,6,51,9,125,7, +112,2,114,254,143,254,171,255,215,255,1,2,244,4,84,4,139,2,198,2,21,1,119,252,50,250,78,250,140,249,217,250, +91,0,26,5,237,5,91,5,109,4,158,1,49,254,37,253,208,253,225,253,252,254,10,2,10,2,255,253,41,253,237,255, +165,254,88,251,101,254,57,5,21,8,136,6,221,2,56,254,119,251,177,252,14,1,29,6,191,7,167,4,164,1,47,1, +196,255,81,253,199,253,76,0,56,1,124,0,83,255,255,253,216,253,8,0,30,3,249,4,7,5,90,3,66,0,125,253, +148,252,89,252,22,252,239,253,26,1,217,0,158,253,137,253,8,2,102,6,255,6,203,3,61,255,32,252,161,250,59,250, +123,252,14,1,128,4,105,5,66,4,54,1,75,255,19,2,141,6,83,7,10,5,41,3,26,2,113,0,93,253,28,250, +61,249,188,249,137,248,168,248,106,254,0,5,105,6,179,5,163,5,33,3,66,255,77,254,230,253,59,251,50,251,39,1, +63,7,217,6,237,1,239,255,75,3,176,6,193,6,138,6,49,8,190,10,145,13,145,14,76,11,122,5,7,255,125,247, +230,240,177,237,22,237,108,239,31,244,251,245,92,244,4,245,84,248,107,250,188,251,15,254,200,1,235,5,184,5,28,0, +59,253,150,0,250,3,126,4,65,3,197,0,243,0,172,4,119,5,103,4,181,8,64,14,75,14,45,12,47,9,176,2, +218,252,46,250,197,245,90,239,163,235,71,236,115,241,212,248,140,253,41,0,157,2,25,1,176,252,250,253,72,5,231,9, +85,8,79,4,120,1,116,255,172,252,160,251,108,254,163,0,154,0,215,2,127,5,54,4,26,4,169,7,165,7,115,3, +64,1,98,0,58,255,109,0,166,1,205,254,37,250,235,245,65,242,223,241,189,244,157,246,127,247,160,249,81,251,25,252, +100,254,139,1,130,3,241,4,11,6,151,5,101,4,202,3,241,2,207,1,70,2,143,3,151,2,20,1,179,3,1,8, +87,7,8,3,74,1,228,1,14,1,189,255,85,1,252,5,203,9,103,8,0,3,167,255,141,0,57,2,76,2,32,1, +114,255,131,254,166,254,52,254,162,252,11,251,200,250,159,254,217,6,78,12,201,9,138,5,239,5,172,6,83,3,106,255, +155,253,160,252,223,253,18,2,55,4,178,2,56,3,37,6,218,4,65,0,176,255,115,2,198,2,34,1,186,0,161,1, +138,3,49,5,109,3,20,255,73,252,232,250,200,248,165,247,191,249,28,254,81,2,196,3,124,1,6,254,32,252,4,252, +74,253,60,255,207,0,135,2,126,4,152,4,169,2,60,1,254,0,242,0,1,1,97,1,226,2,198,5,218,6,112,3, +57,254,202,250,129,249,103,249,232,248,158,247,21,248,205,250,184,252,120,253,64,254,42,254,108,254,232,255,254,253,11,249, +18,250,45,1,246,3,226,0,48,255,217,255,238,254,223,252,173,253,226,2,98,8,122,9,138,7,202,4,164,255,216,250, +137,252,158,1,109,2,192,255,216,253,138,252,38,251,21,250,118,249,13,251,216,255,43,4,218,3,103,255,226,250,111,249, +61,250,147,251,216,253,10,0,223,0,20,3,45,6,169,4,45,1,127,2,70,4,218,1,12,1,171,2,108,1,152,0, +83,2,7,0,168,251,54,253,133,0,92,255,105,253,155,252,111,251,18,252,123,253,244,251,68,250,93,250,163,248,37,246, +93,246,172,247,90,250,58,0,116,4,197,3,158,2,85,2,135,0,221,255,69,3,199,7,106,9,181,6,29,1,243,252, +158,252,233,254,209,2,55,6,113,5,243,1,225,0,211,1,204,0,57,255,57,2,171,8,77,10,9,4,227,252,231,248, +72,244,84,240,174,242,71,248,184,251,155,255,127,5,136,9,120,10,223,8,232,4,246,1,139,1,76,0,227,254,97,0, +107,2,236,3,255,6,47,8,164,4,124,1,211,0,158,255,138,255,232,1,171,2,136,1,161,0,177,253,215,249,96,250, +20,253,201,252,60,252,160,254,164,0,104,255,51,252,153,249,229,249,68,253,231,1,105,6,97,9,86,10,210,11,87,14, +12,14,120,10,241,6,2,3,223,253,171,251,210,253,74,0,106,2,176,5,223,5,214,255,1,250,30,250,67,252,237,252, +81,255,127,3,64,4,42,1,171,253,234,249,24,247,61,249,126,254,111,1,25,3,52,6,229,7,140,6,114,5,40,6, +51,7,28,7,100,4,147,255,37,252,96,251,187,251,22,254,195,3,98,9,71,10,209,6,172,3,168,3,62,4,82,2, +15,0,66,0,233,255,151,252,233,250,21,254,161,1,139,2,253,3,246,5,136,3,78,253,199,249,138,251,89,0,177,5, +183,8,99,8,190,7,146,7,146,4,97,255,229,251,38,250,241,249,240,253,31,5,130,11,18,16,131,17,49,13,46,5, +43,254,245,249,72,249,254,251,195,255,202,3,123,7,251,6,48,2,177,254,4,253,166,249,123,247,177,250,120,0,171,5, +142,10,108,12,131,7,157,255,216,252,17,0,167,2,214,1,183,0,141,255,92,253,237,253,137,1,45,2,185,0,166,2, +44,4,83,1,141,0,163,4,175,7,53,8,196,7,65,4,124,254,17,250,14,247,204,246,44,252,133,3,118,7,156,7, +7,4,17,254,211,250,58,251,28,252,147,254,123,3,138,6,221,5,194,3,191,1,212,0,61,0,114,253,240,250,0,253, +206,255,83,254,84,252,168,254,156,3,205,7,9,10,20,10,146,7,213,2,174,254,52,253,41,252,104,251,78,255,220,5, +54,7,114,2,73,252,208,247,130,247,96,250,70,252,163,255,59,7,54,11,193,7,188,4,122,3,171,255,47,254,152,1, +159,2,38,1,160,2,128,3,56,1,164,1,104,5,27,7,79,5,127,0,132,250,242,248,29,253,126,2,0,7,31,9, +229,5,73,0,89,253,53,251,33,248,67,248,205,252,174,1,62,5,183,8,4,11,35,9,203,3,63,0,71,0,187,255, +183,253,77,253,52,253,207,251,99,252,212,254,190,255,121,1,125,5,37,6,85,2,31,0,51,1,165,2,239,2,146,1, +44,0,56,1,112,2,40,1,208,255,73,255,127,253,66,252,165,253,99,255,161,0,238,2,92,6,111,10,86,12,248,6, +244,252,150,247,24,248,29,249,12,251,18,0,132,4,59,5,230,3,121,1,90,253,66,250,53,252,103,1,61,4,120,4, +116,5,163,5,201,2,16,0,144,254,190,251,82,250,142,253,50,1,233,2,222,5,13,8,212,5,12,3,74,2,105,0, +89,254,229,254,82,255,167,254,41,0,30,2,87,0,96,252,97,249,102,248,171,250,163,254,9,0,135,255,167,0,161,1, +102,255,19,252,174,250,246,251,38,0,166,5,13,10,21,14,4,17,40,13,112,2,116,250,7,250,5,252,75,253,216,254, +23,255,7,254,149,255,153,2,12,2,85,255,91,254,162,253,210,251,49,251,14,252,193,252,79,253,3,254,11,254,49,252, +187,248,112,248,236,254,233,5,183,6,57,6,250,8,61,9,123,4,143,0,130,255,243,254,1,255,17,255,97,253,126,252, +196,254,95,0,27,254,140,251,128,252,224,254,205,255,139,0,203,1,103,1,10,0,194,255,32,254,219,249,143,247,195,249, +232,253,66,1,62,1,78,254,65,254,233,1,213,2,150,0,195,255,222,255,94,0,238,2,177,4,184,3,16,3,77,2, +14,0,148,255,108,0,122,255,191,255,232,1,193,0,132,253,86,252,250,250,239,249,117,253,61,2,131,3,75,3,221,2, +224,1,230,1,146,0,61,251,190,247,237,249,247,251,122,251,185,252,103,255,230,0,84,3,5,7,93,7,0,4,65,2, +199,2,190,0,141,252,187,251,190,253,141,253,59,252,90,253,222,254,78,254,66,253,23,253,33,254,68,0,28,1,187,255, +21,254,77,251,83,247,253,247,215,253,119,1,195,2,86,6,19,8,72,5,240,3,141,3,165,254,215,249,194,250,222,253, +90,1,200,5,132,6,82,2,66,254,158,251,76,250,230,251,124,253,126,253,230,255,223,1,19,254,12,251,123,254,99,2, +202,3,92,4,49,1,151,251,116,250,194,252,110,254,237,0,240,2,70,1,92,255,195,255,206,255,30,0,163,2,253,3, +109,1,62,254,107,254,195,0,84,1,237,0,36,3,18,5,118,2,252,254,119,253,117,251,130,251,174,0,2,5,188,4, +12,4,70,3,10,0,115,253,161,253,207,253,187,252,163,251,56,252,134,255,165,2,55,2,255,0,70,2,139,3,240,1, +65,254,140,250,167,248,243,248,185,250,103,254,19,3,202,4,113,2,151,255,130,254,246,253,23,252,196,248,255,245,194,245, +90,248,96,253,192,2,23,5,71,4,115,2,143,255,120,252,140,251,21,251,192,249,196,251,193,0,18,1,57,252,212,249, +35,252,143,255,226,1,48,2,245,0,6,0,114,254,126,251,54,251,192,254,7,1,103,1,166,3,63,5,9,2,35,253, +208,249,12,247,212,246,155,251,220,0,174,2,27,4,143,6,77,7,179,6,238,5,150,2,138,253,26,252,45,254,251,254, +18,254,80,253,148,252,23,253,203,255,120,1,25,1,154,2,95,6,132,8,218,7,70,5,65,2,211,1,200,3,8,4, +6,2,184,255,40,253,32,252,34,254,247,254,251,252,119,253,94,1,88,4,139,6,191,9,53,11,132,8,167,3,33,0, +150,254,253,251,236,247,207,246,188,248,181,248,29,247,63,248,217,252,101,4,156,13,53,20,121,21,151,17,112,9,118,1, +145,253,136,250,165,246,252,245,211,247,201,248,31,251,164,254,60,255,39,0,233,5,149,11,235,12,255,12,175,12,162,9, +93,5,147,2,85,0,13,253,208,249,165,248,128,249,95,250,30,250,30,250,192,252,29,2,154,6,237,6,79,4,190,1, +232,255,15,254,239,251,61,250,18,250,254,250,212,251,19,253,34,255,228,1,253,6,211,13,229,16,206,13,146,8,35,4, +20,0,139,252,246,250,147,252,120,0,119,3,25,4,12,3,85,0,151,253,123,253,146,254,66,255,111,1,87,3,225,0, +250,252,9,252,178,251,15,250,2,250,64,252,159,254,75,1,142,5,43,10,88,13,90,15,199,15,85,12,6,6,189,0, +189,252,195,249,204,250,123,254,204,255,157,255,207,255,45,254,36,252,55,252,209,251,39,252,99,1,50,7,240,8,78,9, +104,7,205,0,245,250,11,249,125,247,5,247,201,249,137,252,170,253,80,254,137,253,44,252,150,252,6,254,146,0,22,5, +122,7,179,4,160,0,89,254,7,253,165,253,71,1,127,4,110,4,174,3,168,4,224,4,207,2,37,1,169,0,212,255, +196,255,166,0,213,255,59,254,99,254,146,254,202,253,13,254,194,254,62,254,122,253,59,254,246,1,237,6,146,7,146,3, +178,255,82,251,181,245,195,244,108,249,74,254,17,3,254,7,128,9,46,9,38,10,40,9,15,5,91,1,233,254,200,254, +54,2,104,4,23,2,147,255,100,254,107,251,205,247,147,246,79,247,91,249,218,252,104,0,123,2,46,3,75,3,130,2, +243,255,203,252,1,251,108,250,58,251,89,254,203,1,151,3,107,4,226,2,22,254,1,251,217,252,162,0,234,4,77,9, +171,9,163,4,235,254,35,252,6,252,207,252,239,252,4,253,169,253,11,253,180,251,250,252,86,0,251,2,187,4,43,5, +167,3,16,2,90,0,95,252,81,248,89,247,190,247,82,248,227,250,107,254,78,0,49,1,51,2,195,2,56,3,123,4, +205,5,74,5,242,1,220,253,187,252,53,254,233,254,107,255,7,2,157,4,211,4,47,4,150,3,137,2,77,2,92,3, +61,4,168,4,189,3,25,255,103,248,201,244,13,246,185,250,65,1,203,6,59,8,60,6,239,3,185,1,148,253,32,249, +137,249,217,254,68,3,61,4,132,2,134,253,102,248,62,249,1,254,199,255,168,254,195,253,5,253,5,254,197,2,137,7, +233,7,97,5,41,3,49,1,4,254,51,250,68,248,23,250,29,255,209,3,164,3,132,254,65,249,154,246,109,246,38,249, +98,253,95,1,16,7,233,12,22,12,72,5,171,255,216,252,63,252,177,254,105,0,241,254,182,254,252,0,185,2,216,3, +123,3,244,0,86,1,19,5,193,4,85,0,116,253,120,251,189,250,4,255,91,3,29,1,133,253,202,253,230,252,209,248, +243,247,101,252,21,1,170,3,202,5,18,7,205,5,105,2,163,254,203,252,142,254,183,1,160,2,101,1,198,255,155,254, +215,254,253,254,174,252,140,250,78,250,240,247,168,244,231,246,150,252,242,255,144,2,209,5,47,7,95,7,85,7,7,5, +57,1,0,254,141,251,46,252,205,0,97,4,208,4,192,5,126,6,4,3,67,253,4,250,102,249,23,249,211,248,172,249, +22,252,218,254,40,255,73,252,168,249,91,248,101,245,214,243,228,249,235,1,95,3,106,3,241,6,67,7,82,3,35,2, +246,2,83,2,98,2,97,2,83,255,123,251,164,249,128,250,227,253,93,255,76,252,80,250,29,252,219,253,64,0,102,5, +249,8,36,8,128,5,80,2,9,254,208,249,138,248,243,251,73,0,99,0,98,254,237,254,35,1,195,2,72,3,134,2, +200,1,205,0,222,253,214,252,228,255,148,255,219,250,172,251,150,1,146,2,21,255,37,254,7,1,36,6,134,11,2,15, +192,16,170,15,122,9,47,2,101,255,168,254,123,251,237,247,37,248,95,251,210,253,239,254,193,255,177,253,53,249,136,249, +155,254,58,0,238,255,183,4,225,10,140,12,236,10,49,6,123,254,247,248,82,248,157,250,128,254,196,1,170,2,188,2, +162,1,124,254,220,252,67,253,73,252,175,252,41,1,251,3,245,2,59,3,132,4,3,3,135,0,204,254,83,252,161,250, +158,251,124,252,192,251,208,252,18,1,219,4,9,5,179,2,169,0,255,255,140,255,79,254,107,253,4,254,121,254,140,253, +237,253,88,1,110,4,161,4,144,4,124,6,5,8,36,6,247,1,107,255,140,255,178,255,191,255,59,2,249,4,17,4, +96,2,212,2,135,0,225,249,5,247,116,251,150,0,121,2,192,2,158,1,174,255,87,255,202,255,79,255,4,255,175,254, +154,253,59,254,235,255,155,254,213,252,66,255,209,1,246,255,87,253,23,253,144,253,154,254,246,0,189,2,63,2,66,0, +151,254,97,254,153,254,157,253,202,252,217,254,173,2,45,4,29,3,106,3,77,4,33,0,166,248,59,246,160,249,144,253, +87,1,141,4,132,3,39,255,220,251,177,250,199,251,231,254,140,1,200,3,255,6,183,7,166,4,15,3,148,3,206,1, +188,255,77,1,245,2,15,1,220,254,229,255,231,2,155,4,30,3,221,255,8,254,100,253,218,250,143,247,212,247,27,251, +157,254,166,3,57,9,176,9,224,5,118,3,245,0,43,252,131,250,106,253,238,254,132,254,211,255,104,1,143,0,204,253, +246,250,247,250,15,254,168,255,58,255,233,1,248,6,128,8,87,6,124,3,50,255,120,249,21,246,193,246,124,249,134,253, +159,3,26,10,200,13,45,13,184,8,189,2,131,254,20,253,221,253,166,0,135,3,194,4,147,5,179,4,114,255,117,250, +253,249,174,249,150,249,31,255,146,5,251,6,89,8,33,10,205,5,80,255,189,253,212,253,7,253,237,253,123,255,127,0, +38,2,67,2,240,255,51,255,4,1,65,2,103,1,1,255,136,253,98,255,121,2,250,3,200,4,167,4,56,1,219,251, +173,248,86,248,73,248,210,248,204,252,166,1,120,2,149,2,245,4,230,2,59,252,66,251,131,255,124,0,111,255,237,254, +91,252,126,250,196,251,90,251,81,249,122,250,220,253,143,1,171,4,57,3,248,254,81,255,24,3,51,4,144,3,14,4, +100,4,192,2,229,255,161,254,209,254,169,252,42,250,219,252,249,0,115,0,67,254,87,253,224,251,205,250,246,251,78,255, +241,4,184,9,240,9,87,8,125,6,145,1,223,252,25,253,229,253,65,251,138,248,157,248,17,251,77,254,141,0,144,2, +28,4,123,1,113,252,57,251,104,252,54,252,251,253,83,3,56,7,34,7,108,5,129,4,79,4,86,2,242,253,29,250, +222,247,167,246,107,248,85,252,165,253,124,252,107,252,140,252,203,251,162,253,114,3,22,9,14,11,206,9,31,6,168,255, +101,248,180,244,103,246,204,251,83,2,241,6,188,7,48,6,168,4,203,3,83,3,28,2,160,255,15,254,120,254,122,254, +138,253,231,253,185,255,105,1,35,2,182,0,159,252,100,248,37,247,34,249,20,253,120,2,88,7,100,7,34,2,0,253, +3,251,165,250,127,252,76,1,33,5,122,5,71,4,62,2,9,255,75,252,253,250,21,251,212,252,37,254,104,252,145,249, +217,248,89,249,167,249,48,252,97,2,85,7,219,5,180,0,112,253,15,252,243,250,58,251,139,252,39,253,214,253,111,255, +235,0,4,2,198,2,225,2,162,3,46,6,67,8,176,6,114,2,101,0,96,2,50,4,253,2,30,1,216,255,5,254, +237,252,55,254,107,0,190,1,59,2,151,2,95,2,29,0,249,252,93,251,98,249,162,246,33,249,145,0,41,4,63,3, +32,3,120,1,112,252,69,250,138,253,244,1,48,5,56,7,38,7,43,4,143,254,180,248,119,245,205,244,73,246,0,251, +93,1,185,5,74,7,98,7,11,6,141,1,202,249,199,243,196,244,252,250,108,1,192,5,149,7,228,7,219,6,82,2, +211,251,237,247,139,246,169,247,166,253,206,3,173,4,2,4,43,3,46,255,154,252,71,254,109,254,50,253,124,254,195,254, +43,253,170,253,67,254,6,254,66,1,204,5,162,6,138,5,12,4,49,1,103,255,183,0,225,2,114,2,110,254,75,251, +144,253,169,1,49,3,194,3,193,3,87,2,139,1,100,0,36,253,97,251,160,251,75,250,243,249,27,254,105,3,213,5, +242,3,52,255,99,252,167,251,92,249,122,248,20,251,109,252,71,254,122,4,81,7,229,2,56,0,71,2,42,4,238,5, +135,7,223,5,76,2,211,254,17,251,25,249,243,249,18,252,40,1,78,8,242,9,86,5,148,2,201,2,14,0,84,250, +185,245,26,242,253,237,193,235,144,237,12,241,52,244,98,249,54,1,0,7,254,7,66,7,217,7,6,9,90,8,159,4, +19,0,151,254,251,255,52,1,26,3,147,7,203,10,243,8,96,5,135,3,215,0,180,251,187,247,110,247,213,248,16,250, +136,251,54,252,49,249,117,243,156,239,142,238,73,239,58,244,247,252,237,3,203,7,87,10,24,10,232,7,168,6,20,4, +238,255,16,255,189,0,160,2,69,7,213,10,241,6,189,1,151,0,1,253,199,246,207,245,56,249,206,252,106,1,152,4, +220,2,93,255,55,252,219,247,180,244,126,245,126,247,46,249,22,253,3,2,6,3,10,1,23,1,140,1,159,254,119,252, +105,254,106,0,128,2,135,7,73,10,26,7,239,2,27,255,62,250,5,249,183,252,178,255,188,0,4,2,0,3,254,2, +15,1,74,253,15,252,3,254,67,254,63,254,210,1,44,4,56,1,225,252,220,249,234,247,68,248,56,251,212,255,176,4, +206,6,167,6,94,8,205,9,124,5,168,254,0,252,8,253,191,254,127,1,97,5,245,7,100,7,139,4,126,1,52,255, +15,254,26,255,156,2,188,6,181,8,14,7,252,3,147,3,78,5,120,4,27,1,70,0,11,2,107,1,132,254,67,254, +235,0,128,2,221,1,82,0,45,254,189,251,47,250,4,250,79,250,26,250,242,250,184,254,150,2,47,3,234,2,216,3, +227,3,121,3,239,3,239,2,20,1,142,1,88,2,212,1,211,2,214,4,53,6,38,8,206,7,175,2,81,254,150,252, +14,249,63,246,210,247,60,249,186,248,41,249,255,248,71,248,104,250,161,252,94,252,37,254,40,2,108,3,232,2,166,2, +4,0,193,252,53,254,82,2,153,3,236,2,146,3,187,4,36,4,5,1,59,252,9,249,12,250,102,253,230,0,250,4, +189,7,126,6,136,3,187,0,81,252,78,248,33,248,68,249,3,250,234,252,35,0,167,255,172,253,215,253,233,254,8,254, +209,250,227,247,153,247,130,248,217,248,218,249,121,252,226,255,156,2,46,3,20,3,194,4,235,5,182,4,41,4,133,4, +232,3,237,3,249,2,71,253,160,247,69,247,163,248,53,250,132,254,128,2,206,2,72,1,69,254,189,249,37,247,95,247, +2,248,7,249,5,251,8,253,90,255,154,2,1,5,207,4,212,3,206,4,207,5,228,2,135,253,61,250,245,249,112,251, +158,253,138,255,123,1,16,3,17,3,162,3,217,5,125,5,152,2,252,1,193,1,45,254,98,250,171,248,161,247,111,247, +116,248,166,251,218,1,187,5,253,3,235,2,15,4,61,2,41,0,145,0,217,253,251,248,89,248,91,249,25,249,39,251, +222,254,199,0,155,1,75,2,131,3,200,5,54,6,174,4,208,4,90,4,158,0,200,253,106,252,161,249,38,249,147,252, +149,254,88,255,25,2,155,3,214,1,50,255,112,251,80,247,188,246,109,249,17,253,178,1,209,4,19,4,61,3,98,4, +7,4,243,1,205,0,253,255,160,255,111,1,52,3,212,2,248,2,92,4,190,3,243,0,156,255,89,1,59,3,8,2, +121,0,235,1,13,1,119,250,124,246,17,248,145,247,39,247,228,253,173,4,66,5,50,6,192,7,144,3,102,253,129,250, +184,248,68,248,80,250,32,252,236,254,207,4,246,8,8,9,190,8,146,7,6,3,127,254,62,253,97,253,236,253,182,0, +122,4,37,5,53,3,215,1,73,255,115,250,124,248,143,250,95,252,79,254,195,0,14,0,170,254,142,0,22,1,205,254, +84,255,155,1,103,1,219,0,172,1,143,2,144,3,114,4,155,5,99,7,36,6,188,1,211,255,234,255,203,254,38,255, +76,0,179,254,181,253,19,254,65,251,109,248,140,249,254,249,221,248,208,250,58,255,185,2,189,3,89,3,176,5,155,8, +190,4,14,255,207,0,135,4,90,3,121,0,63,253,123,250,154,252,59,1,48,3,77,3,124,1,37,255,177,1,159,4, +249,0,94,254,43,1,178,0,208,253,250,255,106,2,98,1,194,2,81,5,32,3,44,255,136,253,46,252,9,250,45,249, +167,251,50,1,193,5,120,6,129,5,169,3,58,255,48,251,31,252,153,0,174,4,118,6,202,4,145,0,141,252,61,249, +129,247,254,250,250,1,72,5,169,4,237,4,198,4,56,2,199,0,228,0,85,255,23,253,100,251,41,249,25,249,14,253, +157,0,51,2,141,4,101,5,239,1,220,253,103,251,213,248,214,248,179,254,12,5,57,5,17,1,202,252,62,249,197,248, +25,253,103,1,157,2,167,4,235,6,41,4,55,255,183,253,246,253,76,254,239,255,207,0,26,0,159,0,173,1,71,1, +90,0,176,254,55,253,140,255,241,2,22,1,24,253,71,254,15,3,78,4,86,0,106,252,60,252,251,252,128,252,130,253, +145,0,166,2,200,2,182,1,60,0,30,255,29,254,133,254,243,1,63,4,90,2,186,0,247,255,113,252,123,250,229,253, +142,1,147,3,141,5,243,4,71,3,105,4,224,3,50,255,218,251,130,250,62,249,209,250,35,254,196,255,176,1,35,3, +141,0,70,254,63,0,109,1,92,255,235,253,26,254,38,254,246,253,27,254,13,255,190,0,60,2,66,3,7,4,30,4, +77,3,243,1,157,0,132,255,232,253,46,252,151,252,95,255,244,1,75,2,112,0,19,255,95,0,64,1,243,254,208,252, +13,253,218,253,130,255,44,2,134,3,178,3,247,2,162,255,65,252,89,252,183,253,237,254,102,1,94,3,154,3,188,3, +113,2,129,254,89,251,254,250,232,251,34,253,192,254,183,1,91,6,73,9,161,7,120,3,170,255,91,253,63,253,141,254, +174,255,117,0,20,2,158,5,158,7,97,2,52,250,240,248,29,252,49,252,0,252,113,254,143,255,115,255,81,0,255,255, +177,254,175,254,44,255,136,0,98,2,19,1,168,255,212,3,41,7,185,2,127,253,53,253,71,253,153,252,212,254,52,2, +198,3,60,5,124,6,83,4,247,255,85,253,142,251,85,248,30,246,95,247,71,250,158,252,248,252,171,250,54,249,12,252, +145,255,223,255,225,255,233,1,60,3,149,2,176,1,60,1,17,1,102,1,161,1,44,1,164,0,40,0,1,255,5,254, +158,254,174,255,204,255,250,255,137,0,128,0,253,0,197,2,155,3,134,2,213,0,199,254,139,252,83,251,159,251,27,253, +62,254,196,253,2,254,74,0,34,1,200,255,13,255,141,254,187,254,51,2,81,5,153,3,84,0,244,253,28,251,212,249, +5,251,251,251,238,253,73,2,247,4,187,3,223,0,123,254,213,253,56,254,206,253,19,254,19,0,83,1,95,1,251,0, +147,255,243,254,59,255,143,252,41,249,107,250,87,253,63,254,111,255,209,0,203,0,55,1,86,2,81,2,225,0,11,255, +244,255,230,3,55,4,21,0,101,255,20,2,61,2,210,0,171,255,181,254,93,255,210,253,60,247,44,244,41,248,158,251, +104,254,250,2,130,3,200,0,202,0,27,255,177,249,182,248,158,252,90,255,147,1,202,3,179,2,248,254,96,251,58,249, +180,249,56,252,41,255,87,1,248,0,203,255,149,1,4,3,84,0,194,253,176,252,74,250,121,250,40,255,109,1,62,0, +223,0,227,1,109,0,190,253,34,249,30,244,223,244,147,250,50,255,50,3,188,7,206,8,11,6,126,2,93,253,186,247, +35,247,178,251,79,0,159,3,195,5,154,4,165,0,172,252,61,249,131,247,118,250,248,0,147,5,34,5,131,1,3,254, +191,250,65,246,30,243,29,245,97,250,241,254,233,1,241,2,131,2,97,3,78,5,35,5,144,3,62,3,216,3,111,4, +197,4,54,3,222,254,135,250,213,249,179,251,68,251,121,248,217,248,113,253,2,2,217,4,244,5,151,4,23,2,68,255, +221,250,18,247,82,247,30,250,215,252,114,255,6,2,40,4,195,4,92,3,110,2,183,2,94,1,116,255,1,0,176,0, +68,255,42,253,234,250,152,249,27,250,118,250,95,252,200,1,167,3,5,0,28,0,67,3,203,1,120,0,9,3,197,1, +128,252,118,250,128,250,226,249,68,251,135,255,211,4,202,7,50,5,206,0,142,255,144,254,175,252,217,253,156,0,67,2, +113,4,17,5,111,1,20,254,24,254,203,254,222,254,141,254,112,254,125,0,71,3,104,3,123,2,145,2,7,2,239,0, +38,0,100,254,228,252,26,254,251,255,252,255,36,255,175,254,236,254,216,255,36,0,149,255,199,0,140,4,97,7,157,6, +206,3,198,0,168,253,114,252,156,255,156,4,203,6,187,5,135,3,84,1,63,255,82,252,234,248,122,248,85,252,24,1, +219,3,22,4,247,1,2,255,16,253,76,252,194,251,115,250,73,249,228,250,194,254,254,1,77,4,147,4,63,0,198,250, +26,249,124,249,66,251,27,1,6,7,135,7,165,5,151,4,16,2,88,253,59,248,181,244,172,245,73,250,130,253,44,255, +167,2,15,6,13,6,202,3,224,0,95,254,66,255,111,3,223,5,1,5,71,4,12,4,200,1,109,254,112,252,9,252, +21,253,209,254,63,255,9,255,5,0,90,0,117,254,130,252,221,251,185,252,191,255,59,2,148,0,151,253,89,254,88,2, +51,5,111,4,148,2,115,3,200,4,115,2,236,255,224,1,145,5,150,7,61,8,22,7,28,4,246,0,150,253,5,250, +199,247,242,245,176,243,99,243,152,244,59,243,89,240,142,241,121,247,233,252,65,255,48,1,240,3,106,4,50,2,65,1, +48,2,32,2,208,1,61,3,41,4,158,2,234,0,243,0,26,2,11,4,162,5,232,4,13,4,234,5,254,5,72,0, +32,250,143,246,63,241,241,236,158,240,78,247,152,249,103,251,133,255,170,0,32,254,99,253,56,0,179,3,15,5,213,4, +160,5,152,6,241,4,71,2,9,1,166,255,253,252,197,250,25,251,145,254,126,2,181,4,78,7,47,9,0,6,69,1, +84,255,82,251,219,245,31,248,207,255,86,3,230,3,126,4,121,1,34,252,193,249,146,249,163,249,38,251,219,253,171,0, +247,2,233,2,208,0,242,255,188,0,3,1,188,0,41,1,240,2,72,6,85,9,143,8,174,3,181,254,10,253,234,254, +218,2,235,5,151,5,90,4,82,6,243,8,7,7,143,1,43,252,47,248,126,247,171,250,60,254,61,0,105,1,168,0, +211,253,69,251,53,249,246,247,209,250,231,1,20,9,251,12,63,11,64,5,240,1,150,2,22,0,213,250,171,250,114,254, +8,0,133,0,12,1,11,255,176,253,16,1,2,4,40,2,64,0,96,1,40,2,126,0,89,253,246,250,135,252,212,0, +214,1,31,255,154,254,204,1,2,5,235,5,34,4,9,1,250,255,106,1,250,1,179,0,120,255,164,254,10,254,122,254, +221,254,243,252,145,249,148,247,120,247,200,247,196,248,29,252,38,1,101,4,124,4,11,4,13,4,252,1,37,255,78,0, +110,3,196,2,227,0,142,2,51,4,187,2,134,1,85,1,161,0,100,1,40,3,11,3,100,3,56,5,152,3,30,255, +94,253,209,252,36,250,106,248,108,249,194,250,119,252,206,255,114,3,52,5,181,3,29,0,216,253,56,253,18,252,222,251, +47,254,233,255,157,255,78,0,150,2,191,3,35,3,2,2,225,0,113,0,70,2,148,6,185,10,198,11,177,9,43,6, +246,1,228,253,141,251,239,250,140,250,185,250,226,252,142,255,149,255,49,253,77,251,148,250,193,249,37,249,163,249,218,250, +250,252,159,0,232,3,198,3,113,0,162,253,145,253,31,254,175,253,36,255,7,4,62,8,253,8,98,8,151,7,255,5, +151,4,53,3,31,0,240,252,8,252,179,251,170,250,9,251,18,253,108,254,193,254,44,255,150,255,136,255,3,255,49,254, +97,253,115,252,79,251,44,251,235,252,191,255,24,3,60,6,70,6,252,1,70,253,195,251,61,252,155,252,65,253,118,255, +162,3,23,8,92,9,112,6,78,2,65,255,161,252,181,249,30,247,99,246,2,249,19,254,95,2,222,3,98,2,81,254, +206,249,139,247,63,247,122,247,205,248,63,251,95,253,177,255,37,3,93,5,127,4,168,2,76,1,92,255,1,254,115,255, +130,1,35,1,162,0,167,2,214,3,149,0,219,251,101,250,74,252,38,255,183,1,62,3,143,3,30,4,95,5,178,4, +98,0,85,251,107,249,90,250,217,250,161,249,247,248,148,250,88,252,42,252,11,252,39,254,42,1,233,3,20,6,246,4, +195,255,196,251,39,252,8,253,57,252,225,252,246,255,231,2,151,4,217,4,52,3,107,1,182,1,156,2,130,1,22,255, +179,253,242,253,170,254,229,254,10,255,15,0,201,1,213,2,45,2,49,0,106,254,16,254,138,254,151,254,69,254,233,253, +248,252,193,251,97,251,116,251,96,251,134,252,148,255,134,2,223,3,109,4,200,4,73,4,205,2,161,1,16,2,27,3, +94,2,24,0,179,254,26,254,64,253,125,254,33,3,158,6,252,4,162,0,45,253,137,251,41,252,76,254,45,255,114,254, +74,254,54,254,234,252,56,252,103,252,236,250,214,249,128,253,109,2,130,2,17,0,83,255,156,253,37,249,112,246,248,247, +100,251,142,255,113,4,95,8,68,10,77,10,117,8,159,5,135,2,21,254,130,249,161,248,183,250,102,252,185,255,127,6, +212,10,163,8,113,4,29,1,201,251,120,245,173,243,248,246,220,250,110,253,5,0,76,2,231,1,22,255,109,253,135,254, +70,0,1,1,78,0,156,253,241,250,150,251,254,253,29,255,231,0,169,4,21,7,69,7,162,6,112,3,101,254,41,252, +56,251,189,247,17,247,184,253,189,4,174,6,158,6,40,5,203,0,41,253,250,251,221,249,107,247,177,247,1,249,216,249, +180,251,240,253,246,255,114,3,65,6,237,4,115,2,71,2,65,2,192,1,233,2,211,3,187,1,116,254,98,252,225,251, +147,252,155,252,135,251,53,253,204,2,113,7,233,8,78,9,8,8,134,3,35,254,149,250,242,248,136,248,151,248,170,249, +94,253,132,1,235,1,247,255,25,255,3,254,86,252,150,253,209,0,65,1,139,255,101,255,102,0,115,0,187,255,123,255, +56,0,99,0,61,254,56,252,156,253,86,0,18,2,140,4,170,6,245,4,110,2,78,3,250,3,40,1,170,254,148,254, +29,254,234,252,146,252,95,252,255,251,71,252,41,252,20,251,16,251,99,252,181,252,35,252,0,253,52,255,15,1,229,2, +136,5,87,7,96,6,65,3,98,255,163,251,253,249,123,251,165,253,147,255,160,4,32,12,91,15,119,12,14,8,146,3, +21,254,74,250,178,249,218,249,198,250,215,253,40,0,188,255,104,255,191,255,39,254,161,251,250,250,195,251,254,252,154,254, +85,255,11,255,209,255,103,1,63,1,243,255,202,0,57,4,237,6,43,6,28,3,182,0,180,255,17,255,161,254,230,254, +136,0,124,3,155,4,241,0,64,252,231,251,203,253,235,253,17,254,188,255,188,0,109,1,2,3,53,2,152,253,101,249, +110,247,193,245,75,245,202,247,150,251,143,255,252,3,143,6,222,4,122,0,100,252,73,250,141,250,74,252,15,255,168,3, +218,8,183,11,243,11,192,10,250,7,70,4,113,1,210,255,65,255,223,255,133,0,88,0,186,255,143,253,73,249,66,246, +157,246,18,248,128,249,184,251,1,253,43,252,35,252,46,254,43,255,253,253,171,253,130,255,19,1,13,1,174,1,202,4, +251,8,102,12,46,14,100,12,64,6,10,0,8,254,40,254,245,252,183,251,229,252,74,0,3,4,4,5,165,1,161,253, +85,253,138,254,1,253,211,249,166,248,223,250,77,255,41,2,29,0,122,251,69,249,243,249,198,250,15,251,201,251,71,253, +39,255,167,0,70,1,76,1,19,1,108,0,200,254,42,252,169,250,150,252,72,0,90,2,75,3,218,4,55,5,231,2, +40,0,130,254,253,252,149,251,0,251,38,251,136,252,237,254,162,255,43,254,201,253,157,254,146,253,21,252,113,253,97,255, +0,255,108,254,241,254,194,254,52,254,117,254,33,254,211,252,82,252,188,252,0,253,40,253,97,253,60,254,63,1,113,6, +76,11,184,12,127,9,33,4,113,0,173,254,64,253,21,253,130,254,47,255,229,254,24,255,253,253,178,250,161,249,238,252, +243,255,84,0,40,2,221,6,154,9,85,7,109,2,219,253,201,250,118,249,121,249,157,250,170,252,3,254,25,254,246,254, +152,0,195,0,134,0,195,1,69,2,45,1,242,1,199,4,110,5,8,3,64,0,159,253,109,250,27,248,152,248,115,251, +223,254,250,1,78,4,203,4,81,3,92,1,183,255,12,254,208,252,144,252,109,252,208,251,179,251,80,252,177,251,215,248, +33,246,184,245,227,246,130,249,199,254,11,5,173,9,43,13,184,15,182,15,136,13,140,9,184,2,80,252,119,250,249,249, +217,247,11,248,243,250,137,251,122,250,240,250,144,250,159,248,202,248,232,250,200,252,84,255,203,1,208,1,125,0,150,254, +138,251,121,250,126,252,164,252,230,250,168,252,140,0,1,3,239,6,147,12,114,14,51,12,35,9,39,5,72,1,120,0, +199,1,216,2,176,2,231,255,184,251,255,249,154,250,244,250,227,250,174,250,99,251,18,255,42,3,199,3,52,3,38,3, +162,0,19,253,211,252,88,254,78,255,76,1,140,3,25,3,127,0,16,254,191,252,153,252,112,253,221,255,189,3,170,5, +208,3,11,2,249,2,36,3,175,255,178,251,135,251,6,254,180,254,184,253,149,254,126,0,30,1,151,1,66,1,212,253, +146,250,65,251,60,253,104,254,30,0,18,1,231,255,22,255,109,255,94,255,231,255,61,1,45,0,31,253,10,253,254,255, +163,0,111,254,7,254,97,255,110,254,23,252,21,252,193,253,43,255,222,0,181,2,127,3,240,2,145,0,61,253,221,251, +54,252,168,251,136,251,238,253,143,0,10,2,38,4,226,5,188,4,127,2,6,2,12,2,49,0,69,253,163,251,202,251, +97,252,180,252,243,252,186,252,28,252,122,252,132,253,10,253,211,251,150,252,77,254,241,254,0,0,104,1,33,0,229,253, +221,254,224,0,247,0,4,2,246,4,64,6,222,5,212,5,137,4,10,1,165,253,25,252,32,253,240,255,17,1,100,255, +21,254,33,254,188,253,20,253,129,252,64,251,237,250,228,252,160,254,18,255,172,0,141,2,145,1,214,255,135,0,185,0, +51,254,233,252,236,254,15,1,157,1,60,1,98,0,125,0,151,1,80,1,129,0,65,1,103,1,139,0,168,1,105,2, +41,255,137,251,75,251,205,252,14,254,160,253,238,251,185,252,66,255,224,254,145,253,232,253,242,251,26,249,114,251,255,254, +146,253,43,251,56,252,84,255,13,3,149,5,35,5,85,3,139,1,233,255,207,255,39,0,72,255,71,0,159,3,154,4, +232,3,86,5,107,6,67,4,177,0,84,253,101,251,210,251,84,252,10,252,167,253,184,0,21,2,60,1,245,254,205,252, +240,252,221,253,246,252,6,252,167,252,109,253,149,254,166,0,206,1,192,1,94,1,223,255,3,254,190,253,164,254,14,1, +51,6,165,10,157,10,34,8,58,5,226,0,164,252,31,251,212,251,38,254,79,1,247,1,91,255,5,253,48,252,133,251, +26,251,249,250,116,251,11,254,3,1,188,1,108,2,134,3,7,1,242,252,109,252,219,252,163,251,92,252,170,254,128,255, +125,1,92,5,147,6,22,5,128,3,145,0,163,252,255,250,243,251,245,253,208,255,118,0,29,1,46,2,66,0,220,251, +130,250,86,252,115,253,82,254,94,0,247,1,38,2,109,1,174,0,1,1,36,1,47,255,98,253,166,253,108,252,243,247, +109,245,209,248,210,254,15,3,134,5,210,6,240,5,156,3,65,1,66,254,170,251,236,251,57,253,174,253,159,255,192,1, +249,255,198,253,184,255,129,1,165,255,226,253,6,254,47,254,95,254,214,254,182,254,155,254,136,255,13,1,27,2,165,1, +153,255,125,253,198,252,172,253,130,255,164,1,52,4,118,6,80,6,191,3,113,0,155,252,138,249,221,249,63,252,201,253, +85,255,220,1,239,3,122,4,160,2,8,255,91,253,62,254,18,254,102,252,137,251,232,251,197,253,122,0,111,1,84,1, +101,2,70,2,99,255,219,252,203,251,48,251,9,252,202,253,21,254,128,253,111,253,215,253,252,254,85,255,254,252,53,252, +114,1,153,7,20,8,15,5,108,2,112,255,173,252,139,252,32,253,185,251,254,250,95,253,84,0,50,2,229,3,36,4, +246,1,94,0,138,0,100,255,91,252,156,250,58,251,121,252,96,253,16,254,109,254,80,254,62,254,188,254,11,255,202,253, +92,251,136,250,48,253,10,1,210,2,108,3,255,4,88,6,72,6,114,5,41,3,239,255,38,255,219,0,98,2,247,3, +45,5,247,3,23,2,217,0,19,254,223,251,91,253,250,254,59,255,149,1,212,3,115,2,254,0,10,1,103,255,9,253, +89,252,81,252,192,252,225,253,219,254,238,0,3,4,225,4,14,4,138,3,20,1,32,253,60,252,207,253,213,254,82,0, +237,1,59,1,231,255,238,255,174,255,68,255,93,0,6,1,149,255,8,255,84,1,139,3,44,3,135,1,59,0,27,255, +53,254,94,254,71,255,93,255,100,254,110,254,39,0,149,0,170,254,106,254,136,1,201,3,116,2,118,255,243,252,243,251, +150,252,129,253,234,253,27,254,24,254,206,254,195,0,16,2,140,2,18,4,67,5,173,4,209,3,206,1,199,253,210,251, +57,253,110,254,84,255,175,0,138,0,44,0,249,0,142,255,68,252,69,251,118,251,224,251,126,255,235,3,78,4,5,3, +107,3,200,3,145,2,59,0,30,254,226,253,21,254,137,252,104,251,4,252,77,252,133,253,108,1,50,4,185,3,3,3, +74,2,145,255,8,253,224,253,71,1,72,4,176,4,85,2,54,255,59,253,68,252,32,251,14,250,30,251,178,254,240,1, +21,3,43,3,23,2,53,255,41,253,35,254,104,255,171,254,100,254,230,255,50,0,92,254,196,253,207,255,246,1,19,2, +96,0,229,254,128,255,215,0,146,0,29,0,94,1,119,2,83,2,224,2,64,4,118,4,33,3,40,1,61,255,246,253, +114,253,98,253,112,253,209,253,142,255,123,2,118,4,231,4,120,4,28,2,147,254,111,253,3,254,107,252,177,249,131,249, +241,251,230,254,220,0,143,1,113,2,19,4,246,4,156,4,195,3,158,2,144,1,239,0,57,0,219,254,248,251,31,248, +198,246,242,248,143,251,178,253,214,255,182,0,222,1,16,5,241,5,188,2,224,0,5,1,28,255,26,253,209,253,138,254, +168,254,250,0,213,4,95,7,150,7,123,5,18,2,122,255,165,254,184,254,159,254,91,254,80,254,14,254,252,253,115,255, +31,1,189,0,98,255,45,254,121,252,137,251,78,252,60,253,227,254,202,1,28,2,184,254,61,252,141,252,170,253,25,255, +49,1,155,3,211,5,204,6,137,6,224,5,4,4,40,1,30,255,249,252,75,250,79,250,190,252,38,254,96,255,32,1, +208,0,217,255,220,0,97,1,132,0,159,0,64,0,229,253,79,252,48,252,18,252,32,253,130,255,189,0,64,0,25,255, +59,254,255,254,229,0,14,2,247,2,189,3,241,1,22,254,202,251,206,251,150,252,78,253,192,253,109,255,77,3,168,5, +57,4,125,3,49,5,120,4,160,0,219,253,144,252,224,251,171,253,199,1,152,5,69,7,103,5,134,1,95,255,141,253, +199,249,124,248,55,251,137,252,216,252,107,0,46,4,220,4,126,4,152,2,5,255,94,254,147,0,204,0,145,255,231,255, +75,1,90,2,249,1,24,0,10,255,117,255,62,0,65,2,155,4,170,4,252,3,136,3,92,0,217,251,239,249,208,249, +248,250,175,253,17,254,230,251,175,252,180,255,88,0,189,255,155,255,3,255,43,255,129,0,210,0,211,255,23,254,29,252, +58,252,43,254,150,254,72,254,217,255,230,1,87,3,226,4,120,5,123,4,253,2,20,1,58,255,146,254,48,254,95,253, +117,253,138,254,87,255,177,255,28,0,171,0,90,0,53,254,43,252,135,252,184,253,8,254,188,254,87,0,174,1,239,1, +120,0,254,253,114,252,54,252,180,253,118,1,55,4,200,3,23,4,249,5,156,4,215,0,97,255,83,255,214,255,164,3, +25,8,137,7,69,3,79,255,237,251,218,249,154,250,50,252,212,252,41,254,199,0,205,2,106,3,122,2,192,255,252,252, +19,252,222,251,181,250,63,249,60,249,13,252,193,0,153,3,251,2,74,1,227,255,93,254,39,253,234,251,208,250,87,253, +48,4,254,9,192,11,232,10,30,7,111,0,187,250,218,247,246,245,166,245,29,249,102,254,245,1,14,4,164,5,182,4, +84,1,30,255,11,254,100,251,244,248,215,248,44,249,74,250,209,253,240,0,27,2,91,3,168,3,46,2,176,1,80,1, +246,254,39,254,96,0,241,1,124,2,90,3,37,3,231,1,60,0,98,253,184,251,83,253,217,254,141,254,193,254,144,255, +177,255,176,254,108,252,174,251,130,254,6,1,55,1,10,2,163,2,30,1,153,0,164,1,226,0,209,254,146,253,137,253, +130,255,254,1,28,2,183,1,31,3,227,3,91,2,248,255,91,254,53,254,107,253,58,250,10,249,34,253,66,2,140,5, +143,7,30,6,168,1,216,254,118,253,84,251,67,250,170,249,13,248,160,249,24,255,238,1,118,1,198,2,238,4,99,4, +140,2,78,1,31,0,0,255,53,254,125,253,68,253,132,253,107,253,109,253,74,254,90,255,207,0,162,3,253,5,106,5, +64,3,167,1,93,0,124,255,122,255,210,254,198,252,32,251,76,251,32,253,251,254,0,255,252,254,152,1,232,3,234,2, +185,1,46,2,232,1,218,0,19,0,190,254,210,253,58,254,230,253,15,253,205,253,175,254,188,254,57,0,238,2,125,4, +189,4,8,4,129,2,135,1,94,1,142,0,218,254,85,253,92,252,112,251,233,250,109,252,105,255,143,0,21,0,13,1, +53,2,18,1,180,255,253,255,2,1,75,2,232,2,31,2,80,2,8,4,229,3,201,1,244,0,175,1,82,2,112,2, +52,2,253,1,161,1,116,0,228,254,101,253,2,252,90,252,176,254,238,255,22,255,229,253,191,252,122,252,69,254,23,0, +199,0,117,2,142,4,196,4,36,4,158,3,34,2,153,0,96,0,85,0,184,255,214,255,50,1,200,1,81,0,166,255, +85,1,253,0,78,253,246,251,246,253,150,254,245,253,57,254,26,254,199,253,55,254,44,254,143,254,232,255,249,254,46,253, +23,255,52,1,122,255,192,254,155,1,163,3,185,3,249,3,247,3,68,3,75,2,186,0,242,255,76,1,14,2,245,255, +141,253,27,253,215,252,50,251,168,249,176,249,119,251,74,255,159,3,222,4,127,3,158,3,1,5,177,4,122,3,115,2, +78,0,66,254,251,254,233,1,254,4,173,6,25,6,143,4,128,3,98,2,138,1,67,1,72,255,96,251,85,248,200,246, +37,247,55,251,37,0,78,1,189,0,220,1,235,2,204,2,35,3,81,3,123,2,101,2,164,2,198,0,168,254,158,255, +155,1,229,1,194,2,236,4,132,4,130,1,78,0,255,0,125,0,198,254,48,253,80,252,173,252,3,253,20,252,87,252, +75,255,249,1,169,2,237,2,130,3,138,3,237,1,3,255,89,253,66,253,178,251,86,249,247,249,12,253,113,0,50,4, +80,6,221,4,5,3,62,3,109,3,127,2,150,1,61,1,186,1,72,2,148,1,171,0,99,0,65,255,76,254,6,0, +39,2,159,1,173,0,229,1,98,3,131,2,174,255,111,253,24,253,24,253,60,252,205,251,99,252,252,252,188,253,253,254, +25,0,75,1,182,2,189,2,37,1,175,255,75,254,134,252,153,252,99,255,2,2,198,2,146,2,126,1,222,255,102,255, +232,255,5,0,160,0,250,1,108,1,85,254,154,251,41,251,140,252,66,254,161,254,199,253,88,253,234,253,90,255,54,1, +33,2,66,2,25,3,167,3,52,3,168,3,0,4,128,2,242,2,7,6,124,5,30,2,177,2,111,4,190,1,158,254, +106,254,173,253,70,252,253,252,48,254,250,253,202,253,174,254,100,0,205,1,41,1,85,255,0,255,4,0,175,0,218,0, +186,0,200,0,247,1,113,3,85,3,227,1,198,0,200,0,142,1,148,2,157,3,137,3,55,1,6,255,36,0,112,2, +48,2,100,0,103,255,61,255,69,255,54,254,127,251,1,250,148,251,155,253,204,254,117,0,115,1,123,0,2,0,133,1, +92,2,115,0,18,253,53,250,212,248,181,249,133,252,222,254,241,255,22,2,221,4,250,4,204,3,48,4,103,3,153,0, +211,0,237,3,114,4,234,2,113,2,45,1,249,253,165,250,216,246,159,242,92,241,132,244,212,249,241,254,78,2,162,3, +137,4,162,5,188,5,4,5,54,4,115,1,152,251,171,246,203,246,194,249,211,251,34,254,99,2,135,6,250,8,44,10, +71,9,204,5,82,2,56,1,161,1,140,1,180,0,29,0,156,255,49,254,128,252,111,251,196,250,164,251,200,254,32,1, +240,0,132,0,88,0,210,255,229,0,238,2,164,2,10,1,37,0,127,254,140,252,115,252,25,253,165,253,30,255,169,0, +219,1,89,3,239,2,20,0,68,255,163,1,138,3,20,4,249,3,240,1,49,254,17,251,4,250,124,251,85,254,156,0, +181,2,15,5,89,5,42,3,25,1,57,255,170,252,228,251,20,254,1,0,204,255,21,255,224,254,54,255,109,0,118,1, +247,0,219,255,5,255,128,254,238,255,37,3,62,4,120,3,242,4,125,6,17,4,85,1,28,1,159,255,189,252,121,252, +240,253,204,254,19,0,161,1,2,2,113,1,64,0,104,255,242,0,215,3,55,5,0,5,71,4,236,2,161,0,178,253, +151,252,157,255,30,3,76,2,213,255,249,255,1,1,148,0,121,255,62,254,245,252,98,252,225,252,189,253,64,253,117,251, +185,251,212,254,224,0,170,0,213,255,192,253,119,251,169,252,60,0,175,2,201,4,24,7,183,6,244,2,207,254,239,252, +118,253,198,254,69,0,75,2,3,3,226,0,49,254,41,253,103,253,12,254,134,253,166,251,193,251,9,254,250,253,14,252, +166,252,163,254,96,255,115,0,14,2,71,2,179,2,28,5,190,6,74,5,58,3,178,3,208,5,106,6,163,4,112,2, +163,1,96,2,42,3,27,2,106,255,44,253,232,251,40,250,157,247,143,246,71,249,99,254,241,1,56,2,17,0,212,252, +221,250,31,251,22,251,226,250,15,254,202,2,135,4,82,5,160,7,152,7,255,3,133,1,86,1,12,0,196,253,62,254, +219,1,178,4,205,4,240,3,176,2,42,0,62,253,209,250,96,249,113,250,190,252,232,253,253,0,160,6,194,7,127,4, +13,5,197,7,226,5,84,2,245,0,16,0,180,0,223,2,109,1,191,253,92,254,129,1,46,2,213,1,110,2,125,2, +187,1,75,1,61,1,184,0,52,255,245,253,30,254,191,253,174,251,187,250,155,252,197,255,7,3,33,5,117,4,130,2, +6,2,4,2,113,0,109,254,132,253,151,253,255,254,127,1,130,2,42,1,10,0,231,255,89,255,75,255,76,0,45,0, +75,255,250,255,206,0,0,0,15,255,106,254,153,253,177,253,23,254,137,253,131,253,33,254,252,253,206,254,252,0,110,1, +145,0,5,0,134,253,56,250,161,250,177,252,204,252,47,254,89,2,128,4,72,3,121,2,89,3,48,4,111,4,86,4, +69,3,86,1,84,0,87,0,73,255,229,253,98,254,152,254,114,252,113,251,216,253,102,0,115,0,122,254,247,251,46,251, +83,253,181,0,222,2,2,3,222,2,100,4,129,5,139,3,147,0,27,254,9,251,67,250,233,253,234,0,120,1,198,3, +65,6,22,5,93,3,232,2,7,1,1,255,61,254,183,251,185,248,174,249,33,252,194,252,25,255,123,4,55,7,162,4, +94,1,146,1,207,3,69,4,189,1,204,254,79,254,149,255,7,0,179,255,68,0,53,1,121,1,170,1,135,1,74,0, +129,255,91,0,52,1,28,1,1,1,73,1,199,1,40,2,207,1,250,0,92,0,223,255,20,255,78,253,51,251,47,252, +243,0,95,4,198,3,107,2,77,2,26,2,142,0,139,253,166,251,94,253,116,255,251,254,141,255,100,2,36,3,188,1, +208,1,248,2,75,3,246,2,124,2,104,2,94,2,12,1,113,255,232,254,243,253,129,252,103,252,181,252,79,252,122,252, +126,253,91,255,92,2,226,3,182,2,103,2,128,3,145,2,35,0,205,254,148,254,164,255,188,1,180,2,147,2,76,2, +68,0,210,252,27,251,96,251,150,252,88,255,5,2,244,1,252,0,1,2,160,3,130,3,254,1,119,0,226,255,79,0, +156,0,83,0,79,0,45,0,10,255,53,254,178,253,3,251,177,248,15,252,142,1,138,2,234,1,106,3,219,3,249,3, +94,7,81,9,239,5,194,2,68,2,245,0,178,255,51,0,252,255,57,255,6,0,103,0,5,255,45,254,236,254,207,0, +106,3,155,4,13,3,17,1,141,0,255,255,41,254,219,252,157,253,121,254,221,253,49,254,103,0,250,0,193,254,247,252, +57,253,152,254,173,0,27,3,183,4,25,4,118,1,194,255,40,0,103,255,196,252,164,251,24,252,106,252,19,254,195,0, +85,1,43,0,171,255,82,0,232,1,166,2,78,0,26,253,183,252,240,254,156,1,5,2,79,255,0,254,17,0,205,255, +147,252,129,252,36,254,181,253,73,0,168,6,180,7,185,2,54,0,170,0,231,254,120,251,36,249,248,248,90,252,135,1, +97,3,51,2,196,2,160,4,195,4,11,5,186,6,250,5,117,1,222,252,159,250,2,251,161,253,205,255,189,255,175,255, +239,0,137,1,223,0,159,0,162,1,176,2,39,2,82,1,65,2,106,2,195,255,108,254,197,255,172,255,231,254,43,0, +211,255,246,252,232,252,76,255,11,0,220,0,4,3,55,3,99,1,110,0,35,0,230,254,204,252,109,251,181,252,219,255, +148,1,253,0,59,0,147,0,153,0,57,254,218,250,78,250,39,252,156,253,243,255,169,3,26,5,52,4,116,3,60,1, +140,253,49,252,66,252,72,251,73,252,40,0,54,2,45,1,149,255,229,253,127,252,251,252,161,254,131,255,130,255,154,255, +154,0,121,2,6,4,109,4,226,3,53,2,99,255,84,253,176,253,163,254,212,253,243,252,65,254,14,0,255,0,164,2, +52,4,228,2,189,255,192,253,162,253,3,255,123,0,171,255,96,253,20,253,15,255,129,0,146,0,108,1,40,4,230,5, +25,4,8,1,18,255,18,253,133,251,91,252,239,253,133,254,34,255,132,255,122,255,106,0,95,0,154,253,138,252,72,255, +10,1,185,0,157,1,29,2,91,255,3,252,140,250,70,249,9,248,80,249,150,252,209,254,21,0,4,2,225,2,99,1, +155,0,245,1,4,3,62,3,75,3,246,1,94,255,192,252,71,250,252,249,26,253,132,255,61,255,194,255,48,1,22,1, +27,1,57,2,160,2,17,3,193,3,224,1,187,253,222,249,214,246,106,246,228,249,148,253,53,255,25,1,52,3,207,3, +80,4,251,4,162,3,29,1,226,255,9,0,42,1,170,2,170,2,76,1,198,0,143,0,3,255,223,253,104,254,25,254, +114,252,164,252,188,254,210,255,48,0,152,1,43,3,202,3,95,3,148,1,84,255,102,254,201,254,236,255,145,1,98,2, +215,1,29,1,137,0,32,0,20,0,254,254,243,252,174,252,171,253,129,253,75,253,70,253,120,251,243,249,206,250,244,250, +226,249,14,251,174,253,72,255,240,0,177,2,217,2,60,2,99,2,183,3,35,6,75,7,192,4,206,0,11,255,101,255, +44,0,106,0,180,255,65,254,159,252,37,252,136,254,77,2,117,3,79,1,200,254,5,254,220,254,73,255,211,253,61,252, +63,252,136,252,168,252,189,253,202,254,28,255,118,0,237,2,192,4,207,5,32,6,87,5,1,5,138,5,252,3,21,0, +236,253,14,254,78,252,147,248,205,247,46,251,18,255,3,2,213,4,78,6,240,4,202,1,118,254,195,251,49,250,211,249, +15,251,12,254,164,0,138,0,100,254,229,251,179,249,253,247,237,246,148,247,250,250,242,254,238,0,89,2,62,4,245,4, +23,5,199,5,7,5,31,3,171,2,189,1,147,254,86,253,180,255,122,1,66,1,253,0,197,0,16,1,220,2,186,3, +40,2,174,1,80,3,225,2,162,0,96,1,103,3,23,1,92,252,97,250,147,250,150,251,91,254,212,0,15,1,63,1, +14,1,36,254,5,252,42,254,11,1,73,2,224,3,240,4,59,3,82,0,125,254,107,254,51,0,143,2,14,4,209,4, +126,4,53,2,192,254,60,252,35,253,188,1,154,5,128,5,13,4,105,2,88,254,73,250,250,249,235,250,112,251,26,254, +228,0,188,255,67,253,132,252,149,251,197,250,13,252,255,252,49,252,74,252,227,252,103,252,196,253,127,1,171,3,126,5, +218,9,123,12,234,10,247,9,11,10,251,6,140,2,197,255,103,253,150,252,163,254,58,255,112,253,17,254,209,255,34,254, +17,252,60,253,103,254,165,253,193,253,134,255,226,0,207,0,236,255,252,254,193,253,27,252,151,251,240,252,67,254,102,254, +40,254,40,254,191,254,116,255,183,254,156,253,30,255,185,1,26,2,90,2,227,4,90,6,22,5,254,4,66,6,246,3, +136,254,71,251,116,250,39,249,182,248,240,250,41,254,204,1,25,6,30,8,84,6,151,3,45,1,145,254,225,253,134,255, +181,255,122,253,173,251,18,251,84,251,31,253,42,255,200,255,212,0,228,3,185,6,101,7,198,6,180,5,10,4,216,1, +65,255,196,252,136,251,145,251,32,251,117,249,5,248,78,248,90,250,72,253,71,0,118,3,234,6,187,8,83,7,133,4, +77,2,235,255,152,253,89,253,167,254,55,255,245,254,16,255,220,255,54,1,132,2,50,3,124,3,94,3,225,2,4,3, +19,3,224,0,204,253,26,253,12,254,164,254,193,255,47,1,150,0,140,254,164,253,192,253,173,253,190,253,21,254,53,254, +56,254,13,254,192,253,187,254,201,1,95,5,20,8,104,9,100,8,105,5,167,2,105,0,25,254,169,253,132,255,32,0, +234,254,61,255,254,0,148,1,73,1,203,0,139,255,168,254,240,254,248,254,219,254,160,255,227,255,190,254,96,253,19,252, +110,251,5,253,95,255,14,0,94,0,245,0,141,255,59,253,138,253,167,255,30,1,199,2,38,5,6,6,56,4,117,1, +184,0,239,2,242,4,147,4,240,4,10,7,184,5,129,0,69,254,11,0,220,255,152,253,212,253,195,255,66,0,73,0, +235,0,116,0,106,254,141,252,230,251,242,251,174,251,240,250,131,250,201,250,186,251,234,253,121,1,72,5,231,7,246,7, +167,5,223,3,20,4,15,4,250,2,63,2,37,1,81,255,98,255,255,0,185,0,200,255,106,1,238,3,91,5,54,7, +199,8,125,7,210,4,12,3,12,1,201,254,115,254,73,255,198,254,97,253,77,252,133,250,7,248,169,247,214,250,54,255, +135,2,113,5,61,8,71,8,42,4,231,254,157,251,4,250,127,249,221,250,161,253,189,255,91,0,140,0,1,2,102,5, +24,9,168,10,140,9,203,6,124,3,150,0,88,254,133,252,5,252,110,253,216,254,181,254,227,253,224,252,91,251,100,250, +193,250,119,251,241,251,90,252,239,252,197,254,174,1,214,2,165,1,179,0,227,255,169,253,70,252,81,253,52,254,140,254, +190,0,27,3,136,2,235,0,247,0,136,1,125,1,236,1,106,3,204,4,12,4,159,0,87,253,163,252,182,252,20,252, +186,252,203,254,120,255,206,254,26,255,78,0,180,1,250,3,73,6,44,6,105,3,118,0,80,255,161,255,29,0,180,0, +174,1,238,1,21,1,98,0,104,255,55,253,25,252,160,253,94,255,156,0,80,3,168,5,56,4,53,0,56,252,17,249, +73,248,3,250,97,251,77,252,254,254,112,1,115,1,217,1,137,3,163,3,97,3,139,5,25,7,90,5,146,3,170,3, +87,3,36,2,91,1,137,0,114,255,245,254,192,254,84,254,43,254,68,254,140,254,139,255,169,0,228,0,135,0,67,255, +52,252,43,249,172,248,194,249,218,250,230,252,50,0,96,3,84,6,184,8,227,7,129,3,43,0,32,1,37,4,58,6, +43,7,242,6,233,4,108,2,93,1,191,0,24,255,176,253,109,253,214,252,9,252,184,252,173,253,22,253,241,252,202,254, +59,0,24,0,9,0,198,255,87,254,103,253,65,253,253,251,102,251,110,254,73,2,146,3,48,4,185,4,179,2,208,0, +125,3,224,6,215,5,177,3,121,3,122,1,31,253,78,251,51,252,19,252,214,251,244,253,192,0,92,2,89,3,176,3, +226,2,86,1,39,255,241,252,108,252,72,253,166,253,49,254,31,0,173,1,148,1,53,1,194,0,60,255,238,253,170,254, +70,0,110,0,246,254,228,253,187,254,66,0,102,0,165,255,50,255,248,253,140,251,135,250,110,252,88,255,42,1,199,1, +35,2,190,2,239,2,153,2,57,3,129,4,191,3,62,1,28,0,37,0,45,255,19,254,60,254,19,255,109,0,230,1, +229,1,33,1,77,1,173,0,87,254,141,253,197,254,133,254,118,253,214,254,8,1,23,1,33,0,123,255,37,254,39,252, +103,251,102,253,176,1,140,5,167,6,151,5,99,3,245,255,170,252,77,251,71,251,63,252,68,255,73,3,45,6,166,7, +236,6,12,3,200,254,11,253,119,252,0,252,243,252,107,254,254,254,146,0,205,3,145,5,107,4,222,1,227,254,35,252, +119,250,235,249,76,251,138,255,41,4,225,5,86,5,33,4,188,1,111,254,244,251,68,251,248,252,115,0,171,2,29,2, +195,0,67,255,135,252,28,250,251,249,173,250,83,251,215,253,245,1,160,4,12,5,72,4,209,1,248,253,41,252,193,253, +36,255,117,254,63,255,233,2,58,5,86,4,240,2,39,1,134,253,223,250,87,251,235,251,156,251,15,253,135,255,30,1, +123,3,203,5,81,4,59,1,166,0,146,255,205,251,175,250,252,253,66,0,104,0,215,1,245,2,204,0,50,254,19,254, +201,254,149,255,3,2,182,4,137,4,227,1,105,255,205,253,215,252,38,253,24,254,250,253,88,253,176,253,47,254,53,254, +61,255,12,1,203,1,15,2,109,2,60,1,155,255,144,0,250,1,141,0,1,255,220,255,7,0,190,253,117,251,182,250, +107,251,237,252,92,253,12,253,158,254,158,0,59,0,136,0,159,3,115,4,28,1,192,254,245,254,254,254,57,255,38,0, +131,255,241,253,0,254,164,254,165,254,113,255,138,0,87,0,198,0,164,3,80,6,62,6,206,4,214,3,119,2,54,255, +115,251,86,250,135,252,222,255,99,2,158,2,233,255,143,252,27,251,142,250,9,250,35,251,93,253,152,254,168,255,121,1, +131,2,249,2,191,3,199,2,239,255,182,254,15,255,67,254,118,253,204,253,35,253,47,252,239,253,242,0,86,2,89,2, +55,1,124,255,24,0,161,2,115,2,134,255,20,254,66,254,220,253,157,253,47,254,139,254,222,254,104,255,105,255,231,255, +148,1,133,1,176,254,92,253,62,255,88,0,126,255,83,0,213,2,219,2,113,0,111,255,237,255,97,255,142,254,41,255, +192,255,159,255,71,1,34,5,245,7,35,8,136,6,94,3,181,255,136,254,0,0,125,0,225,254,1,254,217,254,130,255, +169,255,39,0,250,255,135,254,168,253,237,253,132,253,131,252,174,252,160,253,111,254,196,255,157,0,9,255,21,253,184,253, +59,255,223,255,26,2,27,6,78,7,165,4,124,2,78,2,220,0,1,253,192,249,180,249,225,252,199,1,118,5,11,5, +199,1,248,255,52,0,105,255,221,253,115,254,52,0,164,0,195,0,59,1,199,255,88,252,17,250,119,250,245,252,128,0, +108,3,63,5,59,7,146,8,47,7,103,4,194,2,124,1,63,255,21,253,93,252,121,253,217,255,233,1,21,3,14,4, +187,3,237,0,27,254,140,253,213,253,98,254,177,0,177,3,252,4,194,4,177,3,165,1,245,255,243,255,190,0,192,1, +56,3,2,4,129,3,65,3,147,3,228,2,157,1,169,1,104,2,146,1,87,255,17,254,107,254,214,254,221,254,138,255, +45,0,75,255,57,254,162,254,226,254,232,253,26,254,66,0,208,1,38,2,240,2,179,3,212,2,16,1,2,0,193,255, +175,255,171,255,47,0,103,1,38,2,64,1,165,255,123,254,50,253,50,252,185,253,108,1,200,3,99,3,98,2,106,2, +144,2,101,1,167,255,242,255,187,2,33,5,253,5,24,7,138,7,131,4,4,0,192,253,76,252,251,249,125,249,42,251, +156,251,189,251,232,254,184,2,77,3,83,2,10,2,8,1,59,255,53,255,35,1,183,2,22,3,248,2,105,2,25,1, +186,255,242,254,21,254,152,253,46,0,104,5,108,8,241,7,81,7,46,6,30,2,92,254,64,254,141,254,36,253,39,253, +56,255,169,0,90,1,184,1,74,0,139,253,211,251,184,251,202,252,83,254,227,254,230,254,241,255,152,0,43,255,230,253, +149,254,111,255,41,255,107,254,236,253,168,254,227,0,9,3,109,4,148,5,135,5,53,4,250,3,179,4,232,3,159,2, +59,3,74,4,168,3,166,1,223,254,155,252,106,253,177,0,82,2,29,1,213,255,149,255,39,255,202,254,136,255,83,0, +10,0,234,255,103,0,172,255,38,254,150,254,81,0,178,0,129,0,11,1,76,1,194,1,24,3,129,2,139,255,94,254, +65,255,85,255,88,0,176,3,124,5,240,4,13,5,228,3,243,254,192,250,33,251,85,253,125,254,170,254,133,254,103,255, +127,1,84,2,39,1,196,255,137,254,11,254,34,0,18,3,94,3,22,2,153,1,216,0,244,254,4,253,95,251,107,250, +60,251,64,253,6,255,121,0,46,2,106,4,15,6,246,4,3,2,218,0,113,1,121,1,59,2,78,4,102,4,206,2, +43,3,224,3,163,1,225,254,85,254,211,254,220,255,143,1,80,2,236,1,125,1,63,0,73,254,129,253,94,253,147,252, +155,252,15,254,78,255,66,0,249,0,216,255,206,253,147,253,8,254,75,253,208,253,119,1,59,5,32,6,183,4,111,2, +13,0,135,254,130,254,195,255,246,1,244,4,237,7,101,9,70,8,154,4,206,255,139,252,77,252,79,253,185,253,243,254, +20,2,152,4,125,4,218,2,127,0,89,253,240,250,175,250,98,251,234,251,194,253,30,2,116,6,18,7,127,4,255,1, +190,255,173,252,55,251,237,252,114,255,183,2,105,8,201,12,250,11,9,9,24,6,16,1,103,252,78,252,222,253,103,254, +96,1,98,6,50,7,151,2,23,253,179,249,206,248,70,249,40,250,100,253,105,3,57,7,97,6,178,4,143,3,14,1, +2,255,88,255,116,255,146,254,177,255,10,3,12,6,116,7,138,6,33,3,66,255,221,252,221,251,170,251,13,252,142,253, +212,0,128,3,231,1,166,253,142,251,201,251,3,252,66,253,20,0,54,1,223,255,11,0,207,2,39,4,184,2,225,1, +100,2,103,1,123,255,192,255,243,0,62,0,91,255,83,0,94,1,183,1,67,2,35,1,41,253,249,249,17,250,55,251, +57,252,157,254,229,1,193,3,240,3,130,3,27,2,86,255,122,253,221,254,148,1,104,2,85,2,71,3,113,3,167,1, +60,0,30,0,28,0,93,0,175,0,218,255,218,254,177,254,250,253,141,253,186,255,240,1,11,1,194,255,49,0,142,255, +60,253,80,252,209,253,216,0,132,4,141,6,118,5,84,3,20,2,239,0,135,255,237,254,69,255,92,255,125,254,213,253, +205,254,45,0,23,0,240,255,166,1,228,3,223,4,203,4,4,4,189,2,27,1,118,254,211,251,233,251,155,253,211,253, +161,254,118,2,6,5,30,3,249,0,132,1,237,1,234,0,108,0,181,0,183,0,92,0,133,255,91,254,46,254,37,255, +124,255,178,254,99,254,4,255,240,254,166,253,186,252,181,252,150,252,210,252,194,254,191,1,20,4,2,5,79,4,125,2, +2,1,113,0,104,0,238,0,124,1,59,1,35,1,24,2,14,3,193,3,79,4,224,2,144,255,181,253,130,253,102,252, +39,251,65,251,168,251,237,252,232,255,114,1,6,0,234,254,84,255,214,255,251,0,108,2,131,2,54,3,205,5,83,6, +71,3,23,0,176,253,228,251,70,253,208,0,211,1,37,1,136,2,84,4,140,3,34,1,86,254,202,251,128,251,178,253, +197,255,191,0,183,1,145,2,110,2,186,1,36,1,253,255,156,253,229,251,43,253,152,255,54,0,250,0,96,4,14,7, +197,5,35,3,136,1,166,255,214,253,53,254,252,255,112,1,28,3,241,4,240,4,7,3,161,1,83,1,89,0,179,254, +39,254,136,254,158,254,62,255,221,0,134,1,170,0,192,255,181,254,70,253,3,253,46,254,14,0,202,3,135,8,71,10, +212,8,42,7,180,4,159,0,6,254,216,253,167,253,234,253,233,255,130,1,197,1,41,2,214,1,186,255,230,253,93,253, +194,252,182,252,2,255,157,2,208,4,146,4,61,3,82,2,74,1,81,255,156,253,213,252,48,252,177,252,37,255,190,0, +82,0,203,0,63,2,9,2,83,1,248,1,249,1,222,0,93,1,66,3,203,3,113,2,59,0,13,254,230,252,195,252, +0,253,240,253,82,255,251,255,2,0,198,255,237,254,161,254,250,255,79,1,164,1,28,2,6,2,174,0,174,0,141,2, +147,2,95,0,166,255,163,0,171,0,5,0,61,0,182,0,177,0,199,0,47,1,95,1,46,1,181,0,12,0,177,255, +9,0,80,0,157,255,153,254,41,254,216,253,138,253,223,253,66,254,115,254,224,255,236,1,56,2,22,2,208,3,19,5, +30,4,151,3,173,3,89,1,242,253,82,253,51,255,117,1,92,3,1,4,5,3,105,1,182,255,107,254,61,254,22,254, +123,253,168,254,162,1,62,3,205,2,73,1,53,254,21,251,173,250,197,251,169,252,245,254,62,2,198,3,5,4,242,3, +61,2,8,0,185,255,236,255,111,255,196,255,242,255,77,254,105,253,246,254,87,0,153,0,60,1,204,1,165,1,185,1, +104,1,153,255,232,253,211,253,63,254,96,254,14,255,173,0,74,2,133,2,70,1,87,0,223,0,174,1,8,2,31,3, +214,4,254,4,97,3,75,2,238,1,50,0,218,253,214,253,104,255,229,255,112,0,100,2,41,3,22,2,28,2,252,1, +57,254,236,249,184,249,102,251,240,251,235,252,187,254,250,254,195,253,79,253,87,254,2,0,53,1,11,2,197,3,106,5, +116,4,14,2,38,1,190,0,223,254,248,252,212,252,52,254,76,0,212,1,183,1,224,0,183,0,66,1,235,1,226,1, +0,1,148,0,97,0,118,254,64,252,72,252,44,252,28,250,60,250,64,254,205,1,74,3,243,4,12,6,254,4,99,3, +160,2,125,2,116,3,57,5,212,5,178,4,70,3,147,2,46,2,13,1,141,255,118,255,29,0,215,254,193,252,22,253, +172,254,54,255,127,0,52,3,207,3,33,1,38,254,164,252,41,252,54,252,67,252,79,252,43,253,152,254,160,255,138,0, +163,1,59,2,114,2,98,3,20,5,37,6,69,5,192,2,94,0,83,255,70,255,126,255,129,255,145,255,233,0,34,3, +77,3,134,0,96,253,63,251,97,249,42,248,173,248,132,250,109,252,131,253,22,254,26,255,66,0,10,1,102,2,247,3, +174,3,80,2,227,1,137,1,206,0,202,0,4,0,175,253,8,253,128,254,217,254,205,254,176,0,35,3,191,5,237,8, +7,9,1,5,71,2,34,2,131,0,51,254,21,254,81,254,250,253,233,254,136,255,233,253,189,252,157,253,166,254,127,255, +106,0,247,255,31,255,190,0,132,3,188,3,122,1,157,255,99,255,175,255,35,255,63,254,165,254,65,0,184,1,250,2, +36,4,0,4,51,2,64,0,91,255,97,255,197,255,72,0,235,0,64,1,134,0,229,254,62,253,20,252,180,251,253,251, +57,252,212,252,158,254,248,255,65,255,45,254,57,254,77,254,35,254,114,254,197,254,119,255,137,1,117,3,127,3,2,3, +59,3,45,3,45,2,156,0,8,255,81,254,253,254,213,0,46,3,53,4,212,2,70,1,255,0,180,255,77,253,57,253, +23,255,164,255,161,255,212,0,109,1,173,0,155,0,37,1,176,0,172,255,253,254,7,255,186,0,94,3,163,4,247,4, +11,6,230,6,31,7,101,8,172,9,118,8,249,5,30,4,42,2,229,255,189,253,189,250,217,246,56,243,14,240,54,238, +175,238,154,239,156,239,79,240,178,241,181,242,211,244,77,248,114,251,43,255,157,3,197,5,88,6,90,8,228,9,81,9, +129,9,166,10,148,10,226,10,107,12,40,12,214,9,78,8,218,7,235,6,138,4,33,0,144,250,15,246,208,243,32,243, +248,241,75,239,34,237,172,236,87,235,176,232,147,232,64,236,49,241,127,246,205,252,71,3,239,7,78,9,102,8,27,8, +60,9,125,10,208,11,52,13,150,13,89,13,82,13,231,12,78,12,208,11,194,9,157,6,22,5,176,3,102,255,141,250, +4,248,49,246,35,244,210,242,0,241,246,237,38,236,17,236,166,235,108,235,64,237,230,240,129,246,115,254,45,5,221,6, +27,6,26,7,61,8,220,6,222,5,135,8,84,12,176,13,75,13,220,12,45,12,190,11,87,12,174,11,99,7,144,1, +89,253,196,250,55,249,230,248,181,248,215,247,208,247,34,249,158,249,128,248,14,248,80,249,0,250,234,248,217,248,28,252, +146,0,126,3,51,5,210,6,89,8,21,9,36,8,11,6,38,4,230,1,152,255,139,0,255,3,145,4,205,2,184,3, +82,6,15,7,126,6,239,4,249,1,55,0,33,0,35,254,193,250,119,250,152,253,206,0,199,2,67,4,47,5,109,4, +178,2,86,2,111,2,70,0,174,254,1,2,205,6,115,7,67,5,53,3,21,0,163,251,49,249,235,249,234,250,235,250, +117,252,21,0,123,2,127,2,59,2,88,2,175,2,191,3,14,4,149,2,43,2,59,4,230,5,129,5,72,4,82,3, +158,2,62,1,139,255,235,255,140,1,7,1,255,255,105,1,79,2,81,0,171,253,72,251,149,249,21,250,236,250,30,251, +97,254,131,3,146,4,139,2,170,1,66,1,228,0,74,1,137,0,21,255,186,255,42,1,70,2,240,4,30,7,4,6, +188,4,19,5,232,3,221,0,91,254,16,253,204,253,239,0,235,3,183,4,216,3,22,2,10,0,233,253,245,251,121,252, +72,0,126,3,154,3,82,2,55,0,116,253,32,252,58,251,125,248,95,247,198,250,91,254,51,255,8,0,155,1,103,2, +77,3,199,4,119,5,21,5,255,3,52,3,173,4,145,6,198,4,221,1,161,2,91,4,156,3,148,2,128,1,194,254, +82,253,49,254,36,253,147,250,85,250,138,250,163,248,210,246,6,246,77,245,228,245,61,248,47,251,162,254,50,1,135,1, +244,2,19,7,146,8,100,5,59,3,114,4,242,4,99,3,107,2,93,2,247,1,41,2,92,3,57,3,6,1,182,254, +155,252,70,250,64,249,128,249,40,249,60,249,42,251,60,253,244,254,30,1,176,1,72,0,179,0,129,3,20,5,107,4, +31,3,242,1,2,1,57,0,236,255,204,0,3,2,149,2,199,2,180,1,114,255,60,255,176,0,148,255,1,253,149,252, +3,253,30,253,74,254,140,255,182,255,125,255,182,254,205,254,139,1,5,3,158,0,3,255,186,255,112,255,87,255,218,0, +135,1,112,2,233,4,204,4,127,1,73,255,214,253,105,252,141,254,55,3,249,4,80,3,191,0,71,254,215,252,11,252, +248,249,120,247,118,247,239,250,27,0,150,3,249,3,192,3,17,4,35,3,158,1,87,1,252,0,229,255,9,0,111,1, +97,2,172,2,172,2,120,2,67,2,133,1,232,255,146,254,154,254,239,255,134,1,103,1,230,254,95,252,76,252,77,254, +59,0,182,0,164,0,157,1,231,2,157,2,170,0,2,254,159,251,230,250,181,251,221,251,242,250,14,251,71,253,122,0, +156,2,91,2,227,0,145,0,118,1,209,1,22,1,23,0,126,255,60,255,165,254,151,253,23,253,157,253,147,254,59,0, +224,2,194,4,133,4,123,3,152,2,76,1,71,0,237,255,38,254,20,251,59,250,163,251,206,251,186,250,35,251,49,253, +0,255,129,255,165,255,19,1,204,2,225,2,169,2,155,2,39,0,31,253,75,253,130,253,54,251,26,251,180,253,12,254, +163,253,49,0,187,2,190,2,48,2,184,1,109,1,67,2,244,2,63,2,0,1,43,255,17,253,160,252,117,253,31,254, +42,255,191,255,68,254,224,252,219,253,172,255,173,0,248,0,248,0,11,1,150,0,206,254,248,252,114,252,17,253,191,254, +101,0,21,0,177,254,22,254,58,254,232,255,23,3,24,4,33,2,48,1,218,1,171,1,54,1,86,1,51,1,117,1, +95,2,44,2,25,1,16,1,136,1,214,0,93,255,161,254,172,254,44,254,136,253,143,254,127,0,87,1,84,1,81,0, +132,253,22,251,220,250,133,251,22,253,223,255,63,1,7,1,182,1,175,1,33,255,227,252,30,252,231,251,30,254,97,2, +93,4,218,3,63,3,117,1,92,254,245,252,170,253,183,254,215,255,245,0,206,1,224,2,176,3,102,3,228,2,133,2, +226,0,32,254,52,252,106,251,161,250,39,250,241,250,77,252,108,253,222,254,26,0,197,255,110,255,7,1,246,1,206,255, +197,253,250,254,35,1,128,1,17,1,86,1,193,1,117,1,122,0,7,255,171,253,89,253,228,253,150,254,75,0,9,3, +243,3,146,2,166,2,245,4,253,5,154,4,180,2,70,1,25,0,155,254,255,252,52,253,185,255,24,2,105,3,204,4, +172,5,62,5,95,4,160,3,108,3,193,3,58,2,69,254,109,252,19,255,77,2,11,3,232,2,107,3,87,3,167,1, +54,0,55,1,102,3,141,4,191,5,104,8,190,10,100,10,100,7,217,3,183,1,252,255,238,252,197,250,48,252,239,254, +254,255,81,0,243,1,227,4,14,7,66,6,166,3,78,2,31,2,2,1,238,254,64,253,102,253,155,255,96,1,36,1, +191,0,131,0,13,255,126,254,13,1,3,4,115,4,237,2,4,1,14,0,219,255,26,254,142,250,85,248,241,248,4,251, +75,253,50,255,90,0,192,0,149,0,36,0,27,255,11,253,142,251,44,252,89,253,86,254,177,0,220,2,194,1,83,255, +12,255,242,255,105,255,99,253,216,251,8,252,152,252,103,252,57,253,13,255,242,254,234,253,100,255,117,1,175,0,235,254, +182,254,29,255,56,255,79,255,135,254,118,252,102,251,40,253,73,255,23,255,194,254,147,0,189,1,35,0,62,254,164,253, +130,253,249,253,98,255,100,1,123,3,213,3,186,1,246,255,82,255,72,253,10,251,184,251,174,253,204,254,136,0,149,2, +70,2,243,255,21,254,50,253,99,252,154,251,175,251,211,252,114,254,119,0,144,2,133,3,93,3,185,2,193,0,196,253, +238,251,40,251,108,250,219,250,189,252,198,254,250,0,205,2,202,2,135,1,93,255,225,251,39,250,85,252,143,254,217,254, +38,0,223,1,245,0,207,254,79,253,147,251,129,250,141,251,239,252,158,253,56,255,7,1,114,0,218,254,209,255,207,1, +60,0,115,252,79,252,10,0,138,2,68,2,195,1,44,2,121,2,111,1,242,254,116,252,219,250,63,249,130,247,38,247, +245,248,147,252,232,0,251,3,189,4,39,4,84,3,141,2,242,1,44,1,202,255,150,254,184,254,122,255,1,255,125,253, +254,252,159,253,161,253,245,252,60,252,198,250,96,249,59,250,179,252,171,254,226,255,103,0,185,0,166,2,44,5,173,4, +112,1,226,254,215,253,130,253,19,254,101,255,179,0,120,1,63,1,87,0,196,255,141,255,94,255,1,0,181,1,88,2, +226,255,46,252,21,251,105,252,192,252,2,252,139,252,202,253,47,254,141,254,189,255,233,0,226,0,103,255,56,254,15,255, +166,0,127,1,54,2,158,2,66,2,204,1,14,0,136,252,60,251,112,253,225,254,230,254,9,0,2,1,223,0,230,1, +224,3,158,4,222,3,35,2,211,0,9,1,80,0,138,253,63,252,17,253,70,253,188,253,125,255,101,0,113,0,189,0, +250,255,195,254,92,255,174,0,17,1,237,0,116,0,119,0,198,1,121,2,216,1,250,1,125,2,248,1,209,1,253,1, +162,0,4,255,220,254,66,255,249,255,100,1,186,2,168,3,158,3,225,1,149,0,251,0,222,255,237,252,142,252,75,254, +181,253,28,252,155,253,168,0,202,1,2,2,20,3,30,3,3,1,87,255,20,255,50,254,37,253,202,253,122,254,235,253, +122,254,188,0,60,2,57,2,126,1,104,0,116,255,116,254,49,253,242,252,154,253,250,253,202,255,66,3,6,4,46,2, +142,2,114,3,64,0,23,252,39,251,196,251,19,253,236,255,203,1,131,1,207,1,110,2,18,1,125,255,86,255,113,254, +242,252,51,254,177,1,91,3,60,2,21,1,140,1,31,2,49,1,219,255,162,255,201,255,169,255,34,0,38,1,238,1, +155,2,177,2,71,1,38,255,41,253,76,251,102,250,237,250,56,252,156,254,102,1,77,2,155,2,62,4,199,3,17,0, +76,254,252,254,3,254,24,253,212,254,50,0,77,0,115,1,110,2,224,1,100,1,77,1,148,1,206,2,228,2,232,0, +203,255,160,255,58,254,38,253,30,253,209,251,183,250,193,252,207,255,56,1,195,1,35,2,118,2,63,3,84,3,238,0, +12,253,237,250,10,252,27,254,10,255,68,0,242,1,99,1,240,255,23,1,133,2,72,1,59,0,102,1,151,2,169,2, +43,2,123,1,198,0,63,255,218,252,159,251,214,251,138,252,141,254,99,0,158,255,188,255,246,2,228,3,100,1,29,1, +157,2,137,1,214,255,168,0,59,2,38,2,138,0,70,255,241,254,37,253,120,250,219,251,165,0,34,3,3,3,154,2, +144,1,6,1,127,1,200,255,163,252,108,252,61,254,97,255,71,0,103,0,105,255,15,255,113,254,118,252,221,251,251,252, +160,253,94,255,165,2,60,4,127,4,230,4,59,3,22,0,76,254,83,252,89,250,122,252,31,1,204,3,190,5,102,7, +102,5,99,1,166,255,32,255,76,254,245,254,168,0,33,1,202,0,135,0,34,0,107,0,27,1,116,255,103,251,219,248, +193,249,114,252,45,255,197,0,184,0,177,0,249,1,172,2,185,1,254,0,2,1,218,0,100,1,166,2,167,2,36,2, +90,3,230,4,196,4,145,3,32,1,50,253,239,250,81,252,179,254,50,0,63,1,34,1,102,0,226,1,96,4,131,3, +84,0,89,255,148,0,88,1,50,1,146,0,5,0,209,0,114,2,201,2,240,1,97,1,238,0,249,255,237,254,37,254, +96,253,83,252,160,251,156,252,61,255,43,2,112,4,199,4,210,2,73,1,39,1,137,255,5,253,196,252,220,252,199,251, +1,253,30,0,142,1,78,3,41,6,112,5,186,1,220,255,244,254,143,253,64,254,181,0,59,2,219,2,56,3,220,3, +241,4,143,3,4,255,194,251,53,250,65,247,231,245,119,249,69,254,8,2,99,6,109,9,232,7,236,2,161,253,129,250, +84,250,152,251,71,253,146,255,194,1,24,3,201,2,83,255,206,250,11,250,78,252,77,253,197,253,179,0,55,5,249,8, +202,11,90,14,51,15,244,11,224,6,138,4,62,3,63,255,144,251,67,251,148,251,17,251,90,250,45,248,237,245,206,246, +181,248,205,248,88,249,165,251,223,253,166,255,148,1,50,3,138,3,202,1,180,255,150,0,71,3,87,4,130,4,237,4, +205,3,157,1,235,0,57,1,211,0,15,0,62,0,48,2,0,5,221,6,104,7,102,6,55,3,211,255,62,254,164,252, +198,249,109,247,137,246,90,247,22,250,156,252,146,253,127,254,248,254,213,253,90,253,23,254,198,253,14,254,6,1,71,3, +8,3,24,3,33,3,231,0,158,254,116,254,115,254,248,253,22,255,113,1,180,2,139,2,210,1,214,0,51,0,74,0, +135,0,34,1,98,2,152,2,87,1,213,0,214,0,118,255,59,254,243,253,143,251,115,247,164,245,203,245,195,245,221,246, +106,249,133,251,109,253,122,255,46,0,238,255,44,0,84,0,12,0,238,255,52,255,107,253,231,251,28,251,98,250,78,250, +210,251,200,253,77,254,253,253,182,254,168,255,8,255,74,254,74,255,128,0,105,0,233,255,140,255,231,254,200,253,217,251, +146,249,209,248,50,250,255,251,139,252,195,251,159,250,8,250,83,250,112,251,198,252,217,253,32,255,32,0,40,255,91,253, +136,253,238,254,199,255,216,0,202,1,142,1,208,1,224,2,143,2,183,1,230,1,64,1,206,255,69,0,131,1,170,0, +169,254,20,254,187,255,37,2,208,2,191,1,62,1,124,1,82,1,202,0,146,255,248,253,30,254,43,0,112,2,183,4, +216,5,194,3,122,0,26,255,112,254,22,253,180,252,246,253,56,255,163,255,75,0,54,2,70,4,128,4,212,2,104,0, +73,254,177,253,178,254,152,0,187,3,213,6,76,7,176,6,243,6,238,4,35,0,66,253,154,252,213,251,196,252,56,255, +157,255,251,254,193,255,37,0,161,255,228,255,19,0,91,255,219,254,199,254,15,255,113,255,103,254,133,252,231,251,126,251, +143,250,184,251,178,254,34,0,110,0,192,1,216,2,75,2,21,2,250,3,23,6,255,5,140,4,228,2,238,255,153,252, +164,251,11,252,23,252,138,253,107,0,163,2,2,5,78,7,174,6,141,4,162,3,232,1,0,255,236,253,1,254,209,253, +3,255,111,0,162,255,0,255,27,0,120,0,135,0,116,2,34,4,128,3,125,2,81,2,37,2,78,2,121,3,163,4, +206,4,47,4,180,2,87,0,179,254,205,254,201,254,138,253,164,252,82,252,92,251,207,250,137,251,254,251,45,252,106,253, +139,254,191,254,0,0,166,2,126,4,174,4,144,3,43,1,143,254,106,253,203,253,173,254,224,255,184,1,168,3,192,4, +233,4,43,4,71,2,59,0,161,255,16,0,246,255,44,255,86,254,144,253,204,252,85,252,172,252,127,253,120,253,146,252, +39,252,184,251,94,250,74,250,82,253,57,1,214,3,116,6,8,10,50,12,158,10,169,6,18,3,109,0,8,255,240,255, +133,1,86,1,173,0,166,0,104,255,152,253,147,253,18,254,28,254,243,255,50,3,95,4,138,2,158,255,236,253,28,254, +25,254,239,252,141,252,212,252,34,252,208,251,192,252,91,253,194,253,77,254,106,253,192,251,44,251,6,251,136,251,237,253, +118,0,1,2,16,4,144,5,121,4,142,2,129,1,145,0,43,0,87,1,243,2,130,3,72,3,46,3,166,2,92,0, +99,253,224,251,96,251,111,251,18,253,207,254,34,255,62,0,32,2,195,1,24,0,184,254,9,252,206,249,55,251,109,253, +249,253,160,255,233,2,50,5,120,5,64,3,148,255,239,253,112,254,143,254,235,254,40,0,255,0,126,2,238,4,253,4, +133,2,193,0,175,255,108,254,109,254,24,255,54,254,211,252,236,252,129,253,35,253,186,252,121,253,218,254,4,0,198,0, +152,0,234,255,241,0,58,3,40,3,130,0,67,254,17,253,213,252,2,254,89,254,206,252,229,252,139,255,127,1,61,2, +98,2,170,0,228,254,249,255,40,1,108,255,152,253,84,254,159,0,133,3,196,5,25,5,87,2,134,0,150,255,20,254, +56,253,229,253,99,254,138,254,224,255,140,0,13,254,77,251,236,251,226,253,148,254,175,255,58,2,235,3,196,3,79,3, +231,2,124,1,167,255,34,255,174,255,174,255,230,254,19,254,198,253,144,254,176,255,99,255,153,254,162,255,50,1,190,0, +65,255,219,254,141,255,13,0,73,255,242,253,214,253,126,254,67,254,183,253,127,253,234,252,198,252,23,254,244,255,28,2, +132,4,65,5,64,4,39,4,250,4,93,4,52,2,28,0,174,254,137,253,178,252,7,253,67,254,159,254,31,254,61,254, +152,254,6,255,181,0,162,2,86,3,207,3,233,3,135,2,93,1,105,1,252,0,80,0,146,0,234,0,186,0,143,255, +14,253,248,251,224,253,20,255,124,254,174,255,69,2,222,2,141,1,234,255,89,255,211,0,20,2,56,1,152,0,86,0, +161,253,130,250,118,250,187,251,130,252,36,254,152,0,177,2,84,4,239,4,223,3,2,2,226,0,147,1,52,3,44,3, +230,0,71,254,128,252,184,251,177,251,221,251,187,252,50,254,45,254,70,253,153,254,0,1,84,1,154,0,219,0,27,2, +241,3,188,4,68,3,105,1,179,255,195,252,37,251,31,253,206,254,167,253,143,252,255,252,240,253,42,255,95,0,10,2, +76,5,205,7,253,6,139,5,68,5,12,3,188,254,162,252,65,253,73,253,66,252,24,252,19,253,66,254,23,255,96,255, +171,255,183,0,61,1,165,255,165,253,36,253,127,252,52,251,10,252,147,254,139,255,238,255,49,2,37,4,64,3,231,0, +208,254,13,253,179,251,30,251,67,252,237,255,241,3,36,5,132,4,130,4,89,3,50,255,198,251,33,252,225,252,170,251, +218,251,82,254,66,255,132,254,3,255,181,255,226,254,153,254,131,255,255,254,0,253,154,252,148,254,222,0,59,2,131,2, +239,0,4,254,208,252,217,253,201,253,208,252,235,254,135,3,234,6,224,8,189,9,178,7,93,3,120,255,243,252,219,251, +101,252,152,254,104,2,177,5,76,5,240,1,244,253,152,249,49,247,158,249,55,253,70,253,8,252,211,252,146,254,14,255, +99,253,47,251,201,251,205,254,176,0,117,1,234,2,199,3,154,2,98,0,95,254,234,252,153,251,141,250,137,251,150,254, +222,0,163,1,140,2,164,3,40,4,0,4,52,3,172,2,113,2,155,0,196,253,64,252,38,251,123,250,76,253,191,1, +155,2,121,0,249,254,176,254,203,254,35,254,161,252,67,253,209,0,161,3,157,4,253,4,55,3,114,255,103,253,167,253, +211,253,123,253,88,253,48,254,25,0,215,0,97,255,104,254,41,255,83,0,63,2,71,5,107,7,105,7,150,5,156,2, +242,255,30,254,235,251,223,249,33,250,249,251,127,252,120,251,225,251,27,255,79,2,40,3,109,3,18,4,205,2,201,255, +34,254,45,254,65,254,138,254,191,255,83,1,4,2,62,1,104,0,170,0,72,0,164,254,124,254,21,0,142,0,55,0, +68,1,143,2,2,2,22,0,72,254,166,253,50,254,132,254,71,254,247,254,85,0,159,0,158,0,3,2,89,3,244,2, +65,2,14,2,214,0,14,255,210,254,122,255,64,255,123,254,188,253,49,253,228,253,107,255,197,255,70,255,161,255,95,0, +176,0,66,1,28,2,55,2,100,1,144,0,122,0,152,0,252,255,255,254,79,254,36,254,17,255,50,0,40,255,78,253, +90,254,42,1,168,2,228,3,126,5,234,4,54,2,9,0,162,254,82,253,246,252,205,253,201,254,161,255,229,0,255,1, +90,1,92,255,9,254,255,252,50,251,209,250,31,253,140,255,249,0,90,2,207,2,186,1,83,0,229,254,184,253,227,253, +248,254,120,0,125,2,48,3,228,1,19,1,209,0,134,255,121,254,128,253,0,251,59,250,105,253,239,255,44,0,254,1, +226,4,148,5,240,4,220,3,34,1,10,254,243,252,84,253,87,253,140,252,29,252,92,253,10,0,215,2,99,4,66,3, +210,255,225,252,51,252,23,253,88,254,91,255,146,0,2,2,153,1,75,255,140,254,66,255,108,254,242,253,214,255,39,0, +215,253,191,253,111,0,232,1,122,1,154,0,128,255,169,254,154,254,249,254,135,255,238,255,243,255,231,255,88,255,248,253, +67,253,163,253,125,253,248,252,126,253,107,254,200,254,108,255,29,1,238,2,235,2,142,0,46,254,194,253,41,254,103,254, +87,255,185,0,118,1,216,1,226,1,171,0,4,255,228,254,23,0,126,0,72,255,30,254,242,254,73,1,213,2,103,2, +205,0,252,254,121,253,39,253,38,254,206,254,151,254,142,255,204,1,100,2,251,0,160,255,182,253,27,251,103,251,224,254, +126,0,25,255,90,254,197,254,129,254,69,254,126,254,186,253,245,252,41,254,130,255,47,255,160,255,183,1,224,1,89,255, +229,253,117,254,187,254,118,254,143,254,191,254,22,255,142,255,140,255,229,255,94,1,77,2,176,1,153,0,115,255,113,254, +94,254,134,254,9,254,17,254,35,255,206,255,68,255,9,254,57,253,157,253,41,254,246,253,129,254,1,0,44,0,33,255, +240,254,50,255,39,255,225,255,238,0,129,0,50,255,176,254,212,254,73,255,34,1,243,3,237,4,174,3,69,3,203,3, +97,2,78,0,36,0,119,255,50,253,43,253,14,255,172,254,143,253,7,255,132,0,112,255,214,253,89,253,89,253,69,253, +201,252,61,252,165,252,134,253,125,253,219,252,8,253,58,254,105,255,35,0,69,1,231,2,174,3,147,3,189,3,164,3, +104,2,187,0,12,255,161,253,138,253,106,254,45,255,162,0,129,2,51,2,176,255,102,253,147,251,239,249,84,250,65,253, +252,255,127,0,222,255,242,255,98,0,200,255,159,254,34,254,246,253,21,254,197,255,123,2,47,4,149,4,80,4,111,3, +85,2,41,1,47,255,10,253,196,252,187,254,77,1,198,2,91,2,37,1,126,1,19,3,153,2,173,255,5,254,157,254, +99,254,15,253,105,253,217,254,250,254,252,254,56,0,179,0,154,255,140,254,172,253,191,252,15,253,109,254,117,255,213,0, +214,2,80,3,212,1,106,0,167,255,56,255,97,255,243,254,37,253,10,253,110,0,41,3,226,1,86,255,144,254,212,254, +189,254,218,253,180,252,48,253,126,255,245,0,59,1,74,2,160,2,34,0,239,253,148,254,203,254,104,252,123,250,83,251, +204,253,104,0,244,1,96,1,138,255,160,254,48,255,23,0,174,0,70,1,247,1,108,2,119,2,229,1,129,0,13,255, +222,254,225,255,156,0,100,0,5,0,19,0,57,0,80,0,179,0,20,1,182,0,227,255,70,255,190,254,59,254,215,253, +32,253,176,252,244,253,241,255,210,0,152,1,1,3,211,2,109,0,63,254,97,253,57,253,199,253,155,254,1,255,192,255, +72,1,46,2,174,1,172,0,64,0,248,0,15,2,128,1,45,255,211,253,173,254,104,255,109,254,112,253,204,253,38,254, +164,253,172,253,211,254,235,255,154,0,106,1,226,1,110,1,143,0,196,255,12,255,184,254,229,254,203,254,216,253,11,253, +239,253,86,0,139,2,184,3,54,4,237,3,150,2,183,0,18,255,59,254,52,254,178,253,16,252,93,251,16,253,17,255, +107,255,69,255,20,0,160,1,3,3,9,3,85,1,217,255,69,0,58,1,6,1,69,0,150,255,142,254,36,254,161,255, +105,1,39,1,180,255,255,254,198,254,95,254,61,254,66,254,31,254,238,254,245,0,244,1,176,0,242,254,78,254,80,254, +107,254,144,254,59,254,62,253,119,252,162,252,203,253,126,255,95,0,156,255,2,255,73,0,166,1,110,1,150,1,230,2, +106,2,145,255,193,253,10,254,153,254,57,255,248,255,127,255,184,254,223,255,142,1,176,1,210,1,113,2,43,1,252,254, +184,254,72,254,139,251,137,250,180,253,243,0,227,1,116,2,117,2,230,0,237,255,9,0,182,254,210,252,67,253,188,254, +19,255,78,255,146,255,196,254,204,254,22,1,149,2,159,1,249,0,142,1,62,1,253,255,228,254,93,253,26,252,48,253, +114,255,45,0,43,0,43,1,67,2,93,2,184,1,78,0,203,254,185,254,76,255,123,254,44,253,72,253,67,254,131,255, +163,1,65,3,79,2,65,0,122,255,66,255,182,254,251,254,163,255,184,254,110,253,121,254,148,0,195,0,187,255,196,255, +95,0,49,0,224,255,75,0,169,0,246,255,161,254,30,254,30,255,168,0,152,1,20,2,69,2,172,1,205,0,188,0, +209,0,15,0,131,255,239,255,209,255,88,254,229,252,71,252,255,251,31,252,0,253,95,254,251,255,81,1,156,1,177,1, +209,2,119,3,201,1,202,255,48,0,227,1,160,2,75,2,150,1,26,1,119,1,23,2,255,1,214,1,6,2,114,1, +143,0,11,1,165,1,85,0,173,254,70,254,50,253,150,250,47,249,104,250,104,252,207,253,23,255,175,0,255,1,240,1, +146,0,165,255,235,255,6,0,177,255,50,0,222,0,31,0,231,254,170,254,206,254,6,255,229,255,157,0,122,0,153,0, +88,1,198,1,66,2,56,3,59,3,184,1,21,0,246,254,55,254,23,254,145,253,74,251,214,248,119,248,123,249,200,250, +230,252,95,255,6,1,128,2,40,4,108,4,18,3,200,1,204,0,40,255,47,253,225,251,202,251,1,253,177,254,236,255, +25,1,53,2,217,1,82,0,222,255,195,0,173,1,149,2,20,3,168,1,114,255,124,255,73,1,179,1,88,0,102,255, +166,255,3,0,192,255,91,255,74,255,216,254,239,253,111,254,169,0,116,1,122,255,205,253,43,254,211,254,17,255,139,255, +131,255,0,255,178,255,10,1,240,0,247,255,137,255,19,255,163,254,51,255,165,255,232,254,163,254,141,255,39,0,190,0, +113,2,108,3,14,2,70,0,152,255,222,254,243,253,81,254,227,255,72,1,54,2,58,3,105,4,22,5,125,4,206,2, +216,0,167,254,100,252,119,251,29,252,127,252,110,252,30,254,110,1,41,3,231,1,163,255,124,254,154,254,202,254,57,254, +170,253,93,254,39,0,248,1,18,3,179,2,199,0,20,255,0,255,136,255,151,255,209,255,166,0,139,1,94,2,244,2, +172,2,229,1,163,1,125,1,122,0,233,254,133,253,191,252,105,253,143,255,91,1,115,1,189,0,42,0,18,255,228,252, +154,250,245,249,245,251,159,255,145,2,139,3,91,3,178,2,17,1,140,254,152,252,85,252,143,253,192,255,150,2,36,5, +226,5,50,4,75,1,6,255,40,254,53,254,103,254,145,254,71,255,215,0,76,2,166,2,123,2,165,2,95,2,239,0, +103,255,167,254,1,254,98,253,226,253,62,255,235,255,190,255,204,255,67,0,103,0,142,255,139,253,160,251,229,251,65,254, +79,0,35,1,226,1,135,2,227,1,3,0,164,253,46,251,1,250,149,251,182,254,10,1,127,2,218,3,39,4,188,2, +247,0,201,255,107,254,228,252,223,252,216,254,192,0,187,0,163,255,109,255,18,0,38,0,190,255,34,0,95,1,73,2, +51,2,71,1,2,0,182,254,5,253,24,251,191,250,207,252,42,255,71,0,67,1,50,2,143,1,99,0,250,0,41,2, +192,1,232,0,48,1,107,1,157,0,167,255,25,255,215,254,240,254,83,255,94,0,111,2,155,3,175,1,141,254,73,253, +49,253,212,252,64,253,128,254,63,255,156,0,105,3,144,4,165,2,8,1,42,1,166,0,90,255,37,255,71,255,172,254, +127,254,176,254,196,253,200,252,126,253,211,254,177,255,23,1,178,2,81,2,206,255,120,253,239,252,235,253,56,255,47,0, +101,1,12,3,143,3,193,1,11,255,57,253,12,252,178,250,48,250,105,252,183,0,153,3,85,3,80,2,102,2,27,2, +187,0,202,255,76,255,176,254,119,255,106,1,121,1,13,0,91,0,249,0,212,254,89,252,161,252,229,253,163,254,212,255, +154,0,34,0,121,0,190,1,184,1,121,1,130,2,42,2,197,255,23,255,44,0,145,255,86,254,34,255,97,0,217,0, +240,1,181,2,178,1,220,0,184,0,215,254,70,252,25,252,60,253,44,254,114,0,11,3,161,2,114,0,153,255,240,254, +48,253,114,252,94,253,100,254,182,255,162,1,70,2,47,1,73,0,41,0,51,0,205,0,228,1,47,2,69,1,198,255, +51,254,73,253,141,253,100,254,122,255,65,1,193,2,32,2,20,0,63,255,197,255,5,255,59,252,55,250,77,251,8,254, +183,255,11,0,31,0,10,0,150,255,101,255,206,255,76,0,136,0,218,0,154,1,87,2,30,2,231,0,238,255,197,255, +205,255,219,255,20,0,255,255,0,0,251,0,117,1,125,255,9,253,46,253,60,255,12,1,59,2,180,2,109,2,78,2, +13,2,101,0,124,254,233,253,76,253,232,251,171,251,129,252,180,252,156,253,95,0,34,2,154,1,109,1,235,1,233,0, +125,255,170,255,228,255,229,254,122,254,68,255,166,255,95,255,118,255,242,255,68,0,22,0,136,255,144,255,107,0,130,0, +105,255,44,255,103,0,33,1,187,0,139,0,197,0,182,0,143,0,78,0,51,255,186,253,116,253,158,254,29,0,61,1, +170,1,237,0,96,255,60,254,248,253,40,254,224,254,35,0,217,0,175,0,238,0,113,1,70,0,209,253,210,252,187,253, +172,254,34,255,129,255,100,255,21,255,111,255,242,255,33,0,217,0,217,1,221,1,148,1,255,1,190,1,63,0,141,255, +37,0,13,0,21,255,202,254,25,255,8,255,213,254,59,255,112,0,203,1,218,1,121,0,176,255,41,0,50,0,202,255, +111,0,240,0,219,255,189,255,79,2,13,4,145,2,36,1,34,2,201,2,217,0,1,254,60,252,209,251,157,252,232,253, +138,254,246,254,145,0,189,2,173,3,65,3,94,2,223,0,120,254,36,252,63,251,17,252,114,253,216,253,87,253,175,253, +79,255,137,0,176,0,252,0,182,1,219,1,102,1,242,0,114,0,60,0,14,1,246,1,38,1,1,255,98,253,171,252, +61,252,144,252,131,254,99,1,98,3,181,3,68,3,3,3,128,2,215,0,85,254,112,252,104,252,10,254,149,255,179,255, +87,255,24,0,88,1,90,1,54,0,75,255,248,254,214,254,3,255,208,255,2,1,213,1,169,1,20,1,145,1,232,2, +166,2,253,255,179,253,208,253,169,254,176,254,83,255,73,1,131,2,250,1,47,1,196,0,0,0,72,255,34,255,192,254, +69,254,232,254,212,255,117,255,243,254,215,255,241,0,244,0,98,0,152,255,206,254,7,255,28,0,175,0,233,0,122,1, +140,1,244,0,243,0,57,1,149,0,190,255,96,255,151,254,169,253,178,253,211,253,66,253,97,253,168,254,226,255,5,1, +42,2,232,1,144,0,115,0,9,1,224,255,52,254,0,255,35,1,113,1,100,0,155,0,219,1,5,2,51,1,194,0, +243,255,228,253,169,252,186,253,219,254,12,255,224,0,57,4,36,5,33,3,110,1,85,0,233,253,24,251,172,249,252,248, +150,248,246,249,125,253,27,1,216,2,221,2,105,2,108,1,255,254,108,252,74,252,78,254,47,0,146,1,205,2,231,2, +21,2,220,1,135,1,157,255,165,253,201,253,78,255,127,0,16,1,51,1,164,0,87,255,70,254,173,254,179,255,15,255, +88,253,98,253,209,254,82,255,173,255,44,1,87,2,225,2,251,3,122,3,71,255,18,251,111,250,48,251,80,251,140,252, +102,255,2,2,136,3,253,3,95,3,83,2,1,1,17,255,203,253,88,254,54,255,85,255,1,0,95,1,208,1,221,0, +39,255,159,253,197,253,120,255,115,0,69,0,155,0,63,1,216,0,167,255,42,254,190,252,237,252,220,254,66,0,146,0, +46,1,169,1,63,1,14,1,71,1,251,0,246,0,235,1,125,2,2,2,252,0,102,255,97,254,85,255,47,0,3,255, +157,254,195,0,81,2,226,1,203,1,28,2,66,1,96,0,157,0,161,0,190,255,181,254,226,253,182,253,111,254,25,255, +124,255,144,0,213,1,6,2,128,1,209,0,240,255,176,255,85,0,208,0,79,1,65,2,36,2,47,1,5,2,113,3, +158,1,239,253,140,252,8,253,53,253,188,253,57,255,198,0,2,2,134,2,252,1,202,1,111,2,217,1,174,255,45,254, +230,253,46,254,103,255,161,0,212,255,248,253,107,253,231,253,66,254,133,254,159,254,229,254,73,0,218,1,205,1,221,0, +75,0,108,255,77,254,106,254,155,255,133,0,248,0,42,1,0,1,136,0,93,255,109,253,89,252,26,253,76,254,23,255, +4,0,146,0,108,0,220,0,199,1,125,1,113,0,32,0,191,255,141,254,249,253,213,254,40,0,37,1,140,1,86,1, +22,1,30,1,6,1,231,0,28,1,58,1,7,1,236,0,25,1,175,1,102,2,241,1,92,0,203,255,43,0,22,255, +78,253,176,253,180,255,96,1,187,2,48,3,188,1,88,0,168,0,114,0,129,254,13,253,235,252,254,252,112,253,137,254, +197,255,151,1,129,3,36,3,242,0,238,255,180,255,55,254,237,252,110,253,23,254,69,254,50,255,246,255,83,255,206,254, +88,255,150,255,112,255,237,255,50,0,92,255,168,254,236,254,58,255,78,255,246,255,246,0,25,1,81,0,201,255,217,255, +108,255,8,254,195,252,143,252,64,253,106,254,134,255,255,255,67,0,247,0,37,1,3,0,24,255,204,255,2,1,94,1, +115,1,75,2,157,3,2,4,177,2,254,0,173,0,52,1,5,1,65,0,146,255,239,254,227,254,194,255,68,0,12,0, +134,0,96,1,232,0,204,255,128,255,76,255,2,255,14,0,168,1,116,1,233,255,78,255,50,0,152,1,76,2,149,1, +110,0,11,0,98,255,137,253,40,252,46,252,99,252,239,252,237,254,254,0,146,1,139,1,67,1,244,255,245,254,160,255, +31,0,161,255,177,0,95,3,26,4,78,2,185,0,145,255,168,253,148,252,113,253,241,253,255,252,244,252,176,254,19,0, +33,0,1,0,131,0,164,1,193,2,119,2,181,0,176,255,57,0,93,0,119,255,89,255,121,0,74,1,30,1,119,0, +233,255,38,0,17,1,89,1,203,0,187,0,112,1,115,2,24,4,95,5,241,3,145,0,93,254,94,253,44,252,156,252, +217,255,61,2,100,1,145,0,213,1,207,1,93,254,22,251,191,251,89,255,173,2,40,4,219,3,69,2,45,0,119,254, +66,253,234,251,165,250,233,250,100,253,195,0,97,3,163,4,72,4,182,2,218,1,186,2,44,3,106,1,149,255,231,255, +232,0,203,0,55,0,85,255,88,253,146,251,214,251,243,252,70,253,177,253,251,254,36,0,154,0,169,0,131,0,186,0, +126,1,155,1,169,0,166,255,111,254,217,252,221,252,244,254,109,0,214,0,75,2,161,3,115,2,204,0,19,1,111,1, +199,0,18,1,42,2,236,1,242,0,213,0,138,0,154,254,129,251,209,248,145,248,145,251,108,255,78,1,168,1,230,1, +181,1,4,1,144,0,130,255,5,253,115,251,96,253,247,0,125,2,204,1,113,1,231,1,122,1,214,255,69,254,163,253, +104,254,189,0,10,3,85,3,18,2,171,0,52,255,0,254,232,253,212,253,102,252,40,251,240,251,195,253,249,254,23,255, +75,254,4,254,179,255,224,1,65,2,126,1,246,0,86,0,172,255,87,255,93,254,237,252,29,253,223,254,53,0,19,1, +0,2,35,2,184,1,228,1,244,1,60,1,220,0,206,0,246,255,29,255,58,255,140,255,243,255,218,0,33,1,105,0, +57,0,136,0,22,0,114,255,70,255,2,255,107,255,67,1,152,2,69,2,233,1,152,1,23,0,240,254,125,255,112,255, +165,253,237,252,215,254,126,1,38,3,172,3,41,3,186,1,189,255,230,253,229,252,126,252,56,252,243,252,92,255,14,2, +136,3,178,3,155,2,228,0,38,0,111,0,72,0,209,255,18,0,195,0,141,1,73,2,177,1,154,255,55,254,128,254, +102,255,113,0,200,0,17,255,38,253,218,253,103,255,35,255,192,254,218,255,225,0,130,1,217,2,177,3,197,2,99,1, +156,0,58,0,99,0,188,0,124,0,32,0,227,255,4,255,147,254,237,255,20,1,106,0,67,0,177,1,240,1,57,0, +180,255,249,1,85,4,123,3,78,0,92,255,209,1,237,2,94,0,109,254,190,255,111,1,184,1,136,1,175,0,101,255, +93,255,174,255,24,254,21,252,33,252,116,253,208,254,107,0,169,1,179,1,34,1,156,0,94,0,195,0,247,0,225,255, +129,254,225,253,66,253,201,252,80,253,163,253,58,253,48,254,87,0,116,0,178,254,200,254,152,1,161,4,247,5,101,5, +227,3,196,2,17,2,215,0,227,254,208,252,207,251,17,253,48,255,99,255,198,254,128,0,9,3,179,2,141,0,139,255, +69,255,172,254,140,254,253,254,22,255,246,254,1,255,243,254,171,254,63,254,246,253,121,254,174,255,160,0,78,1,6,2, +16,2,125,1,136,1,1,2,229,1,118,1,241,0,44,0,27,0,219,0,158,0,213,255,2,1,8,3,204,2,22,1, +77,0,45,0,16,0,50,0,197,255,69,254,195,252,174,251,32,251,41,252,19,254,216,254,143,255,209,1,5,3,77,1, +122,255,17,255,66,254,154,253,26,255,34,1,131,1,105,1,229,1,16,2,232,1,249,1,148,1,128,0,182,255,106,255, +87,255,8,0,127,1,92,2,180,1,115,0,66,0,63,1,90,1,24,255,55,252,82,251,73,252,115,253,115,254,198,255, +27,1,144,1,244,0,246,255,19,255,20,254,93,253,17,254,244,255,178,1,87,3,52,5,175,5,251,3,15,2,253,0, +117,255,112,253,225,252,142,254,128,1,81,4,190,5,154,5,243,4,38,4,196,2,30,1,164,255,81,254,197,253,33,254, +250,253,48,253,115,253,89,254,7,254,92,253,250,253,198,254,115,254,155,253,187,252,93,252,182,253,252,255,239,0,223,0, +72,1,122,1,214,0,54,0,65,255,138,253,243,252,56,254,74,255,194,255,11,1,89,2,124,2,183,2,80,3,159,2, +79,1,74,1,109,1,27,0,204,254,207,254,230,254,59,254,128,253,41,253,96,253,51,254,162,254,46,254,119,254,65,0, +83,1,114,0,230,255,20,1,214,1,170,0,53,255,204,254,167,254,104,254,199,254,189,255,188,0,136,1,183,1,103,1, +203,1,206,2,188,2,188,1,110,1,19,1,116,255,77,254,226,254,92,255,46,255,59,0,245,1,194,1,180,255,222,253, +51,253,229,253,132,255,108,0,255,255,103,255,228,254,13,254,206,253,110,254,123,254,32,254,26,255,217,0,130,1,77,1, +223,0,137,255,186,253,86,253,134,254,177,255,49,0,170,0,127,1,59,2,62,2,220,1,35,2,255,2,32,3,50,2, +21,1,243,255,150,254,176,253,174,253,214,253,223,253,68,254,178,254,148,254,147,254,80,255,222,255,142,255,104,255,87,0, +160,1,100,2,149,2,29,2,206,0,46,255,247,253,81,253,69,253,216,253,191,254,186,255,165,0,23,1,8,1,4,1, +193,0,163,255,215,254,192,255,61,1,221,1,62,2,139,2,162,1,33,0,157,255,68,255,4,254,135,253,0,255,148,0, +200,0,163,0,29,1,162,1,86,1,53,0,78,255,123,255,221,255,123,255,142,255,65,1,202,2,37,2,125,0,231,255, +16,0,115,255,252,253,242,252,65,253,145,254,215,255,120,0,161,0,185,0,235,0,35,1,46,1,246,0,198,0,13,1, +164,1,152,1,96,0,215,254,243,253,123,253,52,253,184,253,215,254,74,255,254,254,121,255,155,1,130,4,131,6,187,6, +245,5,26,5,54,3,137,255,14,252,177,250,139,250,147,250,110,251,12,253,102,254,105,255,49,0,100,0,165,0,147,1, +54,2,42,2,116,2,199,2,15,2,19,1,173,0,228,255,109,254,93,253,227,252,232,252,40,254,31,0,52,1,188,1, +244,2,12,4,181,3,145,2,211,1,126,1,10,1,87,0,190,255,124,255,62,255,220,254,208,254,48,255,111,255,99,255, +27,255,132,254,46,254,152,254,221,254,98,254,52,254,241,254,210,255,103,0,143,0,217,255,222,254,228,254,165,255,67,0, +252,0,210,1,32,2,41,2,34,2,32,1,98,255,179,254,62,255,170,255,241,255,157,0,237,0,119,0,135,0,212,1, +207,2,217,1,224,255,234,254,253,254,202,254,97,254,101,254,77,254,9,254,102,254,192,254,49,254,3,254,15,255,239,255, +135,0,245,1,204,2,112,1,205,255,156,255,164,255,70,255,44,255,226,254,98,254,188,254,47,255,179,254,9,255,32,1, +202,2,64,3,196,3,138,3,152,1,16,0,56,0,12,0,220,254,125,254,34,255,85,255,26,255,48,255,49,255,209,254, +214,254,102,255,109,255,177,254,115,254,243,254,187,254,176,253,172,253,247,254,208,255,208,255,218,255,163,255,173,254,234,253, +90,254,9,0,36,2,229,2,139,1,1,0,164,255,16,255,218,253,201,253,232,254,211,255,26,1,61,3,69,4,76,3, +62,2,7,2,80,1,143,255,8,254,177,253,251,253,248,253,236,253,150,254,122,255,1,0,231,0,24,2,5,2,238,0, +184,0,46,1,216,0,229,255,217,254,137,253,170,252,215,252,58,253,157,253,163,254,181,255,128,0,255,1,87,3,177,2, +122,1,206,1,61,2,136,1,63,1,93,1,233,255,173,253,233,252,91,253,38,254,241,255,136,2,117,4,106,5,200,5, +254,4,189,2,40,0,101,254,101,253,197,252,193,252,109,253,38,254,175,254,107,255,229,255,109,255,42,255,108,0,28,2, +193,2,178,2,97,2,179,1,54,1,245,0,235,255,117,254,253,253,67,254,111,254,204,254,73,255,144,255,89,0,95,1, +22,1,108,0,148,1,68,3,201,2,177,0,247,254,34,254,60,254,244,254,111,255,250,255,56,1,200,1,125,0,179,254, +197,253,90,253,4,253,213,252,64,253,62,255,43,2,119,3,223,2,164,2,164,2,17,1,227,254,245,253,197,253,189,253, +110,254,63,255,74,255,135,255,189,0,203,1,149,1,84,0,246,254,154,254,116,255,70,0,83,0,141,0,148,1,112,2, +16,2,161,0,5,255,189,253,228,252,223,252,194,253,149,254,246,254,245,255,144,1,112,2,241,2,1,4,229,3,104,1, +28,255,233,254,17,255,135,254,147,254,139,255,154,0,108,1,99,1,0,0,84,254,142,253,201,253,241,254,61,0,97,0, +109,0,88,2,50,4,184,2,81,255,147,253,144,253,99,253,250,252,79,253,125,254,219,255,218,0,136,1,244,1,149,1, +131,0,210,255,163,255,116,255,234,255,55,1,6,2,95,2,123,3,49,4,230,2,29,1,52,0,228,254,57,253,254,252, +133,253,37,253,6,253,91,254,183,255,53,0,159,0,237,0,145,0,6,0,96,255,19,254,249,252,111,253,203,254,162,255, +21,0,205,0,104,1,124,1,100,1,68,1,214,0,114,0,138,0,203,0,49,1,87,2,121,3,66,3,212,2,170,3, +226,3,195,1,170,255,130,255,123,255,192,254,222,254,96,255,214,254,104,254,212,254,124,254,174,253,141,254,96,0,75,1, +241,1,144,2,169,1,255,255,166,255,196,255,255,254,223,254,61,0,40,1,207,0,112,0,39,0,71,255,150,254,240,254, +203,255,159,0,153,1,103,2,113,2,228,1,39,1,16,0,196,254,54,254,179,254,41,255,250,254,18,255,22,0,72,1, +24,2,201,2,10,3,60,2,227,0,224,255,56,255,221,254,26,255,188,255,106,0,46,1,124,1,141,0,57,255,254,254, +130,255,185,255,1,0,150,0,154,0,53,0,134,0,28,1,245,0,191,0,214,0,206,255,199,253,20,253,169,253,12,253, +148,251,11,252,98,254,61,0,86,1,177,2,182,3,154,3,227,2,220,1,172,0,172,0,78,2,84,3,49,2,101,0, +94,255,146,254,188,253,81,253,21,253,23,253,99,254,147,0,230,1,74,2,191,2,182,2,152,1,157,0,105,0,23,0, +161,255,185,255,9,0,65,0,138,0,25,0,177,254,23,254,192,254,162,254,177,253,19,254,86,255,156,255,249,255,202,1, +73,3,10,3,130,2,146,2,49,2,35,1,78,0,215,255,83,255,243,254,99,255,173,0,156,1,37,1,41,0,241,255, +232,255,23,255,27,254,164,253,127,253,241,253,71,255,170,0,103,1,216,1,11,2,162,1,193,0,181,255,225,254,36,255, +129,0,149,1,197,1,196,1,138,1,122,0,17,255,50,254,220,253,238,253,164,254,184,255,61,0,183,255,189,254,40,254, +228,253,159,253,14,254,132,255,130,0,15,0,119,255,184,255,248,255,135,255,228,254,250,254,135,0,221,2,224,3,255,2, +175,1,107,0,31,255,30,255,139,0,51,1,176,0,174,0,254,0,215,0,37,1,139,1,106,0,48,255,36,0,135,1, +245,0,152,255,6,255,199,254,139,254,150,254,136,254,28,254,213,253,114,254,62,0,234,1,166,1,101,0,130,0,68,1, +186,0,208,255,223,255,2,0,197,255,185,255,117,255,209,254,137,254,21,254,255,252,252,252,172,254,35,0,200,0,156,1, +64,2,28,2,186,1,216,0,54,255,120,254,83,255,251,255,150,255,51,255,58,255,101,255,184,255,202,255,104,255,132,255, +143,0,160,1,255,1,172,1,228,0,41,0,223,255,243,255,26,0,182,255,178,254,157,254,49,0,139,1,216,1,88,2, +44,2,15,0,211,254,50,0,130,0,85,254,144,253,11,255,126,255,200,254,225,254,73,255,128,255,15,0,4,0,55,255, +169,255,255,0,252,0,116,0,12,1,135,1,33,1,240,0,155,0,122,255,200,254,208,254,97,254,247,253,147,254,133,255, +142,0,79,2,200,3,159,3,130,2,120,1,129,0,127,255,74,254,229,252,87,252,71,253,182,254,197,255,156,0,64,1, +142,1,105,1,127,0,137,255,216,255,115,0,146,255,153,254,128,255,210,0,224,0,147,0,75,0,70,255,103,254,175,254, +1,255,154,254,64,254,36,254,241,253,23,254,214,254,199,255,183,0,104,1,96,1,170,0,165,255,165,254,60,254,107,254, +142,254,237,254,18,0,27,1,123,1,23,2,162,2,7,2,115,1,57,2,219,2,5,2,157,0,93,255,144,254,196,254, +9,255,92,254,129,254,112,0,170,1,72,1,68,1,59,1,159,255,43,254,114,254,248,254,145,255,138,1,81,3,248,2, +19,2,216,1,210,0,188,254,35,253,93,252,22,252,168,252,198,253,143,254,49,255,92,0,228,1,228,2,219,2,140,2, +248,2,119,3,6,3,120,2,95,2,90,1,78,255,81,254,201,254,249,254,105,254,254,253,4,254,99,254,22,255,214,255, +102,0,160,0,111,0,47,0,230,255,240,254,201,253,189,253,79,254,126,254,27,255,86,0,226,0,64,1,107,2,124,2, +124,0,62,255,233,255,49,0,173,255,12,0,74,1,204,2,169,4,179,5,210,4,85,3,44,2,109,0,112,254,210,253, +179,254,32,0,98,1,241,1,54,2,220,2,180,2,172,0,121,254,146,253,255,252,170,252,147,253,126,254,1,254,236,253, +226,255,249,1,17,2,210,0,208,255,135,255,118,255,244,254,69,254,137,254,29,0,69,2,96,4,231,5,23,6,229,4, +55,3,129,1,181,255,106,254,80,254,221,254,23,255,34,255,181,255,155,0,34,1,109,1,26,2,232,2,224,2,198,1, +110,0,142,255,225,254,215,253,191,252,149,252,179,253,104,255,237,0,6,2,148,2,101,2,172,1,218,0,207,255,72,254, +26,253,105,253,205,254,36,0,113,1,238,2,205,3,227,3,80,4,52,5,76,5,33,4,156,2,183,1,131,1,206,0, +170,254,140,252,179,252,181,254,108,0,230,0,92,0,153,255,139,255,122,255,255,253,159,252,136,253,18,255,45,255,109,255, +152,0,108,0,248,254,231,254,50,0,241,0,50,1,130,1,114,1,35,1,194,0,214,255,253,254,47,255,158,255,140,255, +2,0,70,1,60,2,196,2,89,3,94,3,92,2,247,0,213,255,64,255,96,255,175,255,110,255,222,254,181,254,235,254, +245,254,194,254,190,254,242,254,230,254,236,254,233,255,78,1,181,1,151,1,51,2,212,2,115,2,214,1,114,1,150,0, +176,255,220,255,167,0,72,1,245,1,53,2,38,1,178,255,74,255,46,255,7,254,143,252,39,252,149,252,1,253,195,253, +165,255,28,2,212,3,119,4,160,4,121,4,165,3,52,2,140,0,2,255,54,254,218,254,149,0,253,1,33,2,108,1, +182,0,34,0,86,255,96,254,216,253,62,254,78,255,12,0,220,255,82,255,48,255,75,255,80,255,137,255,223,255,205,255, +197,255,112,0,183,0,91,255,207,253,15,254,27,255,41,255,61,255,161,0,139,1,152,0,44,0,92,2,69,5,140,6, +60,6,244,4,96,3,182,2,98,2,94,0,169,253,67,253,173,254,92,255,208,255,155,1,138,3,254,3,100,3,31,2, +218,255,144,253,9,253,71,254,132,255,168,255,71,255,22,255,222,254,116,254,11,254,139,253,66,253,27,254,200,255,71,1, +39,3,158,5,168,6,176,5,242,4,210,4,175,3,37,2,129,1,184,0,87,255,196,254,249,254,41,255,55,0,87,2, +184,3,140,3,140,2,56,1,17,0,74,255,47,254,10,253,32,253,218,253,201,253,91,253,45,253,251,252,96,253,156,254, +58,255,75,255,172,0,200,2,170,3,8,4,35,5,185,5,138,4,99,2,110,0,28,255,79,254,216,253,31,254,91,255, +136,0,20,1,144,1,182,1,32,1,18,1,246,1,69,2,20,2,202,2,141,3,42,3,134,2,188,1,220,255,33,254, +155,253,153,252,234,250,250,250,135,252,66,253,207,253,126,255,184,0,148,0,170,0,69,1,126,1,26,2,51,3,181,2, +163,0,188,255,51,0,206,255,1,255,182,255,209,0,99,0,116,255,90,255,0,255,202,253,55,253,2,254,52,255,53,0, +202,0,32,0,78,254,20,253,95,253,17,254,69,254,196,254,85,0,78,2,142,3,185,3,25,3,42,2,39,1,220,255, +126,254,66,254,143,255,176,0,46,0,201,254,186,253,48,253,46,253,151,253,246,253,129,254,194,255,102,1,49,3,85,5, +215,6,205,6,77,6,194,5,140,3,244,255,148,253,214,252,81,252,40,252,213,252,209,253,45,255,236,0,255,1,150,2, +158,3,162,3,83,1,56,255,160,255,177,0,90,0,191,255,124,0,27,2,250,2,45,2,113,0,8,255,223,253,95,252, +78,251,236,251,67,254,54,1,98,3,46,4,49,4,184,3,66,2,81,0,61,255,238,254,103,254,189,253,186,253,203,254, +170,0,57,2,173,2,169,2,143,2,205,1,234,0,210,0,145,0,142,255,118,255,210,0,167,1,15,1,3,0,19,255, +112,254,107,254,164,254,140,254,67,254,23,254,96,254,92,255,116,0,58,1,35,2,167,2,198,1,191,0,229,0,151,0, +227,254,218,253,97,254,55,255,103,0,28,2,140,2,51,1,7,0,207,255,187,255,205,255,47,0,93,0,104,0,168,0, +173,0,81,0,58,0,200,0,163,1,19,2,164,1,13,1,54,1,110,1,193,0,220,255,123,255,41,255,171,254,44,254, +113,253,196,252,244,252,199,253,192,254,48,0,149,1,169,1,254,0,42,1,182,1,83,1,153,0,217,0,219,1,90,2, +161,1,72,0,145,255,206,255,47,0,97,0,194,0,16,1,173,0,176,255,110,254,57,253,194,252,52,253,202,253,137,254, +39,0,174,1,121,1,63,0,171,255,146,255,110,255,222,255,197,0,30,1,17,1,20,1,165,0,8,0,91,0,56,1, +125,1,101,1,94,1,57,1,79,1,159,1,34,1,48,0,85,0,11,1,205,0,61,0,110,0,178,0,127,0,93,0, +102,0,112,0,125,0,17,0,235,254,226,253,160,253,248,253,129,254,112,254,110,253,183,252,52,253,13,254,16,255,248,0, +173,2,164,2,209,1,131,1,65,1,243,0,57,1,47,1,215,255,128,254,201,254,253,255,86,0,141,255,226,254,253,254, +18,255,176,254,151,254,50,255,71,0,192,1,167,2,167,1,227,255,91,255,43,255,230,253,226,252,36,253,107,253,115,253, +48,254,38,255,193,255,185,0,234,1,117,2,229,2,149,3,62,3,153,1,54,0,180,255,102,255,69,255,173,255,34,0, +245,255,97,255,38,255,116,255,203,255,218,255,185,255,157,255,2,0,57,1,114,2,190,2,149,2,168,2,176,2,111,2, +224,1,168,0,31,255,27,254,81,253,120,252,129,252,115,253,77,254,119,255,59,1,237,1,59,1,10,1,120,1,95,1, +118,1,250,1,39,1,69,255,157,254,255,254,222,254,177,254,49,255,191,255,44,0,173,0,224,0,243,0,107,1,149,1, +223,0,76,0,152,0,37,1,133,1,213,1,239,1,171,1,48,1,117,0,82,255,36,254,162,253,221,253,12,254,12,254, +208,254,71,0,3,1,0,1,127,1,237,1,17,1,243,255,167,255,43,255,115,254,10,255,123,0,25,1,111,1,112,2, +226,2,26,2,108,1,46,1,83,0,37,255,216,254,48,255,83,255,146,255,114,0,122,1,30,2,121,2,157,2,96,2, +217,1,21,1,209,255,126,254,75,254,122,255,239,0,167,1,160,1,100,1,76,1,6,1,249,255,94,254,92,253,214,253, +108,255,197,0,248,0,179,0,240,0,47,1,189,0,115,0,3,1,124,1,20,1,66,0,112,255,202,254,201,254,116,255, +54,0,242,0,187,1,28,2,209,1,56,1,153,0,242,255,122,255,184,255,245,0,87,2,98,2,71,1,222,0,95,1, +75,1,214,0,28,1,240,0,26,255,129,253,242,253,10,255,57,255,32,255,133,255,50,0,246,0,113,1,31,1,151,0, +202,0,5,1,67,0,157,255,115,0,143,1,89,1,226,0,138,1,41,2,73,1,135,255,63,254,60,254,113,255,135,0, +122,0,102,0,32,1,77,1,95,0,150,255,237,254,157,253,231,252,5,254,164,255,87,0,118,0,110,0,38,0,231,255, +206,255,123,255,238,254,152,254,140,254,129,254,141,254,78,255,210,0,254,1,46,2,75,2,210,2,208,2,23,2,168,1, +140,1,22,1,70,0,50,255,53,254,153,254,76,0,52,1,213,0,182,0,216,0,110,0,238,255,77,255,47,254,253,253, +12,255,31,255,4,254,182,253,225,253,190,253,152,254,249,255,212,255,59,255,9,0,22,1,117,1,199,1,88,1,201,255, +203,254,200,254,199,254,130,255,98,1,118,2,247,1,104,1,55,1,122,0,68,255,122,254,107,254,150,254,142,254,29,255, +37,1,78,3,92,3,153,1,40,0,205,255,209,255,199,255,228,255,134,0,137,1,199,1,127,0,235,254,92,254,17,254, +42,253,182,252,178,253,54,255,7,0,36,0,112,0,96,1,31,2,245,1,218,1,106,2,39,2,99,0,128,254,244,252, +92,251,231,250,68,252,237,253,49,255,232,0,172,2,99,3,83,3,239,2,232,1,74,0,145,254,63,253,20,253,65,254, +198,255,178,0,11,1,26,1,228,0,50,0,191,254,10,253,107,252,81,253,152,254,152,255,223,0,43,2,119,2,1,2, +150,1,234,0,25,0,59,0,225,0,73,0,177,254,9,254,229,254,46,0,11,1,150,1,61,2,225,2,221,2,228,1, +125,0,199,255,60,0,110,0,84,255,18,255,10,1,244,1,149,255,50,253,67,253,226,253,56,254,125,255,236,0,101,1, +240,1,165,2,24,2,218,0,134,0,109,0,46,255,75,253,26,252,110,252,97,254,244,0,214,2,196,3,201,3,197,2, +185,1,164,1,156,1,231,0,102,0,44,0,233,255,186,0,56,2,238,1,103,0,21,0,3,0,140,254,41,253,15,253, +167,253,213,254,253,255,6,0,220,255,112,0,212,0,6,1,119,1,215,0,112,255,194,255,122,1,57,2,27,2,41,2, +48,2,44,2,231,1,198,0,180,255,238,255,204,0,205,1,118,3,199,4,44,4,99,2,5,1,81,0,55,0,168,0, +137,0,113,255,239,254,79,255,139,254,156,252,233,251,120,252,175,252,88,253,91,255,28,1,168,1,30,2,67,3,188,4, +49,5,129,3,52,1,22,0,255,254,216,253,227,254,193,0,108,0,221,255,115,1,251,2,56,3,88,3,232,2,71,2, +129,3,251,4,170,3,57,1,71,0,188,255,161,254,64,254,252,254,133,255,189,254,199,252,51,251,112,251,248,252,148,254, +82,0,174,2,246,4,206,5,218,4,17,3,118,1,53,0,66,255,225,254,76,255,80,0,111,1,53,2,74,2,178,1, +25,1,11,1,255,0,151,0,160,0,146,1,226,2,212,3,63,3,238,0,65,255,140,255,112,255,194,253,158,252,168,252, +202,252,77,253,14,254,236,253,232,253,80,255,147,0,151,0,215,0,180,1,183,1,239,0,179,0,250,0,20,1,177,1, +33,3,138,3,34,2,56,1,173,1,65,1,216,255,219,255,183,0,7,0,161,254,199,254,25,0,231,0,207,0,158,0, +245,0,125,1,93,1,56,0,117,254,55,253,124,253,227,254,147,0,93,2,175,3,129,3,243,1,220,255,249,253,61,253, +201,253,152,254,102,255,85,0,131,0,198,255,47,255,228,254,217,254,210,255,29,1,203,0,62,255,173,254,138,255,119,0, +226,0,108,1,19,2,28,2,197,1,111,1,40,0,195,253,236,251,133,251,56,252,202,253,41,255,114,255,248,255,111,1, +64,2,224,1,33,1,51,0,133,255,30,255,226,253,165,252,84,253,193,254,35,255,85,255,185,255,151,255,65,255,212,254, +111,254,71,255,192,0,52,1,166,1,143,2,8,2,190,0,139,0,248,255,128,254,136,254,229,255,187,0,127,1,67,2, +180,1,40,0,138,254,228,252,226,251,249,251,161,252,230,253,137,255,101,0,161,0,10,1,0,1,48,0,103,255,221,254, +148,254,234,254,106,255,132,255,157,255,229,255,44,0,215,0,8,2,240,2,227,2,39,2,127,1,15,1,8,0,31,254, +147,252,239,252,58,255,188,1,216,2,215,2,116,2,21,1,180,254,217,252,246,251,29,251,153,250,180,251,115,254,5,1, +165,1,23,1,62,1,97,1,48,0,30,255,3,255,139,254,98,254,205,255,207,0,50,0,242,255,118,0,87,0,3,0, +92,0,1,1,166,1,249,1,215,1,11,2,126,2,49,2,162,1,117,1,20,1,10,1,14,2,89,2,184,0,217,254, +160,253,31,252,156,250,84,250,127,251,145,253,197,255,77,1,18,2,96,2,254,1,248,0,72,0,105,0,159,0,121,0, +40,0,89,255,20,254,123,253,147,253,64,253,60,253,202,254,171,0,109,1,175,1,238,1,234,1,187,1,70,1,161,0, +149,0,245,0,25,1,103,1,186,1,96,1,8,1,109,0,251,253,45,251,205,250,6,252,76,253,80,255,148,1,68,2, +146,1,241,0,246,0,25,1,98,0,105,255,191,255,170,0,162,0,117,0,144,0,231,255,39,255,101,255,173,255,142,255, +202,255,81,0,23,1,45,2,143,2,20,2,209,1,147,1,221,0,75,0,196,255,223,254,110,254,224,254,182,255,201,0, +157,1,141,1,245,0,72,0,193,255,26,0,4,1,7,1,228,255,144,254,250,253,183,254,221,255,248,255,195,255,25,0, +196,255,167,254,35,254,247,253,159,253,254,253,31,255,109,0,19,2,110,3,121,3,180,2,254,1,146,1,110,1,233,0, +214,255,59,255,238,254,51,254,11,254,132,254,68,254,157,254,234,0,134,2,254,1,163,1,251,1,156,1,38,1,59,1, +230,0,5,0,10,255,205,253,234,252,58,253,52,254,244,254,54,255,23,255,68,255,33,0,183,0,51,0,174,255,141,0, +17,2,88,2,109,1,247,0,19,1,181,0,45,0,244,255,79,255,130,254,230,254,242,255,39,0,70,0,197,1,117,3, +30,3,105,1,151,0,121,0,210,255,154,255,138,0,53,1,72,1,127,1,234,0,190,255,95,0,252,1,115,1,166,255, +83,255,6,0,92,0,108,0,42,0,207,255,79,0,27,1,114,0,119,254,31,253,44,253,125,253,156,253,120,254,188,255, +235,255,164,255,138,0,189,1,189,1,231,0,202,255,215,254,61,255,192,0,128,1,60,1,60,1,136,1,77,1,163,0, +6,0,54,255,229,253,16,253,218,253,5,255,147,254,118,253,196,253,244,254,128,255,217,255,214,0,132,1,246,0,141,0, +172,1,163,2,153,1,53,0,35,0,254,255,28,255,245,254,108,255,55,255,211,254,67,255,60,0,233,0,239,0,176,0, +134,0,91,0,228,0,65,2,78,2,191,0,79,0,110,0,113,254,109,252,200,252,10,253,47,252,93,252,18,253,25,253, +150,253,105,254,184,254,130,255,171,0,50,1,237,1,143,2,186,1,9,1,181,1,227,1,111,1,159,1,112,1,247,0, +236,1,235,2,7,2,162,0,163,255,107,254,222,253,109,254,218,254,30,255,192,255,52,0,197,0,241,1,101,2,136,1, +214,0,185,0,47,0,105,255,49,255,25,255,124,254,195,253,138,253,162,253,145,253,132,253,16,254,25,255,169,255,94,255, +56,255,164,255,129,255,225,254,125,255,247,0,100,1,48,1,145,1,222,1,234,1,83,2,75,2,126,1,20,1,213,0, +15,0,203,255,40,0,206,255,1,255,163,254,45,254,104,253,170,252,208,251,113,251,85,252,139,253,59,254,8,255,28,0, +220,0,26,1,221,0,128,0,156,0,181,0,24,0,104,255,97,255,205,255,82,0,124,0,14,0,207,255,29,0,25,0, +186,255,245,255,137,0,166,0,196,0,101,1,189,1,44,1,131,0,173,0,69,1,76,1,165,0,250,255,185,255,152,255, +9,255,15,254,72,253,249,252,251,252,93,253,25,254,142,254,85,254,233,253,255,253,105,254,81,254,6,254,231,254,130,0, +231,0,88,0,116,0,200,0,90,0,243,255,49,0,145,0,224,0,43,1,124,1,36,2,207,2,195,2,28,2,79,1, +210,0,25,1,85,1,219,0,45,1,85,2,116,1,159,254,54,253,119,253,60,253,173,252,180,252,244,252,91,253,253,253, +137,254,52,255,41,0,241,0,107,1,169,1,168,1,162,1,96,1,202,0,197,0,40,1,178,0,26,0,111,0,101,0, +137,255,103,255,243,255,15,0,0,0,0,0,242,255,110,0,43,1,77,1,86,1,155,1,144,1,148,1,176,1,139,0, +85,254,5,253,103,253,245,254,136,0,183,0,223,255,185,255,34,0,207,255,6,255,155,254,124,254,119,254,190,254,139,255, +130,0,200,0,170,0,58,1,135,1,37,0,164,254,182,254,6,255,233,254,8,0,213,1,187,1,118,0,230,0,102,2, +104,2,140,1,123,1,32,1,205,255,42,255,239,254,128,253,178,252,114,254,25,0,182,255,133,255,115,0,162,0,248,255, +194,255,238,255,48,0,187,0,4,1,122,0,169,255,95,255,107,255,213,254,148,253,63,253,128,254,166,255,128,255,27,255, +156,255,191,0,124,1,6,1,215,255,102,255,42,0,44,1,119,1,191,0,167,255,147,255,167,0,76,1,17,1,26,1, +17,1,187,255,74,254,186,254,0,0,49,0,18,0,233,0,238,1,92,2,104,2,188,1,125,0,27,0,122,0,196,255, +6,254,249,252,208,252,175,252,165,252,246,252,134,253,98,254,98,255,30,0,237,0,72,2,87,3,33,3,102,2,57,2, +61,2,252,1,214,1,130,1,97,0,57,255,31,255,194,255,55,0,21,0,205,255,145,0,100,2,93,3,167,2,140,1, +187,0,12,0,212,255,247,255,2,0,45,0,50,0,145,255,32,255,35,255,129,254,160,253,184,253,55,254,168,254,168,255, +168,0,3,1,100,1,201,1,189,1,209,1,171,1,106,0,35,255,174,254,10,254,126,253,44,254,252,254,228,254,27,255, +37,0,243,0,56,1,128,1,14,2,239,2,220,3,88,4,87,4,27,4,213,3,106,3,103,2,209,0,105,255,151,254, +40,254,20,254,79,254,193,254,132,255,63,0,141,0,239,0,176,1,34,2,215,1,217,0,111,255,144,254,158,254,178,254, +205,254,161,255,3,0,216,254,133,253,89,253,209,253,115,254,19,255,142,255,199,0,65,3,113,5,253,5,142,5,3,5, +60,4,212,2,245,0,120,255,209,254,113,254,14,254,248,253,193,253,38,253,50,253,54,254,17,255,140,255,106,0,132,1, +81,2,177,2,58,2,236,0,211,255,29,255,217,253,131,252,131,252,68,253,65,253,249,252,203,253,73,255,72,0,208,0, +98,1,225,1,13,2,236,1,134,1,23,1,25,1,147,1,250,1,53,2,197,2,145,3,191,3,62,3,189,2,26,2, +239,0,248,255,182,255,72,255,90,254,205,253,149,253,1,253,199,252,207,253,14,255,249,254,227,253,89,253,251,253,240,254, +116,255,227,255,123,0,166,0,123,0,225,0,143,1,160,1,106,1,73,1,166,0,202,255,142,255,83,255,141,254,56,254, +114,254,37,254,162,253,235,253,222,254,66,0,219,1,140,2,77,2,141,2,43,3,242,2,95,2,88,2,101,2,233,1, +194,0,70,255,147,254,193,254,82,254,65,253,217,252,214,252,198,252,160,253,48,255,43,0,184,0,92,1,177,1,164,1, +44,1,63,0,203,255,183,255,150,254,127,253,98,254,130,255,16,255,209,254,114,255,107,255,107,255,154,0,104,1,15,1, +38,1,70,2,170,3,185,4,194,4,207,3,9,3,153,2,144,1,232,255,60,254,239,252,112,252,176,252,10,253,104,253, +239,253,88,254,198,254,177,255,201,0,76,1,183,0,50,255,33,254,143,254,73,255,45,255,97,255,183,0,20,2,195,2, +238,2,61,2,215,0,222,255,130,255,21,255,159,254,83,254,222,253,149,253,63,254,137,255,152,0,102,1,242,1,150,1, +134,0,33,0,165,0,182,0,212,255,14,255,231,254,202,254,119,254,31,254,251,253,113,254,60,255,63,255,183,254,56,255, +87,0,63,0,148,255,245,255,57,0,4,255,255,253,113,254,239,254,244,254,198,255,12,1,61,1,150,0,35,0,235,255, +212,255,20,0,123,0,244,0,176,1,61,2,241,1,17,1,99,0,27,0,182,255,220,254,45,254,93,254,198,254,187,254, +238,254,194,255,144,0,73,1,2,2,14,2,154,1,111,1,5,1,3,0,76,255,165,254,126,253,78,253,181,254,205,255, +15,0,141,0,174,0,232,255,128,255,205,255,15,0,144,0,62,1,53,1,28,1,253,1,4,3,40,3,74,2,91,0, +70,254,155,253,6,254,51,254,78,254,235,254,157,255,250,255,2,0,216,255,200,255,165,255,26,255,15,255,20,0,129,0, +94,255,162,254,149,255,137,0,52,0,147,255,130,255,175,255,9,0,185,0,28,1,200,0,150,0,78,1,43,2,43,2, +185,1,197,1,18,2,211,1,72,1,254,0,89,0,198,254,104,253,116,253,81,254,64,255,104,0,47,1,165,0,169,255, +111,255,59,255,97,254,248,253,135,254,224,254,147,254,195,254,21,0,174,1,110,2,25,2,48,1,52,0,116,255,31,255, +249,254,195,254,255,254,52,0,190,1,163,2,224,2,227,2,169,2,216,1,79,0,195,254,76,254,189,254,234,254,209,254, +61,255,196,255,135,255,251,254,224,254,242,254,144,254,197,253,100,253,28,254,105,255,80,0,194,0,237,0,151,0,19,0, +241,255,222,255,150,255,96,255,14,255,161,254,215,254,139,255,4,0,197,0,12,2,187,2,146,2,49,2,46,1,147,255, +177,254,141,254,63,254,82,254,31,255,138,255,98,255,147,255,244,255,228,255,130,255,30,255,24,255,159,255,227,255,129,255, +129,255,14,0,52,0,63,0,122,0,139,255,136,253,214,252,235,253,246,254,155,255,166,0,219,1,171,2,156,2,33,1, +82,255,18,255,162,255,29,255,66,254,151,254,113,255,189,255,174,255,167,255,12,0,31,1,45,2,94,2,232,1,96,1, +43,1,73,1,210,0,90,255,47,254,252,253,168,253,37,253,166,253,204,254,82,255,62,255,47,255,79,255,142,255,132,255, +25,255,43,255,236,255,54,0,204,255,185,255,22,0,29,0,229,255,242,255,27,0,42,0,84,0,138,0,99,0,253,255, +202,255,193,255,213,255,120,0,90,1,105,1,235,0,226,0,197,0,240,255,145,255,68,0,196,0,127,0,36,0,230,255, +193,255,215,255,150,255,195,254,61,254,74,254,112,254,231,254,191,255,65,0,134,0,1,1,8,1,92,0,11,0,66,0, +51,0,247,255,232,255,164,255,4,255,112,254,46,254,113,254,12,255,97,255,116,255,214,255,145,0,111,1,36,2,235,1, +226,0,99,0,125,0,43,0,226,255,65,0,76,0,221,255,1,0,37,0,102,255,231,254,56,255,49,255,235,254,117,255, +75,0,187,0,48,1,106,1,157,0,89,255,178,254,184,254,27,255,204,255,147,0,40,1,146,1,218,1,184,1,23,1, +179,0,13,1,36,1,255,255,82,254,8,253,82,252,243,252,252,254,80,0,233,255,164,255,87,0,181,0,161,0,207,0, +158,0,222,255,179,255,34,0,50,0,223,255,140,255,71,255,60,255,43,255,119,254,159,253,161,253,59,254,145,254,164,254, +53,255,163,0,246,1,242,1,82,1,83,1,17,1,233,255,142,255,125,0,230,0,148,0,136,0,30,0,29,255,231,254, +107,255,171,255,79,0,140,1,244,1,84,1,162,0,238,255,115,255,190,255,14,0,220,255,23,0,209,0,38,1,43,1, +238,0,246,255,17,255,67,255,212,255,5,0,7,0,172,255,31,255,92,255,17,0,247,255,78,255,45,255,184,255,153,0, +91,1,157,1,215,1,53,2,169,1,77,0,17,0,106,1,230,2,243,3,183,4,155,4,76,3,97,1,119,255,10,254, +102,253,46,253,49,253,0,254,151,255,249,0,132,1,106,1,28,1,239,0,218,0,161,0,107,0,103,0,98,0,60,0, +233,255,44,255,46,254,168,253,233,253,179,254,213,255,239,0,121,1,158,1,248,1,136,2,212,2,153,2,9,2,158,1, +133,1,63,1,130,0,210,255,160,255,162,255,122,255,62,255,16,255,197,254,63,254,246,253,109,254,93,255,56,0,220,0, +31,1,250,0,39,1,196,1,145,1,105,0,251,255,125,0,47,0,209,254,242,253,32,254,148,254,190,254,157,254,215,254, +76,0,103,2,48,3,11,2,159,0,60,0,46,0,135,255,178,254,92,254,92,254,132,254,230,254,44,255,123,255,202,0, +178,2,96,3,219,2,137,2,242,1,78,0,38,255,151,255,50,0,227,255,69,255,190,254,82,254,51,254,240,253,93,253, +150,253,232,254,192,255,116,255,68,255,218,255,117,0,131,0,85,0,50,0,207,255,20,255,199,254,121,255,145,0,46,1, +22,1,110,0,186,255,109,255,250,254,0,254,144,253,10,254,59,254,59,254,71,255,180,0,108,1,91,2,168,3,159,3, +133,2,74,2,120,2,122,1,16,0,146,255,144,255,100,255,95,255,173,255,239,255,217,255,114,255,241,254,91,254,177,253, +151,253,154,254,230,255,45,0,101,255,135,254,72,254,175,254,86,255,211,255,240,255,157,255,47,255,70,255,202,255,253,255, +210,255,192,255,175,255,134,255,128,255,80,255,181,254,159,254,182,255,29,1,21,2,254,2,244,3,84,4,198,3,158,2, +106,1,121,0,178,255,13,255,229,254,63,255,157,255,186,255,142,255,245,254,39,254,227,253,127,254,100,255,169,255,53,255, +11,255,216,255,191,0,216,0,121,0,21,0,180,255,205,255,88,0,15,0,184,254,231,253,66,254,211,254,61,255,212,255, +83,0,98,0,49,0,3,0,58,0,16,1,245,1,85,2,87,2,11,2,83,1,185,0,99,0,134,255,108,254,80,254, +146,254,187,253,181,252,93,253,29,255,23,0,251,255,212,255,68,0,203,0,166,0,68,0,152,0,14,1,131,0,121,255, +222,254,156,254,224,254,198,255,246,255,249,254,209,254,103,0,233,1,98,2,192,2,22,3,128,2,40,1,10,0,164,255, +140,255,219,254,124,253,204,252,193,253,153,255,44,1,33,2,165,2,220,2,76,2,100,0,75,254,4,254,255,254,255,254, +33,254,248,253,88,254,156,254,72,255,61,0,175,0,209,0,218,0,94,0,211,255,188,255,101,255,213,254,6,255,127,255, +107,255,161,255,92,0,67,0,95,255,3,255,16,255,210,254,202,254,106,255,27,0,99,0,84,0,10,0,158,255,83,255, +119,255,241,255,27,0,180,255,126,255,16,0,221,0,32,1,192,0,33,0,185,255,158,255,91,255,201,254,152,254,25,255, +152,255,160,255,171,255,9,0,97,0,136,0,143,0,87,0,2,0,235,255,224,255,153,255,170,255,104,0,252,0,242,0, +0,1,83,1,33,1,86,0,171,255,75,255,6,255,18,255,58,255,221,254,105,254,14,255,103,0,165,0,100,255,122,254, +69,255,179,0,235,0,10,0,142,255,171,255,107,255,222,254,181,254,210,254,24,255,196,255,50,0,219,255,177,255,86,0, +226,0,211,0,181,0,182,0,142,0,43,0,163,255,73,255,79,255,16,255,63,254,218,253,64,254,92,254,239,253,206,253, +203,253,94,253,111,253,240,254,244,0,32,2,148,2,13,3,68,3,94,2,166,0,144,255,178,255,16,0,232,255,143,255, +76,255,242,254,115,254,198,253,13,253,251,252,229,253,25,255,245,255,113,0,163,0,197,0,245,0,166,0,159,255,222,254, +13,255,110,255,125,255,181,255,21,0,211,255,16,255,235,254,111,255,145,255,97,255,181,255,56,0,96,0,138,0,133,0, +220,255,123,255,255,255,115,0,150,0,215,0,132,0,109,255,210,254,193,254,90,254,20,254,116,254,230,254,92,255,211,255, +133,255,219,254,10,255,123,255,60,255,91,255,147,0,143,1,72,1,105,0,217,255,179,255,121,255,179,254,192,253,114,253, +199,253,45,254,151,254,36,255,180,255,116,0,119,1,56,2,148,2,195,2,65,2,227,0,149,255,145,254,195,253,71,254, +0,0,212,0,180,0,0,1,190,0,57,255,138,254,44,255,49,255,181,254,5,255,159,255,232,255,2,0,159,255,10,255, +23,255,50,255,151,254,15,254,90,254,39,255,200,255,175,255,38,255,28,255,149,255,3,0,72,0,58,0,255,255,57,0, +12,0,102,254,56,253,104,254,29,0,154,0,234,0,55,1,91,0,44,255,22,255,112,255,84,255,36,255,4,255,168,254, +149,254,87,255,82,0,155,0,72,0,63,0,244,0,189,1,210,1,137,1,127,1,104,1,239,0,98,0,193,255,244,254, +144,254,156,254,132,254,184,254,113,255,116,255,197,254,6,255,232,255,216,255,68,255,19,255,223,254,192,254,88,255,56,0, +192,0,234,0,157,0,40,0,55,0,108,0,11,0,114,255,36,255,255,254,247,254,17,255,253,254,160,254,75,254,84,254, +211,254,143,255,27,0,39,0,167,255,13,255,9,255,150,255,16,0,72,0,84,0,3,0,165,255,237,255,88,0,235,255, +36,255,6,255,72,255,78,255,103,255,15,0,84,1,197,2,129,3,29,3,27,2,205,0,64,255,9,254,133,253,127,253, +15,254,210,254,185,254,90,254,25,255,9,0,192,255,235,254,49,254,196,253,229,254,66,1,73,2,182,1,92,1,237,0, +180,255,31,255,172,255,217,255,53,255,175,254,203,254,108,255,250,255,230,255,166,255,228,255,56,0,17,0,208,255,47,0, +10,1,92,1,198,0,37,0,3,0,219,255,30,255,176,253,19,252,150,251,212,252,151,254,173,255,115,0,135,1,140,2, +221,2,127,2,209,1,208,0,172,255,37,255,49,255,236,254,131,254,180,254,41,255,106,255,163,255,159,255,70,255,40,255, +85,255,127,255,208,255,38,0,21,0,235,255,60,0,8,1,133,1,204,0,143,255,103,255,206,255,113,255,26,255,124,255, +195,255,32,0,246,0,64,1,65,1,18,2,101,2,68,1,90,0,50,0,211,255,183,255,47,0,43,0,209,255,245,255, +242,255,41,255,80,254,31,254,98,254,102,254,37,254,115,254,25,255,22,255,235,254,38,255,169,254,153,253,187,253,208,254, +134,255,103,0,148,1,157,1,203,0,237,0,220,1,59,2,55,2,124,2,118,2,201,1,102,1,170,1,143,1,206,0, +73,0,19,0,124,255,196,254,198,254,119,255,7,0,40,0,82,0,117,0,224,255,23,255,32,255,64,255,168,254,86,254, +149,254,128,254,163,254,168,255,144,0,11,1,101,1,141,0,184,254,62,254,47,255,141,255,111,255,190,255,252,255,39,0, +192,0,32,1,212,0,126,0,63,0,12,0,143,0,140,1,200,1,97,1,123,1,244,1,179,1,162,0,166,255,62,255, +18,255,171,254,41,254,33,254,214,254,3,0,43,1,185,1,108,1,0,1,39,1,55,1,127,0,204,255,214,255,252,255, +228,255,43,0,191,0,145,0,77,255,220,253,38,253,107,253,140,254,222,255,137,0,177,0,219,0,136,0,120,255,184,254, +163,254,142,254,194,254,156,255,86,0,0,1,104,2,201,3,11,4,111,3,73,2,11,1,162,0,121,0,113,255,202,254, +210,255,247,0,196,0,58,0,98,0,206,0,221,0,139,0,2,0,63,255,101,254,19,254,157,254,110,255,216,255,196,255, +136,255,147,255,203,255,180,255,104,255,36,255,140,254,191,253,123,253,226,253,160,254,95,255,168,255,159,255,181,255,166,255, +133,255,238,255,86,0,32,0,9,0,48,0,250,255,240,255,63,0,244,255,161,255,103,0,72,1,54,1,242,0,250,0, +200,0,32,0,80,255,198,254,147,254,134,254,227,254,153,255,221,255,20,0,50,1,35,2,196,1,20,1,142,0,119,255, +57,254,147,253,86,253,166,253,160,254,112,255,183,255,220,255,6,0,72,0,150,0,148,0,92,0,38,0,231,255,0,0, +95,0,209,255,70,254,54,253,46,253,229,253,29,255,7,0,48,0,104,0,9,1,160,1,19,2,37,2,172,1,105,1, +148,1,85,1,126,0,130,255,141,254,254,253,245,253,23,254,156,254,148,255,14,0,241,255,45,0,151,0,116,0,9,0, +158,255,29,255,252,254,130,255,220,255,88,255,136,254,73,254,100,254,55,254,7,254,48,254,50,254,19,254,159,254,147,255, +28,0,157,0,129,1,16,2,238,1,191,1,251,1,71,2,222,1,165,0,157,255,104,255,145,255,215,255,78,0,133,0, +106,0,154,0,231,0,150,0,243,255,171,255,118,255,231,254,71,254,206,253,93,253,64,253,212,253,152,254,6,255,129,255, +52,0,144,0,158,0,205,0,201,0,87,0,22,0,71,0,80,0,211,255,10,255,72,254,150,253,203,252,75,252,241,252, +160,254,73,0,165,1,234,2,119,3,226,2,24,2,191,1,32,1,234,255,221,254,25,254,27,253,75,252,89,252,233,252, +114,253,240,253,115,254,59,255,78,0,198,0,53,0,115,255,252,254,212,254,105,255,124,0,43,1,129,1,131,1,212,0, +75,0,108,0,203,255,75,254,200,253,78,254,139,254,164,254,4,255,63,255,83,255,160,255,48,0,205,0,254,0,204,0, +251,0,100,1,81,1,72,1,167,1,174,1,104,1,72,1,182,0,186,255,101,255,147,255,86,255,228,254,216,254,12,255, +19,255,27,255,175,255,88,0,19,0,131,255,202,255,0,0,75,255,235,254,115,255,181,255,110,255,111,255,225,255,66,0, +51,0,5,0,97,0,0,1,4,1,133,0,8,0,160,255,109,255,100,255,46,255,251,254,252,254,213,254,167,254,218,254, +64,255,179,255,31,0,33,0,243,255,32,0,108,0,145,0,96,0,85,255,20,254,218,253,67,254,207,254,18,0,61,1, +3,1,81,0,50,0,41,0,54,0,139,0,210,0,117,1,90,2,39,2,49,1,234,0,203,0,42,0,228,255,15,0, +34,0,75,0,32,0,95,255,56,255,195,255,170,255,91,255,14,0,18,1,112,1,95,1,243,0,74,0,5,0,11,0, +152,255,226,254,201,254,48,255,2,255,238,253,230,252,140,252,117,252,167,252,217,253,155,255,122,0,85,0,113,0,250,0, +224,0,73,0,92,0,226,0,229,0,152,0,84,0,187,255,41,255,65,255,117,255,80,255,150,255,139,0,93,1,159,1, +183,1,237,1,191,1,151,0,13,255,26,254,139,253,254,252,250,252,111,253,163,253,215,253,125,254,245,254,215,254,113,254, +228,253,123,253,170,253,29,254,112,254,20,255,65,0,97,1,227,1,142,1,120,0,50,255,77,254,230,253,2,254,145,254, +71,255,26,0,45,1,28,2,124,2,167,2,220,2,177,2,2,2,42,1,93,0,213,255,146,255,255,254,61,254,56,254, +172,254,188,254,226,254,81,255,0,255,18,254,149,253,78,253,234,252,243,252,92,253,228,253,209,254,235,255,222,0,153,1, +135,1,1,1,118,1,21,2,62,1,102,0,184,0,98,0,58,255,19,255,67,255,145,254,44,254,174,254,54,255,199,255, +157,0,72,1,190,1,7,2,233,1,175,1,114,1,187,0,204,255,42,255,145,254,220,253,60,253,131,252,191,251,119,251, +162,251,193,251,237,251,163,252,192,253,174,254,128,255,177,0,7,2,46,3,26,4,234,3,32,2,80,0,131,255,118,254, +208,252,240,251,79,252,133,253,59,255,135,0,208,0,142,0,28,0,231,255,180,0,248,1,113,2,75,2,78,2,126,2, +114,2,158,1,19,0,197,254,246,253,97,253,127,253,55,254,137,254,135,254,139,254,103,254,3,255,187,0,164,1,27,1, +169,0,109,0,227,255,178,255,169,255,22,255,193,254,17,255,131,255,110,0,133,1,141,1,26,1,83,1,103,1,138,0, +29,255,103,253,45,252,62,252,192,252,73,253,19,255,166,1,230,2,217,2,190,2,41,2,184,0,129,255,247,254,144,254, +149,254,109,255,17,0,192,255,127,255,4,0,99,0,11,0,191,255,230,255,226,255,57,255,54,254,142,253,155,253,12,254, +175,254,187,255,250,0,189,1,168,1,223,0,212,255,20,255,217,254,233,254,244,254,12,255,197,255,51,1,37,2,221,1, +63,1,202,0,206,255,127,254,227,253,210,253,186,253,47,254,188,255,154,1,187,2,222,2,94,2,201,1,130,1,93,1, +214,0,2,0,116,255,40,255,189,254,122,254,167,254,180,254,90,254,105,254,93,255,72,0,80,0,74,0,3,1,91,1, +140,0,247,255,55,0,43,0,0,0,118,0,96,0,48,255,141,254,254,254,106,255,183,255,74,0,212,0,255,0,159,0, +234,255,192,255,70,0,180,0,231,0,22,1,47,1,62,1,25,1,156,0,95,0,48,0,34,255,25,254,109,254,99,255, +28,0,148,0,88,0,227,255,81,0,138,0,102,255,98,254,108,254,155,254,216,254,66,255,83,255,140,255,103,0,242,0, +222,0,208,0,191,0,156,0,166,0,122,0,16,0,30,0,130,0,149,0,116,0,111,0,148,0,249,0,91,1,64,1, +235,0,7,1,55,1,116,0,62,255,51,255,237,255,249,255,31,0,36,1,57,1,13,0,213,255,123,0,86,0,34,0, +151,0,105,0,113,255,244,254,4,255,75,255,235,255,114,0,86,0,240,255,195,255,205,255,193,255,152,255,179,255,4,0, +215,255,51,255,26,255,10,0,108,1,37,2,169,1,181,0,60,0,24,0,178,255,4,255,157,254,2,255,146,255,63,255, +209,254,166,255,225,0,70,1,112,1,115,1,77,0,180,254,98,254,22,255,68,255,143,254,10,254,115,254,31,255,45,255, +242,254,3,255,30,255,231,254,150,254,96,254,32,254,241,253,135,254,244,255,223,0,156,0,61,0,83,0,123,0,237,0, +118,1,30,1,128,0,203,0,38,1,189,0,137,0,203,0,150,0,0,0,202,255,224,255,205,255,131,255,78,255,118,255, +238,255,95,0,98,0,238,255,131,255,118,255,163,255,40,0,193,0,97,0,71,255,238,254,52,255,9,255,222,254,30,255, +34,255,2,255,97,255,19,0,178,0,6,1,207,0,67,0,226,255,1,0,193,0,112,1,83,1,31,1,94,1,57,1, +134,0,210,255,241,254,84,254,2,255,55,0,129,0,28,0,222,255,235,255,2,0,251,255,94,0,50,1,213,0,10,255, +57,254,251,254,78,255,229,254,20,255,213,255,89,0,121,0,137,0,204,0,247,0,195,0,154,0,140,0,81,0,90,0, +169,0,128,0,53,0,83,0,47,0,166,255,96,255,109,255,225,255,171,0,2,1,248,0,5,1,133,0,181,255,140,255, +242,254,96,253,236,252,228,253,75,254,6,254,4,254,77,254,245,254,123,255,37,255,3,255,174,255,217,255,193,255,150,0, +71,1,238,0,168,0,204,0,191,0,148,0,107,0,103,0,170,0,125,0,195,255,147,255,194,255,110,255,59,255,179,255, +51,0,144,0,11,1,142,1,23,2,48,2,46,1,193,255,10,255,247,254,230,254,73,254,57,253,0,253,7,254,205,254, +0,255,221,255,233,0,221,0,130,0,218,0,26,1,177,0,82,0,35,0,94,255,2,254,66,253,214,253,17,255,30,0, +213,0,38,1,16,1,5,1,79,1,129,1,55,1,168,0,12,0,94,255,2,255,136,255,127,0,237,0,220,0,214,0, +178,0,102,0,116,0,183,0,130,0,250,255,214,255,27,0,32,0,181,255,171,255,108,0,210,0,200,255,28,254,80,253, +200,253,253,254,70,0,13,1,29,1,12,1,135,1,252,1,88,1,51,0,172,255,37,255,76,254,137,254,209,255,122,0, +171,0,49,1,44,1,80,0,174,255,104,255,42,255,112,255,86,0,64,1,192,1,213,1,207,1,163,1,205,0,199,255, +98,255,249,254,81,254,120,254,242,254,182,254,230,254,16,0,170,0,95,0,40,0,17,0,244,255,207,255,94,255,82,255, +45,0,207,0,229,0,85,1,207,1,245,1,105,2,147,2,199,1,54,1,229,0,47,255,165,252,60,251,72,251,99,252, +45,254,177,255,125,0,222,0,212,0,137,0,45,0,85,255,74,254,254,253,22,254,239,253,48,254,250,254,102,255,141,255, +15,0,166,0,247,0,11,1,197,0,82,0,44,0,37,0,211,255,174,255,109,0,161,1,56,2,32,2,47,2,129,2, +84,2,84,1,155,255,89,253,116,251,246,250,161,251,135,252,111,253,140,254,164,255,28,0,188,255,43,255,6,255,23,255, +113,255,142,0,166,1,166,1,36,1,183,0,139,255,177,253,161,252,230,252,251,253,105,255,192,0,180,1,35,2,196,1, +226,0,52,0,198,255,247,255,90,1,75,2,25,1,149,255,162,255,2,0,254,255,92,0,110,0,173,255,114,255,232,255, +191,255,2,255,107,254,20,254,90,254,57,255,199,255,250,255,97,0,134,0,242,255,50,255,211,254,255,254,175,255,85,0, +128,0,161,0,240,0,241,0,155,0,106,0,54,0,148,255,240,254,201,254,196,254,161,254,211,254,143,255,147,0,162,1, +84,2,75,2,148,1,41,0,107,254,137,253,188,253,248,253,25,254,146,254,6,255,101,255,10,0,137,0,221,0,117,1, +122,1,121,0,197,255,165,255,45,255,223,254,92,255,0,0,135,0,234,0,168,0,54,0,51,0,251,255,114,255,92,255, +131,255,149,255,14,0,204,0,89,1,176,1,87,1,81,0,28,0,251,0,45,1,82,0,235,255,80,0,109,0,252,255, +171,255,199,255,24,0,85,0,235,255,167,254,161,253,190,253,65,254,66,254,176,253,205,252,165,252,13,254,182,255,128,0, +112,1,153,2,182,2,105,2,152,2,42,2,219,0,195,255,223,254,10,254,206,253,214,253,188,253,3,254,181,254,160,255, +213,0,116,1,241,0,124,0,141,0,34,0,55,255,139,254,89,254,224,254,11,0,44,1,38,2,179,2,239,1,116,0, +219,255,249,255,13,0,116,0,198,0,11,0,61,255,131,255,216,255,159,255,240,255,177,0,183,0,110,0,127,0,42,0, +130,255,106,255,45,255,49,254,161,253,244,253,158,254,166,255,86,0,249,255,39,0,164,1,48,2,29,1,81,0,24,0, +152,255,35,255,26,255,140,255,117,0,235,0,131,0,93,0,197,0,246,0,248,0,239,0,156,0,54,0,178,255,220,254, +128,254,1,255,149,255,241,255,7,0,135,255,252,254,10,255,83,255,147,255,165,255,58,255,2,255,129,255,165,255,14,255, +236,254,131,255,252,255,0,0,249,255,114,0,1,1,195,0,77,0,38,0,68,255,40,254,157,254,178,255,208,255,177,255, +162,255,81,255,163,255,98,0,114,0,119,0,146,0,212,255,58,255,127,255,182,255,115,0,193,1,117,1,116,0,60,1, +211,1,96,0,82,255,101,255,202,254,236,253,186,253,167,253,220,253,185,254,209,255,8,1,192,1,45,1,69,0,188,255, +185,254,188,253,41,254,126,255,125,0,204,0,166,0,180,0,26,1,38,1,1,1,25,1,201,0,33,0,243,255,189,255, +1,255,150,254,197,254,67,255,65,0,71,1,125,1,74,1,36,1,143,0,124,255,146,254,6,254,106,253,158,252,84,252, +239,252,162,253,8,254,166,254,77,255,193,255,132,0,16,1,181,0,184,0,126,1,71,1,61,0,23,0,34,0,90,255, +53,255,116,0,158,1,214,1,142,1,32,1,194,0,101,0,137,255,88,254,210,253,48,254,206,254,129,255,90,0,211,0, +248,0,156,1,95,2,54,2,155,1,99,1,24,1,88,0,49,255,125,253,33,252,94,252,89,253,222,253,224,254,212,0, +13,2,220,1,180,1,62,2,17,2,104,0,245,254,34,255,171,255,114,255,116,255,8,0,102,0,198,0,73,1,92,1, +158,1,188,2,150,3,133,3,73,3,232,2,239,1,156,0,64,255,36,254,126,253,255,252,237,252,242,253,40,255,111,255, +164,255,122,0,214,0,56,0,186,255,235,255,234,255,73,255,2,255,137,255,194,255,80,255,52,255,144,255,224,255,75,0, +102,0,168,255,41,255,142,255,202,255,221,255,130,0,245,0,181,0,176,0,41,1,160,1,223,1,137,1,174,0,30,0, +199,255,46,255,233,254,34,255,6,255,228,254,153,255,91,0,20,0,149,255,29,0,39,1,73,1,64,0,230,254,13,254, +39,254,194,254,177,254,7,254,75,254,195,255,32,1,208,1,23,2,0,2,175,1,70,1,157,0,20,0,58,0,165,0, +159,0,75,0,23,0,244,255,190,255,210,255,83,0,109,0,230,255,250,255,196,0,183,0,240,255,219,255,6,0,158,255, +78,255,64,255,7,255,29,255,122,255,81,255,252,254,8,255,32,255,114,255,248,255,145,255,145,254,141,254,244,254,161,254, +203,254,58,0,82,1,109,1,187,1,76,2,63,2,253,1,30,2,187,1,108,0,128,255,113,255,11,255,63,254,72,254, +225,254,211,254,107,254,188,254,217,255,255,0,70,1,127,0,148,255,46,255,5,255,14,255,120,255,250,255,165,0,179,1, +23,2,224,0,51,255,131,254,156,254,185,254,199,254,0,255,91,255,150,255,182,255,237,255,10,0,16,0,120,0,187,0, +5,0,93,255,187,255,29,0,66,0,27,1,225,1,156,1,72,1,41,1,108,0,175,255,122,255,31,255,246,254,100,255, +153,255,9,0,91,1,211,1,245,0,197,0,23,1,92,0,147,255,142,255,3,255,214,253,48,253,88,253,65,254,134,255, +42,0,115,0,92,1,91,2,107,2,95,1,134,255,31,254,105,254,118,255,156,255,50,255,101,255,16,0,63,0,210,255, +178,255,19,0,19,0,244,255,188,0,175,1,182,1,114,1,61,1,112,0,78,255,175,254,190,254,89,255,7,0,74,0, +98,0,79,0,152,255,218,254,0,255,127,255,120,255,238,254,75,254,237,253,190,253,147,253,25,254,107,255,51,0,66,0, +173,0,83,1,217,1,171,2,63,3,255,2,177,2,52,2,162,0,12,255,171,254,160,254,32,254,122,253,16,253,98,253, +66,254,150,254,174,254,204,255,63,1,36,2,147,3,129,5,174,5,153,3,58,1,155,255,83,254,117,253,101,253,199,253, +252,253,15,254,96,254,212,254,242,254,179,254,167,254,55,255,46,0,2,1,104,1,168,1,58,2,182,2,41,2,234,0, +54,0,238,255,77,255,164,254,34,254,83,253,211,252,105,253,111,254,99,255,157,0,52,2,52,4,47,6,131,6,206,4, +192,2,248,0,39,255,99,254,241,254,4,255,62,254,58,254,83,255,80,0,119,0,30,0,189,255,51,255,129,254,59,254, +75,254,27,254,17,254,138,254,23,255,252,255,71,1,128,1,111,0,228,255,54,0,44,0,149,255,233,254,100,254,98,254, +243,254,157,255,213,255,85,255,189,254,232,254,111,255,252,255,75,1,9,3,248,3,0,4,76,3,235,1,251,0,189,0, +240,255,245,254,27,255,151,255,42,255,66,254,190,253,23,254,210,254,197,254,113,254,65,255,59,0,232,255,82,255,123,255, +206,255,48,0,211,0,81,1,187,1,102,2,206,2,71,2,185,0,197,254,155,253,174,253,67,254,255,254,54,0,202,1, +49,3,19,4,89,4,235,3,177,2,255,0,112,255,51,254,126,253,188,253,66,254,47,254,68,254,8,255,126,255,144,255, +255,255,66,0,215,255,63,255,138,254,212,253,208,253,53,254,92,254,183,254,124,255,38,0,169,0,23,1,73,1,56,1, +192,0,46,0,83,0,176,0,79,0,223,255,212,255,65,255,117,254,108,254,112,254,227,253,167,253,22,254,192,254,131,255, +72,0,5,1,181,1,243,1,195,1,161,1,46,1,39,0,132,255,202,255,79,0,167,0,222,0,23,1,97,1,70,1, +149,0,48,0,117,0,174,0,211,0,53,1,66,1,173,0,236,255,44,255,126,254,38,254,212,253,78,253,88,253,90,254, +94,255,213,255,160,0,17,2,171,2,182,1,228,0,77,1,107,1,244,255,37,254,196,253,202,254,207,255,3,0,1,0, +59,0,52,0,6,0,102,0,28,1,218,1,213,2,99,3,210,2,255,1,150,1,41,1,229,0,247,0,157,0,253,255, +232,255,171,255,136,254,179,253,43,254,24,255,161,255,247,255,121,0,49,1,235,1,113,2,195,2,225,2,150,2,191,1, +141,0,117,255,187,254,22,254,94,253,5,253,17,253,228,252,223,252,235,253,94,255,17,0,102,0,184,0,101,0,245,255, +119,0,228,0,40,0,130,255,179,255,197,255,208,255,128,0,4,1,245,0,65,1,222,1,10,2,252,1,232,1,148,1, +73,1,13,1,94,0,138,255,35,255,237,254,224,254,74,255,220,255,83,0,200,0,208,0,38,0,101,255,197,254,227,253, +64,253,190,253,191,254,243,254,145,254,178,254,42,255,65,255,123,255,108,0,109,1,244,1,54,2,58,2,249,1,105,1, +44,0,235,254,11,255,251,255,72,0,130,0,73,1,138,1,84,1,233,1,213,2,33,3,61,3,77,3,241,2,165,2, +128,2,207,1,230,0,96,0,150,255,57,254,36,253,165,252,128,252,248,252,255,253,199,254,25,255,168,255,182,0,149,1, +145,1,222,0,54,0,223,255,158,255,99,255,62,255,252,254,127,254,37,254,87,254,218,254,30,255,49,255,154,255,40,0, +48,0,6,0,125,0,60,1,118,1,129,1,230,1,47,2,246,1,135,1,7,1,101,0,196,255,245,254,212,253,52,253, +191,253,156,254,220,254,0,255,185,255,200,0,207,1,160,2,194,2,233,1,184,0,10,0,235,255,205,255,117,255,47,255, +88,255,230,255,139,0,29,1,149,1,169,1,30,1,136,0,160,0,200,0,7,0,62,255,223,255,77,1,14,2,31,2, +209,1,154,0,190,254,176,253,224,253,56,254,250,253,192,253,96,254,107,255,163,255,58,255,127,255,45,0,19,0,203,255, +115,0,83,1,137,1,113,1,59,1,205,0,132,0,76,0,196,255,127,255,227,255,32,0,234,255,0,0,146,0,63,1, +229,1,15,2,53,1,237,255,102,255,204,255,58,0,226,255,213,254,222,253,145,253,163,253,161,253,209,253,133,254,11,255, +192,254,127,254,41,255,203,255,121,255,24,255,60,255,13,255,171,254,39,255,66,0,46,1,37,2,4,3,251,2,49,2, +78,1,126,0,83,0,74,1,111,2,241,2,88,3,163,3,8,3,199,1,153,0,128,255,185,254,158,254,147,254,72,254, +86,254,164,254,201,254,82,255,29,0,194,255,123,254,61,254,80,255,88,0,225,0,26,1,177,0,235,255,208,255,111,0, +252,0,96,1,205,1,152,1,90,0,35,255,237,254,19,255,163,254,232,253,192,253,90,254,30,255,163,255,80,0,128,1, +141,2,203,2,139,2,240,1,146,0,234,254,250,253,219,253,64,254,6,255,173,255,247,255,106,0,229,0,178,0,43,0, +238,255,146,255,11,255,8,255,63,255,0,255,154,254,96,254,31,254,100,254,202,255,121,1,79,2,77,2,206,1,30,1, +255,0,200,1,139,2,104,2,186,1,8,1,27,0,237,254,15,254,162,253,102,253,142,253,25,254,111,254,184,254,143,255, +88,0,150,0,98,1,210,2,48,3,101,2,223,1,79,1,4,0,56,255,118,255,147,255,136,255,1,0,55,0,216,255, +23,0,241,0,41,1,13,1,199,1,254,2,121,3,215,2,182,1,223,0,81,0,130,255,126,254,158,253,216,252,111,252, +176,252,220,252,137,252,11,253,16,255,242,0,88,1,24,1,69,1,117,1,167,0,226,254,190,253,158,254,135,0,111,1, +73,1,80,1,92,1,132,0,44,255,59,254,193,253,189,253,100,254,45,255,144,255,55,0,152,1,196,2,33,3,64,3, +76,3,223,2,58,2,132,1,57,0,175,254,32,254,131,254,179,254,107,254,71,254,128,254,209,254,255,254,7,255,16,255, +53,255,145,255,84,0,106,1,101,2,241,2,246,2,150,2,57,2,207,1,197,0,113,255,167,254,17,254,62,253,243,252, +110,253,239,253,139,254,115,255,239,255,72,0,83,1,219,1,246,0,149,0,200,1,189,2,150,2,80,2,2,2,104,1, +0,1,167,0,4,0,171,255,167,255,92,255,74,255,194,255,173,255,233,254,187,254,72,255,214,255,93,0,173,0,96,0, +5,0,247,255,150,255,253,254,241,254,48,255,72,255,133,255,139,255,203,254,70,254,10,255,44,0,139,0,142,0,201,0, +232,0,152,0,47,0,88,0,49,1,164,1,192,0,128,255,98,255,244,255,6,0,153,255,238,254,250,253,150,253,102,254, +70,255,110,255,198,255,95,0,33,0,92,255,255,254,212,254,17,255,134,0,66,2,205,2,181,2,191,2,76,2,57,1, +61,0,110,255,241,254,69,255,248,255,74,0,102,0,94,0,230,255,92,255,20,255,174,254,70,254,140,254,105,255,73,0, +222,0,252,0,196,0,127,0,233,255,233,254,94,254,201,254,112,255,139,255,237,254,43,254,109,254,177,255,58,0,143,255, +106,255,145,0,220,1,113,2,92,2,250,1,243,1,41,2,134,1,66,0,243,255,154,0,202,0,85,0,1,0,191,255, +77,255,23,255,64,255,46,255,209,254,251,254,184,255,226,255,61,255,4,255,149,255,229,255,176,255,147,255,121,255,27,255, +229,254,245,254,211,254,157,254,235,254,125,255,183,255,244,255,250,0,98,2,16,3,224,2,110,2,209,1,17,1,229,0, +149,1,83,2,107,2,9,2,162,1,96,1,26,1,188,0,148,0,148,0,17,0,37,255,209,254,16,255,254,254,203,254, +33,255,139,255,138,255,164,255,32,0,92,0,243,255,69,255,215,254,199,254,196,254,178,254,236,254,156,255,184,0,87,2, +212,3,239,3,179,2,64,1,3,0,23,255,212,254,179,254,39,254,34,254,30,255,182,255,69,255,226,254,16,255,87,255, +166,255,63,0,78,1,174,2,100,3,154,2,62,1,172,0,145,0,5,0,72,255,226,254,182,254,155,254,95,254,130,253, +34,252,96,251,1,252,124,253,184,254,70,255,200,255,3,1,168,2,213,3,166,4,166,5,92,6,252,5,175,4,9,3, +79,1,181,255,78,254,247,252,244,251,242,251,19,253,154,254,188,255,72,0,140,0,245,0,165,1,16,2,169,1,249,0, +177,0,87,0,136,255,16,255,45,255,245,254,57,254,146,253,44,253,32,253,156,253,48,254,106,254,127,254,184,254,125,255, +40,1,14,3,66,4,10,5,205,5,245,5,3,5,63,3,56,1,158,255,226,254,178,254,170,254,235,254,128,255,19,0, +93,0,85,0,64,0,138,0,49,1,172,1,184,1,132,1,43,1,165,0,6,0,82,255,137,254,232,253,161,253,146,253, +160,253,212,253,40,254,178,254,164,255,190,0,122,1,220,1,76,2,213,2,25,3,238,2,155,2,72,2,159,1,120,0, +96,255,219,254,192,254,197,254,8,255,182,255,113,0,134,0,231,255,71,255,36,255,124,255,49,0,237,0,131,1,43,2, +137,2,40,2,192,1,152,1,141,0,247,254,145,254,249,254,249,254,26,255,84,255,138,254,162,253,43,254,111,255,75,0, +170,0,118,0,92,0,123,1,187,2,97,2,61,1,141,0,232,255,96,255,100,255,244,254,5,254,73,254,62,255,231,254, +82,254,87,255,118,0,82,0,104,0,69,1,188,1,209,1,157,1,86,0,214,254,194,254,131,255,253,255,130,0,65,1, +207,1,205,1,140,0,62,254,212,252,84,253,187,254,61,0,174,1,125,2,152,2,168,2,115,2,34,1,79,255,179,254, +129,255,22,0,194,255,117,255,67,255,96,254,67,253,208,252,186,252,179,252,26,253,213,253,85,254,104,254,107,254,249,254, +235,255,55,0,213,255,251,255,213,0,107,1,152,1,240,1,129,2,157,2,173,1,107,0,135,0,12,2,16,3,143,2, +88,1,60,0,136,255,118,255,185,255,195,255,168,255,218,255,133,0,128,1,63,2,75,2,204,1,2,1,241,255,18,255, +188,254,82,254,198,253,236,253,103,254,105,254,162,254,30,255,151,254,184,253,34,254,8,255,111,255,35,0,243,0,247,0, +16,1,220,1,81,2,60,2,38,2,182,1,231,0,95,0,35,0,14,0,73,0,128,0,65,0,187,255,121,255,222,255, +175,0,88,1,190,1,199,1,67,1,244,0,92,1,70,1,5,0,199,254,100,254,159,254,1,255,0,255,224,254,112,255, +38,0,48,0,33,0,36,0,154,255,229,254,98,254,188,253,154,253,111,254,10,255,6,255,37,255,40,255,234,254,38,255, +113,255,63,255,215,255,179,1,236,2,156,2,39,2,94,2,112,2,186,1,209,0,165,0,66,1,157,1,2,1,47,0, +60,0,196,0,178,0,93,0,203,0,105,1,228,0,175,255,106,255,34,0,104,0,11,0,19,0,89,0,44,0,60,0, +200,0,116,0,88,255,27,255,101,255,194,254,169,253,234,252,93,252,138,252,186,253,142,254,172,254,162,255,60,1,141,1, +236,0,46,1,236,1,209,1,113,1,155,1,207,1,189,1,128,1,23,1,86,1,147,2,225,2,72,1,170,255,7,255, +178,254,32,255,189,0,67,2,211,2,137,2,139,1,143,0,255,255,33,255,0,254,88,253,188,252,7,252,26,252,222,252, +210,253,22,255,235,255,135,255,193,254,44,254,98,253,3,253,211,253,31,255,71,0,95,1,17,2,45,2,51,2,72,2, +4,2,110,1,8,1,248,0,248,0,11,1,67,1,90,1,104,1,189,1,229,1,184,1,220,1,220,1,205,0,184,255, +144,255,58,255,117,254,133,254,38,255,8,255,108,254,120,254,83,255,14,0,220,255,58,255,27,255,80,255,73,255,30,255, +12,255,61,255,137,255,9,255,185,253,50,253,216,253,41,254,186,253,191,253,212,254,118,0,211,1,76,2,5,2,193,1, +181,1,70,1,122,0,114,0,112,1,5,2,131,1,12,1,35,1,22,1,207,0,170,0,125,0,101,0,212,0,139,1, +202,1,84,1,173,0,59,0,102,255,216,253,194,252,218,252,45,253,102,253,84,254,207,255,253,0,142,1,73,1,101,0, +217,255,198,255,81,255,119,254,176,253,216,252,118,252,185,253,248,255,77,1,236,1,29,3,232,3,218,2,14,1,1,0, +154,255,228,255,247,0,172,1,144,1,173,1,34,2,23,2,137,1,198,0,164,255,60,254,51,253,248,252,29,253,70,253, +136,254,66,1,29,3,175,2,166,1,243,0,213,255,142,254,145,253,0,253,18,254,164,0,18,2,178,1,103,1,136,1, +12,1,196,255,29,254,253,252,2,253,111,253,189,253,104,254,98,255,110,0,152,1,24,2,146,1,242,0,44,0,200,254, +226,253,254,253,49,254,158,254,172,255,105,0,140,0,207,0,20,1,238,0,120,0,192,255,48,255,124,255,133,0,157,1, +47,2,191,1,174,0,10,0,240,255,165,255,237,254,11,254,103,253,103,253,227,253,89,254,176,254,24,255,179,255,120,0, +216,0,99,0,203,255,192,255,115,255,90,254,250,253,150,255,189,1,133,2,46,2,192,1,52,1,53,0,239,254,175,253, +240,252,136,253,168,255,246,1,197,2,73,2,17,2,122,2,165,2,30,2,2,1,6,0,9,0,74,0,163,255,100,255, +152,0,46,1,41,0,107,255,119,255,69,255,244,254,169,254,61,254,65,254,90,254,186,253,168,253,69,255,53,1,44,2, +115,2,189,2,134,3,11,4,220,2,191,0,163,255,137,255,174,255,9,0,96,0,166,0,253,0,167,0,129,255,195,254, +206,254,21,255,102,255,98,255,45,255,235,255,45,1,39,1,19,0,98,255,253,254,110,254,65,254,228,254,1,0,226,0, +231,0,12,0,246,254,95,254,97,254,129,254,186,254,138,255,133,0,247,0,107,1,32,2,18,2,58,1,201,0,211,0, +129,0,199,255,111,255,41,0,112,1,210,1,50,1,232,0,27,1,138,0,26,255,22,254,42,254,213,254,155,255,130,0, +58,1,51,1,188,0,142,0,129,0,31,0,141,255,8,255,175,254,170,254,236,254,95,255,23,0,205,0,7,1,230,0, +212,0,190,0,87,0,218,255,147,255,16,255,97,254,244,254,214,0,190,1,14,1,143,0,135,0,35,0,249,255,50,0, +3,0,15,0,252,0,138,1,31,1,119,0,90,255,123,253,54,252,165,252,249,253,220,254,71,255,60,0,191,1,103,2, +188,1,240,0,178,0,128,0,23,0,206,255,193,255,166,255,79,255,24,255,120,255,61,0,124,0,161,255,114,254,18,254, +64,254,141,254,175,255,62,1,156,1,108,1,78,2,31,3,98,2,23,1,89,0,30,0,45,0,235,255,121,255,60,0, +199,1,1,2,1,1,114,0,142,0,138,0,203,255,156,254,95,254,63,255,208,255,28,0,233,0,45,1,121,0,62,0, +142,0,40,0,84,255,9,255,74,255,179,255,235,255,194,255,179,255,76,0,47,1,84,1,98,0,65,255,190,254,164,254, +221,254,112,255,188,255,221,255,154,0,16,1,44,0,59,255,99,255,209,255,18,0,88,0,65,0,251,255,48,0,123,0, +116,0,142,0,218,0,17,1,51,1,12,1,167,0,157,0,179,0,60,0,191,255,194,255,151,255,82,255,231,255,182,0, +99,0,129,255,80,255,147,255,167,255,160,255,163,255,198,255,40,0,164,0,52,1,159,1,229,0,4,255,152,253,61,253, +83,253,241,253,253,254,165,255,31,0,193,0,186,0,1,0,119,255,42,255,42,255,221,255,166,0,1,1,104,1,193,1, +139,1,0,1,98,0,206,255,104,255,241,254,185,254,103,255,250,255,139,255,128,255,115,0,243,0,178,0,123,0,76,0, +69,0,165,0,221,0,168,0,79,0,228,255,170,255,144,255,48,255,45,255,238,255,101,0,148,0,21,1,176,0,103,255, +130,255,155,0,144,0,108,0,89,1,98,1,224,255,235,254,253,254,214,254,149,254,7,255,206,255,110,0,64,1,41,2, +64,2,145,1,18,1,182,0,42,0,46,0,207,0,220,0,124,0,231,0,227,1,122,2,126,2,239,1,217,0,241,255, +230,255,141,0,58,1,64,1,113,0,110,255,27,255,137,255,210,255,111,255,7,255,87,255,10,0,145,0,6,1,84,1, +184,0,67,255,122,254,24,255,227,255,230,255,169,255,136,255,97,255,128,255,5,0,184,0,140,1,231,1,80,1,194,0, +202,0,166,0,114,0,65,0,251,254,181,253,206,254,211,0,21,1,144,0,188,0,248,0,14,1,231,0,176,255,81,254, +119,254,109,255,239,255,57,0,131,0,175,0,11,1,71,1,126,0,16,255,102,254,216,254,69,255,246,254,157,254,7,255, +224,255,52,0,180,255,100,255,70,0,94,1,48,1,136,0,218,0,177,1,243,1,86,1,75,0,196,255,214,255,105,255, +225,254,160,255,233,0,113,1,181,1,208,1,27,1,74,0,37,0,90,0,217,0,102,1,56,1,195,0,241,0,26,1, +115,0,130,255,209,254,80,254,252,253,231,253,47,254,237,254,199,255,42,0,245,255,140,255,88,255,109,255,174,255,221,255, +145,255,241,254,196,254,234,254,148,254,72,254,2,255,60,0,8,1,95,1,160,1,15,2,75,2,175,1,225,0,215,0, +168,0,167,255,87,255,94,0,49,1,38,1,59,1,233,1,114,2,201,1,15,0,11,255,183,255,179,0,231,0,9,1, +73,1,174,0,62,255,236,253,224,252,13,252,226,251,70,252,205,252,160,253,119,254,165,254,6,255,168,0,79,2,169,2, +146,2,197,2,149,2,156,1,111,0,252,255,153,0,64,1,3,1,132,0,118,0,183,0,38,1,64,1,157,0,16,0, +7,0,249,255,100,0,144,1,20,2,168,1,112,1,59,1,173,0,129,0,100,0,149,255,241,254,82,255,48,0,180,0, +88,0,100,255,189,254,104,254,0,254,216,253,231,253,210,253,218,253,246,253,33,254,29,255,116,0,214,0,248,0,197,1, +62,2,239,1,69,1,255,255,192,254,150,254,167,254,133,254,122,255,36,1,10,2,135,2,249,2,169,2,24,2,9,2, +150,1,95,0,181,255,38,0,169,0,167,0,228,0,196,1,19,2,254,0,175,255,38,255,203,254,93,254,148,254,104,255, +14,0,64,0,83,0,145,0,222,0,233,0,188,0,143,0,110,0,146,0,254,0,0,1,126,0,111,0,211,0,184,0, +87,0,42,0,115,255,103,254,123,254,67,255,89,255,122,255,77,0,92,0,91,255,215,254,36,255,217,255,15,1,229,1, +88,1,98,0,42,0,97,0,149,0,162,0,163,0,241,0,255,0,62,0,223,255,102,0,65,0,95,255,76,255,196,255, +2,0,152,0,47,1,206,0,75,0,151,0,204,0,38,0,51,255,156,254,135,254,193,254,197,254,87,254,25,254,186,254, +152,255,183,255,155,255,230,255,202,255,56,255,98,255,7,0,57,0,143,0,87,1,168,1,102,1,237,0,68,0,28,0, +188,0,10,1,179,0,126,0,131,0,158,0,176,0,233,255,113,254,203,253,36,254,77,254,59,254,178,254,136,255,7,0, +40,0,115,0,231,0,25,1,64,1,113,1,19,1,122,0,103,0,3,0,148,254,41,253,98,252,57,252,72,253,243,254, +131,255,128,255,140,0,3,2,94,2,168,1,255,0,50,1,199,1,139,1,157,0,21,0,249,255,196,255,153,255,158,255, +186,255,220,255,230,255,240,255,31,0,38,0,4,0,50,0,124,0,40,0,61,255,128,254,175,254,160,255,57,0,70,0, +158,0,18,1,15,1,57,1,182,1,198,1,200,1,218,1,200,0,48,255,231,254,4,255,71,254,87,254,208,255,161,0, +111,0,146,0,206,0,170,0,162,0,77,0,35,255,12,254,121,253,240,252,186,252,26,253,170,253,194,254,114,0,68,1, +194,0,95,0,171,0,205,0,82,0,118,255,220,254,15,255,143,255,182,255,222,255,59,0,95,0,83,0,75,0,40,0, +55,0,216,0,170,1,32,2,52,2,26,2,204,1,24,1,62,0,178,255,16,255,38,254,244,253,152,254,217,254,208,254, +100,255,255,255,233,255,143,255,55,255,251,254,214,254,41,254,86,253,174,253,149,254,253,254,224,255,48,1,33,1,106,0, +249,0,196,1,98,1,212,0,158,0,8,0,157,255,26,0,120,0,12,0,5,0,242,0,139,1,79,1,83,1,183,1, +136,1,12,1,13,1,10,1,152,0,133,0,49,1,190,1,58,1,213,255,21,255,215,255,121,0,102,255,246,253,225,253, +115,254,193,254,94,255,111,0,62,1,204,1,47,2,191,1,176,0,51,0,51,0,205,255,105,255,151,255,215,255,61,0, +49,1,188,1,15,1,255,255,84,255,40,255,140,255,239,255,231,255,41,0,197,0,239,0,251,0,68,1,26,1,235,0, +151,1,7,2,83,1,138,0,81,0,67,0,82,0,73,0,245,255,242,255,74,0,73,0,47,0,105,0,79,0,176,255, +64,255,18,255,231,254,31,255,198,255,24,0,206,255,174,255,51,0,209,0,44,1,95,1,225,0,158,255,50,255,18,0, +116,0,18,0,87,0,206,0,150,0,159,0,12,1,6,1,78,1,45,2,3,2,232,0,147,0,208,0,213,0,17,1, +27,1,69,0,169,255,250,255,63,0,0,0,105,255,114,254,184,253,202,253,244,253,160,253,32,253,224,252,120,253,223,254, +137,255,212,254,116,254,92,255,74,0,94,0,55,0,117,0,216,0,226,0,176,0,184,0,10,1,136,1,252,1,155,1, +54,0,251,254,134,254,87,254,124,254,41,255,15,0,20,1,185,1,51,1,98,0,93,0,98,0,77,0,16,1,179,1, +34,1,161,0,146,0,215,255,6,255,225,254,120,254,248,253,123,254,98,255,37,0,107,1,132,2,80,2,128,1,213,0, +8,0,115,255,112,255,77,255,0,255,114,255,104,0,209,0,216,0,51,1,73,1,94,0,74,255,11,255,62,255,110,255, +205,255,76,0,2,1,64,2,67,3,47,3,188,2,109,2,109,1,219,255,19,255,102,255,23,0,131,0,47,0,110,255, +76,255,196,255,12,0,104,0,91,1,29,2,204,1,192,0,224,255,179,255,41,0,183,0,219,0,131,0,214,255,254,254, +66,254,225,253,203,253,231,253,35,254,97,254,239,254,82,0,204,1,245,1,49,1,229,0,224,0,111,0,224,255,47,255, +91,254,191,254,130,0,140,1,108,1,197,1,90,2,192,1,154,0,37,0,4,0,140,255,251,254,224,254,114,255,48,0, +128,0,176,0,67,1,189,1,91,1,77,0,100,255,14,255,28,255,88,255,183,255,1,0,56,0,165,0,211,0,68,0, +247,255,168,0,35,1,157,0,221,255,85,255,43,255,187,255,94,0,72,0,20,0,56,0,98,0,170,0,197,0,34,0, +177,255,30,0,52,0,208,255,39,0,173,0,116,0,77,0,151,0,211,0,111,1,94,2,51,2,122,0,84,254,253,252, +33,253,60,254,14,255,117,255,15,0,187,0,27,1,18,1,118,0,141,255,226,254,148,254,204,254,175,255,212,0,239,1, +182,2,91,2,38,1,90,0,196,255,202,254,83,254,195,254,53,255,145,255,15,0,68,0,74,0,92,0,76,0,147,0, +46,1,206,0,188,255,202,255,228,0,232,1,155,2,102,2,43,1,130,0,209,0,168,0,19,0,255,255,212,255,67,255, +51,255,149,255,129,255,245,254,164,254,229,254,104,255,210,255,118,0,83,1,85,1,30,0,204,254,31,254,239,253,19,254, +84,254,131,254,224,254,160,255,192,0,214,1,206,1,115,0,71,255,28,255,73,255,180,255,138,0,38,1,111,1,196,1, +164,1,10,1,235,0,250,0,74,0,131,255,134,255,229,255,19,0,242,255,123,255,44,255,118,255,229,255,13,0,8,0, +163,255,222,254,170,254,154,255,174,0,184,0,14,0,193,255,214,255,149,255,35,255,61,255,218,255,104,0,195,0,0,1, +244,0,144,0,45,0,29,0,63,0,93,0,141,0,169,0,38,0,59,255,255,254,206,255,190,0,223,0,50,0,118,255, +48,255,33,255,28,255,132,255,40,0,40,0,128,255,1,255,228,254,235,254,26,255,52,255,218,254,137,254,2,255,193,255, +216,255,196,255,27,0,246,255,43,255,89,255,146,0,237,0,95,0,82,0,102,0,244,255,219,255,45,0,226,255,60,255, +16,255,56,255,142,255,56,0,207,0,225,0,127,0,36,0,103,0,28,1,122,1,139,1,190,1,166,1,250,0,53,0, +123,255,221,254,208,254,64,255,172,255,249,255,17,0,237,255,173,255,29,255,140,254,253,254,238,255,226,255,101,255,169,255, +244,255,153,255,76,255,76,255,58,255,23,255,244,254,245,254,101,255,35,0,236,0,133,1,137,1,119,1,28,2,120,2, +164,1,246,0,9,1,153,0,186,255,110,255,64,255,186,254,91,254,50,254,62,254,207,254,141,255,44,0,189,0,164,0, +235,255,215,255,59,0,185,255,201,254,183,254,85,255,250,255,98,0,77,0,200,255,35,255,145,254,101,254,151,254,168,254, +178,254,242,254,61,255,241,255,32,1,148,1,33,1,246,0,216,0,46,0,16,0,216,0,79,1,94,1,146,1,111,1, +232,0,180,0,193,0,177,0,167,0,141,0,57,0,199,255,76,255,250,254,245,254,5,255,77,255,37,0,26,1,204,1, +89,2,46,2,238,0,164,255,238,254,73,254,218,253,3,254,109,254,48,255,113,0,37,1,208,0,102,0,24,0,65,255, +91,254,81,254,247,254,190,255,166,0,168,1,67,2,34,2,159,1,252,0,17,0,79,255,138,255,77,0,138,0,111,0, +119,0,37,0,81,255,195,254,189,254,203,254,200,254,212,254,214,254,192,254,210,254,76,255,5,0,112,0,56,0,200,255, +208,255,55,0,48,0,166,255,112,255,169,255,119,255,205,254,126,254,194,254,51,255,144,255,188,255,219,255,81,0,3,1, +98,1,108,1,146,1,235,1,77,2,164,2,182,2,33,2,9,1,56,0,234,255,109,255,188,254,195,254,112,255,196,255, +209,255,51,0,125,0,14,0,46,255,166,254,244,254,156,255,152,255,255,254,217,254,89,255,9,0,162,0,188,0,61,0, +185,255,66,255,142,254,53,254,175,254,69,255,134,255,232,255,144,0,11,1,33,1,60,1,167,1,180,1,233,0,64,0, +43,0,158,255,189,254,191,254,51,255,68,255,178,255,197,0,114,1,71,1,134,0,160,255,89,255,154,255,135,255,84,255, +159,255,37,0,212,0,174,1,239,1,119,1,217,0,236,255,202,254,89,254,126,254,177,254,74,255,30,0,145,0,247,0, +75,1,227,0,72,0,82,0,147,0,182,0,255,0,63,1,67,1,250,0,27,0,33,255,240,254,71,255,132,255,163,255, +123,255,21,255,20,255,133,255,6,0,208,0,204,1,61,2,186,1,76,0,186,254,85,254,238,254,35,255,1,255,79,255, +174,255,215,255,3,0,241,255,214,255,62,0,101,0,135,255,131,254,70,254,190,254,90,255,99,255,63,255,40,0,83,1, +23,1,106,0,175,0,242,0,149,0,97,0,8,0,17,255,134,254,222,254,27,255,234,254,226,254,57,255,210,255,146,0, +37,1,17,1,84,0,217,255,72,0,223,0,204,0,93,0,199,255,245,254,152,254,14,255,104,255,46,255,2,255,44,255, +138,255,25,0,171,0,19,1,119,1,212,1,240,1,167,1,241,0,24,0,166,255,134,255,47,255,146,254,23,254,18,254, +125,254,205,254,182,254,223,254,214,255,2,1,120,1,18,1,100,0,48,0,114,0,97,0,1,0,111,0,163,1,243,1, +201,0,177,255,167,255,176,255,22,255,145,254,157,254,247,254,122,255,217,255,184,255,190,255,128,0,20,1,190,0,74,0, +56,0,251,255,125,255,80,255,149,255,219,255,246,255,92,0,64,1,207,1,59,1,216,255,139,254,235,253,10,254,130,254, +37,255,21,0,177,0,105,0,20,0,80,0,145,0,230,0,76,1,184,0,154,255,176,255,138,0,171,0,77,0,230,255, +169,255,95,0,93,1,232,0,204,255,156,255,145,255,37,255,69,255,174,255,155,255,106,255,90,255,120,255,9,0,56,0, +79,255,148,254,214,254,31,255,15,255,38,255,124,255,27,0,187,0,191,0,151,0,167,0,16,0,3,255,235,254,119,255, +146,255,140,255,160,255,123,255,193,255,223,0,2,2,182,2,5,3,84,2,136,0,0,255,207,254,89,255,154,255,182,255, +8,0,216,255,231,254,126,254,5,255,87,255,59,255,74,255,95,255,128,255,230,255,198,255,237,254,141,254,21,255,55,0, +205,1,143,2,118,1,26,0,198,255,65,255,32,254,129,253,82,253,35,253,142,253,161,254,182,255,166,0,93,1,196,1, +4,2,222,1,80,1,29,1,37,1,174,0,84,0,143,0,111,0,190,255,40,255,120,254,173,253,147,253,231,253,236,253, +246,253,81,254,203,254,129,255,35,0,0,0,155,255,201,255,43,0,69,0,34,0,201,255,154,255,207,255,166,255,19,255, +62,255,213,255,102,255,109,254,80,254,219,254,96,255,225,255,58,0,108,0,233,0,154,1,56,2,255,2,136,3,241,2, +142,1,33,0,144,254,24,253,156,252,14,253,163,253,21,254,74,254,98,254,15,255,63,0,166,0,228,255,46,255,66,255, +171,255,245,255,36,0,44,0,234,255,143,255,144,255,237,255,232,255,50,255,178,254,32,255,188,255,164,255,68,255,77,255, +154,255,23,0,6,1,195,1,58,1,231,255,67,255,106,255,70,255,157,254,92,254,1,255,184,255,161,255,85,255,197,255, +76,0,231,255,42,255,240,254,240,254,212,254,160,254,49,254,10,254,17,255,166,0,63,1,192,0,57,0,63,0,134,0, +104,0,191,255,51,255,44,255,82,255,101,255,98,255,55,255,69,255,249,255,170,0,135,0,254,255,212,255,228,255,172,255, +47,255,230,254,20,255,114,255,185,255,27,0,173,0,226,0,104,0,203,255,160,255,188,255,192,255,194,255,210,255,186,255, +201,255,103,0,250,0,185,0,249,255,86,255,239,254,245,254,76,255,96,255,88,255,186,255,47,0,131,0,31,1,156,1, +82,1,215,0,181,0,132,0,62,0,4,0,74,255,39,254,179,253,67,254,246,254,16,255,143,254,235,253,164,253,245,253, +211,254,175,255,200,255,123,255,196,255,97,0,152,0,218,0,98,1,88,1,172,0,67,0,58,0,32,0,235,255,158,255, +43,255,188,254,123,254,145,254,33,255,169,255,126,255,6,255,49,255,17,0,248,0,90,1,5,1,73,0,1,0,137,0, +3,1,157,0,213,255,93,255,15,255,223,254,21,255,71,255,239,254,115,254,82,254,144,254,61,255,34,0,183,0,238,0, +215,0,79,0,221,255,252,255,254,255,182,255,3,0,183,0,12,1,76,1,91,1,99,0,62,255,71,255,159,255,20,255, +99,254,109,254,27,255,64,0,101,1,203,1,138,1,42,1,158,0,189,255,211,254,76,254,83,254,143,254,122,254,80,254, +177,254,120,255,241,255,187,255,236,254,67,254,142,254,66,255,79,255,32,255,139,255,38,0,178,0,199,1,10,3,129,3, +52,3,85,2,181,0,38,255,131,254,37,254,180,253,210,253,43,254,157,254,109,0,206,2,215,2,212,0,157,255,94,255, +191,254,68,254,103,254,100,254,40,254,63,254,180,254,64,255,75,255,149,254,47,254,178,254,48,255,119,255,38,0,161,0, +74,0,208,255,147,255,155,255,112,0,171,1,60,2,93,2,139,2,106,2,222,1,214,0,63,255,70,254,164,254,191,254, +226,253,193,253,232,254,34,0,233,0,229,0,126,255,186,253,66,253,203,253,16,254,20,254,193,254,60,0,107,1,163,1, +210,1,117,2,73,2,234,0,228,255,239,255,31,0,231,255,144,255,73,255,246,254,140,254,106,254,226,254,137,255,251,255, +170,0,208,1,189,2,196,2,211,1,101,0,51,255,116,254,19,254,80,254,5,255,164,255,49,0,92,0,89,255,28,254, +46,254,171,254,108,254,126,254,95,255,33,0,197,0,143,1,0,2,49,2,53,2,109,1,100,0,22,0,193,255,241,254, +186,254,24,255,22,255,224,254,225,254,35,255,209,255,85,0,243,255,122,255,150,255,162,255,161,255,217,255,178,255,147,255, +85,0,204,0,25,0,181,255,93,0,223,0,122,0,78,255,49,254,136,254,252,255,152,0,65,0,111,0,52,1,199,1, +229,1,120,1,225,0,130,0,198,255,181,254,124,254,13,255,79,255,58,255,36,255,242,254,3,255,139,255,0,0,69,0, +105,0,250,255,86,255,98,255,146,255,254,254,55,254,40,254,228,254,39,0,162,1,229,2,117,3,17,3,56,2,175,1, +89,1,206,0,69,0,203,255,81,255,73,255,112,255,227,254,36,254,4,254,223,253,160,253,59,254,39,255,83,255,101,255, +189,255,111,255,182,254,196,254,129,255,70,0,242,0,85,1,60,1,207,0,245,255,149,254,60,253,126,252,102,252,221,252, +162,253,62,254,140,254,239,254,190,255,141,0,150,0,22,0,18,0,164,0,17,1,75,1,105,1,247,0,29,0,121,255, +153,254,50,253,191,252,42,254,211,255,20,0,129,255,56,255,73,255,123,255,219,255,96,0,14,1,2,2,19,3,232,3, +15,4,227,2,148,0,182,254,34,254,195,253,240,252,155,252,57,253,14,254,164,254,17,255,140,255,69,0,172,0,253,255, +6,255,68,255,131,0,145,1,246,1,144,1,125,0,176,255,190,255,223,255,60,255,43,254,175,253,63,254,19,255,59,255, +35,255,156,255,48,0,67,0,102,0,241,0,35,1,134,0,150,255,201,254,35,254,169,253,144,253,240,253,134,254,13,255, +153,255,75,0,221,0,246,0,150,0,7,0,164,255,127,255,69,255,225,254,247,254,229,255,251,0,168,1,70,2,153,2, +137,1,98,255,244,253,222,253,22,254,23,254,72,254,2,255,61,0,106,1,219,1,161,1,14,1,39,0,145,255,210,255, +243,255,110,255,90,255,165,255,227,254,174,253,187,253,179,254,110,255,249,255,139,0,1,1,100,1,130,1,31,1,92,0, +50,255,254,253,249,253,55,255,66,0,120,0,18,0,236,254,155,253,76,253,161,253,155,253,168,253,124,254,226,255,85,1, +35,2,219,1,47,1,181,0,232,255,238,254,6,255,109,0,220,1,246,1,118,0,191,254,128,254,72,255,91,255,183,254, +151,254,11,255,95,255,127,255,131,255,96,255,122,255,57,0,32,1,56,1,82,0,115,255,141,255,21,0,238,255,107,255, +143,255,249,255,243,255,23,0,162,0,128,0,144,255,26,255,94,255,86,255,138,254,156,253,154,253,184,254,195,255,49,0, +46,1,194,2,49,3,79,2,163,1,111,1,238,0,12,0,2,255,48,254,33,254,174,254,106,255,101,0,57,1,32,1, +130,0,71,0,62,0,210,255,53,255,9,255,144,255,74,0,128,0,73,0,49,0,90,0,165,0,198,0,79,0,110,255, +202,254,144,254,161,254,185,254,61,254,140,253,43,254,10,0,86,1,133,1,81,1,152,0,53,255,15,254,195,253,3,254, +112,254,2,255,243,255,75,1,80,2,130,2,143,2,165,2,167,1,127,255,18,254,148,254,217,255,106,0,139,0,4,1, +95,1,255,0,118,0,11,0,42,255,84,254,159,254,121,255,2,0,181,0,148,1,154,1,191,0,199,255,30,255,0,255, +12,255,113,254,162,253,139,253,211,253,78,254,134,255,184,0,209,0,178,0,104,1,84,2,138,2,232,1,237,0,71,0, +10,0,244,255,78,0,253,0,35,1,173,0,69,0,40,0,89,0,141,0,45,0,168,255,187,255,180,255,39,255,5,255, +121,255,221,255,82,0,175,0,95,0,233,255,195,255,106,255,40,255,136,255,209,255,194,255,246,255,249,255,79,255,197,254, +169,254,127,254,70,254,239,253,136,253,16,254,147,255,188,0,119,1,109,2,216,2,63,2,161,1,72,1,124,0,62,255, +46,254,221,253,76,254,172,254,217,254,158,255,94,0,241,255,151,255,168,0,158,1,221,0,74,255,157,254,122,255,207,0, +12,1,176,0,241,0,220,0,211,255,153,255,123,0,159,0,234,255,113,255,30,255,10,255,188,255,71,0,154,255,135,254, +134,254,162,255,89,0,172,255,206,254,38,255,1,0,61,0,246,255,115,255,236,254,182,254,119,254,217,253,147,253,27,254, +253,254,254,255,253,0,158,1,213,1,169,1,1,1,97,0,98,0,170,0,202,0,26,1,202,1,95,2,178,2,56,3, +198,3,135,3,178,2,56,2,179,1,81,0,212,254,22,254,161,253,66,253,106,253,243,253,123,254,245,254,45,255,8,255, +215,254,207,254,223,254,204,254,129,254,137,254,57,255,197,255,183,255,215,255,125,0,5,1,13,1,139,0,181,255,101,255, +242,255,64,0,154,255,58,255,134,0,236,2,190,4,23,5,76,4,55,3,83,2,70,1,214,255,216,254,192,254,173,254, +73,254,35,254,0,254,155,253,183,253,62,254,57,254,8,254,113,254,188,254,82,254,219,253,233,253,127,254,124,255,114,0, +237,0,22,1,102,1,211,1,143,1,18,0,68,254,138,253,39,254,131,255,17,1,89,2,24,3,80,3,251,2,27,2, +231,0,226,255,154,255,212,255,211,255,199,255,68,0,191,0,176,0,134,0,76,0,167,255,10,255,243,254,4,255,212,254, +154,254,224,254,168,255,38,0,26,0,89,0,233,0,224,0,105,0,57,0,14,0,177,255,120,255,60,255,183,254,73,254, +90,254,251,254,219,255,94,0,127,0,215,0,76,1,86,1,43,1,19,1,174,0,14,0,238,255,136,0,89,1,209,1, +187,1,114,1,89,1,24,1,76,0,141,255,134,255,224,255,5,0,232,255,187,255,157,255,128,255,92,255,118,255,186,255, +181,255,228,255,194,0,41,1,137,0,69,0,104,0,164,255,239,254,139,255,7,0,151,255,160,255,34,0,16,0,245,255, +71,0,85,0,57,0,144,0,231,0,190,0,130,0,176,0,41,1,101,1,245,0,241,255,7,255,217,254,47,255,108,255, +190,255,94,0,121,0,233,255,220,255,66,0,240,255,43,255,201,254,159,254,211,254,208,255,183,0,155,0,9,0,233,255, +71,0,191,0,11,1,232,0,37,0,88,255,95,255,220,255,247,255,29,0,194,0,67,1,73,1,233,0,27,0,137,255, +155,255,120,255,239,254,169,254,115,254,90,254,17,255,249,255,58,0,84,0,114,0,60,0,13,0,3,0,11,0,114,0, +132,0,148,255,245,254,127,255,37,0,115,0,97,0,135,255,221,254,70,255,115,255,214,254,207,254,126,255,254,255,128,0, +32,1,62,1,225,0,167,0,233,0,82,1,27,1,81,0,255,255,133,0,28,1,236,0,237,255,34,255,70,255,119,255, +240,254,87,254,29,254,2,254,41,254,143,254,228,254,126,255,130,0,65,1,126,1,132,1,68,1,177,0,220,255,181,254, +182,253,200,253,215,254,229,255,120,0,222,0,61,1,104,1,131,1,175,1,126,1,177,0,174,255,197,254,50,254,87,254, +14,255,229,255,182,0,26,1,205,0,115,0,104,0,102,0,96,0,14,0,120,255,206,255,228,0,171,0,56,255,55,254, +76,253,46,252,68,252,55,253,135,253,247,253,104,255,164,0,222,0,181,0,176,0,211,0,137,0,127,255,211,254,35,255, +3,255,23,254,56,254,188,255,175,0,117,0,115,0,28,1,94,1,248,0,219,0,54,1,78,1,42,1,63,1,103,1, +143,1,222,1,182,1,171,0,130,255,183,254,242,253,118,253,167,253,233,253,35,254,59,255,222,0,168,1,115,1,216,0, +1,0,106,255,88,255,235,254,38,254,98,254,106,255,178,255,105,255,200,255,118,0,88,0,139,255,5,255,216,254,66,254, +139,253,190,253,134,254,4,255,166,255,174,0,75,1,101,1,110,1,80,1,34,1,251,0,96,0,158,255,75,255,225,254, +95,254,223,254,29,0,195,0,167,0,88,0,34,0,29,0,247,255,129,255,110,255,47,0,7,1,34,1,175,0,111,0, +82,0,161,255,146,254,227,253,147,253,190,253,135,254,13,255,30,255,172,255,71,0,54,0,134,0,87,1,135,1,115,1, +106,1,172,0,228,255,204,255,140,255,135,255,150,0,105,1,86,1,111,1,132,1,43,1,9,1,166,0,102,255,64,254, +141,253,250,252,60,253,110,254,135,255,55,0,170,0,234,0,27,1,251,0,125,0,80,0,66,0,218,255,169,255,125,255, +141,254,133,253,210,252,5,252,229,251,191,252,128,253,131,254,35,0,220,0,220,0,161,1,19,2,114,1,90,1,159,1, +255,0,154,0,45,1,147,1,179,1,223,1,79,1,76,0,37,0,181,0,185,0,134,255,168,253,166,252,93,253,235,254, +21,0,168,0,32,1,201,1,64,2,33,2,185,1,38,1,251,255,133,254,185,253,207,253,56,254,136,254,203,254,46,255, +120,255,120,255,167,255,36,0,72,0,4,0,234,255,31,0,146,0,13,1,5,1,221,0,126,1,48,2,207,1,15,1, +128,0,88,255,1,254,217,253,70,254,244,253,138,253,43,254,91,255,16,0,16,0,206,255,194,255,182,255,72,255,8,255, +137,255,49,0,152,0,29,1,75,1,167,0,73,0,163,0,30,0,103,254,136,253,61,254,31,255,196,255,193,0,88,1, +236,0,207,0,117,1,83,1,121,0,107,0,150,0,12,0,232,255,116,0,179,0,244,0,42,1,110,0,242,255,191,0, +255,0,41,0,243,255,53,0,43,0,130,0,197,0,55,0,238,255,17,0,172,255,112,255,162,255,24,255,97,254,181,254, +112,255,3,0,167,0,221,0,169,0,248,0,175,1,181,1,164,0,111,255,95,255,248,255,192,255,33,255,39,255,65,255, +21,255,10,255,165,254,251,253,22,254,196,254,114,255,81,0,242,0,45,1,190,1,221,1,160,0,197,255,88,0,150,0, +226,255,113,255,94,255,57,255,123,255,89,0,6,1,188,0,207,255,85,255,140,255,215,255,21,0,70,0,32,0,239,255, +13,0,37,0,81,0,1,1,176,1,154,1,253,0,134,0,101,0,30,0,109,255,5,255,83,255,198,255,64,0,242,0, +18,1,4,0,134,254,141,253,85,253,153,253,33,254,45,255,117,0,242,0,221,0,58,1,79,1,43,0,249,254,192,254, +237,254,38,255,156,255,57,0,190,0,164,0,225,255,225,255,59,1,8,2,249,0,102,255,217,254,76,255,35,0,212,0, +234,0,137,0,48,0,186,255,196,254,246,253,42,254,244,254,151,255,18,0,82,0,113,0,43,1,31,2,214,1,163,0, +112,0,115,1,5,2,108,1,192,0,223,0,33,1,212,0,91,0,2,0,211,255,60,0,223,0,154,0,191,255,100,255, +84,255,14,255,196,254,158,254,179,254,246,254,31,255,142,255,130,0,40,1,80,1,83,1,106,0,204,254,100,254,15,255, +58,255,104,255,45,0,110,0,53,0,157,0,88,1,129,1,232,0,246,255,150,255,67,0,83,1,248,1,196,1,240,0, +165,0,18,1,244,0,94,0,67,0,233,255,250,254,203,254,77,255,95,255,91,255,97,255,138,254,115,253,132,253,87,254, +227,254,20,255,81,255,6,0,240,0,194,0,130,255,71,255,154,0,97,1,196,0,81,0,185,0,47,1,163,1,84,2, +117,2,161,1,250,0,62,1,167,1,120,1,14,1,243,0,12,1,4,1,205,0,150,0,117,0,29,0,77,255,162,254, +14,255,124,0,24,2,31,3,179,2,232,0,112,255,236,254,20,254,247,252,233,252,133,253,22,254,76,255,226,0,148,1, +133,1,61,1,113,0,149,255,201,255,24,1,116,2,177,2,136,1,57,0,46,0,9,1,52,1,37,0,47,255,91,255, +169,255,95,255,154,255,156,0,17,1,195,0,101,0,52,0,122,0,254,0,220,0,114,0,146,0,153,0,27,0,169,255, +56,255,156,254,250,253,41,253,172,252,31,253,170,253,31,254,139,255,57,1,200,1,185,1,135,1,242,0,146,0,187,0, +212,0,120,0,82,255,225,253,153,253,18,254,234,253,232,253,212,254,212,255,171,0,239,0,19,0,234,255,55,1,93,1, +70,0,140,0,160,1,2,2,104,2,99,2,47,1,88,0,112,0,78,0,231,255,110,255,197,254,127,254,65,254,107,253, +63,253,7,254,48,254,9,254,168,254,94,255,10,0,31,1,167,1,56,1,212,0,199,0,244,0,54,1,223,0,57,0, +43,0,35,0,204,255,11,0,150,0,182,0,238,0,21,1,190,0,237,0,146,1,0,1,136,255,176,254,106,254,122,254, +59,255,32,0,137,0,178,0,178,0,137,0,144,0,162,0,99,0,17,0,7,0,86,0,168,0,74,0,134,255,149,255, +39,0,223,255,45,255,43,255,77,255,32,255,111,255,54,0,184,0,10,1,72,1,20,1,169,0,68,0,99,255,91,254, +87,254,37,255,161,255,232,255,130,0,164,0,209,255,38,255,38,255,236,254,178,254,112,255,97,0,116,0,79,0,115,0, +172,0,76,1,223,1,127,1,73,1,254,1,170,1,189,255,87,254,236,253,116,253,74,253,195,253,98,254,57,255,33,0, +115,0,96,0,99,0,104,0,81,0,251,255,218,255,226,0,46,2,240,1,234,0,208,0,33,1,198,0,197,255,136,254, +115,253,132,252,237,251,191,252,224,254,175,0,252,1,10,3,218,2,0,2,249,1,151,1,245,255,157,254,218,253,105,253, +148,254,168,0,82,1,39,1,153,1,243,1,177,1,55,1,185,0,147,0,115,0,188,255,134,255,39,0,178,255,45,254, +127,253,122,253,112,253,22,254,60,255,59,0,110,1,117,2,76,2,93,1,186,0,138,0,50,0,127,255,107,255,72,0, +139,0,13,0,125,0,50,1,132,0,176,255,211,255,153,255,194,254,98,254,81,254,97,254,8,255,249,255,202,0,104,1, +65,1,118,0,249,255,140,255,132,254,188,253,10,254,227,254,124,255,129,255,33,255,14,255,110,255,135,255,69,255,109,255, +20,0,179,0,52,1,146,1,132,1,53,1,251,0,179,0,146,0,37,1,220,1,129,1,29,0,163,254,164,253,57,253, +64,253,138,253,68,254,137,255,233,0,211,1,232,1,95,1,29,1,60,1,166,0,89,255,141,254,84,254,39,254,165,254, +255,255,228,0,205,0,180,0,227,0,159,0,3,0,230,255,19,0,164,255,207,254,131,254,227,254,128,255,21,0,141,0, +13,1,119,1,35,1,45,0,193,255,4,0,208,255,23,255,36,255,64,0,29,1,13,1,254,0,132,1,200,1,93,1, +205,0,66,0,192,255,112,255,234,254,61,254,119,254,113,255,31,0,176,0,38,1,188,0,16,0,232,255,113,255,155,254, +104,254,133,254,139,254,53,255,82,0,18,1,132,1,171,1,104,1,30,1,189,0,33,0,166,255,6,255,94,254,20,255, +183,0,73,1,118,1,94,2,62,2,134,0,116,255,93,255,210,254,12,254,185,253,247,253,70,255,0,1,138,1,87,1, +159,1,152,1,156,0,164,255,18,255,153,254,82,254,246,253,173,253,153,254,22,0,60,0,196,255,74,0,177,0,36,0, +48,0,233,0,121,0,27,255,185,254,183,255,5,1,231,1,79,2,25,2,235,0,139,255,103,255,242,255,185,255,117,255, +9,0,77,0,16,0,168,0,205,1,103,2,184,2,214,2,70,2,133,1,235,0,189,255,11,254,248,252,3,253,200,253, +180,254,83,255,104,255,40,255,96,255,132,0,167,1,198,1,64,1,154,0,195,255,72,255,136,255,167,255,148,255,76,0, +54,1,246,0,63,0,60,0,103,0,72,0,62,0,3,0,116,255,146,255,155,0,183,1,187,2,114,3,45,3,163,2, +162,2,2,2,117,0,121,255,194,254,95,253,187,252,127,253,34,254,185,254,32,0,21,1,204,0,111,0,157,0,36,1, +160,1,77,1,160,0,208,0,55,1,213,0,42,0,86,255,167,254,85,255,49,0,14,255,157,253,9,254,198,254,4,255, +61,0,219,1,48,2,254,1,79,2,99,2,154,1,147,0,32,0,55,0,22,0,159,255,97,255,99,255,88,255,43,255, +255,254,144,255,240,0,89,1,84,0,5,0,188,0,133,0,185,255,239,255,94,0,247,255,122,255,160,255,55,0,191,0, +238,0,59,1,150,1,226,0,229,255,121,0,41,1,211,255,31,254,177,253,137,253,217,253,98,255,123,0,133,0,56,1, +88,2,99,2,231,1,126,1,94,0,173,254,137,253,155,253,206,254,243,255,21,0,42,0,177,0,171,0,157,0,121,1, +206,1,39,1,96,1,29,2,143,1,162,0,137,0,81,0,201,255,166,255,148,255,168,255,107,0,233,0,107,0,43,0, +21,1,175,2,3,4,5,4,163,2,37,1,18,0,217,254,156,253,215,252,125,252,180,252,135,253,86,254,1,255,1,0, +87,1,160,2,68,3,176,2,143,1,63,1,176,1,189,1,242,0,216,255,144,255,112,0,18,1,255,0,208,1,93,3, +158,3,251,2,170,2,110,1,81,255,178,254,49,255,233,254,23,255,196,0,171,1,136,0,23,255,239,254,218,255,116,0, +5,0,228,255,195,0,45,1,18,1,155,1,235,1,161,1,13,2,24,2,119,0,129,255,17,0,235,255,210,255,90,1, +6,2,190,0,240,255,162,255,207,254,33,255,175,0,86,1,104,1,204,1,130,1,203,0,178,0,91,0,154,255,184,255, +86,0,83,0,237,255,107,255,193,254,44,254,115,253,203,252,71,253,126,254,32,255,134,255,41,0,139,0,109,1,85,3, +48,4,201,2,253,0,43,0,186,255,67,255,215,254,157,254,36,255,56,0,158,0,55,0,38,0,182,0,63,1,119,1, +99,1,254,0,169,0,230,0,60,1,204,0,9,0,239,255,248,255,163,255,232,255,143,0,247,255,35,255,64,0,190,1, +81,1,115,0,118,0,202,255,45,254,103,253,179,253,63,254,255,254,172,255,217,255,239,255,41,0,101,0,231,0,142,1, +178,1,75,1,159,0,203,255,103,255,183,255,213,255,33,255,12,254,105,253,19,254,212,255,2,1,40,1,202,1,15,3, +99,3,189,2,41,2,118,1,101,0,150,255,14,255,136,254,91,254,48,254,78,253,188,252,179,253,16,255,158,255,68,0, +92,1,131,1,147,0,224,255,152,255,52,255,248,254,241,254,207,254,238,254,91,255,142,255,254,255,16,1,150,1,55,1, +40,1,31,1,251,255,207,254,2,255,191,255,13,0,33,0,34,0,61,0,225,0,238,1,222,2,22,3,46,2,27,1, +5,1,213,0,105,255,241,253,4,253,253,251,235,251,100,253,54,254,224,253,150,254,31,0,166,0,216,0,136,1,149,1, +222,0,81,0,199,255,43,255,26,255,122,255,252,255,125,0,81,0,144,255,144,255,117,0,22,1,64,1,110,1,183,1, +252,1,184,1,179,0,28,0,138,0,143,0,159,255,23,255,68,255,33,255,184,254,186,254,8,255,90,255,211,255,80,0, +75,0,188,255,72,255,61,255,46,255,28,255,119,255,211,255,150,255,63,255,13,255,138,254,60,254,220,254,135,255,102,255, +13,255,199,254,84,254,60,254,38,255,218,0,163,2,217,3,110,4,191,4,93,4,232,2,124,1,184,0,171,255,131,254, +102,254,166,254,91,254,130,254,95,255,179,255,127,255,203,255,150,0,71,1,116,1,255,0,145,0,149,0,87,0,160,255, +26,255,155,254,230,253,212,253,140,254,55,255,188,255,46,0,36,0,6,0,57,0,211,255,220,254,255,254,33,0,110,0, +232,255,227,255,67,0,121,0,237,0,130,1,119,1,85,1,27,2,5,3,236,2,119,2,119,2,44,2,49,1,105,0, +242,255,27,255,110,254,197,254,73,255,247,254,122,254,157,254,183,254,94,254,154,254,227,255,225,0,205,0,180,0,254,0, +172,0,165,255,152,254,136,253,235,252,141,253,117,254,148,254,7,255,57,0,190,0,196,0,158,1,85,2,151,1,119,0, +33,0,59,0,97,0,134,0,155,0,166,0,78,0,112,255,41,255,7,0,205,0,226,0,55,1,51,2,51,3,112,3, +131,2,18,1,18,0,32,255,226,253,131,253,94,254,4,255,240,254,31,255,9,0,8,1,24,1,0,0,19,255,51,255, +129,255,139,255,218,255,1,0,189,255,18,0,185,0,94,0,194,255,31,0,142,0,84,0,49,0,59,0,251,255,190,255, +194,255,204,255,220,255,2,0,65,0,139,0,121,0,21,0,15,0,76,0,108,0,12,1,46,2,188,2,198,2,204,2, +16,2,155,0,160,255,16,255,157,254,251,254,130,255,236,254,102,254,29,255,169,255,70,255,45,255,164,255,226,255,203,255, +145,255,100,255,117,255,90,255,236,254,6,255,206,255,114,0,224,0,92,1,181,1,18,2,122,2,90,2,12,2,106,2, +215,2,120,2,230,1,204,1,9,2,35,2,103,1,241,255,2,255,205,254,85,254,211,253,228,253,235,253,208,253,54,254, +128,254,34,254,20,254,163,254,12,255,114,255,1,0,19,0,253,255,163,0,104,1,62,1,108,0,209,255,204,255,246,255, +173,255,101,255,8,0,242,0,38,1,133,1,19,3,236,4,172,5,227,4,42,3,189,1,2,1,63,0,137,255,84,255, +171,254,61,253,130,252,117,252,210,251,143,251,227,252,98,254,66,255,231,0,61,3,120,4,33,4,234,2,146,1,5,1, +32,1,176,0,219,255,167,255,182,255,78,255,199,254,125,254,116,254,222,254,152,255,117,0,196,1,52,3,200,3,98,3, +118,2,11,1,105,255,28,254,119,253,228,253,8,255,103,255,6,255,160,255,253,0,114,1,106,1,197,1,107,1,233,255, +185,254,136,254,195,254,32,255,85,255,41,255,48,255,175,255,247,255,207,255,190,255,219,255,200,255,89,255,201,254,132,254, +163,254,245,254,175,255,219,0,178,1,179,1,87,1,253,0,114,0,184,255,86,255,223,255,4,1,204,1,81,2,134,3, +174,4,57,4,201,2,210,1,233,0,112,255,33,254,118,253,52,253,84,253,221,253,174,254,125,255,161,255,6,255,145,254, +107,254,14,254,9,254,206,254,85,255,64,255,156,255,210,0,98,2,162,3,164,3,57,2,93,0,189,254,199,253,15,254, +202,254,8,255,13,0,98,2,218,3,240,3,103,4,134,4,150,2,68,0,148,255,115,255,231,254,187,254,228,254,126,254, +211,253,198,253,92,254,224,254,235,254,214,254,9,255,105,255,237,255,149,0,197,0,56,0,203,255,245,255,15,0,199,255, +95,255,229,254,169,254,68,255,72,0,158,0,75,0,43,0,68,0,27,0,226,255,211,255,141,255,56,255,115,255,230,255, +62,0,60,1,158,2,229,2,69,2,222,1,41,1,250,255,200,255,143,0,208,0,123,0,237,255,219,254,26,254,144,254, +55,255,57,255,49,255,104,255,182,255,246,255,152,255,254,254,79,255,214,255,149,255,179,255,99,0,17,0,94,255,189,255, +246,255,61,255,242,254,47,255,54,255,166,255,155,0,126,1,211,2,32,4,153,3,176,1,43,0,35,255,162,254,59,255, +20,0,82,0,110,0,39,0,5,255,68,254,207,254,168,255,242,255,214,255,213,255,55,0,100,0,242,255,250,255,235,0, +91,1,249,0,179,0,31,0,235,254,146,254,127,255,48,0,27,0,42,0,192,0,52,1,225,0,78,0,110,0,197,0, +99,0,209,255,170,255,145,255,134,255,166,255,132,255,96,255,133,255,92,255,51,255,195,255,30,0,241,255,92,0,191,0, +59,0,82,0,241,0,44,0,110,255,120,0,175,0,230,254,31,254,177,254,38,254,37,253,202,253,147,255,194,0,179,0, +127,0,175,1,61,3,48,3,161,2,229,2,117,2,217,0,127,255,94,254,121,253,186,253,243,253,93,253,28,254,21,0, +200,0,234,0,172,1,48,1,182,255,197,255,107,0,229,255,117,255,112,255,178,254,77,254,41,255,223,255,14,0,117,0, +118,0,192,255,92,255,167,255,2,0,242,255,160,255,250,255,42,1,222,1,221,1,44,2,62,2,74,1,89,0,216,255, +51,255,20,255,203,255,61,0,146,0,141,1,25,2,135,1,221,0,57,0,6,255,3,254,23,254,18,255,65,0,211,0, +204,0,55,1,17,2,69,2,240,1,160,1,229,0,203,255,79,255,159,255,208,255,250,254,159,253,191,253,174,255,200,0, +237,255,68,255,182,255,5,0,14,0,102,0,208,0,48,1,111,1,69,1,69,1,158,1,78,1,174,0,229,0,16,1, +146,0,207,0,99,1,125,0,105,255,56,0,62,1,128,0,114,255,196,255,131,0,109,0,34,0,152,0,30,1,210,0, +131,0,211,0,186,0,5,0,179,255,91,255,98,254,15,254,221,254,54,255,144,254,236,253,222,253,165,254,22,0,251,0, +202,0,62,0,160,255,43,255,197,255,242,0,5,1,45,0,230,255,242,255,24,255,216,253,215,253,53,255,124,0,61,1, +57,2,248,2,125,2,182,1,144,1,23,1,60,0,144,0,16,2,82,3,220,3,132,3,74,2,72,1,203,0,172,255, +41,254,163,253,205,253,184,253,173,253,224,253,205,253,103,253,52,253,165,253,166,254,110,255,171,255,37,0,32,1,4,2, +156,2,178,2,185,1,24,0,222,254,92,254,141,254,44,255,46,255,104,254,36,254,167,254,247,254,20,255,144,255,61,0, +225,0,176,1,174,2,129,3,99,3,200,1,192,255,7,255,159,255,43,0,0,0,161,255,243,255,244,0,97,1,159,0, +162,255,234,254,230,253,236,252,0,253,0,254,17,255,251,255,3,1,54,2,36,3,75,3,199,2,233,1,156,0,28,255, +77,254,156,254,126,255,42,0,117,0,237,0,136,1,11,1,81,255,30,254,29,254,111,254,65,255,178,0,52,1,109,0, +33,0,122,0,2,0,15,255,20,255,251,255,188,0,10,1,59,1,73,1,163,0,69,255,6,254,77,253,58,253,100,254, +12,0,37,0,12,255,11,255,32,0,195,0,227,0,195,0,63,0,19,0,174,0,101,1,11,2,78,2,17,1,243,254, +238,253,233,253,226,253,80,254,75,255,223,255,22,0,124,0,214,0,231,0,139,0,164,255,200,254,124,254,119,254,183,254, +246,254,16,254,148,252,187,252,128,254,8,0,225,0,61,1,213,0,73,0,60,0,5,0,153,255,208,255,107,0,197,0, +236,0,138,0,97,255,123,254,151,254,10,255,75,255,146,255,252,255,53,0,250,255,223,255,182,0,173,1,66,1,253,255, +74,255,2,255,208,254,26,255,84,255,218,254,192,254,202,255,0,1,189,1,35,2,170,1,240,255,47,254,217,253,148,254, +222,254,84,254,252,253,94,254,29,255,250,255,104,0,195,255,250,254,71,255,226,255,250,255,69,0,205,0,221,0,249,0, +130,1,208,1,13,2,96,2,171,1,36,0,142,255,217,255,192,255,95,255,53,255,71,255,236,255,229,0,79,1,72,1, +77,1,6,1,87,0,160,255,0,255,197,254,234,254,189,254,162,254,104,255,43,0,107,0,54,1,221,1,226,0,181,255, +203,255,152,255,136,254,44,254,167,254,46,255,210,255,33,0,219,255,56,0,118,1,75,2,129,2,107,2,211,1,99,1, +151,1,80,1,91,0,252,255,11,0,149,255,235,254,127,254,125,254,82,255,62,0,0,0,132,255,34,0,240,0,210,0, +85,0,28,0,46,0,108,0,118,0,57,0,30,0,34,0,31,0,84,0,143,0,83,0,180,255,193,254,185,253,180,253, +203,254,134,255,164,255,17,0,89,0,237,255,233,255,227,0,228,1,124,2,12,3,108,3,47,3,61,2,211,0,157,255, +31,255,7,255,243,254,37,255,149,255,128,255,207,254,222,254,113,0,233,1,166,1,174,0,81,0,228,255,42,255,37,255, +100,255,216,254,76,254,98,254,91,254,133,254,152,255,76,0,185,255,51,255,104,255,165,255,69,0,221,1,79,3,146,3, +113,3,165,3,82,3,173,1,184,255,230,254,235,254,193,254,123,254,114,254,103,254,132,254,21,255,194,255,146,0,211,1, +224,2,99,3,254,3,6,4,66,2,250,255,37,255,26,255,102,254,30,253,2,252,198,251,181,252,205,253,32,254,147,254, +239,255,13,1,240,0,106,0,120,0,203,0,175,0,81,0,72,0,108,0,81,0,25,0,200,255,32,255,186,254,77,255, +63,0,150,0,57,0,143,255,100,255,60,0,36,1,8,1,126,0,62,0,247,255,189,255,214,255,170,255,40,255,90,255, +119,0,164,1,73,2,82,2,38,2,46,2,193,1,66,0,217,254,176,254,24,255,54,255,51,255,21,255,174,254,93,254, +113,254,138,254,84,254,52,254,187,254,121,255,144,255,104,255,200,255,250,255,153,255,224,255,245,0,110,1,111,1,245,1, +84,2,5,2,251,1,58,2,185,1,163,0,183,255,246,254,118,254,114,254,156,254,215,254,131,255,152,0,165,1,103,2, +171,2,99,2,13,2,45,2,65,2,83,1,203,255,23,255,21,255,124,254,181,253,182,253,139,253,177,252,228,252,157,254, +9,0,112,0,114,0,32,0,185,255,168,255,104,255,255,254,125,255,155,0,56,1,166,1,111,2,177,2,174,1,35,0, +65,255,55,255,16,255,148,254,230,254,32,0,32,1,15,2,90,3,196,3,218,2,215,1,10,1,91,0,87,0,43,0, +229,254,47,254,253,254,93,255,189,254,189,254,128,255,11,0,1,0,255,254,162,253,154,253,165,254,62,255,168,255,69,0, +55,0,196,255,193,255,133,255,224,254,239,254,153,255,237,255,220,255,174,255,228,255,240,0,129,1,75,0,231,254,22,255, +205,255,198,255,95,255,48,255,89,255,85,255,134,254,42,254,225,255,10,2,47,2,50,1,214,0,183,0,60,0,203,255, +177,255,28,0,221,0,76,1,154,1,23,2,189,1,69,0,35,255,193,254,104,254,101,254,245,254,70,255,66,255,153,255, +54,0,202,0,104,1,192,1,59,1,1,0,23,255,30,255,76,255,239,254,250,254,215,255,5,0,72,255,85,255,63,0, +159,0,137,0,163,0,172,0,102,0,210,255,37,255,49,255,249,255,83,0,59,0,139,0,192,0,32,0,71,255,197,254, +152,254,242,254,199,255,185,0,129,1,157,1,47,1,86,1,212,1,53,1,231,255,87,255,81,255,124,255,42,0,168,0, +147,0,18,1,9,2,227,1,193,0,177,255,189,254,67,254,177,254,29,255,52,255,203,255,109,0,83,0,94,0,223,0, +5,1,46,1,218,1,252,1,2,1,187,255,250,254,40,255,213,255,240,255,217,255,103,0,146,0,229,255,13,0,54,1, +236,1,112,2,65,3,87,3,162,2,253,1,23,1,209,255,29,255,34,255,93,255,144,255,79,255,128,254,218,253,242,253, +11,255,248,0,52,2,124,1,238,255,74,255,177,255,49,0,242,255,43,255,11,255,186,255,1,0,174,255,152,255,177,255, +133,255,51,255,206,254,123,254,160,254,250,254,248,254,236,254,113,255,129,0,185,1,149,2,191,2,124,2,12,2,18,1, +119,255,15,254,172,253,54,254,212,254,221,254,185,254,81,255,153,0,165,1,22,2,251,1,36,1,255,255,158,255,7,0, +82,0,74,0,52,0,6,0,234,255,23,0,74,0,74,0,22,0,123,255,97,254,227,252,76,251,118,250,241,250,27,252, +124,253,80,255,13,1,238,1,40,2,237,1,47,1,137,0,101,0,176,0,151,1,163,2,200,2,41,2,92,1,40,0, +181,254,152,253,205,252,142,252,28,253,228,253,251,254,238,0,158,2,245,2,191,2,93,2,84,1,71,0,230,255,154,255, +242,254,38,254,152,253,175,253,45,254,130,254,1,255,219,255,102,0,143,0,109,0,105,255,10,254,213,253,152,254,236,254, +135,254,39,254,171,254,44,0,105,1,143,1,136,1,189,1,87,1,168,0,202,0,34,1,162,0,253,255,239,255,195,255, +91,255,174,255,108,0,106,0,63,0,8,1,220,1,135,1,201,0,166,0,189,0,126,0,59,0,79,0,74,0,197,255, +65,255,48,255,110,255,11,0,195,0,167,0,23,0,100,0,35,1,107,1,137,1,61,1,81,0,51,0,226,0,154,0, +253,255,99,0,56,0,149,254,109,253,119,253,147,253,210,253,219,254,65,0,13,1,196,0,22,0,18,0,135,0,139,0, +218,255,247,254,176,254,213,254,25,254,221,252,240,252,250,253,212,254,32,0,144,1,186,1,127,1,207,1,70,1,198,255, +213,254,48,254,43,253,118,252,96,252,0,253,176,254,110,0,2,1,21,1,79,1,71,1,251,0,196,0,181,0,238,0, +22,1,153,0,227,255,116,255,174,254,59,253,249,251,188,251,143,252,11,254,149,255,193,0,175,1,133,2,2,3,8,3, +190,2,10,2,40,1,244,0,60,1,248,0,187,0,103,1,223,1,140,1,121,1,121,1,3,1,249,0,27,1,103,0, +25,0,232,0,23,1,91,0,31,0,61,0,17,0,197,255,113,255,152,255,145,0,56,1,251,0,130,0,138,255,24,254, +119,253,197,253,84,254,88,255,113,0,215,0,210,0,119,0,203,255,216,255,92,0,246,255,117,255,251,255,87,0,212,255, +97,255,79,255,108,255,148,255,106,255,62,255,160,255,254,255,251,255,24,0,91,0,196,0,130,1,181,1,195,0,187,255, +92,255,68,255,83,255,163,255,30,0,215,0,151,1,209,1,128,1,32,1,196,0,222,255,103,254,167,253,21,254,41,254, +124,253,209,253,110,255,254,0,71,2,55,3,1,3,13,2,126,1,64,1,176,0,174,255,165,254,73,254,169,254,43,255, +190,255,164,0,150,1,3,2,138,1,200,0,221,0,31,1,61,0,54,255,49,255,112,255,236,255,239,0,36,1,122,0, +103,0,51,0,245,254,43,254,85,254,86,254,89,254,185,254,250,254,81,255,253,255,177,0,130,1,231,1,20,1,51,0, +92,0,74,0,53,255,92,254,162,254,135,255,28,0,34,0,73,0,159,0,96,0,206,255,103,255,174,254,249,253,86,254, +130,255,196,0,219,1,66,2,16,2,3,2,214,1,8,1,7,0,9,255,2,254,77,253,29,253,185,253,33,255,16,0, +220,255,160,255,222,255,37,0,111,0,99,0,3,0,112,0,95,1,129,1,185,1,188,2,195,2,109,1,147,0,106,0, +189,255,116,254,76,253,241,252,116,253,44,254,219,254,209,255,216,0,109,1,91,1,10,1,140,1,202,2,19,3,48,2, +135,1,55,1,204,0,137,0,11,0,49,255,251,254,19,255,77,254,107,253,88,253,59,253,240,252,132,253,192,254,116,255, +188,255,161,0,233,1,96,2,63,2,125,2,119,2,127,1,120,0,223,255,162,255,17,0,99,0,178,255,19,255,255,254, +146,254,155,254,180,255,89,0,161,0,178,1,44,2,97,1,5,1,35,1,208,0,196,0,221,0,253,255,226,254,210,254, +175,255,173,0,196,0,7,0,211,255,39,0,17,0,253,255,240,255,90,255,117,255,190,0,115,1,140,1,47,2,81,2, +79,1,147,0,94,0,230,255,106,255,55,255,53,255,130,255,158,255,12,255,133,254,131,254,91,254,202,253,125,253,231,253, +113,254,93,254,80,254,85,255,181,0,36,1,3,1,53,1,131,1,113,1,20,1,169,0,73,0,44,0,102,0,116,0, +49,0,114,0,15,1,208,0,75,0,154,0,153,0,183,255,59,255,206,254,199,253,138,253,30,254,56,254,206,254,74,0, +212,0,160,0,11,1,10,1,1,0,33,255,176,254,127,254,152,254,117,254,137,254,123,255,200,255,246,254,237,254,168,255, +247,255,133,0,71,1,36,1,209,0,237,0,197,0,174,0,245,0,229,0,240,0,73,1,125,0,203,254,241,253,233,253, +16,254,103,254,111,254,99,254,59,255,61,0,125,0,198,0,55,1,237,0,73,0,235,255,134,255,91,255,219,255,102,0, +132,0,141,0,112,0,233,255,132,255,227,255,164,0,22,1,15,1,180,0,111,0,136,0,118,0,18,0,86,0,30,1, +54,1,14,1,42,1,117,0,108,255,173,255,21,0,111,255,120,255,247,0,65,2,89,2,94,1,119,0,8,1,140,1, +40,0,94,255,236,0,183,1,112,0,163,255,237,255,230,255,75,255,147,254,130,254,108,255,12,0,228,255,14,0,100,0, +94,0,166,0,2,1,219,0,204,0,132,0,110,255,234,254,62,255,246,254,169,254,72,255,122,255,9,255,113,255,122,0, +30,1,65,1,231,0,170,0,42,1,37,1,210,255,243,254,118,255,16,0,66,0,150,0,249,0,66,1,123,1,6,1, +180,255,204,254,20,255,165,255,253,255,190,0,169,1,219,1,170,1,139,1,6,1,56,0,135,255,176,254,59,254,0,255, +250,255,226,255,62,255,239,254,72,255,51,0,250,0,82,1,154,1,139,1,40,1,49,1,14,1,255,255,11,255,130,254, +209,253,254,253,54,255,143,255,48,255,154,255,23,0,30,0,191,0,177,1,203,1,9,1,223,255,8,255,235,254,89,254, +12,253,9,253,192,254,21,0,18,0,175,255,178,255,124,255,25,254,235,252,59,254,119,0,180,0,39,0,182,0,252,0, +113,0,153,0,33,1,7,1,29,1,141,1,42,1,59,0,245,255,253,255,75,255,85,254,79,254,60,255,63,0,249,0, +59,1,212,0,44,0,187,255,110,255,66,255,47,255,46,255,234,255,99,1,18,2,106,1,124,0,160,255,189,254,85,254, +124,254,13,255,44,0,28,1,34,1,245,0,4,1,178,0,52,0,48,0,114,0,129,0,70,0,31,0,125,0,225,0, +173,0,170,0,127,1,89,2,109,2,166,1,130,0,12,0,59,0,210,255,244,254,191,254,23,255,154,255,50,0,55,0, +179,255,116,255,23,255,101,254,114,254,28,255,47,255,253,254,64,255,160,255,252,255,133,0,247,0,44,1,58,1,29,1, +224,0,120,0,249,255,197,255,211,255,238,255,89,0,172,0,4,0,207,254,60,254,167,254,184,255,118,0,41,0,205,255, +93,0,249,0,245,0,177,0,48,0,159,255,122,255,47,255,114,254,58,254,147,254,153,254,184,254,182,255,229,0,61,1, +219,0,181,0,40,1,128,1,84,1,229,0,241,255,151,254,45,254,223,254,56,255,4,255,44,255,136,255,178,255,227,255, +218,255,54,255,194,254,97,255,116,0,241,0,64,1,250,1,33,2,33,1,85,0,71,0,247,255,144,255,223,255,73,0, +92,0,130,0,130,0,39,0,225,255,151,255,79,255,225,255,39,1,220,1,156,1,253,0,180,0,31,1,160,1,72,1, +59,0,100,255,44,255,4,255,109,254,72,254,69,255,224,255,72,255,64,255,58,0,160,0,158,0,24,1,38,1,111,0, +199,255,11,255,39,254,207,253,202,253,239,253,10,255,163,0,66,1,232,0,99,0,49,0,154,0,215,0,236,255,236,254, +73,255,35,0,84,0,164,0,157,1,28,2,132,1,190,0,70,0,218,255,8,0,52,1,17,2,217,1,136,1,88,1, +163,0,4,0,248,255,119,255,78,254,178,253,224,253,54,254,195,254,174,255,119,0,191,0,171,0,111,0,43,0,47,0, +103,0,45,0,191,255,55,0,254,0,164,0,29,0,208,0,102,1,175,0,248,255,16,0,23,0,173,255,94,255,193,255, +204,0,119,1,44,1,215,0,237,0,204,0,174,0,72,1,254,1,173,1,103,0,76,255,19,255,58,255,89,255,214,255, +89,0,54,0,57,0,189,0,91,0,45,255,220,254,19,255,215,254,53,255,122,0,221,0,17,0,203,255,79,0,49,0, +14,255,235,253,111,253,100,253,176,253,146,254,18,0,152,1,12,2,46,1,95,0,131,0,159,0,50,0,251,255,231,255, +216,255,139,0,62,1,165,0,69,0,118,1,16,2,206,0,184,255,203,255,250,255,41,0,159,0,186,0,135,0,202,0, +34,1,224,0,138,0,110,0,184,255,114,254,251,253,129,254,254,254,119,255,61,0,108,0,215,255,183,255,14,0,218,255, +151,255,74,0,83,1,123,1,215,0,111,0,208,0,76,1,202,0,119,255,160,254,181,254,185,254,59,254,72,254,112,255, +126,0,118,0,10,0,9,0,54,0,50,0,15,0,29,0,135,0,237,0,255,0,241,0,181,0,40,0,237,255,68,0, +100,0,46,0,50,0,50,0,178,255,211,254,18,254,61,254,92,255,36,0,122,0,166,1,250,2,170,2,87,1,119,0, +207,255,253,254,57,254,164,253,214,253,48,255,151,0,22,1,24,1,244,0,133,0,241,255,121,255,111,255,235,255,47,0, +246,255,49,0,253,0,92,1,121,1,248,1,2,2,217,0,167,255,172,255,86,0,96,0,212,255,177,255,243,255,170,255, +254,254,231,254,92,255,209,255,55,0,87,0,31,0,66,0,167,0,119,0,81,0,245,0,26,1,71,0,11,0,82,0, +191,255,17,255,39,255,239,254,120,254,34,255,127,0,73,1,103,1,30,1,23,1,214,1,6,2,214,0,1,0,12,0, +143,255,33,255,200,255,20,0,115,255,75,255,106,255,241,254,187,254,96,255,73,0,10,1,43,1,163,0,93,0,73,0, +201,255,219,255,199,0,166,0,66,255,155,254,16,255,169,255,90,0,39,1,147,1,85,1,103,0,84,255,234,254,201,254, +67,254,183,253,93,253,58,253,25,254,167,255,49,0,237,255,105,0,99,1,222,1,203,1,55,1,167,0,218,0,251,0, +60,0,170,255,134,255,3,255,6,255,41,0,188,0,75,0,28,0,0,0,116,255,13,255,157,254,25,254,149,254,116,255, +95,255,125,255,120,0,162,0,255,255,201,255,92,255,0,255,33,0,18,1,6,0,66,255,55,0,234,0,231,0,107,1, +194,1,11,1,50,0,215,255,163,255,111,255,86,255,160,255,66,0,154,0,216,0,148,1,204,1,175,0,166,255,156,255, +164,255,89,255,18,255,219,254,21,255,199,255,16,0,11,0,123,0,205,0,142,0,132,0,133,0,192,255,187,254,19,254, +203,253,98,254,156,255,228,255,51,255,37,255,227,255,78,0,61,0,75,0,137,0,97,0,153,255,33,255,174,255,100,0, +152,0,204,0,7,1,22,1,111,1,145,1,151,0,151,255,156,255,162,255,65,255,59,255,58,255,11,255,182,255,2,1, +169,1,179,1,156,1,80,1,243,0,153,0,73,0,135,0,204,0,213,255,111,254,16,254,24,254,252,253,79,254,91,254, +107,253,212,252,71,253,199,253,53,254,241,254,111,255,163,255,31,0,200,0,79,1,135,1,68,1,37,1,144,1,94,1, +71,0,208,255,253,255,118,255,184,254,196,254,239,254,222,254,86,255,79,0,1,1,22,1,185,0,98,0,54,0,188,255, +39,255,29,255,30,255,189,254,241,254,249,255,228,0,117,1,135,1,171,0,215,255,1,0,29,0,122,255,17,255,24,255, +10,255,3,255,229,254,140,254,162,254,54,255,164,255,35,0,229,0,109,1,212,1,35,2,200,1,52,1,255,0,83,0, +50,255,241,254,86,255,109,255,134,255,162,255,109,255,165,255,55,0,251,255,95,255,45,255,161,254,217,253,11,254,248,254, +34,0,216,1,23,3,198,2,17,2,152,1,47,0,49,254,40,253,195,252,81,252,150,252,181,253,166,254,65,255,239,255, +81,0,44,0,96,0,107,1,57,2,186,1,184,0,84,0,43,0,232,255,71,0,9,1,32,1,37,1,240,1,78,2, +48,1,150,255,115,254,165,253,39,253,43,253,207,253,17,255,70,0,224,0,94,1,216,1,118,1,136,0,7,0,134,255, +154,254,52,254,169,254,56,255,166,255,20,0,87,0,117,0,137,0,114,0,74,0,37,0,222,255,187,255,33,0,183,0, +248,0,249,0,37,1,147,1,158,1,199,0,193,255,60,255,159,254,173,253,63,253,136,253,251,253,137,254,103,255,138,0, +123,1,111,1,175,0,141,0,215,0,183,0,74,1,199,2,191,2,25,1,148,0,249,0,51,0,48,255,82,255,136,255, +101,255,240,255,225,0,65,1,18,1,185,0,159,0,210,0,119,0,83,255,120,254,68,254,79,254,178,254,13,255,187,254, +146,254,58,255,154,255,105,255,166,255,19,0,46,0,201,0,236,1,117,2,96,2,58,2,249,1,229,1,48,2,57,2, +234,1,132,1,147,0,88,255,203,254,101,254,114,253,251,252,64,253,242,252,131,252,155,253,152,255,158,0,195,0,60,1, +12,2,102,2,49,2,206,1,14,1,2,0,158,255,221,255,136,255,211,254,209,254,207,254,243,253,72,253,119,253,240,253, +204,254,41,0,76,1,55,2,50,3,93,3,121,2,150,1,16,1,230,0,152,1,118,2,50,2,89,1,252,0,175,0, +255,255,32,255,10,254,56,253,114,253,18,254,85,254,48,255,47,1,28,3,36,4,143,4,93,4,105,3,17,2,204,0, +229,255,84,255,179,254,5,254,161,253,54,253,136,252,81,252,224,252,133,253,15,254,187,254,77,255,223,255,243,0,53,2, +253,2,97,3,149,3,141,3,87,3,194,2,151,1,128,0,33,0,224,255,253,254,225,253,113,253,4,254,3,255,153,255, +254,255,16,1,93,2,138,2,163,1,183,0,254,255,86,255,6,255,232,254,184,254,13,255,247,255,72,0,215,255,197,255, +214,255,232,254,167,253,94,253,191,253,93,254,185,255,142,1,224,2,128,3,166,3,80,3,205,2,79,2,144,1,198,0, +64,0,104,255,29,254,93,253,109,253,161,253,224,253,39,254,0,254,219,253,163,254,247,255,17,1,43,2,110,3,80,4, +143,4,36,4,222,2,8,1,104,255,110,254,17,254,39,254,129,254,253,254,75,255,34,255,39,255,3,0,208,0,179,0, +173,0,97,1,173,1,56,1,14,1,54,1,10,1,196,0,122,0,223,255,162,255,36,0,36,0,49,255,169,254,230,254, +201,254,105,254,222,254,19,0,45,1,23,2,61,3,115,4,223,4,242,3,103,2,103,1,187,0,95,255,169,253,218,252, +25,253,192,253,171,254,162,255,207,255,42,255,181,254,181,254,148,254,115,254,176,254,231,254,25,255,1,0,54,1,127,1, +6,1,187,0,156,0,134,0,198,0,21,1,249,0,195,0,176,0,131,0,86,0,107,0,206,0,173,1,155,2,156,2, +242,1,114,1,121,0,185,254,237,253,183,254,144,255,13,0,31,1,134,2,94,3,55,3,180,1,121,255,53,254,221,253, +17,253,70,252,214,252,44,254,255,254,60,255,126,255,87,0,166,1,61,2,172,1,84,1,243,1,93,2,222,1,95,1, +90,1,214,0,53,255,174,253,165,253,104,254,169,254,218,254,168,255,73,0,98,0,193,0,89,1,151,1,248,1,221,2, +103,3,177,2,198,0,185,254,222,253,242,253,160,253,96,253,131,254,73,0,125,1,139,2,113,3,20,3,136,1,214,255, +111,254,169,253,197,253,68,254,210,254,167,255,168,0,147,1,80,2,131,2,30,2,127,1,123,0,24,255,60,254,219,253, +31,253,185,252,139,253,140,254,16,255,5,0,105,1,52,2,61,2,170,1,185,0,169,0,203,1,134,2,142,2,107,3, +185,4,108,4,177,2,119,1,20,1,105,0,46,255,73,254,115,254,54,255,141,255,126,255,254,255,239,0,245,0,215,255, +228,254,171,254,143,254,88,254,22,254,136,253,24,253,129,253,72,254,204,254,165,255,210,0,35,1,119,0,147,255,140,254, +224,253,124,254,177,255,118,0,190,1,75,4,167,6,104,7,204,6,144,5,222,3,67,1,6,254,51,252,240,252,52,254, +125,254,87,255,86,1,131,2,59,2,152,1,190,0,144,255,187,254,48,254,93,253,217,252,106,253,116,254,246,254,240,254, +19,255,117,255,97,255,195,254,85,254,25,254,178,253,235,253,111,255,58,1,62,2,200,2,92,3,180,3,24,3,124,1, +72,0,132,0,226,0,63,0,238,255,216,0,176,1,214,1,36,2,172,2,195,2,85,2,142,1,133,0,89,255,37,254, +90,253,107,253,212,253,3,254,113,254,70,255,205,255,236,255,27,0,80,0,48,0,121,255,108,254,255,253,86,254,82,254, +237,253,26,254,132,254,216,254,238,255,84,1,191,1,188,1,223,1,118,1,37,1,218,1,233,1,90,0,87,255,236,255, +110,0,249,255,93,255,146,255,239,0,102,2,159,2,18,2,154,1,211,0,212,255,57,255,146,254,230,253,47,254,223,254, +234,254,255,254,92,255,239,254,1,254,169,253,155,253,140,253,20,254,35,255,54,0,10,1,72,1,94,1,44,2,230,2, +105,2,167,1,109,1,204,0,223,255,250,255,209,0,70,1,101,1,86,1,213,0,74,0,43,0,10,0,164,255,87,255, +62,255,55,255,86,255,144,255,158,255,175,255,52,0,205,0,131,0,119,255,220,254,2,255,18,255,208,254,198,254,12,255, +52,255,18,255,252,254,74,255,159,255,140,255,197,255,195,0,68,1,130,0,136,255,208,254,43,254,160,254,63,0,253,0, +223,0,21,2,242,3,8,4,242,2,107,2,245,1,221,0,181,255,192,254,219,253,51,253,2,253,167,253,51,255,166,0, +99,1,4,2,134,2,62,2,141,1,9,1,77,0,85,255,210,254,192,254,156,254,144,254,61,255,129,0,84,1,72,1, +55,1,79,1,171,0,183,255,129,255,84,255,176,254,219,254,212,255,3,0,115,255,19,255,172,254,63,254,89,254,214,254, +193,255,85,1,178,2,58,3,105,3,234,2,22,1,211,254,54,253,104,252,195,252,72,254,2,0,77,1,24,2,115,2, +230,2,97,3,214,2,134,1,180,0,22,0,50,255,240,254,114,255,207,255,10,0,52,0,208,255,121,255,255,255,172,0, +182,0,48,0,57,255,99,254,110,254,3,255,159,255,114,0,11,1,224,0,203,0,109,1,211,1,60,1,41,0,87,255, +47,255,131,255,214,255,47,0,209,0,73,1,19,1,89,0,165,255,139,255,2,0,44,0,222,255,25,0,41,1,80,2, +9,3,251,2,1,2,236,0,67,0,97,255,62,254,183,253,195,253,242,253,101,254,202,254,211,254,95,255,137,0,246,0, +153,0,145,0,124,0,198,255,134,255,61,0,216,0,199,0,61,0,85,255,204,254,60,255,191,255,207,255,117,0,158,1, +222,1,122,1,201,1,85,2,8,2,98,1,236,0,23,0,245,254,117,254,156,254,229,254,126,255,95,0,226,0,15,1, +44,1,181,0,187,255,9,255,70,254,38,253,30,253,157,254,210,255,56,0,203,0,62,1,97,1,81,2,154,3,124,3, +75,2,122,1,37,1,193,0,12,0,38,255,171,254,127,254,240,253,225,253,93,255,13,1,188,1,67,2,166,2,222,1, +135,0,230,255,240,255,7,0,161,255,199,254,115,254,196,254,177,254,107,254,200,254,26,255,227,254,206,254,220,254,212,254, +89,255,106,0,104,1,83,2,191,2,24,2,75,1,42,1,220,0,17,0,155,255,175,255,24,0,194,0,78,1,170,1, +12,2,228,1,7,1,149,0,246,0,68,1,49,1,21,1,7,1,64,1,211,1,245,1,35,1,65,0,91,0,248,0, +197,0,221,255,120,255,112,255,162,254,117,253,6,253,60,253,220,253,22,255,35,0,36,0,180,255,169,255,214,255,233,255, +204,255,137,255,100,255,127,255,223,255,219,0,91,2,71,3,9,3,76,2,151,1,220,0,106,0,177,0,80,1,158,1, +175,1,166,1,240,0,120,255,86,254,251,253,183,253,182,253,191,254,48,0,9,1,197,1,238,2,156,3,8,3,233,1, +94,1,88,1,247,0,21,0,79,255,181,254,33,254,15,254,97,254,51,254,233,253,167,254,230,255,121,0,175,0,54,1, +233,1,132,2,203,2,124,2,34,2,92,2,114,2,139,1,82,0,160,255,65,255,2,255,47,255,164,255,2,0,92,0, +191,0,7,1,82,1,164,1,185,1,159,1,127,1,44,1,190,0,116,0,5,0,116,255,103,255,217,255,56,0,131,0, +149,0,11,0,98,255,49,255,252,254,112,254,25,254,85,254,223,254,33,255,30,255,244,255,181,1,66,2,23,1,123,0, +246,0,218,0,34,0,133,255,115,254,132,253,30,254,75,255,174,255,59,0,154,1,163,2,186,2,83,2,165,1,208,0, +12,0,82,255,174,254,157,254,127,255,197,0,96,1,88,1,164,1,3,2,76,1,182,255,56,254,1,253,124,252,91,253, +1,255,51,0,196,0,4,1,225,0,52,0,68,255,222,254,66,255,85,255,121,254,215,253,29,254,121,254,230,254,27,0, +57,1,7,1,140,0,61,1,48,2,231,1,233,0,47,0,114,255,215,254,51,255,246,255,35,0,90,0,242,0,210,0, +233,255,72,255,254,254,175,254,153,254,0,255,78,0,91,2,133,3,27,3,107,2,189,1,128,0,197,255,6,0,180,255, +178,254,77,254,76,254,133,254,217,255,100,1,144,1,53,1,112,1,75,1,61,0,113,255,128,255,149,255,46,255,236,254, +70,255,175,255,218,255,37,0,78,0,2,0,223,255,243,255,172,255,174,255,115,0,227,0,243,0,191,1,144,2,42,2, +49,1,39,0,194,254,207,253,238,253,80,254,173,254,75,255,142,255,133,255,68,0,79,1,58,1,105,0,223,255,60,255, +96,254,103,254,133,255,112,0,164,0,229,0,58,1,205,0,187,255,29,255,110,255,59,0,213,0,232,0,198,0,227,0, +246,0,177,0,118,0,111,0,23,0,115,255,39,255,60,255,33,255,223,254,4,255,121,255,192,255,41,0,27,1,194,1, +114,1,218,0,81,0,112,255,217,254,80,255,246,255,252,255,246,255,74,0,202,0,108,1,180,1,56,1,200,0,3,1, +53,1,237,0,153,0,101,0,61,0,246,255,17,255,204,253,138,253,148,254,90,255,32,255,254,254,144,255,16,0,22,0, +17,0,42,0,56,0,64,0,38,0,217,255,151,255,89,255,9,255,61,255,26,0,193,0,249,0,59,1,51,1,183,0, +134,0,174,0,159,0,139,0,104,0,179,255,67,255,52,0,142,1,211,1,91,1,37,1,28,1,170,0,239,255,105,255, +241,254,80,254,24,254,118,254,184,254,224,254,102,255,252,255,151,0,103,1,138,1,229,0,226,0,59,1,136,0,158,255, +159,255,188,255,190,255,43,0,95,0,56,0,111,0,131,0,50,0,95,0,146,0,43,0,179,0,95,2,192,2,112,1, +127,0,121,0,105,0,1,0,135,255,51,255,223,254,85,254,8,254,49,254,56,254,83,254,12,255,103,255,215,254,206,254, +194,255,132,0,223,0,49,1,57,1,118,1,163,2,230,3,44,4,190,3,18,3,23,2,221,0,173,255,208,254,103,254, +110,254,239,254,181,255,7,0,153,255,245,254,192,254,67,255,76,0,29,1,68,1,224,0,238,255,213,254,164,254,72,255, +141,255,94,255,122,255,170,255,123,255,49,255,17,255,27,255,65,255,92,255,174,255,222,0,154,2,152,3,104,3,212,2, +112,2,226,1,241,0,46,0,9,0,41,0,41,0,244,255,144,255,112,255,207,255,209,255,254,254,109,254,188,254,41,255, +82,255,95,255,20,255,174,254,5,255,254,255,168,0,143,0,4,0,194,255,15,0,30,0,113,255,244,254,74,255,212,255, +40,0,111,0,151,0,174,0,214,0,162,0,13,0,15,0,164,0,142,0,217,255,183,255,0,0,240,255,40,0,16,1, +100,1,132,0,143,255,77,255,114,255,187,255,10,0,67,0,119,0,143,0,114,0,102,0,79,0,221,255,157,255,220,255, +191,255,1,255,109,254,93,254,193,254,121,255,216,255,202,255,64,0,49,1,189,1,4,2,35,2,120,1,59,0,88,255, +32,255,153,255,81,0,108,0,62,0,168,0,9,1,176,0,97,0,104,0,20,0,93,255,187,254,99,254,127,254,3,255, +167,255,41,0,60,0,63,0,51,1,171,2,40,3,166,2,218,1,179,0,141,255,222,254,48,254,202,253,54,254,79,254, +225,253,242,254,74,1,96,2,21,2,185,1,23,1,64,0,225,255,71,255,35,254,190,253,61,254,135,254,221,254,204,255, +91,0,208,255,40,255,74,255,162,255,139,255,150,255,73,0,1,1,46,1,45,1,81,1,107,1,38,1,69,0,78,255, +51,255,205,255,71,0,112,0,69,0,212,255,187,255,211,255,31,255,21,254,224,253,44,254,165,254,233,255,115,1,18,2, +255,1,213,1,61,1,251,255,131,254,157,253,195,253,95,254,168,254,252,254,161,255,237,255,229,255,53,0,159,0,222,0, +84,1,213,1,229,1,211,1,242,1,1,2,225,1,140,1,1,1,139,0,108,0,139,0,183,0,193,0,146,0,249,255, +118,254,122,252,241,251,102,253,186,254,162,254,136,254,147,255,234,0,111,1,0,1,58,0,190,255,144,255,77,255,241,254, +209,254,32,255,196,255,86,0,147,0,186,0,223,0,112,0,87,255,142,254,212,254,167,255,245,255,61,255,68,254,127,254, +11,0,103,1,10,2,222,2,154,3,253,2,118,1,111,0,41,0,59,0,233,255,99,254,222,252,128,253,99,255,52,0, +75,0,137,0,35,0,108,255,197,255,157,0,204,0,117,0,174,255,192,254,178,254,43,255,27,255,67,255,254,255,165,255, +39,254,179,253,192,254,185,255,232,255,180,255,136,255,209,255,220,0,44,2,182,2,23,2,37,1,121,0,178,255,248,254, +253,254,79,255,61,255,76,255,224,255,151,0,78,1,201,1,151,1,5,1,126,0,223,255,114,255,117,255,99,255,125,255, +105,0,94,1,134,1,109,1,85,1,250,0,162,0,36,0,240,254,133,253,163,252,67,252,110,252,243,252,62,253,213,253, +145,255,126,1,29,2,127,1,184,0,153,0,241,0,189,0,198,255,36,255,134,255,68,0,131,0,134,0,71,1,129,2, +239,2,190,2,203,2,138,2,192,1,116,1,94,1,179,0,73,0,94,0,254,255,201,255,137,0,12,1,180,0,75,0, +241,255,151,255,89,255,129,254,94,253,120,253,76,254,51,254,159,253,178,253,134,254,4,0,74,1,18,1,25,0,214,255, +191,255,255,254,98,254,201,254,231,255,179,0,158,0,137,0,56,1,164,1,63,1,110,1,89,2,44,2,237,0,148,0, +48,1,18,1,6,0,53,255,18,255,123,255,90,0,33,1,36,1,173,0,124,0,156,0,174,0,148,0,56,0,117,255, +110,254,148,253,75,253,155,253,39,254,94,254,15,254,246,253,251,254,161,0,133,1,120,1,68,1,250,0,109,0,4,0, +238,255,8,0,137,0,133,1,85,2,74,2,140,1,25,1,96,1,56,1,217,255,118,254,232,253,146,253,168,253,174,254, +147,255,225,255,212,0,7,2,188,1,137,0,55,0,169,0,235,0,163,0,185,255,181,254,72,254,242,253,54,253,239,252, +151,253,150,254,163,255,137,0,178,0,93,0,44,0,194,255,21,255,86,255,197,0,247,1,76,2,111,2,129,2,25,2, +137,1,25,1,101,0,184,255,200,255,224,255,116,255,229,255,79,1,117,1,90,0,71,0,25,1,150,1,127,2,170,3, +78,3,255,1,125,1,30,1,236,255,218,254,127,254,72,254,48,254,187,254,164,255,207,255,212,254,253,253,92,254,26,255, +75,255,117,255,254,255,92,0,52,0,243,255,51,0,143,0,255,255,6,255,232,254,249,254,87,254,5,254,110,254,195,254, +73,255,24,0,24,0,153,255,204,255,60,0,93,0,162,0,216,0,184,0,182,0,158,0,35,0,231,255,254,255,238,255, +239,255,203,255,1,255,101,254,125,254,70,254,171,253,134,253,144,253,178,253,177,254,225,255,53,0,160,0,191,1,101,2, +100,2,165,2,209,2,87,2,168,1,237,0,36,0,198,255,163,255,81,255,64,255,120,255,195,255,216,0,48,2,216,1, +117,0,49,0,99,0,231,255,249,255,179,0,78,0,10,255,121,254,97,254,30,254,71,254,242,254,24,255,135,254,88,254, +14,255,204,255,225,255,164,255,176,255,69,0,1,1,56,1,50,1,55,1,47,0,112,254,128,254,27,0,100,0,139,255, +109,255,111,255,214,254,97,254,8,254,214,253,170,254,200,255,221,255,121,255,106,255,110,255,140,255,212,255,202,255,106,255, +63,255,147,255,45,0,155,0,181,0,114,0,193,255,107,255,33,0,190,0,154,0,19,1,21,2,219,1,213,0,124,0, +79,0,189,255,88,255,38,255,255,254,90,255,62,0,29,1,139,1,110,1,35,1,209,0,30,0,102,255,79,255,71,255, +209,254,197,254,181,255,7,1,152,1,166,0,233,254,181,253,9,253,153,252,24,253,127,254,200,255,154,0,230,0,83,0, +112,255,57,255,120,255,99,255,33,255,123,255,112,0,20,1,254,0,147,0,1,0,124,255,118,255,203,255,58,0,220,0, +35,1,151,0,12,0,213,255,90,255,251,254,31,255,78,255,228,255,24,1,128,1,228,0,180,0,224,0,179,0,187,0, +194,0,212,255,198,254,223,254,156,255,221,255,120,255,31,255,74,255,111,255,63,255,140,255,70,0,98,0,86,0,250,0, +93,1,249,0,244,0,105,1,61,1,99,0,123,255,179,254,54,254,243,253,160,253,220,253,66,255,185,0,46,1,93,1, +209,1,206,1,72,1,230,0,109,0,149,255,229,254,91,254,198,253,9,254,97,255,74,0,10,0,179,255,246,255,141,0, +31,1,245,0,170,255,104,254,12,254,184,253,80,253,46,254,30,0,125,1,235,1,191,1,254,0,66,0,224,255,13,255, +247,253,173,253,211,253,243,253,221,254,79,0,231,0,171,0,119,0,102,0,76,0,249,255,95,255,0,255,45,255,222,255, +42,1,84,2,86,2,215,1,159,1,242,0,189,255,239,254,108,254,231,253,215,253,39,254,94,254,158,254,41,255,20,0, +13,1,76,1,26,1,102,1,146,1,194,0,192,255,36,255,162,254,90,254,76,254,52,254,92,254,164,254,137,254,111,254, +107,254,246,253,191,253,137,254,121,255,13,0,185,0,83,1,136,1,145,1,99,1,237,0,96,0,166,255,204,254,59,254, +245,253,229,253,93,254,60,255,210,255,236,255,249,255,16,0,181,255,42,255,113,255,29,0,241,255,142,255,18,0,198,0, +18,1,37,1,74,0,138,254,150,253,192,253,253,253,138,254,210,255,239,0,26,1,167,0,132,0,11,1,49,1,108,0, +237,255,3,0,140,255,178,254,98,254,97,254,106,254,212,254,142,255,76,0,223,0,39,1,61,1,15,1,94,0,156,255, +82,255,83,255,102,255,105,255,118,255,29,0,25,1,116,1,148,1,8,2,226,1,27,1,220,0,202,0,34,0,168,255, +235,255,64,0,243,255,29,255,184,254,238,254,121,254,145,253,201,253,152,254,38,255,93,0,117,1,169,0,95,255,79,255, +114,255,65,255,62,255,47,255,98,255,17,0,10,0,107,255,147,255,239,255,186,255,215,255,66,0,33,0,230,255,241,255, +245,255,69,0,194,0,181,0,189,0,162,1,70,2,147,1,127,0,59,0,68,0,162,255,238,254,63,255,205,255,65,255, +110,254,175,254,41,255,178,254,62,254,177,254,249,254,152,254,180,254,114,255,5,0,184,0,125,1,72,1,235,0,165,1, +184,1,10,0,219,254,211,254,61,254,218,253,232,254,187,255,163,255,81,0,118,1,116,1,221,0,157,0,48,0,185,255, +233,255,21,0,108,255,162,254,169,254,69,255,213,255,50,0,116,0,126,0,39,0,159,255,89,255,81,255,53,255,61,255, +172,255,9,0,46,0,187,0,112,1,107,1,198,0,7,0,101,255,20,255,164,254,158,253,65,253,97,254,120,255,241,255, +243,0,234,1,220,1,219,1,10,2,68,1,131,0,157,0,226,255,91,254,75,254,54,255,98,255,170,255,117,0,30,0, +235,254,190,254,99,255,203,255,13,0,22,0,169,255,103,255,159,255,239,255,54,0,41,0,166,255,119,255,181,255,137,255, +56,255,255,254,1,254,203,252,200,252,132,253,155,254,145,0,231,1,73,1,186,0,103,1,161,1,21,1,179,0,244,255, +206,254,129,254,15,255,165,255,52,0,149,0,107,0,51,0,120,0,182,0,62,0,188,255,53,0,222,0,85,0,30,255, +78,254,247,253,60,254,216,254,217,254,220,254,210,255,122,0,66,0,163,0,103,1,29,1,101,0,47,0,223,255,58,255, +226,254,40,255,163,255,159,255,111,255,2,0,202,0,12,1,129,1,195,1,168,0,171,255,67,0,3,1,252,0,190,0, +241,255,224,254,189,254,160,254,137,253,103,253,63,255,150,0,231,255,3,255,102,255,19,0,46,0,98,0,174,0,95,0, +36,0,145,0,176,0,136,0,252,0,25,1,36,0,98,255,253,254,6,254,128,253,133,254,224,255,60,0,197,255,63,255, +76,255,229,255,99,0,131,0,100,0,11,0,166,255,170,255,109,0,99,1,60,1,202,255,98,254,154,253,61,253,183,253, +253,254,44,0,254,0,70,1,160,0,182,255,49,255,201,254,163,254,224,254,225,254,233,254,108,255,137,255,24,255,24,255, +138,255,33,0,235,0,72,1,66,1,192,1,31,2,97,1,13,0,121,254,34,253,117,253,189,254,228,254,177,254,143,255, +54,0,208,255,137,255,190,255,198,255,136,255,98,255,181,255,125,0,78,1,227,1,226,1,244,0,210,255,55,255,142,254, +146,253,235,252,161,252,126,252,208,252,100,253,205,253,84,254,49,255,17,0,164,0,234,0,66,1,163,1,76,1,130,0, +125,0,205,0,88,0,230,255,3,0,135,255,146,254,158,254,107,255,220,255,14,0,247,255,33,255,112,254,240,254,185,255, +191,255,171,255,1,0,57,0,106,0,46,1,225,1,119,1,94,0,180,255,112,255,188,254,162,253,253,252,211,252,133,252, +145,252,195,253,51,255,197,255,26,0,199,0,33,1,60,1,1,2,206,2,27,2,52,0,205,254,118,254,126,254,147,254, +213,254,57,255,194,255,49,0,1,0,137,255,124,255,85,255,188,254,230,254,44,0,52,1,150,1,30,2,194,2,183,2, +194,1,124,0,178,255,102,255,62,255,127,255,234,255,155,255,79,255,45,0,214,0,234,255,228,254,4,255,114,255,199,255, +98,0,215,0,224,0,234,0,199,0,247,255,233,254,108,254,191,254,120,255,189,255,121,255,225,255,11,1,59,1,126,0, +159,0,13,1,88,0,225,255,138,0,162,0,43,0,104,0,66,0,82,255,105,255,70,0,116,0,195,0,96,1,216,0, +174,255,70,255,72,255,108,255,236,255,77,0,102,0,119,0,77,0,40,0,92,0,70,0,175,255,50,255,7,255,69,255, +162,255,55,255,165,254,114,255,181,0,181,0,38,0,16,0,247,255,163,255,122,255,65,255,201,254,241,254,76,0,164,1, +192,1,126,1,176,1,100,1,86,0,104,255,151,254,12,254,98,254,223,254,67,255,123,0,93,1,145,0,230,255,39,0, +171,255,254,254,95,255,107,255,211,254,46,255,20,0,104,0,147,0,179,0,128,0,57,0,235,255,248,255,175,0,214,0, +11,0,216,255,14,0,118,255,76,255,84,0,182,0,22,0,52,0,18,1,108,1,62,1,2,1,217,0,227,0,190,0, +230,255,35,255,100,255,206,255,119,255,41,255,43,255,147,254,211,253,224,253,247,253,161,253,183,253,30,254,116,254,75,255, +83,0,210,0,82,1,194,1,138,1,150,1,35,2,202,1,246,0,248,0,20,1,166,0,60,0,195,255,116,255,217,255, +251,255,132,255,218,255,166,0,133,0,97,0,14,1,60,1,118,0,182,255,34,255,140,254,71,254,59,254,22,254,25,254, +60,254,0,254,186,253,46,254,223,254,244,254,22,255,234,255,136,0,140,0,195,0,36,1,65,1,104,1,84,1,150,0, +27,0,111,0,173,0,88,0,216,255,201,255,117,0,216,0,7,0,93,255,199,255,203,255,37,255,32,255,110,255,173,255, +131,0,250,0,53,0,243,255,206,0,53,1,94,1,2,2,244,1,64,1,79,1,56,1,202,255,108,254,32,254,49,254, +120,254,246,254,47,255,136,255,66,0,116,0,110,0,53,1,97,1,164,255,20,254,121,254,115,255,210,255,69,0,43,1, +248,1,2,2,42,1,79,0,231,255,12,255,217,253,207,253,163,254,7,255,227,255,243,1,28,3,46,2,26,1,14,1, +0,1,162,0,110,0,207,255,138,254,213,253,17,254,61,254,57,254,216,254,34,0,68,1,134,1,11,1,207,0,29,1, +30,1,177,0,90,0,226,255,127,255,229,255,79,0,254,255,241,255,85,0,37,0,188,255,145,255,253,254,148,254,121,255, +166,0,227,0,198,0,222,0,16,1,113,1,161,1,250,0,218,255,16,255,225,254,47,255,171,255,204,255,97,255,3,255, +87,255,1,0,95,0,181,0,39,1,28,1,172,0,126,0,168,0,63,1,252,1,207,1,5,1,236,0,208,0,193,255, +253,254,235,254,72,254,139,253,6,254,28,255,191,255,34,0,199,0,165,1,78,2,176,2,17,3,204,2,101,1,66,0, +244,255,233,254,43,253,134,252,232,252,72,253,198,253,97,254,217,254,171,255,216,0,99,1,199,0,149,255,228,254,6,255, +61,255,111,255,60,0,16,1,16,1,188,0,193,0,66,1,24,2,91,2,136,1,127,0,187,255,39,255,59,255,114,255, +213,254,130,254,89,255,6,0,90,0,81,1,240,1,74,1,131,0,55,0,30,0,127,0,216,0,54,0,102,255,89,255, +95,255,34,255,86,255,196,255,88,255,11,254,29,253,92,253,58,254,214,254,24,255,77,255,167,255,59,0,218,0,63,1, +122,1,131,1,26,1,125,0,41,0,248,255,159,255,114,255,181,255,47,0,188,0,79,1,127,1,34,1,176,0,80,0, +193,255,81,255,93,255,83,255,184,254,43,254,120,254,127,255,69,0,244,255,6,255,182,254,41,255,108,255,29,255,233,254, +55,255,32,255,239,253,5,253,204,253,255,254,98,255,15,0,36,1,224,0,134,255,6,255,119,255,221,255,38,0,83,0, +31,0,209,255,245,255,116,0,117,0,205,255,177,255,122,0,244,0,33,1,238,1,126,2,249,1,69,1,117,0,48,255, +9,255,119,0,14,1,0,0,52,255,59,255,32,255,6,255,140,255,21,0,153,255,111,254,8,254,212,254,236,255,229,0, +220,1,51,2,84,1,218,255,253,254,63,255,173,255,19,255,248,253,70,253,120,252,211,251,161,252,201,253,160,253,214,253, +194,255,100,1,229,1,134,2,224,2,143,2,49,3,135,4,54,4,109,2,251,0,211,255,126,254,186,253,224,253,90,254, +202,254,80,255,40,0,39,1,249,1,215,2,167,3,110,3,87,2,181,1,61,1,253,255,205,254,104,254,251,253,131,253, +190,253,18,254,202,253,117,253,81,253,7,253,222,252,26,253,127,253,100,254,73,0,150,2,103,4,167,5,51,6,137,5, +16,4,187,2,93,1,149,255,93,254,88,254,167,254,187,254,211,254,9,255,243,255,214,1,19,3,185,2,74,2,62,2, +97,1,78,0,42,0,234,255,4,255,187,254,244,254,130,254,238,253,36,254,136,254,111,254,13,254,129,253,240,252,233,252, +135,253,38,254,125,254,251,254,236,255,33,1,93,2,94,3,202,3,106,3,49,2,115,0,10,255,110,254,57,254,70,254, +229,254,195,255,93,0,252,0,216,1,158,2,95,3,51,4,105,4,161,3,170,2,14,2,59,1,17,0,138,255,200,255, +162,255,204,254,31,254,242,253,24,254,108,254,137,254,110,254,173,254,21,255,60,255,175,255,104,0,157,0,192,0,90,1, +161,1,90,1,231,0,218,255,176,254,163,254,229,254,117,254,100,254,205,254,146,254,143,254,123,255,182,255,3,255,67,255, +108,0,248,0,245,0,37,1,103,1,103,1,50,1,233,0,124,0,218,255,108,255,135,255,171,255,138,255,122,255,64,255, +147,254,60,254,193,254,155,255,79,0,152,0,105,0,88,0,140,0,75,0,173,255,121,255,154,255,170,255,159,255,102,255, +52,255,87,255,78,255,235,254,0,255,148,255,203,255,138,255,59,255,28,255,71,255,100,255,47,255,25,255,40,255,45,255, +234,255,92,1,61,2,201,2,211,3,65,4,107,3,89,2,241,0,240,254,235,253,95,254,208,254,240,254,104,255,20,0, +194,0,39,1,235,0,214,0,74,1,76,1,34,1,159,1,157,1,163,0,58,0,83,0,230,255,165,255,140,255,73,254, +203,252,229,252,223,253,107,254,204,254,78,255,135,255,50,255,176,254,187,254,66,255,177,255,93,0,91,1,143,1,53,1, +180,1,59,2,41,1,105,255,168,254,227,254,81,255,130,255,175,255,73,0,206,0,213,0,102,1,197,2,138,3,64,3, +141,2,87,1,155,255,15,254,23,253,204,252,27,253,183,253,233,254,167,0,189,1,9,2,66,2,115,1,109,255,112,254, +168,254,22,254,86,253,212,253,185,254,238,255,251,1,29,3,113,2,200,1,85,1,234,255,123,254,7,254,168,253,77,253, +232,253,89,255,234,0,28,2,156,2,202,2,12,3,190,2,92,1,128,255,45,254,255,253,124,254,170,254,0,255,118,0, +28,2,193,2,17,3,129,3,31,3,180,1,52,0,37,255,130,254,76,254,125,254,217,254,45,255,166,255,128,0,81,1, +161,1,110,1,133,0,9,255,56,254,102,254,84,254,234,253,28,254,152,254,244,254,185,255,112,0,90,0,78,0,200,0, +228,0,136,0,39,0,133,255,221,254,172,254,136,254,131,254,135,255,34,1,33,2,145,2,197,2,100,2,133,1,206,0, +163,0,181,0,29,0,232,254,174,254,209,255,158,0,139,0,134,0,58,0,58,255,181,254,13,255,54,255,38,255,78,255, +61,255,53,255,238,255,145,0,92,0,31,0,178,255,25,254,176,252,45,253,27,254,201,253,121,253,81,254,74,255,229,255, +222,0,227,1,23,2,246,1,54,2,96,2,209,1,168,0,96,255,151,254,135,254,139,254,105,254,223,254,189,255,231,255, +205,255,162,0,219,1,146,2,19,3,51,3,78,2,27,1,113,0,250,255,164,255,142,255,42,255,166,254,221,254,102,255, +167,255,23,0,124,0,46,0,221,255,247,255,162,255,246,254,238,254,112,255,222,255,251,255,172,255,130,255,24,0,183,0, +200,0,252,0,67,1,176,0,180,255,106,255,141,255,75,255,200,254,189,254,48,255,111,255,138,255,91,0,157,1,69,2, +84,2,1,2,40,1,99,0,225,255,163,254,51,253,73,253,105,254,27,255,95,255,54,255,147,254,146,254,64,255,58,255, +167,254,136,254,163,254,220,254,147,255,99,0,248,0,43,1,81,0,251,254,211,254,105,255,71,255,23,255,224,255,172,0, +110,0,179,255,164,255,68,0,82,0,163,255,176,255,149,0,248,0,36,1,229,1,84,2,251,1,206,1,240,1,186,1, +251,0,201,255,162,254,26,254,220,253,186,253,48,254,233,254,102,255,31,0,221,0,241,0,242,0,46,1,212,0,241,255, +14,255,56,254,47,254,59,255,232,255,201,255,213,255,228,255,207,255,49,0,51,0,80,255,52,255,238,255,178,255,58,255, +250,255,188,0,184,0,32,1,251,1,38,2,128,1,148,0,192,255,40,255,162,254,94,254,187,254,88,255,204,255,63,0, +143,0,168,0,226,0,4,1,190,0,101,0,218,255,20,255,11,255,168,255,188,255,223,255,23,1,71,2,109,2,3,2, +42,1,245,255,32,255,197,254,181,254,83,255,83,0,239,0,81,1,194,1,225,1,85,1,44,0,64,255,129,255,254,255, +93,255,193,254,87,255,223,255,181,255,225,255,84,0,81,0,21,0,191,255,45,255,200,254,149,254,56,254,17,254,114,254, +8,255,193,255,139,0,232,0,159,0,232,255,82,255,84,255,55,255,73,254,202,253,111,254,230,254,62,255,189,0,45,2, +2,2,102,1,16,1,55,0,152,255,2,0,71,0,50,0,215,0,107,1,231,0,100,0,104,0,254,255,119,255,131,255, +16,255,210,253,144,253,178,254,143,255,211,255,103,0,235,0,199,0,180,0,232,0,192,0,156,0,246,0,218,0,245,255, +95,255,72,255,10,255,249,254,90,255,120,255,51,255,50,255,135,255,216,255,18,0,68,0,175,0,106,1,254,1,42,2, +49,2,247,1,61,1,102,0,226,255,165,255,111,255,230,254,49,254,73,254,57,255,137,255,6,255,47,255,31,0,129,0, +69,0,46,0,55,0,85,0,165,0,136,0,210,255,121,255,157,255,126,255,104,255,221,255,70,0,90,0,116,0,63,0, +171,255,162,255,31,0,41,0,212,255,172,255,134,255,116,255,206,255,39,0,36,0,24,0,29,0,27,0,42,0,23,0, +184,255,109,255,66,255,14,255,47,255,144,255,117,255,59,255,235,255,21,1,147,1,118,1,100,1,110,1,105,1,90,1, +34,1,132,0,164,255,39,255,97,255,190,255,178,255,176,255,85,0,54,1,192,1,106,2,136,3,233,3,176,2,3,1, +231,255,192,254,138,253,68,253,162,253,173,253,140,253,107,253,52,253,159,253,200,254,116,255,131,255,222,255,80,0,115,0, +184,0,28,1,91,1,137,1,240,0,42,255,173,253,102,253,141,253,52,254,188,255,158,0,247,255,112,255,199,255,136,255, +171,254,50,255,85,1,251,2,100,3,207,3,58,4,84,3,136,1,60,0,26,255,120,253,38,252,188,251,222,251,116,252, +69,253,191,253,33,254,237,254,225,255,167,0,26,1,15,1,223,0,245,0,247,0,177,0,129,0,104,0,35,0,168,255, +246,254,122,254,222,254,212,255,152,0,6,1,40,1,53,1,171,1,33,2,255,1,10,2,170,2,225,2,167,2,153,2, +227,1,79,0,117,255,100,255,141,254,89,253,104,253,98,254,222,254,199,254,228,254,80,255,163,255,250,255,135,0,201,0, +153,0,149,0,147,0,225,255,14,255,193,254,89,254,188,253,212,253,206,254,50,0,145,1,57,2,53,2,98,2,35,2, +101,0,136,254,80,254,227,254,248,254,237,254,81,255,35,0,84,1,148,2,132,3,9,4,190,3,146,2,109,1,149,0, +72,255,220,253,88,253,72,253,234,252,244,252,221,253,208,254,120,255,75,0,77,1,37,2,56,2,213,0,242,254,118,254, +241,254,229,254,255,254,173,255,81,255,31,254,36,254,204,254,134,254,44,254,73,254,4,254,218,253,110,254,17,255,63,0, +123,2,191,3,70,3,69,3,236,3,78,3,229,1,255,0,25,0,45,255,44,255,186,255,33,0,110,0,65,0,68,255, +54,254,194,253,205,253,37,254,139,254,214,254,93,255,113,0,201,1,201,2,239,2,75,2,90,1,47,0,240,254,104,254, +166,254,133,254,167,253,17,253,129,253,169,254,140,255,122,255,53,255,203,255,149,0,179,0,24,1,95,2,18,3,110,2, +246,1,103,2,76,2,216,0,62,255,110,254,7,254,185,253,161,253,145,253,146,253,47,254,157,255,142,1,153,3,10,5, +82,5,143,4,4,3,19,1,178,255,28,255,86,254,96,253,90,253,1,254,33,254,221,253,225,253,247,253,250,253,60,254, +178,254,64,255,25,0,30,1,229,1,89,2,131,2,65,2,143,1,144,0,91,255,64,254,180,253,169,253,207,253,64,254, +2,255,147,255,225,255,74,0,143,0,142,0,10,1,16,2,174,2,241,2,83,3,250,2,107,1,229,255,101,255,161,255, +6,0,219,255,235,254,61,254,97,254,146,254,123,254,106,254,58,254,62,254,34,255,45,0,57,0,122,255,163,254,20,254, +41,254,169,254,232,254,243,254,26,255,91,255,237,255,172,0,210,0,152,0,208,0,242,0,81,0,191,255,229,255,50,0, +20,0,115,255,219,254,115,255,252,0,149,1,20,1,25,1,107,1,179,0,165,255,78,255,169,254,50,253,124,252,60,253, +62,254,251,254,231,255,158,0,109,0,212,255,131,255,70,255,228,254,178,254,234,254,87,255,158,255,212,255,177,0,76,2, +61,3,171,2,3,2,126,2,7,3,105,2,49,1,68,0,238,255,95,0,93,1,46,2,162,2,10,3,37,3,135,2, +107,1,31,0,164,254,107,253,41,253,160,253,243,253,4,254,62,254,106,254,24,254,161,253,164,253,4,254,66,254,32,254, +193,253,154,253,15,254,226,254,164,255,92,0,28,1,186,1,69,2,209,2,66,3,191,3,72,4,32,4,26,3,53,2, +232,1,187,1,116,1,210,0,168,255,226,254,15,255,7,255,116,254,99,254,59,254,213,252,141,251,182,251,56,252,135,252, +66,253,204,253,179,253,244,253,108,254,21,254,143,253,147,253,151,253,212,253,199,254,159,255,89,0,248,1,156,3,191,3, +30,3,245,2,85,3,58,4,36,5,206,4,134,3,184,2,53,2,45,1,38,0,181,255,174,255,12,0,127,0,75,0, +176,255,130,255,118,255,216,254,225,253,31,253,138,252,238,251,161,251,62,252,118,253,18,254,228,253,10,254,175,254,242,254, +225,254,252,254,229,254,174,254,112,255,14,1,246,1,234,1,94,2,182,3,152,4,65,4,103,3,123,2,32,1,203,255, +143,255,39,0,135,0,167,0,145,0,149,255,23,254,145,253,22,254,105,254,63,254,60,254,160,254,21,255,63,255,67,255, +112,255,103,255,207,254,113,254,210,254,76,255,179,255,44,0,199,255,99,254,200,253,113,254,250,254,81,255,44,0,188,0, +97,0,254,255,4,0,247,255,176,255,91,255,104,255,86,0,128,1,199,1,89,1,236,0,127,0,7,0,114,255,126,254, +223,253,101,254,60,255,118,255,142,255,142,255,241,254,121,254,248,254,143,255,122,255,85,255,184,255,111,0,1,1,27,1, +252,0,12,1,20,1,212,0,118,0,254,255,176,255,24,0,128,0,182,255,166,254,240,254,245,255,40,0,141,255,6,255, +23,255,172,255,16,0,220,255,193,255,46,0,126,0,58,0,156,255,238,254,159,254,217,254,9,255,251,254,72,255,204,255, +188,255,77,255,69,255,132,255,162,255,224,255,136,0,31,1,235,0,25,0,143,255,109,255,230,254,248,253,155,253,18,254, +191,254,95,255,0,0,98,0,78,0,253,255,213,255,241,255,252,255,253,255,148,0,154,1,223,1,65,1,167,0,221,255, +73,254,247,252,19,253,227,253,83,254,157,254,56,255,239,255,128,0,234,0,19,1,193,0,17,0,151,255,162,255,250,255, +146,0,104,1,221,1,158,1,98,1,163,1,16,2,126,2,164,2,220,1,125,0,139,255,252,254,135,254,194,254,186,255, +135,0,186,0,101,0,199,255,186,255,121,0,192,0,23,0,144,255,105,255,30,255,31,255,175,255,32,0,131,0,102,1, +77,2,218,2,109,3,160,3,209,2,168,1,197,0,213,255,35,255,117,255,95,0,241,0,14,1,241,0,182,0,150,0, +140,0,90,0,5,0,177,255,121,255,155,255,252,255,5,0,190,255,193,255,248,255,254,255,254,255,248,255,132,255,6,255, +63,255,222,255,30,0,249,255,194,255,184,255,27,0,202,0,111,1,33,2,198,2,189,2,35,2,220,1,233,1,157,1, +12,1,139,0,228,255,51,255,14,255,117,255,220,255,17,0,67,0,119,0,111,0,61,0,102,0,180,0,22,0,230,254, +221,254,187,255,164,255,215,254,188,254,186,254,3,254,142,253,222,253,68,254,196,254,155,255,86,0,199,0,202,0,26,0, +153,255,9,0,65,0,6,0,248,0,159,2,20,3,243,2,18,3,65,2,7,1,34,1,28,1,124,255,132,254,46,255, +54,255,158,254,91,255,182,0,71,1,131,1,54,1,196,255,170,254,239,254,238,254,158,253,94,252,107,252,145,253,237,254, +210,255,139,0,157,1,82,2,233,1,35,1,201,0,116,0,215,255,66,255,237,254,16,255,21,0,198,1,63,3,225,3, +160,3,157,2,50,1,32,0,173,255,244,254,112,253,115,252,42,253,184,254,29,0,153,1,222,2,245,2,90,2,35,2, +223,1,204,0,178,255,103,255,77,255,186,254,99,254,255,254,180,255,147,255,91,255,193,255,200,255,240,254,101,254,144,254, +181,254,10,255,230,255,99,0,73,0,162,0,113,1,198,1,151,1,55,1,147,0,239,255,117,255,205,254,43,254,58,254, +211,254,120,255,19,0,97,0,79,0,108,0,189,0,153,0,32,0,0,0,54,0,119,0,158,0,121,0,53,0,60,0, +62,0,180,255,203,254,203,253,216,252,145,252,72,253,46,254,150,254,218,254,73,255,145,255,174,255,87,0,198,1,172,2, +213,1,71,0,178,255,179,255,6,255,18,254,237,253,120,254,6,255,102,255,176,255,236,255,48,0,171,0,31,1,228,0, +94,0,188,0,104,1,2,1,160,0,130,1,229,1,210,0,53,0,104,0,47,0,80,0,245,0,39,0,172,254,248,254, +214,255,165,255,253,255,37,1,85,1,51,1,206,1,233,1,124,1,169,1,87,1,231,255,4,255,210,254,103,254,174,254, +94,255,113,254,227,252,2,253,213,253,48,254,23,255,25,0,243,255,243,255,241,0,55,1,155,0,196,0,46,1,148,0, +250,255,108,0,254,0,223,0,95,0,240,255,184,255,188,255,25,0,237,0,115,1,228,0,65,0,151,0,205,0,29,0, +164,255,108,255,106,254,116,253,170,253,249,253,172,253,218,253,201,254,121,255,131,255,38,255,208,254,223,254,225,254,87,254, +254,253,97,254,252,254,231,255,91,1,40,2,194,1,118,1,156,1,18,1,239,255,54,255,211,254,127,254,182,254,118,255, +19,0,102,0,188,0,29,1,126,1,188,1,136,1,245,0,68,0,31,255,125,253,130,252,188,252,16,253,8,253,187,253, +97,255,166,0,200,0,67,0,241,255,61,0,102,0,114,255,28,254,170,253,203,253,2,254,201,254,229,255,153,0,51,1, +188,1,78,1,30,0,82,255,25,255,41,255,79,255,11,255,178,254,114,255,245,0,169,1,140,1,146,1,126,1,192,0, +226,255,89,255,147,254,69,253,81,252,110,252,45,253,45,254,158,255,233,0,22,1,157,0,144,0,209,0,197,0,66,0, +92,255,200,254,106,255,172,0,59,1,16,1,231,0,232,0,250,0,3,1,188,0,38,0,123,255,205,254,106,254,133,254, +197,254,52,255,90,0,140,1,146,1,3,1,56,1,165,1,210,0,24,255,48,254,168,254,82,255,59,255,224,254,243,254, +39,255,50,255,134,255,35,0,92,0,74,0,96,0,48,0,176,255,242,255,188,0,83,0,232,254,117,254,41,255,174,255, +201,255,240,255,65,0,236,0,183,1,193,1,11,1,79,0,115,255,78,254,198,253,114,254,179,255,179,0,46,1,93,1, +108,1,0,1,9,0,70,255,223,254,63,254,198,253,37,254,208,254,90,255,68,0,67,1,102,1,214,0,0,0,142,254, +220,252,43,252,199,252,8,254,147,255,222,0,29,1,192,0,10,1,215,1,8,2,146,1,235,0,219,255,161,254,56,254, +163,254,16,255,85,255,170,255,25,0,190,0,79,1,129,1,222,1,56,2,67,1,160,255,96,255,14,0,15,0,20,0, +177,0,167,0,28,0,68,0,19,0,91,254,143,252,0,252,8,252,38,252,173,252,207,253,95,255,116,0,42,0,116,255, +191,255,104,0,74,0,219,255,197,255,241,255,122,0,86,1,252,1,86,2,134,2,63,2,188,1,148,1,81,1,101,0, +162,255,157,255,170,255,213,255,254,0,121,2,150,2,148,1,73,1,190,1,36,1,94,255,94,254,125,254,30,254,30,253, +246,252,201,253,158,254,56,255,132,255,48,255,230,254,182,255,45,1,153,1,82,0,214,254,212,254,183,255,5,0,5,0, +86,0,95,0,84,0,12,1,131,1,246,0,21,1,63,2,68,2,240,0,59,0,122,0,229,0,91,1,85,1,139,0, +13,0,63,0,72,0,9,0,252,255,78,0,58,1,16,2,99,1,230,255,124,255,121,255,110,254,94,253,63,253,60,253, +88,253,62,254,48,255,128,255,131,255,35,255,180,254,90,255,66,0,183,255,19,255,15,0,240,0,93,0,30,0,248,0, +154,1,231,1,85,2,87,2,14,2,49,2,80,2,233,1,55,1,36,0,12,255,3,255,163,255,162,255,125,255,60,0, +51,1,74,1,125,0,69,255,233,253,150,252,196,251,225,251,109,252,7,253,159,254,1,1,237,1,62,1,59,1,233,1, +150,1,145,0,185,255,219,254,135,254,71,255,248,255,56,0,24,1,117,2,120,3,67,4,123,4,101,3,2,2,119,1, +165,0,190,254,126,253,61,254,200,255,208,0,144,1,3,2,152,1,240,0,235,0,179,0,93,255,4,254,12,254,39,255, +47,0,155,0,171,0,192,0,231,0,45,1,138,1,100,1,140,0,179,255,227,254,200,253,102,253,105,254,166,255,156,0, +212,1,163,2,87,2,170,1,14,1,140,0,152,0,188,0,101,0,163,0,155,1,177,1,234,0,94,0,175,255,18,255, +125,255,222,255,76,255,66,255,251,255,194,255,186,254,36,254,227,253,234,253,154,254,51,255,84,255,249,255,16,1,37,1, +47,0,206,255,131,0,6,1,136,0,195,255,95,255,31,255,235,254,252,254,74,255,196,255,69,0,134,0,181,0,229,0, +126,0,137,255,220,254,136,254,93,254,223,254,231,255,169,0,65,1,229,1,235,1,17,1,255,255,71,255,214,254,38,254, +97,253,142,253,135,254,49,255,237,255,23,1,75,1,123,0,59,0,84,0,26,0,120,0,245,0,7,0,186,254,113,254, +72,254,32,254,5,255,45,0,121,0,144,0,214,0,161,0,2,0,179,255,189,255,69,255,246,253,14,253,139,253,82,254, +121,254,251,254,90,0,129,1,144,1,236,0,1,1,128,2,136,3,87,2,125,0,219,255,210,255,195,255,221,255,200,255, +208,255,155,0,37,1,179,0,57,0,204,255,243,254,163,254,43,255,97,255,106,255,89,0,150,1,208,1,244,0,243,255, +131,255,77,255,148,254,126,253,174,252,127,252,52,253,111,254,70,255,222,255,206,0,155,1,215,1,228,1,166,1,235,0, +87,0,144,0,162,1,229,2,52,3,154,2,51,2,224,1,28,1,152,0,92,0,197,255,90,255,59,255,203,254,23,255, +150,0,49,1,133,0,68,0,38,0,228,255,195,0,112,1,195,255,162,253,20,253,254,252,117,253,83,255,143,0,255,255, +217,255,187,0,208,0,77,0,181,0,116,1,101,1,17,1,40,1,58,1,23,1,23,1,220,0,19,0,141,255,155,255, +170,255,41,0,38,1,234,0,152,255,158,255,166,0,103,0,151,255,229,255,126,0,99,0,8,0,232,255,25,0,30,0, +90,255,172,254,255,254,97,255,65,255,85,255,93,255,7,255,4,255,249,254,67,254,233,253,77,254,149,254,33,255,71,0, +246,0,59,1,219,1,244,1,245,0,35,0,37,0,84,0,77,0,59,0,125,0,18,1,89,1,95,1,183,1,197,1, +229,0,191,255,183,254,238,253,47,254,51,255,154,255,164,255,68,0,253,0,75,1,106,1,73,1,221,0,81,0,142,255, +253,254,4,255,222,254,120,254,4,255,59,0,173,0,142,0,214,0,22,1,83,0,177,254,127,253,168,253,124,254,46,255, +13,0,239,0,44,1,42,1,29,1,118,0,222,255,70,0,200,0,163,0,113,0,119,0,191,0,100,1,112,1,77,0, +24,255,118,254,10,254,11,254,106,254,139,254,209,254,136,255,221,255,196,255,2,0,113,0,201,0,54,1,88,1,235,0, +119,0,54,0,232,255,147,255,95,255,114,255,151,255,78,255,224,254,226,254,188,254,76,254,207,254,1,0,53,0,187,255, +251,255,192,0,64,1,87,1,26,1,228,0,204,0,90,0,202,255,182,255,190,255,141,255,96,255,31,255,84,255,199,0, +32,2,233,1,125,1,205,1,76,1,204,255,7,255,249,254,93,254,144,253,216,253,52,255,93,0,122,0,69,0,167,0, +56,1,64,1,218,0,89,0,224,255,107,255,232,254,169,254,245,254,88,255,189,255,174,0,155,1,118,1,194,0,125,0, +140,0,113,0,5,0,148,255,195,255,73,0,56,0,3,0,142,0,36,1,226,0,4,0,208,254,171,253,82,253,156,253, +13,254,249,254,74,0,83,1,7,2,76,2,173,1,168,0,227,255,12,255,82,254,121,254,71,255,253,255,81,0,26,0, +176,255,215,255,93,0,131,0,77,0,32,0,76,0,21,1,1,2,50,2,179,1,246,0,10,0,91,255,115,255,243,255, +59,0,84,0,73,0,212,255,62,255,85,255,0,0,39,0,187,255,224,255,152,0,5,1,137,1,87,2,254,1,83,0, +73,255,147,255,54,0,178,0,193,0,62,0,232,255,184,255,162,254,139,253,60,254,169,255,215,255,102,255,159,255,57,0, +236,0,235,1,99,2,139,1,104,0,74,0,187,0,187,0,139,0,153,0,93,0,187,255,162,255,69,0,152,0,9,0, +64,255,248,254,18,255,11,255,254,254,113,255,85,0,28,1,105,1,50,1,1,1,118,1,196,1,172,0,1,255,42,254, +212,253,173,253,41,254,129,254,10,254,36,254,67,255,229,255,11,0,207,0,105,1,14,1,184,0,183,0,110,0,99,0, +13,1,184,1,58,2,174,2,84,2,83,1,218,0,147,0,143,255,179,254,197,254,252,254,97,255,152,0,123,1,31,1, +210,0,3,1,74,0,238,254,167,254,72,255,174,255,240,255,77,0,110,0,106,0,106,0,27,0,144,255,52,255,3,255, +204,254,112,254,208,253,61,253,62,253,193,253,168,254,31,0,104,1,110,1,200,0,212,0,66,1,227,0,220,255,60,255, +71,255,138,255,220,255,102,0,233,0,2,1,229,0,252,0,241,0,77,0,154,255,164,255,61,0,186,0,253,0,65,1, +157,1,203,1,74,1,82,0,245,255,64,0,216,255,132,254,126,253,228,252,3,252,129,251,67,252,141,253,92,254,229,254, +160,255,74,0,126,0,162,0,75,1,190,1,28,1,161,0,118,1,233,1,194,0,243,255,167,0,85,1,67,1,38,1, +248,0,135,0,11,0,54,255,46,254,231,253,50,254,107,254,73,255,242,0,210,1,116,1,23,1,220,0,200,255,17,254, +224,252,137,252,88,252,206,251,93,251,188,251,176,252,96,253,198,253,153,254,207,255,160,0,249,0,100,1,181,1,115,1, +2,1,11,1,107,1,140,1,75,1,76,1,250,1,71,2,77,1,108,0,228,0,93,1,206,0,94,0,101,0,10,0, +174,255,243,255,99,0,207,0,20,1,94,0,11,255,155,254,237,254,219,254,125,254,87,254,82,254,127,254,25,255,222,255, +87,0,114,0,143,0,204,0,201,0,208,0,136,1,19,2,47,1,115,255,237,253,204,252,160,252,179,253,253,254,18,0, +88,1,37,2,53,2,128,2,115,2,176,0,151,254,64,254,229,254,46,255,170,255,194,0,78,1,143,0,124,255,43,255, +36,255,130,254,182,253,196,253,148,254,85,255,201,255,114,0,168,1,168,2,137,2,206,1,105,1,5,1,253,255,176,254, +231,253,242,253,114,254,203,254,10,255,85,255,64,255,56,255,46,0,33,1,200,0,105,0,0,1,242,0,97,255,239,253, +49,254,203,255,207,0,47,0,127,255,5,0,103,0,253,255,186,255,57,255,108,254,20,255,181,0,35,1,27,1,218,1, +61,2,40,2,151,2,152,2,201,1,136,1,78,1,225,255,152,254,176,254,114,255,84,0,249,0,203,0,139,0,11,1, +96,1,11,1,201,0,129,0,214,255,120,255,175,255,217,255,7,0,153,0,18,1,248,0,148,0,8,0,29,255,50,254, +237,253,30,254,63,254,105,254,171,254,204,254,33,255,26,0,73,1,223,1,123,1,167,0,157,0,76,1,95,1,72,1, +35,2,85,2,205,0,215,255,69,0,60,0,12,0,167,0,80,0,235,254,47,255,238,0,132,1,212,0,63,0,39,0, +134,0,216,0,135,0,70,0,138,0,128,0,68,0,154,0,213,0,96,0,24,0,13,0,47,255,217,253,155,253,121,254, +215,254,115,254,227,254,101,0,76,1,8,1,146,0,80,0,23,0,152,255,120,254,209,253,7,255,154,0,174,0,165,0, +170,1,53,2,200,1,112,1,216,0,173,255,47,255,163,255,156,255,174,254,46,254,32,255,162,0,73,1,84,1,125,1, +59,1,148,0,137,0,178,0,101,0,166,0,156,1,233,1,162,1,145,1,75,1,160,0,191,255,121,254,165,253,253,253, +35,254,179,253,90,254,193,255,48,0,125,0,174,1,48,2,255,0,116,255,218,254,253,254,234,254,118,254,174,254,190,255, +113,0,185,0,87,1,182,1,105,1,31,1,172,0,208,255,164,255,2,0,106,255,141,254,241,254,139,255,64,255,83,255, +103,0,89,1,200,1,254,1,149,1,206,0,205,0,50,1,158,0,95,255,148,254,72,254,101,254,12,255,122,255,72,255, +83,255,152,255,41,255,139,254,163,254,252,254,87,255,36,0,6,1,124,1,193,1,186,1,47,1,110,0,137,255,147,254, +66,254,182,254,97,255,42,0,231,0,40,1,30,1,221,0,252,255,4,255,198,254,17,255,207,255,238,0,148,1,215,1, +175,2,90,3,193,2,199,1,22,1,41,0,68,255,205,254,105,254,103,254,250,254,32,255,222,254,80,255,50,0,191,0, +41,1,112,1,119,1,184,1,231,1,81,1,120,0,211,255,236,254,7,254,225,253,40,254,88,254,167,254,59,255,209,255, +3,0,190,255,189,255,119,0,22,1,21,1,54,1,189,1,239,1,138,1,217,0,23,0,163,255,139,255,49,255,97,254, +202,253,211,253,234,253,124,253,8,253,93,253,43,254,173,254,30,255,236,255,174,0,35,1,133,1,188,1,172,1,180,1, +10,2,125,2,206,2,166,2,245,1,59,1,215,0,221,0,86,1,160,1,240,0,232,255,151,255,104,255,137,254,189,253, +164,253,130,253,32,253,109,253,207,254,127,0,131,1,136,1,51,1,51,1,248,0,201,255,162,254,185,254,105,255,211,255, +139,0,224,1,242,2,22,3,74,2,253,0,35,0,248,255,148,255,13,255,90,255,235,255,205,255,216,255,197,0,178,1, +9,2,236,1,64,1,54,0,59,255,55,254,99,253,65,253,76,253,26,253,145,253,247,254,61,0,234,0,45,1,222,0, +25,0,118,255,64,255,124,255,220,255,0,0,152,0,102,2,15,4,245,3,17,3,187,2,57,2,247,0,223,255,70,255, +145,254,234,253,198,253,168,253,72,253,145,253,255,254,154,0,118,1,232,1,125,2,254,2,253,2,166,2,105,2,44,2, +97,1,39,0,100,255,79,255,57,255,9,255,45,255,82,255,24,255,255,254,45,255,6,255,147,254,122,254,173,254,210,254, +36,255,192,255,38,0,16,0,194,255,124,255,68,255,36,255,22,255,25,255,111,255,76,0,83,1,244,1,42,2,44,2, +1,2,219,1,1,2,42,2,233,1,103,1,231,0,98,0,206,255,13,255,24,254,161,253,41,254,207,254,204,254,216,254, +116,255,176,255,214,254,127,253,206,252,147,253,118,255,227,0,2,1,203,0,57,1,231,1,233,1,209,0,43,255,74,254, +155,254,231,254,146,254,163,254,162,255,155,0,230,0,244,0,44,1,91,1,70,1,73,1,207,1,78,2,18,2,176,1, +199,1,116,1,48,0,53,255,35,255,16,255,197,254,239,254,89,255,94,255,32,255,237,254,215,254,6,255,85,255,96,255, +98,255,220,255,170,0,116,1,45,2,149,2,105,2,224,1,24,1,210,255,126,254,4,254,49,254,51,254,85,254,37,255, +239,255,11,0,24,0,127,0,185,0,184,0,236,0,61,1,155,1,90,2,58,3,142,3,20,3,208,1,82,0,201,255, +45,0,232,255,160,254,192,253,208,253,2,254,254,253,228,253,176,253,169,253,53,254,43,255,38,0,10,1,238,1,213,2, +60,3,125,2,250,0,218,255,131,255,128,255,106,255,66,255,120,255,66,0,212,0,139,0,20,0,245,255,160,255,2,255, +166,254,138,254,178,254,97,255,217,255,68,255,96,254,32,254,77,254,155,254,69,255,92,0,168,1,175,2,251,2,4,3, +97,3,111,3,142,2,103,1,162,0,26,0,177,255,103,255,53,255,57,255,47,255,196,254,126,254,173,254,159,254,59,254, +25,254,41,254,100,254,26,255,178,255,246,255,2,1,102,2,91,2,156,1,220,1,39,2,128,1,27,1,83,1,62,1, +16,1,30,1,3,1,48,1,226,1,233,1,38,1,216,0,233,0,145,0,36,0,192,255,2,255,107,254,91,254,67,254, +23,254,67,254,136,254,158,254,146,254,63,254,224,253,16,254,142,254,183,254,178,254,226,254,105,255,92,0,89,1,244,1, +141,2,97,3,224,3,252,3,54,4,141,4,194,4,131,4,40,3,247,0,84,255,110,254,93,253,146,252,239,252,193,253, +35,254,111,254,236,254,41,255,23,255,35,255,76,255,34,255,170,254,132,254,217,254,54,255,177,255,140,0,253,0,104,0, +188,255,166,255,126,255,236,254,105,254,70,254,176,254,135,255,30,0,123,0,86,1,47,2,41,2,251,1,122,2,31,3, +112,3,77,3,84,2,232,0,21,0,181,255,38,255,189,254,143,254,25,254,208,253,86,254,204,254,95,254,4,254,204,254, +38,0,239,0,255,0,195,0,89,0,235,255,217,255,179,255,203,254,250,253,91,254,43,255,115,255,208,255,127,0,157,0, +3,0,46,255,85,254,8,254,173,254,160,255,190,0,165,2,173,4,164,5,210,5,217,5,139,5,201,4,134,3,202,1, +125,0,13,0,104,255,70,254,192,253,217,253,198,253,166,253,141,253,9,253,119,252,124,252,239,252,126,253,247,253,65,254, +215,254,205,255,94,0,175,0,111,1,199,1,16,1,67,0,143,255,146,254,145,254,183,255,168,255,117,254,36,255,212,1, +186,3,18,4,234,3,148,3,249,2,218,1,6,0,142,254,138,254,43,255,118,255,217,255,134,0,246,0,21,1,187,0, +89,255,88,253,3,252,240,251,164,252,97,253,215,253,55,254,150,254,198,254,6,255,162,255,40,0,21,0,167,255,112,255, +202,255,107,0,142,0,74,0,126,0,252,0,27,1,109,1,54,2,88,2,240,1,54,2,112,2,116,1,182,0,157,1, +149,2,251,1,149,0,136,255,230,254,154,254,139,254,47,254,66,253,129,252,228,252,51,254,36,255,31,255,187,254,109,254, +20,254,225,253,47,254,205,254,86,255,182,255,255,255,99,0,59,1,142,2,190,3,28,4,194,3,94,3,254,2,220,1, +5,0,231,254,50,255,190,255,183,255,251,255,53,1,159,2,122,3,186,3,46,3,216,1,104,0,18,255,134,253,135,252, +240,252,200,253,29,254,208,254,47,0,228,0,169,0,127,0,76,0,177,255,114,255,166,255,98,255,3,255,141,255,115,0, +200,0,205,0,214,0,230,0,61,1,119,1,184,0,138,255,63,255,180,255,247,255,228,255,172,255,114,255,152,255,39,0, +190,0,91,1,232,1,203,1,48,1,241,0,205,0,246,255,3,255,7,255,160,255,194,255,117,255,99,255,137,255,128,255, +122,255,177,255,174,255,102,255,172,255,77,0,24,0,86,255,68,255,147,255,114,255,77,255,87,255,8,255,220,254,159,255, +165,0,29,1,117,1,237,1,9,2,183,1,38,1,40,0,54,255,156,255,151,1,189,3,209,4,255,4,212,4,43,4, +174,2,205,0,116,255,206,254,54,254,137,253,137,253,100,254,69,255,186,255,18,0,45,0,180,255,57,255,92,255,147,255, +109,255,151,255,65,0,111,0,2,0,14,0,183,0,58,1,196,1,152,2,185,2,179,1,155,0,253,255,110,255,14,255, +14,255,6,255,68,255,121,0,238,1,155,2,191,2,166,2,254,1,60,1,22,1,24,1,208,0,167,0,135,0,204,255, +167,254,182,253,69,253,182,253,243,254,184,255,104,255,57,255,2,0,15,1,201,1,60,2,97,2,108,2,131,2,247,1, +140,0,95,255,13,255,222,254,115,254,81,254,218,254,151,255,173,255,27,255,208,254,215,254,114,254,55,254,0,255,251,255, +122,0,9,1,148,1,189,1,224,1,124,1,255,255,226,254,3,255,207,254,21,254,168,254,66,0,27,1,55,1,84,1, +64,1,240,0,199,0,227,0,87,1,2,2,106,2,107,2,41,2,164,1,28,1,169,0,174,255,25,254,5,253,16,253, +137,253,218,253,94,254,71,255,227,255,212,255,223,255,43,0,168,255,140,254,148,254,201,255,120,0,107,0,154,0,205,0, +145,0,138,0,18,1,128,1,138,1,165,1,17,2,108,2,48,2,120,1,28,1,152,1,72,2,92,2,219,1,37,1, +93,0,182,255,88,255,16,255,196,254,198,254,18,255,6,255,91,254,175,253,151,253,190,253,163,253,186,253,153,254,163,255, +9,0,86,0,56,1,254,1,205,1,26,1,174,0,109,0,242,255,148,255,222,255,145,0,15,1,86,1,139,1,107,1, +229,0,53,0,138,255,94,255,225,255,12,0,57,255,99,254,87,254,236,254,229,255,146,0,111,0,139,0,128,1,12,2, +199,1,116,1,156,0,58,255,225,254,71,255,159,254,139,253,148,253,73,254,7,255,213,255,69,0,142,0,119,1,30,2, +109,1,77,0,176,255,98,255,131,255,7,0,232,255,20,255,231,254,198,255,158,0,182,0,73,0,189,255,89,255,95,255, +182,255,181,255,17,255,152,254,231,254,107,255,178,255,58,0,242,0,23,1,234,0,33,1,39,1,126,0,35,0,107,0, +52,0,132,255,115,255,173,255,123,255,109,255,142,255,38,255,196,254,23,255,88,255,69,255,172,255,102,0,207,0,247,0, +220,0,81,0,182,255,35,255,68,254,95,253,51,253,49,254,250,255,83,1,136,1,31,1,109,0,140,255,75,255,167,255, +160,255,188,255,238,0,31,2,103,2,100,2,230,1,127,0,37,255,47,254,241,252,20,252,154,252,13,254,181,255,58,1, +50,2,188,2,209,2,167,1,207,255,52,255,202,255,217,255,51,255,225,254,208,254,65,254,167,253,32,254,102,255,17,0, +231,255,177,255,112,255,36,255,104,255,210,255,171,255,224,255,5,1,235,1,75,2,237,2,56,3,127,2,130,1,116,0, +38,255,232,254,35,0,198,0,17,0,182,255,3,0,194,255,80,255,136,255,175,255,75,255,31,255,76,255,81,255,106,255, +179,255,163,255,102,255,170,255,47,0,66,0,1,0,1,0,102,0,207,0,252,0,14,1,8,1,237,0,40,1,173,1, +169,1,240,0,10,0,39,255,180,254,23,255,97,255,34,255,136,255,118,0,142,0,78,0,137,0,97,0,240,255,32,0, +244,255,243,254,221,254,178,255,177,255,75,255,140,255,119,255,187,254,156,254,9,255,3,255,29,255,106,0,81,2,84,3, +0,3,20,2,58,1,116,0,175,255,14,255,196,254,224,254,41,255,148,255,115,0,70,1,246,0,3,0,209,255,239,255, +61,255,118,254,199,254,173,255,26,0,35,0,108,0,222,0,250,0,238,0,228,0,63,0,87,255,165,255,192,0,187,0, +172,255,26,255,98,255,12,0,141,0,110,0,48,0,102,0,137,0,129,0,254,0,142,1,121,1,34,1,152,0,172,255, +28,255,35,255,29,255,47,255,118,255,59,255,213,254,72,255,23,0,60,0,179,255,241,254,121,254,140,254,189,254,248,254, +210,255,69,1,203,2,30,4,187,4,54,4,7,3,198,1,198,0,39,0,49,255,134,253,206,252,7,254,90,255,145,255, +10,0,45,1,107,1,132,0,213,255,143,255,16,255,208,254,90,255,214,255,211,255,93,0,185,1,180,2,220,2,151,2, +212,1,192,0,233,255,238,254,148,253,7,253,224,253,55,255,163,0,114,2,15,4,146,4,241,3,133,2,172,0,19,255, +81,254,82,254,152,254,227,254,68,255,207,255,83,0,82,0,168,255,13,255,20,255,61,255,47,255,118,255,12,0,55,0, +77,0,16,1,221,1,150,1,83,0,51,255,55,255,14,0,72,0,169,255,111,255,202,255,196,255,108,255,99,255,116,255, +129,255,246,255,155,0,166,0,32,0,227,255,48,0,100,0,39,0,220,255,187,255,201,255,67,0,248,0,31,1,116,0, +124,255,214,254,209,254,8,255,223,254,142,254,140,254,225,254,200,255,47,1,241,1,146,1,31,1,46,1,62,1,196,0, +173,255,165,254,128,254,224,254,33,255,138,255,252,255,17,0,91,0,229,0,220,0,156,0,178,0,131,0,44,0,41,0, +210,255,111,255,45,0,82,1,244,1,133,2,133,2,166,1,97,1,118,1,37,0,91,254,109,253,143,252,33,252,44,253, +89,254,191,254,64,255,180,255,18,0,61,1,40,2,179,1,77,1,81,1,109,0,118,255,102,255,10,255,96,254,117,254, +124,254,31,254,149,254,100,255,53,255,158,254,164,254,89,255,101,0,233,0,179,0,29,1,140,2,180,3,45,4,87,4, +255,3,50,3,7,2,45,0,148,254,114,254,175,254,32,254,215,253,94,254,188,254,12,255,246,255,193,0,197,0,104,0, +26,0,62,0,232,0,54,1,220,0,223,0,90,1,90,1,244,0,164,0,14,0,35,255,101,254,192,253,214,252,189,251, +36,251,15,252,73,254,20,0,53,1,29,3,57,5,148,5,130,4,98,3,21,2,123,0,78,255,210,254,179,254,164,254, +189,254,122,255,75,0,205,255,168,254,166,254,84,255,129,255,134,255,157,255,158,255,0,0,111,0,58,0,253,255,229,255, +109,255,115,255,26,0,166,255,96,254,45,254,151,254,160,254,223,254,84,255,172,255,61,0,95,0,190,255,213,255,125,0, +5,0,29,255,29,255,95,255,154,255,9,0,32,0,76,0,28,1,60,1,146,0,227,0,134,1,165,0,73,255,22,255, +209,255,206,0,124,1,144,1,178,1,9,2,226,1,113,1,30,1,171,0,107,0,108,0,202,255,239,254,248,254,45,255, +167,254,230,253,51,253,230,252,176,253,178,254,245,254,160,255,5,1,122,1,6,1,250,0,247,0,80,0,152,255,57,255, +78,255,25,0,25,1,169,1,10,2,47,2,87,1,184,255,107,254,230,253,197,253,186,253,70,254,246,255,215,1,115,2, +29,2,233,1,156,1,239,0,136,0,84,0,171,255,232,254,162,254,171,254,184,254,152,254,94,254,200,254,202,255,24,0, +208,255,35,0,79,0,93,255,155,254,147,254,30,254,194,253,221,254,200,0,107,2,78,3,229,2,247,1,187,1,23,1, +71,255,40,254,45,254,0,254,56,254,98,255,20,0,92,0,77,1,217,1,82,1,35,1,158,1,204,1,80,1,18,0, +217,254,232,254,94,255,233,254,201,254,206,255,156,0,224,0,41,1,27,1,221,0,182,0,226,255,230,254,35,255,167,255, +58,255,246,254,108,255,190,255,228,255,251,255,202,255,250,255,165,0,129,0,163,255,117,255,10,0,167,0,43,1,132,1, +207,1,98,2,165,2,200,1,66,0,224,254,185,253,225,252,172,252,61,253,136,254,33,0,103,1,93,2,86,3,159,3, +98,2,135,0,142,255,82,255,16,255,48,255,250,255,119,0,13,0,52,255,119,254,18,254,203,253,10,253,54,252,124,252, +180,253,198,254,119,255,228,255,244,255,2,0,81,0,111,0,92,0,160,0,47,1,151,1,168,1,112,1,27,1,191,0, +118,0,158,0,16,1,29,1,206,0,141,0,71,0,76,0,221,0,214,0,181,255,254,254,110,255,240,255,240,255,245,255, +150,0,171,1,211,1,82,0,196,254,91,254,49,254,32,254,214,254,126,255,87,255,65,255,181,255,91,0,21,1,119,1, +69,1,49,1,102,1,106,1,105,1,44,1,17,0,21,255,141,255,144,0,183,0,148,0,97,1,190,2,211,2,5,1, +80,255,4,255,209,254,52,254,161,254,0,0,201,0,29,1,210,1,109,2,38,2,208,0,213,254,90,253,239,252,168,252, +13,252,65,252,231,253,230,255,21,1,133,1,212,1,10,2,203,1,47,1,146,0,236,255,45,255,159,254,120,254,159,254, +33,255,12,0,226,0,11,1,221,0,26,1,138,1,109,1,246,0,162,0,255,255,188,254,195,253,30,254,170,255,76,1, +9,2,25,2,119,2,33,3,248,2,199,1,178,0,20,0,250,254,127,253,43,253,52,254,58,255,203,255,42,0,22,0, +234,255,79,0,75,0,43,255,85,254,147,254,25,255,207,255,194,0,47,1,55,1,129,1,182,1,175,1,151,1,231,0, +197,255,3,255,88,254,195,253,66,254,75,255,200,255,107,0,112,1,196,1,161,1,202,1,210,1,83,1,15,0,22,254, +56,253,150,254,53,0,207,0,137,1,106,2,136,2,26,2,251,0,219,254,2,253,115,252,245,252,135,254,91,0,248,0, +245,0,121,1,157,1,215,0,30,0,114,255,154,254,144,254,96,255,206,255,208,255,50,0,184,0,139,0,119,255,92,254, +86,254,56,255,239,255,91,0,0,1,149,1,145,1,12,1,64,0,87,255,165,254,59,254,230,253,3,254,2,255,75,0, +4,1,111,1,228,1,201,1,222,0,228,255,134,255,224,255,153,0,14,1,67,1,181,1,217,1,5,1,3,0,152,255, +128,255,177,255,251,255,191,255,159,255,144,0,125,1,16,1,226,255,250,254,203,254,127,255,119,0,210,0,167,0,118,0, +107,0,136,0,126,0,36,0,229,255,7,0,155,0,157,1,22,2,76,1,100,0,253,255,18,255,7,254,32,254,151,254, +188,254,166,255,16,1,69,1,117,0,210,255,36,255,5,254,42,253,67,253,28,254,36,255,14,0,170,0,189,0,147,0, +136,0,70,0,244,255,112,0,52,1,3,1,118,0,154,0,253,0,45,1,87,1,109,1,156,1,6,2,2,2,137,1, +72,1,230,0,13,0,183,255,61,0,180,0,141,0,243,255,100,255,124,255,15,0,54,0,124,255,81,254,192,253,107,254, +115,255,233,255,54,0,148,0,145,0,106,0,115,0,172,0,101,1,224,1,191,0,53,255,4,255,222,254,232,253,23,254, +194,255,243,0,103,1,240,1,53,2,227,1,60,1,77,0,80,255,186,254,163,254,177,254,143,254,172,254,184,255,229,0, +31,1,210,0,239,255,220,253,61,252,155,252,127,253,30,254,133,255,225,0,1,1,241,0,16,1,153,0,60,0,39,0, +31,255,189,253,135,253,26,254,14,255,161,0,168,1,68,1,168,0,159,0,145,0,96,0,108,0,143,0,89,0,209,255, +182,255,122,0,13,1,109,0,157,255,246,255,233,0,218,0,111,255,37,254,64,254,240,254,46,255,181,255,187,0,245,0, +139,0,233,0,151,1,103,1,244,0,231,0,159,0,235,255,139,255,196,255,34,0,37,0,211,255,189,255,243,255,224,255, +146,255,121,255,47,255,111,254,250,253,62,254,194,254,51,255,119,255,138,255,164,255,147,255,247,254,130,254,209,254,38,255, +87,255,37,0,29,1,121,1,178,1,200,1,40,1,143,0,139,0,81,0,223,255,213,255,244,255,82,0,34,1,121,1, +64,1,106,1,81,1,90,0,229,255,60,0,75,0,102,0,184,0,104,0,44,0,188,0,197,0,248,255,108,255,243,254, +155,254,52,255,200,255,126,255,124,255,190,255,117,255,193,255,216,0,5,1,145,0,174,0,185,0,215,0,227,1,76,2, +20,1,91,0,237,0,14,1,152,0,165,0,203,0,132,0,76,0,67,0,58,0,127,0,221,0,138,0,212,255,246,255, +240,0,107,1,242,0,77,0,214,255,68,255,189,254,135,254,121,254,156,254,60,255,15,0,107,0,42,0,164,255,33,255, +186,254,118,254,107,254,205,254,132,255,248,255,235,255,253,255,78,0,30,0,177,255,76,0,187,1,93,2,169,1,200,0, +2,1,255,1,12,2,19,1,5,1,219,1,135,1,76,0,8,0,122,0,142,0,130,0,147,0,115,0,16,0,226,255, +191,0,14,2,151,1,189,255,86,255,250,255,106,255,203,254,124,255,250,255,200,255,244,255,71,0,132,0,229,0,216,0, +173,0,11,1,197,0,0,0,206,0,253,1,231,0,24,255,1,255,196,255,29,0,31,0,36,0,172,0,55,1,189,0, +43,0,115,0,62,0,61,255,235,254,74,255,197,255,153,0,13,1,146,0,57,0,41,0,177,255,143,255,228,255,117,255, +160,254,112,254,100,254,101,254,36,255,198,255,74,255,209,254,134,255,115,0,72,0,147,255,168,255,100,0,206,0,195,0, +106,0,218,255,222,255,138,0,184,0,121,0,122,0,254,255,29,255,88,255,21,0,238,255,253,255,2,1,167,1,176,1, +159,1,229,0,252,255,236,255,171,255,202,254,74,255,78,1,103,2,12,2,101,1,126,0,145,255,164,255,11,0,72,255, +81,254,223,254,27,0,122,0,91,0,67,0,177,255,210,254,85,254,29,254,41,254,227,254,235,255,181,0,72,1,88,1, +215,0,195,0,84,1,104,1,172,0,2,0,34,0,24,1,246,1,133,1,41,0,106,255,144,255,168,255,87,255,60,255, +216,255,162,0,197,0,137,0,79,0,167,255,250,254,86,255,244,255,187,255,171,255,102,0,206,0,193,0,236,0,190,0, +6,0,220,255,58,0,64,0,69,0,182,0,212,0,89,0,218,255,135,255,108,255,180,255,214,255,108,255,70,255,245,255, +184,0,231,0,161,0,234,255,236,254,99,254,169,254,137,255,200,0,199,1,212,1,77,1,1,1,230,0,163,0,29,0, +66,255,148,254,229,254,192,255,228,255,142,255,247,255,226,0,12,1,174,0,49,1,77,2,42,2,169,0,194,255,33,0, +96,0,213,255,94,255,93,255,52,255,226,254,35,255,194,255,231,255,14,0,242,0,117,1,208,0,129,0,60,1,141,1, +226,0,43,0,249,255,72,0,150,0,33,0,144,255,247,255,111,0,13,0,176,255,178,255,136,255,149,255,238,255,215,255, +175,255,24,0,127,0,201,0,79,1,62,1,60,0,154,255,212,255,4,0,26,0,133,0,182,0,53,0,214,255,45,0, +99,0,248,255,210,255,56,0,62,0,238,255,28,0,154,0,212,0,172,0,28,0,172,255,246,255,48,0,143,255,154,254, +146,253,142,252,114,252,39,253,163,253,53,254,56,255,208,255,15,0,138,0,185,0,180,0,49,1,154,1,172,1,52,2, +163,2,254,1,247,0,85,0,6,0,225,255,86,255,119,254,89,254,145,254,51,254,142,254,27,0,223,0,157,0,197,0, +247,0,184,0,226,0,83,1,66,1,201,0,26,0,159,255,221,255,33,0,229,255,237,255,29,0,219,255,246,255,151,0, +118,0,171,255,60,255,27,255,46,255,157,255,214,255,145,255,94,255,145,255,228,255,211,255,93,255,111,255,37,0,123,0, +207,0,248,1,169,2,224,1,209,0,53,0,201,255,199,255,202,255,49,255,199,254,9,255,91,255,215,255,132,0,148,0, +110,0,176,0,88,0,114,255,143,255,27,0,142,255,221,254,61,255,210,255,254,255,25,0,215,255,79,255,155,255,123,0, +109,0,203,255,44,0,30,1,69,1,242,0,193,0,141,0,196,0,114,1,132,1,62,1,166,1,137,1,176,255,138,253, +88,252,174,251,103,251,113,251,162,251,167,252,72,254,30,255,124,255,112,0,23,1,244,0,23,1,92,1,241,0,126,0, +166,0,205,0,99,0,154,255,59,255,149,255,197,255,164,255,42,0,214,0,179,0,206,0,122,1,28,1,249,255,153,255, +144,255,72,255,66,255,16,255,123,254,203,254,14,0,200,0,148,0,246,255,65,255,190,254,77,254,192,253,176,253,50,254, +132,254,236,254,9,0,35,1,145,1,185,1,176,1,21,1,32,0,170,255,49,0,216,0,93,0,140,255,7,0,84,1, +63,2,211,2,147,2,228,0,49,255,149,254,242,253,2,253,209,252,39,253,164,253,221,254,50,0,133,0,158,0,60,1, +134,1,70,1,14,1,202,0,178,0,65,1,196,1,150,1,32,1,127,0,223,255,200,255,134,255,84,254,97,253,99,253, +104,253,111,253,222,253,253,253,33,254,79,255,130,0,203,0,20,1,123,1,95,1,58,1,21,1,190,0,72,1,77,2, +221,1,163,0,85,0,91,0,152,0,176,1,202,1,192,255,22,254,252,253,216,253,178,253,145,254,161,255,63,0,1,1, +178,1,181,1,127,1,156,1,162,1,246,0,232,255,82,255,56,255,19,255,15,255,75,255,70,255,31,255,65,255,107,255, +155,255,0,0,3,0,180,255,227,255,57,0,83,0,243,0,168,1,92,1,27,1,189,1,203,1,232,0,101,0,4,0, +29,255,196,254,54,255,30,255,176,254,47,255,27,0,113,0,180,0,78,1,101,1,185,0,80,0,164,0,28,1,42,1, +198,0,55,0,167,255,204,254,148,253,181,252,171,252,54,253,78,254,236,255,65,1,154,1,67,1,251,0,37,1,86,1, +26,1,251,0,40,1,188,0,245,255,254,255,96,0,74,0,48,0,19,0,237,255,155,0,69,1,110,0,131,255,195,255, +236,255,83,0,211,1,82,2,67,1,46,1,183,1,245,0,37,0,37,0,169,255,21,255,65,255,75,255,18,255,236,254, +80,254,245,253,183,254,97,255,131,255,252,255,45,0,233,255,116,0,50,1,245,0,229,0,150,1,166,1,208,0,30,0, +62,0,233,0,199,0,182,255,199,255,37,1,148,1,254,0,203,0,203,0,204,0,11,1,237,0,177,0,7,1,210,0, +134,255,137,254,61,254,57,254,184,254,254,254,146,254,250,254,121,0,146,1,48,2,124,2,206,1,5,1,231,0,96,0, +207,255,113,0,155,0,231,254,132,253,231,253,186,254,29,255,84,255,127,255,227,255,134,0,250,0,84,1,141,1,223,0, +166,255,119,255,90,0,212,0,156,0,109,0,63,0,246,255,3,0,6,0,62,255,42,254,126,253,37,253,110,253,103,254, +238,254,228,254,107,255,65,0,151,0,233,0,58,1,230,0,113,0,104,0,95,0,78,0,75,0,61,0,172,0,77,1, +225,0,42,0,142,0,236,0,117,0,83,0,128,0,32,0,185,255,115,255,242,254,30,255,58,0,27,1,144,1,203,1, +55,1,99,0,72,0,44,0,111,255,209,254,187,254,29,255,219,255,22,0,138,255,116,255,30,0,60,0,147,255,49,255, +81,255,53,255,177,254,134,254,60,255,87,0,68,1,9,2,89,2,191,1,226,0,168,0,144,0,219,255,27,255,238,254, +195,254,65,254,129,254,24,0,110,1,5,1,1,0,40,0,190,0,4,0,111,254,202,253,68,254,185,254,6,255,10,0, +160,1,62,2,72,1,97,0,188,0,159,0,144,254,151,252,156,252,90,253,248,253,103,255,255,0,142,1,17,2,8,3, +52,3,127,2,129,1,234,255,33,254,249,252,95,252,71,253,113,0,229,2,40,2,210,0,59,1,123,1,54,0,182,254, +185,253,44,253,130,253,171,254,238,255,36,1,74,2,203,2,92,2,140,1,197,0,187,255,132,254,225,253,223,253,227,253, +62,254,132,255,2,1,179,1,155,1,51,1,174,0,8,0,83,255,246,254,24,255,54,255,40,255,91,255,180,255,236,255, +62,0,125,0,57,0,215,255,187,255,131,255,25,255,243,254,33,255,87,255,99,255,115,255,229,255,93,0,42,0,207,255, +239,255,204,255,63,255,94,255,247,255,53,0,188,0,206,1,105,2,130,2,93,2,62,1,151,255,224,254,209,254,151,254, +180,254,62,255,169,255,59,0,198,0,85,0,121,255,67,255,253,254,22,254,155,253,253,253,109,254,219,254,211,255,204,0, +193,0,12,0,246,255,134,0,150,0,228,255,56,255,233,254,214,254,19,255,166,255,54,0,78,0,6,0,39,0,226,0, +89,1,104,1,206,1,68,2,211,1,109,0,252,254,129,254,219,254,174,254,21,254,175,254,252,255,94,0,123,0,217,0, +73,0,59,255,240,254,173,254,58,254,157,254,50,255,91,255,18,0,208,0,71,0,144,255,192,255,230,255,160,255,93,255, +31,255,54,255,190,255,246,255,4,0,186,0,168,1,0,2,226,1,144,1,54,1,45,1,139,1,8,2,12,2,63,1, +110,0,119,0,206,0,157,0,1,0,95,255,27,255,50,255,251,254,115,254,107,254,194,254,197,254,143,254,101,254,89,254, +199,254,141,255,242,255,252,255,89,0,18,1,84,1,172,0,242,255,244,255,37,0,255,255,227,255,222,255,40,0,108,1, +160,2,98,2,233,1,23,2,162,1,179,0,91,0,155,255,90,254,132,254,176,255,11,0,67,0,81,1,33,2,244,1, +83,1,166,0,197,255,74,254,145,252,185,251,199,251,243,251,181,252,103,254,13,0,105,1,235,2,246,3,17,4,160,3, +125,2,220,0,22,0,58,0,248,255,115,255,187,255,152,0,85,1,236,1,73,2,22,2,88,1,81,0,91,255,215,254, +170,254,127,254,135,254,236,254,132,255,139,0,29,2,106,3,186,3,248,2,95,1,15,0,240,255,171,255,54,254,91,253, +20,254,230,254,120,255,94,0,224,0,238,0,35,1,117,0,218,254,136,254,113,255,123,255,243,254,15,255,73,255,79,255, +116,255,86,255,236,254,187,254,187,254,252,254,181,255,106,0,5,1,36,2,69,3,47,3,226,1,79,0,65,255,246,254, +1,255,1,255,30,255,93,255,155,255,25,0,204,0,32,1,46,1,114,1,87,1,39,0,178,254,24,254,58,254,182,254, +102,255,177,255,156,255,27,0,198,0,58,0,9,255,154,254,173,254,190,254,23,255,215,255,69,1,85,3,149,4,93,4, +205,3,7,3,112,1,197,255,164,254,220,253,210,253,115,254,5,255,4,0,154,1,100,2,54,2,252,1,52,1,166,255, +147,254,61,254,16,254,49,254,105,254,78,254,168,254,211,255,160,0,147,0,122,0,116,0,198,255,137,254,215,253,13,254, +107,254,200,254,220,255,112,1,104,2,164,2,245,2,79,3,174,2,7,1,175,255,34,255,148,254,42,254,194,254,217,255, +134,0,194,0,125,0,1,0,22,0,39,0,85,255,190,254,85,255,93,0,115,1,90,2,45,2,38,1,41,0,18,255, +64,254,130,254,13,255,33,255,118,255,7,0,32,0,47,0,170,0,12,1,220,0,31,0,80,255,29,255,110,255,196,255, +254,255,202,255,28,255,232,254,159,255,129,0,5,1,3,1,76,0,85,255,231,254,10,255,10,255,128,254,29,254,147,254, +68,255,212,255,244,0,13,2,204,1,223,0,70,0,146,255,244,254,196,254,59,254,200,253,183,254,82,0,172,1,24,3, +203,3,215,2,121,1,168,0,193,255,176,254,1,254,241,253,190,254,48,0,110,1,236,1,162,1,37,1,39,1,13,1, +49,0,155,255,184,255,99,255,180,254,153,254,131,254,245,253,185,253,44,254,255,254,254,255,213,0,73,1,102,1,254,0, +8,0,227,254,221,253,75,253,105,253,30,254,117,255,91,1,17,3,28,4,71,4,19,3,247,0,80,255,105,254,15,254, +133,254,107,255,86,0,149,1,141,2,113,2,16,2,200,1,211,0,145,255,158,254,113,253,139,252,4,253,25,254,222,254, +186,255,135,0,167,0,143,0,234,0,102,1,61,1,73,0,99,255,17,255,194,254,117,254,237,254,237,255,221,0,183,1, +0,2,128,1,67,1,79,1,92,0,228,254,138,254,67,255,48,0,47,1,35,2,182,2,218,2,152,2,220,1,169,0, +103,255,214,254,254,254,201,254,234,253,157,253,95,254,47,255,178,255,124,0,29,1,196,0,52,0,128,0,33,1,84,1, +67,1,191,0,135,255,106,254,239,253,196,253,0,254,136,254,158,254,137,254,218,254,212,254,123,254,231,254,135,255,141,255, +80,0,51,2,79,3,9,3,102,2,155,1,166,0,219,255,242,254,8,254,10,254,216,254,143,255,41,0,244,0,192,1, +20,2,98,1,253,255,53,255,29,255,143,254,206,253,0,254,254,254,41,0,42,1,68,1,102,0,141,255,247,254,116,254, +127,254,201,254,110,254,13,254,119,254,52,255,33,0,59,1,100,1,139,0,25,0,61,0,98,0,151,0,71,0,53,255, +249,254,228,255,47,0,1,0,176,0,94,1,23,1,202,0,195,0,122,0,57,0,240,255,93,255,152,255,233,0,140,1, +74,1,204,1,191,2,176,2,64,2,20,2,31,1,142,255,202,254,85,254,90,253,255,252,180,253,54,254,161,254,20,0, +10,2,43,3,235,2,153,1,95,0,3,0,185,255,8,255,222,254,155,255,132,0,17,1,52,1,76,1,156,1,152,1, +12,1,114,0,128,255,59,254,254,253,186,254,229,254,208,254,150,255,158,0,56,1,142,1,177,1,210,1,226,1,79,1, +163,0,148,0,58,0,111,255,150,255,154,0,69,1,97,1,220,0,223,255,151,255,245,255,151,255,192,254,189,254,70,255, +58,255,166,254,165,254,150,255,60,0,194,255,23,255,224,254,170,254,123,254,138,254,168,254,20,255,246,255,198,0,58,1, +36,1,95,0,160,255,63,255,174,254,96,254,29,255,97,0,226,1,131,3,2,4,66,3,155,2,178,1,231,255,206,254, +1,255,208,254,241,253,9,254,145,255,92,1,134,2,58,3,93,3,58,2,100,0,62,255,173,254,45,254,250,253,144,253, +229,252,115,253,241,254,210,255,164,0,131,1,0,1,53,0,164,0,120,0,52,255,9,255,123,255,239,254,250,254,4,1, +93,3,32,4,43,3,171,1,199,0,77,0,169,255,1,255,63,254,106,253,89,253,58,254,128,255,234,0,235,1,59,2, +111,2,56,2,254,0,187,255,233,254,192,253,165,252,110,252,250,252,85,254,3,0,210,0,89,1,102,2,170,2,197,1, +253,0,23,0,177,254,22,254,204,254,36,0,157,1,108,2,68,2,41,2,69,2,169,1,105,0,72,255,155,254,101,254, +107,254,219,254,18,0,60,1,165,1,18,2,170,2,194,2,154,2,37,2,218,0,148,255,231,254,30,254,198,253,183,254, +192,255,30,0,170,0,58,1,248,0,70,0,217,255,161,255,65,255,209,254,243,254,130,255,181,255,23,0,85,1,87,2, +93,2,203,1,163,0,146,255,153,255,171,255,3,255,224,254,14,255,134,254,132,254,149,255,68,0,153,0,98,1,243,1, +243,1,113,1,53,0,42,255,173,254,98,253,14,252,194,252,41,254,173,254,213,255,162,1,228,1,15,1,233,0,248,0, +123,0,14,0,244,255,241,255,44,0,167,0,251,0,8,1,204,0,223,255,115,254,238,253,191,254,87,255,11,255,8,255, +178,255,137,0,155,1,107,2,36,2,79,1,142,0,153,255,214,254,211,254,253,254,37,255,234,255,248,0,138,1,169,1, +144,1,27,1,60,0,105,255,81,255,185,255,221,255,2,0,125,0,126,0,241,255,164,255,93,255,21,255,168,255,123,0, +127,0,121,0,206,0,174,0,137,0,214,0,146,0,181,255,33,255,129,254,239,253,91,254,24,255,14,255,237,254,57,255, +128,255,9,0,5,1,136,1,45,1,145,0,254,255,103,255,229,254,146,254,119,254,120,254,163,254,135,255,43,1,70,2, +20,2,141,1,125,1,42,1,11,0,68,255,210,255,143,0,53,0,241,255,74,1,77,3,110,4,161,4,16,4,159,2, +15,1,29,0,140,255,17,255,169,254,104,254,193,254,131,255,130,255,244,254,127,255,193,0,195,0,169,255,233,254,90,254, +123,253,15,253,95,253,173,253,254,253,200,254,178,255,126,0,67,1,78,1,71,0,109,255,77,255,241,254,144,254,74,255, +191,0,28,2,92,3,71,4,251,4,2,6,35,6,253,3,60,1,224,255,84,255,220,254,176,254,176,254,30,255,45,0, +156,0,237,255,88,255,231,254,217,253,28,253,165,253,139,254,223,254,230,254,70,255,6,0,152,0,251,0,135,1,120,1, +71,0,79,255,65,255,252,254,86,254,67,254,204,254,161,255,193,0,252,1,70,3,75,4,49,4,58,3,137,2,45,2, +206,1,102,1,115,0,30,255,200,254,156,255,50,0,251,255,173,255,233,255,86,0,38,0,202,255,39,0,73,0,89,255, +243,254,208,255,249,255,207,254,74,254,42,255,176,255,154,254,97,253,233,253,58,255,147,255,194,255,170,0,9,1,86,0, +135,255,3,255,211,254,240,254,178,254,91,254,11,255,141,0,23,2,152,3,108,4,174,3,215,1,8,0,4,255,200,254, +145,254,118,254,115,255,254,0,223,1,144,2,160,3,47,4,130,3,197,1,202,255,181,254,182,254,17,255,98,255,90,255, +43,255,170,255,26,0,78,255,192,254,124,255,174,255,228,254,123,254,12,254,90,253,149,253,62,254,78,254,106,254,175,254, +236,254,252,255,246,0,51,0,93,255,32,0,153,0,229,255,2,0,97,1,96,2,101,2,186,1,85,0,181,254,254,253, +70,254,147,254,227,254,178,255,37,0,220,255,67,0,106,1,168,1,24,1,195,0,93,0,8,0,111,0,226,0,217,0, +190,0,75,0,121,255,72,255,169,255,141,255,215,254,39,254,45,254,233,254,69,255,55,255,254,255,246,0,195,0,102,0, +144,0,225,255,126,254,40,254,194,254,32,255,106,255,102,0,252,1,96,3,5,4,246,3,50,3,251,1,248,0,214,255, +80,254,22,254,159,255,140,0,134,0,169,1,74,3,131,3,71,3,145,3,31,3,126,1,195,255,152,254,32,254,81,254, +186,254,6,255,75,255,183,255,68,0,167,0,203,0,167,0,169,255,254,253,47,253,189,253,165,254,113,255,24,0,102,0, +248,0,33,2,201,2,134,2,1,2,65,1,90,0,214,255,100,255,11,255,210,255,32,1,54,1,152,0,195,0,84,1, +76,1,148,0,69,255,238,253,186,253,159,254,41,255,227,254,205,254,49,255,74,255,241,254,164,254,161,254,2,255,152,255, +215,255,43,0,70,1,27,2,189,1,78,1,76,1,188,0,252,255,216,255,124,255,151,254,36,254,48,254,90,254,238,254, +166,255,33,0,233,0,219,1,30,2,11,2,47,2,15,2,145,1,8,1,28,0,226,254,105,254,220,254,49,255,0,255, +8,255,177,255,16,0,78,255,103,254,159,254,70,255,93,255,160,255,165,0,158,1,86,2,98,3,11,4,96,3,48,2, +65,1,236,255,140,254,142,254,75,255,24,255,159,254,236,254,241,254,77,254,107,254,48,255,89,255,144,255,171,0,117,1, +62,1,246,0,186,0,5,0,168,255,110,0,106,1,131,1,216,0,242,255,56,255,13,255,66,255,37,255,149,254,86,254, +234,254,211,255,110,0,224,0,177,1,187,2,88,3,117,3,125,3,3,3,101,1,208,255,215,255,87,0,101,255,32,254, +62,254,84,254,8,253,61,252,59,253,45,254,254,253,234,253,101,254,222,254,183,255,11,1,189,1,174,1,248,1,100,2, +228,1,201,0,242,255,88,255,209,254,117,254,90,254,242,254,102,0,192,1,139,2,134,3,154,4,254,4,10,5,217,4, +140,3,176,1,182,0,27,0,9,255,94,254,95,254,3,254,85,253,23,253,72,253,234,253,223,254,102,255,153,255,53,0, +163,0,122,0,2,1,97,2,189,2,192,1,249,0,197,0,117,0,53,0,87,0,88,0,240,255,123,255,65,255,91,255, +198,255,33,0,44,0,78,0,189,0,0,1,242,0,24,1,129,1,152,1,76,1,24,1,195,0,199,255,223,254,10,255, +83,255,145,254,11,254,210,254,37,255,37,254,243,253,83,255,85,0,124,0,17,1,215,1,184,1,21,1,221,0,248,0, +171,0,190,255,254,254,254,254,4,255,148,254,86,254,29,254,21,253,98,252,159,253,133,255,2,0,199,255,100,0,150,1, +132,2,253,2,152,2,19,1,122,255,245,254,45,255,54,255,252,254,223,254,220,254,217,254,6,255,159,255,137,0,147,1, +190,2,213,3,122,4,218,4,44,5,204,4,98,3,232,1,14,1,110,0,234,255,125,255,126,254,46,253,217,252,76,253, +66,253,235,252,254,252,7,253,255,252,248,253,242,255,141,1,41,2,70,2,56,2,205,1,6,1,63,0,139,255,137,254, +97,253,4,253,211,253,243,254,174,255,91,0,74,1,249,1,11,2,9,2,110,2,185,2,76,2,143,1,48,1,216,0, +0,0,22,255,153,254,83,254,96,254,26,255,194,255,91,255,75,254,79,253,96,252,193,251,13,252,26,253,114,254,254,255, +91,1,46,2,193,2,14,3,143,2,148,1,212,0,85,0,3,0,213,255,55,255,45,254,178,253,230,253,15,254,81,254, +254,254,135,255,211,255,123,0,68,1,161,1,212,1,8,2,5,2,249,1,227,1,68,1,102,0,35,0,80,0,73,0, +22,0,197,255,57,255,183,254,116,254,117,254,32,255,71,0,202,0,145,0,176,0,13,1,182,0,6,0,204,255,199,255, +163,255,156,255,160,255,116,255,63,255,9,255,191,254,186,254,51,255,234,255,182,0,135,1,233,1,132,1,198,0,119,0, +163,0,149,0,27,0,227,255,242,255,140,255,43,255,207,255,137,0,6,0,84,255,173,255,20,0,218,255,18,0,248,0, +122,1,73,1,197,0,29,0,187,255,187,255,132,255,86,255,8,0,229,0,201,0,95,0,122,0,150,0,167,0,60,1, +185,1,105,1,1,1,247,0,197,0,122,0,96,0,238,255,50,255,75,255,32,0,101,0,26,0,41,0,91,0,58,0, +72,0,134,0,25,0,42,255,165,254,83,254,185,253,147,253,110,254,172,255,235,0,23,2,130,2,36,2,10,2,31,2, +87,1,60,0,245,255,247,255,178,255,213,255,73,0,57,0,27,0,168,0,62,1,59,1,174,0,181,255,2,255,63,255, +97,255,165,254,121,254,118,255,2,0,215,255,17,0,46,0,160,255,174,255,135,0,189,0,126,0,201,0,229,0,75,0, +224,255,233,255,25,0,198,0,144,1,142,1,43,1,253,0,108,0,137,255,0,255,60,254,21,253,245,252,246,253,206,254, +190,255,58,1,240,1,131,1,96,1,162,1,115,1,98,1,164,1,43,1,94,0,147,0,234,0,199,255,196,253,87,252, +225,251,93,252,141,253,155,254,40,255,170,255,83,0,211,0,21,1,64,1,125,1,248,1,138,2,170,2,46,2,143,1, +24,1,83,0,163,254,89,252,130,250,190,249,7,250,76,251,67,253,43,255,172,0,9,2,14,3,40,3,152,2,39,2, +1,2,196,1,101,1,99,1,21,2,206,2,80,2,151,0,36,255,191,254,150,254,27,254,240,253,104,254,249,254,134,255, +108,0,64,1,73,1,10,1,87,1,160,1,40,1,178,0,231,0,214,0,197,255,99,254,76,253,141,252,111,252,212,252, +233,252,171,252,13,253,112,254,71,0,152,1,183,1,120,1,59,2,71,3,25,3,137,2,212,2,221,2,222,1,1,1, +92,0,18,255,7,254,15,254,1,254,171,253,155,254,162,0,249,1,72,2,41,2,181,1,0,1,3,0,118,254,238,252, +43,252,199,251,149,251,111,252,29,254,66,255,133,255,107,255,63,255,89,255,198,255,13,0,108,0,95,1,72,2,220,2, +201,3,91,4,74,3,196,1,103,1,77,1,148,0,19,0,205,255,29,255,213,254,93,255,123,255,35,255,170,255,202,0, +75,1,101,1,218,1,127,2,174,2,190,1,162,255,113,253,15,252,76,251,77,251,145,252,92,254,168,255,156,0,61,1, +7,1,170,0,50,1,211,1,99,1,173,0,5,1,19,2,151,2,25,2,52,1,168,0,89,0,204,255,110,255,232,255, +126,0,44,0,187,255,109,0,135,1,152,1,230,0,73,0,91,255,222,253,26,253,222,253,3,255,81,255,34,255,66,255, +177,255,232,255,172,255,79,255,52,255,51,255,32,255,82,255,196,255,9,0,72,0,185,0,195,0,126,0,243,0,226,1, +36,2,231,1,164,1,6,1,164,0,33,1,238,0,68,255,97,254,33,255,148,255,150,255,90,0,156,0,100,255,162,254, +10,255,253,254,154,254,249,254,98,255,135,255,67,0,185,0,203,255,212,254,177,254,13,254,220,252,153,252,58,253,247,253, +247,254,7,0,195,0,190,1,227,2,242,2,237,1,25,1,245,0,94,1,7,2,229,1,159,0,162,255,190,255,254,255, +238,255,45,0,165,0,174,0,64,0,154,255,205,254,7,254,137,253,98,253,140,253,40,254,115,255,61,1,120,2,79,2, +88,1,171,0,146,0,201,0,255,0,217,0,99,0,242,255,127,255,21,255,43,255,198,255,128,0,100,1,44,2,21,2, +157,1,246,1,106,2,127,1,213,255,224,254,168,254,205,254,102,255,244,255,175,255,198,254,204,253,220,252,26,252,236,251, +119,252,108,253,91,254,31,255,230,255,154,0,247,0,70,1,198,1,254,1,195,1,172,1,187,1,142,1,165,1,44,2, +221,1,90,0,65,255,63,255,24,255,139,254,200,254,194,255,52,0,22,0,43,0,22,0,95,255,218,254,242,254,191,254, +35,254,16,254,58,254,212,253,213,253,12,255,11,0,227,255,208,255,103,0,188,0,175,0,177,0,138,0,94,0,210,0, +154,1,0,2,241,1,113,1,202,0,184,0,231,0,95,0,179,255,184,255,147,255,212,254,134,254,218,254,116,255,226,0, +111,2,27,2,130,0,228,255,201,255,178,254,114,253,252,252,184,252,191,252,156,253,150,254,81,255,157,0,73,2,41,3, +5,3,85,2,113,1,209,0,122,0,232,255,97,255,151,255,45,0,139,0,210,0,26,1,88,1,199,1,244,1,12,1, +116,255,18,254,222,252,8,252,112,252,227,253,42,255,226,255,107,0,180,0,98,0,113,255,129,254,92,254,173,254,116,254, +80,254,200,255,253,1,173,2,2,2,191,1,238,1,184,1,150,1,227,1,169,1,132,0,118,255,221,254,245,253,222,252, +184,252,140,253,82,254,226,254,198,255,165,0,220,0,159,0,52,0,112,255,181,254,190,254,140,255,192,0,5,2,148,2, +245,1,6,1,129,0,170,255,24,254,247,252,48,253,26,254,229,254,231,255,146,1,5,3,233,2,158,1,211,0,249,0, +73,1,174,1,74,2,92,2,183,1,54,1,165,0,60,255,234,253,212,253,15,254,177,253,187,253,210,254,246,255,124,0, +189,0,195,0,101,0,24,0,80,0,167,0,122,0,2,0,26,0,194,0,237,0,87,0,3,0,61,0,54,0,234,255, +253,255,30,0,221,255,208,255,26,0,228,255,74,255,64,255,154,255,162,255,177,255,92,0,98,1,88,2,178,2,157,1, +161,255,170,254,20,255,87,255,24,255,77,255,210,255,3,0,81,0,222,0,212,0,45,0,151,255,246,254,110,254,16,255, +146,0,48,1,168,0,86,0,154,0,206,0,191,0,143,0,105,0,139,0,154,0,52,0,46,0,21,1,138,1,139,0, +73,255,190,254,79,254,213,253,250,253,137,254,217,254,21,255,153,255,37,0,75,0,236,255,101,255,84,255,167,255,179,255, +146,255,226,255,98,0,143,0,171,0,177,0,251,255,239,254,207,254,123,255,182,255,99,255,92,255,180,255,208,255,152,255, +111,255,118,255,119,255,79,255,24,255,1,255,31,255,115,255,226,255,44,0,66,0,103,0,174,0,203,0,169,0,145,0, +156,0,165,0,139,0,53,0,208,255,183,255,162,255,250,254,105,254,34,255,106,0,121,0,161,255,153,255,76,0,83,0, +174,255,96,255,141,255,190,255,224,255,7,0,17,0,221,255,123,255,40,255,20,255,43,255,108,255,232,255,44,0,184,255, +24,255,36,255,124,255,79,255,224,254,6,255,242,255,16,1,141,1,77,1,44,1,135,1,134,1,207,0,44,0,226,255, +150,255,181,255,112,0,160,0,218,255,124,255,19,0,113,0,57,0,104,0,57,1,212,1,208,1,102,1,220,0,124,0, +100,0,83,0,27,0,225,255,209,255,4,0,104,0,94,0,122,255,159,254,208,254,110,255,96,255,26,255,156,255,183,0, +195,1,115,2,120,2,221,1,58,1,134,0,120,255,253,254,196,255,136,0,80,0,252,255,9,0,254,255,28,0,104,0, +239,255,46,255,175,255,166,0,94,0,140,255,61,255,200,254,91,254,3,255,233,255,237,255,28,0,20,1,124,1,238,0, +127,0,96,0,27,0,195,255,113,255,98,255,24,0,24,1,63,1,147,0,199,255,36,255,15,255,164,255,250,255,194,255, +233,255,102,0,84,0,32,0,128,0,164,0,233,255,43,255,32,255,125,255,234,255,66,0,107,0,131,0,149,0,123,0, +69,0,241,255,95,255,35,255,220,255,200,0,193,0,20,0,197,255,245,255,238,255,58,255,105,254,130,254,92,255,190,255, +146,255,211,255,74,0,29,0,215,255,70,0,184,0,136,0,105,0,183,0,164,0,243,255,138,255,205,255,17,0,233,255, +184,255,191,255,209,255,11,0,134,0,160,0,214,255,227,254,179,254,8,255,56,255,54,255,92,255,189,255,29,0,72,0, +103,0,145,0,99,0,211,255,155,255,242,255,38,0,17,0,53,0,113,0,77,0,10,0,5,0,28,0,18,0,206,255, +124,255,134,255,226,255,31,0,106,0,10,1,57,1,147,0,50,0,149,0,165,0,5,0,156,255,185,255,238,255,14,0, +8,0,243,255,71,0,237,0,6,1,109,0,216,255,146,255,105,255,63,255,250,254,203,254,68,255,59,0,175,0,95,0, +26,0,57,0,68,0,4,0,219,255,9,0,77,0,97,0,90,0,96,0,78,0,3,0,170,255,147,255,220,255,59,0, +45,0,186,255,129,255,194,255,64,0,221,0,96,1,114,1,77,1,48,1,146,0,135,255,59,255,181,255,183,255,32,255, +154,254,19,254,209,253,140,254,104,255,52,255,183,254,226,254,24,255,46,255,163,255,232,255,135,255,87,255,131,255,79,255, +22,255,114,255,201,255,197,255,241,255,39,0,236,255,180,255,247,255,97,0,128,0,30,0,128,255,99,255,173,255,106,255, +1,255,188,255,12,1,94,1,207,0,101,0,55,0,239,255,94,255,101,254,128,253,93,253,190,253,37,254,180,254,105,255, +245,255,110,0,204,0,179,0,103,0,122,0,169,0,122,0,10,0,146,255,89,255,188,255,69,0,18,0,114,255,87,255, +185,255,15,0,41,0,226,255,90,255,60,255,171,255,251,255,2,0,57,0,159,0,233,0,42,1,98,1,51,1,154,0, +39,0,17,0,189,255,202,254,255,253,50,254,211,254,254,254,10,255,152,255,70,0,146,0,171,0,192,0,183,0,147,0, +92,0,23,0,253,255,34,0,73,0,108,0,180,0,248,0,7,1,207,0,50,0,108,255,54,255,166,255,11,0,44,0, +80,0,73,0,248,255,203,255,210,255,137,255,10,255,17,255,171,255,16,0,218,255,142,255,178,255,252,255,218,255,129,255, +168,255,97,0,7,1,10,1,106,0,153,255,36,255,65,255,187,255,51,0,85,0,34,0,2,0,21,0,253,255,185,255, +192,255,239,255,181,255,101,255,201,255,143,0,173,0,19,0,157,255,157,255,169,255,148,255,161,255,194,255,172,255,149,255, +200,255,226,255,149,255,131,255,28,0,163,0,118,0,38,0,95,0,195,0,162,0,9,0,130,255,54,255,5,255,40,255, +206,255,85,0,39,0,199,255,205,255,218,255,148,255,86,255,89,255,132,255,214,255,245,255,119,255,246,254,92,255,82,0, +227,0,208,0,101,0,17,0,42,0,86,0,0,0,145,255,184,255,12,0,244,255,198,255,215,255,226,255,218,255,5,0, +73,0,58,0,182,255,68,255,159,255,138,0,242,0,180,0,170,0,199,0,94,0,205,255,198,255,250,255,26,0,83,0, +66,0,128,255,208,254,246,254,114,255,146,255,114,255,122,255,0,0,236,0,92,1,177,0,175,255,89,255,105,255,44,255, +216,254,25,255,254,255,209,0,195,0,235,255,80,255,135,255,222,255,141,255,7,255,35,255,195,255,30,0,251,255,215,255, +254,255,48,0,56,0,53,0,68,0,61,0,3,0,190,255,182,255,244,255,45,0,55,0,71,0,112,0,110,0,55,0, +27,0,13,0,189,255,96,255,92,255,120,255,94,255,53,255,56,255,96,255,150,255,171,255,163,255,12,0,238,0,65,1, +163,0,8,0,204,255,102,255,38,255,135,255,177,255,39,255,23,255,255,255,183,0,172,0,118,0,81,0,57,0,105,0, +146,0,67,0,5,0,65,0,61,0,184,255,140,255,0,0,99,0,103,0,51,0,203,255,119,255,151,255,191,255,82,255, +179,254,178,254,60,255,161,255,187,255,243,255,80,0,97,0,27,0,4,0,63,0,77,0,2,0,210,255,227,255,219,255, +172,255,158,255,162,255,114,255,73,255,137,255,238,255,235,255,168,255,177,255,5,0,91,0,196,0,28,1,223,0,59,0, +1,0,54,0,68,0,45,0,10,0,136,255,15,255,136,255,119,0,160,0,50,0,14,0,25,0,8,0,19,0,2,0, +133,255,67,255,204,255,115,0,141,0,86,0,24,0,164,255,236,254,89,254,139,254,157,255,180,0,239,0,111,0,215,255, +135,255,161,255,238,255,231,255,131,255,84,255,138,255,236,255,75,0,96,0,31,0,22,0,98,0,60,0,147,255,119,255, +255,255,17,0,150,255,168,255,71,0,49,0,77,255,251,254,153,255,224,255,90,255,35,255,176,255,29,0,21,0,46,0, +107,0,66,0,197,255,131,255,166,255,219,255,213,255,199,255,21,0,131,0,136,0,84,0,83,0,66,0,221,255,151,255, +179,255,201,255,172,255,162,255,182,255,167,255,119,255,132,255,252,255,126,0,162,0,150,0,187,0,235,0,212,0,143,0, +92,0,60,0,45,0,89,0,193,0,231,0,106,0,215,255,222,255,13,0,206,255,177,255,4,0,239,255,104,255,112,255, +216,255,148,255,231,254,191,254,45,255,219,255,86,0,18,0,128,255,162,255,0,0,172,255,101,255,226,255,33,0,153,255, +92,255,216,255,88,0,156,0,158,0,35,0,155,255,188,255,49,0,91,0,105,0,124,0,70,0,235,255,213,255,242,255, +36,0,124,0,157,0,33,0,152,255,195,255,59,0,7,0,24,255,98,254,141,254,22,255,44,255,1,255,82,255,249,255, +65,0,26,0,221,255,149,255,104,255,143,255,184,255,102,255,217,254,195,254,90,255,25,0,106,0,112,0,162,0,193,0, +91,0,218,255,176,255,123,255,17,255,246,254,67,255,165,255,28,0,137,0,132,0,2,0,57,255,125,254,143,254,139,255, +49,0,212,255,107,255,159,255,218,255,178,255,100,255,58,255,99,255,185,255,239,255,27,0,69,0,23,0,190,255,183,255, +182,255,122,255,117,255,127,255,35,255,10,255,155,255,231,255,170,255,167,255,190,255,138,255,150,255,242,255,244,255,199,255, +205,255,146,255,37,255,76,255,247,255,136,0,213,0,185,0,51,0,224,255,252,255,7,0,226,255,217,255,221,255,221,255, +226,255,179,255,101,255,144,255,47,0,124,0,74,0,60,0,159,0,243,0,182,0,50,0,2,0,17,0,224,255,140,255, +117,255,128,255,138,255,170,255,187,255,134,255,51,255,8,255,43,255,139,255,212,255,233,255,50,0,183,0,223,0,157,0, +145,0,215,0,212,0,67,0,172,255,201,255,146,0,8,1,134,0,171,255,73,255,96,255,166,255,252,255,47,0,40,0, +16,0,235,255,170,255,136,255,182,255,237,255,229,255,190,255,179,255,192,255,186,255,136,255,39,255,196,254,188,254,53,255, +186,255,213,255,188,255,235,255,94,0,167,0,164,0,152,0,171,0,169,0,102,0,11,0,177,255,69,255,7,255,77,255, +205,255,13,0,25,0,33,0,11,0,210,255,165,255,148,255,127,255,60,255,224,254,223,254,95,255,220,255,255,255,224,255, +122,255,19,255,71,255,230,255,61,0,105,0,174,0,161,0,59,0,253,255,222,255,208,255,6,0,247,255,61,255,216,254, +92,255,194,255,134,255,85,255,111,255,158,255,228,255,11,0,0,0,56,0,162,0,137,0,225,255,72,255,51,255,196,255, +93,0,27,0,81,255,7,255,67,255,151,255,254,255,58,0,32,0,51,0,138,0,131,0,36,0,239,255,236,255,6,0, +20,0,167,255,36,255,116,255,45,0,75,0,249,255,183,255,122,255,131,255,0,0,91,0,88,0,86,0,72,0,35,0, +61,0,100,0,59,0,42,0,79,0,1,0,74,255,11,255,137,255,71,0,168,0,85,0,194,255,178,255,3,0,37,0, +41,0,71,0,79,0,34,0,208,255,109,255,64,255,106,255,179,255,2,0,90,0,105,0,21,0,207,255,195,255,170,255, +121,255,79,255,52,255,85,255,206,255,87,0,157,0,157,0,126,0,101,0,88,0,56,0,2,0,224,255,211,255,177,255, +95,255,253,254,249,254,135,255,36,0,59,0,255,255,247,255,46,0,74,0,11,0,149,255,88,255,119,255,149,255,142,255, +149,255,167,255,170,255,202,255,6,0,31,0,1,0,197,255,152,255,181,255,3,0,22,0,241,255,252,255,46,0,70,0, +89,0,103,0,57,0,233,255,215,255,251,255,255,255,212,255,185,255,194,255,188,255,171,255,181,255,175,255,129,255,139,255, +221,255,243,255,196,255,195,255,222,255,227,255,255,255,46,0,73,0,120,0,146,0,62,0,241,255,30,0,50,0,221,255, +185,255,235,255,13,0,28,0,29,0,241,255,218,255,254,255,246,255,186,255,168,255,184,255,200,255,249,255,39,0,23,0, +248,255,245,255,247,255,248,255,237,255,200,255,184,255,196,255,187,255,169,255,149,255,103,255,112,255,228,255,57,0,53,0, +67,0,78,0,20,0,6,0,58,0,46,0,21,0,82,0,107,0,49,0,38,0,50,0,246,255,183,255,167,255,157,255, +175,255,210,255,187,255,180,255,18,0,102,0,91,0,57,0,34,0,23,0,49,0,51,0,245,255,218,255,247,255,239,255, +202,255,187,255,162,255,149,255,175,255,160,255,107,255,134,255,229,255,46,0,93,0,78,0,204,255,69,255,63,255,147,255, +227,255,255,255,232,255,237,255,45,0,51,0,217,255,151,255,141,255,120,255,81,255,64,255,92,255,180,255,5,0,252,255, +217,255,222,255,219,255,206,255,234,255,248,255,219,255,223,255,249,255,226,255,207,255,243,255,17,0,18,0,245,255,143,255, +32,255,57,255,203,255,67,0,103,0,84,0,61,0,75,0,94,0,52,0,245,255,233,255,248,255,240,255,215,255,209,255, +232,255,4,0,25,0,58,0,84,0,44,0,223,255,196,255,212,255,216,255,211,255,196,255,152,255,114,255,138,255,220,255, +44,0,54,0,253,255,225,255,253,255,235,255,163,255,160,255,234,255,20,0,11,0,25,0,85,0,132,0,89,0,236,255, +181,255,194,255,178,255,156,255,232,255,96,0,123,0,69,0,26,0,6,0,226,255,166,255,120,255,116,255,137,255,157,255, +183,255,212,255,234,255,14,0,46,0,34,0,8,0,12,0,28,0,54,0,74,0,17,0,181,255,171,255,183,255,132,255, +126,255,213,255,8,0,32,0,123,0,182,0,126,0,61,0,19,0,213,255,197,255,240,255,246,255,242,255,34,0,36,0, +206,255,152,255,161,255,162,255,153,255,163,255,188,255,239,255,44,0,59,0,6,0,175,255,121,255,156,255,233,255,22,0, +45,0,59,0,30,0,255,255,237,255,145,255,36,255,82,255,214,255,251,255,242,255,18,0,48,0,96,0,160,0,115,0, +252,255,233,255,11,0,223,255,166,255,157,255,155,255,204,255,43,0,48,0,227,255,222,255,21,0,33,0,7,0,244,255, +248,255,30,0,39,0,234,255,185,255,209,255,254,255,38,0,68,0,57,0,25,0,10,0,232,255,171,255,138,255,125,255, +125,255,186,255,19,0,53,0,65,0,95,0,102,0,86,0,68,0,21,0,240,255,13,0,39,0,2,0,231,255,248,255, +250,255,222,255,190,255,176,255,201,255,225,255,188,255,156,255,199,255,226,255,184,255,173,255,225,255,9,0,13,0,250,255, +222,255,225,255,249,255,222,255,153,255,121,255,130,255,162,255,233,255,46,0,49,0,13,0,252,255,236,255,206,255,200,255, +242,255,36,0,40,0,255,255,231,255,255,255,32,0,24,0,219,255,140,255,110,255,152,255,216,255,10,0,52,0,81,0, +84,0,67,0,31,0,232,255,194,255,194,255,200,255,179,255,130,255,86,255,115,255,229,255,84,0,100,0,38,0,238,255, +245,255,36,0,49,0,24,0,13,0,6,0,227,255,194,255,185,255,177,255,181,255,216,255,239,255,229,255,240,255,40,0, +91,0,90,0,38,0,242,255,231,255,221,255,151,255,64,255,49,255,124,255,227,255,10,0,237,255,241,255,59,0,110,0, +86,0,15,0,202,255,212,255,66,0,123,0,47,0,247,255,7,0,211,255,108,255,100,255,166,255,232,255,60,0,112,0, +72,0,24,0,20,0,2,0,237,255,245,255,218,255,186,255,250,255,72,0,33,0,214,255,218,255,242,255,210,255,173,255, +197,255,3,0,41,0,59,0,94,0,104,0,44,0,247,255,9,0,35,0,21,0,248,255,216,255,210,255,246,255,242,255, +191,255,200,255,233,255,183,255,167,255,25,0,99,0,40,0,246,255,240,255,207,255,199,255,241,255,242,255,211,255,219,255, +1,0,66,0,157,0,160,0,49,0,226,255,223,255,206,255,174,255,182,255,197,255,194,255,213,255,9,0,49,0,27,0, +212,255,186,255,249,255,36,0,238,255,170,255,174,255,230,255,24,0,23,0,234,255,198,255,188,255,182,255,200,255,234,255, +215,255,164,255,173,255,217,255,214,255,181,255,167,255,172,255,185,255,195,255,200,255,235,255,21,0,252,255,212,255,5,0, +80,0,69,0,22,0,9,0,254,255,228,255,216,255,210,255,199,255,191,255,184,255,203,255,11,0,48,0,6,0,237,255, +43,0,94,0,61,0,22,0,35,0,35,0,242,255,203,255,214,255,243,255,251,255,226,255,181,255,147,255,155,255,191,255, +229,255,1,0,19,0,35,0,67,0,97,0,71,0,255,255,210,255,209,255,211,255,206,255,219,255,232,255,222,255,220,255, +247,255,10,0,249,255,228,255,233,255,237,255,241,255,32,0,97,0,108,0,77,0,79,0,107,0,93,0,17,0,190,255, +174,255,230,255,4,0,210,255,165,255,180,255,196,255,187,255,195,255,210,255,190,255,175,255,228,255,73,0,147,0,147,0, +94,0,27,0,216,255,175,255,201,255,245,255,226,255,193,255,238,255,58,0,75,0,43,0,2,0,245,255,21,0,34,0, +241,255,223,255,19,0,32,0,249,255,255,255,16,0,222,255,182,255,206,255,217,255,197,255,188,255,171,255,150,255,182,255, +239,255,247,255,238,255,8,0,39,0,42,0,31,0,26,0,33,0,42,0,28,0,242,255,203,255,201,255,226,255,219,255, +170,255,152,255,185,255,199,255,197,255,238,255,18,0,251,255,232,255,230,255,188,255,150,255,182,255,226,255,251,255,39,0, +55,0,7,0,243,255,11,0,240,255,190,255,207,255,239,255,223,255,206,255,212,255,226,255,0,0,8,0,199,255,141,255, +186,255,22,0,68,0,74,0,64,0,44,0,30,0,24,0,3,0,216,255,174,255,155,255,171,255,211,255,244,255,5,0, +9,0,248,255,222,255,214,255,225,255,237,255,242,255,244,255,253,255,10,0,254,255,225,255,225,255,243,255,237,255,225,255, +241,255,6,0,21,0,48,0,67,0,50,0,19,0,244,255,228,255,255,255,41,0,32,0,3,0,21,0,45,0,20,0, +245,255,228,255,203,255,200,255,233,255,245,255,230,255,247,255,11,0,240,255,216,255,240,255,9,0,10,0,13,0,20,0, +33,0,66,0,75,0,24,0,228,255,215,255,192,255,147,255,146,255,204,255,3,0,23,0,28,0,30,0,24,0,8,0, +246,255,229,255,226,255,249,255,21,0,30,0,40,0,71,0,83,0,38,0,239,255,216,255,198,255,171,255,154,255,143,255, +138,255,169,255,223,255,9,0,49,0,87,0,84,0,62,0,70,0,62,0,0,0,208,255,211,255,209,255,189,255,202,255, +255,255,39,0,41,0,17,0,249,255,225,255,181,255,138,255,145,255,183,255,202,255,212,255,251,255,40,0,43,0,4,0, +220,255,218,255,236,255,230,255,221,255,248,255,13,0,246,255,240,255,12,0,250,255,183,255,163,255,199,255,216,255,202,255, +212,255,21,0,109,0,142,0,86,0,25,0,38,0,65,0,22,0,208,255,188,255,202,255,197,255,178,255,179,255,206,255, +234,255,242,255,232,255,216,255,211,255,215,255,222,255,237,255,17,0,42,0,30,0,19,0,45,0,60,0,30,0,8,0, +29,0,52,0,46,0,18,0,231,255,203,255,215,255,227,255,197,255,171,255,181,255,200,255,216,255,236,255,237,255,228,255, +4,0,59,0,78,0,76,0,92,0,97,0,66,0,28,0,5,0,242,255,220,255,191,255,160,255,155,255,177,255,193,255, +200,255,220,255,238,255,237,255,247,255,33,0,77,0,92,0,75,0,44,0,20,0,8,0,249,255,229,255,214,255,206,255, +206,255,213,255,213,255,198,255,184,255,192,255,229,255,24,0,53,0,50,0,38,0,28,0,13,0,251,255,229,255,207,255, +210,255,241,255,249,255,221,255,203,255,204,255,204,255,208,255,207,255,186,255,180,255,224,255,13,0,24,0,28,0,38,0, +42,0,52,0,53,0,12,0,231,255,253,255,31,0,18,0,234,255,197,255,172,255,177,255,204,255,213,255,207,255,223,255, +249,255,249,255,223,255,199,255,194,255,210,255,239,255,11,0,28,0,32,0,29,0,20,0,0,0,242,255,248,255,254,255, +236,255,213,255,210,255,224,255,255,255,29,0,22,0,242,255,223,255,222,255,219,255,235,255,19,0,46,0,56,0,72,0, +71,0,32,0,249,255,243,255,2,0,7,0,239,255,201,255,196,255,240,255,29,0,32,0,6,0,237,255,228,255,239,255, +4,0,6,0,236,255,207,255,203,255,223,255,244,255,3,0,17,0,19,0,246,255,217,255,236,255,31,0,52,0,26,0, +250,255,246,255,7,0,15,0,4,0,4,0,26,0,43,0,33,0,11,0,1,0,9,0,31,0,48,0,30,0,231,255, +180,255,174,255,202,255,220,255,207,255,186,255,180,255,189,255,201,255,214,255,238,255,22,0,52,0,51,0,29,0,15,0, +7,0,242,255,221,255,231,255,16,0,46,0,38,0,15,0,13,0,27,0,20,0,239,255,217,255,237,255,7,0,251,255, +223,255,225,255,251,255,7,0,250,255,232,255,223,255,232,255,1,0,28,0,48,0,54,0,44,0,25,0,4,0,227,255, +192,255,185,255,212,255,228,255,216,255,204,255,220,255,247,255,253,255,231,255,214,255,233,255,11,0,18,0,250,255,223,255, +221,255,248,255,32,0,52,0,39,0,12,0,254,255,252,255,242,255,213,255,186,255,189,255,215,255,229,255,219,255,214,255, +233,255,6,0,20,0,14,0,5,0,6,0,3,0,244,255,230,255,232,255,246,255,2,0,253,255,234,255,224,255,232,255, +238,255,236,255,233,255,232,255,228,255,222,255,221,255,230,255,254,255,19,0,17,0,9,0,21,0,41,0,42,0,25,0, +11,0,11,0,22,0,29,0,18,0,253,255,240,255,241,255,250,255,7,0,18,0,20,0,7,0,241,255,217,255,211,255, +230,255,12,0,45,0,53,0,35,0,10,0,251,255,253,255,4,0,250,255,217,255,190,255,197,255,227,255,248,255,0,0, +9,0,25,0,35,0,17,0,238,255,223,255,240,255,4,0,254,255,238,255,237,255,250,255,2,0,250,255,233,255,230,255, +243,255,0,0,0,0,251,255,254,255,10,0,24,0,34,0,35,0,30,0,19,0,3,0,245,255,238,255,240,255,245,255, +245,255,242,255,245,255,2,0,13,0,8,0,246,255,235,255,238,255,243,255,237,255,230,255,240,255,5,0,16,0,17,0, +26,0,43,0,39,0,252,255,197,255,174,255,188,255,206,255,210,255,217,255,240,255,4,0,2,0,247,255,253,255,20,0, +33,0,25,0,14,0,15,0,19,0,16,0,15,0,23,0,29,0,20,0,0,0,243,255,239,255,239,255,241,255,249,255, +255,255,248,255,236,255,243,255,14,0,31,0,17,0,249,255,242,255,248,255,243,255,231,255,233,255,252,255,9,0,0,0, +244,255,248,255,251,255,232,255,202,255,193,255,212,255,234,255,238,255,230,255,227,255,235,255,253,255,22,0,44,0,46,0, +31,0,17,0,15,0,12,0,248,255,226,255,227,255,244,255,252,255,244,255,242,255,2,0,19,0,17,0,5,0,1,0, +255,255,237,255,213,255,210,255,233,255,252,255,249,255,236,255,241,255,6,0,24,0,22,0,3,0,233,255,213,255,211,255, +226,255,240,255,235,255,219,255,219,255,241,255,11,0,23,0,26,0,31,0,37,0,31,0,19,0,13,0,15,0,13,0, +255,255,234,255,223,255,230,255,250,255,14,0,17,0,254,255,229,255,221,255,235,255,253,255,5,0,6,0,7,0,5,0, +251,255,241,255,242,255,252,255,3,0,7,0,20,0,46,0,69,0,71,0,51,0,19,0,241,255,221,255,222,255,236,255, +241,255,231,255,227,255,249,255,23,0,30,0,7,0,242,255,242,255,249,255,243,255,233,255,238,255,0,0,8,0,253,255, +238,255,234,255,241,255,254,255,15,0,30,0,32,0,24,0,21,0,29,0,32,0,14,0,242,255,229,255,240,255,8,0, +31,0,54,0,76,0,85,0,73,0,43,0,8,0,230,255,202,255,187,255,190,255,200,255,208,255,216,255,231,255,250,255, +2,0,0,0,252,255,248,255,244,255,249,255,19,0,51,0,53,0,11,0,220,255,213,255,244,255,11,0,2,0,238,255, +238,255,253,255,3,0,253,255,250,255,1,0,1,0,247,255,242,255,3,0,29,0,37,0,22,0,4,0,4,0,13,0, +8,0,239,255,221,255,231,255,3,0,14,0,250,255,220,255,208,255,214,255,217,255,210,255,210,255,226,255,251,255,13,0, +24,0,35,0,41,0,33,0,18,0,10,0,12,0,12,0,7,0,10,0,22,0,30,0,18,0,251,255,233,255,226,255, +225,255,229,255,241,255,0,0,10,0,18,0,28,0,32,0,16,0,238,255,209,255,201,255,206,255,208,255,213,255,232,255, +3,0,24,0,35,0,43,0,49,0,44,0,28,0,8,0,242,255,219,255,208,255,226,255,6,0,24,0,7,0,242,255, +251,255,22,0,29,0,13,0,8,0,25,0,34,0,13,0,240,255,235,255,245,255,242,255,228,255,233,255,7,0,33,0, +36,0,23,0,7,0,242,255,217,255,205,255,214,255,226,255,229,255,242,255,29,0,76,0,80,0,39,0,4,0,8,0, +27,0,21,0,255,255,254,255,23,0,44,0,35,0,6,0,239,255,236,255,247,255,3,0,5,0,252,255,244,255,253,255, +15,0,23,0,16,0,11,0,19,0,23,0,5,0,238,255,237,255,1,0,16,0,16,0,11,0,8,0,255,255,240,255, +237,255,254,255,11,0,254,255,230,255,226,255,244,255,253,255,244,255,234,255,241,255,248,255,243,255,239,255,0,0,30,0, +40,0,18,0,241,255,226,255,237,255,255,255,6,0,251,255,238,255,242,255,5,0,16,0,253,255,219,255,206,255,227,255, +255,255,10,0,12,0,24,0,43,0,44,0,22,0,252,255,242,255,243,255,245,255,248,255,252,255,251,255,242,255,233,255, +233,255,237,255,241,255,250,255,8,0,13,0,255,255,244,255,8,0,51,0,71,0,44,0,0,0,240,255,253,255,13,0, +15,0,10,0,2,0,240,255,221,255,219,255,239,255,5,0,8,0,255,255,249,255,252,255,1,0,5,0,11,0,13,0, +6,0,253,255,0,0,6,0,0,0,239,255,231,255,241,255,247,255,236,255,227,255,243,255,15,0,22,0,3,0,247,255, +4,0,23,0,19,0,2,0,1,0,24,0,43,0,40,0,25,0,14,0,9,0,0,0,244,255,240,255,251,255,18,0, +36,0,36,0,16,0,248,255,240,255,251,255,8,0,11,0,11,0,20,0,30,0,25,0,6,0,250,255,255,255,5,0, +253,255,240,255,244,255,8,0,20,0,8,0,246,255,241,255,247,255,247,255,237,255,231,255,237,255,246,255,250,255,251,255, +2,0,12,0,14,0,10,0,7,0,12,0,14,0,6,0,246,255,234,255,232,255,233,255,233,255,233,255,238,255,250,255, +5,0,11,0,7,0,251,255,242,255,250,255,12,0,20,0,1,0,225,255,209,255,222,255,245,255,254,255,249,255,249,255, +2,0,7,0,255,255,242,255,239,255,247,255,0,0,6,0,10,0,13,0,13,0,11,0,12,0,14,0,9,0,251,255, +239,255,242,255,3,0,16,0,16,0,8,0,1,0,3,0,10,0,17,0,22,0,23,0,20,0,12,0,254,255,238,255, +225,255,221,255,225,255,236,255,252,255,12,0,19,0,4,0,233,255,220,255,235,255,2,0,5,0,244,255,234,255,251,255, +20,0,23,0,5,0,245,255,248,255,0,0,254,255,247,255,250,255,6,0,12,0,6,0,251,255,251,255,6,0,16,0, +18,0,14,0,12,0,13,0,14,0,13,0,8,0,1,0,251,255,251,255,4,0,15,0,20,0,16,0,8,0,2,0, +255,255,251,255,245,255,241,255,245,255,250,255,252,255,252,255,253,255,252,255,242,255,228,255,227,255,243,255,2,0,250,255, +230,255,226,255,250,255,22,0,23,0,2,0,243,255,251,255,13,0,20,0,11,0,255,255,250,255,250,255,250,255,253,255, +3,0,9,0,10,0,4,0,254,255,254,255,2,0,5,0,2,0,251,255,248,255,251,255,252,255,248,255,241,255,240,255, +245,255,251,255,252,255,254,255,4,0,11,0,11,0,4,0,254,255,252,255,249,255,244,255,240,255,245,255,251,255,252,255, +249,255,248,255,249,255,248,255,245,255,246,255,0,0,11,0,13,0,4,0,250,255,246,255,247,255,251,255,255,255,1,0, +254,255,248,255,244,255,243,255,243,255,240,255,239,255,246,255,4,0,17,0,20,0,16,0,14,0,13,0,10,0,5,0, +3,0,8,0,11,0,5,0,248,255,235,255,229,255,227,255,230,255,239,255,254,255,8,0,9,0,7,0,8,0,13,0, +15,0,12,0,9,0,11,0,12,0,6,0,0,0,255,255,1,0,254,255,246,255,241,255,245,255,251,255,250,255,244,255, +240,255,244,255,253,255,7,0,13,0,15,0,17,0,19,0,19,0,13,0,3,0,253,255,0,0,5,0,1,0,247,255, +244,255,254,255,8,0,4,0,247,255,241,255,245,255,249,255,246,255,242,255,245,255,250,255,249,255,246,255,251,255,8,0, +17,0,16,0,11,0,8,0,7,0,4,0,255,255,252,255,253,255,1,0,6,0,9,0,8,0,8,0,13,0,21,0, +20,0,6,0,246,255,247,255,8,0,23,0,23,0,12,0,7,0,7,0,5,0,253,255,249,255,254,255,5,0,5,0, +254,255,249,255,250,255,254,255,255,255,251,255,245,255,243,255,248,255,2,0,8,0,7,0,4,0,3,0,5,0,3,0, +254,255,252,255,255,255,0,0,251,255,244,255,243,255,247,255,249,255,244,255,240,255,246,255,4,0,17,0,21,0,15,0, +8,0,7,0,11,0,13,0,9,0,1,0,255,255,4,0,7,0,2,0,249,255,246,255,249,255,251,255,250,255,251,255, +1,0,4,0,1,0,253,255,253,255,255,255,252,255,244,255,240,255,247,255,1,0,7,0,8,0,8,0,12,0,14,0, +10,0,255,255,243,255,239,255,243,255,250,255,253,255,254,255,1,0,9,0,15,0,12,0,3,0,255,255,1,0,3,0, +1,0,254,255,2,0,9,0,8,0,255,255,246,255,246,255,254,255,6,0,8,0,6,0,3,0,3,0,3,0,1,0, +250,255,242,255,239,255,242,255,246,255,248,255,249,255,254,255,4,0,5,0,255,255,249,255,249,255,251,255,249,255,244,255, +244,255,254,255,7,0,5,0,250,255,242,255,246,255,2,0,13,0,15,0,9,0,3,0,1,0,3,0,6,0,7,0, +6,0,3,0,0,0,253,255,253,255,2,0,8,0,7,0,0,0,248,255,248,255,255,255,4,0,4,0,0,0,253,255, +253,255,253,255,253,255,252,255,255,255,3,0,5,0,3,0,255,255,252,255,254,255,0,0,1,0,255,255,254,255,255,255, +255,255,251,255,247,255,246,255,254,255,8,0,15,0,15,0,10,0,6,0,3,0,2,0,1,0,1,0,0,0,254,255, +252,255,254,255,6,0,15,0,17,0,10,0,255,255,250,255,253,255,0,0,253,255,246,255,243,255,249,255,6,0,17,0, +20,0,15,0,8,0,2,0,252,255,248,255,243,255,240,255,238,255,241,255,248,255,4,0,14,0,19,0,17,0,9,0, +2,0,0,0,1,0,3,0,1,0,252,255,247,255,245,255,247,255,250,255,254,255,2,0,4,0,4,0,3,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,1,0,8,0,13,0,14,0,7,0,254,255,247,255, +246,255,250,255,253,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,5,0,7,0,7,0,2,0,251,255,247,255, +247,255,251,255,254,255,253,255,251,255,250,255,254,255,5,0,10,0,9,0,5,0,0,0,254,255,1,0,5,0,5,0, +254,255,242,255,234,255,234,255,241,255,250,255,0,0,0,0,0,0,3,0,9,0,14,0,13,0,8,0,1,0,254,255, +254,255,253,255,250,255,243,255,238,255,238,255,244,255,253,255,6,0,9,0,6,0,3,0,2,0,6,0,9,0,7,0, +0,0,250,255,250,255,3,0,11,0,14,0,9,0,3,0,2,0,4,0,5,0,0,0,248,255,243,255,243,255,249,255, +2,0,9,0,14,0,16,0,15,0,13,0,12,0,11,0,9,0,3,0,251,255,243,255,242,255,246,255,252,255,0,0, +0,0,255,255,253,255,253,255,0,0,3,0,6,0,6,0,2,0,255,255,254,255,1,0,3,0,255,255,247,255,243,255, +247,255,0,0,6,0,5,0,1,0,255,255,1,0,3,0,2,0,255,255,253,255,255,255,1,0,0,0,253,255,252,255, +254,255,2,0,2,0,0,0,253,255,253,255,255,255,1,0,3,0,5,0,9,0,13,0,12,0,6,0,255,255,251,255, +250,255,253,255,0,0,2,0,255,255,250,255,248,255,252,255,6,0,15,0,13,0,1,0,244,255,241,255,249,255,3,0, +6,0,1,0,252,255,251,255,252,255,248,255,241,255,237,255,241,255,251,255,1,0,2,0,255,255,255,255,2,0,3,0, +1,0,252,255,250,255,252,255,255,255,1,0,254,255,251,255,250,255,251,255,254,255,2,0,4,0,3,0,255,255,252,255, +253,255,255,255,255,255,251,255,247,255,249,255,1,0,8,0,6,0,252,255,245,255,246,255,254,255,3,0,0,0,251,255, +249,255,254,255,5,0,11,0,14,0,17,0,18,0,14,0,6,0,254,255,249,255,248,255,247,255,245,255,245,255,250,255, +2,0,7,0,4,0,254,255,253,255,4,0,15,0,22,0,20,0,11,0,1,0,254,255,1,0,6,0,9,0,3,0, +246,255,234,255,231,255,239,255,251,255,2,0,0,0,253,255,255,255,5,0,8,0,4,0,254,255,253,255,4,0,11,0, +12,0,5,0,255,255,254,255,2,0,6,0,4,0,0,0,252,255,248,255,246,255,246,255,251,255,2,0,8,0,11,0, +12,0,14,0,18,0,18,0,12,0,1,0,248,255,245,255,248,255,251,255,252,255,250,255,247,255,244,255,240,255,238,255, +240,255,246,255,251,255,253,255,253,255,254,255,1,0,4,0,4,0,2,0,2,0,4,0,6,0,6,0,6,0,7,0, +10,0,8,0,1,0,247,255,242,255,247,255,0,0,6,0,6,0,5,0,8,0,14,0,16,0,10,0,1,0,252,255, +252,255,1,0,4,0,3,0,1,0,0,0,255,255,254,255,253,255,251,255,249,255,246,255,244,255,245,255,249,255,252,255, +254,255,255,255,1,0,5,0,9,0,9,0,7,0,5,0,6,0,9,0,9,0,6,0,2,0,0,0,255,255,253,255, +251,255,252,255,1,0,6,0,5,0,255,255,248,255,247,255,254,255,4,0,5,0,1,0,254,255,0,0,4,0,6,0, +2,0,252,255,248,255,249,255,254,255,3,0,7,0,8,0,5,0,2,0,0,0,0,0,0,0,254,255,251,255,249,255, +250,255,253,255,2,0,7,0,12,0,15,0,12,0,4,0,251,255,246,255,248,255,253,255,255,255,252,255,247,255,247,255, +252,255,3,0,7,0,9,0,12,0,16,0,17,0,10,0,253,255,243,255,241,255,250,255,4,0,9,0,6,0,255,255, +250,255,252,255,1,0,4,0,2,0,253,255,251,255,254,255,5,0,8,0,4,0,251,255,243,255,242,255,246,255,251,255, +255,255,2,0,6,0,11,0,12,0,9,0,3,0,254,255,253,255,253,255,254,255,0,0,2,0,5,0,8,0,9,0, +9,0,7,0,3,0,253,255,246,255,242,255,241,255,245,255,250,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0, +2,0,2,0,2,0,255,255,251,255,246,255,242,255,239,255,240,255,245,255,252,255,0,0,255,255,253,255,253,255,1,0, +7,0,9,0,6,0,0,0,252,255,253,255,0,0,3,0,3,0,3,0,2,0,0,0,253,255,250,255,249,255,252,255, +2,0,9,0,13,0,12,0,6,0,255,255,251,255,252,255,0,0,3,0,1,0,252,255,251,255,255,255,6,0,10,0, +7,0,1,0,253,255,253,255,0,0,3,0,2,0,255,255,252,255,251,255,252,255,0,0,5,0,8,0,8,0,6,0, +1,0,252,255,247,255,242,255,241,255,245,255,252,255,4,0,8,0,8,0,7,0,7,0,8,0,6,0,1,0,249,255, +244,255,244,255,247,255,251,255,255,255,3,0,5,0,6,0,7,0,7,0,7,0,6,0,4,0,0,0,251,255,249,255, +249,255,251,255,254,255,1,0,4,0,7,0,8,0,8,0,6,0,3,0,0,0,253,255,249,255,249,255,252,255,2,0, +6,0,9,0,8,0,6,0,3,0,254,255,248,255,243,255,242,255,246,255,252,255,1,0,6,0,10,0,12,0,12,0, +7,0,255,255,249,255,246,255,246,255,248,255,250,255,253,255,0,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0, +3,0,4,0,5,0,6,0,6,0,3,0,255,255,253,255,251,255,251,255,252,255,254,255,0,0,1,0,0,0,255,255, +255,255,1,0,2,0,3,0,3,0,4,0,6,0,6,0,2,0,252,255,247,255,247,255,250,255,255,255,2,0,3,0, +1,0,255,255,253,255,251,255,250,255,251,255,253,255,0,0,3,0,4,0,4,0,1,0,254,255,252,255,254,255,1,0, +2,0,0,0,253,255,252,255,254,255,2,0,4,0,2,0,255,255,254,255,0,0,4,0,7,0,8,0,6,0,1,0, +253,255,251,255,249,255,249,255,249,255,249,255,250,255,253,255,0,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0, +255,255,255,255,0,0,2,0,3,0,1,0,255,255,254,255,255,255,1,0,3,0,5,0,6,0,7,0,7,0,7,0, +6,0,5,0,2,0,0,0,255,255,255,255,255,255,254,255,252,255,249,255,248,255,249,255,251,255,255,255,3,0,5,0, +6,0,4,0,255,255,251,255,248,255,247,255,248,255,250,255,253,255,0,0,2,0,3,0,4,0,4,0,5,0,7,0, +7,0,5,0,3,0,1,0,2,0,4,0,4,0,1,0,253,255,250,255,250,255,253,255,255,255,1,0,1,0,1,0, +3,0,4,0,3,0,0,0,252,255,249,255,249,255,253,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255, +253,255,253,255,255,255,255,255,254,255,253,255,252,255,254,255,2,0,6,0,8,0,8,0,7,0,4,0,0,0,253,255, +252,255,251,255,251,255,252,255,252,255,252,255,254,255,1,0,5,0,7,0,7,0,4,0,1,0,255,255,254,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,254,255,253,255,253,255,254,255,255,255,254,255,253,255,253,255,255,255, +1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,0,0,255,255,255,255, +255,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,254,255,253,255,252,255, +252,255,255,255,2,0,4,0,5,0,3,0,1,0,0,0,255,255,254,255,254,255,255,255,1,0,2,0,2,0,2,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255, +254,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,2,0,3,0,3,0,2,0,2,0, +2,0,2,0,1,0,255,255,254,255,254,255,254,255,255,255,0,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,254,255,254,255,254,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,4,0,6,0,6,0,5,0, +2,0,0,0,254,255,253,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255, +0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,255,255,1,0,3,0,4,0,4,0, +4,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0, +2,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +1,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255, +254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,255,255, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,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,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0, +0,0,255,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,255,255,255,255, +255,255,255,255,0,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,255,255,255,255,0,0,1,0,255,255,255,255,255,255,1,0,2,0,2,0,1,0,1,0,2,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,254,255,255,255,0,0,0,0,2,0,1,0,255,255,254,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,1,0, +0,0,254,255,254,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,2,0,2,0,1,0,0,0,0,0,0,0, +0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,2,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255, +0,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,2,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,1,0, +1,0,0,0,255,255,254,255,0,0,1,0,255,255,0,0,1,0,1,0,0,0,1,0,255,255,255,255,0,0,1,0, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,2,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,255,255,254,255,255,255,1,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,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,1,0,1,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0,1,0, +0,0,255,255,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +1,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,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,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,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,255,255,0,0,0,0,0,0, +1,0,1,0,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,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,1,0,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,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/splash.pcm b/src/client/sound/data/splash.pcm new file mode 100755 index 0000000..6b4ae10 --- /dev/null +++ b/src/client/sound/data/splash.pcm @@ -0,0 +1,1495 @@ +unsigned char PCM_splash[47748] = { +1,0,0,0,2,0,0,0,17,43,0,0,58,93,0,0,16,236,161,240,45,240,181,40,155,58,93,215,32,238,59,11, +28,65,104,12,71,6,246,5,5,238,94,9,84,253,69,238,145,252,221,21,197,247,9,251,176,203,3,229,177,240,123,21, +164,30,68,28,162,21,5,230,160,243,233,3,152,1,187,232,254,21,136,71,248,74,218,42,113,35,35,174,0,209,51,240, +248,25,95,77,74,9,166,203,129,236,237,1,133,40,136,249,131,204,126,26,45,35,223,22,255,13,103,23,94,227,227,209, +205,225,88,14,169,29,37,253,226,229,106,248,113,250,97,237,47,44,205,45,194,222,189,161,92,209,110,7,224,36,188,57, +183,64,83,15,170,191,193,157,112,166,69,252,9,67,95,51,185,25,7,28,134,17,112,254,242,222,46,220,54,250,25,12, +125,3,67,250,101,248,214,199,25,222,178,223,40,238,157,14,111,13,125,0,207,15,17,248,30,17,165,251,182,253,57,251, +35,239,64,244,175,232,53,239,32,239,109,251,94,18,186,36,35,32,172,17,100,237,148,237,240,254,151,220,162,242,209,6, +200,16,40,6,139,9,168,18,58,246,252,5,8,2,167,2,99,237,230,245,11,247,166,7,245,10,255,15,79,255,77,255, +167,246,115,253,139,0,104,5,99,241,165,236,135,246,158,252,143,244,84,7,132,235,230,3,106,9,119,251,7,13,96,7, +125,249,235,254,118,9,35,246,169,5,144,13,94,229,145,251,197,5,157,252,100,19,56,6,154,240,22,251,183,8,143,249, +140,6,117,20,238,251,30,18,177,248,211,247,152,0,174,15,75,25,205,2,26,244,112,17,147,3,170,247,3,252,228,252, +98,0,101,247,221,9,162,7,137,4,59,3,237,10,168,248,197,13,165,1,213,10,119,2,29,250,129,246,65,246,121,247, +248,248,107,3,114,245,84,8,60,13,16,17,145,19,64,9,95,252,6,238,170,254,27,17,102,2,160,8,233,7,231,251, +241,2,23,16,68,3,122,250,52,1,71,6,131,254,11,246,118,9,13,250,59,249,11,3,121,18,212,6,96,239,99,234, +250,249,57,14,49,254,48,253,83,13,181,244,213,241,225,9,88,21,96,254,119,233,173,3,87,20,84,252,4,5,86,12, +89,242,175,233,178,8,235,13,222,238,81,243,43,4,238,11,148,242,242,248,60,253,219,220,11,10,109,22,207,229,136,20, +114,6,229,5,7,8,166,2,111,251,221,7,144,2,103,231,101,3,166,14,39,247,78,250,43,230,119,230,202,234,158,35, +187,31,154,10,28,7,13,237,228,8,14,253,245,230,26,233,143,12,152,3,164,248,27,31,28,1,120,233,16,10,148,14, +9,248,67,245,173,253,202,244,247,248,219,10,230,244,90,13,165,5,203,229,70,244,212,4,166,25,194,24,111,10,76,252, +74,235,213,242,225,245,12,242,113,2,40,25,122,7,88,233,163,235,115,7,229,248,50,255,169,8,80,11,84,10,39,245, +8,244,160,244,171,5,225,19,71,247,142,230,14,13,55,5,253,3,254,7,24,251,215,6,87,12,14,246,130,229,172,236, +117,10,126,19,176,3,217,244,115,6,62,13,137,17,118,14,156,4,149,237,8,211,33,231,9,242,136,244,124,11,186,21, +81,11,61,14,188,248,45,234,227,231,79,248,63,244,74,24,200,39,102,16,133,15,165,15,20,3,178,233,48,226,9,226, +182,229,252,230,77,10,209,29,25,15,232,253,20,243,32,245,27,243,13,245,49,7,89,16,125,22,217,23,237,1,117,242, +53,6,250,16,199,7,28,252,122,246,144,233,1,239,86,247,52,252,185,2,78,9,191,2,35,251,85,1,204,5,81,1, +234,2,12,252,65,248,81,4,158,249,136,254,117,22,46,21,162,1,185,251,123,240,22,249,213,248,128,251,232,11,235,19, +174,11,49,6,206,254,150,238,120,250,199,250,31,247,172,241,205,245,186,250,181,6,137,16,74,23,120,13,172,7,43,5, +218,254,121,251,98,250,159,249,49,251,50,251,214,252,222,252,88,4,68,4,16,253,235,255,140,2,231,22,232,13,206,255, +224,253,191,247,141,252,200,2,59,6,252,19,174,30,24,22,54,3,1,233,191,216,127,231,28,253,196,9,199,19,245,20, +74,0,130,250,181,250,12,249,169,253,220,1,187,249,29,251,72,252,79,16,113,18,131,20,95,16,248,13,95,11,56,247, +188,237,145,238,68,238,86,240,169,4,223,7,214,2,142,3,15,6,90,5,106,5,210,1,82,247,17,245,159,247,210,250, +116,5,97,3,114,4,144,11,77,5,206,1,124,2,185,255,54,250,29,253,113,245,57,242,178,246,75,249,219,4,169,18, +86,23,213,10,94,12,252,4,234,244,89,249,111,250,131,245,124,249,231,6,76,11,188,8,44,8,8,7,91,254,219,247, +67,252,42,251,101,0,175,255,123,6,94,255,37,250,14,255,243,8,31,4,179,252,129,1,171,12,84,11,130,253,28,246, +135,252,53,4,203,251,233,244,44,253,80,255,131,253,234,0,248,254,248,248,84,245,15,2,34,3,33,255,179,1,243,8, +62,8,50,13,95,8,186,254,225,252,146,250,26,250,52,250,34,246,177,246,219,252,233,246,242,246,67,254,163,8,170,8, +49,10,113,17,193,8,145,252,1,248,135,246,145,231,190,240,54,6,206,2,57,0,64,1,180,5,119,1,58,248,115,253, +176,255,100,3,225,8,63,5,234,6,163,2,104,252,14,248,202,250,29,253,40,6,218,11,100,7,150,2,188,251,84,248, +128,245,85,252,171,1,227,2,33,2,177,4,35,253,50,2,50,9,196,247,126,243,66,250,189,245,10,245,128,4,213,8, +212,255,254,2,121,13,54,11,70,5,201,2,206,3,226,247,131,248,196,244,236,240,193,248,101,252,71,5,91,3,121,2, +148,7,164,255,191,250,235,2,61,10,87,243,41,241,31,3,28,14,12,7,207,250,56,245,0,1,24,9,137,4,30,6, +61,7,95,254,172,245,232,4,194,254,70,250,142,246,175,247,137,246,180,245,188,255,130,5,212,3,133,6,133,253,187,255, +71,8,200,16,232,1,128,0,177,7,169,251,83,249,198,252,185,253,150,254,79,2,36,251,199,246,140,253,241,4,197,2, +91,14,178,9,146,246,142,247,251,2,220,13,249,250,89,240,135,4,41,20,175,5,60,235,26,11,114,24,247,3,177,237, +127,245,15,18,19,12,191,233,248,250,70,20,175,224,127,236,71,31,249,19,76,224,192,228,237,28,34,13,65,219,142,222, +126,33,66,54,138,250,233,211,198,246,49,20,99,18,34,8,171,252,74,247,243,242,211,4,2,30,28,9,168,220,41,239, +77,37,7,39,52,235,86,220,80,252,65,25,44,8,255,240,90,3,62,19,39,6,94,5,130,22,31,16,173,243,64,237, +161,251,248,6,214,1,202,244,67,1,39,3,28,0,114,247,255,247,165,251,4,246,112,251,62,5,61,15,93,253,208,251, +218,12,161,1,133,250,69,12,89,13,215,247,210,249,182,246,36,252,114,9,132,7,28,243,200,236,214,254,152,11,188,6, +64,255,247,247,226,247,213,18,202,12,173,254,60,254,189,6,172,7,206,4,57,6,135,254,46,249,128,246,17,250,118,253, +177,2,52,249,223,249,28,11,141,15,176,2,94,249,209,0,215,12,234,7,94,245,150,248,150,11,112,7,116,245,203,1, +43,17,158,2,135,248,151,243,23,239,60,245,153,3,164,8,173,246,153,254,12,4,216,4,245,3,73,2,80,5,167,1, +43,251,118,245,236,1,141,11,155,2,21,248,118,243,223,4,23,15,57,3,7,249,219,247,136,1,163,251,56,247,30,248, +175,7,129,12,117,1,109,255,250,0,218,255,155,4,90,2,233,246,204,241,53,248,83,253,198,252,214,14,112,11,18,252, +168,246,107,250,212,3,91,7,252,254,50,248,34,0,161,255,102,249,77,250,206,255,34,5,109,6,100,249,212,246,55,252, +222,248,44,1,137,6,40,254,115,0,62,4,129,1,11,251,60,250,195,1,159,6,76,249,29,242,50,248,153,0,80,3, +57,3,55,255,113,3,198,2,237,252,49,248,94,250,1,255,63,0,174,2,38,250,79,254,61,9,127,7,253,253,204,250, +94,253,136,247,209,250,238,0,141,2,169,255,50,253,231,252,4,3,129,255,241,255,225,3,200,253,136,252,235,1,166,3, +91,2,138,251,147,246,193,2,127,9,1,6,201,251,208,4,229,5,67,249,41,253,47,254,158,255,14,4,133,252,138,2, +66,0,41,252,205,7,42,8,85,0,110,254,96,0,151,254,137,249,159,252,135,5,0,9,215,6,195,1,167,1,189,248, +211,252,9,3,33,248,137,255,162,5,216,2,219,3,139,2,55,255,225,0,241,254,46,254,83,3,25,252,195,244,237,2, +19,10,177,5,49,4,231,0,32,251,134,253,177,247,252,248,10,6,133,6,40,253,88,254,193,251,33,2,65,6,111,254, +163,254,80,11,47,249,50,248,10,254,94,255,19,253,251,0,15,1,149,254,58,8,173,5,175,0,34,8,237,255,65,0, +101,3,189,255,165,250,234,250,10,254,127,7,5,3,72,0,131,2,154,1,97,4,144,253,7,253,222,2,86,254,220,253, +190,251,215,2,37,5,57,251,68,10,7,16,69,241,151,239,147,4,101,9,115,6,177,251,122,7,4,5,2,242,247,251, +208,255,182,4,224,2,66,252,191,3,47,8,68,253,18,3,9,254,106,247,51,2,76,4,246,0,51,252,219,5,35,2, +7,247,192,252,211,4,53,0,160,254,244,2,127,3,255,252,100,255,77,4,167,4,50,253,49,253,97,255,231,255,58,6, +98,253,144,249,205,4,109,254,251,6,0,9,71,248,82,255,99,5,7,255,230,251,251,255,102,251,130,6,64,7,19,2, +170,254,244,249,149,253,240,250,92,0,54,12,216,252,39,252,215,252,137,251,67,2,53,1,159,4,211,1,161,253,214,10, +222,9,93,248,155,242,2,5,157,6,97,1,124,3,46,5,213,1,176,249,112,251,133,5,45,252,204,2,19,4,178,254, +204,252,239,0,192,5,197,2,194,251,166,0,204,4,59,255,29,255,197,0,201,255,83,1,15,255,1,252,203,0,12,255, +60,2,188,254,52,252,39,255,183,252,53,254,63,253,173,253,146,252,125,1,158,254,177,250,132,0,223,2,47,0,62,0, +7,0,242,250,115,253,247,2,167,1,13,5,211,0,146,1,224,249,254,255,85,4,175,253,225,249,240,3,159,2,113,0, +102,255,215,255,117,1,161,3,17,255,60,0,176,1,163,251,65,3,93,253,117,254,199,5,137,3,79,1,76,5,93,2, +113,255,229,253,102,252,28,4,157,4,83,251,77,254,7,4,239,1,241,2,82,252,225,251,34,1,231,6,59,254,167,252, +20,255,46,4,147,0,110,253,54,254,128,253,40,252,237,1,35,254,140,249,214,249,119,4,222,9,160,255,246,248,219,250, +95,0,199,0,214,253,111,252,236,1,112,5,163,255,91,250,240,252,206,252,157,0,144,6,145,253,136,247,229,251,247,0, +87,0,245,4,154,0,247,247,33,4,179,7,133,254,114,242,41,3,7,20,232,5,29,246,42,253,229,5,124,254,189,1, +8,3,100,5,253,9,62,2,113,251,179,0,26,250,61,245,159,5,225,14,212,255,43,243,201,249,159,7,118,253,64,249, +0,255,80,5,128,255,147,248,180,3,57,254,1,255,18,1,41,255,117,255,18,6,156,2,55,252,128,255,241,2,220,253, +175,251,24,255,247,6,145,0,218,253,98,2,209,250,8,255,172,3,211,251,198,246,229,6,111,4,203,249,117,250,37,255, +184,253,131,3,38,2,243,254,145,1,59,252,72,0,69,2,254,2,198,254,84,252,0,255,238,5,170,1,132,1,135,2, +78,4,2,2,232,9,206,14,4,254,12,252,170,5,22,2,47,252,41,255,134,1,92,4,45,3,171,252,163,251,245,252, +205,252,215,253,194,254,75,255,79,251,125,255,251,253,254,2,174,255,83,251,157,0,136,252,146,252,224,249,216,246,76,3, +150,1,164,0,69,252,170,253,56,1,186,4,227,0,134,253,223,254,117,8,57,253,211,252,156,251,62,254,19,7,204,14, +106,7,121,252,14,251,158,3,78,0,132,247,93,246,244,254,104,248,199,247,221,0,221,2,12,249,11,250,219,254,46,4, +136,4,161,2,199,252,115,251,10,1,61,0,80,2,230,2,5,10,120,10,249,255,40,4,230,1,163,4,196,4,82,251, +121,253,209,1,242,8,146,0,9,253,146,253,53,0,222,2,158,252,31,252,74,251,205,255,136,254,127,255,191,254,84,0, +70,3,142,6,95,5,115,0,26,254,144,247,129,3,177,9,243,6,248,3,2,4,98,3,30,1,79,252,7,255,241,5, +174,247,149,249,33,248,10,255,211,6,90,253,186,249,149,245,241,248,83,1,37,252,79,253,2,2,187,2,91,247,51,253, +96,3,64,2,76,249,52,241,92,8,254,12,154,248,180,253,76,5,172,1,215,251,64,2,78,251,112,18,156,7,159,248, +244,251,111,252,201,2,37,11,19,6,11,242,98,255,119,10,99,12,136,251,91,251,147,251,23,6,245,255,240,249,140,2, +30,0,187,7,18,8,86,9,65,3,234,245,115,253,234,7,251,11,162,9,157,253,121,4,246,2,21,1,53,1,17,242, +10,9,13,6,134,255,215,243,129,8,152,9,155,254,139,247,65,3,48,246,218,254,143,242,209,243,122,235,166,1,186,4, +153,240,204,252,82,253,212,9,231,15,132,8,34,4,55,250,31,252,41,242,176,233,94,252,134,9,50,249,165,240,244,252, +54,9,217,3,123,4,148,243,108,250,148,254,18,7,210,0,91,254,83,247,194,245,164,5,135,16,231,243,9,242,201,243, +105,16,52,23,254,3,9,250,22,247,153,250,6,26,185,22,226,5,128,4,118,239,180,4,37,9,206,12,225,9,242,247, +242,4,21,250,23,2,43,2,252,4,55,1,70,254,230,9,55,1,242,252,207,251,228,251,10,2,114,249,255,6,176,243, +30,252,244,4,80,1,109,2,84,4,135,7,164,247,219,240,135,254,2,1,128,253,144,13,198,255,6,246,27,7,220,238, +78,5,17,0,161,2,43,252,141,240,79,13,61,252,93,6,143,250,157,239,225,7,84,253,134,18,234,245,205,241,30,252, +27,248,184,6,101,1,61,12,164,249,163,255,190,0,239,251,209,249,195,4,174,1,220,12,52,253,253,6,8,14,34,6, +194,246,21,6,224,249,41,252,1,3,36,6,188,251,69,249,253,5,197,5,212,1,192,0,166,253,171,244,219,248,223,3, +50,8,31,251,97,253,97,13,168,6,246,246,52,7,49,9,211,253,234,251,197,255,103,249,214,3,103,7,26,255,21,250, +251,254,127,12,148,16,165,7,218,240,26,249,33,2,194,10,30,5,16,245,123,4,247,247,64,0,245,7,189,254,210,237, +77,1,130,6,124,10,137,248,199,246,146,7,70,255,34,240,33,244,206,3,127,7,18,246,236,243,149,8,232,252,59,250, +144,10,187,249,97,244,237,4,184,6,4,7,16,248,196,248,124,254,63,12,71,12,10,255,191,1,39,0,173,3,12,6, +68,246,253,251,48,3,65,2,98,6,210,0,213,3,81,247,199,253,140,10,216,1,208,243,230,13,165,252,237,254,158,253, +146,253,184,20,242,11,227,244,178,247,73,249,166,0,227,1,216,255,9,0,34,2,232,253,111,249,15,3,18,2,79,253, +85,253,43,8,204,5,64,5,209,252,27,9,209,10,237,11,39,10,252,14,180,5,195,10,207,247,193,3,103,253,127,233, +161,245,226,9,196,249,62,233,67,248,73,246,107,255,24,255,216,240,139,246,42,244,38,0,111,250,183,243,161,249,219,241, +91,235,176,244,97,250,225,247,191,239,123,244,184,241,235,249,82,254,99,8,151,8,182,4,178,2,160,1,173,249,194,255, +177,19,27,6,245,253,143,4,60,17,61,11,65,6,197,19,83,18,236,22,81,19,119,17,2,24,71,20,180,9,166,7, +1,8,253,18,131,15,161,6,214,252,145,5,25,1,100,247,72,4,65,254,53,253,84,244,205,251,254,249,86,4,84,249, +174,240,155,249,58,0,121,237,36,250,173,1,197,238,212,240,170,253,21,250,244,8,185,249,213,247,161,244,166,250,144,0, +215,1,208,0,185,248,166,1,36,244,124,242,83,246,192,6,44,8,241,253,68,255,182,251,185,0,89,247,239,255,112,246, +20,250,197,16,215,2,49,249,237,254,119,242,215,241,136,7,105,1,118,254,16,23,218,7,179,235,125,254,100,27,230,17, +86,7,134,14,127,6,24,250,22,13,82,18,43,248,77,7,156,5,24,252,185,35,179,22,38,6,155,7,248,0,176,254, +162,235,222,255,209,5,62,0,192,251,109,250,10,254,247,232,165,249,41,247,73,235,71,251,134,0,91,7,68,249,139,231, +229,223,150,235,49,6,45,18,230,249,172,239,219,244,163,238,238,230,215,255,168,2,26,254,163,254,174,12,46,253,159,235, +182,0,82,15,141,243,64,7,29,19,237,246,132,249,39,249,36,251,180,12,181,17,145,20,188,253,144,3,225,255,109,240, +169,245,65,1,56,13,182,29,181,8,252,254,46,244,191,248,146,9,204,238,226,255,120,15,163,14,238,253,181,0,245,1, +114,253,49,227,183,2,175,32,130,25,212,12,69,231,122,240,252,14,26,22,53,15,234,0,147,6,11,9,239,252,133,10, +221,242,235,239,166,8,35,5,75,8,210,252,141,236,39,234,182,232,64,253,182,10,33,4,118,10,103,250,69,252,214,239, +184,250,199,1,160,255,170,247,87,246,158,255,35,245,140,4,184,4,252,0,2,10,199,14,48,0,161,254,5,8,198,10, +97,253,251,243,47,245,28,242,55,248,154,2,185,2,106,8,181,247,208,252,179,7,243,254,104,13,3,29,234,3,205,237, +233,238,139,251,229,2,136,242,224,249,54,245,101,244,205,236,97,245,202,251,163,247,50,253,227,13,27,10,153,14,139,233, +254,239,169,0,15,248,153,237,205,241,157,1,23,248,8,250,58,6,180,252,190,251,201,1,143,3,170,6,31,9,129,17, +114,7,39,250,240,17,206,5,93,249,8,252,229,236,51,3,184,245,9,2,26,28,75,252,31,8,180,247,64,230,104,0, +151,223,222,247,112,16,196,234,24,249,101,0,152,240,82,236,224,247,239,233,141,255,118,9,154,26,70,30,178,44,26,21, +219,19,98,6,54,34,47,255,95,0,248,4,13,238,193,251,245,217,176,12,159,212,108,222,63,254,247,30,68,243,154,219, +83,22,52,10,53,246,47,245,180,23,242,250,29,243,55,59,177,31,205,16,132,24,4,243,98,76,198,65,179,35,33,39, +199,66,165,85,103,74,72,123,96,112,250,40,144,75,167,94,77,77,109,40,71,43,144,6,4,15,66,253,197,18,104,20, +122,22,133,243,83,252,251,230,5,235,188,238,38,36,100,248,12,228,5,8,4,46,53,89,106,71,47,53,47,67,115,75, +156,89,18,92,92,113,15,125,212,124,158,117,59,120,33,126,126,126,187,121,67,119,7,125,151,121,228,116,106,118,91,100, +215,94,63,67,155,40,128,215,203,163,0,128,0,128,127,164,134,131,103,132,0,128,0,128,33,136,64,135,0,128,146,129, +0,128,0,128,163,128,170,136,198,134,50,130,0,128,253,129,0,128,0,128,0,128,0,128,0,128,0,128,202,132,0,128, +0,128,9,129,86,128,0,128,253,129,167,143,11,135,51,130,67,135,50,139,235,138,40,252,255,127,255,127,255,127,255,127, +255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,255,127,52,125,255,127, +255,127,255,127,255,127,180,127,215,126,233,127,255,127,196,106,174,84,139,89,192,216,253,199,58,58,255,42,183,25,41,128, +0,128,214,224,162,189,118,143,69,149,185,134,70,162,0,128,0,128,37,133,45,128,0,128,0,128,0,128,42,131,0,128, +170,173,164,5,48,180,16,133,167,255,236,91,146,120,172,125,197,125,255,127,255,127,255,127,255,127,144,123,49,123,138,124, +255,127,118,126,210,124,132,127,111,124,255,127,255,127,255,127,1,124,129,126,207,123,204,123,255,127,218,124,255,127,255,127, +255,127,255,127,133,67,162,37,5,58,161,189,236,132,123,220,142,144,156,139,171,131,238,137,145,138,0,128,0,128,0,128, +0,128,194,129,0,128,0,128,0,135,0,128,0,128,183,130,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128, +0,128,249,152,164,168,84,172,205,138,126,169,40,1,94,15,169,16,110,228,92,216,83,198,32,211,10,13,75,205,19,242, +253,70,214,46,148,236,20,225,111,233,104,75,195,56,208,47,169,46,78,59,188,243,12,237,101,212,50,167,210,191,138,216, +198,186,0,128,0,128,75,129,0,128,0,128,0,128,0,128,166,165,150,165,201,128,0,128,0,128,0,128,0,128,196,138, +138,136,64,166,45,132,81,130,213,131,0,128,0,128,0,128,185,137,6,163,90,213,105,183,101,144,92,174,0,171,124,154, +63,197,111,45,154,91,109,26,30,215,200,254,28,49,137,88,181,104,46,83,112,84,150,35,164,39,255,127,255,127,55,99, +183,77,151,44,111,82,255,127,255,127,255,127,230,94,227,43,184,59,204,92,165,86,204,64,193,65,18,83,217,36,185,231, +137,25,242,94,9,72,206,234,62,224,174,10,74,74,197,66,169,22,17,225,128,184,123,218,240,23,97,4,233,227,69,242, +82,204,154,192,164,233,126,19,155,237,136,227,136,251,61,41,229,12,192,250,215,32,22,98,69,48,242,243,30,28,70,84, +49,106,252,117,154,84,110,96,139,77,169,51,69,53,110,78,151,116,209,111,40,104,113,83,104,25,48,57,198,123,255,127, +92,123,12,116,120,87,23,116,182,99,27,40,69,35,254,85,1,80,199,65,183,62,134,41,175,46,161,2,199,23,119,11, +124,241,130,234,234,20,44,247,120,10,182,13,252,6,17,5,208,245,35,253,52,233,1,237,74,33,192,27,43,248,234,252, +24,233,232,178,130,225,243,8,255,29,168,5,69,9,107,7,3,209,209,229,77,10,82,30,102,32,99,242,179,233,190,6, +237,235,110,246,106,240,170,220,93,215,203,18,235,43,206,1,73,229,93,221,251,253,117,6,94,168,24,128,35,161,125,184, +14,205,139,48,192,59,48,16,65,174,27,133,47,162,120,230,115,45,139,242,21,187,76,168,152,198,226,225,174,205,0,128, +0,128,46,150,250,249,211,71,0,55,214,206,34,134,120,135,156,227,61,55,14,55,80,0,193,205,82,144,230,181,21,199, +91,189,240,229,246,207,190,165,76,217,92,237,215,13,113,38,60,230,57,197,247,192,162,1,102,48,144,45,47,14,251,240, +173,169,0,128,0,128,55,223,196,16,26,14,77,220,134,147,248,216,112,35,178,52,128,20,6,17,224,12,180,226,140,3, +98,50,197,27,203,38,19,47,104,6,165,203,26,187,163,206,136,239,237,7,103,231,146,227,14,44,191,127,67,127,191,80, +221,37,38,42,62,87,194,70,10,49,147,95,149,89,250,56,60,14,182,8,148,255,118,22,53,19,22,5,91,240,58,233, +22,33,53,64,209,74,133,75,173,89,229,63,233,54,129,110,255,127,255,127,213,123,73,90,248,80,73,95,182,106,94,99, +20,52,213,46,247,49,148,42,131,33,108,57,239,88,3,63,196,69,187,94,12,87,219,107,193,108,255,127,193,121,81,62, +34,255,90,228,56,42,150,76,128,51,139,254,108,222,13,210,71,225,209,252,210,29,49,14,173,3,139,59,235,97,176,105, +217,103,122,89,137,64,254,35,252,19,141,238,89,244,134,5,249,253,52,242,139,208,5,215,41,222,229,240,115,53,185,116, +249,126,13,86,77,55,157,86,255,127,255,127,82,64,214,244,159,244,202,250,58,227,67,205,156,198,253,175,250,170,81,198, +40,235,215,6,25,21,19,21,150,30,58,5,176,4,183,10,198,3,46,231,199,153,0,128,0,128,0,128,0,128,0,128, +76,136,162,148,48,160,137,170,57,210,45,218,152,195,207,189,184,180,204,194,181,213,240,193,221,156,28,145,213,150,3,172, +116,202,57,221,170,221,199,236,3,228,156,235,79,24,209,15,81,246,82,210,159,179,246,130,0,128,229,199,174,8,196,0, +174,216,183,197,100,219,97,215,202,237,59,233,226,196,101,155,77,138,0,128,0,128,0,128,175,139,0,128,155,129,217,128, +25,136,155,184,173,208,76,217,16,214,62,219,152,216,155,225,86,234,200,206,24,187,29,185,130,202,150,198,205,172,95,187, +179,193,237,170,191,175,210,227,199,15,94,237,207,206,141,235,207,8,122,42,102,72,94,91,23,64,210,58,217,54,44,44, +10,17,178,22,75,12,72,23,7,74,7,65,92,14,126,32,199,54,195,53,46,26,209,18,230,3,128,241,203,248,147,14, +97,5,127,19,161,26,193,229,236,221,248,247,14,255,121,6,39,7,94,242,55,224,202,232,8,236,115,239,150,255,48,26, +233,49,107,53,90,251,63,223,78,212,219,231,151,5,142,17,137,45,168,66,40,45,237,3,45,247,169,252,163,50,161,101, +82,110,220,84,156,38,242,9,155,36,131,89,28,126,25,123,178,60,2,6,82,247,170,254,162,29,196,50,67,60,0,40, +227,19,31,4,140,235,170,228,196,1,178,49,149,99,198,125,255,127,255,127,239,122,124,122,103,95,232,55,149,52,172,51, +91,5,167,220,185,189,33,176,40,146,127,149,128,216,252,35,177,72,214,24,41,40,233,100,124,123,163,121,80,123,128,127, +8,126,3,69,199,11,217,245,17,217,157,211,178,219,217,214,206,191,150,189,169,212,233,238,210,2,77,28,12,67,195,87, +198,65,167,53,113,64,93,72,52,83,78,79,115,55,65,18,149,20,253,24,8,4,88,248,170,0,48,30,113,73,74,101, +224,57,216,236,117,189,165,179,106,181,249,192,133,211,138,5,70,8,215,245,170,249,86,35,54,34,120,44,175,69,146,94, +138,99,168,64,82,4,247,204,184,189,70,191,132,185,180,178,127,149,0,128,168,138,91,138,106,165,97,235,133,51,61,88, +27,65,48,14,101,10,103,31,159,46,73,77,240,65,94,24,80,244,223,175,0,128,138,128,22,129,108,220,132,248,157,210, +150,185,28,177,141,184,85,200,197,3,26,44,226,74,164,78,66,65,243,62,10,26,142,239,69,220,15,191,42,171,82,176, +77,163,211,161,250,150,97,153,211,193,8,203,52,232,67,252,183,1,100,22,27,54,59,52,172,59,49,22,50,246,83,246, +183,236,201,199,90,203,165,218,137,206,158,180,126,147,38,147,199,176,50,199,50,191,224,198,23,205,221,208,54,216,50,220, +167,246,243,21,121,56,253,55,237,10,133,233,127,217,107,201,210,221,97,239,25,218,101,198,76,198,195,206,147,207,102,232, +160,14,27,35,101,20,167,251,170,232,233,221,219,218,27,236,241,241,31,0,225,4,116,3,133,247,71,222,48,192,95,187, +70,207,24,218,51,229,87,8,138,31,230,48,76,53,104,57,82,72,59,53,69,41,212,33,195,5,120,249,199,245,46,237, +4,224,150,225,82,204,4,198,218,198,133,238,17,23,35,45,146,58,18,49,134,38,147,26,54,26,219,26,162,40,138,69, +140,38,64,3,82,29,131,45,9,35,231,35,211,35,191,27,206,19,135,14,78,12,124,22,218,10,128,247,200,244,17,230, +164,218,80,187,204,171,107,187,239,235,173,45,66,93,206,125,102,103,95,87,91,94,173,104,224,90,199,53,91,47,92,13, +176,227,128,224,138,216,34,209,5,200,55,193,19,186,240,210,69,247,234,22,212,46,215,41,119,61,105,65,107,65,85,74, +193,63,159,84,202,94,41,98,224,86,53,53,225,13,91,235,109,244,39,252,227,247,126,0,173,249,7,247,16,250,217,243, +52,249,64,1,21,11,208,6,148,9,64,21,144,48,59,72,20,82,158,53,119,33,47,16,215,10,44,12,70,246,61,222, +248,218,170,228,104,215,80,196,211,190,108,207,249,211,231,227,234,247,193,3,67,10,54,2,45,12,208,14,66,2,6,13, +143,43,191,53,188,42,248,51,204,55,97,40,54,24,207,10,8,247,208,224,243,215,48,195,64,199,185,204,103,200,19,197, +10,204,168,229,12,3,55,24,205,66,160,89,26,81,80,81,221,78,114,34,102,4,231,253,183,247,111,241,217,222,55,199, +167,188,11,185,121,189,102,205,42,237,181,1,2,7,190,19,190,7,247,232,4,230,128,240,99,230,171,218,246,233,154,221, +198,205,18,192,75,224,47,247,114,2,214,14,102,25,102,18,130,30,124,10,142,13,116,249,248,241,150,252,0,255,88,254, +57,239,174,242,241,230,137,237,21,244,225,9,82,21,121,33,246,43,189,49,169,51,92,50,34,34,4,26,128,18,111,7, +242,9,163,10,97,251,217,222,189,208,83,217,255,226,148,247,154,6,51,3,238,0,80,255,40,12,211,10,66,4,127,236, +203,232,247,240,244,242,228,241,245,241,136,251,237,4,239,246,223,251,76,251,205,251,129,4,31,2,161,3,96,7,142,240, +153,221,51,232,5,242,111,235,76,231,123,234,131,233,202,248,77,8,123,17,142,25,3,32,208,20,219,22,220,19,128,22, +111,21,41,27,220,25,60,26,219,13,1,254,165,242,2,239,150,242,236,0,113,10,18,27,144,33,29,19,4,14,187,14, +22,11,22,14,88,25,96,44,39,64,251,50,130,41,144,37,61,18,255,21,48,33,200,46,169,46,29,11,41,240,38,226, +102,234,251,1,197,15,84,24,76,27,3,29,152,26,48,23,229,16,95,38,235,28,68,25,135,15,43,2,159,236,94,227, +145,233,46,243,130,235,157,236,215,241,53,254,131,249,227,1,246,1,80,15,80,253,118,250,94,251,170,233,146,245,108,255, +55,252,160,243,124,231,204,225,68,230,65,254,90,238,54,233,138,234,136,225,244,234,169,0,13,254,95,0,127,10,178,253, +252,240,12,250,236,5,204,16,201,5,73,239,137,219,32,218,188,232,95,236,64,238,60,236,100,239,101,245,181,249,111,236, +63,243,216,244,184,242,5,242,68,249,78,9,87,13,214,5,200,2,255,2,114,253,223,255,236,0,63,249,47,254,28,248, +155,236,40,234,101,245,243,250,66,251,185,4,214,4,114,251,44,248,85,253,105,250,153,249,204,246,39,245,173,241,68,229, +96,230,38,237,251,241,187,235,223,233,202,221,97,215,169,225,230,234,176,225,214,232,60,230,159,237,7,230,177,229,233,244, +122,7,212,13,26,8,40,255,137,247,215,241,181,231,67,217,140,210,16,214,126,217,138,218,55,224,176,248,240,5,32,4, +229,7,144,8,50,15,181,21,50,13,131,18,169,11,84,13,68,12,174,14,21,22,84,13,79,0,172,255,178,0,190,11, +115,11,202,2,141,3,185,1,69,2,58,252,33,255,174,1,104,8,16,15,59,7,237,8,13,7,112,14,211,12,57,24, +221,33,226,39,222,50,239,41,253,34,60,33,42,11,108,12,189,7,128,245,161,235,164,228,221,228,38,230,25,237,230,243, +13,248,252,242,40,244,8,252,94,0,230,11,240,15,2,17,235,25,12,20,225,23,236,19,87,21,19,23,9,19,127,19, +37,19,90,12,34,15,163,255,213,5,255,254,9,2,213,8,215,19,153,18,180,17,100,22,222,25,15,20,244,25,152,27, +33,28,190,36,237,32,240,24,243,21,167,23,152,26,1,20,38,24,117,14,246,1,139,246,70,244,136,245,199,233,79,238, +39,231,223,229,181,236,253,235,150,243,10,238,139,251,58,245,134,246,37,8,157,16,147,25,23,33,116,26,42,27,173,16, +200,24,15,22,69,18,228,24,251,23,248,41,168,48,134,38,240,36,144,255,87,243,90,218,105,200,14,206,253,208,64,214, +87,223,179,239,243,250,191,0,244,9,72,20,126,6,224,11,211,14,221,252,9,235,164,229,28,229,123,231,7,240,78,242, +186,237,253,237,141,253,105,9,6,18,120,30,218,29,128,38,185,56,253,62,81,71,21,60,164,47,97,43,252,26,112,7, +207,248,11,215,187,195,217,186,176,181,232,169,130,169,111,182,247,196,134,214,130,234,187,245,143,5,27,28,76,25,64,37, +252,48,254,39,250,45,216,45,5,21,106,253,227,223,18,186,255,170,67,156,97,157,207,171,9,192,196,203,208,221,34,224, +242,238,170,8,117,19,181,38,208,45,44,58,18,72,178,70,26,75,125,71,79,54,65,38,112,34,13,12,173,242,27,228, +218,211,179,191,7,182,225,182,159,178,247,184,152,201,193,210,91,216,229,226,49,234,36,243,93,5,91,23,239,34,64,51, +1,64,68,54,213,42,22,37,15,45,153,36,172,19,20,249,215,232,201,224,100,201,244,200,138,199,125,204,37,212,66,226, +221,238,67,4,232,11,0,26,231,46,211,44,89,38,120,37,151,19,68,14,146,10,134,252,130,243,208,226,16,206,115,194, +20,204,16,215,57,222,50,231,114,252,237,255,169,12,144,20,185,23,231,41,157,41,21,44,224,41,189,38,104,26,244,11, +173,253,240,230,247,216,229,216,61,221,196,236,53,255,41,12,51,16,79,22,190,20,26,24,60,20,147,14,219,16,90,11, +143,247,56,223,102,215,110,201,124,196,29,202,26,225,204,255,149,32,32,46,108,57,235,73,54,70,77,69,49,58,10,22, +229,243,93,232,240,223,66,222,102,216,153,215,246,206,175,198,98,201,219,220,45,246,124,18,126,24,126,32,67,24,97,24, +205,35,4,46,245,50,178,38,74,18,162,1,214,251,3,252,224,2,35,249,37,232,23,219,42,220,129,233,133,1,34,14, +245,31,112,38,203,47,198,39,7,20,240,6,241,250,34,245,200,241,216,241,108,246,87,237,166,239,148,237,196,224,163,226, +212,242,52,2,104,21,131,39,247,53,169,57,95,56,206,51,18,38,38,25,232,19,78,15,17,249,61,237,20,246,184,238, +174,233,4,244,142,236,162,237,4,1,141,12,1,16,210,9,172,7,202,8,172,19,99,22,164,5,135,14,248,253,72,240, +71,229,114,230,109,222,30,221,211,213,16,218,84,229,30,239,93,246,192,253,43,20,204,33,20,50,243,61,221,67,249,69, +196,69,96,65,64,53,202,49,156,32,118,12,125,7,94,254,202,235,14,236,171,225,18,207,111,190,221,176,162,180,129,192, +24,211,163,235,69,246,32,250,66,12,107,25,47,32,229,57,180,73,198,76,137,60,208,57,119,59,243,51,134,28,141,4, +73,235,35,221,133,212,120,194,85,174,236,161,147,161,107,173,21,197,49,231,138,12,53,37,93,56,166,72,156,88,116,97, +169,92,100,79,137,61,248,20,191,249,136,228,144,209,135,198,247,198,51,211,131,225,9,227,228,236,236,236,9,230,164,224, +230,232,179,252,172,6,27,7,131,16,104,18,119,24,225,23,57,23,231,29,19,16,176,251,7,241,122,238,118,228,128,227, +124,234,243,227,53,236,8,241,157,234,160,224,106,224,180,235,82,232,146,229,35,243,19,14,144,53,79,75,199,60,98,55, +105,51,209,62,234,54,77,26,18,254,217,252,252,232,251,213,79,196,192,204,91,220,175,212,204,212,96,214,158,218,17,221, +248,212,45,215,221,227,165,243,95,243,175,245,70,11,18,26,148,34,200,43,4,55,148,42,192,27,225,36,30,47,39,40, +145,51,206,45,127,23,30,254,103,246,189,234,76,218,106,184,57,187,49,171,33,184,44,205,143,218,155,233,15,251,172,12, +157,23,185,46,60,75,86,93,80,114,240,115,125,103,115,75,212,41,28,248,110,222,138,202,248,159,21,143,149,131,144,130, +193,131,0,128,199,152,93,203,37,1,147,51,40,77,206,96,152,126,118,125,255,127,255,127,95,115,31,78,129,52,51,14, +222,225,130,192,54,159,0,128,0,128,0,128,129,146,19,176,201,201,32,246,1,28,33,49,92,59,150,56,10,68,210,71, +57,75,27,66,38,45,114,14,17,236,244,211,242,172,22,172,169,162,171,176,22,195,243,226,134,2,90,9,129,13,255,34, +222,59,127,89,190,90,144,76,181,47,34,14,19,5,250,224,215,185,204,189,178,184,187,174,199,172,200,193,249,203,62,208, +58,221,29,6,180,18,143,26,127,26,71,55,102,33,252,18,206,33,103,32,115,33,138,30,10,19,229,3,26,230,111,231, +41,212,96,223,84,12,245,248,75,198,218,227,2,0,42,247,152,15,12,24,229,43,88,29,47,17,249,22,192,6,71,6, +176,248,189,242,174,0,133,243,74,242,78,223,9,224,94,0,34,7,66,245,73,255,90,15,84,26,185,23,103,1,173,251, +232,25,160,34,64,1,215,252,143,11,249,6,201,0,59,38,154,14,145,1,237,9,151,252,204,234,5,246,209,223,47,232, +118,10,219,251,14,254,253,13,57,31,171,57,248,65,27,56,176,46,216,41,56,15,131,251,213,234,46,201,29,183,46,195, +208,215,157,235,221,17,67,47,82,49,28,43,103,58,199,72,105,43,121,27,52,29,121,23,117,237,45,223,239,229,200,241, +1,250,37,249,222,16,39,37,228,12,103,10,237,16,47,8,49,9,198,2,138,6,208,7,90,14,127,18,57,21,49,30, +43,30,151,18,93,7,40,7,234,1,199,245,152,232,1,236,121,234,226,238,174,3,183,31,174,34,252,25,239,23,154,20, +163,253,156,239,25,239,64,247,249,253,38,240,56,240,77,238,121,242,171,243,107,247,102,1,186,248,66,6,61,8,102,6, +128,11,203,22,51,9,200,250,55,249,149,249,131,255,206,10,0,8,165,248,187,233,31,237,198,236,98,237,32,244,152,255, +94,2,133,254,234,246,114,238,179,239,208,245,197,252,23,255,87,236,132,233,99,227,203,235,12,243,62,243,10,235,148,239, +89,242,133,250,140,240,84,248,126,8,85,255,185,246,133,247,28,16,172,32,162,22,10,5,222,252,205,242,26,227,76,222, +171,210,28,212,103,208,126,211,223,233,182,7,224,11,80,9,125,14,30,12,231,251,93,243,49,240,185,234,126,235,125,235, +73,230,159,237,180,243,80,247,172,246,137,4,0,11,70,9,117,4,37,254,164,246,214,240,5,230,60,229,253,235,11,250, +130,8,30,10,218,9,247,16,196,8,49,253,191,250,104,247,51,245,252,236,173,234,69,249,106,5,82,0,19,238,52,245, +181,254,220,14,75,16,122,15,201,10,15,4,24,246,93,251,205,0,144,12,229,15,202,18,58,22,154,12,169,4,76,8, +57,245,37,238,54,244,202,5,199,5,161,249,186,249,140,6,187,13,213,8,137,255,236,252,146,255,172,254,46,6,8,6, +254,1,132,1,196,1,253,249,157,243,73,249,47,5,160,6,212,249,220,253,172,254,173,243,155,234,223,243,139,255,53,15, +102,9,68,10,29,18,7,19,23,15,54,9,130,0,71,252,6,3,211,254,61,1,135,253,10,241,255,239,60,241,20,251, +93,8,254,10,156,1,221,1,44,255,51,242,48,238,152,1,94,16,151,19,246,9,20,3,112,2,73,255,20,3,240,20, +18,25,77,11,131,7,6,247,103,233,190,245,219,251,161,254,70,16,17,18,61,11,166,253,89,243,97,247,66,4,205,8, +203,15,127,25,4,23,241,251,246,242,29,254,203,17,112,25,49,20,134,6,154,252,215,250,64,2,214,10,225,25,210,28, +94,18,216,4,223,248,79,253,0,253,10,6,40,18,69,253,31,254,68,13,130,20,144,9,128,4,238,9,162,11,187,16, +25,4,60,13,81,10,171,246,21,250,186,8,43,2,110,10,65,18,79,26,157,18,137,18,156,17,76,13,129,9,67,250, +219,239,56,253,133,255,168,242,54,232,28,239,190,254,251,252,200,14,235,37,106,40,44,39,76,30,113,9,73,255,182,244, +152,241,173,251,205,248,214,241,18,241,159,245,0,4,56,11,161,1,72,1,94,20,234,22,214,11,170,252,21,7,1,5, +81,247,205,2,195,4,102,250,238,252,144,252,170,248,15,2,229,11,217,19,26,27,176,25,68,14,195,5,254,255,105,250, +247,254,42,3,2,1,29,247,102,241,134,244,134,2,39,7,41,13,204,1,235,1,78,12,134,15,255,14,224,253,1,250, +124,248,6,2,243,243,50,220,148,215,176,226,92,239,111,233,226,0,169,17,8,9,253,248,218,241,136,5,198,27,237,36, +149,23,191,9,36,3,199,253,126,236,150,231,102,242,104,227,180,196,33,206,6,230,152,243,66,240,114,227,200,210,213,199, +213,225,30,11,150,26,119,15,91,2,28,246,167,241,200,241,165,249,151,254,193,239,143,242,164,5,46,11,8,3,244,1, +94,252,138,229,152,217,218,236,46,234,231,239,68,4,183,251,168,232,170,229,170,229,35,240,191,251,177,248,24,234,89,246, +100,24,130,32,155,16,121,5,116,0,168,0,118,5,216,244,227,240,177,244,179,4,226,4,50,246,46,228,60,225,11,234, +176,244,136,252,120,254,195,251,32,242,115,222,53,224,178,251,225,10,195,15,88,27,7,9,167,1,24,10,31,19,36,246, +131,227,89,247,55,19,191,11,107,252,129,236,56,224,201,236,114,229,205,219,7,215,107,214,55,240,94,252,192,237,75,247, +190,2,197,14,225,27,63,24,42,50,241,33,27,249,87,252,242,17,49,249,26,237,38,223,108,221,65,245,9,5,48,249, +116,247,115,255,251,249,226,245,166,2,76,20,148,45,165,71,26,21,11,237,79,229,53,224,169,7,35,5,60,5,105,33, +128,47,32,31,39,253,150,232,42,246,119,245,115,244,204,17,136,37,248,34,228,30,115,3,172,230,18,251,247,23,38,34, +18,37,120,22,21,17,227,0,206,224,189,222,60,248,161,4,240,9,63,22,139,21,255,26,62,24,13,7,213,251,61,10, +175,17,128,26,39,57,230,52,236,30,215,10,212,250,110,228,209,229,68,235,220,249,175,253,86,246,16,1,247,9,181,7, +140,6,126,15,1,13,163,4,4,14,44,19,103,23,184,14,66,5,215,22,139,22,233,16,250,26,209,39,93,25,243,250, +97,242,68,245,60,241,178,246,64,255,81,4,12,254,175,246,119,251,150,12,3,32,82,34,229,13,7,18,52,27,65,10, +188,251,127,7,71,12,157,249,3,236,178,243,184,17,150,18,160,7,195,6,5,5,108,4,196,14,15,1,103,254,80,7, +123,253,22,244,246,242,221,247,38,254,111,6,60,10,248,10,166,10,239,6,86,10,224,4,155,4,147,8,221,10,81,4, +112,254,251,247,18,245,121,5,62,20,181,239,50,210,240,243,27,251,207,216,8,241,250,7,72,240,200,255,140,31,178,254, +109,245,110,248,87,217,23,238,156,233,203,12,206,13,201,249,0,7,147,255,211,6,127,9,34,246,211,222,112,222,97,243, +233,243,226,245,34,8,162,13,197,6,163,17,186,4,1,233,99,254,30,251,81,230,39,233,18,245,180,247,210,241,193,242, +238,251,219,254,251,4,84,25,122,253,178,247,91,252,5,251,55,0,128,237,250,228,200,230,196,225,34,239,111,248,201,247, +201,239,229,244,227,6,149,2,77,6,239,6,143,253,93,255,57,252,51,7,118,9,200,243,80,228,55,228,200,234,47,238, +222,226,175,215,94,226,125,225,223,221,164,247,42,253,224,9,190,13,8,24,161,22,107,20,4,19,93,255,66,228,120,208, +139,206,232,215,138,218,161,219,231,223,136,246,41,16,90,36,161,46,10,43,1,25,57,26,205,26,75,10,214,16,100,13, +37,2,0,242,49,255,151,249,151,248,217,237,35,251,164,252,114,10,41,22,184,19,16,18,118,8,154,250,8,247,11,8, +204,11,173,252,5,231,139,231,36,237,230,246,238,1,224,11,73,9,194,1,91,255,183,255,53,3,221,249,224,253,207,255, +43,243,148,229,63,232,133,233,81,232,252,240,61,250,67,5,171,11,222,10,104,11,170,11,183,17,129,26,137,34,251,36, +195,21,155,253,230,236,244,13,162,17,24,255,84,236,93,237,159,239,33,249,107,19,233,25,0,36,41,19,204,21,17,27, +83,19,141,23,200,19,168,3,56,241,168,237,51,247,116,1,167,5,23,247,190,244,72,252,245,14,94,13,101,8,150,254, +90,10,229,17,201,17,96,3,30,1,235,252,145,252,113,237,160,243,108,245,68,246,178,247,135,11,254,13,169,22,136,38, +229,20,209,16,24,20,164,18,126,9,160,254,206,254,235,245,232,242,45,249,209,4,235,10,108,16,26,10,19,15,120,2, +58,250,126,254,217,248,25,253,22,1,237,254,63,247,240,240,42,241,143,255,104,11,82,20,167,19,112,12,39,7,172,255, +38,250,60,245,178,247,39,250,24,254,144,249,68,3,58,4,141,1,158,0,8,6,56,15,33,20,205,21,217,14,250,6, +124,0,163,5,63,23,55,38,165,22,120,9,30,26,137,39,59,25,172,12,30,249,99,250,222,17,83,10,157,220,19,234, +52,10,188,15,221,9,191,0,231,1,146,14,22,5,48,239,128,233,81,226,47,239,113,255,150,233,173,223,165,235,135,2, +196,6,251,252,144,245,83,242,242,3,61,20,199,11,255,255,88,244,0,237,115,229,84,227,76,231,247,248,251,2,104,2, +120,10,75,19,92,15,90,15,140,26,14,24,118,9,51,10,103,2,9,241,192,240,110,237,215,238,143,233,199,231,133,240, +26,255,159,3,150,241,68,238,146,242,172,245,116,254,240,0,235,0,68,1,165,7,159,3,152,246,130,247,89,0,148,252, +187,242,99,240,140,2,170,255,109,234,164,228,219,234,125,243,100,241,116,243,81,236,204,230,203,234,112,235,127,12,95,22, +192,16,154,7,27,5,79,4,81,4,185,7,14,3,216,247,115,248,170,254,178,253,167,253,29,0,181,242,135,254,208,2, +206,239,113,226,240,240,101,253,51,243,66,248,17,255,138,253,174,255,34,248,63,6,197,0,215,3,217,0,169,7,207,6, +161,252,71,230,164,238,208,243,120,233,144,229,173,242,42,242,175,247,34,7,124,15,138,9,222,252,71,5,218,22,24,27, +226,17,165,8,118,8,81,250,26,254,158,7,186,14,200,9,129,3,235,11,40,21,44,26,7,10,188,10,199,11,209,0, +163,3,157,14,28,14,29,255,237,245,125,1,39,6,73,6,5,250,202,239,88,243,38,245,87,240,237,236,152,233,19,241, +46,247,26,245,11,250,102,251,46,0,85,2,189,7,73,17,198,11,185,11,57,17,236,22,0,18,3,22,12,26,202,16, +72,16,248,22,28,27,37,24,68,9,134,8,30,9,150,17,248,14,149,8,49,3,78,250,123,3,10,9,212,15,155,2, +157,235,87,227,69,233,215,241,79,243,234,228,209,229,172,234,234,224,138,240,201,9,207,2,39,226,179,234,179,243,187,249, +38,18,222,23,82,10,213,10,140,17,178,21,23,25,187,37,39,31,64,8,84,15,242,19,167,18,174,15,80,3,57,249, +60,4,185,17,172,255,36,251,4,255,94,7,33,10,144,1,139,237,223,230,150,247,208,1,115,249,226,238,245,235,233,249, +123,0,33,250,17,239,102,250,44,0,214,248,202,238,223,247,102,4,251,15,86,11,69,11,216,17,250,17,58,11,240,2, +1,4,27,9,174,7,160,248,183,245,81,253,0,12,118,251,174,249,20,251,82,249,123,244,145,250,174,246,251,253,94,246, +244,234,81,230,94,241,12,4,231,17,7,14,153,245,70,247,159,251,16,8,167,255,95,246,80,252,239,254,88,5,81,14, +27,6,185,250,210,0,18,0,34,5,137,11,59,11,110,7,253,3,247,8,102,4,229,250,170,2,175,5,185,254,127,250, +140,253,246,247,158,237,233,232,192,240,109,240,119,235,171,236,68,244,88,253,88,254,226,255,212,247,26,255,63,15,234,17, +163,1,1,253,210,6,58,17,0,15,17,12,193,20,56,15,39,11,33,5,53,3,201,1,176,7,68,246,42,247,167,250, +94,248,117,234,136,239,58,245,9,233,28,2,4,5,95,8,58,250,255,228,72,236,104,236,248,7,146,3,143,247,112,11, +113,6,47,5,237,254,152,2,81,3,131,252,191,8,73,16,195,1,30,253,40,4,150,8,204,4,30,243,178,239,5,249, +178,254,1,8,140,246,34,223,163,226,229,233,87,251,248,253,244,235,191,249,2,0,130,5,137,2,12,3,218,16,80,19, +15,21,249,8,106,251,112,10,14,21,35,22,121,13,178,7,129,2,136,3,129,4,119,252,89,248,194,251,208,1,59,2, +160,8,87,4,172,242,156,228,249,239,95,252,156,249,10,247,196,253,123,249,199,250,19,249,80,3,204,6,52,253,209,0, +253,248,59,254,4,5,148,255,88,253,230,9,45,7,173,247,77,245,213,252,150,255,6,1,185,5,13,250,207,248,11,252, +229,254,117,251,213,253,205,4,5,6,161,253,68,249,70,253,148,0,78,4,114,7,210,5,94,3,241,9,15,10,202,0, +138,4,253,14,66,12,163,8,84,7,26,16,169,17,10,18,186,11,84,1,196,250,83,254,105,254,171,247,41,235,86,238, +59,0,100,3,219,1,149,251,177,254,164,5,242,6,102,0,97,6,103,16,189,7,175,20,209,23,64,26,102,10,151,255, +12,3,126,251,67,248,252,3,42,245,110,248,206,2,17,2,52,7,233,5,95,245,98,233,186,222,145,214,25,225,7,243, +126,252,120,11,178,24,165,25,191,15,137,13,207,17,129,16,47,254,191,243,122,238,31,237,44,247,54,18,147,26,36,13, +175,250,18,248,24,3,75,0,23,247,115,244,79,243,194,254,121,3,45,0,22,251,250,0,131,251,8,251,167,253,175,236, +15,236,33,233,161,228,175,236,237,251,226,10,186,10,120,23,26,25,115,12,91,9,40,8,66,23,240,23,185,255,169,246, +2,5,102,22,227,26,89,17,53,254,23,254,41,7,162,252,143,240,207,236,71,245,153,254,148,247,252,242,187,246,74,253, +21,247,162,237,78,229,24,223,6,222,93,237,167,245,156,252,87,247,162,249,102,12,244,20,9,17,99,10,125,3,245,245, +142,1,233,10,216,10,40,255,187,249,197,2,0,3,10,10,239,13,24,3,212,255,164,9,20,0,208,2,193,3,240,5, +70,2,36,1,129,252,92,0,216,3,245,13,108,18,9,19,78,245,26,244,194,243,7,242,229,239,88,2,137,8,147,20, +112,8,128,12,203,14,179,247,170,222,59,247,0,26,43,21,224,15,114,7,93,1,74,245,179,246,60,255,15,251,113,2, +204,255,248,0,189,19,139,9,67,252,159,252,28,235,157,236,242,249,136,0,34,19,112,9,244,253,172,251,155,242,182,227, +63,224,59,245,48,247,173,246,118,255,75,5,220,11,71,3,86,247,147,4,34,254,200,244,17,5,89,12,115,13,33,27, +92,18,128,4,111,255,117,253,26,249,16,10,55,12,102,13,239,1,152,242,225,237,188,10,181,7,50,7,243,5,206,3, +221,255,57,249,52,254,194,6,87,2,115,8,63,12,156,5,201,248,69,243,220,235,40,242,31,255,146,19,197,9,76,245, +97,238,11,245,19,251,119,8,249,8,189,1,26,4,83,253,187,250,55,244,188,243,236,4,226,16,51,253,54,246,201,19, +31,248,202,230,92,19,142,16,17,247,177,5,202,243,235,226,97,250,32,249,223,244,72,254,11,247,196,254,137,8,0,16, +209,6,214,8,145,241,46,246,126,2,150,240,179,0,80,15,237,6,162,9,39,2,152,11,100,24,232,251,109,240,65,255, +112,250,223,255,176,253,153,248,242,249,113,255,111,5,173,6,78,9,32,1,56,236,98,244,190,251,19,11,16,23,213,255, +93,241,198,246,84,7,225,14,239,8,57,251,16,237,8,241,218,250,222,15,2,19,148,4,4,240,77,235,246,245,65,12, +118,34,116,8,226,247,130,239,36,1,61,12,106,6,56,253,32,246,221,6,96,3,187,248,121,248,149,3,164,2,209,246, +57,231,50,232,94,243,5,2,238,15,214,8,119,4,129,14,183,11,25,238,95,239,195,252,59,248,27,4,90,4,38,13, +41,5,1,240,81,243,126,5,99,8,62,10,250,20,172,241,86,1,4,250,155,236,161,4,14,23,223,3,89,233,34,245, +112,3,16,8,188,4,237,16,233,9,126,248,141,5,212,17,203,251,87,251,122,245,186,248,177,254,99,14,154,11,75,247, +63,240,82,249,124,253,177,7,85,4,145,0,237,0,90,255,243,252,141,3,86,4,41,251,1,243,95,238,199,245,92,245, +134,4,86,3,3,254,215,4,90,252,215,0,167,9,35,2,199,253,20,4,57,7,213,255,191,252,47,243,118,240,154,5, +234,13,217,3,187,17,5,26,100,19,0,15,18,8,199,253,193,1,55,13,122,10,44,234,245,238,77,9,98,8,226,246, +244,237,162,243,255,1,241,19,102,13,189,1,57,242,15,247,238,6,187,10,192,250,73,253,41,6,215,6,229,253,156,0, +195,4,18,8,129,0,104,254,19,250,150,250,98,6,107,5,228,0,108,246,113,0,172,13,66,1,159,252,95,3,103,0, +40,2,188,0,147,251,151,241,111,246,128,4,50,7,9,12,113,11,135,2,195,255,171,3,198,4,231,251,241,244,220,8, +126,15,20,248,102,236,75,248,88,14,222,21,251,5,229,246,117,0,253,6,213,2,240,0,209,247,50,254,0,12,210,3, +231,249,94,2,251,0,12,253,84,18,176,14,25,248,74,240,198,249,217,2,185,5,173,0,216,2,126,0,247,241,105,8, +100,14,169,235,47,226,95,1,73,254,151,239,200,2,185,17,32,244,163,238,28,5,225,12,128,9,164,10,255,254,62,231, +19,224,3,3,117,248,14,243,62,255,159,5,55,1,202,5,159,5,246,236,12,244,0,19,44,9,210,250,1,6,192,6, +141,9,33,3,11,246,223,242,130,247,78,5,106,11,14,252,138,245,113,248,97,1,32,249,61,1,107,5,208,254,31,2, +130,251,161,244,249,253,250,2,226,10,153,253,249,247,228,249,43,251,86,2,190,255,217,250,134,252,24,249,252,255,69,1, +60,253,99,251,108,1,19,255,121,252,204,246,82,250,88,6,47,12,198,7,140,251,106,247,164,251,132,0,80,4,173,4, +189,12,242,10,87,2,104,251,198,250,102,1,104,5,161,253,250,253,135,0,140,7,177,10,120,251,150,245,80,249,5,2, +164,9,166,12,97,0,116,241,182,242,81,7,19,20,253,16,11,248,99,243,162,254,167,7,228,12,82,1,232,249,171,248, +79,253,43,11,154,3,217,244,180,237,35,247,57,11,0,26,151,10,245,237,235,233,98,1,199,16,222,20,64,10,110,244, +122,248,226,255,211,2,146,0,137,252,101,1,38,1,118,2,92,251,130,1,18,8,51,2,55,254,20,255,210,248,65,244, +95,247,55,8,193,16,54,5,211,245,60,254,47,5,177,4,10,1,48,253,37,253,228,255,118,7,27,2,181,244,186,253, +203,8,107,9,205,4,189,242,32,247,53,4,36,3,214,4,70,253,160,250,12,4,69,8,191,254,30,244,135,249,249,4, +127,0,17,255,80,253,253,4,236,251,169,247,131,6,218,7,95,2,125,2,42,253,76,0,224,3,28,11,72,3,219,242, +50,247,140,8,74,2,237,2,51,18,187,252,97,245,225,9,252,6,10,252,217,253,43,249,141,248,97,1,146,253,4,0, +124,1,75,0,6,2,24,3,180,3,93,2,95,8,111,2,239,5,144,254,201,247,240,2,63,4,231,4,205,10,90,4, +94,0,215,247,165,248,164,1,148,2,246,251,220,255,87,253,25,252,194,3,132,255,113,255,221,6,31,250,130,250,112,8, +236,10,82,25,127,24,211,12,167,5,214,252,129,251,192,240,240,232,113,233,83,245,71,253,99,0,65,249,194,242,12,243, +22,245,18,0,52,14,62,15,220,10,229,21,61,28,184,11,90,1,247,255,158,10,98,6,30,0,197,254,145,253,130,0, +226,252,139,247,51,248,202,251,131,245,27,239,35,250,28,254,130,252,173,250,52,243,102,249,88,243,4,245,109,254,141,4, +213,5,59,4,139,4,169,13,14,15,245,14,133,7,66,8,25,4,231,0,80,253,161,252,148,255,31,247,140,240,182,247, +86,246,128,249,144,250,181,245,177,247,38,255,95,1,57,248,51,248,49,254,193,3,58,250,63,247,164,253,165,1,66,1, +100,3,122,253,247,6,125,9,243,10,93,13,236,14,121,6,45,251,188,3,88,6,172,243,151,239,61,250,27,242,47,237, +128,237,133,238,138,246,23,248,217,254,179,2,195,12,206,4,191,6,60,13,97,12,28,10,118,10,241,11,192,14,85,8, +30,249,98,248,49,250,24,244,238,232,34,238,234,243,173,243,101,241,53,246,202,252,25,2,167,26,45,35,149,20,153,28, +29,33,134,3,197,230,85,236,20,236,102,229,26,234,207,247,217,252,58,247,156,1,45,16,80,13,172,17,13,22,44,19, +144,4,86,250,140,242,218,241,33,243,99,240,5,245,0,0,179,19,112,19,170,10,164,9,171,1,63,0,129,252,87,244, +129,3,145,253,127,235,222,244,178,12,7,9,74,4,78,15,84,3,171,239,70,239,85,245,35,246,183,253,21,8,164,7, +165,6,242,13,203,13,173,7,239,2,82,244,216,234,198,241,222,247,86,5,251,16,68,18,73,12,59,6,9,239,102,231, +33,237,59,243,252,255,178,10,137,20,77,17,72,5,43,0,133,248,129,252,42,1,66,252,70,252,226,1,99,4,116,10, +117,7,189,2,151,249,224,242,88,245,192,248,15,254,128,10,45,22,108,5,132,252,149,248,213,240,10,246,125,2,255,7, +158,255,122,239,37,239,141,237,8,237,163,9,72,22,190,13,217,1,69,244,112,251,53,10,217,23,152,21,77,11,171,255, +34,247,198,2,149,251,188,245,13,244,52,254,208,252,181,248,252,238,232,4,255,234,8,12,189,3,70,12,245,16,214,254, +178,18,195,8,212,10,204,17,146,6,49,248,236,4,55,4,253,244,124,241,58,248,130,243,213,241,146,7,25,6,170,252, +197,13,142,7,206,1,68,24,127,8,135,247,125,14,162,255,162,248,136,2,86,239,146,235,174,12,29,251,112,234,140,11, +221,0,103,245,228,1,77,5,135,252,237,14,73,21,96,8,209,12,58,254,101,7,76,232,24,4,106,7,87,239,51,16, +227,17,160,255,82,251,32,9,157,240,156,226,106,250,91,1,255,250,216,1,74,18,237,3,207,7,17,12,217,11,159,248, +89,241,238,13,120,3,183,247,34,16,216,2,11,238,219,4,125,21,95,3,26,241,130,249,188,243,171,237,224,246,194,249, +82,243,169,250,42,6,152,249,41,237,101,252,156,6,185,249,185,251,133,29,87,36,8,18,31,10,204,13,230,2,144,239, +98,232,249,244,225,1,24,247,58,241,48,248,59,255,204,3,244,0,169,0,78,252,65,252,49,254,107,3,129,9,228,2, +162,1,163,254,223,4,13,4,123,5,92,5,137,1,168,252,32,243,66,238,130,238,167,244,79,249,96,2,225,3,55,2, +5,0,8,10,172,0,64,5,228,5,22,10,192,8,241,250,60,246,87,253,202,253,26,250,47,242,240,248,245,252,145,1, +116,11,96,10,57,0,231,245,100,246,238,0,152,24,67,20,145,9,62,3,121,242,57,240,11,239,142,239,193,238,14,247, +160,250,100,8,239,10,23,254,110,9,42,16,59,15,168,4,149,254,0,1,180,245,224,250,223,2,174,11,162,4,62,245, +68,242,123,4,57,255,207,249,144,248,98,1,155,250,31,253,70,7,34,6,48,254,64,247,158,5,20,3,64,246,109,243, +14,253,70,8,164,255,199,247,99,10,106,28,69,17,93,10,212,251,37,249,1,6,108,252,193,243,10,240,178,237,113,244, +41,251,141,252,69,249,180,250,115,250,104,0,146,12,83,14,179,7,142,2,158,9,233,13,124,250,14,250,169,249,63,246, +33,245,11,4,128,13,110,251,41,240,154,241,152,247,19,252,148,6,58,7,246,250,9,250,130,253,197,5,79,6,141,251, +24,252,92,255,100,242,204,238,69,4,195,4,32,253,25,16,107,18,96,11,213,12,223,8,114,2,185,245,103,246,48,253, +218,241,54,254,232,244,11,239,142,2,232,249,253,255,75,13,127,10,104,21,189,25,158,12,140,13,93,17,226,7,231,4, +172,251,26,246,96,235,22,230,3,236,207,254,71,247,174,250,159,8,87,29,233,5,26,234,222,249,34,12,153,248,2,249, +126,253,254,250,41,17,54,35,21,20,80,15,119,10,47,14,210,14,52,1,101,1,210,250,75,239,93,255,237,7,229,240, +160,244,222,237,121,233,180,232,155,238,124,15,114,16,139,37,146,15,162,6,188,6,80,255,59,13,228,16,79,27,196,3, +166,253,57,245,4,254,95,251,7,239,122,233,105,239,229,255,5,11,85,9,146,14,126,5,130,12,13,17,147,250,238,255, +81,1,134,248,131,10,211,10,121,14,252,23,70,8,133,254,56,247,245,247,136,249,181,7,183,255,80,252,90,8,70,243, +3,232,154,239,160,245,152,5,138,0,100,2,121,255,14,249,125,253,110,255,193,11,78,26,197,14,97,12,99,0,81,253, +147,1,199,241,84,242,132,240,135,3,145,2,246,252,85,243,70,245,16,1,87,4,112,248,168,233,225,245,173,19,50,30, +106,21,98,5,193,248,21,4,124,16,195,12,48,11,205,255,13,254,131,245,186,237,95,234,25,249,189,6,15,14,132,18, +199,253,241,224,187,234,254,252,152,11,183,8,109,11,207,12,163,4,185,234,177,228,225,10,182,8,244,231,41,230,94,8, +246,17,30,8,9,253,158,253,235,8,16,12,191,253,62,9,214,20,192,14,237,253,227,239,237,216,227,230,244,18,189,28, +59,11,106,241,28,230,183,240,249,1,168,1,227,12,157,12,217,254,221,4,169,243,66,11,66,11,118,25,32,15,183,234, +224,219,117,236,6,22,90,25,14,2,144,235,180,223,79,237,174,252,134,19,177,251,68,237,56,228,190,250,185,22,251,17, +233,9,51,233,94,235,111,1,48,20,19,25,108,6,196,255,126,250,198,250,232,1,218,3,65,10,167,255,210,236,0,239, +19,3,204,5,178,249,218,247,219,245,52,248,1,246,106,246,42,1,139,8,46,6,209,3,181,0,218,245,196,239,82,245, +191,2,126,9,62,19,166,11,17,247,140,238,82,245,58,250,193,248,68,247,71,253,18,2,44,3,220,13,56,11,139,1, +234,247,185,0,37,6,119,253,121,250,109,246,244,244,58,248,1,6,213,2,69,247,228,250,51,4,250,3,167,3,198,255, +85,254,107,5,190,3,130,7,146,248,34,240,25,249,15,15,122,16,151,5,23,244,217,240,201,248,241,244,232,0,199,3, +177,8,197,17,217,3,16,250,39,250,197,253,18,255,186,254,116,4,136,12,142,18,68,0,141,245,89,246,188,244,202,252, +43,1,60,2,71,255,134,7,190,13,53,4,67,248,59,242,93,246,249,254,66,249,73,253,210,2,183,1,172,7,236,14, +195,17,175,12,53,254,152,4,106,13,248,13,200,14,64,254,100,247,46,255,247,6,10,8,183,251,71,254,209,255,25,254, +55,245,133,242,212,245,195,251,224,7,246,24,88,17,188,253,89,11,145,22,230,6,44,254,233,2,81,0,127,251,250,239, +169,248,240,254,20,10,104,6,145,251,149,245,158,254,0,12,139,4,143,6,157,252,235,6,26,16,202,2,185,244,14,4, +69,18,121,250,67,237,244,241,233,3,202,6,94,253,210,240,244,251,161,22,106,22,150,253,150,255,254,5,174,255,199,249, +198,4,80,2,17,3,22,243,110,250,193,3,236,15,140,0,93,245,184,252,208,6,170,253,216,247,224,248,126,248,211,246, +161,13,200,6,97,7,45,6,244,229,255,249,203,4,73,8,115,12,23,245,138,8,47,8,173,1,127,4,48,10,174,2, +102,248,252,239,9,2,65,18,148,9,195,239,168,245,209,253,26,246,151,246,40,6,136,254,29,253,212,1,134,5,222,244, +106,246,72,7,72,2,175,6,253,7,57,10,105,11,99,16,192,2,117,243,114,235,245,233,49,235,171,244,37,247,143,4, +140,9,199,3,114,251,13,252,161,6,134,3,40,7,239,12,196,11,18,3,255,249,202,246,114,246,168,240,164,2,49,18, +37,5,195,242,147,242,100,253,249,253,102,245,120,247,213,255,189,6,81,7,252,7,97,1,60,250,39,5,59,7,46,9, +2,6,202,10,0,8,51,5,115,252,104,244,67,244,97,247,167,245,222,252,163,0,118,253,144,255,7,251,231,246,162,247, +66,253,105,1,145,8,126,3,131,254,176,252,193,0,44,8,221,253,97,253,123,4,131,7,11,2,149,246,159,242,151,242, +238,243,162,253,77,247,198,246,67,3,86,6,205,2,124,255,38,249,158,250,225,6,154,16,139,8,46,2,199,241,85,238, +108,248,245,254,252,0,249,12,49,7,17,13,188,248,231,254,151,246,220,244,220,250,134,11,238,7,102,0,137,248,36,252, +78,244,93,241,71,250,113,1,145,2,105,7,3,14,176,15,50,6,199,251,96,248,238,0,85,5,253,254,204,248,180,255, +152,1,219,3,78,250,118,247,6,0,7,6,196,254,232,253,132,251,118,251,14,248,239,5,242,8,243,3,91,253,13,255, +242,1,141,7,255,1,249,1,137,8,42,8,90,252,13,255,161,5,182,4,30,254,79,253,21,244,27,246,163,252,136,1, +122,15,150,252,228,251,100,239,17,249,227,248,158,3,253,5,73,8,220,5,84,14,68,254,84,8,32,253,178,254,70,1, +139,253,108,4,176,5,140,254,254,8,98,5,139,248,146,244,253,4,31,24,135,20,69,251,83,230,240,245,74,3,205,253, +126,253,213,18,83,12,151,248,158,251,129,247,183,3,32,4,218,1,149,18,6,5,166,250,138,251,97,254,244,250,170,254, +230,254,61,3,151,252,28,254,185,3,187,7,86,251,228,247,1,1,78,1,191,252,198,254,103,252,161,246,94,5,73,13, +33,15,254,2,29,249,119,251,182,252,98,255,109,246,144,231,122,232,101,0,229,10,164,13,157,22,245,29,154,25,17,18, +248,250,126,231,95,247,12,9,108,251,205,241,8,6,213,13,44,12,220,253,212,245,196,3,49,254,164,248,39,250,45,5, +215,3,71,248,88,244,32,252,112,255,23,1,139,2,21,7,97,14,6,6,231,10,78,13,37,11,50,10,181,7,68,254, +125,237,234,225,6,240,9,1,172,8,232,13,16,9,52,252,20,1,228,1,240,14,53,14,205,250,46,254,209,15,164,10, +9,245,70,241,86,244,22,249,56,242,17,251,25,9,133,252,179,249,181,253,199,0,200,250,211,244,126,8,80,13,35,6, +185,246,46,255,179,252,29,248,247,252,117,3,109,4,96,1,242,251,55,248,147,255,210,7,12,252,191,241,58,254,48,1, +175,255,49,0,231,251,221,4,248,6,87,7,201,8,170,249,241,247,59,5,100,4,12,246,187,231,212,239,164,2,224,9, +119,4,90,28,51,36,136,239,232,221,215,253,229,7,245,1,101,1,117,246,175,250,255,22,134,12,98,3,86,243,202,246, +125,234,213,240,247,249,138,3,128,12,38,3,109,245,191,1,212,5,255,14,22,20,26,9,100,224,169,213,242,227,211,243, +162,253,58,15,122,31,35,38,35,24,69,13,169,8,16,245,46,244,243,243,190,241,58,243,99,254,177,247,200,229,58,234, +182,12,47,30,196,15,194,6,96,10,97,253,179,246,174,249,24,246,116,241,147,243,84,246,155,252,51,8,104,21,24,20, +243,251,200,238,25,252,135,4,133,9,19,251,226,252,25,5,146,18,228,8,3,254,72,255,149,244,15,243,197,250,242,8, +99,20,12,3,148,238,81,233,109,239,77,249,12,251,110,7,35,1,142,254,160,24,35,30,32,19,36,254,235,250,196,241, +31,237,134,235,81,252,106,248,96,243,118,236,189,252,207,9,38,9,187,7,171,7,109,4,89,4,206,252,161,255,222,1, +20,251,233,237,36,241,106,254,39,7,146,21,235,18,167,10,102,252,78,247,167,246,205,5,89,16,202,8,9,253,254,6, +93,252,38,231,203,231,24,246,177,255,101,5,58,6,29,254,250,253,126,255,237,254,178,11,170,12,107,15,47,21,63,17, +96,10,180,244,196,213,202,216,136,225,34,232,208,247,139,29,59,44,41,29,103,18,224,6,218,236,121,234,11,3,198,7, +217,22,1,36,112,9,19,5,131,10,24,238,105,239,114,255,55,235,146,235,67,239,2,233,89,252,192,11,129,21,209,21, +30,20,237,23,166,23,84,6,14,249,82,239,99,241,249,243,66,239,149,238,101,229,227,4,18,32,71,32,131,9,26,243, +110,246,92,5,39,29,23,22,83,247,78,227,185,231,117,1,35,10,127,2,244,246,142,3,191,10,43,18,97,255,148,244, +64,247,62,255,109,1,146,255,237,251,66,251,246,255,97,1,185,245,24,253,82,252,215,255,65,253,176,251,248,247,170,253, +37,10,164,17,244,6,82,7,117,4,107,250,238,237,227,231,177,232,201,5,199,10,59,12,6,15,180,5,217,242,255,247, +238,4,253,24,102,26,42,14,241,245,162,243,123,2,19,14,16,14,95,1,94,243,190,243,52,245,72,251,133,3,117,19, +12,26,193,30,216,19,168,2,131,239,212,238,118,235,171,233,156,247,112,248,201,254,252,5,142,4,72,10,16,5,138,3, +58,16,197,13,102,8,162,252,222,247,102,240,125,236,34,236,3,248,216,2,67,1,238,251,240,238,94,236,243,0,17,8, +37,10,197,8,247,0,241,248,44,13,115,9,232,246,143,0,151,252,255,244,206,246,199,1,226,2,160,251,136,239,29,238, +192,250,44,14,251,16,84,13,25,11,21,7,187,25,30,11,62,240,152,6,108,249,164,234,6,247,67,5,9,9,156,1, +214,255,2,4,142,243,201,242,157,3,7,14,207,13,225,18,64,12,162,13,49,2,32,255,148,247,102,254,194,10,139,23, +193,18,186,251,57,238,70,233,187,221,160,208,89,218,245,245,63,251,112,13,159,15,24,9,150,255,0,246,206,246,215,253, +133,5,143,7,166,6,131,6,121,237,143,233,154,236,161,234,177,228,170,253,172,0,244,0,64,14,99,24,206,19,161,20, +93,10,255,21,37,16,234,10,202,13,143,233,29,220,227,252,160,13,246,8,152,14,164,24,231,28,13,19,249,251,35,2, +157,21,82,243,209,226,169,7,69,247,105,226,55,243,17,4,193,7,175,9,186,35,148,21,186,8,229,10,32,238,76,238, +198,233,60,234,204,220,189,234,51,254,43,244,109,248,49,11,28,24,134,16,89,244,201,223,88,239,160,240,248,233,107,240, +27,248,118,229,156,235,214,22,253,19,224,237,162,246,194,13,182,1,20,254,176,10,127,14,156,18,32,10,39,242,190,2, +137,1,18,1,66,243,93,246,59,17,217,50,19,40,5,24,159,29,59,19,123,17,70,2,25,1,167,254,180,12,16,17, +37,9,138,7,188,20,139,10,111,2,166,243,176,248,33,242,163,239,22,239,84,232,206,236,67,0,170,13,152,246,164,235, +44,240,18,249,32,251,199,251,69,250,84,243,239,232,101,237,194,228,102,233,32,246,186,241,143,240,113,235,110,238,109,1, +3,9,218,15,215,15,174,14,211,6,136,5,203,15,174,7,110,11,24,23,82,28,247,18,69,8,32,0,197,250,210,254, +89,11,128,18,229,15,23,7,33,7,248,20,251,27,241,15,214,254,175,242,115,251,224,11,3,10,252,250,158,252,129,240, +128,231,152,253,67,0,178,1,252,5,223,9,25,3,247,250,32,4,217,6,201,1,14,247,186,248,227,250,221,251,61,19, +84,3,100,225,225,212,237,212,62,248,128,36,207,27,240,4,96,0,162,8,83,3,147,4,168,248,44,0,37,18,244,9, +158,247,252,238,227,249,122,250,179,243,243,238,106,245,164,248,161,247,208,252,106,7,91,7,1,241,9,238,102,247,95,18, +79,9,91,237,167,222,188,253,23,36,58,39,125,6,15,2,208,15,224,13,251,6,41,5,188,251,98,15,84,38,16,28, +138,21,8,34,50,29,4,2,131,246,9,1,212,253,241,247,252,243,106,236,23,232,158,224,215,230,95,237,18,239,245,225, +18,235,131,243,101,254,96,2,38,0,232,219,103,237,244,248,111,11,175,18,168,11,64,17,177,24,3,25,87,247,70,233, +204,229,178,251,80,252,9,247,249,9,120,20,30,253,142,231,35,238,95,253,154,1,188,20,222,4,44,253,253,255,52,8, +87,2,241,11,98,23,115,10,167,15,64,21,142,28,29,20,144,254,91,250,124,10,255,20,76,5,77,253,137,1,65,252, +90,225,40,220,194,239,58,4,236,17,124,6,227,254,71,240,230,240,196,236,103,4,9,25,130,14,131,254,76,249,197,245, +237,254,40,247,155,240,245,4,199,239,254,232,63,245,227,228,172,241,131,238,42,237,22,248,130,1,25,0,77,254,168,255, +24,17,184,10,105,249,42,254,121,9,159,5,160,12,232,16,45,18,70,8,57,2,196,9,199,13,7,4,232,252,89,5, +170,21,142,12,189,26,37,32,136,24,20,11,92,247,214,241,145,240,69,240,65,244,196,245,214,252,101,0,249,6,23,6, +104,26,123,20,132,3,114,251,59,243,255,247,15,252,206,237,233,230,134,251,80,245,16,249,227,245,79,11,116,3,185,4, +113,7,128,4,108,252,33,243,127,226,160,229,34,224,191,201,255,0,179,249,115,30,66,30,60,8,221,34,55,10,223,24, +35,6,57,245,81,248,99,246,8,2,179,254,112,234,14,231,123,221,221,243,205,3,145,11,224,13,59,30,245,37,2,21, +9,23,73,37,19,48,113,34,47,14,190,7,192,250,118,2,95,4,191,240,34,223,6,216,45,229,152,230,17,247,210,253, +254,236,55,221,109,243,186,25,100,29,50,6,171,236,247,1,248,253,47,19,178,35,194,244,233,237,29,233,38,237,214,9, +164,251,79,232,40,227,93,234,224,252,169,17,64,26,54,25,92,251,60,248,106,13,133,25,51,25,197,12,57,18,206,50, +127,25,161,251,61,237,77,254,238,9,196,251,90,250,176,240,166,233,105,241,100,1,111,19,227,0,196,234,138,245,241,6, +220,23,30,14,93,2,4,5,207,8,5,238,92,206,218,215,78,251,216,249,72,254,76,251,166,250,170,11,92,5,28,247, +149,239,248,245,199,1,192,12,167,14,124,4,53,18,36,20,160,11,218,245,200,240,67,245,194,0,173,0,245,0,135,13, +54,11,26,8,26,9,92,250,100,9,78,1,196,12,161,11,218,246,86,230,145,224,29,231,97,245,246,246,73,12,192,17, +195,8,220,1,164,15,20,23,176,255,255,6,83,12,246,10,133,254,18,241,225,244,0,246,88,225,29,11,109,248,157,238, +210,248,159,243,197,10,44,6,127,9,247,13,106,17,161,17,173,12,81,10,73,8,157,16,15,253,224,246,108,241,68,239, +123,0,152,33,115,16,78,243,44,227,240,225,34,238,168,253,80,251,179,3,85,7,218,249,176,238,207,249,33,248,15,244, +92,242,0,247,74,248,236,6,64,15,46,2,112,243,44,242,194,1,125,20,234,20,24,25,187,6,176,253,187,8,203,247, +139,228,84,239,48,13,50,16,185,9,15,21,78,6,232,1,199,4,50,7,249,5,115,14,107,5,132,5,13,15,36,26, +81,4,206,247,81,247,12,241,79,245,152,8,4,3,105,254,226,254,119,247,128,253,245,253,95,245,32,223,25,237,56,248, +214,253,97,243,222,234,83,232,37,240,35,16,90,36,23,15,128,5,28,208,45,189,160,6,136,28,122,253,80,31,90,48, +111,14,62,11,17,39,250,39,9,249,45,223,193,250,144,11,133,3,81,248,196,1,232,28,7,9,77,241,141,237,184,234, +2,197,71,216,32,250,55,12,240,19,127,253,77,9,129,5,246,219,41,233,53,9,14,33,129,36,4,24,18,18,114,249, +127,243,157,3,81,8,107,254,186,27,26,35,226,5,207,212,8,220,44,231,129,223,104,213,200,242,38,28,29,18,254,225, +144,225,196,249,86,14,103,14,120,8,109,39,154,46,88,8,133,13,235,6,9,22,179,26,56,11,107,239,34,212,173,228, +136,1,133,255,255,241,30,236,6,254,250,12,167,6,240,5,33,41,119,14,240,247,214,26,49,4,61,248,109,249,29,239, +76,13,95,254,81,230,171,251,54,7,116,252,79,244,24,244,229,1,106,11,62,251,244,247,35,7,177,3,237,253,80,248, +210,251,71,247,130,13,163,9,100,243,234,227,189,246,243,243,219,236,47,2,48,19,8,254,38,250,255,10,110,6,125,239, +117,244,225,10,32,10,233,14,191,46,20,2,149,244,86,9,190,1,23,20,194,40,71,14,156,17,14,6,199,228,25,1, +68,252,155,230,124,0,166,226,44,218,71,224,1,12,241,6,93,249,9,228,248,233,45,29,179,29,143,5,215,245,128,3, +192,250,192,32,146,5,126,247,246,9,85,252,89,235,113,20,69,31,228,36,242,30,67,239,250,226,72,230,95,241,82,8, +137,15,144,0,29,241,160,245,106,255,82,245,76,248,85,224,168,218,218,233,79,246,6,5,169,9,200,13,140,47,40,13, +103,252,82,14,109,3,94,245,196,244,164,237,152,22,74,12,107,235,191,3,139,38,31,18,183,5,122,243,45,207,255,220, +108,240,187,10,103,254,161,236,89,26,159,245,112,0,20,18,58,244,91,248,135,21,139,10,44,14,187,1,192,240,241,27, +107,247,214,4,43,252,247,1,48,23,40,27,178,2,255,16,80,26,131,255,126,248,163,3,96,224,167,7,103,216,207,216, +74,243,133,226,15,244,202,38,195,21,95,235,99,254,120,251,202,242,237,5,82,246,164,251,9,248,13,1,167,5,25,46, +27,44,250,246,235,241,105,243,65,240,193,4,110,35,135,36,111,244,72,0,233,8,22,250,189,9,212,235,65,230,100,243, +87,239,89,223,207,236,157,255,71,28,33,34,186,17,235,10,10,1,200,245,138,0,26,249,114,235,126,231,174,251,145,249, +71,242,30,7,180,16,52,11,37,18,199,28,201,254,14,219,79,226,96,240,98,238,163,239,2,11,180,36,22,28,84,12, +200,9,130,20,222,33,181,5,75,248,163,246,12,237,51,216,188,221,61,249,126,16,111,20,209,42,176,37,163,9,125,249, +179,0,223,245,230,243,249,250,150,227,48,237,99,255,14,14,18,10,235,12,137,9,197,24,63,24,92,8,8,254,209,247, +161,249,31,243,102,229,131,226,248,200,113,209,228,233,220,244,202,0,53,36,73,42,44,27,146,11,100,231,106,236,67,251, +187,6,181,11,1,5,168,244,173,236,14,247,92,2,134,3,58,7,13,17,132,46,122,19,140,7,153,3,165,1,48,17, +137,20,188,5,61,1,80,16,91,6,9,243,150,236,227,203,91,204,98,246,166,16,143,15,108,246,243,242,115,232,9,239, +119,246,69,8,15,33,221,26,232,249,31,7,174,33,176,5,15,9,210,245,176,249,98,8,127,246,187,5,32,24,230,28, +25,14,240,247,198,0,127,247,64,235,227,235,150,224,171,245,32,255,107,253,96,236,92,236,151,2,137,1,196,249,237,242, +231,6,200,19,81,35,97,60,208,14,131,249,109,15,210,252,178,250,252,239,167,232,214,236,103,238,107,243,93,249,226,233, +131,235,21,249,114,0,208,1,89,11,202,25,209,26,177,251,198,249,97,15,60,20,183,3,59,250,213,241,106,255,162,252, +43,234,189,235,23,235,249,1,161,0,34,251,152,10,178,34,82,20,133,16,233,252,251,244,99,2,77,14,73,9,109,2, +113,252,181,5,89,6,76,3,209,0,10,5,52,8,45,16,65,244,192,251,247,253,123,253,162,0,234,251,69,249,131,245, +227,242,113,225,129,212,225,213,101,223,48,251,119,8,2,18,38,1,149,250,195,26,103,62,43,49,156,12,56,255,108,3, +186,0,83,1,203,8,33,24,75,4,116,236,188,242,144,9,219,254,53,6,88,252,203,237,32,223,125,241,96,252,89,253, +214,240,0,239,108,250,80,250,88,243,187,11,37,11,64,249,86,249,116,249,117,17,1,21,49,2,204,251,243,20,195,31, +9,4,244,249,11,4,94,240,223,202,147,231,5,246,131,240,83,10,14,33,88,26,70,27,189,30,234,6,244,242,62,18, +61,16,132,1,82,0,53,243,210,233,36,23,137,24,214,243,100,232,58,226,218,244,107,238,251,5,69,4,214,254,105,250, +201,250,30,11,206,8,25,238,171,232,114,255,94,15,71,5,181,251,103,5,213,4,215,242,117,240,148,248,204,4,30,6, +76,15,216,25,230,247,96,251,246,22,164,26,227,246,237,214,50,234,249,245,169,243,72,232,168,235,217,254,203,11,78,20, +119,2,150,11,111,35,61,33,144,29,171,15,73,0,213,245,210,3,64,1,1,0,33,254,1,240,159,212,103,230,227,1, +170,19,182,31,41,29,36,10,227,7,56,12,37,4,44,253,216,247,104,235,188,253,25,229,197,221,160,218,173,245,29,240, +232,227,131,242,244,254,194,22,168,35,179,39,129,36,80,26,59,25,140,17,207,10,43,247,4,241,233,246,21,236,176,209, +36,211,190,226,80,245,189,6,80,30,60,29,80,21,120,3,232,30,42,31,206,20,91,0,255,229,55,220,17,237,160,252, +139,218,121,237,29,0,232,18,233,20,54,10,249,242,77,20,224,27,210,19,215,18,146,28,15,9,154,235,62,231,241,218, +219,244,208,214,169,236,107,11,102,15,144,38,149,13,108,239,14,248,251,244,133,11,104,18,60,239,97,8,103,5,183,251, +153,233,87,1,52,9,152,240,235,238,77,238,203,245,185,9,136,18,115,31,224,237,143,249,62,60,241,12,206,3,132,35, +15,42,163,203,128,192,10,251,211,29,27,254,48,238,120,242,181,216,118,231,66,37,48,51,80,246,15,211,45,221,0,255, +152,10,189,24,77,2,115,236,234,240,12,231,41,0,168,51,218,28,230,5,173,230,252,227,53,237,218,0,68,27,114,52, +50,54,209,22,121,240,1,235,129,228,182,230,163,242,174,251,205,3,76,12,67,25,224,34,108,27,94,252,189,247,1,229, +102,225,243,220,12,230,162,249,45,7,42,15,214,26,200,20,169,12,73,237,45,242,75,11,126,251,186,250,6,243,248,235, +95,236,114,8,43,22,66,27,62,2,225,245,56,242,88,235,227,2,122,247,71,13,126,0,77,248,54,14,102,17,193,29, +160,16,91,239,170,225,45,229,159,233,227,252,107,10,234,251,17,246,204,251,135,5,203,247,107,9,230,250,155,10,202,20, +61,8,183,16,52,22,216,1,114,17,220,247,235,247,49,235,36,3,108,25,183,248,4,238,178,235,89,232,110,245,114,41, +218,44,87,255,11,242,110,247,204,0,189,6,166,236,118,223,178,229,228,232,128,10,166,15,213,11,17,15,61,10,235,247, +180,235,222,14,148,23,159,24,111,20,172,5,113,253,147,252,5,6,1,243,50,219,90,233,48,249,127,8,30,7,18,242, +41,248,223,14,197,13,255,250,35,238,165,252,49,11,175,0,202,247,6,3,199,2,109,244,172,228,219,243,171,3,13,37, +186,10,27,14,177,253,7,14,160,33,61,12,205,1,51,246,125,245,75,253,166,209,24,220,111,245,136,0,134,240,57,29, +193,48,39,15,159,2,239,240,46,0,191,15,15,7,17,253,193,249,178,8,253,11,163,14,154,28,145,15,195,235,117,231, +125,240,80,228,253,215,120,228,241,9,71,31,1,13,190,11,99,23,232,251,208,3,22,249,82,238,121,251,186,239,133,250, +61,4,29,233,132,244,178,225,190,229,245,18,6,25,77,39,99,41,180,2,122,224,79,251,204,4,80,18,211,26,112,9, +215,237,14,221,77,238,233,12,162,2,71,13,246,25,208,10,149,0,178,28,176,18,102,20,139,1,222,223,244,9,158,34, +177,50,254,28,92,225,54,221,87,234,8,236,81,231,130,240,141,239,74,166,123,175,103,228,33,226,143,237,244,1,30,17, +73,26,162,110,253,99,208,43,32,4,116,196,171,208,99,223,4,36,117,61,39,3,163,246,181,240,19,9,225,28,48,21, +138,9,49,17,172,11,52,245,251,188,106,197,89,192,229,226,241,21,11,22,106,254,73,254,213,215,83,214,201,46,203,31, +128,26,101,22,187,18,201,238,73,210,186,0,77,11,12,7,205,38,5,53,125,219,24,197,201,0,235,26,134,16,181,232, +198,205,148,238,78,19,225,38,18,18,184,10,246,14,186,7,56,18,178,5,75,227,219,242,250,254,40,12,171,30,69,255, +70,251,77,29,104,20,180,221,202,2,234,22,135,8,207,10,108,8,171,253,162,243,43,244,219,215,146,244,60,41,224,8, +203,199,27,228,31,55,254,215,60,208,36,72,91,5,16,250,127,19,239,237,22,213,25,15,111,14,42,24,23,232,118,223, +54,232,124,197,232,1,75,56,40,223,26,214,33,233,239,42,39,21,21,255,200,42,26,255,203,18,223,243,143,237,138,33, +184,247,51,233,173,28,227,1,154,0,72,4,228,252,123,16,249,21,150,224,183,229,182,13,113,11,130,254,80,248,222,243, +47,22,77,24,33,12,28,34,27,26,152,243,34,19,182,27,246,24,51,29,180,249,122,238,213,228,174,15,210,23,178,208, +109,223,195,1,191,234,129,203,246,233,138,177,127,226,27,21,138,54,197,22,183,233,80,242,180,182,86,51,192,67,191,56, +103,227,208,233,80,243,140,6,167,19,248,37,82,244,100,230,83,229,249,195,223,253,38,20,242,40,42,16,234,215,62,7, +170,7,16,9,187,253,22,186,51,171,115,255,185,48,230,99,202,67,38,248,97,190,136,52,153,8,246,5,99,33,4,218, +171,29,125,243,107,206,84,20,79,20,208,254,120,25,202,211,21,28,13,255,223,204,29,232,100,9,207,45,7,238,105,10, +153,35,85,51,83,35,41,227,227,214,144,224,59,213,136,224,21,10,196,33,71,255,228,230,51,228,110,249,179,21,247,29, +2,40,158,241,67,248,11,10,203,238,134,228,125,234,138,225,1,13,186,29,238,7,130,7,79,11,228,15,229,1,232,39, +49,27,192,202,101,232,13,237,248,219,10,28,251,36,46,27,170,24,41,24,245,44,27,49,166,0,13,246,32,146,21,135, +178,2,168,126,110,70,203,181,88,183,81,38,94,250,244,191,174,255,241,22,247,28,17,195,96,246,38,42,18,25,160,242, +195,251,45,251,89,35,19,22,67,221,14,227,215,18,183,23,89,22,220,248,250,11,134,237,228,205,223,247,98,240,67,237, +73,223,51,19,134,7,183,190,69,195,181,9,219,27,234,10,70,219,159,250,39,28,76,21,244,26,144,54,22,26,12,40, +189,31,245,13,63,26,139,5,60,247,66,11,98,233,111,252,14,32,83,12,210,231,67,3,1,12,202,8,205,255,170,12, +55,237,86,233,180,233,169,237,173,19,119,253,187,222,139,227,40,234,94,246,49,6,230,251,205,247,121,15,173,253,126,216, +36,7,142,63,147,58,96,10,154,236,212,255,85,234,215,220,190,241,33,234,176,216,176,235,18,232,78,255,23,254,146,248, +127,249,205,7,209,49,153,44,33,33,36,58,234,44,78,31,60,12,206,10,40,246,53,211,212,220,156,207,254,202,173,185, +220,220,30,244,63,13,2,50,163,69,197,47,158,23,27,38,214,23,175,3,198,247,133,215,68,186,233,224,28,249,9,235, +167,223,163,242,75,11,31,14,147,32,142,42,239,37,55,42,225,18,95,18,215,234,17,210,42,209,121,229,254,229,6,247, +93,8,106,23,63,11,115,21,248,40,245,55,184,25,76,14,245,254,114,207,200,188,56,195,60,222,71,240,97,248,218,247, +154,17,67,21,174,29,203,31,173,15,144,18,113,216,99,148,178,235,172,28,61,217,194,19,203,39,212,19,242,62,96,17, +180,239,237,19,101,7,255,208,206,199,6,238,110,31,60,17,200,235,15,220,234,26,199,19,36,11,217,45,129,71,96,53, +54,4,105,189,175,211,170,7,103,17,176,231,4,200,237,232,63,230,223,241,72,226,219,254,113,52,73,48,233,7,115,251, +250,255,52,11,170,9,202,17,42,66,73,71,53,248,153,186,178,186,53,215,206,234,85,242,193,6,178,15,233,253,1,230, +245,25,93,33,36,19,173,249,133,231,100,0,93,220,210,209,83,6,78,42,252,23,2,33,212,33,183,240,89,226,68,11, +108,3,47,1,169,36,110,53,122,253,64,211,223,251,60,10,140,248,8,14,241,12,189,221,152,192,117,234,233,9,152,69, +24,55,39,232,114,212,124,237,219,9,24,7,223,252,211,253,171,0,10,213,109,234,115,18,69,22,7,215,162,212,38,1, +214,29,237,44,67,56,223,20,34,230,113,243,44,231,187,230,188,7,96,18,216,26,248,21,142,5,53,252,122,198,230,222, +112,10,57,28,75,0,116,242,231,242,213,217,54,244,54,16,107,11,151,7,205,253,108,2,120,250,187,241,230,235,240,9, +190,9,108,9,84,251,140,3,60,33,115,28,94,5,172,255,64,248,166,25,226,11,175,250,6,8,60,252,180,19,23,0, +175,223,54,239,204,0,109,1,155,5,4,254,94,252,84,238,153,212,235,239,233,6,227,250,124,230,197,238,250,15,209,12, +250,16,183,13,225,240,22,251,47,10,73,239,5,2,72,28,154,15,99,21,167,232,126,233,140,253,246,228,121,211,96,18, +243,51,177,8,103,223,113,218,14,6,165,32,180,23,183,34,203,22,197,239,206,223,159,220,90,250,248,4,75,251,74,33, +127,31,253,35,85,15,11,231,109,12,220,20,114,11,5,5,12,228,201,239,95,225,134,206,37,226,2,246,216,17,21,13, +48,252,32,3,225,2,70,10,200,23,132,26,158,30,99,23,136,0,216,239,119,229,180,233,22,243,240,244,79,254,221,12, +28,3,94,242,63,242,38,8,151,6,169,241,139,254,208,13,100,250,36,236,2,251,7,4,249,31,44,16,172,11,114,25, +115,21,86,241,241,243,197,255,68,252,36,247,28,233,130,239,118,0,57,255,149,2,229,240,40,0,3,27,165,58,219,39, +98,21,94,220,74,214,179,239,126,240,7,252,183,249,50,20,161,12,190,240,238,242,213,242,171,19,171,18,246,22,90,5, +134,248,124,237,165,236,206,250,64,252,77,244,68,241,89,247,160,255,220,11,199,4,5,20,74,4,16,236,131,246,50,246, +130,21,36,33,23,21,224,16,240,4,41,6,90,250,233,204,135,228,143,10,46,10,23,255,13,243,45,249,78,20,192,14, +240,16,139,235,160,233,101,254,100,19,236,31,101,5,221,212,177,241,126,33,16,23,198,22,120,242,171,222,96,254,32,8, +203,238,14,229,135,249,46,19,202,1,238,9,210,6,225,231,10,253,69,4,84,255,101,13,248,17,56,21,232,26,249,7, +178,232,27,2,15,28,46,18,175,10,127,234,24,218,88,227,71,227,103,232,41,2,98,27,22,36,47,33,146,5,136,1, +189,11,87,228,132,230,220,246,213,246,120,20,10,9,73,216,23,227,225,245,214,247,26,2,215,3,140,2,37,3,215,252, +30,4,126,30,170,32,217,15,57,252,91,226,202,227,56,239,86,243,243,12,20,249,141,6,213,31,141,33,187,31,96,254, +147,3,242,246,160,243,132,243,23,7,212,3,116,240,91,224,213,233,154,245,244,251,160,26,249,252,72,255,20,14,63,17, +94,20,179,16,92,248,75,46,102,8,225,251,168,244,0,230,215,249,7,5,88,246,177,248,225,240,75,242,84,237,151,246, +175,236,205,26,174,20,144,249,105,244,37,205,184,228,61,0,70,27,90,40,218,22,106,7,78,255,240,253,35,4,185,246, +65,250,82,252,231,8,223,3,26,9,219,255,87,246,240,236,181,12,128,26,6,16,168,7,66,255,230,253,8,5,30,247, +213,8,252,1,191,248,84,241,137,211,245,196,161,195,236,218,127,236,13,0,176,42,213,82,111,56,210,25,63,29,240,27, +215,8,238,12,238,34,230,1,169,209,201,193,138,210,35,217,237,231,123,12,183,255,177,243,46,31,90,249,101,225,159,7, +62,58,156,41,183,29,165,53,24,4,252,0,152,28,132,237,9,223,10,252,202,251,218,250,106,239,54,242,230,250,72,242, +145,250,53,20,255,24,149,2,169,248,254,16,43,254,71,218,127,225,225,7,134,251,250,7,59,33,199,25,180,249,50,218, +167,176,118,191,149,238,62,30,108,40,26,27,10,44,124,54,71,255,209,13,223,9,246,231,148,229,152,222,106,229,158,235, +76,250,110,9,251,250,218,31,186,55,200,46,105,245,85,231,243,211,2,209,181,254,62,48,50,73,188,37,199,244,43,213, +56,193,207,203,253,223,7,0,232,41,76,47,173,25,123,11,13,253,224,4,149,22,9,255,68,232,2,227,74,253,132,1, +139,248,1,12,57,32,164,12,122,254,105,254,201,240,138,221,72,230,140,246,110,11,175,36,136,47,97,33,220,9,83,255, +249,238,95,234,155,232,106,240,158,250,4,10,241,0,134,231,76,233,60,23,56,9,70,239,127,231,126,245,79,251,8,6, +165,11,28,254,253,245,98,250,209,10,165,9,212,242,28,231,231,5,252,38,8,31,113,26,47,250,251,235,88,241,143,247, +220,244,222,249,130,248,221,247,52,13,164,255,37,239,1,247,38,31,104,24,70,6,58,11,217,10,83,236,20,233,203,16, +198,2,150,231,221,250,241,0,136,244,138,251,172,3,76,0,42,25,110,24,89,247,194,250,117,0,89,232,40,243,140,4, +56,9,224,6,57,9,34,255,81,232,252,8,241,253,123,249,67,249,61,236,19,247,240,24,131,15,99,250,99,14,228,5, +114,249,93,0,130,5,182,243,63,254,18,11,6,19,109,9,73,220,198,222,22,11,79,22,44,39,79,24,191,235,32,213, +203,223,0,228,193,227,140,252,72,9,45,15,137,21,39,14,85,1,132,250,231,252,84,249,156,3,195,17,65,1,3,3, +216,253,226,16,67,14,58,7,75,5,90,247,179,255,228,251,179,1,28,9,125,10,182,255,194,243,149,255,240,253,111,248, +209,243,236,232,156,237,119,2,107,15,160,7,8,254,182,1,41,226,124,247,44,248,238,243,44,2,133,23,194,16,53,14, +179,10,236,8,127,9,229,7,37,18,17,249,91,254,29,240,18,240,72,245,233,247,241,225,125,245,153,238,118,243,213,21, +59,32,56,22,120,11,112,1,155,6,96,10,73,2,161,246,112,255,174,8,192,7,53,6,15,0,92,232,156,239,51,249, +156,5,229,20,176,0,59,5,75,11,18,8,58,1,171,236,154,244,241,223,170,227,137,5,125,17,158,33,58,25,59,4, +255,249,2,243,48,239,28,0,192,11,43,22,128,30,0,8,147,252,83,206,125,225,51,244,66,7,48,16,132,243,122,251, +248,245,134,251,213,14,77,15,198,23,74,233,115,232,145,243,142,251,219,5,236,43,202,47,159,24,92,249,168,233,229,251, +242,251,129,245,26,251,49,24,68,244,24,245,221,242,223,224,46,1,254,252,186,7,229,248,82,229,41,0,0,7,82,240, +23,232,36,2,189,31,8,40,39,24,255,17,31,13,145,252,237,248,110,240,74,243,232,2,66,18,18,6,119,252,52,220, +74,245,108,48,90,6,120,231,154,236,114,231,52,36,147,41,30,6,47,14,35,227,123,236,111,29,252,199,247,222,8,35, +71,253,135,210,79,248,100,229,226,231,195,39,177,41,153,31,52,22,158,254,231,246,227,228,117,229,123,1,243,231,16,230, +227,11,10,22,174,43,65,40,72,5,22,7,31,29,160,18,163,17,185,9,62,232,98,208,126,206,159,210,131,221,75,20, +13,28,118,24,113,30,217,9,207,31,180,37,54,242,189,31,94,16,208,211,13,52,52,4,139,153,200,214,111,231,119,224, +135,255,65,254,124,255,80,30,60,18,102,4,135,26,6,37,113,247,88,237,24,15,184,254,159,215,163,204,40,224,221,7, +200,5,164,250,182,36,134,4,94,27,252,250,200,3,237,17,67,4,29,2,121,253,68,3,64,14,127,16,85,235,255,226, +124,3,232,8,160,236,150,236,90,12,25,23,121,16,70,5,85,18,150,2,27,244,255,243,161,242,105,16,214,25,58,255, +50,253,184,7,40,236,64,251,189,241,38,233,178,243,147,249,143,251,220,250,210,10,121,5,203,248,237,5,250,242,30,250, +196,15,92,246,177,4,137,18,146,9,15,11,124,8,116,249,155,253,197,245,221,232,244,255,220,250,78,3,0,15,239,248, +8,31,37,12,52,249,252,7,36,254,207,245,216,4,140,254,19,251,103,248,207,249,221,255,218,4,182,0,20,241,222,249, +96,0,152,241,29,237,208,1,222,4,94,250,199,10,119,13,249,11,4,5,71,251,153,249,52,235,3,253,77,10,59,0, +186,6,34,6,97,245,231,1,54,8,148,250,1,14,151,254,108,234,119,234,109,241,63,0,99,10,4,17,140,11,146,3, +250,11,60,2,179,11,166,28,42,19,231,1,146,7,177,252,234,244,13,240,184,231,222,221,144,244,250,250,177,5,62,16, +73,1,187,5,50,7,147,246,120,237,117,242,252,255,174,16,91,23,15,18,140,10,115,247,132,246,235,249,80,4,122,251, +54,246,84,255,160,228,151,228,255,8,50,22,60,5,70,2,122,15,6,8,238,253,140,250,30,249,90,245,76,3,214,253, +171,1,116,40,161,20,149,17,83,3,164,241,198,250,122,4,204,240,148,246,103,243,170,246,41,245,97,1,135,15,59,12, +10,14,37,16,16,0,66,1,244,232,155,225,235,2,113,23,45,20,210,30,46,3,242,235,63,11,184,6,47,233,3,229, +27,245,139,246,15,250,185,3,146,11,127,255,50,12,154,3,80,1,76,243,74,249,174,255,193,254,128,30,217,5,199,215, +234,226,61,22,135,16,42,2,148,240,191,29,233,35,24,1,197,5,31,19,6,4,100,217,119,211,162,0,36,231,23,18, +45,28,164,6,190,251,120,6,211,255,124,245,255,243,94,25,9,21,57,11,158,253,188,244,141,231,255,232,81,224,87,16, +49,26,96,8,144,252,90,244,237,18,135,3,127,246,246,37,74,11,170,237,11,242,58,241,48,210,88,239,222,4,194,31, +101,32,77,22,44,19,135,16,191,6,86,209,54,232,62,3,194,249,126,224,38,2,31,251,241,229,49,6,223,36,250,1, +82,228,219,29,200,8,25,246,104,251,33,9,217,240,194,218,203,249,187,37,171,6,244,30,22,25,93,17,102,244,152,12, +175,6,85,247,84,244,227,227,227,231,11,235,21,245,120,12,167,2,207,245,182,250,89,236,12,4,8,20,16,12,183,7, +2,28,169,16,134,27,30,237,207,211,169,241,8,14,73,17,92,6,227,241,202,10,37,254,10,222,83,222,17,10,68,35, +173,8,196,6,122,5,57,247,62,244,252,242,155,0,183,10,29,15,134,11,9,255,131,0,18,1,239,254,195,248,77,4, +241,6,67,33,45,2,98,231,241,233,191,239,174,237,15,240,185,9,242,19,92,251,138,6,161,246,87,249,206,11,186,250, +98,16,59,28,242,244,139,238,133,246,234,0,136,9,219,15,53,239,40,252,171,24,78,236,253,212,101,2,241,13,100,247, +81,253,36,0,169,36,233,11,4,231,254,241,229,245,219,236,76,19,69,18,159,17,88,7,111,235,172,6,133,17,225,239, +214,240,212,22,222,14,172,251,239,251,52,248,3,253,121,16,206,255,78,246,207,1,176,232,66,237,240,247,238,19,170,24, +182,15,235,243,184,240,142,251,61,252,83,9,252,11,151,246,209,233,30,17,212,9,105,9,126,16,15,7,37,9,43,254, +162,4,44,244,15,224,231,237,149,250,79,253,153,254,85,22,155,23,203,14,144,249,150,230,158,214,36,239,49,5,127,2, +241,5,151,23,111,11,156,17,207,4,183,249,39,1,31,248,157,230,19,237,151,1,47,9,149,37,141,21,152,1,6,14, +209,8,51,231,117,218,206,249,207,14,132,23,157,11,24,11,209,247,15,251,207,253,102,16,158,18,27,13,235,240,143,245, +161,0,167,237,73,236,104,241,252,242,108,245,186,22,191,27,62,9,53,7,147,0,37,239,111,244,179,0,14,253,203,254, +76,255,99,3,226,4,207,250,122,246,52,6,249,20,246,24,233,16,131,246,64,240,249,236,181,243,193,253,2,5,150,7, +25,14,115,0,83,246,25,250,73,252,246,0,236,254,191,236,219,246,14,238,78,246,181,29,31,32,250,13,50,15,246,254, +16,4,196,250,2,237,87,4,180,245,47,234,7,247,28,247,156,255,232,4,184,249,16,10,181,20,18,22,154,7,62,252, +230,253,193,0,83,248,152,246,10,10,68,254,224,0,171,7,194,2,140,16,185,10,124,15,181,251,94,234,172,241,196,246, +20,243,18,1,0,0,94,250,17,248,161,243,102,248,22,10,154,7,12,251,93,8,197,242,136,232,221,243,74,9,234,14, +28,19,103,24,136,14,38,3,91,244,254,239,209,251,125,255,98,249,228,252,65,251,233,248,142,0,212,1,35,2,59,15, +200,14,165,11,133,11,139,7,15,246,206,232,39,232,198,238,206,243,56,15,175,12,174,31,156,30,43,0,186,247,228,239, +105,234,21,250,54,255,193,245,67,245,223,252,150,4,63,14,115,3,175,249,93,247,164,250,100,0,229,10,125,15,214,252, +115,253,45,255,25,4,179,0,194,246,32,4,167,9,98,9,138,1,22,2,22,251,234,243,41,248,0,250,64,238,194,239, +56,239,122,251,136,24,143,36,243,17,145,16,104,9,131,235,253,227,108,252,181,0,44,255,61,15,59,21,204,251,196,210, +130,213,80,229,103,18,16,44,187,41,5,32,80,247,7,235,39,22,140,33,216,248,130,189,137,197,59,247,117,22,201,38, +47,29,181,254,58,239,243,251,206,7,118,253,248,12,207,14,103,254,20,234,124,235,74,7,183,15,6,19,250,242,83,243, +212,224,97,235,100,250,8,250,55,255,252,2,191,21,234,33,223,29,250,13,49,252,29,252,120,250,27,254,89,1,86,8, +212,6,196,253,118,236,9,244,42,250,141,251,111,2,13,5,17,6,237,11,49,5,126,242,74,248,16,4,61,17,49,7, +24,247,252,249,43,250,212,251,14,2,199,249,176,248,91,1,104,254,178,248,83,249,239,249,75,17,163,26,244,247,88,246, +55,8,83,14,255,252,42,243,197,251,242,251,49,7,235,249,163,5,226,8,247,0,86,254,120,234,100,241,159,246,79,18, +69,26,149,14,134,10,11,11,246,0,19,234,34,229,247,230,175,242,72,8,98,36,85,25,255,16,59,1,69,235,176,215, +167,224,88,2,70,34,0,27,95,25,104,22,155,6,103,253,241,238,105,228,48,212,179,230,191,4,49,18,225,15,223,251, +254,238,109,252,241,23,152,15,32,253,1,244,184,251,68,255,74,15,227,14,128,19,70,21,194,0,48,236,140,238,81,10, +208,253,170,255,137,9,103,3,190,232,47,223,226,243,29,18,229,0,31,4,225,20,243,37,137,17,93,249,193,249,116,234, +98,230,182,238,227,244,40,253,135,9,214,247,225,247,119,244,115,244,155,244,200,2,118,11,159,25,104,33,168,8,215,9, +79,15,120,4,187,251,79,252,57,6,189,11,66,4,207,245,240,248,154,236,80,236,25,246,136,1,37,11,120,2,223,255, +239,255,120,249,196,244,88,253,47,4,90,9,168,253,218,248,207,252,108,254,108,253,253,20,27,23,153,8,157,4,128,3, +79,249,93,241,203,230,214,228,25,235,72,1,149,13,74,10,151,247,143,239,196,244,244,0,132,6,107,24,38,31,173,25, +176,13,22,4,0,4,212,0,130,245,241,250,218,252,199,244,129,245,246,251,107,246,148,234,243,239,125,255,141,4,158,3, +186,252,22,0,102,5,178,2,250,6,157,3,92,254,70,254,125,4,245,8,250,9,171,249,147,245,16,251,216,251,148,252, +214,14,71,12,103,3,34,2,139,244,56,240,175,246,161,247,78,2,87,4,100,252,157,247,238,249,136,247,129,249,178,251, +174,0,244,0,215,5,50,9,183,8,254,5,206,15,161,28,212,17,10,2,35,253,201,248,217,243,6,253,255,251,242,240, +4,245,112,252,29,6,166,4,200,247,12,241,21,247,75,253,66,8,146,13,115,7,197,249,147,243,181,243,32,252,244,6, +30,10,225,4,243,252,232,7,194,3,118,0,14,1,80,9,126,9,12,8,21,13,144,9,109,5,246,253,207,236,251,236, +94,242,248,0,135,243,81,238,114,252,47,2,8,253,76,12,246,10,212,2,102,0,217,254,148,247,142,251,133,8,103,12, +164,3,175,246,125,7,45,17,197,1,154,0,79,6,121,250,55,246,12,253,122,249,88,251,198,9,211,3,1,248,71,250, +192,3,217,255,144,252,3,1,241,251,120,6,6,5,196,10,137,3,29,247,123,249,181,235,143,245,45,4,26,6,228,2, +252,6,211,13,112,254,24,255,169,250,49,251,11,254,61,253,222,2,215,17,82,15,213,7,234,250,179,245,78,243,221,245, +28,243,188,254,54,4,118,252,121,255,120,8,244,10,55,17,118,10,22,252,160,242,149,250,69,2,116,255,29,243,135,240, +103,248,184,4,166,4,116,10,109,18,173,9,139,0,43,7,33,15,149,4,78,249,13,246,116,237,123,244,101,253,248,7, +118,11,127,6,193,253,218,251,129,246,209,243,100,245,251,248,52,250,140,2,227,8,29,14,241,9,209,255,229,2,183,7, +240,2,19,254,146,254,42,254,96,253,164,249,12,254,209,6,88,13,106,5,97,0,221,252,20,252,44,254,39,252,199,4, +194,2,235,251,169,246,173,255,89,254,138,250,138,9,89,12,2,11,104,251,187,248,169,254,235,1,106,251,37,4,216,6, +136,255,164,252,159,254,180,251,207,255,116,3,119,251,14,4,101,3,86,254,73,250,157,247,77,4,197,1,20,8,230,5, +196,248,71,0,60,2,166,2,226,250,42,254,10,8,178,11,60,13,229,255,159,236,113,241,220,249,231,253,77,254,242,255, +184,1,237,252,60,1,49,9,126,15,113,3,0,249,88,244,133,238,191,250,92,8,13,4,136,4,240,9,179,13,91,13, +165,3,234,253,244,246,92,247,87,246,122,246,174,1,179,252,13,244,211,243,40,3,142,19,153,22,161,7,231,245,30,239, +24,243,55,3,24,10,219,8,28,255,149,241,36,244,170,254,163,15,45,22,32,11,54,247,239,240,103,248,169,3,174,5, +47,250,142,243,65,255,168,11,63,13,177,253,60,246,221,247,209,0,251,0,83,252,132,253,43,2,49,251,204,251,163,255, +139,4,241,4,5,10,17,17,17,9,50,250,216,242,209,255,13,0,20,237,91,235,193,248,194,2,76,11,112,3,167,8, +66,11,65,11,230,11,243,5,107,245,55,241,56,236,53,250,135,246,166,242,151,3,153,0,80,254,51,5,47,10,149,11, +33,4,75,3,91,3,226,11,27,12,207,4,6,1,63,3,245,0,40,252,94,247,107,243,143,241,122,244,44,7,5,2, +195,242,63,241,231,255,34,253,147,5,174,16,218,12,121,5,151,3,109,4,193,4,131,1,91,2,51,255,75,249,149,254, +112,1,93,6,230,4,35,244,38,243,130,250,181,5,60,246,206,9,220,255,11,1,193,251,232,250,128,10,26,13,1,14, +170,13,253,255,29,11,183,250,206,243,183,237,132,240,251,237,161,250,17,248,182,254,236,3,146,17,194,21,243,11,72,9, +203,250,160,239,100,239,117,236,243,244,227,2,69,10,14,18,116,23,96,23,201,3,37,249,249,246,210,248,15,252,213,238, +130,242,207,247,209,3,143,13,88,13,25,6,154,254,192,249,126,251,18,248,244,250,65,2,56,252,220,250,152,0,172,8, +31,13,218,10,172,0,118,251,214,245,151,245,174,253,101,252,58,0,58,2,123,14,218,15,171,4,161,5,67,0,143,245, +142,250,91,1,92,247,78,240,86,243,53,0,133,2,10,254,224,251,107,11,156,13,122,18,62,10,215,1,152,251,189,231, +182,235,122,3,230,18,46,7,90,249,182,225,204,243,249,35,248,27,54,230,139,237,7,14,73,3,208,248,219,246,196,246, +83,5,211,23,21,17,135,245,113,2,61,253,131,0,92,0,103,254,108,238,71,10,207,13,232,4,156,6,74,2,126,18, +130,0,132,250,0,248,128,242,41,243,212,252,92,248,193,2,147,255,149,251,32,0,128,7,59,0,101,0,83,253,195,2, +10,0,7,5,142,4,132,9,83,5,27,9,66,254,102,247,80,0,175,245,207,249,215,249,219,245,137,5,192,5,45,6, +209,2,201,1,69,4,139,4,199,255,122,255,34,251,253,254,249,253,140,246,207,255,98,6,227,9,178,5,125,252,65,251, +232,0,58,240,8,11,187,253,104,6,27,9,241,4,12,251,136,248,189,243,175,240,206,251,5,4,190,7,163,251,246,254, +33,1,105,15,140,8,44,6,129,2,243,1,29,0,115,0,180,255,247,244,230,245,30,253,55,247,167,250,146,2,114,11, +76,8,187,5,180,255,76,244,34,252,26,1,177,2,49,3,36,5,138,5,171,251,221,1,48,253,246,252,68,252,99,246, +123,241,211,243,213,245,68,3,86,7,203,20,22,9,123,3,2,252,213,2,3,1,193,6,55,5,236,255,230,245,135,248, +93,250,49,248,139,247,209,249,120,254,231,3,93,7,55,14,224,5,253,4,173,8,60,249,185,245,30,251,141,241,199,253, +84,254,97,1,171,7,200,254,76,7,225,5,178,251,27,0,87,5,232,245,113,10,173,247,224,6,246,2,203,4,198,248, +65,11,100,0,156,248,103,251,106,238,86,255,148,255,224,3,0,254,2,5,68,2,186,255,223,254,118,243,121,249,161,1, +206,6,40,10,254,11,235,2,177,252,155,245,204,244,132,5,181,9,140,17,5,5,142,253,42,252,103,247,207,250,24,252, +99,3,192,4,45,5,115,1,213,0,237,249,66,251,108,246,151,249,230,252,119,253,51,3,121,3,95,3,223,254,154,254, +94,2,201,8,65,11,181,12,54,5,36,254,13,248,39,243,230,244,213,248,199,1,163,3,242,4,138,1,183,251,181,251, +174,0,131,2,83,1,218,8,221,6,226,4,230,3,29,0,61,251,39,248,70,246,54,253,249,2,103,0,73,249,48,3, +105,5,93,6,135,2,32,7,78,6,156,12,148,1,95,254,193,247,33,246,11,242,85,245,203,251,162,255,124,3,192,9, +71,1,227,255,185,5,72,10,123,255,103,251,132,250,55,6,255,0,205,251,144,253,93,255,169,5,12,9,5,0,22,250, +89,253,155,0,228,5,235,1,56,252,229,254,90,5,20,4,19,254,155,246,81,253,194,5,8,4,39,0,100,254,234,253, +62,255,2,3,228,254,209,248,194,245,230,252,175,10,10,15,142,16,252,12,238,1,137,247,182,243,238,251,39,248,179,248, +137,248,191,248,186,2,83,5,241,8,136,1,239,253,208,1,124,2,239,1,234,249,223,245,99,247,22,2,22,12,189,10, +137,3,192,9,162,7,158,246,79,249,195,2,63,7,92,3,249,253,154,243,117,233,173,240,233,252,200,11,187,23,116,20, +203,7,154,249,202,242,67,244,106,255,220,6,237,3,154,255,23,1,24,1,247,243,247,243,245,253,105,2,141,20,92,21, +150,13,193,252,171,245,249,237,2,241,234,5,167,2,208,7,109,2,218,252,118,252,171,248,86,2,115,5,22,254,23,4, +136,253,223,254,37,253,196,250,188,255,126,0,238,4,164,7,1,8,136,255,225,249,53,249,139,251,36,254,214,1,17,1, +144,252,144,252,149,251,69,5,6,250,64,251,169,247,14,5,199,9,23,251,46,2,29,4,109,2,105,250,156,249,31,253, +192,11,135,8,4,6,72,1,159,1,246,248,107,243,10,246,221,254,53,13,50,15,108,255,248,248,128,248,1,250,102,249, +170,253,63,8,63,4,26,5,223,255,236,250,202,255,135,2,7,251,164,254,85,253,3,3,168,2,51,3,178,255,172,0, +42,2,114,254,198,253,64,253,227,4,183,252,31,251,167,3,163,0,66,251,156,245,108,250,109,4,24,5,171,3,2,255, +76,254,148,252,222,1,204,3,142,2,183,5,199,255,25,252,159,251,17,252,103,252,172,1,240,8,158,7,139,255,78,253, +158,2,32,1,134,0,62,248,235,247,85,250,51,252,13,0,108,3,31,7,55,6,148,10,95,1,76,255,144,248,105,249, +216,246,56,252,151,4,78,7,35,7,31,255,41,253,154,238,101,255,103,1,63,255,138,10,148,6,143,253,98,2,235,9, +239,251,111,244,207,4,22,10,75,251,146,245,0,1,87,2,188,253,233,3,74,10,117,3,109,254,20,1,127,254,62,0, +40,251,141,252,129,4,219,0,142,3,159,9,185,4,76,253,17,254,193,254,46,248,98,247,121,254,214,4,75,255,181,251, +247,3,244,253,96,251,1,1,240,255,247,2,169,6,100,7,215,10,174,255,221,247,26,253,73,254,101,0,208,1,7,2, +234,255,248,0,241,3,103,2,228,254,218,248,249,250,90,251,73,1,215,2,35,254,205,1,107,0,221,254,79,3,1,6, +54,252,1,4,221,6,235,1,129,248,246,254,190,252,239,1,80,255,128,6,75,6,5,2,134,252,8,249,107,254,63,4, +116,5,174,4,104,0,48,253,86,254,16,0,17,254,167,2,7,1,69,251,53,250,255,0,23,255,207,1,149,2,141,254, +33,5,211,9,45,9,22,5,137,1,115,0,20,250,157,241,5,243,104,253,79,0,47,5,220,248,34,9,255,8,218,254, +52,254,173,1,69,4,0,6,152,5,159,255,93,250,241,246,24,250,151,254,56,250,37,253,170,2,239,3,31,5,25,5, +230,4,97,3,186,2,145,2,31,0,220,0,89,1,52,3,242,245,202,244,153,253,65,6,173,8,234,3,121,253,81,255, +250,251,254,249,245,251,205,254,201,253,185,252,169,253,251,252,5,6,201,10,61,8,204,1,40,253,93,249,220,250,111,252, +127,250,44,254,191,1,100,7,191,7,221,4,246,254,128,247,176,251,145,0,235,252,208,247,192,244,134,254,55,6,121,16, +166,13,24,6,195,252,207,246,215,249,52,3,73,254,23,1,164,2,8,4,174,254,244,241,86,251,202,250,178,3,30,4, +92,7,184,1,43,255,126,4,69,1,233,247,91,0,121,254,83,254,175,254,243,255,2,1,122,6,25,2,114,5,214,254, +129,0,29,248,171,248,49,252,137,3,105,255,33,1,167,0,135,2,66,255,176,4,174,254,112,252,239,249,110,1,122,4, +138,4,254,254,215,249,176,253,93,246,19,4,60,251,227,6,197,0,245,8,196,1,26,2,48,255,196,5,74,7,178,1, +105,247,65,246,43,250,114,0,52,253,49,4,222,0,31,0,13,255,53,253,132,253,28,1,227,4,17,2,32,0,114,253, +198,251,22,3,190,4,124,6,119,3,46,253,224,243,166,250,86,252,42,254,58,0,118,4,61,4,111,4,199,5,172,251, +218,250,0,1,7,1,197,248,167,247,226,255,65,2,168,1,27,3,3,5,189,252,178,253,115,254,38,252,206,2,76,255, +70,255,210,3,72,1,166,5,160,251,214,250,181,255,154,242,93,4,158,8,233,2,97,23,86,230,75,252,87,3,189,243, +135,32,85,241,125,2,93,248,161,2,12,255,24,2,217,255,160,252,241,6,25,6,172,6,76,248,210,241,215,252,28,6, +88,3,149,3,175,3,180,250,227,3,92,0,78,247,147,254,12,253,234,9,95,249,8,14,5,248,66,13,56,247,154,2, +51,248,47,1,12,254,43,250,133,3,31,255,188,2,168,3,202,249,16,0,122,1,230,0,62,1,70,3,82,2,71,253, +171,244,28,250,100,254,59,6,127,10,18,12,153,9,222,2,119,249,147,242,187,247,99,241,132,4,21,13,35,11,154,8, +32,1,17,6,158,251,74,248,158,248,93,253,237,2,75,9,49,8,240,5,153,1,50,253,54,245,203,249,207,244,201,0, +239,4,23,0,67,16,227,253,227,250,50,239,92,248,48,8,142,10,104,8,208,245,45,4,230,12,81,6,78,241,230,238, +229,3,57,4,198,10,131,1,233,10,218,5,122,236,249,248,69,239,249,3,146,255,61,2,182,6,222,10,191,8,137,11, +167,242,137,252,80,9,186,7,181,251,15,0,136,12,197,7,249,241,182,250,166,248,143,249,40,250,85,254,171,8,70,1, +54,254,234,253,24,254,192,250,202,249,55,255,221,4,24,12,110,11,117,3,138,250,136,243,141,4,41,3,148,5,219,253, +117,255,2,5,207,4,75,253,224,247,237,251,79,5,197,252,31,249,131,249,76,6,73,249,89,245,207,1,210,5,249,255, +98,254,134,251,57,4,142,13,166,13,111,9,165,252,180,250,209,248,104,249,113,1,87,3,25,250,76,0,133,2,52,0, +101,246,93,248,171,4,238,4,55,6,68,254,50,10,55,9,255,252,5,255,249,2,116,6,176,253,129,2,154,251,125,0, +206,248,84,240,34,243,28,255,130,252,166,8,106,22,118,17,30,1,39,11,146,7,56,254,152,238,186,240,76,233,90,252, +109,255,70,13,194,3,245,251,0,1,175,255,176,2,203,254,64,1,58,5,42,4,129,0,217,249,61,254,50,0,84,249, +201,242,58,12,213,0,146,251,181,249,28,6,246,255,177,16,60,14,45,255,146,244,45,248,193,254,32,11,253,251,44,251, +164,245,168,1,124,9,138,8,124,248,129,253,65,8,238,16,73,12,18,249,104,226,143,228,244,251,14,23,157,33,201,18, +125,247,197,228,96,236,244,252,48,12,167,15,241,251,180,249,201,248,81,254,188,4,11,3,137,248,83,248,174,3,162,16, +235,11,88,1,29,241,221,237,98,248,0,3,38,7,248,6,83,0,193,252,90,254,88,2,47,3,116,1,10,1,253,254, +22,0,49,254,165,255,208,3,47,5,209,255,62,250,139,252,161,244,195,252,150,1,187,12,3,16,50,9,208,255,139,246, +18,245,26,249,163,245,76,19,45,14,76,5,48,252,177,247,180,246,117,245,125,254,138,5,81,10,227,7,36,8,247,254, +206,250,11,247,42,246,227,252,233,3,97,2,75,2,169,3,179,2,44,0,14,254,151,250,20,252,169,255,38,5,108,6, +30,0,198,249,142,245,166,247,24,1,207,7,89,7,194,5,10,1,250,255,136,2,1,5,216,250,179,241,102,247,232,5, +16,8,43,8,172,3,69,252,145,255,178,1,21,2,92,1,107,2,157,254,229,252,130,251,64,255,118,3,84,2,116,4, +56,6,196,254,193,250,178,249,145,252,140,1,139,248,85,251,168,254,188,254,231,5,74,7,188,5,223,3,62,0,174,252, +18,1,130,252,124,251,240,249,59,253,14,2,114,5,61,13,205,6,13,0,188,252,116,253,45,249,63,250,13,3,179,3, +215,253,208,0,201,3,212,251,149,249,188,1,21,7,50,0,100,250,70,254,131,3,88,0,117,3,183,3,223,0,223,253, +183,255,202,5,218,0,178,2,66,1,140,249,211,243,31,248,179,9,49,9,138,1,205,250,7,241,92,247,89,3,229,5, +197,6,29,4,116,14,163,7,71,251,209,250,224,0,25,3,247,1,84,0,250,2,39,255,121,249,78,252,62,253,65,251, +90,254,110,5,61,3,110,253,154,253,149,0,144,2,27,1,90,3,84,254,103,251,157,250,189,252,64,5,47,7,34,255, +136,251,172,251,204,0,78,2,8,7,145,0,158,251,1,249,140,249,142,251,63,253,206,1,147,5,152,4,216,4,117,2, +120,0,207,253,20,254,38,253,166,251,110,3,96,5,146,5,158,5,253,2,94,253,239,243,32,243,187,253,126,7,194,12, +97,7,240,251,193,244,228,242,73,245,41,254,111,7,30,13,146,9,248,2,33,253,191,246,249,242,99,0,62,12,226,8, +208,1,1,254,184,246,50,246,174,0,175,9,44,2,101,1,110,248,129,246,157,254,172,5,199,6,115,6,106,255,176,0, +137,253,16,252,162,3,37,1,173,249,109,250,146,3,91,10,68,6,95,4,249,4,161,251,226,247,155,245,245,252,20,6, +153,1,175,9,102,7,107,1,170,253,207,251,255,251,175,0,147,1,32,255,67,252,98,3,50,4,100,254,124,251,151,250, +104,252,41,1,0,3,222,255,131,249,166,0,201,254,233,0,159,3,53,2,215,255,137,0,235,255,16,253,95,4,227,8, +142,2,29,254,31,249,177,249,36,248,5,0,140,2,155,9,139,4,14,2,210,251,92,252,234,252,128,253,7,246,2,243, +164,13,239,28,170,2,177,237,41,255,34,23,228,3,202,234,55,243,16,13,199,13,109,248,106,245,8,2,83,2,57,245, +176,242,241,1,94,7,97,3,132,254,223,2,136,2,206,246,175,245,52,254,4,3,15,7,207,4,229,9,131,6,183,247, +239,245,66,252,221,253,21,254,12,1,242,6,184,0,85,254,1,251,191,254,238,7,60,253,236,253,67,255,47,255,149,252, +151,251,80,5,196,17,180,14,125,0,142,252,84,249,53,243,32,244,144,253,155,9,185,5,178,13,208,0,202,252,143,2, +204,250,224,251,172,255,196,6,148,0,99,248,152,244,25,253,58,4,36,8,239,5,100,0,45,6,122,255,5,250,222,251, +58,253,105,1,88,3,248,0,162,2,105,4,243,1,96,255,26,0,57,0,234,2,45,252,81,250,245,3,113,7,95,11, +65,243,231,243,63,242,44,15,236,242,139,243,127,247,39,19,218,4,112,233,73,2,166,252,196,7,167,244,147,248,55,16, +131,6,68,251,127,250,210,13,86,6,211,252,227,252,183,3,47,7,142,249,120,243,160,249,87,252,218,255,241,253,152,8, +145,10,232,1,155,249,78,247,220,251,54,255,11,6,167,4,124,0,206,251,131,250,83,244,40,3,98,9,133,8,76,8, +72,2,166,253,81,248,229,251,134,249,170,253,29,254,96,3,167,9,238,12,134,9,221,255,119,251,121,246,161,245,18,0, +76,6,208,6,226,2,33,252,91,251,193,249,238,252,100,2,46,253,68,1,37,2,95,3,216,1,57,253,82,252,119,250, +209,249,94,248,92,251,62,2,127,8,184,0,234,249,136,3,160,255,19,9,184,254,54,7,33,4,242,250,211,0,60,4, +154,3,100,1,17,3,192,251,29,249,195,251,68,1,4,8,106,8,67,1,199,1,202,1,40,254,14,251,199,254,214,0, +13,0,59,2,170,2,237,255,3,0,42,0,244,254,78,0,67,4,220,255,240,252,113,253,36,1,113,252,107,1,166,5, +111,1,91,255,90,1,91,253,13,254,35,1,88,255,144,252,111,253,229,0,7,1,125,4,19,6,71,3,168,0,190,254, +75,253,3,255,73,1,212,3,20,4,16,1,167,253,190,254,129,253,91,253,163,2,45,2,187,4,162,2,81,0,245,254, +104,251,205,253,223,254,108,2,227,2,216,251,194,252,159,255,164,2,75,3,44,1,16,0,234,2,129,2,108,255,7,251, +15,253,85,4,209,2,233,1,130,251,134,251,210,251,43,255,126,2,127,5,15,5,99,254,3,253,161,255,38,255,141,254, +226,4,203,1,130,252,175,247,92,253,105,4,107,3,145,0,21,0,142,1,250,1,209,1,223,5,216,2,202,250,63,250, +157,253,11,1,88,255,171,0,201,253,128,253,163,255,213,254,244,0,43,3,131,5,156,253,115,251,0,251,139,254,173,3, +56,3,254,254,129,0,0,252,86,251,156,253,211,250,255,252,164,1,159,4,8,5,253,0,163,0,145,1,242,0,101,1, +219,1,148,0,123,254,247,250,62,2,118,3,114,254,182,254,64,249,139,251,20,0,236,3,244,4,50,4,99,0,17,255, +255,1,167,1,115,254,198,0,121,0,24,0,3,251,44,253,187,252,111,0,198,252,173,0,57,253,105,254,225,255,53,4, +29,8,240,2,71,1,45,255,223,1,37,6,146,0,185,251,222,251,187,252,113,250,188,249,145,254,217,6,114,6,39,3, +83,1,117,2,237,1,3,252,59,252,240,252,137,0,55,1,230,248,4,0,137,7,251,8,130,2,150,9,195,251,104,4, +160,251,75,246,21,3,194,0,243,254,155,252,163,1,58,0,59,3,91,0,252,3,29,255,94,0,16,253,157,253,25,254, +176,247,174,248,229,255,144,255,68,4,129,4,183,5,89,2,167,6,13,3,129,255,114,252,34,252,192,4,139,254,253,245, +151,6,155,4,36,253,31,2,106,1,62,251,137,250,175,255,235,253,232,245,37,250,60,2,126,4,239,3,206,4,75,0, +162,0,158,7,54,5,117,253,165,4,181,5,57,247,1,245,67,246,206,248,123,253,172,7,168,6,203,1,202,2,179,5, +168,9,67,7,0,246,114,235,163,248,164,254,210,252,174,254,8,7,203,5,65,4,125,6,188,2,11,255,205,4,114,4, +91,250,59,246,89,245,109,251,97,2,148,6,95,11,149,6,1,2,47,255,10,250,227,252,136,245,87,248,151,2,61,6, +46,5,34,4,246,255,195,251,62,253,223,254,144,3,169,4,86,254,6,254,71,3,139,253,136,252,100,250,11,248,180,252, +227,6,70,11,56,12,242,6,114,253,198,252,235,250,115,250,242,250,16,251,134,1,198,1,68,4,127,0,89,254,22,1, +95,7,180,8,207,0,250,250,4,249,50,251,188,249,29,1,36,5,225,6,237,5,232,2,254,250,183,251,24,254,17,0, +113,254,237,0,12,0,177,253,192,2,4,7,213,7,220,5,151,3,44,1,64,251,126,249,110,249,235,248,204,247,250,251, +102,4,229,8,67,8,4,5,65,2,7,2,102,2,67,253,32,253,226,254,59,1,80,2,255,0,201,0,191,253,103,252, +45,253,28,253,43,1,92,4,192,6,65,5,32,2,157,1,26,252,27,250,26,248,125,248,140,254,129,6,176,7,91,8, +92,5,38,0,122,249,57,252,62,253,213,249,203,251,47,0,194,2,132,2,226,5,204,0,219,254,31,253,181,252,189,253, +230,255,163,0,192,2,152,2,97,1,135,0,194,2,246,254,26,254,177,255,232,253,165,254,116,2,147,3,0,4,138,253, +172,252,118,250,152,252,34,255,58,1,75,1,168,5,87,7,202,4,66,252,112,250,16,251,29,255,89,1,237,1,239,2, +247,255,81,1,15,255,226,255,189,255,132,2,228,255,202,255,227,254,142,255,182,254,181,253,14,0,212,255,207,0,144,3, +55,2,235,1,42,254,225,253,137,1,62,255,190,253,195,252,215,254,230,0,173,1,53,3,109,4,242,0,250,253,108,251, +39,252,18,252,235,254,213,2,242,1,174,2,242,2,15,3,28,0,11,253,157,254,11,0,66,0,131,252,65,0,43,0, +101,251,69,254,67,0,238,1,172,3,208,1,220,0,126,255,65,0,161,253,181,254,34,254,239,255,41,0,54,255,129,0, +6,2,245,1,231,1,144,4,97,2,132,0,243,252,64,253,244,253,221,253,112,254,46,253,63,0,8,2,101,1,21,3, +125,2,110,255,42,0,247,3,212,0,179,254,0,253,126,253,201,253,147,255,63,1,46,4,70,3,241,0,83,254,76,253, +186,252,187,253,84,255,230,254,63,251,193,254,184,2,10,6,32,2,172,1,127,2,48,0,230,0,38,253,158,253,102,255, +153,1,69,1,44,1,48,0,188,252,119,255,131,254,113,0,108,0,193,0,59,0,102,254,203,254,198,255,107,0,197,0, +244,1,244,253,107,254,56,0,112,2,241,6,127,254,61,4,14,253,185,4,177,253,233,252,36,255,180,253,23,253,166,0, +217,255,251,253,68,248,117,247,174,3,176,4,103,1,185,4,232,3,64,3,182,6,222,6,117,3,105,253,59,252,173,251, +72,252,210,250,63,251,56,252,248,255,192,1,141,3,47,3,104,4,171,3,126,3,13,2,92,1,252,252,73,252,182,252, +207,254,216,1,155,0,102,1,202,0,243,252,95,0,47,3,53,2,118,2,74,1,17,254,86,1,88,253,229,0,233,253, +68,4,174,0,140,0,98,0,167,3,148,254,166,255,183,252,65,2,171,1,219,1,234,255,244,1,247,254,90,253,113,0, +211,1,43,2,35,2,207,2,121,1,51,1,241,255,210,255,158,2,14,1,98,0,115,1,82,2,25,254,214,254,59,253, +186,255,233,255,153,0,72,2,136,3,165,3,170,4,44,3,194,0,4,0,41,251,109,252,170,254,165,254,120,0,173,1, +230,255,196,5,3,4,32,254,76,2,3,252,45,1,121,3,145,255,56,2,226,252,62,255,48,0,154,1,147,1,229,2, +85,254,243,0,149,2,205,0,45,2,14,255,81,254,152,1,222,252,4,247,90,253,153,249,228,9,84,254,112,10,156,2, +253,1,80,4,6,251,184,251,216,255,88,1,28,2,202,0,164,5,37,248,132,252,207,253,16,0,248,4,0,1,205,3, +141,0,74,253,118,0,173,1,25,254,139,254,204,251,241,255,198,250,123,0,188,1,91,252,232,4,75,1,32,1,82,251, +92,251,96,2,143,2,19,5,222,255,87,255,84,254,38,252,235,253,240,255,42,4,14,3,177,247,2,251,78,6,132,1, +15,250,61,2,220,253,43,253,138,7,254,246,173,249,19,5,105,253,135,1,122,255,15,6,68,5,135,252,176,252,81,254, +19,3,41,253,144,252,244,0,179,255,14,255,36,252,50,252,72,3,199,4,43,3,254,0,158,255,16,255,101,253,99,0, +244,0,83,255,136,253,218,253,196,0,187,0,108,0,13,255,54,253,188,252,114,0,58,1,212,3,198,1,61,1,39,255, +88,253,238,254,56,0,197,255,52,254,25,2,245,1,231,255,199,254,244,255,254,0,10,254,163,253,80,252,173,255,238,255, +230,254,245,252,107,252,118,251,87,0,99,3,247,2,37,4,18,0,229,0,168,1,153,255,102,2,30,5,61,2,43,252, +48,253,208,253,134,252,112,254,32,1,62,3,1,0,204,251,68,249,244,252,213,4,61,5,222,0,242,255,154,251,60,249, +172,249,208,1,28,16,62,5,149,250,69,252,236,0,68,253,114,1,249,2,88,2,247,253,28,248,119,251,19,0,135,6, +198,3,70,1,148,254,48,250,24,253,120,0,126,5,225,4,169,2,30,252,223,250,228,255,176,0,245,255,128,5,96,2, +176,251,165,251,43,251,4,1,200,2,112,6,78,4,93,0,194,255,44,253,151,252,182,253,154,0,137,1,116,253,43,254, +2,0,183,253,159,2,151,5,47,3,3,255,38,1,109,2,229,2,168,0,79,255,1,254,64,254,66,253,57,254,191,3, +197,3,141,2,173,255,74,254,140,252,191,252,195,255,122,1,105,1,144,2,101,2,108,2,38,1,169,253,66,251,59,252, +247,253,132,255,236,1,43,2,41,3,100,4,157,1,106,0,253,252,211,254,235,255,222,1,32,0,7,2,80,3,111,0, +186,254,195,0,92,2,199,1,53,2,132,0,33,254,210,252,12,253,67,253,111,255,158,2,150,6,223,3,32,0,190,249, +36,249,8,253,3,5,88,7,158,5,189,0,175,254,180,249,148,249,66,1,47,4,243,2,97,0,103,252,165,249,140,253, +0,255,151,2,116,4,132,3,83,1,96,253,5,254,134,253,199,255,70,1,89,1,232,1,179,0,115,0,204,0,72,1, +155,255,99,254,215,253,13,255,134,253,176,252,189,0,30,2,22,0,114,0,142,255,162,255,215,2,100,1,231,1,238,255, +22,254,112,253,195,253,142,255,40,1,216,2,120,0,84,255,190,254,255,254,86,1,185,2,230,2,176,2,106,1,173,250, +45,251,155,253,5,1,222,2,187,255,157,0,252,1,192,1,236,1,121,255,48,0,247,255,118,254,112,254,99,255,228,255, +78,0,255,250,59,0,206,254,185,0,200,254,195,0,227,1,197,2,26,253,35,253,2,0,31,1,89,4,134,1,193,255, +230,254,10,254,85,0,139,0,101,255,30,3,4,4,3,2,211,255,69,254,140,254,210,254,158,255,101,0,169,1,13,1, +21,253,150,252,200,0,64,255,74,3,240,1,35,254,69,255,222,0,113,254,251,255,91,1,16,2,77,254,248,0,45,0, +106,255,26,0,105,255,211,253,250,254,87,5,147,3,194,255,112,0,134,255,171,0,59,4,64,254,198,244,178,254,168,7, +60,2,41,254,161,251,7,0,3,6,86,4,162,251,129,247,250,254,45,6,178,9,145,0,155,246,184,246,83,255,59,6, +151,3,133,253,216,251,200,250,134,2,9,8,102,253,79,1,63,254,7,6,10,1,151,247,94,249,73,253,142,7,148,6, +83,0,246,255,167,252,138,0,195,3,207,1,232,254,7,0,177,252,140,0,101,255,91,255,174,1,27,253,162,254,145,2, +227,2,247,1,24,254,171,253,21,254,73,254,70,3,192,4,236,0,62,253,61,251,186,253,9,2,51,3,77,253,248,254, +209,0,215,4,232,4,207,2,137,251,74,255,133,2,211,1,100,253,141,252,238,255,212,1,191,6,32,255,0,249,149,252, +83,1,141,2,23,2,100,0,61,253,122,0,206,2,224,2,208,0,161,0,19,3,106,255,122,254,40,254,114,255,28,1, +83,0,197,255,120,0,87,0,165,255,243,254,171,253,166,1,230,255,28,1,189,1,201,0,13,2,216,1,30,255,54,255, +3,251,81,247,66,249,228,2,32,12,96,11,163,2,52,243,116,246,152,253,201,6,214,8,87,5,252,253,224,247,112,249, +64,252,217,2,65,6,214,5,123,1,56,251,26,250,176,251,27,2,200,4,32,3,152,1,105,254,208,255,72,253,241,0, +242,254,150,3,61,4,135,2,32,254,170,253,47,255,75,0,19,1,66,2,60,1,248,0,251,1,39,254,157,253,136,254, +30,255,121,3,65,2,207,1,116,254,69,255,200,253,113,1,62,0,192,252,199,252,92,0,46,4,69,0,185,253,190,253, +189,1,55,2,29,254,239,255,83,253,88,1,14,1,107,254,99,0,145,255,139,0,6,1,206,252,3,0,213,0,166,2, +42,253,28,1,93,253,234,255,253,252,201,0,27,1,235,3,68,2,249,251,204,254,70,2,108,2,121,253,169,1,150,0, +120,254,119,254,151,255,133,2,30,254,165,255,116,1,240,1,255,255,228,252,45,254,170,0,193,1,122,255,255,255,100,0, +203,255,13,0,82,0,220,255,48,2,148,1,75,0,213,255,126,0,253,252,80,254,246,255,66,0,239,255,189,253,159,255, +119,0,114,2,156,255,65,255,113,255,64,0,127,253,22,254,172,255,105,1,1,2,152,1,12,255,45,254,190,253,42,1, +199,1,23,2,228,0,227,255,164,254,56,255,176,252,8,255,146,2,81,4,45,2,180,1,149,253,24,251,199,255,162,1, +230,4,191,2,249,1,98,253,43,255,118,252,45,255,42,2,213,3,103,4,206,254,160,253,89,253,168,254,105,2,137,3, +111,0,10,253,203,254,250,0,143,255,160,0,218,1,93,0,95,1,90,2,114,2,167,255,131,253,13,254,41,255,245,0, +43,2,60,2,147,254,247,253,203,0,38,0,186,0,105,1,73,0,234,0,114,2,248,1,182,253,35,252,123,254,48,2, +123,1,252,1,247,254,196,0,157,0,78,1,109,1,214,1,192,0,189,0,246,254,17,255,197,254,79,2,59,3,83,1, +30,0,184,0,45,1,65,255,67,254,209,255,226,8,171,240,80,1,23,252,250,255,122,11,105,3,170,2,213,3,233,4, +10,252,229,251,186,253,28,2,12,5,4,254,64,255,126,252,49,249,223,254,68,6,54,5,159,255,222,252,207,250,119,254, +101,2,62,2,68,3,98,255,248,254,190,255,148,1,164,2,207,255,225,252,239,251,8,254,229,254,208,2,11,3,218,0, +43,255,55,254,139,255,85,0,48,1,29,255,194,255,224,254,236,253,210,254,153,1,227,2,253,0,192,252,144,254,10,255, +2,2,71,3,33,2,33,3,153,251,219,251,61,0,252,0,210,0,198,2,39,0,54,253,125,252,202,254,247,2,107,2, +240,255,132,254,154,254,137,255,195,0,100,1,64,1,200,254,103,253,243,253,76,255,24,2,114,3,212,0,120,254,71,253, +165,253,252,255,69,2,107,1,19,0,224,253,95,255,25,0,245,254,229,0,128,2,20,2,237,254,220,252,85,254,99,0, +223,254,43,1,91,254,45,1,223,0,90,3,83,0,158,252,120,252,24,254,177,255,52,0,13,1,89,255,101,0,179,0, +155,0,64,3,32,2,209,253,25,250,239,249,105,255,241,4,153,7,56,4,23,0,188,251,221,249,218,248,87,254,58,2, +129,6,113,3,250,255,216,253,154,253,208,0,16,1,100,0,58,0,152,252,199,2,146,3,77,4,164,253,139,250,42,249, +17,0,213,5,136,5,60,4,238,254,183,249,76,248,156,253,6,4,188,6,11,5,17,2,172,251,11,249,88,250,103,255, +181,6,39,9,239,5,76,253,43,250,195,248,185,251,90,2,42,6,3,5,143,4,169,255,208,249,229,248,8,252,175,2, +214,4,180,4,152,0,15,255,186,254,169,0,185,2,102,0,98,254,168,255,127,255,187,253,8,3,105,3,7,2,237,0, +91,251,167,253,225,255,159,6,85,3,118,0,101,253,160,252,191,253,24,0,223,0,128,2,191,2,93,3,138,0,118,254, +165,252,168,254,119,1,137,2,23,1,213,1,135,0,244,252,246,251,227,253,155,4,197,3,248,1,136,253,190,253,49,252, +74,255,44,0,187,2,192,3,240,1,171,254,10,254,27,0,27,0,221,255,178,0,30,255,5,0,64,0,12,0,78,2, +236,2,125,252,194,251,217,253,17,3,114,2,162,255,193,251,132,1,154,3,127,3,38,253,222,251,63,254,2,3,87,7, +50,2,47,255,155,253,198,0,108,2,120,5,28,5,147,5,123,5,77,1,72,251,221,244,216,241,213,244,98,250,202,255, +74,2,68,2,244,0,243,255,68,1,175,0,56,252,127,253,207,0,41,2,23,0,160,254,27,2,49,254,195,244,218,250, +61,254,202,4,11,255,168,254,228,250,11,255,68,0,110,4,201,5,216,14,211,9,250,252,182,244,116,249,147,12,7,20, +6,6,165,241,237,238,110,1,122,10,43,4,170,247,152,247,18,6,155,9,2,4,66,250,164,252,236,6,239,4,206,250, +128,249,40,3,203,3,49,255,119,251,163,4,62,8,202,253,6,250,134,1,159,2,241,251,136,249,98,253,24,4,134,2, +201,250,209,247,108,1,204,7,192,2,82,1,158,1,97,1,135,255,29,254,30,253,21,1,124,1,141,0,143,255,163,2, +55,1,116,253,217,250,17,3,109,255,9,7,93,0,254,2,236,253,58,255,121,0,56,3,253,255,166,250,230,251,220,0, +98,1,79,2,92,253,30,1,40,5,92,7,152,3,85,252,219,251,200,1,214,2,241,253,154,251,10,250,140,254,5,4, +44,3,223,255,113,255,122,0,184,4,122,3,106,1,4,0,8,255,234,255,111,0,207,252,37,252,123,255,65,2,138,0, +129,255,34,254,95,2,152,1,70,2,217,1,108,254,133,253,200,255,220,0,111,252,53,255,101,2,252,6,152,2,219,255, +146,252,24,253,254,0,212,2,27,2,126,254,145,251,180,252,206,254,158,4,207,2,207,0,205,253,117,254,115,0,90,2, +191,1,202,254,14,1,67,3,243,1,13,0,130,250,5,253,208,254,112,2,109,2,180,253,255,252,216,1,129,4,10,2, +208,254,157,251,225,254,185,3,240,4,198,2,220,254,194,1,88,3,179,1,57,0,208,0,182,253,73,250,112,254,172,253, +225,1,216,4,222,4,49,2,232,0,241,254,57,0,188,252,249,252,6,253,36,0,103,0,252,2,140,4,13,3,175,253, +234,1,95,1,58,1,11,252,119,252,201,254,174,2,24,3,128,254,147,1,139,1,167,255,34,0,185,251,111,251,169,253, +88,1,42,2,134,1,24,255,169,1,116,2,224,1,206,0,84,2,187,3,161,253,250,254,239,252,241,250,120,253,120,2, +253,0,239,2,69,3,12,0,19,255,154,255,110,255,179,255,251,255,82,0,229,1,220,252,172,255,40,1,134,254,79,0, +165,2,44,2,69,2,104,0,160,255,240,255,234,1,195,251,188,255,70,2,32,254,101,5,101,253,67,0,27,254,184,1, +201,255,110,1,61,0,220,2,229,253,67,252,186,250,11,253,130,1,99,2,122,2,71,0,209,0,92,255,204,255,125,254, +208,1,231,254,85,2,86,252,248,253,220,254,172,2,228,0,188,2,46,3,235,0,192,253,144,252,9,254,78,0,180,1, +0,0,49,3,115,0,40,2,77,255,67,255,12,255,144,254,226,253,231,254,243,0,179,3,151,2,163,1,105,252,138,1, +87,253,202,1,125,252,189,252,44,251,64,253,250,253,243,0,72,5,226,7,124,4,241,4,22,251,75,246,188,248,214,252, +209,4,167,5,135,4,173,254,203,249,147,250,9,253,198,2,108,5,120,3,150,255,148,250,106,252,106,254,191,2,189,2, +193,3,173,0,117,255,224,255,159,251,112,0,53,1,178,254,188,252,170,255,186,2,100,3,120,2,52,5,160,0,214,254, +198,255,151,253,164,1,116,255,60,255,76,0,195,0,14,0,255,252,159,252,227,255,254,5,31,1,62,3,34,1,223,0, +73,254,151,254,138,1,31,4,160,7,66,1,160,248,232,247,23,253,6,5,1,7,134,6,95,252,132,246,149,249,164,0, +234,9,81,14,211,6,130,250,190,244,54,244,205,253,49,6,152,6,237,0,68,252,249,251,77,3,187,3,33,4,144,0, +28,252,56,249,162,253,185,3,176,5,162,2,154,253,25,250,71,253,149,1,77,2,235,0,247,254,249,253,249,253,63,4, +58,8,195,5,191,253,143,247,204,248,84,254,42,5,211,6,70,4,201,0,61,254,112,253,59,2,122,5,23,6,63,254, +132,246,120,246,132,249,196,255,150,8,92,10,78,6,102,254,92,250,78,250,214,252,108,0,140,1,196,2,108,2,188,255, +249,252,182,254,54,3,42,1,153,2,193,255,251,254,37,254,33,253,147,253,134,0,36,2,69,3,228,0,163,255,182,0, +172,254,58,251,69,252,234,255,101,3,209,1,153,3,56,3,220,251,72,252,37,0,111,255,132,1,40,3,117,255,101,255, +63,2,164,0,108,253,112,0,26,254,185,255,101,2,153,0,1,0,42,254,251,253,203,255,171,0,218,255,71,255,126,1, +232,1,190,0,166,255,99,255,102,1,57,1,243,253,11,254,192,251,66,252,49,253,200,255,29,3,239,2,228,1,193,0, +236,255,9,1,236,253,45,254,186,253,85,253,156,255,129,255,206,0,73,0,81,1,21,1,246,1,200,0,74,255,158,254, +144,251,105,251,200,0,156,2,159,1,143,2,109,1,28,255,138,252,108,0,244,255,222,255,181,1,92,2,27,254,255,254, +32,254,122,254,169,0,248,255,126,1,174,3,57,2,68,255,245,253,177,253,118,253,155,255,73,2,250,255,183,255,120,0, +101,0,230,0,4,1,123,0,127,255,11,254,125,253,164,253,82,254,169,1,238,0,205,255,127,1,236,2,27,3,95,1, +90,253,151,251,238,251,85,254,83,0,178,255,198,2,19,4,44,3,125,1,187,253,239,251,151,252,237,253,60,1,189,5, +54,3,187,2,15,0,41,254,30,253,224,253,123,255,62,255,252,1,233,2,181,0,28,0,214,253,134,252,137,252,75,255, +1,1,91,254,38,0,7,255,147,255,219,255,248,0,105,0,236,255,170,255,25,0,56,0,28,0,26,0,235,0,157,255, +229,255,18,1,235,255,148,255,141,254,200,0,193,0,143,255,128,254,140,255,18,0,202,1,138,0,119,0,57,253,66,255, +69,0,209,2,152,4,147,1,6,0,172,253,104,253,72,255,217,0,74,2,199,2,161,0,253,0,145,255,91,255,177,255, +7,0,68,0,135,1,101,2,239,1,149,255,199,254,205,253,57,0,117,0,252,255,215,255,151,255,63,255,98,254,100,255, +85,1,61,1,35,3,109,3,244,1,9,0,61,0,215,254,151,254,31,254,80,253,122,255,16,0,156,0,214,1,89,0, +138,2,96,1,178,2,24,0,74,0,8,1,144,255,48,253,246,255,242,0,193,255,29,1,129,0,145,255,13,0,249,255, +134,0,78,1,98,3,38,0,97,0,217,255,69,0,107,255,45,254,50,1,4,1,224,2,96,0,4,0,62,2,68,0, +250,255,189,253,70,255,157,255,104,255,169,0,22,1,12,1,228,255,176,255,126,255,137,255,133,0,234,255,89,0,36,0, +239,255,86,0,57,255,136,0,118,0,172,255,151,255,210,255,222,255,180,255,38,0,33,0,9,0,213,255,245,255,142,0, +97,0,186,253,193,0,209,0,207,0,131,255,179,251,117,251,224,254,162,1,22,4,93,3,55,2,209,0,31,255,182,255, +176,254,11,251,20,250,53,255,98,4,143,6,187,1,81,255,167,251,250,253,58,0,156,0,164,254,237,254,96,1,64,4, +65,2,238,255,56,253,101,252,255,251,81,254,222,0,59,2,172,2,234,255,167,1,129,255,159,254,82,253,5,254,179,253, +131,255,14,2,51,0,74,4,73,3,166,255,183,252,215,252,13,254,80,254,41,0,249,2,42,1,136,2,100,255,191,255, +25,0,165,254,81,254,52,0,41,0,209,0,132,255,99,0,200,0,111,0,117,0,240,255,238,255,35,0,24,0,26,0, +191,255,254,255,22,0,203,0,229,0,185,254,63,0,40,0,250,252,37,255,39,0,85,1,24,2,217,255,78,252,200,252, +76,0,56,0,84,0,182,254,175,255,228,255,186,254,187,255,50,1,116,0,44,2,244,255,255,255,142,253,9,252,167,252, +61,254,165,255,145,1,161,255,151,255,226,255,149,0,45,0,195,255,223,255,236,255,81,254,30,253,213,252,238,255,82,2, +251,255,3,0,22,0,191,255,226,255,227,255,6,0,175,254,121,253,0,253,193,254,140,255,69,1,228,1,110,2,85,2, +90,0,250,253,14,252,225,251,18,254,138,255,197,255,18,0,167,0,40,0,168,0,177,255,134,1,228,0,143,0,154,254, +25,252,203,253,154,254,250,0,57,2,115,2,93,0,202,254,48,252,71,253,57,255,136,1,156,2,60,1,195,255,101,254, +192,253,69,254,16,0,221,3,150,5,210,253,11,251,89,1,29,2,118,255,29,252,19,0,210,1,153,2,168,0,180,252, +77,255,255,2,114,3,195,0,119,252,238,248,82,255,74,6,237,8,191,0,95,255,145,255,24,253,198,255,154,0,220,255, +169,0,222,2,115,2,164,1,68,0,75,255,225,254,167,253,120,252,130,254,30,1,160,7,85,8,89,4,13,252,245,248, +63,249,152,255,44,6,76,5,142,1,230,252,197,253,136,255,185,0,58,0,127,0,188,0,26,0,194,255,96,255,124,255, +243,0,65,0,114,0,130,255,212,255,160,253,217,255,9,2,201,1,11,2,252,255,247,252,77,254,138,0,235,1,237,0, +156,0,207,255,240,254,239,255,122,255,3,255,251,1,70,1,66,3,215,1,156,253,209,252,62,0,249,255,213,1,168,1, +249,255,178,254,240,255,233,255,38,0,98,255,215,255,202,0,147,2,214,1,114,0,162,254,219,253,109,255,137,254,85,0, +209,2,51,0,21,0,236,255,146,255,119,255,203,255,22,0,92,0,250,0,155,255,197,253,69,255,75,0,149,255,119,0, +108,0,134,1,103,0,181,253,81,254,122,254,105,0,249,255,19,2,210,0,241,255,37,255,240,255,30,2,226,1,11,0, +24,255,29,255,171,255,214,254,11,0,193,255,7,2,79,2,166,1,48,0,173,254,149,254,167,255,237,255,117,0,80,1, +24,0,160,254,214,253,152,0,90,1,243,2,148,1,188,254,39,0,72,0,249,255,168,254,29,255,136,0,50,1,213,255, +149,255,149,254,65,0,245,0,19,0,52,255,18,0,52,0,212,255,21,0,181,254,156,255,24,1,66,0,47,0,31,0, +145,255,227,255,29,254,16,0,251,0,208,255,72,0,80,255,232,255,106,0,234,255,2,0,103,0,45,0,6,0,232,255, +2,0,233,255,23,255,237,254,43,0,144,0,13,2,249,0,109,1,75,255,30,253,189,255,133,0,128,254,52,253,133,252, +183,0,251,2,100,0,148,0,28,255,207,254,39,0,87,2,252,255,15,0,193,255,197,252,83,252,125,0,48,4,182,4, +71,255,142,252,233,251,70,0,51,1,89,2,249,0,210,251,173,250,242,253,71,2,121,2,1,2,219,253,172,253,214,255, +27,1,220,255,14,0,85,0,14,0,221,255,200,255,201,255,162,254,14,0,219,255,12,0,88,1,182,255,241,255,235,253, +1,254,101,0,103,0,2,1,181,1,202,0,157,254,195,252,23,0,88,0,213,1,79,2,50,0,158,255,117,255,1,255, +226,255,9,0,102,0,34,0,68,0,218,255,128,255,126,255,238,255,106,0,131,0,79,0,213,255,202,255,197,255,235,255, +124,0,76,0,39,255,187,255,226,255,102,255,22,0,77,0,97,0,81,0,129,255,94,255,255,255,164,0,154,0,233,0, +239,0,148,255,193,255,39,0,63,0,55,0,225,254,183,254,181,255,211,255,132,0,255,0,190,0,0,0,109,0,234,255, +25,0,117,0,92,0,158,2,210,255,225,255,34,0,51,0,83,1,254,255,251,255,219,255,248,255,238,255,5,0,17,0, +239,255,92,0,163,254,233,255,207,255,15,0,10,0,9,0,167,255,18,255,129,0,8,1,243,255,219,255,12,0,201,255, +191,255,228,255,216,255,53,0,7,1,73,0,46,0,185,255,174,0,25,0,202,255,218,255,24,0,232,255,88,0,1,0, +1,255,70,255,1,0,34,0,13,1,188,0,227,255,227,255,217,255,9,0,29,1,239,0,9,0,201,253,36,2,159,251, +21,251,161,0,229,251,255,0,35,4,222,2,6,3,237,255,236,2,48,0,70,1,230,255,9,0,1,0,62,0,216,255, +196,255,229,0,56,0,254,254,218,255,234,255,53,0,240,1,237,255,207,254,251,255,54,0,46,0,172,255,4,0,200,255, +31,1,84,0,47,255,42,0,216,255,7,0,197,255,236,255,70,0,118,0,209,0,181,254,198,0,74,255,48,2,195,0, +240,255,202,255,127,0,60,0,7,255,35,0,17,1,233,255,201,0,5,0,6,0,116,0,69,0,91,0,205,0,145,255, +190,255,40,0,247,255,230,0,55,1,241,255,227,255,250,254,30,0,1,0,78,0,239,255,253,254,219,254,71,0,223,255, +26,254,238,255,197,255,16,2,246,2,120,3,58,0,187,0,204,255,173,254,60,1,43,0,47,0,14,254,42,0,72,255, +210,255,171,1,215,0,17,255,232,255,231,0,233,1,221,3,49,3,102,2,80,0,174,253,186,253,6,255,40,0,38,2, +55,3,26,0,250,255,206,253,235,253,251,255,4,0,20,0,62,0,53,0,225,254,149,253,186,253,219,254,17,0,16,1, +82,1,191,255,74,0,227,254,79,0,163,253,233,255,247,255,19,255,114,1,82,254,203,255,221,255,185,255,22,2,252,0, +221,255,205,255,219,254,255,253,163,255,54,255,94,0,104,255,167,255,200,254,255,255,253,255,54,0,211,255,197,255,77,255, +11,254,23,1,204,255,65,255,191,255,218,1,35,0,135,254,44,0,6,0,132,0,197,255,156,254,143,254,174,252,167,252, +141,0,246,254,52,0,166,255,26,2,91,2,116,0,11,0,201,0,12,0,24,0,44,255,90,255,77,0,148,255,187,0, +196,254,142,0,13,0,249,0,82,255,161,254,152,0,44,0,152,0,103,1,58,255,186,255,222,255,212,255,240,255,236,255, +149,255,178,255,20,255,107,255,52,255,229,255,110,0,249,2,217,255,12,2,143,254,240,1,39,254,123,0,232,253,68,0, +68,1,103,255,206,0,195,1,7,2,24,4,6,5,116,0,102,0,15,0,237,0,96,1,184,1,135,253,223,255,242,254, +34,4,75,4,72,253,91,255,184,252,220,2,170,1,137,255,34,253,79,255,57,0,144,3,118,253,128,0,181,253,91,1, +30,0,23,0,65,1,220,0,116,0,157,255,197,254,175,254,84,255,37,255,159,1,30,3,56,1,88,255,77,0,251,254, +71,254,161,250,53,252,240,0,202,0,19,0,239,253,82,254,88,255,108,0,235,255,120,0,56,0,95,0,17,0,51,255, +72,0,62,0,123,255,137,255,98,0,168,255,69,255,125,0,118,255,195,255,114,255,181,255,65,0,158,0,198,255,178,0, +170,254,127,255,247,254,29,0,80,0,180,0,8,0,186,255,146,255,60,255,83,0,5,0,144,0,86,0,142,0,99,1, +70,1,59,0,131,255,248,0,103,255,182,255,42,254,128,0,115,0,142,0,140,255,66,0,62,0,146,0,174,0,141,0, +119,0,125,0,85,1,170,255,144,251,242,249,208,250,184,255,228,255,246,3,129,2,53,4,101,4,252,2,206,0,23,0, +209,252,113,250,246,252,199,251,62,251,13,255,64,255,251,255,233,1,101,3,149,4,221,1,197,255,175,0,187,255,16,0, +76,253,122,251,97,250,4,253,156,254,129,0,194,2,84,4,232,2,250,1,255,1,221,255,29,0,148,254,102,252,27,254, +0,254,114,254,39,255,197,255,91,1,7,2,181,3,144,5,165,2,149,6,213,255,254,1,45,255,69,255,145,253,203,255, +157,255,13,0,71,0,38,1,178,2,137,2,72,3,138,9,92,5,67,253,179,249,222,236,157,251,192,1,196,8,212,6, +200,6,216,0,13,3,250,0,157,255,111,252,1,254,151,251,120,255,154,0,8,0,71,2,237,0,149,255,39,0,109,254, +51,253,100,254,235,254,163,255,12,0,164,255,164,2,112,3,164,1,84,2,137,1,92,255,54,0,118,250,149,253,224,250, +103,251,223,254,65,1,228,2,73,3,31,3,206,2,197,1,180,255,216,254,26,252,126,252,80,252,92,254,201,255,170,1, +238,2,24,6,106,1,227,2,2,1,125,255,77,253,145,249,221,249,180,251,170,255,216,2,232,5,8,6,252,4,194,255, +136,255,174,252,241,252,190,252,126,252,33,255,40,0,163,0,16,3,231,2,70,2,40,0,193,253,160,250,190,251,106,252, +137,0,114,1,184,4,195,2,176,4,152,1,32,0,177,252,77,249,237,248,214,249,75,254,9,0,228,1,186,3,54,5, +167,5,246,1,248,254,120,252,166,248,31,251,193,252,152,254,189,0,90,3,204,1,123,255,134,255,93,255,128,253,159,255, +173,254,160,255,114,2,103,2,231,0,220,255,33,255,202,255,228,253,211,252,7,0,159,255,175,0,73,1,40,5,183,1, +247,2,187,0,154,254,197,251,67,252,151,253,217,254,112,255,34,2,155,2,140,2,213,1,44,0,129,255,174,254,64,255, +108,255,251,0,85,0,140,0,98,0,54,0,211,254,132,252,159,253,121,255,190,1,113,0,205,0,185,0,30,0,206,255, +171,255,225,255,242,255,15,254,90,255,7,255,15,255,201,255,76,0,159,0,22,1,37,1,188,255,175,0,131,0,85,253, +109,253,174,253,78,0,235,0,73,0,166,255,123,0,6,255,237,255,29,0,100,2,40,1,187,0,213,255,126,255,173,255, +50,255,93,255,79,255,28,0,45,255,120,255,225,255,106,1,199,2,73,1,202,0,225,255,138,255,202,255,86,0,48,0, +159,255,230,254,149,255,242,255,81,0,142,1,2,0,27,0,114,255,223,255,20,0,15,0,6,0,33,1,234,255,171,254, +136,255,120,255,123,254,161,255,222,255,133,255,71,1,237,255,11,1,18,1,215,0,135,255,31,254,50,0,111,255,116,255, +80,0,1,2,132,5,45,2,38,255,185,249,153,247,242,249,5,0,150,6,252,9,82,10,252,5,53,0,44,248,148,241, +83,243,108,251,112,7,77,12,103,6,117,2,95,252,137,252,70,252,246,252,168,1,248,0,176,255,89,0,114,255,243,0, +219,0,113,0,209,254,117,255,44,254,148,255,11,1,39,3,95,6,194,5,168,0,22,253,201,249,107,251,107,255,116,2, +214,4,225,5,85,2,46,254,203,253,32,252,27,0,147,1,161,3,60,4,191,0,161,255,55,251,7,250,44,252,179,1, +184,4,18,5,245,1,225,255,185,250,198,253,114,0,61,2,103,5,114,255,31,253,142,255,120,254,220,0,188,255,63,0, +16,1,109,2,219,0,34,1,52,0,90,255,60,0,106,0,133,255,172,0,88,0,4,0,217,255,163,253,25,255,107,0, +122,1,213,3,59,0,133,1,229,253,138,254,78,255,244,0,219,2,158,1,211,0,147,255,113,253,175,255,46,1,119,0, +108,1,76,0,112,254,79,255,32,0,58,1,0,2,247,255,105,0,209,253,206,251,40,255,47,0,156,1,7,1,148,0, +180,255,116,255,225,255,73,255,51,254,179,254,26,255,129,254,206,0,65,4,146,4,163,255,101,252,199,251,147,251,202,1, +136,5,160,3,68,0,96,255,236,253,116,250,171,253,148,255,135,255,175,2,253,1,74,1,89,252,203,249,112,251,191,255, +26,2,34,3,247,2,44,0,15,254,244,252,170,254,18,0,59,1,73,2,246,1,218,255,236,255,108,251,238,254,88,255, +201,0,41,3,218,2,188,255,38,253,79,250,227,252,169,255,191,1,7,3,233,2,244,0,133,255,151,253,151,252,240,255, +48,2,216,1,205,1,180,2,2,255,134,253,74,253,61,253,86,255,124,2,52,2,141,0,85,1,138,255,133,255,114,255, +224,255,116,1,147,1,15,0,186,255,104,254,162,254,79,0,50,0,180,0,28,1,32,1,211,255,171,255,176,254,24,254, +244,255,238,255,209,0,156,0,108,0,139,254,56,254,98,254,97,254,188,255,20,2,36,1,13,1,220,254,111,255,108,253, +22,0,133,1,95,1,142,1,28,0,226,255,183,253,47,255,86,0,133,1,99,2,106,2,255,255,169,254,188,252,48,253, +66,254,199,0,89,2,240,1,19,1,94,255,129,255,150,254,239,255,29,0,210,0,233,0,110,0,109,0,5,0,140,254, +193,255,62,0,151,0,84,0,52,255,86,0,63,0,29,0,51,0,188,4,174,255,71,255,183,0,220,250,190,0,235,3, +212,251,97,5,15,251,50,0,166,255,112,251,103,0,229,2,157,2,37,0,211,255,251,254,0,253,0,0,85,255,99,255, +186,255,197,0,31,0,6,0,18,253,118,0,184,0,112,2,67,0,185,255,99,255,192,254,164,255,212,255,3,0,63,0, +5,255,221,255,252,255,92,1,120,0,10,1,87,0,246,255,98,255,146,255,174,255,242,255,46,0,230,255,141,0,107,0, +222,0,239,255,39,2,251,255,141,255,174,255,187,255,150,255,156,255,36,0,245,254,141,0,150,0,72,0,208,255,233,255, +145,255,173,255,170,255,186,255,199,254,102,253,116,253,181,253,140,0,161,4,226,5,7,3,17,254,70,251,196,248,6,251, +97,252,165,255,63,1,10,3,201,1,255,2,118,6,124,5,35,8,99,6,81,3,36,1,85,255,60,252,136,252,42,251, +92,251,191,250,136,250,54,250,81,250,186,250,65,254,97,0,166,2,92,5,110,9,117,11,0,12,165,7,170,1,200,255, +180,251,243,249,189,246,122,246,17,248,168,250,176,252,164,255,196,3,192,5,96,8,146,8,61,7,86,5,252,255,105,253, +99,251,145,249,196,249,160,249,181,250,148,0,200,2,177,4,197,6,139,5,83,5,76,1,42,0,36,254,127,253,108,251, +116,251,105,253,47,0,239,255,114,2,148,3,148,3,240,0,177,255,158,254,126,254,59,254,24,254,115,0,223,255,177,0, +90,1,5,2,196,0,136,0,221,255,33,0,238,252,13,254,63,254,99,0,191,0,160,2,152,3,226,1,187,0,163,255, +103,255,132,253,239,254,239,251,30,0,230,253,34,1,44,0,159,3,192,2,98,3,211,255,48,254,136,255,190,253,69,255, +35,255,164,255,212,255,109,2,199,2,40,2,80,0,48,254,223,254,159,254,49,255,177,255,3,0,65,1,35,0,50,1, +233,0,28,0,251,254,161,0,162,255,204,0,27,2,68,1,231,1,27,255,106,255,184,255,203,255,16,0,122,254,61,255, +142,254,62,0,55,1,242,1,113,0,81,255,3,0,246,255,75,0,211,255,212,254,217,0,190,255,73,1,4,1,31,255, +30,0,248,255,233,255,106,255,3,0,202,255,52,0,131,0,71,0,44,0,13,254,87,254,201,255,196,255,41,0,42,0, +238,253,175,255,106,255,37,0,27,0,147,255,86,0,239,0,69,1,200,255,151,255,253,254,126,255,59,0,21,255,236,255, +171,255,35,0,174,255,204,255,198,0,221,255,200,255,252,255,230,255,169,1,62,0,206,0,51,0,222,255,4,0,116,254, +15,0,200,255,123,255,230,255,171,255,109,1,247,255,83,1,117,0,25,0,8,255,4,0,230,255,181,255,243,254,213,254, +150,254,71,0,219,255,32,0,8,0,81,0,183,255,255,255,237,0,101,0,18,0,87,255,132,0,180,255,74,0,169,255, +8,0,127,255,86,0,13,0,94,0,2,0,0,0,171,255,0,0,222,254,119,0,28,0,25,255,135,255,213,255,88,0, +198,255,230,255,184,1,81,0,88,0,204,255,237,255,248,255,10,1,107,0,184,255,39,0,232,255,66,0,206,254,45,0, +151,255,110,2,160,255,142,0,27,0,191,255,93,0,144,255,12,255,155,255,121,0,188,255,39,0,162,0,188,0,252,0, +171,0,113,1,227,255,204,255,109,1,201,255,199,255,53,0,217,255,251,255,77,0,139,255,47,0,13,0,62,0,211,255, +8,0,199,0,115,0,25,255,48,0,119,255,52,0,210,255,35,1,225,255,41,0,4,0,165,255,119,255,179,254,78,0, +18,0,229,0,175,0,91,1,174,255,33,255,3,0,229,255,166,0,179,255,50,0,254,255,217,255,71,0,44,255,124,0, +183,255,65,0,251,255,15,1,218,255,242,255,183,255,10,0,61,0,10,0,68,0,8,0,221,255,67,0,220,255,140,255, +22,0,175,255,13,0,44,0,41,0,23,0,241,255,14,0,144,255,133,0,247,255,54,0,179,255,106,0,155,254,242,255, +184,255,21,0,169,255,26,0,206,255,86,0,254,254,143,1,170,255,30,255,235,255,85,255,147,255,108,1,113,0,41,1, +237,255,173,255,105,0,157,253,68,0,231,255,18,8,142,246,201,10,5,244,77,253,30,7,33,250,181,2,148,1,229,245, +170,6,243,251,25,0,200,255,234,255,121,0,223,255,212,253,15,0,1,2,15,0,124,1,95,255,175,255,96,1,214,255, +61,254,165,255,199,255,57,0,37,0,198,0,35,0,165,1,36,254,97,255,213,253,31,0,50,0,217,255,76,1,151,251, +228,0,171,0,180,0,186,255,208,254,56,1,188,255,164,0,48,0,147,255,17,255,105,1,42,0,72,0,56,0,190,255, +75,0,205,255,84,255,129,0,75,0,92,255,88,1,181,0,164,1,178,253,29,4,61,0,178,255,231,0,7,252,202,252, +191,251,41,252,68,0,78,6,20,4,238,3,75,2,33,0,62,253,211,252,76,251,178,254,46,0,29,3,180,4,230,2, +161,0,241,255,38,253,76,253,6,255,65,255,87,255,153,254,173,255,243,255,204,2,77,2,28,3,105,0,83,0,89,0, +153,254,143,255,128,254,199,253,46,255,225,255,58,1,185,2,223,0,190,0,79,255,60,255,190,254,34,255,187,0,223,254, +80,255,10,255,113,0,246,255,183,0,218,0,171,1,217,0,133,255,50,0,233,254,249,253,151,253,156,255,113,0,56,0, +81,2,39,2,33,2,155,2,88,255,25,253,202,253,231,253,212,252,183,255,117,2,188,2,233,3,138,1,127,0,238,254, +64,253,140,254,149,255,23,255,222,0,254,1,179,0,228,0,25,3,173,255,99,251,4,0,52,6,126,250,223,1,171,6, +64,250,7,7,60,251,82,0,171,251,1,250,195,4,131,245,21,15,94,254,241,2,2,1,150,0,146,255,137,0,32,0, +162,254,90,255,178,254,201,254,246,0,1,0,136,0,227,255,251,255,72,0,122,255,151,255,148,0,112,0,64,0,75,0, +38,0,227,255,137,253,252,255,115,0,124,0,141,255,66,1,243,255,167,255,30,255,9,255,234,255,52,0,27,253,94,254, +115,254,46,0,140,255,162,0,169,255,218,254,82,0,253,255,2,1,114,0,158,255,87,254,94,255,205,255,0,0,202,1, +220,0,161,2,8,1,220,0,94,255,87,0,216,254,58,254,187,254,147,253,99,255,175,254,56,255,212,255,204,255,170,255, +226,0,87,0,9,0,54,0,168,255,226,255,243,255,47,0,7,0,11,0,202,255,40,0,105,254,220,255,172,255,169,0, +61,0,193,255,34,0,141,254,122,255,199,253,106,255,34,0,98,255,236,255,177,255,29,0,71,255,62,0,96,252,249,255, +54,0,127,254,11,1,249,255,26,0,243,255,162,254,195,255,201,255,115,0,154,254,210,254,226,255,230,254,116,0,198,255, +5,255,164,255,95,0,162,255,68,255,201,255,18,0,251,255,58,0,51,254,233,255,108,2,205,255,222,254,209,254,65,0, +20,1,222,0,84,255,166,254,235,255,237,255,7,0,236,254,253,254,72,0,34,0,5,0,48,0,48,0,215,0,236,1, +26,1,238,255,178,255,21,1,219,1,29,0,223,252,33,254,230,255,8,0,92,255,10,0,11,0,61,3,184,2,59,2, +144,255,227,255,251,255,249,255,29,255,7,254,77,0,228,0,239,255,233,255,246,255,215,1,53,0,38,0,80,0,27,0, +205,255,201,255,197,255,226,255,17,1,37,2,74,2,50,0,27,0,248,255,254,255,25,0,50,0,230,0,236,0,28,3, +23,2,46,0,213,255,194,254,190,255,254,254,44,0,29,0,5,2,251,1,41,2,195,0,20,2,75,2,16,1,166,255, +251,255,141,255,40,1,165,0,214,255,46,2,8,3,120,2,76,1,255,255,246,255,198,255,215,0,226,255,200,0,197,1, +36,1,78,0,54,0,232,255,247,255,42,1,38,1,241,255,201,255,231,255,242,255,27,0,52,0,68,1,59,0,45,0, +232,255,169,255,214,255,51,1,51,0,60,2,242,0,233,0,69,0,17,0,28,0,16,0,41,0,255,255,5,0,50,0, +219,255,26,0,17,0,221,0,251,255,30,0,252,255,17,255,67,0,82,0,226,255,231,255,254,255,17,255,39,0,29,254, +230,254,21,0,9,0,212,255,216,255,203,254,46,254,4,255,7,0,253,255,9,0,247,255,241,255,77,0,230,255,247,255, +230,255,242,253,197,253,64,253,33,255,70,0,31,0,91,0,15,0,191,255,201,254,0,255,206,255,10,255,250,255,54,255, +0,255,245,255,216,254,230,255,36,0,25,0,22,0,96,0,0,1,186,0,1,0,246,254,157,253,42,0,238,255,42,255, +20,255,254,254,31,0,242,255,226,255,196,255,1,0,198,255,214,255,45,1,36,1,83,0,10,0,221,255,199,255,250,255, +19,0,30,0,243,255,184,255,209,255,42,0,26,0,250,255,249,255,191,254,16,0,31,0,245,255,14,0,211,255,20,0, +12,0,217,255,217,255,231,254,49,0,214,255,228,255,31,0,1,0,208,255,26,0,218,255,68,0,229,0,6,0,241,255, +5,0,210,255,242,255,1,0,48,0,230,255,234,255,3,0,221,254,27,255,61,0,216,255,211,255,212,255,6,0,1,0, +234,255,224,0,223,0,243,255,69,0,58,0,222,0,150,255,243,255,35,0,40,1,246,255,8,1,231,255,252,255,27,0, +26,0,66,0,251,255,17,0,251,255,219,255,36,0,245,255,228,255,251,255,32,255,20,0,230,255,10,0,240,255,252,255, +250,255,22,0,248,255,189,255,79,0,36,0,201,254,215,255,255,255,32,1,38,1,6,0,198,0,205,255,43,0,234,255, +178,255,85,0,71,0,236,0,197,0,4,0,223,255,46,255,22,0,48,0,227,255,229,255,27,0,235,255,3,0,13,255, +240,255,61,255,3,0,177,255,219,255,63,0,21,1,193,0,238,0,38,0,33,0,190,255,229,255,38,1,244,255,5,0, +247,0,226,1,48,0,250,254,200,255,253,255,255,0,20,1,30,0,226,255,255,255,41,0,38,0,8,0,26,255,17,255, +195,255,0,255,57,0,35,0,237,255,246,255,235,253,36,255,54,0,212,255,217,255,19,0,65,255,29,0,176,255,25,0, +70,0,22,255,29,255,216,255,246,255,25,0,20,0,0,0,26,255,255,255,243,255,8,0,13,0,233,255,16,0,219,255, +196,255,28,0,28,0,13,0,209,255,25,0,244,255,10,0,229,255,226,255,6,1,249,255,221,255,28,0,57,1,47,1, +234,255,247,255,246,255,162,254,253,255,222,255,34,0,236,255,252,255,226,255,18,0,13,0,247,255,237,255,5,0,8,0, +3,0,250,255,208,255,226,253,8,255,21,2,229,255,65,254,222,255,190,1,207,255,76,0,58,2,2,1,228,254,5,1, +204,255,238,254,55,0,236,255,241,253,227,253,11,0,47,255,37,254,226,255,221,255,63,254,245,255,18,3,233,253,250,253, +203,1,46,255,50,254,214,253,222,255,209,254,62,0,222,255,216,255,12,0,203,255,8,1,18,255,25,0,29,0,203,255, +236,1,40,0,246,254,39,0,61,1,167,254,199,254,40,0,224,255,239,0,52,2,58,2,54,1,233,0,16,0,54,0, +13,254,26,255,12,0,181,255,214,255,108,0,248,255,169,254,41,0,13,0,33,0,59,0,157,254,94,254,176,255,209,254, +231,1,34,254,11,2,255,255,220,254,254,255,240,255,208,0,251,255,82,1,14,1,203,255,200,0,229,0,15,0,58,0, +213,255,6,0,12,0,231,255,202,0,5,0,60,1,72,1,239,255,240,255,221,255,236,255,55,0,174,0,168,0,42,1, +53,0,32,0,35,0,239,0,165,255,169,0,118,1,26,1,56,1,251,0,39,0,208,255,223,255,196,0,19,1,11,1, +49,2,19,2,221,0,32,0,144,0,216,255,94,1,46,2,2,3,224,255,114,255,225,253,36,2,252,1,44,255,229,252, +129,253,49,2,53,5,37,3,224,3,28,2,68,1,109,2,28,3,174,3,230,1,31,0,89,255,51,0,199,255,158,0, +29,0,238,255,8,0,240,0,80,1,73,1,143,1,242,1,192,1,49,2,80,1,248,0,14,0,13,0,204,0,164,1, +61,1,227,255,50,0,60,0,238,255,249,255,70,0,223,255,235,255,225,255,50,255,49,0,213,255,26,255,38,0,232,255, +12,0,238,255,236,255,227,255,47,255,50,0,165,254,221,253,40,0,231,252,73,1,224,253,249,255,235,253,242,253,7,255, +229,255,196,255,200,255,253,253,45,254,34,255,85,254,24,254,130,253,237,253,19,254,37,254,242,254,18,255,124,255,254,254, +199,255,22,0,221,254,45,0,70,255,253,255,182,254,216,253,24,255,1,254,178,255,181,254,191,254,242,253,232,254,13,254, +79,254,210,254,27,0,30,255,189,254,247,253,234,254,255,253,239,253,200,253,24,255,18,254,212,252,71,254,227,251,21,254, +219,253,169,253,231,253,69,254,43,254,23,254,232,254,232,254,43,255,231,253,69,253,21,254,225,253,236,255,187,253,211,253, +57,254,238,254,220,254,31,254,169,253,42,255,61,255,9,254,65,0,54,0,248,255,87,255,44,0,31,255,217,253,19,0, +33,255,253,254,231,254,19,0,208,255,227,255,11,0,219,255,218,255,238,255,62,0,84,0,10,0,225,255,202,255,178,255, +178,255,195,255,243,255,244,0,20,0,115,255,25,0,14,2,156,255,34,0,223,255,249,0,176,255,201,254,27,0,38,0, +64,1,16,1,7,0,42,0,230,255,235,0,17,2,220,255,239,255,8,2,31,3,24,1,224,254,243,254,216,255,232,255, +62,2,9,255,240,0,133,255,232,253,72,1,179,0,32,4,207,255,45,2,218,252,48,0,94,7,240,255,255,253,218,2, +177,255,238,251,59,255,185,1,50,3,57,0,251,255,16,255,168,255,242,0,82,1,11,2,162,255,213,255,1,0,4,0, +50,1,41,2,62,2,194,0,200,255,211,255,44,2,88,2,82,2,249,1,22,2,8,2,2,1,5,2,205,2,58,2, +51,2,224,0,12,1,107,1,230,1,0,2,48,0,191,255,230,0,46,0,61,0,85,1,76,1,63,2,232,0,189,0, +12,2,213,0,167,1,42,2,251,1,225,255,246,255,19,254,16,0,80,255,221,253,6,254,237,254,30,1,7,2,235,1, +26,2,218,1,25,2,124,1,176,2,240,1,215,0,34,0,174,254,27,255,55,0,78,0,4,254,62,252,52,252,8,0, +204,0,50,255,162,0,255,255,47,0,30,2,216,1,21,1,14,2,1,0,251,255,50,2,35,252,94,0,173,255,208,0, +233,255,151,255,177,255,27,1,45,2,194,1,245,3,228,1,236,0,59,0,216,255,231,254,55,254,74,253,75,252,38,253, +183,252,31,1,11,0,214,255,44,0,1,4,34,0,37,2,58,1,118,3,224,255,245,255,41,0,245,255,6,0,165,255, +7,0,228,254,236,254,198,255,132,1,89,2,83,1,37,0,16,255,120,254,2,255,158,253,208,253,234,253,176,253,185,252, +35,255,52,0,97,2,69,2,250,1,212,1,58,0,9,255,5,254,7,253,181,253,37,253,190,254,252,255,195,255,231,255, +251,255,252,255,42,0,7,1,213,255,239,253,35,255,223,254,38,255,28,0,43,0,163,255,193,254,86,0,105,255,1,255, +238,254,233,255,254,255,13,0,23,2,104,2,20,0,31,1,46,1,73,1,202,255,129,254,160,253,221,253,37,254,206,254, +32,0,242,255,59,0,29,0,136,0,193,255,206,254,67,0,58,255,32,255,28,0,213,255,243,255,200,0,138,255,85,0, +171,255,245,254,40,255,208,254,224,254,236,254,30,255,57,0,90,0,87,0,226,255,24,1,146,255,237,255,11,0,25,0, +222,255,11,0,128,1,188,255,77,1,12,0,41,0,155,1,238,253,240,255,41,254,252,251,0,2,220,253,212,255,51,254, +238,3,239,1,50,0,233,254,225,0,80,255,18,0,84,254,9,0,222,253,20,0,231,255,25,0,243,255,63,2,205,253, +34,0,136,0,188,254,19,255,194,255,251,0,240,254,4,4,155,255,66,2,159,255,116,0,28,2,210,255,212,254,238,249, +42,1,253,1,251,1,235,253,164,252,84,4,39,4,29,2,233,249,77,1,253,253,40,254,73,253,196,250,197,255,6,2, +192,1,28,0,207,1,51,1,49,0,67,0,182,1,201,2,76,3,249,0,50,2,236,0,18,2,21,2,245,255,2,255, +45,255,202,254,24,254,16,253,7,254,195,254,45,0,20,0,3,0,13,1,212,1,46,2,19,1,68,0,207,0,54,1, +196,255,64,2,223,1,231,255,204,255,227,255,218,255,253,255,70,0,248,254,80,255,222,254,30,254,24,255,77,0,172,255, +151,255,58,255,243,254,6,0,5,0,44,0,144,255,254,255,230,255,162,255,235,0,81,1,173,1,169,1,8,0,104,255, +31,255,234,255,21,0,185,255,211,255,254,255,12,0,210,0,154,1,199,255,230,255,171,255,44,0,230,255,80,255,55,255, +171,255,9,1,101,1,26,1,2,0,189,255,90,0,250,255,199,255,39,0,220,255,184,254,31,0,150,255,223,0,100,0, +192,0,52,0,129,0,1,0,205,255,223,255,253,255,214,255,213,255,247,255,220,255,4,1,40,1,14,0,108,0,242,255, +250,255,14,0,232,254,198,254,70,0,169,255,249,255,220,254,20,0,94,255,251,255,231,255,19,0,222,255,39,0,239,255, +137,255,220,255,18,0,229,255,80,0,212,0,27,255,0,0,244,255,37,0,86,0,183,255,55,255,243,255,42,0,250,255, +228,255,201,255,229,255,242,255,51,0,63,255,38,255,12,255,69,0,133,255,42,0,162,255,13,0,154,255,138,255,92,0, +18,0,73,0,131,0,225,255,7,0,27,0,255,255,92,0,197,255,60,0,112,255,250,255,147,255,41,0,228,255,219,255, +15,0,206,255,90,0,54,0,71,0,219,255,1,0,201,255,10,0,240,253,229,255,236,254,41,0,234,255,234,254,195,255, +70,0,17,1,233,255,181,255,88,0,232,255,62,0,63,0,207,255,221,255,170,255,217,255,242,255,238,255,63,0,65,0, +4,0,6,0,167,254,248,255,184,254,18,0,64,0,89,0,224,255,68,0,19,0,167,255,65,255,230,255,10,0,12,0, +203,255,75,0,61,0,47,0,109,0,246,255,61,0,234,255,15,0,251,255,173,255,245,255,36,0,203,255,155,255,161,255, +18,0,237,255,250,255,55,0,56,0,82,0,75,0,128,0,4,0,199,255,159,255,178,255,22,0,117,0,24,0,249,255, +51,0,114,0,36,0,58,0,235,255,252,255,227,255,150,255,254,255,43,0,48,0,32,0,228,255,216,255,206,255,172,255, +10,0,239,255,242,255,206,255,11,0,42,0,3,0,254,255,242,255,243,255,137,255,230,255,251,255,45,0,70,255,31,0, +75,0,88,0,102,0,35,1,217,255,212,255,166,255,133,255,183,255,240,255,49,255,62,255,212,255,225,255,62,1,30,0, +241,255,253,254,11,0,5,0,44,0,9,0,220,255,208,255,199,0,25,0,107,0,41,255,249,254,251,255,244,255,166,255, +219,255,30,0,49,0,75,0,80,0,38,0,7,0,236,255,224,255,246,255,223,255,22,0,193,255,207,255,192,255,227,255, +52,0,238,255,247,255,236,255,251,255,41,0,134,0,68,0,3,0,149,255,157,255,244,255,39,1,55,1,53,0,1,0, +11,0,245,0,239,255,222,255,37,255,100,0,7,1,183,255,35,255,230,254,196,255,40,0,49,0,188,255,229,255,222,0, +7,0,11,0,7,1,47,2,240,3,239,2,223,1,218,1,244,255,78,255,24,252,38,250,93,250,51,252,13,253,233,254, +122,254,165,254,198,1,216,255,230,4,27,4,10,1,13,4,9,5,18,8,31,7,229,0,5,255,71,253,252,254,227,255, +247,253,77,253,138,253,6,251,40,251,230,252,170,252,174,255,4,1,198,255,209,0,64,4,17,3,228,0,42,3,123,0, +233,0,22,3,92,4,254,2,199,2,208,0,21,0,59,0,107,255,231,254,241,252,252,251,224,250,23,252,77,253,240,253, +42,0,212,255,218,255,174,255,254,0,233,2,51,2,169,2,232,1,69,1,223,255,0,0,185,255,3,0,151,255,48,255, +43,255,5,255,95,0,36,1,19,1,35,1,9,1,165,0,17,1,199,255,185,0,234,255,134,255,197,255,98,255,250,254, +35,0,214,255,220,255,58,255,251,254,118,0,210,255,47,0,60,254,192,255,1,0,228,254,28,255,225,254,21,0,161,0, +180,255,194,255,77,0,193,0,228,255,241,255,56,255,233,254,253,255,9,255,240,254,201,254,21,0,65,255,228,254,161,0, +93,0,168,255,174,255,22,0,211,255,100,0,44,0,199,255,77,0,125,0,198,255,236,255,207,255,129,255,244,255,243,255, +234,255,82,255,17,255,233,0,224,255,146,254,76,255,90,255,73,255,92,254,41,0,5,0,227,0,8,0,44,0,137,0, +109,0,156,0,43,0,193,255,249,255,14,0,235,255,142,254,242,254,62,255,226,254,167,254,158,254,190,254,226,255,7,0, +91,0,218,255,2,0,86,1,54,0,109,1,241,255,161,0,60,0,105,255,231,255,191,254,64,0,211,255,158,2,89,2, +159,255,51,255,127,254,13,253,243,254,32,0,111,0,243,252,146,253,90,253,42,255,202,255,168,1,51,1,109,0,17,1, +61,1,246,0,220,0,176,0,27,1,66,1,237,255,254,255,121,255,151,254,71,0,186,255,68,0,32,0,73,0,31,0, +112,0,195,255,217,254,132,255,119,255,129,255,48,1,56,1,251,2,208,253,143,0,85,4,241,2,117,254,125,249,246,252, +126,255,100,254,11,1,176,6,44,0,71,254,55,2,4,8,245,0,197,249,72,253,59,1,158,250,156,253,210,3,126,2, +153,253,79,1,22,6,17,6,35,2,108,1,36,2,222,253,22,253,10,255,245,252,186,250,196,251,222,253,88,255,254,2, +149,3,180,1,95,1,142,0,226,0,102,3,22,5,181,0,173,254,151,250,184,254,152,0,45,255,54,254,193,255,20,1, +58,0,230,0,247,2,77,1,0,0,122,255,156,255,18,255,25,255,22,255,248,253,108,254,211,255,134,1,42,2,218,2, +57,3,10,0,241,255,253,255,86,0,221,254,226,254,238,255,154,255,57,255,52,253,210,255,254,1,74,2,20,1,45,0, +31,0,17,1,69,1,106,2,25,1,62,1,138,0,49,0,114,0,251,1,47,2,68,1,109,0,91,0,220,255,45,0, +73,1,53,1,210,255,237,254,26,255,211,254,2,255,201,254,168,254,181,254,71,255,12,255,65,0,172,0,220,0,80,2, +30,1,35,1,135,1,112,1,27,1,22,1,180,255,164,255,113,255,212,255,49,0,0,0,122,0,41,255,46,255,4,0, +18,1,17,0,249,0,249,0,6,0,213,254,49,0,190,0,232,255,196,254,8,255,231,255,27,0,254,255,42,0,28,0, +250,255,23,0,9,0,189,255,231,254,220,255,5,0,34,0,37,0,248,255,210,255,216,255,16,0,26,0,252,255,245,255, +32,1,95,0,229,255,29,0,238,255,224,0,12,255,204,253,223,255,235,255,28,0,195,0,207,254,16,0,60,1,27,1, +250,255,250,0,248,0,30,1,228,0,234,255,47,0,249,255,32,0,36,255,42,255,247,254,2,255,65,0,58,0,228,255, +178,254,8,255,197,254,4,0,39,0,204,255,208,254,254,255,225,253,221,254,25,255,235,254,27,0,17,255,251,254,255,255, +7,0,36,0,213,255,238,255,227,255,219,254,40,0,48,0,30,0,1,0,248,255,21,0,170,255,237,0,233,0,71,0, +225,255,219,255,30,0,1,255,240,255,31,0,237,255,46,0,227,255,201,255,194,255,240,255,39,0,216,254,16,0,53,255, +251,254,19,0,37,0,4,0,239,255,205,254,24,0,69,0,0,0,239,255,9,0,5,0,36,0,5,0,16,0,6,0, +26,0,222,255,20,0,229,255,15,0,31,0,224,255,4,0,22,0,11,0,1,0,224,255,29,0,215,255,254,255,243,255, +254,255,229,255,11,0,254,255,240,255,18,1,36,0,248,255,27,0,13,0,224,0,18,0,198,255,17,0,249,255,240,255, +245,255,4,0,36,0,255,255,21,0,248,255,2,0,0,0,3,0,212,255,255,255,58,0,32,0,7,255,213,255,240,255, +216,255,14,0,246,255,8,1,246,255,8,0,5,0,20,0,16,0,12,0,207,255,223,255,13,0,3,0,237,255,63,0, +24,0,17,0,7,0,255,255,251,255,221,255,10,0,214,255,245,255,241,255,52,0,251,0,2,0,60,255,247,254,34,254, +247,3,43,255,46,255,11,255,39,4,246,0,221,255,233,255,38,0,252,255,236,254,11,0,37,0,225,0,32,0,22,0, +39,0,243,255,209,255,250,255,254,255,20,0,217,255,255,255,7,0,31,0,247,255,217,255,1,0,235,0,1,0,46,0, +250,255,49,0,248,0,13,0,7,1,243,255,8,0,12,1,29,0,210,255,1,0,14,0,15,255,27,0,255,255,28,0, +11,0,250,255,17,0,30,0,0,0,237,0,250,0,23,0,243,255,227,255,213,255,10,0,248,255,233,254,31,0,58,0, +245,255,24,255,210,255,242,255,25,255,230,255,7,0,13,255,37,1,239,0,240,255,0,1,233,255,32,0,7,1,216,255, +254,255,29,0,239,255,249,254,22,0,18,0,11,0,225,255,60,0,239,255,238,0,246,255,252,254,27,0,0,0,9,0, +18,0,212,255,23,0,201,255,25,0,23,0,241,255,19,0,241,255,245,255,251,255,28,0,16,0,214,255,16,255,6,0, +10,255,19,0,249,255,233,255,38,0,230,255,255,255,250,255,7,0,0,0,243,255,240,255,29,1,255,255,234,254,11,0, +235,255,21,0,1,0,21,0,228,255,6,255,15,0,243,255,48,1,230,255,246,255,251,255,254,255,27,255,209,255,35,0, +17,0,9,0,219,255,251,255,23,0,244,254,9,0,11,255,42,0,239,255,235,255,245,255,221,255,15,0,41,0,0,0, +246,255,3,0,252,255,17,255,199,255,9,0,1,0,238,255,20,0,232,255,8,0,26,0,19,0,239,255,244,255,3,0, +252,255,15,0,255,255,10,0,251,255,12,0,12,0,245,255,253,255,29,0,220,255,15,0,8,0,253,255,4,0,4,0, +250,255,240,255,32,0,45,0,237,255,251,255,247,255,31,0,199,255,234,255,255,255,5,0,7,0,46,0,220,255,14,0, +16,255,18,0,250,255,250,255,16,0,244,255,243,255,1,0,0,0,19,0,246,255,35,0,255,255,225,255,252,255,21,0, +7,0,209,255,32,255,11,0,19,0,38,0,152,0,232,255,237,255,240,255,32,0,10,0,36,0,27,0,46,0,8,0, +30,0,176,255,9,0,253,255,11,0,1,0,184,255,213,255,229,255,245,0,31,0,63,0,34,0,66,0,13,0,222,255, +64,0,240,255,217,255,208,255,208,255,194,255,205,255,237,255,234,255,38,0,129,0,68,0,57,0,25,0,206,255,242,255, +222,255,239,255,10,0,223,255,192,255,7,0,68,0,25,0,198,255,223,255,12,0,239,255,24,0,13,0,6,0,65,0, +28,0,227,255,254,255,165,255,160,255,164,255,174,255,196,255,67,0,68,0,86,0,65,0,61,0,19,0,33,0,201,255, +31,0,214,255,153,255,236,255,138,255,192,255,207,255,32,0,93,0,171,0,250,255,254,255,251,255,62,0,66,0,252,255, +243,255,171,255,179,255,170,255,230,255,168,255,35,0,21,0,110,0,112,0,54,0,165,255,237,255,45,0,224,255,214,255, +18,0,198,255,13,0,52,0,246,255,164,255,197,255,30,0,85,1,117,0,10,0,8,0,13,0,184,255,191,255,182,255, +204,255,232,255,198,255,37,0,26,0,62,0,205,0,58,0,232,255,181,255,203,255,214,255,206,0,28,0,161,255,225,255, +59,0,40,0,128,0,58,0,243,255,184,255,126,255,225,255,88,0,19,0,230,255,218,255,211,255,24,1,220,0,237,255, +22,0,31,255,79,255,9,255,39,1,40,1,1,0,13,254,223,253,229,255,46,0,42,2,5,2,254,1,5,2,204,0, +1,1,6,1,239,0,244,255,239,0,51,0,7,0,33,0,11,255,191,254,21,255,3,254,39,253,14,250,226,253,39,1, +10,2,203,2,207,4,245,3,201,1,202,255,48,254,61,254,82,254,87,252,23,254,3,0,243,1,204,0,146,1,6,2, +231,1,210,0,53,0,106,254,247,252,193,252,218,254,3,0,37,2,186,3,190,1,43,2,8,3,9,255,14,255,92,253, +17,251,36,252,220,253,237,255,221,1,211,1,222,2,161,2,242,1,22,1,63,0,25,255,23,254,41,254,216,253,247,254, +172,255,8,1,56,1,215,1,39,1,247,0,243,255,65,255,13,254,244,253,24,254,239,253,217,254,12,1,246,2,178,255, +203,254,69,3,5,2,241,253,79,255,42,255,51,253,34,254,237,1,230,0,226,254,172,0,236,4,41,2,62,255,242,254, +57,0,218,254,61,254,233,252,220,255,33,0,51,1,203,0,203,0,27,2,203,255,176,255,241,254,57,254,84,254,233,254, +49,255,11,255,10,0,198,0,204,0,184,0,0,1,33,1,44,0,15,255,105,255,36,254,206,254,230,254,190,255,228,0, +237,1,177,0,4,1,29,1,13,0,250,254,34,255,5,255,233,254,247,255,66,0,23,1,20,1,249,1,191,1,221,0, +242,255,227,255,6,255,235,254,14,255,27,255,252,255,235,255,22,1,33,1,204,0,7,1,223,255,1,255,28,254,50,255, +248,253,39,255,49,255,250,255,186,1,227,255,234,0,186,255,206,255,42,1,23,255,16,255,32,255,29,255,5,255,20,0, +239,255,29,1,4,1,222,0,225,0,225,255,245,255,1,0,25,255,7,255,253,254,253,255,252,255,216,255,232,0,243,0, +18,1,30,0,235,255,13,255,19,255,11,255,8,255,229,255,27,0,219,255,22,1,249,0,217,0,55,0,252,255,20,0, +14,255,237,253,3,254,240,255,230,255,17,0,231,0,242,0,6,2,240,0,31,0,23,0,1,0,15,0,16,0,250,254, +253,255,193,255,217,255,14,1,26,0,241,0,26,0,6,1,249,255,6,0,12,0,11,0,17,255,49,255,247,255,232,255, +209,0,217,0,219,255,0,0,43,0,2,0,222,255,52,0,62,255,39,255,15,0,22,0,232,255,249,0,13,0,222,255, +236,255,229,255,19,0,244,255,18,0,9,255,245,255,29,0,41,0,251,255,230,255,5,0,245,255,23,0,254,255,231,255, +250,254,39,255,1,255,240,254,233,254,243,255,2,0,231,1,248,255,55,0,38,1,6,0,52,0,13,0,29,255,238,254, +203,254,227,255,211,255,7,1,205,0,31,1,24,1,7,0,3,0,18,0,252,255,26,255,205,254,250,254,16,0,8,0, +244,255,67,1,30,1,228,0,217,0,3,0,240,255,254,255,11,0,253,255,246,254,247,255,22,0,245,0,2,1,251,255, +252,255,17,1,19,0,15,0,31,255,245,255,253,254,251,255,25,255,8,0,221,255,221,255,0,0,4,0,5,0,3,0, +255,255,22,0,32,0,251,255,47,0,250,255,252,255,216,255,217,255,241,255,229,255,248,255,15,0,46,0,53,0,25,255, +24,0,235,255,238,255,40,0,235,255,204,255,223,255,253,255,222,255,16,0,8,0,244,255,254,255,10,0,16,0,42,0, +22,0,36,0,227,255,240,255,4,0,232,255,3,0,246,255,226,255,253,255,243,255,230,255,3,0,43,0,12,0,17,0, +29,0,5,1,252,255,242,255,11,0,226,255,17,0,0,0,252,254,0,0,251,255,246,255,255,255,231,255,10,0,22,1, +17,0,4,0,37,0,12,0,229,255,232,254,238,255,245,255,7,0,13,0,242,0,21,0,242,255,242,255,249,255,5,0, +28,0,12,0,11,255,8,0,247,255,6,0,21,0,242,255,236,255,236,255,226,255,247,255,15,0,5,0,1,0,1,0, +19,0,25,0,7,0,16,0,6,0,233,255,6,0,3,0,236,255,245,255,8,0,23,0,13,0,244,255,12,0,237,0, +249,255,0,0,13,0,255,0,1,0,241,0,18,0,6,0,253,254,246,254,251,255,9,0,251,255,238,255,9,0,26,0, +239,255,5,0,5,0,12,0,4,0,244,255,1,0,251,255,14,0,242,255,8,0,253,255,7,0,3,0,251,255,0,0, +250,255,9,0,10,0,238,255,11,0,21,0,0,0,249,255,7,0,254,255,3,0,236,255,2,0,250,255,10,0,250,255, +251,255,4,0,233,255,4,0,22,0,2,0,255,255,19,0,251,255,4,0,247,255,249,255,5,0,3,255,7,0,245,255, +5,0,252,255,7,0,8,0,237,255,13,0,250,255,242,255,6,0,243,255,16,0,5,0,246,255,252,255,255,255,0,0, +253,255,13,0,248,255,244,255,250,255,1,0,6,0,16,0,241,255,1,0,8,0,241,255,254,255,8,0,248,255,11,0, +253,255,0,0,254,255,255,255,234,255,15,0,12,0,6,0,250,255,251,255,11,0,239,255,4,0,3,0,242,255,251,255, +3,0,5,0,2,0,0,0,8,0,236,255,3,0,16,0,237,255,242,255,5,0,255,255,246,255,253,255,5,0,9,0, +246,255,12,1,253,255,240,255,14,0,19,0,5,0,238,255,250,255,11,0,3,0,238,255,2,0,6,0,250,255,7,0, +250,255,6,0,1,0,3,0,22,0,11,0,14,0,9,0,249,255,242,255,246,255,236,255,246,255,9,0,15,0,242,255, +253,255,3,0,8,0,10,0,4,0,10,0,252,255,243,255,239,255,3,0,1,0,19,0,247,255,245,255,253,255,4,0, +2,0,0,0,248,255,247,255,1,0,232,255,0,0,253,255,13,0,243,255,17,0,243,255,1,0,14,0,244,255,239,255, +255,255,19,0,251,255,241,255,13,0,237,255,245,255,1,0,254,255,15,0,244,255,234,255,17,0,18,0,227,255,9,0, +10,0,220,255,0,0,18,0,1,0,234,255,0,0,7,0,254,255,12,0,6,0,237,255,243,255,6,0,24,0,240,255, +231,255,247,255,7,0,14,0,240,255,248,255,5,0,254,255,14,0,240,255,251,255,17,0,249,255,247,255,10,0,238,255, +249,255,15,0,248,255,240,255,17,0,238,255,249,255,14,0,242,255,2,0,12,0,4,0,255,255,244,255,12,0,246,255, +240,255,8,0,253,255,242,255,28,0,254,255,255,255,2,0,246,255,255,255,248,255,19,0,13,0,231,255,250,255,38,0, +227,255,255,255,253,255,1,0,18,0,245,255,0,0,21,0,226,255,241,255,30,0,10,0,7,0,234,255,13,0,10,0, +236,255,1,0,0,0,7,0,17,0,0,0,236,255,248,255,3,0,19,0,4,0,6,0,2,0,232,255,25,0,250,255, +3,0,6,0,225,255,248,255,43,0,252,255,250,255,1,0,247,255,247,255,7,0,16,0,242,255,33,0,222,255,6,0, +9,0,5,0,7,0,12,0,0,0,235,255,1,0,9,0,4,0,252,255,21,0,4,0,237,255,6,0,1,0,255,255, +0,0,255,255,0,0,244,255,10,0,3,0,248,255,250,255,229,255,34,0,8,0,246,255,237,255,249,255,4,0,22,0, +249,255,246,255,253,255,22,0,242,255,242,255,1,0,247,255,7,1,255,255,241,255,13,0,251,255,247,0,8,0,255,254, +249,254,11,1,14,1,247,255,236,254,26,0,253,0,8,0,234,253,6,0,35,1,226,255,8,255,2,255,237,0,12,1, +251,255,17,255,229,255,4,1,27,0,246,254,251,255,252,255,15,0,237,255,248,255,10,0,4,1,250,255,3,255,9,0, +253,255,253,255,252,255,1,0,255,255,253,255,10,0,241,255,254,255,1,0,4,0,244,255,1,0,250,255,9,0,247,254, +247,255,250,255,11,0,7,0,238,255,245,255,10,0,18,0,242,255,223,255,16,0,10,0,255,255,242,255,0,0,16,0, +239,255,5,0,16,0,4,0,238,255,249,255,1,0,6,0,27,0,236,255,0,0,18,0,246,255,252,255,2,0,252,255, +236,255,18,0,12,0,9,0,245,255,7,0,3,0,240,255,243,255,6,0,4,0,246,255,8,0,5,0,15,0,238,255, +254,255,3,0,249,255,249,255,16,0,252,255,241,255,18,0,4,0,255,255,250,255,245,255,2,0,10,0,4,0,246,255, +10,0,5,0,251,255,251,255,6,0,9,0,236,255,254,255,7,0,5,0,0,0,245,255,254,255,9,0,0,0,248,255, +1,0,7,0,253,255,1,0,247,255,6,0,253,255,1,0,0,0,1,0,251,255,4,0,253,255,254,255,0,0,3,0, +3,0,2,0,253,255,255,255,4,0,0,0,252,255,252,255,1,0,0,0,253,255,4,0,0,0,253,255,1,0,255,255, +255,255,0,0,255,255,0,0,251,255,3,0,3,0,253,255,255,255,0,0,3,0,253,255,1,0,4,0,255,255,251,255, +0,0,1,0,3,0,254,255,4,0,251,255,255,255,3,0,252,255,1,0,248,255,1,0,2,0,254,255,1,0,0,0, +254,255,0,0,255,255,254,255,1,0,254,255,255,255,0,0,253,255,255,255,1,0,251,255,254,255,3,0,0,0,254,255, +249,255,254,255,2,0,253,255,252,255,0,0,0,0,254,255,250,255,1,0,254,255,0,0,1,0,249,255,253,255,250,255, +0,0,1,0,254,255,255,255,253,255,246,255,1,0,255,255,1,0,250,255,250,255,253,255,1,0,0,0,251,255,0,0, +252,255,251,255,1,0,0,0,253,255,255,255,255,255,3,0,253,255,251,255,0,0,3,0,252,255,1,0,255,255,0,0, +253,255,1,0,255,255,2,0,4,0,252,255,0,0,3,0,1,0,254,255,1,0,255,255,2,0,3,0,1,0,2,0, +254,255,253,255,4,0,0,0,255,255,5,0,3,0,1,0,253,255,3,0,254,255,1,0,4,0,253,255,1,0,6,0, +3,0,255,255,254,255,2,0,255,255,1,0,2,0,252,255,254,255,7,0,1,0,254,255,1,0,2,0,255,255,254,255, +1,0,0,0,254,255,3,0,0,0,0,0,2,0,1,0,252,255,4,0,0,0,255,255,0,0,3,0,255,255,1,0, +254,255,0,0,3,0,3,0,253,255,255,255,5,0,1,0,251,255,6,0,1,0,255,255,1,0,3,0,255,255,255,255, +0,0,1,0,2,0,254,255,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,254,255,2,0,1,0,0,0, +255,255,255,255,2,0,0,0,255,255,0,0,4,0,252,255,1,0,3,0,255,255,254,255,2,0,2,0,0,0,255,255, +1,0,255,255,2,0,0,0,255,255,0,0,2,0,254,255,0,0,1,0,0,0,0,0,1,0,255,255,0,0,1,0, +255,255,0,0,1,0,1,0,255,255,0,0,3,0,255,255,254,255,1,0,0,0,0,0,1,0,255,255,0,0,1,0, +2,0,0,0,255,255,1,0,0,0,0,0,1,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/stone1.pcm b/src/client/sound/data/stone1.pcm new file mode 100755 index 0000000..c3f9cfe --- /dev/null +++ b/src/client/sound/data/stone1.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_stone1[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,138,255,139,255,130,255,111,255,99,255,101,255,109,255,116,255, +128,255,151,255,172,255,177,255,159,255,126,255,95,255,88,255,105,255,130,255,149,255,165,255,188,255,212,255,233,255,251,255, +10,0,21,0,31,0,42,0,47,0,40,0,36,0,55,0,95,0,140,0,171,0,167,0,123,0,66,0,41,0,57,0, +80,0,81,0,67,0,61,0,85,0,146,0,239,0,72,1,108,1,103,1,131,1,45,2,234,3,228,6,119,10,176,13, +2,16,89,17,6,18,184,18,110,20,193,23,17,28,248,31,161,34,25,36,164,36,148,36,113,36,146,36,194,36,175,36, +37,36,15,35,196,33,178,32,185,31,83,30,66,28,213,25,89,23,171,20,2,18,76,16,183,15,53,15,215,13,161,11, +4,9,97,6,33,4,117,2,241,0,1,255,149,252,232,249,66,247,56,245,106,244,200,244,149,245,76,246,232,246,65,247, +26,247,234,246,132,247,32,249,82,251,174,253,249,255,0,2,198,3,137,5,102,7,133,9,71,12,140,15,112,18,20,20, +72,20,116,19,10,18,100,16,19,15,103,14,249,13,27,13,74,11,89,8,131,4,29,0,77,251,67,246,110,241,43,237, +85,233,110,229,59,225,182,220,211,215,180,210,179,205,42,201,98,197,150,194,155,192,207,190,10,189,233,187,158,187,158,187, +201,187,181,188,134,190,93,192,114,193,52,194,138,195,216,197,55,201,122,205,6,210,112,214,156,218,56,222,55,225,91,228, +89,232,210,236,233,240,116,244,196,247,180,250,230,252,167,254,134,0,132,2,78,4,195,5,204,6,61,7,87,7,184,7, +127,8,103,9,117,10,186,11,4,13,29,14,17,15,37,16,111,17,162,18,84,19,88,19,9,19,245,18,52,19,167,19, +79,20,39,21,240,21,36,22,144,21,144,20,63,19,123,17,109,15,60,13,246,10,140,8,183,5,109,2,251,254,91,251, +41,247,104,242,232,237,57,234,189,230,191,226,96,222,7,218,215,213,241,209,155,206,186,203,234,200,81,198,38,196,195,193, +163,190,74,187,132,184,175,182,203,181,123,181,14,181,37,180,41,179,129,178,226,177,37,177,188,176,185,176,162,176,137,176, +254,176,253,177,22,179,107,180,121,182,222,184,189,186,47,188,191,189,75,191,196,192,141,194,169,196,235,198,140,201,216,204, +124,208,169,211,75,214,243,216,144,219,226,221,24,224,8,226,134,227,87,229,28,232,39,235,136,237,129,239,168,241,154,243, +176,244,81,245,86,246,180,247,18,249,205,250,12,253,37,255,184,0,245,1,8,3,25,4,63,5,76,6,246,6,88,7, +2,8,211,8,24,9,81,9,138,10,92,12,205,13,53,15,113,17,78,20,22,23,216,25,197,28,145,31,32,34,160,36, +220,38,138,40,9,42,177,43,218,44,28,45,112,45,121,46,121,47,213,47,4,48,152,48,92,49,197,49,155,49,222,48, +196,47,210,46,34,46,48,45,197,43,80,42,237,40,232,38,29,36,96,33,241,30,99,28,227,25,17,24,255,22,7,22, +170,20,5,19,71,17,147,15,35,14,234,12,182,11,158,10,203,9,31,9,112,8,22,8,109,8,0,9,53,9,77,9, +192,9,128,10,63,11,1,12,228,12,142,13,195,13,225,13,36,14,102,14,135,14,135,14,143,14,188,14,245,14,47,15, +121,15,212,15,63,16,144,16,142,16,105,16,94,16,72,16,30,16,254,15,207,15,134,15,68,15,58,15,134,15,239,15, +55,16,143,16,245,16,20,17,241,16,202,16,190,16,243,16,136,17,87,18,245,18,61,19,151,19,42,20,147,20,205,20, +101,21,122,22,112,23,2,24,170,24,151,25,111,26,24,27,225,27,231,28,208,29,116,30,8,31,74,31,239,30,112,30, +59,30,58,30,94,30,153,30,153,30,252,29,251,28,66,28,169,27,184,26,212,25,85,25,232,24,61,24,107,23,190,22, +68,22,211,21,126,21,67,21,226,20,78,20,164,19,15,19,182,18,153,18,128,18,8,18,42,17,90,16,188,15,249,14, +220,13,140,12,96,11,109,10,130,9,159,8,174,7,138,6,112,5,141,4,160,3,143,2,152,1,199,0,243,255,37,255, +116,254,182,253,192,252,185,251,226,250,100,250,29,250,182,249,34,249,177,248,137,248,107,248,14,248,120,247,254,246,228,246, +250,246,25,247,105,247,179,247,137,247,19,247,172,246,102,246,30,246,197,245,143,245,152,245,140,245,77,245,20,245,214,244, +116,244,41,244,39,244,56,244,28,244,235,243,226,243,16,244,41,244,238,243,172,243,177,243,222,243,48,244,190,244,102,245, +236,245,63,246,134,246,244,246,141,247,53,248,153,248,144,248,131,248,212,248,68,249,100,249,76,249,130,249,255,249,66,250, +82,250,140,250,234,250,53,251,78,251,75,251,56,251,235,250,127,250,85,250,111,250,120,250,81,250,16,250,182,249,83,249, +14,249,211,248,126,248,55,248,45,248,67,248,13,248,82,247,125,246,219,245,39,245,80,244,153,243,19,243,156,242,32,242, +173,241,62,241,212,240,150,240,127,240,100,240,68,240,38,240,17,240,254,239,222,239,225,239,25,240,75,240,89,240,40,240, +187,239,89,239,20,239,211,238,170,238,142,238,76,238,207,237,59,237,205,236,143,236,124,236,153,236,198,236,223,236,230,236, +254,236,95,237,10,238,205,238,150,239,92,240,0,241,120,241,223,241,81,242,217,242,116,243,26,244,187,244,86,245,241,245, +108,246,191,246,28,247,139,247,208,247,247,247,102,248,41,249,206,249,39,250,124,250,222,250,245,250,210,250,246,250,82,251, +107,251,79,251,104,251,177,251,176,251,80,251,23,251,39,251,14,251,193,250,153,250,154,250,152,250,164,250,229,250,56,251, +104,251,153,251,249,251,126,252,248,252,76,253,154,253,244,253,72,254,151,254,226,254,59,255,140,255,150,255,164,255,13,0, +101,0,111,0,107,0,145,0,236,0,40,1,24,1,32,1,98,1,164,1,195,1,185,1,173,1,164,1,113,1,79,1, +131,1,222,1,40,2,107,2,176,2,200,2,144,2,70,2,37,2,29,2,16,2,4,2,36,2,109,2,156,2,179,2, +248,2,115,3,223,3,6,4,10,4,35,4,76,4,122,4,178,4,212,4,203,4,195,4,237,4,35,5,1,5,149,4, +87,4,97,4,97,4,50,4,16,4,29,4,35,4,253,3,205,3,158,3,95,3,24,3,226,2,170,2,112,2,119,2, +194,2,234,2,219,2,227,2,33,3,92,3,120,3,159,3,227,3,32,4,87,4,149,4,176,4,146,4,135,4,212,4, +46,5,65,5,63,5,77,5,69,5,55,5,96,5,192,5,33,6,132,6,28,7,192,7,32,8,97,8,195,8,27,9, +38,9,245,8,197,8,138,8,38,8,199,7,140,7,114,7,90,7,6,7,130,6,15,6,185,5,117,5,60,5,10,5, +246,4,239,4,212,4,162,4,70,4,199,3,96,3,37,3,235,2,168,2,104,2,28,2,193,1,98,1,214,0,21,0, +110,255,26,255,12,255,2,255,223,254,214,254,203,254,132,254,62,254,29,254,3,254,234,253,226,253,3,254,48,254,41,254, +16,254,13,254,252,253,233,253,248,253,43,254,99,254,106,254,90,254,126,254,201,254,1,255,21,255,24,255,36,255,54,255, +79,255,130,255,233,255,119,0,217,0,255,0,59,1,136,1,182,1,228,1,43,2,105,2,90,2,247,1,173,1,196,1, +14,2,78,2,82,2,25,2,243,1,248,1,237,1,214,1,4,2,122,2,202,2,196,2,175,2,193,2,214,2,212,2, +225,2,13,3,46,3,49,3,43,3,36,3,43,3,100,3,214,3,82,4,167,4,234,4,88,5,219,5,30,6,14,6, +228,5,208,5,241,5,54,6,83,6,75,6,90,6,115,6,99,6,15,6,151,5,89,5,86,5,64,5,31,5,23,5, +23,5,247,4,188,4,187,4,243,4,236,4,165,4,131,4,145,4,140,4,77,4,20,4,17,4,1,4,207,3,172,3, +167,3,182,3,159,3,69,3,246,2,204,2,166,2,144,2,145,2,149,2,127,2,82,2,54,2,16,2,186,1,94,1, +26,1,214,0,134,0,53,0,240,255,167,255,73,255,224,254,123,254,54,254,10,254,210,253,167,253,180,253,212,253,209,253, +160,253,130,253,198,253,71,254,139,254,98,254,30,254,6,254,254,253,251,253,25,254,48,254,19,254,206,253,127,253,49,253, +186,252,22,252,133,251,30,251,218,250,177,250,115,250,20,250,211,249,189,249,144,249,44,249,183,248,96,248,57,248,29,248, +228,247,158,247,95,247,25,247,221,246,167,246,82,246,228,245,127,245,57,245,40,245,45,245,12,245,195,244,124,244,71,244, +12,244,215,243,230,243,25,244,45,244,58,244,92,244,98,244,51,244,6,244,23,244,90,244,160,244,230,244,53,245,133,245, +204,245,18,246,100,246,199,246,49,247,137,247,188,247,228,247,25,248,58,248,38,248,255,247,253,247,36,248,84,248,132,248, +173,248,168,248,97,248,6,248,221,247,206,247,155,247,105,247,106,247,129,247,129,247,106,247,94,247,94,247,78,247,78,247, +111,247,135,247,149,247,176,247,225,247,46,248,135,248,238,248,91,249,138,249,126,249,136,249,183,249,243,249,64,250,164,250, +253,250,29,251,41,251,94,251,195,251,73,252,168,252,190,252,224,252,45,253,102,253,143,253,208,253,39,254,123,254,159,254, +146,254,131,254,138,254,154,254,180,254,220,254,233,254,176,254,101,254,66,254,51,254,33,254,23,254,36,254,19,254,172,253, +43,253,211,252,148,252,103,252,52,252,211,251,92,251,241,250,152,250,78,250,252,249,186,249,179,249,195,249,184,249,144,249, +89,249,64,249,58,249,0,249,169,248,142,248,162,248,181,248,197,248,216,248,233,248,247,248,24,249,89,249,144,249,169,249, +204,249,252,249,11,250,239,249,227,249,24,250,64,250,41,250,25,250,25,250,0,250,245,249,20,250,79,250,146,250,197,250, +233,250,232,250,175,250,116,250,76,250,37,250,22,250,11,250,247,249,11,250,52,250,67,250,58,250,36,250,5,250,215,249, +194,249,241,249,36,250,25,250,230,249,208,249,12,250,91,250,107,250,96,250,100,250,104,250,116,250,146,250,217,250,64,251, +152,251,241,251,76,252,119,252,136,252,181,252,252,252,84,253,175,253,253,253,54,254,94,254,137,254,201,254,49,255,155,255, +191,255,202,255,3,0,59,0,98,0,162,0,234,0,34,1,66,1,82,1,105,1,133,1,163,1,215,1,13,2,48,2, +69,2,76,2,91,2,127,2,142,2,134,2,133,2,126,2,101,2,58,2,9,2,3,2,31,2,13,2,187,1,97,1, +36,1,254,0,212,0,169,0,156,0,186,0,252,0,36,1,244,0,153,0,91,0,54,0,25,0,26,0,62,0,90,0, +83,0,85,0,92,0,63,0,29,0,22,0,28,0,15,0,210,255,162,255,182,255,197,255,170,255,141,255,120,255,120,255, +138,255,139,255,143,255,162,255,166,255,164,255,164,255,135,255,74,255,31,255,45,255,82,255,102,255,111,255,133,255,172,255, +198,255,207,255,226,255,229,255,211,255,218,255,234,255,217,255,160,255,88,255,64,255,84,255,77,255,51,255,53,255,70,255, +77,255,69,255,72,255,89,255,89,255,106,255,195,255,40,0,52,0,3,0,246,255,16,0,24,0,7,0,249,255,8,0, +54,0,112,0,167,0,204,0,209,0,190,0,171,0,160,0,156,0,169,0,225,0,57,1,149,1,242,1,66,2,92,2, +74,2,68,2,92,2,105,2,109,2,143,2,186,2,201,2,189,2,146,2,88,2,40,2,253,1,199,1,125,1,53,1, +18,1,3,1,252,0,8,1,20,1,31,1,41,1,29,1,11,1,22,1,58,1,99,1,130,1,166,1,217,1,2,2, +17,2,243,1,181,1,157,1,160,1,122,1,84,1,93,1,112,1,125,1,133,1,126,1,129,1,150,1,159,1,178,1, +215,1,213,1,187,1,195,1,213,1,202,1,176,1,181,1,230,1,27,2,74,2,139,2,202,2,237,2,6,3,38,3, +71,3,78,3,60,3,42,3,15,3,227,2,209,2,237,2,10,3,16,3,38,3,72,3,56,3,2,3,235,2,0,3, +13,3,241,2,210,2,210,2,192,2,136,2,90,2,59,2,16,2,224,1,206,1,225,1,222,1,160,1,70,1,249,0, +236,0,24,1,39,1,43,1,106,1,204,1,32,2,81,2,88,2,61,2,37,2,69,2,140,2,168,2,137,2,122,2, +188,2,45,3,117,3,147,3,182,3,245,3,111,4,252,4,57,5,61,5,98,5,171,5,185,5,105,5,32,5,48,5, +117,5,168,5,174,5,164,5,159,5,131,5,120,5,181,5,252,5,20,6,249,5,185,5,132,5,95,5,66,5,87,5, +145,5,182,5,170,5,94,5,0,5,181,4,99,4,25,4,244,3,197,3,115,3,38,3,225,2,133,2,38,2,13,2, +68,2,128,2,119,2,46,2,0,2,7,2,242,1,185,1,139,1,95,1,54,1,24,1,239,0,194,0,155,0,123,0, +114,0,107,0,51,0,216,255,139,255,94,255,65,255,49,255,72,255,146,255,0,0,121,0,224,0,41,1,99,1,150,1, +190,1,239,1,39,2,81,2,117,2,156,2,162,2,117,2,58,2,13,2,229,1,194,1,188,1,217,1,0,2,28,2, +28,2,7,2,240,1,188,1,105,1,36,1,219,0,133,0,83,0,55,0,0,0,170,255,68,255,226,254,147,254,80,254, +16,254,202,253,162,253,167,253,166,253,147,253,137,253,135,253,164,253,240,253,76,254,154,254,198,254,237,254,72,255,182,255, +245,255,25,0,84,0,186,0,53,1,164,1,238,1,20,2,68,2,147,2,195,2,197,2,217,2,20,3,81,3,106,3, +84,3,58,3,51,3,15,3,210,2,174,2,155,2,108,2,17,2,170,1,119,1,110,1,81,1,43,1,10,1,218,0, +181,0,168,0,164,0,157,0,115,0,64,0,68,0,102,0,105,0,67,0,25,0,36,0,85,0,124,0,168,0,219,0, +251,0,25,1,75,1,120,1,133,1,131,1,143,1,181,1,237,1,9,2,248,1,250,1,26,2,41,2,37,2,15,2, +224,1,172,1,126,1,105,1,81,1,243,0,117,0,29,0,211,255,111,255,251,254,176,254,155,254,91,254,231,253,166,253, +155,253,122,253,42,253,202,252,154,252,146,252,99,252,28,252,16,252,37,252,47,252,74,252,127,252,171,252,189,252,191,252, +218,252,27,253,71,253,63,253,47,253,58,253,80,253,66,253,29,253,29,253,29,253,235,252,206,252,242,252,30,253,39,253, +15,253,7,253,49,253,101,253,127,253,148,253,184,253,225,253,3,254,18,254,24,254,49,254,93,254,119,254,123,254,133,254, +161,254,197,254,222,254,244,254,24,255,52,255,65,255,105,255,167,255,218,255,5,0,30,0,28,0,9,0,252,255,6,0, +31,0,41,0,40,0,44,0,40,0,19,0,4,0,18,0,53,0,85,0,103,0,105,0,104,0,108,0,93,0,69,0, +75,0,100,0,103,0,96,0,103,0,124,0,139,0,140,0,151,0,180,0,195,0,181,0,158,0,156,0,178,0,181,0, +159,0,143,0,114,0,59,0,2,0,204,255,155,255,133,255,163,255,221,255,245,255,227,255,190,255,125,255,56,255,7,255, +214,254,163,254,109,254,43,254,233,253,160,253,68,253,228,252,138,252,69,252,20,252,229,251,201,251,213,251,1,252,40,252, +50,252,38,252,8,252,248,251,37,252,120,252,215,252,72,253,181,253,10,254,74,254,137,254,226,254,56,255,124,255,195,255, +234,255,233,255,238,255,241,255,221,255,194,255,209,255,29,0,94,0,101,0,79,0,50,0,45,0,71,0,81,0,84,0, +125,0,180,0,211,0,192,0,139,0,94,0,71,0,64,0,98,0,205,0,83,1,159,1,189,1,208,1,209,1,185,1, +137,1,95,1,84,1,65,1,15,1,219,0,207,0,249,0,19,1,235,0,171,0,97,0,7,0,147,255,9,255,165,254, +91,254,247,253,185,253,179,253,143,253,56,253,213,252,120,252,14,252,148,251,69,251,17,251,217,250,222,250,27,251,55,251, +51,251,81,251,162,251,251,251,77,252,165,252,244,252,69,253,196,253,81,254,162,254,182,254,214,254,40,255,102,255,122,255, +133,255,107,255,38,255,1,255,9,255,2,255,211,254,139,254,46,254,204,253,115,253,246,252,97,252,241,251,129,251,244,250, +103,250,196,249,11,249,98,248,213,247,130,247,85,247,29,247,232,246,198,246,181,246,177,246,157,246,153,246,213,246,46,247, +120,247,209,247,105,248,12,249,91,249,131,249,244,249,160,250,50,251,169,251,73,252,59,253,93,254,113,255,59,0,194,0, +59,1,150,1,181,1,210,1,16,2,72,2,116,2,220,2,134,3,27,4,116,4,183,4,246,4,48,5,74,5,18,5, +158,4,19,4,104,3,198,2,93,2,232,1,34,1,70,0,192,255,130,255,37,255,173,254,134,254,171,254,188,254,161,254, +100,254,28,254,243,253,213,253,155,253,89,253,37,253,14,253,25,253,46,253,79,253,102,253,104,253,166,253,17,254,51,254, +29,254,28,254,53,254,79,254,82,254,65,254,34,254,238,253,186,253,135,253,61,253,247,252,194,252,172,252,239,252,80,253, +58,253,217,252,252,252,199,253,165,254,100,255,56,0,12,1,205,1,124,2,210,2,163,2,99,2,156,2,48,3,131,3, +105,3,59,3,33,3,230,2,124,2,255,1,130,1,43,1,13,1,213,0,83,0,184,255,16,255,68,254,113,253,172,252, +216,251,198,250,145,249,165,248,14,248,120,247,205,246,63,246,231,245,149,245,20,245,126,244,15,244,203,243,173,243,214,243, +58,244,147,244,221,244,73,245,234,245,191,246,173,247,154,248,165,249,202,250,203,251,169,252,158,253,192,254,196,255,69,0, +150,0,45,1,159,1,147,1,131,1,204,1,55,2,118,2,151,2,180,2,188,2,197,2,238,2,7,3,250,2,230,2, +185,2,100,2,30,2,11,2,245,1,165,1,97,1,118,1,142,1,84,1,16,1,13,1,47,1,85,1,142,1,211,1, +8,2,53,2,93,2,103,2,95,2,109,2,146,2,192,2,229,2,242,2,250,2,20,3,49,3,55,3,43,3,35,3, +29,3,18,3,26,3,39,3,11,3,239,2,24,3,92,3,132,3,138,3,139,3,173,3,208,3,191,3,157,3,171,3, +5,4,130,4,223,4,37,5,94,5,106,5,97,5,113,5,136,5,126,5,102,5,134,5,199,5,195,5,150,5,144,5, +158,5,154,5,106,5,36,5,14,5,48,5,91,5,96,5,82,5,116,5,167,5,163,5,152,5,169,5,168,5,146,5, +123,5,108,5,77,5,11,5,229,4,0,5,43,5,64,5,69,5,91,5,152,5,206,5,223,5,227,5,253,5,52,6, +119,6,178,6,218,6,223,6,202,6,190,6,228,6,30,7,5,7,189,6,196,6,213,6,112,6,228,5,189,5,201,5, +106,5,206,4,156,4,150,4,57,4,228,3,255,3,35,4,243,3,201,3,230,3,226,3,165,3,157,3,198,3,188,3, +153,3,178,3,218,3,197,3,210,3,74,4,192,4,10,5,97,5,170,5,227,5,83,6,239,6,95,7,155,7,3,8, +174,8,35,9,46,9,56,9,131,9,205,9,247,9,77,10,210,10,35,11,76,11,156,11,249,11,29,12,10,12,242,11, +248,11,28,12,55,12,38,12,243,11,225,11,255,11,242,11,173,11,135,11,97,11,248,10,158,10,142,10,116,10,41,10, +252,9,32,10,51,10,208,9,88,9,25,9,206,8,120,8,83,8,70,8,57,8,49,8,45,8,23,8,202,7,104,7, +61,7,68,7,82,7,105,7,161,7,228,7,245,7,231,7,0,8,46,8,68,8,84,8,127,8,164,8,162,8,145,8, +136,8,126,8,111,8,103,8,95,8,52,8,233,7,204,7,221,7,206,7,173,7,190,7,238,7,254,7,253,7,41,8, +131,8,209,8,231,8,208,8,193,8,209,8,241,8,13,9,235,8,159,8,155,8,214,8,238,8,203,8,150,8,140,8, +135,8,65,8,254,7,218,7,139,7,43,7,7,7,20,7,9,7,205,6,161,6,147,6,112,6,74,6,37,6,232,5, +186,5,187,5,221,5,217,5,100,5,190,4,99,4,78,4,54,4,15,4,6,4,19,4,9,4,3,4,4,4,194,3, +72,3,236,2,190,2,151,2,115,2,95,2,53,2,229,1,174,1,140,1,34,1,143,0,82,0,81,0,28,0,192,255, +96,255,201,254,17,254,175,253,154,253,55,253,139,252,76,252,115,252,73,252,184,251,45,251,212,250,135,250,63,250,42,250, +46,250,15,250,253,249,7,250,235,249,168,249,100,249,69,249,98,249,171,249,251,249,19,250,234,249,235,249,31,250,21,250, +218,249,224,249,44,250,87,250,56,250,34,250,52,250,18,250,179,249,149,249,207,249,210,249,128,249,101,249,170,249,232,249, +234,249,222,249,254,249,63,250,96,250,63,250,16,250,2,250,240,249,188,249,157,249,153,249,111,249,23,249,212,248,192,248, +161,248,114,248,122,248,143,248,116,248,112,248,133,248,105,248,70,248,103,248,164,248,184,248,197,248,243,248,249,248,186,248, +146,248,164,248,196,248,214,248,247,248,86,249,199,249,14,250,50,250,47,250,26,250,25,250,4,250,223,249,244,249,94,250, +228,250,51,251,64,251,53,251,22,251,223,250,140,250,69,250,69,250,70,250,1,250,193,249,170,249,113,249,236,248,81,248, +244,247,221,247,221,247,220,247,211,247,189,247,153,247,89,247,254,246,172,246,140,246,138,246,119,246,101,246,99,246,72,246, +36,246,3,246,179,245,83,245,47,245,33,245,211,244,108,244,88,244,129,244,129,244,96,244,94,244,117,244,155,244,202,244, +219,244,176,244,110,244,95,244,139,244,161,244,145,244,142,244,143,244,132,244,152,244,198,244,224,244,222,244,206,244,226,244, +19,245,12,245,215,244,224,244,66,245,186,245,14,246,104,246,216,246,16,247,15,247,7,247,233,246,213,246,15,247,124,247, +243,247,119,248,248,248,43,249,246,248,197,248,205,248,165,248,70,248,40,248,82,248,103,248,93,248,92,248,89,248,77,248, +102,248,135,248,109,248,84,248,154,248,17,249,92,249,145,249,222,249,33,250,86,250,148,250,184,250,188,250,208,250,21,251, +123,251,188,251,211,251,11,252,92,252,164,252,253,252,92,253,188,253,59,254,183,254,17,255,83,255,122,255,156,255,223,255, +43,0,67,0,37,0,29,0,47,0,1,0,168,255,150,255,188,255,193,255,152,255,111,255,99,255,108,255,120,255,123,255, +102,255,87,255,100,255,87,255,34,255,254,254,239,254,236,254,27,255,98,255,118,255,89,255,75,255,95,255,125,255,167,255, +245,255,89,0,173,0,225,0,251,0,12,1,59,1,129,1,175,1,213,1,21,2,66,2,52,2,5,2,232,1,2,2, +75,2,133,2,145,2,146,2,196,2,22,3,55,3,44,3,54,3,107,3,174,3,203,3,194,3,199,3,204,3,209,3, +21,4,132,4,225,4,40,5,93,5,174,5,50,6,162,6,220,6,238,6,225,6,214,6,186,6,105,6,22,6,232,5, +196,5,164,5,144,5,138,5,137,5,107,5,72,5,66,5,44,5,250,4,226,4,212,4,145,4,37,4,214,3,174,3, +128,3,106,3,152,3,218,3,8,4,50,4,69,4,49,4,20,4,27,4,71,4,117,4,155,4,184,4,193,4,231,4, +42,5,53,5,29,5,57,5,110,5,131,5,131,5,120,5,89,5,62,5,78,5,118,5,111,5,55,5,11,5,240,4, +194,4,153,4,155,4,167,4,146,4,105,4,85,4,81,4,35,4,217,3,214,3,36,4,107,4,126,4,115,4,119,4, +163,4,220,4,228,4,158,4,69,4,36,4,40,4,14,4,209,3,166,3,162,3,161,3,129,3,73,3,41,3,67,3, +95,3,77,3,42,3,7,3,230,2,185,2,97,2,17,2,3,2,22,2,55,2,79,2,64,2,55,2,65,2,56,2, +45,2,44,2,38,2,44,2,62,2,68,2,69,2,99,2,165,2,211,2,185,2,132,2,140,2,185,2,204,2,235,2, +34,3,48,3,35,3,47,3,43,3,220,2,127,2,133,2,190,2,184,2,163,2,191,2,210,2,206,2,225,2,6,3, +5,3,199,2,152,2,205,2,24,3,12,3,214,2,208,2,239,2,253,2,222,2,151,2,103,2,119,2,152,2,159,2, +139,2,99,2,62,2,61,2,96,2,107,2,47,2,4,2,52,2,84,2,34,2,247,1,10,2,8,2,185,1,155,1, +208,1,179,1,70,1,60,1,117,1,97,1,28,1,253,0,4,1,16,1,22,1,27,1,31,1,22,1,20,1,14,1, +200,0,108,0,103,0,148,0,173,0,169,0,112,0,63,0,99,0,140,0,116,0,62,0,52,0,97,0,98,0,39,0, +22,0,26,0,4,0,247,255,225,255,169,255,117,255,92,255,82,255,64,255,60,255,105,255,147,255,125,255,81,255,67,255, +66,255,70,255,99,255,127,255,138,255,153,255,160,255,140,255,107,255,85,255,94,255,111,255,112,255,109,255,76,255,33,255, +49,255,65,255,11,255,211,254,223,254,14,255,16,255,231,254,225,254,242,254,216,254,167,254,120,254,76,254,63,254,91,254, +100,254,53,254,19,254,47,254,79,254,72,254,49,254,45,254,58,254,76,254,99,254,88,254,31,254,4,254,27,254,52,254, +70,254,80,254,98,254,120,254,107,254,80,254,60,254,34,254,25,254,1,254,178,253,131,253,168,253,199,253,152,253,116,253, +233,253,169,254,193,254,54,254,46,254,19,255,254,255,76,0,112,0,215,0,66,1,93,1,35,1,150,0,199,255,49,255, +24,255,244,254,130,254,56,254,63,254,52,254,235,253,171,253,156,253,132,253,94,253,88,253,94,253,73,253,35,253,12,253, +4,253,221,252,121,252,255,251,169,251,128,251,89,251,58,251,60,251,51,251,29,251,36,251,59,251,62,251,35,251,37,251, +109,251,169,251,190,251,223,251,1,252,50,252,136,252,220,252,41,253,120,253,228,253,89,254,116,254,100,254,169,254,2,255, +16,255,6,255,58,255,156,255,172,255,112,255,99,255,113,255,109,255,130,255,173,255,209,255,212,255,181,255,165,255,162,255, +128,255,82,255,56,255,78,255,114,255,74,255,245,254,223,254,9,255,51,255,61,255,53,255,47,255,32,255,4,255,254,254, +251,254,215,254,193,254,225,254,3,255,252,254,230,254,209,254,158,254,105,254,117,254,137,254,92,254,36,254,22,254,15,254, +240,253,218,253,244,253,254,253,203,253,196,253,8,254,45,254,43,254,74,254,144,254,191,254,162,254,109,254,97,254,95,254, +93,254,113,254,117,254,83,254,80,254,137,254,141,254,51,254,12,254,64,254,65,254,240,253,181,253,185,253,190,253,174,253, +189,253,220,253,209,253,180,253,150,253,99,253,62,253,85,253,146,253,186,253,216,253,6,254,11,254,229,253,222,253,240,253, +246,253,250,253,31,254,106,254,152,254,152,254,179,254,228,254,250,254,255,254,9,255,32,255,73,255,116,255,132,255,136,255, +173,255,228,255,5,0,33,0,77,0,125,0,169,0,203,0,234,0,1,1,6,1,15,1,32,1,38,1,45,1,49,1, +27,1,7,1,24,1,19,1,213,0,173,0,185,0,174,0,119,0,68,0,57,0,70,0,52,0,9,0,247,255,252,255, +2,0,3,0,255,255,243,255,212,255,192,255,185,255,131,255,67,255,66,255,75,255,72,255,80,255,66,255,23,255,234,254, +215,254,236,254,10,255,39,255,80,255,98,255,100,255,126,255,150,255,154,255,174,255,202,255,206,255,202,255,223,255,247,255, +230,255,190,255,183,255,190,255,157,255,124,255,139,255,162,255,163,255,167,255,195,255,204,255,147,255,83,255,81,255,104,255, +113,255,106,255,88,255,93,255,117,255,131,255,136,255,122,255,112,255,134,255,149,255,143,255,147,255,159,255,179,255,191,255, +195,255,221,255,222,255,195,255,220,255,4,0,245,255,226,255,241,255,253,255,223,255,179,255,190,255,223,255,217,255,215,255, +228,255,203,255,165,255,161,255,175,255,176,255,170,255,185,255,223,255,251,255,12,0,24,0,25,0,30,0,41,0,24,0, +237,255,191,255,152,255,142,255,165,255,189,255,186,255,161,255,125,255,84,255,51,255,48,255,77,255,103,255,124,255,162,255, +197,255,208,255,192,255,149,255,110,255,119,255,171,255,214,255,201,255,171,255,202,255,12,0,25,0,244,255,220,255,233,255, +2,0,18,0,44,0,64,0,62,0,103,0,189,0,224,0,194,0,158,0,147,0,164,0,172,0,138,0,106,0,119,0, +160,0,193,0,214,0,236,0,237,0,208,0,186,0,198,0,216,0,206,0,195,0,210,0,201,0,154,0,143,0,141,0, +106,0,111,0,176,0,226,0,216,0,165,0,139,0,143,0,111,0,65,0,66,0,91,0,98,0,84,0,72,0,80,0, +59,0,8,0,11,0,65,0,81,0,58,0,73,0,134,0,153,0,124,0,127,0,150,0,145,0,154,0,196,0,232,0, +241,0,244,0,13,1,28,1,8,1,251,0,13,1,56,1,97,1,80,1,53,1,86,1,113,1,98,1,116,1,175,1, +201,1,172,1,156,1,196,1,220,1,187,1,171,1,188,1,159,1,77,1,37,1,70,1,97,1,93,1,103,1,125,1, +110,1,56,1,8,1,252,0,3,1,253,0,230,0,211,0,206,0,201,0,190,0,171,0,156,0,166,0,193,0,207,0, +197,0,190,0,212,0,237,0,242,0,10,1,45,1,39,1,26,1,44,1,70,1,73,1,48,1,48,1,104,1,133,1, +100,1,84,1,124,1,153,1,118,1,91,1,133,1,155,1,114,1,88,1,98,1,96,1,67,1,26,1,254,0,243,0, +219,0,177,0,152,0,150,0,128,0,90,0,82,0,102,0,113,0,94,0,66,0,56,0,37,0,255,255,234,255,229,255, +225,255,228,255,231,255,234,255,4,0,36,0,30,0,3,0,17,0,53,0,46,0,18,0,19,0,38,0,58,0,70,0, +80,0,80,0,59,0,54,0,78,0,81,0,82,0,88,0,65,0,73,0,138,0,180,0,185,0,187,0,202,0,229,0, +225,0,197,0,194,0,180,0,148,0,146,0,170,0,189,0,184,0,166,0,184,0,216,0,203,0,174,0,174,0,180,0, +173,0,177,0,192,0,189,0,182,0,187,0,201,0,229,0,242,0,227,0,231,0,238,0,215,0,191,0,170,0,162,0, +174,0,155,0,113,0,97,0,91,0,72,0,42,0,13,0,10,0,7,0,245,255,238,255,238,255,235,255,225,255,203,255, +185,255,165,255,131,255,115,255,144,255,175,255,157,255,132,255,139,255,117,255,68,255,60,255,75,255,90,255,116,255,144,255, +159,255,156,255,154,255,156,255,135,255,121,255,136,255,141,255,137,255,122,255,81,255,58,255,69,255,71,255,49,255,29,255, +42,255,65,255,62,255,62,255,69,255,55,255,37,255,32,255,28,255,13,255,0,255,12,255,7,255,242,254,16,255,56,255, +38,255,252,254,243,254,7,255,7,255,240,254,253,254,37,255,43,255,16,255,32,255,107,255,118,255,33,255,22,255,128,255, +170,255,50,255,182,254,220,254,31,255,219,254,152,254,227,254,57,255,15,255,193,254,220,254,14,255,211,254,140,254,176,254, +2,255,25,255,232,254,209,254,254,254,15,255,229,254,202,254,210,254,236,254,9,255,24,255,46,255,79,255,72,255,16,255, +245,254,24,255,39,255,2,255,248,254,25,255,35,255,8,255,249,254,8,255,16,255,4,255,9,255,27,255,26,255,21,255, +29,255,24,255,9,255,18,255,50,255,59,255,37,255,30,255,59,255,70,255,43,255,38,255,50,255,30,255,246,254,225,254, +231,254,231,254,187,254,152,254,173,254,174,254,136,254,131,254,150,254,151,254,144,254,135,254,126,254,126,254,126,254,117,254, +102,254,98,254,114,254,107,254,77,254,101,254,151,254,130,254,88,254,99,254,131,254,146,254,154,254,163,254,167,254,166,254, +183,254,209,254,210,254,211,254,242,254,26,255,60,255,83,255,92,255,86,255,77,255,96,255,142,255,164,255,157,255,160,255, +174,255,180,255,172,255,158,255,156,255,168,255,171,255,170,255,183,255,199,255,203,255,192,255,184,255,192,255,179,255,137,255, +112,255,116,255,135,255,149,255,121,255,93,255,112,255,117,255,77,255,41,255,39,255,65,255,75,255,58,255,52,255,47,255, +35,255,25,255,11,255,8,255,10,255,2,255,3,255,4,255,6,255,39,255,58,255,45,255,49,255,85,255,124,255,129,255, +130,255,162,255,172,255,160,255,190,255,214,255,197,255,192,255,208,255,219,255,219,255,228,255,15,0,37,0,5,0,244,255, +12,0,8,0,209,255,168,255,183,255,211,255,208,255,183,255,160,255,154,255,156,255,139,255,109,255,89,255,84,255,76,255, +49,255,25,255,21,255,20,255,4,255,234,254,221,254,227,254,217,254,191,254,201,254,227,254,206,254,173,254,179,254,189,254, +180,254,177,254,196,254,219,254,211,254,191,254,201,254,225,254,251,254,22,255,29,255,38,255,75,255,98,255,90,255,99,255, +145,255,196,255,218,255,228,255,252,255,21,0,17,0,252,255,253,255,14,0,18,0,24,0,20,0,248,255,243,255,3,0, +3,0,7,0,13,0,3,0,246,255,240,255,249,255,8,0,0,0,234,255,229,255,232,255,224,255,210,255,195,255,183,255, +191,255,211,255,203,255,173,255,150,255,144,255,143,255,130,255,125,255,151,255,164,255,151,255,142,255,125,255,103,255,97,255, +98,255,113,255,140,255,161,255,173,255,173,255,165,255,163,255,165,255,161,255,151,255,141,255,136,255,135,255,143,255,146,255, +130,255,111,255,102,255,97,255,94,255,90,255,92,255,126,255,167,255,158,255,126,255,131,255,126,255,85,255,71,255,85,255, +96,255,100,255,82,255,74,255,78,255,42,255,5,255,11,255,20,255,25,255,33,255,40,255,43,255,26,255,1,255,245,254, +243,254,1,255,11,255,4,255,6,255,9,255,254,254,247,254,245,254,248,254,251,254,249,254,249,254,249,254,243,254,235,254, +228,254,232,254,237,254,245,254,21,255,39,255,15,255,254,254,18,255,42,255,44,255,55,255,103,255,145,255,147,255,150,255, +181,255,206,255,196,255,177,255,189,255,218,255,230,255,225,255,229,255,254,255,24,0,41,0,35,0,255,255,229,255,231,255, +232,255,237,255,239,255,233,255,243,255,253,255,236,255,205,255,183,255,191,255,218,255,220,255,208,255,213,255,214,255,202,255, +197,255,197,255,188,255,184,255,201,255,220,255,223,255,219,255,225,255,239,255,230,255,209,255,211,255,223,255,216,255,202,255, +199,255,200,255,187,255,169,255,165,255,170,255,189,255,202,255,179,255,147,255,130,255,110,255,86,255,74,255,75,255,79,255, +69,255,64,255,80,255,85,255,62,255,50,255,77,255,107,255,98,255,77,255,92,255,122,255,121,255,112,255,126,255,138,255, +132,255,122,255,111,255,112,255,124,255,129,255,144,255,170,255,167,255,145,255,135,255,131,255,125,255,122,255,130,255,146,255, +170,255,193,255,195,255,185,255,186,255,191,255,194,255,193,255,187,255,188,255,194,255,184,255,177,255,200,255,228,255,224,255, +211,255,214,255,209,255,197,255,194,255,198,255,217,255,237,255,236,255,234,255,238,255,236,255,233,255,228,255,224,255,241,255, +3,0,253,255,237,255,236,255,235,255,235,255,255,255,19,0,30,0,49,0,70,0,85,0,82,0,62,0,66,0,81,0, +78,0,90,0,101,0,89,0,87,0,98,0,116,0,130,0,117,0,110,0,123,0,132,0,145,0,150,0,135,0,125,0, +129,0,139,0,140,0,112,0,75,0,65,0,80,0,83,0,51,0,18,0,4,0,247,255,222,255,191,255,175,255,168,255, +145,255,133,255,145,255,151,255,136,255,103,255,85,255,102,255,117,255,116,255,121,255,140,255,177,255,213,255,237,255,0,0, +5,0,3,0,8,0,14,0,24,0,28,0,29,0,38,0,50,0,78,0,104,0,96,0,89,0,95,0,94,0,104,0, +112,0,108,0,114,0,117,0,117,0,118,0,98,0,93,0,123,0,133,0,115,0,109,0,113,0,109,0,97,0,82,0, +78,0,85,0,77,0,55,0,37,0,29,0,28,0,35,0,44,0,53,0,60,0,67,0,80,0,96,0,110,0,101,0, +81,0,96,0,133,0,141,0,128,0,128,0,150,0,178,0,195,0,207,0,217,0,229,0,234,0,215,0,197,0,205,0, +211,0,211,0,225,0,2,1,36,1,38,1,32,1,52,1,61,1,41,1,33,1,43,1,53,1,52,1,32,1,16,1, +23,1,34,1,24,1,1,1,255,0,24,1,38,1,25,1,16,1,20,1,12,1,4,1,5,1,255,0,253,0,13,1, +33,1,57,1,82,1,96,1,102,1,96,1,81,1,74,1,74,1,79,1,94,1,103,1,93,1,81,1,82,1,69,1, +32,1,11,1,16,1,24,1,24,1,20,1,11,1,244,0,220,0,219,0,219,0,206,0,204,0,202,0,200,0,208,0, +199,0,172,0,157,0,160,0,168,0,169,0,154,0,139,0,147,0,166,0,163,0,137,0,125,0,141,0,162,0,150,0, +126,0,139,0,166,0,175,0,175,0,173,0,184,0,201,0,198,0,197,0,215,0,233,0,224,0,200,0,213,0,239,0, +227,0,225,0,243,0,1,1,18,1,20,1,29,1,74,1,89,1,99,1,149,1,172,1,154,1,140,1,154,1,197,1, +204,1,175,1,169,1,166,1,144,1,117,1,95,1,107,1,122,1,106,1,94,1,93,1,90,1,90,1,80,1,70,1, +67,1,49,1,23,1,16,1,11,1,247,0,243,0,15,1,29,1,12,1,255,0,247,0,233,0,226,0,228,0,239,0, +5,1,27,1,35,1,35,1,42,1,53,1,51,1,48,1,68,1,105,1,128,1,119,1,103,1,99,1,100,1,105,1, +111,1,102,1,90,1,99,1,111,1,98,1,85,1,96,1,103,1,96,1,98,1,104,1,88,1,65,1,62,1,63,1, +61,1,66,1,61,1,45,1,37,1,44,1,60,1,56,1,31,1,28,1,39,1,40,1,41,1,33,1,33,1,51,1, +47,1,45,1,55,1,36,1,16,1,15,1,22,1,44,1,39,1,7,1,9,1,20,1,16,1,23,1,33,1,46,1, +61,1,45,1,31,1,46,1,55,1,48,1,51,1,70,1,74,1,56,1,57,1,71,1,54,1,29,1,32,1,49,1, +59,1,50,1,28,1,21,1,22,1,255,0,235,0,246,0,1,1,2,1,14,1,24,1,8,1,231,0,220,0,232,0, +224,0,192,0,168,0,161,0,157,0,153,0,152,0,151,0,146,0,125,0,97,0,91,0,105,0,104,0,99,0,117,0, +131,0,123,0,127,0,145,0,141,0,127,0,134,0,147,0,152,0,149,0,147,0,169,0,189,0,174,0,157,0,155,0, +159,0,182,0,203,0,214,0,233,0,241,0,239,0,243,0,238,0,240,0,253,0,5,1,19,1,21,1,10,1,15,1, +21,1,16,1,5,1,255,0,24,1,45,1,37,1,39,1,41,1,27,1,27,1,22,1,253,0,232,0,226,0,236,0, +234,0,204,0,180,0,181,0,174,0,148,0,129,0,124,0,119,0,117,0,105,0,86,0,84,0,71,0,42,0,36,0, +38,0,29,0,9,0,243,255,248,255,7,0,243,255,215,255,212,255,221,255,211,255,185,255,181,255,189,255,188,255,192,255, +204,255,224,255,251,255,8,0,18,0,31,0,32,0,31,0,33,0,51,0,81,0,85,0,75,0,76,0,78,0,84,0, +74,0,51,0,56,0,67,0,57,0,51,0,57,0,77,0,95,0,92,0,91,0,100,0,96,0,82,0,75,0,78,0, +76,0,67,0,57,0,37,0,25,0,25,0,20,0,21,0,25,0,7,0,244,255,246,255,254,255,249,255,230,255,219,255, +225,255,228,255,222,255,219,255,229,255,232,255,212,255,198,255,190,255,173,255,169,255,171,255,165,255,175,255,191,255,197,255, +217,255,235,255,223,255,223,255,244,255,247,255,244,255,252,255,248,255,250,255,16,0,26,0,33,0,46,0,48,0,60,0, +88,0,103,0,100,0,82,0,77,0,88,0,91,0,96,0,108,0,109,0,113,0,122,0,123,0,121,0,113,0,110,0, +113,0,111,0,100,0,81,0,66,0,69,0,69,0,57,0,37,0,17,0,20,0,20,0,249,255,234,255,233,255,228,255, +234,255,242,255,244,255,240,255,222,255,202,255,193,255,187,255,172,255,157,255,168,255,188,255,180,255,168,255,177,255,198,255, +210,255,209,255,218,255,237,255,233,255,223,255,237,255,251,255,247,255,231,255,229,255,250,255,254,255,235,255,235,255,254,255, +253,255,238,255,237,255,250,255,7,0,9,0,11,0,32,0,50,0,39,0,22,0,20,0,24,0,27,0,26,0,32,0, +55,0,73,0,71,0,55,0,29,0,17,0,21,0,12,0,2,0,9,0,12,0,19,0,32,0,24,0,6,0,3,0, +4,0,3,0,2,0,2,0,13,0,21,0,17,0,19,0,24,0,26,0,37,0,44,0,47,0,65,0,72,0,59,0, +44,0,29,0,20,0,21,0,14,0,8,0,21,0,31,0,33,0,40,0,39,0,26,0,23,0,25,0,25,0,23,0, +254,255,236,255,2,0,21,0,19,0,20,0,13,0,3,0,254,255,241,255,243,255,9,0,17,0,22,0,37,0,42,0, +33,0,13,0,254,255,7,0,17,0,8,0,246,255,235,255,237,255,247,255,11,0,39,0,55,0,54,0,52,0,58,0, +60,0,54,0,54,0,75,0,93,0,92,0,94,0,105,0,108,0,101,0,100,0,108,0,121,0,129,0,119,0,97,0, +83,0,77,0,76,0,83,0,80,0,70,0,77,0,89,0,79,0,73,0,95,0,113,0,113,0,117,0,118,0,101,0, +93,0,100,0,96,0,98,0,110,0,91,0,61,0,63,0,59,0,51,0,71,0,86,0,70,0,45,0,27,0,35,0, +49,0,40,0,32,0,48,0,70,0,74,0,44,0,17,0,36,0,66,0,74,0,75,0,70,0,47,0,24,0,20,0, +18,0,8,0,254,255,250,255,2,0,9,0,248,255,224,255,216,255,229,255,255,255,10,0,2,0,246,255,221,255,204,255, +215,255,224,255,222,255,212,255,206,255,225,255,237,255,223,255,209,255,198,255,194,255,198,255,198,255,203,255,216,255,232,255, +1,0,15,0,13,0,26,0,43,0,50,0,50,0,52,0,66,0,83,0,92,0,93,0,90,0,90,0,95,0,102,0, +122,0,142,0,158,0,178,0,187,0,185,0,179,0,169,0,182,0,206,0,208,0,212,0,224,0,230,0,239,0,241,0, +236,0,241,0,234,0,209,0,189,0,179,0,179,0,188,0,189,0,189,0,191,0,181,0,180,0,185,0,178,0,182,0, +199,0,201,0,198,0,187,0,172,0,186,0,200,0,180,0,157,0,147,0,149,0,163,0,165,0,152,0,136,0,129,0, +143,0,157,0,157,0,162,0,160,0,153,0,156,0,160,0,160,0,146,0,123,0,120,0,132,0,128,0,112,0,106,0, +128,0,156,0,161,0,148,0,137,0,133,0,130,0,131,0,141,0,153,0,166,0,175,0,170,0,162,0,155,0,143,0, +149,0,152,0,143,0,162,0,185,0,189,0,202,0,208,0,196,0,197,0,202,0,197,0,189,0,179,0,171,0,170,0, +169,0,151,0,120,0,105,0,111,0,123,0,128,0,125,0,136,0,145,0,137,0,146,0,159,0,151,0,149,0,157,0, +165,0,173,0,173,0,174,0,179,0,168,0,162,0,167,0,163,0,162,0,164,0,154,0,146,0,148,0,153,0,154,0, +148,0,136,0,125,0,126,0,125,0,124,0,143,0,173,0,184,0,185,0,187,0,185,0,180,0,184,0,199,0,210,0, +213,0,217,0,209,0,196,0,198,0,204,0,203,0,199,0,193,0,188,0,191,0,201,0,204,0,202,0,221,0,253,0, +9,1,5,1,251,0,243,0,250,0,255,0,246,0,238,0,237,0,235,0,224,0,201,0,189,0,196,0,206,0,217,0, +218,0,210,0,220,0,232,0,217,0,211,0,223,0,215,0,199,0,188,0,176,0,177,0,177,0,161,0,165,0,172,0, +164,0,167,0,164,0,147,0,150,0,161,0,162,0,161,0,153,0,144,0,144,0,146,0,142,0,128,0,108,0,102,0, +107,0,99,0,92,0,100,0,94,0,82,0,93,0,100,0,91,0,94,0,101,0,96,0,103,0,110,0,101,0,90,0, +84,0,83,0,90,0,97,0,105,0,110,0,110,0,115,0,117,0,113,0,119,0,125,0,117,0,103,0,98,0,102,0, +105,0,109,0,124,0,136,0,134,0,133,0,130,0,113,0,98,0,99,0,113,0,130,0,135,0,116,0,89,0,78,0, +86,0,95,0,99,0,93,0,78,0,75,0,91,0,99,0,87,0,84,0,101,0,119,0,128,0,128,0,117,0,113,0, +117,0,119,0,126,0,131,0,123,0,122,0,133,0,137,0,142,0,150,0,157,0,172,0,182,0,178,0,172,0,167,0, +170,0,187,0,206,0,218,0,218,0,214,0,223,0,227,0,221,0,221,0,226,0,240,0,252,0,239,0,223,0,223,0, +227,0,236,0,244,0,243,0,245,0,248,0,245,0,238,0,222,0,212,0,220,0,226,0,215,0,206,0,202,0,186,0, +162,0,143,0,127,0,123,0,138,0,146,0,136,0,131,0,138,0,146,0,150,0,154,0,156,0,156,0,158,0,156,0, +140,0,120,0,122,0,129,0,128,0,134,0,142,0,145,0,153,0,152,0,141,0,144,0,145,0,144,0,154,0,153,0, +148,0,152,0,144,0,135,0,130,0,121,0,115,0,103,0,95,0,103,0,94,0,87,0,97,0,90,0,83,0,86,0, +85,0,90,0,84,0,72,0,76,0,65,0,49,0,50,0,46,0,51,0,54,0,36,0,43,0,69,0,74,0,72,0, +72,0,71,0,69,0,57,0,52,0,64,0,73,0,70,0,69,0,80,0,85,0,78,0,85,0,104,0,121,0,131,0, +119,0,104,0,106,0,100,0,88,0,83,0,77,0,77,0,82,0,81,0,77,0,74,0,73,0,73,0,77,0,90,0, +108,0,116,0,107,0,94,0,94,0,99,0,106,0,119,0,119,0,116,0,128,0,128,0,117,0,114,0,118,0,122,0, +122,0,124,0,130,0,123,0,123,0,141,0,146,0,135,0,130,0,127,0,124,0,130,0,133,0,126,0,116,0,113,0, +113,0,106,0,93,0,88,0,81,0,66,0,71,0,79,0,74,0,92,0,112,0,105,0,111,0,134,0,150,0,176,0, +193,0,192,0,189,0,180,0,178,0,186,0,194,0,207,0,203,0,185,0,186,0,191,0,187,0,183,0,182,0,197,0, +210,0,195,0,184,0,181,0,172,0,172,0,175,0,168,0,170,0,175,0,171,0,170,0,170,0,156,0,138,0,129,0, +126,0,130,0,134,0,123,0,112,0,112,0,99,0,87,0,85,0,76,0,71,0,75,0,73,0,69,0,61,0,50,0, +44,0,39,0,30,0,19,0,17,0,41,0,54,0,39,0,31,0,30,0,27,0,28,0,23,0,28,0,40,0,31,0, +28,0,53,0,64,0,57,0,66,0,93,0,108,0,99,0,86,0,90,0,107,0,120,0,125,0,120,0,115,0,115,0, +122,0,128,0,133,0,135,0,124,0,106,0,100,0,110,0,119,0,120,0,129,0,154,0,166,0,168,0,179,0,185,0, +183,0,194,0,207,0,214,0,218,0,221,0,225,0,226,0,225,0,232,0,238,0,245,0,8,1,12,1,249,0,247,0, +11,1,17,1,12,1,14,1,12,1,4,1,10,1,23,1,17,1,248,0,233,0,236,0,235,0,228,0,224,0,222,0, +222,0,223,0,213,0,203,0,201,0,199,0,202,0,201,0,175,0,146,0,128,0,123,0,134,0,144,0,151,0,162,0, +159,0,153,0,157,0,156,0,151,0,145,0,144,0,155,0,156,0,138,0,127,0,125,0,126,0,126,0,121,0,125,0, +139,0,143,0,139,0,142,0,147,0,142,0,125,0,122,0,142,0,154,0,148,0,146,0,153,0,153,0,148,0,151,0, +164,0,171,0,149,0,122,0,128,0,136,0,121,0,117,0,125,0,126,0,124,0,124,0,126,0,131,0,131,0,118,0, +105,0,107,0,118,0,113,0,102,0,98,0,81,0,59,0,60,0,70,0,72,0,66,0,59,0,63,0,71,0,67,0, +64,0,76,0,93,0,101,0,97,0,90,0,98,0,116,0,126,0,131,0,138,0,142,0,142,0,144,0,145,0,145,0, +153,0,175,0,201,0,215,0,215,0,201,0,193,0,205,0,213,0,213,0,226,0,240,0,244,0,244,0,241,0,240,0, +240,0,234,0,230,0,229,0,232,0,241,0,242,0,239,0,244,0,245,0,245,0,248,0,243,0,229,0,217,0,205,0, +194,0,186,0,178,0,171,0,170,0,166,0,157,0,150,0,131,0,115,0,125,0,127,0,117,0,122,0,110,0,80,0, +73,0,82,0,90,0,94,0,90,0,88,0,80,0,62,0,47,0,34,0,30,0,33,0,22,0,12,0,17,0,19,0, +28,0,50,0,66,0,67,0,58,0,51,0,50,0,49,0,57,0,64,0,62,0,61,0,53,0,52,0,70,0,72,0, +58,0,55,0,55,0,56,0,61,0,58,0,52,0,51,0,47,0,47,0,50,0,44,0,33,0,27,0,32,0,40,0, +40,0,38,0,40,0,43,0,52,0,62,0,58,0,47,0,37,0,31,0,43,0,64,0,63,0,51,0,51,0,56,0, +56,0,54,0,40,0,27,0,29,0,34,0,33,0,31,0,23,0,14,0,20,0,26,0,23,0,17,0,18,0,38,0, +55,0,44,0,26,0,21,0,21,0,25,0,30,0,38,0,43,0,34,0,27,0,29,0,26,0,27,0,21,0,6,0, +13,0,15,0,5,0,30,0,52,0,44,0,49,0,55,0,49,0,49,0,43,0,36,0,45,0,59,0,62,0,52,0, +41,0,37,0,32,0,39,0,56,0,54,0,33,0,19,0,17,0,19,0,10,0,2,0,9,0,15,0,20,0,27,0, +25,0,19,0,4,0,243,255,246,255,253,255,249,255,255,255,7,0,1,0,250,255,239,255,223,255,218,255,224,255,224,255, +228,255,235,255,234,255,234,255,235,255,232,255,243,255,6,0,10,0,4,0,252,255,240,255,227,255,221,255,221,255,218,255, +220,255,236,255,244,255,228,255,223,255,246,255,17,0,18,0,3,0,249,255,240,255,231,255,222,255,211,255,213,255,220,255, +214,255,215,255,225,255,218,255,202,255,198,255,202,255,197,255,179,255,180,255,198,255,195,255,179,255,169,255,165,255,173,255, +175,255,164,255,163,255,169,255,167,255,168,255,177,255,192,255,199,255,189,255,186,255,198,255,204,255,205,255,210,255,223,255, +236,255,232,255,222,255,222,255,225,255,222,255,232,255,250,255,249,255,231,255,218,255,218,255,228,255,229,255,210,255,206,255, +227,255,235,255,221,255,215,255,222,255,227,255,230,255,230,255,228,255,228,255,216,255,201,255,213,255,223,255,207,255,196,255, +195,255,199,255,212,255,216,255,212,255,210,255,202,255,203,255,207,255,200,255,199,255,190,255,174,255,183,255,195,255,189,255, +177,255,158,255,158,255,175,255,173,255,173,255,175,255,162,255,163,255,173,255,170,255,168,255,168,255,171,255,182,255,189,255, +192,255,194,255,189,255,184,255,182,255,185,255,192,255,193,255,195,255,202,255,204,255,212,255,223,255,221,255,211,255,205,255, +205,255,206,255,199,255,183,255,178,255,184,255,169,255,147,255,146,255,147,255,141,255,145,255,149,255,142,255,133,255,124,255, +132,255,154,255,160,255,148,255,134,255,125,255,126,255,128,255,121,255,123,255,135,255,134,255,131,255,138,255,134,255,120,255, +116,255,121,255,136,255,145,255,134,255,132,255,150,255,161,255,172,255,188,255,199,255,210,255,217,255,215,255,214,255,213,255, +211,255,210,255,216,255,225,255,221,255,214,255,223,255,234,255,247,255,4,0,3,0,4,0,10,0,8,0,11,0,16,0, +4,0,241,255,234,255,238,255,237,255,231,255,231,255,221,255,211,255,215,255,213,255,208,255,217,255,218,255,204,255,190,255, +192,255,194,255,172,255,153,255,156,255,157,255,152,255,145,255,139,255,149,255,158,255,158,255,158,255,149,255,147,255,157,255, +144,255,130,255,139,255,149,255,158,255,173,255,176,255,163,255,150,255,154,255,168,255,170,255,154,255,146,255,163,255,187,255, +189,255,178,255,173,255,181,255,195,255,195,255,186,255,188,255,189,255,189,255,202,255,210,255,201,255,182,255,179,255,198,255, +207,255,203,255,210,255,226,255,243,255,241,255,225,255,235,255,251,255,247,255,252,255,5,0,253,255,245,255,239,255,238,255, +241,255,231,255,225,255,236,255,240,255,242,255,241,255,219,255,203,255,212,255,215,255,212,255,215,255,209,255,195,255,189,255, +191,255,200,255,206,255,204,255,204,255,212,255,219,255,216,255,207,255,212,255,223,255,224,255,229,255,238,255,239,255,241,255, +241,255,229,255,220,255,219,255,219,255,228,255,240,255,245,255,246,255,236,255,226,255,234,255,248,255,250,255,246,255,245,255, +244,255,249,255,5,0,15,0,19,0,16,0,4,0,250,255,247,255,243,255,236,255,227,255,227,255,239,255,243,255,237,255, +239,255,245,255,243,255,243,255,255,255,17,0,18,0,10,0,8,0,7,0,252,255,240,255,239,255,248,255,248,255,243,255, +247,255,254,255,1,0,2,0,0,0,255,255,1,0,1,0,255,255,251,255,254,255,4,0,251,255,238,255,237,255,238,255, +247,255,8,0,9,0,254,255,245,255,242,255,1,0,11,0,5,0,6,0,4,0,244,255,237,255,233,255,232,255,254,255, +18,0,20,0,15,0,3,0,247,255,247,255,253,255,2,0,1,0,252,255,255,255,2,0,4,0,9,0,3,0,255,255, +14,0,27,0,36,0,44,0,43,0,35,0,23,0,9,0,10,0,22,0,35,0,43,0,29,0,9,0,10,0,12,0, +16,0,27,0,18,0,0,0,255,255,1,0,5,0,10,0,6,0,8,0,17,0,21,0,31,0,35,0,26,0,21,0, +21,0,19,0,21,0,20,0,16,0,15,0,19,0,32,0,39,0,39,0,40,0,37,0,38,0,44,0,36,0,24,0, +18,0,19,0,34,0,39,0,14,0,243,255,228,255,223,255,226,255,225,255,221,255,222,255,229,255,242,255,246,255,241,255, +233,255,219,255,209,255,213,255,219,255,228,255,240,255,243,255,238,255,232,255,228,255,235,255,252,255,10,0,11,0,3,0, +255,255,250,255,240,255,235,255,241,255,252,255,10,0,29,0,40,0,36,0,32,0,31,0,29,0,32,0,31,0,30,0, +35,0,35,0,33,0,29,0,17,0,11,0,14,0,17,0,13,0,254,255,238,255,230,255,230,255,254,255,17,0,1,0, +241,255,234,255,226,255,234,255,242,255,247,255,6,0,11,0,7,0,2,0,0,0,9,0,9,0,249,255,247,255,248,255, +239,255,236,255,227,255,217,255,227,255,241,255,246,255,249,255,1,0,10,0,18,0,28,0,27,0,13,0,6,0,0,0, +255,255,4,0,247,255,228,255,226,255,228,255,226,255,218,255,205,255,208,255,219,255,219,255,219,255,221,255,223,255,232,255, +237,255,241,255,252,255,253,255,249,255,253,255,2,0,6,0,7,0,6,0,11,0,15,0,11,0,8,0,5,0,6,0, +21,0,35,0,37,0,34,0,15,0,253,255,0,0,1,0,4,0,15,0,2,0,234,255,232,255,235,255,232,255,233,255, +232,255,228,255,231,255,243,255,243,255,221,255,203,255,196,255,194,255,196,255,193,255,183,255,185,255,199,255,204,255,199,255, +200,255,205,255,205,255,210,255,225,255,233,255,235,255,235,255,231,255,229,255,218,255,205,255,203,255,205,255,210,255,217,255, +226,255,234,255,233,255,239,255,248,255,240,255,235,255,233,255,222,255,220,255,219,255,211,255,217,255,215,255,207,255,211,255, +204,255,192,255,193,255,197,255,216,255,226,255,212,255,215,255,219,255,206,255,214,255,233,255,241,255,247,255,252,255,254,255, +240,255,224,255,236,255,251,255,246,255,243,255,242,255,243,255,253,255,4,0,4,0,2,0,254,255,250,255,248,255,245,255, +238,255,245,255,8,0,7,0,0,0,4,0,252,255,244,255,245,255,238,255,238,255,248,255,242,255,238,255,243,255,238,255, +230,255,229,255,231,255,235,255,235,255,229,255,226,255,222,255,222,255,229,255,227,255,216,255,208,255,196,255,194,255,209,255, +214,255,201,255,195,255,201,255,214,255,218,255,205,255,197,255,205,255,206,255,191,255,177,255,177,255,179,255,179,255,185,255, +181,255,177,255,191,255,196,255,194,255,197,255,194,255,195,255,200,255,196,255,197,255,197,255,183,255,177,255,180,255,180,255, +178,255,173,255,181,255,197,255,188,255,173,255,178,255,181,255,175,255,180,255,185,255,180,255,178,255,183,255,184,255,181,255, +181,255,187,255,199,255,205,255,196,255,184,255,180,255,191,255,204,255,198,255,188,255,191,255,198,255,206,255,208,255,197,255, +191,255,196,255,203,255,212,255,217,255,211,255,203,255,212,255,223,255,220,255,215,255,208,255,198,255,201,255,206,255,201,255, +200,255,192,255,177,255,168,255,164,255,175,255,187,255,177,255,171,255,179,255,187,255,203,255,218,255,216,255,213,255,225,255, +233,255,225,255,210,255,209,255,218,255,229,255,238,255,233,255,218,255,216,255,226,255,232,255,228,255,216,255,213,255,217,255, +215,255,206,255,196,255,182,255,168,255,167,255,179,255,187,255,188,255,188,255,187,255,182,255,175,255,166,255,163,255,166,255, +161,255,155,255,149,255,128,255,115,255,125,255,131,255,132,255,135,255,130,255,131,255,140,255,139,255,140,255,145,255,145,255, +148,255,152,255,153,255,158,255,161,255,167,255,172,255,163,255,158,255,168,255,176,255,179,255,179,255,182,255,190,255,197,255, +198,255,192,255,186,255,199,255,215,255,217,255,222,255,240,255,3,0,6,0,0,0,5,0,8,0,3,0,7,0,13,0, +12,0,15,0,24,0,32,0,32,0,22,0,12,0,12,0,17,0,24,0,26,0,18,0,14,0,20,0,21,0,12,0, +5,0,254,255,243,255,234,255,227,255,222,255,224,255,222,255,220,255,226,255,226,255,224,255,231,255,234,255,231,255,229,255, +231,255,237,255,241,255,246,255,252,255,251,255,253,255,3,0,2,0,6,0,10,0,4,0,9,0,23,0,20,0,24,0, +33,0,24,0,20,0,29,0,24,0,23,0,39,0,40,0,28,0,18,0,10,0,12,0,22,0,24,0,19,0,15,0, +18,0,24,0,18,0,4,0,253,255,6,0,11,0,247,255,232,255,235,255,231,255,228,255,231,255,216,255,199,255,204,255, +216,255,214,255,201,255,196,255,198,255,199,255,205,255,198,255,176,255,172,255,176,255,177,255,183,255,178,255,169,255,174,255, +178,255,180,255,182,255,181,255,182,255,182,255,183,255,197,255,202,255,192,255,188,255,191,255,188,255,186,255,191,255,193,255, +189,255,195,255,211,255,219,255,219,255,216,255,206,255,198,255,201,255,216,255,223,255,219,255,218,255,213,255,205,255,212,255, +215,255,204,255,206,255,215,255,216,255,213,255,204,255,194,255,196,255,202,255,201,255,196,255,189,255,184,255,199,255,221,255, +209,255,184,255,180,255,184,255,184,255,173,255,150,255,133,255,130,255,137,255,154,255,161,255,156,255,162,255,171,255,178,255, +184,255,182,255,178,255,182,255,185,255,185,255,187,255,183,255,173,255,166,255,162,255,158,255,157,255,151,255,137,255,128,255, +133,255,147,255,157,255,151,255,153,255,169,255,168,255,152,255,148,255,148,255,151,255,165,255,175,255,169,255,163,255,168,255, +178,255,187,255,184,255,173,255,168,255,170,255,166,255,159,255,157,255,160,255,159,255,152,255,149,255,143,255,131,255,123,255, +124,255,126,255,124,255,115,255,111,255,112,255,109,255,105,255,100,255,95,255,96,255,95,255,95,255,97,255,95,255,94,255, +96,255,103,255,114,255,116,255,124,255,143,255,146,255,147,255,162,255,166,255,163,255,167,255,172,255,182,255,192,255,196,255, +202,255,204,255,207,255,222,255,237,255,235,255,227,255,226,255,236,255,253,255,11,0,5,0,249,255,250,255,0,0,0,0, +255,255,255,255,3,0,9,0,10,0,15,0,22,0,22,0,25,0,32,0,33,0,28,0,25,0,30,0,34,0,27,0, +20,0,21,0,28,0,31,0,27,0,22,0,25,0,34,0,36,0,29,0,26,0,25,0,25,0,24,0,14,0,4,0, +5,0,5,0,255,255,253,255,2,0,2,0,246,255,242,255,251,255,249,255,250,255,3,0,1,0,253,255,248,255,235,255, +232,255,229,255,217,255,219,255,227,255,225,255,227,255,242,255,2,0,3,0,0,0,5,0,7,0,6,0,2,0,247,255, +247,255,2,0,8,0,9,0,7,0,8,0,11,0,10,0,7,0,1,0,1,0,15,0,26,0,33,0,30,0,9,0, +1,0,9,0,1,0,237,255,228,255,235,255,249,255,255,255,255,255,249,255,236,255,233,255,232,255,226,255,233,255,238,255, +233,255,233,255,232,255,227,255,224,255,222,255,225,255,227,255,227,255,225,255,215,255,207,255,212,255,216,255,220,255,230,255, +235,255,230,255,227,255,237,255,250,255,253,255,253,255,255,255,5,0,8,0,255,255,248,255,250,255,0,0,12,0,19,0, +20,0,21,0,13,0,12,0,23,0,22,0,20,0,18,0,7,0,8,0,16,0,12,0,6,0,255,255,251,255,253,255, +249,255,244,255,238,255,230,255,227,255,222,255,214,255,212,255,206,255,200,255,203,255,201,255,195,255,188,255,180,255,175,255, +175,255,178,255,180,255,188,255,192,255,177,255,164,255,164,255,160,255,159,255,156,255,146,255,153,255,163,255,157,255,152,255, +150,255,156,255,168,255,161,255,152,255,158,255,161,255,159,255,148,255,140,255,149,255,154,255,156,255,172,255,171,255,154,255, +149,255,151,255,150,255,151,255,149,255,147,255,150,255,161,255,169,255,165,255,163,255,176,255,185,255,183,255,184,255,186,255, +176,255,165,255,165,255,167,255,162,255,155,255,151,255,151,255,149,255,144,255,145,255,156,255,161,255,151,255,149,255,158,255, +153,255,148,255,154,255,147,255,137,255,139,255,136,255,131,255,128,255,116,255,109,255,112,255,118,255,126,255,126,255,124,255, +131,255,128,255,121,255,123,255,128,255,144,255,156,255,136,255,121,255,123,255,130,255,147,255,152,255,143,255,153,255,157,255, +143,255,150,255,160,255,153,255,153,255,159,255,162,255,168,255,167,255,161,255,164,255,167,255,161,255,157,255,169,255,180,255, +172,255,165,255,177,255,189,255,189,255,176,255,170,255,178,255,177,255,162,255,160,255,159,255,148,255,148,255,151,255,141,255, +138,255,138,255,133,255,137,255,141,255,139,255,137,255,130,255,125,255,128,255,125,255,119,255,120,255,116,255,107,255,96,255, +91,255,96,255,93,255,84,255,91,255,102,255,97,255,86,255,82,255,89,255,91,255,84,255,86,255,90,255,88,255,89,255, +88,255,91,255,101,255,105,255,110,255,126,255,136,255,137,255,136,255,131,255,127,255,138,255,152,255,147,255,147,255,159,255, +158,255,155,255,156,255,154,255,157,255,159,255,154,255,154,255,155,255,161,255,163,255,151,255,151,255,158,255,150,255,147,255, +146,255,146,255,149,255,141,255,140,255,151,255,145,255,141,255,143,255,137,255,140,255,141,255,129,255,127,255,135,255,141,255, +133,255,124,255,138,255,148,255,146,255,161,255,167,255,157,255,156,255,161,255,169,255,177,255,174,255,173,255,182,255,184,255, +173,255,167,255,180,255,182,255,176,255,182,255,181,255,176,255,174,255,163,255,173,255,198,255,196,255,191,255,192,255,183,255, +184,255,184,255,175,255,180,255,190,255,186,255,179,255,180,255,185,255,182,255,184,255,192,255,188,255,179,255,179,255,182,255, +185,255,187,255,184,255,184,255,188,255,190,255,190,255,190,255,192,255,192,255,192,255,196,255,192,255,189,255,198,255,202,255, +194,255,192,255,198,255,196,255,189,255,191,255,200,255,208,255,209,255,205,255,206,255,219,255,228,255,225,255,220,255,220,255, +222,255,225,255,230,255,237,255,238,255,231,255,227,255,235,255,242,255,236,255,230,255,229,255,227,255,225,255,223,255,225,255, +236,255,244,255,244,255,244,255,247,255,249,255,245,255,245,255,4,0,12,0,1,0,250,255,252,255,249,255,243,255,244,255, +250,255,2,0,0,0,241,255,236,255,247,255,1,0,8,0,16,0,23,0,30,0,28,0,18,0,20,0,27,0,20,0, +8,0,11,0,24,0,28,0,24,0,23,0,24,0,21,0,18,0,18,0,25,0,29,0,27,0,22,0,18,0,14,0, +14,0,16,0,17,0,19,0,22,0,25,0,24,0,24,0,30,0,27,0,23,0,31,0,34,0,25,0,20,0,19,0, +13,0,12,0,13,0,6,0,3,0,4,0,4,0,11,0,22,0,30,0,36,0,34,0,34,0,43,0,47,0,42,0, +42,0,44,0,45,0,40,0,37,0,43,0,46,0,45,0,47,0,44,0,42,0,40,0,38,0,43,0,47,0,43,0, +31,0,27,0,39,0,39,0,23,0,15,0,9,0,7,0,13,0,10,0,13,0,22,0,20,0,22,0,27,0,24,0, +24,0,21,0,16,0,17,0,16,0,18,0,20,0,21,0,32,0,35,0,29,0,31,0,33,0,31,0,33,0,31,0, +33,0,36,0,34,0,33,0,31,0,29,0,29,0,26,0,22,0,15,0,6,0,1,0,0,0,2,0,1,0,255,255, +4,0,3,0,2,0,6,0,250,255,240,255,241,255,239,255,240,255,241,255,245,255,253,255,249,255,248,255,4,0,6,0, +10,0,22,0,19,0,16,0,16,0,6,0,253,255,1,0,9,0,11,0,9,0,11,0,12,0,16,0,22,0,20,0, +23,0,22,0,7,0,6,0,17,0,15,0,4,0,249,255,247,255,254,255,254,255,247,255,244,255,243,255,245,255,240,255, +240,255,248,255,243,255,228,255,223,255,220,255,208,255,202,255,208,255,214,255,214,255,211,255,206,255,202,255,209,255,213,255, +206,255,208,255,215,255,207,255,194,255,194,255,203,255,209,255,208,255,207,255,208,255,203,255,197,255,202,255,207,255,207,255, +210,255,205,255,200,255,208,255,209,255,209,255,214,255,215,255,223,255,227,255,223,255,235,255,243,255,228,255,222,255,224,255, +219,255,210,255,202,255,206,255,212,255,201,255,186,255,181,255,185,255,189,255,182,255,176,255,180,255,189,255,191,255,187,255, +192,255,202,255,200,255,195,255,189,255,185,255,191,255,186,255,176,255,179,255,178,255,172,255,170,255,168,255,168,255,164,255, +154,255,151,255,156,255,167,255,177,255,175,255,167,255,156,255,154,255,161,255,159,255,159,255,165,255,156,255,151,255,160,255, +157,255,154,255,162,255,167,255,166,255,171,255,177,255,176,255,175,255,181,255,184,255,186,255,189,255,188,255,188,255,190,255, +195,255,198,255,194,255,189,255,181,255,170,255,167,255,165,255,162,255,170,255,174,255,169,255,166,255,161,255,164,255,168,255, +164,255,167,255,178,255,184,255,183,255,178,255,172,255,165,255,159,255,157,255,155,255,150,255,144,255,140,255,144,255,153,255, +156,255,161,255,162,255,157,255,153,255,149,255,146,255,147,255,153,255,155,255,152,255,157,255,160,255,148,255,147,255,157,255, +153,255,151,255,149,255,140,255,146,255,157,255,158,255,160,255,163,255,166,255,171,255,169,255,165,255,165,255,165,255,161,255, +162,255,173,255,183,255,179,255,172,255,172,255,179,255,187,255,189,255,186,255,184,255,181,255,180,255,184,255,188,255,181,255, +169,255,174,255,178,255,167,255,161,255,163,255,166,255,170,255,169,255,172,255,183,255,183,255,175,255,176,255,176,255,170,255, +158,255,153,255,165,255,173,255,165,255,163,255,169,255,168,255,166,255,162,255,160,255,168,255,175,255,174,255,176,255,176,255, +176,255,174,255,167,255,170,255,178,255,172,255,164,255,166,255,174,255,176,255,171,255,174,255,177,255,176,255,182,255,188,255, +188,255,189,255,189,255,192,255,194,255,192,255,198,255,200,255,194,255,202,255,208,255,210,255,218,255,215,255,216,255,221,255, +213,255,216,255,224,255,216,255,210,255,207,255,210,255,215,255,204,255,204,255,215,255,208,255,205,255,205,255,195,255,198,255, +197,255,190,255,203,255,205,255,198,255,211,255,212,255,207,255,219,255,220,255,210,255,210,255,203,255,198,255,200,255,191,255, +186,255,193,255,188,255,188,255,196,255,188,255,184,255,193,255,198,255,208,255,214,255,210,255,217,255,223,255,218,255,217,255, +215,255,208,255,209,255,212,255,210,255,214,255,221,255,224,255,226,255,232,255,240,255,244,255,242,255,234,255,231,255,236,255, +236,255,233,255,234,255,238,255,244,255,248,255,241,255,239,255,243,255,242,255,239,255,243,255,244,255,241,255,237,255,238,255, +242,255,244,255,242,255,242,255,240,255,240,255,246,255,245,255,244,255,251,255,246,255,239,255,243,255,242,255,242,255,243,255, +234,255,234,255,243,255,240,255,237,255,233,255,230,255,235,255,240,255,247,255,248,255,240,255,245,255,251,255,247,255,248,255, +248,255,242,255,243,255,253,255,10,0,14,0,5,0,0,0,0,0,7,0,14,0,11,0,5,0,4,0,12,0,29,0, +32,0,23,0,21,0,17,0,17,0,22,0,19,0,13,0,9,0,8,0,12,0,15,0,15,0,15,0,19,0,23,0, +23,0,25,0,25,0,18,0,23,0,32,0,28,0,30,0,31,0,20,0,16,0,18,0,20,0,17,0,10,0,10,0, +18,0,19,0,15,0,9,0,14,0,21,0,18,0,17,0,19,0,19,0,23,0,23,0,21,0,23,0,20,0,20,0, +19,0,17,0,24,0,21,0,14,0,16,0,9,0,4,0,15,0,14,0,9,0,16,0,24,0,22,0,19,0,23,0, +22,0,16,0,21,0,25,0,24,0,30,0,30,0,27,0,32,0,31,0,29,0,29,0,28,0,27,0,22,0,21,0, +29,0,28,0,30,0,30,0,23,0,25,0,21,0,11,0,16,0,19,0,19,0,21,0,13,0,15,0,23,0,12,0, +7,0,12,0,14,0,20,0,14,0,4,0,9,0,5,0,251,255,250,255,245,255,244,255,245,255,237,255,235,255,236,255, +234,255,240,255,249,255,248,255,246,255,245,255,245,255,250,255,255,255,254,255,252,255,252,255,253,255,6,0,13,0,6,0, +253,255,253,255,250,255,249,255,4,0,5,0,249,255,253,255,10,0,9,0,5,0,2,0,0,0,7,0,6,0,2,0, +10,0,7,0,252,255,253,255,254,255,251,255,249,255,242,255,234,255,234,255,241,255,246,255,244,255,246,255,254,255,252,255, +252,255,1,0,252,255,248,255,248,255,244,255,252,255,6,0,255,255,251,255,1,0,255,255,249,255,247,255,247,255,242,255, +237,255,240,255,245,255,243,255,243,255,245,255,244,255,245,255,239,255,228,255,229,255,239,255,242,255,242,255,243,255,239,255, +235,255,234,255,228,255,224,255,226,255,227,255,227,255,226,255,228,255,237,255,238,255,230,255,232,255,234,255,232,255,234,255, +233,255,236,255,241,255,239,255,243,255,251,255,249,255,247,255,253,255,7,0,4,0,240,255,244,255,3,0,249,255,242,255, +247,255,247,255,247,255,250,255,253,255,254,255,255,255,255,255,245,255,248,255,8,0,2,0,246,255,250,255,251,255,246,255, +238,255,233,255,237,255,229,255,223,255,231,255,227,255,220,255,219,255,211,255,217,255,220,255,208,255,215,255,219,255,209,255, +210,255,207,255,207,255,215,255,210,255,206,255,208,255,204,255,208,255,212,255,209,255,208,255,206,255,205,255,207,255,211,255, +215,255,213,255,213,255,223,255,227,255,230,255,234,255,228,255,225,255,229,255,233,255,237,255,234,255,228,255,230,255,229,255, +228,255,233,255,235,255,231,255,229,255,233,255,240,255,236,255,229,255,235,255,247,255,251,255,248,255,244,255,244,255,245,255, +246,255,251,255,0,0,3,0,0,0,254,255,5,0,8,0,2,0,3,0,16,0,24,0,20,0,9,0,6,0,5,0, +0,0,2,0,9,0,6,0,3,0,7,0,7,0,4,0,1,0,254,255,255,255,2,0,7,0,10,0,10,0,18,0, +21,0,12,0,9,0,13,0,9,0,2,0,251,255,250,255,252,255,245,255,243,255,251,255,3,0,5,0,2,0,3,0, +9,0,8,0,9,0,14,0,12,0,9,0,9,0,13,0,20,0,21,0,17,0,12,0,8,0,12,0,17,0,13,0, +15,0,19,0,14,0,13,0,20,0,16,0,5,0,6,0,10,0,4,0,0,0,255,255,246,255,248,255,8,0,11,0, +5,0,8,0,14,0,20,0,20,0,10,0,5,0,12,0,17,0,12,0,9,0,15,0,20,0,14,0,5,0,4,0, +4,0,1,0,250,255,245,255,246,255,250,255,247,255,240,255,239,255,249,255,252,255,246,255,251,255,2,0,253,255,252,255, +1,0,254,255,247,255,249,255,0,0,251,255,239,255,238,255,240,255,240,255,241,255,235,255,234,255,249,255,1,0,251,255, +250,255,4,0,6,0,251,255,253,255,6,0,8,0,9,0,8,0,7,0,16,0,28,0,33,0,31,0,20,0,16,0, +17,0,18,0,20,0,13,0,12,0,32,0,36,0,27,0,31,0,34,0,38,0,44,0,45,0,47,0,51,0,56,0, +53,0,40,0,38,0,43,0,36,0,28,0,22,0,18,0,20,0,19,0,16,0,20,0,28,0,34,0,33,0,33,0, +38,0,36,0,34,0,33,0,32,0,38,0,43,0,42,0,41,0,38,0,41,0,41,0,36,0,44,0,46,0,33,0, +30,0,36,0,40,0,38,0,33,0,39,0,40,0,27,0,25,0,29,0,31,0,29,0,18,0,20,0,31,0,27,0, +16,0,13,0,16,0,15,0,2,0,0,0,10,0,3,0,247,255,240,255,239,255,242,255,237,255,227,255,236,255,251,255, +248,255,237,255,238,255,245,255,246,255,244,255,244,255,242,255,243,255,243,255,241,255,245,255,247,255,247,255,245,255,239,255, +235,255,231,255,231,255,236,255,234,255,231,255,241,255,252,255,253,255,244,255,231,255,233,255,243,255,244,255,240,255,242,255, +247,255,251,255,250,255,244,255,249,255,10,0,16,0,11,0,11,0,12,0,17,0,22,0,14,0,9,0,24,0,28,0, +16,0,14,0,11,0,6,0,13,0,17,0,13,0,17,0,18,0,20,0,38,0,42,0,29,0,38,0,54,0,53,0, +41,0,32,0,44,0,57,0,47,0,44,0,59,0,72,0,71,0,51,0,45,0,67,0,73,0,63,0,64,0,72,0, +82,0,78,0,61,0,57,0,62,0,62,0,54,0,42,0,39,0,43,0,41,0,33,0,29,0,32,0,30,0,29,0, +36,0,37,0,35,0,39,0,39,0,36,0,33,0,32,0,38,0,37,0,28,0,28,0,32,0,27,0,17,0,15,0, +23,0,26,0,19,0,18,0,23,0,28,0,22,0,5,0,7,0,20,0,13,0,1,0,4,0,11,0,9,0,6,0, +7,0,4,0,2,0,1,0,251,255,2,0,4,0,246,255,249,255,3,0,255,255,253,255,249,255,253,255,11,0,8,0, +0,0,11,0,18,0,17,0,17,0,13,0,14,0,20,0,14,0,5,0,10,0,15,0,12,0,5,0,250,255,250,255, +12,0,10,0,248,255,248,255,3,0,13,0,7,0,248,255,254,255,9,0,2,0,1,0,4,0,6,0,9,0,3,0, +1,0,7,0,11,0,14,0,7,0,3,0,15,0,18,0,15,0,16,0,16,0,19,0,21,0,18,0,20,0,19,0, +19,0,25,0,23,0,18,0,18,0,22,0,26,0,21,0,18,0,31,0,40,0,34,0,29,0,37,0,44,0,41,0, +41,0,42,0,41,0,45,0,42,0,35,0,39,0,39,0,36,0,40,0,37,0,34,0,33,0,31,0,33,0,29,0, +26,0,32,0,27,0,16,0,11,0,10,0,20,0,25,0,13,0,4,0,8,0,17,0,14,0,0,0,255,255,11,0, +12,0,9,0,5,0,1,0,5,0,3,0,251,255,250,255,252,255,2,0,10,0,9,0,7,0,18,0,24,0,17,0, +9,0,7,0,10,0,12,0,4,0,0,0,8,0,8,0,252,255,248,255,252,255,253,255,250,255,251,255,3,0,12,0, +12,0,9,0,17,0,24,0,14,0,7,0,11,0,12,0,12,0,9,0,4,0,4,0,2,0,254,255,252,255,249,255, +251,255,248,255,236,255,240,255,247,255,237,255,235,255,239,255,238,255,240,255,241,255,240,255,246,255,244,255,234,255,235,255, +246,255,246,255,240,255,241,255,246,255,248,255,251,255,250,255,250,255,252,255,252,255,252,255,254,255,2,0,5,0,9,0, +16,0,14,0,10,0,24,0,31,0,25,0,23,0,21,0,26,0,34,0,26,0,20,0,25,0,27,0,30,0,28,0, +23,0,27,0,29,0,25,0,23,0,23,0,34,0,41,0,37,0,31,0,28,0,32,0,31,0,18,0,11,0,19,0, +24,0,18,0,8,0,7,0,7,0,255,255,250,255,245,255,245,255,249,255,236,255,229,255,239,255,237,255,232,255,234,255, +236,255,240,255,233,255,223,255,234,255,244,255,238,255,232,255,231,255,238,255,244,255,236,255,230,255,241,255,247,255,240,255, +237,255,240,255,239,255,236,255,232,255,228,255,230,255,233,255,231,255,226,255,222,255,220,255,215,255,206,255,206,255,209,255, +209,255,209,255,208,255,207,255,206,255,209,255,209,255,200,255,197,255,201,255,197,255,196,255,202,255,203,255,208,255,209,255, +207,255,214,255,215,255,210,255,218,255,222,255,217,255,220,255,224,255,229,255,236,255,234,255,233,255,243,255,248,255,247,255, +251,255,252,255,248,255,250,255,2,0,7,0,4,0,0,0,10,0,13,0,7,0,10,0,9,0,3,0,9,0,10,0, +9,0,18,0,16,0,7,0,6,0,7,0,14,0,13,0,10,0,19,0,17,0,7,0,13,0,12,0,7,0,10,0, +11,0,12,0,9,0,3,0,1,0,253,255,0,0,5,0,255,255,254,255,0,0,247,255,243,255,247,255,249,255,252,255, +251,255,250,255,250,255,248,255,248,255,242,255,238,255,249,255,253,255,248,255,253,255,252,255,241,255,236,255,241,255,251,255, +253,255,246,255,248,255,1,0,6,0,0,0,250,255,1,0,5,0,254,255,249,255,253,255,0,0,251,255,246,255,251,255, +7,0,8,0,255,255,252,255,1,0,4,0,0,0,251,255,251,255,253,255,252,255,254,255,0,0,251,255,253,255,6,0, +4,0,2,0,3,0,1,0,4,0,9,0,10,0,10,0,12,0,16,0,24,0,27,0,20,0,12,0,10,0,13,0, +15,0,14,0,16,0,21,0,22,0,13,0,4,0,3,0,5,0,2,0,251,255,252,255,3,0,254,255,249,255,250,255, +249,255,250,255,248,255,241,255,241,255,244,255,243,255,239,255,238,255,243,255,246,255,241,255,239,255,245,255,252,255,250,255, +244,255,252,255,4,0,252,255,255,255,8,0,5,0,1,0,1,0,0,0,4,0,7,0,255,255,251,255,1,0,2,0, +255,255,253,255,246,255,246,255,3,0,2,0,249,255,1,0,9,0,5,0,251,255,245,255,254,255,2,0,244,255,240,255, +254,255,253,255,241,255,240,255,251,255,1,0,250,255,241,255,239,255,243,255,242,255,238,255,240,255,247,255,245,255,239,255, +243,255,249,255,248,255,245,255,245,255,250,255,253,255,247,255,247,255,252,255,245,255,236,255,237,255,238,255,237,255,235,255, +235,255,241,255,241,255,236,255,237,255,239,255,238,255,235,255,234,255,244,255,249,255,243,255,241,255,239,255,239,255,246,255, +247,255,245,255,248,255,249,255,252,255,255,255,251,255,246,255,247,255,247,255,243,255,241,255,244,255,244,255,238,255,238,255, +247,255,251,255,241,255,237,255,247,255,252,255,245,255,242,255,243,255,250,255,254,255,253,255,254,255,0,0,254,255,253,255, +253,255,8,0,17,0,7,0,4,0,19,0,20,0,9,0,3,0,6,0,15,0,17,0,4,0,252,255,7,0,13,0, +2,0,251,255,2,0,7,0,6,0,1,0,254,255,7,0,12,0,4,0,255,255,4,0,11,0,12,0,10,0,9,0, +12,0,20,0,20,0,12,0,9,0,15,0,19,0,12,0,5,0,11,0,17,0,12,0,9,0,9,0,12,0,13,0, +2,0,254,255,10,0,9,0,1,0,3,0,2,0,255,255,250,255,247,255,4,0,3,0,245,255,248,255,252,255,251,255, +254,255,251,255,252,255,255,255,251,255,251,255,255,255,253,255,254,255,253,255,0,0,4,0,255,255,1,0,10,0,5,0, +2,0,13,0,19,0,18,0,15,0,17,0,24,0,25,0,18,0,20,0,28,0,24,0,17,0,21,0,27,0,26,0, +25,0,27,0,33,0,38,0,29,0,22,0,30,0,33,0,28,0,26,0,27,0,29,0,28,0,21,0,18,0,24,0, +25,0,17,0,16,0,17,0,15,0,12,0,12,0,14,0,16,0,13,0,14,0,16,0,5,0,3,0,17,0,24,0, +17,0,9,0,12,0,27,0,25,0,16,0,25,0,30,0,24,0,26,0,25,0,25,0,27,0,21,0,26,0,32,0, +25,0,19,0,17,0,18,0,23,0,17,0,16,0,23,0,18,0,14,0,17,0,16,0,17,0,10,0,6,0,20,0, +23,0,12,0,13,0,16,0,17,0,15,0,7,0,8,0,15,0,14,0,13,0,20,0,21,0,16,0,16,0,24,0, +28,0,22,0,14,0,17,0,27,0,24,0,17,0,26,0,36,0,30,0,21,0,21,0,27,0,22,0,17,0,25,0, +28,0,21,0,18,0,19,0,21,0,19,0,16,0,24,0,25,0,18,0,23,0,30,0,23,0,23,0,33,0,38,0, +36,0,33,0,34,0,40,0,38,0,32,0,35,0,43,0,41,0,36,0,40,0,45,0,50,0,46,0,36,0,41,0, +49,0,36,0,25,0,34,0,42,0,39,0,26,0,22,0,38,0,43,0,28,0,22,0,32,0,32,0,19,0,18,0, +34,0,39,0,31,0,28,0,28,0,32,0,34,0,32,0,39,0,42,0,37,0,41,0,46,0,48,0,49,0,48,0, +53,0,59,0,58,0,61,0,60,0,57,0,62,0,63,0,62,0,64,0,59,0,57,0,62,0,62,0,63,0,67,0, +72,0,70,0,59,0,61,0,67,0,61,0,62,0,64,0,63,0,69,0,66,0,61,0,62,0,55,0,60,0,73,0, +67,0,61,0,61,0,58,0,63,0,65,0,58,0,56,0,56,0,59,0,61,0,53,0,51,0,59,0,61,0,57,0, +57,0,61,0,58,0,50,0,51,0,58,0,59,0,53,0,52,0,58,0,59,0,56,0,56,0,57,0,59,0,59,0, +57,0,65,0,71,0,64,0,63,0,67,0,67,0,68,0,69,0,73,0,76,0,76,0,79,0,76,0,72,0,79,0, +81,0,75,0,73,0,71,0,75,0,76,0,66,0,66,0,75,0,79,0,76,0,68,0,67,0,73,0,75,0,74,0, +70,0,69,0,74,0,72,0,66,0,66,0,61,0,60,0,64,0,62,0,61,0,62,0,55,0,55,0,62,0,63,0, +62,0,55,0,49,0,54,0,56,0,53,0,57,0,53,0,47,0,52,0,50,0,46,0,49,0,51,0,49,0,43,0, +45,0,61,0,59,0,45,0,47,0,54,0,56,0,53,0,47,0,53,0,61,0,57,0,56,0,59,0,61,0,63,0, +57,0,57,0,65,0,64,0,64,0,66,0,64,0,63,0,62,0,62,0,65,0,65,0,66,0,64,0,61,0,67,0, +67,0,61,0,62,0,60,0,58,0,61,0,59,0,57,0,57,0,54,0,51,0,44,0,40,0,48,0,51,0,42,0, +35,0,34,0,37,0,42,0,45,0,41,0,36,0,39,0,40,0,37,0,38,0,41,0,37,0,33,0,36,0,43,0, +44,0,39,0,33,0,33,0,38,0,39,0,36,0,44,0,48,0,35,0,33,0,45,0,41,0,36,0,43,0,47,0, +49,0,51,0,45,0,42,0,46,0,48,0,53,0,52,0,45,0,50,0,59,0,57,0,50,0,47,0,51,0,51,0, +46,0,47,0,54,0,54,0,45,0,45,0,55,0,62,0,59,0,57,0,60,0,62,0,57,0,55,0,61,0,57,0, +52,0,57,0,58,0,55,0,53,0,49,0,50,0,49,0,49,0,54,0,50,0,44,0,50,0,52,0,48,0,45,0, +44,0,44,0,40,0,40,0,44,0,42,0,44,0,44,0,36,0,40,0,44,0,40,0,43,0,41,0,38,0,43,0, +42,0,46,0,55,0,48,0,47,0,54,0,55,0,56,0,55,0,52,0,54,0,57,0,62,0,61,0,60,0,66,0, +65,0,64,0,68,0,62,0,61,0,67,0,69,0,71,0,66,0,60,0,64,0,64,0,61,0,64,0,66,0,65,0, +63,0,62,0,62,0,60,0,56,0,52,0,53,0,59,0,55,0,46,0,46,0,50,0,48,0,46,0,48,0,47,0, +42,0,47,0,50,0,41,0,45,0,49,0,40,0,41,0,46,0,44,0,47,0,45,0,41,0,44,0,47,0,49,0, +46,0,41,0,49,0,50,0,44,0,47,0,46,0,41,0,48,0,53,0,55,0,54,0,50,0,48,0,47,0,51,0, +58,0,57,0,51,0,51,0,54,0,56,0,60,0,60,0,55,0,53,0,55,0,57,0,59,0,60,0,61,0,63,0, +63,0,63,0,64,0,64,0,65,0,65,0,59,0,62,0,64,0,59,0,61,0,65,0,63,0,61,0,57,0,48,0, +48,0,59,0,62,0,55,0,53,0,53,0,50,0,56,0,59,0,52,0,52,0,57,0,58,0,60,0,59,0,55,0, +53,0,51,0,52,0,56,0,55,0,58,0,61,0,58,0,60,0,61,0,58,0,61,0,63,0,60,0,64,0,68,0, +65,0,67,0,71,0,70,0,71,0,70,0,69,0,72,0,71,0,71,0,73,0,70,0,70,0,71,0,69,0,71,0, +70,0,64,0,67,0,71,0,67,0,65,0,66,0,64,0,60,0,61,0,64,0,60,0,54,0,55,0,59,0,61,0, +58,0,55,0,55,0,52,0,50,0,57,0,57,0,53,0,56,0,61,0,59,0,55,0,56,0,58,0,55,0,53,0, +54,0,53,0,56,0,60,0,57,0,52,0,50,0,55,0,60,0,54,0,51,0,58,0,58,0,56,0,62,0,63,0, +59,0,61,0,63,0,60,0,58,0,58,0,60,0,67,0,69,0,65,0,67,0,71,0,67,0,65,0,70,0,70,0, +65,0,67,0,69,0,68,0,71,0,72,0,66,0,64,0,64,0,65,0,69,0,68,0,64,0,64,0,68,0,68,0, +62,0,59,0,58,0,57,0,60,0,63,0,60,0,58,0,58,0,60,0,61,0,60,0,61,0,60,0,57,0,56,0, +58,0,59,0,62,0,62,0,56,0,55,0,59,0,60,0,56,0,52,0,54,0,59,0,59,0,53,0,52,0,52,0, +51,0,57,0,60,0,53,0,51,0,52,0,49,0,46,0,50,0,57,0,54,0,51,0,58,0,56,0,52,0,62,0, +63,0,60,0,65,0,61,0,63,0,70,0,65,0,63,0,67,0,71,0,74,0,67,0,66,0,76,0,74,0,74,0, +80,0,78,0,78,0,79,0,82,0,87,0,82,0,77,0,79,0,76,0,80,0,85,0,79,0,75,0,73,0,75,0, +85,0,79,0,70,0,73,0,80,0,80,0,72,0,71,0,75,0,71,0,70,0,75,0,70,0,66,0,65,0,62,0, +66,0,69,0,63,0,60,0,63,0,64,0,65,0,66,0,65,0,64,0,66,0,64,0,62,0,64,0,64,0,63,0, +63,0,65,0,69,0,68,0,68,0,73,0,70,0,67,0,72,0,73,0,72,0,70,0,72,0,79,0,76,0,74,0, +80,0,77,0,74,0,82,0,83,0,80,0,81,0,82,0,87,0,88,0,85,0,87,0,89,0,86,0,85,0,88,0, +89,0,92,0,95,0,88,0,83,0,89,0,89,0,84,0,90,0,94,0,90,0,89,0,86,0,81,0,83,0,84,0, +80,0,78,0,81,0,84,0,81,0,78,0,78,0,78,0,75,0,75,0,78,0,78,0,79,0,82,0,79,0,78,0, +87,0,88,0,82,0,78,0,77,0,81,0,84,0,81,0,80,0,81,0,80,0,80,0,81,0,85,0,86,0,83,0, +83,0,87,0,89,0,88,0,86,0,88,0,88,0,89,0,93,0,92,0,88,0,90,0,92,0,94,0,94,0,92,0, +94,0,93,0,89,0,90,0,95,0,97,0,92,0,86,0,87,0,88,0,90,0,94,0,94,0,92,0,92,0,91,0, +93,0,93,0,89,0,88,0,87,0,85,0,85,0,81,0,81,0,86,0,88,0,87,0,84,0,80,0,83,0,83,0, +78,0,79,0,79,0,80,0,83,0,83,0,78,0,80,0,86,0,89,0,86,0,82,0,89,0,96,0,94,0,88,0, +87,0,94,0,101,0,99,0,92,0,89,0,94,0,102,0,100,0,97,0,98,0,96,0,99,0,107,0,102,0,94,0, +97,0,99,0,96,0,100,0,104,0,101,0,96,0,99,0,101,0,97,0,97,0,95,0,90,0,93,0,98,0,96,0, +91,0,88,0,89,0,89,0,87,0,88,0,88,0,89,0,88,0,84,0,85,0,85,0,81,0,83,0,88,0,90,0, +92,0,85,0,77,0,82,0,85,0,83,0,85,0,85,0,85,0,89,0,87,0,79,0,82,0,86,0,83,0,84,0, +87,0,85,0,90,0,92,0,89,0,92,0,95,0,96,0,100,0,97,0,91,0,95,0,102,0,98,0,95,0,100,0, +104,0,105,0,106,0,101,0,99,0,102,0,99,0,103,0,111,0,105,0,100,0,103,0,105,0,107,0,105,0,106,0, +109,0,103,0,102,0,108,0,100,0,93,0,97,0,97,0,94,0,94,0,99,0,101,0,92,0,86,0,86,0,88,0, +95,0,94,0,84,0,85,0,91,0,90,0,85,0,84,0,85,0,85,0,86,0,87,0,80,0,77,0,84,0,84,0, +83,0,85,0,84,0,81,0,83,0,86,0,82,0,80,0,87,0,87,0,81,0,85,0,91,0,91,0,87,0,84,0, +85,0,88,0,88,0,89,0,90,0,90,0,89,0,91,0,95,0,93,0,92,0,96,0,94,0,97,0,100,0,94,0, +91,0,93,0,93,0,98,0,98,0,94,0,96,0,95,0,91,0,89,0,91,0,95,0,91,0,88,0,92,0,90,0, +87,0,85,0,81,0,87,0,92,0,84,0,82,0,87,0,87,0,85,0,84,0,85,0,86,0,84,0,84,0,85,0, +85,0,84,0,79,0,81,0,86,0,86,0,85,0,84,0,83,0,88,0,90,0,88,0,87,0,85,0,86,0,90,0, +91,0,92,0,94,0,94,0,93,0,93,0,96,0,98,0,94,0,95,0,96,0,90,0,93,0,101,0,97,0,94,0, +98,0,98,0,96,0,94,0,92,0,91,0,91,0,96,0,98,0,89,0,88,0,94,0,91,0,88,0,88,0,85,0, +86,0,86,0,83,0,85,0,85,0,84,0,84,0,82,0,83,0,84,0,80,0,81,0,87,0,88,0,84,0,79,0, +78,0,80,0,81,0,81,0,84,0,83,0,81,0,84,0,88,0,87,0,85,0,86,0,89,0,88,0,84,0,88,0, +91,0,87,0,85,0,86,0,84,0,86,0,90,0,91,0,88,0,88,0,94,0,95,0,90,0,92,0,94,0,90,0, +94,0,98,0,93,0,93,0,97,0,96,0,95,0,99,0,100,0,97,0,97,0,100,0,97,0,96,0,100,0,95,0, +91,0,93,0,93,0,89,0,87,0,87,0,91,0,91,0,89,0,88,0,85,0,83,0,83,0,80,0,80,0,81,0, +75,0,70,0,76,0,80,0,80,0,78,0,72,0,72,0,77,0,74,0,72,0,77,0,76,0,76,0,84,0,80,0, +75,0,78,0,83,0,86,0,88,0,86,0,88,0,90,0,87,0,90,0,93,0,91,0,93,0,96,0,91,0,92,0, +94,0,91,0,91,0,96,0,95,0,94,0,97,0,96,0,92,0,90,0,92,0,91,0,88,0,92,0,91,0,86,0, +92,0,95,0,92,0,93,0,90,0,88,0,92,0,91,0,89,0,86,0,82,0,85,0,86,0,88,0,90,0,84,0, +84,0,88,0,83,0,83,0,86,0,85,0,85,0,84,0,86,0,86,0,79,0,82,0,88,0,81,0,79,0,83,0, +81,0,83,0,84,0,81,0,82,0,86,0,89,0,88,0,81,0,80,0,85,0,88,0,87,0,81,0,83,0,87,0, +84,0,88,0,91,0,86,0,89,0,94,0,90,0,90,0,90,0,87,0,90,0,91,0,85,0,84,0,89,0,90,0, +90,0,90,0,86,0,84,0,89,0,90,0,89,0,90,0,88,0,85,0,89,0,92,0,88,0,87,0,90,0,93,0, +91,0,89,0,91,0,89,0,87,0,90,0,92,0,88,0,84,0,87,0,92,0,89,0,85,0,86,0,88,0,89,0, +87,0,86,0,92,0,93,0,89,0,90,0,90,0,87,0,90,0,88,0,84,0,83,0,79,0,80,0,86,0,85,0, +84,0,83,0,82,0,84,0,83,0,83,0,86,0,82,0,80,0,87,0,90,0,87,0,84,0,85,0,86,0,83,0, +85,0,88,0,85,0,88,0,95,0,91,0,86,0,93,0,99,0,95,0,90,0,93,0,94,0,94,0,98,0,101,0, +99,0,99,0,101,0,99,0,95,0,94,0,94,0,91,0,92,0,93,0,87,0,87,0,91,0,90,0,89,0,87,0, +83,0,83,0,84,0,87,0,89,0,83,0,81,0,82,0,79,0,82,0,86,0,82,0,77,0,75,0,74,0,75,0, +78,0,79,0,80,0,80,0,81,0,80,0,80,0,82,0,80,0,79,0,81,0,84,0,87,0,89,0,86,0,83,0, +86,0,90,0,90,0,88,0,89,0,93,0,98,0,100,0,97,0,93,0,93,0,96,0,99,0,101,0,99,0,96,0, +99,0,97,0,94,0,100,0,103,0,99,0,101,0,100,0,93,0,95,0,96,0,89,0,92,0,96,0,90,0,88,0, +91,0,86,0,84,0,88,0,87,0,82,0,81,0,80,0,79,0,79,0,74,0,71,0,76,0,78,0,75,0,72,0, +69,0,70,0,70,0,67,0,72,0,76,0,68,0,64,0,73,0,76,0,74,0,76,0,76,0,78,0,86,0,83,0, +75,0,83,0,86,0,78,0,83,0,91,0,88,0,88,0,89,0,88,0,93,0,97,0,94,0,95,0,96,0,95,0, +97,0,96,0,95,0,97,0,98,0,96,0,94,0,95,0,98,0,97,0,96,0,95,0,90,0,84,0,83,0,86,0, +91,0,91,0,81,0,76,0,82,0,81,0,78,0,81,0,80,0,75,0,77,0,76,0,71,0,70,0,73,0,75,0, +70,0,63,0,66,0,71,0,65,0,64,0,70,0,70,0,68,0,68,0,69,0,72,0,72,0,73,0,78,0,79,0, +74,0,74,0,79,0,81,0,81,0,80,0,78,0,78,0,81,0,84,0,84,0,83,0,83,0,84,0,85,0,87,0, +88,0,87,0,86,0,85,0,86,0,86,0,84,0,87,0,90,0,85,0,82,0,83,0,84,0,88,0,89,0,86,0, +90,0,91,0,85,0,85,0,88,0,86,0,80,0,77,0,83,0,87,0,83,0,82,0,83,0,80,0,77,0,80,0, +83,0,82,0,81,0,79,0,73,0,72,0,73,0,69,0,71,0,76,0,72,0,70,0,71,0,69,0,71,0,72,0, +70,0,69,0,69,0,70,0,74,0,75,0,76,0,74,0,72,0,73,0,74,0,73,0,71,0,71,0,74,0,73,0, +72,0,78,0,75,0,70,0,73,0,73,0,71,0,75,0,76,0,72,0,75,0,78,0,74,0,72,0,77,0,79,0, +78,0,79,0,77,0,74,0,76,0,75,0,77,0,80,0,76,0,79,0,83,0,77,0,77,0,81,0,77,0,78,0, +83,0,81,0,78,0,79,0,80,0,76,0,74,0,78,0,74,0,70,0,74,0,72,0,69,0,72,0,72,0,70,0, +69,0,69,0,70,0,69,0,67,0,67,0,67,0,67,0,63,0,61,0,65,0,65,0,63,0,66,0,66,0,64,0, +68,0,69,0,70,0,70,0,69,0,73,0,73,0,70,0,74,0,74,0,69,0,70,0,73,0,73,0,73,0,76,0, +78,0,77,0,77,0,78,0,77,0,77,0,77,0,75,0,74,0,76,0,78,0,79,0,79,0,77,0,72,0,67,0, +71,0,75,0,73,0,72,0,76,0,77,0,73,0,70,0,68,0,68,0,72,0,73,0,69,0,71,0,74,0,70,0, +68,0,69,0,69,0,69,0,66,0,61,0,63,0,66,0,67,0,67,0,67,0,69,0,66,0,62,0,67,0,69,0, +64,0,63,0,63,0,63,0,66,0,66,0,63,0,69,0,73,0,67,0,67,0,73,0,74,0,75,0,74,0,70,0, +72,0,77,0,77,0,73,0,73,0,74,0,72,0,73,0,77,0,75,0,71,0,76,0,80,0,76,0,71,0,73,0, +75,0,73,0,73,0,76,0,70,0,66,0,74,0,74,0,67,0,66,0,68,0,70,0,70,0,67,0,64,0,64,0, +63,0,64,0,65,0,64,0,63,0,64,0,65,0,64,0,62,0,65,0,69,0,65,0,60,0,64,0,66,0,63,0, +64,0,64,0,62,0,63,0,64,0,59,0,61,0,66,0,65,0,64,0,64,0,66,0,69,0,66,0,64,0,67,0, +67,0,68,0,68,0,68,0,71,0,74,0,73,0,74,0,73,0,69,0,69,0,70,0,70,0,72,0,75,0,74,0, +71,0,71,0,72,0,71,0,71,0,72,0,71,0,70,0,69,0,64,0,63,0,69,0,70,0,63,0,62,0,66,0, +67,0,65,0,64,0,65,0,66,0,62,0,59,0,63,0,64,0,60,0,60,0,63,0,63,0,63,0,63,0,63,0, +61,0,60,0,61,0,61,0,62,0,63,0,61,0,62,0,66,0,62,0,62,0,64,0,63,0,64,0,67,0,65,0, +66,0,71,0,67,0,64,0,71,0,73,0,71,0,72,0,70,0,67,0,70,0,72,0,69,0,68,0,69,0,70,0, +70,0,71,0,72,0,69,0,66,0,67,0,66,0,66,0,66,0,66,0,66,0,63,0,64,0,68,0,66,0,62,0, +64,0,61,0,59,0,61,0,62,0,59,0,58,0,61,0,62,0,60,0,60,0,57,0,53,0,56,0,57,0,56,0, +60,0,58,0,57,0,60,0,56,0,58,0,66,0,59,0,52,0,57,0,60,0,60,0,61,0,62,0,64,0,62,0, +63,0,64,0,64,0,65,0,64,0,60,0,64,0,66,0,62,0,65,0,69,0,65,0,63,0,68,0,69,0,65,0, +66,0,70,0,70,0,68,0,65,0,67,0,68,0,60,0,61,0,68,0,65,0,64,0,67,0,66,0,68,0,65,0, +61,0,66,0,69,0,65,0,61,0,57,0,60,0,63,0,59,0,57,0,59,0,61,0,60,0,56,0,55,0,54,0, +53,0,57,0,56,0,51,0,54,0,54,0,52,0,56,0,54,0,48,0,51,0,57,0,56,0,54,0,56,0,57,0, +56,0,58,0,59,0,58,0,58,0,58,0,57,0,57,0,54,0,56,0,59,0,56,0,57,0,60,0,57,0,60,0, +62,0,57,0,59,0,61,0,60,0,62,0,61,0,59,0,60,0,60,0,62,0,63,0,60,0,61,0,61,0,58,0, +61,0,65,0,63,0,59,0,56,0,56,0,59,0,61,0,57,0,54,0,56,0,59,0,59,0,59,0,59,0,57,0, +58,0,57,0,51,0,48,0,52,0,54,0,49,0,49,0,52,0,50,0,50,0,50,0,46,0,44,0,45,0,41,0, +44,0,50,0,48,0,46,0,49,0,48,0,47,0,48,0,48,0,49,0,50,0,49,0,48,0,49,0,47,0,44,0, +45,0,50,0,47,0,45,0,50,0,51,0,47,0,49,0,52,0,52,0,50,0,49,0,51,0,54,0,51,0,50,0, +52,0,55,0,57,0,55,0,54,0,56,0,53,0,49,0,50,0,49,0,52,0,57,0,53,0,49,0,50,0,48,0, +49,0,53,0,50,0,49,0,52,0,52,0,52,0,51,0,47,0,48,0,51,0,50,0,48,0,48,0,49,0,50,0, +50,0,48,0,48,0,48,0,50,0,51,0,50,0,50,0,53,0,52,0,50,0,52,0,53,0,50,0,46,0,49,0, +53,0,50,0,51,0,55,0,52,0,52,0,54,0,50,0,47,0,48,0,47,0,50,0,54,0,52,0,51,0,49,0, +45,0,45,0,45,0,45,0,45,0,45,0,46,0,46,0,43,0,42,0,42,0,45,0,45,0,42,0,43,0,41,0, +39,0,42,0,42,0,37,0,41,0,42,0,38,0,38,0,39,0,37,0,39,0,39,0,39,0,40,0,36,0,35,0, +40,0,40,0,39,0,40,0,37,0,36,0,42,0,43,0,39,0,38,0,38,0,37,0,38,0,40,0,37,0,35,0, +39,0,40,0,37,0,43,0,44,0,39,0,45,0,48,0,43,0,46,0,44,0,39,0,44,0,43,0,39,0,47,0, +48,0,42,0,41,0,43,0,47,0,46,0,40,0,43,0,44,0,38,0,41,0,44,0,41,0,41,0,39,0,39,0, +42,0,38,0,34,0,36,0,39,0,40,0,38,0,38,0,39,0,35,0,37,0,43,0,38,0,34,0,37,0,36,0, +36,0,39,0,35,0,34,0,39,0,37,0,36,0,36,0,35,0,39,0,43,0,39,0,38,0,40,0,41,0,42,0, +44,0,43,0,41,0,41,0,45,0,46,0,45,0,45,0,45,0,46,0,47,0,46,0,44,0,43,0,41,0,44,0, +49,0,47,0,46,0,46,0,43,0,43,0,44,0,43,0,43,0,40,0,38,0,42,0,42,0,39,0,39,0,38,0, +34,0,33,0,37,0,40,0,34,0,32,0,34,0,31,0,28,0,29,0,27,0,28,0,30,0,28,0,26,0,25,0, +27,0,32,0,28,0,26,0,29,0,27,0,29,0,32,0,30,0,32,0,33,0,28,0,28,0,29,0,28,0,30,0, +30,0,30,0,32,0,32,0,33,0,32,0,30,0,34,0,35,0,34,0,38,0,38,0,32,0,33,0,36,0,34,0, +33,0,37,0,37,0,35,0,36,0,37,0,36,0,38,0,38,0,36,0,38,0,38,0,36,0,36,0,36,0,36,0, +37,0,38,0,36,0,34,0,36,0,38,0,32,0,32,0,38,0,32,0,30,0,36,0,33,0,34,0,38,0,34,0, +35,0,40,0,35,0,30,0,33,0,35,0,38,0,38,0,36,0,35,0,35,0,36,0,36,0,35,0,37,0,39,0, +39,0,40,0,43,0,41,0,34,0,34,0,40,0,41,0,39,0,36,0,38,0,42,0,42,0,40,0,40,0,38,0, +37,0,38,0,39,0,39,0,37,0,35,0,37,0,38,0,35,0,35,0,35,0,32,0,34,0,38,0,33,0,28,0, +31,0,31,0,27,0,26,0,25,0,25,0,28,0,27,0,27,0,31,0,28,0,23,0,24,0,24,0,21,0,21,0, +22,0,23,0,22,0,23,0,21,0,17,0,21,0,24,0,21,0,23,0,25,0,24,0,26,0,25,0,21,0,26,0, +31,0,28,0,28,0,30,0,29,0,29,0,34,0,35,0,31,0,32,0,32,0,29,0,31,0,33,0,31,0,34,0, +34,0,31,0,34,0,35,0,35,0,37,0,33,0,32,0,38,0,36,0,34,0,36,0,33,0,30,0,33,0,36,0, +30,0,28,0,34,0,35,0,29,0,28,0,30,0,32,0,31,0,28,0,30,0,33,0,31,0,29,0,29,0,32,0, +33,0,29,0,30,0,32,0,27,0,26,0,28,0,27,0,29,0,30,0,30,0,28,0,23,0,26,0,32,0,27,0, +28,0,34,0,30,0,29,0,32,0,30,0,31,0,32,0,28,0,28,0,33,0,35,0,29,0,26,0,30,0,32,0, +33,0,32,0,31,0,34,0,34,0,30,0,32,0,32,0,33,0,36,0,33,0,26,0,27,0,33,0,35,0,30,0, +26,0,28,0,27,0,23,0,27,0,27,0,25,0,26,0,22,0,21,0,26,0,25,0,21,0,22,0,24,0,25,0, +24,0,24,0,25,0,23,0,22,0,26,0,24,0,21,0,23,0,23,0,22,0,21,0,21,0,25,0,25,0,18,0, +20,0,24,0,21,0,22,0,24,0,22,0,24,0,26,0,26,0,27,0,22,0,21,0,27,0,26,0,24,0,25,0, +23,0,27,0,28,0,23,0,28,0,26,0,18,0,24,0,25,0,23,0,26,0,21,0,22,0,27,0,21,0,22,0, +26,0,20,0,22,0,23,0,19,0,23,0,22,0,18,0,24,0,23,0,19,0,18,0,16,0,19,0,21,0,19,0, +23,0,24,0,17,0,15,0,16,0,18,0,20,0,21,0,21,0,19,0,21,0,22,0,20,0,22,0,24,0,19,0, +20,0,26,0,27,0,28,0,28,0,24,0,25,0,30,0,31,0,26,0,26,0,31,0,30,0,25,0,26,0,27,0, +28,0,29,0,28,0,29,0,31,0,30,0,29,0,27,0,27,0,29,0,28,0,26,0,27,0,27,0,23,0,20,0, +23,0,26,0,25,0,26,0,24,0,21,0,24,0,25,0,23,0,24,0,24,0,22,0,22,0,15,0,13,0,16,0, +15,0,14,0,14,0,11,0,14,0,17,0,13,0,11,0,11,0,12,0,12,0,10,0,10,0,11,0,12,0,13,0, +11,0,7,0,9,0,11,0,10,0,12,0,14,0,9,0,7,0,13,0,16,0,13,0,11,0,11,0,12,0,14,0, +14,0,14,0,15,0,17,0,19,0,17,0,16,0,17,0,14,0,15,0,17,0,16,0,18,0,19,0,15,0,14,0, +15,0,14,0,17,0,19,0,19,0,19,0,19,0,18,0,19,0,20,0,18,0,17,0,19,0,19,0,16,0,18,0, +20,0,19,0,19,0,16,0,13,0,16,0,17,0,18,0,16,0,12,0,17,0,21,0,14,0,15,0,19,0,17,0, +17,0,16,0,15,0,17,0,16,0,13,0,16,0,18,0,16,0,10,0,10,0,16,0,13,0,11,0,17,0,15,0, +12,0,12,0,8,0,10,0,15,0,13,0,13,0,16,0,15,0,13,0,15,0,15,0,12,0,12,0,14,0,12,0, +12,0,13,0,10,0,14,0,16,0,13,0,13,0,11,0,10,0,14,0,12,0,5,0,8,0,13,0,13,0,9,0, +6,0,9,0,9,0,7,0,10,0,12,0,11,0,8,0,5,0,6,0,6,0,5,0,6,0,5,0,5,0,8,0, +7,0,6,0,5,0,3,0,6,0,10,0,9,0,8,0,7,0,8,0,11,0,12,0,10,0,9,0,11,0,15,0, +13,0,8,0,8,0,10,0,8,0,9,0,9,0,8,0,10,0,11,0,5,0,4,0,7,0,7,0,6,0,5,0, +7,0,10,0,8,0,7,0,11,0,8,0,3,0,7,0,5,0,2,0,5,0,3,0,3,0,6,0,4,0,3,0, +5,0,6,0,7,0,2,0,1,0,5,0,3,0,4,0,6,0,2,0,1,0,3,0,255,255,1,0,5,0,2,0, +1,0,0,0,255,255,0,0,255,255,0,0,3,0,6,0,4,0,3,0,6,0,7,0,4,0,6,0,7,0,6,0, +10,0,9,0,3,0,4,0,7,0,9,0,6,0,4,0,10,0,9,0,4,0,10,0,12,0,8,0,11,0,10,0, +8,0,9,0,6,0,9,0,11,0,4,0,6,0,10,0,7,0,8,0,8,0,5,0,4,0,4,0,8,0,8,0, +1,0,3,0,7,0,1,0,0,0,3,0,2,0,255,255,255,255,0,0,1,0,1,0,255,255,255,255,255,255,253,255, +255,255,254,255,250,255,251,255,251,255,250,255,254,255,255,255,250,255,250,255,251,255,251,255,251,255,249,255,249,255,253,255, +252,255,251,255,253,255,253,255,250,255,248,255,252,255,252,255,248,255,251,255,253,255,250,255,253,255,252,255,247,255,250,255, +255,255,254,255,251,255,250,255,253,255,254,255,253,255,255,255,255,255,250,255,250,255,252,255,254,255,2,0,0,0,253,255, +254,255,254,255,254,255,0,0,3,0,3,0,255,255,250,255,254,255,3,0,253,255,250,255,1,0,2,0,255,255,254,255, +253,255,254,255,254,255,253,255,255,255,254,255,252,255,1,0,0,0,251,255,255,255,255,255,254,255,2,0,0,0,251,255, +255,255,254,255,252,255,0,0,1,0,0,0,253,255,249,255,249,255,254,255,253,255,252,255,252,255,252,255,253,255,253,255, +250,255,249,255,252,255,252,255,250,255,249,255,247,255,249,255,253,255,252,255,249,255,249,255,249,255,250,255,250,255,245,255, +246,255,250,255,249,255,248,255,246,255,245,255,249,255,247,255,244,255,244,255,244,255,245,255,243,255,239,255,243,255,248,255, +246,255,244,255,242,255,243,255,247,255,246,255,246,255,248,255,246,255,245,255,246,255,249,255,249,255,248,255,248,255,246,255, +246,255,250,255,250,255,248,255,247,255,247,255,249,255,248,255,247,255,251,255,252,255,250,255,253,255,252,255,249,255,253,255, +252,255,247,255,246,255,247,255,249,255,246,255,245,255,247,255,245,255,243,255,247,255,249,255,246,255,245,255,246,255,244,255, +243,255,247,255,246,255,245,255,247,255,246,255,243,255,243,255,244,255,245,255,245,255,242,255,242,255,243,255,238,255,238,255, +243,255,242,255,238,255,241,255,243,255,238,255,240,255,242,255,239,255,239,255,242,255,240,255,237,255,238,255,241,255,241,255, +239,255,243,255,246,255,241,255,238,255,236,255,241,255,247,255,242,255,239,255,244,255,244,255,245,255,245,255,241,255,244,255, +249,255,246,255,241,255,243,255,247,255,246,255,241,255,241,255,242,255,241,255,243,255,245,255,244,255,241,255,242,255,246,255, +246,255,243,255,242,255,240,255,241,255,244,255,244,255,244,255,245,255,242,255,238,255,239,255,244,255,244,255,236,255,234,255, +240,255,241,255,238,255,237,255,236,255,236,255,237,255,237,255,237,255,235,255,235,255,236,255,235,255,236,255,236,255,234,255, +238,255,241,255,237,255,238,255,239,255,236,255,240,255,240,255,233,255,235,255,237,255,237,255,239,255,235,255,231,255,234,255, +235,255,236,255,239,255,237,255,238,255,240,255,240,255,241,255,239,255,237,255,237,255,238,255,241,255,243,255,239,255,236,255, +239,255,239,255,235,255,237,255,242,255,241,255,239,255,238,255,239,255,242,255,239,255,233,255,233,255,240,255,242,255,237,255, +236,255,238,255,239,255,241,255,241,255,237,255,238,255,240,255,240,255,241,255,238,255,239,255,242,255,239,255,241,255,242,255, +237,255,237,255,238,255,236,255,238,255,236,255,237,255,242,255,241,255,239,255,238,255,237,255,242,255,241,255,239,255,240,255, +239,255,240,255,241,255,235,255,237,255,243,255,239,255,238,255,241,255,238,255,236,255,239,255,239,255,235,255,235,255,235,255, +233,255,235,255,238,255,236,255,235,255,235,255,235,255,237,255,235,255,233,255,236,255,234,255,233,255,234,255,233,255,231,255, +230,255,234,255,236,255,229,255,227,255,233,255,235,255,235,255,232,255,232,255,233,255,232,255,233,255,235,255,235,255,237,255, +238,255,235,255,234,255,233,255,232,255,231,255,232,255,237,255,239,255,238,255,235,255,234,255,237,255,238,255,237,255,239,255, +237,255,236,255,241,255,240,255,237,255,242,255,243,255,240,255,240,255,239,255,239,255,239,255,241,255,244,255,243,255,240,255, +238,255,238,255,242,255,243,255,240,255,240,255,240,255,238,255,238,255,237,255,240,255,242,255,237,255,234,255,237,255,239,255, +236,255,231,255,232,255,236,255,232,255,229,255,233,255,233,255,232,255,233,255,233,255,234,255,233,255,231,255,232,255,231,255, +231,255,235,255,233,255,231,255,232,255,232,255,234,255,232,255,229,255,233,255,235,255,234,255,238,255,236,255,234,255,238,255, +236,255,232,255,233,255,236,255,237,255,236,255,237,255,236,255,233,255,238,255,242,255,240,255,238,255,235,255,238,255,243,255, +240,255,241,255,242,255,237,255,241,255,244,255,240,255,240,255,236,255,235,255,240,255,236,255,237,255,242,255,241,255,243,255, +241,255,237,255,239,255,237,255,236,255,240,255,240,255,239,255,236,255,231,255,237,255,240,255,238,255,239,255,237,255,234,255, +235,255,233,255,234,255,236,255,233,255,235,255,237,255,233,255,233,255,238,255,238,255,233,255,233,255,235,255,233,255,233,255, +233,255,230,255,232,255,234,255,231,255,232,255,233,255,232,255,233,255,234,255,232,255,230,255,233,255,237,255,238,255,234,255, +232,255,235,255,234,255,231,255,234,255,234,255,233,255,234,255,235,255,236,255,235,255,230,255,232,255,238,255,234,255,232,255, +235,255,235,255,234,255,234,255,233,255,231,255,231,255,235,255,237,255,235,255,234,255,234,255,231,255,231,255,233,255,233,255, +230,255,233,255,236,255,233,255,232,255,233,255,232,255,233,255,230,255,230,255,238,255,235,255,230,255,235,255,234,255,231,255, +235,255,233,255,231,255,234,255,235,255,234,255,231,255,231,255,234,255,233,255,234,255,234,255,231,255,232,255,234,255,232,255, +233,255,233,255,232,255,234,255,234,255,233,255,232,255,230,255,231,255,233,255,232,255,232,255,231,255,229,255,231,255,231,255, +227,255,227,255,231,255,232,255,231,255,231,255,232,255,229,255,227,255,231,255,231,255,227,255,228,255,227,255,228,255,230,255, +228,255,227,255,229,255,229,255,228,255,228,255,230,255,235,255,232,255,229,255,233,255,230,255,225,255,227,255,230,255,230,255, +228,255,228,255,231,255,229,255,228,255,230,255,231,255,228,255,226,255,230,255,231,255,228,255,231,255,234,255,231,255,231,255, +234,255,236,255,235,255,233,255,233,255,235,255,233,255,236,255,235,255,232,255,237,255,235,255,231,255,233,255,230,255,229,255, +234,255,230,255,228,255,233,255,233,255,231,255,232,255,231,255,231,255,233,255,234,255,233,255,232,255,233,255,231,255,231,255, +234,255,233,255,231,255,228,255,228,255,231,255,231,255,232,255,232,255,227,255,229,255,233,255,226,255,225,255,231,255,231,255, +231,255,229,255,228,255,229,255,228,255,228,255,229,255,227,255,226,255,228,255,228,255,226,255,227,255,231,255,230,255,227,255, +226,255,228,255,228,255,229,255,231,255,230,255,229,255,231,255,229,255,226,255,228,255,229,255,233,255,234,255,229,255,231,255, +233,255,229,255,231,255,232,255,229,255,231,255,231,255,230,255,233,255,233,255,233,255,232,255,231,255,233,255,233,255,235,255, +239,255,234,255,234,255,236,255,233,255,234,255,236,255,234,255,235,255,232,255,229,255,235,255,232,255,229,255,236,255,236,255, +232,255,230,255,228,255,230,255,229,255,228,255,232,255,232,255,230,255,232,255,232,255,232,255,229,255,228,255,231,255,228,255, +226,255,230,255,230,255,228,255,229,255,228,255,228,255,229,255,225,255,226,255,228,255,228,255,229,255,227,255,223,255,225,255, +226,255,226,255,228,255,226,255,223,255,224,255,227,255,227,255,224,255,225,255,229,255,226,255,226,255,229,255,228,255,228,255, +228,255,227,255,232,255,231,255,228,255,231,255,232,255,233,255,234,255,231,255,229,255,230,255,232,255,233,255,231,255,232,255, +233,255,230,255,233,255,233,255,228,255,233,255,234,255,231,255,233,255,233,255,232,255,233,255,231,255,231,255,230,255,230,255, +231,255,229,255,232,255,234,255,229,255,231,255,234,255,229,255,228,255,231,255,232,255,231,255,229,255,232,255,234,255,230,255, +230,255,232,255,229,255,227,255,230,255,234,255,234,255,231,255,231,255,233,255,231,255,229,255,230,255,233,255,231,255,230,255, +230,255,228,255,231,255,233,255,229,255,231,255,232,255,227,255,229,255,231,255,229,255,231,255,233,255,233,255,230,255,229,255, +231,255,230,255,229,255,229,255,225,255,226,255,231,255,231,255,231,255,231,255,229,255,230,255,231,255,230,255,230,255,228,255, +228,255,230,255,231,255,231,255,232,255,231,255,231,255,233,255,233,255,235,255,233,255,229,255,232,255,236,255,230,255,228,255, +234,255,235,255,231,255,231,255,232,255,234,255,235,255,231,255,231,255,234,255,234,255,234,255,236,255,234,255,231,255,233,255, +233,255,231,255,232,255,234,255,235,255,234,255,232,255,234,255,237,255,234,255,232,255,231,255,229,255,233,255,234,255,233,255, +233,255,230,255,231,255,236,255,231,255,226,255,229,255,231,255,233,255,232,255,229,255,229,255,230,255,231,255,231,255,229,255, +230,255,232,255,232,255,231,255,229,255,230,255,233,255,232,255,230,255,229,255,229,255,232,255,231,255,228,255,229,255,233,255, +231,255,229,255,231,255,230,255,230,255,233,255,230,255,227,255,233,255,233,255,230,255,232,255,230,255,230,255,232,255,231,255, +231,255,231,255,231,255,232,255,231,255,231,255,232,255,229,255,230,255,234,255,235,255,233,255,230,255,231,255,234,255,235,255, +236,255,236,255,233,255,235,255,236,255,233,255,235,255,233,255,231,255,235,255,233,255,232,255,236,255,237,255,236,255,234,255, +231,255,231,255,232,255,231,255,234,255,236,255,235,255,237,255,238,255,234,255,231,255,230,255,231,255,233,255,233,255,233,255, +233,255,230,255,233,255,235,255,232,255,232,255,236,255,235,255,235,255,234,255,232,255,229,255,230,255,233,255,233,255,231,255, +231,255,230,255,232,255,235,255,231,255,230,255,231,255,231,255,235,255,233,255,228,255,231,255,233,255,233,255,236,255,233,255, +232,255,235,255,231,255,231,255,235,255,234,255,233,255,234,255,236,255,235,255,234,255,235,255,237,255,238,255,239,255,237,255, +238,255,239,255,237,255,238,255,237,255,236,255,238,255,237,255,237,255,237,255,236,255,239,255,241,255,238,255,239,255,238,255, +236,255,238,255,238,255,237,255,237,255,234,255,237,255,240,255,237,255,238,255,240,255,239,255,238,255,237,255,236,255,238,255, +238,255,237,255,238,255,239,255,239,255,237,255,236,255,237,255,238,255,237,255,235,255,235,255,236,255,237,255,237,255,235,255, +234,255,235,255,237,255,238,255,235,255,236,255,237,255,235,255,233,255,235,255,235,255,236,255,236,255,236,255,235,255,235,255, +236,255,237,255,236,255,236,255,237,255,237,255,238,255,240,255,241,255,239,255,234,255,236,255,240,255,241,255,241,255,238,255, +235,255,240,255,243,255,240,255,240,255,242,255,241,255,238,255,237,255,238,255,238,255,239,255,238,255,235,255,239,255,240,255, +236,255,238,255,240,255,242,255,243,255,238,255,238,255,244,255,242,255,239,255,240,255,240,255,239,255,240,255,242,255,242,255, +240,255,239,255,239,255,240,255,242,255,242,255,240,255,239,255,240,255,242,255,243,255,242,255,241,255,240,255,241,255,243,255, +242,255,240,255,240,255,242,255,243,255,242,255,242,255,239,255,239,255,243,255,244,255,242,255,241,255,240,255,240,255,242,255, +242,255,241,255,242,255,241,255,240,255,241,255,241,255,239,255,238,255,242,255,245,255,242,255,239,255,240,255,242,255,243,255, +243,255,244,255,244,255,244,255,242,255,241,255,244,255,246,255,241,255,239,255,240,255,241,255,242,255,243,255,245,255,243,255, +241,255,241,255,243,255,244,255,244,255,242,255,243,255,245,255,244,255,244,255,243,255,242,255,244,255,244,255,244,255,246,255, +245,255,243,255,243,255,242,255,243,255,245,255,245,255,244,255,245,255,244,255,242,255,243,255,247,255,247,255,244,255,244,255, +246,255,246,255,246,255,245,255,246,255,246,255,245,255,245,255,247,255,248,255,248,255,247,255,243,255,240,255,241,255,245,255, +247,255,245,255,243,255,246,255,248,255,244,255,241,255,245,255,245,255,245,255,246,255,244,255,242,255,242,255,244,255,245,255, +244,255,243,255,244,255,245,255,245,255,245,255,244,255,244,255,243,255,242,255,245,255,246,255,247,255,250,255,249,255,246,255, +246,255,247,255,246,255,245,255,246,255,248,255,249,255,249,255,248,255,247,255,249,255,249,255,248,255,248,255,247,255,247,255, +249,255,248,255,247,255,249,255,249,255,248,255,248,255,249,255,249,255,249,255,249,255,250,255,250,255,250,255,250,255,249,255, +247,255,248,255,249,255,249,255,249,255,249,255,248,255,247,255,246,255,249,255,252,255,251,255,249,255,251,255,250,255,249,255, +249,255,250,255,250,255,248,255,248,255,250,255,251,255,251,255,251,255,250,255,251,255,250,255,248,255,250,255,252,255,251,255, +248,255,248,255,249,255,249,255,249,255,250,255,250,255,251,255,252,255,251,255,251,255,249,255,249,255,252,255,251,255,249,255, +249,255,248,255,251,255,253,255,250,255,248,255,250,255,253,255,254,255,251,255,250,255,251,255,251,255,252,255,251,255,249,255, +251,255,252,255,250,255,249,255,251,255,252,255,251,255,250,255,250,255,248,255,252,255,254,255,249,255,249,255,253,255,252,255, +252,255,253,255,249,255,249,255,251,255,250,255,248,255,251,255,254,255,252,255,251,255,254,255,254,255,253,255,251,255,252,255, +255,255,254,255,253,255,0,0,255,255,253,255,254,255,253,255,253,255,252,255,253,255,1,0,0,0,252,255,253,255,254,255, +253,255,255,255,253,255,253,255,255,255,254,255,253,255,0,0,254,255,250,255,252,255,255,255,253,255,252,255,254,255,254,255, +252,255,253,255,255,255,255,255,253,255,253,255,253,255,255,255,255,255,251,255,249,255,254,255,255,255,253,255,253,255,253,255, +252,255,251,255,252,255,253,255,252,255,253,255,253,255,252,255,255,255,0,0,255,255,253,255,252,255,253,255,254,255,254,255, +255,255,254,255,251,255,252,255,253,255,254,255,255,255,254,255,253,255,0,0,3,0,1,0,252,255,0,0,2,0,254,255, +254,255,254,255,254,255,1,0,255,255,253,255,1,0,1,0,254,255,255,255,0,0,0,0,255,255,255,255,1,0,1,0, +2,0,1,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0,1,0,255,255, +254,255,1,0,255,255,253,255,255,255,254,255,252,255,252,255,255,255,255,255,254,255,255,255,255,255,254,255,0,0,254,255, +251,255,255,255,0,0,254,255,0,0,255,255,253,255,0,0,0,0,252,255,254,255,1,0,255,255,0,0,2,0,0,0, +253,255,255,255,1,0,1,0,1,0,0,0,0,0,254,255,254,255,0,0,2,0,2,0,255,255,255,255,1,0,255,255, +255,255,1,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,1,0,2,0,0,0,254,255,0,0,2,0,1,0, +0,0,0,0,0,0,2,0,0,0,255,255,3,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +254,255,0,0,0,0,1,0,2,0,0,0,1,0,0,0,254,255,0,0,0,0,255,255,1,0,255,255,254,255,255,255, +0,0,2,0,0,0,254,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,2,0,1,0,0,0,2,0,1,0, +0,0,2,0,0,0,254,255,255,255,0,0,1,0,0,0,253,255,252,255,254,255,255,255,1,0,255,255,255,255,1,0, +255,255,1,0,1,0,253,255,254,255,1,0,0,0,255,255,253,255,252,255,253,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,1,0,1,0,254,255,253,255,254,255,0,0,2,0,1,0,255,255,0,0,2,0,2,0,255,255, +255,255,4,0,3,0,0,0,2,0,1,0,255,255,0,0,0,0,1,0,3,0,3,0,0,0,0,0,2,0,1,0, +0,0,4,0,3,0,0,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,0,0,1,0,0,0,255,255,255,255, +0,0,2,0,0,0,255,255,1,0,0,0,255,255,255,255,253,255,254,255,254,255,253,255,255,255,0,0,254,255,255,255, +255,255,255,255,0,0,255,255,0,0,255,255,253,255,0,0,1,0,254,255,254,255,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,254,255,255,255,255,255,254,255,0,0, +1,0,1,0,2,0,0,0,255,255,1,0,255,255,254,255,1,0,3,0,1,0,1,0,3,0,3,0,2,0,1,0, +1,0,2,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,3,0,0,0,253,255,255,255, +0,0,255,255,0,0,0,0,1,0,0,0,255,255,1,0,0,0,254,255,0,0,1,0,255,255,255,255,255,255,254,255, +254,255,255,255,255,255,0,0,2,0,1,0,0,0,0,0,253,255,254,255,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,254,255,0,0,1,0,253,255,255,255,1,0,0,0,2,0,0,0,0,0,3,0,1,0,0,0, +0,0,255,255,255,255,255,255,255,255,254,255,255,255,3,0,3,0,1,0,1,0,0,0,0,0,4,0,2,0,255,255, +1,0,2,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,254,255,255,255,2,0,2,0,0,0,1,0, +0,0,255,255,2,0,1,0,254,255,1,0,3,0,0,0,1,0,0,0,254,255,255,255,254,255,0,0,3,0,1,0, +1,0,2,0,1,0,2,0,4,0,1,0,255,255,1,0,0,0,1,0,4,0,0,0,254,255,1,0,0,0,254,255, +1,0,1,0,255,255,255,255,0,0,255,255,254,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,2,0,1,0,254,255,255,255,1,0,0,0,255,255,255,255,255,255,0,0,255,255,254,255,1,0,1,0,254,255, +255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,1,0,1,0,3,0,3,0,0,0,1,0,1,0,255,255, +1,0,2,0,3,0,2,0,0,0,1,0,1,0,0,0,2,0,1,0,254,255,1,0,3,0,3,0,4,0,2,0, +255,255,1,0,2,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,254,255,0,0,3,0,0,0, +255,255,0,0,255,255,254,255,1,0,1,0,255,255,255,255,254,255,254,255,0,0,0,0,0,0,2,0,0,0,255,255, +0,0,255,255,1,0,3,0,1,0,2,0,2,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,255,255,1,0,1,0,0,0, +2,0,1,0,255,255,255,255,0,0,3,0,3,0,1,0,3,0,2,0,0,0,2,0,0,0,255,255,0,0,255,255, +255,255,255,255,255,255,1,0,2,0,1,0,1,0,254,255,255,255,0,0,255,255,3,0,3,0,0,0,2,0,1,0, +255,255,1,0,3,0,1,0,254,255,254,255,1,0,255,255,254,255,254,255,255,255,1,0,1,0,253,255,0,0,3,0, +0,0,255,255,1,0,2,0,0,0,254,255,254,255,0,0,2,0,0,0,253,255,255,255,1,0,254,255,0,0,2,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,255,255, +255,255,255,255,1,0,1,0,255,255,0,0,2,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,255,255,0,0, +1,0,1,0,254,255,255,255,2,0,0,0,254,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,255,255,0,0,2,0,1,0,0,0,0,0,254,255,254,255,1,0,2,0,1,0,0,0,1,0,2,0,1,0, +0,0,255,255,0,0,1,0,255,255,254,255,255,255,254,255,0,0,1,0,254,255,252,255,253,255,254,255,254,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,255,255,254,255,255,255,254,255,254,255,255,255,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,254,255,0,0,0,0,255,255,0,0,255,255,253,255,253,255,254,255,255,255,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,254,255,254,255,1,0,255,255,255,255,1,0,0,0,0,0,254,255, +254,255,2,0,1,0,255,255,1,0,0,0,255,255,255,255,254,255,255,255,255,255,254,255,255,255,255,255,0,0,1,0, +255,255,254,255,255,255,0,0,255,255,254,255,0,0,1,0,255,255,0,0,0,0,253,255,254,255,0,0,254,255,254,255, +254,255,254,255,254,255,255,255,254,255,253,255,253,255,255,255,254,255,253,255,255,255,254,255,254,255,255,255,254,255,254,255, +254,255,253,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,0,0,0,0, +255,255,0,0,2,0,0,0,1,0,2,0,0,0,0,0,255,255,254,255,1,0,0,0,255,255,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,254,255,254,255,0,0,0,0,254,255, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,254,255,252,255,254,255,254,255,254,255,255,255,253,255, +253,255,254,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,255,255,254,255,253,255,254,255,254,255,255,255,254,255, +253,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,253,255,254,255,255,255,255,255,255,255,0,0,0,0,254,255, +254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,255,255,253,255,255,255, +0,0,0,0,0,0,0,0,1,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,255,255,254,255,0,0, +0,0,255,255,255,255,254,255,254,255,255,255,254,255,0,0,0,0,254,255,0,0,0,0,255,255,255,255,254,255,254,255, +254,255,255,255,254,255,253,255,253,255,0,0,0,0,254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,254,255, +255,255,1,0,1,0,255,255,253,255,255,255,1,0,255,255,254,255,1,0,3,0,0,0,254,255,0,0,255,255,253,255, +0,0,0,0,254,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,3,0,2,0,254,255, +0,0,2,0,0,0,0,0,1,0,1,0,1,0,254,255,254,255,255,255,254,255,255,255,1,0,0,0,1,0,255,255, +254,255,0,0,1,0,1,0,0,0,254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,253,255,255,255,1,0, +255,255,254,255,1,0,0,0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,2,0,4,0,3,0,2,0,1,0,2,0,4,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,1,0,1,0,2,0,0,0,0,0,2,0,0,0,0,0, +0,0,0,0,3,0,2,0,0,0,1,0,2,0,1,0,0,0,255,255,1,0,2,0,0,0,1,0,2,0,1,0, +1,0,0,0,0,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,4,0,1,0,0,0,2,0,2,0, +1,0,3,0,3,0,2,0,4,0,4,0,2,0,0,0,1,0,2,0,3,0,5,0,4,0,2,0,2,0,3,0, +3,0,2,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,5,0,4,0, +3,0,4,0,2,0,3,0,4,0,2,0,4,0,5,0,3,0,3,0,2,0,1,0,4,0,4,0,1,0,1,0, +2,0,2,0,2,0,3,0,3,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0, +0,0,1,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,4,0, +4,0,3,0,5,0,4,0,3,0,5,0,4,0,3,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0, +4,0,6,0,5,0,3,0,4,0,4,0,3,0,4,0,4,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0, +4,0,3,0,5,0,6,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0,3,0, +4,0,4,0,5,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,5,0,3,0,2,0, +4,0,3,0,2,0,3,0,3,0,2,0,4,0,3,0,4,0,5,0,3,0,3,0,4,0,3,0,4,0,4,0, +4,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0,3,0,3,0,5,0,6,0,5,0,5,0,4,0, +3,0,6,0,6,0,4,0,5,0,5,0,5,0,5,0,3,0,2,0,4,0,4,0,3,0,5,0,5,0,4,0, +5,0,5,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0, +5,0,5,0,4,0,5,0,7,0,5,0,4,0,5,0,5,0,5,0,4,0,4,0,6,0,5,0,4,0,6,0, +5,0,4,0,5,0,4,0,5,0,5,0,4,0,3,0,4,0,5,0,4,0,4,0,5,0,4,0,3,0,5,0, +4,0,4,0,6,0,5,0,5,0,7,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,4,0,3,0, +5,0,4,0,4,0,5,0,6,0,6,0,5,0,5,0,6,0,5,0,6,0,6,0,4,0,5,0,7,0,6,0, +5,0,5,0,6,0,5,0,6,0,5,0,4,0,5,0,6,0,6,0,6,0,7,0,6,0,7,0,7,0,5,0, +5,0,5,0,4,0,4,0,6,0,5,0,4,0,4,0,5,0,6,0,6,0,6,0,5,0,5,0,4,0,4,0, +6,0,6,0,6,0,4,0,3,0,5,0,6,0,5,0,6,0,4,0,4,0,7,0,6,0,4,0,5,0,5,0, +5,0,6,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,4,0,5,0,7,0,4,0,4,0,6,0, +5,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0,7,0,6,0,5,0,4,0,5,0,6,0,6,0, +5,0,6,0,6,0,6,0,7,0,6,0,6,0,7,0,6,0,5,0,6,0,6,0,6,0,6,0,4,0,4,0, +5,0,7,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0,5,0, +5,0,6,0,7,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,7,0,7,0, +5,0,5,0,7,0,5,0,5,0,7,0,6,0,5,0,5,0,5,0,7,0,7,0,6,0,6,0,5,0,5,0, +6,0,6,0,6,0,5,0,5,0,7,0,6,0,4,0,7,0,6,0,4,0,5,0,5,0,5,0,6,0,6,0, +5,0,5,0,6,0,6,0,5,0,7,0,7,0,5,0,4,0,6,0,6,0,5,0,4,0,5,0,6,0,6,0, +6,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0,5,0,7,0,6,0,6,0,6,0,6,0,7,0,6,0, +6,0,7,0,6,0,6,0,7,0,8,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0,7,0,8,0, +8,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,5,0,5,0,7,0,6,0, +6,0,7,0,5,0,6,0,7,0,5,0,5,0,7,0,6,0,7,0,6,0,5,0,6,0,6,0,4,0,6,0, +7,0,6,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,5,0,6,0,7,0,6,0,7,0, +6,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,8,0,6,0,5,0,6,0,6,0,5,0,6,0, +7,0,7,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0,6,0, +7,0,7,0,6,0,6,0,7,0,7,0,5,0,5,0,7,0,7,0,7,0,7,0,6,0,6,0,6,0,7,0, +7,0,6,0,5,0,6,0,8,0,7,0,5,0,7,0,8,0,6,0,6,0,7,0,7,0,7,0,7,0,8,0, +8,0,7,0,6,0,7,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0,7,0, +6,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0,7,0,7,0,4,0,5,0,7,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,6,0,6,0, +6,0,7,0,8,0,8,0,6,0,5,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,7,0,7,0, +6,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,7,0,8,0,6,0,6,0,8,0,7,0,6,0, +7,0,7,0,6,0,7,0,7,0,7,0,8,0,7,0,6,0,6,0,7,0,7,0,6,0,5,0,7,0,7,0, +6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,6,0,6,0,7,0,7,0,6,0,7,0, +7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0, +6,0,7,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,8,0,7,0,6,0,7,0, +7,0,7,0,7,0,6,0,6,0,8,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, +7,0,8,0,7,0,6,0,7,0,6,0,7,0,7,0,7,0,6,0,7,0,7,0,7,0,7,0,8,0,7,0, +6,0,7,0,8,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0, +8,0,8,0,7,0,7,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0, +7,0,7,0,7,0,5,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,8,0,7,0,7,0,7,0, +6,0,7,0,8,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,7,0,7,0,7,0,8,0,7,0,7,0, +8,0,7,0,6,0,7,0,8,0,8,0,7,0,6,0,7,0,8,0,8,0,6,0,7,0,8,0,7,0,6,0, +6,0,6,0,7,0,7,0,7,0,7,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0, +7,0,7,0,7,0,7,0,6,0,6,0,7,0,7,0,7,0,8,0,7,0,7,0,7,0,7,0,8,0,7,0, +6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,8,0,7,0,7,0,7,0,6,0,7,0,8,0,8,0, +7,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,7,0,8,0,7,0,6,0,6,0, +7,0,8,0,6,0,6,0,8,0,7,0,6,0,7,0,8,0,7,0,7,0,6,0,7,0,8,0,7,0,7,0, +8,0,7,0,8,0,8,0,6,0,7,0,8,0,7,0,7,0,6,0,6,0,7,0,8,0,6,0,6,0,7,0, +7,0,8,0,8,0,6,0,6,0,6,0,7,0,7,0,6,0,7,0,8,0,7,0,7,0,7,0,7,0,7,0, +6,0,6,0,8,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,6,0, +6,0,6,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0, +6,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,6,0,7,0, +7,0,6,0,7,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,6,0,6,0,7,0, +6,0,6,0,7,0,6,0,6,0,7,0,6,0,5,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,7,0, +5,0,5,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0, +6,0,6,0,5,0,6,0,6,0,5,0,6,0,7,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0, +6,0,5,0,5,0,6,0,6,0,6,0,5,0,6,0,6,0,5,0,6,0,7,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0, +6,0,6,0,5,0,5,0,6,0,6,0,4,0,5,0,6,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0, +5,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0, +5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,5,0,4,0,5,0,5,0,5,0,6,0,5,0,5,0, +6,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0, +4,0,4,0,5,0,6,0,6,0,5,0,4,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0, +5,0,4,0,5,0,5,0,4,0,4,0,5,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,5,0, +4,0,4,0,4,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,5,0,5,0,4,0,5,0, +5,0,3,0,4,0,5,0,4,0,5,0,5,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0, +4,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0, +4,0,3,0,3,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0, +4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0, +3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0, +3,0,3,0,3,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,3,0,3,0, +3,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0, +3,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,3,0,2,0,1,0,3,0,3,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,1,0, +2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0, +3,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0, +2,0,3,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0, +3,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0, +2,0,1,0,1,0,1,0,3,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0, +1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0, +3,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0, +2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0, +3,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,0,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,255,255,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,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,1,0,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,1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +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,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,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,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,254,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,1,0,1,0,255,255,255,255,255,255,1,0,1,0,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,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,1,0,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,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,255,255,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +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,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,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,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255, +0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,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, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,255,255,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,254,255,255,255,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0, +255,255,255,255,255,255,254,255,254,255,255,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255,254,255, +255,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,254,255, +254,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,254,255,0,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0, +2,0,2,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0, +2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0, +1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,1,0,1,0,3,0,2,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,2,0, +3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0,3,0, +3,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0, +3,0,3,0,2,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0, +3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0, +3,0,3,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,2,0,3,0,4,0,3,0,3,0,4,0,4,0, +3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0,2,0,3,0,4,0,3,0,3,0, +3,0,3,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0, +4,0,4,0,3,0,2,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0, +3,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0, +3,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,2,0,3,0, +4,0,4,0,3,0,3,0,5,0,4,0,4,0,3,0,3,0,3,0,4,0,3,0,4,0,4,0,3,0,4,0, +5,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,5,0,5,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0, +5,0,4,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0, +4,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0, +6,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0,6,0,7,0,5,0,5,0, +6,0,6,0,5,0,6,0,7,0,7,0,6,0,5,0,6,0,7,0,6,0,6,0,6,0,7,0,7,0,6,0, +6,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,7,0, +8,0,7,0,6,0,7,0,7,0,7,0,8,0,8,0,7,0,7,0,8,0,8,0,8,0,8,0,8,0,8,0, +8,0,8,0,8,0,8,0,7,0,8,0,8,0,7,0,7,0,8,0,8,0,8,0,9,0,8,0,8,0,8,0, +8,0,8,0,8,0,8,0,9,0,9,0,8,0,9,0,8,0,8,0,8,0,8,0,9,0,10,0,8,0,8,0, +9,0,9,0,9,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,8,0,9,0,9,0,9,0,9,0,10,0, +9,0,9,0,9,0,9,0,10,0,10,0,9,0,10,0,10,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0, +10,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,9,0,10,0,10,0,10,0,9,0,9,0, +11,0,11,0,10,0,10,0,11,0,10,0,10,0,11,0,11,0,11,0,11,0,12,0,11,0,11,0,11,0,11,0, +10,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,12,0,12,0,11,0,11,0,11,0,11,0, +12,0,12,0,11,0,12,0,12,0,11,0,12,0,12,0,11,0,11,0,12,0,12,0,12,0,12,0,12,0,12,0, +12,0,12,0,12,0,12,0,13,0,12,0,12,0,13,0,13,0,12,0,13,0,13,0,13,0,13,0,13,0,12,0, +12,0,13,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0, +13,0,13,0,13,0,12,0,13,0,13,0,14,0,13,0,13,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, +14,0,15,0,15,0,14,0,15,0,16,0,15,0,14,0,14,0,14,0,14,0,14,0,15,0,15,0,15,0,14,0, +15,0,15,0,14,0,14,0,14,0,15,0,16,0,14,0,15,0,16,0,15,0,15,0,16,0,15,0,14,0,15,0, +15,0,15,0,15,0,15,0,16,0,16,0,15,0,16,0,16,0,15,0,16,0,17,0,16,0,16,0,17,0,16,0, +16,0,16,0,17,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,17,0,17,0,17,0,17,0,17,0,16,0, +16,0,17,0,18,0,17,0,17,0,17,0,17,0,17,0,17,0,18,0,18,0,18,0,18,0,18,0,17,0,18,0, +18,0,17,0,18,0,18,0,18,0,18,0,17,0,17,0,17,0,18,0,18,0,18,0,18,0,19,0,18,0,17,0, +18,0,18,0,18,0,18,0,18,0,17,0,18,0,19,0,19,0,19,0,19,0,18,0,20,0,20,0,19,0,19,0, +19,0,19,0,19,0,19,0,19,0,19,0,20,0,20,0,19,0,19,0,20,0,20,0,19,0,19,0,20,0,20,0, +20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,21,0,20,0,20,0,20,0,20,0,20,0,21,0, +21,0,20,0,20,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0,21,0,21,0,21,0,21,0,21,0,23,0, +22,0,21,0,22,0,22,0,21,0,21,0,22,0,22,0,21,0,21,0,22,0,23,0,22,0,22,0,22,0,21,0, +22,0,22,0,22,0,23,0,23,0,22,0,22,0,22,0,22,0,23,0,23,0,23,0,23,0,22,0,22,0,23,0, +23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,24,0,24,0,23,0,23,0,23,0,24,0,24,0, +24,0,24,0,23,0,23,0,23,0,24,0,24,0,24,0,23,0,23,0,23,0,23,0,24,0,24,0,24,0,24,0, +24,0,24,0,24,0,24,0,25,0,24,0,24,0,25,0,25,0,25,0,25,0,24,0,24,0,26,0,25,0,25,0, +25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,26,0,26,0,25,0,26,0,26,0,25,0, +25,0,26,0,26,0,26,0,27,0,26,0,26,0,26,0,26,0,27,0,27,0,26,0,27,0,26,0,26,0,27,0, +27,0,26,0,26,0,26,0,26,0,27,0,27,0,26,0,26,0,27,0,27,0,26,0,26,0,27,0,27,0,27,0, +27,0,28,0,27,0,26,0,26,0,27,0,27,0,27,0,27,0,28,0,28,0,27,0,28,0,28,0,27,0,27,0, +27,0,28,0,28,0,28,0,27,0,28,0,28,0,28,0,28,0,27,0,27,0,27,0,28,0,29,0,28,0,28,0, +28,0,28,0,29,0,28,0,28,0,29,0,28,0,27,0,29,0,28,0,28,0,29,0,29,0,29,0,29,0,28,0, +28,0,29,0,28,0,28,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,30,0,29,0,29,0,30,0, +29,0,29,0,29,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,31,0,30,0,30,0,30,0,30,0, +30,0,31,0,31,0,30,0,30,0,30,0,30,0,31,0,31,0,30,0,31,0,31,0,30,0,31,0,32,0,31,0, +30,0,31,0,31,0,31,0,32,0,31,0,30,0,32,0,31,0,30,0,31,0,32,0,31,0,31,0,32,0,32,0, +32,0,32,0,32,0,31,0,32,0,32,0,32,0,31,0,31,0,31,0,31,0,32,0,32,0,31,0,32,0,33,0, +33,0,33,0,32,0,32,0,32,0,33,0,32,0,32,0,33,0,32,0,32,0,33,0,33,0,33,0,33,0,33,0, +33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,34,0,33,0,32,0,33,0,33,0,33,0,33,0, +34,0,34,0,33,0,34,0,33,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,35,0,35,0,34,0,34,0, +35,0,35,0,34,0,34,0,35,0,36,0,34,0,33,0,35,0,36,0,35,0,35,0,35,0,35,0,35,0,35,0, +35,0,35,0,35,0,35,0,35,0,35,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0, +36,0,36,0,36,0,36,0,37,0,36,0,36,0,37,0,36,0,36,0,36,0,36,0,37,0,37,0,36,0,37,0, +38,0,37,0,36,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,38,0,38,0,38,0,38,0,38,0, +38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,39,0,38,0,38,0,38,0, +39,0,39,0,38,0,39,0,39,0,38,0,39,0,39,0,39,0,40,0,40,0,39,0,39,0,40,0,39,0,40,0, +40,0,39,0,39,0,40,0,40,0,39,0,39,0,39,0,39,0,40,0,40,0,40,0,40,0,39,0,40,0,40,0, +40,0,40,0,40,0,40,0,40,0,41,0,40,0,40,0,41,0,41,0,41,0,41,0,40,0,41,0,41,0,41,0, +41,0,40,0,40,0,41,0,41,0,41,0,41,0,40,0,41,0,42,0,42,0,41,0,42,0,42,0,42,0,42,0, +42,0,42,0,42,0,42,0,42,0,42,0,43,0,43,0,43,0,42,0,43,0,43,0,42,0,42,0,43,0,43,0, +42,0,43,0,43,0,43,0,43,0,43,0,43,0,44,0,44,0,43,0,43,0,43,0,43,0,45,0,45,0,44,0, +43,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,45,0,44,0,43,0,45,0, +45,0,45,0,45,0,45,0,44,0,44,0,45,0,44,0,44,0,44,0,45,0,45,0,45,0,44,0,45,0,46,0, +45,0,45,0,45,0,45,0,45,0,46,0,45,0,45,0,45,0,46,0,45,0,45,0,45,0,45,0,46,0,46,0, +45,0,45,0,45,0,45,0,46,0,46,0,45,0,46,0,47,0,46,0,46,0,46,0,46,0,46,0,47,0,46,0, +45,0,46,0,47,0,47,0,46,0,47,0,46,0,46,0,47,0,47,0,47,0,48,0,48,0,47,0,47,0,48,0, +47,0,47,0,48,0,47,0,47,0,48,0,47,0,47,0,49,0,48,0,47,0,47,0,48,0,48,0,48,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,49,0,47,0,48,0,50,0,49,0,48,0, +50,0,49,0,48,0,48,0,49,0,49,0,49,0,49,0,48,0,48,0,50,0,50,0,49,0,49,0,50,0,50,0, +49,0,50,0,50,0,49,0,49,0,49,0,50,0,50,0,50,0,49,0,49,0,50,0,50,0,50,0,50,0,50,0, +50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,51,0,51,0,51,0,50,0,51,0,52,0, +51,0,50,0,51,0,51,0,51,0,50,0,51,0,51,0,50,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0, +51,0,51,0,52,0,52,0,51,0,51,0,51,0,52,0,52,0,52,0,52,0,53,0,52,0,52,0,53,0,53,0, +51,0,51,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,53,0,53,0,53,0,52,0,52,0, +53,0,53,0,52,0,53,0,53,0,52,0,53,0,53,0,53,0,53,0,54,0,53,0,53,0,54,0,53,0,53,0, +54,0,54,0,53,0,53,0,53,0,54,0,53,0,53,0,53,0,54,0,54,0,53,0,53,0,54,0,54,0,54,0, +54,0,54,0,54,0,53,0,53,0,54,0,55,0,54,0,54,0,54,0,55,0,54,0,54,0,54,0,54,0,54,0, +54,0,54,0,54,0,54,0,54,0,54,0,55,0,55,0,55,0,54,0,54,0,55,0,56,0,55,0,54,0,54,0, +55,0,54,0,54,0,55,0,55,0,55,0,54,0,54,0,55,0,55,0,54,0,55,0,55,0,55,0,55,0,55,0, +55,0,55,0,55,0,54,0,54,0,55,0,55,0,55,0,55,0,54,0,55,0,55,0,54,0,55,0,56,0,55,0, +54,0,55,0,55,0,55,0,56,0,55,0,55,0,55,0,54,0,54,0,56,0,56,0,55,0,55,0,56,0,56,0, +55,0,55,0,56,0,56,0,55,0,54,0,55,0,56,0,56,0,56,0,55,0,56,0,55,0,55,0,56,0,57,0, +56,0,55,0,57,0,56,0,56,0,56,0,56,0,55,0,56,0,57,0,56,0,55,0,57,0,57,0,56,0,56,0, +57,0,57,0,56,0,56,0,56,0,56,0,57,0,57,0,56,0,56,0,56,0,57,0,57,0,57,0,57,0,57,0, +56,0,56,0,57,0,57,0,56,0,57,0,58,0,57,0,57,0,57,0,57,0,57,0,58,0,58,0,57,0,57,0, +57,0,58,0,58,0,57,0,56,0,57,0,57,0,57,0,57,0,57,0,57,0,58,0,58,0,57,0,57,0,57,0, +57,0,57,0,57,0,57,0,58,0,57,0,57,0,58,0,58,0,57,0,57,0,57,0,58,0,58,0,58,0,57,0, +58,0,58,0,57,0,58,0,58,0,58,0,58,0,58,0,58,0,58,0,59,0,58,0,58,0,58,0,58,0,58,0, +58,0,58,0,58,0,58,0,58,0,59,0,59,0,58,0,59,0,59,0,59,0,58,0,59,0,59,0,59,0,59,0, +59,0,58,0,58,0,59,0,59,0,59,0,59,0,59,0,59,0,59,0,60,0,59,0,59,0,60,0,60,0,59,0, +59,0,59,0,60,0,60,0,59,0,59,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, +60,0,60,0,61,0,60,0,60,0,60,0,61,0,60,0,60,0,60,0,60,0,61,0,61,0,60,0,60,0,61,0, +61,0,61,0,60,0,60,0,61,0,61,0,61,0,61,0,60,0,60,0,61,0,62,0,61,0,61,0,61,0,60,0, +61,0,62,0,61,0,61,0,62,0,61,0,61,0,62,0,62,0,61,0,62,0,62,0,61,0,62,0,62,0,61,0, +61,0,62,0,62,0,62,0,63,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, +62,0,63,0,62,0,62,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,62,0,62,0, +63,0,64,0,63,0,64,0,63,0,62,0,63,0,64,0,63,0,64,0,64,0,63,0,63,0,63,0,63,0,64,0, +64,0,63,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,65,0,64,0,64,0,64,0, +64,0,65,0,65,0,64,0,65,0,65,0,64,0,64,0,65,0,65,0,65,0,65,0,65,0,64,0,65,0,65,0, +65,0,65,0,65,0,65,0,65,0,66,0,65,0,66,0,67,0,66,0,66,0,65,0,66,0,66,0,66,0,66,0, +65,0,66,0,66,0,66,0,65,0,66,0,67,0,67,0,66,0,67,0,67,0,67,0,67,0,67,0,66,0,66,0, +67,0,67,0,66,0,66,0,66,0,67,0,67,0,67,0,66,0,66,0,67,0,67,0,67,0,67,0,66,0,66,0, +67,0,67,0,67,0,67,0,67,0,66,0,67,0,67,0,66,0,67,0,67,0,67,0,68,0,68,0,67,0,67,0, +67,0,67,0,67,0,68,0,67,0,67,0,68,0,67,0,68,0,68,0,68,0,67,0,68,0,68,0,68,0,68,0, +68,0,68,0,69,0,68,0,68,0,68,0,68,0,68,0,69,0,68,0,68,0,68,0,69,0,68,0,68,0,68,0, +68,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0, +69,0,68,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,69,0,70,0,69,0,69,0,70,0, +70,0,70,0,70,0,69,0,69,0,70,0,70,0,70,0,70,0,70,0,70,0,69,0,69,0,70,0,70,0,70,0, +70,0,70,0,70,0,70,0,71,0,70,0,70,0,70,0,70,0,70,0,71,0,71,0,70,0,70,0,70,0,70,0, +71,0,71,0,70,0,70,0,70,0,70,0,71,0,71,0,71,0,70,0,70,0,71,0,71,0,72,0,71,0,70,0, +70,0,71,0,71,0,70,0,70,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,70,0,71,0,71,0, +71,0,71,0,70,0,70,0,70,0,71,0,72,0,71,0,70,0,71,0,71,0,72,0,72,0,71,0,71,0,71,0, +71,0,71,0,71,0,72,0,72,0,71,0,71,0,72,0,72,0,72,0,71,0,72,0,71,0,72,0,73,0,73,0, +72,0,71,0,72,0,71,0,72,0,72,0,72,0,72,0,72,0,72,0,71,0,72,0,72,0,72,0,72,0,72,0, +72,0,72,0,72,0,71,0,72,0,72,0,72,0,72,0,73,0,72,0,72,0,72,0,72,0,73,0,73,0,72,0, +72,0,72,0,72,0,72,0,72,0,72,0,73,0,72,0,72,0,72,0,73,0,73,0,72,0,73,0,73,0,72,0, +72,0,72,0,72,0,73,0,73,0,73,0,72,0,71,0,72,0,73,0,72,0,72,0,73,0,73,0,72,0,72,0, +72,0,72,0,72,0,73,0,73,0,72,0,72,0,73,0,73,0,72,0,72,0,73,0,73,0,72,0,72,0,72,0, +72,0,72,0,73,0,72,0,72,0,72,0,71,0,72,0,73,0,73,0,72,0,72,0,72,0,72,0,73,0,73,0, +73,0,73,0,73,0,72,0,73,0,73,0,72,0,72,0,72,0,72,0,72,0,73,0,73,0,73,0,73,0,73,0, +73,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,72,0,72,0,73,0,73,0,72,0,72,0,73,0,72,0, +72,0,72,0,72,0,73,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,73,0,73,0,72,0, +71,0,71,0,72,0,73,0,72,0,72,0,72,0,72,0,72,0,73,0,72,0,72,0,72,0,72,0,71,0,72,0, +73,0,72,0,72,0,72,0,72,0,71,0,71,0,72,0,73,0,72,0,71,0,72,0,72,0,72,0,72,0,72,0, +71,0,72,0,72,0,72,0,72,0,72,0,72,0,71,0,71,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0, +72,0,72,0,71,0,71,0,72,0,72,0,72,0,72,0,71,0,71,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/stone2.pcm b/src/client/sound/data/stone2.pcm new file mode 100755 index 0000000..ef816fc --- /dev/null +++ b/src/client/sound/data/stone2.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_stone2[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,36,0,43,0,46,0,48,0,49,0,45,0,39,0,33,0, +26,0,22,0,19,0,18,0,15,0,11,0,4,0,249,255,236,255,221,255,205,255,189,255,179,255,172,255,168,255,169,255, +176,255,184,255,192,255,207,255,231,255,1,0,21,0,35,0,53,0,81,0,112,0,132,0,141,0,154,0,181,0,215,0, +242,0,1,1,24,1,63,1,99,1,116,1,120,1,129,1,133,1,114,1,98,1,103,1,82,1,18,1,227,0,222,0, +201,0,140,0,92,0,99,0,117,0,108,0,107,0,135,0,176,0,227,0,4,1,3,1,14,1,40,1,17,1,197,0, +138,0,115,0,68,0,243,255,200,255,213,255,232,255,31,0,163,0,84,1,43,2,41,3,36,4,30,5,52,6,64,7, +30,8,246,8,255,9,52,11,144,12,91,14,221,16,77,20,28,25,65,31,246,37,241,44,140,52,89,60,62,67,214,72, +107,77,20,81,148,83,228,84,42,85,129,84,78,83,31,82,218,80,247,78,115,76,194,73,5,71,218,67,243,63,203,59, +247,55,36,52,239,47,205,43,1,40,228,35,251,30,174,25,82,20,96,14,78,7,122,255,169,247,28,240,146,232,230,224, +167,217,122,211,8,206,199,200,32,196,80,192,197,188,105,185,193,182,167,180,131,178,130,176,58,175,130,174,1,174,30,174, +36,175,197,176,0,179,20,182,196,185,207,189,40,194,190,198,160,203,181,208,101,213,87,217,221,220,44,224,248,226,21,229, +195,230,34,232,25,233,218,233,113,234,174,234,18,235,38,236,95,237,123,238,83,240,7,243,140,245,174,247,71,250,74,253, +191,255,176,1,192,3,155,5,233,6,12,8,243,8,62,9,76,9,144,9,195,9,129,9,24,9,61,9,242,9,91,10, +21,10,208,9,37,10,115,10,232,9,21,9,194,8,56,8,236,6,189,5,233,4,188,3,120,2,167,1,151,0,187,254, +222,252,77,251,31,249,62,246,119,243,187,240,238,237,174,235,191,233,118,231,128,229,143,228,0,228,111,227,150,227,156,228, +165,229,167,230,90,232,116,234,95,236,82,238,35,240,158,241,128,243,164,245,21,247,140,248,246,250,71,253,227,254,214,0, +44,3,149,4,57,5,126,6,242,7,28,8,192,7,12,8,231,7,181,6,179,5,7,5,215,3,98,2,2,1,83,255, +83,253,80,251,49,249,226,246,141,244,35,242,146,239,49,237,55,235,77,233,114,231,56,230,128,229,201,228,77,228,42,228, +223,227,128,227,157,227,17,228,150,228,138,229,237,230,87,232,33,234,160,236,54,239,145,241,13,244,108,246,49,248,201,249, +114,251,81,252,10,252,171,251,191,251,116,251,108,250,149,249,125,249,93,249,165,248,7,248,49,248,112,248,171,247,69,246, +88,245,135,244,210,242,224,240,226,239,135,239,81,239,209,239,30,241,122,242,13,244,68,246,61,248,62,249,6,250,204,250, +183,250,218,249,220,248,104,247,70,245,79,243,203,241,210,239,113,237,197,235,134,234,180,232,224,230,152,229,21,228,94,226, +96,225,194,224,181,223,190,222,137,222,169,222,178,222,204,222,228,222,251,222,114,223,16,224,38,224,230,223,28,224,146,224, +148,224,127,224,188,224,203,224,206,224,95,225,253,225,18,226,72,226,42,227,254,227,82,228,244,228,45,230,84,231,83,232, +129,233,237,234,127,236,232,237,3,239,1,240,6,241,4,242,177,242,20,243,180,243,138,244,48,245,203,245,155,246,145,247, +102,248,7,249,161,249,79,250,55,251,51,252,222,252,173,253,22,255,138,0,165,1,164,2,203,3,16,5,27,6,26,7, +102,8,136,9,81,10,75,11,167,12,29,14,93,15,162,16,55,18,177,19,234,20,84,22,219,23,50,25,125,26,221,27, +6,29,213,29,169,30,137,31,19,32,92,32,162,32,193,32,167,32,162,32,215,32,209,32,124,32,130,32,192,32,130,32, +1,32,164,31,91,31,236,30,38,30,56,29,121,28,236,27,87,27,151,26,16,26,245,25,151,25,201,24,57,24,254,23, +150,23,250,22,182,22,228,22,236,22,209,22,11,23,83,23,79,23,71,23,83,23,70,23,36,23,241,22,128,22,207,21, +33,21,132,20,181,19,185,18,241,17,118,17,242,16,67,16,144,15,238,14,90,14,139,13,79,12,22,11,252,9,133,8, +233,6,173,5,149,4,95,3,92,2,179,1,239,0,244,255,78,255,207,254,197,253,211,252,166,252,77,252,76,251,177,250, +192,250,117,250,176,249,82,249,81,249,252,248,141,248,111,248,86,248,50,248,76,248,100,248,63,248,53,248,104,248,146,248, +165,248,170,248,163,248,185,248,224,248,230,248,251,248,104,249,5,250,125,250,217,250,96,251,232,251,73,252,201,252,55,253, +79,253,173,253,126,254,17,255,112,255,14,0,172,0,245,0,32,1,88,1,75,1,246,0,251,0,59,1,11,1,246,0, +120,1,162,1,12,1,159,0,197,0,185,0,5,0,113,255,129,255,121,255,238,254,117,254,64,254,232,253,88,253,212,252, +108,252,12,252,153,251,204,250,187,249,33,249,21,249,174,248,229,247,190,247,28,248,244,247,97,247,49,247,46,247,188,246, +22,246,180,245,88,245,169,244,15,244,204,243,128,243,54,243,36,243,19,243,13,243,38,243,48,243,82,243,142,243,152,243, +174,243,27,244,132,244,147,244,162,244,31,245,170,245,218,245,21,246,126,246,191,246,39,247,214,247,74,248,161,248,88,249, +36,250,154,250,234,250,125,251,48,252,142,252,209,252,68,253,124,253,133,253,250,253,157,254,245,254,55,255,160,255,43,0, +190,0,69,1,195,1,46,2,171,2,111,3,32,4,55,4,34,4,150,4,32,5,249,4,192,4,65,5,207,5,201,5, +199,5,34,6,78,6,32,6,12,6,44,6,71,6,116,6,170,6,158,6,145,6,246,6,121,7,162,7,211,7,99,8, +210,8,240,8,32,9,93,9,129,9,146,9,129,9,148,9,9,10,117,10,144,10,178,10,24,11,106,11,97,11,88,11, +139,11,166,11,167,11,190,11,180,11,100,11,13,11,187,10,34,10,116,9,32,9,201,8,38,8,186,7,170,7,148,7, +106,7,67,7,33,7,255,6,219,6,170,6,77,6,196,5,59,5,218,4,128,4,233,3,70,3,242,2,200,2,166,2, +163,2,183,2,208,2,214,2,225,2,22,3,48,3,27,3,32,3,54,3,84,3,145,3,199,3,223,3,24,4,166,4, +52,5,118,5,213,5,130,6,27,7,127,7,217,7,110,8,62,9,228,9,103,10,52,11,60,12,249,12,52,13,151,13, +133,14,32,15,26,15,63,15,170,15,213,15,170,15,130,15,141,15,136,15,81,15,30,15,1,15,245,14,227,14,207,14, +241,14,58,15,87,15,59,15,75,15,192,15,5,16,210,15,179,15,167,15,107,15,59,15,251,14,120,14,237,13,122,13, +16,13,143,12,236,11,119,11,77,11,34,11,219,10,167,10,138,10,92,10,39,10,22,10,7,10,201,9,132,9,123,9, +119,9,4,9,103,8,19,8,186,7,8,7,64,6,160,5,25,5,141,4,6,4,147,3,54,3,0,3,208,2,119,2, +36,2,248,1,207,1,134,1,45,1,24,1,62,1,34,1,222,0,237,0,41,1,11,1,156,0,107,0,114,0,46,0, +232,255,24,0,52,0,240,255,0,0,114,0,109,0,2,0,212,255,173,255,84,255,50,255,91,255,134,255,182,255,18,0, +116,0,164,0,219,0,27,1,235,0,125,0,77,0,16,0,133,255,251,254,200,254,227,254,238,254,190,254,160,254,211,254, +13,255,190,254,49,254,40,254,47,254,166,253,69,253,132,253,179,253,118,253,55,253,54,253,50,253,239,252,141,252,58,252, +18,252,29,252,30,252,17,252,72,252,167,252,212,252,255,252,95,253,166,253,210,253,55,254,159,254,191,254,189,254,199,254, +220,254,220,254,180,254,146,254,120,254,65,254,40,254,97,254,158,254,137,254,108,254,192,254,38,255,0,255,199,254,20,255, +60,255,156,254,252,253,234,253,172,253,240,252,82,252,252,251,174,251,107,251,22,251,158,250,76,250,48,250,246,249,154,249, +135,249,175,249,160,249,117,249,126,249,169,249,226,249,16,250,0,250,225,249,10,250,85,250,91,250,39,250,55,250,155,250, +209,250,195,250,223,250,70,251,153,251,170,251,222,251,111,252,236,252,3,253,35,253,179,253,62,254,87,254,119,254,224,254, +19,255,19,255,90,255,194,255,231,255,199,255,179,255,255,255,132,0,185,0,179,0,37,1,5,2,133,2,177,2,47,3, +209,3,31,4,35,4,27,4,43,4,54,4,24,4,232,3,204,3,10,4,113,4,91,4,36,4,114,4,178,4,132,4, +86,4,48,4,242,3,199,3,180,3,110,3,252,2,228,2,0,3,183,2,105,2,148,2,194,2,139,2,63,2,54,2, +42,2,190,1,66,1,30,1,44,1,25,1,201,0,135,0,145,0,137,0,35,0,175,255,132,255,121,255,74,255,35,255, +29,255,255,254,207,254,177,254,177,254,175,254,109,254,72,254,127,254,110,254,3,254,237,253,28,254,1,254,149,253,93,253, +128,253,145,253,173,253,35,254,139,254,193,254,79,255,58,0,211,0,247,0,78,1,251,1,137,2,215,2,247,2,5,3, +60,3,95,3,38,3,203,2,134,2,74,2,241,1,122,1,247,0,100,0,240,255,151,255,12,255,161,254,172,254,168,254, +78,254,42,254,128,254,154,254,252,253,88,253,26,253,177,252,226,251,15,251,142,250,67,250,219,249,94,249,253,248,208,248, +222,248,213,248,155,248,166,248,238,248,33,249,74,249,110,249,147,249,225,249,85,250,195,250,9,251,57,251,108,251,166,251, +234,251,9,252,255,251,246,251,216,251,177,251,144,251,58,251,207,250,121,250,7,250,138,249,27,249,183,248,124,248,91,248, +75,248,103,248,128,248,129,248,159,248,222,248,250,248,218,248,195,248,206,248,181,248,126,248,98,248,87,248,74,248,64,248, +65,248,81,248,95,248,90,248,68,248,39,248,27,248,32,248,28,248,247,247,171,247,90,247,61,247,60,247,19,247,206,246, +185,246,220,246,7,247,12,247,220,246,186,246,214,246,232,246,203,246,184,246,181,246,146,246,93,246,82,246,90,246,42,246, +236,245,250,245,55,246,86,246,91,246,128,246,218,246,70,247,158,247,209,247,248,247,42,248,60,248,35,248,30,248,40,248, +26,248,35,248,88,248,116,248,135,248,225,248,95,249,177,249,246,249,77,250,143,250,188,250,240,250,30,251,29,251,243,250, +204,250,184,250,168,250,155,250,127,250,103,250,146,250,221,250,233,250,212,250,238,250,27,251,17,251,221,250,206,250,234,250, +248,250,254,250,44,251,120,251,179,251,238,251,72,252,157,252,197,252,234,252,57,253,141,253,190,253,247,253,117,254,13,255, +114,255,204,255,67,0,163,0,218,0,244,0,247,0,14,1,37,1,15,1,13,1,40,1,15,1,244,0,25,1,42,1, +252,0,233,0,24,1,33,1,229,0,228,0,37,1,40,1,235,0,187,0,127,0,23,0,187,255,143,255,87,255,8,255, +4,255,58,255,61,255,26,255,12,255,16,255,37,255,78,255,126,255,200,255,50,0,151,0,250,0,147,1,54,2,123,2, +145,2,214,2,31,3,49,3,48,3,85,3,150,3,208,3,27,4,130,4,196,4,235,4,54,5,98,5,62,5,57,5, +118,5,131,5,80,5,82,5,155,5,184,5,138,5,126,5,184,5,205,5,162,5,154,5,193,5,207,5,204,5,211,5, +212,5,222,5,237,5,232,5,243,5,1,6,245,5,31,6,145,6,227,6,14,7,118,7,32,8,148,8,211,8,92,9, +235,9,239,9,209,9,6,10,31,10,210,9,137,9,147,9,143,9,63,9,4,9,252,8,228,8,175,8,138,8,153,8, +180,8,144,8,86,8,64,8,45,8,244,7,163,7,104,7,52,7,219,6,156,6,154,6,133,6,63,6,3,6,1,6, +2,6,180,5,102,5,81,5,36,5,234,4,231,4,234,4,187,4,128,4,113,4,121,4,116,4,142,4,212,4,19,5, +65,5,110,5,159,5,201,5,232,5,7,6,26,6,54,6,144,6,251,6,79,7,172,7,251,7,44,8,110,8,206,8, +33,9,68,9,67,9,89,9,174,9,10,10,5,10,186,9,153,9,147,9,86,9,232,8,141,8,96,8,35,8,210,7, +174,7,139,7,80,7,55,7,38,7,221,6,119,6,49,6,253,5,140,5,7,5,208,4,159,4,61,4,232,3,188,3, +162,3,118,3,41,3,14,3,53,3,46,3,235,2,228,2,22,3,26,3,254,2,14,3,59,3,80,3,91,3,161,3, +3,4,32,4,51,4,151,4,255,4,18,5,239,4,228,4,235,4,160,4,43,4,252,3,213,3,123,3,53,3,42,3, +51,3,31,3,6,3,12,3,8,3,0,3,39,3,94,3,124,3,125,3,181,3,88,4,208,4,202,4,215,4,48,5, +101,5,53,5,244,4,248,4,234,4,156,4,145,4,209,4,215,4,175,4,195,4,2,5,51,5,114,5,176,5,213,5, +34,6,149,6,210,6,201,6,173,6,147,6,96,6,7,6,156,5,20,5,175,4,170,4,130,4,11,4,213,3,238,3, +16,4,26,4,1,4,246,3,2,4,18,4,32,4,216,3,83,3,41,3,37,3,216,2,134,2,101,2,106,2,145,2, +200,2,243,2,38,3,125,3,199,3,195,3,166,3,183,3,188,3,109,3,1,3,199,2,143,2,43,2,219,1,179,1, +139,1,106,1,91,1,85,1,98,1,135,1,150,1,109,1,80,1,119,1,153,1,114,1,54,1,30,1,43,1,67,1, +80,1,56,1,32,1,70,1,103,1,60,1,39,1,88,1,97,1,26,1,223,0,229,0,3,1,0,1,246,0,29,1, +96,1,157,1,210,1,236,1,227,1,227,1,247,1,248,1,235,1,243,1,14,2,44,2,72,2,83,2,55,2,24,2, +20,2,225,1,126,1,81,1,63,1,249,0,190,0,194,0,214,0,209,0,174,0,143,0,130,0,119,0,112,0,95,0, +77,0,115,0,188,0,230,0,251,0,28,1,66,1,87,1,86,1,68,1,40,1,22,1,10,1,230,0,174,0,140,0, +122,0,51,0,196,255,146,255,139,255,69,255,234,254,200,254,186,254,140,254,64,254,1,254,225,253,207,253,213,253,231,253, +242,253,21,254,68,254,102,254,150,254,192,254,181,254,166,254,204,254,239,254,201,254,141,254,152,254,208,254,237,254,2,255, +39,255,73,255,89,255,84,255,73,255,65,255,33,255,223,254,158,254,113,254,86,254,68,254,48,254,47,254,84,254,142,254, +213,254,22,255,50,255,68,255,118,255,159,255,137,255,99,255,121,255,144,255,79,255,4,255,29,255,89,255,79,255,32,255, +45,255,121,255,170,255,160,255,156,255,205,255,3,0,14,0,37,0,119,0,195,0,207,0,202,0,219,0,214,0,154,0, +82,0,25,0,222,255,172,255,140,255,106,255,64,255,30,255,35,255,55,255,31,255,7,255,35,255,65,255,53,255,31,255, +50,255,82,255,53,255,254,254,237,254,228,254,201,254,158,254,113,254,83,254,38,254,243,253,240,253,243,253,227,253,226,253, +233,253,234,253,214,253,174,253,169,253,193,253,190,253,163,253,154,253,178,253,205,253,197,253,178,253,183,253,206,253,223,253, +226,253,231,253,230,253,227,253,231,253,220,253,203,253,201,253,202,253,211,253,219,253,221,253,4,254,58,254,77,254,89,254, +128,254,185,254,221,254,222,254,242,254,40,255,75,255,79,255,96,255,156,255,199,255,184,255,193,255,254,255,34,0,21,0, +4,0,29,0,75,0,64,0,11,0,255,255,28,0,25,0,229,255,210,255,225,255,191,255,152,255,160,255,147,255,99,255, +60,255,58,255,75,255,40,255,239,254,13,255,80,255,76,255,42,255,63,255,105,255,89,255,38,255,43,255,97,255,106,255, +73,255,100,255,180,255,210,255,211,255,246,255,39,0,64,0,47,0,21,0,25,0,11,0,214,255,175,255,164,255,156,255, +118,255,84,255,97,255,95,255,51,255,39,255,65,255,75,255,46,255,12,255,14,255,0,255,189,254,144,254,145,254,131,254, +73,254,19,254,30,254,65,254,50,254,4,254,238,253,253,253,0,254,229,253,241,253,29,254,23,254,3,254,37,254,90,254, +92,254,60,254,66,254,98,254,113,254,132,254,164,254,187,254,197,254,196,254,213,254,22,255,76,255,63,255,54,255,98,255, +114,255,82,255,76,255,60,255,0,255,222,254,234,254,255,254,250,254,213,254,225,254,48,255,90,255,83,255,96,255,118,255, +100,255,48,255,23,255,30,255,18,255,8,255,37,255,67,255,74,255,79,255,110,255,154,255,157,255,134,255,152,255,190,255, +212,255,247,255,49,0,105,0,146,0,171,0,189,0,211,0,207,0,177,0,183,0,206,0,179,0,132,0,133,0,181,0, +214,0,197,0,194,0,248,0,36,1,27,1,5,1,4,1,24,1,48,1,57,1,52,1,58,1,80,1,89,1,92,1, +104,1,101,1,102,1,127,1,134,1,114,1,111,1,130,1,124,1,87,1,82,1,113,1,100,1,56,1,54,1,81,1, +91,1,67,1,32,1,32,1,57,1,54,1,26,1,32,1,83,1,119,1,127,1,158,1,216,1,252,1,4,2,29,2, +71,2,90,2,100,2,138,2,185,2,207,2,209,2,230,2,255,2,235,2,208,2,213,2,198,2,166,2,156,2,165,2, +194,2,221,2,228,2,240,2,239,2,207,2,196,2,207,2,196,2,154,2,115,2,95,2,67,2,5,2,187,1,148,1, +136,1,97,1,50,1,51,1,65,1,45,1,23,1,24,1,28,1,1,1,218,0,210,0,215,0,185,0,121,0,75,0, +93,0,136,0,139,0,127,0,151,0,208,0,252,0,17,1,43,1,71,1,88,1,115,1,144,1,151,1,146,1,162,1, +202,1,207,1,188,1,220,1,23,2,66,2,96,2,118,2,161,2,196,2,182,2,177,2,194,2,195,2,192,2,183,2, +198,2,246,2,235,2,177,2,179,2,211,2,197,2,160,2,149,2,145,2,104,2,53,2,46,2,75,2,83,2,57,2, +58,2,90,2,86,2,47,2,12,2,254,1,254,1,240,1,234,1,243,1,222,1,188,1,167,1,145,1,141,1,128,1, +108,1,137,1,169,1,176,1,197,1,210,1,200,1,193,1,205,1,231,1,225,1,192,1,181,1,187,1,198,1,191,1, +147,1,126,1,148,1,156,1,143,1,147,1,172,1,167,1,132,1,155,1,217,1,224,1,197,1,184,1,196,1,213,1, +190,1,144,1,113,1,92,1,86,1,82,1,58,1,21,1,231,0,200,0,197,0,180,0,146,0,128,0,130,0,138,0, +139,0,141,0,146,0,140,0,143,0,156,0,168,0,169,0,139,0,115,0,119,0,94,0,54,0,35,0,10,0,247,255, +232,255,198,255,187,255,202,255,214,255,229,255,247,255,21,0,69,0,108,0,134,0,138,0,131,0,163,0,195,0,181,0, +176,0,198,0,199,0,199,0,222,0,243,0,0,1,20,1,29,1,32,1,51,1,61,1,61,1,78,1,86,1,81,1, +100,1,119,1,107,1,90,1,94,1,95,1,62,1,31,1,28,1,18,1,0,1,239,0,206,0,170,0,133,0,96,0, +77,0,46,0,0,0,243,255,244,255,245,255,6,0,251,255,205,255,169,255,142,255,99,255,33,255,221,254,185,254,164,254, +124,254,56,254,249,253,221,253,203,253,166,253,130,253,112,253,102,253,99,253,99,253,91,253,82,253,72,253,58,253,46,253, +35,253,2,253,220,252,196,252,180,252,182,252,198,252,213,252,251,252,42,253,70,253,102,253,135,253,160,253,205,253,251,253, +14,254,19,254,40,254,95,254,146,254,163,254,178,254,201,254,232,254,27,255,67,255,84,255,104,255,129,255,160,255,203,255, +237,255,240,255,224,255,227,255,1,0,25,0,19,0,254,255,253,255,23,0,49,0,62,0,58,0,55,0,53,0,27,0, +1,0,242,255,196,255,148,255,140,255,128,255,74,255,6,255,215,254,169,254,105,254,69,254,63,254,48,254,23,254,249,253, +225,253,212,253,189,253,170,253,153,253,118,253,110,253,113,253,92,253,67,253,23,253,241,252,245,252,215,252,155,252,137,252, +129,252,120,252,110,252,76,252,69,252,96,252,108,252,119,252,137,252,148,252,163,252,176,252,180,252,185,252,201,252,229,252, +1,253,31,253,71,253,114,253,143,253,161,253,181,253,206,253,225,253,244,253,9,254,31,254,67,254,89,254,83,254,93,254, +123,254,145,254,163,254,186,254,209,254,236,254,24,255,68,255,92,255,114,255,151,255,189,255,226,255,1,0,17,0,34,0, +58,0,80,0,100,0,112,0,111,0,105,0,105,0,104,0,85,0,77,0,87,0,75,0,48,0,36,0,25,0,18,0, +255,255,198,255,157,255,147,255,116,255,58,255,237,254,173,254,151,254,127,254,78,254,38,254,7,254,252,253,247,253,217,253, +204,253,222,253,224,253,205,253,173,253,139,253,128,253,126,253,126,253,125,253,128,253,156,253,170,253,157,253,168,253,200,253, +236,253,24,254,47,254,71,254,118,254,153,254,193,254,233,254,3,255,54,255,105,255,111,255,109,255,123,255,151,255,183,255, +202,255,230,255,10,0,35,0,61,0,90,0,117,0,141,0,164,0,198,0,225,0,227,0,237,0,5,1,12,1,0,1, +247,0,245,0,235,0,211,0,187,0,179,0,176,0,134,0,69,0,43,0,39,0,27,0,13,0,251,255,250,255,7,0, +3,0,2,0,10,0,251,255,235,255,232,255,229,255,218,255,205,255,205,255,203,255,184,255,166,255,134,255,101,255,95,255, +64,255,28,255,38,255,28,255,243,254,254,254,38,255,60,255,77,255,77,255,67,255,85,255,103,255,91,255,89,255,107,255, +119,255,142,255,156,255,132,255,107,255,95,255,96,255,120,255,138,255,151,255,198,255,2,0,29,0,33,0,52,0,82,0, +85,0,76,0,86,0,91,0,84,0,76,0,55,0,37,0,44,0,59,0,75,0,90,0,92,0,91,0,101,0,118,0, +133,0,137,0,148,0,189,0,222,0,215,0,210,0,208,0,191,0,189,0,189,0,169,0,166,0,172,0,177,0,196,0, +199,0,189,0,199,0,199,0,194,0,193,0,168,0,151,0,158,0,152,0,127,0,90,0,54,0,39,0,29,0,0,0, +224,255,214,255,220,255,223,255,232,255,242,255,236,255,241,255,4,0,19,0,30,0,34,0,43,0,57,0,52,0,59,0, +83,0,78,0,74,0,85,0,82,0,88,0,98,0,98,0,127,0,156,0,162,0,188,0,221,0,221,0,197,0,184,0, +208,0,253,0,17,1,4,1,246,0,254,0,13,1,255,0,213,0,170,0,153,0,156,0,150,0,141,0,138,0,130,0, +135,0,159,0,163,0,128,0,86,0,66,0,48,0,18,0,8,0,9,0,253,255,12,0,52,0,66,0,54,0,24,0, +254,255,5,0,13,0,240,255,205,255,198,255,214,255,208,255,174,255,148,255,147,255,152,255,147,255,148,255,162,255,165,255, +173,255,206,255,235,255,252,255,255,255,247,255,11,0,30,0,20,0,32,0,59,0,68,0,76,0,85,0,95,0,104,0, +92,0,89,0,101,0,95,0,71,0,39,0,26,0,35,0,14,0,230,255,230,255,253,255,250,255,231,255,233,255,253,255, +4,0,253,255,246,255,1,0,9,0,236,255,216,255,234,255,247,255,241,255,223,255,204,255,210,255,218,255,217,255,230,255, +236,255,235,255,0,0,22,0,34,0,35,0,33,0,60,0,93,0,86,0,66,0,75,0,95,0,81,0,53,0,53,0, +63,0,70,0,87,0,103,0,117,0,124,0,114,0,124,0,143,0,130,0,112,0,122,0,142,0,150,0,137,0,110,0, +95,0,96,0,85,0,59,0,30,0,7,0,9,0,22,0,4,0,237,255,241,255,247,255,251,255,250,255,236,255,236,255, +17,0,69,0,79,0,50,0,66,0,123,0,146,0,145,0,136,0,125,0,134,0,130,0,102,0,75,0,39,0,9,0, +7,0,252,255,222,255,201,255,199,255,202,255,192,255,181,255,193,255,206,255,188,255,167,255,169,255,159,255,118,255,95,255, +92,255,69,255,40,255,17,255,253,254,251,254,1,255,250,254,247,254,6,255,29,255,39,255,47,255,74,255,84,255,62,255, +64,255,83,255,83,255,89,255,87,255,66,255,75,255,92,255,87,255,115,255,160,255,165,255,170,255,194,255,204,255,213,255, +232,255,0,0,21,0,32,0,39,0,44,0,46,0,27,0,241,255,217,255,219,255,206,255,181,255,169,255,173,255,188,255, +187,255,164,255,154,255,152,255,135,255,122,255,121,255,120,255,123,255,128,255,135,255,155,255,158,255,128,255,109,255,111,255, +114,255,118,255,105,255,91,255,101,255,102,255,109,255,126,255,99,255,86,255,126,255,136,255,129,255,142,255,156,255,173,255, +161,255,112,255,84,255,68,255,47,255,24,255,231,254,187,254,181,254,180,254,165,254,142,254,139,254,160,254,166,254,152,254, +147,254,165,254,188,254,188,254,181,254,200,254,243,254,19,255,9,255,7,255,60,255,92,255,81,255,75,255,60,255,66,255, +95,255,90,255,75,255,74,255,74,255,106,255,146,255,161,255,182,255,221,255,16,0,50,0,57,0,80,0,106,0,110,0, +115,0,108,0,93,0,101,0,92,0,68,0,83,0,104,0,81,0,38,0,17,0,17,0,255,255,207,255,175,255,181,255, +184,255,150,255,114,255,107,255,122,255,128,255,114,255,107,255,110,255,95,255,85,255,100,255,122,255,149,255,169,255,173,255, +187,255,195,255,196,255,220,255,223,255,192,255,184,255,193,255,181,255,150,255,111,255,87,255,75,255,45,255,12,255,250,254, +232,254,218,254,216,254,232,254,1,255,9,255,3,255,12,255,22,255,15,255,11,255,13,255,7,255,255,254,251,254,0,255, +4,255,244,254,225,254,231,254,234,254,224,254,234,254,246,254,248,254,7,255,20,255,38,255,78,255,97,255,107,255,147,255, +175,255,178,255,189,255,200,255,213,255,221,255,206,255,199,255,217,255,237,255,250,255,7,0,41,0,79,0,88,0,99,0, +115,0,95,0,70,0,86,0,102,0,83,0,63,0,72,0,95,0,110,0,107,0,95,0,111,0,140,0,128,0,105,0, +116,0,134,0,143,0,141,0,130,0,130,0,133,0,122,0,107,0,84,0,49,0,20,0,30,0,65,0,61,0,18,0, +6,0,34,0,55,0,51,0,48,0,62,0,71,0,62,0,66,0,75,0,50,0,18,0,11,0,1,0,242,255,237,255, +218,255,196,255,205,255,215,255,209,255,208,255,202,255,200,255,210,255,205,255,192,255,187,255,184,255,180,255,164,255,140,255, +135,255,142,255,144,255,150,255,151,255,156,255,170,255,172,255,170,255,189,255,211,255,215,255,221,255,249,255,29,0,57,0, +79,0,89,0,101,0,132,0,156,0,149,0,136,0,132,0,136,0,140,0,128,0,111,0,111,0,121,0,138,0,148,0, +151,0,174,0,203,0,203,0,202,0,209,0,204,0,189,0,177,0,175,0,165,0,125,0,89,0,80,0,73,0,63,0, +61,0,59,0,65,0,79,0,86,0,93,0,104,0,118,0,124,0,124,0,127,0,111,0,71,0,38,0,14,0,235,255, +203,255,178,255,150,255,131,255,128,255,122,255,110,255,115,255,130,255,135,255,142,255,162,255,176,255,182,255,203,255,209,255, +171,255,137,255,127,255,117,255,104,255,82,255,62,255,72,255,93,255,108,255,126,255,131,255,142,255,171,255,197,255,208,255, +198,255,197,255,236,255,0,0,228,255,201,255,182,255,160,255,146,255,144,255,141,255,122,255,114,255,124,255,117,255,109,255, +128,255,148,255,163,255,170,255,159,255,159,255,167,255,149,255,111,255,88,255,100,255,116,255,105,255,92,255,111,255,152,255, +171,255,160,255,161,255,172,255,174,255,178,255,177,255,180,255,196,255,194,255,180,255,191,255,209,255,191,255,162,255,170,255, +171,255,126,255,97,255,96,255,86,255,71,255,42,255,19,255,24,255,26,255,34,255,66,255,82,255,81,255,86,255,112,255, +133,255,104,255,64,255,71,255,87,255,82,255,63,255,35,255,24,255,41,255,60,255,60,255,69,255,109,255,131,255,145,255, +182,255,195,255,195,255,222,255,244,255,4,0,7,0,4,0,47,0,91,0,92,0,95,0,94,0,89,0,89,0,63,0, +43,0,46,0,24,0,254,255,255,255,6,0,255,255,233,255,233,255,4,0,18,0,23,0,28,0,32,0,38,0,28,0, +16,0,9,0,251,255,245,255,249,255,251,255,7,0,9,0,248,255,231,255,230,255,249,255,249,255,207,255,183,255,197,255, +208,255,200,255,169,255,137,255,126,255,120,255,108,255,94,255,91,255,102,255,95,255,74,255,68,255,71,255,88,255,108,255, +113,255,133,255,167,255,176,255,172,255,181,255,195,255,192,255,184,255,184,255,170,255,154,255,172,255,181,255,169,255,182,255, +205,255,223,255,237,255,231,255,237,255,255,255,240,255,218,255,220,255,229,255,238,255,226,255,198,255,201,255,226,255,236,255, +221,255,197,255,195,255,210,255,224,255,233,255,230,255,224,255,216,255,205,255,215,255,219,255,203,255,209,255,221,255,228,255, +242,255,232,255,219,255,233,255,238,255,239,255,233,255,205,255,197,255,217,255,235,255,247,255,245,255,243,255,0,0,10,0, +32,0,55,0,31,0,253,255,3,0,7,0,246,255,242,255,254,255,5,0,1,0,248,255,254,255,20,0,8,0,241,255, +4,0,9,0,233,255,219,255,224,255,235,255,242,255,224,255,218,255,227,255,214,255,203,255,193,255,172,255,166,255,156,255, +137,255,145,255,151,255,137,255,138,255,157,255,168,255,160,255,160,255,181,255,185,255,184,255,196,255,190,255,178,255,173,255, +140,255,112,255,119,255,109,255,76,255,60,255,57,255,48,255,29,255,18,255,32,255,45,255,31,255,2,255,251,254,11,255, +254,254,220,254,224,254,246,254,243,254,245,254,4,255,8,255,17,255,40,255,52,255,55,255,70,255,102,255,131,255,149,255, +158,255,156,255,162,255,180,255,182,255,178,255,192,255,200,255,196,255,203,255,216,255,227,255,233,255,223,255,219,255,241,255, +10,0,13,0,7,0,6,0,13,0,17,0,3,0,243,255,253,255,19,0,19,0,8,0,5,0,8,0,9,0,11,0, +15,0,26,0,38,0,35,0,22,0,18,0,13,0,251,255,228,255,202,255,178,255,173,255,179,255,174,255,168,255,184,255, +204,255,201,255,182,255,168,255,173,255,191,255,196,255,172,255,149,255,150,255,159,255,160,255,142,255,116,255,111,255,113,255, +88,255,62,255,72,255,96,255,101,255,92,255,100,255,132,255,147,255,126,255,110,255,117,255,126,255,127,255,138,255,165,255, +178,255,174,255,189,255,208,255,221,255,237,255,236,255,227,255,233,255,240,255,252,255,7,0,254,255,249,255,0,0,1,0, +4,0,4,0,246,255,229,255,233,255,240,255,225,255,221,255,236,255,230,255,222,255,219,255,211,255,216,255,211,255,191,255, +195,255,198,255,185,255,174,255,159,255,161,255,178,255,171,255,164,255,174,255,177,255,186,255,206,255,225,255,242,255,247,255, +242,255,235,255,238,255,240,255,227,255,218,255,215,255,197,255,185,255,190,255,202,255,227,255,244,255,242,255,246,255,253,255, +3,0,6,0,252,255,235,255,219,255,216,255,234,255,237,255,217,255,209,255,225,255,243,255,249,255,253,255,3,0,19,0, +47,0,55,0,51,0,70,0,68,0,43,0,48,0,53,0,51,0,68,0,74,0,70,0,79,0,79,0,66,0,60,0, +61,0,60,0,59,0,60,0,69,0,73,0,58,0,40,0,43,0,48,0,38,0,33,0,22,0,16,0,37,0,46,0, +30,0,25,0,18,0,21,0,41,0,41,0,35,0,45,0,50,0,76,0,114,0,119,0,129,0,154,0,146,0,127,0, +134,0,139,0,122,0,102,0,92,0,93,0,97,0,96,0,88,0,83,0,84,0,77,0,65,0,78,0,103,0,105,0, +94,0,88,0,104,0,128,0,119,0,102,0,105,0,96,0,81,0,67,0,40,0,28,0,39,0,41,0,27,0,12,0, +7,0,3,0,252,255,252,255,244,255,237,255,254,255,12,0,16,0,27,0,38,0,51,0,54,0,41,0,44,0,50,0, +53,0,58,0,43,0,29,0,30,0,12,0,254,255,254,255,254,255,11,0,14,0,8,0,31,0,44,0,37,0,38,0, +39,0,56,0,82,0,86,0,79,0,67,0,57,0,60,0,50,0,36,0,43,0,43,0,35,0,33,0,41,0,59,0, +54,0,35,0,38,0,39,0,42,0,64,0,67,0,53,0,47,0,41,0,37,0,18,0,249,255,9,0,21,0,4,0, +2,0,249,255,240,255,0,0,238,255,207,255,216,255,210,255,200,255,210,255,203,255,209,255,233,255,222,255,201,255,206,255, +212,255,199,255,186,255,187,255,188,255,190,255,193,255,175,255,168,255,200,255,218,255,210,255,210,255,221,255,244,255,0,0, +243,255,237,255,244,255,253,255,237,255,198,255,179,255,175,255,159,255,143,255,128,255,127,255,139,255,129,255,123,255,125,255, +108,255,96,255,97,255,114,255,144,255,154,255,160,255,178,255,190,255,212,255,227,255,217,255,227,255,247,255,246,255,243,255, +234,255,223,255,223,255,228,255,225,255,213,255,215,255,231,255,232,255,238,255,1,0,3,0,255,255,10,0,21,0,26,0, +39,0,58,0,62,0,54,0,52,0,58,0,70,0,60,0,41,0,63,0,71,0,31,0,19,0,28,0,22,0,19,0, +4,0,249,255,5,0,7,0,12,0,26,0,31,0,55,0,68,0,43,0,37,0,52,0,45,0,30,0,24,0,23,0, +25,0,23,0,2,0,251,255,22,0,26,0,9,0,19,0,37,0,49,0,57,0,49,0,60,0,87,0,93,0,94,0, +96,0,97,0,106,0,100,0,100,0,122,0,122,0,113,0,122,0,125,0,127,0,131,0,126,0,129,0,138,0,138,0, +141,0,160,0,173,0,152,0,131,0,134,0,115,0,79,0,68,0,77,0,78,0,67,0,57,0,62,0,74,0,80,0, +76,0,76,0,90,0,90,0,73,0,65,0,53,0,33,0,17,0,251,255,242,255,254,255,244,255,219,255,224,255,244,255, +251,255,1,0,21,0,58,0,95,0,107,0,99,0,98,0,110,0,120,0,120,0,112,0,106,0,110,0,123,0,130,0, +125,0,130,0,144,0,150,0,166,0,183,0,186,0,188,0,183,0,193,0,222,0,219,0,210,0,232,0,243,0,244,0, +241,0,219,0,219,0,226,0,203,0,187,0,184,0,186,0,200,0,197,0,174,0,165,0,179,0,180,0,147,0,126,0, +126,0,111,0,115,0,138,0,127,0,108,0,106,0,103,0,105,0,91,0,56,0,49,0,71,0,66,0,38,0,31,0, +38,0,20,0,249,255,236,255,222,255,208,255,195,255,171,255,154,255,147,255,135,255,133,255,135,255,128,255,126,255,134,255, +150,255,169,255,167,255,159,255,173,255,175,255,149,255,139,255,149,255,151,255,145,255,131,255,123,255,136,255,141,255,129,255, +124,255,133,255,137,255,134,255,134,255,135,255,136,255,147,255,150,255,140,255,161,255,193,255,196,255,201,255,219,255,229,255, +241,255,249,255,240,255,234,255,245,255,250,255,225,255,211,255,233,255,245,255,237,255,241,255,255,255,22,0,52,0,67,0, +74,0,93,0,123,0,134,0,127,0,137,0,147,0,125,0,103,0,97,0,89,0,75,0,59,0,58,0,66,0,52,0, +34,0,38,0,43,0,38,0,29,0,31,0,32,0,27,0,34,0,45,0,38,0,23,0,5,0,250,255,252,255,246,255, +234,255,238,255,248,255,251,255,247,255,245,255,254,255,255,255,231,255,213,255,212,255,201,255,193,255,209,255,223,255,231,255, +242,255,240,255,238,255,249,255,239,255,222,255,226,255,226,255,214,255,214,255,225,255,241,255,247,255,246,255,251,255,248,255, +242,255,2,0,24,0,13,0,242,255,242,255,12,0,23,0,12,0,9,0,21,0,26,0,22,0,17,0,19,0,35,0, +54,0,54,0,56,0,68,0,68,0,62,0,49,0,41,0,50,0,45,0,30,0,43,0,51,0,39,0,46,0,68,0, +83,0,78,0,70,0,72,0,60,0,54,0,78,0,74,0,57,0,76,0,99,0,107,0,97,0,75,0,81,0,95,0, +87,0,79,0,78,0,86,0,105,0,112,0,109,0,105,0,104,0,125,0,147,0,143,0,128,0,119,0,133,0,156,0, +158,0,157,0,172,0,184,0,175,0,165,0,171,0,168,0,148,0,135,0,136,0,151,0,174,0,176,0,171,0,178,0, +180,0,176,0,174,0,172,0,165,0,148,0,141,0,152,0,145,0,115,0,97,0,102,0,107,0,96,0,82,0,83,0, +91,0,92,0,74,0,50,0,49,0,63,0,51,0,13,0,9,0,42,0,47,0,24,0,8,0,0,0,2,0,7,0, +7,0,7,0,254,255,243,255,241,255,235,255,231,255,217,255,181,255,162,255,164,255,171,255,187,255,194,255,204,255,233,255, +244,255,240,255,237,255,231,255,239,255,237,255,215,255,206,255,203,255,200,255,211,255,221,255,233,255,251,255,8,0,35,0, +56,0,42,0,35,0,58,0,76,0,75,0,75,0,77,0,75,0,77,0,80,0,81,0,94,0,111,0,121,0,129,0, +135,0,148,0,156,0,154,0,170,0,182,0,168,0,161,0,159,0,154,0,151,0,121,0,87,0,91,0,101,0,90,0, +63,0,37,0,27,0,16,0,244,255,227,255,237,255,241,255,225,255,233,255,9,0,22,0,20,0,15,0,8,0,17,0, +11,0,245,255,244,255,248,255,237,255,226,255,226,255,246,255,255,255,249,255,15,0,28,0,17,0,31,0,44,0,37,0, +37,0,41,0,42,0,36,0,22,0,29,0,46,0,36,0,14,0,9,0,15,0,8,0,7,0,23,0,25,0,23,0, +33,0,23,0,6,0,16,0,20,0,1,0,241,255,228,255,216,255,220,255,223,255,206,255,207,255,227,255,237,255,245,255, +245,255,231,255,239,255,0,0,247,255,229,255,224,255,227,255,223,255,209,255,215,255,237,255,240,255,234,255,246,255,14,0, +20,0,0,0,250,255,20,0,33,0,27,0,34,0,41,0,35,0,40,0,53,0,48,0,41,0,39,0,36,0,47,0, +56,0,47,0,37,0,25,0,13,0,9,0,252,255,247,255,10,0,20,0,31,0,46,0,47,0,54,0,76,0,74,0, +39,0,13,0,23,0,33,0,13,0,239,255,209,255,204,255,219,255,207,255,190,255,192,255,192,255,197,255,192,255,166,255, +167,255,184,255,185,255,191,255,195,255,196,255,200,255,196,255,198,255,200,255,178,255,163,255,152,255,133,255,133,255,138,255, +124,255,115,255,119,255,128,255,136,255,137,255,138,255,142,255,155,255,177,255,188,255,200,255,230,255,242,255,236,255,239,255, +245,255,1,0,14,0,17,0,34,0,60,0,65,0,67,0,81,0,92,0,84,0,66,0,56,0,48,0,38,0,36,0, +38,0,45,0,54,0,52,0,58,0,64,0,53,0,55,0,65,0,61,0,56,0,50,0,57,0,65,0,55,0,57,0, +63,0,44,0,40,0,61,0,75,0,74,0,54,0,35,0,37,0,45,0,41,0,31,0,26,0,22,0,16,0,22,0, +19,0,13,0,27,0,28,0,16,0,23,0,31,0,31,0,22,0,8,0,16,0,21,0,2,0,245,255,251,255,20,0, +31,0,16,0,21,0,29,0,17,0,19,0,7,0,237,255,234,255,235,255,239,255,239,255,226,255,232,255,236,255,230,255, +246,255,253,255,252,255,247,255,230,255,238,255,254,255,250,255,255,255,254,255,253,255,21,0,27,0,17,0,16,0,10,0, +18,0,31,0,27,0,15,0,4,0,3,0,255,255,233,255,216,255,210,255,219,255,241,255,245,255,250,255,13,0,25,0, +39,0,46,0,40,0,57,0,75,0,70,0,69,0,75,0,72,0,68,0,79,0,86,0,70,0,59,0,64,0,76,0, +88,0,77,0,75,0,109,0,125,0,115,0,111,0,107,0,105,0,94,0,78,0,81,0,82,0,70,0,52,0,33,0, +35,0,30,0,5,0,5,0,7,0,251,255,250,255,239,255,226,255,227,255,215,255,203,255,193,255,168,255,156,255,162,255, +164,255,161,255,152,255,148,255,156,255,146,255,125,255,122,255,130,255,130,255,115,255,104,255,105,255,92,255,71,255,78,255, +93,255,88,255,91,255,114,255,134,255,153,255,173,255,185,255,191,255,201,255,217,255,230,255,226,255,213,255,206,255,208,255, +209,255,197,255,190,255,193,255,186,255,182,255,189,255,197,255,208,255,211,255,213,255,234,255,252,255,253,255,253,255,9,0, +26,0,36,0,36,0,22,0,9,0,10,0,255,255,235,255,241,255,239,255,215,255,216,255,230,255,230,255,225,255,225,255, +230,255,230,255,229,255,231,255,221,255,220,255,239,255,248,255,254,255,8,0,5,0,249,255,234,255,224,255,224,255,221,255, +220,255,225,255,222,255,216,255,214,255,216,255,217,255,206,255,194,255,191,255,198,255,195,255,180,255,187,255,205,255,203,255, +210,255,221,255,216,255,219,255,214,255,199,255,197,255,198,255,201,255,206,255,200,255,198,255,198,255,192,255,191,255,189,255, +181,255,165,255,160,255,182,255,197,255,207,255,234,255,0,0,19,0,43,0,60,0,74,0,80,0,89,0,108,0,103,0, +95,0,105,0,105,0,108,0,105,0,95,0,108,0,109,0,92,0,88,0,76,0,67,0,66,0,56,0,62,0,69,0, +61,0,74,0,85,0,79,0,83,0,84,0,79,0,87,0,99,0,111,0,115,0,111,0,114,0,112,0,98,0,95,0, +90,0,57,0,32,0,30,0,18,0,6,0,4,0,247,255,240,255,248,255,1,0,22,0,43,0,58,0,80,0,78,0, +76,0,91,0,71,0,59,0,79,0,63,0,38,0,44,0,52,0,47,0,31,0,28,0,38,0,29,0,29,0,39,0, +30,0,41,0,67,0,64,0,64,0,76,0,65,0,54,0,70,0,77,0,63,0,69,0,92,0,108,0,128,0,145,0, +145,0,135,0,122,0,122,0,122,0,94,0,78,0,87,0,88,0,88,0,91,0,90,0,82,0,74,0,88,0,107,0, +106,0,111,0,116,0,111,0,109,0,98,0,94,0,101,0,89,0,89,0,95,0,71,0,55,0,45,0,27,0,28,0, +27,0,23,0,45,0,58,0,64,0,87,0,92,0,80,0,85,0,98,0,101,0,95,0,86,0,86,0,88,0,84,0, +78,0,65,0,55,0,58,0,57,0,41,0,25,0,20,0,20,0,20,0,18,0,15,0,255,255,238,255,244,255,255,255, +247,255,233,255,228,255,231,255,230,255,226,255,231,255,233,255,220,255,208,255,204,255,210,255,225,255,219,255,198,255,201,255, +212,255,216,255,225,255,225,255,223,255,245,255,21,0,36,0,39,0,41,0,49,0,63,0,72,0,67,0,59,0,59,0, +66,0,78,0,85,0,78,0,69,0,72,0,73,0,71,0,74,0,80,0,78,0,66,0,57,0,60,0,59,0,45,0, +37,0,31,0,14,0,2,0,252,255,234,255,214,255,202,255,188,255,179,255,182,255,186,255,189,255,195,255,200,255,193,255, +179,255,178,255,190,255,191,255,186,255,191,255,204,255,216,255,220,255,211,255,212,255,223,255,223,255,217,255,208,255,187,255, +170,255,167,255,166,255,168,255,163,255,155,255,169,255,189,255,181,255,166,255,171,255,178,255,172,255,164,255,157,255,153,255, +156,255,167,255,174,255,171,255,166,255,177,255,193,255,196,255,205,255,216,255,214,255,219,255,219,255,199,255,185,255,186,255, +186,255,177,255,158,255,152,255,161,255,170,255,184,255,184,255,164,255,163,255,167,255,161,255,155,255,145,255,141,255,150,255, +153,255,163,255,176,255,176,255,174,255,173,255,177,255,188,255,181,255,165,255,158,255,163,255,180,255,179,255,159,255,156,255, +155,255,158,255,178,255,179,255,171,255,181,255,177,255,165,255,167,255,161,255,149,255,147,255,153,255,163,255,169,255,184,255, +210,255,218,255,211,255,201,255,198,255,214,255,216,255,198,255,199,255,191,255,177,255,193,255,198,255,185,255,189,255,192,255, +196,255,200,255,187,255,185,255,188,255,179,255,181,255,178,255,177,255,185,255,169,255,171,255,198,255,190,255,184,255,203,255, +200,255,191,255,198,255,207,255,214,255,209,255,207,255,213,255,213,255,226,255,238,255,238,255,245,255,248,255,0,0,15,0, +0,0,247,255,4,0,1,0,8,0,18,0,3,0,7,0,11,0,244,255,239,255,242,255,237,255,247,255,242,255,219,255, +220,255,236,255,245,255,242,255,239,255,244,255,255,255,10,0,5,0,238,255,234,255,251,255,10,0,14,0,7,0,252,255, +251,255,254,255,253,255,246,255,240,255,246,255,251,255,243,255,236,255,239,255,250,255,1,0,1,0,8,0,22,0,32,0, +42,0,52,0,50,0,39,0,38,0,52,0,48,0,21,0,19,0,38,0,41,0,35,0,28,0,26,0,33,0,30,0, +25,0,34,0,28,0,22,0,30,0,15,0,255,255,7,0,249,255,233,255,247,255,240,255,224,255,237,255,246,255,242,255, +253,255,10,0,23,0,31,0,19,0,12,0,25,0,26,0,8,0,7,0,20,0,17,0,8,0,13,0,14,0,255,255, +247,255,3,0,17,0,6,0,249,255,6,0,20,0,11,0,1,0,1,0,12,0,24,0,24,0,16,0,4,0,3,0, +20,0,19,0,5,0,5,0,4,0,2,0,255,255,234,255,220,255,231,255,238,255,233,255,216,255,205,255,217,255,231,255, +236,255,237,255,236,255,249,255,7,0,6,0,11,0,12,0,4,0,5,0,254,255,246,255,246,255,235,255,228,255,235,255, +226,255,221,255,232,255,234,255,229,255,228,255,231,255,230,255,216,255,213,255,227,255,234,255,240,255,246,255,243,255,240,255, +252,255,10,0,4,0,238,255,232,255,239,255,234,255,224,255,216,255,207,255,210,255,221,255,214,255,204,255,215,255,224,255, +217,255,224,255,242,255,251,255,6,0,16,0,9,0,251,255,240,255,230,255,231,255,235,255,225,255,209,255,203,255,204,255, +202,255,199,255,192,255,182,255,179,255,178,255,169,255,167,255,178,255,177,255,174,255,191,255,202,255,199,255,196,255,190,255, +189,255,195,255,191,255,199,255,217,255,208,255,195,255,203,255,210,255,206,255,199,255,194,255,205,255,210,255,197,255,186,255, +185,255,189,255,200,255,206,255,202,255,204,255,216,255,230,255,236,255,228,255,223,255,239,255,244,255,225,255,212,255,198,255, +184,255,193,255,199,255,188,255,187,255,191,255,194,255,196,255,192,255,197,255,210,255,211,255,207,255,199,255,188,255,199,255, +213,255,209,255,206,255,206,255,205,255,210,255,200,255,178,255,180,255,198,255,206,255,204,255,198,255,197,255,203,255,199,255, +200,255,209,255,209,255,209,255,210,255,211,255,226,255,229,255,221,255,228,255,229,255,226,255,237,255,234,255,225,255,218,255, +197,255,193,255,206,255,201,255,193,255,195,255,192,255,182,255,182,255,187,255,187,255,188,255,194,255,198,255,203,255,201,255, +192,255,194,255,196,255,187,255,186,255,187,255,187,255,198,255,216,255,232,255,241,255,243,255,235,255,220,255,219,255,221,255, +209,255,213,255,225,255,221,255,225,255,231,255,225,255,230,255,236,255,234,255,230,255,224,255,224,255,225,255,219,255,213,255, +200,255,188,255,183,255,179,255,189,255,193,255,174,255,173,255,193,255,195,255,186,255,182,255,178,255,174,255,169,255,166,255, +163,255,161,255,172,255,189,255,201,255,203,255,199,255,200,255,206,255,216,255,221,255,219,255,225,255,231,255,230,255,237,255, +250,255,252,255,242,255,223,255,208,255,204,255,208,255,216,255,214,255,202,255,193,255,182,255,180,255,190,255,195,255,197,255, +198,255,197,255,207,255,216,255,216,255,221,255,220,255,214,255,216,255,218,255,211,255,203,255,197,255,199,255,204,255,198,255, +187,255,188,255,202,255,208,255,200,255,186,255,176,255,180,255,191,255,200,255,208,255,197,255,183,255,198,255,208,255,188,255, +176,255,182,255,187,255,189,255,186,255,184,255,190,255,195,255,204,255,214,255,209,255,204,255,209,255,203,255,207,255,220,255, +216,255,212,255,221,255,226,255,225,255,222,255,216,255,216,255,221,255,221,255,217,255,216,255,219,255,220,255,233,255,245,255, +235,255,235,255,244,255,243,255,3,0,13,0,0,0,254,255,246,255,232,255,239,255,228,255,219,255,238,255,222,255,193,255, +200,255,202,255,200,255,213,255,212,255,211,255,216,255,211,255,202,255,199,255,203,255,198,255,193,255,205,255,203,255,195,255, +213,255,218,255,202,255,196,255,190,255,182,255,184,255,189,255,191,255,189,255,191,255,201,255,206,255,209,255,219,255,230,255, +241,255,251,255,11,0,29,0,31,0,20,0,10,0,11,0,12,0,249,255,243,255,254,255,242,255,231,255,227,255,208,255, +210,255,223,255,217,255,221,255,224,255,219,255,232,255,244,255,247,255,252,255,245,255,240,255,239,255,238,255,245,255,237,255, +223,255,234,255,241,255,237,255,245,255,245,255,238,255,241,255,243,255,235,255,230,255,241,255,240,255,232,255,249,255,1,0, +242,255,239,255,234,255,232,255,245,255,240,255,232,255,249,255,250,255,237,255,243,255,254,255,244,255,229,255,234,255,240,255, +246,255,15,0,24,0,10,0,11,0,17,0,15,0,11,0,254,255,236,255,227,255,232,255,239,255,227,255,216,255,222,255, +223,255,234,255,0,0,5,0,1,0,253,255,251,255,2,0,10,0,9,0,2,0,255,255,2,0,0,0,252,255,252,255, +246,255,249,255,6,0,10,0,6,0,255,255,0,0,18,0,25,0,11,0,254,255,252,255,2,0,3,0,5,0,16,0, +11,0,255,255,2,0,2,0,249,255,242,255,237,255,239,255,247,255,250,255,251,255,253,255,254,255,2,0,1,0,0,0, +9,0,21,0,20,0,15,0,16,0,29,0,53,0,60,0,49,0,55,0,60,0,46,0,43,0,32,0,9,0,10,0, +9,0,247,255,250,255,253,255,236,255,233,255,244,255,243,255,235,255,238,255,245,255,254,255,0,0,240,255,235,255,247,255, +235,255,219,255,229,255,232,255,220,255,212,255,210,255,222,255,241,255,1,0,12,0,15,0,23,0,35,0,44,0,52,0, +53,0,49,0,46,0,40,0,47,0,56,0,52,0,50,0,46,0,39,0,35,0,23,0,21,0,26,0,24,0,25,0, +19,0,8,0,16,0,10,0,252,255,3,0,9,0,23,0,30,0,13,0,20,0,30,0,4,0,251,255,6,0,3,0, +249,255,245,255,246,255,236,255,222,255,227,255,240,255,254,255,6,0,255,255,249,255,249,255,248,255,244,255,230,255,225,255, +234,255,227,255,223,255,240,255,246,255,241,255,244,255,252,255,255,255,1,0,18,0,33,0,28,0,15,0,251,255,247,255, +14,0,24,0,16,0,16,0,12,0,13,0,15,0,251,255,234,255,242,255,5,0,19,0,15,0,6,0,13,0,29,0, +28,0,19,0,30,0,48,0,46,0,44,0,46,0,39,0,38,0,46,0,45,0,37,0,31,0,23,0,20,0,31,0, +40,0,16,0,232,255,225,255,251,255,2,0,231,255,219,255,235,255,241,255,236,255,230,255,233,255,251,255,250,255,230,255, +230,255,231,255,217,255,198,255,182,255,184,255,189,255,184,255,185,255,187,255,193,255,208,255,203,255,197,255,216,255,225,255, +224,255,240,255,10,0,24,0,11,0,251,255,7,0,21,0,15,0,7,0,10,0,12,0,4,0,255,255,252,255,246,255, +250,255,254,255,0,0,5,0,6,0,11,0,15,0,12,0,28,0,38,0,13,0,15,0,43,0,31,0,4,0,3,0, +4,0,251,255,247,255,247,255,249,255,2,0,1,0,251,255,7,0,14,0,14,0,30,0,31,0,14,0,17,0,24,0, +30,0,42,0,32,0,9,0,9,0,10,0,0,0,255,255,248,255,233,255,234,255,236,255,230,255,233,255,231,255,216,255, +217,255,214,255,198,255,198,255,203,255,204,255,217,255,231,255,232,255,227,255,226,255,226,255,218,255,207,255,199,255,193,255, +202,255,211,255,199,255,190,255,202,255,223,255,242,255,251,255,6,0,21,0,22,0,13,0,9,0,6,0,2,0,255,255, +253,255,255,255,9,0,25,0,27,0,25,0,26,0,19,0,17,0,31,0,31,0,14,0,9,0,13,0,18,0,29,0, +33,0,22,0,34,0,66,0,58,0,33,0,41,0,60,0,54,0,27,0,4,0,2,0,254,255,243,255,244,255,244,255, +238,255,234,255,223,255,212,255,202,255,196,255,205,255,221,255,228,255,213,255,191,255,196,255,217,255,217,255,194,255,179,255, +192,255,197,255,183,255,185,255,189,255,188,255,201,255,204,255,196,255,204,255,204,255,203,255,215,255,227,255,243,255,249,255, +248,255,251,255,235,255,220,255,226,255,229,255,233,255,232,255,214,255,211,255,230,255,249,255,250,255,234,255,237,255,4,0, +8,0,0,0,252,255,3,0,17,0,12,0,9,0,17,0,17,0,22,0,27,0,17,0,21,0,36,0,35,0,30,0, +22,0,5,0,248,255,244,255,246,255,244,255,228,255,215,255,216,255,213,255,199,255,186,255,183,255,197,255,215,255,208,255, +195,255,200,255,199,255,192,255,190,255,188,255,198,255,208,255,196,255,185,255,193,255,202,255,195,255,180,255,186,255,204,255, +203,255,198,255,210,255,229,255,222,255,196,255,206,255,231,255,224,255,217,255,216,255,211,255,235,255,0,0,243,255,237,255, +245,255,242,255,235,255,239,255,243,255,238,255,239,255,245,255,245,255,253,255,3,0,248,255,249,255,247,255,226,255,220,255, +226,255,219,255,219,255,235,255,242,255,240,255,246,255,243,255,233,255,235,255,236,255,233,255,232,255,221,255,220,255,233,255, +233,255,229,255,223,255,217,255,221,255,219,255,219,255,220,255,197,255,195,255,216,255,216,255,223,255,229,255,212,255,216,255, +219,255,199,255,193,255,200,255,206,255,205,255,201,255,217,255,216,255,190,255,188,255,203,255,212,255,215,255,205,255,209,255, +222,255,224,255,230,255,223,255,212,255,224,255,224,255,215,255,221,255,218,255,216,255,220,255,211,255,221,255,239,255,231,255, +222,255,229,255,232,255,240,255,237,255,214,255,217,255,242,255,248,255,246,255,254,255,2,0,8,0,8,0,247,255,251,255, +10,0,255,255,246,255,1,0,10,0,254,255,228,255,215,255,212,255,202,255,199,255,205,255,209,255,208,255,207,255,220,255, +237,255,226,255,213,255,221,255,226,255,225,255,220,255,216,255,215,255,213,255,217,255,221,255,215,255,216,255,217,255,211,255, +217,255,217,255,208,255,207,255,207,255,209,255,220,255,220,255,221,255,224,255,213,255,206,255,209,255,210,255,219,255,223,255, +215,255,216,255,216,255,210,255,217,255,218,255,205,255,204,255,213,255,205,255,194,255,199,255,206,255,201,255,194,255,198,255, +210,255,221,255,223,255,221,255,224,255,225,255,232,255,252,255,5,0,3,0,5,0,6,0,8,0,8,0,5,0,10,0, +6,0,248,255,249,255,251,255,245,255,244,255,234,255,220,255,219,255,228,255,235,255,228,255,230,255,248,255,242,255,229,255, +239,255,237,255,229,255,230,255,216,255,203,255,207,255,206,255,204,255,205,255,210,255,218,255,209,255,205,255,224,255,227,255, +210,255,201,255,196,255,191,255,192,255,189,255,178,255,175,255,181,255,178,255,174,255,179,255,181,255,184,255,194,255,197,255, +201,255,205,255,198,255,201,255,210,255,208,255,204,255,196,255,183,255,186,255,190,255,181,255,179,255,186,255,192,255,202,255, +204,255,196,255,207,255,227,255,225,255,221,255,233,255,243,255,252,255,9,0,17,0,21,0,16,0,248,255,234,255,244,255, +254,255,0,0,0,0,248,255,243,255,241,255,239,255,239,255,227,255,211,255,215,255,216,255,203,255,202,255,195,255,179,255, +187,255,196,255,190,255,192,255,195,255,193,255,194,255,189,255,185,255,191,255,190,255,174,255,165,255,180,255,191,255,174,255, +155,255,153,255,162,255,168,255,159,255,160,255,177,255,177,255,170,255,176,255,183,255,190,255,190,255,177,255,178,255,195,255, +199,255,196,255,201,255,203,255,192,255,187,255,189,255,197,255,203,255,198,255,197,255,201,255,195,255,196,255,203,255,200,255, +202,255,201,255,193,255,196,255,195,255,194,255,194,255,184,255,191,255,199,255,194,255,212,255,215,255,194,255,197,255,206,255, +209,255,215,255,213,255,219,255,225,255,222,255,220,255,195,255,173,255,183,255,182,255,182,255,186,255,170,255,170,255,181,255, +182,255,186,255,170,255,153,255,163,255,165,255,167,255,179,255,187,255,202,255,202,255,193,255,205,255,209,255,202,255,203,255, +195,255,183,255,181,255,179,255,170,255,157,255,156,255,158,255,159,255,170,255,178,255,193,255,217,255,218,255,211,255,217,255, +223,255,230,255,225,255,214,255,211,255,198,255,185,255,186,255,187,255,190,255,191,255,189,255,187,255,181,255,181,255,175,255, +164,255,174,255,176,255,172,255,193,255,196,255,190,255,205,255,205,255,207,255,224,255,222,255,226,255,239,255,235,255,228,255, +219,255,220,255,223,255,214,255,221,255,223,255,212,255,223,255,225,255,221,255,243,255,239,255,213,255,222,255,229,255,227,255, +239,255,225,255,197,255,197,255,198,255,195,255,207,255,214,255,202,255,191,255,195,255,204,255,194,255,179,255,183,255,193,255, +195,255,197,255,199,255,201,255,198,255,200,255,217,255,223,255,222,255,234,255,226,255,221,255,245,255,241,255,222,255,231,255, +240,255,235,255,229,255,221,255,216,255,216,255,222,255,229,255,218,255,205,255,202,255,195,255,197,255,198,255,184,255,188,255, +208,255,211,255,212,255,219,255,221,255,227,255,224,255,207,255,208,255,219,255,210,255,211,255,232,255,230,255,221,255,227,255, +232,255,239,255,245,255,243,255,232,255,221,255,224,255,234,255,235,255,230,255,213,255,201,255,215,255,224,255,219,255,227,255, +241,255,244,255,243,255,245,255,244,255,238,255,241,255,237,255,223,255,235,255,238,255,210,255,208,255,217,255,208,255,216,255, +222,255,205,255,199,255,201,255,201,255,206,255,206,255,202,255,207,255,224,255,242,255,252,255,254,255,252,255,254,255,3,0, +4,0,250,255,226,255,206,255,206,255,208,255,210,255,217,255,208,255,197,255,206,255,214,255,216,255,223,255,216,255,208,255, +215,255,215,255,209,255,206,255,192,255,187,255,196,255,186,255,181,255,198,255,211,255,221,255,226,255,221,255,232,255,242,255, +235,255,241,255,243,255,237,255,249,255,250,255,250,255,15,0,19,0,4,0,248,255,236,255,234,255,238,255,232,255,218,255, +217,255,232,255,234,255,229,255,239,255,238,255,227,255,233,255,243,255,243,255,232,255,217,255,214,255,212,255,208,255,203,255, +192,255,194,255,205,255,205,255,211,255,226,255,236,255,231,255,225,255,241,255,243,255,222,255,216,255,211,255,213,255,220,255, +203,255,205,255,220,255,204,255,205,255,218,255,219,255,234,255,232,255,219,255,238,255,241,255,212,255,198,255,206,255,213,255, +204,255,202,255,207,255,207,255,226,255,232,255,210,255,211,255,222,255,226,255,237,255,228,255,220,255,237,255,248,255,245,255, +226,255,219,255,233,255,209,255,181,255,195,255,195,255,185,255,196,255,194,255,184,255,185,255,188,255,197,255,214,255,219,255, +207,255,215,255,244,255,247,255,235,255,234,255,235,255,246,255,240,255,221,255,232,255,240,255,230,255,226,255,215,255,216,255, +232,255,226,255,216,255,211,255,207,255,212,255,208,255,205,255,216,255,211,255,208,255,223,255,224,255,211,255,211,255,218,255, +210,255,192,255,182,255,175,255,172,255,177,255,178,255,179,255,172,255,164,255,182,255,200,255,196,255,200,255,205,255,207,255, +216,255,211,255,196,255,192,255,195,255,200,255,203,255,203,255,194,255,188,255,202,255,214,255,216,255,219,255,217,255,218,255, +230,255,222,255,209,255,212,255,211,255,207,255,217,255,227,255,221,255,216,255,226,255,225,255,212,255,217,255,232,255,242,255, +236,255,217,255,217,255,234,255,226,255,212,255,221,255,229,255,218,255,199,255,196,255,201,255,192,255,176,255,170,255,170,255, +170,255,172,255,177,255,179,255,181,255,190,255,196,255,198,255,202,255,201,255,201,255,212,255,219,255,206,255,191,255,195,255, +200,255,186,255,165,255,158,255,167,255,175,255,166,255,166,255,182,255,191,255,191,255,187,255,190,255,204,255,196,255,182,255, +207,255,226,255,219,255,229,255,242,255,248,255,0,0,252,255,248,255,255,255,245,255,234,255,242,255,237,255,223,255,224,255, +223,255,221,255,226,255,221,255,211,255,211,255,213,255,209,255,205,255,210,255,222,255,227,255,224,255,225,255,235,255,243,255, +240,255,235,255,227,255,219,255,226,255,231,255,226,255,229,255,222,255,204,255,201,255,202,255,204,255,211,255,211,255,205,255, +201,255,204,255,211,255,206,255,204,255,207,255,194,255,185,255,185,255,174,255,172,255,181,255,183,255,188,255,202,255,210,255, +200,255,192,255,201,255,203,255,203,255,214,255,218,255,218,255,220,255,213,255,211,255,217,255,215,255,212,255,219,255,224,255, +215,255,221,255,241,255,237,255,227,255,233,255,228,255,234,255,254,255,252,255,243,255,242,255,240,255,248,255,253,255,250,255, +246,255,238,255,249,255,11,0,253,255,230,255,233,255,0,0,10,0,246,255,239,255,253,255,1,0,249,255,239,255,245,255, +6,0,0,0,242,255,243,255,245,255,240,255,227,255,229,255,242,255,220,255,198,255,222,255,238,255,224,255,197,255,177,255, +191,255,210,255,189,255,167,255,182,255,203,255,198,255,186,255,191,255,198,255,205,255,212,255,210,255,208,255,209,255,201,255, +190,255,190,255,197,255,198,255,200,255,215,255,218,255,206,255,207,255,213,255,216,255,221,255,217,255,216,255,231,255,237,255, +229,255,219,255,210,255,207,255,213,255,217,255,214,255,215,255,225,255,238,255,248,255,242,255,228,255,234,255,241,255,226,255, +207,255,203,255,203,255,202,255,209,255,217,255,206,255,201,255,205,255,201,255,204,255,206,255,191,255,193,255,199,255,196,255, +216,255,225,255,208,255,214,255,231,255,237,255,237,255,224,255,224,255,242,255,235,255,217,255,223,255,236,255,222,255,205,255, +217,255,234,255,232,255,231,255,232,255,223,255,220,255,223,255,210,255,191,255,191,255,196,255,192,255,196,255,208,255,207,255, +204,255,214,255,219,255,204,255,193,255,200,255,207,255,207,255,206,255,196,255,204,255,221,255,207,255,200,255,208,255,203,255, +214,255,219,255,203,255,207,255,211,255,202,255,209,255,205,255,197,255,202,255,200,255,205,255,211,255,196,255,204,255,218,255, +208,255,207,255,215,255,222,255,233,255,218,255,198,255,216,255,231,255,221,255,217,255,224,255,223,255,218,255,221,255,223,255, +216,255,215,255,216,255,214,255,226,255,240,255,237,255,231,255,244,255,7,0,11,0,0,0,250,255,1,0,5,0,251,255, +244,255,247,255,244,255,228,255,219,255,224,255,235,255,237,255,242,255,253,255,252,255,246,255,251,255,252,255,248,255,243,255, +227,255,223,255,232,255,220,255,207,255,209,255,205,255,199,255,200,255,203,255,201,255,190,255,198,255,216,255,207,255,198,255, +212,255,225,255,230,255,232,255,229,255,225,255,219,255,215,255,215,255,207,255,202,255,207,255,203,255,198,255,203,255,201,255, +197,255,208,255,217,255,206,255,198,255,216,255,232,255,224,255,216,255,225,255,228,255,218,255,219,255,233,255,232,255,224,255, +227,255,238,255,250,255,244,255,226,255,231,255,248,255,245,255,236,255,238,255,246,255,240,255,225,255,234,255,246,255,241,255, +241,255,237,255,232,255,246,255,237,255,221,255,252,255,4,0,225,255,228,255,251,255,249,255,243,255,236,255,231,255,245,255, +242,255,216,255,222,255,247,255,240,255,223,255,228,255,233,255,236,255,248,255,246,255,232,255,233,255,238,255,236,255,244,255, +244,255,225,255,216,255,220,255,210,255,196,255,198,255,205,255,204,255,196,255,193,255,195,255,189,255,188,255,206,255,214,255, +204,255,196,255,194,255,203,255,214,255,199,255,186,255,196,255,198,255,190,255,193,255,202,255,210,255,206,255,201,255,210,255, +209,255,198,255,205,255,217,255,222,255,221,255,210,255,211,255,222,255,215,255,207,255,212,255,210,255,208,255,215,255,215,255, +204,255,202,255,223,255,238,255,234,255,229,255,229,255,233,255,242,255,242,255,240,255,254,255,7,0,252,255,254,255,16,0, +17,0,253,255,241,255,253,255,15,0,2,0,233,255,237,255,247,255,242,255,238,255,241,255,246,255,239,255,226,255,236,255, +250,255,235,255,214,255,204,255,211,255,230,255,215,255,190,255,197,255,191,255,173,255,181,255,182,255,166,255,165,255,171,255, +174,255,175,255,170,255,170,255,178,255,182,255,173,255,171,255,191,255,202,255,183,255,173,255,185,255,202,255,210,255,198,255, +188,255,201,255,206,255,205,255,222,255,224,255,206,255,210,255,237,255,251,255,247,255,245,255,2,0,13,0,13,0,21,0, +27,0,18,0,20,0,28,0,26,0,26,0,25,0,15,0,11,0,12,0,11,0,3,0,248,255,252,255,1,0,251,255, +255,255,8,0,255,255,241,255,251,255,23,0,27,0,9,0,5,0,13,0,15,0,14,0,5,0,250,255,240,255,234,255, +243,255,249,255,236,255,227,255,225,255,230,255,238,255,232,255,236,255,0,0,4,0,4,0,9,0,255,255,250,255,0,0, +249,255,247,255,244,255,230,255,229,255,236,255,233,255,223,255,208,255,204,255,209,255,207,255,206,255,208,255,212,255,227,255, +232,255,229,255,239,255,246,255,248,255,7,0,15,0,12,0,8,0,6,0,15,0,32,0,38,0,34,0,35,0,40,0, +38,0,34,0,39,0,41,0,43,0,51,0,58,0,67,0,75,0,80,0,86,0,80,0,68,0,71,0,71,0,68,0, +72,0,66,0,56,0,51,0,47,0,50,0,48,0,30,0,22,0,26,0,22,0,13,0,5,0,244,255,239,255,250,255, +235,255,200,255,188,255,174,255,157,255,169,255,173,255,159,255,160,255,170,255,191,255,213,255,214,255,227,255,249,255,0,0, +25,0,63,0,82,0,99,0,122,0,140,0,155,0,166,0,170,0,170,0,174,0,177,0,175,0,173,0,169,0,155,0, +153,0,164,0,167,0,162,0,155,0,145,0,144,0,151,0,152,0,149,0,143,0,125,0,123,0,129,0,111,0,102,0, +102,0,70,0,56,0,75,0,65,0,38,0,22,0,4,0,251,255,245,255,227,255,221,255,226,255,224,255,223,255,233,255, +244,255,244,255,229,255,223,255,236,255,240,255,227,255,226,255,235,255,239,255,249,255,251,255,231,255,220,255,225,255,233,255, +236,255,230,255,231,255,241,255,242,255,251,255,4,0,255,255,3,0,7,0,7,0,16,0,20,0,13,0,13,0,21,0, +28,0,33,0,38,0,41,0,41,0,47,0,51,0,56,0,68,0,68,0,70,0,86,0,92,0,90,0,88,0,83,0, +89,0,90,0,85,0,93,0,92,0,90,0,98,0,94,0,87,0,85,0,79,0,78,0,75,0,69,0,63,0,58,0, +62,0,62,0,52,0,51,0,51,0,43,0,35,0,24,0,17,0,8,0,248,255,249,255,1,0,0,0,1,0,4,0, +8,0,8,0,7,0,19,0,32,0,38,0,36,0,25,0,26,0,27,0,21,0,22,0,8,0,249,255,254,255,2,0, +11,0,18,0,1,0,2,0,18,0,14,0,15,0,12,0,5,0,18,0,28,0,26,0,27,0,34,0,44,0,40,0, +37,0,50,0,46,0,39,0,45,0,44,0,51,0,56,0,41,0,40,0,48,0,48,0,51,0,45,0,27,0,19,0, +24,0,32,0,32,0,28,0,26,0,20,0,26,0,47,0,48,0,27,0,18,0,28,0,38,0,36,0,32,0,33,0, +31,0,38,0,57,0,52,0,25,0,28,0,44,0,36,0,30,0,29,0,24,0,30,0,32,0,31,0,41,0,37,0, +25,0,33,0,37,0,37,0,47,0,52,0,42,0,36,0,36,0,40,0,49,0,55,0,46,0,37,0,43,0,49,0, +45,0,38,0,34,0,35,0,41,0,47,0,38,0,15,0,13,0,21,0,12,0,8,0,8,0,249,255,239,255,242,255, +243,255,247,255,250,255,248,255,244,255,244,255,248,255,248,255,246,255,244,255,247,255,4,0,8,0,6,0,8,0,254,255, +250,255,13,0,23,0,14,0,253,255,248,255,8,0,8,0,255,255,15,0,21,0,13,0,21,0,29,0,25,0,25,0, +30,0,34,0,35,0,37,0,33,0,30,0,38,0,35,0,28,0,35,0,33,0,40,0,52,0,40,0,42,0,49,0, +33,0,31,0,34,0,21,0,24,0,30,0,27,0,23,0,14,0,13,0,15,0,7,0,1,0,250,255,250,255,4,0, +5,0,7,0,13,0,5,0,249,255,245,255,245,255,246,255,245,255,243,255,244,255,251,255,0,0,248,255,250,255,6,0, +254,255,248,255,3,0,3,0,248,255,240,255,244,255,250,255,252,255,0,0,3,0,1,0,9,0,20,0,20,0,19,0, +18,0,22,0,22,0,13,0,7,0,8,0,10,0,12,0,2,0,244,255,246,255,250,255,243,255,237,255,234,255,223,255, +217,255,221,255,214,255,201,255,194,255,189,255,188,255,192,255,189,255,183,255,188,255,211,255,227,255,228,255,241,255,5,0, +18,0,37,0,48,0,61,0,90,0,102,0,103,0,117,0,122,0,124,0,131,0,136,0,144,0,140,0,127,0,123,0, +121,0,122,0,123,0,120,0,117,0,105,0,100,0,110,0,104,0,89,0,88,0,84,0,74,0,67,0,66,0,56,0, +39,0,42,0,43,0,29,0,26,0,13,0,254,255,13,0,23,0,16,0,13,0,12,0,23,0,23,0,12,0,18,0, +18,0,16,0,26,0,14,0,255,255,251,255,249,255,7,0,12,0,7,0,21,0,25,0,23,0,29,0,26,0,27,0, +32,0,29,0,33,0,29,0,18,0,12,0,2,0,5,0,3,0,236,255,233,255,242,255,244,255,246,255,241,255,248,255, +3,0,255,255,1,0,10,0,20,0,31,0,31,0,31,0,37,0,34,0,36,0,44,0,48,0,54,0,55,0,57,0, +64,0,65,0,72,0,77,0,75,0,82,0,84,0,75,0,82,0,91,0,93,0,93,0,83,0,74,0,71,0,72,0, +69,0,61,0,54,0,44,0,33,0,35,0,32,0,30,0,34,0,19,0,5,0,12,0,11,0,9,0,15,0,10,0, +6,0,7,0,0,0,255,255,1,0,246,255,243,255,255,255,254,255,238,255,237,255,243,255,238,255,238,255,238,255,227,255, +228,255,236,255,230,255,229,255,232,255,225,255,233,255,247,255,243,255,241,255,246,255,244,255,245,255,244,255,236,255,242,255, +255,255,0,0,0,0,5,0,14,0,26,0,33,0,28,0,26,0,43,0,55,0,45,0,45,0,49,0,41,0,48,0, +52,0,36,0,34,0,32,0,28,0,35,0,27,0,14,0,20,0,15,0,5,0,8,0,9,0,16,0,19,0,12,0, +13,0,14,0,17,0,31,0,32,0,28,0,33,0,34,0,33,0,31,0,30,0,31,0,19,0,9,0,21,0,25,0, +16,0,18,0,21,0,7,0,0,0,6,0,7,0,12,0,18,0,7,0,5,0,19,0,16,0,9,0,14,0,9,0, +4,0,12,0,11,0,11,0,18,0,14,0,8,0,19,0,20,0,6,0,5,0,14,0,17,0,18,0,15,0,8,0, +6,0,6,0,6,0,6,0,8,0,16,0,17,0,7,0,12,0,26,0,30,0,35,0,33,0,32,0,47,0,54,0, +48,0,52,0,55,0,53,0,55,0,56,0,54,0,55,0,48,0,38,0,40,0,42,0,32,0,27,0,25,0,15,0, +17,0,25,0,15,0,7,0,15,0,27,0,35,0,28,0,18,0,24,0,30,0,28,0,24,0,16,0,12,0,18,0, +21,0,20,0,19,0,23,0,28,0,20,0,11,0,17,0,21,0,21,0,29,0,31,0,22,0,21,0,34,0,42,0, +34,0,23,0,24,0,31,0,36,0,37,0,38,0,35,0,25,0,28,0,40,0,37,0,25,0,21,0,31,0,45,0, +41,0,29,0,30,0,29,0,35,0,49,0,44,0,35,0,34,0,30,0,37,0,41,0,31,0,29,0,39,0,50,0, +54,0,47,0,46,0,48,0,49,0,54,0,49,0,47,0,61,0,55,0,46,0,51,0,46,0,46,0,48,0,38,0, +41,0,44,0,39,0,43,0,30,0,18,0,28,0,23,0,13,0,21,0,24,0,23,0,20,0,23,0,34,0,29,0, +26,0,36,0,28,0,28,0,43,0,43,0,38,0,40,0,42,0,43,0,39,0,40,0,47,0,48,0,50,0,46,0, +47,0,61,0,55,0,50,0,60,0,57,0,58,0,62,0,52,0,59,0,59,0,40,0,49,0,56,0,38,0,40,0, +51,0,44,0,39,0,43,0,47,0,40,0,37,0,41,0,32,0,33,0,47,0,40,0,38,0,51,0,51,0,46,0, +47,0,53,0,56,0,48,0,46,0,56,0,60,0,61,0,52,0,43,0,51,0,48,0,43,0,50,0,36,0,24,0, +32,0,33,0,33,0,36,0,35,0,39,0,34,0,29,0,34,0,31,0,34,0,42,0,32,0,34,0,44,0,37,0, +38,0,49,0,47,0,45,0,43,0,42,0,43,0,36,0,33,0,38,0,36,0,34,0,33,0,34,0,39,0,34,0, +33,0,51,0,52,0,38,0,40,0,45,0,42,0,49,0,62,0,62,0,49,0,46,0,61,0,64,0,52,0,56,0, +62,0,54,0,49,0,49,0,46,0,47,0,46,0,41,0,39,0,34,0,25,0,27,0,34,0,33,0,35,0,42,0, +39,0,37,0,49,0,57,0,57,0,57,0,59,0,68,0,77,0,79,0,78,0,72,0,64,0,62,0,63,0,66,0, +64,0,55,0,46,0,40,0,46,0,60,0,52,0,41,0,49,0,55,0,55,0,56,0,52,0,47,0,51,0,56,0, +52,0,47,0,46,0,41,0,38,0,44,0,44,0,42,0,43,0,38,0,40,0,49,0,51,0,54,0,52,0,57,0, +71,0,59,0,41,0,51,0,51,0,39,0,40,0,41,0,38,0,37,0,36,0,35,0,29,0,34,0,46,0,47,0, +46,0,47,0,53,0,68,0,64,0,51,0,53,0,51,0,50,0,62,0,59,0,49,0,51,0,50,0,48,0,51,0, +52,0,47,0,43,0,47,0,55,0,60,0,63,0,66,0,76,0,81,0,72,0,77,0,89,0,83,0,82,0,88,0, +84,0,82,0,83,0,72,0,68,0,73,0,68,0,62,0,59,0,61,0,67,0,62,0,57,0,58,0,51,0,51,0, +62,0,60,0,55,0,53,0,39,0,35,0,36,0,26,0,25,0,27,0,21,0,30,0,37,0,33,0,40,0,46,0, +40,0,37,0,38,0,43,0,48,0,45,0,46,0,53,0,49,0,47,0,54,0,55,0,50,0,54,0,59,0,55,0, +54,0,60,0,62,0,65,0,71,0,67,0,58,0,57,0,68,0,69,0,55,0,53,0,57,0,55,0,56,0,55,0, +54,0,58,0,56,0,54,0,54,0,51,0,60,0,59,0,44,0,52,0,61,0,53,0,57,0,63,0,60,0,58,0, +49,0,45,0,52,0,49,0,43,0,48,0,47,0,44,0,48,0,51,0,49,0,49,0,50,0,56,0,63,0,52,0, +41,0,52,0,61,0,49,0,41,0,43,0,37,0,32,0,36,0,40,0,40,0,41,0,41,0,39,0,38,0,37,0, +37,0,42,0,41,0,30,0,34,0,35,0,25,0,32,0,35,0,22,0,23,0,31,0,31,0,28,0,26,0,34,0, +47,0,47,0,41,0,33,0,31,0,43,0,47,0,43,0,43,0,35,0,38,0,51,0,43,0,38,0,46,0,43,0, +47,0,57,0,52,0,49,0,54,0,57,0,63,0,66,0,63,0,63,0,65,0,65,0,58,0,48,0,48,0,54,0, +57,0,50,0,37,0,36,0,46,0,46,0,31,0,27,0,38,0,40,0,34,0,36,0,38,0,41,0,52,0,48,0, +32,0,30,0,33,0,37,0,45,0,42,0,30,0,28,0,36,0,35,0,24,0,20,0,21,0,21,0,23,0,19,0, +15,0,24,0,34,0,26,0,15,0,26,0,39,0,32,0,33,0,43,0,38,0,38,0,47,0,43,0,44,0,48,0, +40,0,48,0,57,0,47,0,50,0,55,0,50,0,55,0,62,0,63,0,65,0,65,0,70,0,72,0,64,0,65,0, +74,0,71,0,68,0,65,0,63,0,69,0,70,0,68,0,76,0,75,0,64,0,67,0,67,0,60,0,61,0,53,0, +44,0,56,0,56,0,40,0,43,0,50,0,37,0,29,0,27,0,22,0,23,0,26,0,26,0,31,0,31,0,24,0, +28,0,32,0,24,0,24,0,31,0,27,0,23,0,26,0,29,0,27,0,27,0,29,0,29,0,28,0,32,0,31,0, +31,0,38,0,40,0,36,0,37,0,42,0,42,0,37,0,36,0,41,0,40,0,35,0,39,0,44,0,47,0,50,0, +43,0,35,0,44,0,57,0,57,0,50,0,49,0,51,0,52,0,54,0,57,0,57,0,57,0,65,0,68,0,57,0, +58,0,71,0,63,0,56,0,65,0,66,0,63,0,65,0,61,0,60,0,54,0,46,0,54,0,56,0,50,0,49,0, +44,0,49,0,58,0,47,0,42,0,51,0,49,0,40,0,37,0,41,0,45,0,38,0,33,0,34,0,26,0,20,0, +23,0,26,0,30,0,25,0,13,0,10,0,12,0,19,0,28,0,28,0,20,0,20,0,25,0,22,0,20,0,28,0, +35,0,42,0,45,0,38,0,42,0,49,0,44,0,51,0,56,0,41,0,42,0,54,0,55,0,56,0,52,0,51,0, +64,0,67,0,67,0,66,0,54,0,57,0,71,0,60,0,54,0,69,0,70,0,57,0,55,0,59,0,64,0,61,0, +51,0,54,0,60,0,51,0,52,0,58,0,51,0,50,0,58,0,54,0,47,0,46,0,47,0,51,0,52,0,52,0, +50,0,45,0,43,0,41,0,41,0,50,0,48,0,47,0,61,0,60,0,48,0,51,0,60,0,59,0,55,0,57,0, +62,0,61,0,58,0,55,0,50,0,54,0,63,0,67,0,62,0,49,0,47,0,57,0,57,0,54,0,57,0,55,0, +60,0,68,0,58,0,52,0,59,0,61,0,55,0,48,0,40,0,43,0,51,0,47,0,39,0,45,0,54,0,56,0, +54,0,50,0,48,0,49,0,50,0,57,0,64,0,62,0,59,0,59,0,59,0,57,0,54,0,54,0,58,0,56,0, +53,0,57,0,62,0,62,0,60,0,65,0,71,0,69,0,66,0,68,0,69,0,65,0,62,0,63,0,63,0,63,0, +64,0,57,0,56,0,59,0,46,0,45,0,56,0,44,0,30,0,38,0,42,0,35,0,37,0,41,0,35,0,32,0, +43,0,46,0,40,0,39,0,33,0,35,0,44,0,36,0,27,0,34,0,41,0,45,0,41,0,33,0,38,0,47,0, +48,0,50,0,47,0,45,0,49,0,50,0,52,0,54,0,54,0,56,0,55,0,55,0,60,0,60,0,55,0,49,0, +46,0,51,0,53,0,47,0,48,0,54,0,52,0,52,0,59,0,53,0,45,0,54,0,60,0,58,0,57,0,55,0, +57,0,54,0,50,0,56,0,55,0,49,0,52,0,47,0,44,0,52,0,49,0,41,0,39,0,39,0,38,0,34,0, +36,0,36,0,23,0,24,0,34,0,28,0,29,0,41,0,37,0,30,0,31,0,31,0,32,0,35,0,36,0,37,0, +38,0,36,0,34,0,37,0,39,0,38,0,44,0,46,0,44,0,47,0,48,0,52,0,54,0,47,0,48,0,50,0, +45,0,45,0,46,0,49,0,55,0,54,0,56,0,55,0,44,0,48,0,51,0,41,0,45,0,54,0,49,0,44,0, +44,0,44,0,43,0,45,0,46,0,40,0,34,0,33,0,36,0,38,0,27,0,23,0,34,0,25,0,9,0,13,0, +14,0,12,0,16,0,16,0,17,0,20,0,27,0,28,0,22,0,35,0,45,0,31,0,30,0,35,0,31,0,37,0, +38,0,35,0,39,0,30,0,29,0,41,0,37,0,34,0,36,0,30,0,34,0,42,0,43,0,48,0,47,0,46,0, +49,0,46,0,49,0,56,0,52,0,48,0,50,0,50,0,51,0,52,0,48,0,51,0,56,0,51,0,45,0,48,0, +49,0,53,0,58,0,54,0,58,0,61,0,46,0,45,0,58,0,56,0,50,0,52,0,54,0,55,0,50,0,47,0, +48,0,46,0,47,0,45,0,40,0,49,0,54,0,45,0,43,0,46,0,43,0,46,0,44,0,34,0,37,0,44,0, +36,0,29,0,37,0,38,0,25,0,22,0,31,0,24,0,15,0,23,0,23,0,20,0,29,0,28,0,21,0,22,0, +20,0,23,0,26,0,25,0,28,0,24,0,20,0,27,0,21,0,20,0,28,0,22,0,21,0,24,0,19,0,30,0, +34,0,24,0,27,0,24,0,21,0,33,0,32,0,31,0,33,0,27,0,36,0,36,0,23,0,31,0,34,0,27,0, +31,0,27,0,31,0,45,0,33,0,21,0,31,0,40,0,48,0,46,0,38,0,42,0,42,0,38,0,45,0,46,0, +35,0,40,0,49,0,39,0,33,0,42,0,41,0,36,0,41,0,38,0,33,0,34,0,33,0,30,0,26,0,26,0, +36,0,41,0,40,0,42,0,46,0,42,0,31,0,28,0,36,0,38,0,34,0,35,0,43,0,48,0,37,0,32,0, +41,0,35,0,32,0,42,0,40,0,41,0,42,0,27,0,23,0,24,0,21,0,30,0,32,0,24,0,25,0,23,0, +21,0,22,0,22,0,30,0,29,0,13,0,14,0,23,0,18,0,18,0,21,0,18,0,16,0,14,0,12,0,13,0, +24,0,28,0,17,0,16,0,23,0,16,0,14,0,24,0,23,0,22,0,26,0,21,0,22,0,34,0,29,0,25,0, +33,0,28,0,17,0,18,0,20,0,26,0,35,0,33,0,27,0,28,0,29,0,28,0,31,0,36,0,33,0,26,0, +30,0,34,0,31,0,35,0,40,0,37,0,36,0,38,0,41,0,40,0,37,0,43,0,48,0,40,0,39,0,46,0, +43,0,37,0,36,0,38,0,40,0,38,0,34,0,35,0,35,0,31,0,33,0,43,0,42,0,33,0,34,0,36,0, +29,0,31,0,35,0,31,0,26,0,24,0,22,0,21,0,21,0,23,0,21,0,11,0,11,0,16,0,6,0,2,0, +16,0,10,0,251,255,4,0,11,0,0,0,0,0,5,0,5,0,8,0,6,0,0,0,4,0,9,0,3,0,2,0, +9,0,6,0,247,255,250,255,7,0,4,0,5,0,16,0,14,0,11,0,24,0,25,0,15,0,17,0,24,0,25,0, +27,0,25,0,23,0,27,0,32,0,34,0,34,0,31,0,30,0,31,0,33,0,37,0,39,0,38,0,36,0,35,0, +42,0,53,0,54,0,48,0,42,0,42,0,43,0,44,0,50,0,52,0,38,0,34,0,44,0,46,0,39,0,34,0, +37,0,41,0,37,0,36,0,40,0,40,0,40,0,32,0,25,0,32,0,29,0,27,0,33,0,18,0,10,0,21,0, +20,0,18,0,25,0,26,0,27,0,22,0,16,0,21,0,22,0,20,0,12,0,4,0,15,0,21,0,13,0,17,0, +13,0,6,0,16,0,16,0,8,0,14,0,15,0,10,0,12,0,11,0,15,0,25,0,21,0,14,0,18,0,16,0, +9,0,17,0,18,0,5,0,9,0,14,0,8,0,8,0,12,0,18,0,24,0,18,0,19,0,23,0,15,0,16,0, +21,0,17,0,15,0,16,0,17,0,15,0,15,0,25,0,26,0,21,0,22,0,18,0,20,0,34,0,35,0,30,0, +28,0,30,0,35,0,28,0,25,0,38,0,35,0,27,0,36,0,37,0,28,0,25,0,31,0,33,0,27,0,30,0, +30,0,23,0,26,0,22,0,16,0,29,0,28,0,19,0,23,0,17,0,11,0,16,0,3,0,255,255,8,0,2,0, +255,255,11,0,7,0,252,255,1,0,8,0,3,0,254,255,251,255,252,255,251,255,248,255,254,255,253,255,240,255,243,255, +250,255,245,255,253,255,1,0,249,255,252,255,255,255,0,0,9,0,7,0,2,0,6,0,8,0,4,0,2,0,8,0, +12,0,8,0,10,0,10,0,6,0,14,0,9,0,3,0,19,0,23,0,18,0,17,0,13,0,20,0,23,0,14,0, +16,0,14,0,13,0,27,0,25,0,17,0,15,0,15,0,20,0,16,0,9,0,18,0,12,0,5,0,16,0,15,0, +13,0,22,0,20,0,13,0,10,0,11,0,16,0,18,0,17,0,18,0,22,0,26,0,17,0,14,0,20,0,16,0, +11,0,13,0,13,0,17,0,21,0,21,0,16,0,15,0,19,0,14,0,10,0,18,0,13,0,8,0,21,0,26,0, +23,0,22,0,17,0,20,0,24,0,20,0,21,0,23,0,23,0,18,0,14,0,21,0,20,0,8,0,12,0,20,0, +19,0,19,0,20,0,16,0,13,0,16,0,16,0,8,0,12,0,22,0,16,0,12,0,15,0,10,0,2,0,0,0, +8,0,16,0,15,0,14,0,13,0,10,0,8,0,11,0,15,0,8,0,4,0,11,0,3,0,252,255,8,0,6,0, +1,0,8,0,5,0,2,0,3,0,255,255,7,0,5,0,2,0,16,0,12,0,0,0,4,0,3,0,1,0,1,0, +0,0,7,0,3,0,250,255,0,0,2,0,2,0,4,0,255,255,253,255,251,255,251,255,2,0,2,0,255,255,1,0, +4,0,8,0,10,0,4,0,255,255,3,0,10,0,11,0,13,0,15,0,10,0,10,0,13,0,5,0,7,0,16,0, +15,0,14,0,17,0,17,0,14,0,10,0,13,0,15,0,13,0,19,0,20,0,16,0,17,0,10,0,10,0,19,0, +15,0,8,0,7,0,2,0,1,0,5,0,1,0,249,255,251,255,2,0,0,0,252,255,253,255,250,255,244,255,242,255, +249,255,2,0,251,255,247,255,254,255,245,255,239,255,244,255,240,255,244,255,0,0,251,255,245,255,246,255,253,255,2,0, +252,255,250,255,254,255,2,0,5,0,254,255,0,0,9,0,0,0,2,0,13,0,2,0,255,255,10,0,8,0,9,0, +8,0,3,0,5,0,5,0,3,0,4,0,4,0,11,0,13,0,5,0,0,0,254,255,255,255,4,0,4,0,5,0, +1,0,252,255,4,0,8,0,1,0,2,0,1,0,248,255,253,255,0,0,246,255,255,255,12,0,253,255,251,255,6,0, +252,255,251,255,4,0,248,255,248,255,3,0,2,0,254,255,247,255,249,255,3,0,251,255,253,255,10,0,255,255,248,255, +2,0,5,0,10,0,6,0,255,255,4,0,3,0,1,0,4,0,0,0,3,0,6,0,255,255,5,0,10,0,6,0, +13,0,15,0,8,0,14,0,18,0,8,0,5,0,14,0,17,0,14,0,9,0,2,0,3,0,12,0,10,0,7,0, +13,0,15,0,13,0,12,0,12,0,14,0,12,0,12,0,10,0,4,0,4,0,4,0,1,0,3,0,3,0,1,0, +2,0,2,0,0,0,0,0,4,0,8,0,4,0,1,0,0,0,248,255,254,255,7,0,2,0,2,0,5,0,253,255, +254,255,0,0,250,255,254,255,255,255,248,255,247,255,248,255,250,255,253,255,250,255,250,255,252,255,251,255,252,255,252,255, +254,255,255,255,246,255,240,255,244,255,248,255,249,255,248,255,246,255,248,255,248,255,246,255,248,255,253,255,253,255,247,255, +244,255,247,255,252,255,255,255,247,255,242,255,1,0,4,0,242,255,241,255,252,255,252,255,250,255,249,255,0,0,7,0, +1,0,255,255,7,0,2,0,251,255,255,255,0,0,0,0,2,0,1,0,253,255,252,255,252,255,249,255,254,255,255,255, +241,255,239,255,249,255,247,255,247,255,253,255,247,255,245,255,251,255,250,255,242,255,237,255,241,255,248,255,245,255,235,255, +237,255,246,255,246,255,246,255,250,255,248,255,243,255,244,255,246,255,247,255,243,255,247,255,5,0,1,0,247,255,254,255, +253,255,241,255,237,255,242,255,253,255,254,255,248,255,252,255,250,255,241,255,245,255,249,255,252,255,253,255,244,255,247,255, +255,255,249,255,248,255,247,255,242,255,247,255,254,255,250,255,249,255,249,255,248,255,248,255,247,255,247,255,254,255,4,0, +250,255,246,255,3,0,3,0,254,255,4,0,6,0,3,0,2,0,6,0,15,0,9,0,4,0,11,0,8,0,5,0, +9,0,7,0,11,0,17,0,16,0,16,0,11,0,5,0,7,0,10,0,14,0,14,0,10,0,12,0,8,0,3,0, +14,0,14,0,1,0,1,0,2,0,2,0,3,0,254,255,252,255,0,0,0,0,253,255,250,255,0,0,3,0,248,255, +247,255,254,255,251,255,251,255,255,255,255,255,255,255,252,255,244,255,242,255,239,255,235,255,242,255,249,255,246,255,244,255, +241,255,238,255,243,255,237,255,228,255,235,255,234,255,231,255,237,255,235,255,234,255,239,255,237,255,236,255,230,255,231,255, +247,255,247,255,238,255,244,255,244,255,243,255,250,255,244,255,237,255,246,255,254,255,246,255,242,255,253,255,254,255,244,255, +251,255,2,0,247,255,242,255,247,255,255,255,3,0,253,255,251,255,253,255,251,255,0,0,6,0,3,0,253,255,250,255, +249,255,248,255,244,255,243,255,247,255,251,255,250,255,248,255,245,255,243,255,251,255,1,0,248,255,244,255,250,255,250,255, +251,255,249,255,242,255,245,255,246,255,242,255,249,255,247,255,242,255,252,255,251,255,237,255,239,255,248,255,243,255,242,255, +249,255,246,255,241,255,244,255,244,255,242,255,245,255,246,255,248,255,250,255,248,255,244,255,242,255,243,255,241,255,241,255, +243,255,240,255,243,255,248,255,239,255,240,255,243,255,235,255,242,255,250,255,237,255,239,255,249,255,243,255,240,255,247,255, +252,255,250,255,250,255,254,255,246,255,241,255,251,255,252,255,248,255,251,255,250,255,247,255,244,255,242,255,247,255,248,255, +246,255,249,255,250,255,252,255,249,255,241,255,247,255,251,255,238,255,234,255,242,255,245,255,245,255,246,255,248,255,246,255, +244,255,245,255,241,255,241,255,245,255,243,255,243,255,246,255,242,255,234,255,234,255,237,255,236,255,238,255,243,255,238,255, +238,255,242,255,237,255,235,255,239,255,235,255,232,255,232,255,236,255,241,255,243,255,247,255,248,255,241,255,241,255,238,255, +239,255,251,255,245,255,238,255,246,255,244,255,243,255,247,255,240,255,238,255,244,255,248,255,254,255,249,255,242,255,244,255, +246,255,246,255,246,255,244,255,246,255,247,255,251,255,253,255,244,255,244,255,251,255,248,255,246,255,249,255,247,255,240,255, +244,255,250,255,245,255,245,255,249,255,242,255,241,255,245,255,242,255,249,255,254,255,243,255,240,255,245,255,246,255,246,255, +242,255,243,255,242,255,236,255,240,255,243,255,239,255,240,255,243,255,244,255,244,255,243,255,243,255,242,255,241,255,242,255, +242,255,247,255,243,255,237,255,245,255,249,255,247,255,249,255,244,255,246,255,252,255,240,255,241,255,253,255,247,255,247,255, +251,255,250,255,249,255,243,255,240,255,243,255,243,255,248,255,249,255,238,255,240,255,248,255,245,255,242,255,244,255,248,255, +250,255,247,255,242,255,240,255,239,255,237,255,238,255,240,255,235,255,234,255,237,255,233,255,231,255,233,255,234,255,239,255, +235,255,228,255,238,255,245,255,238,255,239,255,243,255,239,255,234,255,231,255,228,255,228,255,235,255,241,255,241,255,241,255, +243,255,244,255,243,255,242,255,244,255,242,255,239,255,246,255,244,255,239,255,241,255,235,255,233,255,243,255,243,255,240,255, +243,255,239,255,238,255,244,255,247,255,245,255,239,255,242,255,250,255,244,255,241,255,251,255,246,255,233,255,237,255,245,255, +243,255,241,255,243,255,239,255,239,255,241,255,236,255,235,255,240,255,240,255,240,255,243,255,240,255,236,255,244,255,250,255, +240,255,238,255,250,255,245,255,237,255,245,255,241,255,230,255,239,255,244,255,242,255,246,255,242,255,233,255,240,255,244,255, +240,255,241,255,241,255,241,255,243,255,241,255,242,255,244,255,236,255,234,255,240,255,239,255,240,255,240,255,234,255,237,255, +238,255,234,255,236,255,235,255,235,255,241,255,239,255,236,255,238,255,238,255,234,255,237,255,240,255,236,255,235,255,244,255, +242,255,237,255,244,255,242,255,237,255,242,255,242,255,243,255,248,255,245,255,242,255,243,255,240,255,236,255,240,255,251,255, +253,255,243,255,241,255,242,255,241,255,242,255,239,255,241,255,247,255,243,255,245,255,246,255,239,255,238,255,237,255,233,255, +241,255,243,255,237,255,239,255,242,255,246,255,248,255,241,255,233,255,233,255,237,255,237,255,238,255,236,255,231,255,232,255, +235,255,229,255,231,255,240,255,241,255,239,255,235,255,233,255,237,255,238,255,240,255,235,255,228,255,236,255,237,255,227,255, +232,255,233,255,229,255,236,255,238,255,235,255,237,255,237,255,237,255,235,255,234,255,232,255,229,255,239,255,248,255,246,255, +245,255,239,255,235,255,242,255,242,255,242,255,242,255,236,255,241,255,243,255,240,255,243,255,239,255,238,255,246,255,244,255, +239,255,241,255,242,255,242,255,240,255,244,255,247,255,237,255,242,255,249,255,235,255,232,255,239,255,236,255,234,255,236,255, +244,255,246,255,239,255,241,255,239,255,236,255,245,255,240,255,233,255,241,255,246,255,248,255,246,255,237,255,242,255,246,255, +243,255,246,255,248,255,244,255,239,255,235,255,241,255,245,255,243,255,245,255,238,255,232,255,236,255,236,255,236,255,237,255, +235,255,234,255,234,255,234,255,237,255,242,255,245,255,236,255,233,255,234,255,227,255,234,255,245,255,238,255,239,255,241,255, +236,255,243,255,244,255,235,255,235,255,236,255,239,255,241,255,233,255,241,255,250,255,240,255,235,255,241,255,240,255,240,255, +245,255,247,255,244,255,245,255,248,255,244,255,242,255,244,255,245,255,247,255,247,255,247,255,252,255,249,255,245,255,252,255, +253,255,245,255,241,255,246,255,243,255,236,255,243,255,248,255,239,255,238,255,241,255,242,255,249,255,243,255,238,255,247,255, +240,255,236,255,247,255,244,255,237,255,244,255,244,255,241,255,241,255,242,255,243,255,243,255,240,255,240,255,240,255,237,255, +233,255,234,255,232,255,231,255,239,255,241,255,236,255,244,255,245,255,235,255,239,255,245,255,235,255,235,255,240,255,237,255, +240,255,246,255,244,255,243,255,242,255,239,255,242,255,243,255,242,255,241,255,237,255,241,255,249,255,245,255,239,255,243,255, +244,255,243,255,242,255,239,255,244,255,248,255,242,255,242,255,245,255,247,255,251,255,244,255,237,255,248,255,252,255,242,255, +246,255,252,255,244,255,247,255,255,255,247,255,243,255,246,255,240,255,240,255,245,255,241,255,241,255,242,255,238,255,237,255, +240,255,241,255,235,255,229,255,241,255,250,255,239,255,239,255,247,255,243,255,242,255,243,255,241,255,246,255,244,255,237,255, +243,255,243,255,236,255,241,255,245,255,239,255,237,255,238,255,238,255,242,255,241,255,238,255,239,255,238,255,242,255,247,255, +237,255,234,255,241,255,236,255,233,255,237,255,241,255,244,255,241,255,243,255,249,255,243,255,240,255,245,255,242,255,243,255, +244,255,237,255,239,255,244,255,245,255,249,255,248,255,242,255,242,255,247,255,248,255,243,255,244,255,248,255,242,255,243,255, +249,255,244,255,243,255,242,255,236,255,243,255,245,255,240,255,247,255,247,255,238,255,244,255,247,255,241,255,242,255,241,255, +238,255,240,255,241,255,238,255,238,255,241,255,239,255,235,255,238,255,241,255,241,255,243,255,244,255,244,255,242,255,240,255, +241,255,240,255,236,255,237,255,238,255,237,255,236,255,239,255,245,255,243,255,243,255,246,255,242,255,241,255,245,255,242,255, +238,255,240,255,237,255,235,255,239,255,240,255,238,255,239,255,241,255,239,255,241,255,248,255,246,255,241,255,239,255,237,255, +240,255,243,255,245,255,246,255,241,255,240,255,247,255,245,255,241,255,241,255,240,255,244,255,244,255,239,255,242,255,240,255, +237,255,240,255,239,255,244,255,250,255,241,255,239,255,244,255,239,255,240,255,245,255,246,255,245,255,237,255,236,255,246,255, +249,255,248,255,247,255,244,255,245,255,248,255,248,255,244,255,243,255,249,255,249,255,249,255,253,255,247,255,242,255,246,255, +246,255,245,255,242,255,242,255,251,255,248,255,241,255,251,255,0,0,252,255,248,255,244,255,248,255,252,255,244,255,244,255, +251,255,248,255,240,255,239,255,241,255,241,255,239,255,240,255,242,255,243,255,237,255,233,255,240,255,241,255,238,255,243,255, +244,255,245,255,246,255,237,255,235,255,241,255,242,255,244,255,244,255,241,255,244,255,245,255,244,255,244,255,244,255,241,255, +240,255,246,255,249,255,246,255,250,255,252,255,246,255,249,255,250,255,243,255,246,255,246,255,245,255,250,255,248,255,247,255, +255,255,2,0,255,255,251,255,250,255,250,255,250,255,253,255,249,255,245,255,253,255,251,255,244,255,253,255,254,255,242,255, +241,255,248,255,250,255,243,255,236,255,246,255,253,255,248,255,247,255,246,255,241,255,242,255,250,255,253,255,246,255,242,255, +248,255,248,255,244,255,244,255,244,255,245,255,241,255,239,255,246,255,246,255,243,255,244,255,240,255,242,255,251,255,247,255, +239,255,244,255,248,255,246,255,247,255,250,255,249,255,248,255,253,255,1,0,255,255,255,255,253,255,248,255,250,255,255,255, +254,255,250,255,251,255,252,255,251,255,253,255,0,0,0,0,252,255,249,255,252,255,252,255,250,255,252,255,252,255,253,255, +253,255,249,255,249,255,249,255,249,255,254,255,249,255,240,255,247,255,250,255,244,255,248,255,247,255,241,255,244,255,246,255, +248,255,248,255,243,255,248,255,0,0,248,255,246,255,250,255,248,255,249,255,250,255,248,255,253,255,250,255,244,255,252,255, +254,255,248,255,253,255,0,0,252,255,1,0,5,0,255,255,252,255,252,255,249,255,248,255,248,255,245,255,246,255,252,255, +250,255,246,255,253,255,0,0,254,255,0,0,252,255,250,255,253,255,252,255,250,255,249,255,248,255,251,255,253,255,252,255, +248,255,246,255,247,255,242,255,246,255,3,0,255,255,246,255,247,255,245,255,250,255,1,0,250,255,251,255,253,255,246,255, +250,255,255,255,254,255,255,255,249,255,247,255,255,255,250,255,247,255,2,0,253,255,243,255,248,255,253,255,247,255,245,255, +248,255,248,255,250,255,254,255,252,255,250,255,252,255,252,255,250,255,254,255,7,0,3,0,248,255,252,255,3,0,255,255, +250,255,250,255,0,0,2,0,247,255,246,255,253,255,251,255,247,255,245,255,248,255,251,255,249,255,251,255,250,255,244,255, +248,255,246,255,241,255,249,255,248,255,243,255,249,255,251,255,249,255,248,255,249,255,255,255,248,255,240,255,252,255,254,255, +248,255,251,255,253,255,251,255,246,255,243,255,253,255,2,0,251,255,249,255,247,255,247,255,248,255,247,255,252,255,255,255, +251,255,247,255,251,255,253,255,249,255,246,255,248,255,251,255,255,255,252,255,245,255,250,255,0,0,251,255,246,255,242,255, +245,255,248,255,243,255,248,255,0,0,249,255,244,255,242,255,243,255,250,255,247,255,240,255,244,255,250,255,248,255,243,255, +245,255,251,255,247,255,244,255,247,255,249,255,250,255,248,255,246,255,249,255,249,255,249,255,248,255,247,255,250,255,247,255, +245,255,252,255,252,255,249,255,246,255,242,255,251,255,0,0,247,255,247,255,253,255,251,255,248,255,252,255,0,0,248,255, +242,255,252,255,255,255,246,255,247,255,250,255,253,255,252,255,245,255,249,255,2,0,251,255,243,255,248,255,254,255,254,255, +249,255,247,255,254,255,3,0,253,255,250,255,253,255,249,255,248,255,255,255,253,255,249,255,247,255,244,255,250,255,1,0, +250,255,244,255,246,255,253,255,2,0,249,255,246,255,255,255,252,255,238,255,241,255,254,255,251,255,238,255,242,255,248,255, +248,255,250,255,245,255,240,255,249,255,252,255,245,255,244,255,247,255,250,255,250,255,244,255,245,255,248,255,249,255,251,255, +250,255,248,255,248,255,251,255,250,255,245,255,249,255,0,0,252,255,249,255,251,255,252,255,254,255,253,255,250,255,254,255, +254,255,249,255,249,255,253,255,1,0,1,0,251,255,249,255,252,255,4,0,2,0,252,255,0,0,255,255,250,255,253,255, +253,255,253,255,3,0,0,0,248,255,248,255,252,255,253,255,252,255,253,255,251,255,248,255,252,255,252,255,248,255,250,255, +251,255,246,255,245,255,249,255,254,255,250,255,244,255,246,255,246,255,245,255,252,255,255,255,249,255,245,255,250,255,255,255, +251,255,249,255,252,255,252,255,247,255,249,255,255,255,253,255,250,255,252,255,252,255,250,255,253,255,253,255,251,255,255,255, +255,255,254,255,255,255,255,255,255,255,253,255,253,255,1,0,0,0,254,255,1,0,3,0,2,0,2,0,0,0,254,255, +252,255,0,0,8,0,7,0,254,255,254,255,4,0,3,0,255,255,251,255,1,0,5,0,250,255,245,255,255,255,1,0, +255,255,3,0,253,255,249,255,255,255,252,255,249,255,255,255,1,0,255,255,250,255,247,255,252,255,253,255,253,255,255,255, +255,255,255,255,1,0,252,255,251,255,254,255,253,255,251,255,251,255,251,255,253,255,253,255,249,255,247,255,250,255,253,255, +250,255,245,255,245,255,253,255,3,0,0,0,253,255,254,255,252,255,254,255,252,255,249,255,255,255,254,255,250,255,2,0, +4,0,255,255,253,255,253,255,254,255,254,255,252,255,253,255,253,255,252,255,1,0,4,0,2,0,1,0,255,255,254,255, +1,0,2,0,253,255,254,255,2,0,0,0,255,255,255,255,254,255,2,0,2,0,251,255,253,255,2,0,252,255,249,255, +252,255,254,255,251,255,253,255,0,0,252,255,251,255,0,0,253,255,254,255,2,0,255,255,253,255,252,255,248,255,253,255, +255,255,250,255,249,255,251,255,252,255,254,255,249,255,250,255,3,0,0,0,248,255,249,255,253,255,251,255,253,255,1,0, +255,255,254,255,250,255,245,255,249,255,254,255,252,255,254,255,3,0,2,0,252,255,250,255,3,0,6,0,252,255,250,255, +1,0,3,0,255,255,254,255,255,255,252,255,253,255,0,0,252,255,254,255,4,0,255,255,253,255,255,255,251,255,252,255, +0,0,253,255,249,255,249,255,253,255,255,255,251,255,252,255,2,0,3,0,2,0,253,255,250,255,252,255,252,255,251,255, +252,255,249,255,253,255,0,0,251,255,251,255,251,255,247,255,249,255,251,255,247,255,245,255,246,255,249,255,254,255,255,255, +250,255,246,255,248,255,255,255,1,0,252,255,249,255,254,255,0,0,249,255,249,255,255,255,253,255,250,255,250,255,249,255, +253,255,255,255,250,255,249,255,0,0,255,255,248,255,247,255,253,255,0,0,252,255,248,255,251,255,250,255,246,255,250,255, +253,255,252,255,255,255,1,0,254,255,255,255,0,0,254,255,252,255,246,255,246,255,255,255,1,0,253,255,252,255,249,255, +250,255,252,255,250,255,252,255,255,255,254,255,0,0,253,255,248,255,253,255,255,255,250,255,252,255,254,255,254,255,1,0, +254,255,252,255,254,255,251,255,249,255,250,255,249,255,248,255,248,255,250,255,253,255,246,255,245,255,0,0,255,255,251,255, +254,255,253,255,251,255,0,0,255,255,255,255,4,0,252,255,248,255,0,0,3,0,255,255,252,255,251,255,1,0,5,0, +254,255,252,255,255,255,0,0,1,0,254,255,250,255,252,255,253,255,254,255,255,255,252,255,251,255,254,255,253,255,251,255, +254,255,255,255,254,255,252,255,251,255,253,255,254,255,248,255,248,255,253,255,248,255,248,255,252,255,248,255,249,255,253,255, +251,255,253,255,252,255,247,255,251,255,253,255,250,255,255,255,3,0,254,255,250,255,254,255,1,0,253,255,251,255,251,255, +253,255,3,0,0,0,248,255,252,255,254,255,246,255,249,255,0,0,0,0,254,255,250,255,252,255,1,0,254,255,253,255, +254,255,253,255,252,255,251,255,252,255,253,255,252,255,253,255,250,255,252,255,4,0,1,0,252,255,255,255,255,255,252,255, +254,255,1,0,1,0,255,255,254,255,1,0,6,0,5,0,252,255,250,255,255,255,255,255,252,255,254,255,254,255,252,255, +250,255,253,255,3,0,253,255,247,255,253,255,4,0,2,0,251,255,251,255,254,255,251,255,252,255,1,0,0,0,252,255, +248,255,249,255,255,255,1,0,253,255,252,255,252,255,1,0,255,255,249,255,254,255,252,255,249,255,0,0,254,255,251,255, +254,255,248,255,247,255,252,255,246,255,246,255,254,255,253,255,252,255,253,255,249,255,251,255,255,255,251,255,249,255,253,255, +253,255,252,255,253,255,252,255,251,255,253,255,251,255,251,255,255,255,252,255,247,255,248,255,249,255,252,255,1,0,255,255, +249,255,250,255,253,255,251,255,253,255,253,255,249,255,250,255,255,255,252,255,250,255,251,255,249,255,247,255,250,255,253,255, +254,255,250,255,249,255,253,255,253,255,249,255,251,255,254,255,250,255,252,255,2,0,252,255,247,255,252,255,253,255,250,255, +249,255,248,255,249,255,249,255,252,255,1,0,253,255,246,255,250,255,254,255,251,255,249,255,253,255,254,255,250,255,250,255, +251,255,250,255,255,255,255,255,247,255,251,255,0,0,251,255,252,255,255,255,250,255,248,255,251,255,252,255,248,255,246,255, +251,255,250,255,244,255,249,255,255,255,249,255,249,255,253,255,250,255,250,255,251,255,252,255,254,255,252,255,250,255,252,255, +252,255,250,255,251,255,252,255,252,255,253,255,252,255,249,255,250,255,1,0,1,0,249,255,249,255,252,255,252,255,0,0, +254,255,248,255,251,255,0,0,0,0,253,255,252,255,253,255,252,255,252,255,252,255,250,255,250,255,248,255,248,255,254,255, +251,255,248,255,250,255,248,255,249,255,254,255,253,255,255,255,0,0,250,255,252,255,253,255,249,255,251,255,254,255,251,255, +252,255,254,255,250,255,247,255,253,255,255,255,253,255,253,255,249,255,245,255,253,255,0,0,252,255,249,255,249,255,0,0, +0,0,249,255,248,255,247,255,246,255,252,255,251,255,247,255,248,255,250,255,254,255,251,255,248,255,255,255,0,0,251,255, +251,255,248,255,246,255,253,255,1,0,254,255,250,255,250,255,252,255,248,255,246,255,248,255,249,255,249,255,252,255,254,255, +251,255,249,255,255,255,2,0,253,255,250,255,250,255,253,255,253,255,248,255,249,255,252,255,251,255,249,255,249,255,253,255, +254,255,250,255,251,255,250,255,248,255,251,255,249,255,249,255,255,255,252,255,249,255,252,255,253,255,255,255,252,255,249,255, +252,255,253,255,251,255,249,255,247,255,252,255,254,255,252,255,252,255,250,255,247,255,250,255,253,255,254,255,253,255,250,255, +253,255,253,255,250,255,250,255,252,255,0,0,0,0,248,255,249,255,255,255,254,255,249,255,248,255,249,255,253,255,254,255, +251,255,249,255,252,255,253,255,252,255,254,255,255,255,252,255,247,255,247,255,254,255,0,0,251,255,250,255,252,255,253,255, +252,255,248,255,249,255,253,255,247,255,244,255,248,255,248,255,250,255,255,255,1,0,254,255,252,255,253,255,251,255,246,255, +251,255,0,0,0,0,0,0,254,255,249,255,250,255,0,0,255,255,251,255,250,255,252,255,253,255,254,255,253,255,254,255, +0,0,247,255,247,255,4,0,1,0,253,255,2,0,252,255,246,255,253,255,255,255,252,255,250,255,248,255,253,255,254,255, +249,255,248,255,252,255,255,255,254,255,249,255,250,255,252,255,253,255,1,0,255,255,253,255,0,0,253,255,249,255,253,255, +0,0,0,0,251,255,247,255,252,255,0,0,253,255,254,255,253,255,252,255,253,255,250,255,252,255,0,0,253,255,253,255, +252,255,249,255,253,255,255,255,253,255,255,255,252,255,250,255,250,255,247,255,250,255,253,255,250,255,252,255,253,255,251,255, +254,255,0,0,0,0,254,255,250,255,252,255,0,0,0,0,1,0,0,0,254,255,255,255,0,0,255,255,254,255,252,255, +252,255,255,255,1,0,2,0,1,0,1,0,0,0,0,0,0,0,254,255,255,255,1,0,254,255,252,255,254,255,254,255, +250,255,249,255,253,255,254,255,252,255,251,255,250,255,250,255,251,255,249,255,252,255,0,0,252,255,253,255,1,0,1,0, +253,255,248,255,251,255,1,0,253,255,249,255,251,255,254,255,253,255,251,255,252,255,252,255,251,255,254,255,253,255,251,255, +253,255,254,255,254,255,252,255,250,255,253,255,254,255,250,255,253,255,255,255,255,255,254,255,251,255,253,255,253,255,249,255, +252,255,252,255,251,255,253,255,252,255,252,255,255,255,255,255,1,0,253,255,249,255,253,255,254,255,253,255,251,255,246,255, +252,255,0,0,248,255,249,255,254,255,0,0,253,255,248,255,250,255,254,255,250,255,251,255,255,255,252,255,250,255,250,255, +252,255,0,0,2,0,255,255,251,255,251,255,252,255,249,255,252,255,0,0,253,255,251,255,251,255,253,255,0,0,0,0, +253,255,249,255,251,255,254,255,251,255,253,255,254,255,247,255,252,255,0,0,249,255,255,255,3,0,251,255,250,255,253,255, +255,255,0,0,253,255,253,255,253,255,250,255,251,255,249,255,249,255,252,255,250,255,249,255,253,255,250,255,246,255,250,255, +254,255,252,255,249,255,250,255,250,255,251,255,251,255,248,255,250,255,253,255,251,255,248,255,249,255,252,255,252,255,248,255, +254,255,255,255,245,255,251,255,0,0,249,255,251,255,251,255,249,255,255,255,252,255,244,255,246,255,247,255,249,255,252,255, +251,255,251,255,251,255,254,255,255,255,251,255,249,255,250,255,251,255,1,0,2,0,253,255,252,255,253,255,252,255,250,255, +251,255,252,255,250,255,250,255,253,255,250,255,251,255,255,255,251,255,250,255,254,255,253,255,250,255,250,255,250,255,253,255, +255,255,250,255,246,255,251,255,253,255,253,255,254,255,250,255,244,255,246,255,248,255,249,255,252,255,252,255,249,255,249,255, +251,255,251,255,251,255,254,255,250,255,245,255,252,255,0,0,248,255,246,255,247,255,247,255,249,255,249,255,249,255,251,255, +251,255,247,255,246,255,249,255,249,255,248,255,250,255,248,255,247,255,251,255,248,255,247,255,255,255,253,255,248,255,251,255, +250,255,251,255,250,255,244,255,247,255,250,255,250,255,0,0,254,255,249,255,254,255,255,255,250,255,249,255,247,255,250,255, +254,255,251,255,248,255,250,255,255,255,0,0,252,255,252,255,254,255,251,255,251,255,251,255,250,255,250,255,252,255,253,255, +250,255,248,255,251,255,251,255,251,255,252,255,252,255,253,255,251,255,248,255,252,255,253,255,248,255,250,255,253,255,249,255, +251,255,253,255,250,255,249,255,251,255,255,255,2,0,252,255,250,255,254,255,254,255,255,255,0,0,253,255,251,255,250,255, +251,255,252,255,251,255,252,255,254,255,252,255,253,255,254,255,250,255,247,255,249,255,250,255,251,255,253,255,251,255,252,255, +251,255,248,255,249,255,253,255,252,255,251,255,251,255,253,255,252,255,252,255,253,255,253,255,248,255,248,255,254,255,255,255, +250,255,248,255,251,255,253,255,254,255,253,255,253,255,254,255,255,255,254,255,252,255,255,255,0,0,255,255,254,255,252,255, +252,255,255,255,255,255,0,0,1,0,251,255,254,255,4,0,255,255,253,255,255,255,255,255,0,0,2,0,2,0,1,0, +254,255,255,255,1,0,255,255,1,0,3,0,3,0,2,0,254,255,253,255,0,0,253,255,0,0,1,0,253,255,254,255, +255,255,254,255,255,255,251,255,251,255,0,0,255,255,253,255,252,255,252,255,255,255,254,255,1,0,3,0,252,255,252,255, +255,255,252,255,253,255,255,255,251,255,252,255,251,255,251,255,0,0,254,255,252,255,252,255,251,255,255,255,2,0,254,255, +0,0,2,0,251,255,251,255,0,0,255,255,253,255,252,255,255,255,4,0,1,0,252,255,1,0,3,0,0,0,1,0, +2,0,0,0,2,0,2,0,1,0,2,0,0,0,3,0,5,0,1,0,0,0,0,0,1,0,5,0,3,0,1,0, +1,0,254,255,254,255,3,0,3,0,0,0,0,0,2,0,2,0,1,0,0,0,254,255,1,0,2,0,254,255,0,0, +3,0,255,255,0,0,0,0,252,255,0,0,0,0,253,255,3,0,5,0,0,0,254,255,252,255,255,255,1,0,1,0, +1,0,255,255,254,255,255,255,254,255,0,0,0,0,0,0,3,0,1,0,1,0,6,0,2,0,1,0,3,0,1,0, +0,0,254,255,253,255,4,0,4,0,2,0,6,0,4,0,255,255,3,0,4,0,1,0,1,0,4,0,1,0,254,255, +0,0,0,0,255,255,2,0,3,0,3,0,5,0,3,0,3,0,3,0,3,0,3,0,255,255,1,0,3,0,255,255, +1,0,4,0,2,0,4,0,4,0,0,0,4,0,7,0,2,0,0,0,1,0,255,255,255,255,2,0,5,0,5,0, +2,0,255,255,255,255,3,0,5,0,4,0,3,0,4,0,4,0,2,0,2,0,2,0,0,0,1,0,3,0,3,0, +5,0,5,0,0,0,1,0,4,0,4,0,4,0,4,0,3,0,1,0,2,0,4,0,4,0,4,0,4,0,2,0, +1,0,1,0,0,0,0,0,1,0,3,0,5,0,6,0,3,0,255,255,3,0,3,0,1,0,5,0,1,0,255,255, +7,0,3,0,253,255,2,0,0,0,254,255,3,0,1,0,0,0,3,0,2,0,3,0,1,0,1,0,3,0,0,0, +0,0,5,0,3,0,2,0,1,0,1,0,3,0,0,0,0,0,4,0,1,0,2,0,5,0,2,0,1,0,1,0, +3,0,6,0,3,0,4,0,6,0,0,0,1,0,6,0,5,0,2,0,1,0,5,0,7,0,3,0,3,0,5,0, +4,0,4,0,4,0,4,0,5,0,5,0,4,0,3,0,4,0,5,0,3,0,4,0,4,0,0,0,2,0,3,0, +4,0,7,0,3,0,0,0,4,0,7,0,8,0,7,0,3,0,4,0,5,0,6,0,8,0,5,0,4,0,6,0, +4,0,3,0,1,0,1,0,5,0,4,0,3,0,4,0,2,0,4,0,5,0,1,0,0,0,2,0,2,0,3,0, +2,0,2,0,3,0,1,0,4,0,5,0,2,0,4,0,5,0,255,255,1,0,8,0,6,0,2,0,2,0,3,0, +3,0,3,0,4,0,6,0,5,0,3,0,4,0,4,0,5,0,6,0,4,0,5,0,5,0,4,0,9,0,7,0, +2,0,8,0,7,0,2,0,5,0,6,0,4,0,4,0,3,0,3,0,4,0,1,0,4,0,7,0,5,0,3,0, +4,0,5,0,4,0,8,0,9,0,6,0,8,0,8,0,3,0,4,0,6,0,5,0,7,0,6,0,5,0,5,0, +4,0,6,0,6,0,4,0,6,0,8,0,7,0,9,0,6,0,3,0,6,0,5,0,6,0,7,0,4,0,5,0, +7,0,3,0,4,0,6,0,3,0,3,0,4,0,5,0,5,0,6,0,7,0,5,0,2,0,4,0,6,0,7,0, +7,0,2,0,2,0,6,0,3,0,1,0,5,0,4,0,3,0,6,0,7,0,6,0,4,0,5,0,8,0,6,0, +4,0,7,0,6,0,6,0,9,0,7,0,4,0,3,0,4,0,6,0,5,0,6,0,9,0,6,0,3,0,8,0, +10,0,8,0,5,0,6,0,8,0,6,0,6,0,9,0,8,0,8,0,9,0,7,0,8,0,8,0,5,0,7,0, +7,0,8,0,10,0,7,0,8,0,10,0,6,0,7,0,10,0,9,0,5,0,4,0,7,0,7,0,6,0,7,0, +7,0,5,0,6,0,5,0,7,0,10,0,7,0,6,0,7,0,5,0,2,0,4,0,7,0,6,0,6,0,8,0, +6,0,6,0,8,0,5,0,6,0,8,0,4,0,5,0,8,0,8,0,7,0,4,0,6,0,9,0,6,0,7,0, +9,0,5,0,7,0,9,0,6,0,7,0,7,0,6,0,5,0,2,0,6,0,8,0,3,0,5,0,9,0,7,0, +7,0,8,0,7,0,8,0,8,0,8,0,6,0,7,0,6,0,6,0,9,0,7,0,6,0,10,0,8,0,5,0, +7,0,6,0,7,0,10,0,8,0,7,0,8,0,9,0,11,0,7,0,6,0,12,0,8,0,5,0,9,0,8,0, +7,0,10,0,8,0,6,0,9,0,9,0,9,0,10,0,8,0,9,0,6,0,6,0,10,0,10,0,8,0,9,0, +9,0,8,0,9,0,8,0,8,0,10,0,9,0,9,0,10,0,8,0,8,0,7,0,8,0,12,0,9,0,6,0, +9,0,10,0,8,0,8,0,6,0,8,0,12,0,10,0,7,0,8,0,9,0,11,0,12,0,11,0,10,0,9,0, +10,0,10,0,7,0,7,0,9,0,6,0,7,0,12,0,10,0,8,0,9,0,6,0,8,0,10,0,7,0,10,0, +11,0,7,0,11,0,11,0,5,0,10,0,12,0,8,0,10,0,8,0,6,0,8,0,7,0,7,0,9,0,7,0, +7,0,7,0,8,0,11,0,8,0,6,0,10,0,9,0,6,0,9,0,11,0,10,0,8,0,7,0,10,0,13,0, +11,0,9,0,11,0,11,0,8,0,8,0,10,0,10,0,10,0,11,0,10,0,10,0,11,0,9,0,8,0,11,0, +11,0,8,0,10,0,13,0,11,0,8,0,7,0,9,0,11,0,8,0,9,0,11,0,10,0,8,0,9,0,9,0, +9,0,8,0,8,0,7,0,6,0,7,0,8,0,9,0,12,0,11,0,8,0,9,0,6,0,3,0,5,0,8,0, +11,0,9,0,5,0,7,0,10,0,10,0,8,0,6,0,9,0,9,0,7,0,10,0,10,0,6,0,7,0,9,0, +8,0,9,0,10,0,9,0,9,0,11,0,9,0,6,0,9,0,10,0,7,0,7,0,5,0,6,0,9,0,9,0, +10,0,10,0,7,0,11,0,13,0,10,0,10,0,10,0,9,0,12,0,9,0,7,0,9,0,10,0,11,0,10,0, +8,0,12,0,11,0,9,0,13,0,11,0,8,0,9,0,9,0,7,0,9,0,12,0,12,0,9,0,9,0,12,0, +9,0,7,0,10,0,10,0,8,0,8,0,5,0,6,0,8,0,7,0,7,0,9,0,9,0,8,0,8,0,7,0, +9,0,8,0,4,0,6,0,8,0,5,0,5,0,6,0,6,0,8,0,6,0,6,0,10,0,8,0,6,0,7,0, +6,0,6,0,9,0,11,0,11,0,8,0,8,0,11,0,9,0,7,0,10,0,10,0,9,0,11,0,10,0,9,0, +11,0,10,0,9,0,9,0,8,0,7,0,9,0,9,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,7,0, +7,0,11,0,11,0,10,0,11,0,8,0,5,0,7,0,9,0,9,0,8,0,8,0,8,0,6,0,8,0,12,0, +11,0,8,0,9,0,8,0,6,0,7,0,10,0,9,0,6,0,9,0,10,0,8,0,7,0,8,0,9,0,8,0, +8,0,6,0,8,0,10,0,7,0,7,0,11,0,8,0,6,0,11,0,12,0,8,0,6,0,8,0,8,0,7,0, +9,0,10,0,7,0,8,0,9,0,8,0,11,0,11,0,7,0,10,0,10,0,5,0,9,0,11,0,9,0,10,0, +10,0,9,0,10,0,12,0,11,0,9,0,9,0,10,0,10,0,11,0,9,0,8,0,11,0,11,0,10,0,12,0, +12,0,12,0,12,0,10,0,10,0,10,0,10,0,10,0,8,0,8,0,10,0,9,0,9,0,10,0,10,0,11,0, +10,0,8,0,8,0,10,0,11,0,11,0,12,0,12,0,9,0,9,0,10,0,10,0,12,0,13,0,11,0,12,0, +12,0,11,0,11,0,12,0,12,0,12,0,12,0,11,0,12,0,12,0,10,0,12,0,13,0,10,0,11,0,14,0, +12,0,10,0,12,0,13,0,13,0,11,0,11,0,13,0,11,0,12,0,12,0,10,0,12,0,13,0,10,0,10,0, +11,0,11,0,11,0,12,0,13,0,13,0,10,0,11,0,13,0,11,0,9,0,11,0,12,0,11,0,12,0,14,0, +13,0,13,0,14,0,12,0,10,0,13,0,13,0,11,0,13,0,14,0,12,0,12,0,12,0,14,0,16,0,13,0, +11,0,13,0,13,0,12,0,13,0,13,0,15,0,15,0,11,0,13,0,15,0,11,0,11,0,15,0,15,0,12,0, +11,0,12,0,14,0,14,0,14,0,12,0,12,0,13,0,13,0,12,0,12,0,13,0,13,0,10,0,12,0,15,0, +11,0,11,0,14,0,11,0,12,0,15,0,12,0,11,0,13,0,11,0,12,0,13,0,13,0,15,0,14,0,12,0, +12,0,12,0,13,0,14,0,13,0,12,0,13,0,12,0,12,0,12,0,13,0,14,0,13,0,11,0,12,0,14,0, +14,0,15,0,15,0,11,0,12,0,15,0,12,0,13,0,13,0,11,0,12,0,12,0,11,0,13,0,14,0,12,0, +12,0,13,0,14,0,13,0,13,0,14,0,14,0,14,0,13,0,11,0,12,0,13,0,13,0,15,0,14,0,12,0, +13,0,14,0,13,0,12,0,13,0,13,0,14,0,15,0,15,0,12,0,12,0,13,0,13,0,12,0,13,0,13,0, +11,0,13,0,15,0,13,0,13,0,13,0,13,0,14,0,13,0,13,0,15,0,14,0,13,0,14,0,13,0,13,0, +15,0,13,0,12,0,13,0,14,0,13,0,11,0,13,0,14,0,12,0,12,0,14,0,15,0,14,0,11,0,11,0, +12,0,12,0,14,0,14,0,13,0,13,0,12,0,11,0,12,0,13,0,14,0,14,0,14,0,14,0,13,0,12,0, +13,0,13,0,12,0,13,0,14,0,14,0,13,0,13,0,14,0,13,0,14,0,14,0,13,0,13,0,13,0,13,0, +13,0,13,0,14,0,13,0,12,0,14,0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, +15,0,13,0,13,0,12,0,11,0,13,0,14,0,14,0,14,0,11,0,11,0,12,0,12,0,14,0,13,0,11,0, +12,0,13,0,14,0,14,0,13,0,13,0,13,0,12,0,12,0,13,0,14,0,13,0,12,0,12,0,12,0,14,0, +14,0,12,0,13,0,15,0,13,0,14,0,15,0,13,0,13,0,13,0,14,0,15,0,12,0,11,0,12,0,12,0, +13,0,14,0,13,0,12,0,14,0,14,0,12,0,13,0,13,0,13,0,14,0,13,0,12,0,13,0,12,0,13,0, +14,0,13,0,13,0,13,0,11,0,13,0,14,0,13,0,13,0,13,0,14,0,13,0,12,0,13,0,12,0,12,0, +14,0,13,0,13,0,13,0,12,0,13,0,13,0,13,0,14,0,14,0,13,0,13,0,13,0,14,0,14,0,12,0, +13,0,13,0,13,0,15,0,14,0,13,0,14,0,12,0,11,0,13,0,12,0,11,0,13,0,12,0,11,0,12,0, +12,0,11,0,13,0,13,0,12,0,11,0,10,0,11,0,13,0,12,0,12,0,14,0,11,0,12,0,14,0,12,0, +11,0,12,0,12,0,12,0,11,0,12,0,13,0,14,0,14,0,12,0,11,0,14,0,12,0,11,0,13,0,12,0, +11,0,11,0,11,0,13,0,12,0,12,0,13,0,11,0,11,0,13,0,12,0,11,0,14,0,14,0,12,0,13,0, +15,0,12,0,9,0,13,0,15,0,11,0,11,0,14,0,13,0,11,0,12,0,12,0,10,0,11,0,12,0,11,0, +11,0,11,0,11,0,10,0,9,0,12,0,14,0,13,0,13,0,12,0,11,0,13,0,13,0,12,0,11,0,9,0, +11,0,13,0,12,0,12,0,10,0,11,0,13,0,10,0,10,0,11,0,10,0,12,0,12,0,10,0,11,0,12,0, +11,0,11,0,11,0,11,0,12,0,12,0,13,0,12,0,12,0,12,0,12,0,10,0,10,0,12,0,11,0,10,0, +13,0,12,0,8,0,10,0,11,0,11,0,12,0,12,0,11,0,11,0,11,0,12,0,12,0,11,0,11,0,12,0, +11,0,12,0,13,0,11,0,9,0,11,0,12,0,11,0,12,0,12,0,9,0,10,0,11,0,10,0,11,0,11,0, +11,0,11,0,11,0,12,0,11,0,11,0,11,0,11,0,12,0,13,0,10,0,11,0,12,0,11,0,11,0,11,0, +10,0,11,0,11,0,12,0,12,0,11,0,11,0,10,0,11,0,11,0,11,0,13,0,12,0,9,0,11,0,13,0, +12,0,12,0,10,0,11,0,13,0,11,0,9,0,11,0,10,0,10,0,13,0,13,0,11,0,10,0,11,0,11,0, +12,0,12,0,11,0,10,0,9,0,10,0,10,0,8,0,10,0,11,0,9,0,9,0,11,0,11,0,11,0,10,0, +11,0,12,0,11,0,12,0,11,0,10,0,12,0,11,0,10,0,11,0,10,0,9,0,9,0,9,0,11,0,11,0, +10,0,13,0,13,0,11,0,11,0,10,0,10,0,10,0,11,0,13,0,13,0,11,0,11,0,11,0,12,0,12,0, +11,0,13,0,14,0,12,0,11,0,11,0,12,0,12,0,12,0,12,0,11,0,12,0,12,0,10,0,10,0,10,0, +12,0,13,0,11,0,11,0,11,0,10,0,12,0,12,0,11,0,11,0,10,0,11,0,11,0,9,0,11,0,10,0, +8,0,10,0,10,0,10,0,10,0,9,0,10,0,11,0,9,0,11,0,11,0,9,0,10,0,11,0,11,0,10,0, +10,0,11,0,12,0,10,0,9,0,10,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,10,0,11,0,11,0, +11,0,12,0,11,0,10,0,10,0,11,0,12,0,13,0,12,0,11,0,10,0,10,0,10,0,10,0,11,0,11,0, +10,0,10,0,10,0,11,0,11,0,10,0,12,0,11,0,9,0,10,0,10,0,9,0,11,0,10,0,9,0,10,0, +10,0,12,0,11,0,10,0,12,0,12,0,11,0,11,0,11,0,12,0,12,0,10,0,10,0,10,0,10,0,10,0, +11,0,11,0,10,0,11,0,12,0,10,0,11,0,11,0,9,0,10,0,9,0,8,0,11,0,12,0,10,0,9,0, +8,0,8,0,10,0,10,0,9,0,9,0,10,0,10,0,9,0,10,0,11,0,10,0,11,0,10,0,9,0,9,0, +10,0,11,0,11,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,13,0,11,0,9,0,11,0, +10,0,10,0,10,0,9,0,9,0,9,0,9,0,10,0,8,0,9,0,11,0,10,0,10,0,10,0,10,0,11,0, +11,0,12,0,12,0,9,0,9,0,11,0,11,0,11,0,10,0,10,0,11,0,11,0,10,0,11,0,10,0,9,0, +11,0,11,0,10,0,10,0,11,0,11,0,11,0,10,0,9,0,10,0,11,0,11,0,11,0,11,0,11,0,9,0, +9,0,11,0,11,0,10,0,11,0,10,0,9,0,10,0,9,0,11,0,11,0,9,0,10,0,10,0,8,0,9,0, +10,0,10,0,11,0,11,0,11,0,9,0,7,0,9,0,9,0,9,0,10,0,9,0,9,0,12,0,12,0,10,0, +11,0,10,0,9,0,10,0,10,0,8,0,9,0,10,0,10,0,10,0,10,0,11,0,10,0,10,0,11,0,10,0, +9,0,10,0,11,0,10,0,10,0,10,0,11,0,12,0,11,0,12,0,13,0,10,0,11,0,13,0,11,0,11,0, +11,0,11,0,10,0,8,0,12,0,11,0,9,0,11,0,11,0,10,0,12,0,10,0,10,0,11,0,10,0,10,0, +11,0,11,0,11,0,11,0,10,0,11,0,9,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0, +9,0,10,0,10,0,9,0,9,0,11,0,10,0,10,0,9,0,11,0,11,0,10,0,10,0,10,0,9,0,11,0, +10,0,9,0,11,0,10,0,9,0,10,0,10,0,11,0,11,0,8,0,10,0,12,0,11,0,10,0,10,0,10,0, +10,0,10,0,11,0,11,0,11,0,11,0,9,0,11,0,12,0,10,0,9,0,10,0,10,0,12,0,11,0,9,0, +9,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,10,0,10,0, +10,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,10,0,11,0,12,0,12,0,12,0, +12,0,11,0,11,0,11,0,11,0,12,0,11,0,11,0,12,0,11,0,8,0,10,0,12,0,10,0,10,0,11,0, +10,0,10,0,11,0,10,0,9,0,9,0,9,0,10,0,10,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0, +10,0,9,0,9,0,9,0,9,0,10,0,10,0,10,0,9,0,9,0,9,0,9,0,10,0,10,0,9,0,9,0, +9,0,9,0,10,0,10,0,10,0,10,0,9,0,10,0,10,0,9,0,9,0,9,0,10,0,10,0,9,0,10,0, +10,0,9,0,10,0,10,0,10,0,11,0,10,0,9,0,10,0,10,0,10,0,10,0,9,0,9,0,9,0,11,0, +11,0,9,0,10,0,9,0,9,0,12,0,10,0,9,0,11,0,11,0,11,0,10,0,9,0,10,0,10,0,9,0, +10,0,11,0,10,0,9,0,9,0,9,0,10,0,10,0,10,0,9,0,9,0,10,0,9,0,9,0,8,0,8,0, +10,0,10,0,10,0,10,0,10,0,9,0,9,0,9,0,10,0,10,0,9,0,9,0,8,0,9,0,8,0,7,0, +8,0,9,0,7,0,8,0,9,0,10,0,10,0,7,0,8,0,10,0,9,0,10,0,10,0,9,0,9,0,10,0, +11,0,10,0,9,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,11,0, +10,0,11,0,11,0,10,0,11,0,10,0,9,0,10,0,11,0,10,0,10,0,11,0,10,0,9,0,10,0,11,0, +10,0,10,0,11,0,10,0,9,0,10,0,11,0,10,0,9,0,10,0,10,0,10,0,9,0,10,0,10,0,10,0, +10,0,10,0,9,0,9,0,10,0,10,0,9,0,10,0,9,0,10,0,10,0,10,0,11,0,10,0,9,0,11,0, +9,0,8,0,11,0,10,0,8,0,12,0,12,0,9,0,9,0,10,0,10,0,9,0,8,0,9,0,8,0,9,0, +11,0,10,0,8,0,9,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,10,0,9,0,9,0,10,0,9,0, +9,0,9,0,10,0,11,0,10,0,9,0,10,0,9,0,10,0,10,0,10,0,9,0,9,0,10,0,9,0,10,0, +12,0,10,0,7,0,9,0,12,0,11,0,9,0,9,0,10,0,9,0,8,0,8,0,10,0,10,0,10,0,10,0, +11,0,10,0,9,0,10,0,8,0,9,0,9,0,8,0,10,0,12,0,9,0,10,0,10,0,9,0,11,0,10,0, +9,0,9,0,8,0,8,0,9,0,10,0,9,0,9,0,10,0,12,0,9,0,8,0,11,0,10,0,10,0,11,0, +10,0,9,0,9,0,10,0,10,0,8,0,9,0,10,0,9,0,10,0,10,0,8,0,9,0,10,0,9,0,9,0, +10,0,10,0,10,0,10,0,9,0,9,0,10,0,10,0,9,0,9,0,11,0,10,0,10,0,10,0,9,0,11,0, +11,0,9,0,9,0,11,0,10,0,10,0,11,0,10,0,9,0,10,0,11,0,11,0,10,0,10,0,10,0,11,0, +10,0,9,0,9,0,9,0,11,0,11,0,10,0,11,0,10,0,10,0,11,0,10,0,9,0,10,0,9,0,9,0, +11,0,10,0,10,0,9,0,9,0,10,0,9,0,9,0,9,0,9,0,10,0,11,0,10,0,10,0,10,0,9,0, +10,0,10,0,9,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0,9,0,10,0,10,0,11,0,10,0,9,0, +10,0,11,0,10,0,10,0,10,0,9,0,10,0,10,0,10,0,11,0,9,0,10,0,11,0,10,0,9,0,9,0, +10,0,11,0,10,0,9,0,9,0,9,0,9,0,10,0,10,0,9,0,10,0,10,0,9,0,9,0,10,0,9,0, +8,0,9,0,9,0,9,0,9,0,9,0,9,0,8,0,9,0,10,0,9,0,9,0,9,0,9,0,10,0,10,0, +10,0,11,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,9,0,10,0,10,0,10,0,9,0, +9,0,10,0,10,0,9,0,9,0,9,0,10,0,11,0,9,0,8,0,10,0,8,0,8,0,9,0,9,0,10,0, +10,0,10,0,10,0,9,0,8,0,10,0,8,0,9,0,9,0,8,0,9,0,10,0,9,0,10,0,11,0,11,0, +10,0,9,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0, +11,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,11,0,11,0,11,0,10,0,10,0,10,0,10,0, +10,0,10,0,10,0,9,0,10,0,10,0,10,0,9,0,9,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0, +10,0,9,0,9,0,11,0,10,0,9,0,9,0,8,0,10,0,10,0,9,0,11,0,11,0,10,0,11,0,10,0, +10,0,10,0,8,0,9,0,9,0,8,0,10,0,10,0,9,0,10,0,10,0,8,0,9,0,9,0,9,0,10,0, +10,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0,9,0,10,0,9,0,8,0,9,0,9,0,9,0,10,0, +10,0,10,0,9,0,9,0,10,0,9,0,9,0,9,0,8,0,9,0,9,0,9,0,9,0,10,0,9,0,9,0, +9,0,10,0,10,0,9,0,10,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,8,0,9,0,9,0,9,0, +9,0,10,0,9,0,8,0,10,0,9,0,8,0,10,0,9,0,8,0,10,0,10,0,9,0,10,0,9,0,9,0, +10,0,7,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,9,0,9,0,9,0,8,0,8,0,8,0,9,0, +9,0,8,0,8,0,9,0,8,0,9,0,9,0,8,0,9,0,9,0,9,0,10,0,9,0,8,0,8,0,8,0, +8,0,8,0,8,0,9,0,9,0,8,0,9,0,9,0,8,0,8,0,9,0,9,0,8,0,8,0,9,0,8,0, +8,0,10,0,8,0,7,0,9,0,9,0,8,0,8,0,8,0,8,0,9,0,10,0,9,0,9,0,9,0,8,0, +9,0,9,0,8,0,10,0,10,0,9,0,9,0,9,0,9,0,9,0,8,0,9,0,9,0,8,0,10,0,10,0, +8,0,8,0,8,0,8,0,8,0,8,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,8,0,7,0,8,0, +7,0,8,0,9,0,7,0,8,0,8,0,8,0,8,0,9,0,8,0,7,0,7,0,9,0,8,0,7,0,8,0, +7,0,7,0,8,0,8,0,7,0,8,0,7,0,9,0,9,0,7,0,8,0,8,0,7,0,8,0,8,0,8,0, +8,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,7,0,7,0,7,0,6,0,7,0,8,0,6,0,7,0, +8,0,8,0,8,0,7,0,6,0,7,0,7,0,7,0,8,0,8,0,8,0,7,0,7,0,8,0,7,0,7,0, +8,0,8,0,7,0,6,0,7,0,8,0,7,0,6,0,8,0,7,0,7,0,8,0,7,0,6,0,7,0,7,0, +7,0,8,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,6,0, +7,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0, +8,0,8,0,7,0,6,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0, +6,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,7,0, +6,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,5,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,7,0,7,0,7,0,8,0,7,0,5,0,6,0,6,0,6,0,7,0,6,0,6,0, +7,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,7,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0, +5,0,5,0,6,0,6,0,5,0,5,0,5,0,4,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0, +6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,6,0,5,0,5,0, +5,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0, +5,0,5,0,4,0,5,0,4,0,4,0,4,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0, +5,0,5,0,5,0,4,0,5,0,4,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0, +5,0,4,0,4,0,5,0,5,0,4,0,5,0,6,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0,5,0, +4,0,4,0,4,0,3,0,4,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,4,0,4,0,5,0, +5,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0,4,0,3,0,4,0,4,0, +3,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,3,0,5,0,4,0,3,0,3,0,3,0,5,0, +5,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0, +5,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,4,0,3,0,3,0,3,0, +4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0, +3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,2,0,2,0,3,0, +3,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0, +3,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0, +2,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,4,0, +3,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0, +2,0,2,0,1,0,2,0,3,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0, +0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,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,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,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,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,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, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,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,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, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,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,1,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,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,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,1,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,1,0,0,0,254,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,2,0,1,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,1,0,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,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +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,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,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,255,255,0,0,1,0,255,255,254,255,0,0,0,0, +0,0,0,0,255,255,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,255,255,255,255,0,0,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,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255, +1,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,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,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,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,255,255, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,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, +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,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,2,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,254,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,255,255,255,255,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,1,0,2,0,1,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,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,1,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +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,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,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, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0,1,0,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,255,255,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,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,1,0,1,0,0,0,255,255,0,0,255,255,0,0,1,0,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,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/stone3.pcm b/src/client/sound/data/stone3.pcm new file mode 100755 index 0000000..32b3c06 --- /dev/null +++ b/src/client/sound/data/stone3.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_stone3[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,220,255,221,255,222,255,225,255,224,255,223,255,227,255,234,255, +240,255,245,255,250,255,0,0,3,0,4,0,0,0,244,255,227,255,211,255,197,255,186,255,169,255,155,255,147,255,137,255, +122,255,103,255,80,255,53,255,30,255,17,255,3,255,233,254,199,254,162,254,138,254,117,254,73,254,26,254,255,253,243,253, +239,253,229,253,217,253,204,253,165,253,116,253,83,253,38,253,246,252,18,253,158,253,102,254,18,255,125,255,183,255,194,255, +161,255,121,255,129,255,227,255,157,0,140,1,149,2,144,3,77,4,216,4,158,5,228,6,77,8,125,9,192,10,89,12, +21,14,194,15,90,17,208,18,60,20,237,21,250,23,213,25,213,26,11,27,230,26,196,26,51,27,128,28,51,30,199,31, +52,33,118,34,118,35,133,36,53,38,120,40,184,42,196,44,134,46,152,47,42,48,39,49,4,51,36,53,146,54,55,55, +180,55,233,55,58,55,230,53,177,52,166,51,247,49,100,47,28,45,237,43,226,42,29,41,15,39,231,36,31,34,222,30, +237,27,84,25,178,22,44,20,151,17,96,14,139,10,76,6,238,1,104,254,76,252,22,251,22,250,197,248,216,246,77,244, +18,241,93,237,171,233,210,229,203,225,80,222,153,219,61,217,85,215,13,214,238,212,104,211,128,209,160,207,239,205,97,204, +83,203,66,203,217,203,96,204,233,204,0,206,143,207,10,209,56,210,36,211,229,211,188,212,203,213,32,215,255,216,79,219, +110,221,106,223,224,225,167,228,72,231,203,233,8,236,227,237,220,239,0,242,245,243,68,246,102,249,188,252,197,255,227,2, +119,6,231,9,162,12,114,15,163,18,61,21,67,23,65,25,192,26,169,27,140,28,125,29,49,30,110,30,88,30,48,30, +242,29,190,29,156,29,19,29,43,28,128,27,18,27,89,26,41,25,188,23,160,22,4,22,27,21,124,19,219,17,128,16, +242,14,40,13,171,11,132,10,202,8,33,6,121,3,96,1,112,255,117,253,142,251,190,249,183,247,83,245,4,243,250,240, +212,238,138,236,104,234,84,232,252,229,138,227,48,225,202,222,204,220,179,219,185,218,42,217,164,215,24,215,48,215,190,214, +236,213,145,213,31,213,75,212,198,211,122,211,228,210,253,209,23,209,150,208,59,208,158,207,16,207,221,206,202,206,136,206, +60,206,93,206,196,206,219,206,164,206,128,206,75,206,178,205,253,204,95,204,108,203,119,202,49,202,13,202,110,201,187,200, +89,200,19,200,232,199,107,200,83,201,166,201,214,201,199,202,11,204,29,205,45,206,57,207,209,207,248,207,150,208,235,209, +245,210,153,211,252,212,84,215,159,217,59,219,139,220,61,222,102,224,158,226,193,228,243,230,6,233,4,235,128,237,111,240, +41,243,120,245,194,247,107,250,2,253,30,255,48,1,21,3,92,4,141,5,253,6,96,8,135,9,190,10,167,12,208,14, +47,16,38,17,64,18,219,18,179,18,160,18,90,19,81,20,191,20,20,21,193,21,103,22,203,22,51,23,64,24,228,25, +31,27,151,27,251,27,207,28,105,29,220,28,252,27,4,28,108,28,112,28,60,28,4,28,218,27,250,27,111,28,118,28, +139,27,160,26,76,26,230,25,88,25,9,25,215,24,193,24,238,24,10,25,197,24,124,24,94,24,194,23,137,22,144,21, +8,21,86,20,136,19,42,19,236,18,32,18,243,16,232,15,81,15,248,14,6,14,197,12,60,12,176,11,18,10,47,8, +25,7,92,6,227,4,75,3,249,2,25,3,100,2,199,1,13,2,32,2,57,1,65,0,15,0,14,0,201,255,160,255, +168,255,158,255,115,255,140,255,19,0,64,0,253,255,44,0,156,0,180,0,211,0,73,1,226,1,134,2,160,3,35,5, +19,6,132,6,142,7,10,9,53,10,37,11,46,12,70,13,78,14,87,15,109,16,144,17,229,18,68,20,102,21,103,22, +90,23,11,24,82,24,147,24,96,25,65,26,100,26,19,26,1,26,105,26,234,26,21,27,147,27,247,28,91,30,40,31, +30,32,171,33,23,35,230,35,220,36,71,38,47,39,92,39,103,39,117,39,137,39,146,39,61,39,153,38,8,38,184,37, +66,37,93,36,183,35,130,35,225,34,226,33,97,33,118,33,160,33,97,33,225,32,161,32,52,32,225,30,190,28,45,26, +156,23,81,21,50,19,50,17,24,15,197,12,191,10,229,8,137,6,9,4,25,2,135,0,195,254,162,252,136,250,202,248, +65,247,143,245,103,243,15,241,43,239,150,237,211,235,30,234,207,232,180,231,151,230,117,229,99,228,136,227,205,226,216,225, +229,224,129,224,78,224,195,223,94,223,151,223,237,223,229,223,229,223,68,224,185,224,85,225,83,226,37,227,135,227,40,228, +60,229,52,230,252,230,219,231,102,232,84,232,114,232,38,233,240,233,179,234,135,235,46,236,160,236,52,237,13,238,216,238, +148,239,165,240,201,241,179,242,140,243,56,244,176,244,35,245,172,245,137,246,95,247,151,247,174,247,77,248,40,249,159,249, +182,249,42,250,14,251,188,251,74,252,240,252,86,253,129,253,211,253,73,254,153,254,14,255,245,255,137,0,117,0,138,0, +5,1,136,1,246,1,98,2,16,3,228,3,167,4,147,5,134,6,70,7,2,8,152,8,223,8,242,8,221,8,246,8, +51,9,236,8,37,8,114,7,243,6,90,6,137,5,226,4,157,4,96,4,251,3,166,3,118,3,69,3,251,2,168,2, +114,2,82,2,6,2,181,1,212,1,247,1,120,1,190,0,85,0,37,0,215,255,88,255,248,254,156,254,1,254,158,253, +117,253,236,252,57,252,187,251,84,251,7,251,228,250,1,251,68,251,86,251,80,251,91,251,71,251,96,251,15,252,18,253, +2,254,203,254,143,255,76,0,201,0,41,1,221,1,205,2,138,3,19,4,141,4,215,4,8,5,111,5,221,5,44,6, +186,6,138,7,36,8,112,8,217,8,165,9,124,10,17,11,168,11,119,12,151,13,222,14,141,15,213,15,192,16,228,17, +84,18,150,18,89,19,43,20,84,20,36,20,83,20,124,20,72,20,112,20,206,20,166,20,97,20,109,20,104,20,247,19, +45,19,155,18,140,18,145,18,82,18,218,17,117,17,86,17,1,17,60,16,183,15,155,15,104,15,19,15,198,14,106,14, +241,13,102,13,202,12,35,12,167,11,130,11,120,11,18,11,63,10,129,9,39,9,181,8,232,7,83,7,41,7,252,6, +167,6,66,6,193,5,28,5,116,4,5,4,188,3,38,3,94,2,2,2,242,1,132,1,214,0,127,0,137,0,157,0, +161,0,195,0,2,1,253,0,158,0,65,0,233,255,140,255,115,255,92,255,198,254,9,254,169,253,97,253,206,252,52,252, +228,251,159,251,84,251,88,251,132,251,134,251,126,251,116,251,34,251,187,250,191,250,228,250,109,250,184,249,123,249,76,249, +199,248,100,248,69,248,240,247,91,247,36,247,90,247,68,247,247,246,53,247,158,247,99,247,229,246,193,246,145,246,245,245, +120,245,118,245,141,245,94,245,255,244,225,244,47,245,77,245,226,244,89,244,44,244,109,244,154,244,105,244,113,244,224,244, +2,245,181,244,149,244,205,244,227,244,181,244,160,244,205,244,252,244,0,245,15,245,73,245,114,245,171,245,39,246,167,246, +32,247,117,247,111,247,123,247,169,247,157,247,137,247,130,247,141,247,167,247,104,247,39,247,86,247,110,247,94,247,101,247, +92,247,119,247,172,247,159,247,110,247,99,247,158,247,191,247,112,247,52,247,69,247,78,247,80,247,71,247,59,247,89,247, +109,247,130,247,211,247,15,248,237,247,209,247,62,248,247,248,112,249,197,249,73,250,190,250,201,250,138,250,127,250,149,250, +111,250,73,250,42,250,232,249,13,250,132,250,118,250,246,249,207,249,56,250,114,250,9,250,226,249,125,250,245,250,211,250, +161,250,228,250,149,251,67,252,195,252,66,253,218,253,142,254,39,255,117,255,193,255,51,0,135,0,199,0,46,1,163,1, +248,1,82,2,200,2,22,3,51,3,119,3,183,3,163,3,199,3,117,4,224,4,201,4,18,5,248,5,155,6,165,6, +185,6,34,7,106,7,110,7,155,7,247,7,47,8,64,8,79,8,121,8,194,8,222,8,155,8,106,8,173,8,255,8, +220,8,123,8,114,8,162,8,136,8,81,8,99,8,144,8,174,8,206,8,237,8,6,9,252,8,213,8,182,8,115,8, +28,8,248,7,196,7,103,7,77,7,123,7,141,7,92,7,58,7,94,7,99,7,253,6,168,6,204,6,237,6,156,6, +75,6,50,6,219,5,70,5,236,4,207,4,130,4,219,3,99,3,93,3,72,3,229,2,100,2,7,2,255,1,231,1, +111,1,0,1,238,0,20,1,4,1,159,0,85,0,33,0,189,255,112,255,97,255,133,255,172,255,147,255,129,255,133,255, +98,255,79,255,56,255,254,254,2,255,45,255,53,255,46,255,84,255,227,255,106,0,113,0,138,0,230,0,231,0,165,0, +187,0,0,1,241,0,202,0,208,0,188,0,157,0,212,0,77,1,175,1,219,1,47,2,190,2,18,3,80,3,187,3, +21,4,111,4,209,4,11,5,52,5,92,5,134,5,170,5,165,5,170,5,202,5,203,5,192,5,179,5,182,5,236,5, +22,6,34,6,58,6,79,6,103,6,134,6,191,6,78,7,12,8,146,8,215,8,27,9,73,9,12,9,173,8,144,8, +119,8,58,8,3,8,223,7,185,7,114,7,43,7,238,6,134,6,48,6,2,6,177,5,135,5,176,5,185,5,138,5, +107,5,116,5,102,5,35,5,235,4,188,4,110,4,32,4,226,3,193,3,172,3,93,3,235,2,140,2,61,2,9,2, +220,1,157,1,115,1,75,1,243,0,122,0,20,0,230,255,225,255,179,255,83,255,34,255,13,255,161,254,42,254,34,254, +50,254,228,253,98,253,55,253,76,253,246,252,130,252,154,252,176,252,78,252,244,251,249,251,39,252,56,252,55,252,62,252, +47,252,13,252,204,251,81,251,234,250,192,250,171,250,187,250,233,250,14,251,46,251,91,251,152,251,170,251,131,251,130,251, +149,251,97,251,14,251,241,250,5,251,243,250,183,250,180,250,185,250,87,250,224,249,172,249,118,249,23,249,206,248,200,248, +200,248,132,248,50,248,255,247,202,247,170,247,205,247,250,247,8,248,28,248,47,248,54,248,52,248,32,248,47,248,114,248, +158,248,171,248,197,248,242,248,39,249,64,249,69,249,115,249,172,249,162,249,116,249,106,249,120,249,97,249,43,249,9,249, +37,249,92,249,84,249,66,249,114,249,136,249,136,249,201,249,29,250,107,250,172,250,191,250,229,250,55,251,124,251,179,251, +205,251,185,251,143,251,69,251,235,250,164,250,112,250,89,250,63,250,230,249,127,249,113,249,151,249,156,249,143,249,127,249, +95,249,69,249,34,249,252,248,26,249,76,249,53,249,16,249,49,249,94,249,84,249,95,249,181,249,236,249,232,249,0,250, +55,250,90,250,84,250,107,250,193,250,227,250,212,250,246,250,4,251,241,250,254,250,239,250,197,250,182,250,172,250,184,250, +207,250,165,250,125,250,199,250,66,251,137,251,187,251,5,252,75,252,124,252,149,252,175,252,246,252,42,253,7,253,211,252, +235,252,38,253,16,253,206,252,207,252,221,252,215,252,242,252,16,253,33,253,45,253,40,253,38,253,31,253,40,253,72,253, +46,253,23,253,74,253,96,253,86,253,96,253,114,253,171,253,240,253,1,254,234,253,224,253,42,254,152,254,220,254,35,255, +91,255,102,255,137,255,176,255,163,255,131,255,115,255,106,255,77,255,72,255,121,255,137,255,122,255,136,255,167,255,232,255, +36,0,49,0,85,0,136,0,174,0,213,0,203,0,189,0,238,0,13,1,24,1,83,1,153,1,208,1,254,1,47,2, +110,2,145,2,137,2,139,2,162,2,189,2,234,2,28,3,82,3,151,3,174,3,135,3,129,3,156,3,142,3,101,3, +54,3,20,3,22,3,3,3,215,2,215,2,238,2,251,2,20,3,47,3,38,3,5,3,10,3,47,3,79,3,120,3, +127,3,68,3,58,3,131,3,172,3,155,3,159,3,179,3,135,3,57,3,1,3,187,2,131,2,139,2,165,2,183,2, +195,2,185,2,174,2,169,2,157,2,133,2,91,2,58,2,38,2,37,2,90,2,142,2,159,2,213,2,25,3,44,3, +39,3,38,3,73,3,121,3,136,3,185,3,11,4,26,4,245,3,191,3,127,3,95,3,69,3,18,3,3,3,26,3, +32,3,32,3,35,3,20,3,11,3,13,3,6,3,20,3,64,3,95,3,106,3,122,3,147,3,149,3,113,3,87,3, +94,3,112,3,150,3,201,3,225,3,224,3,214,3,207,3,206,3,194,3,172,3,123,3,40,3,223,2,170,2,126,2, +86,2,19,2,230,1,4,2,24,2,253,1,248,1,38,2,140,2,241,2,24,3,66,3,147,3,216,3,27,4,118,4, +207,4,8,5,30,5,74,5,174,5,28,6,83,6,69,6,58,6,91,6,99,6,90,6,109,6,115,6,107,6,93,6, +21,6,169,5,75,5,10,5,225,4,144,4,20,4,176,3,74,3,215,2,134,2,71,2,9,2,190,1,91,1,37,1, +13,1,197,0,109,0,3,0,108,255,206,254,34,254,133,253,64,253,35,253,9,253,250,252,204,252,142,252,104,252,66,252, +35,252,26,252,20,252,18,252,37,252,117,252,229,252,7,253,250,252,6,253,6,253,5,253,8,253,226,252,214,252,8,253, +42,253,44,253,49,253,79,253,114,253,103,253,73,253,44,253,219,252,137,252,121,252,137,252,174,252,214,252,194,252,158,252, +160,252,148,252,113,252,101,252,89,252,69,252,94,252,147,252,188,252,24,253,170,253,2,254,41,254,105,254,171,254,226,254, +24,255,59,255,118,255,240,255,104,0,167,0,197,0,236,0,38,1,75,1,60,1,34,1,1,1,207,0,200,0,237,0, +4,1,19,1,26,1,23,1,61,1,109,1,97,1,25,1,179,0,116,0,121,0,101,0,37,0,249,255,203,255,147,255, +98,255,11,255,153,254,89,254,65,254,53,254,52,254,14,254,186,253,132,253,117,253,95,253,67,253,21,253,198,252,131,252, +96,252,86,252,106,252,108,252,61,252,28,252,29,252,31,252,26,252,13,252,7,252,39,252,87,252,126,252,143,252,129,252, +123,252,151,252,165,252,145,252,112,252,73,252,53,252,66,252,76,252,50,252,2,252,214,251,181,251,160,251,141,251,97,251, +31,251,206,250,127,250,95,250,75,250,245,249,150,249,95,249,54,249,56,249,67,249,27,249,0,249,255,248,225,248,205,248, +215,248,214,248,214,248,223,248,211,248,174,248,130,248,87,248,73,248,131,248,249,248,79,249,81,249,47,249,71,249,174,249, +39,250,168,250,51,251,163,251,1,252,84,252,149,252,235,252,68,253,111,253,154,253,254,253,95,254,101,254,82,254,171,254, +62,255,166,255,245,255,57,0,118,0,170,0,193,0,255,0,117,1,185,1,220,1,57,2,191,2,50,3,108,3,119,3, +138,3,181,3,220,3,210,3,182,3,220,3,22,4,40,4,93,4,181,4,210,4,194,4,196,4,225,4,18,5,61,5, +73,5,76,5,111,5,168,5,187,5,124,5,32,5,6,5,30,5,19,5,230,4,207,4,216,4,208,4,143,4,67,4, +21,4,245,3,209,3,147,3,46,3,218,2,181,2,150,2,114,2,100,2,109,2,120,2,116,2,86,2,31,2,234,1, +204,1,170,1,111,1,65,1,74,1,100,1,90,1,98,1,165,1,213,1,193,1,141,1,135,1,199,1,233,1,210,1, +238,1,22,2,247,1,218,1,241,1,30,2,68,2,81,2,93,2,130,2,135,2,87,2,64,2,104,2,154,2,180,2, +191,2,199,2,218,2,200,2,144,2,164,2,3,3,44,3,36,3,54,3,115,3,203,3,13,4,35,4,50,4,78,4, +135,4,192,4,184,4,147,4,150,4,164,4,130,4,76,4,61,4,66,4,44,4,10,4,255,3,22,4,42,4,19,4, +235,3,199,3,170,3,163,3,163,3,160,3,187,3,8,4,109,4,172,4,194,4,216,4,223,4,237,4,21,5,16,5, +245,4,237,4,190,4,146,4,163,4,186,4,171,4,106,4,46,4,36,4,250,3,165,3,116,3,120,3,159,3,160,3, +107,3,96,3,81,3,5,3,226,2,9,3,70,3,120,3,107,3,74,3,105,3,150,3,141,3,107,3,110,3,123,3, +58,3,223,2,208,2,218,2,176,2,111,2,72,2,68,2,52,2,223,1,129,1,105,1,89,1,29,1,240,0,235,0, +227,0,197,0,154,0,132,0,139,0,125,0,67,0,0,0,228,255,215,255,128,255,2,255,182,254,140,254,125,254,141,254, +120,254,57,254,4,254,214,253,158,253,111,253,86,253,34,253,217,252,214,252,6,253,24,253,21,253,242,252,188,252,175,252, +167,252,119,252,67,252,37,252,44,252,85,252,128,252,143,252,132,252,141,252,173,252,189,252,200,252,199,252,184,252,224,252, +32,253,30,253,246,252,210,252,190,252,240,252,72,253,101,253,106,253,166,253,228,253,245,253,0,254,47,254,152,254,248,254, +249,254,232,254,30,255,96,255,106,255,67,255,59,255,119,255,161,255,151,255,129,255,125,255,185,255,238,255,207,255,193,255, +229,255,247,255,9,0,20,0,31,0,95,0,138,0,123,0,134,0,175,0,193,0,179,0,164,0,195,0,2,1,38,1, +37,1,55,1,123,1,182,1,186,1,186,1,220,1,243,1,201,1,135,1,135,1,154,1,94,1,18,1,38,1,104,1, +78,1,235,0,209,0,254,0,18,1,6,1,231,0,233,0,49,1,64,1,224,0,166,0,177,0,157,0,80,0,244,255, +196,255,190,255,147,255,49,255,219,254,164,254,134,254,104,254,23,254,199,253,223,253,14,254,186,253,32,253,231,252,36,253, +87,253,57,253,26,253,36,253,6,253,177,252,114,252,110,252,112,252,59,252,10,252,37,252,68,252,35,252,232,251,227,251, +51,252,106,252,68,252,78,252,187,252,5,253,15,253,26,253,58,253,74,253,33,253,12,253,88,253,161,253,146,253,125,253, +160,253,228,253,31,254,53,254,45,254,23,254,253,253,227,253,215,253,229,253,234,253,203,253,177,253,161,253,115,253,82,253, +88,253,91,253,115,253,171,253,175,253,150,253,166,253,181,253,209,253,14,254,21,254,245,253,19,254,64,254,69,254,76,254, +98,254,121,254,120,254,88,254,69,254,82,254,87,254,81,254,103,254,142,254,174,254,225,254,61,255,157,255,228,255,47,0, +146,0,206,0,196,0,194,0,246,0,57,1,94,1,85,1,90,1,132,1,126,1,86,1,99,1,136,1,126,1,44,1, +214,0,202,0,155,0,22,0,197,255,171,255,105,255,19,255,234,254,2,255,1,255,182,254,143,254,181,254,221,254,229,254, +251,254,112,255,203,255,95,255,215,254,235,254,39,255,20,255,211,254,232,254,103,255,146,255,59,255,38,255,146,255,255,255, +28,0,36,0,74,0,104,0,127,0,186,0,30,1,131,1,174,1,198,1,244,1,242,1,200,1,186,1,192,1,233,1, +45,2,84,2,125,2,185,2,220,2,235,2,23,3,74,3,79,3,65,3,55,3,21,3,26,3,88,3,123,3,141,3, +178,3,228,3,6,4,192,3,70,3,45,3,60,3,18,3,208,2,172,2,181,2,152,2,31,2,200,1,217,1,234,1, +190,1,138,1,123,1,103,1,30,1,211,0,203,0,225,0,199,0,157,0,154,0,141,0,83,0,48,0,103,0,207,0, +224,0,162,0,179,0,4,1,4,1,202,0,202,0,6,1,30,1,0,1,216,0,186,0,195,0,209,0,178,0,183,0, +214,0,187,0,170,0,187,0,174,0,151,0,154,0,192,0,233,0,10,1,82,1,149,1,153,1,141,1,157,1,235,1, +61,2,59,2,68,2,120,2,120,2,81,2,53,2,74,2,112,2,59,2,7,2,60,2,90,2,59,2,49,2,83,2, +150,2,187,2,161,2,126,2,126,2,160,2,167,2,133,2,133,2,131,2,96,2,93,2,83,2,15,2,195,1,139,1, +95,1,73,1,59,1,31,1,242,0,197,0,183,0,203,0,198,0,138,0,95,0,99,0,113,0,114,0,88,0,81,0, +126,0,155,0,165,0,216,0,31,1,55,1,5,1,226,0,11,1,17,1,213,0,193,0,242,0,66,1,108,1,84,1, +89,1,148,1,163,1,123,1,131,1,196,1,214,1,185,1,170,1,163,1,181,1,200,1,176,1,202,1,20,2,47,2, +34,2,247,1,220,1,252,1,18,2,33,2,60,2,46,2,29,2,5,2,202,1,180,1,191,1,206,1,213,1,164,1, +134,1,167,1,157,1,90,1,28,1,13,1,47,1,51,1,12,1,236,0,193,0,165,0,192,0,202,0,162,0,124,0, +122,0,151,0,164,0,123,0,66,0,49,0,60,0,46,0,232,255,153,255,152,255,204,255,209,255,165,255,126,255,85,255, +18,255,209,254,190,254,200,254,195,254,186,254,175,254,164,254,163,254,143,254,113,254,110,254,122,254,146,254,162,254,167,254, +185,254,173,254,169,254,217,254,213,254,185,254,210,254,222,254,237,254,241,254,182,254,172,254,219,254,237,254,5,255,12,255, +7,255,37,255,43,255,51,255,101,255,131,255,169,255,195,255,167,255,175,255,193,255,145,255,128,255,155,255,151,255,149,255, +143,255,127,255,161,255,201,255,173,255,122,255,89,255,59,255,20,255,237,254,228,254,225,254,184,254,155,254,168,254,181,254, +173,254,141,254,128,254,162,254,163,254,126,254,121,254,127,254,113,254,68,254,37,254,95,254,155,254,147,254,158,254,193,254, +219,254,239,254,215,254,207,254,10,255,44,255,29,255,32,255,49,255,45,255,12,255,247,254,23,255,66,255,54,255,15,255, +14,255,42,255,57,255,65,255,70,255,57,255,34,255,21,255,32,255,38,255,247,254,194,254,193,254,197,254,155,254,106,254, +104,254,111,254,91,254,70,254,56,254,54,254,49,254,10,254,28,254,130,254,158,254,110,254,127,254,197,254,232,254,204,254, +172,254,198,254,242,254,13,255,40,255,55,255,40,255,8,255,250,254,11,255,23,255,19,255,21,255,43,255,74,255,65,255, +53,255,108,255,162,255,179,255,228,255,10,0,243,255,240,255,23,0,38,0,35,0,48,0,48,0,33,0,47,0,62,0, +55,0,55,0,27,0,217,255,183,255,168,255,117,255,54,255,25,255,40,255,42,255,244,254,214,254,3,255,37,255,21,255, +11,255,17,255,34,255,63,255,62,255,43,255,44,255,45,255,37,255,25,255,9,255,17,255,36,255,41,255,51,255,76,255, +107,255,112,255,91,255,110,255,141,255,127,255,92,255,53,255,40,255,61,255,71,255,85,255,96,255,94,255,130,255,157,255, +152,255,161,255,132,255,105,255,149,255,170,255,166,255,194,255,213,255,237,255,3,0,255,255,251,255,222,255,191,255,200,255, +198,255,200,255,223,255,232,255,248,255,248,255,210,255,213,255,248,255,3,0,1,0,249,255,248,255,0,0,245,255,204,255, +156,255,144,255,174,255,198,255,201,255,198,255,188,255,172,255,157,255,173,255,223,255,12,0,36,0,51,0,51,0,42,0, +50,0,67,0,65,0,64,0,84,0,92,0,69,0,17,0,224,255,223,255,244,255,238,255,232,255,252,255,37,0,81,0, +102,0,108,0,114,0,122,0,147,0,179,0,191,0,177,0,155,0,149,0,151,0,156,0,184,0,222,0,250,0,14,1, +32,1,64,1,85,1,48,1,255,0,251,0,251,0,207,0,158,0,166,0,200,0,188,0,138,0,109,0,121,0,117,0, +72,0,36,0,34,0,46,0,67,0,87,0,102,0,106,0,101,0,119,0,123,0,73,0,66,0,123,0,143,0,114,0, +90,0,100,0,135,0,132,0,85,0,60,0,55,0,29,0,251,255,228,255,217,255,222,255,235,255,245,255,235,255,184,255, +140,255,152,255,156,255,106,255,62,255,72,255,106,255,93,255,31,255,18,255,50,255,29,255,240,254,241,254,31,255,75,255, +50,255,255,254,18,255,56,255,52,255,55,255,87,255,112,255,90,255,44,255,49,255,88,255,78,255,54,255,93,255,157,255, +159,255,111,255,98,255,142,255,166,255,138,255,109,255,91,255,57,255,30,255,20,255,13,255,5,255,226,254,188,254,211,254, +245,254,244,254,250,254,3,255,250,254,247,254,251,254,23,255,59,255,44,255,28,255,78,255,131,255,122,255,85,255,86,255, +129,255,143,255,115,255,115,255,151,255,157,255,129,255,145,255,199,255,198,255,169,255,197,255,239,255,249,255,243,255,204,255, +167,255,164,255,148,255,126,255,131,255,146,255,169,255,182,255,170,255,151,255,150,255,172,255,191,255,215,255,13,0,33,0, +26,0,58,0,70,0,67,0,107,0,134,0,143,0,150,0,127,0,122,0,136,0,136,0,130,0,86,0,61,0,115,0, +143,0,124,0,115,0,128,0,185,0,199,0,133,0,124,0,157,0,131,0,105,0,112,0,118,0,115,0,106,0,105,0, +108,0,107,0,100,0,75,0,63,0,71,0,53,0,20,0,251,255,226,255,209,255,208,255,215,255,191,255,137,255,131,255, +164,255,159,255,142,255,173,255,230,255,234,255,175,255,137,255,142,255,133,255,116,255,136,255,185,255,210,255,190,255,169,255, +192,255,230,255,219,255,183,255,205,255,1,0,1,0,229,255,219,255,231,255,241,255,223,255,206,255,206,255,184,255,157,255, +159,255,147,255,92,255,57,255,78,255,98,255,76,255,39,255,20,255,31,255,22,255,233,254,239,254,35,255,41,255,10,255, +233,254,219,254,237,254,239,254,224,254,242,254,18,255,28,255,24,255,27,255,31,255,41,255,69,255,66,255,43,255,70,255, +103,255,119,255,149,255,139,255,126,255,169,255,177,255,145,255,159,255,201,255,224,255,231,255,240,255,0,0,34,0,85,0, +87,0,66,0,111,0,152,0,155,0,182,0,202,0,202,0,214,0,219,0,207,0,184,0,186,0,238,0,14,1,1,1, +249,0,4,1,36,1,53,1,41,1,67,1,116,1,106,1,66,1,77,1,132,1,160,1,144,1,114,1,102,1,136,1, +147,1,98,1,100,1,156,1,159,1,120,1,94,1,92,1,96,1,96,1,106,1,113,1,128,1,149,1,119,1,78,1, +62,1,51,1,81,1,77,1,251,0,231,0,254,0,230,0,212,0,192,0,192,0,236,0,233,0,203,0,193,0,163,0, +139,0,127,0,125,0,162,0,163,0,112,0,97,0,104,0,80,0,45,0,48,0,75,0,74,0,60,0,47,0,11,0, +237,255,218,255,206,255,220,255,211,255,161,255,144,255,169,255,181,255,157,255,137,255,160,255,177,255,159,255,154,255,165,255, +163,255,158,255,163,255,194,255,227,255,215,255,180,255,174,255,195,255,218,255,234,255,240,255,243,255,251,255,1,0,6,0, +254,255,227,255,217,255,238,255,6,0,1,0,230,255,244,255,36,0,33,0,3,0,4,0,14,0,19,0,6,0,0,0, +51,0,103,0,112,0,105,0,79,0,70,0,93,0,75,0,24,0,17,0,48,0,62,0,41,0,21,0,15,0,9,0, +13,0,4,0,248,255,6,0,4,0,242,255,245,255,0,0,13,0,18,0,27,0,56,0,39,0,245,255,246,255,13,0, +18,0,3,0,233,255,231,255,223,255,192,255,197,255,208,255,199,255,203,255,196,255,200,255,229,255,203,255,161,255,184,255, +219,255,211,255,178,255,151,255,159,255,177,255,171,255,167,255,171,255,149,255,120,255,117,255,131,255,143,255,123,255,105,255, +140,255,156,255,121,255,112,255,113,255,101,255,107,255,106,255,115,255,140,255,134,255,133,255,131,255,117,255,150,255,150,255, +86,255,82,255,91,255,51,255,26,255,15,255,36,255,80,255,52,255,4,255,5,255,4,255,250,254,225,254,202,254,236,254, +7,255,214,254,150,254,128,254,140,254,148,254,139,254,141,254,160,254,170,254,169,254,166,254,179,254,183,254,162,254,175,254, +221,254,225,254,203,254,207,254,229,254,237,254,230,254,241,254,11,255,12,255,0,255,21,255,68,255,99,255,94,255,101,255, +155,255,177,255,142,255,148,255,199,255,216,255,198,255,195,255,218,255,237,255,250,255,18,0,42,0,55,0,42,0,2,0, +11,0,51,0,13,0,231,255,29,0,64,0,34,0,8,0,254,255,2,0,12,0,20,0,57,0,96,0,68,0,19,0, +24,0,55,0,49,0,18,0,6,0,25,0,56,0,62,0,30,0,251,255,247,255,12,0,8,0,224,255,206,255,203,255, +173,255,158,255,165,255,160,255,161,255,140,255,99,255,116,255,160,255,147,255,93,255,65,255,94,255,108,255,56,255,23,255, +35,255,34,255,39,255,46,255,36,255,47,255,65,255,58,255,43,255,31,255,25,255,22,255,10,255,255,254,253,254,15,255, +38,255,24,255,5,255,25,255,17,255,230,254,228,254,246,254,3,255,30,255,29,255,6,255,40,255,71,255,18,255,228,254, +246,254,12,255,22,255,22,255,11,255,12,255,9,255,1,255,26,255,53,255,59,255,69,255,79,255,96,255,111,255,90,255, +96,255,161,255,190,255,174,255,193,255,219,255,207,255,200,255,218,255,246,255,14,0,0,0,228,255,251,255,40,0,40,0, +16,0,8,0,27,0,38,0,17,0,17,0,42,0,39,0,44,0,59,0,55,0,78,0,103,0,91,0,94,0,97,0, +84,0,106,0,126,0,118,0,139,0,182,0,206,0,180,0,138,0,175,0,242,0,230,0,192,0,205,0,225,0,190,0, +135,0,150,0,206,0,202,0,163,0,173,0,215,0,220,0,186,0,169,0,180,0,181,0,173,0,175,0,194,0,188,0, +138,0,114,0,125,0,100,0,68,0,70,0,82,0,83,0,52,0,13,0,10,0,249,255,195,255,167,255,191,255,211,255, +175,255,136,255,156,255,184,255,173,255,142,255,125,255,137,255,138,255,125,255,145,255,170,255,161,255,142,255,130,255,139,255, +156,255,149,255,121,255,95,255,93,255,96,255,63,255,36,255,43,255,45,255,49,255,65,255,75,255,89,255,100,255,98,255, +94,255,97,255,117,255,141,255,148,255,149,255,147,255,147,255,148,255,135,255,150,255,187,255,183,255,179,255,202,255,190,255, +155,255,132,255,126,255,151,255,164,255,142,255,162,255,213,255,204,255,175,255,200,255,241,255,243,255,228,255,238,255,18,0, +22,0,238,255,239,255,39,0,72,0,68,0,57,0,60,0,90,0,108,0,87,0,82,0,97,0,72,0,50,0,75,0, +77,0,52,0,57,0,69,0,84,0,91,0,61,0,61,0,94,0,82,0,67,0,91,0,112,0,114,0,90,0,80,0, +98,0,70,0,32,0,39,0,41,0,42,0,33,0,240,255,231,255,240,255,192,255,174,255,209,255,225,255,223,255,198,255, +171,255,187,255,188,255,152,255,156,255,190,255,190,255,166,255,144,255,138,255,145,255,122,255,87,255,95,255,109,255,94,255, +85,255,90,255,99,255,97,255,77,255,61,255,50,255,25,255,18,255,37,255,51,255,45,255,29,255,30,255,30,255,13,255, +1,255,242,254,241,254,12,255,8,255,242,254,10,255,33,255,20,255,10,255,19,255,34,255,40,255,48,255,59,255,61,255, +73,255,80,255,71,255,84,255,85,255,67,255,93,255,125,255,122,255,114,255,114,255,136,255,176,255,194,255,204,255,215,255, +212,255,203,255,194,255,180,255,176,255,188,255,195,255,190,255,207,255,231,255,222,255,222,255,235,255,240,255,12,0,35,0, +29,0,34,0,28,0,15,0,32,0,27,0,6,0,28,0,49,0,36,0,31,0,55,0,72,0,62,0,66,0,97,0, +106,0,103,0,124,0,147,0,155,0,158,0,163,0,175,0,178,0,169,0,184,0,222,0,232,0,204,0,184,0,198,0, +221,0,214,0,188,0,175,0,163,0,138,0,123,0,130,0,152,0,157,0,126,0,108,0,129,0,133,0,108,0,101,0, +103,0,75,0,48,0,67,0,88,0,78,0,72,0,82,0,84,0,86,0,74,0,43,0,24,0,13,0,250,255,252,255, +29,0,24,0,233,255,228,255,4,0,7,0,8,0,27,0,34,0,59,0,94,0,98,0,97,0,93,0,70,0,81,0, +141,0,190,0,200,0,189,0,184,0,199,0,211,0,202,0,196,0,195,0,189,0,193,0,206,0,214,0,222,0,211,0, +195,0,212,0,237,0,241,0,235,0,223,0,211,0,206,0,213,0,238,0,253,0,241,0,225,0,231,0,7,1,42,1, +61,1,70,1,80,1,97,1,94,1,49,1,28,1,44,1,35,1,25,1,32,1,13,1,253,0,7,1,12,1,20,1, +42,1,35,1,246,0,220,0,230,0,243,0,252,0,249,0,226,0,224,0,235,0,235,0,247,0,246,0,220,0,209,0, +205,0,205,0,206,0,175,0,127,0,100,0,90,0,93,0,89,0,69,0,47,0,24,0,8,0,7,0,6,0,248,255, +222,255,229,255,251,255,238,255,225,255,218,255,184,255,176,255,202,255,198,255,169,255,136,255,123,255,134,255,132,255,110,255, +74,255,46,255,62,255,85,255,82,255,81,255,73,255,70,255,85,255,73,255,51,255,49,255,41,255,34,255,38,255,37,255, +28,255,14,255,15,255,33,255,34,255,36,255,64,255,84,255,86,255,80,255,60,255,49,255,59,255,71,255,95,255,125,255, +128,255,134,255,160,255,157,255,150,255,170,255,179,255,197,255,223,255,218,255,216,255,232,255,237,255,255,255,15,0,9,0, +12,0,31,0,54,0,82,0,97,0,87,0,68,0,84,0,125,0,134,0,131,0,130,0,108,0,113,0,136,0,127,0, +124,0,129,0,122,0,130,0,132,0,119,0,107,0,88,0,90,0,99,0,77,0,80,0,110,0,113,0,109,0,101,0, +93,0,113,0,109,0,71,0,69,0,83,0,74,0,71,0,67,0,51,0,57,0,63,0,47,0,43,0,57,0,65,0, +69,0,69,0,64,0,58,0,58,0,58,0,46,0,41,0,40,0,10,0,243,255,1,0,1,0,230,255,200,255,183,255, +201,255,211,255,196,255,206,255,206,255,172,255,171,255,183,255,178,255,189,255,193,255,193,255,216,255,206,255,159,255,136,255, +127,255,122,255,135,255,142,255,138,255,133,255,121,255,126,255,145,255,149,255,144,255,135,255,122,255,129,255,157,255,183,255, +196,255,191,255,186,255,191,255,190,255,195,255,213,255,212,255,205,255,210,255,207,255,205,255,205,255,201,255,230,255,26,0, +58,0,66,0,60,0,50,0,54,0,68,0,61,0,34,0,38,0,64,0,74,0,92,0,116,0,100,0,78,0,83,0, +105,0,128,0,116,0,93,0,109,0,118,0,108,0,121,0,125,0,115,0,135,0,155,0,158,0,158,0,147,0,141,0, +146,0,133,0,111,0,92,0,80,0,83,0,75,0,54,0,68,0,99,0,96,0,77,0,66,0,54,0,43,0,29,0, +253,255,217,255,186,255,159,255,161,255,186,255,195,255,187,255,187,255,187,255,172,255,158,255,145,255,114,255,94,255,112,255, +135,255,147,255,162,255,163,255,160,255,181,255,210,255,215,255,196,255,188,255,205,255,208,255,194,255,196,255,200,255,200,255, +209,255,214,255,212,255,210,255,195,255,187,255,206,255,220,255,204,255,188,255,194,255,197,255,196,255,212,255,223,255,219,255, +226,255,223,255,208,255,206,255,196,255,176,255,163,255,151,255,159,255,182,255,169,255,146,255,150,255,152,255,148,255,159,255, +169,255,181,255,205,255,212,255,205,255,213,255,214,255,200,255,192,255,199,255,233,255,10,0,0,0,255,255,17,0,3,0, +249,255,249,255,228,255,218,255,206,255,187,255,216,255,245,255,228,255,217,255,212,255,201,255,204,255,197,255,175,255,166,255, +157,255,142,255,147,255,164,255,155,255,136,255,148,255,160,255,140,255,113,255,96,255,96,255,107,255,102,255,111,255,144,255, +149,255,142,255,153,255,158,255,148,255,140,255,152,255,176,255,177,255,162,255,174,255,193,255,186,255,176,255,182,255,177,255, +164,255,165,255,161,255,146,255,148,255,156,255,158,255,162,255,173,255,189,255,178,255,142,255,140,255,165,255,167,255,148,255, +135,255,149,255,178,255,186,255,183,255,189,255,192,255,191,255,176,255,158,255,164,255,177,255,171,255,163,255,178,255,195,255, +191,255,189,255,212,255,233,255,228,255,206,255,199,255,206,255,206,255,212,255,223,255,235,255,7,0,12,0,240,255,255,255, +35,0,29,0,12,0,6,0,18,0,41,0,29,0,18,0,44,0,56,0,45,0,30,0,1,0,239,255,249,255,7,0, +16,0,27,0,36,0,31,0,29,0,26,0,254,255,243,255,10,0,21,0,23,0,31,0,38,0,52,0,57,0,50,0, +69,0,87,0,78,0,71,0,74,0,81,0,93,0,101,0,105,0,107,0,110,0,113,0,99,0,86,0,92,0,101,0, +112,0,131,0,143,0,163,0,187,0,190,0,199,0,224,0,229,0,223,0,236,0,234,0,206,0,182,0,172,0,178,0, +187,0,183,0,189,0,217,0,238,0,238,0,218,0,197,0,197,0,200,0,189,0,174,0,161,0,166,0,173,0,164,0, +167,0,181,0,178,0,157,0,146,0,159,0,178,0,186,0,196,0,208,0,217,0,214,0,186,0,168,0,185,0,208,0, +204,0,190,0,198,0,203,0,183,0,171,0,164,0,163,0,171,0,138,0,109,0,134,0,128,0,97,0,116,0,133,0, +126,0,129,0,141,0,166,0,184,0,175,0,163,0,153,0,156,0,170,0,166,0,160,0,160,0,162,0,176,0,187,0, +193,0,200,0,194,0,198,0,221,0,237,0,239,0,240,0,10,1,38,1,34,1,28,1,32,1,26,1,19,1,12,1, +21,1,42,1,34,1,20,1,25,1,30,1,33,1,23,1,17,1,43,1,71,1,67,1,35,1,22,1,50,1,42,1, +12,1,38,1,72,1,84,1,73,1,38,1,50,1,65,1,19,1,11,1,36,1,24,1,7,1,238,0,236,0,23,1, +20,1,244,0,243,0,245,0,251,0,239,0,200,0,209,0,239,0,225,0,194,0,174,0,175,0,181,0,162,0,157,0, +174,0,163,0,138,0,143,0,162,0,163,0,158,0,152,0,136,0,128,0,138,0,147,0,141,0,126,0,122,0,118,0, +102,0,107,0,123,0,106,0,90,0,94,0,93,0,110,0,137,0,131,0,125,0,133,0,117,0,101,0,117,0,132,0, +134,0,135,0,131,0,124,0,105,0,81,0,85,0,85,0,65,0,81,0,96,0,69,0,55,0,44,0,18,0,10,0, +243,255,214,255,234,255,2,0,247,255,235,255,239,255,8,0,19,0,245,255,219,255,231,255,247,255,234,255,204,255,190,255, +193,255,192,255,198,255,213,255,211,255,198,255,190,255,196,255,220,255,231,255,220,255,220,255,224,255,217,255,225,255,226,255, +217,255,247,255,16,0,9,0,22,0,30,0,23,0,42,0,53,0,53,0,86,0,116,0,103,0,84,0,94,0,114,0, +104,0,99,0,119,0,118,0,106,0,111,0,107,0,97,0,96,0,84,0,52,0,26,0,39,0,58,0,34,0,8,0, +12,0,18,0,25,0,26,0,19,0,28,0,38,0,17,0,250,255,245,255,237,255,238,255,2,0,4,0,252,255,252,255, +231,255,216,255,224,255,204,255,182,255,190,255,187,255,181,255,188,255,189,255,202,255,228,255,236,255,229,255,212,255,197,255, +201,255,207,255,195,255,177,255,170,255,174,255,182,255,190,255,186,255,169,255,152,255,147,255,155,255,148,255,132,255,135,255, +124,255,107,255,115,255,109,255,86,255,76,255,82,255,116,255,127,255,83,255,63,255,74,255,82,255,95,255,93,255,97,255, +125,255,127,255,115,255,122,255,140,255,160,255,154,255,142,255,160,255,163,255,140,255,122,255,124,255,144,255,133,255,108,255, +136,255,163,255,146,255,128,255,114,255,121,255,155,255,162,255,157,255,178,255,200,255,203,255,188,255,176,255,188,255,208,255, +214,255,229,255,0,0,252,255,221,255,199,255,183,255,191,255,226,255,237,255,239,255,12,0,20,0,9,0,24,0,34,0, +20,0,19,0,38,0,31,0,2,0,7,0,40,0,56,0,63,0,53,0,40,0,59,0,64,0,39,0,49,0,76,0, +85,0,85,0,77,0,78,0,97,0,96,0,93,0,124,0,141,0,118,0,108,0,125,0,140,0,148,0,149,0,153,0, +177,0,194,0,193,0,198,0,201,0,200,0,200,0,193,0,185,0,178,0,161,0,136,0,115,0,115,0,125,0,113,0, +106,0,116,0,106,0,79,0,49,0,24,0,31,0,44,0,35,0,30,0,22,0,4,0,0,0,1,0,254,255,2,0, +250,255,240,255,250,255,255,255,243,255,236,255,241,255,247,255,250,255,245,255,231,255,235,255,10,0,30,0,29,0,37,0, +54,0,63,0,68,0,77,0,84,0,94,0,113,0,123,0,116,0,127,0,151,0,156,0,145,0,137,0,142,0,147,0, +142,0,142,0,135,0,118,0,120,0,111,0,75,0,61,0,60,0,50,0,46,0,40,0,37,0,29,0,255,255,238,255, +244,255,236,255,222,255,209,255,199,255,200,255,174,255,138,255,137,255,141,255,142,255,157,255,170,255,171,255,161,255,155,255, +169,255,164,255,154,255,177,255,189,255,181,255,190,255,194,255,188,255,197,255,202,255,207,255,229,255,244,255,238,255,241,255, +254,255,252,255,249,255,6,0,27,0,45,0,57,0,59,0,56,0,67,0,82,0,72,0,63,0,93,0,116,0,101,0, +94,0,99,0,101,0,117,0,128,0,128,0,135,0,135,0,128,0,134,0,144,0,143,0,136,0,137,0,151,0,165,0, +165,0,158,0,156,0,154,0,139,0,130,0,131,0,135,0,136,0,126,0,122,0,130,0,116,0,99,0,105,0,110,0, +110,0,99,0,76,0,88,0,116,0,106,0,96,0,106,0,100,0,83,0,85,0,99,0,101,0,89,0,78,0,78,0, +76,0,53,0,28,0,23,0,21,0,20,0,16,0,255,255,6,0,26,0,12,0,249,255,239,255,222,255,225,255,233,255, +220,255,213,255,208,255,201,255,202,255,191,255,179,255,172,255,151,255,147,255,156,255,142,255,138,255,148,255,123,255,91,255, +91,255,90,255,86,255,103,255,99,255,77,255,89,255,98,255,78,255,80,255,94,255,91,255,102,255,116,255,110,255,101,255, +91,255,88,255,97,255,96,255,101,255,114,255,103,255,92,255,110,255,125,255,114,255,102,255,114,255,131,255,128,255,117,255, +114,255,108,255,106,255,110,255,104,255,97,255,96,255,89,255,83,255,70,255,44,255,38,255,49,255,49,255,44,255,41,255, +45,255,70,255,81,255,64,255,60,255,75,255,95,255,108,255,107,255,122,255,145,255,154,255,172,255,177,255,143,255,134,255, +166,255,183,255,175,255,160,255,171,255,203,255,209,255,211,255,232,255,241,255,254,255,18,0,24,0,38,0,45,0,37,0, +47,0,51,0,43,0,63,0,73,0,64,0,66,0,64,0,61,0,63,0,54,0,47,0,44,0,44,0,59,0,63,0, +50,0,49,0,66,0,68,0,32,0,4,0,27,0,45,0,42,0,50,0,44,0,29,0,31,0,36,0,35,0,28,0, +23,0,29,0,15,0,253,255,249,255,233,255,232,255,243,255,220,255,207,255,223,255,219,255,206,255,200,255,188,255,180,255, +194,255,215,255,214,255,203,255,210,255,211,255,197,255,197,255,197,255,188,255,186,255,194,255,193,255,177,255,176,255,198,255, +199,255,187,255,195,255,208,255,202,255,187,255,184,255,188,255,180,255,178,255,183,255,181,255,185,255,195,255,193,255,190,255, +193,255,203,255,219,255,223,255,224,255,236,255,253,255,15,0,25,0,25,0,32,0,46,0,53,0,45,0,35,0,38,0, +45,0,45,0,41,0,32,0,37,0,48,0,33,0,14,0,22,0,30,0,21,0,9,0,12,0,32,0,41,0,32,0, +27,0,33,0,44,0,68,0,103,0,121,0,113,0,111,0,124,0,137,0,155,0,163,0,152,0,156,0,163,0,152,0, +141,0,134,0,140,0,150,0,134,0,126,0,136,0,127,0,127,0,146,0,157,0,170,0,169,0,155,0,166,0,176,0, +174,0,183,0,177,0,154,0,156,0,179,0,189,0,176,0,166,0,178,0,186,0,183,0,187,0,197,0,194,0,172,0, +161,0,163,0,148,0,144,0,157,0,142,0,127,0,129,0,123,0,131,0,137,0,121,0,124,0,134,0,121,0,114,0, +122,0,128,0,125,0,127,0,129,0,111,0,105,0,125,0,124,0,115,0,121,0,114,0,98,0,82,0,71,0,86,0, +95,0,79,0,77,0,78,0,66,0,63,0,66,0,62,0,53,0,53,0,66,0,64,0,48,0,51,0,67,0,66,0, +43,0,32,0,41,0,41,0,36,0,34,0,12,0,247,255,253,255,5,0,12,0,21,0,19,0,30,0,61,0,76,0, +74,0,69,0,69,0,77,0,68,0,56,0,85,0,111,0,94,0,82,0,89,0,96,0,109,0,117,0,108,0,104,0, +116,0,120,0,102,0,103,0,129,0,140,0,152,0,173,0,168,0,159,0,160,0,146,0,137,0,146,0,157,0,161,0, +152,0,148,0,161,0,163,0,158,0,150,0,137,0,148,0,166,0,161,0,154,0,157,0,152,0,145,0,150,0,157,0, +150,0,142,0,142,0,154,0,173,0,169,0,152,0,154,0,155,0,145,0,138,0,127,0,133,0,145,0,136,0,137,0, +140,0,127,0,129,0,139,0,148,0,160,0,148,0,143,0,158,0,150,0,130,0,112,0,103,0,126,0,132,0,106,0, +109,0,133,0,152,0,153,0,119,0,97,0,120,0,138,0,129,0,105,0,86,0,102,0,119,0,103,0,90,0,91,0, +95,0,115,0,118,0,92,0,87,0,98,0,91,0,76,0,66,0,87,0,118,0,101,0,68,0,64,0,67,0,70,0, +60,0,32,0,33,0,44,0,16,0,242,255,236,255,235,255,231,255,225,255,222,255,222,255,222,255,233,255,253,255,3,0, +236,255,224,255,248,255,12,0,4,0,251,255,254,255,247,255,228,255,237,255,255,255,230,255,218,255,234,255,215,255,200,255, +207,255,183,255,174,255,194,255,195,255,201,255,210,255,207,255,212,255,198,255,191,255,212,255,200,255,171,255,179,255,194,255, +194,255,186,255,178,255,183,255,191,255,192,255,192,255,197,255,204,255,199,255,192,255,201,255,207,255,203,255,213,255,230,255, +226,255,224,255,255,255,21,0,3,0,9,0,51,0,60,0,27,0,7,0,16,0,36,0,52,0,53,0,49,0,62,0, +76,0,72,0,78,0,102,0,120,0,126,0,109,0,86,0,94,0,105,0,106,0,114,0,113,0,108,0,121,0,142,0, +153,0,140,0,127,0,140,0,161,0,152,0,110,0,86,0,102,0,118,0,126,0,122,0,95,0,101,0,129,0,98,0, +55,0,39,0,16,0,10,0,14,0,6,0,8,0,5,0,243,255,236,255,238,255,253,255,8,0,242,255,219,255,241,255, +9,0,245,255,212,255,200,255,209,255,218,255,205,255,184,255,187,255,197,255,198,255,197,255,192,255,180,255,166,255,157,255, +159,255,158,255,155,255,158,255,159,255,168,255,170,255,155,255,158,255,163,255,146,255,143,255,154,255,166,255,165,255,130,255, +109,255,128,255,146,255,148,255,132,255,119,255,137,255,155,255,156,255,160,255,161,255,167,255,175,255,183,255,206,255,223,255, +229,255,246,255,4,0,9,0,18,0,37,0,53,0,47,0,42,0,51,0,42,0,25,0,22,0,44,0,81,0,91,0, +81,0,78,0,70,0,72,0,94,0,114,0,128,0,119,0,100,0,115,0,131,0,123,0,123,0,134,0,147,0,148,0, +143,0,148,0,143,0,115,0,88,0,77,0,88,0,92,0,81,0,91,0,110,0,112,0,99,0,79,0,85,0,113,0, +124,0,124,0,109,0,87,0,88,0,91,0,73,0,68,0,83,0,88,0,67,0,54,0,75,0,90,0,71,0,44,0, +32,0,33,0,23,0,1,0,250,255,254,255,252,255,247,255,247,255,6,0,9,0,246,255,242,255,253,255,251,255,236,255, +228,255,235,255,244,255,250,255,248,255,231,255,217,255,216,255,227,255,238,255,215,255,198,255,226,255,236,255,212,255,189,255, +165,255,166,255,179,255,160,255,153,255,172,255,187,255,195,255,178,255,161,255,179,255,188,255,189,255,204,255,213,255,225,255, +242,255,248,255,251,255,241,255,241,255,19,0,17,0,236,255,236,255,0,0,4,0,248,255,225,255,227,255,252,255,4,0, +252,255,249,255,3,0,14,0,255,255,240,255,0,0,11,0,0,0,254,255,0,0,253,255,2,0,12,0,24,0,30,0, +16,0,7,0,10,0,255,255,242,255,243,255,244,255,225,255,206,255,220,255,241,255,235,255,221,255,220,255,238,255,10,0, +7,0,240,255,245,255,8,0,9,0,241,255,219,255,238,255,3,0,250,255,248,255,249,255,242,255,250,255,255,255,254,255, +245,255,221,255,230,255,250,255,220,255,208,255,248,255,5,0,240,255,228,255,221,255,226,255,233,255,221,255,213,255,221,255, +223,255,217,255,212,255,200,255,191,255,190,255,186,255,185,255,190,255,200,255,210,255,205,255,196,255,202,255,200,255,184,255, +184,255,194,255,199,255,206,255,204,255,190,255,192,255,207,255,208,255,204,255,208,255,204,255,189,255,178,255,174,255,173,255, +177,255,171,255,159,255,162,255,168,255,160,255,157,255,164,255,165,255,161,255,160,255,171,255,187,255,182,255,164,255,160,255, +167,255,173,255,165,255,143,255,144,255,163,255,152,255,137,255,150,255,154,255,146,255,158,255,165,255,149,255,145,255,156,255, +160,255,160,255,157,255,158,255,167,255,168,255,153,255,145,255,156,255,176,255,177,255,163,255,171,255,197,255,207,255,201,255, +198,255,206,255,219,255,226,255,225,255,212,255,198,255,212,255,231,255,221,255,207,255,216,255,233,255,238,255,230,255,236,255, +246,255,235,255,226,255,235,255,239,255,227,255,219,255,233,255,247,255,241,255,242,255,4,0,15,0,15,0,6,0,0,0, +5,0,11,0,13,0,12,0,18,0,33,0,35,0,38,0,52,0,43,0,33,0,44,0,44,0,49,0,69,0,76,0, +83,0,83,0,67,0,59,0,46,0,34,0,57,0,82,0,74,0,52,0,43,0,58,0,66,0,49,0,34,0,36,0, +54,0,62,0,34,0,16,0,36,0,42,0,28,0,36,0,43,0,14,0,241,255,242,255,245,255,237,255,241,255,8,0, +28,0,15,0,241,255,239,255,248,255,236,255,220,255,219,255,237,255,253,255,235,255,217,255,226,255,230,255,225,255,220,255, +218,255,225,255,221,255,210,255,218,255,210,255,184,255,194,255,225,255,233,255,213,255,198,255,211,255,223,255,216,255,224,255, +246,255,252,255,246,255,238,255,233,255,237,255,240,255,243,255,2,0,11,0,252,255,236,255,243,255,5,0,13,0,10,0, +9,0,21,0,29,0,18,0,14,0,23,0,23,0,30,0,49,0,49,0,42,0,42,0,48,0,61,0,55,0,34,0, +53,0,75,0,58,0,48,0,57,0,73,0,83,0,53,0,38,0,65,0,64,0,51,0,59,0,51,0,49,0,62,0, +57,0,64,0,70,0,54,0,63,0,83,0,80,0,85,0,99,0,112,0,118,0,104,0,93,0,96,0,97,0,92,0, +82,0,89,0,105,0,87,0,70,0,84,0,78,0,61,0,56,0,32,0,16,0,23,0,20,0,19,0,33,0,39,0, +32,0,12,0,254,255,5,0,1,0,1,0,22,0,22,0,16,0,27,0,16,0,250,255,231,255,208,255,210,255,216,255, +198,255,202,255,216,255,208,255,203,255,207,255,206,255,198,255,185,255,193,255,202,255,183,255,170,255,185,255,210,255,219,255, +201,255,190,255,193,255,186,255,181,255,189,255,205,255,232,255,241,255,239,255,3,0,23,0,22,0,12,0,10,0,9,0, +246,255,239,255,14,0,29,0,18,0,12,0,6,0,8,0,12,0,252,255,251,255,17,0,18,0,6,0,5,0,13,0, +29,0,48,0,59,0,60,0,53,0,50,0,54,0,54,0,45,0,43,0,45,0,48,0,60,0,78,0,85,0,76,0, +65,0,60,0,53,0,59,0,79,0,84,0,79,0,85,0,93,0,101,0,114,0,122,0,119,0,109,0,109,0,120,0, +116,0,111,0,111,0,102,0,120,0,144,0,119,0,98,0,110,0,106,0,97,0,98,0,96,0,100,0,107,0,117,0, +125,0,118,0,109,0,99,0,95,0,106,0,98,0,82,0,85,0,82,0,80,0,88,0,90,0,97,0,97,0,75,0, +57,0,63,0,78,0,66,0,42,0,48,0,55,0,62,0,81,0,70,0,49,0,56,0,52,0,41,0,40,0,25,0, +8,0,14,0,32,0,33,0,17,0,15,0,14,0,7,0,19,0,23,0,7,0,1,0,3,0,3,0,4,0,9,0, +13,0,5,0,2,0,2,0,243,255,0,0,21,0,3,0,252,255,255,255,248,255,10,0,16,0,251,255,1,0,13,0, +14,0,11,0,0,0,12,0,30,0,25,0,26,0,36,0,31,0,10,0,253,255,14,0,24,0,11,0,14,0,12,0, +254,255,10,0,26,0,43,0,60,0,51,0,45,0,60,0,68,0,64,0,48,0,38,0,55,0,61,0,40,0,21,0, +7,0,249,255,252,255,12,0,17,0,13,0,14,0,10,0,7,0,10,0,2,0,251,255,253,255,255,255,13,0,18,0, +254,255,247,255,254,255,1,0,8,0,3,0,242,255,237,255,231,255,213,255,216,255,239,255,242,255,225,255,217,255,202,255, +189,255,207,255,216,255,213,255,232,255,246,255,246,255,240,255,221,255,219,255,219,255,208,255,225,255,226,255,200,255,211,255, +224,255,211,255,214,255,205,255,178,255,174,255,169,255,148,255,144,255,146,255,137,255,128,255,131,255,138,255,139,255,130,255, +122,255,125,255,132,255,142,255,155,255,145,255,129,255,140,255,141,255,134,255,143,255,138,255,134,255,144,255,134,255,129,255, +134,255,126,255,142,255,163,255,148,255,143,255,142,255,131,255,142,255,155,255,146,255,144,255,142,255,132,255,124,255,120,255, +126,255,140,255,146,255,139,255,119,255,99,255,102,255,118,255,124,255,130,255,134,255,121,255,112,255,112,255,95,255,82,255, +90,255,96,255,97,255,92,255,80,255,86,255,90,255,76,255,78,255,81,255,74,255,83,255,78,255,67,255,87,255,97,255, +91,255,100,255,97,255,91,255,102,255,98,255,90,255,104,255,115,255,122,255,131,255,136,255,143,255,138,255,137,255,158,255, +151,255,132,255,150,255,164,255,162,255,171,255,161,255,139,255,142,255,152,255,156,255,161,255,170,255,178,255,169,255,162,255, +170,255,171,255,171,255,176,255,171,255,174,255,189,255,196,255,194,255,179,255,166,255,170,255,155,255,132,255,135,255,142,255, +153,255,168,255,156,255,150,255,176,255,186,255,176,255,171,255,168,255,172,255,178,255,186,255,203,255,206,255,194,255,185,255, +183,255,194,255,194,255,186,255,193,255,189,255,188,255,210,255,205,255,193,255,207,255,202,255,194,255,209,255,216,255,221,255, +212,255,196,255,207,255,205,255,186,255,192,255,197,255,196,255,196,255,176,255,167,255,180,255,177,255,165,255,159,255,162,255, +166,255,167,255,177,255,183,255,180,255,181,255,169,255,152,255,155,255,157,255,159,255,166,255,162,255,163,255,181,255,195,255, +200,255,203,255,200,255,188,255,186,255,189,255,185,255,197,255,215,255,213,255,225,255,240,255,230,255,231,255,247,255,5,0, +27,0,29,0,21,0,37,0,55,0,58,0,50,0,45,0,50,0,44,0,36,0,49,0,51,0,37,0,28,0,25,0, +24,0,20,0,28,0,44,0,34,0,17,0,25,0,22,0,14,0,25,0,23,0,17,0,29,0,31,0,21,0,24,0, +24,0,19,0,24,0,23,0,15,0,17,0,20,0,20,0,21,0,19,0,23,0,34,0,42,0,41,0,23,0,11,0, +17,0,12,0,3,0,1,0,252,255,6,0,18,0,9,0,0,0,1,0,9,0,24,0,22,0,18,0,26,0,30,0, +34,0,48,0,50,0,35,0,18,0,11,0,16,0,19,0,13,0,3,0,3,0,7,0,5,0,1,0,2,0,0,0, +249,255,250,255,7,0,16,0,6,0,241,255,231,255,247,255,16,0,18,0,2,0,241,255,229,255,238,255,254,255,254,255, +250,255,2,0,10,0,16,0,18,0,5,0,249,255,6,0,26,0,28,0,26,0,17,0,5,0,4,0,254,255,255,255, +6,0,235,255,208,255,216,255,223,255,233,255,252,255,246,255,233,255,228,255,224,255,234,255,242,255,230,255,221,255,222,255, +229,255,242,255,242,255,227,255,222,255,234,255,237,255,233,255,238,255,225,255,209,255,224,255,239,255,237,255,230,255,217,255, +222,255,238,255,229,255,216,255,220,255,231,255,236,255,223,255,222,255,247,255,246,255,226,255,233,255,245,255,247,255,244,255, +229,255,222,255,230,255,231,255,227,255,231,255,233,255,225,255,225,255,237,255,232,255,210,255,201,255,215,255,235,255,240,255, +232,255,235,255,250,255,5,0,2,0,240,255,236,255,250,255,250,255,245,255,255,255,4,0,6,0,20,0,31,0,30,0, +28,0,34,0,39,0,38,0,32,0,21,0,12,0,8,0,1,0,245,255,232,255,231,255,246,255,243,255,226,255,231,255, +225,255,206,255,216,255,224,255,218,255,230,255,231,255,215,255,212,255,209,255,201,255,204,255,210,255,204,255,189,255,185,255, +198,255,200,255,196,255,209,255,223,255,213,255,198,255,208,255,233,255,238,255,223,255,208,255,208,255,219,255,224,255,228,255, +233,255,229,255,219,255,204,255,195,255,203,255,203,255,195,255,212,255,230,255,220,255,217,255,232,255,234,255,230,255,242,255, +244,255,229,255,222,255,219,255,222,255,237,255,242,255,225,255,213,255,216,255,214,255,206,255,214,255,234,255,231,255,212,255, +219,255,253,255,12,0,246,255,234,255,242,255,238,255,231,255,236,255,240,255,232,255,221,255,217,255,218,255,212,255,199,255, +185,255,183,255,197,255,205,255,197,255,185,255,181,255,194,255,195,255,183,255,193,255,203,255,194,255,194,255,199,255,203,255, +205,255,199,255,207,255,207,255,189,255,188,255,190,255,190,255,198,255,190,255,191,255,215,255,214,255,197,255,199,255,209,255, +215,255,201,255,184,255,198,255,218,255,222,255,218,255,206,255,200,255,198,255,190,255,186,255,184,255,176,255,170,255,177,255, +189,255,185,255,175,255,176,255,176,255,180,255,184,255,184,255,196,255,201,255,178,255,178,255,204,255,202,255,182,255,178,255, +181,255,189,255,190,255,173,255,168,255,176,255,171,255,171,255,187,255,186,255,177,255,181,255,188,255,191,255,190,255,187,255, +195,255,201,255,191,255,183,255,183,255,190,255,195,255,182,255,170,255,181,255,188,255,175,255,180,255,192,255,183,255,183,255, +187,255,181,255,186,255,186,255,178,255,192,255,202,255,193,255,194,255,200,255,197,255,191,255,187,255,201,255,220,255,226,255, +225,255,212,255,206,255,214,255,209,255,200,255,204,255,210,255,208,255,198,255,205,255,227,255,227,255,216,255,216,255,217,255, +215,255,214,255,214,255,208,255,192,255,189,255,204,255,208,255,208,255,212,255,206,255,203,255,208,255,195,255,177,255,188,255, +202,255,192,255,188,255,202,255,207,255,200,255,197,255,203,255,216,255,213,255,198,255,202,255,208,255,193,255,183,255,188,255, +196,255,206,255,200,255,178,255,182,255,202,255,200,255,205,255,226,255,233,255,234,255,239,255,246,255,255,255,246,255,232,255, +234,255,230,255,226,255,226,255,219,255,221,255,223,255,214,255,219,255,227,255,216,255,214,255,227,255,229,255,223,255,221,255, +213,255,204,255,213,255,214,255,203,255,214,255,227,255,216,255,201,255,193,255,206,255,220,255,197,255,176,255,180,255,180,255, +179,255,181,255,180,255,184,255,188,255,196,255,212,255,219,255,220,255,217,255,206,255,212,255,228,255,233,255,230,255,233,255, +234,255,220,255,205,255,201,255,201,255,202,255,210,255,218,255,224,255,235,255,240,255,225,255,209,255,214,255,221,255,220,255, +226,255,223,255,216,255,225,255,234,255,236,255,237,255,230,255,220,255,216,255,220,255,233,255,239,255,228,255,220,255,227,255, +229,255,213,255,211,255,223,255,221,255,214,255,216,255,221,255,229,255,228,255,223,255,217,255,199,255,186,255,189,255,193,255, +198,255,202,255,195,255,185,255,178,255,182,255,186,255,187,255,190,255,176,255,161,255,172,255,178,255,179,255,183,255,174,255, +173,255,167,255,142,255,142,255,161,255,173,255,182,255,175,255,166,255,172,255,169,255,172,255,177,255,169,255,176,255,192,255, +198,255,210,255,209,255,194,255,202,255,224,255,229,255,216,255,215,255,227,255,226,255,207,255,187,255,192,255,221,255,227,255, +200,255,191,255,211,255,225,255,212,255,189,255,186,255,195,255,195,255,188,255,173,255,171,255,191,255,190,255,175,255,173,255, +163,255,156,255,163,255,164,255,170,255,181,255,177,255,171,255,174,255,182,255,186,255,175,255,161,255,150,255,155,255,176,255, +184,255,183,255,194,255,189,255,166,255,166,255,176,255,179,255,171,255,156,255,162,255,188,255,187,255,166,255,165,255,178,255, +168,255,143,255,139,255,149,255,150,255,144,255,137,255,135,255,141,255,138,255,123,255,121,255,140,255,157,255,149,255,135,255, +136,255,144,255,153,255,161,255,167,255,174,255,179,255,180,255,182,255,182,255,180,255,174,255,168,255,170,255,171,255,169,255, +173,255,167,255,153,255,157,255,171,255,179,255,179,255,172,255,171,255,179,255,177,255,170,255,171,255,173,255,172,255,172,255, +171,255,167,255,163,255,154,255,152,255,166,255,171,255,158,255,153,255,157,255,159,255,155,255,144,255,144,255,152,255,149,255, +139,255,134,255,133,255,139,255,134,255,121,255,132,255,154,255,143,255,129,255,136,255,131,255,127,255,143,255,150,255,145,255, +138,255,130,255,137,255,144,255,131,255,128,255,134,255,136,255,141,255,140,255,137,255,140,255,144,255,157,255,166,255,158,255, +147,255,142,255,148,255,156,255,142,255,134,255,154,255,167,255,155,255,138,255,139,255,155,255,159,255,145,255,146,255,165,255, +167,255,147,255,134,255,144,255,164,255,157,255,119,255,117,255,153,255,171,255,173,255,173,255,173,255,182,255,176,255,165,255, +173,255,170,255,165,255,174,255,173,255,176,255,182,255,172,255,169,255,167,255,159,255,155,255,143,255,144,255,156,255,145,255, +134,255,143,255,149,255,150,255,142,255,129,255,127,255,138,255,150,255,149,255,146,255,162,255,169,255,161,255,160,255,165,255, +167,255,164,255,153,255,139,255,136,255,151,255,159,255,151,255,163,255,187,255,191,255,177,255,158,255,159,255,170,255,162,255, +146,255,135,255,135,255,149,255,148,255,137,255,148,255,157,255,152,255,145,255,134,255,142,255,156,255,162,255,178,255,186,255, +176,255,179,255,190,255,188,255,176,255,174,255,178,255,170,255,165,255,164,255,159,255,175,255,191,255,179,255,169,255,164,255, +161,255,167,255,157,255,150,255,168,255,170,255,162,255,178,255,190,255,186,255,189,255,199,255,200,255,192,255,186,255,190,255, +196,255,195,255,192,255,200,255,204,255,194,255,191,255,191,255,189,255,194,255,195,255,192,255,200,255,212,255,212,255,206,255, +202,255,201,255,199,255,194,255,185,255,183,255,192,255,184,255,170,255,185,255,201,255,196,255,194,255,195,255,205,255,217,255, +205,255,189,255,188,255,183,255,184,255,193,255,199,255,211,255,213,255,204,255,210,255,214,255,201,255,193,255,193,255,200,255, +201,255,190,255,187,255,187,255,181,255,187,255,189,255,186,255,199,255,206,255,195,255,195,255,202,255,196,255,192,255,196,255, +199,255,199,255,195,255,193,255,197,255,210,255,220,255,217,255,211,255,206,255,204,255,217,255,223,255,208,255,204,255,215,255, +216,255,216,255,221,255,220,255,222,255,226,255,221,255,223,255,226,255,212,255,202,255,207,255,214,255,215,255,205,255,199,255, +218,255,236,255,231,255,222,255,210,255,202,255,216,255,222,255,215,255,226,255,226,255,205,255,213,255,225,255,214,255,218,255, +228,255,226,255,224,255,212,255,204,255,225,255,236,255,218,255,205,255,214,255,227,255,218,255,200,255,201,255,221,255,237,255, +231,255,216,255,222,255,232,255,228,255,219,255,210,255,219,255,232,255,223,255,215,255,218,255,219,255,227,255,229,255,222,255, +217,255,213,255,215,255,221,255,223,255,221,255,216,255,222,255,234,255,224,255,215,255,222,255,226,255,233,255,232,255,214,255, +218,255,234,255,230,255,222,255,219,255,218,255,223,255,231,255,230,255,221,255,223,255,232,255,224,255,219,255,225,255,230,255, +237,255,241,255,242,255,248,255,253,255,244,255,231,255,235,255,246,255,243,255,243,255,255,255,254,255,248,255,254,255,1,0, +249,255,246,255,252,255,243,255,229,255,232,255,240,255,252,255,2,0,246,255,249,255,5,0,253,255,254,255,0,0,247,255, +5,0,13,0,249,255,241,255,241,255,242,255,245,255,249,255,7,0,14,0,3,0,2,0,255,255,247,255,253,255,251,255, +238,255,234,255,239,255,244,255,242,255,232,255,222,255,218,255,218,255,218,255,225,255,237,255,234,255,227,255,234,255,245,255, +247,255,234,255,232,255,255,255,3,0,246,255,253,255,10,0,11,0,6,0,2,0,7,0,13,0,8,0,254,255,250,255, +4,0,15,0,7,0,253,255,5,0,16,0,7,0,252,255,253,255,244,255,237,255,248,255,248,255,249,255,8,0,3,0, +243,255,243,255,251,255,253,255,238,255,227,255,235,255,237,255,233,255,228,255,224,255,231,255,237,255,230,255,228,255,232,255, +237,255,236,255,230,255,233,255,237,255,233,255,227,255,223,255,228,255,236,255,239,255,238,255,238,255,249,255,4,0,0,0, +3,0,8,0,1,0,4,0,9,0,1,0,255,255,246,255,234,255,245,255,9,0,9,0,250,255,250,255,13,0,15,0, +7,0,8,0,3,0,3,0,9,0,0,0,254,255,14,0,16,0,255,255,249,255,6,0,16,0,20,0,15,0,0,0, +2,0,14,0,11,0,15,0,27,0,23,0,19,0,17,0,15,0,23,0,23,0,17,0,21,0,21,0,22,0,35,0, +41,0,31,0,25,0,31,0,29,0,13,0,5,0,12,0,20,0,15,0,3,0,1,0,5,0,13,0,19,0,11,0, +11,0,21,0,14,0,255,255,4,0,15,0,16,0,12,0,18,0,30,0,31,0,30,0,31,0,31,0,26,0,14,0, +20,0,40,0,35,0,28,0,34,0,30,0,34,0,46,0,32,0,12,0,15,0,32,0,40,0,22,0,10,0,17,0, +17,0,15,0,14,0,4,0,0,0,254,255,245,255,243,255,2,0,17,0,11,0,245,255,241,255,255,255,6,0,2,0, +255,255,0,0,0,0,254,255,254,255,253,255,241,255,227,255,227,255,233,255,245,255,249,255,235,255,227,255,236,255,240,255, +250,255,6,0,255,255,251,255,0,0,3,0,10,0,8,0,4,0,16,0,18,0,15,0,28,0,31,0,22,0,26,0, +37,0,38,0,30,0,29,0,42,0,44,0,31,0,20,0,24,0,45,0,47,0,26,0,31,0,48,0,40,0,32,0, +38,0,42,0,45,0,51,0,48,0,42,0,45,0,47,0,49,0,55,0,50,0,38,0,37,0,42,0,39,0,30,0, +29,0,35,0,33,0,29,0,27,0,21,0,18,0,12,0,10,0,27,0,27,0,10,0,11,0,9,0,0,0,4,0, +3,0,3,0,11,0,5,0,250,255,251,255,1,0,254,255,241,255,240,255,249,255,254,255,5,0,3,0,248,255,250,255, +248,255,243,255,249,255,243,255,235,255,249,255,4,0,2,0,3,0,251,255,241,255,245,255,249,255,253,255,6,0,0,0, +247,255,252,255,252,255,246,255,240,255,225,255,224,255,237,255,230,255,222,255,229,255,232,255,234,255,232,255,225,255,231,255, +235,255,230,255,230,255,234,255,235,255,231,255,227,255,235,255,244,255,245,255,247,255,249,255,253,255,1,0,247,255,246,255, +8,0,13,0,1,0,252,255,1,0,14,0,16,0,3,0,9,0,24,0,11,0,1,0,12,0,18,0,22,0,25,0, +19,0,21,0,24,0,25,0,28,0,21,0,24,0,42,0,36,0,24,0,26,0,25,0,28,0,29,0,23,0,25,0, +24,0,20,0,24,0,16,0,16,0,25,0,17,0,17,0,24,0,16,0,20,0,25,0,13,0,12,0,19,0,19,0, +20,0,14,0,7,0,9,0,9,0,10,0,17,0,11,0,4,0,14,0,17,0,13,0,16,0,8,0,255,255,8,0, +13,0,9,0,8,0,253,255,249,255,255,255,253,255,247,255,241,255,245,255,249,255,241,255,245,255,246,255,226,255,223,255, +229,255,223,255,223,255,219,255,216,255,227,255,223,255,212,255,217,255,225,255,219,255,200,255,200,255,215,255,209,255,205,255, +212,255,206,255,210,255,221,255,212,255,213,255,221,255,215,255,213,255,224,255,231,255,227,255,220,255,225,255,229,255,224,255, +225,255,233,255,229,255,218,255,227,255,245,255,243,255,235,255,240,255,248,255,253,255,248,255,246,255,255,255,2,0,7,0, +11,0,8,0,17,0,18,0,7,0,8,0,0,0,251,255,12,0,6,0,251,255,11,0,10,0,1,0,1,0,248,255, +246,255,250,255,245,255,247,255,254,255,253,255,247,255,243,255,241,255,238,255,242,255,247,255,240,255,239,255,245,255,239,255, +239,255,245,255,242,255,249,255,2,0,252,255,249,255,248,255,242,255,248,255,4,0,254,255,247,255,250,255,249,255,247,255, +248,255,251,255,253,255,250,255,249,255,255,255,252,255,249,255,252,255,251,255,0,0,1,0,250,255,253,255,247,255,234,255, +238,255,238,255,237,255,238,255,229,255,229,255,231,255,226,255,232,255,225,255,214,255,228,255,229,255,217,255,225,255,232,255, +232,255,235,255,243,255,3,0,9,0,2,0,255,255,0,0,5,0,12,0,7,0,0,0,3,0,13,0,15,0,5,0, +0,0,5,0,7,0,12,0,17,0,17,0,16,0,15,0,15,0,21,0,23,0,20,0,21,0,31,0,36,0,25,0, +18,0,26,0,31,0,29,0,32,0,37,0,35,0,29,0,31,0,30,0,25,0,30,0,37,0,41,0,38,0,27,0, +28,0,37,0,38,0,41,0,38,0,33,0,40,0,47,0,46,0,41,0,40,0,44,0,47,0,51,0,59,0,53,0, +45,0,48,0,57,0,58,0,50,0,53,0,66,0,53,0,43,0,56,0,55,0,48,0,51,0,46,0,47,0,53,0, +47,0,45,0,44,0,35,0,32,0,32,0,30,0,31,0,36,0,36,0,28,0,28,0,31,0,26,0,30,0,36,0, +35,0,40,0,39,0,33,0,41,0,51,0,56,0,59,0,55,0,51,0,55,0,68,0,79,0,76,0,70,0,68,0, +68,0,80,0,82,0,72,0,76,0,78,0,76,0,86,0,88,0,81,0,82,0,80,0,81,0,84,0,86,0,92,0, +88,0,83,0,89,0,88,0,83,0,87,0,87,0,84,0,83,0,83,0,86,0,84,0,75,0,70,0,66,0,67,0, +75,0,66,0,51,0,52,0,59,0,62,0,61,0,46,0,33,0,37,0,43,0,44,0,43,0,39,0,36,0,41,0, +51,0,56,0,49,0,50,0,61,0,64,0,63,0,69,0,72,0,76,0,79,0,79,0,83,0,85,0,84,0,88,0, +85,0,86,0,101,0,104,0,99,0,99,0,97,0,103,0,114,0,106,0,99,0,111,0,116,0,109,0,107,0,107,0, +107,0,113,0,120,0,116,0,106,0,106,0,109,0,102,0,95,0,97,0,100,0,103,0,108,0,101,0,94,0,104,0, +107,0,92,0,84,0,96,0,103,0,94,0,84,0,87,0,86,0,84,0,82,0,70,0,69,0,80,0,72,0,64,0, +71,0,62,0,52,0,65,0,71,0,66,0,67,0,65,0,64,0,65,0,61,0,58,0,57,0,53,0,54,0,56,0, +52,0,51,0,50,0,49,0,53,0,59,0,64,0,68,0,69,0,66,0,60,0,60,0,66,0,66,0,61,0,58,0, +53,0,56,0,64,0,59,0,62,0,76,0,69,0,60,0,67,0,74,0,79,0,79,0,69,0,62,0,62,0,70,0, +76,0,67,0,63,0,69,0,64,0,57,0,58,0,59,0,58,0,58,0,63,0,65,0,54,0,52,0,55,0,46,0, +43,0,45,0,36,0,32,0,32,0,31,0,32,0,38,0,49,0,43,0,22,0,26,0,37,0,31,0,35,0,34,0, +21,0,22,0,28,0,26,0,26,0,23,0,20,0,25,0,32,0,31,0,23,0,22,0,30,0,32,0,26,0,23,0, +23,0,21,0,22,0,29,0,26,0,13,0,11,0,17,0,16,0,17,0,20,0,16,0,10,0,11,0,14,0,11,0, +18,0,32,0,28,0,17,0,21,0,26,0,27,0,28,0,24,0,29,0,36,0,28,0,21,0,24,0,26,0,30,0, +38,0,30,0,24,0,37,0,38,0,23,0,34,0,42,0,20,0,18,0,35,0,30,0,23,0,21,0,18,0,23,0, +28,0,29,0,34,0,26,0,13,0,24,0,26,0,7,0,10,0,20,0,11,0,9,0,10,0,5,0,8,0,5,0, +251,255,252,255,253,255,252,255,254,255,251,255,252,255,5,0,3,0,253,255,1,0,5,0,5,0,7,0,9,0,5,0, +6,0,13,0,12,0,9,0,12,0,11,0,13,0,22,0,28,0,26,0,28,0,36,0,37,0,36,0,37,0,34,0, +34,0,42,0,36,0,28,0,34,0,36,0,33,0,36,0,33,0,30,0,31,0,27,0,25,0,25,0,24,0,21,0, +19,0,19,0,17,0,15,0,17,0,13,0,12,0,20,0,17,0,12,0,19,0,15,0,7,0,14,0,19,0,13,0, +9,0,13,0,17,0,16,0,14,0,18,0,19,0,12,0,10,0,14,0,9,0,7,0,15,0,10,0,4,0,12,0, +12,0,9,0,8,0,4,0,8,0,12,0,7,0,8,0,8,0,8,0,15,0,17,0,22,0,28,0,19,0,15,0, +21,0,22,0,22,0,18,0,13,0,15,0,22,0,31,0,31,0,28,0,34,0,33,0,26,0,30,0,35,0,34,0, +35,0,30,0,28,0,35,0,40,0,44,0,41,0,30,0,33,0,40,0,32,0,28,0,35,0,35,0,30,0,28,0, +26,0,28,0,29,0,26,0,31,0,34,0,22,0,17,0,27,0,31,0,27,0,26,0,25,0,20,0,20,0,29,0, +31,0,26,0,26,0,33,0,32,0,29,0,36,0,45,0,43,0,35,0,36,0,41,0,39,0,34,0,34,0,41,0, +47,0,45,0,49,0,56,0,52,0,50,0,55,0,59,0,55,0,46,0,49,0,59,0,57,0,55,0,63,0,63,0, +58,0,58,0,58,0,59,0,59,0,55,0,59,0,55,0,40,0,46,0,54,0,43,0,42,0,50,0,47,0,49,0, +51,0,41,0,42,0,54,0,57,0,59,0,65,0,61,0,53,0,52,0,57,0,57,0,54,0,49,0,48,0,46,0, +47,0,56,0,60,0,59,0,58,0,50,0,48,0,55,0,47,0,43,0,53,0,55,0,57,0,64,0,53,0,42,0, +49,0,53,0,53,0,53,0,48,0,46,0,50,0,55,0,58,0,61,0,60,0,58,0,55,0,49,0,50,0,57,0, +55,0,53,0,58,0,55,0,51,0,54,0,52,0,46,0,48,0,48,0,47,0,53,0,56,0,51,0,54,0,62,0, +58,0,48,0,44,0,49,0,57,0,59,0,59,0,62,0,53,0,47,0,60,0,60,0,52,0,57,0,54,0,46,0, +49,0,46,0,45,0,53,0,51,0,45,0,49,0,52,0,50,0,47,0,42,0,39,0,41,0,42,0,41,0,47,0, +49,0,42,0,44,0,47,0,43,0,48,0,46,0,43,0,49,0,45,0,43,0,52,0,48,0,38,0,41,0,48,0, +49,0,44,0,44,0,47,0,46,0,48,0,46,0,39,0,46,0,54,0,49,0,46,0,45,0,46,0,44,0,40,0, +39,0,39,0,44,0,49,0,45,0,46,0,50,0,42,0,41,0,38,0,32,0,41,0,40,0,29,0,32,0,31,0, +25,0,30,0,31,0,30,0,34,0,32,0,34,0,34,0,29,0,31,0,34,0,30,0,35,0,42,0,39,0,33,0, +28,0,26,0,33,0,40,0,40,0,40,0,36,0,30,0,37,0,44,0,34,0,29,0,37,0,35,0,30,0,37,0, +42,0,37,0,35,0,37,0,35,0,39,0,41,0,33,0,30,0,33,0,30,0,30,0,32,0,32,0,34,0,36,0, +36,0,37,0,33,0,31,0,40,0,40,0,33,0,31,0,33,0,32,0,30,0,26,0,28,0,34,0,31,0,21,0, +25,0,33,0,27,0,23,0,28,0,29,0,29,0,28,0,22,0,21,0,27,0,29,0,28,0,26,0,23,0,26,0, +30,0,30,0,30,0,31,0,27,0,21,0,22,0,25,0,21,0,17,0,24,0,29,0,28,0,28,0,24,0,21,0, +24,0,23,0,24,0,27,0,24,0,24,0,28,0,31,0,37,0,36,0,28,0,31,0,32,0,29,0,34,0,32,0, +30,0,37,0,35,0,30,0,34,0,32,0,32,0,37,0,35,0,30,0,30,0,32,0,32,0,34,0,37,0,38,0, +39,0,38,0,30,0,28,0,35,0,36,0,36,0,37,0,40,0,43,0,34,0,29,0,37,0,34,0,26,0,26,0, +26,0,25,0,22,0,20,0,22,0,20,0,20,0,27,0,28,0,23,0,25,0,23,0,19,0,18,0,14,0,18,0, +31,0,29,0,19,0,22,0,28,0,29,0,31,0,34,0,31,0,25,0,31,0,40,0,33,0,31,0,43,0,38,0, +31,0,39,0,35,0,29,0,33,0,32,0,40,0,48,0,36,0,31,0,40,0,40,0,40,0,45,0,41,0,36,0, +40,0,45,0,43,0,43,0,43,0,41,0,45,0,41,0,30,0,35,0,40,0,30,0,28,0,29,0,29,0,34,0, +29,0,25,0,35,0,37,0,30,0,32,0,39,0,40,0,36,0,37,0,41,0,45,0,46,0,44,0,43,0,40,0, +36,0,38,0,41,0,39,0,42,0,43,0,43,0,50,0,51,0,45,0,42,0,40,0,38,0,39,0,42,0,44,0, +42,0,42,0,46,0,51,0,51,0,44,0,42,0,43,0,39,0,42,0,47,0,43,0,45,0,47,0,42,0,48,0, +52,0,48,0,48,0,46,0,49,0,49,0,41,0,45,0,50,0,47,0,51,0,54,0,50,0,49,0,53,0,54,0, +50,0,48,0,55,0,54,0,50,0,56,0,54,0,52,0,59,0,60,0,58,0,57,0,55,0,62,0,64,0,58,0, +63,0,64,0,55,0,55,0,66,0,65,0,55,0,54,0,60,0,56,0,53,0,57,0,55,0,52,0,56,0,56,0, +50,0,44,0,43,0,49,0,55,0,52,0,45,0,45,0,47,0,47,0,52,0,53,0,46,0,47,0,54,0,49,0, +46,0,50,0,46,0,39,0,43,0,47,0,42,0,38,0,42,0,47,0,46,0,40,0,39,0,41,0,41,0,41,0, +44,0,47,0,46,0,44,0,48,0,49,0,43,0,46,0,53,0,48,0,47,0,53,0,54,0,54,0,57,0,57,0, +53,0,53,0,56,0,58,0,57,0,56,0,57,0,56,0,54,0,54,0,60,0,63,0,59,0,52,0,53,0,60,0, +62,0,59,0,54,0,53,0,59,0,64,0,59,0,55,0,54,0,56,0,62,0,66,0,61,0,53,0,52,0,57,0, +51,0,44,0,49,0,52,0,50,0,52,0,47,0,46,0,52,0,49,0,55,0,60,0,48,0,46,0,55,0,50,0, +51,0,59,0,57,0,55,0,60,0,59,0,54,0,52,0,54,0,54,0,52,0,48,0,50,0,56,0,53,0,49,0, +55,0,57,0,57,0,62,0,57,0,51,0,54,0,56,0,53,0,52,0,51,0,54,0,61,0,62,0,55,0,56,0, +63,0,61,0,59,0,58,0,56,0,62,0,67,0,59,0,54,0,56,0,57,0,59,0,63,0,61,0,57,0,61,0, +69,0,66,0,61,0,61,0,60,0,61,0,63,0,60,0,56,0,55,0,58,0,56,0,50,0,59,0,65,0,56,0, +60,0,64,0,53,0,53,0,60,0,53,0,49,0,57,0,58,0,52,0,49,0,52,0,55,0,56,0,53,0,51,0, +49,0,49,0,57,0,57,0,46,0,49,0,54,0,46,0,50,0,54,0,47,0,46,0,52,0,54,0,49,0,44,0, +52,0,59,0,53,0,50,0,48,0,48,0,58,0,59,0,53,0,53,0,54,0,57,0,63,0,58,0,51,0,54,0, +58,0,55,0,53,0,53,0,49,0,53,0,62,0,59,0,57,0,59,0,56,0,59,0,58,0,54,0,57,0,55,0, +54,0,59,0,58,0,62,0,65,0,61,0,63,0,61,0,57,0,66,0,63,0,54,0,61,0,60,0,56,0,64,0, +65,0,53,0,52,0,61,0,62,0,55,0,55,0,60,0,58,0,54,0,50,0,50,0,55,0,53,0,49,0,55,0, +58,0,54,0,50,0,53,0,55,0,50,0,50,0,58,0,57,0,49,0,51,0,53,0,49,0,51,0,50,0,43,0, +50,0,55,0,44,0,45,0,54,0,51,0,48,0,49,0,47,0,46,0,47,0,51,0,55,0,52,0,48,0,49,0, +49,0,47,0,46,0,49,0,53,0,54,0,51,0,51,0,51,0,55,0,59,0,58,0,55,0,53,0,55,0,58,0, +57,0,57,0,60,0,61,0,62,0,61,0,57,0,61,0,61,0,52,0,56,0,61,0,50,0,55,0,65,0,53,0, +52,0,58,0,50,0,52,0,55,0,46,0,49,0,50,0,44,0,50,0,53,0,47,0,46,0,50,0,54,0,52,0, +47,0,47,0,47,0,44,0,45,0,49,0,49,0,41,0,38,0,51,0,54,0,48,0,48,0,47,0,46,0,48,0, +49,0,50,0,48,0,48,0,51,0,50,0,49,0,47,0,48,0,53,0,54,0,52,0,54,0,53,0,51,0,53,0, +50,0,51,0,55,0,54,0,56,0,52,0,47,0,50,0,50,0,53,0,56,0,50,0,48,0,52,0,52,0,48,0, +46,0,46,0,46,0,45,0,48,0,49,0,47,0,49,0,52,0,49,0,44,0,46,0,53,0,53,0,50,0,48,0, +46,0,50,0,51,0,48,0,50,0,51,0,49,0,47,0,46,0,47,0,47,0,44,0,47,0,51,0,46,0,45,0, +50,0,53,0,51,0,49,0,47,0,46,0,51,0,56,0,52,0,49,0,52,0,48,0,48,0,51,0,45,0,47,0, +51,0,47,0,45,0,46,0,50,0,51,0,45,0,41,0,39,0,40,0,48,0,49,0,44,0,47,0,48,0,46,0, +46,0,42,0,44,0,52,0,47,0,44,0,52,0,48,0,43,0,50,0,53,0,51,0,50,0,48,0,52,0,51,0, +47,0,53,0,47,0,40,0,53,0,53,0,45,0,52,0,50,0,46,0,54,0,50,0,47,0,50,0,44,0,45,0, +49,0,47,0,50,0,49,0,42,0,48,0,50,0,41,0,39,0,43,0,44,0,42,0,38,0,38,0,44,0,46,0, +43,0,42,0,43,0,43,0,43,0,46,0,49,0,45,0,39,0,41,0,47,0,46,0,44,0,47,0,48,0,47,0, +50,0,50,0,46,0,50,0,57,0,60,0,57,0,54,0,50,0,47,0,51,0,55,0,51,0,49,0,54,0,54,0, +54,0,56,0,51,0,47,0,53,0,54,0,48,0,49,0,50,0,47,0,45,0,46,0,50,0,51,0,49,0,48,0, +45,0,47,0,51,0,48,0,41,0,42,0,46,0,43,0,38,0,39,0,43,0,44,0,50,0,49,0,42,0,44,0, +46,0,46,0,51,0,49,0,45,0,51,0,51,0,47,0,48,0,45,0,43,0,50,0,51,0,50,0,54,0,52,0, +52,0,59,0,56,0,47,0,50,0,55,0,53,0,52,0,53,0,52,0,52,0,54,0,58,0,55,0,49,0,51,0, +55,0,54,0,55,0,55,0,52,0,51,0,55,0,58,0,57,0,54,0,51,0,51,0,55,0,53,0,52,0,57,0, +53,0,48,0,53,0,57,0,57,0,55,0,52,0,54,0,57,0,51,0,45,0,45,0,47,0,47,0,46,0,49,0, +52,0,51,0,49,0,46,0,48,0,50,0,47,0,47,0,48,0,47,0,50,0,50,0,46,0,51,0,52,0,42,0, +38,0,44,0,50,0,51,0,50,0,48,0,47,0,50,0,51,0,46,0,44,0,50,0,49,0,44,0,49,0,54,0, +48,0,50,0,60,0,54,0,47,0,51,0,51,0,47,0,49,0,52,0,49,0,48,0,53,0,60,0,58,0,53,0, +56,0,57,0,54,0,54,0,55,0,55,0,52,0,48,0,50,0,55,0,52,0,51,0,54,0,52,0,50,0,55,0, +53,0,52,0,54,0,48,0,45,0,51,0,54,0,55,0,54,0,47,0,45,0,50,0,50,0,47,0,45,0,46,0, +52,0,54,0,49,0,47,0,48,0,50,0,51,0,52,0,48,0,48,0,52,0,51,0,50,0,56,0,55,0,47,0, +49,0,53,0,53,0,57,0,60,0,53,0,50,0,49,0,44,0,48,0,53,0,51,0,51,0,50,0,47,0,49,0, +49,0,49,0,52,0,50,0,46,0,44,0,44,0,50,0,53,0,49,0,48,0,47,0,46,0,47,0,45,0,48,0, +55,0,52,0,49,0,51,0,47,0,45,0,51,0,52,0,48,0,49,0,49,0,50,0,56,0,53,0,47,0,52,0, +52,0,50,0,51,0,43,0,45,0,53,0,47,0,49,0,55,0,48,0,51,0,54,0,47,0,50,0,54,0,54,0, +56,0,49,0,49,0,54,0,46,0,46,0,52,0,48,0,52,0,57,0,48,0,46,0,49,0,48,0,50,0,51,0, +48,0,51,0,50,0,44,0,46,0,51,0,51,0,50,0,51,0,50,0,49,0,48,0,45,0,48,0,50,0,47,0, +47,0,46,0,47,0,50,0,51,0,53,0,54,0,49,0,48,0,53,0,49,0,45,0,50,0,54,0,53,0,50,0, +48,0,46,0,47,0,50,0,53,0,49,0,46,0,48,0,48,0,50,0,52,0,51,0,56,0,56,0,46,0,46,0, +53,0,51,0,49,0,49,0,49,0,50,0,53,0,55,0,53,0,46,0,47,0,56,0,56,0,49,0,49,0,51,0, +45,0,43,0,50,0,51,0,47,0,51,0,52,0,48,0,48,0,51,0,54,0,51,0,52,0,60,0,52,0,44,0, +51,0,51,0,52,0,60,0,50,0,40,0,46,0,48,0,46,0,49,0,50,0,51,0,50,0,46,0,46,0,47,0, +45,0,45,0,48,0,47,0,47,0,51,0,50,0,49,0,50,0,46,0,46,0,49,0,44,0,43,0,44,0,43,0, +47,0,48,0,44,0,45,0,46,0,46,0,46,0,44,0,48,0,48,0,45,0,49,0,49,0,45,0,48,0,48,0, +45,0,48,0,48,0,47,0,48,0,49,0,50,0,48,0,46,0,49,0,52,0,48,0,47,0,51,0,52,0,51,0, +52,0,51,0,48,0,51,0,51,0,49,0,52,0,51,0,46,0,51,0,56,0,52,0,46,0,45,0,51,0,53,0, +47,0,46,0,51,0,53,0,49,0,46,0,50,0,51,0,46,0,47,0,54,0,52,0,50,0,51,0,46,0,44,0, +48,0,46,0,42,0,44,0,46,0,47,0,46,0,45,0,47,0,47,0,43,0,46,0,47,0,44,0,43,0,45,0, +42,0,39,0,43,0,45,0,43,0,46,0,42,0,40,0,47,0,45,0,44,0,51,0,47,0,42,0,46,0,41,0, +39,0,44,0,43,0,44,0,48,0,47,0,46,0,45,0,44,0,44,0,45,0,45,0,42,0,44,0,49,0,48,0, +45,0,45,0,47,0,46,0,43,0,42,0,44,0,44,0,45,0,44,0,39,0,44,0,45,0,39,0,43,0,47,0, +44,0,47,0,45,0,40,0,46,0,48,0,43,0,42,0,42,0,38,0,35,0,39,0,42,0,37,0,38,0,43,0, +41,0,36,0,38,0,42,0,44,0,44,0,45,0,46,0,44,0,41,0,43,0,42,0,38,0,37,0,36,0,39,0, +43,0,36,0,33,0,40,0,37,0,35,0,37,0,34,0,37,0,42,0,35,0,34,0,38,0,38,0,38,0,35,0, +35,0,40,0,36,0,29,0,29,0,30,0,35,0,38,0,34,0,33,0,35,0,35,0,35,0,32,0,29,0,32,0, +35,0,33,0,31,0,30,0,28,0,33,0,34,0,25,0,25,0,31,0,33,0,33,0,26,0,21,0,27,0,25,0, +26,0,35,0,34,0,29,0,29,0,29,0,30,0,28,0,25,0,29,0,30,0,29,0,28,0,24,0,29,0,32,0, +24,0,26,0,34,0,33,0,32,0,31,0,29,0,29,0,29,0,29,0,29,0,28,0,29,0,31,0,28,0,29,0, +32,0,28,0,28,0,33,0,29,0,26,0,31,0,32,0,35,0,35,0,28,0,28,0,26,0,23,0,28,0,28,0, +26,0,31,0,26,0,23,0,32,0,30,0,22,0,25,0,31,0,32,0,29,0,27,0,31,0,29,0,25,0,27,0, +26,0,24,0,28,0,26,0,24,0,28,0,31,0,30,0,31,0,30,0,27,0,29,0,29,0,28,0,30,0,28,0, +28,0,31,0,31,0,30,0,27,0,24,0,27,0,25,0,21,0,26,0,28,0,29,0,31,0,27,0,28,0,32,0, +27,0,26,0,31,0,30,0,28,0,27,0,28,0,34,0,36,0,28,0,23,0,28,0,32,0,31,0,30,0,29,0, +27,0,28,0,26,0,24,0,28,0,31,0,28,0,26,0,28,0,32,0,29,0,28,0,29,0,24,0,22,0,26,0, +27,0,29,0,28,0,26,0,33,0,31,0,23,0,29,0,32,0,25,0,25,0,27,0,27,0,28,0,27,0,27,0, +27,0,25,0,22,0,23,0,27,0,28,0,30,0,29,0,25,0,26,0,29,0,27,0,27,0,30,0,27,0,23,0, +27,0,32,0,29,0,28,0,35,0,32,0,24,0,27,0,31,0,29,0,31,0,31,0,28,0,32,0,32,0,29,0, +33,0,34,0,28,0,30,0,33,0,30,0,31,0,32,0,33,0,37,0,32,0,32,0,37,0,32,0,31,0,35,0, +32,0,33,0,35,0,30,0,30,0,33,0,32,0,31,0,27,0,31,0,35,0,29,0,30,0,35,0,33,0,34,0, +33,0,28,0,29,0,30,0,30,0,30,0,30,0,32,0,31,0,32,0,32,0,28,0,27,0,29,0,29,0,31,0, +31,0,32,0,34,0,32,0,33,0,35,0,31,0,29,0,30,0,31,0,35,0,34,0,33,0,34,0,31,0,32,0, +34,0,31,0,29,0,28,0,28,0,34,0,33,0,29,0,33,0,32,0,28,0,31,0,32,0,30,0,27,0,25,0, +28,0,32,0,32,0,33,0,31,0,27,0,27,0,28,0,27,0,30,0,33,0,31,0,27,0,29,0,31,0,29,0, +30,0,30,0,28,0,30,0,30,0,28,0,27,0,26,0,27,0,28,0,26,0,26,0,28,0,29,0,30,0,27,0, +26,0,31,0,30,0,27,0,28,0,25,0,24,0,30,0,27,0,25,0,29,0,28,0,26,0,29,0,29,0,27,0, +28,0,29,0,27,0,27,0,30,0,26,0,23,0,28,0,25,0,21,0,24,0,26,0,27,0,28,0,24,0,23,0, +24,0,21,0,22,0,26,0,26,0,23,0,24,0,26,0,24,0,23,0,23,0,22,0,22,0,22,0,23,0,25,0, +20,0,20,0,27,0,22,0,18,0,24,0,21,0,17,0,20,0,20,0,21,0,24,0,21,0,21,0,23,0,22,0, +22,0,23,0,23,0,20,0,18,0,20,0,22,0,22,0,19,0,17,0,21,0,20,0,17,0,19,0,19,0,18,0, +19,0,20,0,19,0,15,0,15,0,22,0,20,0,14,0,20,0,23,0,18,0,19,0,23,0,18,0,14,0,17,0, +19,0,19,0,22,0,25,0,20,0,17,0,20,0,23,0,20,0,15,0,15,0,21,0,21,0,16,0,17,0,20,0, +16,0,14,0,17,0,18,0,17,0,18,0,16,0,13,0,15,0,18,0,16,0,13,0,13,0,14,0,15,0,17,0, +15,0,15,0,15,0,11,0,12,0,18,0,14,0,11,0,14,0,13,0,12,0,16,0,18,0,15,0,15,0,19,0, +19,0,15,0,15,0,16,0,16,0,17,0,16,0,15,0,13,0,11,0,14,0,13,0,10,0,17,0,18,0,10,0, +13,0,18,0,17,0,16,0,17,0,17,0,16,0,15,0,15,0,13,0,12,0,15,0,14,0,14,0,14,0,13,0, +16,0,17,0,16,0,16,0,13,0,13,0,17,0,17,0,16,0,15,0,13,0,17,0,15,0,11,0,13,0,13,0, +11,0,16,0,17,0,14,0,12,0,13,0,14,0,11,0,14,0,18,0,16,0,14,0,15,0,15,0,16,0,13,0, +10,0,12,0,14,0,15,0,15,0,12,0,13,0,14,0,12,0,12,0,10,0,9,0,13,0,14,0,11,0,10,0, +12,0,13,0,11,0,13,0,15,0,15,0,14,0,13,0,13,0,16,0,14,0,13,0,15,0,13,0,12,0,14,0, +11,0,9,0,9,0,11,0,14,0,12,0,9,0,13,0,14,0,12,0,13,0,13,0,10,0,11,0,13,0,10,0, +9,0,10,0,9,0,10,0,12,0,10,0,9,0,10,0,8,0,9,0,11,0,11,0,9,0,8,0,9,0,10,0, +10,0,8,0,8,0,9,0,9,0,7,0,8,0,9,0,6,0,5,0,7,0,8,0,5,0,5,0,9,0,10,0, +6,0,6,0,6,0,3,0,6,0,7,0,4,0,5,0,8,0,7,0,6,0,6,0,7,0,7,0,6,0,5,0, +6,0,8,0,8,0,9,0,11,0,10,0,10,0,10,0,5,0,3,0,8,0,9,0,7,0,5,0,3,0,2,0, +7,0,11,0,7,0,4,0,6,0,5,0,7,0,10,0,5,0,3,0,7,0,8,0,5,0,5,0,7,0,6,0, +5,0,8,0,7,0,5,0,7,0,7,0,10,0,11,0,5,0,5,0,8,0,3,0,6,0,7,0,3,0,5,0, +8,0,5,0,4,0,4,0,5,0,8,0,7,0,6,0,5,0,4,0,6,0,6,0,2,0,1,0,3,0,5,0, +5,0,6,0,7,0,6,0,6,0,4,0,5,0,7,0,4,0,2,0,3,0,2,0,7,0,8,0,2,0,4,0, +8,0,4,0,4,0,4,0,3,0,6,0,8,0,5,0,3,0,4,0,7,0,5,0,5,0,5,0,2,0,4,0, +5,0,3,0,5,0,3,0,4,0,9,0,5,0,2,0,8,0,5,0,3,0,6,0,4,0,4,0,5,0,4,0, +4,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,0,0,4,0,5,0,2,0,4,0,4,0,1,0, +3,0,3,0,3,0,3,0,254,255,1,0,5,0,4,0,5,0,4,0,0,0,1,0,3,0,4,0,2,0,1,0, +3,0,4,0,5,0,6,0,3,0,0,0,2,0,3,0,2,0,1,0,3,0,2,0,255,255,3,0,4,0,254,255, +2,0,6,0,3,0,5,0,4,0,255,255,0,0,3,0,6,0,4,0,0,0,2,0,1,0,255,255,4,0,5,0, +2,0,3,0,2,0,2,0,2,0,0,0,1,0,3,0,4,0,3,0,1,0,1,0,3,0,1,0,0,0,2,0, +2,0,2,0,0,0,1,0,5,0,3,0,2,0,2,0,0,0,1,0,4,0,2,0,0,0,0,0,3,0,4,0, +2,0,1,0,2,0,3,0,4,0,4,0,2,0,2,0,3,0,2,0,1,0,3,0,3,0,0,0,0,0,2,0, +2,0,2,0,3,0,1,0,0,0,0,0,1,0,3,0,2,0,0,0,1,0,0,0,0,0,2,0,1,0,2,0, +0,0,253,255,255,255,1,0,1,0,1,0,0,0,255,255,255,255,1,0,3,0,1,0,1,0,4,0,4,0,1,0, +255,255,251,255,254,255,3,0,1,0,255,255,255,255,255,255,0,0,253,255,255,255,2,0,254,255,255,255,0,0,253,255, +254,255,254,255,253,255,254,255,255,255,254,255,255,255,255,255,254,255,252,255,254,255,1,0,252,255,251,255,0,0,254,255, +252,255,254,255,254,255,253,255,254,255,253,255,252,255,254,255,0,0,255,255,255,255,255,255,252,255,253,255,0,0,253,255, +254,255,1,0,253,255,251,255,252,255,252,255,251,255,252,255,255,255,254,255,254,255,255,255,251,255,252,255,255,255,251,255, +251,255,254,255,252,255,251,255,252,255,252,255,253,255,252,255,250,255,253,255,252,255,251,255,252,255,250,255,250,255,252,255, +251,255,252,255,251,255,251,255,252,255,251,255,249,255,249,255,251,255,253,255,250,255,247,255,251,255,251,255,249,255,251,255, +254,255,254,255,252,255,250,255,250,255,251,255,251,255,250,255,250,255,250,255,249,255,250,255,250,255,250,255,250,255,249,255, +248,255,249,255,249,255,250,255,251,255,253,255,254,255,251,255,249,255,252,255,253,255,251,255,250,255,251,255,251,255,249,255, +248,255,250,255,251,255,253,255,251,255,249,255,251,255,250,255,248,255,252,255,253,255,248,255,248,255,250,255,249,255,247,255, +248,255,252,255,252,255,247,255,247,255,251,255,249,255,249,255,252,255,250,255,248,255,250,255,249,255,249,255,250,255,250,255, +251,255,250,255,249,255,252,255,251,255,248,255,252,255,251,255,249,255,252,255,252,255,250,255,252,255,252,255,251,255,250,255, +249,255,250,255,251,255,253,255,252,255,249,255,252,255,252,255,250,255,254,255,252,255,249,255,252,255,250,255,247,255,251,255, +253,255,253,255,252,255,249,255,251,255,253,255,253,255,251,255,249,255,252,255,252,255,251,255,250,255,247,255,251,255,255,255, +250,255,249,255,251,255,252,255,253,255,252,255,250,255,250,255,250,255,251,255,250,255,249,255,252,255,251,255,250,255,253,255, +251,255,251,255,251,255,251,255,252,255,251,255,252,255,253,255,250,255,252,255,253,255,249,255,252,255,253,255,250,255,254,255, +253,255,250,255,250,255,250,255,252,255,253,255,251,255,254,255,251,255,249,255,254,255,251,255,251,255,255,255,253,255,252,255, +249,255,247,255,253,255,253,255,249,255,251,255,250,255,251,255,253,255,251,255,251,255,252,255,253,255,251,255,249,255,249,255, +250,255,250,255,252,255,251,255,250,255,251,255,252,255,252,255,248,255,250,255,255,255,252,255,248,255,251,255,251,255,252,255, +251,255,247,255,250,255,251,255,250,255,252,255,250,255,247,255,250,255,250,255,249,255,249,255,251,255,253,255,249,255,249,255, +252,255,250,255,252,255,252,255,249,255,250,255,251,255,251,255,251,255,249,255,248,255,250,255,252,255,254,255,250,255,247,255, +253,255,251,255,248,255,254,255,255,255,250,255,248,255,250,255,253,255,252,255,252,255,254,255,251,255,251,255,251,255,249,255, +251,255,253,255,248,255,248,255,252,255,249,255,249,255,252,255,250,255,250,255,252,255,249,255,248,255,251,255,251,255,251,255, +253,255,250,255,248,255,250,255,252,255,254,255,253,255,250,255,251,255,251,255,251,255,251,255,250,255,251,255,252,255,250,255, +251,255,252,255,249,255,248,255,250,255,253,255,252,255,249,255,252,255,252,255,249,255,251,255,253,255,250,255,251,255,253,255, +252,255,251,255,250,255,251,255,252,255,250,255,250,255,251,255,250,255,250,255,250,255,248,255,249,255,249,255,248,255,248,255, +249,255,249,255,249,255,249,255,250,255,252,255,251,255,248,255,249,255,252,255,251,255,250,255,248,255,247,255,248,255,251,255, +252,255,254,255,253,255,250,255,249,255,250,255,249,255,251,255,254,255,249,255,248,255,252,255,251,255,249,255,249,255,248,255, +250,255,252,255,250,255,251,255,251,255,247,255,249,255,250,255,248,255,250,255,251,255,249,255,252,255,252,255,249,255,251,255, +252,255,250,255,250,255,250,255,251,255,254,255,253,255,250,255,249,255,249,255,249,255,249,255,250,255,250,255,248,255,250,255, +253,255,250,255,249,255,253,255,252,255,252,255,254,255,251,255,249,255,251,255,251,255,250,255,251,255,251,255,249,255,250,255, +251,255,250,255,251,255,251,255,248,255,250,255,253,255,251,255,249,255,251,255,252,255,251,255,252,255,252,255,251,255,251,255, +252,255,251,255,249,255,250,255,252,255,251,255,249,255,250,255,252,255,251,255,252,255,252,255,252,255,253,255,252,255,249,255, +251,255,251,255,249,255,249,255,249,255,250,255,250,255,250,255,251,255,250,255,249,255,251,255,252,255,252,255,252,255,251,255, +251,255,248,255,248,255,251,255,251,255,250,255,250,255,250,255,251,255,252,255,251,255,252,255,249,255,247,255,251,255,251,255, +249,255,250,255,249,255,248,255,252,255,251,255,249,255,251,255,251,255,251,255,252,255,250,255,249,255,249,255,249,255,250,255, +252,255,249,255,249,255,252,255,250,255,249,255,251,255,250,255,251,255,250,255,248,255,250,255,251,255,247,255,249,255,252,255, +250,255,250,255,250,255,250,255,250,255,248,255,248,255,250,255,252,255,250,255,247,255,247,255,248,255,249,255,252,255,251,255, +248,255,251,255,251,255,249,255,252,255,252,255,248,255,246,255,248,255,250,255,248,255,250,255,253,255,251,255,248,255,250,255, +250,255,250,255,250,255,251,255,252,255,251,255,250,255,250,255,250,255,250,255,250,255,249,255,248,255,249,255,250,255,251,255, +250,255,251,255,250,255,248,255,250,255,251,255,251,255,251,255,251,255,250,255,252,255,252,255,250,255,250,255,250,255,249,255, +250,255,253,255,251,255,250,255,249,255,249,255,250,255,251,255,250,255,251,255,252,255,250,255,250,255,250,255,250,255,250,255, +248,255,248,255,250,255,250,255,249,255,251,255,251,255,249,255,250,255,250,255,248,255,248,255,250,255,248,255,248,255,251,255, +250,255,249,255,251,255,251,255,250,255,250,255,251,255,251,255,250,255,250,255,249,255,250,255,251,255,251,255,250,255,250,255, +250,255,250,255,251,255,251,255,251,255,251,255,249,255,249,255,251,255,251,255,250,255,249,255,248,255,251,255,252,255,251,255, +251,255,249,255,249,255,251,255,249,255,247,255,249,255,249,255,248,255,250,255,252,255,251,255,250,255,250,255,251,255,251,255, +250,255,250,255,251,255,252,255,251,255,251,255,251,255,253,255,253,255,251,255,252,255,251,255,249,255,250,255,253,255,252,255, +249,255,250,255,251,255,249,255,251,255,252,255,251,255,251,255,252,255,252,255,252,255,250,255,250,255,252,255,251,255,250,255, +252,255,251,255,250,255,250,255,249,255,251,255,252,255,251,255,250,255,251,255,250,255,251,255,251,255,252,255,251,255,251,255, +252,255,251,255,252,255,252,255,249,255,250,255,253,255,250,255,250,255,251,255,248,255,249,255,250,255,249,255,251,255,252,255, +249,255,250,255,251,255,252,255,252,255,251,255,252,255,252,255,250,255,251,255,253,255,252,255,251,255,251,255,250,255,252,255, +252,255,251,255,250,255,249,255,252,255,253,255,251,255,253,255,251,255,250,255,253,255,254,255,251,255,250,255,250,255,251,255, +252,255,251,255,251,255,253,255,253,255,251,255,251,255,252,255,253,255,251,255,252,255,253,255,251,255,250,255,251,255,251,255, +251,255,252,255,252,255,250,255,250,255,253,255,254,255,250,255,249,255,251,255,251,255,252,255,253,255,250,255,250,255,252,255, +252,255,251,255,252,255,250,255,251,255,253,255,253,255,253,255,251,255,253,255,255,255,252,255,251,255,253,255,251,255,251,255, +252,255,252,255,254,255,253,255,252,255,252,255,250,255,250,255,252,255,252,255,252,255,252,255,252,255,252,255,249,255,250,255, +253,255,252,255,252,255,254,255,252,255,253,255,255,255,255,255,255,255,253,255,254,255,255,255,251,255,251,255,254,255,251,255, +250,255,254,255,254,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,253,255,253,255,252,255,251,255,251,255, +252,255,253,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,253,255,250,255,249,255,252,255,253,255,253,255,254,255, +253,255,252,255,255,255,254,255,252,255,253,255,253,255,253,255,254,255,252,255,250,255,253,255,252,255,252,255,253,255,252,255, +252,255,254,255,253,255,253,255,253,255,253,255,254,255,252,255,252,255,253,255,253,255,253,255,255,255,254,255,253,255,252,255, +253,255,254,255,253,255,254,255,255,255,253,255,254,255,253,255,253,255,255,255,254,255,253,255,0,0,254,255,254,255,255,255, +254,255,254,255,255,255,253,255,253,255,254,255,254,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255, +253,255,253,255,253,255,254,255,255,255,255,255,253,255,253,255,254,255,254,255,255,255,253,255,253,255,254,255,255,255,254,255, +254,255,254,255,253,255,253,255,254,255,254,255,253,255,252,255,253,255,254,255,254,255,253,255,254,255,255,255,254,255,255,255, +254,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,253,255,253,255,254,255,254,255,0,0,255,255,254,255,0,0, +254,255,253,255,255,255,253,255,251,255,253,255,253,255,252,255,254,255,254,255,254,255,253,255,255,255,1,0,255,255,254,255, +254,255,254,255,255,255,255,255,255,255,254,255,252,255,254,255,255,255,253,255,253,255,253,255,252,255,254,255,255,255,252,255, +253,255,254,255,253,255,253,255,254,255,0,0,255,255,253,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255, +253,255,252,255,254,255,0,0,254,255,254,255,255,255,255,255,255,255,254,255,254,255,253,255,252,255,253,255,253,255,254,255, +0,0,254,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,253,255,253,255, +0,0,0,0,254,255,254,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,252,255,254,255,254,255, +253,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,254,255,255,255,255,255,252,255,253,255,255,255, +0,0,255,255,253,255,252,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,252,255, +253,255,255,255,253,255,252,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255, +254,255,254,255,255,255,254,255,255,255,254,255,253,255,252,255,252,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255, +253,255,254,255,254,255,253,255,254,255,254,255,252,255,253,255,254,255,254,255,254,255,252,255,253,255,254,255,254,255,253,255, +254,255,253,255,252,255,253,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,0,0,255,255,253,255,253,255, +253,255,252,255,254,255,252,255,252,255,255,255,254,255,253,255,254,255,253,255,252,255,252,255,253,255,252,255,253,255,254,255, +252,255,252,255,254,255,253,255,253,255,255,255,253,255,253,255,253,255,252,255,253,255,254,255,254,255,254,255,253,255,253,255, +255,255,254,255,253,255,253,255,252,255,252,255,253,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,252,255,253,255, +253,255,251,255,252,255,254,255,253,255,252,255,253,255,252,255,252,255,254,255,254,255,252,255,251,255,253,255,253,255,251,255, +253,255,254,255,252,255,253,255,253,255,252,255,253,255,253,255,252,255,252,255,251,255,251,255,253,255,253,255,252,255,252,255, +252,255,252,255,252,255,251,255,251,255,253,255,252,255,250,255,253,255,254,255,252,255,252,255,252,255,251,255,252,255,252,255, +252,255,251,255,251,255,252,255,252,255,252,255,253,255,253,255,251,255,251,255,252,255,251,255,251,255,252,255,251,255,250,255, +252,255,254,255,252,255,252,255,253,255,252,255,252,255,251,255,250,255,251,255,252,255,253,255,254,255,252,255,253,255,253,255, +251,255,252,255,252,255,251,255,252,255,251,255,250,255,252,255,253,255,252,255,252,255,251,255,251,255,252,255,252,255,252,255, +251,255,251,255,250,255,250,255,252,255,252,255,250,255,251,255,252,255,252,255,252,255,251,255,251,255,252,255,250,255,250,255, +252,255,252,255,252,255,251,255,250,255,251,255,253,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255,250,255,251,255, +251,255,253,255,252,255,251,255,251,255,250,255,250,255,251,255,250,255,251,255,252,255,251,255,252,255,253,255,252,255,251,255, +249,255,250,255,251,255,250,255,250,255,251,255,251,255,251,255,251,255,252,255,251,255,250,255,251,255,251,255,251,255,252,255, +251,255,251,255,253,255,251,255,251,255,254,255,253,255,250,255,251,255,251,255,251,255,251,255,250,255,250,255,250,255,250,255, +251,255,252,255,251,255,251,255,250,255,249,255,249,255,250,255,250,255,250,255,250,255,251,255,251,255,250,255,250,255,252,255, +252,255,250,255,249,255,250,255,251,255,251,255,252,255,253,255,251,255,250,255,251,255,251,255,251,255,252,255,251,255,251,255, +251,255,251,255,251,255,250,255,250,255,251,255,250,255,250,255,251,255,252,255,252,255,251,255,252,255,253,255,251,255,250,255, +251,255,250,255,251,255,251,255,249,255,249,255,250,255,251,255,251,255,251,255,251,255,252,255,250,255,250,255,251,255,250,255, +252,255,252,255,250,255,250,255,250,255,250,255,251,255,250,255,251,255,252,255,251,255,252,255,251,255,250,255,251,255,250,255, +249,255,250,255,251,255,253,255,253,255,251,255,251,255,251,255,251,255,252,255,250,255,251,255,252,255,250,255,251,255,253,255, +252,255,252,255,251,255,251,255,252,255,251,255,251,255,251,255,251,255,251,255,250,255,250,255,251,255,251,255,251,255,250,255, +250,255,250,255,252,255,252,255,251,255,252,255,252,255,251,255,252,255,252,255,249,255,250,255,251,255,251,255,251,255,251,255, +251,255,251,255,249,255,250,255,252,255,250,255,250,255,251,255,249,255,250,255,251,255,250,255,250,255,251,255,252,255,251,255, +250,255,252,255,252,255,250,255,251,255,252,255,252,255,252,255,250,255,251,255,253,255,251,255,251,255,252,255,252,255,253,255, +252,255,250,255,251,255,251,255,250,255,251,255,251,255,252,255,252,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255, +252,255,250,255,250,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,250,255,251,255,252,255,251,255, +251,255,253,255,252,255,251,255,252,255,253,255,252,255,251,255,252,255,251,255,250,255,252,255,252,255,253,255,252,255,251,255, +251,255,252,255,252,255,252,255,251,255,252,255,252,255,252,255,252,255,251,255,252,255,253,255,252,255,252,255,252,255,251,255, +251,255,252,255,251,255,252,255,252,255,251,255,252,255,253,255,253,255,251,255,251,255,252,255,252,255,252,255,252,255,251,255, +251,255,251,255,252,255,252,255,251,255,251,255,252,255,252,255,253,255,251,255,250,255,253,255,252,255,251,255,253,255,252,255, +251,255,253,255,252,255,252,255,253,255,252,255,251,255,252,255,253,255,253,255,251,255,251,255,252,255,252,255,252,255,252,255, +251,255,251,255,252,255,252,255,251,255,251,255,253,255,252,255,252,255,253,255,252,255,251,255,252,255,252,255,252,255,253,255, +251,255,252,255,253,255,251,255,252,255,253,255,252,255,252,255,253,255,253,255,253,255,251,255,251,255,253,255,253,255,252,255, +252,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,253,255,252,255,252,255,254,255,253,255,252,255,253,255, +253,255,252,255,252,255,251,255,253,255,253,255,252,255,253,255,252,255,251,255,253,255,252,255,252,255,253,255,252,255,252,255, +253,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,253,255,253,255,253,255,253,255,252,255,252,255,251,255,252,255, +253,255,252,255,252,255,254,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,252,255,252,255,253,255,253,255, +253,255,252,255,253,255,254,255,252,255,251,255,252,255,253,255,253,255,252,255,253,255,253,255,252,255,252,255,251,255,251,255, +253,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,254,255,253,255,253,255,253,255,252,255,252,255, +253,255,253,255,251,255,252,255,253,255,252,255,252,255,252,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,253,255, +252,255,253,255,253,255,253,255,254,255,252,255,252,255,253,255,251,255,252,255,254,255,253,255,253,255,253,255,252,255,252,255, +252,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,253,255,254,255,254,255,253,255,252,255,253,255,253,255,253,255, +252,255,253,255,252,255,251,255,253,255,253,255,252,255,253,255,254,255,253,255,253,255,252,255,252,255,254,255,253,255,252,255, +253,255,253,255,254,255,253,255,252,255,252,255,253,255,253,255,252,255,253,255,254,255,253,255,252,255,253,255,253,255,254,255, +253,255,253,255,254,255,253,255,253,255,255,255,253,255,252,255,254,255,252,255,252,255,254,255,252,255,253,255,254,255,253,255, +253,255,253,255,253,255,254,255,253,255,252,255,254,255,253,255,253,255,254,255,253,255,252,255,254,255,253,255,252,255,253,255, +253,255,252,255,253,255,254,255,254,255,253,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +254,255,255,255,253,255,253,255,253,255,253,255,253,255,254,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,253,255, +253,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,252,255,253,255,253,255,253,255,255,255,253,255,253,255,253,255, +253,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255, +254,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255, +254,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,254,255,253,255,255,255,255,255,254,255,255,255, +254,255,253,255,254,255,255,255,255,255,0,0,254,255,254,255,254,255,253,255,255,255,255,255,254,255,255,255,254,255,254,255, +255,255,254,255,254,255,255,255,254,255,254,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255, +255,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,254,255,255,255,0,0,255,255,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,1,0,0,0,255,255,0,0,255,255,254,255,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0, +1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,2,0,2,0,0,0, +1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,0,0,0,0,2,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,2,0, +1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0, +1,0,2,0,3,0,2,0,2,0,2,0,1,0,3,0,3,0,1,0,2,0,2,0,2,0,2,0,0,0,2,0, +2,0,0,0,3,0,3,0,1,0,2,0,2,0,1,0,3,0,2,0,1,0,2,0,1,0,2,0,3,0,2,0, +1,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,1,0,2,0,3,0,1,0,2,0,3,0,2,0,2,0,3,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,1,0, +3,0,3,0,1,0,2,0,3,0,2,0,3,0,3,0,1,0,3,0,3,0,2,0,3,0,2,0,2,0,3,0, +3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0, +3,0,4,0,3,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0, +3,0,2,0,1,0,2,0,3,0,3,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0, +2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0, +3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0, +3,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,3,0,3,0,2,0,2,0,2,0, +3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,3,0,3,0,2,0,3,0,3,0,2,0, +3,0,2,0,2,0,3,0,2,0,3,0,3,0,1,0,1,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0, +1,0,3,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,3,0,2,0,1,0,2,0,3,0,2,0, +1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0, +3,0,2,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0, +2,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,1,0,3,0,2,0,1,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,0,0, +1,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0, +1,0,2,0,2,0,1,0,2,0,2,0,1,0,0,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,2,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0, +0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,2,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,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,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,255,255,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,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,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,255,255, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,255,255,255,255,1,0,0,0,255,255,255,255,255,255,0,0,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,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,2,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,254,255, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,1,0,1,0,0,0,1,0,0,0,255,255,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,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,255,255,255,255,0,0,0,0,0,0,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,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +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,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,255,255,0,0,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,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,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0, +255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0, +1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,0,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,2,0,1,0,0,0,0,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,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,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0, +1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,3,0,2,0,2,0,3,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,2,0, +2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0, +4,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,4,0, +3,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0, +4,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0, +4,0,3,0,3,0,4,0,3,0,3,0,5,0,4,0,3,0,4,0,4,0,4,0,5,0,4,0,3,0,4,0, +4,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,3,0,4,0,6,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0, +4,0,5,0,6,0,5,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,5,0,4,0, +4,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,6,0,5,0,5,0, +5,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,6,0,6,0,5,0, +5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,7,0,6,0,6,0,6,0,5,0,5,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0, +6,0,6,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0, +7,0,7,0,8,0,7,0,6,0,7,0,8,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,8,0,8,0, +8,0,8,0,8,0,7,0,7,0,8,0,8,0,8,0,7,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0, +8,0,8,0,7,0,8,0,9,0,8,0,8,0,8,0,8,0,9,0,9,0,8,0,9,0,8,0,8,0,9,0, +9,0,8,0,9,0,8,0,8,0,9,0,8,0,9,0,10,0,9,0,8,0,9,0,9,0,9,0,9,0,9,0, +8,0,9,0,9,0,9,0,8,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0,10,0,9,0,10,0,10,0, +9,0,8,0,9,0,10,0,10,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0, +10,0,10,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,11,0,11,0,10,0,11,0,11,0,10,0,10,0, +11,0,11,0,11,0,11,0,10,0,11,0,11,0,10,0,10,0,11,0,11,0,10,0,11,0,11,0,11,0,11,0, +12,0,12,0,11,0,12,0,11,0,12,0,12,0,10,0,11,0,12,0,12,0,11,0,12,0,11,0,11,0,12,0, +13,0,13,0,12,0,13,0,12,0,11,0,12,0,13,0,12,0,12,0,12,0,12,0,13,0,12,0,11,0,12,0, +12,0,12,0,12,0,12,0,12,0,13,0,12,0,12,0,12,0,12,0,12,0,11,0,12,0,13,0,12,0,12,0, +13,0,14,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,14,0,13,0,13,0,14,0,13,0, +13,0,13,0,13,0,14,0,13,0,13,0,14,0,13,0,14,0,15,0,14,0,13,0,13,0,14,0,14,0,13,0, +13,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,13,0,14,0,14,0,13,0,13,0,14,0,14,0,14,0, +14,0,13,0,14,0,14,0,15,0,15,0,14,0,14,0,15,0,14,0,14,0,15,0,15,0,14,0,14,0,14,0, +15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,14,0, +15,0,16,0,15,0,15,0,14,0,15,0,16,0,15,0,14,0,15,0,15,0,16,0,16,0,15,0,14,0,16,0, +16,0,15,0,15,0,15,0,15,0,16,0,16,0,15,0,15,0,15,0,17,0,17,0,16,0,15,0,15,0,16,0, +15,0,15,0,16,0,16,0,16,0,16,0,15,0,15,0,16,0,15,0,15,0,16,0,16,0,16,0,16,0,16,0, +16,0,15,0,16,0,17,0,16,0,16,0,16,0,16,0,16,0,17,0,16,0,16,0,16,0,16,0,17,0,17,0, +15,0,16,0,16,0,15,0,16,0,17,0,16,0,16,0,16,0,17,0,16,0,17,0,17,0,16,0,16,0,17,0, +16,0,16,0,17,0,17,0,16,0,15,0,17,0,17,0,17,0,16,0,17,0,17,0,17,0,17,0,17,0,17,0, +17,0,17,0,17,0,17,0,17,0,18,0,17,0,17,0,17,0,16,0,16,0,17,0,17,0,17,0,17,0,17,0, +17,0,17,0,17,0,18,0,17,0,17,0,17,0,17,0,16,0,17,0,17,0,16,0,17,0,17,0,18,0,18,0, +17,0,18,0,18,0,17,0,17,0,18,0,18,0,18,0,17,0,17,0,17,0,17,0,17,0,18,0,17,0,17,0, +17,0,18,0,18,0,18,0,18,0,17,0,17,0,18,0,18,0,17,0,18,0,17,0,17,0,18,0,17,0,18,0, +19,0,17,0,18,0,19,0,17,0,17,0,18,0,17,0,17,0,18,0,18,0,19,0,18,0,17,0,18,0,18,0, +18,0,18,0,17,0,17,0,19,0,19,0,18,0,18,0,18,0,18,0,19,0,18,0,18,0,18,0,17,0,18,0, +18,0,19,0,19,0,17,0,18,0,19,0,19,0,19,0,18,0,17,0,18,0,19,0,19,0,17,0,18,0,19,0, +19,0,18,0,18,0,18,0,18,0,19,0,18,0,18,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,18,0, +19,0,19,0,18,0,18,0,19,0,19,0,20,0,19,0,18,0,18,0,19,0,19,0,19,0,18,0,19,0,20,0, +19,0,19,0,19,0,18,0,19,0,19,0,18,0,19,0,19,0,19,0,19,0,20,0,20,0,20,0,20,0,19,0, +18,0,20,0,20,0,19,0,19,0,20,0,19,0,20,0,20,0,20,0,19,0,19,0,19,0,20,0,20,0,20,0, +21,0,20,0,19,0,20,0,19,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0, +20,0,20,0,20,0,20,0,20,0,21,0,21,0,20,0,20,0,21,0,21,0,20,0,21,0,22,0,21,0,20,0, +20,0,20,0,21,0,20,0,20,0,20,0,20,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0, +21,0,20,0,21,0,20,0,20,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0, +21,0,21,0,22,0,22,0,21,0,21,0,23,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0, +22,0,22,0,22,0,21,0,22,0,22,0,21,0,21,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0, +21,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0,21,0,21,0,22,0,22,0,22,0,23,0,22,0,22,0, +23,0,23,0,23,0,23,0,22,0,22,0,23,0,23,0,23,0,22,0,23,0,24,0,22,0,22,0,23,0,23,0, +23,0,23,0,22,0,22,0,23,0,22,0,23,0,23,0,22,0,23,0,24,0,23,0,22,0,22,0,22,0,22,0, +23,0,24,0,23,0,23,0,23,0,24,0,24,0,24,0,24,0,24,0,23,0,22,0,24,0,24,0,23,0,24,0, +24,0,23,0,24,0,24,0,23,0,24,0,23,0,24,0,23,0,23,0,24,0,24,0,23,0,23,0,23,0,23,0, +24,0,24,0,23,0,24,0,23,0,23,0,24,0,23,0,24,0,24,0,24,0,24,0,25,0,23,0,24,0,24,0, +24,0,25,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,23,0,24,0,24,0,24,0,24,0,25,0,25,0, +24,0,24,0,24,0,24,0,24,0,25,0,24,0,24,0,24,0,25,0,25,0,24,0,24,0,24,0,24,0,24,0, +25,0,25,0,25,0,24,0,24,0,25,0,24,0,23,0,25,0,25,0,24,0,24,0,24,0,25,0,25,0,25,0, +25,0,26,0,25,0,25,0,25,0,25,0,25,0,24,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0, +25,0,25,0,25,0,25,0,25,0,24,0,25,0,26,0,26,0,25,0,24,0,25,0,25,0,25,0,25,0,25,0, +25,0,26,0,26,0,25,0,25,0,26,0,25,0,26,0,26,0,25,0,26,0,25,0,25,0,25,0,25,0,25,0, +26,0,24,0,24,0,26,0,25,0,25,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0, +26,0,26,0,26,0,26,0,25,0,26,0,27,0,26,0,25,0,26,0,27,0,27,0,27,0,26,0,26,0,26,0, +27,0,26,0,26,0,26,0,27,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,25,0,26,0, +27,0,26,0,27,0,27,0,26,0,27,0,26,0,26,0,27,0,26,0,26,0,27,0,27,0,27,0,27,0,27,0, +28,0,28,0,27,0,27,0,27,0,27,0,27,0,28,0,27,0,26,0,26,0,27,0,27,0,27,0,27,0,27,0, +27,0,27,0,28,0,28,0,27,0,27,0,28,0,28,0,27,0,26,0,27,0,27,0,27,0,27,0,28,0,28,0, +27,0,27,0,28,0,27,0,27,0,28,0,28,0,28,0,28,0,28,0,29,0,27,0,27,0,29,0,28,0,27,0, +28,0,28,0,27,0,28,0,28,0,29,0,28,0,28,0,28,0,28,0,28,0,29,0,28,0,28,0,29,0,28,0, +28,0,29,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,29,0,28,0,28,0,28,0,29,0,29,0,29,0, +29,0,29,0,29,0,28,0,29,0,29,0,29,0,29,0,28,0,29,0,29,0,28,0,29,0,30,0,29,0,29,0, +29,0,29,0,30,0,29,0,29,0,29,0,29,0,29,0,30,0,29,0,28,0,28,0,29,0,30,0,29,0,29,0, +30,0,29,0,29,0,29,0,29,0,30,0,30,0,30,0,29,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, +30,0,29,0,29,0,30,0,30,0,30,0,30,0,30,0,31,0,30,0,29,0,30,0,31,0,30,0,30,0,30,0, +29,0,29,0,31,0,31,0,30,0,30,0,30,0,31,0,30,0,30,0,30,0,31,0,31,0,30,0,30,0,31,0, +31,0,30,0,30,0,31,0,30,0,31,0,31,0,31,0,30,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0, +31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,32,0,31,0,31,0,32,0,31,0, +30,0,31,0,32,0,31,0,32,0,32,0,31,0,31,0,31,0,32,0,31,0,31,0,32,0,32,0,31,0,32,0, +31,0,31,0,32,0,32,0,32,0,32,0,31,0,31,0,32,0,32,0,32,0,31,0,31,0,32,0,32,0,32,0, +32,0,32,0,32,0,33,0,32,0,32,0,33,0,33,0,32,0,31,0,32,0,33,0,33,0,32,0,32,0,33,0, +33,0,33,0,32,0,32,0,33,0,32,0,32,0,32,0,32,0,32,0,32,0,33,0,33,0,32,0,32,0,33,0, +32,0,33,0,33,0,33,0,32,0,33,0,33,0,34,0,34,0,34,0,34,0,33,0,33,0,33,0,33,0,33,0, +33,0,33,0,33,0,33,0,33,0,34,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,34,0, +34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,33,0,34,0,34,0,33,0,33,0,34,0,34,0, +34,0,34,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0,34,0,34,0,35,0,35,0,35,0,35,0, +35,0,35,0,35,0,34,0,35,0,35,0,35,0,35,0,35,0,34,0,34,0,34,0,34,0,35,0,35,0,34,0, +35,0,35,0,35,0,34,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,36,0,36,0,35,0, +35,0,36,0,35,0,35,0,35,0,36,0,36,0,35,0,36,0,36,0,35,0,35,0,36,0,36,0,36,0,36,0, +36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,35,0,36,0,36,0,36,0,36,0,37,0,37,0,37,0, +36,0,35,0,36,0,36,0,36,0,36,0,36,0,36,0,37,0,37,0,36,0,37,0,36,0,36,0,36,0,37,0, +37,0,36,0,36,0,37,0,37,0,37,0,36,0,36,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0, +37,0,37,0,37,0,37,0,37,0,36,0,37,0,37,0,36,0,37,0,38,0,37,0,37,0,37,0,38,0,37,0, +37,0,38,0,38,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,38,0,38,0,38,0,38,0,37,0,37,0, +37,0,37,0,37,0,37,0,37,0,37,0,38,0,37,0,37,0,37,0,38,0,38,0,38,0,37,0,37,0,38,0, +37,0,37,0,37,0,38,0,38,0,38,0,38,0,38,0,37,0,37,0,37,0,37,0,38,0,38,0,37,0,37,0, +38,0,38,0,37,0,37,0,37,0,38,0,38,0,38,0,38,0,38,0,37,0,37,0,38,0,38,0,38,0,38,0, +38,0,38,0,37,0,37,0,38,0,38,0,38,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,37,0,37,0, +37,0,37,0,37,0,38,0,38,0,37,0,37,0,37,0,38,0,37,0,37,0,38,0,38,0,38,0,38,0,38,0, +37,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,38,0,37,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/stone4.pcm b/src/client/sound/data/stone4.pcm new file mode 100755 index 0000000..354ec0c --- /dev/null +++ b/src/client/sound/data/stone4.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_stone4[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,244,255,226,255,210,255,196,255,180,255,166,255,161,255,162,255, +164,255,167,255,163,255,154,255,152,255,161,255,171,255,175,255,181,255,197,255,216,255,232,255,246,255,4,0,18,0,26,0, +22,0,23,0,36,0,41,0,33,0,35,0,43,0,37,0,21,0,8,0,254,255,241,255,229,255,224,255,213,255,191,255, +192,255,227,255,239,255,205,255,168,255,136,255,100,255,104,255,167,255,220,255,217,255,198,255,207,255,215,255,197,255,200,255, +250,255,43,0,59,0,20,0,145,255,239,254,198,254,97,255,147,0,12,2,164,3,86,5,193,6,22,7,113,6,8,6, +109,6,65,7,239,8,167,12,46,18,137,23,77,27,210,29,149,31,51,32,246,31,110,32,167,34,92,38,151,42,40,46, +23,48,7,48,67,46,226,43,253,41,110,40,196,38,100,37,253,35,251,32,226,27,31,22,38,17,249,12,251,8,188,5, +57,4,114,3,113,1,80,254,105,251,215,248,194,245,213,241,228,237,64,235,224,233,125,232,220,230,191,229,232,228,78,227, +171,224,129,221,56,218,177,214,219,210,59,207,80,204,228,201,176,199,42,198,225,197,70,198,64,198,178,197,29,197,36,196, +64,194,97,192,254,191,205,192,129,193,158,194,139,197,44,201,112,203,39,205,241,207,10,211,82,213,47,215,64,217,123,219, +6,221,88,221,206,221,58,223,204,223,26,223,88,223,169,224,33,225,162,224,34,224,169,223,221,222,135,221,239,219,175,218, +200,217,94,217,32,218,199,219,209,221,146,224,144,227,26,230,182,232,40,235,213,236,239,238,31,242,94,245,190,248,242,252, +148,1,135,6,220,11,6,17,109,22,158,28,97,34,222,38,76,43,168,48,124,54,29,60,141,65,6,71,74,76,225,80, +165,84,130,87,196,89,43,92,117,94,127,95,85,95,180,94,139,93,231,91,89,90,230,88,39,87,8,85,152,82,104,79, +240,74,190,69,176,64,159,59,132,54,128,49,175,43,232,36,4,30,151,22,125,14,45,7,201,0,136,250,74,245,93,241, +35,237,96,232,138,228,222,225,102,223,208,220,227,218,30,218,60,217,70,215,189,213,155,213,173,213,158,213,46,214,77,215, +123,216,17,217,173,216,251,215,128,215,56,215,131,215,61,216,13,217,125,218,242,219,80,220,136,220,18,221,29,221,150,221, +244,222,160,223,173,223,29,224,168,224,117,225,83,226,111,226,232,226,195,228,148,230,5,231,110,230,82,230,105,231,91,231, +12,229,101,228,216,230,8,232,23,231,130,231,138,232,253,231,134,231,223,231,239,231,172,232,89,234,109,235,69,236,178,237, +209,238,112,239,169,240,236,242,226,245,87,249,68,253,125,1,164,5,109,9,27,13,39,17,135,21,222,25,213,29,81,33, +202,36,147,40,6,44,248,46,127,50,112,54,22,57,224,58,75,61,243,62,247,62,115,63,116,64,107,64,55,64,67,64, +136,63,92,62,233,60,207,58,2,57,97,55,152,52,126,49,233,46,135,43,105,39,173,35,154,31,66,27,214,23,94,20, +238,15,143,11,150,7,176,3,195,255,122,251,141,247,206,244,121,242,244,239,124,237,18,235,3,233,130,231,239,229,50,228, +252,226,103,226,24,226,215,225,107,225,44,225,169,225,47,226,34,226,61,226,179,226,36,227,183,227,109,228,86,229,142,230, +198,231,88,233,95,235,155,236,48,237,148,238,81,240,97,241,96,242,181,243,225,244,193,245,65,246,189,246,225,247,226,248, +42,249,251,249,16,251,240,250,161,250,41,251,58,251,150,250,204,250,37,252,115,253,93,254,146,255,33,1,121,2,98,3, +31,4,21,5,5,6,140,6,66,7,108,8,87,9,218,9,35,10,57,10,97,10,133,10,107,10,123,10,249,10,122,11, +207,11,89,12,243,12,11,13,50,13,13,14,176,14,148,14,137,14,170,14,118,14,14,14,194,13,147,13,108,13,50,13, +221,12,132,12,29,12,159,11,56,11,211,10,82,10,227,9,104,9,216,8,152,8,102,8,4,8,16,8,77,8,188,7, +184,6,57,6,184,5,84,4,233,2,119,2,42,2,87,1,173,0,105,0,42,0,238,255,208,255,173,255,104,255,42,255, +236,254,110,254,4,254,3,254,17,254,10,254,24,254,22,254,208,253,78,253,233,252,210,252,155,252,11,252,112,251,230,250, +63,250,148,249,50,249,21,249,253,248,204,248,88,248,173,247,43,247,186,246,21,246,116,245,254,244,157,244,56,244,186,243, +68,243,215,242,80,242,254,241,3,242,240,241,206,241,32,242,201,242,93,243,1,244,252,244,242,245,105,246,155,246,32,247, +14,248,249,248,234,249,57,251,132,252,47,253,78,253,86,253,128,253,190,253,39,254,236,254,216,255,134,0,217,0,242,0, +0,1,16,1,30,1,82,1,213,1,141,2,16,3,39,3,61,3,111,3,87,3,41,3,28,3,244,2,244,2,64,3, +85,3,39,3,9,3,242,2,213,2,201,2,176,2,102,2,65,2,155,2,197,2,50,2,216,1,61,2,111,2,60,2, +119,2,9,3,80,3,97,3,122,3,119,3,97,3,128,3,169,3,101,3,225,2,155,2,104,2,251,1,130,1,32,1, +242,0,10,1,224,0,13,0,32,255,147,254,3,254,30,253,65,252,192,251,148,251,125,251,6,251,69,250,11,250,76,250, +56,250,254,249,27,250,22,250,157,249,30,249,186,248,30,248,115,247,52,247,62,247,47,247,44,247,86,247,91,247,76,247, +108,247,115,247,56,247,27,247,43,247,49,247,80,247,180,247,71,248,244,248,196,249,155,250,59,251,174,251,51,252,198,252, +112,253,57,254,196,254,12,255,154,255,77,0,167,0,248,0,147,1,50,2,206,2,76,3,67,3,42,3,136,3,149,3, +6,3,202,2,9,3,32,3,221,2,106,2,32,2,11,2,191,1,44,1,138,0,213,255,50,255,201,254,89,254,182,253, +54,253,15,253,3,253,195,252,44,252,107,251,14,251,11,251,188,250,76,250,55,250,57,250,255,249,145,249,12,249,201,248, +231,248,234,248,169,248,178,248,53,249,138,249,82,249,6,249,9,249,32,249,24,249,26,249,53,249,91,249,150,249,202,249, +209,249,190,249,180,249,218,249,37,250,100,250,196,250,53,251,86,251,165,251,104,252,231,252,77,253,55,254,20,255,93,255, +159,255,88,0,32,1,142,1,19,2,227,2,154,3,71,4,243,4,88,5,174,5,54,6,176,6,10,7,133,7,55,8, +223,8,92,9,174,9,191,9,193,9,227,9,198,9,102,9,85,9,148,9,155,9,90,9,33,9,240,8,160,8,124,8, +139,8,105,8,81,8,174,8,229,8,131,8,79,8,166,8,184,8,138,8,221,8,107,9,244,9,188,10,54,11,18,11, +21,11,120,11,153,11,71,11,24,11,109,11,207,11,253,11,54,12,83,12,29,12,166,11,245,10,52,10,121,9,158,8, +217,7,124,7,21,7,12,6,240,4,96,4,178,3,156,2,201,1,39,1,65,0,55,255,44,254,52,253,103,252,198,251, +102,251,19,251,148,250,18,250,140,249,245,248,112,248,1,248,188,247,195,247,230,247,229,247,231,247,34,248,67,248,45,248, +120,248,37,249,182,249,65,250,180,250,200,250,217,250,39,251,89,251,111,251,221,251,159,252,43,253,83,253,103,253,128,253, +134,253,109,253,57,253,52,253,130,253,185,253,129,253,86,253,167,253,203,253,113,253,102,253,195,253,204,253,122,253,84,253, +122,253,116,253,52,253,110,253,244,253,254,253,239,253,87,254,199,254,187,254,118,254,170,254,51,255,83,255,76,255,176,255, +33,0,34,0,213,255,167,255,176,255,166,255,151,255,209,255,78,0,194,0,216,0,190,0,242,0,80,1,120,1,155,1, +17,2,196,2,68,3,125,3,222,3,113,4,198,4,235,4,106,5,35,6,113,6,84,6,52,6,37,6,20,6,10,6, +74,6,202,6,221,6,135,6,112,6,84,6,199,5,65,5,29,5,28,5,240,4,160,4,118,4,116,4,70,4,200,3, +83,3,65,3,23,3,78,2,104,1,212,0,84,0,191,255,35,255,173,254,119,254,70,254,221,253,53,253,135,252,14,252, +142,251,218,250,75,250,249,249,157,249,68,249,31,249,9,249,213,248,190,248,202,248,187,248,208,248,51,249,115,249,154,249, +13,250,168,250,41,251,185,251,142,252,113,253,26,254,207,254,183,255,73,0,87,0,85,0,101,0,110,0,136,0,178,0, +222,0,36,1,104,1,99,1,21,1,162,0,29,0,163,255,57,255,196,254,100,254,69,254,69,254,68,254,74,254,79,254, +68,254,53,254,47,254,36,254,32,254,78,254,166,254,218,254,205,254,213,254,19,255,38,255,27,255,115,255,241,255,49,0, +127,0,215,0,229,0,222,0,239,0,227,0,185,0,171,0,217,0,10,1,0,1,249,0,25,1,30,1,254,0,201,0, +136,0,89,0,58,0,22,0,244,255,220,255,211,255,163,255,67,255,38,255,45,255,228,254,167,254,193,254,232,254,1,255, +241,254,158,254,85,254,45,254,242,253,182,253,166,253,186,253,195,253,185,253,197,253,216,253,216,253,230,253,245,253,227,253, +225,253,12,254,50,254,47,254,49,254,116,254,228,254,46,255,97,255,214,255,113,0,211,0,16,1,89,1,141,1,162,1, +192,1,244,1,65,2,157,2,227,2,12,3,34,3,57,3,115,3,174,3,179,3,185,3,255,3,74,4,132,4,235,4, +77,5,103,5,143,5,208,5,188,5,136,5,131,5,103,5,47,5,36,5,32,5,226,4,143,4,109,4,117,4,74,4, +206,3,108,3,55,3,190,2,25,2,189,1,147,1,95,1,16,1,178,0,164,0,213,0,156,0,47,0,46,0,99,0, +108,0,87,0,78,0,106,0,115,0,65,0,26,0,63,0,136,0,186,0,217,0,251,0,29,1,55,1,49,1,34,1, +93,1,178,1,197,1,195,1,184,1,115,1,31,1,213,0,144,0,106,0,80,0,37,0,247,255,211,255,159,255,51,255, +177,254,100,254,75,254,30,254,206,253,176,253,193,253,181,253,159,253,128,253,55,253,0,253,204,252,107,252,22,252,202,251, +118,251,52,251,235,250,197,250,202,250,158,250,114,250,120,250,115,250,136,250,189,250,205,250,214,250,211,250,145,250,94,250, +113,250,114,250,86,250,147,250,2,251,8,251,221,250,245,250,7,251,204,250,150,250,179,250,241,250,19,251,88,251,227,251, +93,252,148,252,177,252,220,252,58,253,182,253,13,254,100,254,10,255,144,255,159,255,196,255,42,0,114,0,198,0,60,1, +168,1,14,2,88,2,148,2,233,2,37,3,73,3,143,3,248,3,99,4,146,4,135,4,158,4,203,4,192,4,169,4, +229,4,58,5,33,5,225,4,232,4,195,4,79,4,5,4,224,3,192,3,157,3,82,3,27,3,29,3,222,2,72,2, +241,1,250,1,199,1,59,1,231,0,235,0,224,0,132,0,33,0,54,0,120,0,100,0,65,0,75,0,76,0,14,0, +122,255,13,255,28,255,13,255,184,254,178,254,233,254,229,254,151,254,70,254,30,254,236,253,124,253,28,253,27,253,34,253, +197,252,90,252,65,252,48,252,251,251,220,251,244,251,41,252,55,252,44,252,91,252,133,252,95,252,70,252,111,252,179,252, +242,252,39,253,130,253,7,254,102,254,143,254,184,254,245,254,43,255,72,255,131,255,224,255,21,0,90,0,242,0,130,1, +224,1,57,2,148,2,222,2,232,2,210,2,253,2,69,3,93,3,79,3,51,3,32,3,6,3,178,2,100,2,108,2, +156,2,184,2,171,2,132,2,94,2,46,2,225,1,144,1,95,1,80,1,91,1,128,1,166,1,178,1,180,1,168,1, +105,1,13,1,191,0,140,0,136,0,156,0,157,0,175,0,208,0,197,0,185,0,217,0,220,0,174,0,150,0,175,0, +200,0,166,0,109,0,112,0,133,0,122,0,127,0,152,0,163,0,161,0,142,0,135,0,162,0,190,0,203,0,216,0, +249,0,28,1,21,1,241,0,220,0,232,0,254,0,250,0,230,0,226,0,221,0,219,0,186,0,104,0,98,0,161,0, +147,0,112,0,148,0,183,0,150,0,49,0,207,255,178,255,161,255,114,255,98,255,124,255,124,255,59,255,221,254,181,254, +186,254,140,254,51,254,23,254,77,254,131,254,111,254,64,254,90,254,161,254,195,254,222,254,30,255,105,255,189,255,28,0, +105,0,169,0,235,0,34,1,67,1,102,1,137,1,158,1,166,1,156,1,161,1,209,1,236,1,212,1,192,1,188,1, +170,1,121,1,57,1,29,1,34,1,34,1,11,1,250,0,29,1,43,1,225,0,189,0,224,0,220,0,181,0,147,0, +148,0,178,0,142,0,83,0,99,0,115,0,87,0,64,0,79,0,143,0,183,0,172,0,188,0,248,0,43,1,36,1, +22,1,81,1,151,1,196,1,11,2,74,2,104,2,107,2,101,2,150,2,201,2,203,2,242,2,45,3,67,3,57,3, +245,2,186,2,176,2,131,2,96,2,135,2,162,2,144,2,128,2,141,2,147,2,108,2,69,2,66,2,41,2,204,1, +81,1,9,1,228,0,148,0,52,0,248,255,197,255,127,255,23,255,180,254,125,254,51,254,184,253,76,253,21,253,250,252, +214,252,192,252,222,252,14,253,38,253,50,253,54,253,61,253,66,253,39,253,15,253,27,253,51,253,74,253,101,253,130,253, +160,253,172,253,171,253,176,253,179,253,192,253,233,253,10,254,33,254,80,254,127,254,140,254,147,254,177,254,213,254,241,254, +18,255,49,255,79,255,131,255,153,255,126,255,148,255,209,255,216,255,206,255,1,0,109,0,204,0,223,0,215,0,246,0, +20,1,21,1,10,1,25,1,77,1,107,1,81,1,66,1,107,1,132,1,79,1,21,1,30,1,47,1,10,1,198,0, +152,0,167,0,210,0,226,0,247,0,53,1,117,1,130,1,106,1,106,1,150,1,201,1,237,1,23,2,99,2,188,2, +238,2,16,3,73,3,124,3,155,3,174,3,192,3,233,3,26,4,64,4,123,4,200,4,11,5,57,5,46,5,255,4, +229,4,180,4,103,4,49,4,249,3,186,3,121,3,13,3,173,2,102,2,228,1,86,1,228,0,111,0,25,0,199,255, +87,255,7,255,169,254,23,254,152,253,53,253,234,252,175,252,84,252,248,251,196,251,137,251,62,251,16,251,248,250,221,250, +216,250,253,250,31,251,47,251,55,251,62,251,108,251,185,251,246,251,41,252,85,252,124,252,169,252,199,252,208,252,199,252, +194,252,224,252,3,253,35,253,77,253,105,253,132,253,163,253,171,253,189,253,206,253,199,253,198,253,197,253,197,253,210,253, +206,253,194,253,193,253,227,253,43,254,74,254,62,254,57,254,49,254,65,254,96,254,113,254,172,254,240,254,25,255,96,255, +156,255,195,255,1,0,50,0,92,0,134,0,149,0,185,0,237,0,28,1,111,1,202,1,26,2,96,2,109,2,135,2, +233,2,46,3,56,3,77,3,142,3,232,3,46,4,81,4,109,4,134,4,136,4,119,4,101,4,78,4,30,4,223,3, +162,3,115,3,67,3,247,2,194,2,197,2,166,2,68,2,236,1,176,1,107,1,11,1,175,0,146,0,148,0,94,0, +1,0,195,255,170,255,124,255,32,255,227,254,220,254,185,254,108,254,58,254,35,254,255,253,209,253,161,253,131,253,154,253, +192,253,180,253,160,253,172,253,178,253,195,253,231,253,230,253,214,253,214,253,211,253,207,253,189,253,175,253,200,253,203,253, +173,253,153,253,105,253,36,253,255,252,234,252,243,252,34,253,70,253,107,253,169,253,230,253,254,253,254,253,14,254,57,254, +125,254,207,254,17,255,93,255,182,255,234,255,33,0,115,0,161,0,168,0,173,0,216,0,40,1,82,1,95,1,137,1, +175,1,184,1,166,1,145,1,172,1,225,1,253,1,23,2,73,2,127,2,142,2,138,2,173,2,223,2,246,2,5,3, +23,3,44,3,47,3,31,3,36,3,56,3,50,3,13,3,227,2,223,2,228,2,189,2,164,2,174,2,156,2,121,2, +89,2,41,2,10,2,1,2,227,1,215,1,1,2,14,2,230,1,196,1,162,1,118,1,77,1,16,1,234,0,9,1, +48,1,62,1,70,1,69,1,55,1,31,1,248,0,197,0,145,0,117,0,124,0,163,0,181,0,137,0,83,0,49,0, +252,255,189,255,134,255,105,255,95,255,50,255,255,254,230,254,165,254,76,254,20,254,3,254,24,254,25,254,13,254,47,254, +50,254,1,254,253,253,27,254,52,254,76,254,101,254,149,254,205,254,232,254,224,254,198,254,210,254,3,255,41,255,81,255, +114,255,114,255,104,255,86,255,67,255,55,255,24,255,254,254,238,254,202,254,192,254,232,254,247,254,224,254,229,254,20,255, +42,255,7,255,235,254,8,255,79,255,162,255,229,255,19,0,68,0,104,0,87,0,56,0,76,0,111,0,105,0,111,0, +161,0,197,0,218,0,230,0,219,0,225,0,241,0,235,0,251,0,23,1,12,1,244,0,205,0,171,0,189,0,199,0, +182,0,190,0,183,0,147,0,93,0,1,0,202,255,203,255,171,255,103,255,27,255,221,254,202,254,162,254,87,254,78,254, +126,254,138,254,131,254,142,254,149,254,147,254,140,254,126,254,154,254,228,254,255,254,245,254,21,255,76,255,119,255,140,255, +126,255,119,255,128,255,105,255,66,255,57,255,79,255,108,255,139,255,171,255,185,255,188,255,183,255,137,255,74,255,37,255, +11,255,247,254,238,254,250,254,33,255,67,255,80,255,81,255,78,255,98,255,112,255,96,255,115,255,157,255,149,255,111,255, +89,255,99,255,139,255,180,255,221,255,25,0,64,0,48,0,28,0,40,0,54,0,68,0,76,0,50,0,40,0,57,0, +57,0,64,0,74,0,49,0,9,0,253,255,23,0,36,0,12,0,20,0,52,0,70,0,112,0,158,0,194,0,242,0, +9,1,33,1,69,1,65,1,48,1,39,1,18,1,238,0,181,0,143,0,138,0,144,0,181,0,206,0,197,0,191,0, +130,0,59,0,60,0,29,0,217,255,212,255,237,255,12,0,33,0,18,0,8,0,233,255,171,255,151,255,137,255,101,255, +86,255,61,255,33,255,42,255,33,255,6,255,7,255,246,254,195,254,152,254,89,254,245,253,156,253,86,253,34,253,24,253, +39,253,32,253,243,252,189,252,158,252,120,252,61,252,23,252,24,252,61,252,122,252,179,252,228,252,12,253,24,253,9,253, +11,253,80,253,183,253,232,253,17,254,129,254,249,254,89,255,201,255,41,0,93,0,136,0,178,0,219,0,32,1,141,1, +26,2,172,2,34,3,110,3,133,3,121,3,125,3,142,3,153,3,185,3,240,3,54,4,137,4,204,4,244,4,250,4, +220,4,210,4,211,4,167,4,115,4,93,4,90,4,106,4,126,4,137,4,135,4,100,4,53,4,17,4,235,3,193,3, +146,3,95,3,73,3,74,3,20,3,185,2,160,2,143,2,41,2,194,1,146,1,128,1,132,1,111,1,76,1,84,1, +70,1,241,0,141,0,72,0,49,0,41,0,19,0,9,0,1,0,224,255,183,255,169,255,193,255,199,255,155,255,127,255, +141,255,158,255,149,255,137,255,192,255,34,0,91,0,106,0,94,0,80,0,80,0,39,0,234,255,200,255,163,255,122,255, +93,255,65,255,39,255,244,254,156,254,68,254,27,254,55,254,83,254,42,254,247,253,221,253,185,253,135,253,68,253,18,253, +52,253,113,253,106,253,70,253,79,253,117,253,142,253,148,253,174,253,21,254,158,254,218,254,215,254,232,254,19,255,62,255, +74,255,66,255,102,255,137,255,90,255,19,255,246,254,223,254,198,254,199,254,209,254,224,254,250,254,27,255,74,255,119,255, +133,255,158,255,232,255,43,0,41,0,241,255,213,255,234,255,236,255,226,255,13,0,96,0,157,0,158,0,133,0,145,0, +158,0,128,0,103,0,131,0,182,0,177,0,105,0,61,0,72,0,69,0,22,0,238,255,4,0,38,0,9,0,213,255, +164,255,111,255,82,255,70,255,59,255,41,255,5,255,2,255,33,255,25,255,224,254,148,254,100,254,101,254,81,254,54,254, +71,254,85,254,82,254,81,254,55,254,22,254,9,254,23,254,71,254,125,254,167,254,221,254,37,255,91,255,107,255,142,255, +217,255,15,0,57,0,134,0,213,0,0,1,249,0,201,0,176,0,186,0,176,0,149,0,161,0,228,0,37,1,41,1, +254,0,226,0,229,0,205,0,148,0,144,0,196,0,251,0,59,1,104,1,97,1,84,1,76,1,51,1,40,1,53,1, +66,1,86,1,112,1,108,1,51,1,243,0,229,0,248,0,26,1,91,1,154,1,170,1,179,1,186,1,153,1,116,1, +117,1,117,1,103,1,103,1,114,1,113,1,70,1,1,1,205,0,159,0,120,0,120,0,127,0,130,0,156,0,187,0, +235,0,60,1,113,1,128,1,146,1,152,1,129,1,88,1,67,1,97,1,139,1,166,1,200,1,223,1,220,1,199,1, +140,1,70,1,37,1,8,1,215,0,197,0,212,0,195,0,135,0,84,0,45,0,250,255,188,255,123,255,67,255,7,255, +182,254,116,254,64,254,244,253,170,253,92,253,254,252,214,252,196,252,128,252,87,252,103,252,102,252,76,252,61,252,82,252, +125,252,139,252,107,252,56,252,37,252,46,252,255,251,175,251,150,251,164,251,206,251,242,251,212,251,180,251,202,251,233,251, +14,252,55,252,113,252,208,252,30,253,96,253,200,253,60,254,191,254,72,255,179,255,35,0,163,0,11,1,88,1,180,1, +73,2,212,2,15,3,76,3,174,3,238,3,255,3,245,3,20,4,132,4,193,4,142,4,96,4,99,4,86,4,13,4, +179,3,168,3,229,3,253,3,186,3,112,3,103,3,91,3,14,3,180,2,126,2,84,2,16,2,208,1,181,1,118,1, +252,0,127,0,10,0,167,255,77,255,223,254,137,254,41,254,147,253,67,253,63,253,19,253,211,252,178,252,200,252,19,253, +37,253,231,252,220,252,21,253,77,253,125,253,181,253,251,253,48,254,51,254,68,254,135,254,176,254,190,254,226,254,244,254, +247,254,37,255,104,255,164,255,199,255,197,255,239,255,84,0,118,0,59,0,25,0,73,0,127,0,123,0,123,0,183,0, +252,0,36,1,64,1,73,1,43,1,231,0,163,0,146,0,137,0,83,0,42,0,39,0,6,0,208,255,170,255,125,255, +86,255,71,255,65,255,97,255,143,255,136,255,109,255,106,255,119,255,143,255,166,255,184,255,215,255,1,0,45,0,88,0, +132,0,177,0,234,0,79,1,201,1,41,2,135,2,231,2,31,3,40,3,58,3,141,3,224,3,227,3,208,3,216,3, +219,3,187,3,117,3,57,3,34,3,5,3,233,2,220,2,197,2,175,2,128,2,43,2,238,1,203,1,161,1,133,1, +110,1,51,1,241,0,216,0,188,0,110,0,45,0,43,0,67,0,62,0,20,0,13,0,30,0,226,255,130,255,60,255, +12,255,18,255,37,255,17,255,6,255,6,255,254,254,230,254,163,254,117,254,127,254,146,254,154,254,132,254,104,254,108,254, +87,254,37,254,16,254,28,254,46,254,28,254,248,253,1,254,5,254,226,253,197,253,183,253,192,253,207,253,183,253,138,253, +126,253,151,253,163,253,143,253,132,253,144,253,168,253,200,253,231,253,44,254,168,254,17,255,59,255,82,255,176,255,69,0, +145,0,181,0,39,1,200,1,71,2,99,2,70,2,131,2,215,2,164,2,77,2,103,2,180,2,172,2,93,2,54,2, +59,2,30,2,185,1,93,1,128,1,201,1,189,1,177,1,186,1,141,1,68,1,0,1,187,0,99,0,250,255,182,255, +134,255,40,255,179,254,111,254,124,254,104,254,230,253,142,253,132,253,78,253,6,253,220,252,214,252,2,253,24,253,1,253, +19,253,93,253,167,253,214,253,28,254,135,254,196,254,227,254,43,255,130,255,187,255,219,255,24,0,116,0,154,0,148,0, +158,0,161,0,156,0,153,0,169,0,226,0,255,0,13,1,90,1,171,1,215,1,241,1,11,2,92,2,196,2,22,3, +176,3,142,4,62,5,179,5,25,6,151,6,30,7,114,7,200,7,110,8,17,9,70,9,64,9,77,9,65,9,210,8, +24,8,99,7,218,6,65,6,89,5,66,4,60,3,81,2,94,1,77,0,88,255,162,254,239,253,37,253,96,252,164,251, +242,250,75,250,168,249,31,249,207,248,173,248,147,248,132,248,150,248,218,248,76,249,168,249,235,249,112,250,30,251,146,251, +203,251,255,251,109,252,253,252,78,253,138,253,20,254,184,254,39,255,95,255,158,255,2,0,63,0,33,0,1,0,38,0, +78,0,57,0,15,0,13,0,36,0,29,0,249,255,246,255,10,0,248,255,207,255,193,255,216,255,244,255,219,255,156,255, +99,255,51,255,14,255,199,254,95,254,52,254,47,254,31,254,54,254,71,254,47,254,29,254,252,253,217,253,213,253,221,253, +246,253,250,253,235,253,6,254,17,254,235,253,211,253,215,253,248,253,3,254,219,253,246,253,82,254,138,254,178,254,222,254, +26,255,120,255,188,255,237,255,34,0,51,0,59,0,77,0,73,0,66,0,44,0,6,0,0,0,245,255,193,255,139,255, +106,255,77,255,32,255,240,254,245,254,33,255,38,255,250,254,236,254,23,255,59,255,55,255,54,255,94,255,143,255,158,255, +161,255,173,255,175,255,166,255,163,255,162,255,163,255,152,255,132,255,146,255,196,255,247,255,21,0,35,0,69,0,105,0, +90,0,59,0,87,0,166,0,223,0,236,0,254,0,23,1,17,1,4,1,2,1,14,1,62,1,96,1,101,1,154,1, +232,1,13,2,36,2,58,2,81,2,125,2,133,2,84,2,56,2,66,2,52,2,246,1,176,1,140,1,106,1,37,1, +187,0,39,0,149,255,47,255,213,254,139,254,88,254,25,254,253,253,21,254,22,254,247,253,185,253,110,253,105,253,131,253, +102,253,77,253,121,253,206,253,17,254,51,254,97,254,156,254,206,254,14,255,82,255,167,255,21,0,93,0,138,0,206,0, +5,1,51,1,117,1,193,1,7,2,13,2,207,1,196,1,228,1,204,1,149,1,153,1,229,1,45,2,63,2,91,2, +198,2,83,3,180,3,3,4,173,4,176,5,159,6,88,7,249,7,155,8,51,9,129,9,125,9,110,9,83,9,230,8, +9,8,236,6,209,5,189,4,148,3,95,2,63,1,66,0,78,255,68,254,68,253,133,252,251,251,134,251,46,251,232,250, +182,250,195,250,229,250,240,250,36,251,135,251,228,251,60,252,116,252,153,252,232,252,46,253,93,253,143,253,178,253,233,253, +30,254,11,254,250,253,246,253,199,253,192,253,227,253,246,253,27,254,55,254,62,254,95,254,131,254,163,254,178,254,164,254, +203,254,34,255,82,255,121,255,183,255,244,255,45,0,82,0,104,0,133,0,182,0,255,0,51,1,51,1,45,1,62,1, +79,1,60,1,37,1,67,1,91,1,45,1,225,0,159,0,132,0,132,0,108,0,80,0,77,0,78,0,81,0,66,0, +30,0,13,0,21,0,70,0,132,0,126,0,84,0,76,0,87,0,97,0,76,0,50,0,84,0,99,0,30,0,233,255, +238,255,239,255,209,255,182,255,237,255,92,0,111,0,25,0,216,255,226,255,1,0,0,0,248,255,56,0,160,0,191,0, +167,0,185,0,224,0,213,0,183,0,179,0,196,0,207,0,179,0,127,0,114,0,146,0,169,0,175,0,172,0,144,0, +107,0,93,0,59,0,242,255,209,255,232,255,247,255,235,255,214,255,188,255,150,255,93,255,50,255,57,255,78,255,90,255, +105,255,106,255,84,255,64,255,60,255,68,255,66,255,56,255,84,255,140,255,144,255,72,255,15,255,44,255,90,255,58,255, +249,254,252,254,43,255,32,255,215,254,182,254,216,254,216,254,151,254,105,254,120,254,135,254,77,254,0,254,12,254,55,254, +8,254,204,253,221,253,7,254,37,254,53,254,68,254,125,254,188,254,210,254,241,254,41,255,102,255,169,255,216,255,244,255, +21,0,48,0,77,0,82,0,50,0,71,0,135,0,133,0,86,0,54,0,41,0,44,0,32,0,30,0,80,0,107,0, +84,0,81,0,86,0,70,0,74,0,84,0,77,0,90,0,114,0,118,0,141,0,190,0,235,0,44,1,129,1,175,1, +192,1,218,1,16,2,74,2,63,2,25,2,62,2,87,2,12,2,170,1,101,1,40,1,210,0,88,0,251,255,189,255, +82,255,195,254,62,254,217,253,156,253,99,253,42,253,17,253,12,253,12,253,21,253,25,253,26,253,43,253,75,253,100,253, +104,253,123,253,182,253,238,253,29,254,90,254,139,254,151,254,132,254,98,254,108,254,165,254,182,254,163,254,210,254,39,255, +71,255,74,255,89,255,103,255,124,255,138,255,132,255,140,255,162,255,173,255,198,255,224,255,202,255,170,255,195,255,220,255, +180,255,118,255,79,255,61,255,65,255,74,255,67,255,73,255,99,255,103,255,88,255,76,255,35,255,232,254,221,254,240,254, +238,254,245,254,21,255,44,255,67,255,89,255,85,255,69,255,65,255,67,255,77,255,102,255,130,255,153,255,187,255,228,255, +243,255,250,255,21,0,59,0,98,0,131,0,164,0,195,0,187,0,160,0,174,0,198,0,204,0,227,0,254,0,11,1, +20,1,11,1,245,0,222,0,184,0,170,0,212,0,1,1,17,1,31,1,65,1,106,1,111,1,92,1,105,1,121,1, +99,1,82,1,91,1,120,1,143,1,120,1,98,1,133,1,132,1,45,1,219,0,202,0,203,0,169,0,129,0,123,0, +114,0,78,0,49,0,30,0,252,255,207,255,203,255,249,255,4,0,215,255,194,255,215,255,239,255,235,255,206,255,194,255, +212,255,230,255,229,255,220,255,237,255,250,255,223,255,221,255,0,0,11,0,4,0,0,0,253,255,4,0,0,0,238,255, +228,255,227,255,230,255,210,255,153,255,107,255,95,255,93,255,88,255,89,255,103,255,125,255,153,255,163,255,153,255,162,255, +172,255,167,255,198,255,230,255,211,255,197,255,205,255,198,255,176,255,153,255,164,255,207,255,202,255,147,255,128,255,157,255, +160,255,113,255,96,255,159,255,234,255,243,255,201,255,199,255,13,0,70,0,72,0,88,0,135,0,139,0,85,0,60,0, +83,0,96,0,103,0,133,0,178,0,208,0,200,0,183,0,196,0,208,0,197,0,203,0,239,0,19,1,42,1,76,1, +107,1,98,1,70,1,67,1,81,1,70,1,28,1,13,1,15,1,231,0,176,0,139,0,117,0,136,0,155,0,131,0, +100,0,56,0,249,255,208,255,176,255,124,255,77,255,62,255,75,255,79,255,66,255,70,255,78,255,55,255,8,255,226,254, +218,254,220,254,198,254,175,254,204,254,6,255,24,255,23,255,53,255,97,255,139,255,170,255,181,255,198,255,207,255,200,255, +241,255,54,0,90,0,100,0,101,0,124,0,170,0,182,0,181,0,207,0,218,0,207,0,197,0,163,0,118,0,117,0, +137,0,130,0,124,0,118,0,78,0,34,0,238,255,159,255,111,255,100,255,98,255,103,255,76,255,30,255,13,255,247,254, +219,254,210,254,219,254,2,255,34,255,16,255,237,254,227,254,248,254,7,255,238,254,242,254,30,255,44,255,37,255,44,255, +45,255,43,255,46,255,48,255,59,255,73,255,61,255,46,255,69,255,114,255,153,255,186,255,209,255,227,255,243,255,4,0, +47,0,90,0,98,0,130,0,189,0,202,0,181,0,179,0,201,0,239,0,13,1,10,1,7,1,34,1,37,1,240,0, +208,0,220,0,227,0,215,0,198,0,200,0,220,0,215,0,191,0,162,0,129,0,108,0,70,0,15,0,22,0,55,0, +41,0,25,0,45,0,63,0,45,0,8,0,252,255,6,0,11,0,255,255,226,255,220,255,239,255,223,255,192,255,176,255, +152,255,133,255,133,255,129,255,125,255,113,255,66,255,20,255,13,255,8,255,244,254,248,254,5,255,246,254,237,254,239,254, +233,254,229,254,212,254,179,254,169,254,179,254,181,254,181,254,186,254,201,254,220,254,225,254,230,254,248,254,5,255,16,255, +42,255,63,255,70,255,85,255,102,255,120,255,152,255,195,255,226,255,234,255,241,255,0,0,249,255,243,255,254,255,240,255, +235,255,0,0,237,255,212,255,233,255,5,0,31,0,48,0,31,0,23,0,53,0,84,0,86,0,71,0,71,0,73,0, +51,0,22,0,5,0,4,0,7,0,251,255,246,255,1,0,247,255,209,255,163,255,144,255,157,255,147,255,115,255,114,255, +141,255,163,255,164,255,150,255,137,255,124,255,114,255,102,255,80,255,79,255,123,255,169,255,186,255,191,255,200,255,209,255, +216,255,220,255,220,255,227,255,234,255,224,255,214,255,221,255,227,255,227,255,242,255,18,0,25,0,0,0,245,255,253,255, +247,255,216,255,183,255,185,255,200,255,181,255,164,255,170,255,184,255,218,255,231,255,216,255,235,255,255,255,237,255,220,255, +199,255,190,255,219,255,233,255,223,255,227,255,222,255,199,255,176,255,136,255,89,255,58,255,39,255,34,255,27,255,0,255, +244,254,243,254,224,254,221,254,226,254,187,254,154,254,153,254,154,254,170,254,176,254,158,254,182,254,220,254,216,254,204,254, +198,254,206,254,243,254,6,255,251,254,6,255,46,255,86,255,100,255,100,255,112,255,113,255,113,255,140,255,154,255,158,255, +189,255,213,255,228,255,2,0,12,0,18,0,60,0,87,0,78,0,83,0,119,0,157,0,174,0,198,0,251,0,26,1, +17,1,14,1,24,1,45,1,60,1,40,1,35,1,79,1,101,1,66,1,22,1,10,1,17,1,251,0,215,0,221,0, +249,0,232,0,179,0,163,0,176,0,158,0,119,0,84,0,58,0,56,0,46,0,24,0,32,0,41,0,31,0,26,0, +13,0,0,0,253,255,237,255,235,255,0,0,17,0,10,0,231,255,221,255,244,255,232,255,202,255,199,255,205,255,212,255, +201,255,171,255,162,255,162,255,147,255,127,255,85,255,54,255,72,255,98,255,103,255,97,255,80,255,61,255,47,255,33,255, +22,255,9,255,1,255,23,255,53,255,57,255,51,255,36,255,17,255,10,255,255,254,245,254,5,255,19,255,12,255,4,255, +7,255,16,255,1,255,238,254,1,255,24,255,28,255,19,255,245,254,1,255,55,255,72,255,74,255,83,255,85,255,111,255, +135,255,136,255,148,255,150,255,154,255,178,255,178,255,172,255,183,255,193,255,224,255,0,0,2,0,20,0,36,0,29,0, +52,0,95,0,103,0,104,0,122,0,125,0,110,0,97,0,84,0,78,0,86,0,98,0,108,0,122,0,140,0,152,0, +150,0,151,0,175,0,200,0,208,0,215,0,244,0,25,1,43,1,46,1,54,1,51,1,38,1,35,1,21,1,242,0, +224,0,224,0,215,0,210,0,202,0,161,0,127,0,118,0,105,0,102,0,95,0,68,0,58,0,56,0,31,0,249,255, +205,255,192,255,196,255,168,255,140,255,122,255,97,255,96,255,86,255,57,255,60,255,60,255,38,255,33,255,31,255,30,255, +27,255,26,255,53,255,62,255,43,255,41,255,37,255,38,255,62,255,63,255,60,255,64,255,63,255,92,255,123,255,117,255, +119,255,133,255,141,255,156,255,162,255,160,255,172,255,194,255,213,255,225,255,235,255,252,255,12,0,19,0,28,0,47,0, +67,0,83,0,89,0,79,0,79,0,82,0,65,0,55,0,66,0,80,0,92,0,101,0,116,0,127,0,114,0,113,0, +124,0,118,0,124,0,147,0,157,0,173,0,197,0,213,0,207,0,178,0,165,0,169,0,171,0,182,0,184,0,174,0, +187,0,207,0,210,0,196,0,176,0,180,0,183,0,153,0,121,0,108,0,111,0,120,0,108,0,74,0,41,0,30,0, +29,0,12,0,241,255,226,255,225,255,227,255,211,255,202,255,206,255,194,255,202,255,232,255,220,255,205,255,221,255,218,255, +207,255,203,255,191,255,190,255,183,255,149,255,133,255,154,255,167,255,155,255,149,255,163,255,178,255,181,255,169,255,154,255, +156,255,182,255,213,255,230,255,234,255,244,255,254,255,0,0,4,0,253,255,239,255,240,255,248,255,238,255,215,255,209,255, +221,255,228,255,232,255,223,255,205,255,214,255,221,255,196,255,185,255,184,255,176,255,180,255,184,255,187,255,202,255,219,255, +237,255,236,255,204,255,198,255,236,255,1,0,241,255,245,255,7,0,8,0,23,0,43,0,38,0,52,0,73,0,60,0, +54,0,45,0,20,0,16,0,3,0,239,255,245,255,239,255,227,255,237,255,246,255,252,255,252,255,237,255,233,255,244,255, +253,255,253,255,3,0,28,0,53,0,58,0,52,0,46,0,64,0,88,0,78,0,65,0,79,0,80,0,67,0,68,0, +71,0,63,0,69,0,92,0,97,0,88,0,95,0,95,0,79,0,73,0,78,0,73,0,66,0,70,0,79,0,92,0, +102,0,83,0,56,0,62,0,77,0,77,0,74,0,71,0,75,0,76,0,62,0,61,0,63,0,56,0,68,0,83,0, +80,0,76,0,83,0,97,0,92,0,64,0,43,0,37,0,42,0,46,0,37,0,42,0,55,0,53,0,52,0,43,0, +25,0,31,0,44,0,51,0,62,0,58,0,37,0,15,0,7,0,1,0,224,255,196,255,194,255,188,255,174,255,146,255, +119,255,129,255,139,255,118,255,112,255,111,255,97,255,91,255,83,255,73,255,78,255,81,255,90,255,122,255,135,255,109,255, +88,255,94,255,105,255,107,255,105,255,116,255,151,255,187,255,196,255,193,255,201,255,219,255,225,255,222,255,236,255,4,0, +21,0,39,0,49,0,44,0,44,0,47,0,46,0,45,0,37,0,32,0,41,0,45,0,38,0,32,0,34,0,31,0, +22,0,26,0,43,0,43,0,28,0,22,0,25,0,29,0,27,0,19,0,19,0,26,0,19,0,8,0,11,0,20,0, +32,0,48,0,60,0,81,0,93,0,82,0,88,0,115,0,121,0,116,0,125,0,142,0,148,0,146,0,164,0,183,0, +175,0,187,0,221,0,227,0,218,0,221,0,229,0,238,0,236,0,220,0,214,0,218,0,218,0,211,0,210,0,220,0, +222,0,209,0,207,0,215,0,210,0,201,0,203,0,203,0,192,0,177,0,171,0,179,0,173,0,146,0,141,0,153,0, +149,0,138,0,118,0,97,0,97,0,92,0,68,0,40,0,11,0,2,0,3,0,232,255,198,255,178,255,164,255,150,255, +115,255,80,255,74,255,76,255,70,255,61,255,54,255,63,255,69,255,59,255,57,255,64,255,77,255,77,255,54,255,47,255, +66,255,70,255,60,255,60,255,79,255,103,255,97,255,73,255,63,255,63,255,69,255,73,255,66,255,62,255,71,255,85,255, +99,255,107,255,107,255,102,255,109,255,121,255,113,255,93,255,81,255,73,255,73,255,73,255,60,255,61,255,89,255,113,255, +105,255,88,255,94,255,106,255,111,255,120,255,124,255,134,255,160,255,165,255,163,255,187,255,203,255,204,255,211,255,211,255, +215,255,240,255,1,0,6,0,15,0,32,0,47,0,47,0,50,0,72,0,85,0,92,0,102,0,105,0,126,0,151,0, +139,0,137,0,166,0,170,0,150,0,136,0,139,0,164,0,172,0,158,0,170,0,183,0,160,0,131,0,119,0,124,0, +130,0,114,0,103,0,114,0,104,0,69,0,49,0,52,0,49,0,25,0,14,0,25,0,10,0,229,255,221,255,230,255, +220,255,204,255,193,255,191,255,211,255,218,255,192,255,179,255,186,255,172,255,146,255,133,255,134,255,137,255,128,255,121,255, +122,255,110,255,91,255,90,255,107,255,115,255,101,255,103,255,128,255,135,255,131,255,146,255,174,255,191,255,185,255,173,255, +173,255,173,255,168,255,160,255,153,255,153,255,150,255,142,255,149,255,159,255,162,255,168,255,168,255,164,255,171,255,175,255, +168,255,164,255,171,255,179,255,183,255,181,255,171,255,173,255,192,255,191,255,177,255,186,255,190,255,175,255,167,255,171,255, +188,255,201,255,189,255,185,255,208,255,224,255,216,255,205,255,209,255,218,255,217,255,219,255,231,255,251,255,14,0,15,0, +11,0,16,0,11,0,9,0,24,0,32,0,39,0,59,0,69,0,74,0,89,0,93,0,95,0,107,0,124,0,137,0, +132,0,121,0,134,0,148,0,143,0,134,0,128,0,120,0,104,0,84,0,86,0,101,0,98,0,88,0,90,0,96,0, +97,0,88,0,81,0,89,0,97,0,93,0,76,0,60,0,63,0,66,0,45,0,19,0,16,0,25,0,22,0,10,0, +6,0,11,0,18,0,13,0,254,255,1,0,13,0,8,0,4,0,5,0,1,0,1,0,2,0,250,255,248,255,255,255, +12,0,22,0,13,0,252,255,249,255,4,0,10,0,2,0,248,255,252,255,15,0,33,0,34,0,30,0,35,0,42,0, +40,0,26,0,17,0,28,0,35,0,28,0,24,0,22,0,19,0,21,0,21,0,14,0,5,0,9,0,21,0,18,0, +14,0,22,0,20,0,32,0,56,0,43,0,29,0,45,0,48,0,42,0,53,0,64,0,76,0,80,0,62,0,57,0, +70,0,61,0,42,0,45,0,61,0,71,0,63,0,39,0,25,0,28,0,24,0,5,0,251,255,5,0,16,0,254,255, +224,255,224,255,240,255,227,255,207,255,211,255,214,255,204,255,197,255,194,255,199,255,214,255,223,255,224,255,231,255,236,255, +228,255,223,255,236,255,253,255,253,255,252,255,3,0,11,0,22,0,22,0,18,0,32,0,42,0,34,0,38,0,48,0, +49,0,57,0,66,0,68,0,79,0,92,0,93,0,84,0,71,0,72,0,85,0,82,0,72,0,86,0,104,0,96,0, +81,0,82,0,96,0,109,0,105,0,98,0,106,0,112,0,108,0,101,0,90,0,94,0,101,0,90,0,85,0,89,0, +77,0,69,0,74,0,70,0,67,0,70,0,56,0,44,0,51,0,49,0,34,0,26,0,23,0,22,0,24,0,18,0, +10,0,13,0,25,0,36,0,37,0,36,0,39,0,40,0,46,0,52,0,45,0,43,0,45,0,32,0,32,0,45,0, +44,0,54,0,78,0,92,0,98,0,87,0,72,0,90,0,108,0,109,0,112,0,110,0,109,0,117,0,119,0,118,0, +116,0,104,0,105,0,113,0,111,0,109,0,114,0,126,0,130,0,122,0,133,0,153,0,144,0,119,0,104,0,103,0, +105,0,90,0,76,0,85,0,89,0,76,0,54,0,29,0,16,0,14,0,12,0,18,0,19,0,5,0,250,255,246,255, +240,255,222,255,210,255,224,255,229,255,206,255,195,255,195,255,188,255,189,255,197,255,206,255,217,255,223,255,221,255,217,255, +216,255,215,255,215,255,227,255,244,255,248,255,249,255,0,0,1,0,250,255,242,255,245,255,255,255,0,0,253,255,14,0, +39,0,47,0,29,0,15,0,38,0,60,0,46,0,36,0,52,0,64,0,58,0,49,0,54,0,65,0,60,0,50,0, +48,0,47,0,48,0,48,0,30,0,12,0,19,0,35,0,31,0,14,0,9,0,16,0,12,0,0,0,246,255,246,255, +7,0,16,0,8,0,12,0,19,0,12,0,16,0,23,0,17,0,20,0,29,0,27,0,21,0,19,0,17,0,20,0, +27,0,32,0,31,0,31,0,35,0,37,0,39,0,41,0,36,0,35,0,42,0,44,0,42,0,38,0,35,0,42,0, +44,0,34,0,39,0,53,0,47,0,31,0,26,0,32,0,37,0,23,0,8,0,16,0,21,0,8,0,251,255,249,255, +253,255,246,255,231,255,234,255,234,255,216,255,212,255,221,255,220,255,213,255,209,255,212,255,216,255,214,255,210,255,201,255, +192,255,186,255,181,255,187,255,190,255,171,255,159,255,167,255,169,255,163,255,162,255,173,255,183,255,175,255,172,255,184,255, +181,255,171,255,176,255,200,255,226,255,227,255,211,255,213,255,232,255,240,255,227,255,230,255,18,0,46,0,31,0,19,0, +29,0,36,0,22,0,2,0,12,0,36,0,36,0,23,0,25,0,37,0,40,0,33,0,31,0,42,0,42,0,24,0, +16,0,31,0,39,0,25,0,20,0,33,0,36,0,25,0,26,0,35,0,33,0,30,0,36,0,44,0,57,0,58,0, +41,0,42,0,65,0,72,0,62,0,57,0,66,0,80,0,88,0,96,0,98,0,102,0,116,0,115,0,103,0,105,0, +105,0,101,0,110,0,113,0,99,0,88,0,87,0,83,0,80,0,89,0,102,0,98,0,81,0,81,0,100,0,102,0, +81,0,80,0,105,0,117,0,101,0,73,0,68,0,86,0,83,0,61,0,56,0,64,0,64,0,48,0,31,0,31,0, +33,0,20,0,12,0,17,0,18,0,2,0,245,255,248,255,245,255,239,255,245,255,248,255,245,255,238,255,223,255,217,255, +230,255,235,255,225,255,228,255,0,0,15,0,1,0,248,255,1,0,18,0,25,0,19,0,23,0,30,0,22,0,19,0, +26,0,25,0,21,0,23,0,32,0,37,0,27,0,14,0,10,0,11,0,9,0,255,255,5,0,23,0,24,0,30,0, +53,0,63,0,57,0,53,0,56,0,65,0,65,0,53,0,49,0,62,0,75,0,66,0,52,0,52,0,54,0,45,0, +33,0,34,0,39,0,36,0,36,0,51,0,69,0,73,0,54,0,40,0,53,0,61,0,47,0,35,0,41,0,60,0, +68,0,56,0,49,0,51,0,54,0,49,0,32,0,28,0,40,0,46,0,50,0,53,0,53,0,60,0,62,0,56,0, +60,0,59,0,44,0,37,0,37,0,27,0,15,0,19,0,28,0,27,0,23,0,18,0,18,0,23,0,9,0,249,255, +6,0,22,0,21,0,23,0,32,0,35,0,37,0,37,0,33,0,37,0,48,0,51,0,54,0,56,0,50,0,50,0, +54,0,51,0,56,0,59,0,50,0,41,0,33,0,36,0,46,0,39,0,30,0,33,0,34,0,35,0,32,0,16,0, +3,0,1,0,5,0,255,255,240,255,246,255,0,0,240,255,228,255,243,255,5,0,6,0,252,255,249,255,252,255,253,255, +248,255,238,255,239,255,250,255,251,255,247,255,243,255,243,255,246,255,237,255,228,255,225,255,214,255,211,255,213,255,210,255, +219,255,221,255,209,255,212,255,220,255,219,255,227,255,238,255,243,255,242,255,240,255,252,255,2,0,243,255,234,255,236,255, +233,255,227,255,222,255,223,255,233,255,239,255,238,255,240,255,246,255,248,255,248,255,247,255,245,255,246,255,243,255,239,255, +239,255,235,255,230,255,230,255,219,255,207,255,211,255,215,255,219,255,232,255,246,255,0,0,1,0,252,255,252,255,4,0, +10,0,12,0,17,0,23,0,28,0,40,0,50,0,41,0,30,0,35,0,42,0,40,0,35,0,34,0,47,0,62,0, +60,0,52,0,56,0,60,0,54,0,53,0,56,0,53,0,56,0,61,0,67,0,73,0,66,0,55,0,49,0,43,0, +45,0,46,0,39,0,36,0,29,0,21,0,25,0,20,0,2,0,250,255,252,255,252,255,246,255,242,255,246,255,245,255, +241,255,235,255,225,255,225,255,227,255,220,255,219,255,218,255,204,255,193,255,186,255,186,255,193,255,193,255,185,255,184,255, +189,255,190,255,186,255,183,255,173,255,163,255,166,255,164,255,154,255,159,255,159,255,149,255,152,255,160,255,157,255,147,255, +148,255,163,255,173,255,180,255,187,255,188,255,200,255,217,255,215,255,211,255,218,255,225,255,229,255,231,255,236,255,238,255, +228,255,226,255,237,255,245,255,253,255,11,0,24,0,32,0,35,0,40,0,45,0,48,0,55,0,57,0,61,0,79,0, +92,0,95,0,101,0,100,0,92,0,98,0,105,0,100,0,99,0,110,0,119,0,122,0,120,0,112,0,115,0,124,0, +120,0,113,0,116,0,123,0,129,0,128,0,122,0,128,0,131,0,123,0,129,0,146,0,140,0,124,0,121,0,126,0, +128,0,123,0,110,0,106,0,114,0,113,0,103,0,99,0,97,0,92,0,77,0,64,0,64,0,62,0,56,0,60,0, +64,0,57,0,49,0,48,0,47,0,38,0,32,0,26,0,16,0,16,0,17,0,7,0,5,0,255,255,235,255,227,255, +231,255,228,255,226,255,227,255,229,255,234,255,231,255,220,255,211,255,202,255,198,255,196,255,194,255,191,255,191,255,199,255, +205,255,195,255,184,255,188,255,199,255,210,255,207,255,199,255,211,255,225,255,224,255,222,255,232,255,242,255,247,255,249,255, +255,255,15,0,27,0,24,0,16,0,23,0,43,0,50,0,42,0,36,0,40,0,51,0,62,0,56,0,43,0,48,0, +57,0,50,0,42,0,47,0,56,0,60,0,62,0,70,0,81,0,85,0,80,0,81,0,96,0,104,0,92,0,80,0, +84,0,93,0,92,0,87,0,101,0,119,0,117,0,107,0,108,0,113,0,114,0,116,0,123,0,131,0,127,0,119,0, +119,0,123,0,122,0,113,0,106,0,116,0,122,0,110,0,99,0,101,0,102,0,98,0,95,0,97,0,93,0,80,0, +67,0,62,0,61,0,54,0,45,0,49,0,51,0,35,0,24,0,28,0,34,0,34,0,30,0,26,0,19,0,8,0, +1,0,7,0,10,0,251,255,238,255,245,255,246,255,232,255,222,255,219,255,216,255,207,255,191,255,189,255,200,255,199,255, +195,255,201,255,206,255,204,255,200,255,198,255,200,255,204,255,204,255,200,255,196,255,201,255,212,255,219,255,221,255,220,255, +221,255,224,255,230,255,232,255,220,255,220,255,234,255,235,255,234,255,246,255,241,255,230,255,233,255,233,255,230,255,230,255, +230,255,237,255,248,255,252,255,250,255,252,255,0,0,247,255,235,255,241,255,251,255,246,255,243,255,246,255,253,255,1,0, +248,255,238,255,242,255,240,255,230,255,234,255,243,255,239,255,233,255,237,255,241,255,244,255,241,255,237,255,250,255,10,0, +3,0,254,255,11,0,21,0,14,0,7,0,9,0,14,0,12,0,14,0,22,0,28,0,26,0,19,0,18,0,26,0, +23,0,11,0,20,0,30,0,17,0,9,0,23,0,31,0,24,0,19,0,17,0,15,0,20,0,21,0,17,0,19,0, +22,0,15,0,11,0,12,0,7,0,12,0,25,0,21,0,6,0,2,0,9,0,17,0,12,0,0,0,254,255,5,0, +7,0,7,0,6,0,7,0,9,0,9,0,6,0,4,0,1,0,3,0,8,0,8,0,251,255,231,255,225,255,238,255, +241,255,231,255,229,255,236,255,240,255,238,255,239,255,238,255,234,255,229,255,224,255,224,255,228,255,222,255,210,255,207,255, +217,255,221,255,210,255,201,255,201,255,198,255,201,255,207,255,202,255,201,255,212,255,214,255,211,255,217,255,220,255,214,255, +220,255,237,255,236,255,226,255,224,255,223,255,229,255,239,255,229,255,218,255,225,255,235,255,234,255,223,255,215,255,221,255, +229,255,230,255,230,255,235,255,239,255,238,255,238,255,241,255,241,255,243,255,238,255,229,255,239,255,252,255,246,255,241,255, +242,255,242,255,244,255,244,255,249,255,252,255,248,255,0,0,12,0,13,0,12,0,6,0,13,0,34,0,31,0,19,0, +24,0,31,0,35,0,30,0,20,0,25,0,30,0,33,0,48,0,55,0,49,0,47,0,46,0,47,0,53,0,47,0, +38,0,48,0,60,0,51,0,39,0,39,0,43,0,48,0,52,0,43,0,38,0,45,0,46,0,45,0,52,0,51,0, +41,0,36,0,32,0,26,0,25,0,35,0,46,0,45,0,37,0,39,0,38,0,23,0,6,0,3,0,10,0,13,0, +6,0,1,0,5,0,7,0,4,0,250,255,235,255,236,255,244,255,236,255,230,255,239,255,242,255,234,255,231,255,233,255, +231,255,221,255,212,255,215,255,229,255,234,255,221,255,221,255,231,255,221,255,201,255,201,255,214,255,218,255,210,255,209,255, +218,255,216,255,206,255,207,255,224,255,237,255,234,255,223,255,222,255,233,255,243,255,238,255,229,255,233,255,243,255,245,255, +239,255,237,255,240,255,239,255,237,255,242,255,250,255,247,255,236,255,234,255,244,255,246,255,232,255,227,255,236,255,249,255, +252,255,243,255,246,255,4,0,2,0,254,255,9,0,16,0,12,0,255,255,250,255,9,0,22,0,16,0,13,0,21,0, +28,0,22,0,17,0,21,0,21,0,15,0,13,0,17,0,23,0,24,0,20,0,23,0,31,0,31,0,29,0,32,0, +36,0,35,0,28,0,25,0,29,0,32,0,32,0,30,0,28,0,25,0,21,0,20,0,22,0,18,0,8,0,6,0, +13,0,13,0,3,0,252,255,0,0,10,0,11,0,7,0,11,0,19,0,13,0,7,0,11,0,12,0,4,0,253,255, +253,255,1,0,5,0,4,0,8,0,15,0,8,0,254,255,253,255,245,255,235,255,233,255,230,255,239,255,249,255,237,255, +232,255,240,255,238,255,229,255,217,255,208,255,218,255,226,255,219,255,214,255,212,255,213,255,217,255,215,255,211,255,206,255, +203,255,204,255,200,255,199,255,208,255,216,255,217,255,219,255,223,255,227,255,224,255,224,255,231,255,233,255,227,255,222,255, +225,255,230,255,224,255,222,255,231,255,238,255,240,255,237,255,232,255,235,255,234,255,226,255,230,255,244,255,249,255,244,255, +241,255,250,255,1,0,254,255,1,0,5,0,8,0,12,0,11,0,17,0,26,0,21,0,15,0,17,0,13,0,5,0, +255,255,1,0,10,0,7,0,0,0,5,0,7,0,2,0,3,0,5,0,3,0,252,255,249,255,4,0,9,0,5,0, +8,0,7,0,3,0,4,0,0,0,249,255,241,255,233,255,239,255,252,255,250,255,247,255,247,255,246,255,253,255,254,255, +248,255,0,0,5,0,1,0,4,0,11,0,11,0,1,0,247,255,252,255,8,0,7,0,255,255,1,0,11,0,9,0, +254,255,251,255,252,255,254,255,3,0,1,0,3,0,6,0,0,0,1,0,7,0,255,255,250,255,255,255,2,0,254,255, +249,255,253,255,5,0,2,0,254,255,255,255,253,255,245,255,239,255,242,255,242,255,234,255,236,255,239,255,233,255,234,255, +234,255,233,255,242,255,244,255,240,255,242,255,241,255,239,255,236,255,233,255,241,255,252,255,249,255,244,255,251,255,4,0, +2,0,253,255,250,255,245,255,245,255,250,255,0,0,7,0,3,0,1,0,8,0,6,0,252,255,247,255,245,255,245,255, +240,255,234,255,241,255,239,255,236,255,245,255,249,255,245,255,240,255,235,255,245,255,253,255,247,255,247,255,252,255,251,255, +250,255,251,255,254,255,1,0,3,0,10,0,17,0,20,0,18,0,16,0,22,0,26,0,24,0,28,0,34,0,34,0, +30,0,25,0,29,0,39,0,40,0,35,0,35,0,35,0,32,0,30,0,26,0,23,0,28,0,29,0,19,0,16,0, +15,0,11,0,10,0,9,0,11,0,17,0,20,0,21,0,24,0,24,0,19,0,17,0,22,0,23,0,14,0,11,0, +15,0,16,0,22,0,24,0,21,0,24,0,20,0,15,0,21,0,18,0,9,0,8,0,8,0,5,0,4,0,8,0, +8,0,3,0,10,0,14,0,11,0,14,0,13,0,11,0,19,0,21,0,19,0,20,0,14,0,9,0,13,0,15,0, +12,0,5,0,2,0,4,0,5,0,2,0,254,255,251,255,253,255,0,0,2,0,0,0,250,255,248,255,250,255,251,255, +252,255,249,255,247,255,249,255,251,255,252,255,250,255,250,255,0,0,1,0,254,255,255,255,2,0,255,255,248,255,248,255, +252,255,249,255,249,255,251,255,253,255,255,255,251,255,253,255,7,0,6,0,8,0,11,0,10,0,16,0,20,0,16,0, +17,0,13,0,15,0,27,0,27,0,23,0,23,0,15,0,14,0,20,0,22,0,23,0,25,0,24,0,21,0,18,0, +20,0,18,0,14,0,16,0,20,0,27,0,29,0,23,0,22,0,28,0,28,0,25,0,21,0,17,0,15,0,15,0, +14,0,14,0,15,0,15,0,13,0,14,0,9,0,0,0,252,255,253,255,0,0,2,0,0,0,254,255,251,255,253,255, +3,0,2,0,3,0,5,0,254,255,255,255,11,0,13,0,12,0,11,0,9,0,12,0,9,0,1,0,5,0,7,0, +4,0,9,0,14,0,7,0,254,255,252,255,250,255,252,255,255,255,253,255,252,255,250,255,246,255,244,255,239,255,237,255, +240,255,237,255,239,255,246,255,241,255,238,255,236,255,229,255,228,255,229,255,227,255,225,255,222,255,220,255,219,255,215,255, +215,255,222,255,225,255,223,255,223,255,222,255,218,255,217,255,216,255,211,255,214,255,217,255,212,255,213,255,212,255,214,255, +221,255,225,255,235,255,244,255,236,255,237,255,245,255,242,255,243,255,244,255,243,255,249,255,0,0,4,0,4,0,1,0, +255,255,0,0,6,0,9,0,5,0,7,0,9,0,6,0,12,0,16,0,12,0,11,0,13,0,16,0,19,0,14,0, +12,0,13,0,16,0,22,0,25,0,25,0,25,0,27,0,29,0,27,0,25,0,25,0,18,0,15,0,16,0,13,0, +17,0,18,0,17,0,18,0,16,0,15,0,17,0,12,0,12,0,16,0,13,0,9,0,9,0,10,0,11,0,9,0, +11,0,18,0,18,0,19,0,21,0,18,0,14,0,15,0,18,0,19,0,18,0,14,0,11,0,12,0,6,0,254,255, +0,0,254,255,253,255,2,0,2,0,255,255,253,255,246,255,245,255,248,255,245,255,239,255,230,255,227,255,227,255,225,255, +229,255,228,255,218,255,220,255,222,255,217,255,218,255,216,255,213,255,220,255,226,255,227,255,223,255,217,255,214,255,213,255, +215,255,222,255,227,255,227,255,231,255,234,255,234,255,234,255,230,255,226,255,233,255,239,255,236,255,236,255,238,255,239,255, +243,255,244,255,245,255,248,255,243,255,244,255,250,255,247,255,249,255,253,255,250,255,251,255,254,255,254,255,252,255,248,255, +251,255,1,0,3,0,8,0,10,0,8,0,10,0,11,0,9,0,8,0,9,0,13,0,12,0,7,0,7,0,6,0, +4,0,6,0,5,0,1,0,1,0,0,0,251,255,246,255,241,255,240,255,246,255,251,255,251,255,250,255,248,255,251,255, +0,0,1,0,0,0,251,255,247,255,254,255,2,0,1,0,6,0,8,0,5,0,4,0,1,0,255,255,255,255,252,255, +253,255,0,0,0,0,4,0,3,0,252,255,254,255,255,255,250,255,248,255,251,255,253,255,252,255,254,255,1,0,0,0, +254,255,251,255,250,255,252,255,252,255,249,255,245,255,242,255,241,255,239,255,241,255,247,255,246,255,247,255,249,255,242,255, +236,255,236,255,233,255,234,255,240,255,240,255,240,255,241,255,237,255,233,255,234,255,233,255,230,255,232,255,233,255,233,255, +238,255,243,255,246,255,250,255,251,255,250,255,251,255,249,255,243,255,241,255,247,255,250,255,249,255,250,255,250,255,251,255, +255,255,1,0,2,0,4,0,6,0,8,0,9,0,6,0,5,0,2,0,0,0,1,0,254,255,255,255,0,0,250,255, +252,255,253,255,248,255,250,255,249,255,243,255,242,255,239,255,237,255,237,255,233,255,231,255,231,255,229,255,235,255,238,255, +233,255,232,255,235,255,232,255,228,255,232,255,233,255,231,255,235,255,240,255,237,255,233,255,226,255,225,255,231,255,231,255, +231,255,236,255,239,255,243,255,245,255,242,255,243,255,246,255,241,255,237,255,241,255,244,255,244,255,245,255,248,255,250,255, +251,255,249,255,246,255,246,255,247,255,247,255,245,255,241,255,244,255,248,255,245,255,244,255,247,255,245,255,247,255,247,255, +247,255,249,255,248,255,247,255,247,255,248,255,252,255,251,255,248,255,252,255,255,255,254,255,252,255,252,255,1,0,5,0, +4,0,7,0,8,0,5,0,9,0,15,0,15,0,15,0,13,0,12,0,15,0,14,0,10,0,13,0,13,0,9,0, +8,0,5,0,3,0,7,0,10,0,12,0,13,0,12,0,10,0,5,0,3,0,3,0,0,0,255,255,255,255,252,255, +251,255,251,255,252,255,253,255,250,255,247,255,249,255,249,255,249,255,250,255,250,255,254,255,4,0,2,0,255,255,250,255, +244,255,242,255,243,255,239,255,238,255,238,255,237,255,236,255,231,255,224,255,221,255,222,255,224,255,227,255,225,255,220,255, +219,255,220,255,218,255,216,255,214,255,214,255,214,255,216,255,221,255,223,255,220,255,216,255,218,255,222,255,227,255,229,255, +225,255,223,255,228,255,236,255,239,255,238,255,233,255,233,255,235,255,230,255,226,255,226,255,226,255,234,255,238,255,237,255, +239,255,236,255,233,255,235,255,235,255,239,255,243,255,240,255,246,255,0,0,0,0,254,255,254,255,0,0,0,0,1,0, +8,0,11,0,11,0,15,0,14,0,13,0,16,0,13,0,16,0,23,0,21,0,18,0,19,0,21,0,21,0,20,0, +21,0,22,0,20,0,19,0,21,0,23,0,20,0,19,0,23,0,23,0,21,0,23,0,19,0,15,0,17,0,18,0, +17,0,15,0,15,0,18,0,15,0,15,0,17,0,11,0,7,0,7,0,6,0,6,0,0,0,255,255,4,0,2,0, +2,0,7,0,5,0,1,0,0,0,2,0,5,0,255,255,249,255,249,255,243,255,240,255,244,255,242,255,236,255,236,255, +237,255,235,255,234,255,232,255,232,255,236,255,238,255,238,255,241,255,238,255,236,255,240,255,236,255,228,255,228,255,226,255, +226,255,233,255,237,255,236,255,234,255,232,255,231,255,230,255,231,255,232,255,230,255,233,255,237,255,239,255,240,255,236,255, +232,255,231,255,232,255,236,255,238,255,237,255,241,255,243,255,242,255,243,255,245,255,245,255,245,255,248,255,250,255,249,255, +249,255,248,255,247,255,250,255,247,255,246,255,251,255,250,255,249,255,253,255,254,255,1,0,4,0,5,0,7,0,8,0, +11,0,16,0,17,0,18,0,20,0,18,0,22,0,24,0,21,0,21,0,21,0,20,0,22,0,19,0,17,0,21,0, +23,0,23,0,26,0,29,0,29,0,28,0,25,0,21,0,17,0,15,0,16,0,18,0,15,0,13,0,12,0,9,0, +7,0,7,0,8,0,7,0,5,0,6,0,5,0,5,0,7,0,4,0,254,255,253,255,249,255,245,255,244,255,240,255, +243,255,248,255,248,255,249,255,248,255,246,255,245,255,245,255,246,255,247,255,246,255,247,255,249,255,249,255,250,255,249,255, +250,255,250,255,244,255,242,255,241,255,239,255,240,255,241,255,242,255,242,255,241,255,244,255,243,255,237,255,239,255,243,255, +240,255,244,255,251,255,251,255,249,255,247,255,243,255,241,255,242,255,239,255,238,255,242,255,243,255,245,255,246,255,243,255, +244,255,249,255,248,255,247,255,244,255,240,255,241,255,240,255,244,255,248,255,242,255,239,255,244,255,242,255,239,255,240,255, +242,255,247,255,247,255,249,255,253,255,251,255,247,255,247,255,249,255,255,255,2,0,255,255,253,255,254,255,255,255,0,0, +0,0,254,255,254,255,0,0,4,0,5,0,3,0,254,255,253,255,255,255,253,255,253,255,251,255,248,255,249,255,248,255, +248,255,253,255,254,255,253,255,250,255,248,255,248,255,245,255,245,255,249,255,250,255,252,255,253,255,250,255,249,255,246,255, +246,255,251,255,251,255,250,255,251,255,248,255,245,255,246,255,247,255,249,255,250,255,249,255,248,255,247,255,247,255,247,255, +247,255,249,255,247,255,247,255,249,255,247,255,247,255,247,255,243,255,243,255,245,255,245,255,243,255,238,255,239,255,241,255, +241,255,243,255,243,255,240,255,240,255,238,255,239,255,241,255,237,255,236,255,239,255,238,255,236,255,236,255,240,255,245,255, +243,255,242,255,244,255,247,255,250,255,249,255,245,255,245,255,248,255,248,255,245,255,245,255,250,255,249,255,246,255,248,255, +246,255,247,255,248,255,244,255,242,255,243,255,240,255,239,255,238,255,238,255,240,255,244,255,245,255,241,255,237,255,236,255, +234,255,233,255,235,255,238,255,236,255,234,255,235,255,237,255,240,255,243,255,242,255,245,255,248,255,243,255,240,255,243,255, +244,255,246,255,247,255,248,255,253,255,253,255,246,255,246,255,249,255,247,255,246,255,247,255,248,255,244,255,244,255,251,255, +249,255,246,255,250,255,249,255,246,255,247,255,249,255,250,255,253,255,0,0,2,0,254,255,250,255,249,255,246,255,244,255, +246,255,246,255,248,255,250,255,248,255,246,255,247,255,248,255,247,255,246,255,246,255,249,255,253,255,251,255,246,255,245,255, +247,255,251,255,252,255,250,255,251,255,252,255,249,255,250,255,252,255,251,255,252,255,253,255,254,255,254,255,252,255,251,255, +252,255,250,255,251,255,253,255,252,255,252,255,252,255,251,255,253,255,254,255,255,255,0,0,254,255,251,255,250,255,248,255, +246,255,244,255,245,255,245,255,243,255,245,255,248,255,248,255,247,255,248,255,251,255,252,255,251,255,252,255,255,255,1,0, +3,0,5,0,6,0,3,0,254,255,252,255,254,255,0,0,2,0,1,0,1,0,5,0,4,0,0,0,0,0,4,0, +6,0,7,0,7,0,6,0,4,0,3,0,2,0,2,0,1,0,0,0,1,0,0,0,253,255,253,255,0,0,2,0, +0,0,255,255,0,0,0,0,254,255,251,255,249,255,251,255,253,255,250,255,250,255,252,255,251,255,253,255,0,0,255,255, +255,255,253,255,250,255,252,255,0,0,0,0,2,0,3,0,0,0,2,0,4,0,2,0,3,0,4,0,4,0,5,0, +5,0,4,0,5,0,4,0,6,0,8,0,6,0,7,0,8,0,7,0,7,0,7,0,8,0,9,0,9,0,7,0, +7,0,8,0,11,0,12,0,12,0,14,0,14,0,10,0,8,0,8,0,7,0,7,0,7,0,8,0,11,0,12,0, +10,0,10,0,10,0,11,0,12,0,9,0,7,0,10,0,11,0,11,0,15,0,15,0,14,0,13,0,11,0,11,0, +11,0,11,0,12,0,13,0,13,0,15,0,15,0,16,0,17,0,16,0,16,0,13,0,14,0,17,0,15,0,15,0, +16,0,12,0,11,0,11,0,9,0,8,0,9,0,10,0,10,0,8,0,10,0,9,0,8,0,11,0,9,0,6,0, +11,0,11,0,4,0,4,0,7,0,8,0,8,0,8,0,10,0,13,0,15,0,13,0,8,0,7,0,8,0,9,0, +7,0,5,0,9,0,13,0,11,0,10,0,10,0,9,0,10,0,10,0,10,0,7,0,6,0,11,0,10,0,8,0, +13,0,15,0,11,0,9,0,8,0,10,0,11,0,9,0,11,0,8,0,5,0,6,0,4,0,4,0,7,0,6,0, +9,0,11,0,7,0,8,0,11,0,8,0,8,0,10,0,9,0,8,0,8,0,5,0,5,0,5,0,3,0,6,0, +10,0,8,0,7,0,7,0,5,0,7,0,9,0,6,0,7,0,10,0,12,0,12,0,9,0,8,0,10,0,10,0, +10,0,8,0,6,0,10,0,12,0,10,0,9,0,9,0,10,0,10,0,9,0,9,0,11,0,11,0,11,0,9,0, +6,0,5,0,2,0,1,0,1,0,1,0,2,0,1,0,255,255,2,0,2,0,254,255,253,255,254,255,252,255,250,255, +249,255,248,255,248,255,247,255,247,255,247,255,247,255,245,255,246,255,247,255,245,255,245,255,248,255,248,255,247,255,249,255, +250,255,249,255,249,255,250,255,248,255,248,255,251,255,252,255,251,255,253,255,0,0,2,0,4,0,4,0,3,0,1,0, +253,255,254,255,255,255,253,255,253,255,255,255,255,255,254,255,254,255,0,0,255,255,251,255,248,255,249,255,249,255,248,255, +243,255,241,255,243,255,242,255,240,255,239,255,240,255,241,255,240,255,238,255,239,255,240,255,238,255,237,255,237,255,239,255, +238,255,233,255,233,255,233,255,229,255,227,255,231,255,231,255,227,255,226,255,228,255,227,255,226,255,225,255,222,255,221,255, +223,255,223,255,223,255,223,255,223,255,226,255,226,255,224,255,226,255,225,255,223,255,227,255,228,255,227,255,228,255,229,255, +227,255,225,255,227,255,228,255,227,255,228,255,231,255,231,255,232,255,232,255,230,255,231,255,230,255,229,255,230,255,232,255, +233,255,235,255,236,255,234,255,231,255,230,255,231,255,233,255,234,255,235,255,234,255,234,255,234,255,235,255,235,255,231,255, +230,255,232,255,232,255,234,255,234,255,232,255,234,255,234,255,231,255,233,255,235,255,234,255,232,255,232,255,234,255,234,255, +233,255,235,255,236,255,234,255,235,255,238,255,235,255,232,255,233,255,234,255,234,255,236,255,234,255,232,255,232,255,230,255, +229,255,229,255,229,255,231,255,230,255,225,255,226,255,228,255,228,255,228,255,228,255,227,255,225,255,225,255,227,255,226,255, +222,255,224,255,226,255,223,255,220,255,220,255,221,255,223,255,223,255,224,255,226,255,227,255,228,255,228,255,228,255,231,255, +230,255,230,255,233,255,232,255,232,255,236,255,236,255,234,255,235,255,235,255,236,255,239,255,239,255,238,255,240,255,239,255, +239,255,241,255,244,255,246,255,249,255,250,255,252,255,254,255,253,255,1,0,3,0,2,0,3,0,6,0,6,0,9,0, +10,0,11,0,13,0,13,0,13,0,12,0,10,0,10,0,12,0,12,0,12,0,13,0,13,0,12,0,10,0,12,0, +13,0,10,0,7,0,6,0,7,0,7,0,5,0,3,0,0,0,254,255,1,0,2,0,255,255,0,0,1,0,254,255, +0,0,1,0,255,255,253,255,253,255,253,255,254,255,255,255,254,255,254,255,255,255,255,255,0,0,2,0,1,0,255,255, +0,0,1,0,2,0,3,0,6,0,7,0,6,0,8,0,8,0,6,0,6,0,8,0,9,0,11,0,11,0,12,0, +13,0,10,0,10,0,13,0,12,0,13,0,15,0,13,0,15,0,19,0,18,0,19,0,19,0,19,0,20,0,19,0, +19,0,22,0,22,0,19,0,20,0,20,0,19,0,18,0,20,0,20,0,19,0,16,0,16,0,19,0,17,0,15,0, +18,0,22,0,21,0,19,0,20,0,20,0,21,0,22,0,23,0,21,0,21,0,24,0,25,0,24,0,23,0,20,0, +19,0,18,0,16,0,17,0,17,0,14,0,16,0,16,0,14,0,15,0,15,0,13,0,14,0,14,0,13,0,12,0, +13,0,13,0,13,0,13,0,14,0,12,0,12,0,15,0,15,0,13,0,12,0,12,0,11,0,11,0,12,0,12,0, +12,0,10,0,9,0,7,0,7,0,7,0,5,0,4,0,6,0,6,0,2,0,255,255,1,0,0,0,0,0,255,255, +252,255,250,255,250,255,250,255,252,255,254,255,251,255,251,255,252,255,252,255,253,255,253,255,255,255,1,0,253,255,251,255, +252,255,253,255,254,255,254,255,253,255,252,255,253,255,252,255,252,255,255,255,0,0,255,255,1,0,0,0,253,255,255,255, +0,0,255,255,0,0,255,255,251,255,251,255,250,255,250,255,249,255,247,255,248,255,247,255,244,255,244,255,245,255,244,255, +244,255,243,255,242,255,242,255,242,255,241,255,241,255,241,255,242,255,242,255,243,255,244,255,243,255,243,255,241,255,243,255, +247,255,247,255,245,255,247,255,247,255,246,255,246,255,246,255,248,255,250,255,250,255,249,255,251,255,252,255,253,255,0,0, +1,0,255,255,0,0,4,0,6,0,5,0,6,0,8,0,10,0,10,0,11,0,13,0,13,0,14,0,14,0,13,0, +14,0,16,0,17,0,18,0,19,0,20,0,20,0,18,0,18,0,18,0,17,0,18,0,21,0,21,0,22,0,22,0, +22,0,22,0,23,0,25,0,25,0,24,0,24,0,23,0,21,0,21,0,19,0,18,0,17,0,15,0,16,0,15,0, +12,0,11,0,10,0,8,0,9,0,9,0,6,0,6,0,6,0,3,0,1,0,1,0,1,0,255,255,254,255,252,255, +252,255,253,255,253,255,252,255,252,255,251,255,250,255,250,255,251,255,253,255,252,255,251,255,253,255,253,255,253,255,253,255, +253,255,255,255,253,255,251,255,252,255,251,255,252,255,255,255,254,255,254,255,0,0,255,255,255,255,254,255,252,255,255,255, +255,255,252,255,254,255,253,255,249,255,249,255,251,255,250,255,250,255,250,255,249,255,250,255,250,255,248,255,250,255,251,255, +250,255,249,255,251,255,251,255,252,255,252,255,251,255,251,255,251,255,252,255,254,255,255,255,255,255,255,255,253,255,253,255, +255,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,3,0,1,0,3,0,6,0,5,0,5,0,5,0,5,0, +6,0,6,0,5,0,7,0,9,0,10,0,9,0,7,0,7,0,5,0,2,0,2,0,4,0,5,0,3,0,2,0, +2,0,2,0,0,0,0,0,1,0,1,0,255,255,253,255,252,255,252,255,252,255,249,255,249,255,249,255,249,255,249,255, +249,255,248,255,248,255,248,255,249,255,251,255,251,255,251,255,253,255,253,255,252,255,253,255,254,255,253,255,255,255,255,255, +0,0,1,0,2,0,2,0,2,0,2,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,1,0,2,0,5,0, +6,0,4,0,2,0,3,0,1,0,254,255,255,255,255,255,254,255,254,255,255,255,255,255,252,255,249,255,250,255,251,255, +251,255,250,255,249,255,249,255,250,255,250,255,248,255,248,255,251,255,251,255,250,255,250,255,249,255,250,255,252,255,251,255, +250,255,252,255,250,255,250,255,253,255,251,255,249,255,251,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,0,0, +1,0,3,0,2,0,0,0,4,0,5,0,3,0,4,0,4,0,3,0,4,0,5,0,4,0,4,0,4,0,6,0, +5,0,5,0,8,0,8,0,5,0,7,0,9,0,8,0,7,0,8,0,7,0,7,0,9,0,7,0,6,0,8,0, +8,0,7,0,7,0,7,0,7,0,9,0,10,0,9,0,8,0,8,0,10,0,9,0,6,0,4,0,4,0,3,0, +3,0,3,0,3,0,2,0,1,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,254,255,253,255,255,255,2,0, +4,0,2,0,1,0,3,0,1,0,255,255,1,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,255,255,253,255, +253,255,254,255,253,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,252,255,252,255,250,255,251,255,253,255,253,255, +254,255,255,255,255,255,254,255,255,255,255,255,1,0,1,0,0,0,1,0,3,0,1,0,1,0,0,0,254,255,255,255, +255,255,254,255,2,0,2,0,254,255,0,0,0,0,255,255,1,0,0,0,254,255,0,0,0,0,255,255,1,0,255,255, +254,255,0,0,255,255,255,255,1,0,2,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,2,0,5,0,4,0, +3,0,4,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,7,0,8,0,10,0,11,0,13,0,12,0, +10,0,12,0,13,0,13,0,14,0,14,0,14,0,14,0,12,0,11,0,12,0,12,0,11,0,11,0,11,0,11,0, +9,0,8,0,7,0,6,0,5,0,4,0,5,0,5,0,1,0,1,0,3,0,1,0,1,0,2,0,3,0,3,0, +1,0,2,0,4,0,3,0,2,0,3,0,2,0,4,0,4,0,1,0,3,0,4,0,3,0,4,0,5,0,5,0, +5,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,4,0,3,0,1,0,1,0,0,0, +1,0,1,0,255,255,255,255,254,255,252,255,254,255,254,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255,252,255, +251,255,250,255,251,255,250,255,249,255,248,255,248,255,249,255,248,255,247,255,249,255,250,255,249,255,251,255,252,255,251,255, +251,255,252,255,253,255,254,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0, +3,0,4,0,5,0,5,0,6,0,6,0,6,0,8,0,9,0,8,0,6,0,6,0,7,0,8,0,8,0,9,0, +10,0,10,0,11,0,12,0,11,0,11,0,12,0,13,0,14,0,12,0,12,0,12,0,11,0,11,0,11,0,11,0, +11,0,9,0,9,0,12,0,12,0,10,0,11,0,11,0,10,0,11,0,11,0,10,0,9,0,9,0,13,0,12,0, +10,0,11,0,11,0,11,0,10,0,8,0,8,0,8,0,6,0,6,0,5,0,3,0,4,0,3,0,2,0,2,0, +1,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,2,0,3,0,5,0,7,0,6,0,6,0,7,0,8,0, +6,0,6,0,10,0,9,0,7,0,8,0,9,0,10,0,10,0,9,0,9,0,11,0,11,0,10,0,9,0,10,0, +12,0,11,0,10,0,11,0,12,0,12,0,11,0,11,0,12,0,13,0,12,0,10,0,9,0,9,0,10,0,8,0, +6,0,6,0,5,0,3,0,2,0,1,0,0,0,0,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,253,255,254,255,254,255,254,255,255,255,253,255,253,255,254,255,252,255,253,255,254,255,252,255,253,255,254,255, +253,255,254,255,254,255,251,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,2,0, +3,0,2,0,3,0,2,0,1,0,3,0,4,0,4,0,4,0,5,0,7,0,6,0,6,0,6,0,6,0,9,0, +9,0,5,0,6,0,7,0,5,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0,6,0,6,0,5,0,2,0, +3,0,5,0,4,0,3,0,2,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,4,0,3,0,2,0,2,0, +3,0,3,0,3,0,4,0,5,0,4,0,3,0,3,0,3,0,3,0,2,0,2,0,4,0,3,0,1,0,1,0, +3,0,4,0,3,0,3,0,2,0,1,0,2,0,3,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,2,0, +3,0,4,0,3,0,3,0,4,0,2,0,1,0,3,0,2,0,3,0,3,0,0,0,1,0,3,0,1,0,1,0, +2,0,0,0,0,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,2,0,2,0,2,0,4,0,3,0,2,0, +4,0,3,0,2,0,4,0,5,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0,1,0,1,0,3,0,1,0, +1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,0,0,254,255,253,255,254,255,253,255,253,255,255,255, +254,255,255,255,255,255,255,255,1,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0, +3,0,4,0,5,0,5,0,5,0,4,0,5,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0, +2,0,0,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,1,0,1,0,1,0,0,0,254,255,255,255,255,255, +254,255,253,255,253,255,252,255,251,255,252,255,252,255,251,255,251,255,252,255,252,255,252,255,253,255,254,255,253,255,253,255, +254,255,255,255,0,0,1,0,0,0,1,0,2,0,0,0,1,0,4,0,2,0,2,0,3,0,1,0,2,0,3,0, +2,0,3,0,3,0,3,0,3,0,1,0,1,0,3,0,4,0,5,0,5,0,5,0,7,0,6,0,5,0,7,0, +7,0,6,0,8,0,8,0,7,0,8,0,9,0,10,0,8,0,8,0,10,0,9,0,10,0,11,0,11,0,11,0, +10,0,9,0,9,0,9,0,7,0,8,0,11,0,10,0,8,0,7,0,8,0,8,0,8,0,8,0,8,0,6,0, +6,0,6,0,6,0,7,0,6,0,4,0,4,0,4,0,2,0,3,0,5,0,4,0,3,0,2,0,2,0,0,0, +1,0,1,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,254,255,0,0, +0,0,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,252,255,252,255,253,255, +253,255,254,255,254,255,254,255,254,255,252,255,253,255,254,255,253,255,253,255,254,255,254,255,0,0,255,255,255,255,1,0, +1,0,1,0,2,0,1,0,2,0,4,0,3,0,3,0,4,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0, +4,0,4,0,4,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,8,0,8,0,7,0,9,0,10,0,8,0, +8,0,10,0,10,0,10,0,10,0,9,0,9,0,10,0,11,0,10,0,9,0,9,0,8,0,9,0,12,0,11,0, +9,0,10,0,9,0,8,0,9,0,9,0,8,0,8,0,7,0,6,0,7,0,6,0,5,0,5,0,5,0,6,0, +5,0,3,0,4,0,4,0,3,0,2,0,3,0,3,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,255,255,254,255,253,255,254,255,253,255,253,255,252,255,251,255,252,255,254,255,252,255,253,255, +254,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,2,0,2,0,0,0,2,0,3,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,254,255,253,255,255,255,255,255,254,255,0,0,255,255, +254,255,255,255,0,0,2,0,1,0,0,0,3,0,4,0,3,0,5,0,6,0,8,0,8,0,6,0,8,0,9,0, +8,0,10,0,12,0,10,0,11,0,12,0,12,0,14,0,13,0,12,0,14,0,14,0,13,0,13,0,13,0,12,0, +13,0,12,0,12,0,11,0,11,0,11,0,11,0,10,0,10,0,11,0,11,0,10,0,10,0,11,0,10,0,10,0, +10,0,9,0,8,0,9,0,9,0,8,0,6,0,5,0,6,0,6,0,6,0,6,0,5,0,5,0,4,0,3,0, +3,0,4,0,3,0,1,0,2,0,3,0,4,0,4,0,4,0,3,0,4,0,4,0,2,0,3,0,4,0,3,0, +3,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,4,0,2,0,1,0,4,0,4,0,2,0,2,0,2,0, +2,0,3,0,2,0,2,0,3,0,3,0,4,0,4,0,2,0,2,0,3,0,3,0,4,0,3,0,3,0,3,0, +3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,2,0,5,0,7,0,5,0,6,0, +6,0,6,0,7,0,7,0,5,0,6,0,6,0,6,0,6,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0, +6,0,6,0,6,0,8,0,8,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,4,0, +5,0,5,0,4,0,4,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,8,0,8,0, +8,0,8,0,7,0,6,0,7,0,8,0,7,0,7,0,7,0,7,0,8,0,7,0,8,0,9,0,8,0,8,0, +10,0,8,0,8,0,9,0,7,0,7,0,9,0,8,0,7,0,8,0,7,0,6,0,6,0,6,0,6,0,7,0, +6,0,6,0,7,0,5,0,5,0,8,0,6,0,6,0,6,0,6,0,7,0,7,0,5,0,6,0,6,0,6,0, +5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0, +3,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,1,0,2,0,4,0,4,0,2,0,3,0,2,0, +2,0,3,0,2,0,2,0,3,0,1,0,2,0,3,0,1,0,1,0,2,0,1,0,1,0,1,0,255,255,255,255, +1,0,1,0,0,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,3,0, +3,0,3,0,4,0,5,0,4,0,5,0,5,0,5,0,6,0,7,0,6,0,6,0,6,0,7,0,6,0,7,0, +7,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,9,0,8,0,7,0,7,0,7,0,6,0,6,0,7,0, +6,0,6,0,5,0,6,0,7,0,6,0,4,0,5,0,6,0,5,0,4,0,4,0,3,0,3,0,5,0,6,0, +5,0,5,0,4,0,4,0,4,0,4,0,3,0,4,0,3,0,3,0,4,0,4,0,2,0,2,0,3,0,2,0, +2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,1,0,2,0, +2,0,0,0,1,0,3,0,2,0,2,0,2,0,3,0,2,0,3,0,3,0,1,0,2,0,3,0,1,0,1,0, +2,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +3,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,5,0,5,0,4,0,4,0, +5,0,4,0,3,0,3,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0, +4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,6,0, +5,0,3,0,2,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0, +2,0,3,0,4,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0, +3,0,3,0,3,0,5,0,5,0,3,0,4,0,5,0,3,0,3,0,4,0,4,0,4,0,5,0,3,0,4,0, +5,0,3,0,3,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,4,0,4,0,2,0,1,0,3,0, +3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0, +0,0,0,0,1,0,0,0,1,0,2,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,2,0,3,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,5,0,5,0,3,0,3,0,5,0,4,0, +5,0,6,0,4,0,4,0,6,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0,8,0,9,0,7,0,7,0, +7,0,7,0,8,0,8,0,6,0,4,0,5,0,5,0,5,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0, +1,0,2,0,3,0,1,0,0,0,2,0,2,0,2,0,4,0,4,0,3,0,3,0,2,0,2,0,3,0,3,0, +4,0,5,0,4,0,3,0,3,0,3,0,4,0,4,0,3,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0, +5,0,5,0,6,0,6,0,5,0,7,0,8,0,7,0,7,0,8,0,8,0,7,0,6,0,7,0,8,0,8,0, +7,0,7,0,6,0,7,0,8,0,7,0,6,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,3,0,2,0, +3,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,2,0,2,0, +0,0,1,0,2,0,2,0,3,0,3,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,4,0,4,0,4,0, +4,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,6,0,5,0,5,0,6,0,5,0,5,0,6,0, +6,0,5,0,6,0,6,0,3,0,4,0,6,0,5,0,4,0,4,0,3,0,4,0,4,0,2,0,3,0,5,0, +3,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0,4,0,5,0,4,0,2,0,4,0,4,0,3,0,5,0, +6,0,5,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,5,0,4,0,3,0,5,0,6,0, +5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0, +7,0,7,0,6,0,6,0,6,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,3,0,4,0,5,0, +4,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0, +4,0,3,0,4,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,5,0,6,0,6,0,6,0,6,0,6,0, +5,0,6,0,6,0,6,0,7,0,7,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,4,0,5,0, +5,0,6,0,6,0,5,0,6,0,6,0,6,0,5,0,5,0,6,0,5,0,5,0,4,0,5,0,5,0,6,0, +4,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,6,0,4,0,4,0,6,0,4,0, +3,0,6,0,6,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,7,0,6,0,6,0,6,0,5,0,6,0, +7,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0,5,0, +6,0,7,0,6,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0,4,0, +4,0,4,0,4,0,5,0,3,0,3,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,6,0,7,0, +6,0,6,0,7,0,6,0,6,0,6,0,5,0,6,0,6,0,5,0,6,0,5,0,4,0,6,0,6,0,5,0, +5,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,5,0,5,0,5,0,6,0,7,0,6,0,5,0,5,0, +6,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,6,0,5,0,3,0,4,0,5,0,5,0,5,0,4,0, +3,0,4,0,3,0,3,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,3,0,4,0, +6,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0, +6,0,5,0,4,0,5,0,7,0,6,0,5,0,6,0,6,0,5,0,4,0,6,0,6,0,5,0,6,0,5,0, +5,0,6,0,6,0,4,0,5,0,5,0,5,0,4,0,5,0,6,0,6,0,6,0,5,0,4,0,4,0,5,0, +4,0,4,0,5,0,5,0,5,0,6,0,4,0,5,0,6,0,4,0,4,0,6,0,5,0,5,0,6,0,5,0, +5,0,7,0,6,0,5,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0, +6,0,7,0,6,0,6,0,7,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0,7,0,6,0,6,0, +5,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,3,0, +4,0,5,0,5,0,4,0,5,0,6,0,5,0,4,0,5,0,4,0,4,0,5,0,5,0,4,0,5,0,6,0, +5,0,5,0,4,0,5,0,6,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0, +5,0,5,0,6,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0,4,0,5,0, +5,0,3,0,5,0,6,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0, +4,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0, +3,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,5,0,4,0,3,0,3,0,2,0,3,0,4,0,4,0, +4,0,5,0,4,0,4,0,4,0,3,0,4,0,5,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0, +3,0,4,0,3,0,2,0,2,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0, +3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +3,0,3,0,2,0,3,0,4,0,3,0,3,0,4,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0, +3,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0, +3,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0, +2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0, +1,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0, +1,0,2,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +3,0,3,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,0,0, +1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0, +1,0,2,0,2,0,2,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,1,0,2,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,255,255,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,1,0,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,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,0,0,255,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,255,255,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,1,0,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, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,1,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,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,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255, +255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,254,255,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,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,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255, +1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,1,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,254,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,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, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,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,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,254,255,0,0,1,0,1,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,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,1,0,0,0,254,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,0,0,255,255,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,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,255,255,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,1,0,2,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,1,0, +1,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0, +255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,0,0,0,0,255,255,0,0,255,255,254,255, +255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,0,0,255,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,254,255,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +254,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,1,0,2,0,2,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0, +1,0,2,0,3,0,2,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0, +2,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0, +2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,4,0,2,0,1,0,2,0,2,0, +2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,1,0,2,0,3,0,3,0,2,0, +1,0,2,0,3,0,2,0,2,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,3,0,3,0,2,0,2,0, +3,0,4,0,4,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0, +4,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0, +3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0, +4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,4,0,4,0,3,0, +3,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,3,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,5,0,4,0,5,0,4,0,3,0, +4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,5,0, +4,0,4,0,5,0,4,0,4,0,5,0,4,0,3,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,4,0, +4,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0, +5,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,5,0,5,0,4,0,5,0,5,0,4,0,5,0,6,0, +5,0,5,0,5,0,5,0,6,0,6,0,6,0,5,0,4,0,5,0,6,0,5,0,4,0,5,0,6,0,6,0, +5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0, +6,0,7,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,5,0,5,0,6,0, +6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0,7,0,6,0, +6,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0,6,0,7,0,8,0, +6,0,6,0,7,0,7,0,7,0,7,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, +7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,8,0,7,0,8,0,7,0,7,0,7,0, +7,0,7,0,7,0,7,0,7,0,8,0,8,0,8,0,8,0,7,0,8,0,8,0,7,0,8,0,8,0,8,0, +8,0,9,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,9,0,8,0,7,0,8,0,8,0,8,0,8,0, +8,0,8,0,8,0,8,0,8,0,8,0,8,0,9,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,9,0, +9,0,10,0,9,0,8,0,9,0,9,0,9,0,9,0,10,0,9,0,9,0,9,0,10,0,9,0,9,0,9,0, +9,0,9,0,10,0,10,0,9,0,9,0,9,0,9,0,10,0,10,0,10,0,9,0,10,0,10,0,10,0,10,0, +9,0,9,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,10,0,11,0, +10,0,11,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,10,0,11,0,11,0,10,0,10,0,11,0, +11,0,10,0,11,0,11,0,10,0,10,0,11,0,10,0,9,0,11,0,11,0,11,0,11,0,11,0,10,0,11,0, +11,0,12,0,11,0,10,0,11,0,11,0,10,0,12,0,12,0,10,0,10,0,11,0,10,0,11,0,11,0,11,0, +11,0,12,0,11,0,11,0,12,0,12,0,12,0,11,0,11,0,11,0,11,0,12,0,11,0,11,0,11,0,12,0, +10,0,11,0,12,0,11,0,12,0,13,0,11,0,11,0,12,0,12,0,11,0,12,0,12,0,12,0,11,0,11,0, +12,0,13,0,11,0,11,0,12,0,11,0,12,0,12,0,11,0,11,0,12,0,12,0,12,0,12,0,12,0,12,0, +12,0,12,0,12,0,11,0,12,0,13,0,12,0,11,0,12,0,12,0,12,0,13,0,12,0,12,0,13,0,13,0, +12,0,12,0,12,0,12,0,13,0,12,0,12,0,12,0,11,0,12,0,12,0,13,0,13,0,12,0,12,0,12,0, +13,0,13,0,12,0,12,0,12,0,12,0,13,0,13,0,12,0,11,0,12,0,13,0,13,0,13,0,13,0,13,0, +13,0,12,0,13,0,14,0,12,0,12,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,14,0,13,0,12,0, +12,0,13,0,12,0,12,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,13,0,13,0, +13,0,13,0,13,0,14,0,13,0,13,0,13,0,13,0,13,0,13,0,14,0,14,0,13,0,13,0,14,0,14,0, +13,0,13,0,13,0,13,0,13,0,14,0,14,0,14,0,14,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0, +14,0,14,0,14,0,13,0,13,0,14,0,14,0,13,0,13,0,14,0,13,0,13,0,14,0,13,0,13,0,15,0, +14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0,15,0,14,0,14,0, +15,0,14,0,13,0,14,0,14,0,13,0,14,0,14,0,15,0,15,0,14,0,14,0,15,0,15,0,15,0,14,0, +13,0,14,0,15,0,15,0,15,0,15,0,14,0,14,0,14,0,14,0,15,0,16,0,15,0,15,0,15,0,14,0, +15,0,15,0,15,0,14,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,16,0,16,0, +15,0,15,0,16,0,15,0,15,0,15,0,15,0,16,0,16,0,15,0,15,0,16,0,15,0,15,0,15,0,16,0, +16,0,16,0,16,0,16,0,15,0,16,0,16,0,16,0,16,0,16,0,16,0,17,0,16,0,15,0,16,0,16,0, +16,0,16,0,17,0,15,0,15,0,16,0,17,0,17,0,16,0,16,0,17,0,16,0,15,0,17,0,17,0,16,0, +16,0,16,0,17,0,17,0,16,0,17,0,17,0,16,0,17,0,18,0,17,0,17,0,17,0,17,0,17,0,17,0, +17,0,17,0,17,0,17,0,17,0,17,0,17,0,18,0,18,0,17,0,17,0,18,0,17,0,17,0,17,0,17,0, +18,0,18,0,17,0,18,0,18,0,17,0,17,0,18,0,18,0,19,0,18,0,17,0,18,0,18,0,18,0,19,0, +19,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,19,0,19,0,18,0,19,0,19,0,18,0, +19,0,19,0,18,0,19,0,19,0,18,0,19,0,19,0,19,0,20,0,19,0,18,0,19,0,19,0,19,0,19,0, +19,0,20,0,20,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,20,0,21,0,20,0,19,0,20,0,20,0, +19,0,19,0,20,0,20,0,19,0,20,0,21,0,20,0,20,0,21,0,20,0,20,0,21,0,20,0,20,0,21,0, +21,0,20,0,20,0,20,0,20,0,20,0,20,0,21,0,21,0,20,0,20,0,20,0,21,0,22,0,22,0,21,0, +21,0,21,0,22,0,22,0,21,0,21,0,22,0,22,0,22,0,21,0,21,0,22,0,22,0,22,0,22,0,21,0, +21,0,21,0,22,0,23,0,23,0,22,0,22,0,23,0,23,0,23,0,23,0,22,0,22,0,22,0,23,0,23,0, +22,0,22,0,22,0,23,0,24,0,23,0,22,0,22,0,23,0,22,0,23,0,23,0,22,0,23,0,24,0,24,0, +23,0,23,0,24,0,24,0,23,0,24,0,23,0,24,0,24,0,23,0,24,0,25,0,24,0,23,0,24,0,24,0, +24,0,24,0,24,0,24,0,25,0,25,0,24,0,24,0,24,0,24,0,25,0,24,0,25,0,25,0,25,0,25,0, +25,0,25,0,26,0,25,0,24,0,25,0,26,0,26,0,26,0,26,0,25,0,25,0,25,0,26,0,27,0,26,0, +26,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,26,0,25,0,26,0,27,0,28,0,27,0,26,0,27,0, +27,0,27,0,27,0,26,0,27,0,28,0,27,0,27,0,27,0,26,0,27,0,28,0,27,0,27,0,27,0,28,0, +28,0,28,0,27,0,28,0,28,0,28,0,27,0,28,0,28,0,28,0,27,0,28,0,28,0,28,0,29,0,29,0, +28,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,28,0,29,0,30,0,30,0,29,0,29,0,29,0,30,0, +30,0,29,0,29,0,28,0,30,0,30,0,29,0,29,0,31,0,30,0,30,0,30,0,30,0,30,0,30,0,31,0, +31,0,31,0,30,0,31,0,31,0,30,0,30,0,31,0,31,0,31,0,32,0,31,0,32,0,31,0,30,0,31,0, +31,0,31,0,32,0,32,0,32,0,32,0,31,0,32,0,32,0,31,0,31,0,31,0,32,0,33,0,33,0,32,0, +32,0,33,0,33,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0, +33,0,33,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,34,0,34,0,33,0,34,0,35,0,34,0,33,0, +33,0,34,0,35,0,34,0,33,0,34,0,35,0,35,0,34,0,35,0,36,0,35,0,34,0,35,0,35,0,35,0, +35,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,36,0,36,0,36,0,35,0,35,0,36,0,36,0,36,0, +36,0,36,0,36,0,36,0,36,0,36,0,36,0,37,0,36,0,36,0,37,0,37,0,36,0,37,0,37,0,37,0, +37,0,36,0,36,0,37,0,37,0,38,0,39,0,38,0,37,0,38,0,38,0,37,0,37,0,38,0,38,0,37,0, +37,0,38,0,37,0,38,0,39,0,39,0,38,0,39,0,38,0,38,0,39,0,38,0,38,0,39,0,39,0,38,0, +39,0,38,0,38,0,40,0,39,0,38,0,39,0,39,0,40,0,40,0,39,0,39,0,40,0,40,0,39,0,39,0, +39,0,39,0,39,0,39,0,39,0,39,0,39,0,40,0,41,0,41,0,41,0,40,0,40,0,40,0,40,0,40,0, +40,0,40,0,41,0,41,0,39,0,40,0,41,0,40,0,41,0,41,0,41,0,41,0,41,0,41,0,40,0,41,0, +42,0,41,0,41,0,41,0,41,0,41,0,42,0,42,0,41,0,42,0,42,0,41,0,41,0,41,0,42,0,42,0, +42,0,43,0,43,0,42,0,42,0,42,0,42,0,43,0,43,0,42,0,42,0,43,0,43,0,43,0,43,0,43,0, +43,0,43,0,43,0,43,0,42,0,43,0,44,0,43,0,43,0,43,0,43,0,43,0,42,0,43,0,44,0,44,0, +43,0,44,0,44,0,44,0,44,0,43,0,44,0,45,0,44,0,44,0,44,0,44,0,43,0,43,0,44,0,45,0, +45,0,44,0,44,0,44,0,44,0,44,0,44,0,45,0,45,0,44,0,43,0,45,0,45,0,45,0,45,0,44,0, +45,0,45,0,45,0,45,0,45,0,45,0,46,0,46,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0, +46,0,46,0,47,0,46,0,46,0,47,0,47,0,46,0,46,0,47,0,46,0,47,0,47,0,47,0,46,0,46,0, +47,0,47,0,46,0,47,0,47,0,48,0,48,0,47,0,47,0,48,0,48,0,48,0,48,0,47,0,47,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,49,0,49,0,48,0,48,0, +48,0,49,0,49,0,48,0,48,0,49,0,50,0,49,0,49,0,49,0,49,0,50,0,50,0,50,0,50,0,50,0, +49,0,49,0,49,0,50,0,50,0,49,0,49,0,49,0,50,0,50,0,50,0,50,0,50,0,50,0,51,0,51,0, +49,0,49,0,51,0,51,0,51,0,52,0,51,0,51,0,50,0,50,0,50,0,51,0,51,0,51,0,51,0,51,0, +52,0,51,0,51,0,51,0,51,0,51,0,52,0,51,0,51,0,52,0,51,0,51,0,52,0,51,0,52,0,52,0, +51,0,51,0,51,0,52,0,52,0,52,0,52,0,52,0,52,0,51,0,53,0,52,0,52,0,53,0,52,0,51,0, +53,0,53,0,52,0,52,0,52,0,53,0,53,0,52,0,53,0,53,0,52,0,52,0,52,0,52,0,52,0,53,0, +53,0,53,0,53,0,52,0,52,0,53,0,53,0,52,0,53,0,54,0,54,0,52,0,53,0,53,0,53,0,53,0, +53,0,53,0,53,0,53,0,53,0,53,0,53,0,54,0,54,0,53,0,54,0,54,0,54,0,53,0,53,0,53,0, +54,0,53,0,53,0,53,0,53,0,54,0,53,0,53,0,54,0,53,0,53,0,54,0,54,0,54,0,54,0,54,0, +53,0,53,0,54,0,53,0,53,0,53,0,54,0,55,0,54,0,53,0,54,0,54,0,54,0,54,0,54,0,55,0, +55,0,55,0,55,0,54,0,54,0,55,0,55,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0,55,0,53,0, +53,0,55,0,55,0,55,0,55,0,54,0,55,0,56,0,55,0,55,0,56,0,55,0,55,0,56,0,55,0,55,0, +55,0,55,0,55,0,55,0,56,0,56,0,55,0,55,0,55,0,55,0,55,0,56,0,55,0,55,0,56,0,55,0, +55,0,56,0,55,0,55,0,55,0,55,0,55,0,55,0,55,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, +55,0,55,0,56,0,56,0,56,0,57,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,57,0,57,0,57,0, +56,0,56,0,57,0,57,0,56,0,56,0,56,0,57,0,57,0,58,0,57,0,57,0,58,0,57,0,57,0,57,0, +57,0,57,0,58,0,58,0,58,0,57,0,57,0,57,0,58,0,58,0,58,0,57,0,58,0,57,0,57,0,58,0, +58,0,57,0,58,0,59,0,59,0,58,0,58,0,59,0,59,0,57,0,58,0,59,0,58,0,58,0,59,0,58,0, +58,0,58,0,58,0,59,0,59,0,59,0,59,0,58,0,59,0,59,0,58,0,58,0,59,0,59,0,59,0,59,0, +60,0,60,0,59,0,58,0,59,0,60,0,59,0,59,0,59,0,59,0,60,0,60,0,59,0,60,0,60,0,59,0, +60,0,61,0,60,0,60,0,60,0,59,0,61,0,61,0,60,0,61,0,61,0,60,0,61,0,61,0,61,0,60,0, +60,0,61,0,61,0,61,0,61,0,61,0,61,0,61,0,61,0,61,0,62,0,61,0,61,0,62,0,62,0,62,0, +62,0,62,0,62,0,62,0,61,0,62,0,63,0,62,0,62,0,62,0,62,0,62,0,63,0,63,0,62,0,63,0, +63,0,62,0,63,0,63,0,63,0,63,0,63,0,63,0,62,0,63,0,64,0,63,0,63,0,63,0,63,0,63,0, +64,0,64,0,64,0,63,0,63,0,63,0,64,0,64,0,63,0,63,0,64,0,64,0,64,0,63,0,63,0,64,0, +64,0,64,0,63,0,64,0,64,0,65,0,65,0,65,0,65,0,65,0,64,0,65,0,65,0,64,0,64,0,64,0, +65,0,65,0,65,0,65,0,65,0,65,0,65,0,66,0,66,0,66,0,66,0,66,0,65,0,65,0,66,0,66,0, +66,0,66,0,66,0,66,0,66,0,67,0,67,0,65,0,65,0,66,0,66,0,67,0,67,0,67,0,67,0,67,0, +67,0,67,0,66,0,67,0,67,0,67,0,68,0,67,0,66,0,67,0,68,0,67,0,67,0,68,0,67,0,67,0, +68,0,68,0,67,0,68,0,68,0,68,0,67,0,68,0,68,0,68,0,68,0,69,0,69,0,69,0,69,0,69,0, +69,0,69,0,69,0,69,0,69,0,69,0,69,0,70,0,69,0,69,0,70,0,70,0,70,0,70,0,70,0,70,0, +70,0,70,0,70,0,70,0,70,0,70,0,70,0,71,0,71,0,71,0,71,0,70,0,70,0,71,0,72,0,71,0, +71,0,71,0,72,0,72,0,72,0,72,0,72,0,71,0,72,0,73,0,72,0,71,0,72,0,73,0,72,0,72,0, +72,0,73,0,72,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,74,0,74,0,74,0,73,0,73,0, +73,0,73,0,74,0,73,0,73,0,74,0,74,0,74,0,75,0,75,0,74,0,75,0,74,0,74,0,75,0,75,0, +75,0,74,0,74,0,75,0,75,0,75,0,75,0,75,0,75,0,76,0,75,0,75,0,76,0,76,0,76,0,76,0, +75,0,75,0,76,0,76,0,76,0,76,0,75,0,76,0,76,0,75,0,76,0,76,0,76,0,76,0,76,0,77,0, +77,0,76,0,76,0,76,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0, +77,0,78,0,78,0,77,0,77,0,78,0,77,0,77,0,78,0,78,0,77,0,78,0,78,0,78,0,78,0,78,0, +78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,79,0,78,0,77,0,78,0,79,0,79,0,78,0,78,0, +79,0,79,0,79,0,79,0,79,0,79,0,80,0,79,0,78,0,79,0,79,0,79,0,79,0,79,0,80,0,80,0, +80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,79,0,80,0,80,0,81,0,81,0,80,0,80,0, +80,0,81,0,81,0,80,0,80,0,80,0,81,0,81,0,80,0,81,0,81,0,81,0,81,0,81,0,81,0,81,0, +81,0,81,0,82,0,82,0,81,0,81,0,81,0,81,0,82,0,82,0,82,0,82,0,82,0,82,0,82,0,81,0, +82,0,82,0,82,0,82,0,82,0,82,0,82,0,82,0,82,0,83,0,82,0,82,0,82,0,83,0,83,0,83,0, +83,0,83,0,83,0,83,0,83,0,83,0,83,0,84,0,84,0,83,0,83,0,84,0,84,0,83,0,82,0,83,0, +83,0,83,0,83,0,83,0,84,0,84,0,84,0,84,0,83,0,83,0,84,0,84,0,84,0,83,0,84,0,84,0, +84,0,84,0,84,0,84,0,84,0,84,0,84,0,85,0,85,0,85,0,85,0,85,0,85,0,84,0,84,0,85,0, +85,0,85,0,85,0,86,0,86,0,85,0,84,0,85,0,85,0,86,0,86,0,85,0,85,0,86,0,86,0,86,0, +86,0,86,0,86,0,86,0,87,0,86,0,86,0,86,0,87,0,87,0,86,0,86,0,86,0,87,0,87,0,87,0, +87,0,86,0,86,0,87,0,87,0,87,0,86,0,87,0,87,0,87,0,87,0,86,0,87,0,87,0,87,0,87,0, +87,0,87,0,87,0,88,0,87,0,87,0,87,0,88,0,87,0,87,0,87,0,87,0,87,0,87,0,87,0,87,0, +87,0,87,0,88,0,88,0,88,0,87,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,89,0,88,0, +88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0,88,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/wood1.pcm b/src/client/sound/data/wood1.pcm new file mode 100755 index 0000000..24f0e36 --- /dev/null +++ b/src/client/sound/data/wood1.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_wood1[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,31,0,10,0,244,255,220,255,196,255,177,255,166,255,158,255, +154,255,155,255,161,255,165,255,162,255,157,255,155,255,160,255,167,255,169,255,163,255,152,255,144,255,141,255,133,255,116,255, +98,255,89,255,86,255,82,255,81,255,88,255,104,255,127,255,150,255,169,255,178,255,177,255,171,255,164,255,158,255,151,255, +140,255,127,255,115,255,111,255,122,255,147,255,177,255,204,255,226,255,238,255,240,255,236,255,232,255,242,255,15,0,31,0, +3,0,212,255,185,255,175,255,167,255,169,255,173,255,148,255,111,255,128,255,4,0,21,1,191,2,38,5,92,8,253,11, +88,15,22,18,71,20,227,21,213,22,104,23,65,24,215,25,13,28,98,30,140,32,140,34,19,36,183,36,213,36,69,37, +63,38,115,39,189,40,45,42,189,43,69,45,145,46,151,47,136,48,130,49,113,50,64,51,165,51,71,51,71,50,236,48, +254,46,76,44,44,41,213,37,26,34,9,30,0,26,50,22,121,18,125,14,10,10,57,5,3,0,51,250,245,243,182,237, +175,231,32,226,48,221,134,216,235,211,146,207,24,203,238,197,192,192,117,188,171,184,218,180,136,177,69,175,222,173,228,172, +44,172,218,171,246,171,240,171,113,171,251,170,188,170,64,170,220,169,77,170,67,171,90,172,30,174,163,176,50,179,225,181, +58,185,196,188,162,191,217,193,227,195,188,197,223,198,57,199,134,199,79,200,92,201,152,202,10,204,243,204,194,204,50,204, +253,203,178,203,252,202,56,202,116,201,138,200,193,199,97,199,145,199,121,200,243,201,203,203,253,205,61,208,71,210,103,212, +209,214,72,217,233,219,244,222,28,226,94,229,79,233,187,237,209,241,183,245,232,249,238,253,81,1,101,4,105,7,56,10, +246,12,6,16,144,19,103,23,33,27,151,30,50,34,25,38,21,42,75,46,197,50,40,55,108,59,193,63,30,68,130,72, +1,77,100,81,60,85,103,88,7,91,50,93,26,95,7,97,233,98,161,100,29,102,6,103,50,103,221,102,30,102,239,100, +92,99,93,97,12,95,176,92,50,90,84,87,99,84,185,81,16,79,31,76,255,72,161,69,216,65,186,61,149,57,200,53, +96,50,241,46,43,43,49,39,12,35,118,30,139,25,220,20,126,16,31,12,198,7,105,3,215,254,99,250,98,246,164,242, +35,239,29,236,133,233,42,231,31,229,127,227,51,226,50,225,154,224,94,224,114,224,241,224,198,225,209,226,44,228,201,229, +65,231,106,232,133,233,174,234,180,235,145,236,116,237,74,238,244,238,131,239,236,239,217,239,69,239,204,238,180,238,129,238, +11,238,154,237,38,237,144,236,253,235,106,235,188,234,11,234,92,233,123,232,120,231,122,230,49,229,150,227,125,226,24,226, +133,225,141,224,177,223,216,222,175,221,114,220,82,219,21,218,217,216,253,215,80,215,141,214,226,213,81,213,185,212,91,212, +85,212,77,212,41,212,68,212,175,212,48,213,239,213,22,215,55,216,39,217,65,218,91,219,241,219,69,220,249,220,234,221, +167,222,88,223,35,224,184,224,16,225,95,225,127,225,130,225,204,225,76,226,165,226,231,226,68,227,138,227,189,227,57,228, +222,228,97,229,4,230,227,230,166,231,84,232,42,233,8,234,217,234,10,236,195,237,107,239,172,240,235,241,75,243,137,244, +185,245,20,247,143,248,12,250,136,251,240,252,27,254,10,255,214,255,126,0,41,1,11,2,242,2,160,3,58,4,222,4, +107,5,235,5,130,6,10,7,89,7,155,7,215,7,221,7,203,7,216,7,235,7,213,7,141,7,41,7,172,6,6,6, +73,5,151,4,254,3,128,3,246,2,75,2,161,1,26,1,197,0,157,0,140,0,150,0,179,0,178,0,169,0,215,0, +53,1,162,1,39,2,225,2,205,3,191,4,160,5,121,6,90,7,79,8,89,9,110,10,144,11,188,12,230,13,3,15, +38,16,88,17,116,18,132,19,194,20,37,22,123,23,195,24,19,26,85,27,105,28,114,29,149,30,170,31,185,32,249,33, +69,35,112,36,134,37,105,38,5,39,130,39,225,39,7,40,9,40,18,40,6,40,171,39,55,39,246,38,173,38,34,38, +112,37,146,36,110,35,31,34,192,32,63,31,172,29,61,28,235,26,143,25,45,24,201,22,68,21,153,19,232,17,68,16, +159,14,23,13,203,11,151,10,103,9,78,8,32,7,200,5,135,4,110,3,80,2,44,1,41,0,77,255,108,254,144,253, +228,252,56,252,119,251,220,250,99,250,232,249,141,249,105,249,100,249,119,249,174,249,250,249,54,250,107,250,185,250,47,251, +216,251,170,252,111,253,32,254,238,254,208,255,142,0,45,1,219,1,138,2,40,3,203,3,105,4,229,4,72,5,165,5, +11,6,125,6,228,6,58,7,132,7,214,7,75,8,192,8,2,9,46,9,99,9,155,9,196,9,206,9,197,9,192,9, +201,9,232,9,255,9,249,9,238,9,228,9,206,9,189,9,170,9,129,9,74,9,21,9,226,8,176,8,120,8,42,8, +201,7,125,7,72,7,16,7,231,6,220,6,208,6,174,6,132,6,100,6,66,6,28,6,21,6,43,6,54,6,35,6, +234,5,141,5,20,5,128,4,235,3,98,3,197,2,22,2,124,1,1,1,133,0,242,255,109,255,24,255,185,254,47,254, +184,253,122,253,73,253,3,253,202,252,185,252,173,252,143,252,119,252,104,252,84,252,54,252,26,252,17,252,8,252,235,251, +214,251,214,251,207,251,161,251,99,251,64,251,41,251,253,250,214,250,206,250,197,250,164,250,137,250,149,250,156,250,117,250, +89,250,118,250,156,250,161,250,153,250,162,250,192,250,216,250,223,250,231,250,0,251,14,251,240,250,216,250,246,250,14,251, +1,251,255,250,16,251,7,251,218,250,156,250,101,250,58,250,41,250,57,250,92,250,150,250,242,250,102,251,247,251,163,252, +77,253,231,253,118,254,20,255,216,255,175,0,136,1,108,2,85,3,61,4,30,5,235,5,157,6,76,7,30,8,10,9, +234,9,160,10,27,11,126,11,4,12,150,12,255,12,92,13,227,13,124,14,244,14,98,15,232,15,80,16,129,16,192,16, +21,17,70,17,75,17,76,17,120,17,200,17,1,18,30,18,61,18,88,18,69,18,247,17,166,17,119,17,67,17,255,16, +215,16,183,16,103,16,234,15,100,15,221,14,70,14,149,13,202,12,233,11,7,11,53,10,113,9,186,8,10,8,82,7, +134,6,176,5,234,4,40,4,94,3,172,2,17,2,96,1,127,0,123,255,121,254,115,253,71,252,23,251,17,250,46,249, +94,248,143,247,197,246,14,246,75,245,130,244,237,243,116,243,212,242,38,242,174,241,106,241,37,241,224,240,204,240,219,240, +214,240,194,240,190,240,203,240,211,240,213,240,243,240,50,241,101,241,132,241,208,241,89,242,211,242,43,243,159,243,50,244, +182,244,41,245,156,245,24,246,140,246,238,246,103,247,254,247,136,248,245,248,84,249,188,249,36,250,102,250,161,250,2,251, +93,251,154,251,228,251,68,252,162,252,234,252,27,253,56,253,59,253,43,253,30,253,6,253,225,252,185,252,141,252,94,252, +43,252,234,251,156,251,76,251,241,250,133,250,37,250,217,249,134,249,58,249,19,249,254,248,245,248,9,249,52,249,84,249, +82,249,86,249,142,249,211,249,7,250,86,250,201,250,56,251,136,251,208,251,62,252,200,252,90,253,8,254,201,254,112,255, +244,255,105,0,241,0,132,1,245,1,106,2,37,3,244,3,149,4,37,5,193,5,62,6,143,6,237,6,94,7,174,7, +225,7,20,8,76,8,128,8,168,8,198,8,223,8,232,8,205,8,147,8,95,8,39,8,189,7,64,7,218,6,113,6, +1,6,164,5,76,5,235,4,137,4,47,4,201,3,65,3,178,2,48,2,156,1,249,0,106,0,233,255,94,255,200,254, +62,254,203,253,80,253,200,252,82,252,0,252,193,251,116,251,24,251,204,250,132,250,38,250,202,249,140,249,98,249,51,249, +11,249,255,248,240,248,202,248,167,248,150,248,146,248,145,248,148,248,160,248,170,248,180,248,213,248,11,249,70,249,129,249, +178,249,220,249,0,250,19,250,32,250,56,250,93,250,143,250,204,250,16,251,69,251,91,251,117,251,168,251,216,251,252,251, +36,252,84,252,134,252,167,252,173,252,167,252,152,252,127,252,94,252,44,252,225,251,130,251,50,251,250,250,172,250,69,250, +229,249,135,249,38,249,208,248,129,248,50,248,228,247,167,247,134,247,112,247,79,247,41,247,9,247,246,246,219,246,187,246, +194,246,228,246,234,246,224,246,248,246,39,247,59,247,77,247,151,247,255,247,84,248,166,248,4,249,93,249,157,249,210,249, +46,250,172,250,24,251,115,251,209,251,38,252,93,252,119,252,160,252,238,252,53,253,108,253,178,253,245,253,21,254,24,254, +25,254,37,254,45,254,55,254,92,254,141,254,177,254,201,254,225,254,244,254,245,254,240,254,245,254,6,255,35,255,61,255, +76,255,96,255,112,255,117,255,122,255,132,255,151,255,162,255,166,255,197,255,236,255,241,255,228,255,218,255,231,255,9,0, +21,0,10,0,9,0,13,0,16,0,28,0,47,0,69,0,78,0,70,0,56,0,33,0,3,0,229,255,204,255,190,255, +180,255,161,255,135,255,109,255,75,255,35,255,0,255,218,254,173,254,151,254,135,254,100,254,81,254,78,254,57,254,39,254, +34,254,13,254,231,253,180,253,141,253,129,253,112,253,90,253,80,253,66,253,54,253,51,253,44,253,35,253,16,253,248,252, +244,252,250,252,238,252,216,252,211,252,229,252,242,252,226,252,211,252,220,252,238,252,12,253,65,253,125,253,172,253,218,253, +18,254,76,254,135,254,203,254,25,255,125,255,236,255,74,0,147,0,215,0,30,1,97,1,148,1,187,1,211,1,207,1, +186,1,163,1,138,1,114,1,84,1,49,1,10,1,203,0,120,0,46,0,226,255,144,255,77,255,29,255,242,254,190,254, +128,254,65,254,0,254,185,253,120,253,68,253,19,253,221,252,176,252,159,252,160,252,162,252,157,252,137,252,106,252,69,252, +33,252,5,252,244,251,237,251,249,251,21,252,52,252,64,252,71,252,109,252,162,252,206,252,17,253,96,253,157,253,229,253, +67,254,160,254,6,255,112,255,207,255,36,0,103,0,157,0,213,0,22,1,98,1,177,1,3,2,86,2,144,2,181,2, +223,2,0,3,10,3,13,3,26,3,38,3,31,3,12,3,251,2,230,2,195,2,153,2,100,2,24,2,194,1,125,1, +56,1,226,0,144,0,60,0,214,255,105,255,239,254,99,254,227,253,134,253,61,253,239,252,152,252,65,252,237,251,154,251, +71,251,249,250,183,250,117,250,47,250,10,250,9,250,1,250,241,249,255,249,46,250,78,250,78,250,94,250,148,250,205,250, +13,251,93,251,172,251,242,251,55,252,128,252,207,252,35,253,131,253,238,253,83,254,184,254,36,255,135,255,217,255,35,0, +127,0,231,0,62,1,134,1,220,1,61,2,146,2,195,2,227,2,21,3,68,3,90,3,101,3,103,3,94,3,97,3, +112,3,110,3,76,3,28,3,233,2,170,2,103,2,38,2,214,1,128,1,54,1,232,0,147,0,61,0,222,255,132,255, +57,255,227,254,115,254,2,254,162,253,79,253,7,253,208,252,165,252,117,252,64,252,15,252,224,251,174,251,135,251,123,251, +127,251,134,251,145,251,168,251,192,251,206,251,225,251,9,252,49,252,74,252,106,252,169,252,253,252,70,253,137,253,228,253, +60,254,114,254,168,254,240,254,66,255,162,255,254,255,91,0,196,0,31,1,104,1,176,1,251,1,75,2,150,2,225,2, +63,3,148,3,198,3,229,3,4,4,42,4,71,4,70,4,62,4,62,4,52,4,28,4,255,3,217,3,167,3,117,3, +83,3,61,3,38,3,5,3,226,2,193,2,145,2,82,2,34,2,246,1,190,1,149,1,128,1,111,1,88,1,73,1, +82,1,100,1,109,1,119,1,134,1,147,1,159,1,169,1,182,1,209,1,248,1,37,2,86,2,132,2,158,2,169,2, +204,2,247,2,4,3,8,3,21,3,43,3,72,3,90,3,111,3,155,3,193,3,198,3,185,3,172,3,168,3,163,3, +157,3,164,3,175,3,166,3,141,3,115,3,97,3,73,3,37,3,5,3,238,2,224,2,220,2,213,2,196,2,173,2, +146,2,131,2,130,2,129,2,127,2,134,2,137,2,127,2,123,2,125,2,124,2,138,2,167,2,189,2,206,2,232,2, +10,3,45,3,68,3,86,3,118,3,166,3,206,3,221,3,229,3,240,3,231,3,209,3,202,3,202,3,191,3,181,3, +185,3,190,3,172,3,137,3,105,3,81,3,55,3,26,3,6,3,251,2,227,2,193,2,156,2,114,2,68,2,19,2, +223,1,173,1,121,1,59,1,239,0,163,0,105,0,52,0,246,255,186,255,134,255,97,255,77,255,50,255,27,255,16,255, +3,255,249,254,246,254,253,254,22,255,38,255,37,255,53,255,77,255,87,255,95,255,97,255,98,255,114,255,123,255,122,255, +141,255,165,255,165,255,159,255,154,255,147,255,150,255,151,255,128,255,104,255,96,255,82,255,51,255,12,255,227,254,189,254, +155,254,115,254,72,254,33,254,0,254,217,253,168,253,118,253,75,253,34,253,254,252,240,252,239,252,234,252,226,252,217,252, +217,252,228,252,235,252,1,253,51,253,99,253,137,253,178,253,224,253,33,254,116,254,203,254,49,255,153,255,242,255,71,0, +161,0,251,0,82,1,181,1,49,2,176,2,42,3,170,3,42,4,165,4,27,5,133,5,231,5,68,6,156,6,251,6, +102,7,209,7,45,8,134,8,238,8,77,9,149,9,222,9,31,10,69,10,94,10,120,10,146,10,156,10,144,10,144,10, +175,10,206,10,200,10,159,10,111,10,49,10,215,9,125,9,60,9,13,9,223,8,167,8,116,8,76,8,24,8,223,7, +187,7,170,7,152,7,111,7,54,7,2,7,220,6,205,6,195,6,167,6,145,6,140,6,133,6,112,6,80,6,58,6, +57,6,61,6,64,6,74,6,86,6,86,6,69,6,53,6,50,6,49,6,34,6,2,6,220,5,184,5,134,5,76,5, +34,5,0,5,217,4,163,4,101,4,34,4,213,3,143,3,99,3,68,3,27,3,216,2,141,2,76,2,255,1,161,1, +71,1,248,0,198,0,170,0,127,0,67,0,6,0,195,255,119,255,37,255,222,254,166,254,103,254,34,254,221,253,159,253, +118,253,76,253,18,253,220,252,161,252,87,252,2,252,164,251,87,251,24,251,202,250,124,250,56,250,255,249,207,249,149,249, +98,249,73,249,32,249,227,248,173,248,120,248,73,248,41,248,15,248,251,247,231,247,205,247,202,247,233,247,16,248,42,248, +59,248,89,248,127,248,149,248,162,248,191,248,230,248,15,249,55,249,92,249,121,249,146,249,176,249,219,249,13,250,58,250, +94,250,123,250,144,250,163,250,200,250,254,250,63,251,145,251,232,251,58,252,129,252,171,252,198,252,253,252,81,253,178,253, +16,254,94,254,159,254,217,254,5,255,53,255,114,255,182,255,5,0,94,0,177,0,241,0,35,1,89,1,145,1,192,1, +246,1,70,2,165,2,247,2,40,3,78,3,130,3,185,3,213,3,228,3,6,4,61,4,115,4,163,4,203,4,227,4, +243,4,1,5,8,5,18,5,24,5,23,5,40,5,71,5,73,5,49,5,21,5,241,4,201,4,171,4,141,4,99,4, +54,4,9,4,216,3,177,3,147,3,109,3,69,3,42,3,13,3,230,2,188,2,149,2,120,2,98,2,72,2,37,2, +251,1,210,1,184,1,171,1,160,1,147,1,144,1,151,1,145,1,119,1,89,1,47,1,0,1,230,0,217,0,203,0, +201,0,208,0,212,0,203,0,181,0,162,0,145,0,128,0,113,0,92,0,65,0,38,0,7,0,235,255,200,255,152,255, +120,255,103,255,63,255,253,254,175,254,101,254,44,254,5,254,238,253,232,253,236,253,235,253,228,253,230,253,240,253,236,253, +219,253,213,253,238,253,15,254,14,254,249,253,7,254,44,254,57,254,53,254,55,254,60,254,61,254,48,254,30,254,22,254, +18,254,10,254,12,254,17,254,9,254,251,253,234,253,222,253,228,253,225,253,214,253,216,253,209,253,199,253,209,253,214,253, +205,253,197,253,192,253,202,253,223,253,234,253,231,253,224,253,228,253,236,253,231,253,235,253,3,254,11,254,8,254,28,254, +73,254,117,254,145,254,180,254,233,254,31,255,85,255,126,255,146,255,178,255,237,255,45,0,102,0,154,0,218,0,33,1, +74,1,99,1,142,1,174,1,160,1,133,1,146,1,182,1,190,1,169,1,156,1,154,1,134,1,87,1,50,1,35,1, +20,1,15,1,23,1,31,1,35,1,32,1,19,1,9,1,4,1,252,0,239,0,227,0,235,0,5,1,9,1,243,0, +216,0,189,0,177,0,183,0,179,0,163,0,153,0,141,0,132,0,136,0,140,0,127,0,105,0,98,0,108,0,111,0, +112,0,113,0,92,0,57,0,41,0,39,0,12,0,213,255,175,255,162,255,143,255,106,255,53,255,1,255,228,254,205,254, +174,254,139,254,108,254,94,254,89,254,61,254,9,254,202,253,152,253,118,253,91,253,83,253,78,253,39,253,3,253,2,253, +252,252,214,252,154,252,117,252,124,252,130,252,127,252,148,252,182,252,188,252,151,252,104,252,80,252,50,252,6,252,238,251, +223,251,193,251,142,251,95,251,83,251,90,251,96,251,118,251,143,251,155,251,170,251,179,251,173,251,171,251,191,251,231,251, +24,252,70,252,98,252,98,252,98,252,121,252,151,252,166,252,179,252,227,252,30,253,42,253,22,253,33,253,93,253,172,253, +232,253,16,254,58,254,96,254,122,254,141,254,167,254,210,254,254,254,44,255,97,255,129,255,132,255,131,255,135,255,140,255, +155,255,181,255,206,255,231,255,13,0,58,0,83,0,85,0,78,0,84,0,104,0,121,0,144,0,178,0,193,0,186,0, +187,0,205,0,208,0,180,0,161,0,172,0,167,0,136,0,111,0,102,0,107,0,122,0,134,0,135,0,139,0,162,0, +184,0,181,0,177,0,184,0,188,0,177,0,153,0,137,0,133,0,121,0,109,0,114,0,145,0,191,0,218,0,217,0, +206,0,209,0,235,0,254,0,245,0,245,0,14,1,48,1,75,1,87,1,105,1,145,1,169,1,160,1,138,1,108,1, +88,1,98,1,117,1,124,1,133,1,140,1,122,1,83,1,50,1,31,1,13,1,244,0,239,0,252,0,229,0,166,0, +103,0,48,0,236,255,165,255,137,255,146,255,111,255,41,255,16,255,1,255,198,254,133,254,105,254,114,254,122,254,96,254, +69,254,65,254,71,254,84,254,92,254,84,254,74,254,57,254,38,254,34,254,43,254,56,254,74,254,103,254,147,254,180,254, +180,254,161,254,154,254,176,254,211,254,242,254,1,255,2,255,12,255,38,255,43,255,20,255,6,255,11,255,16,255,9,255, +3,255,17,255,31,255,27,255,17,255,14,255,11,255,248,254,219,254,211,254,219,254,211,254,177,254,140,254,138,254,161,254, +166,254,153,254,144,254,140,254,126,254,94,254,59,254,43,254,49,254,73,254,98,254,113,254,133,254,149,254,152,254,152,254, +160,254,185,254,214,254,230,254,249,254,14,255,28,255,59,255,93,255,117,255,159,255,214,255,5,0,51,0,103,0,158,0, +194,0,205,0,225,0,7,1,49,1,80,1,97,1,138,1,204,1,248,1,22,2,56,2,83,2,105,2,122,2,139,2, +176,2,215,2,239,2,241,2,219,2,197,2,187,2,179,2,184,2,191,2,195,2,199,2,179,2,144,2,128,2,123,2, +114,2,104,2,95,2,96,2,97,2,86,2,80,2,83,2,71,2,42,2,16,2,232,1,170,1,116,1,80,1,58,1, +63,1,65,1,41,1,28,1,25,1,248,0,203,0,190,0,216,0,235,0,213,0,196,0,200,0,174,0,120,0,91,0, +86,0,74,0,53,0,29,0,245,255,210,255,204,255,202,255,181,255,161,255,160,255,158,255,131,255,108,255,123,255,144,255, +137,255,114,255,98,255,103,255,95,255,55,255,32,255,54,255,83,255,101,255,108,255,99,255,86,255,84,255,93,255,108,255, +129,255,161,255,197,255,234,255,29,0,70,0,75,0,87,0,127,0,150,0,153,0,175,0,208,0,215,0,207,0,230,0, +19,1,26,1,6,1,26,1,85,1,121,1,112,1,109,1,148,1,176,1,151,1,134,1,165,1,189,1,178,1,173,1, +182,1,166,1,112,1,61,1,30,1,4,1,248,0,252,0,222,0,160,0,145,0,175,0,185,0,170,0,173,0,200,0, +210,0,192,0,176,0,174,0,173,0,185,0,200,0,177,0,127,0,99,0,100,0,100,0,71,0,46,0,61,0,80,0, +61,0,24,0,15,0,36,0,44,0,29,0,45,0,87,0,87,0,54,0,50,0,74,0,67,0,28,0,17,0,56,0, +105,0,135,0,161,0,191,0,196,0,183,0,192,0,214,0,232,0,7,1,59,1,106,1,107,1,65,1,32,1,7,1, +225,0,196,0,189,0,194,0,203,0,195,0,160,0,127,0,117,0,116,0,100,0,96,0,112,0,86,0,26,0,1,0, +249,255,198,255,128,255,99,255,100,255,69,255,254,254,199,254,177,254,153,254,99,254,49,254,42,254,43,254,254,253,180,253, +124,253,86,253,43,253,13,253,22,253,26,253,5,253,3,253,1,253,225,252,197,252,200,252,225,252,8,253,46,253,70,253, +76,253,85,253,109,253,141,253,173,253,213,253,6,254,50,254,81,254,100,254,95,254,75,254,94,254,166,254,244,254,32,255, +53,255,77,255,105,255,123,255,147,255,187,255,218,255,235,255,2,0,54,0,118,0,153,0,183,0,253,0,61,1,79,1, +85,1,105,1,125,1,135,1,135,1,139,1,158,1,185,1,190,1,152,1,104,1,80,1,49,1,1,1,235,0,254,0, +10,1,250,0,237,0,238,0,230,0,208,0,189,0,187,0,201,0,217,0,231,0,250,0,16,1,32,1,25,1,10,1, +10,1,7,1,252,0,254,0,254,0,247,0,9,1,43,1,63,1,77,1,104,1,121,1,104,1,83,1,94,1,126,1, +148,1,150,1,144,1,148,1,166,1,179,1,164,1,138,1,132,1,131,1,119,1,118,1,134,1,127,1,95,1,82,1, +86,1,62,1,13,1,230,0,197,0,174,0,183,0,196,0,169,0,125,0,101,0,72,0,10,0,222,255,231,255,235,255, +207,255,200,255,218,255,205,255,174,255,181,255,221,255,240,255,217,255,202,255,216,255,208,255,178,255,162,255,139,255,114,255, +135,255,177,255,192,255,199,255,225,255,247,255,229,255,188,255,180,255,198,255,206,255,222,255,239,255,217,255,171,255,158,255, +172,255,161,255,124,255,110,255,115,255,102,255,76,255,65,255,64,255,49,255,34,255,54,255,80,255,68,255,37,255,38,255, +78,255,103,255,83,255,35,255,242,254,220,254,220,254,189,254,157,254,179,254,201,254,185,254,165,254,149,254,149,254,177,254, +212,254,242,254,246,254,230,254,227,254,224,254,215,254,224,254,227,254,223,254,226,254,212,254,189,254,195,254,214,254,223,254, +238,254,12,255,28,255,6,255,245,254,8,255,26,255,24,255,17,255,9,255,251,254,231,254,195,254,139,254,116,254,153,254, +191,254,191,254,198,254,220,254,218,254,200,254,210,254,241,254,1,255,21,255,62,255,95,255,108,255,118,255,127,255,123,255, +98,255,71,255,68,255,87,255,123,255,167,255,205,255,0,0,52,0,67,0,81,0,130,0,165,0,173,0,189,0,226,0, +6,1,40,1,87,1,121,1,107,1,91,1,118,1,145,1,140,1,129,1,134,1,138,1,129,1,125,1,145,1,169,1, +180,1,181,1,182,1,183,1,165,1,132,1,120,1,108,1,49,1,236,0,195,0,159,0,118,0,106,0,134,0,176,0, +197,0,195,0,192,0,197,0,193,0,158,0,113,0,123,0,176,0,188,0,136,0,74,0,36,0,7,0,236,255,230,255, +226,255,195,255,158,255,135,255,120,255,108,255,91,255,73,255,71,255,74,255,66,255,65,255,76,255,74,255,64,255,73,255, +91,255,60,255,234,254,172,254,170,254,168,254,131,254,110,254,140,254,193,254,248,254,29,255,37,255,28,255,32,255,59,255, +79,255,66,255,47,255,46,255,44,255,44,255,61,255,87,255,99,255,88,255,84,255,98,255,123,255,163,255,194,255,185,255, +179,255,215,255,10,0,29,0,24,0,54,0,117,0,131,0,87,0,56,0,71,0,107,0,132,0,135,0,134,0,140,0, +147,0,155,0,177,0,206,0,223,0,240,0,12,1,47,1,73,1,67,1,31,1,10,1,24,1,47,1,46,1,26,1, +6,1,219,0,151,0,101,0,64,0,20,0,0,0,247,255,217,255,183,255,161,255,131,255,86,255,64,255,82,255,73,255, +29,255,15,255,9,255,225,254,199,254,222,254,10,255,40,255,56,255,68,255,40,255,243,254,233,254,252,254,21,255,87,255, +158,255,162,255,133,255,128,255,135,255,138,255,158,255,215,255,35,0,89,0,113,0,111,0,71,0,22,0,16,0,37,0, +35,0,25,0,47,0,90,0,108,0,86,0,55,0,33,0,10,0,237,255,207,255,173,255,128,255,80,255,60,255,60,255, +26,255,224,254,197,254,183,254,149,254,100,254,45,254,21,254,56,254,99,254,114,254,139,254,190,254,220,254,202,254,182,254, +187,254,174,254,144,254,159,254,209,254,225,254,206,254,200,254,230,254,25,255,61,255,69,255,79,255,117,255,152,255,150,255, +148,255,174,255,191,255,199,255,227,255,235,255,201,255,180,255,195,255,205,255,194,255,211,255,2,0,23,0,34,0,73,0, +103,0,117,0,142,0,149,0,147,0,189,0,3,1,28,1,250,0,229,0,249,0,243,0,192,0,164,0,186,0,211,0, +218,0,241,0,21,1,32,1,36,1,70,1,108,1,116,1,99,1,85,1,87,1,81,1,73,1,88,1,105,1,107,1, +111,1,130,1,154,1,157,1,145,1,154,1,168,1,160,1,143,1,132,1,124,1,102,1,65,1,57,1,84,1,105,1, +101,1,76,1,39,1,16,1,13,1,5,1,242,0,251,0,48,1,91,1,83,1,51,1,18,1,226,0,187,0,207,0, +1,1,2,1,213,0,177,0,161,0,145,0,131,0,131,0,131,0,124,0,143,0,163,0,126,0,70,0,59,0,61,0, +43,0,24,0,20,0,10,0,231,255,189,255,164,255,159,255,171,255,190,255,191,255,184,255,191,255,213,255,235,255,243,255, +254,255,19,0,24,0,8,0,240,255,201,255,180,255,206,255,218,255,178,255,154,255,183,255,217,255,214,255,203,255,225,255, +247,255,233,255,236,255,12,0,255,255,209,255,205,255,231,255,240,255,240,255,254,255,247,255,205,255,190,255,224,255,249,255, +247,255,255,255,31,0,61,0,76,0,97,0,132,0,141,0,113,0,83,0,74,0,85,0,83,0,57,0,49,0,67,0, +65,0,41,0,19,0,5,0,2,0,18,0,38,0,40,0,41,0,70,0,87,0,60,0,49,0,92,0,137,0,149,0, +154,0,157,0,137,0,102,0,92,0,122,0,159,0,177,0,182,0,187,0,192,0,183,0,163,0,157,0,169,0,182,0, +197,0,211,0,208,0,197,0,196,0,202,0,220,0,245,0,15,1,42,1,44,1,13,1,232,0,214,0,221,0,229,0, +202,0,175,0,189,0,203,0,186,0,159,0,139,0,137,0,159,0,188,0,209,0,224,0,231,0,227,0,211,0,186,0, +171,0,176,0,199,0,231,0,7,1,25,1,21,1,7,1,10,1,29,1,38,1,37,1,40,1,47,1,66,1,88,1, +83,1,66,1,76,1,112,1,138,1,142,1,161,1,204,1,205,1,151,1,104,1,104,1,134,1,147,1,120,1,91,1, +86,1,95,1,103,1,102,1,98,1,106,1,119,1,120,1,110,1,97,1,92,1,80,1,60,1,58,1,73,1,79,1, +82,1,95,1,104,1,83,1,44,1,19,1,5,1,244,0,241,0,252,0,250,0,245,0,255,0,5,1,245,0,214,0, +186,0,173,0,167,0,150,0,132,0,116,0,88,0,67,0,62,0,48,0,25,0,0,0,234,255,238,255,0,0,3,0, +5,0,18,0,20,0,7,0,246,255,235,255,223,255,204,255,197,255,185,255,138,255,95,255,91,255,94,255,86,255,70,255, +45,255,25,255,15,255,5,255,254,254,2,255,13,255,26,255,32,255,39,255,49,255,48,255,55,255,93,255,137,255,158,255, +159,255,151,255,144,255,149,255,170,255,176,255,153,255,152,255,197,255,236,255,250,255,2,0,9,0,18,0,32,0,42,0, +45,0,42,0,29,0,4,0,247,255,4,0,14,0,20,0,33,0,25,0,245,255,217,255,213,255,227,255,232,255,220,255, +222,255,225,255,192,255,149,255,122,255,100,255,82,255,77,255,80,255,77,255,63,255,54,255,53,255,32,255,235,254,186,254, +195,254,227,254,202,254,157,254,167,254,199,254,215,254,231,254,238,254,220,254,199,254,199,254,213,254,225,254,236,254,246,254, +243,254,238,254,14,255,65,255,80,255,75,255,96,255,128,255,141,255,143,255,143,255,143,255,158,255,197,255,241,255,4,0, +4,0,12,0,33,0,62,0,88,0,89,0,74,0,67,0,64,0,68,0,79,0,79,0,81,0,106,0,136,0,139,0, +110,0,69,0,44,0,43,0,53,0,60,0,57,0,50,0,49,0,40,0,22,0,14,0,12,0,253,255,231,255,235,255, +0,0,254,255,244,255,20,0,73,0,104,0,126,0,156,0,172,0,176,0,193,0,228,0,254,0,6,1,19,1,44,1, +68,1,81,1,89,1,117,1,153,1,158,1,148,1,157,1,172,1,179,1,169,1,159,1,183,1,220,1,231,1,215,1, +183,1,169,1,181,1,168,1,130,1,116,1,128,1,146,1,154,1,159,1,173,1,177,1,164,1,149,1,135,1,131,1, +131,1,106,1,84,1,89,1,88,1,54,1,10,1,242,0,222,0,189,0,174,0,182,0,170,0,141,0,125,0,117,0, +101,0,84,0,78,0,74,0,56,0,46,0,59,0,54,0,19,0,0,0,2,0,242,255,214,255,204,255,216,255,226,255, +203,255,163,255,149,255,148,255,118,255,80,255,53,255,24,255,2,255,242,254,212,254,171,254,135,254,117,254,111,254,87,254, +50,254,24,254,2,254,238,253,227,253,200,253,164,253,161,253,183,253,182,253,155,253,136,253,136,253,138,253,137,253,148,253, +169,253,185,253,185,253,182,253,195,253,212,253,215,253,216,253,223,253,236,253,241,253,219,253,205,253,225,253,249,253,2,254, +0,254,240,253,235,253,0,254,21,254,26,254,38,254,74,254,114,254,130,254,133,254,132,254,130,254,140,254,159,254,177,254, +180,254,173,254,185,254,201,254,198,254,194,254,198,254,201,254,208,254,208,254,191,254,171,254,162,254,165,254,171,254,172,254, +165,254,149,254,148,254,162,254,166,254,175,254,212,254,239,254,237,254,237,254,7,255,35,255,45,255,62,255,102,255,139,255, +155,255,163,255,183,255,202,255,212,255,237,255,29,0,68,0,84,0,90,0,107,0,132,0,152,0,179,0,221,0,250,0, +4,1,16,1,27,1,34,1,46,1,66,1,85,1,94,1,113,1,148,1,164,1,161,1,177,1,207,1,217,1,211,1, +207,1,199,1,191,1,194,1,203,1,204,1,185,1,160,1,148,1,127,1,87,1,68,1,82,1,97,1,107,1,108,1, +96,1,85,1,76,1,67,1,77,1,93,1,98,1,103,1,103,1,95,1,78,1,50,1,33,1,34,1,30,1,25,1, +18,1,252,0,236,0,238,0,236,0,229,0,221,0,214,0,211,0,205,0,198,0,188,0,182,0,191,0,186,0,157,0, +138,0,134,0,132,0,124,0,105,0,86,0,67,0,48,0,44,0,34,0,10,0,0,0,252,255,239,255,231,255,219,255, +183,255,142,255,129,255,130,255,116,255,102,255,94,255,75,255,53,255,36,255,26,255,25,255,27,255,29,255,30,255,22,255, +4,255,237,254,220,254,214,254,208,254,206,254,206,254,193,254,167,254,142,254,128,254,125,254,116,254,100,254,85,254,69,254, +54,254,44,254,24,254,0,254,249,253,0,254,253,253,237,253,230,253,232,253,223,253,220,253,229,253,227,253,217,253,210,253, +207,253,210,253,209,253,201,253,206,253,213,253,214,253,224,253,227,253,215,253,210,253,204,253,192,253,192,253,193,253,195,253, +204,253,201,253,200,253,209,253,215,253,224,253,234,253,234,253,241,253,244,253,239,253,255,253,18,254,27,254,46,254,57,254, +51,254,57,254,77,254,81,254,78,254,90,254,106,254,112,254,128,254,153,254,172,254,185,254,198,254,217,254,235,254,242,254, +254,254,16,255,30,255,44,255,57,255,60,255,75,255,107,255,134,255,150,255,173,255,201,255,215,255,221,255,230,255,233,255, +245,255,18,0,41,0,52,0,66,0,76,0,79,0,89,0,101,0,100,0,104,0,117,0,124,0,132,0,148,0,164,0, +181,0,193,0,199,0,210,0,217,0,219,0,225,0,226,0,223,0,226,0,233,0,243,0,250,0,248,0,240,0,231,0, +227,0,232,0,226,0,213,0,206,0,204,0,202,0,199,0,188,0,178,0,179,0,179,0,170,0,163,0,154,0,147,0, +160,0,171,0,169,0,171,0,169,0,169,0,179,0,180,0,173,0,172,0,172,0,172,0,168,0,163,0,158,0,146,0, +142,0,145,0,136,0,128,0,124,0,117,0,118,0,115,0,104,0,109,0,119,0,118,0,115,0,120,0,123,0,118,0, +118,0,121,0,119,0,117,0,117,0,117,0,110,0,93,0,88,0,95,0,85,0,73,0,73,0,63,0,49,0,42,0, +28,0,13,0,8,0,1,0,250,255,251,255,254,255,250,255,237,255,212,255,195,255,195,255,196,255,193,255,188,255,183,255, +185,255,187,255,181,255,181,255,184,255,185,255,193,255,199,255,196,255,194,255,197,255,207,255,220,255,229,255,229,255,229,255, +235,255,239,255,234,255,229,255,227,255,230,255,236,255,234,255,227,255,229,255,240,255,250,255,253,255,1,0,0,0,247,255, +244,255,244,255,236,255,228,255,218,255,207,255,195,255,179,255,172,255,164,255,143,255,139,255,142,255,128,255,116,255,107,255, +95,255,87,255,73,255,61,255,62,255,68,255,75,255,72,255,66,255,70,255,74,255,76,255,83,255,87,255,90,255,93,255, +96,255,102,255,105,255,109,255,118,255,127,255,136,255,139,255,137,255,151,255,173,255,186,255,192,255,195,255,192,255,187,255, +191,255,203,255,208,255,211,255,216,255,209,255,198,255,198,255,208,255,223,255,235,255,244,255,251,255,246,255,237,255,233,255, +227,255,225,255,234,255,250,255,9,0,13,0,7,0,6,0,9,0,9,0,9,0,15,0,20,0,27,0,32,0,34,0, +37,0,34,0,27,0,32,0,36,0,39,0,52,0,61,0,58,0,56,0,56,0,62,0,61,0,43,0,35,0,40,0, +47,0,56,0,64,0,67,0,67,0,64,0,62,0,51,0,40,0,46,0,48,0,37,0,33,0,26,0,10,0,4,0, +13,0,20,0,20,0,16,0,10,0,3,0,251,255,243,255,241,255,246,255,252,255,6,0,16,0,18,0,22,0,27,0, +36,0,51,0,58,0,57,0,54,0,45,0,36,0,34,0,36,0,38,0,39,0,48,0,58,0,59,0,62,0,62,0, +51,0,46,0,52,0,61,0,68,0,73,0,79,0,79,0,81,0,90,0,87,0,81,0,79,0,72,0,77,0,82,0, +73,0,69,0,71,0,67,0,63,0,49,0,36,0,26,0,10,0,3,0,5,0,2,0,253,255,247,255,245,255,240,255, +229,255,223,255,219,255,217,255,223,255,219,255,211,255,211,255,213,255,220,255,220,255,210,255,210,255,212,255,208,255,209,255, +205,255,201,255,204,255,204,255,209,255,211,255,203,255,201,255,196,255,183,255,183,255,187,255,189,255,195,255,193,255,188,255, +188,255,181,255,171,255,166,255,163,255,165,255,164,255,157,255,164,255,179,255,182,255,183,255,188,255,186,255,184,255,187,255, +190,255,192,255,192,255,192,255,190,255,189,255,194,255,202,255,208,255,211,255,214,255,224,255,234,255,234,255,232,255,224,255, +221,255,235,255,247,255,0,0,13,0,18,0,24,0,28,0,30,0,45,0,61,0,67,0,70,0,69,0,71,0,72,0, +63,0,64,0,71,0,75,0,87,0,88,0,84,0,95,0,100,0,102,0,106,0,105,0,112,0,117,0,111,0,113,0, +107,0,95,0,103,0,112,0,115,0,118,0,113,0,108,0,111,0,110,0,109,0,111,0,107,0,102,0,103,0,100,0, +99,0,109,0,117,0,118,0,125,0,128,0,120,0,119,0,129,0,136,0,136,0,138,0,148,0,160,0,165,0,166,0, +174,0,191,0,204,0,211,0,219,0,222,0,218,0,215,0,209,0,213,0,228,0,234,0,239,0,250,0,0,1,4,1, +10,1,8,1,2,1,1,1,1,1,249,0,235,0,230,0,231,0,227,0,219,0,216,0,213,0,208,0,206,0,199,0, +188,0,187,0,190,0,189,0,186,0,177,0,169,0,159,0,142,0,138,0,144,0,144,0,146,0,148,0,148,0,155,0, +162,0,167,0,173,0,175,0,178,0,182,0,189,0,205,0,210,0,211,0,222,0,227,0,228,0,233,0,237,0,248,0, +8,1,12,1,14,1,19,1,16,1,7,1,1,1,254,0,2,1,8,1,5,1,1,1,0,1,250,0,249,0,247,0, +235,0,225,0,220,0,215,0,212,0,201,0,187,0,177,0,166,0,161,0,158,0,146,0,135,0,120,0,100,0,85,0, +67,0,52,0,48,0,38,0,26,0,20,0,13,0,15,0,22,0,15,0,7,0,3,0,247,255,235,255,235,255,243,255, +249,255,1,0,11,0,8,0,2,0,6,0,5,0,253,255,4,0,13,0,13,0,11,0,11,0,9,0,11,0,14,0, +19,0,32,0,42,0,38,0,33,0,28,0,24,0,27,0,28,0,35,0,49,0,58,0,63,0,61,0,51,0,46,0, +41,0,39,0,45,0,45,0,40,0,33,0,23,0,21,0,18,0,4,0,250,255,251,255,248,255,239,255,232,255,233,255, +234,255,233,255,231,255,228,255,226,255,219,255,214,255,220,255,221,255,221,255,230,255,233,255,230,255,234,255,241,255,248,255, +254,255,5,0,22,0,40,0,48,0,60,0,79,0,88,0,87,0,94,0,106,0,107,0,110,0,122,0,132,0,143,0, +154,0,159,0,163,0,161,0,156,0,161,0,162,0,155,0,157,0,157,0,155,0,159,0,155,0,148,0,154,0,159,0, +155,0,151,0,145,0,136,0,134,0,135,0,131,0,131,0,132,0,127,0,127,0,133,0,136,0,135,0,135,0,141,0, +146,0,147,0,147,0,148,0,150,0,151,0,150,0,151,0,149,0,147,0,150,0,148,0,146,0,154,0,156,0,156,0, +162,0,164,0,162,0,158,0,155,0,151,0,147,0,154,0,159,0,149,0,145,0,146,0,140,0,132,0,124,0,120,0, +118,0,105,0,91,0,85,0,74,0,67,0,65,0,52,0,37,0,35,0,31,0,24,0,17,0,8,0,0,0,253,255, +246,255,237,255,232,255,228,255,222,255,215,255,208,255,204,255,202,255,200,255,197,255,192,255,193,255,198,255,195,255,194,255, +198,255,194,255,195,255,200,255,198,255,196,255,198,255,197,255,199,255,203,255,204,255,206,255,210,255,208,255,207,255,215,255, +220,255,214,255,213,255,215,255,211,255,212,255,215,255,211,255,214,255,220,255,220,255,216,255,211,255,210,255,214,255,215,255, +215,255,214,255,210,255,209,255,210,255,215,255,220,255,213,255,209,255,212,255,220,255,237,255,245,255,242,255,253,255,7,0, +10,0,20,0,26,0,27,0,34,0,36,0,42,0,57,0,63,0,65,0,71,0,78,0,83,0,85,0,90,0,100,0, +104,0,110,0,123,0,135,0,144,0,145,0,147,0,156,0,157,0,154,0,151,0,138,0,123,0,112,0,102,0,96,0, +87,0,74,0,58,0,34,0,13,0,250,255,223,255,199,255,180,255,163,255,146,255,121,255,93,255,72,255,49,255,26,255, +3,255,236,254,216,254,194,254,168,254,147,254,127,254,103,254,80,254,58,254,42,254,35,254,24,254,6,254,246,253,229,253, +217,253,214,253,210,253,201,253,199,253,196,253,193,253,203,253,209,253,209,253,219,253,228,253,235,253,246,253,251,253,6,254, +23,254,32,254,46,254,60,254,69,254,89,254,112,254,125,254,141,254,155,254,165,254,175,254,185,254,197,254,212,254,224,254, +234,254,243,254,249,254,253,254,4,255,10,255,13,255,24,255,36,255,42,255,55,255,67,255,77,255,94,255,106,255,114,255, +126,255,132,255,145,255,170,255,185,255,199,255,213,255,213,255,221,255,236,255,241,255,246,255,251,255,4,0,16,0,19,0, +26,0,39,0,48,0,61,0,71,0,73,0,83,0,94,0,106,0,119,0,123,0,133,0,149,0,158,0,171,0,186,0, +188,0,188,0,194,0,202,0,214,0,230,0,241,0,246,0,251,0,252,0,246,0,248,0,249,0,244,0,244,0,243,0, +230,0,221,0,220,0,217,0,206,0,191,0,180,0,172,0,161,0,151,0,139,0,118,0,96,0,82,0,65,0,47,0, +35,0,19,0,252,255,232,255,211,255,188,255,177,255,165,255,148,255,133,255,114,255,99,255,88,255,68,255,50,255,39,255, +25,255,23,255,28,255,20,255,12,255,11,255,10,255,7,255,0,255,247,254,242,254,241,254,240,254,236,254,235,254,240,254, +245,254,246,254,248,254,253,254,0,255,0,255,3,255,6,255,3,255,1,255,3,255,11,255,17,255,15,255,17,255,21,255, +18,255,22,255,30,255,27,255,25,255,28,255,30,255,34,255,35,255,34,255,35,255,31,255,32,255,36,255,31,255,28,255, +27,255,20,255,15,255,10,255,10,255,15,255,18,255,19,255,19,255,18,255,23,255,24,255,20,255,21,255,26,255,33,255, +37,255,40,255,48,255,58,255,69,255,83,255,89,255,90,255,96,255,101,255,106,255,113,255,118,255,124,255,131,255,138,255, +149,255,153,255,157,255,165,255,167,255,170,255,180,255,183,255,187,255,198,255,201,255,201,255,210,255,216,255,213,255,212,255, +215,255,217,255,222,255,227,255,224,255,221,255,223,255,227,255,237,255,241,255,235,255,237,255,241,255,241,255,247,255,248,255, +243,255,243,255,245,255,246,255,247,255,242,255,241,255,246,255,247,255,255,255,8,0,4,0,9,0,22,0,21,0,20,0, +30,0,38,0,43,0,53,0,64,0,76,0,85,0,89,0,90,0,91,0,94,0,96,0,96,0,99,0,107,0,111,0, +115,0,120,0,120,0,119,0,124,0,129,0,131,0,134,0,131,0,124,0,123,0,125,0,122,0,117,0,118,0,123,0, +124,0,126,0,129,0,128,0,127,0,127,0,122,0,118,0,117,0,117,0,114,0,112,0,114,0,117,0,113,0,114,0, +119,0,113,0,107,0,111,0,109,0,104,0,101,0,99,0,94,0,88,0,87,0,92,0,99,0,114,0,126,0,126,0, +132,0,141,0,138,0,141,0,150,0,153,0,160,0,167,0,168,0,177,0,189,0,191,0,193,0,196,0,196,0,196,0, +199,0,202,0,206,0,204,0,196,0,192,0,188,0,181,0,183,0,190,0,189,0,185,0,178,0,167,0,160,0,151,0, +138,0,133,0,129,0,122,0,121,0,121,0,120,0,116,0,110,0,111,0,114,0,113,0,113,0,103,0,93,0,93,0, +96,0,96,0,99,0,103,0,106,0,109,0,114,0,119,0,128,0,143,0,155,0,159,0,168,0,178,0,184,0,196,0, +209,0,216,0,227,0,241,0,251,0,4,1,17,1,31,1,41,1,43,1,46,1,47,1,51,1,59,1,62,1,59,1, +61,1,63,1,65,1,65,1,61,1,58,1,58,1,58,1,59,1,59,1,59,1,57,1,48,1,40,1,43,1,43,1, +38,1,41,1,33,1,16,1,15,1,18,1,17,1,21,1,18,1,11,1,10,1,3,1,253,0,0,1,1,1,5,1, +16,1,22,1,25,1,30,1,38,1,45,1,46,1,49,1,58,1,65,1,70,1,76,1,80,1,91,1,103,1,109,1, +113,1,113,1,115,1,118,1,117,1,126,1,136,1,133,1,130,1,127,1,122,1,123,1,121,1,110,1,104,1,96,1, +85,1,79,1,72,1,67,1,65,1,58,1,49,1,41,1,29,1,16,1,4,1,243,0,228,0,218,0,211,0,206,0, +197,0,188,0,186,0,180,0,166,0,158,0,155,0,143,0,130,0,125,0,123,0,119,0,119,0,118,0,117,0,118,0, +109,0,97,0,99,0,102,0,101,0,106,0,109,0,113,0,120,0,117,0,114,0,117,0,119,0,123,0,129,0,127,0, +125,0,125,0,118,0,117,0,124,0,124,0,124,0,125,0,118,0,112,0,118,0,123,0,121,0,118,0,112,0,109,0, +112,0,106,0,95,0,94,0,94,0,87,0,86,0,91,0,91,0,84,0,78,0,71,0,65,0,63,0,58,0,53,0, +54,0,50,0,43,0,42,0,37,0,36,0,42,0,42,0,45,0,52,0,45,0,41,0,46,0,44,0,44,0,52,0, +58,0,64,0,68,0,69,0,70,0,70,0,70,0,68,0,66,0,69,0,71,0,67,0,70,0,79,0,81,0,85,0, +88,0,85,0,87,0,89,0,84,0,82,0,81,0,73,0,67,0,63,0,58,0,57,0,56,0,53,0,47,0,38,0, +32,0,27,0,20,0,17,0,8,0,251,255,247,255,245,255,236,255,222,255,214,255,211,255,204,255,199,255,204,255,205,255, +194,255,189,255,189,255,185,255,181,255,175,255,167,255,162,255,166,255,167,255,162,255,163,255,168,255,163,255,160,255,164,255, +166,255,164,255,161,255,161,255,161,255,157,255,155,255,154,255,148,255,144,255,142,255,138,255,138,255,132,255,125,255,120,255, +110,255,104,255,109,255,111,255,105,255,95,255,86,255,83,255,77,255,70,255,67,255,58,255,47,255,44,255,44,255,44,255, +43,255,40,255,38,255,37,255,39,255,32,255,26,255,33,255,32,255,28,255,39,255,42,255,40,255,50,255,51,255,48,255, +59,255,66,255,73,255,86,255,94,255,102,255,111,255,110,255,110,255,121,255,134,255,143,255,153,255,166,255,171,255,170,255, +169,255,170,255,174,255,179,255,183,255,188,255,193,255,197,255,199,255,197,255,199,255,199,255,197,255,201,255,198,255,184,255, +178,255,174,255,166,255,165,255,163,255,157,255,154,255,154,255,154,255,155,255,151,255,151,255,145,255,134,255,134,255,136,255, +133,255,131,255,128,255,127,255,126,255,125,255,129,255,132,255,132,255,134,255,130,255,127,255,131,255,133,255,134,255,134,255, +133,255,130,255,129,255,131,255,132,255,133,255,140,255,142,255,135,255,132,255,133,255,132,255,126,255,124,255,125,255,122,255, +121,255,120,255,110,255,106,255,110,255,111,255,114,255,115,255,111,255,110,255,103,255,93,255,90,255,88,255,85,255,84,255, +82,255,79,255,72,255,67,255,65,255,56,255,55,255,57,255,43,255,33,255,36,255,33,255,32,255,33,255,32,255,40,255, +45,255,43,255,43,255,44,255,44,255,42,255,41,255,42,255,39,255,35,255,39,255,44,255,47,255,51,255,58,255,65,255, +67,255,71,255,80,255,82,255,79,255,79,255,81,255,79,255,80,255,84,255,89,255,94,255,96,255,89,255,85,255,88,255, +89,255,92,255,97,255,96,255,91,255,90,255,96,255,98,255,91,255,88,255,95,255,96,255,92,255,90,255,90,255,92,255, +98,255,99,255,92,255,91,255,98,255,102,255,106,255,111,255,105,255,101,255,106,255,109,255,115,255,118,255,119,255,128,255, +133,255,134,255,140,255,142,255,144,255,148,255,145,255,149,255,152,255,149,255,157,255,166,255,168,255,171,255,165,255,159,255, +164,255,169,255,172,255,173,255,170,255,168,255,166,255,162,255,162,255,160,255,161,255,167,255,166,255,163,255,164,255,165,255, +167,255,175,255,179,255,174,255,174,255,176,255,174,255,172,255,171,255,170,255,170,255,169,255,170,255,172,255,167,255,164,255, +164,255,160,255,167,255,178,255,179,255,179,255,181,255,184,255,190,255,191,255,193,255,199,255,200,255,205,255,215,255,216,255, +215,255,220,255,224,255,225,255,227,255,230,255,229,255,227,255,229,255,225,255,223,255,231,255,238,255,245,255,250,255,245,255, +246,255,255,255,255,255,1,0,6,0,5,0,6,0,8,0,5,0,7,0,15,0,18,0,21,0,29,0,36,0,36,0, +34,0,33,0,31,0,30,0,30,0,26,0,26,0,24,0,20,0,24,0,27,0,22,0,19,0,18,0,12,0,5,0, +254,255,250,255,251,255,254,255,4,0,3,0,252,255,251,255,0,0,3,0,5,0,2,0,255,255,251,255,246,255,248,255, +250,255,245,255,249,255,252,255,247,255,242,255,231,255,228,255,234,255,232,255,230,255,226,255,215,255,214,255,218,255,213,255, +212,255,212,255,205,255,202,255,202,255,196,255,189,255,184,255,179,255,179,255,181,255,179,255,176,255,177,255,179,255,175,255, +166,255,157,255,158,255,161,255,153,255,150,255,155,255,160,255,167,255,170,255,169,255,162,255,154,255,153,255,150,255,139,255, +135,255,137,255,137,255,141,255,143,255,142,255,144,255,144,255,142,255,137,255,134,255,137,255,136,255,132,255,129,255,127,255, +130,255,134,255,135,255,134,255,132,255,132,255,134,255,133,255,138,255,144,255,141,255,146,255,151,255,142,255,138,255,143,255, +148,255,149,255,149,255,153,255,158,255,155,255,150,255,149,255,152,255,159,255,162,255,158,255,152,255,154,255,164,255,169,255, +162,255,154,255,156,255,162,255,163,255,165,255,170,255,166,255,164,255,172,255,171,255,167,255,166,255,159,255,159,255,162,255, +154,255,150,255,152,255,147,255,149,255,151,255,149,255,153,255,157,255,149,255,145,255,147,255,143,255,140,255,138,255,138,255, +143,255,146,255,145,255,148,255,151,255,152,255,160,255,166,255,165,255,169,255,176,255,183,255,190,255,193,255,190,255,189,255, +193,255,200,255,205,255,206,255,203,255,204,255,210,255,216,255,225,255,236,255,238,255,234,255,233,255,235,255,239,255,244,255, +243,255,241,255,243,255,242,255,242,255,243,255,235,255,228,255,227,255,222,255,217,255,219,255,220,255,223,255,225,255,224,255, +227,255,232,255,233,255,237,255,243,255,252,255,9,0,14,0,15,0,21,0,23,0,23,0,25,0,25,0,26,0,30,0, +36,0,41,0,44,0,46,0,46,0,45,0,44,0,44,0,46,0,49,0,49,0,56,0,66,0,69,0,70,0,69,0, +62,0,63,0,66,0,67,0,71,0,75,0,72,0,72,0,78,0,80,0,75,0,69,0,66,0,63,0,60,0,59,0, +58,0,55,0,51,0,42,0,27,0,14,0,6,0,255,255,250,255,243,255,234,255,234,255,243,255,243,255,233,255,224,255, +219,255,216,255,213,255,210,255,210,255,206,255,204,255,207,255,203,255,195,255,191,255,194,255,199,255,196,255,189,255,187,255, +191,255,195,255,200,255,204,255,199,255,195,255,199,255,201,255,203,255,213,255,216,255,216,255,226,255,231,255,229,255,227,255, +221,255,224,255,233,255,237,255,244,255,244,255,239,255,244,255,243,255,237,255,235,255,227,255,223,255,229,255,227,255,225,255, +224,255,216,255,214,255,215,255,211,255,211,255,210,255,206,255,208,255,214,255,218,255,222,255,224,255,223,255,222,255,225,255, +225,255,222,255,226,255,230,255,226,255,229,255,234,255,231,255,232,255,238,255,238,255,235,255,233,255,234,255,237,255,238,255, +238,255,241,255,241,255,244,255,251,255,250,255,246,255,247,255,243,255,243,255,245,255,242,255,244,255,248,255,244,255,248,255, +252,255,243,255,238,255,239,255,244,255,249,255,243,255,237,255,243,255,239,255,230,255,228,255,224,255,225,255,231,255,226,255, +221,255,223,255,221,255,220,255,222,255,222,255,226,255,229,255,226,255,225,255,229,255,230,255,226,255,218,255,213,255,219,255, +223,255,221,255,218,255,214,255,210,255,211,255,216,255,217,255,215,255,213,255,205,255,198,255,198,255,194,255,187,255,187,255, +190,255,191,255,195,255,199,255,197,255,194,255,195,255,193,255,187,255,188,255,193,255,192,255,194,255,194,255,189,255,188,255, +190,255,192,255,191,255,188,255,189,255,192,255,193,255,198,255,196,255,192,255,200,255,202,255,193,255,189,255,187,255,190,255, +194,255,190,255,192,255,199,255,201,255,201,255,199,255,197,255,198,255,199,255,197,255,200,255,208,255,218,255,219,255,219,255, +225,255,225,255,222,255,229,255,239,255,246,255,243,255,236,255,241,255,249,255,248,255,248,255,254,255,2,0,0,0,254,255, +255,255,253,255,249,255,248,255,249,255,251,255,251,255,249,255,249,255,253,255,2,0,1,0,0,0,5,0,3,0,254,255, +0,0,254,255,253,255,5,0,4,0,252,255,253,255,255,255,254,255,254,255,253,255,254,255,4,0,9,0,14,0,18,0, +19,0,22,0,28,0,31,0,34,0,34,0,31,0,28,0,32,0,37,0,44,0,47,0,45,0,45,0,47,0,48,0, +51,0,53,0,52,0,47,0,46,0,50,0,47,0,40,0,41,0,36,0,31,0,33,0,28,0,21,0,21,0,23,0, +25,0,19,0,9,0,12,0,11,0,2,0,4,0,3,0,0,0,2,0,255,255,254,255,5,0,3,0,246,255,243,255, +247,255,250,255,253,255,253,255,252,255,251,255,251,255,252,255,0,0,5,0,5,0,3,0,2,0,1,0,1,0,254,255, +250,255,253,255,5,0,6,0,255,255,253,255,3,0,5,0,2,0,254,255,250,255,249,255,248,255,243,255,240,255,239,255, +238,255,233,255,233,255,237,255,235,255,233,255,237,255,237,255,239,255,237,255,229,255,233,255,239,255,235,255,238,255,242,255, +238,255,238,255,237,255,238,255,242,255,238,255,237,255,241,255,241,255,243,255,247,255,251,255,0,0,3,0,4,0,1,0, +250,255,246,255,244,255,246,255,253,255,254,255,249,255,0,0,6,0,1,0,251,255,253,255,3,0,5,0,6,0,11,0, +14,0,12,0,7,0,8,0,14,0,18,0,20,0,22,0,22,0,23,0,26,0,22,0,17,0,24,0,28,0,26,0, +34,0,39,0,35,0,38,0,43,0,43,0,40,0,34,0,37,0,45,0,42,0,36,0,35,0,36,0,36,0,34,0, +33,0,36,0,35,0,34,0,35,0,36,0,34,0,27,0,24,0,32,0,35,0,32,0,32,0,32,0,33,0,31,0, +26,0,27,0,27,0,26,0,24,0,21,0,24,0,27,0,28,0,34,0,39,0,42,0,44,0,43,0,47,0,52,0, +51,0,49,0,47,0,45,0,45,0,41,0,38,0,39,0,43,0,43,0,38,0,37,0,40,0,38,0,40,0,40,0, +40,0,41,0,35,0,33,0,41,0,37,0,28,0,23,0,17,0,20,0,21,0,18,0,22,0,24,0,18,0,13,0, +10,0,13,0,14,0,8,0,8,0,14,0,18,0,16,0,9,0,14,0,20,0,12,0,5,0,2,0,2,0,6,0, +5,0,2,0,3,0,1,0,0,0,1,0,2,0,3,0,5,0,4,0,7,0,14,0,17,0,16,0,22,0,29,0, +25,0,17,0,17,0,19,0,18,0,15,0,13,0,12,0,8,0,6,0,10,0,13,0,12,0,10,0,12,0,18,0, +16,0,9,0,10,0,16,0,16,0,18,0,21,0,18,0,12,0,9,0,6,0,7,0,8,0,5,0,2,0,3,0, +2,0,255,255,255,255,4,0,11,0,11,0,4,0,0,0,6,0,9,0,6,0,6,0,7,0,4,0,7,0,8,0, +9,0,14,0,7,0,2,0,10,0,16,0,19,0,20,0,16,0,18,0,21,0,19,0,23,0,26,0,26,0,28,0, +23,0,22,0,26,0,23,0,20,0,21,0,21,0,23,0,29,0,29,0,24,0,28,0,30,0,20,0,18,0,26,0, +27,0,23,0,19,0,19,0,24,0,25,0,25,0,27,0,22,0,19,0,16,0,19,0,29,0,30,0,25,0,26,0, +23,0,25,0,28,0,20,0,17,0,20,0,16,0,14,0,13,0,9,0,12,0,15,0,12,0,9,0,8,0,7,0, +9,0,11,0,9,0,3,0,1,0,1,0,253,255,250,255,247,255,240,255,234,255,232,255,234,255,234,255,231,255,230,255, +232,255,236,255,237,255,234,255,233,255,232,255,232,255,234,255,233,255,233,255,234,255,233,255,236,255,237,255,233,255,233,255, +233,255,235,255,240,255,237,255,231,255,233,255,237,255,234,255,230,255,229,255,231,255,230,255,228,255,232,255,237,255,237,255, +235,255,234,255,233,255,234,255,234,255,231,255,232,255,231,255,224,255,225,255,228,255,228,255,230,255,231,255,226,255,227,255, +230,255,229,255,229,255,233,255,236,255,235,255,232,255,234,255,237,255,243,255,250,255,251,255,249,255,253,255,4,0,6,0, +6,0,11,0,15,0,18,0,23,0,23,0,24,0,32,0,38,0,39,0,40,0,36,0,33,0,33,0,37,0,43,0, +41,0,38,0,41,0,45,0,48,0,48,0,47,0,48,0,49,0,48,0,45,0,44,0,49,0,51,0,47,0,46,0, +49,0,49,0,44,0,36,0,40,0,47,0,45,0,44,0,46,0,47,0,45,0,40,0,38,0,38,0,34,0,33,0, +37,0,39,0,38,0,35,0,33,0,36,0,40,0,39,0,32,0,28,0,28,0,27,0,26,0,31,0,34,0,32,0, +33,0,35,0,31,0,30,0,32,0,26,0,28,0,33,0,26,0,24,0,27,0,22,0,18,0,20,0,17,0,15,0, +15,0,15,0,17,0,16,0,16,0,19,0,20,0,23,0,22,0,13,0,14,0,18,0,14,0,12,0,13,0,9,0, +6,0,7,0,4,0,2,0,1,0,0,0,4,0,10,0,10,0,11,0,10,0,4,0,6,0,12,0,16,0,21,0, +23,0,21,0,25,0,27,0,24,0,27,0,33,0,32,0,32,0,38,0,39,0,40,0,47,0,49,0,50,0,55,0, +56,0,56,0,58,0,54,0,52,0,57,0,58,0,58,0,59,0,56,0,57,0,57,0,53,0,54,0,61,0,61,0, +58,0,56,0,52,0,53,0,57,0,58,0,60,0,63,0,59,0,55,0,52,0,50,0,52,0,53,0,50,0,50,0, +55,0,55,0,53,0,54,0,56,0,53,0,55,0,60,0,59,0,56,0,58,0,58,0,57,0,58,0,56,0,56,0, +54,0,49,0,50,0,55,0,53,0,50,0,49,0,47,0,49,0,52,0,49,0,51,0,51,0,41,0,34,0,36,0, +37,0,36,0,37,0,35,0,34,0,34,0,33,0,28,0,28,0,34,0,35,0,36,0,42,0,39,0,30,0,30,0, +33,0,32,0,33,0,33,0,32,0,38,0,43,0,47,0,51,0,51,0,50,0,52,0,50,0,49,0,59,0,65,0, +63,0,64,0,63,0,60,0,57,0,53,0,52,0,58,0,58,0,55,0,57,0,60,0,60,0,62,0,67,0,65,0, +60,0,60,0,62,0,64,0,63,0,60,0,60,0,55,0,48,0,49,0,52,0,48,0,47,0,51,0,48,0,45,0, +42,0,38,0,37,0,38,0,37,0,38,0,45,0,49,0,49,0,49,0,46,0,43,0,44,0,44,0,43,0,44,0, +47,0,50,0,51,0,54,0,60,0,61,0,57,0,49,0,43,0,41,0,41,0,46,0,53,0,53,0,52,0,52,0, +50,0,48,0,47,0,48,0,51,0,49,0,46,0,48,0,52,0,52,0,52,0,55,0,56,0,52,0,53,0,56,0, +56,0,56,0,54,0,53,0,58,0,62,0,60,0,55,0,55,0,56,0,55,0,53,0,53,0,50,0,49,0,46,0, +45,0,48,0,49,0,49,0,52,0,54,0,54,0,52,0,48,0,47,0,47,0,49,0,54,0,57,0,60,0,63,0, +62,0,62,0,59,0,56,0,60,0,57,0,52,0,57,0,58,0,51,0,55,0,63,0,63,0,61,0,63,0,59,0, +54,0,54,0,56,0,57,0,57,0,55,0,57,0,55,0,52,0,55,0,57,0,58,0,59,0,51,0,45,0,45,0, +41,0,41,0,43,0,43,0,44,0,44,0,42,0,43,0,41,0,40,0,42,0,43,0,45,0,44,0,42,0,41,0, +39,0,39,0,43,0,46,0,43,0,42,0,45,0,45,0,45,0,47,0,41,0,40,0,44,0,39,0,36,0,42,0, +38,0,35,0,37,0,36,0,35,0,34,0,32,0,33,0,33,0,28,0,22,0,20,0,20,0,15,0,13,0,14,0, +14,0,16,0,19,0,17,0,13,0,8,0,6,0,8,0,4,0,1,0,4,0,6,0,7,0,5,0,5,0,4,0, +0,0,2,0,3,0,3,0,7,0,12,0,14,0,15,0,13,0,14,0,17,0,17,0,19,0,21,0,24,0,31,0, +32,0,32,0,34,0,32,0,31,0,33,0,36,0,38,0,38,0,39,0,38,0,34,0,32,0,32,0,35,0,39,0, +39,0,43,0,45,0,44,0,45,0,45,0,43,0,47,0,49,0,50,0,52,0,53,0,52,0,52,0,54,0,54,0, +51,0,49,0,50,0,49,0,46,0,43,0,45,0,51,0,47,0,47,0,49,0,46,0,48,0,50,0,43,0,39,0, +40,0,40,0,38,0,36,0,35,0,35,0,40,0,45,0,46,0,50,0,51,0,42,0,40,0,46,0,49,0,51,0, +52,0,51,0,47,0,41,0,42,0,39,0,35,0,37,0,38,0,37,0,37,0,33,0,32,0,32,0,31,0,32,0, +30,0,27,0,24,0,18,0,16,0,18,0,18,0,20,0,21,0,20,0,18,0,14,0,13,0,15,0,14,0,12,0, +12,0,12,0,15,0,17,0,17,0,14,0,15,0,19,0,16,0,14,0,15,0,10,0,8,0,9,0,5,0,6,0, +10,0,11,0,13,0,17,0,16,0,11,0,7,0,9,0,9,0,8,0,10,0,10,0,8,0,9,0,12,0,13,0, +9,0,11,0,12,0,7,0,9,0,13,0,9,0,11,0,15,0,14,0,14,0,9,0,4,0,7,0,10,0,13,0, +15,0,17,0,20,0,21,0,21,0,23,0,25,0,23,0,24,0,27,0,28,0,27,0,30,0,32,0,30,0,31,0, +32,0,35,0,38,0,37,0,38,0,39,0,39,0,43,0,45,0,43,0,44,0,46,0,49,0,51,0,49,0,51,0, +51,0,48,0,48,0,42,0,37,0,42,0,44,0,42,0,43,0,44,0,48,0,46,0,41,0,43,0,44,0,41,0, +41,0,43,0,44,0,43,0,42,0,42,0,41,0,40,0,39,0,41,0,45,0,47,0,50,0,49,0,44,0,43,0, +40,0,40,0,44,0,41,0,41,0,45,0,43,0,43,0,44,0,40,0,41,0,41,0,37,0,41,0,42,0,39,0, +41,0,39,0,36,0,36,0,33,0,31,0,33,0,32,0,28,0,29,0,28,0,25,0,26,0,27,0,26,0,29,0, +31,0,28,0,27,0,25,0,25,0,27,0,26,0,29,0,32,0,28,0,26,0,26,0,24,0,23,0,21,0,19,0, +19,0,18,0,18,0,15,0,11,0,14,0,16,0,14,0,16,0,17,0,17,0,18,0,20,0,24,0,25,0,24,0, +22,0,22,0,25,0,29,0,27,0,25,0,27,0,33,0,33,0,28,0,24,0,21,0,22,0,25,0,22,0,19,0, +19,0,21,0,25,0,29,0,31,0,33,0,35,0,38,0,40,0,38,0,38,0,39,0,37,0,37,0,38,0,38,0, +39,0,39,0,39,0,39,0,39,0,39,0,38,0,38,0,37,0,34,0,32,0,29,0,28,0,32,0,33,0,33,0, +36,0,36,0,34,0,37,0,38,0,39,0,42,0,42,0,40,0,40,0,40,0,41,0,43,0,41,0,40,0,43,0, +41,0,39,0,38,0,35,0,36,0,38,0,34,0,35,0,39,0,39,0,43,0,48,0,49,0,46,0,44,0,43,0, +44,0,40,0,37,0,37,0,36,0,37,0,34,0,29,0,28,0,32,0,34,0,37,0,35,0,30,0,30,0,33,0, +29,0,28,0,31,0,29,0,31,0,33,0,30,0,28,0,27,0,27,0,30,0,30,0,30,0,34,0,32,0,38,0, +48,0,46,0,42,0,44,0,42,0,39,0,37,0,37,0,37,0,38,0,41,0,45,0,45,0,43,0,41,0,41,0, +39,0,37,0,38,0,35,0,33,0,37,0,37,0,37,0,40,0,38,0,37,0,38,0,36,0,39,0,44,0,44,0, +43,0,42,0,41,0,39,0,38,0,41,0,44,0,46,0,46,0,45,0,49,0,55,0,55,0,55,0,54,0,56,0, +60,0,58,0,59,0,66,0,68,0,69,0,69,0,67,0,68,0,68,0,71,0,74,0,65,0,62,0,64,0,58,0, +56,0,56,0,54,0,57,0,59,0,57,0,59,0,58,0,54,0,54,0,50,0,46,0,49,0,51,0,48,0,49,0, +50,0,48,0,49,0,49,0,45,0,48,0,51,0,44,0,42,0,46,0,47,0,44,0,42,0,44,0,45,0,45,0, +46,0,45,0,44,0,47,0,47,0,45,0,44,0,41,0,42,0,46,0,47,0,46,0,45,0,46,0,52,0,56,0, +55,0,59,0,59,0,57,0,59,0,59,0,56,0,56,0,52,0,49,0,51,0,50,0,50,0,53,0,50,0,48,0, +48,0,45,0,45,0,44,0,40,0,37,0,33,0,31,0,33,0,33,0,28,0,27,0,26,0,27,0,28,0,27,0, +23,0,23,0,24,0,26,0,24,0,18,0,18,0,23,0,18,0,13,0,12,0,6,0,3,0,4,0,5,0,5,0, +3,0,1,0,4,0,4,0,0,0,254,255,252,255,251,255,253,255,251,255,251,255,255,255,1,0,1,0,0,0,252,255, +250,255,251,255,248,255,241,255,241,255,244,255,241,255,239,255,243,255,244,255,244,255,246,255,246,255,245,255,245,255,243,255, +243,255,243,255,244,255,241,255,237,255,235,255,236,255,236,255,236,255,237,255,238,255,237,255,241,255,243,255,236,255,233,255, +236,255,237,255,237,255,235,255,231,255,231,255,233,255,234,255,232,255,228,255,227,255,228,255,229,255,232,255,231,255,231,255, +234,255,236,255,239,255,239,255,236,255,238,255,240,255,239,255,241,255,242,255,240,255,240,255,244,255,249,255,249,255,248,255, +250,255,253,255,254,255,254,255,0,0,1,0,2,0,8,0,12,0,11,0,11,0,11,0,9,0,9,0,8,0,5,0, +5,0,6,0,10,0,13,0,13,0,14,0,10,0,9,0,12,0,8,0,6,0,10,0,10,0,10,0,11,0,11,0, +13,0,15,0,15,0,16,0,16,0,15,0,15,0,13,0,11,0,10,0,10,0,9,0,7,0,5,0,2,0,2,0, +5,0,7,0,7,0,8,0,9,0,11,0,10,0,7,0,8,0,8,0,5,0,4,0,2,0,0,0,0,0,255,255, +255,255,254,255,249,255,246,255,245,255,244,255,242,255,241,255,241,255,241,255,243,255,242,255,239,255,238,255,238,255,236,255, +235,255,232,255,232,255,234,255,231,255,228,255,226,255,223,255,222,255,224,255,226,255,228,255,229,255,227,255,226,255,226,255, +225,255,223,255,222,255,225,255,227,255,227,255,228,255,229,255,228,255,225,255,224,255,224,255,226,255,227,255,226,255,228,255, +230,255,226,255,226,255,229,255,229,255,233,255,237,255,237,255,237,255,235,255,238,255,244,255,241,255,239,255,242,255,239,255, +239,255,241,255,240,255,239,255,240,255,239,255,237,255,236,255,238,255,238,255,235,255,235,255,236,255,234,255,234,255,236,255, +239,255,241,255,241,255,240,255,239,255,240,255,242,255,242,255,239,255,238,255,243,255,248,255,246,255,247,255,250,255,248,255, +250,255,255,255,254,255,253,255,249,255,248,255,252,255,251,255,250,255,252,255,253,255,254,255,1,0,0,0,255,255,253,255, +253,255,255,255,254,255,252,255,255,255,2,0,1,0,1,0,2,0,3,0,2,0,254,255,254,255,1,0,1,0,0,0, +1,0,4,0,5,0,0,0,1,0,7,0,6,0,5,0,7,0,7,0,7,0,6,0,7,0,8,0,5,0,8,0, +13,0,12,0,12,0,16,0,17,0,14,0,11,0,11,0,16,0,20,0,22,0,22,0,22,0,22,0,19,0,19,0, +20,0,17,0,16,0,16,0,14,0,17,0,19,0,17,0,18,0,18,0,19,0,19,0,15,0,17,0,18,0,18,0, +22,0,20,0,19,0,20,0,19,0,19,0,18,0,15,0,16,0,15,0,13,0,15,0,15,0,16,0,15,0,12,0, +13,0,13,0,12,0,12,0,9,0,9,0,9,0,7,0,11,0,8,0,5,0,11,0,11,0,8,0,10,0,9,0, +10,0,11,0,7,0,6,0,7,0,5,0,6,0,8,0,9,0,11,0,9,0,7,0,5,0,5,0,4,0,2,0, +3,0,4,0,0,0,1,0,1,0,0,0,255,255,254,255,0,0,1,0,255,255,1,0,0,0,252,255,252,255,252,255, +253,255,253,255,248,255,246,255,246,255,243,255,244,255,245,255,244,255,248,255,250,255,249,255,249,255,245,255,242,255,242,255, +243,255,244,255,245,255,245,255,242,255,241,255,243,255,242,255,239,255,238,255,236,255,236,255,239,255,239,255,239,255,239,255, +237,255,237,255,236,255,232,255,232,255,233,255,231,255,229,255,232,255,234,255,233,255,231,255,232,255,233,255,229,255,227,255, +227,255,228,255,229,255,232,255,232,255,233,255,235,255,233,255,230,255,229,255,231,255,232,255,232,255,231,255,233,255,234,255, +233,255,236,255,239,255,237,255,236,255,237,255,234,255,234,255,235,255,235,255,237,255,237,255,234,255,236,255,236,255,237,255, +240,255,238,255,236,255,238,255,239,255,239,255,239,255,236,255,236,255,237,255,236,255,237,255,235,255,234,255,235,255,234,255, +236,255,238,255,238,255,238,255,240,255,239,255,239,255,241,255,241,255,239,255,241,255,243,255,240,255,237,255,236,255,235,255, +236,255,236,255,238,255,239,255,238,255,239,255,241,255,244,255,247,255,244,255,244,255,249,255,252,255,253,255,255,255,0,0, +0,0,253,255,254,255,0,0,255,255,0,0,3,0,3,0,5,0,5,0,4,0,5,0,6,0,8,0,11,0,11,0, +11,0,10,0,9,0,11,0,9,0,8,0,10,0,10,0,10,0,8,0,8,0,9,0,8,0,8,0,7,0,6,0, +9,0,7,0,5,0,10,0,8,0,7,0,10,0,7,0,8,0,13,0,13,0,14,0,11,0,9,0,10,0,10,0, +11,0,15,0,14,0,13,0,12,0,13,0,13,0,12,0,12,0,9,0,6,0,8,0,8,0,6,0,7,0,7,0, +6,0,7,0,6,0,6,0,3,0,2,0,6,0,5,0,4,0,4,0,1,0,0,0,253,255,250,255,254,255,254,255, +248,255,250,255,250,255,247,255,248,255,249,255,247,255,246,255,244,255,242,255,242,255,241,255,237,255,237,255,238,255,238,255, +240,255,238,255,235,255,238,255,238,255,232,255,234,255,237,255,235,255,234,255,236,255,236,255,235,255,232,255,232,255,234,255, +234,255,232,255,232,255,233,255,230,255,228,255,228,255,225,255,222,255,222,255,222,255,221,255,220,255,221,255,220,255,218,255, +219,255,220,255,220,255,220,255,218,255,217,255,217,255,218,255,223,255,222,255,221,255,227,255,226,255,222,255,224,255,223,255, +220,255,221,255,225,255,227,255,223,255,225,255,230,255,227,255,228,255,234,255,233,255,232,255,235,255,236,255,233,255,230,255, +232,255,235,255,233,255,231,255,233,255,235,255,235,255,235,255,238,255,239,255,238,255,239,255,241,255,241,255,240,255,238,255, +240,255,239,255,236,255,242,255,247,255,243,255,244,255,247,255,246,255,246,255,247,255,248,255,249,255,248,255,250,255,252,255, +252,255,254,255,0,0,254,255,253,255,253,255,251,255,251,255,254,255,255,255,254,255,1,0,1,0,0,0,3,0,5,0, +3,0,4,0,5,0,4,0,7,0,8,0,4,0,4,0,5,0,3,0,4,0,4,0,3,0,4,0,3,0,3,0, +6,0,6,0,3,0,4,0,3,0,3,0,4,0,3,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,0,0, +0,0,0,0,0,0,3,0,3,0,0,0,254,255,255,255,254,255,251,255,251,255,252,255,252,255,253,255,251,255,251,255, +255,255,252,255,250,255,252,255,249,255,251,255,1,0,254,255,254,255,0,0,253,255,252,255,253,255,253,255,252,255,252,255, +253,255,252,255,251,255,252,255,250,255,249,255,250,255,247,255,248,255,248,255,246,255,247,255,244,255,241,255,243,255,241,255, +240,255,240,255,236,255,237,255,239,255,239,255,239,255,237,255,238,255,240,255,239,255,241,255,242,255,240,255,240,255,240,255, +239,255,239,255,237,255,238,255,238,255,237,255,240,255,242,255,241,255,240,255,238,255,239,255,242,255,242,255,242,255,243,255, +244,255,245,255,242,255,242,255,245,255,244,255,245,255,246,255,247,255,249,255,250,255,250,255,250,255,250,255,250,255,249,255, +249,255,252,255,250,255,248,255,250,255,250,255,248,255,249,255,248,255,247,255,246,255,245,255,245,255,243,255,245,255,247,255, +246,255,248,255,250,255,249,255,250,255,250,255,248,255,248,255,249,255,250,255,253,255,253,255,251,255,251,255,250,255,250,255, +252,255,252,255,251,255,254,255,254,255,252,255,253,255,254,255,253,255,253,255,253,255,252,255,254,255,1,0,1,0,0,0, +253,255,253,255,1,0,2,0,0,0,0,0,1,0,255,255,254,255,255,255,0,0,0,0,2,0,3,0,255,255,253,255, +0,0,0,0,255,255,0,0,1,0,2,0,1,0,254,255,1,0,5,0,4,0,3,0,4,0,5,0,7,0,5,0, +5,0,7,0,7,0,8,0,9,0,8,0,8,0,8,0,10,0,11,0,8,0,6,0,7,0,10,0,9,0,7,0, +9,0,9,0,7,0,6,0,7,0,10,0,9,0,6,0,6,0,6,0,5,0,5,0,3,0,1,0,3,0,2,0, +1,0,2,0,0,0,253,255,255,255,2,0,1,0,255,255,0,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0, +1,0,255,255,254,255,1,0,255,255,253,255,255,255,253,255,251,255,254,255,255,255,255,255,1,0,2,0,2,0,1,0, +2,0,4,0,3,0,1,0,1,0,254,255,251,255,252,255,253,255,251,255,251,255,252,255,248,255,248,255,251,255,249,255, +248,255,248,255,247,255,249,255,248,255,246,255,249,255,248,255,244,255,246,255,245,255,242,255,242,255,241,255,240,255,240,255, +240,255,239,255,239,255,241,255,240,255,240,255,242,255,242,255,241,255,242,255,240,255,239,255,239,255,239,255,240,255,239,255, +239,255,241,255,240,255,239,255,240,255,241,255,240,255,240,255,241,255,243,255,244,255,245,255,246,255,247,255,246,255,243,255, +244,255,247,255,247,255,248,255,250,255,250,255,251,255,253,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,253,255, +254,255,1,0,1,0,255,255,0,0,0,0,254,255,253,255,254,255,255,255,253,255,253,255,253,255,253,255,252,255,252,255, +251,255,250,255,251,255,251,255,250,255,250,255,252,255,252,255,250,255,252,255,253,255,252,255,254,255,255,255,254,255,254,255, +255,255,253,255,252,255,253,255,254,255,254,255,253,255,252,255,253,255,255,255,254,255,252,255,253,255,253,255,254,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,254,255,254,255,255,255,253,255,253,255,0,0, +255,255,255,255,1,0,0,0,255,255,1,0,1,0,1,0,3,0,2,0,1,0,1,0,1,0,0,0,1,0,2,0, +3,0,3,0,4,0,5,0,4,0,4,0,5,0,6,0,8,0,8,0,8,0,6,0,5,0,4,0,3,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,0,0,1,0,3,0,255,255,251,255,255,255,0,0,254,255,253,255,253,255, +254,255,254,255,252,255,253,255,254,255,251,255,251,255,253,255,254,255,253,255,252,255,253,255,253,255,252,255,253,255,253,255, +254,255,255,255,254,255,253,255,254,255,0,0,255,255,254,255,0,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0, +1,0,2,0,1,0,0,0,254,255,254,255,1,0,255,255,254,255,2,0,255,255,251,255,254,255,254,255,252,255,254,255, +0,0,252,255,248,255,246,255,246,255,246,255,244,255,242,255,241,255,241,255,240,255,239,255,239,255,238,255,240,255,242,255, +241,255,240,255,240,255,241,255,244,255,245,255,245,255,244,255,244,255,245,255,245,255,244,255,246,255,247,255,246,255,247,255, +246,255,245,255,247,255,248,255,249,255,251,255,250,255,250,255,251,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255, +255,255,255,255,254,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0,3,0,5,0,5,0, +5,0,5,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0,3,0,5,0,5,0,3,0,4,0,5,0,4,0, +6,0,7,0,5,0,4,0,6,0,6,0,3,0,2,0,3,0,2,0,0,0,0,0,255,255,254,255,255,255,255,255, +254,255,0,0,0,0,0,0,1,0,2,0,3,0,3,0,4,0,4,0,4,0,4,0,5,0,3,0,2,0,2,0, +3,0,5,0,4,0,4,0,4,0,4,0,5,0,7,0,7,0,8,0,10,0,9,0,8,0,9,0,10,0,10,0, +9,0,9,0,6,0,5,0,6,0,4,0,3,0,4,0,1,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,2,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,3,0, +2,0,2,0,2,0,1,0,2,0,1,0,2,0,3,0,4,0,5,0,5,0,2,0,3,0,5,0,2,0,3,0, +5,0,4,0,6,0,7,0,7,0,7,0,6,0,5,0,7,0,8,0,6,0,6,0,8,0,9,0,8,0,8,0, +6,0,6,0,7,0,5,0,3,0,4,0,5,0,4,0,1,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255, +254,255,253,255,252,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,250,255,251,255,249,255,248,255,250,255,251,255, +249,255,247,255,246,255,246,255,246,255,247,255,248,255,247,255,247,255,247,255,246,255,246,255,246,255,247,255,250,255,249,255, +246,255,247,255,247,255,247,255,248,255,248,255,248,255,248,255,249,255,247,255,246,255,248,255,248,255,248,255,247,255,246,255, +247,255,248,255,246,255,246,255,248,255,246,255,246,255,248,255,247,255,247,255,250,255,249,255,249,255,250,255,248,255,247,255, +250,255,253,255,252,255,250,255,252,255,252,255,251,255,251,255,252,255,252,255,253,255,254,255,253,255,252,255,254,255,254,255, +253,255,255,255,0,0,255,255,255,255,0,0,254,255,255,255,1,0,0,0,1,0,3,0,2,0,2,0,1,0,2,0, +2,0,2,0,3,0,4,0,4,0,5,0,4,0,5,0,5,0,4,0,4,0,4,0,4,0,5,0,6,0,7,0, +7,0,6,0,6,0,5,0,5,0,9,0,9,0,7,0,9,0,8,0,6,0,8,0,8,0,7,0,8,0,8,0, +7,0,8,0,7,0,5,0,7,0,9,0,8,0,9,0,9,0,9,0,9,0,10,0,8,0,8,0,7,0,7,0, +9,0,8,0,7,0,8,0,7,0,5,0,6,0,6,0,6,0,7,0,5,0,4,0,3,0,1,0,1,0,2,0, +1,0,1,0,1,0,0,0,0,0,255,255,253,255,254,255,254,255,253,255,254,255,255,255,254,255,252,255,254,255,255,255, +255,255,0,0,0,0,0,0,0,0,254,255,254,255,255,255,254,255,253,255,252,255,252,255,254,255,253,255,253,255,253,255, +253,255,253,255,254,255,254,255,0,0,255,255,255,255,0,0,254,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255, +252,255,252,255,252,255,251,255,250,255,252,255,252,255,251,255,251,255,251,255,252,255,252,255,250,255,250,255,251,255,251,255, +251,255,252,255,251,255,250,255,251,255,251,255,250,255,254,255,254,255,251,255,253,255,253,255,251,255,252,255,253,255,252,255, +252,255,251,255,252,255,253,255,250,255,250,255,250,255,249,255,248,255,248,255,248,255,248,255,249,255,249,255,249,255,248,255, +246,255,244,255,245,255,246,255,246,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,250,255,250,255,249,255,248,255, +250,255,250,255,250,255,252,255,252,255,252,255,254,255,253,255,253,255,255,255,254,255,252,255,254,255,0,0,255,255,255,255, +2,0,1,0,0,0,1,0,0,0,0,0,2,0,2,0,2,0,3,0,2,0,3,0,4,0,2,0,3,0,4,0, +2,0,2,0,3,0,3,0,3,0,2,0,1,0,0,0,0,0,2,0,1,0,255,255,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,1,0,1,0,254,255,254,255,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,1,0, +0,0,255,255,2,0,2,0,1,0,2,0,4,0,4,0,3,0,4,0,6,0,5,0,4,0,5,0,5,0,5,0, +6,0,6,0,7,0,7,0,6,0,6,0,6,0,7,0,7,0,8,0,7,0,4,0,4,0,6,0,4,0,3,0, +4,0,3,0,3,0,3,0,1,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255,1,0,255,255,252,255, +254,255,254,255,253,255,254,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,3,0, +2,0,1,0,2,0,3,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,4,0,4,0,4,0,4,0,4,0, +3,0,3,0,3,0,4,0,3,0,3,0,3,0,5,0,4,0,2,0,1,0,1,0,1,0,0,0,1,0,2,0, +1,0,2,0,1,0,0,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255, +253,255,253,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,1,0,0,0,255,255,255,255,0,0,2,0,0,0,255,255,1,0,2,0,1,0,2,0,1,0,1,0,3,0, +3,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,2,0,3,0,3,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,3,0,4,0,3,0,1,0,1,0,2,0,1,0,1,0,3,0,1,0,0,0,1,0,255,255,255,255, +255,255,253,255,254,255,255,255,255,255,0,0,255,255,254,255,254,255,253,255,253,255,253,255,253,255,0,0,0,0,253,255, +254,255,254,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +2,0,2,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,253,255,251,255,253,255,252,255,250,255,251,255,251,255, +252,255,253,255,251,255,250,255,250,255,249,255,249,255,250,255,249,255,250,255,250,255,249,255,250,255,249,255,246,255,247,255, +248,255,248,255,248,255,248,255,250,255,250,255,251,255,250,255,250,255,250,255,251,255,251,255,252,255,253,255,255,255,254,255, +253,255,253,255,254,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,254,255,254,255,255,255,255,255,255,255, +254,255,254,255,255,255,255,255,0,0,1,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,1,0,2,0,1,0, +1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255, +253,255,253,255,253,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0, +0,0,0,0,255,255,255,255,254,255,253,255,254,255,254,255,254,255,1,0,2,0,0,0,0,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,5,0, +5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,6,0,5,0,6,0,8,0,9,0,9,0,8,0,8,0, +9,0,9,0,9,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,9,0,10,0,10,0,10,0,11,0,11,0, +13,0,13,0,13,0,14,0,13,0,14,0,15,0,14,0,13,0,13,0,12,0,12,0,14,0,13,0,13,0,13,0, +12,0,12,0,12,0,13,0,14,0,15,0,16,0,16,0,15,0,16,0,17,0,16,0,16,0,15,0,14,0,14,0, +14,0,13,0,13,0,11,0,12,0,11,0,9,0,8,0,8,0,8,0,8,0,7,0,6,0,5,0,5,0,6,0, +5,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0, +3,0,3,0,5,0,5,0,2,0,4,0,6,0,5,0,6,0,4,0,4,0,5,0,5,0,3,0,5,0,7,0, +8,0,7,0,8,0,8,0,7,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,2,0, +2,0,3,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,254,255,255,255,1,0,255,255, +255,255,1,0,2,0,1,0,4,0,4,0,3,0,4,0,5,0,5,0,4,0,5,0,7,0,6,0,5,0,8,0, +9,0,7,0,8,0,9,0,10,0,10,0,9,0,10,0,11,0,12,0,11,0,11,0,11,0,11,0,12,0,13,0, +11,0,11,0,13,0,12,0,11,0,13,0,12,0,12,0,13,0,12,0,10,0,10,0,10,0,9,0,8,0,9,0, +8,0,7,0,6,0,7,0,7,0,8,0,7,0,6,0,8,0,7,0,6,0,8,0,9,0,7,0,8,0,8,0, +9,0,10,0,8,0,9,0,11,0,10,0,10,0,10,0,9,0,9,0,10,0,10,0,11,0,12,0,11,0,11,0, +12,0,11,0,10,0,10,0,11,0,10,0,11,0,13,0,13,0,12,0,11,0,13,0,13,0,12,0,13,0,14,0, +13,0,13,0,14,0,14,0,14,0,14,0,13,0,14,0,14,0,13,0,12,0,12,0,12,0,10,0,9,0,10,0, +9,0,7,0,7,0,6,0,5,0,6,0,5,0,2,0,3,0,3,0,1,0,2,0,1,0,0,0,0,0,255,255, +255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0,6,0,4,0,3,0,7,0,8,0, +6,0,7,0,7,0,6,0,7,0,6,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +3,0,2,0,3,0,4,0,4,0,3,0,5,0,6,0,4,0,4,0,6,0,7,0,7,0,6,0,7,0,7,0, +7,0,8,0,9,0,8,0,10,0,10,0,10,0,12,0,11,0,11,0,12,0,12,0,13,0,13,0,12,0,13,0, +14,0,12,0,13,0,14,0,13,0,14,0,14,0,14,0,15,0,16,0,15,0,15,0,16,0,16,0,17,0,17,0, +18,0,17,0,16,0,17,0,18,0,18,0,17,0,18,0,20,0,19,0,19,0,19,0,20,0,20,0,21,0,21,0, +22,0,23,0,22,0,22,0,22,0,22,0,23,0,23,0,23,0,23,0,22,0,23,0,23,0,23,0,23,0,22,0, +21,0,24,0,24,0,23,0,22,0,21,0,22,0,23,0,21,0,22,0,22,0,20,0,20,0,20,0,18,0,19,0, +20,0,18,0,18,0,19,0,18,0,17,0,19,0,19,0,18,0,18,0,18,0,18,0,19,0,18,0,16,0,17,0, +17,0,16,0,16,0,17,0,16,0,16,0,15,0,15,0,15,0,16,0,15,0,14,0,14,0,14,0,12,0,12,0, +12,0,10,0,10,0,11,0,10,0,10,0,8,0,7,0,8,0,8,0,7,0,7,0,6,0,5,0,5,0,4,0, +2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,254,255,254,255,254,255,254,255,253,255,254,255,253,255, +253,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255, +253,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,253,255,252,255,253,255,252,255,251,255,252,255, +253,255,251,255,251,255,251,255,250,255,251,255,252,255,251,255,250,255,250,255,250,255,250,255,251,255,252,255,252,255,252,255, +253,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,0,0,0,0,1,0,2,0,2,0,1,0, +2,0,3,0,3,0,4,0,5,0,5,0,5,0,5,0,6,0,5,0,4,0,5,0,6,0,7,0,7,0,6,0, +6,0,7,0,7,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0,5,0,6,0,5,0,5,0,6,0,5,0, +4,0,5,0,6,0,6,0,6,0,5,0,5,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,9,0, +8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,7,0,8,0,10,0,9,0,10,0,10,0,8,0,8,0, +10,0,9,0,8,0,9,0,9,0,10,0,10,0,9,0,8,0,8,0,8,0,7,0,8,0,9,0,8,0,7,0, +8,0,7,0,8,0,9,0,7,0,7,0,8,0,8,0,7,0,7,0,7,0,8,0,7,0,7,0,8,0,9,0, +8,0,9,0,8,0,8,0,9,0,10,0,10,0,9,0,9,0,9,0,9,0,8,0,9,0,10,0,10,0,8,0, +8,0,8,0,7,0,7,0,9,0,8,0,7,0,8,0,9,0,8,0,7,0,7,0,7,0,7,0,7,0,6,0, +6,0,8,0,7,0,7,0,8,0,6,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,7,0,5,0,6,0, +7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,4,0,5,0,6,0, +5,0,4,0,5,0,5,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,3,0,2,0,1,0, +3,0,3,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,255,255,254,255,254,255,254,255,254,255,255,255,0,0,254,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255, +254,255,255,255,0,0,255,255,0,0,255,255,254,255,0,0,0,0,0,0,2,0,2,0,1,0,1,0,2,0,2,0, +2,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,3,0,3,0,4,0,5,0,5,0,4,0,4,0, +4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0, +4,0,2,0,2,0,4,0,3,0,2,0,3,0,2,0,1,0,2,0,1,0,1,0,3,0,1,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0, +2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,2,0, +1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,3,0,3,0,2,0, +2,0,2,0,4,0,4,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,1,0,3,0,3,0, +2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,254,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,255,255, +0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255, +253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,252,255,253,255, +253,255,252,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,2,0, +3,0,3,0,2,0,2,0,1,0,1,0,3,0,3,0,2,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0, +2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,255,255,254,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +254,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0, +1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0, +3,0,3,0,3,0,4,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0,6,0,5,0,4,0,4,0,5,0, +6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0, +5,0,4,0,5,0,5,0,5,0,4,0,4,0,6,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0, +5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,6,0,6,0, +4,0,4,0,5,0,4,0,4,0,5,0,4,0,3,0,5,0,4,0,2,0,2,0,4,0,4,0,4,0,3,0, +4,0,4,0,4,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,2,0,2,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,4,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0, +0,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0, +1,0,2,0,2,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0, +2,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255,254,255,253,255,254,255, +254,255,254,255,255,255,255,255,253,255,254,255,255,255,254,255,254,255,254,255,253,255,253,255,254,255,253,255,253,255,254,255, +254,255,253,255,254,255,254,255,253,255,253,255,253,255,252,255,254,255,254,255,253,255,252,255,253,255,253,255,253,255,252,255, +252,255,253,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +255,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,254,255,253,255,252,255,253,255,255,255,255,255,253,255, +254,255,255,255,253,255,252,255,253,255,253,255,254,255,254,255,252,255,252,255,254,255,253,255,252,255,252,255,253,255,253,255, +253,255,252,255,252,255,253,255,253,255,251,255,252,255,254,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,253,255,253,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255, +252,255,252,255,252,255,252,255,251,255,251,255,250,255,250,255,251,255,250,255,250,255,252,255,253,255,252,255,253,255,253,255, +252,255,252,255,252,255,252,255,253,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0, +2,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,2,0,2,0,1,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,0,0,0,0,254,255, +253,255,255,255,255,255,255,255,255,255,0,0,1,0,255,255,255,255,1,0,1,0,1,0,2,0,2,0,1,0,2,0, +3,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,5,0,4,0,5,0,6,0,6,0, +6,0,5,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,4,0,4,0,3,0,3,0,2,0,3,0,4,0, +2,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255, +253,255,253,255,253,255,253,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,2,0,2,0,1,0,1,0,2,0,1,0,2,0,3,0,2,0, +2,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,254,255,253,255,253,255,254,255,254,255,253,255,252,255,252,255,252,255,251,255,252,255,253,255,252,255,252,255,253,255, +253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255, +254,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,4,0,4,0,3,0, +2,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,2,0,1,0,2,0,2,0,0,0,255,255,0,0,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0, +2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,2,0, +3,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,0,0,0,0, +1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +254,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,251,255,251,255,253,255,252,255,251,255,251,255, +251,255,252,255,252,255,252,255,251,255,252,255,252,255,251,255,252,255,253,255,253,255,252,255,252,255,253,255,254,255,253,255, +254,255,253,255,252,255,254,255,255,255,253,255,253,255,254,255,255,255,255,255,254,255,253,255,254,255,255,255,254,255,254,255, +0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0, +0,0,0,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0, +4,0,5,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0, +4,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,2,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,255,255,255,255,254,255,253,255,254,255,255,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255, +253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0, +1,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0, +1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255, +254,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,255,255,254,255,253,255,254,255,255,255,254,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0, +1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,2,0,1,0,1,0,1,0,0,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255, +255,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,0,0,255,255,254,255,254,255,255,255, +254,255,254,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,254,255,255,255,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,1,0,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,1,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,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,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0, +1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,255,255,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,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,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,1,0,1,0,255,255,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +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,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,1,0,1,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,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,255,255,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,255,255,0,0,1,0,255,255,254,255,0,0,1,0,0,0,0,0,1,0,1,0,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,255,255,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0,1,0,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,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,1,0,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,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,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,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,1,0,1,0,255,255,255,255,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0, +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, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,1,0,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,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,0,0,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,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,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,255,255,1,0,1,0,255,255,255,255,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,1,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,254,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,255,255,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255, +1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +0,0,255,255,254,255,254,255,0,0,0,0,0,0,255,255,254,255,254,255,255,255,254,255,254,255,0,0,0,0,255,255, +255,255,255,255,254,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,0,0,255,255,254,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0, +0,0,0,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0, +1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,1,0,0,0,0,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0, +2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,3,0, +3,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0, +3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0, +2,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0,2,0,3,0, +3,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,3,0,3,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0, +2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,2,0,2,0,3,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0, +2,0,3,0,3,0,3,0,2,0,3,0,4,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0, +2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0, +3,0,3,0,3,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0, +3,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,4,0,3,0,1,0,3,0, +3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0, +4,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,4,0,3,0,2,0,3,0,2,0, +2,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0, +4,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0, +4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,2,0, +3,0,4,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,4,0,3,0,2,0,4,0,4,0, +3,0,3,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0, +2,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,5,0,3,0,4,0,4,0,4,0, +3,0,3,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,4,0,3,0, +3,0,4,0,4,0,3,0,5,0,5,0,3,0,3,0,4,0,3,0,2,0,4,0,5,0,4,0,3,0,4,0, +3,0,4,0,5,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0, +4,0,5,0,4,0,4,0,3,0,5,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0, +3,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0, +4,0,5,0,6,0,5,0,4,0,5,0,4,0,4,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,5,0,5,0,3,0,4,0,5,0,4,0,4,0,6,0,5,0,4,0,5,0, +5,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,3,0,4,0,4,0,5,0,6,0, +5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0,4,0,4,0, +6,0,5,0,5,0,4,0,3,0,4,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,4,0,5,0, +5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,4,0,5,0,4,0,4,0,5,0,4,0,4,0,5,0, +5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,6,0,6,0,6,0,5,0,4,0,5,0,5,0,5,0, +5,0,4,0,5,0,6,0,4,0,5,0,6,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0, +5,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0, +6,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0, +5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0, +6,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0, +6,0,6,0,6,0,6,0,7,0,6,0,5,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0, +5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,7,0,7,0, +6,0,6,0,7,0,6,0,6,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,6,0,7,0,6,0, +6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0,7,0,7,0,6,0, +6,0,7,0,7,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,7,0,6,0, +6,0,7,0,7,0,6,0,6,0,7,0,7,0,8,0,8,0,7,0,8,0,9,0,8,0,7,0,7,0,8,0, +7,0,7,0,8,0,8,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,8,0,7,0,7,0, +8,0,8,0,7,0,8,0,8,0,8,0,8,0,7,0,7,0,8,0,9,0,8,0,8,0,7,0,8,0,9,0, +8,0,8,0,9,0,8,0,8,0,9,0,8,0,8,0,9,0,9,0,8,0,8,0,8,0,8,0,9,0,9,0, +10,0,9,0,8,0,9,0,9,0,9,0,8,0,9,0,9,0,8,0,8,0,9,0,8,0,8,0,9,0,8,0, +9,0,10,0,9,0,8,0,9,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0, +9,0,9,0,8,0,9,0,10,0,10,0,9,0,9,0,10,0,10,0,10,0,9,0,9,0,10,0,9,0,9,0, +10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,10,0,10,0,10,0,10,0,12,0,10,0, +9,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,11,0,11,0,11,0,11,0,10,0,10,0,11,0, +11,0,11,0,12,0,11,0,11,0,11,0,11,0,11,0,11,0,10,0,11,0,12,0,11,0,11,0,12,0,11,0, +11,0,12,0,12,0,12,0,12,0,12,0,11,0,11,0,12,0,11,0,12,0,12,0,12,0,12,0,13,0,13,0, +12,0,12,0,12,0,12,0,13,0,12,0,12,0,13,0,13,0,11,0,11,0,13,0,12,0,11,0,12,0,12,0, +12,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,13,0,13,0,14,0,13,0,12,0,13,0,13,0,13,0, +14,0,13,0,13,0,13,0,13,0,13,0,14,0,14,0,14,0,13,0,14,0,14,0,14,0,13,0,14,0,14,0, +14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0,15,0,14,0,14,0,14,0,14,0,15,0, +14,0,14,0,15,0,15,0,14,0,14,0,15,0,14,0,15,0,15,0,15,0,16,0,15,0,15,0,15,0,15,0, +15,0,16,0,16,0,15,0,15,0,15,0,15,0,15,0,16,0,15,0,15,0,16,0,15,0,15,0,15,0,15,0, +15,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,17,0,17,0,16,0,15,0,16,0,16,0,16,0, +16,0,17,0,16,0,16,0,16,0,16,0,16,0,17,0,16,0,16,0,17,0,17,0,17,0,17,0,17,0,17,0, +18,0,17,0,16,0,17,0,17,0,18,0,18,0,17,0,18,0,18,0,17,0,17,0,18,0,18,0,18,0,18,0, +18,0,17,0,17,0,17,0,18,0,18,0,18,0,17,0,18,0,18,0,17,0,18,0,19,0,18,0,17,0,18,0, +17,0,17,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,19,0,19,0,18,0,18,0,19,0,19,0,19,0, +19,0,19,0,20,0,20,0,19,0,19,0,19,0,19,0,20,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0, +19,0,20,0,19,0,19,0,20,0,19,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0, +20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,19,0,20,0,20,0,20,0, +20,0,21,0,21,0,20,0,20,0,20,0,22,0,21,0,20,0,20,0,21,0,20,0,20,0,21,0,20,0,21,0, +22,0,21,0,21,0,21,0,21,0,21,0,21,0,20,0,21,0,22,0,21,0,20,0,21,0,21,0,21,0,22,0, +22,0,22,0,22,0,21,0,21,0,22,0,22,0,22,0,22,0,21,0,21,0,21,0,22,0,22,0,22,0,22,0, +22,0,22,0,22,0,22,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0,23,0,23,0,21,0,22,0,22,0, +22,0,22,0,22,0,22,0,23,0,22,0,22,0,23,0,22,0,23,0,23,0,22,0,22,0,23,0,22,0,22,0, +23,0,22,0,22,0,24,0,23,0,21,0,23,0,24,0,22,0,22,0,23,0,22,0,23,0,23,0,23,0,22,0, +22,0,23,0,24,0,24,0,24,0,24,0,24,0,23,0,23,0,23,0,24,0,23,0,23,0,24,0,24,0,23,0, +24,0,24,0,24,0,23,0,23,0,23,0,24,0,23,0,23,0,23,0,23,0,24,0,24,0,23,0,23,0,24,0, +24,0,24,0,24,0,24,0,23,0,23,0,23,0,24,0,24,0,23,0,23,0,24,0,24,0,24,0,24,0,24,0, +24,0,24,0,24,0,24,0,25,0,24,0,25,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0, +24,0,24,0,25,0,25,0,24,0,25,0,24,0,24,0,24,0,24,0,25,0,25,0,24,0,25,0,25,0,25,0, +25,0,25,0,24,0,24,0,24,0,23,0,24,0,25,0,25,0,25,0,26,0,25,0,25,0,25,0,25,0,25,0, +25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,24,0,25,0,26,0,25,0,25,0,25,0,25,0,24,0, +25,0,25,0,24,0,25,0,26,0,25,0,25,0,25,0,25,0,26,0,26,0,25,0,26,0,26,0,25,0,25,0, +26,0,25,0,25,0,25,0,25,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,25,0,25,0,26,0,26,0, +25,0,26,0,26,0,25,0,25,0,26,0,25,0,26,0,27,0,25,0,25,0,25,0,26,0,26,0,26,0,26,0, +26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,26,0,26,0,26,0,26,0, +27,0,26,0,26,0,26,0,26,0,25,0,26,0,27,0,26,0,26,0,27,0,26,0,25,0,27,0,27,0,26,0, +27,0,27,0,26,0,26,0,26,0,26,0,27,0,26,0,25,0,26,0,27,0,26,0,26,0,26,0,27,0,26,0, +26,0,27,0,27,0,26,0,26,0,27,0,26,0,27,0,27,0,26,0,26,0,27,0,27,0,26,0,27,0,27,0, +27,0,26,0,26,0,27,0,26,0,27,0,27,0,26,0,26,0,27,0,27,0,27,0,26,0,26,0,27,0,27,0, +27,0,27,0,27,0,26,0,27,0,26,0,26,0,27,0,28,0,27,0,27,0,27,0,27,0,26,0,26,0,27,0, +27,0,27,0,26,0,27,0,27,0,26,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, +26,0,26,0,27,0,26,0,27,0,28,0,27,0,27,0,27,0,27,0,27,0,27,0,26,0,27,0,27,0,26,0, +27,0,27,0,27,0,27,0,27,0,27,0,28,0,27,0,26,0,27,0,28,0,27,0,27,0,27,0,27,0,26,0, +27,0,27,0,27,0,27,0,26,0,27,0,27,0,26,0,26,0,27,0,27,0,27,0,27,0,27,0,26,0,27,0, +27,0,27,0,26,0,27,0,27,0,27,0,27,0,27,0,26,0,27,0,27,0,27,0,27,0,26,0,27,0,28,0, +27,0,27,0,27,0,27,0,28,0,27,0,26,0,26,0,27,0,27,0,26,0,27,0,26,0,26,0,27,0,27,0, +26,0,27,0,27,0,27,0,27,0,26,0,26,0,28,0,27,0,27,0,26,0,26,0,27,0,27,0,27,0,27,0, +27,0,27,0,26,0,27,0,27,0,26,0,27,0,27,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,27,0, +26,0,26,0,26,0,27,0,27,0,26,0,26,0,26,0,26,0,26,0,27,0,27,0,27,0,26,0,26,0,26,0, +26,0,27,0,28,0,27,0,26,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,26,0,26,0,27,0,27,0, +26,0,26,0,27,0,27,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,27,0,26,0, +26,0,26,0,25,0,26,0,26,0,26,0,26,0,27,0,26,0,26,0,26,0,26,0,26,0,26,0,25,0,26,0, +26,0,26,0,26,0,26,0,27,0,26,0,25,0,26,0,27,0,26,0,26,0,27,0,26,0,26,0,27,0,26,0, +26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,25,0,25,0,26,0, +26,0,26,0,25,0,25,0,26,0,26,0,26,0,26,0,27,0,26,0,25,0,25,0,26,0,26,0,26,0,25,0, +26,0,26,0,26,0,26,0,25,0,25,0,26,0,26,0,25,0,26,0,26,0,25,0,25,0,25,0,25,0,26,0, +26,0,25,0,25,0,25,0,25,0,26,0,26,0,25,0,25,0,25,0,25,0,26,0,25,0,26,0,26,0,26,0, +25,0,25,0,26,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,26,0,25,0,25,0,26,0, +25,0,25,0,26,0,26,0,25,0,25,0,26,0,25,0,25,0,25,0,25,0,25,0,25,0,26,0,26,0,25,0, +25,0,25,0,24,0,25,0,25,0,25,0,25,0,25,0,24,0,25,0,26,0,24,0,24,0,24,0,24,0,25,0, +25,0,25,0,24,0,25,0,25,0,25,0,25,0,25,0,25,0,24,0,24,0,25,0,25,0,25,0,25,0,25,0, +24,0,24,0,25,0,25,0,25,0,25,0,24,0,25,0,25,0,24,0,24,0,26,0,25,0,24,0,24,0,25,0, +25,0,24,0,25,0,25,0,24,0,24,0,24,0,24,0,24,0,25,0,24,0,24,0,25,0,24,0,24,0,24,0, +24,0,24,0,24,0,25,0,24,0,24,0,24,0,25,0,24,0,25,0,24,0,24,0,25,0,25,0,24,0,24,0, +25,0,24,0,24,0,25,0,24,0,23,0,24,0,24,0,24,0,25,0,24,0,24,0,24,0,24,0,24,0,24,0, +24,0,24,0,24,0,24,0,25,0,24,0,24,0,24,0,24,0,24,0,24,0,25,0,24,0,24,0,24,0,24,0, +23,0,24,0,24,0,24,0,24,0,24,0,25,0,24,0,24,0,23,0,23,0,24,0,25,0,25,0,24,0,23,0, +24,0,24,0,24,0,24,0,24,0,24,0,25,0,24,0,24,0,23,0,23,0,24,0,24,0,24,0,24,0,24,0, +24,0,23,0,24,0,24,0,24,0,23,0,24,0,24,0,24,0,24,0,24,0,24,0,23,0,23,0,23,0,24,0, +24,0,24,0,23,0,23,0,23,0,23,0,23,0,24,0,24,0,24,0,23,0,23,0,23,0,24,0,24,0,24,0, +23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,24,0,24,0,23,0,24,0,24,0,24,0,24,0, +24,0,23,0,23,0,23,0,23,0,24,0,24,0,23,0,23,0,23,0,23,0,23,0,24,0,24,0,23,0,23,0, +24,0,23,0,23,0,24,0,23,0,23,0,24,0,24,0,22,0,23,0,24,0,23,0,23,0,23,0,23,0,23,0, +23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,22,0,23,0,23,0,24,0,24,0,23,0, +23,0,23,0,23,0,23,0,23,0,23,0,22,0,23,0,23,0,23,0,23,0,23,0,22,0,22,0,23,0,23,0, +23,0,23,0,23,0,22,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,22,0,22,0,23,0, +23,0,22,0,22,0,23,0,23,0,23,0,23,0,22,0,22,0,23,0,23,0,22,0,23,0,23,0,22,0,22,0, +23,0,22,0,22,0,23,0,22,0,22,0,22,0,22,0,22,0,23,0,22,0,22,0,23,0,23,0,23,0,22,0, +22,0,22,0,22,0,23,0,23,0,22,0,23,0,23,0,22,0,21,0,22,0,22,0,21,0,22,0,22,0,21,0, +22,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0,23,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0, +22,0,22,0,22,0,22,0,22,0,21,0,21,0,21,0,21,0,22,0,22,0,22,0,22,0,21,0,21,0,22,0, +22,0,21,0,21,0,22,0,22,0,22,0,22,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0, +22,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0,21,0,21,0, +21,0,21,0,21,0,21,0,21,0,21,0,21,0,21,0,22,0,21,0,20,0,20,0,21,0,21,0,21,0,21,0, +21,0,21,0,21,0,21,0,21,0,21,0,21,0,20,0,20,0,20,0,21,0,21,0,21,0,21,0,20,0,20,0, +20,0,20,0,20,0,20,0,20,0,20,0,21,0,21,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0, +20,0,20,0,20,0,21,0,20,0,20,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0, +20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,19,0,19,0,20,0,20,0,20,0,19,0,19,0,20,0, +20,0,20,0,19,0,19,0,19,0,20,0,20,0,20,0,19,0,19,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/wood2.pcm b/src/client/sound/data/wood2.pcm new file mode 100755 index 0000000..37281ec --- /dev/null +++ b/src/client/sound/data/wood2.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_wood2[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,106,0,98,0,98,0,99,0,95,0,83,0,60,0,30,0, +11,0,5,0,250,255,223,255,198,255,195,255,204,255,213,255,235,255,25,0,84,0,143,0,194,0,234,0,11,1,33,1, +33,1,19,1,4,1,230,0,177,0,135,0,125,0,124,0,103,0,59,0,5,0,211,255,182,255,182,255,193,255,187,255, +175,255,181,255,198,255,232,255,64,0,178,0,1,1,80,1,194,1,31,2,96,2,189,2,45,3,150,3,9,4,83,4, +63,4,3,4,205,3,145,3,115,3,114,3,57,3,205,2,125,2,80,2,73,2,106,2,112,2,93,2,125,2,177,2, +222,2,108,3,130,4,224,5,87,7,206,8,170,10,200,13,82,18,9,24,248,30,218,37,187,42,107,46,149,50,133,53, +94,53,46,52,4,52,210,51,132,50,124,48,235,45,9,43,165,40,30,39,24,38,67,37,33,37,163,38,36,41,220,42, +56,44,37,47,52,51,85,54,75,55,57,53,135,48,134,43,21,39,63,34,142,29,87,25,74,19,89,10,107,0,191,246, +163,237,60,230,10,225,176,221,61,220,17,220,218,219,107,219,233,218,245,217,44,217,103,217,47,218,26,219,111,220,13,222, +207,223,152,225,178,226,204,226,12,226,18,224,175,221,244,220,33,221,96,219,198,215,61,212,193,208,0,205,155,201,86,198, +254,194,180,192,157,191,95,190,201,188,144,187,120,186,63,185,164,184,85,185,60,187,237,189,8,193,36,196,155,198,253,199, +195,200,124,201,192,201,38,201,9,200,85,198,174,195,254,192,139,191,35,191,5,191,41,191,146,191,46,192,59,193,151,194, +200,195,65,197,166,199,101,202,225,204,139,207,134,210,6,213,137,214,46,215,38,215,180,214,38,214,175,213,160,213,71,214, +150,215,101,217,123,219,105,221,65,223,138,225,19,228,70,230,112,232,31,235,58,238,168,241,84,245,187,248,233,251,125,255, +37,3,59,6,62,9,158,12,198,15,162,18,220,21,81,25,87,28,19,31,20,34,91,37,111,40,20,43,163,45,75,48, +136,50,27,52,126,53,191,54,160,55,137,56,155,57,4,58,164,57,87,57,74,57,24,57,218,56,165,56,53,56,154,55, +253,54,66,54,129,53,224,52,13,52,205,50,109,49,57,48,77,47,197,46,124,46,72,46,57,46,51,46,7,46,248,45, +41,46,34,46,162,45,232,44,18,44,40,43,61,42,35,41,215,39,228,38,100,38,194,37,205,36,197,35,171,34,140,33, +138,32,96,31,226,29,131,28,95,27,245,25,56,24,171,22,118,21,90,20,53,19,248,17,145,16,242,14,58,13,191,11, +135,10,5,9,2,7,25,5,177,3,131,2,102,1,79,0,195,254,136,252,45,250,48,248,129,246,12,245,248,243,93,243, +25,243,216,242,91,242,207,241,113,241,22,241,145,240,3,240,124,239,238,238,122,238,60,238,24,238,254,237,244,237,233,237, +195,237,91,237,131,236,92,235,85,234,143,233,208,232,250,231,51,231,166,230,67,230,169,229,146,228,93,227,140,226,244,225, +61,225,124,224,181,223,191,222,230,221,161,221,197,221,233,221,18,222,88,222,147,222,176,222,222,222,56,223,170,223,34,224, +190,224,151,225,112,226,251,226,73,227,129,227,144,227,110,227,70,227,32,227,5,227,52,227,170,227,14,228,95,228,235,228, +172,229,101,230,26,231,235,231,214,232,203,233,202,234,218,235,241,236,233,237,191,238,159,239,158,240,157,241,147,242,128,243, +89,244,48,245,23,246,238,246,167,247,97,248,23,249,183,249,94,250,21,251,175,251,41,252,172,252,40,253,106,253,112,253, +95,253,100,253,139,253,175,253,172,253,125,253,36,253,189,252,130,252,121,252,105,252,67,252,44,252,25,252,230,251,138,251, +7,251,97,250,174,249,254,248,74,248,151,247,241,246,91,246,203,245,68,245,219,244,166,244,155,244,184,244,27,245,192,245, +106,246,7,247,187,247,142,248,106,249,90,250,105,251,118,252,103,253,68,254,31,255,247,255,206,0,180,1,173,2,159,3, +123,4,88,5,66,6,32,7,242,7,202,8,144,9,37,10,152,10,4,11,95,11,161,11,218,11,17,12,74,12,157,12, +20,13,133,13,194,13,210,13,208,13,197,13,186,13,192,13,214,13,238,13,27,14,111,14,220,14,83,15,211,15,74,16, +174,16,33,17,179,17,65,18,178,18,21,19,113,19,193,19,14,20,101,20,173,20,205,20,221,20,0,21,32,21,22,21, +3,21,33,21,105,21,165,21,186,21,177,21,142,21,87,21,20,21,195,20,98,20,252,19,148,19,17,19,105,18,192,17, +57,17,210,16,139,16,96,16,45,16,231,15,192,15,206,15,211,15,175,15,129,15,78,15,246,14,131,14,19,14,157,13, +15,13,112,12,199,11,255,10,18,10,49,9,143,8,23,8,148,7,3,7,139,6,60,6,20,6,253,5,213,5,157,5, +109,5,50,5,202,4,69,4,202,3,95,3,251,2,157,2,60,2,200,1,69,1,209,0,131,0,59,0,210,255,107,255, +64,255,70,255,82,255,100,255,131,255,169,255,233,255,67,0,131,0,146,0,164,0,222,0,37,1,93,1,144,1,209,1, +26,2,86,2,129,2,159,2,159,2,108,2,23,2,184,1,74,1,200,0,68,0,200,255,80,255,232,254,156,254,82,254, +242,253,140,253,52,253,221,252,128,252,50,252,245,251,174,251,94,251,46,251,47,251,77,251,117,251,159,251,191,251,206,251, +217,251,227,251,222,251,206,251,214,251,13,252,99,252,201,252,63,253,187,253,35,254,116,254,201,254,40,255,115,255,151,255, +181,255,249,255,99,0,213,0,57,1,135,1,189,1,228,1,10,2,43,2,46,2,8,2,196,1,117,1,51,1,12,1, +244,0,213,0,187,0,185,0,192,0,178,0,141,0,111,0,103,0,106,0,117,0,144,0,168,0,148,0,84,0,35,0, +32,0,57,0,102,0,179,0,6,1,62,1,112,1,187,1,11,2,81,2,161,2,7,3,125,3,6,4,159,4,41,5, +133,5,184,5,215,5,250,5,46,6,106,6,165,6,232,6,64,7,167,7,5,8,81,8,161,8,25,9,177,9,76,10, +227,10,118,11,252,11,127,12,24,13,196,13,101,14,243,14,112,15,214,15,29,16,80,16,132,16,197,16,8,17,62,17, +110,17,164,17,235,17,64,18,142,18,195,18,234,18,16,19,39,19,34,19,7,19,226,18,189,18,154,18,103,18,12,18, +145,17,15,17,144,16,29,16,196,15,118,15,25,15,187,14,109,14,25,14,164,13,23,13,147,12,40,12,201,11,96,11, +241,10,145,10,66,10,234,9,131,9,33,9,205,8,121,8,36,8,223,7,179,7,151,7,126,7,89,7,35,7,218,6, +132,6,49,6,229,5,142,5,52,5,242,4,197,4,130,4,34,4,199,3,128,3,64,3,250,2,169,2,77,2,228,1, +109,1,243,0,128,0,15,0,159,255,47,255,175,254,17,254,100,253,188,252,33,252,152,251,12,251,101,250,186,249,44,249, +164,248,9,248,118,247,8,247,177,246,87,246,243,245,156,245,110,245,88,245,45,245,240,244,187,244,142,244,113,244,125,244, +159,244,184,244,207,244,233,244,246,244,245,244,247,244,247,244,237,244,224,244,216,244,215,244,225,244,242,244,255,244,8,245, +16,245,34,245,73,245,131,245,198,245,13,246,79,246,135,246,202,246,46,247,169,247,41,248,182,248,87,249,246,249,136,250, +30,251,203,251,129,252,51,253,225,253,139,254,42,255,190,255,82,0,221,0,80,1,169,1,250,1,78,2,159,2,223,2, +9,3,38,3,69,3,104,3,136,3,166,3,216,3,36,4,105,4,155,4,206,4,254,4,31,5,70,5,122,5,154,5, +161,5,187,5,249,5,64,6,122,6,164,6,199,6,230,6,248,6,255,6,15,7,36,7,34,7,12,7,255,6,244,6, +219,6,199,6,193,6,187,6,182,6,177,6,165,6,148,6,131,6,105,6,73,6,48,6,23,6,240,5,196,5,151,5, +90,5,251,4,131,4,6,4,147,3,28,3,145,2,252,1,117,1,246,0,114,0,248,255,151,255,65,255,227,254,130,254, +42,254,202,253,88,253,229,252,129,252,38,252,215,251,161,251,122,251,79,251,22,251,220,250,167,250,110,250,50,250,247,249, +183,249,116,249,66,249,40,249,24,249,8,249,5,249,12,249,9,249,252,248,244,248,249,248,18,249,53,249,83,249,112,249, +150,249,190,249,224,249,254,249,22,250,43,250,72,250,98,250,103,250,100,250,117,250,150,250,183,250,200,250,196,250,187,250, +201,250,238,250,27,251,70,251,98,251,110,251,122,251,148,251,185,251,226,251,1,252,3,252,229,251,202,251,194,251,189,251, +180,251,179,251,176,251,157,251,141,251,150,251,167,251,172,251,181,251,211,251,247,251,22,252,59,252,108,252,170,252,240,252, +50,253,103,253,152,253,207,253,7,254,56,254,93,254,124,254,158,254,194,254,230,254,15,255,54,255,77,255,97,255,142,255, +199,255,237,255,7,0,50,0,111,0,167,0,210,0,243,0,3,1,1,1,247,0,241,0,238,0,228,0,209,0,184,0, +158,0,138,0,126,0,108,0,69,0,13,0,206,255,152,255,116,255,89,255,50,255,252,254,207,254,177,254,143,254,96,254, +52,254,26,254,21,254,32,254,56,254,85,254,112,254,135,254,160,254,194,254,236,254,26,255,88,255,160,255,214,255,254,255, +52,0,110,0,149,0,179,0,217,0,1,1,36,1,66,1,85,1,96,1,120,1,149,1,155,1,149,1,163,1,199,1, +232,1,240,1,222,1,196,1,181,1,168,1,138,1,95,1,56,1,27,1,10,1,8,1,21,1,54,1,96,1,131,1, +158,1,189,1,222,1,244,1,7,2,26,2,33,2,27,2,20,2,16,2,4,2,241,1,237,1,255,1,19,2,22,2, +5,2,232,1,212,1,200,1,176,1,138,1,113,1,110,1,106,1,87,1,71,1,61,1,34,1,236,0,165,0,84,0, +7,0,205,255,158,255,97,255,24,255,217,254,176,254,147,254,127,254,128,254,155,254,190,254,210,254,206,254,192,254,190,254, +199,254,201,254,190,254,170,254,142,254,108,254,72,254,41,254,12,254,229,253,174,253,116,253,70,253,33,253,243,252,196,252, +157,252,117,252,80,252,61,252,56,252,46,252,22,252,249,251,217,251,182,251,138,251,76,251,11,251,230,250,218,250,201,250, +170,250,142,250,132,250,134,250,142,250,150,250,156,250,172,250,202,250,233,250,5,251,36,251,67,251,97,251,131,251,164,251, +183,251,202,251,242,251,32,252,58,252,59,252,42,252,28,252,44,252,89,252,142,252,184,252,202,252,201,252,202,252,218,252, +239,252,0,253,25,253,51,253,57,253,51,253,50,253,39,253,7,253,224,252,196,252,192,252,205,252,218,252,227,252,243,252, +8,253,31,253,65,253,100,253,128,253,161,253,196,253,223,253,247,253,17,254,47,254,81,254,113,254,144,254,181,254,231,254, +30,255,79,255,114,255,133,255,150,255,183,255,217,255,237,255,1,0,31,0,65,0,99,0,127,0,143,0,156,0,182,0, +218,0,245,0,7,1,32,1,66,1,96,1,105,1,92,1,71,1,47,1,19,1,246,0,225,0,216,0,209,0,198,0, +194,0,197,0,192,0,177,0,161,0,144,0,113,0,71,0,35,0,4,0,228,255,195,255,163,255,133,255,100,255,58,255, +16,255,241,254,212,254,181,254,141,254,88,254,38,254,13,254,8,254,252,253,228,253,206,253,187,253,155,253,118,253,87,253, +63,253,43,253,28,253,11,253,242,252,212,252,187,252,172,252,167,252,172,252,194,252,224,252,246,252,7,253,24,253,51,253, +88,253,113,253,123,253,140,253,166,253,193,253,213,253,233,253,9,254,54,254,106,254,160,254,209,254,246,254,19,255,53,255, +98,255,137,255,157,255,173,255,191,255,201,255,210,255,229,255,254,255,19,0,32,0,41,0,58,0,87,0,115,0,121,0, +107,0,91,0,93,0,116,0,140,0,152,0,168,0,191,0,210,0,225,0,239,0,249,0,4,1,25,1,49,1,69,1, +96,1,126,1,152,1,178,1,202,1,223,1,250,1,27,2,62,2,98,2,137,2,182,2,230,2,15,3,44,3,63,3, +79,3,94,3,105,3,114,3,127,3,137,3,130,3,114,3,103,3,90,3,74,3,61,3,42,3,13,3,240,2,213,2, +196,2,196,2,202,2,201,2,195,2,194,2,199,2,195,2,179,2,152,2,119,2,90,2,61,2,31,2,2,2,221,1, +175,1,138,1,114,1,97,1,82,1,67,1,51,1,30,1,5,1,232,0,196,0,152,0,103,0,58,0,24,0,1,0, +243,255,233,255,213,255,188,255,160,255,125,255,86,255,50,255,24,255,9,255,254,254,242,254,233,254,222,254,206,254,188,254, +169,254,149,254,128,254,114,254,111,254,110,254,109,254,113,254,121,254,130,254,138,254,137,254,126,254,114,254,110,254,113,254, +123,254,133,254,134,254,130,254,120,254,100,254,81,254,70,254,66,254,70,254,77,254,83,254,84,254,79,254,69,254,54,254, +38,254,26,254,20,254,17,254,18,254,26,254,31,254,18,254,248,253,219,253,187,253,160,253,141,253,126,253,113,253,96,253, +72,253,51,253,34,253,16,253,1,253,243,252,232,252,219,252,205,252,197,252,187,252,167,252,147,252,124,252,91,252,55,252, +19,252,246,251,225,251,201,251,180,251,170,251,166,251,161,251,157,251,157,251,154,251,144,251,135,251,137,251,152,251,175,251, +199,251,219,251,236,251,255,251,14,252,30,252,54,252,80,252,108,252,139,252,162,252,181,252,204,252,226,252,249,252,24,253, +56,253,94,253,140,253,189,253,241,253,37,254,93,254,151,254,206,254,8,255,63,255,103,255,132,255,156,255,183,255,217,255, +2,0,43,0,82,0,116,0,141,0,163,0,193,0,232,0,12,1,44,1,77,1,112,1,149,1,186,1,224,1,9,2, +45,2,71,2,89,2,109,2,138,2,169,2,201,2,228,2,245,2,2,3,13,3,16,3,21,3,28,3,38,3,65,3, +102,3,137,3,164,3,182,3,192,3,198,3,202,3,209,3,223,3,243,3,10,4,34,4,58,4,82,4,107,4,132,4, +151,4,168,4,182,4,185,4,178,4,159,4,132,4,106,4,78,4,50,4,33,4,25,4,14,4,250,3,226,3,203,3, +174,3,138,3,99,3,62,3,29,3,0,3,226,2,194,2,165,2,134,2,97,2,62,2,26,2,239,1,199,1,165,1, +129,1,93,1,61,1,24,1,241,0,197,0,148,0,105,0,69,0,42,0,31,0,28,0,25,0,10,0,231,255,180,255, +118,255,46,255,231,254,164,254,100,254,35,254,229,253,178,253,133,253,85,253,35,253,240,252,190,252,144,252,95,252,45,252, +255,251,214,251,179,251,154,251,136,251,120,251,107,251,98,251,85,251,66,251,48,251,34,251,24,251,23,251,26,251,27,251, +28,251,24,251,17,251,13,251,17,251,30,251,43,251,52,251,62,251,71,251,73,251,77,251,86,251,90,251,92,251,99,251, +106,251,121,251,145,251,171,251,201,251,236,251,9,252,39,252,68,252,92,252,126,252,173,252,223,252,11,253,43,253,68,253, +87,253,105,253,128,253,153,253,181,253,221,253,11,254,63,254,121,254,176,254,226,254,15,255,56,255,98,255,139,255,174,255, +212,255,0,0,39,0,66,0,85,0,97,0,105,0,117,0,136,0,158,0,181,0,200,0,220,0,242,0,9,1,34,1, +62,1,91,1,120,1,147,1,172,1,200,1,227,1,0,2,29,2,50,2,67,2,77,2,79,2,88,2,100,2,104,2, +111,2,117,2,115,2,114,2,114,2,108,2,100,2,92,2,84,2,80,2,78,2,75,2,75,2,76,2,72,2,65,2, +58,2,48,2,32,2,10,2,244,1,226,1,211,1,202,1,198,1,196,1,197,1,191,1,175,1,159,1,142,1,130,1, +120,1,106,1,90,1,71,1,48,1,28,1,14,1,0,1,243,0,232,0,225,0,213,0,193,0,174,0,157,0,143,0, +129,0,107,0,82,0,65,0,53,0,47,0,45,0,46,0,55,0,65,0,73,0,76,0,71,0,65,0,70,0,80,0, +94,0,107,0,117,0,130,0,143,0,149,0,146,0,141,0,137,0,135,0,130,0,119,0,109,0,101,0,94,0,92,0, +92,0,99,0,118,0,137,0,151,0,170,0,184,0,192,0,196,0,190,0,183,0,182,0,183,0,190,0,207,0,225,0, +241,0,254,0,6,1,6,1,0,1,248,0,241,0,235,0,231,0,228,0,229,0,239,0,252,0,11,1,23,1,32,1, +41,1,44,1,40,1,38,1,34,1,31,1,34,1,41,1,51,1,62,1,65,1,62,1,55,1,52,1,54,1,62,1, +78,1,95,1,110,1,125,1,131,1,128,1,127,1,125,1,115,1,108,1,104,1,99,1,96,1,95,1,92,1,85,1, +79,1,74,1,70,1,70,1,69,1,69,1,66,1,58,1,44,1,25,1,4,1,246,0,241,0,237,0,232,0,231,0, +235,0,242,0,251,0,5,1,10,1,14,1,21,1,22,1,22,1,24,1,20,1,17,1,18,1,18,1,18,1,21,1, +22,1,18,1,11,1,249,0,224,0,201,0,181,0,160,0,138,0,112,0,84,0,58,0,36,0,13,0,242,255,213,255, +181,255,142,255,100,255,62,255,24,255,247,254,216,254,180,254,145,254,115,254,88,254,71,254,57,254,44,254,40,254,33,254, +15,254,247,253,219,253,197,253,180,253,163,253,154,253,148,253,140,253,138,253,142,253,145,253,154,253,168,253,179,253,190,253, +204,253,219,253,234,253,250,253,12,254,31,254,48,254,60,254,67,254,76,254,90,254,108,254,128,254,151,254,173,254,193,254, +211,254,224,254,236,254,249,254,6,255,19,255,22,255,15,255,4,255,251,254,246,254,250,254,254,254,3,255,12,255,14,255, +17,255,23,255,27,255,35,255,43,255,48,255,57,255,68,255,76,255,82,255,82,255,80,255,82,255,86,255,94,255,102,255, +108,255,117,255,122,255,120,255,118,255,113,255,111,255,117,255,126,255,133,255,142,255,151,255,158,255,165,255,174,255,182,255, +191,255,205,255,220,255,234,255,241,255,244,255,251,255,6,0,19,0,33,0,45,0,56,0,66,0,72,0,88,0,112,0, +134,0,153,0,166,0,178,0,192,0,205,0,217,0,234,0,250,0,5,1,13,1,20,1,28,1,37,1,49,1,63,1, +74,1,79,1,82,1,86,1,92,1,101,1,110,1,113,1,110,1,107,1,109,1,118,1,124,1,124,1,120,1,110,1, +93,1,74,1,57,1,42,1,30,1,21,1,17,1,14,1,13,1,15,1,12,1,10,1,11,1,12,1,13,1,13,1, +11,1,17,1,27,1,34,1,36,1,27,1,14,1,2,1,240,0,222,0,211,0,206,0,207,0,208,0,208,0,205,0, +196,0,190,0,191,0,199,0,212,0,221,0,220,0,215,0,203,0,191,0,184,0,178,0,174,0,173,0,170,0,168,0, +162,0,157,0,158,0,156,0,152,0,149,0,141,0,134,0,135,0,139,0,144,0,150,0,153,0,153,0,154,0,155,0, +156,0,159,0,164,0,168,0,166,0,160,0,155,0,146,0,132,0,118,0,104,0,91,0,83,0,79,0,80,0,83,0, +84,0,88,0,92,0,93,0,95,0,96,0,96,0,99,0,104,0,110,0,114,0,109,0,101,0,93,0,85,0,84,0, +83,0,80,0,77,0,76,0,79,0,84,0,85,0,88,0,88,0,85,0,79,0,73,0,73,0,79,0,84,0,93,0, +105,0,112,0,119,0,124,0,122,0,114,0,110,0,107,0,103,0,104,0,111,0,120,0,130,0,137,0,138,0,138,0, +136,0,134,0,134,0,129,0,123,0,119,0,116,0,112,0,101,0,86,0,75,0,65,0,58,0,57,0,56,0,58,0, +61,0,58,0,51,0,44,0,34,0,23,0,13,0,5,0,1,0,1,0,3,0,6,0,5,0,250,255,235,255,220,255, +208,255,198,255,190,255,187,255,187,255,184,255,175,255,162,255,146,255,130,255,113,255,100,255,90,255,81,255,72,255,60,255, +42,255,26,255,10,255,246,254,227,254,211,254,197,254,193,254,193,254,197,254,208,254,218,254,228,254,239,254,244,254,248,254, +255,254,4,255,12,255,20,255,23,255,24,255,25,255,25,255,24,255,22,255,23,255,27,255,33,255,44,255,56,255,66,255, +76,255,86,255,95,255,109,255,125,255,139,255,152,255,164,255,174,255,185,255,196,255,207,255,217,255,225,255,233,255,245,255, +254,255,5,0,15,0,29,0,46,0,61,0,71,0,80,0,88,0,90,0,91,0,99,0,112,0,128,0,147,0,167,0, +187,0,203,0,216,0,226,0,230,0,229,0,230,0,235,0,239,0,245,0,254,0,7,1,12,1,14,1,17,1,26,1, +41,1,58,1,75,1,92,1,103,1,109,1,110,1,108,1,103,1,99,1,98,1,101,1,106,1,112,1,113,1,113,1, +110,1,105,1,103,1,109,1,121,1,136,1,153,1,168,1,181,1,190,1,200,1,209,1,221,1,238,1,255,1,12,2, +21,2,20,2,14,2,5,2,243,1,219,1,196,1,175,1,157,1,140,1,122,1,105,1,87,1,70,1,54,1,33,1, +13,1,252,0,235,0,219,0,203,0,186,0,169,0,154,0,138,0,120,0,101,0,80,0,56,0,28,0,253,255,220,255, +193,255,174,255,158,255,146,255,137,255,127,255,114,255,101,255,88,255,78,255,72,255,70,255,66,255,58,255,48,255,37,255, +23,255,8,255,250,254,236,254,219,254,203,254,182,254,157,254,136,254,123,254,113,254,102,254,91,254,84,254,81,254,79,254, +80,254,81,254,81,254,82,254,81,254,79,254,80,254,87,254,99,254,114,254,129,254,140,254,147,254,151,254,153,254,155,254, +164,254,178,254,196,254,216,254,231,254,239,254,244,254,252,254,6,255,16,255,28,255,41,255,52,255,58,255,62,255,66,255, +77,255,88,255,96,255,104,255,112,255,114,255,115,255,118,255,122,255,127,255,135,255,144,255,154,255,167,255,181,255,198,255, +213,255,224,255,230,255,233,255,237,255,243,255,251,255,7,0,23,0,42,0,62,0,83,0,105,0,124,0,143,0,164,0, +183,0,200,0,213,0,222,0,226,0,231,0,237,0,240,0,243,0,249,0,254,0,3,1,7,1,10,1,13,1,13,1, +11,1,9,1,6,1,253,0,244,0,237,0,227,0,216,0,210,0,208,0,211,0,215,0,219,0,227,0,236,0,239,0, +240,0,238,0,232,0,227,0,224,0,224,0,229,0,234,0,242,0,254,0,6,1,9,1,9,1,7,1,4,1,253,0, +240,0,228,0,215,0,201,0,189,0,182,0,178,0,175,0,175,0,175,0,172,0,170,0,172,0,173,0,174,0,174,0, +174,0,175,0,176,0,176,0,182,0,189,0,194,0,200,0,204,0,202,0,195,0,186,0,174,0,159,0,140,0,120,0, +98,0,73,0,48,0,21,0,252,255,235,255,222,255,212,255,207,255,204,255,199,255,194,255,188,255,185,255,182,255,180,255, +179,255,175,255,168,255,161,255,154,255,146,255,140,255,138,255,139,255,142,255,142,255,140,255,137,255,132,255,123,255,113,255, +105,255,98,255,90,255,85,255,82,255,81,255,82,255,83,255,85,255,84,255,80,255,72,255,63,255,54,255,46,255,39,255, +35,255,31,255,24,255,16,255,7,255,251,254,241,254,229,254,213,254,198,254,184,254,168,254,153,254,139,254,128,254,124,254, +123,254,125,254,128,254,131,254,139,254,148,254,158,254,170,254,181,254,192,254,204,254,212,254,216,254,221,254,226,254,237,254, +255,254,18,255,35,255,52,255,62,255,68,255,73,255,81,255,88,255,92,255,101,255,117,255,131,255,146,255,163,255,180,255, +196,255,213,255,230,255,247,255,12,0,32,0,50,0,68,0,87,0,102,0,116,0,134,0,148,0,158,0,170,0,181,0, +189,0,197,0,201,0,204,0,207,0,204,0,199,0,196,0,192,0,189,0,193,0,197,0,200,0,206,0,215,0,225,0, +235,0,241,0,246,0,248,0,249,0,249,0,252,0,254,0,254,0,255,0,255,0,254,0,253,0,251,0,250,0,246,0, +240,0,237,0,234,0,231,0,228,0,225,0,219,0,214,0,206,0,195,0,185,0,173,0,162,0,155,0,150,0,145,0, +140,0,131,0,123,0,118,0,111,0,105,0,99,0,92,0,85,0,76,0,68,0,64,0,62,0,59,0,60,0,64,0, +68,0,69,0,68,0,68,0,64,0,60,0,56,0,51,0,46,0,40,0,31,0,24,0,23,0,23,0,27,0,32,0, +34,0,34,0,31,0,20,0,9,0,1,0,251,255,248,255,247,255,245,255,243,255,239,255,236,255,233,255,230,255,225,255, +214,255,199,255,181,255,164,255,149,255,137,255,128,255,122,255,118,255,114,255,114,255,116,255,118,255,120,255,120,255,119,255, +114,255,105,255,98,255,92,255,86,255,81,255,77,255,73,255,69,255,67,255,66,255,66,255,67,255,66,255,63,255,62,255, +61,255,58,255,54,255,50,255,47,255,46,255,45,255,42,255,40,255,34,255,27,255,20,255,15,255,14,255,19,255,24,255, +28,255,33,255,38,255,42,255,47,255,55,255,63,255,70,255,78,255,84,255,87,255,92,255,96,255,98,255,105,255,115,255, +118,255,121,255,121,255,120,255,120,255,117,255,116,255,120,255,121,255,117,255,116,255,113,255,108,255,103,255,99,255,95,255, +92,255,87,255,83,255,82,255,82,255,80,255,78,255,77,255,77,255,77,255,79,255,85,255,89,255,92,255,95,255,99,255, +103,255,107,255,114,255,120,255,126,255,134,255,143,255,149,255,158,255,169,255,179,255,190,255,204,255,220,255,236,255,250,255, +7,0,19,0,28,0,38,0,49,0,59,0,67,0,75,0,83,0,86,0,86,0,90,0,94,0,96,0,100,0,104,0, +111,0,117,0,120,0,120,0,120,0,122,0,122,0,118,0,115,0,112,0,106,0,103,0,105,0,107,0,111,0,117,0, +122,0,127,0,132,0,138,0,143,0,147,0,153,0,156,0,157,0,159,0,161,0,163,0,166,0,168,0,167,0,165,0, +159,0,152,0,148,0,147,0,150,0,155,0,159,0,166,0,171,0,171,0,174,0,178,0,178,0,180,0,181,0,179,0, +176,0,169,0,160,0,150,0,140,0,131,0,127,0,124,0,118,0,110,0,102,0,95,0,87,0,81,0,77,0,71,0, +66,0,62,0,55,0,48,0,42,0,36,0,30,0,24,0,17,0,9,0,2,0,253,255,248,255,244,255,238,255,230,255, +223,255,217,255,213,255,215,255,215,255,211,255,206,255,198,255,190,255,183,255,175,255,169,255,166,255,162,255,159,255,157,255, +153,255,149,255,147,255,144,255,141,255,141,255,140,255,138,255,134,255,133,255,133,255,136,255,143,255,151,255,158,255,163,255, +168,255,171,255,174,255,175,255,174,255,171,255,165,255,160,255,158,255,157,255,157,255,157,255,157,255,158,255,157,255,158,255, +161,255,166,255,171,255,179,255,186,255,195,255,203,255,211,255,219,255,226,255,229,255,232,255,234,255,233,255,233,255,232,255, +228,255,222,255,214,255,207,255,202,255,197,255,195,255,196,255,194,255,194,255,195,255,195,255,195,255,193,255,191,255,190,255, +189,255,190,255,195,255,202,255,211,255,221,255,230,255,240,255,248,255,255,255,5,0,6,0,7,0,8,0,5,0,1,0, +254,255,249,255,244,255,239,255,234,255,230,255,226,255,223,255,223,255,223,255,222,255,223,255,226,255,231,255,236,255,240,255, +243,255,245,255,243,255,237,255,230,255,224,255,219,255,215,255,214,255,211,255,207,255,205,255,202,255,200,255,199,255,194,255, +189,255,184,255,178,255,173,255,171,255,169,255,173,255,181,255,190,255,198,255,207,255,216,255,223,255,226,255,230,255,234,255, +238,255,243,255,247,255,254,255,6,0,12,0,18,0,24,0,31,0,41,0,48,0,56,0,67,0,73,0,75,0,76,0, +74,0,72,0,72,0,72,0,74,0,77,0,79,0,81,0,81,0,79,0,79,0,80,0,81,0,85,0,90,0,95,0, +95,0,92,0,88,0,82,0,76,0,71,0,67,0,67,0,71,0,75,0,76,0,78,0,79,0,79,0,80,0,82,0, +86,0,89,0,91,0,91,0,90,0,88,0,82,0,75,0,66,0,58,0,50,0,44,0,42,0,45,0,47,0,47,0, +48,0,45,0,42,0,42,0,42,0,47,0,52,0,53,0,51,0,48,0,41,0,35,0,28,0,20,0,15,0,10,0, +3,0,250,255,241,255,234,255,228,255,224,255,223,255,222,255,220,255,220,255,221,255,222,255,220,255,215,255,211,255,208,255, +207,255,208,255,204,255,200,255,199,255,196,255,192,255,191,255,189,255,184,255,179,255,173,255,170,255,164,255,155,255,147,255, +136,255,122,255,111,255,103,255,95,255,88,255,81,255,75,255,67,255,61,255,56,255,53,255,52,255,52,255,48,255,43,255, +39,255,35,255,31,255,30,255,30,255,30,255,30,255,29,255,30,255,27,255,21,255,15,255,11,255,7,255,2,255,252,254, +245,254,239,254,233,254,230,254,229,254,230,254,232,254,237,254,244,254,252,254,6,255,15,255,22,255,25,255,23,255,19,255, +16,255,13,255,9,255,10,255,10,255,10,255,11,255,10,255,11,255,17,255,20,255,20,255,23,255,25,255,25,255,26,255, +26,255,25,255,25,255,25,255,25,255,29,255,35,255,42,255,50,255,57,255,67,255,75,255,84,255,95,255,104,255,111,255, +120,255,127,255,130,255,134,255,140,255,146,255,154,255,160,255,165,255,171,255,175,255,181,255,191,255,201,255,212,255,222,255, +233,255,245,255,0,0,13,0,23,0,30,0,36,0,41,0,41,0,43,0,45,0,49,0,55,0,60,0,66,0,71,0, +75,0,81,0,89,0,97,0,106,0,113,0,121,0,128,0,133,0,137,0,141,0,142,0,145,0,147,0,145,0,145,0, +144,0,140,0,140,0,142,0,144,0,152,0,161,0,171,0,184,0,196,0,208,0,221,0,232,0,241,0,247,0,253,0, +4,1,7,1,6,1,7,1,5,1,0,1,251,0,245,0,239,0,234,0,225,0,217,0,211,0,203,0,194,0,187,0, +180,0,171,0,163,0,155,0,145,0,134,0,124,0,110,0,96,0,84,0,69,0,57,0,46,0,33,0,21,0,13,0, +5,0,254,255,245,255,236,255,228,255,218,255,210,255,201,255,192,255,185,255,180,255,177,255,174,255,169,255,164,255,160,255, +153,255,148,255,144,255,136,255,131,255,126,255,117,255,109,255,103,255,97,255,92,255,88,255,82,255,77,255,73,255,67,255, +60,255,54,255,46,255,41,255,39,255,36,255,34,255,34,255,32,255,29,255,27,255,23,255,20,255,18,255,15,255,12,255, +7,255,1,255,251,254,243,254,236,254,231,254,227,254,224,254,221,254,219,254,220,254,220,254,220,254,221,254,221,254,221,254, +224,254,225,254,227,254,230,254,233,254,237,254,241,254,246,254,252,254,0,255,7,255,17,255,25,255,35,255,46,255,56,255, +65,255,72,255,79,255,88,255,97,255,106,255,116,255,127,255,141,255,154,255,165,255,177,255,186,255,196,255,212,255,223,255, +234,255,251,255,8,0,19,0,31,0,41,0,50,0,59,0,67,0,76,0,84,0,94,0,102,0,107,0,112,0,118,0, +123,0,130,0,136,0,141,0,148,0,155,0,160,0,169,0,179,0,187,0,195,0,201,0,206,0,207,0,206,0,205,0, +203,0,198,0,194,0,194,0,198,0,206,0,212,0,219,0,228,0,235,0,242,0,249,0,0,1,6,1,12,1,18,1, +22,1,27,1,35,1,40,1,43,1,47,1,49,1,50,1,51,1,52,1,52,1,50,1,49,1,51,1,48,1,44,1, +44,1,41,1,34,1,31,1,25,1,16,1,9,1,2,1,248,0,242,0,236,0,228,0,222,0,216,0,206,0,196,0, +187,0,177,0,169,0,164,0,157,0,152,0,148,0,144,0,139,0,131,0,124,0,120,0,113,0,108,0,105,0,101,0, +97,0,92,0,83,0,76,0,68,0,59,0,52,0,45,0,40,0,35,0,30,0,25,0,17,0,8,0,1,0,249,255, +241,255,236,255,229,255,222,255,216,255,208,255,202,255,196,255,190,255,189,255,189,255,185,255,181,255,176,255,168,255,161,255, +155,255,150,255,145,255,140,255,137,255,132,255,126,255,122,255,118,255,113,255,107,255,101,255,95,255,90,255,86,255,84,255, +82,255,82,255,84,255,84,255,84,255,87,255,85,255,83,255,82,255,79,255,78,255,77,255,72,255,71,255,73,255,74,255, +75,255,77,255,78,255,79,255,76,255,75,255,75,255,75,255,76,255,76,255,77,255,79,255,79,255,78,255,77,255,76,255, +76,255,77,255,78,255,79,255,80,255,80,255,80,255,82,255,84,255,87,255,88,255,90,255,89,255,89,255,92,255,95,255, +97,255,99,255,101,255,101,255,102,255,103,255,103,255,101,255,99,255,99,255,98,255,98,255,99,255,99,255,102,255,106,255, +110,255,116,255,124,255,129,255,134,255,142,255,151,255,159,255,170,255,178,255,183,255,190,255,198,255,207,255,219,255,232,255, +245,255,1,0,11,0,19,0,26,0,32,0,40,0,45,0,47,0,51,0,55,0,56,0,58,0,58,0,58,0,60,0, +60,0,61,0,64,0,66,0,66,0,67,0,67,0,67,0,66,0,67,0,70,0,73,0,76,0,81,0,83,0,87,0, +91,0,93,0,98,0,103,0,107,0,114,0,119,0,123,0,126,0,125,0,125,0,127,0,129,0,132,0,136,0,139,0, +144,0,148,0,149,0,150,0,151,0,150,0,150,0,151,0,150,0,149,0,151,0,153,0,150,0,149,0,151,0,151,0, +150,0,149,0,147,0,145,0,141,0,135,0,130,0,124,0,115,0,110,0,104,0,101,0,100,0,97,0,98,0,102,0, +104,0,106,0,108,0,110,0,113,0,115,0,117,0,120,0,120,0,119,0,121,0,123,0,123,0,122,0,119,0,115,0, +109,0,104,0,100,0,96,0,92,0,88,0,83,0,81,0,80,0,80,0,76,0,73,0,72,0,72,0,71,0,71,0, +70,0,69,0,66,0,62,0,56,0,50,0,44,0,41,0,37,0,31,0,29,0,27,0,25,0,23,0,22,0,19,0, +16,0,13,0,11,0,9,0,8,0,5,0,2,0,1,0,255,255,254,255,255,255,0,0,255,255,253,255,250,255,247,255, +247,255,245,255,244,255,247,255,248,255,251,255,253,255,254,255,1,0,3,0,6,0,9,0,9,0,9,0,9,0,9,0, +11,0,13,0,16,0,18,0,17,0,19,0,21,0,19,0,21,0,23,0,22,0,25,0,25,0,25,0,28,0,30,0, +32,0,36,0,39,0,43,0,50,0,52,0,53,0,57,0,57,0,55,0,56,0,59,0,58,0,56,0,57,0,59,0, +58,0,58,0,56,0,54,0,53,0,49,0,48,0,49,0,51,0,56,0,60,0,63,0,67,0,69,0,69,0,71,0, +73,0,77,0,84,0,88,0,94,0,99,0,100,0,102,0,106,0,107,0,107,0,108,0,109,0,112,0,114,0,116,0, +118,0,119,0,119,0,120,0,121,0,125,0,128,0,131,0,133,0,135,0,135,0,136,0,136,0,137,0,140,0,142,0, +143,0,144,0,144,0,143,0,142,0,143,0,144,0,146,0,149,0,151,0,154,0,158,0,162,0,165,0,168,0,169,0, +173,0,179,0,184,0,189,0,194,0,198,0,200,0,198,0,195,0,192,0,189,0,188,0,189,0,192,0,194,0,194,0, +194,0,194,0,195,0,197,0,197,0,197,0,199,0,198,0,196,0,196,0,193,0,189,0,186,0,184,0,184,0,182,0, +181,0,183,0,181,0,177,0,173,0,169,0,164,0,159,0,155,0,154,0,153,0,152,0,153,0,151,0,151,0,152,0, +152,0,152,0,152,0,151,0,151,0,147,0,143,0,143,0,138,0,133,0,130,0,124,0,120,0,115,0,108,0,105,0, +103,0,98,0,97,0,97,0,95,0,96,0,95,0,90,0,88,0,87,0,84,0,79,0,75,0,73,0,70,0,69,0, +68,0,64,0,60,0,56,0,49,0,43,0,36,0,31,0,27,0,22,0,19,0,18,0,16,0,13,0,12,0,9,0, +7,0,4,0,3,0,6,0,7,0,6,0,6,0,6,0,6,0,8,0,9,0,10,0,11,0,12,0,12,0,12,0, +13,0,14,0,14,0,15,0,16,0,15,0,13,0,12,0,10,0,8,0,6,0,3,0,2,0,3,0,3,0,4,0, +6,0,7,0,9,0,13,0,17,0,20,0,25,0,28,0,31,0,36,0,40,0,44,0,49,0,53,0,55,0,56,0, +58,0,59,0,61,0,63,0,64,0,64,0,66,0,67,0,66,0,67,0,68,0,68,0,70,0,70,0,70,0,72,0, +70,0,68,0,68,0,67,0,65,0,66,0,66,0,66,0,69,0,70,0,71,0,73,0,76,0,78,0,79,0,81,0, +83,0,85,0,85,0,83,0,84,0,87,0,87,0,86,0,85,0,84,0,84,0,82,0,79,0,80,0,80,0,79,0, +79,0,76,0,74,0,75,0,75,0,76,0,79,0,79,0,82,0,84,0,84,0,83,0,81,0,78,0,79,0,77,0, +76,0,75,0,76,0,78,0,81,0,83,0,87,0,90,0,91,0,93,0,95,0,97,0,97,0,98,0,101,0,103,0, +103,0,104,0,103,0,100,0,96,0,92,0,90,0,87,0,84,0,81,0,80,0,78,0,76,0,74,0,73,0,72,0, +68,0,64,0,62,0,59,0,56,0,54,0,51,0,49,0,48,0,46,0,44,0,43,0,41,0,39,0,38,0,37,0, +35,0,31,0,29,0,28,0,27,0,25,0,24,0,23,0,24,0,25,0,25,0,24,0,21,0,16,0,12,0,9,0, +7,0,7,0,7,0,7,0,6,0,5,0,2,0,254,255,252,255,249,255,246,255,243,255,242,255,240,255,237,255,236,255, +233,255,229,255,227,255,224,255,222,255,220,255,217,255,215,255,214,255,210,255,209,255,211,255,210,255,211,255,213,255,211,255, +211,255,212,255,210,255,209,255,207,255,205,255,204,255,204,255,204,255,204,255,204,255,203,255,203,255,203,255,202,255,199,255, +197,255,196,255,195,255,196,255,198,255,200,255,202,255,202,255,202,255,203,255,202,255,205,255,208,255,207,255,207,255,208,255, +207,255,207,255,208,255,208,255,208,255,207,255,208,255,211,255,212,255,213,255,215,255,216,255,218,255,222,255,223,255,225,255, +227,255,227,255,226,255,226,255,225,255,223,255,222,255,223,255,224,255,225,255,227,255,227,255,227,255,226,255,224,255,224,255, +224,255,222,255,223,255,225,255,227,255,230,255,232,255,233,255,237,255,241,255,243,255,247,255,252,255,255,255,2,0,6,0, +10,0,12,0,13,0,13,0,13,0,16,0,17,0,20,0,25,0,28,0,29,0,32,0,36,0,39,0,40,0,42,0, +45,0,48,0,47,0,48,0,50,0,49,0,48,0,48,0,47,0,47,0,47,0,46,0,43,0,40,0,36,0,33,0, +28,0,25,0,23,0,22,0,19,0,18,0,15,0,12,0,10,0,6,0,1,0,0,0,254,255,250,255,249,255,250,255, +251,255,251,255,250,255,251,255,250,255,247,255,246,255,246,255,244,255,244,255,244,255,241,255,238,255,234,255,229,255,224,255, +221,255,218,255,214,255,211,255,209,255,208,255,207,255,206,255,203,255,201,255,201,255,201,255,200,255,199,255,198,255,198,255, +198,255,197,255,196,255,195,255,191,255,185,255,183,255,182,255,179,255,176,255,175,255,173,255,173,255,171,255,169,255,168,255, +169,255,167,255,164,255,162,255,161,255,159,255,157,255,156,255,156,255,155,255,154,255,154,255,154,255,153,255,153,255,153,255, +154,255,156,255,156,255,157,255,159,255,161,255,164,255,167,255,168,255,168,255,169,255,172,255,175,255,178,255,181,255,187,255, +191,255,195,255,199,255,204,255,209,255,214,255,219,255,224,255,229,255,233,255,237,255,242,255,246,255,249,255,253,255,1,0, +4,0,8,0,11,0,13,0,15,0,17,0,19,0,21,0,23,0,24,0,26,0,25,0,25,0,24,0,24,0,24,0, +24,0,24,0,24,0,26,0,28,0,30,0,30,0,30,0,30,0,30,0,30,0,29,0,29,0,28,0,28,0,29,0, +29,0,30,0,31,0,32,0,32,0,33,0,34,0,37,0,41,0,45,0,47,0,51,0,53,0,53,0,53,0,57,0, +58,0,58,0,58,0,57,0,55,0,52,0,47,0,44,0,42,0,38,0,33,0,30,0,26,0,23,0,23,0,21,0, +20,0,20,0,19,0,18,0,17,0,15,0,13,0,11,0,9,0,8,0,5,0,2,0,0,0,252,255,247,255,245,255, +242,255,240,255,238,255,237,255,234,255,233,255,232,255,230,255,230,255,230,255,229,255,229,255,230,255,231,255,232,255,234,255, +235,255,235,255,235,255,233,255,232,255,233,255,233,255,232,255,230,255,229,255,225,255,223,255,222,255,220,255,217,255,217,255, +215,255,212,255,213,255,213,255,214,255,215,255,217,255,219,255,221,255,222,255,224,255,224,255,223,255,224,255,225,255,225,255, +225,255,227,255,227,255,227,255,226,255,226,255,227,255,229,255,228,255,228,255,228,255,228,255,227,255,226,255,227,255,228,255, +228,255,229,255,231,255,231,255,232,255,232,255,231,255,229,255,228,255,227,255,227,255,227,255,226,255,227,255,227,255,225,255, +225,255,226,255,227,255,229,255,231,255,232,255,234,255,237,255,238,255,240,255,242,255,244,255,245,255,247,255,250,255,253,255, +254,255,0,0,2,0,2,0,1,0,255,255,253,255,252,255,250,255,247,255,244,255,242,255,240,255,237,255,235,255,232,255, +229,255,225,255,222,255,221,255,220,255,217,255,218,255,220,255,221,255,221,255,221,255,220,255,218,255,216,255,215,255,214,255, +214,255,212,255,212,255,213,255,216,255,217,255,219,255,222,255,222,255,222,255,222,255,221,255,219,255,220,255,222,255,223,255, +225,255,226,255,227,255,229,255,229,255,230,255,232,255,233,255,233,255,235,255,236,255,239,255,241,255,242,255,244,255,245,255, +244,255,244,255,245,255,244,255,244,255,246,255,247,255,248,255,249,255,249,255,249,255,248,255,248,255,247,255,245,255,242,255, +240,255,238,255,234,255,232,255,232,255,230,255,229,255,228,255,226,255,224,255,224,255,224,255,224,255,224,255,227,255,229,255, +229,255,230,255,232,255,233,255,234,255,237,255,239,255,240,255,242,255,243,255,244,255,246,255,247,255,248,255,249,255,251,255, +255,255,2,0,4,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,4,0,4,0,6,0,6,0,7,0, +9,0,10,0,10,0,11,0,12,0,10,0,11,0,13,0,14,0,14,0,14,0,13,0,10,0,9,0,7,0,5,0, +5,0,5,0,5,0,4,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,251,255,250,255, +250,255,250,255,249,255,248,255,247,255,246,255,244,255,245,255,245,255,243,255,244,255,245,255,246,255,247,255,247,255,245,255, +244,255,242,255,241,255,243,255,244,255,243,255,245,255,247,255,247,255,247,255,247,255,247,255,246,255,243,255,243,255,245,255, +244,255,242,255,242,255,241,255,238,255,236,255,233,255,230,255,228,255,225,255,220,255,217,255,216,255,215,255,215,255,216,255, +214,255,213,255,214,255,213,255,211,255,210,255,209,255,207,255,205,255,203,255,200,255,200,255,199,255,197,255,196,255,196,255, +196,255,196,255,197,255,198,255,201,255,204,255,206,255,209,255,211,255,212,255,215,255,217,255,219,255,221,255,223,255,223,255, +224,255,225,255,227,255,229,255,230,255,229,255,229,255,229,255,230,255,229,255,227,255,228,255,227,255,226,255,228,255,230,255, +229,255,227,255,227,255,226,255,225,255,224,255,222,255,220,255,219,255,218,255,216,255,215,255,215,255,215,255,215,255,215,255, +216,255,216,255,216,255,217,255,218,255,221,255,224,255,227,255,228,255,229,255,230,255,230,255,230,255,230,255,232,255,235,255, +236,255,236,255,237,255,238,255,238,255,241,255,243,255,244,255,247,255,250,255,251,255,253,255,1,0,4,0,6,0,6,0, +8,0,9,0,10,0,11,0,11,0,12,0,14,0,13,0,12,0,13,0,13,0,13,0,12,0,11,0,10,0,9,0, +7,0,7,0,6,0,5,0,2,0,255,255,253,255,250,255,246,255,244,255,241,255,236,255,233,255,234,255,233,255,232,255, +233,255,232,255,232,255,233,255,232,255,230,255,228,255,226,255,225,255,223,255,221,255,220,255,219,255,219,255,221,255,222,255, +222,255,225,255,227,255,227,255,227,255,229,255,230,255,232,255,234,255,234,255,233,255,233,255,232,255,232,255,231,255,228,255, +228,255,229,255,227,255,225,255,225,255,225,255,224,255,224,255,222,255,221,255,220,255,218,255,216,255,214,255,213,255,211,255, +210,255,208,255,205,255,202,255,201,255,200,255,198,255,197,255,194,255,191,255,190,255,188,255,186,255,186,255,187,255,187,255, +188,255,188,255,188,255,189,255,190,255,191,255,191,255,190,255,191,255,193,255,193,255,193,255,193,255,192,255,190,255,189,255, +189,255,190,255,192,255,194,255,196,255,197,255,199,255,200,255,200,255,200,255,204,255,206,255,207,255,209,255,212,255,211,255, +211,255,210,255,209,255,208,255,208,255,209,255,207,255,206,255,206,255,207,255,207,255,208,255,210,255,211,255,213,255,215,255, +217,255,219,255,219,255,219,255,218,255,215,255,212,255,211,255,211,255,212,255,212,255,213,255,213,255,214,255,214,255,212,255, +211,255,211,255,211,255,211,255,212,255,214,255,215,255,214,255,213,255,213,255,211,255,209,255,210,255,211,255,210,255,210,255, +210,255,209,255,209,255,207,255,206,255,206,255,206,255,206,255,207,255,207,255,207,255,209,255,210,255,210,255,210,255,210,255, +208,255,206,255,205,255,204,255,201,255,198,255,196,255,193,255,191,255,190,255,188,255,188,255,188,255,188,255,187,255,185,255, +184,255,183,255,181,255,181,255,181,255,180,255,180,255,180,255,178,255,176,255,175,255,174,255,172,255,173,255,173,255,173,255, +174,255,174,255,173,255,173,255,172,255,174,255,174,255,174,255,177,255,180,255,182,255,183,255,184,255,184,255,184,255,184,255, +183,255,181,255,181,255,181,255,180,255,178,255,178,255,178,255,176,255,175,255,175,255,176,255,175,255,176,255,178,255,179,255, +180,255,181,255,182,255,183,255,184,255,184,255,183,255,181,255,181,255,183,255,185,255,186,255,187,255,188,255,187,255,189,255, +190,255,190,255,190,255,191,255,192,255,194,255,195,255,196,255,199,255,201,255,203,255,204,255,205,255,206,255,205,255,206,255, +207,255,208,255,209,255,210,255,210,255,212,255,214,255,214,255,214,255,216,255,217,255,218,255,219,255,221,255,222,255,224,255, +227,255,229,255,229,255,230,255,231,255,232,255,231,255,232,255,233,255,233,255,234,255,235,255,235,255,234,255,234,255,235,255, +235,255,234,255,235,255,234,255,232,255,231,255,230,255,228,255,228,255,227,255,226,255,226,255,224,255,223,255,224,255,224,255, +222,255,222,255,220,255,218,255,219,255,219,255,218,255,218,255,219,255,219,255,220,255,221,255,223,255,224,255,226,255,227,255, +229,255,230,255,229,255,229,255,229,255,229,255,228,255,228,255,228,255,228,255,227,255,226,255,226,255,228,255,227,255,227,255, +227,255,226,255,225,255,222,255,219,255,218,255,216,255,213,255,210,255,208,255,205,255,203,255,201,255,199,255,198,255,197,255, +195,255,194,255,193,255,193,255,192,255,192,255,194,255,195,255,195,255,194,255,194,255,195,255,197,255,199,255,201,255,203,255, +205,255,206,255,208,255,208,255,209,255,210,255,212,255,214,255,215,255,217,255,219,255,218,255,218,255,220,255,219,255,217,255, +215,255,213,255,212,255,211,255,209,255,209,255,209,255,208,255,209,255,210,255,209,255,209,255,208,255,207,255,208,255,208,255, +207,255,208,255,209,255,209,255,210,255,211,255,212,255,212,255,211,255,210,255,211,255,211,255,211,255,210,255,210,255,210,255, +210,255,210,255,208,255,207,255,208,255,208,255,208,255,209,255,210,255,211,255,211,255,210,255,210,255,210,255,210,255,210,255, +210,255,209,255,208,255,208,255,209,255,210,255,211,255,211,255,212,255,212,255,213,255,213,255,213,255,214,255,217,255,219,255, +219,255,221,255,223,255,225,255,226,255,227,255,229,255,231,255,233,255,237,255,240,255,242,255,243,255,244,255,245,255,247,255, +247,255,246,255,245,255,245,255,245,255,243,255,242,255,242,255,242,255,243,255,243,255,242,255,242,255,243,255,241,255,240,255, +242,255,243,255,245,255,246,255,246,255,248,255,250,255,251,255,252,255,253,255,255,255,2,0,4,0,7,0,11,0,13,0, +14,0,16,0,17,0,18,0,20,0,22,0,24,0,25,0,26,0,27,0,29,0,32,0,32,0,31,0,31,0,33,0, +36,0,38,0,40,0,41,0,43,0,43,0,42,0,43,0,43,0,42,0,42,0,40,0,39,0,39,0,38,0,36,0, +35,0,33,0,31,0,30,0,29,0,30,0,30,0,30,0,30,0,30,0,29,0,28,0,27,0,25,0,24,0,24,0, +23,0,22,0,21,0,20,0,19,0,19,0,18,0,16,0,17,0,18,0,17,0,16,0,17,0,16,0,15,0,14,0, +12,0,12,0,12,0,11,0,10,0,10,0,10,0,10,0,8,0,7,0,8,0,7,0,6,0,6,0,7,0,7,0, +8,0,8,0,8,0,9,0,8,0,9,0,10,0,9,0,10,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0, +10,0,8,0,7,0,6,0,4,0,2,0,1,0,255,255,254,255,254,255,253,255,250,255,248,255,246,255,246,255,246,255, +246,255,246,255,247,255,246,255,246,255,247,255,245,255,243,255,242,255,242,255,242,255,242,255,241,255,243,255,244,255,245,255, +246,255,247,255,248,255,250,255,251,255,252,255,254,255,255,255,1,0,3,0,3,0,5,0,6,0,7,0,7,0,8,0, +10,0,11,0,11,0,12,0,13,0,12,0,11,0,10,0,9,0,9,0,9,0,9,0,11,0,11,0,12,0,13,0, +13,0,12,0,13,0,14,0,15,0,15,0,16,0,18,0,19,0,21,0,22,0,23,0,25,0,25,0,24,0,26,0, +29,0,30,0,31,0,34,0,35,0,37,0,39,0,39,0,39,0,41,0,41,0,42,0,44,0,45,0,48,0,50,0, +50,0,52,0,55,0,55,0,56,0,58,0,60,0,60,0,61,0,63,0,63,0,63,0,65,0,66,0,65,0,66,0, +69,0,71,0,73,0,75,0,78,0,79,0,80,0,82,0,82,0,84,0,87,0,88,0,87,0,87,0,87,0,87,0, +89,0,89,0,89,0,90,0,90,0,88,0,88,0,87,0,85,0,84,0,83,0,81,0,80,0,79,0,77,0,76,0, +75,0,74,0,72,0,72,0,71,0,70,0,70,0,69,0,67,0,66,0,65,0,62,0,61,0,61,0,61,0,60,0, +59,0,59,0,59,0,59,0,58,0,58,0,58,0,58,0,58,0,57,0,59,0,60,0,59,0,60,0,61,0,61,0, +62,0,62,0,62,0,61,0,60,0,59,0,59,0,57,0,55,0,53,0,52,0,50,0,48,0,45,0,44,0,44,0, +43,0,42,0,41,0,40,0,38,0,36,0,36,0,35,0,33,0,32,0,31,0,31,0,31,0,30,0,30,0,32,0, +31,0,31,0,31,0,30,0,29,0,31,0,31,0,32,0,32,0,31,0,31,0,31,0,30,0,31,0,32,0,30,0, +30,0,31,0,31,0,31,0,31,0,32,0,32,0,33,0,32,0,33,0,33,0,32,0,31,0,31,0,32,0,30,0, +29,0,30,0,29,0,28,0,28,0,28,0,29,0,30,0,31,0,32,0,32,0,30,0,30,0,29,0,28,0,28,0, +29,0,29,0,30,0,31,0,32,0,34,0,35,0,35,0,36,0,35,0,34,0,34,0,35,0,36,0,37,0,38,0, +39,0,38,0,36,0,36,0,37,0,36,0,34,0,33,0,34,0,35,0,34,0,35,0,35,0,34,0,34,0,35,0, +36,0,36,0,37,0,36,0,36,0,37,0,37,0,37,0,38,0,38,0,37,0,37,0,39,0,38,0,37,0,37,0, +36,0,35,0,36,0,35,0,34,0,34,0,33,0,31,0,31,0,30,0,29,0,28,0,27,0,27,0,26,0,24,0, +23,0,21,0,20,0,20,0,20,0,20,0,20,0,19,0,17,0,17,0,15,0,14,0,14,0,14,0,14,0,14,0, +15,0,15,0,14,0,14,0,14,0,14,0,14,0,13,0,13,0,14,0,15,0,13,0,13,0,14,0,14,0,15,0, +16,0,16,0,16,0,18,0,18,0,18,0,18,0,18,0,18,0,17,0,17,0,17,0,15,0,13,0,13,0,12,0, +12,0,10,0,9,0,9,0,9,0,8,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0,12,0,12,0, +12,0,13,0,13,0,13,0,14,0,14,0,16,0,18,0,19,0,20,0,23,0,22,0,23,0,26,0,27,0,27,0, +28,0,27,0,29,0,30,0,28,0,27,0,28,0,28,0,29,0,28,0,28,0,28,0,28,0,27,0,26,0,26,0, +27,0,27,0,26,0,26,0,26,0,25,0,26,0,25,0,25,0,25,0,26,0,26,0,25,0,24,0,25,0,24,0, +24,0,25,0,23,0,23,0,24,0,23,0,23,0,23,0,22,0,21,0,21,0,19,0,19,0,20,0,20,0,20,0, +21,0,21,0,20,0,21,0,21,0,20,0,21,0,22,0,20,0,19,0,19,0,17,0,16,0,17,0,17,0,16,0, +17,0,18,0,17,0,18,0,18,0,18,0,18,0,18,0,17,0,17,0,18,0,18,0,18,0,19,0,19,0,19,0, +19,0,19,0,19,0,19,0,20,0,19,0,19,0,21,0,20,0,19,0,19,0,20,0,19,0,19,0,18,0,18,0, +18,0,16,0,15,0,14,0,14,0,14,0,13,0,13,0,13,0,11,0,11,0,11,0,11,0,11,0,13,0,12,0, +12,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,13,0,13,0,14,0,15,0,15,0,15,0,17,0,18,0, +18,0,18,0,19,0,19,0,21,0,21,0,20,0,21,0,20,0,18,0,20,0,21,0,21,0,21,0,21,0,21,0, +22,0,23,0,23,0,24,0,26,0,27,0,26,0,26,0,27,0,26,0,26,0,27,0,28,0,28,0,27,0,27,0, +27,0,27,0,27,0,27,0,27,0,28,0,29,0,30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, +30,0,30,0,30,0,31,0,32,0,33,0,33,0,33,0,34,0,33,0,34,0,34,0,33,0,33,0,33,0,32,0, +32,0,31,0,31,0,32,0,32,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,32,0,33,0,33,0,33,0, +32,0,33,0,32,0,31,0,30,0,29,0,28,0,27,0,25,0,24,0,23,0,23,0,23,0,23,0,22,0,23,0, +22,0,23,0,24,0,22,0,22,0,21,0,21,0,21,0,21,0,19,0,19,0,20,0,19,0,19,0,19,0,19,0, +20,0,21,0,22,0,23,0,22,0,22,0,23,0,24,0,24,0,25,0,27,0,26,0,26,0,26,0,25,0,25,0, +25,0,24,0,24,0,24,0,24,0,23,0,22,0,21,0,20,0,21,0,20,0,19,0,20,0,20,0,19,0,19,0, +18,0,17,0,17,0,18,0,18,0,17,0,15,0,15,0,15,0,14,0,13,0,13,0,13,0,12,0,12,0,13,0, +14,0,15,0,15,0,16,0,16,0,16,0,17,0,18,0,18,0,18,0,19,0,19,0,19,0,19,0,19,0,19,0, +19,0,18,0,17,0,18,0,18,0,17,0,18,0,18,0,16,0,16,0,17,0,17,0,17,0,17,0,17,0,17,0, +17,0,16,0,16,0,16,0,15,0,14,0,13,0,14,0,15,0,14,0,15,0,15,0,16,0,17,0,17,0,17,0, +18,0,18,0,17,0,18,0,19,0,19,0,20,0,20,0,20,0,20,0,21,0,22,0,22,0,21,0,20,0,20,0, +21,0,21,0,20,0,20,0,20,0,19,0,20,0,20,0,20,0,21,0,21,0,20,0,21,0,22,0,22,0,22,0, +22,0,21,0,22,0,22,0,22,0,22,0,21,0,21,0,22,0,21,0,21,0,21,0,19,0,19,0,19,0,19,0, +20,0,20,0,19,0,18,0,18,0,18,0,17,0,17,0,16,0,14,0,14,0,14,0,13,0,13,0,13,0,12,0, +12,0,12,0,11,0,11,0,10,0,9,0,10,0,8,0,6,0,6,0,6,0,5,0,5,0,5,0,4,0,5,0, +4,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,254,255,254,255,254,255,254,255,255,255,254,255,253,255,254,255,254,255,253,255,253,255,252,255,253,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,255,255,1,0,2,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0, +4,0,3,0,4,0,5,0,5,0,6,0,7,0,7,0,8,0,9,0,9,0,8,0,8,0,9,0,8,0,9,0, +10,0,10,0,10,0,11,0,12,0,12,0,11,0,12,0,12,0,12,0,12,0,13,0,12,0,12,0,11,0,10,0, +10,0,10,0,9,0,10,0,11,0,11,0,12,0,11,0,11,0,12,0,12,0,11,0,12,0,13,0,11,0,11,0, +11,0,11,0,11,0,12,0,12,0,13,0,14,0,14,0,13,0,13,0,12,0,11,0,11,0,12,0,11,0,11,0, +10,0,9,0,9,0,8,0,8,0,8,0,6,0,5,0,6,0,6,0,4,0,4,0,2,0,1,0,1,0,0,0, +1,0,1,0,0,0,1,0,2,0,2,0,2,0,3,0,2,0,2,0,1,0,2,0,3,0,3,0,3,0,4,0, +5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0, +7,0,6,0,7,0,7,0,7,0,8,0,8,0,8,0,8,0,8,0,9,0,9,0,9,0,9,0,10,0,9,0, +10,0,11,0,12,0,12,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,12,0,13,0,13,0,14,0, +14,0,15,0,15,0,16,0,15,0,15,0,15,0,15,0,15,0,15,0,14,0,14,0,15,0,14,0,13,0,14,0, +13,0,12,0,12,0,12,0,11,0,12,0,11,0,10,0,11,0,11,0,11,0,11,0,10,0,10,0,10,0,11,0, +11,0,11,0,11,0,11,0,12,0,12,0,12,0,12,0,13,0,12,0,12,0,13,0,13,0,13,0,13,0,12,0, +12,0,11,0,11,0,11,0,11,0,10,0,11,0,11,0,10,0,11,0,11,0,10,0,10,0,9,0,8,0,8,0, +8,0,8,0,9,0,9,0,8,0,8,0,9,0,8,0,7,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0, +7,0,6,0,7,0,8,0,7,0,7,0,8,0,8,0,8,0,8,0,7,0,7,0,6,0,7,0,7,0,7,0, +7,0,7,0,8,0,8,0,7,0,6,0,7,0,7,0,6,0,6,0,5,0,5,0,5,0,4,0,4,0,4,0, +3,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,2,0,2,0,1,0,2,0,4,0,3,0,1,0,2,0,3,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,3,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +5,0,4,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,5,0,4,0, +4,0,5,0,5,0,5,0,7,0,7,0,7,0,7,0,8,0,8,0,8,0,8,0,8,0,9,0,9,0,9,0, +9,0,9,0,8,0,7,0,7,0,7,0,7,0,6,0,5,0,5,0,5,0,4,0,4,0,5,0,4,0,4,0, +4,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0, +3,0,3,0,3,0,2,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0, +1,0,1,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +255,255,254,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,253,255,253,255,253,255,252,255, +252,255,253,255,252,255,252,255,253,255,253,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,253,255,254,255,253,255,253,255,253,255,254,255,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +253,255,253,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,253,255, +254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,254,255,254,255,253,255, +253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,251,255,251,255,252,255,252,255,252,255,252,255,251,255, +250,255,251,255,250,255,250,255,251,255,250,255,249,255,250,255,250,255,250,255,250,255,250,255,250,255,251,255,250,255,250,255, +252,255,252,255,252,255,252,255,252,255,252,255,253,255,252,255,251,255,252,255,253,255,252,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,255,255,255,255,254,255,255,255,254,255,254,255,0,0,255,255, +254,255,255,255,254,255,254,255,0,0,0,0,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,254,255,254,255, +255,255,254,255,254,255,255,255,254,255,254,255,254,255,253,255,254,255,253,255,254,255,254,255,253,255,254,255,255,255,254,255, +253,255,255,255,255,255,254,255,254,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,253,255, +252,255,253,255,252,255,252,255,252,255,251,255,250,255,251,255,251,255,250,255,249,255,249,255,249,255,249,255,249,255,249,255, +248,255,248,255,248,255,247,255,247,255,248,255,247,255,246,255,247,255,247,255,246,255,247,255,247,255,247,255,248,255,248,255, +247,255,247,255,247,255,247,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,249,255,249,255,250,255,250,255,250,255, +250,255,252,255,251,255,251,255,252,255,251,255,252,255,252,255,251,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,253,255,254,255,253,255,252,255,254,255,254,255,253,255,254,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,1,0,2,0, +2,0,2,0,1,0,2,0,3,0,2,0,2,0,4,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0, +2,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,5,0,3,0,4,0,5,0,4,0,4,0,4,0,3,0, +3,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,4,0,3,0,2,0,2,0,2,0,2,0,3,0,1,0, +2,0,2,0,1,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0, +254,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255, +253,255,253,255,253,255,253,255,252,255,252,255,253,255,254,255,253,255,253,255,253,255,254,255,253,255,253,255,254,255,254,255, +254,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,251,255,252,255, +252,255,252,255,251,255,252,255,252,255,252,255,252,255,253,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,252,255, +253,255,252,255,252,255,252,255,253,255,253,255,252,255,253,255,254,255,253,255,254,255,254,255,253,255,254,255,255,255,255,255, +254,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,255,255,0,0,0,0,255,255,254,255,255,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255, +255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,254,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0, +2,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,1,0, +1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,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,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +1,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,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, +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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,0,0,1,0,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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,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,255,255,255,255,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,255,255,254,255,0,0,1,0,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,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,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,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,1,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,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,1,0,1,0,1,0,1,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +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,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,2,0,1,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255, +0,0,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,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,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,255,255,255,255,1,0, +0,0,254,255,0,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0, +0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0, +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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,1,0,2,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255, +0,0,0,0,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,255,255,0,0,0,0,255,255,255,255,1,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,1,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,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,1,0,0,0,255,255, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +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,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,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,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,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,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,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,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,1,0,1,0,0,0,1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,0,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,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,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +1,0,0,0,0,0,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,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,1,0,1,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +255,255,254,255,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,255,255,255,255,1,0,0,0,255,255, +255,255,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,255,255,0,0, +1,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,0,0,255,255, +255,255,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,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,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,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,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,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,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,255,255,254,255,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,1,0,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, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0,2,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,255,255,254,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255, +0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,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,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0, +1,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,0,0,1,0,3,0,2,0,1,0,0,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,1,0,3,0,2,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0, +2,0,1,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0, +3,0,4,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,2,0,1,0, +2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,2,0, +2,0,3,0,2,0,1,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,2,0,3,0, +2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,1,0,2,0,3,0,2,0,2,0,2,0, +2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0, +3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0, +3,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0, +2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,3,0,4,0,4,0,3,0, +3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,5,0,4,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0, +4,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,3,0,4,0,6,0, +5,0,4,0,5,0,5,0,4,0,5,0,4,0,5,0,5,0,4,0,4,0,5,0,5,0,6,0,5,0,4,0, +5,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,6,0, +5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,6,0,5,0,6,0,6,0, +5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0, +7,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,7,0,6,0,6,0,6,0,7,0,7,0,8,0,7,0, +6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0, +7,0,7,0,7,0,8,0,7,0,6,0,7,0,8,0,7,0,8,0,8,0,7,0,7,0,8,0,7,0,7,0, +8,0,8,0,9,0,7,0,7,0,8,0,8,0,8,0,8,0,8,0,7,0,8,0,8,0,8,0,9,0,9,0, +8,0,7,0,8,0,7,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,9,0,8,0,7,0,8,0,9,0, +9,0,7,0,8,0,9,0,9,0,8,0,8,0,8,0,8,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0, +9,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0, +9,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0,10,0, +10,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,10,0,10,0,9,0,9,0,10,0,11,0, +10,0,10,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,11,0, +11,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,11,0, +11,0,10,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,11,0,10,0,10,0,12,0,11,0,11,0,12,0, +12,0,11,0,11,0,11,0,11,0,11,0,12,0,12,0,12,0,11,0,12,0,12,0,11,0,11,0,12,0,11,0, +11,0,12,0,11,0,11,0,12,0,11,0,11,0,12,0,12,0,11,0,11,0,12,0,11,0,12,0,12,0,11,0, +12,0,12,0,13,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,13,0,13,0,12,0,12,0,13,0, +12,0,11,0,12,0,12,0,12,0,12,0,13,0,12,0,12,0,13,0,12,0,12,0,13,0,13,0,12,0,12,0, +13,0,12,0,12,0,13,0,12,0,13,0,13,0,12,0,13,0,13,0,13,0,13,0,13,0,12,0,13,0,13,0, +12,0,13,0,14,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,14,0,14,0,13,0,13,0,14,0,13,0, +14,0,14,0,13,0,14,0,13,0,13,0,14,0,14,0,13,0,14,0,14,0,13,0,14,0,13,0,13,0,14,0, +14,0,13,0,13,0,14,0,13,0,13,0,14,0,14,0,14,0,13,0,13,0,14,0,14,0,14,0,14,0,14,0, +14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0,14,0,14,0,14,0,14,0,14,0, +14,0,14,0,15,0,15,0,14,0,15,0,15,0,14,0,14,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, +14,0,15,0,15,0,15,0,15,0,14,0,14,0,15,0,15,0,15,0,15,0,15,0,15,0,16,0,16,0,15,0, +16,0,15,0,14,0,16,0,16,0,15,0,16,0,15,0,14,0,15,0,16,0,15,0,15,0,15,0,15,0,15,0, +15,0,16,0,16,0,15,0,15,0,16,0,15,0,16,0,17,0,15,0,15,0,17,0,17,0,16,0,16,0,16,0, +16,0,17,0,16,0,16,0,16,0,16,0,16,0,17,0,17,0,17,0,17,0,16,0,16,0,16,0,16,0,17,0, +17,0,16,0,17,0,16,0,15,0,16,0,17,0,17,0,16,0,17,0,16,0,16,0,17,0,17,0,17,0,17,0, +17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,18,0,17,0,17,0,17,0,18,0,17,0,18,0, +18,0,17,0,17,0,17,0,18,0,18,0,18,0,16,0,17,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0, +18,0,17,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,17,0,18,0,19,0,18,0,18,0,18,0,18,0, +19,0,18,0,17,0,18,0,18,0,18,0,19,0,19,0,18,0,19,0,20,0,19,0,19,0,19,0,19,0,18,0, +18,0,18,0,19,0,19,0,18,0,18,0,18,0,19,0,20,0,19,0,19,0,19,0,20,0,20,0,19,0,19,0, +20,0,20,0,19,0,19,0,20,0,19,0,20,0,20,0,20,0,19,0,20,0,20,0,19,0,19,0,21,0,20,0, +19,0,20,0,20,0,19,0,19,0,20,0,20,0,19,0,19,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0, +20,0,21,0,20,0,20,0,20,0,20,0,20,0,21,0,21,0,21,0,21,0,20,0,21,0,21,0,20,0,20,0, +21,0,21,0,21,0,21,0,21,0,21,0,22,0,22,0,21,0,21,0,22,0,22,0,21,0,21,0,22,0,22,0, +21,0,21,0,21,0,21,0,21,0,22,0,22,0,21,0,22,0,23,0,22,0,22,0,22,0,22,0,22,0,22,0, +22,0,22,0,23,0,22,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0,21,0,22,0,23,0,22,0, +22,0,22,0,22,0,22,0,23,0,23,0,23,0,23,0,23,0,24,0,24,0,23,0,22,0,23,0,23,0,23,0, +23,0,23,0,23,0,24,0,24,0,23,0,23,0,23,0,23,0,23,0,24,0,23,0,23,0,23,0,24,0,24,0, +23,0,23,0,24,0,24,0,23,0,23,0,23,0,24,0,24,0,24,0,23,0,24,0,24,0,24,0,24,0,23,0, +23,0,24,0,24,0,23,0,24,0,25,0,24,0,24,0,25,0,25,0,25,0,24,0,24,0,25,0,25,0,25,0, +25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,24,0,24,0,25,0,26,0,26,0,25,0, +25,0,25,0,25,0,25,0,26,0,25,0,25,0,26,0,26,0,25,0,25,0,25,0,24,0,25,0,25,0,26,0, +26,0,25,0,25,0,25,0,25,0,26,0,26,0,26,0,25,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0, +25,0,26,0,27,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,27,0,26,0,26,0,26,0, +26,0,26,0,26,0,27,0,27,0,27,0,27,0,27,0,25,0,26,0,27,0,27,0,27,0,27,0,27,0,26,0, +27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,28,0,28,0,27,0,27,0,28,0,27,0, +27,0,28,0,27,0,27,0,28,0,27,0,28,0,29,0,28,0,27,0,27,0,27,0,27,0,27,0,28,0,27,0, +27,0,27,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, +27,0,28,0,29,0,29,0,29,0,29,0,28,0,28,0,28,0,28,0,28,0,28,0,29,0,30,0,29,0,28,0, +28,0,29,0,29,0,28,0,29,0,29,0,29,0,28,0,28,0,28,0,29,0,29,0,29,0,29,0,30,0,29,0, +28,0,29,0,29,0,28,0,29,0,30,0,29,0,29,0,30,0,29,0,28,0,29,0,29,0,29,0,30,0,29,0, +29,0,29,0,30,0,30,0,29,0,29,0,30,0,29,0,30,0,31,0,31,0,30,0,30,0,30,0,29,0,30,0, +30,0,30,0,30,0,31,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, +30,0,31,0,30,0,30,0,30,0,31,0,30,0,30,0,31,0,31,0,30,0,31,0,31,0,31,0,31,0,31,0, +31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, +31,0,31,0,31,0,31,0,32,0,31,0,31,0,31,0,31,0,32,0,33,0,31,0,31,0,32,0,32,0,31,0, +32,0,32,0,31,0,32,0,33,0,32,0,32,0,32,0,32,0,33,0,33,0,32,0,33,0,33,0,32,0,32,0, +32,0,32,0,33,0,32,0,32,0,33,0,32,0,32,0,33,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0, +33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,34,0,34,0,33,0,34,0,33,0,33,0,33,0,34,0, +34,0,34,0,34,0,33,0,33,0,34,0,34,0,34,0,35,0,34,0,34,0,35,0,34,0,34,0,35,0,34,0, +34,0,34,0,34,0,35,0,35,0,34,0,34,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0, +34,0,34,0,36,0,36,0,34,0,35,0,35,0,35,0,35,0,36,0,36,0,36,0,36,0,36,0,35,0,36,0, +36,0,37,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,37,0,37,0, +37,0,37,0,37,0,38,0,37,0,37,0,37,0,37,0,37,0,37,0,36,0,37,0,38,0,38,0,37,0,37,0, +36,0,37,0,38,0,37,0,38,0,38,0,37,0,37,0,37,0,37,0,38,0,38,0,38,0,38,0,38,0,37,0, +38,0,39,0,39,0,39,0,38,0,38,0,39,0,39,0,39,0,38,0,38,0,38,0,39,0,39,0,39,0,39,0, +38,0,38,0,39,0,40,0,39,0,39,0,39,0,39,0,38,0,39,0,39,0,40,0,40,0,39,0,39,0,39,0, +39,0,40,0,40,0,39,0,39,0,40,0,40,0,39,0,39,0,40,0,40,0,40,0,40,0,39,0,40,0,41,0, +40,0,39,0,40,0,40,0,39,0,40,0,41,0,41,0,41,0,41,0,40,0,40,0,41,0,40,0,40,0,40,0, +41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,40,0,41,0,40,0,41,0,42,0,41,0,40,0, +41,0,41,0,41,0,42,0,41,0,41,0,41,0,41,0,41,0,42,0,41,0,41,0,42,0,42,0,41,0,42,0, +43,0,41,0,41,0,42,0,42,0,42,0,42,0,42,0,41,0,42,0,43,0,42,0,41,0,42,0,43,0,43,0, +43,0,42,0,42,0,43,0,43,0,42,0,42,0,42,0,43,0,43,0,42,0,42,0,43,0,43,0,43,0,43,0, +43,0,42,0,43,0,43,0,43,0,43,0,42,0,43,0,43,0,42,0,42,0,43,0,43,0,42,0,43,0,43,0, +44,0,44,0,43,0,43,0,43,0,43,0,43,0,44,0,44,0,44,0,44,0,43,0,43,0,44,0,44,0,43,0, +44,0,44,0,44,0,43,0,43,0,44,0,44,0,43,0,44,0,43,0,43,0,43,0,44,0,44,0,44,0,44,0, +44,0,44,0,44,0,44,0,44,0,43,0,44,0,45,0,44,0,45,0,45,0,45,0,45,0,44,0,44,0,45,0, +45,0,44,0,43,0,44,0,44,0,45,0,44,0,44,0,45,0,45,0,43,0,43,0,45,0,45,0,44,0,44,0, +44,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,44,0,44,0,45,0,45,0,45,0,46,0,46,0,45,0, +45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,44,0,45,0,46,0, +46,0,45,0,45,0,46,0,46,0,45,0,45,0,45,0,45,0,46,0,46,0,45,0,45,0,46,0,46,0,45,0, +46,0,46,0,45,0,46,0,46,0,45,0,45,0,45,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0, +46,0,46,0,46,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0, +46,0,46,0,46,0,47,0,47,0,46,0,46,0,47,0,47,0,46,0,46,0,46,0,46,0,47,0,46,0,46,0, +46,0,47,0,46,0,45,0,45,0,46,0,47,0,46,0,46,0,47,0,46,0,45,0,46,0,47,0,47,0,46,0, +46,0,47,0,47,0,46,0,46,0,46,0,46,0,47,0,47,0,47,0,47,0,47,0,46,0,47,0,47,0,46,0, +47,0,47,0,47,0,46,0,46,0,46,0,47,0,47,0,47,0,47,0,47,0,48,0,48,0,47,0,46,0,47,0, +47,0,47,0,47,0,46,0,46,0,47,0,46,0,47,0,47,0,47,0,46,0,46,0,46,0,47,0,47,0,47,0, +47,0,48,0,47,0,46,0,47,0,47,0,47,0,47,0,47,0,48,0,48,0,47,0,47,0,48,0,48,0,47,0, +47,0,47,0,47,0,47,0,47,0,48,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0, +47,0,47,0,47,0,47,0,48,0,47,0,47,0,48,0,47,0,47,0,47,0,48,0,48,0,47,0,47,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,47,0,47,0,48,0,47,0,47,0,47,0,48,0,48,0,48,0,48,0, +47,0,48,0,47,0,47,0,47,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, +48,0,48,0,48,0,47,0,47,0,48,0,48,0,47,0,47,0,48,0,48,0,47,0,48,0,49,0,49,0,47,0, +47,0,48,0,48,0,48,0,48,0,48,0,47,0,48,0,48,0,48,0,48,0,48,0,47,0,48,0,47,0,48,0, +48,0,48,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,0,48,0,49,0, +48,0,48,0,48,0,48,0,48,0,48,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,0,48,0, +48,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,49,0,48,0, +48,0,49,0,48,0,48,0,48,0,49,0,48,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,48,0,47,0,47,0, +47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,48,0,48,0,48,0,48,0,48,0,47,0,47,0, +47,0,49,0,48,0,47,0,47,0,48,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,0,48,0,48,0,48,0,48,0,49,0, +48,0,48,0,47,0,48,0,48,0,47,0,47,0,47,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0, +48,0,47,0,47,0,47,0,47,0,48,0,48,0,47,0,48,0,48,0,47,0,48,0,48,0,47,0,47,0,47,0, +47,0,48,0,48,0,47,0,47,0,47,0,46,0,47,0,48,0,47,0,47,0,47,0,48,0,47,0,46,0,47,0, +47,0,47,0,48,0,48,0,47,0,47,0,47,0,47,0,47,0,48,0,47,0,47,0,47,0,47,0,47,0,47,0, +46,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,46,0,47,0,47,0,47,0, +47,0,46,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,46,0,46,0,47,0,46,0,46,0,46,0, +46,0,46,0,47,0,47,0,47,0,47,0,46,0,47,0,47,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0, +47,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0, +45,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0,45,0,45,0,46,0,46,0,45,0,46,0,46,0,46,0, +46,0,45,0,45,0,46,0,46,0,45,0,45,0,45,0,45,0,46,0,45,0,46,0,46,0,45,0,45,0,45,0, +45,0,44,0,45,0,45,0,46,0,46,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,44,0,45,0, +45,0,45,0,45,0,45,0,45,0,45,0,46,0,45,0,45,0,44,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/wood3.pcm b/src/client/sound/data/wood3.pcm new file mode 100755 index 0000000..66a500a --- /dev/null +++ b/src/client/sound/data/wood3.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_wood3[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,255,255,0,0,3,0,5,0,5,0,4,0,2,0,4,0, +7,0,10,0,9,0,7,0,7,0,9,0,10,0,7,0,2,0,249,255,238,255,223,255,209,255,199,255,201,255,222,255, +0,0,28,0,37,0,28,0,1,0,220,255,189,255,172,255,166,255,182,255,220,255,13,0,56,0,71,0,51,0,8,0, +212,255,173,255,159,255,169,255,196,255,226,255,254,255,20,0,36,0,51,0,58,0,36,0,255,255,243,255,19,0,85,0, +162,0,225,0,242,0,226,0,226,0,246,0,223,0,106,0,192,255,69,255,29,255,25,255,1,255,221,254,228,254,52,255, +169,255,3,0,37,0,21,0,210,255,127,255,100,255,133,255,172,255,222,255,51,0,141,0,187,0,187,0,133,0,249,255, +76,255,228,254,230,254,75,255,245,255,149,0,242,0,18,1,19,1,221,0,54,0,78,255,174,254,159,254,12,255,203,255, +187,0,150,1,2,2,245,1,143,1,251,0,124,0,236,255,25,255,126,254,128,254,189,254,196,254,167,254,127,254,56,254, +51,254,204,254,132,255,220,255,247,255,12,0,63,0,84,0,228,255,47,255,205,254,220,254,43,255,165,255,39,0,76,0, +49,0,56,0,36,0,230,255,246,255,49,0,55,0,54,0,84,0,96,0,39,0,182,255,69,255,20,255,102,255,40,0, +15,1,214,1,12,2,194,1,153,1,138,1,69,1,1,1,216,0,163,0,120,0,160,0,29,1,157,1,2,2,41,2, +221,1,113,1,51,1,218,0,63,0,178,255,181,255,21,0,220,255,231,254,4,254,255,253,244,255,210,4,192,11,19,19, +89,27,3,38,112,48,61,53,90,50,198,41,46,31,164,23,72,23,30,29,52,36,70,41,125,44,119,46,34,47,176,46, +141,45,50,44,243,42,149,41,207,39,190,37,190,35,98,34,35,34,223,34,221,35,102,36,9,36,129,34,15,32,171,29, +62,28,222,27,159,27,96,26,8,24,20,21,128,17,95,13,138,9,176,6,160,4,178,2,63,0,249,252,96,249,82,246, +19,244,23,242,95,239,127,235,205,231,14,230,40,230,253,230,115,232,214,234,177,237,49,240,72,241,34,240,136,237,51,235, +119,233,183,231,61,230,207,229,144,230,247,231,6,233,28,233,243,232,166,233,64,235,249,236,225,237,108,237,126,236,143,236, +43,237,134,236,123,234,143,232,201,231,37,232,242,232,24,233,54,232,47,231,176,230,252,229,232,227,84,224,34,220,14,216, +7,212,202,207,113,203,83,199,38,196,195,194,221,194,2,195,75,194,231,192,72,191,231,189,232,188,198,187,82,186,32,185, +119,184,69,184,232,184,105,186,208,187,174,188,172,189,7,191,128,192,58,194,32,196,180,197,19,199,184,200,153,202,151,204, +241,206,196,209,215,212,201,215,101,218,252,220,243,223,17,227,254,229,188,232,8,235,183,236,107,238,178,240,51,243,159,245, +36,248,178,250,1,253,43,255,121,1,22,4,248,6,186,9,21,12,61,14,96,16,133,18,186,20,171,22,183,23,221,23, +244,23,104,24,179,24,182,24,8,25,120,25,28,25,220,23,187,22,154,22,28,23,73,23,252,22,141,22,238,21,59,21, +0,21,97,21,186,21,146,21,39,21,158,20,198,19,193,18,195,17,168,16,91,15,2,14,202,12,179,11,171,10,183,9, +173,8,78,7,230,5,239,4,108,4,54,4,39,4,71,4,228,4,197,5,21,6,150,5,210,4,63,4,251,3,235,3, +209,3,136,3,49,3,19,3,50,3,37,3,157,2,222,1,71,1,199,0,70,0,244,255,144,255,143,254,65,253,95,252, +183,251,170,250,246,248,233,246,122,245,61,245,119,245,39,245,26,244,150,242,220,240,31,239,176,237,187,236,224,235,151,234, +219,232,75,231,98,230,197,229,29,229,213,228,2,229,249,228,106,228,202,227,201,227,85,228,121,228,185,227,189,226,32,226, +166,225,13,225,169,224,134,224,22,224,68,223,135,222,13,222,172,221,53,221,211,220,26,221,12,222,252,222,187,223,165,224, +201,225,1,227,81,228,164,229,174,230,120,231,77,232,58,233,42,234,42,235,64,236,100,237,184,238,113,240,76,242,167,243, +125,244,124,245,227,246,49,248,69,249,193,250,216,252,195,254,4,0,238,0,205,1,144,2,66,3,36,4,77,5,149,6, +234,7,81,9,174,10,233,11,11,13,34,14,72,15,135,16,187,17,171,18,89,19,95,20,36,22,31,24,158,25,122,26, +224,26,17,27,51,27,95,27,210,27,126,28,2,29,81,29,172,29,6,30,243,29,91,29,219,28,20,29,205,29,69,30, +71,30,73,30,90,30,7,30,102,29,18,29,54,29,113,29,115,29,67,29,240,28,61,28,33,27,32,26,110,25,211,24, +100,24,39,24,182,23,244,22,37,22,95,21,192,20,141,20,219,20,135,21,57,22,137,22,113,22,79,22,129,22,43,23, +34,24,255,24,166,25,95,26,62,27,1,28,186,28,140,29,69,30,8,31,33,32,50,33,166,33,150,33,163,33,9,34, +73,34,38,34,13,34,28,34,225,33,25,33,57,32,233,31,2,32,204,31,23,31,60,30,126,29,219,28,40,28,109,27, +221,26,100,26,164,25,134,24,72,23,242,21,95,20,207,18,126,17,89,16,128,15,220,14,193,13,33,12,157,10,93,9, +26,8,237,6,2,6,25,5,248,3,245,2,107,2,44,2,165,1,144,0,130,255,48,255,79,255,23,255,134,254,41,254, +26,254,234,253,121,253,2,253,154,252,58,252,235,251,163,251,88,251,233,250,63,250,163,249,109,249,139,249,168,249,151,249, +127,249,137,249,106,249,191,248,239,247,217,247,118,248,219,248,179,248,74,248,188,247,54,247,250,246,204,246,113,246,70,246, +141,246,254,246,77,247,103,247,57,247,11,247,73,247,177,247,223,247,35,248,166,248,205,248,103,248,57,248,205,248,158,249, +233,249,176,249,150,249,249,249,179,250,121,251,245,251,20,252,121,252,139,253,154,254,230,254,178,254,212,254,202,255,54,1, +42,2,70,2,42,2,104,2,181,2,151,2,35,2,208,1,212,1,194,1,48,1,117,0,5,0,204,255,184,255,210,255, +222,255,169,255,93,255,45,255,234,254,75,254,148,253,98,253,169,253,184,253,92,253,44,253,116,253,144,253,28,253,174,252, +202,252,239,252,147,252,60,252,148,252,69,253,206,253,26,254,254,253,141,253,104,253,220,253,79,254,18,254,114,253,66,253, +173,253,25,254,242,253,82,253,245,252,97,253,60,254,187,254,119,254,193,253,72,253,112,253,237,253,7,254,185,253,183,253, +230,253,144,253,232,252,189,252,39,253,145,253,171,253,174,253,137,253,227,252,26,252,201,251,193,251,166,251,159,251,160,251, +33,251,38,250,103,249,22,249,205,248,129,248,111,248,161,248,248,248,32,249,226,248,153,248,187,248,17,249,245,248,117,248, +89,248,186,248,16,249,104,249,10,250,179,250,27,251,102,251,201,251,80,252,227,252,138,253,137,254,197,255,146,0,203,0, +71,1,106,2,131,3,43,4,212,4,171,5,109,6,46,7,252,7,120,8,165,8,43,9,87,10,140,11,30,12,68,12, +148,12,11,13,100,13,198,13,90,14,194,14,193,14,193,14,214,14,127,14,17,14,67,14,167,14,169,14,162,14,172,14, +83,14,181,13,103,13,98,13,30,13,127,12,213,11,85,11,251,10,108,10,72,9,14,8,173,7,19,8,28,8,64,7, +69,6,203,5,78,5,112,4,170,3,72,3,2,3,156,2,50,2,203,1,57,1,128,0,204,255,42,255,171,254,65,254, +176,253,33,253,10,253,59,253,252,252,41,252,72,251,208,250,232,250,58,251,68,251,42,251,80,251,123,251,101,251,66,251, +52,251,43,251,76,251,185,251,13,252,238,251,204,251,47,252,214,252,31,253,212,252,94,252,68,252,150,252,252,252,31,253, +24,253,99,253,221,253,211,253,100,253,93,253,230,253,110,254,160,254,200,254,8,255,40,255,65,255,132,255,181,255,174,255, +157,255,208,255,76,0,135,0,67,0,43,0,179,0,100,1,185,1,236,1,99,2,241,2,86,3,210,3,122,4,17,5, +163,5,90,6,30,7,178,7,17,8,110,8,204,8,248,8,14,9,86,9,165,9,162,9,121,9,185,9,87,10,170,10, +156,10,174,10,201,10,175,10,192,10,5,11,41,11,128,11,77,12,228,12,201,12,141,12,194,12,37,13,80,13,59,13, +222,12,118,12,161,12,59,13,93,13,30,13,121,13,66,14,62,14,112,13,15,13,60,13,38,13,191,12,108,12,42,12, +206,11,95,11,246,10,133,10,8,10,142,9,216,8,218,7,45,7,29,7,25,7,148,6,158,5,177,4,243,3,25,3, +56,2,159,1,29,1,120,0,218,255,57,255,85,254,123,253,28,253,210,252,29,252,111,251,71,251,72,251,13,251,232,250, +7,251,160,250,86,249,90,248,110,248,151,248,58,248,254,247,237,247,114,247,241,246,244,246,235,246,90,246,213,245,221,245, +27,246,30,246,14,246,3,246,162,245,22,245,8,245,57,245,216,244,3,244,157,243,242,243,103,244,122,244,91,244,83,244, +135,244,18,245,176,245,236,245,222,245,5,246,100,246,128,246,116,246,219,246,144,247,11,248,103,248,208,248,52,249,171,249, +66,250,165,250,182,250,18,251,8,252,192,252,220,252,63,253,242,253,252,253,157,253,212,253,107,254,114,254,8,254,20,254, +134,254,147,254,102,254,157,254,237,254,245,254,233,254,219,254,167,254,97,254,37,254,253,253,226,253,133,253,220,252,155,252, +244,252,235,252,47,252,168,251,137,251,77,251,31,251,31,251,205,250,68,250,42,250,138,250,207,250,165,250,96,250,76,250, +97,250,186,250,21,251,198,250,58,250,123,250,49,251,71,251,203,250,179,250,71,251,176,251,82,251,215,250,240,250,22,251, +231,250,15,251,108,251,240,250,11,250,251,249,91,250,16,250,101,249,99,249,249,249,13,250,135,249,102,249,179,249,197,249, +200,249,249,249,227,249,92,249,250,248,34,249,112,249,155,249,236,249,72,250,48,250,229,249,251,249,63,250,88,250,96,250, +83,250,81,250,179,250,0,251,196,250,171,250,216,250,205,250,22,251,158,251,65,251,177,250,23,251,117,251,112,251,8,252, +140,252,60,252,67,252,179,252,125,252,95,252,35,253,191,253,131,253,8,253,0,253,104,253,130,253,61,253,93,253,137,253, +25,253,222,252,47,253,49,253,11,253,53,253,47,253,58,253,213,253,230,253,19,253,197,252,30,253,76,253,111,253,120,253, +26,253,207,252,188,252,173,252,219,252,69,253,189,253,37,254,8,254,167,253,222,253,56,254,242,253,185,253,12,254,78,254, +91,254,145,254,184,254,154,254,138,254,174,254,213,254,233,254,212,254,160,254,211,254,121,255,180,255,51,255,121,254,174,253, +38,253,123,253,232,253,54,253,75,252,168,252,103,253,199,252,103,251,45,251,253,251,14,252,28,251,190,250,87,251,144,251, +25,251,164,250,45,250,247,249,99,250,111,250,189,249,96,249,47,249,146,248,96,248,149,248,82,248,80,248,242,248,18,249, +200,248,208,248,171,248,154,248,44,249,73,249,192,248,199,248,20,249,62,249,237,249,105,250,217,249,117,249,246,249,87,250, +83,250,152,250,241,250,213,250,174,250,222,250,250,250,1,251,117,251,237,251,196,251,144,251,222,251,39,252,77,252,195,252, +46,253,37,253,14,253,42,253,68,253,39,253,224,252,217,252,50,253,147,253,249,253,50,254,232,253,207,253,28,254,180,253, +39,253,233,253,192,254,122,254,141,254,43,255,188,254,246,253,53,254,146,254,126,254,135,254,86,254,241,253,20,254,78,254, +94,254,203,254,192,254,186,253,94,253,5,254,16,254,138,253,138,253,189,253,148,253,83,253,94,253,196,253,15,254,0,254, +37,254,125,254,92,254,255,253,253,253,16,254,255,253,102,254,151,255,118,0,5,0,97,255,206,255,89,0,19,0,230,255, +99,0,224,0,32,1,127,1,213,1,182,1,140,1,239,1,79,2,40,2,31,2,67,2,23,2,238,1,162,1,5,1, +78,1,34,2,141,1,139,0,191,0,173,0,241,255,62,0,190,0,2,0,91,255,122,255,90,255,36,255,78,255,105,255, +93,255,25,255,181,254,234,254,34,255,152,254,191,254,190,255,137,255,206,254,99,255,33,0,19,0,236,255,120,255,8,255, +151,255,40,0,34,0,107,0,74,0,156,255,55,0,64,1,198,0,74,0,209,0,10,1,15,1,94,1,100,1,134,1, +34,2,162,2,43,3,138,3,35,3,7,3,200,3,41,4,65,4,138,4,46,4,241,3,252,4,162,5,1,5,206,4, +86,5,158,5,192,5,218,5,178,5,109,5,37,5,16,5,93,5,150,5,137,5,169,5,226,5,158,5,235,4,110,4, +102,4,102,4,79,4,145,4,243,4,183,4,51,4,52,4,78,4,15,4,42,4,173,4,194,4,121,4,47,4,207,3, +236,3,188,4,20,5,192,4,209,4,7,5,196,4,216,4,107,5,102,5,40,5,184,5,19,6,70,5,199,4,44,5, +240,4,80,4,177,4,75,5,56,5,7,5,164,4,71,4,163,4,157,4,212,3,40,4,58,5,25,5,141,4,132,4, +76,4,100,4,28,5,21,5,119,4,155,4,7,5,219,4,123,4,75,4,66,4,81,4,78,4,62,4,88,4,138,4, +139,4,70,4,12,4,73,4,196,4,220,4,117,4,27,4,66,4,164,4,148,4,47,4,73,4,191,4,236,4,47,5, +119,5,247,4,158,4,97,5,178,5,51,5,178,5,169,6,73,6,102,5,110,5,8,6,102,6,86,6,72,6,113,6, +33,6,124,5,170,5,79,6,109,6,91,6,70,6,57,6,16,7,246,7,23,7,207,5,64,6,29,7,213,6,90,6, +45,6,189,5,109,5,164,5,189,5,88,5,222,4,178,4,132,4,209,3,24,3,12,3,54,3,72,3,137,3,97,3, +140,2,8,2,54,2,154,2,200,2,154,2,142,2,185,2,79,2,204,1,14,2,46,2,1,2,133,2,213,2,226,1, +251,0,51,1,196,1,234,1,173,1,76,1,223,0,141,0,154,0,203,0,174,0,118,0,104,0,89,0,33,0,166,255, +58,255,144,255,241,255,40,255,139,254,109,255,211,255,190,254,110,254,56,255,67,255,250,254,16,255,130,254,240,253,152,254, +72,255,77,255,118,255,103,255,218,254,225,254,193,255,134,0,68,0,75,255,90,255,145,0,245,0,148,0,221,0,77,1, +82,1,84,1,121,1,80,2,115,3,23,3,60,2,4,3,234,3,216,3,95,4,206,4,41,4,131,4,188,5,136,5, +39,5,245,5,28,6,182,5,121,6,41,7,184,6,153,6,50,7,151,7,140,7,79,7,80,7,115,7,34,7,22,7, +188,7,167,7,246,6,86,7,242,7,44,7,246,5,216,5,138,6,212,6,97,6,204,5,110,5,142,5,56,6,20,6, +251,4,28,5,250,5,94,5,255,4,47,6,47,6,47,5,249,5,226,6,44,6,28,6,170,6,8,6,201,5,86,6, +165,5,61,5,144,6,112,6,130,4,161,4,75,6,3,6,131,4,99,4,85,5,174,5,79,5,14,5,247,4,186,4, +139,4,87,4,232,3,138,3,25,3,99,2,251,1,0,2,3,2,214,1,44,1,63,0,225,255,222,255,154,255,94,255, +94,255,51,255,125,254,169,253,186,253,83,254,13,254,63,253,7,253,34,253,0,253,162,252,45,252,177,251,56,251,61,251, +146,251,51,251,220,250,94,251,4,251,185,249,155,249,54,250,61,250,209,249,235,248,175,248,225,249,17,250,231,248,4,249, +192,249,152,249,154,249,156,249,9,249,41,249,155,249,6,249,161,248,113,249,250,249,105,249,241,248,76,249,193,249,188,249, +131,249,137,249,191,249,164,249,162,249,129,250,207,250,154,249,72,249,108,250,198,250,183,250,13,251,159,250,106,250,52,251, +7,251,153,250,182,251,73,252,133,251,205,251,209,252,228,252,221,252,78,253,98,253,112,253,225,253,226,253,202,253,125,254, +209,254,83,254,144,254,13,255,164,254,211,254,198,255,151,255,204,254,239,254,172,255,23,0,159,255,24,255,165,255,41,0, +5,0,96,0,119,0,224,255,113,0,123,1,73,1,223,0,184,0,165,0,124,1,40,2,117,1,10,1,146,1,220,1, +183,1,94,1,89,1,254,1,250,1,126,1,54,2,143,2,132,1,9,2,155,3,175,2,63,1,37,2,199,2,239,1, +186,1,210,1,150,1,17,2,64,2,121,1,162,1,84,2,207,1,100,1,212,1,155,1,48,1,171,1,174,1,175,0, +100,0,21,1,92,1,244,0,92,0,227,255,12,0,124,0,30,0,125,255,141,255,198,255,217,255,212,255,154,255,225,255, +105,0,228,255,65,255,139,255,249,255,154,0,208,0,131,255,241,254,255,255,240,255,77,255,211,255,254,255,217,255,58,0, +164,255,236,254,166,255,214,255,236,254,231,254,113,255,69,255,224,254,5,255,113,255,62,255,166,254,184,254,0,255,246,254, +39,255,19,255,116,254,132,254,36,255,63,255,12,255,210,254,129,254,142,254,28,255,106,255,249,254,82,254,243,253,157,253, +149,253,233,253,168,253,81,253,181,253,158,253,26,253,122,253,189,253,80,253,54,253,246,252,154,252,66,253,217,253,65,253, +114,252,37,252,100,252,180,252,118,252,142,252,110,253,140,253,163,252,49,252,169,252,31,253,254,252,0,253,125,253,105,253, +255,252,45,253,35,253,224,252,36,253,4,253,228,252,234,253,64,254,47,253,231,252,95,253,82,253,38,253,26,253,76,253, +212,253,168,253,222,252,3,253,222,253,252,253,97,253,28,253,130,253,235,253,217,253,93,253,199,252,196,252,61,253,28,253, +200,252,64,253,148,253,57,253,26,253,39,253,16,253,71,253,159,253,205,253,232,253,201,253,202,253,46,254,71,254,83,254, +250,254,64,255,162,254,54,254,67,254,116,254,203,254,197,254,128,254,203,254,177,254,168,253,160,253,206,254,53,255,206,254, +105,254,9,254,58,254,141,254,46,254,72,254,195,254,21,254,126,253,14,254,69,254,69,254,239,254,113,255,110,255,214,254, +254,253,111,254,54,255,94,254,241,253,40,255,170,255,137,255,51,0,93,0,198,255,242,255,59,0,143,255,19,255,125,255, +165,255,6,255,106,254,59,254,143,254,52,255,17,255,67,254,77,254,175,254,106,254,86,254,82,254,177,253,90,253,91,253, +119,253,75,254,135,254,117,253,94,253,72,254,82,254,72,254,186,254,133,254,253,253,219,253,168,253,92,253,159,253,152,254, +71,255,232,254,100,254,88,254,83,254,129,254,159,254,64,254,122,254,50,255,214,254,234,253,118,253,57,253,79,253,147,253, +232,253,212,254,11,255,152,253,166,252,190,252,79,252,36,252,200,252,183,252,20,252,228,251,186,251,154,251,64,252,25,253, +229,252,249,251,162,251,168,251,116,251,7,252,45,253,52,253,177,252,193,252,131,252,18,252,124,252,25,253,115,253,254,253, +44,254,141,253,219,252,170,252,223,252,64,253,198,253,38,254,205,253,146,253,120,254,27,255,187,254,248,254,165,255,19,255, +3,254,43,254,96,255,94,0,131,0,101,0,68,0,166,255,82,255,243,255,58,0,16,0,167,0,23,1,143,0,99,0, +206,0,193,0,93,0,56,0,64,0,121,0,41,1,189,1,60,1,158,0,48,1,142,1,9,1,71,1,198,1,63,1, +11,1,161,1,235,1,5,2,207,1,48,1,92,1,17,2,52,2,84,2,168,2,212,2,31,3,226,2,231,1,211,1, +186,2,68,3,221,3,216,4,227,4,36,4,64,4,154,4,159,3,210,2,178,3,73,4,213,3,172,3,252,2,172,1, +146,1,252,1,227,1,223,1,57,1,111,0,14,1,47,1,22,0,59,0,245,0,192,0,193,0,171,0,39,0,131,0, +211,0,105,0,213,0,116,1,12,1,133,0,232,255,23,255,18,255,115,255,132,255,192,255,41,0,168,0,38,1,179,0, +181,255,187,255,73,0,51,0,66,0,231,0,211,0,75,0,4,1,59,2,95,2,34,2,209,1,229,0,106,0,189,0, +205,0,242,0,156,1,222,1,136,1,249,0,146,0,71,1,148,2,145,2,94,1,177,0,48,1,11,2,241,1,26,1, +79,1,172,2,81,3,220,2,189,2,23,3,213,2,118,2,206,2,244,2,33,3,65,4,199,4,89,4,8,5,41,6, +67,6,92,6,152,6,134,6,243,6,106,7,107,7,181,7,165,7,223,6,168,6,146,6,178,5,251,4,187,4,124,4, +174,4,44,5,15,5,122,4,68,4,92,4,0,4,158,3,10,4,91,4,18,4,27,4,50,4,6,4,63,4,89,4, +78,4,202,4,125,4,120,3,226,3,131,4,152,3,246,2,246,2,58,2,7,2,176,2,79,2,200,1,126,2,95,2, +235,0,168,0,132,1,164,1,140,1,209,1,133,1,222,0,194,0,241,0,27,1,91,1,143,1,103,1,176,0,247,255, +225,255,215,255,154,255,191,255,130,255,171,254,202,254,95,255,22,255,47,255,0,0,231,255,109,255,209,255,249,255,76,255, +98,255,118,0,189,0,61,0,113,0,208,0,204,0,92,1,223,1,115,1,114,1,245,1,198,1,132,1,129,1,57,1, +92,1,170,1,48,1,26,1,191,1,151,1,18,1,63,1,96,1,33,1,253,0,15,1,78,1,90,1,38,1,137,1, +74,2,78,2,5,2,39,2,3,2,179,1,85,2,9,3,116,2,199,1,247,1,240,1,180,1,41,2,206,2,43,3, +124,3,128,3,43,3,0,3,5,3,6,3,12,3,10,3,239,2,203,2,167,2,167,2,228,2,4,3,171,2,36,2, +221,1,195,1,230,1,68,2,220,1,152,0,33,0,151,0,165,0,143,0,193,0,181,0,167,0,194,0,180,0,156,0, +85,0,236,255,206,255,141,255,70,255,138,255,158,255,168,255,51,0,208,255,245,254,158,255,34,0,87,255,116,255,27,0, +208,255,249,255,106,0,225,255,255,255,231,0,156,0,38,0,167,0,135,0,220,255,237,255,229,255,163,255,31,0,71,0, +141,255,130,255,183,255,248,254,211,254,130,255,252,254,30,254,130,254,199,254,69,254,231,253,128,253,52,253,157,253,252,253, +179,253,61,253,0,253,30,253,53,253,216,252,245,252,220,253,177,253,150,252,23,253,67,254,127,253,152,252,97,253,180,253, +57,253,115,253,53,253,157,252,206,253,243,254,68,254,3,254,5,254,232,252,251,252,90,254,103,254,67,254,232,254,134,254, +38,254,68,255,123,255,32,254,221,253,201,254,254,254,228,254,16,255,149,254,3,254,91,254,139,254,112,254,19,255,58,255, +45,254,219,253,115,254,124,254,91,254,136,254,123,254,104,254,103,254,85,254,141,254,171,254,137,254,234,254,40,255,170,254, +186,254,68,255,240,254,132,254,246,254,82,255,56,255,125,255,229,255,183,255,138,255,234,255,47,0,253,255,175,255,147,255, +237,255,51,0,218,255,250,255,222,0,242,0,94,0,141,0,249,0,241,0,12,1,50,1,220,0,112,0,134,0,4,1, +37,1,185,0,157,0,242,0,7,1,253,0,3,1,231,0,231,0,236,0,166,0,117,0,113,0,109,0,113,0,105,0, +184,0,120,1,129,1,201,0,157,0,223,0,21,1,203,1,133,2,42,2,75,1,255,0,37,1,62,1,107,1,207,1, +237,1,125,1,2,1,236,0,63,1,172,1,149,1,101,1,2,2,82,2,161,1,231,1,109,3,48,4,118,4,65,5, +135,5,32,5,42,5,139,5,206,5,5,6,4,6,18,6,199,6,146,7,201,7,239,7,99,8,245,8,147,9,250,9, +10,10,71,10,181,10,191,10,117,10,132,10,57,11,244,11,186,11,10,11,87,11,246,11,75,11,104,10,100,10,190,9, +157,8,184,8,158,8,77,7,40,7,188,7,64,6,116,4,230,4,123,5,128,4,135,3,24,3,196,2,28,3,160,3, +55,3,156,2,107,2,12,2,220,1,42,2,207,1,183,0,51,0,1,0,12,255,236,253,126,253,98,253,48,253,10,253, +30,253,104,253,135,253,85,253,250,252,137,252,95,252,134,252,91,252,76,252,191,252,86,252,72,251,156,251,90,252,137,251, +180,250,55,251,135,251,61,251,139,251,9,252,254,251,6,252,73,252,52,252,13,252,109,252,216,252,174,252,81,252,60,252, +78,252,119,252,181,252,229,252,5,253,24,253,97,253,213,253,164,253,17,253,68,253,108,253,165,252,145,252,183,253,44,254, +220,253,89,254,21,255,250,254,3,255,194,255,36,0,5,0,124,0,133,1,19,2,19,2,59,2,148,2,247,2,165,3, +102,4,213,4,47,5,128,5,158,5,247,5,164,6,234,6,237,6,116,7,251,7,9,8,154,8,161,9,202,9,117,9, +143,9,111,9,228,8,207,8,17,9,7,9,24,9,150,9,204,9,103,9,25,9,47,9,59,9,254,8,131,8,239,7, +129,7,65,7,30,7,63,7,97,7,10,7,197,6,29,7,64,7,199,6,149,6,190,6,145,6,73,6,123,6,243,6, +12,7,197,6,168,6,118,6,229,5,235,5,164,6,133,6,135,5,39,5,90,5,72,5,36,5,254,4,168,4,218,4, +164,5,171,5,196,4,52,4,28,4,181,3,107,3,218,3,27,4,155,3,64,3,35,3,105,2,152,1,152,1,210,1, +103,1,143,0,245,255,215,255,249,255,1,0,171,255,30,255,222,254,213,254,120,254,19,254,41,254,25,254,140,253,110,253, +207,253,166,253,53,253,51,253,53,253,52,253,147,253,132,253,154,252,4,252,49,252,40,252,221,251,23,252,145,252,146,252, +56,252,242,251,207,251,150,251,64,251,15,251,250,250,222,250,231,250,232,250,145,250,63,250,29,250,191,249,80,249,101,249, +150,249,20,249,105,248,138,248,199,248,50,248,146,247,162,247,175,247,69,247,186,246,63,246,254,245,249,245,167,245,247,244, +96,244,232,243,181,243,14,244,62,244,172,243,16,243,34,243,132,243,143,243,69,243,37,243,74,243,122,243,153,243,153,243, +136,243,134,243,142,243,191,243,27,244,75,244,106,244,206,244,11,245,191,244,100,244,74,244,54,244,69,244,147,244,183,244, +156,244,166,244,229,244,23,245,3,245,203,244,232,244,67,245,78,245,70,245,172,245,10,246,14,246,83,246,241,246,98,247, +168,247,191,247,135,247,142,247,248,247,64,248,131,248,252,248,90,249,151,249,232,249,88,250,2,251,191,251,43,252,85,252, +165,252,31,253,162,253,83,254,2,255,44,255,35,255,124,255,245,255,93,0,219,0,38,1,57,1,131,1,171,1,107,1, +117,1,219,1,45,2,168,2,15,3,237,2,16,3,189,3,255,3,237,3,29,4,63,4,85,4,174,4,216,4,170,4, +202,4,69,5,148,5,207,5,58,6,169,6,238,6,223,6,182,6,43,7,246,7,59,8,119,8,48,9,163,9,174,9, +235,9,53,10,105,10,195,10,239,10,225,10,61,11,197,11,200,11,171,11,203,11,188,11,133,11,155,11,201,11,184,11, +186,11,236,11,205,11,92,11,31,11,41,11,57,11,6,11,164,10,168,10,221,10,155,10,81,10,54,10,172,9,35,9, +34,9,237,8,97,8,56,8,105,8,132,8,117,8,62,8,243,7,179,7,112,7,28,7,191,6,114,6,85,6,49,6, +230,5,227,5,31,6,251,5,168,5,166,5,140,5,5,5,175,4,213,4,191,4,77,4,63,4,102,4,31,4,177,3, +92,3,8,3,247,2,10,3,210,2,133,2,80,2,243,1,144,1,115,1,112,1,70,1,24,1,251,0,199,0,149,0, +137,0,111,0,60,0,29,0,248,255,195,255,185,255,206,255,220,255,249,255,244,255,180,255,171,255,187,255,106,255,42,255, +107,255,172,255,147,255,113,255,110,255,78,255,37,255,85,255,136,255,88,255,88,255,151,255,104,255,52,255,126,255,157,255, +92,255,66,255,61,255,31,255,34,255,51,255,17,255,228,254,207,254,149,254,44,254,240,253,230,253,194,253,150,253,154,253, +154,253,130,253,131,253,112,253,51,253,22,253,254,252,167,252,77,252,38,252,9,252,244,251,246,251,228,251,181,251,184,251, +232,251,240,251,241,251,3,252,222,251,170,251,179,251,174,251,127,251,139,251,193,251,194,251,173,251,197,251,224,251,226,251, +237,251,248,251,252,251,0,252,210,251,123,251,101,251,121,251,85,251,36,251,32,251,8,251,227,250,239,250,236,250,179,250, +159,250,194,250,206,250,170,250,120,250,118,250,171,250,226,250,20,251,51,251,9,251,198,250,195,250,218,250,207,250,216,250, +31,251,79,251,58,251,44,251,77,251,118,251,152,251,209,251,49,252,139,252,154,252,125,252,134,252,206,252,40,253,61,253, +233,252,108,252,43,252,81,252,157,252,188,252,194,252,219,252,245,252,242,252,239,252,6,253,11,253,207,252,183,252,38,253, +146,253,103,253,31,253,30,253,247,252,195,252,19,253,127,253,101,253,20,253,231,252,197,252,197,252,249,252,245,252,141,252, +100,252,212,252,68,253,61,253,11,253,245,252,249,252,40,253,118,253,142,253,92,253,68,253,121,253,185,253,207,253,202,253, +193,253,177,253,166,253,149,253,89,253,30,253,38,253,63,253,82,253,121,253,122,253,91,253,114,253,139,253,108,253,97,253, +113,253,75,253,21,253,47,253,74,253,254,252,169,252,163,252,173,252,160,252,138,252,140,252,171,252,133,252,32,252,29,252, +81,252,13,252,177,251,219,251,38,252,40,252,36,252,49,252,41,252,48,252,80,252,74,252,42,252,61,252,119,252,144,252, +142,252,159,252,178,252,192,252,219,252,236,252,241,252,10,253,51,253,86,253,97,253,132,253,240,253,63,254,18,254,205,253, +216,253,40,254,126,254,151,254,126,254,120,254,132,254,133,254,134,254,135,254,148,254,199,254,247,254,245,254,235,254,235,254, +207,254,192,254,236,254,18,255,26,255,42,255,61,255,79,255,114,255,154,255,196,255,5,0,68,0,69,0,30,0,8,0, +248,255,4,0,89,0,154,0,134,0,100,0,75,0,56,0,93,0,154,0,150,0,94,0,60,0,82,0,129,0,149,0, +135,0,127,0,133,0,106,0,37,0,235,255,236,255,26,0,69,0,88,0,98,0,123,0,151,0,131,0,75,0,69,0, +113,0,114,0,82,0,107,0,169,0,177,0,146,0,158,0,172,0,155,0,199,0,9,1,243,0,234,0,61,1,93,1, +33,1,250,0,242,0,234,0,15,1,92,1,130,1,112,1,65,1,19,1,21,1,48,1,45,1,48,1,83,1,69,1, +244,0,210,0,2,1,42,1,32,1,250,0,193,0,160,0,179,0,179,0,137,0,122,0,148,0,169,0,179,0,185,0, +184,0,184,0,176,0,139,0,108,0,112,0,128,0,115,0,83,0,83,0,131,0,182,0,221,0,209,0,106,0,29,0, +69,0,106,0,66,0,45,0,80,0,103,0,83,0,68,0,52,0,5,0,248,255,18,0,240,255,200,255,241,255,10,0, +214,255,183,255,227,255,10,0,234,255,178,255,147,255,131,255,124,255,94,255,27,255,240,254,229,254,198,254,182,254,232,254, +31,255,14,255,212,254,179,254,170,254,180,254,213,254,214,254,168,254,143,254,155,254,152,254,153,254,189,254,195,254,157,254, +184,254,3,255,239,254,164,254,179,254,251,254,9,255,253,254,23,255,39,255,12,255,241,254,202,254,142,254,129,254,158,254, +146,254,103,254,96,254,121,254,127,254,112,254,97,254,91,254,86,254,69,254,35,254,249,253,209,253,185,253,166,253,137,253, +112,253,92,253,64,253,56,253,59,253,18,253,199,252,138,252,99,252,70,252,56,252,38,252,253,251,227,251,210,251,134,251, +53,251,97,251,207,251,220,251,133,251,75,251,80,251,79,251,44,251,248,250,186,250,158,250,166,250,151,250,129,250,150,250, +179,250,165,250,137,250,147,250,181,250,205,250,232,250,245,250,226,250,201,250,172,250,124,250,85,250,75,250,72,250,49,250, +17,250,10,250,13,250,252,249,227,249,225,249,12,250,59,250,60,250,67,250,103,250,103,250,94,250,122,250,129,250,96,250, +96,250,153,250,205,250,198,250,181,250,211,250,227,250,180,250,152,250,197,250,254,250,1,251,223,250,199,250,186,250,159,250, +150,250,176,250,199,250,216,250,251,250,12,251,250,250,6,251,64,251,83,251,39,251,13,251,13,251,251,250,8,251,86,251, +149,251,148,251,128,251,135,251,187,251,34,252,132,252,141,252,122,252,178,252,239,252,230,252,235,252,50,253,114,253,138,253, +161,253,194,253,219,253,7,254,70,254,81,254,33,254,10,254,47,254,96,254,135,254,166,254,177,254,173,254,200,254,6,255, +64,255,104,255,118,255,111,255,118,255,120,255,85,255,68,255,107,255,143,255,141,255,150,255,177,255,166,255,142,255,180,255, +229,255,195,255,108,255,70,255,96,255,124,255,130,255,136,255,147,255,167,255,192,255,198,255,194,255,211,255,239,255,246,255, +232,255,217,255,215,255,227,255,3,0,30,0,19,0,12,0,57,0,112,0,107,0,67,0,79,0,114,0,89,0,45,0, +56,0,95,0,104,0,108,0,166,0,222,0,192,0,146,0,142,0,130,0,118,0,144,0,181,0,196,0,176,0,148,0, +151,0,165,0,168,0,171,0,160,0,135,0,118,0,101,0,98,0,134,0,182,0,188,0,154,0,128,0,142,0,160,0, +145,0,124,0,121,0,124,0,147,0,188,0,206,0,197,0,204,0,248,0,20,1,242,0,197,0,200,0,213,0,190,0, +164,0,155,0,110,0,28,0,13,0,83,0,130,0,107,0,70,0,56,0,52,0,45,0,43,0,41,0,32,0,32,0, +38,0,29,0,22,0,23,0,20,0,23,0,46,0,71,0,72,0,81,0,130,0,171,0,169,0,168,0,189,0,195,0, +189,0,219,0,41,1,94,1,86,1,79,1,100,1,117,1,131,1,146,1,146,1,150,1,190,1,249,1,20,2,11,2, +13,2,35,2,38,2,12,2,238,1,247,1,72,2,181,2,222,2,201,2,183,2,160,2,122,2,134,2,195,2,219,2, +193,2,181,2,186,2,162,2,126,2,121,2,135,2,152,2,169,2,149,2,88,2,69,2,119,2,149,2,132,2,147,2, +190,2,179,2,121,2,91,2,109,2,130,2,110,2,50,2,244,1,214,1,216,1,209,1,181,1,166,1,175,1,179,1, +145,1,87,1,69,1,86,1,79,1,46,1,22,1,20,1,18,1,8,1,30,1,84,1,114,1,104,1,79,1,69,1, +85,1,89,1,67,1,63,1,69,1,56,1,29,1,8,1,255,0,239,0,219,0,234,0,5,1,250,0,214,0,200,0, +220,0,249,0,252,0,224,0,214,0,0,1,17,1,206,0,136,0,127,0,121,0,83,0,68,0,90,0,88,0,50,0, +55,0,102,0,120,0,126,0,143,0,130,0,100,0,115,0,156,0,154,0,134,0,171,0,230,0,242,0,236,0,249,0, +3,1,9,1,30,1,44,1,19,1,233,0,196,0,146,0,120,0,176,0,246,0,236,0,187,0,190,0,241,0,22,1, +29,1,27,1,7,1,239,0,15,1,68,1,56,1,23,1,55,1,118,1,130,1,95,1,85,1,123,1,146,1,127,1, +103,1,102,1,125,1,144,1,139,1,160,1,219,1,238,1,194,1,138,1,102,1,100,1,134,1,174,1,172,1,132,1, +126,1,155,1,163,1,159,1,154,1,134,1,131,1,151,1,136,1,97,1,107,1,151,1,138,1,65,1,14,1,15,1, +39,1,72,1,96,1,90,1,79,1,92,1,95,1,65,1,44,1,43,1,41,1,54,1,76,1,65,1,33,1,29,1, +54,1,61,1,31,1,254,0,240,0,237,0,232,0,188,0,124,0,118,0,150,0,130,0,70,0,24,0,246,255,220,255, +218,255,224,255,210,255,179,255,144,255,121,255,115,255,131,255,169,255,194,255,177,255,146,255,125,255,98,255,74,255,67,255, +70,255,68,255,61,255,66,255,66,255,41,255,25,255,32,255,40,255,51,255,58,255,45,255,25,255,26,255,48,255,60,255, +59,255,67,255,73,255,49,255,19,255,12,255,20,255,26,255,33,255,26,255,243,254,233,254,29,255,46,255,0,255,239,254, +8,255,26,255,44,255,70,255,77,255,66,255,76,255,92,255,67,255,44,255,78,255,119,255,124,255,136,255,182,255,220,255, +207,255,174,255,167,255,181,255,202,255,216,255,207,255,208,255,236,255,243,255,223,255,237,255,29,0,56,0,67,0,104,0, +138,0,134,0,138,0,171,0,191,0,202,0,226,0,238,0,230,0,237,0,23,1,76,1,94,1,66,1,37,1,41,1, +67,1,98,1,122,1,124,1,106,1,98,1,123,1,142,1,115,1,81,1,71,1,73,1,71,1,64,1,66,1,64,1, +30,1,245,0,233,0,247,0,15,1,18,1,253,0,249,0,0,1,248,0,248,0,4,1,5,1,254,0,12,1,22,1, +240,0,210,0,249,0,36,1,19,1,243,0,242,0,3,1,10,1,4,1,246,0,223,0,205,0,213,0,236,0,252,0, +248,0,229,0,215,0,201,0,164,0,136,0,151,0,175,0,163,0,117,0,72,0,50,0,31,0,253,255,221,255,211,255, +230,255,247,255,220,255,175,255,165,255,177,255,178,255,163,255,144,255,140,255,151,255,153,255,139,255,131,255,157,255,190,255, +173,255,127,255,103,255,99,255,106,255,116,255,104,255,79,255,63,255,64,255,62,255,52,255,60,255,73,255,48,255,19,255, +14,255,23,255,44,255,47,255,28,255,28,255,39,255,40,255,30,255,16,255,21,255,28,255,14,255,16,255,29,255,18,255, +255,254,243,254,228,254,217,254,224,254,3,255,37,255,25,255,249,254,244,254,250,254,239,254,217,254,204,254,207,254,225,254, +255,254,28,255,37,255,25,255,14,255,255,254,213,254,184,254,211,254,3,255,34,255,43,255,33,255,27,255,38,255,44,255, +36,255,33,255,59,255,88,255,97,255,109,255,126,255,129,255,141,255,158,255,155,255,155,255,178,255,198,255,211,255,239,255, +15,0,22,0,18,0,30,0,37,0,35,0,57,0,98,0,120,0,109,0,80,0,61,0,72,0,110,0,140,0,133,0, +118,0,131,0,148,0,146,0,140,0,124,0,95,0,88,0,106,0,119,0,138,0,166,0,170,0,162,0,181,0,209,0, +214,0,212,0,215,0,198,0,179,0,206,0,244,0,238,0,207,0,181,0,175,0,201,0,225,0,203,0,174,0,193,0, +225,0,220,0,196,0,187,0,193,0,219,0,11,1,38,1,14,1,250,0,10,1,24,1,27,1,40,1,46,1,28,1, +10,1,8,1,21,1,37,1,37,1,13,1,238,0,226,0,230,0,233,0,254,0,19,1,250,0,227,0,254,0,3,1, +210,0,185,0,202,0,199,0,164,0,147,0,162,0,173,0,166,0,149,0,132,0,135,0,154,0,153,0,123,0,99,0, +104,0,111,0,106,0,99,0,96,0,106,0,136,0,153,0,142,0,127,0,123,0,127,0,143,0,172,0,188,0,170,0, +155,0,177,0,212,0,224,0,221,0,220,0,225,0,215,0,188,0,182,0,202,0,212,0,197,0,179,0,176,0,186,0, +191,0,185,0,176,0,182,0,206,0,219,0,207,0,194,0,194,0,201,0,227,0,16,1,30,1,4,1,239,0,243,0, +4,1,18,1,26,1,25,1,7,1,6,1,38,1,48,1,21,1,1,1,3,1,18,1,30,1,23,1,16,1,25,1, +48,1,64,1,52,1,38,1,46,1,59,1,80,1,96,1,81,1,64,1,73,1,102,1,123,1,103,1,79,1,102,1, +134,1,130,1,105,1,94,1,119,1,161,1,180,1,168,1,149,1,167,1,219,1,248,1,228,1,196,1,201,1,238,1, +11,2,5,2,234,1,224,1,250,1,18,2,12,2,1,2,243,1,221,1,218,1,229,1,221,1,205,1,205,1,211,1, +194,1,165,1,165,1,182,1,184,1,177,1,168,1,150,1,130,1,112,1,94,1,89,1,96,1,100,1,97,1,90,1, +76,1,74,1,99,1,128,1,124,1,94,1,83,1,93,1,93,1,86,1,85,1,80,1,79,1,95,1,107,1,95,1, +65,1,43,1,34,1,38,1,55,1,66,1,57,1,41,1,30,1,15,1,4,1,7,1,255,0,219,0,196,0,197,0, +185,0,171,0,182,0,185,0,156,0,131,0,121,0,106,0,82,0,67,0,73,0,99,0,125,0,118,0,82,0,64,0, +82,0,107,0,112,0,104,0,102,0,99,0,99,0,112,0,114,0,102,0,102,0,111,0,112,0,102,0,93,0,108,0, +133,0,132,0,110,0,93,0,99,0,121,0,117,0,88,0,77,0,89,0,106,0,111,0,96,0,88,0,93,0,94,0, +95,0,98,0,96,0,94,0,100,0,112,0,114,0,103,0,96,0,93,0,88,0,96,0,105,0,87,0,67,0,86,0, +110,0,92,0,68,0,80,0,102,0,104,0,89,0,79,0,89,0,94,0,81,0,69,0,60,0,58,0,61,0,51,0, +41,0,52,0,58,0,52,0,52,0,52,0,42,0,45,0,67,0,82,0,75,0,62,0,47,0,31,0,36,0,59,0, +65,0,44,0,32,0,61,0,84,0,62,0,36,0,38,0,47,0,50,0,41,0,25,0,23,0,26,0,14,0,251,255, +247,255,5,0,5,0,224,255,191,255,188,255,199,255,206,255,197,255,171,255,153,255,152,255,159,255,165,255,168,255,177,255, +177,255,165,255,164,255,176,255,181,255,186,255,199,255,207,255,193,255,162,255,148,255,163,255,185,255,198,255,191,255,170,255, +173,255,196,255,209,255,208,255,197,255,188,255,181,255,170,255,163,255,167,255,173,255,176,255,172,255,163,255,150,255,129,255, +129,255,158,255,172,255,152,255,121,255,102,255,112,255,132,255,128,255,108,255,103,255,117,255,125,255,112,255,88,255,77,255, +85,255,93,255,87,255,72,255,70,255,87,255,101,255,97,255,88,255,88,255,87,255,77,255,67,255,65,255,71,255,81,255, +79,255,62,255,43,255,42,255,67,255,86,255,71,255,52,255,60,255,68,255,51,255,27,255,25,255,42,255,51,255,42,255, +38,255,43,255,47,255,48,255,45,255,48,255,48,255,30,255,21,255,37,255,50,255,48,255,39,255,34,255,40,255,42,255, +36,255,41,255,50,255,48,255,47,255,55,255,58,255,56,255,61,255,62,255,51,255,40,255,40,255,41,255,39,255,35,255, +30,255,29,255,28,255,37,255,52,255,59,255,56,255,44,255,31,255,29,255,34,255,35,255,37,255,51,255,74,255,81,255, +74,255,86,255,99,255,81,255,57,255,58,255,73,255,75,255,58,255,47,255,50,255,59,255,66,255,66,255,61,255,61,255, +60,255,56,255,57,255,67,255,83,255,87,255,80,255,77,255,78,255,90,255,108,255,113,255,110,255,117,255,137,255,144,255, +134,255,142,255,165,255,168,255,161,255,161,255,164,255,166,255,171,255,176,255,180,255,175,255,168,255,167,255,170,255,174,255, +178,255,181,255,180,255,176,255,176,255,178,255,183,255,192,255,193,255,187,255,188,255,192,255,200,255,206,255,200,255,190,255, +186,255,196,255,211,255,203,255,187,255,193,255,209,255,218,255,221,255,224,255,232,255,233,255,234,255,254,255,16,0,19,0, +18,0,12,0,11,0,26,0,43,0,57,0,74,0,90,0,95,0,89,0,88,0,95,0,97,0,97,0,103,0,113,0, +122,0,118,0,105,0,100,0,109,0,117,0,113,0,94,0,79,0,82,0,94,0,94,0,87,0,81,0,74,0,69,0, +60,0,43,0,31,0,31,0,32,0,24,0,15,0,18,0,24,0,20,0,14,0,12,0,21,0,38,0,46,0,34,0, +15,0,5,0,9,0,17,0,19,0,18,0,9,0,254,255,254,255,1,0,6,0,9,0,2,0,255,255,7,0,8,0, +250,255,236,255,238,255,254,255,8,0,3,0,251,255,249,255,251,255,248,255,241,255,230,255,221,255,224,255,227,255,213,255, +196,255,196,255,208,255,219,255,218,255,206,255,201,255,198,255,194,255,195,255,201,255,205,255,199,255,188,255,193,255,208,255, +202,255,184,255,178,255,179,255,185,255,190,255,179,255,168,255,168,255,171,255,172,255,166,255,160,255,164,255,167,255,156,255, +141,255,133,255,138,255,146,255,145,255,142,255,138,255,132,255,130,255,134,255,144,255,155,255,152,255,142,255,135,255,125,255, +123,255,135,255,149,255,158,255,154,255,144,255,147,255,157,255,161,255,159,255,159,255,174,255,193,255,190,255,170,255,164,255, +184,255,210,255,212,255,196,255,194,255,208,255,220,255,227,255,230,255,227,255,228,255,229,255,226,255,234,255,246,255,249,255, +253,255,12,0,25,0,25,0,14,0,7,0,8,0,15,0,27,0,30,0,17,0,8,0,16,0,28,0,38,0,42,0, +36,0,27,0,31,0,41,0,41,0,32,0,27,0,37,0,49,0,48,0,46,0,46,0,44,0,51,0,54,0,50,0, +52,0,46,0,37,0,51,0,70,0,74,0,65,0,51,0,62,0,81,0,75,0,67,0,70,0,70,0,75,0,79,0, +72,0,64,0,55,0,49,0,51,0,56,0,58,0,54,0,43,0,34,0,32,0,37,0,46,0,53,0,54,0,47,0, +50,0,60,0,59,0,59,0,62,0,57,0,56,0,57,0,56,0,64,0,70,0,77,0,89,0,90,0,86,0,83,0, +83,0,93,0,97,0,91,0,91,0,90,0,86,0,78,0,61,0,58,0,65,0,64,0,62,0,55,0,38,0,32,0, +43,0,53,0,51,0,40,0,30,0,28,0,28,0,25,0,15,0,13,0,20,0,18,0,9,0,17,0,33,0,32,0, +24,0,26,0,30,0,25,0,13,0,1,0,253,255,2,0,2,0,255,255,1,0,16,0,30,0,22,0,14,0,18,0, +22,0,25,0,28,0,26,0,26,0,31,0,34,0,34,0,33,0,43,0,57,0,51,0,33,0,27,0,28,0,29,0, +31,0,30,0,23,0,17,0,17,0,16,0,21,0,32,0,38,0,38,0,36,0,32,0,30,0,30,0,32,0,36,0, +38,0,40,0,42,0,40,0,39,0,40,0,45,0,51,0,49,0,45,0,48,0,53,0,60,0,66,0,61,0,60,0, +70,0,79,0,82,0,80,0,87,0,104,0,111,0,107,0,112,0,124,0,130,0,127,0,123,0,123,0,129,0,141,0, +147,0,143,0,148,0,157,0,165,0,175,0,172,0,164,0,170,0,182,0,191,0,194,0,194,0,201,0,208,0,214,0, +226,0,239,0,242,0,238,0,240,0,247,0,254,0,11,1,22,1,18,1,18,1,30,1,35,1,33,1,29,1,25,1, +42,1,58,1,45,1,28,1,32,1,44,1,44,1,28,1,21,1,33,1,32,1,19,1,12,1,7,1,9,1,10,1, +253,0,245,0,247,0,241,0,229,0,225,0,226,0,230,0,230,0,225,0,218,0,212,0,212,0,218,0,221,0,227,0, +238,0,246,0,252,0,254,0,2,1,7,1,4,1,251,0,244,0,240,0,240,0,239,0,234,0,233,0,237,0,237,0, +230,0,226,0,226,0,227,0,226,0,218,0,211,0,215,0,223,0,223,0,221,0,213,0,200,0,199,0,210,0,221,0, +215,0,200,0,197,0,207,0,215,0,219,0,222,0,222,0,216,0,211,0,219,0,227,0,222,0,212,0,205,0,210,0, +224,0,221,0,213,0,217,0,219,0,220,0,228,0,236,0,237,0,236,0,237,0,240,0,240,0,241,0,247,0,250,0, +255,0,5,1,7,1,15,1,24,1,23,1,20,1,28,1,40,1,44,1,38,1,36,1,51,1,72,1,78,1,72,1, +72,1,78,1,77,1,68,1,66,1,72,1,74,1,65,1,53,1,48,1,49,1,47,1,42,1,37,1,28,1,22,1, +22,1,22,1,21,1,14,1,0,1,249,0,247,0,242,0,241,0,237,0,224,0,217,0,223,0,234,0,235,0,227,0, +219,0,217,0,216,0,216,0,218,0,223,0,222,0,218,0,223,0,236,0,244,0,240,0,228,0,226,0,230,0,223,0, +220,0,225,0,223,0,216,0,219,0,234,0,244,0,236,0,224,0,214,0,203,0,197,0,189,0,174,0,166,0,163,0, +158,0,156,0,151,0,144,0,138,0,128,0,117,0,112,0,106,0,97,0,87,0,80,0,78,0,82,0,84,0,84,0, +92,0,97,0,90,0,86,0,87,0,86,0,87,0,84,0,77,0,70,0,66,0,69,0,74,0,76,0,87,0,94,0, +86,0,82,0,83,0,83,0,85,0,78,0,69,0,73,0,76,0,72,0,67,0,61,0,57,0,52,0,44,0,40,0, +31,0,20,0,20,0,24,0,25,0,22,0,14,0,14,0,22,0,26,0,22,0,18,0,17,0,21,0,30,0,34,0, +31,0,23,0,12,0,11,0,22,0,25,0,22,0,30,0,35,0,29,0,23,0,19,0,18,0,17,0,14,0,10,0, +11,0,15,0,17,0,18,0,21,0,19,0,14,0,14,0,18,0,17,0,10,0,5,0,10,0,17,0,14,0,11,0, +11,0,6,0,5,0,4,0,250,255,247,255,254,255,255,255,254,255,252,255,245,255,244,255,253,255,6,0,4,0,252,255, +251,255,255,255,248,255,235,255,229,255,225,255,221,255,219,255,214,255,211,255,207,255,200,255,203,255,213,255,212,255,200,255, +193,255,199,255,208,255,207,255,201,255,201,255,205,255,208,255,210,255,214,255,216,255,216,255,222,255,232,255,236,255,238,255, +242,255,249,255,0,0,4,0,5,0,7,0,13,0,23,0,25,0,25,0,33,0,39,0,41,0,40,0,37,0,36,0, +41,0,46,0,44,0,37,0,29,0,26,0,28,0,34,0,39,0,36,0,35,0,38,0,43,0,47,0,43,0,39,0, +39,0,38,0,41,0,49,0,52,0,53,0,54,0,53,0,54,0,52,0,49,0,51,0,51,0,51,0,59,0,70,0, +83,0,91,0,86,0,84,0,87,0,85,0,85,0,84,0,79,0,76,0,75,0,74,0,80,0,88,0,85,0,77,0, +82,0,90,0,86,0,80,0,79,0,80,0,83,0,86,0,85,0,87,0,90,0,85,0,76,0,76,0,80,0,78,0, +72,0,66,0,65,0,70,0,68,0,60,0,58,0,57,0,50,0,46,0,41,0,37,0,45,0,54,0,47,0,37,0, +39,0,46,0,44,0,37,0,30,0,27,0,29,0,30,0,24,0,22,0,29,0,33,0,28,0,22,0,24,0,28,0, +25,0,16,0,10,0,18,0,26,0,21,0,14,0,11,0,12,0,17,0,21,0,20,0,23,0,34,0,40,0,38,0, +39,0,44,0,43,0,42,0,43,0,47,0,55,0,58,0,53,0,55,0,63,0,63,0,59,0,59,0,59,0,52,0, +43,0,42,0,48,0,51,0,52,0,47,0,41,0,36,0,36,0,45,0,49,0,42,0,37,0,38,0,41,0,42,0, +39,0,35,0,36,0,38,0,36,0,34,0,36,0,34,0,33,0,42,0,45,0,38,0,32,0,26,0,19,0,20,0, +24,0,27,0,30,0,32,0,28,0,24,0,24,0,22,0,15,0,13,0,14,0,13,0,17,0,20,0,17,0,12,0, +0,0,251,255,8,0,20,0,19,0,6,0,252,255,254,255,2,0,2,0,2,0,253,255,248,255,252,255,1,0,8,0, +8,0,1,0,255,255,252,255,250,255,255,255,255,255,249,255,248,255,250,255,250,255,248,255,249,255,254,255,248,255,235,255, +230,255,234,255,237,255,235,255,230,255,235,255,244,255,248,255,244,255,240,255,242,255,243,255,236,255,229,255,221,255,219,255, +230,255,236,255,237,255,242,255,242,255,238,255,238,255,240,255,242,255,241,255,231,255,222,255,226,255,239,255,248,255,252,255, +252,255,252,255,249,255,241,255,234,255,235,255,237,255,238,255,240,255,239,255,237,255,235,255,230,255,226,255,227,255,229,255, +222,255,207,255,202,255,201,255,194,255,187,255,184,255,185,255,183,255,169,255,159,255,161,255,164,255,164,255,157,255,145,255, +145,255,147,255,135,255,118,255,109,255,108,255,111,255,103,255,94,255,98,255,102,255,95,255,85,255,82,255,84,255,82,255, +72,255,60,255,57,255,63,255,68,255,69,255,68,255,68,255,67,255,62,255,61,255,70,255,76,255,80,255,81,255,75,255, +75,255,77,255,76,255,85,255,90,255,84,255,83,255,82,255,80,255,82,255,83,255,88,255,98,255,101,255,102,255,102,255, +103,255,108,255,104,255,101,255,106,255,106,255,107,255,115,255,114,255,113,255,117,255,122,255,129,255,133,255,128,255,120,255, +111,255,110,255,122,255,132,255,129,255,124,255,125,255,137,255,149,255,146,255,142,255,148,255,149,255,145,255,154,255,162,255, +167,255,172,255,168,255,164,255,173,255,181,255,189,255,197,255,202,255,208,255,206,255,201,255,201,255,201,255,203,255,206,255, +210,255,221,255,230,255,235,255,241,255,237,255,231,255,231,255,228,255,227,255,233,255,240,255,243,255,235,255,228,255,230,255, +235,255,240,255,240,255,236,255,237,255,236,255,232,255,231,255,231,255,236,255,242,255,242,255,240,255,235,255,229,255,229,255, +227,255,224,255,227,255,230,255,232,255,229,255,221,255,225,255,231,255,225,255,219,255,218,255,217,255,216,255,214,255,214,255, +214,255,211,255,210,255,211,255,207,255,200,255,197,255,200,255,200,255,193,255,183,255,171,255,165,255,167,255,167,255,166,255, +168,255,166,255,161,255,160,255,168,255,175,255,172,255,168,255,170,255,173,255,170,255,159,255,153,255,158,255,166,255,172,255, +175,255,166,255,158,255,156,255,155,255,157,255,159,255,159,255,158,255,157,255,158,255,158,255,161,255,168,255,171,255,170,255, +171,255,174,255,168,255,158,255,158,255,167,255,170,255,167,255,164,255,163,255,167,255,168,255,164,255,165,255,165,255,168,255, +169,255,162,255,157,255,156,255,152,255,155,255,161,255,160,255,161,255,165,255,168,255,165,255,161,255,165,255,168,255,163,255, +156,255,152,255,163,255,180,255,182,255,175,255,171,255,164,255,163,255,175,255,187,255,191,255,191,255,191,255,197,255,208,255, +212,255,205,255,202,255,211,255,212,255,205,255,206,255,217,255,228,255,234,255,238,255,244,255,249,255,246,255,239,255,242,255, +253,255,1,0,0,0,2,0,4,0,4,0,0,0,247,255,244,255,254,255,7,0,7,0,7,0,15,0,18,0,15,0, +15,0,12,0,7,0,12,0,14,0,17,0,23,0,21,0,18,0,17,0,17,0,30,0,42,0,41,0,39,0,34,0, +32,0,36,0,38,0,40,0,45,0,47,0,48,0,46,0,46,0,48,0,45,0,43,0,46,0,51,0,59,0,60,0, +58,0,61,0,57,0,55,0,55,0,48,0,48,0,52,0,49,0,52,0,57,0,57,0,56,0,55,0,54,0,60,0, +63,0,59,0,52,0,50,0,53,0,50,0,46,0,44,0,40,0,37,0,35,0,29,0,23,0,13,0,7,0,10,0, +7,0,7,0,10,0,0,0,243,255,239,255,235,255,236,255,238,255,229,255,220,255,222,255,229,255,232,255,228,255,227,255, +233,255,231,255,217,255,206,255,201,255,201,255,207,255,207,255,202,255,202,255,202,255,199,255,197,255,197,255,199,255,198,255, +195,255,194,255,191,255,188,255,185,255,178,255,174,255,176,255,175,255,169,255,163,255,152,255,138,255,129,255,128,255,129,255, +128,255,129,255,129,255,124,255,117,255,112,255,112,255,109,255,104,255,103,255,102,255,97,255,96,255,99,255,102,255,105,255, +99,255,95,255,99,255,104,255,103,255,94,255,89,255,94,255,98,255,95,255,96,255,101,255,107,255,107,255,99,255,94,255, +99,255,108,255,114,255,115,255,112,255,106,255,90,255,76,255,77,255,88,255,92,255,88,255,86,255,84,255,80,255,76,255, +71,255,73,255,86,255,92,255,89,255,89,255,94,255,99,255,99,255,92,255,89,255,93,255,101,255,106,255,103,255,99,255, +98,255,101,255,107,255,110,255,107,255,111,255,120,255,120,255,115,255,113,255,109,255,104,255,108,255,115,255,117,255,115,255, +116,255,117,255,117,255,119,255,121,255,119,255,117,255,112,255,100,255,96,255,99,255,96,255,92,255,92,255,91,255,93,255, +92,255,87,255,87,255,86,255,78,255,80,255,88,255,89,255,85,255,81,255,84,255,95,255,100,255,96,255,90,255,87,255, +89,255,88,255,89,255,96,255,95,255,90,255,92,255,96,255,95,255,94,255,85,255,78,255,85,255,94,255,97,255,96,255, +89,255,85,255,90,255,93,255,92,255,89,255,85,255,87,255,89,255,84,255,80,255,79,255,79,255,80,255,78,255,77,255, +81,255,83,255,78,255,76,255,82,255,84,255,76,255,72,255,74,255,74,255,71,255,64,255,59,255,64,255,64,255,58,255, +57,255,60,255,64,255,59,255,51,255,57,255,63,255,62,255,66,255,63,255,54,255,56,255,67,255,74,255,71,255,64,255, +64,255,65,255,59,255,60,255,68,255,72,255,71,255,67,255,67,255,70,255,69,255,62,255,58,255,63,255,70,255,70,255, +69,255,72,255,75,255,73,255,67,255,64,255,69,255,74,255,73,255,73,255,74,255,72,255,75,255,83,255,84,255,77,255, +66,255,61,255,68,255,76,255,78,255,84,255,91,255,93,255,93,255,90,255,86,255,87,255,88,255,87,255,95,255,101,255, +105,255,113,255,113,255,103,255,104,255,109,255,107,255,107,255,106,255,106,255,117,255,121,255,111,255,104,255,101,255,110,255, +123,255,121,255,117,255,117,255,115,255,119,255,124,255,129,255,135,255,132,255,127,255,130,255,124,255,121,255,128,255,130,255, +135,255,142,255,143,255,147,255,148,255,148,255,152,255,150,255,152,255,160,255,165,255,171,255,173,255,168,255,168,255,167,255, +162,255,162,255,163,255,165,255,168,255,166,255,165,255,166,255,170,255,176,255,178,255,180,255,178,255,172,255,170,255,173,255, +180,255,187,255,189,255,191,255,195,255,194,255,190,255,189,255,191,255,192,255,192,255,194,255,199,255,200,255,196,255,196,255, +203,255,210,255,214,255,217,255,212,255,212,255,224,255,230,255,230,255,231,255,227,255,228,255,232,255,230,255,234,255,238,255, +232,255,236,255,249,255,255,255,255,255,253,255,251,255,253,255,253,255,248,255,242,255,247,255,6,0,10,0,5,0,254,255, +250,255,2,0,8,0,1,0,252,255,253,255,1,0,10,0,12,0,4,0,6,0,14,0,12,0,3,0,255,255,2,0, +4,0,5,0,6,0,2,0,253,255,251,255,251,255,253,255,253,255,248,255,247,255,248,255,244,255,242,255,245,255,242,255, +235,255,227,255,223,255,225,255,226,255,225,255,223,255,219,255,215,255,215,255,215,255,214,255,214,255,211,255,210,255,213,255, +215,255,214,255,214,255,217,255,221,255,222,255,217,255,210,255,212,255,218,255,212,255,204,255,205,255,207,255,206,255,202,255, +196,255,193,255,191,255,186,255,185,255,184,255,182,255,178,255,177,255,176,255,167,255,159,255,163,255,165,255,159,255,155,255, +153,255,153,255,155,255,156,255,159,255,162,255,160,255,158,255,158,255,159,255,158,255,153,255,154,255,158,255,156,255,156,255, +162,255,169,255,174,255,176,255,177,255,177,255,181,255,186,255,191,255,195,255,199,255,200,255,205,255,209,255,209,255,207,255, +199,255,198,255,204,255,201,255,195,255,195,255,197,255,199,255,199,255,200,255,204,255,202,255,204,255,207,255,201,255,197,255, +194,255,193,255,200,255,202,255,193,255,190,255,192,255,191,255,189,255,183,255,176,255,176,255,176,255,170,255,173,255,182,255, +180,255,181,255,187,255,182,255,178,255,182,255,181,255,182,255,183,255,178,255,179,255,179,255,176,255,177,255,180,255,184,255, +185,255,180,255,179,255,180,255,177,255,178,255,178,255,177,255,183,255,186,255,187,255,191,255,190,255,186,255,189,255,191,255, +192,255,194,255,192,255,183,255,183,255,191,255,194,255,194,255,197,255,195,255,192,255,195,255,197,255,195,255,196,255,199,255, +198,255,195,255,192,255,192,255,196,255,200,255,199,255,199,255,202,255,202,255,202,255,201,255,201,255,205,255,207,255,205,255, +210,255,213,255,210,255,204,255,200,255,205,255,211,255,210,255,208,255,208,255,211,255,217,255,221,255,223,255,226,255,226,255, +224,255,221,255,217,255,217,255,221,255,226,255,227,255,222,255,219,255,222,255,221,255,215,255,212,255,213,255,215,255,218,255, +214,255,210,255,212,255,211,255,211,255,212,255,213,255,215,255,217,255,217,255,218,255,215,255,211,255,210,255,210,255,212,255, +217,255,218,255,221,255,218,255,209,255,208,255,207,255,203,255,205,255,208,255,206,255,205,255,207,255,214,255,216,255,210,255, +207,255,210,255,218,255,224,255,218,255,215,255,222,255,224,255,222,255,222,255,228,255,241,255,247,255,241,255,235,255,234,255, +240,255,248,255,250,255,249,255,248,255,243,255,239,255,241,255,245,255,248,255,251,255,253,255,253,255,253,255,249,255,247,255, +254,255,254,255,251,255,254,255,251,255,249,255,254,255,253,255,251,255,0,0,254,255,251,255,253,255,0,0,1,0,0,0, +1,0,255,255,253,255,3,0,7,0,3,0,1,0,0,0,255,255,1,0,2,0,4,0,8,0,9,0,8,0,12,0, +18,0,19,0,18,0,27,0,37,0,39,0,38,0,34,0,33,0,38,0,36,0,34,0,39,0,44,0,49,0,48,0, +44,0,49,0,51,0,47,0,49,0,56,0,55,0,48,0,48,0,57,0,59,0,52,0,48,0,51,0,60,0,63,0, +55,0,51,0,47,0,39,0,40,0,45,0,44,0,49,0,54,0,52,0,47,0,44,0,46,0,54,0,54,0,49,0, +47,0,48,0,48,0,50,0,53,0,55,0,57,0,57,0,54,0,53,0,53,0,53,0,53,0,55,0,58,0,57,0, +54,0,52,0,54,0,59,0,64,0,62,0,60,0,60,0,63,0,67,0,66,0,68,0,70,0,65,0,63,0,65,0, +62,0,63,0,67,0,66,0,65,0,64,0,59,0,57,0,60,0,62,0,66,0,72,0,72,0,69,0,68,0,70,0, +69,0,63,0,63,0,74,0,82,0,79,0,74,0,73,0,77,0,81,0,84,0,83,0,78,0,73,0,74,0,75,0, +77,0,83,0,82,0,81,0,87,0,87,0,85,0,88,0,88,0,87,0,87,0,88,0,90,0,92,0,92,0,96,0, +99,0,101,0,103,0,103,0,104,0,107,0,112,0,114,0,114,0,114,0,114,0,119,0,126,0,127,0,127,0,130,0, +128,0,131,0,134,0,128,0,128,0,132,0,134,0,138,0,136,0,129,0,130,0,133,0,132,0,129,0,124,0,124,0, +129,0,130,0,126,0,121,0,119,0,119,0,118,0,122,0,126,0,122,0,115,0,107,0,104,0,106,0,105,0,101,0, +99,0,98,0,99,0,97,0,94,0,91,0,88,0,91,0,94,0,91,0,91,0,89,0,86,0,87,0,86,0,85,0, +86,0,82,0,82,0,85,0,81,0,79,0,78,0,74,0,74,0,77,0,71,0,65,0,66,0,66,0,66,0,66,0, +59,0,50,0,49,0,50,0,50,0,45,0,35,0,32,0,35,0,32,0,28,0,20,0,12,0,13,0,12,0,9,0, +5,0,255,255,255,255,0,0,255,255,255,255,252,255,249,255,252,255,249,255,245,255,248,255,246,255,244,255,247,255,248,255, +245,255,247,255,250,255,254,255,255,255,253,255,253,255,255,255,255,255,0,0,3,0,2,0,1,0,2,0,1,0,255,255, +0,0,2,0,0,0,253,255,0,0,0,0,252,255,252,255,253,255,255,255,1,0,0,0,254,255,251,255,250,255,254,255, +1,0,253,255,250,255,246,255,241,255,240,255,232,255,225,255,227,255,226,255,223,255,222,255,217,255,211,255,209,255,208,255, +208,255,208,255,207,255,208,255,213,255,213,255,210,255,213,255,217,255,217,255,220,255,218,255,212,255,215,255,219,255,217,255, +218,255,219,255,217,255,220,255,223,255,223,255,224,255,224,255,224,255,228,255,232,255,232,255,231,255,233,255,234,255,236,255, +240,255,237,255,233,255,236,255,240,255,240,255,241,255,245,255,248,255,245,255,243,255,245,255,245,255,247,255,249,255,248,255, +250,255,249,255,249,255,254,255,254,255,252,255,255,255,0,0,255,255,4,0,8,0,7,0,5,0,6,0,5,0,2,0, +6,0,11,0,9,0,12,0,14,0,12,0,13,0,12,0,12,0,17,0,16,0,16,0,19,0,20,0,22,0,22,0, +20,0,19,0,20,0,24,0,30,0,32,0,29,0,28,0,31,0,31,0,29,0,32,0,38,0,43,0,49,0,52,0, +49,0,48,0,50,0,51,0,51,0,54,0,59,0,62,0,65,0,68,0,69,0,74,0,81,0,84,0,85,0,85,0, +81,0,81,0,85,0,87,0,88,0,90,0,89,0,85,0,85,0,88,0,90,0,88,0,87,0,88,0,91,0,93,0, +92,0,92,0,92,0,93,0,96,0,98,0,100,0,105,0,108,0,109,0,110,0,111,0,110,0,111,0,113,0,114,0, +115,0,116,0,117,0,118,0,120,0,120,0,123,0,127,0,134,0,136,0,132,0,132,0,132,0,132,0,137,0,143,0, +142,0,143,0,146,0,147,0,147,0,145,0,148,0,153,0,152,0,150,0,150,0,148,0,147,0,152,0,155,0,154,0, +153,0,151,0,151,0,152,0,150,0,148,0,153,0,159,0,158,0,156,0,161,0,164,0,163,0,166,0,170,0,167,0, +170,0,174,0,172,0,177,0,183,0,178,0,179,0,181,0,176,0,178,0,183,0,187,0,192,0,193,0,194,0,191,0, +187,0,186,0,188,0,191,0,192,0,189,0,189,0,190,0,185,0,185,0,187,0,186,0,187,0,186,0,186,0,189,0, +188,0,190,0,192,0,191,0,196,0,197,0,191,0,190,0,188,0,185,0,188,0,184,0,180,0,184,0,185,0,183,0, +182,0,180,0,181,0,185,0,186,0,185,0,184,0,184,0,186,0,186,0,188,0,192,0,192,0,192,0,195,0,192,0, +189,0,190,0,186,0,183,0,188,0,184,0,176,0,175,0,172,0,171,0,170,0,163,0,161,0,163,0,159,0,159,0, +163,0,165,0,169,0,172,0,172,0,172,0,172,0,178,0,184,0,183,0,185,0,190,0,194,0,196,0,198,0,202,0, +212,0,220,0,217,0,215,0,224,0,236,0,242,0,241,0,236,0,236,0,242,0,242,0,240,0,237,0,232,0,232,0, +236,0,227,0,217,0,216,0,217,0,215,0,212,0,207,0,201,0,199,0,200,0,196,0,188,0,185,0,183,0,181,0, +179,0,174,0,171,0,170,0,170,0,170,0,168,0,169,0,172,0,172,0,171,0,170,0,167,0,164,0,162,0,157,0, +153,0,156,0,158,0,152,0,151,0,152,0,148,0,147,0,146,0,141,0,138,0,136,0,131,0,129,0,126,0,121,0, +119,0,118,0,115,0,110,0,101,0,93,0,92,0,93,0,88,0,86,0,90,0,88,0,85,0,83,0,75,0,70,0, +71,0,66,0,60,0,59,0,61,0,64,0,61,0,56,0,55,0,51,0,48,0,46,0,44,0,48,0,49,0,41,0, +35,0,32,0,30,0,29,0,29,0,24,0,16,0,15,0,22,0,24,0,23,0,23,0,22,0,24,0,26,0,25,0, +26,0,23,0,20,0,26,0,32,0,35,0,35,0,34,0,33,0,32,0,37,0,44,0,45,0,48,0,52,0,55,0, +58,0,64,0,73,0,80,0,82,0,84,0,84,0,85,0,92,0,99,0,102,0,103,0,102,0,103,0,105,0,105,0, +109,0,114,0,116,0,120,0,122,0,122,0,126,0,128,0,133,0,143,0,151,0,149,0,142,0,134,0,135,0,144,0, +156,0,162,0,157,0,153,0,157,0,164,0,164,0,160,0,161,0,166,0,168,0,165,0,162,0,164,0,172,0,181,0, +185,0,182,0,181,0,185,0,186,0,189,0,194,0,195,0,197,0,196,0,192,0,189,0,184,0,184,0,192,0,195,0, +191,0,185,0,182,0,186,0,187,0,183,0,181,0,183,0,184,0,182,0,174,0,171,0,173,0,175,0,173,0,168,0, +166,0,166,0,161,0,158,0,153,0,147,0,147,0,147,0,138,0,131,0,129,0,130,0,131,0,128,0,125,0,122,0, +120,0,119,0,116,0,113,0,111,0,108,0,107,0,105,0,100,0,98,0,93,0,86,0,87,0,92,0,88,0,81,0, +78,0,77,0,79,0,79,0,75,0,71,0,65,0,63,0,66,0,62,0,55,0,55,0,56,0,54,0,54,0,48,0, +43,0,44,0,39,0,30,0,25,0,26,0,25,0,19,0,12,0,9,0,10,0,11,0,8,0,2,0,2,0,2,0, +2,0,2,0,253,255,249,255,252,255,246,255,239,255,238,255,237,255,238,255,239,255,233,255,233,255,238,255,238,255,237,255, +237,255,235,255,230,255,228,255,231,255,232,255,233,255,229,255,222,255,224,255,228,255,222,255,220,255,224,255,228,255,229,255, +224,255,215,255,211,255,209,255,210,255,210,255,206,255,204,255,202,255,201,255,201,255,199,255,193,255,187,255,183,255,181,255, +182,255,182,255,181,255,180,255,181,255,181,255,179,255,177,255,176,255,177,255,177,255,173,255,169,255,166,255,167,255,164,255, +159,255,156,255,151,255,145,255,145,255,142,255,137,255,140,255,136,255,130,255,130,255,128,255,123,255,122,255,122,255,123,255, +120,255,114,255,109,255,110,255,112,255,111,255,107,255,106,255,107,255,105,255,99,255,93,255,94,255,95,255,91,255,87,255, +83,255,82,255,83,255,79,255,75,255,76,255,80,255,79,255,69,255,63,255,67,255,67,255,63,255,64,255,63,255,62,255, +61,255,57,255,59,255,64,255,58,255,55,255,58,255,61,255,62,255,59,255,55,255,55,255,56,255,53,255,53,255,55,255, +55,255,52,255,53,255,54,255,54,255,53,255,48,255,50,255,53,255,51,255,53,255,54,255,55,255,59,255,62,255,60,255, +55,255,53,255,56,255,56,255,49,255,47,255,55,255,61,255,60,255,53,255,50,255,59,255,65,255,59,255,54,255,56,255, +58,255,58,255,59,255,57,255,56,255,59,255,63,255,66,255,68,255,66,255,65,255,67,255,63,255,62,255,67,255,72,255, +75,255,77,255,79,255,82,255,85,255,86,255,83,255,80,255,77,255,77,255,82,255,86,255,85,255,87,255,91,255,88,255, +84,255,82,255,86,255,90,255,91,255,92,255,91,255,94,255,98,255,89,255,77,255,82,255,94,255,102,255,97,255,89,255, +97,255,111,255,109,255,101,255,99,255,101,255,106,255,104,255,98,255,98,255,107,255,113,255,108,255,101,255,99,255,101,255, +109,255,115,255,109,255,105,255,105,255,104,255,107,255,108,255,107,255,106,255,104,255,105,255,108,255,104,255,101,255,105,255, +108,255,105,255,100,255,96,255,99,255,108,255,112,255,106,255,100,255,102,255,106,255,106,255,106,255,109,255,115,255,119,255, +119,255,114,255,110,255,109,255,113,255,120,255,122,255,119,255,119,255,121,255,120,255,117,255,115,255,116,255,115,255,110,255, +110,255,113,255,115,255,117,255,110,255,107,255,115,255,115,255,110,255,112,255,112,255,112,255,114,255,109,255,109,255,117,255, +118,255,115,255,113,255,112,255,117,255,122,255,121,255,113,255,109,255,115,255,121,255,122,255,124,255,127,255,129,255,131,255, +136,255,139,255,138,255,138,255,140,255,142,255,147,255,150,255,147,255,148,255,148,255,149,255,155,255,157,255,156,255,163,255, +164,255,159,255,161,255,163,255,163,255,166,255,166,255,168,255,174,255,177,255,178,255,182,255,182,255,182,255,184,255,181,255, +185,255,196,255,198,255,194,255,194,255,201,255,213,255,218,255,207,255,201,255,213,255,225,255,223,255,215,255,216,255,225,255, +231,255,228,255,220,255,220,255,231,255,238,255,239,255,239,255,237,255,240,255,244,255,244,255,241,255,240,255,243,255,248,255, +248,255,246,255,245,255,246,255,252,255,0,0,4,0,6,0,4,0,5,0,11,0,9,0,1,0,0,0,4,0,7,0, +5,0,1,0,1,0,4,0,9,0,10,0,4,0,2,0,4,0,5,0,6,0,5,0,4,0,6,0,7,0,5,0, +0,0,252,255,253,255,254,255,1,0,5,0,5,0,2,0,252,255,246,255,245,255,246,255,246,255,249,255,253,255,252,255, +247,255,244,255,246,255,249,255,250,255,244,255,238,255,236,255,235,255,234,255,233,255,230,255,232,255,233,255,222,255,217,255, +221,255,218,255,217,255,223,255,225,255,227,255,227,255,220,255,217,255,220,255,225,255,228,255,225,255,219,255,218,255,219,255, +218,255,216,255,214,255,214,255,219,255,219,255,214,255,216,255,224,255,224,255,219,255,219,255,221,255,224,255,224,255,221,255, +221,255,223,255,225,255,224,255,225,255,226,255,222,255,219,255,222,255,225,255,228,255,231,255,229,255,225,255,221,255,222,255, +225,255,223,255,223,255,229,255,228,255,224,255,223,255,225,255,228,255,230,255,233,255,232,255,232,255,235,255,234,255,234,255, +241,255,240,255,236,255,241,255,245,255,244,255,244,255,244,255,248,255,253,255,252,255,249,255,248,255,251,255,255,255,255,255, +2,0,6,0,3,0,3,0,5,0,6,0,9,0,13,0,21,0,25,0,21,0,23,0,26,0,24,0,23,0,22,0, +23,0,28,0,29,0,23,0,21,0,25,0,29,0,29,0,27,0,27,0,31,0,32,0,31,0,31,0,33,0,35,0, +37,0,37,0,34,0,29,0,30,0,35,0,36,0,31,0,31,0,33,0,32,0,31,0,29,0,28,0,30,0,30,0, +33,0,36,0,36,0,36,0,38,0,39,0,38,0,36,0,36,0,36,0,36,0,38,0,37,0,37,0,40,0,39,0, +43,0,44,0,39,0,41,0,45,0,42,0,43,0,42,0,36,0,36,0,39,0,41,0,44,0,41,0,37,0,37,0, +40,0,39,0,36,0,35,0,36,0,39,0,44,0,46,0,44,0,42,0,41,0,42,0,42,0,38,0,40,0,44,0, +40,0,36,0,35,0,39,0,44,0,44,0,44,0,48,0,46,0,43,0,44,0,42,0,41,0,45,0,47,0,46,0, +44,0,41,0,40,0,43,0,44,0,42,0,44,0,44,0,44,0,46,0,42,0,41,0,46,0,49,0,52,0,52,0, +51,0,56,0,59,0,58,0,57,0,55,0,57,0,62,0,64,0,63,0,62,0,60,0,62,0,65,0,64,0,67,0, +70,0,72,0,73,0,74,0,73,0,70,0,72,0,75,0,76,0,79,0,80,0,77,0,78,0,81,0,85,0,85,0, +80,0,79,0,78,0,73,0,76,0,78,0,71,0,69,0,72,0,70,0,70,0,74,0,74,0,74,0,76,0,72,0, +70,0,74,0,75,0,75,0,76,0,70,0,70,0,73,0,69,0,68,0,70,0,66,0,65,0,68,0,67,0,68,0, +69,0,67,0,64,0,62,0,61,0,61,0,63,0,65,0,61,0,57,0,63,0,68,0,65,0,61,0,59,0,56,0, +55,0,57,0,55,0,53,0,53,0,55,0,55,0,53,0,48,0,45,0,47,0,52,0,54,0,49,0,46,0,49,0, +49,0,46,0,45,0,44,0,43,0,41,0,39,0,40,0,37,0,37,0,40,0,37,0,34,0,37,0,38,0,38,0, +38,0,36,0,38,0,40,0,40,0,40,0,37,0,32,0,30,0,31,0,32,0,31,0,29,0,29,0,33,0,35,0, +35,0,38,0,41,0,38,0,36,0,32,0,28,0,28,0,30,0,27,0,27,0,28,0,31,0,32,0,29,0,26,0, +24,0,23,0,22,0,20,0,20,0,22,0,24,0,24,0,24,0,23,0,22,0,23,0,25,0,28,0,29,0,27,0, +30,0,32,0,25,0,20,0,21,0,24,0,25,0,24,0,23,0,27,0,27,0,24,0,20,0,13,0,13,0,18,0, +16,0,14,0,14,0,14,0,19,0,21,0,15,0,13,0,16,0,17,0,16,0,14,0,12,0,9,0,7,0,8,0, +6,0,2,0,3,0,2,0,1,0,2,0,255,255,254,255,2,0,0,0,254,255,254,255,0,0,1,0,255,255,250,255, +250,255,252,255,255,255,253,255,248,255,245,255,244,255,244,255,242,255,238,255,239,255,242,255,238,255,236,255,239,255,238,255, +239,255,241,255,237,255,237,255,238,255,236,255,237,255,238,255,236,255,239,255,241,255,239,255,239,255,240,255,241,255,238,255, +231,255,229,255,228,255,228,255,231,255,233,255,234,255,237,255,235,255,234,255,232,255,228,255,233,255,239,255,238,255,239,255, +238,255,236,255,238,255,238,255,236,255,234,255,232,255,233,255,229,255,223,255,227,255,233,255,233,255,233,255,230,255,227,255, +231,255,236,255,240,255,238,255,230,255,229,255,233,255,234,255,230,255,227,255,228,255,229,255,229,255,232,255,232,255,231,255, +229,255,229,255,231,255,231,255,230,255,230,255,230,255,230,255,234,255,234,255,230,255,230,255,233,255,234,255,235,255,235,255, +233,255,232,255,233,255,234,255,238,255,237,255,235,255,235,255,236,255,240,255,243,255,243,255,243,255,240,255,238,255,241,255, +240,255,238,255,241,255,241,255,238,255,239,255,240,255,240,255,240,255,242,255,242,255,238,255,238,255,239,255,238,255,240,255, +242,255,243,255,244,255,239,255,237,255,239,255,239,255,242,255,245,255,241,255,238,255,238,255,237,255,240,255,241,255,242,255, +244,255,244,255,243,255,242,255,239,255,236,255,237,255,243,255,247,255,244,255,239,255,237,255,237,255,239,255,239,255,240,255, +240,255,242,255,242,255,241,255,241,255,243,255,242,255,244,255,246,255,240,255,238,255,241,255,241,255,241,255,241,255,240,255, +241,255,243,255,243,255,240,255,239,255,243,255,248,255,252,255,253,255,250,255,246,255,243,255,245,255,251,255,252,255,251,255, +250,255,246,255,246,255,250,255,251,255,252,255,250,255,249,255,251,255,252,255,252,255,253,255,252,255,248,255,247,255,247,255, +249,255,251,255,249,255,248,255,250,255,250,255,248,255,251,255,250,255,249,255,252,255,252,255,252,255,253,255,249,255,251,255, +255,255,253,255,252,255,249,255,245,255,249,255,254,255,1,0,4,0,4,0,4,0,4,0,1,0,0,0,255,255,0,0, +5,0,5,0,3,0,0,0,255,255,2,0,5,0,3,0,1,0,2,0,0,0,254,255,251,255,251,255,253,255,253,255, +253,255,254,255,255,255,255,255,0,0,1,0,1,0,2,0,1,0,1,0,3,0,2,0,253,255,253,255,0,0,0,0, +0,0,1,0,1,0,255,255,254,255,0,0,253,255,249,255,251,255,252,255,251,255,251,255,251,255,252,255,251,255,247,255, +247,255,248,255,248,255,247,255,245,255,245,255,248,255,250,255,250,255,248,255,247,255,245,255,245,255,246,255,246,255,247,255, +249,255,247,255,249,255,250,255,248,255,249,255,253,255,255,255,254,255,252,255,252,255,253,255,251,255,249,255,247,255,248,255, +251,255,250,255,251,255,253,255,248,255,245,255,248,255,246,255,243,255,244,255,243,255,244,255,242,255,238,255,239,255,241,255, +242,255,242,255,244,255,244,255,243,255,242,255,241,255,245,255,247,255,242,255,242,255,245,255,241,255,240,255,244,255,245,255, +244,255,245,255,248,255,249,255,245,255,245,255,247,255,246,255,247,255,249,255,247,255,248,255,248,255,248,255,250,255,249,255, +247,255,247,255,247,255,248,255,249,255,248,255,249,255,247,255,242,255,238,255,238,255,238,255,237,255,239,255,237,255,235,255, +238,255,237,255,234,255,236,255,238,255,239,255,243,255,245,255,243,255,241,255,241,255,242,255,241,255,239,255,239,255,242,255, +244,255,244,255,245,255,246,255,245,255,245,255,241,255,240,255,247,255,250,255,247,255,248,255,247,255,245,255,247,255,245,255, +245,255,248,255,250,255,247,255,244,255,247,255,248,255,246,255,249,255,251,255,248,255,247,255,248,255,248,255,250,255,250,255, +251,255,250,255,247,255,251,255,253,255,248,255,245,255,244,255,246,255,248,255,245,255,245,255,248,255,249,255,249,255,246,255, +246,255,250,255,247,255,244,255,249,255,250,255,250,255,254,255,253,255,250,255,251,255,249,255,248,255,253,255,252,255,250,255, +254,255,253,255,249,255,251,255,253,255,254,255,1,0,1,0,1,0,0,0,255,255,1,0,1,0,1,0,2,0,2,0, +4,0,5,0,255,255,254,255,1,0,2,0,0,0,253,255,254,255,3,0,3,0,2,0,1,0,254,255,253,255,0,0, +254,255,253,255,2,0,5,0,3,0,4,0,4,0,2,0,5,0,9,0,6,0,1,0,0,0,1,0,254,255,250,255, +252,255,254,255,0,0,2,0,2,0,3,0,7,0,4,0,2,0,4,0,3,0,5,0,8,0,6,0,5,0,5,0, +6,0,7,0,4,0,1,0,0,0,2,0,3,0,3,0,1,0,0,0,255,255,1,0,4,0,4,0,5,0,6,0, +6,0,7,0,6,0,6,0,6,0,6,0,6,0,4,0,5,0,8,0,8,0,7,0,5,0,3,0,5,0,5,0, +3,0,4,0,5,0,4,0,4,0,6,0,7,0,9,0,10,0,11,0,12,0,13,0,12,0,9,0,11,0,12,0, +8,0,6,0,8,0,10,0,9,0,5,0,5,0,9,0,9,0,4,0,6,0,8,0,6,0,7,0,10,0,7,0, +5,0,7,0,9,0,11,0,11,0,12,0,12,0,9,0,9,0,12,0,13,0,14,0,15,0,14,0,14,0,11,0, +12,0,16,0,14,0,14,0,18,0,18,0,20,0,21,0,18,0,21,0,21,0,20,0,23,0,23,0,23,0,24,0, +23,0,24,0,23,0,23,0,24,0,20,0,20,0,23,0,20,0,20,0,22,0,21,0,21,0,19,0,18,0,22,0, +21,0,15,0,15,0,17,0,19,0,22,0,23,0,24,0,24,0,24,0,23,0,21,0,22,0,26,0,25,0,24,0, +25,0,26,0,26,0,28,0,29,0,30,0,29,0,24,0,22,0,26,0,27,0,31,0,34,0,32,0,31,0,31,0, +29,0,30,0,32,0,32,0,32,0,31,0,33,0,34,0,33,0,33,0,34,0,33,0,34,0,34,0,33,0,34,0, +35,0,34,0,32,0,32,0,34,0,35,0,37,0,38,0,38,0,38,0,38,0,41,0,44,0,41,0,41,0,43,0, +39,0,39,0,40,0,38,0,40,0,42,0,39,0,39,0,40,0,40,0,41,0,41,0,40,0,39,0,39,0,40,0, +41,0,42,0,42,0,41,0,43,0,44,0,43,0,46,0,47,0,40,0,36,0,40,0,43,0,43,0,44,0,44,0, +40,0,36,0,37,0,39,0,39,0,39,0,41,0,43,0,44,0,42,0,41,0,44,0,46,0,46,0,46,0,45,0, +45,0,45,0,43,0,44,0,44,0,40,0,43,0,45,0,39,0,37,0,39,0,40,0,43,0,43,0,38,0,34,0, +34,0,37,0,38,0,38,0,40,0,39,0,37,0,40,0,41,0,40,0,40,0,43,0,44,0,39,0,39,0,42,0, +40,0,39,0,39,0,39,0,42,0,42,0,39,0,42,0,43,0,44,0,46,0,43,0,41,0,42,0,42,0,41,0, +40,0,40,0,43,0,42,0,38,0,38,0,39,0,38,0,36,0,36,0,35,0,34,0,36,0,38,0,37,0,37,0, +34,0,33,0,33,0,30,0,29,0,29,0,27,0,27,0,29,0,30,0,29,0,27,0,27,0,26,0,24,0,25,0, +26,0,28,0,29,0,26,0,23,0,22,0,24,0,25,0,24,0,25,0,26,0,26,0,26,0,23,0,21,0,23,0, +25,0,26,0,25,0,21,0,21,0,23,0,22,0,21,0,19,0,18,0,18,0,12,0,11,0,14,0,14,0,14,0, +13,0,12,0,13,0,11,0,12,0,13,0,9,0,9,0,10,0,6,0,10,0,12,0,7,0,8,0,10,0,8,0, +8,0,8,0,7,0,8,0,6,0,4,0,5,0,5,0,5,0,8,0,8,0,7,0,8,0,6,0,3,0,4,0, +3,0,1,0,255,255,0,0,0,0,254,255,0,0,3,0,0,0,254,255,0,0,253,255,250,255,253,255,252,255,252,255, +254,255,252,255,252,255,254,255,251,255,247,255,248,255,248,255,248,255,250,255,251,255,247,255,245,255,246,255,244,255,244,255, +245,255,244,255,245,255,244,255,242,255,246,255,248,255,243,255,244,255,246,255,243,255,243,255,243,255,241,255,240,255,239,255, +240,255,245,255,244,255,238,255,238,255,240,255,239,255,239,255,243,255,242,255,240,255,241,255,241,255,238,255,240,255,243,255, +242,255,239,255,238,255,239,255,239,255,241,255,242,255,239,255,238,255,239,255,236,255,235,255,237,255,237,255,236,255,237,255, +234,255,235,255,234,255,232,255,237,255,239,255,235,255,235,255,235,255,233,255,238,255,236,255,234,255,238,255,237,255,234,255, +235,255,234,255,235,255,235,255,233,255,235,255,236,255,233,255,231,255,231,255,231,255,230,255,227,255,228,255,232,255,232,255, +231,255,232,255,232,255,231,255,232,255,232,255,229,255,228,255,229,255,227,255,225,255,227,255,231,255,233,255,230,255,228,255, +228,255,228,255,227,255,229,255,231,255,229,255,228,255,229,255,230,255,232,255,232,255,231,255,232,255,231,255,227,255,229,255, +231,255,230,255,232,255,231,255,228,255,231,255,231,255,230,255,231,255,230,255,228,255,228,255,227,255,228,255,228,255,230,255, +231,255,228,255,228,255,232,255,232,255,233,255,234,255,231,255,231,255,232,255,233,255,232,255,230,255,229,255,228,255,230,255, +232,255,230,255,228,255,230,255,227,255,226,255,227,255,227,255,228,255,226,255,224,255,226,255,229,255,230,255,232,255,233,255, +232,255,230,255,228,255,231,255,235,255,235,255,234,255,232,255,233,255,237,255,237,255,236,255,236,255,234,255,233,255,235,255, +235,255,235,255,238,255,238,255,235,255,236,255,237,255,236,255,236,255,235,255,235,255,236,255,234,255,233,255,234,255,232,255, +232,255,234,255,233,255,232,255,232,255,234,255,236,255,236,255,234,255,232,255,232,255,236,255,238,255,237,255,238,255,238,255, +238,255,240,255,241,255,244,255,246,255,243,255,244,255,246,255,243,255,244,255,245,255,243,255,243,255,243,255,244,255,246,255, +246,255,244,255,242,255,243,255,246,255,246,255,245,255,247,255,246,255,246,255,250,255,251,255,251,255,252,255,251,255,250,255, +250,255,250,255,251,255,249,255,246,255,246,255,248,255,248,255,249,255,249,255,248,255,247,255,247,255,250,255,251,255,249,255, +247,255,248,255,249,255,248,255,249,255,248,255,248,255,250,255,250,255,249,255,248,255,249,255,250,255,249,255,248,255,249,255, +250,255,250,255,249,255,248,255,249,255,249,255,247,255,248,255,248,255,246,255,246,255,247,255,249,255,248,255,247,255,248,255, +248,255,247,255,249,255,248,255,248,255,250,255,249,255,248,255,247,255,247,255,249,255,251,255,251,255,252,255,252,255,253,255, +253,255,251,255,250,255,251,255,251,255,250,255,248,255,248,255,248,255,247,255,249,255,247,255,240,255,242,255,245,255,242,255, +240,255,238,255,237,255,241,255,245,255,245,255,243,255,242,255,242,255,241,255,241,255,241,255,242,255,245,255,247,255,247,255, +247,255,247,255,245,255,247,255,247,255,243,255,242,255,241,255,240,255,240,255,239,255,236,255,237,255,237,255,234,255,233,255, +233,255,232,255,231,255,232,255,231,255,231,255,231,255,230,255,229,255,230,255,232,255,231,255,230,255,232,255,234,255,234,255, +235,255,237,255,238,255,238,255,236,255,238,255,241,255,241,255,243,255,244,255,243,255,245,255,244,255,242,255,244,255,244,255, +243,255,244,255,244,255,244,255,243,255,240,255,240,255,240,255,237,255,237,255,236,255,235,255,235,255,234,255,236,255,239,255, +236,255,235,255,236,255,233,255,233,255,236,255,237,255,236,255,237,255,239,255,239,255,240,255,241,255,241,255,241,255,242,255, +241,255,243,255,245,255,244,255,244,255,244,255,243,255,245,255,246,255,244,255,245,255,247,255,249,255,248,255,247,255,249,255, +249,255,251,255,253,255,253,255,253,255,253,255,253,255,255,255,1,0,3,0,6,0,6,0,6,0,5,0,3,0,5,0, +8,0,10,0,10,0,8,0,7,0,7,0,7,0,6,0,4,0,3,0,6,0,6,0,3,0,3,0,4,0,5,0, +6,0,5,0,5,0,7,0,7,0,8,0,7,0,7,0,10,0,11,0,9,0,10,0,12,0,12,0,12,0,13,0, +13,0,15,0,17,0,16,0,16,0,17,0,15,0,15,0,16,0,16,0,17,0,19,0,21,0,23,0,22,0,21,0, +23,0,22,0,21,0,23,0,24,0,27,0,28,0,26,0,24,0,22,0,21,0,23,0,25,0,24,0,23,0,23,0, +23,0,22,0,22,0,24,0,23,0,23,0,24,0,22,0,21,0,22,0,22,0,22,0,21,0,21,0,21,0,23,0, +24,0,22,0,22,0,23,0,21,0,21,0,22,0,19,0,17,0,17,0,15,0,14,0,16,0,15,0,14,0,14,0, +16,0,17,0,16,0,16,0,15,0,12,0,13,0,13,0,11,0,12,0,10,0,8,0,8,0,10,0,12,0,9,0, +7,0,11,0,10,0,8,0,10,0,8,0,7,0,9,0,9,0,7,0,5,0,6,0,8,0,6,0,3,0,5,0, +5,0,3,0,3,0,1,0,0,0,3,0,3,0,1,0,1,0,0,0,1,0,1,0,254,255,253,255,253,255,252,255, +251,255,254,255,253,255,252,255,253,255,249,255,246,255,247,255,247,255,247,255,246,255,244,255,243,255,241,255,241,255,240,255, +237,255,239,255,239,255,236,255,236,255,235,255,233,255,234,255,233,255,232,255,232,255,232,255,232,255,232,255,231,255,231,255, +229,255,228,255,228,255,227,255,228,255,228,255,227,255,226,255,225,255,224,255,226,255,225,255,227,255,229,255,226,255,225,255, +225,255,222,255,225,255,229,255,228,255,227,255,226,255,226,255,227,255,226,255,225,255,227,255,226,255,226,255,226,255,228,255, +228,255,228,255,228,255,230,255,230,255,228,255,227,255,228,255,228,255,227,255,227,255,227,255,225,255,226,255,225,255,223,255, +225,255,223,255,219,255,220,255,221,255,219,255,218,255,218,255,219,255,222,255,222,255,221,255,220,255,221,255,224,255,224,255, +222,255,224,255,226,255,225,255,225,255,225,255,225,255,226,255,228,255,229,255,229,255,227,255,227,255,230,255,230,255,229,255, +230,255,229,255,230,255,232,255,230,255,231,255,235,255,233,255,235,255,236,255,234,255,234,255,236,255,236,255,236,255,235,255, +237,255,239,255,240,255,241,255,240,255,239,255,241,255,239,255,238,255,240,255,241,255,241,255,243,255,242,255,242,255,242,255, +243,255,244,255,243,255,245,255,247,255,244,255,245,255,246,255,243,255,245,255,247,255,244,255,245,255,244,255,243,255,245,255, +243,255,240,255,243,255,244,255,243,255,245,255,245,255,246,255,248,255,248,255,247,255,248,255,249,255,250,255,250,255,249,255, +249,255,251,255,252,255,252,255,253,255,252,255,253,255,254,255,253,255,255,255,0,0,255,255,254,255,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,0,0,0,0,255,255,0,0,255,255,253,255,255,255,255,255,254,255,255,255,255,255,251,255, +251,255,254,255,254,255,252,255,254,255,255,255,252,255,252,255,253,255,251,255,252,255,253,255,253,255,252,255,251,255,251,255, +251,255,252,255,252,255,250,255,250,255,252,255,251,255,250,255,252,255,251,255,251,255,251,255,249,255,247,255,247,255,250,255, +250,255,247,255,246,255,247,255,245,255,246,255,247,255,246,255,247,255,247,255,247,255,248,255,247,255,249,255,249,255,246,255, +246,255,245,255,244,255,247,255,245,255,244,255,247,255,247,255,246,255,246,255,244,255,246,255,248,255,246,255,246,255,247,255, +246,255,247,255,249,255,247,255,247,255,248,255,249,255,247,255,245,255,244,255,246,255,249,255,249,255,246,255,246,255,247,255, +247,255,246,255,246,255,246,255,245,255,244,255,244,255,243,255,243,255,243,255,245,255,246,255,242,255,242,255,246,255,244,255, +244,255,246,255,243,255,242,255,243,255,242,255,243,255,243,255,242,255,243,255,242,255,241,255,242,255,244,255,246,255,245,255, +244,255,245,255,247,255,248,255,249,255,247,255,246,255,247,255,249,255,252,255,252,255,251,255,255,255,255,255,252,255,253,255, +254,255,253,255,254,255,1,0,1,0,0,0,253,255,253,255,255,255,0,0,255,255,254,255,253,255,253,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,254,255,0,0,1,0,0,0, +255,255,255,255,255,255,255,255,2,0,4,0,1,0,1,0,1,0,2,0,3,0,2,0,2,0,6,0,6,0,5,0, +5,0,5,0,7,0,8,0,7,0,7,0,5,0,5,0,8,0,8,0,6,0,6,0,8,0,8,0,6,0,7,0, +9,0,8,0,7,0,9,0,7,0,5,0,7,0,8,0,7,0,7,0,6,0,5,0,5,0,6,0,5,0,4,0, +7,0,8,0,6,0,4,0,3,0,3,0,4,0,6,0,6,0,3,0,2,0,4,0,4,0,4,0,3,0,2,0, +4,0,5,0,6,0,7,0,6,0,6,0,6,0,4,0,5,0,6,0,6,0,7,0,6,0,4,0,3,0,2,0, +4,0,5,0,3,0,2,0,2,0,3,0,6,0,4,0,3,0,4,0,3,0,3,0,3,0,2,0,3,0,4,0, +4,0,1,0,0,0,4,0,3,0,255,255,2,0,4,0,1,0,0,0,0,0,255,255,1,0,1,0,254,255,254,255, +1,0,0,0,0,0,1,0,255,255,253,255,0,0,255,255,253,255,254,255,253,255,251,255,254,255,254,255,252,255,254,255, +254,255,254,255,253,255,252,255,251,255,250,255,252,255,255,255,254,255,251,255,252,255,254,255,254,255,254,255,254,255,254,255, +254,255,0,0,0,0,253,255,253,255,255,255,254,255,254,255,254,255,253,255,252,255,252,255,254,255,254,255,252,255,252,255, +253,255,252,255,252,255,250,255,250,255,253,255,255,255,253,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,254,255, +254,255,253,255,253,255,254,255,252,255,252,255,254,255,255,255,253,255,252,255,253,255,253,255,253,255,253,255,252,255,253,255, +255,255,255,255,255,255,253,255,254,255,1,0,0,0,1,0,2,0,255,255,255,255,3,0,2,0,0,0,1,0,0,0, +0,0,1,0,0,0,255,255,1,0,2,0,255,255,255,255,0,0,253,255,253,255,1,0,1,0,254,255,255,255,255,255, +1,0,0,0,255,255,0,0,255,255,254,255,255,255,255,255,252,255,252,255,255,255,0,0,255,255,253,255,254,255,255,255, +255,255,0,0,254,255,253,255,255,255,2,0,0,0,254,255,255,255,1,0,2,0,0,0,253,255,253,255,255,255,0,0, +2,0,0,0,253,255,254,255,0,0,0,0,0,0,255,255,254,255,0,0,0,0,255,255,253,255,252,255,253,255,255,255, +255,255,255,255,253,255,254,255,254,255,253,255,255,255,0,0,254,255,254,255,253,255,253,255,253,255,252,255,254,255,254,255, +252,255,254,255,255,255,254,255,0,0,255,255,254,255,255,255,254,255,255,255,0,0,255,255,254,255,0,0,1,0,0,0, +255,255,0,0,255,255,0,0,1,0,0,0,254,255,253,255,252,255,254,255,254,255,252,255,253,255,255,255,255,255,254,255, +253,255,253,255,254,255,252,255,252,255,253,255,252,255,251,255,250,255,251,255,254,255,253,255,253,255,254,255,253,255,254,255, +254,255,253,255,253,255,254,255,254,255,253,255,254,255,255,255,254,255,252,255,254,255,254,255,254,255,254,255,251,255,250,255, +252,255,253,255,254,255,254,255,254,255,253,255,253,255,0,0,0,0,253,255,254,255,0,0,254,255,254,255,255,255,254,255, +254,255,1,0,2,0,1,0,0,0,255,255,254,255,1,0,2,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0, +3,0,0,0,0,0,1,0,255,255,1,0,1,0,254,255,0,0,0,0,253,255,254,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,1,0, +2,0,4,0,2,0,3,0,4,0,3,0,3,0,3,0,1,0,4,0,5,0,3,0,3,0,5,0,4,0,4,0, +6,0,5,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0,7,0,6,0,4,0,4,0,5,0,5,0,4,0, +5,0,6,0,5,0,7,0,8,0,6,0,6,0,5,0,5,0,9,0,10,0,8,0,7,0,6,0,7,0,9,0, +7,0,8,0,11,0,9,0,7,0,8,0,9,0,8,0,9,0,11,0,8,0,8,0,11,0,11,0,8,0,7,0, +7,0,8,0,9,0,10,0,9,0,7,0,7,0,10,0,11,0,9,0,8,0,9,0,12,0,15,0,13,0,10,0, +12,0,14,0,13,0,13,0,15,0,14,0,12,0,13,0,14,0,14,0,13,0,13,0,14,0,13,0,12,0,13,0, +13,0,13,0,14,0,11,0,11,0,14,0,13,0,12,0,13,0,11,0,13,0,16,0,15,0,13,0,11,0,12,0, +15,0,14,0,14,0,13,0,13,0,15,0,16,0,16,0,16,0,15,0,15,0,18,0,18,0,17,0,16,0,17,0, +20,0,20,0,19,0,17,0,15,0,17,0,19,0,19,0,19,0,18,0,18,0,20,0,19,0,17,0,17,0,17,0, +18,0,20,0,20,0,17,0,17,0,17,0,17,0,19,0,19,0,17,0,19,0,20,0,18,0,19,0,20,0,18,0, +20,0,20,0,17,0,17,0,19,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,17,0,17,0,20,0,19,0, +18,0,18,0,16,0,17,0,17,0,18,0,20,0,19,0,18,0,19,0,20,0,19,0,20,0,20,0,19,0,20,0, +22,0,21,0,20,0,22,0,23,0,24,0,23,0,20,0,20,0,22,0,22,0,22,0,22,0,21,0,22,0,22,0, +19,0,19,0,20,0,19,0,20,0,20,0,19,0,18,0,18,0,19,0,17,0,17,0,18,0,18,0,18,0,17,0, +16,0,16,0,15,0,17,0,20,0,16,0,15,0,17,0,17,0,18,0,18,0,15,0,16,0,19,0,17,0,16,0, +18,0,18,0,16,0,18,0,19,0,17,0,16,0,19,0,18,0,16,0,17,0,18,0,18,0,18,0,17,0,16,0, +16,0,16,0,16,0,15,0,15,0,15,0,14,0,15,0,16,0,14,0,13,0,15,0,17,0,14,0,13,0,14,0, +14,0,14,0,14,0,12,0,13,0,14,0,14,0,14,0,12,0,13,0,15,0,14,0,12,0,13,0,12,0,11,0, +14,0,15,0,13,0,11,0,11,0,14,0,14,0,14,0,12,0,9,0,12,0,13,0,10,0,9,0,9,0,9,0, +11,0,11,0,10,0,9,0,9,0,9,0,9,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0, +6,0,6,0,6,0,7,0,8,0,7,0,6,0,7,0,8,0,8,0,8,0,6,0,6,0,7,0,7,0,6,0, +7,0,5,0,5,0,6,0,4,0,5,0,7,0,5,0,3,0,4,0,5,0,4,0,3,0,4,0,5,0,5,0, +6,0,5,0,2,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,1,0,1,0,1,0,1,0, +255,255,1,0,1,0,1,0,0,0,0,0,0,0,2,0,2,0,2,0,0,0,0,0,255,255,254,255,254,255,254,255, +253,255,254,255,255,255,254,255,253,255,253,255,253,255,250,255,250,255,253,255,253,255,251,255,251,255,252,255,253,255,253,255, +253,255,251,255,249,255,250,255,251,255,251,255,253,255,252,255,250,255,252,255,253,255,251,255,253,255,253,255,251,255,252,255, +253,255,253,255,254,255,254,255,254,255,254,255,253,255,254,255,253,255,253,255,253,255,251,255,251,255,252,255,253,255,254,255, +252,255,251,255,251,255,249,255,250,255,251,255,249,255,249,255,249,255,247,255,248,255,250,255,249,255,247,255,246,255,247,255, +249,255,248,255,246,255,246,255,247,255,247,255,247,255,247,255,247,255,247,255,247,255,248,255,250,255,249,255,247,255,247,255, +249,255,251,255,252,255,249,255,249,255,251,255,248,255,249,255,251,255,250,255,251,255,251,255,249,255,251,255,252,255,251,255, +251,255,251,255,252,255,253,255,252,255,252,255,251,255,252,255,252,255,252,255,252,255,250,255,250,255,252,255,251,255,249,255, +250,255,250,255,249,255,249,255,249,255,248,255,250,255,251,255,250,255,248,255,248,255,249,255,248,255,249,255,251,255,251,255, +250,255,251,255,252,255,251,255,249,255,250,255,251,255,251,255,251,255,252,255,251,255,251,255,253,255,254,255,252,255,252,255, +253,255,253,255,253,255,254,255,253,255,254,255,255,255,254,255,255,255,1,0,0,0,255,255,255,255,254,255,0,0,255,255, +254,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,254,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0, +1,0,1,0,255,255,0,0,1,0,0,0,2,0,3,0,1,0,2,0,4,0,4,0,3,0,3,0,4,0,4,0, +5,0,5,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,6,0,7,0,6,0,6,0,6,0, +6,0,8,0,8,0,8,0,8,0,9,0,9,0,9,0,9,0,11,0,10,0,9,0,11,0,11,0,11,0,11,0, +11,0,11,0,12,0,11,0,11,0,12,0,11,0,12,0,11,0,10,0,11,0,12,0,12,0,13,0,13,0,12,0, +12,0,13,0,14,0,12,0,11,0,12,0,12,0,12,0,11,0,11,0,13,0,13,0,11,0,11,0,11,0,11,0, +13,0,14,0,13,0,12,0,12,0,12,0,14,0,15,0,14,0,13,0,12,0,13,0,13,0,12,0,12,0,14,0, +14,0,15,0,15,0,11,0,12,0,14,0,13,0,12,0,13,0,11,0,12,0,13,0,11,0,12,0,11,0,10,0, +13,0,13,0,11,0,12,0,10,0,8,0,10,0,11,0,9,0,9,0,10,0,9,0,8,0,9,0,9,0,9,0, +9,0,9,0,9,0,10,0,10,0,10,0,9,0,7,0,9,0,11,0,9,0,9,0,9,0,9,0,10,0,9,0, +8,0,9,0,10,0,10,0,11,0,10,0,10,0,10,0,9,0,8,0,10,0,11,0,9,0,8,0,8,0,9,0, +9,0,8,0,6,0,8,0,7,0,7,0,8,0,6,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,6,0, +6,0,6,0,6,0,5,0,5,0,5,0,8,0,7,0,5,0,4,0,5,0,4,0,4,0,5,0,6,0,6,0, +6,0,7,0,8,0,7,0,7,0,6,0,7,0,8,0,7,0,7,0,8,0,8,0,9,0,10,0,9,0,8,0, +10,0,11,0,9,0,9,0,9,0,9,0,10,0,10,0,9,0,10,0,11,0,10,0,9,0,9,0,10,0,9,0, +8,0,9,0,10,0,7,0,6,0,8,0,8,0,6,0,7,0,8,0,7,0,7,0,7,0,7,0,9,0,9,0, +8,0,10,0,11,0,9,0,9,0,11,0,10,0,11,0,11,0,11,0,13,0,13,0,12,0,12,0,12,0,13,0, +13,0,13,0,13,0,13,0,12,0,12,0,12,0,12,0,13,0,13,0,14,0,13,0,11,0,11,0,13,0,13,0, +12,0,11,0,11,0,11,0,12,0,12,0,11,0,10,0,10,0,11,0,12,0,11,0,11,0,12,0,11,0,9,0, +11,0,12,0,12,0,12,0,11,0,10,0,11,0,13,0,13,0,11,0,11,0,12,0,11,0,12,0,12,0,10,0, +11,0,13,0,11,0,9,0,10,0,11,0,9,0,9,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,8,0, +9,0,9,0,7,0,7,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,8,0,8,0,7,0,8,0,9,0, +10,0,10,0,9,0,8,0,9,0,9,0,8,0,8,0,8,0,8,0,8,0,7,0,6,0,8,0,8,0,7,0, +7,0,6,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,6,0,7,0,6,0,5,0,6,0,6,0, +5,0,6,0,6,0,5,0,6,0,6,0,7,0,8,0,7,0,7,0,8,0,7,0,6,0,6,0,6,0,8,0, +8,0,7,0,7,0,7,0,7,0,8,0,9,0,8,0,7,0,9,0,10,0,7,0,7,0,9,0,9,0,9,0, +10,0,9,0,7,0,8,0,9,0,8,0,7,0,8,0,9,0,10,0,10,0,8,0,7,0,10,0,11,0,9,0, +9,0,8,0,9,0,10,0,9,0,8,0,9,0,9,0,9,0,10,0,9,0,9,0,10,0,10,0,11,0,11,0, +9,0,9,0,10,0,9,0,9,0,9,0,8,0,9,0,10,0,8,0,9,0,11,0,10,0,10,0,9,0,7,0, +7,0,9,0,8,0,8,0,7,0,7,0,8,0,9,0,9,0,8,0,7,0,7,0,7,0,7,0,8,0,6,0, +6,0,6,0,6,0,6,0,6,0,5,0,6,0,7,0,5,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0, +3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,2,0,1,0,2,0,2,0,1,0,0,0,2,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,0,0, +255,255,255,255,0,0,2,0,1,0,0,0,0,0,0,0,255,255,1,0,1,0,1,0,1,0,0,0,0,0,2,0, +2,0,2,0,2,0,1,0,1,0,2,0,1,0,255,255,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,3,0,2,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,2,0, +2,0,2,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0, +0,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,3,0,1,0,0,0,0,0,1,0,1,0,2,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255,255,255,0,0,255,255,254,255,255,255, +255,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,253,255,252,255,253,255, +252,255,253,255,253,255,251,255,251,255,252,255,251,255,252,255,253,255,250,255,251,255,252,255,250,255,251,255,253,255,251,255, +251,255,252,255,250,255,250,255,251,255,252,255,252,255,251,255,252,255,252,255,251,255,251,255,251,255,250,255,250,255,251,255, +250,255,250,255,250,255,251,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255,250,255,250,255,251,255, +251,255,252,255,253,255,252,255,253,255,253,255,252,255,252,255,254,255,254,255,254,255,0,0,255,255,254,255,255,255,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,0,0,1,0,2,0,2,0,1,0,255,255,1,0,2,0, +0,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,3,0,3,0, +3,0,3,0,4,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,5,0,6,0,4,0,5,0,8,0,7,0, +6,0,6,0,5,0,6,0,6,0,5,0,6,0,7,0,7,0,7,0,8,0,7,0,7,0,7,0,8,0,7,0, +6,0,7,0,7,0,7,0,7,0,7,0,6,0,7,0,7,0,6,0,6,0,7,0,7,0,7,0,7,0,8,0, +8,0,8,0,7,0,7,0,8,0,7,0,6,0,8,0,8,0,6,0,7,0,8,0,7,0,7,0,7,0,7,0, +7,0,6,0,6,0,8,0,8,0,8,0,7,0,6,0,7,0,7,0,6,0,7,0,8,0,6,0,6,0,7,0, +6,0,5,0,6,0,7,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0, +5,0,5,0,7,0,6,0,4,0,5,0,6,0,6,0,7,0,6,0,4,0,4,0,5,0,5,0,4,0,4,0, +5,0,4,0,3,0,5,0,6,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0,3,0,3,0,5,0,4,0, +4,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,5,0, +5,0,4,0,5,0,5,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0, +5,0,5,0,5,0,5,0,4,0,5,0,4,0,4,0,5,0,4,0,3,0,5,0,5,0,4,0,4,0,3,0, +2,0,3,0,4,0,4,0,5,0,4,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0, +4,0,4,0,5,0,4,0,3,0,4,0,4,0,3,0,3,0,5,0,5,0,4,0,2,0,3,0,4,0,2,0, +3,0,5,0,5,0,3,0,3,0,3,0,2,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,1,0,2,0, +3,0,3,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0, +2,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,254,255,254,255,0,0,255,255,255,255,0,0,0,0,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255, +254,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,253,255,255,255,254,255,253,255,254,255,255,255, +254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,254,255,254,255, +255,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,255,255,255,255,1,0,1,0,255,255,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0, +1,0,2,0,1,0,1,0,3,0,2,0,1,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,4,0,4,0,3,0, +4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,6,0,6,0,4,0,3,0,4,0,5,0, +4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0, +6,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0, +5,0,4,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0, +4,0,4,0,4,0,3,0,4,0,4,0,5,0,3,0,3,0,4,0,4,0,2,0,3,0,3,0,2,0,4,0, +4,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,2,0,1,0,2,0,3,0,2,0, +2,0,3,0,2,0,1,0,1,0,3,0,3,0,2,0,3,0,3,0,1,0,2,0,2,0,1,0,2,0,2,0, +1,0,3,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,3,0, +2,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0, +2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,5,0,4,0,2,0,4,0,4,0,3,0,3,0, +2,0,2,0,3,0,3,0,3,0,4,0,5,0,5,0,4,0,3,0,4,0,5,0,4,0,4,0,5,0,4,0, +5,0,5,0,5,0,4,0,4,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,4,0, +4,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0, +5,0,5,0,5,0,6,0,6,0,6,0,7,0,6,0,5,0,6,0,6,0,5,0,6,0,7,0,6,0,6,0, +6,0,7,0,8,0,7,0,7,0,7,0,6,0,6,0,8,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0, +7,0,7,0,8,0,7,0,6,0,7,0,7,0,6,0,6,0,7,0,6,0,7,0,7,0,6,0,6,0,6,0, +6,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0,6,0,6,0, +6,0,6,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0,6,0,6,0,7,0,6,0,6,0,6,0,6,0, +6,0,6,0,7,0,6,0,5,0,5,0,5,0,6,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0,6,0, +5,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,5,0,4,0,5,0,6,0,6,0, +4,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,3,0,3,0,5,0,5,0,4,0,3,0,4,0,3,0, +3,0,3,0,4,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0, +2,0,3,0,2,0,2,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255, +255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,254,255, +253,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,253,255,254,255, +254,255,253,255,253,255,253,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,254,255, +254,255,252,255,251,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,251,255,251,255,253,255,252,255,252,255,252,255, +252,255,252,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,252,255,253,255, +252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255,252,255,252,255,251,255,252,255,253,255,253,255, +253,255,252,255,251,255,251,255,252,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255, +251,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,252,255, +251,255,251,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,251,255,251,255,252,255,252,255,252,255,251,255,250,255, +251,255,252,255,252,255,251,255,250,255,251,255,251,255,250,255,251,255,252,255,250,255,251,255,252,255,251,255,250,255,251,255, +251,255,251,255,250,255,250,255,251,255,250,255,251,255,252,255,252,255,252,255,251,255,251,255,252,255,251,255,251,255,251,255, +250,255,250,255,251,255,251,255,251,255,250,255,250,255,251,255,251,255,250,255,251,255,252,255,251,255,251,255,252,255,251,255, +251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,252,255,251,255,251,255,252,255,251,255,251,255,252,255,251,255, +252,255,252,255,251,255,252,255,252,255,251,255,252,255,252,255,251,255,252,255,252,255,253,255,253,255,252,255,252,255,253,255, +252,255,252,255,253,255,252,255,251,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,252,255,252,255, +253,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,253,255,254,255,253,255, +254,255,254,255,253,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255,253,255, +253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,253,255,254,255,255,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,253,255,254,255,255,255,254,255,253,255,254,255, +254,255,253,255,254,255,255,255,255,255,253,255,254,255,254,255,253,255,253,255,255,255,254,255,254,255,254,255,253,255,253,255, +253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255,253,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,253,255,254,255,255,255,254,255,254,255,254,255, +253,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,0,0,255,255,254,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255, +0,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +0,0,1,0,255,255,0,0,1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0,0,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,2,0,2,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0, +1,0,3,0,2,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0, +3,0,3,0,3,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0, +3,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,2,0,3,0,2,0,2,0,3,0,2,0,3,0,2,0,2,0,2,0,3,0,2,0,2,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0, +1,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,4,0, +4,0,3,0,3,0,3,0,2,0,3,0,3,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0, +3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,5,0,4,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0, +4,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0,4,0,5,0, +5,0,4,0,4,0,4,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,5,0,5,0, +4,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0, +4,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,4,0,3,0, +2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0, +3,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,1,0,2,0, +3,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0, +1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0, +2,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,1,0,1,0,2,0,1,0,1,0,1,0, +1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,0,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0, +2,0,1,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0, +2,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0, +1,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255, +0,0,0,0,255,255,255,255,254,255,255,255,0,0,255,255,254,255,0,0,255,255,254,255,255,255,0,0,255,255,254,255, +254,255,254,255,254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,0,0,0,0,255,255,255,255,254,255, +254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255, +254,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255, +255,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,254,255, +254,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,255,255,255,255,254,255,254,255,254,255, +254,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,254,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255, +253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,253,255, +253,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255, +253,255,254,255,253,255,254,255,255,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255, +254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255, +254,255,253,255,254,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255, +254,255,254,255,253,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +253,255,254,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255, +254,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,255,255,254,255,255,255,0,0,254,255,254,255,255,255,255,255, +254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,254,255,255,255,0,0, +255,255,255,255,0,0,1,0,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0, +1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0, +2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0, +1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0, +1,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0, +2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,2,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,2,0,0,0,1,0,2,0,1,0,1,0, +1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,2,0,1,0,2,0,3,0,1,0,0,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,3,0, +2,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,0,0,0,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0, +0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0,0,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0,1,0,1,0,0,0, +1,0,0,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0, +1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,2,0,1,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,1,0,1,0,0,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,1,0,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,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +1,0,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,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,255,255,1,0,1,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,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, +1,0,0,0,255,255,1,0,1,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,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, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,254,255,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,0,0,0,0,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,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,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,1,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,1,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,1,0,0,0,254,255,255,255,1,0,0,0,255,255,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0, +0,0,255,255,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,1,0,0,0,255,255,0,0,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,1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,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, +1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,255,255,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,1,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +255,255,0,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,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,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,1,0,1,0,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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, +255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0, +255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,255,255,0,0,0,0,255,255,254,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +254,255,255,255,0,0,255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255, +255,255,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0, +255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0, +0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,254,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0, +2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,0,0,1,0,1,0,1,0, +2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0, +3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0,3,0, +4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,2,0, +3,0,4,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,5,0,4,0,3,0, +4,0,4,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,4,0,4,0,3,0,3,0,4,0,3,0,4,0,4,0,4,0,4,0,5,0,4,0,4,0,5,0,4,0, +4,0,4,0,4,0,4,0,5,0,4,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0, +4,0,4,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0, +4,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0, +5,0,5,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0, +6,0,6,0,6,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0,6,0,5,0,5,0,5,0,6,0,6,0, +6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,6,0,6,0,6,0,6,0, +6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,6,0, +7,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,7,0,6,0,6,0, +7,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,7,0,7,0,7,0,6,0,6,0, +7,0,7,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,8,0,8,0,6,0,6,0,7,0,7,0, +8,0,7,0,7,0,7,0,8,0,8,0,7,0,7,0,7,0,7,0,8,0,8,0,7,0,8,0,8,0,8,0, +7,0,7,0,8,0,8,0,8,0,8,0,8,0,7,0,8,0,9,0,8,0,8,0,8,0,7,0,8,0,9,0, +7,0,7,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,9,0,8,0,8,0, +8,0,9,0,8,0,7,0,8,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,10,0,8,0,7,0,8,0, +9,0,9,0,9,0,9,0,8,0,8,0,8,0,9,0,10,0,9,0,8,0,9,0,8,0,8,0,9,0,9,0, +8,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0,10,0,9,0,9,0,9,0,9,0,10,0, +10,0,8,0,9,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,10,0,10,0,10,0, +10,0,10,0,10,0,10,0,10,0,10,0,11,0,10,0,9,0,9,0,10,0,10,0,10,0,11,0,11,0,10,0, +10,0,10,0,9,0,10,0,11,0,11,0,10,0,10,0,10,0,10,0,11,0,11,0,11,0,10,0,9,0,10,0, +11,0,11,0,10,0,11,0,10,0,10,0,11,0,10,0,10,0,10,0,11,0,11,0,11,0,11,0,10,0,10,0, +11,0,12,0,11,0,10,0,10,0,11,0,11,0,12,0,10,0,10,0,11,0,11,0,11,0,11,0,10,0,10,0, +11,0,12,0,11,0,11,0,11,0,11,0,13,0,12,0,11,0,11,0,12,0,12,0,11,0,11,0,12,0,12,0, +11,0,11,0,12,0,12,0,11,0,12,0,11,0,11,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, +12,0,12,0,12,0,12,0,12,0,11,0,11,0,12,0,12,0,11,0,11,0,12,0,13,0,12,0,12,0,13,0, +12,0,12,0,13,0,13,0,12,0,12,0,13,0,12,0,13,0,13,0,12,0,13,0,13,0,12,0,12,0,12,0, +12,0,13,0,13,0,12,0,12,0,13,0,12,0,12,0,12,0,12,0,13,0,14,0,13,0,12,0,12,0,13,0, +13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,14,0,14,0,13,0,13,0,13,0,13,0,14,0, +14,0,13,0,14,0,14,0,14,0,14,0,14,0,13,0,13,0,13,0,14,0,15,0,14,0,14,0,15,0,15,0, +14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0,15,0,15,0,14,0,14,0,15,0,15,0,15,0, +14,0,14,0,14,0,15,0,14,0,14,0,14,0,14,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, +15,0,15,0,15,0,16,0,16,0,15,0,15,0,16,0,16,0,15,0,16,0,16,0,16,0,17,0,16,0,15,0, +16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,15,0,17,0,17,0,17,0,17,0,17,0,16,0,17,0, +17,0,16,0,16,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,18,0, +18,0,18,0,18,0,18,0,17,0,17,0,18,0,18,0,18,0,17,0,18,0,18,0,18,0,18,0,18,0,18,0, +19,0,18,0,18,0,19,0,19,0,18,0,18,0,19,0,19,0,19,0,19,0,18,0,19,0,19,0,19,0,19,0, +19,0,19,0,19,0,18,0,19,0,20,0,20,0,19,0,19,0,19,0,19,0,20,0,20,0,19,0,19,0,19,0, +20,0,20,0,19,0,20,0,21,0,21,0,20,0,20,0,21,0,20,0,20,0,21,0,21,0,20,0,20,0,21,0, +21,0,20,0,21,0,21,0,21,0,21,0,22,0,21,0,21,0,21,0,22,0,22,0,21,0,20,0,22,0,23,0, +22,0,21,0,21,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0,22,0,23,0,23,0,22,0, +22,0,23,0,23,0,22,0,23,0,23,0,23,0,22,0,22,0,23,0,23,0,23,0,24,0,23,0,23,0,24,0, +24,0,24,0,24,0,23,0,24,0,24,0,24,0,23,0,24,0,24,0,24,0,24,0,24,0,24,0,25,0,25,0, +24,0,24,0,24,0,24,0,25,0,24,0,24,0,25,0,25,0,25,0,25,0,25,0,24,0,25,0,25,0,25,0, +25,0,25,0,24,0,25,0,26,0,26,0,26,0,26,0,26,0,25,0,25,0,25,0,26,0,26,0,26,0,26,0, +26,0,27,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,27,0,27,0,26,0,26,0,27,0,26,0, +27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,28,0,27,0,26,0,27,0,28,0,27,0,27,0, +28,0,27,0,27,0,28,0,28,0,28,0,27,0,28,0,28,0,28,0,29,0,29,0,28,0,28,0,29,0,28,0, +27,0,28,0,29,0,28,0,28,0,29,0,29,0,29,0,29,0,28,0,28,0,28,0,29,0,29,0,29,0,29,0, +29,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, +30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,31,0,30,0,30,0,30,0,30,0,30,0,31,0,31,0, +30,0,30,0,30,0,31,0,30,0,31,0,31,0,31,0,31,0,30,0,30,0,31,0,31,0,31,0,30,0,31,0, +31,0,31,0,31,0,31,0,31,0,31,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,31,0,32,0, +32,0,32,0,33,0,32,0,31,0,32,0,33,0,32,0,32,0,32,0,32,0,32,0,33,0,32,0,31,0,32,0, +33,0,33,0,33,0,33,0,32,0,32,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0, +33,0,33,0,33,0,33,0,33,0,33,0,34,0,33,0,33,0,33,0,33,0,33,0,34,0,33,0,33,0,34,0, +34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,33,0,34,0,34,0,34,0,34,0,34,0, +34,0,34,0,35,0,34,0,34,0,35,0,35,0,35,0,35,0,36,0,35,0,34,0,34,0,35,0,35,0,34,0, +35,0,35,0,35,0,35,0,35,0,34,0,35,0,35,0,35,0,35,0,36,0,36,0,35,0,35,0,36,0,35,0, +35,0,36,0,36,0,35,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0, +36,0,36,0,36,0,36,0,36,0,37,0,37,0,36,0,36,0,37,0,37,0,37,0,37,0,38,0,37,0,36,0, +36,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,38,0,37,0,37,0,36,0,37,0,38,0,37,0,37,0, +37,0,37,0,38,0,38,0,38,0,37,0,37,0,37,0,38,0,38,0,38,0,38,0,39,0,39,0,39,0,39,0, +39,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,39,0,39,0,39,0,39,0,38,0,38,0, +39,0,39,0,38,0,38,0,39,0,39,0,39,0,40,0,39,0,39,0,39,0,40,0,40,0,40,0,39,0,39,0, +39,0,40,0,40,0,39,0,39,0,39,0,40,0,40,0,40,0,40,0,40,0,39,0,39,0,41,0,41,0,40,0, +40,0,40,0,40,0,41,0,41,0,40,0,40,0,41,0,40,0,39,0,40,0,41,0,41,0,42,0,41,0,41,0, +41,0,41,0,40,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,42,0,41,0,40,0,41,0,42,0, +41,0,41,0,41,0,42,0,42,0,41,0,41,0,41,0,41,0,42,0,41,0,41,0,42,0,42,0,43,0,43,0, +42,0,42,0,42,0,43,0,43,0,42,0,42,0,42,0,43,0,42,0,42,0,43,0,43,0,42,0,43,0,43,0, +42,0,42,0,43,0,43,0,42,0,43,0,43,0,42,0,43,0,43,0,42,0,43,0,44,0,43,0,43,0,44,0, +43,0,43,0,44,0,43,0,43,0,44,0,43,0,43,0,43,0,43,0,43,0,44,0,43,0,43,0,44,0,45,0, +44,0,44,0,44,0,44,0,43,0,44,0,44,0,45,0,45,0,45,0,44,0,44,0,44,0,44,0,44,0,44,0, +43,0,44,0,45,0,45,0,44,0,44,0,44,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0, +46,0,46,0,45,0,45,0,45,0,45,0,45,0,46,0,45,0,44,0,45,0,45,0,45,0,45,0,45,0,45,0, +45,0,45,0,46,0,46,0,46,0,46,0,46,0,45,0,45,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0, +47,0,47,0,46,0,45,0,46,0,47,0,47,0,46,0,46,0,47,0,47,0,47,0,46,0,46,0,46,0,46,0, +47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,46,0,46,0,47,0,47,0,46,0,47,0,47,0, +47,0,47,0,48,0,48,0,47,0,47,0,47,0,47,0,47,0,47,0,48,0,48,0,47,0,47,0,48,0,47,0, +47,0,48,0,48,0,47,0,47,0,48,0,48,0,48,0,48,0,48,0,49,0,49,0,48,0,48,0,48,0,49,0, +49,0,48,0,48,0,48,0,48,0,48,0,49,0,49,0,48,0,48,0,48,0,48,0,49,0,49,0,49,0,49,0, +49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,50,0,50,0,48,0,49,0, +50,0,50,0,49,0,50,0,50,0,50,0,50,0,49,0,49,0,50,0,49,0,49,0,50,0,50,0,50,0,50,0, +50,0,50,0,50,0,51,0,50,0,50,0,50,0,50,0,50,0,51,0,51,0,50,0,51,0,51,0,50,0,50,0, +51,0,51,0,51,0,51,0,50,0,50,0,51,0,52,0,51,0,51,0,50,0,50,0,51,0,51,0,51,0,51,0, +51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,52,0,51,0,51,0,51,0, +51,0,52,0,52,0,51,0,52,0,51,0,51,0,51,0,52,0,52,0,52,0,52,0,52,0,52,0,51,0,51,0, +52,0,52,0,51,0,51,0,52,0,52,0,51,0,52,0,52,0,52,0,53,0,53,0,52,0,52,0,52,0,52,0, +52,0,53,0,52,0,51,0,52,0,52,0,52,0,52,0,53,0,52,0,52,0,52,0,52,0,52,0,53,0,52,0, +52,0,52,0,52,0,52,0,53,0,53,0,53,0,52,0,52,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0, +53,0,52,0,52,0,52,0,53,0,53,0,53,0,53,0,53,0,52,0,53,0,53,0,53,0,53,0,54,0,54,0, +53,0,53,0,54,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,52,0,52,0,52,0,52,0,53,0,53,0, +53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,54,0, +54,0,54,0,54,0,53,0,53,0,54,0,54,0,54,0,53,0,53,0,53,0,53,0,53,0,54,0,53,0,53,0, +52,0,53,0,54,0,53,0,53,0,54,0,54,0,53,0,53,0,53,0,53,0,53,0,53,0,54,0,53,0,53,0, +54,0,54,0,53,0,53,0,54,0,53,0,53,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0,53,0,53,0, +53,0,54,0,54,0,53,0,53,0,53,0,54,0,53,0,53,0,54,0,54,0,54,0,54,0,54,0,53,0,54,0, +53,0,53,0,53,0,54,0,54,0,54,0,54,0,54,0,53,0,53,0,53,0,54,0,54,0,53,0,53,0,54,0, +54,0,53,0,53,0,53,0,53,0,53,0,54,0,54,0,53,0,54,0,54,0,53,0,53,0,53,0,53,0,53,0, +54,0,54,0,54,0,53,0,53,0,54,0,54,0,53,0,53,0,54,0,53,0,53,0,54,0,54,0,54,0,53,0, +53,0,54,0,54,0,53,0,53,0,54,0,53,0,52,0,53,0,54,0,53,0,53,0,54,0,54,0,53,0,53,0, +53,0,54,0,54,0,54,0,53,0,53,0,54,0,53,0,53,0,53,0,53,0,54,0,54,0,53,0,53,0,54,0, +54,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,52,0,53,0,54,0,54,0,53,0,52,0,54,0,54,0, +53,0,52,0,53,0,54,0,54,0,53,0,52,0,53,0,54,0,54,0,53,0,53,0,54,0,53,0,53,0,53,0, +53,0,53,0,52,0,53,0,52,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,52,0, +52,0,52,0,52,0,53,0,52,0,52,0,53,0,54,0,53,0,53,0,53,0,53,0,52,0,52,0,52,0,53,0, +53,0,53,0,53,0,52,0,52,0,52,0,53,0,53,0,53,0,53,0,52,0,52,0,52,0,53,0,53,0,52,0, +53,0,52,0,52,0,53,0,52,0,52,0,52,0,53,0,52,0,52,0,52,0,52,0,52,0,53,0,53,0,52,0, +52,0,53,0,52,0,52,0,52,0,52,0,52,0,51,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0, +52,0,52,0,52,0,51,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0,52,0, +52,0,52,0,51,0,52,0,52,0,51,0,51,0,51,0,52,0,51,0,51,0,52,0,52,0,52,0,52,0,52,0, +51,0,51,0,51,0,52,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,50,0,51,0, +52,0,51,0,51,0,51,0,51,0,50,0,51,0,51,0,51,0,52,0,52,0,51,0,51,0,51,0,51,0,51,0, +51,0,50,0,50,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,50,0,51,0,50,0,50,0,51,0, +51,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0,50,0, +50,0,50,0,51,0,50,0,50,0,50,0,51,0,50,0,50,0,50,0,50,0,49,0,49,0,50,0,50,0,50,0, +50,0,50,0,50,0,50,0,50,0,50,0,49,0,49,0,50,0,49,0,50,0,50,0,50,0,49,0,49,0,50,0, +49,0,50,0,50,0,50,0,50,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0, +49,0,49,0,50,0,49,0,49,0,49,0,49,0,49,0,48,0,48,0,49,0,49,0,49,0,49,0,49,0,48,0, +48,0,48,0,48,0,48,0,49,0,49,0,49,0,49,0,49,0,48,0,48,0,49,0,48,0,48,0,48,0,48,0, +48,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, +47,0,47,0,47,0,47,0,47,0,48,0,48,0,48,0,48,0,47,0,47,0,47,0,47,0,47,0,48,0,47,0, +47,0,47,0,47,0,46,0,47,0,48,0,47,0,46,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0, +47,0,47,0,47,0,47,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,47,0,47,0,46,0,46,0,46,0, +46,0,46,0,46,0,46,0,47,0,46,0,46,0,45,0,45,0,46,0,45,0,45,0,45,0,46,0,46,0,45,0, +46,0,46,0,46,0,46,0,46,0,46,0,45,0,45,0,45,0,45,0,45,0,45,0,46,0,45,0,45,0,45,0, +45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,44,0,44,0,44,0,45,0,45,0,45,0, +44,0,44,0,44,0,44,0,44,0,44,0,45,0,45,0,44,0,44,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/wood4.pcm b/src/client/sound/data/wood4.pcm new file mode 100755 index 0000000..c012148 --- /dev/null +++ b/src/client/sound/data/wood4.pcm @@ -0,0 +1,1381 @@ +unsigned char PCM_wood4[44116] = { +1,0,0,0,2,0,0,0,68,172,0,0,34,86,0,0,246,255,20,0,7,0,251,255,12,0,30,0,15,0,225,255, +165,255,119,255,108,255,122,255,139,255,161,255,195,255,233,255,250,255,235,255,207,255,211,255,254,255,39,0,50,0,33,0, +1,0,232,255,239,255,9,0,26,0,37,0,36,0,251,255,189,255,149,255,123,255,112,255,135,255,166,255,178,255,214,255, +2,0,221,255,145,255,132,255,119,255,0,255,106,254,9,254,206,253,219,253,101,254,1,255,66,255,92,255,84,255,174,254, +144,253,223,252,246,252,99,253,195,253,15,254,145,254,219,255,80,2,142,6,197,13,9,23,119,29,252,28,134,23,73,18, +120,16,100,18,56,22,23,25,196,25,167,24,129,21,134,16,151,11,192,7,106,5,88,6,69,10,151,13,23,15,63,16, +6,16,182,13,49,13,252,16,251,21,168,24,116,24,109,22,58,20,187,17,25,13,37,8,154,6,220,5,132,0,67,248, +34,242,61,238,252,234,161,233,8,235,18,237,22,237,204,234,175,232,82,232,145,231,199,228,65,226,147,225,180,224,200,222, +236,221,142,222,197,221,78,217,120,210,8,204,200,198,183,194,243,193,141,197,181,201,79,202,218,199,115,196,48,193,6,192, +245,194,33,201,105,207,21,211,64,212,186,213,41,216,99,216,63,214,71,214,40,217,67,218,65,216,20,214,225,212,70,212, +49,213,94,216,123,221,135,227,179,231,189,231,240,229,219,229,16,231,160,231,138,231,246,230,231,229,232,229,117,231,60,232, +30,231,126,229,45,227,223,222,123,218,125,217,46,220,83,224,90,228,57,231,214,231,58,230,177,227,156,225,98,225,18,228, +226,232,126,237,77,240,26,241,54,240,105,238,54,237,221,237,71,240,95,243,218,245,221,246,38,247,155,248,68,251,59,253, +117,254,231,0,150,4,173,7,71,10,35,14,23,19,114,23,222,26,53,30,163,33,158,36,223,38,231,40,59,43,82,45, +134,46,77,47,223,47,149,47,0,47,210,47,208,49,228,50,103,50,154,49,64,49,221,48,214,47,71,46,236,44,42,44, +106,43,33,42,100,40,219,37,26,34,77,30,29,28,75,27,250,26,147,27,207,28,138,28,203,25,89,22,2,20,116,18, +151,16,110,14,199,12,172,11,33,10,83,7,137,3,203,255,174,252,171,249,34,246,175,242,127,240,156,239,78,239,95,239, +191,239,235,239,91,239,185,237,91,235,246,233,60,235,108,238,46,241,119,242,213,242,235,242,62,243,46,244,81,245,52,246, +57,247,92,248,194,248,97,248,89,248,70,249,95,250,180,250,99,250,38,250,49,250,252,249,65,249,210,248,124,249,133,250, +195,250,92,250,66,250,203,250,130,251,14,252,163,252,36,253,0,253,119,252,100,252,168,252,107,252,146,251,153,250,132,249, +237,247,231,245,249,243,105,242,36,241,40,240,202,239,78,240,35,241,72,241,174,240,19,240,166,239,43,239,244,238,149,239, +231,240,55,242,34,243,148,243,103,243,157,242,177,241,68,241,81,241,54,241,209,240,176,240,252,240,39,241,0,241,6,241, +129,241,24,242,128,242,228,242,133,243,74,244,204,244,247,244,68,245,241,245,178,246,106,247,97,248,138,249,93,250,210,250, +190,251,148,253,193,255,196,1,202,3,219,5,156,7,3,9,91,10,178,11,240,12,38,14,79,15,49,16,214,16,135,17, +87,18,19,19,112,19,66,19,194,18,127,18,174,18,222,18,228,18,73,19,27,20,173,20,203,20,234,20,82,21,243,21, +154,22,246,22,193,22,36,22,149,21,1,21,219,19,68,18,237,16,7,16,94,15,229,14,100,14,87,13,138,11,151,9, +73,8,199,7,184,7,169,7,82,7,219,6,116,6,238,5,75,5,245,4,46,5,206,5,151,6,116,7,96,8,60,9, +13,10,254,10,240,11,147,12,227,12,20,13,80,13,185,13,103,14,66,15,240,15,51,16,45,16,16,16,250,15,37,16, +187,16,119,17,8,18,131,18,7,19,133,19,14,20,192,20,139,21,98,22,88,23,97,24,83,25,23,26,192,26,111,27, +31,28,197,28,102,29,253,29,94,30,81,30,200,29,248,28,50,28,154,27,247,26,252,25,209,24,222,23,11,23,210,21, +8,20,17,18,76,16,188,14,69,13,214,11,107,10,28,9,242,7,188,6,88,5,198,3,9,2,89,0,19,255,74,254, +164,253,183,252,117,251,6,250,131,248,15,247,200,245,146,244,91,243,60,242,76,241,136,240,232,239,124,239,58,239,236,238, +185,238,16,239,221,239,198,240,185,241,197,242,231,243,10,245,27,246,58,247,125,248,185,249,209,250,241,251,68,253,166,254, +199,255,174,0,154,1,96,2,195,2,251,2,70,3,161,3,11,4,146,4,61,5,22,6,50,7,113,8,119,9,25,10, +129,10,209,10,243,10,229,10,236,10,79,11,220,11,5,12,119,11,80,10,211,8,41,7,156,5,157,4,74,4,50,4, +229,3,115,3,15,3,128,2,131,1,100,0,156,255,78,255,89,255,136,255,169,255,130,255,207,254,122,253,218,251,147,250, +39,250,99,250,126,250,248,249,0,249,230,247,200,246,208,245,93,245,172,245,149,246,212,247,47,249,72,250,223,250,32,251, +108,251,6,252,15,253,111,254,186,255,119,0,140,0,30,0,114,255,236,254,176,254,167,254,246,254,171,255,79,0,96,0, +223,255,82,255,65,255,210,255,209,0,217,1,150,2,4,3,21,3,145,2,162,1,178,0,231,255,56,255,156,254,5,254, +95,253,154,252,200,251,13,251,100,250,200,249,84,249,69,249,185,249,92,250,180,250,189,250,162,250,89,250,22,250,80,250, +16,251,205,251,48,252,94,252,91,252,242,251,93,251,5,251,229,250,243,250,99,251,15,252,119,252,125,252,85,252,36,252, +14,252,55,252,157,252,60,253,14,254,176,254,189,254,113,254,86,254,116,254,147,254,243,254,190,255,117,0,195,0,241,0, +35,1,66,1,133,1,27,2,179,2,253,2,33,3,85,3,127,3,149,3,196,3,14,4,86,4,168,4,25,5,174,5, +77,6,200,6,4,7,22,7,30,7,25,7,25,7,102,7,0,8,104,8,97,8,68,8,94,8,166,8,230,8,9,9, +50,9,111,9,150,9,137,9,112,9,120,9,125,9,68,9,201,8,8,8,250,6,232,5,10,5,54,4,57,3,27,2, +12,1,42,0,106,255,204,254,77,254,218,253,129,253,87,253,96,253,159,253,215,253,165,253,34,253,194,252,161,252,133,252, +54,252,201,251,91,251,215,250,67,250,166,249,191,248,130,247,122,246,10,246,236,245,187,245,112,245,48,245,6,245,234,244, +216,244,219,244,0,245,49,245,71,245,69,245,70,245,70,245,57,245,56,245,91,245,155,245,218,245,252,245,245,245,214,245, +176,245,111,245,23,245,226,244,8,245,135,245,41,246,181,246,24,247,81,247,116,247,178,247,69,248,52,249,23,250,122,250, +136,250,167,250,197,250,158,250,57,250,226,249,218,249,28,250,120,250,187,250,184,250,122,250,67,250,56,250,75,250,131,250, +241,250,126,251,247,251,75,252,113,252,93,252,60,252,63,252,70,252,47,252,11,252,214,251,121,251,10,251,180,250,104,250, +10,250,225,249,58,250,223,250,128,251,248,251,33,252,19,252,54,252,177,252,91,253,254,253,131,254,252,254,127,255,252,255, +72,0,91,0,150,0,70,1,25,2,179,2,38,3,141,3,219,3,40,4,174,4,115,5,51,6,195,6,62,7,171,7, +249,7,49,8,100,8,155,8,208,8,232,8,246,8,49,9,150,9,6,10,137,10,23,11,84,11,253,10,103,10,37,10, +66,10,76,10,14,10,159,9,0,9,33,8,31,7,20,6,22,5,82,4,205,3,93,3,245,2,153,2,71,2,2,2, +220,1,216,1,198,1,147,1,133,1,164,1,152,1,76,1,12,1,251,0,244,0,214,0,158,0,79,0,220,255,48,255, +80,254,118,253,252,252,227,252,208,252,141,252,52,252,229,251,149,251,75,251,58,251,105,251,164,251,226,251,27,252,19,252, +198,251,132,251,103,251,54,251,247,250,249,250,33,251,5,251,184,250,143,250,125,250,97,250,59,250,5,250,209,249,182,249, +156,249,105,249,79,249,143,249,202,249,123,249,239,248,165,248,112,248,10,248,151,247,79,247,41,247,250,246,212,246,228,246, +7,247,17,247,34,247,79,247,108,247,66,247,215,246,117,246,90,246,96,246,57,246,248,245,225,245,210,245,127,245,24,245, +28,245,129,245,208,245,248,245,62,246,152,246,227,246,63,247,177,247,4,248,39,248,85,248,195,248,107,249,34,250,197,250, +63,251,127,251,127,251,81,251,33,251,44,251,123,251,229,251,58,252,104,252,135,252,174,252,195,252,190,252,199,252,250,252, +100,253,3,254,195,254,158,255,116,0,16,1,139,1,38,2,0,3,16,4,59,5,98,6,115,7,135,8,229,9,173,11, +240,13,19,17,92,21,109,26,168,31,112,36,224,39,31,41,84,40,174,38,70,37,43,36,153,34,1,32,177,28,31,25, +255,20,220,15,33,10,188,4,64,0,224,252,166,250,41,249,154,247,186,245,52,244,120,243,52,243,6,243,203,242,144,242, +190,242,182,243,102,245,157,247,72,250,107,253,229,0,112,4,216,7,239,10,155,13,241,15,239,17,102,19,63,20,118,20, +31,20,110,19,144,18,152,17,139,16,104,15,67,14,50,13,88,12,216,11,146,11,73,11,251,10,211,10,207,10,150,10, +163,9,161,7,190,4,198,1,156,255,131,254,223,253,196,252,0,251,56,249,231,247,26,247,237,246,154,247,6,249,168,250, +53,252,196,253,248,254,59,255,210,254,119,254,97,254,104,254,104,254,73,254,219,253,240,252,145,251,1,250,128,248,7,247, +93,245,136,243,207,241,33,240,60,238,54,236,53,234,30,232,26,230,177,228,233,227,36,227,25,226,10,225,2,224,230,222, +229,221,34,221,126,220,242,219,134,219,76,219,127,219,35,220,237,220,201,221,228,222,37,224,56,225,19,226,235,226,213,227, +202,228,206,229,207,230,193,231,196,232,254,233,94,235,163,236,181,237,176,238,171,239,203,240,55,242,203,243,64,245,150,246, +230,247,16,249,236,249,154,250,64,251,191,251,8,252,87,252,191,252,243,252,209,252,153,252,117,252,113,252,176,252,62,253, +240,253,140,254,224,254,5,255,84,255,226,255,90,0,128,0,143,0,214,0,50,1,114,1,219,1,143,2,49,3,137,3, +209,3,55,4,174,4,56,5,247,5,242,6,4,8,28,9,79,10,159,11,251,12,85,14,135,15,115,16,48,17,212,17, +107,18,2,19,152,19,19,20,90,20,147,20,235,20,57,21,100,21,163,21,248,21,47,22,75,22,128,22,241,22,119,23, +226,23,80,24,228,24,136,25,54,26,7,27,5,28,5,29,249,29,3,31,21,32,3,33,212,33,144,34,37,35,153,35, +8,36,106,36,140,36,97,36,6,36,141,35,27,35,221,34,160,34,1,34,249,32,211,31,182,30,147,29,89,28,5,27, +147,25,242,23,36,22,101,20,228,18,132,17,25,16,190,14,174,13,199,12,167,11,100,10,111,9,203,8,26,8,62,7, +107,6,187,5,19,5,126,4,41,4,16,4,233,3,139,3,49,3,254,2,196,2,136,2,131,2,163,2,170,2,141,2, +108,2,94,2,116,2,176,2,220,2,189,2,88,2,215,1,105,1,45,1,8,1,228,0,210,0,195,0,151,0,73,0, +239,255,174,255,125,255,56,255,223,254,113,254,21,254,21,254,117,254,5,255,154,255,16,0,105,0,193,0,27,1,132,1, +0,2,118,2,225,2,78,3,195,3,31,4,38,4,216,3,126,3,48,3,206,2,89,2,195,1,1,1,77,0,204,255, +80,255,178,254,26,254,181,253,97,253,0,253,183,252,154,252,118,252,21,252,158,251,103,251,105,251,115,251,159,251,17,252, +180,252,113,253,73,254,48,255,228,255,24,0,227,255,179,255,189,255,203,255,166,255,82,255,174,254,150,253,101,252,129,251, +213,250,29,250,109,249,35,249,71,249,98,249,50,249,249,248,244,248,245,248,205,248,185,248,233,248,37,249,72,249,97,249, +136,249,208,249,66,250,218,250,141,251,99,252,119,253,137,254,69,255,224,255,168,0,140,1,108,2,88,3,82,4,19,5, +84,5,56,5,7,5,220,4,176,4,110,4,13,4,136,3,213,2,251,1,11,1,20,0,28,255,37,254,74,253,167,252, +22,252,104,251,158,250,223,249,75,249,229,248,166,248,126,248,102,248,125,248,217,248,60,249,117,249,212,249,182,250,246,251, +117,253,88,255,57,1,105,2,244,2,63,3,86,3,50,3,235,2,168,2,133,2,110,2,54,2,214,1,94,1,211,0, +55,0,169,255,78,255,22,255,239,254,239,254,10,255,254,254,178,254,80,254,217,253,35,253,52,252,82,251,190,250,177,250, +51,251,212,251,10,252,225,251,190,251,184,251,205,251,7,252,61,252,54,252,234,251,98,251,169,250,250,249,140,249,80,249, +7,249,139,248,225,247,5,247,245,245,243,244,68,244,197,243,64,243,182,242,49,242,163,241,239,240,42,240,146,239,58,239, +13,239,222,238,136,238,62,238,63,238,130,238,208,238,233,238,243,238,74,239,200,239,25,240,45,240,27,240,30,240,100,240, +219,240,74,241,134,241,182,241,40,242,223,242,176,243,81,244,138,244,148,244,194,244,21,245,134,245,22,246,174,246,31,247, +95,247,163,247,0,248,101,248,236,248,156,249,87,250,252,250,112,251,207,251,85,252,10,253,202,253,119,254,29,255,187,255, +26,0,55,0,113,0,254,0,194,1,159,2,97,3,200,3,234,3,33,4,136,4,239,4,53,5,92,5,124,5,165,5, +202,5,211,5,181,5,132,5,84,5,26,5,227,4,217,4,11,5,117,5,1,6,103,6,120,6,84,6,66,6,100,6, +159,6,198,6,206,6,190,6,161,6,160,6,204,6,240,6,239,6,247,6,33,7,71,7,84,7,94,7,87,7,32,7, +237,6,26,7,126,7,207,7,38,8,140,8,184,8,162,8,135,8,111,8,58,8,249,7,220,7,230,7,253,7,17,8, +4,8,194,7,123,7,97,7,97,7,99,7,114,7,140,7,177,7,234,7,27,8,30,8,4,8,18,8,81,8,116,8, +125,8,172,8,226,8,235,8,218,8,198,8,155,8,73,8,20,8,50,8,63,8,219,7,73,7,198,6,55,6,132,5, +215,4,108,4,46,4,241,3,197,3,177,3,134,3,51,3,238,2,234,2,12,3,28,3,15,3,247,2,244,2,10,3, +25,3,46,3,101,3,173,3,216,3,200,3,157,3,128,3,97,3,45,3,244,2,226,2,9,3,47,3,34,3,242,2, +171,2,84,2,23,2,253,1,193,1,66,1,205,0,166,0,197,0,25,1,124,1,160,1,123,1,71,1,34,1,1,1, +236,0,239,0,252,0,31,1,123,1,231,1,59,2,161,2,7,3,21,3,197,2,115,2,97,2,124,2,153,2,176,2, +207,2,250,2,54,3,115,3,156,3,172,3,156,3,96,3,42,3,36,3,29,3,5,3,49,3,187,3,67,4,120,4, +120,4,128,4,148,4,190,4,21,5,119,5,186,5,228,5,7,6,41,6,52,6,20,6,229,5,202,5,210,5,234,5, +253,5,45,6,124,6,149,6,93,6,44,6,51,6,71,6,89,6,142,6,197,6,175,6,89,6,15,6,220,5,150,5, +62,5,9,5,246,4,209,4,164,4,144,4,99,4,227,3,65,3,202,2,120,2,61,2,72,2,146,2,196,2,162,2, +66,2,242,1,228,1,240,1,238,1,251,1,30,2,57,2,78,2,133,2,236,2,97,3,170,3,203,3,5,4,73,4, +97,4,101,4,126,4,163,4,183,4,176,4,163,4,156,4,163,4,211,4,32,5,91,5,128,5,158,5,176,5,195,5, +11,6,138,6,224,6,245,6,15,7,39,7,3,7,187,6,123,6,58,6,233,5,178,5,182,5,186,5,125,5,3,5, +91,4,165,3,31,3,229,2,223,2,218,2,173,2,96,2,20,2,223,1,173,1,89,1,233,0,129,0,52,0,253,255, +192,255,109,255,27,255,244,254,1,255,45,255,87,255,91,255,68,255,62,255,73,255,88,255,119,255,160,255,187,255,182,255, +167,255,170,255,150,255,90,255,61,255,73,255,66,255,47,255,41,255,43,255,41,255,33,255,16,255,240,254,238,254,30,255, +53,255,19,255,241,254,233,254,228,254,195,254,143,254,117,254,117,254,130,254,150,254,137,254,81,254,23,254,237,253,214,253, +215,253,214,253,181,253,131,253,85,253,24,253,204,252,152,252,115,252,50,252,221,251,143,251,69,251,239,250,160,250,130,250, +148,250,168,250,187,250,247,250,103,251,218,251,21,252,35,252,58,252,91,252,106,252,117,252,139,252,162,252,177,252,163,252, +96,252,250,251,153,251,86,251,48,251,39,251,57,251,82,251,91,251,81,251,57,251,37,251,15,251,244,250,229,250,235,250, +14,251,90,251,172,251,240,251,44,252,69,252,44,252,4,252,242,251,239,251,202,251,132,251,99,251,99,251,69,251,253,250, +168,250,86,250,28,250,20,250,42,250,40,250,5,250,211,249,145,249,80,249,20,249,191,248,78,248,228,247,167,247,149,247, +131,247,79,247,239,246,125,246,36,246,236,245,199,245,162,245,121,245,104,245,109,245,104,245,93,245,80,245,64,245,54,245, +49,245,62,245,100,245,126,245,129,245,150,245,228,245,96,246,206,246,17,247,58,247,87,247,129,247,193,247,255,247,33,248, +42,248,31,248,240,247,170,247,133,247,136,247,144,247,170,247,224,247,31,248,107,248,194,248,14,249,76,249,145,249,222,249, +35,250,92,250,162,250,0,251,91,251,156,251,222,251,57,252,138,252,185,252,243,252,69,253,139,253,201,253,41,254,147,254, +198,254,225,254,31,255,71,255,29,255,228,254,229,254,241,254,207,254,179,254,200,254,206,254,170,254,157,254,176,254,175,254, +146,254,115,254,91,254,58,254,27,254,36,254,73,254,80,254,69,254,81,254,96,254,80,254,41,254,14,254,14,254,2,254, +219,253,180,253,153,253,152,253,175,253,185,253,178,253,167,253,161,253,188,253,247,253,52,254,104,254,124,254,124,254,154,254, +215,254,32,255,113,255,193,255,7,0,60,0,105,0,135,0,143,0,174,0,249,0,71,1,122,1,145,1,153,1,155,1, +144,1,150,1,200,1,255,1,18,2,252,1,210,1,163,1,112,1,83,1,80,1,67,1,55,1,60,1,59,1,46,1, +11,1,207,0,147,0,105,0,110,0,165,0,226,0,13,1,26,1,248,0,176,0,97,0,32,0,253,255,249,255,251,255, +218,255,155,255,89,255,18,255,186,254,86,254,245,253,185,253,179,253,196,253,196,253,159,253,94,253,20,253,228,252,236,252, +36,253,101,253,145,253,165,253,161,253,126,253,67,253,254,252,182,252,146,252,168,252,191,252,181,252,174,252,195,252,211,252, +191,252,164,252,180,252,229,252,20,253,57,253,98,253,143,253,172,253,176,253,161,253,120,253,70,253,54,253,65,253,58,253, +12,253,211,252,178,252,169,252,183,252,233,252,37,253,82,253,129,253,176,253,213,253,11,254,64,254,91,254,137,254,221,254, +42,255,93,255,130,255,176,255,215,255,209,255,192,255,201,255,208,255,218,255,248,255,20,0,29,0,15,0,253,255,239,255, +206,255,163,255,144,255,131,255,106,255,77,255,63,255,74,255,69,255,30,255,2,255,1,255,4,255,249,254,245,254,6,255, +18,255,10,255,0,255,1,255,22,255,60,255,109,255,161,255,199,255,227,255,244,255,249,255,35,0,136,0,230,0,11,1, +10,1,255,0,232,0,206,0,212,0,221,0,167,0,82,0,45,0,60,0,60,0,4,0,194,255,143,255,60,255,214,254, +149,254,100,254,33,254,222,253,173,253,139,253,111,253,71,253,11,253,214,252,188,252,176,252,182,252,210,252,221,252,206,252, +173,252,110,252,26,252,227,251,231,251,17,252,46,252,62,252,74,252,50,252,249,251,205,251,185,251,179,251,189,251,204,251, +220,251,252,251,29,252,19,252,237,251,232,251,255,251,236,251,167,251,119,251,126,251,148,251,162,251,163,251,145,251,134,251, +146,251,168,251,209,251,15,252,69,252,106,252,129,252,140,252,161,252,203,252,1,253,55,253,105,253,167,253,252,253,89,254, +181,254,21,255,124,255,225,255,47,0,102,0,150,0,177,0,170,0,164,0,180,0,208,0,234,0,252,0,17,1,28,1, +7,1,250,0,30,1,69,1,90,1,139,1,213,1,14,2,72,2,160,2,244,2,21,3,14,3,12,3,39,3,86,3, +128,3,172,3,234,3,54,4,116,4,156,4,190,4,223,4,240,4,253,4,30,5,73,5,94,5,87,5,91,5,137,5, +204,5,1,6,16,6,254,5,242,5,0,6,19,6,39,6,63,6,74,6,74,6,89,6,116,6,124,6,96,6,44,6, +242,5,187,5,149,5,142,5,152,5,145,5,119,5,94,5,58,5,8,5,246,4,16,5,30,5,250,4,187,4,130,4, +74,4,12,4,226,3,217,3,215,3,190,3,132,3,80,3,67,3,51,3,244,2,176,2,153,2,142,2,99,2,43,2, +1,2,210,1,148,1,93,1,45,1,247,0,191,0,140,0,105,0,97,0,75,0,251,255,152,255,88,255,44,255,245,254, +186,254,142,254,91,254,15,254,211,253,180,253,135,253,91,253,81,253,66,253,34,253,19,253,250,252,172,252,68,252,253,251, +236,251,1,252,19,252,254,251,204,251,172,251,176,251,192,251,205,251,223,251,249,251,16,252,33,252,55,252,79,252,90,252, +89,252,83,252,86,252,114,252,138,252,137,252,148,252,174,252,188,252,204,252,241,252,28,253,80,253,151,253,227,253,29,254, +72,254,117,254,155,254,179,254,211,254,255,254,33,255,58,255,80,255,84,255,72,255,88,255,121,255,125,255,107,255,80,255, +50,255,40,255,45,255,44,255,44,255,46,255,49,255,59,255,73,255,78,255,71,255,66,255,84,255,115,255,132,255,136,255, +145,255,157,255,177,255,224,255,23,0,68,0,114,0,164,0,207,0,255,0,64,1,147,1,228,1,40,2,124,2,215,2, +22,3,85,3,167,3,233,3,23,4,70,4,136,4,218,4,30,5,74,5,106,5,132,5,156,5,166,5,157,5,157,5, +187,5,229,5,247,5,245,5,2,6,14,6,12,6,17,6,29,6,42,6,61,6,75,6,76,6,54,6,10,6,226,5, +196,5,167,5,140,5,115,5,110,5,124,5,136,5,144,5,159,5,186,5,209,5,207,5,209,5,227,5,216,5,186,5, +172,5,163,5,157,5,157,5,140,5,102,5,66,5,32,5,241,4,177,4,121,4,84,4,46,4,10,4,240,3,198,3, +141,3,107,3,101,3,115,3,158,3,205,3,244,3,45,4,82,4,63,4,41,4,50,4,53,4,40,4,46,4,85,4, +113,4,97,4,67,4,40,4,248,3,195,3,170,3,156,3,137,3,120,3,95,3,56,3,5,3,197,2,137,2,91,2, +26,2,196,1,125,1,60,1,227,0,124,0,22,0,176,255,76,255,2,255,217,254,183,254,136,254,88,254,30,254,216,253, +169,253,145,253,114,253,78,253,49,253,15,253,232,252,209,252,207,252,211,252,205,252,224,252,18,253,24,253,231,252,202,252, +213,252,230,252,236,252,238,252,5,253,56,253,94,253,94,253,82,253,100,253,149,253,189,253,215,253,247,253,45,254,112,254, +162,254,195,254,245,254,70,255,145,255,172,255,178,255,229,255,56,0,124,0,183,0,236,0,18,1,49,1,86,1,145,1, +231,1,76,2,174,2,3,3,77,3,121,3,122,3,123,3,156,3,196,3,221,3,228,3,238,3,19,4,57,4,57,4, +26,4,0,4,255,3,14,4,44,4,89,4,129,4,160,4,179,4,172,4,159,4,164,4,170,4,168,4,188,4,242,4, +42,5,73,5,95,5,111,5,104,5,88,5,86,5,111,5,149,5,157,5,135,5,122,5,125,5,124,5,114,5,111,5, +118,5,103,5,69,5,59,5,55,5,11,5,192,4,134,4,122,4,139,4,146,4,134,4,112,4,89,4,62,4,21,4, +234,3,199,3,166,3,141,3,128,3,114,3,94,3,70,3,42,3,38,3,56,3,34,3,225,2,192,2,206,2,205,2, +156,2,111,2,115,2,128,2,110,2,77,2,52,2,27,2,238,1,175,1,120,1,69,1,20,1,249,0,226,0,183,0, +150,0,132,0,117,0,114,0,107,0,89,0,91,0,117,0,147,0,164,0,144,0,98,0,66,0,54,0,42,0,21,0, +254,255,238,255,224,255,196,255,150,255,90,255,33,255,6,255,251,254,218,254,178,254,167,254,159,254,127,254,99,254,105,254, +115,254,91,254,47,254,22,254,27,254,50,254,68,254,73,254,70,254,62,254,55,254,48,254,53,254,79,254,103,254,124,254, +157,254,185,254,209,254,231,254,228,254,225,254,1,255,44,255,83,255,109,255,116,255,124,255,136,255,144,255,150,255,150,255, +153,255,165,255,175,255,202,255,251,255,33,0,61,0,80,0,81,0,79,0,87,0,102,0,123,0,141,0,153,0,165,0, +178,0,188,0,199,0,203,0,186,0,167,0,165,0,172,0,191,0,222,0,248,0,10,1,15,1,3,1,251,0,251,0, +252,0,252,0,245,0,235,0,235,0,227,0,203,0,181,0,171,0,172,0,170,0,167,0,179,0,196,0,197,0,186,0, +179,0,186,0,196,0,196,0,194,0,210,0,238,0,5,1,21,1,38,1,58,1,78,1,102,1,129,1,160,1,179,1, +168,1,148,1,158,1,191,1,207,1,188,1,154,1,131,1,120,1,117,1,113,1,81,1,26,1,246,0,241,0,246,0, +249,0,251,0,2,1,14,1,8,1,238,0,224,0,237,0,3,1,11,1,249,0,230,0,236,0,245,0,229,0,209,0, +202,0,196,0,194,0,212,0,252,0,29,1,18,1,237,0,228,0,253,0,15,1,15,1,12,1,11,1,3,1,243,0, +233,0,228,0,215,0,197,0,181,0,173,0,164,0,137,0,97,0,44,0,235,255,188,255,177,255,192,255,219,255,237,255, +229,255,210,255,190,255,173,255,172,255,186,255,186,255,159,255,141,255,154,255,163,255,130,255,73,255,26,255,9,255,2,255, +237,254,203,254,175,254,161,254,151,254,137,254,121,254,96,254,76,254,81,254,94,254,109,254,133,254,140,254,122,254,99,254, +91,254,111,254,137,254,148,254,150,254,154,254,166,254,175,254,174,254,168,254,161,254,176,254,230,254,23,255,42,255,45,255, +35,255,24,255,6,255,230,254,228,254,255,254,255,254,217,254,174,254,170,254,207,254,220,254,179,254,125,254,98,254,104,254, +114,254,101,254,68,254,32,254,20,254,42,254,61,254,47,254,22,254,3,254,3,254,18,254,19,254,4,254,254,253,251,253, +247,253,3,254,11,254,252,253,239,253,2,254,46,254,86,254,101,254,103,254,121,254,162,254,196,254,199,254,207,254,241,254, +19,255,40,255,42,255,29,255,35,255,64,255,90,255,99,255,86,255,76,255,87,255,97,255,99,255,101,255,114,255,148,255, +180,255,194,255,193,255,177,255,169,255,182,255,189,255,185,255,186,255,195,255,211,255,215,255,196,255,177,255,162,255,149,255, +153,255,176,255,195,255,202,255,210,255,223,255,226,255,205,255,175,255,164,255,174,255,189,255,205,255,219,255,225,255,228,255, +238,255,5,0,38,0,67,0,93,0,110,0,112,0,122,0,146,0,164,0,180,0,200,0,215,0,226,0,219,0,197,0, +193,0,211,0,217,0,194,0,159,0,132,0,126,0,127,0,117,0,110,0,128,0,138,0,121,0,116,0,133,0,140,0, +127,0,111,0,110,0,122,0,122,0,104,0,91,0,94,0,110,0,135,0,165,0,205,0,232,0,227,0,223,0,242,0, +254,0,245,0,225,0,202,0,192,0,191,0,187,0,190,0,198,0,192,0,170,0,153,0,151,0,154,0,147,0,137,0, +127,0,121,0,125,0,132,0,137,0,144,0,151,0,154,0,152,0,156,0,166,0,169,0,175,0,189,0,192,0,171,0, +138,0,122,0,139,0,158,0,142,0,98,0,51,0,19,0,251,255,229,255,209,255,192,255,188,255,191,255,178,255,156,255, +136,255,110,255,81,255,56,255,38,255,28,255,16,255,0,255,239,254,226,254,218,254,196,254,164,254,142,254,112,254,69,254, +33,254,14,254,2,254,247,253,247,253,253,253,241,253,217,253,197,253,192,253,220,253,255,253,17,254,38,254,56,254,50,254, +36,254,38,254,61,254,79,254,77,254,74,254,85,254,107,254,129,254,131,254,123,254,115,254,104,254,96,254,87,254,87,254, +88,254,69,254,38,254,15,254,255,253,239,253,211,253,173,253,143,253,115,253,96,253,81,253,38,253,243,252,220,252,206,252, +177,252,145,252,120,252,97,252,68,252,41,252,26,252,19,252,4,252,235,251,209,251,180,251,155,251,160,251,178,251,188,251, +199,251,202,251,214,251,245,251,6,252,9,252,29,252,65,252,109,252,140,252,143,252,138,252,147,252,165,252,175,252,180,252, +205,252,248,252,33,253,63,253,82,253,113,253,152,253,173,253,185,253,201,253,224,253,13,254,59,254,83,254,108,254,126,254, +135,254,159,254,189,254,210,254,223,254,224,254,229,254,248,254,11,255,27,255,37,255,31,255,28,255,38,255,47,255,53,255, +53,255,55,255,73,255,80,255,57,255,30,255,18,255,14,255,4,255,242,254,220,254,207,254,216,254,242,254,10,255,28,255, +46,255,62,255,81,255,90,255,82,255,88,255,113,255,128,255,117,255,91,255,87,255,106,255,98,255,66,255,59,255,83,255, +109,255,111,255,115,255,157,255,200,255,209,255,205,255,215,255,240,255,5,0,10,0,12,0,26,0,48,0,60,0,60,0, +72,0,86,0,81,0,77,0,95,0,124,0,137,0,123,0,104,0,79,0,54,0,62,0,82,0,85,0,84,0,74,0, +51,0,29,0,5,0,228,255,189,255,153,255,126,255,103,255,78,255,42,255,243,254,193,254,165,254,152,254,145,254,134,254, +126,254,127,254,123,254,117,254,120,254,134,254,158,254,172,254,163,254,155,254,168,254,201,254,231,254,242,254,239,254,234,254, +240,254,8,255,31,255,44,255,56,255,74,255,94,255,106,255,108,255,112,255,124,255,142,255,158,255,168,255,170,255,173,255, +187,255,196,255,183,255,167,255,166,255,167,255,148,255,114,255,92,255,99,255,125,255,147,255,153,255,162,255,179,255,183,255, +182,255,185,255,181,255,171,255,157,255,148,255,143,255,123,255,94,255,62,255,26,255,12,255,2,255,225,254,196,254,173,254, +150,254,147,254,143,254,141,254,164,254,180,254,181,254,193,254,218,254,250,254,21,255,34,255,43,255,47,255,32,255,248,254, +203,254,188,254,194,254,201,254,207,254,212,254,222,254,225,254,204,254,185,254,192,254,209,254,228,254,242,254,3,255,30,255, +43,255,32,255,23,255,18,255,5,255,242,254,230,254,231,254,240,254,241,254,228,254,215,254,216,254,218,254,205,254,187,254, +190,254,223,254,8,255,35,255,46,255,43,255,47,255,66,255,90,255,127,255,170,255,189,255,195,255,208,255,208,255,189,255, +175,255,185,255,213,255,239,255,3,0,25,0,45,0,54,0,45,0,24,0,17,0,45,0,73,0,70,0,56,0,55,0, +55,0,53,0,56,0,63,0,72,0,69,0,49,0,21,0,5,0,7,0,14,0,25,0,35,0,28,0,20,0,18,0, +13,0,11,0,16,0,36,0,68,0,71,0,52,0,47,0,35,0,14,0,7,0,255,255,250,255,3,0,9,0,15,0, +24,0,28,0,28,0,37,0,61,0,79,0,79,0,86,0,109,0,127,0,129,0,124,0,132,0,151,0,154,0,135,0, +112,0,98,0,91,0,84,0,75,0,70,0,70,0,66,0,65,0,75,0,94,0,112,0,135,0,157,0,166,0,169,0, +176,0,178,0,172,0,166,0,158,0,140,0,118,0,99,0,82,0,74,0,75,0,75,0,65,0,38,0,16,0,29,0, +60,0,70,0,53,0,33,0,39,0,67,0,86,0,93,0,93,0,96,0,103,0,111,0,124,0,135,0,126,0,105,0, +92,0,96,0,111,0,115,0,104,0,96,0,96,0,104,0,116,0,117,0,114,0,121,0,134,0,149,0,161,0,169,0, +179,0,180,0,158,0,137,0,131,0,123,0,108,0,82,0,42,0,11,0,1,0,247,255,230,255,221,255,212,255,193,255, +174,255,167,255,169,255,166,255,164,255,156,255,136,255,122,255,115,255,100,255,79,255,58,255,27,255,253,254,240,254,233,254, +219,254,207,254,206,254,214,254,223,254,223,254,217,254,219,254,226,254,228,254,227,254,241,254,14,255,29,255,23,255,22,255, +34,255,32,255,16,255,255,254,234,254,215,254,211,254,213,254,226,254,249,254,3,255,0,255,18,255,62,255,106,255,133,255, +134,255,135,255,158,255,178,255,188,255,201,255,212,255,214,255,211,255,203,255,197,255,197,255,195,255,185,255,169,255,167,255, +181,255,182,255,170,255,165,255,166,255,155,255,133,255,115,255,114,255,126,255,142,255,151,255,140,255,117,255,93,255,75,255, +60,255,26,255,228,254,186,254,163,254,154,254,152,254,135,254,101,254,84,254,85,254,76,254,61,254,52,254,53,254,58,254, +49,254,37,254,31,254,20,254,16,254,25,254,27,254,31,254,46,254,49,254,47,254,54,254,59,254,75,254,109,254,142,254, +174,254,198,254,209,254,237,254,11,255,16,255,19,255,23,255,18,255,14,255,16,255,26,255,39,255,35,255,14,255,253,254, +249,254,251,254,240,254,219,254,204,254,193,254,183,254,167,254,137,254,113,254,100,254,84,254,68,254,48,254,25,254,18,254, +16,254,8,254,0,254,236,253,210,253,197,253,194,253,207,253,230,253,253,253,28,254,56,254,70,254,80,254,81,254,80,254, +98,254,118,254,127,254,132,254,134,254,140,254,153,254,166,254,166,254,148,254,134,254,138,254,144,254,146,254,150,254,162,254, +187,254,218,254,248,254,19,255,42,255,72,255,106,255,121,255,130,255,150,255,165,255,173,255,178,255,176,255,187,255,213,255, +233,255,245,255,9,0,43,0,77,0,93,0,93,0,98,0,118,0,137,0,153,0,182,0,211,0,227,0,239,0,1,1, +22,1,41,1,34,1,14,1,14,1,24,1,24,1,15,1,5,1,6,1,2,1,238,0,230,0,239,0,252,0,22,1, +50,1,73,1,95,1,109,1,126,1,139,1,126,1,103,1,93,1,98,1,110,1,96,1,70,1,66,1,64,1,57,1, +49,1,27,1,7,1,252,0,246,0,5,1,26,1,24,1,13,1,8,1,8,1,7,1,254,0,250,0,251,0,246,0, +245,0,248,0,250,0,248,0,232,0,212,0,202,0,189,0,170,0,151,0,137,0,127,0,117,0,96,0,73,0,66,0, +75,0,83,0,90,0,91,0,73,0,55,0,49,0,43,0,41,0,50,0,58,0,64,0,66,0,64,0,64,0,61,0, +56,0,57,0,52,0,39,0,38,0,47,0,46,0,40,0,36,0,31,0,16,0,247,255,230,255,232,255,239,255,234,255, +218,255,206,255,207,255,207,255,204,255,205,255,204,255,197,255,190,255,180,255,173,255,169,255,158,255,147,255,152,255,170,255, +189,255,192,255,183,255,183,255,195,255,207,255,219,255,242,255,16,0,44,0,77,0,109,0,126,0,139,0,145,0,143,0, +148,0,158,0,161,0,161,0,167,0,181,0,197,0,202,0,195,0,194,0,212,0,240,0,5,1,20,1,33,1,51,1, +67,1,63,1,50,1,43,1,37,1,35,1,24,1,4,1,9,1,29,1,31,1,12,1,245,0,237,0,243,0,247,0, +240,0,232,0,240,0,253,0,239,0,205,0,167,0,137,0,135,0,133,0,117,0,106,0,94,0,78,0,63,0,35,0, +6,0,237,255,210,255,213,255,233,255,227,255,198,255,166,255,141,255,122,255,96,255,75,255,76,255,82,255,83,255,74,255, +57,255,50,255,69,255,103,255,128,255,127,255,106,255,84,255,80,255,89,255,87,255,74,255,66,255,76,255,99,255,122,255, +142,255,157,255,157,255,159,255,178,255,200,255,218,255,230,255,233,255,238,255,252,255,5,0,18,0,48,0,73,0,70,0, +57,0,56,0,67,0,74,0,76,0,85,0,107,0,138,0,161,0,165,0,181,0,213,0,228,0,230,0,237,0,249,0, +13,1,22,1,10,1,1,1,4,1,23,1,39,1,15,1,241,0,238,0,235,0,236,0,241,0,232,0,225,0,234,0, +244,0,253,0,248,0,233,0,218,0,204,0,196,0,193,0,182,0,167,0,155,0,154,0,157,0,156,0,157,0,153,0, +140,0,131,0,124,0,127,0,138,0,137,0,132,0,126,0,103,0,86,0,86,0,85,0,80,0,69,0,54,0,53,0, +55,0,51,0,52,0,59,0,56,0,50,0,62,0,93,0,119,0,136,0,141,0,124,0,104,0,92,0,86,0,83,0, +74,0,49,0,28,0,28,0,32,0,30,0,33,0,47,0,63,0,72,0,78,0,89,0,92,0,85,0,85,0,91,0, +102,0,119,0,124,0,135,0,162,0,169,0,156,0,147,0,136,0,136,0,139,0,119,0,105,0,102,0,96,0,102,0, +108,0,92,0,73,0,47,0,17,0,6,0,1,0,241,255,222,255,212,255,212,255,222,255,234,255,227,255,200,255,183,255, +176,255,165,255,164,255,164,255,157,255,170,255,188,255,196,255,206,255,206,255,203,255,211,255,211,255,209,255,226,255,247,255, +15,0,39,0,52,0,74,0,90,0,88,0,100,0,120,0,128,0,139,0,142,0,131,0,118,0,95,0,75,0,72,0, +67,0,64,0,78,0,95,0,109,0,106,0,89,0,84,0,81,0,67,0,50,0,40,0,49,0,73,0,90,0,86,0, +63,0,48,0,55,0,59,0,56,0,50,0,36,0,22,0,16,0,15,0,12,0,2,0,253,255,250,255,239,255,222,255, +206,255,205,255,214,255,204,255,180,255,162,255,144,255,119,255,99,255,89,255,86,255,82,255,79,255,77,255,79,255,90,255, +88,255,82,255,105,255,128,255,129,255,128,255,133,255,146,255,159,255,152,255,144,255,151,255,162,255,173,255,187,255,201,255, +209,255,204,255,201,255,214,255,239,255,6,0,21,0,35,0,35,0,28,0,34,0,43,0,57,0,89,0,116,0,128,0, +133,0,128,0,131,0,137,0,136,0,143,0,155,0,160,0,152,0,140,0,138,0,139,0,134,0,131,0,126,0,122,0, +120,0,109,0,95,0,92,0,92,0,89,0,84,0,85,0,93,0,107,0,126,0,139,0,141,0,144,0,150,0,161,0, +169,0,156,0,138,0,133,0,135,0,141,0,139,0,125,0,119,0,122,0,120,0,107,0,93,0,91,0,101,0,115,0, +115,0,96,0,87,0,91,0,97,0,108,0,111,0,111,0,119,0,118,0,108,0,103,0,109,0,128,0,144,0,147,0, +151,0,160,0,168,0,162,0,151,0,161,0,180,0,187,0,184,0,171,0,167,0,173,0,161,0,150,0,149,0,141,0, +135,0,130,0,115,0,100,0,77,0,48,0,25,0,9,0,7,0,12,0,3,0,5,0,16,0,9,0,4,0,20,0, +36,0,54,0,67,0,67,0,74,0,95,0,119,0,153,0,178,0,183,0,181,0,180,0,188,0,208,0,220,0,222,0, +223,0,234,0,5,1,21,1,31,1,69,1,107,1,123,1,132,1,136,1,147,1,164,1,163,1,161,1,166,1,171,1, +188,1,204,1,192,1,172,1,161,1,157,1,156,1,147,1,132,1,130,1,131,1,128,1,134,1,148,1,160,1,178,1, +198,1,214,1,232,1,243,1,249,1,8,2,17,2,13,2,12,2,14,2,15,2,8,2,250,1,239,1,226,1,214,1, +207,1,198,1,193,1,199,1,208,1,227,1,243,1,241,1,233,1,232,1,243,1,252,1,248,1,247,1,249,1,250,1, +12,2,31,2,28,2,19,2,18,2,22,2,29,2,39,2,47,2,57,2,73,2,89,2,91,2,85,2,81,2,78,2, +72,2,63,2,65,2,73,2,72,2,71,2,72,2,67,2,60,2,53,2,47,2,39,2,18,2,1,2,253,1,244,1, +226,1,199,1,171,1,162,1,158,1,135,1,94,1,62,1,48,1,28,1,248,0,217,0,198,0,186,0,178,0,156,0, +127,0,114,0,115,0,123,0,133,0,130,0,121,0,126,0,142,0,148,0,137,0,120,0,114,0,114,0,114,0,116,0, +110,0,101,0,109,0,114,0,101,0,93,0,84,0,74,0,79,0,83,0,73,0,65,0,53,0,41,0,29,0,10,0, +249,255,241,255,227,255,206,255,180,255,166,255,178,255,197,255,198,255,181,255,161,255,154,255,160,255,165,255,170,255,175,255, +175,255,179,255,193,255,199,255,191,255,182,255,177,255,170,255,156,255,149,255,164,255,184,255,199,255,213,255,224,255,237,255, +249,255,243,255,239,255,241,255,228,255,219,255,225,255,230,255,224,255,207,255,195,255,196,255,184,255,161,255,145,255,138,255, +146,255,155,255,144,255,136,255,144,255,153,255,160,255,165,255,170,255,185,255,196,255,191,255,181,255,177,255,181,255,179,255, +164,255,148,255,141,255,140,255,148,255,163,255,174,255,184,255,189,255,183,255,184,255,192,255,193,255,197,255,204,255,203,255, +198,255,199,255,211,255,222,255,217,255,207,255,207,255,217,255,225,255,222,255,226,255,249,255,14,0,15,0,11,0,21,0, +33,0,38,0,51,0,66,0,73,0,78,0,85,0,100,0,117,0,126,0,132,0,139,0,156,0,189,0,207,0,208,0, +217,0,230,0,237,0,244,0,1,1,27,1,48,1,50,1,48,1,45,1,41,1,39,1,27,1,16,1,10,1,254,0, +245,0,243,0,234,0,227,0,220,0,202,0,176,0,158,0,160,0,173,0,187,0,193,0,191,0,189,0,193,0,205,0, +216,0,210,0,199,0,209,0,225,0,218,0,198,0,197,0,212,0,212,0,193,0,183,0,194,0,208,0,206,0,201,0, +207,0,209,0,191,0,166,0,163,0,183,0,190,0,181,0,182,0,184,0,180,0,181,0,190,0,210,0,219,0,204,0, +198,0,206,0,216,0,218,0,205,0,194,0,207,0,218,0,219,0,224,0,227,0,216,0,199,0,194,0,202,0,208,0, +214,0,228,0,244,0,252,0,244,0,228,0,224,0,221,0,214,0,209,0,197,0,181,0,174,0,169,0,161,0,145,0, +123,0,107,0,95,0,73,0,54,0,60,0,77,0,74,0,56,0,46,0,42,0,39,0,38,0,39,0,45,0,58,0, +66,0,65,0,59,0,55,0,70,0,93,0,97,0,94,0,96,0,101,0,113,0,120,0,118,0,123,0,131,0,143,0, +166,0,183,0,183,0,176,0,174,0,184,0,199,0,205,0,208,0,215,0,227,0,238,0,242,0,243,0,239,0,241,0, +2,1,19,1,31,1,46,1,60,1,61,1,51,1,41,1,34,1,24,1,16,1,23,1,42,1,53,1,39,1,17,1, +12,1,6,1,241,0,220,0,206,0,209,0,215,0,208,0,194,0,181,0,171,0,165,0,162,0,162,0,157,0,149,0, +149,0,150,0,146,0,127,0,96,0,83,0,80,0,70,0,70,0,80,0,86,0,96,0,99,0,99,0,97,0,85,0, +78,0,81,0,91,0,106,0,105,0,82,0,56,0,37,0,22,0,6,0,247,255,239,255,238,255,244,255,248,255,232,255, +214,255,218,255,225,255,221,255,210,255,204,255,208,255,212,255,206,255,197,255,202,255,213,255,213,255,214,255,214,255,207,255, +208,255,218,255,227,255,237,255,245,255,2,0,20,0,25,0,31,0,49,0,58,0,52,0,45,0,44,0,50,0,46,0, +31,0,30,0,40,0,38,0,18,0,0,0,0,0,4,0,0,0,253,255,253,255,254,255,255,255,244,255,232,255,232,255, +223,255,207,255,207,255,219,255,227,255,234,255,237,255,233,255,230,255,232,255,230,255,218,255,216,255,229,255,241,255,237,255, +225,255,226,255,239,255,248,255,250,255,253,255,1,0,12,0,23,0,26,0,32,0,39,0,35,0,29,0,28,0,32,0, +30,0,16,0,8,0,8,0,254,255,247,255,254,255,7,0,10,0,7,0,16,0,31,0,33,0,28,0,32,0,49,0, +65,0,64,0,64,0,79,0,84,0,76,0,73,0,71,0,66,0,54,0,44,0,50,0,62,0,62,0,62,0,67,0, +70,0,66,0,62,0,60,0,57,0,58,0,61,0,63,0,62,0,53,0,47,0,47,0,41,0,30,0,16,0,13,0, +31,0,39,0,23,0,13,0,19,0,35,0,45,0,35,0,29,0,38,0,42,0,44,0,49,0,49,0,44,0,40,0, +41,0,45,0,51,0,61,0,57,0,34,0,13,0,5,0,1,0,251,255,236,255,218,255,206,255,204,255,207,255,208,255, +205,255,204,255,208,255,206,255,195,255,187,255,181,255,182,255,195,255,194,255,174,255,168,255,165,255,157,255,161,255,160,255, +157,255,170,255,180,255,183,255,187,255,177,255,160,255,164,255,185,255,201,255,197,255,179,255,172,255,171,255,167,255,162,255, +160,255,160,255,161,255,162,255,164,255,161,255,150,255,143,255,142,255,129,255,122,255,127,255,123,255,112,255,108,255,110,255, +120,255,135,255,141,255,135,255,123,255,111,255,111,255,120,255,123,255,122,255,125,255,124,255,113,255,92,255,80,255,99,255, +123,255,126,255,116,255,107,255,100,255,87,255,67,255,62,255,78,255,85,255,72,255,55,255,56,255,66,255,55,255,38,255, +40,255,45,255,45,255,36,255,20,255,24,255,39,255,35,255,26,255,25,255,31,255,38,255,39,255,45,255,48,255,46,255, +66,255,92,255,102,255,109,255,111,255,115,255,133,255,148,255,159,255,171,255,174,255,171,255,169,255,174,255,178,255,174,255, +175,255,181,255,174,255,152,255,127,255,114,255,108,255,92,255,70,255,60,255,63,255,62,255,51,255,50,255,55,255,60,255, +73,255,84,255,90,255,94,255,93,255,106,255,120,255,123,255,144,255,177,255,196,255,207,255,210,255,217,255,240,255,249,255, +253,255,12,0,29,0,47,0,61,0,77,0,104,0,119,0,115,0,115,0,119,0,126,0,134,0,133,0,132,0,123,0, +108,0,99,0,86,0,69,0,58,0,50,0,46,0,54,0,61,0,53,0,43,0,48,0,54,0,53,0,54,0,58,0, +66,0,93,0,122,0,129,0,121,0,110,0,103,0,109,0,116,0,106,0,91,0,89,0,82,0,68,0,59,0,49,0, +44,0,48,0,42,0,31,0,30,0,26,0,24,0,34,0,42,0,31,0,11,0,3,0,4,0,247,255,224,255,215,255, +221,255,220,255,202,255,180,255,172,255,176,255,177,255,177,255,184,255,188,255,188,255,186,255,180,255,172,255,167,255,170,255, +197,255,220,255,216,255,215,255,234,255,255,255,12,0,11,0,2,0,8,0,24,0,23,0,8,0,255,255,1,0,8,0, +10,0,5,0,253,255,248,255,244,255,238,255,228,255,220,255,231,255,253,255,0,0,235,255,216,255,216,255,225,255,228,255, +232,255,240,255,245,255,243,255,235,255,232,255,235,255,233,255,231,255,228,255,205,255,180,255,172,255,170,255,169,255,162,255, +141,255,125,255,119,255,109,255,104,255,110,255,110,255,100,255,94,255,102,255,114,255,119,255,118,255,115,255,111,255,110,255, +117,255,134,255,152,255,163,255,166,255,175,255,197,255,210,255,208,255,207,255,209,255,213,255,222,255,226,255,232,255,252,255, +10,0,2,0,251,255,2,0,12,0,17,0,16,0,11,0,5,0,1,0,4,0,11,0,11,0,3,0,255,255,252,255, +248,255,251,255,252,255,247,255,248,255,246,255,235,255,235,255,235,255,220,255,207,255,206,255,205,255,202,255,201,255,189,255, +164,255,151,255,156,255,163,255,169,255,167,255,161,255,167,255,174,255,168,255,163,255,161,255,161,255,159,255,149,255,149,255, +150,255,140,255,135,255,132,255,119,255,104,255,99,255,106,255,110,255,106,255,108,255,106,255,101,255,109,255,109,255,107,255, +119,255,122,255,128,255,143,255,136,255,131,255,149,255,167,255,173,255,161,255,143,255,141,255,146,255,144,255,135,255,118,255, +113,255,125,255,131,255,127,255,114,255,104,255,106,255,104,255,93,255,89,255,95,255,110,255,121,255,116,255,102,255,93,255, +88,255,81,255,71,255,55,255,37,255,34,255,45,255,58,255,63,255,47,255,21,255,4,255,244,254,229,254,230,254,244,254, +249,254,238,254,231,254,239,254,241,254,237,254,238,254,243,254,3,255,29,255,37,255,27,255,25,255,27,255,21,255,19,255, +21,255,19,255,20,255,27,255,35,255,43,255,48,255,52,255,62,255,69,255,72,255,82,255,99,255,115,255,117,255,117,255, +129,255,141,255,148,255,157,255,161,255,167,255,175,255,187,255,204,255,211,255,210,255,214,255,214,255,218,255,222,255,206,255, +199,255,211,255,206,255,193,255,184,255,184,255,202,255,213,255,204,255,191,255,189,255,203,255,216,255,208,255,194,255,188,255, +189,255,194,255,197,255,197,255,196,255,195,255,199,255,207,255,216,255,218,255,214,255,217,255,219,255,214,255,206,255,188,255, +176,255,181,255,181,255,181,255,186,255,178,255,170,255,171,255,170,255,172,255,175,255,174,255,172,255,169,255,160,255,153,255, +157,255,161,255,153,255,142,255,131,255,129,255,140,255,144,255,147,255,165,255,180,255,186,255,193,255,197,255,203,255,212,255, +213,255,209,255,199,255,191,255,197,255,206,255,210,255,215,255,217,255,218,255,222,255,218,255,209,255,204,255,206,255,210,255, +213,255,215,255,211,255,200,255,185,255,169,255,165,255,171,255,175,255,175,255,164,255,147,255,145,255,144,255,135,255,131,255, +138,255,147,255,141,255,125,255,128,255,141,255,144,255,150,255,162,255,170,255,170,255,166,255,174,255,189,255,198,255,202,255, +199,255,203,255,222,255,225,255,217,255,218,255,214,255,213,255,227,255,236,255,234,255,235,255,243,255,0,0,6,0,1,0, +249,255,241,255,234,255,232,255,237,255,245,255,246,255,236,255,228,255,228,255,229,255,232,255,238,255,248,255,4,0,14,0, +22,0,25,0,22,0,27,0,37,0,36,0,32,0,39,0,44,0,40,0,26,0,8,0,2,0,12,0,22,0,16,0, +2,0,255,255,4,0,0,0,245,255,230,255,209,255,192,255,186,255,184,255,186,255,199,255,217,255,227,255,232,255,232,255, +238,255,2,0,19,0,22,0,28,0,31,0,28,0,31,0,34,0,41,0,54,0,59,0,69,0,84,0,83,0,74,0, +65,0,60,0,73,0,82,0,71,0,65,0,68,0,72,0,79,0,82,0,79,0,78,0,88,0,111,0,126,0,124,0, +120,0,122,0,130,0,134,0,133,0,144,0,156,0,155,0,153,0,153,0,155,0,159,0,157,0,159,0,163,0,153,0, +140,0,139,0,139,0,138,0,133,0,126,0,132,0,141,0,133,0,121,0,115,0,116,0,121,0,122,0,113,0,105,0, +107,0,114,0,118,0,111,0,97,0,89,0,85,0,76,0,68,0,74,0,88,0,94,0,93,0,90,0,95,0,101,0, +91,0,76,0,70,0,65,0,65,0,71,0,72,0,79,0,86,0,78,0,68,0,56,0,49,0,55,0,74,0,97,0, +109,0,98,0,91,0,96,0,102,0,105,0,101,0,92,0,87,0,80,0,65,0,44,0,26,0,23,0,20,0,14,0, +6,0,244,255,237,255,245,255,255,255,3,0,249,255,236,255,235,255,232,255,235,255,244,255,234,255,221,255,212,255,193,255, +183,255,184,255,185,255,191,255,190,255,186,255,185,255,177,255,172,255,174,255,173,255,172,255,169,255,167,255,168,255,162,255, +150,255,137,255,133,255,137,255,123,255,104,255,102,255,104,255,110,255,113,255,103,255,101,255,102,255,93,255,88,255,81,255, +74,255,75,255,74,255,75,255,79,255,81,255,90,255,101,255,109,255,116,255,129,255,149,255,159,255,161,255,174,255,190,255, +204,255,219,255,221,255,223,255,227,255,226,255,232,255,242,255,249,255,253,255,248,255,249,255,3,0,254,255,245,255,242,255, +253,255,23,0,34,0,30,0,28,0,22,0,18,0,21,0,22,0,23,0,14,0,3,0,8,0,7,0,251,255,244,255, +242,255,247,255,255,255,3,0,12,0,21,0,21,0,15,0,14,0,26,0,28,0,10,0,250,255,245,255,251,255,250,255, +237,255,233,255,228,255,213,255,205,255,204,255,209,255,219,255,221,255,231,255,249,255,255,255,2,0,255,255,252,255,9,0, +20,0,22,0,25,0,24,0,27,0,29,0,22,0,22,0,22,0,19,0,30,0,47,0,61,0,74,0,85,0,95,0, +107,0,110,0,105,0,98,0,92,0,83,0,77,0,77,0,74,0,69,0,64,0,58,0,58,0,56,0,50,0,55,0, +55,0,50,0,53,0,48,0,39,0,39,0,41,0,50,0,69,0,85,0,88,0,73,0,60,0,61,0,62,0,67,0, +75,0,72,0,69,0,70,0,59,0,47,0,39,0,39,0,46,0,45,0,36,0,34,0,35,0,31,0,28,0,28,0, +19,0,16,0,24,0,25,0,28,0,46,0,59,0,68,0,75,0,76,0,82,0,82,0,76,0,83,0,89,0,92,0, +109,0,116,0,110,0,112,0,117,0,118,0,126,0,133,0,132,0,138,0,153,0,159,0,160,0,170,0,181,0,190,0, +193,0,190,0,189,0,182,0,171,0,180,0,192,0,197,0,211,0,220,0,220,0,223,0,218,0,209,0,212,0,216,0, +209,0,200,0,201,0,201,0,191,0,183,0,188,0,195,0,185,0,164,0,158,0,158,0,146,0,134,0,122,0,116,0, +128,0,134,0,129,0,125,0,110,0,95,0,102,0,116,0,124,0,113,0,98,0,100,0,111,0,119,0,124,0,126,0, +125,0,108,0,87,0,89,0,96,0,85,0,70,0,63,0,65,0,61,0,48,0,41,0,40,0,39,0,38,0,34,0, +36,0,43,0,46,0,47,0,39,0,25,0,21,0,19,0,22,0,28,0,24,0,18,0,17,0,11,0,2,0,244,255, +239,255,252,255,6,0,11,0,13,0,7,0,12,0,24,0,31,0,35,0,36,0,38,0,42,0,35,0,25,0,18,0, +10,0,10,0,19,0,25,0,29,0,25,0,22,0,30,0,39,0,38,0,31,0,21,0,9,0,0,0,253,255,247,255, +238,255,234,255,229,255,225,255,216,255,196,255,185,255,194,255,202,255,207,255,207,255,195,255,184,255,178,255,172,255,169,255, +167,255,166,255,158,255,148,255,151,255,156,255,159,255,174,255,188,255,193,255,196,255,197,255,199,255,203,255,207,255,214,255, +221,255,222,255,220,255,216,255,215,255,224,255,229,255,220,255,211,255,215,255,224,255,228,255,225,255,220,255,222,255,226,255, +228,255,235,255,236,255,228,255,223,255,214,255,205,255,208,255,204,255,192,255,191,255,189,255,185,255,193,255,198,255,193,255, +188,255,186,255,189,255,185,255,177,255,177,255,174,255,166,255,162,255,155,255,143,255,135,255,126,255,119,255,124,255,128,255, +117,255,104,255,108,255,116,255,119,255,130,255,147,255,156,255,153,255,145,255,140,255,140,255,143,255,143,255,144,255,149,255, +157,255,164,255,172,255,184,255,197,255,207,255,213,255,223,255,237,255,255,255,18,0,27,0,22,0,18,0,29,0,50,0, +59,0,52,0,42,0,43,0,51,0,54,0,50,0,52,0,55,0,47,0,38,0,35,0,43,0,54,0,58,0,55,0, +51,0,44,0,42,0,42,0,43,0,47,0,49,0,41,0,26,0,9,0,252,255,251,255,255,255,253,255,245,255,239,255, +232,255,224,255,221,255,217,255,215,255,223,255,227,255,230,255,237,255,240,255,238,255,229,255,215,255,209,255,200,255,186,255, +188,255,189,255,188,255,196,255,194,255,192,255,196,255,192,255,193,255,202,255,201,255,204,255,211,255,206,255,206,255,215,255, +225,255,230,255,225,255,220,255,221,255,222,255,227,255,237,255,236,255,234,255,245,255,5,0,16,0,19,0,20,0,24,0, +25,0,17,0,15,0,23,0,24,0,21,0,21,0,19,0,21,0,29,0,29,0,25,0,31,0,37,0,39,0,39,0, +41,0,40,0,30,0,24,0,32,0,37,0,30,0,28,0,26,0,17,0,14,0,21,0,28,0,29,0,21,0,21,0, +34,0,44,0,47,0,49,0,44,0,39,0,37,0,33,0,35,0,35,0,24,0,18,0,17,0,5,0,249,255,252,255, +6,0,7,0,253,255,253,255,14,0,34,0,38,0,30,0,32,0,41,0,40,0,40,0,40,0,39,0,42,0,39,0, +37,0,36,0,24,0,20,0,28,0,32,0,35,0,32,0,25,0,27,0,22,0,16,0,24,0,21,0,10,0,4,0, +12,0,29,0,26,0,10,0,16,0,27,0,31,0,40,0,45,0,48,0,54,0,50,0,51,0,59,0,60,0,56,0, +51,0,52,0,54,0,50,0,49,0,51,0,53,0,58,0,66,0,77,0,77,0,68,0,73,0,83,0,85,0,90,0, +89,0,89,0,99,0,103,0,105,0,106,0,99,0,98,0,101,0,100,0,100,0,98,0,105,0,118,0,114,0,109,0, +107,0,98,0,101,0,105,0,96,0,99,0,109,0,110,0,113,0,115,0,106,0,94,0,86,0,78,0,67,0,60,0, +59,0,55,0,53,0,56,0,57,0,55,0,48,0,39,0,32,0,24,0,18,0,15,0,9,0,254,255,244,255,239,255, +237,255,237,255,243,255,245,255,238,255,231,255,229,255,235,255,246,255,246,255,243,255,248,255,254,255,6,0,10,0,6,0, +4,0,0,0,249,255,248,255,244,255,236,255,237,255,246,255,254,255,252,255,243,255,244,255,249,255,246,255,243,255,245,255, +253,255,3,0,1,0,250,255,244,255,240,255,235,255,231,255,229,255,225,255,221,255,223,255,224,255,217,255,204,255,196,255, +201,255,199,255,182,255,172,255,174,255,172,255,170,255,172,255,179,255,190,255,192,255,183,255,179,255,182,255,184,255,185,255, +188,255,189,255,185,255,183,255,188,255,186,255,173,255,172,255,177,255,172,255,167,255,166,255,168,255,174,255,174,255,166,255, +169,255,177,255,183,255,186,255,186,255,188,255,196,255,200,255,197,255,197,255,207,255,213,255,210,255,207,255,200,255,191,255, +193,255,194,255,193,255,194,255,192,255,195,255,196,255,189,255,197,255,210,255,205,255,197,255,186,255,181,255,191,255,197,255, +203,255,211,255,216,255,233,255,244,255,236,255,239,255,250,255,255,255,3,0,253,255,248,255,3,0,12,0,19,0,21,0, +13,0,13,0,19,0,28,0,41,0,40,0,31,0,27,0,26,0,31,0,40,0,51,0,62,0,65,0,67,0,74,0, +85,0,97,0,98,0,99,0,114,0,115,0,106,0,104,0,101,0,108,0,120,0,113,0,105,0,106,0,103,0,100,0, +99,0,103,0,109,0,103,0,97,0,99,0,97,0,94,0,95,0,91,0,82,0,78,0,89,0,99,0,92,0,81,0, +74,0,79,0,94,0,92,0,77,0,74,0,66,0,52,0,55,0,62,0,57,0,51,0,53,0,54,0,51,0,47,0, +36,0,25,0,23,0,19,0,14,0,15,0,6,0,247,255,237,255,232,255,232,255,235,255,234,255,229,255,228,255,232,255, +236,255,240,255,245,255,245,255,246,255,254,255,1,0,254,255,254,255,253,255,250,255,245,255,248,255,255,255,248,255,241,255, +252,255,6,0,8,0,6,0,4,0,15,0,26,0,22,0,26,0,34,0,39,0,49,0,53,0,47,0,40,0,36,0, +38,0,45,0,47,0,39,0,32,0,32,0,31,0,22,0,12,0,8,0,10,0,17,0,17,0,15,0,18,0,18,0, +15,0,13,0,13,0,11,0,2,0,248,255,247,255,244,255,242,255,1,0,18,0,19,0,16,0,13,0,16,0,29,0, +35,0,31,0,28,0,25,0,23,0,29,0,36,0,42,0,49,0,46,0,40,0,44,0,48,0,47,0,53,0,67,0, +77,0,79,0,83,0,96,0,109,0,109,0,110,0,124,0,139,0,148,0,162,0,172,0,169,0,169,0,172,0,167,0, +164,0,167,0,169,0,171,0,170,0,168,0,166,0,161,0,162,0,166,0,157,0,148,0,147,0,150,0,158,0,159,0, +156,0,153,0,149,0,149,0,151,0,144,0,141,0,135,0,120,0,119,0,123,0,121,0,123,0,124,0,119,0,110,0, +97,0,96,0,99,0,94,0,93,0,94,0,90,0,87,0,82,0,83,0,85,0,76,0,68,0,64,0,66,0,75,0, +70,0,53,0,42,0,36,0,44,0,60,0,56,0,41,0,37,0,43,0,48,0,46,0,42,0,48,0,55,0,58,0, +58,0,52,0,50,0,46,0,44,0,48,0,51,0,51,0,52,0,47,0,52,0,62,0,60,0,61,0,59,0,43,0, +36,0,47,0,51,0,43,0,37,0,36,0,35,0,38,0,44,0,49,0,49,0,44,0,42,0,49,0,48,0,44,0, +51,0,52,0,44,0,36,0,25,0,25,0,39,0,42,0,39,0,40,0,37,0,36,0,37,0,26,0,17,0,20,0, +24,0,24,0,24,0,21,0,17,0,14,0,6,0,0,0,252,255,246,255,244,255,240,255,229,255,222,255,221,255,219,255, +224,255,231,255,221,255,209,255,209,255,208,255,206,255,203,255,205,255,217,255,228,255,229,255,226,255,215,255,206,255,211,255, +222,255,221,255,211,255,212,255,224,255,233,255,242,255,248,255,251,255,0,0,254,255,246,255,243,255,240,255,241,255,248,255, +252,255,3,0,6,0,253,255,246,255,243,255,245,255,0,0,7,0,2,0,246,255,237,255,244,255,251,255,248,255,247,255, +241,255,237,255,243,255,238,255,233,255,245,255,254,255,1,0,2,0,248,255,240,255,234,255,223,255,220,255,220,255,214,255, +210,255,214,255,217,255,211,255,205,255,209,255,212,255,209,255,207,255,198,255,190,255,193,255,199,255,201,255,204,255,209,255, +213,255,212,255,211,255,214,255,218,255,219,255,216,255,215,255,216,255,215,255,212,255,211,255,215,255,224,255,227,255,224,255, +224,255,223,255,221,255,229,255,230,255,218,255,211,255,214,255,217,255,219,255,219,255,215,255,212,255,214,255,217,255,220,255, +224,255,226,255,226,255,227,255,230,255,237,255,246,255,255,255,255,255,248,255,246,255,246,255,249,255,6,0,14,0,6,0, +2,0,4,0,254,255,243,255,237,255,239,255,238,255,234,255,238,255,236,255,227,255,227,255,228,255,225,255,221,255,215,255, +218,255,225,255,228,255,230,255,218,255,199,255,200,255,212,255,221,255,221,255,215,255,217,255,217,255,207,255,207,255,206,255, +199,255,210,255,225,255,232,255,239,255,244,255,246,255,252,255,5,0,9,0,5,0,8,0,21,0,31,0,40,0,39,0, +25,0,31,0,47,0,49,0,44,0,38,0,39,0,49,0,55,0,60,0,58,0,48,0,51,0,57,0,57,0,60,0, +54,0,38,0,31,0,27,0,25,0,28,0,27,0,23,0,23,0,22,0,21,0,17,0,2,0,246,255,1,0,16,0, +15,0,10,0,10,0,8,0,9,0,11,0,6,0,0,0,250,255,246,255,250,255,252,255,245,255,232,255,220,255,220,255, +219,255,214,255,221,255,232,255,238,255,240,255,235,255,231,255,234,255,236,255,234,255,230,255,231,255,244,255,252,255,249,255, +250,255,255,255,5,0,14,0,21,0,22,0,20,0,23,0,23,0,12,0,6,0,7,0,13,0,25,0,29,0,22,0, +15,0,9,0,3,0,8,0,22,0,29,0,22,0,12,0,4,0,250,255,252,255,0,0,248,255,251,255,5,0,3,0, +8,0,11,0,3,0,3,0,12,0,28,0,45,0,42,0,36,0,43,0,47,0,49,0,51,0,49,0,60,0,79,0, +86,0,79,0,66,0,66,0,82,0,93,0,93,0,88,0,89,0,94,0,95,0,92,0,87,0,79,0,75,0,79,0, +83,0,82,0,70,0,60,0,61,0,62,0,60,0,55,0,49,0,46,0,42,0,39,0,43,0,51,0,54,0,50,0, +43,0,32,0,27,0,33,0,35,0,32,0,33,0,29,0,22,0,14,0,2,0,2,0,16,0,23,0,19,0,20,0, +24,0,23,0,17,0,12,0,13,0,21,0,35,0,37,0,26,0,21,0,19,0,18,0,17,0,19,0,25,0,23,0, +15,0,12,0,8,0,3,0,1,0,249,255,246,255,244,255,235,255,233,255,238,255,244,255,248,255,245,255,233,255,223,255, +225,255,232,255,225,255,216,255,221,255,222,255,216,255,207,255,200,255,208,255,216,255,212,255,205,255,201,255,203,255,207,255, +203,255,205,255,209,255,207,255,207,255,205,255,204,255,211,255,213,255,212,255,213,255,208,255,212,255,218,255,209,255,198,255, +193,255,194,255,198,255,195,255,189,255,193,255,201,255,209,255,213,255,213,255,218,255,222,255,222,255,224,255,224,255,216,255, +214,255,219,255,223,255,220,255,218,255,219,255,220,255,218,255,217,255,220,255,224,255,224,255,225,255,222,255,223,255,234,255, +240,255,242,255,247,255,241,255,230,255,230,255,228,255,222,255,226,255,226,255,218,255,210,255,200,255,193,255,194,255,194,255, +189,255,181,255,171,255,165,255,160,255,151,255,145,255,146,255,146,255,142,255,139,255,139,255,144,255,150,255,144,255,134,255, +136,255,145,255,148,255,152,255,151,255,141,255,139,255,146,255,144,255,131,255,124,255,132,255,140,255,141,255,148,255,155,255, +156,255,159,255,156,255,150,255,149,255,148,255,147,255,145,255,145,255,152,255,151,255,138,255,131,255,132,255,130,255,124,255, +115,255,110,255,114,255,131,255,148,255,145,255,135,255,141,255,150,255,150,255,148,255,147,255,144,255,143,255,144,255,141,255, +138,255,134,255,128,255,125,255,124,255,120,255,121,255,127,255,129,255,130,255,126,255,119,255,123,255,128,255,135,255,139,255, +134,255,136,255,150,255,161,255,159,255,150,255,151,255,166,255,172,255,170,255,173,255,175,255,173,255,168,255,162,255,158,255, +155,255,149,255,144,255,150,255,162,255,170,255,172,255,170,255,169,255,171,255,167,255,162,255,163,255,158,255,152,255,148,255, +141,255,143,255,147,255,144,255,146,255,149,255,151,255,166,255,181,255,184,255,182,255,183,255,189,255,191,255,193,255,207,255, +224,255,237,255,240,255,235,255,238,255,246,255,249,255,247,255,242,255,237,255,229,255,217,255,223,255,233,255,229,255,224,255, +226,255,224,255,219,255,220,255,230,255,229,255,210,255,201,255,213,255,230,255,229,255,208,255,203,255,210,255,206,255,205,255, +205,255,205,255,211,255,207,255,208,255,227,255,234,255,227,255,231,255,237,255,243,255,248,255,250,255,253,255,245,255,237,255, +243,255,248,255,248,255,244,255,239,255,253,255,13,0,14,0,17,0,25,0,31,0,39,0,42,0,43,0,57,0,70,0, +75,0,82,0,88,0,90,0,97,0,108,0,123,0,127,0,113,0,110,0,126,0,133,0,129,0,121,0,112,0,111,0, +111,0,102,0,98,0,107,0,109,0,101,0,102,0,111,0,112,0,105,0,102,0,103,0,98,0,88,0,86,0,85,0, +74,0,70,0,78,0,77,0,68,0,54,0,43,0,44,0,42,0,32,0,33,0,43,0,47,0,44,0,41,0,39,0, +31,0,18,0,13,0,12,0,14,0,14,0,5,0,251,255,248,255,241,255,234,255,233,255,232,255,227,255,220,255,215,255, +210,255,207,255,208,255,207,255,202,255,206,255,208,255,202,255,204,255,202,255,192,255,194,255,197,255,191,255,191,255,189,255, +190,255,205,255,215,255,221,255,224,255,216,255,212,255,210,255,203,255,204,255,203,255,195,255,198,255,199,255,192,255,190,255, +188,255,185,255,185,255,182,255,179,255,179,255,182,255,179,255,167,255,170,255,176,255,162,255,157,255,164,255,162,255,166,255, +177,255,180,255,186,255,186,255,174,255,170,255,179,255,186,255,175,255,164,255,173,255,181,255,176,255,170,255,165,255,169,255, +180,255,184,255,187,255,186,255,178,255,177,255,182,255,187,255,186,255,175,255,164,255,162,255,163,255,170,255,173,255,171,255, +172,255,171,255,170,255,176,255,179,255,174,255,173,255,170,255,162,255,162,255,169,255,175,255,179,255,172,255,164,255,172,255, +181,255,178,255,173,255,169,255,168,255,168,255,165,255,168,255,184,255,190,255,174,255,164,255,169,255,166,255,164,255,175,255, +176,255,164,255,155,255,149,255,154,255,165,255,165,255,158,255,158,255,161,255,159,255,160,255,164,255,161,255,154,255,159,255, +171,255,180,255,181,255,176,255,176,255,183,255,183,255,177,255,174,255,168,255,155,255,147,255,150,255,156,255,155,255,151,255, +158,255,169,255,170,255,171,255,184,255,198,255,199,255,187,255,182,255,197,255,202,255,195,255,198,255,202,255,199,255,201,255, +202,255,201,255,200,255,188,255,173,255,168,255,172,255,168,255,160,255,160,255,159,255,147,255,150,255,165,255,171,255,170,255, +166,255,166,255,175,255,184,255,180,255,172,255,175,255,183,255,185,255,194,255,208,255,205,255,200,255,206,255,213,255,212,255, +206,255,210,255,219,255,213,255,202,255,196,255,191,255,195,255,197,255,191,255,192,255,196,255,196,255,195,255,191,255,183,255, +175,255,173,255,176,255,185,255,200,255,206,255,194,255,186,255,196,255,205,255,204,255,197,255,188,255,186,255,186,255,181,255, +182,255,196,255,203,255,197,255,193,255,191,255,195,255,204,255,202,255,201,255,209,255,211,255,214,255,213,255,206,255,214,255, +223,255,222,255,222,255,214,255,208,255,215,255,214,255,207,255,207,255,218,255,229,255,221,255,216,255,222,255,219,255,222,255, +226,255,221,255,224,255,224,255,219,255,223,255,222,255,212,255,205,255,205,255,211,255,202,255,188,255,199,255,211,255,209,255, +210,255,212,255,217,255,221,255,217,255,218,255,231,255,238,255,230,255,220,255,224,255,228,255,227,255,230,255,225,255,219,255, +221,255,214,255,207,255,209,255,211,255,214,255,214,255,210,255,206,255,209,255,221,255,226,255,219,255,216,255,220,255,235,255, +249,255,240,255,223,255,218,255,223,255,238,255,243,255,232,255,226,255,225,255,228,255,230,255,225,255,224,255,227,255,231,255, +228,255,216,255,218,255,235,255,241,255,239,255,234,255,236,255,252,255,252,255,233,255,230,255,240,255,246,255,244,255,236,255, +232,255,238,255,243,255,239,255,231,255,233,255,233,255,222,255,215,255,214,255,216,255,215,255,208,255,196,255,184,255,180,255, +186,255,181,255,170,255,171,255,173,255,170,255,170,255,168,255,165,255,163,255,161,255,167,255,177,255,180,255,179,255,176,255, +167,255,163,255,173,255,180,255,176,255,173,255,174,255,182,255,194,255,195,255,197,255,205,255,205,255,205,255,210,255,212,255, +217,255,216,255,211,255,213,255,215,255,214,255,217,255,219,255,226,255,233,255,226,255,223,255,225,255,223,255,219,255,212,255, +205,255,212,255,225,255,224,255,220,255,224,255,221,255,211,255,204,255,200,255,203,255,206,255,196,255,196,255,204,255,199,255, +197,255,198,255,195,255,205,255,207,255,188,255,189,255,201,255,200,255,193,255,184,255,185,255,202,255,208,255,206,255,207,255, +204,255,208,255,216,255,215,255,212,255,208,255,202,255,203,255,205,255,208,255,212,255,210,255,208,255,208,255,207,255,214,255, +220,255,214,255,208,255,208,255,219,255,237,255,238,255,223,255,219,255,226,255,236,255,242,255,235,255,226,255,228,255,239,255, +246,255,248,255,255,255,5,0,252,255,242,255,246,255,1,0,8,0,7,0,2,0,254,255,1,0,10,0,19,0,21,0, +17,0,11,0,6,0,4,0,0,0,254,255,254,255,253,255,253,255,255,255,8,0,13,0,1,0,250,255,254,255,254,255, +0,0,1,0,1,0,9,0,9,0,1,0,11,0,21,0,15,0,18,0,26,0,26,0,28,0,29,0,31,0,40,0, +42,0,36,0,37,0,45,0,50,0,46,0,42,0,41,0,36,0,28,0,19,0,11,0,7,0,9,0,10,0,5,0, +250,255,242,255,242,255,241,255,233,255,225,255,226,255,226,255,224,255,221,255,217,255,215,255,217,255,217,255,216,255,220,255, +220,255,221,255,228,255,222,255,206,255,199,255,203,255,210,255,211,255,207,255,207,255,210,255,214,255,220,255,223,255,226,255, +225,255,219,255,222,255,232,255,233,255,228,255,223,255,220,255,222,255,218,255,214,255,220,255,224,255,221,255,215,255,212,255, +213,255,207,255,204,255,210,255,212,255,210,255,207,255,204,255,211,255,219,255,216,255,212,255,208,255,201,255,202,255,208,255, +207,255,203,255,202,255,205,255,211,255,216,255,222,255,233,255,239,255,239,255,248,255,251,255,242,255,240,255,242,255,239,255, +239,255,238,255,232,255,230,255,228,255,216,255,205,255,207,255,215,255,218,255,213,255,203,255,199,255,204,255,203,255,197,255, +194,255,191,255,189,255,189,255,185,255,184,255,189,255,188,255,190,255,194,255,199,255,203,255,201,255,196,255,198,255,206,255, +211,255,208,255,207,255,208,255,209,255,214,255,217,255,217,255,216,255,212,255,213,255,215,255,207,255,199,255,190,255,191,255, +207,255,209,255,203,255,210,255,209,255,202,255,199,255,197,255,197,255,192,255,181,255,180,255,179,255,178,255,184,255,188,255, +189,255,187,255,178,255,184,255,201,255,209,255,211,255,210,255,214,255,223,255,222,255,213,255,209,255,218,255,234,255,237,255, +234,255,237,255,233,255,223,255,225,255,235,255,241,255,239,255,232,255,229,255,228,255,224,255,221,255,224,255,224,255,218,255, +223,255,236,255,237,255,228,255,225,255,230,255,237,255,234,255,223,255,213,255,213,255,216,255,217,255,218,255,214,255,208,255, +216,255,219,255,216,255,217,255,214,255,216,255,227,255,228,255,226,255,221,255,210,255,214,255,223,255,223,255,219,255,214,255, +216,255,219,255,217,255,216,255,212,255,207,255,202,255,195,255,201,255,211,255,206,255,208,255,215,255,216,255,217,255,210,255, +208,255,213,255,205,255,199,255,197,255,193,255,198,255,195,255,186,255,184,255,174,255,172,255,186,255,183,255,172,255,164,255, +156,255,156,255,154,255,147,255,144,255,139,255,128,255,116,255,109,255,115,255,123,255,124,255,122,255,116,255,112,255,113,255, +117,255,119,255,117,255,120,255,123,255,115,255,115,255,118,255,116,255,117,255,112,255,109,255,115,255,116,255,115,255,112,255, +105,255,108,255,111,255,109,255,114,255,109,255,101,255,106,255,109,255,104,255,99,255,97,255,97,255,97,255,98,255,96,255, +92,255,99,255,104,255,99,255,103,255,111,255,114,255,114,255,108,255,105,255,105,255,102,255,104,255,108,255,109,255,108,255, +102,255,102,255,102,255,97,255,96,255,100,255,109,255,117,255,110,255,102,255,100,255,98,255,98,255,95,255,93,255,94,255, +82,255,75,255,84,255,86,255,82,255,81,255,82,255,91,255,92,255,88,255,92,255,93,255,94,255,100,255,97,255,93,255, +91,255,84,255,85,255,91,255,92,255,93,255,88,255,82,255,87,255,90,255,84,255,84,255,87,255,87,255,84,255,83,255, +79,255,73,255,67,255,69,255,73,255,71,255,69,255,71,255,68,255,58,255,51,255,50,255,54,255,48,255,34,255,28,255, +32,255,35,255,34,255,31,255,29,255,32,255,31,255,26,255,24,255,23,255,23,255,23,255,23,255,24,255,22,255,17,255, +19,255,19,255,14,255,15,255,18,255,16,255,14,255,16,255,21,255,21,255,12,255,10,255,11,255,2,255,255,254,5,255, +6,255,10,255,12,255,9,255,14,255,22,255,25,255,21,255,14,255,17,255,25,255,18,255,13,255,13,255,10,255,8,255, +7,255,11,255,21,255,20,255,14,255,18,255,20,255,18,255,22,255,26,255,28,255,32,255,37,255,43,255,49,255,52,255, +53,255,57,255,62,255,65,255,67,255,70,255,65,255,62,255,71,255,75,255,66,255,59,255,60,255,66,255,69,255,67,255, +62,255,58,255,62,255,66,255,64,255,64,255,64,255,60,255,62,255,69,255,66,255,56,255,47,255,40,255,40,255,41,255, +41,255,45,255,46,255,44,255,47,255,49,255,50,255,48,255,42,255,43,255,51,255,56,255,60,255,60,255,56,255,55,255, +58,255,58,255,59,255,64,255,70,255,70,255,68,255,69,255,74,255,77,255,85,255,97,255,101,255,102,255,107,255,103,255, +99,255,107,255,110,255,109,255,114,255,115,255,116,255,120,255,120,255,122,255,123,255,120,255,124,255,129,255,133,255,139,255, +137,255,133,255,136,255,138,255,141,255,146,255,140,255,135,255,140,255,141,255,133,255,127,255,127,255,132,255,136,255,134,255, +134,255,139,255,141,255,144,255,152,255,159,255,161,255,166,255,171,255,173,255,177,255,177,255,170,255,172,255,177,255,173,255, +169,255,171,255,171,255,172,255,172,255,167,255,168,255,170,255,170,255,180,255,189,255,189,255,188,255,185,255,185,255,193,255, +195,255,194,255,196,255,197,255,197,255,198,255,199,255,199,255,196,255,197,255,199,255,198,255,197,255,194,255,198,255,210,255, +210,255,206,255,211,255,214,255,214,255,216,255,214,255,216,255,222,255,218,255,212,255,209,255,206,255,211,255,214,255,209,255, +208,255,210,255,210,255,213,255,216,255,216,255,219,255,221,255,223,255,226,255,222,255,217,255,217,255,220,255,224,255,225,255, +223,255,226,255,234,255,237,255,230,255,225,255,229,255,228,255,223,255,232,255,238,255,240,255,248,255,251,255,252,255,254,255, +250,255,0,0,10,0,8,0,9,0,9,0,7,0,14,0,14,0,8,0,6,0,7,0,11,0,15,0,19,0,25,0, +22,0,23,0,30,0,28,0,32,0,40,0,43,0,50,0,43,0,36,0,49,0,52,0,45,0,53,0,58,0,65,0, +77,0,75,0,71,0,73,0,72,0,73,0,76,0,81,0,84,0,82,0,87,0,97,0,103,0,104,0,97,0,94,0, +99,0,105,0,110,0,114,0,114,0,112,0,109,0,111,0,114,0,113,0,117,0,126,0,130,0,134,0,139,0,142,0, +142,0,143,0,149,0,152,0,157,0,162,0,159,0,161,0,165,0,162,0,170,0,181,0,177,0,178,0,187,0,189,0, +192,0,199,0,201,0,204,0,210,0,214,0,216,0,218,0,223,0,232,0,239,0,241,0,242,0,237,0,231,0,238,0, +244,0,239,0,241,0,243,0,237,0,235,0,236,0,235,0,235,0,241,0,247,0,249,0,250,0,251,0,252,0,252,0, +246,0,240,0,243,0,245,0,243,0,244,0,236,0,228,0,229,0,230,0,231,0,231,0,232,0,239,0,237,0,237,0, +246,0,244,0,238,0,238,0,237,0,240,0,247,0,249,0,249,0,250,0,252,0,250,0,248,0,253,0,251,0,246,0, +248,0,248,0,245,0,248,0,250,0,253,0,253,0,250,0,251,0,254,0,0,1,4,1,2,1,0,1,1,1,1,1, +8,1,13,1,8,1,3,1,3,1,3,1,6,1,9,1,4,1,0,1,254,0,250,0,251,0,1,1,255,0,252,0, +0,1,3,1,1,1,252,0,248,0,252,0,4,1,11,1,15,1,16,1,17,1,17,1,10,1,2,1,254,0,0,1, +4,1,4,1,1,1,2,1,4,1,2,1,0,1,2,1,5,1,5,1,3,1,2,1,3,1,0,1,2,1,8,1, +6,1,5,1,12,1,10,1,11,1,20,1,13,1,6,1,11,1,12,1,17,1,22,1,18,1,19,1,21,1,25,1, +31,1,24,1,17,1,16,1,7,1,7,1,16,1,17,1,19,1,16,1,8,1,11,1,15,1,11,1,10,1,12,1, +15,1,18,1,19,1,20,1,22,1,26,1,28,1,29,1,31,1,27,1,27,1,28,1,23,1,21,1,16,1,8,1, +13,1,17,1,14,1,16,1,16,1,15,1,17,1,17,1,15,1,13,1,11,1,13,1,16,1,19,1,18,1,9,1, +6,1,5,1,252,0,248,0,247,0,244,0,250,0,252,0,246,0,245,0,245,0,242,0,244,0,247,0,245,0,247,0, +248,0,241,0,240,0,246,0,240,0,233,0,233,0,228,0,227,0,232,0,227,0,218,0,217,0,217,0,218,0,217,0, +212,0,208,0,209,0,211,0,210,0,212,0,214,0,209,0,206,0,204,0,201,0,205,0,206,0,198,0,198,0,202,0, +195,0,191,0,190,0,186,0,188,0,192,0,190,0,185,0,181,0,180,0,184,0,184,0,183,0,187,0,188,0,185,0, +184,0,187,0,189,0,189,0,188,0,188,0,192,0,197,0,196,0,193,0,193,0,194,0,199,0,202,0,199,0,196,0, +194,0,192,0,192,0,188,0,185,0,193,0,199,0,199,0,194,0,185,0,186,0,195,0,191,0,184,0,183,0,185,0, +187,0,185,0,183,0,185,0,184,0,182,0,181,0,178,0,179,0,180,0,175,0,176,0,179,0,176,0,174,0,175,0, +175,0,173,0,172,0,174,0,179,0,182,0,187,0,192,0,189,0,184,0,187,0,192,0,192,0,190,0,187,0,186,0, +185,0,184,0,185,0,181,0,178,0,182,0,183,0,181,0,181,0,178,0,178,0,181,0,176,0,175,0,176,0,172,0, +166,0,165,0,170,0,168,0,162,0,166,0,165,0,158,0,158,0,161,0,162,0,167,0,165,0,165,0,166,0,159,0, +157,0,160,0,159,0,155,0,151,0,152,0,156,0,157,0,156,0,155,0,154,0,157,0,157,0,154,0,155,0,156,0, +159,0,160,0,156,0,155,0,155,0,149,0,142,0,138,0,134,0,134,0,138,0,134,0,125,0,122,0,119,0,116,0, +122,0,127,0,120,0,117,0,122,0,126,0,123,0,115,0,111,0,111,0,108,0,108,0,114,0,111,0,101,0,99,0, +97,0,94,0,100,0,100,0,93,0,95,0,95,0,91,0,91,0,87,0,86,0,92,0,92,0,93,0,93,0,88,0, +85,0,84,0,83,0,88,0,93,0,88,0,83,0,83,0,81,0,79,0,79,0,77,0,76,0,78,0,78,0,74,0, +71,0,70,0,74,0,77,0,77,0,76,0,71,0,73,0,82,0,83,0,82,0,84,0,85,0,93,0,99,0,99,0, +100,0,95,0,90,0,96,0,95,0,89,0,81,0,75,0,82,0,85,0,82,0,84,0,79,0,76,0,77,0,72,0, +72,0,76,0,77,0,82,0,79,0,75,0,80,0,80,0,82,0,90,0,86,0,87,0,92,0,93,0,96,0,96,0, +93,0,99,0,100,0,100,0,102,0,101,0,105,0,109,0,109,0,111,0,113,0,118,0,118,0,109,0,108,0,112,0, +110,0,108,0,104,0,98,0,96,0,93,0,91,0,92,0,94,0,94,0,96,0,99,0,100,0,96,0,92,0,92,0, +98,0,99,0,92,0,91,0,93,0,90,0,88,0,87,0,86,0,91,0,98,0,97,0,97,0,103,0,105,0,102,0, +103,0,105,0,101,0,99,0,100,0,101,0,104,0,105,0,105,0,106,0,104,0,103,0,105,0,106,0,103,0,102,0, +105,0,106,0,106,0,110,0,111,0,107,0,109,0,115,0,118,0,117,0,116,0,120,0,119,0,115,0,115,0,113,0, +109,0,106,0,101,0,98,0,94,0,87,0,88,0,88,0,83,0,86,0,90,0,88,0,85,0,84,0,82,0,78,0, +76,0,76,0,71,0,73,0,79,0,73,0,67,0,68,0,67,0,68,0,64,0,59,0,58,0,54,0,51,0,52,0, +47,0,44,0,47,0,47,0,45,0,42,0,35,0,32,0,36,0,39,0,35,0,31,0,33,0,34,0,36,0,36,0, +36,0,41,0,43,0,43,0,48,0,54,0,52,0,48,0,47,0,55,0,60,0,54,0,51,0,51,0,53,0,59,0, +60,0,59,0,60,0,62,0,67,0,66,0,64,0,73,0,74,0,68,0,69,0,67,0,60,0,55,0,53,0,60,0, +63,0,53,0,50,0,53,0,51,0,48,0,48,0,51,0,56,0,59,0,62,0,62,0,59,0,60,0,60,0,59,0, +59,0,61,0,66,0,65,0,59,0,61,0,63,0,61,0,62,0,57,0,53,0,61,0,61,0,59,0,67,0,70,0, +67,0,69,0,74,0,80,0,80,0,73,0,70,0,71,0,73,0,78,0,76,0,73,0,75,0,80,0,87,0,90,0, +91,0,96,0,98,0,99,0,99,0,95,0,92,0,93,0,94,0,96,0,93,0,87,0,88,0,89,0,90,0,98,0, +100,0,97,0,99,0,100,0,103,0,109,0,108,0,103,0,103,0,103,0,100,0,99,0,99,0,92,0,88,0,89,0, +85,0,82,0,83,0,77,0,70,0,70,0,68,0,66,0,64,0,57,0,50,0,50,0,49,0,43,0,40,0,41,0, +39,0,37,0,35,0,32,0,36,0,39,0,39,0,44,0,41,0,34,0,34,0,38,0,41,0,40,0,35,0,33,0, +36,0,44,0,47,0,38,0,33,0,35,0,38,0,43,0,44,0,42,0,46,0,44,0,45,0,51,0,47,0,46,0, +49,0,46,0,44,0,46,0,47,0,49,0,47,0,46,0,42,0,36,0,40,0,42,0,42,0,49,0,48,0,45,0, +55,0,59,0,56,0,58,0,58,0,59,0,62,0,59,0,55,0,54,0,52,0,50,0,52,0,55,0,55,0,58,0, +59,0,57,0,61,0,64,0,64,0,63,0,57,0,57,0,62,0,61,0,60,0,60,0,57,0,59,0,56,0,51,0, +55,0,55,0,54,0,59,0,59,0,67,0,75,0,77,0,82,0,84,0,85,0,90,0,89,0,89,0,93,0,89,0, +91,0,97,0,94,0,93,0,94,0,93,0,97,0,99,0,98,0,99,0,96,0,89,0,87,0,85,0,83,0,85,0, +84,0,79,0,80,0,84,0,80,0,78,0,80,0,78,0,77,0,82,0,79,0,73,0,75,0,83,0,83,0,82,0, +88,0,90,0,88,0,87,0,84,0,82,0,79,0,78,0,83,0,81,0,79,0,87,0,89,0,84,0,83,0,82,0, +81,0,85,0,84,0,84,0,89,0,88,0,84,0,81,0,79,0,83,0,86,0,82,0,78,0,81,0,79,0,76,0, +77,0,78,0,78,0,78,0,77,0,80,0,83,0,80,0,82,0,84,0,81,0,82,0,80,0,75,0,79,0,83,0, +79,0,84,0,87,0,79,0,80,0,84,0,84,0,87,0,91,0,92,0,94,0,97,0,97,0,97,0,94,0,91,0, +92,0,87,0,79,0,76,0,76,0,76,0,72,0,65,0,59,0,58,0,59,0,57,0,53,0,54,0,57,0,55,0, +57,0,56,0,49,0,46,0,48,0,49,0,45,0,35,0,32,0,32,0,31,0,36,0,35,0,29,0,31,0,30,0, +26,0,28,0,30,0,29,0,30,0,30,0,31,0,32,0,30,0,32,0,32,0,28,0,30,0,33,0,33,0,32,0, +32,0,34,0,34,0,32,0,33,0,32,0,31,0,34,0,37,0,35,0,33,0,35,0,38,0,39,0,37,0,40,0, +47,0,46,0,46,0,53,0,57,0,61,0,65,0,68,0,75,0,79,0,71,0,71,0,78,0,81,0,82,0,80,0, +74,0,74,0,76,0,77,0,81,0,81,0,78,0,82,0,83,0,78,0,77,0,81,0,83,0,81,0,81,0,88,0, +94,0,94,0,95,0,92,0,87,0,92,0,100,0,99,0,97,0,93,0,92,0,98,0,96,0,92,0,94,0,92,0, +89,0,89,0,89,0,93,0,92,0,90,0,93,0,95,0,94,0,96,0,99,0,99,0,97,0,93,0,92,0,92,0, +91,0,89,0,87,0,89,0,88,0,85,0,88,0,87,0,84,0,86,0,86,0,88,0,89,0,91,0,96,0,94,0, +87,0,89,0,92,0,91,0,92,0,91,0,90,0,94,0,96,0,97,0,101,0,105,0,102,0,99,0,101,0,103,0, +103,0,103,0,101,0,104,0,105,0,101,0,102,0,104,0,103,0,103,0,105,0,108,0,109,0,106,0,107,0,106,0, +105,0,109,0,105,0,102,0,103,0,98,0,96,0,94,0,88,0,88,0,88,0,86,0,90,0,93,0,91,0,88,0, +83,0,89,0,94,0,91,0,91,0,93,0,95,0,98,0,98,0,102,0,105,0,104,0,105,0,100,0,94,0,95,0, +96,0,98,0,96,0,90,0,95,0,98,0,92,0,89,0,83,0,85,0,96,0,92,0,89,0,93,0,88,0,89,0, +95,0,91,0,92,0,96,0,94,0,88,0,84,0,84,0,86,0,84,0,87,0,90,0,86,0,89,0,97,0,93,0, +90,0,89,0,85,0,87,0,87,0,77,0,79,0,84,0,77,0,80,0,87,0,79,0,75,0,78,0,75,0,73,0, +68,0,69,0,76,0,69,0,61,0,66,0,68,0,69,0,70,0,69,0,69,0,68,0,69,0,73,0,75,0,77,0, +79,0,78,0,80,0,85,0,87,0,84,0,82,0,83,0,84,0,86,0,92,0,96,0,93,0,91,0,91,0,98,0, +103,0,96,0,95,0,102,0,102,0,104,0,108,0,106,0,107,0,110,0,111,0,114,0,116,0,117,0,121,0,122,0, +124,0,127,0,128,0,130,0,130,0,131,0,136,0,137,0,137,0,140,0,135,0,135,0,141,0,139,0,141,0,151,0, +154,0,156,0,155,0,153,0,157,0,157,0,156,0,163,0,161,0,157,0,161,0,162,0,162,0,164,0,162,0,166,0, +165,0,159,0,161,0,164,0,162,0,163,0,162,0,163,0,167,0,166,0,162,0,161,0,159,0,160,0,164,0,160,0, +154,0,156,0,160,0,161,0,157,0,152,0,154,0,156,0,153,0,152,0,151,0,151,0,154,0,153,0,153,0,157,0, +156,0,156,0,161,0,161,0,157,0,157,0,158,0,156,0,156,0,156,0,155,0,156,0,156,0,151,0,151,0,159,0, +160,0,155,0,156,0,155,0,155,0,155,0,153,0,154,0,155,0,152,0,152,0,152,0,149,0,152,0,155,0,153,0, +150,0,150,0,151,0,152,0,155,0,155,0,151,0,152,0,154,0,149,0,145,0,143,0,140,0,140,0,137,0,132,0, +131,0,131,0,131,0,130,0,126,0,124,0,125,0,124,0,123,0,121,0,118,0,115,0,118,0,119,0,113,0,110,0, +113,0,114,0,117,0,122,0,119,0,119,0,121,0,120,0,124,0,131,0,130,0,131,0,134,0,133,0,135,0,135,0, +128,0,127,0,134,0,133,0,127,0,126,0,127,0,127,0,126,0,124,0,126,0,128,0,128,0,126,0,123,0,122,0, +123,0,124,0,125,0,124,0,125,0,131,0,128,0,123,0,127,0,128,0,127,0,130,0,129,0,130,0,133,0,129,0, +126,0,129,0,132,0,132,0,131,0,133,0,135,0,130,0,126,0,128,0,131,0,133,0,135,0,135,0,133,0,134,0, +138,0,138,0,136,0,138,0,139,0,141,0,142,0,140,0,140,0,144,0,147,0,150,0,149,0,149,0,157,0,161,0, +157,0,155,0,159,0,164,0,166,0,166,0,167,0,168,0,172,0,174,0,175,0,180,0,179,0,177,0,183,0,183,0, +180,0,184,0,188,0,189,0,193,0,193,0,186,0,186,0,193,0,193,0,189,0,188,0,186,0,184,0,189,0,184,0, +176,0,181,0,182,0,181,0,182,0,178,0,176,0,178,0,177,0,178,0,179,0,173,0,171,0,172,0,172,0,170,0, +168,0,168,0,170,0,166,0,162,0,162,0,161,0,155,0,155,0,157,0,154,0,149,0,145,0,142,0,140,0,140,0, +139,0,136,0,131,0,130,0,134,0,133,0,128,0,127,0,127,0,131,0,131,0,125,0,120,0,120,0,121,0,119,0, +116,0,116,0,118,0,116,0,115,0,113,0,111,0,112,0,110,0,108,0,108,0,106,0,107,0,109,0,106,0,104,0, +105,0,106,0,109,0,108,0,103,0,101,0,98,0,98,0,101,0,96,0,90,0,93,0,93,0,89,0,87,0,86,0, +87,0,89,0,88,0,85,0,86,0,87,0,85,0,88,0,89,0,82,0,84,0,88,0,83,0,81,0,84,0,81,0, +77,0,76,0,74,0,71,0,68,0,69,0,69,0,67,0,69,0,72,0,70,0,67,0,64,0,65,0,71,0,68,0, +66,0,66,0,66,0,67,0,66,0,66,0,71,0,70,0,73,0,76,0,71,0,71,0,73,0,69,0,72,0,75,0, +71,0,70,0,72,0,73,0,69,0,67,0,72,0,72,0,68,0,72,0,75,0,75,0,75,0,73,0,75,0,78,0, +79,0,79,0,76,0,74,0,81,0,84,0,81,0,77,0,76,0,77,0,80,0,81,0,76,0,72,0,77,0,72,0, +66,0,71,0,70,0,68,0,73,0,70,0,68,0,69,0,70,0,73,0,72,0,70,0,70,0,70,0,72,0,69,0, +67,0,70,0,68,0,67,0,71,0,69,0,71,0,75,0,70,0,69,0,70,0,68,0,73,0,74,0,72,0,74,0, +75,0,80,0,79,0,76,0,80,0,78,0,78,0,87,0,84,0,80,0,85,0,84,0,85,0,88,0,85,0,85,0, +88,0,87,0,87,0,85,0,81,0,84,0,89,0,86,0,86,0,90,0,85,0,84,0,93,0,91,0,87,0,92,0, +87,0,85,0,90,0,84,0,82,0,85,0,82,0,84,0,86,0,79,0,74,0,73,0,74,0,76,0,73,0,73,0, +76,0,79,0,79,0,75,0,73,0,72,0,72,0,73,0,72,0,68,0,65,0,63,0,63,0,62,0,57,0,56,0, +56,0,55,0,55,0,54,0,55,0,56,0,52,0,49,0,46,0,45,0,47,0,44,0,40,0,40,0,39,0,39,0, +37,0,35,0,35,0,34,0,31,0,29,0,30,0,28,0,28,0,27,0,22,0,17,0,19,0,17,0,9,0,7,0, +9,0,10,0,6,0,1,0,0,0,255,255,253,255,0,0,0,0,253,255,253,255,251,255,248,255,249,255,251,255,250,255, +248,255,248,255,246,255,244,255,246,255,244,255,238,255,239,255,244,255,243,255,242,255,245,255,250,255,248,255,242,255,243,255, +249,255,250,255,249,255,248,255,246,255,245,255,245,255,242,255,241,255,244,255,243,255,241,255,242,255,241,255,243,255,246,255, +243,255,245,255,248,255,246,255,245,255,246,255,245,255,246,255,246,255,248,255,250,255,246,255,246,255,249,255,251,255,254,255, +250,255,250,255,255,255,252,255,251,255,255,255,251,255,251,255,0,0,252,255,248,255,250,255,248,255,244,255,242,255,246,255, +249,255,245,255,240,255,239,255,241,255,242,255,241,255,241,255,244,255,247,255,248,255,246,255,245,255,247,255,249,255,251,255, +251,255,248,255,250,255,252,255,248,255,245,255,246,255,245,255,243,255,246,255,246,255,245,255,244,255,242,255,241,255,241,255, +239,255,242,255,245,255,242,255,243,255,246,255,243,255,245,255,248,255,247,255,249,255,245,255,242,255,245,255,245,255,241,255, +242,255,243,255,243,255,243,255,243,255,243,255,239,255,235,255,233,255,230,255,232,255,237,255,236,255,233,255,234,255,235,255, +233,255,236,255,239,255,235,255,234,255,238,255,236,255,230,255,229,255,229,255,229,255,227,255,224,255,224,255,226,255,224,255, +222,255,221,255,221,255,221,255,219,255,218,255,218,255,219,255,220,255,216,255,211,255,214,255,215,255,211,255,211,255,210,255, +206,255,206,255,202,255,199,255,203,255,203,255,201,255,205,255,203,255,201,255,202,255,200,255,200,255,203,255,203,255,202,255, +201,255,201,255,198,255,193,255,194,255,195,255,194,255,199,255,198,255,193,255,195,255,195,255,191,255,191,255,189,255,188,255, +192,255,191,255,189,255,190,255,187,255,184,255,186,255,182,255,178,255,182,255,181,255,177,255,177,255,174,255,171,255,173,255, +171,255,168,255,168,255,169,255,168,255,165,255,163,255,164,255,163,255,166,255,168,255,165,255,169,255,170,255,162,255,164,255, +170,255,166,255,163,255,163,255,164,255,164,255,161,255,160,255,158,255,154,255,156,255,159,255,156,255,150,255,149,255,151,255, +151,255,152,255,154,255,150,255,150,255,155,255,157,255,156,255,154,255,150,255,152,255,155,255,155,255,154,255,150,255,149,255, +148,255,146,255,147,255,145,255,143,255,146,255,141,255,137,255,139,255,140,255,140,255,138,255,140,255,143,255,139,255,136,255, +139,255,139,255,139,255,138,255,140,255,143,255,141,255,140,255,140,255,139,255,142,255,143,255,143,255,144,255,144,255,146,255, +149,255,148,255,149,255,150,255,149,255,151,255,151,255,148,255,150,255,149,255,146,255,149,255,151,255,149,255,147,255,146,255, +145,255,146,255,149,255,149,255,151,255,149,255,146,255,149,255,149,255,147,255,149,255,145,255,142,255,147,255,145,255,142,255, +145,255,146,255,147,255,148,255,147,255,148,255,147,255,149,255,151,255,146,255,147,255,150,255,149,255,151,255,152,255,152,255, +153,255,149,255,150,255,154,255,150,255,151,255,154,255,153,255,156,255,160,255,158,255,158,255,159,255,159,255,160,255,162,255, +161,255,156,255,157,255,161,255,158,255,156,255,158,255,160,255,161,255,160,255,159,255,160,255,160,255,160,255,158,255,160,255, +164,255,163,255,162,255,161,255,159,255,160,255,162,255,159,255,155,255,152,255,151,255,153,255,154,255,154,255,151,255,149,255, +147,255,145,255,143,255,145,255,149,255,149,255,144,255,146,255,149,255,145,255,147,255,150,255,148,255,151,255,151,255,150,255, +155,255,150,255,148,255,154,255,150,255,147,255,151,255,149,255,150,255,151,255,149,255,153,255,153,255,148,255,151,255,153,255, +150,255,152,255,153,255,150,255,148,255,151,255,152,255,150,255,148,255,149,255,150,255,148,255,144,255,146,255,149,255,148,255, +145,255,144,255,144,255,147,255,147,255,144,255,147,255,149,255,147,255,147,255,151,255,152,255,149,255,146,255,148,255,151,255, +147,255,143,255,144,255,145,255,145,255,145,255,142,255,137,255,139,255,141,255,140,255,139,255,140,255,140,255,141,255,141,255, +141,255,141,255,144,255,143,255,143,255,143,255,142,255,142,255,145,255,147,255,149,255,148,255,148,255,149,255,152,255,156,255, +158,255,158,255,157,255,159,255,161,255,164,255,166,255,166,255,166,255,164,255,160,255,163,255,169,255,170,255,169,255,166,255, +162,255,164,255,165,255,163,255,165,255,162,255,158,255,160,255,158,255,158,255,162,255,158,255,157,255,164,255,161,255,158,255, +161,255,162,255,162,255,162,255,160,255,160,255,163,255,165,255,165,255,163,255,163,255,163,255,166,255,171,255,170,255,170,255, +171,255,169,255,168,255,168,255,171,255,175,255,171,255,169,255,172,255,169,255,171,255,173,255,170,255,170,255,169,255,169,255, +176,255,176,255,173,255,175,255,175,255,175,255,178,255,179,255,177,255,174,255,178,255,183,255,183,255,182,255,180,255,182,255, +187,255,185,255,184,255,185,255,187,255,193,255,193,255,191,255,196,255,199,255,199,255,199,255,198,255,202,255,202,255,199,255, +201,255,200,255,197,255,196,255,193,255,195,255,198,255,193,255,192,255,197,255,198,255,196,255,196,255,195,255,192,255,193,255, +196,255,195,255,197,255,198,255,195,255,196,255,199,255,197,255,196,255,198,255,200,255,199,255,198,255,202,255,198,255,194,255, +200,255,198,255,196,255,200,255,196,255,197,255,203,255,200,255,201,255,199,255,197,255,205,255,206,255,200,255,198,255,198,255, +202,255,203,255,202,255,206,255,206,255,204,255,211,255,211,255,208,255,209,255,207,255,208,255,211,255,209,255,212,255,217,255, +214,255,212,255,212,255,216,255,216,255,214,255,215,255,219,255,220,255,219,255,218,255,220,255,221,255,220,255,218,255,221,255, +220,255,216,255,216,255,217,255,215,255,214,255,218,255,219,255,218,255,217,255,218,255,220,255,218,255,217,255,220,255,219,255, +217,255,218,255,218,255,220,255,220,255,218,255,218,255,218,255,219,255,222,255,221,255,220,255,224,255,225,255,222,255,222,255, +225,255,227,255,227,255,231,255,237,255,235,255,231,255,231,255,231,255,232,255,235,255,235,255,234,255,234,255,237,255,236,255, +229,255,229,255,238,255,237,255,232,255,235,255,239,255,240,255,238,255,237,255,237,255,237,255,240,255,241,255,237,255,236,255, +240,255,239,255,240,255,242,255,241,255,245,255,248,255,245,255,243,255,243,255,246,255,251,255,249,255,246,255,247,255,245,255, +245,255,249,255,249,255,247,255,247,255,248,255,247,255,247,255,251,255,252,255,251,255,248,255,246,255,250,255,251,255,247,255, +248,255,247,255,245,255,249,255,248,255,243,255,246,255,249,255,246,255,244,255,247,255,250,255,250,255,251,255,252,255,253,255, +253,255,251,255,247,255,250,255,252,255,250,255,249,255,251,255,251,255,253,255,254,255,250,255,250,255,251,255,247,255,248,255, +250,255,244,255,243,255,247,255,243,255,246,255,248,255,241,255,241,255,246,255,245,255,246,255,248,255,247,255,244,255,245,255, +248,255,246,255,246,255,251,255,247,255,244,255,246,255,244,255,242,255,245,255,245,255,244,255,242,255,241,255,241,255,238,255, +237,255,239,255,238,255,234,255,231,255,231,255,232,255,231,255,233,255,235,255,232,255,229,255,226,255,223,255,225,255,226,255, +225,255,225,255,223,255,223,255,226,255,224,255,219,255,215,255,215,255,216,255,216,255,216,255,215,255,212,255,211,255,211,255, +210,255,211,255,212,255,211,255,214,255,216,255,214,255,213,255,212,255,209,255,207,255,207,255,208,255,209,255,206,255,205,255, +208,255,209,255,209,255,204,255,199,255,201,255,204,255,201,255,199,255,197,255,198,255,198,255,196,255,199,255,198,255,197,255, +206,255,206,255,201,255,204,255,205,255,204,255,208,255,206,255,205,255,209,255,210,255,208,255,209,255,211,255,210,255,209,255, +208,255,206,255,207,255,211,255,210,255,209,255,209,255,208,255,212,255,216,255,212,255,210,255,214,255,218,255,215,255,210,255, +213,255,218,255,219,255,218,255,218,255,218,255,218,255,217,255,216,255,218,255,219,255,216,255,214,255,217,255,216,255,215,255, +218,255,218,255,216,255,220,255,220,255,218,255,219,255,223,255,225,255,224,255,222,255,223,255,226,255,229,255,224,255,224,255, +233,255,233,255,228,255,233,255,233,255,232,255,235,255,231,255,230,255,235,255,235,255,231,255,231,255,236,255,239,255,237,255, +239,255,240,255,236,255,237,255,239,255,238,255,239,255,239,255,238,255,238,255,236,255,235,255,236,255,240,255,241,255,237,255, +238,255,244,255,244,255,241,255,241,255,242,255,244,255,242,255,243,255,246,255,245,255,245,255,247,255,245,255,245,255,246,255, +246,255,244,255,245,255,246,255,243,255,244,255,248,255,244,255,243,255,246,255,242,255,242,255,247,255,247,255,243,255,243,255, +246,255,247,255,246,255,243,255,242,255,246,255,248,255,245,255,247,255,250,255,246,255,247,255,250,255,248,255,244,255,243,255, +245,255,246,255,244,255,243,255,242,255,240,255,242,255,241,255,237,255,238,255,241,255,240,255,238,255,237,255,236,255,235,255, +234,255,233,255,231,255,230,255,229,255,228,255,228,255,227,255,224,255,223,255,226,255,228,255,226,255,226,255,224,255,223,255, +226,255,226,255,226,255,226,255,224,255,224,255,225,255,222,255,222,255,224,255,222,255,221,255,220,255,218,255,220,255,219,255, +218,255,217,255,218,255,220,255,218,255,215,255,215,255,217,255,217,255,215,255,214,255,216,255,217,255,215,255,216,255,218,255, +215,255,211,255,214,255,218,255,216,255,217,255,221,255,220,255,219,255,222,255,223,255,223,255,226,255,226,255,224,255,227,255, +232,255,233,255,231,255,232,255,234,255,234,255,234,255,235,255,238,255,239,255,237,255,237,255,236,255,237,255,241,255,239,255, +238,255,242,255,242,255,240,255,240,255,239,255,240,255,240,255,240,255,244,255,246,255,245,255,245,255,246,255,245,255,245,255, +246,255,244,255,242,255,244,255,243,255,242,255,244,255,243,255,239,255,241,255,244,255,243,255,240,255,240,255,240,255,238,255, +242,255,243,255,241,255,243,255,243,255,243,255,245,255,242,255,240,255,242,255,241,255,240,255,241,255,241,255,243,255,242,255, +240,255,240,255,240,255,242,255,243,255,240,255,241,255,242,255,240,255,240,255,243,255,242,255,238,255,239,255,242,255,242,255, +242,255,239,255,236,255,241,255,242,255,237,255,237,255,237,255,237,255,240,255,240,255,240,255,239,255,238,255,241,255,243,255, +242,255,243,255,240,255,237,255,239,255,241,255,245,255,245,255,242,255,243,255,243,255,245,255,250,255,248,255,244,255,246,255, +249,255,248,255,247,255,246,255,248,255,251,255,249,255,248,255,250,255,252,255,252,255,249,255,250,255,0,0,0,0,251,255, +252,255,253,255,254,255,2,0,0,0,252,255,254,255,252,255,249,255,250,255,250,255,249,255,247,255,246,255,247,255,249,255, +248,255,244,255,242,255,246,255,244,255,240,255,244,255,246,255,242,255,243,255,243,255,243,255,243,255,242,255,244,255,242,255, +240,255,241,255,241,255,242,255,241,255,241,255,242,255,241,255,242,255,244,255,240,255,242,255,246,255,240,255,242,255,249,255, +246,255,245,255,246,255,244,255,245,255,245,255,245,255,247,255,246,255,244,255,242,255,241,255,243,255,245,255,244,255,241,255, +238,255,242,255,246,255,241,255,238,255,240,255,239,255,239,255,243,255,242,255,238,255,239,255,239,255,239,255,241,255,243,255, +241,255,241,255,243,255,242,255,237,255,236,255,240,255,242,255,241,255,241,255,242,255,245,255,243,255,240,255,242,255,243,255, +241,255,238,255,237,255,240,255,241,255,239,255,239,255,238,255,239,255,241,255,238,255,236,255,238,255,238,255,240,255,240,255, +238,255,238,255,238,255,242,255,245,255,238,255,238,255,242,255,239,255,239,255,242,255,240,255,238,255,237,255,236,255,237,255, +235,255,236,255,239,255,240,255,240,255,238,255,237,255,237,255,235,255,236,255,239,255,235,255,234,255,240,255,240,255,239,255, +241,255,238,255,235,255,240,255,240,255,237,255,235,255,234,255,236,255,242,255,241,255,238,255,240,255,241,255,242,255,241,255, +238,255,239,255,241,255,240,255,239,255,240,255,241,255,240,255,240,255,238,255,235,255,235,255,236,255,234,255,235,255,234,255, +232,255,232,255,232,255,232,255,231,255,229,255,228,255,228,255,229,255,230,255,226,255,226,255,226,255,223,255,223,255,221,255, +221,255,225,255,224,255,223,255,228,255,225,255,224,255,227,255,226,255,229,255,232,255,229,255,227,255,228,255,229,255,231,255, +230,255,230,255,231,255,228,255,229,255,231,255,231,255,233,255,234,255,232,255,230,255,231,255,232,255,233,255,231,255,228,255, +229,255,234,255,233,255,230,255,231,255,234,255,235,255,234,255,231,255,231,255,233,255,234,255,236,255,234,255,233,255,234,255, +235,255,237,255,236,255,234,255,233,255,231,255,234,255,234,255,230,255,231,255,233,255,227,255,227,255,231,255,231,255,232,255, +232,255,229,255,229,255,230,255,229,255,230,255,232,255,229,255,227,255,228,255,227,255,227,255,228,255,226,255,225,255,227,255, +228,255,226,255,224,255,223,255,225,255,225,255,225,255,226,255,226,255,224,255,224,255,227,255,227,255,224,255,226,255,228,255, +226,255,225,255,225,255,223,255,225,255,226,255,226,255,227,255,227,255,227,255,226,255,224,255,222,255,223,255,225,255,224,255, +221,255,222,255,222,255,220,255,224,255,226,255,225,255,224,255,224,255,224,255,224,255,224,255,225,255,225,255,226,255,227,255, +225,255,224,255,223,255,223,255,226,255,226,255,225,255,224,255,221,255,220,255,222,255,220,255,221,255,223,255,221,255,220,255, +221,255,219,255,218,255,219,255,218,255,216,255,216,255,217,255,217,255,219,255,220,255,217,255,217,255,221,255,221,255,218,255, +217,255,217,255,218,255,219,255,218,255,217,255,219,255,219,255,221,255,222,255,216,255,216,255,223,255,222,255,220,255,222,255, +218,255,218,255,223,255,223,255,219,255,217,255,217,255,218,255,218,255,217,255,215,255,216,255,220,255,218,255,214,255,216,255, +214,255,212,255,214,255,212,255,210,255,209,255,208,255,210,255,212,255,210,255,209,255,207,255,207,255,208,255,204,255,202,255, +206,255,207,255,203,255,203,255,205,255,203,255,201,255,203,255,202,255,202,255,205,255,206,255,205,255,207,255,207,255,206,255, +205,255,206,255,205,255,204,255,207,255,205,255,204,255,206,255,204,255,201,255,203,255,202,255,200,255,202,255,205,255,203,255, +202,255,202,255,201,255,200,255,203,255,202,255,201,255,205,255,203,255,200,255,203,255,203,255,202,255,202,255,202,255,203,255, +201,255,200,255,204,255,203,255,200,255,200,255,200,255,202,255,204,255,203,255,201,255,202,255,204,255,203,255,200,255,202,255, +201,255,197,255,200,255,201,255,197,255,196,255,195,255,194,255,198,255,197,255,193,255,195,255,196,255,195,255,198,255,200,255, +195,255,195,255,197,255,194,255,197,255,200,255,195,255,196,255,200,255,200,255,200,255,199,255,196,255,198,255,200,255,198,255, +197,255,197,255,197,255,196,255,198,255,199,255,200,255,201,255,197,255,197,255,202,255,201,255,199,255,201,255,204,255,204,255, +201,255,201,255,205,255,206,255,205,255,204,255,202,255,205,255,206,255,203,255,205,255,208,255,206,255,205,255,204,255,205,255, +206,255,202,255,204,255,208,255,205,255,204,255,204,255,202,255,202,255,202,255,203,255,204,255,203,255,206,255,207,255,201,255, +200,255,204,255,200,255,197,255,202,255,205,255,204,255,202,255,202,255,205,255,205,255,201,255,201,255,199,255,199,255,203,255, +202,255,201,255,204,255,205,255,205,255,204,255,204,255,209,255,206,255,203,255,210,255,209,255,205,255,208,255,209,255,210,255, +212,255,210,255,213,255,213,255,210,255,213,255,215,255,214,255,216,255,216,255,216,255,216,255,217,255,216,255,214,255,215,255, +219,255,216,255,217,255,219,255,216,255,218,255,219,255,217,255,219,255,220,255,219,255,222,255,222,255,219,255,218,255,222,255, +224,255,221,255,222,255,225,255,223,255,221,255,220,255,219,255,223,255,225,255,222,255,222,255,224,255,225,255,226,255,224,255, +224,255,228,255,228,255,225,255,226,255,226,255,224,255,225,255,226,255,227,255,228,255,228,255,229,255,229,255,229,255,230,255, +230,255,233,255,238,255,237,255,237,255,240,255,236,255,236,255,240,255,239,255,237,255,237,255,237,255,237,255,238,255,237,255, +238,255,238,255,236,255,235,255,237,255,236,255,231,255,231,255,232,255,230,255,234,255,237,255,233,255,232,255,234,255,237,255, +238,255,235,255,235,255,239,255,241,255,243,255,243,255,244,255,247,255,244,255,245,255,248,255,246,255,247,255,249,255,247,255, +247,255,248,255,249,255,250,255,251,255,252,255,251,255,250,255,251,255,250,255,252,255,0,0,253,255,253,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,1,0,3,0,1,0,2,0,5,0,7,0,6,0,4,0,5,0,7,0,5,0, +5,0,6,0,5,0,7,0,11,0,11,0,10,0,13,0,12,0,9,0,11,0,14,0,14,0,15,0,16,0,15,0, +14,0,19,0,23,0,22,0,19,0,18,0,19,0,21,0,21,0,21,0,23,0,21,0,22,0,26,0,25,0,24,0, +24,0,23,0,26,0,29,0,27,0,28,0,29,0,28,0,30,0,29,0,29,0,30,0,28,0,26,0,25,0,28,0, +32,0,28,0,26,0,29,0,29,0,28,0,27,0,27,0,28,0,27,0,28,0,29,0,25,0,28,0,34,0,31,0, +31,0,32,0,30,0,31,0,32,0,32,0,33,0,33,0,33,0,36,0,39,0,39,0,39,0,42,0,43,0,41,0, +44,0,46,0,43,0,46,0,48,0,48,0,50,0,49,0,48,0,55,0,58,0,54,0,56,0,58,0,52,0,51,0, +55,0,55,0,53,0,55,0,55,0,54,0,53,0,55,0,55,0,54,0,55,0,54,0,52,0,57,0,58,0,55,0, +57,0,56,0,57,0,62,0,60,0,56,0,59,0,60,0,59,0,62,0,64,0,64,0,62,0,61,0,65,0,66,0, +66,0,68,0,69,0,67,0,65,0,67,0,69,0,69,0,67,0,66,0,66,0,69,0,72,0,70,0,68,0,69,0, +69,0,69,0,71,0,74,0,76,0,75,0,75,0,74,0,72,0,72,0,76,0,76,0,74,0,75,0,75,0,74,0, +78,0,78,0,74,0,74,0,73,0,74,0,77,0,76,0,78,0,79,0,79,0,81,0,80,0,78,0,80,0,78,0, +79,0,82,0,79,0,78,0,80,0,81,0,82,0,81,0,82,0,86,0,86,0,84,0,84,0,86,0,87,0,86,0, +86,0,88,0,87,0,88,0,91,0,88,0,87,0,91,0,91,0,88,0,87,0,86,0,87,0,89,0,89,0,86,0, +86,0,87,0,87,0,87,0,87,0,86,0,85,0,86,0,85,0,86,0,89,0,88,0,85,0,87,0,87,0,84,0, +87,0,88,0,84,0,87,0,89,0,86,0,86,0,87,0,88,0,89,0,87,0,86,0,88,0,89,0,91,0,92,0, +93,0,90,0,88,0,92,0,93,0,90,0,92,0,94,0,92,0,94,0,93,0,90,0,92,0,93,0,92,0,93,0, +94,0,92,0,92,0,93,0,92,0,94,0,95,0,91,0,93,0,94,0,89,0,89,0,91,0,91,0,93,0,92,0, +90,0,92,0,93,0,90,0,92,0,92,0,89,0,90,0,93,0,91,0,90,0,93,0,93,0,92,0,94,0,96,0, +95,0,94,0,94,0,94,0,91,0,92,0,95,0,95,0,95,0,96,0,95,0,95,0,89,0,89,0,97,0,95,0, +93,0,99,0,96,0,93,0,97,0,96,0,94,0,96,0,96,0,94,0,94,0,94,0,94,0,93,0,96,0,97,0, +96,0,96,0,94,0,97,0,98,0,92,0,94,0,99,0,93,0,89,0,94,0,97,0,94,0,92,0,94,0,96,0, +97,0,96,0,93,0,93,0,96,0,96,0,94,0,95,0,95,0,96,0,99,0,97,0,94,0,95,0,98,0,96,0, +95,0,97,0,97,0,95,0,95,0,95,0,94,0,95,0,96,0,93,0,90,0,92,0,93,0,95,0,97,0,93,0, +92,0,93,0,91,0,92,0,93,0,92,0,92,0,90,0,91,0,94,0,92,0,90,0,91,0,92,0,95,0,93,0, +89,0,90,0,93,0,92,0,92,0,93,0,93,0,93,0,92,0,91,0,90,0,91,0,92,0,92,0,91,0,92,0, +95,0,95,0,93,0,93,0,92,0,93,0,95,0,94,0,95,0,95,0,92,0,96,0,96,0,91,0,95,0,95,0, +92,0,96,0,96,0,92,0,93,0,96,0,95,0,90,0,89,0,94,0,91,0,90,0,94,0,89,0,87,0,93,0, +91,0,88,0,91,0,91,0,89,0,88,0,88,0,91,0,91,0,88,0,86,0,87,0,87,0,84,0,85,0,88,0, +86,0,86,0,87,0,86,0,86,0,86,0,87,0,86,0,83,0,84,0,88,0,87,0,85,0,86,0,87,0,88,0, +86,0,86,0,90,0,88,0,83,0,88,0,92,0,89,0,88,0,88,0,87,0,90,0,90,0,89,0,94,0,92,0, +88,0,89,0,89,0,89,0,89,0,88,0,91,0,87,0,83,0,86,0,88,0,87,0,88,0,84,0,85,0,88,0, +86,0,86,0,86,0,83,0,84,0,87,0,88,0,86,0,86,0,85,0,84,0,85,0,87,0,87,0,85,0,82,0, +80,0,83,0,82,0,81,0,84,0,83,0,80,0,81,0,82,0,82,0,78,0,76,0,79,0,80,0,80,0,81,0, +80,0,81,0,80,0,77,0,80,0,78,0,76,0,80,0,80,0,80,0,81,0,77,0,76,0,80,0,79,0,79,0, +81,0,78,0,77,0,80,0,79,0,77,0,78,0,78,0,76,0,76,0,77,0,75,0,77,0,80,0,78,0,75,0, +76,0,78,0,79,0,77,0,76,0,79,0,81,0,77,0,74,0,78,0,79,0,75,0,77,0,77,0,75,0,77,0, +80,0,78,0,77,0,78,0,75,0,77,0,80,0,78,0,77,0,81,0,82,0,80,0,79,0,80,0,80,0,78,0, +76,0,79,0,79,0,79,0,78,0,76,0,77,0,77,0,76,0,79,0,75,0,73,0,77,0,77,0,76,0,76,0, +73,0,73,0,73,0,72,0,74,0,72,0,72,0,75,0,74,0,72,0,73,0,74,0,74,0,69,0,69,0,71,0, +69,0,70,0,72,0,70,0,70,0,68,0,69,0,71,0,68,0,69,0,71,0,67,0,68,0,68,0,68,0,70,0, +66,0,64,0,71,0,69,0,68,0,73,0,68,0,67,0,72,0,70,0,68,0,70,0,71,0,71,0,68,0,67,0, +71,0,72,0,69,0,70,0,71,0,71,0,71,0,69,0,70,0,73,0,71,0,71,0,72,0,68,0,69,0,72,0, +70,0,69,0,70,0,71,0,73,0,71,0,67,0,68,0,69,0,72,0,73,0,72,0,70,0,71,0,72,0,74,0, +74,0,74,0,74,0,71,0,72,0,76,0,78,0,73,0,70,0,74,0,76,0,74,0,76,0,79,0,77,0,74,0, +74,0,77,0,79,0,75,0,73,0,75,0,75,0,76,0,75,0,75,0,75,0,77,0,78,0,74,0,71,0,74,0, +74,0,72,0,73,0,74,0,73,0,74,0,75,0,74,0,73,0,75,0,76,0,74,0,75,0,75,0,75,0,76,0, +80,0,81,0,75,0,72,0,78,0,79,0,75,0,76,0,76,0,75,0,77,0,76,0,73,0,73,0,76,0,75,0, +72,0,74,0,76,0,74,0,74,0,75,0,74,0,75,0,76,0,76,0,76,0,77,0,76,0,73,0,75,0,77,0, +76,0,76,0,78,0,77,0,78,0,78,0,78,0,79,0,78,0,75,0,74,0,75,0,76,0,75,0,76,0,79,0, +78,0,76,0,78,0,78,0,78,0,79,0,80,0,81,0,80,0,80,0,82,0,81,0,80,0,83,0,84,0,83,0, +83,0,84,0,84,0,81,0,83,0,87,0,85,0,82,0,82,0,84,0,83,0,84,0,86,0,87,0,87,0,86,0, +81,0,83,0,87,0,84,0,86,0,89,0,84,0,85,0,89,0,85,0,84,0,87,0,87,0,86,0,84,0,84,0, +85,0,84,0,84,0,84,0,83,0,83,0,85,0,83,0,80,0,81,0,84,0,82,0,81,0,84,0,82,0,78,0, +79,0,80,0,78,0,80,0,82,0,79,0,79,0,82,0,83,0,80,0,81,0,81,0,78,0,80,0,84,0,84,0, +82,0,84,0,84,0,82,0,81,0,83,0,84,0,82,0,83,0,86,0,83,0,82,0,86,0,84,0,80,0,83,0, +85,0,81,0,77,0,77,0,80,0,80,0,78,0,80,0,80,0,80,0,81,0,81,0,83,0,81,0,78,0,79,0, +79,0,77,0,78,0,77,0,75,0,75,0,74,0,74,0,76,0,75,0,74,0,74,0,74,0,73,0,72,0,72,0, +70,0,73,0,75,0,71,0,70,0,73,0,73,0,71,0,70,0,71,0,71,0,66,0,66,0,67,0,63,0,66,0, +70,0,67,0,67,0,68,0,66,0,65,0,65,0,63,0,64,0,66,0,67,0,66,0,67,0,66,0,63,0,64,0, +66,0,64,0,64,0,64,0,63,0,64,0,63,0,63,0,64,0,62,0,63,0,64,0,61,0,61,0,60,0,55,0, +56,0,59,0,58,0,58,0,58,0,54,0,51,0,52,0,52,0,52,0,54,0,54,0,51,0,51,0,50,0,50,0, +52,0,52,0,50,0,52,0,51,0,47,0,49,0,51,0,47,0,44,0,48,0,48,0,44,0,44,0,43,0,44,0, +47,0,43,0,40,0,44,0,44,0,40,0,40,0,40,0,40,0,42,0,42,0,40,0,38,0,39,0,39,0,35,0, +37,0,39,0,36,0,36,0,38,0,34,0,35,0,38,0,38,0,37,0,33,0,30,0,35,0,36,0,34,0,35,0, +32,0,31,0,33,0,31,0,32,0,31,0,31,0,35,0,32,0,28,0,31,0,34,0,33,0,30,0,28,0,31,0, +28,0,24,0,28,0,29,0,27,0,30,0,29,0,25,0,25,0,27,0,29,0,24,0,21,0,25,0,25,0,23,0, +24,0,23,0,23,0,24,0,25,0,24,0,21,0,20,0,21,0,20,0,21,0,20,0,20,0,21,0,17,0,14,0, +16,0,16,0,15,0,19,0,20,0,15,0,13,0,17,0,18,0,15,0,17,0,17,0,13,0,16,0,18,0,13,0, +13,0,17,0,17,0,14,0,10,0,11,0,13,0,12,0,13,0,13,0,11,0,14,0,17,0,13,0,10,0,12,0, +13,0,12,0,14,0,16,0,12,0,9,0,11,0,12,0,12,0,12,0,12,0,12,0,10,0,8,0,11,0,14,0, +12,0,10,0,9,0,10,0,11,0,8,0,9,0,12,0,9,0,6,0,10,0,12,0,9,0,7,0,8,0,6,0, +5,0,5,0,5,0,5,0,6,0,4,0,3,0,2,0,4,0,6,0,4,0,5,0,7,0,3,0,2,0,3,0, +255,255,1,0,5,0,4,0,1,0,0,0,2,0,4,0,2,0,4,0,4,0,0,0,4,0,5,0,255,255,2,0, +4,0,0,0,2,0,3,0,1,0,1,0,0,0,1,0,2,0,0,0,255,255,253,255,254,255,0,0,253,255,254,255, +0,0,253,255,253,255,255,255,251,255,252,255,0,0,0,0,253,255,250,255,250,255,255,255,253,255,250,255,251,255,250,255, +250,255,252,255,251,255,251,255,252,255,251,255,251,255,253,255,249,255,246,255,250,255,249,255,246,255,249,255,252,255,252,255, +250,255,250,255,251,255,250,255,246,255,248,255,251,255,250,255,249,255,249,255,248,255,248,255,250,255,250,255,246,255,247,255, +252,255,251,255,249,255,250,255,250,255,249,255,249,255,248,255,251,255,250,255,248,255,248,255,246,255,245,255,248,255,247,255, +245,255,247,255,245,255,246,255,250,255,247,255,245,255,246,255,244,255,244,255,244,255,245,255,246,255,246,255,244,255,241,255, +242,255,245,255,243,255,240,255,241,255,242,255,244,255,245,255,241,255,240,255,238,255,237,255,239,255,239,255,238,255,240,255, +239,255,237,255,238,255,241,255,240,255,237,255,238,255,239,255,238,255,238,255,239,255,239,255,240,255,239,255,238,255,239,255, +238,255,236,255,237,255,240,255,239,255,236,255,237,255,241,255,239,255,238,255,240,255,238,255,239,255,239,255,237,255,238,255, +240,255,237,255,238,255,241,255,241,255,241,255,238,255,238,255,239,255,237,255,237,255,239,255,239,255,238,255,237,255,236,255, +237,255,237,255,235,255,235,255,237,255,238,255,235,255,233,255,235,255,236,255,236,255,235,255,231,255,233,255,237,255,235,255, +232,255,232,255,234,255,237,255,236,255,232,255,232,255,232,255,232,255,233,255,234,255,234,255,234,255,235,255,234,255,231,255, +234,255,237,255,235,255,235,255,238,255,236,255,233,255,233,255,235,255,233,255,233,255,236,255,237,255,234,255,234,255,237,255, +237,255,236,255,235,255,236,255,237,255,235,255,237,255,239,255,236,255,234,255,234,255,233,255,236,255,239,255,237,255,237,255, +239,255,238,255,237,255,240,255,241,255,238,255,237,255,237,255,237,255,240,255,240,255,237,255,237,255,238,255,237,255,238,255, +240,255,239,255,238,255,237,255,237,255,236,255,237,255,237,255,236,255,237,255,238,255,238,255,238,255,236,255,237,255,239,255, +237,255,235,255,236,255,235,255,238,255,239,255,237,255,237,255,237,255,236,255,237,255,236,255,237,255,239,255,239,255,239,255, +236,255,235,255,238,255,236,255,234,255,235,255,236,255,238,255,237,255,236,255,241,255,241,255,235,255,238,255,241,255,239,255, +239,255,240,255,238,255,239,255,241,255,240,255,237,255,237,255,240,255,239,255,240,255,243,255,242,255,243,255,243,255,240,255, +242,255,243,255,241,255,241,255,244,255,244,255,241,255,241,255,245,255,244,255,240,255,243,255,243,255,242,255,242,255,241,255, +242,255,245,255,243,255,242,255,242,255,242,255,242,255,244,255,244,255,243,255,241,255,243,255,246,255,246,255,243,255,242,255, +244,255,244,255,244,255,244,255,244,255,242,255,242,255,242,255,241,255,242,255,244,255,243,255,243,255,242,255,243,255,245,255, +243,255,241,255,242,255,240,255,240,255,245,255,245,255,242,255,244,255,245,255,242,255,243,255,243,255,243,255,245,255,246,255, +246,255,246,255,246,255,247,255,244,255,241,255,243,255,247,255,246,255,246,255,245,255,243,255,244,255,244,255,246,255,245,255, +244,255,247,255,247,255,245,255,246,255,247,255,247,255,247,255,244,255,244,255,245,255,243,255,244,255,245,255,245,255,247,255, +246,255,243,255,247,255,245,255,242,255,244,255,243,255,242,255,243,255,243,255,245,255,245,255,245,255,248,255,246,255,243,255, +246,255,246,255,246,255,248,255,247,255,247,255,248,255,244,255,243,255,246,255,245,255,244,255,242,255,244,255,248,255,247,255, +246,255,248,255,246,255,245,255,246,255,248,255,249,255,247,255,246,255,248,255,250,255,249,255,248,255,247,255,251,255,253,255, +249,255,247,255,248,255,250,255,251,255,249,255,245,255,245,255,248,255,251,255,250,255,245,255,245,255,248,255,246,255,246,255, +250,255,247,255,243,255,247,255,247,255,244,255,244,255,243,255,242,255,246,255,246,255,243,255,244,255,244,255,241,255,240,255, +243,255,244,255,244,255,243,255,242,255,243,255,244,255,243,255,241,255,242,255,242,255,242,255,244,255,244,255,244,255,244,255, +243,255,244,255,245,255,242,255,242,255,243,255,242,255,243,255,240,255,239,255,244,255,243,255,239,255,242,255,243,255,240,255, +241,255,243,255,241,255,240,255,240,255,241,255,244,255,244,255,239,255,240,255,243,255,243,255,240,255,241,255,242,255,242,255, +243,255,244,255,242,255,241,255,243,255,243,255,243,255,244,255,242,255,241,255,244,255,241,255,238,255,241,255,243,255,241,255, +238,255,237,255,240,255,240,255,241,255,242,255,239,255,237,255,238,255,238,255,239,255,239,255,237,255,239,255,239,255,236,255, +238,255,240,255,236,255,233,255,233,255,232,255,231,255,234,255,237,255,236,255,233,255,233,255,233,255,233,255,236,255,233,255, +230,255,234,255,236,255,234,255,234,255,234,255,233,255,235,255,234,255,234,255,236,255,236,255,236,255,235,255,233,255,233,255, +235,255,234,255,234,255,235,255,235,255,235,255,235,255,237,255,239,255,234,255,233,255,236,255,236,255,234,255,236,255,236,255, +236,255,236,255,234,255,235,255,235,255,232,255,233,255,235,255,232,255,233,255,235,255,232,255,230,255,231,255,232,255,230,255, +229,255,230,255,232,255,232,255,230,255,229,255,229,255,229,255,229,255,230,255,231,255,232,255,233,255,233,255,232,255,229,255, +227,255,228,255,231,255,228,255,227,255,230,255,230,255,227,255,229,255,229,255,227,255,229,255,230,255,230,255,232,255,232,255, +230,255,231,255,230,255,229,255,231,255,232,255,229,255,228,255,230,255,231,255,230,255,231,255,232,255,229,255,230,255,234,255, +232,255,229,255,230,255,231,255,233,255,232,255,229,255,232,255,231,255,229,255,233,255,233,255,228,255,230,255,231,255,229,255, +228,255,228,255,227,255,228,255,229,255,229,255,228,255,229,255,230,255,227,255,227,255,229,255,228,255,228,255,228,255,226,255, +226,255,225,255,225,255,228,255,226,255,225,255,229,255,229,255,226,255,226,255,225,255,228,255,231,255,228,255,226,255,228,255, +229,255,229,255,228,255,229,255,230,255,227,255,227,255,230,255,229,255,227,255,227,255,229,255,232,255,231,255,228,255,230,255, +230,255,231,255,233,255,230,255,229,255,229,255,226,255,229,255,232,255,226,255,226,255,230,255,227,255,226,255,229,255,230,255, +229,255,230,255,230,255,229,255,227,255,230,255,233,255,229,255,227,255,232,255,231,255,228,255,229,255,231,255,231,255,231,255, +232,255,231,255,232,255,232,255,230,255,231,255,232,255,233,255,232,255,231,255,230,255,231,255,231,255,231,255,232,255,233,255, +233,255,233,255,232,255,232,255,235,255,237,255,234,255,231,255,232,255,235,255,237,255,234,255,233,255,236,255,239,255,239,255, +238,255,236,255,237,255,238,255,237,255,237,255,238,255,235,255,235,255,236,255,236,255,235,255,235,255,235,255,237,255,236,255, +235,255,235,255,236,255,238,255,239,255,238,255,237,255,237,255,236,255,236,255,238,255,238,255,236,255,238,255,239,255,235,255, +235,255,238,255,237,255,238,255,238,255,236,255,238,255,240,255,237,255,235,255,235,255,238,255,242,255,239,255,236,255,238,255, +239,255,239,255,240,255,239,255,238,255,239,255,241,255,240,255,239,255,240,255,241,255,240,255,241,255,241,255,237,255,237,255, +240,255,242,255,241,255,238,255,239,255,242,255,243,255,241,255,239,255,241,255,242,255,239,255,238,255,240,255,241,255,242,255, +241,255,239,255,243,255,242,255,239,255,240,255,239,255,240,255,241,255,237,255,237,255,240,255,237,255,238,255,241,255,239,255, +241,255,242,255,240,255,244,255,244,255,240,255,242,255,243,255,241,255,242,255,243,255,244,255,242,255,240,255,243,255,244,255, +243,255,244,255,243,255,241,255,244,255,243,255,243,255,245,255,245,255,244,255,244,255,245,255,245,255,243,255,241,255,242,255, +243,255,243,255,241,255,237,255,237,255,240,255,239,255,237,255,238,255,241,255,242,255,240,255,239,255,239,255,240,255,241,255, +238,255,235,255,237,255,240,255,238,255,236,255,236,255,237,255,237,255,237,255,238,255,239,255,240,255,237,255,236,255,237,255, +237,255,238,255,240,255,239,255,237,255,236,255,239,255,240,255,237,255,236,255,238,255,237,255,236,255,239,255,239,255,239,255, +239,255,234,255,235,255,238,255,235,255,233,255,237,255,238,255,235,255,232,255,232,255,236,255,236,255,234,255,235,255,234,255, +232,255,234,255,235,255,233,255,233,255,234,255,233,255,232,255,233,255,234,255,234,255,233,255,230,255,230,255,233,255,233,255, +231,255,231,255,231,255,230,255,229,255,230,255,231,255,230,255,229,255,231,255,232,255,231,255,230,255,231,255,229,255,226,255, +226,255,229,255,231,255,229,255,227,255,227,255,229,255,231,255,230,255,229,255,230,255,229,255,228,255,232,255,232,255,228,255, +229,255,230,255,227,255,229,255,230,255,227,255,226,255,226,255,225,255,227,255,225,255,226,255,227,255,224,255,225,255,227,255, +223,255,223,255,227,255,225,255,224,255,226,255,224,255,222,255,222,255,224,255,225,255,222,255,222,255,223,255,220,255,218,255, +222,255,223,255,223,255,223,255,220,255,218,255,219,255,221,255,220,255,218,255,220,255,218,255,215,255,219,255,219,255,215,255, +218,255,219,255,215,255,216,255,217,255,215,255,215,255,215,255,216,255,215,255,214,255,216,255,215,255,211,255,213,255,214,255, +213,255,214,255,215,255,214,255,214,255,214,255,213,255,212,255,211,255,210,255,209,255,209,255,210,255,209,255,209,255,210,255, +210,255,211,255,214,255,213,255,208,255,207,255,211,255,211,255,211,255,211,255,208,255,208,255,211,255,209,255,208,255,208,255, +206,255,206,255,207,255,208,255,209,255,207,255,205,255,208,255,207,255,205,255,206,255,206,255,206,255,207,255,205,255,205,255, +205,255,203,255,206,255,205,255,201,255,203,255,204,255,203,255,204,255,204,255,203,255,202,255,202,255,205,255,205,255,202,255, +202,255,203,255,202,255,202,255,203,255,202,255,201,255,203,255,202,255,199,255,198,255,200,255,200,255,200,255,200,255,198,255, +200,255,201,255,197,255,199,255,202,255,198,255,196,255,197,255,196,255,197,255,199,255,197,255,195,255,196,255,197,255,196,255, +194,255,196,255,196,255,194,255,194,255,195,255,194,255,193,255,194,255,197,255,196,255,193,255,193,255,195,255,194,255,192,255, +191,255,192,255,193,255,193,255,192,255,191,255,192,255,193,255,193,255,194,255,195,255,195,255,192,255,189,255,190,255,192,255, +191,255,191,255,193,255,191,255,189,255,191,255,191,255,191,255,191,255,191,255,192,255,191,255,189,255,191,255,192,255,190,255, +189,255,190,255,189,255,191,255,192,255,189,255,187,255,188,255,189,255,189,255,190,255,189,255,189,255,189,255,187,255,186,255, +188,255,186,255,185,255,188,255,189,255,190,255,188,255,186,255,187,255,188,255,187,255,190,255,191,255,186,255,186,255,189,255, +188,255,188,255,190,255,190,255,189,255,190,255,190,255,189,255,190,255,189,255,189,255,189,255,188,255,188,255,189,255,190,255, +191,255,193,255,194,255,193,255,192,255,193,255,191,255,190,255,194,255,190,255,187,255,191,255,191,255,189,255,193,255,192,255, +190,255,192,255,191,255,192,255,193,255,190,255,192,255,195,255,194,255,195,255,196,255,194,255,193,255,191,255,193,255,196,255, +194,255,194,255,197,255,197,255,197,255,199,255,198,255,195,255,193,255,195,255,198,255,196,255,196,255,197,255,194,255,195,255, +198,255,197,255,198,255,198,255,197,255,197,255,197,255,199,255,202,255,199,255,198,255,200,255,199,255,198,255,199,255,199,255, +200,255,201,255,200,255,202,255,203,255,201,255,203,255,204,255,201,255,202,255,205,255,204,255,202,255,202,255,203,255,203,255, +202,255,203,255,206,255,205,255,200,255,201,255,204,255,205,255,205,255,205,255,206,255,205,255,204,255,206,255,205,255,203,255, +206,255,207,255,205,255,208,255,208,255,208,255,209,255,209,255,210,255,211,255,207,255,209,255,213,255,209,255,209,255,212,255, +210,255,212,255,212,255,210,255,212,255,215,255,212,255,212,255,213,255,213,255,213,255,214,255,215,255,214,255,214,255,217,255, +214,255,213,255,218,255,219,255,218,255,217,255,216,255,219,255,218,255,216,255,218,255,217,255,216,255,218,255,219,255,218,255, +217,255,215,255,217,255,220,255,218,255,218,255,221,255,219,255,220,255,220,255,219,255,221,255,221,255,222,255,223,255,220,255, +219,255,223,255,223,255,222,255,222,255,224,255,225,255,222,255,220,255,222,255,225,255,224,255,222,255,222,255,225,255,227,255, +224,255,224,255,226,255,224,255,225,255,228,255,224,255,222,255,227,255,227,255,226,255,226,255,225,255,226,255,229,255,228,255, +228,255,229,255,229,255,227,255,225,255,225,255,229,255,228,255,227,255,229,255,231,255,230,255,227,255,228,255,229,255,229,255, +230,255,231,255,231,255,231,255,230,255,229,255,235,255,234,255,229,255,232,255,232,255,227,255,231,255,233,255,230,255,232,255, +233,255,231,255,233,255,234,255,233,255,233,255,233,255,232,255,232,255,232,255,234,255,235,255,233,255,233,255,233,255,235,255, +236,255,233,255,231,255,234,255,235,255,235,255,236,255,236,255,238,255,239,255,234,255,235,255,239,255,236,255,235,255,236,255, +235,255,235,255,236,255,237,255,239,255,238,255,238,255,240,255,238,255,236,255,237,255,236,255,237,255,238,255,235,255,236,255, +241,255,239,255,237,255,238,255,238,255,238,255,238,255,239,255,240,255,238,255,237,255,239,255,240,255,239,255,239,255,237,255, +239,255,242,255,239,255,238,255,239,255,241,255,242,255,241,255,240,255,239,255,240,255,242,255,243,255,239,255,242,255,244,255, +242,255,242,255,244,255,243,255,243,255,243,255,245,255,245,255,242,255,240,255,241,255,242,255,243,255,243,255,242,255,243,255, +242,255,241,255,241,255,240,255,242,255,245,255,244,255,244,255,244,255,243,255,244,255,245,255,245,255,244,255,244,255,245,255, +246,255,245,255,244,255,243,255,243,255,244,255,244,255,246,255,247,255,245,255,245,255,246,255,245,255,247,255,248,255,245,255, +247,255,248,255,246,255,246,255,248,255,248,255,249,255,249,255,248,255,250,255,252,255,250,255,250,255,249,255,248,255,249,255, +250,255,249,255,251,255,252,255,250,255,250,255,252,255,251,255,248,255,249,255,251,255,251,255,251,255,251,255,250,255,252,255, +254,255,252,255,251,255,254,255,254,255,252,255,252,255,251,255,250,255,252,255,254,255,255,255,0,0,255,255,254,255,255,255, +255,255,255,255,254,255,254,255,254,255,253,255,251,255,252,255,254,255,255,255,0,0,253,255,253,255,0,0,255,255,255,255, +254,255,253,255,254,255,253,255,253,255,0,0,255,255,254,255,0,0,0,0,0,0,2,0,0,0,1,0,3,0,2,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,5,0,3,0,4,0,5,0,4,0,3,0,3,0,4,0, +4,0,6,0,6,0,4,0,4,0,7,0,5,0,5,0,5,0,3,0,6,0,8,0,4,0,7,0,10,0,7,0, +6,0,8,0,8,0,8,0,8,0,7,0,9,0,9,0,7,0,6,0,8,0,8,0,9,0,11,0,9,0,9,0, +10,0,11,0,13,0,15,0,12,0,11,0,11,0,12,0,13,0,14,0,13,0,14,0,13,0,11,0,11,0,11,0, +14,0,14,0,11,0,12,0,16,0,16,0,15,0,14,0,15,0,15,0,14,0,18,0,18,0,14,0,15,0,19,0, +18,0,18,0,19,0,18,0,18,0,19,0,18,0,18,0,19,0,19,0,19,0,18,0,17,0,19,0,20,0,18,0, +17,0,19,0,21,0,20,0,18,0,20,0,22,0,20,0,20,0,23,0,25,0,23,0,23,0,24,0,23,0,22,0, +24,0,22,0,22,0,25,0,23,0,26,0,30,0,25,0,21,0,24,0,27,0,25,0,24,0,25,0,27,0,27,0, +28,0,29,0,28,0,28,0,28,0,28,0,28,0,28,0,29,0,29,0,30,0,31,0,31,0,30,0,32,0,31,0, +32,0,32,0,31,0,33,0,35,0,32,0,33,0,33,0,31,0,32,0,33,0,33,0,34,0,32,0,33,0,35,0, +34,0,34,0,35,0,36,0,36,0,34,0,33,0,36,0,37,0,35,0,36,0,39,0,38,0,36,0,39,0,38,0, +35,0,36,0,38,0,35,0,37,0,41,0,39,0,38,0,38,0,40,0,41,0,40,0,40,0,41,0,42,0,41,0, +42,0,43,0,42,0,41,0,41,0,42,0,43,0,44,0,43,0,42,0,42,0,44,0,44,0,44,0,43,0,43,0, +46,0,47,0,46,0,47,0,46,0,43,0,45,0,45,0,44,0,45,0,44,0,46,0,47,0,46,0,48,0,47,0, +44,0,47,0,47,0,46,0,49,0,50,0,48,0,49,0,47,0,47,0,45,0,45,0,48,0,48,0,46,0,47,0, +46,0,46,0,48,0,48,0,48,0,48,0,47,0,47,0,47,0,49,0,49,0,47,0,49,0,50,0,48,0,50,0, +50,0,49,0,50,0,50,0,49,0,50,0,50,0,49,0,49,0,49,0,49,0,49,0,50,0,51,0,51,0,51,0, +52,0,51,0,49,0,51,0,52,0,50,0,51,0,52,0,51,0,51,0,50,0,51,0,53,0,52,0,50,0,52,0, +52,0,52,0,54,0,55,0,54,0,52,0,51,0,53,0,53,0,52,0,53,0,55,0,54,0,53,0,55,0,55,0, +53,0,55,0,56,0,53,0,54,0,56,0,55,0,54,0,54,0,55,0,56,0,54,0,55,0,56,0,54,0,55,0, +55,0,53,0,52,0,52,0,54,0,55,0,52,0,54,0,56,0,51,0,51,0,52,0,52,0,55,0,55,0,53,0, +55,0,53,0,52,0,54,0,53,0,53,0,55,0,54,0,53,0,55,0,55,0,52,0,54,0,55,0,54,0,54,0, +54,0,54,0,55,0,53,0,51,0,54,0,56,0,53,0,52,0,53,0,54,0,53,0,52,0,52,0,53,0,53,0, +51,0,52,0,54,0,52,0,52,0,53,0,50,0,49,0,51,0,51,0,52,0,52,0,52,0,51,0,50,0,52,0, +53,0,50,0,47,0,49,0,51,0,52,0,51,0,51,0,50,0,49,0,50,0,49,0,50,0,54,0,52,0,49,0, +52,0,52,0,50,0,50,0,51,0,51,0,49,0,49,0,50,0,49,0,50,0,51,0,49,0,51,0,52,0,51,0, +51,0,51,0,49,0,49,0,48,0,49,0,49,0,46,0,47,0,51,0,51,0,48,0,49,0,49,0,47,0,48,0, +49,0,49,0,50,0,49,0,46,0,47,0,46,0,46,0,47,0,46,0,46,0,47,0,45,0,46,0,47,0,45,0, +45,0,46,0,45,0,46,0,45,0,44,0,46,0,47,0,45,0,43,0,43,0,43,0,43,0,43,0,45,0,44,0, +41,0,41,0,42,0,41,0,41,0,43,0,44,0,42,0,41,0,42,0,43,0,43,0,42,0,42,0,42,0,41,0, +42,0,42,0,41,0,40,0,42,0,43,0,41,0,38,0,39,0,40,0,39,0,40,0,39,0,39,0,41,0,39,0, +38,0,38,0,37,0,36,0,38,0,37,0,37,0,37,0,36,0,37,0,39,0,39,0,38,0,38,0,38,0,37,0, +37,0,35,0,35,0,39,0,39,0,37,0,38,0,35,0,35,0,36,0,33,0,34,0,35,0,33,0,35,0,35,0, +31,0,34,0,36,0,34,0,34,0,33,0,31,0,33,0,34,0,32,0,29,0,30,0,33,0,32,0,31,0,33,0, +31,0,29,0,31,0,33,0,32,0,31,0,30,0,31,0,31,0,30,0,30,0,31,0,32,0,30,0,28,0,28,0, +29,0,28,0,29,0,32,0,29,0,26,0,29,0,28,0,26,0,27,0,28,0,28,0,29,0,29,0,27,0,26,0, +27,0,26,0,24,0,26,0,25,0,22,0,25,0,24,0,24,0,27,0,28,0,26,0,24,0,22,0,24,0,25,0, +24,0,25,0,23,0,21,0,23,0,21,0,20,0,24,0,23,0,20,0,19,0,19,0,20,0,19,0,19,0,19,0, +17,0,18,0,19,0,17,0,19,0,20,0,18,0,18,0,17,0,18,0,19,0,16,0,16,0,18,0,16,0,17,0, +18,0,18,0,16,0,15,0,15,0,17,0,16,0,17,0,17,0,17,0,17,0,17,0,13,0,12,0,14,0,15,0, +16,0,15,0,12,0,13,0,15,0,11,0,11,0,15,0,14,0,11,0,10,0,9,0,10,0,10,0,11,0,12,0, +9,0,9,0,12,0,10,0,8,0,9,0,10,0,10,0,10,0,11,0,9,0,8,0,10,0,9,0,7,0,9,0, +9,0,9,0,8,0,6,0,9,0,12,0,8,0,9,0,10,0,8,0,8,0,8,0,5,0,6,0,5,0,6,0, +7,0,6,0,7,0,8,0,8,0,6,0,4,0,4,0,8,0,8,0,5,0,3,0,3,0,3,0,3,0,4,0, +3,0,2,0,3,0,3,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,1,0,2,0, +1,0,255,255,0,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,255,255,0,0,1,0,0,0,1,0, +1,0,255,255,255,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,254,255,252,255,253,255,254,255,253,255, +255,255,255,255,254,255,0,0,255,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,252,255,253,255, +253,255,253,255,252,255,253,255,253,255,253,255,252,255,252,255,252,255,253,255,254,255,251,255,251,255,252,255,251,255,250,255, +250,255,249,255,251,255,250,255,248,255,252,255,252,255,248,255,250,255,251,255,250,255,250,255,250,255,251,255,251,255,248,255, +248,255,249,255,248,255,249,255,248,255,247,255,249,255,250,255,249,255,249,255,250,255,248,255,246,255,248,255,248,255,245,255, +246,255,248,255,248,255,248,255,246,255,245,255,246,255,246,255,247,255,248,255,246,255,247,255,248,255,248,255,248,255,246,255, +246,255,247,255,245,255,245,255,247,255,246,255,246,255,247,255,245,255,245,255,246,255,246,255,246,255,246,255,245,255,245,255, +245,255,246,255,247,255,246,255,246,255,247,255,245,255,246,255,246,255,243,255,243,255,244,255,243,255,247,255,247,255,243,255, +244,255,246,255,245,255,245,255,241,255,243,255,247,255,244,255,244,255,246,255,243,255,241,255,242,255,242,255,243,255,243,255, +242,255,241,255,241,255,243,255,243,255,242,255,243,255,243,255,244,255,245,255,241,255,242,255,246,255,242,255,241,255,244,255, +243,255,241,255,242,255,243,255,243,255,242,255,241,255,241,255,242,255,242,255,242,255,242,255,241,255,242,255,244,255,242,255, +241,255,242,255,239,255,239,255,243,255,241,255,239,255,240,255,239,255,239,255,242,255,241,255,240,255,243,255,242,255,241,255, +241,255,240,255,240,255,241,255,240,255,240,255,240,255,238,255,241,255,241,255,238,255,241,255,242,255,239,255,239,255,240,255, +241,255,242,255,240,255,240,255,241,255,240,255,241,255,240,255,239,255,241,255,238,255,236,255,240,255,240,255,238,255,240,255, +240,255,241,255,241,255,240,255,240,255,238,255,237,255,238,255,240,255,242,255,241,255,238,255,238,255,240,255,240,255,240,255, +239,255,240,255,241,255,239,255,240,255,242,255,240,255,238,255,240,255,240,255,238,255,238,255,238,255,238,255,239,255,240,255, +238,255,237,255,239,255,239,255,238,255,237,255,238,255,238,255,238,255,237,255,237,255,239,255,239,255,236,255,236,255,240,255, +240,255,238,255,237,255,240,255,240,255,237,255,237,255,239,255,238,255,236,255,237,255,238,255,239,255,238,255,236,255,238,255, +240,255,237,255,238,255,238,255,237,255,236,255,236,255,238,255,238,255,239,255,239,255,238,255,238,255,239,255,239,255,237,255, +237,255,239,255,239,255,238,255,238,255,237,255,238,255,238,255,238,255,238,255,238,255,238,255,239,255,237,255,236,255,238,255, +238,255,237,255,239,255,238,255,235,255,236,255,239,255,239,255,238,255,238,255,237,255,236,255,237,255,238,255,238,255,237,255, +238,255,240,255,238,255,238,255,241,255,241,255,238,255,240,255,239,255,237,255,238,255,239,255,238,255,239,255,240,255,241,255, +240,255,239,255,240,255,238,255,238,255,240,255,238,255,239,255,242,255,239,255,240,255,241,255,238,255,238,255,241,255,240,255, +241,255,239,255,238,255,239,255,240,255,239,255,239,255,240,255,241,255,239,255,239,255,241,255,240,255,240,255,241,255,241,255, +240,255,241,255,241,255,241,255,242,255,242,255,242,255,242,255,242,255,241,255,240,255,241,255,243,255,241,255,240,255,241,255, +241,255,241,255,242,255,242,255,242,255,241,255,241,255,243,255,242,255,241,255,243,255,243,255,242,255,242,255,242,255,242,255, +243,255,242,255,242,255,242,255,244,255,244,255,243,255,243,255,244,255,244,255,243,255,243,255,242,255,242,255,244,255,246,255, +245,255,244,255,245,255,245,255,242,255,242,255,244,255,245,255,247,255,245,255,244,255,246,255,245,255,245,255,248,255,246,255, +243,255,243,255,245,255,245,255,244,255,243,255,247,255,246,255,244,255,246,255,247,255,247,255,247,255,244,255,245,255,246,255, +245,255,244,255,245,255,244,255,246,255,248,255,247,255,247,255,248,255,245,255,246,255,248,255,247,255,246,255,248,255,247,255, +247,255,248,255,247,255,247,255,248,255,248,255,248,255,248,255,247,255,248,255,250,255,250,255,248,255,247,255,245,255,247,255, +251,255,249,255,247,255,249,255,249,255,248,255,250,255,248,255,247,255,249,255,250,255,249,255,249,255,249,255,250,255,250,255, +249,255,248,255,248,255,249,255,249,255,248,255,250,255,251,255,250,255,251,255,252,255,249,255,248,255,250,255,249,255,247,255, +249,255,251,255,251,255,250,255,249,255,250,255,251,255,250,255,250,255,251,255,251,255,249,255,249,255,251,255,253,255,250,255, +250,255,253,255,252,255,252,255,253,255,250,255,250,255,252,255,252,255,251,255,251,255,252,255,252,255,251,255,252,255,253,255, +253,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,254,255,253,255,251,255,252,255,254,255,253,255,253,255,253,255, +253,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,253,255, +255,255,0,0,1,0,255,255,254,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,1,0,255,255, +255,255,255,255,254,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,1,0,0,0, +255,255,0,0,255,255,0,0,2,0,255,255,0,0,3,0,0,0,255,255,0,0,255,255,1,0,2,0,1,0,1,0, +1,0,2,0,1,0,0,0,1,0,1,0,0,0,3,0,3,0,1,0,1,0,3,0,3,0,3,0,2,0,3,0, +3,0,2,0,3,0,2,0,1,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,2,0,0,0,0,0, +3,0,3,0,3,0,3,0,2,0,2,0,4,0,4,0,3,0,1,0,2,0,5,0,5,0,2,0,3,0,4,0, +4,0,6,0,6,0,4,0,6,0,6,0,4,0,2,0,3,0,6,0,5,0,4,0,4,0,4,0,4,0,5,0, +5,0,5,0,6,0,6,0,5,0,4,0,5,0,6,0,5,0,5,0,6,0,6,0,7,0,6,0,6,0,7,0, +6,0,6,0,7,0,5,0,5,0,6,0,6,0,8,0,8,0,6,0,7,0,8,0,7,0,7,0,8,0,8,0, +8,0,6,0,7,0,7,0,7,0,8,0,8,0,7,0,9,0,9,0,7,0,9,0,9,0,7,0,8,0,9,0, +7,0,8,0,9,0,8,0,8,0,9,0,8,0,7,0,8,0,8,0,9,0,8,0,9,0,10,0,8,0,8,0, +10,0,8,0,8,0,9,0,10,0,8,0,9,0,9,0,9,0,9,0,10,0,10,0,11,0,11,0,10,0,9,0, +10,0,9,0,8,0,12,0,12,0,8,0,9,0,11,0,10,0,11,0,10,0,9,0,11,0,12,0,10,0,11,0, +11,0,8,0,9,0,11,0,10,0,10,0,11,0,11,0,9,0,11,0,12,0,11,0,12,0,12,0,11,0,10,0, +11,0,10,0,12,0,13,0,10,0,9,0,11,0,12,0,11,0,12,0,13,0,11,0,10,0,12,0,11,0,9,0, +11,0,13,0,11,0,9,0,11,0,13,0,10,0,11,0,13,0,12,0,12,0,11,0,11,0,13,0,14,0,12,0, +14,0,13,0,10,0,11,0,12,0,12,0,13,0,14,0,13,0,12,0,12,0,13,0,13,0,12,0,13,0,12,0, +13,0,14,0,13,0,12,0,12,0,11,0,13,0,13,0,11,0,12,0,14,0,12,0,13,0,14,0,12,0,11,0, +13,0,14,0,13,0,12,0,12,0,13,0,13,0,13,0,12,0,13,0,14,0,13,0,12,0,14,0,14,0,14,0, +12,0,12,0,14,0,13,0,13,0,15,0,13,0,13,0,16,0,14,0,13,0,14,0,14,0,15,0,14,0,11,0, +13,0,13,0,11,0,13,0,15,0,14,0,14,0,14,0,15,0,14,0,13,0,14,0,14,0,14,0,15,0,15,0, +14,0,15,0,15,0,15,0,14,0,13,0,13,0,13,0,13,0,14,0,14,0,12,0,13,0,13,0,13,0,13,0, +15,0,15,0,14,0,14,0,14,0,15,0,15,0,13,0,12,0,14,0,14,0,12,0,14,0,13,0,12,0,14,0, +11,0,10,0,14,0,13,0,10,0,13,0,13,0,11,0,13,0,12,0,11,0,12,0,13,0,12,0,11,0,12,0, +12,0,12,0,13,0,13,0,11,0,13,0,14,0,10,0,11,0,13,0,13,0,13,0,12,0,11,0,12,0,11,0, +11,0,12,0,11,0,11,0,12,0,13,0,12,0,11,0,10,0,11,0,12,0,12,0,12,0,11,0,10,0,11,0, +11,0,11,0,11,0,11,0,12,0,11,0,10,0,12,0,12,0,10,0,11,0,11,0,9,0,10,0,10,0,10,0, +10,0,10,0,10,0,10,0,10,0,11,0,11,0,8,0,9,0,11,0,8,0,7,0,10,0,8,0,6,0,9,0, +9,0,9,0,10,0,8,0,7,0,9,0,9,0,8,0,8,0,7,0,8,0,10,0,9,0,8,0,9,0,9,0, +8,0,7,0,9,0,10,0,7,0,7,0,9,0,8,0,7,0,7,0,8,0,9,0,9,0,8,0,9,0,8,0, +7,0,8,0,10,0,9,0,8,0,8,0,8,0,7,0,8,0,8,0,8,0,7,0,7,0,8,0,8,0,8,0, +8,0,7,0,7,0,9,0,8,0,7,0,9,0,8,0,6,0,7,0,8,0,8,0,9,0,8,0,8,0,9,0, +9,0,7,0,8,0,8,0,7,0,8,0,9,0,10,0,9,0,8,0,8,0,10,0,11,0,8,0,7,0,9,0, +9,0,7,0,6,0,6,0,7,0,6,0,6,0,9,0,9,0,7,0,8,0,8,0,5,0,6,0,8,0,7,0, +6,0,8,0,9,0,6,0,5,0,7,0,5,0,5,0,7,0,6,0,5,0,7,0,7,0,7,0,8,0,5,0, +5,0,6,0,6,0,7,0,7,0,6,0,7,0,7,0,4,0,4,0,6,0,6,0,5,0,6,0,5,0,4,0, +6,0,6,0,4,0,7,0,8,0,5,0,4,0,6,0,6,0,6,0,6,0,5,0,5,0,6,0,5,0,5,0, +5,0,6,0,5,0,4,0,5,0,6,0,5,0,5,0,5,0,4,0,5,0,6,0,4,0,3,0,4,0,5,0, +5,0,6,0,6,0,4,0,4,0,5,0,5,0,5,0,5,0,3,0,4,0,5,0,5,0,6,0,6,0,5,0, +4,0,5,0,5,0,3,0,2,0,4,0,3,0,3,0,4,0,4,0,5,0,6,0,3,0,4,0,7,0,3,0, +2,0,5,0,4,0,3,0,5,0,4,0,3,0,4,0,4,0,4,0,3,0,3,0,5,0,3,0,2,0,6,0, +5,0,2,0,3,0,5,0,5,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,5,0,4,0,5,0, +5,0,3,0,3,0,3,0,4,0,5,0,5,0,3,0,4,0,5,0,4,0,3,0,5,0,4,0,3,0,4,0, +4,0,3,0,4,0,3,0,3,0,4,0,4,0,4,0,5,0,4,0,4,0,6,0,5,0,6,0,6,0,4,0, +4,0,5,0,4,0,4,0,4,0,4,0,5,0,6,0,5,0,5,0,4,0,5,0,5,0,5,0,6,0,6,0, +5,0,4,0,5,0,6,0,6,0,5,0,6,0,5,0,4,0,6,0,7,0,6,0,6,0,6,0,6,0,6,0, +6,0,5,0,6,0,7,0,7,0,6,0,5,0,5,0,5,0,6,0,8,0,6,0,6,0,7,0,5,0,5,0, +8,0,7,0,6,0,7,0,7,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0, +5,0,5,0,7,0,7,0,4,0,4,0,6,0,5,0,4,0,6,0,7,0,6,0,7,0,7,0,6,0,6,0, +6,0,6,0,7,0,7,0,7,0,7,0,6,0,7,0,7,0,6,0,7,0,7,0,5,0,6,0,6,0,5,0, +5,0,6,0,6,0,5,0,5,0,6,0,7,0,7,0,6,0,7,0,7,0,8,0,7,0,8,0,8,0,6,0, +6,0,7,0,8,0,8,0,7,0,6,0,6,0,7,0,8,0,7,0,6,0,7,0,8,0,6,0,7,0,7,0, +6,0,6,0,9,0,9,0,9,0,8,0,8,0,8,0,7,0,8,0,10,0,9,0,7,0,7,0,9,0,9,0, +7,0,8,0,9,0,9,0,10,0,8,0,7,0,9,0,8,0,8,0,9,0,9,0,8,0,8,0,8,0,8,0, +9,0,8,0,10,0,12,0,8,0,7,0,10,0,10,0,9,0,9,0,9,0,9,0,8,0,8,0,8,0,8,0, +9,0,9,0,8,0,9,0,9,0,9,0,11,0,10,0,8,0,9,0,9,0,10,0,11,0,9,0,10,0,11,0, +9,0,8,0,9,0,7,0,8,0,10,0,9,0,8,0,10,0,10,0,10,0,10,0,11,0,9,0,7,0,9,0, +10,0,10,0,9,0,9,0,8,0,8,0,8,0,9,0,9,0,8,0,9,0,10,0,9,0,9,0,10,0,8,0, +7,0,8,0,8,0,9,0,11,0,10,0,8,0,8,0,9,0,8,0,9,0,11,0,8,0,8,0,9,0,9,0, +8,0,9,0,9,0,8,0,8,0,7,0,8,0,9,0,8,0,8,0,8,0,7,0,8,0,9,0,9,0,9,0, +9,0,9,0,9,0,8,0,8,0,9,0,9,0,8,0,6,0,8,0,9,0,7,0,6,0,8,0,8,0,8,0, +8,0,7,0,7,0,9,0,9,0,8,0,8,0,9,0,9,0,8,0,8,0,9,0,9,0,8,0,6,0,8,0, +9,0,7,0,8,0,10,0,8,0,8,0,9,0,7,0,7,0,7,0,7,0,8,0,8,0,8,0,9,0,8,0, +8,0,9,0,8,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,8,0,7,0,7,0,7,0,6,0,6,0, +7,0,7,0,7,0,7,0,8,0,7,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0, +7,0,7,0,7,0,7,0,5,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,7,0,6,0, +7,0,7,0,6,0,6,0,7,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,7,0,7,0,6,0,5,0, +4,0,4,0,6,0,6,0,6,0,5,0,4,0,5,0,4,0,3,0,6,0,5,0,4,0,5,0,4,0,3,0, +4,0,5,0,6,0,6,0,4,0,3,0,3,0,3,0,4,0,5,0,3,0,4,0,5,0,4,0,2,0,3,0, +5,0,4,0,3,0,4,0,4,0,3,0,3,0,3,0,4,0,4,0,2,0,2,0,4,0,4,0,3,0,3,0, +3,0,4,0,4,0,4,0,4,0,2,0,4,0,5,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,4,0, +4,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,3,0,2,0,3,0,5,0,3,0,1,0,2,0,3,0, +3,0,2,0,1,0,2,0,3,0,2,0,0,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,0,0, +1,0,3,0,2,0,3,0,2,0,0,0,0,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0, +1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,3,0,2,0,0,0, +1,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,3,0,3,0,2,0,1,0,1,0, +2,0,1,0,0,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0, +1,0,3,0,1,0,255,255,1,0,2,0,1,0,0,0,1,0,2,0,0,0,255,255,1,0,2,0,1,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,2,0,0,0,1,0,2,0,0,0,0,0,0,0,255,255, +1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0, +255,255,0,0,2,0,255,255,254,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0, +2,0,1,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0, +2,0,0,0,255,255,2,0,1,0,255,255,1,0,2,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,2,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,1,0, +1,0,1,0,255,255,255,255,1,0,1,0,0,0,1,0,1,0,255,255,0,0,1,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,255,255,254,255, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,254,255,254,255,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,254,255,0,0,0,0,0,0,0,0,254,255,253,255, +255,255,0,0,254,255,255,255,254,255,254,255,254,255,254,255,0,0,1,0,0,0,254,255,254,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,254,255,255,255,0,0, +254,255,254,255,0,0,255,255,255,255,255,255,254,255,0,0,0,0,254,255,255,255,0,0,254,255,255,255,255,255,255,255, +255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,253,255,255,255,255,255, +254,255,254,255,255,255,255,255,253,255,255,255,0,0,255,255,253,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255, +255,255,0,0,255,255,254,255,255,255,255,255,255,255,0,0,254,255,254,255,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,254,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255,255,255,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,0,0,0,0,255,255,255,255,1,0, +0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,255,255,254,255, +255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +254,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,255,255,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255, +254,255,254,255,255,255,0,0,0,0,254,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255, +0,0,0,0,254,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,255,253,255, +0,0,0,0,254,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255, +253,255,254,255,255,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255, +255,255,254,255,255,255,255,255,255,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +255,255,255,255,253,255,254,255,254,255,254,255,254,255,0,0,0,0,254,255,255,255,255,255,255,255,255,255,0,0,255,255, +253,255,255,255,254,255,254,255,255,255,254,255,253,255,254,255,253,255,254,255,254,255,252,255,253,255,255,255,253,255,253,255, +255,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,254,255,253,255,253,255,254,255,253,255,254,255,255,255,254,255, +253,255,255,255,254,255,253,255,253,255,254,255,255,255,254,255,254,255,254,255,253,255,252,255,253,255,253,255,253,255,254,255, +254,255,253,255,253,255,254,255,253,255,253,255,254,255,253,255,253,255,254,255,253,255,252,255,254,255,254,255,253,255,254,255, +254,255,252,255,253,255,253,255,254,255,254,255,253,255,254,255,253,255,252,255,253,255,254,255,252,255,253,255,254,255,252,255, +253,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255, +253,255,254,255,253,255,253,255,253,255,254,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255, +253,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,254,255,253,255,252,255, +254,255,254,255,254,255,253,255,252,255,252,255,253,255,252,255,252,255,253,255,253,255,253,255,252,255,252,255,253,255,252,255, +252,255,253,255,252,255,252,255,253,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255,254,255,253,255,253,255,253,255, +253,255,252,255,253,255,253,255,252,255,253,255,253,255,253,255,253,255,252,255,253,255,252,255,252,255,254,255,254,255,252,255, +252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,252,255, +253,255,253,255,252,255,253,255,254,255,253,255,252,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,254,255, +253,255,252,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,253,255, +254,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,253,255,254,255,253,255,252,255,252,255,252,255, +252,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,252,255,251,255,253,255, +254,255,253,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,253,255,252,255, +253,255,254,255,252,255,253,255,255,255,254,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,253,255,254,255,253,255, +253,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,253,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255, +253,255,252,255,252,255,253,255,254,255,252,255,252,255,254,255,254,255,253,255,254,255,254,255,252,255,252,255,253,255,253,255, +253,255,253,255,253,255,253,255,254,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,254,255,253,255,253,255,253,255, +253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,252,255,252,255,253,255,252,255,252,255,253,255, +252,255,252,255,253,255,253,255,253,255,253,255,252,255,254,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,253,255, +253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,254,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,253,255,254,255,253,255,253,255,254,255,254,255,254,255, +253,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,255,255,0,0,254,255,254,255, +254,255,254,255,254,255,255,255,253,255,254,255,254,255,252,255,252,255,253,255,254,255,254,255,253,255,253,255,255,255,254,255, +253,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,253,255,252,255,253,255,253,255,253,255,254,255, +253,255,253,255,254,255,253,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,253,255,254,255,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,255,255,253,255, +253,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255, +253,255,253,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,255,255,254,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255, +1,0,1,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255, +0,0,1,0,0,0,255,255,0,0,255,255,254,255,0,0,0,0,0,0,0,0,255,255,254,255,0,0,255,255,253,255, +254,255,0,0,0,0,255,255,254,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,1,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,255,255,255,255, +1,0,1,0,0,0,0,0,1,0,0,0,0,0,2,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,2,0,2,0,1,0,2,0,1,0, +1,0,1,0,2,0,1,0,0,0,1,0,2,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0, +0,0,1,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0, +1,0,0,0,0,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,3,0,2,0,0,0,2,0,2,0,1,0,1,0,2,0, +2,0,2,0,1,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,2,0,2,0, +3,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0, +2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,2,0,3,0,3,0,1,0,1,0,3,0,3,0,1,0, +1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0,1,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0, +2,0,2,0,1,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0, +2,0,3,0,3,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0, +3,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0, +2,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0, +3,0,3,0,2,0,2,0,3,0,2,0,2,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0, +3,0,2,0,2,0,2,0,2,0,4,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,3,0, +2,0,1,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0, +3,0,3,0,2,0,2,0,3,0,2,0,2,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0, +4,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0,3,0,3,0, +3,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,3,0,2,0,3,0,4,0, +3,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0, +2,0,3,0,2,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,3,0,3,0,1,0, +2,0,4,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0, +2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,2,0,3,0, +4,0,4,0,3,0,3,0,4,0,3,0,3,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,2,0,3,0, +3,0,2,0,2,0,2,0,2,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0, +4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0, +3,0,3,0,3,0,3,0,2,0,1,0,2,0,3,0,3,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0, +3,0,3,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,4,0,3,0,2,0,3,0,4,0,4,0, +2,0,2,0,4,0,4,0,3,0,3,0,3,0,2,0,1,0,2,0,4,0,4,0,2,0,3,0,4,0,3,0, +3,0,4,0,3,0,3,0,4,0,3,0,2,0,3,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0,3,0, +3,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,3,0,3,0,2,0,3,0, +4,0,3,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0, +3,0,3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0, +3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0, +3,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,4,0,3,0,2,0,2,0,2,0, +2,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0, +3,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0, +2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,3,0, +3,0,2,0,3,0,3,0,2,0,1,0,3,0,3,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,2,0,3,0,2,0,2,0,3,0,2,0,3,0,2,0,1,0,2,0,4,0,3,0,2,0,2,0, +2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0, +1,0,2,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0, +1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0, +1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,255,255,1,0,2,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,2,0,0,0,0,0,1,0, +1,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,254,255,255,255,255,255,255,255,0,0, +255,255,255,255,0,0,0,0,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,254,255,254,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255, +255,255,255,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255, +255,255,0,0,255,255,254,255,254,255,255,255,255,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255, +254,255,255,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255, +254,255,254,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +255,255,254,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255, +253,255,254,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255, +254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,253,255,254,255,255,255,253,255,253,255,254,255,254,255,254,255, +254,255,253,255,253,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255, +254,255,254,255,253,255,253,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255, +254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255, +254,255,253,255,254,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,253,255,253,255,254,255,253,255,254,255,255,255,255,255,254,255,255,255,254,255,253,255,254,255,255,255, +254,255,254,255,254,255,255,255,255,255,254,255,253,255,254,255,255,255,254,255,255,255,255,255,254,255,255,255,0,0,254,255, +253,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255, +255,255,254,255,254,255,254,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255, +254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,254,255,255,255,0,0,254,255,254,255,0,0,0,0,254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255, +254,255,255,255,255,255,254,255,0,0,0,0,255,255,255,255,1,0,0,0,254,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,255,255,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,1,0,1,0,255,255, +0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +1,0,0,0,0,0,255,255,255,255,1,0,1,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,1,0, +0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,1,0,1,0,0,0,255,255,0,0,1,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,255,255,254,255,0,0, +0,0,255,255,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,255,255,1,0,0,0,255,255,1,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,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, +255,255,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zombie1.pcm b/src/client/sound/data/zombie1.pcm new file mode 100755 index 0000000..71e2a92 --- /dev/null +++ b/src/client/sound/data/zombie1.pcm @@ -0,0 +1,11029 @@ +unsigned char PCM_zombie1[132316] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x66,0x2,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x5,0x0,0x5,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x6,0x0, +0x6,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x3,0x0,0xff,0xff, +0x1,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x1,0x0,0x4,0x0,0x9,0x0,0x5,0x0, +0x0,0x0,0x6,0x0,0x8,0x0,0x2,0x0,0x0,0x0,0x1,0x0, +0x4,0x0,0x6,0x0,0x1,0x0,0x0,0x0,0xb,0x0,0xa,0x0, +0xff,0xff,0xff,0xff,0x8,0x0,0x9,0x0,0x6,0x0,0x7,0x0, +0x9,0x0,0xc,0x0,0xa,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x6,0x0,0x7,0x0,0x4,0x0,0x2,0x0,0x6,0x0, +0x8,0x0,0x4,0x0,0xfc,0xff,0xfa,0xff,0x7,0x0,0x9,0x0, +0xf6,0xff,0xf4,0xff,0x8,0x0,0x8,0x0,0xfd,0xff,0xfe,0xff, +0x5,0x0,0x9,0x0,0x2,0x0,0xf4,0xff,0xfc,0xff,0xa,0x0, +0xfc,0xff,0xf2,0xff,0xff,0xff,0x5,0x0,0x0,0x0,0xf9,0xff, +0xf8,0xff,0x2,0x0,0x6,0x0,0xf5,0xff,0xeb,0xff,0xfa,0xff, +0x6,0x0,0xfb,0xff,0xf6,0xff,0xc,0x0,0x17,0x0,0x4,0x0, +0xf9,0xff,0x5,0x0,0x10,0x0,0x5,0x0,0xef,0xff,0xf1,0xff, +0x9,0x0,0x6,0x0,0xed,0xff,0xed,0xff,0x4,0x0,0x7,0x0, +0xf5,0xff,0xf1,0xff,0x4,0x0,0x8,0x0,0xf5,0xff,0xf8,0xff, +0xa,0x0,0x2,0x0,0xfb,0xff,0x8,0x0,0x9,0x0,0xff,0xff, +0x5,0x0,0x5,0x0,0xfa,0xff,0xfb,0xff,0x0,0x0,0xf9,0xff, +0xf3,0xff,0xf8,0xff,0xfd,0xff,0xfd,0xff,0xf9,0xff,0xf8,0xff, +0xfd,0xff,0x5,0x0,0xfe,0xff,0xf5,0xff,0x5,0x0,0xe,0x0, +0xf9,0xff,0xf1,0xff,0x1,0x0,0x3,0x0,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xf5,0xff,0xf6,0xff, +0xf9,0xff,0x4,0x0,0x4,0x0,0xf4,0xff,0xf9,0xff,0xb,0x0, +0x5,0x0,0xf6,0xff,0x0,0x0,0xf,0x0,0xa,0x0,0xfd,0xff, +0xf4,0xff,0xf9,0xff,0x7,0x0,0x3,0x0,0xf1,0xff,0xf4,0xff, +0x2,0x0,0xfc,0xff,0xf4,0xff,0xfc,0xff,0x5,0x0,0xb,0x0, +0xd,0x0,0x0,0x0,0xfa,0xff,0xa,0x0,0xe,0x0,0xfd,0xff, +0xfb,0xff,0x5,0x0,0x3,0x0,0xfa,0xff,0xfa,0xff,0x2,0x0, +0x4,0x0,0xf8,0xff,0xf2,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0xf8,0xff,0xf9,0xff,0x7,0x0,0x5,0x0,0xfe,0xff, +0x6,0x0,0xd,0x0,0x6,0x0,0xfa,0xff,0xf4,0xff,0xfa,0xff, +0xf9,0xff,0xee,0xff,0xf7,0xff,0xd,0x0,0xb,0x0,0xf9,0xff, +0xff,0xff,0x13,0x0,0x14,0x0,0x0,0x0,0xf0,0xff,0xf9,0xff, +0x9,0x0,0xfb,0xff,0xe9,0xff,0xfd,0xff,0x10,0x0,0xfd,0xff, +0xef,0xff,0x0,0x0,0xa,0x0,0xfa,0xff,0xec,0xff,0xf4,0xff, +0x1,0x0,0x7,0x0,0x8,0x0,0x2,0x0,0x4,0x0,0x13,0x0, +0xd,0x0,0xf7,0xff,0xf7,0xff,0x1,0x0,0xfe,0xff,0xfc,0xff, +0xff,0xff,0xfc,0xff,0xfb,0xff,0x4,0x0,0x7,0x0,0xfb,0xff, +0xf9,0xff,0x8,0x0,0x9,0x0,0xfc,0xff,0xfc,0xff,0x9,0x0, +0xf,0x0,0x9,0x0,0x0,0x0,0x5,0x0,0x16,0x0,0x18,0x0, +0x7,0x0,0x1,0x0,0xe,0x0,0x13,0x0,0x6,0x0,0xfd,0xff, +0x1,0x0,0xa,0x0,0x3,0x0,0xee,0xff,0xeb,0xff,0xfb,0xff, +0x3,0x0,0x3,0x0,0x2,0x0,0x6,0x0,0xe,0x0,0xa,0x0, +0xfc,0xff,0xfe,0xff,0x8,0x0,0xb,0x0,0x6,0x0,0x5,0x0, +0x10,0x0,0x11,0x0,0x1,0x0,0x6,0x0,0x14,0x0,0x3,0x0, +0xf4,0xff,0x2,0x0,0x5,0x0,0xf6,0xff,0xf2,0xff,0xf9,0xff, +0x7,0x0,0xe,0x0,0xf7,0xff,0xea,0xff,0x8,0x0,0x16,0x0, +0xfa,0xff,0xf0,0xff,0x4,0x0,0xa,0x0,0xf8,0xff,0xec,0xff, +0xf4,0xff,0xff,0xff,0xfa,0xff,0xf1,0xff,0xf0,0xff,0xf7,0xff, +0xfd,0xff,0xf4,0xff,0xeb,0xff,0xf0,0xff,0xee,0xff,0xea,0xff, +0xf3,0xff,0xee,0xff,0xe2,0xff,0xe9,0xff,0xf0,0xff,0xe5,0xff, +0xda,0xff,0xdd,0xff,0xee,0xff,0xf0,0xff,0xda,0xff,0xd5,0xff, +0xe8,0xff,0xec,0xff,0xe1,0xff,0xdf,0xff,0xe2,0xff,0xe2,0xff, +0xe9,0xff,0xef,0xff,0xe5,0xff,0xdf,0xff,0xe9,0xff,0xe5,0xff, +0xdb,0xff,0xe0,0xff,0xdf,0xff,0xd5,0xff,0xd8,0xff,0xdd,0xff, +0xd7,0xff,0xd8,0xff,0xd9,0xff,0xd0,0xff,0xd1,0xff,0xe0,0xff, +0xe0,0xff,0xd9,0xff,0xe3,0xff,0xec,0xff,0xe8,0xff,0xeb,0xff, +0xf3,0xff,0xed,0xff,0xde,0xff,0xdb,0xff,0xe7,0xff,0xe8,0xff, +0xdc,0xff,0xe2,0xff,0xee,0xff,0xe6,0xff,0xe5,0xff,0xee,0xff, +0xe5,0xff,0xde,0xff,0xe3,0xff,0xe0,0xff,0xdf,0xff,0xec,0xff, +0xf1,0xff,0xf1,0xff,0xfa,0xff,0xfd,0xff,0xf3,0xff,0xef,0xff, +0xf6,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0x8,0x0, +0x13,0x0,0x13,0x0,0xa,0x0,0x6,0x0,0x10,0x0,0x18,0x0, +0xb,0x0,0x1,0x0,0xf,0x0,0x1c,0x0,0x14,0x0,0xa,0x0, +0x11,0x0,0x1d,0x0,0x1e,0x0,0x21,0x0,0x2b,0x0,0x2f,0x0, +0x34,0x0,0x3b,0x0,0x37,0x0,0x33,0x0,0x38,0x0,0x3c,0x0, +0x3e,0x0,0x41,0x0,0x43,0x0,0x46,0x0,0x4a,0x0,0x4a,0x0, +0x44,0x0,0x43,0x0,0x4b,0x0,0x44,0x0,0x30,0x0,0x2c,0x0, +0x2e,0x0,0x27,0x0,0x2c,0x0,0x3c,0x0,0x3e,0x0,0x3c,0x0, +0x3e,0x0,0x3c,0x0,0x36,0x0,0x2d,0x0,0x27,0x0,0x36,0x0, +0x45,0x0,0x38,0x0,0x31,0x0,0x44,0x0,0x47,0x0,0x35,0x0, +0x2d,0x0,0x2f,0x0,0x37,0x0,0x3d,0x0,0x36,0x0,0x2d,0x0, +0x2c,0x0,0x2f,0x0,0x36,0x0,0x34,0x0,0x23,0x0,0x19,0x0, +0x16,0x0,0xf,0x0,0xa,0x0,0xa,0x0,0x10,0x0,0x17,0x0, +0x12,0x0,0x13,0x0,0x21,0x0,0x1d,0x0,0x6,0x0,0xf7,0xff, +0xfa,0xff,0xf9,0xff,0xee,0xff,0xef,0xff,0xa,0x0,0x1d,0x0, +0x13,0x0,0x4,0x0,0x4,0x0,0x7,0x0,0xf1,0xff,0xd2,0xff, +0xcc,0xff,0xd5,0xff,0xcf,0xff,0xc4,0xff,0xcd,0xff,0xe3,0xff, +0xea,0xff,0xe3,0xff,0xdc,0xff,0xd7,0xff,0xd7,0xff,0xd2,0xff, +0xb7,0xff,0xa5,0xff,0xae,0xff,0xb8,0xff,0xc1,0xff,0xc7,0xff, +0xc0,0xff,0xc8,0xff,0xdb,0xff,0xca,0xff,0xad,0xff,0xa8,0xff, +0xab,0xff,0xae,0xff,0xac,0xff,0x9f,0xff,0x9e,0xff,0xb3,0xff, +0xb6,0xff,0xa3,0xff,0x9b,0xff,0xa4,0xff,0xa5,0xff,0x9c,0xff, +0x99,0xff,0x9c,0xff,0xa0,0xff,0xa7,0xff,0x9e,0xff,0x98,0xff, +0xad,0xff,0xaa,0xff,0x92,0xff,0xac,0xff,0xcc,0xff,0xb8,0xff, +0xab,0xff,0xbf,0xff,0xc2,0xff,0xae,0xff,0x94,0xff,0x92,0xff, +0xb1,0xff,0xb1,0xff,0x9b,0xff,0xb2,0xff,0xd0,0xff,0xc3,0xff, +0xb8,0xff,0xc0,0xff,0xd2,0xff,0xe9,0xff,0xe3,0xff,0xc1,0xff, +0xc1,0xff,0xe4,0xff,0xe9,0xff,0xd9,0xff,0xdb,0xff,0xe1,0xff, +0xe4,0xff,0xf6,0xff,0xf6,0xff,0xe6,0xff,0xf8,0xff,0x6,0x0, +0xef,0xff,0xf6,0xff,0x17,0x0,0xd,0x0,0xfb,0xff,0xe,0x0, +0x1f,0x0,0x19,0x0,0x14,0x0,0x1e,0x0,0x24,0x0,0x1a,0x0, +0x12,0x0,0x1e,0x0,0x29,0x0,0x1e,0x0,0xd,0x0,0x12,0x0, +0x20,0x0,0x16,0x0,0x11,0x0,0x28,0x0,0x31,0x0,0x21,0x0, +0x23,0x0,0x33,0x0,0x36,0x0,0x2e,0x0,0x26,0x0,0x34,0x0, +0x48,0x0,0x37,0x0,0x19,0x0,0x28,0x0,0x4a,0x0,0x45,0x0, +0x28,0x0,0x28,0x0,0x42,0x0,0x3f,0x0,0x1c,0x0,0x16,0x0, +0x3a,0x0,0x4f,0x0,0x38,0x0,0x22,0x0,0x3e,0x0,0x61,0x0, +0x4a,0x0,0x2b,0x0,0x41,0x0,0x5c,0x0,0x4c,0x0,0x35,0x0, +0x40,0x0,0x50,0x0,0x45,0x0,0x3c,0x0,0x4c,0x0,0x54,0x0, +0x3c,0x0,0x23,0x0,0x29,0x0,0x38,0x0,0x2b,0x0,0x17,0x0, +0x1f,0x0,0x2c,0x0,0x28,0x0,0x28,0x0,0x2a,0x0,0x24,0x0, +0x24,0x0,0x25,0x0,0x1d,0x0,0x10,0x0,0xc,0x0,0x11,0x0, +0x13,0x0,0xf,0x0,0xd,0x0,0xe,0x0,0xa,0x0,0xfb,0xff, +0xf1,0xff,0xfe,0xff,0xff,0xff,0xef,0xff,0xef,0xff,0xf1,0xff, +0xe6,0xff,0xee,0xff,0xf9,0xff,0xeb,0xff,0xdd,0xff,0xde,0xff, +0xe4,0xff,0xe8,0xff,0xdd,0xff,0xd1,0xff,0xdf,0xff,0xf4,0xff, +0xe7,0xff,0xd3,0xff,0xe3,0xff,0xf2,0xff,0xd4,0xff,0xbb,0xff, +0xd6,0xff,0xf0,0xff,0xe3,0xff,0xd0,0xff,0xdf,0xff,0xf9,0xff, +0xea,0xff,0xcb,0xff,0xda,0xff,0xf8,0xff,0xf1,0xff,0xd7,0xff, +0xd4,0xff,0xf1,0xff,0xf9,0xff,0xd5,0xff,0xd1,0xff,0xf9,0xff, +0xf8,0xff,0xd9,0xff,0xe0,0xff,0xf2,0xff,0xf1,0xff,0xee,0xff, +0xe6,0xff,0xe1,0xff,0xeb,0xff,0xf0,0xff,0xf2,0xff,0xf5,0xff, +0xee,0xff,0xf4,0xff,0xf,0x0,0xc,0x0,0xea,0xff,0xe1,0xff, +0xf8,0xff,0xfe,0xff,0xec,0xff,0xea,0xff,0xf4,0xff,0xea,0xff, +0xe8,0xff,0xf5,0xff,0xf5,0xff,0x4,0x0,0x1d,0x0,0x10,0x0, +0xfe,0xff,0x7,0x0,0x6,0x0,0xf8,0xff,0xf1,0xff,0xfe,0xff, +0x10,0x0,0xa,0x0,0x7,0x0,0x19,0x0,0x18,0x0,0xb,0x0, +0xb,0x0,0xfe,0xff,0xf1,0xff,0xf8,0xff,0x1,0x0,0x8,0x0, +0x14,0x0,0x1e,0x0,0x23,0x0,0x2c,0x0,0x35,0x0,0x2f,0x0, +0x1d,0x0,0x16,0x0,0x11,0x0,0x13,0x0,0x2f,0x0,0x32,0x0, +0xa,0x0,0x9,0x0,0x39,0x0,0x43,0x0,0x1d,0x0,0x9,0x0, +0x19,0x0,0x1e,0x0,0x4,0x0,0xf4,0xff,0xfe,0xff,0x4,0x0, +0xf5,0xff,0xee,0xff,0x8,0x0,0x13,0x0,0xff,0xff,0x8,0x0, +0x1d,0x0,0x13,0x0,0x1d,0x0,0x32,0x0,0x10,0x0,0xef,0xff, +0x3,0x0,0x12,0x0,0xfc,0xff,0xe0,0xff,0xe0,0xff,0xee,0xff, +0xe6,0xff,0xdb,0xff,0xe6,0xff,0xf4,0xff,0xf7,0xff,0xee,0xff, +0xeb,0xff,0xf5,0xff,0xec,0xff,0xde,0xff,0xef,0xff,0xfd,0xff, +0xf9,0xff,0xf9,0xff,0xf6,0xff,0xed,0xff,0xe2,0xff,0xd5,0xff, +0xcc,0xff,0xc6,0xff,0xc0,0xff,0xc2,0xff,0xc3,0xff,0xca,0xff, +0xdc,0xff,0xe0,0xff,0xd3,0xff,0xce,0xff,0xdc,0xff,0xe8,0xff, +0xde,0xff,0xd2,0xff,0xe6,0xff,0xf8,0xff,0xdf,0xff,0xd1,0xff, +0xf0,0xff,0xea,0xff,0xb7,0xff,0xb6,0xff,0xd2,0xff,0xb9,0xff, +0x95,0xff,0xab,0xff,0xda,0xff,0xe8,0xff,0xe2,0xff,0xf8,0xff, +0xe,0x0,0xf0,0xff,0xd2,0xff,0xf4,0xff,0x11,0x0,0xd3,0xff, +0x9b,0xff,0xd4,0xff,0x5,0x0,0xd5,0xff,0xbc,0xff,0xda,0xff, +0xe1,0xff,0xc8,0xff,0xaf,0xff,0xb6,0xff,0xcf,0xff,0xbc,0xff, +0xab,0xff,0xc8,0xff,0xe0,0xff,0xe6,0xff,0xe9,0xff,0xe2,0xff, +0xdf,0xff,0xe4,0xff,0x0,0x0,0x1b,0x0,0xf6,0xff,0xe7,0xff, +0x1f,0x0,0x1e,0x0,0xf3,0xff,0xf0,0xff,0xe1,0xff,0xe1,0xff, +0xf2,0xff,0xc9,0xff,0xca,0xff,0x10,0x0,0x0,0x0,0xd8,0xff, +0x14,0x0,0x39,0x0,0xfa,0xff,0xd8,0xff,0xc,0x0,0x1d,0x0, +0xf2,0xff,0x7,0x0,0x3f,0x0,0x2d,0x0,0x1b,0x0,0x32,0x0, +0x36,0x0,0x36,0x0,0x1d,0x0,0xde,0xff,0xed,0xff,0x1d,0x0, +0xe3,0xff,0xbc,0xff,0x3,0x0,0x18,0x0,0xef,0xff,0x19,0x0, +0x49,0x0,0x20,0x0,0x5,0x0,0x2c,0x0,0x3f,0x0,0x16,0x0, +0xf9,0xff,0x31,0x0,0x57,0x0,0xb,0x0,0xe4,0xff,0x2b,0x0, +0x3b,0x0,0xf9,0xff,0xe9,0xff,0x1,0x0,0x7,0x0,0x13,0x0, +0x1a,0x0,0xfc,0xff,0x4,0x0,0x39,0x0,0x2a,0x0,0xff,0xff, +0xe,0x0,0x12,0x0,0x16,0x0,0x3c,0x0,0x28,0x0,0x5,0x0, +0x3a,0x0,0x5b,0x0,0x13,0x0,0xf7,0xff,0x45,0x0,0x4b,0x0, +0xdf,0xff,0xd6,0xff,0x28,0x0,0x20,0x0,0xf9,0xff,0x4,0x0, +0x14,0x0,0x2c,0x0,0x2c,0x0,0x12,0x0,0x28,0x0,0x36,0x0, +0xf,0x0,0x7,0x0,0x1d,0x0,0x22,0x0,0x16,0x0,0x0,0x0, +0x9,0x0,0x1b,0x0,0xec,0xff,0xc5,0xff,0xdd,0xff,0xe1,0xff, +0xcf,0xff,0xe0,0xff,0xfa,0xff,0x0,0x0,0x1,0x0,0xa,0x0, +0x5,0x0,0xe6,0xff,0xf6,0xff,0x20,0x0,0xfc,0xff,0xdd,0xff, +0x18,0x0,0x32,0x0,0x6,0x0,0xef,0xff,0xf0,0xff,0xf1,0xff, +0xed,0xff,0xd4,0xff,0xbe,0xff,0xd1,0xff,0xf3,0xff,0xeb,0xff, +0xe0,0xff,0x12,0x0,0x27,0x0,0xf2,0xff,0xe8,0xff,0x1c,0x0, +0x2d,0x0,0x8,0x0,0xf3,0xff,0xf,0x0,0x13,0x0,0xfe,0xff, +0x15,0x0,0x1a,0x0,0x2,0x0,0x12,0x0,0x7,0x0,0xde,0xff, +0xdd,0xff,0xc6,0xff,0xb2,0xff,0xea,0xff,0xed,0xff,0x9c,0xff, +0xba,0xff,0x2e,0x0,0xb,0x0,0x94,0xff,0xcc,0xff,0x44,0x0, +0x2,0x0,0x9c,0xff,0xee,0xff,0x47,0x0,0xf7,0xff,0xbc,0xff, +0x4,0x0,0x8,0x0,0xb1,0xff,0xa8,0xff,0xd0,0xff,0xd2,0xff, +0xc4,0xff,0xd0,0xff,0x0,0x0,0xf9,0xff,0xb8,0xff,0xbe,0xff, +0xda,0xff,0xc1,0xff,0xbf,0xff,0xc6,0xff,0xcb,0xff,0xf5,0xff, +0xfc,0xff,0xea,0xff,0x1a,0x0,0x49,0x0,0x40,0x0,0x38,0x0, +0x10,0x0,0xbe,0xff,0xc6,0xff,0x25,0x0,0x13,0x0,0xbc,0xff, +0xee,0xff,0x30,0x0,0xeb,0xff,0xb5,0xff,0xe0,0xff,0xc,0x0, +0x7,0x0,0xc8,0xff,0x9f,0xff,0xe6,0xff,0x36,0x0,0x1b,0x0, +0xde,0xff,0xf5,0xff,0x50,0x0,0x54,0x0,0xd8,0xff,0xa7,0xff, +0xf7,0xff,0x11,0x0,0xdf,0xff,0xd6,0xff,0xea,0xff,0xe1,0xff, +0xd0,0xff,0xd8,0xff,0xc8,0xff,0xa0,0xff,0xdd,0xff,0x36,0x0, +0xe5,0xff,0x95,0xff,0x6,0x0,0x58,0x0,0xe,0x0,0xe7,0xff, +0x24,0x0,0x39,0x0,0xeb,0xff,0xa1,0xff,0xc3,0xff,0x1b,0x0, +0x3a,0x0,0x7,0x0,0xce,0xff,0xe8,0xff,0x2b,0x0,0xf,0x0, +0xa6,0xff,0xa6,0xff,0x11,0x0,0x2b,0x0,0xea,0xff,0xd2,0xff, +0xfd,0xff,0x40,0x0,0x3b,0x0,0xe5,0xff,0xdf,0xff,0x25,0x0, +0x13,0x0,0xce,0xff,0xcd,0xff,0xec,0xff,0xda,0xff,0xaf,0xff, +0xbe,0xff,0xe5,0xff,0xd4,0xff,0xbf,0xff,0xd9,0xff,0xf5,0xff, +0x6,0x0,0x18,0x0,0x8,0x0,0xce,0xff,0xcd,0xff,0x32,0x0, +0x5e,0x0,0x4,0x0,0xd7,0xff,0x10,0x0,0xd,0x0,0xb8,0xff, +0xa4,0xff,0xcf,0xff,0xd5,0xff,0xcc,0xff,0xd8,0xff,0xcb,0xff, +0xce,0xff,0xe,0x0,0x14,0x0,0xd5,0xff,0x8,0x0,0x84,0x0, +0x70,0x0,0xa,0x0,0xd,0x0,0x4a,0x0,0x5c,0x0,0x3d,0x0, +0x8,0x0,0xf2,0xff,0xd,0x0,0x2e,0x0,0x1c,0x0,0xd3,0xff, +0xdc,0xff,0x40,0x0,0x21,0x0,0x9c,0xff,0xa1,0xff,0x0,0x0, +0xc,0x0,0xde,0xff,0xcf,0xff,0xfa,0xff,0x37,0x0,0x53,0x0, +0x43,0x0,0x24,0x0,0x1d,0x0,0x2b,0x0,0x2e,0x0,0x15,0x0, +0xf4,0xff,0xf8,0xff,0x9,0x0,0xe2,0xff,0xad,0xff,0xc0,0xff, +0x2,0x0,0x6,0x0,0xcc,0xff,0xc9,0xff,0x7,0x0,0x30,0x0, +0x32,0x0,0x17,0x0,0xd,0x0,0x37,0x0,0x50,0x0,0x3e,0x0, +0xe,0x0,0xdd,0xff,0x0,0x0,0x39,0x0,0x1a,0x0,0xf6,0xff, +0xf1,0xff,0xfd,0xff,0x37,0x0,0x49,0x0,0xa,0x0,0xd9,0xff, +0xed,0xff,0x3b,0x0,0x44,0x0,0xe3,0xff,0xe2,0xff,0x56,0x0, +0x78,0x0,0x2d,0x0,0xf1,0xff,0xff,0xff,0xd,0x0,0xf4,0xff, +0x7,0x0,0x2f,0x0,0xa,0x0,0xe3,0xff,0xf5,0xff,0xf3,0xff, +0xe9,0xff,0x14,0x0,0xd,0x0,0xb2,0xff,0xbb,0xff,0x38,0x0, +0x50,0x0,0xfe,0xff,0xdf,0xff,0x7,0x0,0x42,0x0,0x5a,0x0, +0x29,0x0,0xec,0xff,0xdc,0xff,0xd5,0xff,0xc8,0xff,0xd9,0xff, +0xf2,0xff,0xe1,0xff,0xc3,0xff,0xc0,0xff,0xe4,0xff,0xd,0x0, +0xfa,0xff,0xd8,0xff,0xec,0xff,0xf7,0xff,0xee,0xff,0xf6,0xff, +0xed,0xff,0xff,0xff,0x25,0x0,0x3,0x0,0xd3,0xff,0xec,0xff, +0x6,0x0,0xee,0xff,0xc3,0xff,0xa1,0xff,0x9b,0xff,0xc6,0xff, +0xf5,0xff,0xe3,0xff,0xd8,0xff,0x3,0x0,0xfe,0xff,0xed,0xff, +0x28,0x0,0x41,0x0,0x5,0x0,0xdd,0xff,0xfd,0xff,0x2e,0x0, +0x17,0x0,0xdf,0xff,0xe5,0xff,0xe5,0xff,0xc0,0xff,0xdc,0xff, +0xe,0x0,0xf0,0xff,0xb2,0xff,0xb6,0xff,0x7,0x0,0x42,0x0, +0x10,0x0,0xd1,0xff,0xed,0xff,0x17,0x0,0x20,0x0,0x32,0x0, +0x33,0x0,0x22,0x0,0x4e,0x0,0x9f,0x0,0x9e,0x0,0x37,0x0, +0xf1,0xff,0x24,0x0,0x46,0x0,0xf6,0xff,0xce,0xff,0xe,0x0, +0x21,0x0,0xfb,0xff,0xff,0xff,0x0,0x0,0xeb,0xff,0x1d,0x0, +0x56,0x0,0x20,0x0,0xf3,0xff,0x1a,0x0,0x26,0x0,0x1b,0x0, +0x37,0x0,0x3b,0x0,0x15,0x0,0x2,0x0,0x13,0x0,0x3a,0x0, +0x61,0x0,0x67,0x0,0x38,0x0,0x14,0x0,0x3a,0x0,0x76,0x0, +0x72,0x0,0x31,0x0,0x8,0x0,0x30,0x0,0x56,0x0,0x30,0x0, +0x10,0x0,0x18,0x0,0x0,0x0,0xe3,0xff,0xef,0xff,0xf6,0xff, +0xff,0xff,0x2b,0x0,0x2d,0x0,0xfc,0xff,0xf5,0xff,0x1b,0x0, +0x4b,0x0,0x66,0x0,0x35,0x0,0x13,0x0,0x47,0x0,0x4d,0x0, +0x21,0x0,0x30,0x0,0x38,0x0,0x10,0x0,0xf4,0xff,0xe3,0xff, +0xe3,0xff,0x3,0x0,0xf5,0xff,0xb7,0xff,0xcd,0xff,0x3d,0x0, +0x60,0x0,0x18,0x0,0x1,0x0,0x36,0x0,0x3b,0x0,0x2,0x0, +0xe9,0xff,0xf9,0xff,0xf1,0xff,0xd2,0xff,0xbf,0xff,0xcf,0xff, +0xee,0xff,0xda,0xff,0xc1,0xff,0xe1,0xff,0xe2,0xff,0xdb,0xff, +0xf,0x0,0xd,0x0,0xed,0xff,0x1a,0x0,0x3a,0x0,0x2e,0x0, +0xd,0x0,0xdf,0xff,0xfd,0xff,0x2e,0x0,0xa,0x0,0xe6,0xff, +0xe0,0xff,0xd2,0xff,0xbb,0xff,0x7f,0xff,0x63,0xff,0xa2,0xff, +0xbd,0xff,0x8e,0xff,0x92,0xff,0xd6,0xff,0xd,0x0,0x2d,0x0, +0x46,0x0,0x31,0x0,0xfb,0xff,0x1,0x0,0x2b,0x0,0x18,0x0, +0xf4,0xff,0x1c,0x0,0x5a,0x0,0x34,0x0,0xe3,0xff,0xeb,0xff, +0xf2,0xff,0x8e,0xff,0x39,0xff,0x43,0xff,0x5f,0xff,0x59,0xff, +0x32,0xff,0x1a,0xff,0x60,0xff,0xc9,0xff,0xc8,0xff,0x80,0xff, +0x7c,0xff,0xa5,0xff,0xa3,0xff,0x8f,0xff,0x75,0xff,0x40,0xff, +0x3b,0xff,0x86,0xff,0x8c,0xff,0x24,0xff,0x1,0xff,0x39,0xff, +0x30,0xff,0xc,0xff,0x2d,0xff,0x41,0xff,0x14,0xff,0xf2,0xfe, +0x14,0xff,0x57,0xff,0x50,0xff,0x23,0xff,0x56,0xff,0x8e,0xff, +0x55,0xff,0x2e,0xff,0x59,0xff,0x49,0xff,0xf,0xff,0x2c,0xff, +0x57,0xff,0x2b,0xff,0x1b,0xff,0x5c,0xff,0x69,0xff,0x38,0xff, +0x4e,0xff,0x92,0xff,0x76,0xff,0x1d,0xff,0x2f,0xff,0x7d,0xff, +0x6c,0xff,0x31,0xff,0x31,0xff,0x3f,0xff,0x3f,0xff,0x4e,0xff, +0x4f,0xff,0x38,0xff,0x33,0xff,0x3a,0xff,0x23,0xff,0x6,0xff, +0x21,0xff,0x51,0xff,0x37,0xff,0x11,0xff,0x49,0xff,0x7d,0xff, +0x5e,0xff,0x3d,0xff,0x29,0xff,0x2c,0xff,0x6d,0xff,0x6b,0xff, +0x8,0xff,0xb,0xff,0x66,0xff,0x6c,0xff,0x3e,0xff,0x40,0xff, +0x4c,0xff,0x34,0xff,0x15,0xff,0x26,0xff,0x67,0xff,0x8e,0xff, +0x70,0xff,0x61,0xff,0xba,0xff,0xb,0x0,0xe9,0xff,0xda,0xff, +0xc,0x0,0x1b,0x0,0x35,0x0,0x61,0x0,0x40,0x0,0x2f,0x0, +0x7d,0x0,0x95,0x0,0x61,0x0,0x6c,0x0,0x9b,0x0,0xb0,0x0, +0xc5,0x0,0xbe,0x0,0xb6,0x0,0x1a,0x1,0x7c,0x1,0x42,0x1, +0xf7,0x0,0x2f,0x1,0xab,0x1,0xc5,0x1,0x22,0x1,0xd2,0x0, +0xb4,0x1,0x24,0x2,0x52,0x1,0x24,0x1,0xbc,0x1,0x9b,0x1, +0x5c,0x1,0x91,0x1,0x66,0x1,0x4d,0x1,0xd8,0x1,0xfd,0x1, +0x8f,0x1,0xa7,0x1,0x9,0x2,0xcf,0x1,0x70,0x1,0x58,0x1, +0x11,0x1,0xca,0x0,0xd3,0x0,0xc5,0x0,0xdc,0x0,0x48,0x1, +0x7d,0x1,0xa6,0x1,0xce,0x1,0x7a,0x1,0x5b,0x1,0xae,0x1, +0x70,0x1,0x10,0x1,0x42,0x1,0x53,0x1,0x57,0x1,0xb0,0x1, +0xa9,0x1,0x77,0x1,0xe0,0x1,0x4,0x2,0x5e,0x1,0x2c,0x1, +0x9a,0x1,0x63,0x1,0xac,0x0,0x75,0x0,0x82,0x0,0x74,0x0, +0x7d,0x0,0x69,0x0,0x2c,0x0,0x3e,0x0,0x92,0x0,0xdc,0x0, +0x22,0x1,0x3c,0x1,0x3e,0x1,0x78,0x1,0x8f,0x1,0x3f,0x1, +0x19,0x1,0x1a,0x1,0xd7,0x0,0xc2,0x0,0xe0,0x0,0x71,0x0, +0xe7,0xff,0xcf,0xff,0x74,0xff,0xa,0xff,0x50,0xff,0x6b,0xff, +0xe3,0xfe,0xe4,0xfe,0x99,0xff,0xf6,0xff,0xf9,0xff,0x3a,0x0, +0x58,0x0,0x16,0x0,0x3,0x0,0xe2,0xff,0x52,0xff,0x6,0xff, +0xf1,0xfe,0x87,0xfe,0x5b,0xfe,0x9c,0xfe,0xba,0xfe,0x9f,0xfe, +0x63,0xfe,0x68,0xfe,0xae,0xfe,0x7c,0xfe,0x44,0xfe,0x9d,0xfe, +0xc5,0xfe,0x9e,0xfe,0x9e,0xfe,0x9c,0xfe,0xaa,0xfe,0x97,0xfe, +0x39,0xfe,0x4b,0xfe,0x73,0xfe,0xdf,0xfd,0x8f,0xfd,0xb,0xfe, +0x42,0xfe,0xf1,0xfd,0xa7,0xfd,0xba,0xfd,0x41,0xfe,0x80,0xfe, +0xfd,0xfd,0xbc,0xfd,0x29,0xfe,0x74,0xfe,0x95,0xfe,0xd6,0xfe, +0xe4,0xfe,0xf7,0xfe,0x3d,0xff,0x1b,0xff,0xba,0xfe,0xc1,0xfe, +0xbe,0xfe,0x56,0xfe,0x3,0xfe,0xd7,0xfd,0xda,0xfd,0x67,0xfe, +0xad,0xfe,0xee,0xfd,0xb3,0xfd,0xbd,0xfe,0x31,0xff,0xa9,0xfe, +0xb4,0xfe,0x27,0xff,0x13,0xff,0x5,0xff,0x6a,0xff,0xbc,0xff, +0xc6,0xff,0x9b,0xff,0x18,0xff,0xa5,0xfe,0xe6,0xfe,0x5d,0xff, +0x24,0xff,0x7d,0xfe,0x46,0xfe,0xe0,0xfe,0x91,0xff,0x47,0xff, +0xc8,0xfe,0x5f,0xff,0x6,0x0,0xbe,0xff,0x63,0xff,0x7c,0xff, +0xc5,0xff,0xc9,0xff,0x64,0xff,0x6c,0xff,0xfa,0xff,0xf8,0xff, +0x9a,0xff,0xcd,0xff,0x2d,0x0,0xf5,0xff,0x79,0xff,0x89,0xff, +0xe3,0xff,0xeb,0xff,0x15,0x0,0x3a,0x0,0xbf,0xff,0xce,0xff, +0xbf,0x0,0xcf,0x0,0xf5,0xff,0xb5,0xff,0x35,0x0,0xa6,0x0, +0x7c,0x0,0xf4,0xff,0xc7,0xff,0xe7,0xff,0xf6,0xff,0xf3,0xff, +0xdb,0xff,0xf8,0xff,0x5c,0x0,0x5f,0x0,0x40,0x0,0x9b,0x0, +0xc8,0x0,0x80,0x0,0x6b,0x0,0x97,0x0,0xce,0x0,0xfd,0x0, +0xe4,0x0,0xd3,0x0,0x11,0x1,0x34,0x1,0x4,0x1,0xaa,0x0, +0x6d,0x0,0x6e,0x0,0x60,0x0,0x3f,0x0,0x29,0x0,0x4,0x0, +0x21,0x0,0x6d,0x0,0x65,0x0,0x57,0x0,0x6e,0x0,0x83,0x0, +0xe0,0x0,0x38,0x1,0x30,0x1,0x24,0x1,0x3,0x1,0xe6,0x0, +0x16,0x1,0xf8,0x0,0x85,0x0,0x84,0x0,0xb8,0x0,0x8a,0x0, +0x4b,0x0,0x6f,0x0,0x9d,0x0,0x81,0x0,0xb0,0x0,0x39,0x1, +0x2f,0x1,0x94,0x0,0x56,0x0,0xba,0x0,0xf6,0x0,0x52,0x0, +0xad,0xff,0x1f,0x0,0xb0,0x0,0x75,0x0,0x61,0x0,0xac,0x0, +0x6f,0x0,0x2,0x0,0x10,0x0,0x15,0x0,0xd2,0xff,0xbc,0xff, +0xeb,0xff,0x44,0x0,0xb5,0x0,0x7,0x1,0x6,0x1,0xc9,0x0, +0xba,0x0,0xbd,0x0,0x94,0x0,0xb0,0x0,0x9f,0x0,0xd8,0xff, +0xc4,0xff,0xad,0x0,0xe1,0x0,0x66,0x0,0x36,0x0,0x43,0x0, +0x5b,0x0,0x33,0x0,0xe6,0xff,0x16,0x0,0x54,0x0,0x34,0x0, +0x41,0x0,0x66,0x0,0x5e,0x0,0xa6,0x0,0x19,0x1,0xf6,0x0, +0x83,0x0,0x79,0x0,0xb8,0x0,0xd2,0x0,0x8d,0x0,0xeb,0xff, +0xb6,0xff,0x3e,0x0,0x49,0x0,0xa3,0xff,0xa4,0xff,0x34,0x0, +0x21,0x0,0xae,0xff,0xd4,0xff,0x66,0x0,0xa8,0x0,0x91,0x0, +0x74,0x0,0x5f,0x0,0x4e,0x0,0x50,0x0,0x4a,0x0,0x11,0x0, +0xe4,0xff,0x37,0x0,0x87,0x0,0x25,0x0,0xde,0xff,0x68,0x0, +0x97,0x0,0xa7,0xff,0xde,0xfe,0x46,0xff,0xfa,0xff,0xd8,0xff, +0x47,0xff,0x5e,0xff,0x12,0x0,0x5e,0x0,0x2e,0x0,0x4e,0x0, +0x66,0x0,0xd3,0xff,0x87,0xff,0xa,0x0,0x39,0x0,0xd2,0xff, +0xa6,0xff,0xcd,0xff,0xf7,0xff,0xf3,0xff,0x90,0xff,0x38,0xff, +0x58,0xff,0x7d,0xff,0x48,0xff,0x36,0xff,0x95,0xff,0xde,0xff, +0xcc,0xff,0xca,0xff,0xf1,0xff,0x3,0x0,0x1,0x0,0xfd,0xff, +0xff,0xff,0x0,0x0,0xde,0xff,0x95,0xff,0x29,0xff,0xeb,0xfe, +0x53,0xff,0xa3,0xff,0x8,0xff,0x7c,0xfe,0xe7,0xfe,0x86,0xff, +0x5d,0xff,0xb8,0xfe,0xcc,0xfe,0x96,0xff,0xf2,0xff,0xf5,0xff, +0x15,0x0,0x1b,0x0,0x3e,0x0,0x81,0x0,0x69,0x0,0x30,0x0, +0x16,0x0,0xfa,0xff,0xf9,0xff,0x0,0x0,0xe6,0xff,0xcc,0xff, +0xb5,0xff,0x99,0xff,0xa9,0xff,0xdb,0xff,0xc9,0xff,0x8d,0xff, +0xc3,0xff,0x2f,0x0,0x1a,0x0,0xaf,0xff,0x87,0xff,0xc7,0xff, +0x0,0x0,0xce,0xff,0x87,0xff,0x88,0xff,0x8d,0xff,0x4d,0xff, +0x28,0xff,0x87,0xff,0xa0,0xff,0xe5,0xfe,0x9f,0xfe,0x35,0xff, +0x8c,0xff,0x8d,0xff,0x68,0xff,0x1f,0xff,0x5a,0xff,0xc8,0xff, +0x88,0xff,0x17,0xff,0x4a,0xff,0xde,0xff,0xe1,0xff,0x46,0xff, +0x15,0xff,0x55,0xff,0x36,0xff,0xfd,0xfe,0x22,0xff,0x63,0xff, +0x94,0xff,0xc4,0xff,0xe2,0xff,0xba,0xff,0x56,0xff,0x25,0xff, +0x46,0xff,0x83,0xff,0xda,0xff,0x30,0x0,0x54,0x0,0x8e,0x0, +0xf0,0x0,0xdc,0x0,0x49,0x0,0xf8,0xff,0xda,0xff,0x7d,0xff, +0x3a,0xff,0x67,0xff,0xb8,0xff,0xae,0xff,0x84,0xff,0x0,0x0, +0x68,0x0,0x9e,0xff,0xf0,0xfe,0x59,0xff,0xca,0xff,0xd,0x0, +0x5f,0x0,0x24,0x0,0xb2,0xff,0xc4,0xff,0x1d,0x0,0x3a,0x0, +0xa6,0xff,0xe5,0xfe,0x28,0xff,0x9d,0xff,0xc,0xff,0x95,0xfe, +0xf5,0xfe,0x27,0xff,0xf7,0xfe,0x1f,0xff,0xab,0xff,0xbe,0xff, +0xf2,0xfe,0x6e,0xfe,0xc4,0xfe,0x17,0xff,0x6d,0xff,0xd3,0xff, +0x74,0xff,0xf3,0xfe,0x81,0xff,0x43,0x0,0xde,0xff,0xde,0xfe, +0xd3,0xfe,0x64,0xff,0x17,0xff,0xa3,0xfe,0x3f,0xff,0xf5,0xff, +0xf4,0xff,0xe3,0xff,0xdc,0xff,0x7e,0xff,0x4e,0xff,0xa0,0xff, +0xa4,0xff,0x66,0xff,0xcf,0xff,0x85,0x0,0xf0,0x0,0x1c,0x1, +0xdf,0x0,0xb1,0x0,0xc3,0x0,0x4e,0x0,0xf6,0xff,0x6c,0x0, +0x9b,0x0,0x2c,0x0,0xb6,0xff,0xba,0xff,0xa1,0x0,0x42,0x1, +0x9a,0x0,0x1a,0x0,0x89,0x0,0x7,0x1,0x31,0x1,0xd9,0x0, +0x5b,0x0,0xb9,0x0,0x8b,0x1,0x9a,0x1,0x1b,0x1,0x10,0x1, +0x5c,0x1,0xa,0x1,0x74,0x0,0x9b,0x0,0xaf,0x0,0x1d,0x0, +0x26,0x0,0xa2,0x0,0x7e,0x0,0x84,0x0,0xfb,0x0,0xce,0x0, +0x60,0x0,0x9f,0x0,0xd5,0x0,0x63,0x0,0x4c,0x0,0x45,0x1, +0x6,0x2,0x63,0x1,0x9b,0x0,0x20,0x1,0xb0,0x1,0xda,0x0, +0xf3,0xff,0x2e,0x0,0x51,0x0,0xbf,0xff,0x97,0xff,0x4b,0x0, +0x1,0x1,0xc0,0x0,0xf9,0xff,0x19,0x0,0xca,0x0,0xde,0x0, +0x7e,0x0,0x7,0x0,0x15,0x0,0x3e,0x1,0x5,0x2,0x68,0x1, +0xd0,0x0,0xdc,0x0,0xe,0x1,0x3c,0x1,0xd8,0x0,0x37,0x0, +0x90,0x0,0x16,0x1,0x96,0x0,0x1c,0x0,0x86,0x0,0x0,0x1, +0xc4,0x0,0x3d,0x0,0xbc,0x0,0x25,0x2,0x5c,0x2,0x63,0x1, +0x40,0x1,0xbc,0x1,0xaf,0x1,0x35,0x1,0x72,0x0,0xdf,0xff, +0xe5,0xff,0xe4,0xff,0xc4,0xff,0xe1,0xff,0xf8,0xff,0x5,0x0, +0x3,0x0,0xb9,0xff,0x93,0xff,0xcd,0xff,0xf5,0xff,0xdd,0xff, +0x9e,0xff,0x90,0xff,0x1b,0x0,0x76,0x0,0xd0,0xff,0x8c,0xff, +0x60,0x0,0x2e,0x0,0xed,0xfe,0x6,0xff,0xa1,0xff,0x0,0xff, +0xa8,0xfe,0x58,0xff,0xa2,0xff,0x62,0xff,0x47,0xff,0x1c,0xff, +0xba,0xfe,0xb8,0xfe,0x33,0xff,0x69,0xff,0x3f,0xff,0x4b,0xff, +0xab,0xff,0x42,0x0,0x91,0x0,0x62,0x0,0x77,0x0,0x84,0x0, +0xd8,0xff,0x54,0xff,0x1b,0xff,0xaf,0xfe,0xbf,0xfe,0x25,0xff, +0x4a,0xff,0x89,0xff,0x99,0xff,0x65,0xff,0x84,0xff,0x78,0xff, +0xf5,0xfe,0x8b,0xfe,0x87,0xfe,0x20,0xff,0xb5,0xff,0xaf,0xff, +0xf5,0xff,0xa1,0x0,0xf9,0x0,0x10,0x1,0x81,0x0,0x5b,0xff, +0xbf,0xfe,0x9a,0xfe,0x86,0xfe,0xaa,0xfe,0xcb,0xfe,0x23,0xff, +0xdc,0xff,0x49,0x0,0x5e,0x0,0x6a,0x0,0x5a,0x0,0x40,0x0, +0x24,0x0,0xd0,0xff,0x45,0xff,0x7,0xff,0x3a,0xff,0xa,0xff, +0xad,0xfe,0x11,0xff,0x51,0xff,0xee,0xfe,0x3,0xff,0x6c,0xff, +0x72,0xff,0x32,0xff,0xf0,0xfe,0x2a,0xff,0x74,0xff,0xf0,0xfe, +0xac,0xfe,0x27,0xff,0x9,0xff,0x95,0xfe,0xe8,0xfe,0x7d,0xff, +0xb4,0xff,0xaf,0xff,0xc4,0xff,0x35,0x0,0x3d,0x0,0x37,0xff, +0x72,0xfe,0xbe,0xfe,0xec,0xfe,0x99,0xfe,0x80,0xfe,0xcb,0xfe, +0x6a,0xff,0xcb,0xff,0x53,0xff,0xe3,0xfe,0xc,0xff,0xfd,0xfe, +0xfe,0xfe,0xa3,0xff,0xd8,0xff,0x95,0xff,0x46,0x0,0x22,0x1, +0x9b,0x0,0xf3,0xff,0x6b,0x0,0x77,0x0,0x6b,0xff,0x29,0xff, +0x49,0x0,0xd0,0x0,0xf9,0xff,0xce,0xff,0xf3,0x0,0x4,0x1, +0xd0,0xff,0xd9,0xff,0x8c,0x0,0xed,0xff,0x4b,0xff,0xcd,0xff, +0xee,0xff,0x88,0xff,0x2,0x0,0x91,0x0,0x15,0x0,0xf4,0xff, +0x9b,0x0,0x5a,0x0,0xa3,0xff,0xda,0xff,0x1,0x0,0xc9,0xff, +0x37,0x0,0x69,0x0,0x1a,0x0,0xaf,0x0,0x2a,0x1,0x16,0x0, +0x3c,0xff,0xcf,0xff,0x9,0x0,0x1a,0xff,0x9a,0xfe,0x53,0xff, +0xfd,0xff,0xf8,0xff,0x48,0x0,0xa9,0x0,0xf9,0xff,0x5a,0xff, +0xce,0xff,0xb7,0xff,0xed,0xfe,0x37,0xff,0xc0,0xff,0x4c,0xff, +0x81,0xff,0xab,0x0,0xca,0x0,0xe,0x0,0xb,0x0,0x74,0x0, +0x13,0x0,0x39,0xff,0x60,0xff,0x2e,0x0,0x30,0x0,0x1c,0x0, +0x79,0x0,0x54,0x0,0x69,0x0,0x0,0x1,0x65,0x0,0x10,0xff, +0xc4,0xfe,0xf9,0xfe,0x55,0xfe,0x32,0xfd,0x48,0xfd,0x47,0xfe, +0x39,0xfe,0x4d,0xfe,0xb0,0xff,0xd2,0xff,0x75,0xfe,0x1f,0xfe, +0xa3,0xfe,0xed,0xfe,0xce,0xfe,0x39,0xfe,0x30,0xfe,0xa7,0xfe, +0x6e,0xfe,0x69,0xfe,0xe2,0xfe,0x38,0xfe,0x34,0xfd,0x9d,0xfd, +0x64,0xfe,0x32,0xfe,0xb4,0xfd,0xec,0xfd,0xc6,0xfe,0x56,0xff, +0x39,0xff,0x3,0xff,0xa,0xff,0x45,0xff,0x85,0xff,0x44,0xff, +0xd5,0xfe,0x2a,0xff,0xc0,0xff,0x98,0xff,0xef,0xfe,0x63,0xfe, +0x5a,0xfe,0xa1,0xfe,0x63,0xfe,0xa8,0xfd,0x31,0xfd,0x71,0xfd, +0x55,0xfe,0xa5,0xfe,0xf5,0xfd,0x14,0xfe,0x2c,0xff,0x86,0xff, +0x64,0xff,0x5c,0xff,0xf2,0xfe,0xac,0xfe,0xd0,0xfe,0x96,0xfe, +0x71,0xfe,0x4c,0xff,0xf3,0xff,0xf9,0xfe,0x24,0xfe,0x62,0xff, +0x5b,0x0,0xb,0xff,0xe3,0xfd,0x50,0xfe,0xb4,0xfe,0xeb,0xfe, +0x92,0xff,0xa6,0xff,0x77,0xff,0x88,0x0,0x6c,0x1,0x93,0x0, +0x1a,0x0,0xe3,0x0,0x45,0x1,0xa4,0x1,0x2,0x2,0x40,0x1, +0x15,0x1,0x0,0x2,0xb2,0x1,0x85,0x0,0x1a,0x0,0xca,0x0, +0x3e,0x2,0x96,0x2,0xbf,0x1,0x48,0x2,0x75,0x3,0x47,0x3, +0xec,0x2,0x5,0x3,0x8c,0x2,0x3,0x2,0x96,0x2,0x51,0x3, +0xb2,0x2,0x53,0x2,0xa4,0x3,0xed,0x3,0x6f,0x2,0x8a,0x2, +0x23,0x4,0x37,0x4,0x8,0x3,0xa1,0x2,0xe6,0x2,0x8b,0x2, +0xef,0x1,0xf3,0x1,0xe3,0x1,0xd1,0x1,0x10,0x2,0x5d,0x1, +0xf1,0x0,0x84,0x2,0xb,0x3,0x4e,0x1,0xc6,0x0,0xd2,0x1, +0x4a,0x2,0x40,0x2,0x1f,0x2,0xea,0x1,0x43,0x2,0x16,0x3, +0x70,0x3,0x3c,0x3,0x7d,0x3,0xce,0x3,0xd,0x3,0xc2,0x2, +0xaf,0x3,0x74,0x3,0x2a,0x2,0x93,0x1,0x2a,0x1,0x52,0x1, +0x42,0x2,0xe,0x2,0x77,0x1,0x40,0x2,0x42,0x3,0xe6,0x3, +0x58,0x4,0xf2,0x3,0x19,0x3,0x31,0x2,0x58,0x1,0x5d,0x1, +0x79,0x1,0xd9,0x0,0xd,0x1,0x64,0x2,0xb7,0x2,0x9c,0x1, +0x48,0x1,0xea,0x1,0xfe,0x0,0x5d,0xff,0xc9,0xff,0xb3,0x0, +0x8e,0x0,0x99,0x0,0xf5,0x0,0xdf,0x1,0x82,0x2,0x17,0x1, +0x98,0x0,0xb1,0x1,0xd1,0xff,0xd8,0xfd,0xac,0xff,0xbd,0xff, +0xa,0xfd,0x54,0xfd,0x46,0xff,0xc5,0xfe,0x7d,0xfd,0x9c,0xfd, +0x25,0xfe,0x70,0xfe,0xf4,0xfe,0xbe,0xfe,0x1b,0xfe,0x47,0xff, +0x25,0x0,0x81,0xfe,0x2f,0xfe,0x8b,0xff,0xd2,0xfe,0x77,0xfd, +0x7a,0xfd,0xa7,0xfd,0xe1,0xfd,0xf6,0xfd,0x95,0xfd,0x82,0xfd, +0x9f,0xfd,0x97,0xfd,0xd,0xfd,0x30,0xfc,0xad,0xfc,0x76,0xfd, +0xda,0xfc,0x5c,0xfd,0x6a,0xff,0xeb,0xff,0x10,0xff,0xf3,0xfe, +0x76,0xff,0xfd,0xfe,0x9a,0xfd,0x78,0xfd,0xcc,0xfd,0xcc,0xfc, +0xb,0xfd,0xab,0xfe,0x96,0xfe,0x51,0xfe,0xac,0xfe,0x6e,0xfd, +0x8b,0xfc,0x44,0xfd,0xbc,0xfc,0xba,0xfb,0xc8,0xfc,0x7c,0xfe, +0x41,0xff,0x70,0xff,0x4b,0xff,0x6b,0xff,0xd6,0xff,0xd0,0xfe, +0xb2,0xfc,0x85,0xfc,0x6c,0xfd,0x6d,0xfc,0xcb,0xfb,0x22,0xfd, +0x5c,0xfd,0x2d,0xfd,0x79,0xfe,0x27,0xfe,0xb6,0xfc,0x9f,0xfd, +0x1b,0xfe,0x74,0xfc,0x72,0xfc,0xb0,0xfd,0x64,0xfd,0x4c,0xfd, +0x3b,0xfe,0x17,0xfe,0xce,0xfd,0xf9,0xfe,0x3,0xff,0xe,0xfd, +0x21,0xfd,0x18,0xff,0x6d,0xfe,0x98,0xfc,0x69,0xfd,0xfa,0xfe, +0x30,0xff,0x9e,0xfe,0xe5,0xfd,0xb1,0xfe,0x56,0x0,0xb1,0xff, +0x74,0xfe,0x52,0xff,0x26,0x0,0xd5,0xff,0x90,0xff,0x54,0xff, +0x7b,0xff,0xf,0x0,0xee,0xff,0x77,0xff,0x92,0xff,0xe6,0xff, +0x32,0x0,0x9e,0x0,0x23,0x1,0xd5,0x1,0x66,0x2,0xdd,0x1, +0xdd,0x0,0xd8,0x1,0x5e,0x3,0xc4,0x1,0xe9,0xff,0x50,0x1, +0x25,0x2,0x1d,0x1,0xb0,0x1,0x4b,0x2,0x32,0x1,0x7b,0x1, +0x88,0x2,0x75,0x1,0x34,0x0,0x1d,0x0,0x83,0xff,0x63,0xff, +0x9d,0x0,0x91,0x0,0x61,0xff,0xc5,0xff,0x3e,0x0,0x51,0xff, +0xb2,0xff,0xe5,0x0,0xc7,0xff,0xe2,0xfe,0xd2,0x0,0xa0,0x1, +0xf9,0xff,0x12,0x0,0x4d,0x1,0x6a,0x0,0xc0,0xff,0x8c,0x0, +0xe6,0xff,0xf,0xff,0x72,0x0,0x50,0x1,0x1b,0x0,0x47,0xff, +0xc6,0xff,0x0,0x0,0xd3,0xfe,0xaa,0xfd,0x8,0xfe,0x25,0xfe, +0x64,0xfd,0x50,0xfe,0x7,0x0,0xc4,0xff,0x39,0xff,0x48,0x0, +0x8,0x1,0x9b,0x0,0xa7,0x0,0x1b,0x1,0x8c,0x0,0xd,0x0, +0xe4,0x0,0x44,0x1,0x8d,0x0,0x91,0x0,0xe5,0x0,0x85,0x0, +0x83,0x0,0x7f,0x0,0x95,0xff,0x47,0xff,0xee,0xff,0x22,0x0, +0x32,0x0,0x9f,0x0,0x91,0x0,0xd1,0xff,0x2c,0xff,0x19,0xff, +0x73,0xfe,0x97,0xfc,0xb,0xfc,0x66,0xfd,0x67,0xfd,0x98,0xfc, +0x6c,0xfd,0x1a,0xfe,0x3b,0xfe,0x61,0xff,0x85,0xff,0xf8,0xfd, +0xe0,0xfd,0x66,0xff,0xa8,0xff,0x80,0xfe,0x91,0xfe,0xc7,0xff, +0x4d,0xff,0x13,0xfe,0x64,0xfe,0x6a,0xfe,0x6b,0xfd,0xbf,0xfc, +0x9d,0xfb,0xda,0xfa,0xe7,0xfb,0x7e,0xfc,0xc0,0xfb,0xc5,0xfb, +0x11,0xfd,0xa,0xfe,0x6,0xfd,0xd9,0xfb,0x33,0xfd,0x5a,0xfe, +0x75,0xfd,0xaa,0xfd,0xd9,0xfe,0x3b,0xff,0x77,0x0,0xcb,0x1, +0xd9,0x0,0x3,0x0,0x66,0x1,0xbd,0x1,0x29,0xff,0xc0,0xfd, +0xa0,0xff,0xce,0x0,0xfc,0xff,0x5e,0x0,0xd2,0x1,0xb,0x2, +0x11,0x1,0x98,0xff,0x9a,0xfe,0x27,0xff,0x17,0x0,0xfc,0xff, +0xe6,0xff,0x1a,0x1,0xcf,0x2,0xc8,0x3,0xe8,0x3,0x93,0x3, +0x4b,0x3,0x38,0x3,0xad,0x2,0x98,0x1,0x4a,0x1,0x67,0x2, +0xbf,0x3,0xbd,0x3,0xb9,0x2,0xc1,0x2,0xc2,0x3,0x5c,0x3, +0xa9,0x1,0xd0,0x0,0xe6,0x0,0x6,0x1,0xf,0x1,0x7b,0x0, +0x9b,0xff,0x2c,0x0,0xbe,0x1,0xe6,0x1,0xe,0x1,0x36,0x1, +0x6b,0x1,0x4f,0x0,0x75,0xff,0xef,0xff,0xbe,0x0,0xa3,0x1, +0x6e,0x2,0x1,0x2,0x20,0x1,0x76,0x1,0xe4,0x1,0xe0,0x0, +0xa8,0xff,0xcf,0xff,0x20,0x1,0x56,0x2,0x3c,0x2,0xef,0x1, +0xaa,0x3,0x75,0x5,0x58,0x4,0x26,0x3,0x6e,0x4,0x27,0x5, +0x49,0x4,0x23,0x4,0x9c,0x4,0x27,0x5,0x80,0x5,0xe6,0x3, +0x82,0x1,0x13,0x1,0x70,0x1,0x1,0x1,0x98,0x0,0x16,0x1, +0xed,0x2,0x92,0x4,0x13,0x4,0x91,0x3,0xba,0x4,0x19,0x5, +0x1e,0x4,0xfe,0x3,0xca,0x4,0x2d,0x5,0x40,0x5,0x83,0x5, +0x33,0x5,0x45,0x4,0xe9,0x3,0xf0,0x2,0x71,0x0,0x34,0xff, +0xa8,0xff,0x90,0xff,0xa1,0xff,0x2b,0x0,0x0,0x0,0xf3,0xff, +0x25,0x0,0xda,0xff,0x9e,0xff,0x32,0xff,0xa5,0xfe,0xd2,0xfe, +0x1,0xff,0x16,0xff,0xbc,0xff,0x12,0x0,0xf5,0xff,0x58,0x0, +0xdc,0x0,0x65,0x0,0xa6,0xfe,0x2f,0xfd,0x6a,0xfd,0xe4,0xfd, +0xae,0xfd,0x16,0xfe,0xd4,0xfe,0xfc,0xfe,0x1f,0xff,0x19,0xff, +0xce,0xfe,0x19,0xff,0x1d,0xff,0x4c,0xfe,0xb8,0xfe,0x4b,0x0, +0x4c,0x0,0x55,0xff,0xc8,0xff,0x93,0x0,0x9d,0xff,0xef,0xfd, +0x87,0xfd,0x9e,0xfd,0xec,0xfc,0xb2,0xfc,0x9f,0xfd,0x50,0xfe, +0x9a,0xfe,0x3c,0xff,0xe4,0xff,0x8,0x0,0x59,0xff,0x4e,0xfe, +0xeb,0xfd,0xe0,0xfd,0x67,0xfd,0xe6,0xfc,0xe0,0xfc,0x48,0xfd, +0x88,0xfd,0xe7,0xfc,0xcb,0xfb,0x1b,0xfb,0xb7,0xfa,0x3f,0xfa, +0x48,0xfa,0xd4,0xfa,0x96,0xfa,0x43,0xfa,0xb9,0xfb,0x19,0xfd, +0xc1,0xfc,0x26,0xfd,0x2,0xfe,0xf5,0xfc,0x1b,0xfc,0x99,0xfc, +0xdb,0xfb,0x4e,0xfa,0x26,0xfa,0xe1,0xfa,0xd4,0xfa,0x71,0xf9, +0xbe,0xf8,0x19,0xfa,0x7e,0xfa,0xef,0xf8,0xc6,0xf8,0xa,0xfa, +0x75,0xfa,0x7e,0xfa,0xd2,0xfa,0x5e,0xfb,0x54,0xfc,0xf2,0xfc, +0xbb,0xfc,0x79,0xfc,0xa6,0xfc,0x15,0xfd,0x30,0xfd,0xa5,0xfc, +0x6c,0xfc,0x14,0xfd,0x40,0xfd,0x11,0xfc,0xb,0xfb,0x70,0xfb, +0x26,0xfc,0x10,0xfc,0xb0,0xfb,0xd5,0xfb,0xe,0xfd,0xbd,0xfe, +0xe4,0xfe,0x54,0xfe,0xd2,0xff,0x87,0x1,0xd1,0x0,0x2a,0x0, +0x91,0x0,0x55,0x0,0xbf,0x0,0x20,0x1,0x16,0xff,0x28,0xfe, +0x9,0x0,0x20,0x0,0x7e,0xfe,0x9a,0xfe,0x40,0xff,0x2d,0xff, +0x9d,0xff,0xdc,0xff,0x13,0xff,0x3a,0xff,0x95,0x0,0x9a,0x0, +0x53,0x0,0xc,0x2,0x28,0x3,0x3e,0x2,0xeb,0x1,0x7b,0x2, +0xfc,0x2,0xd6,0x2,0x2a,0x1,0x30,0x0,0x32,0x1,0x54,0x1, +0xb9,0x0,0xe,0x1,0xeb,0x0,0xb6,0x0,0xd4,0x1,0xb7,0x2, +0xa6,0x2,0x93,0x2,0x66,0x2,0x50,0x2,0x21,0x3,0xe4,0x3, +0x3e,0x3,0xd7,0x2,0xf7,0x3,0x52,0x4,0xdb,0x3,0xb7,0x4, +0xb7,0x4,0x12,0x3,0x5c,0x3,0x74,0x4,0xa5,0x3,0x3a,0x3, +0x6e,0x3,0x9d,0x2,0xd5,0x2,0x1c,0x4,0x0,0x4,0xc3,0x3, +0x8d,0x4,0xcf,0x4,0xbc,0x4,0x80,0x5,0x41,0x6,0x3,0x6, +0x4c,0x5,0x27,0x5,0xe3,0x5,0x44,0x6,0x6,0x5,0x5d,0x3, +0xe4,0x2,0xf0,0x2,0xfd,0x2,0x12,0x3,0x9e,0x2,0x83,0x2, +0x1f,0x3,0xa7,0x2,0xec,0x1,0x9b,0x2,0xc7,0x2,0x9e,0x1, +0x29,0x1,0xb6,0x1,0x38,0x2,0x9a,0x2,0xc2,0x2,0x54,0x2, +0xdd,0x1,0xb1,0x1,0xf,0x1,0x7c,0x0,0xd5,0x0,0xa4,0x0, +0xac,0xff,0xb4,0xff,0x18,0x0,0xf1,0xff,0x66,0x0,0xd4,0x0, +0xc9,0xff,0xfb,0xfe,0x35,0x0,0x49,0x1,0x57,0x0,0xcd,0xff, +0x2c,0x1,0xf,0x2,0x33,0x1,0x27,0x0,0x27,0x0,0x54,0x0, +0x23,0xff,0xfa,0xfd,0xd7,0xfe,0xc0,0xff,0x7e,0xff,0xd7,0xff, +0x2f,0x0,0x8c,0xff,0x73,0xff,0xa3,0xff,0x39,0xff,0x4f,0xff, +0x8e,0xff,0x6,0xff,0xd9,0xfe,0x22,0xff,0x3b,0xff,0xc,0x0, +0xbd,0x0,0x53,0xff,0xb3,0xfd,0x3,0xfe,0x21,0xfe,0xf5,0xfc, +0x83,0xfc,0x8c,0xfc,0x3a,0xfc,0x11,0xfd,0x21,0xfe,0x95,0xfd, +0x4a,0xfd,0x5c,0xfd,0x9,0xfc,0xa5,0xfb,0x45,0xfd,0xf5,0xfd, +0x39,0xfd,0x92,0xfc,0x9b,0xfc,0x87,0xfd,0xbb,0xfd,0x3e,0xfc, +0x7f,0xfb,0x43,0xfc,0x3b,0xfc,0x81,0xfb,0xcc,0xfb,0x37,0xfc, +0xed,0xfb,0x49,0xfc,0x1b,0xfd,0x41,0xfd,0xab,0xfd,0x4e,0xfe, +0x85,0xfd,0x5c,0xfc,0xdf,0xfc,0xd9,0xfd,0x88,0xfd,0xec,0xfc, +0xf1,0xfc,0x24,0xfd,0xc5,0xfd,0x2d,0xfe,0x31,0xfd,0x6b,0xfc, +0x9b,0xfc,0x4f,0xfc,0x62,0xfc,0xd,0xfd,0x90,0xfc,0x39,0xfc, +0x5b,0xfd,0x36,0xfe,0x25,0xfe,0xb9,0xfd,0x48,0xfd,0x5e,0xfd, +0x46,0xfd,0xbb,0xfc,0x1c,0xfd,0x7a,0xfd,0x87,0xfc,0x6b,0xfc, +0x4a,0xfd,0x9f,0xfc,0xcc,0xfb,0x7b,0xfc,0xa9,0xfc,0x58,0xfc, +0x11,0xfd,0xd9,0xfd,0xf9,0xfd,0xc7,0xfd,0x5c,0xfd,0x62,0xfd, +0xce,0xfd,0xab,0xfd,0x9,0xfd,0xf6,0xfc,0x16,0xfe,0xdf,0xfe, +0xbb,0xfd,0x5f,0xfc,0x9f,0xfc,0xd2,0xfd,0x87,0xfe,0x9d,0xfd, +0x84,0xfc,0xcf,0xfd,0xd3,0xff,0xb3,0xff,0xc8,0xfe,0x50,0xff, +0x88,0x0,0x83,0x0,0xcb,0xff,0x48,0x0,0xe9,0x0,0xf0,0xff, +0xa5,0xfe,0x22,0xfe,0x67,0xfe,0xb2,0xff,0x57,0x0,0x5c,0xff, +0x24,0xff,0x29,0x0,0x77,0x0,0x3d,0x0,0xaa,0x0,0x96,0x1, +0xd9,0x1,0x41,0x1,0x54,0x1,0x83,0x1,0xe3,0x0,0xb7,0x1, +0xbc,0x2,0x12,0x1,0x5e,0x0,0x46,0x2,0xef,0x2,0x1a,0x2, +0x52,0x1,0x3a,0x1,0x67,0x2,0x82,0x2,0x66,0x1,0xdf,0x1, +0xe0,0x1,0x61,0x0,0xaf,0x0,0xfb,0x1,0x5e,0x2,0xa1,0x2, +0x79,0x2,0xd5,0x2,0x41,0x4,0xfd,0x3,0xfe,0x2,0x3,0x4, +0x9d,0x4,0x77,0x3,0x2b,0x3,0x31,0x4,0xdf,0x4,0xe9,0x3, +0x6b,0x2,0x45,0x3,0xfb,0x4,0x3e,0x4,0x2e,0x3,0x21,0x4, +0x29,0x5,0x3a,0x5,0x6f,0x5,0x14,0x6,0x1a,0x6,0xd1,0x5, +0xdb,0x6,0x41,0x7,0x42,0x5,0x5,0x5,0x2a,0x7,0x7f,0x6, +0xf9,0x3,0xf5,0x3,0xcd,0x4,0x7,0x4,0x9c,0x2,0x5f,0x1, +0x2e,0x1,0x78,0x2,0xee,0x2,0x58,0x2,0x31,0x3,0x30,0x4, +0x5e,0x4,0xbd,0x5,0x18,0x6,0xfb,0x3,0x99,0x3,0xd0,0x4, +0x45,0x4,0x4d,0x3,0x49,0x3,0x90,0x3,0x28,0x4,0xab,0x3, +0x5d,0x1,0x1b,0x1,0x2e,0x4,0x24,0x4,0x55,0x0,0x27,0x1, +0x71,0x4,0xdf,0x2,0x51,0x2,0x8e,0x4,0x51,0x2,0x4,0x1, +0xcf,0x4,0x2b,0x4,0x96,0x0,0xcc,0x2,0x1a,0x6,0xa3,0x5, +0x0,0x4,0xb2,0x1,0xf0,0x0,0x4b,0x3,0xb0,0x2,0x74,0xfe, +0x99,0xfe,0xdd,0x2,0xe3,0x3,0x26,0x1,0x98,0xff,0x54,0x1, +0x90,0x3,0x81,0x2,0x77,0xff,0x91,0xff,0xe2,0x2,0x29,0x3, +0xff,0xfe,0x22,0xfd,0x54,0xff,0x2d,0x0,0xa2,0xfe,0xab,0xfc, +0x3b,0xfc,0x3d,0x0,0x5e,0x3,0xaa,0xff,0xcc,0xfd,0x5f,0x1, +0xaf,0x0,0xfc,0xfc,0xcf,0xfc,0xeb,0xfc,0xb,0xfd,0x2c,0xfe, +0x2b,0xfc,0x76,0xfa,0x93,0xfd,0xe6,0xfe,0xcc,0xfa,0x4d,0xf7, +0xfb,0xf7,0xa4,0xf9,0x5,0xf9,0x8c,0xf7,0xd2,0xf7,0x15,0xfa, +0x8b,0xfc,0x3e,0xfc,0xae,0xfa,0x3c,0xfc,0x32,0xfe,0xde,0xfc, +0xf9,0xfa,0xb7,0xfa,0x14,0xfc,0xe,0xfd,0xc2,0xfa,0x8c,0xf8, +0xe3,0xf9,0x21,0xfb,0xf0,0xf9,0x8,0xf8,0x7a,0xf7,0xe8,0xf8, +0xc4,0xf9,0x60,0xf8,0x94,0xf6,0x72,0xf7,0x84,0xfb,0xa3,0xfc, +0xaf,0xf8,0x56,0xf8,0x36,0xfc,0x8f,0xfb,0xcb,0xf7,0x6f,0xf7, +0x3b,0xf9,0x4b,0xf9,0x95,0xf8,0x42,0xfa,0x66,0xfc,0xfa,0xfb, +0x9f,0xfb,0x45,0xfc,0xbf,0xfb,0xd,0xfb,0x72,0xfa,0x39,0xf9, +0x10,0xf9,0x59,0xf9,0xc1,0xf8,0x18,0xf9,0x37,0xfa,0xb2,0xf9, +0x5f,0xf8,0x9c,0xf8,0x8d,0xf9,0x2b,0xf9,0xc4,0xf8,0x43,0xfa, +0xc9,0xfb,0x4f,0xfb,0xb0,0xfa,0xd8,0xfb,0x20,0xfd,0xe4,0xfc, +0x73,0xfc,0x6d,0xfc,0x9b,0xfb,0xc2,0xfa,0x64,0xfb,0xef,0xfb, +0xae,0xfa,0xa0,0xf9,0xc3,0xfa,0xbb,0xfb,0xd0,0xfa,0xef,0xfa, +0x87,0xfc,0x39,0xfc,0x40,0xfb,0x48,0xfc,0x88,0xfd,0x78,0xfe, +0xe2,0xff,0x1f,0x0,0x6,0x0,0xbf,0x1,0x9c,0x2,0x5f,0x0, +0xe4,0xfe,0x67,0x1,0x76,0x3,0x13,0x1,0xf0,0xff,0xa6,0x3, +0x64,0x5,0xf1,0x2,0x5,0x2,0x4d,0x3,0xd3,0x3,0xdd,0x3, +0x63,0x4,0x87,0x4,0xd5,0x3,0x65,0x4,0x5e,0x6,0xfa,0x5, +0xf0,0x3,0xa6,0x4,0x5c,0x6,0x4a,0x5,0xac,0x3,0xa9,0x4, +0x31,0x6,0x24,0x5,0x5,0x3,0xec,0x2,0x4b,0x4,0x8b,0x4, +0x46,0x3,0x31,0x3,0x8d,0x5,0xeb,0x6,0x9c,0x5,0x2f,0x5, +0x5b,0x7,0x68,0x9,0x30,0x9,0xbe,0x7,0x1a,0x7,0x39,0x7, +0x2f,0x7,0x3,0x7,0xc9,0x5,0x48,0x3,0xc2,0x2,0xae,0x4, +0x60,0x4,0x89,0x2,0x4d,0x4,0x83,0x6,0x96,0x4,0xdd,0x3, +0x27,0x7,0x69,0x8,0x36,0x6,0xff,0x4,0xad,0x5,0x79,0x6, +0x7b,0x6,0xb7,0x5,0x72,0x5,0x8c,0x6,0x34,0x7,0x47,0x6, +0xc2,0x5,0x5,0x6,0xc1,0x5,0xcf,0x5,0x60,0x5,0xb,0x3, +0x17,0x2,0x80,0x3,0xda,0x3,0xb4,0x3,0x2b,0x4,0x56,0x3, +0x20,0x3,0x6e,0x5,0xe4,0x5,0x28,0x3,0xd2,0x1,0x8a,0x2, +0xd3,0x2,0x93,0x2,0x5f,0x1,0xdf,0xff,0x56,0x0,0xc4,0x0, +0x52,0xff,0xbd,0xfe,0x30,0xff,0xd3,0xfe,0x50,0xfe,0x0,0xfe, +0x9d,0xfe,0x96,0x0,0x6d,0x0,0x57,0xfd,0x7c,0xfc,0xd0,0xfe, +0x14,0xff,0x88,0xfc,0xcd,0xfb,0x54,0xfd,0x4c,0xfe,0x97,0xfe, +0xa9,0xfd,0x8b,0xfb,0x32,0xfc,0xb3,0xfe,0x9f,0xfd,0x30,0xfb, +0xc2,0xfb,0x11,0xfd,0xa7,0xfd,0xd5,0xfd,0x6c,0xfc,0x17,0xfc, +0xc2,0xfe,0x28,0xff,0xf5,0xfb,0xc0,0xfa,0xfc,0xfb,0xac,0xfb, +0x9f,0xf9,0x2a,0xf8,0x4f,0xf8,0xa2,0xf8,0x38,0xf7,0x98,0xf5, +0xc4,0xf6,0xac,0xf9,0x7c,0xfa,0x79,0xf8,0x68,0xf7,0xf9,0xf9, +0xad,0xfc,0x15,0xfb,0xb5,0xf7,0x82,0xf7,0x2d,0xfa,0x28,0xfc, +0x22,0xfb,0xea,0xf8,0x78,0xf9,0x44,0xfb,0x48,0xfa,0x74,0xf8, +0x6d,0xf8,0x36,0xf9,0xe,0xfa,0x3d,0xfa,0xee,0xf9,0xcf,0xfa, +0x26,0xfc,0x1c,0xfc,0xd5,0xfa,0x1e,0xfa,0x6,0xfc,0xea,0xfe, +0x23,0xff,0xb1,0xfd,0x30,0xfe,0x88,0x0,0xab,0x0,0x48,0xfd, +0x73,0xfb,0xc8,0xfd,0xcd,0xff,0xa7,0xfe,0x7d,0xfc,0x8c,0xfc, +0x4d,0xff,0x6f,0x0,0xa0,0xfd,0x9c,0xfb,0xd4,0xfd,0xe,0x1, +0x79,0x1,0x98,0xff,0x59,0xfe,0x1a,0xff,0x24,0x0,0xe5,0xfe, +0xa9,0xfc,0xb5,0xfd,0x3,0x1,0xf5,0x0,0xe5,0xfd,0x8a,0xfd, +0x8d,0x0,0x8b,0x1,0x49,0xfe,0xc2,0xfb,0x5d,0xfe,0x64,0x2, +0xd0,0x1,0xd0,0xfe,0x50,0xff,0x64,0x1,0xce,0x0,0x90,0xff, +0x43,0xff,0x5c,0xff,0xe2,0x0,0x9,0x2,0x3,0x1,0x13,0x1, +0x46,0x3,0xcd,0x4,0x39,0x4,0xfc,0x1,0x3b,0x1,0xbd,0x3, +0x11,0x5,0x4,0x3,0xef,0x1,0x9b,0x3,0x32,0x5,0xf0,0x4, +0x1,0x4,0x56,0x4,0x27,0x5,0x9b,0x4,0xf4,0x3,0x22,0x4, +0xb9,0x3,0x57,0x3,0x24,0x4,0xf8,0x4,0x7a,0x5,0x0,0x6, +0xd4,0x5,0x25,0x5,0xca,0x4,0xb2,0x4,0x3c,0x4,0x5c,0x3, +0xe1,0x2,0x8d,0x2,0xdb,0x1,0x41,0x2,0xb4,0x3,0x9b,0x3, +0x82,0x1,0x55,0xff,0x2e,0xff,0xbb,0x0,0xd2,0xff,0x2e,0xfc, +0x4f,0xfb,0x9f,0xfd,0xb5,0xff,0xcf,0x0,0x3f,0xff,0xca,0xfc, +0x29,0xff,0x66,0x2,0x56,0x0,0x82,0xfe,0x4b,0x0,0x8d,0x0, +0x66,0xfe,0x2f,0xfd,0x42,0xfe,0xf,0x0,0xf1,0xff,0xd8,0xfe, +0xe8,0xfe,0xea,0xff,0x4b,0x1,0xee,0x0,0x9,0xff,0x85,0xff, +0x17,0x1,0x9d,0x1,0x45,0x2,0xd6,0x0,0xa,0xff,0xa5,0x1, +0x9e,0x3,0x41,0x1,0xa3,0xff,0xaf,0x0,0x4d,0x2,0x11,0x2, +0xdc,0xff,0xcc,0xff,0x6d,0x1,0x1e,0x1,0x33,0x1,0x3,0x2, +0x26,0x0,0x77,0xfe,0x52,0x0,0xfc,0x1,0xb9,0x0,0x74,0xff, +0xa4,0xff,0x70,0xff,0x54,0xff,0x90,0x0,0x55,0x1,0x45,0x0, +0x86,0xfe,0x48,0xfe,0x2d,0x0,0xa,0x1,0x77,0xff,0xa8,0xfe, +0x17,0xff,0x22,0xff,0x95,0xff,0x74,0xff,0xa3,0xfd,0xed,0xfc, +0xdb,0xfd,0x2f,0xfe,0xa9,0xfe,0xa2,0xff,0x1d,0xff,0xee,0xfd, +0x5a,0xfe,0xe4,0xff,0x3e,0x1,0xe4,0x1,0xe3,0x1,0xa5,0x2, +0xe3,0x4,0x51,0x6,0xfe,0x4,0x91,0x2,0xc3,0x1,0xda,0x2, +0x5c,0x3,0x63,0x1,0x70,0xff,0x3e,0x1,0xa8,0x4,0x23,0x4, +0x6,0x0,0x69,0xfe,0x31,0x1,0x78,0x3,0x71,0x2,0x13,0x1, +0x63,0x2,0x38,0x5,0x5f,0x5,0xa0,0x2,0x25,0x2,0x6e,0x3, +0xc,0x2,0x85,0x0,0x13,0x1,0x8b,0x1,0x8f,0x2,0x63,0x2, +0xff,0xfd,0x21,0xfb,0x3f,0xfe,0x22,0x1,0xf4,0xfe,0xa1,0xfb, +0xf,0xfc,0x27,0xff,0x7a,0x0,0x87,0xfe,0x48,0xfc,0x3c,0xfd, +0x2a,0x0,0xea,0x0,0x40,0xff,0x9e,0xfd,0xe9,0xfc,0x96,0xfc, +0x36,0xfb,0x9c,0xf9,0x65,0xfa,0xe1,0xfb,0xbf,0xfa,0x78,0xf8, +0xc5,0xf8,0x57,0xfb,0xc7,0xfb,0x24,0xfa,0xf7,0xfa,0xb9,0xfc, +0x94,0xfc,0x72,0xfd,0xb1,0xfe,0x60,0xfd,0xd2,0xfc,0xc6,0xfe, +0x29,0xff,0x9f,0xfc,0x72,0xfa,0xd4,0xfa,0xf1,0xfb,0x72,0xfb, +0xeb,0xf9,0xd9,0xf8,0xf6,0xf8,0xbd,0xf9,0x5d,0xf9,0x45,0xf8, +0x59,0xf8,0xef,0xf8,0x78,0xf9,0x8a,0xfa,0x78,0xfb,0x26,0xfc, +0xc4,0xfc,0x81,0xfc,0xa3,0xfb,0xdf,0xfa,0xb7,0xfa,0xf3,0xfa, +0x47,0xf9,0xdc,0xf6,0xe3,0xf7,0x27,0xfa,0x62,0xf9,0x76,0xf7, +0x30,0xf7,0x0,0xf8,0x71,0xf8,0x6c,0xf8,0x8b,0xf8,0x4d,0xf8, +0x8a,0xf8,0xf9,0xf9,0x67,0xf9,0x4c,0xf7,0xd5,0xf8,0x81,0xfc, +0xc2,0xfc,0x97,0xfa,0x97,0xfa,0x2b,0xfc,0xd1,0xfb,0x1,0xfb, +0x9e,0xfb,0x65,0xfb,0xa0,0xfb,0x8a,0xfd,0x3,0xfd,0x1b,0xfb, +0x23,0xfc,0xd1,0xfd,0x9d,0xfd,0x97,0xfd,0x8a,0xff,0x76,0x1, +0x68,0x0,0xa7,0xfe,0x10,0xff,0xf7,0xff,0x4,0x1,0x6f,0x1, +0x37,0xff,0x38,0xfe,0xd4,0x0,0xe4,0x2,0x2,0x3,0x77,0x2, +0x3b,0x2,0x8a,0x3,0xe4,0x3,0x93,0x1,0x8b,0x0,0xee,0x1, +0x5a,0x3,0xfc,0x4,0x52,0x6,0x5c,0x6,0xec,0x6,0xbd,0x7, +0x95,0x6,0x2c,0x5,0x57,0x5,0x5a,0x5,0x83,0x4,0xda,0x3, +0xe4,0x3,0xef,0x4,0x6a,0x5,0x3,0x4,0xb5,0x3,0xc5,0x5, +0xcf,0x6,0xe9,0x5,0x6f,0x4,0x48,0x3,0x8c,0x4,0xd2,0x6, +0x3c,0x6,0xa,0x5,0x1c,0x6,0x77,0x7,0xd9,0x8,0x21,0xa, +0xd1,0x8,0x51,0x6,0xae,0x5,0xf9,0x5,0x9a,0x5,0x5a,0x5, +0xcf,0x5,0x3f,0x5,0x84,0x3,0xb1,0x3,0x3,0x5,0x25,0x4, +0xe9,0x2,0x34,0x3,0xac,0x3,0x14,0x5,0x4a,0x7,0x9c,0x7, +0xbc,0x6,0xdc,0x6,0xe7,0x7,0x3e,0x9,0x7d,0x9,0x9b,0x8, +0xf,0x9,0xd9,0x9,0xe,0x9,0x14,0x9,0xfb,0x8,0xab,0x6, +0xa1,0x6,0x6b,0x8,0x1d,0x6,0x7c,0x2,0xb3,0x1,0x37,0x2, +0x72,0x3,0xae,0x3,0x30,0x2,0xf8,0x2,0x4,0x5,0x19,0x4, +0x4e,0x3,0x38,0x6,0x63,0x8,0x32,0x6,0x56,0x5,0x49,0x8, +0x68,0x7,0x59,0x3,0x82,0x3,0x25,0x4,0xb3,0x2,0x31,0x4, +0xb7,0x5,0x96,0x3,0xd7,0x1,0x1a,0x2,0x18,0x3,0xe,0x3, +0x5e,0x0,0x68,0xfe,0xf8,0xfe,0xa3,0xfe,0x15,0xfe,0xc0,0xfe, +0x1,0xfe,0x3d,0xfd,0x13,0xff,0xe1,0xff,0xca,0xfd,0xac,0xfc, +0x88,0xfd,0xe9,0xfd,0x5e,0xfe,0xcf,0xff,0x84,0xff,0xbe,0xfd, +0xb8,0xfe,0xfc,0x0,0xc2,0x0,0x49,0x0,0xf,0x0,0xc1,0xfd, +0x99,0xfc,0x79,0xfd,0xb7,0xfb,0x93,0xf9,0xa6,0xfb,0x2b,0xfe, +0xdd,0xfd,0xbe,0xfd,0xb8,0xfe,0xd8,0xfd,0x63,0xfb,0x29,0xfb, +0x1f,0xfd,0x70,0xfd,0x8e,0xfc,0xff,0xfd,0x92,0x0,0x28,0x1, +0xab,0x0,0xaa,0xff,0x9a,0xfc,0x5c,0xfa,0xa2,0xfb,0x4b,0xfb, +0xfc,0xf7,0x60,0xf8,0xbd,0xfa,0x8a,0xf8,0x4f,0xf6,0x4,0xf8, +0xc3,0xf7,0xae,0xf5,0x44,0xf8,0x47,0xfd,0x77,0xfe,0x8f,0xfc, +0x78,0xfb,0xc5,0xfb,0x74,0xfb,0x27,0xfa,0x81,0xf9,0xfb,0xf9, +0x5b,0xfa,0x13,0xf9,0x65,0xf6,0x84,0xf4,0xa7,0xf3,0x4a,0xf3, +0x4e,0xf4,0x2a,0xf5,0xf5,0xf4,0x3e,0xf6,0xc8,0xf8,0x40,0xfa, +0x4c,0xfa,0xa4,0xf9,0x8f,0xfa,0xd0,0xfc,0xa2,0xfc,0x6c,0xfb, +0x94,0xfc,0x44,0xfd,0x46,0xfb,0xcf,0xf9,0x9,0xfa,0xed,0xf8, +0x5f,0xf6,0x64,0xf5,0xad,0xf5,0x92,0xf6,0x7d,0xf9,0xaf,0xfb, +0xb3,0xfa,0x47,0xfa,0x13,0xfc,0x61,0xfd,0xdb,0xfc,0xe0,0xfa, +0xd0,0xf9,0xc2,0xfb,0xb8,0xfd,0xaf,0xfc,0x8c,0xfb,0x1,0xfd, +0x1c,0xfe,0x57,0xfc,0x29,0xfa,0x4c,0xf9,0x1e,0xf8,0xf8,0xf6, +0xe8,0xf7,0xba,0xf9,0x54,0xfa,0xe7,0xfa,0x98,0xfc,0x30,0xfe, +0x49,0xff,0x21,0x0,0xd0,0xff,0x73,0xfe,0x7b,0xfd,0x41,0xfd, +0x3,0xfd,0xb0,0xfc,0xef,0xfc,0x3f,0xfd,0xaf,0xfd,0x96,0xff, +0x66,0x0,0x60,0xfd,0xe,0xfb,0x7a,0xfc,0x79,0xfd,0x84,0xfc, +0x85,0xfc,0x4f,0xfe,0x7c,0x0,0x5,0x2,0x1a,0x3,0xf3,0x3, +0xcf,0x3,0xc6,0x2,0xfc,0x1,0xc6,0x1,0x6a,0x1,0x4c,0x0, +0x6f,0xff,0xad,0xff,0xde,0xff,0x1,0x0,0xc8,0x0,0xa0,0x0, +0x69,0xff,0x45,0xff,0x2a,0x0,0x17,0x1,0xa6,0x1,0x7d,0x1, +0x19,0x2,0x0,0x4,0x78,0x4,0x6b,0x3,0xb0,0x3,0xcf,0x4, +0x7e,0x4,0x2a,0x3,0x6e,0x2,0x2e,0x2,0xbb,0x1,0x82,0x1, +0x7e,0x1,0xf,0x1,0x10,0x1,0x36,0x2,0x31,0x3,0xc0,0x2, +0xd8,0x1,0xa8,0x2,0xaf,0x4,0x2a,0x5,0xf7,0x4,0x4a,0x6, +0x3d,0x7,0x9a,0x6,0xf,0x6,0x89,0x5,0x9c,0x4,0x80,0x4, +0xba,0x4,0x1f,0x4,0xdc,0x3,0xaa,0x4,0xb7,0x4,0x70,0x3, +0xe5,0x2,0x99,0x3,0xa,0x4,0x25,0x4,0x62,0x4,0x75,0x4, +0xfb,0x4,0x30,0x6,0x87,0x6,0x9e,0x5,0x1b,0x5,0xaf,0x5, +0xc9,0x5,0x7a,0x4,0xa7,0x3,0x4b,0x4,0x72,0x4,0xf0,0x3, +0xfe,0x3,0x6e,0x3,0x73,0x2,0x4d,0x3,0x41,0x4,0xa5,0x2, +0x2d,0x1,0xa0,0x2,0x4e,0x4,0xc6,0x3,0x29,0x3,0xb8,0x3, +0xe1,0x3,0xf8,0x3,0x7c,0x4,0x7b,0x3,0xc,0x2,0xf5,0x2, +0xa2,0x3,0x8,0x2,0x30,0x2,0x2c,0x5,0x74,0x6,0x37,0x5, +0xa6,0x4,0xa8,0x4,0x52,0x3,0xb2,0x1,0xe1,0x0,0xc5,0xff, +0x2d,0xff,0x62,0x0,0xd9,0x0,0xae,0xff,0x20,0x0,0xe0,0x1, +0xb0,0x1,0xf8,0xff,0xb7,0xfe,0xb0,0xfe,0xa1,0xff,0xe4,0xff, +0x6b,0xff,0x71,0x0,0xa4,0x2,0xab,0x3,0x41,0x3,0x7c,0x2, +0x31,0x1,0x5d,0xfe,0xf3,0xfa,0xea,0xf8,0xda,0xf7,0x36,0xf7, +0x83,0xf7,0xcc,0xf7,0x51,0xf8,0x62,0xfa,0x13,0xfc,0x6d,0xfc, +0xe9,0xfc,0x94,0xfc,0x37,0xfb,0x2a,0xfb,0x62,0xfc,0x39,0xfd, +0x4a,0xfd,0x9b,0xfd,0x22,0xff,0x2e,0x0,0xb5,0xff,0x60,0xff, +0x5e,0xfe,0x2,0xfc,0xd8,0xfa,0xb8,0xfa,0x6f,0xfa,0xc,0xfb, +0xeb,0xfb,0x93,0xfc,0xc9,0xfd,0x35,0xfe,0xeb,0xfd,0x60,0xfe, +0x28,0xfe,0x45,0xfc,0x63,0xfa,0x60,0xfa,0x0,0xfc,0x8a,0xfc, +0x1c,0xfc,0x3d,0xfd,0x14,0xfe,0x4,0xfd,0x77,0xfc,0xcc,0xfc, +0xda,0xfc,0x2f,0xfc,0x88,0xfa,0x7d,0xf9,0x18,0xf9,0xf4,0xf7, +0xcc,0xf7,0x35,0xf8,0xa1,0xf7,0x1f,0xf9,0xc6,0xfb,0xb4,0xfb, +0x88,0xfb,0x7d,0xfc,0x39,0xfc,0x11,0xfc,0xfd,0xfb,0x2d,0xfa, +0x47,0xf8,0xd,0xf7,0xd9,0xf5,0x6a,0xf5,0x2d,0xf6,0x6e,0xf8, +0x15,0xfb,0xae,0xfc,0xe4,0xfe,0x84,0x1,0xb3,0x2,0x4d,0x4, +0x1a,0x6,0x18,0x6,0x2e,0x6,0xf3,0x5,0x56,0x4,0xea,0x4, +0xbb,0x6,0x13,0x6,0x96,0x5,0x22,0x6,0xcb,0x4,0x24,0x3, +0xaa,0x2,0x63,0x1,0xf0,0xff,0xb7,0xff,0x7e,0xff,0x82,0xff, +0x13,0x1,0xce,0x2,0xdf,0x3,0xdf,0x5,0x20,0x8,0x93,0x8, +0xde,0x7,0x12,0x7,0x7e,0x6,0xc5,0x5,0x86,0x3,0xe5,0x1, +0xf1,0x2,0xda,0x1,0xe5,0xfd,0x99,0xfd,0x6c,0xff,0xde,0xfd, +0x39,0xfc,0x86,0xfd,0x6f,0xfe,0xde,0xfd,0xa9,0xfd,0x78,0xfd, +0x25,0xfd,0x3d,0xfe,0x38,0xff,0xb5,0xfd,0x71,0xfd,0x9c,0x0, +0x9d,0x1,0x8e,0x0,0x16,0x3,0xa4,0x4,0x5b,0x1,0xb3,0x0, +0x31,0x2,0xc3,0xfe,0x7b,0xfb,0x69,0xfc,0xca,0xfb,0x38,0xfa, +0xde,0xfb,0x4c,0xfe,0x80,0xff,0x13,0x1,0x11,0x4,0x38,0x6, +0x32,0x5,0xae,0x4,0x30,0x6,0x79,0x4,0x2,0x1,0xce,0x0, +0x8e,0x0,0x0,0xfe,0xb7,0xfc,0x61,0xfd,0xa6,0xfd,0xf2,0xfc, +0xc5,0xfc,0x51,0xfd,0x78,0xfc,0xfc,0xfa,0xb0,0xfb,0x86,0xfc, +0xaf,0xfa,0x9d,0xf9,0x93,0xfb,0x14,0xfc,0x59,0xfa,0xb0,0xfa, +0xbc,0xfb,0xfe,0xfa,0xb1,0xfa,0x77,0xfa,0xfd,0xf8,0x82,0xf8, +0xf1,0xf8,0xe1,0xf7,0x18,0xf6,0x1e,0xf6,0x65,0xf7,0x71,0xf7, +0x84,0xf7,0x5,0xf9,0x3d,0xf9,0x76,0xf8,0x1,0xf9,0x3c,0xf9, +0xf0,0xf8,0x62,0xf9,0xa,0xf9,0xfa,0xf7,0xb7,0xf8,0x60,0xfb, +0xb5,0xfc,0x1b,0xfb,0x77,0xfa,0x5b,0xfc,0x4b,0xfc,0xf8,0xf9, +0x47,0xf9,0x50,0xfa,0x26,0xfb,0x28,0xfb,0x14,0xfb,0xa2,0xfb, +0xf2,0xfb,0xf5,0xfb,0x24,0xfc,0xa9,0xfb,0xa3,0xfb,0xc6,0xfc, +0x81,0xfc,0x36,0xfb,0x41,0xfb,0xde,0xfb,0x2,0xfd,0x64,0xfe, +0xb8,0xfd,0x4e,0xfd,0x71,0xff,0x3d,0x0,0x84,0xff,0x41,0x0, +0x4b,0x0,0x9c,0xff,0x34,0x1,0xfa,0x2,0x2,0x3,0x4,0x4, +0x91,0x7,0x4c,0xa,0x11,0x8,0x77,0x5,0x16,0x9,0xca,0xb, +0x41,0x6,0x91,0x1,0x1,0x5,0x9f,0x8,0x4b,0x6,0xce,0x3, +0x30,0x5,0x5,0x6,0xd1,0x4,0xb3,0x4,0x9f,0x5,0x59,0x6, +0xfa,0x5,0x71,0x4,0x35,0x5,0xe8,0x7,0xee,0x6,0x7f,0x3, +0x70,0x4,0xf,0x9,0x96,0x9,0xac,0x6,0xde,0x8,0x68,0xc, +0xf5,0x8,0xed,0x5,0x94,0x8,0xba,0x8,0xc5,0x4,0xaf,0x2, +0x10,0x4,0x9b,0x6,0xa3,0x7,0x13,0x8,0xc6,0x8,0xc4,0x7, +0x74,0x8,0x40,0xb,0xd,0x8,0x8f,0x3,0xf7,0x7,0xdb,0xa, +0xaa,0x4,0x9c,0x4,0xe0,0xc,0x12,0xb,0x20,0x3,0xbe,0x8, +0x7f,0x11,0xa9,0x9,0x1,0x1,0xc1,0x8,0xc8,0xd,0xed,0x4, +0xb2,0x2,0xcd,0xa,0x10,0xb,0xb8,0x6,0xf1,0x9,0x97,0xc, +0x7e,0x9,0x70,0x9,0xad,0xa,0xce,0x6,0x33,0x5,0x1d,0x9, +0xb2,0x8,0x83,0x4,0x1b,0x6,0x46,0x9,0x67,0x6,0xbe,0x3, +0x9c,0x5,0xa0,0x4,0xe8,0xff,0xf9,0xff,0xc8,0x2,0xb0,0xff, +0x98,0xfc,0x5a,0x0,0x79,0x0,0x18,0xfa,0x27,0xfa,0x56,0xfe, +0x4f,0xfc,0xd0,0xfa,0x23,0xfd,0xf,0xfb,0x23,0xf9,0x5a,0xfd, +0x8e,0xfd,0x23,0xf7,0xb2,0xf5,0xb2,0xf9,0x70,0xf9,0x62,0xf5, +0xfa,0xf4,0xb3,0xf7,0x2c,0xf8,0x6d,0xf7,0x2d,0xf9,0xac,0xfb, +0x9b,0xfb,0xe0,0xf9,0xb9,0xf9,0xdc,0xfa,0x62,0xf9,0x46,0xf6, +0x7c,0xf5,0xcd,0xf5,0x7d,0xf6,0xed,0xf7,0x42,0xf7,0xff,0xf6, +0xf2,0xf9,0xb4,0xf9,0xa6,0xf6,0xf1,0xf7,0x6,0xf9,0xca,0xf4, +0x65,0xf2,0xc1,0xf5,0xf,0xf8,0x56,0xf5,0x4b,0xf3,0x66,0xf5, +0x6c,0xf6,0x8e,0xf4,0x57,0xf3,0x2f,0xf2,0x43,0xf0,0xbd,0xef, +0x13,0xf1,0xa7,0xf2,0xcf,0xf1,0x61,0xf0,0x36,0xf3,0xc8,0xf5, +0x1f,0xf4,0xfb,0xf4,0x57,0xf8,0xa0,0xf8,0x2c,0xf8,0x29,0xf8, +0x9a,0xf7,0x1e,0xf8,0xe9,0xf7,0x18,0xf6,0x28,0xf5,0x91,0xf5, +0xe8,0xf6,0xba,0xf6,0x7c,0xf4,0xb2,0xf4,0x30,0xf6,0xfa,0xf5, +0x18,0xf7,0x81,0xf8,0x19,0xf8,0x15,0xf9,0x47,0xfa,0x6a,0xf9, +0x2f,0xfa,0xc1,0xfc,0x10,0xfd,0x4f,0xfc,0xa6,0xfd,0xd4,0xff, +0xcd,0x0,0x8a,0x0,0x25,0x0,0xc9,0x0,0xc1,0x0,0xb1,0xfe, +0x8d,0xfd,0xc7,0xfd,0x7,0xfd,0x19,0xfc,0xb3,0xfb,0xd6,0xfb, +0xc,0xfd,0xbb,0xfd,0x5d,0xfd,0x83,0xfd,0x3d,0xfe,0x2d,0xff, +0x78,0xff,0xc7,0xfe,0xb4,0xff,0xc6,0x2,0x12,0x4,0xec,0x2, +0xa2,0x3,0xaf,0x6,0xba,0x7,0xd6,0x5,0x5d,0x3,0x19,0x2, +0x77,0x2,0xd9,0x1,0x37,0xff,0x8e,0xfd,0xc0,0xfd,0xb,0xff, +0x57,0x0,0x51,0x0,0x97,0x1,0x5a,0x5,0xb9,0x7,0x49,0x7, +0x51,0x6,0xb8,0x7,0xa8,0xa,0xbc,0x9,0xe0,0x5,0x5a,0x5, +0x6a,0x7,0x51,0x7,0x66,0x4,0x5b,0x2,0xc7,0x3,0x97,0x5, +0x11,0x5,0xf4,0x3,0x4d,0x4,0x61,0x6,0x93,0x7,0x2d,0x6, +0x25,0x5,0x34,0x6,0xbe,0x8,0x9d,0xb,0xf1,0xa,0x8b,0x7, +0x20,0x8,0xfe,0xa,0xe9,0x8,0x54,0x4,0x6c,0x3,0xee,0x3, +0x70,0x1,0xd1,0xfd,0x3d,0xfd,0xba,0xfe,0xb7,0xfd,0xf2,0xfb, +0xb4,0xfd,0x59,0xff,0x68,0xff,0x81,0x1,0x8a,0x2,0x73,0x1, +0xe5,0x2,0x62,0x5,0xab,0x6,0x4,0x7,0x34,0x6,0xe,0x7, +0x14,0x8,0x8d,0x5,0x6f,0x3,0xae,0x2,0xc6,0x0,0x6f,0xff, +0x8a,0xfd,0x7b,0xfb,0x2a,0xfd,0x37,0xff,0x20,0xff,0xc2,0x0, +0xbe,0x2,0xe0,0x1,0xa8,0x1,0x21,0x4,0xcf,0x4,0x13,0x2, +0x7e,0x0,0x6e,0x1,0x95,0x1,0x9b,0x0,0x2d,0x0,0x44,0xff, +0x84,0xfd,0x72,0xfd,0x51,0xfe,0x2,0xfd,0xdd,0xfb,0x2d,0xfd, +0xc4,0xfd,0x7f,0xfd,0xe6,0xfe,0x1b,0x0,0x58,0xff,0x79,0xfe, +0x48,0xfe,0x74,0xfd,0xc3,0xfc,0x70,0xfd,0x65,0xfd,0x8b,0xfc, +0x28,0xfd,0x2c,0xfd,0x4d,0xfb,0x3b,0xfa,0x97,0xfa,0x95,0xfb, +0x1d,0xfc,0x6e,0xfb,0xc9,0xfb,0xec,0xfd,0x7b,0xff,0x6c,0xff, +0x84,0xfe,0xf1,0xfe,0xe0,0x0,0x57,0x1,0xb5,0x0,0xe6,0x0, +0x65,0x0,0xfc,0xfe,0x10,0xff,0xc9,0x0,0x7c,0x1,0x17,0x0, +0x9a,0xff,0x5e,0x1,0x72,0x2,0x45,0x2,0x2b,0x2,0xf8,0x0, +0x45,0xff,0xa9,0xff,0xc9,0x0,0x1c,0x0,0x4,0xff,0x3,0xff, +0x72,0xfe,0xbc,0xfc,0xcf,0xfb,0x87,0xfb,0x86,0xfa,0xe2,0xf9, +0x56,0xfa,0x49,0xfb,0xe7,0xfc,0x2,0xfe,0xd5,0xfd,0x51,0xfe, +0x57,0xff,0x85,0xff,0xa,0xff,0x7a,0xfd,0x82,0xfc,0xb7,0xfd, +0x5f,0xfd,0xd3,0xfb,0xf7,0xfd,0x88,0x0,0x9a,0xff,0xd4,0xff, +0xa2,0x2,0x6d,0x3,0xb8,0x2,0x2d,0x4,0x1a,0x6,0xe0,0x5, +0xd9,0x5,0xb8,0x6,0xca,0x5,0x6b,0x4,0xc0,0x4,0xd0,0x4, +0x18,0x4,0xb2,0x3,0x41,0x3,0x9f,0x2,0x95,0x1,0xdd,0x0, +0xe1,0x1,0x93,0x2,0x39,0x1,0xff,0xff,0x86,0x0,0x80,0x2, +0x6a,0x3,0x8e,0x1,0x4d,0x1,0x6,0x4,0xf8,0x3,0xf7,0x1, +0xdb,0x2,0x77,0x3,0xee,0x0,0xc4,0xfe,0xed,0xfd,0x32,0xfc, +0x9d,0xfa,0xc7,0xfa,0x98,0xfa,0x5a,0xf9,0xd6,0xf9,0x96,0xfb, +0xab,0xfb,0xda,0xfa,0x31,0xfb,0x9f,0xfc,0x39,0xfd,0xc3,0xfb, +0x5f,0xfb,0x8c,0xfd,0x83,0xfe,0x48,0xfe,0xd2,0xfe,0x7b,0xfe, +0x93,0xfe,0x49,0xff,0x12,0xfd,0x37,0xfc,0x9a,0xff,0x99,0xff, +0x19,0xfd,0x5e,0xff,0x7c,0x1,0xb2,0xff,0x2a,0x0,0xf5,0x1, +0x66,0x0,0xb9,0xff,0x9f,0x1,0x16,0x1,0xe1,0xff,0x7a,0x1, +0x36,0x1,0x7b,0xfe,0xe4,0xfe,0x0,0x0,0xe0,0xfd,0x5c,0xfc, +0x3e,0xfc,0x60,0xfb,0xfb,0xfb,0xdd,0xfc,0xfd,0xfa,0x1,0xfa, +0x28,0xfb,0xb9,0xfa,0xf0,0xf9,0x86,0xfa,0x3f,0xfa,0x49,0xfa, +0x2b,0xfc,0x8b,0xfc,0x4a,0xfb,0xec,0xfb,0x99,0xfc,0xdc,0xfa, +0x46,0xfa,0xf1,0xfb,0xe8,0xfb,0x34,0xfa,0x41,0xf9,0x5a,0xf8, +0xe4,0xf7,0xb8,0xf8,0x97,0xf8,0xb0,0xf7,0x3d,0xf8,0xb9,0xf8, +0x5d,0xf8,0xed,0xf8,0x9c,0xf9,0xb8,0xf9,0x4a,0xfa,0x71,0xfa, +0x5d,0xfa,0xa5,0xfb,0x69,0xfc,0x7f,0xfb,0x7e,0xfb,0x69,0xfc, +0x3f,0xfc,0x65,0xfb,0x3d,0xfa,0x6b,0xf9,0x21,0xfa,0x1d,0xfa, +0x5c,0xf8,0xa5,0xf8,0x6c,0xfa,0x3,0xfa,0x4b,0xf9,0x90,0xf9, +0xde,0xf8,0xe0,0xf8,0x5f,0xfa,0x70,0xfa,0x77,0xf9,0x6e,0xf9, +0x21,0xfa,0x2d,0xfb,0x51,0xfb,0x5b,0xfa,0xa3,0xfa,0x69,0xfb, +0xae,0xfa,0x6e,0xfa,0x6e,0xfb,0xdc,0xfb,0x4e,0xfc,0xdb,0xfc, +0x11,0xfc,0x94,0xfb,0xa3,0xfc,0xd7,0xfc,0xc2,0xfb,0x80,0xfb, +0xf5,0xfb,0x10,0xfc,0x5a,0xfc,0x3b,0xfd,0x15,0xfe,0xcf,0xfe, +0xb8,0xff,0x25,0x0,0x1a,0x0,0x36,0x1,0x97,0x2,0x6f,0x1, +0x78,0xff,0x6a,0x0,0x3d,0x2,0x12,0x1,0x13,0xff,0x79,0xff, +0x50,0x0,0xe3,0xff,0xc1,0xff,0xc5,0x0,0x22,0x2,0xb3,0x1, +0x26,0x0,0x34,0x2,0xe2,0x5,0xc4,0x5,0x76,0x4,0x7c,0x3, +0x6a,0x2,0x67,0x5,0x86,0x8,0xcf,0x5,0xd3,0x3,0xa3,0x5, +0xc1,0x6,0xd3,0x6,0xbe,0x5,0xdf,0x4,0x3d,0x6,0xf1,0x5, +0x1f,0x4,0x53,0x5,0x17,0x8,0xa6,0x8,0x33,0x5,0x2a,0x2, +0xed,0x5,0x47,0xa,0x1d,0x9,0x73,0x8,0x2b,0x9,0xd0,0x8, +0x94,0xb,0xde,0xf,0xbc,0xe,0x24,0xa,0xf7,0xa,0x7e,0x10, +0xb6,0xe,0xdb,0x7,0xef,0xa,0x45,0x12,0x24,0x10,0x20,0xc, +0xe4,0xe,0x1,0x12,0x99,0x10,0x7c,0xc,0x64,0x7,0x3f,0x4, +0x37,0x7,0x60,0xc,0xfa,0x9,0xf2,0x3,0xf5,0x6,0x33,0xf, +0x29,0x10,0xa2,0xb,0xc8,0xb,0x1a,0x12,0xa3,0x16,0xaa,0x14, +0x73,0x10,0x49,0xf,0xa8,0x11,0xbf,0x11,0x94,0x9,0xc2,0x1, +0xad,0x5,0xcf,0xa,0xda,0x4,0xad,0xff,0xe6,0x5,0x36,0xb, +0x4c,0x6,0x7c,0x2,0x81,0x7,0x55,0xb,0xc2,0x8,0x9e,0x6, +0x2b,0x6,0x38,0x7,0x9e,0xc,0x55,0xd,0x25,0x4,0xa2,0x1, +0x7b,0xa,0xe8,0xb,0x25,0x3,0xfb,0xfe,0x77,0x0,0x76,0xfe, +0xc5,0xf7,0x4f,0xf3,0x48,0xf6,0x22,0xfc,0xe5,0xfd,0xc8,0xfd, +0x61,0x1,0xd4,0x7,0x1c,0xb,0xc4,0x7,0xbc,0x2,0x4f,0x2, +0x1,0x4,0x1,0x2,0xcd,0xfc,0x5b,0xf9,0xcc,0xf9,0x91,0xfa, +0x19,0xf8,0xf8,0xf4,0xef,0xf5,0xdc,0xfa,0x88,0xfd,0xb2,0xf8, +0x29,0xf3,0x7f,0xf7,0xc1,0xfd,0xe3,0xf7,0xbe,0xee,0xa9,0xf0, +0x8b,0xf6,0x8a,0xf6,0xc8,0xf4,0xe7,0xf4,0x71,0xf5,0xcc,0xf5, +0x93,0xf3,0x4d,0xef,0xf7,0xee,0x8f,0xf0,0x4f,0xed,0x24,0xea, +0x4f,0xee,0xdb,0xf4,0x75,0xf6,0xcd,0xf4,0x8b,0xf5,0x8d,0xf8, +0x99,0xf9,0x6d,0xf8,0x92,0xf6,0xf8,0xf3,0x38,0xf2,0x76,0xf2, +0x2e,0xf2,0xaa,0xef,0x14,0xee,0xbb,0xef,0xb0,0xf0,0x11,0xf0, +0x71,0xf1,0x4a,0xf2,0x50,0xf2,0x47,0xf5,0x95,0xf5,0x9a,0xf1, +0x1c,0xf2,0xf2,0xf4,0x54,0xf2,0x47,0xee,0xb9,0xee,0x50,0xf0, +0xf0,0xed,0xa8,0xea,0x2c,0xeb,0x80,0xed,0xfb,0xef,0xc0,0xf1, +0x11,0xf1,0x99,0xf2,0xa7,0xf7,0xf7,0xf7,0xa3,0xf3,0xff,0xf2, +0x73,0xf6,0xaa,0xf8,0x58,0xf8,0x4b,0xf9,0xc2,0xfc,0x5b,0xfe, +0x9f,0xfd,0x23,0xfd,0x74,0xfa,0xb7,0xf6,0x4c,0xf6,0x23,0xf4, +0xe2,0xee,0xae,0xf0,0xe7,0xf7,0x91,0xf9,0xbb,0xf7,0xba,0xf8, +0xbf,0xfb,0x1a,0xfe,0x8e,0xfd,0x70,0xfc,0xa5,0xfe,0x7d,0x1, +0x14,0x2,0x77,0x0,0x4d,0xfe,0x5e,0x0,0x7d,0x3,0x57,0xff, +0xb2,0xf9,0x7e,0xfb,0x9b,0xff,0xe3,0xfe,0x69,0xfb,0xa,0xfb, +0xa8,0xfe,0x65,0x1,0xf0,0x0,0x71,0xff,0xa1,0xff,0x8d,0x3, +0x13,0x7,0xad,0x3,0x4a,0xff,0xb2,0x2,0xee,0x6,0x18,0x4, +0x2,0x0,0xd4,0xff,0xde,0x1,0xf3,0x3,0x78,0x3,0x55,0x1, +0xca,0x1,0xf4,0x3,0xe9,0x4,0x93,0x5,0x3a,0x7,0x37,0x9, +0x61,0xa,0x5b,0xa,0xc3,0x9,0xe4,0xa,0x98,0xe,0x1f,0xf, +0x3,0xa,0x3a,0x7,0x65,0xa,0x16,0xe,0xc3,0xd,0xb7,0x8, +0xe3,0x3,0x6d,0x5,0xa7,0xa,0xa7,0xb,0xbc,0x7,0x10,0x7, +0x5c,0xb,0x90,0xc,0xe7,0xa,0xbf,0xb,0xea,0xc,0x45,0xd, +0xd3,0xc,0x2d,0xa,0x79,0x9,0x67,0xb,0xb8,0xa,0x22,0x8, +0x91,0x5,0xe,0x3,0x93,0x3,0x8f,0x5,0x9a,0x3,0xf2,0x0, +0x70,0x3,0x6c,0x6,0x59,0x4,0x58,0x2,0x61,0x4,0xe3,0x5, +0xa7,0x4,0xc7,0x2,0xcc,0x1,0xd9,0x4,0x4,0xb,0xd3,0xa, +0x51,0x4,0xe0,0x4,0x78,0xb,0x3a,0xb,0xdc,0x6,0xf4,0x4, +0x63,0x2,0x6d,0x1,0x19,0x4,0x52,0x4,0xfb,0x3,0xf7,0x7, +0xb,0xb,0xb2,0xa,0xcc,0xa,0x36,0xb,0x1,0xb,0x86,0x9, +0x87,0x4,0x4c,0x1,0x8b,0x5,0x18,0x8,0x92,0x1,0x90,0xfb, +0x77,0xfe,0x8c,0x4,0xa0,0x3,0xce,0xfb,0x8e,0xf9,0x5c,0x1, +0x90,0x5,0x78,0xfe,0xc9,0xf8,0x31,0xfe,0x54,0x4,0x0,0x1, +0xd7,0xfa,0x6a,0xfa,0x8b,0xfd,0x67,0xfe,0x48,0xfc,0xef,0xfa, +0x88,0xfb,0x7c,0xfc,0x9c,0xfc,0xb9,0xf9,0xa8,0xf6,0x33,0xf9, +0x9b,0xfb,0x62,0xf7,0x87,0xf4,0x66,0xf9,0x4,0xff,0x4c,0xfd, +0x4a,0xf6,0xc1,0xf3,0xea,0xf9,0xdf,0xff,0x51,0xfc,0x3d,0xf5, +0xce,0xf5,0x56,0xfa,0xc0,0xf9,0xe4,0xf5,0xcd,0xf2,0xb4,0xf1, +0x4,0xf4,0xea,0xf5,0xda,0xf4,0xba,0xf6,0xe0,0xfb,0xdb,0xfb, +0xb7,0xf6,0xf4,0xf5,0x18,0xfb,0xd8,0xfd,0x36,0xfa,0x94,0xf4, +0xae,0xf4,0xb0,0xfc,0x23,0x2,0x51,0xfe,0x92,0xfb,0x26,0xff, +0xab,0xff,0x75,0xfb,0x23,0xfa,0x4d,0xfb,0x43,0xfa,0x77,0xf8, +0xf2,0xf7,0xb3,0xf7,0xe,0xf9,0xe9,0xfc,0xea,0xfe,0x7c,0xfc, +0x88,0xfa,0xe8,0xfd,0x60,0x2,0xbd,0x1,0xac,0xff,0xec,0x0, +0x57,0x1,0x18,0xff,0x52,0xff,0xb1,0x2,0xd2,0x3,0x49,0x0, +0x7e,0xfb,0x1e,0xfa,0x2,0xfe,0x3a,0x3,0x14,0x2,0x3a,0xfc, +0x2a,0xfd,0x91,0x4,0xf7,0x5,0xfd,0xff,0x4c,0xfc,0xce,0xfd, +0x6f,0xff,0xd4,0xfe,0x3f,0xfe,0x5,0xff,0x5d,0x1,0x25,0x4, +0x8b,0x3,0x11,0x1,0xc1,0x2,0x5b,0x5,0x5b,0x2,0x24,0xfe, +0x55,0xff,0xec,0x3,0x9d,0x6,0xdc,0x5,0x3d,0x4,0x61,0x4, +0x7f,0x5,0x2b,0x5,0x68,0x3,0x18,0x3,0x4e,0x5,0xc4,0x6, +0x40,0x4,0xfa,0xfe,0x9b,0xfc,0x7b,0x1,0x73,0x8,0x42,0x8, +0x37,0x3,0xb3,0x4,0x12,0xe,0xdc,0x13,0x24,0x10,0x2d,0xb, +0xa7,0xc,0x16,0x10,0xa0,0xe,0x26,0xa,0xe9,0x7,0xed,0x7, +0x92,0x7,0x67,0x6,0x92,0x5,0xd2,0x6,0x64,0x9,0xe2,0x8, +0xc2,0x4,0xca,0x1,0xae,0x2,0xf9,0x4,0x6d,0x3,0xb3,0xfe, +0x55,0xfe,0x44,0x2,0x53,0x4,0x4a,0x4,0xc1,0x3,0x16,0x4, +0x29,0x6,0x86,0x5,0xf2,0x1,0xb6,0x0,0xdf,0xff,0x34,0xfc, +0x57,0xf8,0x8b,0xf6,0x6c,0xf7,0x71,0xf8,0x42,0xf6,0xc7,0xf4, +0x5d,0xf7,0x18,0xf9,0x2b,0xf8,0x1c,0xf9,0x10,0xfc,0xf7,0xfc, +0x46,0xfa,0xe4,0xf5,0x40,0xf5,0x9e,0xfa,0x69,0xfd,0x7c,0xf8, +0x11,0xf5,0x83,0xf8,0x91,0xfb,0x90,0xf9,0xac,0xf5,0x11,0xf4, +0xb9,0xf6,0xd0,0xfa,0x59,0xf9,0x3a,0xf3,0xb5,0xf3,0x21,0xfb, +0x53,0xfc,0x96,0xf6,0x8b,0xf4,0x2c,0xf7,0x3e,0xfa,0xe7,0xfc, +0xdb,0xfc,0x39,0xfa,0xe9,0xfa,0x4,0xfe,0xa2,0xfb,0xeb,0xf6, +0xbf,0xf7,0x75,0xf9,0x71,0xf8,0x7b,0xf8,0x4b,0xf7,0x57,0xf5, +0x8,0xf8,0x49,0xf9,0xe,0xf4,0x76,0xf2,0xf1,0xf9,0xc4,0xff, +0xa3,0xfa,0x54,0xf2,0x6f,0xf3,0x4e,0xf9,0x91,0xf7,0x27,0xf1, +0x50,0xef,0x8e,0xf1,0xf0,0xf4,0x6a,0xf7,0xfb,0xf4,0x7d,0xf1, +0xdb,0xf4,0x99,0xf9,0xf1,0xf5,0xb4,0xee,0x9c,0xee,0x25,0xf4, +0x7c,0xf5,0x40,0xf2,0x66,0xf1,0xab,0xf3,0xbd,0xf7,0x7a,0xfb, +0x9d,0xf9,0x79,0xf6,0x6b,0xf9,0x96,0xfc,0xe0,0xfa,0xef,0xf8, +0xee,0xf9,0xf7,0xfb,0xf2,0xfa,0xa8,0xf8,0xee,0xfc,0x66,0x4, +0xb2,0x3,0x71,0xfd,0xe4,0xfc,0xeb,0x0,0x4c,0x0,0x9e,0xfb, +0xa6,0xf9,0xf,0xfb,0x38,0xfe,0x5a,0x1,0x7f,0x0,0x3a,0xfe, +0x87,0x1,0x41,0x7,0x12,0x8,0xd6,0x5,0x38,0x5,0xff,0x6, +0xc8,0x9,0xd3,0x8,0xef,0x4,0x25,0x7,0x46,0xc,0xc0,0xa, +0x12,0x8,0xf8,0x8,0x7e,0x9,0x1f,0xa,0x47,0x9,0x18,0x6, +0x7,0x7,0x5b,0xa,0x3c,0x9,0x1a,0x5,0x3b,0x3,0xc0,0x7, +0xfe,0xd,0x63,0xb,0xc,0x4,0x80,0x5,0x59,0xe,0x9f,0x10, +0xda,0x8,0x61,0x3,0xf9,0x6,0xff,0xb,0x9d,0xa,0xa8,0x2, +0x2,0xfd,0xac,0x1,0x8f,0x8,0x78,0x8,0x6d,0x6,0x59,0x7, +0xed,0x9,0x6f,0xb,0xf4,0x8,0x7e,0x5,0x63,0x6,0xae,0x8, +0xd3,0x6,0xcc,0x3,0xc7,0x6,0xa6,0xc,0x30,0xb,0x5f,0x4, +0x7f,0x3,0xcb,0x9,0x7d,0xd,0xe4,0x8,0x1e,0x4,0xad,0x7, +0x3b,0xc,0x97,0xa,0xb3,0x7,0x70,0x5,0x8,0x5,0x61,0xb, +0x9a,0x10,0x67,0xc,0x27,0x9,0xf2,0xc,0x22,0x10,0x20,0x10, +0x23,0xc,0x4e,0x4,0x6f,0x2,0xd5,0x6,0xfa,0x5,0x77,0x3, +0xb1,0x4,0xe7,0x0,0xcb,0xfc,0x28,0x3,0x9c,0x7,0x1a,0x2, +0xb9,0xff,0xf9,0x2,0xd6,0x3,0x70,0x4,0x65,0x6,0x1a,0x5, +0x2,0x3,0x56,0x5,0x11,0x8,0x73,0x7,0x38,0x6,0x5f,0x2, +0x14,0xfc,0x6b,0xfc,0xcf,0x0,0xac,0xfe,0x42,0xf9,0xdb,0xf7, +0x4a,0xfb,0x2e,0xff,0xc9,0xfc,0xc7,0xf9,0xac,0xfe,0x9,0x3, +0x0,0x2,0xc1,0x1,0x81,0x0,0x79,0xfd,0xbe,0xfe,0x82,0x1, +0x59,0xff,0x4e,0xfc,0x84,0xfd,0x52,0xfe,0x86,0xfc,0x3a,0xfd, +0x55,0xfd,0x98,0xf8,0xee,0xf5,0x44,0xf7,0xfe,0xf7,0x70,0xf8, +0xec,0xf7,0x4f,0xf7,0x8f,0xfa,0x2c,0xfe,0x99,0xfe,0xdf,0xfd, +0x66,0xfc,0xc4,0xfc,0x89,0x0,0xb3,0x0,0x2f,0xfb,0x9,0xf8, +0x54,0xf9,0x1,0xf9,0xdf,0xf6,0xb6,0xf8,0xcb,0xfc,0x6e,0xfc, +0x2d,0xfa,0xe2,0xfa,0xed,0xfa,0x48,0xf9,0xe1,0xf8,0xad,0xf7, +0xf9,0xf7,0xe4,0xfc,0x9b,0xfd,0x1d,0xf9,0xc,0xfa,0xff,0xfb, +0xa7,0xf7,0xd1,0xf4,0x5c,0xf5,0x11,0xf4,0x88,0xf4,0x4e,0xf9, +0x7a,0xfd,0x44,0xfd,0xcf,0xfa,0x5b,0xfb,0x17,0xfd,0xd8,0xfa, +0xce,0xf8,0x5e,0xfa,0xde,0xfa,0x46,0xfa,0x11,0xfc,0x4c,0xfe, +0x38,0xfd,0x9b,0xf9,0xa7,0xf8,0x29,0xfa,0x63,0xf7,0x4f,0xf2, +0xd,0xf2,0x4d,0xf4,0x49,0xf5,0x41,0xf6,0x4b,0xf7,0xb9,0xf8, +0xb7,0xfa,0xbd,0xfa,0x24,0xfa,0xa7,0xfc,0xa4,0xfe,0xf7,0xfb, +0x14,0xf9,0x95,0xf7,0x4f,0xf3,0xd1,0xef,0x95,0xf0,0x90,0xf0, +0x27,0xf1,0x6,0xf6,0x14,0xf9,0x52,0xf8,0x3c,0xf7,0xd,0xf5, +0x19,0xf4,0xab,0xf6,0x6c,0xf8,0x51,0xfa,0xc5,0x0,0xe,0x7, +0xe8,0x7,0xe7,0x6,0x43,0x7,0x92,0x6,0xc9,0x3,0xf8,0x0, +0x1a,0xff,0x8f,0xfd,0x8c,0xfb,0x49,0xf9,0x20,0xf7,0x18,0xf5, +0xba,0xf5,0xba,0xf9,0x62,0xfc,0x73,0xfc,0xf6,0xfd,0xc,0x2, +0x67,0x5,0x59,0x5,0xd3,0x4,0xc7,0x6,0x4,0x8,0xfe,0x7, +0xb9,0x8,0xec,0x7,0x1a,0x6,0x47,0x5,0x37,0x3,0xe2,0x0, +0x9b,0x0,0x10,0x0,0x68,0xfe,0x11,0xfe,0x92,0xff,0xd6,0x0, +0x2,0x1,0xfe,0x0,0x70,0x0,0xbb,0x0,0xc7,0x3,0xe5,0x5, +0xcd,0x5,0x79,0x7,0x17,0xa,0x1d,0xb,0xd,0xa,0x4b,0x6, +0x3f,0x4,0x79,0x6,0x90,0x5,0x38,0x0,0x5,0xff,0x8c,0x2, +0x2,0x5,0xc6,0x5,0x45,0x6,0xeb,0x6,0x53,0x8,0x2c,0xa, +0x95,0xb,0x55,0xc,0x8,0xe,0x4c,0x11,0x0,0x12,0xd2,0xe, +0x22,0xc,0x34,0xb,0x6f,0xb,0xd1,0xb,0x70,0x9,0xb9,0x7, +0x19,0xb,0x5b,0xe,0xa9,0xd,0x98,0xc,0xe0,0xd,0xf0,0xf, +0xf9,0xf,0x13,0x10,0x7d,0x12,0x5d,0x12,0xaf,0xe,0xdb,0xc, +0xda,0xc,0xc7,0xb,0x4e,0xa,0xd1,0x8,0xfc,0x5,0x93,0x3, +0xc7,0x4,0x3c,0x6,0x2f,0x4,0xb9,0x1,0x8b,0x0,0x47,0x1, +0x2a,0x4,0x9d,0x3,0xe6,0x0,0x4c,0x3,0x2c,0x6,0x87,0x4, +0x89,0x3,0x42,0x4,0xff,0x2,0x21,0x1,0x86,0x1,0xc2,0x1, +0xba,0xff,0x4d,0xfe,0xf5,0xfc,0xd0,0xfa,0xc7,0xfb,0x7e,0xfc, +0x78,0xf9,0x4e,0xf9,0x30,0xfb,0x4a,0xfa,0xd9,0xfa,0xf5,0xfb, +0xbe,0xf9,0x50,0xf9,0x6d,0xfb,0x78,0xfa,0x3c,0xf8,0x78,0xf8, +0xe2,0xf8,0xbf,0xf8,0xf0,0xf9,0x54,0xfa,0xff,0xf8,0xd,0xf9, +0x18,0xf9,0x9b,0xf6,0x9f,0xf4,0xea,0xf4,0x85,0xf5,0x6,0xf5, +0x94,0xf3,0x5c,0xf3,0x20,0xf5,0xb2,0xf5,0x4c,0xf4,0x92,0xf4, +0xf,0xf7,0x4e,0xf7,0x6d,0xf4,0x60,0xf3,0xe1,0xf4,0x49,0xf4, +0x42,0xf2,0xa6,0xf2,0xfe,0xf2,0xa0,0xf0,0x89,0xef,0x45,0xf1, +0x9d,0xf1,0x24,0xf0,0x2e,0xf0,0x6b,0xf1,0x8d,0xf1,0xc2,0xf0, +0xb9,0xf0,0x49,0xf1,0x3a,0xf1,0x94,0xf1,0x28,0xf3,0xfd,0xf3, +0x3b,0xf3,0xb7,0xf2,0xdf,0xf3,0x8f,0xf5,0xb2,0xf5,0x1c,0xf5, +0x55,0xf5,0x20,0xf5,0x7c,0xf4,0x1,0xf5,0x99,0xf5,0x49,0xf5, +0xcd,0xf5,0xea,0xf6,0x5e,0xf6,0xfe,0xf5,0x5d,0xf8,0x55,0xfa, +0x9d,0xf9,0x75,0xf8,0xe3,0xf7,0x69,0xf8,0xd8,0xf9,0x7,0xfa, +0x27,0xfa,0x4,0xfb,0xe6,0xf9,0x11,0xf9,0xf7,0xfa,0xa9,0xfb, +0x26,0xfb,0x23,0xfd,0xbc,0xff,0x36,0x0,0x5a,0x0,0xa5,0x1, +0x7d,0x2,0x66,0x2,0xb5,0x2,0x3f,0x2,0x7,0x1,0xfa,0x1, +0xcc,0x2,0xc2,0x0,0xf4,0xff,0x6e,0x1,0xd1,0x2,0xb,0x5, +0x37,0x6,0x87,0x4,0xe2,0x3,0xc3,0x4,0xb,0x5,0xb2,0x5, +0xc7,0x5,0x34,0x5,0xb4,0x6,0x88,0x8,0xb2,0x8,0x7a,0x9, +0xa4,0xa,0xda,0x9,0xb2,0x7,0x67,0x6,0xb,0x7,0x1f,0x8, +0x45,0x7,0x1b,0x5,0x24,0x5,0x5d,0x8,0x53,0xa,0x85,0x8, +0xca,0x6,0xe2,0x6,0xd8,0x6,0x92,0x6,0x1a,0x5,0x18,0x2, +0x50,0x2,0x3f,0x6,0x5,0x7,0xd5,0x3,0x3f,0x3,0x3f,0x6, +0x40,0x7,0x64,0x4,0x68,0x1,0xef,0x0,0x76,0x2,0xeb,0x3, +0x38,0x3,0x32,0x2,0xc,0x4,0x34,0x6,0x98,0x5,0xc9,0x4, +0x46,0x6,0xe9,0x7,0x21,0x5,0xc9,0x0,0x4d,0x4,0x21,0x9, +0x3d,0x3,0xd4,0xff,0xe,0x7,0x42,0x7,0x25,0x2,0x6e,0x6, +0xc6,0x7,0x59,0x0,0x58,0x1,0x35,0x7,0xe,0x3,0x29,0xfd, +0x1a,0xff,0x7,0x3,0xab,0x4,0xee,0x3,0x24,0x2,0xe9,0x3, +0x88,0x8,0x4,0xb,0x51,0xa,0x15,0x7,0xd9,0x5,0x6,0x9, +0x42,0x7,0xcd,0x0,0xe0,0x2,0x9a,0x7,0x7f,0x3,0x98,0x2, +0x68,0xa,0x5,0xa,0x86,0x2,0x3f,0x5,0xc6,0x5,0xc6,0xf5, +0xff,0xf1,0x8,0x3,0x12,0x1,0xcb,0xef,0x46,0xf6,0x96,0x4, +0x56,0x1,0xde,0xfe,0x48,0x3,0xf7,0x4,0xd1,0x9,0x99,0xc, +0x29,0x5,0x53,0x2,0x8a,0x9,0x37,0xc,0xbf,0x5,0xc0,0xff, +0xd4,0x3,0xe6,0xc,0x1a,0xa,0xd7,0xfd,0x3d,0xfb,0x6,0x1, +0xc2,0x1,0xed,0xff,0x1d,0x1,0xca,0x2,0x3f,0x6,0x9d,0xa, +0x6,0x8,0x1e,0x5,0x3d,0xf,0x8a,0x17,0xf4,0xb,0xde,0x1, +0x19,0xb,0x80,0xf,0xae,0x3,0x26,0xfd,0xa0,0xff,0x87,0x0, +0xc5,0x1,0x36,0x0,0x73,0xfa,0xb0,0xfd,0xb,0x7,0xef,0x5, +0x1,0xff,0x71,0x1,0x70,0x9,0xc,0x8,0xeb,0x0,0x93,0x2, +0x9c,0x5,0x73,0x0,0x24,0xfd,0x6,0xfb,0x70,0xf5,0x67,0xf7, +0xf4,0xfc,0xd6,0xf9,0x31,0xf8,0x2d,0x0,0x1a,0x6,0x4b,0x0, +0x51,0xf8,0x9b,0xfd,0x7c,0x7,0x59,0x4,0x96,0xfc,0x32,0xfd, +0x82,0x1,0x70,0x3,0xb7,0x1,0x22,0xfe,0x15,0xfc,0x44,0xfb, +0x3f,0xfa,0x77,0xf7,0xca,0xf4,0x9,0xf7,0xdf,0xf7,0x9d,0xf4, +0xc,0xfa,0xc2,0x2,0x13,0x1,0x7f,0x1,0x7f,0x6,0x22,0x1, +0x1a,0xfe,0x57,0x6,0xb9,0x3,0x38,0xf8,0x71,0xf9,0xa6,0xfe, +0x40,0xfc,0x9b,0xfc,0xf2,0xff,0xcb,0xfb,0x40,0xf5,0x5a,0xf5, +0xbe,0xf4,0xc7,0xed,0xe6,0xea,0xfc,0xed,0xb,0xed,0xfe,0xea, +0xcb,0xed,0xc8,0xf0,0xa4,0xf1,0xf3,0xf0,0x50,0xf0,0x26,0xf4, +0x1a,0xf9,0x2f,0xf9,0x42,0xf6,0x45,0xf3,0xc9,0xf3,0x97,0xf7, +0xa7,0xf5,0x4e,0xf0,0xb3,0xf2,0xda,0xf5,0xce,0xf1,0xa4,0xf0, +0xc9,0xf3,0x93,0xf2,0x8b,0xf2,0x98,0xf7,0x94,0xf7,0x3d,0xf3, +0x14,0xf6,0x51,0xfc,0xa3,0xf9,0x1f,0xf3,0x30,0xf6,0xfc,0xfc, +0x3e,0xfb,0x8c,0xf7,0x52,0xf9,0xe3,0xfa,0x57,0xfa,0xa1,0xf8, +0xb5,0xf4,0x8c,0xf4,0xeb,0xf9,0x38,0xfa,0xc5,0xf4,0x22,0xf7, +0xe2,0x0,0x0,0x2,0x34,0xfb,0x21,0xfb,0x10,0xff,0x28,0xfe, +0x16,0xfd,0x3b,0xfc,0x5e,0xf7,0x73,0xf5,0x11,0xf9,0xc5,0xf9, +0x23,0xf7,0x72,0xf7,0xa2,0xfa,0x15,0xfc,0x27,0xf9,0x42,0xf6, +0x42,0xf9,0x9c,0xfc,0x7e,0xf9,0x31,0xf7,0x7e,0xfb,0x44,0xff, +0xd2,0xfe,0x25,0xfe,0x18,0xfe,0x89,0xfe,0xe3,0xff,0x7d,0xfe, +0xc9,0xfa,0xf7,0xfb,0xe7,0xff,0x74,0xfe,0x9e,0xfb,0xef,0xfc, +0x7e,0xfe,0x58,0x0,0x7e,0x2,0x15,0xfe,0x10,0xf9,0x8c,0xff, +0xd9,0x7,0xf2,0x4,0x93,0x0,0xa,0x4,0x37,0x7,0x22,0x5, +0xc5,0x2,0xdc,0x2,0x28,0x5,0xbb,0x6,0xcd,0x3,0x64,0x1, +0x4f,0x5,0x2d,0x9,0x18,0x7,0x38,0x4,0xe9,0x5,0x99,0x9, +0x17,0xa,0x8b,0x7,0xd,0x5,0x4d,0x3,0xe8,0x3,0xcb,0x6, +0x67,0x7,0xab,0x6,0x8b,0x8,0x30,0xa,0x61,0x9,0x54,0x8, +0xa7,0x8,0xbd,0xa,0x22,0xb,0x66,0x7,0xa4,0x5,0x1f,0x9, +0x93,0xb,0xc2,0x9,0xe8,0x7,0x54,0x9,0x1d,0xb,0x4b,0x9, +0xe4,0x6,0xaf,0x8,0x8e,0xb,0xfe,0x9,0x62,0x6,0xd4,0x6, +0x37,0xa,0x27,0xb,0x7a,0x8,0xf9,0x3,0x4b,0x2,0x66,0x6, +0x91,0x8,0x9f,0x4,0x8a,0x3,0xdf,0x6,0x23,0x7,0x26,0x6, +0x49,0x8,0xa5,0x9,0x9,0x8,0x3,0x7,0x74,0x5,0xe7,0x0, +0x67,0xff,0xa8,0x2,0xed,0x2,0xc7,0x0,0xa6,0x0,0x15,0x0, +0x1e,0x0,0x6b,0x2,0x90,0x2,0x3f,0x0,0x7e,0xff,0x92,0x0, +0xa2,0xff,0x32,0xfc,0x53,0xfd,0xed,0x1,0xed,0xff,0x1d,0xfd, +0x78,0x3,0xfd,0x9,0x3c,0xa,0x21,0xa,0xc1,0x9,0xda,0x8, +0xcb,0xa,0x6e,0xa,0x77,0x4,0x91,0x0,0x22,0x2,0x32,0x4, +0xd1,0x2,0xa8,0x0,0xd0,0x3,0x76,0x7,0xdc,0x2,0x3e,0xfd, +0x49,0xfd,0x5e,0xfd,0x89,0xfc,0x94,0xfb,0xb,0xfa,0x5e,0xfc, +0x9f,0x0,0x70,0x2,0x3c,0x4,0x4f,0x5,0xf3,0x4,0x1b,0x4, +0x89,0x0,0x52,0xfe,0xbf,0xff,0x5d,0xfe,0x4b,0xfc,0x8d,0xfc, +0xed,0xf9,0x88,0xf8,0xe2,0xfb,0x4d,0xf9,0x78,0xf1,0x60,0xf2, +0xd1,0xf7,0xf3,0xf4,0xae,0xf0,0xf7,0xf3,0xf2,0xf6,0x4d,0xf4, +0x8f,0xf1,0xa7,0xf1,0xcf,0xf1,0xef,0xef,0x21,0xef,0x92,0xf1, +0x31,0xf2,0xa9,0xef,0x7d,0xf0,0xcf,0xf4,0x59,0xf5,0x7d,0xf2, +0x5a,0xf4,0xf3,0xf9,0x1d,0xfa,0x93,0xf5,0x16,0xf4,0x95,0xf6, +0xfa,0xf8,0xa3,0xf8,0xee,0xf7,0x61,0xfa,0x83,0xfd,0xc2,0xfe, +0x51,0xff,0xc6,0xfe,0x44,0xfd,0x8e,0xfc,0xd3,0xfb,0xe3,0xf8, +0x7c,0xf5,0xaf,0xf7,0x4,0xfd,0x81,0xfa,0xfd,0xf4,0xf4,0xf9, +0xc4,0x1,0xef,0xff,0x0,0xfc,0xb0,0xfe,0x3c,0x2,0x77,0x0, +0xbe,0xfc,0xa8,0xfc,0x59,0xff,0x49,0x0,0x99,0xfe,0x40,0xfd, +0xc,0xff,0xa6,0x1,0x85,0xff,0x5a,0xfb,0x13,0xfb,0x8,0xfb, +0x29,0xf9,0x1,0xf9,0x35,0xf8,0xa2,0xf7,0xf2,0xfb,0x26,0xff, +0x9b,0xfd,0x75,0xfe,0x4,0x3,0x0,0x5,0x78,0x1,0xe6,0xfd, +0x14,0x0,0xf9,0x1,0xb1,0xfe,0x82,0xfc,0x9d,0xfc,0xf,0xfc, +0x57,0xfd,0x91,0xff,0x89,0xff,0x73,0xff,0x83,0x1,0xa2,0x3, +0xc0,0x2,0x60,0x0,0xde,0x0,0x11,0x2,0x69,0xff,0x93,0xfd, +0x93,0x1,0x8c,0x5,0xe7,0x5,0xba,0x7,0xc,0xa,0xf,0x9, +0x43,0x9,0x2,0xc,0x8d,0xc,0xcb,0xb,0x52,0xc,0xf1,0xb, +0xd,0xa,0xa5,0x9,0x5a,0xa,0xce,0x9,0x9b,0xa,0xb4,0xc, +0x65,0xb,0x2c,0xa,0xdb,0xc,0x46,0xe,0xa4,0xd,0xdd,0xe, +0x15,0x11,0x76,0x11,0xba,0xf,0xe6,0xe,0x93,0xe,0x9,0xc, +0x20,0xb,0xbd,0xb,0x81,0x9,0x1b,0x9,0x6f,0xa,0xdd,0x6, +0xfc,0x3,0x2a,0x7,0xc0,0x8,0x5b,0x4,0x18,0x1,0xfd,0x3, +0x3,0x6,0x6d,0x2,0x4a,0x1,0x56,0x5,0x9,0x6,0xfc,0x1, +0xa7,0x0,0xc9,0x2,0x2c,0x2,0x64,0xff,0xa2,0xfe,0x76,0xfd, +0x1f,0xfb,0xa,0xfb,0x0,0xfc,0xf,0xfb,0x78,0xf8,0xc0,0xf7, +0xdb,0xf9,0xc5,0xf8,0x1a,0xf5,0x2b,0xf6,0xc1,0xf8,0xdd,0xf7, +0x3,0xf7,0xd9,0xf7,0xf2,0xf8,0xe0,0xf9,0x56,0xfa,0xa7,0xfa, +0x2a,0xfb,0x69,0xfb,0x1f,0xfa,0x4e,0xf8,0xc5,0xf8,0xff,0xf8, +0xf0,0xf6,0x19,0xf6,0xe1,0xf5,0x2a,0xf5,0x8,0xf7,0xdd,0xf8, +0x6c,0xf6,0x44,0xf4,0x45,0xf8,0x5a,0xfd,0xdc,0xfa,0xb8,0xf6, +0x10,0xfa,0x49,0xfd,0x43,0xfa,0xbc,0xf8,0x66,0xfa,0x93,0xf8, +0x16,0xf4,0xb1,0xf3,0x83,0xf6,0x33,0xf5,0x90,0xf0,0xbb,0xef, +0x2d,0xf2,0x5c,0xf2,0x9f,0xef,0x25,0xee,0xfb,0xef,0xa1,0xf1, +0x3d,0xf1,0xaf,0xf1,0x1f,0xf3,0x67,0xf3,0x6e,0xf3,0x23,0xf4, +0xc0,0xf3,0xe6,0xf1,0x2c,0xf1,0x86,0xf2,0xd7,0xf3,0x5d,0xf3, +0x7b,0xf1,0xd6,0xef,0x22,0xf0,0x50,0xf3,0x1b,0xf6,0x6f,0xf3, +0x89,0xf0,0xec,0xf4,0x25,0xf9,0xa3,0xf6,0x1a,0xf4,0x6a,0xf5, +0x8c,0xf8,0xb5,0xfa,0xc8,0xf9,0x21,0xfa,0x74,0xfd,0x16,0xfe, +0x3f,0xfd,0x88,0xfe,0xcb,0xfe,0x9f,0xfd,0xea,0xfd,0xcc,0xfe, +0x7e,0xfd,0x56,0xfb,0xac,0xfd,0x5,0x2,0x3f,0x0,0x6e,0xfd, +0xf6,0x1,0x43,0x6,0x3,0x4,0xf7,0x2,0xee,0x5,0x4,0x7, +0x4,0x7,0xa8,0x8,0x6,0x8,0x1d,0x6,0x33,0x9,0xfb,0xc, +0x8e,0xa,0x8a,0x8,0x63,0xb,0xba,0xa,0x71,0x7,0xd3,0xa, +0x3a,0xe,0xf5,0x8,0xf8,0x3,0x60,0x6,0x81,0xb,0xf8,0xd, +0x13,0xa,0x69,0x5,0x79,0xb,0x6b,0x13,0x2a,0xd,0x83,0x5, +0x37,0xc,0x2b,0x11,0x0,0x8,0x40,0x2,0x7f,0x9,0xa0,0xd, +0x35,0x6,0x28,0x2,0xd8,0x9,0x51,0xc,0xc9,0x2,0xf4,0x2, +0x32,0xf,0x9,0xf,0x87,0x6,0xc9,0xb,0xb8,0x14,0xa8,0x10, +0xeb,0xa,0x86,0xc,0x1a,0xd,0x64,0xa,0x2e,0x8,0x63,0x8, +0x74,0xc,0xc7,0xc,0xa8,0x7,0xa4,0xc,0xf5,0x15,0xf4,0xe, +0xd9,0x5,0x8a,0xb,0xef,0xd,0xbe,0x4,0x58,0x0,0xa0,0x4, +0xd4,0x7,0x7,0x7,0xca,0x6,0x8b,0xa,0x2a,0xf,0x39,0xf, +0x88,0xd,0xf2,0xf,0xa1,0xf,0x37,0x7,0x72,0x4,0x45,0x9, +0x19,0x4,0x18,0xfc,0xfe,0x1,0x26,0x7,0x91,0x2,0xd1,0x3, +0x4b,0x9,0x88,0x8,0x7,0x8,0xe5,0x8,0xb3,0x7,0x9d,0xa, +0xc,0xc,0xd3,0x4,0xbb,0x2,0x7e,0x7,0xe8,0x3,0xb4,0xfd, +0x4f,0xff,0x34,0x0,0x8b,0xfd,0xa7,0xfe,0xf7,0x1,0xeb,0x1, +0xee,0xff,0x8,0x1,0x80,0x4,0x78,0x3,0x9d,0xfe,0x2a,0xff, +0x7,0x4,0xb0,0x2,0x97,0xfd,0x35,0xff,0x79,0x3,0x75,0x1, +0xfc,0xfc,0x54,0xfc,0x19,0xff,0x6c,0x0,0x60,0xfb,0x5f,0xf7, +0xa1,0xfe,0x78,0x4,0xd1,0xfb,0x38,0xf6,0x6b,0xff,0x53,0x3, +0x3b,0xfb,0xb6,0xf9,0x5f,0xfe,0x8a,0xfb,0x53,0xf6,0x48,0xf7, +0x18,0xfb,0x29,0xfc,0x9c,0xf8,0x64,0xf6,0x50,0xf9,0x9d,0xf9, +0xb,0xf6,0x45,0xf5,0x76,0xf5,0x54,0xf4,0x80,0xf3,0x3b,0xf2, +0xf9,0xf1,0x9,0xf3,0xb,0xf3,0xd9,0xf4,0x8d,0xf8,0xfd,0xf8, +0xfc,0xf7,0x2e,0xf9,0x1a,0xf9,0xca,0xf5,0x3b,0xf4,0xb5,0xf6, +0x9e,0xf6,0xb1,0xf1,0xad,0xf0,0x74,0xf4,0xe9,0xf3,0x74,0xf0, +0xb9,0xf0,0xa2,0xf2,0x2e,0xf4,0x86,0xf5,0x64,0xf4,0x11,0xf4, +0x4,0xf8,0xc6,0xf9,0x8d,0xf7,0xb5,0xf7,0x93,0xf8,0xe5,0xf6, +0xa7,0xf5,0x82,0xf3,0x82,0xf0,0x72,0xf2,0x2a,0xf5,0xd,0xf2, +0x6b,0xf0,0x60,0xf4,0xa4,0xf5,0xe7,0xf3,0x89,0xf5,0xc9,0xf5, +0x4d,0xf1,0xd0,0xf0,0x54,0xf4,0xce,0xf3,0xab,0xf2,0x64,0xf4, +0xfe,0xf4,0x9d,0xf5,0x5b,0xf6,0x55,0xf4,0x51,0xf3,0x4,0xf4, +0x6a,0xf2,0x74,0xf1,0xb3,0xf3,0x7e,0xf5,0xe9,0xf5,0x17,0xf7, +0xc3,0xf7,0x13,0xf6,0x4c,0xf5,0xc5,0xf6,0xaf,0xf5,0xdf,0xf2, +0xa0,0xf3,0x5d,0xf6,0xbc,0xf7,0xb3,0xf7,0x4c,0xf8,0xdc,0xfb, +0x0,0xfe,0xd4,0xfa,0xaf,0xf9,0x39,0xfe,0x8d,0x0,0xcb,0xfc, +0xbd,0xf8,0xbd,0xfa,0x2a,0x1,0x72,0x3,0x57,0xfe,0x9,0xfa, +0xca,0xfd,0xeb,0x2,0x78,0x0,0xd8,0xfc,0xdb,0xfe,0xb1,0xff, +0x4f,0xfe,0x68,0x0,0xbb,0x1,0x6d,0x1,0xb2,0x4,0x18,0x6, +0x6d,0x4,0x1,0x7,0x0,0x9,0x85,0x7,0xf7,0x8,0x81,0x9, +0x93,0x8,0x6a,0xc,0x1e,0xd,0x65,0x7,0x65,0x5,0x41,0x7, +0xd8,0x8,0x93,0x8,0x9e,0x4,0x16,0x5,0x6d,0xc,0x19,0xd, +0x2b,0x7,0x71,0x8,0x90,0xe,0xe5,0xc,0xfb,0x6,0xb9,0x9, +0x73,0xf,0x5c,0xb,0x5c,0x5,0x44,0x8,0x61,0xe,0x3,0x10, +0x4b,0xc,0xe5,0x7,0xed,0x7,0x8e,0xa,0x9c,0xb,0x22,0x9, +0xe4,0x5,0x67,0x8,0xb7,0xc,0x4d,0xb,0x49,0xa,0xb3,0xd, +0xdc,0xf,0xf3,0xf,0x7c,0xf,0x5d,0xe,0x56,0xd,0x68,0xb, +0x47,0x9,0x85,0x8,0x5a,0x8,0xb7,0x9,0x92,0x9,0x40,0x5, +0xf7,0x5,0x6,0xb,0x54,0x7,0x57,0x2,0xd6,0x7,0xe1,0xc, +0xbf,0xa,0x27,0x9,0x85,0xa,0xbd,0xc,0x7,0xe,0xe0,0xd, +0x99,0xd,0x79,0xb,0xda,0x8,0xe8,0x8,0x16,0x6,0x9,0x1, +0xf9,0x3,0xd0,0xa,0xd2,0x9,0x33,0x4,0x9b,0x3,0x17,0x7, +0xf1,0x7,0xbe,0x6,0x5d,0x7,0x7c,0x9,0x81,0xc,0x2c,0xd, +0x87,0x9,0x14,0xb,0x91,0x13,0x7e,0x14,0x3,0xd,0x42,0xa, +0x76,0xc,0xe2,0xb,0x87,0x7,0x9e,0x2,0xf3,0xff,0x53,0xfe, +0xc3,0xfb,0x35,0xfb,0xfb,0xfb,0x17,0xf9,0x82,0xf6,0x23,0xf9, +0xf4,0xfa,0xb7,0xf8,0xef,0xf7,0xe5,0xf9,0xd5,0xf9,0xd9,0xf7, +0x59,0xf9,0xc3,0xfc,0x23,0xfc,0x9a,0xf9,0x7c,0xf7,0x69,0xf4, +0xbf,0xf3,0x65,0xf4,0x19,0xf1,0xc,0xee,0x4f,0xee,0xfa,0xec, +0x48,0xe9,0xeb,0xe7,0xe3,0xea,0xa8,0xec,0xfd,0xe9,0x36,0xea, +0x90,0xee,0x5c,0xf0,0xc,0xf2,0x9a,0xf5,0x9a,0xf5,0x33,0xf4, +0xf1,0xf6,0x75,0xf9,0xb7,0xf6,0x78,0xf4,0x99,0xf6,0xa7,0xf5, +0x55,0xf1,0x73,0xf2,0xaa,0xf5,0x8c,0xf4,0xf8,0xf3,0xd0,0xf5, +0xe6,0xf6,0x13,0xf8,0x31,0xf8,0xd,0xf6,0x15,0xf6,0x9,0xf8, +0x7a,0xf7,0x16,0xf7,0x69,0xf9,0xd2,0xfb,0x0,0xfe,0xfb,0xfe, +0xc1,0xfd,0x35,0xfd,0x44,0xfc,0x43,0xfa,0x83,0xfa,0xce,0xf8, +0x82,0xf3,0x2b,0xf3,0x77,0xf6,0xcd,0xf4,0x94,0xf1,0x7b,0xf3, +0x31,0xf6,0x2f,0xf5,0xb2,0xf5,0xa6,0xf8,0x6f,0xf8,0x2f,0xf7, +0xd6,0xf6,0x23,0xf6,0x7e,0xf8,0x9b,0xf9,0x4,0xf5,0xea,0xf3, +0x80,0xf6,0x64,0xf5,0x21,0xf5,0xe5,0xf6,0x18,0xf5,0x1b,0xf3, +0x32,0xf6,0xa6,0xfa,0xe4,0xfa,0xa9,0xf9,0x70,0xfb,0xa7,0xfd, +0xf9,0xfd,0x63,0xfc,0x8,0xfb,0x38,0xff,0x79,0x3,0x8c,0x0, +0x77,0x0,0x90,0x6,0xd8,0x7,0xff,0x5,0x14,0x8,0x5e,0xa, +0x1b,0xa,0xd0,0x9,0x2b,0xa,0x2c,0xa,0x85,0xa,0x19,0xc, +0x13,0xd,0xde,0xc,0xb9,0xd,0xdd,0xf,0x1d,0x12,0x19,0x13, +0x5c,0x11,0xd8,0xf,0x62,0x11,0xbc,0x11,0xec,0xe,0x7d,0xd, +0x91,0xe,0x43,0x10,0xf8,0x10,0x95,0xe,0x25,0xd,0x95,0xf, +0xe9,0xd,0x7b,0x8,0x81,0x8,0x1,0xa,0x8,0x8,0xfb,0x6, +0x8d,0x6,0x1c,0x6,0xe5,0x7,0x29,0x9,0x8d,0x8,0x88,0x8, +0xa,0x9,0xaf,0x7,0x9d,0x4,0x59,0x4,0x6c,0x5,0x38,0x1, +0x8,0xfc,0x49,0xfb,0xab,0xfa,0x5c,0xf9,0x49,0xf8,0x82,0xf6, +0xd6,0xf7,0x5c,0xfa,0xc8,0xf8,0xfe,0xf8,0x10,0xfc,0xa1,0xf9, +0x9e,0xf6,0x53,0xfa,0x7f,0xfb,0x3b,0xf7,0x43,0xf8,0x86,0xfc, +0x78,0xfb,0xc6,0xfa,0x32,0xfe,0x37,0xfe,0xd,0xfb,0x21,0xfb, +0xc4,0xfb,0x77,0xf9,0xd3,0xf7,0x7c,0xf7,0xf6,0xf6,0xd3,0xf8, +0xd5,0xfa,0x1c,0xf9,0x3d,0xf9,0x32,0xfd,0xff,0xfd,0xec,0xfb, +0x71,0xfc,0x1d,0xff,0x9a,0x0,0xba,0xfe,0x51,0xfb,0xf1,0xfa, +0xd2,0xfc,0xb7,0xfc,0x69,0xfa,0x28,0xf8,0x71,0xf7,0x1f,0xf8, +0xa,0xf8,0x51,0xf6,0xe0,0xf4,0x96,0xf4,0x49,0xf4,0x6,0xf4, +0x8f,0xf5,0xda,0xf8,0x8a,0xf9,0xbd,0xf5,0x1b,0xf4,0x5b,0xf7, +0xf8,0xf7,0xc0,0xf4,0x57,0xf4,0x85,0xf6,0x61,0xf7,0x7,0xf7, +0x19,0xf7,0xf,0xf8,0xeb,0xf7,0x24,0xf6,0xaf,0xf5,0xe1,0xf5, +0x5f,0xf5,0x3c,0xf7,0x6e,0xf9,0xcd,0xf7,0xe,0xf8,0xd3,0xfc, +0xaf,0xfd,0x79,0xfa,0x97,0xfb,0xe7,0xff,0x15,0x2,0xc3,0x2, +0x60,0x3,0xb4,0x3,0xe9,0x3,0x7b,0x5,0xda,0x7,0x1e,0x7, +0xc9,0x5,0x9d,0x7,0xcf,0x7,0x42,0x8,0x9c,0xc,0x9,0xc, +0xdb,0x8,0xfa,0xc,0x40,0xf,0x87,0xa,0xb8,0x8,0x56,0xa, +0x55,0xb,0x4e,0xc,0x42,0xc,0xae,0xc,0x86,0xf,0xc1,0x12, +0xa,0x15,0x95,0x14,0x88,0x11,0x7b,0x11,0xec,0x14,0x35,0x15, +0xe3,0x10,0xbd,0xc,0x5d,0xb,0x23,0xc,0x50,0xd,0x12,0xc, +0xd0,0x8,0xaa,0x8,0x52,0xc,0x29,0xd,0x35,0x8,0xb6,0x3, +0xf0,0x5,0xb1,0xb,0xda,0xc,0xb7,0x8,0xc7,0x7,0x1b,0xe, +0x84,0x12,0x61,0xd,0x22,0x7,0xdc,0x9,0xe3,0x10,0x90,0x11, +0x7e,0xb,0x29,0x9,0x4f,0xd,0x63,0xb,0xa,0x0,0xc2,0xf9, +0xd1,0xfd,0xfe,0x1,0xb2,0x0,0x61,0xfc,0xb1,0xf9,0x58,0xfe, +0xdb,0x8,0x3a,0xe,0xd5,0x9,0x44,0x5,0xcc,0x8,0x6,0xe, +0x2f,0xb,0x83,0x4,0x5f,0x4,0x40,0x7,0x72,0x2,0x29,0xfa, +0x5a,0xfc,0x14,0x7,0x8d,0x8,0x3b,0xfc,0x9c,0xf2,0x7f,0xf6, +0x36,0xff,0x68,0xff,0x97,0xf5,0x6d,0xee,0xb9,0xf3,0xae,0xfc, +0x2a,0xfc,0x93,0xf5,0x1a,0xf6,0x57,0xff,0xd6,0x3,0x2d,0xfc, +0xe0,0xf2,0x11,0xf5,0x23,0x0,0x6a,0x1,0x35,0xf2,0xb1,0xe9, +0x4e,0xf3,0x83,0xf8,0x36,0xf1,0x6f,0xed,0x1a,0xef,0xc8,0xef, +0x37,0xf1,0x42,0xf4,0xb6,0xf7,0x8c,0xfa,0xd3,0xfa,0x96,0xf6, +0xcc,0xee,0xf1,0xed,0x1d,0xf8,0xeb,0xfb,0x23,0xf2,0x97,0xeb, +0x4c,0xf0,0x58,0xf7,0x3,0xf7,0x8c,0xef,0xe1,0xed,0x5d,0xf6, +0x92,0xfc,0x86,0xfc,0x53,0xfb,0xf7,0xf7,0xea,0xf2,0xd6,0xef, +0xca,0xee,0xe3,0xee,0xe9,0xee,0xf7,0xef,0x61,0xf5,0x2e,0xf9, +0x19,0xf5,0xd,0xf4,0x89,0xfc,0xf6,0xff,0x71,0xf8,0xc,0xf2, +0x16,0xf0,0x77,0xee,0x4d,0xef,0xd8,0xf2,0x9d,0xf6,0xfd,0xf9, +0x6c,0xfa,0x23,0xf9,0xa6,0xfc,0x42,0x3,0x37,0x4,0x1,0xfe, +0x6c,0xf7,0x4f,0xf7,0x1e,0xfe,0x61,0x3,0x73,0xff,0xff,0xf7, +0xa4,0xf6,0xad,0xfa,0x51,0xfe,0x5,0xfd,0xae,0xf6,0xcb,0xf3, +0x30,0xf8,0xbc,0xfb,0xd5,0xfb,0x68,0xfc,0xb6,0xfc,0x91,0xfd, +0x18,0x0,0x36,0xff,0xa6,0xfb,0xe4,0xfd,0xf4,0x4,0xba,0x6, +0xd3,0x2,0x95,0x3,0x6b,0x9,0xc6,0x9,0x3f,0x5,0xb9,0x3, +0x92,0x1,0x49,0xfb,0xb0,0xf6,0xee,0xf4,0xf7,0xf4,0xc7,0xf8, +0x1a,0xfc,0x5f,0xfc,0x21,0xff,0x3,0x4,0x3d,0x6,0x7d,0x5, +0x9,0x3,0x75,0x2,0xc4,0x4,0xe2,0x3,0x36,0xff,0xdb,0xfb, +0xca,0xf9,0xde,0xf9,0x74,0xfe,0x30,0x2,0x50,0x1,0x15,0x2, +0x2e,0x6,0xf2,0x6,0xb9,0x5,0xbc,0x7,0x43,0x8,0x26,0x4, +0x86,0x0,0xbe,0xfe,0x79,0xfd,0xa4,0xfd,0x24,0xff,0x77,0x2, +0xc0,0x7,0xb,0xc,0x34,0xc,0x85,0x7,0x48,0x4,0x2,0x9, +0xce,0xc,0xfb,0x5,0xd0,0xfe,0xd4,0x1,0x8e,0x7,0x48,0x7, +0x39,0x4,0xe8,0x4,0x4c,0x8,0xce,0x7,0xcd,0x3,0xd,0x3, +0xc5,0x4,0x8d,0x3,0xee,0xff,0x76,0xfc,0x1d,0xfc,0x9b,0x1, +0x46,0x7,0x81,0x7,0x42,0x7,0xf4,0x9,0xfb,0xc,0x47,0xe, +0x35,0xb,0x46,0x6,0x44,0x6,0xfd,0x7,0xea,0x5,0xf2,0x3, +0x90,0x4,0xbb,0x5,0xb4,0x5,0x61,0x2,0xbf,0xfe,0xac,0xfe, +0x55,0xfe,0xc3,0xfd,0xeb,0x0,0x4f,0x3,0xad,0x3,0x5c,0x7, +0x18,0xa,0x76,0x6,0xed,0x2,0x21,0x5,0x90,0x8,0x2,0x7, +0x39,0x2,0x3c,0x1,0x11,0x5,0xfa,0x7,0x1,0x6,0x20,0x1, +0x6b,0xfe,0x2a,0xfe,0xa0,0xfc,0x3c,0xfa,0x54,0xf8,0x66,0xf7, +0xfd,0xfa,0x36,0x1,0x30,0x2,0x80,0xff,0xb4,0x1,0xeb,0x7, +0xd4,0x9,0xb6,0x6,0xee,0x4,0xe2,0x4,0xd,0x2,0x8b,0xfd, +0x3b,0xfc,0xaa,0xfe,0x63,0x0,0xf3,0xfe,0xd3,0xfd,0xe1,0xfe, +0x40,0xff,0x6b,0xfe,0x19,0xfd,0x8f,0xfa,0x67,0xfa,0xe1,0xff, +0x71,0x4,0xac,0x2,0x5e,0x1,0x23,0x5,0x82,0x7,0xae,0x5, +0x6e,0x3,0x1d,0x1,0xb5,0xff,0x22,0x1,0x6e,0x0,0x31,0xfb, +0x8b,0xf8,0x71,0xfa,0xa1,0xf9,0xc1,0xf4,0xce,0xf2,0x98,0xf5, +0x2e,0xf7,0xe,0xf6,0x15,0xf7,0x27,0xfa,0xaa,0xfb,0x1b,0xfd, +0x90,0xfe,0xc4,0xfc,0xfc,0xfa,0x7e,0xfc,0x6e,0xfc,0x78,0xf9, +0xd8,0xf8,0xf3,0xfa,0x8c,0xfa,0x7d,0xf6,0x1a,0xf5,0x87,0xf8, +0x91,0xf9,0xcd,0xf6,0x9c,0xf5,0xf8,0xf5,0x18,0xf8,0x88,0xfc, +0x78,0xfc,0x6a,0xf7,0xec,0xf7,0x3a,0xff,0x5d,0x2,0xe7,0xfd, +0x14,0xfb,0x1d,0xfe,0xd6,0xff,0xe5,0xfd,0xa7,0xfc,0xcd,0xfb, +0xd7,0xfb,0xdf,0xfe,0x88,0xff,0x1f,0xfc,0x7b,0xfc,0x5e,0x0, +0x29,0x0,0xba,0xfd,0xb8,0xfe,0xf1,0x0,0xfc,0x0,0xd0,0x0, +0xe,0x2,0x18,0x2,0xe0,0x0,0x53,0x2,0x78,0x3,0x2c,0xff, +0xb2,0xfc,0x70,0x1,0xa8,0x3,0x6f,0xff,0xc2,0xfd,0x10,0x1, +0x58,0x3,0x90,0x1,0x4d,0xfe,0x70,0xfe,0x49,0x2,0xa6,0x4, +0xf6,0x2,0xa6,0xff,0x2b,0xfe,0xf1,0xff,0xd6,0x1,0xc1,0xff, +0x9b,0xfc,0x11,0xfe,0xfc,0x0,0xb9,0xfe,0x45,0xfb,0x80,0xfe, +0xf6,0x4,0x6b,0x6,0xf7,0x3,0x88,0x3,0x2a,0x5,0x48,0x5, +0x8,0x3,0xa4,0x0,0xf3,0x0,0x17,0x3,0x0,0x3,0x96,0x1, +0xaf,0x2,0x87,0x4,0x2b,0x5,0x7c,0x6,0xe,0x7,0x91,0x4, +0x8d,0x2,0x5,0x4,0xda,0x4,0x56,0x1,0x38,0xff,0xd0,0x3, +0x52,0x7,0x73,0x3,0x1d,0x1,0x16,0x6,0xd,0xa,0xd9,0x7, +0x97,0x4,0x66,0x4,0x85,0x5,0xba,0x4,0xa5,0x1,0xf4,0xfe, +0xed,0xfe,0xc6,0x0,0x12,0x2,0x5e,0x2,0x4,0x3,0xa3,0x3, +0x3d,0x3,0x6e,0x3,0xf3,0x4,0x72,0x4,0xc0,0x0,0xbe,0xfe, +0xa0,0xff,0x94,0xfd,0xba,0xf9,0xbf,0xfb,0xcc,0x0,0x3,0x1, +0xff,0xfe,0x12,0x0,0x79,0x2,0xf8,0x2,0x8b,0x1,0xec,0xff, +0x53,0xff,0x8c,0xff,0x4d,0xff,0xce,0xfd,0x66,0xfd,0x16,0xff, +0xee,0xfe,0xec,0xfc,0x65,0xfc,0xe4,0xfb,0x63,0xfb,0x11,0xfc, +0x4,0xfb,0x4,0xfa,0x52,0xfb,0x2a,0xfa,0xe,0xf8,0x7e,0xf9, +0x43,0xfa,0xea,0xf8,0xd4,0xf7,0x46,0xf6,0x73,0xf7,0xa4,0xfb, +0x4c,0xfb,0xd7,0xf7,0xb9,0xf7,0xb9,0xf7,0xd2,0xf5,0x50,0xf6, +0xb5,0xf7,0x96,0xf5,0xf4,0xf2,0x2e,0xf5,0xf3,0xf9,0xb2,0xfa, +0x72,0xf8,0xf7,0xf9,0x5b,0xfd,0xfb,0xfa,0xc2,0xf6,0x75,0xf9, +0x19,0xfd,0xe6,0xf8,0x9,0xf4,0x88,0xf5,0xd3,0xf6,0x8f,0xf4, +0x50,0xf4,0x9d,0xf6,0x8,0xf7,0x41,0xf6,0x84,0xf7,0xa6,0xf9, +0x55,0xfa,0x7b,0xfa,0x8f,0xfb,0xb5,0xfd,0x6c,0xff,0xc,0xfe, +0xaf,0xfb,0x12,0xfd,0xf,0xff,0x4a,0xfd,0x84,0xfc,0xe2,0xff, +0x77,0x2,0xca,0x1,0x38,0x0,0xc6,0xfe,0xaf,0xfd,0xcc,0xfd, +0x2a,0xfe,0x23,0xfd,0xde,0xfb,0xb9,0xfc,0x11,0xff,0xc4,0xff, +0xec,0xfe,0x87,0x0,0x5d,0x3,0xfe,0x1,0x9b,0xff,0x2,0x2, +0xed,0x4,0x76,0x4,0x27,0x4,0x30,0x5,0xa1,0x5,0x81,0x4, +0x94,0x2,0xc9,0x2,0xf6,0x3,0x6d,0x2,0x31,0x2,0x68,0x6, +0xcb,0x8,0x79,0x7,0xc4,0x8,0xc0,0xc,0xc,0xd,0x92,0xa, +0xbf,0xb,0x96,0xe,0x60,0xd,0x4e,0xb,0x55,0xc,0xcb,0xd, +0x33,0xe,0x36,0xe,0x34,0xe,0xb2,0xf,0xd3,0x11,0x3e,0x12, +0x30,0x12,0xe0,0x12,0x5d,0x13,0x33,0x14,0xce,0x15,0x8d,0x15, +0xc7,0x12,0x29,0x12,0x79,0x14,0xcd,0x13,0xbf,0x10,0x76,0x11, +0x22,0x14,0xdc,0x13,0xd7,0x11,0x69,0x11,0xfa,0x12,0xa0,0x12, +0x3,0xe,0x23,0xa,0xc3,0x9,0x10,0x8,0xf2,0x3,0xb5,0x2, +0x11,0x5,0x8b,0x5,0x98,0x3,0x9e,0x3,0x43,0x3,0x9d,0xff, +0xed,0xfd,0xa2,0xfe,0x0,0xfd,0xa1,0xfb,0x52,0xfc,0x1,0xfc, +0xf1,0xfb,0xda,0xfd,0x9a,0xff,0x45,0xff,0x33,0xfd,0xc4,0xfb, +0x3e,0xfb,0xbb,0xfa,0x26,0xfb,0x32,0xf9,0xf7,0xf4,0x75,0xf7, +0x9f,0xfc,0xef,0xf8,0x2d,0xf4,0xa9,0xf6,0x2d,0xf8,0x55,0xf6, +0x75,0xf6,0xd9,0xf6,0xb5,0xf5,0xd0,0xf5,0xcc,0xf6,0x49,0xf6, +0x16,0xf6,0xf1,0xf7,0x5f,0xf8,0xe0,0xf6,0x96,0xf7,0x82,0xf8, +0x3c,0xf7,0x8c,0xf7,0x8c,0xf7,0x3d,0xf3,0x33,0xf0,0x39,0xf1, +0x3d,0xf0,0x67,0xec,0x9,0xeb,0x97,0xec,0xb3,0xec,0x60,0xeb, +0xd3,0xed,0x94,0xf2,0x6c,0xf1,0x8c,0xec,0xbc,0xed,0x18,0xf2, +0x2f,0xf0,0x5f,0xeb,0xa6,0xeb,0xec,0xed,0x86,0xec,0xe7,0xea, +0xf9,0xec,0xca,0xed,0x20,0xea,0x77,0xe8,0xd6,0xea,0x2f,0xea, +0x8b,0xe7,0x74,0xe9,0xa5,0xeb,0x69,0xe9,0x9e,0xe8,0x54,0xec, +0x65,0xef,0x71,0xee,0x4d,0xec,0xb,0xee,0xb8,0xf2,0xf5,0xf2, +0x57,0xee,0xa6,0xee,0x30,0xf6,0x9,0xf9,0x48,0xf3,0x55,0xf2, +0x5b,0xf9,0xae,0xfa,0x70,0xf6,0x41,0xf8,0x5,0xfc,0x74,0xfa, +0x59,0xfa,0x8b,0xfe,0x3a,0x0,0x6a,0xff,0x3c,0x0,0x67,0x1, +0x6f,0x2,0x43,0x4,0xc6,0x4,0xe8,0x4,0x9e,0x6,0xd4,0x6, +0x7e,0x6,0xd4,0x8,0xfa,0x8,0x4f,0x5,0x31,0x4,0x9e,0x6, +0x79,0x8,0x6c,0x7,0xa1,0x5,0xc3,0x7,0x4f,0xa,0xe8,0x8, +0x6c,0xa,0xfd,0xe,0xd1,0xd,0x67,0xa,0x43,0xb,0xe9,0xc, +0x8f,0xc,0xbd,0xb,0x7e,0xb,0x79,0x9,0xe5,0x4,0x23,0x5, +0x14,0xa,0x9,0x9,0x86,0x4,0x1d,0x4,0xaf,0x5,0xd3,0x9, +0x53,0xc,0x59,0x5,0x7e,0x1,0xca,0x9,0xfb,0xc,0xcb,0x5, +0xe5,0x5,0x22,0xf,0x6c,0x10,0x5b,0x9,0xef,0xa,0xfc,0x11, +0xda,0xd,0xf9,0x6,0x2c,0x8,0x78,0x4,0x4a,0xfc,0x8,0xff, +0x70,0x4,0xf9,0xfe,0x88,0xf8,0xb7,0xfc,0x85,0x4,0x8c,0x4, +0xcb,0x0,0xcb,0x2,0x9d,0x6,0xdd,0x6,0x22,0x5,0x6e,0x1, +0x21,0x2,0x7b,0xa,0xa0,0xa,0xac,0x0,0x4e,0x0,0xfc,0x7, +0xf,0x9,0xa5,0x5,0x2,0x2,0x89,0xff,0x85,0x3,0xf9,0x8, +0x34,0x5,0x9,0xfd,0x85,0xfd,0xfb,0x4,0x4e,0x5,0x84,0xfe, +0x80,0xfe,0xd0,0x3,0x84,0x3,0x29,0x1,0x9b,0x3,0xc5,0x7, +0xba,0x7,0x56,0x3,0x7b,0x2,0x7a,0x4,0x60,0xfe,0xfb,0xf6, +0x33,0xf9,0xbf,0xf9,0x28,0xf5,0xfc,0xf6,0x8c,0xfc,0x6d,0x0, +0x99,0x3,0xa2,0x2,0x19,0x2,0x15,0x7,0x45,0x7,0xe7,0x0, +0x9c,0xfe,0x50,0x0,0x5b,0x0,0x69,0xfd,0xf8,0xfa,0x8e,0xff, +0x3,0x7,0xfc,0x6,0x17,0x2,0xc3,0x0,0x15,0x4,0x3d,0x5, +0x20,0xfe,0x71,0xf8,0x48,0xfe,0x11,0x3,0x23,0xff,0x9a,0xff, +0xee,0x5,0xa4,0x6,0x35,0x3,0x6c,0x3,0xc7,0x5,0x1d,0x5, +0xbd,0x3,0x54,0x5,0x85,0x3,0x24,0xff,0x37,0x6,0x1d,0x10, +0x40,0x9,0xa9,0x1,0x2f,0x9,0xbf,0xa,0x5e,0x0,0x20,0xfe, +0xae,0x2,0xe9,0x3,0x12,0x5,0xa5,0x3,0xc6,0xff,0x14,0x4, +0xe2,0xa,0xe5,0x6,0xb1,0xff,0xaf,0x1,0xb,0x8,0x61,0x8, +0x7b,0x4,0xc9,0x4,0x90,0x7,0x4a,0x7,0x2c,0x7,0xfd,0x6, +0xfc,0x2,0xb4,0x1,0x54,0x4,0x52,0x0,0xba,0xf9,0xbf,0xfd, +0x22,0x5,0x5a,0x1,0x47,0xfa,0xc4,0xfe,0xcf,0x5,0x5a,0x0, +0xc,0xf9,0xfc,0xfc,0x20,0x1,0xee,0xfd,0xe0,0xfc,0xa4,0xff, +0x29,0x1,0x87,0x3,0x8d,0x6,0xbe,0x5,0xe,0x3,0x11,0x3, +0x2a,0x3,0x4a,0xfe,0xac,0xf8,0xb1,0xf8,0xd1,0xf8,0xb2,0xf4, +0x97,0xf3,0x4a,0xf6,0x9f,0xf6,0xa7,0xf7,0xca,0xfc,0xc1,0x0, +0x6e,0x0,0x8f,0xfe,0x38,0xfd,0x35,0xfc,0x82,0xfc,0xff,0xfd, +0xac,0xfb,0x94,0xf7,0x1d,0xfb,0x36,0x0,0xda,0xfb,0x9c,0xf6, +0x7b,0xf7,0xbc,0xf6,0x3f,0xf3,0xbb,0xf1,0x84,0xf2,0x60,0xf5, +0x27,0xf7,0x25,0xf6,0x62,0xf8,0x8c,0xfe,0xe8,0x0,0xf8,0xfc, +0x4a,0xf7,0x21,0xf4,0x8c,0xf2,0x82,0xef,0xe1,0xec,0xe6,0xec, +0xf4,0xed,0xb8,0xf0,0x94,0xf5,0xd5,0xf8,0x59,0xfa,0x2e,0xfd, +0x6,0x0,0xa1,0x0,0xc0,0x0,0xf8,0x1,0x7c,0x2,0xfc,0x0, +0x21,0xff,0x93,0xfd,0xaa,0xfa,0x5b,0xf6,0x4e,0xf2,0xcb,0xef, +0x9f,0xef,0x75,0xf0,0xc1,0xf0,0xa7,0xf3,0x10,0xfb,0xee,0x0, +0xa4,0x1,0x57,0x2,0xf8,0x3,0x3a,0x1,0x49,0xfc,0x93,0xfa, +0xc9,0xf8,0xd3,0xf4,0x6b,0xf4,0x93,0xf7,0x1,0xf9,0x61,0xfa, +0x1a,0xfd,0x98,0xfc,0xc3,0xf9,0xf0,0xf8,0xbf,0xf7,0x68,0xf4, +0x48,0xf3,0x47,0xf6,0xa6,0xf9,0x7f,0xfa,0x47,0xfb,0x8c,0xfe, +0x3f,0x0,0x16,0xfd,0xc4,0xf9,0x16,0xfa,0x6c,0xfb,0x91,0xfa, +0x1e,0xf8,0x37,0xf8,0x4,0xfc,0x84,0xfe,0x7d,0xfe,0x13,0x0, +0x13,0x2,0xea,0x0,0x4f,0xff,0xfc,0xff,0xd7,0xff,0xd7,0xfd, +0xf4,0xfe,0x56,0x3,0x3e,0x4,0xbb,0x2,0xe0,0x4,0x6,0x6, +0x50,0x1,0xe,0xfd,0xfd,0xfb,0xaa,0xfa,0xa3,0xfa,0x95,0xfc, +0x45,0xfd,0xaf,0xfd,0x10,0x0,0x2e,0x3,0x1e,0x5,0x95,0x4, +0x9e,0x2,0x59,0x1,0xf,0x0,0x8e,0xfe,0x61,0xfe,0x3d,0xff, +0xe8,0x0,0xab,0x2,0x38,0x2,0x14,0x1,0x56,0x1,0x10,0x0, +0xcb,0xfc,0x74,0xfb,0xd8,0xfc,0xe,0xff,0x7b,0x0,0xc7,0x0, +0x84,0x1,0xa1,0x1,0x27,0xff,0x7a,0xfe,0x3c,0x1,0x1a,0x1, +0x99,0xff,0xcc,0x2,0x17,0x5,0xe1,0x2,0xf9,0x2,0x18,0x4, +0x9c,0x0,0x65,0xfd,0x81,0xfe,0x12,0x0,0xc3,0xff,0xe5,0xff, +0x2e,0x4,0x48,0xb,0x1,0xf,0xe5,0xe,0xbd,0xe,0x45,0xf, +0x2c,0x10,0xa1,0xe,0xd1,0x8,0x20,0x5,0xee,0x6,0x52,0x8, +0xb2,0x6,0xfb,0x4,0xb4,0x4,0x5d,0x5,0x3b,0x6,0xcf,0x6, +0xc1,0x4,0xfa,0xff,0xef,0xfe,0x47,0x2,0xb7,0x2,0xc0,0x1, +0x9f,0x4,0xfa,0x6,0xca,0x5,0x9b,0x5,0x8a,0x7,0xb9,0x7, +0x4b,0x5,0xd4,0x2,0x8f,0x1,0xe0,0x0,0x89,0xff,0x92,0xfc, +0x70,0xfa,0xf3,0xfa,0x99,0xfa,0xa5,0xf9,0xeb,0xfb,0x32,0xfe, +0xa,0xff,0xdb,0x3,0x86,0xa,0xca,0xc,0x80,0xc,0xa9,0xc, +0xfb,0xb,0xf7,0x8,0xda,0x3,0x81,0x0,0x47,0x2,0x6b,0x5, +0xdb,0x5,0x2f,0x6,0xa7,0x8,0x7d,0xa,0x9a,0x9,0x38,0x8, +0x4d,0x8,0x5e,0x7,0xf7,0x3,0x58,0x2,0xed,0x3,0x0,0x4, +0xe4,0x2,0xd8,0x4,0x19,0x7,0x27,0x6,0x43,0x5,0x55,0x6, +0xdb,0x6,0xe6,0x5,0x43,0x5,0x75,0x5,0x95,0x3,0x5a,0xff, +0xe6,0xfd,0x46,0xff,0xf2,0xfd,0xd2,0xfa,0xfb,0xf9,0xb3,0xfa, +0xf3,0xfb,0x66,0xfd,0xf6,0xfc,0x6a,0xfb,0xc,0xfc,0xa9,0xfd, +0xe3,0xfc,0x41,0xfb,0x8d,0xfa,0x6e,0xf8,0x9,0xf6,0x4a,0xf6, +0x9b,0xf5,0x43,0xf3,0x97,0xf4,0x70,0xf7,0x35,0xf7,0xb1,0xf7, +0x94,0xfa,0xfb,0xfa,0x51,0xf8,0x63,0xf7,0xf,0xf9,0x10,0xf9, +0xf6,0xf7,0x85,0xfa,0xdb,0xfd,0x94,0xfd,0xbd,0xfd,0x3c,0x0, +0x9b,0x1,0xd9,0x1,0x1c,0x2,0x4c,0x2,0x10,0x2,0xac,0xff, +0xf1,0xfc,0x74,0xfd,0xc5,0xfd,0x7e,0xfa,0x19,0xf8,0xe9,0xf9, +0xbc,0xfc,0x19,0xfe,0x6c,0xff,0xf6,0x0,0xc0,0x1,0xf3,0x2, +0x50,0x3,0x5c,0x0,0xa2,0xfd,0x4d,0xfd,0xb4,0xfb,0x63,0xf9, +0xff,0xf8,0xc,0xf9,0xde,0xf9,0x49,0xfc,0xd1,0xfc,0xfe,0xfa, +0x4d,0xfb,0x91,0xfc,0xf2,0xf9,0x5e,0xf7,0x60,0xf8,0x92,0xf6, +0x6f,0xf3,0x1a,0xf6,0x49,0xf8,0x9f,0xf7,0x67,0xfb,0x51,0xfe, +0x2b,0xfd,0x60,0x0,0xac,0x3,0x53,0x1,0x7e,0x0,0xe4,0xff, +0xdf,0xfb,0x6d,0xfc,0x21,0x0,0xb9,0xfc,0x2e,0xf7,0x5c,0xf9, +0xe2,0xfd,0x9c,0xfd,0xee,0xfd,0xbf,0x1,0x4f,0x3,0xd8,0x3, +0x4f,0x7,0xfb,0x8,0x93,0x7,0x44,0x7,0x2,0x6,0xfe,0x2, +0xf2,0x2,0x87,0x4,0xc3,0x3,0x67,0x3,0x4b,0x5,0xa5,0x6, +0xe3,0x7,0x28,0xa,0x11,0xa,0x5d,0x7,0xb7,0x6,0xa9,0x7, +0x1e,0x5,0x5b,0x0,0x1e,0x0,0x1c,0x3,0x54,0x2,0xcc,0x1, +0xda,0x7,0xc7,0xc,0xe1,0xb,0x70,0xc,0xa8,0xe,0xf,0xe, +0x65,0xd,0x14,0xd,0x34,0xa,0xcd,0x7,0x25,0x8,0xc0,0x7, +0xb4,0x6,0x34,0x8,0x1c,0x9,0x4e,0x7,0x76,0x7,0xcd,0x7, +0x61,0x4,0xc0,0x2,0x48,0x2,0x2d,0xfd,0xaf,0xfa,0x21,0xfe, +0x90,0xfe,0xb6,0xfc,0xe9,0xfd,0x8f,0xff,0xbd,0x0,0x95,0x1, +0x4a,0x0,0xc6,0xff,0x55,0x1,0xba,0xff,0x92,0xfa,0x5e,0xf8, +0xdd,0xf9,0xcc,0xf8,0xcf,0xf4,0xa8,0xf3,0x3c,0xf5,0x1,0xf6, +0xac,0xf6,0xbf,0xf7,0x64,0xf8,0xa5,0xf9,0x9,0xfa,0xdf,0xf6, +0x7,0xf4,0x48,0xf5,0x2,0xf6,0x80,0xf3,0x24,0xf2,0x55,0xf3, +0x16,0xf5,0x1f,0xf6,0x15,0xf5,0xea,0xf4,0x3b,0xf8,0x62,0xf9, +0xbc,0xf6,0x90,0xf5,0xf3,0xf4,0x42,0xf3,0x9c,0xf2,0xa7,0xf0, +0xa1,0xed,0x8f,0xef,0xb0,0xf4,0x2b,0xf6,0xdc,0xf4,0x5d,0xf5, +0x27,0xf7,0x54,0xf7,0xe7,0xf5,0x19,0xf4,0xb7,0xf2,0x92,0xf2, +0x29,0xf2,0x61,0xf0,0x5c,0xf0,0xd8,0xf2,0x8b,0xf3,0x3b,0xf1, +0x8f,0xef,0x98,0xf0,0xaf,0xf1,0x75,0xf0,0xd5,0xee,0xe,0xee, +0x81,0xed,0xcf,0xed,0xc5,0xed,0xd4,0xec,0x55,0xee,0x37,0xf1, +0xc1,0xf1,0xf5,0xf1,0x6b,0xf3,0xd8,0xf4,0x29,0xf6,0xc5,0xf5, +0xe5,0xf3,0xf6,0xf3,0xdc,0xf4,0xdf,0xf4,0x8,0xf5,0xc5,0xf3, +0xc,0xf3,0xb0,0xf6,0xf3,0xf8,0x29,0xf7,0xfc,0xf8,0x80,0xfd, +0x82,0xfd,0x38,0xfc,0xcd,0xfe,0x39,0x2,0x47,0x3,0x2f,0x4, +0xd0,0x5,0xd8,0x4,0x57,0x4,0xf9,0x9,0x27,0xd,0x24,0x7, +0x4b,0x4,0x1f,0x9,0x89,0x9,0xb5,0x4,0x78,0x4,0x66,0x9, +0x31,0xc,0xb4,0x9,0xcd,0x7,0x3b,0xb,0x75,0xf,0x1d,0x10, +0xc1,0xd,0xe6,0xb,0x74,0xf,0x99,0x13,0xc5,0x10,0x33,0xe, +0x5e,0x10,0x7b,0xf,0xa,0xd,0x51,0xd,0x97,0xb,0x61,0xa, +0x1c,0xe,0x4,0xf,0x7a,0xa,0x47,0xa,0x98,0x11,0x62,0x16, +0xb0,0x11,0x94,0xc,0x3e,0x10,0x5e,0x14,0xe5,0x10,0x45,0xc, +0x4b,0xc,0x3,0xf,0x80,0x10,0x77,0xf,0x64,0xf,0x37,0x10, +0x60,0xf,0x27,0x11,0x1c,0x13,0x3f,0xe,0x0,0xc,0xb1,0xf, +0x8a,0xb,0x7a,0x4,0x23,0x6,0x95,0x6,0x66,0x3,0x42,0x6, +0x7d,0xa,0xa7,0xc,0xbc,0x11,0xcf,0x14,0x96,0x12,0xba,0x11, +0xe1,0x12,0x45,0x11,0x4e,0xc,0xfe,0x7,0x69,0x7,0x2b,0x6, +0xb,0x2,0xdf,0x1,0x23,0x5,0xf3,0x4,0xd7,0x3,0x37,0x5, +0xbe,0x6,0x66,0x7,0x42,0x6,0xb6,0x4,0xda,0x5,0xe,0x7, +0x64,0x7,0x7,0x8,0x2a,0x6,0x9f,0x6,0xf7,0xb,0x9a,0xa, +0xa9,0x4,0xc,0x5,0xc7,0x3,0x11,0xfe,0xc5,0xfb,0x8c,0xf7, +0x71,0xf2,0x73,0xf4,0xf7,0xf3,0x48,0xee,0x38,0xef,0x89,0xf4, +0x67,0xf8,0x73,0xfc,0xd8,0xfe,0x0,0x2,0x99,0x8,0xa,0xa, +0xbf,0x3,0xfd,0xfe,0x67,0xff,0xd7,0xfe,0x18,0xf8,0x66,0xf1, +0x92,0xf2,0x52,0xf5,0xac,0xf4,0x76,0xf6,0x92,0xf9,0xa1,0xfa, +0xeb,0xfc,0x37,0xfc,0x5b,0xf5,0x84,0xf2,0x7b,0xf5,0xc5,0xf4, +0x91,0xf1,0x1e,0xf3,0x1e,0xf9,0x8a,0xfe,0xa2,0xff,0xd0,0xff, +0xdc,0x4,0xa4,0x9,0xe0,0x6,0x47,0x1,0x92,0xfe,0x6b,0xfc, +0x4a,0xf8,0xac,0xf2,0x6d,0xee,0xa6,0xef,0x46,0xf4,0xe4,0xf5, +0xcc,0xf5,0xc2,0xf9,0x4a,0x0,0xa9,0x3,0x4c,0x2,0x3b,0x0, +0xf8,0x1,0x1c,0x4,0x85,0x0,0x30,0xfb,0xeb,0xf9,0xe6,0xf9, +0xc9,0xf8,0x6,0xf7,0x55,0xf5,0x4b,0xf8,0xa8,0xfe,0xb6,0xff, +0x4b,0xfd,0xdd,0xfd,0x10,0xfd,0x98,0xf7,0x9a,0xf1,0x7c,0xed, +0xe1,0xec,0x75,0xf0,0x2e,0xf4,0xe6,0xf6,0x59,0xfd,0x77,0x7, +0xff,0xc,0x31,0xa,0xd4,0x6,0xc4,0x7,0xad,0x5,0x5c,0xfd, +0xf7,0xf6,0x3b,0xf5,0x9a,0xf3,0x2c,0xf3,0xaf,0xf5,0xf7,0xf7, +0xd1,0xfa,0x5c,0xff,0x8d,0x0,0x0,0xff,0x78,0x0,0x2e,0x2, +0xbe,0x0,0x33,0x0,0xa6,0x0,0x1b,0xff,0x1e,0xfe,0xe8,0xfe, +0xf1,0xfe,0xa6,0xfe,0x1c,0xff,0xad,0xff,0x83,0x0,0xf1,0x0, +0x15,0x0,0xf4,0xfe,0x17,0xfe,0x7d,0xfd,0x94,0xfc,0x28,0xfa, +0xc6,0xf8,0x87,0xfa,0xd1,0xfb,0x73,0xfc,0xe0,0xfe,0x39,0x0, +0xeb,0x0,0x98,0x3,0x6a,0x3,0x64,0xff,0x31,0xfd,0xf3,0xfb, +0x77,0xf9,0x1d,0xf8,0x47,0xf8,0x80,0xf9,0x74,0xfb,0xc1,0xfc, +0xe6,0xfe,0xe9,0x1,0x7,0x2,0xd2,0x0,0xb1,0x1,0x69,0x1, +0x2e,0xfe,0xd0,0xfb,0x4c,0xfb,0xee,0xfa,0x46,0xfb,0xb1,0xfc, +0x48,0xfe,0xc4,0xff,0x2,0x1,0xa3,0x2,0xa5,0x4,0xd9,0x4, +0xaa,0x3,0x14,0x3,0xae,0x1,0x8b,0xff,0x9e,0xfe,0xfa,0xfd, +0xc0,0xfd,0x20,0xfe,0x63,0xfd,0x6d,0xfe,0x85,0x2,0xf6,0x2, +0x66,0xff,0x45,0xff,0x71,0x1,0x2b,0x0,0x13,0xfe,0xcf,0xfe, +0x8c,0xff,0x76,0xff,0x85,0x0,0xf0,0x0,0x4f,0x0,0xb3,0x0, +0x6b,0x0,0x19,0xff,0xd3,0xfe,0x3e,0xfe,0x31,0xfd,0xca,0xfc, +0xd,0xfc,0x94,0xfc,0x3f,0xfe,0x9f,0xfd,0x48,0xfd,0x66,0xff, +0x4,0x0,0x95,0xff,0xe2,0x0,0xb4,0x1,0xd3,0x0,0x9f,0x0, +0x7a,0x1,0xa9,0x0,0x4d,0xfe,0xfa,0xfd,0x74,0xfe,0x5a,0xfd, +0x37,0xfe,0xf7,0xff,0xad,0xfd,0xd3,0xfb,0x22,0xfe,0x2a,0xff, +0x63,0xfe,0x8f,0xff,0x72,0x0,0x4e,0x0,0x3,0x2,0x21,0x3, +0xaf,0x1,0xf9,0x0,0x4f,0x0,0xca,0xfd,0xa0,0xfc,0xb0,0xfc, +0xb3,0xfb,0x45,0xfc,0x0,0xfe,0x36,0xfe,0x99,0xff,0xa0,0x1, +0xff,0xff,0xd3,0xfd,0x6f,0xfe,0x71,0xfd,0x36,0xfa,0xb0,0xf9, +0x73,0xfa,0xaf,0xf9,0x59,0xfb,0x7c,0xfe,0xa7,0xfd,0x14,0xfd, +0x2f,0x0,0xd9,0x0,0x3f,0xfe,0x6b,0xfc,0x88,0xfb,0x36,0xfc, +0x21,0xfd,0x98,0xfb,0x43,0xfb,0x30,0xfe,0x2f,0x0,0xe2,0xff, +0x1d,0xff,0x63,0xff,0xe3,0x0,0x55,0x1,0x79,0x0,0x61,0x0, +0x3a,0x0,0xfd,0xfe,0x6,0xfe,0xa0,0xfd,0x83,0xfc,0x9d,0xfa, +0x24,0xfa,0xb9,0xfb,0x60,0xfc,0xdc,0xfb,0x73,0xfd,0x3c,0x0, +0x2a,0x1,0x58,0x1,0xe1,0x1,0x58,0x1,0x8a,0x0,0x36,0x0, +0x7f,0xfe,0x17,0xfd,0x73,0xfe,0x61,0xff,0xdd,0xfe,0xbc,0xff, +0x54,0x1,0x11,0x3,0x94,0x4,0xc5,0x2,0x38,0xff,0x7d,0xfd, +0xe0,0xfb,0xc9,0xf9,0xe0,0xf8,0xa9,0xf9,0xf4,0xfc,0xad,0x0, +0x4d,0x2,0x39,0x4,0x57,0x7,0xd,0x9,0x59,0x8,0x59,0x6, +0x9e,0x5,0xf6,0x5,0x72,0x4,0xe8,0x2,0x8f,0x3,0xa0,0x4, +0x36,0x6,0x60,0x7,0x3a,0x6,0xda,0x5,0xdd,0x6,0x72,0x6, +0xc9,0x5,0x13,0x5,0xf,0x4,0x3b,0x5,0xf3,0x5,0xa7,0x3, +0x1b,0x3,0x5e,0x5,0x9e,0x6,0x6a,0x6,0xe9,0x5,0x6b,0x6, +0xba,0x7,0x3,0x7,0x53,0x5,0x14,0x5,0x18,0x4,0xa4,0x1, +0x74,0xff,0x19,0xfe,0x3c,0xfe,0xe9,0xfd,0x83,0xfb,0x8b,0xfb, +0xa4,0xfe,0x2e,0xff,0xa,0xfe,0xe2,0xfe,0xd7,0xff,0x4a,0x0, +0x48,0x1,0x52,0x1,0x77,0x1,0x5,0x4,0x5,0x6,0xda,0x4, +0xe6,0x3,0x8d,0x5,0x8a,0x6,0xcd,0x4,0x77,0x3,0x44,0x4, +0xda,0x4,0x9e,0x4,0xe0,0x4,0x1d,0x5,0x38,0x5,0x4f,0x6, +0x4f,0x7,0x9d,0x6,0x29,0x6,0xc9,0x7,0x6b,0x8,0xcc,0x6, +0x81,0x7,0x1d,0xa,0xcb,0x9,0x8f,0x9,0xda,0xb,0xfc,0xa, +0xc4,0x7,0x32,0x8,0xe4,0x8,0xea,0x5,0xd9,0x3,0xb6,0x4, +0x93,0x4,0x4e,0x3,0x2f,0x4,0x30,0x5,0xf9,0x2,0x42,0x1, +0x5,0x2,0x92,0x0,0xe2,0xfd,0x4d,0xfe,0xe4,0xfe,0x62,0xfd, +0x53,0xfc,0xf5,0xfb,0xbf,0xfb,0x25,0xfc,0x14,0xfc,0x95,0xfa, +0x9a,0xf8,0xba,0xf8,0xeb,0xfa,0x74,0xfa,0x92,0xf7,0x13,0xf8, +0x92,0xfa,0xf3,0xf9,0x9c,0xf8,0xfe,0xf9,0xf8,0xfa,0x65,0xfa, +0x8d,0xfc,0xfb,0xfe,0x7f,0xfc,0xfa,0xfb,0x91,0x0,0x79,0x0, +0xd4,0xfd,0x35,0x1,0x18,0x3,0x52,0xff,0xed,0xfe,0xcf,0x1, +0x1a,0x1,0x6a,0xfe,0x20,0xfe,0xd,0x0,0x87,0x1,0x3f,0x1, +0xa1,0x0,0xe9,0x0,0x4f,0x1,0xf9,0x0,0xf1,0xff,0x8e,0xfe, +0xab,0xfd,0x8e,0xfd,0x6f,0xfc,0x82,0xfa,0xb0,0xfa,0x62,0xfb, +0xc6,0xf9,0x99,0xf8,0x2d,0xf9,0x4d,0xf9,0x4e,0xf9,0x94,0xf9, +0xd6,0xf8,0x88,0xf7,0x91,0xf7,0x12,0xf9,0x5d,0xf8,0x79,0xf4, +0xeb,0xf2,0x18,0xf4,0xe3,0xf2,0xba,0xf0,0x5b,0xf0,0x2,0xf0, +0xd5,0xef,0x3,0xf0,0x27,0xef,0xca,0xee,0x7e,0xef,0x41,0xef, +0x5c,0xee,0x58,0xee,0xdb,0xef,0x12,0xf2,0x76,0xf2,0xac,0xf1, +0x4b,0xf3,0xc3,0xf5,0x5b,0xf5,0x35,0xf4,0x9e,0xf4,0x94,0xf4, +0x56,0xf4,0xe5,0xf4,0xe4,0xf3,0xe2,0xf2,0x1c,0xf5,0x12,0xf6, +0x63,0xf3,0x3a,0xf3,0xa4,0xf6,0x0,0xf8,0x70,0xf6,0x7b,0xf5, +0xd8,0xf6,0x30,0xf9,0x17,0xfa,0x80,0xf9,0x7,0xfa,0x48,0xfc, +0x7,0xfd,0x89,0xfb,0x84,0xfb,0xe4,0xfc,0xca,0xfc,0x77,0xfc, +0xca,0xfc,0x83,0xfc,0x9a,0xfc,0x5e,0xfd,0x7c,0xfd,0x9,0xfd, +0x3a,0xfd,0xc2,0xfe,0x31,0xff,0xc,0xfd,0x83,0xfc,0x9a,0xfe, +0xde,0xfe,0x19,0xfd,0x38,0xfc,0x23,0xfd,0xdf,0xfe,0x6b,0xff, +0x43,0xff,0x29,0x0,0xdc,0x0,0xbf,0x0,0x31,0x1,0x6e,0x1, +0x3e,0x0,0x93,0xff,0x76,0x1,0x88,0x3,0xc,0x3,0xeb,0x1, +0x6d,0x2,0xc4,0x4,0x3e,0x8,0x55,0x9,0xc0,0x6,0x1e,0x6, +0x7,0xa,0xa9,0xc,0x6a,0xa,0xfc,0x7,0x19,0x9,0xe1,0x9, +0xe8,0x7,0x1,0x7,0x5a,0x8,0x97,0x9,0xd8,0x9,0xe7,0x7, +0x7d,0x5,0xda,0x8,0xf2,0xf,0x99,0xf,0x8,0x8,0x68,0x7, +0x4e,0x11,0x8f,0x17,0x43,0x12,0x33,0xc,0xfb,0xf,0x46,0x17, +0x33,0x16,0x3c,0xf,0x8,0xe,0x86,0x12,0x15,0x13,0x50,0xe, +0xba,0xa,0x55,0xc,0x20,0x11,0x3d,0x12,0xeb,0xc,0x45,0x9, +0x51,0xe,0xfc,0x15,0x80,0x15,0x5e,0xd,0x36,0x9,0x21,0xd, +0x5a,0xf,0xf6,0xa,0x3d,0x7,0x4f,0x8,0xac,0x9,0xd,0x8, +0x37,0x6,0xf5,0x7,0xd7,0xb,0xef,0xc,0xeb,0x9,0x99,0x6, +0xdc,0x6,0x19,0xa,0x6b,0xb,0x7a,0x7,0xe0,0x1,0x5c,0x1, +0xd8,0x5,0xa3,0x7,0x3,0x4,0x20,0x2,0xde,0x4,0x8,0x5, +0xd5,0x0,0x8f,0xfe,0x3a,0xfe,0x6c,0xfc,0xb6,0xfa,0xb3,0xf9, +0x3,0xf9,0xb9,0xfa,0x35,0xfd,0xc4,0xfc,0x7d,0xfb,0x46,0xfd, +0xd0,0xff,0xfd,0xfe,0x30,0xfe,0x3f,0x0,0x6,0xff,0x5e,0xfa, +0x57,0xf9,0xb5,0xf9,0x20,0xf9,0x31,0xfb,0xd5,0xfa,0xc1,0xf4, +0xc8,0xf2,0x51,0xf7,0xf5,0xf8,0xb4,0xf5,0x9,0xf4,0x43,0xf6, +0xba,0xf7,0x20,0xf6,0xc8,0xf6,0x3f,0xfb,0xf0,0xfb,0x48,0xf7, +0xb8,0xf5,0xd7,0xf9,0xce,0xfc,0xe7,0xf9,0x22,0xf4,0xcf,0xf2, +0xbe,0xf8,0x4b,0xfe,0x1,0xfb,0x10,0xf3,0xa4,0xf2,0x23,0xfb, +0xbd,0xfe,0x5d,0xf7,0xef,0xf2,0xf5,0xf9,0xa3,0xff,0x40,0xf9, +0xd5,0xef,0x2b,0xf1,0x11,0xfa,0x87,0xfa,0xac,0xf1,0xa0,0xf0, +0x18,0xfa,0xa5,0xfd,0x90,0xf6,0x53,0xf1,0x82,0xf5,0xc0,0xfc, +0x28,0xfc,0x83,0xf3,0x3a,0xf0,0xcd,0xf8,0xcc,0x0,0xf0,0xfd, +0xe3,0xf8,0x4f,0xfd,0x77,0x6,0x36,0x6,0xaa,0xfc,0xff,0xf9, +0x52,0x1,0xfa,0x2,0x2,0xfb,0x48,0xf5,0xf9,0xf6,0xb7,0xfb, +0xbe,0xfc,0x6,0xf8,0xa0,0xf6,0x79,0xfd,0x1b,0x2,0xc9,0xfd, +0xc0,0xf8,0xe0,0xfb,0x92,0x2,0xcf,0x1,0x25,0xfd,0x3b,0x1, +0x83,0xa,0xa2,0xc,0xb8,0x7,0xce,0x4,0x6c,0x9,0x46,0xf, +0xd7,0xb,0xa8,0x3,0x63,0x1,0xe8,0x2,0xb1,0x2,0xce,0xff, +0xaf,0xfb,0x47,0xfc,0xa,0x1,0x68,0x0,0xf,0xfd,0xb7,0x0, +0x89,0x6,0x1c,0x7,0x95,0x5,0xd8,0x4,0xca,0x4,0x28,0x5, +0xe9,0x2,0x8a,0xfe,0xc5,0xfd,0x2b,0x0,0x81,0x0,0x16,0xff, +0x8,0xff,0xd4,0x0,0x36,0x3,0xc0,0x3,0xc,0x2,0xa8,0x1, +0x98,0x3,0x1e,0x4,0x8d,0x1,0x7,0xff,0xb5,0xff,0x5b,0x2, +0x78,0x3,0x12,0x2,0xbc,0xff,0xbd,0xfe,0x88,0xff,0xe4,0xfe, +0x46,0xfc,0x66,0xfb,0x6f,0xfb,0xd7,0xf9,0x27,0xf9,0x41,0xfa, +0x4c,0xfb,0x37,0xfd,0x55,0xff,0xf5,0xfe,0xcd,0xfe,0xc4,0x2, +0x39,0x7,0xbd,0x6,0x99,0x3,0x73,0x3,0xca,0x5,0x8a,0x5, +0xa7,0x1,0x35,0xfe,0xc0,0xfd,0xd5,0xfe,0xed,0xfe,0xef,0xfc, +0x5a,0xfb,0xf7,0xfc,0x99,0xfe,0xd9,0xfc,0xda,0xfa,0x73,0xfb, +0x6,0xfd,0x90,0xfd,0xff,0xfb,0xb0,0xf9,0x90,0xfa,0x9d,0xfe, +0x82,0x0,0xb3,0xfe,0x40,0xfe,0x39,0x1,0xc8,0x3,0xcf,0x3, +0x38,0x2,0x0,0x0,0x16,0xfe,0xb0,0xfb,0xc1,0xf7,0x82,0xf4, +0xc2,0xf3,0xfc,0xf3,0x3b,0xf4,0x41,0xf5,0x98,0xf7,0x54,0xfb, +0xd,0xff,0x4f,0x0,0xfc,0xff,0x4f,0x1,0x19,0x3,0x4f,0x1, +0xd7,0xfc,0x5e,0xfa,0xd5,0xfa,0x2e,0xfb,0x41,0xfa,0xac,0xf9, +0xa7,0xfa,0xfa,0xfc,0xcf,0xfe,0xef,0xfe,0xd6,0xfe,0x55,0xff, +0xb1,0xff,0xb1,0xff,0xc3,0xfe,0x14,0xfe,0xb5,0xff,0xdd,0x1, +0xeb,0x2,0xad,0x3,0x8b,0x3,0x25,0x3,0x62,0x3,0xe6,0x1, +0x1b,0xff,0x24,0xfe,0xc,0xfe,0x30,0xfd,0x3d,0xfc,0x5c,0xfa, +0x11,0xf8,0xc8,0xf8,0xf7,0xfa,0xbd,0xfa,0x4a,0xfb,0x90,0xff, +0xc9,0x3,0xca,0x5,0x53,0x6,0xc,0x6,0xbf,0x6,0xf,0x7, +0x89,0x3,0xa2,0xfe,0x8c,0xfc,0xf,0xfc,0x70,0xfa,0xaa,0xf8, +0x16,0xf9,0x19,0xfb,0xfa,0xfc,0x8d,0xfe,0x31,0xff,0xad,0xfe, +0x6f,0xfe,0x68,0xfe,0x3b,0xfd,0xb,0xfb,0x57,0xf9,0x4a,0xf9, +0x8c,0xf9,0x70,0xf8,0x9,0xf9,0xb2,0xfd,0x1d,0x1,0x25,0x0, +0x3f,0x0,0x37,0x3,0xf1,0x3,0xec,0x0,0x65,0xfd,0x4d,0xfc, +0x66,0xfd,0x8f,0xfd,0xd5,0xfc,0x62,0xfe,0x79,0x1,0x0,0x3, +0x1,0x3,0xd4,0x3,0x94,0x5,0xd7,0x5,0x83,0x4,0xd1,0x2, +0x74,0x0,0x23,0xfe,0x21,0xfc,0xb7,0xf9,0x75,0xf8,0x7b,0xf8, +0x40,0xf8,0x6b,0xf9,0xb6,0xfd,0x5c,0x3,0x7b,0x7,0xbc,0x9, +0x82,0xb,0x74,0xb,0xc9,0x8,0xe5,0x5,0xa3,0x2,0x99,0xfe, +0x63,0xfc,0x15,0xfc,0x6,0xfc,0xde,0xfc,0xcb,0xff,0xb0,0x3, +0x8,0x5,0xd1,0x3,0x3,0x4,0x58,0x4,0xda,0x1,0xb5,0xff, +0xdb,0xfe,0x50,0xfc,0x11,0xfb,0xb0,0xfd,0xc8,0xfe,0x8d,0xfd, +0x14,0xff,0xcf,0x0,0x4c,0xff,0x77,0xfe,0x9c,0xfe,0x78,0xfc, +0xcb,0xf9,0xe5,0xf8,0xb3,0xf9,0x32,0xfc,0x2d,0xff,0xb9,0x0, +0xf5,0x0,0xf7,0x1,0x15,0x4,0x2e,0x4,0xc2,0x1,0xab,0x0, +0xec,0x0,0x75,0xff,0x49,0xfe,0xa9,0xfe,0x17,0xfc,0x58,0xf8, +0x46,0xf9,0xf,0xfa,0x50,0xf7,0xde,0xf8,0xe1,0xfe,0xb9,0x1, +0x8c,0x2,0xbe,0x4,0x57,0x6,0x9e,0x6,0x6d,0x6,0xff,0x4, +0xf3,0x2,0x33,0x3,0xb3,0x5,0xcd,0x6,0x3a,0x6,0x9,0x7, +0x9f,0x8,0x9e,0x7,0x4b,0x4,0xe8,0x1,0x94,0x0,0x3,0xff, +0xdf,0xfe,0x87,0xff,0xba,0xfe,0x84,0xff,0xd1,0x2,0x10,0x4, +0xdb,0x3,0xba,0x5,0xc7,0x7,0x87,0x7,0x84,0x6,0x8a,0x6, +0x75,0x6,0x79,0x4,0xbe,0x2,0x10,0x4,0xfe,0x4,0x95,0x2, +0x9d,0x1,0x97,0x3,0x5a,0x3,0x89,0x1,0x5b,0x1,0xe9,0x0, +0x84,0x0,0xdf,0x1,0xe1,0x2,0x5c,0x3,0x8f,0x4,0xc1,0x5, +0x56,0x7,0xb4,0x8,0x1e,0x8,0x96,0x7,0xa9,0x8,0xc1,0x8, +0x3c,0x7,0x54,0x6,0x31,0x6,0xc5,0x5,0x8c,0x4,0xa4,0x2, +0x7,0x3,0x7a,0x6,0xc1,0x7,0xa5,0x6,0x69,0x8,0xe,0xb, +0x88,0xa,0xf,0x9,0x6f,0x8,0x18,0x8,0x1c,0x8,0x4,0x8, +0x0,0x8,0xff,0x8,0xc3,0xa,0x3f,0xd,0xb3,0xe,0xb2,0xc, +0xb0,0xb,0xea,0xe,0x28,0xf,0x5e,0xb,0xd9,0xa,0x1,0xb, +0x6,0x9,0x38,0x9,0xb3,0x8,0xc1,0x5,0x52,0x5,0x69,0x5, +0xcb,0x3,0x6c,0x2,0xd7,0x0,0x31,0x1,0xb2,0x2,0x3d,0x0, +0x10,0xfe,0xd7,0xff,0xf3,0xff,0xad,0xfd,0x28,0xfc,0xc2,0xfa, +0x32,0xf9,0x93,0xf7,0x95,0xf5,0xed,0xf3,0x98,0xf2,0xfa,0xf0, +0x9a,0xef,0xd9,0xee,0x60,0xed,0x74,0xeb,0xac,0xeb,0xa4,0xec, +0x26,0xec,0x87,0xec,0x5f,0xed,0x46,0xed,0x64,0xef,0xeb,0xf1, +0x2a,0xf0,0x5f,0xee,0x87,0xf0,0xcd,0xf1,0xd9,0xef,0x5f,0xef, +0xca,0xf1,0x1d,0xf3,0x20,0xf3,0xc7,0xf4,0x78,0xf6,0x65,0xf6, +0x23,0xf7,0xd2,0xf8,0x29,0xf9,0x5d,0xf9,0x95,0xfa,0x8f,0xfb, +0x2d,0xfc,0xb1,0xfc,0x45,0xfd,0xb8,0xfe,0xfc,0xff,0x26,0x0, +0xa9,0x0,0x5d,0x1,0x7b,0x1,0x11,0x2,0x29,0x2,0xba,0x0, +0xb4,0x0,0x36,0x2,0x12,0x1,0x82,0xfe,0x79,0xfe,0xfb,0xfd, +0xbe,0xfa,0x5c,0xf9,0x1,0xfa,0x89,0xf8,0x61,0xf7,0xb2,0xf8, +0x6e,0xf8,0x96,0xf6,0xb1,0xf6,0x71,0xf7,0x1,0xf7,0xe5,0xf5, +0xf9,0xf3,0xb0,0xf2,0x5,0xf3,0x3f,0xf2,0xa0,0xf0,0x29,0xf1, +0x4b,0xf2,0x22,0xf2,0x9,0xf2,0x51,0xf2,0xac,0xf2,0x63,0xf3, +0x11,0xf4,0xaa,0xf4,0xc0,0xf5,0x8d,0xf7,0x2c,0xf9,0xec,0xf9, +0x33,0xfb,0x39,0xfd,0x93,0xfe,0x94,0xff,0x35,0x0,0xda,0x0, +0xd4,0x2,0xeb,0x3,0xad,0x3,0x45,0x5,0xf7,0x6,0x21,0x7, +0x92,0x8,0x5b,0xa,0xe3,0xa,0x5,0xc,0x49,0xd,0x1d,0xe, +0xd9,0xf,0x5,0x11,0x80,0x10,0x7b,0x10,0x4b,0x11,0xd,0x11, +0xa6,0xf,0x4a,0xe,0xd0,0xd,0xe7,0xd,0x5,0xd,0x34,0xb, +0x4e,0xa,0xee,0x9,0xa4,0x8,0x82,0x7,0x81,0x7,0x94,0x7, +0xfe,0x6,0xd8,0x5,0x6f,0x4,0x8a,0x3,0x43,0x3,0x29,0x2, +0xf3,0xff,0x9a,0xfe,0x33,0xfe,0xad,0xfc,0xb1,0xfa,0x6,0xfa, +0x85,0xf9,0x3d,0xf8,0x55,0xf7,0x90,0xf6,0xe,0xf5,0x6f,0xf4, +0x16,0xf5,0x41,0xf4,0x79,0xf2,0xe5,0xf2,0xfe,0xf3,0x68,0xf3, +0xb1,0xf2,0x65,0xf2,0x16,0xf2,0xd9,0xf2,0x15,0xf4,0x4e,0xf4, +0x25,0xf4,0xb9,0xf4,0xf2,0xf5,0xce,0xf6,0x10,0xf7,0xae,0xf7, +0x41,0xf8,0xfa,0xf7,0xac,0xf7,0x9a,0xf7,0x25,0xf7,0xd0,0xf6, +0xdc,0xf7,0x13,0xfa,0x35,0xfb,0x84,0xfb,0x2,0xfe,0x43,0x1, +0xe6,0x1,0x6a,0x1,0xd4,0x1,0x48,0x2,0xff,0x1,0x3b,0x1, +0x3,0x1,0x90,0x1,0x1d,0x2,0xe9,0x2,0xd6,0x3,0x9f,0x4, +0xd3,0x5,0x1f,0x6,0x37,0x5,0xbb,0x5,0xb6,0x6,0x30,0x5, +0x75,0x3,0xd6,0x4,0x6a,0x6,0x45,0x4,0xc4,0x1,0x13,0x3, +0x48,0x4,0x99,0x1,0xa8,0xfe,0xbb,0xfe,0x19,0x0,0x41,0x0, +0x1f,0xff,0x78,0xfe,0x23,0xff,0x83,0x0,0x7e,0x1,0xb0,0x0, +0x7b,0xff,0x61,0x1,0x1b,0x4,0x6a,0x2,0x36,0xff,0xbc,0xff, +0xcd,0x0,0xc5,0xfe,0xe7,0xfc,0xfc,0xfd,0x28,0x0,0xdb,0x0, +0x79,0x0,0x5a,0x1,0x65,0x3,0x9c,0x5,0x7,0x8,0xf6,0x7, +0x56,0x5,0x35,0x6,0xf5,0x9,0x32,0x9,0xb3,0x5,0x1f,0x7, +0x6d,0xb,0x57,0xb,0xa2,0x8,0xae,0x9,0x3c,0xd,0x96,0xe, +0xce,0xd,0x57,0xd,0xbd,0xd,0x89,0xe,0x87,0x10,0x5c,0x12, +0x9f,0xf,0x6a,0xb,0x7,0xe,0xea,0x13,0xbe,0x13,0x4f,0xf, +0x48,0xd,0x75,0xe,0xaa,0xf,0x6e,0xd,0x6b,0x8,0x6,0x7, +0x90,0xb,0x52,0xe,0x95,0x9,0xf4,0x3,0xe,0x6,0xd7,0xb, +0xa2,0xa,0xe1,0x3,0x34,0x3,0xda,0x9,0x2f,0xd,0x47,0x8, +0x44,0x2,0x9,0x4,0xf8,0xa,0x22,0xc,0x14,0x6,0xa5,0x2, +0x15,0x7,0x10,0xc,0x5a,0x7,0x8b,0xfe,0xf3,0x0,0x87,0x9, +0x47,0x6,0xb5,0xfa,0xa4,0xf7,0x70,0xfe,0x74,0x3,0xae,0xff, +0x15,0xf9,0x9f,0xfa,0x7f,0x2,0x5b,0x4,0xe8,0xfd,0x25,0xfa, +0x38,0x0,0xfd,0x7,0x41,0x5,0xca,0xfc,0xef,0xfe,0xe7,0xa, +0x70,0xd,0xf3,0x1,0x5c,0xfc,0xd5,0x5,0xa4,0xc,0x41,0x5, +0xb6,0xfa,0xf5,0xf8,0x5b,0xff,0x55,0x2,0x53,0xf9,0x38,0xf0, +0x8a,0xf5,0xc8,0xff,0x69,0xfe,0xcd,0xf4,0x7f,0xf3,0x87,0xfe, +0x3e,0x6,0x69,0x0,0x8d,0xf9,0x6b,0xff,0x9f,0x9,0xaa,0x7, +0xa0,0xfc,0xcf,0xf8,0xdb,0xfd,0x3f,0xff,0xd6,0xf7,0x10,0xf0, +0xb3,0xf1,0x4e,0xf9,0x3d,0xfa,0xea,0xf2,0x7d,0xf0,0x2b,0xf9, +0xdd,0xff,0xf6,0xf9,0xa4,0xf2,0x7a,0xf7,0x7c,0x2,0x1a,0x4, +0xdf,0xfa,0xa8,0xf7,0xfb,0x0,0x3d,0x6,0xea,0xfe,0x52,0xf6, +0xad,0xf5,0xca,0xfa,0x11,0xfb,0x1e,0xf1,0x59,0xea,0xd4,0xf1, +0xb2,0xfa,0xf0,0xf6,0x8a,0xf0,0xaf,0xf6,0xa1,0x1,0x6d,0x1, +0x42,0xfa,0xed,0xf9,0x49,0x0,0x8c,0x2,0x88,0xfc,0xdc,0xf5, +0x7,0xf6,0x41,0xfa,0x44,0xfa,0xc9,0xf3,0xe,0xef,0xe3,0xf1, +0xa,0xf5,0x3c,0xf2,0xea,0xee,0xb1,0xf1,0xf0,0xf7,0xff,0xf8, +0x46,0xf4,0x31,0xf3,0xf9,0xf7,0x22,0xfb,0xe0,0xf8,0xff,0xf4, +0x79,0xf6,0x46,0xfc,0x4b,0xfc,0x7d,0xf7,0x6c,0xf8,0xb0,0xfc, +0x7,0xfc,0x51,0xf8,0x1f,0xf6,0x1,0xf7,0x65,0xf9,0x1a,0xf8, +0x54,0xf4,0x0,0xf5,0x30,0xf8,0xc8,0xf7,0x46,0xf5,0x1,0xf5, +0x51,0xf7,0x30,0xf9,0x45,0xf9,0x8c,0xf9,0x19,0xfa,0x88,0xfa, +0x77,0xfc,0x17,0xfe,0x6,0xfe,0x52,0xff,0xe3,0x0,0x94,0xff, +0xdd,0xfd,0xa9,0xfd,0x5c,0xfd,0xb6,0xfc,0xea,0xfb,0xc2,0xfa, +0xdc,0xf9,0xd5,0xf8,0xc1,0xf7,0x5f,0xf8,0x79,0xf9,0x3f,0xf9, +0xdf,0xf9,0xb1,0xfb,0xe2,0xfc,0xdc,0xfe,0x6f,0x1,0x55,0x2, +0xbe,0x2,0xef,0x2,0xe4,0x0,0xf4,0xfd,0xf3,0xfb,0xa6,0xf9, +0x29,0xf7,0xbf,0xf6,0x6a,0xf8,0x1a,0xfa,0x62,0xfb,0x6f,0xfd, +0x6c,0x0,0xe0,0x2,0x26,0x4,0x2d,0x5,0x48,0x5,0x21,0x4, +0xe9,0x3,0xa4,0x3,0x2c,0x2,0xfc,0x2,0x27,0x5,0xf0,0x4, +0xea,0x4,0x6a,0x6,0x75,0x6,0x1f,0x5,0x50,0x4,0xa1,0x4, +0xc,0x5,0x8a,0x3,0xc1,0x0,0x3f,0xff,0x94,0xff,0x38,0x0, +0x5e,0xff,0xb8,0xfd,0xb9,0xfe,0x6a,0x3,0x4c,0x7,0x6c,0x7, +0x6b,0x8,0xba,0xc,0xfc,0xe,0x53,0xd,0xca,0xa,0x36,0x8, +0x13,0x6,0x4e,0x4,0xd9,0x1,0xf5,0xff,0x80,0xff,0x33,0x0, +0xb2,0x1,0xc,0x2,0x20,0x2,0xf4,0x3,0x32,0x4,0xfa,0x1, +0xd7,0x1,0x5a,0x3,0x67,0x3,0xc8,0x2,0xcb,0x1,0xce,0x0, +0x19,0x2,0xdb,0x3,0x73,0x3,0x94,0x3,0x1b,0x5,0xdd,0x5, +0xdd,0x6,0x0,0x8,0x89,0x7,0x64,0x7,0x6,0x8,0xdc,0x6, +0xce,0x4,0x57,0x4,0xaa,0x4,0xa,0x3,0xce,0xff,0xa0,0xff, +0x2,0x3,0x7,0x4,0x15,0x2,0x3a,0x2,0x6d,0x3,0xbf,0x1, +0x63,0xff,0xaf,0xfe,0xe0,0xfd,0xcf,0xfd,0xda,0xff,0x2a,0x1, +0x2f,0x2,0xe6,0x5,0xe7,0x8,0x85,0x7,0x55,0x4,0xde,0x1, +0xbb,0xff,0xcb,0xfc,0x19,0xf9,0x3,0xf7,0xa0,0xf7,0xa9,0xf9, +0x13,0xfc,0x79,0xfd,0x3b,0xfe,0x3c,0x0,0x1a,0x1,0xba,0xfe, +0x14,0xfc,0x95,0xfa,0x20,0xf9,0xaa,0xf7,0xb0,0xf6,0xcb,0xf7, +0x1,0xfb,0x92,0xfd,0x95,0xff,0xfe,0x1,0x82,0x3,0x5c,0x5, +0x9a,0x7,0xe7,0x5,0xd3,0x1,0x9e,0x0,0xed,0xfe,0x69,0xf9, +0x6c,0xf6,0xdd,0xf8,0xa5,0xfa,0x70,0xfa,0x49,0xfd,0xbe,0x2, +0xa1,0x5,0xd8,0x5,0x10,0x7,0x8e,0x8,0xc9,0x6,0xda,0x2, +0xa8,0x0,0x60,0xff,0xa8,0xfb,0xb1,0xf7,0xf2,0xf6,0x9e,0xf7, +0x7c,0xf9,0x4,0xfd,0xe8,0xfd,0x68,0xfe,0x8c,0x3,0x1b,0x6, +0x9,0x3,0x64,0x2,0x66,0x2,0x27,0xfe,0xec,0xfa,0x92,0xfa, +0xcb,0xf9,0xe3,0xf9,0x20,0xfc,0xec,0xfd,0xd5,0xfd,0x2b,0xfe, +0xbb,0xff,0xc1,0xfe,0x66,0xfb,0xe2,0xfa,0x34,0xfc,0x73,0xfb, +0x80,0xfb,0x15,0xfe,0x4f,0xff,0x1d,0x0,0x7d,0x3,0x2c,0x5, +0xf3,0x3,0x7f,0x5,0xc3,0x7,0xbf,0x4,0xe2,0x0,0x61,0x2, +0xac,0x4,0x8c,0x1,0xb8,0xfd,0xf6,0xfe,0x53,0xff,0xc,0xfc, +0x2d,0xfd,0x29,0x1,0x89,0x0,0x5f,0x0,0x63,0x4,0x3f,0x7, +0x17,0x9,0xac,0xa,0x73,0x8,0x35,0x5,0x30,0x4,0x63,0x2, +0xfc,0xff,0xb1,0xfe,0x4c,0xfd,0x23,0xfe,0xb6,0x2,0xb1,0x5, +0x5b,0x5,0x3e,0x6,0xa8,0x7,0xdf,0x4,0x75,0xff,0xbd,0xfb, +0x8a,0xf9,0x32,0xf7,0x18,0xf5,0x2c,0xf6,0xfc,0xfb,0xae,0x1, +0xb0,0x4,0x75,0x8,0xef,0xa,0x82,0x9,0xaa,0x7,0x80,0x4, +0x59,0xff,0x9e,0xfc,0x40,0xfa,0x59,0xf6,0x4b,0xf6,0xb8,0xf8, +0x5a,0xf8,0xf5,0xf8,0x31,0xfd,0xfd,0xfe,0x85,0xfd,0x18,0xff, +0xc6,0x1,0x96,0xff,0x23,0xfc,0x11,0xfc,0x1a,0xfc,0xa0,0xf9, +0xfa,0xf7,0x66,0xf9,0xb0,0xfa,0xf1,0xfa,0x45,0xfd,0xfa,0xff, +0xb0,0x0,0xcf,0x0,0x97,0xff,0xed,0xfd,0x6d,0xfd,0x9f,0xfa, +0x2,0xf7,0x9e,0xf7,0x46,0xf9,0x31,0xf9,0x1,0xfa,0xc7,0xfb, +0xe6,0xfd,0x81,0x0,0x5a,0x1,0xa8,0x0,0xb,0x1,0x99,0x0, +0x46,0xfe,0x4d,0xfd,0xfd,0xfb,0x27,0xf9,0xff,0xf9,0xb5,0xfc, +0xab,0xfc,0xd6,0xfd,0xeb,0x0,0x88,0x2,0xc1,0x3,0x99,0x4, +0xe4,0x4,0x68,0x5,0xfb,0x3,0x3,0x2,0x14,0x2,0x45,0x1, +0xd2,0xff,0x9d,0x0,0x42,0x1,0x84,0x0,0x2f,0x1,0xfd,0x2, +0x7,0x4,0xd7,0x4,0x2d,0x5,0x54,0x4,0xed,0x3,0x24,0x4, +0x3f,0x3,0xbd,0x1,0x65,0x1,0x24,0x3,0x6a,0x5,0x94,0x5, +0x60,0x5,0x2,0x7,0xca,0x7,0xa8,0x6,0x17,0x6,0x1c,0x6, +0xa6,0x4,0x8,0x2,0x68,0x0,0xe,0x0,0x90,0x0,0x45,0x2, +0xf3,0x3,0xa1,0x5,0x23,0x9,0xe6,0xc,0x70,0xe,0xc3,0xd, +0xf3,0xb,0xc,0xb,0xe2,0xa,0x8b,0x8,0xa8,0x4,0x5c,0x3, +0x1c,0x5,0xe6,0x4,0xa2,0x1,0xbd,0x1,0x2f,0x6,0x87,0x8, +0x29,0x8,0xa1,0x8,0x40,0xa,0x9f,0xc,0x36,0xe,0x98,0xc, +0x92,0xa,0x6b,0xc,0xda,0xe,0x60,0xd,0x1c,0xb,0xd9,0xa, +0x11,0xa,0x66,0x8,0x97,0x7,0x12,0x7,0x34,0x6,0xef,0x5, +0x9c,0x6,0x22,0x6,0x11,0x4,0x70,0x4,0xad,0x6,0x51,0x5, +0x9d,0x3,0xa1,0x7,0x40,0xb,0xf6,0x8,0x78,0x8,0xde,0xc, +0x75,0xd,0x3f,0x9,0x95,0x7,0x96,0x8,0xc5,0x7,0xcc,0x4, +0xf7,0x2,0xe3,0x3,0x51,0x4,0xc6,0x2,0x5,0x2,0x7b,0x1, +0xec,0xfe,0xbe,0xfb,0x39,0xfa,0x85,0xf9,0xcd,0xf6,0x6,0xf4, +0x1e,0xf5,0x73,0xf6,0xa8,0xf4,0x2e,0xf3,0x91,0xf3,0x99,0xf4, +0xcc,0xf4,0xb8,0xf2,0x67,0xf1,0xca,0xf2,0x12,0xf2,0xcb,0xee, +0xf7,0xee,0xe2,0xf0,0x1b,0xee,0x5a,0xea,0xf2,0xea,0x2c,0xeb, +0x39,0xe9,0x1b,0xe9,0x49,0xe9,0xbf,0xe8,0x17,0xea,0xd9,0xeb, +0xb7,0xec,0x34,0xed,0x73,0xec,0x50,0xec,0x5c,0xed,0x74,0xeb, +0xf1,0xe7,0x4c,0xe8,0x50,0xea,0x95,0xe9,0x16,0xe9,0x21,0xec, +0x80,0xef,0xd9,0xef,0x3,0xef,0xff,0xef,0x82,0xf1,0xb3,0xf0, +0x34,0xef,0x9f,0xef,0x83,0xf0,0x32,0xf0,0x7c,0xef,0xc4,0xef, +0xe4,0xf0,0x3b,0xf1,0x1d,0xf1,0xc8,0xf1,0x28,0xf2,0x28,0xf2, +0x97,0xf2,0x66,0xf2,0x1,0xf2,0xa1,0xf2,0xca,0xf2,0x44,0xf1, +0xa3,0xef,0xba,0xef,0xd0,0xf0,0x9e,0xf0,0xe3,0xee,0xfa,0xed, +0x84,0xef,0x59,0xf1,0xac,0xf0,0x8d,0xef,0xeb,0xf0,0x38,0xf3, +0x3e,0xf4,0xd0,0xf3,0x7b,0xf3,0x63,0xf5,0x6e,0xf7,0xcf,0xf5, +0x93,0xf3,0x6c,0xf5,0xed,0xf7,0x5d,0xf6,0xe6,0xf3,0x29,0xf5, +0x6f,0xf8,0x5c,0xf9,0xfc,0xf7,0x36,0xf9,0x5,0xfe,0x6e,0x0, +0xae,0xff,0x69,0x1,0x9b,0x4,0x55,0x5,0x7e,0x5,0x74,0x6, +0x4d,0x7,0xc0,0x8,0x2,0xa,0xe4,0x9,0xcb,0xa,0x5e,0xd, +0x6b,0xe,0x31,0xe,0xe8,0xf,0x40,0x12,0x41,0x12,0x94,0x11, +0x6c,0x12,0x97,0x13,0x29,0x14,0xc3,0x14,0x86,0x15,0x7f,0x16, +0xe8,0x17,0x17,0x19,0x3e,0x19,0x95,0x18,0x1d,0x18,0x17,0x18, +0x35,0x17,0x6a,0x15,0xb3,0x14,0xd0,0x14,0xa7,0x13,0xad,0x11, +0x1a,0x11,0x9a,0x12,0x12,0x14,0x2c,0x13,0x45,0x11,0x8c,0x11, +0xa1,0x14,0x4f,0x17,0xe3,0x15,0x57,0x13,0x14,0x15,0xc9,0x17, +0x6f,0x17,0xd0,0x17,0x82,0x18,0xee,0x14,0xa1,0x11,0xca,0x12, +0x89,0x11,0xf9,0xb,0x64,0xa,0xfb,0xc,0x21,0xc,0x7,0x8, +0x6a,0x6,0x5b,0x8,0xcf,0x9,0x43,0x8,0xab,0x6,0xa9,0x7, +0x1a,0xa,0xdb,0xc,0xd9,0xd,0x90,0xc,0xdb,0xd,0xf3,0x12, +0x33,0x16,0x35,0x14,0x5b,0xf,0xf6,0xc,0x67,0xd,0xf7,0x9, +0xce,0x2,0x5d,0x0,0xa8,0x2,0x82,0x2,0xfd,0xfe,0x59,0xfd, +0xb5,0x1,0xb1,0x8,0x92,0x8,0x9,0x0,0x88,0xfb,0x87,0x1, +0xe3,0x6,0x3a,0x2,0xe2,0xfb,0xe9,0xfd,0x30,0x3,0xea,0x2, +0x25,0xff,0xe6,0xfd,0x15,0xff,0x6b,0xff,0xd2,0xfd,0xed,0xfa, +0x14,0xf9,0x4e,0xfb,0x45,0xfd,0x5,0xf7,0x28,0xef,0x73,0xf2, +0x97,0xfa,0xef,0xf8,0x1f,0xf0,0x5b,0xee,0x24,0xf7,0x92,0xfd, +0xee,0xf7,0x30,0xf0,0x13,0xf3,0xdc,0xfa,0xc0,0xf9,0xd6,0xef, +0x42,0xeb,0x5e,0xf2,0x43,0xf9,0x23,0xf5,0xbb,0xed,0x4f,0xf1, +0x3d,0xfe,0x1f,0x3,0x66,0xf9,0xee,0xf1,0x26,0xf9,0xc9,0x0, +0x31,0xf9,0xc8,0xec,0x50,0xec,0x43,0xf4,0x42,0xf7,0xcf,0xf1, +0x26,0xed,0x3a,0xf3,0xe7,0xfc,0x4e,0xfa,0x28,0xf0,0x5d,0xf1, +0x50,0xfd,0xb4,0x0,0x43,0xf6,0x37,0xf0,0xe0,0xf9,0x93,0x3, +0x6b,0xfe,0xeb,0xf5,0x44,0xf9,0xc6,0x2,0x1c,0x5,0x61,0xfe, +0x11,0xf9,0xba,0xfe,0xfa,0x6,0x6d,0x2,0x5f,0xf7,0x11,0xf7, +0xb5,0xfe,0x9a,0xff,0x8c,0xf8,0x43,0xf5,0x32,0xfc,0xe7,0x4, +0x64,0x4,0x15,0xfe,0x21,0xfe,0xbd,0x5,0x7b,0x8,0xcd,0x0, +0x80,0xfa,0xbc,0xfd,0x5c,0x0,0xe,0xfa,0x83,0xf3,0x32,0xf6, +0x2d,0xfe,0x59,0x2,0x86,0x0,0xb0,0xff,0xb5,0x5,0x95,0xc, +0x81,0xc,0x2,0x9,0xae,0x7,0x55,0x7,0x6b,0x5,0xa7,0x1, +0xa4,0xfe,0xaa,0xfe,0xba,0xfe,0x91,0xfc,0xc7,0xfb,0x49,0xfe, +0xbb,0x0,0xd5,0x0,0x34,0x0,0xdd,0xff,0x31,0xff,0xcf,0xfe, +0x83,0xfe,0xe6,0xfc,0xe5,0xfb,0x76,0xfe,0x42,0x3,0xb0,0x6, +0x1d,0x8,0x10,0xa,0x6d,0xc,0x1b,0xc,0x56,0x9,0x44,0x6, +0x15,0x3,0x4e,0x0,0xc0,0xfd,0x61,0xfa,0x4,0xf9,0xc,0xfc, +0xcc,0xfe,0xcb,0xfd,0xf0,0xfc,0x36,0xfe,0x80,0xff,0xdf,0x0, +0x7f,0x1,0x11,0x0,0x67,0xff,0x9e,0xff,0xf3,0xfd,0x1e,0xfc, +0x5e,0xfb,0x52,0xfa,0x70,0xf9,0xe8,0xf8,0x5f,0xf9,0xa5,0xfb, +0x52,0xfc,0x56,0xfa,0xdf,0xf9,0xf,0xfb,0xd7,0xfa,0xde,0xf8, +0x3,0xf6,0x1f,0xf4,0x74,0xf4,0xdd,0xf4,0x48,0xf4,0xf1,0xf4, +0xd9,0xf7,0x2c,0xfb,0x69,0xfc,0x34,0xfc,0xa7,0xfd,0x3b,0xff, +0x3e,0xfd,0x72,0xf9,0x8c,0xf6,0x95,0xf4,0x7e,0xf3,0xac,0xf1, +0x2e,0xef,0x37,0xf0,0x58,0xf4,0x4b,0xf6,0x54,0xf6,0x78,0xf8, +0xac,0xfb,0x37,0xfc,0xf0,0xfa,0xbd,0xfa,0x9a,0xfb,0x3b,0xfc, +0x2a,0xfb,0x5,0xf9,0xde,0xf9,0x96,0xfc,0x6b,0xfb,0x3,0xf8, +0x34,0xf7,0xeb,0xf8,0xa0,0xfb,0x5c,0xfc,0x71,0xf9,0xaf,0xf7, +0x2b,0xf9,0x9d,0xf8,0xee,0xf4,0x4f,0xf3,0x71,0xf5,0x2f,0xf8, +0xb8,0xf9,0xc4,0xfb,0x38,0x0,0xf,0x5,0x95,0x6,0xb6,0x5, +0x47,0x5,0x59,0x4,0x69,0x2,0x6d,0x0,0xf7,0xfc,0x32,0xf9, +0x5e,0xf8,0x62,0xf8,0x27,0xf7,0x10,0xf7,0xe9,0xf8,0xd1,0xfb, +0xd8,0xfe,0x50,0x0,0x38,0x1,0x43,0x3,0x52,0x4,0x4,0x3, +0x36,0x1,0x7e,0x0,0x5,0x1,0xc2,0x0,0x4b,0xfe,0xee,0xfc, +0x5d,0xfe,0xf6,0xfe,0xf5,0xfd,0xe1,0xfd,0x8b,0xfe,0xdc,0xfe, +0x1b,0xfe,0x32,0xfc,0x87,0xfb,0x5b,0xfc,0x14,0xfc,0x76,0xfb, +0x43,0xfc,0x5b,0xfe,0x20,0x2,0xd7,0x5,0x5f,0x7,0xc7,0x8, +0x6f,0xa,0x25,0xa,0x4c,0x9,0x20,0x8,0x35,0x4,0x5b,0x0, +0xbc,0xff,0xeb,0xfe,0xf,0xfc,0xff,0xf9,0xa2,0xf9,0x53,0xfa, +0x77,0xfb,0xd2,0xfb,0x8d,0xfc,0x6d,0xff,0x67,0x2,0xc3,0x3, +0xc6,0x4,0xba,0x5,0xe3,0x5,0xd4,0x5,0x6f,0x5,0xa0,0x3, +0x1f,0x2,0x55,0x3,0x3c,0x5,0xb4,0x5,0xa4,0x6,0x8c,0x8, +0x55,0x9,0x2d,0x8,0x81,0x5,0x66,0x2,0x68,0xff,0xef,0xfb, +0xaf,0xf8,0x52,0xf7,0x6e,0xf8,0x97,0xfb,0x87,0xff,0x85,0x3, +0x62,0x7,0xd8,0x9,0xb9,0xa,0xc2,0xa,0xa7,0x8,0x6a,0x4, +0x9a,0x1,0x2,0x1,0x46,0xff,0xfe,0xfc,0x8,0xfe,0x5c,0x0, +0xd0,0xff,0xb3,0xfe,0x1,0x0,0x41,0x1,0x64,0x0,0x3,0x0, +0x60,0x1,0x93,0x1,0x34,0x1,0x2b,0x3,0x50,0x4,0xf1,0x2, +0x38,0x3,0x46,0x4,0x20,0x3,0x63,0x2,0x38,0x3,0x79,0x3, +0x26,0x3,0x48,0x3,0x33,0x3,0xad,0x1,0x61,0xff,0x56,0xfd, +0xa1,0xfa,0xfa,0xf7,0x58,0xf7,0xb9,0xf7,0x82,0xf8,0x4d,0xfb, +0xf0,0xff,0xba,0x4,0x5c,0x8,0x8c,0xa,0x1c,0xc,0x48,0xc, +0xad,0x9,0x7d,0x5,0x7d,0x0,0x8b,0xfb,0x1d,0xfa,0xb4,0xfa, +0x24,0xf9,0xae,0xf9,0xac,0xfe,0x35,0x1,0xfb,0x0,0x6d,0x3, +0x2e,0x6,0x8e,0x5,0xa7,0x3,0xe,0x3,0x6a,0x3,0x96,0x2, +0x88,0x0,0xf4,0xff,0x4e,0x1,0x70,0x2,0xc0,0x2,0x7b,0x3, +0xb8,0x4,0x62,0x5,0x57,0x5,0x18,0x4,0xa0,0x1,0x39,0x0, +0xd9,0xff,0xbc,0xfe,0xed,0xfd,0x8f,0xfe,0x91,0x0,0xd8,0x2, +0x8f,0x3,0x6,0x4,0x4d,0x5,0x95,0x5,0x1a,0x5,0x25,0x4, +0x97,0x2,0x11,0x2,0x91,0x0,0x99,0xfc,0x3d,0xfa,0x2c,0xf9, +0x7e,0xf6,0x34,0xf6,0xbd,0xf9,0x93,0xfb,0x4f,0xfc,0x70,0x0, +0x26,0x4,0xac,0x3,0xc7,0x2,0x6e,0x2,0x54,0x0,0xe6,0xfd, +0x40,0xfc,0x51,0xfa,0xfb,0xf7,0xc4,0xf6,0x76,0xf8,0xd4,0xfa, +0x33,0xfb,0xbd,0xfc,0x5a,0x0,0xcf,0x1,0x42,0x1,0xd5,0x0, +0x0,0xff,0x1b,0xfc,0x55,0xfa,0x1b,0xf8,0xc,0xf5,0xcd,0xf4, +0x3a,0xf7,0x9d,0xf9,0x5f,0xfc,0x18,0xff,0xee,0x0,0xa5,0x2, +0xb9,0x2,0x23,0x1,0x7c,0x0,0x63,0xff,0x5,0xfd,0x3d,0xfc, +0x83,0xfc,0xdd,0xfb,0xcf,0xfb,0x69,0xfd,0x58,0xff,0xc9,0x0, +0xd3,0x1,0x75,0x2,0xbd,0x2,0x19,0x2,0x25,0x0,0x41,0xfe, +0x28,0xfd,0x69,0xfc,0x77,0xfc,0x7b,0xfd,0x77,0xff,0x7,0x2, +0xea,0x3,0xa1,0x5,0x6b,0x6,0xcf,0x4,0xee,0x3,0x7a,0x3, +0xde,0xff,0x1c,0xfd,0x1,0xfd,0xc4,0xfa,0xbb,0xf8,0xb6,0xfa, +0xf9,0xfc,0x13,0xfe,0x19,0x0,0xf7,0x1,0xaa,0x3,0x62,0x6, +0xcb,0x6,0x35,0x4,0xb7,0x3,0x67,0x4,0x5b,0x2,0x87,0x0, +0xf0,0x0,0x93,0x1,0xaa,0x1,0x1b,0x1,0x44,0x2,0xf7,0x5, +0xb9,0x6,0x0,0x5,0x43,0x7,0xcb,0x9,0x11,0x6,0x50,0x1, +0x8c,0x0,0x5a,0xfe,0xc5,0xf9,0x1d,0xfa,0xe8,0xfd,0xbf,0xfe, +0xe7,0xff,0x41,0x4,0x84,0x7,0xc6,0x8,0x75,0x9,0xa7,0x8, +0x84,0x7,0xa8,0x6,0xf3,0x3,0x4a,0x2,0xcf,0x4,0xf5,0x4, +0x9f,0x0,0x5a,0x1,0x46,0x6,0x7,0x5,0xf2,0x1,0xdc,0x4, +0xdc,0x6,0x2e,0x4,0x7b,0x3,0x3f,0x4,0x3d,0x2,0x6e,0x0, +0xe8,0x0,0xeb,0x1,0x10,0x2,0x31,0x1,0xd3,0x2,0xbc,0x5, +0x77,0x3,0x22,0x2,0x45,0x7,0xd8,0x7,0x48,0x3,0x67,0x4, +0xab,0x6,0x67,0x4,0x70,0x3,0xd0,0x3,0xff,0x1,0x64,0x1, +0x80,0x2,0x52,0x0,0x3c,0xfd,0xa2,0xfe,0xb7,0xfe,0x73,0xf9, +0x37,0xf7,0xfb,0xf8,0x2d,0xf7,0x2b,0xf4,0x5,0xf4,0x77,0xf3, +0x2b,0xf3,0xce,0xf5,0x55,0xf7,0x50,0xf6,0x67,0xf7,0x2a,0xf9, +0x0,0xf7,0x86,0xf3,0xe8,0xf1,0xc8,0xf1,0xb9,0xf1,0x66,0xee, +0x94,0xea,0xe6,0xec,0xb8,0xef,0xa0,0xec,0xe9,0xea,0x59,0xed, +0xde,0xed,0x1,0xee,0xad,0xef,0x17,0xee,0x96,0xec,0x53,0xf0, +0x1f,0xf1,0x23,0xec,0x93,0xeb,0x4c,0xef,0x7a,0xef,0xa7,0xed, +0x73,0xed,0x10,0xef,0x8,0xf2,0x9,0xf3,0x4b,0xf1,0x74,0xf1, +0x8c,0xf3,0x84,0xf3,0xed,0xf2,0x12,0xf4,0x29,0xf4,0x9f,0xf3, +0xe1,0xf4,0xab,0xf4,0xa3,0xf2,0x35,0xf3,0xe0,0xf4,0xc5,0xf4, +0xb4,0xf4,0x64,0xf5,0x20,0xf6,0x6c,0xf7,0xbd,0xf8,0xed,0xf7, +0x83,0xf5,0x37,0xf5,0x52,0xf6,0xc2,0xf4,0x48,0xf2,0x5c,0xf2, +0xc6,0xf3,0x98,0xf4,0x69,0xf4,0x16,0xf4,0xf1,0xf4,0x5f,0xf6, +0xf,0xf7,0xce,0xf6,0xad,0xf6,0xe2,0xf7,0x56,0xf9,0x1b,0xf9, +0xbb,0xf7,0xa,0xf8,0xcb,0xfa,0xf5,0xfb,0x95,0xfa,0x94,0xfb, +0x79,0xfe,0x83,0xfe,0xf1,0xfc,0x0,0xfd,0x48,0xfe,0x64,0xff, +0xc4,0xff,0x15,0x0,0xf1,0x1,0x3a,0x5,0x49,0x7,0x9,0x7, +0x6,0x7,0xf,0x9,0x5f,0xb,0x1e,0xb,0x75,0x9,0x43,0xb, +0xeb,0xe,0x5c,0xe,0xb8,0xc,0xb4,0xe,0xcf,0x10,0x4,0x11, +0x17,0x10,0xb1,0xe,0x7e,0x10,0x1b,0x14,0x58,0x13,0x58,0x11, +0xa6,0x13,0xae,0x16,0xd4,0x17,0xe3,0x18,0x33,0x18,0xef,0x15, +0x77,0x16,0xd,0x18,0xaf,0x15,0x1b,0x11,0x62,0xf,0x45,0x12, +0xf7,0x14,0x39,0x11,0xa0,0xc,0x8e,0xf,0x5e,0x12,0xf7,0xd, +0xcd,0xb,0xed,0xf,0xb0,0x11,0xa9,0x10,0x52,0x12,0xbc,0x13, +0x9d,0x12,0xa,0x13,0xbd,0x13,0xfe,0xf,0x49,0xc,0x95,0xe, +0x62,0x10,0xe1,0xa,0x64,0x5,0x1,0x7,0x24,0xb,0x1b,0xc, +0x8f,0x8,0x7a,0x4,0x7,0x7,0x6d,0xc,0x9b,0xa,0xe8,0x4, +0xdf,0x4,0x9d,0xa,0x12,0xe,0xa5,0x8,0x9f,0x1,0xe6,0x4, +0x14,0xb,0xd4,0x6,0x8b,0xfe,0xaa,0xfd,0x41,0x1,0xd9,0x1, +0x5d,0xfe,0x44,0xfb,0x6,0xfe,0x1b,0x4,0x45,0x4,0x2c,0xff, +0x70,0xfe,0x20,0x2,0xe9,0x2,0xb8,0xff,0x4,0xfc,0x70,0xfb, +0x33,0xff,0xcc,0x0,0xbc,0xfb,0x7,0xf9,0xe6,0xfd,0xc6,0xff, +0x25,0xfb,0x93,0xf9,0x9c,0xfa,0xe1,0xf7,0x61,0xf5,0xcd,0xf5, +0x25,0xf5,0xae,0xf3,0x5b,0xf3,0xf6,0xf3,0xc6,0xf5,0xb,0xf7, +0x88,0xf6,0x77,0xf6,0xbf,0xf6,0x5c,0xf6,0xa9,0xf6,0xfa,0xf5, +0x8,0xf3,0x24,0xf2,0x7e,0xf3,0x2d,0xf2,0x93,0xf0,0x83,0xf3, +0xec,0xf6,0x88,0xf6,0x67,0xf6,0x9,0xf9,0x2b,0xfa,0xaa,0xf8, +0xc4,0xf7,0x91,0xf6,0x3f,0xf4,0xce,0xf3,0xc6,0xf2,0x31,0xee, +0xc9,0xec,0x64,0xf1,0xed,0xf3,0x36,0xf1,0xd0,0xef,0x38,0xf5, +0xb7,0xfc,0x80,0xfc,0xc1,0xf7,0xcd,0xf9,0x6c,0xfe,0x7e,0xfb, +0x33,0xf6,0x6,0xf6,0x2b,0xf8,0xa7,0xf9,0x70,0xfa,0x4d,0xfa, +0x87,0xfb,0xf1,0xfe,0xd4,0xff,0xe2,0xfc,0x32,0xfb,0xcb,0xfb, +0xba,0xfa,0x70,0xf8,0xa5,0xf8,0x7f,0xfa,0xc9,0xfa,0xe5,0xfa, +0x9,0xfd,0xcb,0xfe,0x60,0xff,0x3a,0x1,0x94,0x2,0x7f,0x1, +0x6e,0x1,0x6d,0x3,0x50,0x3,0x9b,0xff,0xa,0xfd,0x65,0xff, +0x9c,0x1,0x58,0xff,0x24,0xff,0xbd,0x3,0xbe,0x5,0x6b,0x4, +0xd3,0x4,0x93,0x5,0xb4,0x4,0x46,0x3,0x18,0x0,0xc7,0xfb, +0xf1,0xf9,0x14,0xfa,0x1b,0xfa,0xa,0xfb,0x73,0xfd,0x10,0x1, +0x25,0x5,0x15,0x7,0x19,0x7,0xaf,0x7,0x85,0x7,0x3f,0x5, +0x1d,0x2,0xf8,0xfe,0xae,0xfd,0x83,0xfe,0x63,0xfe,0xb,0xfe, +0x31,0x0,0x6f,0x2,0x80,0x2,0x2a,0x2,0x31,0x2,0x91,0x1, +0x53,0x0,0x17,0xff,0xb4,0xfe,0x9b,0xff,0x78,0x0,0xa5,0x0, +0xc3,0x0,0x13,0x0,0x59,0xff,0xea,0x0,0x6,0x3,0x7c,0x2, +0xd2,0xff,0xa3,0xfe,0x10,0x1,0x40,0x2,0x84,0xfe,0x93,0xfc, +0x59,0xff,0xbf,0xff,0xdd,0xfc,0x49,0xfc,0xe0,0xfd,0x7e,0xfe, +0x9c,0xfe,0x45,0xff,0x23,0xff,0x8c,0xfe,0x4e,0xff,0x81,0xff, +0x82,0xfd,0x2c,0xfc,0x7f,0xfd,0xb3,0xff,0x33,0x0,0xe0,0xff, +0x8e,0x1,0x4,0x3,0x57,0x1,0x5b,0xff,0x7d,0xfe,0x81,0xfd, +0xf1,0xfc,0x9,0xfc,0xc3,0xfa,0x16,0xfc,0xb8,0xfe,0x4b,0xfe, +0xed,0xfb,0x9d,0xfb,0xa6,0xfc,0x6,0xfc,0xb7,0xfa,0x4a,0xfb, +0xf6,0xfc,0x5e,0xfd,0xaf,0xfc,0x60,0xfd,0x70,0xff,0xb2,0x0, +0xc0,0x1,0xf3,0x2,0xe6,0x2,0x9e,0x3,0x87,0x5,0xbd,0x4, +0xd0,0x1,0x9c,0xff,0xa7,0xfd,0x7f,0xfc,0x66,0xfc,0xc9,0xfb, +0xfc,0xfb,0xad,0xfd,0x5c,0xfe,0x7b,0xfe,0xa2,0xff,0xbe,0xff, +0xc2,0xfd,0x65,0xfc,0x25,0xfd,0xc0,0xfd,0x88,0xfc,0x14,0xfc, +0xc9,0xfe,0xed,0x1,0x2f,0x2,0xd2,0x0,0xd1,0x0,0x5,0x2, +0xe6,0x1,0x3,0x0,0x6f,0xfe,0x6b,0xfe,0x4b,0xff,0x38,0xff, +0xef,0xfd,0xf5,0xfd,0x49,0xff,0x4f,0xff,0xc3,0xfe,0xd9,0xfe, +0xef,0xfe,0x52,0xff,0x53,0xfe,0xe7,0xfa,0x32,0xf9,0xc8,0xf9, +0x99,0xf8,0xba,0xf6,0x37,0xf7,0x92,0xf9,0x1,0xfc,0x96,0xfc, +0x3,0xfc,0x78,0xfc,0x88,0xfc,0x23,0xfc,0x33,0xfd,0x19,0xfd, +0x4c,0xfc,0x82,0xff,0xa1,0x2,0xeb,0x0,0x3c,0x0,0xe8,0x2, +0x82,0x3,0x85,0x1,0xd8,0xff,0xe4,0xfe,0x75,0xfe,0xc8,0xfd, +0xb0,0xfc,0x18,0xfc,0xd0,0xfb,0x81,0xfc,0xe8,0xfd,0x3f,0xfd, +0xaa,0xfc,0xb,0xff,0x16,0x0,0x4a,0xff,0xee,0x0,0x4c,0x2, +0x6f,0x1,0xe,0x2,0x77,0x3,0x92,0x3,0x88,0x3,0x50,0x3, +0x34,0x3,0xbb,0x3,0x68,0x3,0x7d,0x2,0xa0,0x1,0xe0,0xff, +0x7c,0xfe,0x54,0xfe,0x45,0xfd,0x47,0xfb,0xea,0xfa,0x46,0xfc, +0x6d,0xfd,0x55,0xfe,0x29,0x0,0x8a,0x2,0x9d,0x4,0x3e,0x6, +0xeb,0x6,0x5f,0x6,0x4c,0x5,0xa,0x4,0x2e,0x2,0x68,0x0, +0x12,0x0,0x5b,0x0,0x8,0x0,0x11,0x0,0xf6,0x0,0xee,0x1, +0x12,0x2,0xaf,0x0,0x54,0xff,0x89,0xff,0xc6,0xff,0xd7,0xff, +0x34,0x1,0xb9,0x3,0xce,0x6,0xbf,0x8,0x7c,0x8,0x8c,0x8, +0x92,0x9,0xb9,0x8,0xa7,0x5,0x94,0x2,0xeb,0x0,0x2b,0x0, +0xd6,0xfe,0xe9,0xfc,0xe2,0xfb,0x1c,0xfd,0x1,0x0,0xec,0x1, +0x15,0x3,0x42,0x6,0xcc,0x9,0x58,0xa,0x5d,0x9,0xe5,0x8, +0x10,0x7,0xf7,0x2,0x99,0xff,0xf0,0xfd,0x2c,0xfb,0x62,0xf8, +0x7b,0xf9,0xd7,0xfb,0x5a,0xfb,0x43,0xfb,0x47,0xfe,0x99,0x0, +0x99,0x0,0x31,0x1,0x41,0x2,0x8e,0x1,0x4b,0x0,0xdf,0xff, +0x64,0xff,0x35,0xff,0x72,0xff,0x1c,0xff,0xb7,0xff,0x4e,0x1, +0xb1,0x0,0xa9,0xfe,0x6f,0xfd,0xa9,0xfb,0x7a,0xf9,0x70,0xf8, +0x31,0xf8,0xf9,0xf7,0x48,0xf7,0xa1,0xf7,0x1a,0xfa,0x73,0xfb, +0x6e,0xfb,0xa7,0xfd,0x9f,0x0,0xa5,0x1,0xfd,0x1,0xa8,0x2, +0x66,0x3,0x42,0x3,0xd2,0x1,0x91,0x0,0xac,0xff,0xd3,0xfe, +0xdc,0xfe,0xbc,0xfe,0x2b,0xfe,0xd1,0xfe,0x8f,0xff,0x74,0xff, +0x6e,0x0,0xc3,0x1,0x92,0x1,0xf7,0x1,0xba,0x3,0x79,0x4, +0x68,0x5,0x44,0x7,0xe2,0x6,0xc2,0x6,0x1a,0xa,0x4,0xb, +0xa1,0x7,0xb4,0x5,0x2,0x5,0xb,0x3,0x96,0x1,0xe3,0x0, +0xbd,0x0,0xda,0x2,0x74,0x6,0x8b,0x8,0x63,0x8,0xf6,0x8, +0x7a,0xb,0x62,0xb,0xfa,0x7,0x6,0x8,0x31,0xb,0x85,0xa, +0xa7,0x8,0xed,0xa,0x95,0xc,0xde,0xa,0xa1,0xa,0x40,0xb, +0xb8,0x8,0x4,0x6,0xd8,0x5,0x8b,0x4,0x1c,0x2,0x4,0x3, +0x2c,0x5,0x12,0x5,0xdf,0x6,0xa5,0xb,0x25,0xd,0x63,0xb, +0x64,0xc,0xd1,0xe,0xbd,0xc,0x60,0x9,0xad,0xa,0xa8,0xa, +0x9d,0x5,0xbe,0x4,0x4b,0x7,0x46,0x3,0x3e,0xfe,0x1c,0x0, +0x71,0x0,0xb0,0xfa,0x5c,0xf9,0x5b,0xff,0x9d,0x1,0x26,0xff, +0xf8,0x1,0x97,0x7,0xc8,0x7,0x3b,0x6,0x56,0x7,0xfb,0x7, +0x74,0x6,0x9e,0x4,0x97,0x3,0xc8,0x2,0x57,0x2,0x56,0x2, +0x6f,0x0,0x72,0xfd,0x8f,0xfd,0x3c,0xff,0xf3,0xfd,0x76,0xfb, +0x4b,0xfc,0xfe,0xfe,0x99,0xff,0xd1,0xff,0x76,0x0,0xb5,0xfd, +0xac,0xf9,0xb8,0xf7,0xc1,0xf3,0xf,0xee,0xc,0xec,0x54,0xeb, +0x64,0xe8,0xf1,0xe7,0xb4,0xeb,0xa,0xed,0x20,0xeb,0x2a,0xec, +0x7f,0xee,0x37,0xed,0x2e,0xeb,0x78,0xeb,0xd6,0xec,0x74,0xed, +0x8f,0xec,0xa2,0xec,0x68,0xee,0x84,0xee,0x18,0xee,0x0,0xef, +0xb1,0xed,0x3c,0xeb,0x33,0xec,0x46,0xed,0xb3,0xea,0x7f,0xe8, +0xce,0xe8,0x40,0xe9,0xfe,0xe9,0xba,0xea,0x87,0xea,0x5b,0xec, +0x80,0xef,0xbe,0xef,0xe9,0xef,0xc,0xf3,0x54,0xf5,0xf3,0xf4, +0x8e,0xf4,0x55,0xf5,0x97,0xf5,0x35,0xf4,0x3b,0xf3,0xd9,0xf3, +0x2c,0xf4,0xdb,0xf3,0x94,0xf4,0x5f,0xf6,0x56,0xf7,0xff,0xf6, +0x4b,0xf7,0x35,0xf8,0x19,0xf8,0xd4,0xf7,0xf5,0xf7,0xfa,0xf7, +0x1d,0xf9,0x22,0xfb,0xf5,0xfb,0x32,0xfc,0x54,0xfd,0xd3,0xfd, +0x15,0xfc,0x18,0xfa,0xd7,0xf9,0xce,0xf9,0x92,0xf8,0x5c,0xf7, +0xf4,0xf7,0x1c,0xfa,0x4d,0xfb,0x36,0xfb,0xa2,0xfc,0x62,0xff, +0xca,0x0,0x60,0x1,0xd1,0x2,0x6,0x4,0x25,0x4,0xe6,0x4, +0x4c,0x6,0x9,0x6,0x82,0x4,0xf8,0x3,0xb9,0x4,0x40,0x5, +0x6a,0x4,0x44,0x4,0xc3,0x6,0x9,0x9,0x77,0x9,0xa3,0xa, +0xda,0xc,0x3b,0xe,0xc5,0xe,0xa1,0xf,0xf4,0x10,0x37,0x11, +0xc9,0xf,0xd,0xe,0x64,0xd,0x3f,0xe,0xc0,0xe,0x32,0xd, +0x8b,0xc,0xc1,0xe,0x95,0x10,0x2c,0x10,0xfe,0xe,0x94,0xe, +0x1d,0xf,0xb1,0xe,0x87,0xc,0xb8,0xa,0xed,0x9,0x99,0x9, +0x7b,0xa,0xb4,0xb,0xba,0xb,0x43,0xc,0x12,0xe,0x68,0xe, +0xd4,0xc,0x74,0xb,0x5c,0xa,0x71,0x8,0x58,0x5,0xb7,0x2, +0x66,0x3,0xba,0x5,0x4a,0x5,0x1a,0x3,0x49,0x3,0x96,0x6, +0x99,0x9,0xff,0x7,0xc4,0x3,0x99,0x3,0xd0,0x6,0x43,0x7, +0xd,0x4,0x4,0x0,0x1e,0xfe,0x65,0x0,0xb4,0x3,0x81,0x3, +0xa,0x1,0x9b,0xff,0x22,0x0,0x88,0x1,0x36,0x1,0x9c,0xfe, +0xa9,0xfc,0x81,0xfd,0x40,0xff,0x2a,0xfe,0x57,0xfb,0x7e,0xfb, +0xaa,0xfd,0xc1,0xfe,0xb2,0xff,0xf7,0xff,0x2b,0xff,0xba,0xff, +0x7b,0x0,0xf9,0xff,0x67,0x0,0x6c,0x1,0xdb,0x0,0x71,0xfe, +0x25,0xfc,0x10,0xfe,0x2d,0x2,0x8b,0x0,0xd9,0xfb,0xab,0xfd, +0xdd,0x3,0xe1,0x5,0x58,0x2,0x4d,0xfd,0xae,0xfb,0x36,0xff, +0x58,0x2,0xe0,0xfe,0x94,0xf7,0x2,0xf6,0x8f,0xfd,0x55,0x4, +0xff,0x1,0xe7,0xfd,0x6a,0x0,0x46,0x5,0xb6,0x5,0x55,0x1, +0x6f,0xfd,0xea,0xfe,0x1,0x2,0x2,0x1,0x23,0xfe,0xa4,0xfc, +0x6e,0xfc,0x34,0xfd,0x26,0xfd,0xf9,0xfb,0xcf,0xfc,0xa7,0xfe, +0x93,0xfd,0x30,0xfb,0x4,0xfb,0xe6,0xfc,0x72,0xff,0x66,0x0, +0xe4,0xfe,0xbc,0xff,0x39,0x5,0x48,0x8,0xe9,0x3,0xd,0xfe, +0x31,0xff,0xf5,0x5,0x17,0x8,0x1e,0x2,0x4f,0xfc,0x45,0xfd, +0xc8,0x2,0xf7,0x5,0xbe,0x2,0x7c,0xfe,0x6a,0x0,0xa6,0x5, +0xe4,0x6,0xc4,0x3,0xd0,0x2,0x24,0x8,0x6b,0xe,0x9e,0xe, +0x15,0xb,0xda,0xa,0x6a,0xe,0x99,0xf,0x9b,0xb,0x17,0x7, +0x3d,0x6,0xed,0x6,0x72,0x4,0x3b,0xff,0xf0,0xfd,0xc4,0x1, +0x60,0x3,0xf9,0x0,0xc0,0xff,0xad,0x1,0x22,0x5,0x4,0x6, +0x62,0x2,0x93,0x1,0xef,0x7,0x64,0xc,0x8e,0x8,0x62,0x2, +0xa6,0x0,0x15,0x3,0xa8,0x4,0x92,0x1,0x28,0xfc,0xd3,0xf9, +0xdb,0xfb,0xd0,0xfd,0x9e,0xfb,0xf2,0xf7,0x36,0xf8,0xf9,0xfa, +0x82,0xfa,0x98,0xf7,0x2f,0xf8,0xdf,0xfc,0xaa,0x0,0x71,0x1, +0x11,0x2,0x88,0x4,0x3c,0x6,0x7c,0x4,0x1,0x1,0x38,0xfe, +0x4e,0xfc,0xf4,0xfa,0x66,0xf9,0x2e,0xf8,0x13,0xf9,0x0,0xfa, +0xb9,0xf8,0xf6,0xf7,0xfb,0xf8,0x23,0xfa,0xb0,0xfa,0x13,0xf9, +0xa3,0xf6,0x4a,0xf8,0xb1,0xfc,0xc8,0xfe,0xa7,0xfe,0x9b,0xfe, +0x7f,0x0,0xe6,0x3,0x34,0x4,0x56,0x1,0x14,0x0,0x2c,0xff, +0x46,0xfc,0xde,0xf9,0xd7,0xf7,0x5b,0xf5,0x9c,0xf4,0xbb,0xf4, +0x1d,0xf4,0x68,0xf4,0x8,0xf5,0x6,0xf4,0xe9,0xf2,0x96,0xf3, +0x4d,0xf5,0x8e,0xf6,0xe,0xf7,0x31,0xf8,0xd4,0xfa,0xce,0xfc, +0xe5,0xfb,0xde,0xf9,0x88,0xf9,0x4f,0xfa,0xcf,0xf9,0x49,0xf7, +0xe7,0xf4,0xdf,0xf4,0x71,0xf5,0x81,0xf4,0xaf,0xf3,0x2,0xf4, +0xd2,0xf3,0xeb,0xf2,0xd2,0xf3,0xd0,0xf6,0xc5,0xf7,0x7a,0xf6, +0xc4,0xf7,0x6c,0xfa,0xc4,0xfa,0xdf,0xfa,0x48,0xfb,0xe6,0xfa, +0xed,0xfb,0x22,0xfe,0x25,0xff,0xd1,0xfe,0x7c,0xfd,0x78,0xfc, +0xce,0xfc,0xbc,0xfc,0x13,0xfb,0xaf,0xf8,0x29,0xf7,0x23,0xf7, +0xe6,0xf6,0x1e,0xf6,0xa8,0xf6,0x2c,0xf8,0x88,0xf9,0x3e,0xfb, +0x15,0xfd,0xa9,0xfd,0x4,0xfd,0x29,0xfd,0x8b,0xfe,0xf5,0xfe, +0x1d,0xfe,0x46,0xfe,0x79,0xff,0xeb,0xff,0xc3,0xff,0xb9,0xff, +0x22,0xff,0x94,0xfe,0xbc,0xfe,0xcc,0xfd,0x88,0xfc,0x6c,0xfd, +0x51,0xfe,0xb,0xfe,0x13,0xff,0xd1,0x0,0x98,0x1,0xfe,0x0, +0xf1,0xfe,0xd0,0xfe,0xa5,0x1,0x30,0x2,0x33,0x0,0xc7,0x0, +0x42,0x3,0x13,0x4,0x4,0x3,0x43,0x1,0x75,0x0,0xc,0x1, +0x9b,0x0,0x15,0xff,0x45,0xff,0x60,0x0,0xe6,0x0,0x48,0x2, +0x92,0x3,0x2b,0x3,0xbe,0x2,0x4b,0x2,0x1b,0x1,0x7e,0x0, +0xbc,0xff,0xc0,0xfe,0x2,0x0,0x15,0x2,0x4b,0x2,0x4c,0x2, +0xf7,0x2,0xa8,0x2,0xe8,0x1,0xed,0x1,0x86,0x1,0xe5,0xff, +0xa2,0xfe,0x57,0xff,0xd,0x1,0x72,0x1,0x7c,0x1,0x1e,0x4, +0x91,0x7,0x8f,0x8,0x89,0x8,0xe5,0x8,0xc8,0x8,0xf3,0x7, +0x14,0x6,0x3,0x4,0xe1,0x2,0x51,0x1,0xbe,0xff,0xc1,0xff, +0x0,0x0,0x84,0x0,0x15,0x2,0xcd,0x2,0x6a,0x3,0xe9,0x5, +0xe9,0x7,0xeb,0x7,0x11,0x8,0xc9,0x8,0xb7,0x8,0x36,0x7, +0x4d,0x4,0xbc,0x1,0x47,0x1,0x9e,0x1,0xb0,0x1,0x41,0x2, +0xcb,0x2,0x38,0x3,0x12,0x4,0xeb,0x3,0xcf,0x2,0xee,0x1, +0xb5,0x0,0x61,0x0,0xc0,0x1,0xff,0x1,0x62,0x1,0xe7,0x2, +0x7c,0x5,0xc5,0x6,0xc,0x7,0x11,0x7,0xbe,0x6,0x1a,0x6, +0x1a,0x5,0x6e,0x3,0x81,0x1,0x48,0xff,0x98,0xfc,0x62,0xfb, +0x96,0xfb,0xd6,0xfa,0xdc,0xfa,0xf6,0xfc,0xc5,0xfe,0xc3,0x0, +0x3a,0x3,0x39,0x4,0xa4,0x5,0x3e,0x8,0xc3,0x8,0xe0,0x7, +0xc4,0x7,0xa8,0x6,0x36,0x4,0x74,0x2,0xc0,0x0,0xf8,0xfd, +0xa2,0xfb,0x61,0xfa,0x1c,0xf9,0x71,0xf8,0x45,0xf9,0x52,0xfa, +0x24,0xfb,0xfc,0xfc,0x62,0xff,0xe6,0x0,0x33,0x2,0x6a,0x3, +0xe3,0x2,0x30,0x2,0xd6,0x3,0xc7,0x4,0x8f,0x2,0xaf,0x0, +0xbd,0x0,0x20,0x0,0x17,0xfe,0x90,0xfb,0x38,0xf9,0xa1,0xf7, +0x83,0xf6,0x1f,0xf6,0x9b,0xf6,0xa9,0xf6,0xd0,0xf7,0x8f,0xfb, +0x6,0xfe,0xef,0xfe,0xf0,0x1,0x1c,0x4,0x91,0x3,0xe0,0x3, +0x65,0x3,0x1d,0x0,0xc8,0xfd,0xe1,0xfc,0x15,0xfb,0xd5,0xf9, +0xb4,0xfa,0x7a,0xfb,0x6c,0xfa,0x64,0xfa,0x8e,0xfc,0x1f,0xfd, +0xfb,0xfb,0xb2,0xfb,0xcc,0xfa,0x5a,0xf9,0x1a,0xfa,0xe8,0xfb, +0xfd,0xfb,0xdb,0xfb,0xde,0xfe,0x8c,0x2,0x69,0x2,0x7a,0x1, +0x87,0x2,0x16,0x2,0x24,0x0,0x5,0xff,0x31,0xfd,0x9f,0xfa, +0x4c,0xf9,0x88,0xf8,0x3f,0xf7,0xcd,0xf6,0xe6,0xf7,0xf9,0xf8, +0x9a,0xfa,0x6b,0xfe,0x87,0x1,0x2d,0x2,0x90,0x3,0x93,0x5, +0x30,0x5,0x90,0x3,0xd7,0x2,0xb3,0x1,0x4b,0xff,0x2d,0xfe, +0xba,0xfe,0x52,0xfd,0xc6,0xfa,0x57,0xfb,0xb5,0xfc,0x6d,0xfb, +0x2d,0xfb,0xa1,0xfd,0xaa,0xfe,0x90,0xfe,0x74,0x0,0x3f,0x2, +0x42,0x2,0xd7,0x2,0xa7,0x3,0xfe,0x2,0xdb,0x2,0x41,0x4, +0x5c,0x4,0x7d,0x2,0xf6,0x0,0xc4,0xff,0x18,0xfe,0xe2,0xfc, +0xc4,0xfb,0xd0,0xfa,0xa0,0xfb,0xcb,0xfc,0x28,0xfd,0x98,0xfe, +0xcb,0x0,0x70,0x2,0x4b,0x4,0x92,0x6,0xa3,0x8,0xa7,0x9, +0x22,0x9,0xe9,0x7,0x28,0x6,0x8e,0x3,0x40,0x1,0x2d,0x0, +0x7c,0xff,0xc0,0xfe,0xcb,0xff,0x9c,0x2,0x15,0x4,0x31,0x4, +0x38,0x4,0xfc,0x2,0xb7,0x1,0x65,0x1,0xce,0xff,0x90,0xfe, +0x56,0x0,0xe4,0x2,0x9d,0x4,0x5f,0x6,0xf0,0x7,0xad,0x8, +0x9c,0x8,0x87,0x7,0xf6,0x4,0xf,0x2,0xa7,0x0,0xff,0xff, +0xb4,0xfe,0xaa,0xfd,0x6,0xfe,0x48,0xff,0x11,0x0,0x56,0x0, +0x33,0x1,0xe8,0x1,0x53,0x1,0x6,0x1,0x38,0x2,0xf4,0x2, +0x27,0x2,0xe1,0x1,0x5,0x2,0x87,0x0,0x44,0xff,0x19,0xff, +0x3a,0xfd,0x92,0xfb,0xf6,0xfc,0x89,0xfe,0x6e,0xff,0x6d,0x1, +0xe3,0x2,0x4,0x3,0x66,0x3,0x23,0x3,0x52,0x1,0xfe,0xff, +0x87,0xff,0x31,0xfe,0x44,0xfd,0x58,0xfe,0x15,0xff,0x71,0xfe, +0xb9,0xfe,0x2d,0x0,0xda,0x0,0x76,0x0,0x53,0x0,0xf9,0x0, +0x40,0x1,0x85,0x0,0x26,0x0,0x17,0x1,0x40,0x2,0xde,0x2, +0xaf,0x3,0x44,0x4,0xa0,0x3,0x1d,0x3,0x11,0x3,0x7f,0x1, +0x80,0xff,0x23,0xff,0x77,0xfe,0xd3,0xfc,0xb7,0xfc,0x86,0xfd, +0xd2,0xfd,0x65,0xff,0xa7,0x1,0x78,0x2,0x5,0x4,0xde,0x6, +0xc0,0x7,0x5f,0x7,0x8c,0x7,0x1e,0x6,0x8,0x3,0xc2,0x0, +0x2a,0xff,0x1b,0xfe,0xd0,0xfe,0x8d,0x0,0x17,0x2,0x7f,0x3, +0x31,0x4,0xe9,0x3,0xa7,0x3,0xe4,0x2,0x83,0x0,0xea,0xfd, +0xd4,0xfc,0xb7,0xfc,0x44,0xfc,0x8c,0xfb,0xda,0xfb,0x73,0xfd, +0x1f,0xff,0x37,0x0,0x28,0x1,0x27,0x2,0x54,0x2,0x26,0x1, +0xaa,0xff,0x8a,0xfe,0xb3,0xfd,0x22,0xfd,0x16,0xfc,0xfb,0xfa, +0x9d,0xfb,0x5a,0xfd,0x65,0xfe,0xec,0xfe,0xe4,0xff,0x7f,0x1, +0xf1,0x2,0x7a,0x3,0x60,0x3,0xa3,0x3,0xf4,0x4,0x7c,0x5, +0x90,0x3,0xea,0x1,0x38,0x2,0x1,0x2,0xb8,0x0,0x16,0x0, +0x21,0x0,0x35,0x0,0xa6,0x0,0x28,0x1,0xa1,0x0,0x79,0x0, +0xf4,0x1,0x56,0x2,0xcc,0x1,0x5d,0x3,0x8b,0x4,0xce,0x3, +0x77,0x4,0xf4,0x5,0x45,0x6,0x4a,0x6,0xac,0x5,0x75,0x4, +0xd9,0x3,0x28,0x3,0xe2,0x1,0xbb,0x0,0x14,0x0,0x30,0x0, +0x6c,0x0,0x5c,0x0,0x22,0x1,0xcc,0x2,0x4f,0x4,0x7,0x6, +0x85,0x8,0x9,0xb,0x3f,0xc,0x73,0xb,0x2c,0x9,0xbf,0x5, +0x70,0x0,0x0,0xf9,0xb3,0xf0,0x9,0xea,0xb7,0xe6,0xdd,0xe5, +0xa1,0xe6,0xbc,0xe9,0xff,0xee,0xcb,0xf4,0x4e,0xf9,0xef,0xfb, +0x82,0xfd,0x6,0xfe,0x88,0xfd,0xf0,0xfc,0x84,0xfb,0x86,0xf9, +0xf3,0xf8,0x77,0xf8,0x74,0xf6,0xf8,0xf4,0x2a,0xf5,0x72,0xf5, +0x91,0xf4,0x5b,0xf3,0xcb,0xf2,0x29,0xf2,0x6d,0xf1,0x3a,0xf1, +0x4c,0xf1,0x4c,0xf2,0x1f,0xf4,0xa7,0xf5,0x23,0xf8,0xeb,0xfb, +0x57,0xff,0x3d,0x2,0x73,0x4,0xb9,0x5,0x7c,0x6,0x35,0x6, +0xe6,0x4,0x9b,0x2,0xce,0xfe,0x1d,0xfb,0xbd,0xf8,0x5,0xf7, +0x43,0xf6,0x3b,0xf6,0xb3,0xf6,0xe8,0xf8,0xc3,0xfb,0x7a,0xfd, +0xef,0xfe,0x31,0x0,0x37,0x0,0x5e,0xff,0x13,0xfe,0x5f,0xfd, +0x3d,0xfe,0x7e,0xfe,0x11,0xfd,0x58,0xfc,0x29,0xfc,0x15,0xfb, +0xe,0xfa,0x43,0xf8,0xd3,0xf4,0x51,0xf2,0x5c,0xf1,0x7b,0xf0, +0x27,0xf0,0x4c,0xf0,0x67,0xf0,0x87,0xf1,0x60,0xf3,0xe6,0xf4, +0xb2,0xf6,0x81,0xf8,0x5f,0xf9,0x2d,0xfa,0x18,0xfb,0xf2,0xfa, +0x17,0xfa,0xe7,0xf8,0xe9,0xf6,0x21,0xf5,0xc,0xf4,0xe4,0xf2, +0xa4,0xf2,0x60,0xf4,0xe3,0xf6,0x7c,0xf8,0x73,0xf9,0xc0,0xfb, +0xce,0xfe,0xef,0xff,0x18,0x0,0x1,0x1,0x76,0x1,0xeb,0x1, +0xd1,0x3,0xf4,0x5,0x4f,0x7,0x11,0x8,0x34,0x8,0x4c,0x8, +0xd5,0x8,0x1e,0x9,0x45,0x8,0x63,0x6,0x3,0x5,0x3b,0x5, +0x75,0x5,0x5b,0x4,0x7c,0x3,0x46,0x4,0x16,0x6,0x8c,0x7, +0xe1,0x7,0x34,0x8,0x8a,0x9,0x7e,0xa,0x5e,0xa,0xbe,0x9, +0xae,0x8,0xd,0x8,0xc9,0x7,0x5e,0x6,0xb1,0x4,0x7,0x4, +0xcb,0x3,0x97,0x3,0xdc,0x2,0xe7,0x1,0x7,0x2,0x73,0x2, +0x57,0x2,0xa3,0x2,0x2c,0x3,0x78,0x3,0xe0,0x3,0x9,0x4, +0xde,0x3,0x30,0x4,0xc4,0x4,0xd8,0x4,0xe3,0x4,0xf8,0x4, +0x2d,0x4,0x3e,0x3,0x54,0x3,0x8d,0x3,0xcb,0x2,0x1d,0x1, +0xd3,0xff,0x5b,0x0,0xc4,0x1,0x74,0x2,0x61,0x2,0x1f,0x2, +0xed,0x2,0xb4,0x4,0x38,0x5,0xd6,0x4,0xc,0x6,0x67,0x8, +0x81,0x9,0xce,0x8,0x3e,0x8,0xb4,0x8,0x9a,0x8,0x74,0x8, +0xdd,0x9,0xc,0xa,0x5f,0x7,0x46,0x6,0x76,0x8,0x26,0xa, +0x98,0xa,0x4e,0xb,0x1b,0xb,0x96,0xa,0x88,0xc,0x7d,0xf, +0x7d,0xf,0x7a,0xc,0xdc,0xa,0x3d,0xd,0x44,0xf,0x7e,0xc, +0x8,0x8,0x95,0x5,0x40,0x4,0x2b,0x4,0x9,0x6,0x3f,0x7, +0xd8,0x6,0x9e,0x7,0x94,0x9,0xf5,0x9,0xaf,0x8,0xee,0x6, +0x2e,0x5,0xf6,0x4,0xca,0x5,0xfe,0x3,0xdb,0xff,0x32,0xff, +0xe8,0x3,0x8e,0x7,0xec,0x4,0x74,0x0,0xa7,0x0,0x21,0x4, +0xc5,0x5,0x3e,0x3,0x35,0xfd,0x63,0xf9,0x43,0xfd,0x1c,0x2, +0xd9,0xff,0x45,0xfd,0xae,0x0,0x19,0x4,0x7f,0x4,0xaa,0x5, +0x9e,0x8,0xee,0xa,0xd4,0x9,0xa0,0x6,0x60,0x6,0x45,0x9, +0x63,0xa,0x52,0x6,0xf8,0xfe,0x21,0xfc,0x4c,0x0,0xf3,0x1, +0xdb,0xfc,0x2a,0xfa,0x80,0xfe,0x8f,0x3,0xdd,0x3,0xc0,0xff, +0x2f,0xfd,0x51,0x2,0x8c,0x8,0xed,0x4,0xed,0xfd,0x67,0x0, +0xe8,0x8,0x97,0xb,0xb4,0x5,0x59,0xff,0x4,0x0,0x1c,0x4, +0x58,0x4,0x17,0x0,0xe0,0xfa,0x7d,0xf9,0x80,0xfc,0xaf,0xfc, +0x82,0xf8,0xea,0xf7,0xb5,0xfb,0xb6,0xfc,0xc,0xfa,0x5e,0xf9, +0x4d,0xfd,0x88,0x1,0x42,0x0,0xef,0xfa,0x51,0xf8,0x47,0xfa, +0x9f,0xfc,0x23,0xfb,0x49,0xf6,0x78,0xf4,0xf9,0xf8,0x75,0xfc, +0x85,0xf9,0x55,0xf6,0x43,0xf8,0x5c,0xfb,0x78,0xfa,0x7e,0xf6, +0x74,0xf4,0xb2,0xf6,0x82,0xf9,0x50,0xf8,0x6e,0xf4,0xc0,0xf3, +0x2a,0xf8,0xc8,0xfb,0x78,0xf9,0xe3,0xf4,0x85,0xf4,0x5,0xf8, +0xab,0xf9,0x19,0xf7,0xc4,0xf4,0xc8,0xf6,0xb1,0xf9,0xfc,0xf8, +0x5e,0xf7,0x9a,0xf8,0x30,0xfb,0xd6,0xfb,0x1d,0xf9,0x58,0xf5, +0xdb,0xf4,0x45,0xf7,0xd3,0xf7,0x78,0xf5,0x73,0xf4,0x5a,0xf7, +0xd1,0xfa,0xd3,0xfa,0xf0,0xf8,0x6,0xf9,0xa2,0xfa,0xc7,0xfa, +0xef,0xf9,0xdd,0xf9,0x9c,0xf9,0x3b,0xf9,0x9e,0xf9,0xfd,0xf8, +0x6a,0xf7,0x9a,0xf7,0x45,0xf9,0xee,0xf9,0xda,0xf8,0x4,0xf8, +0xda,0xf8,0x9c,0xf9,0xc3,0xf9,0x44,0xfa,0xcc,0xf9,0xeb,0xf8, +0xd1,0xf9,0x2e,0xfb,0xe1,0xfb,0xf3,0xfc,0x2f,0xfe,0x8a,0xfe, +0x7c,0xfd,0xc5,0xfb,0xa8,0xfa,0xc8,0xf9,0xa5,0xf8,0xab,0xf7, +0x2c,0xf7,0x9a,0xf7,0xf9,0xf8,0x6e,0xfa,0x49,0xfb,0x12,0xfc, +0xac,0xfd,0x89,0xfe,0xcc,0xfc,0x42,0xfa,0xab,0xf8,0x71,0xf7, +0x8a,0xf6,0x2f,0xf6,0x66,0xf7,0x4c,0xfb,0x41,0xff,0x2f,0x1, +0x2,0x3,0xb3,0x4,0xb9,0x4,0x9a,0x3,0xdc,0x0,0xbc,0xfc, +0x31,0xfa,0x73,0xf9,0xed,0xf8,0x99,0xf9,0x90,0xfb,0xfc,0xfc, +0xab,0xfd,0xe2,0xfe,0x50,0x1,0xfc,0x3,0x5b,0x5,0xcf,0x5, +0xc3,0x6,0xae,0x7,0x78,0x6,0x49,0x3,0xc,0x1,0x70,0x0, +0x5a,0xff,0x66,0xfd,0xff,0xfb,0x3a,0xfc,0x94,0xfd,0x58,0xfe, +0x72,0xfe,0xd,0xfe,0xe5,0xfc,0x13,0xfd,0xf0,0xfd,0xad,0xfb, +0x19,0xf9,0xcb,0xfa,0xb2,0xfd,0x98,0xfe,0x2b,0x0,0x50,0x4, +0x2,0x8,0xb9,0x8,0x7c,0x8,0x5d,0x8,0x2f,0x6,0x33,0x2, +0x21,0xfe,0xc8,0xf9,0x38,0xf6,0x78,0xf5,0x50,0xf6,0xcb,0xf6, +0x8f,0xf8,0x1,0xfd,0xf7,0x0,0x13,0x2,0xb2,0x2,0x7e,0x4, +0xde,0x5,0x6f,0x5,0x71,0x3,0x68,0x1,0x14,0x1,0x1d,0x2, +0x63,0x2,0x75,0x1,0xbc,0x0,0xcb,0x0,0xd8,0x0,0x9e,0xff, +0x79,0xfd,0x9a,0xfc,0x85,0xfc,0x6d,0xfb,0x31,0xfb,0x5f,0xfc, +0x9c,0xfc,0x88,0xfd,0x83,0x0,0x8,0x2,0x5b,0x2,0xd2,0x4, +0x9e,0x6,0x42,0x5,0xab,0x4,0x67,0x5,0x5,0x4,0xb1,0x1, +0x47,0x0,0x1a,0xff,0x60,0xfe,0x2,0xfd,0xc3,0xfa,0x70,0xfa, +0x19,0xfb,0xe9,0xfa,0xa9,0xfb,0xd6,0xfc,0xfa,0xfd,0xb5,0x0, +0xf7,0x2,0x0,0x4,0xed,0x5,0x3e,0x6,0xc8,0x3,0x5d,0x2, +0xda,0x1,0x0,0x0,0x43,0xfe,0x7f,0xfd,0x1f,0xfd,0x8e,0xfd, +0x42,0xfe,0x5b,0xfe,0x4a,0xfe,0x8e,0xfe,0xc6,0xff,0x9f,0x1, +0xee,0x1,0x22,0x1,0xa,0x2,0xc4,0x3,0x15,0x4,0xfd,0x3, +0x59,0x4,0xd5,0x4,0xd9,0x5,0xb9,0x6,0xe7,0x6,0xbc,0x7, +0x68,0x8,0x31,0x7,0x6,0x6,0xee,0x5,0xb3,0x4,0x27,0x2, +0xb1,0xff,0xcc,0xfd,0x5d,0xfd,0x9e,0xfe,0xea,0xff,0x5f,0x0, +0x7a,0x1,0xa9,0x4,0x2c,0x8,0x48,0x9,0x1c,0x8,0x71,0x6, +0x26,0x5,0xc0,0x3,0xaa,0x1,0xaa,0xff,0xaa,0xfe,0x5,0xff, +0x67,0x0,0x40,0x1,0x7c,0x1,0x3b,0x2,0xb7,0x2,0xf9,0x2, +0x47,0x3,0xea,0x1,0x23,0x0,0x6d,0x0,0x3e,0x1,0x74,0x1, +0xd5,0x1,0x6d,0x2,0x87,0x3,0x80,0x4,0xdd,0x3,0x61,0x2, +0x94,0x0,0xe7,0xfc,0xc5,0xf8,0x29,0xf8,0xa,0xfa,0xcd,0xfa, +0xbd,0xfb,0x88,0xfe,0xae,0x1,0xff,0x4,0x7f,0x7,0x22,0x7, +0xd4,0x5,0x5b,0x5,0xce,0x4,0x90,0x4,0x53,0x4,0x1e,0x3, +0x6f,0x2,0x92,0x2,0xb0,0x1,0xbd,0xff,0xd9,0xfd,0xfa,0xfc, +0x9f,0xfd,0xae,0xfe,0x6c,0xff,0xe3,0x0,0xc9,0x2,0x8f,0x3, +0x89,0x3,0xa8,0x3,0x8a,0x3,0x1e,0x3,0xeb,0x2,0xe7,0x2, +0xee,0x2,0x9f,0x2,0xd3,0x1,0xc4,0x1,0x60,0x2,0x8b,0x1, +0x91,0xff,0xca,0xfd,0x93,0xfb,0x8e,0xf9,0xa5,0xf8,0x50,0xf8, +0x9a,0xf9,0xc8,0xfb,0x59,0xfc,0x67,0xfd,0xb0,0xff,0xb,0x0, +0x8,0x0,0x67,0x1,0x93,0x1,0xd2,0x0,0x76,0x0,0x4c,0xff, +0xa9,0xfd,0x77,0xfc,0x27,0xfb,0xb0,0xf9,0x86,0xf8,0xe0,0xf7, +0xc,0xf8,0x1d,0xf9,0xd7,0xfa,0x5c,0xfd,0x38,0x0,0xb1,0x1, +0x6d,0x2,0xe5,0x3,0xdf,0x3,0x8c,0x2,0xb9,0x2,0x50,0x2, +0x3,0x1,0xd5,0x1,0x38,0x2,0xbc,0x0,0x6a,0x0,0xf3,0xff, +0xa2,0xfd,0xea,0xfb,0xa1,0xfb,0x6f,0xfb,0xac,0xfa,0xd8,0xfa, +0xec,0xfd,0x81,0x1,0xc3,0x2,0xd6,0x3,0x65,0x5,0xf2,0x4, +0xf,0x3,0x1d,0x1,0x4a,0xfe,0xa5,0xfb,0x54,0xfb,0x6a,0xfc, +0x19,0xfd,0xc0,0xfd,0x43,0xff,0xe0,0x0,0x2f,0x1,0x45,0x0, +0xff,0xfe,0x88,0xfd,0x3,0xfc,0xb7,0xfa,0x65,0xfa,0x19,0xfc, +0xb1,0xfe,0xdd,0xff,0xcd,0xff,0x61,0x0,0xa6,0x1,0x39,0x1, +0xcb,0xfe,0x1d,0xfe,0xdf,0xff,0xe9,0xff,0xf5,0xfd,0x4a,0xfd, +0x7b,0xfd,0x8b,0xfc,0xc9,0xfa,0xe6,0xf8,0x97,0xf7,0xe8,0xf7, +0x25,0xf9,0x2d,0xfa,0xc0,0xfb,0x5a,0xfe,0xe9,0x0,0xe2,0x1, +0xb2,0x0,0x5b,0xff,0x49,0xff,0xa9,0xfe,0x69,0xfd,0xc1,0xfd, +0x6d,0xff,0x15,0x1,0x15,0x2,0xce,0x1,0xda,0x0,0x89,0x0, +0xdb,0x0,0x2f,0x0,0xb1,0xfd,0xb4,0xfb,0xf9,0xfb,0xce,0xfc, +0x1f,0xfd,0x42,0xfe,0xbc,0x0,0x91,0x2,0xaf,0x2,0x58,0x3, +0x98,0x4,0x77,0x3,0xe9,0x0,0x41,0xff,0xda,0xfd,0xd2,0xfc, +0x3d,0xfc,0x1a,0xfb,0xb3,0xfa,0x20,0xfc,0xec,0xfd,0x6a,0xff, +0x7d,0x0,0x2a,0x0,0x3b,0xff,0xa2,0xff,0x95,0x0,0x6d,0x0, +0x69,0xff,0xc,0xfe,0x1f,0xfd,0xd5,0xfc,0xd5,0xfb,0xfc,0xfa, +0x6d,0xfb,0xc2,0xfb,0xe8,0xfc,0xc4,0xfe,0xcf,0xfd,0xd0,0xfb, +0xc4,0xfb,0x47,0xfb,0x2e,0xfa,0x98,0xf9,0x7b,0xf8,0x10,0xf9, +0x14,0xfc,0xb4,0xfd,0x90,0xfe,0x20,0x1,0xbd,0x2,0x35,0x2, +0x62,0x2,0x3,0x3,0xd0,0x1,0x70,0x0,0xad,0x0,0xc2,0x0, +0x59,0x0,0x6d,0x0,0xd5,0xff,0x2,0xff,0x63,0xff,0xaf,0xff, +0xec,0xff,0xa,0x1,0x1c,0x1,0x4c,0x0,0x58,0x1,0x75,0x3, +0x8b,0x4,0x6a,0x5,0x14,0x7,0x47,0x8,0x45,0x8,0x7f,0x8, +0xea,0x8,0xec,0x7,0xab,0x6,0x52,0x6,0xfb,0x5,0x3b,0x6, +0x99,0x6,0x38,0x5,0x27,0x4,0x6b,0x4,0x47,0x3,0xd5,0x1, +0x4f,0x2,0xbd,0x2,0xc3,0x2,0xdf,0x3,0x40,0x5,0xd9,0x6, +0x80,0x8,0x79,0x8,0xa3,0x8,0x4a,0xa,0x72,0x9,0xdf,0x6, +0xd0,0x6,0x13,0x6,0x21,0x3,0x54,0x3,0x2f,0x5,0xdf,0x3, +0x59,0x3,0x62,0x6,0x6,0x8,0xf,0x7,0x28,0x7,0xce,0x7, +0x37,0x7,0x6f,0x7,0x7f,0x8,0x6e,0x7,0xab,0x5,0x65,0x6, +0xa8,0x7,0x5a,0x7,0x61,0x7,0xc4,0x7,0x6a,0x6,0xe,0x5, +0xfa,0x5,0x51,0x6,0x81,0x4,0xc6,0x4,0xca,0x7,0x49,0x8, +0x3c,0x6,0x94,0x6,0xa9,0x7,0x87,0x4,0xfc,0x0,0x79,0x2, +0x9e,0x3,0x49,0x0,0x18,0x0,0x84,0x4,0xb8,0x4,0xf1,0x2, +0xb7,0x6,0xf7,0x9,0xbf,0x7,0xc1,0x6,0x17,0x8,0x6b,0x6, +0xe5,0x2,0x32,0x1,0x38,0x1,0x25,0x1,0xed,0xff,0x2b,0xff, +0x55,0x0,0x77,0x1,0x66,0x1,0x86,0x1,0xa4,0x1,0xc2,0x0, +0x6b,0x0,0x42,0x1,0xc7,0x0,0xbe,0xff,0x3b,0x1,0x33,0x2, +0x75,0x0,0x6f,0x0,0xb5,0x0,0x34,0xfd,0xf5,0xfb,0xc2,0xfe, +0x87,0xfd,0xbb,0xfa,0xb,0xfd,0xe1,0xfd,0xe,0xfa,0x4a,0xf9, +0x81,0xfa,0x82,0xf7,0x58,0xf4,0xeb,0xf4,0xdd,0xf4,0x40,0xf2, +0x71,0xf0,0x31,0xf0,0xf,0xef,0x80,0xed,0x80,0xed,0x3f,0xed, +0x8e,0xeb,0x61,0xeb,0xdf,0xec,0x6,0xed,0x8,0xec,0x94,0xeb, +0xcd,0xeb,0x54,0xec,0x66,0xec,0xd2,0xeb,0x66,0xeb,0xff,0xea, +0xb1,0xea,0x50,0xeb,0xdf,0xeb,0x6f,0xeb,0x51,0xeb,0x29,0xec, +0x8a,0xed,0xfb,0xee,0x26,0xef,0x50,0xee,0x88,0xee,0x73,0xef, +0x82,0xef,0x14,0xef,0x66,0xef,0x75,0xf0,0xcf,0xf0,0xdc,0xf0, +0x23,0xf2,0xaf,0xf2,0xbf,0xf1,0xc2,0xf2,0x64,0xf5,0x63,0xf6, +0x78,0xf6,0x37,0xf7,0xa8,0xf7,0x26,0xf7,0xa0,0xf6,0x3c,0xf6, +0xbb,0xf4,0xe9,0xf2,0xe9,0xf2,0x17,0xf4,0xfd,0xf4,0xa1,0xf5, +0x8f,0xf6,0x32,0xf8,0x6d,0xf9,0x42,0xf9,0x1f,0xf9,0x4a,0xf9, +0xd8,0xf8,0xbd,0xf8,0xce,0xf8,0xdc,0xf7,0x77,0xf7,0x98,0xf8, +0x38,0xf9,0x14,0xf9,0x9f,0xf9,0xb9,0xf9,0x9c,0xf8,0x93,0xf8, +0xf8,0xf9,0xec,0xfa,0xdd,0xfb,0x62,0xfd,0x4e,0xfe,0xfc,0xfe, +0xe6,0x0,0x35,0x3,0x5,0x4,0x3c,0x4,0xcd,0x5,0x7e,0x7, +0xed,0x7,0xc5,0x8,0xd,0xa,0xb1,0x9,0x10,0x9,0x69,0xa, +0xb7,0xb,0xb5,0xb,0xb1,0xc,0x89,0xe,0x5c,0xf,0x45,0x10, +0xf6,0x11,0x68,0x13,0xcf,0x14,0x1e,0x16,0xb,0x17,0x71,0x18, +0x33,0x1a,0x6f,0x1b,0xe,0x1c,0x58,0x1c,0x63,0x1c,0x9a,0x1b, +0x5b,0x1a,0xda,0x19,0x52,0x19,0x54,0x18,0xbf,0x17,0xb1,0x16, +0x7d,0x15,0x7c,0x16,0x78,0x18,0x5c,0x18,0xa1,0x16,0xd2,0x15, +0xa6,0x16,0xba,0x17,0x4e,0x17,0xf4,0x14,0xfa,0x12,0xc4,0x13, +0x5b,0x15,0xd,0x15,0xb6,0x13,0x9a,0x12,0x5b,0x12,0xc7,0x12, +0x9a,0x11,0xe9,0xe,0x73,0xd,0x15,0xd,0xb9,0xb,0x38,0x9, +0xe7,0x7,0x75,0x9,0xc0,0xb,0xb6,0xc,0xb9,0xc,0xef,0xb, +0x2,0xc,0xae,0xd,0xa8,0xc,0x3d,0x8,0xd7,0x5,0x4d,0x6, +0x53,0x5,0xc8,0x1,0x4d,0xff,0xfb,0xff,0x25,0x0,0xe3,0xfd, +0x29,0xfd,0x6b,0xfe,0x66,0xfe,0xe1,0xfd,0x88,0xfd,0x84,0xfb, +0x36,0xfa,0x8,0xfd,0xc3,0xff,0x5e,0xfc,0xcd,0xf6,0x21,0xf7, +0xb6,0xfa,0x53,0xf9,0x9a,0xf4,0x65,0xf3,0xed,0xf4,0x96,0xf4, +0x57,0xf2,0xc6,0xf0,0x80,0xf1,0x47,0xf4,0xbf,0xf5,0xf9,0xf2, +0x4e,0xef,0xa8,0xf0,0x59,0xf6,0xb5,0xf8,0x86,0xf3,0x37,0xed, +0x46,0xed,0xc,0xf1,0x6f,0xf2,0x2b,0xf0,0x50,0xec,0xc1,0xeb, +0xa0,0xf0,0x2c,0xf4,0x3,0xf2,0x82,0xef,0x9a,0xf0,0xf7,0xf2, +0xa7,0xf3,0x33,0xf2,0xa4,0xf0,0x26,0xf0,0x7a,0xef,0xc7,0xed, +0xfd,0xea,0x1a,0xe9,0xc4,0xeb,0x20,0xf0,0xb0,0xef,0x16,0xee, +0x90,0xf2,0x74,0xf8,0x23,0xf9,0xf1,0xf8,0x6e,0xfb,0xba,0xfc, +0xae,0xfb,0x71,0xf9,0xc1,0xf5,0x6f,0xf4,0xb9,0xf7,0x88,0xf8, +0xee,0xf2,0x76,0xef,0xe1,0xf5,0xce,0xff,0xd6,0x0,0x11,0xf9, +0xa8,0xf5,0x9b,0xfd,0x73,0x7,0x56,0x6,0x88,0xfc,0xcf,0xf8, +0xab,0x0,0x40,0x9,0x5c,0x9,0x96,0x5,0x55,0x6,0x10,0xb, +0x81,0xc,0xd9,0x7,0x49,0x3,0xeb,0x4,0x95,0x8,0xe8,0x6, +0x36,0x2,0x30,0x2,0x2a,0x8,0xac,0xd,0x91,0xc,0xd2,0x8, +0x45,0xb,0xc2,0x11,0x30,0x13,0x66,0xf,0x52,0xd,0x96,0xf, +0x94,0x11,0xc0,0xe,0x93,0xa,0xf7,0xa,0xc2,0xd,0x82,0xc, +0xb4,0x7,0x11,0x7,0x9a,0xd,0x71,0x13,0x41,0x11,0xd0,0xa, +0xa0,0x8,0xf3,0xc,0xe0,0x11,0x29,0x11,0xab,0xc,0xb7,0xa, +0x95,0xc,0xbc,0xe,0x2b,0xf,0x23,0xf,0xc4,0xf,0xac,0xf, +0x3,0xe,0xc3,0xc,0xb8,0xc,0x34,0xc,0x1f,0xa,0x6b,0x6, +0x32,0x3,0x59,0x3,0x14,0x5,0x8,0x5,0x2e,0x4,0x60,0x4, +0x6c,0x5,0x33,0x6,0x37,0x6,0x1b,0x7,0x34,0x8,0xfe,0x5, +0x55,0x2,0x8a,0x1,0x69,0x2,0x34,0x2,0xcc,0xff,0x64,0xfb, +0x1a,0xf9,0x29,0xfc,0x46,0x0,0x79,0x0,0x9,0xff,0x23,0xff, +0xd8,0xfe,0xee,0xfc,0x81,0xfa,0x83,0xf7,0x2e,0xf5,0xd1,0xf3, +0x3a,0xf1,0x33,0xf0,0x9e,0xf3,0x86,0xf6,0x8c,0xf5,0xdf,0xf2, +0x8b,0xf1,0x1,0xf5,0xa1,0xfa,0xd6,0xfa,0xf9,0xf6,0x8d,0xf5, +0xb6,0xf6,0xc,0xf8,0xad,0xf7,0x50,0xf4,0x85,0xf1,0x69,0xf2, +0x4e,0xf3,0x8b,0xf1,0x1f,0xf0,0xf6,0xf0,0x14,0xf2,0x34,0xf1, +0xbb,0xef,0x3f,0xf1,0x90,0xf4,0x6a,0xf5,0x48,0xf4,0xcb,0xf3, +0xbf,0xf4,0x41,0xf7,0xe7,0xf8,0x3f,0xf8,0xf5,0xf8,0xc1,0xfb, +0x1d,0xfd,0x31,0xfd,0xdc,0xfc,0x27,0xfb,0x16,0xf9,0x2d,0xf6, +0xca,0xf0,0xe3,0xec,0xb1,0xed,0xbd,0xee,0xff,0xec,0xa8,0xeb, +0x14,0xed,0xdb,0xf0,0x90,0xf5,0x96,0xf8,0x19,0xf9,0x4f,0xf9, +0xbc,0xfa,0x61,0xfc,0x5e,0xfc,0x49,0xfa,0x81,0xf7,0x32,0xf5, +0x68,0xf4,0xb6,0xf5,0x55,0xf7,0xe2,0xf7,0xc8,0xf8,0xcd,0xfa, +0x7a,0xfc,0xb8,0xfc,0xdf,0xfb,0x5e,0xfa,0xc7,0xf8,0x83,0xf8, +0xa3,0xf9,0xa6,0xfa,0xec,0xfb,0x40,0xfe,0x6c,0x0,0xf,0x2, +0xc2,0x3,0x4e,0x5,0x2e,0x6,0x4e,0x5,0xfe,0x2,0x86,0x1, +0xd5,0x0,0xa3,0xff,0xcc,0xfe,0xb5,0xfe,0x36,0xff,0xbb,0x0, +0x62,0x2,0xc9,0x3,0x78,0x5,0x4,0x6,0x61,0x4,0x23,0x2, +0x25,0x1,0x90,0x1,0x14,0x1,0xd1,0xfe,0xef,0xfd,0x13,0xff, +0x99,0xff,0xc5,0xff,0x46,0x0,0x6d,0x0,0x53,0x1,0x36,0x3, +0x42,0x4,0xfa,0x3,0x5f,0x3,0x2f,0x3,0x8c,0x2,0xad,0x0, +0x1b,0xff,0x67,0xfe,0xb7,0xfd,0x58,0xfd,0xe3,0xfc,0x94,0xfc, +0xd1,0xfd,0xbd,0xfe,0xfe,0xfd,0xc1,0xfd,0x48,0xfe,0x7b,0xfe, +0xf,0xfe,0xbc,0xfc,0x4b,0xfc,0x6f,0xfd,0x28,0xfd,0xb4,0xfb, +0x74,0xfc,0xb,0xff,0x71,0x1,0x4b,0x3,0xeb,0x3,0x7e,0x3, +0x59,0x4,0x1b,0x6,0x67,0x5,0x45,0x3,0x3d,0x3,0x25,0x4, +0x52,0x4,0x23,0x4,0x6b,0x2,0x83,0x0,0x4e,0x1,0xeb,0x1, +0x3b,0x0,0xa,0xff,0xc0,0xfe,0x13,0xff,0x95,0x0,0xfd,0x0, +0xdc,0x0,0x1b,0x3,0x7c,0x5,0xac,0x6,0x9d,0x8,0x3c,0xa, +0xaa,0xa,0x4,0xa,0x77,0x7,0x93,0x5,0x84,0x5,0x8d,0x3, +0xe3,0xff,0x55,0xfd,0xb5,0xfb,0x3c,0xfb,0x21,0xfb,0x16,0xfa, +0x8d,0xfb,0x3a,0x1,0xfb,0x6,0xa,0xb,0x3f,0xe,0x4,0x10, +0x58,0x11,0xdc,0x12,0xea,0x11,0xa9,0xe,0x29,0xc,0x9c,0xa, +0x28,0x9,0x13,0x7,0xe0,0x3,0x94,0x2,0x4,0x4,0xf7,0x3, +0x96,0x2,0x82,0x2,0x27,0x2,0xb,0x1,0x53,0x0,0xf8,0xff, +0x24,0x1,0x8c,0x3,0x6b,0x5,0x24,0x8,0xdd,0xc,0x9d,0x11, +0x58,0x14,0x6f,0x14,0x6a,0x13,0xbd,0x12,0xc2,0x10,0x5a,0xc, +0x7f,0x7,0xa5,0x3,0xeb,0x0,0x2,0x0,0xe1,0xff,0x6c,0xfd, +0xd9,0xf9,0xb5,0xf9,0xd1,0xfb,0xa8,0xfb,0x43,0xfa,0xb4,0xfb, +0xc7,0xff,0x2a,0x3,0x99,0x5,0xc1,0x8,0xbb,0xa,0x65,0xa, +0xbb,0xa,0x5e,0xb,0xae,0x9,0x90,0x7,0x58,0x6,0xdc,0x3, +0xe0,0x0,0x2e,0x0,0x6a,0x0,0xb3,0xfe,0x70,0xfc,0x1e,0xfc, +0xc1,0xfc,0xae,0xfc,0x92,0xfb,0x23,0xfa,0xfd,0xf9,0xb5,0xfa, +0x1c,0xfb,0x4b,0xfc,0xe,0xfe,0x4c,0xff,0xcb,0x0,0x90,0x1, +0x4a,0x0,0x17,0xff,0xf,0xff,0x3c,0xfe,0xfc,0xfb,0xe3,0xf9, +0x79,0xf8,0x1d,0xf7,0x6f,0xf6,0x52,0xf6,0xb1,0xf5,0xf8,0xf5, +0x47,0xf7,0x64,0xf7,0x85,0xf7,0x99,0xf8,0x8e,0xf8,0xf7,0xf7, +0x45,0xf8,0x12,0xf9,0xde,0xf9,0x9b,0xf9,0xea,0xf8,0xa2,0xf9, +0x57,0xfa,0xd6,0xf9,0x4e,0xf9,0xe4,0xf8,0x68,0xf8,0x81,0xf7, +0xdb,0xf5,0x9b,0xf5,0x52,0xf7,0x58,0xf8,0x73,0xf8,0x25,0xf9, +0x51,0xfa,0xd9,0xfb,0x17,0xfd,0xd8,0xfc,0x18,0xfc,0x52,0xfc, +0xda,0xfc,0x5b,0xfc,0xe7,0xfa,0x75,0xfa,0x4,0xfc,0x0,0xfd, +0x9e,0xfb,0x71,0xfa,0xd8,0xfb,0x9b,0xfd,0x66,0xfc,0xc8,0xf9, +0x5d,0xf9,0x8f,0xfa,0x95,0xfb,0x18,0xfc,0x82,0xfb,0xd0,0xfb, +0x0,0xff,0xd5,0x1,0x1c,0x2,0xf8,0x1,0x92,0x2,0x6d,0x3, +0x77,0x3,0x25,0x2,0xc2,0x0,0xb6,0xff,0x3e,0xfe,0x97,0xfc, +0x79,0xfb,0x7b,0xfb,0xb5,0xfb,0xc7,0xfa,0x56,0xfa,0xc2,0xfb, +0x46,0xfd,0xb1,0xfd,0x5a,0xfd,0x4b,0xfd,0xcf,0xfe,0x5,0x1, +0x54,0x2,0x60,0x3,0xf0,0x4,0x9f,0x6,0xef,0x7,0xf6,0x7, +0x90,0x6,0x6a,0x5,0x2f,0x5,0xca,0x4,0x26,0x4,0xc9,0x3, +0x1c,0x3,0x9d,0x1,0x2f,0x0,0x16,0x0,0x93,0x0,0xb0,0xff, +0x29,0xfe,0x34,0xfe,0x68,0xff,0x77,0x0,0xb9,0x1,0x32,0x3, +0xaa,0x3,0x2,0x3,0x0,0x2,0x5d,0x0,0x84,0xfe,0x71,0xfd, +0xa5,0xfc,0xb0,0xfc,0x32,0xfe,0xab,0xff,0xb8,0x1,0x87,0x4, +0xf,0x5,0x6f,0x4,0x18,0x5,0x74,0x4,0x4,0x2,0xac,0x0, +0xa8,0x0,0xc4,0x0,0x6e,0x0,0xcf,0xff,0xf4,0xff,0x5f,0x1, +0x1d,0x3,0x37,0x3,0xb3,0x1,0x35,0x1,0xb7,0x1,0x54,0x1, +0xd6,0x0,0xbe,0x0,0xd,0x0,0xa1,0xff,0x8b,0x0,0x6c,0x1, +0x10,0x1,0xa6,0x0,0xf6,0x0,0x50,0x1,0xfa,0x1,0xc3,0x2, +0x5f,0x2,0x7a,0x1,0xce,0x0,0xc6,0xff,0x2a,0xff,0xb6,0xfe, +0xb,0xfd,0xf6,0xfb,0x64,0xfc,0x71,0xfc,0xf8,0xfc,0xa6,0xfe, +0x34,0xff,0x5a,0xff,0x89,0x0,0xd6,0x0,0x6b,0x0,0xd0,0x0, +0xfd,0x0,0xf9,0x0,0x43,0x1,0xb6,0x0,0x7,0x0,0x74,0x0, +0xe4,0x0,0x8e,0x0,0xf2,0xff,0x6a,0xff,0x29,0xff,0x8,0xff, +0x4c,0xfe,0xe3,0xfc,0x2c,0xfc,0xf4,0xfc,0x87,0xfe,0xcb,0xff, +0x2f,0xff,0x79,0xfd,0xf0,0xfd,0x7c,0xff,0xdd,0xfe,0xd8,0xfd, +0x44,0xfe,0xea,0xfe,0xa6,0xff,0x3f,0x0,0xe0,0xff,0x5d,0xff, +0x51,0xff,0x3a,0xff,0x13,0xff,0xf,0xff,0x1d,0xff,0xe,0xff, +0xf7,0xfe,0x61,0xff,0x77,0xff,0xa6,0xfd,0xfb,0xfb,0xe9,0xfc, +0x8e,0xfd,0xa6,0xfc,0x84,0xfd,0x9d,0xfe,0x9d,0xfd,0xe4,0xfe, +0x86,0x2,0x7c,0x2,0xa8,0xff,0xe2,0xfe,0x36,0xff,0x2a,0xfe, +0x9a,0xfc,0x6d,0xfb,0x74,0xfa,0x2e,0xfa,0xda,0xfa,0xf8,0xfb, +0xcb,0xfc,0x9d,0xfc,0xb8,0xfc,0xff,0xfd,0x85,0xfd,0x2e,0xfb, +0x8d,0xfa,0x8f,0xfa,0x1a,0xfa,0xaa,0xfb,0x5e,0xfd,0x31,0xfd, +0x15,0xfe,0xe1,0xff,0xb5,0x0,0x7c,0x1,0x45,0x1,0x7,0x0, +0x85,0x0,0x7a,0x1,0x96,0x0,0xd5,0xfe,0x8,0xfd,0x27,0xfc, +0xf,0xfc,0xca,0xfa,0xf7,0xf9,0x1,0xfb,0x47,0xfb,0x50,0xfb, +0x94,0xfc,0xee,0xfc,0x11,0xfd,0xcc,0xfe,0x8c,0xff,0x7e,0xfe, +0x5c,0xfe,0x42,0xff,0x6d,0xff,0xf9,0xfe,0xb4,0xfe,0x1c,0xff, +0x3,0x0,0xba,0xff,0x46,0xfe,0xc6,0xfd,0x99,0xfd,0x46,0xfd, +0xe6,0xfd,0x88,0xfd,0xf3,0xfc,0xa1,0xff,0xde,0x1,0x71,0x1, +0xc5,0x2,0xcd,0x4,0x10,0x5,0xd0,0x5,0xe1,0x5,0x3b,0x4, +0xb6,0x3,0x73,0x3,0x36,0x2,0x0,0x2,0x80,0x2,0xfc,0x2, +0x7c,0x3,0x32,0x2,0x39,0x0,0xe9,0xff,0xef,0xfe,0x6,0xfd, +0x1b,0xfd,0xa4,0xfd,0x77,0xfd,0xc,0xff,0x38,0x1,0xe9,0x1, +0xe5,0x2,0x69,0x4,0x2a,0x5,0xb0,0x5,0xc7,0x5,0x62,0x5, +0xaf,0x5,0x17,0x5,0x53,0x2,0x39,0x0,0x99,0xff,0xaa,0xfe, +0x28,0xfe,0x41,0xfe,0x8,0xfe,0xe4,0xfe,0xd2,0x0,0xea,0x1, +0x7e,0x2,0x92,0x2,0x9d,0x1,0x9b,0x1,0xbc,0x2,0x58,0x2, +0x99,0x1,0xf4,0x2,0xed,0x3,0x27,0x3,0x46,0x3,0x90,0x3, +0x5e,0x2,0xae,0x1,0x59,0x1,0x34,0x0,0xe1,0xff,0xdc,0xff, +0x98,0xfe,0x9f,0xfd,0xef,0xfd,0xb9,0xfe,0xec,0xff,0xa9,0x1, +0xd,0x3,0xb5,0x3,0x90,0x4,0xf,0x5,0x7,0x4,0x29,0x3, +0x18,0x3,0x73,0x1,0xd0,0xfe,0xe1,0xfe,0x19,0x1,0xe5,0x0, +0x7,0xff,0xbb,0xff,0xdb,0x0,0x1,0x0,0xee,0xff,0xce,0x0, +0x7c,0x1,0x2,0x2,0xc4,0x1,0xb2,0x2,0xff,0x3,0x76,0x2, +0x39,0x2,0x8,0x4,0xfa,0x1,0x9e,0xff,0x7a,0x1,0x29,0x2, +0x6b,0x0,0x6e,0x0,0xe3,0x0,0xfc,0xff,0x31,0x0,0x12,0x1, +0x46,0x0,0x21,0x0,0x6d,0x1,0xe8,0x0,0x67,0x0,0xb2,0x2, +0x38,0x4,0x39,0x3,0x99,0x2,0x7e,0x3,0x5d,0x4,0x9e,0x3, +0x19,0x2,0x8a,0x1,0xfd,0x0,0xd8,0xff,0xe,0x0,0x4c,0x1, +0xea,0x0,0xb6,0xff,0x70,0x0,0xc0,0x1,0x3d,0x1,0xcd,0x0, +0x3b,0x2,0x83,0x3,0xb6,0x3,0x82,0x4,0x32,0x5,0x20,0x4, +0x5d,0x3,0x95,0x3,0x84,0x2,0x7a,0x1,0xb0,0x1,0x8c,0x1, +0xb6,0x1,0x99,0x1,0x40,0x0,0x42,0x1,0xf2,0x3,0x29,0x4, +0x87,0x4,0x1,0x7,0xbb,0x7,0xea,0x5,0xc5,0x4,0x3d,0x5, +0xeb,0x4,0x51,0x3,0xc4,0x3,0x6d,0x6,0x9a,0x7,0x89,0x7, +0x94,0x8,0x27,0x9,0x82,0x7,0xc8,0x5,0xf4,0x4,0x25,0x2, +0x39,0xfe,0x62,0xfe,0xb7,0x0,0x1a,0xff,0xff,0xfc,0xb5,0xff, +0x8c,0x2,0x39,0x2,0xfd,0x1,0x50,0x1,0xb4,0xff,0x49,0x0, +0xf9,0xff,0x20,0xfb,0x94,0xf7,0x5c,0xf8,0xfb,0xf6,0x9e,0xf1, +0x58,0xee,0x52,0xee,0x50,0xed,0xd,0xeb,0xd1,0xe9,0xe1,0xe9, +0xe0,0xea,0xd9,0xeb,0x19,0xec,0x58,0xec,0xcf,0xec,0xbc,0xed, +0xca,0xee,0xe,0xee,0xef,0xec,0x5c,0xee,0x7d,0xef,0xd2,0xed, +0x23,0xed,0xbc,0xee,0x4b,0xef,0xce,0xee,0x93,0xee,0x86,0xed, +0x9c,0xec,0xff,0xec,0x66,0xec,0x8,0xeb,0x31,0xec,0x4,0xef, +0x15,0xf0,0x90,0xf0,0xa9,0xf3,0x54,0xf7,0x77,0xf8,0xf6,0xf8, +0xf0,0xf9,0x2f,0xfa,0x50,0xfa,0xc,0xfa,0x84,0xf8,0x74,0xf7, +0xf7,0xf7,0x77,0xf8,0x32,0xf7,0xc5,0xf5,0x94,0xf6,0x20,0xf7, +0x1e,0xf6,0x16,0xf7,0x84,0xf9,0x1a,0xfa,0x7d,0xf9,0x94,0xf9, +0x83,0xfa,0xf8,0xfa,0x9b,0xfa,0x9d,0xfa,0xb7,0xfa,0x1c,0xfb, +0x99,0xfc,0x2d,0xfd,0x12,0xfc,0x79,0xfb,0xd8,0xfb,0xba,0xfb, +0x53,0xfa,0xb8,0xf8,0x5e,0xf8,0x9,0xf9,0x4,0xfa,0xcd,0xfa, +0x92,0xfb,0xe,0xfd,0xb8,0xfe,0x87,0x0,0xa9,0x2,0x46,0x3, +0xbd,0x2,0xa9,0x3,0x5b,0x5,0x45,0x5,0xce,0x3,0x56,0x4, +0x5e,0x7,0xf,0x9,0x1,0x9,0x78,0xa,0x23,0xd,0x9e,0xe, +0x8c,0xf,0x54,0x11,0xf5,0x11,0xb,0x11,0xf1,0x12,0xf4,0x15, +0xfc,0x13,0xb0,0x11,0xe7,0x15,0xab,0x1a,0xf8,0x18,0x2b,0x16, +0x10,0x19,0xcd,0x1c,0x43,0x1b,0x9a,0x18,0xdc,0x18,0xad,0x19, +0x81,0x19,0x69,0x18,0x3b,0x16,0x51,0x14,0xfd,0x14,0x4e,0x17, +0x5d,0x16,0xcd,0x12,0x73,0x13,0x72,0x17,0xf4,0x17,0x93,0x14, +0xfe,0x11,0xab,0x12,0xcb,0x13,0xed,0x11,0xf9,0xe,0x7a,0xd, +0x71,0xd,0xbd,0xe,0xeb,0xe,0xa2,0xc,0xee,0xb,0x88,0xd, +0xd1,0xc,0xdf,0x9,0xa,0x8,0xc8,0x6,0x72,0x5,0xea,0x4, +0x9b,0x3,0x1c,0x1,0x49,0x0,0x43,0x1,0x3a,0x1,0x60,0xff, +0xc9,0xfd,0xb9,0xfd,0x70,0xfd,0x9a,0xfc,0xb0,0xfc,0xc6,0xfb, +0xc1,0xf8,0x54,0xf7,0x36,0xf8,0x14,0xf7,0xe,0xf3,0x83,0xf0, +0x69,0xf1,0xf7,0xf2,0xa7,0xf3,0xac,0xf4,0x9,0xf6,0x54,0xf6, +0xd,0xf6,0x3f,0xf7,0x4b,0xf8,0xc9,0xf6,0xea,0xf5,0x2c,0xf6, +0x6c,0xf3,0xa1,0xf0,0x90,0xf1,0x99,0xf2,0xbe,0xf2,0x94,0xf3, +0x1b,0xf3,0x77,0xf1,0x80,0xf1,0xe7,0xf3,0xc8,0xf6,0x30,0xf6, +0x57,0xf2,0xdd,0xf1,0xed,0xf5,0xa8,0xf8,0x51,0xf8,0x4e,0xf6, +0x5d,0xf4,0x98,0xf6,0x77,0xfb,0x65,0xfb,0xec,0xf5,0x38,0xf2, +0x28,0xf5,0xd1,0xf9,0xd1,0xf6,0xc1,0xf0,0x16,0xf3,0x62,0xf8, +0xac,0xf6,0x30,0xf2,0x39,0xf2,0x87,0xf7,0x59,0xfd,0x2,0xfd, +0x57,0xf7,0x83,0xf4,0xd3,0xf8,0xb0,0xff,0x4f,0x0,0xd9,0xf9, +0x99,0xf7,0xe0,0xfd,0xe,0x0,0x33,0xf9,0x44,0xf6,0x35,0xfb, +0xe2,0xfd,0xc7,0xfb,0x45,0xfa,0x78,0xfc,0xb4,0x0,0x15,0x1, +0x73,0xfd,0xb0,0xfc,0xd6,0x0,0xc1,0x6,0x77,0x8,0xe4,0x1, +0xf1,0xfc,0x50,0x3,0x95,0x9,0x33,0x5,0x43,0x1,0xb1,0x6, +0x22,0xc,0xb0,0x9,0x42,0x5,0x42,0x7,0xee,0xd,0x95,0xf, +0xb8,0xa,0xf9,0x7,0x44,0xa,0x4b,0xe,0xbd,0xf,0x56,0xa, +0x35,0x5,0x61,0xa,0x81,0x11,0xc0,0xf,0xcf,0xa,0xa9,0xb, +0x1e,0x11,0x5e,0x12,0x61,0xd,0x97,0xb,0x8c,0xe,0x5b,0xd, +0xe8,0x7,0x81,0x4,0xc2,0x4,0x2d,0x8,0x1b,0xb,0x1d,0x8, +0xcf,0x3,0xc8,0x6,0x5f,0xc,0xe4,0xb,0x50,0x8,0xa,0x8, +0x5c,0xa,0xdc,0x9,0x87,0x5,0x5b,0x4,0x8d,0x7,0x78,0x7, +0x7c,0x4,0x7,0x4,0x4f,0x5,0xda,0x6,0xb6,0x6,0x51,0x2, +0x43,0xfe,0x8a,0xff,0x16,0x2,0xa2,0x0,0xf1,0xfc,0xf7,0xfb, +0x41,0xfe,0xa0,0xff,0xed,0xfe,0x21,0x0,0x61,0x3,0xad,0x3, +0xd3,0x1,0x81,0x2,0xda,0x3,0x63,0x3,0xc0,0x2,0x47,0x1, +0xc8,0xfe,0xf7,0xfd,0x37,0xfe,0x40,0xfd,0xaf,0xfb,0x2c,0xfb, +0x90,0xfb,0x5,0xfb,0xae,0xf9,0xb2,0xf9,0x8e,0xfa,0x2e,0xfa, +0xb0,0xf8,0xd1,0xf7,0xd3,0xf8,0xe8,0xf9,0xb8,0xf7,0x1,0xf4, +0xaf,0xf3,0xef,0xf5,0xbc,0xf6,0xa5,0xf6,0x58,0xf7,0xd,0xf8, +0xb0,0xf8,0x53,0xf9,0xef,0xf9,0xa,0xfb,0xe9,0xfa,0x94,0xf9, +0xb0,0xfa,0x24,0xfd,0xbe,0xfd,0x2f,0xfe,0xb8,0xfe,0xa4,0xfd, +0xfd,0xfc,0x28,0xfd,0x3c,0xfb,0x3e,0xf8,0xfe,0xf6,0x68,0xf6, +0x26,0xf5,0xb9,0xf4,0xe6,0xf5,0x4f,0xf7,0x29,0xf8,0xe6,0xf8, +0x13,0xfa,0x67,0xfc,0xdf,0xff,0x7e,0x2,0xe9,0x2,0xce,0x2, +0xe5,0x3,0x12,0x5,0x9d,0x4,0xfe,0x2,0x8a,0x1,0xcc,0xff, +0x4b,0xfd,0x51,0xfb,0xc1,0xf9,0xdf,0xf7,0x7a,0xf7,0x1,0xf9, +0xf4,0xf9,0x46,0xfa,0x25,0xfc,0xd0,0xfe,0x52,0xff,0xe4,0xfd, +0x9c,0xfd,0x6f,0xfe,0x5,0xfe,0x1b,0xfd,0x56,0xfd,0xe2,0xfd, +0x41,0xfe,0x64,0xff,0x84,0x0,0x5f,0xff,0xad,0xfc,0x5c,0xfb, +0xc2,0xfa,0x19,0xf8,0xd6,0xf4,0x52,0xf4,0x65,0xf5,0x6d,0xf5, +0xfd,0xf5,0xc2,0xf8,0xa1,0xfb,0x88,0xfd,0x63,0xff,0xe4,0x0, +0xcb,0x1,0x6,0x2,0xb3,0x0,0x40,0xfe,0x40,0xfc,0x28,0xfb, +0xe1,0xf9,0x96,0xf7,0xef,0xf5,0xc9,0xf6,0x74,0xf8,0x9f,0xf8, +0xe4,0xf8,0x6e,0xfb,0xc5,0xfd,0xc3,0xfd,0x3a,0xfe,0xd1,0xff, +0x2b,0x0,0x8f,0x0,0x54,0x1,0x0,0x0,0x7f,0xfe,0x8a,0xff, +0xe7,0x0,0x92,0x0,0x1,0x0,0xbe,0x0,0x96,0x1,0x7b,0x0, +0x11,0xfe,0x8,0xfc,0x5a,0xfa,0xee,0xf8,0xb,0xf8,0x3f,0xf7, +0x28,0xf7,0x31,0xf9,0xd7,0xfb,0x27,0xfd,0x55,0xff,0x6,0x3, +0x9e,0x4,0xce,0x3,0xcd,0x2,0x14,0x1,0x85,0xfe,0x89,0xfc, +0x67,0xfb,0x7d,0xfa,0x9f,0xf9,0x4d,0xfa,0xbe,0xfc,0x4e,0xfe, +0xd5,0xfe,0x3,0x0,0xf2,0x0,0x11,0x1,0x9,0x1,0x9a,0x0, +0x3,0x0,0x18,0x0,0x92,0x0,0x6a,0x0,0xfd,0xff,0xcd,0x0, +0xe7,0x1,0x72,0x1,0xb4,0x0,0x11,0x1,0xc2,0x1,0x24,0x2, +0xfc,0x1,0x1a,0x1,0x2b,0x0,0x6d,0x0,0x3a,0x1,0x7c,0x0, +0xc6,0xff,0xc3,0x1,0x96,0x3,0xf4,0x2,0x44,0x3,0x62,0x5, +0x80,0x5,0x4b,0x3,0x41,0x2,0x96,0x2,0x2,0x2,0x2c,0x1, +0x32,0x1,0xe1,0x0,0x51,0x0,0x3a,0x1,0xe,0x3,0xac,0x3, +0xf7,0x3,0x20,0x6,0xea,0x7,0xba,0x6,0xdb,0x4,0x40,0x4, +0x25,0x4,0x1d,0x3,0x66,0x0,0x13,0xff,0x9,0x1,0x65,0x2, +0xfe,0x1,0x82,0x2,0x26,0x4,0xcb,0x5,0x2c,0x6,0x77,0x5, +0xe5,0x5,0x99,0x6,0x94,0x5,0x23,0x4,0x90,0x3,0x59,0x3, +0x8f,0x2,0x78,0x1,0x76,0x1,0xab,0x1,0x1b,0x1,0x6a,0x1, +0xfe,0x1,0x45,0x1,0x7a,0x1,0x1a,0x3,0xeb,0x2,0xb6,0x1, +0x8f,0x2,0xde,0x3,0x12,0x4,0xb6,0x4,0x4d,0x5,0x33,0x5, +0x3c,0x5,0x4b,0x4,0xcf,0x2,0xb8,0x2,0x59,0x2,0xe4,0x0, +0x49,0x0,0x3,0x0,0xf1,0xfe,0x0,0xfe,0x4d,0xfd,0x9e,0xfc, +0x8a,0xfd,0xe,0x0,0x92,0x1,0xc1,0x2,0x58,0x5,0xd7,0x6, +0x7b,0x6,0xe5,0x5,0xee,0x3,0x32,0x1,0xbd,0xff,0x27,0xfe, +0x31,0xfc,0xe4,0xfb,0x3b,0xfd,0x61,0xfe,0x59,0xfe,0xe8,0xfe, +0xa9,0x0,0xeb,0x0,0x5a,0x0,0x5a,0x1,0xe4,0x1,0xde,0x0, +0x6b,0x0,0xf1,0x0,0x7f,0x1,0xcf,0x1,0x36,0x2,0x47,0x3, +0x77,0x4,0xe0,0x4,0x98,0x4,0x52,0x3,0x2f,0x1,0x8b,0xff, +0xd5,0xfd,0x29,0xfb,0x1d,0xfa,0xaa,0xfb,0xe3,0xfc,0x40,0xfd, +0xa6,0xfe,0xd7,0x0,0x29,0x2,0x3e,0x2,0x22,0x2,0xd3,0x1, +0xd0,0x0,0x6f,0x0,0x76,0x0,0xe3,0xfe,0x10,0xfd,0x3d,0xfd, +0x19,0xfe,0xfe,0xfd,0x12,0xfe,0x9c,0xff,0x92,0x1,0xa,0x3, +0x41,0x4,0x9,0x5,0xa4,0x5,0xc5,0x5,0x9c,0x4,0xc9,0x3, +0xba,0x3,0x6c,0x2,0xdc,0x0,0xd1,0x0,0x58,0x1,0x6e,0x1, +0x24,0x1,0xac,0x1,0x89,0x3,0xe1,0x4,0xfc,0x4,0x23,0x5, +0x52,0x5,0x9a,0x4,0x44,0x3,0x33,0x2,0x56,0x1,0x7,0x1, +0x15,0x2,0x5,0x3,0x90,0x2,0x55,0x2,0xe3,0x2,0x7c,0x2, +0xd3,0x0,0xbe,0xff,0x99,0xff,0xcc,0xfe,0x9b,0xfd,0x27,0xfd, +0x57,0xfd,0x52,0xfe,0xb7,0xfe,0x7d,0xfd,0x35,0xfd,0x71,0xfe, +0x78,0xff,0x9e,0x0,0x52,0x1,0xf4,0x0,0xba,0x1,0xf5,0x3, +0xf4,0x3,0xa2,0x0,0x78,0xfe,0x8c,0xfe,0x23,0xfd,0x75,0xfb, +0x79,0xfb,0x7,0xfb,0x44,0xfb,0xd,0xfd,0xba,0xfd,0xcd,0xfd, +0xb,0xfe,0xd3,0xfd,0x48,0xfe,0x80,0xfe,0x18,0xfd,0xc,0xfc, +0x19,0xfc,0xe5,0xfb,0xe0,0xfb,0xaf,0xfc,0xd,0xfd,0xb9,0xfd, +0x86,0x0,0x45,0x2,0x2,0x1,0xae,0x0,0x3,0x1,0x17,0xff, +0xb7,0xfd,0x10,0xfe,0xcd,0xfc,0x9e,0xfa,0xb3,0xfa,0xd1,0xfb, +0xdf,0xfb,0x2b,0xfc,0xfe,0xfc,0x53,0xfd,0x19,0xfe,0x53,0xff, +0xf,0x0,0x68,0x0,0xcc,0x0,0x42,0x2,0xf2,0x2,0xed,0x0, +0xa,0x0,0x8a,0x0,0xd7,0xfe,0x5b,0xfd,0x18,0xfd,0xfc,0xfb, +0x7c,0xfb,0x89,0xfb,0x41,0xfb,0x65,0xfb,0x10,0xfb,0xfc,0xfa, +0x17,0xfc,0x22,0xfc,0xd2,0xfa,0x1b,0xfa,0xc7,0xfa,0xd8,0xfb, +0xd9,0xfb,0x24,0xfc,0xe2,0xfd,0x16,0xff,0x3b,0xff,0x69,0xff, +0x97,0xff,0x66,0xff,0x9e,0xfe,0xc6,0xfd,0x8a,0xfd,0x69,0xfd, +0xc0,0xfc,0xc,0xfc,0x39,0xfc,0x5e,0xfc,0x8a,0xfb,0xc0,0xfb, +0xe5,0xfc,0x2b,0xfc,0x1c,0xfb,0x6,0xfc,0xbe,0xfc,0xbd,0xfc, +0xc2,0xfd,0x3c,0xfe,0xb1,0xfd,0xac,0xfe,0x41,0xff,0xc8,0xfd, +0xf,0xfe,0x6,0xff,0xdd,0xfd,0xef,0xfd,0x67,0xfe,0x19,0xfd, +0xd,0xfe,0x91,0xff,0xde,0xfd,0x99,0xfd,0x99,0xff,0xf5,0xfe, +0x69,0xfd,0x40,0xfe,0xaa,0xfe,0xca,0xfd,0x0,0xff,0x6d,0x0, +0x6d,0xff,0x53,0x0,0x89,0x2,0xbc,0x0,0x22,0xff,0xea,0x0, +0xa0,0x0,0x3,0xff,0xa7,0xff,0xb2,0xff,0x4f,0xff,0x6b,0x0, +0x29,0x0,0x10,0xff,0x56,0xff,0x10,0xff,0x88,0xff,0x2c,0x1, +0x4,0x0,0x94,0xff,0x6f,0x2,0x86,0x1,0x79,0xfe,0xee,0xff, +0xf3,0x0,0x1,0xff,0x7b,0xff,0x62,0x0,0x46,0xfe,0x4e,0xfe, +0xaf,0x0,0x6b,0xfe,0x7f,0xfb,0xc4,0xfe,0x8d,0x0,0x9d,0xfd, +0xb8,0xfe,0xd7,0x1,0x35,0x0,0xaf,0xfe,0xae,0x0,0xab,0x0, +0xf1,0xfd,0x79,0xff,0xb,0x4,0x5f,0x3,0x5f,0x1,0x28,0x4, +0xdd,0x4,0x5d,0x1,0x29,0x0,0x4d,0x1,0x45,0x1,0xc7,0xff, +0xff,0xff,0x86,0x2,0x95,0x1,0x48,0xff,0x8c,0x2,0x6b,0x4, +0x5d,0x1,0xa9,0x3,0x4b,0x8,0x8b,0x5,0x8f,0x4,0x10,0xa, +0x4d,0x9,0xde,0x4,0x3c,0x8,0x1e,0xa,0x29,0x5,0x84,0x5, +0x8b,0x9,0x6c,0x7,0x3a,0x5,0xb9,0x8,0xc1,0xa,0x10,0x8, +0x37,0x7,0xc8,0x9,0x81,0x9,0x96,0x6,0xf6,0x6,0x17,0x9, +0xd5,0x7,0x95,0x5,0xf6,0x6,0x51,0x8,0x1f,0x6,0x61,0x6, +0xdf,0x9,0xf,0x9,0x65,0x6,0xda,0x7,0xc7,0x8,0xf8,0x5, +0x53,0x4,0x3e,0x5,0xa4,0x4,0x7,0x3,0xc,0x4,0xc8,0x4, +0xd1,0x2,0x5d,0x2,0x3e,0x3,0x18,0x2,0xb1,0x0,0x51,0x0, +0xdc,0xff,0x65,0xff,0xaa,0xfe,0x44,0xfd,0x28,0xfc,0x7b,0xfc, +0xaf,0xfc,0xb0,0xfa,0x9,0xf9,0xab,0xf9,0xfa,0xf9,0x29,0xf9, +0xf1,0xf7,0x72,0xf6,0xd6,0xf5,0x4c,0xf5,0xd5,0xf3,0x31,0xf3, +0x27,0xf3,0x97,0xf2,0xa1,0xf2,0x12,0xf3,0xe1,0xf2,0xc8,0xf2, +0x1d,0xf3,0x4b,0xf3,0x47,0xf3,0xb9,0xf2,0x5f,0xf1,0x78,0xf0, +0x6a,0xf0,0xd2,0xef,0xc8,0xee,0xa0,0xee,0x22,0xef,0x7a,0xef, +0xca,0xef,0x85,0xf0,0x72,0xf1,0x10,0xf2,0xa1,0xf2,0x6e,0xf3, +0x3b,0xf3,0x3c,0xf1,0xf9,0xef,0x39,0xf1,0xc5,0xf1,0x45,0xf0, +0x15,0xf0,0x88,0xf1,0x83,0xf2,0x36,0xf3,0xa5,0xf3,0x6c,0xf3, +0xed,0xf2,0x97,0xf2,0x93,0xf2,0x95,0xf1,0xdd,0xef,0x23,0xf0, +0xfb,0xf0,0xd7,0xef,0x9c,0xef,0xae,0xf1,0xa1,0xf2,0x25,0xf2, +0x2d,0xf3,0xfa,0xf4,0xd1,0xf4,0x9e,0xf3,0x5b,0xf3,0x84,0xf3, +0xea,0xf2,0x81,0xf1,0x6,0xf1,0x66,0xf2,0xbf,0xf3,0xbf,0xf4, +0xfe,0xf5,0x3f,0xf6,0xb7,0xf6,0xf8,0xf8,0xe2,0xfa,0x9b,0xfb, +0x8,0xfc,0xd,0xfc,0x58,0xfc,0xba,0xfd,0x8f,0xff,0x85,0x0, +0x22,0x0,0x2f,0x0,0x32,0x2,0x8f,0x4,0x7e,0x5,0xe9,0x5, +0x2a,0x7,0x8a,0x8,0x47,0x9,0xcc,0x9,0xf2,0x9,0x77,0xa, +0xb8,0xc,0x7b,0xe,0x8f,0xd,0x56,0xd,0xaf,0x10,0x3b,0x14, +0xca,0x14,0x92,0x14,0xc4,0x15,0x54,0x17,0xfd,0x17,0x4b,0x17, +0x21,0x16,0x49,0x16,0xbd,0x17,0xd4,0x18,0xbf,0x17,0xfb,0x15, +0xf,0x18,0x10,0x1b,0x54,0x18,0x1d,0x15,0x71,0x18,0x75,0x1c, +0x51,0x1b,0x66,0x18,0x87,0x17,0x12,0x19,0xb2,0x1b,0x47,0x1c, +0x40,0x19,0x5a,0x16,0x5b,0x17,0x15,0x19,0xcd,0x16,0x27,0x13, +0x99,0x13,0x92,0x16,0x6d,0x16,0x46,0x13,0x97,0x11,0x74,0x12, +0x33,0x13,0x7e,0x11,0x68,0xe,0xfc,0xd,0x32,0x11,0xbb,0x13, +0xcf,0x12,0xc4,0x10,0x8e,0x10,0x2e,0x12,0x55,0x13,0xfe,0x11, +0x5a,0xf,0xed,0xd,0x14,0xd,0x6e,0xb,0xc4,0x8,0x83,0x5, +0xb7,0x5,0x64,0x9,0x1f,0x9,0x4e,0x7,0xe6,0xa,0xdb,0xd, +0x8b,0xc,0xa9,0xb,0xf3,0x9,0x57,0x7,0xca,0x6,0xa3,0x5, +0x7c,0x3,0x12,0x2,0xec,0xff,0x8f,0xfe,0x23,0xfe,0xe0,0xfb, +0x51,0xfb,0x31,0xfe,0x6e,0xfe,0xf5,0xfb,0x40,0xfc,0xbd,0xfd, +0x68,0xfc,0xba,0xf9,0x16,0xf8,0xc2,0xf7,0xc6,0xf8,0x7f,0xfa, +0xab,0xfb,0x86,0xfb,0xf5,0xfa,0x62,0xfb,0x4e,0xfb,0xb,0xfa, +0x31,0xfa,0x7f,0xfa,0x23,0xf8,0xa8,0xf4,0xf9,0xf0,0x39,0xee, +0x63,0xee,0x2a,0xee,0x34,0xec,0xb,0xed,0x7c,0xf0,0xe8,0xf2, +0xd8,0xf3,0xb2,0xf3,0xc,0xf4,0xa7,0xf5,0x22,0xf5,0x4e,0xf2, +0x95,0xf1,0xfa,0xf1,0xa0,0xef,0xf1,0xec,0xa6,0xec,0x7,0xed, +0x56,0xee,0x33,0xf0,0xce,0xef,0xe3,0xef,0x6d,0xf2,0x57,0xf2, +0xbd,0xef,0x56,0xef,0xbc,0xef,0x2a,0xef,0x28,0xef,0x97,0xef, +0x87,0xf0,0x18,0xf3,0x23,0xf6,0x91,0xf7,0x16,0xf8,0x50,0xfa, +0x57,0xfd,0x95,0xfd,0xc3,0xfb,0xcf,0xfa,0x6f,0xfa,0xad,0xf9, +0xbd,0xf8,0x82,0xf8,0x15,0xfa,0xcf,0xfb,0xbf,0xfb,0xd9,0xfb, +0xff,0xfc,0xc4,0xfd,0xf4,0xfe,0xb6,0xff,0xd7,0xfd,0x5e,0xfc, +0x42,0xfd,0xc4,0xfc,0x5b,0xfa,0x20,0xf9,0x8d,0xf9,0xcd,0xfa, +0xd,0xfc,0x12,0xfd,0xf2,0xfe,0x7d,0x0,0x60,0xff,0x2c,0xfd, +0x93,0xfc,0xcd,0xfc,0xd7,0xfb,0x58,0xfa,0x3c,0xfa,0x4d,0xfb, +0x1b,0xfc,0x63,0xfc,0x1,0xfd,0x5a,0xfe,0x93,0xff,0x28,0x0, +0x5c,0x0,0x57,0x0,0x9a,0x0,0x98,0x0,0x7e,0xff,0xec,0xfe, +0xf0,0xfe,0xf,0xfe,0xb0,0xfd,0xaa,0xfd,0x64,0xfc,0xf2,0xfb, +0x1f,0xfd,0xc1,0xfd,0x1c,0xfe,0xb2,0xff,0x71,0x1,0x65,0x1, +0x1c,0x1,0xac,0x2,0xc2,0x3,0x74,0x3,0x83,0x3,0x3d,0x3, +0xc0,0x2,0x6f,0x2,0x57,0x1,0xfc,0x0,0xfd,0x0,0x29,0x0, +0x4e,0x1,0xe9,0x2,0xb3,0x1,0xb9,0x0,0xe8,0x0,0xd4,0xff, +0x7e,0xfe,0x91,0xfe,0xe0,0xff,0xca,0x0,0x92,0x0,0xf8,0x0, +0xbf,0x1,0x53,0x1,0x67,0x0,0x9b,0xff,0xa,0xff,0xcb,0xfe, +0x5d,0xfe,0xe0,0xfd,0x4a,0xfd,0x8b,0xfc,0xfe,0xfb,0x17,0xfb, +0xff,0xf9,0x64,0xf9,0xd7,0xf8,0xe,0xf8,0xe,0xf7,0x9,0xf7, +0xfb,0xf8,0x9d,0xfa,0x16,0xfb,0x3a,0xfc,0x7e,0xfd,0xa,0xfe, +0x73,0xfe,0xa9,0xfe,0xbf,0xfe,0xbd,0xfe,0x68,0xfe,0xd2,0xfd, +0x40,0xfd,0x50,0xfd,0x66,0xfd,0x4c,0xfd,0x99,0xfe,0x6c,0xff, +0xc6,0xfd,0x64,0xfd,0xdc,0xfe,0x20,0xfe,0x9c,0xfc,0x4b,0xfd, +0x22,0xfe,0x84,0xfe,0x76,0x0,0x68,0x2,0x6,0x3,0x8c,0x4, +0x40,0x6,0x17,0x6,0x51,0x5,0xc6,0x3,0xd9,0x1,0xf3,0x1, +0x67,0x1,0xd2,0xfe,0x3d,0xfe,0x44,0xfe,0xbe,0xfc,0x29,0xfd, +0x94,0xfe,0xb6,0xfe,0x93,0x0,0x33,0x3,0x7f,0x3,0xb8,0x3, +0x20,0x4,0xf6,0x2,0xb0,0x2,0x76,0x3,0x95,0x2,0x98,0x2, +0x49,0x5,0x16,0x6,0x24,0x4,0xcb,0x3,0x25,0x4,0xd2,0x1, +0x16,0xff,0xf1,0xfd,0x70,0xfc,0xe8,0xfa,0x9c,0xfa,0xa3,0xfa, +0x6d,0xfb,0xe,0xfd,0x31,0xfe,0x9a,0xff,0x1c,0x1,0x57,0x1, +0xc7,0x1,0x1b,0x3,0xef,0x3,0x5,0x4,0x2f,0x3,0x49,0x2, +0xf4,0x2,0x57,0x3,0x51,0x1,0xfe,0xfe,0xf3,0xfd,0x5d,0xfc, +0xb5,0xfa,0xad,0xfb,0x40,0xfd,0x84,0xfd,0x28,0x0,0xb6,0x4, +0x78,0x6,0xf5,0x6,0x98,0x8,0x2,0x9,0xe0,0x7,0x45,0x7, +0x46,0x7,0x5a,0x7,0xdc,0x7,0xdf,0x8,0xb5,0x9,0xac,0x9, +0x91,0x8,0x32,0x7,0x20,0x6,0x19,0x4,0x91,0x1,0xf8,0x0, +0x89,0x1,0xb9,0x1,0x5f,0x2,0x6,0x4,0x83,0x6,0x2e,0x8, +0xb9,0x7,0xf7,0x7,0x13,0xa,0x7c,0xa,0xd7,0x7,0xa,0x5, +0xd0,0x3,0xba,0x1,0x9f,0xfe,0xc3,0xfd,0xb2,0xfc,0x37,0xfa, +0x15,0xfb,0x0,0xfc,0x6,0xfa,0x8f,0xfb,0xb7,0xfe,0xbd,0xfe, +0xcd,0xff,0x79,0x1,0xa2,0x1,0x15,0x3,0x8a,0x3,0x5b,0x1, +0x5f,0x0,0xe6,0x0,0xd0,0x1,0xc9,0x2,0x83,0x2,0xfe,0x2, +0x80,0x5,0xf,0x6,0xfd,0x3,0x5f,0x3,0xb9,0x3,0xce,0x1, +0xc0,0xff,0xcf,0xff,0xb8,0xff,0xaf,0x0,0x19,0x4,0xfb,0x4, +0x3d,0x4,0xc1,0x7,0x56,0xb,0xad,0xa,0x5,0xa,0x15,0xa, +0x56,0x9,0x91,0x8,0xfc,0x5,0x1,0x3,0x23,0x3,0xeb,0x2, +0xd1,0x0,0x55,0x0,0x18,0x1,0x66,0x2,0xa1,0x3,0x2f,0x2, +0xc2,0x0,0xf9,0x1,0x32,0x2,0xd0,0x0,0xf6,0xff,0x75,0xff, +0x1d,0x0,0x89,0x1,0xd2,0x0,0x2a,0xfe,0xad,0xfc,0x71,0xfd, +0x97,0xfd,0x54,0xfb,0x53,0xf9,0xa2,0xf8,0xf3,0xf7,0xc7,0xf7, +0xd8,0xf6,0x17,0xf4,0x54,0xf3,0x26,0xf5,0x14,0xf5,0x8d,0xf3, +0x46,0xf4,0x2a,0xf6,0xab,0xf6,0x70,0xf6,0xf7,0xf5,0xea,0xf4, +0xaf,0xf4,0x38,0xf5,0x34,0xf4,0x3e,0xf2,0xdd,0xf1,0xa,0xf3, +0x29,0xf4,0x1a,0xf4,0x9e,0xf3,0x86,0xf4,0xb6,0xf5,0x6e,0xf5, +0x7b,0xf5,0x36,0xf6,0x81,0xf5,0xc5,0xf4,0xf,0xf5,0xe7,0xf3, +0x6,0xf3,0xdb,0xf5,0xb7,0xf8,0xa,0xf8,0x92,0xf7,0xbe,0xf9, +0x7e,0xfb,0x3d,0xfb,0x39,0xfa,0x5f,0xf9,0x60,0xf9,0x50,0xf9, +0x90,0xf7,0x43,0xf6,0x31,0xf7,0xa9,0xf7,0x9,0xf7,0x56,0xf7, +0x3f,0xf8,0xd7,0xf9,0x52,0xfc,0x8d,0xfc,0x52,0xfa,0xa9,0xfa, +0xa1,0xfd,0xbe,0xfd,0x73,0xfb,0x56,0xfb,0x63,0xfc,0x49,0xfc, +0x56,0xfc,0xed,0xfc,0xb5,0xfd,0xae,0xfe,0x8d,0xfe,0xee,0xfd, +0x5d,0xfe,0x8f,0xfe,0xf,0xfe,0xff,0xfd,0xd6,0xfd,0xe6,0xfd, +0xf0,0xff,0x56,0x2,0x49,0x2,0xe9,0x1,0xf9,0x3,0xb6,0x5, +0xff,0x4,0x7b,0x4,0xa0,0x5,0x0,0x7,0xe6,0x6,0xfb,0x4, +0xf5,0x3,0xb9,0x5,0x53,0x7,0x8a,0x6,0x89,0x5,0xd,0x6, +0xde,0x7,0x76,0xa,0x6d,0xb,0xa1,0x9,0xb4,0x9,0xb9,0xd, +0xe6,0xf,0xc1,0xd,0x6b,0xc,0x7f,0xe,0x3f,0x10,0x9f,0xf, +0xec,0xf,0xaf,0x11,0x40,0x12,0x43,0x13,0x8c,0x14,0x76,0x12, +0x7c,0x10,0xfb,0x12,0xc9,0x15,0x33,0x14,0x67,0x10,0xf0,0x10, +0xba,0x15,0x4,0x16,0x75,0x11,0x82,0x10,0xc,0x13,0xc1,0x13, +0xa4,0x12,0xc5,0x10,0xfe,0xd,0xa0,0xd,0xb6,0x11,0x67,0x12, +0xe,0xb,0x82,0x7,0x65,0xd,0xd7,0xe,0x7a,0x6,0xa8,0x1, +0x91,0x6,0x6b,0xb,0xee,0x9,0x95,0x7,0xcb,0x8,0x1,0xc, +0xbe,0xe,0xb1,0xd,0xa6,0x8,0x64,0x5,0xdc,0x6,0x14,0x8, +0x9a,0x2,0x52,0xfa,0x0,0xfb,0x6c,0x1,0xd6,0xfe,0xb3,0xf6, +0x8d,0xf6,0x3e,0xfc,0xc3,0xfe,0x9b,0xfb,0xb7,0xf5,0xb8,0xf5, +0xba,0xfd,0xb7,0x0,0x75,0xfa,0x39,0xf8,0x79,0xfd,0xc6,0x0, +0xf,0xff,0x24,0xfa,0xf,0xf5,0xfc,0xf4,0x75,0xf7,0x23,0xf4, +0x5c,0xec,0xcc,0xea,0x6c,0xf1,0xdb,0xf3,0x20,0xed,0xca,0xe9, +0xa8,0xef,0x2d,0xf4,0xc7,0xf1,0xa4,0xef,0x78,0xf2,0x40,0xf5, +0x8d,0xf4,0xce,0xf3,0xd9,0xf3,0xaa,0xf3,0x5e,0xf5,0x70,0xf6, +0x46,0xf2,0xb5,0xed,0xfa,0xee,0x35,0xf1,0xbf,0xed,0x18,0xe9, +0x2d,0xea,0x68,0xee,0x4a,0xf0,0xfc,0xee,0xc1,0xec,0x21,0xed, +0xe6,0xef,0x6b,0xf0,0xfe,0xee,0xf6,0xef,0xcc,0xf1,0xf9,0xf0, +0x9a,0xef,0xb6,0xef,0xa4,0xef,0x98,0xef,0x32,0xf0,0xbd,0xef, +0xe,0xef,0x21,0xf0,0xd4,0xf1,0x62,0xf2,0xaa,0xf1,0xd7,0xf1, +0xdf,0xf3,0x30,0xf4,0x7a,0xf2,0x2f,0xf3,0xaa,0xf5,0x7b,0xf6, +0x7f,0xf6,0xe9,0xf7,0x6a,0xfa,0x1d,0xfc,0x8f,0xfc,0x75,0xfc, +0x55,0xfb,0xd6,0xf9,0x69,0xf9,0x42,0xf9,0x56,0xf9,0xaf,0xfa, +0x5b,0xfc,0x15,0xfe,0x2a,0x1,0xe7,0x3,0xb1,0x3,0xf4,0x2, +0x3d,0x4,0xde,0x4,0x9e,0x4,0x40,0x6,0x36,0x7,0xaf,0x5, +0x96,0x5,0x8,0x7,0x9f,0x6,0x97,0x5,0x9f,0x6,0xd8,0x8, +0xe6,0x9,0x30,0x9,0xf,0x9,0x24,0xb,0x86,0xc,0xe1,0xb, +0x80,0xc,0xf,0xe,0x85,0xe,0x13,0x10,0x25,0x11,0x6b,0xe, +0x87,0xc,0x33,0xe,0xcd,0xe,0x3,0xd,0xd2,0xb,0x7f,0xc, +0x60,0xd,0xb3,0xc,0xae,0xb,0x31,0xb,0x8e,0xa,0x9b,0xa, +0x8f,0xb,0x9b,0xc,0x8d,0xd,0xf8,0xd,0xcf,0xe,0xf6,0xf, +0xb0,0xe,0xb8,0xb,0xf5,0x9,0x82,0x9,0xd3,0x9,0x7f,0xa, +0x8,0xb,0xd9,0xb,0x58,0xd,0xc4,0xe,0x2a,0xe,0x85,0xb, +0xab,0x9,0xe1,0x9,0x97,0xa,0x6d,0x9,0x37,0x7,0xd8,0x7, +0x45,0x9,0xc0,0x7,0x25,0x7,0x7c,0x8,0x29,0x8,0xef,0x7, +0x6,0x9,0x80,0x9,0x6,0xa,0xe0,0xa,0xd9,0xa,0x2c,0x9, +0xf2,0x6,0x60,0x7,0xb5,0x8,0x36,0x6,0x6c,0x2,0xc3,0x1, +0x97,0x2,0x6c,0x1,0x6d,0xfe,0x31,0xfd,0x87,0xfe,0x5b,0xff, +0xa8,0xfe,0x88,0xfd,0x44,0xfd,0x14,0xfe,0x90,0xfd,0x5a,0xfb, +0xf2,0xf9,0xb,0xfa,0x3d,0xfb,0x56,0xfb,0x70,0xf8,0xbe,0xf6, +0x5,0xf9,0x63,0xfa,0x7a,0xf8,0x51,0xf7,0x5,0xf9,0xdc,0xfa, +0x83,0xfa,0x7e,0xf9,0xe4,0xf9,0xda,0xfa,0xa7,0xfa,0x3c,0xf9, +0x52,0xf7,0xb6,0xf5,0x62,0xf5,0x9f,0xf5,0x9e,0xf4,0x90,0xf3, +0xa0,0xf4,0x63,0xf6,0x95,0xf6,0xec,0xf5,0xa2,0xf6,0xb4,0xf8, +0xd0,0xf9,0xad,0xf9,0x78,0xf9,0x6f,0xf9,0x5a,0xfa,0x36,0xfb, +0x12,0xfa,0xeb,0xf8,0xfb,0xf8,0xf2,0xf8,0x7d,0xf9,0x6a,0xfa, +0x91,0xfa,0xd8,0xfa,0x3e,0xfb,0x56,0xfb,0x3f,0xfb,0xb8,0xfa, +0x1,0xfb,0xc6,0xfb,0xa5,0xfa,0x51,0xf9,0xe4,0xf9,0x94,0xfa, +0x9a,0xfa,0xd9,0xfa,0xa3,0xfb,0xf9,0xfc,0xfc,0xfd,0x41,0xfe, +0x44,0xfe,0x62,0xfd,0xf8,0xfb,0x54,0xfc,0x7b,0xfd,0x11,0xfc, +0xf6,0xf9,0x3b,0xfb,0x2f,0xfd,0xa7,0xfb,0x8f,0xf9,0x59,0xfa, +0x7a,0xfb,0xe5,0xfa,0xcd,0xfa,0x9,0xfc,0xcd,0xfc,0x15,0xfd, +0x4,0xfe,0xa1,0xfe,0x5,0xfe,0x96,0xfd,0xe5,0xfd,0xae,0xfd, +0x68,0xfd,0x4c,0xfe,0x46,0xff,0x60,0xff,0xeb,0xfe,0x70,0xfe, +0xf6,0xfe,0xbc,0xff,0x48,0xff,0xe4,0xfe,0x2e,0xff,0x46,0xff, +0x49,0xff,0x5,0xff,0xc8,0xff,0x6a,0x2,0x33,0x3,0xcd,0x1, +0xc3,0x2,0x45,0x5,0xf3,0x4,0x92,0x2,0x11,0x2,0x6e,0x2, +0x19,0x0,0x21,0xfe,0xc,0xff,0x5a,0xfe,0xbb,0xfc,0x7e,0xfe, +0x88,0x0,0x0,0x0,0x6c,0xff,0x69,0x0,0x51,0x1,0xa3,0xff, +0x58,0xfd,0x1d,0xfe,0x55,0xff,0x52,0xfe,0xc0,0xfd,0x96,0xfe, +0x6c,0xff,0x81,0x0,0x8f,0x1,0x41,0x1,0x91,0x0,0xd,0x1, +0x37,0x1,0x42,0x0,0xf2,0xff,0xbe,0xff,0xd2,0xfe,0xd6,0xfe, +0x53,0xff,0xb4,0xfe,0x44,0xfe,0xe3,0xfe,0x34,0xff,0xe2,0xfe, +0x1f,0xff,0xca,0xff,0xd7,0xff,0x73,0xff,0x1,0xff,0x84,0xfe, +0x0,0xfe,0x66,0xfd,0x8a,0xfd,0x28,0xfe,0x7f,0xfd,0xc1,0xfc, +0x7c,0xfd,0xf0,0xfd,0xcb,0xfd,0x16,0xfe,0xdf,0xfd,0x75,0xfd, +0xbd,0xfe,0xdf,0x0,0xb5,0x1,0x87,0x1,0x64,0x1,0x39,0x1, +0xee,0x0,0xe2,0xff,0xa4,0xfd,0xf1,0xfb,0x55,0xfc,0xf6,0xfd, +0x9d,0xfe,0xe7,0xfd,0xc3,0xfe,0x39,0x1,0x84,0x1,0x7b,0x0, +0xd9,0x0,0x4b,0x1,0xc0,0x0,0x9,0x0,0xd1,0xff,0x13,0x0, +0xe9,0xff,0x4d,0xff,0x8e,0xfe,0xa9,0xfd,0xa5,0xfd,0x17,0xfe, +0xac,0xfd,0xc9,0xfd,0xa5,0xff,0x97,0x1,0xff,0x1,0xda,0x1, +0x17,0x2,0x93,0x1,0x68,0x1,0xa4,0x2,0x12,0x2,0x35,0x0, +0x7b,0x0,0xe0,0x0,0x3,0x0,0x29,0x0,0x68,0x1,0x83,0x2, +0xd6,0x2,0x96,0x2,0x67,0x2,0xb9,0x1,0x5f,0x0,0xa8,0xfe, +0xbd,0xfc,0x33,0xfc,0x3d,0xfd,0x3e,0xfe,0xae,0xff,0x60,0x2, +0x9c,0x5,0x49,0x8,0x4c,0x9,0xf0,0x8,0x40,0x8,0x7d,0x6, +0x8d,0x3,0x2,0x2,0x3f,0x2,0x7f,0x1,0x18,0x0,0xeb,0xff, +0xa0,0xff,0xfd,0xfe,0x93,0xff,0xdc,0x0,0x34,0x2,0xa5,0x3, +0xaf,0x4,0xf6,0x4,0xd5,0x4,0x56,0x5,0x11,0x5,0xba,0x2, +0x2a,0x2,0xb5,0x3,0x2d,0x3,0x1a,0x2,0xf3,0x1,0x4b,0x1, +0x76,0x2,0xdc,0x4,0x50,0x4,0x7d,0x2,0x22,0x2,0x59,0x1, +0xee,0xfe,0xac,0xfc,0xce,0xfb,0xee,0xfb,0x20,0xfd,0x6a,0xff, +0xdc,0x1,0x4a,0x4,0x8d,0x6,0x2,0x8,0x87,0x8,0xa4,0x7, +0x16,0x6,0x36,0x5,0x54,0x3,0xd,0x0,0x14,0xff,0x9b,0x0, +0xf9,0x0,0xcc,0x0,0x45,0x2,0xa8,0x3,0x7e,0x4,0xf8,0x5, +0x6b,0x6,0x0,0x6,0x84,0x6,0x37,0x6,0x4d,0x4,0x8b,0x2, +0x9a,0x1,0x53,0x1,0xab,0x0,0xc5,0xff,0x9f,0x0,0x67,0x2, +0x44,0x3,0xda,0x3,0xec,0x4,0xec,0x5,0xdf,0x5,0xc8,0x4, +0x20,0x3,0x85,0x1,0xb5,0x0,0x16,0xff,0x39,0xfd,0x36,0xfe, +0xf3,0xfe,0x9b,0xfe,0x60,0x1,0x24,0x3,0xff,0x1,0xeb,0x2, +0x37,0x3,0x7a,0x1,0xe0,0x0,0xec,0xfe,0xd2,0xfc,0xb7,0xfd, +0x18,0xfe,0xf7,0xfd,0x24,0xff,0x3d,0xff,0x84,0xfe,0x7c,0xfe, +0xcc,0xfe,0xcb,0xfe,0x47,0xfd,0xd2,0xfb,0x6,0xfc,0x7,0xfb, +0x12,0xf9,0xa2,0xf9,0xd4,0xfa,0x93,0xfa,0x6f,0xfb,0x36,0xfd, +0x5d,0xfd,0xd6,0xfc,0x41,0xfd,0x45,0xfe,0x6a,0xfe,0x98,0xfd, +0xa0,0xfe,0x16,0x0,0x7c,0xfe,0x40,0xfe,0xc5,0x0,0x4,0x0, +0x18,0xfe,0x7c,0xff,0x87,0x0,0x5b,0xff,0x80,0xfe,0xa6,0xfe, +0x5c,0xfe,0x80,0xfd,0x55,0xfe,0x77,0xff,0xa3,0xfd,0x8b,0xfc, +0xe8,0xfe,0xc6,0xff,0xe7,0xfd,0xbb,0xfe,0xb,0x2,0xaf,0x1, +0xb4,0xff,0x19,0x2,0xf8,0x3,0x3b,0x1,0xf2,0xff,0xea,0x0, +0xb3,0xff,0xff,0xfd,0x91,0xfe,0x11,0xff,0xa7,0xfc,0x18,0xfb, +0x71,0xfe,0xf3,0xff,0x52,0xfc,0xda,0xfc,0x8c,0x1,0x37,0x1, +0x3d,0xff,0x4f,0x1,0xd1,0x1,0x66,0xff,0xf7,0xff,0x60,0x1, +0xf,0xff,0xe8,0xfd,0x77,0x1,0x1f,0x3,0x1f,0xff,0xfc,0xfc, +0x3e,0x0,0x9b,0x0,0x7d,0xfc,0xa6,0xfb,0xac,0xfc,0xff,0xfa, +0x47,0xfa,0xfb,0xfa,0x69,0xf9,0xe3,0xf7,0xab,0xf9,0xb5,0xfb, +0xb8,0xfa,0x37,0xfa,0xc5,0xfc,0x35,0xfd,0x88,0xfa,0xc9,0xfa, +0xe3,0xfc,0x2a,0xfb,0x11,0xf8,0x4f,0xf8,0x73,0xf8,0x95,0xf5, +0xf9,0xf4,0x33,0xf7,0xa7,0xf6,0xc8,0xf5,0x2b,0xf8,0x72,0xf9, +0x33,0xf8,0x26,0xf8,0xb2,0xf9,0xd0,0xf9,0x2b,0xf8,0xad,0xf8, +0xdd,0xfa,0x26,0xfa,0xb0,0xf8,0x9d,0xf9,0x4f,0xfa,0x99,0xfa, +0x65,0xfb,0xac,0xfa,0xa1,0xf9,0x36,0xfa,0x1f,0xfa,0x9b,0xf8, +0x65,0xf7,0xaa,0xf6,0xe2,0xf6,0xca,0xf7,0x3c,0xf7,0xc1,0xf6, +0x12,0xf9,0x79,0xfb,0x24,0xfb,0xe5,0xf9,0x34,0xfa,0x49,0xfb, +0x7f,0xfa,0xf8,0xf8,0xff,0xf8,0x86,0xf8,0x88,0xf7,0xe2,0xf7, +0xa7,0xf7,0x54,0xf7,0x9d,0xf8,0xd8,0xf8,0xe5,0xf7,0x7f,0xf8, +0xd,0xfa,0x83,0xfa,0x9b,0xf9,0x51,0xf9,0x34,0xfa,0xc,0xfa, +0xb8,0xf9,0x56,0xfb,0xf6,0xfc,0x9,0xfd,0x6,0xfd,0x23,0xfe, +0x95,0xff,0xd,0x0,0x5c,0x0,0x58,0x1,0x48,0x1,0xb9,0xff, +0x7e,0xff,0x9d,0x1,0x77,0x2,0x54,0x0,0xd,0x0,0xfe,0x3, +0xc2,0x6,0x2d,0x6,0x6b,0x7,0xad,0xb,0xd,0xe,0xe1,0xd, +0x51,0xe,0xc9,0xe,0x15,0xe,0x86,0xd,0xee,0xc,0x3e,0xb, +0x27,0xa,0x56,0xc,0xd5,0xf,0x48,0x10,0x6b,0x10,0xc7,0x13, +0x6a,0x15,0xd6,0x13,0xe3,0x13,0x6c,0x14,0xad,0x12,0xe2,0x10, +0x60,0x10,0x2c,0x10,0x1,0x10,0xdc,0x10,0x56,0x12,0x4b,0x11, +0x2e,0xe,0xb3,0xd,0x6b,0xf,0x73,0xe,0x1e,0xb,0xa1,0x9, +0x25,0xa,0x41,0xa,0xc3,0x9,0x50,0x9,0x60,0x9,0x6d,0x9, +0xc0,0x7,0xd1,0x5,0x58,0x5,0x54,0x4,0xcd,0x3,0x68,0x5, +0x87,0x5,0x2c,0x4,0x1c,0x5,0x45,0x6,0x1a,0x5,0x1c,0x4, +0x72,0x3,0x28,0x0,0x39,0xfc,0x55,0xfc,0x54,0xfe,0x7d,0xfc, +0xd6,0xf8,0xee,0xf9,0x21,0xfe,0x9e,0xfe,0x7b,0xfc,0xd7,0xfc, +0x14,0xfe,0x2f,0xfd,0xa,0xfc,0x76,0xfc,0x23,0xfd,0x47,0xfc, +0x19,0xfa,0xe7,0xf7,0xdc,0xf6,0x32,0xf8,0x75,0xf9,0x8f,0xf6, +0xb4,0xf2,0xb5,0xf2,0x2e,0xf4,0xae,0xf3,0xb8,0xf1,0x41,0xf0, +0x57,0xf0,0x59,0xf1,0xe0,0xf1,0x73,0xf0,0x1e,0xef,0x9,0xf2, +0x4c,0xf5,0xdd,0xf2,0x6a,0xef,0xeb,0xf0,0x86,0xf4,0xe6,0xf3, +0xc0,0xed,0xf3,0xe9,0x7b,0xed,0x1,0xf0,0xd0,0xeb,0x7e,0xe7, +0x20,0xe8,0x36,0xeb,0x5f,0xec,0x3a,0xea,0xa4,0xe9,0x2a,0xee, +0x8f,0xf1,0x21,0xef,0xb2,0xec,0xd9,0xee,0xa8,0xf2,0x44,0xf3, +0x69,0xee,0xbf,0xe9,0x9a,0xec,0xe0,0xf1,0x82,0xf0,0xae,0xea, +0x20,0xe8,0x89,0xeb,0xba,0xf0,0x51,0xf2,0x3a,0xf1,0x8c,0xf2, +0x3f,0xf8,0xcf,0xfe,0x5a,0x0,0x62,0xfd,0x21,0xfe,0x20,0x4, +0x50,0x6,0x2a,0x2,0xd9,0xff,0xbf,0x2,0x66,0x6,0x4d,0x6, +0xb1,0x1,0xb2,0xfe,0x54,0x2,0xfa,0x6,0x94,0x7,0xa1,0x6, +0x2d,0x7,0x66,0xb,0xd2,0x10,0x59,0x11,0x5e,0xf,0xa9,0x10, +0xb4,0x12,0xdd,0x11,0xf5,0xf,0xbb,0xf,0xca,0x11,0xba,0x14, +0x59,0x15,0x4b,0x12,0xe4,0x10,0x15,0x16,0x6,0x1c,0x75,0x1a, +0x9b,0x13,0xb9,0x10,0xb5,0x15,0xf8,0x1a,0xc5,0x18,0xdf,0x13, +0x42,0x14,0x73,0x19,0x9f,0x1d,0xbe,0x1c,0x79,0x1a,0xac,0x1c, +0xb7,0x1e,0x34,0x1a,0x35,0x15,0xad,0x16,0x57,0x1a,0x97,0x19, +0xa1,0x14,0x84,0x11,0xc4,0x13,0x76,0x16,0xd9,0x15,0xb3,0x14, +0x8a,0x13,0xd1,0x12,0x65,0x15,0xdc,0x17,0x95,0x16,0x23,0x15, +0x94,0x14,0xd7,0x11,0xf9,0xc,0xfa,0x9,0xee,0xb,0x88,0xd, +0x18,0x8,0xd8,0x1,0x47,0x3,0xc5,0x7,0x54,0x8,0x65,0x6, +0x6c,0x4,0xbb,0x2,0x7d,0x3,0x4b,0x5,0x3b,0x3,0x19,0x0, +0x1b,0x0,0x7c,0xff,0x14,0xfe,0xd8,0x0,0xd2,0x5,0x4e,0x7, +0xc4,0x3,0xe5,0xfe,0xce,0xfd,0xc4,0xfe,0x53,0xfc,0xfb,0xf7, +0x31,0xf6,0x5c,0xf6,0x95,0xf6,0x8a,0xf7,0xa3,0xf9,0x93,0xfb, +0x30,0xfc,0x77,0xfb,0xcc,0xfa,0xf1,0xfb,0x38,0xfe,0xdd,0xfe, +0xb5,0xfc,0xf2,0xf9,0x76,0xf9,0x8b,0xfa,0x71,0xfa,0x68,0xf9, +0x11,0xf9,0xed,0xf8,0x95,0xf8,0xd,0xf9,0x8f,0xf9,0x3,0xf8, +0x8a,0xf5,0x1e,0xf4,0x77,0xf2,0xcc,0xf0,0x53,0xf1,0x10,0xf2, +0xaa,0xef,0xd0,0xeb,0xb3,0xea,0xa1,0xec,0xa8,0xed,0x50,0xec, +0xc9,0xeb,0xcc,0xed,0x10,0xf0,0xb9,0xf0,0x4d,0xf1,0x7b,0xf2, +0xcd,0xf1,0xc8,0xef,0x27,0xef,0xb,0xef,0xee,0xee,0x7f,0xef, +0x2f,0xef,0x64,0xee,0xe9,0xee,0xf1,0xef,0xc2,0xf0,0xec,0xf0, +0x38,0xf0,0x21,0xf0,0xc,0xf0,0xa5,0xee,0x6b,0xee,0x15,0xf0, +0x57,0xf0,0xd3,0xef,0xf8,0xf1,0x90,0xf5,0x54,0xf8,0x3a,0xfb, +0x57,0xfe,0x81,0x0,0xee,0x1,0x17,0x3,0x1d,0x4,0xe2,0x3, +0x39,0x1,0x3d,0xfe,0x1,0xfd,0xe0,0xfc,0x70,0xfd,0x12,0xfe, +0x68,0xfe,0x8,0x0,0xc5,0x2,0xb6,0x4,0xf5,0x5,0x84,0x6, +0x36,0x5,0x2e,0x3,0xba,0x2,0xd9,0x2,0x76,0x1,0xb3,0xff, +0xc9,0xfe,0xa3,0xfd,0x98,0xfc,0x36,0xfd,0xd0,0xfe,0xee,0xff, +0x6f,0x0,0x72,0x0,0x70,0x0,0x22,0x1,0xeb,0x0,0xe2,0xfd, +0x7a,0xfa,0xb3,0xf9,0x56,0xfa,0x4a,0xfa,0xa5,0xf9,0xb1,0xf9, +0xaa,0xfa,0x76,0xfb,0xff,0xfb,0x8e,0xfc,0xc1,0xfc,0x4,0xfd, +0x59,0xfd,0x2f,0xfd,0x20,0xfd,0x11,0xfe,0x12,0x0,0xc4,0x0, +0xab,0xfe,0xf2,0xfd,0x28,0x0,0x1e,0x1,0x9b,0x0,0x2,0x0, +0x5b,0xfe,0xc,0xfd,0x55,0xfc,0x54,0xfa,0x5f,0xf8,0x79,0xf7, +0xb3,0xf6,0xbe,0xf6,0xf,0xf8,0x3a,0xfa,0x43,0xfd,0x85,0x0, +0x42,0x3,0x62,0x5,0x74,0x7,0x40,0xa,0x24,0xc,0x39,0xa, +0x48,0x6,0x7c,0x4,0x8e,0x3,0x5f,0x0,0x23,0xfd,0x14,0xfc, +0x54,0xfb,0xf,0xfb,0x4,0xfd,0x37,0xff,0x3d,0x0,0x3c,0x2, +0x8,0x5,0x24,0x6,0xe,0x6,0xbf,0x6,0xed,0x7,0xa6,0x7, +0xda,0x5,0x82,0x5,0xc9,0x6,0xb0,0x6,0x58,0x6,0xe4,0x6, +0x82,0x5,0x7a,0x3,0x95,0x3,0xc,0x3,0xb4,0xff,0xf4,0xfb, +0xb7,0xfa,0x26,0xfb,0x50,0xfa,0x22,0xfa,0xda,0xfc,0x18,0xff, +0x75,0x0,0x18,0x3,0x3,0x5,0x67,0x5,0xf2,0x4,0x57,0x3, +0xda,0x1,0x67,0x0,0x6,0xff,0x92,0xff,0xa6,0xff,0x3c,0xfe, +0x2b,0xff,0x25,0x0,0xb7,0xfd,0x1e,0xfc,0x38,0xfc,0x62,0xfa, +0xb4,0xf8,0x95,0xf9,0xa0,0xfa,0x7d,0xfb,0x4e,0xfd,0x42,0xfe, +0x6,0xfe,0x28,0xff,0x13,0x1,0xd3,0x0,0x9c,0xff,0x71,0x0, +0x92,0x1,0x58,0x0,0x7,0xff,0xe9,0xff,0xd6,0x0,0xf2,0xff, +0xee,0xfe,0x29,0xff,0x5b,0xff,0x47,0xff,0x40,0x0,0x9,0x1, +0x6,0x0,0x49,0xff,0xb3,0x0,0x27,0x2,0x40,0x1,0xdd,0xff, +0x79,0x0,0xa5,0x0,0xcb,0xfe,0xe7,0xfd,0x14,0xfe,0x8e,0xfd, +0xb8,0xfd,0x8a,0xfe,0xcb,0xfe,0xa2,0xff,0xd8,0x0,0x45,0x0, +0x51,0xfe,0xcb,0xfd,0x80,0xfe,0x34,0xfd,0xd8,0xfb,0x5f,0xfe, +0xce,0x0,0x9a,0xff,0xb7,0xfe,0x5c,0xff,0x33,0xfe,0x19,0xfb, +0xb4,0xf8,0xee,0xf7,0x6f,0xf7,0x79,0xf7,0x78,0xf9,0x5a,0xfb, +0x18,0xfc,0x8a,0xfe,0x40,0x1,0x39,0x1,0x13,0x1,0xcf,0x1, +0x23,0x1,0x78,0x0,0xd0,0x0,0x73,0x0,0x2b,0x0,0xe3,0x0, +0xc5,0x1,0xf7,0x2,0xa5,0x3,0x54,0x3,0x2,0x4,0x22,0x5, +0x2,0x5,0x40,0x5,0xf2,0x5,0x47,0x5,0x6b,0x4,0x7,0x4, +0x9b,0x2,0x53,0x1,0x7,0x2,0x15,0x3,0x5e,0x3,0x9f,0x4, +0x1,0x7,0x93,0x8,0x38,0x9,0xea,0x9,0xe8,0x9,0x6d,0x8, +0xfe,0x6,0xa9,0x6,0xfc,0x5,0xf6,0x4,0x66,0x5,0x54,0x6, +0xb0,0x6,0x2d,0x8,0x15,0xa,0x39,0xa,0xa5,0x9,0xa7,0x8, +0xf5,0x5,0x98,0x3,0x2a,0x3,0x20,0x2,0x42,0x0,0xb0,0x0, +0xfb,0x2,0x3b,0x4,0x54,0x4,0x15,0x5,0x9,0x7,0x5b,0x7, +0x58,0x4,0x76,0x3,0xa7,0x6,0x3,0x6,0xbf,0x1,0xf2,0x1, +0x13,0x3,0x5a,0x0,0x4b,0xff,0xd7,0xff,0x22,0xfe,0x39,0xfe, +0x8a,0x0,0x7d,0x0,0x42,0x0,0xcb,0x1,0x26,0x2,0xcf,0x1, +0xfa,0x1,0xa,0x1,0x4e,0x0,0x89,0x1,0xf6,0x1,0x68,0x0, +0xed,0xff,0xed,0x0,0xf4,0x0,0x5,0x0,0x24,0xff,0x73,0xfe, +0x79,0xfe,0xd2,0xfe,0xc6,0xfe,0x2,0xff,0x6f,0xff,0xdf,0xff, +0xfd,0x0,0xa9,0x1,0x2f,0x1,0x41,0x1,0xe8,0x1,0x85,0x1, +0x4c,0x0,0xb0,0xff,0xb3,0xff,0xe4,0xfe,0xfc,0xfd,0xac,0xfe, +0xfc,0xfe,0xea,0xfd,0x1e,0xfe,0xe9,0xfe,0x7a,0xfe,0xb6,0xfe, +0x1f,0xff,0x57,0xfe,0xe,0xff,0x43,0x0,0xd7,0xfe,0x59,0xfe, +0xf0,0xff,0x24,0xff,0xe9,0xfd,0x59,0xff,0xcf,0xff,0xee,0xfe, +0x88,0xff,0x1,0x0,0x16,0x0,0x3d,0x1,0x14,0x1,0x59,0xff, +0x31,0xff,0xb2,0xff,0xb5,0xfe,0xc7,0xfd,0xd7,0xfd,0xd6,0xfd, +0xb,0xfe,0x20,0xff,0xf6,0xff,0x9a,0xff,0x75,0xff,0xaa,0x0, +0x68,0x1,0x3,0x1,0x55,0x1,0x8e,0x1,0x9f,0x0,0x95,0x0, +0x25,0x1,0xa4,0x0,0xdd,0xff,0xb7,0xfe,0xa9,0xfd,0x8f,0xfd, +0x3c,0xfc,0xf3,0xfa,0x74,0xfc,0xb,0xfd,0x6a,0xfc,0x94,0xfe, +0x30,0x0,0x48,0xff,0x5a,0x0,0x17,0x2,0x63,0x1,0xfa,0x0, +0xa0,0x1,0xa8,0x1,0xf9,0x1,0xa6,0x2,0x86,0x2,0x9,0x2, +0x82,0x1,0x7b,0x0,0x33,0xff,0x77,0xfe,0x3f,0xfe,0x3d,0xfd, +0x3,0xfc,0xf8,0xfc,0x94,0xfe,0xf4,0xfd,0x8,0xfd,0x5e,0xfd, +0x7b,0xfd,0xee,0xfd,0x23,0xff,0x6b,0xff,0x40,0xff,0xe3,0xff, +0x4f,0x0,0xad,0xff,0xe0,0xfe,0xaf,0xfe,0x41,0xfe,0x3,0xfd, +0x4b,0xfc,0x74,0xfc,0x74,0xfc,0x96,0xfc,0xc,0xfd,0x8,0xfd, +0x8b,0xfc,0xaa,0xfb,0x6f,0xfa,0x8,0xfa,0x9a,0xfa,0x75,0xfa, +0xb7,0xf9,0x3f,0xfa,0x8d,0xfb,0x16,0xfc,0x4d,0xfc,0x5f,0xfc, +0xf8,0xfb,0x4a,0xfc,0x4c,0xfd,0x41,0xfd,0x7f,0xfc,0x6c,0xfc, +0x75,0xfc,0x7b,0xfb,0x83,0xfa,0xc4,0xfa,0x70,0xfa,0xfd,0xf8, +0x80,0xf9,0x3a,0xfb,0x8,0xfb,0xb,0xfb,0xa1,0xfc,0x2,0xfd, +0x2,0xfd,0x1a,0xfe,0xa4,0xfd,0xa2,0xfb,0xf1,0xfa,0x72,0xfb, +0xbc,0xfb,0x46,0xfb,0xe8,0xfa,0x27,0xfc,0x83,0xfd,0xbb,0xfd, +0xd6,0xfe,0xaa,0xff,0xeb,0xfe,0xf3,0xff,0x4c,0x1,0xd5,0xff, +0xe8,0xff,0xfb,0x1,0x13,0x1,0xac,0xff,0x1e,0x1,0x43,0x2, +0xd8,0x1,0xaa,0x1,0x7,0x2,0x3f,0x2,0xaf,0x1,0xc8,0x0, +0x27,0x0,0x7b,0xff,0x52,0xff,0x88,0xff,0xbd,0xfe,0x8b,0xfe, +0xb2,0x0,0x93,0x2,0xc4,0x2,0xca,0x3,0xef,0x5,0xe7,0x6, +0xf2,0x6,0x9c,0x7,0xe0,0x7,0xed,0x5,0x2,0x3,0xa8,0x1, +0xe0,0x0,0x23,0xff,0x9f,0xfe,0x90,0xff,0xa8,0xff,0x8e,0x0, +0x21,0x3,0x21,0x4,0xa0,0x3,0xf2,0x3,0x9c,0x4,0xc9,0x4, +0x81,0x4,0x1d,0x4,0xf,0x4,0xdc,0x3,0x9d,0x3,0xd6,0x3, +0xe9,0x3,0xe1,0x3,0x11,0x4,0xe7,0x3,0x97,0x3,0x24,0x3, +0xff,0x1,0x14,0x1,0xf0,0x0,0x7e,0x0,0xee,0xff,0x51,0x0, +0x1f,0x1,0xd1,0x1,0xf1,0x2,0xe5,0x3,0xf7,0x3,0x2d,0x4, +0xfc,0x4,0x35,0x5,0x0,0x4,0x42,0x2,0xc9,0x1,0x13,0x2, +0xe,0x1,0x97,0xff,0x92,0xff,0x30,0x0,0x3d,0x0,0xcb,0xff, +0x4d,0xff,0x79,0xff,0x6d,0x0,0xf0,0x0,0x60,0x0,0xa0,0x0, +0xde,0x2,0xd7,0x4,0x91,0x5,0xc,0x7,0x37,0x9,0x6,0xa, +0x46,0x9,0x74,0x8,0xff,0x7,0x7b,0x6,0x65,0x4,0xde,0x3, +0x5e,0x3,0x61,0x1,0x6,0x0,0x6f,0xfe,0x33,0xfa,0x1d,0xf6, +0x83,0xf4,0x7b,0xf3,0xb7,0xf2,0x77,0xf3,0x7d,0xf5,0xa7,0xf8, +0x0,0xfc,0xe9,0xfd,0x43,0xff,0x59,0x0,0xd1,0xff,0xe2,0xfe, +0x0,0xfe,0xe1,0xfb,0x36,0xfa,0x65,0xf9,0x90,0xf7,0x52,0xf6, +0xb5,0xf6,0xf8,0xf6,0xe4,0xf6,0x7f,0xf6,0x43,0xf6,0x26,0xf7, +0x5a,0xf7,0x81,0xf6,0xcf,0xf6,0xd1,0xf7,0xc4,0xf8,0xce,0xf9, +0x33,0xfa,0x0,0xfb,0xb7,0xfc,0x93,0xfd,0x14,0xfe,0x93,0xfe, +0xb1,0xfd,0x8,0xfd,0x5c,0xfd,0x1b,0xfc,0xbf,0xf9,0xab,0xf8, +0x3d,0xf8,0x3a,0xf7,0xfd,0xf5,0xce,0xf5,0x6f,0xf7,0x6a,0xf9, +0x51,0xfa,0x4,0xfb,0x7f,0xfc,0xee,0xfd,0x6e,0xfd,0x40,0xfb, +0xe9,0xf9,0x1a,0xf9,0x52,0xf7,0x1d,0xf6,0xa2,0xf5,0xbb,0xf4, +0xb,0xf5,0x2d,0xf6,0xe0,0xf5,0x8a,0xf5,0x1d,0xf6,0xdf,0xf5, +0x9a,0xf4,0x29,0xf3,0x73,0xf2,0xdd,0xf2,0xca,0xf2,0xf4,0xf1, +0x48,0xf2,0x37,0xf3,0x46,0xf3,0x81,0xf3,0x58,0xf4,0x71,0xf4, +0xf8,0xf3,0xd,0xf4,0x1c,0xf4,0x6c,0xf3,0xc1,0xf2,0x6e,0xf2, +0xa9,0xf1,0x93,0xf0,0x3e,0xf0,0xc9,0xf0,0x70,0xf1,0xec,0xf1, +0xa6,0xf2,0x1b,0xf4,0x11,0xf6,0x36,0xf7,0x41,0xf7,0xa7,0xf7, +0x51,0xf8,0x99,0xf7,0x54,0xf6,0x4d,0xf6,0xa3,0xf6,0x5a,0xf6, +0x87,0xf6,0x8b,0xf7,0xcd,0xf8,0x7a,0xfa,0x10,0xfc,0xba,0xfc, +0x4f,0xfd,0x0,0xfe,0xb4,0xfd,0x6,0xfd,0xe5,0xfc,0x15,0xfd, +0xf7,0xfd,0x57,0xff,0x27,0x0,0x1d,0x1,0xc1,0x2,0xeb,0x3, +0x9d,0x4,0x8,0x5,0x62,0x4,0x1,0x4,0x3a,0x5,0xaf,0x5, +0x66,0x4,0x1,0x4,0x19,0x5,0x39,0x6,0x3e,0x7,0x29,0x8, +0x20,0x9,0xac,0xa,0xff,0xb,0x7c,0xc,0xc3,0xc,0x4e,0xd, +0xd,0xe,0xaa,0xd,0x13,0xc,0x71,0xc,0xa5,0xe,0x5,0xf, +0xd7,0xe,0x0,0x11,0x58,0x13,0xea,0x13,0x37,0x14,0xf8,0x14, +0x43,0x15,0xa7,0x14,0x7f,0x13,0xac,0x12,0xb7,0x12,0xe1,0x12, +0x4,0x13,0x32,0x14,0x71,0x15,0x85,0x15,0x62,0x16,0x54,0x18, +0x89,0x18,0x3d,0x17,0xbc,0x16,0xd6,0x16,0x7b,0x16,0xef,0x15, +0x97,0x16,0x93,0x18,0x15,0x19,0xf2,0x17,0xa3,0x19,0x3f,0x1d, +0x11,0x1d,0xd3,0x1b,0x6b,0x1e,0xcd,0x1f,0x90,0x1d,0x29,0x1d, +0xf3,0x1d,0x2a,0x1d,0x93,0x1d,0xd3,0x1e,0x4c,0x1e,0xd2,0x1c, +0xe0,0x1b,0x70,0x1c,0x17,0x1c,0x8d,0x18,0xa4,0x17,0xea,0x1a, +0xc,0x1b,0x9b,0x19,0xcd,0x1b,0x3f,0x1d,0xe2,0x1b,0xa6,0x1a, +0xaa,0x18,0xba,0x16,0x98,0x16,0x4b,0x15,0xf1,0x12,0xf3,0x11, +0xfb,0xf,0x5f,0xd,0xcd,0xc,0xa6,0xb,0xc2,0x8,0x49,0x6, +0xed,0x4,0xdb,0x5,0x8f,0x5,0xd8,0xff,0x9,0xfd,0xfb,0x0, +0x5c,0x1,0x39,0xfe,0xc6,0xfe,0xcf,0xfe,0xec,0xfb,0xfe,0xf9, +0xae,0xf7,0xbd,0xf4,0x8c,0xf4,0xa5,0xf5,0x60,0xf4,0x9a,0xf0, +0xc1,0xee,0x77,0xf2,0xc8,0xf4,0xf8,0xee,0xcf,0xea,0xdf,0xef, +0x3f,0xf4,0x5e,0xf2,0x9f,0xef,0xdb,0xed,0x41,0xee,0xd2,0xf0, +0x42,0xef,0x2a,0xea,0xbe,0xe9,0xe0,0xed,0x2c,0xef,0x59,0xea, +0xe3,0xe5,0x3,0xe9,0x1c,0xed,0xe0,0xe9,0x40,0xe5,0x8e,0xe5, +0xe,0xe8,0x99,0xe8,0x84,0xe5,0xe4,0xe2,0xe4,0xe5,0xfa,0xe9, +0x66,0xe8,0x5f,0xe4,0x32,0xe5,0xbb,0xea,0xfe,0xec,0x9b,0xe8, +0x55,0xe5,0x6e,0xe8,0x5a,0xeb,0x68,0xe8,0xb3,0xe3,0xd2,0xe2, +0xb9,0xe5,0x31,0xe8,0x2,0xe7,0xe9,0xe4,0x26,0xe6,0xcb,0xe8, +0x4a,0xe9,0xd9,0xe8,0x25,0xea,0xd,0xed,0x88,0xee,0xe9,0xec, +0x32,0xeb,0x39,0xec,0x55,0xee,0x40,0xee,0xfe,0xeb,0xca,0xeb, +0xbe,0xee,0xe5,0xef,0xd4,0xed,0x9d,0xec,0xf5,0xed,0xd9,0xef, +0xd1,0xef,0x58,0xee,0x70,0xee,0x11,0xf0,0x81,0xf0,0x8f,0xef, +0xf4,0xef,0x7c,0xf3,0x70,0xf7,0x8d,0xf8,0xf1,0xf8,0x3a,0xfb, +0xb3,0xfd,0x63,0xfe,0xa6,0xfd,0x36,0xfd,0x6b,0xfd,0x86,0xfc, +0x35,0xfb,0x9a,0xfb,0xa8,0xfc,0x4b,0xfd,0x21,0xfe,0xd4,0xfe, +0x25,0x0,0x31,0x3,0xe,0x5,0xa2,0x3,0xa8,0x2,0x26,0x4, +0xd9,0x4,0xf,0x4,0x7d,0x4,0x79,0x6,0x69,0x8,0x84,0x9, +0x91,0xa,0x35,0xc,0x6e,0xc,0x7c,0xa,0xcf,0x8,0x5d,0x7, +0x5d,0x5,0x6,0x5,0xeb,0x5,0x7e,0x5,0x62,0x5,0x59,0x7, +0x13,0x9,0x8a,0x9,0xbc,0xa,0xaa,0xc,0x76,0xd,0x57,0xd, +0x59,0xd,0x4b,0xd,0xeb,0xc,0xc2,0xb,0x66,0x9,0x16,0x7, +0x25,0x6,0xa9,0x5,0xe0,0x3,0x66,0x1,0xb3,0x0,0xd4,0x1, +0x7b,0x2,0xa7,0x2,0xfd,0x3,0x92,0x5,0x6a,0x5,0x3c,0x4, +0xc6,0x3,0x8e,0x3,0xb9,0x2,0x96,0x1,0xf2,0xff,0xbd,0xfe, +0x0,0x0,0xb,0x2,0xea,0x1,0xe,0x1,0x57,0x1,0x22,0x1, +0x55,0xff,0x87,0xfd,0xc8,0xfc,0x61,0xfc,0x2d,0xfc,0xb5,0xfc, +0x61,0xfd,0xc,0xfe,0x84,0xff,0xe9,0x0,0x34,0x1,0x44,0x1, +0xb8,0x1,0x74,0x2,0xe4,0x2,0xe1,0x1,0x76,0x0,0x7b,0x0, +0x77,0x0,0x6,0xff,0x87,0xfd,0x89,0xfc,0xec,0xfb,0x7e,0xfc, +0xe8,0xfd,0x94,0xff,0x67,0x2,0xbf,0x5,0x4c,0x7,0x72,0x7, +0xc7,0x7,0x7,0x7,0x51,0x4,0x66,0x1,0xdf,0xfe,0xad,0xfc, +0x9,0xfc,0x8d,0xfc,0xde,0xfc,0x5c,0xfd,0x42,0xfe,0xe7,0xfe, +0xad,0xfe,0x57,0xfd,0xe4,0xfb,0xed,0xfa,0xaf,0xf9,0x1b,0xf9, +0xbe,0xfa,0x7f,0xfd,0x4b,0x0,0x8b,0x3,0x5a,0x6,0x61,0x7, +0x91,0x7,0xe1,0x7,0x8b,0x6,0xbb,0x2,0xab,0xff,0xc9,0xfe, +0xf9,0xfc,0x5c,0xfa,0xd,0xfa,0x55,0xfa,0x9d,0xf9,0x9f,0xfa, +0x68,0xfc,0xfb,0xfc,0xe7,0xfe,0x83,0x1,0xf,0x2,0xb6,0x2, +0xc0,0x4,0xa7,0x6,0xb4,0x7,0x2d,0x7,0x93,0x6,0x6b,0x7, +0x54,0x7,0x3e,0x6,0xaf,0x5,0x2e,0x4,0xe,0x3,0x17,0x4, +0x8,0x4,0xfa,0x1,0x88,0x0,0xbd,0xff,0xc3,0xfe,0xba,0xfd, +0x17,0xfd,0xde,0xfd,0xc3,0xff,0x5a,0x1,0xf0,0x2,0x68,0x5, +0xe7,0x7,0x3d,0x9,0x61,0x9,0xd9,0x8,0x7d,0x8,0x5b,0x8, +0x41,0x7,0x8e,0x5,0x7d,0x4,0x96,0x3,0xcf,0x2,0x65,0x2, +0x4e,0x1,0x5,0x0,0xca,0xff,0xfb,0xff,0x4,0x0,0x44,0x0, +0x1b,0x1,0x3c,0x2,0x8d,0x2,0x36,0x2,0x89,0x2,0x52,0x3, +0x4a,0x3,0x7a,0x2,0x9,0x2,0xe2,0x1,0x89,0x1,0x49,0x2, +0xb,0x4,0xb7,0x4,0x68,0x4,0xf4,0x3,0xe2,0x2,0xfd,0x0, +0xb6,0xfe,0x7b,0xfd,0x5f,0xfd,0x98,0xfc,0xa6,0xfc,0xe5,0xfe, +0x62,0x0,0xb9,0x0,0xd2,0x1,0x84,0x2,0x58,0x2,0xac,0x2, +0xd8,0x2,0xd1,0x1,0xf0,0x0,0x48,0x1,0x31,0x1,0x6,0x0, +0x7c,0xff,0x4f,0xff,0x84,0xfe,0xda,0xfd,0x5d,0xfd,0x23,0xfd, +0xf,0xfe,0xc7,0xff,0x3c,0x1,0xca,0x1,0x2a,0x2,0x4c,0x3, +0xc1,0x3,0xdb,0x2,0x2b,0x2,0x32,0x2,0x9c,0x2,0xb3,0x2, +0xd,0x2,0xfd,0x1,0x1f,0x2,0xe,0x1,0x38,0x0,0xf0,0xff, +0xd5,0xfe,0xa6,0xfd,0xf6,0xfc,0x77,0xfc,0x15,0xfd,0xe8,0xfe, +0xd9,0x0,0xce,0x2,0x8d,0x4,0x5c,0x5,0xf9,0x5,0x56,0x6, +0xd5,0x4,0xfc,0x2,0x54,0x2,0x76,0x0,0x22,0xfe,0xe,0xfe, +0x3c,0xfe,0xb8,0xfd,0xcf,0xfd,0x90,0xfd,0x1e,0xfd,0x10,0xfd, +0x26,0xfc,0xfb,0xfa,0x3a,0xfb,0xe9,0xfc,0xc6,0xfe,0xaa,0xff, +0xbc,0x0,0x8d,0x2,0xb,0x3,0x48,0x2,0xf2,0x1,0xbb,0x1, +0x38,0x1,0x92,0x0,0xed,0xff,0xad,0xff,0xd4,0xff,0x9,0x0, +0x7a,0xff,0xe7,0xfd,0x99,0xfc,0x11,0xfc,0xbd,0xfb,0x87,0xfb, +0x80,0xfb,0x38,0xfc,0x4f,0xfe,0xe8,0x0,0xaf,0x2,0xa0,0x3, +0xa2,0x4,0x8,0x5,0xcb,0x3,0xd5,0x2,0xb0,0x2,0x3f,0x1, +0xf0,0xff,0x95,0x0,0x25,0x1,0x5,0x1,0x80,0x1,0x19,0x2, +0x72,0x1,0xa8,0xff,0xff,0xfe,0xd7,0xff,0xb1,0xff,0x2e,0xff, +0x13,0x0,0xb1,0x0,0xb7,0x0,0x5f,0x1,0x93,0x1,0x1c,0x1, +0xd3,0x0,0xc6,0xff,0x1a,0xfe,0x30,0xfd,0x14,0xfc,0x69,0xfa, +0xdf,0xf9,0x6,0xfa,0xd6,0xf9,0x65,0xfa,0xcf,0xfb,0xe,0xfd, +0x4d,0xfd,0x9a,0xfc,0x54,0xfd,0x2a,0xff,0xba,0xfe,0x22,0xfe, +0xc5,0xff,0x2,0x0,0xbe,0xfe,0xef,0xfe,0xf,0xff,0x20,0xfe, +0x64,0xfd,0xa2,0xfc,0xd3,0xfb,0x85,0xfb,0x8c,0xfb,0x50,0xfb, +0xea,0xfa,0x79,0xfb,0x3f,0xfc,0xa,0xfc,0xa9,0xfc,0xd5,0xfd, +0x5a,0xfd,0x12,0xfd,0x2a,0xfe,0xd7,0xfe,0x53,0xff,0x95,0xff, +0xe5,0xfe,0xb9,0xfe,0x9,0xff,0x9b,0xfe,0xd,0xfe,0xdb,0xfc, +0x33,0xfb,0x68,0xfb,0x2,0xfc,0x24,0xfb,0xfb,0xfb,0x7b,0xfe, +0x5f,0xfe,0xb3,0xfc,0xc2,0xfc,0x92,0xfd,0x84,0xfd,0xaf,0xfc, +0xfb,0xfb,0x80,0xfc,0xae,0xfd,0xd8,0xfe,0x6e,0x0,0x5e,0x1, +0x1f,0x1,0x65,0x1,0x80,0x1,0x62,0xff,0xc0,0xfc,0x86,0xfb, +0xba,0xf9,0xe4,0xf6,0x36,0xf6,0xb4,0xf7,0x69,0xf8,0xf3,0xf8, +0x55,0xfa,0xba,0xfa,0xdd,0xfa,0x50,0xfc,0x7f,0xfc,0x5e,0xfa, +0x96,0xf9,0x3c,0xfb,0x51,0xfb,0x47,0xf9,0xb0,0xfa,0x1e,0xff, +0x50,0xff,0x3e,0xfd,0x52,0xff,0x60,0x1,0xa3,0xff,0x9a,0xfe, +0x11,0xff,0x7a,0xfe,0xa0,0xfd,0x5b,0xfd,0x98,0xfd,0xaa,0xfd, +0x1,0xfd,0xaf,0xfd,0xd4,0xfe,0x45,0xfd,0x9,0xfd,0x57,0x0, +0x58,0x0,0x35,0xfd,0x7d,0xfd,0xab,0xfe,0x7e,0xfd,0xa3,0xfc, +0x44,0xfb,0xad,0xf9,0x62,0xfb,0x52,0xfd,0x89,0xfd,0x98,0xff, +0x67,0x1,0x86,0x1,0x95,0x3,0x88,0x4,0xda,0x1,0xfe,0x0, +0xea,0x1,0x6d,0x0,0xc2,0xfe,0xa1,0xff,0xb6,0x1,0x5b,0x3, +0x3f,0x4,0x3b,0x5,0x48,0x6,0x68,0x6,0x55,0x5,0x23,0x3, +0x5a,0x1,0x3d,0x1,0x36,0x0,0xe4,0xfd,0x4a,0xfe,0x89,0x0, +0x23,0x1,0x7,0x2,0x1b,0x4,0xf8,0x4,0xd5,0x5,0x5a,0x7, +0x31,0x7,0x8a,0x6,0x76,0x6,0xd8,0x5,0xfd,0x5,0x99,0x5, +0xd7,0x2,0x6,0x2,0xd1,0x2,0x4a,0x0,0x35,0xfe,0xf9,0xff, +0xf6,0x0,0xa6,0x0,0x3a,0x2,0xf1,0x3,0x2a,0x4,0xad,0x4, +0xac,0x4,0x9b,0x2,0xe0,0x1,0x85,0x3,0xbf,0x2,0x5e,0x0, +0x16,0x1,0xeb,0x2,0x6f,0x3,0xc3,0x3,0x41,0x3,0xf4,0x2, +0xe7,0x4,0x4d,0x5,0x21,0x2,0x14,0x1,0x71,0x3,0xb9,0x3, +0xc9,0x2,0x88,0x4,0xe,0x6,0x50,0x6,0xe2,0x7,0x49,0x8, +0x34,0x7,0xf6,0x7,0xac,0x7,0xf1,0x4,0x3f,0x4,0xdd,0x4, +0x40,0x4,0xb6,0x4,0x6,0x6,0x9d,0x5,0x6f,0x5,0xcc,0x6, +0x96,0x6,0x4b,0x5,0x31,0x6,0x24,0x7,0x4a,0x6,0x73,0x6, +0x6e,0x7,0x69,0x7,0x95,0x7,0x9f,0x7,0x9c,0x6,0xa1,0x6, +0xf6,0x7,0x6,0x8,0x36,0x7,0xc9,0x7,0x98,0x8,0x18,0x8, +0x16,0x7,0x4d,0x5,0x66,0x3,0x74,0x2,0xbb,0xff,0xa4,0xfc, +0xbe,0xfd,0xae,0xfe,0x76,0xfc,0xf5,0xfc,0xbc,0xff,0xaf,0xff, +0xc1,0xfe,0x8,0xff,0x75,0xfe,0x29,0xfd,0x88,0xfc,0x33,0xfb, +0xc3,0xf8,0x59,0xf8,0x9b,0xf9,0x87,0xf8,0x29,0xf7,0xd9,0xf8, +0xec,0xf9,0x1e,0xf9,0x91,0xf9,0x83,0xf9,0x2a,0xf8,0x46,0xf9, +0x4a,0xfb,0x6b,0xfb,0x6b,0xfc,0x3f,0xfe,0xca,0xfe,0x69,0xff, +0x1e,0xff,0x4a,0xfd,0x5e,0xfd,0x91,0xfd,0xe5,0xfa,0xb8,0xf9, +0x97,0xfb,0x79,0xfc,0x0,0xfc,0x27,0xfc,0x3a,0xfd,0x6a,0xfe, +0xc1,0xfe,0xe1,0xfe,0x4d,0xff,0x67,0xff,0xb3,0xff,0xf,0x0, +0xe9,0xff,0x75,0x0,0x5f,0x1,0x85,0x1,0xb3,0x1,0x51,0x1, +0xf9,0xff,0x47,0xff,0x4e,0xfe,0x4f,0xfc,0x6,0xfb,0xab,0xf9, +0x56,0xf8,0x64,0xf9,0x66,0xfa,0x85,0xf9,0x3d,0xfa,0xac,0xfb, +0xbf,0xfa,0x9b,0xfa,0x7b,0xfc,0x9a,0xfc,0xa0,0xfb,0x7e,0xfc, +0x90,0xfd,0x47,0xfd,0x5c,0xfd,0xe4,0xfd,0xe7,0xfc,0x21,0xfb, +0x94,0xfa,0x32,0xfa,0x70,0xf8,0xe4,0xf6,0xc5,0xf6,0x70,0xf6, +0x6c,0xf5,0xae,0xf5,0x37,0xf7,0xd,0xf8,0x99,0xf8,0x47,0xfa, +0xdf,0xfb,0x73,0xfc,0xa5,0xfd,0xf8,0xff,0x95,0x1,0x6,0x2, +0x21,0x3,0x4f,0x5,0x89,0x6,0x89,0x6,0x8,0x7,0xd6,0x7, +0x32,0x8,0xa1,0x8,0xc3,0x8,0xdb,0x8,0xfb,0x9,0xd6,0x9, +0xb7,0x6,0x3,0x4,0x2d,0x3,0x62,0x1,0x70,0xfe,0xbb,0xfc, +0x14,0xfd,0x9c,0xfe,0x33,0x0,0xf6,0x1,0xf0,0x3,0xe8,0x4, +0x5d,0x5,0x24,0x6,0x90,0x5,0xfb,0x3,0xbc,0x3,0xde,0x3, +0xd1,0x2,0x87,0x1,0xe2,0x0,0xb7,0x0,0x27,0x0,0xb0,0xfe, +0x7f,0xfd,0x20,0xfd,0x62,0xfc,0x3b,0xfb,0xc5,0xfa,0xd2,0xfa, +0xb2,0xfa,0x94,0xfa,0xdc,0xfa,0x87,0xfb,0x3b,0xfc,0x8b,0xfc, +0x9c,0xfc,0xcc,0xfc,0xfa,0xfc,0x21,0xfd,0x79,0xfd,0xdb,0xfd, +0xb7,0xfd,0xea,0xfc,0x6c,0xfc,0x41,0xfc,0xf0,0xfa,0x4a,0xf9, +0xdd,0xf8,0x6b,0xf8,0xd6,0xf7,0xa6,0xf8,0xd3,0xf9,0x56,0xfa, +0x22,0xfb,0xe2,0xfb,0xc4,0xfb,0x46,0xfb,0x7b,0xfa,0x36,0xf9, +0x4b,0xf8,0x12,0xf8,0xe5,0xf7,0xbc,0xf7,0xbc,0xf7,0xa1,0xf7, +0xc0,0xf7,0xf9,0xf7,0x5c,0xf7,0x57,0xf6,0xbd,0xf5,0x23,0xf5, +0x72,0xf4,0x2f,0xf4,0x2f,0xf4,0xfd,0xf3,0xfe,0xf3,0x67,0xf4, +0x48,0xf4,0xef,0xf3,0x93,0xf4,0x17,0xf5,0xa8,0xf4,0x94,0xf4, +0xb3,0xf4,0x43,0xf4,0xe4,0xf3,0x94,0xf3,0xfb,0xf2,0x98,0xf2, +0xb3,0xf2,0xde,0xf2,0xdf,0xf2,0x85,0xf3,0xea,0xf4,0x4,0xf6, +0xe0,0xf6,0xbf,0xf7,0x5e,0xf8,0xd,0xf9,0x49,0xf9,0xf0,0xf8, +0x48,0xf9,0xd9,0xf9,0xcf,0xf9,0xed,0xf9,0x6a,0xfa,0x45,0xfb, +0x51,0xfc,0xf2,0xfc,0xaa,0xfd,0x6e,0xfe,0x96,0xfe,0xaf,0xfe, +0xcc,0xfe,0xef,0xfe,0x8b,0xff,0xe7,0xff,0xf9,0xff,0x6b,0x0, +0xbd,0x0,0x25,0x1,0x24,0x2,0xbc,0x2,0x87,0x2,0x7c,0x2, +0xba,0x2,0x3c,0x2,0x88,0x1,0xc3,0x1,0xe6,0x1,0xa3,0x1, +0xfd,0x1,0x0,0x2,0x92,0x1,0xb,0x2,0x7a,0x2,0x3f,0x2, +0x97,0x2,0x74,0x3,0x1c,0x4,0xb8,0x4,0x45,0x5,0x64,0x5, +0x72,0x5,0xf7,0x5,0x69,0x6,0x84,0x6,0xf1,0x6,0x91,0x7, +0xb9,0x7,0x51,0x7,0xfb,0x6,0x8f,0x7,0x7e,0x8,0x8e,0x8, +0x3d,0x8,0xb9,0x8,0xb4,0x9,0xd,0xa,0xb2,0x9,0x7f,0x9, +0x30,0xa,0x9d,0xb,0x6d,0xc,0x60,0xc,0xd7,0xc,0x70,0xd, +0x57,0xd,0x71,0xd,0x93,0xd,0xd7,0xc,0xbb,0xb,0x89,0xb, +0xe1,0xc,0x2e,0xe,0xc4,0xd,0x77,0xc,0xd1,0xb,0xbd,0xc, +0x39,0xe,0x66,0xe,0x18,0xe,0x7b,0xe,0x46,0xf,0x40,0x10, +0x22,0x10,0xf0,0xe,0xfa,0xe,0x3b,0x10,0xaf,0x10,0x3b,0xf, +0x8d,0xd,0xd4,0xe,0xec,0x10,0x13,0xf,0x56,0xb,0x93,0xa, +0x93,0xc,0xe4,0xd,0x1f,0xd,0xc0,0xb,0xef,0xa,0x66,0xb, +0xce,0xd,0xf3,0xf,0x36,0xf,0xc5,0xc,0x33,0xb,0xf5,0xa, +0xf9,0xa,0x64,0xb,0x85,0xc,0xef,0xb,0x92,0x8,0x15,0x6, +0xc5,0x6,0xc5,0x7,0x88,0x6,0xcc,0x4,0x2f,0x4,0xa9,0x3, +0xa9,0x3,0x8d,0x5,0x6b,0x7,0x39,0x6,0x53,0x3,0x6c,0x3, +0x36,0x6,0x2d,0x7,0x1f,0x7,0xbc,0x7,0x7d,0x5,0x30,0x1, +0x20,0x1,0x77,0x5,0xf0,0x7,0x71,0x5,0x8,0x1,0xaf,0xfd, +0xde,0xfb,0x54,0xfd,0x1d,0x2,0xf7,0x4,0x8,0x3,0xcb,0x0, +0x1b,0x2,0x23,0x4,0xcd,0x3,0x9d,0x2,0x9e,0x1,0x63,0x0, +0x43,0x0,0x8a,0x1,0x1c,0x2,0x13,0x1,0x24,0x0,0x45,0x0, +0xf3,0xfe,0xc0,0xfb,0x23,0xfa,0x84,0xf9,0x59,0xf7,0xfd,0xf4, +0x2d,0xf3,0x99,0xf2,0xb3,0xf5,0x68,0xfa,0x6e,0xfb,0x94,0xf7, +0xff,0xf3,0xc7,0xf7,0xb2,0x0,0xd7,0x3,0xa8,0xff,0x0,0xfd, +0x7f,0xfd,0x28,0xfc,0xc0,0xf9,0x26,0xf9,0x52,0xf8,0x19,0xf5, +0x46,0xf1,0x3,0xf0,0x54,0xf1,0xec,0xf1,0x26,0xf1,0x41,0xf0, +0x1b,0xee,0x8b,0xed,0x4b,0xf3,0x75,0xf8,0xea,0xf3,0x18,0xed, +0xd,0xef,0xfe,0xf4,0xe7,0xf5,0xca,0xf2,0xec,0xef,0x58,0xf0, +0x40,0xf5,0xe5,0xf9,0xf1,0xfa,0x1e,0xfb,0xe6,0xfa,0x9c,0xf9, +0x80,0xf7,0xc3,0xf3,0x47,0xf2,0x15,0xf5,0x84,0xf5,0x40,0xf3, +0x34,0xf4,0x18,0xf7,0x1a,0xf9,0xbc,0xf9,0x87,0xf8,0x84,0xf8, +0xfe,0xf9,0x37,0xf8,0x7b,0xf4,0x3c,0xf3,0x44,0xf3,0x57,0xf3, +0xc,0xf5,0x86,0xf7,0x37,0xf9,0xd5,0xfa,0x39,0xfc,0xbd,0xfc, +0x3e,0xfd,0x0,0xfe,0x95,0xfe,0x3b,0xfe,0xcd,0xfb,0xe0,0xf8, +0xd9,0xf7,0x6c,0xf7,0xf,0xf6,0x4c,0xf5,0x81,0xf6,0x8,0xf8, +0x23,0xf8,0x67,0xf8,0x8c,0xfa,0xfd,0xfd,0xd6,0x0,0x3d,0x0, +0xd5,0xfd,0x5e,0xfe,0xc9,0xff,0x74,0xfe,0x1d,0xfc,0x79,0xfa, +0x14,0xfa,0x39,0xfa,0xee,0xf9,0x7f,0xfb,0xa3,0xfd,0xc,0xfd, +0xe7,0xfd,0xf3,0x1,0x1c,0x4,0x31,0x4,0x3d,0x4,0xcf,0x2, +0x9d,0x0,0x1,0x1,0xf7,0x3,0xb8,0x5,0xd0,0x4,0xbf,0x3, +0xd7,0x3,0xc4,0x4,0x7c,0x6,0x83,0x7,0x3e,0x6,0x0,0x4, +0x32,0x3,0x50,0x3,0x67,0x1,0x90,0xfd,0x8,0xfb,0x5d,0xfa, +0x34,0xfa,0x60,0xfb,0x36,0xfe,0x8f,0x0,0x80,0x1,0x0,0x2, +0x9a,0x2,0xf1,0x3,0x80,0x5,0xe9,0x4,0x95,0x2,0x11,0x1, +0x39,0x0,0xd6,0xff,0xd9,0x0,0x76,0x1,0x4f,0x0,0x46,0x0, +0xbe,0x2,0xc8,0x4,0xe5,0x4,0x14,0x4,0x8f,0x2,0x73,0x0, +0xad,0xfd,0xe4,0xf9,0xf2,0xf6,0x33,0xf6,0x4,0xf6,0xf,0xf6, +0x1b,0xf8,0xff,0xfb,0xd1,0xfe,0xe9,0xfe,0xa1,0xfe,0x7,0x0, +0x8d,0x1,0x77,0x1,0xe0,0xff,0x22,0xfe,0x26,0xfd,0xd,0xfc, +0xee,0xfa,0xc,0xfb,0x61,0xfc,0x64,0xfe,0x3a,0x0,0x2,0x2, +0x6,0x5,0xbd,0x7,0x44,0x8,0x2b,0x7,0xe2,0x3,0x6f,0xff, +0x4b,0xfd,0x87,0xfc,0x2e,0xfa,0xd0,0xf7,0x4d,0xf8,0x8b,0xfa, +0xd2,0xfb,0xa6,0xfc,0x7c,0xfe,0x7b,0x0,0x72,0x1,0x8f,0x0, +0x98,0xfe,0xd2,0xfd,0x66,0xfd,0xb9,0xfb,0x3a,0xfa,0xe9,0xf9, +0x48,0xfb,0xb7,0xfd,0x69,0xfe,0xf2,0xfd,0x84,0xfe,0x45,0xff, +0xf0,0xff,0xd7,0xff,0xef,0xfd,0xd,0xfd,0x37,0xfd,0x67,0xfa, +0xc7,0xf6,0xa1,0xf6,0x9f,0xf7,0x20,0xf7,0xb9,0xf6,0xe4,0xf7, +0xfe,0xfa,0x4a,0xff,0xe1,0x1,0x79,0x1,0x7b,0x0,0x7f,0x0, +0xae,0x0,0xa,0x0,0x32,0xfe,0xf0,0xfb,0x18,0xfb,0xe5,0xfb, +0x3e,0xfc,0xb3,0xfb,0x62,0xfc,0xff,0xfd,0xa5,0xfe,0xc7,0xfe, +0xd0,0xfe,0x1c,0xff,0x28,0x0,0x89,0xff,0x48,0xfd,0x39,0xfd, +0xf8,0xfe,0x6d,0x0,0x10,0x2,0xba,0x3,0x1b,0x5,0x4f,0x6, +0x59,0x7,0x40,0x8,0x8f,0x7,0x59,0x5,0xfe,0x3,0x4e,0x3, +0x3e,0x2,0x1a,0x1,0xe6,0xff,0x13,0xff,0xb9,0xfe,0xd1,0xfe, +0x61,0x0,0xc5,0x2,0x4e,0x4,0x24,0x5,0xe9,0x5,0x65,0x6, +0x18,0x6,0x2,0x5,0x64,0x3,0xf8,0x1,0xb8,0x1,0xa6,0x1, +0x81,0x1,0xc1,0x2,0xa5,0x3,0x36,0x3,0xb6,0x3,0x60,0x4, +0xba,0x4,0x5,0x6,0xab,0x6,0x75,0x6,0x6b,0x6,0xde,0x5, +0x3d,0x5,0xe,0x4,0xc2,0x1,0x10,0x0,0x28,0xff,0x67,0xff, +0x32,0x1,0x5d,0x2,0xf5,0x2,0x3d,0x3,0xc6,0x1,0x7e,0x0, +0xce,0xff,0xa4,0xfd,0x7,0xfc,0x3d,0xfc,0x8f,0xfc,0xbd,0xfd, +0xa8,0x0,0xcc,0x3,0x24,0x6,0x20,0x8,0xd7,0x9,0x84,0xa, +0x39,0xa,0xf,0x9,0x31,0x6,0x97,0x2,0x6f,0x0,0xcc,0xff, +0x38,0xff,0x4b,0xfe,0x3d,0xfe,0x4f,0xff,0x52,0x0,0x46,0x1, +0x41,0x2,0x55,0x2,0xd0,0x1,0xb4,0x1,0x76,0x1,0x79,0x0, +0x78,0x0,0x8a,0x2,0xed,0x3,0x58,0x3,0x74,0x3,0xfd,0x4, +0x4f,0x6,0xb5,0x6,0x70,0x6,0x70,0x6,0xc1,0x6,0x59,0x6, +0x65,0x5,0x6e,0x4,0x34,0x3,0x3e,0x1,0xcd,0xfe,0x6b,0xfd, +0x8d,0xfd,0x18,0xfe,0xce,0xfe,0x8f,0xff,0xa6,0x0,0xfc,0x2, +0x17,0x5,0x2b,0x5,0x11,0x4,0xa5,0x2,0xfa,0x0,0xba,0xff, +0xfa,0xfe,0x18,0xfe,0x91,0xfd,0x64,0xfe,0xaf,0xff,0x39,0x0, +0x92,0x0,0x1e,0x1,0x53,0x1,0x56,0x0,0xee,0xfd,0x45,0xfc, +0x1f,0xfc,0xe5,0xfa,0x29,0xf9,0xa7,0xf9,0x18,0xfb,0x2b,0xfc, +0x76,0xfe,0x99,0x1,0x3d,0x3,0x97,0x3,0x3,0x4,0xa7,0x3, +0x55,0x2,0x4e,0x1,0xc1,0xff,0xa5,0xfd,0xe6,0xfc,0x1,0xfd, +0x31,0xfd,0xa,0xfe,0xb0,0xfe,0x5a,0xff,0xcd,0x0,0xaf,0x1, +0x1e,0x2,0x9b,0x2,0xc4,0x1,0x7f,0x0,0x2a,0x0,0x87,0xff, +0x68,0xfe,0xc8,0xfd,0x9b,0xfd,0xd3,0xfd,0x63,0xfe,0x3c,0xff, +0x5e,0x0,0x66,0x1,0xef,0x1,0xac,0x1,0xff,0x0,0x68,0x0, +0xfb,0xfe,0xee,0xfc,0xe6,0xfb,0x92,0xfb,0xc8,0xfb,0xc,0xfd, +0xd1,0xfd,0xed,0xfd,0x6c,0xff,0xef,0x1,0xa9,0x3,0x67,0x4, +0xc0,0x4,0xaa,0x4,0x89,0x3,0x9c,0x1,0x7d,0xff,0xe1,0xfc, +0x52,0xfa,0x3,0xf9,0x68,0xf8,0x2,0xf8,0x1c,0xf9,0x82,0xfb, +0xd,0xfd,0xd8,0xfd,0x1e,0xff,0xfe,0xff,0x14,0x0,0xbe,0xff, +0x7a,0xfe,0x91,0xfd,0x13,0xfe,0x5f,0xfe,0x89,0xfe,0xb6,0xff, +0xde,0x0,0x6a,0x1,0xae,0x1,0x99,0x1,0x2c,0x1,0xf6,0xff, +0x79,0xfd,0x84,0xfa,0xf5,0xf8,0xe8,0xf8,0x26,0xf8,0xfd,0xf6, +0x8c,0xf7,0x28,0xf9,0x44,0xfb,0xf8,0xfd,0xbd,0xff,0xc8,0x0, +0x9,0x2,0x69,0x2,0xb0,0x1,0x75,0x0,0x1,0xff,0x5e,0xfe, +0xa8,0xfe,0x96,0xfe,0xb7,0xfd,0xf6,0xfc,0xf7,0xfc,0xde,0xfc, +0x10,0xfc,0x6b,0xfb,0xbe,0xfb,0xcc,0xfc,0x91,0xfd,0xf1,0xfd, +0x93,0xfe,0xce,0xfe,0x48,0xfe,0x2,0xfe,0x65,0xfe,0x16,0xff, +0x8d,0xff,0x2d,0x0,0x56,0x1,0xbc,0x1,0x16,0x2,0x8e,0x3, +0xa4,0x3,0x45,0x2,0xe8,0x1,0xc8,0x1,0x55,0x1,0xb6,0x0, +0xd5,0xfe,0xe7,0xfc,0xac,0xfc,0x8d,0xfd,0x91,0xfe,0x5e,0xff, +0x72,0x0,0x16,0x2,0xa1,0x3,0x78,0x4,0x13,0x4,0xf6,0x2, +0xea,0x1,0xf,0x0,0xd4,0xfd,0xd8,0xfc,0x71,0xfc,0xba,0xfb, +0x7d,0xfb,0x34,0xfc,0xb,0xfd,0x9e,0xfd,0xe7,0xfe,0x5a,0x0, +0xd4,0x0,0x76,0x1,0x2e,0x2,0xcd,0x1,0x49,0x1,0x32,0x1, +0xd2,0x0,0xf0,0xff,0x58,0xff,0x50,0x0,0x85,0x1,0x4b,0x1, +0x7b,0x1,0x87,0x2,0x80,0x2,0xb7,0x1,0xe3,0x0,0x1d,0xff, +0x6c,0xfc,0x98,0xfa,0x17,0xfa,0x2c,0xf9,0xbb,0xf8,0x9,0xfb, +0xf3,0xfd,0x56,0xff,0x32,0x1,0x58,0x4,0x53,0x6,0x36,0x6, +0x12,0x6,0x7,0x6,0x6c,0x4,0xba,0x2,0xbe,0x1,0xe8,0xff, +0x74,0xfe,0x4a,0xfe,0x89,0xfd,0xfc,0xfb,0xc,0xfb,0xbe,0xfb, +0xf7,0xfc,0x87,0xfc,0xf4,0xfb,0xb0,0xfc,0xc7,0xfc,0x7f,0xfc, +0xcb,0xfc,0xc6,0xfc,0xb1,0xfd,0x58,0x0,0x69,0x2,0x12,0x3, +0xb9,0x3,0x7e,0x4,0x33,0x4,0xc2,0x2,0xea,0x0,0xbc,0xfe, +0x78,0xfc,0xc1,0xfa,0x9b,0xf9,0xbc,0xf8,0x33,0xf8,0xc9,0xf8, +0x24,0xfa,0x7a,0xfa,0xa1,0xfa,0x1e,0xfc,0x5e,0xfd,0xf,0xfe, +0x56,0xff,0x21,0x0,0xa,0x0,0x8,0x0,0xd1,0xff,0x54,0xff, +0x37,0xff,0x3e,0xff,0xbe,0xfe,0xfe,0xfd,0x21,0xfe,0xca,0xfe, +0x67,0xfe,0xaf,0xfd,0x21,0xfe,0xc8,0xfe,0xba,0xfe,0xb0,0xfe, +0x3b,0xfe,0x7c,0xfc,0x8,0xfb,0x3b,0xfb,0x7f,0xfb,0x3b,0xfb, +0x45,0xfc,0x70,0xfe,0xf9,0xff,0x33,0x1,0x76,0x2,0x71,0x2, +0x1,0x1,0x1,0xff,0xc2,0xfc,0x56,0xfb,0x55,0xfb,0x55,0xfb, +0xff,0xfa,0xa5,0xfb,0xb,0xfd,0xf8,0xfd,0x56,0xfe,0x67,0xfe, +0xf,0xfe,0x91,0xfd,0x52,0xfd,0x33,0xfd,0x11,0xfd,0x12,0xfd, +0x63,0xfd,0x9d,0xfd,0xda,0xfc,0x3,0xfc,0xba,0xfc,0x1c,0xfd, +0x9d,0xfb,0xf7,0xfa,0xa9,0xfb,0xc9,0xfb,0x73,0xfc,0x78,0xfd, +0x39,0xfd,0x12,0xfe,0x48,0x0,0x71,0x0,0x1a,0x0,0xa4,0x1, +0x66,0x2,0xe3,0x1,0x77,0x2,0xf,0x3,0x29,0x2,0x25,0x1, +0xeb,0x0,0x6a,0x0,0xc6,0xfe,0x13,0xfd,0xa2,0xfc,0xa8,0xfc, +0x59,0xfc,0xb0,0xfc,0x2d,0xfe,0x81,0xff,0xc9,0xff,0x2c,0x0, +0x4c,0x1,0xbb,0x1,0x26,0x1,0xdf,0x0,0x21,0x1,0x52,0x1, +0x5f,0x1,0x97,0x1,0xa2,0x1,0xe0,0x0,0xa,0x0,0xac,0xff, +0x89,0xff,0xc8,0xff,0x6a,0xff,0x78,0xfe,0x42,0xff,0xc9,0x0, +0x0,0x1,0x5f,0x1,0x5a,0x2,0x9e,0x2,0xfa,0x1,0x21,0x1, +0x32,0x1,0x7a,0x1,0xde,0x0,0xbb,0x0,0xb7,0x0,0x94,0xff, +0x49,0xff,0x58,0x0,0x6d,0x0,0x95,0xff,0xe6,0xff,0x1c,0x1, +0x45,0x1,0xb,0x1,0x89,0x1,0x7f,0x1,0x75,0x1,0x21,0x2, +0xc9,0x1,0x59,0x1,0x5c,0x2,0x20,0x3,0x6,0x3,0x1a,0x3, +0x9a,0x3,0x7,0x4,0x21,0x4,0x88,0x4,0x3d,0x4,0x4b,0x2, +0x59,0x1,0xad,0x1,0x5c,0x0,0xdd,0xfe,0xb2,0xff,0xc5,0x0, +0x2c,0x0,0xe5,0xff,0x85,0x1,0xb4,0x2,0xf5,0x1,0x52,0x1, +0x43,0x1,0x13,0x1,0xc5,0x1,0x17,0x3,0xcd,0x3,0x3b,0x4, +0x89,0x4,0x70,0x4,0x78,0x4,0x7c,0x4,0x5c,0x3,0x7f,0x1, +0x8c,0x0,0x5c,0x0,0xb,0x0,0x33,0x0,0x8,0x1,0x5a,0x1, +0xe3,0x0,0x3,0x1,0xff,0x1,0x24,0x2,0x1a,0x1,0xef,0xff, +0x10,0xff,0xea,0xfe,0x26,0xff,0x79,0xff,0xe0,0x0,0x5,0x2, +0x96,0x1,0x11,0x2,0x63,0x3,0xd3,0x2,0x9d,0x1,0x95,0x1, +0xa5,0x1,0xad,0x1,0x74,0x2,0x87,0x2,0x47,0x1,0x2f,0x1, +0x16,0x2,0x2e,0x1,0xc8,0xff,0x45,0x0,0x66,0x1,0x6e,0x1, +0x48,0x0,0x61,0xff,0x8c,0xff,0xdb,0xff,0x56,0x0,0xf0,0x0, +0xec,0x0,0x5,0x1,0x5c,0x1,0xba,0x1,0x1a,0x2,0x44,0x1, +0x82,0x0,0xd6,0x0,0xa,0x0,0xa6,0xff,0x9b,0x0,0xb8,0xff, +0xfd,0xfe,0x15,0x0,0x92,0xff,0x36,0xff,0xcd,0x0,0x57,0x0, +0xbd,0xfe,0xcd,0xff,0x94,0x1,0x2,0x2,0x40,0x2,0xba,0x2, +0x34,0x3,0x12,0x3,0xba,0x1,0x24,0x1,0x1d,0x2,0x8c,0x1, +0xd6,0xff,0x27,0x0,0xa1,0x0,0xb4,0xff,0xe0,0xff,0x86,0x0, +0xea,0xff,0xf7,0xff,0x2b,0x1,0x9e,0x1,0x74,0x1,0x84,0x1, +0x2e,0x1,0xb6,0x0,0x30,0x1,0xe2,0x1,0xee,0x1,0x9,0x2, +0xa,0x2,0x5f,0x1,0xd0,0x0,0x8d,0x0,0xf7,0xff,0xfa,0xfe, +0xb8,0xfd,0x7,0xfd,0x7b,0xfd,0x35,0xfe,0xf,0xff,0xe4,0xff, +0xdf,0xff,0xba,0x0,0xd2,0x2,0xe1,0x2,0x38,0x2,0x74,0x3, +0x58,0x3,0xb2,0x1,0x6b,0x1,0x6c,0x0,0x73,0xfe,0xc6,0xfd, +0xd6,0xfc,0x4,0xfc,0x1a,0xfd,0xf6,0xfd,0x2f,0xfe,0x52,0xff, +0x16,0x0,0x44,0xff,0x49,0xfe,0x8e,0xfe,0x82,0xfe,0xb0,0xfc, +0xc1,0xfb,0xce,0xfc,0x9a,0xfd,0x80,0xfe,0x1,0x0,0x2e,0x1, +0xc4,0x2,0x49,0x4,0xd2,0x4,0x97,0x5,0xbf,0x5,0x5b,0x4, +0x9c,0x3,0x76,0x3,0x62,0x2,0xbb,0x1,0xa8,0x1,0xfe,0x0, +0x7c,0x1,0x45,0x3,0xc9,0x3,0x48,0x4,0x3f,0x6,0xc8,0x6, +0x22,0x6,0x60,0x7,0xcf,0x7,0xe,0x5,0x9c,0x3,0x8e,0x4, +0xea,0x3,0x25,0x3,0x2a,0x4,0xaa,0x3,0xe8,0x2,0xb1,0x4, +0xd,0x5,0xaa,0x3,0x8b,0x4,0x22,0x5,0x4b,0x3,0x30,0x2, +0x19,0x2,0xa1,0x1,0xeb,0x0,0xcb,0xff,0x77,0xff,0x5e,0x0, +0x50,0x0,0xf2,0xff,0xd0,0x0,0x19,0x1,0xb2,0x0,0xc,0x1, +0x70,0x1,0x1b,0x2,0xfc,0x2,0xe0,0x2,0x55,0x3,0x27,0x4, +0x44,0x3,0xd9,0x2,0x55,0x3,0xfc,0x2,0xf0,0x2,0x35,0x2, +0x61,0x1,0x1,0x3,0xcb,0x2,0x2b,0x1,0xf5,0x3,0x90,0x5, +0x70,0x3,0x90,0x5,0x2f,0x9,0xc7,0x8,0x8c,0x9,0x7f,0xb, +0xb8,0x9,0x3b,0x8,0x7e,0xa,0x67,0xb,0x97,0x9,0xeb,0x9, +0xfe,0xb,0x7a,0xc,0x7f,0xc,0x26,0xc,0x89,0x9,0x93,0x5, +0x50,0x1,0x94,0xfc,0x1c,0xf7,0x33,0xf1,0xa0,0xed,0xd4,0xec, +0xe6,0xea,0xba,0xe8,0x7b,0xea,0x6c,0xed,0x78,0xed,0x13,0xed, +0x93,0xed,0x57,0xec,0xd,0xeb,0xc2,0xeb,0x71,0xea,0x19,0xe7, +0x10,0xe7,0x64,0xe8,0xd3,0xe6,0x98,0xe5,0x75,0xe6,0xc2,0xe5, +0xa4,0xe3,0xbd,0xe2,0x42,0xe2,0x88,0xe1,0xbc,0xe0,0x52,0xdf, +0x2c,0xdf,0x12,0xe1,0x3c,0xe2,0x33,0xe3,0xcb,0xe5,0xd,0xe8, +0x8d,0xe9,0xe9,0xeb,0x52,0xee,0xe1,0xef,0x7,0xf1,0xbe,0xf1, +0xc5,0xf1,0x69,0xf1,0xee,0xf0,0x27,0xf0,0x48,0xef,0x8c,0xee, +0xa,0xee,0xc6,0xee,0xa0,0xf0,0xd3,0xf1,0x83,0xf2,0xc,0xf4, +0x32,0xf6,0x2c,0xf7,0x6b,0xf6,0x31,0xf6,0xcd,0xf6,0x84,0xf6, +0x65,0xf6,0x1c,0xf6,0xb7,0xf4,0x72,0xf5,0x55,0xf7,0x3c,0xf6, +0x25,0xf5,0x58,0xf6,0x37,0xf6,0xab,0xf4,0x31,0xf4,0xad,0xf3, +0xd,0xf2,0x1d,0xf1,0x7f,0xf1,0xf6,0xf1,0xf7,0xf2,0xef,0xf4, +0x69,0xf6,0x77,0xf7,0x50,0xf9,0xfc,0xfb,0x87,0xfe,0x2b,0xff, +0x46,0xfe,0x85,0xfe,0xa7,0xff,0x8,0x0,0x8,0x0,0xa5,0xff, +0x52,0xff,0xeb,0x0,0x7f,0x3,0x9c,0x4,0xa6,0x5,0x96,0x8, +0x67,0xb,0xc1,0xc,0x42,0xe,0x42,0x10,0xf,0x12,0xa2,0x13, +0xa6,0x14,0x66,0x15,0x8e,0x16,0xd4,0x17,0xd4,0x18,0x55,0x19, +0xd1,0x19,0x4c,0x1b,0x32,0x1d,0x14,0x1e,0x9,0x1e,0x45,0x1e, +0x18,0x1f,0x5d,0x1f,0xf7,0x1e,0x1c,0x1f,0x54,0x1f,0xfa,0x1e, +0xfb,0x1e,0x7,0x1f,0x4e,0x1e,0x24,0x1e,0xca,0x1e,0x29,0x1e, +0x82,0x1c,0xaf,0x1b,0xca,0x1a,0x81,0x19,0x6f,0x19,0x1b,0x19, +0xa7,0x16,0x9a,0x14,0x51,0x14,0xf9,0x12,0x42,0x10,0x77,0xf, +0xfa,0xf,0x80,0xe,0xbe,0xc,0x0,0xd,0xd3,0xc,0x65,0xb, +0x8d,0xa,0xeb,0x9,0x61,0x8,0x44,0x6,0xce,0x4,0x46,0x4, +0xc3,0x2,0xef,0xff,0x9,0xfe,0x29,0xfd,0xab,0xfb,0xdc,0xf9, +0xd6,0xf8,0x26,0xf8,0x27,0xf7,0x36,0xf6,0x38,0xf5,0x3c,0xf4, +0x86,0xf3,0x7,0xf2,0x14,0xf0,0xc1,0xee,0x52,0xed,0x6,0xed, +0x84,0xee,0x94,0xee,0xa1,0xed,0xca,0xee,0x2,0xf1,0xc9,0xf1, +0x9a,0xf0,0xcb,0xef,0x4b,0xf1,0x28,0xf2,0xcc,0xf0,0xda,0xef, +0xe1,0xef,0x40,0xf0,0xce,0xf0,0x9c,0xf0,0x22,0xf0,0x60,0xf0, +0x85,0xf1,0xb7,0xf2,0xaf,0xf1,0x31,0xf0,0x3e,0xf2,0x13,0xf5, +0x3d,0xf5,0x61,0xf5,0x50,0xf7,0x74,0xf9,0x26,0xfa,0x81,0xf9, +0xee,0xf9,0xe7,0xfb,0xb1,0xfc,0x80,0xfb,0xf3,0xf9,0x1a,0xfa, +0x32,0xfc,0x58,0xfc,0x82,0xf9,0x8b,0xf8,0x7b,0xfa,0x8e,0xfb, +0x81,0xfa,0xa0,0xf9,0x6c,0xfb,0xe3,0xfd,0x69,0xfe,0x61,0xff, +0x7c,0x0,0xe1,0x0,0xb0,0x4,0x37,0x8,0x27,0x6,0x2c,0x5, +0x2,0x7,0x2a,0x7,0xb8,0x8,0x5c,0xb,0x61,0xb,0x1a,0xb, +0x3f,0xb,0x11,0xd,0x88,0x11,0x74,0x11,0x72,0xd,0x6f,0xe, +0x55,0x11,0xe4,0x11,0x6d,0x13,0x73,0x13,0x1b,0x12,0xda,0x15, +0xa1,0x19,0x7c,0x17,0xb4,0x16,0xdf,0x19,0x99,0x1b,0x21,0x1b, +0xd0,0x18,0xb,0x17,0xf8,0x19,0xa3,0x1c,0x30,0x1a,0x31,0x17, +0xd7,0x16,0x30,0x19,0xd0,0x1b,0x5,0x1a,0x4d,0x18,0x93,0x1b, +0x3,0x1c,0xbe,0x17,0xcb,0x17,0x3,0x1c,0x68,0x1d,0x13,0x1b, +0xf7,0x17,0x55,0x16,0xf0,0x16,0x5e,0x18,0x15,0x17,0x79,0x12, +0x62,0x11,0x95,0x16,0x55,0x18,0xe,0x13,0xd,0x11,0xeb,0x13, +0xf9,0x11,0xe5,0xb,0x3,0x9,0x42,0x7,0xfe,0x3,0xc,0x3, +0x5c,0x2,0xb3,0xfd,0xfc,0xfc,0x32,0x4,0x3e,0x6,0xb4,0xff, +0x47,0xfe,0x4c,0x2,0xf1,0xff,0xa9,0xf9,0x29,0xf9,0x25,0xfb, +0xe6,0xf6,0xa7,0xf0,0x28,0xf1,0x9e,0xf2,0x9d,0xef,0xc9,0xef, +0x95,0xf0,0x38,0xea,0xbc,0xe7,0xef,0xed,0x3a,0xed,0x24,0xe5, +0x25,0xe5,0xd0,0xea,0x2f,0xe9,0x8,0xe4,0x70,0xe5,0xe,0xe8, +0xcb,0xe4,0x14,0xe3,0x57,0xe6,0xe6,0xe6,0x31,0xe6,0x44,0xe9, +0xe,0xea,0xf2,0xe6,0x9c,0xe7,0xf5,0xea,0x77,0xe9,0x56,0xe4, +0xf5,0xe2,0x54,0xe5,0x12,0xe4,0xb0,0xe0,0x72,0xe2,0xe2,0xe4, +0x11,0xe4,0x34,0xe6,0xff,0xe8,0x67,0xe7,0x5,0xe8,0xfa,0xeb, +0xc,0xec,0xa,0xea,0xe6,0xea,0xfa,0xeb,0x8,0xeb,0x3,0xeb, +0xe4,0xec,0xe,0xee,0x6b,0xee,0xf3,0xef,0x95,0xf2,0x7e,0xf4, +0xd0,0xf3,0x9b,0xf2,0xf4,0xf3,0x7e,0xf4,0x80,0xf2,0x86,0xf2, +0x35,0xf4,0xe6,0xf4,0xb7,0xf6,0xaf,0xf9,0xab,0xfb,0x6a,0xfd, +0x28,0xff,0xa8,0xff,0x55,0xff,0x4b,0xff,0xb0,0xfe,0x5c,0xfc, +0x92,0xf9,0x63,0xf8,0x6e,0xf9,0x23,0xfb,0xa3,0xfb,0xc8,0xfc, +0x3a,0x0,0xf4,0x2,0x9b,0x3,0x4f,0x4,0x4,0x6,0xe7,0x7, +0xac,0x7,0xbe,0x5,0x41,0x6,0x4b,0x8,0x60,0x8,0xfb,0x7, +0xc5,0x7,0x80,0x7,0xba,0x9,0x77,0xc,0xae,0xb,0xf8,0x9, +0xce,0x9,0x89,0x9,0xbc,0x8,0x4b,0x7,0xcb,0x5,0x16,0x6, +0x4c,0x6,0xda,0x4,0xcd,0x4,0xe1,0x6,0x8d,0x8,0xed,0x8, +0x58,0x9,0x8a,0xb,0x48,0xd,0xb4,0xb,0x9e,0x9,0xdd,0x8, +0x45,0x7,0x47,0x4,0x87,0x0,0xb1,0xfd,0xab,0xfc,0x83,0xfb, +0xfc,0xfa,0x2d,0xfc,0x5a,0xfc,0xbd,0xfb,0x23,0xfc,0x30,0xfc, +0x9c,0xfb,0xb0,0xfb,0x72,0xfc,0x85,0xfc,0x30,0xfb,0xab,0xfa, +0x8f,0xfb,0x18,0xfb,0x77,0xf9,0x33,0xf9,0xca,0xf9,0xf7,0xf8, +0xb0,0xf7,0x22,0xf8,0x78,0xf7,0x5a,0xf4,0x68,0xf3,0xe7,0xf3, +0xf6,0xf1,0xa1,0xf0,0xa5,0xf1,0x23,0xf2,0xbe,0xf2,0x23,0xf5, +0xc,0xf7,0xda,0xf6,0x4e,0xf7,0x37,0xf9,0xd,0xf9,0x4d,0xf7, +0xe6,0xf6,0x96,0xf6,0xbb,0xf5,0x1b,0xf5,0xb9,0xf3,0x18,0xf2, +0xba,0xf1,0x69,0xf2,0xc8,0xf2,0x56,0xf2,0x7,0xf3,0xd4,0xf4, +0xf2,0xf4,0x7a,0xf4,0x8d,0xf5,0xc9,0xf6,0x63,0xf7,0x97,0xf7, +0x6c,0xf7,0xf7,0xf7,0x24,0xf9,0x3f,0xf9,0xdc,0xf8,0xa9,0xf9, +0xb,0xfa,0x4a,0xf9,0x19,0xfa,0xe1,0xfa,0x86,0xf9,0x3b,0xfa, +0x8d,0xfc,0xe4,0xfb,0x9,0xfb,0xf0,0xfb,0x20,0xfc,0xe4,0xfc, +0x2e,0xfe,0xbf,0xfd,0x5b,0xfe,0x3d,0x1,0x5d,0x2,0x2a,0x1, +0xf0,0x0,0x7d,0x2,0xf4,0x3,0xd0,0x3,0x44,0x3,0xaf,0x4, +0xa8,0x6,0x2e,0x7,0x3b,0x8,0xb8,0x9,0xd9,0x9,0xc5,0xa, +0x64,0xc,0xd,0xc,0x69,0xb,0x94,0xb,0x3f,0xb,0x46,0xb, +0x8a,0xc,0xc3,0xe,0xd1,0x10,0x1c,0x11,0x92,0x11,0xb,0x14, +0x33,0x15,0x62,0x13,0x93,0x11,0xfb,0x10,0x9a,0x10,0x97,0x10, +0x9a,0x10,0xeb,0xf,0x61,0x10,0xd6,0x12,0xc1,0x14,0x87,0x15, +0xba,0x16,0xb4,0x17,0x4c,0x17,0x88,0x16,0x1f,0x16,0x91,0x14, +0x44,0x12,0x56,0x11,0x8e,0xf,0xa2,0xc,0x33,0xd,0x52,0xe, +0x9f,0xb,0xaf,0xa,0x73,0xd,0x37,0xe,0x21,0xc,0x3a,0xb, +0x6c,0xd,0x7a,0xe,0x94,0xb,0xe1,0xa,0x12,0xd,0xaf,0xb, +0x57,0xa,0xcd,0xc,0xa7,0xd,0x9c,0xd,0xf6,0xf,0x95,0x10, +0x14,0xf,0x8a,0xf,0xfd,0xf,0xd8,0xd,0x14,0xc,0x2e,0xc, +0xcb,0xb,0x29,0xa,0xf7,0x7,0x97,0x5,0xa0,0x4,0x79,0x5, +0x92,0x5,0x38,0x4,0x2b,0x4,0x3e,0x6,0xe8,0x7,0x4b,0x8, +0xd0,0x8,0x54,0x9,0x8e,0x9,0x38,0xa,0xd2,0xa,0x35,0xb, +0x6d,0xb,0x50,0xa,0x31,0x9,0x86,0x9,0xcf,0x8,0xcd,0x6, +0x9,0x6,0xd0,0x5,0xf,0x5,0x87,0x4,0xcc,0x3,0x32,0x2, +0x3b,0x0,0xfb,0xfe,0xb3,0xfe,0xd9,0xfd,0xbd,0xfc,0xed,0xfd, +0x31,0x0,0xf,0x0,0x79,0xfe,0xad,0xfe,0x59,0xff,0xe5,0xfc, +0xcb,0xf9,0xe1,0xf9,0x85,0xf9,0xc,0xf7,0x63,0xf7,0xea,0xf9, +0x48,0xfa,0x14,0xfa,0x99,0xfb,0x87,0xfc,0xc2,0xfa,0xc,0xf9, +0xe1,0xf9,0x2c,0xf9,0x5,0xf6,0x66,0xf6,0x4b,0xf8,0x93,0xf6, +0xd7,0xf6,0xb5,0xfa,0xdb,0xf9,0x7e,0xf6,0xeb,0xf8,0xd4,0xfa, +0xc9,0xf5,0x4a,0xf3,0xde,0xf5,0xc3,0xf3,0x24,0xf1,0x83,0xf5, +0x1d,0xf7,0x39,0xf3,0xb,0xf5,0x94,0xf9,0x7d,0xf7,0x51,0xf5, +0x46,0xf9,0x24,0xfc,0x93,0xf9,0x69,0xf7,0x41,0xf9,0x1c,0xfa, +0xc4,0xf6,0xee,0xf4,0xc8,0xf5,0x8a,0xf2,0x40,0xef,0xa8,0xf2, +0x5a,0xf3,0xb9,0xee,0xcf,0xf0,0xd4,0xf5,0x1e,0xf4,0xdc,0xf3, +0xfa,0xf7,0x5e,0xf7,0xba,0xf4,0xd6,0xf5,0xf8,0xf5,0xee,0xf3, +0x6d,0xf3,0x86,0xf3,0xfe,0xf2,0x8f,0xf2,0xde,0xf2,0x53,0xf4, +0x1e,0xf5,0x39,0xf5,0xe8,0xf6,0x84,0xf7,0xba,0xf5,0x62,0xf5, +0x9,0xf6,0xc5,0xf5,0x6,0xf6,0x75,0xf6,0xd0,0xf5,0xbc,0xf4, +0x9a,0xf5,0x19,0xf8,0x68,0xf7,0xc,0xf6,0x30,0xf9,0x18,0xfa, +0x31,0xf7,0x61,0xf8,0x25,0xfa,0x3d,0xf8,0xc,0xf8,0x23,0xf9, +0xc7,0xf8,0xea,0xf9,0xe4,0xfb,0xa,0xfc,0x6,0xfd,0x46,0x0, +0xed,0x1,0x45,0x1,0x2c,0x1,0xb0,0x0,0x57,0xff,0xb6,0xfe, +0x17,0xfd,0xdd,0xfa,0x15,0xfa,0xf2,0xf8,0x31,0xf8,0x16,0xf9, +0x49,0xf9,0x78,0xfa,0x33,0xfe,0x11,0x0,0x5,0xff,0xc8,0xfe, +0x95,0x0,0xd0,0x2,0x49,0x3,0x20,0x2,0x6f,0x3,0xde,0x7, +0x8e,0x9,0xe9,0x8,0x62,0xb,0x7b,0xc,0x84,0x9,0x37,0x9, +0xe2,0x8,0xa5,0x3,0xff,0xff,0xe3,0xfe,0xe9,0xfb,0x1e,0xfa, +0xcb,0xfa,0xef,0xfa,0xb7,0xfa,0x9,0xfb,0x4f,0xfc,0x8,0xff, +0x4e,0x1,0x66,0x2,0xdf,0x5,0xed,0xa,0xb5,0xb,0xad,0xb, +0x4b,0x10,0x3b,0x12,0x4c,0xf,0x77,0xf,0x50,0xf,0xf4,0x8, +0x46,0x3,0xf5,0x1,0x52,0xff,0x21,0xfa,0x14,0xf7,0x7b,0xf7, +0x7e,0xf8,0x85,0xf8,0x70,0xf8,0xb4,0xfa,0x11,0xff,0x49,0x1, +0x7b,0x2,0x1d,0x6,0x8b,0x8,0xa6,0x8,0x5,0x9,0x27,0x8, +0x8f,0x7,0x20,0x8,0x13,0x5,0x71,0x1,0x23,0x2,0x13,0x1, +0x95,0xfc,0xc3,0xfb,0x20,0xfd,0x36,0xfb,0xce,0xf9,0xe1,0xfa, +0x89,0xf9,0x2a,0xf8,0xee,0xfa,0x90,0xfb,0x3b,0xf8,0xd,0xf9, +0xb4,0xfd,0x24,0xff,0x3,0xff,0xa5,0x0,0x78,0x0,0xa7,0xfe, +0x15,0xff,0xe3,0xfe,0xc4,0xfb,0xf8,0xf8,0x7d,0xf7,0xfe,0xf6, +0xab,0xf6,0xe2,0xf5,0xbe,0xf7,0x86,0xfa,0x3,0xfa,0xfb,0xfa, +0x1c,0xff,0x80,0x0,0x55,0xff,0xbd,0xfe,0xa4,0xfe,0x62,0xfe, +0x36,0xfc,0xef,0xf7,0x2f,0xf6,0xd,0xfa,0xf9,0xfc,0xf9,0xf8, +0x71,0xf6,0xa5,0xfa,0xed,0xfc,0x79,0xfb,0x29,0xfa,0x0,0xf8, +0xad,0xf7,0xb,0xf9,0xac,0xf6,0xe4,0xf3,0x87,0xf5,0x2b,0xf8, +0x7d,0xf7,0x47,0xf5,0xe7,0xf7,0xa8,0xfc,0x78,0xfb,0xc2,0xf9, +0x22,0xfb,0xf5,0xf7,0x41,0xf5,0xab,0xf9,0x8f,0xf9,0xc3,0xf2, +0x76,0xf3,0x77,0xf9,0xfb,0xf7,0x91,0xf3,0xf8,0xf5,0x1e,0xfb, +0x2f,0xfc,0xe7,0xf9,0xaa,0xf7,0x2f,0xf7,0xa7,0xf8,0xa5,0xfa, +0x3c,0xf8,0xff,0xf0,0xf7,0xef,0x55,0xf7,0x9b,0xf9,0x93,0xf6, +0x7,0xf9,0x96,0xfd,0x2,0xff,0xdf,0x0,0x76,0x2,0x46,0x2, +0xd8,0x2,0x30,0x3,0xf,0x2,0x31,0x1,0x3d,0x1,0x3b,0x2, +0xb5,0x2,0x54,0x1,0xc,0x0,0x76,0xff,0xa0,0x0,0xd6,0x4, +0xef,0x4,0xf6,0xff,0x51,0x1,0x64,0x5,0x31,0x2,0x73,0x0, +0xaa,0x3,0x97,0x2,0xa3,0x0,0x7b,0x3,0x2a,0x6,0xb8,0x7, +0x51,0xa,0xaf,0xb,0x5a,0xa,0x7e,0x8,0xf8,0x8,0xc9,0x9, +0xac,0x7,0x7c,0x6,0x68,0x7,0xc1,0x5,0xf9,0x5,0x4e,0xc, +0xad,0xe,0x70,0x9,0x27,0x8,0x5e,0xd,0xae,0xf,0xd8,0xd, +0x49,0xd,0xdd,0xd,0x5d,0xd,0x34,0xc,0x23,0xb,0x2d,0xb, +0x2d,0xc,0x21,0xc,0x93,0xa,0x4,0x9,0x9f,0xa,0x65,0x10, +0x31,0x14,0xc4,0x13,0x12,0x15,0x9a,0x16,0x5,0x15,0xea,0x15, +0x31,0x17,0xbe,0x12,0xc7,0xf,0xb9,0x11,0x53,0x12,0xc4,0x13, +0xb2,0x17,0x67,0x18,0xe5,0x17,0x43,0x19,0x34,0x18,0x7c,0x15, +0x32,0x14,0xf7,0x11,0x51,0xf,0x4f,0xe,0xd7,0xd,0x58,0xf, +0x3a,0x12,0x50,0x12,0xf2,0x11,0xb3,0x13,0x9c,0x13,0xb7,0x12, +0x29,0x15,0x99,0x16,0xa1,0x12,0x9a,0xe,0x54,0xf,0x2b,0x10, +0x1c,0xd,0xd7,0xa,0x82,0xc,0x4a,0xd,0x8f,0xa,0x6e,0x9, +0xc,0xd,0xfe,0xf,0x3e,0xe,0x4a,0xc,0x5c,0xd,0x2b,0xe, +0x57,0xc,0xbc,0x9,0x1e,0x8,0x4a,0x6,0x82,0x4,0xb6,0x4, +0x5a,0x4,0x68,0x2,0x40,0x2,0x82,0x1,0x13,0xfe,0x75,0xfc, +0x6b,0xfc,0x24,0xfa,0x9c,0xf6,0xf4,0xf4,0x4a,0xf6,0xa1,0xf7, +0x23,0xf7,0xf7,0xf7,0xb0,0xfa,0xac,0xfc,0xbd,0xfc,0xfc,0xfb, +0xf4,0xfc,0xff,0xfc,0x99,0xf9,0xa9,0xf8,0x1b,0xfa,0x67,0xf8, +0xb,0xf7,0x3c,0xf7,0x3,0xf4,0xc4,0xee,0xd5,0xea,0xa2,0xe7, +0xc3,0xe3,0x26,0xe0,0x77,0xe0,0x6a,0xe3,0x5c,0xe4,0xd4,0xe5, +0x92,0xe9,0xbb,0xea,0x8a,0xe9,0xdd,0xe9,0xe1,0xe9,0xd2,0xe8, +0x4c,0xea,0x25,0xec,0x10,0xea,0xe7,0xe8,0xaf,0xec,0xca,0xee, +0xbf,0xeb,0x6e,0xea,0x35,0xed,0xf3,0xec,0xe0,0xe8,0x79,0xe8, +0x3b,0xeb,0x8a,0xeb,0xcb,0xea,0xbf,0xeb,0x4a,0xee,0xf8,0xf1, +0x95,0xf4,0xf9,0xf4,0xf2,0xf4,0x18,0xf6,0x1f,0xf8,0x1c,0xf8, +0xa9,0xf5,0x7d,0xf5,0xd8,0xf7,0x5d,0xf7,0xcb,0xf3,0x1b,0xf2, +0x1a,0xf3,0x3,0xf3,0x12,0xf1,0x3e,0xef,0x95,0xee,0x6a,0xf0, +0x99,0xf3,0xd6,0xf4,0xb3,0xf4,0x72,0xf5,0x83,0xf7,0x26,0xf9, +0xd2,0xf7,0x7,0xf6,0x1,0xf7,0xde,0xf7,0xbd,0xf6,0x8,0xf5, +0x99,0xf4,0x76,0xf7,0x6a,0xfa,0xa,0xf9,0xf,0xf7,0x8,0xf9, +0x1,0xfc,0x2e,0xfb,0x9d,0xf8,0x86,0xf9,0x40,0xfc,0xc8,0xfd, +0xf,0x0,0x5c,0x2,0x5a,0x3,0xc9,0x5,0xd4,0x8,0x7,0x9, +0x9,0x8,0x59,0x9,0xa9,0xb,0x61,0xb,0xfc,0x9,0x2c,0xb, +0xb,0xd,0xa7,0xc,0xec,0xb,0x4a,0xc,0x3,0xc,0xa4,0xb, +0x10,0xd,0xcf,0xd,0x80,0xc,0x95,0xc,0xe3,0xd,0x84,0xd, +0x45,0xc,0x79,0xb,0x4a,0xb,0xec,0xa,0x70,0x9,0xbd,0x8, +0x15,0x9,0x8f,0x8,0x3a,0x8,0x90,0x7,0x23,0x5,0x8f,0x3, +0xfe,0x2,0x4b,0x1,0x1d,0x0,0x69,0x0,0x43,0x0,0x1c,0xff, +0x44,0xfe,0x66,0xfe,0xc,0xfe,0x70,0xfc,0x65,0xfb,0xd8,0xfa, +0x9c,0xf8,0xf7,0xf5,0x1b,0xf5,0x7f,0xf4,0x88,0xf3,0xa6,0xf3, +0x7e,0xf3,0xd7,0xf2,0x94,0xf3,0xb1,0xf3,0xaa,0xf2,0x88,0xf3, +0x26,0xf4,0x5b,0xf2,0xd0,0xf1,0xc1,0xf2,0x5b,0xf2,0xf6,0xf1, +0xb0,0xf2,0xea,0xf2,0x73,0xf2,0x18,0xf2,0xd1,0xf1,0x36,0xf1, +0x51,0xf0,0x6c,0xf0,0x89,0xf1,0x89,0xf1,0x3,0xf1,0xe7,0xf1, +0xb7,0xf2,0x4e,0xf2,0xcb,0xf1,0xb0,0xf1,0xcd,0xf1,0x3e,0xf1, +0x50,0xf0,0x94,0xf0,0x73,0xf0,0xde,0xee,0x96,0xee,0xd7,0xef, +0x38,0xf0,0x51,0xef,0xbc,0xee,0x55,0xef,0x63,0xef,0xef,0xee, +0xe7,0xef,0x65,0xf0,0xf0,0xef,0x17,0xf1,0xcc,0xf1,0x80,0xf0, +0x6d,0xf0,0x45,0xf2,0xe2,0xf3,0x3e,0xf4,0xeb,0xf3,0x47,0xf4, +0x48,0xf5,0x1c,0xf6,0x96,0xf6,0x2e,0xf6,0x7f,0xf5,0x67,0xf6, +0xff,0xf7,0xd,0xf8,0x3d,0xf8,0x8b,0xfa,0x7c,0xfc,0xb,0xfd, +0x91,0xfe,0x18,0x1,0x9e,0x3,0x5c,0x5,0x3d,0x5,0x44,0x5, +0xba,0x6,0x62,0x7,0xdd,0x7,0x87,0x9,0x43,0xa,0x10,0xa, +0xf2,0xa,0x1,0xc,0x67,0xc,0xcf,0xd,0xa0,0xf,0x85,0xf, +0x51,0xf,0x7,0x11,0xa7,0x11,0x12,0xf,0x2d,0xc,0x85,0xc, +0x5d,0xf,0x26,0x11,0x73,0x11,0x5c,0x12,0x51,0x14,0x11,0x16, +0x71,0x16,0xd6,0x16,0x9d,0x18,0xe8,0x1a,0x35,0x1e,0x59,0x1f, +0x43,0x1a,0xbc,0x16,0x96,0x1a,0x9c,0x1e,0x7f,0x1f,0xb1,0x1f, +0x52,0x1f,0x8,0x1f,0xc0,0x1e,0xec,0x1d,0xe1,0x1c,0xe2,0x1a, +0x97,0x19,0xd6,0x1a,0xb9,0x1b,0x1b,0x1b,0x7a,0x1b,0xa8,0x1b, +0x8f,0x19,0xcc,0x19,0x2d,0x1e,0x51,0x1f,0x33,0x1c,0xf8,0x19, +0x3a,0x18,0xa0,0x18,0x56,0x1b,0x94,0x1a,0x82,0x18,0x3b,0x17, +0xb4,0x13,0x53,0x13,0xbf,0x16,0x3d,0x16,0x3,0x15,0x73,0x16, +0xae,0x14,0xf5,0x10,0x56,0x11,0x34,0x14,0x5d,0x16,0x69,0x17, +0xf7,0x14,0xbd,0x10,0xd9,0x10,0x35,0x12,0xca,0xf,0xba,0xb, +0xa9,0x6,0x67,0x5,0x4b,0xb,0x35,0xd,0x73,0x9,0xf3,0x8, +0xb3,0x8,0x1e,0x9,0x37,0xd,0x9a,0xc,0x68,0x9,0x87,0xb, +0xb8,0xb,0x19,0x7,0xa3,0x4,0x19,0x4,0x15,0x4,0x6c,0x5, +0x35,0x4,0x1f,0x0,0xf7,0xfd,0x3d,0xfd,0x52,0xfd,0xd6,0xfe, +0x6e,0xfc,0xbf,0xf6,0x74,0xf5,0xa6,0xf7,0x90,0xfa,0x46,0xfd, +0x4f,0xfc,0x4e,0xfa,0x4b,0xfa,0xa,0xfb,0x1f,0xfe,0xdd,0xfe, +0x4b,0xf9,0x3e,0xf6,0x80,0xf6,0xfc,0xf2,0x7f,0xf0,0x32,0xf3, +0x95,0xf3,0xd3,0xec,0x4b,0xe6,0x95,0xe8,0x6d,0xee,0x5c,0xed, +0x6a,0xe7,0xef,0xe5,0xc0,0xea,0x94,0xf0,0xb7,0xf3,0xc5,0xf1, +0xa1,0xeb,0x97,0xea,0x11,0xf1,0xee,0xf4,0x2f,0xf4,0xa,0xf5, +0x21,0xf8,0xcd,0xf8,0x5b,0xf3,0x62,0xed,0xe4,0xec,0x64,0xec, +0x23,0xea,0x7d,0xea,0xa7,0xeb,0x5a,0xec,0x52,0xed,0xe9,0xed, +0xe7,0xee,0x81,0xef,0x80,0xef,0xd1,0xef,0x32,0xef,0xa,0xf0, +0x53,0xf3,0x3e,0xf3,0xd7,0xef,0xac,0xee,0xe,0xf0,0xb3,0xf1, +0x77,0xf3,0x2b,0xf5,0x5d,0xf5,0x63,0xf5,0xb6,0xf6,0xe8,0xf5, +0x93,0xf2,0x22,0xf0,0x5a,0xee,0x8e,0xed,0x1,0xee,0x3b,0xee, +0xc4,0xef,0x40,0xf1,0x11,0xf0,0xff,0xef,0xdb,0xf1,0x98,0xf1, +0x7b,0xf0,0x5c,0xf2,0x99,0xf4,0x1c,0xf2,0x58,0xef,0x46,0xf2, +0xfe,0xf4,0x90,0xf3,0x4a,0xf2,0xa8,0xf1,0x8d,0xf1,0x1f,0xf3, +0x8b,0xf4,0x9,0xf5,0xcb,0xf3,0x2e,0xf2,0x4,0xf5,0x4d,0xf9, +0x57,0xf9,0x38,0xf8,0x53,0xf9,0x7e,0xfb,0x74,0xfd,0x66,0xfe, +0xb3,0xfd,0x44,0xfb,0xd,0xfa,0xb1,0xfc,0x75,0xfe,0xef,0xfb, +0xed,0xf9,0x80,0xfa,0x8f,0xfa,0xe6,0xf9,0xa4,0xf9,0x1a,0xf9, +0x85,0xf8,0x3f,0xf9,0x75,0xfb,0xc9,0xfd,0xf7,0xfe,0xe7,0xff, +0x5d,0x1,0xcb,0x1,0x3,0x2,0x6e,0x3,0x45,0x2,0xa,0xfe, +0x38,0xfc,0x81,0xfc,0x5a,0xfb,0x8,0xfa,0xbb,0xf9,0xf7,0xf9, +0x50,0xfb,0xbe,0xfd,0x50,0x0,0x3a,0x2,0x67,0x3,0xfc,0x3, +0x6c,0x3,0x49,0x2,0x6f,0x1,0xec,0xff,0x10,0xfe,0xd7,0xfd, +0x56,0xff,0xf,0x1,0x4c,0x2,0x1c,0x3,0xee,0x2,0x9e,0x1, +0x56,0x0,0xd2,0xfe,0xae,0xfc,0xba,0xfb,0xc5,0xfb,0x17,0xfb, +0x87,0xfa,0xde,0xfa,0x36,0xfb,0x60,0xfb,0x81,0xfc,0x9c,0xff, +0x92,0x3,0xe1,0x6,0x41,0x9,0xe,0xa,0x98,0x9,0x59,0x8, +0x35,0x5,0xc5,0x1,0xe8,0xff,0x72,0xfd,0x86,0xfa,0x2a,0xfa, +0x70,0xfc,0xbf,0xff,0xd1,0x2,0x5a,0x5,0x66,0x7,0xbd,0x7, +0xfa,0x6,0x36,0x6,0x5e,0x3,0xfc,0xfe,0xa0,0xfc,0x45,0xfc, +0x56,0xfc,0xd0,0xfc,0x2b,0xfe,0x80,0x0,0xf5,0x2,0xe5,0x4, +0xa9,0x5,0x68,0x4,0xfa,0x2,0x1e,0x3,0xdd,0x2,0x51,0x1, +0x6a,0x0,0xd1,0x0,0x97,0x1,0x71,0x2,0x46,0x3,0x51,0x3, +0xd,0x3,0x17,0x4,0x8f,0x5,0x55,0x5,0xa8,0x3,0xfa,0x1, +0x9d,0x0,0x9d,0xfe,0x86,0xfc,0x2e,0xfc,0x37,0xfc,0x29,0xfb, +0x6a,0xfb,0xeb,0xfd,0xe2,0x0,0x76,0x3,0x4c,0x5,0xfc,0x5, +0x53,0x5,0xd4,0x3,0x5e,0x2,0x8e,0x0,0xcf,0xfe,0xb0,0xfd, +0x7a,0xfb,0xd0,0xf9,0xb7,0xfb,0xbb,0xfd,0x69,0xfd,0x63,0xfd, +0x3c,0xfe,0xeb,0xff,0x3e,0x2,0xb,0x2,0xa1,0xff,0x93,0xfe, +0xaf,0xfe,0x1c,0xff,0xc,0x0,0x69,0x0,0xbc,0x0,0xe4,0x1, +0x62,0x2,0xbc,0x2,0x4f,0x4,0x3a,0x5,0x52,0x4,0x0,0x3, +0x5,0x2,0xf0,0x0,0xf3,0xfe,0x67,0xfc,0x2a,0xfb,0x63,0xfb, +0x5d,0xfb,0x6,0xfb,0x7a,0xfb,0x78,0xfc,0x57,0xfd,0x36,0xfe, +0xe5,0xfe,0x2e,0xff,0xdb,0xff,0x19,0x1,0xe8,0x1,0x74,0x1, +0x9,0x0,0x82,0xff,0x56,0x0,0x85,0x0,0x86,0x0,0x2a,0x2, +0xe2,0x3,0x28,0x4,0x89,0x3,0x22,0x2,0x8c,0x0,0x5d,0xff, +0xee,0xfd,0xf0,0xfc,0xac,0xfd,0x35,0xff,0x6f,0x0,0x2a,0x1, +0x7f,0x0,0x95,0xfe,0x6,0xfd,0x80,0xfb,0x82,0xf9,0xd8,0xf8, +0xe8,0xf9,0xc9,0xfb,0x1e,0xff,0x37,0x3,0xc,0x6,0x30,0x8, +0xca,0xa,0x9c,0xc,0xff,0xc,0x57,0xd,0x78,0xd,0xb7,0xb, +0xb0,0x8,0xd1,0x5,0xe1,0x2,0xee,0xff,0x85,0xfd,0x3f,0xfc, +0xdc,0xfc,0x60,0xfe,0x68,0xff,0x45,0x0,0xd7,0x0,0xd4,0x0, +0xf,0x1,0x3e,0x1,0xb3,0x0,0x86,0x0,0x31,0x1,0x88,0x1, +0x4b,0x1,0x28,0x1,0xdf,0x1,0xf6,0x3,0x4,0x6,0x51,0x7, +0xc5,0x9,0xdd,0xb,0xad,0xa,0xee,0x8,0x56,0x8,0x96,0x6, +0x67,0x4,0xe0,0x2,0xc5,0x0,0x6d,0xff,0x4f,0x0,0x3e,0x1, +0x1d,0x1,0xeb,0x1,0xa3,0x3,0x4,0x4,0x7f,0x3,0xed,0x2, +0x5c,0x1,0x2b,0x0,0xb3,0x0,0x8c,0x1,0x8a,0x2,0x3d,0x4, +0x72,0x6,0xcb,0x8,0x5e,0xa,0xee,0xb,0xc0,0xd,0x3f,0xd, +0x14,0xb,0xf,0xa,0xe6,0x8,0x23,0x6,0xaf,0x3,0xe5,0x2, +0xe8,0x1,0xc3,0xff,0x3,0xff,0x8a,0xff,0x3d,0xff,0x21,0x0, +0x79,0x2,0x60,0x3,0x8c,0x3,0x1f,0x4,0x13,0x4,0xc5,0x2, +0xc,0x0,0xe2,0xfd,0xcb,0xfd,0xce,0xfd,0xe1,0xfd,0xa8,0xff, +0x2e,0x2,0x48,0x4,0xfc,0x4,0x61,0x3,0x2d,0x1,0xb8,0xff, +0xfb,0xfd,0x0,0xfc,0x93,0xfa,0xaa,0xf9,0x2,0xfa,0xe1,0xfb, +0x9f,0xfd,0x10,0xff,0x29,0x1,0xa3,0x2,0x15,0x3,0x4c,0x4, +0x83,0x5,0x3e,0x4,0xb8,0x0,0x16,0xfd,0x12,0xfb,0x38,0xfb, +0x26,0xfc,0x2b,0xfc,0xd5,0xfb,0x4c,0xfc,0x20,0xfd,0x7f,0xfd, +0x15,0xfd,0x6f,0xfc,0x62,0xfd,0x29,0x0,0x1d,0x3,0xc6,0x5, +0x4c,0x7,0x2e,0x6,0xdb,0x3,0x4b,0x2,0x88,0x0,0x1b,0xfe, +0xb0,0xfc,0x6f,0xfc,0x26,0xfc,0xaa,0xfc,0x71,0xfe,0x32,0xff, +0x9,0xfe,0x4c,0xfc,0x63,0xfa,0xb7,0xf8,0xf2,0xf7,0x1c,0xf8, +0xa,0xfa,0xc2,0xfd,0x52,0x1,0x23,0x4,0x48,0x6,0x60,0x6, +0xae,0x4,0xcc,0x2,0x2a,0x0,0xa0,0xfc,0x6e,0xf9,0x79,0xf6, +0xb8,0xf4,0x5d,0xf5,0xd5,0xf5,0x46,0xf5,0x28,0xf6,0xed,0xf7, +0x4a,0xf9,0x62,0xfa,0x26,0xfa,0x9e,0xf9,0xd,0xfb,0x1a,0xfd, +0x7b,0xfe,0xec,0xff,0x6f,0x1,0x6,0x3,0x5b,0x4,0xed,0x3, +0x86,0x1,0x5e,0xfe,0x66,0xfb,0x15,0xf9,0x11,0xf7,0x34,0xf5, +0x8f,0xf4,0xd7,0xf4,0x4a,0xf4,0x30,0xf3,0xd0,0xf2,0x58,0xf3, +0x9,0xf5,0xdc,0xf7,0x49,0xfb,0x44,0xff,0x66,0x3,0x28,0x7, +0x1f,0xa,0x36,0xb,0x56,0xa,0xba,0x8,0x98,0x6,0x59,0x3, +0xe0,0xff,0x6f,0xfd,0x7e,0xfa,0xa4,0xf6,0xac,0xf5,0x7a,0xf7, +0xea,0xf7,0xf,0xf7,0x1d,0xf6,0x39,0xf5,0xf5,0xf5,0x14,0xf7, +0xc0,0xf6,0x60,0xf7,0x8b,0xfa,0xd4,0xfe,0x97,0x2,0x67,0x5, +0x93,0x7,0xfd,0x7,0xa1,0x6,0x31,0x5,0x21,0x3,0xb7,0x0, +0x45,0xff,0x60,0xfd,0x22,0xfb,0x11,0xfa,0x77,0xf9,0x4e,0xf9, +0x7f,0xf9,0xf7,0xf8,0x86,0xf8,0xe8,0xf8,0xcd,0xf9,0x68,0xfb, +0xd,0xfd,0x77,0xfd,0x31,0xfd,0xea,0xfd,0xe2,0xfe,0x17,0xfe, +0xbd,0xfc,0x1c,0xfc,0x13,0xfb,0x34,0xfa,0x13,0xfa,0xd4,0xf9, +0x40,0xfa,0x50,0xfb,0x7b,0xfb,0x1f,0xfb,0x4d,0xfb,0xce,0xfb, +0xaa,0xfb,0x2b,0xfb,0xac,0xfb,0xe8,0xfc,0x12,0xff,0xc7,0x2, +0x8d,0x5,0x93,0x6,0x95,0x7,0x4b,0x7,0x14,0x5,0x7f,0x2, +0x48,0xff,0x4e,0xfc,0x26,0xfb,0x53,0xfa,0x5c,0xf9,0x85,0xf9, +0xf5,0xf9,0x56,0xfa,0xcc,0xfb,0x5f,0xfd,0x8a,0xfe,0xe1,0x0, +0x6c,0x3,0x92,0x4,0x86,0x5,0x20,0x6,0xaf,0x5,0xb0,0x5, +0x62,0x6,0x25,0x7,0x31,0x7,0x6f,0x5,0x35,0x4,0x70,0x4, +0x5f,0x2,0xe,0xff,0x7,0xfe,0x7b,0xfd,0x61,0xfc,0x68,0xfc, +0xdf,0xfd,0x4b,0x0,0xa2,0x1,0x1b,0x1,0xb1,0x1,0x4d,0x3, +0xf1,0x2,0xd7,0x1,0x36,0x2,0xb8,0x2,0x3e,0x2,0xbb,0x1, +0xbd,0x1,0xf6,0x1,0x1e,0x2,0xe5,0x1,0x4b,0x1,0x95,0x0, +0xaf,0xff,0x66,0xfe,0xc9,0xfc,0xcc,0xfb,0x65,0xfc,0xde,0xfd, +0x53,0xff,0xbf,0x0,0x5b,0x2,0x71,0x4,0x78,0x5,0x5c,0x4, +0x3e,0x3,0x41,0x2,0x26,0x0,0x65,0xfe,0x62,0xfd,0x8,0xfd, +0x51,0xfd,0x12,0xfc,0xe5,0xfa,0x6e,0xfc,0xe8,0xfd,0x55,0xff, +0x1a,0x3,0xf,0x7,0xb1,0x9,0xd6,0xb,0x83,0xd,0x96,0xd, +0xc1,0xa,0x59,0x7,0x59,0x5,0x29,0x2,0x73,0xfe,0xe8,0xfc, +0x3b,0xfc,0x50,0xfc,0x80,0xfe,0x9f,0x1,0x4,0x4,0x3f,0x5, +0xd,0x6,0xbf,0x6,0x11,0x7,0x9d,0x7,0xa4,0x7,0x19,0x6, +0xfc,0x4,0xcb,0x5,0x27,0x6,0x6c,0x3,0x2a,0x0,0xcc,0xff, +0xd8,0xfe,0x4d,0xfb,0x92,0xf9,0xa0,0xf9,0x7c,0xf8,0x98,0xf7, +0xf7,0xf7,0x6e,0xf8,0xac,0xf8,0x8d,0xf9,0x84,0xfb,0x27,0xfd, +0x69,0xfe,0xa3,0x0,0xb7,0x2,0xdd,0x3,0x8c,0x4,0x52,0x4, +0x62,0x3,0xa4,0x1,0x9f,0xfe,0x1d,0xfb,0x65,0xf7,0xea,0xf3, +0xf0,0xf1,0x79,0xf1,0xa2,0xf1,0xc,0xf2,0xf9,0xf3,0xfe,0xf7, +0xd4,0xfb,0x24,0xff,0x37,0x3,0x68,0x6,0xab,0x7,0x12,0x8, +0xc5,0x7,0xd6,0x6,0xd7,0x5,0xec,0x4,0xf1,0x3,0xde,0x2, +0xc6,0x1,0x30,0x1,0xcc,0x1,0x91,0x1,0xb,0xff,0xd6,0xfd, +0x28,0xfe,0x1a,0xfc,0x71,0xf9,0xd5,0xf7,0xea,0xf5,0x18,0xf6, +0x5d,0xf8,0xdf,0xf9,0xb,0xfd,0x2a,0x3,0x96,0x8,0xc0,0xb, +0x7a,0xd,0xb4,0xd,0x47,0xc,0x81,0x9,0xa7,0x5,0x92,0x1, +0x4c,0xfe,0x9e,0xfb,0x65,0xf9,0x12,0xf8,0xf3,0xf7,0x9d,0xf9, +0x53,0xfb,0x50,0xfb,0xc,0xfc,0xb5,0xfd,0xc2,0xfd,0x52,0xfd, +0xd5,0xfd,0xa3,0xff,0x4a,0x2,0x7f,0x3,0xd3,0x3,0x4b,0x4, +0x8f,0x3,0xd6,0x2,0xd2,0x1,0x7e,0xfe,0x72,0xfb,0x39,0xfa, +0xcd,0xf9,0xcd,0xfa,0x2e,0xfc,0x62,0xfc,0xf3,0xfb,0x6d,0xfb, +0x7a,0xfb,0x8c,0xfc,0x62,0xfe,0xbc,0x0,0x9e,0x3,0xcd,0x7, +0x2f,0xc,0x52,0xe,0xeb,0xe,0x5,0xf,0x66,0xd,0x27,0xa, +0xd8,0x6,0xbb,0x3,0x33,0x0,0xca,0xfc,0x2f,0xfa,0x2f,0xf8, +0xe6,0xf7,0x6e,0xf9,0x20,0xfa,0x6f,0xfa,0x1e,0xfd,0xbb,0x0, +0x5c,0x2,0x83,0x3,0x25,0x6,0xcb,0x6,0x6e,0x4,0x99,0x4, +0xb0,0x6,0x43,0x6,0xc2,0x6,0x21,0x9,0x83,0x7,0x28,0x3, +0xf6,0x1,0xc8,0x1,0xf3,0xfd,0xce,0xf9,0xe0,0xf8,0x0,0xf8, +0x2f,0xf7,0xce,0xf8,0x1e,0xfa,0x6a,0xfa,0xba,0xfb,0x3,0xfd, +0xd4,0xfd,0x3b,0xff,0x47,0x1,0x14,0x2,0x6,0x0,0x6b,0xfe, +0x8d,0xfe,0x96,0xfc,0x4c,0xfa,0x6a,0xfa,0x11,0xf9,0xdb,0xf5, +0xf9,0xf4,0xec,0xf5,0xd3,0xf5,0xf0,0xf5,0xaa,0xf7,0x71,0xf8, +0xe0,0xf8,0xbb,0xfb,0xbf,0xfd,0x9,0xfd,0xe5,0xfc,0xa7,0xfd, +0x20,0xfe,0xe5,0xfe,0xa9,0x0,0x96,0x2,0x9c,0x2,0x2a,0x2, +0xba,0x2,0xb2,0x1,0xf5,0xff,0x2f,0xff,0x57,0xfd,0xb9,0xfb, +0xe4,0xfb,0x3,0xfc,0x5,0xfc,0x8c,0xfc,0x96,0xfd,0x1f,0xff, +0x45,0x1,0xa,0x5,0xc9,0x8,0xe3,0x9,0xbb,0x9,0xd8,0x9, +0x78,0x9,0x13,0x7,0x47,0x3,0xcc,0x1,0x70,0x1,0xfb,0xfd, +0xfe,0xf9,0x56,0xf8,0x5c,0xf7,0x92,0xf6,0xfc,0xf5,0x95,0xf5, +0xee,0xf6,0x98,0xfa,0xa8,0xfe,0xde,0x0,0x40,0x1,0xc4,0x0, +0x85,0xff,0x55,0xfe,0x9e,0xfd,0x37,0xfd,0x26,0xfe,0x26,0x0, +0x9c,0x1,0x6e,0x1,0xa9,0xff,0x4e,0xfe,0x41,0xfd,0x8c,0xfa, +0x79,0xf8,0x64,0xf9,0x34,0xfb,0x5d,0xfc,0xd1,0xfd,0xa7,0xff, +0xa0,0x0,0x83,0x1,0x3a,0x3,0x69,0x3,0x5b,0x2,0xd9,0x2, +0x1a,0x3,0xda,0x1,0x5,0x1,0x21,0x0,0x2,0xff,0x92,0xff, +0x81,0x1,0x66,0x3,0x8f,0x5,0xa5,0x7,0xfa,0x7,0xd4,0x7, +0x71,0x8,0xc7,0x6,0x4d,0x4,0x73,0x5,0x57,0x6,0x37,0x4, +0xcb,0x3,0x6f,0x5,0x80,0x5,0x4a,0x4,0xa2,0x4,0xb4,0x6, +0xdd,0x6,0x29,0x5,0x6,0x5,0xef,0x3,0x14,0x0,0x2,0xfe, +0x37,0xfd,0x3d,0xfa,0x0,0xf9,0x9f,0xfb,0xe7,0xfc,0xec,0xfc, +0xf2,0xff,0xca,0x2,0xf5,0x1,0x1,0x1,0xb3,0x1,0x76,0x1, +0xca,0xfe,0x44,0xfb,0xc4,0xf9,0xb1,0xf9,0x16,0xf9,0x92,0xf8, +0xea,0xf6,0x58,0xf4,0x1b,0xf5,0x66,0xf7,0x63,0xf7,0xe9,0xf7, +0x6d,0xfa,0xb3,0xfc,0xa0,0xfd,0x41,0xfd,0xa8,0xfd,0xbf,0xfe, +0xd8,0xfd,0x44,0xfd,0x66,0xfe,0x2b,0xfe,0x1a,0xfe,0xbe,0xff, +0xae,0x0,0x84,0x1,0x96,0x2,0x97,0x2,0x9,0x2,0x9a,0xff, +0xbe,0xfb,0xc4,0xf9,0x5e,0xf7,0x85,0xf3,0xe7,0xf3,0x1,0xf8, +0xeb,0xf9,0x51,0xfb,0xd5,0xff,0xe5,0x3,0xaf,0x5,0xc,0x8, +0x1,0x8,0x69,0x3,0x43,0x0,0x71,0xfe,0x1,0xfa,0x67,0xf7, +0x93,0xf7,0x20,0xf6,0x7a,0xf5,0x9d,0xf7,0x3e,0xf9,0x46,0xf9, +0x53,0xf9,0xd8,0xfa,0x48,0xfc,0xbd,0xfb,0x4,0xfc,0x48,0xfd, +0x4d,0xfc,0x66,0xfb,0x8a,0xfc,0xff,0xfc,0xc5,0xfc,0xa6,0xfd, +0x30,0xff,0x91,0xff,0xfd,0xfe,0x9f,0x0,0xde,0x2,0x6,0x2, +0x9c,0x1,0x30,0x2,0x98,0xff,0x42,0xfd,0x1c,0xfd,0x32,0xfb, +0xd4,0xf9,0x81,0xfb,0xfe,0xfc,0xef,0xfd,0x45,0x0,0x9d,0x3, +0xe6,0x5,0x8d,0x6,0x34,0x8,0xf3,0x9,0x6d,0x8,0xfd,0x6, +0xa,0x8,0x52,0x7,0x2a,0x4,0xfb,0x1,0xd,0x1,0xe6,0xfe, +0x9e,0xfb,0x95,0xfb,0x60,0xfe,0x3a,0xff,0xb4,0x1,0xbf,0x7, +0xb6,0x9,0x4e,0x9,0x48,0xc,0x5f,0xc,0x11,0x9,0x8f,0x9, +0xd2,0x9,0x1f,0x6,0x42,0x4,0xc6,0x4,0x68,0x3,0x5b,0x1, +0x9a,0x1,0x97,0x2,0x9c,0x2,0xf9,0x3,0x6,0x6,0x77,0x5, +0x86,0x4,0x79,0x5,0xf,0x6,0x24,0x5,0x33,0x4,0xf2,0x4, +0xd4,0x5,0x62,0x5,0xd8,0x6,0x86,0x9,0xf6,0x9,0x6e,0xa, +0x68,0xb,0x39,0xb,0x69,0xb,0x7c,0xb,0xc7,0xa,0xe3,0x9, +0xd9,0x7,0x2d,0x6,0xea,0x5,0xdb,0x4,0xb8,0x3,0x38,0x4, +0xe2,0x5,0xcc,0x7,0xa3,0x8,0xe0,0x9,0x48,0xd,0xdf,0xd, +0x7d,0xa,0xc8,0xa,0xcc,0xc,0xcd,0x9,0xe3,0x7,0x75,0x8, +0x61,0x5,0x7d,0x4,0xef,0x6,0x9b,0x4,0xb5,0x2,0x1,0x6, +0x56,0x7,0x96,0x4,0xd0,0x2,0x29,0x5,0x99,0x5,0xd6,0xff, +0xf6,0xfd,0x2d,0x0,0x1f,0xfd,0x4d,0xfd,0xeb,0x3,0x5c,0x4, +0x93,0x1,0x66,0x4,0x60,0x6,0x64,0x2,0x1a,0xff,0xe0,0xff, +0x9,0xfe,0x9f,0xf9,0x57,0xfa,0xd8,0xfb,0xc,0xf8,0xc0,0xf6, +0x64,0xfa,0x59,0xf9,0xa7,0xf4,0x74,0xf7,0xf6,0xfc,0x7c,0xf8, +0x9a,0xf2,0xb9,0xf5,0x6e,0xf6,0xe3,0xf0,0x39,0xf1,0x97,0xf4, +0xc8,0xf0,0x79,0xed,0x2,0xf2,0x6d,0xf4,0x94,0xf1,0x85,0xf3, +0x1b,0xf8,0x53,0xf6,0xec,0xf3,0x55,0xf8,0x77,0xfb,0xae,0xf6, +0x4d,0xf4,0x39,0xf8,0x37,0xf6,0x5,0xf1,0x2d,0xf4,0x47,0xf7, +0x6,0xf4,0x24,0xf4,0x95,0xf9,0x5a,0xfc,0x91,0xfa,0x8,0xfb, +0x7e,0xfd,0xfc,0xf8,0xc2,0xf3,0x40,0xf7,0xa1,0xf8,0x99,0xf3, +0xba,0xf2,0x22,0xf5,0xe8,0xf4,0x95,0xf5,0x7c,0xf9,0x15,0xfb, +0xea,0xf8,0xb0,0xf9,0x62,0xfc,0xa4,0xfa,0x52,0xf8,0xf0,0xf8, +0x5,0xf8,0xf2,0xf3,0x54,0xf0,0x7a,0xf0,0x94,0xf1,0xa7,0xef, +0x3e,0xee,0x58,0xef,0xf8,0xef,0x0,0xf1,0x4a,0xf3,0x9f,0xf3, +0x4c,0xf1,0x25,0xf0,0x7e,0xf1,0x79,0xf1,0xab,0xef,0x32,0xef, +0xfb,0xee,0xda,0xed,0x75,0xed,0xb0,0xee,0x17,0xf1,0xbd,0xf2, +0xb4,0xf2,0x22,0xf2,0xa,0xf2,0x13,0xf3,0xc5,0xf3,0xd6,0xf2, +0x28,0xf2,0x35,0xf2,0xd7,0xf2,0xc1,0xf4,0x66,0xf6,0x46,0xf7, +0x9b,0xf8,0xa3,0xfa,0xdf,0xfc,0xdc,0xfd,0xca,0xfe,0xae,0x1, +0x9b,0x2,0xd1,0xff,0xc7,0xfe,0xb1,0x0,0x2d,0x1,0xdf,0xff, +0x90,0xff,0x38,0x0,0x3d,0x1,0x92,0x3,0x98,0x5,0xd,0x5, +0x39,0x4,0x62,0x5,0x17,0x6,0x67,0x4,0x7a,0x3,0x55,0x5, +0x16,0x6,0xff,0x3,0x8d,0x2,0xb7,0x2,0x5,0x3,0x7b,0x3, +0xca,0x2,0xa6,0xff,0xb2,0xfd,0x7a,0xff,0x81,0x0,0xb1,0xfe, +0xd8,0xfd,0x2e,0xfe,0xca,0xfd,0x50,0xfd,0xc0,0xfc,0x6f,0xfc, +0x82,0xfc,0xc3,0xfb,0x46,0xfb,0xa9,0xfb,0xcb,0xfb,0x97,0xfc, +0xc2,0xfd,0xf7,0xfc,0xc6,0xfa,0x92,0xfa,0xea,0xfc,0x49,0xfd, +0xce,0xfa,0x81,0xfa,0x2,0xfc,0xfc,0xfb,0xaf,0xfc,0xd5,0xfe, +0xf8,0xfe,0x9c,0xfd,0xa3,0xfe,0x77,0x1,0x1a,0x2,0x26,0x1, +0x37,0x2,0x82,0x4,0x7d,0x4,0x6c,0x2,0x3e,0x3,0x8d,0x7, +0x6f,0x9,0x0,0x9,0xa2,0x9,0xbb,0x8,0xcd,0x8,0x51,0xe, +0xe,0x11,0xdc,0xb,0xba,0x8,0x81,0xd,0x94,0x12,0x78,0x11, +0xce,0xd,0x18,0xd,0x2d,0xf,0x35,0x11,0xe7,0x10,0x50,0xe, +0x12,0xd,0x4b,0x10,0xda,0x15,0x6f,0x17,0xa2,0x13,0x0,0x12, +0xce,0x15,0x4d,0x18,0x71,0x15,0x49,0x11,0x54,0x11,0xcc,0x14, +0x7d,0x15,0x1d,0x12,0x8c,0xe,0x6,0xd,0x40,0xe,0xee,0xf, +0x78,0xf,0x4e,0xf,0x3,0x11,0x94,0x12,0x66,0x12,0xdb,0x10, +0x24,0x11,0x2e,0x13,0x90,0x12,0x31,0x10,0xb5,0xf,0x73,0x10, +0xeb,0xf,0x49,0xd,0x7,0xb,0xb,0xb,0xbb,0xc,0x0,0xf, +0x6c,0xe,0xdd,0xc,0x41,0x10,0xe9,0x11,0xc4,0xc,0xff,0x9, +0x83,0xb,0x60,0xd,0xc6,0xf,0x59,0xe,0x11,0xb,0x5e,0xf, +0x8b,0x16,0xcd,0x16,0xd4,0x10,0x72,0x9,0xdd,0x7,0xc4,0xc, +0xc5,0xa,0x6d,0x0,0xea,0xfe,0x16,0x7,0xf8,0xa,0x6a,0xa, +0x90,0xa,0xef,0xc,0xc6,0x13,0xe1,0x17,0x4,0x14,0x28,0x12, +0x86,0x13,0xd2,0x10,0x7e,0xe,0xab,0xd,0xda,0x7,0xba,0x1, +0xe8,0x1,0x14,0x3,0x5c,0x1,0x3c,0x1,0xa0,0x2,0x8f,0x0, +0xcd,0xfe,0xe3,0x3,0x50,0x9,0x7e,0x5,0xb1,0xff,0x8e,0x4, +0x34,0xd,0xa4,0xc,0xbf,0x7,0xbf,0x5,0x79,0x3,0x9,0x1, +0x68,0x0,0xd6,0xfd,0x58,0xf8,0x37,0xf5,0xa2,0xf6,0xe2,0xf5, +0x4d,0xee,0xc5,0xe8,0x74,0xed,0xe7,0xf1,0x9a,0xea,0x55,0xe4, +0x6c,0xec,0x1a,0xf4,0x76,0xf1,0xad,0xf0,0xb7,0xf2,0x2d,0xf2, +0x73,0xf3,0xbf,0xf4,0x50,0xf3,0xbf,0xf1,0x8b,0xf0,0x20,0xf3, +0xff,0xf4,0x90,0xee,0xdb,0xed,0x45,0xf7,0xc7,0xf5,0xb0,0xec, +0x95,0xef,0xe7,0xf2,0xf5,0xe9,0x4e,0xe5,0x2,0xe9,0xcb,0xe5, +0x28,0xe2,0x98,0xe8,0x4a,0xec,0x86,0xe8,0x1a,0xe8,0xf3,0xeb, +0xab,0xed,0x1c,0xeb,0xc0,0xea,0xe0,0xf1,0xcc,0xf5,0x1c,0xf1, +0x2d,0xf0,0xb9,0xf4,0xa2,0xf5,0x21,0xf5,0x77,0xf7,0x15,0xf7, +0x3e,0xf3,0x31,0xf6,0xe0,0xfd,0x63,0xfb,0xb4,0xf4,0x22,0xf8, +0xf6,0xf9,0xe2,0xf1,0x93,0xef,0x50,0xf4,0xdb,0xf2,0x36,0xf0, +0x64,0xf3,0x34,0xf5,0xce,0xf4,0x3,0xf6,0x38,0xf6,0x13,0xf6, +0xa6,0xf5,0x23,0xf3,0xc9,0xf3,0x60,0xf4,0xf0,0xed,0x9d,0xeb, +0x2,0xf0,0xa6,0xee,0x1d,0xef,0xb5,0xf8,0x7,0xfd,0x3a,0xfb, +0x27,0xfe,0x5f,0x1,0x68,0x0,0xbc,0xfe,0x77,0xfc,0xb6,0xf9, +0xf1,0xf7,0xdc,0xf7,0x7c,0xf9,0xd1,0xf8,0xd0,0xf5,0xfb,0xf7, +0xc5,0xfd,0x16,0xfd,0x7c,0xf7,0xff,0xf6,0x63,0xfa,0x69,0xf9, +0x4,0xf6,0x8,0xf5,0x84,0xf3,0xd4,0xf2,0x9e,0xf7,0x21,0xfb, +0x4f,0xf9,0x4f,0xfc,0x1d,0x5,0x3d,0x8,0xcf,0x6,0x66,0x8, +0x36,0x9,0xbc,0x6,0x8c,0x5,0xb3,0x4,0x4,0x1,0x32,0xfd, +0x9c,0xfd,0x55,0x1,0x6b,0x2,0xd3,0x1,0xc7,0x6,0x73,0xd, +0xdc,0xe,0x42,0x10,0x7e,0x13,0x77,0x11,0x46,0xc,0xbc,0xa, +0xc5,0x9,0xb6,0x5,0xa8,0x2,0x34,0x3,0x26,0x5,0x73,0x7, +0x42,0xa,0x3d,0xc,0x3,0xd,0x3,0xf,0x7e,0x12,0x59,0x13, +0xf8,0x10,0xbf,0xe,0x39,0xc,0xeb,0x8,0x84,0x7,0x2e,0x7, +0x33,0x6,0x56,0x7,0xa7,0xb,0xdf,0xe,0x8e,0xe,0xbb,0xe, +0x88,0x11,0x5f,0x12,0x80,0xf,0x68,0xb,0x81,0x6,0x8f,0x1, +0x44,0xfd,0xcf,0xf8,0xc,0xf5,0xe7,0xf2,0xb2,0xf3,0x28,0xf8, +0xe7,0xfb,0x4c,0xfd,0x81,0x0,0xeb,0x4,0xea,0x6,0x32,0x7, +0x6c,0x7,0x8d,0x6,0x50,0x3,0xc0,0xff,0xbb,0xfd,0x1f,0xfc, +0x6a,0xfb,0xe4,0xfb,0x4,0xfb,0x3,0xf9,0xe7,0xf7,0x7a,0xf7, +0x4b,0xf6,0xc0,0xf3,0x6a,0xf2,0x5d,0xf3,0x4e,0xf3,0xab,0xf2, +0xf1,0xf3,0x5b,0xf5,0x19,0xf6,0x5c,0xf7,0x26,0xf9,0xe6,0xfb, +0xaa,0xff,0x3d,0x3,0x44,0x5,0x9,0x5,0x6e,0x3,0xc5,0x0, +0x42,0xfc,0xe0,0xf6,0xa4,0xf2,0xa9,0xf0,0x4f,0xf0,0x10,0xf0, +0x47,0xf0,0x4e,0xf1,0x36,0xf2,0xf3,0xf3,0x88,0xf6,0x9f,0xf7, +0xb5,0xf8,0xd3,0xfb,0x4e,0xfd,0x89,0xfb,0x69,0xfa,0x57,0xf9, +0x93,0xf4,0xc8,0xee,0x76,0xec,0x7,0xed,0xe8,0xed,0xa3,0xed, +0x5a,0xed,0x9a,0xee,0x71,0xef,0x61,0xee,0xf8,0xeb,0x2b,0xe8, +0x10,0xe6,0xb6,0xe7,0xf8,0xe7,0xdb,0xe5,0x34,0xe7,0x8b,0xea, +0x72,0xea,0xaf,0xe9,0xcd,0xec,0x72,0xf1,0x91,0xf4,0xfa,0xf6, +0x84,0xf7,0x63,0xf4,0x3d,0xf1,0x9b,0xef,0x0,0xec,0x92,0xe8, +0x89,0xe8,0x8e,0xe8,0x88,0xe8,0xf,0xeb,0x65,0xed,0xb0,0xee, +0xd4,0xf1,0x9e,0xf6,0x27,0xfb,0x16,0xfe,0x91,0x0,0x8b,0x4, +0xbf,0x5,0x7a,0x2,0xae,0x1,0x81,0x2,0x3f,0xff,0x3b,0xfd, +0x6c,0xff,0xd6,0xff,0xda,0xff,0xbf,0x3,0x6f,0x7,0x4f,0x8, +0xd1,0x9,0xdb,0xb,0xc3,0xa,0x28,0x9,0xf2,0xb,0x3d,0xe, +0x63,0xb,0x3,0xa,0x25,0xc,0x1f,0xc,0x15,0xc,0x7,0xf, +0x2d,0x11,0x97,0x11,0x5a,0x11,0x63,0x10,0xf8,0xf,0xea,0xe, +0x67,0xc,0x33,0xb,0x18,0xb,0x5f,0xb,0x8c,0xc,0x39,0xc, +0xbf,0xb,0x9c,0xd,0xe7,0xd,0x75,0xd,0xf3,0xf,0xb3,0x10, +0xef,0xe,0x57,0xf,0xb7,0xf,0xd6,0xe,0x4d,0xf,0x5e,0xf, +0xef,0xd,0xde,0xb,0x74,0x9,0xaf,0x8,0x2e,0x8,0x24,0x6, +0xc9,0x6,0x50,0x9,0xc7,0x9,0xa7,0xb,0x37,0xe,0x33,0xd, +0x4f,0xd,0x1,0x10,0xfd,0xf,0x56,0xe,0x25,0xd,0x23,0xc, +0x3d,0xd,0xb7,0xe,0x11,0xf,0x6d,0x11,0x2,0x13,0x19,0x11, +0xb7,0x10,0x84,0x10,0x25,0xc,0x58,0x9,0x34,0xb,0x6e,0xc, +0xc6,0xc,0x2b,0xf,0x36,0x11,0x56,0x10,0x14,0xf,0xa5,0xf, +0x95,0xf,0xbb,0xe,0xe1,0x10,0xce,0x13,0x5f,0x13,0x41,0x12, +0xff,0x10,0x9d,0xd,0x19,0xb,0x55,0x9,0x24,0x6,0xbf,0x5, +0x73,0x8,0x28,0x9,0xa8,0x8,0x72,0x8,0xb7,0x6,0xa8,0x3, +0x38,0x0,0xef,0xfd,0x84,0xfd,0x27,0xfd,0x53,0xfe,0xec,0x0, +0xf2,0xff,0x9e,0xfe,0x3c,0x1,0xd1,0x1,0x56,0x0,0xdf,0x1, +0xee,0x2,0x4a,0x2,0xd6,0x1,0x53,0xff,0x52,0xfd,0xa1,0xfc, +0x2e,0xf8,0x60,0xf5,0xd0,0xf8,0x47,0xfa,0x51,0xf9,0x57,0xfa, +0x50,0xf9,0xc5,0xf8,0x7,0xfd,0x43,0xfe,0x89,0xfb,0x2e,0xfd, +0xad,0x0,0x81,0x1,0x16,0x3,0x54,0x4,0xec,0x1,0x73,0xff, +0x48,0xfe,0xb0,0xfb,0x6f,0xfa,0x7c,0xfc,0x16,0xfd,0x40,0xfc, +0x8a,0xfd,0x40,0xfe,0xb,0xfe,0x30,0xff,0xa8,0xfd,0x44,0xfc, +0x23,0x2,0x4e,0x6,0x52,0x3,0x19,0x4,0x6d,0x6,0x7f,0x1, +0x51,0xfe,0xf3,0x0,0xb,0x1,0xe3,0x0,0x4a,0x3,0x6,0x2, +0xf9,0xfe,0x17,0xff,0xc4,0xfe,0xe0,0xfc,0xcc,0xfb,0x6a,0xfa, +0x4a,0xfa,0x1b,0xfd,0x7d,0xfd,0xbc,0xfa,0x4d,0xfb,0x7f,0xfc, +0x31,0xf9,0xca,0xf7,0xff,0xf9,0xf,0xf8,0xb1,0xf4,0x96,0xf5, +0x2c,0xf5,0x65,0xf2,0x26,0xf3,0xfb,0xf4,0x95,0xf4,0x1f,0xf6, +0x91,0xfa,0xda,0xfd,0x4d,0xff,0x62,0x1,0xda,0x3,0x10,0x4, +0x79,0x2,0xd,0x2,0xac,0x2,0x8,0x2,0x17,0x0,0x93,0xfe, +0x41,0xfd,0xcf,0xfa,0xb7,0xf9,0x88,0xfb,0xa1,0xfb,0xc9,0xf9, +0xff,0xfa,0x8,0xfd,0x7b,0xfd,0xd5,0xff,0x52,0x2,0x13,0x2, +0x26,0x2,0x22,0x3,0x3a,0x4,0xfb,0x5,0x79,0x6,0xd9,0x6, +0x1a,0x9,0x50,0x9,0x9a,0x7,0x2d,0x7,0xa5,0x4,0x4f,0x0, +0x4b,0xff,0x0,0xff,0x9a,0xfc,0xc3,0xfb,0xe,0xfd,0xf9,0xfd, +0xd6,0xfe,0xb8,0x0,0x4d,0x3,0x54,0x5,0x41,0x6,0xfa,0x6, +0x4b,0x7,0xc9,0x6,0x2,0x7,0x24,0x7,0xa,0x4,0x9f,0xff, +0x57,0xfd,0x2a,0xfa,0xcb,0xf4,0xde,0xf2,0x2a,0xf4,0xba,0xf3, +0xbf,0xf4,0x5c,0xf9,0xae,0xfc,0x81,0xff,0x1f,0x3,0x58,0x2, +0x73,0xff,0x8,0x0,0x1b,0xff,0xf0,0xf9,0xf7,0xf6,0xd4,0xf7, +0xc3,0xf8,0xb5,0xf9,0x6a,0xfc,0xa8,0xfe,0x9,0xfd,0x1f,0xfa, +0x90,0xf9,0xf4,0xf7,0xa6,0xf3,0x2c,0xf2,0x76,0xf4,0x1a,0xf5, +0xf3,0xf3,0x16,0xf7,0xd2,0xfe,0x23,0x3,0x70,0x3,0x1,0x7, +0x7e,0xa,0x31,0x8,0xfe,0x5,0x57,0x4,0xd,0xfe,0xbb,0xf8, +0x95,0xf6,0xfd,0xf1,0x12,0xef,0xfe,0xf0,0x90,0xf0,0x89,0xed, +0xc4,0xed,0xb4,0xf0,0x34,0xf3,0x8e,0xf4,0x49,0xf6,0x6c,0xf8, +0x1e,0xf8,0xda,0xf7,0x4b,0xfa,0xe8,0xf8,0xb3,0xf3,0x43,0xf3, +0x7c,0xf4,0x33,0xf2,0x6c,0xf2,0x9b,0xf5,0xb4,0xf5,0x1b,0xf4, +0xf,0xf3,0xd,0xf1,0x21,0xef,0x1b,0xee,0xd4,0xeb,0x2,0xe8, +0x4,0xe6,0x60,0xe8,0x69,0xec,0x4d,0xef,0x15,0xf3,0x9b,0xf7, +0xd6,0xf9,0x4a,0xfb,0x32,0xfd,0x7,0xfd,0x6b,0xfb,0xc6,0xf9, +0xb,0xf7,0x99,0xf5,0xfd,0xf7,0xe6,0xfa,0xde,0xfb,0xd9,0xfc, +0xe9,0xfe,0xbc,0x1,0xc8,0x4,0x84,0x6,0xde,0x6,0x3,0x7, +0x99,0x6,0x52,0x6,0x8d,0x7,0x74,0x8,0x5f,0x8,0x3e,0x9, +0xad,0x9,0x98,0x8,0xef,0x8,0xe3,0xa,0xe1,0xb,0x1b,0xb, +0x3,0x9,0x16,0x8,0x8a,0x9,0xf0,0x9,0x5a,0x8,0x4,0x7, +0xf5,0x5,0xf4,0x5,0x34,0x7,0xd9,0x7,0x95,0x9,0x50,0xc, +0x3c,0xc,0xdf,0xb,0xae,0xd,0xaf,0xd,0x45,0xc,0x18,0xb, +0x56,0x7,0x7a,0x3,0x2e,0x3,0x12,0x3,0x1d,0x2,0x92,0x2, +0x53,0x3,0x2d,0x4,0x2f,0x6,0x4,0x8,0x6f,0x9,0x8,0xb, +0x48,0xb,0x11,0xa,0xeb,0x9,0x81,0xb,0x78,0xc,0x3d,0xb, +0xdb,0x8,0xed,0x6,0x70,0x6,0x27,0x7,0x9,0x7,0x59,0x5, +0x51,0x4,0xd5,0x4,0xd9,0x4,0xc7,0x3,0xb6,0x3,0x7f,0x4, +0x69,0x3,0x70,0x1,0x41,0x1,0x9f,0x1,0xe2,0x1,0xf0,0x2, +0xf2,0x2,0x18,0x2,0xdd,0x2,0x88,0x3,0x7c,0x2,0x2f,0x1, +0x33,0xff,0x46,0xfc,0x19,0xfa,0xac,0xf8,0x78,0xf7,0x91,0xf6, +0x92,0xf5,0xbf,0xf4,0x51,0xf4,0x56,0xf4,0x4f,0xf5,0x92,0xf5, +0xd9,0xf3,0x26,0xf2,0x18,0xf1,0x6,0xf0,0x71,0xef,0xab,0xee, +0xa8,0xed,0x3b,0xed,0x16,0xec,0x96,0xea,0x54,0xea,0xe7,0xe9, +0xaa,0xe8,0xb7,0xe7,0xec,0xe6,0x86,0xe6,0x26,0xe7,0x4d,0xe8, +0x25,0xe9,0x2b,0xe9,0xbc,0xe8,0x9b,0xe8,0xe6,0xe8,0x1,0xe9, +0x75,0xe8,0x1,0xe8,0xe0,0xe7,0x91,0xe7,0xf2,0xe7,0x85,0xe8, +0xa9,0xe7,0xc4,0xe6,0x91,0xe6,0xa7,0xe5,0x34,0xe5,0x6f,0xe6, +0x7d,0xe7,0x6d,0xe7,0x9a,0xe7,0xe1,0xe8,0xe7,0xea,0x2c,0xed, +0x1d,0xef,0x41,0xf0,0xd2,0xf0,0x3c,0xf1,0xed,0xf1,0x4,0xf3, +0xc8,0xf3,0x32,0xf4,0x9,0xf5,0xf5,0xf5,0x21,0xf6,0xf8,0xf5, +0x93,0xf6,0x8b,0xf7,0xdd,0xf7,0x83,0xf8,0xb,0xfa,0x6c,0xfb, +0xc5,0xfc,0x44,0xfe,0x96,0xff,0xc9,0x0,0x82,0x1,0x34,0x2, +0x15,0x3,0x45,0x3,0xb,0x4,0x1,0x6,0x52,0x7,0x7d,0x8, +0x41,0xa,0x65,0xb,0xe0,0xb,0x14,0xc,0x6,0xc,0x3b,0xc, +0xca,0xc,0x80,0xd,0xf7,0xd,0x9,0xe,0x54,0xe,0xd9,0xe, +0x7d,0xf,0xc2,0x10,0x82,0x12,0xf6,0x13,0x89,0x14,0xb7,0x14, +0x6c,0x15,0x19,0x16,0xca,0x15,0xcd,0x14,0x4a,0x14,0x6,0x15, +0x3b,0x16,0x9,0x17,0x6f,0x17,0xc6,0x17,0x4,0x19,0x85,0x1a, +0xda,0x1a,0x39,0x1b,0x13,0x1c,0x3f,0x1c,0xa7,0x1c,0x3c,0x1d, +0x97,0x1c,0x83,0x1c,0xbb,0x1e,0x59,0x20,0x20,0x1f,0x9a,0x1e, +0x6f,0x21,0xf7,0x23,0x3c,0x23,0x32,0x21,0x2f,0x20,0xa6,0x1f, +0x16,0x1e,0x0,0x1d,0xa8,0x1d,0x3c,0x1d,0xcf,0x1b,0xfe,0x1b, +0xd0,0x1b,0xca,0x1a,0xf6,0x1c,0x39,0x21,0x6b,0x21,0x88,0x1d, +0x57,0x1c,0xfb,0x1e,0x37,0x1f,0x7f,0x1b,0x62,0x18,0xd7,0x18, +0x9c,0x1b,0x53,0x1c,0xff,0x18,0xac,0x15,0xd,0x16,0xfa,0x17, +0xa5,0x16,0xe5,0x10,0x2d,0xb,0xb8,0xa,0xc6,0xe,0xff,0xf, +0xc8,0xa,0x7b,0x6,0x6c,0x9,0x36,0xe,0x9,0xe,0x99,0xa, +0x85,0x8,0x82,0x9,0xa5,0xc,0x62,0xe,0xb6,0xc,0x90,0xa, +0x88,0x8,0x4b,0x5,0x45,0x4,0xf7,0x4,0xe9,0x2,0xd9,0x0, +0xc5,0xff,0x8a,0xfc,0x1,0xfc,0xb3,0xff,0xba,0xff,0x29,0xfd, +0x14,0xfe,0x6,0xff,0x14,0xfd,0x8d,0xfa,0x7,0xf8,0xda,0xf7, +0xfb,0xf9,0x54,0xf8,0x4c,0xf5,0x29,0xf7,0xf,0xfa,0x99,0xfb, +0xe0,0xfb,0xe9,0xf7,0xad,0xf6,0x64,0xfd,0x39,0x0,0x87,0xfa, +0x7b,0xf6,0x9d,0xf8,0x22,0xfd,0x8f,0xfd,0x31,0xf7,0x11,0xf2, +0x80,0xf4,0xfe,0xf7,0x95,0xf6,0x39,0xf3,0xd7,0xf0,0xe7,0xf0, +0xc2,0xf3,0x7,0xf3,0x68,0xed,0xc8,0xeb,0x10,0xed,0x2a,0xec, +0xce,0xed,0xd5,0xee,0x7a,0xea,0xaf,0xea,0xee,0xf0,0x5f,0xf3, +0xa3,0xf3,0xdb,0xf6,0x1c,0xfb,0x19,0xfe,0x2,0xfe,0xc1,0xfa, +0x85,0xf7,0x92,0xf5,0x6,0xf4,0x6f,0xf3,0xb1,0xf1,0x8c,0xeb, +0xe1,0xe7,0xf,0xed,0x2,0xf2,0xc7,0xf1,0x43,0xf1,0x71,0xee, +0xb4,0xed,0xea,0xf6,0xf0,0xfa,0xaa,0xef,0xf7,0xe9,0x70,0xf4, +0x6e,0xfc,0xc0,0xf7,0xe2,0xf2,0xa5,0xf7,0x49,0x1,0xeb,0x6, +0xe,0x4,0x18,0xfc,0xe4,0xf6,0x8a,0xf7,0xad,0xf8,0xe8,0xf1, +0x49,0xe8,0xdc,0xea,0x15,0xf4,0xd,0xf6,0x3a,0xf6,0x66,0xf6, +0x6,0xf3,0x2a,0xf6,0xe7,0xfe,0x2f,0x0,0x10,0xfc,0xdc,0xfb, +0x1e,0x0,0x81,0xfd,0x28,0xf0,0x4b,0xec,0x61,0xf6,0x6e,0xf8, +0xa7,0xf2,0x8,0xf2,0x18,0xf4,0x74,0xf8,0x83,0xfc,0x3e,0xf8, +0x5f,0xf2,0x7b,0xf1,0x46,0xf1,0x9,0xf3,0xe4,0xf5,0x50,0xf4, +0xfe,0xf2,0x20,0xf5,0x1d,0xf7,0xd4,0xfa,0xcf,0xfd,0x75,0xfa, +0xf4,0xf6,0xe6,0xf6,0x4e,0xf6,0x43,0xf6,0x9f,0xf4,0xbf,0xee, +0x14,0xeb,0x9b,0xea,0x1,0xeb,0x7d,0xf0,0x85,0xf7,0x17,0xf8, +0x62,0xf7,0x71,0xfd,0x74,0x3,0xd8,0xfe,0x1d,0xf8,0x25,0xfc, +0xc2,0x0,0xe0,0xfc,0x6a,0xfb,0x80,0xfc,0xa4,0xf7,0xe8,0xf4, +0x8a,0xf8,0x5b,0xf8,0x28,0xf3,0xe7,0xf0,0xa9,0xf3,0x17,0xf6, +0x8a,0xf3,0xd5,0xef,0x40,0xee,0x3e,0xec,0x86,0xed,0x88,0xf3, +0x96,0xf4,0x37,0xf1,0x42,0xf3,0x85,0xf7,0x83,0xf7,0xa0,0xf7, +0x27,0xf9,0x4c,0xf4,0x2b,0xeb,0x67,0xeb,0x8,0xf4,0xe1,0xf7, +0x83,0xf7,0xd2,0xf7,0x20,0xf5,0x23,0xf2,0xdb,0xf3,0x85,0xf4, +0x52,0xf1,0x21,0xf1,0xac,0xf6,0x3a,0xfb,0xcb,0xf7,0x77,0xf0, +0x91,0xef,0xfb,0xf3,0xf3,0xf5,0x7,0xf7,0x27,0xf9,0x82,0xf9, +0x83,0xfa,0xd2,0xfb,0x84,0xf8,0xa,0xf6,0x46,0xfb,0x6f,0x4, +0xb5,0xa,0x56,0x9,0x8f,0x4,0x47,0x6,0x85,0xa,0x89,0x8, +0xfa,0x5,0x90,0x8,0xdc,0xa,0x39,0x9,0x80,0x6,0x54,0x3, +0xc2,0xff,0x4a,0x2,0x31,0xa,0x44,0x9,0x64,0xff,0x7a,0xfc, +0x98,0x0,0x7c,0x0,0x11,0xfd,0x3f,0xfc,0xd3,0xfd,0x25,0x0, +0xf4,0x3,0x12,0x9,0x1a,0xa,0x3d,0x5,0x3b,0x4,0x39,0x9, +0xc0,0x8,0x7a,0x4,0x4c,0x5,0x95,0x4,0x10,0x1,0xe8,0x3, +0x53,0x6,0x7b,0x1,0xd1,0xfe,0x8a,0xff,0xef,0xfd,0xe4,0xfe, +0x7,0x5,0x4c,0x9,0xf4,0x7,0xde,0x5,0xf1,0x7,0xdb,0x9, +0x8,0x6,0xaf,0x1,0x52,0x3,0xb,0x7,0xf1,0x6,0x39,0x5, +0x1b,0x6,0x4d,0x7,0xd5,0x7,0x59,0xd,0x39,0x16,0x4e,0x19, +0x91,0x17,0xf5,0x16,0x51,0x16,0xd8,0x15,0xbf,0x16,0x75,0x14, +0x23,0x10,0x9a,0x10,0x3,0x14,0x68,0x15,0x6b,0x14,0x3b,0x11, +0xdc,0xd,0xc3,0xb,0xc0,0x8,0x20,0x6,0xd8,0x4,0x46,0x0, +0x1a,0xfb,0x3e,0xfd,0x78,0x2,0xcb,0x3,0xee,0x5,0xe7,0xb, +0xb6,0xf,0xb8,0xf,0x44,0x10,0x4d,0x12,0x94,0x13,0xc3,0x12, +0x76,0x10,0x21,0xe,0x5e,0xb,0xe6,0x6,0x61,0x1,0xaa,0xfb, +0xe7,0xf5,0xa0,0xf1,0x99,0xef,0x16,0xef,0x94,0xf1,0x7,0xf7, +0x35,0xfb,0x56,0xfe,0xde,0x3,0x4b,0x9,0x59,0xb,0x35,0xb, +0x1b,0xa,0x20,0x8,0xd5,0x4,0x2b,0x1,0x3e,0xff,0x9e,0xfc, +0xa7,0xf6,0x75,0xf1,0x82,0xf0,0x7b,0xf2,0xeb,0xf5,0x27,0xfa, +0xbc,0xfe,0x57,0x2,0xcc,0x2,0xb2,0x1,0x25,0x2,0xaf,0x1, +0x3d,0xfe,0x1a,0xfd,0x34,0x0,0x2b,0x2,0xa5,0x3,0xdd,0x8, +0xce,0xd,0x74,0xe,0xae,0xd,0xd4,0xc,0xb5,0x9,0x82,0x4, +0xbb,0xff,0xa8,0xfa,0xa0,0xf3,0xfe,0xee,0xd,0xf0,0x29,0xf2, +0xe0,0xf2,0xc,0xf6,0xe7,0xfc,0x7b,0x3,0xf1,0x6,0x75,0x8, +0x13,0x8,0xc8,0x4,0x80,0x1,0x64,0xff,0xa1,0xfb,0x0,0xf8, +0x61,0xf8,0xb9,0xfa,0xfa,0xfa,0xa,0xfa,0x4f,0xfb,0xd4,0xfd, +0xab,0xfe,0x29,0xfe,0x50,0xfc,0xb3,0xf8,0x66,0xf6,0x91,0xf7, +0x99,0xf9,0x74,0xf9,0x87,0xf8,0xdd,0xf9,0x22,0xfc,0xff,0xfc, +0xd4,0xfd,0x6d,0xff,0x2c,0x1,0xb5,0x3,0x90,0x5,0x19,0x3, +0x3f,0xfd,0x46,0xf8,0xe6,0xf3,0x2a,0xef,0xce,0xed,0xb2,0xef, +0x24,0xf1,0x34,0xf4,0x99,0xfa,0xc6,0x0,0x8b,0x4,0x69,0x6, +0x85,0x8,0xc9,0xb,0x64,0xc,0xa1,0x8,0x83,0x4,0xc8,0x2, +0xf,0x3,0xd1,0x3,0xbd,0x3,0x5c,0x4,0x48,0x7,0x33,0xa, +0x3b,0xb,0x6b,0xb,0x38,0xa,0xdc,0x6,0xbf,0x3,0xf9,0x0, +0x92,0xfc,0x83,0xf9,0x3a,0xfa,0x78,0xfb,0x80,0xfc,0x3d,0x0, +0x1f,0x6,0x70,0xb,0x77,0xf,0xf9,0x11,0x65,0x12,0x74,0x11, +0x8b,0xf,0xcf,0xa,0x16,0x3,0x77,0xfc,0xec,0xf9,0x94,0xf9, +0x48,0xf9,0xd7,0xf9,0x81,0xfb,0x51,0xfd,0x2b,0x0,0x14,0x4, +0xd0,0x5,0x1c,0x4,0x7,0x2,0xf4,0x1,0x67,0x2,0x20,0x1, +0xb,0xff,0x87,0xfe,0x3b,0x0,0xef,0x3,0xbb,0x8,0x54,0xc, +0x8f,0xd,0xa7,0xc,0x43,0x9,0x33,0x4,0xf5,0xfe,0x31,0xf9, +0x40,0xf4,0xb3,0xf2,0xb9,0xf2,0x74,0xf2,0xbd,0xf3,0xfb,0xf6, +0xef,0xfa,0xaa,0xfe,0xc1,0x1,0x4e,0x5,0x3a,0x8,0x92,0x8, +0x77,0x8,0x78,0x7,0x3e,0x3,0x3,0x0,0xcb,0xff,0x6a,0xfe, +0xd9,0xfc,0x6a,0xfd,0x10,0xfd,0x97,0xfc,0x8b,0xff,0x23,0x2, +0xe2,0x0,0x99,0xff,0x2a,0x0,0x2b,0x0,0xcd,0xfe,0xf4,0xfc, +0x7e,0xfc,0xc1,0xfd,0x5d,0xfe,0x8b,0xfe,0xbd,0xff,0xc0,0x0, +0x3c,0x1,0x22,0x1,0x4d,0xff,0x7e,0xfc,0x20,0xfa,0xa6,0xf8, +0xf9,0xf7,0x65,0xf7,0xe5,0xf6,0x59,0xf7,0xb4,0xf9,0x17,0xfd, +0xec,0xfe,0x70,0x0,0xa0,0x3,0x24,0x5,0x10,0x4,0x2f,0x3, +0xf8,0x0,0x8e,0xfc,0x90,0xf9,0x37,0xf8,0xf6,0xf5,0x77,0xf4, +0x3d,0xf5,0x8,0xf5,0xf6,0xf3,0xff,0xf5,0x73,0xf8,0x6d,0xf7, +0xdc,0xf6,0xa,0xf9,0x3,0xfa,0xdd,0xf8,0xd2,0xf8,0x44,0xfa, +0x3c,0xfb,0xef,0xfb,0xd0,0xfc,0x48,0xfd,0xc8,0xfd,0x89,0xfd, +0x83,0xfb,0xe9,0xf8,0x11,0xf6,0xf4,0xf3,0x31,0xf3,0xb6,0xf0, +0x60,0xee,0x56,0xf0,0xfe,0xf1,0xa7,0xf1,0xd9,0xf4,0x46,0xfa, +0xdc,0xfe,0xc3,0x4,0xce,0x9,0xee,0xa,0xa7,0xb,0x7,0xc, +0x9b,0x7,0x9e,0x0,0x61,0xfb,0xc7,0xf7,0x9b,0xf6,0xbe,0xf7, +0x8d,0xf8,0xe2,0xf9,0xce,0xfb,0xa3,0xfb,0x5,0xfb,0x5f,0xfb, +0xc6,0xfa,0x46,0xfb,0x9,0xff,0x72,0x2,0x91,0x3,0x1c,0x5, +0x5b,0x7,0x86,0x7,0x0,0x5,0x31,0x1,0xd3,0xfd,0x7d,0xfc, +0x4,0xfc,0xdd,0xfa,0xe1,0xfa,0xbb,0xfb,0xc8,0xfa,0x65,0xfa, +0x27,0xfc,0x85,0xfb,0x7b,0xf8,0xb8,0xf7,0x1e,0xf7,0x6f,0xf4, +0x92,0xf4,0xd1,0xf6,0xc9,0xf5,0xac,0xf5,0x63,0xfa,0x41,0xfe, +0x11,0x0,0x32,0x3,0xae,0x4,0xbc,0x2,0x62,0x0,0x4f,0xfd, +0x30,0xf9,0x18,0xf6,0x11,0xf3,0x71,0xf0,0xb9,0xf0,0x45,0xf2, +0xb2,0xf4,0x52,0xf9,0xde,0xfb,0x6f,0xfb,0x5f,0xfd,0x36,0x0, +0x4b,0x0,0x79,0xff,0x70,0xfc,0x92,0xf6,0x80,0xf4,0x1d,0xf6, +0x5e,0xf5,0xb3,0xf6,0x49,0xfe,0xf,0x5,0xe,0x9,0xf4,0xd, +0x77,0x10,0x43,0xf,0xdc,0xd,0xd5,0xa,0x9b,0x5,0x66,0x1, +0xd2,0xfd,0x85,0xfa,0x84,0xf9,0x94,0xf9,0xb0,0xf9,0xb,0xfc, +0x60,0xff,0x8c,0x0,0x35,0x1,0xad,0x1,0xb5,0xfe,0x83,0xfa, +0xa9,0xf8,0xef,0xf6,0xd8,0xf4,0xd1,0xf4,0x29,0xf6,0xcf,0xf8, +0xf8,0xfe,0x84,0x6,0x8,0xa,0xd2,0x9,0xa6,0xa,0x50,0xc, +0xba,0xb,0xe5,0x7,0x81,0x0,0xf4,0xf8,0xa0,0xf5,0x84,0xf4, +0x78,0xf3,0xd6,0xf3,0x48,0xf6,0x41,0xfc,0xa3,0x4,0xd7,0x9, +0x86,0xb,0x74,0xd,0x7,0xe,0xf3,0xa,0xa,0x7,0x99,0x3, +0x1e,0xff,0xe6,0xfb,0x2f,0xfc,0x5a,0xfd,0xad,0xfe,0x51,0x2, +0x9e,0x7,0xc,0xc,0xd7,0xd,0x4e,0xd,0x2b,0xc,0xad,0xa, +0x16,0x8,0x68,0x4,0x23,0x1,0x36,0x0,0xfd,0x0,0xbc,0x2, +0x90,0x5,0xa8,0x7,0xcb,0x9,0xbc,0xd,0x78,0x10,0x23,0x11, +0x6f,0x11,0xe4,0xf,0xa8,0xd,0xc3,0xc,0xba,0x9,0xb2,0x3, +0xd6,0xfe,0x0,0xfc,0x2b,0xfa,0x79,0xfa,0x60,0xfc,0x2e,0xfe, +0x38,0x1,0x3c,0x6,0x71,0xa,0xc9,0xb,0xb8,0xa,0x8f,0x8, +0x35,0x6,0x22,0x3,0xe7,0xfe,0x63,0xfa,0x81,0xf7,0x6,0xf8, +0x43,0xfb,0x3c,0x0,0xae,0x6,0x29,0xc,0x6a,0x10,0xff,0x14, +0x2a,0x16,0x81,0x12,0xce,0xe,0xfc,0xa,0xc,0x5,0xfe,0xff, +0xad,0xfc,0x26,0xf9,0x25,0xf6,0x8e,0xf5,0xa2,0xf8,0xaf,0xfd, +0x51,0x0,0x81,0x1,0x36,0x5,0x4e,0x8,0x4f,0x7,0x70,0x5, +0x7,0x4,0xd1,0x1,0x64,0x0,0x25,0x0,0x7f,0x0,0xc4,0x2, +0x9b,0x5,0xf0,0x6,0xc1,0x8,0x3f,0xb,0x31,0xb,0xc4,0x8, +0xe3,0x5,0x6f,0x1,0x54,0xfb,0x50,0xf6,0xa0,0xf2,0xe1,0xee, +0xec,0xec,0xb5,0xee,0x85,0xf2,0xf2,0xf6,0xe4,0xfc,0x98,0x3, +0xa7,0x8,0x42,0xb,0x92,0xb,0x42,0xa,0x7a,0x8,0x11,0x6, +0xca,0x2,0x26,0xff,0xf7,0xfa,0x59,0xf7,0x9f,0xf5,0xcc,0xf4, +0x5f,0xf5,0x9,0xf9,0x7,0xfe,0xb9,0x1,0xf5,0x3,0x25,0x5, +0x49,0x5,0xb7,0x4,0x8c,0x3,0x81,0x1,0xab,0xff,0x16,0xff, +0xa4,0xfe,0x23,0xfe,0xca,0xfe,0xff,0xff,0xce,0x0,0xa8,0x1, +0xaf,0x2,0x98,0x2,0xe3,0x0,0xea,0xff,0x89,0x0,0x47,0x0, +0xd6,0xfe,0x95,0xfd,0x7,0xfd,0xf7,0xfd,0x60,0xff,0x16,0x0, +0x9d,0x1,0x1c,0x4,0x19,0x6,0x6d,0x6,0xde,0x3,0xc7,0xff, +0x6d,0xfc,0xf7,0xf8,0xe8,0xf4,0xad,0xf1,0xb,0xef,0x31,0xed, +0xa3,0xee,0xfd,0xf1,0x10,0xf3,0x8e,0xf4,0x9d,0xf9,0x53,0xfd, +0x23,0xfe,0x4c,0x0,0x26,0x3,0x73,0x4,0x35,0x5,0x54,0x5, +0xac,0x3,0x2d,0x1,0xf1,0xff,0x91,0xff,0x6e,0xfe,0xf8,0xfd, +0xd4,0xfe,0x7d,0xfe,0x79,0xfc,0x38,0xfa,0x75,0xf8,0x48,0xf7, +0xfa,0xf5,0x95,0xf4,0x2,0xf4,0x5,0xf5,0x56,0xf8,0x5e,0xfc, +0xec,0xfe,0xee,0x0,0xf5,0x2,0x82,0x3,0x21,0x3,0x8d,0x3, +0x14,0x3,0xb6,0xff,0x17,0xfd,0x57,0xfe,0xe3,0xff,0x1e,0xff, +0x9b,0xfd,0x47,0xfc,0x5,0xfc,0x63,0xfd,0xb1,0xfe,0x73,0xfe, +0xa1,0xfc,0x6e,0xfa,0x48,0xf9,0x65,0xf8,0xcd,0xf6,0xb2,0xf6, +0x94,0xf9,0x2e,0xfc,0x9d,0xfc,0x3f,0xfe,0x39,0x1,0xa3,0x1, +0xbe,0xff,0x82,0xfd,0xb6,0xfb,0xa6,0xfb,0x6f,0xfb,0x4d,0xf9, +0x3e,0xf8,0x23,0xf8,0xe4,0xf6,0x64,0xf7,0xb5,0xf9,0xe4,0xf9, +0xc5,0xf9,0xf3,0xfb,0x82,0xfd,0x8c,0xfd,0xe7,0xfd,0xcc,0xfd, +0xd,0xfd,0xf1,0xfc,0x38,0xfd,0x10,0xfe,0x86,0xff,0x3c,0x0, +0x50,0x0,0x4c,0x0,0x96,0xff,0x5,0xff,0x22,0xff,0x2a,0xfe, +0xa,0xfc,0xb8,0xfa,0xa7,0xf9,0xdc,0xf7,0xef,0xf7,0xee,0xfa, +0xcb,0xfd,0xec,0xff,0x98,0x2,0xe5,0x4,0xff,0x7,0xb2,0xc, +0xc2,0xd,0x23,0xa,0xe8,0x7,0x3a,0x6,0x9b,0x1,0xd,0xfe, +0xab,0xfb,0xb5,0xf6,0x94,0xf3,0xe3,0xf4,0x20,0xf6,0xfa,0xf6, +0x81,0xf8,0x63,0xf9,0x3b,0xfb,0x42,0xfe,0xfa,0xff,0x37,0x1, +0xd8,0x2,0x44,0x3,0x4c,0x3,0x43,0x5,0x75,0x8,0x2a,0xa, +0x17,0x9,0xe2,0x6,0xcf,0x5,0x57,0x4,0xfe,0xff,0x63,0xfb, +0xb0,0xf8,0xde,0xf4,0xad,0xef,0xc5,0xec,0x9c,0xec,0xc8,0xed, +0x6c,0xf0,0x10,0xf4,0xc0,0xf6,0x7a,0xf9,0xf,0xff,0xfd,0x3, +0x89,0x4,0x54,0x5,0xaf,0x7,0x8c,0x7,0x73,0x7,0x52,0x9, +0x45,0x8,0x6f,0x4,0xdf,0x2,0x37,0x2,0xbc,0xfd,0x89,0xf7, +0x13,0xf5,0x45,0xf5,0x44,0xf4,0xfd,0xf3,0x63,0xf7,0x49,0xfb, +0xf0,0xfc,0x66,0xff,0xc0,0x1,0x86,0xff,0x7,0xfe,0x8,0x2, +0x32,0x4,0xb8,0x2,0x1e,0x4,0xa,0x6,0x8d,0x3,0xd3,0x0, +0xab,0x1,0x6,0x2,0x78,0xff,0xbf,0xfe,0x8c,0x0,0x7e,0xff, +0xa,0xfd,0x50,0xfd,0x97,0xfc,0xe2,0xf8,0x4d,0xf7,0x91,0xf8, +0x4f,0xf8,0xe3,0xf7,0xde,0xfa,0x5c,0xfe,0x3f,0x0,0x77,0x3, +0x5b,0x7,0x30,0x8,0x74,0x6,0x70,0x4,0x16,0x1,0x15,0xfb, +0x16,0xf5,0x39,0xf0,0x38,0xea,0x2,0xe6,0xfa,0xe6,0x4d,0xe9, +0x37,0xec,0xe5,0xf2,0x8d,0xfa,0xed,0xff,0x40,0x4,0x5d,0x7, +0x8c,0x7,0xe,0x5,0x1d,0x2,0xbd,0x0,0x49,0x0,0x8f,0xff, +0x92,0x0,0xe2,0x4,0xa,0x9,0xdc,0x9,0xe3,0x8,0x38,0x7, +0xa7,0x3,0xcf,0xfe,0x70,0xfa,0x51,0xf7,0xd2,0xf5,0x7a,0xf5, +0x87,0xf5,0xbb,0xf6,0xe,0xfa,0xc,0xfe,0x59,0x1,0x68,0x5, +0x40,0x9,0x96,0x9,0xbe,0x8,0x60,0x9,0xe0,0x7,0x39,0x4, +0x8f,0x2,0x8,0x1,0xa9,0xfd,0x84,0xfb,0x3,0xfa,0xf0,0xf6, +0x56,0xf5,0xb,0xf7,0x7c,0xfa,0x8d,0xff,0x54,0x5,0x10,0xa, +0x9f,0xd,0xaf,0xe,0x56,0xd,0x1f,0xc,0x75,0x9,0x69,0x5, +0x6d,0x6,0xef,0xa,0x1a,0xb,0xe4,0xa,0x83,0xf,0x74,0x11, +0x8d,0xd,0xd4,0x9,0xd6,0x5,0xba,0xff,0x68,0xfb,0x59,0xf9, +0xc6,0xf7,0x27,0xf8,0xdd,0xfa,0xec,0xfe,0x9b,0x3,0x84,0x7, +0xab,0xa,0x66,0xd,0x19,0xf,0xe9,0x10,0xe5,0x12,0x9c,0x12, +0xf5,0x10,0xcd,0x10,0x70,0x10,0x74,0xc,0xfb,0x6,0xb8,0x4, +0xb5,0x3,0xff,0xff,0xd8,0xfd,0xca,0x0,0xdb,0x3,0x89,0x5, +0x8,0x9,0x1e,0xb,0xf4,0x9,0xf1,0xa,0x43,0xc,0x68,0x9, +0x47,0x8,0x48,0xa,0x20,0xa,0x5a,0xa,0xd3,0xb,0xeb,0xb, +0x9b,0xc,0xb9,0xb,0xa5,0x8,0xfb,0x7,0x70,0x6,0x1c,0x3, +0x0,0x3,0xd7,0x1,0xbb,0xfd,0xa0,0xfd,0x7b,0x0,0x66,0x0, +0xb9,0xff,0xda,0x1,0xe9,0x2,0x7d,0x1,0x6a,0x1,0xa0,0x1, +0x4e,0x1,0x12,0x3,0xa2,0x4,0x0,0x4,0x1e,0x3,0x3f,0x3, +0xa6,0x3,0x2,0x1,0x6e,0xfc,0xda,0xf9,0x31,0xf8,0xfa,0xf7, +0xa0,0xf8,0x71,0xf8,0xa5,0xfb,0xdb,0xfe,0x4d,0xfd,0xc6,0xfc, +0x1a,0xfc,0x9a,0xf9,0x8d,0xfa,0x18,0xfb,0x7a,0xf9,0x29,0xfb, +0x8f,0xfd,0x14,0xfd,0x6c,0xfb,0xc0,0xf9,0xc9,0xf7,0xee,0xf5, +0xd4,0xf5,0x9,0xf6,0xf5,0xf4,0xaa,0xf4,0x8,0xf5,0x4e,0xf5, +0x6e,0xf5,0xc6,0xf5,0xfd,0xf6,0x3e,0xf4,0x4c,0xf0,0xfa,0xf3, +0xd2,0xf6,0xb0,0xf4,0xb0,0xf7,0x71,0xfb,0xe6,0xfa,0xa8,0xfc, +0xc0,0xff,0x17,0x0,0xfc,0xfd,0x6e,0xfb,0x20,0xfa,0x2f,0xf8, +0x26,0xf7,0x14,0xf9,0xaf,0xf9,0x72,0xf9,0xb0,0xfc,0xe8,0x0, +0x5,0x0,0x54,0xfc,0x19,0xfe,0xc6,0xfe,0x78,0xf7,0xc5,0xf5, +0xd9,0xfa,0x9,0xfa,0x9e,0xf9,0x88,0xfe,0x5e,0x0,0x47,0x1, +0xda,0x6,0x61,0xa,0x2c,0x8,0xed,0x8,0xb0,0xc,0x53,0xb, +0xd3,0xa,0xf1,0xd,0x49,0xd,0x10,0xe,0x49,0x12,0xc2,0x13, +0x4a,0x16,0xb8,0x19,0xb6,0x1a,0x20,0x1c,0xae,0x1b,0xe4,0x19, +0x38,0x1a,0x10,0x18,0x3d,0x13,0x26,0x10,0x4b,0xd,0x36,0x9, +0x8c,0x6,0xef,0x6,0x95,0x7,0x81,0x7,0xbd,0x7,0x27,0x6, +0x70,0x5,0xf0,0x7,0xa2,0x7,0xbe,0x4,0x29,0x4,0xba,0x4, +0xb6,0x3,0x76,0x1,0x89,0x2,0x4f,0x4,0x1f,0x0,0x28,0xfe, +0x36,0x1,0xd5,0xff,0xe1,0xfd,0x44,0xfe,0x84,0xfb,0xa8,0xf9, +0x52,0xfa,0x53,0xf9,0x66,0xf8,0xf0,0xf8,0x91,0xfa,0x56,0xfd, +0xa7,0xff,0x97,0x1,0xb,0x4,0x89,0x4,0x15,0x1,0x2f,0xfe, +0x2e,0xfe,0xe0,0xfb,0x7e,0xf9,0x3a,0xfb,0x37,0xfa,0xe6,0xf6, +0x2a,0xf9,0x2d,0xfd,0xb7,0xfd,0x0,0xfe,0x27,0x0,0x74,0x1, +0x4d,0x0,0xaa,0xff,0xe0,0xff,0x2a,0xfe,0x55,0xfc,0x9e,0xfb, +0x50,0xfa,0x7,0xf9,0xa8,0xf8,0x22,0xf9,0xe8,0xf8,0x71,0xf6, +0x3c,0xf4,0x79,0xf3,0x27,0xf2,0x26,0xf0,0xd8,0xed,0xe7,0xeb, +0xcf,0xea,0x38,0xe9,0x40,0xe8,0x27,0xe9,0x30,0xe9,0xed,0xe7, +0xa8,0xe7,0x37,0xe8,0x65,0xe9,0x3f,0xeb,0x77,0xeb,0x23,0xe9, +0x68,0xe6,0xe8,0xe4,0x8e,0xe4,0x48,0xe3,0x33,0xe0,0x20,0xdf, +0x50,0xe1,0x20,0xe3,0x91,0xe4,0x1a,0xe7,0x75,0xe9,0x8d,0xeb, +0x80,0xec,0x9e,0xeb,0x9,0xec,0x80,0xed,0x56,0xed,0xa4,0xed, +0xa7,0xee,0xce,0xee,0x31,0xf1,0x3a,0xf5,0x93,0xf6,0x27,0xf7, +0xbd,0xf8,0x50,0xf9,0x33,0xfa,0x14,0xfc,0x62,0xfc,0xaa,0xfb, +0x87,0xfb,0x94,0xfb,0x17,0xfc,0x7,0xfd,0x14,0xfe,0xbd,0xff, +0x28,0x1,0xbc,0x1,0xee,0x2,0xb3,0x4,0x3e,0x5,0xbd,0x4, +0xf0,0x4,0x50,0x5,0x45,0x4,0x61,0x3,0x16,0x4,0x4f,0x4, +0xf8,0x3,0xf6,0x4,0xbe,0x5,0xad,0x5,0x5a,0x7,0xc2,0x9, +0xa4,0x9,0x10,0x8,0x82,0x7,0xfa,0x7,0x56,0x8,0x1f,0x7, +0xb0,0x4,0x6e,0x3,0x53,0x3,0x15,0x3,0x48,0x3,0xf3,0x3, +0x6c,0x4,0xb3,0x4,0xe,0x5,0xf6,0x5,0x7f,0x6,0xf1,0x5, +0xaa,0x5,0x60,0x5,0x55,0x4,0x7e,0x3,0x62,0x2,0x2d,0x1, +0x3a,0x1,0x90,0x1,0x87,0x1,0x6f,0x1,0x3,0x1,0xf0,0x0, +0x46,0x1,0xdc,0x0,0x87,0xff,0x39,0xfe,0xc9,0xfd,0x3b,0xfd, +0x90,0xfb,0x36,0xfa,0x2,0xfa,0x4b,0xfa,0xc0,0xfa,0x73,0xfb, +0x7c,0xfc,0x1f,0xfd,0x94,0xfd,0xbd,0xfe,0xb8,0xfe,0x37,0xfd, +0x71,0xfc,0x90,0xfb,0x13,0xfa,0x36,0xf9,0x4a,0xf8,0x6a,0xf7, +0xe2,0xf7,0x50,0xf9,0x91,0xfa,0x2a,0xfb,0xa4,0xfb,0xe1,0xfb, +0x56,0xfb,0xe2,0xfa,0x48,0xfa,0xbd,0xf8,0x69,0xf7,0xcd,0xf6, +0x40,0xf6,0x8a,0xf5,0x66,0xf5,0x65,0xf6,0xcc,0xf6,0x89,0xf6, +0xa9,0xf7,0x83,0xf8,0xf9,0xf7,0xd9,0xf7,0x90,0xf7,0x8d,0xf6, +0xbf,0xf5,0x71,0xf5,0xe5,0xf5,0xf4,0xf5,0x78,0xf5,0x3f,0xf6, +0x1c,0xf7,0x48,0xf7,0x5c,0xf8,0x53,0xf9,0x22,0xf9,0x20,0xf9, +0xcb,0xf9,0x3d,0xfa,0x8c,0xf9,0xb5,0xf8,0xde,0xf8,0xe3,0xf8, +0xe3,0xf8,0xb0,0xf9,0x67,0xfa,0xd0,0xfb,0x75,0xfe,0x28,0x0, +0xbb,0x0,0xc4,0x1,0x4,0x3,0x99,0x3,0x4d,0x3,0xcd,0x2, +0x3c,0x3,0x21,0x4,0xa1,0x4,0x4c,0x5,0x14,0x6,0x8d,0x6, +0x61,0x7,0x2f,0x8,0x42,0x8,0x7f,0x8,0x61,0x9,0x62,0xa, +0xed,0xa,0xcb,0xa,0xa6,0xa,0xe5,0xa,0x74,0xb,0xd5,0xb, +0x7a,0xb,0x90,0xb,0x45,0xc,0x56,0xc,0x23,0xd,0x94,0xe, +0x88,0xe,0x5c,0xe,0x66,0xf,0xe2,0x10,0x76,0x11,0xd1,0xf, +0x9f,0xe,0xa2,0xf,0x71,0xf,0x3b,0xe,0x6b,0xe,0x9a,0xe, +0x2e,0xe,0x1b,0xe,0xda,0xe,0x99,0x10,0x2c,0x12,0xad,0x12, +0xd7,0x11,0x6e,0xf,0x2c,0xe,0xa3,0x10,0xe4,0x12,0x45,0x10, +0xc1,0xc,0x42,0xe,0x52,0x12,0x56,0x14,0x1d,0x14,0xb7,0x12, +0x6a,0x12,0x15,0x16,0xab,0x1b,0xcb,0x1c,0x23,0x18,0x23,0x15, +0x56,0x17,0xde,0x17,0x3a,0x13,0x38,0xf,0x47,0x10,0x2f,0x13, +0xae,0x11,0x1d,0xb,0x15,0x7,0xeb,0xb,0x52,0x14,0x81,0x17, +0xf9,0x15,0x1a,0x13,0x55,0x12,0x9b,0x17,0xf2,0x19,0xe2,0x11, +0x70,0xc,0x12,0x10,0x4b,0x14,0x57,0x15,0x5f,0x12,0xb9,0x10, +0xcc,0x16,0x72,0x1a,0x24,0x15,0x8e,0x10,0x17,0x11,0x5c,0x14, +0xd8,0x16,0x4f,0x12,0x5a,0x9,0xa1,0x8,0x63,0x11,0xe0,0x14, +0xc5,0xe,0x1a,0xb,0x81,0xd,0x1,0x12,0x43,0x16,0x8c,0x12, +0xfb,0x7,0xeb,0x3,0xf3,0x5,0x8d,0x4,0xa1,0xff,0x6a,0xfc, +0xf,0x0,0xac,0x7,0x87,0x8,0xf9,0x4,0xe2,0x9,0xd2,0x14, +0x1a,0x19,0xa9,0x15,0xa9,0x11,0xf,0x11,0x2b,0x12,0xd6,0xf, +0x7,0xb,0xd5,0x8,0x11,0x9,0xda,0xd,0xd7,0x14,0x71,0x11, +0x8d,0xa,0x6c,0xf,0x60,0x12,0x23,0x9,0x23,0x3,0x9a,0x4, +0x4d,0x4,0x7a,0xfe,0x4d,0xf3,0xc4,0xec,0x9,0xf2,0xc1,0xf7, +0x3e,0xfa,0x5a,0xfd,0xda,0xf7,0xd0,0xf1,0x3d,0xfd,0x22,0x7, +0x72,0x1,0x5c,0x0,0x37,0x2,0x48,0xfa,0x1,0xf6,0x1e,0xfa, +0x97,0xfc,0x54,0xf9,0xa2,0xf0,0xab,0xf0,0x82,0xfc,0x89,0xfc, +0x64,0xf4,0xbd,0xf7,0x80,0xf8,0x0,0xf1,0x86,0xf1,0x44,0xf1, +0xd2,0xe5,0xaf,0xde,0x29,0xe1,0x33,0xe2,0xd2,0xdf,0x22,0xe1, +0x42,0xeb,0xc5,0xf4,0xed,0xee,0x59,0xe5,0x66,0xe8,0x7a,0xeb, +0x27,0xea,0x46,0xef,0x6e,0xef,0x26,0xe6,0x25,0xe5,0xfb,0xe9, +0x2c,0xeb,0xda,0xed,0x26,0xef,0xbc,0xeb,0xbe,0xe9,0xcf,0xea, +0x95,0xf0,0x61,0xf7,0xab,0xf1,0x10,0xe4,0x37,0xe1,0x55,0xe6, +0x1f,0xe5,0xcf,0xe0,0x64,0xe1,0x37,0xe1,0xbe,0xde,0x2,0xe4, +0x5d,0xee,0xe9,0xef,0x58,0xea,0x3,0xea,0x60,0xed,0xc6,0xea, +0x30,0xe7,0x54,0xeb,0xc2,0xec,0xd0,0xe2,0x44,0xdc,0x8,0xe3, +0x5f,0xe9,0x37,0xe6,0x4a,0xe4,0x5,0xe7,0xb0,0xe2,0xd7,0xda, +0x44,0xde,0x93,0xe6,0x2a,0xe6,0xd6,0xe1,0x95,0xe2,0xc1,0xe5, +0x26,0xe6,0x7a,0xe8,0xd1,0xef,0x48,0xf1,0x76,0xeb,0x1c,0xec, +0xd8,0xf1,0xf,0xf2,0xf1,0xee,0x55,0xec,0xf6,0xe8,0x72,0xe6, +0x12,0xe8,0xb8,0xed,0x85,0xf2,0xde,0xf0,0xca,0xea,0x3b,0xeb, +0x52,0xf5,0x75,0xfb,0x5,0xf8,0xe,0xf5,0x2d,0xf5,0x1e,0xf8, +0xdf,0xff,0xfd,0x2,0x86,0xfd,0xae,0xf9,0xfe,0xf9,0xb3,0xfb, +0xd7,0xfc,0xb,0xfa,0x5,0xfa,0x99,0x0,0xa5,0x0,0x73,0xf8, +0x3e,0xf5,0x48,0xf7,0xb,0xf9,0xb6,0xfa,0x3d,0xfa,0x45,0xfb, +0xcf,0x3,0x37,0xa,0x4e,0x7,0x8b,0x4,0xe,0x5,0xf5,0x3, +0x9e,0x2,0x35,0x2,0x79,0x2,0xd1,0x3,0x73,0x2,0x94,0xfd, +0x15,0xfa,0xa,0xfb,0xd0,0x0,0x8e,0x4,0x1b,0xfe,0xf2,0xf5, +0x43,0xf8,0xba,0xff,0xb,0x2,0xd0,0xfd,0x20,0xf9,0x77,0xfb, +0x1c,0x1,0x61,0x2,0x8a,0x4,0xa0,0x9,0xa8,0x9,0x2a,0x7, +0xe9,0x6,0xc4,0x5,0x65,0x6,0x8f,0x8,0xd8,0x4,0xcc,0xff, +0x68,0x1,0xda,0x6,0xb6,0xb,0x75,0xc,0x20,0x8,0x2d,0x5, +0x5f,0x7,0xc,0xa,0xe9,0x8,0xcc,0x4,0xf4,0x0,0x8c,0xff, +0xea,0x0,0xf8,0x3,0x6d,0x7,0x1a,0xa,0x79,0x9,0xe4,0x6, +0x5a,0x8,0xb,0xc,0x85,0xb,0xbb,0x8,0xc4,0x6,0x7b,0x4, +0x7f,0x3,0x92,0x4,0x7a,0x4,0x9d,0x3,0x17,0x5,0x1d,0x8, +0x38,0xa,0x9b,0xa,0xf9,0x9,0xfe,0x9,0xb,0x9,0x24,0x4, +0xd1,0xff,0xbf,0x0,0xce,0x2,0x8d,0x3,0x1e,0x5,0xc6,0x6, +0x4b,0x8,0xfe,0xa,0x2f,0xd,0x9d,0xc,0x5d,0xa,0xa1,0x8, +0x7a,0x6,0xa0,0x3,0xc7,0x3,0x22,0x6,0xfd,0x5,0x1e,0x4, +0x38,0x2,0x63,0x0,0x76,0x1,0x10,0x5,0x38,0x6,0x4b,0x5, +0xeb,0x7,0x9a,0xd,0x9e,0xf,0xd4,0xd,0xbf,0xc,0x68,0xa, +0x7b,0x5,0xda,0x2,0x99,0x3,0x67,0x4,0x7c,0x4,0x46,0x4, +0x95,0x3,0xad,0x3,0x8,0x6,0xb5,0x8,0xf7,0x8,0x9b,0x7, +0x8a,0x6,0xb2,0x6,0x99,0x7,0x3e,0x7,0x26,0x6,0x5f,0x6, +0x28,0x7,0x2d,0x8,0x9,0xa,0x1b,0xb,0x18,0xa,0xd7,0x7, +0xd5,0x4,0x4d,0x0,0x88,0xfb,0x74,0xf9,0x41,0xf8,0xef,0xf5, +0xcf,0xf6,0xfb,0xfb,0x89,0x1,0x1,0x7,0x1b,0xc,0xd6,0xe, +0x1b,0xf,0x8b,0xd,0x1,0xc,0x99,0xb,0xa7,0x9,0xc,0x6, +0x60,0x4,0xcf,0x3,0xbb,0x1,0xfe,0x0,0x32,0x3,0x9c,0x3, +0x6b,0x1,0xa6,0x0,0x59,0x0,0x7b,0xfe,0x8e,0xfc,0x1e,0xfb, +0x64,0xfa,0xff,0xf9,0x1e,0xf9,0x81,0xfa,0x7f,0xfe,0x7b,0x1, +0xd4,0x3,0x2a,0x6,0x9,0x7,0x89,0x8,0x79,0xb,0xfb,0xb, +0x95,0x8,0xeb,0x4,0xfd,0x3,0xe2,0x2,0xb7,0xfe,0xac,0xfa, +0xf,0xf8,0x22,0xf5,0x28,0xf4,0x61,0xf5,0xf8,0xf4,0xa5,0xf3, +0xbc,0xf3,0x37,0xf4,0x69,0xf4,0xa1,0xf4,0xa8,0xf5,0xb7,0xf8, +0x15,0xfd,0xbc,0x1,0xf7,0x6,0xa6,0xb,0x1b,0xe,0x11,0xf, +0x2a,0x10,0x5b,0x10,0x36,0xd,0x3b,0x8,0xa7,0x4,0x78,0x1, +0x74,0xfd,0x52,0xfa,0x66,0xf7,0xf2,0xf2,0xee,0xef,0xef,0xf0, +0xcc,0xf1,0x2f,0xf0,0x67,0xf1,0x68,0xf6,0xb8,0xfa,0x3d,0x0, +0x88,0x7,0x2a,0xb,0xb9,0xd,0x16,0x14,0xd,0x19,0x96,0x18, +0x90,0x15,0xd7,0x11,0xcd,0xd,0xb2,0x9,0xf5,0x4,0xfd,0xff, +0xdc,0xfb,0x93,0xf8,0x3f,0xf6,0x12,0xf6,0x72,0xf7,0xe9,0xf7, +0x21,0xf8,0x28,0xfa,0x7,0xfd,0x12,0x0,0xa3,0x3,0xe1,0x6, +0x85,0xa,0x73,0xf,0x38,0x13,0xff,0x13,0x0,0x13,0x88,0x11, +0x85,0xf,0xfb,0xb,0xba,0x6,0xba,0x1,0xe4,0xfe,0x63,0xfd, +0xd6,0xfa,0xd0,0xf6,0x37,0xf4,0xd0,0xf4,0xe9,0xf5,0x6,0xf6, +0x4a,0xf7,0xfe,0xf9,0xca,0xfd,0x83,0x3,0xf,0x9,0xc,0xd, +0xa2,0x11,0x9b,0x15,0x9b,0x15,0x8b,0x12,0x59,0xf,0xc5,0xc, +0x11,0x9,0xc0,0x3,0x18,0x0,0x30,0x0,0x15,0x2,0x5c,0x3, +0xf3,0x2,0x7d,0x1,0xab,0x0,0x2c,0x0,0x63,0xfe,0x46,0xfc, +0x28,0xfc,0x56,0xfe,0xbf,0x2,0x7f,0x8,0xc7,0xb,0x69,0xc, +0x72,0xe,0x3,0x10,0x1c,0xd,0x33,0x8,0x88,0x4,0xe5,0x1, +0xbb,0xfe,0x42,0xfa,0x22,0xf7,0x26,0xf7,0x53,0xf7,0xaf,0xf6, +0x30,0xf8,0xa6,0xfb,0x3f,0xfd,0x94,0xfc,0x84,0xfd,0x25,0x0, +0xc4,0x0,0x6,0x1,0xf4,0x3,0xeb,0x4,0x87,0x1,0xad,0x0, +0xdf,0x2,0x84,0x0,0xbb,0xfb,0x34,0xfa,0x34,0xf8,0x16,0xf4, +0xcf,0xf1,0x88,0xf1,0xfe,0xf0,0x50,0xee,0x7,0xec,0x80,0xef, +0x4b,0xf4,0x4b,0xf5,0x71,0xf8,0xdf,0xfd,0xc6,0xff,0xc,0x1, +0xd3,0x2,0xf4,0x0,0xb,0xfe,0x89,0xfd,0x95,0xfc,0xb0,0xf9, +0x93,0xf7,0xe8,0xf7,0xcb,0xf8,0xd7,0xf7,0xc8,0xf5,0xb6,0xf4, +0x8c,0xf4,0x70,0xf4,0x3a,0xf4,0x8b,0xf3,0xf0,0xf3,0x43,0xf7, +0x91,0xfa,0xdc,0xfb,0x98,0xfd,0xac,0xfe,0x52,0xfd,0xde,0xfc, +0xe0,0xfd,0x42,0xfd,0x93,0xfb,0xc6,0xfa,0x0,0xfa,0xe3,0xf7, +0x7b,0xf5,0xd7,0xf4,0x44,0xf5,0xf,0xf5,0xe1,0xf5,0x13,0xf9, +0x94,0xfb,0xf0,0xfb,0x8c,0xfc,0x2d,0xfc,0x9c,0xf9,0x92,0xf9, +0xe1,0xfb,0x1,0xfb,0x8e,0xf8,0xb5,0xf7,0x5c,0xf6,0x15,0xf4, +0xe2,0xf2,0xf3,0xf2,0xa0,0xf2,0xb9,0xf1,0xcb,0xf2,0x10,0xf5, +0x78,0xf5,0x33,0xf6,0x5b,0xf9,0x68,0xfb,0x15,0xfa,0x67,0xf9, +0x31,0xfd,0x28,0x1,0xf7,0x1,0x26,0x4,0x8a,0x6,0x73,0x4, +0x69,0x2,0xb5,0x2,0xcd,0x0,0xce,0xfc,0x17,0xf9,0x21,0xf6, +0xc1,0xf4,0x9b,0xf4,0x44,0xf4,0xd5,0xf3,0xd6,0xf4,0x1,0xf7, +0xf9,0xf8,0xb1,0xfc,0xd9,0x1,0xe5,0x3,0x57,0x3,0xe5,0x2, +0x6f,0x2,0x42,0x2,0x3c,0x1,0x97,0xff,0xc0,0xff,0x16,0xff, +0x7d,0xfd,0xfd,0xff,0x3c,0x3,0xdc,0x1,0xa4,0xff,0x60,0xff, +0xbe,0xfd,0xc1,0xf9,0x3a,0xf6,0x49,0xf3,0x94,0xef,0xad,0xee, +0x70,0xf3,0x49,0xfa,0x70,0x0,0x41,0x6,0x9c,0xb,0xcc,0xf, +0xe9,0x10,0xb5,0xe,0x5,0xc,0x7b,0x8,0x45,0x2,0xcf,0xfc, +0x15,0xfb,0x67,0xfa,0x38,0xf9,0x50,0xf9,0x2e,0xfa,0xd0,0xfa, +0x83,0xfc,0x26,0xfe,0x79,0xfd,0x1e,0xfb,0xcd,0xf7,0xdc,0xf4, +0xd3,0xf3,0x8c,0xf2,0xd4,0xf0,0xbc,0xf1,0xa1,0xf3,0x45,0xf4, +0xfd,0xf6,0xee,0xfc,0x99,0x1,0xd2,0x3,0x6a,0x7,0xd,0xc, +0xe,0xe,0x36,0xe,0x81,0xd,0x1a,0xa,0x65,0x5,0x5b,0x1, +0x46,0xfd,0xca,0xfa,0xbe,0xfb,0x12,0xfd,0x48,0xfc,0xc2,0xfb, +0xdc,0xfb,0x68,0xf9,0x2b,0xf7,0x1e,0xf9,0x3a,0xfa,0x19,0xf9, +0xfe,0xfb,0x6c,0x0,0x54,0x1,0xea,0x2,0xa6,0x6,0xfb,0x8, +0x76,0xb,0x9,0x10,0xb0,0x13,0x43,0x14,0x38,0x13,0xa8,0x11, +0xa8,0xe,0x21,0xa,0x7f,0x5,0xb6,0x1,0x75,0xfe,0xf1,0xfa, +0xc8,0xf8,0xf3,0xf9,0xf3,0xfb,0xc9,0xfd,0x3c,0x2,0x96,0x6, +0x2c,0x8,0x1d,0xc,0x3c,0x11,0x69,0x10,0x5a,0xe,0x7,0x10, +0xdc,0xd,0xe6,0x7,0x8c,0x6,0x1a,0x7,0x27,0x6,0x4f,0x7, +0xd1,0x8,0x4e,0x9,0xaa,0xb,0xb9,0xc,0xc,0x9,0x30,0x3, +0x78,0xfe,0x29,0xfd,0x21,0xfd,0xfa,0xfa,0xa4,0xf9,0x4c,0xfb, +0xf7,0xfd,0x0,0x2,0xb,0x7,0xfb,0x9,0x6a,0xa,0x4c,0xb, +0x95,0xd,0xd9,0xd,0x9d,0xb,0xc4,0xa,0xb2,0x9,0xa6,0x5, +0xa8,0x2,0x17,0x2,0x3,0x1,0x83,0x0,0x38,0x2,0xc5,0x5, +0x21,0xb,0xec,0xe,0x66,0xe,0x4d,0xe,0xe0,0xf,0x45,0xd, +0xea,0x8,0xfb,0x7,0x4,0x6,0x76,0x3,0x7a,0x5,0x4d,0x6, +0x4d,0x3,0x5b,0x3,0x60,0x5,0x66,0x5,0xb5,0x4,0x3a,0x2, +0xdc,0xfe,0x3f,0xfd,0x22,0xfa,0xdd,0xf5,0xa9,0xf5,0xb7,0xf7, +0xea,0xf8,0x13,0xfc,0x4d,0x2,0xe5,0x8,0xf2,0xd,0xb,0x10, +0x61,0xe,0xb1,0xa,0x9a,0x6,0x39,0x1,0x39,0xfa,0x7f,0xf2, +0x29,0xeb,0x11,0xe7,0x91,0xe6,0x3d,0xe6,0xb6,0xe7,0x39,0xee, +0x76,0xf5,0x1c,0xfa,0xd0,0xff,0xba,0x7,0x87,0xc,0x21,0xb, +0x52,0x9,0x50,0xb,0xb,0xc,0xc2,0xa,0xb6,0xa,0x7b,0x7, +0x38,0x1,0x1,0xfe,0x7a,0xfa,0xd7,0xf4,0x52,0xf3,0xf2,0xf4, +0xb9,0xf4,0xac,0xf3,0x49,0xf4,0xdd,0xf5,0x74,0xf6,0xba,0xf7, +0xc0,0xfb,0x29,0x0,0x1,0x6,0x6e,0xf,0xc1,0x15,0x71,0x15, +0xe0,0x14,0xe4,0x14,0xf0,0xf,0xdc,0x7,0x1d,0x3,0xaa,0x0, +0x31,0xfb,0x2d,0xf4,0xc,0xf1,0x1d,0xf1,0x31,0xf0,0x79,0xef, +0x8c,0xf1,0xc4,0xf3,0xc8,0xf5,0xb4,0xfa,0xfd,0xfe,0x53,0xff, +0x47,0x0,0xf5,0x2,0x31,0x3,0x3f,0x1,0x4b,0x0,0xc6,0xff, +0x62,0xfd,0xc8,0xfa,0x5,0xf9,0x7c,0xf5,0xab,0xf2,0xd3,0xf2, +0xd6,0xf0,0x85,0xed,0xa4,0xee,0xa4,0xf2,0x94,0xf5,0x6b,0xf6, +0xd2,0xf7,0x3e,0xfc,0xa0,0xff,0xb8,0x1,0xe1,0x6,0x5f,0xa, +0x12,0x9,0xc9,0x8,0x71,0x9,0x71,0x7,0xed,0x4,0xe5,0x2, +0xa9,0xfe,0x31,0xf9,0xd5,0xf6,0xe2,0xf7,0xf4,0xf8,0x69,0xf8, +0xff,0xf7,0x35,0xfb,0xfc,0xff,0x66,0x0,0x70,0xff,0x4b,0x1, +0x67,0x1,0x74,0xff,0xcc,0xff,0x70,0x0,0xa1,0xff,0xbf,0xff, +0x1d,0xff,0x6e,0xfa,0x1c,0xf6,0x25,0xf7,0x2,0xf9,0x3d,0xf8, +0x77,0xf7,0xe3,0xf6,0x97,0xf7,0x32,0xfa,0x7b,0xfa,0x3d,0xf9, +0xbf,0xf9,0x53,0xfa,0xf,0xfa,0x5d,0xf9,0x3b,0xfa,0x65,0xfd, +0x88,0xfd,0xb7,0xfb,0x8b,0xfd,0x8e,0xfe,0x87,0xfc,0x42,0xfc, +0xb,0xfc,0x13,0xf9,0xe9,0xf6,0x6,0xf8,0xe4,0xf8,0x12,0xf7, +0x9d,0xf7,0x3f,0xfc,0x2e,0xff,0x19,0x1,0xaa,0x5,0xb6,0x8, +0xa,0x8,0xfe,0x7,0xe8,0x7,0x14,0x4,0x5f,0x1,0x11,0x3, +0x15,0x2,0x98,0xfe,0x24,0xff,0x3f,0x0,0x8,0xff,0x6d,0xfe, +0x7e,0xfe,0xdc,0xff,0xe8,0x1,0x4b,0x3,0x24,0x6,0x6d,0x7, +0xdd,0x5,0xb7,0x7,0x27,0xa,0xf3,0x7,0xad,0x6,0xa7,0x8, +0x2e,0x9,0x4e,0x7,0x93,0x6,0xee,0x7,0xa1,0x7,0xb3,0x6, +0x82,0x8,0x23,0x8,0x7c,0x5,0x18,0x8,0x15,0xb,0x72,0x7, +0xa9,0x5,0x3f,0x9,0x53,0x8,0x96,0x4,0xa,0x8,0xb8,0xb, +0x5,0x7,0xa5,0x3,0xe9,0x5,0xe7,0x4,0x65,0x2,0x67,0x4, +0xe3,0x4,0x5b,0x1,0x0,0x1,0x13,0x4,0x5b,0x4,0xaf,0x0, +0xd6,0xfc,0x29,0xfc,0x99,0xfc,0x5e,0xfb,0x1b,0xfd,0xec,0x1, +0x9,0x2,0xb5,0x0,0xb,0x4,0x80,0x5,0xe8,0x2,0x59,0x2, +0x3c,0x3,0x27,0x2,0xd0,0xff,0x33,0xff,0xd0,0x0,0x2,0x0, +0x1c,0xfd,0xe9,0xfd,0x1b,0xff,0x49,0xfc,0xc9,0xfb,0x27,0xff, +0x91,0xfe,0xa0,0xfa,0xb1,0xf9,0x95,0xf9,0xf3,0xf7,0x83,0xf8, +0x26,0xfa,0xf3,0xf9,0x84,0xfa,0x11,0xfc,0x82,0xfc,0xd2,0xfc, +0x9b,0xfc,0x9e,0xfa,0x73,0xf8,0x73,0xf7,0xbf,0xf6,0x92,0xf5, +0xb6,0xf5,0xb,0xf8,0xb8,0xf8,0x7b,0xf6,0xc5,0xf5,0xa3,0xf6, +0xf9,0xf4,0xb5,0xf2,0x4c,0xf3,0xe5,0xf3,0x70,0xf3,0x55,0xf5, +0xf5,0xf7,0xd,0xf8,0xc7,0xf7,0xdc,0xf8,0x8a,0xf9,0x40,0xf8, +0x70,0xf6,0xcc,0xf6,0xcc,0xf6,0xd4,0xf3,0x78,0xf2,0x28,0xf3, +0xa8,0xf0,0xfe,0xed,0x6a,0xf0,0x5f,0xf3,0x49,0xf2,0x48,0xf2, +0x9e,0xf6,0xb3,0xf8,0x33,0xf7,0xd7,0xf8,0xd6,0xfa,0x58,0xf8, +0xc9,0xf7,0xb4,0xf9,0xb7,0xf6,0x59,0xf3,0xa2,0xf5,0x9f,0xf6, +0xdb,0xf3,0xc3,0xf3,0x12,0xf5,0x43,0xf4,0xf1,0xf4,0x5b,0xf7, +0x83,0xf7,0xd2,0xf6,0xc5,0xf8,0x34,0xfb,0xa2,0xfa,0x24,0xfb, +0x63,0x0,0xc4,0x2,0x50,0xff,0x19,0xff,0x82,0x2,0xe2,0x1, +0xa5,0xfe,0x68,0xfd,0x11,0xfc,0x1f,0xf8,0xbb,0xf5,0xcd,0xf7, +0x47,0xf8,0xcb,0xf5,0x76,0xf7,0x5c,0xfb,0xca,0xfb,0x8,0xfd, +0x8e,0x1,0xf6,0x3,0xcb,0x2,0x6f,0x2,0xf5,0x3,0xc6,0x3, +0xe0,0x1,0xf8,0x1,0xfc,0x2,0xb1,0x1,0x5e,0x0,0x9b,0x1, +0xa7,0x2,0x27,0x2,0xa3,0x2,0x9,0x4,0xe1,0x4,0x4e,0x5, +0x6b,0x5,0x90,0x6,0xf4,0x7,0x43,0x7,0xd1,0x7,0xe8,0x9, +0x5c,0x9,0xc9,0x9,0x87,0xc,0xe1,0xc,0xb9,0xc,0x1d,0xd, +0x3a,0xc,0x94,0xc,0x99,0xc,0x4c,0xa,0x57,0x9,0xbc,0x8, +0x24,0x7,0xde,0x7,0x47,0x9,0xb7,0x8,0x84,0x8,0xdb,0x9, +0xc5,0xb,0xf4,0xc,0x9d,0xc,0x33,0xc,0x70,0xc,0xc3,0xc, +0x5c,0xd,0x2,0xd,0x5a,0xb,0xfa,0xa,0xb1,0xb,0x75,0xb, +0x30,0xb,0x8,0xc,0x44,0xd,0x64,0xd,0x6a,0xc,0x6b,0xc, +0xa6,0xc,0x64,0xb,0x7c,0xa,0xdb,0x9,0x1b,0x8,0x8d,0x7, +0x19,0x9,0xc9,0xa,0xb5,0xb,0x28,0xc,0x1b,0xd,0x62,0xe, +0x3d,0xf,0xab,0x10,0x8d,0x12,0x47,0x13,0x9c,0x12,0xc7,0x10, +0x57,0xe,0x89,0xc,0xaf,0xa,0x8a,0x6,0x30,0x2,0x39,0x2, +0x5a,0x4,0x3,0x5,0x18,0x7,0x86,0xa,0x0,0xc,0x35,0xc, +0x13,0xb,0xae,0x8,0x50,0x7,0x11,0x6,0xac,0x3,0x29,0x1, +0x6,0x0,0x43,0x2,0xa,0x6,0x5f,0x7,0x3b,0x7,0xa,0x8, +0x39,0x9,0x41,0x9,0xb7,0x7,0x70,0x5,0x44,0x3,0x76,0x1, +0x2d,0xff,0x48,0xfc,0xf3,0xfa,0xac,0xfa,0x47,0xfa,0xbd,0xfb, +0xea,0xfc,0xc6,0xfb,0x92,0xfc,0xec,0xfe,0x13,0xff,0xcc,0xfd, +0xe9,0xfb,0xdd,0xfa,0x50,0xfb,0xd,0xfa,0x97,0xf8,0x8a,0xf9, +0x32,0xf9,0x83,0xf8,0xc8,0xfb,0x99,0xfe,0x30,0xfe,0x58,0x0, +0x5c,0x4,0x59,0x3,0x37,0x0,0xe9,0x0,0xd0,0x0,0x85,0xfb, +0xf1,0xf6,0x97,0xf7,0x74,0xf8,0x6f,0xf6,0x2c,0xf7,0x77,0xfb, +0x15,0xfc,0xc8,0xfa,0x23,0xfe,0xe9,0xff,0x25,0xfa,0x14,0xf6, +0x68,0xf9,0xc4,0xfa,0xee,0xf5,0x9f,0xf4,0xfa,0xf9,0x4e,0xfc, +0x3a,0xfa,0xd3,0xfb,0x2d,0xfe,0x91,0xfb,0xf4,0xfa,0xc,0xfe, +0x3,0xfc,0xc3,0xf6,0xf1,0xf5,0x2a,0xf7,0x75,0xf5,0x83,0xf1, +0x30,0xf0,0x2c,0xf3,0x9f,0xf4,0x2,0xf3,0x89,0xf4,0x75,0xf9, +0xda,0xfc,0x53,0xff,0xa7,0x3,0x56,0x6,0xe2,0x4,0x29,0x5, +0x13,0x7,0x8f,0x4,0x1f,0x2,0x91,0x2,0x42,0x1,0x25,0x0, +0x63,0xfe,0x94,0xfa,0x1e,0xfc,0xaf,0xfe,0x93,0xfa,0x6e,0xf8, +0x56,0xf9,0x47,0xf6,0x1c,0xf5,0x48,0xf8,0x8e,0xf9,0xde,0xfa, +0x2c,0xff,0x58,0x2,0x8e,0x2,0xcb,0x2,0xd0,0x5,0x74,0x9, +0x53,0x6,0xe7,0xfd,0xf,0xfd,0x6c,0x1,0x1a,0xfd,0x31,0xf7, +0xa7,0xf9,0xb2,0xfa,0x63,0xf8,0x1b,0xfa,0x43,0xfb,0x29,0xf8, +0xfe,0xf5,0xa1,0xf9,0x6,0x0,0x32,0xfe,0x78,0xf9,0x7d,0x0, +0xac,0x4,0xbc,0xf9,0x80,0xf5,0x48,0xfd,0xc9,0xfc,0x74,0xf4, +0x7e,0xf2,0x6f,0xf7,0x11,0xfa,0x40,0xf7,0xf1,0xf7,0x5a,0xfc, +0x61,0xf8,0x10,0xf3,0xe3,0xf6,0x8b,0xf3,0x63,0xe6,0xc5,0xe7, +0x7b,0xf3,0x4d,0xf0,0xb7,0xe4,0x84,0xe5,0xb8,0xf0,0xbb,0xf6, +0x23,0xf1,0x5f,0xeb,0xe9,0xed,0x63,0xee,0x47,0xec,0x66,0xf0, +0x3e,0xee,0x59,0xe3,0x10,0xe6,0x19,0xf1,0x73,0xee,0x45,0xe7, +0xa2,0xe9,0xae,0xee,0x8e,0xee,0x99,0xe9,0xb3,0xe7,0xe9,0xed, +0x4,0xf1,0x2,0xec,0x3,0xeb,0x9d,0xed,0x4a,0xec,0xf3,0xee, +0x8d,0xf5,0x20,0xf4,0x48,0xf0,0xce,0xf3,0xb4,0xf8,0xbb,0xf9, +0x14,0xf8,0x50,0xf7,0x91,0xfa,0x9c,0xfa,0x40,0xf4,0xf7,0xf2, +0x1a,0xf7,0x17,0xf7,0x2d,0xf6,0x40,0xf8,0x87,0xf9,0x9e,0xfb, +0x4f,0x0,0x9d,0x2,0x56,0x1,0xb1,0xff,0xfc,0xfe,0x39,0x1, +0x21,0x4,0xeb,0x1,0xa4,0x0,0x1d,0x6,0x79,0x9,0x81,0x8, +0x75,0x9,0x2c,0xb,0x73,0xc,0xc2,0xb,0x91,0x6,0x8,0x4, +0x1,0x8,0xc1,0xa,0xf,0x9,0xe8,0x6,0x92,0x7,0xd9,0xa, +0x2d,0xe,0xac,0xf,0x55,0xe,0xb6,0xc,0x30,0xf,0x42,0x13, +0x3,0x14,0x18,0x12,0xec,0x10,0x9b,0x12,0xe2,0x14,0xe1,0x13, +0x3b,0x11,0x15,0x12,0x29,0x16,0xc2,0x16,0xf8,0x12,0x43,0x12, +0x13,0x16,0x84,0x19,0x93,0x1a,0xf5,0x18,0x9a,0x16,0x46,0x17, +0x58,0x1b,0x9f,0x1e,0x5f,0x1d,0xdd,0x1c,0x51,0x23,0x85,0x29, +0xbe,0x27,0xc2,0x22,0x52,0x22,0x32,0x26,0x4a,0x25,0x2f,0x1e, +0xa8,0x1b,0x15,0x1d,0xdd,0x19,0x55,0x15,0xbd,0x12,0x8d,0xf, +0x9c,0xf,0xb9,0x15,0x12,0x1a,0xfb,0x16,0xc6,0x14,0x45,0x1b, +0xb2,0x21,0x15,0x1f,0x5e,0x1b,0xd1,0x1e,0xe2,0x21,0x53,0x1c, +0x71,0x15,0xc4,0x14,0xeb,0x13,0x4a,0xf,0xda,0xb,0x51,0x9, +0xef,0x6,0xc6,0x8,0xf0,0xb,0x1,0x9,0x17,0x3,0x8c,0x3, +0xf5,0x7,0xf6,0x5,0x4a,0xff,0x54,0xfc,0x49,0xfb,0xca,0xf8, +0xe7,0xf8,0x1a,0xfc,0xc8,0xfc,0x4a,0xfb,0xa0,0xfc,0x13,0xfe, +0x79,0xfb,0xe9,0xf9,0xf3,0xfa,0xc9,0xf7,0x41,0xf1,0x65,0xee, +0x16,0xef,0x7,0xee,0xe2,0xea,0xf8,0xeb,0x78,0xf0,0x43,0xee, +0x29,0xe7,0xf9,0xe5,0xb9,0xe8,0xf2,0xe7,0xb8,0xe4,0x7d,0xe3, +0x36,0xe4,0x3f,0xe3,0x56,0xe2,0x5e,0xe4,0xba,0xe3,0x38,0xe1, +0xb9,0xe4,0x55,0xe8,0xa7,0xe6,0x93,0xe8,0x1b,0xee,0x1c,0xee, +0xa9,0xea,0x59,0xea,0xf7,0xed,0x12,0xf2,0x38,0xf0,0x57,0xea, +0xc7,0xea,0x70,0xee,0x93,0xed,0x86,0xed,0xff,0xec,0x8,0xe9, +0x77,0xed,0x3f,0xf5,0xc7,0xf0,0x23,0xec,0xdf,0xf0,0xca,0xf3, +0x4b,0xf3,0x76,0xf1,0x27,0xee,0xcc,0xf0,0xf2,0xf5,0x68,0xf3, +0x26,0xef,0x19,0xf0,0x1a,0xf2,0x7f,0xf2,0xa2,0xf0,0xcf,0xec, +0xdc,0xed,0x98,0xf4,0x90,0xf5,0x2d,0xf1,0x54,0xf3,0x68,0xf8, +0xe9,0xf7,0x2f,0xf6,0x1c,0xf7,0x4d,0xf9,0x57,0xfb,0x25,0xfc, +0x7c,0xfc,0x53,0xfb,0x6d,0xf9,0x40,0xfc,0xbf,0x0,0x59,0xff, +0xda,0xfa,0xb1,0xf9,0xe6,0xfb,0xc6,0xfc,0x85,0xfb,0x96,0xfc, +0x58,0xfe,0xce,0xfc,0xde,0xfc,0x6f,0x1,0x75,0x3,0x62,0x0, +0xc8,0xff,0xcf,0x2,0xc2,0x2,0x24,0x2,0x56,0x4,0x79,0x4, +0x10,0x5,0x6f,0x9,0xfb,0xb,0xc4,0xc,0x50,0xd,0xb9,0xb, +0xeb,0xb,0x17,0xd,0x7a,0xa,0xc0,0x9,0x5f,0xd,0xa1,0xe, +0xa0,0xd,0x17,0xe,0x2c,0xe,0x31,0xd,0x2a,0xd,0xbd,0xc, +0xe3,0xa,0x6c,0x9,0x46,0x8,0xf6,0x7,0x95,0x9,0xc5,0xa, +0xf3,0xb,0x89,0xe,0x7,0xf,0x47,0xe,0xc8,0xf,0x85,0x10, +0x22,0xf,0x55,0xe,0x61,0xd,0x9c,0xb,0x9c,0xb,0x6b,0xc, +0x76,0x9,0x66,0x5,0xa7,0x6,0xa5,0x8,0xc9,0x5,0x96,0x4, +0xe8,0x7,0x5,0x9,0x63,0x7,0x6d,0x8,0xc0,0xb,0xe7,0xc, +0xea,0xb,0x53,0xb,0xfe,0x8,0x3e,0x3,0x6b,0xff,0x1b,0x0, +0x54,0xff,0x65,0xfb,0x9c,0xfa,0x43,0xfd,0x70,0xfd,0xc8,0xfb, +0xcb,0xfc,0xec,0xff,0x62,0x2,0xac,0x3,0x16,0x5,0x68,0x7, +0x42,0xa,0xc2,0xc,0x37,0xd,0x5f,0xb,0xcb,0x8,0xef,0x4, +0xad,0xff,0x96,0xfb,0xd1,0xf8,0xfa,0xf5,0xc3,0xf3,0xca,0xf2, +0xcd,0xf2,0x6,0xf4,0xa2,0xf6,0xb8,0xf9,0x63,0xfc,0x6e,0xff, +0x24,0x3,0x7f,0x5,0x66,0x5,0xd6,0x4,0xd9,0x5,0xe0,0x6, +0xb2,0x6,0xfc,0x7,0xf7,0x9,0xa5,0x8,0xe6,0x5,0x5f,0x4, +0x6e,0x1,0x4c,0xfc,0x2e,0xf8,0x86,0xf6,0x92,0xf5,0xb2,0xf4, +0x3b,0xf6,0xe1,0xfa,0xd7,0xff,0x4e,0x2,0x2c,0x3,0x21,0x6, +0xe7,0x9,0x34,0xa,0x10,0x9,0x3c,0x8,0x50,0x5,0xe2,0x1, +0x45,0xff,0x59,0xfb,0x9e,0xf7,0x26,0xf6,0x9a,0xf5,0x7e,0xf5, +0xf9,0xf6,0xd2,0xf9,0x9c,0xfb,0x74,0xfb,0x5a,0xfb,0xac,0xfb, +0x73,0xfb,0x2e,0xfb,0x9a,0xfb,0xa1,0xfc,0xd3,0xfc,0xf4,0xfb, +0x9,0xfc,0x8a,0xfc,0x38,0xfc,0x46,0xfc,0xe,0xfc,0xf5,0xf9, +0xb3,0xf6,0xfb,0xf3,0xc6,0xf2,0xaa,0xf1,0xa6,0xef,0xd3,0xee, +0x56,0xf0,0x10,0xf3,0xa1,0xf5,0x4a,0xf8,0x6f,0xfc,0xd1,0xff, +0x1b,0x1,0x95,0x3,0xe6,0x4,0x98,0x1,0xdd,0xfe,0xa9,0xfe, +0xac,0xfc,0x57,0xf9,0x25,0xf7,0xa0,0xf5,0x80,0xf4,0x69,0xf4, +0x58,0xf5,0xe0,0xf6,0xc5,0xf8,0x6d,0xfa,0xf1,0xfb,0x63,0xfd, +0x8d,0xfc,0x78,0xfa,0x9a,0xfa,0x8a,0xfa,0xe7,0xf8,0xac,0xf8, +0xe1,0xf8,0xe9,0xf8,0x1e,0xfa,0x29,0xfb,0xc9,0xfc,0x27,0xff, +0x35,0xff,0x93,0xfe,0x4b,0xff,0x5e,0xfe,0x71,0xfb,0xfa,0xf9, +0xc1,0xfa,0x34,0xfb,0xc7,0xfa,0x43,0xfc,0x91,0xff,0x26,0x1, +0x6c,0x0,0xde,0xff,0x69,0xff,0xe9,0xfc,0xd4,0xfa,0xdd,0xfb, +0x46,0xfb,0xb6,0xf7,0x48,0xf7,0x9a,0xf9,0x8a,0xf9,0xc9,0xf7, +0xac,0xf7,0xda,0xf8,0x3c,0xf8,0xfb,0xf6,0xfc,0xf8,0xb9,0xfb, +0x4b,0xfc,0x40,0xfd,0x11,0xfe,0xf,0xfd,0x83,0xfd,0x5a,0x0, +0x4,0x2,0x3c,0x2,0x6f,0x3,0x8b,0x4,0x13,0x4,0x4b,0x4, +0x61,0x5,0x37,0x4,0x97,0x0,0xc2,0xfc,0x45,0xfa,0x85,0xf8, +0x4b,0xf5,0xb0,0xf1,0x31,0xf1,0xfb,0xf3,0x94,0xf8,0x91,0xfe, +0xf8,0x4,0x77,0xa,0xf6,0xe,0x74,0x12,0xb8,0x13,0xcf,0x12, +0x7c,0x11,0x6e,0xf,0xcd,0xb,0xf0,0x8,0x8b,0x8,0x80,0x8, +0x81,0x7,0x8d,0x6,0x83,0x4,0x86,0x0,0xc9,0xfd,0x97,0xfd, +0x29,0xfe,0x36,0xff,0xf1,0xff,0x90,0x0,0x4d,0x3,0xd9,0x5, +0x16,0x5,0x3b,0x3,0xd8,0x1,0xe6,0xff,0xc9,0xfd,0x68,0xfc, +0x22,0xfc,0x4a,0xfd,0x35,0xff,0xd7,0x0,0xa7,0x2,0x61,0x5, +0x84,0x8,0x48,0xb,0x2f,0xc,0x26,0xb,0x5a,0xb,0x23,0xd, +0x1e,0xe,0x5a,0xe,0x53,0xd,0xfe,0xa,0x5a,0x9,0x4e,0x7, +0xce,0x3,0x97,0x0,0xe0,0xfd,0x50,0xfb,0x67,0xf9,0x50,0xf9, +0x7f,0xfb,0x99,0xfd,0x79,0xff,0x49,0x2,0x5c,0x3,0x72,0x3, +0x92,0x5,0xc8,0x6,0xa9,0x5,0xb5,0x5,0xb2,0x7,0xd6,0x9, +0x77,0xb,0x79,0xc,0xf3,0xb,0x7b,0x9,0x8d,0x6,0x30,0x4, +0x8,0x2,0x28,0x0,0x85,0xff,0x85,0x0,0xbe,0x1,0xd,0x3, +0x71,0x5,0xe8,0x6,0xb4,0x6,0x41,0x6,0x34,0x4,0x24,0x1, +0xa3,0xff,0xd8,0xfe,0x33,0xfe,0x7,0xfe,0x46,0xfe,0xe,0x0, +0x49,0x2,0x4,0x3,0x99,0x2,0xf0,0x0,0x86,0xfe,0x60,0xfc, +0x5f,0xfa,0xe6,0xf9,0x9c,0xfb,0xd3,0xfd,0x15,0x0,0xf6,0x1, +0x87,0x3,0x8,0x6,0x4f,0x7,0x97,0x5,0x32,0x4,0xa5,0x3, +0x76,0x1,0x57,0x0,0x99,0x1,0xbd,0x0,0x5a,0xfe,0x53,0xfe, +0x93,0xfe,0x0,0xfe,0xb,0xff,0x27,0x0,0xd3,0xff,0x99,0x0, +0xdb,0x2,0x4d,0x4,0x95,0x4,0xac,0x4,0x66,0x4,0xdb,0x2, +0xd3,0xff,0x6b,0xfc,0x3,0xfa,0x20,0xf8,0x9e,0xf5,0xdf,0xf3, +0x3d,0xf4,0x3,0xf5,0xa8,0xf5,0x3c,0xf8,0x5f,0xfb,0xc9,0xfb, +0xf4,0xfb,0x5e,0xfe,0x49,0xff,0xb6,0xfe,0x86,0x0,0xee,0x1, +0xca,0x0,0x41,0x1,0x7f,0x2,0xc1,0xff,0x6a,0xfb,0xd9,0xf9, +0xb3,0xf8,0xd6,0xf5,0xe2,0xf4,0x39,0xf7,0xa8,0xf9,0x92,0xfa, +0x3b,0xfb,0xc6,0xfc,0x55,0xfc,0x6e,0xf8,0x46,0xf7,0xd1,0xf8, +0xa3,0xf6,0x47,0xf6,0x1a,0xfb,0x93,0xfc,0x54,0xfd,0x76,0x3, +0xc3,0x6,0x66,0x4,0xd,0x4,0x2f,0x5,0x29,0x2,0xb8,0xfb, +0x53,0xf6,0x69,0xf3,0x5d,0xf0,0x21,0xed,0xc1,0xed,0xe0,0xf1, +0x29,0xf6,0x98,0xfb,0x56,0x1,0xd3,0x3,0xe7,0x4,0xe4,0x5, +0x4d,0x4,0x4b,0x1,0x1,0xff,0x71,0xfe,0x79,0xff,0xff,0xfd, +0xd9,0xfb,0xc5,0xfd,0x21,0xfd,0xfd,0xf8,0xe2,0xf9,0x36,0xfa, +0xd4,0xf5,0x83,0xf6,0x9,0xf9,0xb4,0xf5,0x89,0xf4,0x2b,0xf7, +0x75,0xf6,0x87,0xf5,0xfa,0xf7,0xaf,0xfb,0x4e,0x0,0xdd,0x4, +0xbd,0x9,0xa1,0xf,0xb8,0x11,0xa,0xf,0xab,0xb,0xe1,0x6, +0x29,0x1,0xde,0xfd,0xe4,0xfa,0x1,0xf7,0xd7,0xf6,0xc9,0xfa, +0xab,0xfd,0x54,0xfe,0x85,0xff,0x32,0x2,0x91,0x4,0x80,0x3, +0x99,0x0,0x14,0x0,0x56,0xfe,0xad,0xf9,0x9a,0xf7,0xae,0xf6, +0xeb,0xf5,0x1a,0xf9,0x62,0xfb,0x26,0xfb,0x3f,0xfe,0x8e,0x1, +0xa1,0x1,0x44,0x1,0x1a,0x0,0xc9,0xfe,0x48,0x0,0x60,0x2, +0x5e,0x1,0xf6,0xff,0x75,0x1,0xdb,0x2,0x8c,0x3,0x73,0x4, +0xcd,0x2,0xed,0x2,0xcc,0x6,0x6e,0x6,0x98,0x3,0x87,0x2, +0x62,0x0,0xbf,0xfe,0x36,0xfc,0xb1,0xf7,0x3c,0xf7,0x17,0xf9, +0x84,0xfa,0x4a,0xfd,0x7,0xff,0xff,0x0,0xf8,0x3,0x1e,0x4, +0x41,0x2,0x75,0xff,0x38,0xfe,0x12,0x0,0xd2,0xfe,0xb8,0xfc, +0x41,0x0,0xab,0x3,0x43,0x4,0x2f,0x7,0xa,0xa,0x93,0x7, +0xc0,0x5,0x4e,0x8,0x77,0x4,0xb4,0xfd,0x9c,0x0,0x92,0x0, +0xf6,0xf9,0x91,0xfc,0x29,0x0,0xe4,0xfb,0x7d,0xfa,0xf9,0xfc, +0xf4,0xfe,0x50,0xff,0x7a,0xfe,0xbc,0x0,0x24,0x3,0xb4,0x3, +0x22,0x7,0x7,0x9,0xf6,0x5,0x4d,0x4,0x6d,0x6,0x5f,0x6, +0x7c,0x1,0x59,0x1,0x58,0x6,0x12,0x5,0x7e,0x5,0x54,0xd, +0xeb,0xd,0x2c,0x9,0xcd,0x9,0xde,0x9,0xbe,0x5,0x37,0x3, +0xd3,0x3,0xf6,0x1,0x14,0xfe,0x1e,0x0,0xf0,0x3,0x94,0x3, +0x6e,0x5,0x61,0x9,0xb2,0xa,0x6b,0xb,0xa4,0xd,0xa7,0x10, +0xf4,0xf,0x71,0xd,0xc3,0xf,0x50,0xf,0x85,0x9,0xe,0x9, +0xf1,0x9,0xc1,0x5,0x1e,0x4,0xc6,0x7,0xbb,0x9,0xa5,0x6, +0x55,0x5,0x72,0x8,0x73,0x7,0x40,0x3,0xa0,0x1,0xe0,0xfe, +0x9b,0xfc,0x6,0xfe,0x6,0xfe,0xae,0xfc,0x55,0xff,0x79,0x6, +0x9f,0xc,0x90,0xd,0x89,0xd,0x73,0xe,0x47,0xc,0x20,0x9, +0x40,0x7,0xad,0x3,0x74,0xff,0x36,0xfd,0x2a,0xfb,0xe9,0xf8, +0x6c,0xf9,0x1f,0xfb,0x69,0xfa,0x23,0xfa,0xf3,0xfa,0x84,0xfa, +0xc,0xfd,0x0,0x1,0x32,0xff,0xfe,0xfc,0x70,0xff,0x71,0xff, +0xad,0xfa,0x62,0xf6,0xc6,0xf3,0xce,0xf0,0x5c,0xee,0x2e,0xee, +0xdd,0xed,0xde,0xec,0x86,0xef,0x64,0xf3,0xb5,0xf2,0xf1,0xf1, +0xe1,0xf4,0xde,0xf5,0x2b,0xf3,0x8b,0xf0,0x68,0xef,0xdb,0xef, +0x49,0xf0,0x37,0xf1,0x95,0xf5,0xd9,0xf7,0x8e,0xf4,0xd0,0xf3, +0xb8,0xf4,0x8a,0xf0,0xe9,0xec,0x50,0xec,0x30,0xe9,0xa1,0xe6, +0x90,0xe8,0xa7,0xea,0x4,0xec,0x5f,0xef,0x4f,0xf2,0xce,0xf3, +0x2b,0xf6,0xe4,0xf6,0x91,0xf5,0x20,0xf6,0xe8,0xf5,0x63,0xf3, +0xc0,0xf2,0xd8,0xf2,0xd2,0xf1,0x82,0xf0,0x13,0xee,0x49,0xed, +0x86,0xef,0xe0,0xef,0x98,0xee,0x23,0xf0,0xcd,0xf2,0x3b,0xf3, +0xbb,0xf3,0x38,0xf6,0x81,0xf7,0x57,0xf7,0xf0,0xf7,0x30,0xf8, +0x5d,0xf9,0x62,0xfc,0x6b,0xfe,0xfd,0xff,0x90,0x0,0x7a,0xff, +0xc1,0x0,0x5b,0x1,0x74,0xfd,0x47,0xfb,0xf4,0xfb,0x7a,0xfb, +0x40,0xfc,0x73,0xff,0xbe,0x1,0xa8,0x2,0xa6,0x5,0x38,0xb, +0x88,0xd,0x82,0xb,0x5f,0xc,0x17,0x10,0xa4,0xe,0x72,0x9, +0x1a,0x9,0xac,0xb,0xbc,0xa,0x6a,0xa,0x7b,0xd,0x6b,0xe, +0x62,0xe,0xb9,0x11,0x28,0x14,0xee,0x12,0x2f,0x13,0xfc,0x15, +0x7e,0x15,0x94,0x12,0x64,0x14,0xcc,0x17,0x8b,0x15,0xbc,0x12, +0x87,0x14,0xa,0x15,0xde,0x11,0xf,0x10,0xaf,0x10,0xfa,0x10, +0x5,0x10,0x46,0xf,0x4f,0x10,0xbd,0x10,0x78,0xf,0xac,0x11, +0xee,0x14,0x20,0x11,0x3c,0xd,0xab,0x11,0xc0,0x14,0x1f,0x10, +0x1d,0xd,0xb4,0x10,0xc2,0x14,0x6,0x14,0x9c,0xf,0x74,0xc, +0x6f,0xc,0x9a,0xa,0x9c,0x5,0x8e,0x2,0x37,0x1,0xa6,0x1, +0xc8,0x6,0xee,0x8,0xdc,0x4,0x8a,0x5,0x9a,0xa,0x58,0xa, +0xd0,0x5,0x72,0x3,0x7b,0x5,0x7d,0x6,0x82,0x2,0xe2,0xff, +0x25,0x0,0x6a,0xfe,0x2d,0xfd,0xcb,0xfd,0xa9,0xfb,0xdc,0xf7, +0xbd,0xf8,0x8e,0xfc,0xa9,0xfa,0x33,0xf6,0xdb,0xf7,0x3a,0xfa, +0xa3,0xf7,0x43,0xf5,0x40,0xf6,0x46,0xf8,0xe7,0xf7,0xc3,0xf4, +0x84,0xf1,0xe4,0xef,0x2f,0xf1,0xc5,0xf1,0xc8,0xed,0x46,0xeb, +0xd7,0xec,0x75,0xee,0xdb,0xef,0xe5,0xee,0xf7,0xeb,0x38,0xec, +0x62,0xed,0xc7,0xeb,0xbe,0xe9,0xdb,0xea,0x96,0xee,0x38,0xef, +0xed,0xec,0x4c,0xec,0xd2,0xec,0x9b,0xef,0xd9,0xf1,0xf1,0xec, +0xc9,0xe7,0x0,0xea,0x36,0xee,0x2b,0xee,0xb6,0xe9,0x9,0xe7, +0x73,0xe8,0x1f,0xe8,0x9e,0xe7,0x19,0xeb,0xf4,0xed,0xbf,0xed, +0x46,0xed,0x63,0xed,0x9e,0xed,0xb9,0xef,0x6c,0xf3,0x9b,0xf2, +0xf8,0xed,0x70,0xed,0xfa,0xf0,0x99,0xf5,0xd2,0xf8,0xf0,0xf6, +0x93,0xf4,0x86,0xf6,0xc6,0xf9,0xb2,0xfc,0xb6,0xfc,0x9d,0xf8, +0xd1,0xf6,0x82,0xf9,0x8d,0xfa,0xb0,0xf7,0x2b,0xf7,0x9,0xfb, +0x7e,0xfc,0x99,0xfc,0xaa,0x0,0xc,0x4,0x48,0x5,0xf4,0x6, +0xbe,0x4,0x4e,0xff,0x66,0xfe,0xce,0x2,0xa,0x6,0x1f,0x4, +0x8f,0x0,0x94,0x0,0x22,0x5,0x3e,0xb,0x3a,0xe,0x76,0xd, +0xe5,0xb,0x6d,0xb,0x4e,0xd,0x6,0xf,0xd3,0xd,0xfa,0xb, +0xc0,0x8,0x0,0x4,0xd,0x4,0xf5,0x8,0xa6,0xb,0x27,0xa, +0x1d,0x8,0xc5,0x8,0x71,0xb,0x27,0xd,0xab,0xc,0x76,0xb, +0xf4,0x9,0x9b,0x6,0x31,0x4,0x9f,0x5,0x88,0x7,0xc2,0x8, +0x14,0x9,0x87,0x7,0xde,0x9,0x9d,0x10,0xad,0x14,0x46,0x15, +0x12,0x12,0x4d,0xd,0xbf,0xd,0xcd,0xd,0x6,0x8,0xf5,0x4, +0x89,0x5,0x80,0x3,0x66,0x2,0x4e,0x5,0xe4,0x8,0x49,0xd, +0x6e,0x11,0xa2,0x10,0x3b,0xe,0xa,0xf,0xf0,0x10,0xb7,0x13, +0x80,0x13,0xc2,0xb,0x5c,0x7,0xa9,0xb,0xd5,0xe,0x49,0x10, +0x7c,0x12,0x1a,0x11,0x72,0xe,0x6b,0x10,0x8d,0x15,0x47,0x15, +0x41,0xd,0xa9,0x8,0x56,0xa,0x8a,0x8,0x1c,0x5,0xd,0x7, +0x18,0x9,0x9f,0x6,0xed,0x6,0xec,0xc,0xf2,0xe,0xb4,0xc, +0xbc,0xf,0xf6,0x12,0xbf,0xe,0x10,0xb,0x78,0xd,0x9c,0xe, +0x30,0x9,0x85,0x4,0xc,0x6,0x63,0x4,0xf3,0xfc,0x49,0xfb, +0x6c,0xfe,0x6b,0xfc,0xfd,0xf8,0xe7,0xf9,0x47,0xfa,0xee,0xfa, +0xa1,0x1,0xdb,0x4,0xf6,0xfd,0x7b,0xfa,0x93,0xfe,0xa9,0x1, +0xa7,0x3,0xcd,0x3,0x82,0x2,0xf8,0x5,0x5c,0x9,0x91,0x7, +0x2a,0x7,0x2a,0x9,0xe2,0x8,0xe0,0x5,0x41,0x1,0x2c,0xfd, +0xd7,0xfa,0x0,0xf8,0xb4,0xf3,0xa3,0xf0,0xc3,0xf0,0x4,0xf4, +0xcc,0xf9,0xc1,0xfd,0xf,0xfd,0x9e,0xfe,0x96,0x5,0x5a,0xa, +0x2,0xa,0x99,0x8,0x45,0x8,0x23,0x8,0xb1,0x6,0xf9,0x4, +0xfb,0x3,0xc6,0x2,0x44,0x2,0x2f,0x2,0x7f,0xff,0xad,0xfa, +0x1d,0xf8,0x91,0xf9,0xd1,0xfa,0xd9,0xf8,0x9b,0xf5,0x41,0xf3, +0xc1,0xf5,0x30,0xfc,0xa1,0xfc,0xfa,0xf8,0x44,0xfa,0x74,0xfa, +0xe8,0xf6,0x1a,0xf8,0x18,0xfa,0x68,0xf5,0x6b,0xef,0x5e,0xed, +0xa7,0xee,0x2c,0xf0,0x74,0xed,0x90,0xea,0x53,0xec,0xd5,0xea, +0xe7,0xe7,0x42,0xed,0x79,0xed,0x25,0xe4,0x8c,0xe8,0x75,0xf4, +0x49,0xf0,0xff,0xea,0xd,0xf3,0x8c,0xf7,0xd0,0xf2,0x2,0xf0, +0xf4,0xf0,0xd1,0xf0,0xfc,0xed,0xd0,0xeb,0x39,0xeb,0x62,0xe6, +0xca,0xe0,0x34,0xe5,0x5,0xec,0x6b,0xe9,0x99,0xe8,0xf4,0xf1, +0xb2,0xf6,0x49,0xf1,0x83,0xf1,0x5b,0xfa,0xca,0xfa,0x65,0xf2, +0xb9,0xf3,0x27,0xfb,0x71,0xf9,0xa2,0xf8,0x4b,0xfe,0x2f,0xfd, +0x64,0xfc,0x36,0x4,0xf9,0x3,0xe5,0xfb,0x23,0xfc,0xa9,0xfd, +0xc,0xf8,0x94,0xf3,0xb3,0xf2,0x74,0xf3,0xf3,0xf5,0x47,0xf6, +0x37,0xf6,0x4f,0xfa,0xf5,0xfe,0x3a,0x4,0x4c,0x9,0xa5,0x5, +0x42,0x0,0x31,0x4,0x3e,0x5,0x4d,0xfd,0x68,0xfa,0x95,0xfc, +0xc,0xfa,0xda,0xf8,0xc8,0xfd,0x8f,0xff,0x55,0xfd,0x3d,0x0, +0xa4,0x5,0x9,0x6,0x5b,0x4,0xb1,0x3,0xcf,0x1,0xdd,0xfe, +0x57,0xfc,0x83,0xfa,0xf6,0xf9,0x41,0xfa,0x4e,0xfa,0x53,0xfc, +0xbe,0x1,0xb0,0x4,0xf2,0x2,0x9d,0x3,0x7,0x6,0xc5,0x3, +0x63,0x1,0xb9,0x3,0x46,0x5,0xa,0x3,0xaf,0x2,0x1d,0x7, +0xf2,0x9,0x42,0x8,0xc9,0x8,0x77,0xc,0x80,0xc,0x7d,0x9, +0xaa,0x9,0x98,0xb,0x20,0x9,0x3f,0x5,0x69,0x6,0xcb,0x8, +0x64,0x8,0x7c,0x9,0x78,0xd,0xd,0x10,0x4e,0xf,0xe5,0xe, +0xff,0xf,0x91,0xd,0x16,0xa,0x60,0xb,0x13,0xb,0x39,0x6, +0x6a,0x4,0xef,0x5,0xc1,0x5,0x3f,0x3,0xd5,0x0,0x73,0x1, +0xab,0x3,0xe4,0x3,0xf3,0x2,0x3b,0x3,0x11,0x5,0x2d,0x7, +0x84,0x8,0x27,0x9,0x9e,0x8,0x3,0x7,0x3e,0x5,0x4b,0x3, +0xf8,0x1,0x67,0x2,0xf1,0x3,0xb9,0x4,0xe3,0x3,0xe5,0x2, +0x11,0x2,0xd0,0xff,0x31,0xfb,0x96,0xf4,0xb3,0xf0,0xe7,0xf1, +0x92,0xf2,0x2a,0xf3,0x9c,0xf8,0x70,0xff,0x3,0x5,0x51,0x9, +0x97,0xa,0x94,0xb,0x8e,0xb,0xc1,0x5,0x35,0xfe,0x99,0xf8, +0xcf,0xf3,0x4b,0xf2,0xc5,0xf2,0xdc,0xf2,0x5,0xf8,0x87,0x0, +0x95,0x3,0xd7,0x4,0xd2,0x8,0xa1,0x8,0xda,0x4,0x59,0x3, +0xca,0xff,0x85,0xfa,0x84,0xfa,0xb6,0xfb,0xac,0xf9,0x5c,0xf9, +0xf2,0xfb,0x94,0xfe,0x5,0x1,0x66,0x2,0xa9,0x2,0xe5,0x3, +0x5d,0x4,0xca,0x1,0xd7,0xff,0x4a,0xff,0x4e,0xfc,0x18,0xfa, +0x6f,0xfb,0x86,0xfb,0xca,0xfb,0xd5,0xff,0xfb,0x1,0xc1,0x0, +0x60,0x2,0x8d,0x5,0x2e,0x4,0x97,0xff,0x96,0xfc,0xdc,0xfa, +0x96,0xf8,0xc6,0xf6,0xfa,0xf5,0xc,0xf6,0xc7,0xf6,0x66,0xf6, +0x1f,0xf6,0xa8,0xf9,0x81,0xfd,0xae,0xfc,0x39,0xfc,0x8c,0xfe, +0xbf,0xfd,0x35,0xfd,0x20,0x1,0x64,0x1,0x3a,0xff,0x5,0x2, +0xaf,0x3,0xe3,0x2,0x74,0x4,0xd6,0x3,0x69,0x2,0x66,0x4, +0x4c,0x3,0x99,0xff,0x4b,0xff,0xe7,0xfe,0x2a,0xfd,0xea,0xfc, +0x14,0xfc,0x4d,0xfb,0xa9,0xfd,0x18,0xff,0x91,0xfc,0x2,0xfb, +0xaa,0xfb,0x19,0xfb,0xc,0xfb,0x14,0xfd,0x98,0xfe,0x61,0xff, +0x6e,0x0,0x2e,0x1,0x9,0x1,0xf5,0xff,0xa9,0xfe,0x36,0xfd, +0xe1,0xfb,0x4b,0xfb,0xa2,0xfa,0x58,0xfa,0xde,0xf9,0xa3,0xf7, +0x75,0xf7,0x29,0xfa,0xc3,0xfb,0xb9,0xfd,0x65,0xff,0x5f,0xfe, +0x7c,0xff,0xec,0x1,0xf,0x0,0x72,0xfe,0xc0,0x0,0x78,0x1, +0x89,0xff,0x40,0x0,0x49,0x3,0x26,0x4,0x20,0x4,0xa0,0x4, +0xb,0x2,0x1c,0xfe,0xe7,0xfd,0x20,0xff,0x35,0xfe,0x46,0xfd, +0xc3,0xfe,0x2d,0x1,0xdf,0x2,0x28,0x5,0xb9,0x7,0xbb,0x7, +0x2a,0x6,0xad,0x6,0xe,0x8,0x31,0x6,0x90,0x3,0xd0,0x4, +0x4b,0x5,0xe,0x2,0x44,0x2,0xa7,0x5,0xf2,0x4,0x22,0x3, +0x13,0x5,0xa4,0x6,0xa4,0x4,0x9f,0x1,0x2e,0xff,0x5a,0xfc, +0x6e,0xf9,0xc7,0xf7,0xa1,0xf7,0xf,0xf9,0xe4,0xfb,0x43,0xff, +0x1,0x3,0x1a,0x6,0xca,0x6,0xa8,0x6,0x2d,0x8,0x2f,0x9, +0x7d,0x7,0xe6,0x5,0x7,0x6,0xab,0x5,0x1a,0x5,0x1c,0x6, +0x6c,0x7,0xb4,0x7,0x41,0x7,0x12,0x6,0x42,0x4,0xab,0x1, +0x4b,0xfd,0x4b,0xf8,0x77,0xf5,0x9a,0xf4,0xed,0xf4,0xa6,0xf7, +0x5f,0xfb,0xac,0xfe,0x89,0x3,0xd5,0x8,0x68,0xb,0xad,0xb, +0xb2,0xa,0xfc,0x8,0xa0,0x6,0x39,0x3,0x56,0x0,0x45,0xfe, +0xa8,0xfb,0xd8,0xf9,0xf9,0xf9,0x95,0xfb,0x5e,0xfe,0xe2,0x0, +0x32,0x3,0x3b,0x6,0x1b,0x7,0x9,0x5,0x8e,0x4,0xea,0x4, +0x40,0x1,0xf8,0xfd,0xea,0xfe,0x58,0xfc,0x5b,0xf7,0x8d,0xf9, +0x16,0xfd,0xe4,0xfb,0xee,0xfd,0x2d,0x3,0x46,0x4,0xb,0x3, +0xa7,0x2,0xb1,0x0,0x5,0xfc,0xa2,0xf7,0x5b,0xf5,0x5d,0xf3, +0xa4,0xf1,0xa7,0xf2,0x17,0xf6,0x7c,0xf9,0xcd,0xfc,0x39,0x1, +0x43,0x3,0x24,0x1,0x7f,0x1,0x17,0x4,0x76,0x1,0x46,0xfd, +0x29,0xfc,0x43,0xf9,0x51,0xf5,0x8a,0xf6,0x3a,0xfb,0xd7,0xfc, +0x50,0xfc,0x66,0xff,0x74,0x2,0x7e,0x0,0x51,0xff,0x87,0xff, +0xbc,0xfa,0x8f,0xf5,0x59,0xf6,0x3e,0xf8,0xa3,0xf7,0x81,0xf7, +0xf0,0xf7,0xd0,0xf7,0x82,0xf9,0xda,0xfb,0xa6,0xfb,0x51,0xfb, +0x22,0xfc,0xbb,0xfc,0x7a,0xfe,0x29,0x0,0x96,0x0,0x18,0x3, +0x6,0x6,0xaf,0x5,0x5,0x6,0xbd,0x8,0x40,0x8,0xa4,0x4, +0x3a,0x3,0x8d,0x1,0x3a,0xfd,0x45,0xfc,0xed,0xfd,0xa1,0xfc, +0x2a,0xfc,0x28,0xfe,0x71,0xff,0xa0,0x2,0xec,0x6,0xe6,0x8, +0xb5,0xb,0x5b,0xe,0x65,0xd,0xfc,0xc,0xc1,0xd,0xd7,0xb, +0x98,0x8,0xdc,0x3,0xf2,0xfc,0xc5,0xf8,0xda,0xf6,0x27,0xf3, +0x89,0xf1,0x22,0xf3,0x23,0xf4,0x88,0xf7,0xf9,0xfd,0x22,0x1, +0x37,0x1,0x81,0x1,0x22,0x0,0x16,0xfe,0x17,0xff,0x3d,0x0, +0x96,0xfd,0x1c,0xfb,0x2a,0xfc,0x1b,0xfd,0x2e,0xfd,0x1f,0xff, +0xab,0xff,0xc3,0xfb,0x4e,0xf8,0xd5,0xf7,0xa9,0xf5,0x1a,0xf1, +0xe7,0xee,0xd5,0xef,0x72,0xf1,0x19,0xf3,0x3b,0xf6,0xa6,0xfc, +0x64,0x3,0xfd,0x5,0x4d,0x7,0xfe,0x9,0xb8,0xa,0x95,0x9, +0xd0,0x8,0x1f,0x6,0xa6,0x1,0x9,0x0,0x83,0x0,0x3e,0xff, +0xb8,0xfe,0xa,0x0,0x57,0xff,0xf9,0xfe,0x9e,0x1,0x8a,0x3, +0x2c,0x4,0xa0,0x3,0x9c,0x1,0x2,0x2,0xf0,0x2,0xd0,0x1, +0x4e,0x3,0x6d,0x4,0xb4,0x1,0x89,0x3,0x3f,0x9,0x23,0x9, +0x66,0x7,0x83,0xa,0x8d,0xb,0xd8,0x7,0xc4,0x6,0x62,0x7, +0xca,0x4,0x29,0x3,0xe9,0x3,0xa1,0x2,0xd5,0x1,0x97,0x5, +0xb7,0x9,0x1,0x9,0x8e,0x6,0xf9,0x6,0x87,0x6,0xf6,0x2, +0x29,0x1,0x72,0x0,0xf7,0xfc,0x3,0xfa,0x66,0xfb,0x26,0xff, +0x26,0x2,0x55,0x5,0xbe,0x9,0xec,0xc,0x75,0xf,0x4c,0x12, +0xb,0x12,0xad,0xf,0xc5,0xd,0x2d,0xb,0x5,0xa,0x24,0xb, +0x6b,0xb,0x4c,0xb,0xc9,0xb,0x88,0xc,0x55,0xd,0x88,0xc, +0xab,0xb,0x11,0xd,0xfc,0xd,0x72,0xe,0x57,0x11,0x69,0x14, +0xe9,0x15,0x8e,0x17,0x2,0x18,0x7b,0x16,0xf9,0x15,0x50,0x15, +0x2a,0x12,0xfb,0xf,0xba,0xe,0x42,0xa,0xd7,0x5,0xc4,0x5, +0xf,0x6,0x4c,0x3,0x19,0x1,0xf6,0x1,0xa8,0x2,0xe6,0x2, +0xf2,0x4,0xb5,0x4,0xea,0x0,0x77,0xff,0x62,0xff,0x62,0xfc, +0x5b,0xf8,0x9d,0xf5,0x36,0xf5,0x5b,0xf5,0xc4,0xf2,0xef,0xf1, +0x1f,0xf4,0x55,0xf1,0xcd,0xec,0x50,0xed,0x9a,0xeb,0x64,0xe7, +0xc1,0xe8,0x7a,0xe9,0x96,0xe5,0xa8,0xe6,0xf4,0xec,0x38,0xf1, +0x7b,0xf3,0xa8,0xf5,0x48,0xf8,0x8f,0xfa,0xfb,0xf9,0xe0,0xf6, +0x95,0xf2,0x40,0xee,0xb,0xec,0x57,0xea,0x62,0xe8,0x4a,0xea, +0x0,0xee,0xd8,0xed,0x1a,0xed,0xcb,0xef,0x9e,0xf1,0xe5,0xef, +0x4c,0xee,0x24,0xee,0x43,0xed,0x3c,0xec,0xe,0xed,0xad,0xed, +0xf3,0xeb,0x90,0xec,0x37,0xf1,0x24,0xf2,0x80,0xf0,0xd4,0xf4, +0x4a,0xf9,0xb1,0xf6,0xaa,0xf2,0x29,0xf0,0xd4,0xed,0xde,0xeb, +0xdd,0xe8,0x3b,0xe6,0x5e,0xe6,0x69,0xe7,0xdc,0xe8,0x7c,0xea, +0x72,0xea,0x69,0xea,0x19,0xec,0x13,0xed,0x62,0xec,0xe4,0xec, +0x9b,0xef,0x4,0xf1,0xdb,0xec,0xec,0xe4,0xf2,0xe2,0x41,0xe8, +0x72,0xe8,0x16,0xe5,0x76,0xea,0x29,0xf1,0x12,0xf1,0x80,0xf2, +0xa5,0xf4,0x8e,0xf1,0x3f,0xef,0xca,0xef,0x9c,0xed,0x3,0xeb, +0x99,0xee,0xb4,0xf5,0x97,0xf8,0xa3,0xf8,0xf3,0xfc,0x1e,0x5, +0x5d,0xb,0xbe,0xd,0x73,0xe,0x76,0xe,0x92,0xd,0xf3,0xc, +0x4e,0xb,0xc8,0x6,0xb3,0x2,0x64,0x1,0x22,0x1,0x2b,0x1, +0x86,0x2,0x5a,0x6,0xc2,0x9,0xaf,0x8,0xd3,0x6,0xd3,0x8, +0x45,0xc,0xa6,0xd,0x92,0xc,0xf7,0xb,0x58,0xd,0x7b,0xd, +0xc0,0xc,0x2f,0xe,0xa5,0xe,0x59,0xc,0x95,0xb,0xc9,0xc, +0xb5,0xc,0x6d,0xc,0x86,0xc,0x1f,0x9,0x3d,0x3,0xfa,0xff, +0xa0,0xfe,0xf2,0xfc,0x70,0xfb,0x33,0xfa,0x5f,0xfa,0xb2,0xfb, +0x62,0xfc,0x76,0xfe,0xd1,0x0,0x41,0xff,0xe6,0xfd,0x86,0xff, +0xd1,0xfe,0xa0,0xfd,0x77,0x0,0x8c,0x1,0xf4,0xfd,0x3a,0xfb, +0xd6,0xfb,0xce,0xfe,0x22,0x0,0x3d,0xfc,0xd7,0xf9,0x48,0xfc, +0x62,0xfb,0x4,0xf9,0x8f,0xfb,0x52,0xfb,0xc8,0xf6,0x7e,0xf8, +0x75,0xfd,0x56,0xfc,0x9d,0xfa,0x7c,0xfe,0x50,0x1,0x74,0xfe, +0xa9,0xfb,0xde,0xfc,0x62,0xfe,0xbe,0xfe,0x7,0x1,0x2f,0x2, +0x5c,0xfe,0xa7,0xfd,0x79,0x4,0xc2,0x7,0x19,0x3,0x5b,0x0, +0x77,0x3,0x97,0x5,0x5,0x4,0x3c,0x4,0xd6,0x5,0x1c,0x3, +0x6,0x2,0x76,0x8,0xa9,0xb,0x30,0x7,0x96,0x7,0xd3,0xe, +0xc7,0xf,0x63,0xa,0xa6,0xb,0xa9,0x10,0xee,0xd,0xef,0x9, +0xc6,0xb,0x78,0xb,0xa6,0x8,0x6,0xb,0x68,0xe,0xe2,0xc, +0xee,0xb,0x6d,0xe,0x26,0xe,0x5e,0xa,0xac,0x8,0x2c,0x9, +0xe6,0x7,0x84,0x3,0xd3,0x1,0xc6,0x8,0x84,0xf,0xae,0xe, +0xc,0x10,0xd,0x15,0x1c,0x16,0x4b,0x18,0x4d,0x1c,0x84,0x19, +0x1c,0x15,0x19,0x17,0x39,0x19,0x74,0x16,0x4,0x13,0x3e,0x12, +0x76,0x14,0x48,0x16,0xee,0x12,0x2c,0x10,0x92,0x14,0xd0,0x17, +0x8a,0x15,0x18,0x15,0xd2,0x16,0xe6,0x17,0xf0,0x19,0xe7,0x1b, +0x4c,0x1c,0xab,0x1b,0xa1,0x1b,0xb5,0x1d,0x93,0x1e,0xd6,0x1c, +0x6b,0x1c,0x24,0x1c,0x89,0x19,0xdb,0x16,0x20,0x15,0x6b,0x14, +0xf0,0x13,0x10,0x12,0xe9,0x11,0xd,0x15,0x9c,0x17,0xa,0x1a, +0x5e,0x1d,0xe,0x1e,0x97,0x1d,0x2d,0x1e,0x41,0x1c,0xc5,0x18, +0xb1,0x15,0x78,0x10,0x55,0xc,0xdf,0xb,0xc7,0xa,0xf1,0x9, +0x23,0xa,0x4e,0x8,0x92,0x9,0xb7,0xf,0xfc,0x10,0xb,0xc, +0x12,0x9,0x31,0xa,0xad,0xb,0x5d,0x8,0x20,0x0,0x96,0xfc, +0xbb,0x0,0x1,0x2,0xb1,0xfd,0x1b,0xfa,0x59,0xf7,0xa0,0xf6, +0xdd,0xf9,0xce,0xf8,0xc3,0xf0,0x38,0xec,0x94,0xed,0x58,0xed, +0x3d,0xeb,0xf9,0xea,0xb9,0xeb,0xde,0xee,0x9f,0xf4,0x88,0xf6, +0xb7,0xf6,0x97,0xfb,0x18,0xff,0x1c,0xfe,0xe6,0xfc,0x84,0xfa, +0x14,0xf9,0x54,0xf8,0x8f,0xf1,0x4f,0xeb,0x63,0xec,0xa3,0xec, +0xeb,0xe9,0x25,0xe8,0xb3,0xe7,0x19,0xed,0xc7,0xf5,0x2c,0xf4, +0x1,0xeb,0x0,0xeb,0xfd,0xf1,0x3e,0xf1,0x79,0xe9,0x80,0xe3, +0xd4,0xe2,0x4c,0xe8,0x9d,0xee,0xbe,0xef,0xe8,0xed,0xee,0xec, +0xae,0xf0,0x81,0xf8,0x19,0xfa,0x9e,0xf3,0x88,0xef,0xbf,0xf1, +0xf,0xf4,0x3f,0xf0,0x92,0xeb,0xf6,0xec,0x3b,0xec,0x3d,0xe8, +0xf4,0xec,0xc9,0xf3,0x25,0xf0,0x1f,0xea,0x43,0xec,0x64,0xf2, +0x53,0xf0,0xd2,0xe5,0x2d,0xe3,0x68,0xe8,0x5f,0xe4,0x7d,0xdc, +0xd5,0xdd,0x27,0xdd,0x50,0xd7,0x38,0xde,0xfa,0xea,0xfe,0xe7, +0x4a,0xe1,0xa4,0xe6,0x60,0xeb,0x7f,0xeb,0x12,0xef,0x96,0xef, +0x17,0xe9,0xa0,0xe4,0xf1,0xe8,0x49,0xf1,0x7f,0xef,0x28,0xe7, +0xb6,0xed,0xf8,0xfc,0x6,0x0,0x39,0xfe,0xfe,0xff,0x2e,0xfc, +0x57,0xf8,0xed,0xfe,0xd7,0x2,0xb9,0xfa,0xed,0xf2,0x8b,0xf0, +0xb,0xef,0x74,0xf0,0x8b,0xf1,0xee,0xed,0xd8,0xec,0xda,0xee, +0x1d,0xee,0xfe,0xed,0x5d,0xef,0x4f,0xf1,0xf3,0xf6,0x9f,0xf8, +0x4c,0xf1,0x7e,0xee,0x77,0xf6,0xd7,0x0,0xa9,0x7,0x9b,0x6, +0x78,0x0,0xb0,0x1,0x5e,0x9,0xe1,0x9,0xcc,0x1,0xa0,0xf9, +0xc0,0xf4,0x68,0xf1,0xf8,0xec,0x4f,0xe8,0x56,0xe8,0x90,0xec, +0xc2,0xec,0x8f,0xe8,0x4f,0xec,0x34,0xfa,0xed,0x2,0xc2,0xff, +0x22,0xfa,0x66,0xf9,0x93,0xfd,0x6,0x1,0x7c,0xfc,0x50,0xf3, +0xfd,0xee,0x68,0xf0,0xa7,0xf3,0x1a,0xf7,0xa2,0xf9,0xa1,0xfa, +0x93,0xf9,0xac,0xf6,0x93,0xf6,0xd9,0xfb,0x30,0x0,0x12,0x0, +0x29,0xff,0xb4,0xfd,0x5b,0xfe,0x5b,0x6,0x8b,0xd,0x1b,0xd, +0xc8,0xd,0x9,0x12,0xe8,0x14,0xf8,0x15,0xce,0x12,0xa2,0xe, +0x84,0xf,0xf6,0xd,0x7f,0x8,0x35,0x8,0x21,0xa,0x79,0xc, +0x30,0x12,0x40,0x12,0xc2,0xb,0x99,0xa,0xf7,0xe,0x93,0x13, +0x70,0x14,0x61,0xc,0x1c,0x4,0xa2,0x8,0xd7,0x12,0x84,0x15, +0x6b,0x10,0x82,0x9,0x29,0x6,0x4f,0xa,0xd9,0x12,0x53,0x16, +0xcd,0x12,0x20,0xf,0x1,0xd,0x42,0xb,0xa3,0xa,0x4f,0x8, +0x56,0x6,0x65,0xb,0x8b,0x12,0x8b,0x14,0x42,0x14,0x3,0x15, +0xb4,0x16,0x7,0x16,0x98,0x10,0xec,0xc,0x98,0xd,0x3e,0xd, +0xce,0xe,0x6c,0x12,0xb7,0xd,0xa5,0x4,0x2b,0x5,0xad,0xb, +0xcd,0xb,0x17,0x7,0xa2,0x6,0x42,0x7,0x0,0x1,0x29,0xfe, +0x24,0x8,0x92,0xc,0x56,0x1,0x23,0xfc,0x45,0x5,0x61,0xb, +0x59,0xa,0x2f,0xa,0x3,0x9,0xc7,0x4,0x56,0x3,0x41,0x7, +0xd2,0x9,0x4b,0x6,0x61,0x5,0xce,0xb,0x33,0xc,0xe7,0x3, +0x4e,0x3,0x2d,0x9,0x25,0x5,0x87,0xfb,0x14,0xfc,0x42,0x4, +0x24,0x7,0x59,0x4,0xb2,0x3,0x6f,0x4,0x25,0x2,0xca,0xfe, +0x0,0xfc,0x52,0xf9,0x52,0xf9,0xbb,0xfc,0x7a,0xff,0x32,0xfe, +0xd2,0xfa,0x1e,0xfa,0xac,0xfa,0x5d,0xf8,0x9,0xf7,0x58,0xf8, +0x75,0xf6,0xc4,0xf3,0xff,0xf5,0x1,0xf8,0x59,0xf5,0x27,0xf1, +0x5f,0xee,0x6c,0xf0,0x79,0xf6,0x52,0xf7,0x54,0xf1,0x1a,0xee, +0x9d,0xf1,0x51,0xf7,0x42,0xf9,0xf,0xf6,0x76,0xf5,0x18,0xfb, +0xa2,0xfd,0x4f,0xfa,0x24,0xf9,0x9a,0xfa,0x8e,0xfa,0x93,0xf9, +0xdd,0xf7,0x67,0xf6,0x46,0xf8,0xc1,0xfb,0x4a,0xfc,0x39,0xf9, +0xca,0xf5,0xe0,0xf4,0xab,0xf4,0x93,0xf2,0xca,0xf1,0xdc,0xf4, +0x9a,0xf7,0x70,0xf7,0x13,0xf9,0xa6,0xff,0x72,0x5,0xc,0x5, +0xf5,0x2,0x56,0x4,0x76,0x6,0xfa,0x6,0xeb,0x6,0x94,0x5, +0x9f,0x3,0xcd,0x3,0x7d,0x4,0xc2,0x1,0x48,0xfd,0x42,0xfd, +0xc3,0x2,0x9,0x7,0x51,0x7,0x36,0x9,0xd,0xe,0xb5,0x10, +0xb6,0xf,0x9a,0xc,0xfa,0x7,0xda,0x3,0x19,0x2,0x6,0x1, +0x8c,0xfd,0x55,0xf8,0x9c,0xf6,0x9,0xfa,0x4,0xfd,0xa7,0xfc, +0xec,0xfb,0x2a,0xfc,0xe0,0xfd,0x9e,0x2,0xbb,0x7,0x7c,0x9, +0xa5,0x9,0x67,0xa,0xc3,0xa,0x81,0xb,0xfd,0xd,0x53,0xf, +0x36,0xd,0x86,0xa,0x30,0x9,0xe3,0x6,0x4,0x3,0xb7,0xff, +0x36,0xfd,0xa9,0xfa,0xe1,0xf8,0xe2,0xf8,0x77,0xfa,0x90,0xfc, +0x95,0xfe,0xf3,0x0,0x4f,0x3,0x4f,0x5,0x1b,0x9,0x82,0xe, +0x5a,0x10,0x6b,0xe,0x8a,0xe,0x5d,0xf,0x73,0xb,0x93,0x6, +0x5b,0x5,0xa8,0x3,0x5e,0xff,0x52,0xfb,0xf7,0xf7,0xaa,0xf6, +0x27,0xf8,0x38,0xf7,0x34,0xf3,0xe0,0xf1,0x20,0xf3,0xe5,0xf4, +0x72,0xf8,0xa2,0xfb,0x86,0xfd,0xe3,0x0,0xff,0x2,0xca,0x1, +0x71,0x1,0xab,0x0,0xf0,0xfb,0xea,0xf7,0x1,0xf8,0xc6,0xf8, +0xb1,0xf7,0xb9,0xf4,0xdd,0xf1,0x39,0xf2,0xcf,0xf4,0xa4,0xf6, +0x0,0xf8,0x69,0xfa,0xfd,0xfe,0x41,0x5,0x32,0x9,0x8f,0x8, +0xcf,0x6,0xb,0x7,0x87,0x7,0x4f,0x5,0xa3,0x0,0x9d,0xfc, +0xca,0xfa,0xf2,0xf9,0xfd,0xf8,0x89,0xf7,0x74,0xf5,0xde,0xf3, +0xf8,0xf3,0x65,0xf5,0x2a,0xf7,0xde,0xf8,0x15,0xfb,0x15,0xff, +0x5f,0x5,0x47,0xc,0xad,0x10,0xc8,0x11,0xc4,0x12,0x9b,0x14, +0xed,0x12,0x29,0xc,0x53,0x5,0xa9,0x1,0x8e,0xfe,0xf7,0xf9, +0x63,0xf6,0xe3,0xf5,0x16,0xf6,0x96,0xf5,0x6f,0xf7,0xc3,0xfb, +0x48,0xfe,0x34,0xff,0x4a,0x2,0x96,0x6,0xa5,0x8,0x14,0x8, +0xa2,0x6,0x3d,0x6,0xb6,0x7,0x2b,0xa,0x58,0xc,0xb1,0xc, +0xa2,0xa,0x91,0x8,0x7,0x8,0xc3,0x6,0x4b,0x3,0xbb,0xfe, +0x4b,0xfa,0x2e,0xf7,0xc0,0xf5,0xfe,0xf4,0xfe,0xf4,0xf1,0xf6, +0xf4,0xfa,0xe0,0xff,0xba,0x4,0xd1,0x9,0xbc,0xe,0xc0,0x10, +0x7b,0xe,0xef,0x9,0x39,0x5,0xe1,0x0,0x96,0xfc,0xf5,0xf7, +0x3c,0xf4,0x47,0xf4,0x66,0xf8,0xf,0xfd,0xd3,0xff,0xb4,0x1, +0x84,0x3,0x72,0x4,0xae,0x4,0x5c,0x5,0xed,0x4,0xd2,0x1, +0xe2,0xff,0x43,0x0,0x89,0xfd,0xa4,0xf9,0xb3,0xfa,0xe0,0xfb, +0x83,0xf9,0x82,0xfa,0x45,0xff,0x5b,0x0,0x4a,0xfe,0xde,0xfd, +0x7f,0xfd,0x33,0xfb,0xda,0xf8,0x51,0xf6,0x2e,0xf4,0x69,0xf5, +0x53,0xf8,0xb0,0xfa,0x74,0xfd,0x89,0xff,0x35,0x1,0x35,0x2, +0x11,0xff,0xe1,0xfb,0xe2,0xfb,0xff,0xf7,0xb8,0xf1,0x6b,0xf0, +0x5,0xef,0x95,0xe9,0x28,0xe7,0x1,0xea,0x91,0xec,0xb8,0xee, +0x2b,0xf4,0x1a,0xf9,0xc9,0xfa,0xd3,0xfd,0xc5,0xff,0x87,0xfc, +0xf7,0xf8,0x71,0xf5,0xc7,0xf0,0x9a,0xef,0xb0,0xee,0x95,0xea, +0xcc,0xe9,0x24,0xec,0x5e,0xed,0xfe,0xf0,0x1e,0xf5,0x93,0xf4, +0x87,0xf6,0x87,0xfd,0xff,0xfd,0x19,0xf9,0x5a,0xf9,0x46,0xf9, +0xf9,0xf4,0x2b,0xf4,0x73,0xf5,0x12,0xf7,0x86,0xfd,0xcb,0x3, +0xc4,0x6,0xc,0xb,0xb9,0xd,0x3c,0xd,0x5e,0xe,0x62,0xe, +0xd2,0x9,0xae,0x6,0x40,0x7,0xb9,0x4,0x66,0x0,0x32,0x1, +0x1c,0x1,0x7a,0xfd,0x73,0xff,0x33,0x2,0x3,0x0,0xfd,0x1, +0x8d,0x3,0x56,0xfd,0x91,0xfb,0xbc,0xff,0x3,0xff,0x83,0xfc, +0xde,0xfc,0xde,0xfd,0xb1,0xff,0xa9,0x0,0x8c,0xff,0x8b,0x0, +0xd4,0x2,0x58,0x1,0xdd,0xff,0x68,0x2,0x39,0x2,0x2c,0xfe, +0x64,0xfd,0xc,0xfd,0xe2,0xf9,0x7c,0xf9,0x4d,0xfa,0xb9,0xf8, +0x20,0xf9,0x8,0xfb,0x38,0xfb,0x82,0xfd,0x68,0x2,0x46,0x4, +0xa7,0x3,0x98,0x4,0x2c,0x4,0x4,0x1,0xdb,0xff,0xb9,0xfe, +0x83,0xfb,0x36,0xfc,0x99,0xff,0xa0,0x1,0x70,0x5,0xc9,0x8, +0xc7,0x9,0x98,0xc,0x74,0xd,0x30,0xa,0xc4,0x8,0x9f,0x7, +0xf3,0x2,0x6f,0xfd,0x30,0xfa,0xb9,0xfa,0x3d,0xfc,0xdb,0xfb, +0xab,0xfc,0x14,0xff,0x96,0x0,0x7c,0x1,0xa,0x1,0x18,0x0, +0x99,0x0,0x9,0x0,0xb1,0xfd,0x6f,0xfc,0xbb,0xfc,0x32,0xfd, +0x47,0xfc,0xf9,0xfa,0x26,0xfc,0x8e,0xfe,0xc5,0xff,0xa0,0x0, +0x81,0x1,0x4b,0x1,0x10,0x0,0xd7,0xfe,0xd,0xfc,0x1,0xf6, +0x71,0xf1,0x7e,0xf1,0x72,0xf1,0x40,0xf1,0x4f,0xf5,0x1,0xfb, +0xcc,0xfe,0x95,0x2,0x39,0x7,0xd0,0x9,0x23,0x9,0xf1,0x7, +0xc4,0x5,0xeb,0xff,0xe4,0xfa,0xf,0xfa,0x57,0xf9,0x61,0xf9, +0xfd,0xfc,0x7b,0x0,0xb3,0x2,0xae,0x6,0xd3,0xa,0xeb,0xb, +0xf,0xb,0x68,0x9,0x91,0x5,0xa4,0x1,0x93,0x0,0x47,0xff, +0xd0,0xfd,0x75,0x0,0x5f,0x4,0x79,0x7,0xbe,0xb,0xc4,0xd, +0x30,0xd,0xaa,0xd,0xa0,0xc,0x43,0xa,0x66,0x9,0xf8,0x5, +0x56,0x0,0xd0,0xfe,0xa0,0xff,0xa0,0xfe,0x6c,0xff,0x39,0x4, +0xf6,0x7,0xb5,0x9,0x9f,0xd,0x3b,0x11,0x53,0x12,0x60,0x14, +0xc7,0x14,0x19,0x11,0x36,0xe,0xb3,0xb,0x89,0x7,0xd,0x5, +0x8a,0x2,0x95,0xfd,0x59,0xfb,0x3b,0xfd,0x52,0xfe,0xfa,0xfe, +0x37,0x1,0x7e,0x0,0xbe,0xfc,0x41,0xfc,0xf7,0xfb,0x93,0xf8, +0xd7,0xf8,0xda,0xfb,0x2b,0xfd,0x65,0x1,0x69,0x6,0xba,0x6, +0xb1,0x6,0x98,0x6,0x53,0x3,0x47,0x1,0x20,0x1,0xc3,0xfe, +0x14,0xfc,0x38,0xfb,0xa0,0xf9,0xe2,0xf7,0xe8,0xf8,0xe1,0xf9, +0x2b,0xf8,0x29,0xf7,0x6d,0xf7,0x64,0xf7,0xbf,0xf8,0xd,0xfa, +0xc8,0xf9,0xba,0xfa,0x18,0xfc,0x88,0xfc,0xa6,0xfe,0x6,0x2, +0xe8,0x3,0xa,0x4,0xb0,0x3,0x9e,0x3,0x52,0x3,0xb5,0x2, +0x33,0x1,0x8,0xfe,0xd4,0xfb,0xc5,0xfa,0x3c,0xf8,0xfa,0xf6, +0xaf,0xf7,0x9d,0xf6,0xa,0xf6,0xd,0xf8,0xe7,0xf9,0x0,0xfc, +0x8f,0xfe,0x13,0xff,0x7a,0xfe,0x66,0xfe,0xc9,0xfd,0xa3,0xfc, +0x5c,0xfb,0x1,0xf9,0xf1,0xf6,0x7e,0xf7,0xb0,0xf8,0xe3,0xf8, +0x97,0xf9,0xd2,0xf9,0xf3,0xf8,0x0,0xf9,0xaf,0xf9,0x72,0xfb, +0x18,0xff,0x8e,0x1,0xee,0x2,0xf8,0x4,0x82,0x4,0xdb,0x1, +0x3b,0x0,0xd0,0xfd,0x3,0xfb,0x49,0xfb,0x8,0xfd,0xac,0xfe, +0x11,0x2,0x8c,0x6,0xbd,0x9,0xdc,0xa,0x59,0xa,0xb0,0x9, +0x45,0x8,0x80,0x3,0x15,0xfe,0xdd,0xfc,0xf7,0xfd,0x20,0xff, +0x58,0x3,0x8f,0xa,0x81,0x10,0xb0,0x14,0x5b,0x1a,0xdd,0x20, +0x5a,0x22,0x7e,0x1e,0x23,0x1b,0x34,0x16,0x26,0xd,0x46,0x9, +0x9,0xb,0x1d,0x8,0xd4,0x6,0xba,0xe,0xd9,0x13,0xe5,0x13, +0xb2,0x18,0xb1,0x1c,0x16,0x1c,0x93,0x1e,0xc,0x1f,0xb,0x19, +0xc1,0x15,0xb0,0x12,0xe9,0xa,0x42,0x8,0x35,0x9,0xa1,0x5, +0x91,0x5,0xde,0x8,0xb6,0x6,0x6a,0x7,0x6,0xc,0x7f,0x8, +0xd2,0x4,0x2b,0x7,0xeb,0x2,0xf1,0xfd,0x14,0x2,0x31,0x1, +0xe5,0xfc,0xf0,0x3,0xa5,0x7,0xb3,0xff,0xb2,0xff,0xbb,0x4, +0x38,0xff,0xf4,0xf9,0xe0,0xf9,0x54,0xf3,0xc9,0xeb,0xf3,0xe9, +0xaa,0xe5,0x13,0xe2,0xe2,0xe5,0xe0,0xe8,0x6a,0xe9,0x78,0xed, +0x11,0xf0,0xef,0xee,0x10,0xef,0xce,0xed,0xed,0xea,0xd1,0xeb, +0x1d,0xec,0x80,0xe9,0xa8,0xea,0xe5,0xeb,0x25,0xe9,0x96,0xea, +0x75,0xec,0x23,0xe6,0xe7,0xe3,0xfd,0xe9,0x1b,0xe9,0x86,0xe5, +0x69,0xea,0xa9,0xeb,0x83,0xe6,0xd0,0xe7,0x10,0xe9,0x1d,0xe4, +0x1c,0xe5,0xd8,0xe9,0xee,0xe8,0x6a,0xea,0x51,0xef,0xe0,0xee, +0x1e,0xee,0xc4,0xef,0xec,0xed,0xca,0xec,0x46,0xed,0xe0,0xe8, +0x31,0xe6,0xbb,0xe8,0x77,0xe6,0xfe,0xe2,0x7d,0xe6,0x65,0xe8, +0x9e,0xe6,0x9,0xe9,0x29,0xeb,0x3a,0xea,0xf6,0xec,0xcc,0xee, +0x6f,0xea,0xb2,0xe8,0x31,0xeb,0x81,0xea,0xd6,0xe9,0x60,0xec, +0x9b,0xeb,0x70,0xe8,0xab,0xe9,0xe3,0xeb,0x67,0xea,0x90,0xe9, +0xa9,0xeb,0x98,0xed,0x9d,0xef,0x9f,0xf2,0xda,0xf3,0x3f,0xf3, +0xa5,0xf3,0x78,0xf4,0xa2,0xf4,0x2d,0xf6,0xa5,0xf9,0x96,0xfc, +0xd6,0xfd,0xf3,0xfe,0x6a,0x1,0xde,0x3,0x60,0x4,0x69,0x4, +0x61,0x5,0x1f,0x5,0xa1,0x3,0x43,0x4,0xc7,0x6,0x47,0x8, +0x23,0x9,0x5,0xb,0x79,0xd,0x9f,0xf,0x68,0x11,0x6f,0x12, +0x87,0x12,0x10,0x13,0x72,0x14,0x63,0x14,0x16,0x13,0xa8,0x13, +0xe1,0x14,0x53,0x14,0x9e,0x14,0xed,0x15,0xb2,0x14,0x6b,0x13, +0xc3,0x14,0x5d,0x14,0x53,0x12,0xb7,0x13,0x3b,0x16,0xf8,0x15, +0x64,0x15,0xa0,0x15,0x4,0x15,0x49,0x14,0x9e,0x13,0x8f,0x11, +0xc6,0xe,0x3e,0xd,0xdd,0xd,0x89,0xf,0x1f,0x10,0x60,0x10, +0x5,0x11,0xc4,0xe,0x14,0xb,0x3d,0xb,0xf6,0xa,0xa0,0x5, +0x3e,0x2,0xc6,0x3,0x8a,0x3,0x79,0x1,0x9b,0x2,0x42,0x4, +0xe3,0x2,0x9a,0x2,0x21,0x5,0x83,0x5,0x30,0x3,0xb8,0x2, +0xa,0x4,0x6e,0x3,0x27,0x1,0x25,0x0,0xcb,0xff,0x79,0xfe, +0xb7,0xfd,0xcc,0xfd,0xf7,0xfc,0xb5,0xfc,0xb8,0xff,0x49,0x3, +0x3e,0x2,0x71,0xff,0xad,0x0,0x28,0x2,0x7a,0x0,0xd1,0xff, +0xa1,0xff,0x8f,0xfd,0x77,0xfd,0x2a,0x1,0x1a,0x5,0xa0,0x5, +0x99,0x4,0x9d,0x7,0x30,0xb,0xb6,0x7,0xfc,0x2,0xe6,0x4, +0xb0,0x6,0xdf,0x1,0xf3,0xfc,0x7c,0xfd,0xb2,0x1,0x5,0x7, +0x36,0x8,0x72,0x3,0x79,0x2,0x57,0x9,0x9c,0xd,0xe7,0x9, +0x24,0x6,0xe3,0x8,0xad,0xc,0x2f,0xb,0x8e,0x8,0x6a,0x8, +0x18,0x8,0xd4,0x6,0xde,0x3,0xf6,0xfd,0x4b,0xfa,0xac,0xfe, +0x7,0x5,0x8c,0x2,0x55,0xfc,0xf4,0xff,0x9a,0x9,0x6b,0xc, +0xc1,0x9,0x3c,0xa,0xda,0xb,0xf7,0x7,0x8e,0x4,0x6e,0x8, +0x50,0x9,0x61,0x1,0x59,0xfc,0xaa,0xfe,0x60,0x1,0x4b,0x4, +0x83,0x8,0x65,0x6,0x9d,0xfe,0xba,0xfe,0xbc,0x4,0xb2,0x1, +0x42,0xf9,0x70,0xf9,0x96,0x0,0xcc,0xff,0xda,0xf5,0xae,0xf8, +0x7d,0xa,0x1b,0x11,0xaa,0xb,0x21,0xb,0x8f,0xd,0xa7,0xf, +0x4c,0x12,0x10,0x12,0x9d,0xd,0x24,0x5,0xb5,0x0,0x95,0x3, +0xc2,0xfd,0xae,0xf1,0x20,0xf3,0x66,0xf9,0xec,0xf6,0x1e,0xf6, +0x75,0xfb,0xff,0xfe,0x6a,0xff,0x73,0xfe,0x55,0xfd,0x45,0xff, +0xe2,0x2,0x2,0x5,0xf,0x6,0x20,0x3,0x40,0xfe,0x32,0x1, +0xc7,0x6,0x5,0x6,0x43,0x5,0xff,0x2,0x3e,0xf9,0x32,0xf2, +0x18,0xf2,0xa3,0xf0,0x91,0xeb,0xd,0xe4,0x25,0xdf,0x4,0xe4, +0xb4,0xeb,0xb6,0xed,0xb2,0xf0,0x85,0xf5,0x8c,0xf4,0xc3,0xf3, +0x3e,0xf7,0xbb,0xf5,0xe6,0xf2,0xcd,0xf5,0x9,0xf3,0x78,0xea, +0xc,0xed,0x2b,0xf6,0xd9,0xf4,0x78,0xed,0xd9,0xeb,0x6,0xf0, +0xc7,0xf5,0xa5,0xf8,0x98,0xf8,0x8,0xf9,0xab,0xf6,0x6c,0xf5, +0xd1,0xfb,0xf7,0xfb,0x67,0xf6,0x67,0xfe,0x56,0x4,0xfe,0xf6, +0x85,0xee,0xcd,0xf7,0x2c,0x0,0xe,0xfb,0xc2,0xf1,0xec,0xf4, +0x83,0xfe,0x2a,0xfd,0x32,0xf9,0x45,0xfe,0x77,0x2,0x79,0x0, +0x6,0xff,0x23,0xfe,0xe5,0xfd,0xab,0x5,0xfc,0xc,0x7b,0x3, +0x7a,0xf8,0x7e,0x0,0xe6,0xc,0x79,0xc,0x81,0x2,0x87,0xfa, +0xf6,0xff,0xaf,0x9,0x12,0x5,0x5a,0xfa,0x83,0xf9,0xb9,0xff, +0x72,0x5,0xd5,0x6,0x50,0x6,0x37,0xc,0x2,0x16,0x17,0x18, +0x7f,0x13,0x1b,0x12,0x6a,0x14,0x41,0x16,0xa5,0x15,0x4c,0xe, +0x97,0x5,0x5a,0x8,0x5f,0xd,0xfc,0x6,0xdf,0x2,0x49,0xa, +0xd2,0xf,0xef,0xd,0xa,0xc,0x7c,0x10,0x85,0x18,0x3b,0x18, +0x64,0x10,0x55,0xd,0xad,0xe,0xc9,0x10,0x35,0x12,0x46,0xd, +0x90,0x9,0xca,0x10,0x2,0x18,0xff,0x17,0x21,0x17,0xe4,0x15, +0x51,0x12,0x68,0xe,0xe2,0xa,0x81,0x6,0x53,0x0,0x5e,0xfa, +0x68,0xf6,0x39,0xf3,0x86,0xf2,0x52,0xf7,0xec,0xfd,0x11,0xff, +0x5c,0xfd,0x91,0x2,0x69,0x9,0x2a,0x6,0x55,0x0,0xb6,0x0, +0xee,0xff,0x31,0xfa,0x71,0xf5,0xcf,0xf3,0x6b,0xf1,0x48,0xef, +0xd0,0xf1,0x78,0xf2,0x30,0xee,0x1f,0xf0,0xd2,0xf5,0x3e,0xf4, +0x89,0xf0,0xa8,0xf0,0xef,0xf2,0xd8,0xf4,0xe9,0xf3,0x24,0xf5, +0xee,0xf9,0xb3,0xf9,0x87,0xf7,0xba,0xfa,0xca,0xfd,0x1d,0xfd, +0xea,0xfc,0x29,0xfe,0x3a,0xfc,0x8e,0xf7,0xdb,0xf7,0x6a,0xf8, +0x57,0xef,0xf0,0xe6,0x7b,0xe7,0x50,0xe7,0x62,0xe5,0xa4,0xe6, +0x32,0xe6,0xd3,0xe3,0x82,0xe6,0x18,0xed,0xf,0xf0,0x1f,0xee, +0x41,0xee,0xd0,0xf2,0x58,0xf4,0x7a,0xf1,0x67,0xf1,0x59,0xf2, +0xb8,0xef,0x0,0xf0,0x60,0xf4,0xe0,0xf3,0xb2,0xf0,0x75,0xf2, +0xbd,0xf4,0x27,0xf2,0x98,0xed,0x98,0xea,0x77,0xe9,0x4a,0xe8, +0xf,0xe7,0xbe,0xe7,0xd7,0xe7,0xf3,0xe5,0x3e,0xe6,0xb7,0xe7, +0x68,0xe7,0x1a,0xe9,0x5e,0xec,0x57,0xec,0x8,0xec,0x1f,0xef, +0xa6,0xf1,0x95,0xf0,0x95,0xef,0xe3,0xf1,0x27,0xf4,0x34,0xf5, +0x78,0xf8,0x92,0xfa,0x4c,0xfa,0x3,0xff,0xaa,0x4,0xe9,0x2, +0xd4,0xff,0xdb,0xff,0xa9,0xff,0xae,0xfe,0xda,0xfb,0x5b,0xf8, +0xe3,0xf7,0xb9,0xf8,0x3f,0xfa,0xb7,0xfc,0x3b,0xfc,0x78,0xfb, +0x80,0xfe,0x44,0x0,0xc1,0xff,0x55,0x0,0x37,0x0,0xd5,0x0, +0x48,0x3,0x0,0x3,0xcd,0x3,0xb1,0x9,0xe6,0xc,0xf8,0xc, +0x11,0x10,0xa5,0x12,0x64,0x12,0xc4,0x11,0xa,0x10,0x7b,0xe, +0x23,0xd,0x3e,0x9,0xf7,0x5,0xb8,0x4,0x6d,0x1,0xd8,0xfd, +0xb9,0xfc,0xc7,0xfa,0x51,0xf8,0x17,0xfa,0x50,0xff,0x4a,0x4, +0xc9,0x8,0xa5,0xc,0xd4,0xf,0x7,0x13,0xc5,0x12,0x49,0xd, +0x38,0x7,0x87,0x2,0xa7,0xfd,0x3,0xf9,0x90,0xf5,0xf1,0xf3, +0xe4,0xf4,0xf4,0xf8,0x94,0xfe,0x72,0x2,0x3b,0x5,0xbe,0x8, +0xd7,0xa,0xb4,0xa,0x84,0x9,0x2a,0x9,0x33,0xb,0x55,0xc, +0xe6,0xb,0x9,0xe,0x7b,0x10,0xa2,0xf,0x1f,0xd,0x8a,0x9, +0xa6,0x4,0x6e,0xff,0x31,0xfc,0x29,0xfc,0x31,0xfc,0xdf,0xfc, +0xb1,0x1,0xe4,0x6,0xd2,0x9,0xe4,0xc,0xe9,0xf,0x50,0x13, +0x9b,0x15,0xf4,0x11,0xaf,0xd,0x62,0xf,0xad,0xe,0xc3,0x8, +0xa1,0x8,0x92,0xb,0xd5,0x7,0x3a,0x4,0xce,0x4,0xa0,0x2, +0x51,0xff,0x8,0xfe,0xf7,0xfc,0x74,0xfe,0xc7,0x2,0xdf,0x7, +0x59,0xe,0xce,0x12,0xee,0x12,0xae,0x12,0x14,0x12,0xa7,0xd, +0xd2,0x7,0x9,0x5,0xd,0x4,0xc5,0x3,0x25,0x6,0xcc,0x7, +0xc0,0x6,0x69,0x7,0x19,0x7,0xf6,0x1,0xbd,0xfc,0xb,0xf8, +0xc4,0xf1,0x8,0xee,0x8c,0xee,0x30,0xf0,0x1a,0xf3,0x63,0xf9, +0xda,0xff,0xad,0x3,0x85,0x8,0xa9,0xc,0xc5,0xa,0x85,0x7, +0xad,0x6,0x5d,0x5,0x86,0x3,0xc8,0x1,0xa6,0x1,0xf4,0x3, +0xc6,0x4,0xb7,0x4,0x18,0x6,0xa8,0x5,0x2a,0x4,0xe1,0x4, +0xd2,0x5,0xa7,0x4,0x7c,0x2,0xf4,0x1,0xb2,0x2,0xd2,0x2, +0x83,0x2,0x9,0x0,0x75,0xfc,0xd3,0xfc,0xc9,0xfd,0xac,0xfb, +0xde,0xfb,0x36,0xfe,0xf3,0xfc,0x87,0xfa,0xe6,0xfb,0x35,0xfe, +0xff,0xfd,0x5b,0xfe,0xd3,0x0,0x3a,0x3,0x89,0x5,0x98,0x6, +0x17,0x6,0xd9,0x6,0xca,0x6,0x68,0x4,0xc6,0x2,0x24,0x0, +0x2c,0xfc,0xff,0xfa,0xd3,0xf9,0x3,0xf6,0xba,0xf4,0xb6,0xf6, +0x7e,0xf7,0x97,0xf7,0xd3,0xf7,0xd7,0xf6,0x7b,0xf8,0xff,0xfc, +0xd,0xfd,0x9d,0xfb,0x9e,0xff,0x7a,0x3,0x84,0x3,0xa4,0x2, +0x9b,0xff,0x3d,0xfb,0x64,0xf8,0xae,0xf4,0xba,0xee,0x10,0xeb, +0x5b,0xee,0xf,0xf4,0x54,0xf4,0x20,0xf4,0xa4,0xf9,0xed,0xfd, +0xac,0xfd,0xe7,0xfd,0x23,0xfe,0xcc,0xfc,0xca,0xfc,0x1,0xfe, +0xc8,0xfe,0xe9,0x1,0x29,0x7,0x9a,0x8,0x65,0x6,0xb9,0x4, +0x8a,0x2,0x82,0xff,0x55,0xfc,0x8,0xf8,0x88,0xf6,0xb3,0xf9, +0x9a,0xfc,0x5,0xfe,0x70,0xfe,0xec,0xfd,0xd3,0xff,0x18,0x2, +0x17,0x0,0xee,0xfd,0x34,0x0,0x5d,0x4,0xa4,0x6,0x5d,0x7, +0x39,0x9,0xdd,0xa,0xbe,0x9,0x23,0x8,0x54,0x7,0x29,0x5, +0xe4,0x0,0xf5,0xfc,0x4d,0xfc,0x2e,0xfd,0x85,0xfd,0xc0,0xff, +0x39,0x3,0xd5,0x5,0x4b,0x8,0xce,0x8,0x92,0x7,0x3a,0x7, +0xa3,0x6,0x4e,0x7,0xf5,0x9,0x8c,0x9,0xa,0x8,0xfc,0xa, +0xf8,0xd,0xd5,0xb,0x69,0x9,0xc9,0xa,0x15,0xa,0x76,0x6, +0x42,0x8,0xb1,0xb,0xf1,0x8,0x77,0x7,0x13,0xb,0x1a,0xc, +0xed,0xa,0x42,0xd,0xf8,0xf,0x47,0xe,0xa3,0xc,0x62,0xd, +0xb3,0xa,0xab,0x6,0xa6,0x5,0xbb,0x2,0xbd,0xfe,0x1c,0xfd, +0xd0,0xfa,0x53,0xfa,0x81,0xfd,0x79,0xff,0x9f,0x0,0x35,0x4, +0x5f,0x9,0xc3,0xc,0xda,0xd,0x7c,0x10,0x9a,0x13,0xaa,0x13, +0x2d,0x11,0x36,0xd,0xfe,0xb,0x44,0xc,0x39,0x7,0xf7,0x3, +0xdd,0x5,0xeb,0x2,0x24,0xff,0x87,0xff,0x12,0xfc,0x21,0xf7, +0x68,0xf8,0x1a,0xfc,0xc4,0xfc,0x93,0xfd,0x35,0x2,0xa2,0x5, +0xda,0x5,0x47,0x6,0x9b,0x5,0xf3,0x5,0xec,0x6,0x1a,0x3, +0xd6,0x1,0x90,0x4,0x3e,0x2,0x38,0x0,0x45,0xff,0x6d,0xf9, +0xb3,0xf6,0x97,0xf7,0x27,0xf5,0xc,0xf4,0xb5,0xf6,0x1f,0xf9, +0x8d,0xf9,0xc0,0xf9,0x11,0xfb,0xfc,0xfa,0x70,0xfb,0x8d,0xfc, +0x27,0xf9,0x9c,0xf8,0xd5,0xfc,0x60,0xfa,0x3f,0xf7,0x1e,0xf9, +0x87,0xf6,0x8e,0xf3,0xc5,0xf5,0x12,0xf4,0x96,0xed,0x1c,0xeb, +0x10,0xeb,0x3b,0xe6,0xd3,0xe3,0x35,0xea,0x43,0xec,0x5,0xea, +0xfd,0xef,0xd9,0xf3,0x50,0xf1,0xb5,0xf4,0xf3,0xf6,0xd1,0xf1, +0x4f,0xf0,0xd8,0xf2,0x3f,0xf3,0xd2,0xf1,0xd2,0xef,0x46,0xef, +0xab,0xef,0xe9,0xed,0xa2,0xeb,0xa9,0xec,0x7e,0xef,0x86,0xef, +0xc9,0xef,0x99,0xf4,0x61,0xf7,0x4e,0xf7,0x75,0xfb,0x7a,0xfd, +0x6,0xf9,0xba,0xf8,0xc4,0xfc,0xa4,0xfb,0xcf,0xf7,0x4c,0xf7, +0xfd,0xf6,0x5a,0xf5,0x47,0xf8,0x82,0xfd,0xba,0xfc,0x8b,0xfb, +0x94,0xfe,0x4a,0xfc,0xa4,0xf6,0x2d,0xf7,0x4,0xf8,0x64,0xf4, +0x50,0xf2,0xe1,0xf4,0xdd,0xf9,0xaf,0xfc,0x26,0xfd,0x95,0xfe, +0x90,0xfd,0x61,0xfa,0x41,0xfb,0xa0,0xfb,0xcc,0xf7,0x29,0xf7, +0x9a,0xf9,0x1d,0xf8,0xa9,0xf5,0x28,0xf9,0x65,0xfe,0xcf,0xfd, +0x9a,0xfb,0x77,0xfd,0x77,0x0,0xf2,0x2,0x9b,0x4,0x53,0x3, +0x2b,0x0,0xd,0xfe,0xe2,0xff,0xbc,0x2,0x14,0xff,0x14,0xfb, +0x63,0xff,0x44,0x2,0x86,0xfe,0x8b,0xfe,0x7b,0x3,0xa3,0x4, +0xbe,0x1,0x96,0x0,0x68,0x1,0xbc,0x1,0xa2,0x2,0xe4,0x2, +0x7c,0xff,0x15,0xfc,0xd3,0xfd,0x24,0x2,0x40,0x2,0xd,0xff, +0x1f,0x0,0xc6,0x2,0x1b,0x0,0xb6,0xfd,0xd5,0xfe,0x45,0xfe, +0x4a,0xfd,0x82,0xfd,0x52,0xfd,0x98,0xff,0x9,0x3,0x1d,0x2, +0x18,0xff,0xaf,0xfd,0x88,0xfc,0x51,0xfc,0xee,0xfd,0xb5,0xfc, +0xa4,0xf7,0xef,0xf5,0xbc,0xf8,0xf9,0xf8,0x29,0xf6,0x58,0xf5, +0xd1,0xf5,0x89,0xf3,0xf6,0xef,0x86,0xf0,0xd8,0xf3,0x7f,0xf3, +0x4,0xf1,0x4c,0xf1,0x68,0xf2,0x5d,0xf2,0xdf,0xf2,0xf,0xf4, +0xd0,0xf3,0xf0,0xf0,0x92,0xef,0x84,0xf3,0x6a,0xf6,0x9b,0xf4, +0x5d,0xf5,0xd5,0xf7,0xf4,0xf4,0x74,0xf2,0x2e,0xf5,0x48,0xf5, +0xb0,0xf1,0xc5,0xf1,0x9f,0xf4,0x34,0xf7,0xd6,0xfa,0x82,0xfc, +0x18,0xfb,0x75,0xfb,0xe6,0xfb,0x34,0xfa,0x78,0xfa,0x2c,0xfa, +0x88,0xf6,0x7a,0xf5,0x71,0xf7,0x16,0xf8,0x61,0xf8,0x60,0xfa, +0x3f,0xfd,0x79,0xfc,0x91,0xf8,0x83,0xfa,0xec,0xff,0x78,0xff, +0xf0,0xfd,0xee,0xfe,0x7d,0xfd,0x61,0xfd,0x29,0x2,0x99,0x4, +0x98,0x2,0x9a,0x2,0x4,0x5,0x5a,0x5,0x4f,0x4,0x6,0x4, +0x66,0x4,0x1,0x5,0x89,0x4,0x20,0x5,0x0,0x8,0xe9,0x7, +0x67,0x7,0xc8,0xa,0x33,0xb,0x28,0xb,0x6e,0x11,0x57,0x15, +0xff,0x14,0x40,0x17,0x27,0x17,0xa,0x13,0x38,0x12,0xba,0x13, +0x20,0x13,0xa9,0x11,0x42,0x11,0xa5,0x12,0x18,0x16,0xd1,0x19, +0x23,0x1c,0x63,0x1c,0xab,0x19,0x5c,0x18,0xd6,0x1b,0x98,0x1c, +0x28,0x1a,0xe5,0x1c,0x83,0x20,0xbc,0x20,0x9a,0x22,0xdd,0x24, +0x5d,0x25,0x86,0x24,0x8d,0x21,0x4a,0x20,0xe6,0x20,0xed,0x20, +0xee,0x22,0x1a,0x22,0x86,0x1d,0xa2,0x20,0x82,0x26,0xfe,0x23, +0xb5,0x22,0x59,0x26,0xbd,0x24,0x5f,0x23,0x61,0x27,0x82,0x25, +0x0,0x23,0x82,0x2a,0xdc,0x2c,0x68,0x25,0x5a,0x22,0x86,0x20, +0x3f,0x1d,0xfd,0x1d,0xac,0x1b,0xe3,0x15,0xbb,0x13,0xd9,0x13, +0x73,0x17,0x51,0x1a,0xf9,0x15,0x8,0x15,0x12,0x1a,0x84,0x18, +0x36,0x14,0xf2,0x17,0xb,0x1c,0x56,0x16,0xf,0x10,0x92,0x12, +0x18,0x14,0x73,0x10,0x1e,0x10,0xf8,0xf,0x72,0xa,0x63,0x6, +0x31,0x8,0x2e,0x9,0x48,0x3,0x6d,0xfe,0x83,0x2,0x27,0x5, +0xe5,0xff,0x3f,0xfc,0x5b,0xfd,0x9b,0xfe,0x5f,0xff,0x87,0x0, +0x31,0x0,0x6a,0xfd,0xc6,0xfe,0x7b,0x5,0x1f,0x5,0x25,0xfd, +0xd8,0xf9,0x2e,0xfa,0x77,0xf8,0x99,0xf7,0x5d,0xf7,0x2d,0xf4, +0xcf,0xf0,0xe5,0xf1,0x26,0xf5,0xdb,0xf5,0x51,0xf3,0x46,0xee, +0xee,0xea,0x52,0xed,0x75,0xee,0x30,0xe9,0x7e,0xe4,0x28,0xe4, +0xd,0xe6,0x18,0xe8,0x6d,0xe7,0xa7,0xe5,0x87,0xe5,0x5e,0xe6, +0x41,0xe9,0xb9,0xea,0x7e,0xe6,0xd2,0xe3,0x1b,0xe6,0x5b,0xe7, +0x19,0xe6,0xc7,0xe1,0xbc,0xdd,0x88,0xe0,0xb2,0xe2,0x12,0xe0, +0x67,0xe2,0x7e,0xe5,0xb9,0xe3,0x6,0xe7,0x2f,0xec,0x75,0xea, +0x7f,0xe8,0x90,0xe5,0x3,0xde,0xe3,0xdb,0xe7,0xdd,0xbd,0xd9, +0xc3,0xd5,0x91,0xd8,0xfe,0xdc,0xe7,0xe0,0xe7,0xe3,0x85,0xe4, +0x85,0xe5,0xc2,0xe9,0xda,0xf0,0x36,0xf5,0x77,0xf2,0x8e,0xf1, +0x1b,0xf6,0x22,0xf5,0x4f,0xf1,0xcc,0xf0,0xdf,0xea,0xb2,0xe5, +0x7b,0xeb,0x0,0xed,0x72,0xe6,0xa0,0xe7,0xde,0xed,0x9c,0xf0, +0x33,0xf1,0x62,0xee,0x78,0xed,0x6a,0xf3,0xa9,0xf5,0x1f,0xf4, +0x4a,0xf7,0x92,0xf6,0xf0,0xf2,0xac,0xf9,0xf3,0xfe,0xd,0xf9, +0xf2,0xf7,0xf2,0xfa,0x4a,0xf5,0xb6,0xef,0x3e,0xef,0xfb,0xea, +0x18,0xe7,0x5d,0xea,0x79,0xee,0xf,0xf2,0x54,0xf9,0x7,0x0, +0x17,0x4,0x1f,0x8,0x2d,0x9,0xde,0x8,0xbe,0x9,0x10,0x6, +0x35,0x3,0x54,0x6,0x93,0x2,0xc4,0xfa,0x1b,0xfc,0x36,0xfe, +0xcf,0xfd,0x26,0x0,0x98,0xfc,0x93,0xf6,0xcb,0xfa,0x33,0xff, +0x12,0xfb,0x86,0xf8,0x6a,0xf9,0x4e,0xf7,0xfe,0xf5,0x99,0xf9, +0x9f,0xfc,0xe5,0xfb,0x50,0xfb,0xdf,0xfd,0xed,0x1,0xb4,0x3, +0x7a,0x4,0xcf,0x7,0xd3,0x9,0x91,0x8,0xd1,0x8,0x3c,0x9, +0xbe,0x6,0x6,0x4,0x9f,0x2,0xb,0x2,0xcb,0x0,0xd2,0xfe, +0x21,0x0,0xa8,0x3,0xdb,0x3,0x9,0x1,0x6f,0xfe,0xde,0xfd, +0x7e,0xfe,0x28,0xfd,0x68,0xfa,0xa3,0xf8,0xe6,0xf7,0xc2,0xf8, +0x84,0xfa,0xd8,0xfb,0x74,0xfe,0xae,0x1,0xb5,0x2,0x20,0x3, +0xe5,0x4,0x19,0x7,0x77,0x8,0x3a,0x6,0x19,0x1,0x6d,0x0, +0x43,0x4,0x76,0x4,0xd7,0x1,0xde,0x1,0xa8,0x2,0xaa,0x2, +0x17,0x4,0x8b,0x5,0x72,0x4,0xe9,0x2,0xdc,0x2,0xc3,0x1, +0xa7,0x0,0x25,0x3,0x75,0x5,0x96,0x5,0x91,0x7,0x33,0x9, +0x8e,0x8,0xd0,0x8,0x5e,0x7,0x91,0x2,0x5,0xff,0x61,0xfd, +0xfc,0xfb,0xab,0xfa,0x23,0xf9,0x72,0xf9,0xad,0xfb,0xd5,0xfb, +0x86,0xfb,0x4b,0xff,0x0,0x4,0x87,0x5,0x8a,0x5,0x3b,0x5, +0xcf,0x5,0x5e,0x8,0xc6,0x8,0x99,0x6,0x5c,0x5,0xc9,0x1, +0x73,0xfd,0xf6,0xfe,0x9a,0xff,0xcd,0xfa,0xdf,0xf9,0x98,0xfc, +0xcd,0xfb,0xff,0xfb,0xa9,0xff,0x8f,0x0,0xa,0x0,0xa5,0x2, +0x3,0x5,0xd7,0x5,0xb1,0x7,0x39,0x9,0xdc,0x9,0xd7,0x9, +0xc2,0x7,0x64,0x6,0x1c,0x7,0xfa,0x5,0x9f,0x3,0x69,0x2, +0x9b,0x0,0xb5,0xfe,0x2f,0xff,0xf7,0x0,0x9f,0x0,0xe3,0xfd, +0x46,0xfd,0x51,0xff,0xad,0xff,0x7f,0xff,0xbf,0x0,0x3d,0x1, +0xba,0x3,0x47,0x9,0xdc,0xa,0x72,0x9,0xd8,0xa,0x80,0xa, +0xf1,0x6,0x1f,0x6,0x92,0x5,0xd4,0x1,0x47,0xfe,0xe7,0xfa, +0xc9,0xf6,0xc9,0xf3,0xbf,0xf1,0xe8,0xf1,0x28,0xf4,0xb1,0xf4, +0x45,0xf6,0x81,0xfb,0x96,0xfd,0xd7,0xfb,0xcc,0xfc,0x8a,0xfd, +0xbc,0xf9,0xbc,0xf6,0x2a,0xf7,0xa6,0xf6,0x47,0xf5,0xba,0xf5, +0x8a,0xf5,0x42,0xf4,0x9b,0xf5,0xd6,0xf6,0xe2,0xf4,0x36,0xf6, +0xe7,0xfb,0x3c,0xfe,0xe9,0xfe,0xa1,0x2,0xcc,0x4,0xc7,0x4, +0x11,0x7,0x85,0x9,0x48,0xa,0xfe,0xa,0x30,0xa,0x34,0x8, +0x44,0x7,0xa6,0x5,0xc8,0x3,0xa3,0x3,0x46,0x1,0xf8,0xfb, +0x3b,0xfa,0x5d,0xfb,0x75,0xf9,0xe6,0xf7,0xe4,0xfa,0x7d,0xfd, +0x2e,0xff,0x27,0x5,0x4e,0xb,0xe8,0xc,0xe7,0xe,0xc,0x11, +0xc2,0xe,0x2e,0xd,0x7,0xf,0xca,0xd,0x4d,0xa,0xa,0xa, +0x59,0xa,0x1f,0x9,0x7a,0x9,0x5e,0xa,0xf,0x9,0x9b,0x7, +0x33,0x6,0xbf,0x1,0x1b,0xfd,0x20,0xfc,0x4b,0xfa,0xa0,0xf5, +0x88,0xf3,0x5,0xf4,0xc3,0xf4,0x80,0xf8,0x26,0xfe,0x80,0x2, +0x85,0x6,0x46,0x9,0xc4,0xa,0x82,0xc,0x95,0x9,0x62,0x2, +0x49,0xff,0x28,0xfe,0x36,0xfb,0xff,0xfb,0x9b,0xfe,0x5,0xfe, +0x4f,0xff,0x17,0x3,0x55,0x4,0x13,0x5,0xf3,0x6,0x9f,0x7, +0x85,0x7,0x49,0x7,0x75,0x7,0x5f,0x9,0x84,0xa,0xb4,0x8, +0xab,0x6,0x9d,0x5,0x8e,0x3,0x49,0x1,0x3,0x1,0xb7,0x0, +0x88,0xfe,0x5b,0xfe,0x39,0x1,0xfe,0x2,0xb5,0x4,0x2d,0x7, +0x58,0x6,0x75,0x5,0x9d,0x7,0x44,0x6,0xfd,0x2,0xec,0x3, +0x4c,0x3,0xc9,0x0,0xa8,0x4,0x1a,0xa,0x68,0xa,0x89,0xa, +0x4f,0xb,0x9b,0x8,0xa0,0x4,0xfc,0x1,0xeb,0xfe,0x29,0xfa, +0x69,0xf6,0x8c,0xf6,0x93,0xf7,0xe3,0xf7,0x29,0xfc,0x7c,0x1, +0x1c,0x1,0x6,0x1,0x6c,0x5,0x35,0x6,0x30,0x3,0x3f,0x3, +0xd,0x3,0x37,0xff,0x78,0xfd,0xe4,0xfe,0x4c,0xfe,0x8e,0xfc, +0x43,0xfd,0x4,0xfe,0xd0,0xfc,0x30,0xfc,0x20,0xfc,0x2c,0xfb, +0x37,0xfa,0xb6,0xf8,0x82,0xf8,0x46,0xfd,0x35,0x1,0xfe,0xff, +0x4a,0x1,0x4d,0x5,0xdd,0x5,0xf7,0x7,0x74,0xc,0xc5,0xb, +0xe,0xa,0xf,0xc,0x62,0xb,0xb5,0x7,0xc2,0x5,0x2b,0x5, +0xae,0x5,0xb,0x5,0xd9,0x2,0xdb,0x5,0x28,0xa,0xaa,0x7, +0x9d,0x7,0xd5,0xc,0xa0,0xb,0x1a,0x8,0x87,0xa,0x27,0xb, +0xb2,0x8,0x7d,0xa,0x92,0xc,0x7f,0xb,0xba,0xd,0x5f,0x11, +0x14,0xf,0xcc,0xb,0xc4,0xc,0x2a,0xd,0x5b,0xb,0xb6,0x9, +0x65,0x8,0xda,0x7,0x8,0x7,0x40,0x5,0x7d,0x5,0x44,0x7, +0x35,0x7,0xef,0x7,0xb1,0xb,0xce,0xc,0x20,0xc,0x9d,0x10, +0xcb,0x12,0x7,0xe,0x9b,0xd,0x5e,0xe,0x4,0x8,0x10,0x4, +0x24,0x3,0x9,0xfe,0x3a,0xfb,0x2d,0xfd,0xd0,0xfe,0xaa,0x1, +0xd3,0x5,0x4e,0x7,0xd5,0x6,0x3d,0x6,0x99,0x3,0x5b,0x0, +0x51,0xff,0x95,0xfc,0x18,0xf9,0x5f,0xfa,0x4c,0xfc,0x30,0xfd, +0x6d,0x0,0x2a,0x2,0x62,0x1,0xf9,0x0,0x80,0xff,0x8c,0xfc, +0xdd,0xf8,0x5f,0xf5,0x13,0xf3,0x82,0xf1,0x9f,0xf1,0x80,0xf2, +0xa,0xf3,0xa7,0xf4,0x4b,0xf5,0xfd,0xf5,0xb1,0xf9,0x70,0xfc, +0x8f,0xfd,0x66,0xfe,0x33,0xfd,0x8f,0xfc,0x60,0xfc,0x6e,0xf9, +0x9c,0xf5,0x96,0xf2,0xb0,0xf1,0xe7,0xf2,0x7a,0xf2,0xff,0xf0, +0xed,0xf1,0x11,0xf4,0x38,0xf3,0xe7,0xf0,0x9a,0xf2,0x70,0xf3, +0xf2,0xf0,0xc0,0xf3,0xae,0xf5,0xd8,0xef,0xf5,0xef,0x3c,0xf6, +0xc7,0xf4,0x96,0xf1,0xc7,0xf5,0x2e,0xf7,0xee,0xf0,0xcc,0xef, +0x84,0xf3,0x40,0xef,0xdc,0xe9,0x39,0xeb,0x93,0xea,0x15,0xe9, +0x40,0xec,0x90,0xee,0xc9,0xed,0x83,0xec,0xf3,0xec,0xcf,0xee, +0x7f,0xed,0x65,0xea,0x24,0xeb,0x1a,0xee,0x7f,0xee,0x67,0xed, +0x22,0xef,0x89,0xf0,0xa5,0xee,0x5,0xef,0x9f,0xef,0x33,0xed, +0x78,0xee,0x79,0xf0,0x9b,0xed,0x2f,0xec,0x88,0xed,0x41,0xee, +0x89,0xef,0xd9,0xf0,0xc6,0xf0,0x4a,0xf1,0x3d,0xf4,0x44,0xf6, +0xa5,0xf5,0xd8,0xf6,0xb,0xf8,0x80,0xf6,0xc3,0xf6,0xf8,0xf6, +0xcc,0xf5,0xf2,0xf6,0x94,0xf5,0xdd,0xf1,0xb9,0xf3,0xd7,0xf6, +0x30,0xf5,0x7c,0xf4,0x20,0xf8,0xb2,0xf9,0x32,0xf8,0xd7,0xfa, +0xa4,0xfd,0x9e,0xfa,0x36,0xfa,0x29,0xfd,0x4b,0xfb,0xeb,0xf8, +0x61,0xfa,0xd0,0xfa,0x68,0xf9,0x27,0xf9,0x96,0xf8,0x22,0xf6, +0x7f,0xf5,0xc0,0xf5,0xba,0xf2,0x67,0xf2,0x36,0xf6,0xb3,0xf5, +0x5e,0xf4,0x69,0xf7,0x6,0xf8,0xf7,0xf5,0x5d,0xf7,0xb2,0xf9, +0x50,0xf9,0x43,0xf9,0x42,0xfa,0xf2,0xf8,0x1b,0xf7,0x14,0xf7, +0xd9,0xf5,0x15,0xf4,0x1f,0xf4,0x18,0xf3,0xd7,0xf0,0xf1,0xf0, +0x84,0xf3,0xdf,0xf5,0x36,0xf6,0xb9,0xf5,0xf1,0xf6,0xce,0xf9, +0x72,0xfb,0x36,0xfa,0xaa,0xf8,0x73,0xf8,0xa7,0xf7,0x13,0xf7, +0x5a,0xf8,0xa6,0xf9,0x92,0xfa,0x0,0xfc,0x86,0xfc,0xa0,0xfb, +0x43,0xfb,0xf4,0xfb,0x3d,0xfb,0x83,0xf8,0x85,0xf6,0xf0,0xf5, +0x58,0xf6,0x43,0xf8,0x74,0xf9,0x71,0xf9,0x90,0xfb,0x21,0xfe, +0x3b,0xfe,0x9b,0xfe,0xa3,0xff,0x6d,0xff,0xf7,0xff,0x75,0x1, +0x14,0x2,0xc0,0x2,0x59,0x3,0x22,0x3,0x1e,0x3,0xd4,0x2, +0x64,0x2,0x76,0x3,0xe2,0x4,0x30,0x5,0x72,0x5,0x39,0x6, +0x2f,0x7,0x8b,0x8,0x70,0xa,0x96,0xb,0x7,0xb,0x83,0xb, +0xa1,0xe,0xdf,0x10,0xba,0x11,0x46,0x14,0xf,0x17,0xc6,0x17, +0xc4,0x17,0xb4,0x17,0x31,0x17,0x4d,0x16,0xf1,0x14,0xd5,0x13, +0xf4,0x13,0x1d,0x15,0x6a,0x16,0x1d,0x17,0x1a,0x18,0x3f,0x1a, +0xb6,0x1b,0x35,0x1b,0xf5,0x19,0x8d,0x19,0x2f,0x1b,0x7a,0x1d, +0xc7,0x1d,0x3b,0x1d,0x80,0x1d,0x9b,0x1e,0x56,0x21,0x3a,0x23, +0x0,0x22,0xc0,0x21,0xd4,0x22,0x8f,0x20,0x12,0x1d,0x8d,0x1c, +0x58,0x1d,0x94,0x1d,0x91,0x1d,0xd4,0x1c,0x37,0x1c,0xde,0x1e, +0x4f,0x22,0xbc,0x1f,0xa4,0x1a,0xf6,0x1a,0x8,0x1e,0xe4,0x1f, +0x58,0x20,0xc5,0x1d,0xcd,0x1b,0xd4,0x1d,0x12,0x1f,0xe8,0x1e, +0x56,0x1f,0xd3,0x1c,0x1b,0x19,0x39,0x19,0xf3,0x18,0x99,0x13, +0xb7,0xe,0x25,0x10,0xb,0x12,0xa2,0xc,0x78,0x6,0x71,0x9, +0x4a,0x11,0xc2,0x17,0xb7,0x1d,0x75,0x1e,0x17,0x17,0xb,0x14, +0x2b,0x1b,0x12,0x1e,0x4d,0x13,0x44,0x5,0xbd,0x1,0xf1,0x6, +0xa4,0x8,0x29,0x5,0x7b,0x2,0xfc,0xff,0x41,0xff,0xb6,0x2, +0xa4,0x2,0x25,0xfd,0x9c,0xfa,0x0,0xfb,0xe1,0xf8,0x40,0xf4, +0xcf,0xf0,0x14,0xf3,0xa0,0xf9,0x20,0xfd,0xf6,0xfa,0x5b,0xf5, +0x2e,0xf2,0x56,0xf9,0x64,0x3,0xee,0xfd,0x13,0xec,0x31,0xe2, +0x9b,0xe5,0x56,0xeb,0x54,0xe9,0xe0,0xe0,0xd9,0xdc,0x99,0xe0, +0xa7,0xe5,0x13,0xe9,0xad,0xea,0xaf,0xec,0x52,0xf1,0x23,0xf1, +0xe4,0xea,0x97,0xea,0x87,0xef,0xcf,0xee,0x2d,0xe8,0x32,0xe0, +0x8d,0xdb,0x72,0xdf,0x19,0xe8,0x4c,0xeb,0x89,0xe7,0x29,0xe5, +0xc8,0xe7,0x45,0xe9,0xec,0xe4,0xb1,0xde,0x2e,0xdd,0xe5,0xdd, +0xd5,0xd9,0xd9,0xd6,0x48,0xdd,0xa1,0xe7,0x97,0xef,0x46,0xf2, +0xb9,0xed,0x8e,0xeb,0x6e,0xf4,0x13,0xff,0x11,0xfe,0x50,0xf0, +0x6e,0xe3,0x83,0xe4,0x29,0xee,0x59,0xf3,0x74,0xef,0x2b,0xe8, +0x7d,0xea,0xc3,0xf6,0xd6,0xfc,0x8c,0xf9,0xd9,0xf6,0xd2,0xf6, +0xd7,0xf7,0xef,0xf7,0x6b,0xf5,0x2d,0xf6,0xbe,0xfb,0xb3,0xfc, +0xc8,0xf6,0xed,0xf2,0xde,0xf8,0x99,0x5,0x56,0x9,0x3d,0xfe, +0x58,0xf8,0x9e,0x1,0xfd,0x6,0x90,0x2,0x10,0x2,0xb1,0x4, +0x9f,0x5,0xa8,0x5,0x4a,0x0,0xe4,0xfd,0x44,0x9,0x11,0x14, +0xc2,0x12,0xc,0xa,0x66,0x1,0x7b,0x4,0xa2,0xd,0xb3,0xa, +0x61,0x2,0x21,0x1,0xb1,0x6,0x1d,0x12,0xdd,0x17,0xbd,0xf, +0x43,0x7,0xc5,0x6,0x29,0x9,0xd4,0xd,0xb2,0x16,0x3a,0x1d, +0xfb,0x17,0xea,0xd,0xfc,0xe,0xed,0x18,0x51,0x1c,0x2c,0x14, +0xbb,0xc,0xa2,0xf,0xff,0x12,0x65,0x12,0x49,0x15,0x25,0x13, +0x4,0x9,0xfd,0xa,0xb5,0x16,0x10,0x13,0xec,0x7,0x99,0xf, +0x19,0x1b,0x77,0xf,0x23,0x0,0x59,0x2,0x38,0x4,0x6a,0xff, +0x3b,0x3,0x53,0xa,0x7a,0x9,0x11,0xc,0x4b,0x1a,0x32,0x24, +0xa7,0x1e,0x94,0x15,0xe6,0x12,0x47,0x12,0xf4,0xd,0x46,0x8, +0xfe,0x6,0x39,0x2,0x4a,0xf5,0x26,0xf4,0x25,0xff,0x43,0xfe, +0x87,0xfa,0x33,0x2,0x34,0x3,0x1,0x0,0xf6,0xa,0x46,0xe, +0xd9,0xfa,0x5a,0xf1,0xe2,0xf9,0xfd,0xf7,0xc8,0xf1,0x48,0xf7, +0x98,0xf8,0xc5,0xf4,0x66,0xf9,0x39,0xfd,0x34,0xfa,0xa,0xf9, +0x48,0xfc,0xc2,0xff,0x93,0xfc,0xf8,0xf5,0xf7,0xf7,0xb9,0xfc, +0x97,0xf8,0x76,0xf3,0xb8,0xf6,0xb4,0xfb,0xd7,0xf9,0x82,0xf6, +0x59,0xf8,0x16,0xf7,0x61,0xef,0xdc,0xea,0x19,0xe8,0x4a,0xe2, +0x42,0xe0,0x99,0xe1,0x97,0xdf,0x63,0xde,0xd1,0xe2,0xd6,0xe9, +0xa3,0xee,0x89,0xef,0x39,0xf2,0x31,0xf9,0xd4,0xfc,0x2,0xfd, +0xa8,0xfe,0x6b,0xfd,0x26,0xf9,0x37,0xf7,0x63,0xf5,0xa7,0xf2, +0x8b,0xf1,0xda,0xef,0xcd,0xec,0xca,0xeb,0xda,0xed,0xbd,0xef, +0x71,0xed,0xe5,0xe8,0xd4,0xe7,0x63,0xe8,0xbd,0xe4,0xaa,0xe1, +0x76,0xe5,0x27,0xe8,0x9d,0xe5,0x87,0xe7,0x2d,0xed,0xb0,0xee, +0x52,0xf0,0xa1,0xf3,0x86,0xf1,0x89,0xec,0xe,0xed,0xff,0xf0, +0xf7,0xf0,0xcd,0xee,0xa1,0xef,0xc,0xf0,0x83,0xee,0x9b,0xf0, +0x8d,0xf4,0xdd,0xf2,0x99,0xed,0xa0,0xec,0x14,0xef,0x82,0xee, +0x1,0xec,0x8,0xeb,0xe6,0xe9,0x22,0xeb,0xde,0xf1,0x3a,0xf6, +0xb,0xf4,0x5c,0xf5,0x4f,0xfd,0x45,0x1,0x9a,0xff,0xd,0x1, +0xb9,0x4,0x71,0x4,0xc,0x2,0x7e,0x0,0xbc,0xfe,0xee,0xfc, +0xf3,0xfb,0xad,0xfa,0x28,0xf8,0x0,0xf6,0xea,0xf5,0x6d,0xf6, +0x93,0xf5,0x3f,0xf5,0xb0,0xf7,0x48,0xf9,0x2e,0xf7,0xbb,0xf6, +0x1,0xfa,0xea,0xfb,0xfe,0xfc,0x47,0xff,0xd6,0x0,0x87,0x4, +0xd,0xb,0x63,0xd,0x5e,0xb,0x38,0xb,0x64,0xd,0x71,0xe, +0x27,0xc,0xd7,0x7,0xa0,0x5,0x93,0x5,0x88,0x3,0xab,0xff, +0x36,0xfe,0x5f,0xff,0xa3,0x0,0xd5,0x1,0x6e,0x2,0xc,0x2, +0xf5,0x2,0xd9,0x4,0xa9,0x4,0x25,0x3,0x8c,0x3,0x56,0x5, +0x62,0x5,0x74,0x5,0xe3,0x8,0x15,0xc,0x7f,0xc,0x68,0xd, +0x82,0xf,0x2,0x12,0x88,0x13,0xd4,0x11,0x75,0x10,0x1e,0x11, +0x51,0x10,0x2f,0x11,0x95,0x13,0xee,0x10,0x19,0xf,0xbb,0x13, +0xcc,0x15,0x7f,0x13,0x72,0x13,0x31,0x13,0xf5,0x10,0xca,0x10, +0xd8,0x10,0xb1,0xe,0xc9,0xc,0xe0,0xa,0xc9,0x8,0x19,0x8, +0x54,0x6,0x57,0x4,0x8c,0x6,0xbe,0x8,0xa9,0x7,0x28,0x9, +0x9a,0xc,0x7e,0xc,0x83,0xc,0x61,0xf,0x7c,0xf,0xd2,0xc, +0x46,0xd,0x72,0xf,0xe,0xf,0x8e,0xe,0xbb,0xf,0xe3,0xe, +0xd1,0xc,0x7e,0xe,0x81,0x10,0x42,0xd,0x71,0xa,0x18,0xc, +0xf7,0xa,0xa8,0x6,0xd4,0x6,0x47,0x8,0xad,0x4,0x92,0x2, +0xa6,0x7,0xcc,0xb,0x6f,0xa,0x59,0xb,0xcc,0xe,0x70,0xd, +0xa5,0xb,0x45,0xe,0x3d,0xe,0x70,0xa,0xea,0xa,0xf6,0xe, +0x95,0xd,0x39,0x6,0x52,0x1,0x4e,0xff,0x0,0xfb,0xb2,0xf7, +0x87,0xf7,0x2,0xf7,0x4c,0xf8,0x7b,0xfc,0x97,0xfe,0xe1,0xfd, +0x3a,0xfd,0xeb,0xfc,0x77,0xfb,0xa9,0xf9,0xde,0xf9,0xe1,0xfa, +0x82,0xfb,0xdf,0xfc,0xd5,0xfd,0xa,0xff,0xe6,0x1,0x67,0x4, +0xf7,0x6,0xbb,0x8,0x6a,0x7,0x36,0x7,0xc7,0x7,0xd3,0x3, +0x97,0xff,0x1a,0xfe,0x9,0xfa,0x25,0xf4,0x6b,0xf2,0x49,0xf4, +0x49,0xf4,0x18,0xf2,0x5d,0xf2,0xab,0xf4,0x20,0xf6,0x21,0xf9, +0x1e,0xfe,0xa0,0x0,0x53,0x1,0xcc,0x4,0x43,0x8,0x15,0x7, +0x9c,0x5,0x1,0x6,0xb6,0x2,0x5a,0xfd,0xbc,0xfb,0x2f,0xfc, +0xb6,0xfb,0x7c,0xfa,0x65,0xfa,0x43,0xfc,0x32,0xfd,0x18,0xfe, +0x45,0x1,0xaa,0x1,0xb5,0xfe,0x1a,0xfe,0x52,0xfe,0x47,0xfc, +0x57,0xf9,0x44,0xf7,0xa6,0xf7,0xbf,0xf7,0x3b,0xf5,0x54,0xf5, +0x1c,0xf7,0x33,0xf4,0x24,0xf1,0xbb,0xf1,0x57,0xf1,0xd5,0xf1, +0x49,0xf5,0x17,0xf6,0x52,0xf5,0x56,0xf7,0xf1,0xf7,0xae,0xf5, +0xf0,0xf5,0x6a,0xf8,0x62,0xf8,0x86,0xf6,0x55,0xf6,0xbc,0xf6, +0x25,0xf5,0x21,0xf3,0x39,0xf2,0xca,0xf1,0xcd,0xf2,0xc3,0xf5, +0x77,0xf9,0xe5,0xfc,0xd6,0xfe,0x3a,0x1,0xec,0x6,0xe6,0xb, +0x8b,0xd,0x55,0x10,0xd8,0x12,0xb5,0x10,0xcf,0xe,0x28,0xf, +0xa8,0xb,0xad,0x5,0x2f,0x2,0xc1,0xff,0x5f,0xfe,0xd0,0xfd, +0x2,0xfb,0xd5,0xf8,0x6a,0xf8,0x32,0xf5,0x3c,0xf2,0x60,0xf2, +0x96,0xf0,0x7d,0xee,0x87,0xf0,0xaa,0xf2,0xdc,0xf2,0xd8,0xf4, +0xcb,0xf8,0xfe,0xfb,0x88,0xfe,0x1b,0x2,0xa,0x6,0x88,0x8, +0xa8,0xa,0x61,0xd,0x3f,0xd,0xf9,0x8,0x21,0x5,0x61,0x2, +0x2,0xfe,0xd8,0xfa,0xa3,0xf9,0xa8,0xf6,0xf2,0xf3,0xd5,0xf3, +0xc2,0xf4,0x98,0xf6,0xea,0xf6,0x55,0xf5,0x4c,0xf6,0x2d,0xf7, +0x11,0xf5,0xf0,0xf3,0xe0,0xf1,0xf7,0xed,0xea,0xef,0x41,0xf6, +0x24,0xf9,0x39,0xfc,0x2d,0x3,0x26,0x7,0x12,0x7,0x5e,0x9, +0xa,0xb,0x31,0x7,0x46,0x4,0x6b,0x5,0x27,0x4,0x32,0x1, +0x82,0x2,0xf2,0x3,0xcb,0x1,0x30,0x3,0x21,0x7,0x4b,0x6, +0x3b,0x8,0xb7,0xf,0xbf,0x11,0xb5,0x11,0x68,0x14,0x5f,0x11, +0xcd,0xb,0x61,0x9,0xde,0x4,0xa8,0x0,0xae,0xfe,0xea,0xfa, +0xc1,0xf9,0x40,0xfb,0x1,0xfa,0x79,0xfb,0xb3,0x1,0x1f,0x5, +0x3b,0x6,0x13,0x9,0xf4,0x8,0x60,0x3,0x0,0xff,0x5,0xfd, +0x34,0xf9,0x14,0xf8,0xd2,0xfb,0x23,0xfd,0x66,0xfd,0xab,0x1, +0xaa,0x3,0x10,0x1,0x23,0x1,0xf6,0x1,0xea,0xfd,0xe,0xfc, +0x19,0xff,0x97,0xfd,0x16,0xfa,0x97,0xfb,0xed,0xfb,0x1b,0xfc, +0xe3,0x0,0x75,0x2,0xb5,0x2,0xaf,0x8,0x4c,0xc,0x46,0xc, +0xf0,0xc,0x70,0x7,0x29,0xff,0x61,0xfc,0xba,0xf6,0x2b,0xed, +0xf0,0xe9,0x69,0xe9,0x14,0xe8,0x89,0xec,0x0,0xf3,0x46,0xf6, +0x6d,0xfd,0x48,0x7,0x65,0xb,0x2a,0xd,0xa0,0xe,0xc6,0xa, +0xf1,0x4,0xee,0xff,0x90,0xf8,0x1f,0xf3,0x45,0xf3,0xb3,0xf4, +0xcc,0xf6,0xda,0xfa,0x6a,0xff,0x31,0x4,0x1a,0x7,0xc9,0x5, +0x1,0x2,0x86,0xfd,0xa9,0xf8,0x2f,0xf3,0x8f,0xee,0x26,0xee, +0x48,0xef,0x5a,0xef,0x6b,0xf3,0x5d,0xfa,0x65,0xff,0x84,0x4, +0x1d,0x7,0x52,0x4,0xf5,0x0,0x18,0xfc,0x8,0xf4,0xd2,0xec, +0x1f,0xe6,0xad,0xe2,0x16,0xe7,0x49,0xec,0x4b,0xef,0x83,0xf6, +0xcd,0xfd,0xa,0xff,0x77,0x0,0xb1,0x3,0x9d,0x1,0x51,0xfc, +0xff,0xf7,0x33,0xf0,0x45,0xe8,0x1d,0xe8,0xa7,0xea,0x3a,0xec, +0x89,0xf0,0xb8,0xf5,0xc8,0xfb,0xed,0x3,0xe7,0x7,0x7e,0x7, +0x76,0x7,0x5d,0x4,0x49,0xfe,0xca,0xfb,0x8f,0xf9,0xde,0xf3, +0x67,0xf3,0x3b,0xf7,0x5a,0xf5,0x2e,0xf8,0xf2,0x5,0x7a,0xb, +0x64,0x9,0xc,0xf,0x6b,0x11,0x88,0xb,0x1e,0xa,0x20,0x7, +0x38,0xfe,0x9,0xfc,0xa6,0xfd,0xef,0xfa,0x4c,0xfc,0xaf,0x2, +0x3c,0x4,0x56,0x3,0x4f,0x4,0x75,0x3,0xc1,0x4,0xd,0x9, +0x2c,0x5,0x1f,0xfe,0xea,0xff,0xfa,0x1,0x9,0x1,0xc7,0x5, +0xc2,0x9,0x19,0x9,0xa4,0xd,0xd0,0x13,0x1e,0x14,0x4b,0x16, +0x47,0x1a,0x2c,0x16,0x56,0x10,0x6d,0x10,0xf8,0xd,0xdb,0x8, +0x80,0x7,0x31,0x3,0x7a,0xfd,0x30,0x0,0x21,0x3,0xdd,0x0, +0xe2,0x2,0x57,0x7,0x4e,0x9,0x5d,0xd,0xb1,0xf,0x3e,0xd, +0x5e,0xe,0x11,0xf,0xa6,0x7,0x20,0x4,0xe3,0x8,0x6e,0xa, +0x62,0xc,0xb1,0x12,0xe0,0x11,0x13,0xd,0xd8,0xd,0xc2,0xb, +0x97,0x5,0x15,0x5,0x6d,0x5,0x33,0x2,0x55,0x4,0x6f,0xa, +0x9c,0x9,0x1c,0x5,0xfc,0x3,0x11,0x1,0xb8,0xfc,0xc,0xfe, +0x21,0xff,0x45,0xfc,0x3a,0xfe,0xb0,0x3,0xc1,0x6,0xcb,0x9, +0x2a,0xa,0x6b,0x6,0xd9,0x4,0x20,0x3,0x62,0xfe,0x3c,0xfd, +0xb8,0xff,0xab,0x1,0x6b,0x4,0x71,0x7,0x7f,0xa,0x80,0xe, +0xb6,0xf,0x2a,0xe,0x18,0xc,0x55,0x6,0xdb,0xff,0xc4,0xfd, +0x3e,0xfb,0x8c,0xf8,0x19,0xfb,0x48,0xfe,0xd8,0x0,0x6a,0x7, +0x2a,0xb,0xdd,0x7,0x18,0x6,0x5e,0x5,0x0,0x0,0xf4,0xfc, +0x93,0xff,0xfb,0xff,0xdc,0xfe,0x5d,0x2,0x48,0x6,0x8a,0x5, +0x7b,0x4,0x44,0x6,0x2c,0x7,0xea,0x5,0x4f,0x5,0x5c,0x6, +0x5,0x9,0xf2,0xa,0xf,0x9,0xe3,0x6,0x1f,0x6,0x1d,0x3, +0xcc,0x0,0x65,0x0,0xdc,0xfd,0x27,0xfd,0x57,0xff,0xf1,0xff, +0x68,0x2,0x3b,0x5,0x70,0x3,0xc3,0x3,0x8a,0x6,0xd,0x4, +0x65,0x1,0x5,0x4,0xf,0x5,0x1e,0x2,0x7b,0x1,0x58,0x2, +0x52,0x0,0x1d,0x0,0x20,0x1,0x2,0xfc,0x24,0xf8,0x63,0xfa, +0x36,0xf9,0xa2,0xf8,0x42,0xff,0xd1,0x3,0x1f,0x6,0xda,0xb, +0xe2,0xd,0x6a,0xa,0x12,0x9,0x8b,0x7,0x46,0xff,0x50,0xf6, +0xe7,0xf4,0x5c,0xf5,0xcc,0xf2,0x77,0xf3,0x6a,0xf6,0x92,0xf4, +0x2a,0xf1,0xe0,0xf0,0xb6,0xf0,0x79,0xef,0xce,0xef,0x9a,0xf0, +0x3b,0xf0,0x2e,0xf2,0xa1,0xf6,0x8c,0xf8,0xc1,0xf7,0xd8,0xf6, +0x14,0xf6,0xec,0xf4,0x4f,0xf3,0xf8,0xf2,0x62,0xf1,0xb6,0xeb, +0xc1,0xe9,0xd0,0xeb,0x3,0xe9,0x82,0xe7,0x8,0xea,0x88,0xe6, +0x64,0xe2,0xba,0xe4,0xd8,0xe5,0x3d,0xe4,0xd0,0xe3,0xf6,0xe4, +0x1,0xe7,0x56,0xe6,0x6d,0xe6,0xeb,0xeb,0x74,0xec,0x9d,0xe6, +0xb8,0xe6,0x46,0xe8,0xf6,0xe4,0xb3,0xe5,0x5b,0xe8,0x6f,0xe4, +0x14,0xe1,0xab,0xe2,0xad,0xe1,0x71,0xdd,0x37,0xdb,0xc6,0xda, +0xd6,0xd9,0xdf,0xd8,0x86,0xda,0xf2,0xdf,0x4,0xe5,0xe1,0xe5, +0xb5,0xe5,0xe5,0xe7,0x22,0xea,0xa5,0xeb,0xa5,0xed,0xa2,0xec, +0xa6,0xe9,0xcd,0xec,0x95,0xf1,0x12,0xee,0x33,0xeb,0x7f,0xf0, +0x9b,0xf1,0x85,0xec,0x36,0xee,0x97,0xf3,0x84,0xf3,0xb8,0xf3, +0x9f,0xf6,0x96,0xf6,0xd3,0xf6,0xe4,0xfa,0x97,0xfc,0x4e,0xf9, +0x68,0xf7,0x73,0xfa,0x1c,0xfd,0x96,0xfb,0xc6,0xfa,0xf,0xfd, +0xc,0xff,0x2c,0x0,0x4e,0x0,0x21,0x0,0x55,0x3,0x5f,0x6, +0x72,0x3,0x91,0x0,0x1d,0x4,0x59,0x8,0x50,0x7,0x7a,0x5, +0xc7,0x7,0x79,0xa,0x2f,0xb,0x27,0xd,0x9f,0xe,0x38,0xd, +0xad,0xe,0xfa,0x13,0x7a,0x14,0xca,0x10,0x20,0x13,0x9c,0x18, +0xb9,0x17,0xae,0x15,0x1b,0x17,0x97,0x15,0x48,0x13,0xea,0x14, +0x31,0x14,0x7e,0x11,0x6d,0x14,0x40,0x18,0x11,0x16,0xd2,0x14, +0x7e,0x19,0xe0,0x1a,0xdc,0x15,0x31,0x15,0x83,0x19,0x8f,0x18, +0x13,0x15,0xe7,0x17,0xf1,0x1b,0xe3,0x19,0xcc,0x16,0x3,0x17, +0x9c,0x16,0x17,0x15,0x18,0x15,0xd0,0x15,0x15,0x16,0xe2,0x14, +0x71,0x14,0x7b,0x18,0x3c,0x1a,0x77,0x15,0xfb,0x13,0x9a,0x15, +0xe1,0x11,0x65,0xf,0x74,0x12,0x63,0x11,0x15,0xd,0x0,0xf, +0x98,0x12,0x2d,0x11,0x88,0x10,0x3e,0x12,0xe2,0x10,0x31,0xe, +0x21,0xc,0x50,0x9,0xbe,0x7,0x8,0x7,0x22,0x6,0x76,0x6, +0x80,0x6,0x2,0x8,0x50,0xc,0x46,0xd,0x9d,0xb,0x7e,0xb, +0x22,0xa,0x2b,0x9,0xe8,0x9,0xc9,0x7,0xb5,0x4,0x76,0x3, +0x5f,0x2,0x34,0x2,0x24,0x2,0xcb,0x1,0x3,0x3,0x22,0x2, +0x81,0xff,0x45,0x1,0x20,0x3,0xba,0x0,0xdb,0xff,0x15,0xff, +0xa2,0xfa,0xc9,0xf9,0x2e,0xfd,0x3d,0xfd,0xf2,0xfb,0x63,0xfc, +0xf1,0xfc,0x91,0xfe,0xf2,0xfe,0x71,0xfd,0x8b,0xff,0xa4,0x1, +0x45,0xff,0x6f,0xfe,0x6a,0xfe,0xfd,0xfa,0xb3,0xf8,0xcc,0xf7, +0xa,0xf4,0x2f,0xf0,0x71,0xf0,0x5e,0xf3,0xfe,0xf3,0xf2,0xf2, +0xf2,0xf5,0x76,0xf9,0xe,0xf9,0x8,0xfb,0xa2,0xfd,0x9,0xfa, +0xe0,0xf7,0x8c,0xfa,0x1a,0xfa,0x2e,0xf9,0x39,0xfc,0x80,0xfd, +0x4b,0xfc,0xac,0xfc,0x43,0xfe,0x6b,0x0,0x5e,0x1,0x7b,0xfe, +0x84,0xfb,0xde,0xfb,0xf0,0xfa,0x0,0xf8,0x19,0xf8,0x77,0xf7, +0x63,0xf3,0xd7,0xf4,0x5d,0xfa,0x21,0xfb,0xe5,0xfc,0x15,0x1, +0x56,0x0,0xa0,0xff,0x98,0x1,0x52,0x1,0xce,0x0,0x9d,0xfe, +0x97,0xfa,0xe9,0xfa,0x35,0xf9,0x7e,0xf3,0xf3,0xf4,0xef,0xf6, +0x7a,0xf1,0x7,0xf1,0x63,0xf6,0xf4,0xf6,0xd5,0xf6,0x45,0xfa, +0x2,0xfc,0xcd,0xfa,0x37,0xfa,0xd2,0xfc,0x70,0xfe,0xc0,0xf9, +0x6a,0xf7,0x74,0xfc,0x68,0xfc,0x3c,0xf9,0x92,0xff,0x6b,0x5, +0xc2,0x1,0x2b,0xfe,0xe5,0xfd,0x7f,0xfd,0x85,0xfa,0x86,0xf5, +0x80,0xf5,0x70,0xf5,0xd1,0xef,0x33,0xf4,0x65,0xfe,0x87,0xfa, +0xec,0xf7,0xce,0x1,0xb1,0x3,0xf2,0xfd,0x86,0xff,0x1c,0x2, +0xec,0xfe,0x12,0xfa,0x92,0xf7,0xaf,0xf9,0x23,0xfc,0x62,0xfb, +0xf7,0xfc,0x6f,0x0,0x82,0x0,0x9,0x2,0x21,0x6,0xc2,0x4, +0x66,0x1,0xdc,0x2,0x5f,0x1,0x2f,0xfa,0xa8,0xf7,0xad,0xf9, +0x9a,0xf8,0xda,0xf7,0x7,0xfb,0x8d,0xfd,0x7f,0xff,0x20,0x3, +0xc7,0x4,0xed,0x3,0xb4,0x3,0xa0,0x3,0x93,0x2,0xbc,0xff, +0x7d,0xfc,0x8f,0xfc,0xde,0xfb,0x2c,0xf7,0x76,0xf6,0x63,0xfa, +0x97,0xfb,0xc9,0xfb,0x48,0xfd,0x8c,0xfd,0xc5,0xfc,0xeb,0xfb, +0xd7,0xfb,0x62,0xfb,0x37,0xf8,0x36,0xf7,0x5f,0xfa,0x47,0xfa, +0x91,0xf8,0xdb,0xfb,0x1,0xff,0xde,0xfe,0xdc,0x0,0x38,0x4, +0x78,0x5,0x56,0x5,0xf2,0x3,0x4e,0x3,0xe2,0x3,0x38,0x1, +0xf5,0xfe,0x26,0x1,0xb,0x0,0x19,0xfd,0x28,0x0,0x27,0x2, +0x98,0x0,0xc5,0x3,0x6,0x8,0x3f,0x7,0x23,0x5,0xe9,0x3, +0xea,0x2,0x41,0x1,0xfc,0xfd,0x7a,0xfb,0x5a,0xfb,0xe,0xfc, +0x89,0xfc,0x9c,0xfc,0xda,0xfd,0xeb,0x0,0x23,0x2,0xcf,0x0, +0xdd,0x0,0x51,0x1,0x1c,0xff,0x46,0xfd,0xda,0xfd,0x90,0xfd, +0xe6,0xfc,0x7,0xff,0x5a,0x1,0xc8,0x0,0xfe,0xff,0xb6,0x1, +0x87,0x3,0xd8,0x1,0x7f,0xfe,0x7c,0xfd,0xa,0xfd,0x2,0xfb, +0x88,0xfa,0x7b,0xfb,0x8e,0xfa,0x76,0xfa,0x47,0xfd,0xbe,0xfe, +0x5b,0xfe,0x1f,0xff,0xdc,0xff,0xa9,0xff,0xb,0xff,0x4a,0xfd, +0x23,0xfc,0xe4,0xfb,0xe3,0xf9,0x91,0xf8,0xe3,0xf9,0x61,0xfa, +0x95,0xfa,0xe3,0xfc,0xf4,0xfe,0xae,0xff,0x40,0x0,0xad,0x0, +0x24,0x1,0x14,0x1,0x4f,0xff,0x5,0xfd,0x2b,0xfc,0x61,0xfc, +0x62,0xfc,0x66,0xfc,0x7f,0xfc,0x8e,0xfb,0xea,0xfa,0x6c,0xfc, +0x76,0xfd,0x9b,0xfc,0x63,0xfc,0x8b,0xfc,0x96,0xfc,0xac,0xfe, +0xf8,0x0,0x17,0x1,0x88,0x1,0xd4,0x2,0xfd,0x2,0x5e,0x2, +0x5e,0x1,0xdc,0xff,0xf6,0xfd,0xa0,0xfb,0xf1,0xf9,0xd6,0xf8, +0x76,0xf7,0x55,0xf7,0xcc,0xf7,0x3c,0xf7,0x1d,0xf8,0x2b,0xfa, +0x6d,0xfa,0xb3,0xfa,0xeb,0xfb,0xcf,0xfb,0x63,0xfb,0x31,0xfc, +0xb2,0xfd,0xce,0xff,0x76,0x1,0x1f,0x2,0x98,0x3,0xac,0x5, +0x7c,0x6,0xb9,0x6,0x67,0x7,0xff,0x6,0x39,0x5,0xad,0x4, +0x4a,0x5,0xdc,0x4,0xbc,0x4,0x1f,0x5,0x53,0x3,0x56,0x2, +0x44,0x5,0x40,0x7,0xf7,0x6,0xc3,0x8,0x6,0xb,0x69,0xb, +0xcf,0xc,0x93,0xe,0x4d,0xe,0xa1,0xe,0x29,0x10,0x43,0x10, +0xad,0x10,0xb0,0x12,0x86,0x13,0xc,0x14,0xbe,0x15,0xe2,0x15, +0xef,0x15,0xb6,0x18,0x1b,0x1a,0x43,0x19,0x81,0x1a,0xaa,0x1b, +0x43,0x1a,0xd,0x1a,0xdf,0x1a,0x7c,0x19,0x43,0x18,0x34,0x19, +0x42,0x19,0x2a,0x18,0x17,0x19,0x1d,0x1a,0x2f,0x18,0xe6,0x16, +0x1d,0x18,0x23,0x18,0x50,0x17,0xd1,0x17,0x8c,0x18,0x13,0x19, +0x56,0x18,0x82,0x16,0xe5,0x16,0xfe,0x16,0x3c,0x14,0x46,0x13, +0x61,0x12,0x6c,0xe,0xaa,0xd,0x48,0xe,0x99,0x9,0x36,0x6, +0x1b,0x7,0x29,0x5,0xae,0x2,0xef,0x4,0x89,0x7,0x57,0x7, +0x91,0x7,0x5b,0x9,0xef,0x9,0x73,0x9,0x52,0xa,0xaf,0x9, +0x65,0x6,0x1f,0x6,0x0,0x7,0x75,0x3,0x76,0x0,0x64,0x0, +0x8b,0xfe,0xbb,0xfc,0x38,0xfc,0x46,0xfa,0xc7,0xf9,0xd0,0xfa, +0x1c,0xf9,0x94,0xf7,0xe5,0xf7,0x9f,0xf6,0xc,0xf6,0x55,0xf7, +0xe9,0xf5,0x67,0xf3,0xcc,0xf3,0xec,0xf3,0x7b,0xf1,0x32,0xef, +0xc8,0xed,0x8e,0xeb,0xf7,0xe8,0xb0,0xe7,0x22,0xe7,0xd6,0xe5, +0x60,0xe4,0x6b,0xe3,0x86,0xe2,0x5,0xe2,0xea,0xe1,0xba,0xe1, +0x1b,0xe2,0x94,0xe2,0xf0,0xe1,0x85,0xe1,0x1a,0xe2,0xa3,0xe1, +0x85,0xdf,0x80,0xdd,0x7e,0xdc,0xe1,0xdb,0xdc,0xda,0x9f,0xd9, +0xab,0xd8,0x8f,0xd7,0x1e,0xd6,0x3c,0xd5,0x5f,0xd5,0x92,0xd5, +0xc7,0xd4,0xf0,0xd3,0x78,0xd4,0x81,0xd5,0x24,0xd6,0xf6,0xd6, +0x8e,0xd7,0x91,0xd7,0xed,0xd7,0x7e,0xd8,0x79,0xd8,0x4,0xd8, +0x70,0xd7,0x3e,0xd7,0x7a,0xd7,0xa6,0xd7,0x72,0xd8,0xef,0xd9, +0xb0,0xda,0x33,0xdb,0x99,0xdc,0x38,0xde,0xfe,0xdf,0xab,0xe1, +0x65,0xe2,0xc7,0xe3,0x9b,0xe6,0x8e,0xe8,0xc9,0xe9,0xfa,0xeb, +0xfd,0xed,0x49,0xef,0xfa,0xf0,0xa2,0xf2,0x86,0xf3,0x3a,0xf4, +0x4c,0xf5,0x48,0xf6,0xa5,0xf6,0x84,0xf7,0x57,0xf9,0x54,0xfa, +0xfd,0xfa,0x3e,0xfd,0x71,0xff,0x52,0x0,0xdf,0x1,0x43,0x4, +0xb0,0x5,0x8b,0x6,0x30,0x8,0x32,0xa,0xa4,0xb,0xd6,0xc, +0xf0,0xd,0x7f,0xe,0xee,0xe,0x9a,0xf,0xc,0x10,0x77,0x10, +0x16,0x11,0x86,0x11,0x15,0x12,0xc,0x13,0xb5,0x13,0xe7,0x13, +0x87,0x14,0xa2,0x15,0x4a,0x16,0x5,0x17,0x8c,0x18,0x39,0x19, +0x72,0x18,0x18,0x18,0x34,0x18,0xb6,0x17,0x5e,0x17,0x4f,0x17, +0xab,0x16,0xe8,0x15,0xb4,0x15,0xad,0x15,0x6d,0x15,0xfe,0x14, +0x99,0x14,0x9b,0x14,0x5,0x15,0x71,0x15,0xbf,0x15,0xde,0x15, +0xbe,0x15,0xe1,0x15,0xe,0x16,0x92,0x15,0x37,0x15,0x66,0x15, +0x60,0x15,0x7f,0x15,0xa8,0x15,0x38,0x15,0x5b,0x15,0x5f,0x16, +0xb3,0x16,0xf9,0x15,0x5d,0x15,0xff,0x15,0xa2,0x16,0x2c,0x15, +0x14,0x13,0x20,0x12,0x4,0x12,0x69,0x13,0x8a,0x14,0xce,0x12, +0xbc,0x11,0xb8,0x13,0x7,0x15,0x94,0x13,0xb6,0x10,0xe5,0xe, +0x54,0xf,0x2a,0xf,0x34,0xd,0xe3,0xb,0x6a,0xb,0xcb,0xb, +0x63,0xd,0x9e,0xd,0x7a,0xc,0xd9,0xc,0x92,0xd,0x39,0xc, +0x45,0x9,0xf5,0x5,0x8a,0x3,0xbc,0x2,0x1e,0x2,0xa4,0x0, +0x57,0x0,0x7f,0x2,0x14,0x5,0xe2,0x6,0xf6,0x7,0xa9,0x7, +0x70,0x7,0x66,0x9,0x5c,0xb,0xe,0xa,0x26,0x7,0x87,0x6, +0x13,0x7,0xa2,0x4,0x4e,0x0,0x8e,0xff,0x75,0x3,0xb7,0x6, +0xfd,0x6,0x25,0x8,0x82,0xa,0xe9,0xa,0xb,0xa,0xc5,0x8, +0x14,0x7,0xf,0x6,0x9f,0x5,0x39,0x6,0xd3,0x6,0xd7,0x5, +0x62,0x7,0xd6,0xa,0x9e,0x9,0x9e,0x8,0xae,0xe,0x73,0x13, +0x9,0xf,0x81,0x8,0x69,0x8,0xad,0xb,0x8c,0xa,0xee,0x4, +0xb1,0x2,0x3d,0x6,0xf,0x8,0xdd,0x7,0x8e,0xa,0x51,0xa, +0x62,0x8,0xdf,0xe,0xbe,0x14,0x13,0xf,0x7e,0x9,0x54,0xe, +0x6f,0x14,0x1c,0x10,0x2e,0x8,0xb9,0x8,0x75,0xa,0x72,0x6, +0x18,0x5,0xb1,0x6,0xf4,0x5,0xc3,0x6,0xd,0x9,0xaa,0x7, +0x80,0x6,0xc4,0x9,0xc1,0xa,0x2d,0x7,0x11,0x5,0x11,0x5, +0xc2,0x7,0x3f,0x9,0x8c,0x0,0x3,0xfb,0x71,0x3,0xd3,0x7, +0x4e,0x5,0x91,0x4,0x62,0x1,0x4c,0x3,0x11,0x8,0x67,0xfe, +0xff,0xf5,0xf3,0xfc,0xa9,0xff,0xf8,0xfa,0x28,0xfb,0x9b,0xfd, +0xf8,0xff,0x7c,0x2,0x82,0x2,0x36,0x4,0x19,0x9,0x82,0xa, +0x2d,0x9,0x84,0x8,0xae,0x4,0xd0,0x0,0x5b,0x0,0xa3,0xf7, +0x8a,0xea,0xcd,0xee,0x14,0xfa,0x31,0xf4,0xd0,0xe8,0x71,0xe9, +0x7f,0xf0,0x30,0xf5,0x36,0xf0,0xac,0xe5,0xe,0xe7,0x2f,0xee, +0x18,0xec,0xc6,0xea,0xa9,0xe9,0xd7,0xe1,0x31,0xe5,0xa8,0xf0, +0xca,0xed,0x30,0xe7,0x47,0xe9,0x93,0xeb,0x7,0xec,0xa2,0xe9, +0x44,0xe6,0x31,0xe8,0xbc,0xe5,0xb5,0xdd,0x97,0xe0,0x9b,0xe6, +0x1d,0xe1,0xa7,0xdd,0xad,0xe2,0x2,0xe4,0x43,0xe3,0xbb,0xe4, +0x41,0xe4,0xdb,0xe5,0xde,0xe9,0xad,0xeb,0x18,0xee,0x97,0xeb, +0xe2,0xe4,0x77,0xe8,0x8e,0xeb,0xdb,0xe3,0xeb,0xe3,0xf,0xeb, +0xb9,0xec,0x7f,0xef,0xb6,0xf0,0x76,0xec,0x56,0xee,0xdd,0xf3, +0x59,0xf3,0xdf,0xf1,0xac,0xf2,0xe5,0xf2,0xf8,0xf3,0x38,0xf5, +0xe6,0xf4,0xb5,0xf6,0x17,0xf9,0xb9,0xf7,0x75,0xf7,0x78,0xf8, +0xc1,0xf6,0x33,0xf7,0x16,0xf7,0x8e,0xf1,0x22,0xf0,0x5d,0xf3, +0xdf,0xf2,0x1b,0xf2,0x57,0xf4,0xa,0xf8,0xb0,0xfb,0x2f,0xfb, +0xa9,0xf9,0x89,0xfd,0xa8,0x1,0x67,0x0,0xf9,0xfd,0xc4,0xfd, +0xf2,0xfd,0xd,0xfe,0xf5,0xfc,0x77,0xf7,0x9a,0xf2,0x1b,0xf5, +0xaf,0xf9,0xfa,0xfa,0xa7,0xfa,0xa,0xfa,0xc7,0xfb,0x77,0xff, +0x9c,0xff,0x50,0xfd,0xf1,0xfc,0xd,0xfd,0xd5,0xfb,0xc7,0xfa, +0xea,0xfb,0xba,0xfe,0xef,0xff,0x89,0xff,0x5b,0x1,0xbe,0x4, +0x83,0x5,0x3,0x5,0xb,0x7,0x1,0x9,0x9a,0x7,0xca,0x5, +0x6,0x6,0xc6,0x6,0xd8,0x6,0xac,0x5,0x7c,0x3,0xbb,0x2, +0x28,0x5,0xc5,0x8,0xa3,0x9,0x62,0x7,0x5d,0x6,0x9b,0x8, +0x6c,0xb,0xe7,0xc,0x1b,0xd,0x83,0xc,0xcc,0xb,0x62,0xa, +0x50,0x8,0x72,0x7,0x52,0x7,0x28,0x6,0xcc,0x4,0xc4,0x4, +0x6f,0x6,0x8f,0x8,0xb3,0x8,0x37,0x7,0xaf,0x6,0x38,0x7, +0x3c,0x7,0x45,0x6,0x85,0x5,0xfb,0x5,0x48,0x6,0x62,0x5, +0x93,0x4,0xa8,0x4,0x6f,0x5,0x6,0x6,0xf0,0x4,0x30,0x3, +0x9,0x3,0xb9,0x3,0xd5,0x2,0x52,0xff,0x43,0xfb,0x8,0xfa, +0xe3,0xfa,0x60,0xfb,0xcb,0xfc,0xe7,0xfe,0x6f,0xfe,0xf0,0xfc, +0xfb,0xfd,0xa6,0xff,0xb0,0xff,0xd8,0xff,0x9b,0x0,0x5b,0x0, +0x4f,0xff,0xf8,0xfe,0x8d,0xff,0x6c,0xff,0xce,0xfd,0x61,0xfd, +0x77,0xff,0x4e,0x1,0x66,0x2,0xfb,0x3,0xe6,0x3,0x6b,0x1, +0xe,0xff,0x22,0xfd,0x72,0xfb,0xe2,0xfa,0x2c,0xfa,0xfe,0xf8, +0x39,0xfa,0xc8,0xfd,0x6c,0x0,0x64,0x2,0x66,0x5,0xe2,0x7, +0x7e,0x9,0x1f,0xc,0xf9,0xd,0xdf,0xc,0xf6,0xa,0x4c,0x9, +0xfa,0x6,0xf9,0x4,0xf4,0x3,0xba,0x3,0xdb,0x3,0x65,0x2, +0x1b,0x0,0x38,0x0,0x21,0x1,0x23,0x0,0x20,0xff,0xaf,0xfe, +0xde,0xfd,0xd5,0xfe,0x72,0x1,0xeb,0x1,0x91,0x0,0xf5,0xff, +0x46,0xff,0x53,0xfe,0xbd,0xfe,0x96,0xff,0xb8,0xff,0x18,0x0, +0xa6,0x0,0x2e,0x1,0x6e,0x2,0xce,0x2,0xf2,0x0,0xbe,0xff, +0xae,0x0,0xcf,0x0,0x6d,0xff,0xc7,0xfe,0xe0,0xfe,0xfd,0xfe, +0x90,0xff,0xde,0xff,0x24,0x0,0x1c,0x2,0xd9,0x3,0xe6,0x2, +0xe6,0x1,0x36,0x2,0x34,0x1,0xb7,0xff,0x0,0x0,0x2f,0x0, +0xaa,0xff,0x2,0x0,0x98,0xff,0xe2,0xfd,0x75,0xfd,0x9c,0xfd, +0x13,0xfd,0x7,0xfe,0xe8,0xff,0xb5,0x0,0x61,0x2,0x88,0x4, +0x4,0x4,0x33,0x3,0xb2,0x4,0x5b,0x5,0xec,0x3,0x58,0x2, +0x6c,0x0,0x68,0xfe,0x73,0xfd,0x7c,0xfc,0x5e,0xfb,0xdf,0xfa, +0xce,0xf9,0xbe,0xf8,0xae,0xf9,0x1e,0xfb,0xdf,0xfb,0x95,0xfd, +0xc3,0xff,0x3f,0x1,0x32,0x3,0xb7,0x4,0xc4,0x3,0x50,0x2, +0x8,0x2,0x45,0x1,0x49,0x0,0x83,0x0,0xb3,0x0,0x7d,0x0, +0x3a,0x1,0xcf,0x1,0x80,0x0,0x6c,0xfe,0x17,0xfd,0xb0,0xfb, +0x96,0xf9,0x7b,0xf8,0xfb,0xf8,0x87,0xf9,0x83,0xfa,0xef,0xfc, +0x78,0xff,0xcb,0x1,0x7f,0x4,0x1e,0x6,0xcf,0x5,0xbd,0x4, +0xd6,0x3,0x2f,0x3,0x40,0x2,0xed,0x0,0x2a,0x0,0x12,0x0, +0x70,0xff,0xe,0xfe,0xac,0xfd,0xa3,0xfe,0xf8,0xfd,0x18,0xfb, +0x76,0xf9,0xaa,0xf9,0xbd,0xf9,0xc2,0xf9,0x7f,0xfa,0x6d,0xfc, +0x6,0xff,0x5f,0x0,0xa2,0x0,0xc5,0x0,0xf0,0xff,0xa6,0xfe, +0x2b,0xfe,0x9,0xfe,0xdf,0xfd,0xd3,0xfd,0x36,0xfe,0xd0,0xfe, +0x6b,0xfe,0xbd,0xfd,0xcf,0xfd,0x72,0xfd,0x52,0xfd,0x88,0xfe, +0xc4,0xff,0xce,0x1,0x90,0x5,0xb2,0x8,0x74,0xa,0x18,0xb, +0x25,0x9,0x7c,0x5,0x9,0x3,0xd9,0x1,0x58,0x0,0x50,0xff, +0x23,0x0,0x17,0x2,0xf8,0x4,0x3e,0x8,0xc5,0x8,0x36,0x7, +0x11,0x7,0x84,0x6,0xe3,0x3,0x4b,0x1,0xf4,0xfe,0xcd,0xfd, +0x2c,0xff,0xac,0x0,0x2a,0x2,0x2d,0x5,0x44,0x7,0x96,0x7, +0x18,0x8,0x8d,0x8,0x47,0x8,0x8c,0x7,0xbb,0x6,0x34,0x6, +0x98,0x5,0x9f,0x4,0xed,0x2,0x6,0x0,0x2e,0xfd,0xb1,0xfa, +0x8e,0xf7,0xa3,0xf5,0x4d,0xf6,0x46,0xf8,0x85,0xfb,0x5d,0xff, +0x48,0x2,0x59,0x5,0x92,0x8,0x1b,0x9,0xeb,0x6,0xe,0x5, +0x7,0x4,0x77,0x2,0x4f,0x1,0x76,0x0,0x99,0xfd,0x86,0xfa, +0x19,0xf9,0x90,0xf6,0x1d,0xf4,0x97,0xf4,0x6d,0xf5,0xa2,0xf6, +0x50,0xfa,0x5d,0xfe,0x3a,0x2,0xcb,0x5,0xb5,0x6,0xc8,0x6, +0x54,0x7,0x56,0x5,0xed,0x1,0xeb,0xff,0x2b,0xfe,0xb1,0xfc, +0xbd,0xfc,0x60,0xfd,0xf6,0xfd,0x8e,0xfe,0xf,0xfe,0x24,0xfc, +0x5c,0xfa,0x5c,0xf9,0xbd,0xf8,0x11,0xf9,0xd6,0xf9,0x2d,0xfa, +0xb0,0xfb,0x23,0xfe,0xcc,0xff,0xbd,0x1,0xe3,0x2,0x33,0x1, +0xef,0xff,0xba,0x0,0xc8,0x0,0xff,0xff,0xc2,0xff,0x9,0x0, +0x22,0x0,0x4b,0xff,0x11,0xff,0x3e,0x0,0x2b,0x0,0xd,0xff, +0xd1,0xfe,0x51,0xfe,0x24,0xfe,0xa6,0xff,0x14,0x0,0xa7,0xfe, +0x10,0xff,0x75,0x1,0xbb,0x1,0x41,0xff,0xb6,0xfc,0x7b,0xfa, +0xc9,0xf8,0x4f,0xf9,0x24,0xfb,0x3b,0xfd,0x69,0x0,0xb,0x3, +0xa5,0x3,0x8b,0x3,0x9e,0x2,0x58,0x0,0x89,0xfd,0x49,0xfa, +0x8a,0xf7,0x92,0xf6,0xce,0xf6,0xe6,0xf7,0xdc,0xf9,0xe7,0xfb, +0x92,0xfd,0xfc,0xfe,0xbd,0x0,0x9e,0x2,0x18,0x3,0xd3,0x1, +0x31,0xff,0x2a,0xfc,0xb,0xfb,0xec,0xfa,0xb5,0xf9,0x2c,0xfa, +0x1d,0xfd,0x3d,0xff,0x57,0x1,0x2b,0x4,0x48,0x4,0x51,0x1, +0x79,0xfd,0x85,0xf9,0xe,0xf7,0x6b,0xf6,0x56,0xf5,0xe0,0xf3, +0xca,0xf3,0xd8,0xf4,0x79,0xf6,0xdb,0xf8,0x5c,0xfb,0x49,0xfd, +0xfa,0xfe,0x5c,0x0,0x40,0x1,0x9a,0x2,0xb6,0x3,0x59,0x2, +0xfd,0xff,0xb0,0xff,0xed,0x0,0xa3,0x2,0xcd,0x4,0xf5,0x5, +0xea,0x5,0xd1,0x6,0x4e,0x8,0xc7,0x7,0x84,0x5,0x76,0x3, +0x6d,0x0,0x29,0xfb,0x99,0xf6,0xa3,0xf4,0x13,0xf3,0xd7,0xf0, +0x25,0xef,0x8a,0xef,0x26,0xf3,0xd0,0xf7,0xa4,0xfa,0x92,0xfc, +0x5,0xfe,0x91,0xfd,0x8d,0xfc,0x69,0xfc,0x61,0xfc,0x86,0xfc, +0x3e,0xfd,0x5a,0xfe,0xe3,0xff,0x66,0x1,0x37,0x2,0x72,0x1, +0x53,0xfe,0xde,0xfa,0xf8,0xf9,0xc7,0xfa,0xb4,0xfa,0xb2,0xf9, +0x8c,0xf9,0xba,0xfa,0x72,0xfc,0x96,0xfe,0xad,0x0,0xfa,0x1, +0x5d,0x3,0xb7,0x4,0xe7,0x4,0x21,0x5,0x53,0x5,0xae,0x3, +0xec,0x1,0x45,0x1,0x3,0x0,0x95,0xff,0x25,0x1,0x23,0x1, +0x2c,0xff,0x13,0xff,0xa0,0x0,0x46,0x1,0xb0,0x1,0xcd,0x2, +0xc7,0x3,0xba,0x4,0xfc,0x5,0x6b,0x7,0xb7,0x9,0xd7,0xb, +0x17,0xc,0x62,0xc,0xa0,0xd,0xde,0xd,0xb8,0xd,0x39,0xd, +0x68,0xb,0xf1,0xa,0x3e,0xb,0x9c,0x9,0x7a,0xa,0xb1,0xe, +0x55,0x10,0xb3,0x10,0x39,0x12,0x46,0x12,0xee,0x12,0xc5,0x14, +0x2,0x13,0xef,0xf,0x4a,0xf,0x9d,0xe,0x79,0xe,0xce,0xf, +0x57,0xf,0x38,0xe,0x22,0xf,0xcc,0xf,0xa7,0xf,0x97,0x10, +0x3,0x11,0x46,0xf,0x37,0xe,0xf6,0xf,0x3f,0x11,0x8f,0x10, +0xdd,0x11,0x27,0x14,0x9f,0x12,0xf5,0x10,0x37,0x13,0x55,0x14, +0x18,0x12,0xbe,0x10,0x8,0x11,0xcc,0x10,0xcc,0xf,0xc,0xf, +0x76,0xe,0x60,0xc,0xa5,0x9,0xfe,0x7,0x1a,0x5,0x1b,0x2, +0x71,0x3,0x59,0x4,0x7b,0x0,0x98,0xfe,0xf3,0xff,0xf9,0xfd, +0x37,0xfa,0x6e,0xf8,0x26,0xf6,0x31,0xf3,0x9a,0xf1,0xf5,0xef, +0xbc,0xed,0xb2,0xec,0x41,0xec,0x40,0xea,0x27,0xe7,0xd1,0xe5, +0x91,0xe6,0x2a,0xe6,0x4a,0xe3,0x9,0xe1,0x1d,0xe2,0x3f,0xe4, +0x95,0xe4,0x5f,0xe5,0x8b,0xe7,0x99,0xe7,0xb2,0xe6,0xf2,0xe7, +0x5b,0xe8,0xd5,0xe6,0xc4,0xe6,0x1e,0xe7,0xc1,0xe5,0x68,0xe5, +0xa6,0xe7,0x9f,0xe9,0x9f,0xe9,0x9b,0xe9,0xb6,0xea,0x4a,0xeb, +0xec,0xea,0x79,0xea,0xa4,0xe9,0x90,0xe9,0xe7,0xea,0xa6,0xea, +0x58,0xe9,0x69,0xea,0xad,0xeb,0x3f,0xeb,0xd6,0xea,0x67,0xea, +0x18,0xeb,0xc5,0xec,0x7,0xec,0xb,0xeb,0xca,0xeb,0x11,0xeb, +0x5d,0xea,0xff,0xea,0x6b,0xea,0x7,0xea,0xdb,0xe9,0x70,0xe8, +0x8e,0xe8,0x2b,0xe9,0xd7,0xe7,0xb2,0xe7,0x7a,0xe8,0x1a,0xe7, +0x12,0xe6,0x2b,0xe7,0x68,0xe7,0x51,0xe6,0x4e,0xe6,0xfb,0xe6, +0x14,0xe7,0xa2,0xe7,0xe4,0xe8,0x0,0xea,0x55,0xeb,0xca,0xec, +0x3c,0xed,0x2b,0xed,0x52,0xee,0x5e,0xf0,0xaf,0xf1,0x58,0xf2, +0x6c,0xf3,0xde,0xf5,0x45,0xf9,0x4b,0xfb,0x50,0xfc,0x8b,0xfe, +0xd0,0x0,0x52,0x2,0x47,0x4,0x9a,0x6,0x10,0x9,0x63,0xb, +0x8d,0xd,0x19,0x10,0x60,0x12,0xfe,0x14,0x3e,0x18,0xcd,0x19, +0xa5,0x1a,0xb0,0x1c,0x78,0x1e,0xe,0x20,0x81,0x21,0xba,0x21, +0x34,0x22,0x2e,0x23,0xe,0x23,0xbb,0x22,0x57,0x23,0xb6,0x23, +0xa8,0x22,0x87,0x21,0xdf,0x21,0xa0,0x22,0xf5,0x22,0xd3,0x22, +0xe8,0x21,0x42,0x21,0xff,0x20,0x63,0x20,0x5,0x20,0x80,0x1e, +0x1b,0x1b,0x71,0x19,0x46,0x1a,0xf7,0x19,0xf,0x18,0x1a,0x17, +0xe4,0x16,0x66,0x15,0xc5,0x12,0x44,0x10,0x42,0xe,0xa2,0xc, +0x7,0xb,0x80,0x9,0x3b,0x8,0x6d,0x7,0xe2,0x7,0x51,0x8, +0xbd,0x6,0x30,0x5,0xb7,0x5,0x5f,0x6,0x4b,0x5,0x98,0x3, +0xa3,0x2,0x30,0x1,0xcc,0xfe,0x58,0xfd,0x4b,0xfc,0xc6,0xfa, +0x2,0xfa,0xd,0xf9,0x3,0xf7,0x9e,0xf5,0xea,0xf5,0x8e,0xf7, +0x65,0xf8,0x6b,0xf7,0x93,0xf7,0xf1,0xf8,0x60,0xf8,0xbc,0xf6, +0xf5,0xf5,0xf1,0xf4,0x10,0xf3,0x84,0xf2,0xa1,0xf4,0x98,0xf6, +0xf,0xf7,0x70,0xf8,0xd9,0xf9,0x57,0xf9,0x36,0xf9,0x82,0xf9, +0x3c,0xf7,0x15,0xf4,0x34,0xf3,0x97,0xf2,0xb2,0xf0,0xac,0xf0, +0x22,0xf3,0xb1,0xf4,0xdd,0xf4,0xb5,0xf5,0xe8,0xf7,0x4c,0xfa, +0xf2,0xfa,0xc1,0xf9,0xff,0xf7,0x4,0xf6,0x71,0xf4,0x9b,0xf3, +0xf8,0xf2,0x54,0xf3,0x82,0xf4,0xfd,0xf3,0xb5,0xf2,0x34,0xf4, +0x9,0xf6,0x50,0xf4,0x8d,0xf2,0xde,0xf2,0xfa,0xf1,0x54,0xf1, +0x26,0xf3,0xaf,0xf4,0xd5,0xf4,0x87,0xf4,0xdf,0xf5,0xf0,0xf9, +0xd,0xfc,0x59,0xfb,0xed,0xfb,0xf6,0xfb,0x1,0xfb,0x18,0xfc, +0xe5,0xfc,0x89,0xfc,0xfe,0xfd,0x54,0x0,0xa3,0x0,0x8c,0xff, +0x25,0x1,0xfe,0x5,0x53,0x9,0xb2,0x9,0xa7,0x9,0x50,0xb, +0x66,0xe,0x54,0xf,0xc,0xe,0x6b,0xd,0x49,0xc,0x59,0xb, +0x3,0xd,0x32,0xf,0xa0,0xf,0x83,0xe,0x90,0xe,0x53,0x11, +0x33,0x14,0xf9,0x17,0x20,0x1d,0x7,0x1e,0x65,0x1b,0xef,0x1b, +0x2d,0x1f,0x61,0x1f,0x5c,0x1c,0xbc,0x1b,0xc,0x1c,0xef,0x18, +0x84,0x17,0x2e,0x19,0x42,0x1a,0x99,0x1c,0x40,0x1c,0x5a,0x16, +0x94,0x14,0x2b,0x1a,0x17,0x20,0x26,0x20,0x96,0x19,0x3d,0x16, +0x3e,0x1c,0x8a,0x21,0xbe,0x1d,0x98,0x16,0x7f,0x15,0x29,0x19, +0xa1,0x19,0xd9,0x16,0x82,0x14,0xed,0x13,0xb7,0x14,0xae,0x11, +0x73,0xc,0xf2,0xd,0x9,0x12,0xb3,0x10,0x82,0xc,0x83,0x9, +0x42,0xa,0x7a,0xd,0xdd,0xd,0x69,0xc,0xf3,0xc,0x9a,0xe, +0x96,0xe,0xdb,0xb,0x5a,0xa,0xa9,0xc,0x24,0xd,0x59,0x7, +0x21,0x0,0xa5,0x0,0xe9,0x7,0x2d,0x8,0x3,0xff,0xbd,0xf8, +0xcf,0xf7,0xe,0xf9,0x0,0xfe,0x6b,0xff,0xdc,0xf7,0x5d,0xf4, +0xf9,0xf9,0x18,0xfb,0x68,0xf6,0xcf,0xf4,0x4d,0xf4,0x72,0xf4, +0x91,0xf7,0xb7,0xf8,0x86,0xf8,0xe5,0xf9,0xae,0xfa,0x25,0xfd, +0xde,0xfc,0x2e,0xf5,0x9b,0xf4,0xb,0xfb,0x49,0xf5,0xc2,0xeb, +0xc,0xed,0x11,0xed,0x8,0xea,0x1a,0xef,0x74,0xf1,0x37,0xe8, +0xb8,0xe3,0x96,0xea,0x8c,0xef,0x43,0xee,0x66,0xeb,0x88,0xe8, +0xbd,0xe7,0xa5,0xe9,0x55,0xed,0x6e,0xf1,0xc5,0xef,0x2e,0xeb, +0xec,0xef,0xe5,0xf6,0xa2,0xf2,0x9e,0xed,0xd0,0xee,0x11,0xeb, +0x72,0xe6,0x20,0xea,0x4d,0xeb,0x8f,0xe7,0xa1,0xe9,0xf,0xed, +0x89,0xeb,0xbf,0xe9,0xf1,0xea,0xf1,0xef,0x2,0xf2,0xf1,0xeb, +0x71,0xea,0x17,0xef,0xc2,0xeb,0xc3,0xe6,0x9,0xe9,0xe5,0xe8, +0xe3,0xe4,0x63,0xe4,0xd2,0xe5,0x72,0xe7,0x48,0xec,0xe3,0xf0, +0xf4,0xed,0xe1,0xe9,0xe0,0xef,0xba,0xf7,0xee,0xf5,0x7b,0xf1, +0x9d,0xf2,0x2e,0xf6,0x6,0xf8,0xe,0xf8,0x54,0xf6,0x5d,0xf3, +0x58,0xf3,0x24,0xf6,0x5a,0xf4,0x7f,0xee,0x6a,0xec,0xe4,0xed, +0x80,0xed,0xe6,0xea,0xfc,0xe9,0x27,0xec,0x95,0xee,0xad,0xef, +0xb,0xf1,0xec,0xf3,0xdf,0xf6,0x4b,0xf9,0x96,0xfd,0x5f,0x1, +0x31,0x0,0x7,0xfe,0x6e,0xfd,0x80,0xfb,0x60,0xfa,0x89,0xf9, +0x84,0xf4,0x7a,0xf0,0xa4,0xf2,0x61,0xf5,0xf6,0xf4,0xc9,0xf4, +0xa8,0xf6,0x92,0xf9,0xf2,0xfb,0x67,0xfc,0x77,0xfd,0xb1,0x0, +0x72,0x1,0x84,0xff,0xca,0xff,0x95,0x1,0x66,0x2,0x8c,0x1, +0x14,0x0,0xa0,0x1,0xae,0x3,0x4a,0x1,0x59,0xfd,0x19,0xfa, +0x11,0xf8,0x7f,0xf9,0xe1,0xfa,0xcf,0xf9,0x1b,0xfb,0x92,0xff, +0x60,0x3,0xbf,0x5,0x5d,0x7,0x14,0x8,0x0,0x9,0xed,0xa, +0x72,0xb,0x9a,0xa,0xa2,0xb,0x95,0xc,0xe7,0xa,0x19,0x9, +0x55,0x8,0xc6,0x7,0xbc,0x6,0xd0,0x5,0x53,0x7,0x93,0x8, +0xd4,0x6,0xbb,0x6,0x9d,0x7,0xb4,0x4,0xc4,0x1,0x91,0x0, +0xae,0xfd,0x19,0xfc,0x25,0xfe,0xb5,0xff,0xa7,0xff,0xa5,0xff, +0xde,0xff,0xfa,0x0,0x85,0x2,0x57,0x2,0x71,0x0,0x7f,0xfe, +0xc2,0xfd,0xe3,0xfe,0xef,0x0,0x2f,0x2,0xbc,0x2,0xfc,0x3, +0xcc,0x6,0xb6,0xa,0x79,0xd,0x74,0xd,0xf6,0xc,0xdf,0xd, +0x3f,0xd,0x39,0xa,0x7f,0x8,0x9,0x8,0xc3,0x5,0x8c,0x2, +0x13,0x1,0xfd,0x0,0xa5,0x0,0x8,0x1,0x38,0x3,0xb6,0x4, +0x24,0x5,0x91,0x7,0xef,0xa,0xc6,0xc,0x1c,0xe,0xa7,0xe, +0xc1,0xc,0x57,0x9,0x10,0x7,0x50,0x7,0x14,0x7,0x3a,0x4, +0x22,0x3,0xf1,0x4,0x48,0x5,0xfe,0x3,0x1f,0x2,0xae,0xff, +0xb,0xff,0x53,0xfe,0x29,0xfb,0xc,0xfb,0xe6,0xfe,0x91,0x0, +0xbc,0x0,0xa5,0x2,0x2a,0x4,0xc4,0x3,0x4e,0x2,0xf,0x0, +0x5a,0xfd,0xee,0xfa,0x2c,0xf9,0x7f,0xf7,0x7e,0xf5,0xb6,0xf3, +0x21,0xf2,0x6f,0xf0,0x15,0xf0,0xd6,0xf2,0x84,0xf6,0x30,0xf7, +0xc,0xf7,0x25,0xfa,0x2f,0xfe,0x81,0x0,0xbc,0x0,0xc5,0xfe, +0x2f,0xfe,0x65,0xff,0xbd,0xfd,0x80,0xfb,0x16,0xfc,0x6b,0xfc, +0x83,0xfc,0x63,0xfe,0x7c,0x0,0x4a,0x1,0x6d,0x0,0x59,0xff, +0xa1,0xfe,0x65,0xfb,0xd2,0xf6,0xd6,0xf4,0xa7,0xf4,0x78,0xf5, +0x4c,0xf8,0x4a,0xfc,0xf8,0x0,0x36,0x6,0x8e,0x9,0xd,0x9, +0x80,0x6,0x9b,0x3,0xf5,0xff,0xf,0xfd,0x20,0xfb,0xbd,0xf7, +0x8a,0xf5,0xc5,0xf6,0x5b,0xf8,0xae,0xfa,0xb2,0xfd,0x95,0xfe, +0xff,0xff,0xab,0x2,0xe1,0x2,0x58,0x2,0x76,0x2,0xb4,0x1, +0xa7,0x2,0x3,0x6,0x31,0x8,0x6f,0x9,0x72,0xb,0xcd,0xb, +0x88,0x9,0x62,0x7,0x2f,0x5,0xa4,0x1,0x81,0xfe,0x0,0xfc, +0x9e,0xfa,0x8d,0xfb,0x34,0xfb,0x95,0xf9,0x9a,0xfa,0xc2,0xfa, +0xf8,0xf8,0x49,0xfa,0x12,0xfd,0x13,0xff,0xde,0x2,0xcc,0x7, +0x23,0xb,0x92,0xb,0x19,0xb,0x50,0xd,0xe5,0xe,0x8b,0xb, +0x97,0x7,0xe5,0x6,0x2b,0x7,0xf4,0x5,0x3,0x3,0xd5,0xff, +0x9a,0xfe,0xbc,0xff,0xac,0x0,0xa2,0xff,0x83,0xfe,0xd7,0xfe, +0x15,0x1,0xdb,0x4,0xe8,0x6,0xda,0x7,0x38,0xa,0x4,0xa, +0x68,0x7,0xcf,0x6,0xb4,0x4,0x61,0x0,0x4,0xff,0xac,0xff, +0xd3,0x0,0x48,0x3,0xdf,0x5,0xbf,0x9,0x63,0xf,0x3f,0x13, +0x3,0x14,0xdb,0x12,0xc9,0x10,0x65,0xe,0x4e,0xa,0xf5,0x3, +0xa6,0xfe,0xfb,0xfc,0x8d,0xfd,0xff,0xfe,0x59,0x0,0x6b,0xff, +0x5c,0xfe,0xf6,0xff,0xe9,0xfe,0x80,0xf9,0x7c,0xf6,0xc0,0xf5, +0x54,0xf4,0xf,0xf6,0xe6,0xfa,0xd1,0xfe,0xa6,0x2,0x23,0x6, +0x62,0x7,0xb3,0x8,0x2e,0xb,0xef,0xc,0xbc,0xd,0xb2,0xd, +0x5a,0xd,0xec,0xc,0x5f,0x9,0xe5,0x2,0x7e,0xfe,0x2c,0xfb, +0xb8,0xf5,0x53,0xf3,0x38,0xf6,0x53,0xf7,0xdd,0xf6,0x85,0xf9, +0x8f,0xfa,0xe,0xf9,0x84,0xfa,0xb0,0xfb,0x65,0xfa,0x4f,0xfb, +0x5c,0xfd,0xa0,0xfe,0x88,0x1,0xc6,0x5,0xf0,0x8,0xe6,0x9, +0xab,0x9,0xb5,0x9,0xc6,0x9,0x1d,0x9,0x4,0x6,0x74,0x1, +0xd9,0xfe,0xde,0xfc,0x64,0xfb,0x27,0xfc,0xb8,0xfb,0x24,0xfa, +0x65,0xf9,0x12,0xf8,0x12,0xf8,0x9b,0xf7,0x22,0xf4,0xc6,0xf3, +0x5e,0xf6,0xda,0xf7,0xb1,0xfb,0x40,0x0,0xf0,0x0,0xb,0x0, +0x60,0xff,0xbd,0xfd,0x76,0xfa,0xc7,0xf7,0x9b,0xf7,0xd1,0xf6, +0xd1,0xf5,0xd8,0xf8,0xd3,0xfc,0x4d,0xfe,0x35,0x0,0xe1,0x1, +0xc1,0xff,0xa5,0xfe,0x78,0x2,0xba,0x2,0xc8,0xfd,0xd0,0xfd, +0xcb,0xff,0x51,0xfc,0x27,0xfa,0x7c,0xfb,0xe2,0xf9,0x94,0xf7, +0xa0,0xf8,0x3e,0xf9,0x6,0xf8,0x94,0xf8,0xc8,0xf8,0x5c,0xf5, +0xa8,0xf2,0xd1,0xf2,0xa1,0xf3,0x5,0xf5,0x73,0xf6,0x12,0xf9, +0xe1,0xfc,0xef,0xfd,0xbe,0xfe,0x94,0x0,0x25,0xff,0xe2,0xfd, +0x6e,0xfd,0xfb,0xf9,0x87,0xf9,0xe,0xfc,0x95,0xf9,0x31,0xf6, +0xb5,0xf7,0xac,0xf9,0x19,0xf9,0x3,0xfa,0x9f,0xfd,0xc2,0xfe, +0x8d,0xfd,0x66,0xfe,0x5c,0xfe,0x8e,0xfb,0x5e,0xfa,0xa4,0xfa, +0x3b,0xf9,0xd9,0xf7,0x64,0xf9,0x3b,0xfc,0x45,0xfe,0xed,0x0, +0xd9,0x3,0x4e,0x6,0xa9,0xa,0xb3,0xf,0x58,0x12,0x6e,0x13, +0x12,0x14,0xd3,0x13,0xbc,0x11,0x6a,0xe,0x7c,0xb,0xa3,0x7, +0x3e,0x3,0x1e,0x1,0xdd,0xff,0x6,0xff,0xae,0x1,0x40,0x6, +0x50,0x8,0x9d,0x9,0x7b,0xe,0x4a,0x13,0x80,0x13,0xaa,0x12, +0x29,0x12,0x47,0x10,0x62,0xe,0xdd,0xb,0xa7,0x9,0x90,0x9, +0xd,0x8,0x72,0x6,0x21,0x8,0x99,0x9,0x8d,0xa,0x48,0xb, +0x12,0x9,0xb4,0x7,0x4d,0x8,0x53,0x6,0xfe,0x4,0xbf,0x6, +0x49,0x7,0x61,0x8,0x50,0xc,0xe5,0xd,0x78,0xd,0xa2,0xf, +0x51,0x10,0xa1,0xc,0x95,0xa,0x1,0xc,0x8,0xc,0x48,0x9, +0x8d,0x7,0xa5,0x8,0xcb,0x8,0xb6,0x7,0x49,0xa,0x5,0xe, +0x5f,0xe,0x89,0xf,0x5a,0x13,0xfa,0x15,0xb9,0x16,0xe2,0x15, +0x72,0x14,0x4e,0x14,0xd6,0x12,0x94,0xf,0xe0,0xd,0x97,0xa, +0xa0,0x5,0x3c,0x5,0x4d,0x4,0x6f,0xff,0x35,0x1,0x14,0x6, +0xc6,0x2,0x47,0x0,0x99,0x2,0x1e,0xff,0x22,0xfa,0x44,0xf9, +0xc2,0xf4,0x48,0xf0,0x99,0xf2,0xc2,0xf3,0x6f,0xf2,0xf8,0xf3, +0xf6,0xf3,0x85,0xf1,0x3f,0xf0,0x12,0xed,0xaf,0xe9,0xc6,0xe9, +0x71,0xe7,0xf3,0xe2,0x95,0xe3,0x59,0xe5,0x63,0xe3,0x9e,0xe2, +0xb4,0xe3,0x19,0xe3,0x5c,0xe3,0x57,0xe6,0x26,0xe8,0x9f,0xe7, +0x6e,0xe8,0xf2,0xea,0xac,0xeb,0x36,0xeb,0x78,0xec,0xdc,0xed, +0xc0,0xed,0x6a,0xed,0xe1,0xec,0xec,0xec,0x3b,0xee,0xf8,0xed, +0x76,0xed,0x3d,0xf0,0xe4,0xf1,0x48,0xf1,0x0,0xf4,0x10,0xf6, +0x53,0xf3,0x78,0xf2,0xa0,0xf3,0xef,0xf2,0x40,0xf4,0xbd,0xf5, +0x7,0xf4,0x3f,0xf5,0xf9,0xf7,0x1,0xf6,0x59,0xf4,0x7b,0xf4, +0xb8,0xf1,0xd6,0xef,0x65,0xf0,0xf5,0xee,0x1e,0xee,0x73,0xef, +0x70,0xee,0xae,0xec,0x6,0xed,0x6e,0xec,0x5c,0xeb,0xcb,0xeb, +0x9e,0xeb,0x5,0xec,0xf4,0xed,0xc1,0xed,0x46,0xed,0x16,0xef, +0xc9,0xee,0x5,0xed,0xa3,0xed,0xe1,0xed,0x6f,0xed,0x5f,0xee, +0x69,0xee,0x7e,0xee,0xfb,0xf0,0xd7,0xf2,0x1a,0xf3,0x5a,0xf4, +0x27,0xf6,0xaa,0xf6,0xb6,0xf6,0x11,0xf8,0x7d,0xf9,0x86,0xf9, +0x77,0xfa,0xb4,0xfc,0xa4,0xfd,0xeb,0xfd,0x25,0xff,0x8a,0x0, +0x3a,0x1,0xb,0x1,0xf6,0x0,0x88,0x1,0x9d,0x1,0xa3,0x1, +0xdc,0x2,0x72,0x4,0x39,0x5,0x76,0x5,0x59,0x6,0x5f,0x7, +0xfa,0x6,0x93,0x6,0x22,0x7,0x26,0x7,0x68,0x7,0x26,0x8, +0x9f,0x7,0xcf,0x6,0x65,0x6,0x65,0x5,0x45,0x4,0xe8,0x2, +0x86,0x1,0x14,0x1,0x35,0x0,0xec,0xfe,0x4d,0xff,0x51,0x0, +0xf3,0xff,0x8e,0xfe,0x6d,0xfd,0xf3,0xfc,0x4b,0xfc,0x22,0xfb, +0xb0,0xf9,0x6d,0xf8,0x76,0xf8,0xc1,0xf8,0x0,0xf8,0xd7,0xf7, +0x11,0xf8,0x21,0xf7,0xf0,0xf5,0xc8,0xf4,0xf2,0xf3,0xc5,0xf3, +0x54,0xf2,0xbb,0xf0,0x38,0xf1,0x86,0xf1,0x5b,0xf1,0x38,0xf2, +0x38,0xf2,0x65,0xf1,0xa2,0xf1,0x11,0xf2,0x25,0xf2,0x99,0xf2, +0x7e,0xf3,0x43,0xf4,0x81,0xf4,0x20,0xf5,0xb7,0xf5,0xc2,0xf4, +0x9,0xf4,0x47,0xf4,0x24,0xf3,0xde,0xf1,0x4f,0xf2,0x86,0xf2, +0x89,0xf2,0x6,0xf4,0x8f,0xf5,0x1d,0xf6,0x95,0xf7,0xd6,0xf9, +0xa9,0xfa,0x3a,0xfb,0xb6,0xfc,0xb3,0xfc,0x3e,0xfc,0xe3,0xfd, +0xf7,0xfe,0x1a,0xff,0xad,0x0,0xc1,0x1,0x34,0x2,0xcb,0x3, +0x5c,0x4,0x32,0x4,0x9c,0x5,0xfd,0x6,0x9f,0x7,0x33,0x8, +0x22,0x8,0x8,0x8,0xee,0x7,0x13,0x7,0xa5,0x6,0x9,0x7, +0x7b,0x7,0xcb,0x7,0xaa,0x7,0xc6,0x7,0xed,0x8,0xc3,0xa, +0x5,0xd,0x83,0xe,0x59,0xe,0x24,0xe,0xb0,0xe,0x6,0xf, +0x9b,0xe,0xe0,0xd,0x2f,0xe,0x5b,0xf,0xf9,0xf,0x94,0x10, +0xaa,0x11,0xa5,0x12,0x75,0x13,0xb8,0x13,0x6d,0x13,0xa6,0x12, +0xaa,0x11,0x62,0x12,0x63,0x13,0x58,0x12,0xeb,0x12,0x94,0x15, +0x6b,0x16,0x82,0x17,0xf4,0x19,0x2d,0x1b,0x86,0x1c,0x41,0x1e, +0x43,0x1f,0x95,0x20,0x0,0x21,0xff,0x20,0xf5,0x21,0x32,0x21, +0x70,0x21,0xb2,0x25,0x2,0x27,0x3d,0x24,0x35,0x24,0x8c,0x26, +0x64,0x28,0xee,0x28,0x76,0x27,0x74,0x27,0xfd,0x29,0x89,0x2a, +0x16,0x2a,0x6,0x2b,0x2c,0x2a,0x0,0x29,0x34,0x2b,0x5f,0x2c, +0x6a,0x2b,0xce,0x2d,0x1e,0x30,0xd5,0x2d,0xb2,0x2c,0xe4,0x2c, +0x73,0x29,0xb9,0x26,0x97,0x27,0x8d,0x27,0xd8,0x24,0x1d,0x21, +0x86,0x21,0x8c,0x27,0xad,0x28,0x1f,0x22,0xfa,0x1f,0x20,0x25, +0x97,0x28,0x20,0x25,0x8,0x1d,0xf3,0x17,0x63,0x1a,0xe,0x1f, +0xaa,0x1d,0x6a,0x16,0x69,0x14,0x9a,0x1b,0x95,0x1e,0x7,0x17, +0x28,0x10,0x1c,0x10,0xb0,0x10,0x5d,0xc,0x2b,0x6,0x7a,0x4, +0xe0,0x6,0x14,0xa,0x43,0xc,0x22,0xa,0x6f,0x8,0x43,0xe, +0x49,0x13,0x82,0x11,0x0,0x10,0x46,0xf,0x39,0xd,0x12,0xc, +0x3c,0x9,0x7,0x5,0x23,0x2,0xf8,0xfc,0xdc,0xf7,0x1e,0xf8, +0xaf,0xfa,0x87,0xfd,0x1f,0xfe,0xd7,0xf9,0xc2,0xf9,0xf2,0xff, +0xf4,0xfe,0x3e,0xf7,0x83,0xf4,0x84,0xf5,0x28,0xf5,0x26,0xf3, +0x7d,0xef,0xf2,0xef,0x6,0xf8,0x4c,0xfc,0x48,0xf6,0x51,0xf1, +0x56,0xf4,0xa7,0xf8,0x20,0xf6,0x96,0xea,0x1d,0xe0,0x82,0xe1, +0x7a,0xe5,0xc6,0xe1,0x9c,0xde,0x85,0xdf,0x9e,0xdf,0xf1,0xe2, +0xfe,0xe9,0x56,0xed,0xac,0xed,0x95,0xec,0x91,0xe7,0xc4,0xe4, +0x4f,0xe7,0x4f,0xe3,0x7,0xd7,0x73,0xd2,0x18,0xd7,0x1e,0xd7, +0xee,0xd3,0xfc,0xd5,0x35,0xd9,0xa4,0xdc,0xf9,0xe1,0x3d,0xe0, +0x35,0xdb,0xea,0xe1,0xd,0xea,0x12,0xe4,0xdb,0xd9,0xfd,0xd4, +0xde,0xd4,0xb6,0xd8,0x2,0xd9,0x5e,0xd6,0x51,0xda,0x75,0xdd, +0x82,0xdc,0xa3,0xe2,0xa0,0xe6,0x24,0xde,0xac,0xd7,0x4,0xd7, +0x7c,0xd3,0xb2,0xd2,0x35,0xd6,0x34,0xd5,0xec,0xd3,0xd2,0xda, +0xac,0xe3,0x1e,0xe7,0xc4,0xe8,0xf,0xec,0x44,0xef,0xdc,0xef, +0xbf,0xeb,0x1,0xe7,0x71,0xe5,0xee,0xdf,0xc3,0xd7,0x64,0xd8, +0x48,0xdc,0xdf,0xdb,0x24,0xdf,0xb8,0xe5,0x76,0xe8,0x3d,0xeb, +0xaa,0xf0,0x7c,0xf4,0x2c,0xf6,0x7d,0xf8,0xa3,0xf9,0x20,0xf5, +0x9,0xf0,0xc7,0xf1,0x7e,0xf3,0xaf,0xef,0x9b,0xed,0x52,0xef, +0xc,0xf1,0xd6,0xf3,0x22,0xf8,0x44,0xfb,0x96,0xfb,0x34,0xf9, +0x2d,0xf6,0x4c,0xf5,0x59,0xf6,0x51,0xf5,0x13,0xf1,0x5f,0xee, +0xf3,0xf0,0x22,0xf8,0xdb,0xfe,0x45,0x0,0x57,0x1,0xf3,0x6, +0x39,0xa,0xcc,0x7,0x26,0x5,0xc4,0x3,0x5,0x1,0x87,0xfb, +0x36,0xf6,0x95,0xf5,0xaa,0xf7,0x40,0xf9,0x8b,0xfa,0x52,0xfa, +0xd6,0xfa,0xcb,0xfe,0x49,0x0,0xe1,0xfc,0x9e,0xfa,0x63,0xfa, +0x8d,0xf8,0x1a,0xf6,0x80,0xf6,0x94,0xf9,0xde,0xfb,0xa2,0xfb, +0xbf,0xfb,0xc0,0x0,0xbb,0x8,0x15,0xc,0xc7,0xa,0x80,0xa, +0x5d,0xb,0xc4,0xc,0x2,0xe,0x6f,0xa,0x14,0x4,0xba,0x1, +0x74,0x1,0x47,0xff,0x53,0xfe,0x81,0x1,0x25,0x5,0xc7,0x5, +0x82,0x6,0x87,0x9,0xf1,0xb,0xb,0xc,0x87,0x8,0xf,0x2, +0xa3,0xfe,0xec,0xfe,0x1c,0xfe,0xde,0xfc,0xb7,0xfc,0x48,0xfd, +0xb4,0xff,0x62,0x2,0x2d,0x4,0x67,0x7,0x36,0xa,0x9,0xa, +0x57,0xa,0x9f,0xd,0x13,0x11,0xaf,0x11,0xc2,0xf,0x26,0xd, +0xc5,0xa,0x50,0x9,0x54,0x8,0xec,0x5,0x3e,0x3,0x64,0x2, +0xe,0x2,0x78,0x1,0x6,0x1,0x65,0x0,0xc6,0x0,0x47,0x1, +0x5e,0xff,0xac,0xfe,0x90,0x1,0xe3,0x2,0x86,0x2,0xb,0x4, +0x22,0x4,0xaa,0x2,0xfa,0x4,0x48,0x8,0xec,0x7,0x9b,0x6, +0x52,0x6,0x97,0x6,0x2d,0x7,0xf5,0x5,0x34,0x3,0xc1,0x1, +0xfe,0x0,0x60,0x0,0x1e,0x1,0x19,0x1,0x1b,0xff,0xce,0xfe, +0xf,0x1,0x6c,0x2,0x1d,0x3,0xb8,0x5,0x90,0x8,0xdd,0x8, +0xcb,0x7,0x4f,0x7,0x41,0x6,0xae,0x3,0xf6,0x1,0x5d,0x1, +0x33,0x0,0x11,0x1,0x32,0x4,0xe3,0x5,0xf4,0x7,0x44,0xa, +0x83,0x8,0xa2,0x6,0x6,0x8,0x19,0x8,0x7b,0x6,0x50,0x5, +0x28,0x4,0x43,0x4,0xf7,0x4,0x24,0x4,0x6,0x4,0x20,0x6, +0xa1,0x7,0x70,0x7,0x8f,0x7,0x90,0x7,0x22,0x6,0x0,0x5, +0x57,0x3,0xd4,0xff,0xa7,0xfe,0x98,0xff,0x4d,0xfe,0x3c,0xfd, +0x45,0xfe,0x1d,0xff,0x72,0x0,0xa8,0x2,0xcb,0x4,0xd8,0x6, +0x3a,0x7,0xc3,0x5,0xc5,0x4,0x22,0x4,0x61,0x2,0xeb,0xff, +0x7d,0xfd,0x6b,0xfb,0x73,0xfb,0xb2,0xfd,0x9b,0xfe,0x85,0xfe, +0x97,0x0,0x11,0x2,0xda,0x0,0xec,0xff,0x6c,0xff,0xd5,0xfd, +0xb,0xfc,0x84,0xfa,0xe4,0xf8,0x76,0xf8,0x29,0xfb,0x2e,0xfe, +0x63,0xfd,0xb3,0xfc,0xf5,0xff,0xec,0x2,0xa8,0x3,0x75,0x4, +0xbc,0x5,0x78,0x7,0xb2,0x8,0x8,0x8,0x19,0x7,0x1c,0x7, +0x68,0x6,0xab,0x3,0xf6,0xff,0xee,0xfd,0x80,0xfe,0x5c,0xff, +0x64,0xfe,0x5a,0xfc,0xa7,0xfb,0xb5,0xfd,0xfc,0x0,0xdc,0x2, +0xf1,0x3,0xeb,0x5,0x74,0x7,0x63,0x8,0x9,0xa,0xb8,0xa, +0x40,0xa,0x31,0xa,0x25,0x9,0x92,0x7,0x7b,0x7,0x5f,0x7, +0x1e,0x6,0xd6,0x3,0x97,0x0,0x94,0xfe,0xb1,0xfe,0x51,0xfe, +0x2,0xfc,0x18,0xfa,0xa3,0xfa,0x6a,0xfb,0xe2,0xfb,0xb8,0xfe, +0x6a,0x1,0xe5,0x1,0xe7,0x3,0x87,0x6,0xe2,0x6,0x88,0x7, +0x4b,0x8,0x8c,0x6,0x86,0x4,0x1,0x4,0x36,0x3,0x3,0x2, +0x4e,0x1,0xf3,0xff,0xf9,0xfd,0x82,0xfd,0x7c,0xfe,0x96,0xff, +0xb2,0x0,0xa9,0x0,0xbf,0xfe,0x54,0xfd,0x52,0xfe,0x42,0x0, +0xf,0x1,0xc3,0x0,0x8a,0x0,0xd1,0x1,0xf5,0x4,0xc6,0x6, +0x44,0x5,0x74,0x3,0x78,0x2,0x60,0x1,0x68,0x1,0x2f,0x1, +0xa5,0xff,0x63,0x0,0x42,0x2,0x2e,0x1,0x80,0x0,0x9d,0x2, +0x2f,0x3,0xd6,0x1,0x8a,0x1,0x5f,0x1,0x4f,0x2,0x1f,0x6, +0xe0,0x7,0xd5,0x5,0x40,0x5,0x6e,0x5,0x0,0x3,0xeb,0xff, +0x88,0xfc,0x2c,0xf8,0x13,0xf5,0xd7,0xf3,0x21,0xf5,0xbc,0xf9, +0x34,0xfe,0xfd,0x0,0x78,0x4,0xe2,0x7,0xe0,0x9,0xee,0xb, +0x77,0xd,0x7a,0xc,0x19,0xa,0x8d,0x8,0x5b,0x7,0xeb,0x4, +0x5b,0x1,0x26,0xfd,0xb2,0xf8,0x63,0xf5,0xf,0xf3,0x72,0xf1, +0x6,0xf2,0x68,0xf2,0x27,0xf1,0x36,0xf3,0x4,0xf7,0x59,0xf7, +0xe6,0xf8,0xda,0xfc,0xe9,0xfc,0x34,0xfc,0x9d,0xff,0xf5,0x2, +0x2e,0x4,0xd1,0x4,0xe5,0x3,0x10,0x3,0xc5,0x4,0x73,0x4, +0xe0,0xff,0x25,0xfd,0x35,0xfc,0xa8,0xf8,0xab,0xf6,0x52,0xf7, +0x5a,0xf6,0x5f,0xf7,0x42,0xfb,0xcd,0xfc,0x7f,0xfe,0x9c,0x2, +0xb,0x5,0x1a,0x5,0x64,0x4,0x5f,0x3,0xd,0x3,0x4d,0x3, +0xf3,0x1,0x95,0xfe,0x5e,0xfd,0x3e,0xff,0x1c,0xff,0x92,0xfe, +0x58,0x1,0x3,0x2,0xad,0xff,0x57,0x0,0x62,0x2,0x85,0x2, +0x8e,0x2,0x7e,0x2,0xbe,0x1,0xff,0x1,0x27,0x3,0xfc,0x3, +0x14,0x5,0x5b,0x6,0xe4,0x6,0x94,0x7,0x4d,0x8,0xe5,0x6, +0xdc,0x3,0x32,0x1,0x3c,0xfe,0xe2,0xf9,0xbb,0xf6,0x4f,0xf7, +0x35,0xf8,0xa1,0xf7,0xdf,0xf9,0xd9,0xfd,0xdb,0xff,0x34,0x2, +0xe8,0x3,0xae,0x2,0xd0,0x1,0x8f,0x0,0xa3,0xfd,0x8,0xfd, +0xc1,0xfc,0xf,0xfa,0x37,0xfa,0x4f,0xfd,0x13,0xfe,0x2c,0xfe, +0x48,0xff,0x98,0xfe,0xe5,0xfd,0xe1,0xfe,0xd2,0xfd,0xd,0xfc, +0x31,0xfd,0xbc,0xfd,0xd7,0xfc,0x7a,0xfe,0xdf,0x0,0x3f,0x1, +0xd8,0x0,0x6c,0xff,0x4a,0xfd,0x3e,0xfd,0x40,0xfe,0x5,0xfd, +0x61,0xfb,0x48,0xfc,0xce,0xfd,0xe2,0xfe,0x2f,0x1,0x43,0x3, +0x59,0x3,0xba,0x2,0x30,0x2,0x26,0x2,0x80,0x3,0xf9,0x4, +0x65,0x4,0x25,0x3,0xa,0x4,0xc4,0x4,0x5f,0x2,0x7d,0xff, +0xfc,0xfc,0x78,0xf9,0xc8,0xf7,0x5f,0xf8,0x63,0xf8,0xe9,0xf8, +0x9b,0xf9,0x1d,0xf8,0xea,0xf6,0x4c,0xf7,0x14,0xf7,0xb6,0xf7, +0x88,0xf9,0x33,0xf9,0xdf,0xf8,0xb,0xfc,0x82,0xff,0xe0,0x0, +0xf6,0x0,0xa5,0xff,0x51,0xfe,0x8a,0xfd,0xf0,0xfb,0x27,0xfa, +0x87,0xf7,0x44,0xf4,0x5f,0xf4,0x12,0xf7,0x79,0xf9,0xd3,0xfc, +0x8d,0xff,0x4d,0xff,0x51,0xfe,0x48,0xfd,0x22,0xfb,0xeb,0xf8, +0xe0,0xf6,0xcb,0xf4,0x51,0xf4,0xa7,0xf5,0x16,0xf7,0x23,0xf8, +0x1a,0xf7,0xd,0xf3,0xcf,0xf0,0x9e,0xf1,0x4f,0xf1,0x1c,0xf2, +0xfc,0xf5,0xe,0xf9,0xf2,0xfb,0xdc,0xff,0x61,0x2,0x59,0x4, +0x68,0x5,0xa7,0x2,0xc8,0xfe,0x73,0xfe,0x25,0x0,0x7c,0xff, +0x5,0xfd,0x4d,0xfb,0x6e,0xf9,0x31,0xf8,0x83,0xf8,0x4d,0xf7, +0x8d,0xf5,0x18,0xf6,0x4f,0xf7,0x41,0xfa,0x9e,0x0,0xcb,0x6, +0xce,0xa,0xc2,0xd,0x35,0xf,0xce,0xe,0xac,0xd,0xb,0xc, +0xbc,0x9,0x8f,0x7,0xfc,0x4,0x18,0x3,0x9,0x6,0xba,0xa, +0x6d,0xb,0x87,0xb,0xbf,0xc,0xc2,0xc,0xc3,0xe,0x2b,0x13, +0xd9,0x15,0xba,0x17,0xe0,0x1a,0x47,0x1e,0x47,0x21,0xc1,0x24, +0xd3,0x27,0x22,0x27,0x18,0x23,0xc7,0x1e,0xb5,0x1a,0x87,0x17, +0x40,0x14,0x9b,0xf,0x1c,0xd,0x7d,0xd,0xef,0xe,0x7d,0x12, +0xcd,0x15,0xcb,0x16,0xdc,0x17,0xca,0x18,0x7,0x19,0x12,0x1a, +0x58,0x1c,0x71,0x1f,0xde,0x21,0x3d,0x23,0x1b,0x23,0x8f,0x20, +0x15,0x1f,0xb,0x1c,0x3a,0x11,0x52,0x8,0xac,0x6,0x9d,0x1, +0xb6,0xfc,0x7c,0xff,0x19,0x0,0x74,0xfd,0x3,0x0,0x0,0x3, +0x71,0x3,0xb6,0x6,0x3b,0x9,0xfb,0x7,0x1d,0x9,0xb6,0xb, +0xc5,0xb,0xf0,0xc,0x7d,0xd,0xe2,0x9,0x2b,0x8,0xf4,0x7, +0xf0,0x3,0x28,0x1,0x77,0xff,0x24,0xf9,0xbd,0xf4,0x3c,0xf5, +0xc8,0xf3,0x97,0xf2,0xbe,0xf3,0x8b,0xf1,0xe4,0xee,0x57,0xf0, +0xa3,0xf0,0xb3,0xee,0xd5,0xee,0xaf,0xef,0xb4,0xef,0xab,0xf0, +0x15,0xf2,0x9f,0xf2,0x21,0xf2,0xf8,0xef,0xbf,0xeb,0x16,0xe6, +0x49,0xe1,0xf8,0xdf,0xa3,0xe0,0x8d,0xdf,0x29,0xdd,0x11,0xdd, +0xc3,0xdf,0x83,0xe1,0x92,0xe0,0x8a,0xdf,0xb5,0xde,0x85,0xdc, +0x90,0xdb,0x9d,0xdc,0x33,0xdc,0xff,0xda,0x5,0xda,0x3a,0xd7, +0x97,0xd5,0xea,0xd6,0x48,0xd6,0xd5,0xd3,0x8d,0xd2,0xc4,0xd0, +0xc8,0xcf,0xe,0xd1,0x3b,0xd1,0xfa,0xd0,0xc2,0xd1,0xdf,0xd0, +0x4b,0xd0,0xf1,0xd2,0x24,0xd5,0x3d,0xd5,0x8e,0xd5,0xb0,0xd5, +0x59,0xd5,0x58,0xd6,0x66,0xd8,0x93,0xd9,0x1e,0xd9,0xda,0xd7, +0x1c,0xd7,0xd1,0xd6,0xa7,0xd6,0xa4,0xd7,0x7,0xd9,0x2b,0xd9, +0xb5,0xd9,0x50,0xdc,0x71,0xe0,0x37,0xe5,0x56,0xe8,0x1b,0xe9, +0x36,0xea,0x2d,0xec,0x9b,0xee,0xca,0xf1,0xf4,0xf2,0xec,0xf1, +0x88,0xf2,0x22,0xf4,0xbb,0xf4,0x71,0xf5,0x2a,0xf6,0xd3,0xf6, +0x15,0xf8,0x53,0xf9,0x8f,0xfb,0xdf,0xff,0xf5,0x3,0xb7,0x5, +0xee,0x5,0xba,0x6,0xc6,0x8,0xab,0xa,0x20,0xc,0x7f,0xd, +0x71,0xe,0x62,0x10,0x7c,0x13,0x22,0x15,0xaf,0x15,0x79,0x16, +0x16,0x16,0xc3,0x14,0xd,0x14,0xb1,0x13,0xf4,0x13,0xec,0x14, +0x18,0x15,0xc4,0x14,0xcb,0x15,0xe,0x18,0xc4,0x19,0xf0,0x19, +0x93,0x19,0xf4,0x19,0x1b,0x1a,0x6e,0x19,0xcc,0x19,0xfe,0x1a, +0xda,0x1a,0x24,0x1a,0xbf,0x19,0x51,0x19,0xf8,0x19,0xb4,0x1a, +0x5e,0x19,0xb9,0x17,0x4,0x17,0x2,0x17,0xa0,0x18,0xfb,0x19, +0x55,0x19,0x5e,0x19,0xec,0x1a,0x1f,0x1c,0xde,0x1c,0x67,0x1d, +0xe4,0x1c,0x1e,0x1b,0xfc,0x19,0x91,0x1a,0x27,0x1a,0x77,0x18, +0x9b,0x18,0x35,0x19,0x4c,0x18,0x1a,0x18,0x90,0x18,0x55,0x18, +0x7,0x19,0x3,0x1a,0xe4,0x18,0xc3,0x17,0xf9,0x18,0x82,0x1a, +0x43,0x1b,0x13,0x1c,0xd0,0x1b,0x44,0x1a,0x46,0x19,0xaf,0x18, +0x1,0x18,0x29,0x17,0xae,0x14,0xee,0x11,0x8,0x12,0xd0,0x12, +0x76,0x11,0x4b,0x10,0x56,0x10,0x84,0xf,0xcb,0xd,0x2f,0xc, +0x99,0xb,0xac,0xc,0xee,0xc,0x5f,0xb,0x96,0xb,0xd4,0xd, +0xc,0xf,0x6c,0xe,0xb,0xc,0x2,0xa,0x52,0xa,0x33,0xa, +0xce,0x7,0xbd,0x4,0xc0,0x2,0x7e,0x3,0x72,0x4,0x31,0x2, +0x69,0x0,0xf0,0x1,0xd0,0x3,0x67,0x4,0xf3,0x3,0xc4,0x3, +0x98,0x5,0xb9,0x7,0xf7,0x7,0x70,0x6,0x92,0x3,0x5a,0x1, +0xe1,0x0,0xfc,0xfe,0xcf,0xfa,0x68,0xf8,0x84,0xf8,0x73,0xf8, +0x3d,0xf9,0x6e,0xfb,0x37,0xfc,0x7,0xfd,0xba,0xff,0x8,0x1, +0x63,0x1,0xc4,0x2,0xd5,0x1,0x60,0xff,0x0,0xff,0xec,0xfd, +0x2a,0xfb,0xfc,0xf9,0x87,0xf9,0xe,0xf8,0xf6,0xf5,0xe3,0xf3, +0xaf,0xf4,0xd7,0xf8,0xcd,0xfa,0x91,0xf8,0xff,0xf6,0xe5,0xf8, +0x65,0xfb,0x79,0xfa,0xa3,0xf6,0x43,0xf4,0xad,0xf4,0x53,0xf5, +0xc8,0xf4,0xe0,0xf3,0x15,0xf4,0x18,0xf6,0x9b,0xf8,0xbb,0xf8, +0xf5,0xf5,0x18,0xf5,0x7e,0xf8,0xfe,0xf9,0xd2,0xf5,0x27,0xf1, +0xd8,0xf0,0xcc,0xf3,0xdc,0xf5,0x56,0xf5,0xe7,0xf4,0x2b,0xf6, +0x8a,0xf8,0x6c,0xfb,0xce,0xfc,0xb5,0xfc,0x29,0xfd,0xb2,0xfb, +0x32,0xf7,0xdd,0xf4,0x3c,0xf6,0xba,0xf6,0xd8,0xf3,0x79,0xef, +0x62,0xee,0x5e,0xf3,0xeb,0xf8,0x63,0xf9,0xcc,0xf9,0x49,0xfe, +0x63,0x1,0xf3,0x0,0x47,0x0,0x99,0xff,0xf4,0xfe,0xc2,0xfd, +0xe1,0xf9,0x70,0xf6,0xb5,0xf6,0x10,0xf9,0xba,0xfc,0xba,0xfe, +0xb0,0xfb,0x8d,0xf9,0x17,0xfd,0xc5,0x0,0x63,0x1,0x9e,0x0, +0x39,0xfe,0xbf,0xfc,0x66,0xff,0xe9,0x2,0x80,0x4,0xd4,0x4, +0xe,0x4,0xd1,0x4,0x23,0x8,0x9c,0xa,0x44,0xc,0x58,0xc, +0xe9,0x8,0x62,0x7,0xf0,0x7,0x74,0x4,0xa7,0x1,0xc4,0x2, +0x69,0x2,0xb,0x2,0x10,0x3,0x79,0x4,0xd6,0xa,0x15,0x12, +0xd0,0x12,0x5f,0x12,0xb9,0x12,0x6c,0x12,0x44,0x16,0x74,0x17, +0x47,0xe,0xe,0x7,0xb6,0x7,0xd,0x8,0xdb,0x8,0x52,0xa, +0x95,0x7,0xb,0x7,0x4f,0xc,0x36,0xf,0x16,0xf,0xc0,0xe, +0x9f,0xc,0x8d,0xd,0xf1,0x10,0x10,0xd,0xe2,0x8,0x73,0xd, +0x5f,0xe,0x89,0x8,0x7,0x8,0x9e,0x9,0x62,0x8,0x85,0xa, +0x3e,0xc,0xb1,0x7,0xc0,0x3,0x36,0x4,0xde,0x5,0x61,0x7, +0xc0,0x5,0xad,0xff,0x57,0xfc,0xa2,0xff,0x14,0x4,0x83,0x7, +0xe4,0x9,0xdc,0x7,0x22,0x6,0x7f,0xa,0x58,0xe,0xe1,0xd, +0x70,0xb,0x36,0x6,0xb4,0x2,0x5e,0x4,0x16,0x4,0x4,0x0, +0x60,0xfd,0x7c,0xfc,0xe4,0xfb,0x15,0xfc,0x9f,0xfc,0xee,0xfb, +0x8b,0xfb,0xb0,0xfd,0xdb,0xfc,0x6f,0xf7,0xf2,0xf7,0xda,0xfe, +0xb,0x0,0xf7,0xf9,0x44,0xf5,0x86,0xf6,0x9c,0xfa,0xf1,0xfb, +0xad,0xf9,0x70,0xf7,0xf7,0xf6,0x74,0xf5,0x24,0xf3,0x23,0xf5, +0xae,0xf7,0x67,0xf4,0x67,0xf0,0xf2,0xec,0x7a,0xe8,0x33,0xeb, +0x2b,0xf1,0x2,0xed,0xe5,0xe5,0x3a,0xe7,0x2e,0xec,0x91,0xef, +0x7,0xf0,0x1e,0xec,0x3,0xea,0x7b,0xed,0xaa,0xed,0x66,0xea, +0xca,0xed,0xae,0xf1,0x34,0xee,0xe0,0xec,0x6e,0xef,0x79,0xef, +0x9d,0xf0,0xe1,0xf0,0x2e,0xeb,0xd3,0xe7,0x1c,0xeb,0x86,0xee, +0x94,0xef,0x18,0xef,0x18,0xef,0x24,0xf2,0x51,0xf4,0x3d,0xf3, +0x74,0xf5,0xb4,0xfa,0x9,0xfa,0xe2,0xf4,0x8f,0xf2,0xb9,0xf2, +0xd1,0xf3,0x94,0xf4,0x79,0xf2,0xde,0xef,0x3c,0xef,0x12,0xf0, +0x7a,0xf2,0x81,0xf3,0xe7,0xf1,0x29,0xf1,0x5c,0xf1,0x9f,0xf3, +0x5f,0xf9,0x7e,0xfb,0x9b,0xf7,0xee,0xf5,0x1f,0xf8,0xd,0xf9, +0xce,0xf8,0x81,0xf8,0xa9,0xf5,0x81,0xf2,0x54,0xf4,0x3e,0xf7, +0xd2,0xf5,0x69,0xf4,0x4c,0xf6,0xf5,0xf7,0x66,0xf7,0x9d,0xf6, +0x51,0xf8,0xf5,0xfa,0xc6,0xfa,0x6d,0xf9,0xd1,0xf8,0xc7,0xf7, +0x2d,0xf9,0x8f,0xfd,0x3a,0xfe,0x24,0xfa,0xc9,0xf7,0x61,0xf9, +0x8f,0xfb,0x87,0xfb,0xa5,0xf9,0x2c,0xf8,0x76,0xf8,0xf9,0xf9, +0xa8,0xfb,0xd,0xfd,0x12,0xfe,0xd2,0xfe,0x14,0x0,0x1f,0x2, +0xa2,0x3,0x2,0x4,0xeb,0x3,0xb3,0x2,0xbe,0xff,0xbe,0xfd, +0x2c,0xff,0xc8,0x0,0x99,0xfe,0xdb,0xfb,0xb2,0xfc,0x54,0xfe, +0xe2,0xfd,0x52,0xfd,0x1f,0xfe,0x2a,0xff,0x24,0xff,0x55,0xfe, +0xc3,0xfe,0x51,0x1,0x83,0x3,0xd5,0x2,0x8f,0x1,0x40,0x3, +0x39,0x6,0x6e,0x7,0x90,0x6,0x9c,0x3,0x46,0x0,0xde,0xfe, +0x4b,0xfe,0x7d,0xfd,0xa3,0xfc,0xda,0xfb,0x18,0xfd,0x29,0x0, +0x3f,0x2,0x9a,0x4,0x7c,0x8,0x8a,0xa,0xcc,0x9,0x26,0x9, +0x16,0x9,0x36,0x8,0xda,0x6,0x7b,0x5,0x1,0x4,0xf5,0x2, +0xc7,0x1,0xfb,0x0,0xc1,0x2,0x76,0x4,0x81,0x3,0x9d,0x3, +0xa4,0x5,0xe9,0x7,0xd9,0xb,0x8b,0xe,0x65,0xd,0xba,0xd, +0x63,0x10,0x7a,0x10,0xaf,0xe,0x3b,0xd,0x52,0xb,0x23,0x9, +0xf1,0x6,0x5d,0x4,0xc9,0x2,0x9e,0x2,0x62,0x1,0x29,0xff, +0x3,0xff,0x26,0x0,0x5e,0x0,0xed,0x0,0xf0,0x1,0x84,0x2, +0x2d,0x4,0xcf,0x6,0x99,0x8,0xfb,0x9,0x16,0xc,0x91,0xe, +0x2c,0x10,0xa9,0x10,0xf5,0x10,0xf1,0x10,0x2d,0x10,0x5a,0xe, +0xff,0xa,0xbd,0x7,0x95,0x5,0xf4,0x2,0x3,0x0,0x82,0xfd, +0xbb,0xfb,0x58,0xfc,0xf1,0xfd,0xf0,0xfd,0xf7,0xfe,0x5c,0x2, +0x6e,0x4,0xbd,0x4,0xb4,0x6,0x30,0xa,0x65,0xc,0xdb,0xd, +0xf7,0xf,0x40,0x11,0xa7,0x11,0x1e,0x12,0xb9,0x10,0x69,0xd, +0x8a,0xa,0x90,0x7,0x54,0x4,0xce,0x2,0xd2,0x1,0xa3,0xff, +0x90,0xfe,0xc9,0xff,0xc0,0x0,0x3e,0x1,0xe7,0x2,0x15,0x4, +0xf0,0x3,0xd0,0x4,0xab,0x6,0x38,0x8,0xc7,0x9,0x7b,0xa, +0xdb,0x9,0x39,0x9,0x33,0x8,0xf6,0x5,0x51,0x3,0x78,0x0, +0xc8,0xfd,0xa1,0xfc,0x2a,0xfc,0xb5,0xfa,0xee,0xf9,0x1,0xfb, +0x5a,0xfb,0xc1,0xfa,0x7d,0xfb,0x68,0xfc,0x9a,0xfc,0xcc,0xfd, +0x14,0xff,0x46,0xff,0xe1,0xff,0x6f,0x0,0xd8,0xff,0x1e,0xff, +0xf1,0xfd,0x24,0xfc,0x2d,0xfb,0x43,0xfa,0xd1,0xf8,0x7b,0xf8, +0xf,0xf8,0x6a,0xf6,0xd9,0xf6,0xde,0xf9,0xd8,0xfb,0xd9,0xfc, +0xd2,0xfe,0xbd,0x0,0xb8,0x1,0x2a,0x2,0xc7,0x1,0xd4,0x0, +0x38,0x0,0x64,0xff,0xb2,0xfd,0xb2,0xfc,0xaa,0xfd,0x30,0xff, +0xf3,0xff,0x9c,0x0,0xe2,0x1,0xc6,0x3,0x39,0x5,0xa3,0x4, +0xd5,0x2,0x42,0x1,0xd1,0xfe,0xf2,0xfb,0x9b,0xfa,0x65,0xf9, +0x67,0xf8,0xf5,0xfa,0xe3,0xff,0x5f,0x4,0x3f,0x9,0x94,0xd, +0x2e,0xf,0xf5,0xe,0x9a,0xd,0x4e,0xb,0x36,0x9,0x92,0x6, +0xff,0x2,0x9d,0x0,0x64,0xff,0x20,0xfe,0x18,0xfe,0x44,0xff, +0x20,0x0,0x3c,0x1,0xc2,0x2,0xf8,0x3,0x95,0x4,0xf7,0x2, +0x3d,0xff,0xd,0xfc,0x83,0xf9,0x79,0xf7,0x74,0xf7,0xe9,0xf8, +0xc7,0xfa,0x96,0xfd,0x89,0x1,0x4f,0x5,0xfd,0x6,0xf,0x7, +0x3e,0x7,0xe0,0x6,0x32,0x5,0xfc,0x2,0x76,0x0,0x7f,0xfd, +0x8d,0xfa,0xac,0xf8,0xb4,0xf8,0x6a,0xfa,0xb3,0xfc,0xb2,0xfe, +0xbe,0x0,0x5b,0x2,0x63,0x2,0xd8,0x1,0xf6,0x0,0x81,0xff, +0xd9,0xff,0x8a,0x1,0x6a,0x2,0xae,0x3,0x17,0x5,0xd2,0x5, +0xfd,0x6,0x4a,0x7,0xfc,0x5,0x5e,0x5,0x9d,0x5,0xf7,0x4, +0x6e,0x3,0xc5,0x1,0x1a,0xff,0xdc,0xfb,0x4f,0xfa,0x19,0xf9, +0x93,0xf7,0x1e,0xf9,0xbd,0xfc,0xbf,0xff,0x66,0x3,0xd8,0x6, +0x2,0x8,0x97,0x7,0x3e,0x6,0x15,0x4,0x91,0x1,0xde,0xfe, +0x11,0xfc,0x59,0xfa,0xbf,0xfa,0x60,0xfb,0x9d,0xfb,0x2a,0xfd, +0x9e,0xfe,0x5d,0xff,0x5e,0x0,0x6a,0xff,0xe1,0xfc,0x41,0xfb, +0x0,0xf9,0xa8,0xf5,0x50,0xf3,0x80,0xf2,0x8b,0xf2,0xe2,0xf2, +0xff,0xf3,0xbf,0xf5,0x3c,0xf7,0x49,0xf9,0xd9,0xfb,0x55,0xfd, +0x98,0xfd,0x9b,0xfd,0x3,0xfe,0x1e,0xfd,0xb4,0xf9,0x7e,0xf6, +0x78,0xf4,0x86,0xf2,0xbd,0xf1,0x86,0xf2,0xa5,0xf4,0x29,0xf8, +0x13,0xfc,0xb7,0xff,0xe5,0x1,0xf,0x2,0x72,0x1,0x1f,0xff, +0x72,0xfa,0x91,0xf5,0x54,0xf1,0xc3,0xed,0xe6,0xeb,0xb5,0xec, +0xbb,0xef,0x75,0xf3,0x4a,0xf8,0x79,0xfe,0x27,0x4,0x21,0x8, +0xdf,0x8,0xc0,0x6,0xba,0x4,0xc1,0x1,0xd6,0xfc,0x34,0xf9, +0x92,0xf7,0x4,0xf7,0x55,0xf8,0x8e,0xfb,0x26,0xff,0x44,0x1, +0x4b,0x2,0x6,0x3,0xeb,0x1,0x28,0xff,0x2f,0xfc,0xe3,0xf8, +0x0,0xf6,0x57,0xf4,0xd8,0xf3,0x9c,0xf4,0x9c,0xf6,0xeb,0xf9, +0x35,0xfd,0x8b,0xff,0x56,0x2,0x93,0x4,0x6f,0x4,0x3c,0x3, +0x7c,0x1,0xf0,0xfe,0x26,0xfc,0x50,0xf9,0x52,0xf7,0x7c,0xf6, +0x22,0xf6,0x5f,0xf6,0xfa,0xf6,0x2c,0xf8,0xc4,0xfa,0x78,0xfd, +0xad,0xfe,0x7d,0xff,0x38,0x1,0xcd,0x1,0xd6,0xff,0x79,0xfe, +0x25,0xfe,0xeb,0xfb,0xff,0xf9,0x9f,0xfa,0xef,0xfa,0xc8,0xfa, +0x43,0xfc,0xcd,0xfd,0xf0,0xfd,0xc1,0xfd,0x7f,0xfd,0xf7,0xfc, +0xd3,0xfc,0x69,0xfc,0x23,0xfb,0xb7,0xfa,0x91,0xfb,0x42,0xfc, +0xda,0xfc,0x76,0xfd,0xdf,0xfd,0x47,0xff,0x8,0x1,0xd3,0x0, +0x21,0x0,0xf2,0x0,0xe5,0x0,0xae,0xff,0x11,0x0,0x78,0x0, +0xda,0xff,0xad,0x0,0x19,0x1,0xc4,0xff,0xf6,0xff,0xa0,0x0, +0xe7,0xff,0x2e,0x0,0x2c,0x0,0xdd,0xfd,0x3b,0xfc,0x52,0xfc, +0x36,0xfc,0xb5,0xfb,0x7d,0xfb,0x2b,0xfc,0xcd,0xfd,0x7b,0xff, +0xf8,0x0,0xa6,0x2,0x70,0x4,0x1b,0x6,0xde,0x7,0xa6,0x9, +0x2b,0xa,0x5a,0x9,0xa9,0x8,0x76,0x7,0x44,0x5,0x71,0x3, +0x65,0x1,0x2f,0xff,0xa6,0xfe,0x7c,0xfe,0x68,0xfd,0x13,0xfd, +0xe9,0xfd,0x8b,0xfe,0x80,0xfd,0x87,0xfb,0x46,0xfb,0xdf,0xfb, +0x80,0xfc,0x49,0xff,0xda,0x1,0x6d,0x2,0x6,0x5,0xae,0x8, +0x6,0xa,0x2c,0xb,0x42,0xc,0xdd,0xb,0xaa,0xb,0x58,0xb, +0xcc,0x9,0xea,0x7,0xc3,0x5,0x14,0x4,0xa9,0x3,0x3e,0x3, +0xf0,0x2,0xad,0x3,0xff,0x3,0xf5,0x2,0x5,0x2,0xc0,0x1, +0x29,0x1,0xeb,0x0,0xb6,0x1,0x0,0x2,0x8d,0x2,0xc4,0x4, +0xd,0x6,0x2b,0x6,0x1d,0x7,0xae,0x6,0x6b,0x4,0x78,0x3, +0x18,0x4,0x1d,0x5,0xf1,0x5,0x5b,0x6,0xbe,0x6,0x90,0x6, +0xba,0x6,0x84,0x7,0x59,0x5,0xeb,0x1,0x9d,0x1,0x1d,0x1, +0x3b,0xff,0x46,0xff,0x62,0xff,0xa3,0xfe,0xc9,0xfe,0x22,0xff, +0x5b,0x0,0xd5,0x1,0x37,0x1,0x8e,0x0,0x5d,0x0,0xfb,0xfe, +0x4b,0xfe,0x1e,0xfe,0x39,0xfd,0x29,0xfd,0xdd,0xfc,0x5,0xfc, +0xa,0xfd,0x64,0xfe,0x41,0xfe,0x79,0xfd,0xfe,0xfb,0x7,0xfb, +0xb3,0xfb,0x58,0xfc,0x42,0xfc,0x89,0xfb,0x3e,0xfa,0xd3,0xf9, +0x49,0xfa,0x84,0xfa,0xde,0xfa,0x32,0xfb,0x40,0xfb,0x2f,0xfc, +0x6,0xfe,0xd,0xff,0xd8,0xfe,0xe3,0xfe,0x5a,0xff,0x1a,0xff, +0x33,0xff,0x57,0x0,0x78,0x0,0x79,0xff,0xbf,0xfe,0xc4,0xfd, +0x93,0xfc,0xe8,0xfb,0x6e,0xfb,0x9,0xfb,0xaa,0xfa,0xc3,0xfa, +0x4d,0xfc,0x24,0xfe,0xd3,0xfe,0x9d,0xfe,0xaf,0xfd,0x43,0xfd, +0x66,0xfe,0x7e,0xff,0x1f,0x0,0x11,0x1,0x42,0x1,0xf9,0x0, +0x7a,0x1,0x1,0x2,0x37,0x2,0x4c,0x2,0xf2,0x1,0xe,0x2, +0x15,0x3,0x70,0x4,0x1,0x6,0x69,0x6,0xca,0x4,0x97,0x3, +0xe6,0x3,0xbd,0x3,0x71,0x3,0xa1,0x4,0xea,0x5,0xf3,0x6, +0xab,0x9,0x3a,0xc,0x98,0xc,0x6d,0xd,0x71,0xe,0xfc,0xc, +0xb1,0xb,0x72,0xc,0x2,0xd,0x2f,0xd,0x75,0xd,0xb6,0xd, +0x13,0xf,0x3d,0x11,0x1e,0x13,0x20,0x14,0x18,0x13,0x8d,0x11, +0x87,0x11,0x27,0x11,0x68,0x10,0xda,0x10,0x9f,0x10,0x65,0x10, +0xcd,0x12,0x4,0x15,0x31,0x15,0x8b,0x15,0x19,0x15,0xc9,0x12, +0x89,0x10,0xbf,0xe,0x3d,0xe,0x52,0xf,0xa1,0xe,0xfb,0xc, +0x1b,0xe,0x3f,0xf,0x71,0xe,0xc4,0xe,0x55,0xf,0xa,0xe, +0x4f,0xd,0x1,0xe,0x46,0xe,0xef,0xe,0x73,0x10,0xd4,0xf, +0x51,0xe,0x1d,0x10,0x63,0x11,0xbb,0xe,0xd3,0xb,0x96,0x6, +0xc9,0xfe,0x5e,0xfc,0x2f,0xfb,0x76,0xf5,0x7d,0xf4,0x10,0xf8, +0xf4,0xf7,0xf9,0xf9,0xd6,0xff,0x32,0x1,0xe6,0xff,0xbf,0x0, +0x8b,0x1,0x44,0x2,0xc4,0x4,0x56,0x7,0x81,0x7,0xa3,0x5, +0x38,0x4,0xae,0x3,0x2e,0x1,0x28,0xfc,0xd3,0xf8,0xf2,0xf7, +0xcc,0xf4,0x23,0xf1,0xad,0xf1,0xd3,0xf1,0x2c,0xef,0x76,0xee, +0x36,0xee,0x86,0xec,0x7b,0xed,0x5a,0xf0,0x83,0xf0,0xeb,0xed, +0xc0,0xec,0x91,0xee,0xbb,0xee,0x26,0xed,0x53,0xee,0x3a,0xee, +0xee,0xea,0x3f,0xea,0xfb,0xe9,0xf4,0xe6,0x84,0xe4,0xbe,0xe1, +0xea,0xde,0x69,0xdf,0x22,0xe0,0xf2,0xdf,0x72,0xe1,0xba,0xe1, +0x35,0xe0,0xc6,0xe0,0xcb,0xe1,0xd,0xe1,0x8b,0xe1,0x39,0xe3, +0xa3,0xe2,0x62,0xe1,0xfa,0xe1,0x7,0xe2,0xc1,0xe0,0x79,0xdf, +0xc4,0xdd,0x54,0xdd,0xb3,0xde,0x64,0xdf,0xb1,0xe0,0x94,0xe2, +0x2,0xe2,0xa6,0xe1,0x53,0xe3,0x37,0xe4,0xa6,0xe4,0xf6,0xe4, +0x6e,0xe4,0x7,0xe5,0xa7,0xe6,0x99,0xe7,0x4,0xe8,0x32,0xe8, +0xa5,0xe8,0x47,0xe9,0x91,0xe9,0xc2,0xe9,0x4f,0xe9,0xd7,0xe8, +0xfc,0xe8,0x1e,0xe8,0xd8,0xe7,0xbf,0xe9,0x42,0xeb,0x78,0xec, +0xee,0xed,0xce,0xee,0xf3,0xf0,0x2b,0xf3,0x20,0xf3,0x78,0xf3, +0x9c,0xf4,0x25,0xf5,0x2b,0xf6,0x26,0xf7,0xbc,0xf7,0x6a,0xf8, +0x3e,0xf8,0x39,0xf8,0x28,0xf9,0x58,0xf9,0xd,0xf9,0x74,0xf9, +0x57,0xfa,0xb1,0xfb,0x4b,0xfd,0x4c,0xfe,0x48,0xfe,0x13,0xfe, +0x83,0xfe,0x3d,0xff,0xc1,0xff,0x9f,0xff,0xbb,0xff,0xc0,0x1, +0x88,0x3,0x78,0x3,0x2d,0x4,0x11,0x5,0x90,0x4,0xb2,0x4, +0xb,0x5,0x4f,0x4,0xc5,0x3,0x61,0x3,0x39,0x3,0xea,0x3, +0x33,0x4,0x42,0x4,0x3f,0x5,0x3f,0x6,0xbc,0x6,0x43,0x7, +0x7b,0x7,0x24,0x7,0xfd,0x6,0x15,0x7,0x90,0x6,0xb0,0x5, +0x48,0x5,0x27,0x5,0xbd,0x4,0xb3,0x3,0xcc,0x2,0x25,0x3, +0xab,0x3,0x54,0x3,0x24,0x3,0x75,0x3,0xdb,0x3,0x2a,0x4, +0x15,0x4,0xb9,0x3,0x27,0x3,0x74,0x2,0x29,0x2,0xe0,0x1, +0xc9,0x1,0x14,0x3,0xb4,0x4,0x6e,0x5,0x27,0x6,0xe1,0x6, +0xea,0x6,0x9c,0x6,0xe0,0x5,0xe4,0x4,0x7b,0x4,0xde,0x3, +0xad,0x2,0x9d,0x2,0x6c,0x3,0x87,0x3,0xe0,0x3,0xe3,0x4, +0x7c,0x5,0x36,0x6,0xc5,0x6,0xf7,0x5,0x43,0x5,0x51,0x5, +0x9a,0x4,0xc0,0x3,0x8d,0x3,0xd9,0x2,0x62,0x2,0xa,0x3, +0xfa,0x2,0x74,0x2,0x59,0x3,0x22,0x4,0xe7,0x3,0x2e,0x4, +0x78,0x4,0x88,0x4,0x20,0x5,0xc,0x5,0x91,0x4,0xb3,0x4, +0x70,0x4,0x35,0x4,0x6b,0x4,0x98,0x4,0xb,0x6,0xdd,0x7, +0x52,0x8,0xea,0x8,0xaa,0x9,0xae,0x9,0x3,0xa,0x61,0xa, +0xd9,0x9,0x90,0x8,0xd5,0x7,0x19,0x9,0x88,0xa,0x8e,0xa, +0x16,0xb,0x90,0xc,0xa9,0xd,0xd6,0xd,0x8a,0xd,0x40,0xe, +0x69,0xf,0x9a,0xf,0xe2,0xf,0x70,0x10,0x9e,0x10,0x16,0x11, +0x76,0x11,0x76,0x11,0xed,0x11,0xab,0x12,0x98,0x13,0xe0,0x14, +0xaa,0x15,0x25,0x16,0x6d,0x17,0xce,0x18,0x6f,0x19,0xdc,0x19, +0x13,0x1a,0xba,0x1a,0xef,0x1b,0x13,0x1b,0x88,0x19,0x0,0x1b, +0x89,0x1c,0xeb,0x1b,0x66,0x1b,0x14,0x1b,0x9f,0x1c,0x82,0x20, +0xd7,0x20,0xa7,0x1d,0xc0,0x1d,0xdb,0x20,0xc6,0x21,0x28,0x1f, +0xd3,0x1b,0xd7,0x1b,0x25,0x1f,0x32,0x20,0xf7,0x1c,0x1f,0x1b, +0xfd,0x1d,0xac,0x21,0x41,0x22,0x5d,0x1f,0x49,0x1c,0xb8,0x1d, +0x2a,0x21,0x36,0x1f,0x5c,0x18,0x54,0x14,0x31,0x17,0xc1,0x1b, +0xcd,0x18,0x4,0x10,0x64,0xe,0x59,0x16,0xc0,0x1b,0x77,0x19, +0xe1,0x15,0xc1,0x16,0x64,0x1c,0x9a,0x1f,0x35,0x1b,0x14,0x18, +0x4c,0x1c,0xe2,0x1f,0x51,0x1e,0x86,0x19,0x2f,0x14,0x5d,0x14, +0x2e,0x18,0xa0,0x15,0xe0,0xe,0xea,0xb,0x4a,0xb,0x71,0xb, +0x36,0xb,0x9b,0x5,0x17,0x0,0xfa,0x2,0x93,0x6,0x7a,0x5, +0x9f,0x5,0xe2,0x6,0x19,0x9,0xf9,0xd,0x12,0xe,0x69,0xa, +0xa8,0xe,0x3,0x16,0x9e,0x12,0xf1,0x6,0x7,0x1,0x3a,0x6, +0x34,0xb,0x5e,0x3,0x3a,0xf6,0x16,0xf5,0x6f,0xfc,0xf4,0xfb, +0x83,0xf5,0x8b,0xf1,0x1e,0xef,0x1e,0xf1,0xe4,0xf4,0xd4,0xef, +0x72,0xe9,0x6d,0xee,0xb9,0xf8,0x3e,0xfc,0x64,0xf6,0x85,0xf3, +0x3e,0xfe,0x28,0xa,0x9b,0x8,0x5a,0xfe,0x6c,0xf7,0xf,0xfa, +0xa8,0x1,0xc8,0x1,0xa6,0xf4,0x1f,0xe6,0xb8,0xe5,0xf7,0xeb, +0xbd,0xe8,0xa8,0xe0,0xf7,0xdc,0x77,0xdc,0xea,0xdd,0x99,0xdf, +0xfa,0xdf,0xa3,0xe1,0x9f,0xe5,0xf0,0xe8,0x6b,0xe8,0xc8,0xe5, +0x48,0xe6,0x40,0xec,0x49,0xf2,0x6d,0xee,0x89,0xe5,0x65,0xe6, +0x85,0xec,0xa0,0xef,0x21,0xf3,0xa2,0xf1,0x78,0xe9,0x71,0xe5, +0xc,0xe4,0x93,0xe1,0x5b,0xe3,0x29,0xe2,0xa,0xd5,0xf5,0xcc, +0xea,0xd8,0xdd,0xe4,0xce,0xdf,0xf8,0xd7,0x99,0xd9,0xd5,0xe3, +0xe8,0xeb,0x6a,0xe4,0x80,0xdf,0x0,0xec,0xe,0xee,0xbc,0xe0, +0xb1,0xdb,0x5b,0xdd,0x78,0xe2,0x78,0xe8,0x9f,0xe1,0xd8,0xd8, +0x45,0xdd,0x3b,0xe5,0x87,0xea,0xa9,0xec,0x5f,0xea,0xba,0xe8, +0x14,0xea,0xde,0xef,0xa4,0xf7,0x4f,0xf6,0xe7,0xee,0x62,0xed, +0x5e,0xef,0xaa,0xf0,0x86,0xf1,0x4b,0xef,0x34,0xec,0xc7,0xec, +0xc9,0xee,0xa4,0xee,0x8f,0xec,0xcc,0xeb,0xf2,0xec,0xba,0xea, +0x44,0xe4,0x40,0xdf,0x9b,0xdf,0x22,0xe8,0x36,0xf2,0x45,0xee, +0x32,0xe3,0x5b,0xe6,0x8d,0xf2,0x20,0xf7,0x17,0xf4,0xd4,0xef, +0x3b,0xef,0xf0,0xf0,0xf5,0xf0,0x61,0xf3,0xc5,0xf3,0x4b,0xeb, +0x69,0xe7,0x3b,0xeb,0xf4,0xeb,0x91,0xf1,0x74,0xfa,0xd3,0xf5, +0xc0,0xee,0x7e,0xf2,0x28,0xf5,0xc2,0xf3,0xd,0xf4,0x28,0xf4, +0xbc,0xf6,0xf3,0xf9,0xa,0xf7,0xb2,0xf7,0x2d,0x0,0x97,0x1, +0x6a,0xfb,0x8d,0xf8,0xe5,0xf8,0x32,0xfc,0xab,0xff,0x75,0xfb, +0x61,0xf4,0x39,0xf1,0x8a,0xf0,0x6f,0xf4,0xe8,0xfa,0x44,0xfd, +0x39,0xfd,0xee,0xfd,0xe9,0x0,0x54,0x6,0xce,0x7,0xcf,0x3, +0x75,0xff,0xad,0xfb,0x43,0xfb,0x2b,0x0,0x44,0x2,0xab,0xfd, +0x54,0xfb,0xfc,0xff,0x33,0x2,0xfb,0xfd,0xa6,0x0,0xcf,0xb, +0x8,0xd,0xb9,0x2,0x57,0xfc,0x60,0xfc,0x27,0xfd,0x55,0xfb, +0x9a,0xf5,0x3a,0xf1,0x1e,0xf1,0x9a,0xf3,0x29,0xfc,0x1f,0x5, +0x27,0x3,0x17,0x0,0x47,0x6,0xec,0xb,0xbd,0xc,0xb8,0xb, +0x56,0x6,0x3b,0x0,0x99,0xfe,0xdf,0xfd,0xe5,0xfb,0xdf,0xfa, +0xc4,0xfd,0x72,0x4,0xab,0x8,0x6b,0x9,0xf3,0xb,0xfe,0xe, +0x2f,0xf,0x2e,0xc,0xd5,0x6,0x38,0x4,0x81,0x5,0xa1,0x4, +0x75,0x2,0x3,0x3,0xae,0x2,0x18,0x0,0x42,0x0,0x0,0x5, +0xb3,0xa,0xe1,0xc,0x6e,0xb,0xbc,0xa,0x56,0xc,0x54,0xd, +0x2a,0xc,0xfc,0x8,0xcb,0x3,0xd4,0xff,0xba,0x1,0x4b,0x5, +0x4c,0x2,0x9b,0xfe,0x74,0x4,0x6,0xc,0xf8,0xa,0xe1,0x7, +0x73,0x9,0x4e,0xb,0xea,0x8,0xac,0x2,0x4f,0xfd,0x22,0xfd, +0xc9,0xff,0xdb,0x1,0x71,0x3,0x5b,0x5,0x81,0x9,0xcc,0xe, +0xce,0xf,0xf5,0xc,0xb5,0xa,0xf2,0x7,0xcd,0x3,0x1,0x2, +0x5e,0x3,0x0,0x4,0x3a,0x2,0xe5,0x1,0x57,0x5,0x8a,0x8, +0x4a,0x9,0xe1,0x9,0x24,0xa,0x5b,0x9,0xae,0x8,0xf5,0x6, +0xcc,0x3,0x41,0x2,0xd7,0x2,0xdb,0x2,0xf2,0x0,0xcf,0xfe, +0x78,0xff,0xc7,0x1,0xc4,0x1,0x72,0x0,0x8e,0x0,0xbe,0x1, +0x1a,0x4,0xec,0x5,0x79,0x4,0xbd,0x2,0x77,0x3,0xd3,0x4, +0x48,0x6,0x56,0x7,0xd4,0x7,0xfd,0x9,0x39,0xc,0x9a,0xc, +0x8e,0xd,0x21,0xd,0x62,0x8,0xf2,0x3,0x8a,0x2,0xd2,0x0, +0x12,0xfe,0xbc,0xfc,0x28,0xfe,0x3d,0x1,0xed,0x2,0xd5,0x2, +0x90,0x4,0xf8,0x8,0xd1,0xb,0xcb,0xa,0x24,0x9,0x51,0x9, +0xd4,0x8,0xc2,0x6,0xfd,0x5,0xb7,0x5,0xb,0x3,0x6a,0x0, +0x92,0x0,0xcd,0x0,0x94,0xfe,0x45,0xfc,0x21,0xfd,0x35,0x0, +0xa0,0x3,0x43,0x8,0xa3,0xc,0xe3,0xd,0xbc,0xd,0xb8,0xd, +0x74,0xc,0x96,0x9,0x5a,0x5,0x6c,0x1,0x90,0x0,0xb8,0x1, +0x25,0x2,0xc4,0x1,0x8d,0x1,0x1,0x1,0x90,0xff,0x11,0xff, +0xd7,0xff,0x0,0xff,0x87,0xfd,0xe8,0xfe,0x33,0x2,0xbc,0x3, +0x18,0x2,0x84,0x1,0x48,0x5,0x2,0x8,0x1b,0x7,0x47,0x7, +0xa4,0x8,0x67,0x9,0x58,0xa,0x7a,0x9,0x2f,0x6,0xfe,0x3, +0xa7,0x3,0x25,0x2,0x8e,0xfe,0x83,0xfc,0xd8,0xfd,0x4e,0xff, +0x9e,0xff,0xf2,0x0,0x1d,0x4,0x8d,0x7,0xe5,0x8,0x71,0x8, +0xd6,0x7,0x92,0x6,0xf4,0x4,0x4b,0x3,0x9a,0x0,0xec,0xfe, +0x96,0xff,0x50,0x0,0xf9,0x0,0x66,0x2,0x37,0x3,0x20,0x3, +0x4f,0x3,0xef,0x2,0x9b,0x0,0xdc,0xfe,0x18,0xff,0xd5,0xfd, +0xef,0xfb,0xcf,0xfc,0x85,0xfd,0x74,0xfc,0x3e,0xfc,0x1f,0xfd, +0xba,0xfe,0x24,0x0,0x11,0x0,0xdb,0x0,0x46,0x3,0x57,0x4, +0x99,0x3,0x2e,0x2,0xba,0xff,0x94,0xfc,0x9e,0xfa,0xe5,0xf9, +0xff,0xf7,0x77,0xf6,0x86,0xf8,0xf9,0xfa,0x12,0xfc,0xf0,0xfe, +0xae,0x1,0xec,0x1,0x8e,0x1,0xba,0x0,0x13,0x0,0x8,0x0, +0x50,0xfe,0xf1,0xfc,0x7b,0xfe,0xfb,0xff,0xfd,0xff,0x24,0x0, +0xab,0x1,0x92,0x3,0x82,0x2,0x8c,0xff,0x1,0xff,0xa2,0xff, +0x88,0xfe,0x86,0xfc,0x4a,0xfb,0x2a,0xfb,0x3f,0xfb,0xf0,0xfb, +0xab,0xfe,0x68,0x1,0x91,0x1,0xb4,0x1,0xa7,0x4,0x4f,0x7, +0x78,0x6,0x57,0x4,0xc7,0x2,0x79,0x1,0x93,0x0,0xde,0xfe, +0x23,0xfc,0x52,0xfa,0x15,0xfa,0x1d,0xfb,0x51,0xfb,0xd3,0xfa, +0xe0,0xfd,0x7e,0x1,0xdd,0x0,0xd4,0x0,0x98,0x2,0x50,0x1, +0x6f,0xff,0x5e,0x0,0xf7,0x0,0xe3,0xff,0x7a,0x0,0x3b,0x3, +0xdf,0x5,0xdb,0x8,0xa7,0xa,0x97,0x8,0xaf,0x6,0x69,0x6, +0x23,0x3,0xec,0xfd,0x6,0xfa,0xaf,0xf6,0xfa,0xf3,0xb6,0xf2, +0x3b,0xf3,0xd4,0xf5,0xe8,0xf8,0xca,0xfa,0xbf,0xfc,0x6a,0x0, +0xdf,0x3,0xbc,0x5,0xc1,0x7,0xd9,0x8,0x4,0x8,0x5d,0x7, +0xe4,0x5,0xd6,0x3,0x37,0x3,0xb2,0x0,0x9c,0xfc,0x37,0xfc, +0xaf,0xfd,0x5b,0xfd,0x5a,0xfd,0x16,0xfe,0x5f,0xfb,0x7c,0xf6, +0xec,0xf5,0xf2,0xf6,0x7f,0xf4,0x9d,0xf3,0xbb,0xf5,0x5d,0xf7, +0x7a,0xfa,0x63,0xfe,0xe,0x1,0x4,0x4,0x4f,0x5,0xee,0x4, +0x67,0x6,0xb3,0x7,0x9a,0x6,0x3d,0x4,0x2e,0x0,0x51,0xfb, +0xed,0xf7,0x7b,0xf5,0x25,0xf4,0x67,0xf5,0xa9,0xf6,0xb4,0xf6, +0xcf,0xf9,0x9e,0xfe,0x37,0x0,0xb1,0x0,0x29,0x1,0xd2,0xff, +0x33,0xff,0x96,0x0,0xed,0x1,0x65,0x2,0xf8,0x2,0x3d,0x4, +0xb4,0x3,0x34,0x2,0x99,0x3,0x47,0x3,0x5e,0xfe,0x21,0xfb, +0x7c,0xf9,0x78,0xf6,0x75,0xf5,0xdf,0xf5,0x69,0xf3,0x79,0xf0, +0x72,0xf1,0xbb,0xf3,0xf2,0xf3,0x2f,0xf5,0x59,0xf8,0x2f,0xfa, +0xd5,0xfb,0xc0,0xfe,0x62,0x1,0xb7,0x3,0xd,0x5,0x9b,0x3, +0x2,0x0,0x96,0xfc,0xe6,0xfa,0x53,0xf9,0x4d,0xf6,0xcd,0xf4, +0xda,0xf6,0xa9,0xf9,0x85,0xfb,0xb0,0xfd,0xeb,0xfe,0x28,0xfd, +0xd6,0xfa,0x40,0xf9,0xd5,0xf6,0x91,0xf5,0x17,0xf6,0xfc,0xf5, +0x4b,0xf7,0x7a,0xfb,0x86,0xff,0x4b,0x2,0x83,0x3,0x14,0x2, +0x14,0xff,0x43,0xfc,0x21,0xfa,0xc6,0xf8,0xfe,0xf7,0x9a,0xf7, +0x28,0xf8,0x9,0xfa,0x5e,0xfc,0xce,0xfe,0x8e,0x1,0xcc,0x3, +0xe2,0x5,0x2b,0x8,0x62,0x8,0x95,0x6,0x85,0x4,0xf4,0xff, +0xaa,0xf8,0xd5,0xf3,0xee,0xf2,0x11,0xf3,0x84,0xf4,0xac,0xf8, +0xf1,0xfd,0x90,0x3,0x92,0x9,0x22,0xd,0x36,0xd,0x74,0xc, +0x16,0xa,0xf5,0x4,0x90,0x1,0xf8,0x0,0x3a,0xff,0x24,0xfe, +0x9c,0xff,0x5,0x0,0xef,0x0,0x6d,0x4,0x27,0x5,0xc0,0x3, +0x7b,0x4,0xc3,0x2,0xe0,0xfe,0x26,0xff,0x36,0xff,0x9a,0xfc, +0x26,0xfe,0x15,0x1,0xf6,0x0,0xd4,0x3,0x38,0x8,0xbd,0x7, +0x18,0x7,0x7e,0x8,0x1e,0x7,0xe6,0x4,0x5c,0x4,0xf2,0x2, +0xbf,0x0,0x81,0xfe,0xec,0xfb,0x92,0xfa,0x61,0xfa,0xb1,0xfa, +0x95,0xfc,0xd1,0xfe,0x1,0x1,0x1f,0x5,0xd7,0x8,0xc4,0x9, +0xb8,0x9,0x65,0x8,0x55,0x6,0x3a,0x6,0x62,0x5,0x66,0x3, +0xfc,0x4,0x9c,0x6,0x1b,0x4,0x9b,0x2,0xce,0x3,0x7f,0x5, +0xc8,0x7,0x1d,0x8,0x11,0x7,0xeb,0x8,0xb5,0x9,0xca,0x5, +0xa4,0x2,0x54,0x2,0x6c,0x1,0x2,0x0,0x2c,0x0,0x9e,0x2, +0x8f,0x6,0x1b,0x9,0x6e,0x9,0x28,0xb,0x99,0xe,0xc2,0xf, +0xfe,0xe,0xa8,0xd,0x6,0xa,0xae,0x5,0xc,0x2,0xfd,0xfc, +0x72,0xf8,0xc9,0xf6,0x78,0xf5,0x95,0xf4,0xe6,0xf6,0xc7,0xfa, +0x3a,0xfd,0xf3,0xff,0x47,0x3,0xca,0x1,0xcd,0xfd,0xd2,0xfe, +0x20,0xfe,0xd6,0xf6,0x4f,0xf4,0x14,0xf7,0x7,0xf5,0x69,0xf2, +0xc5,0xf4,0x54,0xf6,0xd1,0xf5,0xbf,0xf6,0x26,0xf6,0xdb,0xf2, +0x0,0xf3,0x5,0xf5,0x6b,0xf1,0x40,0xed,0x56,0xef,0x77,0xf1, +0xde,0xef,0x1f,0xef,0x35,0xf1,0x58,0xf4,0x97,0xf5,0x69,0xf5, +0xcc,0xf7,0xa6,0xfa,0xa2,0xf9,0xab,0xf7,0x9a,0xf7,0xc0,0xf6, +0x79,0xf4,0x85,0xf3,0x78,0xf2,0xd7,0xef,0x29,0xf0,0x53,0xf2, +0xa1,0xf1,0x89,0xf3,0xa4,0xf8,0xfd,0xf8,0xd1,0xf8,0x5,0xfc, +0x15,0xfb,0xb6,0xf7,0xe9,0xf7,0x4e,0xf7,0x72,0xf4,0x99,0xf3, +0xad,0xf3,0x67,0xf3,0x78,0xf5,0xe7,0xf7,0x3f,0xf7,0xa1,0xf7, +0x6c,0xfa,0x76,0xfa,0xc7,0xf9,0xcb,0xfa,0xe3,0xf8,0x48,0xf6, +0x19,0xf7,0x5b,0xf7,0xf9,0xf5,0x8,0xf5,0x71,0xf4,0x80,0xf5, +0x49,0xf7,0x6a,0xf7,0xef,0xf7,0x2d,0xfa,0xa1,0xfb,0xbd,0xfa, +0xef,0xf8,0xf8,0xf7,0xf5,0xf7,0xe8,0xf8,0xae,0xf9,0xf,0xf9, +0xa8,0xf9,0x18,0xfc,0xd3,0xfd,0xc,0x0,0x40,0x2,0xaf,0x1, +0x3a,0x1,0x66,0x2,0x3f,0x2,0x29,0x1,0x81,0x0,0xa2,0xff, +0xe9,0xfe,0x21,0xff,0x23,0x0,0xb0,0x1,0x84,0x4,0xbf,0x7, +0x82,0x8,0xab,0x8,0x1e,0xb,0x21,0xc,0x7d,0xa,0xeb,0x9, +0x73,0x9,0x65,0x7,0x1f,0x6,0x7e,0x6,0x5c,0x7,0xc,0x8, +0x4c,0x8,0x4d,0x8,0xf3,0x8,0x52,0xb,0x94,0xd,0x6f,0xd, +0xf9,0xc,0xcb,0xc,0x2d,0xb,0xf0,0x9,0x59,0x9,0xce,0x7, +0x0,0x7,0xf2,0x6,0x7f,0x6,0x4a,0x7,0xd,0x9,0xf0,0x9, +0x41,0xa,0x81,0xa,0x44,0xa,0x73,0x9,0x7,0x9,0xbb,0x8, +0x2,0x7,0x11,0x5,0x52,0x4,0x26,0x4,0xd2,0x4,0x78,0x5, +0x4b,0x5,0xe2,0x5,0xa6,0x6,0x8e,0x6,0xae,0x6,0x66,0x6, +0x57,0x5,0x82,0x4,0x88,0x3,0x48,0x2,0xa9,0x1,0x6,0x2, +0x1,0x2,0x25,0x0,0xb5,0xfe,0x7a,0xff,0x15,0x0,0x27,0x0, +0x42,0x1,0x93,0x1,0xb3,0xff,0x9e,0xfe,0xe9,0xff,0x30,0x0, +0x63,0xfe,0xf2,0xfd,0x19,0xff,0x60,0xff,0x8d,0xfe,0x85,0xfd, +0x16,0xfd,0x46,0xfc,0x33,0xfa,0x50,0xf9,0xcf,0xf9,0x79,0xf9, +0x62,0xf9,0xda,0xf9,0x0,0xfa,0x49,0xfb,0xb8,0xfc,0x47,0xfc, +0xd2,0xfb,0x87,0xfc,0x3a,0xfd,0x3e,0xfd,0x11,0xfc,0x9a,0xfa, +0x58,0xfa,0x3a,0xf9,0x21,0xf6,0x61,0xf5,0x40,0xf8,0x2d,0xfa, +0x2e,0xfa,0x1c,0xfa,0x1c,0xf9,0xf,0xf8,0xfd,0xf8,0x61,0xf9, +0x18,0xf7,0x63,0xf5,0x3d,0xf7,0x8a,0xfa,0x8e,0xfb,0x72,0xfa, +0x35,0xfb,0xc4,0xfe,0x1d,0x0,0x1,0xfd,0x53,0xfa,0x3c,0xfb, +0x2f,0xfd,0x5f,0xfd,0x7e,0xfb,0x59,0xf9,0xfb,0xf8,0x4c,0xfa, +0x9,0xfb,0x11,0xf9,0xfd,0xf6,0xa6,0xf8,0x2d,0xfb,0x81,0xfb, +0x9f,0xfb,0xdf,0xfb,0x44,0xfc,0x7c,0xfe,0x6f,0x1,0x79,0x2, +0x27,0x0,0xe8,0xfd,0x7f,0x1,0x61,0x6,0x24,0x4,0xde,0xfe, +0xf,0xff,0x26,0x4,0xb8,0x6,0xed,0x2,0x14,0xff,0xa3,0x1, +0x24,0x6,0xfd,0x4,0x74,0xff,0xdb,0xfd,0x3c,0x2,0xec,0x4, +0x79,0x2,0x1e,0x0,0xe0,0x1,0xd,0x6,0x10,0x8,0x36,0x6, +0x5a,0x3,0xe1,0x2,0x24,0x5,0xa6,0x4,0x2c,0xff,0xa6,0xfd, +0x50,0x1,0xef,0xff,0xcf,0xfb,0xfc,0xfd,0xb5,0x3,0xe2,0x6, +0x70,0x6,0xa6,0x5,0x8b,0x7,0xa5,0x8,0xd3,0x7,0x31,0x8, +0x95,0x5,0x84,0xff,0x4d,0xff,0xb2,0x3,0x89,0x3,0x25,0x1, +0x86,0x2,0xdc,0x4,0xd3,0x4,0xd4,0x4,0xdd,0x5,0x6d,0x5, +0xd7,0x3,0xd1,0x3,0x9f,0x4,0xf6,0x2,0x19,0x0,0x8,0x2, +0x5c,0x7,0x77,0x6,0x6b,0x0,0x89,0x1,0xc4,0xa,0x35,0x10, +0xf8,0xc,0x78,0x8,0xf4,0x9,0xad,0xe,0x52,0xf,0x9a,0xb, +0xfe,0x7,0xf5,0x5,0x5a,0x6,0x3a,0x8,0x7b,0x7,0x74,0x6, +0x64,0x9,0xf8,0xb,0x3,0xb,0xe5,0x7,0x3a,0x4,0x4c,0x4, +0x12,0x5,0xdf,0xff,0xa2,0xfc,0x3c,0x0,0xe5,0x1,0x2f,0x2, +0x70,0x6,0x67,0xa,0x72,0xa,0xce,0x8,0x9e,0x9,0x6e,0xc, +0xf7,0xb,0x3e,0x9,0x75,0x6,0xf8,0x1,0xe9,0x0,0x2,0x5, +0xcf,0x4,0x48,0xfe,0x9,0xfa,0x1c,0xfe,0x4a,0x6,0x2,0x7, +0xea,0x0,0x5a,0x2,0x3d,0xb,0x43,0xd,0x37,0x9,0xd8,0xa, +0x32,0xe,0x8a,0xa,0x38,0x7,0xf9,0x7,0xd6,0x4,0x14,0x1, +0x4c,0x3,0xc7,0x6,0x6d,0x9,0x21,0xb,0x97,0x9,0xb5,0x9, +0xc8,0xc,0xf4,0xc,0x0,0xc,0xe1,0xa,0x40,0x7,0xb6,0x7, +0x20,0xc,0xca,0xa,0x3b,0x8,0x54,0xb,0xa6,0xc,0x56,0xa, +0xc6,0xa,0xf3,0xb,0xe9,0x8,0x38,0x3,0x1f,0xff,0x67,0xfc, +0xad,0xf7,0xf3,0xf3,0xe4,0xf4,0x79,0xf6,0x71,0xf8,0xcf,0xfb, +0xf6,0xfb,0x69,0xfd,0xa2,0x4,0xa5,0x7,0xe7,0x6,0x83,0xc, +0xa3,0xf,0x83,0x7,0x5,0x1,0x1b,0x3,0x2f,0x2,0x84,0xf8, +0x8a,0xed,0x8b,0xe8,0xa0,0xea,0x3f,0xed,0xbb,0xe9,0xb,0xe5, +0xfe,0xe4,0xdd,0xe7,0xd8,0xed,0x79,0xf1,0x5d,0xec,0x2b,0xec, +0xad,0xf6,0x7b,0xf9,0xfc,0xf3,0xf7,0xf3,0x54,0xf6,0x5f,0xfa, +0x74,0x2,0xba,0x3,0xeb,0xfe,0x5,0xff,0x3a,0x1,0x1e,0x3, +0xfb,0x1,0xb3,0xf5,0x84,0xeb,0x3,0xf1,0x5a,0xf4,0x53,0xeb, +0x98,0xe2,0x76,0xdf,0xce,0xe0,0xa2,0xe3,0xd3,0xe4,0xf4,0xe9, +0x55,0xf1,0x26,0xf5,0xca,0xfc,0x45,0x5,0xb1,0x2,0x8b,0xfc, +0x5f,0xfa,0xe1,0xf6,0xf2,0xf1,0xf3,0xec,0xc,0xe8,0xbe,0xe6, +0x67,0xe6,0xea,0xe4,0x7d,0xe8,0x57,0xed,0xb9,0xeb,0xa8,0xed, +0xc8,0xf6,0x49,0xf8,0x71,0xf3,0x3d,0xf3,0xf1,0xf3,0x3,0xf5, +0x3c,0xf7,0xe8,0xf4,0xd8,0xf3,0xdb,0xf6,0xca,0xf7,0x62,0xfa, +0x64,0xfa,0x28,0xf2,0x48,0xef,0x8d,0xf1,0x27,0xee,0x66,0xec, +0xf8,0xed,0x42,0xed,0x1f,0xee,0xe1,0xef,0x7,0xf1,0x7d,0xf3, +0x4,0xf4,0x32,0xf5,0x31,0xfb,0x33,0x0,0x63,0x1,0xb8,0x1, +0x63,0x3,0xb,0x6,0x6c,0x4,0x1,0xff,0xcb,0xfd,0xf4,0xff, +0x6f,0xff,0x70,0xfc,0x46,0xfa,0x21,0xfb,0xe1,0xfb,0x4b,0xf8, +0x59,0xf4,0x45,0xf3,0xef,0xf2,0x64,0xf4,0x89,0xf6,0x0,0xf7, +0x4a,0xfa,0xc,0x0,0xd7,0x3,0x24,0x8,0x1,0xb,0x1b,0xa, +0xd4,0xc,0xf8,0x10,0x36,0xe,0x27,0xa,0x84,0x9,0x2f,0x8, +0x7c,0x5,0x47,0x2,0xb,0x0,0xc3,0x0,0x23,0x1,0xc5,0x0, +0x72,0x3,0xc1,0x4,0xb3,0x1,0x76,0x1,0xe0,0x2,0xce,0xfe, +0x8,0xfc,0x7c,0xff,0x70,0x0,0x4f,0xff,0x9e,0x3,0xe,0x9, +0x95,0xa,0xeb,0xb,0x89,0xf,0xdf,0x11,0xc5,0xf,0x98,0xc, +0x3,0xa,0xb8,0x4,0x48,0x0,0xf4,0xff,0x4,0xfe,0x7b,0xf9, +0x60,0xf7,0xa,0xfa,0x9d,0xff,0x4a,0x2,0xb2,0x2,0xf0,0x5, +0x66,0x7,0x1b,0x5,0x8,0x5,0x69,0x4,0x2f,0x0,0xe,0xfe, +0xa6,0xfd,0xf,0xfb,0xfb,0xf9,0x9f,0xfb,0x2,0xfb,0x37,0xf9, +0x7e,0xfa,0x5b,0xfc,0x7c,0xfc,0x2f,0xfd,0xd,0xff,0xca,0x0, +0xaa,0x0,0x18,0xfe,0xc1,0xfc,0xec,0xfe,0x66,0x1,0x89,0x1, +0x74,0x1,0x61,0x4,0xd1,0x7,0x52,0x8,0xce,0x8,0x56,0x9, +0xa2,0x6,0x10,0x4,0x5f,0x3,0x48,0x1,0x23,0xff,0xb3,0xfe, +0x34,0xfe,0x58,0xfd,0xb,0xfd,0x2b,0xfe,0x1f,0x0,0x5,0x1, +0xd5,0x1,0x2e,0x3,0xce,0x2,0xc,0x2,0x1c,0x3,0x18,0x2, +0xed,0xfd,0x7e,0xfc,0x89,0xfd,0x8c,0xfc,0xea,0xfc,0x51,0x0, +0xb9,0x1,0x57,0x2,0xa2,0x5,0x3f,0x8,0x94,0x7,0x8d,0x5, +0x54,0x4,0x12,0x3,0xd9,0xff,0xa9,0xfd,0x74,0xfe,0x1f,0xfe, +0x8d,0xfd,0x84,0x0,0xe,0x3,0xc,0x2,0x80,0x1,0x5f,0x3, +0x22,0x4,0x38,0x2,0xa8,0x0,0xa6,0xff,0x8a,0xfd,0x15,0xfd, +0xdd,0xfd,0xc,0xfc,0x28,0xfa,0x53,0xfa,0x4a,0xfa,0x3b,0xfa, +0x53,0xf9,0xbd,0xf6,0x2b,0xf6,0xba,0xf7,0xb6,0xf7,0x26,0xf7, +0x18,0xf9,0x5b,0xfc,0x36,0xfe,0x2c,0x0,0x91,0x3,0x76,0x5, +0xb9,0x6,0xd5,0x9,0xbd,0xb,0x7e,0xb,0x49,0xa,0x28,0x7, +0x18,0x4,0xcc,0x1,0x7d,0xfe,0x6e,0xfb,0xc,0xf8,0x3c,0xf5, +0xa2,0xf6,0x7d,0xf8,0x1,0xf9,0x0,0xfc,0x5b,0xfe,0x63,0xff, +0x21,0x3,0x6f,0x5,0x48,0x5,0xb0,0x7,0x3b,0x9,0xba,0x7, +0x6b,0x8,0xd5,0x9,0xec,0x7,0xbe,0x5,0xeb,0x4,0x2a,0x3, +0x4e,0x0,0x41,0xfd,0xb1,0xfb,0x32,0xfc,0xcf,0xfb,0x26,0xfb, +0x95,0xfc,0x78,0xfd,0x63,0xfe,0x6f,0x1,0x32,0x2,0x9,0x0, +0x8b,0xff,0x2,0x1,0xcc,0x2,0x71,0x3,0xa,0x3,0xe,0x4, +0x7b,0x5,0x48,0x5,0xa5,0x3,0xaf,0xff,0xee,0xfa,0xcf,0xf7, +0x7e,0xf4,0x3e,0xf1,0x3f,0xf1,0x31,0xf3,0x80,0xf4,0x8c,0xf7, +0xe5,0xfc,0x3,0x0,0x82,0x2,0xd2,0x7,0x6a,0xa,0xee,0x9, +0x96,0xb,0x71,0xb,0xe0,0x8,0x41,0x9,0xd5,0x8,0x16,0x4, +0xfd,0xfe,0xf8,0xfb,0x83,0xfa,0xa2,0xf8,0x53,0xf6,0x68,0xf6, +0xda,0xf8,0xa3,0xfc,0x35,0x1,0x1f,0x5,0x60,0x9,0x9e,0xd, +0x95,0xe,0x81,0xd,0xc,0xd,0x6a,0xb,0xc3,0x7,0x2f,0x5, +0x47,0x5,0xd6,0x6,0x24,0x9,0xf6,0xa,0xc7,0xb,0x1f,0xd, +0xe0,0xc,0x25,0x9,0x51,0x5,0xfb,0x1,0xa4,0xfe,0x9e,0xfd, +0x52,0xfd,0x58,0xfc,0xeb,0xfd,0xb7,0x2,0xf9,0x6,0xff,0x7, +0xa3,0x8,0x2d,0xb,0x50,0xc,0xf0,0xb,0x33,0xb,0x56,0x8, +0x3,0x6,0xce,0x4,0x4b,0x2,0x49,0x2,0x1,0x4,0x3,0x3, +0x50,0x3,0x80,0x6,0x9a,0x8,0x9,0x9,0xe2,0x8,0x3b,0x9, +0x94,0x9,0xc4,0x8,0x1,0x8,0xbe,0x6,0x57,0x5,0xaf,0x5, +0xcc,0x4,0x7b,0x2,0x67,0x2,0x5,0x3,0x68,0x3,0x9d,0x3, +0xdd,0x0,0xe2,0xfd,0xeb,0xfd,0xbd,0xfc,0xa,0xfa,0xcd,0xfa, +0xd0,0xfd,0x72,0xff,0xcd,0x1,0x4b,0x7,0x44,0xc,0xa1,0xc, +0x72,0xb,0x15,0xc,0xab,0xa,0xb8,0x5,0x80,0x1,0x13,0xfe, +0x32,0xfa,0x61,0xf7,0x77,0xf5,0xb,0xf5,0xc8,0xf5,0x83,0xf5, +0x66,0xf6,0xd7,0xf7,0xf1,0xf6,0xcc,0xf7,0x4e,0xfa,0x66,0xf9, +0x64,0xf7,0x5b,0xf7,0xfb,0xf7,0x41,0xf7,0x7b,0xf6,0x9f,0xf9, +0x3b,0xfc,0xab,0xfa,0xd5,0xfb,0x24,0xfe,0x73,0xfd,0x33,0xfe, +0x34,0xfd,0x4e,0xf9,0x46,0xf9,0x1c,0xfa,0xe0,0xf8,0xe8,0xf6, +0xe0,0xf2,0xec,0xf1,0x45,0xf5,0x23,0xf6,0x5,0xf7,0x59,0xfb, +0x65,0xff,0x86,0x1,0x76,0x2,0xf7,0x2,0x5a,0x1,0xc3,0xfd, +0xbc,0xfc,0xe5,0xfa,0xc4,0xf5,0x5a,0xf5,0xe7,0xf7,0x20,0xf7, +0xdc,0xf7,0x6e,0xfa,0x76,0xfa,0x4f,0xfb,0xb,0xff,0x23,0x2, +0x3c,0x2,0xfc,0xff,0x47,0xfe,0xce,0xfe,0x6e,0xfe,0xab,0xfa, +0xfd,0xf8,0xbf,0xfb,0xb5,0xfa,0x7a,0xf7,0x47,0xfb,0xe3,0xfd, +0xd8,0xf8,0xe7,0xf7,0xbf,0xfa,0x75,0xf7,0x15,0xf5,0x9a,0xf8, +0xf4,0xf8,0xd7,0xf6,0x7b,0xf9,0xc,0xfd,0xf4,0xfd,0x1b,0xff, +0x98,0x0,0x7e,0x2,0x28,0x5,0xaf,0x5,0x66,0x5,0x6d,0x6, +0x96,0x5,0x40,0x4,0xb1,0x4,0x9c,0x2,0x51,0x0,0x35,0x3, +0x75,0x4,0xde,0x0,0xda,0x1,0xf5,0x5,0x86,0x4,0xc0,0x4, +0x76,0xa,0x26,0xa,0x8f,0x7,0x2b,0xd,0xbc,0xf,0x72,0xa, +0x97,0xa,0xa4,0xd,0xb8,0x9,0x35,0x6,0x82,0x9,0x86,0xc, +0xf8,0xa,0xb7,0xa,0xfb,0xd,0xa7,0xd,0x28,0xa,0xac,0xa, +0x9c,0xa,0x8d,0x5,0x30,0x3,0x6b,0x5,0x33,0x6,0xe5,0x4, +0x2f,0x5,0x14,0x9,0x60,0xd,0xbd,0xe,0x99,0x10,0xc1,0x12, +0x17,0x10,0x5e,0xc,0x62,0xa,0x9,0x4,0xb0,0xfc,0x7a,0xfb, +0xba,0xf9,0xf2,0xf5,0xe0,0xf8,0x92,0xfd,0x18,0xfe,0x5f,0x2, +0x8f,0x8,0x40,0x8,0x49,0x6,0x66,0x6,0x8e,0x5,0x87,0x2, +0xea,0xfb,0xb2,0xf6,0x9,0xf8,0xf4,0xf7,0x47,0xf5,0x84,0xf8, +0x8e,0xfc,0x54,0xfc,0x39,0xfe,0x5a,0x0,0xe7,0xfd,0x31,0xfb, +0x81,0xf9,0x6,0xf7,0x1f,0xf4,0xd7,0xef,0x76,0xee,0xa3,0xf2, +0x4,0xf3,0x84,0xf0,0x9f,0xf4,0x1d,0xf8,0xe1,0xf7,0x97,0xfc, +0xe1,0xfe,0x90,0xf9,0xa,0xf8,0x62,0xf9,0xf3,0xf5,0xdd,0xf0, +0xe7,0xec,0xf9,0xea,0xe2,0xe9,0xe3,0xe6,0xa8,0xe7,0x2a,0xed, +0xe2,0xee,0x2d,0xf0,0xa7,0xf5,0x8d,0xf6,0xfb,0xf2,0x2f,0xf3, +0xcb,0xf2,0x5c,0xee,0x48,0xec,0x3c,0xec,0xab,0xea,0xd3,0xe9, +0xdc,0xea,0x7f,0xed,0x62,0xee,0x6a,0xea,0xf5,0xe9,0x64,0xee, +0xd,0xec,0x9,0xe8,0xbe,0xea,0x31,0xe9,0x41,0xe2,0xed,0xe1, +0xee,0xe4,0x48,0xe2,0x8,0xde,0xd7,0xdf,0xc5,0xe3,0x9a,0xe1, +0xef,0xde,0x7f,0xe3,0x81,0xe7,0xbc,0xe5,0x4d,0xe6,0xa6,0xea, +0x62,0xea,0x8e,0xe6,0x7b,0xe7,0xf6,0xe9,0x78,0xe6,0x1,0xe2, +0x48,0xe3,0x48,0xe6,0x2b,0xe6,0x55,0xe6,0x21,0xea,0xc9,0xec, +0x5f,0xec,0x10,0xee,0x25,0xef,0xc6,0xeb,0x6,0xeb,0x7a,0xed, +0x8,0xec,0x59,0xea,0x1d,0xed,0x6e,0xef,0xf4,0xef,0xf4,0xf1, +0x85,0xf4,0xc,0xf7,0x67,0xf9,0xc7,0xf8,0x87,0xf7,0x80,0xf8, +0x61,0xf7,0x25,0xf5,0x6b,0xf5,0x2c,0xf4,0x17,0xf2,0x0,0xf3, +0xef,0xf3,0x97,0xf4,0x41,0xf6,0x2d,0xf7,0x97,0xf8,0x8e,0xfa, +0xdd,0xfa,0xa4,0xfa,0xaf,0xfb,0xc,0xfe,0xff,0xfe,0x5e,0xfd, +0xb6,0xfe,0x65,0x4,0x1b,0x7,0x8e,0x4,0x3c,0x3,0x12,0x6, +0x9f,0x7,0xf0,0x5,0x8a,0x4,0x61,0x3,0x3,0x3,0x25,0x4, +0x21,0x4,0xb9,0x4,0xba,0x6,0xde,0x8,0x36,0xd,0x86,0xe, +0x6f,0xc,0x5c,0x11,0xb4,0x16,0x16,0x14,0x89,0x12,0xe5,0x12, +0x39,0x12,0x18,0x14,0x41,0x15,0xa2,0x15,0xf1,0x17,0xb0,0x17, +0xcf,0x17,0x53,0x1c,0xa7,0x1e,0xff,0x1d,0xc7,0x1e,0xd3,0x1e, +0x8a,0x1d,0x2d,0x1f,0x43,0x22,0xf1,0x20,0x71,0x1d,0x11,0x1e, +0x32,0x21,0x8e,0x21,0xde,0x1e,0xe9,0x1e,0x69,0x24,0xc,0x27, +0xad,0x23,0x94,0x23,0xac,0x27,0x9c,0x28,0x38,0x26,0x99,0x23, +0x5b,0x21,0xac,0x1f,0x37,0x20,0xe8,0x22,0xc8,0x22,0xcd,0x1f, +0x3a,0x21,0x1d,0x27,0x57,0x2a,0x1f,0x29,0xc2,0x27,0x10,0x28, +0x5d,0x27,0x5d,0x25,0xbf,0x22,0x75,0x1e,0xeb,0x1b,0x1,0x1d, +0x1e,0x1d,0xd1,0x1b,0xd6,0x1b,0xd2,0x1d,0xb0,0x20,0xfb,0x1e, +0x68,0x19,0xd3,0x18,0xf8,0x1a,0xa1,0x19,0x8d,0x18,0x5b,0x17, +0xf9,0x13,0x3f,0x15,0xbf,0x19,0xb7,0x18,0x64,0x16,0x9f,0x17, +0xdd,0x16,0x0,0x15,0xd,0x16,0x5,0x15,0x5c,0x10,0x14,0xd, +0x71,0xb,0x3,0x9,0xf9,0x5,0x8b,0x4,0x53,0x5,0xdb,0x4, +0xc1,0x2,0x8c,0x2,0x58,0x3,0xe,0x3,0x19,0x3,0x48,0x4, +0x8a,0x4,0xdf,0x1,0xcc,0xff,0x60,0x1,0x46,0x0,0x20,0xfa, +0x29,0xf6,0x0,0xf5,0x5e,0xf3,0x55,0xf2,0x38,0xf0,0x8,0xed, +0x86,0xec,0xb2,0xeb,0xe5,0xe8,0x4f,0xe9,0x8e,0xea,0xbf,0xe8, +0x79,0xe9,0x5d,0xec,0xb2,0xeb,0x22,0xec,0x92,0xef,0xd5,0xee, +0x90,0xeb,0xc8,0xea,0xcf,0xe9,0x97,0xe8,0xa8,0xe8,0x1c,0xe7, +0xab,0xe4,0x46,0xe4,0x9d,0xe4,0x3f,0xe4,0x8a,0xe3,0xbc,0xe2, +0x87,0xe1,0x83,0xdf,0x96,0xdd,0x7a,0xdc,0x18,0xdc,0x7d,0xdc, +0x83,0xdc,0xe8,0xdc,0x58,0xdf,0x1a,0xe1,0xf0,0xe2,0x49,0xe7, +0xfd,0xe7,0xfb,0xe5,0x21,0xe9,0x9,0xea,0x1b,0xe5,0x8b,0xe5, +0x40,0xe7,0x59,0xe2,0xc8,0xe0,0x4e,0xe3,0x4e,0xe1,0xe,0xe0, +0x8a,0xe2,0xf0,0xe2,0xfc,0xe2,0xcf,0xe4,0x81,0xe5,0x43,0xe6, +0xb3,0xe7,0x9d,0xe6,0x81,0xe4,0x1c,0xe5,0x4f,0xe6,0x28,0xe6, +0xd9,0xe7,0x8b,0xea,0xe4,0xea,0x2b,0xec,0xb9,0xee,0x66,0xee, +0xbd,0xee,0xc,0xf1,0xf,0xf0,0xdb,0xee,0x77,0xf0,0xca,0xef, +0xe0,0xed,0x72,0xee,0xec,0xee,0x20,0xef,0x64,0xf1,0x1a,0xf4, +0xe9,0xf5,0xb7,0xf8,0x4c,0xfc,0x66,0xfd,0x75,0xfd,0xc2,0xff, +0x35,0x1,0x8c,0x0,0xce,0x0,0xb1,0x0,0x93,0xff,0x12,0xff, +0x84,0xfe,0xe,0xff,0x31,0x0,0xaf,0xff,0x73,0x0,0x84,0x2, +0x7b,0x3,0xd,0x6,0x27,0x8,0xb6,0x6,0xd4,0x7,0x58,0xc, +0x8d,0xd,0x5e,0xc,0x45,0xd,0xf8,0xe,0x6b,0xe,0x8c,0xb, +0x41,0x9,0xeb,0x9,0x21,0xb,0x22,0xa,0xef,0x9,0x7e,0xb, +0x85,0xb,0x88,0xc,0x13,0xf,0xdd,0xc,0x52,0x9,0x56,0xa, +0x7a,0xa,0xd6,0x8,0x7f,0x9,0xf8,0x9,0xb9,0xa,0x3b,0xd, +0xb3,0xd,0xe0,0xd,0x2a,0x10,0xa2,0x10,0xbe,0xf,0x7f,0xf, +0x24,0xe,0x12,0xd,0x87,0xc,0xd5,0x9,0xc7,0x6,0xb7,0x4, +0x86,0x3,0xbc,0x4,0x58,0x5,0x25,0x4,0xff,0x4,0xb9,0x4, +0x2,0x2,0xbb,0x2,0xa6,0x3,0x1,0x1,0x7,0x0,0x10,0x0, +0x86,0xfe,0x53,0xff,0x44,0x2,0xb5,0x3,0xbb,0x4,0xdb,0x7, +0x24,0xb,0x7e,0xb,0x89,0xb,0xc5,0xc,0x7c,0xb,0x8a,0x9, +0xa8,0x9,0x1a,0x8,0x3f,0x5,0xb5,0x4,0xda,0x4,0x8e,0x2, +0xf1,0xfe,0x1d,0xff,0xa3,0x2,0x2e,0x3,0x8b,0x2,0xbb,0x4, +0x8,0x6,0x28,0x6,0x67,0x7,0x95,0x6,0xc,0x3,0x87,0x0, +0x55,0xff,0x36,0xfd,0x96,0xfb,0xb2,0xfd,0xda,0x0,0xcb,0x1, +0x3d,0x4,0x36,0x8,0x25,0x8,0x3f,0x5,0xb4,0x2,0x45,0xfe, +0x55,0xf8,0x4,0xf5,0x56,0xf4,0x6e,0xf3,0xa1,0xf2,0x12,0xf4, +0x3d,0xf6,0x42,0xf7,0x4a,0xf9,0x8,0xfb,0x5e,0xf8,0x8a,0xf5, +0xbe,0xf6,0xa7,0xf6,0xae,0xf3,0xa9,0xf2,0xf,0xf3,0xda,0xf1, +0xe6,0xf0,0x38,0xf3,0xc,0xf6,0xb6,0xf5,0xa2,0xf6,0x70,0xfa, +0xe,0xfa,0xed,0xf6,0x88,0xf7,0x27,0xf8,0x9f,0xf5,0xb,0xf4, +0x62,0xf4,0x73,0xf4,0x92,0xf5,0xdf,0xf8,0xdf,0xfa,0x36,0xfc, +0x7,0x1,0xdb,0x5,0x92,0x9,0x6a,0xf,0x35,0x12,0xaf,0x11, +0xa0,0x13,0x3f,0x14,0xb9,0x12,0x34,0x12,0xcc,0x10,0x60,0x11, +0xf1,0x13,0x72,0x14,0x9e,0x17,0x42,0x1c,0x91,0x1b,0xca,0x19, +0x48,0x1a,0x5d,0x1a,0xd7,0x19,0xd1,0x19,0x77,0x1a,0xa6,0x19, +0xd3,0x18,0x8a,0x1b,0x71,0x1c,0x52,0x1a,0xc3,0x1b,0x7c,0x1d, +0x62,0x1c,0x6f,0x1d,0xfe,0x20,0xfb,0x23,0x85,0x23,0x10,0x20, +0x1,0x1f,0x91,0x1e,0x40,0x1a,0xc4,0x15,0x6f,0x12,0x7e,0xe, +0x62,0xb,0xa4,0x7,0x7f,0x2,0x54,0xff,0x72,0xfb,0xdd,0xf2, +0xe1,0xea,0xca,0xe5,0xa0,0xde,0x71,0xd8,0x36,0xd7,0x64,0xd5, +0x5f,0xd3,0x45,0xd6,0x50,0xdb,0x4a,0xe0,0xb7,0xe4,0xb7,0xe6, +0xd,0xe9,0x34,0xec,0x19,0xed,0x48,0xed,0x56,0xec,0xfc,0xe8, +0x40,0xe7,0xf0,0xe6,0xec,0xe4,0x16,0xe3,0x13,0xe2,0x62,0xe1, +0xc0,0xe2,0xad,0xe4,0xc0,0xe5,0xab,0xe8,0xdb,0xec,0x3c,0xf0, +0xaf,0xf3,0xd5,0xf5,0x74,0xf6,0xab,0xf8,0x97,0xfa,0xf,0xfa, +0x4e,0xf9,0x6e,0xf8,0xb3,0xf8,0x2b,0xfb,0x2b,0xfb,0xf6,0xf8, +0xcd,0xf8,0xf1,0xf7,0x60,0xf4,0x19,0xf1,0xde,0xee,0xe2,0xeb, +0x90,0xe7,0x19,0xe5,0x69,0xe6,0x49,0xe7,0xfb,0xe5,0x82,0xe5, +0xf1,0xe5,0x6,0xe6,0x4b,0xe5,0xfd,0xe2,0x3a,0xe0,0xe6,0xdd, +0xf4,0xda,0xfa,0xd7,0xe1,0xd5,0x40,0xd3,0x3d,0xd0,0x0,0xcf, +0x32,0xce,0x3a,0xcc,0xdd,0xcb,0xa2,0xcc,0x63,0xcb,0x21,0xcb, +0x89,0xcd,0x67,0xce,0x2a,0xce,0xf9,0xcf,0x77,0xd2,0xaf,0xd4, +0x1c,0xd7,0x89,0xd8,0x4b,0xd9,0x4c,0xdb,0x1a,0xde,0x4d,0xe0, +0x23,0xe2,0xc3,0xe4,0x82,0xe8,0xee,0xeb,0x6,0xee,0x2,0xf0, +0x7e,0xf2,0x25,0xf5,0x7c,0xf8,0xe1,0xfb,0x65,0xfe,0xe7,0x1, +0x66,0x7,0x24,0xc,0xa,0xf,0xec,0x12,0xc7,0x17,0x67,0x1a, +0x4d,0x1c,0xb,0x20,0xa3,0x22,0xe2,0x22,0xbc,0x23,0x5c,0x25, +0xc0,0x26,0x46,0x28,0x3e,0x29,0x55,0x29,0xe4,0x29,0x3e,0x2b, +0xbb,0x2b,0x24,0x2b,0xd2,0x2a,0xcc,0x29,0xfb,0x27,0xd8,0x27, +0xe8,0x27,0xf2,0x25,0x8f,0x24,0xee,0x24,0xfe,0x24,0xd2,0x23, +0x57,0x22,0xf3,0x21,0x9b,0x21,0xb1,0x1f,0x4c,0x1e,0xd3,0x1d, +0x92,0x1b,0x8b,0x19,0x50,0x1a,0x72,0x19,0xf0,0x14,0x8c,0x12, +0xb3,0x13,0x55,0x14,0xfd,0x13,0xec,0x12,0x39,0x11,0x77,0x11, +0x55,0x12,0xf1,0x10,0xdd,0xe,0x9,0xd,0x2e,0xb,0x69,0x9, +0x19,0x7,0x6d,0x5,0x61,0x4,0x74,0x2,0xb4,0x1,0x1c,0x2, +0x42,0x1,0x97,0x1,0xcd,0x4,0x66,0x7,0x3f,0x7,0xc4,0x6, +0xa5,0x7,0x5f,0x7,0x65,0x6,0xa8,0x7,0x55,0x7,0x59,0x3, +0x81,0x2,0xa5,0x6,0x7,0x9,0xf2,0x6,0xa2,0x5,0x64,0x8, +0x3d,0xb,0xc,0xb,0x63,0x8,0x4d,0x5,0xad,0x6,0xae,0xb, +0x8c,0xd,0x69,0xd,0x84,0xe,0x74,0xf,0xcb,0x11,0xaa,0x14, +0x0,0x13,0x2e,0xf,0xb8,0xf,0x91,0x14,0x1b,0x17,0x96,0x12, +0xf6,0xb,0xce,0xa,0x19,0xd,0xd7,0xb,0xdc,0x6,0x63,0x3, +0xbf,0x3,0xd3,0x6,0xd,0x9,0x46,0x6,0x64,0x2,0xe6,0x4, +0xc,0xb,0xd4,0xc,0x92,0x8,0x87,0x4,0xa8,0x6,0x29,0x9, +0xd2,0x4,0x9a,0xff,0x20,0xff,0xee,0x0,0x10,0x2,0x6d,0xff, +0x81,0xfc,0x83,0x0,0xa7,0x4,0xab,0x1,0x3e,0x0,0x84,0x3, +0xfb,0x4,0x74,0x6,0xf1,0x7,0x34,0x4,0xd6,0x2,0xf3,0x9, +0x88,0xe,0x8c,0xc,0x7a,0xc,0x99,0xf,0x99,0x12,0x14,0x13, +0x47,0xf,0x4d,0xd,0x15,0x11,0x90,0x12,0x7a,0xf,0x71,0xe, +0xd1,0xe,0x1f,0xe,0x27,0xf,0x98,0x10,0x12,0x10,0x29,0x11, +0x49,0x15,0xd5,0x19,0xe,0x1c,0x62,0x19,0x31,0x16,0xf9,0x17, +0x2b,0x19,0x84,0x16,0x3d,0x14,0x52,0x12,0xb2,0x11,0xfb,0x11, +0xe9,0xd,0x5c,0xb,0x30,0x11,0x3,0x17,0x77,0x17,0xf9,0x15, +0x8,0x16,0xe6,0x1a,0x7,0x1e,0x77,0x16,0x95,0xd,0x73,0xe, +0xf0,0x11,0x6c,0xf,0xa0,0x9,0x51,0x6,0x67,0x8,0xd6,0xc, +0xf3,0xa,0x84,0x2,0x17,0xfe,0xb2,0xff,0xa8,0xff,0x42,0xfa, +0xd4,0xf1,0x19,0xef,0xec,0xf4,0x6e,0xf6,0x1,0xf1,0xbe,0xf0, +0xd8,0xf3,0xf3,0xf3,0x2,0xf6,0xa8,0xf9,0xd6,0xf8,0x8d,0xf5, +0x75,0xf5,0x7e,0xf8,0xe0,0xf8,0x89,0xf4,0xb7,0xf0,0xde,0xef, +0x3a,0xef,0xab,0xee,0x72,0xef,0xbc,0xed,0xfe,0xe8,0xb1,0xea, +0x91,0xf1,0x5d,0xef,0x4d,0xe8,0x2b,0xe9,0x89,0xeb,0x26,0xe9, +0xae,0xe5,0xfe,0xe1,0x58,0xe2,0x10,0xe8,0x9,0xea,0x6b,0xe6, +0xc7,0xe3,0x5a,0xe5,0x4b,0xe8,0xbd,0xe5,0x7d,0xe0,0x11,0xe0, +0x92,0xdf,0xd0,0xdd,0xfe,0xdf,0x9e,0xe0,0x50,0xdf,0x7,0xe2, +0x5d,0xe3,0x79,0xe1,0x3,0xe1,0x30,0xe1,0xf1,0xe3,0x3b,0xe7, +0x98,0xe4,0x3e,0xe5,0x23,0xee,0x63,0xf0,0xb4,0xeb,0x12,0xed, +0x14,0xee,0xcc,0xe7,0x34,0xe5,0xa4,0xe7,0xe3,0xe6,0x1,0xe7, +0xd4,0xe8,0xb3,0xe6,0x69,0xe7,0x67,0xed,0x87,0xef,0xc1,0xee, +0xb0,0xed,0xe7,0xea,0x92,0xec,0x83,0xf0,0x64,0xed,0x2d,0xea, +0x5b,0xed,0xaa,0xee,0xbf,0xec,0xee,0xed,0xbc,0xf0,0x18,0xf3, +0xf3,0xf6,0x57,0xf8,0xe7,0xf4,0xcb,0xf3,0xe8,0xf4,0xda,0xf1, +0xdb,0xed,0xc3,0xea,0x17,0xe7,0x3,0xe8,0x94,0xeb,0x45,0xec, +0x31,0xef,0xca,0xf3,0xea,0xf4,0x3a,0xf8,0x63,0xfe,0xc,0xff, +0x45,0xfb,0xea,0xf8,0xef,0xf6,0xe1,0xf3,0x7b,0xf2,0xa6,0xf2, +0xab,0xf1,0x25,0xf1,0x39,0xf2,0x65,0xf2,0x75,0xf2,0x12,0xf4, +0xf5,0xf5,0xf3,0xf6,0x61,0xf5,0x74,0xf3,0x9,0xf7,0xc3,0xfb, +0x2,0xfa,0xc0,0xf7,0x41,0xfa,0xd6,0xfa,0xe9,0xf8,0x69,0xfb, +0xaa,0xff,0xdb,0xff,0x41,0xfe,0xb7,0xfd,0x90,0xfe,0xf2,0xff, +0xa3,0xfe,0xec,0xfb,0x24,0xfc,0xd5,0xfc,0x72,0xfb,0x4f,0xfb, +0x34,0xfd,0x45,0xff,0xa,0x2,0xdf,0x4,0x23,0x6,0xb,0x8, +0xb0,0xa,0xd8,0x8,0x32,0x4,0x80,0x3,0x72,0x4,0xda,0x3, +0xe6,0x4,0xf0,0x6,0x2f,0x8,0xf5,0x9,0x5e,0xa,0x33,0x9, +0xed,0x9,0xef,0xa,0xf,0x9,0xf1,0x5,0x8e,0x3,0x94,0x2, +0x36,0x3,0x51,0x2,0x54,0xfe,0xeb,0xfc,0xa1,0xff,0xd4,0xff, +0x63,0xfd,0xbc,0xfc,0xf0,0xfc,0x3e,0xfe,0xc5,0x0,0xcc,0x0, +0xc5,0x0,0x3c,0x4,0xd8,0x5,0x5c,0x3,0x9,0x2,0xbe,0x2, +0x55,0x3,0x58,0x4,0xbb,0x3,0xbb,0x0,0x51,0x1,0x61,0x4, +0x14,0x3,0xc0,0x1,0x54,0x3,0x51,0x1,0x66,0xfe,0xd8,0xff, +0x81,0x1,0x32,0x3,0x3a,0x7,0x6f,0xa,0xeb,0xc,0xa9,0x10, +0xba,0x12,0x9a,0x11,0x33,0x10,0xa6,0xf,0x4e,0xe,0xe1,0xc, +0xd8,0xc,0x3,0xd,0xe9,0xc,0x17,0xc,0x51,0x9,0x67,0x6, +0x78,0x4,0xea,0x2,0x2b,0x3,0x88,0x4,0x87,0x5,0x9e,0x7, +0x4d,0xa,0xf3,0xb,0x7f,0xc,0x9,0xc,0x60,0xb,0xf1,0x9, +0x79,0x7,0xae,0x6,0x27,0x7,0x88,0x7,0x28,0x9,0x4,0xa, +0x5b,0x9,0x49,0xa,0x77,0xa,0x67,0x7,0x4e,0x4,0x4c,0x1, +0x3e,0xfd,0x32,0xfb,0x61,0xfb,0xd,0xfb,0x7b,0xfb,0x76,0xfe, +0xa9,0x1,0x6,0x3,0x61,0x3,0xd4,0x3,0x3b,0x4,0x93,0x3, +0x4,0x2,0x25,0x1,0xdd,0x0,0xd,0x0,0xb0,0xfe,0xe2,0xfb, +0x3e,0xf8,0x90,0xf7,0x2a,0xf9,0x43,0xf9,0x74,0xfa,0x44,0xff, +0x41,0x3,0xb2,0x4,0x9c,0x6,0xe7,0x8,0xd,0xa,0x75,0x9, +0xb,0x7,0x43,0x5,0xfc,0x4,0x12,0x4,0x97,0x3,0xd,0x5, +0x11,0x6,0x71,0x5,0xc8,0x4,0x76,0x4,0xfa,0x2,0x5a,0x0, +0xcb,0xfd,0x54,0xfa,0xb3,0xf6,0x30,0xf6,0x8d,0xf7,0x28,0xf9, +0x31,0xfc,0x98,0xfe,0x1d,0x0,0x45,0x3,0xbf,0x4,0xac,0x2, +0x78,0x1,0xfe,0x1,0xb3,0x1,0xe5,0x0,0x69,0x1,0xcc,0x2, +0x96,0x2,0xe3,0x0,0xd,0xff,0xa6,0xfc,0xf5,0xfa,0x68,0xfa, +0x4f,0xf8,0xac,0xf5,0x68,0xf5,0x61,0xf6,0x5b,0xf6,0x80,0xf5, +0x32,0xf6,0x27,0xf9,0x9e,0xfb,0xe1,0xfc,0x8a,0xfe,0xb2,0x0, +0x87,0x2,0xab,0x2,0x9c,0x1,0xc6,0x1,0x55,0x2,0x6d,0x2, +0xb4,0x3,0xb,0x5,0x35,0x5,0x7e,0x5,0xa,0x6,0xa1,0x6, +0x5b,0x6,0x60,0x4,0x36,0x3,0x72,0x3,0xa7,0x2,0x7a,0x1, +0x5,0x1,0xdc,0x0,0x0,0x1,0xfc,0x0,0xcb,0x1,0xc8,0x3, +0xe8,0x4,0x22,0x6,0x68,0x7,0x4a,0x6,0x59,0x6,0x88,0x8, +0x6c,0x7,0x50,0x5,0x8,0x6,0x21,0x6,0xfe,0x5,0x1a,0x8, +0xca,0x9,0x6a,0xa,0xec,0xb,0x65,0xd,0xac,0xd,0x92,0xd, +0xfb,0xc,0xfc,0x9,0x3e,0x5,0x54,0x2,0x23,0x1,0x2,0xff, +0xe7,0xfc,0x1e,0xfd,0x10,0xff,0xdb,0x0,0x53,0x2,0x17,0x4, +0x34,0x5,0x7a,0x5,0x3d,0x6,0xfc,0x5,0x6f,0x2,0xe3,0xfe, +0xc6,0xff,0x9a,0x1,0xcb,0xff,0x3e,0xff,0x37,0x3,0xe4,0x5, +0xda,0x5,0xfe,0x5,0x8d,0x4,0x8c,0x1,0xbf,0xff,0x0,0xff, +0x21,0xfe,0x5d,0xfc,0x8c,0xfb,0xd5,0xfd,0x62,0xff,0xfc,0xfd, +0x57,0xfd,0xb7,0xfd,0x4a,0xfd,0x12,0xfd,0xc3,0xfd,0x99,0xff, +0x55,0x2,0x73,0x4,0x6f,0x5,0xcd,0x5,0x1b,0x6,0x16,0x6, +0x85,0x4,0xea,0x1,0x58,0xff,0x4c,0xfc,0xfb,0xf9,0x22,0xfa, +0xac,0xfa,0x56,0xfa,0xf7,0xfb,0x1e,0xff,0xd9,0xff,0x84,0xff, +0x49,0x1,0x1c,0x3,0xf3,0x2,0xab,0x1,0x35,0x0,0xb5,0xff, +0x16,0x0,0xb0,0xff,0x48,0xfe,0x8a,0xfd,0xd8,0xfe,0xd7,0x0, +0xff,0x1,0x31,0x3,0x54,0x3,0x60,0x1,0x3c,0x0,0xfa,0xff, +0x13,0xfe,0x9f,0xfb,0x4e,0xfa,0xd0,0xf9,0xf1,0xf8,0x89,0xf7, +0xb,0xf7,0x6f,0xf6,0x2a,0xf5,0x23,0xf6,0x0,0xf8,0xea,0xf7, +0x4c,0xf8,0x65,0xfa,0x80,0xfc,0x3c,0xfd,0x1b,0xfc,0xa1,0xfb, +0xcb,0xfc,0xca,0xfc,0x5,0xfc,0x14,0xfc,0xe,0xfc,0x28,0xfc, +0x46,0xfc,0x9,0xfc,0x72,0xfd,0x7e,0xff,0x14,0xff,0x8,0xff, +0xe3,0x1,0xe1,0x2,0x49,0x0,0x83,0xfe,0x52,0xfd,0xa4,0xfa, +0x5c,0xf9,0x1a,0xfa,0x5d,0xfa,0xc4,0xfa,0x3b,0xfc,0x8e,0xfd, +0x7c,0xfd,0x82,0xfc,0xdf,0xfc,0x1c,0xfe,0x48,0xfe,0x3a,0xff, +0xbc,0x1,0x94,0x3,0x71,0x4,0xa,0x4,0x1,0x2,0x3c,0x0, +0x38,0xff,0x12,0xfe,0xb2,0xfd,0xf4,0xfe,0xd6,0x0,0xfb,0x1, +0x99,0x2,0xdf,0x2,0xb2,0x1,0xdf,0xff,0x2f,0xfe,0x85,0xfa, +0x8e,0xf5,0x2c,0xf2,0x42,0xf0,0xbb,0xef,0xd2,0xf0,0x2d,0xf3, +0x56,0xf8,0x83,0xfe,0x63,0x1,0x33,0x3,0x85,0x6,0x92,0x7, +0x80,0x4,0x9c,0xff,0x33,0xfb,0xfc,0xf8,0xae,0xf7,0xff,0xf4, +0xab,0xf3,0xc4,0xf6,0xfc,0xfa,0xc3,0xfc,0xd3,0xfd,0x5c,0xff, +0x3,0x0,0x2b,0x0,0xc8,0xff,0x22,0xfe,0x35,0xfd,0x20,0xfd, +0xd1,0xfb,0x88,0xfa,0x70,0xfa,0x1f,0xfb,0xbf,0xfc,0xb1,0xfd, +0xfa,0xfd,0x57,0x0,0x78,0x3,0xe6,0x4,0xa,0x5,0xcc,0x3, +0x45,0x1,0xd3,0xfd,0x3a,0xf9,0x27,0xf5,0x62,0xf3,0x4e,0xf4, +0x31,0xf7,0xab,0xf9,0x38,0xfc,0x9b,0x0,0x4c,0x3,0x15,0x2, +0xb9,0xff,0xa6,0xfc,0x60,0xf8,0x1e,0xf5,0x22,0xf4,0xce,0xf4, +0x77,0xf6,0xd3,0xf8,0x7d,0xfb,0xf0,0xfd,0xf6,0x0,0x67,0x4, +0xf,0x5,0xb0,0x2,0xdd,0x1,0x7,0x3,0x9e,0x1,0x50,0xfe, +0xa7,0xfd,0x69,0xfe,0x51,0xfe,0xd8,0xff,0xf1,0x2,0xa5,0x4, +0x3d,0x4,0x6a,0x1,0x5a,0xfd,0xf5,0xf9,0x19,0xf6,0x67,0xf3, +0xf8,0xf4,0xa1,0xf7,0xf4,0xf9,0xce,0xfe,0x82,0x3,0xc3,0x5, +0xb,0x9,0x15,0xc,0x31,0xb,0x9e,0xa,0xab,0xd,0xb2,0xe, +0x5e,0xb,0x30,0x8,0x5f,0x4,0x21,0xfe,0x2c,0xfa,0x2e,0xf8, +0xb9,0xf4,0x0,0xf4,0x5e,0xf6,0x99,0xf7,0xa0,0xfa,0xa7,0xfe, +0x73,0xff,0x10,0x2,0x52,0x6,0x5c,0x6,0x40,0x8,0xdb,0xd, +0xe2,0xe,0xe4,0xe,0xc9,0x11,0x14,0x10,0x22,0xc,0xf0,0xb, +0x29,0x8,0x2f,0x0,0x55,0xfd,0x1e,0xfc,0x7e,0xf7,0x21,0xf7, +0xc1,0xfa,0x8c,0xfa,0x95,0xfb,0xb9,0x0,0x3d,0x1,0x9c,0xff, +0xde,0x2,0x55,0x4,0x9c,0x1,0x5b,0x1,0x74,0x2,0x23,0x3, +0x95,0x5,0x50,0x6,0x9,0x5,0x2b,0x7,0x1b,0x9,0x50,0x6, +0x3d,0x4,0xc3,0x3,0x3f,0x0,0xe2,0xfc,0xfb,0xfb,0x7b,0xf9, +0xc3,0xf7,0xfe,0xf9,0x24,0xfa,0xb0,0xf8,0x84,0xfd,0xbe,0x3, +0x1,0x5,0x55,0x7,0x75,0xa,0x37,0x9,0x3,0x7,0xa1,0x3, +0xff,0xfc,0x72,0xf7,0x62,0xf2,0xe5,0xec,0x71,0xeb,0x1b,0xec, +0xd7,0xeb,0x4e,0xee,0x9e,0xf4,0xff,0xfa,0x3,0x0,0xdd,0x4, +0x39,0x8,0x3a,0x9,0xa8,0x9,0x1,0x8,0x48,0x4,0xf4,0x1, +0xe8,0xff,0x40,0xfe,0x5b,0xff,0x46,0x1,0x7,0x3,0x5e,0x4, +0xb0,0x4,0xb0,0x4,0x86,0x2,0xb2,0xff,0x88,0xfe,0x7f,0xfa, +0x50,0xf5,0xf0,0xf3,0x83,0xf2,0x27,0xf1,0x42,0xf4,0xb3,0xf8, +0x7,0xfc,0x81,0x1,0xa6,0x7,0xd4,0x9,0xf2,0xa,0xc8,0xb, +0xc6,0x6,0x9b,0x0,0xe4,0xfd,0xae,0xf8,0xc2,0xf3,0x7c,0xf3, +0x41,0xf2,0xd1,0xf0,0x5f,0xf3,0x48,0xf7,0xa,0xfa,0x7,0xfd, +0xf4,0x1,0x43,0x5,0xaa,0x4,0x2c,0x5,0x68,0x6,0x8,0x4, +0x57,0x0,0x1b,0xfe,0x5e,0xfd,0x82,0xfd,0xca,0xfe,0xe7,0x1, +0x2c,0x4,0xa7,0x4,0xa0,0x4,0x57,0x3,0xd6,0x1,0x1c,0xff, +0x98,0xfa,0x7,0xf9,0x6c,0xf9,0x11,0xfa,0x89,0xfd,0x57,0x1, +0x42,0x6,0xda,0xd,0x2,0x12,0x42,0x14,0xfb,0x18,0x4,0x1b, +0x5,0x19,0x5,0x17,0x0,0x14,0xbb,0xe,0x88,0xb,0xd8,0xa, +0x82,0x7,0xab,0x5,0x81,0x9,0x8e,0xb,0x79,0xc,0xf8,0x10, +0xd7,0x13,0x3f,0x15,0xb5,0x17,0x4f,0x18,0xeb,0x18,0xbc,0x1a, +0xd6,0x1b,0xa4,0x1d,0x4f,0x20,0x1c,0x22,0xa8,0x22,0x15,0x23, +0x76,0x22,0xd2,0x1d,0xd2,0x18,0xbb,0x15,0x54,0xf,0x40,0x8, +0xc2,0x4,0xd3,0x0,0xc6,0xfc,0xae,0xfb,0xc5,0xfb,0x7c,0xfc, +0x5b,0x0,0xf4,0x5,0xcf,0x7,0x26,0x9,0x4e,0xe,0x78,0xe, +0xf9,0x8,0x7a,0x7,0xa0,0x6,0xb1,0x2,0x62,0x0,0x53,0xff, +0x3d,0xfe,0xfa,0xfd,0x7f,0xfd,0x59,0xfc,0xc2,0xfa,0x2,0xf9, +0xe7,0xf6,0x56,0xf4,0xd3,0xf1,0x91,0xef,0x6b,0xef,0xee,0xf0, +0x39,0xf2,0x87,0xf6,0x33,0xfc,0xd3,0xfe,0x1f,0x3,0xa3,0x8, +0x50,0x8,0xb3,0x5,0x5f,0x6,0x64,0x5,0x12,0xff,0xad,0xfa, +0x89,0xfa,0x74,0xf6,0x96,0xf1,0x1f,0xf3,0x10,0xf4,0xa8,0xf2, +0x4a,0xf4,0x9f,0xf5,0x70,0xf5,0x24,0xf6,0xc6,0xf5,0xcd,0xf4, +0xa8,0xf4,0xbb,0xf3,0x71,0xf2,0x84,0xf2,0xe5,0xf2,0x9d,0xf2, +0x67,0xf3,0xea,0xf3,0xfb,0xf1,0x56,0xf1,0x6b,0xf1,0x6f,0xed, +0x12,0xe9,0xb0,0xe6,0x69,0xe2,0xf0,0xdd,0x22,0xdc,0x28,0xdb, +0x4f,0xda,0xc9,0xda,0x9c,0xdc,0x66,0xde,0x30,0xe0,0x76,0xe2, +0xf7,0xe2,0xbd,0xe1,0x2c,0xe1,0xfd,0xdf,0x99,0xdd,0xd2,0xdb, +0xb3,0xda,0x42,0xda,0x53,0xda,0x6b,0xda,0xe5,0xdb,0x45,0xde, +0x75,0xdf,0x8,0xe0,0x12,0xe1,0x39,0xe2,0x8d,0xe2,0x3f,0xe2, +0x49,0xe3,0xd8,0xe4,0xd9,0xe4,0xc6,0xe5,0xcb,0xe8,0xf0,0xea, +0x42,0xec,0xdb,0xee,0x6,0xf2,0xee,0xf3,0xdb,0xf4,0x71,0xf6, +0xf7,0xf7,0xfb,0xf7,0xf9,0xf7,0xca,0xf8,0x44,0xf9,0xb0,0xf9, +0xee,0xfa,0x98,0xfc,0xcb,0xfd,0x1,0xff,0x55,0x1,0x5d,0x3, +0xfd,0x3,0xf3,0x4,0x1d,0x6,0xea,0x5,0x3f,0x5,0x19,0x5, +0x5,0x5,0xac,0x4,0x88,0x4,0x24,0x5,0xd8,0x5,0x97,0x6, +0x5,0x8,0x1b,0x9,0x84,0x9,0xf6,0x9,0xff,0x9,0xcb,0x9, +0x71,0x9,0x5e,0x8,0x66,0x7,0xe5,0x6,0x96,0x6,0xa4,0x6, +0x7f,0x6,0x9b,0x6,0x20,0x7,0xc1,0x6,0xb8,0x6,0x83,0x7, +0x36,0x7,0xca,0x6,0xff,0x6,0x9c,0x6,0x55,0x6,0x45,0x6, +0x17,0x6,0x91,0x6,0x2e,0x6,0x74,0x4,0x20,0x4,0x3,0x5, +0xf6,0x4,0xb8,0x4,0x3b,0x5,0x75,0x5,0x16,0x5,0xd7,0x4, +0xb0,0x4,0x64,0x4,0xde,0x3,0x2,0x3,0x62,0x2,0x1a,0x2, +0xe7,0x1,0x6a,0x2,0xd6,0x2,0xf5,0x1,0x71,0x1,0xf2,0x1, +0xdd,0x1,0x4b,0x1,0xca,0x0,0x25,0x0,0xee,0xff,0xf,0x0, +0xc7,0xff,0x47,0xff,0xc7,0xfe,0x45,0xfe,0xdd,0xfd,0x85,0xfd, +0x74,0xfd,0x76,0xfd,0x17,0xfd,0xea,0xfc,0xac,0xfc,0xad,0xfb, +0x19,0xfb,0xbd,0xfa,0x19,0xf9,0x83,0xf7,0xf7,0xf6,0x25,0xf6, +0x1,0xf5,0x11,0xf4,0x6f,0xf3,0x5b,0xf3,0x1f,0xf3,0x9e,0xf2, +0xd6,0xf2,0x81,0xf3,0xd6,0xf3,0x98,0xf3,0xe6,0xf2,0x85,0xf2, +0x97,0xf2,0x33,0xf2,0x53,0xf1,0xea,0xf0,0x24,0xf1,0x82,0xf1, +0x15,0xf2,0x7b,0xf2,0x32,0xf2,0x55,0xf2,0x11,0xf3,0x1c,0xf3, +0xd3,0xf2,0xb1,0xf2,0xb2,0xf2,0x5c,0xf3,0xe0,0xf3,0xf1,0xf3, +0xb1,0xf4,0xac,0xf5,0x8a,0xf6,0x2b,0xf8,0x3c,0xfa,0x5,0xfc, +0xa1,0xfd,0x63,0xff,0xb2,0x0,0xdf,0x0,0x4c,0x1,0x6d,0x2, +0x78,0x2,0x5,0x2,0xb3,0x2,0xdc,0x3,0x13,0x5,0xc3,0x6, +0xa1,0x8,0x56,0xa,0x13,0xc,0xd3,0xd,0x14,0xf,0xd,0x10, +0xd,0x11,0x96,0x11,0x36,0x12,0xb1,0x13,0x16,0x15,0x89,0x15, +0xd0,0x15,0xfa,0x16,0x75,0x18,0x6a,0x19,0x6b,0x1a,0xbc,0x1b, +0x24,0x1d,0x7b,0x1e,0xae,0x1f,0x2a,0x21,0xc9,0x21,0xb7,0x21, +0x86,0x23,0x6a,0x24,0xe0,0x21,0x8b,0x20,0xf8,0x21,0x68,0x23, +0xdf,0x23,0x9f,0x23,0x22,0x25,0xbd,0x28,0x1c,0x2b,0xb5,0x2b, +0x43,0x2b,0xe5,0x2a,0x57,0x2c,0x78,0x2d,0x18,0x2c,0x8a,0x29, +0x3,0x28,0xf0,0x28,0x6e,0x2a,0xd9,0x29,0x4b,0x27,0x77,0x24, +0x99,0x24,0x39,0x27,0x2b,0x27,0x11,0x24,0xf1,0x22,0x8a,0x26, +0xb4,0x2a,0x5e,0x2a,0x72,0x28,0x43,0x27,0x9b,0x25,0xb5,0x26, +0xc5,0x27,0xc9,0x21,0x8a,0x1b,0x67,0x1d,0x0,0x22,0xae,0x21, +0x69,0x1c,0x43,0x18,0xaa,0x1a,0x68,0x20,0xe,0x21,0x38,0x1c, +0x83,0x19,0x88,0x1a,0xb5,0x1c,0x2d,0x20,0x3,0x20,0x97,0x1a, +0x35,0x1a,0x1d,0x1e,0xa4,0x1a,0x3d,0x14,0x9d,0x13,0xce,0x12, +0x86,0xf,0x1f,0x10,0xff,0x11,0x1d,0xf,0xb9,0x9,0x2e,0x7, +0x4f,0x9,0x1c,0x9,0x2c,0x1,0x23,0xfc,0xee,0xfe,0x97,0xff, +0x88,0xff,0x37,0x2,0xb4,0xff,0x28,0xfd,0x7f,0x5,0xc1,0xe, +0xb8,0xc,0xe0,0x6,0x89,0x7,0xdf,0x9,0x6a,0x6,0xbd,0x0, +0x35,0xfc,0x77,0xf6,0xdb,0xf1,0xa9,0xf2,0xbe,0xf3,0x17,0xed, +0xae,0xe4,0x5c,0xe5,0xbd,0xe8,0xdd,0xe5,0xd2,0xe3,0xf5,0xe6, +0x4c,0xe8,0xc0,0xe6,0x55,0xe8,0x81,0xeb,0x7,0xe9,0xa,0xe5, +0x48,0xe9,0x5e,0xf0,0x20,0xef,0xfc,0xe8,0xb7,0xe9,0x6a,0xf1, +0x87,0xf3,0x72,0xed,0x7a,0xe8,0x54,0xe4,0xff,0xdc,0xc5,0xd7, +0xfb,0xd5,0x5b,0xd0,0x31,0xc8,0x36,0xc9,0x11,0xd1,0x9a,0xd1, +0xa2,0xd0,0x89,0xd7,0xb7,0xda,0xa2,0xd8,0x24,0xdd,0xc4,0xe4, +0x39,0xe7,0x77,0xe4,0xf7,0xe2,0xc3,0xe9,0x22,0xef,0xb1,0xe9, +0x91,0xe7,0x85,0xed,0x44,0xec,0x58,0xe5,0x7d,0xe3,0x6d,0xe0, +0xfe,0xd9,0x27,0xda,0xd7,0xdc,0xe1,0xd9,0xab,0xd8,0xad,0xdb, +0x64,0xdc,0x54,0xdc,0xe6,0xdc,0xc1,0xdd,0xcc,0xe0,0x48,0xe0, +0x0,0xde,0x81,0xe6,0xef,0xee,0xf6,0xe7,0xb7,0xe2,0x6e,0xe9, +0xcc,0xea,0xb8,0xe4,0xdc,0xe1,0xa9,0xdf,0xf,0xdf,0x84,0xe4, +0x1d,0xe8,0x9e,0xe7,0x60,0xe9,0x2e,0xe9,0xbe,0xe5,0x12,0xe7, +0xb0,0xe9,0xd6,0xe9,0xb8,0xed,0x9b,0xee,0xa3,0xe8,0x8f,0xeb, +0xd1,0xf1,0xe2,0xea,0x9e,0xe8,0x7f,0xf4,0x7e,0xf6,0xb,0xee, +0xed,0xef,0x52,0xf6,0x68,0xf0,0x6a,0xe4,0x6f,0xe4,0x4c,0xee, +0xd4,0xee,0x71,0xe8,0xf1,0xed,0x26,0xf9,0xbf,0xf8,0xf8,0xf3, +0xa7,0xf7,0xc3,0xfd,0xd6,0xfe,0x14,0xfe,0xf9,0xfc,0x69,0xfa, +0x60,0xf9,0x55,0xfa,0x15,0xf8,0xbc,0xf1,0x2c,0xef,0xf7,0xf4, +0x85,0xfb,0xc4,0xfd,0xf6,0x0,0x62,0x5,0xcf,0x7,0x59,0x9, +0xf6,0x5,0x5e,0xfd,0xa9,0xfb,0xd5,0x2,0xcd,0x7,0x2a,0x6, +0x76,0x3,0x9a,0x8,0x44,0x12,0x51,0x11,0x9,0xa,0x4d,0xc, +0x8e,0x11,0x92,0xf,0xdc,0xc,0xfb,0xb,0xb7,0x8,0xc5,0x4, +0xf2,0x2,0x8b,0x2,0xeb,0x1,0x1e,0x2,0x5,0x6,0x82,0x9, +0xd8,0x7,0xe3,0x8,0x60,0x10,0x86,0x12,0x96,0xd,0xd0,0xd, +0x79,0x11,0x20,0xe,0x71,0x8,0xb2,0x8,0xeb,0x8,0xec,0x1, +0xb3,0xfb,0x5f,0xff,0xc7,0x2,0xb1,0xfc,0x40,0xfc,0xd7,0x8, +0xd,0xf,0x50,0x9,0xe9,0x8,0xc2,0x10,0xca,0x13,0xa9,0xe, +0x78,0xa,0x6a,0xb,0xd3,0x9,0xfd,0x3,0x24,0x3,0x6b,0x6, +0x54,0x6,0x65,0x5,0xd1,0x6,0xf1,0x8,0x85,0xa,0xcc,0x8, +0x53,0x5,0xb7,0x5,0x16,0x7,0x2c,0x5,0x7d,0x3,0x11,0x4, +0x5a,0x5,0x9f,0x5,0x88,0x4,0xa1,0x7,0xf1,0xf,0x6a,0x13, +0x81,0x11,0x32,0x13,0xd4,0x13,0x89,0xc,0x9c,0x6,0x27,0x7, +0x5,0x4,0xc0,0xfb,0xe0,0xf9,0x40,0xfe,0x92,0xfe,0xbd,0xfc, +0xb6,0xfe,0xb0,0xff,0x45,0xfe,0xda,0xff,0x58,0x2,0xd,0x2, +0xa7,0x0,0x2f,0xfe,0x21,0xfb,0x3a,0xf9,0x8,0xf7,0x64,0xf5, +0x43,0xf5,0x42,0xf3,0x70,0xf3,0x79,0xfb,0x8,0x1,0x9f,0xfd, +0xb8,0xfd,0x80,0x3,0xaf,0x2,0x6,0xfe,0x2d,0xfe,0x5e,0xfe, +0x15,0xfc,0x81,0xfa,0x2,0xf8,0xb,0xf6,0x74,0xf6,0xbb,0xf5, +0xc6,0xf6,0x40,0xfb,0xc3,0xfc,0x4,0xff,0xde,0x5,0x86,0x7, +0xc7,0x4,0xef,0x5,0x20,0x5,0x4d,0x1,0x1f,0x2,0x35,0x3, +0xc8,0x1,0x40,0x4,0xf1,0x7,0x35,0x8,0x56,0x8,0x3f,0x8, +0x6a,0x5,0x60,0x0,0x1f,0xfa,0x49,0xf6,0x13,0xf6,0xba,0xf3, +0x81,0xf0,0x7e,0xf4,0x8b,0xfb,0xcb,0xfc,0x75,0xfd,0x78,0x3, +0x66,0x8,0xe8,0x9,0x76,0xc,0x9a,0xc,0x87,0x8,0xe,0x7, +0x70,0x6,0x40,0x1,0x83,0xfd,0x2b,0xfe,0x63,0xfd,0xfc,0xfb, +0x46,0xfd,0x12,0xfe,0x6,0xfd,0x6c,0xfc,0xe2,0xfb,0xa2,0xfa, +0x20,0xfa,0x17,0xfa,0xe9,0xf8,0x51,0xf8,0x33,0xfa,0xae,0xfc, +0x2c,0xff,0x5e,0x2,0xef,0x4,0x90,0x7,0x7c,0xa,0xd7,0xa, +0xa,0xa,0x73,0x9,0x57,0x6,0x72,0x3,0x82,0x2,0xdf,0xfe, +0x43,0xfc,0xed,0xff,0x9b,0x3,0x65,0x5,0xd4,0x9,0xd0,0xd, +0xfd,0xe,0x83,0x10,0xa6,0x10,0x54,0xd,0x60,0xa,0x42,0x9, +0x95,0x7,0x14,0x6,0x3c,0x6,0x4b,0x6,0xb9,0x6,0x75,0x9, +0x31,0xb,0x36,0xa,0xbc,0x9,0xdb,0x8,0x87,0x6,0xbc,0x4, +0x92,0x0,0xce,0xfa,0x5f,0xfa,0xea,0xfb,0x6a,0xfa,0xd0,0xfb, +0x1d,0x1,0x26,0x5,0x4a,0x9,0xf,0xe,0x18,0x10,0xc9,0xf, +0xdf,0xd,0xe5,0x9,0xf0,0x5,0xb3,0x2,0x36,0xfe,0xa6,0xf9, +0x5b,0xf8,0x25,0xf9,0x4d,0xf9,0x4c,0xfb,0xab,0xff,0x82,0x1, +0xb8,0x1,0x3d,0x4,0x67,0x5,0xc3,0x2,0xe2,0xff,0x4f,0xfd, +0x7d,0xfa,0x73,0xf9,0xd8,0xf9,0xb7,0xfa,0x86,0xfd,0x16,0x2, +0x37,0x6,0x9e,0x9,0x2b,0xd,0x4f,0xf,0xc1,0xd,0xbc,0x9, +0xfa,0x5,0xcb,0x2,0x3b,0xff,0x1a,0xfc,0x5d,0xfc,0x6c,0xff, +0xa0,0x0,0xcb,0x1,0x85,0x6,0x2f,0x9,0x7b,0x8,0x59,0xa, +0xee,0xa,0x33,0x7,0xa,0x6,0xad,0x5,0x11,0x1,0x51,0xfd, +0xd5,0xfb,0x94,0xfa,0x6b,0xfc,0xf,0xff,0xfe,0xff,0x7e,0x3, +0xc2,0x7,0xd6,0x9,0xf5,0xd,0x54,0x12,0x90,0x12,0x7e,0x12, +0x6c,0x12,0x2f,0xe,0xc4,0x8,0xc3,0x4,0xff,0xfe,0xf2,0xf8, +0x58,0xf6,0xbf,0xf4,0x5b,0xf3,0x34,0xf5,0x1c,0xf8,0xa1,0xf9, +0xc9,0xfc,0x69,0x1,0x48,0x4,0xc9,0x6,0xf5,0x9,0x8c,0xa, +0xb3,0x8,0xc8,0x7,0xa2,0x6,0x99,0x3,0xd2,0x0,0x84,0xfe, +0x22,0xfc,0x12,0xfb,0x4e,0xfa,0xb9,0xf8,0x2f,0xf8,0x4b,0xf9, +0x2b,0xfa,0x9,0xfa,0xed,0xfa,0xff,0xfc,0xc0,0xfd,0xf2,0xfd, +0xd2,0xfd,0x1e,0xfc,0xda,0xfb,0xab,0xfc,0x78,0xfb,0xa6,0xfb, +0x9f,0xfd,0x6b,0xfd,0xfa,0xfc,0x1e,0xfe,0xea,0xfe,0xae,0xff, +0xbf,0x0,0x48,0x0,0x8f,0xfe,0xa9,0xfd,0xaa,0xfc,0x21,0xfa, +0xf5,0xf7,0x3c,0xf7,0x36,0xf7,0xaf,0xf7,0x91,0xf8,0xa7,0xf9, +0xff,0xf9,0x8d,0xfa,0x59,0xfc,0xac,0xfb,0x5a,0xf9,0xac,0xf9, +0x5a,0xf9,0xea,0xf6,0x4a,0xf4,0x20,0xf1,0x33,0xf1,0xbd,0xf3, +0x42,0xf3,0x42,0xf4,0x96,0xf8,0x63,0xfa,0xf6,0xfa,0x52,0xfc, +0x9e,0xfb,0x93,0xf9,0x85,0xf8,0xd3,0xf6,0xcc,0xf3,0x8b,0xf3, +0x39,0xf5,0x2f,0xf4,0x6c,0xf4,0xd9,0xf6,0xc9,0xf5,0xfd,0xf5, +0xbe,0xf9,0x55,0xf9,0x92,0xf7,0xb,0xf9,0xdd,0xf6,0x67,0xf1, +0x34,0xf0,0x58,0xef,0x2c,0xeb,0x6e,0xeb,0xf,0xf0,0xd1,0xf1, +0xb3,0xf3,0x7e,0xf7,0xe4,0xf8,0x35,0xf9,0x4,0xf9,0xcf,0xf7, +0xd9,0xf8,0x2c,0xfa,0xb8,0xf8,0x35,0xf7,0x64,0xf6,0x75,0xf4, +0x6d,0xf2,0x91,0xf2,0x9d,0xf3,0x92,0xf4,0xf6,0xf7,0x8e,0xfa, +0xe5,0xf9,0x2,0xfc,0xe0,0xfd,0x97,0xfa,0xdf,0xf9,0xcc,0xfb, +0xed,0xfa,0xcb,0xfb,0x1c,0xfe,0x2b,0xfd,0xb5,0xfc,0xd0,0xfe, +0x3a,0xff,0x5,0xfe,0x88,0xff,0x61,0x2,0x8d,0x2,0xb2,0x1, +0xd3,0x0,0x72,0xff,0x7f,0xff,0xd6,0xfd,0x7,0xf9,0xd,0xf9, +0x81,0xfd,0xfd,0xfd,0xe5,0xfd,0x5a,0x2,0x5f,0x5,0xd7,0x5, +0x72,0x8,0x8a,0x9,0x8b,0x8,0x7a,0xa,0x89,0xa,0x68,0x6, +0x82,0x4,0x38,0x3,0x1c,0x0,0x24,0xff,0x39,0xff,0x90,0xfe, +0x59,0x0,0x94,0x3,0x22,0x3,0x57,0x1,0xf4,0x2,0x75,0x2, +0x4,0xff,0xe3,0x0,0x35,0x3,0xc,0x1,0xfe,0x1,0x68,0x3, +0x6e,0x0,0x7,0xff,0x3d,0xff,0x1,0xff,0x21,0x1,0x38,0x3, +0xae,0x2,0xd0,0x2,0xac,0x3,0x29,0x0,0x1b,0xfa,0xc5,0xf7, +0x91,0xf5,0x84,0xf2,0xb4,0xf5,0x9b,0xfa,0xdd,0xfc,0xbe,0x2, +0x6,0x9,0x8e,0xa,0xee,0xb,0x37,0xd,0xf1,0xa,0x95,0x6, +0xbd,0x2,0x55,0xff,0xc7,0xfb,0xa8,0xfa,0xc7,0xfb,0xb2,0xfb, +0xfd,0xfc,0x6e,0x1,0x6a,0x5,0xc1,0x7,0x24,0x8,0x2e,0x7, +0x3b,0x6,0xbe,0x3,0xaa,0x0,0x92,0xfe,0xee,0xfc,0xbd,0xfd, +0xb4,0xff,0x8a,0x0,0xd,0x3,0xc8,0x5,0xac,0x6,0x22,0x8, +0xa8,0x8,0x6e,0x8,0x8c,0xa,0xf8,0xb,0x54,0xa,0x61,0x7, +0xfa,0x3,0xac,0x0,0x71,0xfd,0x5e,0xfb,0xe2,0xfb,0xb2,0xfd, +0xef,0x0,0xd6,0x5,0xc3,0xa,0x34,0xf,0x44,0x11,0xdb,0x10, +0xc7,0x10,0xd3,0xf,0x7b,0xd,0xbc,0xa,0x32,0x7,0x53,0x6, +0xb8,0x7,0x6e,0x7,0xea,0x9,0x49,0xf,0x0,0x11,0xd1,0x11, +0x80,0x14,0xc2,0x14,0x45,0x12,0x9b,0x10,0xb2,0x10,0x21,0x10, +0x17,0xf,0x7b,0x10,0xd5,0x11,0x7b,0x11,0xc6,0x12,0x17,0x14, +0xfc,0x12,0xbf,0x11,0x20,0x11,0x33,0x10,0xd1,0xe,0x46,0xe, +0x5f,0xe,0xc6,0xc,0xe,0xd,0x25,0x10,0x3f,0xf,0x61,0xe, +0x65,0x12,0x22,0x13,0x87,0x11,0xe9,0x13,0xeb,0x14,0x36,0x13, +0xbe,0x13,0xf8,0x14,0xd3,0x14,0xe5,0x14,0x96,0x15,0x82,0x15, +0x87,0x14,0x8f,0x13,0x24,0x12,0x8f,0x11,0xc7,0x12,0xb2,0x12, +0x24,0x12,0xf8,0x12,0xb5,0x11,0x5e,0xf,0xf1,0xe,0x7d,0xe, +0x98,0xd,0xbd,0xb,0x2a,0x9,0xf6,0x9,0x39,0xb,0x40,0x8, +0x3b,0x6,0x39,0x7,0x74,0x6,0xdf,0x4,0x7,0x5,0x9d,0x3, +0x18,0xff,0x9c,0xfb,0x62,0xfa,0x26,0xf8,0x5e,0xf5,0x7b,0xf4, +0x19,0xf4,0xe,0xf3,0x7c,0xf2,0x69,0xf2,0x42,0xf2,0xa,0xf2, +0x90,0xf1,0x7d,0xf0,0xb7,0xee,0x8b,0xec,0xdd,0xea,0xf9,0xe9, +0x3d,0xe8,0x39,0xe5,0x9c,0xe3,0x91,0xe3,0xa6,0xe2,0x21,0xe2, +0x3a,0xe3,0xe6,0xe2,0xd9,0xe0,0x68,0xe0,0xee,0xe0,0xcc,0xdf, +0x32,0xde,0x3b,0xdd,0xe4,0xdb,0xf,0xdb,0x4f,0xdb,0x47,0xdb, +0x51,0xdb,0xd0,0xdb,0x58,0xdc,0x40,0xdd,0x55,0xdd,0xc2,0xdc, +0x90,0xdd,0x5c,0xdd,0xf9,0xda,0x13,0xda,0xf4,0xd9,0x48,0xd8, +0x37,0xd7,0x68,0xd7,0x37,0xd7,0x51,0xd6,0x78,0xd5,0x69,0xd6, +0x6c,0xd8,0x6b,0xd8,0x38,0xd7,0xe2,0xd6,0x65,0xd6,0xcc,0xd5, +0x46,0xd6,0xa0,0xd6,0xbc,0xd5,0x48,0xd5,0x71,0xd6,0x46,0xd7, +0x28,0xd7,0x5c,0xd8,0x17,0xda,0xd7,0xd9,0xf,0xd9,0x98,0xd9, +0x49,0xda,0x4d,0xda,0x4b,0xda,0x5a,0xda,0x9,0xda,0x44,0xda, +0xe9,0xdb,0x73,0xdd,0x47,0xde,0xb3,0xdf,0xa5,0xe1,0xf7,0xe3, +0x89,0xe6,0x71,0xe8,0x99,0xea,0x8b,0xec,0x83,0xec,0x50,0xed, +0xc8,0xef,0x62,0xf0,0x97,0xf0,0x1f,0xf2,0x9a,0xf2,0x3b,0xf3, +0x60,0xf5,0x3a,0xf7,0x4e,0xf9,0x7a,0xfb,0x67,0xfc,0xe8,0xfd, +0x44,0x0,0x9d,0x1,0x7d,0x2,0x29,0x3,0x48,0x3,0x10,0x4, +0x5e,0x5,0xe5,0x5,0x1d,0x6,0xe5,0x6,0xd6,0x7,0x8e,0x8, +0xac,0x9,0x41,0xb,0x31,0xc,0x58,0xc,0xe1,0xc,0x64,0xe, +0x25,0x10,0xb9,0x10,0xea,0xf,0x3a,0xf,0x7b,0xf,0x14,0x10, +0x86,0x10,0x8,0x11,0xe7,0x11,0x30,0x13,0x1d,0x15,0x15,0x17, +0xaf,0x17,0xef,0x17,0x60,0x19,0x26,0x1a,0x54,0x19,0xc3,0x18, +0x9a,0x18,0x6f,0x18,0xdf,0x18,0xd3,0x18,0x8f,0x17,0x27,0x17, +0x99,0x18,0xa,0x1a,0x78,0x1a,0xb3,0x1a,0x1,0x1b,0x53,0x1b, +0x9f,0x1b,0xea,0x1a,0xec,0x19,0x53,0x1a,0x42,0x1a,0xfe,0x18, +0x5d,0x19,0x70,0x1a,0xac,0x1a,0x64,0x1c,0x46,0x1e,0xed,0x1d, +0x95,0x1e,0xb,0x21,0xed,0x21,0x61,0x21,0xb8,0x20,0x8e,0x1f, +0x59,0x1e,0x6,0x1d,0x19,0x1b,0x8c,0x1a,0x2e,0x1c,0x50,0x1c, +0xe3,0x19,0x8a,0x1a,0xfa,0x1e,0x7,0x20,0x8d,0x1e,0xb3,0x20, +0xac,0x21,0x20,0x1e,0x9d,0x1d,0xc0,0x1e,0x52,0x1a,0xee,0x16, +0x92,0x19,0x39,0x1a,0x2e,0x18,0x55,0x19,0x8d,0x1a,0x4c,0x1a, +0xd,0x1d,0xee,0x1f,0x54,0x1f,0x38,0x1e,0x11,0x1c,0x90,0x19, +0x61,0x1b,0xa4,0x1b,0x47,0x16,0xae,0x15,0xee,0x18,0xf3,0x15, +0x6d,0x13,0x49,0x15,0xc0,0x13,0xc4,0x12,0x85,0x13,0x61,0xc, +0xdd,0x4,0x62,0x7,0x5c,0x9,0xe8,0x5,0x8,0x7,0xa2,0xc, +0xd7,0xf,0xa5,0x12,0x1b,0x16,0x17,0x16,0x55,0x15,0x82,0x16, +0x73,0x13,0xe,0xc,0x18,0x7,0x6f,0x4,0x55,0x1,0x7b,0xfd, +0x4c,0xfa,0x95,0xfb,0x5c,0xfe,0xe1,0xfb,0x5e,0xfa,0x3f,0x0, +0xbc,0x2,0x3e,0xfd,0x9c,0xfc,0xa5,0x1,0x9e,0x2,0x59,0x3, +0xe9,0x4,0x4c,0x0,0x7a,0xfd,0x21,0x4,0xdd,0x8,0xa9,0x3, +0x1b,0xfd,0x41,0xfd,0x11,0xfe,0x60,0xf9,0xc9,0xf5,0xbc,0xf5, +0xf9,0xf3,0x15,0xf3,0x39,0xf6,0x6a,0xf9,0xea,0xf8,0xbc,0xf5, +0xf7,0xf4,0x6f,0xf6,0x3b,0xf5,0xda,0xf2,0x4b,0xf0,0xa7,0xeb, +0x3d,0xeb,0x82,0xf3,0x8b,0xf8,0xb4,0xf0,0xd1,0xea,0xcf,0xf3, +0xc2,0xfa,0x57,0xf3,0x39,0xec,0xde,0xec,0xba,0xeb,0x16,0xe8, +0xb6,0xe9,0x51,0xe9,0x4,0xde,0xbb,0xdb,0x43,0xeb,0x6a,0xee, +0x61,0xe2,0x3d,0xe3,0xb8,0xea,0xf3,0xe7,0x34,0xe3,0x53,0xe4, +0x74,0xe7,0x90,0xe3,0xd4,0xdc,0xe,0xe6,0x95,0xf2,0x17,0xe9, +0x67,0xe1,0xef,0xef,0x86,0xf5,0x4,0xea,0xd7,0xea,0x75,0xf3, +0x1a,0xf0,0x25,0xed,0x51,0xf3,0x4e,0xf4,0xa4,0xeb,0x72,0xe5, +0xef,0xe9,0x58,0xef,0x2a,0xe9,0x22,0xe4,0xd8,0xee,0xf5,0xf7, +0x3b,0xf2,0x20,0xf1,0xa7,0xfc,0x7d,0x0,0x89,0xfa,0x8,0xfd, +0x67,0x4,0xe8,0x2,0xe0,0xfd,0xad,0xfe,0xfe,0x2,0x99,0x2, +0x3d,0xfe,0x6b,0x1,0x70,0x8,0xbd,0x6,0x83,0x5,0x9c,0xb, +0x40,0xb,0x6a,0x3,0x5d,0x1,0xe0,0x4,0x87,0x4,0x5e,0xff, +0xae,0xfc,0xbd,0xff,0x97,0x2,0x64,0x0,0xb8,0xfe,0x15,0x2, +0xf7,0x3,0x78,0x4,0x12,0xa,0xb9,0xb,0x33,0x6,0x7,0x8, +0x37,0xe,0x69,0xd,0xaa,0xa,0xc7,0x7,0xa7,0x5,0x91,0xa, +0x62,0xd,0x39,0x7,0x3d,0x5,0x95,0xa,0x95,0xd,0xb4,0xe, +0x67,0xe,0xf2,0x8,0x79,0x6,0x0,0xb,0xf6,0x9,0xdc,0x3, +0x8c,0x4,0x2a,0x7,0xee,0x6,0xac,0x7,0x9f,0x5,0x71,0x4, +0x62,0xa,0x68,0xb,0x5c,0x6,0xf,0x9,0x5c,0xd,0x6c,0xa, +0x15,0x7,0x55,0x4,0xf,0x2,0x5c,0x5,0x44,0x7,0x7,0x3, +0x75,0x4,0xcb,0xc,0xce,0xe,0x54,0xa,0x3a,0x8,0xd2,0xa, +0x4e,0x10,0xcb,0x10,0x2e,0x8,0x6f,0x2,0x31,0x3,0xe7,0xff, +0x3b,0xfb,0x1c,0xfa,0xf4,0xf6,0xd2,0xf5,0x81,0xfc,0xa4,0x3, +0xa0,0x6,0xb0,0x8,0xd1,0xb,0x5b,0xd,0x8b,0x8,0x9d,0x0, +0xc1,0xfc,0x58,0xfa,0x60,0xf5,0x9e,0xf2,0x20,0xf6,0x45,0xfb, +0xd,0xfc,0x69,0xfb,0xa1,0xfe,0xfd,0x1,0x1c,0x1,0x7d,0xfe, +0xcb,0xfb,0x9e,0xf8,0xb8,0xf5,0x91,0xf1,0x45,0xeb,0x87,0xe7, +0x0,0xe9,0xe7,0xeb,0x6d,0xed,0xd9,0xed,0xf8,0xee,0xa7,0xf2, +0xc8,0xf4,0x4,0xf2,0xad,0xf0,0x43,0xf2,0xca,0xef,0x85,0xeb, +0x5a,0xed,0xde,0xf3,0xab,0xf7,0x2c,0xf6,0x28,0xf5,0x72,0xf8, +0x51,0xfa,0x55,0xf8,0xe1,0xf7,0x19,0xf9,0x4f,0xf7,0x86,0xf2, +0x4,0xee,0xe2,0xea,0x5a,0xe8,0x9,0xe7,0x59,0xe7,0x85,0xe8, +0x52,0xec,0xa3,0xf2,0x2d,0xf7,0xfe,0xfa,0x1e,0x0,0xd3,0x1, +0x7f,0x0,0x23,0x1,0x61,0x0,0xc2,0xfb,0xcf,0xf7,0x6f,0xf4, +0x75,0xf0,0xae,0xef,0xa4,0xf1,0xda,0xf2,0xd8,0xf3,0x2c,0xf5, +0x68,0xf7,0x51,0xfb,0x7d,0xfd,0x30,0xfd,0xac,0xfd,0x53,0xfc, +0x8b,0xf8,0x19,0xf9,0x6c,0xfc,0x7,0xfc,0x63,0xfb,0x33,0xfd, +0x53,0xfd,0xb2,0xfc,0x2c,0xfe,0xe0,0xfe,0xaf,0xfc,0x95,0xf9, +0x23,0xf8,0x2d,0xf8,0x17,0xf6,0x5a,0xf1,0xb4,0xee,0x7a,0xef, +0xa4,0xef,0xbd,0xed,0xf9,0xed,0x74,0xf2,0xaf,0xf5,0x74,0xf5, +0x8d,0xf7,0x56,0xfb,0xd6,0xfb,0x7,0xfc,0xd,0xfd,0x91,0xfb, +0x33,0xfa,0xee,0xf9,0x32,0xf8,0xe8,0xf8,0xf,0xfc,0xa6,0xfa, +0x3f,0xf7,0x49,0xf7,0xf,0xf7,0xd7,0xf5,0x96,0xf6,0xfa,0xf6, +0xb6,0xf8,0xa0,0xff,0x97,0x5,0xd1,0x7,0x9,0xc,0xb,0xf, +0xe0,0xb,0xaa,0x7,0x46,0x4,0xc7,0x0,0x51,0x0,0xe2,0xfe, +0x39,0xf9,0x55,0xf8,0xc,0xfd,0x32,0xfd,0x8e,0xf9,0x63,0xf8, +0xca,0xf8,0x7d,0xf9,0xd8,0xfa,0x78,0xfd,0x2d,0x3,0x4d,0x9, +0xc9,0xb,0x22,0xd,0x49,0xf,0xc8,0xf,0xd0,0xe,0x35,0xd, +0xe4,0x8,0x20,0x3,0xf3,0x0,0x3b,0x2,0x4a,0x2,0xaa,0x1, +0x26,0x3,0xf6,0x3,0xb2,0x2,0xf2,0x1,0x1c,0x1,0xc0,0x0, +0x2d,0x3,0x9e,0x4,0x64,0x4,0x0,0x9,0x85,0x10,0x38,0x13, +0x8c,0x12,0x86,0x12,0x4f,0x11,0x56,0xe,0xcc,0xb,0xf9,0x8, +0xdd,0x4,0x31,0x1,0xef,0xfe,0x6,0xfe,0xe5,0xfd,0x62,0xfc, +0xab,0xf9,0x3a,0xf8,0xe2,0xf7,0x3a,0xf9,0x38,0xfe,0x24,0x4, +0x61,0x8,0xda,0xc,0xd,0x11,0x3c,0x12,0xa1,0x11,0x42,0x11, +0xe2,0xf,0xf4,0xb,0x8e,0x6,0x3c,0x3,0xf1,0x3,0xf8,0x4, +0xbc,0x3,0xf,0x4,0x65,0x5,0x5c,0x2,0xdf,0xfd,0x2f,0xfc, +0x6a,0xfa,0xdf,0xf8,0xb5,0xf9,0x26,0xfb,0x27,0xff,0x62,0x7, +0x66,0xe,0xb2,0x11,0xb4,0x13,0x8e,0x14,0xbf,0x13,0x40,0x11, +0x86,0xc,0x58,0x7,0xeb,0x3,0x73,0x1,0x93,0xff,0x9c,0xff, +0x7,0x1,0x47,0x2,0x4a,0x2,0x3d,0x0,0x83,0xfe,0xaa,0xff, +0x4c,0x0,0xe2,0xfe,0x4e,0x0,0x8a,0x4,0x8a,0x6,0x43,0x7, +0xc8,0x9,0x25,0xb,0xb5,0x8,0x2c,0x5,0x14,0x2,0x2f,0xff, +0x13,0xfe,0xce,0xfd,0xad,0xfc,0x14,0xfc,0x83,0xfa,0x4d,0xf8, +0x92,0xf9,0x38,0xf9,0x6c,0xf4,0x94,0xf4,0xf0,0xf7,0xa3,0xf6, +0x4d,0xf7,0x95,0xfb,0xbc,0xfb,0xac,0xfa,0xbc,0xfb,0x15,0xfc, +0x43,0xfe,0x9f,0x1,0xf2,0x0,0xf2,0xff,0x28,0x1,0xe4,0xfe, +0x40,0xfa,0xd0,0xf8,0xd3,0xf8,0x20,0xf8,0x98,0xf8,0xc0,0xfa, +0xf,0xfe,0x5b,0x1,0xfa,0x2,0x84,0x3,0xe2,0x2,0x26,0x0, +0xe8,0xfe,0x2d,0x1,0x52,0x1,0xff,0xfd,0xb9,0xfe,0x45,0x3, +0xa5,0x2,0x8b,0xfe,0x4b,0xfe,0xd4,0xfd,0x1c,0xfa,0x72,0xf9, +0xf4,0xfb,0x6b,0xfd,0x3f,0xff,0x86,0x1,0x9,0x3,0x91,0x5, +0xd4,0x7,0xfe,0x7,0x9,0x9,0xa1,0xa,0x93,0x8,0x9a,0x4, +0x89,0x1,0xc3,0xfc,0xfa,0xf7,0x3c,0xf8,0x26,0xfa,0xb7,0xfa, +0x29,0xfe,0x4f,0x3,0xda,0x5,0x1a,0x7,0x47,0x6,0xd2,0x1, +0xaf,0xfe,0x9,0xff,0x4f,0xff,0x56,0x0,0x67,0x4,0xb,0x8, +0xc,0xa,0xdd,0xd,0xf1,0x10,0x1a,0xf,0x12,0xc,0x3d,0xa, +0xe3,0x6,0x4e,0x2,0x24,0xfe,0x2e,0xfb,0x7a,0xf9,0x3e,0xf6, +0x90,0xf2,0xa,0xf3,0x9,0xf5,0xbe,0xf5,0xc6,0xf9,0x60,0x1, +0xd9,0x6,0x58,0xa,0x47,0xf,0xa1,0x12,0xf1,0x10,0x2c,0xe, +0xb1,0xc,0xc4,0x9,0xee,0x6,0x1b,0x6,0xe8,0x4,0x6c,0x4, +0x52,0x5,0xb4,0x4,0xe6,0x4,0x62,0x6,0x89,0x3,0x99,0xff, +0x2c,0x0,0x16,0x0,0x5e,0xfe,0xd5,0x0,0x88,0x4,0x8a,0x5, +0xce,0x6,0x2f,0x8,0x30,0x8,0x68,0x8,0xf,0x8,0x82,0x6, +0x4b,0x5,0x4,0x4,0xb4,0x2,0x3b,0x2,0xc6,0x1,0xc4,0x0, +0x70,0xff,0x41,0xff,0x9a,0x0,0x83,0xff,0xa8,0xfc,0xe5,0xfd, +0x4a,0x0,0x6d,0xff,0x1,0x0,0xa6,0x2,0x74,0x3,0x8b,0x4, +0x5,0x6,0xe9,0x4,0xa2,0x3,0x4f,0x2,0x3f,0xfe,0x39,0xfb, +0xb8,0xfa,0xe0,0xf8,0x7,0xf8,0x6f,0xfa,0xfa,0xfb,0xf6,0xfc, +0x7c,0xff,0x6f,0x0,0xed,0xff,0xb8,0x0,0xfb,0x0,0x85,0xff, +0x25,0xfd,0x80,0xf8,0xdb,0xf2,0xbe,0xf0,0x64,0xf1,0x12,0xf1, +0x46,0xf2,0xa,0xf8,0xcf,0xfe,0x88,0x4,0xc0,0xa,0x4b,0xf, +0x37,0x10,0x60,0xf,0x94,0xc,0x7c,0x7,0x9c,0x2,0x20,0xfe, +0xe8,0xf9,0xa6,0xf8,0x7f,0xf8,0xa5,0xf6,0x22,0xf8,0xb6,0xfc, +0x44,0xfc,0x56,0xfb,0xed,0xff,0x78,0x0,0xbc,0xfc,0x5d,0xfe, +0x8e,0xfe,0x12,0xf9,0x4b,0xf8,0x50,0xfa,0x43,0xf8,0xa8,0xf8, +0xe0,0xfc,0x3e,0xfe,0x7f,0xfe,0x72,0x0,0x7a,0x0,0xb5,0xfd, +0x2d,0xfa,0x3d,0xf6,0xa,0xf3,0x6e,0xf0,0x5e,0xed,0xa0,0xed, +0x59,0xf1,0xb9,0xf2,0x54,0xf4,0x58,0xf9,0x88,0xfb,0xf4,0xfb, +0xe8,0xff,0x9,0x2,0xe4,0xff,0x8b,0xfe,0x7d,0xfd,0x5c,0xfa, +0x31,0xf7,0xe6,0xf5,0x1f,0xf5,0xc4,0xf3,0xd8,0xf4,0x60,0xf8, +0xc8,0xf9,0xbc,0xfa,0x9b,0xfd,0xa1,0xfe,0x14,0xfe,0x38,0xfe, +0x9c,0xfd,0xe4,0xfc,0x2f,0xfc,0xdd,0xfa,0xb3,0xfb,0x4a,0xfd, +0xb9,0xfc,0xbb,0xfd,0x5b,0x0,0x5,0x0,0x33,0xff,0x59,0x0, +0x95,0xff,0xa8,0xfd,0x7d,0xfe,0xb,0xff,0xf,0xfd,0x91,0xfc, +0xc,0xfe,0xcd,0xfe,0x41,0xff,0x67,0xff,0x46,0xff,0x9a,0x0, +0x0,0x2,0xdd,0x1,0xac,0x1,0x75,0x1,0xaf,0x0,0xff,0xff, +0x24,0xff,0x46,0xfe,0x5e,0xfd,0xec,0xfb,0xa0,0xfb,0xb5,0xfc, +0xcd,0xfc,0xdf,0xfc,0x0,0xff,0x79,0x1,0xe8,0x2,0x7b,0x4, +0x8a,0x5,0x4a,0x4,0x2f,0x2,0x7c,0x0,0xf0,0xfd,0x8,0xfc, +0x68,0xfc,0x24,0xfd,0x29,0xff,0x69,0x3,0xdc,0x5,0x61,0x6, +0xf7,0x7,0xcb,0x8,0x1,0x8,0x68,0x7,0x97,0x6,0xd7,0x5, +0xff,0x5,0x57,0x6,0x2a,0x7,0x78,0x8,0x3c,0x9,0x20,0xa, +0xb4,0xb,0x51,0xd,0x28,0xf,0xba,0x10,0x39,0x10,0x57,0xe, +0x2a,0xd,0x63,0xb,0xd7,0x7,0x15,0x5,0xc3,0x3,0x7e,0x2, +0x36,0x2,0x48,0x3,0x4b,0x5,0x56,0x8,0x9f,0xa,0xa8,0xb, +0xfc,0xc,0x49,0xe,0xde,0xe,0xcc,0xd,0x32,0xb,0xcf,0x9, +0x84,0x8,0x12,0x6,0x79,0x6,0x13,0x8,0x24,0x7,0x81,0x7, +0xf,0x9,0x86,0x7,0x21,0x5,0xa0,0x3,0x39,0x1,0xe5,0xfe, +0x2,0xfe,0xdc,0xfd,0xdd,0xfd,0x50,0xfe,0x91,0xff,0x27,0x1, +0x4a,0x2,0xd6,0x2,0xf4,0x3,0xf9,0x5,0x6f,0x6,0xe2,0x5, +0x7a,0x6,0x11,0x5,0x1b,0x2,0x15,0x2,0x5e,0x1,0x13,0xfe, +0x4e,0xfd,0x78,0xfd,0xd3,0xfb,0x17,0xfc,0xf,0xfe,0x44,0xfe, +0xa1,0xfd,0x1e,0xfe,0xc6,0xfe,0xf6,0xfd,0x18,0xfd,0x18,0xfe, +0x83,0xfe,0x53,0xfc,0x92,0xfa,0xd4,0xfa,0xed,0xf9,0x62,0xf7, +0xd2,0xf6,0x46,0xf7,0x20,0xf5,0x23,0xf3,0x20,0xf4,0x20,0xf4, +0x95,0xf1,0x3d,0xf0,0x18,0xf0,0x84,0xee,0xbd,0xed,0x59,0xef, +0x33,0xef,0xe4,0xed,0xd,0xf0,0x5,0xf2,0xa8,0xf0,0xb7,0xf0, +0xf5,0xf1,0xab,0xf0,0x16,0xef,0x5,0xef,0xf8,0xee,0xe5,0xed, +0xbd,0xeb,0x7f,0xea,0xa0,0xea,0x66,0xe9,0x44,0xe8,0x38,0xea, +0xf9,0xeb,0x8f,0xeb,0xc9,0xec,0x2,0xef,0x54,0xee,0x52,0xed, +0x13,0xee,0x4e,0xed,0xe9,0xeb,0x72,0xec,0xa9,0xec,0x6f,0xec, +0x8a,0xed,0x8f,0xee,0xfe,0xee,0xba,0xef,0xb7,0xf0,0xf4,0xf1, +0x92,0xf2,0x9a,0xf2,0x48,0xf3,0x82,0xf3,0xe9,0xf2,0x24,0xf3, +0xc3,0xf3,0x28,0xf4,0xec,0xf4,0x9a,0xf5,0xbc,0xf5,0xa9,0xf5, +0xdf,0xf5,0x5e,0xf6,0x38,0xf6,0x5f,0xf5,0xcf,0xf4,0xc1,0xf4, +0xdf,0xf4,0x2f,0xf5,0x6e,0xf6,0x12,0xf8,0x83,0xf8,0x2e,0xf9, +0x49,0xfb,0xa0,0xfc,0x22,0xfd,0xba,0xfd,0x9f,0xfd,0xc,0xfe, +0x1f,0xff,0xc,0xff,0x22,0xff,0x71,0xff,0x3b,0xfe,0xd5,0xfd, +0x44,0xff,0xa5,0xff,0x79,0xff,0x74,0x0,0xad,0x0,0x15,0x0, +0xa,0x1,0x31,0x2,0xcf,0x1,0xc8,0x1,0xea,0x2,0x2a,0x4, +0xda,0x4,0xc5,0x4,0xd6,0x4,0x71,0x4,0xe5,0x2,0xc0,0x2, +0x33,0x3,0x68,0x2,0xc8,0x3,0x82,0x6,0x23,0x7,0xc8,0x7, +0x4b,0x8,0xd6,0x7,0x67,0x8,0x8e,0x7,0xa3,0x5,0xd0,0x6, +0x67,0x7,0xb7,0x5,0x5c,0x7,0xce,0xa,0x69,0xb,0xaf,0xb, +0xa6,0xd,0x65,0xf,0x8b,0x10,0x27,0x11,0xc6,0x10,0x2,0x11, +0x29,0x12,0x51,0x12,0x77,0x12,0xba,0x13,0xcf,0x14,0x38,0x16, +0xc8,0x17,0xc8,0x17,0x97,0x17,0x18,0x18,0x62,0x18,0xb4,0x18, +0x2a,0x18,0x28,0x17,0x2b,0x18,0x43,0x19,0x32,0x18,0xa5,0x17, +0x5d,0x18,0x5d,0x18,0xea,0x17,0x77,0x17,0xa6,0x16,0xe1,0x15, +0xe0,0x14,0x8b,0x13,0xf3,0x12,0x6f,0x12,0xa3,0x11,0xb,0x12, +0x1f,0x12,0xcc,0x10,0x3d,0x11,0x49,0x12,0x93,0x10,0x1d,0xf, +0xa,0xf,0x9f,0xd,0xf3,0xc,0xfc,0xc,0x29,0xa,0x8a,0x8, +0x89,0x9,0x16,0x6,0xae,0x1,0x1,0x3,0xa9,0x2,0xfc,0xfe, +0x6,0x0,0x5a,0x2,0xf6,0x1,0x3d,0x3,0x81,0x4,0xfa,0x3, +0xd5,0x3,0xf9,0x1,0xa9,0x0,0x55,0x2,0x3c,0x0,0x48,0xfc, +0xa4,0xfd,0x42,0xfe,0x79,0xfb,0x8f,0xfb,0xb8,0xfb,0x0,0xf9, +0x18,0xf8,0x93,0xf8,0xfb,0xf7,0x19,0xf7,0x2d,0xf5,0xfb,0xf3, +0x1d,0xf5,0x87,0xf4,0x15,0xf3,0xd6,0xf4,0xc2,0xf6,0xa7,0xf7, +0x93,0xf9,0x65,0xf9,0xec,0xf6,0xb1,0xf6,0x6a,0xf7,0x53,0xf5, +0x2,0xf1,0x26,0xed,0xea,0xeb,0x8c,0xec,0xe4,0xeb,0x48,0xe9, +0x69,0xe7,0x1a,0xe8,0x30,0xe9,0x6d,0xe7,0x39,0xe4,0x47,0xe3, +0xd4,0xe3,0xfb,0xe2,0xa8,0xe1,0xe,0xe2,0xae,0xe3,0x8c,0xe5, +0x5,0xe7,0x53,0xe7,0x4c,0xe7,0xf1,0xe6,0xed,0xe4,0xef,0xe2, +0xd2,0xe1,0x39,0xdf,0xbe,0xdc,0x54,0xdd,0x5f,0xde,0xef,0xdd, +0xe,0xdf,0x4f,0xe2,0x63,0xe3,0x74,0xe1,0x4e,0xe1,0x24,0xe4, +0x95,0xe5,0xa,0xe4,0xe9,0xe2,0xa3,0xe4,0x25,0xe7,0xcd,0xe8, +0x1d,0xeb,0xc8,0xec,0x89,0xed,0x12,0xf2,0xf7,0xf6,0x70,0xf5, +0xa8,0xf3,0x1a,0xf6,0x69,0xf6,0x56,0xf4,0x88,0xf3,0xb2,0xf2, +0xe7,0xf3,0xb,0xf9,0xd2,0xfc,0x3a,0xfe,0x31,0x2,0x6f,0x8, +0xef,0xd,0x5,0x11,0xf5,0xf,0xd5,0xe,0x15,0x12,0x55,0x13, +0x3e,0xf,0xf7,0xc,0x61,0xe,0x8d,0x10,0x83,0x13,0x10,0x16, +0xde,0x17,0x7f,0x1a,0x8b,0x1c,0x99,0x1c,0xac,0x1b,0x29,0x1c, +0x8b,0x1f,0x5,0x22,0x2,0x21,0x42,0x21,0xba,0x24,0x99,0x26, +0xfe,0x24,0xa7,0x23,0x59,0x25,0x18,0x29,0xee,0x2c,0xaf,0x2e, +0x90,0x2d,0xc8,0x2c,0xb4,0x2d,0x9f,0x2c,0xa2,0x28,0xd1,0x24, +0x39,0x22,0x54,0x20,0xd3,0x1f,0x33,0x21,0x97,0x22,0x5e,0x23, +0xf3,0x25,0xc6,0x28,0xe8,0x27,0xc0,0x25,0x50,0x25,0xd,0x25, +0xc6,0x24,0x8b,0x24,0xeb,0x22,0x7d,0x20,0x21,0x1e,0x3c,0x1d, +0x52,0x1f,0x83,0x20,0xb8,0x1e,0xcc,0x1e,0x9b,0x20,0x9,0x20, +0xdb,0x1d,0xda,0x1a,0xeb,0x17,0x1,0x17,0x1e,0x16,0x7b,0x15, +0x38,0x17,0x85,0x17,0x6f,0x15,0x93,0x14,0x7d,0x13,0x81,0x11, +0x3a,0x11,0x56,0x11,0x20,0x11,0xca,0x12,0xf5,0x13,0x12,0x11, +0x22,0xd,0x75,0xb,0x8f,0x9,0x98,0x5,0x30,0x1,0x8a,0xfe, +0xbb,0xff,0xdd,0x2,0x96,0x2,0x4e,0xfe,0xe6,0xfa,0x5,0xfb, +0x20,0xfa,0x66,0xf5,0xbd,0xf3,0x1e,0xf6,0x4f,0xf4,0x8f,0xf0, +0x2,0xf0,0x4a,0xee,0x7a,0xeb,0x1f,0xeb,0xc0,0xe9,0x33,0xe6, +0xfa,0xe5,0xab,0xea,0x71,0xed,0xdf,0xe9,0x3a,0xe6,0xb3,0xe6, +0x54,0xe5,0xcc,0xdf,0x79,0xdc,0x67,0xdd,0xa5,0xdc,0xbb,0xd8, +0xa2,0xd7,0xfd,0xd8,0xc8,0xd6,0x9d,0xd3,0x5a,0xd4,0x12,0xd5, +0x86,0xd4,0x8a,0xd7,0x12,0xda,0x9d,0xd7,0xe6,0xd8,0xab,0xde, +0xd0,0xdd,0xd3,0xd9,0x26,0xdb,0xf4,0xdd,0xce,0xdf,0x40,0xe0, +0x29,0xde,0xbc,0xde,0xaa,0xe1,0xa3,0xe1,0x25,0xe2,0x24,0xe3, +0xdb,0xdf,0x5a,0xde,0x58,0xe1,0xe4,0xe0,0x5,0xdf,0x92,0xe1, +0xa,0xe3,0xe,0xe4,0x93,0xeb,0xa3,0xf1,0x2e,0xef,0x8d,0xed, +0x80,0xf0,0x7a,0xf1,0x7c,0xef,0x11,0xed,0xdb,0xeb,0x17,0xee, +0x93,0xf1,0xf6,0xf0,0xea,0xee,0x8d,0xf1,0x8b,0xf4,0xc1,0xf3, +0x96,0xf3,0x4b,0xf2,0x9,0xef,0xa1,0xf1,0xa2,0xf5,0x2b,0xf3, +0x37,0xf2,0x5c,0xf6,0x4f,0xf9,0x2a,0xfb,0x9b,0xfd,0x31,0xff, +0xa5,0xfe,0xed,0xfa,0x57,0xf8,0xc1,0xfb,0x23,0xfe,0x79,0xf9, +0xcd,0xf7,0x51,0xfd,0x4d,0xfe,0xd1,0xfb,0xd0,0xfe,0x31,0xff, +0x18,0xfb,0x53,0xfe,0x83,0x3,0x91,0x1,0x81,0x1,0x55,0x7, +0xa2,0xa,0xd3,0x9,0x71,0xa,0x9a,0xd,0xd0,0xe,0xb5,0xb, +0x8e,0x8,0xc5,0x8,0xeb,0x7,0x5c,0x3,0xa7,0x1,0x3e,0x4, +0x19,0x4,0x75,0x2,0xa4,0x3,0xba,0x4,0xcc,0x6,0xd2,0xb, +0xff,0xd,0x53,0xc,0x29,0xc,0xa2,0xd,0xcd,0xd,0x26,0xc, +0xcc,0x9,0xb,0x7,0x95,0x3,0xbb,0x1,0xf0,0x2,0x64,0x4, +0x0,0x5,0xd,0x6,0x2c,0x7,0x69,0x8,0x5b,0x9,0xa,0x8, +0xbe,0x5,0x6c,0x4,0x9d,0x3,0x2f,0x5,0x43,0x8,0xb8,0x7, +0x15,0x7,0xc5,0x9,0xb6,0x7,0x8,0x2,0x5d,0x2,0xd7,0x3, +0xca,0x0,0xa7,0xfe,0xcc,0xfd,0x3a,0xfc,0x84,0xfc,0x7f,0xfd, +0xb5,0xfd,0xa6,0xfe,0xcb,0xff,0xb1,0x1,0x87,0x4,0xb3,0x5, +0xd,0x7,0x60,0xa,0xe3,0xa,0x97,0x8,0x8c,0x9,0x2c,0xc, +0x13,0xb,0x11,0x8,0xd,0x6,0x69,0x3,0x13,0x0,0x91,0xfe, +0x42,0xfe,0x10,0xfd,0x26,0xfd,0x9,0x0,0xf,0x1,0xea,0xfe, +0xc4,0xfe,0x20,0x0,0x32,0xff,0x8a,0xfe,0x88,0x0,0x86,0x3, +0x8e,0x6,0x5a,0x8,0x8d,0x7,0x5c,0x5,0xb0,0x3,0xe,0x3, +0x5f,0x2,0xdd,0x0,0xbb,0xff,0x1,0x0,0xa8,0x0,0xa,0x0, +0xd8,0xfe,0x89,0xfe,0x7b,0xfd,0xc9,0xfb,0x6e,0xfc,0xb5,0xfd, +0xd9,0xfd,0xa3,0xff,0xda,0x1,0x9e,0x1,0x45,0x1,0xe2,0x1, +0xae,0x1,0x59,0x1,0x3c,0x1,0x16,0x0,0x30,0xff,0x9a,0xff, +0x74,0xff,0x36,0xff,0xec,0xff,0x30,0xff,0xf4,0xfd,0x28,0xff, +0x7e,0x0,0x4e,0x0,0x53,0x0,0xaa,0x0,0x30,0x0,0x86,0xfe, +0x9c,0xfd,0x9e,0xfe,0xa2,0xfe,0x92,0xfd,0x97,0xfd,0x63,0xfd, +0xdb,0xfd,0xda,0xff,0xb8,0xff,0x13,0xfe,0x2c,0xfe,0x5e,0xfe, +0x1a,0xfe,0x69,0xff,0xa3,0x0,0xd8,0xff,0xd7,0xff,0xf1,0x1, +0x87,0x2,0xf2,0x0,0xbb,0x0,0xd,0x2,0x8d,0x1,0x66,0xff, +0x47,0x0,0x4b,0x3,0x39,0x2,0x8f,0xff,0x15,0x0,0xa6,0xff, +0x78,0xfd,0xd9,0xfd,0x66,0xff,0x98,0xff,0x7e,0xff,0x4f,0x0, +0x42,0x1,0x7,0x1,0xf3,0x0,0x2d,0x1,0xfc,0xff,0x23,0xff, +0xfd,0xfe,0xb0,0xfd,0xa6,0xfc,0x35,0xfb,0xa1,0xf7,0x34,0xf5, +0xa7,0xf5,0x9a,0xf6,0xe7,0xf7,0x14,0xfb,0x32,0xff,0xce,0x2, +0x9e,0x6,0xb9,0x9,0xfe,0x9,0x40,0x9,0x95,0x9,0xd,0x9, +0x17,0x6,0xdb,0x3,0x52,0x5,0xce,0x5,0x32,0x2,0x53,0x0, +0xd1,0x0,0x2e,0xff,0x6,0xfe,0xec,0xfe,0x75,0xfe,0xf8,0xfc, +0xdf,0xfc,0xd0,0xfd,0xa3,0xfd,0x7c,0xfc,0x5e,0xfd,0x84,0x0, +0x28,0x4,0x79,0x8,0xa4,0xd,0x4e,0x12,0x2a,0x14,0x5b,0x13, +0xaf,0x12,0x36,0x11,0xe0,0xc,0x38,0x8,0x72,0x5,0x16,0x3, +0x35,0x0,0x59,0xfe,0x9f,0xfd,0xea,0xfc,0x15,0xfe,0xa5,0x0, +0xd8,0x1,0x77,0x4,0x6e,0x8,0xcc,0x8,0x8c,0x7,0x7c,0x7, +0x6d,0x6,0x47,0x5,0xdd,0x5,0x1a,0x6,0xfe,0x4,0x3b,0x5, +0x30,0x7,0xe6,0x6,0x2a,0x4,0x37,0x2,0x1f,0x1,0x24,0x0, +0x80,0xfe,0x77,0xfc,0xa5,0xfc,0x3d,0xfd,0x1,0xfc,0x31,0xfc, +0xab,0xfd,0x5d,0xfe,0x6f,0x0,0x92,0x3,0x82,0x5,0x43,0x7, +0x78,0x8,0x66,0x7,0xdd,0x6,0xe2,0x7,0x1d,0x6,0xec,0x3, +0xf2,0x4,0x55,0x2,0x56,0xfc,0xff,0xfa,0xdc,0xf9,0x81,0xf5, +0x8e,0xf4,0x6b,0xf6,0x19,0xf8,0x6f,0xfc,0x30,0x2,0xd0,0x5, +0x86,0x8,0xa,0xb,0xc0,0xa,0x5a,0x8,0x94,0x7,0x90,0x7, +0x96,0x5,0x79,0x2,0xe0,0xff,0x63,0xfe,0x8e,0xfc,0xf9,0xf9, +0xc5,0xf9,0x60,0xfb,0x5f,0xfc,0xdb,0xfe,0xc0,0x1,0x3c,0x1, +0x91,0xff,0x4a,0xff,0xa9,0xfd,0xb9,0xfa,0x1c,0xfb,0x1d,0xfe, +0x31,0x0,0x41,0x3,0xad,0x5,0xd2,0x3,0x4b,0x3,0xcc,0x4, +0x3d,0x1,0xeb,0xfc,0x91,0xfd,0x2,0xfd,0xc1,0xf9,0x79,0xf9, +0x88,0xf9,0x9,0xf6,0x1f,0xf4,0x2e,0xf5,0x4e,0xf5,0x16,0xf7, +0x5a,0xfb,0x1f,0xfe,0xa7,0x0,0xde,0x2,0xed,0x2,0xb9,0x3, +0x7d,0x3,0x47,0x0,0xcd,0xff,0xa4,0x0,0x19,0xfd,0xe4,0xf9, +0x72,0xf9,0x5c,0xf6,0x65,0xf3,0xeb,0xf4,0x6d,0xf5,0x60,0xf5, +0xa,0xfa,0x43,0xfd,0x86,0xfc,0x18,0xfe,0x7a,0xff,0xd7,0xfe, +0xe9,0x0,0xc9,0x2,0xac,0x1,0xb5,0x1,0x5e,0x2,0x90,0x0, +0x94,0xfe,0xea,0xfd,0xe5,0xfb,0xf8,0xf9,0xb7,0xfb,0x6,0xfd, +0x60,0xfb,0xd2,0xfb,0x4c,0xfd,0x74,0xfb,0xaa,0xf9,0xa1,0xfa, +0x92,0xfb,0xd8,0xfb,0x87,0xfd,0x38,0x0,0xe7,0x1,0x16,0x2, +0xb2,0x1,0xc6,0x2,0x59,0x3,0x24,0xff,0xb5,0xfb,0xdd,0xfc, +0x2,0xfb,0x1d,0xf8,0xa8,0xf9,0x8a,0xf8,0xf3,0xf5,0x2a,0xf9, +0xed,0xfb,0x41,0xfb,0x49,0xfd,0x9c,0xff,0xd6,0xfd,0x4e,0xfc, +0x43,0xfd,0x45,0xfd,0x8,0xfd,0xd4,0xfe,0xe5,0x0,0x23,0x2, +0x47,0x2,0x92,0x1,0x5,0x1,0x59,0xfe,0x27,0xfb,0x1b,0xfc, +0x10,0xfd,0xb8,0xfb,0x9c,0xfc,0x45,0xfe,0x13,0xfe,0x6b,0xfd, +0x8a,0xfc,0x33,0xfc,0x50,0xfd,0xbf,0xfe,0x7c,0xff,0x5b,0x0, +0x31,0x2,0xe,0x3,0x2c,0x3,0x86,0x4,0x26,0x4,0x5a,0x2, +0x10,0x3,0xb5,0x3,0xbb,0x2,0x4c,0x2,0x12,0x1,0x86,0xfe, +0xd0,0xfc,0x69,0xfc,0x44,0xfc,0x8c,0xfc,0xce,0xfd,0x62,0xfe, +0xf3,0xfe,0xb3,0x0,0x35,0x0,0xf4,0xfe,0x40,0x0,0x46,0x0, +0xe4,0xff,0x73,0x2,0x3b,0x4,0x3a,0x4,0xdf,0x4,0x5c,0x5, +0x51,0x4,0xdb,0x2,0x5b,0x3,0xc3,0x3,0xdb,0x1,0x78,0x1, +0x69,0x2,0x68,0x1,0x98,0x0,0x83,0x0,0x48,0xff,0xca,0xfd, +0x92,0xfd,0xb4,0xfe,0x96,0xff,0x4b,0x0,0x4b,0x2,0x4d,0x4, +0xa2,0x4,0xb7,0x3,0x95,0x4,0xdf,0x6,0x18,0x5,0x19,0x3, +0x4c,0x5,0xe,0x4,0xc5,0x1,0x9c,0x4,0x5,0x4,0xbc,0x0, +0xd7,0x2,0xdc,0x3,0xa4,0x1,0xab,0x3,0x3d,0x6,0xc1,0x3, +0x39,0x3,0x2,0x7,0xd9,0x6,0x5f,0x4,0xc0,0x5,0x1b,0x6, +0xf6,0x3,0xec,0x3,0x65,0x4,0x72,0x3,0x77,0x2,0xbd,0x2, +0x6e,0x3,0x45,0x2,0x25,0x1,0x3c,0x0,0x17,0xfe,0xc2,0xfe, +0x27,0xff,0xfe,0xfb,0x8b,0xfd,0xb4,0x0,0x8b,0xfe,0xbe,0xff, +0x76,0x3,0xe2,0x0,0x6b,0xff,0x1a,0x3,0xbf,0x2,0x2f,0x0, +0x40,0x2,0xa7,0x2,0xdc,0xff,0xdd,0x0,0x75,0x1,0x18,0xff, +0xdf,0xfe,0xc0,0xfd,0x81,0xfc,0x46,0xfe,0xe6,0xfc,0x44,0xfc, +0xa4,0x0,0x76,0x0,0xae,0xff,0x53,0x6,0x10,0x9,0x0,0x5, +0x51,0x6,0xb9,0x9,0x93,0x5,0xb9,0x2,0xdd,0x5,0xf3,0x2, +0x14,0xfe,0x2c,0x2,0x9f,0x3,0xed,0xfe,0x55,0x1,0x2d,0x6, +0x45,0x4,0x90,0x3,0x53,0x7,0xee,0x7,0xc7,0x6,0xf2,0x8, +0xd8,0x8,0xef,0x5,0xe6,0x6,0x9,0x7,0xa3,0x4,0xbd,0x5, +0x3,0x5,0xe7,0x1,0xa9,0x3,0xe0,0x3,0xd3,0xff,0x4f,0xff, +0xd4,0xfe,0x3f,0xfa,0x67,0xf8,0x5e,0xf9,0x19,0xf7,0xe1,0xf5, +0xc2,0xf8,0x7d,0xf8,0x75,0xf7,0x79,0xfb,0xef,0xfc,0x38,0xfb, +0x2e,0xfc,0xfc,0xfa,0x58,0xf8,0xbd,0xf8,0xb1,0xf6,0x68,0xf2, +0xec,0xf0,0x34,0xef,0x13,0xec,0xbd,0xea,0x70,0xe9,0x94,0xe6, +0x79,0xe6,0x43,0xe8,0xa9,0xe6,0x63,0xe6,0xea,0xe9,0xf3,0xe9, +0x21,0xe9,0xb7,0xeb,0x77,0xeb,0xe2,0xe9,0x58,0xec,0xbb,0xed, +0x81,0xeb,0x13,0xeb,0xcc,0xec,0x3a,0xec,0x24,0xeb,0x6,0xec, +0x37,0xeb,0xfa,0xe9,0x11,0xeb,0x89,0xea,0x4c,0xea,0x25,0xed, +0x92,0xed,0xc3,0xec,0x3e,0xef,0x5,0xf1,0x67,0xf0,0xfe,0xf0, +0xc1,0xf2,0x2d,0xf3,0xfa,0xf2,0x2c,0xf4,0x4c,0xf5,0x1a,0xf5, +0xc6,0xf4,0xac,0xf4,0xd8,0xf4,0xe1,0xf3,0x69,0xf1,0xca,0xf0, +0x32,0xf1,0x4f,0xf0,0x50,0xf0,0x3,0xf1,0x70,0xf1,0xaa,0xf2, +0xbf,0xf3,0xbd,0xf4,0xce,0xf5,0xfe,0xf5,0xea,0xf6,0x4a,0xf8, +0xf1,0xf7,0xc,0xf7,0x0,0xf7,0xf,0xf7,0x3f,0xf6,0xba,0xf5, +0x37,0xf7,0x2a,0xf8,0xc8,0xf6,0x39,0xf6,0x91,0xf7,0xf,0xf8, +0xf5,0xf6,0x2d,0xf7,0x5e,0xf9,0x5d,0xfa,0x42,0xfb,0x4c,0xfe, +0x42,0x0,0xe,0x1,0x6b,0x3,0x35,0x5,0xad,0x5,0x68,0x7, +0x0,0xa,0x8d,0xb,0x77,0xc,0xfb,0xd,0xf0,0xe,0x8d,0xe, +0xfc,0xe,0x58,0x10,0xe9,0x10,0xc0,0x11,0x3f,0x14,0x9,0x17, +0x1e,0x18,0x52,0x19,0x0,0x1d,0x2c,0x1f,0x49,0x1e,0xef,0x1f, +0x79,0x23,0x94,0x23,0x39,0x22,0x8d,0x23,0xe4,0x25,0xfa,0x24, +0x46,0x22,0xf,0x24,0x54,0x28,0xd1,0x27,0xab,0x25,0x22,0x27, +0xa8,0x27,0xbd,0x25,0x30,0x26,0x4b,0x26,0xfc,0x21,0x25,0x1f, +0xd8,0x21,0x3e,0x24,0x9c,0x21,0xa0,0x1e,0x6f,0x21,0x83,0x24, +0x9c,0x20,0x81,0x1d,0xb9,0x1f,0x97,0x1d,0x7,0x18,0xb5,0x17, +0xad,0x17,0x62,0x13,0x98,0x10,0xef,0x10,0x77,0x10,0xb5,0xd, +0xd8,0xb,0xb5,0xd,0x6b,0xe,0xf2,0xa,0x3,0xa,0xe9,0xb, +0x76,0x9,0xcd,0x5,0x87,0x6,0xee,0x6,0xfb,0x3,0x3,0x2, +0x47,0x2,0x65,0x1,0x8b,0xfe,0x7e,0xfc,0x8d,0xfb,0x12,0xf9, +0x43,0xf6,0xe5,0xf5,0xc4,0xf5,0x6c,0xf4,0xfc,0xf3,0xe6,0xf3, +0x19,0xf3,0xec,0xf2,0x9c,0xf2,0x3,0xf1,0x57,0xef,0x61,0xee, +0xc1,0xee,0xef,0xef,0x74,0xef,0x25,0xee,0xdf,0xee,0x5a,0xf0, +0xab,0xef,0xd3,0xec,0x78,0xea,0x5a,0xea,0x98,0xea,0x58,0xe9, +0x5a,0xe7,0x98,0xe5,0x31,0xe5,0x51,0xe6,0x18,0xe7,0x5f,0xe7, +0xa,0xe8,0xcf,0xe7,0x6a,0xe6,0xbd,0xe5,0xf1,0xe5,0x7b,0xe5, +0xe6,0xe3,0xe,0xe2,0x22,0xe1,0x67,0xe1,0x9a,0xe1,0x9c,0xe1, +0xe4,0xe2,0xde,0xe4,0x50,0xe6,0x82,0xe7,0xad,0xe7,0x3a,0xe6, +0x3e,0xe5,0x2b,0xe6,0x83,0xe6,0x9b,0xe3,0x90,0xe0,0x31,0xe1, +0xf4,0xe2,0xda,0xe3,0x8f,0xe5,0xc0,0xe7,0x55,0xe9,0x5a,0xea, +0x5d,0xec,0xc1,0xef,0xf4,0xee,0x73,0xea,0x22,0xec,0xba,0xf1, +0xf7,0xf1,0x50,0xf0,0x75,0xf1,0xf2,0xf3,0xfa,0xf7,0x50,0xfb, +0x6a,0xfb,0xed,0xfb,0x32,0xfe,0x15,0x0,0x22,0x2,0x42,0x2, +0x55,0xff,0xd8,0xff,0x8b,0x3,0x5f,0x3,0x34,0x3,0x8d,0x7, +0x39,0xb,0x3e,0xd,0x10,0x10,0x1f,0x13,0xc,0x16,0x8,0x16, +0xf9,0x13,0x96,0x16,0x17,0x1b,0xb0,0x1a,0xf1,0x17,0xc7,0x16, +0xca,0x17,0xd4,0x18,0x36,0x16,0x90,0x13,0x22,0x16,0x9e,0x19, +0xf3,0x19,0xb5,0x19,0xef,0x19,0xf6,0x19,0xd7,0x1a,0xbf,0x1c, +0x3b,0x1e,0x30,0x1e,0xf7,0x1d,0xc5,0x1f,0xda,0x20,0xbc,0x1e, +0x7b,0x1e,0x8c,0x20,0x40,0x1e,0xa,0x1a,0xff,0x19,0xe,0x1b, +0xb2,0x19,0x3f,0x17,0x6c,0x16,0x46,0x18,0x62,0x17,0x66,0x11, +0x6d,0xf,0x69,0x13,0x25,0x13,0x4f,0xf,0x1c,0x10,0xd4,0x11, +0x5a,0x11,0xc9,0x13,0x81,0x15,0x23,0x13,0xbc,0x14,0xfd,0x18, +0xcb,0x17,0x8a,0x15,0x3c,0x16,0x17,0x16,0x62,0x14,0x20,0x11, +0xe8,0xc,0xbd,0xa,0x74,0x8,0xfc,0x3,0xd5,0x1,0x18,0x2, +0x43,0x0,0xf4,0xfd,0xe3,0xfd,0xf8,0xfd,0xe9,0xfc,0xe9,0xfa, +0x40,0xf9,0xfd,0xfa,0x39,0xfe,0x73,0xfe,0xe5,0xfc,0x6a,0xfb, +0x7c,0xfa,0x4a,0xfb,0x4a,0xfb,0x91,0xf8,0x1a,0xf6,0x8,0xf6, +0xd6,0xf7,0xc5,0xf7,0x69,0xf4,0x41,0xf4,0xcd,0xf6,0x28,0xf4, +0x2b,0xf0,0xf6,0xef,0xe2,0xee,0x67,0xed,0x55,0xee,0xa0,0xee, +0xb,0xef,0xee,0xf0,0x93,0xf1,0x7,0xf3,0xda,0xf5,0x78,0xf4, +0xa8,0xf0,0x28,0xef,0xc,0xed,0x38,0xea,0x6b,0xe9,0x4a,0xe7, +0x6c,0xe4,0x9e,0xe6,0x19,0xeb,0x5e,0xec,0x1d,0xed,0xd5,0xef, +0x91,0xf1,0x99,0xf1,0xbd,0xf1,0xad,0xf0,0x26,0xee,0x88,0xed, +0x64,0xee,0xc,0xee,0x24,0xee,0xa3,0xef,0xba,0xf0,0x25,0xf1, +0xaa,0xf0,0xfc,0xef,0xb4,0xf0,0x11,0xf0,0x91,0xed,0x56,0xee, +0x33,0xf0,0x47,0xee,0xc3,0xed,0x88,0xf1,0x4,0xf4,0xf6,0xf3, +0xaa,0xf3,0xf6,0xf3,0x13,0xf6,0xe,0xf8,0x9f,0xf7,0x75,0xf7, +0x16,0xf8,0xb5,0xf7,0x30,0xf8,0x47,0xf9,0xd0,0xf7,0x64,0xf5, +0x73,0xf5,0xfe,0xf6,0x5d,0xf7,0xe2,0xf6,0xd8,0xf7,0xa6,0xf9, +0xdc,0xf9,0x81,0xf9,0x75,0xfa,0x15,0xfc,0xd8,0xfd,0xb2,0xfe, +0x79,0xfe,0xb4,0xff,0xe7,0x0,0x93,0xff,0x89,0xff,0xf2,0x0, +0xe4,0xff,0x63,0xff,0xf6,0x0,0xd,0x1,0x43,0x1,0x5f,0x2, +0xea,0x0,0xdf,0xfe,0x7,0xff,0x20,0xff,0xe3,0xfe,0xb1,0xff, +0x86,0x0,0x7f,0x1,0x41,0x3,0x20,0x4,0x4c,0x4,0x7f,0x5, +0xec,0x5,0x3f,0x4,0x66,0x2,0x6d,0x0,0x45,0xfe,0x95,0xfd, +0x97,0xfc,0xe2,0xf9,0x59,0xf8,0x3d,0xf8,0x33,0xf8,0xb1,0xf9, +0x6d,0xfb,0x83,0xfb,0x62,0xfd,0x37,0x1,0xb0,0x2,0x64,0x3, +0x70,0x5,0xa3,0x5,0xff,0x4,0xc0,0x6,0xf2,0x7,0x99,0x6, +0x37,0x5,0x4c,0x4,0x38,0x3,0x6b,0x2,0x30,0x1,0x5d,0xff, +0x3f,0xfe,0x8c,0xfd,0x95,0xfc,0x4e,0xfc,0x8a,0xfc,0xa6,0xfc, +0x8f,0xfd,0x5b,0xfe,0xe0,0xfd,0xda,0xfe,0x46,0x2,0x83,0x4, +0xa2,0x4,0x7f,0x5,0xea,0x6,0x83,0x6,0xbb,0x5,0xd8,0x5, +0xea,0x3,0xa5,0x0,0x34,0x0,0xf5,0x0,0xbe,0xff,0xa4,0xfe, +0xe6,0xff,0xd3,0x1,0x9c,0x2,0x86,0x3,0xd4,0x4,0xd,0x5, +0x14,0x6,0xc,0x8,0xa1,0x7,0xec,0x6,0xaf,0x7,0xe8,0x6, +0xc6,0x6,0xfa,0x8,0x5a,0x8,0x88,0x5,0x3e,0x6,0x32,0x8, +0xa3,0x6,0x20,0x5,0xbe,0x6,0x16,0x6,0x8e,0x2,0x12,0x3, +0x62,0x5,0xec,0x2,0x8f,0xff,0xdd,0xff,0xa6,0x0,0x51,0x0, +0xef,0x1,0x1d,0x5,0x9f,0x5,0xa1,0x4,0xf1,0x5,0x38,0x6, +0xf1,0x2,0xab,0x0,0x8f,0x0,0x2b,0x0,0x7a,0x0,0x25,0x2, +0xd5,0x3,0xf0,0x4,0xf8,0x4,0x4e,0x4,0xcf,0x3,0xc1,0x2, +0x2a,0x1,0x1c,0x0,0x76,0xff,0xbb,0xff,0x2b,0x1,0x88,0x1, +0xca,0x0,0xf8,0x1,0xa5,0x4,0x48,0x5,0x48,0x3,0x87,0x1, +0x98,0x1,0x45,0x1,0x2f,0xff,0xd2,0xfd,0x6,0xfe,0x82,0xfe, +0x10,0x1,0x3b,0x5,0xa3,0x5,0xc0,0x3,0x1c,0x5,0x48,0x5, +0x97,0x0,0x57,0xfe,0x14,0x0,0xa9,0xff,0x1e,0xff,0xea,0x1, +0x36,0x3,0xef,0x0,0x9a,0xff,0xa9,0xff,0x74,0xfd,0x71,0xfa, +0x7d,0xfa,0xb5,0xfb,0x86,0xfb,0xfd,0xfb,0x8d,0xfd,0xd9,0xfd, +0xff,0xfc,0xa,0xfd,0xd2,0xfd,0xd,0xfd,0x9a,0xfb,0xa3,0xfc, +0xdc,0xfd,0x1f,0xfc,0xf1,0xfa,0xbe,0xfb,0x6a,0xfa,0x9f,0xf7, +0x9b,0xf7,0xfa,0xf8,0xa1,0xf8,0x65,0xf8,0x80,0xf9,0x4b,0xf9, +0xb,0xf8,0x87,0xf8,0xc2,0xf9,0x57,0xf9,0x5c,0xf8,0x41,0xfa, +0xb7,0xfe,0x76,0x0,0x71,0xff,0x8,0x1,0x67,0x3,0xee,0x2, +0x20,0x3,0x1e,0x4,0x4f,0x2,0x32,0x0,0x92,0xff,0x7,0xfe, +0x9b,0xfc,0x68,0xfc,0xb9,0xfb,0x38,0xfc,0x2,0xff,0x64,0x0, +0xda,0x0,0x33,0x4,0x36,0x7,0x4e,0x6,0x5,0x5,0xf,0x5, +0x93,0x4,0xca,0x3,0xc9,0x2,0x75,0x2,0x2d,0x4,0xe4,0x4, +0x2a,0x4,0x7f,0x5,0x78,0x5,0x1,0x2,0x41,0x1,0xfd,0x1, +0x35,0xff,0xc,0xfe,0xf7,0xff,0xc6,0xfe,0x86,0xfd,0x84,0x0, +0xe,0x2,0x5e,0x1,0x9f,0x3,0xd8,0x5,0xc9,0x4,0xbc,0x4, +0x1e,0x6,0x23,0x5,0xdf,0x3,0xc6,0x4,0x3d,0x4,0x8f,0x1, +0xb,0x1,0xb2,0x2,0x54,0x3,0x74,0x2,0x30,0x1,0x3f,0x1, +0x4a,0x2,0xb0,0x1,0x2b,0x1,0xb5,0x2,0x2a,0x3,0xcc,0x2, +0x4,0x4,0xc5,0x4,0xb9,0x4,0xa7,0x4,0x78,0x3,0x2e,0x3, +0xc,0x4,0xf0,0x2,0xbf,0x1,0x58,0x2,0x3a,0x2,0xca,0x1, +0x1e,0x2,0x78,0x1,0x3b,0x0,0x41,0x0,0x8e,0x1,0xe8,0x2, +0x26,0x3,0x8f,0x3,0xdb,0x5,0x86,0x7,0x7b,0x6,0x5a,0x5, +0xfc,0x4,0x15,0x3,0xba,0x0,0x39,0x0,0xb1,0xff,0x17,0xfe, +0x68,0xfe,0x1a,0x0,0x77,0xff,0x8b,0xfe,0x19,0x0,0xb9,0x0, +0xa2,0xff,0xff,0xff,0x47,0x0,0x97,0xfe,0x6d,0xfd,0xce,0xfd, +0xa,0xfe,0x38,0xfd,0xf2,0xfc,0xb4,0xfe,0xb7,0xff,0x90,0xff, +0x1a,0x2,0xea,0x3,0x71,0x1,0x80,0x0,0x9c,0x0,0xed,0xfc, +0xc9,0xfa,0x89,0xfb,0x86,0xf9,0xfc,0xf7,0xa9,0xf9,0x73,0xfa, +0xa6,0xfa,0xf7,0xfb,0xd3,0xfd,0x63,0xff,0x6,0xff,0x76,0xff, +0x81,0x1,0xd9,0xff,0x4b,0xfe,0x15,0x0,0xe3,0xfd,0x2,0xfc, +0xb3,0xff,0xc5,0xfe,0xd2,0xfb,0xd7,0xff,0x23,0x1,0x9b,0xfd, +0x91,0xff,0x2e,0x2,0x69,0xff,0x66,0xfe,0x6c,0x0,0xe8,0xff, +0xa1,0xfe,0xf6,0xff,0xc6,0x0,0xad,0xff,0x9,0x0,0xc,0x1, +0x8a,0x0,0x22,0x1,0x47,0x2,0x40,0x1,0x8e,0x1,0x7,0x4, +0x25,0x3,0x5a,0x0,0xbd,0x0,0xbd,0x0,0xbc,0xfd,0x1f,0xfd, +0xe,0xff,0xa0,0xfe,0x5,0xfe,0x35,0x0,0xc9,0x1,0xed,0x0, +0xde,0xff,0x85,0x0,0xdf,0x1,0x97,0x0,0x19,0xfe,0xbd,0xfe, +0x46,0xff,0x20,0xfd,0x3b,0xfd,0x10,0xfe,0xa,0xfc,0x9b,0xfd, +0xaa,0x1,0x94,0xff,0xfb,0xfd,0x71,0x1,0x42,0xff,0xd1,0xfa, +0x59,0xfd,0xad,0xfc,0x75,0xf7,0xca,0xf9,0xce,0xfc,0x7e,0xf9, +0x5c,0xfa,0xa1,0xfe,0x96,0xfd,0xec,0xfb,0xd3,0xfd,0x42,0xff, +0x49,0xfe,0xeb,0xfc,0x76,0xfd,0xd3,0xfd,0x18,0xfc,0x65,0xfc, +0x56,0xfe,0x7d,0xfd,0xc9,0xfc,0x47,0xfe,0x4d,0xfe,0x7c,0xfc, +0x7e,0xfb,0x76,0xfc,0x89,0xfc,0xc3,0xf9,0xba,0xf9,0xcc,0xfc, +0x2f,0xfc,0x1c,0xfc,0x19,0x0,0xbd,0xff,0x9a,0xfc,0x16,0xfe, +0xf,0xff,0x2d,0xfd,0x8d,0xfd,0x2a,0xfe,0xca,0xfc,0xf1,0xfc, +0x6a,0xfe,0xa1,0xfe,0x5,0xfe,0xb2,0xfd,0x11,0xfe,0xf7,0xfd, +0x28,0xfc,0x19,0xfb,0x85,0xfb,0xe1,0xf9,0xf5,0xf7,0x9b,0xf9, +0x8a,0xfa,0xd0,0xf8,0x1d,0xfa,0xa,0xfd,0x36,0xfc,0xc9,0xfb, +0xe0,0xfe,0x91,0xff,0xf5,0xfc,0xc2,0xfc,0x5c,0xfe,0x8e,0xfd, +0x98,0xfb,0x59,0xfb,0x2d,0xfc,0xd5,0xfb,0x50,0xfa,0x3a,0xfa, +0x10,0xfb,0xe1,0xf9,0x9a,0xf9,0x8b,0xfc,0x19,0xfd,0x98,0xfa, +0xf7,0xfa,0xf5,0xfc,0xa4,0xfc,0xc1,0xfb,0x30,0xfc,0xb1,0xfd, +0xa6,0xfe,0xf7,0xfd,0x4,0xff,0xbf,0x1,0x44,0x0,0x79,0xfd, +0x81,0xff,0x59,0x0,0xb2,0xfc,0x8e,0xfc,0x3d,0xff,0x7e,0xfd, +0xf8,0xfb,0x8c,0xff,0xb2,0x1,0x15,0x0,0x26,0x0,0x78,0x2, +0x3,0x4,0xb1,0x3,0xf3,0x1,0xa5,0x1,0x63,0x3,0xdb,0x2, +0x4e,0x0,0x58,0x0,0x98,0x1,0x42,0x1,0x68,0x1,0xc7,0x1, +0xf8,0xff,0xa2,0xfe,0x60,0x0,0xde,0x1,0x27,0x0,0xcf,0xfd, +0x4d,0xfe,0x4b,0x0,0x80,0x0,0xae,0xff,0xfd,0xff,0xc7,0x0, +0xa6,0x1,0x80,0x2,0xf2,0x1,0x27,0x1,0xde,0x1,0x45,0x2, +0xde,0x1,0x3d,0x2,0x67,0x2,0xd5,0x1,0x40,0x2,0x17,0x3, +0x2f,0x2,0xdc,0xff,0x8f,0xfe,0x6e,0xff,0x78,0x0,0x10,0x0, +0x34,0x0,0xb1,0x1,0x1b,0x2,0x89,0x2,0x9e,0x5,0x70,0x7, +0xca,0x4,0xfe,0x2,0xe5,0x4,0xcb,0x5,0x4d,0x4,0x32,0x4, +0xeb,0x5,0x55,0x6,0x2,0x6,0x72,0x8,0xea,0xa,0x1f,0x9, +0x65,0x8,0x5e,0xb,0x59,0x9,0x44,0x3,0xa1,0x4,0xc8,0x9, +0x61,0x7,0xf9,0x2,0xe4,0x5,0x5e,0xa,0x54,0xa,0x52,0xa, +0x17,0xc,0x49,0xb,0x31,0x8,0x5a,0x7,0x12,0x9,0x70,0x8, +0xca,0x4,0x9,0x5,0x1d,0x9,0x91,0x7,0x7c,0x1,0x7e,0x1, +0xb7,0x6,0xf2,0x6,0xd3,0x1,0xf,0x1,0x8e,0x4,0xa7,0x2, +0xd3,0xff,0xc4,0x4,0x7b,0x6,0xdf,0xfe,0x85,0xfc,0x93,0x2, +0xc,0x4,0xc7,0xfe,0xb2,0xfc,0x85,0x1,0x4d,0x3,0xf2,0xfc, +0x23,0xfb,0x65,0x0,0xa9,0xfe,0x10,0xfa,0x30,0xfe,0xd3,0x0, +0x66,0xfb,0x12,0xf9,0x53,0xfc,0xd2,0xfd,0xc5,0xfb,0x98,0xf9, +0xd2,0xfb,0x36,0xff,0x5b,0xfc,0x47,0xf9,0x2b,0xfb,0xce,0xf8, +0x4,0xf5,0xfb,0xf9,0xa8,0xfd,0x8f,0xf9,0x33,0xf8,0xe0,0xf9, +0xf7,0xf9,0x20,0xfb,0x21,0xfb,0x12,0xfa,0x48,0xfc,0x7c,0xfc, +0x62,0xf9,0xe3,0xf9,0x8c,0xfa,0xe6,0xf7,0x33,0xf8,0x5a,0xfa, +0xdb,0xf8,0x84,0xf6,0x87,0xf5,0x57,0xf4,0x3c,0xf4,0xfe,0xf4, +0xb9,0xf3,0x52,0xf1,0x8a,0xf0,0xec,0xf1,0xeb,0xf3,0x73,0xf3, +0xa2,0xf1,0xa5,0xf3,0xa4,0xf7,0x92,0xf8,0xbb,0xf8,0xdb,0xf9, +0xb6,0xf9,0x31,0xf9,0x23,0xf9,0xe7,0xf8,0xce,0xf8,0x3a,0xf7, +0xaa,0xf4,0x8e,0xf4,0x56,0xf5,0xff,0xf4,0x4e,0xf5,0x49,0xf5, +0xf0,0xf3,0x5,0xf4,0x67,0xf6,0x3a,0xf8,0x4d,0xf7,0xa3,0xf6, +0xa4,0xf9,0x54,0xfc,0x45,0xfc,0x59,0xfe,0x7e,0x2,0x3b,0x4, +0x85,0x4,0x3d,0x5,0xc2,0x5,0xfa,0x5,0x91,0x5,0x6,0x5, +0xa5,0x5,0x1,0x6,0xad,0x4,0x6f,0x3,0x4a,0x3,0x3d,0x3, +0x8c,0x3,0xbc,0x4,0xbf,0x5,0xc3,0x6,0x86,0x9,0x4c,0xd, +0x46,0xf,0xd8,0xe,0x0,0xe,0x56,0xe,0xe3,0xf,0xc5,0x11, +0x26,0x12,0xf8,0x10,0x6c,0x11,0xb1,0x13,0x52,0x14,0x5f,0x13, +0x92,0x12,0x22,0x12,0xd6,0x12,0x2f,0x13,0x3b,0x11,0x35,0xf, +0xae,0xd,0xcf,0xb,0x1e,0xc,0x86,0xd,0x3,0xd,0x20,0xe, +0x57,0x12,0x8b,0x14,0xb1,0x13,0x13,0x13,0x46,0x13,0x64,0x13, +0x4a,0x13,0x52,0x13,0x43,0x13,0xab,0x11,0x57,0xf,0xaf,0xf, +0x96,0x11,0x45,0x10,0xac,0xc,0xe9,0xb,0xb1,0xd,0x79,0xd, +0x36,0xb,0x81,0xa,0x64,0xa,0xc1,0x7,0x7a,0x5,0x13,0x6, +0x58,0x5,0xf3,0x2,0x51,0x4,0x2b,0x8,0x40,0x9,0x5d,0x8, +0x42,0x8,0x9d,0x8,0x3c,0x8,0x5,0x7,0x55,0x6,0x33,0x6, +0xda,0x4,0xf5,0x3,0xe2,0x4,0x39,0x3,0xeb,0xfe,0xdd,0xfd, +0x1c,0xfe,0x64,0xfb,0xc4,0xf9,0x8c,0xf9,0x67,0xf6,0x7a,0xf4, +0x87,0xf6,0xf,0xf7,0xa0,0xf6,0x9a,0xf8,0x3f,0xf9,0x24,0xf8, +0xf6,0xf8,0x8e,0xf9,0x49,0xf8,0x60,0xf7,0xdf,0xf5,0xc4,0xf3, +0x9b,0xf3,0xc7,0xf2,0xdc,0xef,0x9c,0xef,0xf6,0xf0,0x40,0xef, +0xab,0xee,0x2e,0xf2,0xdb,0xf3,0x80,0xf2,0xc,0xf3,0xc7,0xf4, +0x6c,0xf4,0x70,0xf3,0x18,0xf3,0x95,0xf1,0x27,0xef,0xb9,0xed, +0xe6,0xec,0x5b,0xec,0xaa,0xec,0xbc,0xec,0x57,0xec,0x6d,0xec, +0xc5,0xec,0xeb,0xed,0x2b,0xef,0x23,0xee,0x6,0xed,0x13,0xee, +0x59,0xee,0x61,0xee,0xe5,0xf0,0xe0,0xf2,0xf1,0xf2,0xf0,0xf3, +0x70,0xf4,0xd0,0xf2,0xae,0xf2,0x6c,0xf4,0xb1,0xf3,0x38,0xf1, +0x43,0xf1,0x2e,0xf3,0xe0,0xf4,0x11,0xf7,0x3b,0xf9,0x69,0xfa, +0x45,0xfb,0x94,0xfb,0x9,0xfc,0x44,0xfd,0x1f,0xfc,0x6d,0xf8, +0xe2,0xf5,0x73,0xf4,0x11,0xf4,0xbb,0xf5,0xa9,0xf6,0xd9,0xf6, +0x89,0xf9,0x6,0xfd,0xe,0xff,0xc4,0x0,0xc3,0x1,0x73,0x0, +0xbe,0xfd,0x9d,0xfc,0xc5,0xfd,0xa1,0xfe,0xc,0xff,0x85,0x0, +0x46,0x1,0x18,0x1,0xbe,0x2,0x23,0x5,0xa4,0x5,0x8e,0x5, +0x2c,0x6,0xf4,0x5,0xa8,0x4,0x9e,0x3,0xae,0x2,0x6a,0x1, +0x11,0x0,0xd7,0xfe,0xce,0xfe,0x22,0x0,0x16,0x1,0xe9,0x0, +0x43,0x0,0x9c,0x0,0x80,0x2,0x8c,0x3,0x5c,0x3,0x1a,0x4, +0x4b,0x4,0xe,0x3,0xfe,0x2,0x57,0x3,0x53,0x2,0xea,0x1, +0x78,0x2,0x8c,0x2,0xe1,0x3,0x40,0x7,0xc9,0x8,0x81,0x7, +0xd2,0x6,0xf,0x6,0x1b,0x4,0x4d,0x4,0x19,0x5,0xfe,0x2, +0x26,0x2,0xe6,0x3,0x9c,0x3,0x9f,0x2,0x1,0x4,0x65,0x5, +0xb,0x5,0xe2,0x3,0x2d,0x3,0x62,0x3,0x74,0x3,0x33,0x3, +0xe1,0x2,0x35,0x2,0xf7,0x2,0x8a,0x5,0x2,0x7,0x0,0x7, +0xe3,0x6,0x64,0x6,0x62,0x5,0x13,0x4,0xdc,0x2,0x90,0x1, +0x55,0xff,0xbd,0xfd,0xee,0xfd,0x77,0xfe,0xb4,0xff,0x39,0x1, +0x39,0x1,0xbe,0x1,0x18,0x3,0x8d,0x2,0xb,0x2,0x73,0x2, +0x33,0x0,0x66,0xfd,0xdc,0xfd,0xe2,0xfd,0x85,0xfc,0xf6,0xfe, +0xd5,0x2,0xf4,0x2,0xb8,0x3,0x78,0x7,0xdf,0x8,0xff,0x7, +0xb8,0x7,0x1e,0x6,0x44,0x3,0x51,0x1,0xaf,0xff,0xa6,0xfe, +0xe1,0xfe,0xa,0xff,0xff,0xff,0x61,0x3,0xba,0x6,0x41,0x8, +0x44,0x9,0x8e,0x9,0x43,0x9,0x6d,0x9,0x7a,0x8,0xa0,0x6, +0xca,0x5,0x87,0x4,0xae,0x2,0x48,0x1,0x41,0xff,0x1,0xfe, +0x48,0xfe,0xe8,0xfd,0x10,0xfe,0x1b,0xff,0x53,0xff,0xce,0x0, +0x6d,0x2,0x67,0x0,0xa3,0xfe,0x8,0x0,0x27,0x0,0x28,0xff, +0xa9,0x0,0x94,0x2,0x86,0x3,0x85,0x5,0x1a,0x7,0xbf,0x6, +0x4b,0x6,0x94,0x5,0x76,0x3,0xde,0x0,0xfd,0xfd,0x81,0xfa, +0x74,0xf7,0xae,0xf5,0xed,0xf4,0x35,0xf5,0x21,0xf7,0xf8,0xf9, +0x75,0xfc,0x63,0xfe,0x2a,0xff,0x4c,0xff,0x16,0x0,0xbc,0xff, +0xaa,0xfd,0xe1,0xfc,0xa0,0xfd,0x15,0xfe,0x71,0xfe,0x75,0xff, +0x74,0x0,0x68,0x0,0xdd,0x0,0x82,0x2,0x43,0x2,0xc4,0x0, +0xa1,0x0,0x6c,0xff,0x60,0xfd,0xbb,0xfd,0x3c,0xfe,0x19,0xfd, +0x50,0xfc,0xc3,0xfb,0x6a,0xfb,0x4,0xfc,0x31,0xfc,0x3f,0xfc, +0xf1,0xfc,0xb7,0xfc,0x0,0xfd,0x48,0xfe,0x90,0xfc,0x89,0xfa, +0xad,0xfb,0xde,0xf9,0x30,0xf6,0x2c,0xf8,0x9a,0xfa,0x65,0xf9, +0xcf,0xfb,0x5e,0x1,0x3,0x3,0x55,0x2,0x50,0x3,0x48,0x3, +0x3a,0x0,0xab,0xfd,0x8f,0xfc,0xdb,0xfa,0xa8,0xfa,0xa7,0xfc, +0x63,0xfd,0xef,0xfc,0x21,0xfd,0xed,0xfd,0xee,0xfe,0x9c,0xfe, +0xd8,0xfc,0x38,0xfc,0xc3,0xfc,0x2b,0xfc,0x64,0xfb,0xb8,0xfc, +0xc4,0xfd,0x3a,0xfd,0x99,0xff,0x70,0x3,0x99,0x3,0x6e,0x4, +0x8f,0x7,0xe1,0x6,0xec,0x4,0xc2,0x5,0xc2,0x4,0x18,0x2, +0x22,0x2,0x81,0x2,0x4e,0x1,0xa0,0x0,0x77,0x0,0x2d,0x1, +0xc3,0x2,0xed,0x1,0x93,0x0,0x6f,0x2,0xa7,0x2,0x49,0x0, +0xb,0x1,0xd6,0x1,0x3e,0x0,0x31,0x2,0xf7,0x5,0x6d,0x6, +0x7,0x7,0x9b,0x9,0xa9,0xa,0x28,0xa,0xaa,0xa,0xac,0xa, +0x58,0x7,0x72,0x4,0xa4,0x4,0xb0,0x1,0x4f,0xfc,0x96,0xfc, +0x8a,0xfe,0xa2,0xfd,0xb1,0xff,0xd0,0x2,0xde,0x2,0x72,0x5, +0xe5,0x8,0x2,0x7,0x6,0x4,0x9d,0x2,0x38,0x1,0xa9,0x1, +0xff,0x1,0xec,0x0,0x4f,0x2,0xe6,0x3,0x73,0x3,0xfe,0x4, +0xcb,0x5,0x64,0x2,0x7f,0x0,0x45,0x0,0x5e,0xfd,0x38,0xfc, +0x95,0xfd,0x8d,0xfb,0x5a,0xfa,0x69,0xfe,0xd5,0x0,0x84,0x0, +0xd1,0x2,0x2a,0x5,0x98,0x4,0xdb,0x3,0x48,0x3,0x1d,0x1, +0x9b,0xfe,0x81,0xfd,0xe3,0xfb,0x89,0xf8,0xf9,0xf6,0x60,0xf7, +0xa6,0xf6,0x6e,0xf7,0x72,0xfa,0x18,0xfb,0x43,0xfb,0x33,0xfe, +0x64,0x0,0xc2,0x0,0x5,0x1,0xb7,0xff,0xaf,0xfd,0x5e,0xfd, +0xf0,0xfc,0xfd,0xfb,0xb5,0xfc,0x7e,0xfd,0xab,0xfd,0x54,0xff, +0x9,0x0,0x54,0xfe,0xef,0xfd,0xb,0xfe,0xc0,0xfb,0xd7,0xf9, +0xf9,0xf9,0x93,0xf9,0xd6,0xf7,0x82,0xf6,0xea,0xf6,0x13,0xf8, +0xbc,0xf8,0x66,0xfa,0x7c,0xfd,0x8f,0xff,0x8d,0x0,0xa9,0x1, +0xc1,0x1,0x6c,0x0,0xa0,0xfe,0xbd,0xfc,0xc0,0xfa,0xe5,0xf7, +0xbf,0xf5,0x23,0xf7,0xeb,0xf8,0x23,0xf9,0xc2,0xfb,0xb2,0xfd, +0xb7,0xfb,0xe8,0xfc,0xcf,0xff,0x8d,0xfc,0x73,0xf9,0x6,0xfb, +0x72,0xfa,0x91,0xf9,0xc,0xfc,0xdd,0xfb,0x80,0xfa,0x8c,0xfd, +0x3d,0xff,0xc7,0xfd,0x3c,0xff,0xa4,0x0,0xed,0xfe,0xcf,0xfe, +0x31,0xff,0xbf,0xfd,0x5a,0xfe,0xc4,0xff,0x51,0xfe,0xc7,0xfd, +0xd4,0x0,0x6c,0x3,0xad,0x3,0x74,0x4,0x82,0x5,0x79,0x4, +0x9b,0x3,0x0,0x4,0xf9,0x2,0x89,0x1,0xd9,0x0,0x55,0xff, +0x3e,0xfe,0x72,0xfe,0x63,0xff,0x18,0x2,0xae,0x4,0xef,0x5, +0xb1,0x8,0x1,0xb,0x12,0xa,0xd4,0x9,0x20,0xa,0x80,0x6, +0x46,0x3,0xd5,0x4,0xaa,0x5,0x9a,0x4,0x46,0x6,0x6d,0x7, +0x1b,0x6,0x32,0x8,0x70,0xb,0x8d,0x9,0x63,0x7,0xb9,0x8, +0x18,0x8,0x92,0x5,0x40,0x6,0x37,0x7,0x10,0x5,0x49,0x4, +0xd5,0x5,0x1d,0x6,0xcc,0x6,0x54,0x8,0x6e,0x7,0x2b,0x6, +0x70,0x6,0x70,0x5,0xa4,0x3,0xe8,0x2,0x11,0x2,0xe8,0x0, +0x1c,0x0,0x22,0xff,0xeb,0xfd,0xd3,0xfd,0x7c,0xff,0x2,0x1, +0xdb,0x1,0x2,0x4,0x9a,0x6,0xa6,0x7,0x47,0x7,0x67,0x5, +0x5c,0x3,0x47,0x2,0x23,0x0,0xa1,0xfe,0x24,0x0,0x36,0x0, +0x81,0xfe,0x2a,0x0,0x45,0x2,0x5c,0x1,0x76,0x1,0xdd,0x1, +0xb3,0xff,0x95,0xff,0x8f,0x1,0xfd,0xff,0x3b,0xfe,0xc6,0xff, +0xa0,0xff,0xfc,0xfd,0x42,0xfe,0xc6,0xfd,0x5a,0xfd,0xdf,0xff, +0xe5,0x0,0x9a,0xfe,0x48,0xfd,0x37,0xfd,0x26,0xfd,0xb4,0xfd, +0x3c,0xfd,0xe3,0xfb,0xb9,0xfc,0xd8,0xfd,0xba,0xfc,0x97,0xfc, +0xb8,0xfd,0x40,0xfd,0x58,0xfd,0xca,0xfe,0x92,0xfe,0x7f,0xfd, +0x71,0xfc,0x1e,0xfa,0x31,0xf8,0x9d,0xf7,0x47,0xf7,0x4f,0xf7, +0xb6,0xf6,0x8a,0xf5,0xce,0xf6,0x8b,0xf9,0xf3,0xf9,0xf7,0xf8, +0x4e,0xf9,0x33,0xfa,0x38,0xfa,0x4b,0xfa,0x7,0xfb,0xd7,0xfa, +0xed,0xf9,0xa5,0xfa,0x23,0xfb,0xf3,0xf8,0x5d,0xf8,0xa0,0xfa, +0xfa,0xf9,0x79,0xf7,0xd,0xf8,0x3c,0xf9,0x5,0xf9,0x65,0xf9, +0x7a,0xf9,0xf5,0xf7,0xac,0xf6,0xb6,0xf7,0xf1,0xf9,0x92,0xfa, +0x92,0xfa,0x75,0xfb,0x99,0xfb,0x23,0xfc,0x3d,0xfe,0x7e,0xfe, +0xd9,0xfc,0x9b,0xfc,0xf2,0xfc,0x47,0xfc,0xba,0xfb,0x64,0xfb, +0x18,0xfa,0xc5,0xf8,0xf,0xf9,0x54,0xfa,0x21,0xfb,0x47,0xfb, +0xd2,0xfb,0xb9,0xfc,0x58,0xfc,0x86,0xfc,0x47,0xff,0x3f,0x0, +0x22,0xfe,0x7a,0xfd,0xdf,0xfd,0x45,0xfd,0x6,0xfd,0xd9,0xfc, +0xed,0xfb,0xf6,0xfa,0xc2,0xfa,0xc1,0xfb,0xbf,0xfc,0xee,0xfc, +0x41,0xfd,0xb4,0xfd,0xab,0xfd,0x69,0xfd,0xf4,0xfd,0x17,0xff, +0xa9,0xfe,0xc2,0xfd,0x9e,0xfe,0xc9,0xfe,0xdb,0xfd,0x96,0xfe, +0x4d,0xff,0x70,0xfe,0x7a,0xfe,0x70,0xff,0xc8,0xfe,0x55,0xfd, +0x8d,0xfd,0xed,0xfd,0x69,0xfc,0x84,0xfb,0x93,0xfc,0xdd,0xfc, +0xd5,0xfb,0xa2,0xfb,0xe0,0xfc,0x78,0xfe,0x64,0xff,0x73,0xff, +0xd,0xff,0xb6,0xfe,0x91,0xfe,0x60,0xfe,0xd3,0xfd,0x82,0xfc, +0x37,0xfb,0x24,0xfb,0x37,0xfb,0xe4,0xfa,0xd2,0xfb,0x89,0xfd, +0x5a,0xfe,0xba,0xfe,0x1d,0xff,0x5a,0xff,0xb3,0xff,0x6b,0xff, +0x1a,0xfe,0xb3,0xfd,0x3,0xff,0x8,0x0,0x58,0x0,0x7,0x1, +0x88,0x1,0xea,0x1,0xc2,0x2,0xd6,0x2,0x4e,0x2,0x9d,0x2, +0xb0,0x2,0xe7,0x1,0x17,0x2,0xd8,0x2,0x5e,0x2,0x21,0x2, +0xea,0x2,0xaa,0x2,0x21,0x2,0xf8,0x2,0xf9,0x3,0xb0,0x4, +0xa4,0x4,0xec,0x3,0x2d,0x5,0x5c,0x6,0x2c,0x4,0xfe,0x2, +0x47,0x4,0x62,0x3,0x22,0x2,0xbf,0x3,0x1a,0x4,0x47,0x2, +0x97,0x3,0xf0,0x6,0xb9,0x6,0x28,0x5,0x5d,0x6,0xc7,0x7, +0x76,0x7,0xfa,0x6,0x8c,0x6,0x1c,0x6,0x1e,0x6,0x69,0x6, +0xb2,0x6,0x4f,0x6,0x51,0x5,0x38,0x5,0x92,0x6,0xe5,0x7, +0xd7,0x7,0x1b,0x7,0x26,0x7,0x30,0x8,0xf3,0x8,0xb,0x8, +0xcf,0x6,0x13,0x7,0x63,0x7,0x80,0x7,0x8b,0x8,0x74,0x8, +0x22,0x7,0xa8,0x7,0x65,0x9,0xa2,0x9,0x15,0x8,0xb9,0x6, +0x98,0x7,0xf1,0x8,0xf7,0x7,0xfd,0x6,0xdb,0x7,0x3c,0x7, +0x32,0x5,0x83,0x5,0x5b,0x6,0x22,0x5,0x57,0x4,0xea,0x4, +0xb0,0x5,0xba,0x5,0x48,0x4,0x63,0x4,0x14,0x6,0xe6,0x3, +0xc9,0x1,0x5f,0x5,0x57,0x6,0xec,0x0,0x89,0xfe,0xd9,0x0, +0x7c,0x1,0x6d,0x0,0xa0,0xff,0xe6,0xfe,0x64,0x0,0x9c,0x3, +0xc4,0x4,0xca,0x3,0xb4,0x0,0x1d,0xfd,0xdc,0xfe,0xf1,0x0, +0x57,0xfa,0xe9,0xf3,0xb6,0xf6,0x92,0xfa,0xfd,0xf9,0x17,0xfa, +0x93,0xfc,0xc9,0xfe,0x60,0x1,0x10,0x4,0x86,0x2,0x2d,0xfe, +0xdb,0xfc,0x11,0xfe,0x8a,0xfe,0xb5,0xfb,0x59,0xf5,0x95,0xf2, +0xcf,0xf5,0x65,0xf7,0x91,0xf6,0x29,0xf7,0xea,0xf6,0xa2,0xf6, +0xc2,0xf9,0xf8,0xfb,0xf7,0xf9,0x94,0xf8,0x2e,0xf9,0x8e,0xf8, +0x7a,0xf7,0x50,0xf6,0x45,0xf5,0x60,0xf7,0x0,0xf9,0x15,0xf7, +0xf8,0xf7,0x69,0xfa,0x8d,0xf8,0x25,0xf7,0x74,0xf7,0x9e,0xf4, +0x27,0xf2,0x37,0xf3,0x98,0xf3,0x5c,0xf2,0x2d,0xf2,0x1e,0xf3, +0xa2,0xf4,0x9d,0xf6,0x1d,0xf8,0x6b,0xf9,0x56,0xfa,0xb6,0xf8, +0xb4,0xf6,0x8a,0xf7,0x14,0xf8,0xf,0xf7,0x72,0xf7,0xec,0xf7, +0x61,0xf6,0xbe,0xf4,0xf0,0xf5,0xcb,0xfa,0xc2,0xfe,0x78,0xfd, +0x64,0xfb,0x5e,0xfd,0x13,0x0,0xb8,0x0,0x2c,0x1,0x45,0x0, +0x45,0xfc,0x3b,0xfa,0x35,0xfd,0x2,0xff,0xfc,0xfb,0xbd,0xf9, +0x1a,0xfc,0xb9,0xfe,0x6c,0xfe,0xf9,0xfe,0xdc,0x1,0x45,0x3, +0x63,0x3,0xe5,0x4,0x2d,0x5,0x48,0x2,0xba,0x1,0x70,0x6, +0x26,0x9,0x83,0x6,0x7e,0x5,0xd5,0x7,0x6,0xa,0xca,0xc, +0x3d,0xd,0x3e,0x8,0x62,0x5,0x80,0x8,0x2c,0xa,0xe5,0x7, +0xa2,0x5,0xeb,0x3,0x0,0x3,0x20,0x5,0x1,0x9,0x5d,0xb, +0xbf,0xb,0x68,0xb,0xa2,0xb,0x9b,0xc,0x54,0xd,0x5,0xe, +0x58,0xe,0x5a,0xc,0xc7,0x9,0x76,0xa,0x6d,0xc,0xc9,0xa, +0xc5,0x7,0x43,0x9,0x29,0xc,0x38,0xb,0x5e,0xb,0x72,0xf, +0x1e,0x12,0x5d,0x12,0xbb,0x10,0x8,0xd,0x9f,0xc,0x22,0xf, +0x13,0xe,0xf6,0xb,0x6f,0xb,0xf8,0x9,0xd6,0xa,0x96,0xd, +0xc7,0xb,0x6f,0x9,0xd6,0xa,0x5b,0xa,0xe7,0x8,0xd4,0xa, +0xc9,0xb,0x36,0xa,0x78,0x8,0x5b,0x5,0xde,0x4,0x37,0xa, +0x5f,0xc,0xa5,0x8,0x5a,0x8,0xc0,0xa,0x48,0x9,0x5d,0x7, +0x42,0x7,0x63,0x5,0x5a,0x3,0x36,0x3,0x4d,0x2,0x69,0x1, +0x89,0x2,0xc2,0x1,0xd5,0xfc,0xef,0xf8,0x52,0xf9,0x18,0xfa, +0x88,0xf8,0xd6,0xf6,0x9c,0xf6,0x87,0xf7,0xd8,0xf8,0x4e,0xf9, +0x5f,0xf9,0x20,0xfb,0xd1,0xfe,0x3e,0x2,0xbe,0x2,0xaf,0x1, +0x78,0x3,0x61,0x5,0xdb,0x0,0x27,0xfb,0xd2,0xfc,0xce,0xfe, +0xe5,0xf9,0xc2,0xf6,0xb8,0xf7,0x7d,0xf3,0xec,0xed,0x4,0xef, +0x9c,0xf0,0xa5,0xef,0x3f,0xf1,0xaf,0xf3,0x0,0xf3,0xca,0xf1, +0xd7,0xf4,0x58,0xfa,0x4d,0xfa,0xc7,0xf6,0x5a,0xf9,0x1f,0xfd, +0xc5,0xfa,0x95,0xf9,0x7,0xfb,0x95,0xf7,0xf7,0xf2,0xc9,0xf2, +0x89,0xf2,0x87,0xf0,0xdc,0xef,0xdf,0xef,0x30,0xef,0x50,0xee, +0x11,0xee,0x79,0xee,0xb8,0xed,0x5,0xed,0x33,0xef,0x6e,0xf0, +0x45,0xef,0x35,0xf1,0x1f,0xf4,0x58,0xf3,0x5e,0xf2,0xd6,0xf1, +0xb6,0xf0,0xb0,0xf2,0xa1,0xf4,0x52,0xf1,0x7,0xee,0xe3,0xed, +0x7d,0xed,0xc6,0xee,0xde,0xf2,0x1,0xf4,0x55,0xf2,0x1e,0xf4, +0xf9,0xf7,0xb8,0xf8,0x7d,0xf8,0xff,0xf9,0xb6,0xf9,0x92,0xf6, +0x5d,0xf5,0x8b,0xf7,0xea,0xf8,0xc5,0xf7,0x2f,0xf7,0x77,0xf7, +0xe5,0xf5,0xc4,0xf4,0xe0,0xf6,0xf1,0xf7,0x4b,0xf6,0xd9,0xf6, +0xcf,0xf9,0xb0,0xfb,0x19,0xfd,0xad,0xfe,0x6,0xff,0xe1,0xfe, +0xb9,0xff,0x2a,0x1,0xa5,0x2,0x32,0x4,0xa2,0x4,0x97,0x2, +0x71,0x0,0x14,0x1,0xb3,0x1,0xa4,0xff,0x3c,0xfe,0x8d,0xfe, +0x87,0xfd,0xfe,0xfc,0xf3,0xff,0x4,0x3,0x78,0x3,0x78,0x3, +0x89,0x3,0x85,0x2,0xf4,0x1,0xfa,0x2,0x7a,0x3,0x95,0x2, +0x46,0x2,0xda,0x2,0x7e,0x3,0xbf,0x4,0x69,0x5,0xab,0x4, +0xa0,0x5,0x1e,0x8,0x65,0x8,0xaa,0x7,0x88,0x7,0x82,0x5, +0xea,0x2,0x40,0x3,0xe2,0x4,0xd6,0x5,0xcd,0x6,0xd2,0x7, +0xba,0x8,0x88,0x8,0xc4,0x6,0xac,0x6,0x0,0x8,0xe,0x6, +0xea,0x2,0x61,0x2,0x8f,0x1,0x6a,0x0,0xca,0x1,0xa8,0x2, +0xb6,0x1,0x20,0x3,0x5e,0x6,0x21,0x8,0x34,0xa,0x99,0xc, +0xa2,0xb,0xef,0x9,0xb5,0xa,0x38,0xa,0x16,0x9,0x7f,0xa, +0x75,0xa,0x2,0x9,0xd7,0xa,0x10,0xc,0x6d,0x9,0x50,0x7, +0x3,0x6,0x5c,0x3,0xb2,0x1,0x59,0x1,0xc6,0x0,0xee,0x1, +0x47,0x4,0xc7,0x4,0x79,0x5,0x9e,0x7,0x9c,0x8,0x7e,0x9, +0x4d,0xa,0x2b,0x8,0x38,0x6,0x58,0x7,0x1e,0x8,0x67,0x7, +0x5a,0x6,0x71,0x4,0x3,0x3,0x56,0x3,0x6d,0x3,0xb6,0x2, +0xf9,0x2,0xbb,0x2,0x60,0x0,0x74,0xff,0x32,0x0,0x14,0xfe, +0x51,0xfb,0x7a,0xfb,0x6a,0xfb,0xc1,0xfa,0x7c,0xfc,0x9c,0xfe, +0x70,0xfe,0x7a,0xfd,0xbd,0xfd,0xe9,0xfe,0x76,0xff,0xb,0xff, +0x53,0xff,0xd5,0x0,0xe2,0x0,0xf4,0xfe,0x89,0xfe,0x31,0xff, +0xc9,0xfd,0x54,0xfc,0xe9,0xfc,0x50,0xfd,0x19,0xfd,0x92,0xfd, +0x7e,0xfd,0xf9,0xfb,0x20,0xfa,0xf1,0xf7,0x6b,0xf6,0xc2,0xf7, +0x1c,0xf9,0x9e,0xf8,0x51,0xfa,0x7e,0xfc,0x5b,0xfc,0x2b,0xff, +0x6c,0x3,0xba,0x2,0x68,0x1,0x6e,0x3,0xfb,0x4,0x58,0x4, +0x4e,0x2,0x7a,0xff,0x6f,0xfc,0x20,0xf9,0x60,0xf7,0xbd,0xf8, +0xad,0xfa,0x68,0xfb,0xdf,0xfc,0x86,0xff,0x4f,0x1,0x7e,0x1, +0x4a,0xff,0xc0,0xfa,0x8,0xf8,0x6c,0xf7,0xf,0xf5,0x11,0xf4, +0xd9,0xf6,0xf1,0xf8,0xb0,0xfb,0xad,0x1,0xae,0x4,0xc5,0x2, +0x69,0x2,0x35,0x3,0xe7,0xfe,0x36,0xf8,0x4f,0xf6,0xec,0xf6, +0x83,0xf5,0x96,0xf5,0x6b,0xf9,0x37,0xfc,0xda,0xfb,0xc6,0xfc, +0x24,0x0,0x76,0x0,0xd5,0xfd,0x4f,0xfe,0xf3,0xff,0x6f,0xfe, +0x1,0xfe,0xa7,0x0,0x38,0x1,0x12,0xff,0x79,0xfe,0x37,0xff, +0x82,0xfe,0xda,0xfd,0xd,0xff,0xe9,0xff,0x2a,0x0,0x67,0x1, +0xe4,0x1,0x35,0x1,0x9e,0x0,0x2c,0xfe,0xdf,0xfa,0xab,0xfa, +0x52,0xfb,0xce,0xfa,0xe9,0xfc,0xcb,0x1,0x3,0x6,0xe8,0x8, +0xb,0xb,0xb,0xd,0x4d,0xd,0xfa,0x8,0x98,0x3,0xcb,0x0, +0x3c,0xfc,0xe6,0xf5,0x76,0xf4,0xf7,0xf5,0x1b,0xf5,0x94,0xf6, +0xa6,0xfc,0x62,0x0,0xf1,0x1,0xa,0x6,0xba,0x8,0xe1,0x7, +0x2e,0x7,0x5,0x6,0x36,0x4,0x80,0x3,0x52,0x2,0x7f,0x1, +0x59,0x2,0xe8,0x1,0x67,0x1,0x5b,0x4,0xa3,0x6,0x88,0x4, +0xcd,0x2,0xab,0x3,0xc8,0x2,0xa3,0x0,0xd7,0xff,0xa0,0xfd, +0x54,0xfb,0xb3,0xfc,0x4a,0xfe,0x77,0xff,0x7e,0x3,0x88,0x7, +0x1a,0xa,0x78,0xd,0xb3,0xf,0x9f,0xf,0xf9,0xe,0x96,0xc, +0x16,0x8,0x45,0x4,0x70,0x1,0x8d,0xfe,0xa6,0xfc,0x9b,0xfb, +0x80,0xfb,0x3e,0xfe,0x7e,0x1,0xf5,0x2,0x9c,0x6,0x52,0xb, +0x52,0xb,0xe1,0x9,0xa2,0xa,0x31,0x9,0x37,0x6,0x9a,0x6, +0xc6,0x6,0x47,0x3,0xd3,0x1,0xea,0x3,0x2e,0x4,0x3b,0x4, +0x85,0x6,0xfd,0x5,0xbd,0x3,0x52,0x5,0x26,0x7,0x63,0x6, +0x53,0x5,0x3b,0x2,0x6a,0xff,0x58,0x2,0x86,0x5,0x11,0x5, +0xad,0x6,0x3c,0x9,0x29,0xa,0xae,0xd,0x4f,0x10,0x9b,0xc, +0xe5,0x7,0xb5,0x4,0x51,0x0,0xfa,0xfc,0x34,0xfb,0x80,0xf8, +0x33,0xf7,0xe3,0xf8,0x26,0xfb,0xd5,0xfd,0x19,0x1,0x5f,0x3, +0x4c,0x5,0x80,0x6,0xc0,0x5,0xee,0x5,0x2a,0x6,0xc3,0x2, +0x70,0x0,0x75,0x0,0xa4,0xfc,0x3c,0xf9,0x23,0xfb,0x8b,0xfb, +0xd4,0xf9,0x90,0xfb,0xea,0xfc,0x32,0xfa,0x57,0xf9,0xfc,0xfb, +0x6a,0xfa,0x1c,0xf5,0x35,0xf5,0xc2,0xf7,0x81,0xf5,0xf2,0xf4, +0x30,0xf9,0x7e,0xf9,0xe5,0xf6,0x53,0xf9,0x38,0xfc,0x35,0xfa, +0xa9,0xf9,0x61,0xfb,0x75,0xf8,0xaf,0xf4,0xc0,0xf5,0x12,0xf6, +0xf9,0xf2,0x65,0xf1,0xa3,0xf2,0x1,0xf4,0x7f,0xf4,0x40,0xf6, +0x10,0xf9,0x70,0xf9,0xe7,0xf9,0x48,0xfd,0xfb,0xfd,0xf2,0xfb, +0x13,0xfd,0x19,0xfd,0x12,0xf8,0x2c,0xf5,0x95,0xf5,0x27,0xf3, +0x5a,0xf1,0x10,0xf4,0xe7,0xf4,0x50,0xf3,0xe,0xf5,0x70,0xf7, +0x44,0xf7,0x64,0xf7,0x32,0xf8,0x0,0xf8,0x5e,0xf7,0xd3,0xf8, +0x7f,0xfc,0xe6,0xfc,0x6a,0xfa,0x8,0xfc,0x63,0xfe,0xd1,0xfc, +0xc9,0xfd,0x15,0x1,0x85,0xff,0xf0,0xfc,0x71,0xfe,0xe,0xff, +0x6e,0xfc,0x71,0xfb,0x6b,0xfc,0xa1,0xfa,0xc7,0xf7,0x9e,0xf9, +0x5d,0xfd,0x32,0xfd,0xd3,0xfc,0x65,0x0,0x9a,0x2,0x5c,0x1, +0xde,0x2,0x24,0x6,0x8c,0x4,0xc1,0x1,0x11,0x3,0x1f,0x3, +0x4e,0xff,0xaa,0xfd,0x81,0xff,0x59,0x0,0x98,0xff,0x68,0x0, +0x87,0x3,0x23,0x6,0x25,0x7,0xd5,0x7,0x21,0x7,0x9,0x5, +0x2a,0x5,0x8c,0x6,0xc6,0x4,0x37,0x2,0x32,0x3,0x0,0x5, +0xdf,0x4,0xfc,0x4,0xfd,0x5,0xfb,0x6,0xb,0x8,0x40,0x8, +0x32,0x8,0xa,0x9,0xe1,0x8,0x31,0x8,0x2b,0x8,0x8a,0x6, +0x49,0x5,0xd4,0x6,0x89,0x7,0xc,0x8,0xbf,0xa,0x87,0xb, +0x65,0xa,0x94,0xb,0xfe,0xc,0x3e,0xc,0x28,0xb,0x64,0x9, +0x14,0x6,0xdf,0x3,0x7a,0x3,0xdf,0x1,0x8,0xff,0xa5,0xfd, +0xd5,0xfd,0x77,0xfe,0x20,0xff,0xd6,0xff,0x62,0x0,0x76,0xff, +0xb0,0xfd,0x31,0xfd,0x9f,0xfc,0x7f,0xfa,0x6e,0xf8,0x31,0xf7, +0x9b,0xf6,0x98,0xf6,0xc2,0xf6,0x40,0xf7,0xc3,0xf7,0xc7,0xf7, +0xa3,0xf7,0x21,0xf7,0x5f,0xf6,0x38,0xf6,0x25,0xf6,0xac,0xf4, +0xa9,0xf1,0x8d,0xef,0x5,0xf0,0xb4,0xf0,0xdb,0xef,0xca,0xee, +0x97,0xee,0xe9,0xef,0x3e,0xf2,0xae,0xf3,0xe4,0xf3,0x35,0xf3, +0x10,0xf2,0xd4,0xf1,0x9c,0xf1,0x43,0xf0,0xfc,0xef,0xe7,0xf0, +0x4a,0xf1,0xcb,0xf2,0x2,0xf5,0x49,0xf5,0x3e,0xf6,0xf1,0xf8, +0x2e,0xf9,0xfc,0xf7,0x20,0xf8,0xe8,0xf6,0x81,0xf4,0xf7,0xf3, +0x67,0xf4,0xe2,0xf4,0x67,0xf5,0x6a,0xf5,0x37,0xf6,0xed,0xf7, +0x8,0xf9,0x48,0xfa,0xa0,0xfb,0xa3,0xfb,0x91,0xfb,0x8a,0xfc, +0x3e,0xfd,0x32,0xfd,0x7,0xfd,0xca,0xfc,0xa7,0xfc,0xdf,0xfc, +0x6e,0xfd,0x4b,0xfe,0x89,0xfe,0x28,0xfe,0x2d,0xff,0x8e,0x0, +0x99,0xff,0x83,0xfe,0x31,0xff,0x81,0xff,0x5,0x0,0xfa,0x1, +0xe,0x3,0x28,0x3,0x4f,0x4,0xce,0x5,0xa2,0x6,0xed,0x6, +0x62,0x6,0xc6,0x5,0x85,0x6,0xf5,0x7,0x79,0x8,0xfc,0x7, +0xa1,0x7,0x2f,0x8,0x5c,0x9,0x21,0xa,0xf4,0x9,0xbe,0x9, +0x82,0xa,0xb1,0xb,0xa1,0xc,0xc8,0xd,0xc8,0xe,0xef,0xe, +0x46,0xf,0x45,0x10,0xbc,0x10,0xd3,0x10,0xe,0x11,0x75,0x10, +0x97,0xf,0x34,0x10,0x72,0x11,0xc9,0x11,0x84,0x11,0x58,0x11, +0xae,0x11,0x7a,0x11,0x9d,0xf,0xb6,0xe,0xa2,0xf,0xcb,0xe, +0xa7,0xd,0x25,0xf,0x55,0xf,0x97,0xd,0x70,0xe,0x2d,0x10, +0x80,0xf,0xae,0xe,0xf5,0xe,0xc1,0xd,0x22,0xb,0xdc,0xa, +0x47,0xc,0xe8,0xa,0x46,0x8,0x5,0x8,0x93,0x8,0xa2,0x8, +0x11,0x8,0x32,0x6,0x2c,0x5,0x64,0x5,0x95,0x4,0xd,0x5, +0xf9,0x6,0xa5,0x4,0xc6,0x0,0xc,0x3,0xb3,0x6,0x67,0x4, +0xfe,0xff,0xee,0xfc,0x81,0xfa,0xed,0xfa,0xb4,0xfc,0x3,0xfb, +0x40,0xf7,0xb1,0xf5,0xa1,0xf8,0x4d,0xfd,0xc8,0xfb,0x26,0xf6, +0x56,0xf7,0x2f,0xfc,0xa2,0xfa,0xa0,0xf6,0x7f,0xf5,0xb7,0xf3, +0x1a,0xf3,0x19,0xf7,0x3a,0xf8,0x26,0xf3,0xd1,0xf0,0xec,0xf4, +0x3f,0xfa,0xc3,0xfb,0xe8,0xf7,0x52,0xf4,0xc4,0xf5,0x6b,0xf7, +0x53,0xf7,0xf3,0xf7,0x59,0xf6,0x77,0xf3,0xf3,0xf4,0x14,0xf8, +0xea,0xf7,0x71,0xf6,0xbc,0xf6,0xf3,0xf7,0xc9,0xf7,0x56,0xf7, +0xd9,0xf8,0xea,0xf9,0x2e,0xf8,0x72,0xf5,0x63,0xf4,0xdb,0xf6, +0xd8,0xf9,0xfc,0xf8,0x62,0xf8,0x11,0xfb,0xc4,0xfc,0x92,0xfe, +0x82,0x1,0x48,0x0,0xfa,0xfd,0x6b,0x0,0x64,0x2,0xd0,0xff, +0x53,0xfc,0xde,0xfb,0x1f,0xff,0x2f,0x1,0xec,0xfe,0x55,0xfd, +0x8d,0xfe,0x30,0x0,0xec,0x2,0xb5,0x4,0x6e,0x1,0xba,0xfd, +0x3f,0x0,0x23,0x5,0xf9,0x5,0x4c,0x4,0xf8,0x2,0x8d,0x2, +0x5e,0x5,0x24,0x9,0x4,0x8,0x5,0x5,0x55,0x5,0xff,0x6, +0x5e,0x8,0x4b,0x8,0x31,0x5,0x43,0x3,0x20,0x5,0xc9,0x6, +0xfc,0x6,0x9b,0x6,0xfa,0x5,0x71,0x8,0xf7,0xc,0xb5,0xd, +0x84,0xc,0xbf,0xd,0xa9,0xf,0x4a,0x11,0xf4,0x11,0xde,0xe, +0x96,0xa,0xad,0x9,0xe3,0xa,0x56,0xb,0x0,0xa,0xeb,0x6, +0xbb,0x4,0x1f,0x7,0x61,0xc,0x2e,0xe,0x74,0xc,0xd7,0xc, +0x1f,0xf,0x8c,0x10,0x20,0x11,0xe5,0xe,0xde,0xa,0xfb,0x9, +0xba,0xa,0x6e,0x9,0xfb,0x6,0x5b,0x5,0x2d,0x7,0x5c,0xa, +0xd8,0x7,0xa8,0x2,0x54,0x3,0x34,0x6,0xe7,0x4,0x64,0x2, +0x49,0x0,0x60,0xfc,0xd7,0xfa,0xfd,0xfe,0x5,0x1,0xf7,0xfc, +0x97,0xfb,0x1,0x0,0x3d,0x3,0x69,0x3,0xb4,0x2,0x1c,0x1, +0x7b,0xff,0x70,0xfe,0x8c,0xfd,0xdd,0xfb,0x45,0xf8,0x22,0xf7, +0x33,0xfb,0xaa,0xfc,0x8,0xfa,0x44,0xfb,0x93,0xfe,0x4a,0xff, +0xa0,0xff,0xba,0xfd,0x32,0xf8,0x68,0xf5,0x23,0xf7,0xf1,0xf7, +0x9,0xf6,0xd,0xf5,0x8,0xf7,0xd9,0xf9,0x22,0xfc,0x58,0xfd, +0x79,0xfb,0xea,0xf8,0xab,0xf9,0xaf,0xfa,0xc9,0xf8,0x44,0xf6, +0xb9,0xf4,0x68,0xf4,0x83,0xf5,0xbf,0xf6,0x66,0xf7,0xcc,0xf7, +0x6a,0xf8,0x3b,0xfa,0xd3,0xfb,0x78,0xfa,0xfa,0xf6,0x50,0xf3, +0x24,0xf0,0xfc,0xed,0x10,0xec,0xa8,0xea,0x5d,0xec,0x21,0xf0, +0xec,0xf2,0x12,0xf5,0x99,0xf6,0xc1,0xf6,0x90,0xf7,0xb,0xfa, +0x1c,0xfb,0x7b,0xf8,0x14,0xf5,0x5d,0xf4,0x9c,0xf4,0xcf,0xf3, +0x47,0xf3,0x2a,0xf3,0x55,0xf3,0x97,0xf5,0x36,0xf9,0x56,0xfa, +0xc7,0xf7,0xbf,0xf4,0x68,0xf3,0xe4,0xf2,0x2c,0xf3,0xce,0xf3, +0x94,0xf3,0xa0,0xf4,0x1,0xf8,0x62,0xfb,0x53,0xfe,0x2f,0x0, +0xbd,0xff,0x2b,0xff,0x78,0xff,0x6,0xff,0xc5,0xfd,0xf0,0xfb, +0x7d,0xf9,0x2,0xf7,0x41,0xf5,0x7f,0xf5,0x63,0xf7,0x42,0xf9, +0xc4,0xfb,0x66,0xff,0x42,0x2,0xca,0x3,0xbc,0x4,0x64,0x4, +0x8,0x2,0x85,0xfe,0x71,0xfb,0x24,0xfa,0x16,0xfa,0x74,0xf9, +0xb9,0xf8,0x80,0xf9,0x82,0xfb,0x1e,0xfe,0xee,0xff,0x59,0xff, +0x17,0xfe,0x7f,0xfd,0x27,0xfc,0xb6,0xfa,0x8a,0xfa,0x9d,0xfa, +0x3e,0xfa,0x8e,0xf9,0xf5,0xf8,0xb,0xfa,0xf7,0xfc,0x14,0xff, +0x6e,0xff,0x22,0x0,0x7c,0x1,0x6f,0x2,0xd3,0x3,0xb9,0x4, +0x8b,0x3,0x44,0x2,0x39,0x1,0x83,0xff,0x52,0xff,0xc0,0xff, +0x8b,0xfe,0xfa,0xfd,0x38,0xfe,0xc5,0xfd,0x4b,0xfe,0x6,0xff, +0x44,0xfe,0xe1,0xfd,0x2,0xfe,0x9,0xfd,0xc0,0xfb,0xa9,0xfb, +0x7b,0xfc,0x15,0xfc,0x85,0xfa,0x28,0xfb,0x6f,0xfe,0x41,0x2, +0x8c,0x5,0x2d,0x6,0xef,0x4,0x19,0x6,0x5a,0x8,0x7c,0x8, +0xfc,0x7,0x56,0x7,0x72,0x6,0x11,0x7,0x6d,0x7,0x34,0x5, +0xa5,0x2,0x47,0x1,0xdf,0xff,0x52,0xfe,0x9f,0xfd,0x9,0xfe, +0x1c,0xff,0xab,0x0,0xff,0x2,0x54,0x5,0xd,0x6,0xe1,0x5, +0x5e,0x7,0x92,0x9,0x8e,0x9,0x12,0x9,0xa6,0xa,0xdb,0xb, +0x11,0xb,0xb5,0x9,0x38,0x7,0x85,0x3,0xa6,0x1,0xfc,0x1, +0x3d,0x1,0x25,0xff,0x80,0xfe,0x57,0xff,0xf9,0xff,0x9e,0x0, +0x2,0x1,0xe4,0xff,0xaa,0xfe,0x0,0xff,0x84,0xff,0xc9,0xff, +0x12,0x1,0x7f,0x2,0xa0,0x3,0x48,0x5,0x73,0x6,0xdb,0x7, +0x74,0xa,0xb4,0xa,0x55,0x8,0x5b,0x6,0x47,0x3,0x98,0xff, +0xd,0xfe,0xd,0xfc,0xae,0xf9,0x49,0xfb,0x45,0xff,0x1f,0x2, +0xbf,0x4,0xbe,0x7,0x79,0x9,0xd7,0x9,0x8c,0xa,0xc2,0xa, +0x79,0x8,0x36,0x5,0x9c,0x2,0x24,0x0,0x58,0xfe,0x89,0xfd, +0x41,0xfd,0x35,0xfe,0xe0,0x0,0x8e,0x4,0xdd,0x7,0xa1,0x9, +0xc2,0x9,0x9c,0x8,0xf7,0x6,0xe5,0x4,0x20,0x1,0x93,0xfc, +0x17,0xfa,0x85,0xfa,0x8e,0xfc,0xa1,0xfe,0xd7,0x0,0x5e,0x3, +0xa2,0x4,0x33,0x5,0x40,0x6,0xe6,0x4,0x50,0x0,0xce,0xfc, +0xcb,0xfb,0xcd,0xfa,0x56,0xfa,0x41,0xfc,0x2c,0xfe,0xa,0xff, +0xd7,0x1,0x12,0x4,0x9a,0x1,0x65,0xfe,0xf3,0xfc,0xbb,0xfa, +0x14,0xf9,0x32,0xf9,0x44,0xf9,0xc9,0xf9,0xc6,0xfa,0xc4,0xfa, +0x86,0xfa,0x88,0xfa,0x7a,0xfa,0x3d,0xfb,0xf0,0xfc,0x8a,0xff, +0xba,0x3,0xc4,0x7,0x84,0x9,0x6d,0xa,0x15,0xb,0xf,0x9, +0xd,0x5,0x29,0x2,0xcd,0xff,0x97,0xfc,0xb,0xfa,0xa7,0xf8, +0x30,0xf7,0xd2,0xf6,0x97,0xf9,0x46,0xfd,0x84,0xfe,0x34,0xff, +0xfd,0x1,0x6b,0x4,0x49,0x4,0x1d,0x3,0x49,0x2,0xd2,0x1, +0xac,0x1,0x95,0x2,0xb6,0x4,0xf2,0x5,0x6f,0x6,0x67,0x8, +0x4a,0x9,0x4a,0x7,0xdc,0x5,0xec,0x4,0xe0,0x2,0xbd,0x1, +0xdd,0x0,0xd0,0xfe,0x57,0xfd,0x8d,0xfc,0xe1,0xfb,0x5b,0xfb, +0x0,0xfa,0x87,0xf9,0x28,0xfc,0xc0,0xff,0xe7,0x1,0xa6,0x2, +0xc5,0x2,0xe,0x3,0x6a,0x3,0xd6,0x2,0xda,0x0,0x22,0xff, +0xc4,0xfe,0x95,0xfd,0xd6,0xfb,0x1d,0xfc,0xad,0xfc,0xb9,0xfc, +0x95,0xfe,0xda,0x0,0xf2,0x1,0xbf,0x2,0x89,0x2,0x72,0x1, +0xb5,0x0,0xfa,0xff,0x28,0xff,0xef,0xfd,0x24,0xfc,0x89,0xfb, +0x7d,0xfc,0x33,0xfd,0xff,0xfc,0xb7,0xfc,0x64,0xfd,0x60,0xfe, +0x9,0xfe,0xe4,0xfc,0x77,0xfc,0xfa,0xfc,0xec,0xfd,0x7b,0xfe, +0xb6,0xfe,0xa0,0xff,0xf5,0x0,0xc1,0x2,0x9d,0x5,0x5,0x7, +0xe0,0x5,0xc1,0x5,0x1e,0x6,0x98,0x3,0xe7,0x0,0x44,0xff, +0x1a,0xfb,0x20,0xf7,0xe9,0xf7,0xcc,0xf9,0x81,0xf9,0x92,0xf9, +0xb2,0xfa,0x86,0xfb,0x9d,0xfc,0xaa,0xfd,0x6e,0xfd,0x51,0xfd, +0xde,0xfe,0xcb,0x0,0xac,0x1,0x62,0x1,0xc4,0xff,0xfd,0xfc, +0x48,0xfa,0x7,0xf9,0xf,0xf9,0x4a,0xf9,0x13,0xfa,0x8e,0xfb, +0x3f,0xfc,0xcd,0xfc,0x74,0xfe,0x2e,0xfe,0x24,0xfb,0x29,0xfa, +0xf4,0xfa,0x98,0xf9,0x5b,0xf9,0x27,0xfc,0x6f,0xfd,0x31,0xfe, +0x37,0x1,0xe5,0x2,0xd2,0x2,0x43,0x4,0x1b,0x5,0xa0,0x2, +0x3a,0xff,0x5c,0xfd,0x22,0xfb,0xe3,0xf6,0x80,0xf3,0x28,0xf3, +0xbb,0xf4,0xdf,0xf7,0x4e,0xfc,0xd8,0x0,0xc5,0x4,0xc5,0x7, +0xf9,0x9,0xbc,0x9,0x3e,0x6,0xae,0x3,0x4c,0x2,0x90,0xfe, +0x27,0xfc,0x11,0xfd,0xbc,0xfc,0x72,0xfc,0xfc,0xfe,0x27,0x1, +0xf7,0x1,0xa9,0x2,0x90,0x2,0x86,0x2,0xe9,0x2,0xbb,0x1, +0x9a,0xff,0x2,0xfe,0x23,0xfc,0x58,0xfb,0xf0,0xfc,0x84,0xfd, +0x1d,0xfd,0xa,0x0,0xf9,0x3,0xf1,0x4,0xb0,0x5,0xc9,0x6, +0x70,0x4,0x30,0x0,0x3,0xfe,0x1f,0xfc,0x17,0xf9,0xe4,0xf8, +0xae,0xfb,0xf7,0xfc,0xd0,0xfd,0xcc,0x0,0xf0,0x2,0x72,0x3, +0x2c,0x5,0x5,0x7,0x7c,0x6,0xa9,0x4,0x6b,0x3,0x4f,0x2, +0xfc,0xff,0x5c,0xfd,0x6d,0xfc,0x90,0xfc,0x16,0xfd,0x98,0xff, +0xef,0x2,0xe8,0x3,0x44,0x4,0x4a,0x6,0x64,0x6,0x31,0x3, +0xb9,0x0,0xed,0xfe,0xed,0xfb,0x98,0xfa,0x4b,0xfb,0x1e,0xfb, +0xd0,0xfb,0x7a,0xfe,0xca,0xff,0xc,0x0,0x45,0x1,0x7a,0x1, +0x22,0x0,0x3f,0xff,0x75,0xfe,0x21,0xfd,0x22,0xfc,0xaf,0xfb, +0xdd,0xfb,0x26,0xfc,0x5e,0xfb,0xf1,0xfa,0x29,0xfc,0xcf,0xfc, +0x42,0xfd,0x26,0x0,0xf0,0x2,0x7f,0x3,0xd2,0x4,0x4a,0x6, +0x7,0x5,0x15,0x3,0x34,0x1,0xae,0xfd,0xdc,0xfa,0x53,0xfa, +0x2c,0xfa,0x16,0xfb,0xe3,0xfd,0x50,0x0,0xe5,0x1,0x41,0x3, +0x4c,0x3,0x4f,0x2,0xdf,0x0,0x1,0xfe,0x9,0xfb,0xb3,0xf9, +0xcf,0xf8,0xaa,0xf8,0x6f,0xfa,0x3d,0xfc,0xd9,0xfd,0xe6,0x0, +0x40,0x3,0x58,0x3,0x32,0x3,0x1b,0x2,0x8b,0xfe,0x6b,0xfb, +0xa9,0xfa,0x89,0xfa,0xfa,0xfa,0x25,0xfd,0x2c,0x0,0xb8,0x2, +0x92,0x4,0xe,0x6,0xb4,0x6,0x7f,0x5,0xb2,0x3,0x16,0x3, +0x1a,0x2,0x1a,0x0,0x69,0xff,0xdc,0xfe,0x10,0xfc,0xa7,0xf9, +0x4a,0xf9,0xe2,0xf8,0x59,0xf9,0xd1,0xfb,0x23,0xfd,0x1,0xfd, +0x8e,0xfe,0x68,0x0,0xff,0xff,0x66,0xff,0x3a,0x0,0x41,0x1, +0xb8,0x2,0x28,0x5,0xac,0x6,0xc,0x6,0x70,0x4,0x18,0x2, +0x18,0xfe,0xd,0xfa,0xb1,0xf8,0x1c,0xf9,0x64,0xf9,0xd8,0xfa, +0xea,0xfd,0x22,0x0,0xf9,0x0,0xab,0x1,0xcf,0x1,0xff,0x0, +0x30,0x0,0x5f,0x0,0xd0,0x1,0x84,0x3,0x63,0x4,0xa7,0x4, +0x78,0x4,0x2,0x4,0x9a,0x3,0x40,0x2,0x2f,0x0,0x30,0xff, +0x20,0xfe,0x3c,0xfc,0xee,0xfb,0x93,0xfc,0x41,0xfc,0xd0,0xfc, +0x52,0xfe,0x12,0xff,0x7b,0x0,0x54,0x2,0x8a,0x2,0x77,0x2, +0xdf,0x2,0xc2,0x2,0x4d,0x3,0x30,0x4,0x9c,0x3,0xd7,0x2, +0x22,0x2,0xca,0xff,0x70,0xfd,0xb3,0xfc,0x4,0xfc,0x31,0xfb, +0x7c,0xfb,0xb1,0xfc,0xa3,0xfe,0x46,0x1,0xfb,0x2,0xb7,0x2, +0x3,0x2,0x82,0x1,0xb6,0xff,0x16,0xfe,0xe,0xff,0x9b,0xff, +0xa,0xfe,0x6d,0xfe,0x6e,0x0,0xab,0x0,0x6b,0x1,0xa8,0x2, +0x56,0x0,0x80,0xfd,0xa7,0xfd,0xaf,0xfc,0xf,0xfa,0xd2,0xf9, +0x7b,0xfa,0xe6,0xf9,0x8e,0xfa,0xcb,0xfc,0x43,0xfe,0xe3,0xfe, +0x6c,0xff,0x29,0xff,0xdb,0xfd,0xdd,0xfc,0xf5,0xfc,0x5,0xfd, +0x8c,0xfc,0xcd,0xfc,0xfc,0xfd,0xdc,0xfe,0x66,0xff,0xf,0x0, +0x92,0xff,0x80,0xfd,0x32,0xfc,0x55,0xfc,0x85,0xfb,0x2f,0xfa, +0x86,0xfa,0xae,0xfa,0x90,0xf9,0x60,0xfa,0xec,0xfc,0x8,0xfe, +0xc1,0xfe,0x43,0x0,0xa3,0x0,0x65,0x0,0x7,0x1,0xb8,0x0, +0xbb,0xfe,0x3b,0xfd,0xce,0xfc,0x9f,0xfc,0x1a,0xfd,0x3e,0xfe, +0xbd,0xfe,0x4d,0xfe,0x7e,0xfd,0x78,0xfc,0x0,0xfc,0x69,0xfc, +0x7d,0xfc,0xcc,0xfc,0x7c,0xfe,0x80,0xff,0x97,0xff,0x72,0x1, +0x5c,0x3,0x35,0x3,0xbe,0x3,0xe0,0x4,0x38,0x4,0x8,0x4, +0xdb,0x4,0xbc,0x3,0xbb,0x1,0x98,0x0,0x49,0xff,0xbe,0xfe, +0xc5,0xff,0x92,0x0,0xfa,0x0,0xbf,0x1,0x56,0x2,0xaa,0x2, +0xe7,0x2,0x1b,0x3,0x78,0x3,0x5b,0x3,0xe7,0x2,0x3a,0x3, +0x9c,0x3,0x46,0x3,0xfc,0x2,0xd9,0x2,0x11,0x3,0x2f,0x4, +0x91,0x5,0x7,0x7,0x78,0x8,0xb2,0x8,0x44,0x8,0x48,0x8, +0xa9,0x7,0x75,0x6,0xef,0x5,0x5c,0x5,0x6a,0x4,0x6c,0x4, +0x6e,0x5,0x3a,0x6,0x56,0x6,0x8f,0x6,0x76,0x7,0x0,0x8, +0x6e,0x8,0x2e,0xa,0x31,0xb,0xeb,0x9,0x8c,0x9,0xae,0xa, +0x5,0xb,0xf,0xc,0xce,0xd,0x38,0xd,0x2,0xd,0xb1,0xf, +0x6,0x10,0x55,0xd,0x57,0xd,0xb6,0xd,0x6c,0xa,0xce,0x8, +0xce,0x9,0x2b,0x7,0x15,0x4,0x70,0x5,0xb4,0x4,0xe4,0x0, +0xf7,0x1,0x79,0x4,0x73,0x2,0x1a,0x3,0xeb,0x7,0x22,0x8, +0x97,0x6,0xb5,0x9,0xfa,0xa,0xb5,0x7,0x2e,0x7,0x37,0x8, +0x37,0x5,0x8e,0x2,0x36,0x4,0xe3,0x4,0xdc,0x1,0x14,0x0, +0x90,0x1,0x6,0x2,0xa6,0x0,0x64,0x1,0x6e,0x2,0xe6,0xff, +0x4,0xff,0x57,0x2,0xda,0x1,0x57,0xfe,0x4b,0x0,0x21,0x2, +0x3a,0xfe,0x61,0xfe,0xfd,0x2,0x4c,0x1,0x53,0xfe,0xcd,0x0, +0x7d,0xff,0x1e,0xfa,0x8c,0xfa,0x22,0xfb,0xad,0xf5,0x25,0xf3, +0x9e,0xf4,0x6e,0xf2,0x50,0xf0,0x1e,0xf2,0x74,0xf2,0x97,0xf1, +0x57,0xf3,0xdd,0xf4,0xd2,0xf4,0x76,0xf5,0xf2,0xf5,0x7c,0xf5, +0x83,0xf4,0x91,0xf2,0xcd,0xf1,0x83,0xf2,0x37,0xf0,0x21,0xed, +0x70,0xee,0xb,0xef,0xa9,0xec,0x6a,0xee,0x9b,0xf1,0x2a,0xef, +0x81,0xed,0x2a,0xf0,0x3e,0xef,0x36,0xec,0xdc,0xed,0xec,0xee, +0xfc,0xeb,0x0,0xec,0x28,0xef,0xaa,0xef,0x46,0xef,0xe0,0xf0, +0x86,0xf1,0x23,0xf0,0x9e,0xef,0x72,0xf0,0x4e,0xf0,0xe2,0xee, +0x34,0xee,0xa2,0xee,0x45,0xee,0xf,0xed,0x63,0xed,0x2b,0xef, +0xfc,0xef,0x50,0xf0,0xa3,0xf1,0x9a,0xf2,0xc0,0xf2,0x70,0xf3, +0xaf,0xf3,0x9c,0xf2,0x7e,0xf2,0x9d,0xf3,0x64,0xf3,0xbd,0xf2, +0x9c,0xf3,0x92,0xf3,0xe1,0xf1,0xd9,0xf1,0x46,0xf3,0x9c,0xf3, +0x8a,0xf3,0x3d,0xf4,0x32,0xf5,0xc,0xf6,0xf8,0xf6,0x2,0xf8, +0x80,0xf8,0x4,0xf8,0xc1,0xf7,0x51,0xf8,0x47,0xf8,0xdc,0xf7, +0xdd,0xf8,0x46,0xfa,0x5e,0xfa,0x65,0xfa,0xb1,0xfb,0x7e,0xfd, +0x51,0xfe,0xe9,0xfd,0xe4,0xfd,0x58,0xfe,0xec,0xfd,0xbf,0xfd, +0xa8,0xfe,0x81,0xff,0x39,0x0,0x19,0x1,0x94,0x2,0x20,0x5, +0xf9,0x6,0x32,0x7,0x53,0x7,0x96,0x7,0x2e,0x7,0xd5,0x6, +0x43,0x7,0xa,0x7,0xca,0x5,0x13,0x6,0x66,0x7,0x39,0x7, +0xca,0x7,0x7f,0xa,0xa8,0xb,0x92,0xa,0xe7,0xa,0xc,0xd, +0x71,0xd,0xe4,0xb,0x90,0xb,0x13,0xc,0xb4,0xb,0x6c,0xb, +0x1b,0xc,0x64,0xd,0x45,0xd,0x32,0xb,0xe8,0xa,0x87,0xc, +0xc2,0xc,0xbf,0xc,0x53,0xd,0x95,0xd,0x8b,0xe,0x71,0xf, +0x60,0xf,0x78,0xf,0x5a,0xf,0x77,0xf,0xde,0x10,0xa3,0x11, +0xf4,0x10,0x5e,0x11,0x81,0x13,0x2a,0x14,0x77,0x12,0x0,0x12, +0x34,0x13,0xa6,0x12,0x9f,0x10,0xc2,0xf,0xe1,0xf,0x37,0xf, +0xb5,0xd,0xa7,0xd,0x82,0xf,0x9a,0xf,0x53,0xd,0xa9,0xd, +0x79,0x10,0x25,0x10,0xba,0xd,0xc6,0xc,0x28,0xb,0x9d,0x8, +0x6b,0x7,0x34,0x7,0x9b,0x7,0xa9,0x7,0xb2,0x7,0x80,0x9, +0xaa,0x9,0x24,0x8,0xb8,0xb,0xd2,0x10,0x1,0xe,0xaa,0x7, +0xc5,0x8,0xb9,0xe,0x4f,0xd,0x29,0x5,0xe,0x2,0x1a,0x5, +0x89,0x6,0xb9,0x3,0x55,0x0,0x9c,0x0,0x33,0x3,0x6,0x5, +0x7,0x6,0x7,0x4,0x15,0x0,0xca,0x1,0x1d,0x8,0x36,0x8, +0xd0,0x0,0x6c,0xfe,0x9f,0x4,0x22,0x6,0xe4,0x0,0x40,0x1, +0xb4,0x4,0xa1,0x1,0x42,0xfe,0xf2,0x2,0x67,0x8,0x7c,0x3, +0xfd,0xfa,0xff,0xfc,0xbf,0x2,0x47,0x0,0x27,0xfc,0x4,0xfc, +0xc0,0xfc,0x82,0xff,0xbb,0x2,0xeb,0x1,0x25,0x0,0x7c,0x0, +0xd4,0x1,0x63,0x3,0x27,0x1,0x7,0xfa,0xf8,0xf6,0x39,0xfb, +0x90,0xfd,0x60,0xf9,0x6e,0xf4,0xce,0xf5,0x46,0xfc,0xa3,0xfd, +0xa,0xfa,0x13,0xfc,0xda,0xfd,0x37,0xf8,0x91,0xf8,0x24,0xff, +0x46,0xfb,0x53,0xf2,0xea,0xf2,0xfa,0xf8,0xf6,0xf9,0x9,0xf4, +0x55,0xf1,0x8b,0xf7,0xf2,0xf8,0x70,0xf2,0xd1,0xf3,0xbd,0xf8, +0x29,0xf5,0x8f,0xf3,0x9d,0xf8,0x88,0xf9,0x60,0xf5,0xc4,0xf2, +0xf3,0xf7,0x9b,0x1,0x4e,0xfe,0x6,0xf4,0x61,0xfb,0xc,0x5, +0xda,0xfa,0x9b,0xf4,0x79,0xfe,0xdb,0xff,0x43,0xf6,0x3d,0xf5, +0x7e,0xfc,0x42,0xfc,0x73,0xf3,0x18,0xf4,0xd9,0xfd,0x98,0xfa, +0x89,0xf2,0xdd,0xfa,0xf2,0x1,0xdf,0xf9,0xcd,0xf7,0x29,0x0, +0x8e,0x0,0xda,0xf9,0x9f,0xf9,0x1,0xff,0x48,0xff,0x60,0xf9, +0x7f,0xf7,0x66,0xfb,0x4f,0xfc,0xab,0xfa,0x36,0xfc,0xe5,0xfe, +0x67,0x1,0xd5,0x2,0x5a,0x0,0x34,0x1,0x8b,0x7,0xb9,0x5, +0x80,0xfe,0xcf,0xff,0x13,0x2,0x6c,0xfe,0x8f,0xfd,0xc4,0xff, +0xd3,0xff,0x23,0xfe,0x98,0xfd,0xc4,0x1,0x23,0x4,0x10,0xfe, +0x3c,0xfb,0x37,0xff,0xb8,0xfd,0x30,0xfa,0xb5,0xfb,0xef,0xfa, +0xbc,0xf8,0xc8,0xfb,0xbe,0xfe,0xfb,0xfe,0xd2,0x1,0x70,0x5, +0xd6,0x5,0x8c,0x5,0x4b,0x4,0xe1,0xff,0x6a,0xfe,0xa3,0x2, +0xd8,0x1,0xb9,0xf8,0xc,0xf5,0x69,0xfb,0x1e,0xfe,0xf2,0xf8, +0x34,0xf8,0x48,0xfe,0xa4,0x0,0x2,0xfe,0xba,0xfd,0xcb,0x0, +0x6a,0x2,0x60,0x0,0xe9,0xfd,0xfb,0xfc,0xa,0xfa,0x5e,0xf6, +0xfd,0xf7,0x92,0xfb,0x30,0xfb,0x55,0xfa,0xae,0xfb,0x27,0xfd, +0x20,0x0,0xb,0x4,0x51,0x3,0xc4,0xfe,0xcb,0xfc,0xa9,0xfe, +0x8f,0x1,0xf7,0x0,0x85,0xf9,0x88,0xf3,0xc2,0xf8,0xea,0xff, +0x9d,0xfd,0x3d,0xf9,0x30,0xfb,0x13,0xff,0x52,0xfe,0x9f,0xf9, +0xd1,0xf8,0x2b,0xfd,0x4c,0xfc,0xb8,0xf5,0xa8,0xf4,0x0,0xf9, +0x40,0xfb,0x8e,0xfb,0x63,0xfc,0x47,0xfd,0x71,0xfd,0x72,0xfd, +0x6a,0xfe,0x27,0xff,0x1e,0xfe,0xe8,0xfb,0x9a,0xf8,0xde,0xf5, +0xe2,0xf5,0xaf,0xf5,0xf5,0xf3,0xc2,0xf3,0xca,0xf3,0xd7,0xf3, +0x85,0xf7,0xfa,0xf9,0x5d,0xf7,0x17,0xf9,0xca,0xff,0x42,0xfe, +0xb4,0xf6,0xa7,0xf7,0x7f,0xff,0x5f,0x1,0x5e,0xfb,0x72,0xf7, +0xde,0xfa,0x62,0xfe,0x63,0xfd,0xcd,0xfd,0x30,0x0,0xb7,0xfe, +0xba,0xfb,0xaa,0xfc,0x81,0xff,0xe1,0xff,0xe0,0xfd,0xd0,0xfb, +0xf,0xfb,0x79,0xfd,0x84,0x1,0xcc,0x0,0x90,0xfd,0x9c,0xff, +0x4b,0x3,0x8,0x4,0x39,0x4,0x23,0x2,0xa,0x0,0x8d,0x3, +0xfa,0x4,0x15,0x0,0xfe,0xfe,0xa2,0x2,0x46,0x3,0x72,0x1, +0xad,0x0,0xb1,0x1,0x70,0x3,0xe9,0x3,0xbc,0x4,0xd8,0x6, +0xe2,0x5,0x59,0x2,0x41,0x2,0x44,0x5,0x2f,0x7,0xba,0x6, +0x30,0x3,0x5b,0xff,0x7d,0x1,0xce,0x6,0xd1,0x5,0xe3,0xff, +0xbb,0xfe,0x91,0x2,0x1b,0x3,0x88,0x0,0x52,0x2,0xba,0x6, +0x6e,0x8,0xc0,0xa,0xac,0xd,0x83,0xc,0xb3,0xb,0x34,0xe, +0xd8,0xd,0xfc,0x9,0x91,0x7,0x97,0x7,0xf1,0x7,0x33,0x6, +0x95,0x3,0xca,0x2,0xba,0x1,0x98,0x0,0xf5,0x3,0x3,0x9, +0x7,0x9,0x71,0x6,0xb9,0x7,0x29,0xb,0xe9,0xb,0xa6,0xb, +0x9a,0xb,0x0,0x9,0xbb,0x6,0x51,0x8,0x2d,0x9,0x18,0x7, +0xf0,0x5,0x4a,0x6,0xe0,0x5,0xe8,0x4,0x75,0x5,0x57,0x7, +0x5a,0x7,0xa5,0x5,0x1c,0x6,0x6a,0x7,0x43,0x5,0xe9,0x2, +0xea,0x4,0x10,0x6,0x18,0x3,0x6b,0x3,0x50,0x7,0xfc,0x6, +0x91,0x5,0x1b,0x7,0x36,0x5,0x51,0x0,0xd,0xff,0xec,0xfe, +0x72,0xfc,0x1c,0xfa,0x83,0xf8,0x9d,0xf6,0xe7,0xf5,0xc9,0xf7, +0xeb,0xfa,0x4e,0xfc,0x33,0xfb,0xe8,0xfa,0xda,0xfd,0x4,0x1, +0xe,0x1,0x7a,0xff,0x2,0xfe,0x98,0xfc,0x15,0xfc,0xe1,0xfb, +0x57,0xfb,0x34,0xfc,0x12,0xfd,0xf8,0xfb,0xf2,0xfb,0x86,0xfd, +0x99,0xfd,0xd0,0xfc,0xef,0xfb,0x57,0xf9,0xa,0xf7,0x74,0xf8, +0x12,0xfb,0x13,0xfb,0x36,0xfb,0xa,0xfe,0xe6,0xff,0x98,0xff, +0xf3,0xff,0xc7,0x0,0xb6,0x0,0x1d,0xff,0xfe,0xfb,0x24,0xfa, +0x54,0xfa,0x20,0xfa,0x8,0xfa,0xa6,0xfa,0xa8,0xfa,0x78,0xfb, +0x6,0xfe,0xb7,0xff,0x11,0xff,0x7c,0xfd,0xe4,0xfc,0x76,0xfd, +0xf9,0xfd,0x84,0xfe,0x59,0xff,0xce,0xfe,0xed,0xfc,0x3c,0xfd, +0x42,0x0,0x55,0x1,0xc,0xff,0xe,0xfd,0x43,0xfc,0xf3,0xfb, +0xc8,0xfc,0x96,0xfc,0x5b,0xfa,0xde,0xf9,0x41,0xfb,0x36,0xfb, +0x5a,0xfa,0x7e,0xfa,0x8a,0xfb,0x97,0xfc,0x32,0xfc,0x70,0xfb, +0xe2,0xfc,0xbc,0xfe,0x8a,0xfe,0xf7,0xfd,0xa2,0xfd,0xa9,0xfc, +0x4c,0xfc,0xd1,0xfb,0xc5,0xf9,0x5c,0xf9,0x54,0xfb,0xfb,0xfb, +0x54,0xfc,0x99,0xfe,0xd,0x1,0xd3,0x2,0xde,0x2,0xff,0x0, +0x33,0x1,0x9f,0x2,0xec,0x0,0x58,0xff,0x52,0x0,0x61,0x0, +0x63,0x0,0xcb,0x1,0x79,0x1,0x12,0x0,0x29,0x0,0xf3,0xff, +0x1f,0xff,0x34,0x0,0x29,0x2,0x29,0x2,0xea,0x0,0xbb,0x0, +0x72,0x1,0x97,0x1,0x4c,0x1,0x46,0x1,0x7c,0x1,0x89,0x2, +0x6c,0x4,0x1,0x5,0x5a,0x4,0x6d,0x5,0xfd,0x6,0x47,0x5, +0xb9,0x2,0x84,0x3,0xa1,0x4,0x91,0x2,0x2a,0x1,0xf3,0x2, +0x93,0x3,0x18,0x2,0x3,0x3,0x73,0x5,0xd0,0x5,0x65,0x6, +0xed,0x7,0x71,0x6,0x90,0x3,0x18,0x3,0xd1,0x1,0x35,0xfe, +0x11,0xfd,0x56,0xfe,0xd9,0xfd,0x3b,0xfd,0xe7,0xfe,0x17,0x0, +0xc1,0xff,0x6f,0x0,0x86,0x1,0xb3,0x0,0xdd,0xff,0x5b,0x1, +0x3d,0x2,0x76,0x0,0xf7,0xff,0xe8,0x1,0x9f,0x1,0x33,0xff, +0x1b,0xff,0xfe,0xff,0x4d,0xfe,0xa5,0xfc,0x36,0xfe,0x52,0x0, +0x64,0x0,0x2e,0x0,0x9f,0x0,0xd6,0x0,0x5a,0x1,0xdb,0x1, +0x10,0x1,0x58,0x0,0x40,0x1,0x8c,0x2,0x2a,0x3,0xcd,0x3, +0xab,0x4,0xb0,0x4,0xc7,0x3,0x33,0x3,0x98,0x2,0x21,0x1, +0x52,0x0,0xf8,0x0,0x8a,0x1,0xb9,0x1,0xa3,0x2,0x5c,0x4, +0xf6,0x5,0x87,0x6,0x41,0x6,0x80,0x6,0x22,0x7,0x30,0x6, +0x85,0x4,0xf2,0x4,0xa2,0x5,0xa3,0x3,0xb9,0x1,0x36,0x2, +0x75,0x2,0x32,0x1,0x8c,0x0,0x95,0x1,0x59,0x2,0x44,0x1, +0xa6,0x0,0x93,0x1,0x3,0x1,0x85,0xff,0x7b,0x0,0xf9,0x1, +0xe3,0x0,0xa3,0xff,0x49,0x1,0x92,0x3,0x83,0x3,0x5,0x3, +0x4e,0x3,0x9f,0x2,0xd,0x2,0x91,0x1,0x13,0xff,0xb1,0xfd, +0xcb,0xfd,0x68,0xfa,0x7e,0xf7,0x15,0xfa,0x54,0xfb,0xa0,0xf8, +0xb,0xf9,0x31,0xfc,0x95,0xfc,0x93,0xfb,0xca,0xfb,0x41,0xfc, +0x38,0xfc,0x86,0xfb,0x90,0xfb,0x75,0xfd,0x79,0xfd,0x6e,0xfb, +0x6b,0xfc,0x2,0xfd,0xb6,0xf9,0x7c,0xf9,0xb9,0xfb,0xbc,0xf9, +0xb3,0xf7,0xc,0xf8,0xf0,0xf6,0xef,0xf6,0x19,0xf8,0x97,0xf6, +0xd7,0xf6,0xf,0xfa,0x63,0xf9,0xcb,0xf6,0x4a,0xf8,0x8,0xfa, +0x61,0xf8,0x41,0xf7,0x49,0xf8,0xfd,0xf8,0x9,0xf9,0x85,0xf9, +0x30,0xfa,0xbd,0xf9,0xba,0xf7,0x55,0xf6,0xba,0xf6,0xe0,0xf6, +0x49,0xf6,0x88,0xf6,0xc,0xf8,0x7e,0xf9,0x62,0xf9,0xcd,0xf9, +0xd1,0xfb,0x33,0xfb,0x95,0xf9,0xb2,0xfb,0xa0,0xfc,0xbd,0xfa, +0x85,0xfb,0x89,0xfc,0x40,0xfb,0x9b,0xfa,0x11,0xfa,0xc5,0xfa, +0xc6,0xfc,0x17,0xfb,0xc2,0xf9,0xc3,0xfc,0x56,0xfc,0xc4,0xf9, +0x24,0xfc,0x6f,0xfc,0x2c,0xf8,0x24,0xf9,0xf6,0xfc,0x8c,0xfb, +0x2e,0xfa,0xd0,0xfc,0x1,0xfe,0xa1,0xfd,0x9a,0xfe,0xb5,0xfe, +0x98,0xfd,0x11,0xfd,0xa5,0xfc,0x97,0xfc,0x69,0xfc,0xf8,0xfa, +0xbd,0xfa,0x3a,0xfc,0x76,0xfc,0x83,0xfc,0x11,0xfe,0xd9,0xfe, +0xf8,0xfe,0x8e,0x0,0x62,0x1,0x1c,0x0,0x7a,0x0,0xe7,0x1, +0x97,0x0,0x21,0x0,0x9f,0x2,0x76,0x2,0x9f,0x0,0x55,0x2, +0x8a,0x4,0x1a,0x4,0xb6,0x3,0x9d,0x4,0x6e,0x5,0xad,0x5, +0xc9,0x6,0xa6,0x8,0x47,0x8,0x87,0x6,0xd3,0x6,0xc,0x8, +0x45,0x8,0x11,0x8,0xfd,0x7,0x1e,0x8,0x44,0x8,0xbc,0x9, +0xfc,0xb,0xaa,0xa,0x91,0x8,0xc8,0xa,0xa,0xb,0x60,0x7, +0xa8,0x7,0x36,0x9,0xfe,0x6,0x1c,0x7,0x37,0xa,0x3e,0xa, +0x51,0x9,0xde,0xa,0x28,0xc,0x41,0xb,0xbf,0x9,0x4c,0xa, +0x47,0xc,0x17,0xb,0xf3,0x7,0x32,0x8,0xb0,0x8,0xd3,0x6, +0xc3,0x7,0x58,0x9,0x1c,0x7,0x32,0x7,0x58,0xa,0xb5,0x9, +0xe6,0x7,0x42,0x8,0xf0,0x6,0xd5,0x4,0x1d,0x5,0x74,0x5, +0xc1,0x3,0x9,0x2,0x5c,0x3,0xd,0x6,0xaa,0x4,0xa7,0x1, +0xff,0x3,0xf3,0x6,0xcf,0x3,0x66,0x2,0xfb,0x6,0xa0,0x6, +0x30,0x1,0x76,0x2,0xfa,0x4,0x8c,0xff,0xd5,0xfc,0x8b,0x1, +0x8,0x2,0x73,0xfe,0xcc,0xff,0x1a,0x3,0x42,0x2,0x48,0x0, +0xfb,0x1,0x45,0x4,0xbc,0x1,0x49,0xff,0x62,0x2,0x4,0x3, +0x9f,0xfe,0xab,0xff,0x28,0x3,0xff,0xfe,0x3e,0xfc,0x26,0x1, +0xa2,0x1,0xed,0xfd,0xf3,0xff,0xe4,0x0,0xe8,0xfc,0x42,0xfe, +0xad,0x2,0xbd,0x0,0xf4,0xfc,0xbb,0xfd,0xb7,0x0,0x9a,0x1, +0x7d,0xff,0xc,0xfe,0x4d,0xfe,0x92,0xfd,0x6a,0xfe,0xbb,0x0, +0xb0,0xfe,0xc8,0xfc,0x42,0x0,0x12,0x1,0x8a,0xfd,0x12,0xfd, +0xa6,0xfd,0x47,0xfc,0x2c,0xfc,0x24,0xfc,0xfd,0xfa,0x61,0xfb, +0xd7,0xfc,0x98,0xfe,0xa1,0xff,0x1a,0xfd,0x81,0xfa,0xd2,0xfb, +0x6e,0xfc,0xfe,0xf9,0xf2,0xf7,0x3,0xf8,0xd2,0xf9,0x5c,0xfa, +0x1d,0xf9,0xcb,0xfa,0x8d,0xfc,0xe9,0xf9,0x9e,0xfa,0x4c,0xff, +0x71,0xfc,0xbf,0xf5,0x88,0xf7,0x23,0xfc,0x7f,0xf8,0xab,0xf2, +0x5,0xf5,0x5a,0xf9,0x8b,0xf6,0xb0,0xf4,0x75,0xf9,0x9f,0xf9, +0x7c,0xf4,0xba,0xf6,0x2b,0xfc,0x96,0xf8,0xd,0xf2,0x3,0xf4, +0xa,0xfa,0x28,0xf9,0x36,0xf4,0x4,0xf6,0xae,0xfa,0xb,0xf9, +0xb5,0xf7,0x50,0xfb,0xe,0xfb,0x54,0xf7,0x5c,0xf8,0xef,0xfa, +0x2c,0xf9,0x10,0xf6,0xe7,0xf5,0x99,0xf7,0x99,0xf7,0x7d,0xf6, +0x3b,0xf7,0x6e,0xf8,0x6d,0xf8,0x0,0xf9,0x53,0xfa,0xc5,0xfa, +0x87,0xf9,0xc8,0xf7,0x4c,0xf8,0xd9,0xf9,0x4e,0xf9,0x9e,0xf8, +0x4e,0xf9,0x1b,0xfa,0x86,0xfb,0xd9,0xfb,0xcb,0xf9,0xf2,0xf9, +0x58,0xfc,0xf7,0xfb,0xef,0xfa,0x8d,0xfc,0xa5,0xfd,0xe7,0xfc, +0x86,0xfc,0x7,0xfd,0xc1,0xfd,0x24,0xfd,0x8a,0xfb,0x4c,0xfc, +0xb0,0xfd,0x6e,0xfc,0x28,0xfd,0x39,0x1,0xe9,0x1,0x44,0x0, +0x49,0x2,0x9b,0x4,0x3b,0x2,0x40,0xff,0x61,0x0,0x39,0x1, +0x6c,0xfd,0x91,0xfb,0xa3,0xff,0xd2,0x1,0x63,0x0,0xef,0x1, +0xfb,0x4,0x3c,0x5,0x37,0x5,0xdc,0x6,0xea,0x7,0x7f,0x6, +0x3b,0x4,0x1f,0x5,0x71,0x8,0x67,0x8,0x99,0x5,0xf6,0x5, +0xa6,0x7,0xe,0x7,0xfb,0x8,0x2b,0xd,0xb5,0xc,0x21,0xb, +0x6d,0xd,0xc8,0xe,0x5a,0xd,0xd0,0xa,0xa,0x8,0x9d,0x8, +0xac,0x9,0xd5,0x6,0x20,0x7,0xbd,0xa,0x8b,0x9,0xa5,0x9, +0x45,0xf,0x6f,0xf,0x44,0xa,0xe,0xa,0x3e,0xc,0x1c,0xb, +0x4c,0x9,0x69,0x8,0xca,0x7,0x3e,0x8,0x44,0xa,0xfb,0xd, +0xfe,0xf,0xc1,0xc,0x4d,0xb,0x60,0x10,0x9d,0x11,0xc6,0xb, +0x24,0x9,0xec,0x9,0xee,0x7,0x40,0x6,0x5d,0x7,0x45,0x7, +0x56,0x5,0xc5,0x5,0x6a,0x9,0x7f,0xb,0x2e,0xa,0x7b,0x9, +0x4b,0xa,0xdf,0x9,0x90,0x8,0xe2,0x7,0x7a,0x7,0xf0,0x6, +0xc7,0x6,0xb3,0x7,0xe7,0x8,0x89,0x8,0xae,0x6,0x3b,0x6, +0x8e,0x8,0x2,0x9,0xb8,0x4,0xb5,0x1,0xb4,0x2,0x7a,0x2, +0x59,0x0,0xf8,0xfe,0xab,0xfd,0xe1,0xfc,0x5f,0xfd,0xc8,0xfd, +0x9d,0xfd,0x32,0xfd,0x56,0xfd,0xff,0xfd,0x45,0xfd,0x37,0xfc, +0xe0,0xfc,0x8,0xfd,0x22,0xfc,0x8a,0xfc,0xf3,0xfc,0x1b,0xfc, +0x8f,0xfc,0x3d,0xfd,0xc1,0xfa,0x2b,0xf9,0x98,0xfb,0xd2,0xfa, +0xe0,0xf5,0x11,0xf6,0x4e,0xf9,0x5e,0xf6,0x10,0xf1,0xcb,0xf0, +0xc4,0xf2,0x87,0xf2,0xdf,0xf1,0x5c,0xf3,0xc5,0xf4,0x83,0xf4, +0xe2,0xf5,0xd9,0xf8,0x81,0xf8,0xde,0xf5,0x60,0xf6,0x10,0xf8, +0x86,0xf5,0x6a,0xf2,0xa4,0xf4,0x52,0xf7,0xcf,0xf5,0xa3,0xf6, +0x59,0xfc,0xd3,0xfe,0xd3,0xfb,0x84,0xfa,0x2f,0xfc,0x9a,0xfa, +0x58,0xf6,0x76,0xf5,0xf5,0xf5,0x33,0xf4,0xe9,0xf4,0xa2,0xf9, +0xbb,0xfb,0xbb,0xf9,0xa8,0xf9,0xfd,0xfb,0x12,0xfa,0x15,0xf5, +0x9e,0xf4,0x5c,0xf5,0x6e,0xf2,0xad,0xf2,0x39,0xf7,0xf7,0xf8, +0x57,0xf9,0x33,0xfb,0x5a,0xfc,0xd2,0xfd,0xc1,0xff,0xd,0xff, +0x99,0xfc,0x8a,0xfb,0x65,0xfc,0xbe,0xfc,0xfa,0xfa,0xe3,0xf9, +0x70,0xfa,0x86,0xf9,0x2a,0xf9,0x5e,0xfc,0xa6,0xfd,0xc5,0xfa, +0x6d,0xfb,0xd9,0xff,0x8c,0xff,0x72,0xfc,0x72,0xfd,0xf6,0xfe, +0xf4,0xfc,0x4b,0xfb,0x17,0xfc,0xc4,0xfc,0x37,0xfc,0x1b,0xfd, +0xe5,0x0,0x7a,0x3,0x93,0x2,0x7c,0x2,0xaa,0x4,0x15,0x5, +0xb2,0x2,0xe8,0x0,0xc5,0x0,0x7d,0xff,0x4d,0xfd,0x92,0xfd, +0x27,0xff,0xfb,0xfe,0x7d,0xfe,0x61,0x0,0xb9,0x3,0xa3,0x4, +0xc5,0x2,0x6f,0x2,0xff,0x2,0x5,0x1,0x9d,0xff,0x4d,0x0, +0x6f,0xff,0xb4,0xfe,0xde,0x0,0x5f,0x2,0xa,0x2,0xbd,0x2, +0xca,0x3,0xa5,0x3,0x8d,0x3,0xa7,0x3,0x15,0x3,0x7d,0x2, +0x2c,0x2,0x8c,0x1,0xab,0x0,0xeb,0xff,0xaf,0xff,0xb,0x0, +0xb2,0x0,0xda,0x1,0x27,0x3,0x87,0x3,0xb7,0x3,0xc4,0x4, +0x81,0x5,0x1f,0x5,0x51,0x4,0x52,0x3,0xc0,0x2,0x88,0x3, +0x19,0x4,0x65,0x2,0x1f,0x0,0xf6,0xff,0xcd,0x0,0x5e,0x0, +0x6c,0xff,0x47,0xff,0x66,0xff,0xba,0xff,0x8e,0x0,0xe9,0x0, +0xb2,0x0,0xd9,0x0,0x58,0x1,0x3c,0x2,0xb,0x3,0x46,0x2, +0x4a,0x1,0x19,0x2,0x6a,0x2,0x45,0x1,0x77,0x1,0x20,0x2, +0xa8,0x0,0x40,0xff,0xd9,0xff,0x46,0x0,0x16,0xff,0x81,0xfd, +0x3e,0xfd,0x5d,0xfe,0xf9,0xfe,0xd6,0xfe,0xe8,0xff,0x9b,0x1, +0x51,0x2,0x3c,0x3,0x98,0x4,0x43,0x4,0xca,0x2,0x4f,0x2, +0x17,0x2,0x67,0x1,0x68,0x1,0xbb,0x1,0x8b,0x1,0x74,0x1, +0x5f,0x1,0x34,0x1,0x9b,0x1,0x97,0x1,0x8d,0x0,0x56,0x0, +0x3e,0x1,0x67,0x1,0xe3,0x0,0xf0,0x0,0x1a,0x1,0x3c,0x1, +0x2e,0x2,0x9a,0x2,0x83,0x1,0xf8,0x0,0x36,0x1,0xcd,0x0, +0x83,0x0,0x66,0x0,0xdd,0xff,0xf7,0xff,0xf9,0xff,0xe,0xff, +0x44,0xff,0x11,0x0,0x59,0xff,0x3f,0xff,0x99,0x0,0x93,0x0, +0x58,0x0,0xc3,0x1,0xce,0x1,0xc9,0x0,0xbc,0x1,0xc9,0x1, +0xc2,0xff,0x6c,0xff,0xc5,0xff,0xfa,0xfe,0x2b,0xff,0x6f,0xff, +0xd1,0xfe,0xcc,0xff,0x5e,0x1,0xf4,0x0,0xf4,0xff,0x24,0x0, +0x32,0x1,0x9b,0x1,0x6b,0x0,0xb6,0xff,0xdf,0x0,0x64,0x1, +0xde,0x0,0xa1,0x1,0x79,0x2,0xc5,0x1,0x6f,0x1,0xd9,0x1, +0x82,0x1,0x6,0x1,0xd4,0x0,0xf3,0xff,0xfa,0xfe,0x32,0xff, +0xc0,0xff,0x54,0xff,0xee,0xfe,0x66,0xff,0x9a,0xff,0xd2,0xff, +0x5e,0x0,0x6f,0xff,0xb6,0xfe,0xcd,0x0,0xa0,0x1,0x41,0xff, +0xe3,0xfe,0x6f,0x0,0x8e,0xff,0x42,0xfe,0x80,0xfe,0xce,0xfd, +0x21,0xfd,0x41,0xfe,0x9f,0xfe,0xc1,0xfd,0xe9,0xfd,0x71,0xfe, +0xe9,0xfd,0x17,0xfd,0x5c,0xfd,0x4c,0xfe,0xd1,0xfd,0xc1,0xfc, +0xd9,0xfd,0x5,0xff,0x8,0xfe,0xf2,0xfd,0xb,0xff,0x6d,0xfe, +0xf2,0xfd,0x7,0xff,0xdf,0xfe,0x15,0xfe,0x84,0xfe,0x4c,0xfe, +0xc3,0xfd,0x97,0xfe,0x3,0xff,0xaa,0xfe,0xb0,0xfe,0x62,0xfe, +0x72,0xfe,0x3a,0xff,0x12,0xff,0xaa,0xfe,0x8c,0xfe,0xfa,0xfd, +0xa3,0xfe,0xcb,0xff,0x8d,0xfe,0x87,0xfd,0x5,0xff,0x9c,0xff, +0x88,0xfe,0xbb,0xfe,0xd5,0xff,0x98,0xff,0x96,0xfe,0x2,0xff, +0x8f,0x0,0x6b,0x0,0xd5,0xfe,0x2c,0xff,0x79,0x0,0x95,0xff, +0x80,0xfe,0x59,0xff,0x96,0xff,0xae,0xfe,0x1a,0xff,0x6a,0x0, +0x9c,0x0,0x20,0x0,0x54,0x0,0xf4,0x0,0x2c,0x1,0x48,0x1, +0x3b,0x1,0x9d,0x0,0x67,0x0,0x61,0x0,0x69,0xff,0x17,0xff, +0x74,0xff,0x51,0xfe,0xf1,0xfd,0x5,0x0,0xfa,0x0,0x68,0x0, +0x11,0x1,0x2d,0x2,0x4e,0x2,0xf4,0x1,0x90,0x1,0x46,0x1, +0xd6,0x0,0x71,0x0,0xcc,0x0,0x2c,0x1,0xb9,0x0,0x12,0x0, +0x21,0x0,0x25,0x1,0xfc,0x1,0x94,0x1,0x16,0x1,0x7e,0x1, +0xd8,0x1,0x5a,0x1,0x36,0x0,0x50,0xff,0x5a,0xff,0x4d,0xff, +0x81,0xfe,0xc5,0xfe,0x16,0x0,0xdc,0xff,0x6e,0xff,0xf0,0x0, +0x13,0x1,0x3e,0xff,0xbe,0xff,0x29,0x1,0xd2,0xff,0x1e,0xfe, +0x8a,0xfe,0x6a,0xff,0xcb,0xfe,0xad,0xfd,0xe9,0xfe,0xde,0x0, +0x8c,0xff,0x42,0xfe,0xd3,0x0,0x29,0x2,0xda,0xff,0x43,0xff, +0x7b,0x0,0x4c,0xff,0xe4,0xfd,0xff,0xfe,0xb5,0xff,0x78,0xfe, +0x7d,0xfd,0x33,0xfe,0x68,0xff,0x1d,0xff,0x3e,0xfe,0xf1,0xfe, +0xd4,0xff,0x23,0xff,0x6f,0xfe,0xdb,0xfe,0xc8,0xfe,0x72,0xfd, +0x17,0xfd,0x3e,0xfe,0xf8,0xfd,0xa3,0xfc,0x83,0xfd,0x7f,0xff, +0x62,0xff,0x86,0xfd,0x74,0xfc,0x37,0xfd,0x14,0xfe,0x4c,0xfd, +0x2f,0xfc,0x47,0xfc,0x81,0xfc,0xb8,0xfc,0x62,0xfe,0x5a,0xff, +0xa8,0xfd,0x5e,0xfd,0xc4,0xff,0x64,0x0,0x30,0xff,0xe0,0xfe, +0x23,0xff,0x6f,0xff,0x31,0xff,0x52,0xfe,0x14,0xfe,0x29,0xfe, +0x7a,0xfe,0x84,0xff,0xa6,0xff,0x7,0xff,0xb1,0xff,0xf2,0x0, +0x52,0x1,0xf2,0x0,0x85,0x0,0xac,0x0,0x4b,0x1,0xa6,0x1, +0x25,0x1,0x75,0x0,0xc3,0x0,0x10,0x1,0x81,0x0,0x8e,0x0, +0x52,0x1,0x97,0x1,0x7a,0x1,0x64,0x1,0xa3,0x1,0x31,0x2, +0x4d,0x2,0x25,0x2,0xbf,0x2,0xfd,0x3,0xf1,0x4,0x71,0x5, +0xd3,0x5,0xfe,0x5,0x47,0x6,0xe3,0x6,0xa2,0x6,0x78,0x5, +0xde,0x4,0x0,0x5,0x47,0x5,0x37,0x5,0xa9,0x4,0x8c,0x4, +0xcc,0x4,0xa9,0x4,0x2c,0x5,0x31,0x6,0x8,0x6,0x89,0x5, +0x27,0x6,0xb,0x7,0x29,0x7,0x73,0x6,0x95,0x5,0x99,0x5, +0x32,0x6,0xc6,0x5,0x49,0x4,0x6f,0x3,0xb2,0x3,0xc3,0x3, +0xe2,0x2,0x8b,0x1,0x79,0x0,0x2d,0x0,0x53,0x0,0xda,0xff, +0x9c,0xfe,0xf0,0xfd,0x70,0xfe,0xfb,0xfe,0xd6,0xfe,0xb1,0xfe, +0x5,0xff,0x7a,0xff,0x97,0xff,0x8b,0xff,0xe2,0xff,0xfd,0xff, +0xf4,0xfe,0x9a,0xfd,0xa5,0xfc,0x88,0xfb,0x57,0xfa,0x5e,0xf9, +0x7d,0xf8,0xc,0xf8,0x9,0xf8,0xe3,0xf7,0xc7,0xf7,0xf0,0xf7, +0xe0,0xf7,0x79,0xf7,0x64,0xf7,0xb2,0xf7,0xc6,0xf7,0xb3,0xf7, +0xd8,0xf7,0x16,0xf8,0x92,0xf8,0x19,0xf9,0x23,0xf9,0x50,0xf9, +0xfd,0xf9,0x50,0xfa,0x12,0xfa,0x91,0xf9,0xe6,0xf8,0x7c,0xf8, +0x79,0xf8,0x28,0xf8,0x47,0xf7,0xee,0xf6,0xb8,0xf7,0x72,0xf8, +0x71,0xf8,0x91,0xf8,0x30,0xf9,0xb9,0xf9,0xce,0xf9,0xda,0xf9, +0x35,0xfa,0x26,0xfa,0x81,0xf9,0x42,0xf9,0x50,0xf9,0xe1,0xf8, +0x53,0xf8,0x45,0xf8,0x5c,0xf8,0x2f,0xf8,0x22,0xf8,0x3e,0xf8, +0xc,0xf8,0xfa,0xf7,0x5f,0xf8,0x88,0xf8,0x45,0xf8,0x65,0xf8, +0x31,0xf9,0xbe,0xf9,0x9c,0xf9,0xcd,0xf9,0x8b,0xfa,0x4,0xfb, +0x43,0xfb,0xa5,0xfb,0xe,0xfc,0x50,0xfc,0x7c,0xfc,0xd7,0xfc, +0x13,0xfd,0x43,0xfd,0x12,0xfe,0x9f,0xfe,0x78,0xfe,0x14,0xff, +0x6b,0x0,0x3c,0x1,0x63,0x1,0xa3,0x1,0x0,0x3,0xcf,0x4, +0x64,0x5,0x4c,0x5,0xc2,0x5,0x72,0x6,0xcd,0x6,0x0,0x7, +0x27,0x7,0xf8,0x6,0x24,0x7,0x53,0x8,0x25,0x9,0x1a,0x9, +0x64,0x9,0x2,0xa,0x8b,0xa,0xc6,0xa,0xb5,0xa,0x35,0xb, +0xda,0xb,0x43,0xc,0x9c,0xd,0xfc,0xe,0x1,0xf,0xd6,0xe, +0x33,0xf,0xa0,0xf,0x8c,0xf,0x64,0xe,0x7,0xd,0xcb,0xc, +0x62,0xd,0xc1,0xd,0x97,0xd,0x4f,0xd,0x4a,0xd,0xf4,0xd, +0x44,0xf,0xd3,0xf,0x35,0xf,0xab,0xe,0x79,0xe,0x5a,0xe, +0x28,0xe,0x1c,0xd,0x69,0xb,0x6d,0xa,0x8b,0xa,0xea,0xa, +0xc0,0xa,0x19,0xa,0x3b,0x9,0xca,0x8,0x67,0x9,0x82,0x9, +0xa9,0x7,0x28,0x6,0xdb,0x6,0x9f,0x7,0xbb,0x6,0x94,0x5, +0x44,0x5,0x31,0x5,0x69,0x5,0xf6,0x5,0x7c,0x5,0x33,0x4, +0xb,0x4,0xcf,0x4,0x9b,0x4,0xcd,0x2,0x69,0x0,0xa9,0xfe, +0xcf,0xfd,0xab,0xfd,0xe3,0xfd,0xc1,0xfd,0x62,0xfd,0xa6,0xfd, +0xbb,0xfe,0xb6,0xff,0xab,0xff,0x30,0xff,0x82,0xff,0x6b,0x0, +0xc0,0x0,0xf4,0xff,0xcf,0xfe,0x3c,0xfe,0x98,0xfd,0x8d,0xfc, +0xdc,0xfb,0x2,0xfb,0xcd,0xf9,0x74,0xf9,0x91,0xf9,0x1c,0xf9, +0x77,0xf8,0xe8,0xf7,0x94,0xf7,0xe8,0xf7,0xa9,0xf8,0x63,0xf9, +0xdd,0xf9,0x1b,0xfa,0xb9,0xfa,0xcb,0xfb,0x38,0xfc,0x94,0xfb, +0xe3,0xfa,0xae,0xfa,0x55,0xfa,0xb5,0xf9,0x1d,0xf9,0x40,0xf8, +0x2a,0xf7,0x8b,0xf6,0x49,0xf6,0xe3,0xf5,0x94,0xf5,0xd2,0xf5, +0x6,0xf6,0x8e,0xf5,0x78,0xf5,0xd,0xf6,0xcd,0xf5,0x7d,0xf5, +0xa4,0xf6,0x93,0xf7,0x85,0xf7,0x12,0xf8,0xf6,0xf8,0x41,0xf9, +0x33,0xf9,0x99,0xf8,0x79,0xf7,0x84,0xf6,0xdb,0xf5,0x8b,0xf5, +0xb0,0xf5,0xc7,0xf5,0x97,0xf5,0xe5,0xf5,0x12,0xf7,0x6f,0xf8, +0x9a,0xf9,0xb1,0xfa,0x76,0xfb,0xd0,0xfb,0x3e,0xfc,0xd,0xfd, +0x73,0xfd,0xc6,0xfc,0x62,0xfc,0x2d,0xfd,0x8c,0xfd,0x24,0xfd, +0x88,0xfd,0x80,0xfe,0xa5,0xfe,0x20,0xfe,0x21,0xfe,0x9e,0xfe, +0x83,0xfe,0xc,0xfe,0xd7,0xfd,0xa0,0xfd,0xd0,0xfd,0xb3,0xfe, +0x6b,0xff,0xbf,0xff,0x2a,0x0,0xd1,0x0,0x87,0x1,0xda,0x1, +0xde,0x1,0xc,0x2,0x23,0x2,0x83,0x1,0x7c,0x0,0x21,0x0, +0x1a,0x0,0x51,0xff,0x7c,0xfe,0x55,0xfe,0x8b,0xfe,0x50,0xff, +0x26,0x0,0x75,0x0,0xf7,0x0,0x72,0x1,0x51,0x1,0x5f,0x1, +0xd0,0x1,0xfe,0x1,0xc2,0x1,0x8b,0x1,0x9b,0x1,0x82,0x1, +0x5f,0x1,0x9f,0x1,0x65,0x1,0xb7,0x0,0xd4,0x0,0x48,0x1, +0x18,0x1,0xbf,0x0,0x9b,0x0,0x1a,0x0,0x36,0xff,0x8,0xff, +0xc7,0xff,0x38,0x0,0x26,0x0,0x6c,0x0,0xfd,0x0,0x75,0x1, +0xe6,0x1,0x26,0x2,0xe2,0x1,0x98,0x1,0xd7,0x1,0x2,0x2, +0xa6,0x1,0x79,0x1,0x7f,0x1,0x14,0x1,0x89,0x0,0x59,0x0, +0x8a,0x0,0x43,0x1,0xfa,0x1,0xf5,0x1,0xe2,0x1,0x48,0x2, +0x73,0x2,0x39,0x2,0xf9,0x1,0xa4,0x1,0x55,0x1,0x29,0x1, +0x1b,0x1,0x5,0x1,0x99,0x0,0x5e,0x0,0xa7,0x0,0x86,0x0, +0x3f,0x0,0xca,0x0,0x55,0x1,0x3d,0x1,0x55,0x1,0xe4,0x1, +0x56,0x2,0xa4,0x2,0x5d,0x3,0xe0,0x3,0x53,0x3,0xd6,0x2, +0x9,0x3,0xf5,0x2,0xdf,0x2,0x3a,0x3,0x23,0x3,0x9f,0x2, +0xaa,0x2,0xeb,0x2,0x4f,0x2,0x56,0x1,0x1a,0x1,0xfe,0x0, +0x89,0x0,0x86,0x0,0xe5,0x0,0x30,0x1,0xb2,0x1,0x57,0x2, +0xb1,0x2,0xce,0x2,0x4f,0x3,0x27,0x4,0x9,0x4,0x24,0x3, +0x2,0x3,0x31,0x3,0xd2,0x2,0x7c,0x2,0x51,0x2,0x1b,0x2, +0xfa,0x1,0xac,0x1,0x5d,0x1,0xa1,0x1,0x13,0x2,0xfb,0x1, +0x95,0x1,0x58,0x1,0x3f,0x1,0x20,0x1,0xa4,0x0,0xb7,0xff, +0x34,0xff,0x96,0xff,0x3,0x0,0xe5,0xff,0xad,0xff,0xbc,0xff, +0xdf,0xff,0xdf,0xff,0x1f,0x0,0xe5,0x0,0xa7,0x1,0xc,0x2, +0x1b,0x2,0xb3,0x1,0x77,0x1,0xf0,0x1,0xc,0x2,0x95,0x1, +0xdf,0x1,0x7f,0x2,0x39,0x2,0xd3,0x1,0xd7,0x1,0x39,0x1, +0xf3,0xff,0x17,0xff,0xd2,0xfe,0xe1,0xfe,0x3b,0xff,0x81,0xff, +0x4e,0xff,0xe8,0xfe,0x15,0xff,0x15,0x0,0xb7,0x0,0x46,0x0, +0x27,0x0,0xaf,0x0,0x7e,0x0,0x5,0x0,0x2b,0x0,0x6,0x0, +0x4b,0xff,0xdb,0xfe,0xec,0xfe,0xf4,0xfe,0xc0,0xfe,0xb8,0xfe, +0x9c,0xfe,0xf,0xfe,0xfe,0xfd,0x70,0xfe,0x74,0xfe,0x8f,0xfe, +0xf0,0xfe,0xaf,0xfe,0x4f,0xfe,0xab,0xfe,0x24,0xff,0x1d,0xff, +0xfe,0xfe,0xdc,0xfe,0x69,0xfe,0x68,0xfe,0x8,0xff,0xc2,0xfe, +0xa5,0xfd,0x34,0xfd,0x44,0xfd,0x33,0xfd,0x66,0xfd,0xc,0xfe, +0x6d,0xfe,0x2d,0xfe,0x67,0xfe,0x59,0xff,0x9f,0xff,0x99,0xff, +0x41,0x0,0x85,0x0,0x22,0x0,0x48,0x0,0xd5,0x0,0xd8,0x0, +0x62,0x0,0xdf,0xff,0x8,0xff,0x3c,0xfe,0x8f,0xfe,0x3,0xff, +0x6d,0xfe,0x4b,0xfe,0xf3,0xfe,0x3,0xff,0x39,0xff,0x1b,0x0, +0x4b,0x0,0x1d,0x0,0x91,0x0,0xc9,0x0,0x88,0x0,0xae,0x0, +0xe7,0x0,0x88,0x0,0x9,0x0,0x21,0x0,0xbd,0x0,0x50,0x1, +0x9d,0x1,0x85,0x1,0x1,0x1,0x8f,0x0,0x14,0x0,0x10,0xff, +0x4c,0xfe,0x1c,0xfe,0x83,0xfd,0x17,0xfd,0x27,0xfe,0x86,0xff, +0xbf,0xff,0x4,0x0,0x26,0x1,0xab,0x1,0x68,0x1,0x82,0x1, +0x56,0x1,0x76,0x0,0xd5,0xff,0xa8,0xff,0x9d,0xff,0x9d,0xff, +0x1e,0x0,0x59,0x1,0xdc,0x1,0x67,0x1,0xb0,0x1,0x32,0x2, +0xac,0x1,0xdd,0x0,0xf9,0xff,0xc2,0xfe,0x25,0xfe,0x28,0xfe, +0xab,0xfd,0x5d,0xfd,0x81,0xfe,0x79,0xff,0x7f,0xff,0xe0,0x0, +0xca,0x2,0xc5,0x2,0xb5,0x2,0xa2,0x3,0x50,0x3,0xf5,0x1, +0x2b,0x1,0xa0,0x0,0xec,0xff,0x72,0xff,0x41,0xff,0x39,0xff, +0x99,0xff,0x52,0x0,0xe7,0x0,0x4b,0x1,0x83,0x1,0xb3,0x1, +0x1,0x2,0x87,0x1,0x34,0x0,0x5f,0xff,0x31,0xff,0x1b,0xff, +0xe9,0xfe,0xc4,0xfe,0x86,0xff,0xd4,0x0,0x5f,0x1,0x93,0x1, +0x3e,0x2,0xda,0x2,0x8c,0x2,0x50,0x1,0x24,0x0,0x55,0xff, +0x7c,0xfe,0xe8,0xfd,0x94,0xfd,0x52,0xfd,0xd6,0xfd,0x6,0xff, +0xeb,0xff,0x93,0x0,0x7d,0x1,0x2c,0x2,0x1f,0x2,0xb7,0x1, +0xab,0x0,0x1d,0xff,0x99,0xfe,0x48,0xfe,0xda,0xfc,0x7b,0xfc, +0x6e,0xfd,0xaf,0xfd,0x56,0xfe,0xba,0xff,0x18,0x0,0x40,0x0, +0xec,0x0,0xea,0x0,0x6c,0x0,0xf5,0xff,0x41,0xff,0x4,0xff, +0x56,0xff,0x4e,0xff,0x80,0xff,0x4f,0x0,0x8a,0x0,0x7b,0x0, +0xe1,0x0,0xc0,0x0,0x6f,0x0,0xdb,0x0,0x97,0x0,0x5e,0xff, +0xee,0xfe,0x3d,0xff,0x71,0xff,0xb8,0xff,0x3b,0x0,0xb8,0x0, +0xf1,0x0,0x53,0x1,0x28,0x2,0x5f,0x2,0xe6,0x1,0xf9,0x1, +0xde,0x1,0xe2,0x0,0x9b,0x0,0xfd,0x0,0x72,0x0,0xb6,0xff, +0xd7,0xff,0xe,0x0,0xf1,0xff,0xe7,0xff,0x26,0x0,0x5e,0x0, +0xfe,0xff,0xa8,0xff,0x2b,0x0,0x6e,0x0,0xe,0x0,0xa,0x0, +0xe9,0xff,0x8f,0xff,0x11,0x0,0x9e,0x0,0x7f,0x0,0xdb,0x0, +0x30,0x1,0x70,0x0,0xc4,0xff,0x97,0xff,0x11,0xff,0x8e,0xfe, +0x1a,0xfe,0x3c,0xfd,0xe4,0xfc,0x7f,0xfd,0xe,0xfe,0x57,0xfe, +0x6c,0xfe,0x50,0xfe,0xf7,0xfe,0x37,0x0,0x64,0x0,0xd6,0xff, +0x14,0x0,0x7a,0x0,0xf9,0xff,0x4c,0xff,0x56,0xff,0x8a,0xff, +0x19,0xff,0xc9,0xfe,0x3d,0xff,0x3a,0xff,0xe0,0xfe,0x6b,0xff, +0x6d,0xff,0x21,0xfe,0xbe,0xfd,0x63,0xfe,0x56,0xfe,0xb,0xfe, +0x60,0xfe,0xe6,0xfe,0x53,0xff,0xce,0xff,0x66,0x0,0x6,0x1, +0x73,0x1,0x88,0x1,0x83,0x1,0x94,0x1,0x74,0x1,0x10,0x1, +0x8d,0x0,0xdd,0xff,0x6b,0xff,0x66,0xff,0x4a,0xff,0x46,0xff, +0x82,0xff,0x90,0xff,0x96,0xff,0xb1,0xff,0xf0,0xff,0x99,0x0, +0x1,0x1,0xce,0x0,0x95,0x0,0x5d,0x0,0x42,0x0,0x89,0x0, +0x9d,0x0,0x40,0x0,0x2,0x0,0x3d,0x0,0xa7,0x0,0x8a,0x0, +0xef,0xff,0x8c,0xff,0x56,0xff,0x5,0xff,0xeb,0xfe,0xfe,0xfe, +0xbc,0xfe,0x69,0xfe,0x6f,0xfe,0x63,0xfe,0xb5,0xfe,0x26,0x0, +0x5d,0x1,0xbf,0x1,0xb8,0x2,0x99,0x3,0x13,0x3,0x6a,0x2, +0x12,0x2,0xe7,0x0,0x64,0xff,0x96,0xfe,0x40,0xfe,0x30,0xfe, +0xb5,0xfe,0xb3,0xff,0xeb,0x0,0x9,0x2,0x78,0x2,0x4f,0x2, +0xc,0x2,0x6e,0x1,0x74,0x0,0xd5,0xff,0xbf,0xff,0x22,0x0, +0x35,0x1,0xa5,0x2,0x72,0x3,0x48,0x3,0x39,0x3,0xc8,0x3, +0x6,0x4,0x8f,0x3,0xc6,0x2,0xfe,0x1,0x90,0x1,0x35,0x1, +0xd8,0x0,0x4,0x1,0x4c,0x1,0xa4,0x1,0xd2,0x2,0xc9,0x3, +0xbe,0x3,0x1b,0x4,0xc8,0x4,0x6d,0x4,0xa3,0x3,0x32,0x3, +0xa6,0x2,0x35,0x2,0x23,0x2,0xb4,0x1,0xfb,0x0,0xb6,0x0, +0x7b,0x0,0xd3,0xff,0x2e,0xff,0xd0,0xfe,0xa4,0xfe,0x91,0xfe, +0x8d,0xfe,0x9a,0xfe,0x96,0xfe,0xaf,0xfe,0xc9,0xfe,0x3d,0xfe, +0xbc,0xfd,0xb,0xfe,0x1c,0xfe,0xeb,0xfd,0x17,0xfe,0xb8,0xfd, +0xff,0xfc,0xf8,0xfc,0xcd,0xfc,0x13,0xfc,0x9a,0xfb,0x46,0xfb, +0xb,0xfb,0x77,0xfb,0xf,0xfc,0x2e,0xfc,0x3b,0xfc,0x49,0xfc, +0xec,0xfb,0x9b,0xfb,0xcb,0xfb,0xf6,0xfb,0xda,0xfb,0xe7,0xfb, +0x57,0xfc,0x9d,0xfc,0x38,0xfc,0xff,0xfb,0x69,0xfc,0x32,0xfc, +0x4f,0xfb,0x38,0xfb,0xb5,0xfb,0xcc,0xfb,0x0,0xfc,0x86,0xfc, +0x5d,0xfc,0xf7,0xfb,0xae,0xfc,0x79,0xfd,0x46,0xfd,0x76,0xfd, +0x18,0xfe,0xf4,0xfd,0xdd,0xfd,0x65,0xfe,0x65,0xfe,0xb4,0xfd, +0x79,0xfd,0xfd,0xfd,0x16,0xfe,0x95,0xfd,0xbd,0xfd,0x1c,0xfe, +0xa0,0xfd,0x50,0xfd,0x97,0xfd,0x78,0xfd,0x59,0xfd,0xf9,0xfd, +0x70,0xfe,0xf8,0xfd,0xa3,0xfd,0x39,0xfe,0xb9,0xfe,0x9d,0xfe, +0x98,0xfe,0xbb,0xfe,0xbe,0xfe,0xf1,0xfe,0x86,0xff,0xd9,0xff, +0x4d,0xff,0xa5,0xfe,0xab,0xfe,0xab,0xfe,0x63,0xfe,0xad,0xfe, +0x53,0xff,0x4f,0xff,0x30,0xff,0x21,0x0,0xe5,0x0,0x69,0x0, +0x82,0x0,0x4e,0x1,0x8,0x1,0xf7,0x0,0xef,0x1,0x13,0x2, +0xcd,0x1,0x8d,0x2,0x5c,0x3,0x6e,0x3,0x5f,0x3,0xbd,0x3, +0x55,0x4,0x52,0x4,0xf4,0x3,0x3d,0x4,0x6b,0x4,0xd8,0x3, +0xe9,0x3,0xaa,0x4,0xb5,0x4,0xb4,0x4,0x48,0x5,0x46,0x5, +0xd5,0x4,0x7,0x5,0x4c,0x5,0xff,0x4,0xe6,0x4,0x90,0x5, +0xe,0x6,0xb0,0x5,0x80,0x5,0xe2,0x5,0xd8,0x5,0x8e,0x5, +0x93,0x5,0x75,0x5,0x43,0x5,0x64,0x5,0x96,0x5,0x7c,0x5, +0x11,0x5,0xa2,0x4,0x80,0x4,0x6f,0x4,0x5,0x4,0x81,0x3, +0x68,0x3,0x8f,0x3,0x75,0x3,0xfb,0x2,0x7d,0x2,0x77,0x2, +0x49,0x2,0x6b,0x1,0x46,0x1,0xf5,0x1,0x89,0x1,0xaf,0x0, +0x28,0x1,0x7a,0x1,0x67,0x0,0xd2,0xff,0x56,0x0,0xe1,0xff, +0xca,0xfe,0x19,0xff,0x87,0xff,0x8c,0xfe,0xc0,0xfd,0x6,0xfe, +0x3a,0xfe,0xbe,0xfd,0x8a,0xfd,0x55,0xfe,0x84,0xfe,0xc4,0xfd, +0x34,0xfe,0xaa,0xfe,0x8e,0xfd,0x70,0xfd,0x30,0xfe,0xfb,0xfc, +0xbe,0xfb,0x76,0xfc,0xb9,0xfc,0x36,0xfc,0x94,0xfc,0x4a,0xfc, +0x2b,0xfb,0xcc,0xfb,0xd5,0xfc,0x8,0xfc,0x74,0xfb,0x1d,0xfc, +0x4a,0xfc,0x93,0xfb,0xfe,0xfa,0x80,0xfb,0x26,0xfc,0x92,0xfb, +0x33,0xfb,0xca,0xfb,0xe7,0xfb,0xc,0xfc,0xd1,0xfc,0x6b,0xfc, +0xde,0xfa,0xac,0xfa,0xbc,0xfb,0xae,0xfb,0x16,0xfb,0x56,0xfb, +0x11,0xfb,0xe3,0xfa,0x30,0xfc,0x8f,0xfc,0xa3,0xfb,0xe8,0xfb, +0x5b,0xfc,0xa6,0xfb,0x5c,0xfb,0xf6,0xfb,0x52,0xfc,0x53,0xfc, +0xa9,0xfc,0xfa,0xfc,0x8b,0xfc,0x5f,0xfc,0x82,0xfd,0x55,0xfe, +0x48,0xfd,0x62,0xfc,0x7a,0xfd,0x4d,0xfe,0xe4,0xfd,0xa3,0xfe, +0xdb,0xff,0x83,0xff,0xe9,0xfe,0x29,0xff,0xaf,0xff,0xe5,0xff, +0xa7,0xff,0x8d,0xff,0x3e,0xff,0xec,0xfe,0x73,0x0,0x31,0x2, +0xa2,0x1,0x29,0x1,0x72,0x2,0x73,0x3,0x14,0x3,0x12,0x2, +0x95,0x1,0xfa,0x1,0x3a,0x2,0xbb,0x1,0x48,0x1,0xe6,0x1, +0x91,0x3,0x1a,0x5,0x8d,0x5,0x4e,0x5,0x58,0x5,0x8f,0x5, +0x5f,0x5,0x10,0x5,0x5d,0x4,0x7f,0x3,0xcb,0x3,0x85,0x4, +0x3,0x5,0x28,0x6,0x84,0x6,0xc0,0x5,0x4d,0x6,0x4b,0x7, +0x9e,0x6,0x56,0x5,0xd1,0x4,0x30,0x5,0x92,0x5,0x1c,0x5, +0xdf,0x4,0xac,0x5,0x20,0x6,0xae,0x5,0xa7,0x5,0xe,0x6, +0xcf,0x5,0xc9,0x5,0xf,0x6,0xfc,0x4,0x1a,0x4,0xc8,0x4, +0x8e,0x4,0x31,0x3,0xaa,0x2,0xf6,0x2,0xa9,0x3,0xa0,0x3, +0x47,0x2,0x51,0x2,0x50,0x4,0xef,0x4,0xb8,0x3,0x6,0x3, +0xeb,0x2,0xa6,0x2,0xb3,0x2,0x7b,0x2,0x62,0x1,0xc3,0x0, +0xd6,0x0,0xff,0x0,0xaa,0x1,0x3,0x2,0x97,0x1,0xbb,0x1, +0xf8,0x1,0x74,0x1,0x1,0x1,0x91,0x0,0xa1,0xff,0xf8,0xfe, +0x95,0xff,0x76,0x0,0x7d,0xff,0x1,0xfe,0x88,0xfe,0x84,0xff, +0x4a,0xff,0xb9,0xfe,0x32,0xfe,0x27,0xfe,0xc2,0xfe,0xdf,0xfe, +0x85,0xfe,0x5e,0xfe,0x4d,0xfe,0x9e,0xfe,0x28,0xff,0x2c,0xff, +0x71,0xff,0x26,0x0,0xac,0xff,0xd8,0xfe,0x50,0xff,0x3,0xff, +0x62,0xfd,0xc0,0xfc,0x27,0xfc,0x3a,0xfb,0x35,0xfc,0xe,0xfd, +0xdb,0xfb,0x89,0xfb,0x5e,0xfc,0x3e,0xfc,0x16,0xfc,0x4f,0xfc, +0xbd,0xfb,0x51,0xfb,0x2f,0xfc,0xc2,0xfc,0x24,0xfc,0x3e,0xfc, +0x7e,0xfd,0xd5,0xfd,0x1f,0xfd,0xc,0xfd,0xb8,0xfd,0x97,0xfd, +0x20,0xfc,0x10,0xfb,0x1b,0xfb,0xac,0xfa,0x19,0xfa,0xd3,0xfa, +0xb9,0xfb,0x20,0xfc,0x5e,0xfd,0x9b,0xfe,0x16,0xfe,0x68,0xfd, +0x1d,0xfe,0x77,0xfe,0xaa,0xfd,0xd1,0xfc,0xf8,0xfb,0x8d,0xfb, +0x3c,0xfc,0x90,0xfc,0xc6,0xfb,0x76,0xfb,0x4d,0xfc,0x5a,0xfd, +0x19,0xfe,0x91,0xfe,0x40,0xfe,0x41,0xfd,0x34,0xfd,0x4b,0xfe, +0x96,0xfe,0xd0,0xfd,0xb1,0xfd,0xe2,0xfe,0x63,0x0,0x8,0x1, +0x3d,0x1,0xeb,0x1,0x28,0x2,0x7f,0x1,0x47,0x1,0x2e,0x1, +0xf0,0xff,0xfd,0xfe,0x76,0xff,0x93,0xff,0xee,0xfe,0x20,0xff, +0xc3,0xff,0xe2,0xff,0x59,0x0,0x4e,0x1,0xae,0x1,0x8a,0x1, +0x95,0x1,0xb8,0x1,0x89,0x1,0xd4,0x0,0xac,0xff,0xcc,0xfe, +0xf0,0xfe,0x67,0xff,0x22,0xff,0xbc,0xfe,0x54,0xff,0x9b,0x0, +0x5a,0x1,0x28,0x1,0xc0,0x0,0xa3,0x0,0x97,0x0,0x7d,0x0, +0x36,0x0,0x90,0xff,0x18,0xff,0x29,0xff,0x21,0xff,0x4,0xff, +0x8f,0xff,0x4e,0x0,0x7e,0x0,0xc7,0x0,0x88,0x1,0xc0,0x1, +0x2e,0x1,0xe0,0x0,0x12,0x1,0xc3,0x0,0xe1,0xff,0x67,0xff, +0x46,0xff,0x9,0xff,0x31,0xff,0xb8,0xff,0x39,0x0,0xff,0x0, +0xad,0x1,0xb4,0x1,0xa3,0x1,0x92,0x1,0xb,0x1,0x69,0x0, +0xfa,0xff,0x98,0xff,0x95,0xff,0x19,0x0,0x35,0x0,0x9b,0xff, +0x98,0xff,0x7e,0x0,0xef,0x0,0xb6,0x0,0xec,0x0,0xd0,0x1, +0xdf,0x2,0x8d,0x3,0x97,0x3,0x5d,0x3,0x44,0x3,0xd9,0x2, +0xf0,0x1,0x61,0x1,0x76,0x1,0x9b,0x1,0xa3,0x1,0x5b,0x1, +0xa0,0x0,0xf,0x0,0xb3,0xff,0x2e,0xff,0xa9,0xfe,0x41,0xfe, +0x6b,0xfe,0x36,0xff,0x7e,0xff,0x7c,0xff,0x5e,0x0,0x3c,0x1, +0xfc,0x0,0x6c,0x0,0x8d,0x0,0x2a,0x1,0x37,0x1,0x6f,0x0, +0xd2,0xff,0xc8,0xff,0xce,0xff,0xfe,0xff,0x8d,0x0,0xe3,0x0, +0xdd,0x0,0xfb,0x0,0xe2,0x0,0x3f,0x0,0xa2,0xff,0xa,0xff, +0x44,0xfe,0xb8,0xfd,0xb8,0xfd,0xbd,0xfe,0x8e,0x0,0xa7,0x1, +0xef,0x1,0x8c,0x2,0x36,0x3,0x20,0x3,0x68,0x2,0x65,0x1, +0x1f,0x0,0xb5,0xfe,0xc1,0xfd,0x86,0xfd,0xc3,0xfd,0x85,0xfe, +0x5e,0xff,0x95,0xff,0xc7,0xff,0xb4,0x0,0x9d,0x1,0x89,0x1, +0x85,0x0,0x5e,0xff,0xfc,0xfe,0x43,0xff,0xfe,0xfe,0x38,0xfe, +0x61,0xfe,0x3a,0xff,0xba,0xff,0x5d,0x0,0xf8,0x0,0xdb,0x0, +0xb0,0x0,0x5d,0x0,0x79,0xff,0xf1,0xfe,0x8f,0xfe,0xc8,0xfd, +0x9d,0xfd,0xc5,0xfd,0x5e,0xfd,0x7b,0xfd,0x65,0xfe,0xdb,0xfe, +0x11,0xff,0x88,0xff,0x87,0xff,0x43,0xff,0x74,0xff,0x65,0xff, +0xcb,0xfe,0x2e,0xfe,0x4d,0xfd,0x71,0xfc,0xa4,0xfc,0x51,0xfd, +0x73,0xfd,0xa9,0xfd,0x79,0xfe,0xe9,0xfe,0xb7,0xfe,0x3,0xff, +0x5e,0xff,0x82,0xfe,0x9e,0xfd,0xc1,0xfd,0xb0,0xfd,0x68,0xfd, +0xbe,0xfd,0x17,0xfe,0x3d,0xfe,0x93,0xfe,0x10,0xff,0xdd,0xff, +0x65,0x0,0x27,0x0,0x4f,0x0,0xbb,0x0,0xd,0x0,0x45,0xff, +0x56,0xff,0x1f,0xff,0xc8,0xfe,0xd,0xff,0x35,0xff,0x6e,0xff, +0xff,0xff,0xd3,0xff,0xb4,0xff,0xa9,0x0,0xa1,0x0,0x4c,0xff, +0xeb,0xfe,0xc0,0xfe,0xbf,0xfd,0xa3,0xfd,0x43,0xfe,0x31,0xfe, +0x8f,0xfe,0xa,0x0,0x53,0x1,0x6,0x2,0x7f,0x2,0x87,0x2, +0x1e,0x2,0xa4,0x1,0x26,0x1,0x6e,0x0,0xa8,0xff,0x66,0xff, +0xc2,0xff,0x27,0x0,0x87,0x0,0x46,0x1,0xb3,0x1,0x4d,0x1, +0x48,0x1,0xa3,0x1,0x11,0x1,0xa8,0x0,0x4e,0x1,0x42,0x1, +0x91,0x0,0x24,0x1,0x49,0x2,0x83,0x2,0xa8,0x2,0x5a,0x3, +0x7e,0x3,0xfa,0x2,0xc3,0x2,0x54,0x2,0x39,0x1,0x45,0x0, +0x65,0xff,0x72,0xfe,0x2,0xfe,0xd4,0xfd,0x7,0xfe,0x1b,0xff, +0xe8,0xff,0x2,0x0,0xdf,0x0,0x6d,0x2,0x1b,0x3,0xbd,0x2, +0x7f,0x2,0xbf,0x2,0x9e,0x2,0xf2,0x1,0xce,0x1,0x33,0x2, +0xd7,0x1,0x2d,0x1,0x75,0x1,0x85,0x1,0xb9,0x0,0xa7,0x0, +0xd1,0x0,0x16,0x0,0x6,0x0,0xba,0x0,0x6f,0x0,0xe0,0xff, +0x83,0x0,0x82,0x1,0x7e,0x1,0xe,0x1,0x3c,0x1,0x2f,0x1, +0xc9,0x0,0xc,0x1,0x86,0x0,0xd6,0xfe,0xd1,0xfe,0xf2,0xff, +0x82,0xff,0xe4,0xfe,0xc2,0xff,0x72,0x0,0x4c,0x0,0x80,0x0, +0xa6,0x0,0xcf,0xff,0xfa,0xfe,0x1d,0xff,0x41,0xff,0xa9,0xfe, +0xb7,0xfe,0xe3,0xff,0xf1,0xff,0x19,0xff,0x14,0x0,0x17,0x1, +0xc1,0xff,0x1e,0xff,0x18,0x0,0xb7,0xff,0xee,0xfe,0xad,0xff, +0xf7,0xff,0xfc,0xfe,0xd8,0xfe,0x92,0xff,0x6b,0xff,0x3a,0xff, +0x60,0x0,0x3e,0x1,0xd0,0x0,0xc0,0x0,0x56,0x1,0xe7,0x0, +0x9f,0xff,0x60,0xff,0xc7,0xff,0x21,0xff,0xbb,0xfe,0x95,0xff, +0x88,0xff,0xd,0xff,0x40,0x0,0x16,0x1,0x4a,0x0,0x88,0x0, +0xc8,0x1,0x82,0x1,0x94,0x0,0xaf,0x0,0x89,0x0,0x73,0xff, +0xdc,0xfe,0x43,0xff,0xb4,0xff,0x86,0xff,0xff,0xff,0xdd,0x1, +0x3b,0x2,0x8c,0x0,0x3f,0x0,0x57,0x0,0xa8,0xfe,0xfe,0xfd, +0xce,0xfe,0x9d,0xfe,0x53,0xfe,0xcc,0xfe,0xf2,0xfe,0x5,0xff, +0x71,0xff,0x93,0xff,0x6f,0xff,0x8a,0xff,0xea,0xff,0x61,0x0, +0x7b,0x0,0xd9,0xff,0x6c,0xff,0x94,0xff,0x2e,0xff,0xc0,0xfe, +0x19,0xff,0x3a,0xff,0xa7,0xff,0xc2,0x0,0xc2,0x0,0x58,0x0, +0x32,0x1,0xa6,0x1,0xa7,0x0,0xf4,0xff,0x2f,0x0,0x66,0x0, +0xac,0x0,0xfe,0x0,0x7f,0x0,0x10,0x0,0x94,0x0,0xc5,0x0, +0xac,0x0,0x10,0x1,0xa,0x1,0x99,0x0,0x6c,0x0,0x84,0x0, +0xb2,0x0,0x1e,0x0,0x54,0xff,0xa8,0xff,0xe8,0xff,0xd6,0xff, +0x7b,0x0,0x88,0x0,0xc0,0xff,0x95,0xff,0x81,0xff,0xd,0xff, +0xc8,0xfe,0x9d,0xfe,0xae,0xfe,0x2,0xff,0xe1,0xfe,0xa8,0xfe, +0x1b,0xff,0x28,0xff,0x4b,0xfe,0xfa,0xfd,0x3e,0xfe,0x5a,0xfe, +0xef,0xfe,0x90,0xff,0xcd,0xff,0x62,0x0,0x94,0x0,0x47,0x0, +0x6f,0x0,0x21,0x0,0x69,0xff,0x24,0xff,0x7d,0xfe,0x2c,0xfe, +0xf1,0xfe,0x24,0xff,0xe9,0xfe,0x6e,0xff,0xe0,0xff,0x18,0x0, +0xbe,0x0,0xe5,0x0,0x16,0x0,0xc5,0xff,0x55,0x0,0x92,0x0, +0x79,0x0,0x7c,0x0,0x83,0x0,0xf1,0x0,0x46,0x1,0x12,0x1, +0x94,0x1,0x49,0x2,0xb8,0x1,0x8,0x1,0x3c,0x1,0x8d,0x1, +0x88,0x1,0x4c,0x1,0x33,0x1,0x53,0x1,0x7f,0x1,0xf8,0x1, +0x4f,0x2,0xc1,0x1,0x32,0x1,0x87,0x1,0xba,0x1,0x2b,0x1, +0xd8,0x0,0x0,0x1,0xcc,0x0,0x35,0x0,0xa7,0xff,0x70,0xff, +0x4c,0xff,0x58,0xfe,0xb3,0xfd,0x84,0xfe,0x72,0xfe,0x29,0xfd, +0x60,0xfd,0x18,0xfe,0x86,0xfd,0x4,0xfd,0x8,0xfd,0x2c,0xfd, +0xae,0xfd,0xe0,0xfd,0xa9,0xfd,0xac,0xfd,0x9c,0xfd,0xaa,0xfd, +0xa,0xfe,0x9f,0xfd,0xb2,0xfc,0xc9,0xfc,0x32,0xfd,0xbd,0xfc, +0x5b,0xfc,0xc4,0xfc,0x31,0xfd,0x10,0xfd,0xca,0xfc,0x27,0xfd, +0xb2,0xfd,0x59,0xfd,0x11,0xfd,0xb9,0xfd,0x2,0xfe,0xc0,0xfd, +0x1e,0xfe,0xb2,0xfe,0xb5,0xfe,0x6d,0xfe,0x53,0xfe,0x61,0xfe, +0x3c,0xfe,0x12,0xfe,0x20,0xfe,0xe2,0xfd,0x7b,0xfd,0x8b,0xfd, +0xa6,0xfd,0x4a,0xfd,0xce,0xfc,0xbf,0xfc,0x10,0xfd,0xa,0xfd, +0xb4,0xfc,0xf3,0xfc,0x7c,0xfd,0x8f,0xfd,0x81,0xfd,0xaa,0xfd, +0xa,0xfe,0x73,0xfe,0x2a,0xfe,0x40,0xfd,0xbe,0xfc,0xbe,0xfc, +0xc2,0xfc,0x9b,0xfc,0x2f,0xfc,0x26,0xfc,0xed,0xfc,0x57,0xfd, +0x6,0xfd,0x1a,0xfd,0x51,0xfd,0xd,0xfd,0x21,0xfd,0x88,0xfd, +0x5e,0xfd,0x41,0xfd,0xc5,0xfd,0x4f,0xfe,0xd6,0xfe,0x68,0xff, +0x3d,0xff,0xa6,0xfe,0xfe,0xfe,0xd3,0xff,0x7b,0xff,0x89,0xfe, +0x68,0xfe,0x57,0xfe,0x3f,0xfe,0x40,0xff,0xea,0xff,0x84,0xff, +0x29,0x0,0x5d,0x1,0xc8,0x1,0x82,0x2,0x16,0x3,0x3,0x3, +0xc6,0x3,0x4c,0x4,0x56,0x3,0x9,0x3,0xa1,0x3,0x83,0x3, +0xbd,0x3,0x68,0x4,0x94,0x3,0xe8,0x2,0x8f,0x4,0xe1,0x5, +0x5f,0x5,0x4e,0x5,0xab,0x5,0x70,0x5,0xc1,0x5,0x61,0x6, +0xeb,0x5,0x31,0x5,0x9b,0x5,0x8a,0x6,0x72,0x6,0xa1,0x5, +0x6f,0x5,0xe1,0x5,0x8e,0x6,0x89,0x6,0x2c,0x5,0x94,0x4, +0xcb,0x5,0x96,0x6,0x5,0x6,0x68,0x4,0xb2,0x2,0x4a,0x3, +0x7f,0x5,0x18,0x6,0x10,0x5,0xf2,0x3,0xb3,0x3,0x4e,0x5, +0xef,0x6,0xab,0x5,0x62,0x3,0xcb,0x2,0x8c,0x2,0x7c,0x2, +0x85,0x3,0x33,0x3,0xc7,0x1,0x1a,0x2,0x80,0x2,0x4f,0x2, +0xfb,0x2,0x43,0x2,0xd2,0x0,0x2,0x2,0x5b,0x3,0x8,0x3, +0xab,0x2,0x8e,0x1,0xa4,0x0,0x35,0x2,0x7c,0x3,0xc6,0x1, +0x5b,0xff,0xe,0xff,0xc,0x1,0xdf,0x2,0xd9,0x1,0x26,0xff, +0x24,0xfe,0x42,0xff,0x56,0x1,0x46,0x3,0x55,0x2,0xe0,0xfe, +0x1b,0xfe,0xe7,0x0,0x9,0x3,0x75,0x2,0xdb,0xff,0x9,0xfe, +0xa3,0xff,0x4b,0x2,0x2b,0x2,0xaf,0xff,0xc5,0xfd,0xd1,0xfd, +0x6f,0xfe,0x19,0xfe,0xf3,0xfc,0xfb,0xfb,0xfb,0xfc,0x56,0xff, +0x5d,0xff,0x73,0xfd,0x13,0xfd,0xc3,0xfd,0xca,0xfd,0x75,0xfd, +0xe1,0xfc,0x42,0xfc,0x3,0xfc,0xb6,0xfb,0xba,0xfb,0xaa,0xfc, +0xe5,0xfc,0xba,0xfb,0xdd,0xfb,0xd1,0xfd,0xc6,0xfe,0x3e,0xfe, +0x28,0xfd,0xe4,0xfb,0xf6,0xfb,0xf1,0xfc,0x8a,0xfc,0x93,0xfb, +0x44,0xfb,0xe0,0xfa,0xcb,0xfa,0x3f,0xfb,0x83,0xfb,0x0,0xfc, +0x7d,0xfc,0xef,0xfb,0x52,0xfb,0x15,0xfc,0x4b,0xfd,0x8b,0xfd, +0x5b,0xfd,0xc2,0xfd,0x5a,0xfe,0x3c,0xfe,0xe3,0xfd,0xb0,0xfe, +0x36,0x0,0x3e,0x0,0xe4,0xfe,0x99,0xfe,0xa4,0xff,0x29,0x0, +0x6c,0xff,0x5b,0xfe,0x19,0xfe,0xbc,0xfe,0x74,0xff,0x8e,0xff, +0x3b,0xff,0x99,0xff,0x84,0x0,0x61,0x0,0xc4,0xff,0x51,0x0, +0xf1,0x0,0x72,0x0,0xb4,0xff,0x54,0xff,0x90,0xff,0x70,0x0, +0x94,0x0,0x6e,0xff,0xee,0xfe,0xc4,0xff,0x1d,0x0,0xb0,0xff, +0xf,0x0,0xdd,0x0,0xb4,0x0,0x4,0x0,0x97,0xff,0x65,0xff, +0xb1,0xff,0x3f,0x0,0x44,0x0,0x1e,0x0,0x45,0x0,0x6,0x0, +0x35,0xff,0x6a,0xfe,0xcf,0xfd,0x70,0xfd,0x32,0xfd,0xd,0xfd, +0xe5,0xfd,0xa6,0xff,0x8d,0x0,0x84,0x0,0xfc,0x0,0xd5,0x1, +0x67,0x2,0xcb,0x2,0x97,0x2,0xd0,0x1,0x66,0x1,0x2c,0x1, +0x78,0x0,0xc6,0xff,0x36,0xff,0x68,0xfe,0xa,0xfe,0xa9,0xfe, +0x83,0xff,0x16,0x0,0x87,0x0,0xcc,0x0,0xf3,0x0,0xf8,0x0, +0x8a,0x0,0xed,0xff,0xb1,0xff,0xa4,0xff,0x99,0xff,0xb9,0xff, +0x91,0xff,0x49,0xff,0xe,0x0,0x5a,0x1,0xb0,0x1,0x83,0x1, +0x98,0x1,0x9d,0x1,0x72,0x1,0xc7,0x0,0x5b,0xff,0x43,0xfe, +0x32,0xfe,0x86,0xfe,0xdd,0xfe,0x5a,0xff,0x32,0x0,0x6d,0x1, +0x44,0x2,0xe2,0x1,0xd8,0x0,0x50,0x0,0x6,0x0,0xfa,0xfe, +0xbf,0xfd,0x7a,0xfd,0xce,0xfd,0x29,0xfe,0xbb,0xfe,0x56,0xff, +0xb9,0xff,0xc,0x0,0x48,0x0,0x4b,0x0,0x22,0x0,0xcf,0xff, +0x48,0xff,0xd0,0xfe,0xca,0xfe,0xe,0xff,0x30,0xff,0x15,0xff, +0xd3,0xfe,0xd5,0xfe,0x81,0xff,0x25,0x0,0x1e,0x0,0x29,0x0, +0xb3,0x0,0xf7,0x0,0xd0,0x0,0xb2,0x0,0x62,0x0,0xf,0x0, +0x18,0x0,0xc8,0xff,0x57,0xff,0xbe,0xff,0x13,0x0,0x1b,0x0, +0xf9,0x0,0xa1,0x1,0x63,0x1,0xa1,0x1,0xe2,0x1,0xa0,0x1, +0xc2,0x1,0x48,0x1,0xde,0xff,0x84,0xff,0xfe,0xff,0x3,0x0, +0x23,0x0,0x3f,0x0,0x16,0x0,0xa5,0x0,0x62,0x1,0x18,0x1, +0x89,0x0,0x2d,0x0,0x6c,0xff,0xd9,0xfe,0x14,0xff,0x6c,0xff, +0x8e,0xff,0xdb,0xff,0x70,0x0,0xe0,0x0,0xbf,0x0,0x9d,0x0, +0xcd,0x0,0x38,0x0,0xa,0xff,0xab,0xfe,0xb4,0xfe,0x8e,0xfe, +0xcd,0xfe,0x7,0xff,0xd2,0xfe,0xe3,0xfe,0x2e,0xff,0x4c,0xff, +0x78,0xff,0x85,0xff,0x4b,0xff,0x47,0xff,0x72,0xff,0x83,0xff, +0xc7,0xff,0x1b,0x0,0xc,0x0,0xa,0x0,0x6a,0x0,0xa8,0x0, +0x76,0x0,0xd1,0xff,0xbb,0xfe,0x77,0xfd,0x42,0xfc,0xbb,0xfb, +0x79,0xfc,0x84,0xfd,0x1d,0xfe,0x61,0xff,0x91,0x1,0x5a,0x3, +0x30,0x4,0x23,0x4,0x4b,0x3,0x47,0x2,0x71,0x1,0x7a,0x0, +0x43,0xff,0x46,0xfe,0x40,0xfe,0xec,0xfe,0x21,0xff,0xf5,0xfe, +0x15,0xff,0xa,0xff,0xe6,0xfe,0x45,0xff,0x50,0xff,0x90,0xfe, +0x40,0xfe,0xab,0xfe,0x17,0xff,0x8f,0xff,0x36,0x0,0xba,0x0, +0x21,0x1,0x8a,0x1,0xaf,0x1,0x51,0x1,0x82,0x0,0xc2,0xff, +0x90,0xff,0x8d,0xff,0xf6,0xfe,0x3b,0xfe,0x28,0xfe,0xe,0xfe, +0x5a,0xfd,0xf9,0xfc,0x43,0xfd,0x65,0xfd,0x63,0xfd,0xd9,0xfd, +0xdb,0xfe,0x43,0x0,0x86,0x1,0xf0,0x1,0xe2,0x1,0xd0,0x1, +0x29,0x1,0x1e,0x0,0x7e,0xff,0xd,0xff,0xb9,0xfe,0xe6,0xfe, +0x3f,0xff,0xa5,0xff,0x53,0x0,0xc6,0x0,0x73,0x0,0x8e,0xff, +0xcd,0xfe,0x91,0xfe,0x3b,0xfe,0x8b,0xfd,0x2f,0xfd,0x70,0xfd, +0x65,0xfe,0xd6,0xff,0xd7,0x0,0x86,0x1,0x7f,0x2,0x11,0x3, +0xe8,0x2,0x9b,0x2,0xed,0x1,0x9f,0x0,0x97,0xff,0x58,0xff, +0x1b,0xff,0x8c,0xfe,0x81,0xfe,0x1e,0xff,0x91,0xff,0xc9,0xff, +0x50,0x0,0xd3,0x0,0xaf,0x0,0x8c,0x0,0x3b,0x1,0x98,0x1, +0xdb,0x0,0x33,0x0,0xe2,0xff,0x6d,0xff,0x97,0xff,0x1f,0x0, +0xbe,0xff,0x53,0xff,0xff,0xff,0xad,0x0,0xe3,0x0,0x83,0x1, +0xd1,0x1,0x20,0x1,0x14,0x1,0xb2,0x1,0x27,0x1,0x23,0x0, +0xbf,0xff,0x49,0xff,0x9,0xff,0x7f,0xff,0x1a,0x0,0xd0,0x0, +0x7c,0x1,0xcf,0x1,0x20,0x2,0x30,0x2,0xbc,0x1,0x4f,0x1, +0x5,0x1,0xaa,0x0,0x5b,0x0,0x40,0x0,0x9e,0x0,0x57,0x1, +0xcd,0x1,0xd7,0x1,0xe3,0x1,0x3f,0x2,0x7f,0x2,0x22,0x2, +0x7c,0x1,0x17,0x1,0x4,0x1,0xff,0x0,0xac,0x0,0x2b,0x0, +0x4,0x0,0x6b,0x0,0x6,0x1,0x51,0x1,0x7b,0x1,0x13,0x2, +0x9c,0x2,0x70,0x2,0xf8,0x1,0xc7,0x1,0xc9,0x1,0x73,0x1, +0xcb,0x0,0x76,0x0,0x61,0x0,0x5d,0x0,0x89,0x0,0x65,0x0, +0x12,0x0,0x63,0x0,0xed,0x0,0x23,0x1,0x42,0x1,0xa,0x1, +0x68,0x0,0xb,0x0,0x4,0x0,0xd4,0xff,0xb2,0xff,0x13,0x0, +0x5b,0x0,0x33,0x0,0x73,0x0,0xca,0x0,0x50,0x0,0xd5,0xff, +0xc5,0xff,0x68,0xff,0x1,0xff,0xfa,0xfe,0xe,0xff,0x3d,0xff, +0x75,0xff,0x78,0xff,0x60,0xff,0x7c,0xff,0xf0,0xff,0x4c,0x0, +0x36,0x0,0x2e,0x0,0x65,0x0,0x53,0x0,0x1,0x0,0xe9,0xff, +0xd0,0xff,0x51,0xff,0xed,0xfe,0x15,0xff,0x70,0xff,0xc5,0xff, +0xfd,0xff,0xc1,0xff,0x57,0xff,0x48,0xff,0x88,0xff,0xb5,0xff, +0x69,0xff,0xe1,0xfe,0xbf,0xfe,0xea,0xfe,0x29,0xff,0x63,0xff, +0x10,0xff,0x79,0xfe,0x99,0xfe,0x13,0xff,0xf1,0xfe,0x8a,0xfe, +0x94,0xfe,0xa5,0xfe,0x5b,0xfe,0x47,0xfe,0x7e,0xfe,0xa7,0xfe, +0xff,0xfe,0x37,0xff,0xd3,0xfe,0xac,0xfe,0x21,0xff,0x55,0xff, +0x1a,0xff,0xbf,0xfe,0x7d,0xfe,0x83,0xfe,0x87,0xfe,0x87,0xfe, +0xbb,0xfe,0x95,0xfe,0x2c,0xfe,0x42,0xfe,0x4b,0xfe,0xe,0xfe, +0x84,0xfe,0x2b,0xff,0xfe,0xfe,0xfb,0xfe,0x9b,0xff,0x99,0xff, +0x1d,0xff,0x39,0xff,0x14,0xff,0x3f,0xfe,0x29,0xfe,0xac,0xfe, +0x90,0xfe,0x86,0xfe,0xde,0xfe,0x97,0xfe,0x43,0xfe,0xc3,0xfe, +0x3e,0xff,0x4b,0xff,0x6a,0xff,0x94,0xff,0xd0,0xff,0x21,0x0, +0x24,0x0,0x6,0x0,0xc0,0xff,0xc9,0xfe,0x36,0xfe,0xe1,0xfe, +0x4d,0xff,0x56,0xff,0x14,0x0,0x66,0x0,0x57,0x0,0x79,0x1, +0x2b,0x2,0x26,0x1,0x90,0x0,0xa6,0x0,0xee,0xff,0x4b,0xff, +0x6b,0xff,0x30,0xff,0xdc,0xfe,0x9b,0xff,0x84,0x0,0x98,0x0, +0xd,0x1,0xd1,0x1,0x6f,0x1,0x37,0x1,0xcd,0x1,0xfb,0x0, +0xbd,0xff,0x3c,0x0,0x6f,0x0,0xad,0xff,0x51,0x0,0x55,0x1, +0x14,0x1,0x66,0x1,0x38,0x2,0xc7,0x1,0xa1,0x1,0x2f,0x2, +0x57,0x1,0x80,0x0,0x20,0x1,0x1e,0x1,0xae,0x0,0x24,0x1, +0x9,0x1,0x89,0x0,0x19,0x1,0x85,0x1,0x6,0x1,0x99,0x0, +0x8e,0x0,0xd6,0x0,0x4d,0x1,0x4c,0x1,0xd8,0x0,0x8a,0x0, +0x85,0x0,0x6,0x1,0x21,0x2,0x9a,0x2,0x12,0x2,0x2d,0x2, +0x6,0x3,0x8a,0x3,0x15,0x4,0x1f,0x4,0xff,0x2,0x84,0x2, +0x1b,0x3,0xf,0x3,0x8d,0x2,0x42,0x2,0xe1,0x1,0xf0,0x1, +0xab,0x2,0xe3,0x2,0x86,0x2,0xf2,0x2,0xc9,0x3,0xac,0x3, +0x5d,0x3,0x66,0x3,0xbe,0x2,0x35,0x2,0x7e,0x2,0xed,0x1, +0xf1,0x0,0x39,0x1,0x99,0x1,0x3b,0x1,0x49,0x1,0x7c,0x1, +0xfd,0x0,0xd1,0x0,0x7c,0x1,0x8d,0x1,0xd0,0x0,0x80,0x0, +0x4a,0x0,0x9e,0xff,0x45,0xff,0x42,0xff,0xec,0xfe,0x73,0xfe, +0x24,0xfe,0xff,0xfd,0xc,0xfe,0x50,0xfe,0x67,0xfe,0xe6,0xfd, +0x91,0xfd,0xd9,0xfd,0xc2,0xfd,0x7b,0xfd,0xa9,0xfd,0x48,0xfd, +0x70,0xfc,0x7d,0xfc,0xf,0xfd,0x3a,0xfd,0x58,0xfd,0xd8,0xfd, +0x44,0xfe,0x39,0xfe,0x2d,0xfe,0x24,0xfe,0x8b,0xfd,0xbd,0xfc, +0x67,0xfc,0x6d,0xfc,0x59,0xfc,0x6,0xfc,0x8,0xfc,0x8a,0xfc, +0xc0,0xfc,0xa4,0xfc,0xb1,0xfc,0xba,0xfc,0xd6,0xfc,0xe,0xfd, +0xbe,0xfc,0xf7,0xfb,0xb6,0xfb,0x12,0xfc,0x3,0xfc,0x7f,0xfb, +0x76,0xfb,0xa6,0xfb,0x98,0xfb,0xd2,0xfb,0x14,0xfc,0xe0,0xfb, +0xb3,0xfb,0x89,0xfb,0x6,0xfb,0xc5,0xfa,0x2b,0xfb,0x58,0xfb, +0xae,0xfa,0x2c,0xfa,0xa6,0xfa,0x51,0xfb,0x68,0xfb,0x1f,0xfb, +0x7,0xfb,0x72,0xfb,0xe2,0xfb,0x4,0xfc,0x10,0xfc,0xbe,0xfb, +0x6d,0xfb,0xbe,0xfb,0xc3,0xfb,0x73,0xfb,0xe2,0xfb,0x59,0xfc, +0x64,0xfc,0xf0,0xfc,0xac,0xfd,0xea,0xfd,0xee,0xfd,0xdd,0xfd, +0xd5,0xfd,0xde,0xfd,0xdc,0xfd,0xc,0xfe,0x51,0xfe,0x70,0xfe, +0xf1,0xfe,0xc1,0xff,0xdd,0xff,0x66,0xff,0x88,0xff,0x41,0x0, +0xa7,0x0,0xc7,0x0,0x3,0x1,0x35,0x1,0x8e,0x1,0x16,0x2, +0x2f,0x2,0xe9,0x1,0xf7,0x1,0x41,0x2,0x48,0x2,0x39,0x2, +0x48,0x2,0x4a,0x2,0xa5,0x2,0x62,0x3,0x69,0x3,0x5,0x3, +0x43,0x3,0x78,0x3,0x43,0x3,0x1e,0x3,0xcf,0x2,0xaf,0x2, +0xed,0x2,0xf3,0x2,0x43,0x3,0xc6,0x3,0x7e,0x3,0x6e,0x3, +0x31,0x4,0x5d,0x4,0xfc,0x3,0xff,0x3,0xfd,0x3,0xdf,0x3, +0x6,0x4,0x6,0x4,0xdc,0x3,0xfd,0x3,0x15,0x4,0x4,0x4, +0x40,0x4,0x9a,0x4,0xc6,0x4,0xbd,0x4,0x86,0x4,0x93,0x4, +0xde,0x4,0xda,0x4,0x75,0x4,0xb1,0x3,0x13,0x3,0x4c,0x3, +0x80,0x3,0x15,0x3,0xf8,0x2,0x5a,0x3,0xb2,0x3,0xd3,0x3, +0xce,0x3,0xf4,0x3,0x3d,0x4,0x26,0x4,0xc5,0x3,0xc9,0x3, +0xf5,0x3,0x3d,0x3,0x43,0x2,0x84,0x2,0xf,0x3,0x82,0x2, +0xe4,0x1,0x57,0x2,0xe1,0x2,0x59,0x2,0xd6,0x1,0x1a,0x2, +0xc2,0x1,0x52,0x1,0xc8,0x1,0x28,0x1,0xd6,0xff,0x48,0x0, +0x3e,0x1,0xf,0x1,0x6a,0x0,0x34,0x0,0x2e,0x1,0x39,0x2, +0xbe,0x1,0x4a,0x1,0x77,0x1,0x71,0x0,0xa7,0xff,0x69,0x0, +0x73,0xff,0x33,0xfd,0x13,0xfe,0xd,0x0,0xa8,0xff,0x9,0xff, +0xdf,0xfe,0xab,0xfe,0xa3,0xff,0xd6,0xff,0x5,0xfe,0x99,0xfc, +0x39,0xfc,0xf,0xfd,0x54,0xfe,0xd,0xfd,0x2b,0xfb,0xa1,0xfc, +0x5,0xff,0x24,0xff,0x2a,0xfe,0xc3,0xfd,0x1,0xfe,0x61,0xfe, +0x53,0xfe,0x84,0xfd,0x9b,0xfc,0x74,0xfc,0xc8,0xfc,0x11,0xfd, +0xdb,0xfc,0x21,0xfc,0x25,0xfc,0xe9,0xfc,0x42,0xfd,0x48,0xfd, +0xfa,0xfc,0x5f,0xfc,0x7e,0xfc,0x67,0xfd,0xdf,0xfd,0xad,0xfc, +0xd9,0xfa,0x10,0xfb,0xb9,0xfc,0x51,0xfd,0xcd,0xfc,0x1c,0xfc, +0x28,0xfc,0xfc,0xfc,0x41,0xfd,0x3f,0xfd,0x34,0xfd,0xe6,0xfb, +0xb0,0xfa,0x4c,0xfb,0x59,0xfc,0xb7,0xfc,0x88,0xfc,0x2b,0xfc, +0xb1,0xfc,0x38,0xfe,0xf9,0xfe,0x4,0xfe,0x14,0xfd,0xd1,0xfd, +0xe7,0xfe,0x57,0xfe,0xb6,0xfc,0x49,0xfc,0xbc,0xfd,0xcb,0xfe, +0xea,0xfd,0x98,0xfc,0x13,0xfc,0x92,0xfc,0x1e,0xfe,0x8f,0xfe, +0xb7,0xfc,0xbe,0xfb,0x18,0xfd,0x49,0xfe,0x7b,0xfe,0x7b,0xfe, +0x21,0xfe,0xf5,0xfd,0xd9,0xfe,0x27,0x0,0x96,0x0,0xdf,0xff, +0x1e,0xff,0x83,0xff,0x78,0x0,0x7a,0x0,0x97,0xff,0x50,0xff, +0xc8,0xff,0xff,0xff,0x22,0x0,0x20,0x0,0xb4,0xff,0x4e,0x0, +0xb8,0x1,0xb5,0x1,0xe0,0x0,0xe1,0x0,0x6a,0x1,0x39,0x2, +0xf9,0x2,0xd5,0x2,0x63,0x2,0xa6,0x2,0x2c,0x3,0x4b,0x3, +0x20,0x3,0x6d,0x2,0x68,0x1,0x5c,0x1,0x1d,0x2,0xa7,0x2, +0xca,0x2,0x32,0x2,0x41,0x2,0x15,0x4,0xb3,0x4,0x6b,0x3, +0x26,0x3,0x62,0x3,0x2a,0x3,0x9c,0x3,0xbe,0x3,0xcc,0x2, +0x8d,0x2,0xf5,0x3,0x76,0x5,0x8,0x5,0x82,0x3,0x54,0x3, +0x56,0x4,0x71,0x4,0x6,0x3,0x16,0x2,0xfc,0x2,0xe3,0x3, +0xfb,0x3,0x50,0x4,0x36,0x4,0xa7,0x3,0xa,0x4,0xd4,0x4, +0xdb,0x4,0x84,0x4,0x93,0x4,0x5d,0x4,0x77,0x3,0x8a,0x3, +0x40,0x4,0x94,0x3,0xf8,0x2,0x8e,0x3,0xee,0x3,0xdd,0x3, +0x19,0x3,0x1f,0x2,0xc5,0x2,0x74,0x3,0x5a,0x2,0x6e,0x1, +0x7f,0x1,0xad,0x1,0xef,0x1,0xb7,0x1,0x12,0x1,0xa7,0x1, +0xff,0x2,0xda,0x2,0x87,0x2,0x12,0x4,0x92,0x4,0x9c,0x2, +0xb2,0x1,0x11,0x2,0xa7,0x1,0xdd,0x0,0x22,0xff,0xe5,0xfc, +0x39,0xfd,0x1f,0xff,0x68,0xff,0xaa,0xfe,0x83,0xfe,0xbc,0xff, +0x13,0x2,0x94,0x2,0x4f,0x0,0x48,0xff,0x67,0x0,0x6a,0xff, +0x70,0xfc,0xb3,0xfb,0xe1,0xfc,0x6e,0xfd,0x74,0xfd,0x72,0xfd, +0xc,0xfe,0x8a,0xff,0x9,0x0,0x58,0xff,0x6c,0xff,0xc6,0xff, +0x64,0xff,0x9f,0xfe,0x2f,0xfd,0xeb,0xfb,0x63,0xfc,0x0,0xfd, +0xbb,0xfb,0x56,0xfa,0xfd,0xfa,0x80,0xfc,0xfa,0xfc,0x7f,0xfc, +0xbc,0xfb,0x7a,0xfb,0x48,0xfc,0xa2,0xfc,0x6f,0xfb,0x56,0xfa, +0x12,0xfa,0xd5,0xf9,0x10,0xfa,0x71,0xfa,0xce,0xf9,0xa3,0xf9, +0x81,0xfb,0x7d,0xfd,0xcf,0xfd,0x55,0xfd,0x34,0xfd,0xd0,0xfd, +0x6b,0xfe,0x75,0xfd,0x86,0xfb,0x71,0xfa,0x2f,0xfa,0xd5,0xfa, +0x6b,0xfc,0xb4,0xfc,0xa8,0xfb,0x5c,0xfc,0x9b,0xfe,0xe7,0xff, +0x50,0x0,0x50,0x0,0x8b,0xff,0xb8,0xfe,0x43,0xfe,0xb1,0xfd, +0x75,0xfd,0x5e,0xfd,0x4f,0xfc,0xec,0xfb,0xc7,0xfd,0x26,0xff, +0xd2,0xfe,0x44,0xff,0x25,0x0,0xbc,0xff,0x2c,0xff,0xc5,0xfe, +0xb8,0xfd,0x21,0xfd,0x80,0xfd,0xa5,0xfd,0x3e,0xfd,0x44,0xfd, +0xd3,0xfe,0x2a,0x1,0xee,0x1,0xd,0x1,0x98,0x0,0xc,0x1, +0x4e,0x1,0xb4,0x0,0x55,0xff,0x72,0xfd,0xdb,0xfb,0xe2,0xfb, +0xe0,0xfc,0x1a,0xfd,0x32,0xfd,0xd2,0xfd,0x42,0xfe,0x30,0xff, +0xca,0x0,0x51,0x1,0xa8,0x0,0x2a,0x0,0x2f,0x0,0x67,0x0, +0x6b,0x0,0x28,0x0,0x15,0x0,0x59,0x0,0x89,0x0,0x89,0x0, +0xea,0x0,0xc1,0x1,0x63,0x2,0x66,0x2,0xb5,0x1,0xfb,0x0, +0x10,0x1,0x8,0x1,0xfd,0xff,0x1b,0xff,0x30,0xff,0x9c,0xff, +0xe7,0xff,0x7f,0x0,0xcf,0x1,0xf,0x3,0x91,0x3,0xc3,0x3, +0xe6,0x3,0x12,0x4,0xee,0x3,0xcf,0x2,0xb3,0x1,0x58,0x1, +0xc6,0x0,0x4a,0x0,0x79,0x0,0x69,0x0,0x2b,0x0,0x8e,0x0, +0x16,0x1,0x62,0x1,0x17,0x2,0x9,0x3,0xdf,0x2,0xcc,0x1, +0x98,0x1,0x2e,0x2,0xff,0x1,0x10,0x1,0x71,0x0,0x65,0x0, +0x99,0x0,0xc9,0x0,0x9f,0x0,0xe0,0xff,0x2f,0xff,0x27,0xff, +0xfe,0xfe,0x36,0xfe,0x41,0xfe,0xb3,0xff,0xa6,0x0,0x91,0x0, +0xf4,0x0,0x92,0x1,0x86,0x1,0x80,0x1,0xbd,0x1,0xfe,0x1, +0x7c,0x2,0xd2,0x2,0x8f,0x2,0xdb,0x1,0x15,0x1,0x9f,0x0, +0xcf,0xff,0x71,0xfe,0x2a,0xfe,0x2d,0xff,0xd,0x0,0xb3,0x0, +0x2e,0x1,0x1e,0x1,0x2f,0x1,0x9e,0x1,0x73,0x1,0x9e,0x0, +0x22,0x0,0x57,0x0,0xcf,0x0,0x13,0x1,0x8,0x1,0x3b,0x1, +0xcb,0x1,0xed,0x1,0xbd,0x1,0xe8,0x1,0xf3,0x1,0x7d,0x1, +0x2c,0x1,0xff,0x0,0x4e,0x0,0x97,0xff,0xa7,0xff,0xc3,0xff, +0x9c,0xff,0x45,0x0,0x4f,0x1,0x90,0x1,0xb1,0x1,0x20,0x2, +0x1b,0x2,0x7a,0x1,0xbc,0x0,0x54,0x0,0x17,0x0,0xc1,0xff, +0xa5,0xff,0x73,0xff,0xb3,0xfe,0x3e,0xfe,0x99,0xfe,0x1f,0xff, +0x6e,0xff,0xeb,0xff,0xc1,0x0,0x55,0x1,0x60,0x1,0x23,0x1, +0x97,0x0,0x22,0x0,0xe5,0xff,0x1a,0xff,0x67,0xfe,0xda,0xfe, +0x6b,0xff,0x4f,0xff,0x41,0xff,0x74,0xff,0x56,0xff,0x5,0xff, +0xfb,0xfe,0xe6,0xfe,0xb4,0xfe,0x6,0xff,0x52,0xff,0x2a,0xff, +0x82,0xff,0x26,0x0,0x7d,0x0,0x6,0x1,0x2b,0x1,0x6d,0x0, +0x17,0x0,0x65,0x0,0x4d,0x0,0xeb,0xff,0xc5,0xff,0xb1,0xff, +0xbf,0xff,0x22,0x0,0x7,0x0,0xf2,0xfe,0x10,0xfe,0xf,0xfe, +0x56,0xfe,0x92,0xfe,0xa9,0xfe,0x1,0xff,0xea,0xff,0x4e,0x0, +0x16,0x0,0x4f,0x0,0x4a,0x0,0xc4,0xff,0xc1,0xff,0x77,0xff, +0x94,0xfe,0xac,0xfe,0x46,0xff,0xf0,0xfe,0x8d,0xfe,0xc9,0xfe, +0xc3,0xfe,0xa8,0xfe,0x6,0xff,0x5a,0xff,0x8e,0xff,0xc0,0xff, +0xa3,0xff,0xc7,0xff,0x55,0x0,0x4c,0x0,0xec,0xff,0xe5,0xff, +0xe0,0xff,0x38,0x0,0xf3,0x0,0xbe,0x0,0x12,0x0,0x8a,0x0, +0x2d,0x1,0x92,0x0,0xe7,0xff,0xb,0x0,0xdf,0xff,0x33,0xff, +0xe7,0xfe,0xae,0xfe,0x17,0xfe,0xd6,0xfd,0x40,0xfe,0x92,0xfe, +0x96,0xfe,0x16,0xff,0xf5,0xff,0x60,0x0,0x94,0x0,0xb4,0x0, +0x64,0x0,0x49,0x0,0x9e,0x0,0x67,0x0,0xac,0xff,0x81,0xff, +0xf3,0xff,0xf7,0xff,0x83,0xff,0xa2,0xff,0xe3,0xff,0x89,0xff, +0xa1,0xff,0x24,0x0,0xd6,0xff,0x75,0xff,0xab,0xff,0x5e,0xff, +0xcf,0xfe,0x53,0xff,0xff,0xff,0x75,0xff,0x9,0xff,0xeb,0xff, +0xb2,0x0,0xbb,0x0,0x1d,0x1,0x83,0x1,0x3d,0x1,0x39,0x1, +0x7d,0x1,0xd7,0x0,0xf5,0xff,0xfc,0xff,0x2,0x0,0x5d,0xff, +0xff,0xfe,0x44,0xff,0x6a,0xff,0x31,0xff,0x4e,0xff,0xda,0xff, +0xe3,0xff,0xb5,0xff,0x31,0x0,0x88,0x0,0x51,0x0,0x6a,0x0, +0x9a,0x0,0x55,0x0,0x30,0x0,0x7b,0x0,0x7e,0x0,0xe5,0xff, +0xb7,0xff,0x4e,0x0,0x61,0x0,0xb9,0xff,0x7d,0xff,0xc5,0xff, +0xc2,0xff,0x85,0xff,0xba,0xff,0x2,0x0,0xd8,0xff,0xe,0x0, +0x99,0x0,0x75,0x0,0x53,0x0,0xc8,0x0,0xbd,0x0,0x4b,0x0, +0x8d,0x0,0xd9,0x0,0x2e,0x0,0xb0,0xff,0xe,0x0,0xe2,0xff, +0x32,0xff,0x60,0xff,0xbe,0xff,0x42,0xff,0xf1,0xfe,0xe5,0xff, +0xd7,0x0,0x4d,0x0,0xec,0xff,0xbe,0x0,0xb7,0x0,0x26,0x0, +0x92,0x0,0x59,0x0,0x65,0xff,0xc5,0xff,0x57,0x0,0xab,0xff, +0x6a,0xff,0x2f,0x0,0x59,0x0,0xd5,0xff,0xc0,0xff,0xda,0xff, +0xc1,0xff,0xc9,0xff,0xd6,0xff,0xb4,0xff,0x89,0xff,0xce,0xff, +0x6e,0x0,0x5c,0x0,0x27,0x0,0xc8,0x0,0xe7,0x0,0x68,0x0, +0xa8,0x0,0xd9,0x0,0x51,0x0,0xe,0x0,0x50,0x0,0x46,0x0, +0xbc,0xff,0xbc,0xff,0x34,0x0,0xf3,0xff,0xd4,0xff,0x6a,0x0, +0x7b,0x0,0x4e,0x0,0x91,0x0,0xbf,0x0,0x89,0x0,0x21,0x0, +0x4c,0x0,0xdc,0x0,0xab,0x0,0x67,0x0,0xb0,0x0,0xbb,0x0, +0xcb,0x0,0x16,0x1,0xd6,0x0,0x43,0x0,0x5a,0x0,0x10,0x1, +0x8,0x1,0x39,0x0,0x32,0x0,0x73,0x0,0xf4,0xff,0xf0,0xff, +0x6d,0x0,0xdf,0xff,0x2f,0xff,0xfb,0xff,0xa4,0x0,0x93,0xff, +0xfa,0xfe,0xf8,0xff,0x46,0x0,0x8b,0xff,0x8d,0xff,0x28,0x0, +0x41,0x0,0x14,0x0,0x52,0x0,0x3f,0x0,0x73,0xff,0x83,0xff, +0x12,0x0,0x48,0xff,0xb1,0xfe,0x91,0xff,0xea,0xff,0x65,0xff, +0x98,0xff,0x4b,0x0,0x5f,0x0,0x11,0x0,0xe,0x0,0x7,0x0, +0xc7,0xff,0xbf,0xff,0xaa,0xff,0x3b,0xff,0xfe,0xfe,0x35,0xff, +0x6a,0xff,0x4c,0xff,0x40,0xff,0x85,0xff,0xb9,0xff,0xc4,0xff, +0xd5,0xff,0xda,0xff,0xd0,0xff,0xb0,0xff,0x99,0xff,0xb8,0xff, +0xbf,0xff,0xac,0xff,0xb4,0xff,0x97,0xff,0x70,0xff,0x8c,0xff, +0xa0,0xff,0x66,0xff,0xf,0xff,0xfe,0xfe,0x25,0xff,0xfc,0xfe, +0x8d,0xfe,0x85,0xfe,0xd7,0xfe,0xcf,0xfe,0xc3,0xfe,0x33,0xff, +0x5d,0xff,0x25,0xff,0x3f,0xff,0x2b,0xff,0xca,0xfe,0xce,0xfe, +0xcf,0xfe,0x9b,0xfe,0xcd,0xfe,0x0,0xff,0xbb,0xfe,0xa4,0xfe, +0xff,0xfe,0x14,0xff,0xc5,0xfe,0xa0,0xfe,0xa1,0xfe,0xd8,0xfe, +0x3a,0xff,0x1e,0xff,0xe5,0xfe,0xed,0xfe,0xa4,0xfe,0xad,0xfe, +0x20,0xff,0xe8,0xfe,0xb5,0xfe,0x11,0xff,0x13,0xff,0xdb,0xfe, +0xcf,0xfe,0xe5,0xfe,0x22,0xff,0x1,0xff,0x91,0xfe,0xa6,0xfe, +0xfb,0xfe,0xe2,0xfe,0xcd,0xfe,0x10,0xff,0xf5,0xfe,0xbc,0xfe, +0x6a,0xff,0xfd,0xff,0x97,0xff,0x93,0xff,0x3,0x0,0xd3,0xff, +0x81,0xff,0x7f,0xff,0x6d,0xff,0x32,0xff,0x9,0xff,0x44,0xff, +0x63,0xff,0xf2,0xfe,0x10,0xff,0xf9,0xff,0xee,0xff,0xf5,0xfe, +0xc,0xff,0xe9,0xff,0xc7,0xff,0x32,0xff,0x5a,0xff,0x98,0xff, +0x97,0xff,0xe7,0xff,0x27,0x0,0xc7,0xff,0x8c,0xff,0x27,0x0, +0x5f,0x0,0x7a,0xff,0x3e,0xff,0x1e,0x0,0x4,0x0,0xee,0xfe, +0xe5,0xfe,0x9b,0xff,0x4a,0xff,0x98,0xfe,0x22,0xff,0xc7,0xff, +0x6d,0xff,0x88,0xff,0x48,0x0,0x2c,0x0,0xb5,0xff,0xfe,0xff, +0x26,0x0,0x6b,0xff,0x16,0xff,0xd0,0xff,0xc,0x0,0x70,0xff, +0x6f,0xff,0xcf,0xff,0xca,0xff,0xe3,0xff,0xdd,0xff,0x5a,0xff, +0x2a,0xff,0x4b,0xff,0x13,0xff,0xed,0xfe,0xfc,0xfe,0xdb,0xfe, +0xf8,0xfe,0x6f,0xff,0xaf,0xff,0xd3,0xff,0x14,0x0,0xa0,0x0, +0x6a,0x1,0x56,0x1,0xa6,0x0,0xf8,0x0,0x5a,0x1,0xcc,0x0, +0xbd,0x0,0xe1,0x0,0x39,0x0,0x46,0x0,0x1e,0x1,0xf0,0x0, +0x72,0x0,0xe4,0x0,0x44,0x1,0x35,0x1,0x75,0x1,0xab,0x1, +0xa4,0x1,0xc1,0x1,0xc8,0x1,0xf9,0x1,0x6b,0x2,0x37,0x2, +0xe7,0x1,0x4a,0x2,0x51,0x2,0x2,0x2,0x48,0x2,0x6c,0x2, +0x3c,0x2,0x7f,0x2,0x97,0x2,0x3a,0x2,0x61,0x2,0xbe,0x2, +0x8a,0x2,0x71,0x2,0x9b,0x2,0x5f,0x2,0x17,0x2,0x24,0x2, +0x42,0x2,0x60,0x2,0x3b,0x2,0x7,0x2,0xa5,0x2,0x85,0x3, +0x7e,0x3,0x1f,0x3,0x40,0x3,0x75,0x3,0x18,0x3,0x60,0x2, +0x24,0x2,0x5d,0x2,0x2c,0x2,0xbd,0x1,0x85,0x1,0x3e,0x1, +0x63,0x1,0x1c,0x2,0x2f,0x2,0xcc,0x1,0x1b,0x2,0xe5,0x2, +0x9c,0x3,0xa8,0x3,0x28,0x3,0x8d,0x3,0x18,0x4,0x11,0x3, +0xd,0x2,0x1e,0x2,0xeb,0x1,0xab,0x1,0xdc,0x1,0x9a,0x1, +0x39,0x1,0x9e,0x1,0x3c,0x2,0x63,0x2,0x4c,0x2,0x2d,0x2, +0x1c,0x2,0x41,0x2,0x33,0x2,0xdc,0x1,0x3,0x2,0x53,0x2, +0x55,0x2,0xf3,0x2,0xf2,0x3,0x6a,0x4,0x1d,0x5,0x41,0x6, +0xcc,0x6,0x93,0x6,0xbc,0x5,0x5,0x4,0x7d,0x1,0x67,0xfe, +0x2e,0xfb,0xd2,0xf8,0xf1,0xf7,0xd9,0xf7,0x21,0xf8,0x55,0xf9, +0x33,0xfb,0xd2,0xfc,0xf3,0xfd,0xb1,0xfe,0x23,0xff,0xa,0xff, +0x3f,0xfe,0x58,0xfd,0x9b,0xfc,0xe4,0xfb,0x8c,0xfb,0xac,0xfb, +0xe4,0xfb,0xe5,0xfb,0xde,0xfb,0x5a,0xfc,0xe0,0xfc,0x81,0xfc, +0xb7,0xfb,0x15,0xfb,0x57,0xfa,0x92,0xf9,0xdc,0xf8,0x29,0xf8, +0xee,0xf7,0x96,0xf8,0xe5,0xf9,0x58,0xfb,0xaa,0xfc,0xfc,0xfd, +0x42,0xff,0xff,0xff,0xdb,0xff,0x2a,0xff,0x4f,0xfe,0x6,0xfd, +0x5b,0xfb,0xa,0xfa,0x2a,0xf9,0x66,0xf8,0xf9,0xf7,0x4f,0xf8, +0x5c,0xf9,0x89,0xfa,0x80,0xfb,0x7d,0xfc,0x64,0xfd,0xc7,0xfd, +0x91,0xfd,0xea,0xfc,0x19,0xfc,0x6a,0xfb,0xb,0xfb,0xfb,0xfa, +0xd8,0xfa,0xc4,0xfa,0x4f,0xfb,0xde,0xfb,0xbd,0xfb,0x85,0xfb, +0x59,0xfb,0xda,0xfa,0x54,0xfa,0xcd,0xf9,0x45,0xf9,0x3b,0xf9, +0x6e,0xf9,0x80,0xf9,0xd7,0xf9,0x85,0xfa,0x67,0xfb,0x73,0xfc, +0x29,0xfd,0x8b,0xfd,0xa,0xfe,0x2d,0xfe,0x9a,0xfd,0x0,0xfd, +0x99,0xfc,0xd9,0xfb,0xe4,0xfa,0x77,0xfa,0x9f,0xfa,0xfb,0xfa, +0x7a,0xfb,0x15,0xfc,0xd3,0xfc,0xac,0xfd,0x40,0xfe,0xa1,0xfe, +0x2e,0xff,0x9e,0xff,0xd0,0xff,0x16,0x0,0x50,0x0,0x79,0x0, +0xdc,0x0,0x43,0x1,0x60,0x1,0x6a,0x1,0x9e,0x1,0xe8,0x1, +0x2,0x2,0xee,0x1,0xf3,0x1,0xfa,0x1,0xbd,0x1,0x8f,0x1, +0xd1,0x1,0x1c,0x2,0x22,0x2,0x46,0x2,0xa6,0x2,0xfe,0x2, +0x52,0x3,0xa6,0x3,0xc0,0x3,0xb5,0x3,0xd8,0x3,0xc,0x4, +0xf7,0x3,0xab,0x3,0x54,0x3,0x17,0x3,0x18,0x3,0xf2,0x2, +0x88,0x2,0x9f,0x2,0x34,0x3,0x6a,0x3,0x51,0x3,0x8b,0x3, +0xfe,0x3,0x25,0x4,0x8,0x4,0x7,0x4,0xc,0x4,0xfb,0x3, +0x27,0x4,0x62,0x4,0x4d,0x4,0x3e,0x4,0x73,0x4,0x85,0x4, +0x2d,0x4,0xca,0x3,0xc2,0x3,0xd8,0x3,0xdd,0x3,0xf2,0x3, +0xd2,0x3,0x72,0x3,0x71,0x3,0xe6,0x3,0x4c,0x4,0x74,0x4, +0x7a,0x4,0x70,0x4,0x78,0x4,0xae,0x4,0xda,0x4,0xce,0x4, +0xce,0x4,0xda,0x4,0xa1,0x4,0x40,0x4,0xf0,0x3,0xc4,0x3, +0x1,0x4,0x64,0x4,0x49,0x4,0x12,0x4,0x5e,0x4,0xcc,0x4, +0x2a,0x5,0xab,0x5,0xe2,0x5,0xd2,0x5,0x4c,0x6,0xee,0x6, +0xd1,0x6,0x66,0x6,0x7,0x6,0x5e,0x5,0xd2,0x4,0xa4,0x4, +0x3a,0x4,0x85,0x3,0xb,0x3,0xfe,0x2,0x53,0x3,0x8d,0x3, +0x3d,0x3,0xcd,0x2,0xa7,0x2,0x9c,0x2,0x7b,0x2,0x44,0x2, +0xed,0x1,0x96,0x1,0x9c,0x1,0xeb,0x1,0xd5,0x1,0x69,0x1, +0x7e,0x1,0xf2,0x1,0xfa,0x1,0x82,0x1,0xd3,0x0,0x3e,0x0, +0x11,0x0,0xe8,0xff,0x4c,0xff,0xad,0xfe,0x6f,0xfe,0x6d,0xfe, +0xa8,0xfe,0xf7,0xfe,0xf3,0xfe,0xe0,0xfe,0x4,0xff,0x2c,0xff, +0x8a,0xff,0xd,0x0,0xf,0x0,0xbc,0xff,0xaa,0xff,0xb0,0xff, +0x78,0xff,0xfe,0xfe,0x5d,0xfe,0xf8,0xfd,0x2f,0xfe,0x83,0xfe, +0x33,0xfe,0xe0,0xfd,0x52,0xfe,0xa7,0xfe,0x52,0xfe,0xe3,0xfd, +0x60,0xfd,0x1,0xfd,0x34,0xfd,0x76,0xfd,0x65,0xfd,0x36,0xfd, +0x22,0xfd,0x70,0xfd,0xd5,0xfd,0xfb,0xfd,0x1e,0xfe,0xd,0xfe, +0xac,0xfd,0x89,0xfd,0x9f,0xfd,0x5b,0xfd,0x81,0xfc,0x82,0xfb, +0x3d,0xfb,0x80,0xfb,0x51,0xfb,0xf0,0xfa,0x1d,0xfb,0x9c,0xfb, +0xe,0xfc,0x97,0xfc,0x9,0xfd,0x16,0xfd,0x16,0xfd,0x1f,0xfd, +0xa6,0xfc,0xd9,0xfb,0x7a,0xfb,0x68,0xfb,0xb,0xfb,0x8c,0xfa, +0x75,0xfa,0xb4,0xfa,0xef,0xfa,0x5c,0xfb,0x15,0xfc,0x7e,0xfc, +0x43,0xfc,0xe0,0xfb,0xd9,0xfb,0x3,0xfc,0xe8,0xfb,0x8d,0xfb, +0x39,0xfb,0x24,0xfb,0xa6,0xfb,0x8c,0xfc,0x28,0xfd,0x73,0xfd, +0xcd,0xfd,0x4c,0xfe,0xd4,0xfe,0x9,0xff,0xc1,0xfe,0x59,0xfe, +0xf1,0xfd,0x59,0xfd,0xe2,0xfc,0xef,0xfc,0x32,0xfd,0x59,0xfd, +0xbc,0xfd,0x77,0xfe,0x21,0xff,0xbe,0xff,0x40,0x0,0x2e,0x0, +0xca,0xff,0x91,0xff,0x34,0xff,0xb9,0xfe,0x99,0xfe,0xa0,0xfe, +0xa2,0xfe,0xcd,0xfe,0x3,0xff,0x58,0xff,0xe6,0xff,0x3b,0x0, +0x38,0x0,0x28,0x0,0x2,0x0,0xe0,0xff,0xfe,0xff,0x17,0x0, +0xfa,0xff,0xf9,0xff,0x38,0x0,0xac,0x0,0x42,0x1,0x9d,0x1, +0x82,0x1,0x44,0x1,0x2d,0x1,0x3a,0x1,0x33,0x1,0xe2,0x0, +0x8e,0x0,0x70,0x0,0x43,0x0,0x1f,0x0,0x54,0x0,0xae,0x0, +0x1,0x1,0x5c,0x1,0xc0,0x1,0x2e,0x2,0x93,0x2,0xdb,0x2, +0xde,0x2,0x78,0x2,0x9,0x2,0xdd,0x1,0xb1,0x1,0x8a,0x1, +0x9c,0x1,0xbb,0x1,0xd0,0x1,0xd1,0x1,0x9d,0x1,0x62,0x1, +0x6d,0x1,0x88,0x1,0x5c,0x1,0x2e,0x1,0x4c,0x1,0x76,0x1, +0x8f,0x1,0x9b,0x1,0x7f,0x1,0x82,0x1,0xca,0x1,0x6,0x2, +0x4b,0x2,0x8c,0x2,0x6a,0x2,0x2a,0x2,0x13,0x2,0xe4,0x1, +0x8d,0x1,0x18,0x1,0x7f,0x0,0xd,0x0,0x1,0x0,0x31,0x0, +0x65,0x0,0x9e,0x0,0xf4,0x0,0x51,0x1,0x64,0x1,0x1b,0x1, +0xc0,0x0,0x78,0x0,0x2c,0x0,0xdd,0xff,0xbb,0xff,0x1,0x0, +0x92,0x0,0x14,0x1,0x7c,0x1,0xb9,0x1,0x83,0x1,0x29,0x1, +0x3,0x1,0xb1,0x0,0x2a,0x0,0xdc,0xff,0xa2,0xff,0x49,0xff, +0x42,0xff,0xa5,0xff,0x3,0x0,0x57,0x0,0xbc,0x0,0xe7,0x0, +0xea,0x0,0x4,0x1,0xd3,0x0,0x31,0x0,0xa8,0xff,0x5f,0xff, +0x24,0xff,0x11,0xff,0x2e,0xff,0x61,0xff,0xc7,0xff,0x5e,0x0, +0xcb,0x0,0xd9,0x0,0x9e,0x0,0x2e,0x0,0xae,0xff,0x3d,0xff, +0xd0,0xfe,0x7a,0xfe,0x66,0xfe,0x93,0xfe,0xe6,0xfe,0x49,0xff, +0xa7,0xff,0xfc,0xff,0x5d,0x0,0xa7,0x0,0x96,0x0,0x51,0x0, +0xe,0x0,0xa8,0xff,0x3a,0xff,0xf8,0xfe,0xb6,0xfe,0x8a,0xfe, +0xb4,0xfe,0x2,0xff,0x4c,0xff,0x89,0xff,0x8c,0xff,0x5b,0xff, +0x2c,0xff,0xf,0xff,0xf3,0xfe,0xdb,0xfe,0xe5,0xfe,0xd,0xff, +0x41,0xff,0x7f,0xff,0x9b,0xff,0x8f,0xff,0x93,0xff,0x99,0xff, +0x84,0xff,0x78,0xff,0x5b,0xff,0x0,0xff,0xaf,0xfe,0xa8,0xfe, +0xa9,0xfe,0x9d,0xfe,0xcd,0xfe,0x2e,0xff,0x7b,0xff,0x9d,0xff, +0x8e,0xff,0x6a,0xff,0x51,0xff,0x36,0xff,0x1e,0xff,0x20,0xff, +0x3e,0xff,0x59,0xff,0x54,0xff,0x49,0xff,0x50,0xff,0x4f,0xff, +0x55,0xff,0x73,0xff,0xa0,0xff,0xf2,0xff,0x4d,0x0,0x6e,0x0, +0x56,0x0,0x1e,0x0,0xda,0xff,0x9a,0xff,0x56,0xff,0x36,0xff, +0x73,0xff,0xd2,0xff,0x8,0x0,0x35,0x0,0x71,0x0,0x83,0x0, +0x69,0x0,0x52,0x0,0x33,0x0,0x11,0x0,0xfb,0xff,0xc3,0xff, +0x68,0xff,0x28,0xff,0x1d,0xff,0x39,0xff,0x5c,0xff,0x89,0xff, +0xe5,0xff,0x4d,0x0,0x7c,0x0,0x7a,0x0,0x7a,0x0,0x81,0x0, +0x57,0x0,0xf4,0xff,0x94,0xff,0x61,0xff,0x4f,0xff,0x47,0xff, +0x5e,0xff,0xab,0xff,0x7,0x0,0x69,0x0,0xcd,0x0,0x15,0x1, +0x50,0x1,0x52,0x1,0xd9,0x0,0x54,0x0,0x10,0x0,0xcb,0xff, +0xaf,0xff,0xe8,0xff,0x46,0x0,0xd8,0x0,0x85,0x1,0xda,0x1, +0xe5,0x1,0xef,0x1,0xc2,0x1,0x3f,0x1,0xc8,0x0,0x93,0x0, +0x7c,0x0,0x84,0x0,0xba,0x0,0x5,0x1,0x5f,0x1,0xc2,0x1, +0xf1,0x1,0xda,0x1,0xcf,0x1,0xd8,0x1,0x93,0x1,0xc,0x1, +0x9c,0x0,0x43,0x0,0x5,0x0,0xfc,0xff,0xff,0xff,0x9,0x0, +0x4c,0x0,0xb5,0x0,0xff,0x0,0x2e,0x1,0x6c,0x1,0x99,0x1, +0x8d,0x1,0x70,0x1,0x55,0x1,0x1a,0x1,0xc6,0x0,0x81,0x0, +0x4f,0x0,0x27,0x0,0x1d,0x0,0x42,0x0,0x86,0x0,0xdf,0x0, +0x30,0x1,0x46,0x1,0x21,0x1,0xdb,0x0,0x8d,0x0,0x42,0x0, +0xe5,0xff,0xa4,0xff,0xb6,0xff,0xe5,0xff,0x1a,0x0,0x78,0x0, +0xcf,0x0,0xe7,0x0,0xe7,0x0,0xe9,0x0,0xc0,0x0,0x67,0x0, +0xd,0x0,0xb5,0xff,0x90,0xff,0xcd,0xff,0xd,0x0,0x1f,0x0, +0x40,0x0,0x7e,0x0,0xcc,0x0,0x0,0x1,0xef,0x0,0xca,0x0, +0x8f,0x0,0x37,0x0,0x5,0x0,0xdb,0xff,0xbc,0xff,0xfc,0xff, +0x46,0x0,0x4d,0x0,0x6e,0x0,0x9d,0x0,0x81,0x0,0x40,0x0, +0x10,0x0,0xd6,0xff,0x8d,0xff,0x5d,0xff,0x4e,0xff,0x5e,0xff, +0x8e,0xff,0xb8,0xff,0xbc,0xff,0xb7,0xff,0xcf,0xff,0xfb,0xff, +0xfc,0xff,0xd3,0xff,0xcc,0xff,0xd4,0xff,0xc0,0xff,0xa7,0xff, +0x69,0xff,0x1,0xff,0xbd,0xfe,0x9b,0xfe,0x7d,0xfe,0x86,0xfe, +0xc2,0xfe,0x1d,0xff,0x93,0xff,0x4,0x0,0x55,0x0,0x7f,0x0, +0x6e,0x0,0x39,0x0,0x18,0x0,0xe2,0xff,0x6f,0xff,0x1b,0xff, +0x8,0xff,0xee,0xfe,0xeb,0xfe,0x2e,0xff,0x75,0xff,0xb6,0xff, +0x14,0x0,0x48,0x0,0x25,0x0,0xe1,0xff,0xaf,0xff,0x93,0xff, +0x7d,0xff,0x8b,0xff,0xec,0xff,0x4b,0x0,0x60,0x0,0x85,0x0, +0xbf,0x0,0xc0,0x0,0xb7,0x0,0xa3,0x0,0x5e,0x0,0x3a,0x0, +0x3a,0x0,0xf8,0xff,0x94,0xff,0x6f,0xff,0x76,0xff,0x57,0xff, +0x3d,0xff,0x84,0xff,0xda,0xff,0xe2,0xff,0xe4,0xff,0xf5,0xff, +0xd0,0xff,0xab,0xff,0xdf,0xff,0xfc,0xff,0xb3,0xff,0xb6,0xff, +0x4,0x0,0xcd,0xff,0xa1,0xff,0x1,0x0,0xdc,0xff,0x41,0xff, +0x44,0xff,0x72,0xff,0x49,0xff,0x5b,0xff,0x9c,0xff,0x97,0xff, +0x90,0xff,0xb9,0xff,0xbb,0xff,0x90,0xff,0x78,0xff,0x76,0xff, +0x7a,0xff,0x76,0xff,0x99,0xff,0xf9,0xff,0x7,0x0,0xc6,0xff, +0xd2,0xff,0xb6,0xff,0x41,0xff,0x48,0xff,0x77,0xff,0x28,0xff, +0x29,0xff,0xbc,0xff,0x11,0x0,0x3c,0x0,0xa5,0x0,0xcb,0x0, +0x85,0x0,0x73,0x0,0x89,0x0,0x4a,0x0,0xf3,0xff,0xbc,0xff, +0x81,0xff,0x69,0xff,0x72,0xff,0x76,0xff,0xb5,0xff,0x1e,0x0, +0x4a,0x0,0x54,0x0,0x56,0x0,0x13,0x0,0xa0,0xff,0x27,0xff, +0x87,0xfe,0x0,0xfe,0x8,0xfe,0x5c,0xfe,0xab,0xfe,0x22,0xff, +0x9a,0xff,0xce,0xff,0x9,0x0,0x48,0x0,0x32,0x0,0x7,0x0, +0xda,0xff,0x65,0xff,0x1b,0xff,0x2c,0xff,0xf7,0xfe,0xb1,0xfe, +0xe3,0xfe,0x31,0xff,0x72,0xff,0xc9,0xff,0xfd,0xff,0x12,0x0, +0xc,0x0,0xb6,0xff,0x5b,0xff,0x35,0xff,0xf8,0xfe,0xba,0xfe, +0xb6,0xfe,0xb5,0xfe,0xaf,0xfe,0xe9,0xfe,0x43,0xff,0x92,0xff, +0xe8,0xff,0x19,0x0,0x1c,0x0,0x2e,0x0,0x34,0x0,0xc,0x0, +0xd3,0xff,0x7d,0xff,0x35,0xff,0x47,0xff,0x81,0xff,0xa6,0xff, +0xcf,0xff,0xfc,0xff,0xfb,0xff,0xea,0xff,0x19,0x0,0x3b,0x0, +0xa,0x0,0xf,0x0,0x4f,0x0,0x45,0x0,0x43,0x0,0x87,0x0, +0x92,0x0,0x78,0x0,0x7a,0x0,0x33,0x0,0x9c,0xff,0x49,0xff, +0x22,0xff,0xb6,0xfe,0x78,0xfe,0xc4,0xfe,0x1d,0xff,0x68,0xff, +0xd3,0xff,0x14,0x0,0x12,0x0,0x3,0x0,0xeb,0xff,0xcd,0xff, +0xb8,0xff,0xbe,0xff,0xe5,0xff,0xfe,0xff,0x13,0x0,0x64,0x0, +0xbd,0x0,0xb9,0x0,0x62,0x0,0xf,0x0,0xe0,0xff,0xac,0xff, +0x68,0xff,0x3d,0xff,0x24,0xff,0x13,0xff,0x46,0xff,0x96,0xff, +0xa5,0xff,0xdc,0xff,0x71,0x0,0xc8,0x0,0xfb,0x0,0x71,0x1, +0x9c,0x1,0x6e,0x1,0x77,0x1,0x67,0x1,0x1,0x1,0xba,0x0, +0x8c,0x0,0x50,0x0,0x45,0x0,0x3e,0x0,0xd,0x0,0xe,0x0, +0x40,0x0,0x5f,0x0,0x90,0x0,0xb5,0x0,0xa9,0x0,0xcb,0x0, +0xdd,0x0,0x72,0x0,0x3a,0x0,0x5e,0x0,0x39,0x0,0x50,0x0, +0x0,0x1,0x3d,0x1,0xc,0x1,0x64,0x1,0xa6,0x1,0x39,0x1, +0xf3,0x0,0xbc,0x0,0x6,0x0,0xad,0xff,0xf0,0xff,0xda,0xff, +0xa4,0xff,0xfc,0xff,0x70,0x0,0x97,0x0,0xd5,0x0,0x3a,0x1, +0x5b,0x1,0x31,0x1,0xfe,0x0,0xb2,0x0,0x53,0x0,0x2e,0x0, +0x24,0x0,0xf1,0xff,0xd8,0xff,0x27,0x0,0x9d,0x0,0xd6,0x0, +0xeb,0x0,0xe,0x1,0x1,0x1,0xbc,0x0,0xa0,0x0,0xa6,0x0, +0x82,0x0,0x66,0x0,0x77,0x0,0x58,0x0,0x1f,0x0,0x54,0x0, +0xa0,0x0,0x84,0x0,0x83,0x0,0xd6,0x0,0xe8,0x0,0xda,0x0, +0xc,0x1,0xf,0x1,0xba,0x0,0x88,0x0,0x60,0x0,0x16,0x0, +0x1d,0x0,0x48,0x0,0x1e,0x0,0x1b,0x0,0x78,0x0,0xb5,0x0, +0xdd,0x0,0x10,0x1,0xff,0x0,0xd4,0x0,0xee,0x0,0xfb,0x0, +0xa3,0x0,0x4c,0x0,0x3f,0x0,0x1e,0x0,0xf1,0xff,0xf,0x0, +0x2b,0x0,0x25,0x0,0x47,0x0,0x68,0x0,0x7f,0x0,0xcd,0x0, +0x0,0x1,0xdf,0x0,0xca,0x0,0xb4,0x0,0x5b,0x0,0x20,0x0, +0x18,0x0,0xe5,0xff,0xde,0xff,0x32,0x0,0x47,0x0,0x34,0x0, +0x71,0x0,0x90,0x0,0x3a,0x0,0xc9,0xff,0x7c,0xff,0x4b,0xff, +0x21,0xff,0x3,0xff,0x3,0xff,0x17,0xff,0x3c,0xff,0x7f,0xff, +0xcb,0xff,0xee,0xff,0xe7,0xff,0xf1,0xff,0xf5,0xff,0xba,0xff, +0x8d,0xff,0x83,0xff,0x39,0xff,0xee,0xfe,0x7,0xff,0x35,0xff, +0x57,0xff,0xb0,0xff,0xc,0x0,0x2d,0x0,0x63,0x0,0xb4,0x0, +0xad,0x0,0x6e,0x0,0x5e,0x0,0x48,0x0,0x15,0x0,0x13,0x0, +0x1d,0x0,0xf2,0xff,0xd0,0xff,0xd9,0xff,0xd1,0xff,0xaf,0xff, +0xa9,0xff,0xc6,0xff,0xc6,0xff,0x9e,0xff,0x8c,0xff,0x72,0xff, +0x2b,0xff,0x26,0xff,0x54,0xff,0x2f,0xff,0xd,0xff,0x32,0xff, +0x38,0xff,0x3d,0xff,0x67,0xff,0x62,0xff,0x4a,0xff,0x40,0xff, +0x11,0xff,0xe3,0xfe,0xc0,0xfe,0x64,0xfe,0xa,0xfe,0xea,0xfd, +0xbe,0xfd,0x8d,0xfd,0x96,0xfd,0xc3,0xfd,0x9,0xfe,0x57,0xfe, +0x67,0xfe,0x6a,0xfe,0x94,0xfe,0x97,0xfe,0x95,0xfe,0xad,0xfe, +0x7b,0xfe,0x49,0xfe,0x6a,0xfe,0x5f,0xfe,0x3c,0xfe,0x6a,0xfe, +0x7e,0xfe,0x47,0xfe,0x4e,0xfe,0xa1,0xfe,0xc2,0xfe,0xba,0xfe, +0xd3,0xfe,0xd8,0xfe,0xc0,0xfe,0xce,0xfe,0xe2,0xfe,0xed,0xfe, +0x23,0xff,0x4c,0xff,0x44,0xff,0x5c,0xff,0x9b,0xff,0x9a,0xff, +0x5d,0xff,0x67,0xff,0x82,0xff,0x4d,0xff,0x4d,0xff,0x86,0xff, +0x55,0xff,0x1e,0xff,0x41,0xff,0x3d,0xff,0x1b,0xff,0x3a,0xff, +0x73,0xff,0x88,0xff,0x6a,0xff,0x63,0xff,0xac,0xff,0xc9,0xff, +0xa2,0xff,0xda,0xff,0x1c,0x0,0xd1,0xff,0xb2,0xff,0xef,0xff, +0x9c,0xff,0x24,0xff,0x52,0xff,0x59,0xff,0xf7,0xfe,0x28,0xff, +0xa8,0xff,0x9f,0xff,0x90,0xff,0xf4,0xff,0x32,0x0,0x18,0x0, +0x36,0x0,0x7f,0x0,0x6d,0x0,0x48,0x0,0x8c,0x0,0xbf,0x0, +0x86,0x0,0x81,0x0,0xcb,0x0,0xb0,0x0,0x73,0x0,0xcf,0x0, +0x3b,0x1,0x1,0x1,0xdc,0x0,0x55,0x1,0x7b,0x1,0x11,0x1, +0x26,0x1,0x86,0x1,0x39,0x1,0xf8,0x0,0x73,0x1,0xaa,0x1, +0x64,0x1,0x98,0x1,0xf4,0x1,0xc0,0x1,0xb0,0x1,0x15,0x2, +0x15,0x2,0xbc,0x1,0xca,0x1,0xff,0x1,0xe2,0x1,0xbf,0x1, +0xd7,0x1,0xd1,0x1,0x92,0x1,0xa5,0x1,0xe,0x2,0x3,0x2, +0xbb,0x1,0xb,0x2,0x54,0x2,0xf3,0x1,0xc8,0x1,0x7,0x2, +0xd4,0x1,0x74,0x1,0x99,0x1,0xbe,0x1,0x75,0x1,0x46,0x1, +0x6f,0x1,0x7d,0x1,0x4b,0x1,0x34,0x1,0x4a,0x1,0x3c,0x1, +0x17,0x1,0x2d,0x1,0x57,0x1,0x2c,0x1,0xd0,0x0,0xc2,0x0, +0xef,0x0,0xef,0x0,0xe4,0x0,0xa,0x1,0x20,0x1,0x14,0x1, +0x21,0x1,0x34,0x1,0x2e,0x1,0x15,0x1,0xd7,0x0,0x93,0x0, +0x6f,0x0,0x46,0x0,0xd,0x0,0xd0,0xff,0xa3,0xff,0xd7,0xff, +0x21,0x0,0xf6,0xff,0xe3,0xff,0x41,0x0,0x63,0x0,0x34,0x0, +0xf1,0xff,0x8a,0xff,0x74,0xff,0xb8,0xff,0x9a,0xff,0x4c,0xff, +0x6f,0xff,0xbc,0xff,0xc4,0xff,0x8e,0xff,0x4e,0xff,0x33,0xff, +0x36,0xff,0x2a,0xff,0x11,0xff,0x6,0xff,0x2,0xff,0xa,0xff, +0x12,0xff,0xff,0xfe,0xd,0xff,0x3a,0xff,0x1f,0xff,0xf8,0xfe, +0x10,0xff,0x1e,0xff,0x35,0xff,0x53,0xff,0xf,0xff,0xd7,0xfe, +0xe,0xff,0x1d,0xff,0xec,0xfe,0xeb,0xfe,0xf7,0xfe,0xd7,0xfe, +0xb4,0xfe,0xa7,0xfe,0x96,0xfe,0x62,0xfe,0x39,0xfe,0x5a,0xfe, +0x9b,0xfe,0x84,0xfe,0x1e,0xfe,0x10,0xfe,0x7c,0xfe,0xdd,0xfe, +0xd4,0xfe,0x3b,0xfe,0xe4,0xfd,0xcf,0xfe,0x9f,0xff,0xe0,0xfe, +0xff,0xfd,0x4d,0xfe,0x17,0xff,0x54,0xff,0xb0,0xfe,0x46,0xfe, +0xd9,0xfe,0x3c,0xff,0xf9,0xfe,0xc9,0xfe,0xb5,0xfe,0xcc,0xfe, +0xea,0xfe,0x8f,0xfe,0x3e,0xfe,0x6a,0xfe,0x90,0xfe,0x71,0xfe, +0x67,0xfe,0xa3,0xfe,0xcc,0xfe,0xa4,0xfe,0x8b,0xfe,0xbb,0xfe, +0xe9,0xfe,0xb5,0xfe,0x64,0xfe,0xa3,0xfe,0xf5,0xfe,0xcb,0xfe, +0xd1,0xfe,0x17,0xff,0x46,0xff,0x6d,0xff,0x33,0xff,0xfe,0xfe, +0x5e,0xff,0x81,0xff,0x2e,0xff,0x16,0xff,0x74,0xff,0x3,0x0, +0xe,0x0,0xb0,0xff,0xac,0xff,0xd8,0xff,0x20,0x0,0x5f,0x0, +0xce,0xff,0x43,0xff,0xd5,0xff,0x5a,0x0,0xd0,0xff,0x2d,0xff, +0x8d,0xff,0x71,0x0,0x9b,0x0,0x1a,0x0,0xe7,0xff,0x1b,0x0, +0x38,0x0,0x53,0x0,0x54,0x0,0xd7,0xff,0xc4,0xff,0x9e,0x0, +0xcf,0x0,0x67,0x0,0xe1,0x0,0x33,0x1,0xa2,0x0,0x8b,0x0, +0xe0,0x0,0xb8,0x0,0x5d,0x0,0x54,0x0,0x9c,0x0,0xc9,0x0, +0xd2,0x0,0x15,0x1,0x59,0x1,0x5d,0x1,0x83,0x1,0xbd,0x1, +0x9f,0x1,0x71,0x1,0x7b,0x1,0x50,0x1,0xfd,0x0,0xe3,0x0, +0x88,0x0,0x7,0x0,0x4b,0x0,0xfd,0x0,0x24,0x1,0xe0,0x0, +0xb,0x1,0xbe,0x1,0xc,0x2,0xfe,0x1,0x2b,0x2,0xfe,0x1, +0x98,0x1,0xc6,0x1,0xd2,0x1,0x57,0x1,0x2c,0x1,0x62,0x1, +0x5e,0x1,0x37,0x1,0x58,0x1,0x82,0x1,0x63,0x1,0x42,0x1, +0x19,0x1,0xd8,0x0,0xcb,0x0,0xb2,0x0,0x78,0x0,0x76,0x0, +0xb3,0x0,0x20,0x1,0x60,0x1,0x82,0x1,0x1f,0x2,0x80,0x2, +0xf,0x2,0xa7,0x1,0x77,0x1,0x27,0x1,0xde,0x0,0x83,0x0, +0x12,0x0,0xe0,0xff,0x25,0x0,0x8c,0x0,0x88,0x0,0x8f,0x0, +0x14,0x1,0x54,0x1,0xf9,0x0,0xb0,0x0,0xd1,0x0,0xe4,0x0, +0x6b,0x0,0xe9,0xff,0xf2,0xff,0x14,0x0,0x27,0x0,0x76,0x0, +0x9d,0x0,0x60,0x0,0x52,0x0,0x78,0x0,0x22,0x0,0xa7,0xff, +0x9f,0xff,0x5e,0xff,0xe2,0xfe,0x6,0xff,0x30,0xff,0x4,0xff, +0x3c,0xff,0x75,0xff,0x4d,0xff,0x71,0xff,0xe2,0xff,0x34,0x0, +0x4a,0x0,0x2f,0x0,0x2c,0x0,0x21,0x0,0xc5,0xff,0x8d,0xff, +0x90,0xff,0x2a,0xff,0x98,0xfe,0x9c,0xfe,0xb9,0xfe,0x66,0xfe, +0x78,0xfe,0xfb,0xfe,0xdb,0xfe,0x95,0xfe,0xe4,0xfe,0xc,0xff, +0xf0,0xfe,0xe5,0xfe,0x99,0xfe,0x42,0xfe,0x34,0xfe,0x18,0xfe, +0xf3,0xfd,0x14,0xfe,0x6d,0xfe,0xb1,0xfe,0xbe,0xfe,0xd9,0xfe, +0xf,0xff,0xa,0xff,0xb9,0xfe,0x4b,0xfe,0xfd,0xfd,0xfd,0xfd, +0x17,0xfe,0x34,0xfe,0x68,0xfe,0x80,0xfe,0x97,0xfe,0xe9,0xfe, +0xd,0xff,0xe0,0xfe,0xe6,0xfe,0xf6,0xfe,0x90,0xfe,0x37,0xfe, +0x63,0xfe,0x79,0xfe,0x39,0xfe,0x1e,0xfe,0x30,0xfe,0x5a,0xfe, +0xa4,0xfe,0xbf,0xfe,0xcc,0xfe,0x21,0xff,0x57,0xff,0x4e,0xff, +0x67,0xff,0x80,0xff,0x91,0xff,0xbe,0xff,0x9b,0xff,0x20,0xff, +0xea,0xfe,0xf0,0xfe,0xcc,0xfe,0xab,0xfe,0xa9,0xfe,0xb2,0xfe, +0xee,0xfe,0x29,0xff,0x14,0xff,0x9,0xff,0x24,0xff,0x4,0xff, +0xc5,0xfe,0xb1,0xfe,0xd1,0xfe,0x2,0xff,0x18,0xff,0x38,0xff, +0x6d,0xff,0x90,0xff,0xc3,0xff,0xd8,0xff,0x9d,0xff,0x9a,0xff, +0xd2,0xff,0xc5,0xff,0x8b,0xff,0x75,0xff,0x94,0xff,0xa1,0xff, +0x4d,0xff,0xfc,0xfe,0xb,0xff,0x28,0xff,0x47,0xff,0x8c,0xff, +0xa4,0xff,0x9b,0xff,0x4,0x0,0x90,0x0,0x7b,0x0,0x39,0x0, +0x71,0x0,0x92,0x0,0x4d,0x0,0x22,0x0,0xd,0x0,0xce,0xff, +0xb4,0xff,0xd4,0xff,0xd9,0xff,0xe7,0xff,0x33,0x0,0x61,0x0, +0x7d,0x0,0xb4,0x0,0xa5,0x0,0x9a,0x0,0xd6,0x0,0xac,0x0, +0x83,0x0,0xf5,0x0,0xe8,0x0,0x69,0x0,0xbf,0x0,0x2b,0x1, +0xd4,0x0,0xa2,0x0,0xb7,0x0,0x91,0x0,0xaf,0x0,0xf4,0x0, +0x9d,0x0,0x36,0x0,0x6e,0x0,0xa8,0x0,0x86,0x0,0x7e,0x0, +0xbd,0x0,0x1b,0x1,0x7d,0x1,0xc3,0x1,0xd9,0x1,0xcd,0x1, +0xdf,0x1,0xfa,0x1,0xb5,0x1,0x4d,0x1,0x5b,0x1,0x74,0x1, +0x19,0x1,0x2,0x1,0x5b,0x1,0x45,0x1,0x1b,0x1,0x84,0x1, +0xae,0x1,0x6f,0x1,0x92,0x1,0xa5,0x1,0x41,0x1,0x2f,0x1, +0x7e,0x1,0x65,0x1,0x18,0x1,0x43,0x1,0x94,0x1,0x92,0x1, +0xad,0x1,0xd2,0x1,0x6b,0x1,0x2f,0x1,0x9d,0x1,0x89,0x1, +0xfb,0x0,0x20,0x1,0x44,0x1,0xd0,0x0,0xdb,0x0,0x5,0x1, +0x72,0x0,0x66,0x0,0xf,0x1,0xd,0x1,0xe3,0x0,0x61,0x1, +0xae,0x1,0x80,0x1,0x71,0x1,0x74,0x1,0x2d,0x1,0xed,0x0, +0x16,0x1,0x21,0x1,0xe1,0x0,0x18,0x1,0x78,0x1,0x3e,0x1, +0xf9,0x0,0x9,0x1,0xf6,0x0,0xa9,0x0,0x75,0x0,0x66,0x0, +0x42,0x0,0x12,0x0,0x10,0x0,0xeb,0xff,0x76,0xff,0x70,0xff, +0x3,0x0,0x42,0x0,0x18,0x0,0x50,0x0,0x95,0x0,0x3f,0x0, +0xe9,0xff,0xdd,0xff,0x7a,0xff,0xf2,0xfe,0xfb,0xfe,0x54,0xff, +0x52,0xff,0x32,0xff,0x91,0xff,0xeb,0xff,0xba,0xff,0x9e,0xff, +0xae,0xff,0x6a,0xff,0xf,0xff,0x1,0xff,0x27,0xff,0xa,0xff, +0xa4,0xfe,0x88,0xfe,0x4a,0xfe,0x8d,0xfd,0x6b,0xfd,0x98,0xfd, +0x11,0xfd,0x16,0xfd,0x6,0xfe,0x49,0xfe,0x3a,0xfe,0xbe,0xfe, +0xe6,0xfe,0xb9,0xfe,0xc,0xff,0xf8,0xfe,0x3e,0xfe,0x13,0xfe, +0x38,0xfe,0xe5,0xfd,0x70,0xfd,0x43,0xfd,0xb4,0xfd,0x44,0xfe, +0x19,0xfe,0x54,0xfe,0x80,0xff,0xce,0xff,0x4f,0xff,0x66,0xff, +0x52,0xff,0xa9,0xfe,0x7a,0xfe,0x91,0xfe,0x3c,0xfe,0x43,0xfe, +0x23,0xff,0xcf,0xff,0xbf,0xff,0xaa,0xff,0xf2,0xff,0x33,0x0, +0x2,0x0,0x8d,0xff,0x59,0xff,0x5d,0xff,0x3d,0xff,0x19,0xff, +0x9,0xff,0xdf,0xfe,0xd0,0xfe,0x29,0xff,0xa5,0xff,0xf5,0xff, +0x49,0x0,0x91,0x0,0xc9,0x0,0x2c,0x1,0xf4,0x0,0x8,0x0, +0xed,0xff,0x1d,0x0,0x50,0xff,0xf1,0xfe,0x68,0xff,0x51,0xff, +0x52,0xff,0xf0,0xff,0xf3,0xff,0x92,0xff,0xbe,0xff,0xf8,0xff, +0xd9,0xff,0x94,0xff,0x43,0xff,0x43,0xff,0x77,0xff,0x42,0xff, +0x21,0xff,0x96,0xff,0xfd,0xff,0x38,0x0,0x86,0x0,0xa7,0x0, +0xc2,0x0,0xed,0x0,0xe2,0x0,0xb7,0x0,0x5d,0x0,0xe3,0xff, +0xce,0xff,0xfb,0xff,0xf4,0xff,0xd8,0xff,0xef,0xff,0x35,0x0, +0x78,0x0,0xa2,0x0,0x94,0x0,0x39,0x0,0x2a,0x0,0x9e,0x0, +0xc6,0x0,0x93,0x0,0xb0,0x0,0xa,0x1,0x5e,0x1,0x93,0x1, +0x57,0x1,0xe5,0x0,0xe5,0x0,0xc,0x1,0xb3,0x0,0x34,0x0, +0x1b,0x0,0x59,0x0,0xc0,0x0,0xd0,0x0,0x79,0x0,0x86,0x0, +0xd0,0x0,0xbd,0x0,0xb5,0x0,0xb5,0x0,0x5b,0x0,0x31,0x0, +0x77,0x0,0x89,0x0,0x3d,0x0,0x13,0x0,0x3c,0x0,0x68,0x0, +0x6b,0x0,0x56,0x0,0x22,0x0,0xdf,0xff,0xa6,0xff,0x7a,0xff, +0x46,0xff,0xe1,0xfe,0x93,0xfe,0xb2,0xfe,0xe9,0xfe,0x1,0xff, +0x16,0xff,0x1c,0xff,0x2f,0xff,0x55,0xff,0x51,0xff,0x1a,0xff, +0xda,0xfe,0xb6,0xfe,0xab,0xfe,0x9c,0xfe,0x7a,0xfe,0x40,0xfe, +0x2a,0xfe,0x68,0xfe,0x95,0xfe,0x9d,0xfe,0xbf,0xfe,0xc5,0xfe, +0xc0,0xfe,0xed,0xfe,0xf2,0xfe,0xb0,0xfe,0x5b,0xfe,0x5,0xfe, +0xd,0xfe,0x79,0xfe,0xa2,0xfe,0x81,0xfe,0x9e,0xfe,0xf7,0xfe, +0x50,0xff,0x8e,0xff,0x60,0xff,0x0,0xff,0x13,0xff,0x3f,0xff, +0x14,0xff,0xfe,0xfe,0xf0,0xfe,0xcd,0xfe,0x12,0xff,0x73,0xff, +0x74,0xff,0x86,0xff,0xc2,0xff,0xe7,0xff,0x3,0x0,0xde,0xff, +0x5e,0xff,0xd,0xff,0x22,0xff,0x2b,0xff,0x0,0xff,0xe4,0xfe, +0xe7,0xfe,0xc,0xff,0x4f,0xff,0x59,0xff,0x4a,0xff,0x7f,0xff, +0x8a,0xff,0x55,0xff,0x53,0xff,0x2e,0xff,0xea,0xfe,0x28,0xff, +0x69,0xff,0x3e,0xff,0x53,0xff,0xaf,0xff,0xc3,0xff,0xc7,0xff, +0xe0,0xff,0xc0,0xff,0x9a,0xff,0xa2,0xff,0x7e,0xff,0x2b,0xff, +0xec,0xfe,0xc0,0xfe,0xde,0xfe,0x38,0xff,0x38,0xff,0x26,0xff, +0x89,0xff,0xd7,0xff,0xcc,0xff,0xdb,0xff,0xfe,0xff,0xf8,0xff, +0x3,0x0,0x3d,0x0,0x60,0x0,0x34,0x0,0x3,0x0,0x31,0x0, +0x94,0x0,0xd8,0x0,0xf,0x1,0x50,0x1,0x78,0x1,0xa4,0x1, +0xe0,0x1,0xb2,0x1,0x2f,0x1,0xea,0x0,0xde,0x0,0x1d,0x1, +0xa1,0x1,0xaf,0x1,0x89,0x1,0xe0,0x1,0x2d,0x2,0x40,0x2, +0x82,0x2,0x75,0x2,0x1,0x2,0xe,0x2,0xb5,0x2,0x2,0x3, +0x9b,0x2,0x3f,0x2,0x6a,0x2,0xc9,0x2,0x30,0x3,0x64,0x3, +0xf,0x3,0xc1,0x2,0x1e,0x3,0xa5,0x3,0x91,0x3,0xe1,0x2, +0x5e,0x2,0xb4,0x2,0x4e,0x3,0x34,0x3,0xc4,0x2,0xbf,0x2, +0x9,0x3,0x72,0x3,0xbd,0x3,0x68,0x3,0xf2,0x2,0x28,0x3, +0x84,0x3,0x7d,0x3,0x2d,0x3,0xa4,0x2,0x6e,0x2,0xe7,0x2, +0x5b,0x3,0x50,0x3,0xf8,0x2,0xa1,0x2,0xaa,0x2,0x1e,0x3, +0x70,0x3,0xa,0x3,0x38,0x2,0xea,0x1,0x20,0x2,0x24,0x2, +0xe0,0x1,0x5c,0x1,0xd3,0x0,0xf7,0x0,0x82,0x1,0xa4,0x1, +0x6e,0x1,0x12,0x1,0xc9,0x0,0x11,0x1,0x4d,0x1,0xc0,0x0, +0x5f,0x0,0xb2,0x0,0xd8,0x0,0xd3,0x0,0xef,0x0,0xae,0x0, +0xa8,0x0,0x48,0x1,0x2e,0x1,0x75,0x0,0x93,0x0,0xd2,0x0, +0x40,0x0,0xc4,0xff,0xa9,0xff,0x50,0xff,0xf6,0xfe,0xef,0xfe, +0x1a,0xff,0xa8,0xff,0x6c,0x0,0x8e,0x0,0x15,0x0,0xd6,0xff, +0xe3,0xff,0xba,0xff,0x1f,0xff,0x4d,0xfe,0xe3,0xfd,0x13,0xfe, +0x52,0xfe,0x51,0xfe,0x49,0xfe,0x48,0xfe,0x3f,0xfe,0x3e,0xfe, +0x51,0xfe,0x53,0xfe,0xa,0xfe,0x7c,0xfd,0x10,0xfd,0x1f,0xfd, +0x54,0xfd,0xd,0xfd,0x94,0xfc,0xbe,0xfc,0x73,0xfd,0xf7,0xfd, +0x0,0xfe,0xa5,0xfd,0x3c,0xfd,0x37,0xfd,0x3f,0xfd,0xab,0xfc, +0xe8,0xfb,0xa7,0xfb,0xc0,0xfb,0xfc,0xfb,0x2b,0xfc,0x4,0xfc, +0xf,0xfc,0xb4,0xfc,0x41,0xfd,0x8b,0xfd,0xe8,0xfd,0xda,0xfd, +0x72,0xfd,0x78,0xfd,0x7b,0xfd,0xe1,0xfc,0x2b,0xfc,0x9e,0xfb, +0x5b,0xfb,0xb6,0xfb,0x16,0xfc,0x1a,0xfc,0x91,0xfc,0x80,0xfd, +0x25,0xfe,0x79,0xfe,0x92,0xfe,0x6b,0xfe,0x5a,0xfe,0x61,0xfe, +0x39,0xfe,0x2,0xfe,0xe1,0xfd,0xe1,0xfd,0xd,0xfe,0x43,0xfe, +0x6f,0xfe,0xaa,0xfe,0xda,0xfe,0x1,0xff,0x66,0xff,0xbd,0xff, +0x74,0xff,0xdd,0xfe,0xa7,0xfe,0xb3,0xfe,0xaa,0xfe,0xaf,0xfe, +0xd2,0xfe,0xf9,0xfe,0x4b,0xff,0xc4,0xff,0x12,0x0,0x39,0x0, +0x4f,0x0,0x32,0x0,0xc,0x0,0x1d,0x0,0x2a,0x0,0xe9,0xff, +0x85,0xff,0x54,0xff,0x65,0xff,0x7e,0xff,0x9c,0xff,0xec,0xff, +0x5f,0x0,0xd5,0x0,0x3a,0x1,0x8c,0x1,0xe8,0x1,0x31,0x2, +0x17,0x2,0xae,0x1,0x2d,0x1,0xbc,0x0,0x83,0x0,0x52,0x0, +0xb,0x0,0xfb,0xff,0x1b,0x0,0x46,0x0,0x9f,0x0,0xe7,0x0, +0xe7,0x0,0xd4,0x0,0xa8,0x0,0x6a,0x0,0x57,0x0,0x4b,0x0, +0x36,0x0,0x3a,0x0,0x40,0x0,0x69,0x0,0xd5,0x0,0x2c,0x1, +0x49,0x1,0x35,0x1,0xed,0x0,0xcc,0x0,0xea,0x0,0xcd,0x0, +0x6b,0x0,0x11,0x0,0xb4,0xff,0x67,0xff,0x58,0xff,0x7d,0xff, +0xb4,0xff,0xdc,0xff,0x1,0x0,0x4a,0x0,0x8a,0x0,0xad,0x0, +0xe6,0x0,0x0,0x1,0xe7,0x0,0xee,0x0,0xfa,0x0,0xe0,0x0, +0xe2,0x0,0x0,0x1,0x14,0x1,0x10,0x1,0xd,0x1,0x48,0x1, +0x71,0x1,0x23,0x1,0xc2,0x0,0x85,0x0,0x38,0x0,0x1,0x0, +0xe1,0xff,0xac,0xff,0xa3,0xff,0xe7,0xff,0x37,0x0,0x77,0x0, +0xb2,0x0,0xd2,0x0,0xc0,0x0,0x9e,0x0,0x8b,0x0,0x78,0x0, +0x72,0x0,0x79,0x0,0x4b,0x0,0xff,0xff,0xf7,0xff,0x1,0x0, +0xd0,0xff,0xa1,0xff,0x9e,0xff,0xa9,0xff,0xc1,0xff,0xd0,0xff, +0xcb,0xff,0xe7,0xff,0xfa,0xff,0xd9,0xff,0xb9,0xff,0x7a,0xff, +0x22,0xff,0x18,0xff,0x18,0xff,0xfb,0xfe,0x38,0xff,0x8e,0xff, +0xa1,0xff,0xea,0xff,0x5f,0x0,0x67,0x0,0xf,0x0,0xb7,0xff, +0x68,0xff,0x11,0xff,0xd9,0xfe,0xe8,0xfe,0x28,0xff,0x8e,0xff, +0x22,0x0,0x93,0x0,0x9d,0x0,0x8e,0x0,0x86,0x0,0x24,0x0, +0x82,0xff,0x26,0xff,0xf7,0xfe,0xc6,0xfe,0xe7,0xfe,0x66,0xff, +0xeb,0xff,0x4f,0x0,0x98,0x0,0xe6,0x0,0x34,0x1,0x23,0x1, +0xa3,0x0,0x21,0x0,0xc5,0xff,0x7a,0xff,0x44,0xff,0x14,0xff, +0xf5,0xfe,0x36,0xff,0xb2,0xff,0xff,0xff,0x44,0x0,0xb3,0x0, +0xea,0x0,0xd1,0x0,0xc4,0x0,0xad,0x0,0x58,0x0,0x0,0x0, +0xbd,0xff,0x82,0xff,0x73,0xff,0x86,0xff,0x91,0xff,0xaf,0xff, +0xd8,0xff,0xde,0xff,0xc5,0xff,0x93,0xff,0x62,0xff,0x50,0xff, +0x36,0xff,0xb,0xff,0x4,0xff,0x21,0xff,0x42,0xff,0x66,0xff, +0xa8,0xff,0x12,0x0,0x80,0x0,0xc2,0x0,0xd1,0x0,0xb6,0x0, +0x6e,0x0,0x2,0x0,0x85,0xff,0x20,0xff,0xf,0xff,0x3b,0xff, +0x6d,0xff,0xcd,0xff,0x3e,0x0,0x69,0x0,0x78,0x0,0x5f,0x0, +0xf4,0xff,0xc0,0xff,0xb3,0xff,0x47,0xff,0xfc,0xfe,0xc,0xff, +0x16,0xff,0x57,0xff,0xc7,0xff,0xfd,0xff,0x4e,0x0,0xee,0x0, +0x44,0x1,0x19,0x1,0xf2,0x0,0xf7,0x0,0x9e,0x0,0xe1,0xff, +0x70,0xff,0x6e,0xff,0x87,0xff,0xd5,0xff,0x58,0x0,0x9f,0x0, +0xbb,0x0,0x17,0x1,0x3e,0x1,0xda,0x0,0x81,0x0,0x41,0x0, +0xcf,0xff,0x93,0xff,0x9a,0xff,0xa2,0xff,0xd1,0xff,0x18,0x0, +0x5d,0x0,0xb3,0x0,0x7,0x1,0x4c,0x1,0x70,0x1,0x52,0x1, +0x1c,0x1,0xfa,0x0,0xe2,0x0,0xbb,0x0,0x96,0x0,0x83,0x0, +0x51,0x0,0x1d,0x0,0x15,0x0,0xe4,0xff,0x9e,0xff,0x88,0xff, +0x51,0xff,0x1f,0xff,0x57,0xff,0xa4,0xff,0xd6,0xff,0x1d,0x0, +0x4e,0x0,0x6a,0x0,0xc3,0x0,0xd,0x1,0xc6,0x0,0xa2,0x0, +0x7,0x1,0xfc,0x0,0xbf,0x0,0x25,0x1,0x41,0x1,0xd4,0x0, +0xc3,0x0,0x8c,0x0,0xd6,0xff,0x80,0xff,0x65,0xff,0xf0,0xfe, +0xb7,0xfe,0xf,0xff,0x5a,0xff,0x94,0xff,0x45,0x0,0xf3,0x0, +0xfc,0x0,0xd7,0x0,0xec,0x0,0xce,0x0,0x5e,0x0,0x2c,0x0, +0x22,0x0,0xb1,0xff,0x81,0xff,0x15,0x0,0x49,0x0,0xe0,0xff, +0xdc,0xff,0xc,0x0,0xd6,0xff,0xa1,0xff,0xc6,0xff,0xd2,0xff, +0x86,0xff,0x8e,0xff,0xed,0xff,0xe7,0xff,0x9,0x0,0x9e,0x0, +0xaf,0x0,0x9c,0x0,0xfc,0x0,0xd7,0x0,0x6e,0x0,0xb2,0x0, +0xa0,0x0,0xde,0xff,0xb3,0xff,0xc0,0xff,0x2e,0xff,0xfb,0xfe, +0x5a,0xff,0x28,0xff,0xbf,0xfe,0xf6,0xfe,0x5c,0xff,0x93,0xff, +0xd3,0xff,0x22,0x0,0x47,0x0,0x34,0x0,0x3f,0x0,0x62,0x0, +0x22,0x0,0xbd,0xff,0xaa,0xff,0xa4,0xff,0x92,0xff,0xac,0xff, +0xb0,0xff,0x8f,0xff,0xbe,0xff,0xe6,0xff,0x63,0xff,0xa,0xff, +0x79,0xff,0x89,0xff,0xe,0xff,0x2c,0xff,0x8a,0xff,0x8d,0xff, +0xdf,0xff,0x51,0x0,0x13,0x0,0xc3,0xff,0x14,0x0,0x47,0x0, +0xed,0xff,0xbb,0xff,0xd8,0xff,0xac,0xff,0x56,0xff,0x51,0xff, +0x70,0xff,0x72,0xff,0x7a,0xff,0x89,0xff,0x94,0xff,0xcd,0xff, +0xc,0x0,0xfa,0xff,0xd0,0xff,0xd7,0xff,0xe3,0xff,0xc9,0xff, +0xb4,0xff,0xf2,0xff,0x40,0x0,0x1f,0x0,0xfd,0xff,0x2f,0x0, +0x8,0x0,0xb0,0xff,0xdb,0xff,0xd7,0xff,0x51,0xff,0x62,0xff, +0xe2,0xff,0xba,0xff,0x7e,0xff,0xd3,0xff,0xd8,0xff,0x80,0xff, +0xb9,0xff,0x27,0x0,0x28,0x0,0x1a,0x0,0x20,0x0,0xa,0x0, +0xfc,0xff,0xf4,0xff,0xbc,0xff,0x69,0xff,0x44,0xff,0x4b,0xff, +0x39,0xff,0xd,0xff,0x13,0xff,0x2b,0xff,0xc,0xff,0x16,0xff, +0x7b,0xff,0x9c,0xff,0x97,0xff,0xfc,0xff,0x35,0x0,0x6,0x0, +0x38,0x0,0x73,0x0,0x12,0x0,0xda,0xff,0x24,0x0,0x20,0x0, +0xde,0xff,0x11,0x0,0x55,0x0,0x1c,0x0,0xdd,0xff,0xcd,0xff, +0x87,0xff,0x53,0xff,0x84,0xff,0xb0,0xff,0xbc,0xff,0xf2,0xff, +0x3a,0x0,0x53,0x0,0x66,0x0,0x9e,0x0,0xb3,0x0,0x8a,0x0, +0x83,0x0,0x96,0x0,0x64,0x0,0x2c,0x0,0x32,0x0,0x17,0x0, +0xd1,0xff,0xe2,0xff,0x1b,0x0,0xa,0x0,0x4,0x0,0x1f,0x0, +0xfb,0xff,0xcf,0xff,0xd7,0xff,0xc1,0xff,0x97,0xff,0xb5,0xff, +0x9,0x0,0x4a,0x0,0x66,0x0,0x5c,0x0,0x3d,0x0,0x48,0x0, +0x57,0x0,0xb,0x0,0xb4,0xff,0xad,0xff,0xb9,0xff,0xcf,0xff, +0xf8,0xff,0x8,0x0,0x11,0x0,0x47,0x0,0x8b,0x0,0x92,0x0, +0x5e,0x0,0x58,0x0,0x77,0x0,0x5b,0x0,0x37,0x0,0x52,0x0, +0x5d,0x0,0x4c,0x0,0x6b,0x0,0x90,0x0,0x88,0x0,0x9c,0x0, +0xa3,0x0,0x61,0x0,0x57,0x0,0x80,0x0,0x57,0x0,0x40,0x0, +0x8b,0x0,0xd3,0x0,0x1,0x1,0x3b,0x1,0x72,0x1,0x7a,0x1, +0x6a,0x1,0x80,0x1,0x61,0x1,0xef,0x0,0xdd,0x0,0x3,0x1, +0xc7,0x0,0xa3,0x0,0xd6,0x0,0xc9,0x0,0xa2,0x0,0xd2,0x0, +0xdb,0x0,0x9a,0x0,0xb0,0x0,0xcf,0x0,0x80,0x0,0x58,0x0, +0x5e,0x0,0x1f,0x0,0xdb,0xff,0xb8,0xff,0x9d,0xff,0x83,0xff, +0x70,0xff,0xa5,0xff,0xc8,0xff,0x7d,0xff,0x93,0xff,0xe3,0xff, +0x82,0xff,0x32,0xff,0x58,0xff,0x0,0xff,0xaa,0xfe,0x10,0xff, +0x21,0xff,0xb7,0xfe,0xfb,0xfe,0x6d,0xff,0x58,0xff,0x7a,0xff, +0xac,0xff,0x71,0xff,0x66,0xff,0x66,0xff,0x1b,0xff,0xe7,0xfe, +0xc6,0xfe,0xd3,0xfe,0xb,0xff,0xf3,0xfe,0x1b,0xff,0xa3,0xff, +0x93,0xff,0x50,0xff,0x79,0xff,0x64,0xff,0x4,0xff,0xf6,0xfe, +0x1,0xff,0xd3,0xfe,0xda,0xfe,0x15,0xff,0xf5,0xfe,0xce,0xfe, +0x13,0xff,0x37,0xff,0xfd,0xfe,0xe0,0xfe,0x11,0xff,0x1c,0xff, +0xd1,0xfe,0xcc,0xfe,0xf3,0xfe,0xa7,0xfe,0x82,0xfe,0xb3,0xfe, +0x89,0xfe,0x6c,0xfe,0xa9,0xfe,0xaf,0xfe,0x9c,0xfe,0xc1,0xfe, +0xf0,0xfe,0xe4,0xfe,0xab,0xfe,0xa1,0xfe,0xc7,0xfe,0xc5,0xfe, +0xa0,0xfe,0x8a,0xfe,0x7d,0xfe,0x6d,0xfe,0x9b,0xfe,0xe0,0xfe, +0xc2,0xfe,0xd1,0xfe,0x3e,0xff,0x29,0xff,0xfe,0xfe,0x2a,0xff, +0xf3,0xfe,0xc0,0xfe,0x4,0xff,0x11,0xff,0xf4,0xfe,0x6,0xff, +0x2b,0xff,0x54,0xff,0x4f,0xff,0x32,0xff,0x52,0xff,0x8c,0xff, +0xaa,0xff,0xaf,0xff,0x9d,0xff,0x8a,0xff,0xaa,0xff,0xee,0xff, +0xf4,0xff,0xc8,0xff,0xc0,0xff,0xde,0xff,0x1b,0x0,0x43,0x0, +0x48,0x0,0x7d,0x0,0x9c,0x0,0x91,0x0,0xb2,0x0,0xb2,0x0, +0xbd,0x0,0xf7,0x0,0xb6,0x0,0x81,0x0,0xce,0x0,0xbc,0x0, +0x98,0x0,0xfe,0x0,0x3c,0x1,0x2c,0x1,0x3d,0x1,0x5e,0x1, +0x81,0x1,0xac,0x1,0x93,0x1,0x36,0x1,0xfc,0x0,0xf3,0x0, +0x1,0x1,0x16,0x1,0xe2,0x0,0xc6,0x0,0xb,0x1,0xeb,0x0, +0xc4,0x0,0x24,0x1,0x0,0x1,0xac,0x0,0x5,0x1,0xe6,0x0, +0x62,0x0,0xb5,0x0,0xd,0x1,0x99,0x0,0x5c,0x0,0xbd,0x0, +0xcb,0x0,0x72,0x0,0x9f,0x0,0x23,0x1,0x1f,0x1,0xe2,0x0, +0x19,0x1,0x4f,0x1,0xf1,0x0,0xbe,0x0,0xa,0x1,0xbf,0x0, +0x3d,0x0,0x89,0x0,0xc6,0x0,0x9b,0x0,0xa7,0x0,0xa7,0x0, +0x9d,0x0,0xa2,0x0,0x7b,0x0,0x78,0x0,0x83,0x0,0x6c,0x0, +0x99,0x0,0xc1,0x0,0xaf,0x0,0xe0,0x0,0x28,0x1,0x26,0x1, +0x22,0x1,0x31,0x1,0xc,0x1,0xe6,0x0,0xec,0x0,0xb6,0x0, +0x64,0x0,0x5f,0x0,0x59,0x0,0x45,0x0,0x41,0x0,0x2a,0x0, +0x49,0x0,0x6c,0x0,0x2f,0x0,0x36,0x0,0x89,0x0,0x86,0x0, +0x6d,0x0,0x80,0x0,0x8b,0x0,0x7e,0x0,0x82,0x0,0xac,0x0, +0x9e,0x0,0x60,0x0,0x5f,0x0,0x53,0x0,0x22,0x0,0x32,0x0, +0x4e,0x0,0xd,0x0,0xac,0xff,0xbc,0xff,0xf9,0xff,0xbb,0xff, +0x8c,0xff,0xcf,0xff,0xd4,0xff,0xc4,0xff,0xa,0x0,0x24,0x0, +0xf8,0xff,0x10,0x0,0x4f,0x0,0x10,0x0,0x8f,0xff,0xb4,0xff, +0x8,0x0,0xb6,0xff,0x62,0xff,0x8d,0xff,0xaf,0xff,0x98,0xff, +0xa2,0xff,0xd5,0xff,0xc4,0xff,0x94,0xff,0xc2,0xff,0xe4,0xff, +0xbb,0xff,0xbe,0xff,0xd4,0xff,0xbf,0xff,0xc0,0xff,0xf7,0xff, +0x1f,0x0,0x13,0x0,0xf,0x0,0xe,0x0,0xef,0xff,0xfc,0xff, +0xb,0x0,0xcb,0xff,0xb3,0xff,0xd1,0xff,0xb9,0xff,0x87,0xff, +0x7c,0xff,0xa8,0xff,0xc4,0xff,0xa5,0xff,0xc1,0xff,0x1d,0x0, +0x38,0x0,0x30,0x0,0x44,0x0,0x46,0x0,0x12,0x0,0xe5,0xff, +0xff,0xff,0x2,0x0,0xba,0xff,0xa0,0xff,0xbd,0xff,0xb8,0xff, +0xb1,0xff,0xcb,0xff,0xc5,0xff,0x88,0xff,0x63,0xff,0x69,0xff, +0x50,0xff,0x19,0xff,0xf1,0xfe,0xe6,0xfe,0x0,0xff,0x1e,0xff, +0x3c,0xff,0x7e,0xff,0xac,0xff,0xbb,0xff,0xcd,0xff,0xc1,0xff, +0x9b,0xff,0x73,0xff,0x48,0xff,0x37,0xff,0x39,0xff,0x2f,0xff, +0x31,0xff,0x4e,0xff,0x7e,0xff,0x90,0xff,0x70,0xff,0x73,0xff, +0xb3,0xff,0xd1,0xff,0xb6,0xff,0x98,0xff,0x8b,0xff,0x7a,0xff, +0x72,0xff,0x82,0xff,0x7d,0xff,0x61,0xff,0x77,0xff,0xad,0xff, +0xaf,0xff,0x8c,0xff,0x9b,0xff,0xc1,0xff,0xa7,0xff,0x87,0xff, +0xa5,0xff,0xb6,0xff,0xb4,0xff,0xd9,0xff,0xe0,0xff,0xc0,0xff, +0xe0,0xff,0x5,0x0,0xdc,0xff,0xc8,0xff,0xe3,0xff,0xc8,0xff, +0x96,0xff,0x91,0xff,0x85,0xff,0x6a,0xff,0x61,0xff,0x5c,0xff, +0x66,0xff,0x84,0xff,0x9e,0xff,0xaf,0xff,0xb0,0xff,0xb3,0xff, +0xcb,0xff,0xbe,0xff,0x95,0xff,0xa0,0xff,0xc5,0xff,0xd0,0xff, +0xd7,0xff,0xdd,0xff,0xeb,0xff,0x12,0x0,0x2a,0x0,0x21,0x0, +0xb,0x0,0xf6,0xff,0xfd,0xff,0xfc,0xff,0xda,0xff,0xf3,0xff, +0x2d,0x0,0x25,0x0,0x3e,0x0,0x90,0x0,0xa2,0x0,0x9f,0x0, +0xba,0x0,0xa4,0x0,0x77,0x0,0x78,0x0,0x7b,0x0,0x68,0x0, +0x5f,0x0,0x6f,0x0,0x93,0x0,0xa7,0x0,0x94,0x0,0x8f,0x0, +0xab,0x0,0xb0,0x0,0xa4,0x0,0x95,0x0,0x77,0x0,0x8e,0x0, +0xcf,0x0,0xcc,0x0,0xbf,0x0,0xf1,0x0,0x9,0x1,0xf8,0x0, +0xd,0x1,0x23,0x1,0xfd,0x0,0xda,0x0,0xeb,0x0,0xfe,0x0, +0x3,0x1,0xe,0x1,0x8,0x1,0xfb,0x0,0x5,0x1,0xd,0x1, +0xc,0x1,0xfb,0x0,0xc8,0x0,0xb2,0x0,0xe9,0x0,0x24,0x1, +0x16,0x1,0x11,0x1,0x5d,0x1,0x6e,0x1,0x2b,0x1,0x24,0x1, +0xc,0x1,0xb1,0x0,0xc4,0x0,0x13,0x1,0xf1,0x0,0xba,0x0, +0xde,0x0,0xc,0x1,0xfb,0x0,0xde,0x0,0xda,0x0,0xc2,0x0, +0xa1,0x0,0xab,0x0,0xb8,0x0,0x91,0x0,0x55,0x0,0x3d,0x0, +0x35,0x0,0x29,0x0,0x3a,0x0,0x43,0x0,0x1f,0x0,0x1a,0x0, +0x3c,0x0,0x40,0x0,0x30,0x0,0x1b,0x0,0x3,0x0,0x1,0x0, +0x1e,0x0,0x2a,0x0,0x5,0x0,0xfa,0xff,0x14,0x0,0x3,0x0, +0x2,0x0,0x17,0x0,0xe1,0xff,0xca,0xff,0x1,0x0,0xed,0xff, +0xa7,0xff,0x8b,0xff,0x75,0xff,0x64,0xff,0x71,0xff,0x71,0xff, +0x5c,0xff,0x5b,0xff,0x79,0xff,0x9c,0xff,0xb5,0xff,0x9f,0xff, +0x5a,0xff,0x4a,0xff,0x6e,0xff,0x6c,0xff,0x52,0xff,0x4b,0xff, +0x56,0xff,0x63,0xff,0x68,0xff,0x81,0xff,0x9e,0xff,0x97,0xff, +0x97,0xff,0xb4,0xff,0xc8,0xff,0xc6,0xff,0xad,0xff,0x91,0xff, +0x7a,0xff,0x6f,0xff,0x90,0xff,0xb4,0xff,0xb6,0xff,0xcf,0xff, +0x20,0x0,0x70,0x0,0x84,0x0,0x9b,0x0,0x2,0x1,0x60,0x1, +0x70,0x1,0x52,0x1,0xe0,0x0,0x19,0x0,0x48,0xff,0x8e,0xfe, +0x7,0xfe,0x9c,0xfd,0x56,0xfd,0x89,0xfd,0xf8,0xfd,0x31,0xfe, +0x60,0xfe,0xa7,0xfe,0xdc,0xfe,0xfe,0xfe,0x1b,0xff,0x10,0xff, +0xd5,0xfe,0xb9,0xfe,0xc9,0xfe,0xcf,0xfe,0xd3,0xfe,0xed,0xfe, +0x1e,0xff,0x6d,0xff,0xa4,0xff,0xaa,0xff,0xa3,0xff,0x8a,0xff, +0x4f,0xff,0xe,0xff,0xd6,0xfe,0x91,0xfe,0x60,0xfe,0x83,0xfe, +0xd3,0xfe,0x23,0xff,0x9a,0xff,0x15,0x0,0x72,0x0,0xd5,0x0, +0x8,0x1,0x4,0x1,0x8,0x1,0xe3,0x0,0x96,0x0,0x61,0x0, +0x24,0x0,0xd2,0xff,0x94,0xff,0x7c,0xff,0x80,0xff,0x97,0xff, +0xcb,0xff,0x1d,0x0,0x5c,0x0,0x80,0x0,0x9d,0x0,0x93,0x0, +0x48,0x0,0xfc,0xff,0xe9,0xff,0xd6,0xff,0x4d,0xff,0x2e,0xfe, +0x1c,0xfd,0xdf,0xfc,0x7,0xfd,0xaa,0xfc,0xd,0xfc,0xd3,0xfb, +0x1f,0xfc,0xdc,0xfc,0x7f,0xfd,0x91,0xfd,0x95,0xfd,0x17,0xfe, +0xbb,0xfe,0xde,0xfe,0x65,0xfe,0x5,0xfe,0x6a,0xfe,0x15,0xff, +0x1f,0xff,0xc5,0xfe,0xb9,0xfe,0xf2,0xfe,0x45,0xff,0x68,0xff, +0xba,0xfe,0xac,0xfd,0x58,0xfd,0xae,0xfd,0xfc,0xfd,0xd1,0xfd, +0x3b,0xfd,0x35,0xfd,0x49,0xfe,0x68,0xff,0xcb,0xff,0xf3,0xff, +0x41,0x0,0x94,0x0,0xec,0x0,0x1b,0x1,0xcb,0x0,0x3e,0x0, +0xa,0x0,0x27,0x0,0x15,0x0,0xbd,0xff,0x90,0xff,0xcb,0xff, +0x2c,0x0,0x70,0x0,0xa4,0x0,0xcc,0x0,0xd8,0x0,0xfe,0x0, +0x73,0x1,0xa7,0x1,0x2e,0x1,0xc3,0x0,0xf1,0x0,0x64,0x1, +0xc0,0x1,0x9d,0x1,0x7,0x1,0xff,0x0,0xa9,0x1,0x8,0x2, +0xd9,0x1,0x58,0x1,0xbc,0x0,0xa7,0x0,0x13,0x1,0x13,0x1, +0xa8,0x0,0xb4,0x0,0x3a,0x1,0xba,0x1,0xd,0x2,0x2a,0x2, +0x3d,0x2,0x9c,0x2,0xc,0x3,0x5,0x3,0xa0,0x2,0x68,0x2, +0x84,0x2,0xa9,0x2,0xaa,0x2,0x71,0x2,0x14,0x2,0x18,0x2, +0xa7,0x2,0x10,0x3,0xed,0x2,0xb2,0x2,0xd6,0x2,0x2d,0x3, +0x68,0x3,0x86,0x3,0x8f,0x3,0x7c,0x3,0x89,0x3,0xd8,0x3, +0xff,0x3,0xc7,0x3,0xb6,0x3,0x7,0x4,0x1e,0x4,0xdf,0x3, +0xb6,0x3,0x8b,0x3,0x70,0x3,0x85,0x3,0x2f,0x3,0x9d,0x2, +0xa8,0x2,0xe3,0x2,0xd7,0x2,0xe5,0x2,0xc8,0x2,0x6d,0x2, +0x90,0x2,0xeb,0x2,0xd0,0x2,0xa4,0x2,0x7d,0x2,0x1f,0x2, +0x24,0x2,0x73,0x2,0x26,0x2,0x9f,0x1,0x77,0x1,0x61,0x1, +0x50,0x1,0x36,0x1,0xd9,0x0,0x95,0x0,0xa3,0x0,0xa6,0x0, +0x62,0x0,0x7,0x0,0x6,0x0,0x6a,0x0,0x88,0x0,0x21,0x0, +0xd3,0xff,0xe1,0xff,0xda,0xff,0x9e,0xff,0x65,0xff,0x1c,0xff, +0xd7,0xfe,0xd0,0xfe,0xb6,0xfe,0x67,0xfe,0x48,0xfe,0x30,0xfe, +0xcc,0xfd,0x8a,0xfd,0xb3,0xfd,0xce,0xfd,0xa1,0xfd,0x81,0xfd, +0x9a,0xfd,0xc9,0xfd,0xf9,0xfd,0x4,0xfe,0xe4,0xfd,0xe7,0xfd, +0xd,0xfe,0x1a,0xfe,0x1a,0xfe,0x20,0xfe,0x1c,0xfe,0x13,0xfe, +0xea,0xfd,0xa7,0xfd,0xad,0xfd,0xdf,0xfd,0x96,0xfd,0x12,0xfd, +0x1b,0xfd,0x60,0xfd,0x52,0xfd,0x34,0xfd,0x34,0xfd,0x4e,0xfd, +0x99,0xfd,0xc9,0xfd,0xb6,0xfd,0xcb,0xfd,0xe,0xfe,0x17,0xfe, +0xf3,0xfd,0xde,0xfd,0xc7,0xfd,0xa6,0xfd,0x9f,0xfd,0x9c,0xfd, +0x8d,0xfd,0x95,0xfd,0xa8,0xfd,0xaa,0xfd,0xbb,0xfd,0xcf,0xfd, +0xb0,0xfd,0x6c,0xfd,0x3d,0xfd,0x58,0xfd,0xa3,0xfd,0xaf,0xfd, +0x80,0xfd,0x9d,0xfd,0x4,0xfe,0x48,0xfe,0x64,0xfe,0x68,0xfe, +0x67,0xfe,0x9d,0xfe,0xdf,0xfe,0xce,0xfe,0x93,0xfe,0x64,0xfe, +0x39,0xfe,0x3a,0xfe,0x64,0xfe,0x5b,0xfe,0x24,0xfe,0x2c,0xfe, +0x78,0xfe,0xb9,0xfe,0xe8,0xfe,0x1e,0xff,0x43,0xff,0x67,0xff, +0x9e,0xff,0xbf,0xff,0xc6,0xff,0xc5,0xff,0xd2,0xff,0x6,0x0, +0x2e,0x0,0x26,0x0,0x34,0x0,0x67,0x0,0x78,0x0,0x6c,0x0, +0x63,0x0,0x50,0x0,0x46,0x0,0x4c,0x0,0x4b,0x0,0x61,0x0, +0x8e,0x0,0xa7,0x0,0xd0,0x0,0x5,0x1,0xb,0x1,0x3,0x1, +0xfa,0x0,0xd6,0x0,0xd1,0x0,0xed,0x0,0xe7,0x0,0xd1,0x0, +0xbf,0x0,0xb7,0x0,0xc6,0x0,0xc1,0x0,0x96,0x0,0x67,0x0, +0x3f,0x0,0x3b,0x0,0x68,0x0,0x87,0x0,0x87,0x0,0x97,0x0, +0xa6,0x0,0x9f,0x0,0xaa,0x0,0xc6,0x0,0xbc,0x0,0x9e,0x0, +0x92,0x0,0x82,0x0,0x61,0x0,0x43,0x0,0x35,0x0,0x27,0x0, +0x4,0x0,0xdc,0xff,0xd4,0xff,0xde,0xff,0xd8,0xff,0xd3,0xff, +0xe1,0xff,0xe7,0xff,0xe4,0xff,0xff,0xff,0x29,0x0,0x2c,0x0, +0x16,0x0,0x2d,0x0,0x60,0x0,0x60,0x0,0x4d,0x0,0x6c,0x0, +0x7a,0x0,0x54,0x0,0x42,0x0,0x36,0x0,0xd,0x0,0x9,0x0, +0x18,0x0,0xfd,0xff,0xf1,0xff,0x12,0x0,0x2b,0x0,0x35,0x0, +0x48,0x0,0x53,0x0,0x5c,0x0,0x6c,0x0,0x75,0x0,0x7c,0x0, +0x90,0x0,0x96,0x0,0x93,0x0,0xad,0x0,0xc5,0x0,0xb3,0x0, +0x95,0x0,0x7c,0x0,0x51,0x0,0x2c,0x0,0x25,0x0,0x9,0x0, +0xd3,0xff,0xca,0xff,0xe1,0xff,0xf2,0xff,0x1a,0x0,0x4d,0x0, +0x5b,0x0,0x62,0x0,0x6e,0x0,0x58,0x0,0x3c,0x0,0x58,0x0, +0x7e,0x0,0x73,0x0,0x6b,0x0,0x75,0x0,0x60,0x0,0x44,0x0, +0x42,0x0,0x28,0x0,0xe5,0xff,0xbb,0xff,0xc5,0xff,0xc6,0xff, +0xc0,0xff,0x2,0x0,0x4a,0x0,0x37,0x0,0x33,0x0,0x75,0x0, +0x71,0x0,0x29,0x0,0x21,0x0,0x3c,0x0,0x2b,0x0,0x25,0x0, +0x47,0x0,0x50,0x0,0x46,0x0,0x50,0x0,0x4c,0x0,0x2e,0x0, +0x2f,0x0,0x50,0x0,0x47,0x0,0x17,0x0,0x1,0x0,0xfb,0xff, +0xfd,0xff,0x24,0x0,0x2b,0x0,0xc,0x0,0x39,0x0,0x77,0x0, +0x71,0x0,0x7e,0x0,0x96,0x0,0x7a,0x0,0x63,0x0,0x63,0x0, +0x52,0x0,0x46,0x0,0x4f,0x0,0x51,0x0,0x45,0x0,0x3a,0x0, +0x35,0x0,0x35,0x0,0x39,0x0,0x32,0x0,0x20,0x0,0x25,0x0, +0x36,0x0,0x3c,0x0,0x4c,0x0,0x57,0x0,0x40,0x0,0x2c,0x0, +0x37,0x0,0x48,0x0,0x46,0x0,0x3c,0x0,0x3c,0x0,0x34,0x0, +0x15,0x0,0x9,0x0,0x19,0x0,0x3,0x0,0xe2,0xff,0xf9,0xff, +0x5,0x0,0xf7,0xff,0x22,0x0,0x33,0x0,0xf8,0xff,0xee,0xff, +0xf8,0xff,0xd6,0xff,0xe9,0xff,0x18,0x0,0x8,0x0,0xc,0x0, +0x2e,0x0,0x27,0x0,0x2e,0x0,0x48,0x0,0x18,0x0,0xd5,0xff, +0xdf,0xff,0xeb,0xff,0xc4,0xff,0xc1,0xff,0xdf,0xff,0xc6,0xff, +0xa7,0xff,0xce,0xff,0xfd,0xff,0xa,0x0,0x28,0x0,0x43,0x0, +0x35,0x0,0x33,0x0,0x51,0x0,0x52,0x0,0x3c,0x0,0x3a,0x0, +0x3d,0x0,0x3a,0x0,0x2f,0x0,0x2c,0x0,0x4f,0x0,0x59,0x0, +0x1d,0x0,0x2,0x0,0xb,0x0,0xfe,0xff,0x2a,0x0,0x64,0x0, +0x32,0x0,0x1d,0x0,0x6c,0x0,0x6b,0x0,0x2d,0x0,0x3a,0x0, +0x3c,0x0,0x1b,0x0,0x42,0x0,0x65,0x0,0x35,0x0,0x2d,0x0, +0x5c,0x0,0x4d,0x0,0x25,0x0,0x30,0x0,0x4c,0x0,0x60,0x0, +0x58,0x0,0x40,0x0,0x46,0x0,0x3f,0x0,0x1e,0x0,0x21,0x0, +0x15,0x0,0xe6,0xff,0xfd,0xff,0x37,0x0,0x25,0x0,0x1c,0x0, +0x4f,0x0,0x3c,0x0,0x8,0x0,0x3f,0x0,0x57,0x0,0x6,0x0, +0x11,0x0,0x44,0x0,0x5,0x0,0xe5,0xff,0x12,0x0,0x5,0x0, +0x7,0x0,0x53,0x0,0x62,0x0,0x3c,0x0,0x5c,0x0,0x88,0x0, +0x62,0x0,0x33,0x0,0x26,0x0,0x1,0x0,0xee,0xff,0x13,0x0, +0x24,0x0,0x1e,0x0,0x41,0x0,0x75,0x0,0x87,0x0,0x76,0x0, +0x6c,0x0,0x7d,0x0,0x74,0x0,0x4d,0x0,0x53,0x0,0x66,0x0, +0x3b,0x0,0x23,0x0,0x40,0x0,0x2a,0x0,0xb,0x0,0x30,0x0, +0x36,0x0,0x19,0x0,0x4c,0x0,0x7f,0x0,0x5e,0x0,0x55,0x0, +0x78,0x0,0x6a,0x0,0x44,0x0,0x47,0x0,0x3f,0x0,0x16,0x0, +0x24,0x0,0x4f,0x0,0x2f,0x0,0xc,0x0,0x2c,0x0,0x21,0x0, +0xf1,0xff,0x5,0x0,0x15,0x0,0xe4,0xff,0xdd,0xff,0x19,0x0, +0x27,0x0,0x5,0x0,0x18,0x0,0x49,0x0,0x45,0x0,0x41,0x0, +0x77,0x0,0x8d,0x0,0x71,0x0,0x86,0x0,0x97,0x0,0x59,0x0, +0x31,0x0,0x42,0x0,0x26,0x0,0xf3,0xff,0xf7,0xff,0xf8,0xff, +0xda,0xff,0xf4,0xff,0x38,0x0,0x42,0x0,0x3a,0x0,0x78,0x0, +0xab,0x0,0x8a,0x0,0x73,0x0,0x84,0x0,0x60,0x0,0x31,0x0, +0x46,0x0,0x4b,0x0,0x35,0x0,0x64,0x0,0x93,0x0,0x71,0x0, +0x57,0x0,0x58,0x0,0x2e,0x0,0xe7,0xff,0xbc,0xff,0xaa,0xff, +0x92,0xff,0x92,0xff,0xc0,0xff,0xdb,0xff,0xdd,0xff,0xb,0x0, +0x40,0x0,0x3b,0x0,0x2c,0x0,0x39,0x0,0x29,0x0,0xe8,0xff, +0xbd,0xff,0xa5,0xff,0x70,0xff,0x58,0xff,0x70,0xff,0x6c,0xff, +0x6c,0xff,0x9b,0xff,0xbb,0xff,0xb8,0xff,0xbd,0xff,0xc4,0xff, +0xae,0xff,0x96,0xff,0x8f,0xff,0x72,0xff,0x4c,0xff,0x46,0xff, +0x3b,0xff,0x30,0xff,0x45,0xff,0x4c,0xff,0x50,0xff,0x71,0xff, +0x7a,0xff,0x65,0xff,0x52,0xff,0x27,0xff,0xf3,0xfe,0xe2,0xfe, +0xd4,0xfe,0xb3,0xfe,0xba,0xfe,0xec,0xfe,0xd,0xff,0x2f,0xff, +0x63,0xff,0x69,0xff,0x4f,0xff,0x56,0xff,0x51,0xff,0x23,0xff, +0x0,0xff,0xf6,0xfe,0xf2,0xfe,0xf0,0xfe,0xe6,0xfe,0xed,0xfe, +0x18,0xff,0x32,0xff,0x31,0xff,0x3e,0xff,0x3e,0xff,0x33,0xff, +0x42,0xff,0x38,0xff,0x1c,0xff,0x2e,0xff,0x38,0xff,0x2c,0xff, +0x52,0xff,0x6e,0xff,0x55,0xff,0x5b,0xff,0x6d,0xff,0x4f,0xff, +0x34,0xff,0x38,0xff,0x33,0xff,0x24,0xff,0x23,0xff,0x34,0xff, +0x44,0xff,0x45,0xff,0x51,0xff,0x68,0xff,0x64,0xff,0x65,0xff, +0x87,0xff,0x96,0xff,0x8f,0xff,0x98,0xff,0xa0,0xff,0xa1,0xff, +0xae,0xff,0xb0,0xff,0x9d,0xff,0x8a,0xff,0x81,0xff,0x78,0xff, +0x66,0xff,0x5b,0xff,0x5d,0xff,0x56,0xff,0x60,0xff,0x7d,0xff, +0x80,0xff,0x84,0xff,0xa7,0xff,0xba,0xff,0xb5,0xff,0xc7,0xff, +0xde,0xff,0xd7,0xff,0xd7,0xff,0xe5,0xff,0xe1,0xff,0xd8,0xff, +0xd2,0xff,0xc1,0xff,0xbc,0xff,0xbb,0xff,0xaf,0xff,0xb3,0xff, +0xbb,0xff,0xb8,0xff,0xc8,0xff,0xe9,0xff,0xf6,0xff,0xfb,0xff, +0xd,0x0,0x1d,0x0,0x25,0x0,0x34,0x0,0x2f,0x0,0x24,0x0, +0x48,0x0,0x69,0x0,0x5f,0x0,0x6c,0x0,0x85,0x0,0x85,0x0, +0x92,0x0,0x95,0x0,0x7a,0x0,0x6d,0x0,0x77,0x0,0x7d,0x0, +0x81,0x0,0x87,0x0,0x89,0x0,0x8a,0x0,0x99,0x0,0xaa,0x0, +0xa7,0x0,0x9e,0x0,0x99,0x0,0x9c,0x0,0xa6,0x0,0xa0,0x0, +0x94,0x0,0x8e,0x0,0x7b,0x0,0x74,0x0,0x7e,0x0,0x70,0x0, +0x59,0x0,0x5a,0x0,0x62,0x0,0x64,0x0,0x65,0x0,0x61,0x0, +0x54,0x0,0x54,0x0,0x64,0x0,0x63,0x0,0x53,0x0,0x58,0x0, +0x5a,0x0,0x41,0x0,0x2e,0x0,0x2a,0x0,0x1a,0x0,0x10,0x0, +0x1c,0x0,0x26,0x0,0x2a,0x0,0x38,0x0,0x41,0x0,0x44,0x0, +0x4d,0x0,0x51,0x0,0x50,0x0,0x51,0x0,0x50,0x0,0x55,0x0, +0x5c,0x0,0x55,0x0,0x48,0x0,0x46,0x0,0x52,0x0,0x5d,0x0, +0x66,0x0,0x71,0x0,0x73,0x0,0x81,0x0,0x9f,0x0,0xa4,0x0, +0x96,0x0,0x93,0x0,0x95,0x0,0xa5,0x0,0xbc,0x0,0xb6,0x0, +0xaf,0x0,0xbf,0x0,0xc4,0x0,0xb8,0x0,0xbb,0x0,0xbf,0x0, +0xaf,0x0,0xad,0x0,0xb7,0x0,0xb2,0x0,0xae,0x0,0xac,0x0, +0xa9,0x0,0xb0,0x0,0xa9,0x0,0xa0,0x0,0xb0,0x0,0xb6,0x0, +0xb1,0x0,0xaa,0x0,0x86,0x0,0x62,0x0,0x57,0x0,0x49,0x0, +0x34,0x0,0x1e,0x0,0x9,0x0,0x2,0x0,0x5,0x0,0xa,0x0, +0x5,0x0,0xed,0xff,0xdf,0xff,0xe4,0xff,0xd6,0xff,0xb9,0xff, +0xad,0xff,0xa6,0xff,0x92,0xff,0x8e,0xff,0x92,0xff,0x81,0xff, +0x74,0xff,0x77,0xff,0x6d,0xff,0x64,0xff,0x62,0xff,0x54,0xff, +0x41,0xff,0x33,0xff,0x34,0xff,0x37,0xff,0x1f,0xff,0x10,0xff, +0x27,0xff,0x3d,0xff,0x42,0xff,0x47,0xff,0x4b,0xff,0x46,0xff, +0x46,0xff,0x56,0xff,0x56,0xff,0x42,0xff,0x3d,0xff,0x47,0xff, +0x57,0xff,0x6b,0xff,0x6e,0xff,0x6d,0xff,0x70,0xff,0x70,0xff, +0x7e,0xff,0x88,0xff,0x6e,0xff,0x5e,0xff,0x6c,0xff,0x79,0xff, +0x80,0xff,0x86,0xff,0x89,0xff,0x90,0xff,0x9f,0xff,0xb2,0xff, +0xb5,0xff,0xaa,0xff,0xae,0xff,0xc4,0xff,0xc5,0xff,0xa7,0xff, +0x90,0xff,0x8e,0xff,0x90,0xff,0xa0,0xff,0xba,0xff,0xb4,0xff, +0x9e,0xff,0xa4,0xff,0xb6,0xff,0xc4,0xff,0xc9,0xff,0xba,0xff, +0xac,0xff,0xc8,0xff,0xfb,0xff,0xf,0x0,0x1,0x0,0xea,0xff, +0xe7,0xff,0x6,0x0,0x27,0x0,0x2b,0x0,0x2b,0x0,0x3e,0x0, +0x58,0x0,0x6f,0x0,0x6f,0x0,0x4f,0x0,0x2d,0x0,0x32,0x0, +0x50,0x0,0x64,0x0,0x78,0x0,0x89,0x0,0x90,0x0,0xad,0x0, +0xd5,0x0,0xd4,0x0,0xc7,0x0,0xdf,0x0,0xa,0x1,0x31,0x1, +0x4c,0x1,0x55,0x1,0x4d,0x1,0x58,0x1,0x7a,0x1,0x7a,0x1, +0x50,0x1,0x36,0x1,0x44,0x1,0x62,0x1,0x6c,0x1,0x6c,0x1, +0x72,0x1,0x63,0x1,0x5e,0x1,0x85,0x1,0xa3,0x1,0xa9,0x1, +0xbc,0x1,0xcb,0x1,0xcf,0x1,0xd3,0x1,0xcd,0x1,0xbd,0x1, +0xb5,0x1,0xb9,0x1,0xb6,0x1,0xa3,0x1,0x8d,0x1,0x6c,0x1, +0x4b,0x1,0x46,0x1,0x43,0x1,0x31,0x1,0x2f,0x1,0x36,0x1, +0x36,0x1,0x40,0x1,0x48,0x1,0x23,0x1,0xe3,0x0,0xbc,0x0, +0xbb,0x0,0xcb,0x0,0xca,0x0,0xb1,0x0,0xb5,0x0,0xdb,0x0, +0xed,0x0,0xe5,0x0,0xbc,0x0,0x66,0x0,0x1e,0x0,0xa,0x0, +0xd,0x0,0x12,0x0,0x7,0x0,0xf3,0xff,0xf6,0xff,0x13,0x0, +0x33,0x0,0x37,0x0,0x1c,0x0,0x0,0x0,0xfe,0xff,0xc,0x0, +0xff,0xff,0xd3,0xff,0xb7,0xff,0xa4,0xff,0x89,0xff,0x73,0xff, +0x58,0xff,0x49,0xff,0x5a,0xff,0x5f,0xff,0x51,0xff,0x54,0xff, +0x5a,0xff,0x64,0xff,0x7d,0xff,0x84,0xff,0x5c,0xff,0x1e,0xff, +0xf2,0xfe,0xe7,0xfe,0xf6,0xfe,0xf6,0xfe,0xc0,0xfe,0x8d,0xfe, +0xad,0xfe,0xfe,0xfe,0x32,0xff,0x2a,0xff,0xfb,0xfe,0xdc,0xfe, +0xe0,0xfe,0xec,0xfe,0xdd,0xfe,0xb9,0xfe,0xb7,0xfe,0xe0,0xfe, +0x11,0xff,0x41,0xff,0x5c,0xff,0x55,0xff,0x3e,0xff,0x1c,0xff, +0xf7,0xfe,0xda,0xfe,0xb0,0xfe,0x84,0xfe,0x78,0xfe,0x8a,0xfe, +0xa5,0xfe,0xc5,0xfe,0xf0,0xfe,0x23,0xff,0x49,0xff,0x50,0xff, +0x44,0xff,0x44,0xff,0x54,0xff,0x55,0xff,0x3d,0xff,0x22,0xff, +0x1d,0xff,0x33,0xff,0x4e,0xff,0x62,0xff,0x71,0xff,0x6f,0xff, +0x63,0xff,0x56,0xff,0x41,0xff,0x29,0xff,0x13,0xff,0xee,0xfe, +0xc6,0xfe,0xca,0xfe,0xfd,0xfe,0x2b,0xff,0x4b,0xff,0x7a,0xff, +0xb4,0xff,0xf2,0xff,0x19,0x0,0x2,0x0,0xdd,0xff,0xd3,0xff, +0xbf,0xff,0xa6,0xff,0xa0,0xff,0x99,0xff,0xa3,0xff,0xbf,0xff, +0xbe,0xff,0xba,0xff,0xd9,0xff,0xe2,0xff,0xc2,0xff,0xaf,0xff, +0xa9,0xff,0xa0,0xff,0xaa,0xff,0xba,0xff,0xb9,0xff,0xca,0xff, +0xfc,0xff,0x27,0x0,0x3f,0x0,0x54,0x0,0x61,0x0,0x57,0x0, +0x3c,0x0,0x22,0x0,0xd,0x0,0xf1,0xff,0xc4,0xff,0xaa,0xff, +0xba,0xff,0xce,0xff,0xd5,0xff,0xdf,0xff,0xeb,0xff,0xfc,0xff, +0xe,0x0,0x1f,0x0,0x32,0x0,0x38,0x0,0x35,0x0,0x3e,0x0, +0x39,0x0,0x18,0x0,0xf9,0xff,0xe5,0xff,0xcf,0xff,0xb9,0xff, +0xb9,0xff,0xd6,0xff,0xeb,0xff,0xf1,0xff,0xfc,0xff,0x9,0x0, +0xa,0x0,0xf8,0xff,0xe4,0xff,0xea,0xff,0xf6,0xff,0xee,0xff, +0xf3,0xff,0x9,0x0,0x12,0x0,0x18,0x0,0x1f,0x0,0x7,0x0, +0xd9,0xff,0xd8,0xff,0xf2,0xff,0xdf,0xff,0xc9,0xff,0xd1,0xff, +0xce,0xff,0xd6,0xff,0xf5,0xff,0xf5,0xff,0xf1,0xff,0x13,0x0, +0x35,0x0,0x42,0x0,0x4d,0x0,0x4c,0x0,0x31,0x0,0x1b,0x0, +0x23,0x0,0x2f,0x0,0x32,0x0,0x38,0x0,0x39,0x0,0x3e,0x0, +0x46,0x0,0x40,0x0,0x39,0x0,0x31,0x0,0x28,0x0,0x37,0x0, +0x42,0x0,0x33,0x0,0x2c,0x0,0x31,0x0,0x2a,0x0,0x19,0x0, +0x8,0x0,0xa,0x0,0x1c,0x0,0x29,0x0,0x36,0x0,0x4a,0x0, +0x53,0x0,0x4f,0x0,0x4d,0x0,0x41,0x0,0x2f,0x0,0x2c,0x0, +0x2e,0x0,0x30,0x0,0x3e,0x0,0x47,0x0,0x43,0x0,0x40,0x0, +0x39,0x0,0x30,0x0,0x2b,0x0,0x1d,0x0,0x19,0x0,0x21,0x0, +0x1c,0x0,0x1f,0x0,0x38,0x0,0x45,0x0,0x48,0x0,0x4f,0x0, +0x51,0x0,0x50,0x0,0x55,0x0,0x5e,0x0,0x69,0x0,0x73,0x0, +0x7b,0x0,0x7c,0x0,0x6d,0x0,0x57,0x0,0x3b,0x0,0x1a,0x0, +0x2,0x0,0xf8,0xff,0xf4,0xff,0xf7,0xff,0x6,0x0,0x1f,0x0, +0x3c,0x0,0x5c,0x0,0x70,0x0,0x63,0x0,0x53,0x0,0x55,0x0, +0x41,0x0,0x1a,0x0,0xe,0x0,0xf,0x0,0x5,0x0,0x1,0x0, +0xd,0x0,0x1c,0x0,0x21,0x0,0x1f,0x0,0x1e,0x0,0x19,0x0, +0x1b,0x0,0x28,0x0,0x23,0x0,0x13,0x0,0x16,0x0,0x2c,0x0, +0x47,0x0,0x5b,0x0,0x58,0x0,0x35,0x0,0xa,0x0,0xe9,0xff, +0xc3,0xff,0xa5,0xff,0xa6,0xff,0xb2,0xff,0xc3,0xff,0xed,0xff, +0x15,0x0,0x23,0x0,0x22,0x0,0x1c,0x0,0xf,0x0,0xf4,0xff, +0xd6,0xff,0xdc,0xff,0xf3,0xff,0xf9,0xff,0xfa,0xff,0xf8,0xff, +0xf1,0xff,0xee,0xff,0xe6,0xff,0xe5,0xff,0xf3,0xff,0xfc,0xff, +0x1,0x0,0xf,0x0,0x17,0x0,0x13,0x0,0x6,0x0,0xef,0xff, +0xe9,0xff,0x17,0x0,0x5c,0x0,0x76,0x0,0x67,0x0,0x56,0x0, +0x45,0x0,0x2a,0x0,0x6,0x0,0xd8,0xff,0xbe,0xff,0xc6,0xff, +0xd8,0xff,0xe5,0xff,0xf4,0xff,0xa,0x0,0x20,0x0,0x26,0x0, +0x2e,0x0,0x49,0x0,0x56,0x0,0x60,0x0,0x7b,0x0,0x75,0x0, +0x4f,0x0,0x42,0x0,0x40,0x0,0x2f,0x0,0x25,0x0,0x28,0x0, +0x23,0x0,0x14,0x0,0x4,0x0,0xec,0xff,0xbf,0xff,0x90,0xff, +0x81,0xff,0x9c,0xff,0xd3,0xff,0x1a,0x0,0x51,0x0,0x64,0x0, +0x6f,0x0,0x73,0x0,0x4a,0x0,0x1c,0x0,0x18,0x0,0x19,0x0, +0x14,0x0,0x20,0x0,0x17,0x0,0xf9,0xff,0xf5,0xff,0xf1,0xff, +0xba,0xff,0x82,0xff,0x8c,0xff,0xac,0xff,0xae,0xff,0xb9,0xff, +0xce,0xff,0xce,0xff,0xe2,0xff,0x14,0x0,0x27,0x0,0x2c,0x0, +0x51,0x0,0x68,0x0,0x4e,0x0,0x3b,0x0,0x3a,0x0,0x1a,0x0, +0xfd,0xff,0x2,0x0,0xf3,0xff,0xe9,0xff,0x7,0x0,0xff,0xff, +0xda,0xff,0xe3,0xff,0xef,0xff,0xde,0xff,0xea,0xff,0x14,0x0, +0x2c,0x0,0x33,0x0,0x2a,0x0,0xb,0x0,0xf2,0xff,0xe6,0xff, +0xcd,0xff,0xc1,0xff,0xd5,0xff,0xd2,0xff,0xca,0xff,0xf5,0xff, +0x17,0x0,0xfc,0xff,0xe3,0xff,0xe6,0xff,0xd5,0xff,0xd1,0xff, +0xf8,0xff,0xf5,0xff,0xdb,0xff,0xc,0x0,0x31,0x0,0x19,0x0, +0x3f,0x0,0x6e,0x0,0x44,0x0,0x2a,0x0,0x2e,0x0,0xf4,0xff, +0xc4,0xff,0xc6,0xff,0x9f,0xff,0x69,0xff,0x79,0xff,0xa3,0xff, +0xb6,0xff,0xcd,0xff,0xeb,0xff,0xf1,0xff,0xe6,0xff,0xec,0xff, +0x11,0x0,0x28,0x0,0x1c,0x0,0x20,0x0,0x2a,0x0,0xd,0x0, +0xfc,0xff,0x17,0x0,0x13,0x0,0xed,0xff,0xe8,0xff,0xf7,0xff, +0xf1,0xff,0xf8,0xff,0x7,0x0,0xe6,0xff,0xb9,0xff,0xb9,0xff, +0xc2,0xff,0xc8,0xff,0xeb,0xff,0x7,0x0,0xc,0x0,0x2e,0x0, +0x60,0x0,0x65,0x0,0x65,0x0,0x7a,0x0,0x60,0x0,0x2a,0x0, +0x16,0x0,0x9,0x0,0xf8,0xff,0xf0,0xff,0xd6,0xff,0xc9,0xff, +0xf0,0xff,0x12,0x0,0x23,0x0,0x46,0x0,0x54,0x0,0x41,0x0, +0x43,0x0,0x54,0x0,0x46,0x0,0x35,0x0,0x35,0x0,0x2a,0x0, +0x1c,0x0,0x26,0x0,0x27,0x0,0xf,0x0,0xfa,0xff,0xea,0xff, +0xd9,0xff,0xd8,0xff,0xe5,0xff,0xe5,0xff,0xe2,0xff,0xef,0xff, +0xf0,0xff,0xe8,0xff,0xf2,0xff,0xf4,0xff,0xeb,0xff,0x1,0x0, +0x12,0x0,0x7,0x0,0x1a,0x0,0x3b,0x0,0x27,0x0,0xfa,0xff, +0xe3,0xff,0xc9,0xff,0xa8,0xff,0x91,0xff,0x75,0xff,0x5c,0xff, +0x5d,0xff,0x66,0xff,0x80,0xff,0xb8,0xff,0xdc,0xff,0xe6,0xff, +0xff,0xff,0xe,0x0,0x2,0x0,0xfb,0xff,0xec,0xff,0xd1,0xff, +0xdf,0xff,0x8,0x0,0x13,0x0,0x1c,0x0,0x38,0x0,0x3e,0x0, +0x29,0x0,0x13,0x0,0xf7,0xff,0xd2,0xff,0xb2,0xff,0xa3,0xff, +0x9e,0xff,0x90,0xff,0x9b,0xff,0xc9,0xff,0xe7,0xff,0xfa,0xff, +0x24,0x0,0x43,0x0,0x3e,0x0,0x2f,0x0,0x22,0x0,0x1,0x0, +0xcd,0xff,0xa5,0xff,0x8f,0xff,0x80,0xff,0x83,0xff,0x94,0xff, +0xa5,0xff,0xbd,0xff,0xdd,0xff,0xeb,0xff,0xee,0xff,0xff,0xff, +0x3,0x0,0xe8,0xff,0xd9,0xff,0xd8,0xff,0xc5,0xff,0xba,0xff, +0xb6,0xff,0xa8,0xff,0xb6,0xff,0xde,0xff,0xe9,0xff,0xd8,0xff, +0xd9,0xff,0xe8,0xff,0xcd,0xff,0x92,0xff,0x83,0xff,0x93,0xff, +0x8a,0xff,0x85,0xff,0xa4,0xff,0xca,0xff,0xe8,0xff,0x6,0x0, +0x19,0x0,0x14,0x0,0x10,0x0,0x15,0x0,0xb,0x0,0xfb,0xff, +0xf1,0xff,0xeb,0xff,0xf1,0xff,0xe7,0xff,0xd0,0xff,0xd9,0xff, +0xef,0xff,0xed,0xff,0xe7,0xff,0xed,0xff,0xf9,0xff,0x0,0x0, +0xc,0x0,0x1f,0x0,0x21,0x0,0x24,0x0,0x40,0x0,0x50,0x0, +0x4b,0x0,0x48,0x0,0x48,0x0,0x42,0x0,0x36,0x0,0x2e,0x0, +0x31,0x0,0x29,0x0,0x18,0x0,0x16,0x0,0x15,0x0,0xe,0x0, +0xd,0x0,0x17,0x0,0x23,0x0,0x25,0x0,0x38,0x0,0x5d,0x0, +0x65,0x0,0x5a,0x0,0x64,0x0,0x6e,0x0,0x61,0x0,0x52,0x0, +0x4a,0x0,0x36,0x0,0x2d,0x0,0x42,0x0,0x42,0x0,0x34,0x0, +0x48,0x0,0x4a,0x0,0x29,0x0,0x2d,0x0,0x42,0x0,0x3f,0x0, +0x4d,0x0,0x6b,0x0,0x79,0x0,0x8e,0x0,0xaf,0x0,0xb8,0x0, +0xa7,0x0,0x95,0x0,0x8a,0x0,0x7c,0x0,0x6e,0x0,0x67,0x0, +0x65,0x0,0x6f,0x0,0x90,0x0,0xb1,0x0,0xb5,0x0,0xb6,0x0, +0xcb,0x0,0xc6,0x0,0x9b,0x0,0x7c,0x0,0x78,0x0,0x83,0x0, +0x98,0x0,0xaa,0x0,0xbb,0x0,0xe3,0x0,0x12,0x1,0x27,0x1, +0x17,0x1,0xf7,0x0,0xd7,0x0,0xb3,0x0,0x84,0x0,0x5c,0x0, +0x47,0x0,0x37,0x0,0x34,0x0,0x48,0x0,0x62,0x0,0x7c,0x0, +0x9d,0x0,0xb4,0x0,0xac,0x0,0x90,0x0,0x81,0x0,0x7e,0x0, +0x5c,0x0,0x31,0x0,0x25,0x0,0x13,0x0,0xf3,0xff,0xf5,0xff, +0x0,0x0,0xe4,0xff,0xca,0xff,0xd5,0xff,0xdb,0xff,0xd2,0xff, +0xd2,0xff,0xc0,0xff,0x9c,0xff,0x8d,0xff,0x8c,0xff,0x87,0xff, +0x8a,0xff,0x9f,0xff,0xbf,0xff,0xd9,0xff,0xe7,0xff,0xf4,0xff, +0xf1,0xff,0xda,0xff,0xc1,0xff,0x9c,0xff,0x71,0xff,0x59,0xff, +0x4b,0xff,0x48,0xff,0x58,0xff,0x63,0xff,0x62,0xff,0x72,0xff, +0x96,0xff,0xa1,0xff,0x8b,0xff,0x77,0xff,0x6a,0xff,0x58,0xff, +0x49,0xff,0x3a,0xff,0x2f,0xff,0x2d,0xff,0x2d,0xff,0x36,0xff, +0x3f,0xff,0x36,0xff,0x2a,0xff,0x1e,0xff,0x2,0xff,0xe4,0xfe, +0xcc,0xfe,0xc1,0xfe,0xc9,0xfe,0xd0,0xfe,0xc5,0xfe,0xc1,0xfe, +0xcc,0xfe,0xd7,0xfe,0xdf,0xfe,0xe0,0xfe,0xcf,0xfe,0xc9,0xfe, +0xda,0xfe,0xdb,0xfe,0xcb,0xfe,0xc4,0xfe,0xb1,0xfe,0x9b,0xfe, +0x9e,0xfe,0xa3,0xfe,0xa1,0xfe,0xa6,0xfe,0xb4,0xfe,0xc5,0xfe, +0xd1,0xfe,0xdd,0xfe,0xee,0xfe,0xf5,0xfe,0xf9,0xfe,0x5,0xff, +0xe,0xff,0x14,0xff,0x21,0xff,0x2a,0xff,0x31,0xff,0x3b,0xff, +0x3e,0xff,0x3f,0xff,0x4e,0xff,0x60,0xff,0x6c,0xff,0x7b,0xff, +0x88,0xff,0x91,0xff,0xa3,0xff,0xb8,0xff,0xce,0xff,0xda,0xff, +0xd9,0xff,0xe3,0xff,0xfc,0xff,0xe,0x0,0x1b,0x0,0x20,0x0, +0x28,0x0,0x4a,0x0,0x6c,0x0,0x71,0x0,0x73,0x0,0x7f,0x0, +0x82,0x0,0x77,0x0,0x6a,0x0,0x68,0x0,0x6a,0x0,0x6a,0x0, +0x70,0x0,0x8a,0x0,0xae,0x0,0xc6,0x0,0xce,0x0,0xd3,0x0, +0xdb,0x0,0xe1,0x0,0xce,0x0,0xad,0x0,0xa9,0x0,0xb4,0x0, +0xb1,0x0,0xad,0x0,0xb6,0x0,0xc8,0x0,0xdf,0x0,0xed,0x0, +0xef,0x0,0xf2,0x0,0xfd,0x0,0x5,0x1,0xf8,0x0,0xf3,0x0, +0xfe,0x0,0xf5,0x0,0xf2,0x0,0xa,0x1,0x13,0x1,0x16,0x1, +0x26,0x1,0x31,0x1,0x36,0x1,0x38,0x1,0x31,0x1,0x26,0x1, +0x17,0x1,0x18,0x1,0x25,0x1,0x10,0x1,0xea,0x0,0xf1,0x0, +0x13,0x1,0x3,0x1,0xd6,0x0,0xd9,0x0,0xf5,0x0,0xf6,0x0, +0xed,0x0,0xe2,0x0,0xcd,0x0,0xc6,0x0,0xc6,0x0,0xb4,0x0, +0x96,0x0,0x85,0x0,0x80,0x0,0x7f,0x0,0x8a,0x0,0x9c,0x0, +0x99,0x0,0x85,0x0,0x72,0x0,0x6b,0x0,0x70,0x0,0x56,0x0, +0x21,0x0,0x11,0x0,0x17,0x0,0x14,0x0,0xa,0x0,0xf7,0xff, +0xfb,0xff,0x1a,0x0,0x11,0x0,0xf2,0xff,0xfb,0xff,0x1,0x0, +0xe4,0xff,0xc5,0xff,0xae,0xff,0x9a,0xff,0x8e,0xff,0x8e,0xff, +0x90,0xff,0x7d,0xff,0x6a,0xff,0x78,0xff,0x80,0xff,0x65,0xff, +0x58,0xff,0x70,0xff,0x77,0xff,0x55,0xff,0x3f,0xff,0x51,0xff, +0x59,0xff,0x49,0xff,0x4d,0xff,0x4f,0xff,0x22,0xff,0xf,0xff, +0x3d,0xff,0x48,0xff,0x28,0xff,0x29,0xff,0x38,0xff,0x48,0xff, +0x66,0xff,0x56,0xff,0x23,0xff,0x1a,0xff,0x2a,0xff,0x2f,0xff, +0x28,0xff,0xf,0xff,0x18,0xff,0x4c,0xff,0x6b,0xff,0x7c,0xff, +0x8b,0xff,0x8b,0xff,0x9d,0xff,0x9f,0xff,0x73,0xff,0x64,0xff, +0x60,0xff,0x34,0xff,0x2f,0xff,0x68,0xff,0x7e,0xff,0x6f,0xff, +0x83,0xff,0xbb,0xff,0xe8,0xff,0xff,0xff,0xf8,0xff,0xd4,0xff, +0xbe,0xff,0xc7,0xff,0xba,0xff,0x91,0xff,0x88,0xff,0xb7,0xff, +0xf6,0xff,0xc,0x0,0x0,0x0,0x10,0x0,0x4e,0x0,0x66,0x0, +0x29,0x0,0x1,0x0,0x19,0x0,0x29,0x0,0x2c,0x0,0x21,0x0, +0x7,0x0,0x2f,0x0,0x77,0x0,0x79,0x0,0x6a,0x0,0x6a,0x0, +0x66,0x0,0x74,0x0,0x71,0x0,0x56,0x0,0x64,0x0,0x78,0x0, +0x5c,0x0,0x48,0x0,0x59,0x0,0x5c,0x0,0x4d,0x0,0x5c,0x0, +0x7c,0x0,0x7d,0x0,0x74,0x0,0x75,0x0,0x7a,0x0,0x8d,0x0, +0x96,0x0,0x88,0x0,0x85,0x0,0x90,0x0,0x96,0x0,0x9c,0x0, +0x9c,0x0,0x8f,0x0,0x8f,0x0,0xb0,0x0,0xc8,0x0,0xca,0x0, +0xd4,0x0,0xc3,0x0,0x8f,0x0,0x72,0x0,0x59,0x0,0x2d,0x0, +0x10,0x0,0xee,0xff,0xec,0xff,0x2f,0x0,0x41,0x0,0x16,0x0, +0x35,0x0,0x75,0x0,0x6c,0x0,0x40,0x0,0x2f,0x0,0x30,0x0, +0x36,0x0,0x37,0x0,0x1f,0x0,0xd,0x0,0x29,0x0,0x47,0x0, +0x32,0x0,0x19,0x0,0x2b,0x0,0x4c,0x0,0x3e,0x0,0xf8,0xff, +0xcd,0xff,0xe9,0xff,0xfc,0xff,0xc0,0xff,0x85,0xff,0xa8,0xff, +0xee,0xff,0xf5,0xff,0xe3,0xff,0x0,0x0,0x2f,0x0,0x32,0x0, +0xb,0x0,0xf6,0xff,0xfd,0xff,0xdf,0xff,0xa7,0xff,0x88,0xff, +0x61,0xff,0x45,0xff,0x6b,0xff,0x72,0xff,0x38,0xff,0x52,0xff, +0xb8,0xff,0xc8,0xff,0xa0,0xff,0xb6,0xff,0xde,0xff,0xcf,0xff, +0xac,0xff,0xaa,0xff,0xc5,0xff,0xca,0xff,0xa0,0xff,0x85,0xff, +0xa2,0xff,0xbf,0xff,0xbd,0xff,0xb0,0xff,0x9a,0xff,0x97,0xff, +0xb3,0xff,0xa5,0xff,0x67,0xff,0x53,0xff,0x69,0xff,0x67,0xff, +0x55,0xff,0x60,0xff,0x8e,0xff,0xcb,0xff,0xf8,0xff,0xff,0xff, +0x7,0x0,0x31,0x0,0x2f,0x0,0xe5,0xff,0xb6,0xff,0x9e,0xff, +0x5b,0xff,0x2f,0xff,0x41,0xff,0x56,0xff,0x66,0xff,0x79,0xff, +0x8c,0xff,0xc5,0xff,0xf,0x0,0x19,0x0,0xf9,0xff,0xec,0xff, +0xe2,0xff,0xe6,0xff,0xfc,0xff,0xdb,0xff,0xaa,0xff,0xd5,0xff, +0x16,0x0,0x16,0x0,0xc,0x0,0x7,0x0,0xf5,0xff,0xe8,0xff, +0xcb,0xff,0xa1,0xff,0x95,0xff,0x98,0xff,0x91,0xff,0xa5,0xff, +0xd8,0xff,0xef,0xff,0xf3,0xff,0x18,0x0,0x38,0x0,0x31,0x0, +0x34,0x0,0x45,0x0,0x45,0x0,0x46,0x0,0x36,0x0,0xf7,0xff, +0xbf,0xff,0xbd,0xff,0xc4,0xff,0xb6,0xff,0xab,0xff,0xb7,0xff, +0xd0,0xff,0xe8,0xff,0xe8,0xff,0xd9,0xff,0xd6,0xff,0xd3,0xff, +0xc8,0xff,0xc8,0xff,0xd6,0xff,0x2,0x0,0x33,0x0,0x31,0x0, +0x32,0x0,0x68,0x0,0x79,0x0,0x48,0x0,0x2c,0x0,0x22,0x0, +0xf3,0xff,0xcc,0xff,0xc5,0xff,0xa9,0xff,0x85,0xff,0x92,0xff, +0xac,0xff,0xac,0xff,0xbc,0xff,0xf0,0xff,0x14,0x0,0xc,0x0, +0xf6,0xff,0xf5,0xff,0xf5,0xff,0xe4,0xff,0xdf,0xff,0x0,0x0, +0x2b,0x0,0x30,0x0,0x22,0x0,0x2b,0x0,0x34,0x0,0x1d,0x0, +0xfa,0xff,0xe2,0xff,0xde,0xff,0xea,0xff,0xeb,0xff,0xdd,0xff, +0xd0,0xff,0xc0,0xff,0xbd,0xff,0xd7,0xff,0xe2,0xff,0xde,0xff, +0x13,0x0,0x55,0x0,0x5e,0x0,0x65,0x0,0x78,0x0,0x63,0x0, +0x39,0x0,0xf,0x0,0xdb,0xff,0xb4,0xff,0xab,0xff,0xb8,0xff, +0xc5,0xff,0xc1,0xff,0xc7,0xff,0xe8,0xff,0x8,0x0,0x16,0x0, +0x1b,0x0,0x1f,0x0,0x26,0x0,0x26,0x0,0x16,0x0,0x10,0x0, +0x14,0x0,0x6,0x0,0xf6,0xff,0x9,0x0,0x1d,0x0,0x15,0x0, +0x8,0x0,0xfa,0xff,0xe7,0xff,0xd3,0xff,0xb9,0xff,0xa9,0xff, +0xa3,0xff,0xa5,0xff,0xc0,0xff,0xd2,0xff,0xd0,0xff,0xef,0xff, +0x1f,0x0,0x39,0x0,0x4a,0x0,0x52,0x0,0x64,0x0,0x7f,0x0, +0x65,0x0,0x2a,0x0,0xa,0x0,0xea,0xff,0xbd,0xff,0xa4,0xff, +0x9c,0xff,0x9e,0xff,0xbf,0xff,0xe8,0xff,0xf9,0xff,0x13,0x0, +0x42,0x0,0x52,0x0,0x41,0x0,0x3a,0x0,0x45,0x0,0x3f,0x0, +0x19,0x0,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xfd,0xff,0xa,0x0, +0x9,0x0,0xa,0x0,0x13,0x0,0x9,0x0,0xf1,0xff,0xdc,0xff, +0xcc,0xff,0xbe,0xff,0xaf,0xff,0xb7,0xff,0xd9,0xff,0xed,0xff, +0xf9,0xff,0x13,0x0,0x2c,0x0,0x41,0x0,0x5a,0x0,0x64,0x0, +0x5b,0x0,0x5a,0x0,0x54,0x0,0x2e,0x0,0x3,0x0,0xe4,0xff, +0xc2,0xff,0xac,0xff,0xae,0xff,0xbb,0xff,0xd2,0xff,0xec,0xff, +0xf8,0xff,0xfd,0xff,0xfe,0xff,0xf7,0xff,0xf3,0xff,0xf4,0xff, +0xf6,0xff,0xfd,0xff,0xc,0x0,0xf,0x0,0x6,0x0,0x13,0x0, +0x2e,0x0,0x2c,0x0,0x21,0x0,0x36,0x0,0x47,0x0,0x31,0x0, +0x1e,0x0,0x26,0x0,0x1b,0x0,0xd,0x0,0x1b,0x0,0x24,0x0, +0x2a,0x0,0x3b,0x0,0x39,0x0,0x31,0x0,0x2b,0x0,0xb,0x0, +0xff,0xff,0x15,0x0,0x5,0x0,0xf8,0xff,0x22,0x0,0x39,0x0, +0x2e,0x0,0x3c,0x0,0x44,0x0,0x31,0x0,0x2c,0x0,0x2b,0x0, +0x16,0x0,0x7,0x0,0xb,0x0,0x13,0x0,0x10,0x0,0xfe,0xff, +0xf8,0xff,0xb,0x0,0x16,0x0,0x1d,0x0,0x29,0x0,0x27,0x0, +0x19,0x0,0x11,0x0,0x13,0x0,0x13,0x0,0xfc,0xff,0xed,0xff, +0xfb,0xff,0xf9,0xff,0xf4,0xff,0x10,0x0,0x14,0x0,0x1,0x0, +0x14,0x0,0x24,0x0,0xf,0x0,0xd,0x0,0x14,0x0,0xf9,0xff, +0xe1,0xff,0xe3,0xff,0xe3,0xff,0xd9,0xff,0xdf,0xff,0xf9,0xff, +0x1,0x0,0xf6,0xff,0x4,0x0,0x10,0x0,0xff,0xff,0x1,0x0, +0x9,0x0,0xed,0xff,0xe3,0xff,0xf9,0xff,0xfa,0xff,0xfe,0xff, +0xe,0x0,0x0,0x0,0xf6,0xff,0x17,0x0,0x21,0x0,0x0,0x0, +0xfa,0xff,0x6,0x0,0xfd,0xff,0x2,0x0,0x11,0x0,0xf,0x0, +0xf,0x0,0x17,0x0,0x1e,0x0,0x1f,0x0,0x15,0x0,0x15,0x0, +0x16,0x0,0xfd,0xff,0xf3,0xff,0x1,0x0,0xf2,0xff,0xe1,0xff, +0xf5,0xff,0xf2,0xff,0xd9,0xff,0xf5,0xff,0x15,0x0,0xf3,0xff, +0xf9,0xff,0x3c,0x0,0x37,0x0,0x15,0x0,0x38,0x0,0x46,0x0, +0x26,0x0,0x25,0x0,0x1e,0x0,0xeb,0xff,0xd8,0xff,0xf7,0xff, +0xf6,0xff,0xd0,0xff,0xd8,0xff,0xfa,0xff,0xf8,0xff,0xf7,0xff, +0xfd,0xff,0xe6,0xff,0xdc,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff, +0xed,0xff,0xf6,0xff,0xfd,0xff,0x7,0x0,0x1c,0x0,0x18,0x0, +0xf6,0xff,0xf8,0xff,0x4,0x0,0xe2,0xff,0xc4,0xff,0xca,0xff, +0xc8,0xff,0xb5,0xff,0xb8,0xff,0xcb,0xff,0xca,0xff,0xc9,0xff, +0xec,0xff,0x14,0x0,0x13,0x0,0xfc,0xff,0x11,0x0,0x32,0x0, +0xc,0x0,0xed,0xff,0xf,0x0,0xfd,0xff,0xbf,0xff,0xd9,0xff, +0x3,0x0,0xe1,0xff,0xce,0xff,0x1,0x0,0x1e,0x0,0xfd,0xff, +0xf6,0xff,0x9,0x0,0xf1,0xff,0xe0,0xff,0xee,0xff,0xc7,0xff, +0x92,0xff,0xb0,0xff,0xde,0xff,0xd0,0xff,0xb2,0xff,0xd0,0xff, +0xfd,0xff,0xf3,0xff,0xeb,0xff,0xf6,0xff,0xc3,0xff,0x9c,0xff, +0xc4,0xff,0xb2,0xff,0x6f,0xff,0x99,0xff,0xd3,0xff,0xa7,0xff, +0x9e,0xff,0xe4,0xff,0xe5,0xff,0xc4,0xff,0xe4,0xff,0xf2,0xff, +0xc5,0xff,0xb2,0xff,0xc8,0xff,0xcf,0xff,0xaf,0xff,0x9f,0xff, +0xbd,0xff,0xbc,0xff,0x99,0xff,0xb3,0xff,0xe5,0xff,0xe2,0xff, +0xc7,0xff,0xc5,0xff,0xe5,0xff,0xee,0xff,0xc8,0xff,0xc1,0xff, +0xd2,0xff,0xc4,0xff,0xd1,0xff,0x5,0x0,0x15,0x0,0x14,0x0, +0x27,0x0,0x42,0x0,0x4e,0x0,0x34,0x0,0x1c,0x0,0x3c,0x0, +0x3f,0x0,0x0,0x0,0x2,0x0,0x41,0x0,0x30,0x0,0xd,0x0, +0x43,0x0,0x64,0x0,0x39,0x0,0x3c,0x0,0x83,0x0,0x86,0x0, +0x3b,0x0,0x33,0x0,0x60,0x0,0x30,0x0,0xa,0x0,0x5b,0x0, +0x62,0x0,0xe,0x0,0x36,0x0,0x82,0x0,0x44,0x0,0x7,0x0, +0x2d,0x0,0x3a,0x0,0x0,0x0,0xf6,0xff,0x2f,0x0,0x3d,0x0, +0x2e,0x0,0x55,0x0,0x67,0x0,0x3f,0x0,0x44,0x0,0x5d,0x0, +0x37,0x0,0x16,0x0,0x23,0x0,0x19,0x0,0xfd,0xff,0x6,0x0, +0x1b,0x0,0x1d,0x0,0x18,0x0,0x11,0x0,0xc,0x0,0xa,0x0, +0x12,0x0,0x21,0x0,0x10,0x0,0xea,0xff,0xe8,0xff,0xf8,0xff, +0x1,0x0,0x6,0x0,0xf2,0xff,0xd7,0xff,0xe2,0xff,0xf7,0xff, +0xeb,0xff,0xc0,0xff,0xa2,0xff,0xb9,0xff,0xd0,0xff,0xb2,0xff, +0x94,0xff,0x97,0xff,0x9b,0xff,0x9f,0xff,0xa9,0xff,0x9e,0xff, +0x7f,0xff,0x82,0xff,0xb3,0xff,0xc1,0xff,0x97,0xff,0x8b,0xff, +0x9a,0xff,0x88,0xff,0x87,0xff,0x99,0xff,0x71,0xff,0x45,0xff, +0x60,0xff,0x88,0xff,0x87,0xff,0x64,0xff,0x40,0xff,0x53,0xff, +0x83,0xff,0x7f,0xff,0x59,0xff,0x4e,0xff,0x60,0xff,0x7c,0xff, +0x7e,0xff,0x54,0xff,0x3a,0xff,0x50,0xff,0x6b,0xff,0x76,0xff, +0x65,0xff,0x48,0xff,0x53,0xff,0x6d,0xff,0x5d,0xff,0x42,0xff, +0x3a,0xff,0x37,0xff,0x43,0xff,0x51,0xff,0x54,0xff,0x55,0xff, +0x56,0xff,0x6c,0xff,0x90,0xff,0x8d,0xff,0x7c,0xff,0x95,0xff, +0xb4,0xff,0xb0,0xff,0xa5,0xff,0xa9,0xff,0xad,0xff,0xa0,0xff, +0x95,0xff,0x98,0xff,0xa2,0xff,0xad,0xff,0xb9,0xff,0xc8,0xff, +0xd7,0xff,0xda,0xff,0xe3,0xff,0xf6,0xff,0x3,0x0,0xd,0x0, +0x1c,0x0,0x2d,0x0,0x3d,0x0,0x42,0x0,0x4c,0x0,0x6d,0x0, +0x76,0x0,0x6b,0x0,0x70,0x0,0x70,0x0,0x69,0x0,0x6f,0x0, +0x75,0x0,0x75,0x0,0x70,0x0,0x70,0x0,0x89,0x0,0xa6,0x0, +0xa2,0x0,0x98,0x0,0xaa,0x0,0xbf,0x0,0xc1,0x0,0xc5,0x0, +0xc5,0x0,0xbf,0x0,0xcd,0x0,0xdb,0x0,0xd9,0x0,0xe4,0x0, +0xec,0x0,0xe8,0x0,0xf0,0x0,0xe5,0x0,0xcf,0x0,0xd1,0x0, +0xd2,0x0,0xd8,0x0,0xea,0x0,0xe2,0x0,0xd1,0x0,0xcf,0x0, +0xca,0x0,0xc9,0x0,0xcb,0x0,0xb7,0x0,0x9e,0x0,0xa6,0x0, +0xc1,0x0,0xc4,0x0,0xb9,0x0,0xc9,0x0,0xda,0x0,0xd1,0x0, +0xd3,0x0,0xe5,0x0,0xe1,0x0,0xce,0x0,0xd4,0x0,0xe7,0x0, +0xdf,0x0,0xc8,0x0,0xc6,0x0,0xd2,0x0,0xd2,0x0,0xc2,0x0, +0xb5,0x0,0xb0,0x0,0x96,0x0,0x74,0x0,0x6e,0x0,0x6b,0x0, +0x56,0x0,0x53,0x0,0x6c,0x0,0x83,0x0,0x85,0x0,0x84,0x0, +0x96,0x0,0xa5,0x0,0x98,0x0,0x84,0x0,0x74,0x0,0x52,0x0, +0x23,0x0,0x13,0x0,0x20,0x0,0x13,0x0,0xf4,0xff,0xf1,0xff, +0xf0,0xff,0xd5,0xff,0xc4,0xff,0xc1,0xff,0xb0,0xff,0x9b,0xff, +0x9f,0xff,0xc0,0xff,0xe4,0xff,0xef,0xff,0xfd,0xff,0x1e,0x0, +0x28,0x0,0x1b,0x0,0x29,0x0,0x34,0x0,0xc,0x0,0xe3,0xff, +0xd3,0xff,0xb4,0xff,0x8a,0xff,0x79,0xff,0x78,0xff,0x72,0xff, +0x6f,0xff,0x7c,0xff,0x93,0xff,0x98,0xff,0x90,0xff,0x92,0xff, +0x91,0xff,0x83,0xff,0x83,0xff,0x9c,0xff,0xb2,0xff,0xc0,0xff, +0xcb,0xff,0xc9,0xff,0xc9,0xff,0xce,0xff,0xba,0xff,0x97,0xff, +0x87,0xff,0x76,0xff,0x59,0xff,0x51,0xff,0x5d,0xff,0x57,0xff, +0x49,0xff,0x57,0xff,0x70,0xff,0x7a,0xff,0x8d,0xff,0x9f,0xff, +0xa6,0xff,0xb2,0xff,0xb8,0xff,0xb0,0xff,0xb4,0xff,0xbb,0xff, +0xb3,0xff,0xb0,0xff,0xb2,0xff,0xac,0xff,0xa3,0xff,0xa1,0xff, +0x99,0xff,0x86,0xff,0x7f,0xff,0x8e,0xff,0x96,0xff,0x91,0xff, +0x95,0xff,0xa4,0xff,0xb3,0xff,0xb8,0xff,0xb9,0xff,0xc0,0xff, +0xc4,0xff,0xc1,0xff,0xca,0xff,0xd8,0xff,0xd3,0xff,0xcb,0xff, +0xdc,0xff,0xe1,0xff,0xc6,0xff,0xc0,0xff,0xcb,0xff,0xb9,0xff, +0xa7,0xff,0xae,0xff,0xb2,0xff,0xac,0xff,0xaa,0xff,0xb5,0xff, +0xce,0xff,0xdc,0xff,0xe1,0xff,0xf6,0xff,0xd,0x0,0xc,0x0, +0xa,0x0,0x13,0x0,0xd,0x0,0xfb,0xff,0xf2,0xff,0xea,0xff, +0xd4,0xff,0xc8,0xff,0xca,0xff,0xc8,0xff,0xc8,0xff,0xcf,0xff, +0xd1,0xff,0xd7,0xff,0xde,0xff,0xda,0xff,0xe2,0xff,0xf4,0xff, +0xed,0xff,0xde,0xff,0xe7,0xff,0xf0,0xff,0xed,0xff,0xed,0xff, +0xed,0xff,0xf7,0xff,0xd,0x0,0x15,0x0,0xd,0x0,0xe,0x0, +0x1e,0x0,0x22,0x0,0x17,0x0,0x1a,0x0,0x21,0x0,0x21,0x0, +0x2a,0x0,0x30,0x0,0x32,0x0,0x46,0x0,0x4c,0x0,0x3a,0x0, +0x3f,0x0,0x4d,0x0,0x48,0x0,0x4e,0x0,0x53,0x0,0x43,0x0, +0x47,0x0,0x50,0x0,0x2d,0x0,0x1a,0x0,0x32,0x0,0x31,0x0, +0x24,0x0,0x3c,0x0,0x4f,0x0,0x56,0x0,0x6f,0x0,0x7c,0x0, +0x71,0x0,0x65,0x0,0x65,0x0,0x6f,0x0,0x67,0x0,0x56,0x0, +0x65,0x0,0x7d,0x0,0x85,0x0,0x8a,0x0,0x8a,0x0,0x87,0x0, +0x82,0x0,0x74,0x0,0x6a,0x0,0x55,0x0,0x32,0x0,0x28,0x0, +0x25,0x0,0x13,0x0,0x18,0x0,0x26,0x0,0x25,0x0,0x32,0x0, +0x45,0x0,0x38,0x0,0x24,0x0,0x20,0x0,0xf,0x0,0xf7,0xff, +0xf5,0xff,0xf8,0xff,0xf6,0xff,0xfd,0xff,0xfe,0xff,0xf6,0xff, +0xe7,0xff,0xd2,0xff,0xcf,0xff,0xd1,0xff,0xc0,0xff,0xc1,0xff, +0xd2,0xff,0xcb,0xff,0xc6,0xff,0xd4,0xff,0xd3,0xff,0xc3,0xff, +0xc3,0xff,0xcb,0xff,0xc8,0xff,0xca,0xff,0xd4,0xff,0xc0,0xff, +0xa9,0xff,0xb6,0xff,0xb7,0xff,0x9c,0xff,0x93,0xff,0x9a,0xff, +0xa2,0xff,0xb0,0xff,0xb2,0xff,0xac,0xff,0xb3,0xff,0xc1,0xff, +0xbe,0xff,0xaf,0xff,0xb2,0xff,0xbe,0xff,0xb2,0xff,0x94,0xff, +0x87,0xff,0x8c,0xff,0x88,0xff,0x85,0xff,0x96,0xff,0x9a,0xff, +0x87,0xff,0x88,0xff,0x92,0xff,0x83,0xff,0x72,0xff,0x6b,0xff, +0x64,0xff,0x64,0xff,0x6e,0xff,0x7f,0xff,0x8e,0xff,0x8c,0xff, +0x92,0xff,0xa1,0xff,0x97,0xff,0x8e,0xff,0x9d,0xff,0x92,0xff, +0x6e,0xff,0x6c,0xff,0x75,0xff,0x6a,0xff,0x68,0xff,0x67,0xff, +0x6c,0xff,0x97,0xff,0xb1,0xff,0xa2,0xff,0xa8,0xff,0xbe,0xff, +0xbf,0xff,0xba,0xff,0xa8,0xff,0x9a,0xff,0xaf,0xff,0xc3,0xff, +0xba,0xff,0xb3,0xff,0xc0,0xff,0xe5,0xff,0x8,0x0,0xfc,0xff, +0xec,0xff,0x8,0x0,0x1a,0x0,0x18,0x0,0x2b,0x0,0x37,0x0, +0x2b,0x0,0x37,0x0,0x4f,0x0,0x5d,0x0,0x76,0x0,0x89,0x0, +0x81,0x0,0x84,0x0,0x95,0x0,0x8c,0x0,0x73,0x0,0x7b,0x0, +0x93,0x0,0x89,0x0,0x78,0x0,0x8f,0x0,0xa8,0x0,0xba,0x0, +0xdb,0x0,0xe4,0x0,0xd4,0x0,0xe7,0x0,0x1,0x1,0xf8,0x0, +0xf1,0x0,0xf3,0x0,0xe6,0x0,0xe1,0x0,0xdf,0x0,0xcd,0x0, +0xca,0x0,0xcc,0x0,0xbd,0x0,0xc0,0x0,0xc9,0x0,0xbb,0x0, +0xc1,0x0,0xda,0x0,0xd7,0x0,0xd0,0x0,0xca,0x0,0xbb,0x0, +0xcd,0x0,0xe0,0x0,0xbd,0x0,0xa2,0x0,0xa5,0x0,0x9b,0x0, +0xa0,0x0,0xaf,0x0,0x8e,0x0,0x81,0x0,0x9c,0x0,0x88,0x0, +0x60,0x0,0x57,0x0,0x47,0x0,0x3c,0x0,0x3e,0x0,0x2b,0x0, +0x23,0x0,0x32,0x0,0x2f,0x0,0x28,0x0,0x23,0x0,0x14,0x0, +0x13,0x0,0x15,0x0,0xb,0x0,0x3,0x0,0xf1,0xff,0xd6,0xff, +0xd4,0xff,0xdc,0xff,0xcc,0xff,0xb2,0xff,0xa2,0xff,0xa2,0xff, +0xad,0xff,0xac,0xff,0xa7,0xff,0xb9,0xff,0xc6,0xff,0xbb,0xff, +0xb5,0xff,0xad,0xff,0xa5,0xff,0xb2,0xff,0xb1,0xff,0x9c,0xff, +0x95,0xff,0x98,0xff,0xa3,0xff,0xa3,0xff,0x86,0xff,0x7e,0xff, +0x91,0xff,0x86,0xff,0x73,0xff,0x6c,0xff,0x64,0xff,0x63,0xff, +0x61,0xff,0x52,0xff,0x48,0xff,0x51,0xff,0x64,0xff,0x61,0xff, +0x46,0xff,0x41,0xff,0x4f,0xff,0x4f,0xff,0x44,0xff,0x37,0xff, +0x2a,0xff,0x20,0xff,0x20,0xff,0x1e,0xff,0xd,0xff,0xfe,0xfe, +0xfb,0xfe,0xf3,0xfe,0xf3,0xfe,0x3,0xff,0xb,0xff,0xd,0xff, +0x17,0xff,0x29,0xff,0x34,0xff,0x2d,0xff,0x2c,0xff,0x32,0xff, +0x2b,0xff,0x2a,0xff,0x2d,0xff,0x17,0xff,0xd,0xff,0x23,0xff, +0x3d,0xff,0x4b,0xff,0x4a,0xff,0x4d,0xff,0x60,0xff,0x77,0xff, +0x87,0xff,0x87,0xff,0x80,0xff,0x8c,0xff,0xa9,0xff,0xc5,0xff, +0xd7,0xff,0xd7,0xff,0xe5,0xff,0x2,0x0,0x11,0x0,0x18,0x0, +0x1b,0x0,0x13,0x0,0x21,0x0,0x38,0x0,0x32,0x0,0x25,0x0, +0x2c,0x0,0x34,0x0,0x3c,0x0,0x54,0x0,0x68,0x0,0x65,0x0, +0x6f,0x0,0x8b,0x0,0xa2,0x0,0xb9,0x0,0xbe,0x0,0xaa,0x0, +0xb6,0x0,0xda,0x0,0xda,0x0,0xc2,0x0,0xb0,0x0,0xa3,0x0, +0xa7,0x0,0xb0,0x0,0xab,0x0,0xab,0x0,0xb3,0x0,0xb1,0x0, +0xa8,0x0,0xa5,0x0,0xa8,0x0,0xae,0x0,0xb6,0x0,0xb8,0x0, +0xb0,0x0,0xb2,0x0,0xba,0x0,0xb7,0x0,0xb9,0x0,0xc5,0x0, +0xcc,0x0,0xd9,0x0,0xe8,0x0,0xe4,0x0,0xd9,0x0,0xdb,0x0, +0xd4,0x0,0xbf,0x0,0xa4,0x0,0x88,0x0,0x88,0x0,0xa6,0x0, +0xba,0x0,0xbd,0x0,0xc4,0x0,0xd1,0x0,0xe2,0x0,0xed,0x0, +0xd6,0x0,0xa7,0x0,0x95,0x0,0x9e,0x0,0x9d,0x0,0x95,0x0, +0x8f,0x0,0x88,0x0,0x90,0x0,0xa3,0x0,0xa5,0x0,0xa4,0x0, +0xbb,0x0,0xd7,0x0,0xde,0x0,0xd7,0x0,0xce,0x0,0xa9,0x0, +0x72,0x0,0x5e,0x0,0x62,0x0,0x63,0x0,0x6a,0x0,0x6c,0x0, +0x6c,0x0,0x7b,0x0,0x7d,0x0,0x70,0x0,0x6d,0x0,0x68,0x0, +0x5d,0x0,0x52,0x0,0x37,0x0,0xc,0x0,0xf3,0xff,0x0,0x0, +0x14,0x0,0x19,0x0,0x26,0x0,0x2f,0x0,0x26,0x0,0x2b,0x0, +0x35,0x0,0x20,0x0,0xf1,0xff,0xba,0xff,0x98,0xff,0x9b,0xff, +0xa2,0xff,0xa3,0xff,0xae,0xff,0xb9,0xff,0xbf,0xff,0xc4,0xff, +0xbe,0xff,0xad,0xff,0xb3,0xff,0xd9,0xff,0xf5,0xff,0xf8,0xff, +0xf7,0xff,0xee,0xff,0xd9,0xff,0xc4,0xff,0xb0,0xff,0xa9,0xff, +0xab,0xff,0x9e,0xff,0x90,0xff,0x97,0xff,0x9c,0xff,0x83,0xff, +0x5f,0xff,0x5a,0xff,0x5e,0xff,0x4f,0xff,0x50,0xff,0x60,0xff, +0x63,0xff,0x76,0xff,0x91,0xff,0x8c,0xff,0x80,0xff,0x87,0xff, +0x98,0xff,0xa0,0xff,0x9b,0xff,0x9a,0xff,0x96,0xff,0x7c,0xff, +0x6f,0xff,0x80,0xff,0x8b,0xff,0x83,0xff,0x7b,0xff,0x83,0xff, +0x99,0xff,0xa7,0xff,0xa1,0xff,0x95,0xff,0x9f,0xff,0xc0,0xff, +0xd3,0xff,0xc3,0xff,0xa7,0xff,0x90,0xff,0x82,0xff,0x82,0xff, +0x87,0xff,0x80,0xff,0x7b,0xff,0x80,0xff,0x81,0xff,0x8b,0xff, +0xa9,0xff,0xaa,0xff,0x96,0xff,0x9e,0xff,0xa1,0xff,0x84,0xff, +0x74,0xff,0x7d,0xff,0x8a,0xff,0x97,0xff,0x9e,0xff,0xa0,0xff, +0xae,0xff,0xc4,0xff,0xc4,0xff,0xa4,0xff,0x88,0xff,0x87,0xff, +0x86,0xff,0x77,0xff,0x6c,0xff,0x71,0xff,0x86,0xff,0xa3,0xff, +0xbd,0xff,0xd4,0xff,0xe5,0xff,0xe3,0xff,0xd4,0xff,0xcf,0xff, +0xd4,0xff,0xdc,0xff,0xe0,0xff,0xd2,0xff,0xbe,0xff,0xc2,0xff, +0xd3,0xff,0xda,0xff,0xd6,0xff,0xdb,0xff,0xe9,0xff,0xf3,0xff, +0xf2,0xff,0xee,0xff,0xe6,0xff,0xd9,0xff,0xcc,0xff,0xc1,0xff, +0xbd,0xff,0xca,0xff,0xe6,0xff,0x4,0x0,0x15,0x0,0x20,0x0, +0x2c,0x0,0x2e,0x0,0x2d,0x0,0x2f,0x0,0x2b,0x0,0x28,0x0, +0x2b,0x0,0x24,0x0,0x15,0x0,0x9,0x0,0x7,0x0,0x10,0x0, +0x13,0x0,0xe,0x0,0x1a,0x0,0x30,0x0,0x30,0x0,0x24,0x0, +0x25,0x0,0x26,0x0,0x19,0x0,0x10,0x0,0x16,0x0,0x1e,0x0, +0x25,0x0,0x2e,0x0,0x34,0x0,0x3c,0x0,0x54,0x0,0x68,0x0, +0x5a,0x0,0x47,0x0,0x53,0x0,0x54,0x0,0x39,0x0,0x26,0x0, +0x18,0x0,0x6,0x0,0x9,0x0,0x18,0x0,0x22,0x0,0x31,0x0, +0x43,0x0,0x4e,0x0,0x54,0x0,0x52,0x0,0x4d,0x0,0x43,0x0, +0x30,0x0,0x22,0x0,0x24,0x0,0x35,0x0,0x4a,0x0,0x5e,0x0, +0x69,0x0,0x6d,0x0,0x70,0x0,0x6e,0x0,0x67,0x0,0x66,0x0, +0x64,0x0,0x55,0x0,0x44,0x0,0x37,0x0,0x2d,0x0,0x2d,0x0, +0x33,0x0,0x37,0x0,0x46,0x0,0x59,0x0,0x55,0x0,0x40,0x0, +0x36,0x0,0x30,0x0,0x1e,0x0,0x11,0x0,0x12,0x0,0x14,0x0, +0x15,0x0,0x20,0x0,0x2c,0x0,0x35,0x0,0x3c,0x0,0x3f,0x0, +0x3b,0x0,0x2c,0x0,0x17,0x0,0x5,0x0,0xfc,0xff,0xf9,0xff, +0xf5,0xff,0xf7,0xff,0xc,0x0,0x25,0x0,0x30,0x0,0x30,0x0, +0x2a,0x0,0x24,0x0,0x1a,0x0,0xc,0x0,0x2,0x0,0xf9,0xff, +0xf9,0xff,0x8,0x0,0x18,0x0,0x22,0x0,0x2a,0x0,0x2a,0x0, +0x1f,0x0,0x11,0x0,0xfe,0xff,0xe9,0xff,0xd1,0xff,0xb9,0xff, +0xb3,0xff,0xba,0xff,0xbe,0xff,0xca,0xff,0xe4,0xff,0xfa,0xff, +0x7,0x0,0xf,0x0,0x13,0x0,0x11,0x0,0x6,0x0,0xf9,0xff, +0xf2,0xff,0xe6,0xff,0xd3,0xff,0xd9,0xff,0xf4,0xff,0xfd,0xff, +0xf5,0xff,0xf2,0xff,0xec,0xff,0xdb,0xff,0xcf,0xff,0xc6,0xff, +0xbd,0xff,0xbe,0xff,0xc9,0xff,0xd2,0xff,0xdc,0xff,0xf2,0xff, +0xf8,0xff,0xeb,0xff,0xf1,0xff,0x1,0x0,0x0,0x0,0x7,0x0, +0x11,0x0,0x3,0x0,0xf6,0xff,0xf0,0xff,0xdb,0xff,0xc9,0xff, +0xc5,0xff,0xbb,0xff,0xb3,0xff,0xb6,0xff,0xbe,0xff,0xcb,0xff, +0xd3,0xff,0xcd,0xff,0xc9,0xff,0xce,0xff,0xd5,0xff,0xde,0xff, +0xe5,0xff,0xe5,0xff,0xe7,0xff,0xed,0xff,0xed,0xff,0xf0,0xff, +0xff,0xff,0x10,0x0,0x15,0x0,0x8,0x0,0xf5,0xff,0xe5,0xff, +0xcd,0xff,0xb8,0xff,0xb0,0xff,0xa9,0xff,0xb0,0xff,0xd3,0xff, +0xef,0xff,0xf8,0xff,0x8,0x0,0x18,0x0,0x18,0x0,0xf,0x0, +0x6,0x0,0x1,0x0,0xf6,0xff,0xe0,0xff,0xd5,0xff,0xda,0xff, +0xd7,0xff,0xd8,0xff,0xe9,0xff,0xec,0xff,0xe6,0xff,0xf5,0xff, +0x0,0x0,0xf5,0xff,0xf2,0xff,0xf3,0xff,0xea,0xff,0xe9,0xff, +0xf6,0xff,0x6,0x0,0x17,0x0,0x22,0x0,0x20,0x0,0x17,0x0, +0x1a,0x0,0x23,0x0,0x1e,0x0,0x14,0x0,0x16,0x0,0x1b,0x0, +0x24,0x0,0x2e,0x0,0x27,0x0,0x15,0x0,0xa,0x0,0xfc,0xff, +0xf4,0xff,0xff,0xff,0xe,0x0,0x1b,0x0,0x2a,0x0,0x2e,0x0, +0x2e,0x0,0x3b,0x0,0x42,0x0,0x33,0x0,0x25,0x0,0x1d,0x0, +0x16,0x0,0xd,0x0,0x3,0x0,0x1,0x0,0xa,0x0,0x12,0x0, +0x1c,0x0,0x2b,0x0,0x35,0x0,0x34,0x0,0x2a,0x0,0x26,0x0, +0x28,0x0,0x1e,0x0,0x10,0x0,0xe,0x0,0xe,0x0,0x12,0x0, +0x1b,0x0,0x21,0x0,0x28,0x0,0x31,0x0,0x30,0x0,0x2b,0x0, +0x22,0x0,0x16,0x0,0x14,0x0,0x14,0x0,0x9,0x0,0x2,0x0, +0x6,0x0,0x6,0x0,0x2,0x0,0x8,0x0,0x12,0x0,0x17,0x0, +0x23,0x0,0x2e,0x0,0x2d,0x0,0x2a,0x0,0x2a,0x0,0x1f,0x0, +0xa,0x0,0x0,0x0,0x0,0x0,0xfd,0xff,0x1,0x0,0xf,0x0, +0x13,0x0,0x16,0x0,0x1b,0x0,0x13,0x0,0xe,0x0,0x19,0x0, +0x18,0x0,0xd,0x0,0x6,0x0,0x5,0x0,0xd,0x0,0xa,0x0, +0xf8,0xff,0xf7,0xff,0x0,0x0,0x1,0x0,0x6,0x0,0xe,0x0, +0x5,0x0,0xf6,0xff,0xee,0xff,0xe9,0xff,0xe4,0xff,0xe9,0xff, +0xf0,0xff,0xee,0xff,0xee,0xff,0xf0,0xff,0xed,0xff,0xf0,0xff, +0xf4,0xff,0xf1,0xff,0xf0,0xff,0xec,0xff,0xea,0xff,0xea,0xff, +0xdc,0xff,0xc9,0xff,0xcb,0xff,0xdb,0xff,0xdf,0xff,0xe0,0xff, +0xef,0xff,0xff,0xff,0x1,0x0,0xfd,0xff,0xf6,0xff,0xe0,0xff, +0xcb,0xff,0xc1,0xff,0xb5,0xff,0xab,0xff,0xb5,0xff,0xc6,0xff, +0xcc,0xff,0xdb,0xff,0xf0,0xff,0xef,0xff,0xf0,0xff,0xfc,0xff, +0xf1,0xff,0xd7,0xff,0xcd,0xff,0xc4,0xff,0xba,0xff,0xbf,0xff, +0xc7,0xff,0xd3,0xff,0xea,0xff,0xfa,0xff,0xfe,0xff,0xff,0xff, +0xf5,0xff,0xeb,0xff,0xed,0xff,0xe5,0xff,0xd1,0xff,0xca,0xff, +0xce,0xff,0xcc,0xff,0xd5,0xff,0xec,0xff,0xf9,0xff,0x0,0x0, +0x10,0x0,0x1a,0x0,0x15,0x0,0xd,0x0,0x5,0x0,0xf6,0xff, +0xe9,0xff,0xe4,0xff,0xe6,0xff,0xeb,0xff,0xf0,0xff,0xf7,0xff, +0x2,0x0,0x0,0x0,0xf7,0xff,0xfc,0xff,0x1,0x0,0x1,0x0, +0x4,0x0,0xff,0xff,0xf9,0xff,0x5,0x0,0xb,0x0,0xf8,0xff, +0xf5,0xff,0xa,0x0,0xb,0x0,0xd,0x0,0x2b,0x0,0x39,0x0, +0x2c,0x0,0x2a,0x0,0x24,0x0,0xb,0x0,0xfe,0xff,0x2,0x0, +0xfe,0xff,0xf0,0xff,0xf1,0xff,0x6,0x0,0xe,0x0,0x8,0x0, +0x17,0x0,0x24,0x0,0x13,0x0,0xf,0x0,0x1c,0x0,0x11,0x0, +0xfd,0xff,0x1,0x0,0x6,0x0,0xfd,0xff,0xc,0x0,0x30,0x0, +0x3c,0x0,0x38,0x0,0x40,0x0,0x42,0x0,0x2c,0x0,0x18,0x0, +0xf,0x0,0xf5,0xff,0xdf,0xff,0xf6,0xff,0x11,0x0,0x14,0x0, +0x2f,0x0,0x4d,0x0,0x40,0x0,0x31,0x0,0x35,0x0,0x2a,0x0, +0x16,0x0,0xf,0x0,0x10,0x0,0xb,0x0,0x6,0x0,0x17,0x0, +0x26,0x0,0x1d,0x0,0x21,0x0,0x33,0x0,0x2e,0x0,0x28,0x0, +0x30,0x0,0x27,0x0,0x10,0x0,0x8,0x0,0x6,0x0,0xf8,0xff, +0xf4,0xff,0xfe,0xff,0xff,0xff,0x3,0x0,0x17,0x0,0x1d,0x0, +0x11,0x0,0xd,0x0,0xf,0x0,0xfd,0xff,0xea,0xff,0xef,0xff, +0xf6,0xff,0xf1,0xff,0xfc,0xff,0x6,0x0,0xf8,0xff,0xf1,0xff, +0xf7,0xff,0xf1,0xff,0xed,0xff,0xf7,0xff,0x1,0x0,0xff,0xff, +0xf9,0xff,0xf8,0xff,0xf2,0xff,0xe5,0xff,0xe2,0xff,0xe4,0xff, +0xe3,0xff,0xec,0xff,0xfd,0xff,0x6,0x0,0x7,0x0,0x3,0x0, +0xfc,0xff,0xf1,0xff,0xe8,0xff,0xe3,0xff,0xd9,0xff,0xd8,0xff, +0xe8,0xff,0xf5,0xff,0xff,0xff,0xd,0x0,0x11,0x0,0xf,0x0, +0x15,0x0,0x18,0x0,0x16,0x0,0x11,0x0,0x9,0x0,0xfe,0xff, +0xf4,0xff,0xe9,0xff,0xe0,0xff,0xdf,0xff,0xe1,0xff,0xe0,0xff, +0xe0,0xff,0xe1,0xff,0xe6,0xff,0xea,0xff,0xe0,0xff,0xd5,0xff, +0xd6,0xff,0xd5,0xff,0xd2,0xff,0xd8,0xff,0xd7,0xff,0xce,0xff, +0xd0,0xff,0xd6,0xff,0xd5,0xff,0xda,0xff,0xe2,0xff,0xe8,0xff, +0xf2,0xff,0xfb,0xff,0xf4,0xff,0xea,0xff,0xea,0xff,0xe4,0xff, +0xd6,0xff,0xd5,0xff,0xdd,0xff,0xde,0xff,0xe2,0xff,0xf0,0xff, +0xf6,0xff,0xf9,0xff,0x7,0x0,0xe,0x0,0x9,0x0,0xe,0x0, +0x14,0x0,0xa,0x0,0x6,0x0,0xa,0x0,0x3,0x0,0x0,0x0, +0x10,0x0,0x1e,0x0,0x2b,0x0,0x3d,0x0,0x45,0x0,0x47,0x0, +0x47,0x0,0x36,0x0,0x22,0x0,0x20,0x0,0x19,0x0,0x11,0x0, +0x17,0x0,0x18,0x0,0x1a,0x0,0x29,0x0,0x2e,0x0,0x2f,0x0, +0x40,0x0,0x4b,0x0,0x45,0x0,0x3e,0x0,0x36,0x0,0x29,0x0, +0x1f,0x0,0x16,0x0,0xf,0x0,0x10,0x0,0x1a,0x0,0x2a,0x0, +0x3a,0x0,0x47,0x0,0x47,0x0,0x43,0x0,0x41,0x0,0x38,0x0, +0x2c,0x0,0x2a,0x0,0x2d,0x0,0x2b,0x0,0x27,0x0,0x30,0x0, +0x43,0x0,0x48,0x0,0x49,0x0,0x50,0x0,0x4d,0x0,0x48,0x0, +0x47,0x0,0x36,0x0,0x1f,0x0,0x1b,0x0,0x19,0x0,0xc,0x0, +0xd,0x0,0x25,0x0,0x39,0x0,0x40,0x0,0x47,0x0,0x52,0x0, +0x5c,0x0,0x5c,0x0,0x51,0x0,0x45,0x0,0x36,0x0,0x2b,0x0, +0x31,0x0,0x2e,0x0,0x21,0x0,0x26,0x0,0x2b,0x0,0x25,0x0, +0x2b,0x0,0x30,0x0,0x31,0x0,0x36,0x0,0x2d,0x0,0x1d,0x0, +0x18,0x0,0x15,0x0,0xf,0x0,0xa,0x0,0xd,0x0,0x19,0x0, +0x19,0x0,0xe,0x0,0x11,0x0,0x13,0x0,0x7,0x0,0x0,0x0, +0xfd,0xff,0xf0,0xff,0xef,0xff,0xf8,0xff,0xea,0xff,0xd3,0xff, +0xd4,0xff,0xd6,0xff,0xd3,0xff,0xd8,0xff,0xdc,0xff,0xe1,0xff, +0xe7,0xff,0xde,0xff,0xd1,0xff,0xc9,0xff,0xbe,0xff,0xb3,0xff, +0xae,0xff,0xaf,0xff,0xb4,0xff,0xb5,0xff,0xb5,0xff,0xb9,0xff, +0xb6,0xff,0xb2,0xff,0xb4,0xff,0xb3,0xff,0xb1,0xff,0xb3,0xff, +0xb2,0xff,0xad,0xff,0xa5,0xff,0xa0,0xff,0xa3,0xff,0xa6,0xff, +0xa0,0xff,0x93,0xff,0x92,0xff,0x9c,0xff,0xa0,0xff,0xa1,0xff, +0xa4,0xff,0xa2,0xff,0x9f,0xff,0x9d,0xff,0x98,0xff,0x98,0xff, +0x9a,0xff,0x92,0xff,0x8c,0xff,0x8e,0xff,0x95,0xff,0x9f,0xff, +0xa5,0xff,0xa6,0xff,0xac,0xff,0xb4,0xff,0xb3,0xff,0xab,0xff, +0xa2,0xff,0x9f,0xff,0xa1,0xff,0xa2,0xff,0x9d,0xff,0x9f,0xff, +0xac,0xff,0xb2,0xff,0xb1,0xff,0xad,0xff,0xaf,0xff,0xb7,0xff, +0xb9,0xff,0xb2,0xff,0xad,0xff,0xac,0xff,0xad,0xff,0xb1,0xff, +0xb1,0xff,0xb5,0xff,0xc3,0xff,0xcf,0xff,0xd3,0xff,0xd9,0xff, +0xdd,0xff,0xda,0xff,0xd4,0xff,0xcd,0xff,0xc3,0xff,0xc0,0xff, +0xc5,0xff,0xcc,0xff,0xcc,0xff,0xca,0xff,0xd1,0xff,0xdb,0xff, +0xe2,0xff,0xeb,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0x1,0x0, +0xfd,0xff,0xf3,0xff,0xf4,0xff,0xfa,0xff,0xfc,0xff,0x1,0x0, +0xf,0x0,0x1a,0x0,0x22,0x0,0x2a,0x0,0x2d,0x0,0x2e,0x0, +0x29,0x0,0x1c,0x0,0x1a,0x0,0x21,0x0,0x1d,0x0,0x1d,0x0, +0x26,0x0,0x2a,0x0,0x33,0x0,0x3e,0x0,0x38,0x0,0x34,0x0, +0x40,0x0,0x4a,0x0,0x3e,0x0,0x2b,0x0,0x2d,0x0,0x3c,0x0, +0x3b,0x0,0x32,0x0,0x36,0x0,0x41,0x0,0x40,0x0,0x40,0x0, +0x46,0x0,0x41,0x0,0x39,0x0,0x40,0x0,0x42,0x0,0x3f,0x0, +0x49,0x0,0x55,0x0,0x57,0x0,0x54,0x0,0x53,0x0,0x5b,0x0, +0x59,0x0,0x45,0x0,0x3c,0x0,0x44,0x0,0x48,0x0,0x49,0x0, +0x4e,0x0,0x4f,0x0,0x53,0x0,0x5c,0x0,0x57,0x0,0x50,0x0, +0x5b,0x0,0x5e,0x0,0x51,0x0,0x53,0x0,0x57,0x0,0x4a,0x0, +0x4c,0x0,0x59,0x0,0x5a,0x0,0x55,0x0,0x50,0x0,0x4f,0x0, +0x55,0x0,0x51,0x0,0x4e,0x0,0x53,0x0,0x42,0x0,0x33,0x0, +0x41,0x0,0x49,0x0,0x38,0x0,0x2a,0x0,0x2e,0x0,0x38,0x0, +0x3b,0x0,0x39,0x0,0x3b,0x0,0x38,0x0,0x38,0x0,0x47,0x0, +0x48,0x0,0x32,0x0,0x21,0x0,0x20,0x0,0x24,0x0,0x25,0x0, +0x1e,0x0,0x16,0x0,0x1d,0x0,0x29,0x0,0x25,0x0,0x1e,0x0, +0x1d,0x0,0x18,0x0,0x15,0x0,0x11,0x0,0x8,0x0,0xfd,0xff, +0xf0,0xff,0xef,0xff,0xfc,0xff,0xfd,0xff,0xf8,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x8,0x0,0x3,0x0,0xf7,0xff,0xf4,0xff, +0xf0,0xff,0xea,0xff,0xe0,0xff,0xdf,0xff,0xed,0xff,0xf1,0xff, +0xec,0xff,0xfa,0xff,0x9,0x0,0x8,0x0,0xb,0x0,0x10,0x0, +0x7,0x0,0x7,0x0,0xb,0x0,0xf4,0xff,0xdd,0xff,0xe3,0xff, +0xe8,0xff,0xe2,0xff,0xdc,0xff,0xd7,0xff,0xe1,0xff,0xf0,0xff, +0xf2,0xff,0xf7,0xff,0xfa,0xff,0xea,0xff,0xe4,0xff,0xf1,0xff, +0xef,0xff,0xd3,0xff,0xbc,0xff,0xc8,0xff,0xe1,0xff,0xe1,0xff, +0xd7,0xff,0xdd,0xff,0xe3,0xff,0xe3,0xff,0xf1,0xff,0xf8,0xff, +0xe8,0xff,0xe3,0xff,0xf0,0xff,0xf7,0xff,0xf3,0xff,0xea,0xff, +0xe6,0xff,0xf3,0xff,0x1,0x0,0x7,0x0,0xe,0x0,0x10,0x0, +0xb,0x0,0xc,0x0,0xa,0x0,0xf6,0xff,0xdf,0xff,0xdc,0xff, +0xea,0xff,0xe7,0xff,0xda,0xff,0xe4,0xff,0xfb,0xff,0x6,0x0, +0xc,0x0,0xe,0x0,0x7,0x0,0x7,0x0,0xe,0x0,0x4,0x0, +0xf0,0xff,0xec,0xff,0xf1,0xff,0xed,0xff,0xeb,0xff,0xf1,0xff, +0xf9,0xff,0xff,0xff,0xf,0x0,0x1c,0x0,0xe,0x0,0x5,0x0, +0x14,0x0,0xb,0x0,0xf4,0xff,0xf5,0xff,0xf0,0xff,0xe8,0xff, +0xf9,0xff,0x4,0x0,0xfc,0xff,0xfb,0xff,0xb,0x0,0x20,0x0, +0x1e,0x0,0x2,0x0,0x0,0x0,0x1c,0x0,0x21,0x0,0xd,0x0, +0xfd,0xff,0xef,0xff,0xec,0xff,0xf5,0xff,0xe7,0xff,0xd9,0xff, +0xf1,0xff,0xf6,0xff,0xde,0xff,0xe8,0xff,0xf9,0xff,0xf2,0xff, +0xf2,0xff,0xf4,0xff,0xfa,0xff,0x14,0x0,0x17,0x0,0xfe,0xff, +0xf9,0xff,0x7,0x0,0x7,0x0,0xfe,0xff,0xf4,0xff,0xee,0xff, +0xf0,0xff,0xf1,0xff,0xec,0xff,0xef,0xff,0xe9,0xff,0xd6,0xff, +0xd3,0xff,0xd4,0xff,0xc2,0xff,0xbc,0xff,0xc2,0xff,0xc1,0xff, +0xd2,0xff,0xed,0xff,0xed,0xff,0xdd,0xff,0xe9,0xff,0xd,0x0, +0x16,0x0,0xfa,0xff,0xee,0xff,0xf9,0xff,0xf7,0xff,0xe4,0xff, +0xcf,0xff,0xc0,0xff,0xb5,0xff,0xb1,0xff,0xbf,0xff,0xca,0xff, +0xb8,0xff,0xb7,0xff,0xd8,0xff,0xe1,0xff,0xd7,0xff,0xe9,0xff, +0xf5,0xff,0xec,0xff,0xf7,0xff,0x2,0x0,0xf5,0xff,0xed,0xff, +0xeb,0xff,0xed,0xff,0xf9,0xff,0xee,0xff,0xd9,0xff,0xe8,0xff, +0xf5,0xff,0xea,0xff,0xec,0xff,0xe8,0xff,0xce,0xff,0xcd,0xff, +0xd8,0xff,0xd1,0xff,0xd7,0xff,0xe7,0xff,0xe5,0xff,0xf0,0xff, +0x10,0x0,0x17,0x0,0x3,0x0,0xf9,0xff,0xfe,0xff,0x0,0x0, +0xf9,0xff,0xec,0xff,0xe5,0xff,0xe7,0xff,0xe7,0xff,0xe5,0xff, +0xe8,0xff,0xec,0xff,0xec,0xff,0xfc,0xff,0xd,0x0,0x6,0x0, +0x7,0x0,0x13,0x0,0x7,0x0,0x0,0x0,0x17,0x0,0x17,0x0, +0xfc,0xff,0x1,0x0,0x18,0x0,0x12,0x0,0x2,0x0,0xfc,0xff, +0xfa,0xff,0xb,0x0,0x1b,0x0,0xa,0x0,0xfe,0xff,0xa,0x0, +0x5,0x0,0xf6,0xff,0xf0,0xff,0xe5,0xff,0xde,0xff,0xe7,0xff, +0xed,0xff,0xf3,0xff,0x3,0x0,0xf,0x0,0x15,0x0,0x19,0x0, +0x14,0x0,0xb,0x0,0xc,0x0,0x8,0x0,0xfa,0xff,0xfa,0xff, +0x1,0x0,0xfc,0xff,0x0,0x0,0x1a,0x0,0x28,0x0,0x29,0x0, +0x35,0x0,0x44,0x0,0x3c,0x0,0x35,0x0,0x3e,0x0,0x3c,0x0, +0x2d,0x0,0x23,0x0,0x1c,0x0,0x1b,0x0,0x20,0x0,0x20,0x0, +0x1e,0x0,0x20,0x0,0x21,0x0,0x28,0x0,0x2a,0x0,0x1d,0x0, +0x14,0x0,0x11,0x0,0x9,0x0,0x6,0x0,0x7,0x0,0xfc,0xff, +0xfa,0xff,0xc,0x0,0x17,0x0,0x1c,0x0,0x2d,0x0,0x36,0x0, +0x2e,0x0,0x2c,0x0,0x2c,0x0,0x18,0x0,0x0,0x0,0xfb,0xff, +0xfa,0xff,0xeb,0xff,0xe5,0xff,0xf5,0xff,0x1,0x0,0x5,0x0, +0xc,0x0,0xe,0x0,0x9,0x0,0x6,0x0,0x6,0x0,0x2,0x0, +0xf7,0xff,0xf0,0xff,0xf5,0xff,0xf9,0xff,0x0,0x0,0xc,0x0, +0x13,0x0,0x15,0x0,0x1c,0x0,0x1f,0x0,0x1e,0x0,0x21,0x0, +0x1b,0x0,0x6,0x0,0x0,0x0,0x6,0x0,0xf8,0xff,0xe9,0xff, +0xf2,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x9,0x0,0x17,0x0, +0x18,0x0,0x11,0x0,0x13,0x0,0xe,0x0,0x0,0x0,0x3,0x0, +0xa,0x0,0x0,0x0,0xf7,0xff,0x3,0x0,0xe,0x0,0x6,0x0, +0x4,0x0,0x8,0x0,0xff,0xff,0xf7,0xff,0xf5,0xff,0xf0,0xff, +0xe8,0xff,0xdb,0xff,0xd8,0xff,0xe3,0xff,0xe7,0xff,0xe6,0xff, +0xf1,0xff,0xf6,0xff,0xf0,0xff,0xf1,0xff,0xf5,0xff,0xef,0xff, +0xec,0xff,0xf1,0xff,0xed,0xff,0xe4,0xff,0xe4,0xff,0xe1,0xff, +0xe3,0xff,0xee,0xff,0xee,0xff,0xe9,0xff,0xef,0xff,0xf6,0xff, +0xf5,0xff,0xf2,0xff,0xf0,0xff,0xf0,0xff,0xf2,0xff,0xf4,0xff, +0xf9,0xff,0x3,0x0,0xa,0x0,0x5,0x0,0x7,0x0,0x13,0x0, +0x10,0x0,0xc,0x0,0x12,0x0,0x10,0x0,0xc,0x0,0xf,0x0, +0xd,0x0,0xa,0x0,0xb,0x0,0xc,0x0,0xe,0x0,0x10,0x0, +0x10,0x0,0x13,0x0,0x14,0x0,0xc,0x0,0xc,0x0,0x12,0x0, +0xe,0x0,0xb,0x0,0x16,0x0,0x19,0x0,0x17,0x0,0x1d,0x0, +0x1d,0x0,0x1c,0x0,0x20,0x0,0x1d,0x0,0x16,0x0,0x17,0x0, +0x17,0x0,0x19,0x0,0x1d,0x0,0x22,0x0,0x26,0x0,0x24,0x0, +0x24,0x0,0x28,0x0,0x27,0x0,0x1f,0x0,0x1e,0x0,0x23,0x0, +0x23,0x0,0x26,0x0,0x31,0x0,0x34,0x0,0x33,0x0,0x3b,0x0, +0x3a,0x0,0x30,0x0,0x30,0x0,0x2b,0x0,0x1d,0x0,0x1a,0x0, +0x1e,0x0,0x1b,0x0,0x1a,0x0,0x21,0x0,0x24,0x0,0x23,0x0, +0x26,0x0,0x24,0x0,0x1f,0x0,0x22,0x0,0x23,0x0,0x21,0x0, +0x20,0x0,0x1e,0x0,0x1e,0x0,0x21,0x0,0x1f,0x0,0x1f,0x0, +0x1c,0x0,0x10,0x0,0x6,0x0,0xf9,0xff,0xe4,0xff,0xd2,0xff, +0xc8,0xff,0xc3,0xff,0xc4,0xff,0xce,0xff,0xdd,0xff,0xe7,0xff, +0xed,0xff,0xf5,0xff,0xf9,0xff,0xf6,0xff,0xf1,0xff,0xf0,0xff, +0xf0,0xff,0xee,0xff,0xed,0xff,0xe8,0xff,0xe1,0xff,0xe2,0xff, +0xe2,0xff,0xe0,0xff,0xe1,0xff,0xe1,0xff,0xe3,0xff,0xe6,0xff, +0xdd,0xff,0xd8,0xff,0xdc,0xff,0xd5,0xff,0xcf,0xff,0xd6,0xff, +0xdc,0xff,0xe0,0xff,0xe9,0xff,0xef,0xff,0xf3,0xff,0xf7,0xff, +0xf5,0xff,0xee,0xff,0xe8,0xff,0xe3,0xff,0xdd,0xff,0xd7,0xff, +0xce,0xff,0xc8,0xff,0xc7,0xff,0xc6,0xff,0xc6,0xff,0xc9,0xff, +0xca,0xff,0xd0,0xff,0xd8,0xff,0xd6,0xff,0xd5,0xff,0xd5,0xff, +0xd0,0xff,0xcd,0xff,0xce,0xff,0xc8,0xff,0xc3,0xff,0xc8,0xff, +0xcc,0xff,0xc9,0xff,0xca,0xff,0xcf,0xff,0xce,0xff,0xca,0xff, +0xc8,0xff,0xc7,0xff,0xc6,0xff,0xc3,0xff,0xc3,0xff,0xc9,0xff, +0xc9,0xff,0xcc,0xff,0xd4,0xff,0xda,0xff,0xe4,0xff,0xeb,0xff, +0xe8,0xff,0xe7,0xff,0xed,0xff,0xec,0xff,0xe6,0xff,0xe3,0xff, +0xe4,0xff,0xe4,0xff,0xe8,0xff,0xea,0xff,0xec,0xff,0xf2,0xff, +0xf7,0xff,0xf9,0xff,0x0,0x0,0x6,0x0,0x9,0x0,0xd,0x0, +0xe,0x0,0x10,0x0,0x14,0x0,0x14,0x0,0x16,0x0,0x18,0x0, +0x1b,0x0,0x21,0x0,0x21,0x0,0x1d,0x0,0x20,0x0,0x21,0x0, +0x1a,0x0,0x18,0x0,0x1b,0x0,0x1b,0x0,0x19,0x0,0x1d,0x0, +0x22,0x0,0x1f,0x0,0x1c,0x0,0x23,0x0,0x2a,0x0,0x29,0x0, +0x28,0x0,0x2c,0x0,0x2b,0x0,0x26,0x0,0x27,0x0,0x26,0x0, +0x20,0x0,0x1f,0x0,0x1e,0x0,0x1b,0x0,0x19,0x0,0x16,0x0, +0x16,0x0,0x17,0x0,0x15,0x0,0x16,0x0,0x18,0x0,0x17,0x0, +0x17,0x0,0x16,0x0,0x15,0x0,0x16,0x0,0x16,0x0,0x17,0x0, +0x17,0x0,0x15,0x0,0x18,0x0,0x18,0x0,0x13,0x0,0x11,0x0, +0xf,0x0,0xc,0x0,0xd,0x0,0xc,0x0,0x8,0x0,0x9,0x0, +0xf,0x0,0xe,0x0,0xd,0x0,0x13,0x0,0x11,0x0,0xe,0x0, +0x12,0x0,0x13,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x14,0x0, +0x15,0x0,0xf,0x0,0xd,0x0,0xd,0x0,0xb,0x0,0xb,0x0, +0xc,0x0,0xd,0x0,0xf,0x0,0x13,0x0,0x13,0x0,0xf,0x0, +0x11,0x0,0x15,0x0,0x11,0x0,0xe,0x0,0xf,0x0,0xe,0x0, +0xd,0x0,0xb,0x0,0x8,0x0,0xa,0x0,0xc,0x0,0xb,0x0, +0xa,0x0,0xb,0x0,0x8,0x0,0x5,0x0,0x6,0x0,0x5,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0x1,0x0,0x5,0x0,0x4,0x0,0x1,0x0,0xff,0xff,0xfb,0xff, +0xfa,0xff,0xf9,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff, +0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xf7,0xff, +0xf7,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0x0,0x0, +0x3,0x0,0xfc,0xff,0xfb,0xff,0x2,0x0,0x2,0x0,0x2,0x0, +0x7,0x0,0xa,0x0,0x7,0x0,0x4,0x0,0x6,0x0,0x5,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff, +0x0,0x0,0x0,0x0,0xfd,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x3,0x0,0x1,0x0,0xfd,0xff,0xfd,0xff,0xff,0xff,0xfc,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xfd,0xff,0xfd,0xff,0xfa,0xff,0xf7,0xff, +0xfa,0xff,0xf9,0xff,0xf8,0xff,0xfd,0xff,0x0,0x0,0x3,0x0, +0x6,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0xfe,0xff,0xfa,0xff, +0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff, +0x2,0x0,0x4,0x0,0xfe,0xff,0x0,0x0,0x2,0x0,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xf7,0xff,0xf7,0xff,0xf9,0xff,0xfe,0xff, +0x0,0x0,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xf9,0xff,0xf9,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xf7,0xff, +0xf9,0xff,0xfd,0xff,0xfb,0xff,0xf8,0xff,0xfa,0xff,0xfa,0xff, +0xf7,0xff,0xf8,0xff,0xf5,0xff,0xec,0xff,0xed,0xff,0xf4,0xff, +0xef,0xff,0xea,0xff,0xf0,0xff,0xf2,0xff,0xf0,0xff,0xef,0xff, +0xe1,0xff,0xc7,0xff,0xb5,0xff,0xaf,0xff,0xae,0xff,0xad,0xff, +0xb4,0xff,0xc3,0xff,0xcc,0xff,0xcd,0xff,0xc5,0xff,0xb9,0xff, +0xb4,0xff,0xb9,0xff,0xc4,0xff,0xd4,0xff,0xe3,0xff,0xef,0xff, +0xf8,0xff,0xf8,0xff,0xf5,0xff,0xf1,0xff,0xed,0xff,0xee,0xff, +0xf3,0xff,0xf2,0xff,0xec,0xff,0xe4,0xff,0xe3,0xff,0xe5,0xff, +0xea,0xff,0xf1,0xff,0xf7,0xff,0xfe,0xff,0x7,0x0,0xd,0x0, +0xf,0x0,0xb,0x0,0x3,0x0,0xff,0xff,0x2,0x0,0x6,0x0, +0x7,0x0,0x8,0x0,0xd,0x0,0xe,0x0,0xe,0x0,0xd,0x0, +0x3,0x0,0xfa,0xff,0xfd,0xff,0x0,0x0,0x5,0x0,0xb,0x0, +0x9,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0x2,0x0,0x5,0x0, +0x8,0x0,0x10,0x0,0x18,0x0,0x19,0x0,0x13,0x0,0xd,0x0, +0x8,0x0,0x3,0x0,0x3,0x0,0x5,0x0,0x8,0x0,0x10,0x0, +0x18,0x0,0x1e,0x0,0x22,0x0,0x24,0x0,0x24,0x0,0x23,0x0, +0x21,0x0,0x24,0x0,0x29,0x0,0x2c,0x0,0x30,0x0,0x34,0x0, +0x35,0x0,0x33,0x0,0x30,0x0,0x31,0x0,0x31,0x0,0x33,0x0, +0x38,0x0,0x34,0x0,0x2b,0x0,0x2c,0x0,0x35,0x0,0x40,0x0, +0x4a,0x0,0x52,0x0,0x5c,0x0,0x64,0x0,0x66,0x0,0x64,0x0, +0x60,0x0,0x5d,0x0,0x59,0x0,0x56,0x0,0x55,0x0,0x51,0x0, +0x4a,0x0,0x44,0x0,0x42,0x0,0x44,0x0,0x48,0x0,0x4b,0x0, +0x4a,0x0,0x42,0x0,0x39,0x0,0x32,0x0,0x2b,0x0,0x27,0x0, +0x24,0x0,0x24,0x0,0x27,0x0,0x25,0x0,0x27,0x0,0x2c,0x0, +0x27,0x0,0x23,0x0,0x23,0x0,0x1d,0x0,0x14,0x0,0xb,0x0, +0xff,0xff,0xf9,0xff,0xf6,0xff,0xee,0xff,0xeb,0xff,0xf0,0xff, +0xf2,0xff,0xf4,0xff,0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf8,0xff, +0xf6,0xff,0xf1,0xff,0xee,0xff,0xe6,0xff,0xe3,0xff,0xe6,0xff, +0xe3,0xff,0xdf,0xff,0xe0,0xff,0xdc,0xff,0xdb,0xff,0xde,0xff, +0xdf,0xff,0xde,0xff,0xde,0xff,0xd9,0xff,0xd1,0xff,0xce,0xff, +0xcf,0xff,0xcd,0xff,0xcc,0xff,0xd2,0xff,0xd6,0xff,0xda,0xff, +0xdf,0xff,0xde,0xff,0xda,0xff,0xd6,0xff,0xd5,0xff,0xd2,0xff, +0xc9,0xff,0xc0,0xff,0xc1,0xff,0xc2,0xff,0xc1,0xff,0xc6,0xff, +0xcc,0xff,0xcb,0xff,0xcd,0xff,0xd4,0xff,0xd5,0xff,0xd1,0xff, +0xd1,0xff,0xd1,0xff,0xcf,0xff,0xcd,0xff,0xcb,0xff,0xcb,0xff, +0xce,0xff,0xd3,0xff,0xda,0xff,0xdb,0xff,0xd7,0xff,0xd6,0xff, +0xd1,0xff,0xce,0xff,0xce,0xff,0xc9,0xff,0xc3,0xff,0xc5,0xff, +0xc4,0xff,0xc4,0xff,0xc4,0xff,0xc5,0xff,0xc9,0xff,0xcc,0xff, +0xce,0xff,0xd4,0xff,0xd9,0xff,0xd7,0xff,0xd8,0xff,0xe3,0xff, +0xe8,0xff,0xe5,0xff,0xe7,0xff,0xe8,0xff,0xe4,0xff,0xe6,0xff, +0xea,0xff,0xeb,0xff,0xec,0xff,0xeb,0xff,0xed,0xff,0xef,0xff, +0xe9,0xff,0xe7,0xff,0xec,0xff,0xed,0xff,0xeb,0xff,0xef,0xff, +0xf5,0xff,0xf7,0xff,0xfe,0xff,0x9,0x0,0xd,0x0,0x11,0x0, +0x16,0x0,0x14,0x0,0x14,0x0,0x16,0x0,0xf,0x0,0x8,0x0, +0x6,0x0,0x3,0x0,0x4,0x0,0x9,0x0,0xa,0x0,0xa,0x0, +0xc,0x0,0x10,0x0,0x12,0x0,0xd,0x0,0x6,0x0,0x6,0x0, +0x9,0x0,0xa,0x0,0xc,0x0,0x11,0x0,0x11,0x0,0x11,0x0, +0x13,0x0,0x15,0x0,0x15,0x0,0x15,0x0,0x14,0x0,0x19,0x0, +0x19,0x0,0x12,0x0,0xe,0x0,0xd,0x0,0xa,0x0,0x9,0x0, +0x4,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0xa,0x0,0xd,0x0, +0xa,0x0,0xd,0x0,0x16,0x0,0x17,0x0,0x14,0x0,0x13,0x0, +0x10,0x0,0xb,0x0,0x9,0x0,0x8,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x8,0x0,0xf,0x0,0xe,0x0,0xd,0x0,0xf,0x0, +0x9,0x0,0x5,0x0,0x5,0x0,0x1,0x0,0x2,0x0,0xa,0x0, +0xe,0x0,0x10,0x0,0x13,0x0,0x13,0x0,0x14,0x0,0x13,0x0, +0xf,0x0,0xb,0x0,0xa,0x0,0x7,0x0,0x5,0x0,0x7,0x0, +0x6,0x0,0x2,0x0,0x5,0x0,0x9,0x0,0x9,0x0,0xc,0x0, +0xe,0x0,0xc,0x0,0xd,0x0,0x10,0x0,0x10,0x0,0xd,0x0, +0xb,0x0,0xa,0x0,0xa,0x0,0x9,0x0,0x7,0x0,0x6,0x0, +0x7,0x0,0x5,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0xa,0x0, +0xd,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xa,0x0,0xb,0x0, +0xd,0x0,0xd,0x0,0xb,0x0,0xb,0x0,0xd,0x0,0xd,0x0, +0xa,0x0,0xa,0x0,0xa,0x0,0x8,0x0,0xb,0x0,0xf,0x0, +0xd,0x0,0xc,0x0,0xb,0x0,0x7,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x6,0x0,0x9,0x0,0xe,0x0,0x16,0x0, +0x17,0x0,0x15,0x0,0x15,0x0,0x10,0x0,0x9,0x0,0x4,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x2,0x0,0x5,0x0, +0x9,0x0,0xc,0x0,0xc,0x0,0xb,0x0,0xa,0x0,0x7,0x0, +0x5,0x0,0x0,0x0,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0x1,0x0,0x4,0x0,0x6,0x0,0xb,0x0,0xc,0x0,0x9,0x0, +0x6,0x0,0x5,0x0,0xff,0xff,0xfa,0xff,0xf9,0xff,0xf6,0xff, +0xf3,0xff,0xf8,0xff,0xfc,0xff,0xfe,0xff,0x3,0x0,0x8,0x0, +0xa,0x0,0xc,0x0,0xc,0x0,0x8,0x0,0x3,0x0,0xfe,0xff, +0xf7,0xff,0xf2,0xff,0xf1,0xff,0xf1,0xff,0xf7,0xff,0xff,0xff, +0x4,0x0,0xa,0x0,0xf,0x0,0xc,0x0,0x7,0x0,0x3,0x0, +0xfa,0xff,0xf5,0xff,0xf2,0xff,0xf0,0xff,0xf3,0xff,0xf8,0xff, +0xfb,0xff,0xfe,0xff,0x2,0x0,0x5,0x0,0x8,0x0,0x9,0x0, +0x2,0x0,0xfc,0xff,0xfa,0xff,0xf5,0xff,0xef,0xff,0xef,0xff, +0xef,0xff,0xf2,0xff,0xf7,0xff,0xff,0xff,0x8,0x0,0xd,0x0, +0xe,0x0,0xe,0x0,0x9,0x0,0x2,0x0,0xfb,0xff,0xf5,0xff, +0xf1,0xff,0xf1,0xff,0xf1,0xff,0xf5,0xff,0xf9,0xff,0xff,0xff, +0x8,0x0,0xf,0x0,0xf,0x0,0xe,0x0,0xf,0x0,0xa,0x0, +0x1,0x0,0xfb,0xff,0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff, +0x1,0x0,0x8,0x0,0xb,0x0,0xd,0x0,0xf,0x0,0xd,0x0, +0x9,0x0,0x4,0x0,0xfc,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff, +0xf8,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x6,0x0,0x8,0x0, +0x8,0x0,0xa,0x0,0xd,0x0,0xa,0x0,0x7,0x0,0x4,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0,0x3,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff,0x2,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xfd,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0x0,0x0,0x4,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x1,0x0,0xfd,0xff,0xfb,0xff,0xf9,0xff,0xf5,0xff, +0xf5,0xff,0xf7,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0x0,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x8,0x0, +0x7,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x3,0x0, +0x5,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x4,0x0,0x6,0x0,0x6,0x0, +0x7,0x0,0x7,0x0,0x4,0x0,0x2,0x0,0xff,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xfe,0xff, +0xfc,0xff,0xf9,0xff,0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf7,0xff, +0xf8,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0, +0x2,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0x2,0x0, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0xff,0xff,0xfd,0xff,0xfa,0xff,0xf7,0xff,0xf6,0xff, +0xf8,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xfe,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff, +0xf9,0xff,0xfe,0xff,0x3,0x0,0x7,0x0,0xb,0x0,0xe,0x0, +0xc,0x0,0x9,0x0,0x6,0x0,0x2,0x0,0xfe,0xff,0xfb,0xff, +0xf8,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfc,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff, +0x3,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x6,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x5,0x0, +0x8,0x0,0x9,0x0,0x6,0x0,0x4,0x0,0x3,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x6,0x0,0x8,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x5,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x2,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x7,0x0, +0x5,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x2,0x0, +0x4,0x0,0x6,0x0,0x9,0x0,0xb,0x0,0xb,0x0,0xa,0x0, +0xa,0x0,0x9,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x3,0x0,0x5,0x0,0x4,0x0,0x6,0x0,0x9,0x0, +0x9,0x0,0x9,0x0,0x9,0x0,0x6,0x0,0x3,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0x1,0x0,0x3,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xfa,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x4,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xfe,0xff,0xfe,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x4,0x0,0x4,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x2,0x0, +0x3,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff, +0xf9,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfc,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0x3,0x0,0x5,0x0,0x2,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x6,0x0,0x7,0x0,0x5,0x0,0x6,0x0,0x8,0x0, +0x8,0x0,0x8,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xc,0x0, +0xd,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xc,0x0,0xb,0x0, +0xc,0x0,0xc,0x0,0xa,0x0,0xb,0x0,0xd,0x0,0xb,0x0, +0x9,0x0,0xb,0x0,0xb,0x0,0xb,0x0,0xb,0x0,0xa,0x0, +0xc,0x0,0xd,0x0,0xb,0x0,0x9,0x0,0x8,0x0,0x7,0x0, +0x6,0x0,0x4,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xf9,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xf8,0xff,0xf6,0xff, +0xf7,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff, +0xf8,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xf6,0xff,0xf6,0xff, +0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff, +0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff, +0xf3,0xff,0xf2,0xff,0xf2,0xff,0xf2,0xff,0xf1,0xff,0xf1,0xff, +0xf2,0xff,0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf2,0xff,0xf3,0xff, +0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff,0xf3,0xff, +0xf1,0xff,0xf1,0xff,0xf2,0xff,0xf2,0xff,0xf4,0xff,0xf5,0xff, +0xf6,0xff,0xf6,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x1,0x0,0x1,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x7,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x7,0x0, +0x7,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x7,0x0, +0x9,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x7,0x0, +0x6,0x0,0x5,0x0,0x6,0x0,0x5,0x0,0x6,0x0,0x7,0x0, +0x7,0x0,0x8,0x0,0xb,0x0,0xa,0x0,0x9,0x0,0xb,0x0, +0xb,0x0,0xa,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xb,0x0, +0xb,0x0,0xc,0x0,0xb,0x0,0xa,0x0,0xc,0x0,0xe,0x0, +0xd,0x0,0xd,0x0,0xe,0x0,0xf,0x0,0xf,0x0,0xf,0x0, +0x11,0x0,0x11,0x0,0xd,0x0,0xb,0x0,0xf,0x0,0x10,0x0, +0xf,0x0,0xf,0x0,0x11,0x0,0x12,0x0,0x11,0x0,0x10,0x0, +0xf,0x0,0xd,0x0,0xb,0x0,0xb,0x0,0xa,0x0,0x9,0x0, +0xb,0x0,0xd,0x0,0xd,0x0,0xe,0x0,0xe,0x0,0xf,0x0, +0xe,0x0,0xc,0x0,0xb,0x0,0xb,0x0,0x7,0x0,0x3,0x0, +0x3,0x0,0x5,0x0,0x4,0x0,0x1,0x0,0x2,0x0,0x7,0x0, +0x9,0x0,0x7,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x3,0x0,0x4,0x0,0x7,0x0,0x5,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfd,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x4,0x0,0x6,0x0,0x4,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfa,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xf6,0xff, +0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf1,0xff,0xf0,0xff,0xf3,0xff, +0xf4,0xff,0xf4,0xff,0xf6,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf9,0xff,0xf9,0xff,0xf4,0xff,0xf1,0xff,0xf2,0xff, +0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xf7,0xff,0xf6,0xff,0xf9,0xff,0xf6,0xff, +0xf0,0xff,0xf1,0xff,0xf3,0xff,0xf2,0xff,0xf4,0xff,0xf8,0xff, +0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff,0xf6,0xff, +0xf6,0xff,0xf9,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfa,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff, +0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0, +0x3,0x0,0x1,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x2,0x0,0x3,0x0, +0x2,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x5,0x0,0x7,0x0,0x8,0x0, +0x7,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x3,0x0,0x0,0x0, +0x3,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x6,0x0,0x5,0x0, +0x5,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x2,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x5,0x0, +0x7,0x0,0xa,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x9,0x0, +0x8,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x5,0x0,0x6,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x7,0x0, +0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x9,0x0,0xa,0x0, +0xb,0x0,0xb,0x0,0xc,0x0,0xd,0x0,0xc,0x0,0xc,0x0, +0xb,0x0,0x9,0x0,0x9,0x0,0xb,0x0,0xb,0x0,0xa,0x0, +0xb,0x0,0xc,0x0,0xd,0x0,0xf,0x0,0xe,0x0,0xf,0x0, +0xf,0x0,0x10,0x0,0x10,0x0,0x11,0x0,0x12,0x0,0x13,0x0, +0x13,0x0,0x13,0x0,0x12,0x0,0x11,0x0,0xd,0x0,0xa,0x0, +0x7,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x5,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x9,0x0,0x7,0x0, +0x6,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf7,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff,0xf9,0xff, +0xf8,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff,0xf3,0xff,0xf4,0xff, +0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff, +0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff, +0xf7,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff, +0xf3,0xff,0xf0,0xff,0xf1,0xff,0xf1,0xff,0xef,0xff,0xef,0xff, +0xee,0xff,0xee,0xff,0xf0,0xff,0xf1,0xff,0xf2,0xff,0xf1,0xff, +0xf0,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff,0xf1,0xff,0xf0,0xff, +0xef,0xff,0xef,0xff,0xef,0xff,0xef,0xff,0xef,0xff,0xee,0xff, +0xef,0xff,0xef,0xff,0xee,0xff,0xee,0xff,0xf0,0xff,0xf1,0xff, +0xf1,0xff,0xf2,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff, +0xf9,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x7,0x0,0x8,0x0, +0x6,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x6,0x0, +0x7,0x0,0x7,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0x9,0x0, +0xa,0x0,0xb,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xb,0x0, +0xa,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x7,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x7,0x0, +0x6,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x7,0x0, +0x8,0x0,0x7,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x8,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x8,0x0,0x8,0x0, +0x8,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x8,0x0,0x8,0x0, +0x7,0x0,0x9,0x0,0x9,0x0,0x6,0x0,0x7,0x0,0x8,0x0, +0x7,0x0,0x7,0x0,0x9,0x0,0x8,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x4,0x0,0x4,0x0, +0x1,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0xff,0xff, +0xfd,0xff,0x0,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xfe,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x5,0x0,0x6,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0xfe,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zombie2.pcm b/src/client/sound/data/zombie2.pcm new file mode 100755 index 0000000..242fc6e --- /dev/null +++ b/src/client/sound/data/zombie2.pcm @@ -0,0 +1,10110 @@ +unsigned char PCM_zombie2[121292] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0xde,0xec,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xff,0xff,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0xfb,0xff,0xfc,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff, +0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0xfb,0xff, +0xfb,0xff,0xfe,0xff,0xfa,0xff,0xfa,0xff,0xfe,0xff,0xf9,0xff, +0xf8,0xff,0xfc,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xff,0xff, +0xfe,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xfb,0xff,0xf9,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xf9,0xff,0xfb,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfb,0xff, +0xfd,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfa,0xff,0xfe,0xff,0xfd,0xff,0xf9,0xff,0xfc,0xff, +0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xf8,0xff,0xfa,0xff,0xff,0xff,0xf9,0xff,0xf6,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0x0,0x0,0xfa,0xff,0xf7,0xff,0xfd,0xff,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xf8,0xff, +0xf9,0xff,0xff,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff,0xf5,0xff, +0xfa,0xff,0x0,0x0,0xf9,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff, +0xfc,0xff,0xff,0xff,0xfa,0xff,0xf6,0xff,0xff,0xff,0xfb,0xff, +0xf5,0xff,0xfb,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff, +0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xf8,0xff,0xf9,0xff,0xfa,0xff,0xf7,0xff,0xfa,0xff,0xfc,0xff, +0xf8,0xff,0xfd,0xff,0xfe,0xff,0xf7,0xff,0xfc,0xff,0xfc,0xff, +0xf5,0xff,0xf7,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff,0xf5,0xff, +0xf2,0xff,0xf6,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf7,0xff, +0xfb,0xff,0xfd,0xff,0xf7,0xff,0xf4,0xff,0xf8,0xff,0xf5,0xff, +0xf4,0xff,0xf8,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff,0xf7,0xff, +0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfd,0xff,0xf9,0xff,0xf2,0xff, +0xf6,0xff,0xf7,0xff,0xf3,0xff,0xf5,0xff,0xf7,0xff,0xf4,0xff, +0xf1,0xff,0xf1,0xff,0xf4,0xff,0xf6,0xff,0xf3,0xff,0xf1,0xff, +0xf3,0xff,0xf3,0xff,0xf6,0xff,0xf9,0xff,0xf2,0xff,0xf0,0xff, +0xf6,0xff,0xf1,0xff,0xef,0xff,0xf1,0xff,0xec,0xff,0xeb,0xff, +0xef,0xff,0xf0,0xff,0xf2,0xff,0xef,0xff,0xef,0xff,0xf4,0xff, +0xf2,0xff,0xf2,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf3,0xff, +0xee,0xff,0xf0,0xff,0xf0,0xff,0xef,0xff,0xf4,0xff,0xf3,0xff, +0xf1,0xff,0xf3,0xff,0xf2,0xff,0xf0,0xff,0xf1,0xff,0xed,0xff, +0xe9,0xff,0xeb,0xff,0xee,0xff,0xee,0xff,0xf0,0xff,0xef,0xff, +0xee,0xff,0xf3,0xff,0xf2,0xff,0xf0,0xff,0xf0,0xff,0xed,0xff, +0xed,0xff,0xf0,0xff,0xf1,0xff,0xf3,0xff,0xf1,0xff,0xee,0xff, +0xf2,0xff,0xf1,0xff,0xf5,0xff,0xf9,0xff,0xf2,0xff,0xf0,0xff, +0xf0,0xff,0xea,0xff,0xee,0xff,0xed,0xff,0xe7,0xff,0xea,0xff, +0xec,0xff,0xea,0xff,0xe7,0xff,0xe5,0xff,0xeb,0xff,0xef,0xff, +0xed,0xff,0xee,0xff,0xef,0xff,0xe9,0xff,0xe3,0xff,0xe8,0xff, +0xef,0xff,0xea,0xff,0xea,0xff,0xf3,0xff,0xf0,0xff,0xf0,0xff, +0xf1,0xff,0xeb,0xff,0xef,0xff,0xf0,0xff,0xea,0xff,0xef,0xff, +0xef,0xff,0xeb,0xff,0xf1,0xff,0xf3,0xff,0xf5,0xff,0xf0,0xff, +0xeb,0xff,0xf7,0xff,0xf5,0xff,0xed,0xff,0xf7,0xff,0xf1,0xff, +0xe7,0xff,0xf0,0xff,0xed,0xff,0xe7,0xff,0xed,0xff,0xeb,0xff, +0xe8,0xff,0xed,0xff,0xf1,0xff,0xf0,0xff,0xec,0xff,0xee,0xff, +0xf1,0xff,0xed,0xff,0xef,0xff,0xf1,0xff,0xf0,0xff,0xf3,0xff, +0xf5,0xff,0xf6,0xff,0xf8,0xff,0xf2,0xff,0xee,0xff,0xf1,0xff, +0xf1,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf5,0xff,0xf5,0xff, +0xf4,0xff,0xf9,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfe,0xff, +0x3,0x0,0xff,0xff,0xf9,0xff,0xfc,0xff,0xfa,0xff,0xf6,0xff, +0xff,0xff,0x2,0x0,0xfa,0xff,0xfc,0xff,0x1,0x0,0xfe,0xff, +0xf9,0xff,0xfa,0xff,0x4,0x0,0x5,0x0,0xfd,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x5,0x0,0xfb,0xff,0xf3,0xff,0xfd,0xff, +0xfd,0xff,0xf7,0xff,0xfb,0xff,0xf6,0xff,0xf0,0xff,0xfb,0xff, +0xfd,0xff,0xef,0xff,0xf3,0xff,0xfb,0xff,0xf1,0xff,0xf0,0xff, +0xf6,0xff,0xee,0xff,0xf4,0xff,0xfc,0xff,0xef,0xff,0xf3,0xff, +0xfc,0xff,0xf1,0xff,0xf5,0xff,0xfc,0xff,0xf6,0xff,0xfb,0xff, +0xfe,0xff,0xfc,0xff,0xff,0xff,0xf6,0xff,0xf4,0xff,0xff,0xff, +0xfc,0xff,0xf9,0xff,0xfb,0xff,0xf4,0xff,0xf7,0xff,0xfc,0xff, +0xf4,0xff,0xf6,0xff,0xf8,0xff,0xf0,0xff,0xf0,0xff,0xf2,0xff, +0xed,0xff,0xf2,0xff,0xf4,0xff,0xeb,0xff,0xf0,0xff,0xfa,0xff, +0xf6,0xff,0xf6,0xff,0xfc,0xff,0xfb,0xff,0xf4,0xff,0xee,0xff, +0xf3,0xff,0xfd,0xff,0xf9,0xff,0xf0,0xff,0xf6,0xff,0xfb,0xff, +0xf9,0xff,0xf6,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf4,0xff, +0xf1,0xff,0xf2,0xff,0xf2,0xff,0xf1,0xff,0xf6,0xff,0xf4,0xff, +0xf2,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xff,0xff,0xf6,0xff, +0xf4,0xff,0xfc,0xff,0xf6,0xff,0xf3,0xff,0xf4,0xff,0xee,0xff, +0xed,0xff,0xed,0xff,0xeb,0xff,0xed,0xff,0xee,0xff,0xf2,0xff, +0xed,0xff,0xea,0xff,0xf7,0xff,0xf5,0xff,0xe8,0xff,0xef,0xff, +0xf7,0xff,0xf7,0xff,0xf4,0xff,0xf0,0xff,0xf3,0xff,0xef,0xff, +0xee,0xff,0xf8,0xff,0xee,0xff,0xe9,0xff,0xfa,0xff,0xf4,0xff, +0xea,0xff,0xef,0xff,0xf0,0xff,0xf2,0xff,0xf0,0xff,0xec,0xff, +0xf1,0xff,0xf2,0xff,0xf0,0xff,0xf0,0xff,0xec,0xff,0xef,0xff, +0xee,0xff,0xea,0xff,0xef,0xff,0xee,0xff,0xec,0xff,0xf1,0xff, +0xed,0xff,0xed,0xff,0xf2,0xff,0xee,0xff,0xf1,0xff,0xf1,0xff, +0xe9,0xff,0xe9,0xff,0xee,0xff,0xe9,0xff,0xe6,0xff,0xec,0xff, +0xec,0xff,0xec,0xff,0xfc,0xff,0xfc,0xff,0xef,0xff,0xf8,0xff, +0xfb,0xff,0xf5,0xff,0xf9,0xff,0xf5,0xff,0xf0,0xff,0xf3,0xff, +0xed,0xff,0xf0,0xff,0xf6,0xff,0xed,0xff,0xee,0xff,0xf3,0xff, +0xf0,0xff,0xf2,0xff,0xf4,0xff,0xf3,0xff,0xf1,0xff,0xf3,0xff, +0xf5,0xff,0xec,0xff,0xe7,0xff,0xf0,0xff,0xf0,0xff,0xea,0xff, +0xe9,0xff,0xe9,0xff,0xe6,0xff,0xe8,0xff,0xed,0xff,0xe9,0xff, +0xe6,0xff,0xf3,0xff,0xf3,0xff,0xe4,0xff,0xe9,0xff,0xf1,0xff, +0xe9,0xff,0xea,0xff,0xf0,0xff,0xef,0xff,0xeb,0xff,0xec,0xff, +0xee,0xff,0xe7,0xff,0xe9,0xff,0xf0,0xff,0xe5,0xff,0xdf,0xff, +0xe7,0xff,0xea,0xff,0xeb,0xff,0xe9,0xff,0xe9,0xff,0xf4,0xff, +0xf1,0xff,0xeb,0xff,0xf5,0xff,0xf5,0xff,0xee,0xff,0xf3,0xff, +0xf2,0xff,0xea,0xff,0xed,0xff,0xf2,0xff,0xf1,0xff,0xf2,0xff, +0xf3,0xff,0xf3,0xff,0xf6,0xff,0xf3,0xff,0xef,0xff,0xf7,0xff, +0xf2,0xff,0xec,0xff,0xf7,0xff,0xf3,0xff,0xeb,0xff,0xf4,0xff, +0xf6,0xff,0xf3,0xff,0xf4,0xff,0xf1,0xff,0xef,0xff,0xec,0xff, +0xe8,0xff,0xee,0xff,0xee,0xff,0xed,0xff,0xf1,0xff,0xef,0xff, +0xed,0xff,0xea,0xff,0xef,0xff,0xf9,0xff,0xf0,0xff,0xec,0xff, +0xf7,0xff,0xf1,0xff,0xed,0xff,0xf5,0xff,0xef,0xff,0xec,0xff, +0xf7,0xff,0xff,0xff,0xfe,0xff,0xf5,0xff,0xf3,0xff,0xfb,0xff, +0xfb,0xff,0xf7,0xff,0xfb,0xff,0x4,0x0,0x5,0x0,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xf6,0xff,0xf5,0xff,0xf4,0xff,0xeb,0xff, +0xec,0xff,0xf2,0xff,0xf3,0xff,0xf6,0xff,0xf5,0xff,0xf0,0xff, +0xee,0xff,0xed,0xff,0xef,0xff,0xee,0xff,0xea,0xff,0xec,0xff, +0xf3,0xff,0xf2,0xff,0xec,0xff,0xee,0xff,0xf1,0xff,0xef,0xff, +0xf8,0xff,0x2,0x0,0xff,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xf7,0xff,0xf2,0xff,0xf3,0xff,0xf0,0xff,0xe8,0xff,0xe9,0xff, +0xe9,0xff,0xe8,0xff,0xed,0xff,0xee,0xff,0xf2,0xff,0xfa,0xff, +0xf5,0xff,0xf2,0xff,0xf8,0xff,0xf3,0xff,0xed,0xff,0xee,0xff, +0xf1,0xff,0xf4,0xff,0xf0,0xff,0xeb,0xff,0xf0,0xff,0xf1,0xff, +0xe6,0xff,0xe2,0xff,0xf1,0xff,0xf8,0xff,0xef,0xff,0xf2,0xff, +0xfa,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff,0xf4,0xff,0xf9,0xff, +0xf9,0xff,0xf1,0xff,0xf6,0xff,0xf3,0xff,0xe8,0xff,0xf6,0xff, +0x3,0x0,0xfb,0xff,0xf3,0xff,0xf5,0xff,0xfa,0xff,0xf6,0xff, +0xf6,0xff,0xfc,0xff,0xf4,0xff,0xf3,0xff,0x2,0x0,0xf7,0xff, +0xea,0xff,0xfa,0xff,0x3,0x0,0x2,0x0,0x0,0x0,0xfa,0xff, +0x3,0x0,0x9,0x0,0xfc,0xff,0xfd,0xff,0x3,0x0,0xfc,0xff, +0xfd,0xff,0x3,0x0,0x0,0x0,0xf5,0xff,0xf3,0xff,0xfd,0xff, +0xfd,0xff,0xf7,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x5,0x0, +0x1,0x0,0xfb,0xff,0xfb,0xff,0xf6,0xff,0xf6,0xff,0xfa,0xff, +0xf6,0xff,0xed,0xff,0xe9,0xff,0xed,0xff,0xed,0xff,0xea,0xff, +0xee,0xff,0xf1,0xff,0xed,0xff,0xe8,0xff,0xe7,0xff,0xea,0xff, +0xed,0xff,0xf2,0xff,0xf0,0xff,0xe3,0xff,0xde,0xff,0xde,0xff, +0xe0,0xff,0xe8,0xff,0xe5,0xff,0xe4,0xff,0xf0,0xff,0xe8,0xff, +0xdc,0xff,0xe8,0xff,0xf1,0xff,0xea,0xff,0xe7,0xff,0xe3,0xff, +0xda,0xff,0xd8,0xff,0xe4,0xff,0xe2,0xff,0xd7,0xff,0xd8,0xff, +0xd5,0xff,0xd1,0xff,0xd7,0xff,0xd3,0xff,0xd9,0xff,0xde,0xff, +0xd5,0xff,0xde,0xff,0xdf,0xff,0xd4,0xff,0xe2,0xff,0xdc,0xff, +0xcb,0xff,0xdc,0xff,0xdc,0xff,0xcc,0xff,0xcf,0xff,0xd3,0xff, +0xdc,0xff,0xdc,0xff,0xd0,0xff,0xd8,0xff,0xe2,0xff,0xe6,0xff, +0xed,0xff,0xe4,0xff,0xdf,0xff,0xe3,0xff,0xd8,0xff,0xd6,0xff, +0xde,0xff,0xd9,0xff,0xd3,0xff,0xd8,0xff,0xda,0xff,0xd7,0xff, +0xe6,0xff,0xed,0xff,0xcf,0xff,0xd1,0xff,0xf0,0xff,0xe2,0xff, +0xda,0xff,0xf5,0xff,0xf7,0xff,0xf2,0xff,0xf3,0xff,0xe8,0xff, +0xe8,0xff,0xee,0xff,0xf1,0xff,0xf1,0xff,0xed,0xff,0xf0,0xff, +0xef,0xff,0xf0,0xff,0xf9,0xff,0xf0,0xff,0xe8,0xff,0xed,0xff, +0xeb,0xff,0xeb,0xff,0xe7,0xff,0xdd,0xff,0xe1,0xff,0xe2,0xff, +0xdd,0xff,0xe3,0xff,0xe4,0xff,0xde,0xff,0xe0,0xff,0xe5,0xff, +0xe5,0xff,0xe6,0xff,0xf4,0xff,0xf3,0xff,0xe4,0xff,0xf9,0xff, +0x6,0x0,0xed,0xff,0xee,0xff,0xfc,0xff,0xf0,0xff,0xe5,0xff, +0xe1,0xff,0xe5,0xff,0xeb,0xff,0xe9,0xff,0xe9,0xff,0xe3,0xff, +0xdf,0xff,0xe7,0xff,0xe1,0xff,0xe8,0xff,0xf9,0xff,0xe7,0xff, +0xe1,0xff,0xef,0xff,0xe8,0xff,0xec,0xff,0xef,0xff,0xe0,0xff, +0xe5,0xff,0xea,0xff,0xe9,0xff,0xf2,0xff,0xe1,0xff,0xdb,0xff, +0xf5,0xff,0xf3,0xff,0xe9,0xff,0xef,0xff,0xe4,0xff,0xe2,0xff, +0xe9,0xff,0xdb,0xff,0xd7,0xff,0xdb,0xff,0xdc,0xff,0xeb,0xff, +0xeb,0xff,0xda,0xff,0xdc,0xff,0xe4,0xff,0xe6,0xff,0xda,0xff, +0xc2,0xff,0xc6,0xff,0xcb,0xff,0xc0,0xff,0xca,0xff,0xcd,0xff, +0xca,0xff,0xe2,0xff,0xe4,0xff,0xd8,0xff,0xe2,0xff,0xe3,0xff, +0xdd,0xff,0xd5,0xff,0xcf,0xff,0xdb,0xff,0xda,0xff,0xd9,0xff, +0xef,0xff,0xed,0xff,0xeb,0xff,0xfa,0xff,0xef,0xff,0xdf,0xff, +0xdf,0xff,0xe6,0xff,0xeb,0xff,0xd8,0xff,0xd4,0xff,0xe0,0xff, +0xd1,0xff,0xcd,0xff,0xd1,0xff,0xcf,0xff,0xde,0xff,0xde,0xff, +0xe3,0xff,0xf9,0xff,0xeb,0xff,0xf4,0xff,0x8,0x0,0xf1,0xff, +0xf6,0xff,0xea,0xff,0xc7,0xff,0xe9,0xff,0xd0,0xff,0x89,0xff, +0xb9,0xff,0xda,0xff,0xbe,0xff,0xda,0xff,0xf1,0xff,0xfd,0xff, +0x25,0x0,0x25,0x0,0x13,0x0,0x1b,0x0,0x29,0x0,0x28,0x0, +0xe,0x0,0x8,0x0,0x16,0x0,0x0,0x0,0xef,0xff,0xf4,0xff, +0xf7,0xff,0x2,0x0,0xf4,0xff,0xd8,0xff,0xe1,0xff,0xe4,0xff, +0xd2,0xff,0xd2,0xff,0xe2,0xff,0xf1,0xff,0xef,0xff,0xea,0xff, +0xfe,0xff,0x6,0x0,0xfc,0xff,0xfb,0xff,0xf7,0xff,0xf1,0xff, +0xed,0xff,0xe6,0xff,0xeb,0xff,0xf0,0xff,0xf8,0xff,0x7,0x0, +0x7,0x0,0x8,0x0,0x1b,0x0,0x1f,0x0,0x18,0x0,0x15,0x0, +0xa,0x0,0xfd,0xff,0xf1,0xff,0xe8,0xff,0xe4,0xff,0xe6,0xff, +0xf0,0xff,0xf0,0xff,0xe6,0xff,0xec,0xff,0xee,0xff,0xe4,0xff, +0xea,0xff,0xea,0xff,0xdc,0xff,0xdf,0xff,0xe6,0xff,0xe2,0xff, +0xe4,0xff,0xed,0xff,0xf2,0xff,0xee,0xff,0xe6,0xff,0xe5,0xff, +0xed,0xff,0xee,0xff,0xea,0xff,0xf0,0xff,0xf6,0xff,0xef,0xff, +0xf7,0xff,0x5,0x0,0x6,0x0,0xe,0x0,0x11,0x0,0x6,0x0, +0x3,0x0,0x4,0x0,0xfd,0xff,0xec,0xff,0xdf,0xff,0xdf,0xff, +0xda,0xff,0xdb,0xff,0xe6,0xff,0xdf,0xff,0xdd,0xff,0xe4,0xff, +0xda,0xff,0xe2,0xff,0xeb,0xff,0xd6,0xff,0xdb,0xff,0xe6,0xff, +0xd7,0xff,0xdd,0xff,0xe5,0xff,0xe4,0xff,0xea,0xff,0xe9,0xff, +0xef,0xff,0xf3,0xff,0xe9,0xff,0xf0,0xff,0xf4,0xff,0xf1,0xff, +0xfd,0xff,0xf8,0xff,0xf7,0xff,0xb,0x0,0x6,0x0,0xfd,0xff, +0xfc,0xff,0xf2,0xff,0xee,0xff,0xe8,0xff,0xea,0xff,0xf8,0xff, +0xef,0xff,0xe8,0xff,0xf3,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff, +0xed,0xff,0xef,0xff,0xf6,0xff,0xf8,0xff,0xf5,0xff,0xf5,0xff, +0xfe,0xff,0xfb,0xff,0xf9,0xff,0x6,0x0,0x0,0x0,0xfa,0xff, +0x3,0x0,0x0,0x0,0xfb,0xff,0xfb,0xff,0xfc,0xff,0x8,0x0, +0x8,0x0,0x3,0x0,0x8,0x0,0x0,0x0,0xfc,0xff,0x7,0x0, +0x5,0x0,0xfb,0xff,0xef,0xff,0xe0,0xff,0xdb,0xff,0xdb,0xff, +0xdb,0xff,0xd9,0xff,0xd3,0xff,0xd2,0xff,0xcf,0xff,0xca,0xff, +0xd3,0xff,0xdb,0xff,0xdd,0xff,0xe0,0xff,0xdf,0xff,0xe0,0xff, +0xeb,0xff,0xf1,0xff,0xe9,0xff,0xe8,0xff,0xf3,0xff,0xf1,0xff, +0xf1,0xff,0xfa,0xff,0xf5,0xff,0xf2,0xff,0xf9,0xff,0xf8,0xff, +0xfa,0xff,0xfd,0xff,0xfa,0xff,0xf2,0xff,0xdf,0xff,0xd8,0xff, +0xde,0xff,0xd3,0xff,0xc7,0xff,0xc6,0xff,0xc4,0xff,0xcc,0xff, +0xca,0xff,0xb6,0xff,0xb7,0xff,0xc0,0xff,0xb4,0xff,0xaa,0xff, +0xad,0xff,0xae,0xff,0xad,0xff,0xb7,0xff,0xbd,0xff,0xbc,0xff, +0xc4,0xff,0xd1,0xff,0xcf,0xff,0xc3,0xff,0xb9,0xff,0xb9,0xff, +0xc0,0xff,0xbf,0xff,0xbd,0xff,0xc4,0xff,0xcf,0xff,0xd2,0xff, +0xcb,0xff,0xc5,0xff,0xbf,0xff,0xb8,0xff,0xb6,0xff,0xab,0xff, +0x9c,0xff,0x9b,0xff,0x99,0xff,0x95,0xff,0x9a,0xff,0x9e,0xff, +0xa3,0xff,0xa9,0xff,0xa2,0xff,0xa2,0xff,0xb0,0xff,0xb5,0xff, +0xb0,0xff,0xb0,0xff,0xba,0xff,0xc3,0xff,0xbd,0xff,0xb7,0xff, +0xc0,0xff,0xbd,0xff,0xb8,0xff,0xcb,0xff,0xd7,0xff,0xd0,0xff, +0xd1,0xff,0xd2,0xff,0xd5,0xff,0xeb,0xff,0xf0,0xff,0xda,0xff, +0xcf,0xff,0xcd,0xff,0xc6,0xff,0xc3,0xff,0xbc,0xff,0xb8,0xff, +0xc7,0xff,0xd2,0xff,0xce,0xff,0xc8,0xff,0xc4,0xff,0xca,0xff, +0xd7,0xff,0xd7,0xff,0xce,0xff,0xce,0xff,0xd3,0xff,0xdc,0xff, +0xe3,0xff,0xe5,0xff,0xe7,0xff,0xe9,0xff,0xe8,0xff,0xe5,0xff, +0xe4,0xff,0xec,0xff,0xf7,0xff,0xf6,0xff,0xf2,0xff,0xf7,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xf5,0xff,0xef,0xff,0xf4,0xff, +0xf2,0xff,0xe5,0xff,0xe6,0xff,0xf3,0xff,0xee,0xff,0xde,0xff, +0xe6,0xff,0xf5,0xff,0xf0,0xff,0xe6,0xff,0xe5,0xff,0xe9,0xff, +0xf2,0xff,0xf2,0xff,0xe9,0xff,0xe9,0xff,0xee,0xff,0xec,0xff, +0xe9,0xff,0xe9,0xff,0xea,0xff,0xf3,0xff,0xf6,0xff,0xed,0xff, +0xeb,0xff,0xf4,0xff,0xf5,0xff,0xee,0xff,0xe6,0xff,0xe3,0xff, +0xed,0xff,0xec,0xff,0xe5,0xff,0xed,0xff,0xf3,0xff,0xed,0xff, +0xec,0xff,0xed,0xff,0xeb,0xff,0xe7,0xff,0xe4,0xff,0xee,0xff, +0xf5,0xff,0xed,0xff,0xf1,0xff,0xf6,0xff,0xeb,0xff,0xeb,0xff, +0xf2,0xff,0xef,0xff,0xf4,0xff,0x0,0x0,0xfd,0xff,0xf9,0xff, +0xff,0xff,0xff,0xff,0x3,0x0,0xa,0x0,0xff,0xff,0xf6,0xff, +0xfc,0xff,0xf6,0xff,0xf2,0xff,0xf6,0xff,0xf3,0xff,0xf2,0xff, +0xf3,0xff,0xf3,0xff,0xf8,0xff,0xf1,0xff,0xec,0xff,0xf1,0xff, +0xee,0xff,0xf0,0xff,0xf9,0xff,0xf4,0xff,0xf8,0xff,0x0,0x0, +0xf9,0xff,0xfb,0xff,0x2,0x0,0x3,0x0,0x1,0x0,0xf5,0xff, +0xef,0xff,0xf8,0xff,0xf9,0xff,0xf8,0xff,0xf6,0xff,0xf4,0xff, +0xf9,0xff,0xfc,0xff,0xfb,0xff,0x3,0x0,0x2,0x0,0xfe,0xff, +0x1,0x0,0x4,0x0,0x3,0x0,0x0,0x0,0x6,0x0,0xf,0x0, +0xa,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0xb,0x0,0xc,0x0, +0x9,0x0,0xf,0x0,0xe,0x0,0xc,0x0,0x13,0x0,0xd,0x0, +0x5,0x0,0xb,0x0,0xd,0x0,0xa,0x0,0x5,0x0,0x0,0x0, +0x3,0x0,0x8,0x0,0x2,0x0,0xfd,0xff,0x1,0x0,0x4,0x0, +0x2,0x0,0x4,0x0,0x6,0x0,0x3,0x0,0x4,0x0,0x2,0x0, +0xff,0xff,0xff,0xff,0xfa,0xff,0xf9,0xff,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x5,0x0,0x3,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xfc,0xff,0xfb,0xff,0xf8,0xff,0xee,0xff,0xef,0xff, +0xf0,0xff,0xe8,0xff,0xeb,0xff,0xec,0xff,0xe8,0xff,0xf0,0xff, +0xf0,0xff,0xea,0xff,0xec,0xff,0xeb,0xff,0xe9,0xff,0xec,0xff, +0xee,0xff,0xea,0xff,0xe0,0xff,0xe0,0xff,0xe4,0xff,0xde,0xff, +0xdf,0xff,0xe4,0xff,0xde,0xff,0xdd,0xff,0xe1,0xff,0xdf,0xff, +0xdf,0xff,0xdf,0xff,0xda,0xff,0xda,0xff,0xdb,0xff,0xd9,0xff, +0xd2,0xff,0xd0,0xff,0xd7,0xff,0xd6,0xff,0xcd,0xff,0xd0,0xff, +0xd6,0xff,0xcf,0xff,0xcb,0xff,0xcb,0xff,0xc9,0xff,0xca,0xff, +0xce,0xff,0xce,0xff,0xd0,0xff,0xd0,0xff,0xcc,0xff,0xcc,0xff, +0xd1,0xff,0xd3,0xff,0xd4,0xff,0xd6,0xff,0xd6,0xff,0xd7,0xff, +0xdc,0xff,0xdd,0xff,0xd7,0xff,0xd8,0xff,0xde,0xff,0xdd,0xff, +0xda,0xff,0xdc,0xff,0xd9,0xff,0xd6,0xff,0xd9,0xff,0xd9,0xff, +0xd8,0xff,0xda,0xff,0xd9,0xff,0xdb,0xff,0xde,0xff,0xdc,0xff, +0xda,0xff,0xe1,0xff,0xe8,0xff,0xe8,0xff,0xe8,0xff,0xe9,0xff, +0xe6,0xff,0xe5,0xff,0xea,0xff,0xe9,0xff,0xe6,0xff,0xe8,0xff, +0xed,0xff,0xec,0xff,0xea,0xff,0xf0,0xff,0xf6,0xff,0xf2,0xff, +0xf0,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf9,0xff,0xf9,0xff, +0xfb,0xff,0xfe,0xff,0x0,0x0,0x4,0x0,0x6,0x0,0x6,0x0, +0xc,0x0,0xb,0x0,0x6,0x0,0x9,0x0,0xb,0x0,0xc,0x0, +0xf,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0xe,0x0,0x14,0x0, +0x16,0x0,0x10,0x0,0x11,0x0,0x14,0x0,0x15,0x0,0x18,0x0, +0x1a,0x0,0x17,0x0,0x18,0x0,0x1f,0x0,0x22,0x0,0x1d,0x0, +0x19,0x0,0x1a,0x0,0x18,0x0,0x1a,0x0,0x1f,0x0,0x1b,0x0, +0x18,0x0,0x1c,0x0,0x1a,0x0,0x17,0x0,0x1b,0x0,0x20,0x0, +0x22,0x0,0x20,0x0,0x1c,0x0,0x1c,0x0,0x1f,0x0,0x1c,0x0, +0x1a,0x0,0x1e,0x0,0x1f,0x0,0x1d,0x0,0x20,0x0,0x23,0x0, +0x25,0x0,0x2c,0x0,0x2a,0x0,0x25,0x0,0x29,0x0,0x27,0x0, +0x21,0x0,0x27,0x0,0x2b,0x0,0x22,0x0,0x1d,0x0,0x21,0x0, +0x26,0x0,0x20,0x0,0x1a,0x0,0x22,0x0,0x24,0x0,0x1b,0x0, +0x1c,0x0,0x1f,0x0,0x16,0x0,0x11,0x0,0x13,0x0,0x15,0x0, +0x11,0x0,0xc,0x0,0xf,0x0,0x10,0x0,0xd,0x0,0x10,0x0, +0x13,0x0,0xc,0x0,0x8,0x0,0xe,0x0,0x15,0x0,0xd,0x0, +0x3,0x0,0x8,0x0,0xd,0x0,0xd,0x0,0x12,0x0,0x10,0x0, +0xf,0x0,0x13,0x0,0x10,0x0,0x10,0x0,0xf,0x0,0x9,0x0, +0xa,0x0,0xa,0x0,0x8,0x0,0x12,0x0,0x11,0x0,0x6,0x0, +0xb,0x0,0xa,0x0,0x0,0x0,0x3,0x0,0x6,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x9,0x0,0xc,0x0,0x6,0x0,0x8,0x0, +0xa,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0xfa,0xff,0xfa,0xff, +0xff,0xff,0xf9,0xff,0xee,0xff,0xea,0xff,0xef,0xff,0xf1,0xff, +0xed,0xff,0xea,0xff,0xeb,0xff,0xea,0xff,0xe4,0xff,0xdb,0xff, +0xd7,0xff,0xd9,0xff,0xd9,0xff,0xd7,0xff,0xd9,0xff,0xd8,0xff, +0xce,0xff,0xc8,0xff,0xce,0xff,0xd0,0xff,0xca,0xff,0xc8,0xff, +0xc8,0xff,0xc4,0xff,0xc2,0xff,0xc0,0xff,0xba,0xff,0xb6,0xff, +0xbc,0xff,0xc1,0xff,0xbd,0xff,0xbb,0xff,0xbe,0xff,0xb8,0xff, +0xb5,0xff,0xba,0xff,0xb4,0xff,0xa9,0xff,0xa7,0xff,0xa7,0xff, +0xa8,0xff,0xa7,0xff,0xa1,0xff,0xa5,0xff,0xa9,0xff,0xa3,0xff, +0x9f,0xff,0x98,0xff,0x8e,0xff,0x96,0xff,0x99,0xff,0x8a,0xff, +0x87,0xff,0x8b,0xff,0x88,0xff,0x8a,0xff,0x88,0xff,0x84,0xff, +0x85,0xff,0x7d,0xff,0x77,0xff,0x7a,0xff,0x7e,0xff,0x85,0xff, +0x83,0xff,0x7f,0xff,0x88,0xff,0x85,0xff,0x85,0xff,0xa5,0xff, +0xbd,0xff,0xba,0xff,0xb9,0xff,0xbc,0xff,0xbc,0xff,0xbe,0xff, +0xc2,0xff,0xc5,0xff,0xc7,0xff,0xc9,0xff,0xcc,0xff,0xcb,0xff, +0xce,0xff,0xd1,0xff,0xce,0xff,0xd2,0xff,0xd4,0xff,0xd5,0xff, +0xde,0xff,0xe1,0xff,0xe3,0xff,0xea,0xff,0xea,0xff,0xec,0xff, +0xf0,0xff,0xec,0xff,0xef,0xff,0xf3,0xff,0xf2,0xff,0xf9,0xff, +0x3,0x0,0x4,0x0,0x4,0x0,0x6,0x0,0xb,0x0,0x10,0x0, +0x12,0x0,0x11,0x0,0x12,0x0,0x17,0x0,0x19,0x0,0x15,0x0, +0x17,0x0,0x1c,0x0,0x1d,0x0,0x22,0x0,0x28,0x0,0x2d,0x0, +0x32,0x0,0x37,0x0,0x3f,0x0,0x42,0x0,0x3f,0x0,0x41,0x0, +0x47,0x0,0x4a,0x0,0x50,0x0,0x51,0x0,0x50,0x0,0x5a,0x0, +0x65,0x0,0x6b,0x0,0x70,0x0,0x72,0x0,0x74,0x0,0x73,0x0, +0x6c,0x0,0x69,0x0,0x68,0x0,0x60,0x0,0x5e,0x0,0x64,0x0, +0x66,0x0,0x6b,0x0,0x72,0x0,0x73,0x0,0x70,0x0,0x73,0x0, +0x77,0x0,0x79,0x0,0x7b,0x0,0x81,0x0,0x82,0x0,0x76,0x0, +0x6b,0x0,0x66,0x0,0x5d,0x0,0x54,0x0,0x50,0x0,0x52,0x0, +0x5e,0x0,0x72,0x0,0x87,0x0,0x95,0x0,0x9b,0x0,0xa2,0x0, +0xa4,0x0,0x8f,0x0,0x71,0x0,0x5a,0x0,0x3b,0x0,0x19,0x0, +0x6,0x0,0x3,0x0,0x4,0x0,0xe,0x0,0x2a,0x0,0x4b,0x0, +0x62,0x0,0x79,0x0,0x8e,0x0,0x89,0x0,0x76,0x0,0x59,0x0, +0x26,0x0,0xea,0xff,0xb3,0xff,0x87,0xff,0x68,0xff,0x50,0xff, +0x4e,0xff,0x70,0xff,0x9b,0xff,0xc9,0xff,0x5,0x0,0x3c,0x0, +0x60,0x0,0x74,0x0,0x78,0x0,0x6d,0x0,0x45,0x0,0xc,0x0, +0xd4,0xff,0x92,0xff,0x48,0xff,0x1c,0xff,0x12,0xff,0x14,0xff, +0x20,0xff,0x4e,0xff,0x91,0xff,0xcd,0xff,0x5,0x0,0x38,0x0, +0x4e,0x0,0x4b,0x0,0x35,0x0,0x5,0x0,0xc4,0xff,0x80,0xff, +0x43,0xff,0xf,0xff,0xe8,0xfe,0xda,0xfe,0xea,0xfe,0xc,0xff, +0x36,0xff,0x65,0xff,0xa0,0xff,0xdb,0xff,0x6,0x0,0x18,0x0, +0x12,0x0,0x6,0x0,0xe2,0xff,0x96,0xff,0x4c,0xff,0xd,0xff, +0xc9,0xfe,0xa4,0xfe,0xa0,0xfe,0xae,0xfe,0xdf,0xfe,0x1e,0xff, +0x59,0xff,0x9b,0xff,0xd6,0xff,0xff,0xff,0x14,0x0,0xa,0x0, +0xf1,0xff,0xcf,0xff,0x93,0xff,0x4a,0xff,0x6,0xff,0xd1,0xfe, +0xb0,0xfe,0xa8,0xfe,0xc5,0xfe,0x3,0xff,0x52,0xff,0xa6,0xff, +0xf4,0xff,0x3f,0x0,0x7e,0x0,0x8c,0x0,0x6f,0x0,0x4b,0x0, +0x1d,0x0,0xd0,0xff,0x78,0xff,0x38,0xff,0x1d,0xff,0x15,0xff, +0x20,0xff,0x48,0xff,0x85,0xff,0xca,0xff,0x14,0x0,0x61,0x0, +0x9d,0x0,0xbd,0x0,0xc4,0x0,0xaa,0x0,0x6c,0x0,0x1f,0x0, +0xd4,0xff,0x90,0xff,0x59,0xff,0x3b,0xff,0x36,0xff,0x45,0xff, +0x70,0xff,0xbb,0xff,0x11,0x0,0x59,0x0,0x94,0x0,0xc3,0x0, +0xd0,0x0,0xb7,0x0,0x97,0x0,0x7d,0x0,0x4c,0x0,0x1,0x0, +0xb8,0xff,0x85,0xff,0x61,0xff,0x47,0xff,0x4f,0xff,0x7b,0xff, +0xb4,0xff,0xf1,0xff,0x20,0x0,0x3a,0x0,0x5c,0x0,0x80,0x0, +0x91,0x0,0x9a,0x0,0xa0,0x0,0x9c,0x0,0x79,0x0,0x32,0x0, +0xe5,0xff,0xac,0xff,0x8a,0xff,0x82,0xff,0x99,0xff,0xc5,0xff, +0xed,0xff,0xa,0x0,0x31,0x0,0x63,0x0,0x89,0x0,0x90,0x0, +0x80,0x0,0x75,0x0,0x6d,0x0,0x5c,0x0,0x4d,0x0,0x45,0x0, +0x3f,0x0,0x47,0x0,0x5b,0x0,0x6c,0x0,0x7d,0x0,0x93,0x0, +0xa6,0x0,0xaa,0x0,0x9e,0x0,0x8b,0x0,0x78,0x0,0x5c,0x0, +0x50,0x0,0x88,0x0,0xee,0x0,0x24,0x1,0x10,0x1,0xdc,0x0, +0x80,0x0,0xe1,0xff,0x3a,0xff,0xe9,0xfe,0xf6,0xfe,0x33,0xff, +0x93,0xff,0x8,0x0,0x74,0x0,0xca,0x0,0xe9,0x0,0xd2,0x0, +0xc0,0x0,0xb0,0x0,0x78,0x0,0x1e,0x0,0xbe,0xff,0x68,0xff, +0x22,0xff,0xe6,0xfe,0xbb,0xfe,0xbb,0xfe,0xf4,0xfe,0x53,0xff, +0xba,0xff,0x2f,0x0,0xbc,0x0,0x3f,0x1,0xa2,0x1,0xe1,0x1, +0xf7,0x1,0xed,0x1,0xbf,0x1,0x75,0x1,0x25,0x1,0xb4,0x0, +0x10,0x0,0x63,0xff,0xec,0xfe,0xdb,0xfe,0x25,0xff,0x9f,0xff, +0x11,0x0,0x19,0x0,0xb0,0xff,0x6d,0xff,0xc8,0xff,0x7a,0x0, +0xaf,0x0,0x38,0x0,0xdf,0xff,0xee,0xff,0x8,0x0,0x39,0x0, +0x8f,0x0,0xc7,0x0,0xe4,0x0,0xe2,0x0,0x90,0x0,0xfc,0xff, +0x76,0xff,0x4a,0xff,0x75,0xff,0x9e,0xff,0x98,0xff,0x69,0xff, +0x43,0xff,0x7b,0xff,0x2d,0x0,0x11,0x1,0xa0,0x1,0x96,0x1, +0x5f,0x1,0x5c,0x1,0x61,0x1,0x51,0x1,0x1b,0x1,0xa5,0x0, +0xf,0x0,0x5c,0xff,0xa1,0xfe,0x42,0xfe,0x2e,0xfe,0x3d,0xfe, +0xb1,0xfe,0x4f,0xff,0x89,0xff,0x74,0xff,0x6a,0xff,0x9b,0xff, +0xf6,0xff,0x10,0x0,0xcd,0xff,0xb4,0xff,0xc9,0xff,0x91,0xff, +0x4b,0xff,0x6a,0xff,0xb2,0xff,0xb4,0xff,0x5b,0xff,0x1,0xff, +0x4,0xff,0x1a,0xff,0xb,0xff,0x37,0xff,0x9d,0xff,0xb2,0xff, +0x50,0xff,0xe1,0xfe,0xc4,0xfe,0xf5,0xfe,0x27,0xff,0x2b,0xff, +0x2f,0xff,0x5e,0xff,0x7a,0xff,0x8c,0xff,0xf4,0xff,0x74,0x0, +0x82,0x0,0x30,0x0,0xf8,0xff,0xf9,0xff,0xb8,0xff,0xa,0xff, +0xae,0xfe,0xf4,0xfe,0x2d,0xff,0xfd,0xfe,0xe4,0xfe,0x51,0xff, +0xeb,0xff,0x48,0x0,0x8e,0x0,0xcd,0x0,0xe6,0x0,0xbb,0x0, +0x4f,0x0,0x8,0x0,0xfb,0xff,0xdf,0xff,0xc7,0xff,0xbb,0xff, +0x95,0xff,0x4f,0xff,0x23,0xff,0x68,0xff,0xb3,0xff,0x84,0xff, +0x31,0xff,0x4e,0xfe,0xc0,0xfc,0xef,0xfb,0xf8,0xfb,0x3b,0xfc, +0x47,0xfd,0xa9,0xfe,0x7a,0xff,0x64,0x0,0xc5,0x1,0xd8,0x2, +0xfc,0x2,0x7e,0x2,0x59,0x2,0x31,0x2,0x9f,0x0,0x95,0xfe, +0x47,0xfe,0xed,0xfe,0x9d,0xfe,0x48,0xfe,0x2a,0xff,0x24,0x0, +0x64,0x0,0x5e,0x0,0xa8,0x0,0x74,0x1,0x9d,0x1,0xbd,0x0, +0xa4,0x0,0x71,0x1,0x53,0x1,0xbd,0x0,0x41,0x1,0x46,0x2, +0xf,0x2,0x95,0x0,0x6e,0xff,0xee,0xfe,0x42,0xfe,0x8d,0xfd, +0x24,0xfd,0xfa,0xfc,0x56,0xfd,0x11,0xfe,0x9d,0xfe,0x22,0xff, +0x27,0x0,0x79,0x1,0x3f,0x2,0x52,0x2,0x43,0x2,0x45,0x2, +0x55,0x2,0x45,0x2,0x9e,0x1,0xbc,0x0,0x5c,0x0,0x14,0x0, +0x43,0xff,0x8d,0xfe,0xd3,0xfe,0x93,0xff,0xc3,0xff,0x88,0xff, +0xc8,0xff,0xc9,0x0,0xaa,0x1,0x8c,0x1,0x86,0x1,0xd2,0x2, +0xec,0x3,0x6b,0x3,0xd3,0x2,0x4b,0x3,0x7f,0x3,0x93,0x2, +0x7f,0x1,0xd1,0x0,0xdc,0xff,0x57,0xfe,0xfd,0xfc,0x8d,0xfc, +0x9b,0xfc,0x73,0xfc,0xd4,0xfc,0x55,0xfe,0xbe,0xff,0x6e,0x0, +0x14,0x1,0xca,0x1,0x18,0x2,0xc4,0x1,0x48,0x1,0x3c,0x1, +0x0,0x1,0x3a,0x0,0xe6,0xff,0xfd,0xff,0x9d,0xff,0x6,0xff, +0xd8,0xfe,0xec,0xfe,0xcd,0xfe,0x81,0xfe,0x7b,0xfe,0xef,0xfe, +0xc3,0xff,0x6f,0x0,0xa3,0x0,0x24,0x1,0x1f,0x2,0x9a,0x2, +0x77,0x2,0x28,0x2,0xac,0x1,0xe,0x1,0x48,0x0,0x64,0xff, +0xa7,0xfe,0x34,0xfe,0x3e,0xfe,0xc4,0xfe,0x58,0xff,0xd9,0xff, +0x5c,0x0,0xdf,0x0,0x4c,0x1,0x4b,0x1,0xe9,0x0,0xb9,0x0, +0xd7,0x0,0xd5,0x0,0x8f,0x0,0x63,0x0,0x9b,0x0,0xe5,0x0, +0xe5,0x0,0xa4,0x0,0x48,0x0,0xf1,0xff,0x8b,0xff,0xe6,0xfe, +0x57,0xfe,0x35,0xfe,0x34,0xfe,0x4e,0xfe,0xd7,0xfe,0x71,0xff, +0xbd,0xff,0x14,0x0,0x6f,0x0,0x77,0x0,0x44,0x0,0xea,0xff, +0x84,0xff,0x45,0xff,0xfc,0xfe,0xd4,0xfe,0x22,0xff,0x5b,0xff, +0x24,0xff,0xfd,0xfe,0x37,0xff,0x6d,0xff,0xb,0xff,0x74,0xfe, +0xa3,0xfe,0x4f,0xff,0x9b,0xff,0xc9,0xff,0x61,0x0,0x3e,0x1, +0xcf,0x1,0x9b,0x1,0xf8,0x0,0xa7,0x0,0x8f,0x0,0xf7,0xff, +0xf5,0xfe,0x5e,0xfe,0x55,0xfe,0x55,0xfe,0x3a,0xfe,0x5a,0xfe, +0xeb,0xfe,0x93,0xff,0xfa,0xff,0x5e,0x0,0xac,0x0,0x95,0x0, +0x8f,0x0,0xbe,0x0,0x91,0x0,0x31,0x0,0x3,0x0,0xce,0xff, +0x7c,0xff,0x39,0xff,0x32,0xff,0x55,0xff,0x20,0xff,0x9a,0xfe, +0x82,0xfe,0xe8,0xfe,0x23,0xff,0x30,0xff,0x95,0xff,0x23,0x0, +0x65,0x0,0x91,0x0,0xc2,0x0,0xdd,0x0,0xe,0x1,0x19,0x1, +0xa9,0x0,0x2e,0x0,0xfc,0xff,0xb7,0xff,0x27,0xff,0x8d,0xfe, +0x23,0xfe,0xde,0xfd,0xdf,0xfd,0x3b,0xfe,0x92,0xfe,0xf9,0xfe, +0xdf,0xff,0xbc,0x0,0xfe,0x0,0x9,0x1,0x2d,0x1,0x22,0x1, +0xc6,0x0,0x71,0x0,0x58,0x0,0x14,0x0,0x60,0xff,0xbc,0xfe, +0x8c,0xfe,0x6c,0xfe,0x29,0xfe,0x62,0xfe,0x3a,0xff,0xe1,0xff, +0xfc,0xff,0x30,0x0,0xf1,0x0,0x90,0x1,0x47,0x1,0xdb,0x0, +0x21,0x1,0x4d,0x1,0xb1,0x0,0xe4,0xff,0x8a,0xff,0x70,0xff, +0x1b,0xff,0xeb,0xfe,0x7b,0xff,0x20,0x0,0x31,0x0,0x31,0x0, +0x86,0x0,0xd3,0x0,0xcf,0x0,0xe7,0x0,0x6b,0x1,0x9e,0x1, +0xff,0x0,0x4c,0x0,0x4c,0x0,0xb8,0x0,0xc1,0x0,0x89,0x0, +0xd5,0x0,0x20,0x1,0xb4,0x0,0x34,0x0,0x23,0x0,0x3b,0x0, +0x36,0x0,0x2c,0x0,0x68,0x0,0x54,0x0,0x4a,0xff,0x70,0xfe, +0xbc,0xfe,0x4e,0xff,0x63,0xff,0x39,0xff,0x96,0xff,0xcd,0x0, +0x72,0x1,0xb7,0x0,0xaf,0x0,0x45,0x2,0xdc,0x2,0x43,0x1, +0xf0,0xff,0x50,0x0,0x9f,0x0,0xc2,0xff,0x5d,0xff,0x86,0x0, +0x92,0x1,0x32,0x1,0xb6,0x0,0x4f,0x1,0x33,0x2,0x45,0x2, +0xb8,0x1,0x8b,0x1,0x85,0x1,0x9a,0x0,0x90,0xff,0x80,0xff, +0x7a,0xff,0xf0,0xfe,0xab,0xfe,0xc4,0xfe,0xd6,0xfe,0xb6,0xfe, +0x73,0xfe,0xb4,0xfe,0x9b,0xff,0x41,0x0,0x5a,0x0,0x42,0x0, +0xf9,0xff,0xf4,0xff,0xa6,0x0,0xee,0x0,0x32,0x0,0xcb,0xff, +0xf2,0xff,0xd6,0xff,0xc4,0xff,0xa0,0xff,0x94,0xff,0x89,0x0, +0x43,0x1,0xbb,0x0,0x82,0x0,0xb,0x1,0x7d,0x1,0xdb,0x1, +0x13,0x2,0xc9,0x1,0x15,0x1,0xd2,0x0,0x3e,0x1,0x1f,0x1, +0xb8,0x0,0xf7,0x0,0xbc,0x0,0x1e,0x0,0x36,0x0,0x2d,0x0, +0x9d,0xff,0x2a,0xff,0x5e,0xff,0x4,0x0,0x5a,0xff,0x2c,0xfe, +0x2b,0xff,0x73,0x0,0xbc,0xff,0x19,0xff,0xf5,0xff,0xa5,0x0, +0x70,0xff,0x14,0xfe,0xfc,0xfe,0x89,0xff,0xbc,0xfd,0x8,0xfd, +0x4a,0xfe,0x4e,0xfe,0xf3,0xfc,0x44,0xfd,0x75,0xff,0x1b,0x0, +0x3e,0xff,0xdc,0xff,0xd0,0x0,0x8f,0x0,0x66,0x0,0x11,0x0, +0x3c,0xff,0xbf,0xfe,0x59,0xfe,0xa9,0xfd,0xc7,0xfc,0xc4,0xfc, +0xea,0xfd,0x31,0xfe,0x4b,0xfe,0xb2,0xff,0x91,0x0,0x4b,0x1, +0x59,0x2,0xc9,0x1,0xa0,0x1,0xd7,0x2,0xca,0x1,0x8f,0xff, +0xd6,0xff,0xb5,0x0,0xf,0xff,0xb,0xfd,0xe5,0xfd,0x51,0xff, +0xcf,0xfe,0x8f,0xfe,0x17,0xff,0x61,0xff,0x5a,0x0,0x14,0x1, +0x45,0x0,0x40,0xff,0x2d,0xff,0xb1,0xff,0x25,0xff,0x44,0xfd, +0x67,0xfc,0x14,0xfd,0xa1,0xfd,0x36,0xfd,0x60,0xfc,0xc4,0xfc, +0x31,0xfe,0x75,0xfe,0xdf,0xfd,0x63,0xfe,0xba,0xff,0xf0,0xff, +0x32,0xff,0x8a,0xff,0x11,0x0,0x5c,0xff,0x6f,0xff,0x43,0x0, +0x8c,0xff,0x6c,0xfe,0xa9,0xfe,0x88,0xff,0x95,0xff,0x5e,0xfe, +0xe,0xfe,0xfd,0xff,0xb7,0x0,0xa5,0xfe,0x69,0xfe,0x83,0x1, +0xb9,0x2,0xbd,0x0,0x69,0x0,0x97,0x2,0x33,0x3,0xb1,0x1, +0x17,0x1,0x63,0x1,0xa5,0x0,0x10,0x0,0x56,0x0,0x3a,0xff, +0xca,0xfd,0xe8,0xfe,0x60,0x0,0xa4,0xff,0x19,0xff,0x7e,0x0, +0xdc,0x1,0xbb,0x1,0x26,0x1,0x87,0x1,0x6d,0x2,0xe,0x2, +0xac,0x0,0x1c,0x0,0xe8,0xff,0xb,0xff,0x48,0xfe,0xd0,0xfd, +0xa3,0xfd,0x50,0xfe,0x52,0xff,0xc0,0xff,0x9c,0xff,0x85,0x0, +0x39,0x3,0x61,0x4,0xb2,0x2,0x3b,0x2,0xbc,0x3,0xa4,0x3, +0xbf,0x1,0xd4,0x0,0xe8,0x0,0xc1,0xff,0xb6,0xfe,0xf7,0xff, +0xad,0x0,0x6c,0xff,0xbf,0xff,0x1b,0x2,0x17,0x3,0x29,0x2, +0xe,0x2,0x42,0x3,0xb6,0x3,0x9c,0x3,0x52,0x3,0x6d,0x2, +0xbe,0x2,0x0,0x3,0xdb,0x0,0x74,0x0,0xf4,0x1,0xe0,0xff, +0xc0,0xfd,0xf6,0xff,0xc3,0x0,0xaf,0xfe,0x9d,0xff,0x74,0x2, +0x2d,0x3,0x9c,0x3,0x24,0x4,0xc0,0x3,0x31,0x5,0xbe,0x6, +0xe4,0x3,0x26,0x1,0x15,0x3,0x90,0x3,0x5f,0xff,0xd7,0xfd, +0xf3,0x0,0x54,0x1,0xb0,0xfe,0xcf,0xfe,0xc2,0x0,0x8c,0x1, +0xbe,0x0,0x10,0xff,0x67,0x0,0x95,0x3,0x51,0x1,0x42,0xfd, +0x18,0x0,0x54,0x3,0x9e,0xfe,0x5e,0xfb,0x3d,0x0,0xf7,0x0, +0xe6,0xfa,0x34,0xfc,0xf9,0x1,0x2c,0xff,0x12,0xfb,0x83,0xfe, +0x94,0x0,0x23,0xfd,0x24,0xfc,0x8f,0xfd,0xa8,0xfc,0x5b,0xfd, +0x59,0xff,0x2f,0xfd,0x4e,0xfd,0x39,0x3,0x8e,0x4,0xb5,0x0, +0x7a,0x1,0x4a,0x6,0x5e,0x6,0xe0,0x0,0x65,0xff,0xb3,0x2, +0xce,0x0,0x31,0xfc,0xa9,0xfc,0x90,0xfe,0x36,0xfe,0x5d,0xfc, +0x18,0xfc,0x1e,0x0,0xd7,0x1,0x9e,0xfe,0x13,0xff,0x9b,0x2, +0x25,0x2,0x96,0xff,0x58,0xff,0x74,0x0,0x2e,0xff,0xc3,0xfc, +0xd2,0xfc,0x97,0xfc,0xfc,0xfa,0xed,0xfa,0x3a,0xfb,0xf1,0xfb, +0x81,0xfd,0x32,0xfd,0xf8,0xfc,0xf5,0xfe,0x5d,0x0,0xcd,0xff, +0x3,0xfe,0x79,0xfd,0x31,0xff,0xda,0xff,0xbb,0xfe,0xa2,0xfd, +0xeb,0xfd,0x93,0x0,0x6f,0x1,0xd4,0xfe,0xd6,0xfe,0xad,0x0, +0xc,0xff,0xec,0xfc,0x93,0xfd,0x1f,0xfe,0xad,0xfc,0xf6,0xfb, +0xf3,0xfd,0xb7,0xff,0xc1,0xff,0xd9,0x0,0x26,0x3,0x7c,0x4, +0x72,0x4,0x83,0x3,0x9f,0x2,0xb,0x2,0x79,0x0,0x6,0xfe, +0x6,0xfd,0x2a,0xfd,0xbb,0xfb,0x1b,0xfb,0x86,0xfe,0x2f,0x1, +0x1e,0x0,0x92,0x0,0xb4,0x3,0xb8,0x4,0x4,0x3,0x9b,0x1, +0xdf,0x0,0xb5,0xff,0x65,0xfe,0xc9,0xfc,0x2,0xfb,0xa,0xfb, +0x2c,0xfc,0x8,0xfc,0x26,0xfc,0xe,0xfe,0xc6,0xff,0x21,0x0, +0x4f,0x0,0xff,0x0,0x38,0x1,0x5e,0x0,0x3c,0xff,0xce,0xfe, +0xc5,0xfe,0xd3,0xfd,0xb,0xfd,0x72,0xfe,0x9,0x0,0x30,0x0, +0x9a,0x0,0x7d,0x1,0x32,0x2,0x7c,0x2,0xe8,0x1,0x83,0x1, +0x81,0x1,0x84,0x0,0x3e,0xff,0x18,0xff,0xe1,0xff,0x77,0x0, +0xc0,0x0,0xed,0x1,0x85,0x3,0x46,0x4,0x12,0x4,0x46,0x3, +0x5b,0x3,0x77,0x3,0xe,0x1,0xdd,0xfe,0x4c,0xff,0x60,0xff, +0x76,0xfe,0x7f,0xfe,0x67,0xff,0x74,0x0,0x19,0x1,0x67,0x1, +0xd2,0x1,0xbf,0x1,0xd5,0x0,0xe6,0xff,0x38,0xff,0xe3,0xfd, +0xe,0xfc,0x54,0xfb,0x52,0xfb,0xc9,0xfa,0xc1,0xfa,0xf8,0xfb, +0x67,0xfd,0x57,0xfe,0x3c,0xff,0xe0,0x0,0x82,0x2,0xaa,0x2, +0x25,0x2,0x3b,0x2,0xe0,0x1,0x3c,0x0,0xce,0xfe,0x4f,0xfe, +0xfd,0xfd,0x21,0xfe,0x41,0xfe,0xd5,0xfd,0xe,0xff,0xa0,0x1, +0x78,0x2,0x6d,0x2,0x52,0x3,0x4,0x4,0x8e,0x3,0x5b,0x2, +0x4a,0x1,0xa1,0x0,0xe0,0xff,0x14,0xff,0x8d,0xfe,0x91,0xfe, +0xed,0xfe,0xe0,0xfe,0x4a,0xff,0xaf,0x0,0x44,0x1,0x30,0x1, +0x1f,0x2,0x2c,0x3,0xd8,0x2,0xd9,0x1,0xa9,0x1,0xf2,0x1, +0x5a,0x1,0x60,0x0,0x4,0x0,0xaa,0xff,0xd3,0xfe,0x58,0xfe, +0xe2,0xfe,0x1c,0xff,0x38,0xfe,0x63,0xfe,0xdb,0xff,0xf2,0xff, +0x6a,0xff,0x82,0x0,0xaf,0x1,0x8f,0x1,0xa8,0x1,0x23,0x2, +0xd2,0x1,0x79,0x1,0x72,0x1,0xad,0x0,0xcf,0xff,0x9b,0xff, +0xb8,0xff,0x31,0x0,0x2b,0x0,0xb4,0xff,0xb7,0x0,0x21,0x2, +0xf,0x2,0x6,0x2,0xbe,0x2,0xd8,0x2,0x35,0x2,0x8c,0x1, +0x7,0x1,0x8e,0x0,0x1f,0x0,0x6a,0xff,0x6b,0xfe,0x8,0xfe, +0x50,0xfe,0x6a,0xfe,0x27,0xfe,0xce,0xfd,0x3,0xfe,0x93,0xfe, +0x65,0xfe,0x90,0xfe,0xd9,0xff,0x0,0x0,0x4e,0xff,0x3,0x0, +0x44,0x0,0xdc,0xfe,0xe6,0xfe,0xf9,0xff,0xbc,0xfe,0x47,0xfd, +0xb,0xfe,0x4f,0xfe,0x3d,0xfd,0xb7,0xfc,0xf2,0xfc,0x14,0xfe, +0x4b,0xff,0x4c,0xff,0xbe,0xff,0x36,0x1,0x96,0x1,0x1d,0x1, +0x74,0x1,0xed,0x1,0x13,0x1,0x94,0xff,0xe6,0xfe,0x8b,0xfe, +0xcf,0xfd,0x57,0xfd,0x85,0xfd,0x6e,0xfe,0x7e,0xff,0xb9,0xff, +0x2f,0x0,0xd9,0x1,0xdc,0x2,0x14,0x2,0x6f,0x1,0xf9,0x1, +0x79,0x1,0x94,0xff,0x38,0xff,0x8f,0xff,0x33,0xfe,0xa7,0xfd, +0xdb,0xfe,0xe3,0xfe,0x6c,0xfe,0x20,0xff,0x73,0xff,0xd7,0xfe, +0x88,0xfe,0xc9,0xfe,0x6d,0xfe,0xfd,0xfc,0x47,0xfc,0x97,0xfc, +0x80,0xfc,0xa,0xfd,0xf,0xfe,0xc2,0xfd,0x14,0xfe,0x2f,0xff, +0xf,0xfe,0x4b,0xfd,0x54,0xff,0xbf,0xff,0x84,0xfd,0xc7,0xfc, +0x7a,0xfd,0x74,0xfd,0xb6,0xfd,0x91,0xfe,0x7e,0xfe,0x7f,0xfe, +0xbf,0xff,0xbb,0xff,0x31,0xfe,0xb4,0xfe,0x1,0x0,0x7d,0xfe, +0x48,0xfd,0x33,0xff,0x20,0x0,0x32,0xff,0x84,0x0,0xa,0x2, +0x4b,0x0,0x99,0xff,0xcb,0x1,0x21,0x2,0xd2,0x0,0xaf,0x0, +0x32,0x0,0x9,0x0,0xec,0x1,0x3b,0x2,0xce,0xff,0x4c,0xff, +0xff,0x0,0xf,0x1,0x7f,0x0,0xb5,0x1,0xe6,0x1,0x25,0x0, +0x7,0x1,0x5d,0x3,0x4d,0x1,0xf7,0xfe,0xe5,0x1,0x45,0x3, +0x2b,0x0,0x6e,0x0,0x2f,0x3,0xa2,0x2,0x44,0x2,0x6,0x3, +0x27,0x1,0x93,0x0,0x27,0x3,0x59,0x2,0xd3,0xfe,0xef,0xfe, +0x3d,0x0,0x64,0xff,0x1b,0x0,0x3,0x2,0xbb,0x1,0xe9,0x1, +0xba,0x2,0xd5,0x0,0x7d,0xff,0x34,0x1,0xce,0x1,0x7d,0xff, +0x5a,0xfd,0xb4,0xfe,0x22,0x2,0xdb,0x2,0xf1,0x1,0xe9,0x2, +0x6,0x4,0xb4,0x4,0x37,0x5,0x1a,0x3,0x63,0x1,0x44,0x3, +0x23,0x3,0x48,0x0,0x7d,0x0,0xd5,0x1,0x3e,0x2,0xdc,0x3, +0x54,0x3,0x32,0x2,0x36,0x6,0x5c,0x7,0xae,0x1,0xa7,0x0, +0xc9,0x3,0x26,0x1,0x4a,0xfc,0xfe,0xfc,0xc4,0x0,0x6b,0x0, +0x9a,0xfd,0x35,0xff,0x45,0x1,0xc5,0x0,0x81,0x3,0xe6,0x3, +0x50,0xfd,0x28,0xfb,0xfb,0xfd,0x69,0xfc,0x87,0xf9,0x9,0xfa, +0x34,0xfd,0xb6,0x1,0xe2,0x2,0x2c,0x1,0x22,0x3,0x96,0x5, +0x49,0x2,0xb4,0xfe,0x90,0xff,0x1f,0xff,0xb9,0xfb,0xea,0xfb, +0x95,0xff,0xd0,0xff,0xca,0xfd,0xab,0x0,0xdd,0x4,0xc0,0x1, +0xfa,0xfd,0x15,0x2,0x75,0x4,0x8c,0xff,0x85,0xfd,0xfc,0xff, +0xa6,0x0,0xe7,0x0,0x3c,0x1,0x46,0x0,0xba,0x2,0x74,0x6, +0x5e,0x2,0xe9,0xfc,0xa0,0xff,0x75,0x0,0xed,0xfb,0x83,0xfd, +0xe8,0xff,0x77,0xfc,0x5e,0xfe,0x41,0x2,0x5b,0xfe,0xfb,0xfe, +0xae,0x5,0xbc,0x1,0x5a,0xf9,0xb,0xfc,0xea,0xff,0x5d,0xfa, +0xd7,0xf6,0xf2,0xfa,0x3,0xfb,0x7f,0xf6,0x84,0xf9,0xac,0x0, +0x4b,0xff,0xf2,0xfa,0xbc,0xfe,0xd,0x2,0xf9,0xfc,0x2c,0xfa, +0xad,0xfc,0x9d,0xfc,0x5,0xfc,0x5,0xfc,0xcd,0xfa,0x55,0xfe, +0x24,0x2,0xd,0xfd,0x96,0xf9,0x61,0xfe,0x7e,0xff,0x98,0xfb, +0x93,0xfc,0x4f,0x0,0x93,0x0,0x1d,0x1,0x75,0x4,0x1,0x6, +0x0,0x5,0x8b,0x3,0x49,0x1,0xfc,0x0,0x7f,0x3,0xbe,0x2, +0x3b,0xff,0x2c,0x0,0xac,0x3,0xef,0x3,0xcf,0x3,0x6c,0x5, +0xb6,0x4,0x82,0x3,0x80,0x4,0x5c,0x1,0x51,0xfc,0x3a,0xff, +0xc9,0x1,0x8f,0xfb,0xd6,0xfa,0x4,0x2,0x42,0x0,0x16,0xfc, +0xc2,0x2,0x5d,0x4,0xa2,0xfc,0x77,0xff,0x9e,0x4,0x74,0xfc, +0x61,0xfa,0x3f,0x4,0x66,0x2,0x6b,0xf9,0xae,0xfe,0x5d,0x7, +0xf6,0x3,0x72,0x0,0x3e,0x4,0xe4,0x4,0xc2,0x3,0x58,0x6, +0xfa,0x2,0x42,0xfd,0x63,0x3,0xcd,0x6,0x25,0xfc,0xa7,0xfb, +0xec,0x8,0x5,0x8,0x25,0xfe,0x96,0x2,0xda,0x7,0x9c,0x0, +0x8d,0xff,0x78,0x5,0xa8,0xff,0xfa,0xf9,0xfa,0x1,0x71,0x3, +0x78,0xfa,0x32,0xfd,0x84,0x5,0xb2,0x1,0x1f,0xfd,0x3,0x1, +0x34,0x2,0xb,0xff,0xdb,0xfe,0x94,0xff,0x66,0xfe,0x9,0xff, +0x1f,0x2,0x1c,0x3,0xdd,0x1,0x62,0x2,0xb1,0x3,0xb7,0x3, +0x54,0x3,0x8f,0x1,0xba,0x0,0x2c,0x3,0x69,0x1,0x50,0xfc, +0x4d,0xff,0x39,0x4,0x80,0x0,0x86,0xfd,0x6d,0x1,0x60,0x3, +0xe9,0x0,0xdd,0xff,0xc,0x1,0xe2,0x0,0x85,0xfe,0xfd,0xfb, +0xfa,0xfa,0xde,0xfb,0x64,0xfc,0x8e,0xfb,0x60,0xfc,0x0,0xfd, +0x59,0xfb,0xaa,0xfd,0x5c,0x1,0xf1,0xfd,0x77,0xfb,0x6f,0xff, +0x59,0xff,0xb0,0xfb,0x84,0xfd,0xf3,0xff,0x11,0xfd,0x46,0xfb, +0xfe,0xfd,0xc0,0xfe,0xb8,0xfc,0x28,0xfe,0x3f,0x0,0x79,0xfe, +0xd8,0xfe,0xaf,0x1,0xf0,0x0,0xac,0x0,0x89,0x2,0xb,0x0, +0x65,0xfd,0xe0,0x0,0xeb,0x2,0x96,0xff,0xac,0xfe,0xfb,0x0, +0x30,0x0,0x45,0xfe,0x2e,0x0,0xf3,0x2,0xff,0x2,0xcf,0x2, +0xb3,0x4,0x9a,0x6,0x98,0x6,0xa6,0x6,0x9e,0x7,0x54,0x6, +0x97,0x3,0xe9,0x3,0x8e,0x4,0xf7,0x0,0xe6,0xfd,0xa9,0xff, +0x31,0x1,0x31,0xff,0xa,0xfe,0x9c,0xff,0x11,0x0,0x75,0xfe, +0xef,0xfd,0x9f,0xfe,0x52,0xfe,0x1c,0xfe,0xff,0xfe,0x44,0xfe, +0xa7,0xfc,0x38,0xfe,0x44,0x0,0xef,0xfe,0x8,0xfe,0xb7,0xfe, +0x99,0xfd,0xaa,0xfc,0xee,0xfc,0x76,0xfb,0x3b,0xfb,0x14,0xfe, +0x5a,0xfe,0x9a,0xfc,0x65,0xfe,0x9b,0x0,0x7a,0xff,0xb6,0xff, +0x6a,0x2,0xd5,0x1,0xc1,0xfe,0xbf,0xfe,0xc2,0xff,0x19,0xfe, +0x36,0xfd,0x5e,0xfe,0x76,0xfd,0xbc,0xfb,0x78,0xfd,0x37,0x0, +0x96,0x0,0xf0,0x0,0xc7,0x2,0xe5,0x3,0xc0,0x3,0x47,0x3, +0x66,0x2,0x9e,0x1,0xe7,0x0,0x65,0xff,0xa5,0xfe,0x4b,0xff, +0xbb,0xfe,0x69,0xfd,0xab,0xfd,0xbf,0xfd,0xbb,0xfc,0x47,0xfd, +0xd9,0xfe,0x4e,0xfe,0xc7,0xfc,0xb4,0xfd,0x9e,0xff,0xfd,0xfe, +0x50,0xfe,0x8f,0x0,0x43,0x1,0x3b,0xfe,0x70,0xfd,0x4e,0x0, +0x7b,0x0,0x62,0xfd,0x4d,0xfd,0xf3,0xff,0xb4,0xff,0x4c,0xfe, +0xc7,0xff,0x2,0x1,0x6,0x0,0x7c,0xff,0x4f,0xff,0xfa,0xfe, +0x5c,0xff,0xa9,0xfe,0x97,0xfc,0x2,0xfc,0xe4,0xfb,0xd9,0xf9, +0x50,0xf9,0xdf,0xfb,0xb2,0xfb,0x49,0xf9,0xef,0xfb,0x7b,0xff, +0x57,0xfd,0x7f,0xfc,0x2f,0xff,0xc5,0xfd,0x3,0xfb,0x3d,0xfc, +0x13,0xfc,0x4c,0xf9,0xc7,0xf9,0xda,0xfb,0x9e,0xfa,0x94,0xf9, +0x82,0xfc,0x5f,0xfe,0x5a,0xfc,0xd4,0xfb,0xa3,0xfd,0x44,0xfd, +0x7a,0xfc,0x85,0xfe,0xec,0xff,0xa8,0xfe,0xbd,0xfe,0xa7,0x0, +0x28,0x0,0x9e,0xfe,0xe8,0xff,0xe3,0x0,0x6,0xff,0x3a,0xfe, +0xc9,0xff,0x15,0x1,0x88,0x1,0xcc,0x1,0x57,0x2,0x2d,0x3, +0x6f,0x3,0xce,0x2,0xca,0x1,0x3b,0x1,0x7a,0x1,0xc4,0x0, +0xa8,0xfe,0x82,0xfe,0xc9,0x0,0xe0,0x0,0x39,0xfe,0x1,0xfe, +0x70,0x0,0x26,0x0,0xf4,0xfd,0xfe,0xfe,0xd4,0x0,0xda,0xfe, +0x2,0xfd,0xfd,0xfe,0xc6,0xff,0x6,0xfd,0x43,0xfc,0x9,0xfe, +0xf7,0xfc,0x59,0xfa,0xa5,0xfa,0x91,0xfb,0x8b,0xfa,0x16,0xfa, +0x66,0xfb,0xce,0xfc,0x9a,0xfd,0x4d,0xfe,0x46,0xff,0x9f,0xff, +0xf4,0xfe,0x7d,0xff,0xa8,0x0,0xf0,0xfe,0x2d,0xfd,0x3e,0xff, +0x16,0x0,0x9d,0xfd,0x13,0xfe,0xfc,0x0,0xda,0x0,0xf7,0xff, +0x70,0x1,0x3e,0x2,0x7c,0x1,0x9e,0x1,0xbe,0x1,0xf3,0x0, +0xe,0x2,0x3b,0x4,0x6b,0x3,0x65,0x2,0xe1,0x4,0x8,0x6, +0x1,0x3,0x7a,0x1,0x46,0x3,0xfc,0x2,0xe5,0xff,0x4a,0xff, +0x4f,0x1,0x8f,0x1,0xbc,0x0,0xf6,0x1,0x5e,0x4,0x8e,0x5, +0xc7,0x4,0x1b,0x4,0x34,0x5,0xf8,0x4,0x75,0x2,0xf1,0x1, +0x24,0x3,0xf5,0x2,0x33,0x3,0xb6,0x4,0xa,0x5,0x2e,0x5, +0xcb,0x6,0xc,0x7,0xf5,0x4,0x5d,0x4,0x85,0x5,0x30,0x5, +0x48,0x4,0xa7,0x4,0x13,0x5,0xc9,0x4,0x39,0x4,0x5d,0x4, +0x44,0x5,0xd0,0x4,0x87,0x3,0x94,0x3,0x4c,0x3,0xd2,0x1, +0xae,0x0,0xaa,0xff,0xc2,0xff,0xc0,0x1,0x22,0x2,0x49,0x0, +0xb1,0x0,0xfc,0x2,0xbe,0x2,0x6a,0x1,0x49,0x2,0x7c,0x2, +0x7d,0x0,0x82,0xff,0x7c,0xff,0x48,0xff,0xef,0xff,0x37,0x0, +0x37,0x0,0xb5,0x1,0xbd,0x1,0x6b,0xff,0x91,0xff,0x2f,0x2, +0xc6,0x2,0x3d,0x1,0xd6,0x0,0x5,0x3,0xaf,0x5,0x4f,0x6, +0x89,0x6,0xe6,0x7,0x5b,0x7,0xeb,0x4,0x34,0x4,0x3b,0x3, +0xac,0x0,0xf7,0x0,0xc,0x2,0xd2,0xff,0x46,0x0,0xa7,0x4, +0x4f,0x4,0x76,0x1,0xcc,0x4,0x56,0x8,0xf3,0x3,0x4b,0x0, +0x6f,0x3,0x6,0x2,0xb1,0xf9,0x17,0xf9,0xcf,0xff,0x81,0xfe, +0xa4,0xf8,0x19,0xfd,0xd1,0x4,0xb7,0x0,0xb2,0xfa,0xb6,0xff, +0x37,0x3,0xde,0xfd,0x50,0xfd,0xd6,0x1,0x39,0xff,0x7c,0xf9, +0x6,0xfa,0xbe,0xfc,0x27,0xfb,0x54,0xf9,0x24,0xfc,0xbb,0xfd, +0x71,0xfa,0x98,0xf9,0xf2,0xfc,0x44,0xfe,0xff,0xfc,0x2a,0xfc, +0xae,0xfc,0x90,0xfe,0xd,0x0,0x99,0xff,0x51,0xff,0x4c,0x0, +0x9,0xff,0x28,0xfc,0x31,0xfd,0x3f,0xff,0x55,0xfe,0x8c,0x0, +0x42,0x4,0x73,0x1,0x69,0xff,0x1f,0x4,0x12,0x5,0x26,0x0, +0x6e,0x0,0x45,0x4,0x45,0x0,0xcf,0xf9,0x6c,0xfd,0x3b,0x3, +0x27,0x0,0x92,0xfc,0x27,0xff,0xef,0x0,0xb2,0xfe,0xee,0xfd, +0x7b,0x1,0x51,0x3,0x87,0x0,0x4,0x1,0xa6,0x5,0x40,0x6, +0x32,0x4,0xd1,0x4,0x9f,0x5,0x17,0x3,0x19,0x0,0x42,0x1, +0x9b,0x2,0x6,0x0,0x73,0x0,0x7c,0x4,0xeb,0x3,0xe6,0x1, +0xad,0x4,0xf3,0x7,0x45,0x6,0x3e,0x2,0xf0,0x2,0x96,0x5, +0x12,0x2,0xd8,0xfe,0x4b,0x2,0xdc,0x3,0x2b,0x1,0x74,0x1, +0xbe,0x5,0x2d,0x9,0x57,0x7,0x53,0x3,0x2,0x4,0x41,0x6, +0x56,0x4,0x17,0x2,0xaa,0x2,0x8,0x2,0xc7,0xff,0x7,0x1, +0xce,0x3,0x3c,0x3,0xa3,0x4,0xbf,0x8,0x49,0x6,0xee,0x1, +0x2f,0x5,0xa2,0x7,0x1c,0x3,0x4c,0x0,0x26,0x2,0x95,0x3, +0xb8,0x4,0xeb,0x6,0x49,0x7,0xab,0x6,0xb1,0x8,0x26,0x9, +0x4b,0x4,0x3b,0x1,0x9d,0x3,0xf1,0x3,0xd4,0xff,0xae,0xfe, +0x1a,0x2,0x2e,0x4,0x86,0x4,0xa6,0x4,0x47,0x2,0x21,0x1, +0x7a,0x3,0x5e,0x1,0x82,0xfc,0x45,0xfe,0x60,0x0,0x5b,0xfb, +0x52,0xf8,0x18,0xfd,0x47,0x1,0x96,0x0,0x2b,0x1,0x97,0x3, +0x15,0x2,0x47,0xfe,0xe9,0xfb,0x4e,0xfa,0x1a,0xfa,0x82,0xf9, +0x29,0xf6,0xe3,0xf5,0xed,0xfa,0x6e,0xfd,0x89,0xfb,0x12,0xfd, +0xc8,0x2,0x92,0x2,0xd1,0xfc,0x4,0xfd,0xe2,0xfd,0xfe,0xf5, +0x98,0xf2,0xc5,0xf9,0xe8,0xfb,0x70,0xf8,0x29,0xfb,0xd6,0xfe, +0xc9,0xfc,0x6c,0xfc,0x45,0xfe,0x48,0xfb,0xf,0xf9,0x5b,0xfb, +0xb,0xf8,0x8b,0xf2,0x87,0xf7,0xf8,0xfd,0x76,0xfb,0x2e,0xfa, +0xe5,0xfe,0xee,0xff,0xf5,0xfa,0xab,0xf8,0x62,0xfb,0x11,0xfa, +0x13,0xf4,0xa8,0xf4,0x8a,0xfa,0x8f,0xfb,0x5,0xfb,0xf9,0xfe, +0xb9,0x2,0x4a,0x2,0xb6,0xff,0x10,0xfd,0xac,0xfb,0x1d,0xfb, +0x1c,0xf8,0x30,0xf4,0x91,0xf5,0x5d,0xf9,0xb5,0xf8,0xb8,0xf7, +0xc2,0xf9,0xb9,0xf9,0xf9,0xf7,0xcd,0xf7,0x4,0xf8,0x96,0xf8, +0x5b,0xf8,0x3d,0xf6,0x26,0xf7,0x29,0xfb,0x94,0xfb,0x47,0xf9, +0x19,0xfa,0x3b,0xfd,0xb8,0xfc,0xcc,0xf7,0xc8,0xf6,0xb7,0xfb, +0x89,0xfa,0x49,0xf2,0xe8,0xf3,0xdb,0xfe,0x39,0xff,0xf8,0xf7, +0x88,0xfd,0x86,0x8,0xfe,0x3,0x83,0xfa,0xb9,0xff,0x2a,0x7, +0x3a,0x0,0x4f,0xf8,0xf3,0xfc,0xff,0x1,0x37,0xfe,0x2e,0xfc, +0xb7,0x0,0xc7,0x2,0x4f,0x0,0x36,0xff,0x98,0xff,0x4d,0xff, +0x21,0xff,0x20,0xfe,0x40,0xfc,0xc1,0xfc,0x72,0xfe,0xda,0xfd, +0x98,0xfd,0x85,0xff,0xd9,0xff,0x51,0xfe,0x24,0xfe,0xe7,0xfe, +0x30,0xff,0x64,0xff,0xe9,0xff,0xec,0x0,0xc8,0x1,0xed,0x1, +0x32,0x2,0x81,0x2,0x21,0x2,0xf0,0x0,0x4,0xfe,0xce,0xfa, +0x7b,0xfb,0x6e,0xfe,0x79,0xfd,0xc9,0xfa,0xb1,0xfd,0xae,0x1, +0x34,0xfe,0x1e,0xfb,0x9f,0xff,0xa6,0xff,0xbf,0xf8,0x4f,0xfa, +0xff,0x0,0xca,0xfd,0x7,0xf9,0xad,0xfe,0x42,0x3,0x4,0xfd, +0x8a,0xf8,0xbe,0xfe,0x38,0x2,0x59,0xfb,0x1e,0xf9,0x42,0x0, +0x2c,0x1,0xbe,0xfb,0x21,0xfe,0x4f,0x4,0x1a,0x3,0x94,0xff, +0x15,0x1,0x87,0x4,0x6d,0x5,0xcb,0x2,0x3f,0x0,0x30,0x3, +0x38,0x6,0x4e,0x1,0xd8,0xfd,0x5c,0x3,0x79,0x4,0xa4,0xfd, +0x1e,0xfe,0x86,0x4,0xf4,0x2,0x39,0xfe,0x89,0x0,0xdd,0x2, +0x4,0xfe,0xcc,0xfa,0xa2,0xfe,0x7,0xff,0x6b,0xf9,0x3c,0xfa, +0xe3,0xff,0x5d,0xfe,0x39,0xfc,0xa3,0x1,0xc3,0x3,0x6f,0xff, +0xea,0xff,0x2b,0x3,0x9c,0x0,0xd6,0xfd,0x9c,0x0,0x7d,0x3, +0xa0,0x2,0x68,0x1,0x2c,0x3,0x6c,0x5,0xe8,0x3,0x2,0x1, +0x60,0x0,0xf3,0xff,0xab,0xfe,0xf7,0xfd,0x54,0xfe,0x3c,0x0, +0x5a,0x1,0x8c,0x0,0x8,0x2,0x45,0x4,0x95,0x2,0xd7,0x0, +0xb3,0x1,0x81,0x1,0x28,0x0,0x7b,0x0,0x82,0x2,0xb8,0x3, +0x74,0x3,0xe7,0x3,0x54,0x4,0x74,0x3,0xf6,0x2,0x50,0x2, +0xbb,0x1,0x55,0x2,0xc7,0x1,0x58,0x2,0x1a,0x6,0xc4,0x6, +0xb1,0x3,0x52,0x2,0x83,0x3,0x6a,0x5,0xf4,0x3,0xc,0x1, +0x28,0x4,0xa6,0x7,0xa0,0x5,0x2,0x6,0x44,0x9,0xc6,0x8, +0x7a,0x5,0xcb,0x2,0x86,0x2,0x16,0x1,0x86,0xfc,0x5c,0xfd, +0x70,0x1,0x3e,0xfe,0x94,0xfb,0x6e,0x0,0x18,0x3,0xcf,0x0, +0x43,0x0,0x5,0x3,0xb4,0x4,0x35,0x2,0xf7,0x0,0x11,0x5, +0x8a,0x6,0x39,0x1,0xab,0xfe,0x30,0x3,0xf4,0x3,0xf2,0xfd, +0x6a,0xfe,0x8,0x4,0xbd,0x0,0x71,0xfc,0xef,0x1,0xea,0x4, +0x33,0x0,0xb8,0xff,0x9e,0x4,0x9,0x5,0x90,0x0,0xd9,0x0, +0xc6,0x5,0x6a,0x3,0x8b,0xfc,0x7f,0xfe,0x1f,0x2,0x9a,0xfc, +0x5e,0xfa,0x81,0x1,0x62,0x2,0x63,0xfc,0x8a,0xfe,0xa4,0x4, +0x18,0x3,0x90,0xff,0x57,0x1,0xb1,0x3,0x42,0x0,0x8b,0xfb, +0xc8,0xfe,0xc9,0x2,0x52,0xfd,0xff,0xfa,0xeb,0x1,0x96,0x2, +0xa8,0xfe,0x1b,0x3,0x5,0x8,0xc6,0x5,0xad,0x5,0x19,0xa, +0x8,0xb,0x9e,0x9,0x7a,0xa,0x3c,0x8,0xc2,0x2,0x23,0x4, +0xff,0x8,0x1b,0x7,0x86,0x5,0xb1,0xa,0xbf,0xb,0x65,0x6, +0xd9,0x8,0xa1,0x10,0x3f,0xc,0x5c,0x4,0xfc,0x9,0xf6,0xc, +0x90,0x3,0x7c,0x3,0x3c,0xb,0xfe,0x5,0xc2,0xfe,0x87,0x4, +0xba,0x9,0xc7,0x6,0x32,0x6,0x75,0x8,0xce,0x5,0x75,0x1, +0x95,0x0,0x3e,0xff,0xb3,0xfc,0x34,0xfd,0xe4,0xfd,0x11,0xfc, +0xd,0xfd,0x9e,0x0,0xbf,0xff,0x5d,0xfd,0xa6,0xff,0x96,0xff, +0xa9,0xfa,0x25,0xfc,0x61,0x0,0x49,0xfc,0xb2,0xfb,0xa0,0x3, +0xbb,0x1,0xa3,0xf9,0xcb,0xfd,0x2e,0x2,0x57,0xf9,0xca,0xf4, +0x35,0xfc,0xbd,0xfd,0x40,0xf8,0x22,0xfb,0x5f,0x1,0x64,0xff, +0xed,0xfd,0x79,0x2,0x3b,0x2,0xda,0xfd,0xc4,0xff,0x6,0x2, +0x9c,0xfc,0xc5,0xf9,0xd2,0xfe,0x24,0x1,0xde,0xff,0x8d,0x2, +0xbf,0x4,0xd2,0x2,0xe,0x3,0x17,0x5,0x4d,0x4,0xfd,0x2, +0xf7,0x2,0xe9,0x2,0xa7,0x2,0x2b,0x1,0x9f,0xfe,0xe2,0xfd, +0xe2,0xfe,0xd5,0xfe,0xe,0xfd,0x9a,0xfb,0xae,0xfc,0xb2,0xfe, +0x6a,0xfe,0xad,0xfd,0x11,0xff,0xdb,0xff,0xc5,0xfe,0x2d,0xfe, +0x12,0xfe,0xf7,0xfd,0xf9,0xfd,0x73,0xfc,0x17,0xfb,0x75,0xfc, +0xd,0xfc,0x76,0xf8,0xff,0xf7,0x7d,0xf9,0xb6,0xf7,0x3c,0xf7, +0x7b,0xfa,0xcd,0xfa,0x4c,0xf8,0xb3,0xf8,0x5b,0xfa,0x57,0xfa, +0x6e,0xfa,0xb6,0xfa,0xd9,0xf9,0xf3,0xf8,0xec,0xf8,0x11,0xf9, +0xd8,0xf8,0xb6,0xf8,0x36,0xf9,0x7d,0xf9,0xe3,0xf8,0xd,0xf9, +0x9e,0xfa,0x6b,0xfb,0xfd,0xfa,0x51,0xfb,0x4f,0xfc,0xc,0xfc, +0xa0,0xfa,0xd7,0xf9,0x4c,0xfa,0x79,0xfa,0x4f,0xf9,0xb8,0xf8, +0x5d,0xfa,0x24,0xfc,0x83,0xfb,0x9d,0xf9,0x7c,0xf9,0xfa,0xfa, +0x63,0xfb,0x82,0xfb,0xe3,0xfc,0x2f,0xfd,0x7,0xfd,0x12,0xff, +0x3f,0x0,0x9d,0xff,0xb5,0x0,0xa8,0x1,0xad,0x0,0x19,0x1, +0x1f,0x2,0x25,0x1,0xd7,0x0,0x39,0x2,0x48,0x2,0x7a,0x1, +0x7f,0x2,0xe9,0x3,0xc0,0x3,0x9e,0x3,0x84,0x4,0x60,0x5, +0x30,0x5,0xd2,0x3,0xa5,0x3,0x20,0x5,0x3e,0x4,0xe7,0x1, +0x12,0x2,0x8a,0x2,0x7,0x2,0x9f,0x2,0xd0,0x2,0xf0,0x1, +0x55,0x1,0x55,0x0,0x45,0x0,0xee,0x1,0x1b,0x2,0x9f,0x1, +0x33,0x3,0x80,0x3,0x2a,0x1,0xa4,0x0,0xa9,0x1,0xd3,0x0, +0xd4,0xff,0x48,0xff,0xf2,0xfc,0x54,0xfb,0x4c,0xfc,0xe,0xfd, +0xa0,0xfd,0x85,0xfe,0xf1,0xfd,0x91,0xfd,0xa0,0xfe,0x2f,0xff, +0xef,0xff,0x16,0x1,0xe2,0x0,0x8e,0x0,0xbd,0x0,0x49,0x0, +0xe,0x0,0x79,0xff,0xf8,0xfd,0xce,0xfe,0xb6,0x0,0xf7,0xfe, +0x78,0xfd,0x10,0x0,0x1d,0x1,0x9f,0xff,0xc8,0x0,0x73,0x2, +0x21,0x1,0x5b,0xff,0x67,0xfe,0x11,0xfe,0x97,0xfe,0x36,0xfe, +0x23,0xfd,0x9f,0xfd,0x59,0xfe,0x48,0xfd,0xa,0xfc,0x3b,0xfd, +0xd0,0xff,0x19,0x0,0xc,0xff,0x6f,0x0,0x43,0x1,0xcc,0xfd, +0xd6,0xfb,0x7c,0xff,0x4d,0x1,0xae,0xfd,0x72,0xfc,0xc,0xff, +0x8b,0xfe,0x33,0xfc,0x65,0xfc,0x6a,0xfc,0xd1,0xfb,0x9,0xfe, +0xe4,0x0,0x16,0x0,0xb,0xfe,0xb4,0xff,0xd7,0x1,0xea,0xfe, +0x62,0xfc,0xd6,0xfe,0x7f,0xff,0xb5,0xfd,0x6c,0xff,0xf5,0x0, +0x9f,0xff,0x96,0x1,0x16,0x6,0xe9,0x5,0x22,0x2,0xa2,0x1, +0x7f,0x4,0x29,0x4,0x2,0x1,0x4c,0x2,0xb6,0x5,0x9a,0x4, +0x9b,0x3,0xf1,0x5,0x3a,0x5,0x73,0x2,0x1d,0x3,0xb5,0x3, +0x14,0x3,0x5,0x5,0x85,0x5,0xab,0x2,0xc3,0x3,0xa3,0x7, +0x6,0x6,0xc5,0x1,0xee,0x1,0x92,0x3,0x70,0x1,0x47,0xfe, +0x9,0xff,0x2f,0x1,0x9e,0xff,0x5c,0xfd,0xb5,0xfe,0x7d,0xff, +0x90,0xfd,0xcf,0xfd,0xc,0x0,0xab,0x0,0x0,0x1,0x1f,0x1, +0x45,0xff,0x15,0xfe,0x55,0xff,0x76,0x0,0x8a,0xff,0x5b,0xfd, +0xdd,0xfc,0xe0,0xfe,0x0,0x0,0xa8,0x0,0xb0,0x3,0xc4,0x4, +0x40,0x1,0x44,0x0,0xa3,0x3,0xc5,0x3,0xb8,0x0,0xe7,0x0, +0xb8,0x2,0xd3,0x2,0xb3,0x3,0x12,0x5,0xc1,0x4,0x5d,0x4, +0x16,0x3,0xf2,0xfe,0x7e,0xfb,0xf0,0xfb,0x3e,0xfe,0xd,0xff, +0x2,0xff,0x4c,0x2,0xad,0x6,0xce,0x5,0x3e,0x3,0xb7,0x3, +0x57,0x3,0x55,0x2,0xe0,0x2,0x26,0x1,0x4c,0xff,0xfe,0x1, +0x45,0x4,0xbb,0x3,0x52,0x4,0xed,0x4,0x57,0x4,0xc7,0x4, +0x92,0x4,0x2e,0x2,0xec,0x0,0x81,0x2,0x28,0x4,0x3a,0x4, +0x2,0x5,0x6a,0x6,0x96,0x4,0x52,0x1,0x8,0x1,0xe8,0x0, +0x78,0xfe,0x61,0xfc,0x63,0xfb,0x25,0xfc,0xec,0xff,0xc1,0x3, +0x5a,0x5,0x31,0x6,0xa6,0x6,0xb0,0x5,0xe5,0x3,0xb2,0x3, +0x12,0x4,0x35,0x0,0xde,0xfa,0x7e,0xfb,0x18,0x0,0x3a,0x4, +0x2e,0x8,0xad,0x9,0x7,0x8,0x6,0x7,0xda,0x5,0xc,0x3, +0xfc,0x1,0xc8,0x2,0x93,0x2,0x46,0x3,0x1e,0x7,0xdf,0x9, +0x64,0x8,0xa3,0x7,0x26,0xa,0x89,0xa,0x3d,0x7,0xea,0x3, +0xbf,0x1,0xa0,0x1,0x53,0x3,0x8f,0x3,0x60,0x3,0xa4,0x5, +0xc3,0x6,0x77,0x4,0x34,0x4,0xf6,0x7,0xeb,0x7,0x26,0x1, +0x8,0xfe,0x33,0x2,0xc5,0x3,0x1e,0x4,0xc8,0xb,0x1d,0x12, +0xeb,0xf,0x6b,0xe,0x6f,0xe,0xa8,0x9,0x18,0x5,0xf8,0x3, +0x7e,0x2,0x3d,0x2,0x8d,0x4,0x1c,0x6,0xf2,0x6,0xb3,0x9, +0x66,0xd,0x79,0xc,0xe1,0x5,0x9f,0x2,0x73,0x5,0x4e,0x5, +0x14,0x2,0x64,0x3,0xf9,0x5,0xdf,0x4,0x75,0x5,0xe7,0x9, +0x3b,0xb,0xd2,0x7,0x9f,0x5,0xb2,0x5,0xb1,0x4,0xf2,0x2, +0x75,0x2,0xd6,0x3,0x61,0x6,0xaf,0x7,0x5,0x7,0xf2,0x5, +0xce,0x4,0xcb,0x3,0x80,0x3,0x5,0x4,0x54,0x5,0xd7,0x4, +0x16,0x1,0xf,0x0,0x8e,0x5,0x15,0xa,0x37,0x7,0x95,0x2, +0xf2,0x1,0x9e,0x0,0x5e,0xfc,0xdf,0xfb,0xaa,0xfe,0x24,0xfd, +0xd5,0xf8,0xde,0xf8,0x56,0xfd,0x18,0xff,0xa3,0xfa,0xa7,0xf8, +0xbd,0xfe,0x46,0x2,0x68,0xfe,0x99,0xfd,0xe7,0x1,0xc7,0x1, +0xac,0xfb,0x73,0xf7,0x5b,0xf8,0xa9,0xf9,0x2a,0xf9,0xfb,0xf8, +0xe7,0xf7,0x7b,0xf5,0x39,0xf4,0x25,0xf2,0x66,0xee,0xea,0xec, +0xcc,0xeb,0x97,0xe7,0x53,0xe5,0x8f,0xe8,0x6e,0xec,0xed,0xed, +0xa2,0xf0,0x4f,0xf5,0xd5,0xf5,0x2d,0xf1,0xf3,0xef,0xcc,0xf3, +0x63,0xf4,0x17,0xf2,0xc6,0xf3,0x1b,0xf7,0x31,0xf9,0x48,0xfe, +0xee,0x4,0x33,0x6,0x9,0x2,0xa7,0xfd,0x5e,0xfc,0x7c,0xfc, +0x3a,0xfa,0x99,0xf7,0x2f,0xf7,0xc5,0xf4,0xca,0xf0,0xc3,0xf1, +0x10,0xf5,0x50,0xf4,0x68,0xf2,0x72,0xf2,0xfb,0xf0,0x2e,0xee, +0x42,0xee,0xce,0xef,0x51,0xf0,0xe4,0xf2,0x20,0xf7,0x6b,0xf7, +0x89,0xf5,0xa3,0xf7,0xa8,0xfa,0xc7,0xf7,0x68,0xf2,0x55,0xf2, +0x3e,0xf5,0x99,0xf4,0xab,0xf2,0x37,0xf4,0x19,0xf8,0xa8,0xfb, +0xd6,0xfd,0x1,0x0,0x51,0x3,0xb9,0x2,0x6c,0xfb,0x8a,0xf5, +0x7d,0xf5,0xc4,0xf3,0x46,0xed,0x6f,0xea,0xd2,0xef,0x26,0xf6, +0xe4,0xf7,0x50,0xf9,0xfa,0xfc,0xbb,0xfe,0x6f,0xfc,0xf1,0xf8, +0xa,0xf8,0x2d,0xfa,0x2f,0xfb,0xdd,0xf8,0xde,0xf7,0x57,0xfb, +0xb7,0xfd,0xa5,0xfb,0xbe,0xfb,0x6a,0xff,0xb2,0xfe,0xdf,0xfa, +0x4,0xfb,0x4,0xfc,0x5,0xfb,0x6b,0xfc,0xf7,0xff,0x12,0x2, +0xfe,0x2,0x84,0x3,0xdb,0x2,0x87,0xff,0x73,0xf9,0x44,0xf4, +0x3f,0xf2,0xa2,0xf1,0x22,0xf3,0x4a,0xf8,0xf4,0xfb,0x3f,0xfa, +0xa2,0xf9,0x1,0xfe,0xb7,0x0,0xee,0xfe,0xa6,0xfd,0x47,0xff, +0xf5,0x1,0x64,0x2,0xb8,0x0,0x27,0x2,0x33,0x5,0xf3,0x2, +0x72,0xfe,0x81,0xfd,0xf4,0xfd,0x27,0xfe,0xb6,0xfe,0x23,0xff, +0xb2,0x0,0xfb,0x2,0xa0,0x3,0xa3,0x3,0x2d,0x3,0x90,0x1, +0xb0,0x1,0x90,0x1,0x3f,0xfc,0xfd,0xf7,0x52,0xfa,0x8,0xfb, +0x14,0xf8,0xfe,0xf9,0x62,0xfe,0x5a,0xfe,0x36,0xfe,0xe3,0x0, +0xa1,0x1,0xee,0xff,0xc6,0xff,0x6,0x1,0x65,0x0,0x8,0xff, +0x71,0xff,0x1c,0xfd,0x69,0xf7,0x5,0xf7,0xcb,0xf9,0x90,0xf6, +0x36,0xf3,0x2c,0xf6,0x13,0xf8,0x3c,0xf6,0xeb,0xf6,0xee,0xfa, +0xc2,0xfd,0xa9,0xfd,0xf,0xfd,0xbb,0xfd,0x4f,0xfe,0xda,0xfe, +0x55,0x0,0x30,0x1,0x56,0x1,0xdb,0x1,0xad,0x1,0xf4,0x1, +0x72,0x4,0xe9,0x6,0xc7,0x8,0x1b,0xb,0xc,0xc,0x81,0xc, +0x30,0xe,0x89,0xc,0x9b,0x6,0x11,0x3,0xa9,0x2,0xe5,0xff, +0x4f,0xfb,0xd7,0xfa,0xac,0xfe,0x44,0x0,0x3d,0xff,0x4a,0x1, +0xe1,0x4,0x95,0x6,0x11,0x8,0x4c,0x7,0x66,0x3,0x3d,0x1, +0xff,0xff,0xb7,0xfd,0x37,0xfd,0xf6,0xfc,0xeb,0xfb,0x68,0xfd, +0xdd,0xff,0x65,0x0,0xb0,0x0,0xf1,0x2,0x51,0x5,0x7e,0x2, +0x73,0xfe,0xbb,0x2,0x30,0x7,0xda,0x2,0xca,0x1,0x95,0x6, +0x13,0x4,0x22,0xff,0x9d,0x3,0xf1,0x8,0x47,0x5,0x6b,0x2, +0x4b,0x9,0x35,0xe,0xbf,0x8,0x57,0x7,0xbf,0xf,0x2f,0x11, +0x5d,0x9,0xfa,0x7,0x3b,0xc,0xb4,0xa,0x7b,0x5,0xf1,0x1, +0xd6,0xfe,0xda,0xfd,0x95,0xff,0x51,0xff,0xe7,0xff,0xfb,0x4, +0xea,0x5,0xfc,0x0,0x30,0x1,0xb5,0x5,0x5e,0x5,0xff,0x2, +0xb,0x5,0x53,0x7,0xba,0x3,0xf1,0x1,0x65,0xb,0x67,0x11, +0xce,0x5,0x21,0xfe,0x3d,0x9,0xe4,0xe,0xaf,0x5,0x7f,0x3, +0x32,0xa,0x80,0x9,0x27,0x4,0x31,0x5,0xae,0x8,0x93,0x4, +0x4d,0xfd,0xdc,0xff,0x53,0x5,0x4,0xff,0xfc,0xf9,0xf3,0x2, +0xb,0x7,0x60,0xfe,0xe9,0xfc,0xd0,0x5,0x72,0x8,0x53,0x3, +0x6,0x2,0xbb,0x5,0xf5,0x4,0x55,0xfe,0xec,0xfc,0xac,0x3, +0xd4,0x6,0x14,0x2,0x5e,0xff,0x25,0x3,0x82,0x6,0x8b,0x4, +0xed,0xff,0x32,0xff,0xd7,0x4,0x5a,0x8,0x9f,0x2,0x5b,0xfc, +0x54,0x0,0x19,0xa,0x49,0xc,0x8d,0x4,0x2f,0x2,0x5a,0xa, +0x77,0xb,0xe5,0x2,0xb8,0x1,0x57,0x6,0x9,0x6,0xf3,0x4, +0x76,0x5,0xaa,0x3,0xae,0x1,0xf2,0x2,0xac,0x6,0xa9,0x9, +0xd1,0xa,0x1f,0xb,0xf9,0x6,0xf7,0xfe,0x9d,0xfc,0xac,0xfe, +0xeb,0xfc,0x31,0xfb,0x5f,0xfc,0x2c,0xfc,0x82,0xfe,0x66,0x5, +0xc5,0x5,0x54,0xff,0x22,0x2,0xf,0xb,0xb4,0x5,0x29,0xfa, +0x71,0xff,0x74,0xa,0x1f,0x7,0x27,0x0,0x60,0x3,0xa2,0x8, +0xa8,0x4,0x74,0xfd,0xe6,0x1,0x66,0xb,0x60,0x7,0xd2,0xff, +0xd,0x4,0xf6,0x7,0xe,0x6,0xac,0x6,0x2e,0x6,0x4c,0x4, +0xa1,0x5,0x32,0x4,0xae,0x1,0xfc,0x4,0x6,0x8,0x32,0x6, +0x6f,0x1,0xb4,0xfd,0x48,0x1,0x18,0x5,0x84,0x1,0x7,0x2, +0x77,0x5,0x32,0x0,0xf,0xff,0xeb,0x7,0xe,0x9,0xa1,0x3, +0x3c,0x4,0x10,0x4,0x7a,0xfd,0x5b,0xfa,0x97,0xfe,0x97,0x0, +0x8c,0xfe,0xf5,0x1,0x7c,0x6,0x1e,0x3,0xe1,0x2,0x57,0x9, +0x96,0x7,0x86,0x0,0x87,0x0,0x1,0x1,0x54,0xfb,0x4a,0xf8, +0x5c,0xfe,0xd6,0x4,0x5d,0x3,0xe4,0x3,0xd6,0xb,0x3b,0xc, +0x86,0x4,0x43,0x4,0xba,0x6,0x8d,0x1,0x67,0xfc,0x41,0xfd, +0xea,0xff,0xea,0x1,0xb6,0x3,0x4,0x6,0x8d,0x7,0x7f,0x6, +0xaa,0x5,0x6d,0x5,0x51,0x0,0x86,0xfa,0x6a,0xfd,0x79,0x0, +0x7c,0xfa,0xbe,0xf9,0xdc,0x2,0x49,0x2,0x45,0xfa,0x43,0xfe, +0x2f,0x4,0x4f,0xfd,0x10,0xf7,0x2,0xf9,0x6d,0xf9,0x81,0xf8, +0x35,0xfb,0x1f,0xff,0xc8,0x1,0x6f,0x2,0xdd,0x2,0x20,0x3, +0xb1,0xfd,0xbe,0xf7,0xcb,0xf8,0x8e,0xf6,0x1,0xf1,0x84,0xf3, +0x29,0xf3,0x70,0xee,0x0,0xf7,0xf0,0xfe,0x3c,0xf9,0x21,0xfd, +0xe3,0x7,0xaa,0x0,0x7e,0xf5,0xbc,0xf9,0x22,0x0,0x64,0xfd, +0x35,0xf9,0xa0,0xfb,0x45,0x1,0x5f,0x2,0x31,0x0,0x33,0xff, +0x98,0xfe,0x55,0xff,0xe7,0xff,0xeb,0xf8,0xcd,0xee,0x71,0xf0, +0xe2,0xfa,0xbd,0xfb,0x5,0xf5,0x25,0xf8,0xbb,0xfe,0x37,0xfa, +0xbb,0xf5,0xa1,0xf8,0x13,0xf6,0xb3,0xf0,0x1c,0xf3,0x32,0xf4, +0xfc,0xf0,0xaf,0xf5,0xf5,0xfd,0xad,0xfd,0x8,0xfb,0x96,0xfe, +0x15,0x2,0xb2,0xfd,0x75,0xf7,0x7e,0xfa,0xed,0xfe,0xa5,0xf6, +0xa6,0xf0,0x0,0xfc,0xd,0x2,0x4,0xf8,0xba,0xf7,0xa5,0x1, +0x7d,0xfc,0x41,0xf2,0xd1,0xf8,0x92,0x1,0x57,0xfd,0x1b,0xf9, +0x2f,0xfc,0xe2,0xff,0xe3,0x2,0x8e,0x3,0x29,0x0,0x53,0xff, +0x3f,0x2,0x18,0x2,0x50,0xfe,0x27,0xfc,0xd2,0xff,0xd8,0x3, +0x82,0xfe,0x8d,0xfa,0x38,0x3,0xe7,0x4,0x7a,0xf9,0xcb,0xfa, +0xdd,0x5,0x5,0x2,0xa0,0xf9,0x79,0xfd,0x1f,0x1,0x9f,0xfd, +0x7b,0xfd,0x37,0x1,0xaa,0x1,0x76,0xff,0x3d,0xfe,0x72,0xfe, +0x1d,0xfe,0x6f,0xfc,0x82,0xfc,0x6,0xff,0xfc,0x0,0x79,0x2, +0x9a,0x1,0x33,0xfd,0x9c,0xfe,0xa9,0x5,0x15,0x3,0x53,0xfa, +0xfc,0xfb,0xb5,0x2,0x9d,0xff,0x1d,0xf8,0xe2,0xfc,0x68,0xa, +0x3,0xc,0xdd,0x3,0xab,0x4,0xd1,0xa,0xc7,0xb,0xea,0x7, +0xb2,0xff,0xca,0xfd,0x1f,0x6,0x53,0x3,0x57,0xf8,0x52,0xfe, +0xc8,0x8,0xca,0x4,0x99,0x0,0x27,0x3,0x2e,0x4,0x36,0x4, +0x20,0x3,0x96,0x0,0xf3,0x0,0xd1,0x1,0xb9,0x2,0x98,0x6, +0xf7,0x5,0xbb,0x2,0x87,0x8,0xb,0xa,0x21,0xfd,0x7f,0xf9, +0x84,0x2,0xf8,0xff,0x8f,0xf7,0xf3,0xf7,0x3b,0xf8,0x2d,0xf8, +0xfe,0xfb,0x67,0xfc,0xb9,0xff,0xcd,0x8,0x1e,0x7,0xd4,0x0, +0xb6,0x6,0xec,0xb,0x98,0x7,0x97,0x5,0xfd,0x7,0x30,0xb, +0x3d,0xc,0x5,0x7,0xc0,0x5,0x2d,0xc,0xaa,0xa,0xf1,0x5, +0xfb,0xa,0xa3,0xd,0x79,0x9,0x5b,0x6,0xb9,0xfe,0x43,0xf7, +0x45,0xfb,0x32,0xfd,0x96,0xf4,0xf8,0xf1,0x4c,0xf8,0xc9,0xf7, +0xb4,0xf1,0x1,0xf5,0x58,0xfc,0x42,0xf8,0x95,0xf1,0x8a,0xf5, +0x50,0xf7,0xf,0xee,0x9b,0xea,0x54,0xf3,0x3f,0xf5,0xe6,0xeb, +0x82,0xec,0xec,0xf7,0x9d,0xf6,0x49,0xed,0x39,0xf2,0x63,0xfa, +0x8,0xf5,0x9c,0xf0,0x97,0xf6,0x4b,0xfb,0x94,0xfc,0xfa,0xfe, +0xa9,0xfe,0xb4,0xfd,0xf5,0x1,0x0,0x4,0x6a,0xfe,0x7c,0xfc, +0xa5,0x2,0xb4,0x3,0xa4,0xfd,0xd6,0xff,0x1f,0xa,0xe5,0xa, +0x4c,0x1,0x2c,0xfc,0x35,0xfc,0x61,0xf7,0x8d,0xf1,0x9c,0xf5, +0x36,0xfd,0x6f,0xfb,0x3d,0xf5,0x62,0xf4,0xad,0xf7,0xcc,0xfd, +0xde,0x2,0xda,0xff,0xa6,0xfc,0x3d,0x1,0xd5,0x1,0xd3,0xfa, +0xc7,0xfa,0x2d,0x3,0xee,0x7,0x2c,0x6,0x58,0x3,0x11,0x4, +0x57,0x6,0x29,0x2,0xa8,0xfb,0x5b,0xff,0xb,0x4,0x4b,0xfa, +0x1c,0xf0,0xc5,0xf6,0x97,0x0,0x4d,0xfc,0xb7,0xf5,0xc6,0xfc, +0x9c,0x1,0xf3,0xf3,0x71,0xea,0x5,0xf4,0x6f,0xf8,0xe3,0xf0, +0x95,0xf3,0x71,0xfe,0x0,0xfd,0xd8,0xf3,0xec,0xf6,0x46,0x4, +0xee,0x9,0x42,0x7,0x6d,0x6,0x8a,0x5,0x56,0x3,0x31,0x6, +0xb3,0xc,0xcd,0x10,0x5d,0x12,0xf,0x12,0x4d,0xd,0x22,0x6, +0x20,0x5,0x7,0xb,0xe2,0xf,0x58,0x11,0x1f,0xf,0x3f,0x9, +0xc5,0x7,0x8b,0xc,0x52,0xe,0x9a,0xc,0x26,0xd,0x68,0xc, +0xf6,0x3,0xa8,0xf8,0x17,0xf8,0x2e,0x2,0xcd,0x5,0x58,0x2, +0x1e,0x7,0x5a,0xc,0xd5,0x4,0x39,0x1,0x98,0xa,0xd3,0xc, +0x2c,0x5,0x23,0x3,0x51,0x1,0xc4,0xf8,0x82,0xf7,0x6c,0x0, +0x1e,0x3,0x27,0x0,0x33,0x5,0x8a,0x9,0x2d,0x2,0x89,0x0, +0xa,0xc,0xed,0xf,0xf3,0x8,0xd8,0x7,0x4a,0xc,0x5b,0x9, +0xe1,0x0,0x45,0x3,0xc6,0xe,0xa7,0xe,0xac,0x7,0xd6,0x9, +0xe9,0xa,0xc5,0x8,0xb0,0xd,0xb1,0xd,0x60,0x6,0x33,0x8, +0x51,0xc,0xba,0x9,0xda,0xc,0x4,0x14,0xe0,0x10,0x92,0x8, +0xc9,0x6,0x20,0x9,0x1b,0xa,0xe9,0x9,0x25,0x9,0x2f,0x8, +0x9f,0x6,0x90,0x2,0x27,0xff,0xee,0x0,0xdb,0x5,0x63,0xc, +0xde,0x12,0xc0,0x11,0x51,0xa,0x55,0x8,0x9d,0xb,0x14,0xb, +0x6c,0x9,0xda,0xd,0x7d,0x13,0x3,0x11,0xc6,0x8,0xba,0x6, +0x8a,0xd,0xcd,0x10,0x56,0xc,0x6b,0xc,0xbe,0x11,0x95,0xf, +0xa1,0x9,0xc3,0xa,0xc9,0xb,0xa7,0x6,0x6d,0x5,0xee,0x8, +0xa4,0x5,0x9,0xfe,0x56,0xfb,0xed,0xf9,0x35,0xf8,0x70,0xfd, +0xfa,0x7,0x16,0xf,0x27,0x10,0xea,0xe,0xf9,0xe,0x5e,0xd, +0xc9,0x8,0x67,0x8,0xa4,0xb,0x54,0xb,0x38,0xa,0x71,0xa, +0xb3,0x9,0xf9,0xb,0xca,0xf,0x5d,0xe,0x7,0xd,0x6a,0xf, +0xf1,0xb,0xc5,0x2,0x2e,0x1,0x67,0x7,0x78,0x8,0xdd,0x2, +0xf8,0x1,0xf0,0x8,0x95,0xd,0x9b,0xa,0xdc,0x7,0x70,0x7, +0xd1,0xff,0x41,0xf4,0x4a,0xf2,0x1d,0xf7,0x7e,0xfa,0x77,0xfd, +0x0,0xfc,0x76,0xf3,0x57,0xee,0xa8,0xf2,0xdc,0xfa,0x94,0xfd, +0x87,0xf5,0x74,0xee,0x9e,0xf2,0x90,0xf3,0x40,0xec,0xd,0xee, +0xb8,0xf5,0x72,0xf3,0xd1,0xee,0xe8,0xef,0x9e,0xf1,0xed,0xf8, +0x2,0x8,0x9d,0x10,0x5e,0xe,0x2f,0x7,0x9e,0xfb,0xc0,0xf5, +0x38,0xfd,0x92,0xff,0xa5,0xf6,0x97,0xf6,0xc3,0xfa,0x56,0xf1, +0x4e,0xeb,0xc5,0xf8,0x64,0x4,0x9f,0xff,0xbd,0xfc,0x91,0x4, +0xd5,0x2,0x4d,0xf3,0xa1,0xf0,0xd9,0xfb,0x9d,0xf5,0x81,0xe1, +0xc3,0xe1,0x35,0xf4,0xf,0xff,0x58,0x1,0x63,0x0,0xb,0xf9, +0x2e,0xf3,0xc5,0xf0,0xbf,0xea,0xf1,0xee,0x52,0xfe,0xf1,0xfa, +0x84,0xec,0x41,0xf4,0x17,0x1,0x9a,0xf7,0x3b,0xe8,0xc,0xe3, +0x4a,0xe2,0xf0,0xe4,0xed,0xe8,0xaf,0xe5,0x41,0xe1,0x5f,0xe7, +0xeb,0xef,0x76,0xf1,0xb7,0xf4,0xb9,0xfb,0x9f,0xfa,0x85,0xf0, +0x4a,0xe8,0xf1,0xe6,0x30,0xe9,0x70,0xed,0xe1,0xf2,0x3b,0xf3, +0x20,0xf4,0x83,0x1,0x9c,0x8,0x8e,0xfa,0xfe,0xf6,0x75,0x8, +0x1b,0x8,0xb7,0xf1,0x79,0xeb,0x4b,0xf7,0xc7,0xf7,0xbe,0xee, +0x72,0xf2,0x55,0xff,0x47,0x5,0x73,0x4,0x91,0x1,0xcb,0xfb, +0x57,0xf5,0x6b,0xf2,0x31,0xf2,0x48,0xf3,0xe7,0xf9,0x13,0x1, +0x9a,0xf9,0xb9,0xeb,0x4f,0xea,0xad,0xea,0xf,0xe5,0x5c,0xe9, +0xd4,0xf1,0x12,0xec,0x7f,0xe3,0xc6,0xe7,0xc6,0xee,0x5,0xf0, +0x51,0xf8,0xd6,0x7,0x5d,0x3,0x23,0xe9,0xfd,0xdd,0xa4,0xea, +0x1,0xf2,0xd9,0xec,0xe,0xec,0x7a,0xf1,0x2a,0xf6,0x66,0xfc, +0x8e,0x3,0x4,0x9,0x18,0x12,0xb1,0x18,0xeb,0x10,0xa0,0x8, +0x57,0xb,0x9d,0x8,0x40,0xfe,0xd8,0xfc,0xe6,0x2,0x26,0xa, +0x74,0x13,0xe0,0x14,0xb5,0xa,0xb7,0x5,0xa8,0x9,0xd,0x6, +0xc8,0xfa,0x97,0xf6,0x97,0xf7,0x3a,0xf6,0xa0,0xf7,0x9,0xfc, +0x4a,0xfd,0x81,0xfd,0x48,0xfc,0xf4,0xf3,0x3c,0xe9,0x6,0xe6, +0xf4,0xe8,0x6f,0xe8,0x73,0xe5,0x46,0xea,0x48,0xf3,0xe5,0xf7, +0xfd,0xfd,0x83,0x5,0xd5,0x4,0x6a,0xff,0xf8,0xfc,0xe9,0xfe, +0x36,0x4,0x34,0x7,0x30,0x7,0xce,0x5,0xf8,0xfc,0x3b,0xf7, +0xf4,0x6,0xe4,0x17,0x4a,0xd,0x60,0xfa,0xb8,0xfd,0xc8,0x9, +0x5,0x6,0xe4,0xff,0x82,0x9,0x6a,0x12,0x9c,0xd,0x99,0xb, +0x9b,0x12,0x2a,0x11,0x1a,0x5,0x5e,0xff,0xdf,0xfd,0x84,0xf6, +0x63,0xf5,0xa4,0xfb,0x9b,0xfa,0xc1,0xfe,0x8f,0xd,0xb9,0xd, +0xfc,0x3,0x9a,0x6,0x6f,0x8,0x97,0xfe,0xf6,0xf8,0x6d,0xfd, +0xee,0x0,0xdd,0xfd,0x85,0xfc,0xb6,0x3,0x8d,0x9,0x31,0x4, +0xa7,0xf9,0x43,0xf3,0x9d,0xf3,0x86,0xf7,0xf7,0xf7,0x5d,0xf4, +0xa8,0xf8,0x30,0x6,0xd0,0x9,0xb5,0x3,0x65,0x6,0x61,0x6, +0x71,0xf7,0xdd,0xef,0x33,0xf3,0x93,0xee,0x29,0xea,0xe1,0xf0, +0xbb,0xf6,0xbb,0xf7,0x22,0xff,0xed,0xd,0xab,0x14,0x45,0xf, +0xd1,0xf,0x6c,0x16,0xdc,0xe,0xa8,0x3,0x10,0xb,0x23,0x16, +0xeb,0x16,0x3d,0x1c,0x5b,0x22,0x7b,0x19,0x39,0x12,0xb0,0x15, +0xb9,0xb,0xad,0xf7,0x79,0xf7,0xb7,0x4,0xdc,0x7,0xc5,0x8, +0x80,0x13,0xb6,0x17,0xcf,0xb,0xea,0x4,0x3,0x9,0xac,0x1, +0xa,0xf0,0x1b,0xe8,0x6f,0xe6,0xe6,0xe4,0x32,0xeb,0x63,0xf2, +0xb4,0xee,0xbd,0xef,0x50,0x6,0xc2,0x1c,0xc,0x1b,0xe4,0x13, +0x74,0x16,0xe4,0xd,0x14,0xfd,0xfe,0x2,0x60,0x14,0xe0,0xd, +0xbb,0xfa,0xa1,0xfb,0x4e,0x6,0xb3,0xff,0xa,0xf7,0x20,0x4, +0x72,0x10,0x32,0x5,0x1c,0xfa,0x6,0x3,0xc0,0xd,0x2f,0xb, +0xde,0x6,0xb2,0xc,0x68,0x13,0x34,0xd,0xe6,0x1,0x63,0x1, +0x52,0x6,0xef,0x2,0x8f,0xfd,0x80,0x3,0x3,0xd,0x32,0xe, +0x3e,0x10,0x86,0x16,0xcf,0x12,0xce,0xb,0xee,0x11,0x2c,0x17, +0xf2,0xd,0x7e,0x5,0x48,0x6,0x85,0x3,0xec,0xf8,0x73,0xf3, +0xb6,0xf7,0x79,0xfa,0x6d,0xf9,0xb3,0xfa,0xad,0xfb,0xf9,0xfe, +0x74,0xa,0xf2,0x11,0x51,0xe,0x32,0xe,0x39,0x12,0x2d,0x6, +0x98,0xee,0x7,0xea,0x6f,0xf5,0x4e,0xee,0x3a,0xdb,0x12,0xe1, +0xd8,0xf6,0x3c,0xfb,0xc8,0xf8,0x7e,0x6,0x95,0xf,0xfd,0xff, +0x4a,0xf2,0xf5,0xf6,0x36,0xf9,0xa8,0xf7,0x42,0x0,0xfc,0x7, +0x7a,0x6,0x51,0x6,0x81,0x9,0x2b,0x8,0x97,0x0,0x69,0xfc, +0xdf,0x1,0x80,0x3,0x41,0xfb,0x25,0xfa,0x67,0x3,0xee,0xa, +0x6f,0x10,0x8c,0x13,0x11,0x12,0xf9,0x11,0xff,0xc,0x1b,0xfb, +0x23,0xed,0x8f,0xec,0xbb,0xee,0x1b,0xf7,0xea,0x7,0x16,0x11, +0x6b,0x12,0xa1,0x16,0x29,0x17,0xd1,0xe,0x59,0x6,0x2c,0x4, +0x45,0x4,0x27,0xfe,0xce,0xf4,0x2e,0xf5,0x42,0xfe,0xd0,0x2, +0xfc,0xfe,0x78,0xf9,0x62,0xf8,0x5c,0xfb,0x47,0xfc,0xbe,0xf7, +0xc0,0xf3,0x32,0xf3,0x67,0xef,0xc9,0xef,0xec,0xff,0x51,0xc, +0xa,0x7,0x6a,0x3,0x38,0x4,0xc4,0xfe,0x71,0xfc,0x71,0xfd, +0x30,0xfa,0xc7,0xfa,0x7f,0xfd,0x9,0xfe,0x94,0x8,0xcf,0x15, +0xa8,0x11,0x8e,0x8,0x37,0xc,0xff,0xf,0xa2,0x8,0x85,0xfe, +0xb6,0xf8,0x3d,0xf9,0xa2,0xfc,0xb3,0xfa,0xb,0xfe,0x70,0x13, +0x9b,0x22,0xb5,0x16,0x19,0x9,0xb0,0xd,0x4c,0xf,0xd9,0xff, +0xe3,0xf4,0x62,0xfd,0x6e,0x6,0x39,0x1,0xaa,0xfc,0x37,0x5, +0x7f,0xf,0xf2,0xf,0xf5,0xd,0xf3,0x11,0x18,0x15,0x4f,0x14, +0xb5,0x14,0xa9,0xf,0xd4,0x2,0x43,0xfc,0xcd,0xfa,0x6f,0xf2, +0xbf,0xed,0x4b,0xf7,0xf2,0xfe,0xbf,0xfc,0x23,0xff,0xd0,0x3, +0x4d,0xfe,0xb3,0xf9,0x38,0xfb,0xed,0xf4,0xa1,0xee,0x6b,0xf4, +0xfa,0xf3,0x57,0xe7,0x85,0xe9,0x0,0x0,0xf4,0xc,0x9f,0x8, +0x9a,0xe,0x18,0x22,0x3a,0x25,0x9e,0x17,0x24,0x16,0x74,0x1f, +0x6a,0x1d,0x24,0x17,0x3b,0x1a,0x36,0x16,0x77,0x8,0x94,0x7, +0x82,0x5,0xc7,0xef,0xc2,0xe6,0x71,0xf0,0x96,0xe8,0xd4,0xde, +0xca,0xf2,0x18,0x6,0xbc,0xfd,0xa6,0xf6,0xec,0x4,0x9b,0xb, +0xcf,0xf9,0x98,0xf1,0xb1,0xfd,0x20,0xf8,0x60,0xe7,0x9c,0xf2, +0x22,0x5,0xee,0x1,0x7e,0xfe,0xa0,0x1,0xc0,0xfe,0x75,0xff, +0xa8,0xfb,0x6b,0xe7,0x9e,0xe6,0xa0,0xfb,0x10,0xf1,0xf1,0xdc, +0x5c,0xf6,0x75,0xa,0xd1,0xee,0x8,0xe3,0x5b,0xf5,0x55,0xed, +0xa3,0xdd,0x8d,0xec,0xc0,0xf4,0x7a,0xeb,0x43,0xfb,0x44,0x13, +0xed,0x9,0xc8,0xff,0x41,0x13,0x1,0x17,0x18,0xf8,0x6d,0xee, +0xad,0x4,0xd4,0xff,0x8b,0xe2,0x28,0xe7,0xe8,0xfa,0x88,0xea, +0xdd,0xd8,0x32,0xed,0x1f,0xf9,0xeb,0xe2,0x8f,0xdf,0x49,0xfb, +0x67,0xfc,0xad,0xe5,0x1c,0xf3,0xb2,0xd,0xe8,0xfd,0xec,0xf0, +0xa1,0xb,0xff,0xd,0x82,0xef,0xf7,0xf3,0xae,0x5,0x32,0xf2, +0xbe,0xe8,0x3f,0xfe,0x75,0xfc,0x41,0xf2,0x3d,0x6,0x82,0x5, +0x50,0xe4,0xd1,0xeb,0x46,0xd,0xfd,0xfd,0x29,0xdd,0x97,0xe4, +0x40,0xf1,0xc3,0xe5,0xad,0xe4,0x29,0xf5,0x69,0xfd,0x50,0x0, +0xe9,0x1,0x16,0xfb,0x73,0xfd,0x11,0xa,0x69,0x1,0x98,0xee, +0x41,0xf4,0xac,0x0,0xd4,0xf9,0xae,0xf1,0xc7,0xf7,0x4b,0xfc, +0xb2,0xf6,0x2c,0xf8,0xf1,0x3,0x1c,0x4,0x54,0xfc,0xba,0x3, +0xa,0xc,0x40,0x0,0xfb,0xf7,0xf9,0x5,0x9c,0xe,0x25,0x2, +0x25,0xfd,0xe2,0x8,0x3d,0x8,0x3f,0xfb,0xbd,0xfc,0x94,0x4, +0xbb,0x0,0x9b,0xfe,0xfd,0x2,0x52,0xfd,0x75,0xf8,0x46,0x7, +0x7f,0xd,0xb,0xf9,0x5a,0xf5,0x2c,0xb,0x4a,0x9,0x5,0xf9, +0xcf,0x3,0x28,0xd,0x78,0xfc,0x8c,0xf9,0x24,0xb,0xc1,0xa, +0x78,0x2,0xb6,0xd,0x9b,0x12,0xda,0x3,0xfe,0x3,0x79,0x13, +0xe2,0x10,0x5f,0x1,0xe0,0xff,0xfc,0x8,0xd5,0x4,0x17,0xf7, +0x55,0xfc,0xc2,0xa,0xed,0x3,0x1e,0xfa,0x63,0x1,0x9c,0x2, +0x6f,0xfa,0x24,0xff,0x38,0x7,0x3f,0xfe,0x6d,0xf5,0x65,0x1, +0x1a,0xb,0xf0,0x0,0x5b,0xfc,0xe6,0x1,0x87,0xfb,0x26,0xf5, +0x59,0xfb,0x50,0xfb,0x93,0xf7,0xdb,0x0,0x3e,0x5,0xec,0xf8, +0x8e,0xf7,0x60,0x4,0x95,0x0,0xbf,0xf3,0x9,0xf5,0xbe,0xf4, +0xc7,0xef,0x9f,0xf9,0x54,0x2,0x20,0xfb,0x14,0xfe,0xc7,0xf, +0xaa,0xf,0xc8,0xff,0x54,0x5,0x2e,0x17,0xf8,0x9,0xf2,0xee, +0x8a,0xf6,0x82,0xc,0x82,0x5,0xfd,0xf7,0x5,0x3,0x58,0xa, +0x11,0xfd,0x14,0xfc,0x21,0x6,0xbb,0xfe,0x61,0xfb,0x51,0x8, +0xb,0x5,0xdd,0xfb,0x88,0xa,0xb6,0x18,0x2b,0x12,0x21,0xa, +0x5d,0xa,0xa1,0xb,0x7d,0x8,0xbb,0x2,0x64,0x2,0xcb,0x4, +0xf8,0xff,0xb7,0xfa,0x1d,0xff,0x71,0x5,0x37,0x7,0x61,0x7, +0x39,0x1,0xc,0xf6,0x39,0xf5,0x5f,0xfa,0x9e,0xf5,0xea,0xf0, +0xd2,0xf5,0xb9,0xf7,0xce,0xf4,0xd9,0xf5,0x9a,0xf8,0xcb,0xfe, +0x35,0xb,0x38,0xd,0x24,0xfe,0x7d,0xf6,0xa4,0xfe,0xc,0xfe, +0x70,0xf2,0x58,0xf5,0x18,0x2,0xd0,0xfe,0xbe,0xf6,0xee,0x1, +0x80,0xe,0x54,0x8,0x24,0x4,0x3e,0xc,0x47,0xa,0x9,0x0, +0x7c,0x6,0xfa,0x13,0x26,0x10,0x4f,0x9,0xce,0xf,0x42,0x10, +0x2,0x7,0x84,0xa,0x7e,0x14,0x31,0x10,0x86,0x5,0x64,0x5, +0x84,0xb,0xae,0xa,0x6f,0xa,0x40,0x16,0x30,0x1b,0x6b,0xd, +0xc7,0x4,0xba,0xa,0xcc,0x9,0x19,0xfa,0xf2,0xf3,0x1b,0x2, +0xa9,0x1,0x6c,0xea,0x48,0xea,0x5,0x1,0xb9,0x3,0xd,0xf8, +0xd5,0xf8,0x13,0x2,0x71,0x3,0xd,0xfa,0x1f,0xf6,0xab,0xfd, +0xf9,0xff,0x2e,0xf9,0x86,0xf4,0x9c,0xf3,0x28,0xf2,0x51,0xf2, +0x44,0xf7,0xf9,0xf7,0xb3,0xf3,0x1,0xfc,0xf4,0x7,0xf5,0x3, +0x6d,0x3,0x2b,0x11,0x61,0x14,0xf2,0x8,0xcd,0x2,0x8c,0x4, +0x3f,0x2,0xad,0xfc,0x29,0xfd,0x39,0xfd,0xe4,0xf7,0x1e,0xfd, +0x2d,0xb,0xf5,0x7,0xc1,0xf9,0x24,0x0,0xaa,0xd,0xb5,0x0, +0x4c,0xf3,0x4f,0x5,0x51,0x13,0x3f,0x6,0xda,0xfb,0xc6,0xfc, +0x9c,0xfd,0x1e,0x0,0xf7,0xfe,0xf9,0xf8,0xea,0xfa,0xc9,0x0, +0xb9,0xfd,0xf9,0xf8,0x28,0x1,0x6,0xf,0x82,0xb,0x9f,0xfa, +0x90,0xfb,0x9c,0xb,0xc7,0x7,0x38,0xf5,0xcb,0xf5,0xc0,0x0, +0x6,0xfb,0x4b,0xf1,0xe,0xf8,0xa5,0x2,0x6f,0xfe,0xb8,0xf3, +0x16,0xf7,0x11,0x2,0x88,0xfd,0x2d,0xf6,0x98,0x2,0x1d,0xa, +0xee,0xf9,0x9b,0xef,0x21,0xf2,0x84,0xeb,0xde,0xe9,0x80,0xf6, +0xde,0xf0,0x33,0xdf,0xcd,0xed,0x0,0xa,0x8c,0x3,0x70,0xf3, +0x79,0x4,0x4e,0x15,0x3d,0x1,0xa3,0xf2,0xbb,0xa,0x7,0x1b, +0xa7,0x5,0x99,0xf6,0xaa,0x4,0xda,0x9,0x4f,0xfc,0xe9,0xfb, +0x4,0x3,0xc6,0xfa,0xca,0xf4,0xe6,0xfa,0x15,0xf9,0x63,0xf3, +0x12,0xfa,0x80,0x2,0x23,0x0,0xa,0xfb,0xf2,0xfc,0x1f,0x1, +0x87,0xfd,0xc2,0xf1,0xe9,0xe8,0x2b,0xef,0x93,0xfd,0x4,0x1, +0x8c,0xfd,0xa1,0x0,0xd7,0x4,0x38,0x7,0xcf,0x8,0x70,0x5, +0x2,0x6,0x3c,0xb,0xc4,0x4,0x30,0xfd,0xb0,0x3,0x65,0x5, +0xdc,0xfd,0xa9,0xff,0xa2,0x1,0xa8,0xfa,0xa8,0xfe,0xa2,0xb, +0xf7,0xc,0xc,0xa,0xc3,0xb,0xbf,0x9,0x58,0x5,0x2b,0x3, +0x27,0x0,0x6c,0xf9,0x39,0xf0,0x75,0xed,0xc5,0xef,0xec,0xeb, +0xc6,0xec,0xca,0xf8,0x70,0xfb,0x7c,0xf5,0x76,0xf7,0xce,0xf7, +0x8c,0xf2,0x75,0xf7,0xf7,0xfc,0xff,0xf2,0x81,0xf0,0xeb,0xff, +0x6,0x3,0xf0,0xfc,0x6d,0x7,0x50,0x10,0x83,0x8,0x95,0x2, +0x92,0x3,0x2b,0x4,0xa6,0x1,0xed,0xfe,0xb6,0x5,0xba,0xf, +0x67,0x11,0x84,0x12,0xc5,0x13,0xb0,0xe,0xa9,0xb,0xbd,0xd, +0xe8,0x9,0xf1,0xfd,0x9b,0xf8,0x93,0x0,0xf9,0x4,0x3e,0x0, +0x42,0x3,0x5f,0xe,0x56,0x11,0xe3,0xa,0x7,0x8,0xc7,0x9, +0xfa,0x4,0xb9,0xff,0xf2,0x2,0x88,0x4,0x1b,0x7,0xee,0xf, +0x6a,0x10,0x23,0xf,0x62,0x18,0x21,0x17,0xcb,0x6,0x90,0xff, +0x74,0x0,0xd2,0xf8,0xbd,0xf0,0x40,0xf8,0x75,0x4,0x88,0x3, +0x15,0x2,0xbf,0xc,0x4b,0xf,0xe7,0x3,0xbd,0x3,0x57,0x9, +0xbc,0xfc,0x4f,0xf4,0xa5,0x3,0x26,0xb,0x62,0x3,0x56,0x7, +0xd6,0xe,0xde,0xa,0x4b,0x9,0xa3,0xd,0xc1,0xe,0xf2,0xa, +0x3a,0x3,0xb1,0x2,0xc1,0x11,0x69,0x1b,0x8f,0x11,0x17,0xe, +0x39,0x1a,0xd9,0x16,0x82,0x4,0xcd,0x3,0xe8,0xb,0xa4,0x2, +0xfb,0xf6,0x48,0x0,0x6a,0x13,0xd9,0x19,0x50,0x17,0x31,0x1a, +0xba,0x18,0x73,0xc,0xf9,0x8,0x53,0xd,0xa3,0x3,0x9a,0xf6, +0x74,0xfb,0x44,0x4,0x9c,0x0,0x52,0xfe,0x33,0x9,0x77,0x11, +0xfd,0x7,0x5,0xfe,0x6a,0x8,0x3e,0xf,0x7d,0xf9,0xef,0xea, +0xf9,0xfb,0xdc,0x1,0xb0,0xef,0x12,0xef,0x3f,0xfa,0xd2,0xee, +0xa,0xe2,0x9,0xe9,0x91,0xe5,0xfd,0xd0,0x54,0xc9,0xf2,0xcb, +0xff,0xc8,0x61,0xcb,0x3b,0xd4,0x79,0xd4,0x70,0xce,0x7d,0xcc, +0x5f,0xce,0xcf,0xd0,0xc4,0xd3,0x32,0xd7,0xf0,0xd9,0xed,0xdc, +0x5d,0xe2,0x69,0xec,0xe0,0xf9,0x61,0x0,0x24,0xfd,0xe1,0xfe, +0x9d,0x7,0x93,0x8,0x3e,0x2,0x7e,0x1,0x97,0x5,0xc6,0x2, +0x97,0xfc,0xe8,0x2,0x83,0xd,0x6f,0x9,0xf8,0x0,0x68,0x1, +0x97,0x1,0x25,0xfe,0xcc,0xfd,0x4b,0xff,0x5f,0xfe,0x2c,0xfc, +0x27,0xfd,0x16,0x1,0x67,0x1,0xb2,0xfd,0x86,0xfc,0x33,0xfd, +0x2d,0xf9,0x35,0xf1,0x27,0xec,0xed,0xea,0x73,0xe9,0xfe,0xe6, +0xe7,0xe3,0xe9,0xe0,0xa3,0xdf,0x3a,0xdc,0xd8,0xd5,0xe2,0xd4, +0xc1,0xd7,0xa7,0xd4,0xda,0xcf,0x57,0xd1,0x20,0xd5,0xda,0xd6, +0x97,0xd8,0x1e,0xdc,0xce,0xde,0xff,0xdd,0x19,0xdf,0xec,0xe5, +0x69,0xe9,0xff,0xe6,0xe8,0xe9,0x2b,0xf1,0xbc,0xf2,0x55,0xf4, +0x47,0xfc,0xe6,0x0,0x4b,0xff,0xde,0xff,0x7,0x1,0x72,0xfe, +0x26,0xfd,0x86,0xff,0x94,0x2,0xd5,0x3,0x4,0x3,0x5f,0x6, +0xee,0xe,0x3a,0x12,0x2d,0x12,0xa3,0x16,0x5d,0x14,0x9c,0x8, +0x32,0x6,0x1f,0xd,0x10,0xd,0xe7,0x7,0x50,0x6,0x8,0x5, +0xf1,0xff,0x57,0xfa,0xa6,0xf7,0x53,0xf4,0x4b,0xec,0xc0,0xe3, +0x1c,0xe1,0x2,0xe3,0x13,0xe2,0xb7,0xde,0x7a,0xe1,0xf4,0xe5, +0xd9,0xe2,0xc6,0xe0,0x4e,0xe5,0xb2,0xe7,0x87,0xe7,0x4f,0xe8, +0xbc,0xe7,0x9a,0xe7,0xa,0xeb,0x26,0xf0,0xf5,0xf3,0xab,0xf6, +0x7a,0xf9,0xe,0xfa,0x18,0xfa,0x8d,0xfe,0xa0,0x3,0xc0,0x5, +0x24,0x6,0xee,0x4,0x84,0x7,0x85,0xe,0xdd,0x10,0xed,0xf, +0xb4,0x11,0x71,0x14,0x87,0x17,0x61,0x1b,0x53,0x20,0x9c,0x25, +0x3,0x26,0x31,0x24,0xab,0x27,0xd5,0x2a,0x8,0x28,0x38,0x27, +0x4d,0x2a,0xa8,0x27,0x4,0x21,0x4e,0x1f,0x61,0x1d,0xe5,0x17, +0x2d,0x17,0x98,0x18,0x2a,0x15,0x2d,0x12,0x4,0x12,0xc9,0x10, +0x6a,0xf,0x78,0xe,0xaf,0xb,0xe7,0x7,0xd0,0x4,0x19,0x3, +0x3e,0x5,0x66,0x9,0x2b,0x9,0x57,0x7,0x5c,0x9,0x1c,0xa, +0xff,0x6,0x57,0x6,0xdc,0xa,0x1f,0xe,0x3d,0xb,0xa2,0xb, +0xdc,0x12,0x34,0x13,0xff,0xf,0xae,0x14,0xf5,0x15,0xbe,0x10, +0xf2,0x10,0xf8,0x13,0xe,0x16,0xd2,0x19,0x8,0x1c,0x54,0x1d, +0x4c,0x21,0xe0,0x23,0x7a,0x23,0xc0,0x24,0x24,0x25,0x7c,0x20, +0xe9,0x1e,0xb5,0x21,0x89,0x1e,0x6a,0x1c,0xb2,0x23,0x7b,0x27, +0xe,0x24,0x7d,0x22,0xac,0x22,0x1b,0x23,0x50,0x21,0x91,0x1a, +0x21,0x17,0x79,0x17,0xea,0xf,0x4b,0x7,0x47,0xa,0x2,0xd, +0x2,0x7,0x12,0x5,0x18,0x8,0xb3,0x5,0x9f,0x1,0x5f,0x2, +0x7d,0x5,0xf6,0x5,0xb5,0x2,0xf5,0x1,0xee,0x3,0xb9,0x0, +0x5c,0xfc,0x6a,0xfe,0xb0,0x0,0x54,0xfe,0x45,0xff,0x86,0x6, +0xcc,0x9,0x17,0x9,0x2,0xe,0x97,0x10,0x3d,0xc,0xc4,0xe, +0x2f,0x14,0x24,0x10,0x47,0xc,0x26,0xe,0x29,0xc,0xdf,0x7, +0xf2,0x8,0x18,0x9,0x6d,0x4,0x5f,0x5,0x56,0x9,0xa0,0x5, +0xe4,0x3,0x81,0x7,0x48,0x4,0xfc,0xfe,0xc4,0xfc,0xf7,0xf6, +0x95,0xf3,0x8f,0xf5,0xca,0xf2,0x5e,0xee,0x38,0xee,0xbd,0xeb, +0x8e,0xe8,0x4,0xea,0x89,0xe9,0x38,0xe8,0x44,0xea,0xc5,0xe4, +0xaa,0xdc,0x1d,0xe2,0x5c,0xe6,0x45,0xde,0x4,0xdc,0x4b,0xe0, +0x5f,0xdd,0x60,0xd9,0x2a,0xdc,0xe4,0xe0,0x3d,0xe3,0x1,0xe3, +0x58,0xe2,0xb,0xe4,0xd3,0xe4,0xb,0xe2,0x8b,0xe4,0xa5,0xec, +0xab,0xed,0xf9,0xed,0x71,0xf5,0x50,0xf5,0xac,0xef,0x81,0xf3, +0xad,0xf6,0x93,0xf2,0x77,0xf3,0xb7,0xf8,0xe3,0xf7,0x5a,0xf3, +0xa0,0xf4,0xe8,0xf9,0x1,0xfb,0x64,0xfc,0x14,0x3,0x75,0x4, +0x7f,0xfb,0x77,0xf5,0xb8,0xf9,0x35,0xfd,0x4d,0xfb,0x23,0xfe, +0x32,0x2,0x93,0xfb,0xa9,0xf3,0x4c,0xf5,0x96,0xf6,0x81,0xf3, +0x79,0xf5,0x90,0xf7,0xe0,0xf1,0x36,0xf2,0x42,0xfb,0xb2,0xfa, +0x83,0xf7,0x4b,0xff,0xc0,0xfe,0x45,0xef,0x23,0xe8,0x7,0xec, +0xf8,0xec,0xc,0xee,0x2b,0xf3,0xcb,0xf4,0x6,0xf4,0x1f,0xf6, +0xd4,0xf7,0xd6,0xfb,0x16,0x3,0xad,0x1,0x1b,0xfb,0xb0,0xfb, +0xfa,0xfc,0xf2,0xfc,0x2f,0x3,0x4f,0xa,0x63,0xc,0x50,0xb, +0x16,0xa,0xb,0xe,0x96,0x13,0x95,0x11,0x82,0xf,0xb,0x17, +0xa9,0x1d,0xa,0x1b,0x25,0x1a,0x76,0x1f,0x20,0x21,0x2c,0x1f, +0x3,0x20,0xd3,0x1f,0xb6,0x1a,0x66,0x13,0xd4,0xc,0x63,0xa, +0x66,0xd,0x19,0x11,0xb2,0x11,0x1a,0x12,0x9c,0x14,0x1b,0x16, +0x77,0x14,0x2b,0x11,0x6e,0xe,0x8d,0xd,0xa2,0xc,0x9a,0x9, +0xe6,0x5,0xba,0x3,0xe7,0x5,0x80,0xd,0x76,0x14,0x97,0x14, +0xb2,0x11,0xe3,0x12,0xa4,0x15,0x87,0x15,0xa4,0x17,0x6,0x1c, +0xdb,0x1b,0x89,0x1c,0x14,0x22,0xfc,0x22,0x41,0x1f,0xe7,0x1e, +0x46,0x1f,0x74,0x1d,0x75,0x1d,0x3b,0x1f,0xec,0x1e,0xb2,0x1d, +0xaf,0x20,0x20,0x27,0x6e,0x28,0x51,0x22,0x5f,0x1d,0x87,0x1b, +0xe4,0x16,0x30,0x14,0x90,0x18,0xeb,0x18,0x42,0xf,0xd,0x7, +0xc,0x7,0x6f,0x9,0x6a,0x9,0x3,0x9,0xd1,0xb,0xd6,0xe, +0x14,0xb,0xed,0x4,0xb,0x8,0x5a,0xe,0xc1,0x8,0xb7,0xfe, +0x23,0x0,0xb2,0x7,0x74,0x9,0x4e,0x8,0x9a,0xb,0x8c,0xd, +0x16,0x5,0x9e,0xfb,0xdb,0xfc,0x76,0x1,0x4c,0x5,0xdf,0xe, +0x54,0x18,0x68,0x17,0x5c,0x11,0xc3,0xf,0xa,0x10,0x73,0xb, +0x34,0x5,0x2a,0x3,0x37,0x3,0x51,0x3,0x9e,0x7,0x90,0xf, +0x5,0x11,0xf,0xb,0xa4,0x9,0xb7,0xa,0x1e,0x5,0x25,0x2, +0xe3,0x7,0xd1,0xb,0x9e,0xa,0xfe,0x8,0x82,0x7,0x5f,0x4, +0x2a,0xfd,0xaa,0xf3,0x44,0xef,0x5,0xf1,0x3e,0xf1,0x36,0xf0, +0x73,0xf6,0xb0,0xfe,0xd1,0xfc,0xcd,0xf5,0x2d,0xf4,0x1e,0xf8, +0xb4,0xfb,0xfc,0xf6,0xa5,0xea,0x65,0xe2,0x45,0xe1,0x71,0xde, +0xc0,0xd9,0xc6,0xdd,0xe1,0xe8,0x79,0xee,0x43,0xf0,0xd7,0xf4, +0x8f,0xf5,0xce,0xef,0x6d,0xeb,0x21,0xeb,0x61,0xea,0x64,0xe6, +0xbf,0xe1,0xd3,0xdc,0x4e,0xd6,0x91,0xd4,0xeb,0xda,0xe6,0xe0, +0xc5,0xe0,0x86,0xe0,0xa7,0xe6,0xb0,0xea,0x10,0xe4,0x1b,0xe0, +0x30,0xe9,0x11,0xf4,0x9b,0xf6,0xd7,0xf3,0x3c,0xf7,0xe3,0x1, +0x46,0x1,0xb8,0xf3,0x4b,0xee,0x2a,0xf0,0xad,0xe9,0xae,0xe3, +0xcf,0xee,0x41,0xff,0xc0,0x0,0x41,0xf9,0xab,0xf2,0x6a,0xe8, +0x18,0xe0,0xc5,0xe2,0x34,0xe8,0xc3,0xe6,0xb0,0xde,0x39,0xd6, +0x9f,0xd3,0x80,0xd4,0xd1,0xd6,0x70,0xdf,0xf2,0xe9,0x6e,0xe9, +0xa8,0xe0,0x74,0xe1,0x36,0xed,0xe5,0xf1,0xf1,0xed,0xa5,0xf0, +0xc4,0xf6,0x33,0xf2,0x2e,0xea,0xbd,0xeb,0x31,0xee,0x9c,0xe8, +0x63,0xe4,0x4e,0xe5,0xe7,0xe4,0xb4,0xe6,0xd7,0xee,0xd7,0xf3, +0xf4,0xef,0xd4,0xeb,0x38,0xeb,0x75,0xe9,0x2b,0xeb,0xaf,0xf0, +0xe2,0xec,0xef,0xe4,0x7c,0xe7,0x21,0xea,0x1c,0xe5,0x49,0xe9, +0xa7,0xfa,0x9a,0x4,0x37,0xff,0x6a,0xfa,0x41,0xfc,0xe4,0xf8, +0xbd,0xf0,0x15,0xee,0x8e,0xee,0x67,0xec,0x6a,0xe9,0xab,0xe7, +0xd,0xe6,0x8,0xe6,0xc9,0xec,0x29,0xf5,0xee,0xf3,0x91,0xef, +0xbf,0xef,0x2d,0xe9,0x45,0xdd,0xe5,0xdf,0x1,0xee,0x73,0xf1, +0x2a,0xe8,0xba,0xe1,0x2e,0xe4,0x35,0xea,0x5b,0xef,0x98,0xf1, +0x71,0xf0,0xf7,0xee,0x6d,0xef,0x7f,0xf2,0x99,0xfb,0x85,0x7, +0xf,0xc,0xd3,0xc,0xcf,0x11,0x5,0x12,0x81,0x9,0xb6,0x3, +0xb6,0x2,0xf9,0x1,0xcd,0x2,0xf,0x4,0xcf,0x5,0xb1,0xc, +0x97,0x14,0x8b,0x15,0xfc,0x13,0x8b,0x14,0xb2,0xd,0x1c,0xfd, +0x20,0xf2,0x8e,0xf1,0x38,0xf1,0x30,0xf1,0x33,0xf8,0x8b,0x0, +0xe0,0xfe,0x93,0xf4,0x38,0xed,0xdc,0xed,0x2a,0xf4,0x19,0xfd, +0x2c,0x4,0x73,0x9,0xcc,0x10,0x5,0x16,0x37,0x15,0x5f,0x13, +0x5d,0xf,0xc1,0x4,0x45,0xfd,0x81,0xff,0x22,0x0,0x8f,0xfc, +0xa7,0xfe,0x51,0x4,0xc1,0x9,0xdb,0x11,0xbb,0x15,0x43,0xf, +0xde,0x5,0x6e,0x1,0x71,0x4,0xc2,0x9,0x31,0x8,0xbb,0x2, +0x6,0x1,0x25,0xff,0x42,0xfb,0x3a,0xfe,0x82,0x7,0x1b,0xa, +0x24,0x7,0x27,0xc,0xda,0x13,0x4d,0xe,0x6e,0x2,0xd2,0x3, +0x8f,0xe,0x9e,0xc,0x21,0xfe,0xf8,0xf6,0x14,0xf8,0xff,0xf8, +0xc0,0xff,0x4,0xa,0x5b,0xa,0xcf,0x3,0x6f,0xff,0x33,0xfd, +0xfc,0xff,0xc6,0x7,0x98,0xb,0x24,0xd,0x89,0x13,0xef,0x16, +0xab,0xf,0xa6,0x3,0xfa,0xfb,0x37,0xff,0xda,0x6,0x68,0x3, +0x98,0xf9,0x61,0xf8,0x21,0xfd,0xc8,0x2,0x1f,0xa,0x19,0xc, +0x90,0x5,0x34,0x0,0x77,0x1,0x10,0x5,0x22,0x5,0x6c,0xfe, +0x78,0xf7,0x5f,0xfc,0xf5,0x9,0xd5,0x11,0xc1,0x10,0xdb,0xd, +0xc8,0x10,0x63,0x18,0x89,0x18,0x16,0x12,0x78,0x10,0xcc,0xd, +0x98,0x9,0x85,0x13,0x12,0x22,0x44,0x1f,0xeb,0x10,0x8b,0x5, +0x47,0x1,0xdd,0x3,0x93,0x4,0x2e,0xff,0x6a,0x1,0x70,0xe, +0xe5,0x14,0x21,0x12,0xe0,0x11,0x35,0x10,0x2d,0x6,0xba,0xfd, +0x25,0x1,0x2e,0xb,0xb4,0xb,0x83,0xfe,0xbd,0xf8,0xe9,0x3, +0x27,0x9,0x67,0x1,0x51,0x1,0x3a,0x7,0x66,0xff,0xc7,0xf1, +0x43,0xf5,0x5d,0x5,0x96,0x9,0x30,0x0,0x1d,0x1,0x97,0xe, +0x80,0x10,0xc2,0x7,0x33,0x7,0x8b,0x7,0xc6,0x0,0xfa,0xff, +0xa8,0x4,0x90,0x6,0x90,0xe,0xe4,0x1b,0x9a,0x1f,0x3f,0x1c, +0x5b,0x19,0xc3,0x10,0x86,0x5,0xe9,0x1,0x4f,0x1,0xe9,0x1, +0x63,0x7,0xa1,0x5,0x18,0xfc,0xe,0xff,0xdb,0x9,0x48,0xa, +0xf8,0x6,0x14,0x8,0x8b,0x8,0xf4,0x6,0xc,0x3,0xd4,0xfd, +0x8f,0xfd,0x69,0x3,0x89,0xb,0xdb,0x11,0xda,0x10,0x8d,0x9, +0xab,0x3,0xaf,0x0,0x53,0xfe,0xfc,0xfd,0xb1,0xfe,0xfc,0xfd, +0x65,0xfd,0x79,0xfe,0x68,0x4,0x37,0xf,0x34,0x11,0x15,0x5, +0x34,0xfb,0x8c,0xfa,0x42,0xfb,0xb8,0xfc,0xa7,0x0,0x83,0x4, +0xb6,0x7,0x2e,0xa,0xb4,0xb,0x89,0xd,0x2,0x11,0xd2,0x15, +0x75,0x17,0x5c,0x12,0x76,0xc,0x54,0xc,0xc3,0xb,0x6b,0x5, +0xc,0x4,0xae,0xb,0xdf,0xd,0xac,0x7,0xd,0x4,0x50,0x3, +0xa4,0x0,0xc4,0xfd,0xf6,0xfd,0xeb,0xff,0xfa,0xfe,0xbf,0xfd, +0xc7,0x0,0xd9,0x2,0xae,0x3,0x10,0x7,0x8b,0x5,0xf7,0xff, +0x4d,0x1,0xee,0x1,0x2d,0xfa,0xd8,0xf8,0x3d,0x0,0xbe,0x2, +0x68,0x7,0x85,0x11,0x7b,0xf,0xd5,0x8,0x87,0xd,0x48,0xc, +0x0,0xff,0x8,0xfa,0x22,0xfe,0x1e,0xff,0xb0,0xfe,0xce,0x3, +0x67,0xe,0x78,0x17,0x6d,0x19,0x9d,0x13,0x67,0x9,0x15,0x0, +0x6d,0xf6,0x2b,0xee,0x5b,0xf4,0x2f,0x8,0x15,0x13,0xa0,0x8, +0x3d,0xfc,0x68,0x3,0x73,0xd,0x7f,0x5,0x68,0xf9,0xab,0xf3, +0xe3,0xee,0x90,0xef,0x1d,0xf8,0xa6,0x3,0xc5,0xf,0x75,0x16, +0xe1,0x11,0x97,0x5,0x20,0xfc,0xcb,0xf8,0x65,0xf3,0xbb,0xed, +0xa,0xf3,0xbc,0x1,0x5c,0xc,0x11,0xa,0x89,0x7,0x86,0x11, +0xb9,0x13,0x18,0x2,0xf3,0xf4,0x58,0xf8,0xaa,0xfd,0xc3,0xfa, +0xb,0xf8,0xae,0xfe,0xed,0x2,0x47,0xff,0x25,0x2,0x12,0xa, +0x18,0xb,0xa8,0x3,0x33,0xf8,0xad,0xf4,0x87,0xfa,0xf1,0xfc, +0x52,0xfc,0x44,0xff,0x24,0x6,0x7a,0xc,0xb,0xa,0xd1,0x3, +0x3b,0x0,0x6e,0xf8,0x9a,0xf1,0x84,0xf2,0x5a,0xf3,0x78,0xf6, +0x21,0x1,0xa5,0xa,0x2c,0xb,0xda,0x5,0xf,0x5,0xbe,0x5, +0xfb,0xf9,0xa5,0xed,0x1d,0xf1,0xd1,0xf2,0x96,0xe7,0x14,0xe6, +0x61,0xf9,0x4f,0xb,0xa8,0xa,0xd0,0x3,0xb7,0x3,0x17,0xff, +0x9c,0xee,0x43,0xe5,0xd0,0xed,0x2e,0xf4,0x79,0xee,0x68,0xf1, +0x8c,0x2,0x68,0xb,0xdd,0x5,0xf,0x0,0x49,0xfe,0xb7,0xfe, +0x3b,0xff,0xbe,0xf9,0x69,0xf5,0xb5,0xfb,0xc8,0xfd,0xbf,0xf7, +0x50,0x0,0xac,0x14,0x72,0x1b,0x90,0x11,0x31,0x4,0x7d,0xfd, +0x38,0xfb,0xdb,0xf2,0xff,0xeb,0x5d,0xf3,0xad,0xfd,0xce,0x0, +0x60,0x4,0x12,0xa,0xa2,0x9,0x3e,0x2,0xe9,0xfb,0xea,0xf5, +0xd6,0xe9,0xe6,0xe2,0x72,0xec,0x29,0xf7,0x84,0xf5,0x9f,0xf2, +0xaa,0xf6,0x9d,0xf6,0x67,0xef,0x4b,0xf0,0xcd,0xf6,0x73,0xf1, +0xc1,0xe8,0x91,0xe9,0x67,0xee,0xb9,0xf9,0xe8,0x6,0x74,0x4, +0x13,0xfc,0x16,0xfd,0x5d,0xfc,0x88,0xf3,0x82,0xec,0x50,0xee, +0x89,0xf6,0x13,0xff,0x43,0x7,0x71,0xd,0xc1,0xf,0xa9,0x13, +0xbc,0x14,0x25,0xd,0xf4,0x6,0x81,0x3,0xc7,0xff,0xaf,0x2, +0x5d,0x6,0xd,0x4,0x0,0x3,0xd6,0x3,0x59,0x4,0x74,0x3, +0x8a,0xfc,0x44,0xf4,0xad,0xf0,0xa1,0xf1,0x4f,0xf8,0x6f,0xfe, +0x69,0xfe,0x9f,0xfe,0x10,0x1,0xfd,0x3,0x8a,0x5,0x9c,0xfc, +0xf6,0xeb,0x17,0xe5,0xc7,0xe8,0x57,0xe9,0xf2,0xe5,0xae,0xe6, +0x9e,0xec,0xa9,0xf6,0x17,0x4,0x75,0xb,0x61,0x5,0x93,0xfc, +0x5f,0xfb,0x1,0xfa,0x34,0xf3,0x53,0xef,0x76,0xf0,0x9d,0xf0, +0x2c,0xf2,0xe8,0xfa,0x12,0x3,0xee,0xfd,0xe3,0xf6,0x1b,0x2, +0x8b,0xf,0xf9,0xa,0x2f,0x6,0x5a,0xa,0x54,0xb,0x7e,0xd, +0x65,0x11,0x73,0xb,0xa0,0x0,0xd5,0xfa,0x3a,0xf9,0xc8,0xf5, +0x6d,0xee,0x6f,0xeb,0x3f,0xef,0x4b,0xf5,0xa3,0xfe,0x70,0x4, +0x9c,0x3,0x8c,0x8,0xda,0xd,0x23,0x8,0x24,0x5,0x7a,0x9, +0x80,0x4,0x4a,0xfa,0x4e,0xfd,0x38,0x5,0xd5,0x2,0xef,0x1, +0xac,0x8,0x1f,0x9,0x9b,0x6,0xe4,0x9,0xec,0x7,0xb9,0xfe, +0xa0,0xfd,0x9a,0x5,0xa1,0x4,0xc1,0xf6,0x58,0xf1,0xda,0xf8, +0x47,0xf6,0x14,0xe8,0xe2,0xe1,0xb1,0xe4,0xa9,0xe6,0xdf,0xe7, +0xfc,0xed,0x75,0xfa,0xb5,0x5,0xd6,0x8,0xb0,0x8,0xb8,0xa, +0x6,0xa,0x18,0x3,0x20,0xfd,0x25,0xfc,0x8e,0xf9,0x4f,0xf4, +0xc7,0xf4,0x8c,0xfb,0x95,0x0,0x95,0x2,0xa,0x5,0x69,0x4, +0x86,0xff,0xe0,0x0,0xf1,0x9,0xea,0xc,0xfd,0x8,0xf6,0x8, +0x39,0x9,0x22,0x5,0xce,0x4,0xb9,0x5,0x3f,0xfe,0x23,0xf7, +0xb2,0xf9,0x4e,0xfd,0x1d,0xfe,0x91,0x1,0xf9,0x3,0xa3,0x3, +0x91,0x9,0x3a,0x12,0xfb,0x10,0x56,0xb,0x74,0xa,0xe8,0x5, +0x12,0xfa,0x52,0xf3,0x90,0xf4,0x3d,0xf4,0xe5,0xf4,0x89,0xfe, +0xbf,0x7,0x66,0x8,0x97,0xa,0x32,0x11,0x78,0x13,0xa1,0x11, +0x50,0x10,0xa2,0xf,0x83,0xd,0x81,0x9,0x28,0x7,0x19,0x5, +0xb8,0xfd,0x32,0xf4,0x51,0xef,0xb5,0xee,0x63,0xec,0xac,0xe9, +0x35,0xef,0xb,0xf6,0xfe,0xf7,0x92,0x3,0x9d,0x10,0xe3,0x9, +0xf6,0x0,0x13,0x4,0x9a,0x1,0xa3,0xf8,0xc2,0xf7,0x4d,0xfd, +0xa0,0xff,0x2,0xfe,0xcf,0x0,0x55,0x8,0xb,0xb,0x1f,0xb, +0x7f,0xe,0xdc,0xc,0x6e,0x5,0x5,0x8,0x7f,0x11,0x7f,0xc, +0xed,0xff,0x72,0x2,0x25,0xa,0x1,0x3,0x45,0xf8,0x21,0xfc, +0xb7,0x2,0xa3,0xfa,0x8d,0xf4,0xb3,0x0,0xb4,0x9,0x84,0x5, +0xe,0x9,0x74,0x12,0x4b,0xd,0xa9,0x3,0x64,0x7,0xb3,0x7, +0x19,0xf9,0x8b,0xf1,0x0,0xf2,0xe5,0xe9,0xbb,0xe7,0x81,0xf4, +0xd,0xff,0xb,0x1,0x53,0xfe,0xa8,0xfe,0x54,0x6,0xf7,0x8, +0xf,0x5,0x4f,0x5,0x72,0x5,0x89,0x1,0x7d,0x0,0x51,0x4, +0xa3,0x2,0x18,0xf6,0x93,0xf1,0xe4,0xfb,0x9d,0xfd,0x9c,0xf4, +0x77,0xf5,0x19,0x0,0x2a,0x2,0x7e,0xf7,0xfb,0xf4,0x1a,0xfc, +0xeb,0xf4,0xcb,0xeb,0xbb,0xf3,0x39,0xf6,0xc1,0xeb,0x4f,0xe7, +0x76,0xec,0xa2,0xf4,0x75,0xf8,0xe6,0xf8,0x9b,0x0,0x9a,0xb, +0x69,0xf,0x92,0x10,0xda,0x15,0xe,0x18,0x80,0x10,0xf2,0xb, +0xaf,0xe,0xba,0x9,0x18,0x3,0xee,0x4,0xf3,0x2,0x32,0xfd, +0x10,0xfb,0xdd,0xf9,0x40,0xfe,0x8b,0x7,0x3b,0xe,0x8e,0x12, +0xf5,0x10,0x83,0xc,0x9e,0xc,0xf6,0x7,0x28,0x0,0x16,0x0, +0x77,0xfd,0x5d,0xf8,0x60,0xfd,0xf2,0xff,0xcd,0xf8,0x26,0xf9, +0x43,0x2,0x80,0x6,0x1a,0x3,0xf6,0xfa,0xd6,0xf4,0xe5,0xf8, +0xdb,0xff,0x33,0xfe,0xd,0xfd,0x4e,0x4,0xc6,0x2,0x23,0xf6, +0x1b,0xf7,0x62,0xfe,0x1f,0xf2,0x8c,0xe5,0xa6,0xee,0x16,0xf7, +0x22,0xf5,0x50,0xff,0x49,0x12,0x7d,0x13,0x1d,0xc,0xd5,0x13, +0xaf,0x16,0xfd,0x3,0x60,0xf8,0x5c,0xfa,0xf1,0xf1,0x66,0xe6, +0xe1,0xea,0x71,0xf7,0x98,0xfb,0x63,0xf8,0x19,0xfb,0xf9,0xff, +0xd9,0xfc,0x27,0xfc,0xea,0x0,0xf8,0x0,0x6,0xff,0x40,0xfd, +0x75,0xfb,0xa,0xfd,0x9b,0xfa,0x86,0xf4,0x42,0xf8,0xf,0xff, +0x42,0xf9,0x40,0xf1,0x57,0xf9,0x4d,0x6,0x3c,0x6,0xef,0x5, +0x99,0xe,0x31,0x12,0xea,0x10,0x2b,0x12,0xc5,0x10,0xef,0x9, +0x61,0x0,0xea,0xfd,0x33,0x5,0x84,0x5,0xff,0x0,0xf9,0x5, +0x8b,0x9,0xe,0x8,0xd,0xb,0x66,0xc,0xc7,0xa,0xc4,0x8, +0xd1,0x0,0xf3,0xfc,0x65,0x5,0xe7,0x6,0xc7,0xf8,0x92,0xf3, +0xeb,0xff,0x3e,0xfe,0xb1,0xea,0x4e,0xec,0xe,0xfe,0x7b,0xfe, +0x11,0xfb,0x4d,0x2,0xf7,0x7,0xc1,0xd,0x3a,0x10,0xf5,0x8, +0xaa,0x8,0xb7,0xa,0x1e,0xfb,0xd4,0xed,0x71,0xf4,0x9c,0xf7, +0xac,0xee,0x26,0xef,0xa0,0xfb,0xaa,0x1,0xfb,0xfc,0x5c,0xfa, +0xc,0x1,0x34,0x4,0xf0,0xf8,0xaa,0xf2,0x91,0xfd,0xfa,0x2, +0x11,0xfe,0x49,0xff,0x69,0x1,0x67,0x1,0x6f,0x4,0x4f,0x2, +0x36,0x2,0x37,0xc,0x93,0xb,0x73,0x3,0x4d,0xc,0x74,0x17, +0x5b,0x12,0xd,0xa,0xd7,0x6,0x17,0x9,0x94,0xc,0x67,0x2, +0xeb,0xf6,0x85,0xfd,0x91,0xfc,0x5c,0xef,0x79,0xfa,0x7f,0xb, +0xe6,0xff,0x6b,0xf8,0xea,0x5,0x17,0x7,0xa6,0xfc,0x80,0xfb, +0x7d,0xfd,0xe6,0xfe,0xd2,0xfe,0x3c,0xf6,0x31,0xf5,0x60,0x1, +0xab,0xfa,0x4d,0xe8,0x83,0xf3,0x76,0x2,0x5e,0xed,0x32,0xdd, +0xe6,0xf0,0x92,0xf9,0xe8,0xe4,0xb9,0xe3,0x4b,0xfc,0xa6,0xfe, +0xc6,0xef,0x8b,0xf6,0x13,0x3,0x4a,0xfe,0xd0,0xfa,0x4b,0x0, +0xbc,0x3,0xbf,0x6,0xa5,0xa,0x83,0x8,0xb3,0x3,0x34,0x7, +0x1f,0xb,0xeb,0x4,0x9c,0x4,0xae,0x9,0x8f,0x1,0x47,0x0, +0x4,0xe,0x8f,0xb,0xde,0x3,0x41,0xe,0x57,0x10,0x15,0x4, +0x1,0x5,0x10,0xa,0x56,0x1,0x3,0xfd,0xcc,0x2,0x89,0xfe, +0xc6,0xf7,0x22,0xfe,0x3c,0x2,0xa2,0x0,0xa5,0x6,0x49,0xb, +0xc2,0x7,0x60,0x3,0x22,0xff,0x5a,0xff,0x5f,0x2,0x43,0xfb, +0x88,0xf1,0x48,0xf6,0xca,0x1,0x25,0x1,0xdc,0xf6,0xd4,0xf5, +0xc5,0xfd,0x94,0xff,0xb1,0xfd,0xd7,0xff,0x5e,0x3,0xb9,0x5, +0x50,0x4,0x36,0x2,0x21,0x5,0xc3,0x2,0xa6,0xf7,0xb0,0xf7, +0x47,0x4,0x4d,0x4,0x83,0xf7,0x25,0xf8,0x4e,0x1,0x22,0xf9, +0x49,0xef,0x33,0xfc,0xa1,0x8,0x97,0x1,0xd8,0xfd,0xe8,0x8, +0x4b,0xc,0x3f,0xfc,0xc,0xf2,0x4c,0xfd,0x85,0x3,0x2b,0xfa, +0xd4,0xf9,0xa3,0x5,0x66,0xc,0xcc,0x9,0x9c,0x6,0x88,0xa, +0xd6,0x8,0x13,0xfe,0xfe,0x3,0xed,0x10,0xd1,0x6,0x75,0xfd, +0xdd,0x7,0xa1,0x6,0xc0,0xf5,0xf8,0xf5,0x40,0x3,0xe7,0x0, +0xfa,0xf9,0x56,0x3,0x4d,0x8,0x34,0xfe,0x59,0xfd,0x83,0x6, +0x36,0x6,0x65,0xfe,0x57,0xfc,0x42,0x1,0x7c,0x1,0x6f,0xfb, +0xc8,0xfa,0x12,0xfe,0x55,0xfd,0x7,0xfb,0xe8,0xfc,0x2,0x2, +0x59,0xff,0x6f,0xf8,0xd8,0xfd,0xc0,0x4,0x23,0x1,0x73,0x0, +0x82,0x2,0x1d,0xff,0xb9,0xfc,0x44,0xfe,0x27,0xff,0xe5,0xfc, +0x49,0xfe,0x3a,0x6,0xd6,0x6,0xc6,0x2,0x41,0x8,0x45,0xc, +0xda,0x7,0xbe,0x5,0xce,0x5,0x8c,0x1,0xaa,0xfa,0x2,0xfb, +0x66,0x0,0x80,0xfb,0x72,0xf5,0xd1,0xfa,0xe5,0xfc,0x96,0xf8, +0xae,0xf7,0x75,0xfa,0x36,0x1,0xdf,0x3,0xcf,0xfe,0xb6,0xff, +0x9c,0x3,0xc2,0xfe,0xa3,0xf9,0xf7,0xfc,0x95,0x2,0x48,0x2, +0x21,0xfe,0xd,0xfd,0x84,0x0,0x6e,0x6,0x7d,0x5,0xef,0xfb, +0x28,0xfe,0xcb,0xa,0x97,0x7,0x1a,0xfd,0x89,0x1,0x47,0x7, +0x3,0xff,0x2e,0xf6,0x50,0xf8,0x90,0xfb,0x2,0xf8,0xbb,0xf5, +0xcb,0xfa,0x11,0x1,0xfe,0x1,0xdd,0x0,0x59,0x3,0xbd,0x5, +0x92,0x5,0x96,0x6,0x4a,0x6,0x6e,0x4,0xd9,0x3,0x68,0xfe, +0x15,0xf8,0x24,0xfc,0x4,0xff,0x73,0xf6,0x58,0xf4,0xe0,0x0, +0x3b,0x6,0x7f,0xfb,0xea,0xf6,0xf6,0x1,0xaa,0x7,0xdd,0xff, +0xef,0xfe,0x2f,0xa,0xaa,0xb,0xec,0x1,0xb3,0x2,0xd5,0x7, +0x98,0xff,0x6f,0xf7,0xbb,0xf9,0xb2,0xf9,0x18,0xf7,0x32,0xfa, +0x47,0xfd,0x68,0xfc,0xb4,0xff,0x80,0x8,0xa2,0x8,0xf7,0xf9, +0x1a,0xec,0x30,0xeb,0x55,0xf0,0xc9,0xf0,0x91,0xec,0x49,0xed, +0xf1,0xf2,0x9a,0xf4,0x70,0xfa,0x89,0x8,0xb4,0x7,0xad,0xf7, +0x31,0xf7,0xe4,0x2,0x5c,0x0,0xb3,0xf9,0x9a,0x4,0x6d,0x11, +0x33,0xa,0x6b,0xff,0xef,0x4,0x1a,0x8,0x9d,0xf9,0xd0,0xef, +0x38,0xfa,0x8e,0x5,0x89,0x1,0x42,0xfe,0x1d,0xa,0x62,0x10, +0x33,0x5,0x4b,0xfe,0x5a,0xff,0x74,0xfb,0x6d,0xf9,0x32,0xfb, +0xef,0xf9,0xc8,0xfb,0x2d,0x1,0xc5,0x3,0x55,0x7,0x69,0xc, +0x71,0x9,0x95,0xfc,0x20,0xf5,0x31,0xfa,0x5d,0xfb,0xfb,0xf6, +0x16,0xfe,0x65,0x9,0x63,0xa,0x68,0x7,0xa8,0x4,0xe,0x0, +0x47,0xfb,0x13,0xf5,0xe7,0xef,0x3e,0xf4,0xd4,0xff,0x1,0x5, +0x11,0x1,0x9,0x2,0x79,0x8,0xa9,0x2,0x26,0xf6,0x89,0xf7, +0xc6,0xfb,0xaf,0xf3,0xe1,0xf0,0x12,0xfb,0x6c,0x0,0xef,0xff, +0x38,0x3,0x3a,0x6,0x7a,0x6,0x12,0x4,0x4,0xfe,0xf1,0xfc, +0x2a,0x1,0x98,0xfd,0xa7,0xf6,0xd4,0xf9,0x1c,0x0,0x8f,0xfe, +0xd2,0xfc,0x4d,0x3,0x95,0x8,0xb3,0x3,0xcc,0xfd,0x2e,0x0, +0x9f,0x4,0xbb,0x4,0x9c,0x6,0x85,0xd,0x52,0xe,0x46,0x5, +0xc4,0x0,0xb3,0x5,0xe9,0x7,0x40,0x3,0x8f,0x1,0xb3,0x6, +0xaa,0x6,0x6,0xfe,0x49,0xfe,0x11,0x9,0x4c,0xc,0xcf,0x7, +0x9b,0x3,0xbd,0x0,0xd1,0x2,0xf3,0x2,0xb5,0xfa,0x20,0xf8, +0x67,0xfd,0xcf,0xfd,0x68,0xfc,0xb,0xfe,0x2e,0x0,0x19,0x4, +0x22,0x5,0x56,0xff,0x7b,0xfe,0x36,0x7,0xd4,0x9,0xac,0x2, +0x71,0x2,0x62,0x8,0x2e,0x7,0xde,0x5,0xe3,0x8,0x48,0x6, +0x85,0x1,0xad,0x1,0xba,0x3,0x84,0x2,0xe8,0xfb,0x1c,0xfd, +0xc3,0x8,0x68,0x5,0x4a,0xf9,0xb2,0x1,0xdd,0xd,0x15,0x6, +0xdf,0xfa,0xc5,0xfc,0xcc,0x4,0x5d,0x6,0xac,0x1,0xec,0x0, +0x59,0x4,0xee,0x4,0xe2,0x1,0x8b,0x0,0x2,0x5,0xa,0x8, +0x59,0x3,0x4e,0xff,0xb6,0x1,0x9a,0x6,0xce,0x7,0xea,0x3, +0xd3,0x3,0xef,0x6,0xb9,0x3,0xa,0x3,0x68,0x7,0x46,0x2, +0xbe,0xfd,0xd1,0x5,0xb3,0x6,0xb2,0xff,0x48,0x7,0xe,0x10, +0xbe,0x8,0x54,0x6,0x25,0xb,0xe8,0x4,0x96,0x3,0xf3,0xd, +0xe8,0x9,0x61,0xfe,0xf8,0x1,0xc9,0x5,0x3d,0xff,0xb6,0xfe, +0x8a,0x5,0x8c,0x7,0x5a,0x7,0xda,0xa,0x14,0x10,0xd7,0x14, +0xda,0x11,0xb4,0x6,0xd7,0x6,0xf8,0x12,0xa0,0x14,0xf2,0x10, +0xb4,0x19,0x74,0x23,0xe8,0x1e,0xcd,0x16,0xea,0x1a,0xd,0x21, +0x3b,0x19,0x80,0x12,0x64,0x18,0xe9,0x16,0xb8,0xb,0x68,0xa, +0xb9,0xe,0xe3,0xa,0xd1,0x2,0x8d,0xfd,0x73,0xfb,0x3,0xf9, +0xd3,0xf1,0xd5,0xea,0x8d,0xeb,0xb,0xeb,0x94,0xe2,0xe1,0xe0, +0x68,0xe8,0x74,0xe6,0xc7,0xdb,0x7c,0xd6,0x3,0xd2,0x6d,0xc9, +0xd,0xc6,0x92,0xc8,0xba,0xc9,0x30,0xcd,0xb1,0xd4,0x75,0xd7, +0x72,0xd6,0x13,0xd8,0xc1,0xd8,0xb4,0xd7,0x91,0xd7,0xf2,0xd6, +0xa8,0xdb,0x95,0xe6,0x20,0xe9,0xa7,0xe6,0x10,0xf2,0xdc,0xff, +0xf,0xfc,0x6f,0xf8,0xb,0x3,0x1,0x6,0x4f,0xfe,0xa6,0x1, +0x4e,0x9,0xa,0x7,0x1,0x7,0x6e,0xc,0xc5,0x8,0x38,0x0, +0x6c,0x1,0xcc,0x5,0x46,0x1,0x17,0xfb,0xc8,0xfb,0x9b,0xfe, +0x7a,0x0,0xa0,0x2,0xef,0x4,0xf6,0x8,0x3,0xb,0x57,0x3, +0x3a,0xfa,0xb5,0xfd,0xfb,0x1,0xdc,0xf6,0x59,0xec,0xdf,0xef, +0x10,0xf1,0xbc,0xec,0x57,0xef,0xa4,0xf0,0xc,0xeb,0x91,0xea, +0x2c,0xeb,0xdd,0xe2,0xc1,0xdd,0x4e,0xe3,0x5c,0xe5,0x36,0xe0, +0x5a,0xe0,0x82,0xe5,0x6a,0xe7,0x50,0xe9,0xa7,0xeb,0x4,0xe6, +0x2b,0xe0,0xe7,0xe9,0xa1,0xf3,0xc4,0xe9,0x98,0xe8,0x95,0x0, +0xef,0x4,0x38,0xed,0x43,0xee,0xe2,0x3,0x27,0xfe,0x84,0xed, +0x67,0xf4,0x32,0xfc,0xa7,0xf5,0xdc,0xf9,0xa7,0x5,0x80,0x3, +0xe7,0x5,0x38,0x17,0x1,0x1a,0xe0,0xf,0x95,0x16,0x94,0x22, +0x80,0x1c,0x35,0x14,0x73,0x1a,0x6,0x22,0x37,0x21,0x53,0x20, +0x3b,0x21,0x66,0x1f,0xb5,0x1e,0x1,0x1f,0x7d,0x19,0xc4,0x13, +0xca,0x15,0x91,0x19,0xfc,0x1a,0x80,0x1b,0xe9,0x18,0x84,0x18, +0xc0,0x1d,0xa2,0x19,0xa,0xc,0x85,0xb,0x5c,0x13,0xe5,0xb, +0x4f,0x0,0x70,0x8,0x42,0x15,0xf2,0xf,0x64,0x8,0xcd,0xd, +0x27,0xe,0xa4,0x4,0x39,0x1,0xc5,0xfe,0xd0,0xf3,0xee,0xed, +0x51,0xf6,0xd5,0xfc,0x52,0xf4,0xfc,0xee,0xd0,0xf8,0x1e,0xf8, +0xe0,0xe8,0xf,0xea,0xc1,0xf4,0x62,0xee,0xe8,0xe6,0xdc,0xef, +0x8c,0xf6,0x21,0xf2,0x79,0xf4,0x3c,0xfd,0x26,0xf9,0xb2,0xef, +0x72,0xf2,0xf6,0xf4,0x17,0xee,0x90,0xed,0xa2,0xf3,0x40,0xf1, +0xad,0xeb,0x95,0xef,0xc2,0xf7,0xcc,0xfb,0xd1,0xfc,0x51,0xfa, +0x8c,0xf5,0xeb,0xf6,0x95,0xfd,0x77,0x1,0x7c,0x2,0x30,0x1, +0x1d,0xff,0x37,0x3,0xaa,0x9,0xd2,0x9,0xdb,0x9,0x2d,0xe, +0xde,0xb,0xbd,0xff,0x3e,0xf9,0x75,0x1,0x5,0xb,0xcd,0x9, +0x5c,0x5,0xf0,0x3,0xc3,0x0,0x25,0xfe,0xa,0x1,0x87,0x3, +0x95,0x0,0x6c,0xfb,0x50,0xf8,0x30,0xfa,0xbd,0xff,0x9c,0x3, +0x6c,0x3,0x6a,0x0,0xd4,0xfd,0x13,0xff,0xe6,0x1,0x2e,0x2, +0xec,0x0,0x91,0xff,0x99,0xfd,0x4e,0xfb,0x68,0xf7,0x77,0xf2, +0x9c,0xf3,0x2b,0xfa,0x1d,0xf8,0x1e,0xee,0xa,0xee,0x1c,0xf5, +0xd7,0xf4,0xbf,0xf5,0x5b,0xfc,0xdd,0xf8,0x8d,0xf0,0x5a,0xf5, +0x7b,0xfc,0xf2,0xf8,0x9c,0xf6,0xcb,0xf9,0x31,0xf7,0xb8,0xf2, +0x9d,0xf8,0xa,0x1,0x77,0xff,0xde,0xfb,0x96,0xff,0xef,0x2, +0x5a,0x0,0xab,0xfe,0x6f,0x1,0x3c,0x3,0x37,0x1,0x67,0x0, +0xdb,0x2,0x2a,0x3,0x8,0x2,0xb1,0x6,0x90,0xe,0x4d,0x10, +0xc1,0xc,0x74,0xc,0xca,0xf,0x24,0x10,0x7e,0xe,0x19,0x10, +0xe3,0x11,0x6d,0xf,0xa9,0xb,0x81,0xa,0x3f,0xb,0x65,0x9, +0x78,0x3,0x14,0x0,0xaf,0x2,0x97,0x4,0xc,0x3,0x8c,0x3, +0x15,0x6,0xf2,0x5,0x8e,0x4,0xe6,0x3,0x49,0x1,0xdf,0xfd, +0x29,0xfd,0xf2,0xfc,0x2a,0xfb,0x8b,0xf9,0x37,0xf8,0x45,0xf8, +0x32,0xfc,0x17,0xff,0x9,0xfb,0x4d,0xf6,0x95,0xf7,0x46,0xf9, +0x6f,0xf7,0x33,0xf7,0x50,0xfa,0x49,0xfb,0xea,0xf6,0xbc,0xf3, +0x56,0xf8,0xda,0xfd,0x12,0xfd,0x94,0xfa,0x49,0xfa,0x30,0xfc, +0x96,0xff,0xfc,0x0,0xcc,0x1,0xf8,0x4,0x23,0x6,0xf9,0x5, +0xd8,0x8,0xd1,0x8,0x21,0x3,0x77,0x0,0xd9,0x1,0x9f,0xff, +0x4c,0xfc,0x56,0xff,0x8d,0x4,0xfb,0x4,0x75,0x3,0x54,0x5, +0xfa,0x9,0x8b,0xb,0x7a,0x8,0x3f,0x8,0x7b,0xc,0x73,0xd, +0xdf,0xa,0x6e,0xb,0xf7,0xf,0xa0,0x12,0x82,0xf,0x7a,0xa, +0xa5,0x8,0x6c,0xb,0x94,0x11,0x68,0x14,0xac,0x10,0x64,0xd, +0xaa,0xe,0xe4,0x12,0x29,0x16,0x79,0x12,0xfa,0xb,0xc0,0xb, +0x53,0xe,0x6b,0xe,0xf4,0xe,0xf6,0x10,0xc8,0x10,0x7d,0xe, +0x2b,0x10,0xde,0x14,0x7b,0x14,0x89,0x12,0xd7,0x14,0x39,0x15, +0x0,0x13,0x93,0x13,0x0,0x14,0xb4,0x11,0xe0,0xe,0x6,0xc, +0xb6,0x9,0x8,0x8,0x18,0x6,0xaf,0x6,0x17,0xc,0xef,0xf, +0x59,0xd,0x5a,0xc,0x91,0x10,0xd,0x11,0x2f,0xd,0xe9,0xa, +0x29,0xa,0x33,0xc,0xa,0xf,0x66,0xd,0x65,0xc,0x8e,0xe, +0xbd,0xd,0xea,0xb,0xfc,0xc,0xea,0xe,0xdb,0x10,0xf1,0x10, +0xf6,0xd,0x74,0xb,0x5d,0xb,0xd6,0xc,0x5d,0xf,0x65,0x12, +0x81,0x13,0xb3,0x10,0x98,0xe,0x82,0x10,0xd0,0x11,0x69,0x11, +0x5e,0x10,0x59,0xe,0x2b,0x11,0x7f,0x17,0x0,0x17,0xec,0x12, +0xcb,0x11,0x1c,0xf,0xcd,0xb,0xf1,0xc,0xf7,0xc,0xad,0x5, +0x5a,0xfe,0x26,0x1,0x91,0x8,0x51,0x9,0xab,0x6,0x50,0x8, +0x82,0xb,0xd2,0xb,0x70,0xb,0x9e,0xc,0x9d,0xb,0x3a,0x7, +0xc1,0x5,0x59,0x8,0x31,0xa,0x15,0xa,0x91,0x7,0x37,0x4, +0xe4,0x4,0xfe,0x8,0x9,0xc,0xa5,0xa,0xbc,0x4,0xd,0x2, +0x57,0x6,0xbc,0x7,0xa3,0x0,0xaa,0xf8,0xa4,0xf5,0xc3,0xf5, +0xb0,0xf7,0xcb,0xf9,0xcd,0xf6,0xd9,0xf1,0x8,0xf5,0x7d,0xfb, +0x6e,0xfb,0xb,0xfb,0xb7,0xfd,0x2d,0xfc,0x4c,0xfa,0x2a,0xff, +0x31,0x2,0xf,0xfc,0xc7,0xf5,0x36,0xf8,0xf9,0xff,0x7b,0x5, +0x39,0x3,0xe6,0xf9,0x25,0xf4,0xaf,0xfa,0xdd,0x6,0xf6,0xb, +0x79,0x8,0xd,0x5,0x82,0x5,0x9f,0x6,0xd3,0x6,0xaa,0x4, +0xac,0xff,0x6b,0xfe,0x93,0x3,0xff,0x6,0x16,0x4,0x4e,0xff, +0xa2,0xfd,0xc5,0x0,0x5d,0x6,0xbf,0x7,0x7f,0x0,0xa5,0xf6, +0xa2,0xf3,0xf0,0xf6,0xe3,0xf9,0x4f,0xf8,0xda,0xf1,0x99,0xeb, +0xc4,0xea,0xab,0xef,0x5e,0xf7,0x3f,0xf9,0xe0,0xf2,0x58,0xf2, +0x92,0xfa,0x48,0xfc,0xba,0xf7,0xac,0xf7,0x92,0xf8,0xe4,0xf7, +0x72,0xfa,0x39,0xf8,0x31,0xe9,0xa7,0xdb,0x64,0xdc,0x6a,0xe3, +0xb7,0xea,0xa1,0xf2,0x4,0xf4,0x1a,0xee,0x5a,0xeb,0x48,0xef, +0x5c,0xf4,0x1d,0xf4,0x49,0xef,0x6b,0xed,0x57,0xec,0xd9,0xe6, +0x1e,0xe5,0xe4,0xe9,0x7c,0xec,0xf5,0xec,0x5,0xee,0xc0,0xeb, +0x77,0xe8,0x8c,0xec,0x2b,0xf7,0x85,0xfe,0x98,0xfe,0x47,0xfa, +0xf4,0xf2,0xd5,0xed,0x46,0xf1,0x8e,0xf7,0xa1,0xf7,0xbd,0xf0, +0xd3,0xe7,0x4a,0xe4,0x25,0xe8,0x5e,0xef,0xad,0xf6,0xf3,0xf8, +0xda,0xf5,0xd5,0xf4,0xc6,0xf6,0x52,0xfa,0xc,0xff,0x25,0xfc, +0xf7,0xf1,0x22,0xed,0x8e,0xea,0xad,0xe1,0x55,0xdd,0x70,0xe6, +0x6c,0xed,0xea,0xe5,0xc9,0xe0,0xee,0xe8,0x1d,0xec,0x7f,0xe6, +0xaa,0xe9,0xfd,0xf0,0xfa,0xec,0xdd,0xe5,0x11,0xe9,0xdf,0xee, +0x58,0xec,0x2c,0xea,0xdd,0xed,0x57,0xeb,0xc1,0xe5,0xf4,0xea, +0x8c,0xf2,0x48,0xf2,0x69,0xef,0x85,0xee,0x82,0xf2,0x15,0xf9, +0xc5,0xf8,0x70,0xf3,0xbf,0xf2,0x40,0xf4,0xe3,0xef,0x11,0xeb, +0xdb,0xee,0xda,0xef,0xdf,0xe4,0xd,0xe0,0x3b,0xe9,0x9a,0xf2, +0xb1,0xfb,0xb8,0x5,0xaa,0x4,0x62,0xfa,0xf6,0xf6,0x6e,0xfc, +0x10,0xfe,0x81,0xf9,0x98,0xf7,0x1f,0xf5,0xe,0xef,0x8d,0xf0, +0xec,0xf6,0x1c,0xf6,0x5,0xf5,0xd,0xfb,0x24,0xff,0x8,0xfa, +0xe8,0xf4,0xd3,0xfa,0x44,0x0,0x5c,0xf9,0x51,0xf4,0xee,0xf6, +0x42,0xf7,0x1e,0xfc,0x6e,0x8,0x12,0xa,0x19,0xfd,0x84,0xf3, +0xfd,0xf5,0x35,0xfb,0x5d,0xfe,0xf3,0x1,0x43,0xfe,0x32,0xf4, +0xc3,0xf8,0x63,0xb,0xea,0x10,0xd7,0x1,0x3f,0xf1,0x16,0xed, +0x68,0xf0,0x14,0xf4,0x80,0xf8,0xc8,0xf9,0xa7,0xf7,0x4c,0xfb, +0xaf,0x0,0x96,0xff,0xb5,0xfe,0xf2,0xff,0xa6,0x0,0x78,0x6, +0x4d,0xb,0x98,0x3,0x73,0xfd,0xca,0x8,0x88,0x13,0x3b,0xb, +0x5a,0xff,0x2d,0xfc,0x82,0xf8,0xf6,0xf7,0xf2,0xff,0x98,0x0, +0x6c,0xf7,0x3b,0xf6,0x7b,0xff,0x4d,0x8,0x2f,0xa,0xf7,0x3, +0x7e,0xfa,0x5b,0xf5,0xb0,0xf9,0xfb,0x2,0xa2,0x2,0x2b,0xf8, +0x53,0xf5,0xfb,0xfd,0xeb,0x5,0x66,0x9,0x6a,0xb,0x5,0xa, +0x5,0x6,0xd,0x7,0xc0,0xa,0xf7,0x6,0xbf,0x2,0x39,0x6, +0x3e,0x5,0x25,0x0,0xac,0x3,0x12,0x3,0xa6,0xf5,0x4d,0xf2, +0xa0,0xff,0x1,0x6,0x94,0xfe,0xea,0xfc,0x8d,0x9,0x7,0x13, +0x78,0xd,0xd3,0x6,0x60,0x9,0x54,0xa,0x5f,0x5,0x93,0x5, +0xca,0x9,0xe1,0x3,0x1,0xf8,0x52,0xf8,0x9e,0x4,0xd8,0xe, +0x5,0x10,0xd,0xa,0x12,0x7,0xcd,0xb,0x4f,0xd,0xf,0x9, +0x7b,0x7,0xb5,0x4,0x91,0xff,0xe2,0x3,0xac,0xd,0x22,0xc, +0xdd,0x2,0x9,0x1,0x70,0x3,0x75,0x1,0xa2,0x2,0x28,0x9, +0xcb,0x9,0xa9,0x7,0x63,0xd,0x94,0x13,0xc4,0xe,0x90,0x6, +0xe5,0x9,0x1e,0xf,0xa1,0x1,0x76,0xf0,0xb,0xf3,0x3a,0xfb, +0x6e,0xfc,0xc5,0x0,0x40,0x7,0xce,0x8,0xe6,0x7,0x3f,0x9, +0xee,0xe,0xcc,0x10,0x4b,0x8,0x15,0x1,0x5d,0x3,0x60,0x7, +0x5c,0x8,0xed,0x9,0xd8,0xb,0xf8,0x7,0x63,0x1,0x67,0x2, +0x74,0x7,0x41,0x7,0x5,0x3,0x1d,0x0,0x97,0x3,0x94,0xb, +0x2b,0x10,0x41,0x12,0x53,0x13,0xb1,0xd,0x37,0x2,0xa1,0xf8, +0x39,0xf7,0x7c,0xfc,0xd8,0xff,0xdc,0x0,0x55,0x5,0x71,0xc, +0xa2,0x12,0xd8,0x14,0x66,0x12,0x5f,0xd,0x78,0x7,0xf8,0x6, +0xad,0xc,0x5c,0xd,0x42,0xa,0x72,0xd,0xa4,0x10,0x4,0xb, +0xf6,0x3,0x2d,0x6,0xb8,0xa,0x72,0x4,0x7e,0xfe,0x6e,0x5, +0x60,0xa,0xc3,0x9,0x43,0x12,0x7f,0x1b,0x99,0x17,0x45,0xf, +0x39,0xb,0x7d,0x8,0xad,0x4,0xab,0x1,0x1b,0x0,0x3d,0xfd, +0xe6,0xfa,0x65,0xfe,0x1c,0x5,0xfa,0x7,0x24,0x5,0xc6,0x1, +0x6c,0x2,0xfd,0x0,0xae,0xf9,0x59,0xf6,0x77,0xf8,0x96,0xf5, +0xc9,0xf0,0x2c,0xf5,0x25,0xfd,0x85,0xfa,0xdb,0xf0,0xba,0xef, +0x9d,0xf7,0x61,0xfe,0xaf,0x0,0x7d,0xfe,0x28,0xfc,0xb5,0xff, +0x12,0x3,0xc1,0x0,0x43,0x0,0x3c,0x4,0x92,0x4,0x49,0xff, +0x4e,0xfd,0xe3,0x1,0xf9,0x5,0xc7,0x9,0x9a,0xf,0x0,0x11, +0x18,0x12,0x2c,0x1a,0x45,0x1d,0x17,0x16,0x81,0x13,0xa2,0x18, +0x5b,0x16,0xae,0x9,0x9b,0x5,0x8d,0x10,0x35,0x15,0x23,0xd, +0x78,0xa,0xe0,0xd,0xfa,0xb,0x4e,0xa,0xbe,0xd,0xbb,0xe, +0x32,0xd,0xe3,0xe,0x81,0xf,0x77,0xa,0xa8,0x5,0xda,0x4, +0x11,0x3,0x7,0xfd,0xc7,0xf7,0x89,0xfb,0x16,0x6,0x52,0x8, +0x1c,0xff,0xc6,0xfc,0xc5,0x5,0xc6,0x6,0x18,0x0,0xf7,0x4, +0x75,0xc,0xd8,0x3,0xb8,0xf8,0x5e,0xfa,0xf3,0xfd,0x33,0xfb, +0xe0,0xf6,0x18,0xf3,0xce,0xf1,0x44,0xf5,0xc4,0xf8,0xd,0xfa, +0x66,0xfd,0x63,0x2,0x93,0x5,0x4c,0x5,0x64,0x2,0x69,0x4, +0x6a,0xb,0x9e,0xa,0xf8,0x2,0x36,0x0,0x4c,0x2,0xea,0x5, +0x62,0x9,0xb7,0x9,0xc9,0x9,0xb8,0xb,0x96,0xc,0x59,0xd, +0x23,0x10,0xc,0x13,0xa2,0x13,0xf5,0x11,0x98,0xf,0x4a,0xf, +0x47,0x14,0xbb,0x17,0xa6,0xe,0xe6,0x2,0xd5,0x3,0xaf,0x9, +0xea,0x8,0x13,0x5,0xd8,0x4,0xa3,0x7,0x95,0x6,0x9b,0x0, +0x13,0xff,0xb1,0x4,0xfb,0x6,0xeb,0xff,0x29,0xf8,0x7e,0xf8, +0x48,0xfb,0xad,0xf6,0x3d,0xee,0x36,0xee,0xb6,0xf3,0x2b,0xf1, +0xcd,0xef,0x81,0xfb,0x92,0xff,0xc1,0xf4,0x87,0xf3,0x82,0xf9, +0x43,0xf5,0x44,0xf3,0x6,0xfa,0xf9,0xf7,0x1f,0xef,0x7,0xf0, +0x65,0xf2,0x5,0xeb,0x84,0xe8,0xcb,0xee,0xc9,0xec,0xb7,0xe8, +0xa9,0xf1,0x58,0xf9,0xa8,0xf6,0xe7,0xf9,0xb0,0x3,0x5e,0x3, +0x3a,0xfa,0xc1,0xf4,0x88,0xf5,0xe8,0xf8,0x60,0xfa,0x21,0xf9, +0xcb,0xf9,0x36,0xfb,0x21,0xfb,0xc8,0x1,0x7c,0xf,0x14,0x14, +0x1a,0xa,0x51,0x0,0x35,0x0,0xb3,0x0,0x25,0xfb,0x4e,0xf8, +0xc9,0xfc,0xa3,0x2,0x93,0x6,0x48,0x4,0x5a,0xfa,0xa0,0xf5, +0x62,0xfa,0x36,0xfa,0xc9,0xf3,0x95,0xf4,0xb9,0xfb,0x5d,0xfe, +0xa6,0xfd,0xab,0x2,0xb8,0x9,0x22,0x5,0x4d,0xf8,0xd3,0xf0, +0x9c,0xec,0xa3,0xe9,0xa7,0xeb,0x4b,0xea,0xc6,0xe7,0xd8,0xf2, +0x7f,0xfe,0xac,0xf8,0x52,0xf2,0xba,0xfb,0xdc,0x3,0x50,0xfa, +0xe4,0xed,0x8a,0xef,0x48,0xf4,0x7f,0xf1,0x57,0xf2,0xec,0xfb, +0xb6,0x1,0xe0,0xfa,0x76,0xf0,0xe7,0xf1,0x53,0xfa,0x9f,0xf8, +0xd9,0xf2,0xa6,0xf8,0xe4,0x0,0x23,0xfe,0xe9,0xf9,0x55,0xfd, +0xe9,0xfe,0xd2,0xf8,0xb4,0xf2,0x5b,0xf2,0xd6,0xf6,0x1f,0xf9, +0xe3,0xf3,0x82,0xf1,0xf7,0xf9,0x72,0x1,0x2e,0x2,0xb9,0x2, +0x5,0x2,0x56,0x0,0x5b,0x1,0xd6,0xff,0x85,0xfc,0x81,0xfe, +0x13,0xfe,0xf3,0xf4,0x28,0xf2,0x22,0xfc,0xe7,0xfe,0xa4,0xf7, +0xc1,0xfd,0x2e,0x8,0x98,0xfe,0x9c,0xf6,0x5d,0x1,0xf2,0x6, +0x1c,0x3,0x66,0x3,0x5,0x3,0x13,0x1,0xeb,0x3,0x77,0x8, +0xae,0x8,0xd5,0x4,0x2d,0x2,0xc5,0xfd,0xb7,0xf7,0x66,0xfb, +0x89,0xfe,0xf2,0xf6,0xa4,0xf8,0xfa,0x0,0xc2,0xfd,0xdb,0xfc, +0xf2,0x2,0x60,0x0,0x41,0xfa,0x50,0xfa,0xd8,0xfa,0xfe,0xf7, +0x36,0xf7,0xab,0xfa,0x5a,0xfd,0x37,0x1,0x1e,0x8,0xb0,0xb, +0x2f,0x10,0xcf,0x15,0xe0,0xd,0x2b,0x1,0x2,0x4,0xd8,0xa, +0xa3,0x5,0x3f,0x1,0x24,0x6,0x8b,0x3,0xfb,0xfa,0x77,0x2, +0x7e,0xc,0x8e,0x3,0xb8,0xfc,0xd0,0x3,0x23,0x5,0xc7,0xff, +0xc6,0xff,0x3b,0x2,0xab,0x3,0x69,0x6,0xeb,0x6,0xa5,0x0, +0x44,0xfc,0x75,0x2,0x79,0x7,0x27,0x2,0xc,0xfe,0x41,0x1, +0x2d,0x5,0x37,0x7,0x5a,0x7,0xfd,0x5,0x62,0x4,0xe4,0xff, +0xbc,0xfb,0x34,0x1,0xe5,0x6,0x50,0xfc,0x2,0xf1,0x1c,0xfd, +0xc0,0x10,0xab,0xf,0xf2,0x4,0x61,0xb,0x44,0x18,0x6a,0x11, +0xe6,0x4,0xf4,0x8,0x21,0xa,0x3b,0xfe,0x22,0xff,0xf3,0xc, +0x96,0xf,0xbc,0x8,0x9f,0x6,0x65,0xb,0xa0,0xd,0x3e,0x3, +0x88,0xf7,0x23,0xfb,0x6c,0x3,0xef,0x1,0x7c,0xff,0x33,0x4, +0x86,0x4,0x21,0xfd,0xbb,0x0,0xe7,0xd,0xed,0xc,0x16,0x1, +0x99,0xfb,0x96,0xff,0x2b,0xc,0x53,0x12,0x4b,0x7,0xde,0x1, +0x50,0xa,0xa6,0x8,0x7f,0xfc,0x11,0xfd,0x84,0x7,0x6,0x5, +0xce,0xf8,0x93,0xf3,0xfc,0xf0,0x7,0xf3,0xaa,0x0,0x51,0x6, +0xc0,0xff,0xf,0x2,0xf,0x9,0x32,0x5,0x97,0xfb,0xa6,0xfa, +0x8f,0x2,0x95,0x1,0x89,0xf7,0xa5,0xf6,0x21,0xfe,0x18,0x4, +0xd0,0x1,0x81,0xf7,0x63,0xf7,0x58,0x3,0x4c,0x6,0xa9,0xfd, +0x4f,0xf5,0x2b,0xf6,0x13,0xfd,0xec,0xfa,0x5f,0xf4,0x32,0xf6, +0x4e,0xf8,0x12,0xf6,0xb0,0xf3,0x1,0xf5,0xae,0x0,0x1e,0xc, +0x4b,0x7,0x2d,0xfe,0xbb,0x2,0x1e,0x10,0x15,0x15,0x54,0xd, +0xb9,0x6,0xe5,0x3,0xb7,0xf9,0x94,0xf1,0x40,0xfa,0x3f,0x3, +0xcf,0xfc,0xac,0xf7,0xdf,0xf9,0xb7,0xf3,0xd2,0xf0,0x1c,0xff, +0xd5,0x3,0xf6,0xf2,0xcf,0xe6,0x74,0xe9,0x55,0xf3,0xb7,0x0, +0xda,0x5,0x9d,0xfe,0xa8,0xfb,0xba,0x1,0x13,0x1,0x9,0xf8, +0x1e,0xfa,0x4,0x7,0xcd,0x2,0x1a,0xf0,0x88,0xf1,0x14,0x3, +0x3e,0x6,0x19,0xfe,0xb9,0xfc,0xe8,0x0,0x5b,0xfe,0xeb,0xf3, +0x52,0xf3,0xbd,0x1,0x8f,0xb,0x98,0x5,0x9b,0xf6,0x1,0xf1, +0x82,0xfe,0xcc,0x6,0xb4,0xfc,0xeb,0xf5,0xcc,0xf4,0x8a,0xf3, +0x97,0x0,0xdf,0x11,0x78,0xf,0xbc,0x6,0xde,0x8,0x74,0x8, +0x16,0x0,0xe,0xfd,0x4d,0xfd,0x32,0xfa,0x7a,0xf9,0x8f,0xf8, +0xf4,0xf6,0xe0,0x0,0x2,0x10,0x64,0x13,0x30,0x10,0xc1,0x11, +0xa,0x11,0x5a,0x8,0x59,0x8,0xd3,0x16,0xc6,0x1d,0xdf,0x14, +0xe0,0x5,0x35,0xfb,0x2a,0x3,0x3a,0x12,0x82,0xa,0xab,0xf5, +0x7f,0xf2,0xac,0x0,0x69,0x7,0x62,0xfe,0xde,0xfb,0x2e,0x6, +0x13,0x6,0x75,0xfb,0xd1,0xf8,0x79,0xfb,0x3c,0xf8,0x83,0xf0, +0x9a,0xee,0x64,0xf5,0xf5,0xfa,0xeb,0xf8,0x5a,0xf5,0x6b,0xf9, +0xc9,0xff,0x0,0xfb,0x2f,0xf2,0xe0,0xf2,0x10,0xfa,0x82,0x1, +0x52,0x0,0xa3,0xf4,0xbf,0xef,0x21,0xf5,0x9e,0xf5,0xad,0xef, +0x8a,0xed,0x99,0xf0,0xc7,0xed,0xc4,0xe6,0xe3,0xec,0xb5,0xf9, +0x6c,0xfd,0x54,0xfe,0x40,0x0,0x36,0x2,0x9e,0x1,0xef,0xf3, +0x9,0xeb,0xd6,0xfa,0xc5,0x2,0x6e,0xf2,0xcf,0xeb,0x26,0xf5, +0x8c,0xf8,0xaa,0xf7,0x29,0xfd,0x7d,0x5,0x7f,0x5,0x58,0xfe, +0x33,0x0,0x38,0xa,0xeb,0xc,0xf7,0x8,0xbe,0x3,0xb,0xff, +0x4c,0xff,0xa3,0x0,0xe3,0x0,0x88,0x4,0xd5,0x6,0xc3,0x4, +0xc,0x1,0x24,0xfd,0x72,0x0,0x5e,0x9,0x5c,0xa,0xb7,0x2, +0xd,0xfb,0xa5,0xf9,0x82,0xfc,0xd3,0xf6,0x9b,0xea,0xe2,0xea, +0x3d,0xf4,0x76,0xef,0x91,0xe2,0x8c,0xeb,0xf5,0xff,0xaa,0xfc, +0x3d,0xef,0x14,0xf4,0xa5,0xfe,0x5d,0x0,0x50,0xff,0x9,0x0, +0x42,0xfe,0x99,0xf3,0x2e,0xe8,0xa8,0xe9,0x3f,0xf5,0xf8,0x1, +0xa1,0x3,0x9f,0xf2,0xd,0xe3,0x40,0xe9,0x52,0xfa,0xbe,0x3, +0x24,0x4,0x92,0x6,0x2b,0xc,0x8e,0x8,0x47,0xff,0x19,0x3, +0xd3,0x12,0x96,0x1a,0xdc,0x12,0x91,0x6,0x91,0x0,0xb8,0x1, +0x8d,0x7,0xf4,0x10,0x1a,0x18,0x4e,0x15,0x49,0xc,0x44,0x5, +0x32,0x3,0x27,0x9,0x36,0xe,0x47,0x3,0x44,0xf4,0x6c,0xf4, +0x9,0xfe,0x52,0x4,0x27,0x3,0xa0,0xfe,0x69,0xfc,0xde,0xfb, +0xa2,0xfd,0x10,0x1,0x91,0x3,0xe7,0x8,0x6c,0xc,0x1c,0x9, +0xf4,0x8,0x46,0xb,0xe1,0x8,0xc6,0x7,0x77,0x8,0x9a,0x4, +0x83,0xfd,0x4d,0xf9,0x15,0xfb,0x50,0xfe,0x74,0x0,0x13,0x4, +0xe6,0x8,0xdd,0xe,0xe6,0xf,0x71,0x7,0xb0,0x4,0x38,0xc, +0xf7,0xa,0x3a,0x2,0xbc,0x8,0xc1,0x19,0xdc,0x17,0x75,0x7, +0x20,0x7,0x2b,0xf,0x51,0xb,0x38,0x9,0x7f,0xe,0x51,0xc, +0x71,0x3,0xb9,0xfe,0xb6,0x2,0x45,0xb,0x8,0x10,0x62,0xe, +0xea,0x6,0xb7,0xfd,0xfd,0xfa,0x18,0xfe,0xf1,0xfe,0x30,0xfb, +0x70,0xfa,0x20,0x3,0x22,0xd,0x30,0x10,0xfb,0x10,0xc2,0x12, +0x83,0x12,0x2b,0xe,0xe0,0x8,0xb5,0x8,0x94,0xb,0x68,0xc, +0xda,0xb,0x27,0x8,0x1f,0x2,0x96,0x0,0x71,0x2,0xd2,0x2, +0xb6,0x3,0x44,0x6,0x7f,0x4,0x57,0xfc,0x61,0xfa,0x9b,0x6, +0x93,0x11,0x3b,0x10,0x65,0xe,0x5a,0xf,0xd7,0x7,0xbb,0xfd, +0x44,0xff,0x2a,0x7,0xe9,0x9,0x4,0x6,0x4d,0x0,0x82,0x1, +0xf,0xa,0x4f,0xe,0xf7,0xa,0xd4,0x7,0xcc,0x8,0x27,0xa, +0x3,0x8,0x22,0x7,0x76,0xb,0x12,0xd,0xea,0x8,0x44,0x9, +0xa1,0x11,0x1f,0x16,0x83,0xf,0x8e,0x9,0x8,0xd,0x26,0xe, +0xbd,0x4,0x51,0xfc,0xa1,0xff,0x65,0x8,0x48,0xa,0x25,0x4, +0xd,0xfd,0xb0,0xf9,0x23,0xfa,0xa7,0xf8,0x1f,0xf3,0xb2,0xef, +0xa1,0xed,0xe7,0xeb,0xce,0xf3,0x86,0x2,0xe3,0x7,0x45,0x1, +0x12,0xfb,0x93,0xfe,0x23,0x5,0xcc,0x1,0x7d,0xfa,0xa,0xff, +0xec,0x9,0x2e,0xc,0x40,0xb,0xdc,0x10,0x7b,0x10,0xc8,0xff, +0x72,0xf2,0xea,0xf8,0x2e,0x1,0x34,0xfa,0x23,0xf1,0x92,0xf4, +0xb5,0xfd,0x14,0x1,0x6c,0x1,0xa8,0x7,0x9f,0xd,0x9,0x8, +0x92,0xff,0xa2,0xff,0x72,0x1,0x75,0xfe,0xde,0xfb,0xa8,0xff, +0xc8,0x7,0xa2,0xb,0x66,0x7,0xf7,0x0,0x65,0x0,0xf3,0x4, +0x64,0x3,0x61,0xfa,0xc9,0xf5,0x65,0xf6,0x4b,0xf8,0x2d,0x0, +0xe,0xa,0x11,0x9,0x32,0xfc,0x43,0xf2,0x9e,0xf5,0xe8,0xf9, +0x3f,0xf4,0xe2,0xf1,0x10,0xfa,0xa5,0xfe,0x8c,0xfb,0xa0,0xfc, +0xca,0xfd,0xdf,0xf1,0x81,0xe7,0xec,0xed,0xb3,0xf0,0x60,0xe4, +0x71,0xdc,0x4a,0xe2,0x22,0xeb,0x1,0xec,0x4b,0xe9,0x97,0xed, +0x10,0xf0,0xc6,0xea,0x2d,0xed,0x2a,0xf7,0xa5,0xfa,0x8a,0xf9, +0x83,0xfb,0x2f,0x2,0x83,0x9,0x6,0xb,0xa1,0x6,0xaf,0x1, +0x3b,0x3,0x3d,0xa,0xbf,0xb,0x77,0xa,0x62,0xf,0x2b,0x13, +0x1e,0x12,0x4e,0x10,0xe1,0x9,0x1d,0x0,0xa2,0xf8,0xf0,0xf1, +0x19,0xf0,0x5f,0xf8,0x5c,0xff,0x4b,0xf9,0x9d,0xf0,0xed,0xf2, +0xf4,0xf7,0x45,0xf6,0x3d,0xf5,0xea,0xf5,0xb3,0xf1,0x57,0xef, +0x3f,0xf5,0x21,0xf9,0x8e,0xf2,0xba,0xec,0x8a,0xf3,0x9a,0xf8, +0x6f,0xed,0x31,0xe4,0x6b,0xe8,0x9d,0xe9,0x61,0xe9,0xb3,0xf5, +0xcf,0x0,0x7e,0xfe,0xc7,0xfc,0xbb,0x1,0x94,0x3,0x56,0x0, +0x55,0xfb,0xe7,0xf6,0x40,0xf9,0x5a,0x0,0x11,0x1,0xe2,0xfe, +0x1c,0x2,0x8a,0x2,0x9b,0xfe,0x1c,0x0,0x5e,0xfe,0x2b,0xf0, +0x63,0xe7,0xf4,0xee,0xf4,0xf5,0xdb,0xf4,0x9,0xf8,0x6d,0xfd, +0xb8,0xf7,0xa1,0xee,0x40,0xf0,0xfc,0xf4,0x4d,0xf2,0xe3,0xee, +0xe6,0xf1,0x6b,0xf5,0xc1,0xf4,0xff,0xf8,0x90,0x7,0xd2,0xf, +0x38,0x5,0x27,0xfb,0x32,0x2,0xbe,0x7,0xfa,0xfd,0x26,0xf6, +0x66,0xf9,0x84,0xfa,0x2c,0xf6,0xbe,0xf8,0x9e,0x2,0x8a,0x3, +0x60,0xfb,0x46,0xfc,0x89,0x2,0x95,0xfe,0xee,0xf7,0x2c,0xf7, +0x77,0xf7,0xc4,0xf8,0xa5,0xfa,0x58,0xfa,0x2,0xfa,0xad,0xf8, +0xf1,0xf4,0x90,0xef,0x2f,0xe8,0x91,0xe6,0x54,0xf0,0x2a,0xfa, +0x7e,0xfb,0x8c,0xf8,0x87,0xf4,0xd,0xf0,0xa3,0xee,0x9b,0xf2, +0xa9,0xf5,0xed,0xf0,0xf2,0xeb,0xb3,0xf0,0x49,0xfb,0xd2,0x1, +0xd1,0xfe,0xb,0xfb,0x4b,0x3,0x12,0xb,0xbc,0x4,0x42,0x2, +0x69,0xb,0x85,0xb,0x29,0x1,0xc0,0x0,0xe4,0x9,0x6e,0x9, +0x0,0x0,0xa1,0xfe,0x47,0x2,0xb4,0xff,0x21,0xfd,0x14,0xff, +0xe7,0x1,0x62,0x4,0xcd,0x2,0xcb,0xfe,0x19,0x0,0xee,0x4, +0x8,0x7,0xb1,0x5,0xf3,0x5,0x17,0x9,0x30,0x6,0x4,0xff, +0x82,0xff,0x1f,0x3,0x15,0x2,0x37,0x1,0x4c,0x2,0x4,0x1, +0x55,0xfd,0xac,0xfc,0x11,0xff,0x59,0xfe,0xa9,0xfa,0x3c,0xf5, +0xa9,0xf2,0x28,0xfc,0x7b,0x3,0xeb,0xf9,0xe5,0xf2,0xde,0xf5, +0xad,0xf2,0x5d,0xed,0xe3,0xf1,0x68,0xfa,0xb2,0xfb,0x7b,0xf8, +0xed,0xfe,0x8f,0xb,0x90,0xc,0x88,0x4,0x11,0x2,0x2,0x4, +0xcc,0xff,0x33,0xf9,0x3a,0xfc,0xf8,0x0,0xc4,0xfe,0x65,0x2, +0x71,0xa,0xef,0x8,0xb7,0x6,0x48,0xb,0xca,0x9,0x49,0x0, +0xd9,0xfd,0x9f,0x4,0xc9,0x7,0x55,0x7,0xf0,0x9,0x45,0xa, +0xf1,0x6,0xa1,0x3,0x25,0x0,0xa8,0x1,0x8b,0x3,0xe6,0xf9, +0x4b,0xf1,0x47,0xf6,0xc,0xfd,0x72,0x1,0xde,0x8,0x29,0xb, +0xbd,0x3,0x6a,0xff,0x3b,0x1,0xca,0xfb,0xb3,0xf3,0xa7,0xf7, +0x60,0xfb,0x78,0xf5,0xe9,0xf9,0x7e,0xa,0x14,0xe,0x3c,0x4, +0x63,0x2,0x1b,0x7,0x36,0x3,0xaf,0xfe,0xb,0x5,0x54,0x8, +0xc9,0x3,0xab,0x8,0x2f,0x12,0x36,0xf,0x39,0x9,0x71,0xb, +0xf6,0xc,0x76,0x9,0x20,0x7,0x84,0x7,0x6a,0x9,0xea,0xe, +0x6e,0x16,0xab,0x19,0xb5,0x1b,0x7d,0x21,0x3f,0x20,0xe2,0x16, +0xc1,0x17,0x42,0x1d,0x9b,0x14,0xec,0xd,0x9e,0x18,0xb8,0x1e, +0x70,0x17,0xfd,0x14,0x69,0x14,0x76,0xb,0x61,0x9,0xbd,0x10, +0x6a,0xb,0xfa,0xff,0x2,0x9,0xb,0x17,0x6b,0xd,0xbd,0x3, +0x14,0x11,0x14,0x14,0xcc,0x1,0xb3,0xff,0xb1,0xa,0xcc,0x6, +0xbc,0x1,0xda,0x5,0xae,0x4,0x2e,0x4,0x50,0xa,0x6d,0x4, +0x5a,0xf7,0x10,0x0,0xd7,0xd,0x23,0xfd,0x5f,0xf0,0x2c,0xc, +0x5d,0x1b,0x12,0xfe,0xaa,0xef,0xe2,0x3,0x90,0x5,0xaf,0xef, +0xa9,0xef,0x16,0x2,0xd4,0x1,0xa7,0xf5,0xe0,0xf8,0xd,0x6, +0x49,0xc,0x89,0xa,0xef,0x8,0xc8,0xd,0x59,0x12,0xe0,0xa, +0x19,0xfd,0xcc,0xfb,0xc3,0x6,0x4d,0x4,0xf7,0xf3,0x9c,0xf8, +0xda,0xd,0x30,0xc,0x95,0xfe,0xd1,0x8,0x2a,0x17,0x2a,0x9, +0x17,0xfc,0x68,0xe,0x2e,0x18,0xb0,0x1,0x71,0xf9,0x6f,0x9, +0x1b,0x8,0xd3,0xf8,0x94,0xf5,0xb,0xf8,0x6e,0xfa,0x4c,0x0, +0x6d,0x1,0xe,0xfd,0xe,0x1,0xa9,0x8,0xdd,0x0,0xc0,0xf6, +0x78,0xfe,0x30,0xfd,0xec,0xe5,0x43,0xe2,0x2b,0xf1,0x5,0xe6, +0xa0,0xd7,0x4c,0xea,0x38,0xf4,0xbb,0xe2,0x97,0xe7,0x24,0xff, +0x63,0xfb,0x37,0xf3,0x4f,0x5,0x4a,0x8,0xde,0xee,0x28,0xef, +0xd4,0x4,0x60,0xfb,0x6b,0xec,0x92,0xfa,0x40,0xfb,0x14,0xeb, +0x52,0xf7,0xb8,0x4,0x55,0xf4,0x7a,0xf1,0x5b,0x5,0x73,0x6, +0xb7,0xfb,0xb9,0x0,0x14,0x6,0x9f,0xfe,0x73,0xfa,0xb9,0xfa, +0x68,0xf3,0x43,0xee,0x67,0xf5,0x41,0xfb,0xc3,0xf6,0x5a,0xf3, +0x9d,0xf9,0x97,0x3,0x1d,0xb,0x95,0x10,0x22,0x13,0xa2,0xf, +0x59,0x8,0x61,0x8,0x1c,0x11,0x71,0xd,0xbb,0xfc,0x6d,0xfd, +0x52,0xa,0x84,0x7,0x28,0x2,0xc1,0x7,0xc9,0x9,0x5d,0x9, +0x99,0xb,0x73,0x8,0xf3,0x6,0xde,0xd,0x4c,0xe,0x65,0x6, +0x92,0x8,0xd8,0xe,0x68,0x5,0xcc,0xff,0x1d,0x10,0x18,0x11, +0x34,0xf7,0x23,0xf3,0x2a,0x5,0x58,0x3,0xfe,0xfd,0x8f,0xa, +0xf1,0xa,0xed,0xff,0x4f,0x7,0x87,0xd,0xf5,0xfe,0xae,0xf8, +0xb2,0x4,0xa3,0x9,0xe5,0x4,0xec,0x3,0xee,0x0,0xba,0xfa, +0x77,0xff,0x81,0x7,0x53,0x2,0x9,0xf9,0x8,0xf5,0xf,0xf7, +0x4a,0x2,0xc4,0x6,0xf,0xfb,0xed,0xf9,0x87,0x7,0xe,0x4, +0xc0,0xf3,0x28,0xf7,0x17,0x1,0x73,0xf2,0x1f,0xe5,0x42,0xf5, +0x33,0x0,0x28,0xf4,0xfd,0xf4,0x34,0x9,0x7f,0x11,0x91,0x9, +0xdb,0x4,0x5,0x3,0xc4,0xfd,0xe4,0xff,0x95,0x2,0x6c,0xf9, +0x5d,0xf9,0xee,0x3,0x51,0x4,0x91,0x6,0xbc,0x9,0x13,0xfc, +0x7f,0xf4,0xc4,0xfc,0xe6,0xf5,0x25,0xe4,0xb8,0xea,0x7c,0xf9, +0x89,0xe6,0x1e,0xd3,0xb3,0xea,0x6e,0xf8,0xed,0xe1,0xf1,0xe0, +0x51,0xf0,0xfe,0xe4,0x62,0xd9,0x9b,0xe3,0xcd,0xeb,0x46,0xed, +0xc1,0xf6,0xd7,0x1,0xd3,0xfe,0x45,0xf2,0xca,0xe7,0x71,0xe5, +0xe4,0xf0,0x7c,0xfb,0x51,0xf4,0xe0,0xeb,0xb4,0xeb,0x38,0xe9, +0xe8,0xed,0x7d,0x0,0x57,0x9,0xb6,0xfb,0xac,0xef,0x2,0xf6, +0x19,0xfc,0xb0,0xfb,0xc2,0x2,0x8,0x4,0xa6,0xf7,0x20,0xfa, +0xc8,0xc,0xdc,0xc,0x3b,0xf9,0xdf,0xf4,0xff,0x4,0x67,0x4, +0x15,0xea,0xb1,0xe3,0x91,0x3,0xfc,0x1a,0x54,0xe,0xfd,0xff, +0x51,0x7,0x2c,0xa,0x6c,0xfa,0xa1,0xf5,0x48,0x6,0x4c,0x5, +0x9,0xe9,0x10,0xe2,0x66,0xfc,0x94,0xe,0xc7,0xc,0xe7,0x7, +0x4c,0x3,0x23,0xff,0xe8,0xfe,0x34,0x2,0xe3,0x3,0xf3,0xff, +0x8,0xfe,0x5c,0x2,0x67,0x2,0x2f,0xfa,0x87,0xf4,0xf0,0xfc, +0xf3,0xa,0x38,0x5,0xa7,0xee,0xc3,0xe7,0x56,0xf4,0xf0,0xfa, +0x60,0xfa,0xe3,0x2,0xd4,0x6,0xcf,0xf5,0xf8,0xeb,0xe,0xfc, +0xfd,0x6,0x3d,0xfe,0x75,0xf6,0x3b,0xf1,0x92,0xe9,0x55,0xf2, +0xc,0x8,0xb1,0x6,0x76,0xf3,0xad,0xf3,0xc9,0xfc,0x3d,0xf6, +0xf,0xf4,0x2b,0x1,0x11,0x5,0xd9,0xfa,0x75,0xf5,0x83,0xf6, +0x3f,0xf5,0xbb,0xf6,0x81,0xfe,0xee,0x3,0xda,0x1,0xc9,0xfa, +0x6f,0xf7,0xf0,0xfc,0x71,0x2,0xf0,0x6,0x4c,0xf,0x76,0xd, +0x8d,0xfe,0x87,0xf9,0xb2,0x2,0xb1,0x7,0xcc,0x4,0x9c,0x3, +0x5e,0x2,0x12,0x0,0x1d,0x6,0x1a,0xa,0xca,0x0,0x70,0xff, +0x2a,0x8,0x5a,0x4,0x7d,0xff,0xdf,0x5,0xaa,0x4,0x7b,0xfd, +0xc2,0x2,0x22,0x9,0x39,0x0,0x34,0xf6,0xb7,0xf5,0x33,0xf2, +0x40,0xf1,0x70,0xff,0xc9,0x5,0x59,0xf8,0xd3,0xf2,0x7,0xfa, +0xd6,0xf8,0xd4,0xf5,0xd0,0xfd,0xf9,0x0,0x4a,0xf7,0xaf,0xf1, +0xac,0xf3,0xc4,0xf2,0xe,0xf3,0xf0,0xfb,0x53,0x6,0xcb,0x6, +0x1,0xfd,0x35,0xf4,0x1a,0xf4,0xcd,0xfa,0x50,0x3,0x39,0x8, +0xe,0x8,0x24,0x3,0xef,0xf8,0x32,0xf2,0x2c,0xf8,0xa5,0x3, +0x45,0x9,0x15,0x6,0x94,0xfc,0x1d,0xf4,0xbd,0xf3,0x1e,0xfb, +0x8,0x6,0x85,0xf,0x22,0x11,0xf3,0xa,0xce,0x4,0x1f,0x1, +0xf6,0x0,0x1,0x8,0x5c,0xc,0x41,0x4,0xff,0xfb,0x2,0xfc, +0x31,0xfa,0x84,0xf7,0x8d,0x2,0x80,0x13,0x36,0x12,0xe8,0x3, +0x6f,0xfd,0xbe,0xfb,0x4b,0xfc,0x48,0x7,0xa9,0x10,0x5,0xb, +0x53,0x1,0x21,0xfe,0x10,0xff,0xf3,0x2,0x8f,0x8,0x72,0x9, +0x97,0x6,0xab,0x6,0x5a,0x6,0x3b,0x6,0x36,0xd,0x35,0x11, +0x28,0xb,0xef,0x6,0x9e,0x5,0x7c,0xff,0x86,0xfa,0xb1,0xff, +0xeb,0x8,0xc9,0x8,0xc9,0x3,0xfa,0x5,0xb5,0x6,0x8d,0x0, +0xf8,0x0,0x17,0x9,0xdc,0xb,0xde,0x6,0x1c,0x6,0x14,0xf, +0xb5,0x12,0x21,0xb,0x7b,0x9,0x1c,0x10,0x9a,0xf,0x78,0x7, +0x98,0x4,0xe7,0xa,0x4c,0xf,0x8e,0xb,0xec,0xa,0x52,0x12, +0xe6,0x15,0x81,0x10,0xb0,0xb,0x7e,0xf,0x40,0x16,0xdf,0x14, +0x59,0xc,0x96,0x5,0xf3,0x1,0x4b,0x0,0xb5,0x4,0x5,0xe, +0xea,0x11,0x1c,0xc,0x54,0x4,0x97,0x1,0xf5,0x2,0x62,0x5, +0x84,0x7,0xf1,0x7,0x5e,0x6,0x50,0x5,0x5f,0x6,0x77,0x8, +0x22,0xa,0xc0,0xa,0x48,0xc,0xf9,0xf,0x3a,0x11,0xb6,0xe, +0x65,0xf,0x96,0x13,0x2b,0x14,0x17,0x12,0x36,0x11,0x29,0x11, +0xb5,0x14,0x7b,0x19,0x8c,0x15,0x7b,0xc,0x4b,0x8,0x91,0x5, +0x6c,0x1,0x43,0x1,0xef,0x4,0x82,0x5,0x76,0xff,0xb4,0xf9, +0x6d,0xfb,0xd9,0xfe,0xe9,0xfe,0x7a,0x0,0xee,0x3,0x82,0x4, +0x3d,0x3,0x1,0x6,0x6e,0xd,0xd5,0x11,0x6a,0x10,0x45,0xe, +0xf2,0xc,0x3b,0xd,0x10,0x10,0xed,0xf,0x4e,0xb,0xca,0x8, +0x63,0x8,0x34,0x6,0x36,0x8,0x83,0x10,0x2b,0x10,0x6d,0x3, +0xe8,0xfc,0xf8,0xff,0x32,0xfd,0xec,0xf6,0x4d,0xfc,0xc6,0x9, +0x92,0xd,0x9d,0x6,0x3b,0x5,0xff,0x9,0x73,0x7,0x1f,0x2, +0x88,0x4,0xe4,0x6,0x13,0x2,0xcd,0xfc,0x67,0xfb,0x55,0xfb, +0xac,0xfa,0x6a,0xf9,0x44,0xf9,0xd,0xfa,0x55,0xf9,0x97,0xf9, +0x8d,0xfc,0x66,0xfd,0x9f,0xfc,0x3d,0xfe,0x7b,0xfe,0xc6,0xfa, +0x2c,0xf8,0x98,0xf9,0x67,0xfb,0x9d,0xfb,0x77,0xfe,0x43,0x3, +0x31,0x4,0x48,0x3,0x20,0x2,0xfb,0xfe,0x9b,0xff,0x58,0x3, +0x36,0x1,0xae,0xfc,0xe3,0xfb,0x5e,0xfa,0x55,0xf6,0x81,0xf3, +0x3,0xf1,0x4d,0xec,0xb0,0xe9,0xf,0xed,0x5c,0xf2,0x4b,0xf8, +0x29,0xfe,0x67,0xfd,0x6c,0xfa,0x68,0xfd,0x5d,0xfe,0x42,0xfa, +0xa9,0xfa,0x3e,0xfe,0x93,0xfd,0x51,0xf9,0x2d,0xf6,0xeb,0xf7, +0x32,0xfb,0x32,0xfa,0x4b,0xf9,0x12,0xfc,0x54,0xfb,0xf2,0xf5, +0xdc,0xf5,0x19,0xfd,0xc9,0xff,0xe0,0xf7,0xea,0xf0,0xdc,0xf1, +0x5d,0xf1,0x75,0xef,0xfb,0xf3,0xb3,0xf5,0x19,0xee,0x6d,0xe9, +0xc,0xed,0x91,0xf3,0xe,0xf9,0xcc,0xf7,0x6c,0xf0,0x84,0xed, +0x5f,0xf1,0x10,0xf4,0x5f,0xf3,0x9d,0xf4,0x2e,0xf8,0xe8,0xf7, +0x25,0xf5,0x6a,0xf6,0x15,0xf6,0x28,0xec,0x78,0xe3,0x24,0xeb, +0xfb,0xfb,0xd4,0x3,0x6e,0x1,0xfd,0xff,0x83,0x2,0xa4,0x3, +0xb8,0x0,0xad,0xfb,0x37,0xf5,0x9b,0xee,0x20,0xee,0x34,0xf3, +0x58,0xf5,0x2,0xf6,0x15,0xf7,0xf5,0xf0,0xea,0xe8,0x7f,0xea, +0x3f,0xef,0x9b,0xf0,0xa2,0xf3,0xc9,0xf7,0xaf,0xf9,0xf9,0xfb, +0xaa,0xff,0xd3,0x2,0x3f,0x4,0x2e,0x0,0xcb,0xf2,0xb9,0xe3, +0xfc,0xe2,0xeb,0xf0,0x98,0xfb,0x7e,0xfb,0x2b,0xf8,0xad,0xf4, +0x50,0xf2,0xe7,0xf5,0x99,0xfb,0x2d,0xfb,0x68,0xf5,0x9e,0xee, +0xc5,0xe9,0xf9,0xe9,0x2a,0xee,0xe6,0xf3,0xf1,0xfa,0x84,0xfd, +0x33,0xf6,0xd3,0xed,0x9a,0xee,0x77,0xf4,0xc9,0xf9,0x6c,0x1, +0x64,0xa,0x3b,0xc,0x2f,0x6,0x28,0x2,0x10,0x3,0xf3,0xfe, +0x2c,0xf2,0x3b,0xe9,0x94,0xec,0x93,0xf3,0x8,0xf5,0xb8,0xf2, +0x25,0xf2,0x22,0xf5,0x34,0xf6,0x5d,0xf2,0xc9,0xf2,0xa8,0xf9, +0x2a,0xfb,0x9,0xf7,0xd2,0xf6,0x6a,0xf7,0x33,0xf1,0xf8,0xe8, +0x5a,0xe9,0x11,0xf1,0x99,0xf4,0xb8,0xf3,0x70,0xf6,0xb,0xfb, +0x44,0xff,0x2,0x4,0xe5,0x3,0xbe,0x0,0x85,0x2,0x38,0x1, +0x39,0xf6,0x5a,0xf0,0xd0,0xf5,0xe3,0xf7,0x92,0xf4,0x71,0xf8, +0xd5,0xfe,0x51,0xfa,0xff,0xf2,0xe3,0xf7,0xec,0x1,0xef,0x4, +0xdc,0x6,0x42,0xa,0x6c,0x5,0xda,0xfe,0xd9,0x1,0xc9,0x3, +0x9e,0x0,0xc0,0x2,0x63,0x3,0x3c,0xfc,0xbd,0xfa,0x87,0x2, +0xfb,0x8,0x10,0xa,0x5d,0x9,0x5f,0xa,0x30,0xa,0xf9,0x6, +0xd4,0x6,0x7b,0x9,0x8f,0x9,0x1,0x8,0xe2,0x6,0xad,0x9, +0x27,0xe,0x29,0x8,0xa0,0xfc,0x9d,0xfd,0xa7,0x7,0x49,0xb, +0xa,0x9,0xab,0xd,0xb6,0x18,0x5d,0x18,0xf2,0xb,0x5,0x7, +0xec,0x8,0x7d,0x0,0xb9,0xf2,0xb2,0xf5,0xfe,0x5,0x66,0x8, +0xa8,0xfe,0x5a,0xff,0x59,0x4,0xac,0x2,0xbe,0x1,0xe5,0x0, +0xf6,0xfd,0x3b,0xfd,0x55,0xfb,0x0,0xf8,0xb8,0xf9,0x45,0xff, +0xba,0xff,0x9a,0xf9,0x2e,0xfa,0xa9,0x2,0xde,0x3,0xed,0x3, +0x11,0xc,0xab,0xc,0x3c,0x4,0x33,0x4,0x3e,0xb,0xa2,0xd, +0xcd,0xb,0xd5,0xb,0x99,0xc,0xaf,0xa,0xc1,0xa,0xf4,0xe, +0x39,0x11,0xf0,0xf,0x40,0xf,0x7d,0x13,0xb9,0x19,0x81,0x17, +0x89,0xe,0xbf,0x9,0xd2,0x8,0xfd,0x9,0xe3,0x10,0x6d,0x19, +0x54,0x1a,0x7f,0x12,0xf3,0xb,0xc4,0xb,0x70,0x8,0x4e,0x2, +0x21,0x7,0xfb,0x11,0x3f,0x14,0x10,0x11,0xae,0xe,0x41,0xc, +0x89,0xb,0x63,0xc,0xb9,0xb,0x45,0x9,0x83,0x5,0x50,0x3, +0x60,0x5,0x87,0x7,0x71,0x4,0xf3,0xfc,0x92,0xf8,0xd6,0xfb, +0x90,0xfe,0x86,0xfc,0x38,0xfd,0xa5,0xfe,0xfe,0xfb,0x2e,0xfe, +0xe1,0x5,0x9a,0x5,0x85,0xfe,0x19,0xff,0xb7,0x7,0xad,0xc, +0xbc,0x9,0x70,0x3,0xa8,0x0,0x29,0x4,0x3b,0x9,0x42,0xd, +0x84,0x10,0x61,0x10,0xd5,0xe,0xf3,0xd,0x44,0x9,0x3d,0x1, +0x66,0xfa,0xa8,0xf8,0xcf,0xff,0x0,0xa,0x58,0xd,0xc4,0x9, +0x87,0x6,0xb9,0x9,0x81,0xe,0x6a,0xf,0xf8,0x12,0x54,0x16, +0x9a,0x10,0x4,0xc,0x86,0xf,0x36,0xf,0x8e,0x8,0x10,0x9, +0xc8,0x13,0xa1,0x19,0x33,0x14,0xbe,0xd,0xc0,0x9,0xc9,0x5, +0x59,0x2,0x61,0xfc,0x7a,0xf5,0xa6,0xf3,0x23,0xf5,0xbb,0xf7, +0xf7,0xf9,0x60,0xf6,0xe9,0xed,0x21,0xea,0x49,0xf0,0x4f,0xf8, +0x62,0xf8,0xfd,0xf4,0x1a,0xf6,0x4b,0xfc,0x98,0x5,0x45,0xa, +0x1e,0x4,0x9d,0xfb,0x54,0xf9,0xa9,0xfb,0xe7,0x1,0x47,0x9, +0xee,0x7,0xf1,0xfe,0x8c,0xfd,0x4b,0x6,0x54,0xc,0x71,0xb, +0x54,0x9,0xbc,0x9,0x32,0xc,0xf4,0xb,0xc1,0x7,0x94,0x6, +0x6c,0xa,0xde,0xc,0x7d,0xd,0x8,0x11,0x2d,0x13,0x41,0xe, +0x24,0xb,0x11,0x12,0xb6,0x17,0x1c,0x10,0xe6,0x4,0x31,0x4, +0x42,0x8,0xeb,0x5,0xf4,0x1,0xe7,0x2,0x8c,0x3,0x8a,0x0, +0x81,0xff,0x6d,0x3,0x6f,0x4,0x14,0xfc,0xc5,0xf3,0xbd,0xf6, +0xe9,0xff,0x1b,0x2,0x74,0xfa,0xb6,0xf5,0x8d,0xf9,0x65,0xf8, +0x3e,0xf3,0x69,0xfa,0x5e,0x1,0xad,0xf4,0x72,0xe8,0xed,0xf1, +0x9b,0xfe,0x90,0xfc,0xef,0xf8,0x12,0xfd,0xf4,0xfb,0x84,0xf2, +0x3,0xf3,0xdb,0x1,0x4f,0x9,0x83,0x1,0x5,0x1,0x11,0x11, +0x76,0x1b,0x3c,0x15,0xc3,0xd,0x89,0xc,0xb0,0x9,0x54,0x5, +0x72,0x5,0x5,0x8,0x7f,0xb,0x35,0x11,0xc2,0x13,0xfd,0x10, +0xb3,0xd,0xe6,0x5,0xcd,0xf8,0xdb,0xf4,0x1b,0xf9,0xd0,0xf3, +0x1f,0xe9,0xa1,0xe7,0xda,0xec,0x2a,0xf6,0xa7,0x0,0xd6,0xfd, +0x95,0xef,0xb6,0xea,0x82,0xf1,0x2,0xf4,0x55,0xef,0x37,0xef, +0xc5,0xf5,0x57,0xfc,0x87,0x5,0x49,0x10,0xf2,0xe,0xe5,0xff, +0xfe,0xf3,0xc,0xf8,0x88,0x1,0x4d,0xfe,0xec,0xf8,0x6b,0x1, +0xfa,0x7,0xcb,0x3,0xc8,0x4,0xd4,0x9,0x89,0x5,0xf7,0xfd, +0x70,0xfe,0x47,0x1,0xab,0xff,0x7c,0xfe,0xc8,0xfd,0x47,0xfd, +0xc6,0x1,0xb8,0xff,0x64,0xf4,0xa1,0xf9,0xab,0xb,0x60,0x9, +0xd8,0xfa,0x59,0xfd,0xee,0x5,0x3e,0x2,0x25,0x2,0x30,0xa, +0xf6,0x4,0x21,0xf8,0x6c,0xf7,0x87,0xfd,0xe,0x2,0xa6,0x1, +0x47,0xf9,0x3a,0xf4,0x14,0xfa,0x96,0xfc,0xc6,0xf3,0xbc,0xf0, +0x90,0xfa,0x5f,0xfd,0xe8,0xf8,0x7a,0xfb,0xeb,0xf9,0xce,0xf5, +0xfc,0xfa,0xc8,0xf5,0x18,0xe6,0x3a,0xe5,0xda,0xea,0x31,0xeb, +0x6d,0xf4,0x83,0x5,0xe0,0x5,0xa1,0xf5,0xf5,0xf4,0x16,0x3, +0x4d,0x3,0x67,0xfc,0x9,0xf9,0xc9,0xf1,0xe8,0xf0,0xd4,0xfa, +0x0,0x2,0x98,0xff,0x23,0xf6,0xdc,0xf5,0x4d,0x3,0x76,0x7, +0x65,0xfc,0x2f,0xf6,0xb4,0xff,0x77,0x9,0x1e,0x4,0xe3,0x0, +0x83,0x6,0x4b,0x2,0x3b,0xfb,0xab,0xf7,0x48,0xef,0xca,0xeb, +0x5c,0xe7,0xc0,0xdd,0x6b,0xed,0x4e,0xd,0xd3,0xe,0x61,0xf5, +0xb9,0xe7,0xc4,0xeb,0xa1,0xe7,0x40,0xda,0xf3,0xd8,0x1c,0xdd, +0x64,0xde,0xf7,0xe5,0xa9,0xe8,0x50,0xe1,0xb1,0xe3,0xfd,0xed, +0xfb,0xf0,0x35,0xf2,0x7a,0xf8,0x9e,0xfb,0x8,0xfa,0x2,0x0, +0xf7,0xc,0x25,0x11,0xe6,0x7,0x1a,0xfa,0xfd,0xf2,0xde,0xf3, +0xab,0xf2,0xef,0xf0,0x3f,0xf7,0x60,0x1,0x4a,0x9,0xf0,0x9, +0x78,0x3,0xc8,0x4,0xcf,0xc,0x32,0x7,0x2a,0xf9,0x7d,0xf5, +0x31,0xf4,0x72,0xeb,0xe1,0xec,0xc7,0xfe,0x47,0x5,0x16,0xf8, +0xad,0xf3,0x33,0xfe,0x2a,0x2,0x2b,0xfe,0xaf,0xfa,0x56,0xf4, +0x38,0xf4,0x32,0x3,0x4,0x8,0x75,0xf6,0x34,0xef,0x28,0xf9, +0x19,0xf4,0x9e,0xe2,0xfe,0xde,0x7,0xe4,0x77,0xe5,0x8d,0xe8, +0x3f,0xee,0x22,0xf5,0xc1,0x0,0xf7,0x6,0xd1,0xfd,0xcb,0xf7, +0xd,0xff,0xe,0xfb,0xdd,0xea,0x7e,0xef,0x73,0x1,0x74,0xfb, +0xa4,0xe9,0xd1,0xee,0x79,0xfe,0x5c,0x1,0xdd,0x2,0x16,0x5, +0x3f,0xfb,0x28,0xf8,0x28,0x9,0x33,0x12,0x4f,0x9,0xc6,0x4, +0x5f,0x9,0xd5,0xd,0x8,0x12,0x1b,0x16,0xcc,0x13,0xd0,0xc, +0x1,0x11,0xe1,0x1d,0x82,0x1d,0x95,0x19,0x4d,0x23,0xa3,0x24, +0x39,0x16,0xbe,0x11,0xd4,0x15,0x24,0x11,0x57,0xa,0x4b,0x8, +0x1b,0x3,0xbd,0xfa,0x29,0xf6,0x52,0xf3,0x2f,0xf3,0x6f,0xfb, +0x57,0x0,0xfe,0xf7,0x92,0xf2,0xa2,0xf9,0x0,0xff,0x8b,0xf9, +0xa2,0xf1,0x2b,0xf2,0xb1,0xfa,0xdc,0x1,0x8a,0xfe,0xe6,0xf2, +0x1b,0xf0,0xfe,0xf6,0x4c,0xf5,0x7b,0xf3,0xac,0xfc,0x7b,0xfd, +0x81,0xf8,0xcc,0x2,0x13,0x10,0x22,0x11,0xb0,0xd,0x85,0xc, +0x97,0xe,0x9c,0x10,0xfd,0xf,0x20,0x11,0x40,0x13,0xfa,0x12, +0xf4,0x13,0x78,0x18,0x86,0x1e,0x14,0x21,0x82,0x1d,0xe7,0x1b, +0xc8,0x1e,0xda,0x1b,0x79,0x15,0x6,0x18,0x55,0x1d,0x14,0x18, +0x58,0xe,0x37,0xa,0x51,0x7,0x2b,0x3,0xa5,0x1,0x44,0xff, +0x47,0xfa,0x5,0xfa,0xce,0x0,0xb5,0x8,0x23,0xc,0xf,0xb, +0xe,0xb,0xb1,0xd,0x61,0xd,0x7,0x9,0x23,0x5,0x2a,0x0, +0x96,0xf6,0x7c,0xf1,0xf3,0xf7,0xc3,0xfa,0x87,0xf3,0xda,0xf5, +0x27,0x0,0x29,0xfe,0xc3,0xfa,0x41,0x1,0x1b,0xfe,0xdd,0xf2, +0x29,0xf6,0x25,0xfc,0x34,0xf4,0xae,0xf2,0xd4,0xfc,0xe3,0xf7, +0x6f,0xeb,0x2d,0xf5,0xaf,0x4,0x9e,0x0,0x9f,0xfb,0x87,0x4, +0x25,0xc,0xa4,0xd,0x34,0x13,0xc,0x1e,0xbb,0x25,0x1b,0x22, +0x70,0x15,0x83,0xd,0x91,0x10,0xf,0x11,0xea,0x5,0x47,0x0, +0xd4,0xa,0x9a,0x11,0xd6,0xc,0xd4,0xf,0x60,0x1b,0x9d,0x1e, +0xff,0x1b,0xc,0x1d,0x82,0x1b,0xe4,0x12,0xbb,0xc,0xed,0x9, +0x93,0xff,0x9d,0xf4,0xd7,0xf6,0x89,0xfb,0xa1,0xf8,0x42,0xf8, +0x61,0xfb,0x97,0xf7,0x2b,0xf0,0x78,0xf2,0xc3,0xfd,0x26,0x0, +0xd9,0xf5,0xc2,0xee,0xec,0xed,0xd5,0xed,0xac,0xf0,0x29,0xf2, +0xb2,0xed,0xf6,0xea,0xf,0xf0,0xf0,0xf8,0x9c,0xff,0xec,0x5, +0x6b,0xa,0xfd,0x3,0xa6,0xfe,0xa5,0x8,0x82,0xe,0xe3,0x7, +0x24,0x8,0xae,0xd,0xb8,0xa,0x85,0x5,0xb,0xa,0x2b,0x13, +0x11,0x11,0x26,0x7,0x1,0x7,0x4a,0xf,0x6,0x14,0xcc,0x12, +0xd7,0x12,0xd1,0x19,0x54,0x1c,0x55,0x14,0xb9,0x11,0x18,0x16, +0xcd,0x12,0x86,0x6,0x37,0xfb,0x0,0xfc,0x4e,0x4,0x81,0x3, +0xca,0x0,0xf0,0x8,0xeb,0xb,0x56,0x1,0x37,0xfc,0x8f,0xff, +0xd8,0xf9,0xc0,0xef,0xfc,0xee,0x61,0xea,0xf2,0xde,0xf6,0xe3, +0xb1,0xf2,0x58,0xf3,0x91,0xf2,0xa6,0xfc,0x4,0x1,0x2f,0x1, +0x1f,0xe,0x6d,0x19,0xb5,0x11,0x98,0xb,0x6a,0x14,0xbb,0x16, +0xc,0xe,0xfa,0xc,0xad,0xd,0x0,0x2,0x9d,0xf9,0xd0,0x2, +0x5,0xd,0x14,0xa,0xc,0x4,0x9c,0x6,0xe5,0xf,0xb4,0x17, +0x44,0x1a,0x4e,0x18,0x4c,0x12,0xc0,0xc,0x2e,0xa,0xed,0x4, +0xe,0xff,0x40,0xfd,0x2c,0xfa,0x35,0xf8,0xc0,0xfe,0xf4,0x8, +0x38,0xf,0x1c,0xe,0xab,0x8,0x35,0x7,0x17,0x9,0x9e,0x8, +0x67,0x5,0xa9,0xff,0xcc,0xf5,0xa3,0xe6,0xc1,0xda,0xf9,0xdd, +0x20,0xe5,0x32,0xe0,0xa2,0xda,0x1a,0xe1,0xc8,0xe8,0x65,0xeb, +0xa0,0xf5,0xd1,0x3,0x98,0xff,0x7b,0xf2,0x67,0xf3,0x58,0xf2, +0x4b,0xe5,0x73,0xe2,0x8,0xe5,0x52,0xda,0xe,0xd5,0x97,0xe1, +0x43,0xe6,0x3b,0xdf,0x9,0xe7,0x86,0xf5,0xbf,0xf1,0x75,0xeb, +0x5b,0xf3,0x65,0xfc,0xa6,0x3,0xee,0x8,0x51,0x0,0xf,0xf5, +0x6d,0xf7,0x3f,0xf9,0x48,0xf6,0xd9,0xff,0x4d,0xb,0xe3,0x6, +0x2a,0x8,0x14,0x1b,0x2b,0x23,0xf7,0x1b,0x76,0x1e,0x9b,0x21, +0xa,0x13,0x30,0xa,0x2e,0x13,0xdc,0xd,0x42,0xf5,0xf8,0xea, +0x86,0xef,0x36,0xe9,0x1,0xdb,0x17,0xd9,0xd3,0xe0,0x99,0xdd, +0x0,0xd3,0x79,0xd6,0xde,0xdd,0x96,0xd9,0xf5,0xda,0xb8,0xe6, +0x9b,0xea,0xff,0xe6,0x37,0xe5,0x3,0xe1,0xa2,0xd6,0x43,0xd2, +0xb2,0xda,0xe4,0xdb,0x9e,0xd1,0x90,0xd6,0x90,0xe8,0x2a,0xf3, +0x33,0x0,0x66,0x11,0xd1,0xe,0xfa,0xff,0x9e,0x2,0x8f,0x7, +0xc2,0xf6,0xed,0xef,0x9f,0xff,0x79,0xfc,0x16,0xf0,0xfa,0xff, +0x97,0xd,0xaa,0x1,0xbf,0x1,0x5c,0x13,0xf7,0x11,0x62,0x5, +0xcc,0xb,0xbc,0xf,0xd8,0x3,0x44,0xc,0x59,0x19,0x8,0x4, +0xdc,0xf7,0xd4,0x7,0xb9,0xfc,0x3d,0xe3,0x5a,0xeb,0xb0,0xf3, +0xc2,0xe3,0x2b,0xea,0xad,0x7,0xd5,0x5,0xfa,0xf7,0x1b,0xd, +0x98,0x17,0x1,0xf9,0xca,0xed,0xfb,0xfb,0x98,0xed,0x1e,0xd8, +0x9d,0xe5,0x47,0xf4,0x6a,0xec,0x32,0xf3,0xce,0x6,0x3e,0x0, +0x3b,0xf7,0xb4,0x4,0xad,0x1,0xd1,0xef,0xbe,0xf7,0x41,0x1, +0x2d,0xef,0x59,0xe6,0xb7,0xfc,0x45,0xb,0xca,0xfb,0xa,0xf0, +0xa2,0xf8,0x99,0xfb,0x4d,0xf6,0xee,0xfb,0x10,0x8,0x58,0xe, +0x71,0x10,0xda,0x14,0xf2,0x17,0xa9,0x14,0xe7,0x14,0xb1,0x15, +0x39,0x9,0x4f,0x1,0x70,0x8,0xca,0x7,0x7b,0x5,0x5e,0x17, +0x9a,0x25,0x67,0x19,0xf9,0x13,0xbe,0x26,0x69,0x24,0x6f,0x9, +0x67,0xc,0x80,0x1a,0xad,0x5,0x32,0xfa,0xa8,0x10,0xcc,0x12, +0xff,0xfe,0xbe,0x1,0x4f,0xb,0x72,0x0,0x5,0xfa,0x91,0x0, +0x35,0xfa,0x6e,0xf7,0xac,0xd,0x54,0x14,0xe5,0x2,0x57,0xa, +0xf,0x1a,0x2d,0x5,0x7b,0xf1,0x52,0xff,0x9,0x2,0x4b,0xf0, +0x51,0xfa,0x2e,0x11,0xed,0x7,0x81,0x4,0x9,0x22,0xae,0x26, +0xba,0xd,0x4b,0xf,0x48,0x1a,0x20,0xb,0x53,0x1,0x7c,0xc, +0x4d,0xc,0xd2,0xff,0x79,0x4,0x8e,0x11,0x2,0xf,0xab,0xc, +0x90,0x12,0x4e,0xa,0x9c,0xfe,0xcd,0x3,0xf,0x9,0x71,0x8, +0x1,0xc,0x25,0xa,0xee,0xfc,0x76,0xf1,0x23,0xf3,0x9b,0xf9, +0x14,0xf4,0xe7,0xe8,0xac,0xe3,0xfd,0xde,0x57,0xe1,0x11,0xf3, +0xfc,0x1,0xc0,0xfd,0x3,0xf2,0xa1,0xf3,0xfc,0xfc,0x98,0xf9, +0x14,0xf3,0x6b,0xf6,0x7e,0xf5,0xbc,0xf0,0x18,0xf6,0x37,0xff, +0xb7,0x1,0x55,0x0,0x27,0x3,0x2e,0x8,0xdf,0x5,0xb2,0x1, +0x1,0x6,0xc3,0xf,0x76,0x13,0xba,0x5,0x86,0xf5,0x6,0xfe, +0xa,0x11,0x46,0x13,0x42,0xc,0xa1,0xa,0x5,0x9,0xed,0x0, +0xfb,0x3,0xd4,0x1a,0x6e,0x20,0x3,0x9,0x7e,0xff,0xa4,0xb, +0x3b,0x10,0x25,0xc,0xf1,0xa,0xeb,0x8,0x2a,0xfe,0x72,0xf1, +0x43,0xf1,0xd5,0xf6,0x35,0xf9,0xa8,0x1,0x9c,0x8,0x40,0x0, +0x38,0xf9,0x82,0x0,0x5d,0x6,0xc5,0x3,0xb2,0x3,0xeb,0xff, +0x27,0xef,0xa,0xeb,0x7d,0x2,0x6d,0x13,0x76,0xc,0x73,0x7, +0x64,0xc,0xaa,0x7,0x17,0xfa,0x34,0xf9,0xce,0x2,0x5b,0x0, +0x54,0xf2,0xa7,0xeb,0x23,0xf5,0x2d,0x7,0x7e,0xd,0x64,0x6, +0x4e,0x8,0x83,0xc,0xb6,0xfe,0xfa,0xf6,0x55,0xb,0x2b,0x1e, +0x67,0x16,0x86,0x9,0x40,0x10,0x7f,0x1c,0x83,0x18,0x62,0x12, +0x19,0x19,0xbf,0x18,0x4c,0xa,0xa6,0x4,0x24,0x8,0x49,0x4, +0xb,0x2,0xd3,0xa,0x94,0xd,0x89,0x3,0xad,0xff,0x86,0x7, +0x98,0xd,0x29,0xe,0x38,0x8,0x46,0xfa,0x87,0xf3,0xf4,0xfa, +0x31,0x1,0x30,0x4,0x0,0xb,0xca,0xa,0x64,0x0,0xd4,0x0, +0x97,0xe,0xeb,0xb,0x19,0xf5,0xc2,0xe8,0xe3,0xe7,0x55,0xe2, +0x5,0xe3,0x0,0xea,0xc0,0xe6,0x6a,0xe3,0xf7,0xec,0x49,0xf5, +0x9a,0xf0,0x4c,0xeb,0x41,0xef,0xcb,0xee,0x6b,0xe9,0x9d,0xf2, +0xd2,0xfe,0xc3,0xf9,0x22,0xf5,0x2a,0xff,0x70,0x5,0x77,0xfc, +0x30,0xf8,0x9d,0x5,0xa8,0x9,0x2f,0xf6,0x10,0xe9,0x9,0xee, +0x5f,0xf1,0x4e,0xee,0x3,0xf4,0x20,0x5,0x4b,0x2,0x22,0xdf, +0x50,0xcd,0xe0,0xe6,0xbc,0xfe,0x51,0xf4,0xd2,0xe0,0xc6,0xe4, +0x5f,0xf0,0x2b,0xe8,0x28,0xe8,0xf2,0x3,0xbc,0xf,0xeb,0xfd, +0x8a,0xf7,0x48,0x2,0xda,0xff,0x70,0xf3,0x54,0xf7,0x79,0xff, +0xab,0xf1,0x67,0xde,0x1a,0xd8,0x6,0xd5,0xa6,0xd8,0xac,0xe8, +0x84,0xf1,0x4d,0xe6,0xbd,0xd8,0xc8,0xe1,0x27,0xfa,0xd9,0x3, +0x18,0xfc,0xe8,0xf4,0xac,0xf1,0x55,0xef,0x80,0xf1,0x21,0xf8, +0x78,0xf7,0x9c,0xed,0xcb,0xef,0x39,0xff,0xed,0x0,0x3f,0xf5, +0x65,0xf3,0x6f,0xfe,0x2,0x9,0xf2,0x7,0x93,0xfe,0xab,0xf8, +0xec,0xf4,0xcf,0xf1,0x23,0xf9,0xf6,0x2,0x0,0xfa,0x0,0xe9, +0x44,0xef,0xf2,0x4,0x8a,0x7,0x45,0xfd,0x4b,0x2,0xcf,0xc, +0x28,0xc,0x19,0xe,0x82,0x15,0xcb,0xf,0x23,0x2,0x26,0x4, +0xfd,0x12,0x67,0x14,0x3d,0x1,0x52,0xf1,0xc5,0xf4,0x51,0xfd, +0xce,0xff,0xf,0x3,0x5,0x4,0xbc,0xfc,0x76,0xfa,0xdd,0x5, +0xb2,0xf,0x8,0x9,0x80,0xfb,0x78,0xfa,0x35,0x3,0x73,0x6, +0x1f,0x5,0xa5,0x3,0xbd,0xfe,0xa3,0xfb,0x98,0x0,0x42,0x7, +0xfe,0x7,0x1,0x2,0x33,0xfd,0x15,0x4,0x22,0xf,0xdf,0xd, +0x77,0x6,0x4d,0x6,0xe3,0x5,0x1,0x2,0xe3,0x6,0x78,0xc, +0x28,0x3,0x51,0xfe,0xda,0xf,0xb2,0x1b,0x5b,0xd,0x3d,0x3, +0x57,0x10,0xdc,0x18,0x3c,0x13,0xaf,0x15,0x3e,0x18,0x8a,0x9, +0xd3,0x0,0x32,0xc,0xdb,0x14,0x30,0x13,0xd1,0xf,0xe1,0x8, +0x20,0x4,0xa0,0xb,0xc0,0x15,0xe8,0x13,0xe3,0xa,0x6f,0xb, +0xdd,0x14,0xd8,0x15,0x69,0x10,0xdc,0x11,0xb,0x14,0x88,0x11, +0xba,0xf,0xf7,0xc,0xcd,0xa,0x8a,0xc,0x11,0xa,0x16,0x6, +0xc,0xd,0xc0,0x14,0xbd,0xd,0x58,0x6,0x8a,0xe,0xc8,0x13, +0x15,0x7,0xf4,0xfe,0x35,0x8,0xae,0xd,0xd9,0x6,0x3c,0x3, +0xda,0x6,0x5,0x6,0x46,0xff,0x14,0xff,0x91,0x7,0xa0,0xc, +0xd3,0x8,0xa8,0x1,0x2a,0x0,0x78,0x7,0x27,0xd,0xb9,0xa, +0x8d,0x8,0x8a,0xb,0xc8,0xd,0x6f,0x9,0x52,0x5,0xd0,0xc, +0xd8,0x14,0x1d,0x10,0xbc,0xf,0x77,0x1c,0x10,0x21,0x39,0x18, +0x25,0x13,0x3c,0x15,0x2a,0x14,0x2c,0xf,0x61,0xe,0x9b,0x11, +0xad,0x12,0xe9,0x11,0xa,0x12,0xff,0x12,0xcd,0x11,0xda,0xa, +0xfe,0x2,0x8d,0x0,0x1c,0x0,0xbf,0xfe,0xd2,0xfe,0x6d,0x4, +0xec,0xf,0xfb,0x14,0x8d,0xe,0xd4,0xa,0x6,0xc,0x28,0xa, +0x0,0xa,0x56,0xb,0x6,0x7,0xb6,0x2,0xf,0x5,0x8d,0x9, +0xe3,0xa,0xf7,0x9,0xbd,0x5,0x1f,0xf9,0x84,0xed,0x72,0xf1, +0xb4,0xf9,0x26,0xf8,0x23,0xf6,0x3f,0xfa,0xba,0xff,0x78,0x5, +0xb8,0x8,0xbd,0x6,0xdd,0x4,0x8c,0x3,0x3a,0xfb,0xc1,0xf1, +0xa,0xf5,0x60,0xff,0xbc,0x6,0x69,0x11,0xe7,0x1c,0x93,0x1b, +0x2f,0x11,0xd3,0xa,0x46,0x8,0xb7,0x2,0xbd,0xfd,0x89,0xff, +0xb5,0x2,0x3c,0x6,0x64,0xe,0x55,0x12,0xda,0x10,0xb0,0x13, +0x24,0x13,0x57,0x8,0xc5,0xfc,0x3e,0xf5,0x4e,0xf2,0xa6,0xf5, +0xb5,0xfc,0x15,0x3,0xb3,0x4,0x59,0x1,0x56,0xfd,0xc1,0xfd, +0x7d,0x1,0x8d,0xfb,0xb5,0xeb,0x3c,0xe6,0x3d,0xea,0x80,0xe7, +0x8f,0xe6,0xf0,0xf2,0x84,0xff,0xa7,0xfe,0xab,0xf7,0x6e,0xf5, +0xf7,0xf3,0xed,0xee,0x7c,0xeb,0x97,0xed,0x1d,0xf4,0x53,0xf9, +0x9d,0xfd,0x1,0x9,0x9a,0x13,0x20,0x10,0x79,0x2,0x48,0xf3, +0x7e,0xec,0xfe,0xef,0xc7,0xee,0x56,0xea,0xb4,0xf1,0xe,0xfc, +0xf3,0xfb,0xea,0xfa,0x89,0x3,0x91,0x8,0x57,0xfc,0xf9,0xf0, +0x8b,0xf6,0xd2,0xfc,0x46,0xfa,0x9c,0xf8,0x60,0xfa,0x6b,0xfb, +0xcf,0xf7,0x61,0xf0,0xf6,0xed,0x83,0xf1,0x40,0xef,0xad,0xe5, +0x3d,0xe5,0x26,0xf2,0xc0,0xf9,0x1f,0xf7,0x40,0xf8,0xad,0xfd, +0xc1,0xfd,0x14,0xf7,0x45,0xef,0x94,0xe9,0xf7,0xe1,0x35,0xdc, +0x3e,0xe3,0xcd,0xef,0x68,0xf5,0x8f,0xf8,0x34,0xfd,0xb5,0xff, +0xd7,0x1,0x9c,0x6,0x17,0x8,0xcb,0xff,0x2d,0xf6,0x33,0xf7, +0xd0,0xfa,0x77,0xf3,0x63,0xea,0x80,0xef,0x7f,0xf9,0x86,0xf6, +0xed,0xec,0x75,0xeb,0xe1,0xef,0xb2,0xf1,0xd6,0xf1,0xb2,0xf8, +0x68,0x4,0xeb,0x5,0xc6,0x0,0x2d,0x8,0x61,0x13,0x31,0xb, +0x58,0xf6,0x8e,0xea,0x5c,0xe9,0x9f,0xe9,0x67,0xed,0x6d,0xf7, +0xf6,0xff,0xfe,0x1,0x98,0xfe,0xeb,0xf9,0xbd,0xfb,0xa,0xfe, +0x81,0xf3,0x2,0xe9,0x1e,0xee,0xd2,0xf1,0x0,0xe9,0x15,0xe5, +0x0,0xe9,0x98,0xe5,0x87,0xdf,0xcd,0xe1,0x2f,0xe4,0x66,0xe3, +0x83,0xe8,0xad,0xef,0x1d,0xf5,0x3e,0x0,0xe,0x6,0xc4,0xfa, +0x92,0xf4,0x89,0xfd,0xd0,0xfd,0x39,0xf4,0x66,0xf3,0x99,0xf5, +0xbc,0xf2,0x70,0xf6,0x9,0x4,0x4f,0xd,0x4f,0xd,0x48,0xf, +0xe2,0x13,0xb1,0x10,0x9b,0xa,0xde,0x7,0x73,0x0,0x78,0xf8, +0xc,0xfb,0x68,0xfc,0x12,0xf1,0x49,0xe9,0x40,0xf1,0xf5,0xf9, +0x22,0xfa,0xbd,0xfa,0x85,0xf9,0xc3,0xef,0xeb,0xea,0x4c,0xf6, +0xf6,0x3,0xe9,0x2,0xad,0xf7,0x80,0xee,0xda,0xe7,0x64,0xe5, +0xbf,0xea,0xb7,0xec,0x5e,0xe7,0x9,0xe9,0x4c,0xf2,0xc9,0xf6, +0x7d,0xf5,0x8d,0xf7,0xa8,0x2,0x58,0xd,0x7b,0xc,0x30,0x6, +0x3b,0x1,0x96,0xfd,0x9b,0xfe,0x54,0x1,0xe7,0xff,0x60,0xfd, +0x91,0xfb,0x1b,0xfd,0x8b,0x8,0x43,0x15,0xf5,0x12,0x71,0x7, +0xfd,0x3,0xc8,0x6,0xce,0x6,0x64,0x9,0x75,0xd,0x5b,0x6, +0x3a,0xfd,0xd3,0x1,0xc,0x4,0x45,0xf5,0x37,0xea,0xdd,0xf0, +0x8b,0xf7,0x95,0xf4,0xc5,0xf5,0x74,0xff,0xf8,0x6,0x78,0xc, +0xa8,0x12,0x14,0xe,0x1f,0xff,0x89,0xf7,0x6c,0xf8,0xd8,0xf9, +0x2d,0x0,0xe,0x7,0xe,0x2,0xa1,0xf9,0x82,0xfe,0xe,0xb, +0x80,0xc,0xa6,0x3,0xa5,0x1,0x99,0x4,0x99,0xff,0xcc,0xfb, +0xaa,0x3,0x3a,0xa,0xbc,0x7,0x70,0x8,0x9e,0xd,0x9e,0x6, +0x4b,0xf5,0xc1,0xef,0x63,0xf6,0x13,0xf7,0x45,0xf2,0xe1,0xf4, +0xa2,0xfe,0x77,0x5,0xba,0x8,0x76,0xf,0xce,0x14,0x10,0x11, +0x41,0xa,0x1d,0x4,0x3e,0xfc,0x3c,0xf6,0x5e,0xf7,0x84,0x1, +0x72,0xd,0xcd,0x11,0xb8,0x11,0x19,0xc,0x94,0xff,0xa4,0xff, +0xde,0xf,0xed,0x18,0xf0,0x16,0x97,0x13,0xea,0xb,0x5e,0x0, +0xfb,0xfc,0x67,0x8,0xbc,0x14,0x61,0xe,0x2c,0xfd,0x39,0xf7, +0xe3,0xf9,0xfa,0xf7,0xc5,0xf9,0x3d,0x4,0xf5,0x1,0x75,0xf2, +0xa6,0xf6,0x3a,0xc,0x29,0x10,0xce,0x4,0x86,0x0,0xe1,0xfa, +0x58,0xec,0x3c,0xec,0xb8,0xfe,0x41,0x3,0x91,0xf6,0x9f,0xf5, +0xf8,0xfe,0xcf,0x3,0x37,0xa,0x4d,0x10,0x17,0xb,0x19,0x0, +0xa4,0xfc,0xb8,0x5,0x2e,0x13,0x60,0x18,0x6,0x15,0xc1,0x11, +0x7f,0x10,0x9f,0xd,0x56,0xc,0xb1,0x11,0x68,0x15,0xf0,0xe, +0xc3,0x8,0x79,0xe,0x3,0x18,0xa5,0x1b,0xb5,0x1f,0x86,0x22, +0xa2,0x15,0x62,0x6,0x5d,0xd,0xa3,0x1b,0xd9,0x19,0x83,0xe, +0xaf,0x1,0xd1,0xf2,0x2b,0xef,0x76,0x2,0xd8,0x16,0x38,0x12, +0x59,0x3,0xd4,0xfe,0xeb,0xfc,0x80,0xfc,0x86,0x5,0x4a,0xc, +0x33,0x6,0x20,0x0,0xd6,0x5,0x3a,0xc,0x9b,0x8,0x50,0x4, +0x56,0x4,0xdc,0x2,0x8b,0x3,0xcb,0xb,0xd8,0x14,0xad,0x12, +0xe8,0x6,0x70,0x3,0x2e,0xb,0xe0,0x10,0xc4,0x13,0x68,0x15, +0xfc,0x10,0x9d,0x7,0x36,0xff,0x72,0x1,0x1f,0xd,0x3f,0xf, +0x10,0x4,0x7b,0xfa,0xb6,0xf8,0xa9,0xff,0xd3,0xf,0x91,0x1c, +0x63,0x14,0x57,0xff,0xf7,0xf9,0x90,0x7,0xd0,0x13,0x95,0x1a, +0x60,0x1e,0x33,0x15,0x14,0x3,0x6,0x1,0xe,0xf,0x31,0x10, +0xb0,0x6,0x75,0x8,0xb4,0x7,0x97,0xfb,0x7c,0xfb,0x3a,0x6, +0x87,0x7,0x89,0x6,0xe5,0xc,0x4e,0x8,0x4e,0xf3,0xff,0xf0, +0xd0,0xa,0x44,0x15,0xa9,0x4,0x6a,0xf8,0xe7,0xf5,0x39,0xf5, +0x4,0xfc,0x9,0x5,0xee,0x6,0xcb,0x5,0xe8,0x4,0x3f,0x8, +0x12,0x18,0x44,0x21,0x23,0x9,0x74,0xf2,0x5,0x6,0x34,0x19, +0xa5,0x6,0x63,0xf5,0xe0,0xf8,0x15,0xf7,0xfe,0xf2,0x3b,0xfc, +0x63,0xff,0x88,0xf0,0xe0,0xe9,0x7b,0xf4,0xee,0xfb,0xb1,0x2, +0xcf,0xe,0x6f,0xc,0x8a,0xff,0x2f,0x1,0x70,0x6,0xa8,0xf9, +0x90,0xe8,0xd5,0xeb,0xa7,0x2,0x28,0x10,0x98,0xfe,0x61,0xeb, +0x91,0xfb,0xdd,0xe,0xf5,0x0,0x81,0xf5,0x3c,0xfc,0xc0,0xf1, +0x38,0xe4,0x86,0xf4,0x4f,0x6,0x38,0xff,0x7d,0xef,0x99,0xe2, +0xf0,0xdd,0x3f,0xe9,0x5d,0xf3,0xc9,0xec,0x45,0xf2,0x71,0xf, +0x77,0x15,0x97,0x3,0x42,0x13,0x9e,0x2c,0x34,0x17,0x4e,0x2, +0xb6,0x11,0x87,0xd,0xd6,0xf6,0xd1,0x0,0xf,0x10,0x2c,0x5, +0xee,0xfd,0x99,0xfe,0xae,0xfb,0x9e,0x9,0x3,0x1c,0x9a,0xe, +0x67,0xfd,0x5f,0xe,0x30,0x1c,0x27,0x8,0x70,0xfb,0x3d,0x7, +0x8e,0x2,0x25,0xea,0xdb,0xe2,0x2f,0xee,0xb4,0xf9,0xd1,0xff, +0x38,0xfc,0x85,0xf9,0x39,0x4,0xcf,0x6,0xbd,0xf9,0xe8,0xf8, +0x41,0xfd,0x1e,0xef,0x17,0xe3,0x52,0xe4,0x25,0xe0,0xfc,0xdf, +0xa2,0xe9,0xad,0xe2,0x90,0xd8,0x8b,0xec,0x49,0xfc,0xea,0xe9, +0xa5,0xe4,0xee,0xf7,0x9d,0xef,0x39,0xd9,0x2d,0xe5,0x95,0xf5, +0x20,0xed,0x96,0xf3,0x3a,0xa,0xe0,0x0,0xb,0xed,0x33,0xfb, +0x2,0x7,0x8d,0xf9,0x8,0xfb,0x8,0x7,0x9f,0x6,0x8c,0x12, +0x70,0x22,0x79,0x17,0x13,0x10,0x2c,0x1e,0xaa,0x1a,0xe2,0x7, +0xec,0xc,0x30,0x16,0x39,0x2,0x49,0xef,0x97,0xf7,0xa5,0x2, +0x35,0x2,0x38,0xfe,0x32,0xf9,0x0,0xf8,0x92,0xfd,0xcd,0xfd, +0xec,0xee,0xd2,0xe1,0x50,0xe7,0x30,0xeb,0x34,0xe1,0x36,0xde, +0x9f,0xe7,0x39,0xf2,0x2d,0xf0,0x33,0xdf,0xa1,0xdf,0xf2,0xef, +0x95,0xe9,0x80,0xe3,0xea,0xf3,0x72,0xf5,0x6f,0xe8,0x28,0xeb, +0x33,0xf4,0xa4,0xf5,0xc2,0xf5,0xc7,0xf1,0xc4,0xde,0xd0,0xd0, +0xff,0xde,0xf6,0xe7,0x8a,0xda,0x91,0xdc,0x54,0xea,0xe8,0xec, +0x4c,0xf8,0x57,0x7,0xad,0xfd,0x27,0xf2,0x72,0x1,0x46,0x9, +0xc6,0xf2,0x3,0xf1,0xa9,0xb,0x74,0x5,0x58,0xf1,0x67,0x2, +0xd4,0x10,0xd6,0x1,0x2,0xfd,0x74,0x8,0x1d,0x9,0x36,0x7, +0xfd,0x18,0x92,0x26,0xa3,0x17,0x1f,0x11,0xab,0x1e,0x84,0x15, +0xd8,0x2,0x2f,0xe,0xa0,0x19,0x56,0x4,0x20,0xf0,0x49,0xfc, +0xd8,0xb,0xfc,0x7,0x44,0x8,0x6c,0xb,0xa6,0xfd,0xda,0xf7, +0x86,0x4,0x92,0xff,0xa9,0xe9,0xf6,0xe8,0x18,0xf5,0xde,0xe8, +0xd3,0xda,0x51,0xf0,0x9a,0xfd,0x21,0xe4,0x6e,0xdc,0x3b,0xf0, +0x1f,0xee,0x96,0xe4,0x42,0xef,0x26,0xf5,0x3f,0xf2,0xa3,0xfc, +0x71,0x7,0x43,0x0,0x58,0xfd,0x86,0xb,0x6a,0x8,0x7b,0xf2, +0xc4,0xf7,0x7b,0xa,0x1c,0x2,0xd0,0xf9,0x3d,0x2,0x59,0x0, +0x9c,0xff,0x2c,0xe,0x16,0x10,0x7d,0x3,0x57,0x4,0x79,0xe, +0xa8,0xc,0x1c,0x7,0x63,0xc,0xfa,0xc,0xbc,0x1,0x34,0x2, +0x79,0xf,0x1e,0x11,0xf1,0x6,0x98,0x3,0xd,0xa,0x85,0xc, +0x72,0x9,0x68,0xe,0x69,0x13,0xe0,0x7,0x2b,0xfc,0x6d,0x0, +0x5d,0x1,0x2e,0xf5,0xfc,0xf4,0xdc,0x3,0x8,0x0,0xb,0xef, +0x4,0xf7,0xfa,0x9,0x5a,0x9,0xbf,0x3,0x47,0x4,0x45,0x0, +0xd6,0xfb,0xab,0xfd,0x8a,0xff,0x80,0xff,0xb3,0x1,0x13,0x2, +0x2b,0xfc,0x7c,0xfa,0xad,0x1,0xf9,0x4,0x18,0x2,0xb9,0xff, +0xda,0xfd,0x27,0xff,0x3e,0x3,0xf0,0x6,0xa5,0xe,0x71,0x12, +0xdc,0x5,0xe9,0xf9,0xff,0x0,0x40,0x8,0x56,0xfc,0x9f,0xf2, +0xe2,0xfd,0x93,0x5,0x5f,0x0,0xbc,0xa,0xe2,0x1a,0xb9,0xf, +0x7f,0xfe,0xb5,0x2,0x99,0x6,0xa5,0xfb,0x8f,0xf5,0xfc,0xfb, +0x6c,0xfe,0x13,0xfa,0xd1,0x0,0xe8,0xf,0xc8,0x11,0xdd,0x8, +0x6a,0x3,0x58,0x1,0x1a,0x1,0xea,0x3,0x23,0xb,0x21,0x14, +0xb7,0x12,0x91,0xa,0x37,0xd,0x39,0x12,0xe8,0xb,0xbf,0x6, +0x77,0x8,0x5d,0x5,0xb5,0xff,0xad,0x2,0xdb,0x9,0x2e,0xd, +0xf1,0xf,0x3c,0xf,0x85,0x4,0xbe,0xfe,0x4a,0x8,0xff,0xc, +0xf6,0x4,0xc7,0x1,0xff,0x2,0x14,0xff,0x91,0x1,0xbc,0xd, +0x66,0x11,0xa0,0x8,0xfe,0xff,0x60,0xfe,0x90,0x3,0x6d,0x6, +0xbb,0xfd,0xb6,0xf3,0xb,0xf5,0x5d,0xfa,0x62,0xfb,0x4d,0xfd, +0x9a,0x0,0xcc,0xfd,0xa6,0xf9,0x69,0xfd,0xb,0x0,0xc9,0xf8, +0x8a,0xf3,0x70,0xf8,0xba,0xfe,0xce,0x0,0x10,0x1,0x7e,0x0, +0x6d,0xff,0x60,0xfe,0xa1,0xfc,0x8,0xfa,0xbf,0xf5,0x1,0xf2, +0xaa,0xf6,0x9e,0x0,0xa5,0x2,0xc4,0xfd,0xd,0xfa,0xc7,0xf8, +0x4d,0xfd,0x21,0x4,0x52,0x1,0x3e,0xf9,0xb6,0xfa,0x19,0x4, +0xf9,0x6,0xd7,0x2,0xd7,0x5,0xf,0xc,0x7a,0x5,0x17,0xfa, +0xa2,0xf8,0x5a,0xfc,0xb0,0xfe,0xa5,0x2,0x98,0xa,0x4b,0x10, +0x15,0xf,0xc0,0xe,0xff,0x10,0x19,0xe,0xb4,0x7,0x14,0xff, +0x94,0xf4,0x4,0xf4,0xb2,0xfe,0xd6,0x3,0xda,0xfb,0x6a,0xf3, +0x2c,0xf7,0xe1,0xfc,0xb6,0xf7,0x6a,0xf2,0xed,0xf4,0xa5,0xf7, +0x54,0xf8,0xcb,0xf8,0xa2,0xfb,0x85,0x0,0xaf,0xfc,0x2,0xf2, +0xcc,0xef,0xb2,0xf0,0x73,0xe9,0x14,0xe5,0xd7,0xeb,0x56,0xf2, +0xac,0xf3,0xbe,0xf9,0x6b,0x4,0x8c,0x7,0xe8,0x2,0xde,0xff, +0xe5,0xfe,0x38,0xfd,0xfb,0xfe,0x2f,0x5,0xab,0x7,0x65,0x3, +0x10,0xff,0xe7,0xfe,0x6a,0x5,0x31,0x11,0x6a,0x13,0x55,0x6, +0x61,0xfb,0x2a,0xfd,0x1e,0x4,0xce,0x8,0xec,0xa,0x84,0xb, +0x71,0x6,0x8e,0xfe,0x4c,0x2,0xba,0xc,0xda,0x9,0xaf,0xfd, +0xb8,0xf7,0x20,0xf8,0x7c,0xfa,0xb0,0xfe,0x5c,0x3,0x59,0x4, +0xbf,0x2,0xdf,0x4,0xa0,0x5,0x47,0xfd,0xd9,0xf7,0x6,0xff, +0x58,0x3,0x90,0xfa,0x0,0xf6,0x7d,0xff,0xcd,0x4,0x57,0xff, +0xc,0xfe,0x92,0x0,0xa9,0xff,0x56,0x1,0x6c,0x5,0x3b,0x5, +0x22,0x2,0xae,0xfd,0x3a,0xf7,0xe5,0xf2,0x86,0xf3,0xa2,0xf1, +0x9c,0xe7,0xdc,0xde,0xa9,0xdd,0xc5,0xdf,0x46,0xe7,0xc7,0xf3, +0xd,0xfb,0x7d,0xfb,0x80,0xfa,0x63,0xf8,0xae,0xf7,0x57,0xfd, +0x70,0x1,0x46,0xf9,0xe3,0xf0,0x59,0xf6,0x18,0x0,0xd9,0x5, +0xad,0x8,0xcf,0x4,0x3b,0xfe,0xf0,0xff,0x49,0xa,0xf3,0x12, +0xa7,0x11,0x82,0xe,0x74,0x11,0x82,0xf,0xf2,0x7,0xd0,0x7, +0x61,0x7,0x20,0xfb,0x68,0xf1,0xf9,0xf3,0x84,0xf1,0x70,0xe8, +0x90,0xf1,0xa3,0x5,0xb3,0x7,0x92,0x3,0xcf,0xd,0xe7,0x16, +0xf1,0x13,0xe2,0x11,0x6b,0x10,0x2c,0x3,0x27,0xf4,0xaf,0xf1, +0xf0,0xf1,0x42,0xf1,0xd1,0xf4,0xd0,0xef,0x14,0xe5,0x6c,0xeb, +0x94,0xfa,0x72,0xfd,0x2d,0xfc,0xce,0x3,0xa7,0xa,0x7b,0x6, +0x6c,0x1,0x73,0x3,0xf6,0x4,0xa9,0x0,0x90,0xf6,0x90,0xec, +0x17,0xec,0xb9,0xf0,0x48,0xf3,0x9c,0xf7,0x22,0xff,0x69,0x5, +0x45,0x5,0xd,0x2,0xc,0x4,0x4,0x3,0x5,0xf8,0x8d,0xf0, +0x1,0xf4,0xb,0xfb,0x1b,0xfc,0xe6,0xf5,0x9,0xf4,0xbf,0xf8, +0xae,0xfa,0xab,0xfb,0x56,0x0,0x97,0x6,0x66,0xb,0x4,0xe, +0x7e,0x13,0x9c,0x1a,0x96,0x19,0xed,0x11,0x42,0xd,0xed,0xb, +0xdc,0x3,0xf6,0xf4,0x29,0xf1,0xfc,0xf7,0x31,0xf4,0x74,0xea, +0x1e,0xee,0xf6,0xfa,0x39,0x2,0xbb,0x2,0x35,0x5,0x80,0x7, +0x8e,0x1,0x6b,0xfd,0x3,0x3,0xa1,0x5,0x9e,0x1,0x63,0xff, +0x79,0xfd,0x56,0xf9,0x39,0xf6,0xae,0xf4,0xa9,0xf5,0x79,0xf8, +0xb4,0xf4,0xd0,0xeb,0x61,0xed,0xa9,0xf8,0xb4,0xfd,0xa9,0xfb, +0xbe,0xf8,0x82,0xf1,0x7c,0xe7,0x7,0xe5,0xa4,0xe9,0x1e,0xe9, +0x96,0xe2,0x6b,0xe1,0xc,0xe7,0x8f,0xed,0xf8,0xf3,0x23,0xf7, +0x1,0xf7,0xf9,0xfd,0xf0,0x9,0x4a,0xa,0xe2,0x2,0x62,0x4, +0x34,0x8,0x97,0x3,0xdc,0xff,0x49,0x2,0xdd,0x3,0x43,0x2, +0xd7,0x1,0x6,0x6,0xb5,0xa,0xca,0xe,0xa7,0x17,0xcf,0x1c, +0x80,0x18,0x73,0x17,0x3c,0x18,0x1c,0x16,0x1a,0x1e,0xab,0x28, +0x6e,0x23,0x80,0x1c,0xc7,0x20,0x4f,0x1f,0x9f,0x13,0x1d,0x11, +0xf3,0x16,0x77,0x13,0x8,0xe,0x3c,0x15,0xe5,0x20,0xb1,0x28, +0x8e,0x2d,0xa0,0x2f,0xed,0x32,0x28,0x34,0xbb,0x27,0xd6,0x17, +0xe2,0x17,0x52,0x19,0xe3,0x7,0x65,0xfc,0xfb,0xa,0x38,0x12, +0x50,0x5,0xd3,0x7,0x99,0x16,0x63,0x11,0x5b,0x7,0x7c,0xc, +0x65,0xe,0xf8,0x8,0x12,0x9,0x6f,0x6,0x97,0xfb,0xbd,0xf4, +0xdf,0xf5,0xe2,0xf6,0xe6,0xf0,0xae,0xe8,0x99,0xe7,0x86,0xea, +0x82,0xef,0x22,0xfa,0x93,0x0,0x9a,0xfd,0x9f,0xfa,0x52,0xf9, +0xcd,0xf7,0x92,0xf6,0xac,0xf2,0xca,0xeb,0xf6,0xe2,0xda,0xdb, +0x5e,0xdb,0xd9,0xd9,0x2f,0xd4,0x31,0xd9,0x2,0xea,0x23,0xf6, +0xf9,0xfb,0x74,0x2,0x4f,0x4,0x69,0x2,0x94,0x4,0x58,0x2, +0x98,0xfb,0x45,0xfe,0x98,0x0,0xc,0xfe,0xf0,0x8,0x2b,0x15, +0xd,0xd,0xe3,0x2,0x15,0x9,0x22,0xf,0xe4,0x5,0x24,0x1, +0xa0,0xe,0x24,0x12,0xb0,0x4,0x6f,0x3,0x17,0x8,0x9b,0xfe, +0xef,0xf0,0xa0,0xe3,0xe9,0xd7,0x56,0xda,0x8a,0xe2,0xf7,0xe0, +0x86,0xe5,0x6e,0xfb,0xbd,0x2,0x6c,0xee,0x9c,0xe9,0x56,0xfe, +0x54,0xfd,0x25,0xe2,0x16,0xda,0xa,0xeb,0x3f,0xef,0x59,0xe0, +0xc5,0xe1,0x7e,0xf4,0xbc,0xf2,0xff,0xe1,0xa6,0xe3,0xbc,0xee, +0x32,0xef,0x14,0xf1,0xad,0xfc,0xc4,0xff,0xde,0xf5,0xa7,0xf7, +0xc,0x6,0x73,0x3,0x51,0xf4,0xfa,0xf2,0x8,0xf6,0x1,0xf4, +0x46,0xfe,0x79,0xf,0xb1,0x15,0x27,0x19,0x35,0x1d,0xac,0x1e, +0x68,0x29,0x83,0x31,0xa3,0x21,0x1a,0x12,0x64,0x17,0x5d,0x1a, +0x79,0x11,0xe0,0xc,0x83,0xf,0xb2,0x11,0x8a,0x11,0xc3,0x11, +0x1c,0x16,0x29,0x1e,0x89,0x1f,0x91,0x14,0xfd,0xf,0xe2,0x19, +0xb8,0x15,0x10,0x5,0x74,0xb,0x45,0x12,0xab,0xf8,0x1d,0xec, +0x2e,0x0,0x43,0xfd,0xd7,0xe5,0xd2,0xec,0xa5,0xfb,0x81,0xef, +0xfc,0xe8,0xd2,0xf5,0x18,0xf6,0x78,0xec,0xd8,0xea,0xf2,0xe2, +0xd,0xd9,0x33,0xe3,0x5e,0xea,0xa9,0xd9,0xdb,0xd4,0x5d,0xea, +0x33,0xf2,0x4f,0xe6,0x4d,0xe9,0xea,0xf4,0xc2,0xef,0x7e,0xea, +0xa6,0xf2,0xc6,0xf6,0x12,0xf6,0x64,0xf7,0x80,0xf4,0x60,0xf5, +0xc2,0xfc,0xda,0xf6,0x61,0xe7,0x96,0xe8,0x25,0xf8,0x8a,0xfb, +0x85,0xef,0xcd,0xea,0xc0,0xf3,0xf1,0xfd,0x6c,0x4,0x85,0x3, +0x2,0xf9,0x87,0xef,0x49,0xf1,0x9d,0xfa,0x33,0xfc,0xbb,0xf2, +0x84,0xf0,0xaf,0xf6,0xb4,0xf3,0xe4,0xec,0x4d,0xf1,0xf6,0xf7, +0x3c,0xef,0xd2,0xe4,0xfa,0xf0,0x98,0xf9,0xb1,0xe8,0x60,0xe7, +0x99,0xfa,0x5d,0xf6,0x63,0xe8,0x7c,0xec,0x35,0xed,0x33,0xe5, +0x3c,0xe9,0xa4,0xf1,0x1d,0xec,0x98,0xe7,0x3a,0xf4,0xb8,0xfa, +0x54,0xf1,0xef,0xf1,0xbb,0xf8,0x7e,0xf4,0xa3,0xf3,0x63,0xf8, +0xc2,0xf5,0x90,0xf5,0x35,0xfe,0xb7,0x3,0x9d,0x2,0x15,0xff, +0xf6,0xf9,0x54,0xf9,0x1f,0x1,0xea,0x4,0x7b,0x1,0xbc,0x5, +0xdb,0xb,0x4c,0x7,0x8c,0x7,0x4,0x11,0x94,0x10,0x67,0x9, +0x46,0xb,0x68,0xf,0xdf,0xa,0xc,0x7,0x27,0xc,0x54,0xe, +0xe0,0xa,0x8e,0xf,0xe7,0x15,0xf5,0x10,0x21,0xd,0x30,0x12, +0xe4,0x12,0xe7,0xb,0xbc,0x8,0x8e,0xc,0x43,0xe,0x46,0xa, +0x10,0x7,0x69,0x6,0x2,0x6,0x4d,0x7,0xdf,0x9,0xfc,0xa, +0xbb,0x8,0xba,0x4,0x7,0x5,0xa1,0x6,0x77,0x4,0xf5,0x8, +0x75,0x12,0x49,0xe,0x3c,0x5,0x13,0xb,0x72,0x12,0x60,0xc, +0xc2,0x7,0x1c,0xd,0x40,0xc,0x8d,0x4,0xd2,0xa,0xc8,0x18, +0xf6,0x17,0xe5,0x12,0x4f,0x17,0x17,0x18,0x6a,0x14,0xa4,0x17, +0x30,0x1b,0x91,0x19,0xee,0x18,0xe9,0x19,0xc2,0x18,0xfa,0x12, +0xbb,0xb,0x55,0xd,0xc2,0x17,0x7e,0x1c,0xe,0x15,0x4d,0xc, +0x90,0xc,0xe7,0xf,0x89,0xe,0xa6,0xd,0x7d,0xe,0xed,0xa, +0x29,0x6,0x48,0x5,0x8f,0x7,0x97,0xa,0x86,0x7,0x24,0xff, +0xfb,0xfd,0xf9,0x1,0x49,0xfd,0xa2,0xf4,0x46,0xf7,0x72,0x1, +0x4c,0x3,0x5d,0xfe,0x25,0xff,0xd0,0x3,0xdb,0x5,0xe7,0x6, +0x75,0x6,0xba,0x2,0x85,0xfd,0xb2,0xf9,0x29,0xfc,0x8f,0x3, +0xef,0x5,0x4f,0x2,0x49,0x0,0x8d,0x0,0x90,0x0,0x9d,0x1, +0x10,0x4,0x30,0x7,0xa5,0x9,0x41,0x7,0x4,0x3,0xc2,0x5, +0x9a,0x9,0xa0,0x5,0x2a,0x3,0xc3,0x6,0x58,0x4,0x30,0xfb, +0x20,0xf9,0xe4,0xff,0x3f,0x2,0x22,0xfd,0xc2,0xfb,0x21,0x0, +0x10,0x3,0xc9,0x2,0xc6,0xfe,0x1d,0xf9,0xdd,0xf7,0x57,0xf9, +0xbf,0xf9,0x68,0xfc,0xca,0x0,0x4c,0xff,0xe,0xf8,0x3d,0xf6, +0x2,0xfd,0x23,0x1,0x1a,0xfe,0x1e,0xfc,0xfb,0xfd,0xa8,0xfd, +0xc0,0xfa,0xe8,0xfa,0xe1,0xfb,0x93,0xf9,0x8c,0xf8,0x96,0xf8, +0x57,0xf7,0x91,0xfa,0x1f,0xff,0x7c,0xfe,0x83,0xfe,0x51,0xfe, +0x8e,0xf9,0x78,0xfa,0x73,0x3,0x63,0x7,0xb5,0x5,0xca,0x7, +0xcc,0x6,0xce,0xf9,0xcd,0xf0,0xea,0xf7,0xe4,0xfd,0x5f,0xfa, +0xa1,0xfa,0xa5,0xfe,0x29,0xfd,0x38,0xfa,0xd9,0xfb,0x42,0xff, +0x47,0x1,0x84,0x0,0x4f,0xf9,0xfd,0xed,0x84,0xe9,0x1c,0xee, +0x80,0xf3,0xaa,0xf6,0x94,0xf8,0x1b,0xf8,0x51,0xf3,0x2c,0xeb, +0xa0,0xea,0xde,0xf7,0x8,0x2,0xad,0xfd,0x2,0xf7,0x9f,0xf1, +0x9a,0xe7,0xbc,0xe2,0x21,0xe9,0x33,0xef,0x99,0xee,0xb1,0xe9, +0xd0,0xe1,0x67,0xdc,0xcb,0xe0,0x78,0xec,0x3e,0xf5,0xdb,0xf8, +0xd3,0xfb,0x9a,0xfa,0x8c,0xf4,0x22,0xf4,0x75,0xf9,0x30,0xfd, +0xd0,0x1,0xee,0x5,0x3a,0x0,0xda,0xf3,0x7,0xf0,0x72,0xf9, +0x8c,0x4,0x32,0x9,0x5e,0xa,0x3c,0xa,0x6a,0x8,0x10,0x7, +0x97,0x9,0xda,0xd,0xf6,0xb,0x91,0x3,0xfd,0xf9,0x39,0xf2, +0x19,0xf3,0xa4,0xfa,0xe3,0xfc,0xc7,0xfd,0x41,0x2,0xcf,0x1, +0x67,0xfe,0x56,0xff,0x95,0x2,0x2d,0x3,0xf3,0xfb,0x5f,0xf1, +0xdd,0xed,0x46,0xf0,0x58,0xf4,0x94,0xf7,0xe,0xf6,0x9c,0xf2, +0xd,0xef,0xb2,0xe8,0xac,0xe5,0xe7,0xec,0x31,0xf8,0x8a,0xfd, +0x5f,0xff,0xa2,0x5,0xd8,0x9,0xac,0x4,0xac,0xff,0x2b,0x0, +0xb,0x1,0xe9,0x2,0xf3,0x5,0xea,0x5,0xee,0x3,0x74,0x4, +0xf2,0x8,0xc4,0xf,0xd0,0x15,0x8f,0x17,0x61,0x13,0x47,0xd, +0x4d,0xa,0xe1,0xb,0x51,0x12,0x8d,0x16,0x65,0xf,0x30,0x7, +0x32,0xa,0x7b,0xc,0x7e,0x7,0x81,0x8,0x30,0xf,0x29,0x10, +0x4f,0xe,0x7,0x11,0xb7,0x17,0x2d,0x1d,0xec,0x1d,0x18,0x1c, +0xb6,0x17,0x41,0xf,0x81,0x8,0x7,0x6,0xa5,0x5,0xe4,0xa, +0x7a,0x12,0xfa,0x10,0x82,0x9,0xf8,0x8,0xc0,0xe,0xa9,0x10, +0xf,0xd,0x98,0x8,0xfb,0x3,0xc5,0x0,0xa8,0x2,0x7a,0x7, +0x29,0xa,0x13,0x9,0x54,0x5,0x50,0x1,0x97,0xfe,0x7d,0xfc, +0x67,0xf9,0x65,0xf7,0x36,0xfc,0xff,0x6,0x12,0x11,0x13,0x17, +0x91,0x15,0x9,0xd,0x66,0x6,0x73,0x2,0xd5,0xfb,0xa9,0xf7, +0x68,0xf9,0x84,0xfb,0xbc,0xfe,0xe7,0x6,0xa8,0xe,0x47,0xf, +0x11,0xb,0xee,0x7,0x2a,0x6,0x4c,0x5,0xf0,0x8,0x72,0xd, +0xe2,0xb,0xbd,0xa,0x1c,0xf,0x38,0x11,0x12,0x10,0x91,0xf, +0xa8,0xc,0xcc,0x8,0x5b,0x7,0xf0,0x5,0xe9,0x7,0xb8,0xf, +0xca,0x13,0xe2,0x10,0x34,0xf,0x1d,0xd,0x8e,0x3,0x1f,0xfa, +0x2f,0xf9,0x55,0xf9,0xac,0xf5,0x4f,0xf4,0x6f,0xf7,0x58,0xfc, +0x23,0x1,0xb5,0x3,0xd3,0x2,0x12,0xff,0x40,0xfb,0x7,0xfb, +0x63,0xff,0xac,0x5,0xea,0x7,0x5c,0x4,0x4f,0x1,0x10,0x1, +0xa4,0x1,0x4f,0x5,0x9a,0xa,0x29,0xb,0xe5,0x6,0x30,0x3, +0xd3,0x3,0xe8,0x7,0xfc,0xa,0x1b,0xa,0x71,0x6,0xa0,0x2, +0x5b,0xff,0x19,0xfd,0x2b,0xfd,0xa1,0xfe,0xcb,0xff,0x3,0xff, +0x72,0xfa,0xeb,0xf5,0x6f,0xf6,0xfa,0xf8,0x20,0xf8,0x59,0xf4, +0xcd,0xf3,0xc3,0xf7,0xcd,0xf9,0x93,0xfc,0x58,0x4,0xbb,0x4, +0xd3,0xfa,0xee,0xf7,0x3e,0xfe,0xe2,0x0,0x4b,0xfe,0x0,0xfa, +0x98,0xf5,0x85,0xf7,0x6d,0x0,0xe5,0x6,0xec,0x8,0xf4,0x9, +0x89,0x7,0x62,0x4,0xd9,0x7,0xc4,0xb,0x44,0x4,0x48,0xf7, +0x27,0xf6,0x29,0xff,0xf7,0x0,0xed,0xfb,0x83,0xfa,0x82,0xf8, +0x7b,0xf1,0x77,0xec,0x60,0xef,0x27,0xf6,0x61,0xf8,0x1f,0xfa, +0x44,0x2,0xb9,0x4,0x7,0xfb,0xdf,0xf3,0xaf,0xf4,0x8b,0xf5, +0xc8,0xf3,0xdb,0xef,0x77,0xeb,0x1c,0xed,0x66,0xf7,0xea,0x0, +0x23,0x1,0xab,0xfb,0x3a,0xf3,0x2a,0xea,0x92,0xec,0x4d,0xfa, +0x46,0x0,0xfc,0xf7,0xda,0xec,0x7a,0xe7,0x7f,0xe8,0xb1,0xed, +0x0,0xf4,0xf3,0xf7,0x8e,0xf8,0x32,0xf7,0xe3,0xf3,0x5e,0xf2, +0xda,0xf7,0x5d,0xfe,0xb5,0x0,0xe9,0x6,0xef,0xf,0x76,0xc, +0xf1,0xfb,0x34,0xee,0x8c,0xe9,0x69,0xe7,0x12,0xe4,0x59,0xe2, +0x3f,0xe2,0x7e,0xe1,0x8d,0xe4,0xc5,0xec,0x62,0xf0,0x20,0xed, +0x9c,0xea,0x1c,0xe9,0x72,0xe7,0xcf,0xe7,0x5d,0xe6,0xc9,0xe2, +0x73,0xe6,0xf5,0xf1,0xcc,0xf9,0x46,0xfa,0x79,0xfb,0x3,0x2, +0x4d,0xa,0x2e,0xf,0x38,0xe,0x92,0x9,0x90,0x4,0x11,0x2, +0xe5,0x6,0x0,0xf,0x6b,0xb,0x6c,0xfb,0x2c,0xf0,0xc6,0xef, +0x5d,0xef,0xd5,0xeb,0x53,0xee,0xa7,0xf6,0x6,0xfc,0x8f,0xfd, +0xff,0xfb,0x22,0xf6,0x5f,0xf0,0x44,0xee,0x0,0xf1,0xbc,0xf7, +0x74,0xf8,0x1a,0xf0,0xd2,0xec,0x35,0xf4,0x51,0xfb,0x8f,0xfb, +0xa4,0xf8,0x33,0xf6,0x1d,0xf4,0xad,0xf3,0xf2,0xf5,0x1c,0xf7, +0xf4,0xf5,0x8a,0xf6,0xd7,0xf9,0x7f,0xfd,0x9e,0xff,0xf0,0xfe, +0x9c,0xfb,0x86,0xf9,0xa9,0xfe,0x5d,0x7,0x98,0x8,0x2e,0x5, +0x2f,0x6,0x6a,0x7,0x17,0x6,0xb7,0x6,0x3f,0x5,0x28,0xfe, +0x15,0xfa,0xa0,0xfc,0x9d,0xfb,0xe5,0xf3,0xbb,0xf0,0xb8,0xf3, +0xae,0xf3,0x8c,0xf3,0xfb,0xf7,0x98,0xfa,0xe4,0xf9,0x60,0xfa, +0x58,0xfd,0xad,0x0,0xf,0xff,0x31,0xfa,0x49,0xfb,0x16,0x3, +0xdd,0xa,0x9f,0xd,0xad,0xb,0xa0,0x8,0x39,0x4,0x9f,0x1, +0x68,0x6,0x1f,0xb,0x75,0x9,0xfd,0x6,0xa6,0x5,0xb4,0x4, +0x6c,0x4,0xa6,0x3,0x25,0x2,0xb8,0xfc,0xf7,0xf4,0x3b,0xf3, +0xbf,0xf4,0x50,0xf4,0x5a,0xf6,0x41,0xfc,0x24,0x2,0x89,0x4, +0xb4,0x4,0xac,0x4,0x3d,0xff,0xe8,0xf9,0xb9,0xff,0x99,0x3, +0xdd,0xfc,0xc1,0xfa,0x39,0xfd,0x27,0xf9,0x89,0xf6,0xd6,0xfb, +0x16,0xfd,0x5e,0xf7,0x46,0xf9,0x2f,0x1,0xca,0x0,0x5a,0x0, +0x80,0x7,0x1a,0x9,0x8b,0x7,0xa4,0xd,0x79,0x10,0x2f,0xa, +0x8b,0x7,0x3a,0xb,0x7c,0xb,0x5c,0x7,0xad,0x5,0x68,0x6, +0xc2,0x4,0x5b,0x2,0x90,0x5,0xb2,0xc,0xb9,0xa,0x9d,0xfd, +0xed,0xf6,0xeb,0xfa,0x97,0xfb,0xa4,0xf9,0x55,0xfd,0xad,0x0, +0x95,0xfe,0xfa,0xfc,0xf4,0xff,0x9b,0x3,0x8e,0x2,0x36,0xfe, +0xb9,0xfc,0xff,0xfe,0x57,0xff,0xe7,0xfb,0xd8,0xfc,0x8c,0x6, +0x91,0xe,0xa7,0xd,0x81,0x9,0x69,0x4,0xae,0xfe,0xc1,0xfe, +0x51,0x3,0x9e,0x4,0xce,0x3,0xed,0x3,0x9a,0x3,0xab,0x4, +0xeb,0x9,0xad,0xe,0x17,0xb,0x59,0x3,0x8e,0x2,0xfc,0x3, +0x6f,0x0,0x83,0x2,0xdd,0xc,0x7,0x11,0xe7,0xc,0xe7,0xa, +0x6f,0xc,0x92,0xc,0xe1,0xc,0xed,0xf,0xc7,0xf,0xbf,0x9, +0x83,0x4,0x96,0x3,0xa,0x7,0x4d,0xc,0x4,0xe,0xda,0xf, +0x7b,0x14,0x26,0x13,0x52,0xc,0xb4,0x8,0xf9,0x6,0x7a,0x3, +0x21,0x0,0x66,0x0,0x8d,0x4,0xce,0x6,0xc3,0x4,0x50,0x4, +0xe4,0x8,0x4b,0xe,0xad,0xd,0x30,0x7,0x91,0x2,0xd7,0x0, +0x97,0xfd,0xbf,0xfb,0xe7,0xfd,0xaf,0x0,0xb6,0x4,0xfe,0xa, +0x60,0xd,0xac,0x8,0xac,0x1,0x5a,0xfc,0x23,0xfa,0x8,0xfb, +0x93,0xfb,0x33,0xfb,0x8,0xff,0xa2,0x7,0xb4,0xf,0x2b,0x13, +0xbe,0xe,0xb7,0x2,0x3f,0xf7,0xde,0xf2,0x72,0xf3,0xde,0xf5, +0x48,0xfa,0x5a,0x1,0xe5,0xb,0x92,0x18,0x8c,0x20,0x4,0x1e, +0xfd,0x15,0x98,0x10,0x55,0xb,0xf8,0x3,0x95,0x2,0x9f,0x8, +0x9,0xf,0xbe,0x14,0xc1,0x18,0x24,0x18,0x3c,0x15,0xf2,0x10, +0xc,0xb,0x8e,0x6,0x88,0x2,0xd8,0xfd,0x16,0xfd,0x78,0x2, +0xd1,0xb,0x4b,0x15,0x9,0x19,0xfe,0x14,0x32,0xd,0xcc,0x3, +0x63,0xf8,0x6e,0xef,0x4f,0xed,0x48,0xee,0xb8,0xf0,0xf7,0xf8, +0xfc,0x2,0x5b,0x5,0x23,0x0,0xb8,0xf8,0x2b,0xf2,0x4b,0xef, +0xab,0xf1,0x72,0xf7,0xf1,0xfe,0x3f,0x8,0x79,0x10,0x4e,0x12, +0xdd,0xd,0x42,0x7,0xe0,0xff,0xc2,0xf9,0x49,0xf8,0xa9,0xf9, +0xfa,0xfa,0x3a,0xfd,0xad,0xff,0xd0,0x1,0x10,0x6,0x3e,0x8, +0xcd,0x2,0xdf,0xfb,0x49,0xf8,0x5,0xf2,0xd,0xe9,0xad,0xe5, +0x3,0xe8,0xc3,0xeb,0x6c,0xf4,0xf4,0x1,0xe9,0x8,0x98,0x6, +0xdf,0x5,0x20,0x8,0x37,0x6,0x56,0x3,0xc5,0x4,0x7a,0x7, +0x2b,0xc,0xf4,0x15,0xfe,0x1d,0xe0,0x1d,0xb7,0x17,0x45,0xd, +0x1b,0x3,0x54,0x0,0x1,0x3,0xa3,0x6,0xe3,0xa,0xb3,0xf, +0xba,0x16,0x1d,0x1c,0xc5,0x17,0xba,0xe,0x64,0xa,0x1f,0xa, +0x17,0xa,0x61,0x6,0x62,0xff,0x69,0xfb,0x96,0xfb,0xb7,0xfe, +0x8e,0x4,0xe,0x6,0x69,0xfe,0x98,0xf4,0x42,0xf1,0x57,0xf4, +0xef,0xf6,0x26,0xf6,0xa8,0xf5,0xd9,0xf6,0xa0,0xf7,0xcb,0xf6, +0xc,0xf5,0x2a,0xf2,0x47,0xed,0x21,0xec,0x18,0xf1,0xf3,0xf0, +0xcb,0xed,0xc1,0xf8,0x13,0x8,0xc1,0x5,0xfd,0xfc,0xc7,0xfd, +0x41,0xfc,0xeb,0xf7,0x22,0x2,0xef,0xb,0xa6,0xff,0x41,0xf5, +0x82,0xfb,0xba,0xf8,0xb8,0xf1,0xce,0xfd,0x2c,0x4,0x5f,0xf3, +0x20,0xed,0xaf,0xf9,0xe9,0xfa,0x13,0xf5,0xa4,0x0,0x7d,0x10, +0x57,0xf,0xfb,0x7,0x4e,0x5,0xc5,0x0,0xac,0xfc,0x83,0xfe, +0xb9,0x0,0xfe,0x3,0x27,0xc,0x88,0x10,0xb9,0xc,0xc6,0x9, +0xa0,0x9,0xd7,0x3,0x41,0xfb,0xc4,0xfa,0xec,0xfd,0x6f,0xfe, +0x81,0x4,0x26,0xe,0x3c,0x10,0xee,0xe,0x9f,0xe,0x9b,0x9, +0xa7,0x0,0x5d,0xfa,0x59,0xf8,0xc9,0xf6,0xe3,0xf5,0xf9,0xf9, +0x53,0xfe,0xea,0xfe,0xf5,0x1,0x82,0x5,0x94,0x1,0x78,0xf6, +0xd,0xe8,0xc0,0xdc,0x64,0xda,0x16,0xdf,0x26,0xe5,0x98,0xe9, +0xd8,0xf0,0x73,0xfa,0xe,0xfb,0x62,0xf7,0x82,0xfb,0xdc,0xfa, +0x81,0xee,0x3,0xeb,0x8c,0xf5,0x60,0xfa,0x25,0xfa,0x9d,0x6, +0x55,0x12,0xe0,0x8,0xbc,0xfd,0x16,0xfe,0x4,0xf9,0x4,0xf3, +0x25,0xf9,0x77,0xfe,0x77,0xfc,0x46,0xff,0x39,0xa,0xc,0x13, +0x33,0x12,0x57,0xa,0xee,0xfe,0x1a,0xf4,0x84,0xef,0x15,0xec, +0x95,0xe9,0xec,0xf4,0x92,0x7,0xd8,0xe,0xb5,0xd,0x5,0xf, +0x3e,0xf,0x13,0x8,0x25,0x3,0x98,0x9,0x31,0xb,0xb7,0xfe, +0x80,0xf8,0x16,0xff,0x3c,0x4,0x62,0x7,0xa0,0xc,0x1e,0xd, +0x1f,0x7,0xea,0x2,0xbe,0x0,0x83,0xf9,0xbc,0xf4,0xfe,0xfb, +0xcb,0x3,0x48,0x4,0xe2,0x5,0x72,0x8,0xb9,0x5,0xb0,0x1, +0xf0,0x2,0x47,0x5,0xa0,0xff,0x4d,0xf8,0xb6,0xfa,0xd7,0xff, +0x8b,0x1,0x5c,0x6,0xea,0xb,0x41,0xb,0xf0,0x7,0xe1,0x6, +0x2d,0x5,0x62,0xfe,0xae,0xf6,0xd9,0xf3,0xfd,0xf2,0xa3,0xf2, +0x35,0xf5,0xe7,0xf8,0x92,0xfb,0x53,0xfd,0x33,0x0,0xb,0x4, +0x55,0x1,0xa3,0xf8,0xef,0xf6,0x9e,0xfd,0xb8,0x1,0xc8,0x0, +0xf,0x1,0xbc,0x3,0x3f,0x5,0x42,0x6,0xfb,0x6,0xe6,0x4, +0x8a,0x2,0x4b,0x2,0x11,0x5,0x69,0xc,0xdb,0x10,0xc8,0xc, +0xa2,0x7,0xad,0x5,0x17,0x4,0x46,0xfe,0x98,0xf3,0x3a,0xef, +0xf6,0xf3,0x1d,0xf6,0x3a,0xf7,0xcd,0xfe,0xd8,0x6,0xc9,0x9, +0x1d,0xb,0x44,0xc,0x25,0x7,0xa5,0xfe,0x51,0x1,0xb5,0x8, +0x17,0x4,0xa4,0xff,0xc4,0x6,0xaa,0x9,0xc9,0x2,0xd2,0xfe, +0x8f,0xfe,0xc2,0xf9,0xfb,0xf4,0x1f,0xfa,0x89,0x3,0x6,0x6, +0x7b,0x3,0xdf,0x1,0xde,0x1,0x49,0x1,0x15,0xfc,0x14,0xf3, +0xad,0xed,0x76,0xee,0xf9,0xef,0x7,0xee,0x3f,0xed,0x4f,0xf6, +0xa9,0x6,0x8,0xf,0x8b,0xa,0xee,0x6,0xee,0x8,0xb2,0x4, +0x2e,0xfc,0x18,0xfd,0x9a,0x1,0x26,0xfd,0x96,0xf7,0x7a,0xf9, +0x3c,0xfa,0x98,0xf6,0xb4,0xf5,0xc,0xf6,0x96,0xf6,0xc9,0xfb, +0xbf,0xfd,0x2f,0xf9,0x12,0xfd,0x36,0x8,0xa,0xa,0x1d,0x5, +0xbc,0x2,0x45,0x0,0x12,0xfc,0xbe,0xf7,0x75,0xf3,0x7a,0xf1, +0x62,0xf1,0xe2,0xef,0x0,0xf1,0x20,0xf9,0xad,0xff,0x93,0xfd, +0x60,0xfc,0x76,0x0,0xf7,0xfd,0x3d,0xf6,0x9b,0xf6,0x33,0xf8, +0x7f,0xf2,0xfd,0xf1,0xe0,0xf7,0x3b,0xf8,0xb4,0xfa,0xf1,0x5, +0x10,0xb,0xf7,0x6,0xdd,0x7,0xba,0xb,0x6e,0x6,0x94,0xff, +0x5,0x3,0x15,0x5,0x19,0xfd,0xe2,0xfc,0x99,0x8,0x4c,0x9, +0x34,0xff,0x20,0x0,0x16,0x5,0x2,0xfe,0x71,0xf9,0x69,0xff, +0x71,0xfc,0x2,0xf2,0xcd,0xf5,0x10,0x0,0x56,0xfd,0xbf,0xf8, +0xfc,0xff,0x70,0x3,0x70,0xf9,0xee,0xf2,0x53,0xf4,0x7b,0xf1, +0x77,0xf0,0xaf,0xf8,0x26,0xfe,0x85,0xfc,0x49,0xfa,0xbf,0xf7, +0x67,0xf7,0x43,0xfa,0x9c,0xf6,0x8,0xed,0x4d,0xed,0xd5,0xf8, +0x47,0x0,0x7b,0x1,0x46,0x6,0x5,0xb,0x9e,0x7,0x5f,0x3, +0x76,0x4,0x9e,0x2,0xf5,0xfb,0x8a,0xfa,0x89,0xfd,0xb2,0xfb, +0xd7,0xf7,0x11,0xf8,0xc4,0xf9,0x2a,0xfa,0x56,0xf8,0x2a,0xf5, +0x9e,0xf5,0xbe,0xf9,0xcd,0xfb,0x68,0xfa,0xa3,0xf8,0x20,0xf7, +0xf4,0xf2,0x5b,0xf0,0x99,0xf7,0x68,0xff,0xdc,0xfc,0xe,0xfd, +0xe,0x7,0x41,0xb,0x71,0x5,0x92,0x1,0x5c,0x2,0xe5,0x2, +0x34,0x4,0xd9,0x5,0x65,0x0,0x3a,0xf9,0x2c,0xfe,0x7,0x5, +0x6e,0x0,0x62,0xfe,0x82,0x3,0x8f,0xff,0xa7,0xf6,0xf1,0xf8, +0xe1,0x0,0xae,0x2,0xfd,0x3,0xee,0xa,0x68,0xc,0x94,0x3, +0x73,0xfc,0x80,0xf8,0x36,0xf4,0xd2,0xf6,0x76,0xfb,0x6d,0xf8, +0x18,0xf8,0x2e,0x0,0x35,0x5,0xd6,0x4,0x98,0x7,0x34,0xc, +0xad,0x8,0x13,0xff,0xd9,0xf9,0xa9,0xf6,0x22,0xf4,0x4d,0xfa, +0x1e,0x1,0x7a,0xfe,0x34,0xff,0xa6,0x7,0xee,0x8,0x2d,0x4, +0x59,0x5,0xc4,0x7,0xd5,0x4,0x7e,0x3,0xe7,0x6,0x1a,0x8, +0x6f,0x3,0x17,0xfd,0xe8,0xfb,0xae,0xff,0xb4,0xfe,0x6c,0xf5, +0x4b,0xef,0xac,0xf5,0xf0,0xfe,0xe2,0xff,0x6c,0x2,0x74,0xd, +0xd7,0x12,0x3e,0x10,0xa6,0x12,0x9b,0x16,0x69,0x11,0xb,0x9, +0x40,0x8,0x68,0x9,0x88,0x4,0x8f,0x5,0xc1,0xf,0x1a,0x10, +0x5f,0xc,0xfc,0x16,0xeb,0x1c,0x77,0x10,0x12,0xc,0x5c,0x16, +0xe0,0x15,0x1d,0xc,0xcf,0xa,0xf3,0x8,0x5b,0x3,0xd8,0x8, +0xf0,0xb,0xc6,0xfd,0xe8,0xf7,0xb6,0x2,0xd9,0xff,0xc0,0xf0, +0x5d,0xf6,0xf1,0x6,0xda,0xfe,0x91,0xed,0x9c,0xf4,0x71,0xff, +0x69,0xf3,0xb9,0xe5,0x96,0xea,0x1c,0xf3,0x3b,0xee,0xd4,0xe3, +0x14,0xe6,0x21,0xf4,0xa,0xfd,0x3c,0xf9,0x5,0xf3,0x39,0xf8, +0x43,0x3,0x60,0x3,0xe2,0xfb,0x94,0xfa,0xfd,0xfc,0xe7,0xfa, +0xf2,0xf8,0xba,0xfe,0x2b,0x6,0xbc,0x7,0x5,0x9,0xb7,0xc, +0x60,0xd,0x97,0x9,0x54,0x0,0x9e,0xf2,0x47,0xec,0xd0,0xf5, +0x9f,0x2,0x57,0x4,0x22,0x6,0x61,0xf,0x82,0xf,0x9a,0xa, +0x6a,0xd,0x15,0x5,0x1b,0xf5,0x85,0xfa,0xdc,0x0,0x82,0xf3, +0x1,0xf9,0xbe,0x14,0xd0,0x11,0x23,0xfa,0x1a,0x0,0x37,0x9, +0x53,0xf2,0x28,0xe8,0x64,0xfd,0x7b,0x3,0x50,0xfc,0xfd,0x8, +0x56,0x15,0xbe,0x12,0xa,0x16,0xde,0xf,0xd1,0xef,0xbb,0xe0, +0xec,0xef,0x8e,0xee,0x42,0xe2,0x37,0xf6,0x3d,0xe,0xa3,0x3, +0xb7,0xfb,0xb6,0xa,0xbc,0x3,0x96,0xe8,0x7,0xe9,0x1b,0xf4, +0x2a,0xe8,0x69,0xe2,0xf4,0xf2,0x8,0xff,0x6,0x5,0xfb,0xc, +0xc1,0x7,0xb4,0xfa,0x2d,0xfe,0x32,0x6,0x5d,0xfd,0xde,0xf8, +0x30,0x6,0x8b,0xc,0xa4,0xb,0xe4,0x13,0x92,0x16,0xb6,0xd, +0xe1,0x9,0x43,0xa,0xcc,0x5,0xd7,0xfd,0xdf,0xfc,0x93,0xb, +0x61,0x17,0xc5,0xd,0x66,0x6,0x24,0x11,0xe5,0x12,0x75,0x6, +0xb3,0x8,0x2a,0xe,0xea,0xf8,0x5b,0xea,0x16,0x2,0x6,0xf, +0x93,0xf8,0x5c,0xf3,0x50,0x5,0x40,0xff,0xc8,0xee,0x89,0xf4, +0x1f,0xf7,0x55,0xef,0x19,0xfb,0x6c,0x4,0xd8,0xf1,0x42,0xf1, +0x83,0xe,0x4a,0xf,0xea,0xf5,0x87,0xf5,0x6d,0xfe,0x60,0xf3, +0x98,0xf2,0x83,0x5,0xd7,0x7,0xa4,0xff,0x3f,0xd,0xcf,0x20, +0x90,0x23,0x8e,0x1d,0x1e,0xe,0x49,0xfc,0xdc,0x1,0x9f,0xc, +0xd0,0xfb,0x33,0xea,0x3,0xf2,0x48,0xf9,0x99,0xf1,0x35,0xec, +0xc2,0xed,0xbb,0xed,0x15,0xec,0x10,0xed,0x88,0xf0,0xb6,0xf5, +0xd5,0xfd,0xb7,0x7,0xaa,0xd,0xc2,0x8,0x5a,0xfb,0x41,0xf3, +0x79,0xf4,0x31,0xf5,0xe,0xf3,0x6,0xf3,0x8b,0xfa,0x80,0xe, +0x1a,0x24,0x6e,0x28,0x85,0x1e,0xa0,0x16,0x9a,0x12,0x59,0xe, +0x6b,0xd,0xe2,0x9,0x1f,0xfd,0x7,0xfe,0x60,0x14,0xd7,0x17, +0x88,0x2,0xeb,0xff,0x23,0xb,0xf3,0x0,0x71,0xf4,0xb3,0xff, +0x51,0x9,0x50,0x4,0x37,0xd,0x5e,0x1f,0xdd,0x17,0x1b,0x3, +0x1b,0xfb,0x2b,0xf1,0x9b,0xe3,0x8e,0xe2,0x2d,0xdf,0x42,0xd8, +0x13,0xe9,0xd,0x1,0x3c,0xfe,0xfb,0xf5,0x62,0x1,0x4f,0x8, +0xd9,0xfc,0x83,0xf6,0x6e,0xf9,0xd1,0xf5,0x78,0xf5,0xfd,0x0, +0xa,0x6,0xba,0x3,0x6b,0xa,0x58,0x10,0x27,0x7,0xa5,0xfb, +0x11,0xfc,0xd8,0x1,0x3e,0x4,0x9f,0x8,0x6a,0xe,0x95,0x9, +0x9a,0x2,0xb5,0x9,0x8b,0x10,0x51,0x6,0x64,0xf7,0x31,0xef, +0xce,0xe5,0xa,0xdd,0xc1,0xe3,0x7d,0xee,0x40,0xeb,0x38,0xf1, +0xff,0x8,0xad,0xb,0x41,0xfb,0xe8,0x1,0xb4,0x12,0xe6,0x9, +0x98,0xfa,0x24,0xfd,0x76,0x0,0xb1,0x1,0xcc,0xe,0x6,0x13, +0x2e,0x4,0x9f,0xff,0xc5,0x5,0x6e,0x1,0x4f,0xfd,0x1b,0x3, +0x2e,0x4,0xe,0xff,0xfd,0x4,0x5a,0x13,0x7f,0x15,0x64,0xd, +0x7d,0x6,0xc,0x0,0xa5,0xfe,0x93,0xfc,0xeb,0xf1,0x29,0xf2, +0x9e,0xfb,0xd1,0xf7,0x47,0xf5,0x7d,0x0,0x59,0x6,0x8d,0xff, +0x6f,0xf7,0x43,0xf5,0xa,0xf4,0xe4,0xf2,0xd3,0xf8,0x11,0xfb, +0xc5,0xf2,0xc3,0xee,0x1e,0xee,0x8c,0xe9,0xf0,0xe6,0xe0,0xe4, +0xcb,0xe1,0x81,0xe1,0x5,0xe4,0x74,0xeb,0xd2,0xf6,0x9c,0x0, +0xd3,0x6,0x66,0x9,0x75,0x7,0x5f,0x1,0x89,0x3,0xa4,0x11, +0x0,0x13,0x2e,0x9,0x5f,0xe,0xec,0x12,0x35,0xa,0x1e,0x10, +0x11,0x21,0x92,0x1c,0x9c,0xc,0x6b,0xf,0x2f,0x18,0xae,0xf, +0xef,0x9,0x31,0x12,0xb5,0x10,0x5c,0x9,0x82,0xa,0x9b,0x5, +0x8a,0xfc,0xb8,0xfe,0x88,0x0,0x8a,0xf9,0x4b,0xfa,0x7f,0x6, +0x1e,0xa,0x3b,0x5,0x50,0xc,0xe1,0x13,0x30,0x6,0x4c,0xf7, +0x77,0xfb,0xed,0xfe,0xbf,0xf2,0xe1,0xe8,0x11,0xed,0x10,0xf2, +0x83,0xf3,0xde,0xf7,0x14,0xf9,0x61,0xf7,0xa,0xfa,0xdb,0xf8, +0xbd,0xf3,0xf9,0xf6,0x50,0xfc,0x4a,0xfb,0x68,0xfc,0x3,0x3, +0x40,0x8,0x42,0x9,0xa8,0x6,0xdb,0x1,0x95,0xfe,0x6e,0xfd, +0x75,0xfa,0xfa,0xf7,0x6e,0xfd,0x77,0x7,0x4e,0xa,0x14,0x5, +0x77,0x3,0x37,0xa,0xdc,0xd,0x83,0x5,0xfd,0xfb,0x3c,0xfb, +0xe9,0xf8,0x9e,0xf1,0xf2,0xf4,0x59,0x1,0xd4,0x4,0xf5,0x0, +0x80,0x1,0x19,0x6,0xc3,0xa,0x33,0xe,0x78,0xf,0x5d,0xe, +0xc,0xc,0x59,0x9,0x75,0x2,0xf4,0xf7,0x68,0xf5,0x7f,0xfc, +0x66,0x0,0x59,0xfe,0xd7,0xfe,0xe8,0x2,0x7a,0x4,0x43,0x3, +0x12,0x3,0x83,0x2,0x21,0x1,0x39,0x0,0xdf,0xf9,0xce,0xee, +0xe0,0xe9,0xac,0xe9,0xb4,0xe9,0x7b,0xee,0x5,0xf2,0xe5,0xed, +0xef,0xec,0x2e,0xf4,0x56,0xfc,0x0,0x0,0x79,0xfc,0x78,0xf9, +0x56,0xff,0x54,0x2,0x8f,0xfb,0x64,0xf6,0x47,0xf4,0x23,0xf1, +0x71,0xf1,0xad,0xf1,0x75,0xea,0xb2,0xe4,0x46,0xec,0x36,0xf9, +0x29,0xff,0x43,0x5,0x1d,0x12,0xa5,0x1a,0xdc,0x1a,0xfd,0x17, +0x87,0xc,0x36,0xf9,0xde,0xf0,0x60,0xf8,0x39,0xfb,0xc3,0xf2, +0x89,0xf4,0xa6,0x5,0xe4,0xd,0x49,0x9,0xe2,0xb,0x75,0x10, +0xe5,0x7,0x24,0x3,0x90,0xb,0x14,0xc,0x11,0x8,0xb3,0x11, +0x82,0x18,0x16,0x10,0x4a,0x9,0x1a,0x8,0xbb,0x4,0x80,0x3, +0x1d,0x8,0x55,0xe,0x7e,0x15,0xe5,0x22,0x70,0x33,0x6e,0x37, +0xac,0x2a,0xe8,0x1c,0x5d,0x17,0xd5,0x11,0xc6,0x7,0xd7,0x0, +0x54,0x0,0xe2,0x3,0x25,0xb,0x5c,0xf,0xab,0xc,0x7e,0xc, +0xf3,0xe,0xb,0xb,0x44,0x5,0x5d,0x4,0x7e,0x3,0x2e,0x0, +0xca,0x0,0xd8,0x5,0x7f,0x6,0xd7,0xff,0x9c,0xf7,0x9f,0xf3, +0x2d,0xf2,0x42,0xe9,0xbe,0xde,0x1d,0xe6,0xbc,0xf5,0x85,0xf9, +0x7e,0xfd,0xfa,0x9,0xcc,0xa,0xe7,0xfd,0xcc,0xfa,0x9c,0xfe, +0x57,0xf6,0x62,0xf1,0x44,0xfa,0x60,0xf5,0x9e,0xe7,0xea,0xf5, +0xde,0xd,0xe0,0x6,0xee,0xfa,0xa2,0xe,0xdf,0x1b,0xf5,0x4, +0x58,0xfe,0xac,0x1a,0x16,0x22,0x22,0x10,0x25,0xd,0xf6,0xe, +0x6d,0x0,0x6d,0xf1,0x8a,0xec,0x77,0xe9,0x57,0xea,0x71,0xf1, +0x6,0xf3,0x5e,0xf7,0xd7,0xf,0x14,0x22,0x2d,0x14,0x3d,0x4, +0xa3,0x8,0x40,0x3,0xa6,0xe6,0x7c,0xd9,0x4d,0xe7,0xbd,0xe7, +0xac,0xdb,0x90,0xe8,0x7,0xfc,0x3c,0xf7,0xaa,0xf1,0x3b,0xf7, +0x32,0xf0,0xa6,0xe8,0xd3,0xf9,0x1b,0x4,0x3e,0xf3,0xf,0xf2, +0xc5,0x4,0x87,0xfe,0xd6,0xe7,0x5f,0xe1,0x9f,0xdf,0xd3,0xd5, +0x6b,0xd3,0x2f,0xdd,0xbe,0xe6,0xad,0xf1,0xc2,0xff,0x8e,0x5, +0x77,0x9,0xbf,0xd,0x4d,0x1,0x3a,0xf4,0x37,0xf8,0x6a,0xf4, +0xc8,0xe3,0x1b,0xdf,0x38,0xe7,0xe2,0xeb,0x94,0xf0,0x33,0xff, +0xa8,0x1,0x68,0xf5,0xda,0x4,0x26,0x1a,0x5c,0x7,0x54,0xfe, +0x5,0x18,0x3d,0x16,0xdb,0xf7,0xa3,0xf5,0x47,0x6,0xc9,0xfa, +0xe9,0xe3,0x9e,0xe9,0x3b,0xf2,0x89,0xea,0xa4,0xf1,0x20,0xfd, +0xf0,0xf5,0x3f,0xf3,0x76,0xfa,0x9d,0xfe,0x8,0x5,0x17,0x9, +0x90,0xfa,0xcb,0xdf,0xd5,0xd8,0x5d,0xe5,0x3f,0xdf,0xaf,0xd2, +0x3e,0xdd,0x4d,0xe3,0x42,0xdc,0x8,0xe5,0x9a,0xf8,0x45,0x0, +0x45,0xfa,0xa6,0xf8,0x21,0xff,0xe4,0xf6,0x47,0xe9,0xe9,0xf0, +0xf,0xfb,0xab,0xf4,0x5d,0xed,0x8,0xf3,0xf3,0xfa,0x27,0xf4, +0x84,0xf1,0xd5,0x1,0xca,0x5,0xdc,0x0,0xf1,0xd,0x43,0x13, +0xee,0xb,0xa0,0x16,0x11,0x1e,0x1,0x7,0x13,0xf3,0x6e,0xfd, +0xd2,0x2,0xf4,0xed,0x4a,0xe8,0xce,0xf7,0x92,0xf6,0xf,0xf4, +0xc9,0xff,0x25,0x1,0x45,0x1,0x1c,0x9,0xd5,0x3,0xa7,0xfc, +0x65,0x4,0x75,0x3,0x8e,0xeb,0xce,0xe0,0xd8,0xf7,0xea,0xfc, +0xb6,0xe0,0x15,0xe3,0xca,0xfd,0x44,0xf6,0xad,0xe4,0xac,0xf0, +0x7b,0x3,0x14,0x4,0x7c,0xfd,0xef,0x0,0xa6,0x4,0x93,0xff, +0x3c,0x1,0xa5,0x5,0xfb,0xf9,0x5b,0xe7,0x19,0xe4,0x88,0xf1, +0xe5,0xf3,0xfe,0xe8,0x6a,0xf7,0x55,0x10,0xee,0x9,0x38,0x2, +0xaf,0xf,0x7c,0xe,0xfa,0xfe,0x47,0xff,0xca,0x0,0xc,0xf1, +0xd5,0xea,0x0,0xf7,0x2f,0xf9,0xa8,0xfa,0xb2,0x9,0xbb,0x5, +0x2b,0xf6,0x43,0x4,0xc0,0x17,0x1c,0x10,0x0,0x8,0x72,0x11, +0xd5,0x17,0x9f,0x12,0xf2,0xd,0xa5,0x9,0x64,0x2,0xf0,0x2, +0x53,0x6,0x91,0xfd,0x7c,0xf8,0x8c,0x5,0x68,0xd,0x26,0x7, +0xa8,0xc,0x5,0x1a,0xa3,0x14,0xbe,0xa,0x8b,0xd,0x38,0xc, +0x48,0x4,0xf9,0x0,0xf5,0x0,0x3a,0x3,0xc8,0x3,0xdd,0xff, +0xe2,0xfe,0xdf,0x3,0xb4,0xc,0x1b,0x13,0xf1,0x13,0xa6,0x15, +0x8d,0x15,0x7a,0x12,0x41,0x13,0x96,0x13,0xe8,0x12,0x33,0x10, +0x9b,0x8,0x1e,0xc,0xd0,0x11,0xcb,0x3,0x8,0xff,0x63,0x10, +0xb2,0x12,0xfa,0x7,0x6b,0x11,0xa2,0x21,0x8f,0x1b,0x45,0x16, +0x50,0x26,0xe5,0x24,0xd5,0xb,0x61,0x7,0x97,0xe,0x7e,0x5, +0xfc,0xfc,0x8c,0xff,0xae,0x2,0xef,0x3,0x4b,0xa,0x92,0x14, +0x30,0x12,0x8f,0x8,0x6f,0xb,0x39,0xd,0x65,0x3,0x93,0xff, +0xd1,0x5,0x27,0xa,0x2c,0x9,0x9e,0xb,0x1b,0x10,0xda,0x8, +0xed,0x3,0xa6,0x11,0xe6,0x17,0x7a,0xa,0x19,0x5,0x22,0x12, +0x40,0x1d,0x81,0x1a,0x38,0x19,0xea,0x1f,0xba,0x19,0x31,0xa, +0x5c,0xb,0x5,0x13,0x8f,0xc,0xe4,0x5,0x27,0xc,0x12,0x12, +0x88,0xf,0xfd,0xe,0x2d,0x15,0xee,0x17,0xa8,0x10,0x23,0x9, +0xaa,0x9,0x9f,0x8,0xbc,0x4,0xeb,0xa,0xd7,0x11,0x5a,0xa, +0x5c,0x1,0x4c,0x2,0xd2,0x2,0xd0,0xfb,0xa1,0xf4,0x12,0xf3, +0x1b,0xf5,0xfc,0xfa,0x38,0xff,0x40,0xfb,0xec,0xfc,0x50,0x4, +0x4b,0xfc,0x73,0xf2,0xde,0xf9,0x7b,0xfc,0x8a,0xef,0xe3,0xe9, +0x12,0xf5,0x72,0xfe,0xd7,0xfa,0xf8,0xfb,0xbd,0x7,0x1a,0x9, +0xc1,0x0,0xed,0xff,0x91,0x3,0x70,0x6,0x98,0xc,0xc4,0x10, +0x5,0xb,0x54,0x3,0xc6,0x1,0x56,0xff,0x84,0xfe,0x9f,0x5, +0x8c,0x6,0x35,0x1,0xc,0x4,0x77,0x3,0xd7,0xfd,0xa9,0xb, +0x4e,0x21,0x7c,0x1b,0x71,0x8,0xb0,0xb,0x5b,0x12,0x36,0x4, +0x91,0x4,0x41,0x1c,0xcb,0x18,0x3d,0xfb,0xa3,0xf1,0xbb,0xf9, +0x1f,0xfa,0xc8,0xf3,0x8,0xf3,0x1c,0xfb,0x15,0x2,0xc9,0xfe, +0x54,0xf5,0xb7,0xf0,0xe5,0xf7,0xdd,0xff,0xb4,0xf4,0xec,0xdd, +0x5e,0xd8,0xb6,0xe3,0x27,0xe6,0xa0,0xe5,0xd5,0xf6,0xa6,0x0, +0xea,0xeb,0x8b,0xde,0x24,0xf3,0x5c,0x5,0xc6,0xfb,0x11,0xf3, +0xdb,0xfc,0xb,0xfe,0x15,0xed,0x75,0xe2,0x8c,0xe4,0x74,0xed, +0xd6,0xf8,0x6b,0xf3,0xe5,0xe0,0x66,0xe0,0xe0,0xed,0x35,0xf3, +0x9b,0xf6,0x34,0xfe,0x48,0xfd,0x32,0xf2,0xe1,0xef,0x9f,0xf9, +0xf4,0xf8,0x36,0xee,0xb0,0xee,0xda,0xf5,0x8d,0xf9,0x9,0xfc, +0xe9,0xf9,0xc9,0xfb,0x7,0x9,0x7e,0xb,0xac,0xfe,0x4f,0xf9, +0x7,0xfb,0xa4,0xfb,0x70,0x3,0xc2,0xd,0x34,0x6,0xbc,0xef, +0x3,0xeb,0x73,0xfd,0x7,0x1,0x97,0xf0,0x1d,0xed,0x86,0xf3, +0x62,0xf0,0x5e,0xeb,0x80,0xec,0x8e,0xf2,0xbd,0xf8,0x4a,0xf8, +0xd4,0xf6,0x82,0xf7,0x72,0xf3,0xde,0xec,0x81,0xe7,0x9f,0xe7, +0xfe,0xed,0x9a,0xe5,0x78,0xce,0xf7,0xce,0x7b,0xe8,0x77,0xf1, +0x76,0xe6,0x41,0xeb,0x2c,0xff,0x1d,0xff,0x31,0xf0,0xbb,0xf0, +0xe4,0xf7,0x89,0xf3,0x3f,0xed,0x52,0xf0,0x5b,0xf9,0xc0,0xf9, +0xf9,0xed,0x28,0xe8,0x1,0xec,0x8a,0xed,0x50,0xee,0x75,0xf0, +0x7f,0xf1,0xba,0xf6,0xc9,0xff,0x94,0x0,0x84,0xf7,0xd,0xf5, +0x67,0xfb,0x44,0xfa,0xb3,0xf6,0x40,0xfa,0x25,0xf7,0x64,0xee, +0x11,0xf1,0x1b,0xff,0x62,0xe,0x8d,0x12,0x18,0xa,0xf7,0x6, +0x33,0xf,0x1d,0x17,0x9d,0x16,0x83,0xc,0xb5,0x2,0xed,0x3, +0xd7,0xa,0x37,0xc,0x9c,0x5,0x2,0x2,0xec,0x7,0xef,0x9, +0xf6,0x4,0x51,0x5,0x8b,0x5,0x79,0x0,0x98,0x4,0x61,0x13, +0xe6,0x1a,0xc7,0x13,0x52,0x8,0xf2,0x2,0xdf,0x1,0xc9,0xfd, +0xa2,0xf6,0xb0,0xf4,0x54,0xfd,0xd6,0x8,0xc8,0x9,0x56,0xff, +0xda,0xf8,0x2a,0x0,0xaa,0x8,0x4c,0x6,0xcf,0x0,0x61,0xfb, +0x2,0xf1,0x21,0xec,0x11,0xf6,0xc7,0x2,0xd1,0x3,0x36,0xfa, +0xfb,0xf4,0x91,0xfc,0xa1,0x5,0x4e,0xa,0xdd,0xf,0x2b,0x11, +0xa3,0xc,0xe6,0x9,0xf9,0x8,0xd9,0xc,0x4,0x17,0x72,0x1c, +0x7d,0x1b,0x10,0x18,0x3d,0xf,0xad,0x6,0x5d,0x6,0x54,0xe, +0x8f,0x19,0x5a,0x1c,0xcd,0x14,0x22,0xe,0xd8,0xf,0x40,0x1c, +0xb1,0x25,0xdb,0x1b,0x25,0xb,0x8e,0xfe,0xe3,0xf2,0x2,0xf3, +0x43,0x1,0xb0,0xd,0x56,0x11,0x6e,0xe,0x5b,0xc,0x33,0x9, +0x9c,0xf9,0xb3,0xee,0x84,0xfa,0x38,0x6,0xeb,0x2,0xf9,0xfd, +0x29,0xfb,0xa1,0xf9,0x7,0x1,0x58,0xe,0x40,0x10,0xbf,0x2, +0x30,0xf8,0xe5,0xf8,0x5c,0xfc,0xf2,0x3,0xf0,0x10,0x57,0x17, +0x87,0x15,0x76,0x15,0x57,0x14,0xdb,0xa,0x4a,0x3,0xc0,0x6, +0xfb,0x7,0xef,0xff,0x76,0xfb,0xb0,0xfd,0x23,0x0,0x15,0x5, +0xad,0xc,0x4f,0xd,0x81,0x2,0xcf,0xf7,0xcf,0xf7,0x9b,0xfa, +0x3b,0xfb,0x2c,0x1,0xd5,0x8,0xbd,0xa,0xe2,0x9,0x33,0x6, +0xac,0xff,0xfa,0xfd,0x5c,0x3,0xa5,0x8,0xab,0x8,0x7e,0x8, +0xd5,0xc,0xbf,0xf,0x24,0x12,0x10,0x1c,0xce,0x23,0xba,0x1b, +0x1a,0xc,0xd7,0x3,0x58,0x3,0x8b,0x2,0xec,0x0,0xf0,0x1, +0xf0,0x0,0xc0,0xfc,0x84,0xfd,0xa,0x3,0x67,0x5,0x33,0x1, +0xbd,0xf7,0xcf,0xef,0xad,0xee,0x9b,0xef,0x78,0xf1,0xee,0xfa, +0x62,0x7,0xa,0xa,0x61,0x2,0xf5,0xf9,0x9c,0xf8,0xc7,0xfd, +0xe8,0x0,0xb2,0x2,0x37,0x8,0xc2,0x4,0x53,0xf8,0x59,0xff, +0xee,0x16,0x6a,0x19,0xff,0x4,0x7,0xf9,0xa9,0xf9,0x9,0xf5, +0xb9,0xf0,0xba,0xf8,0xe8,0xfd,0x7a,0xf9,0x44,0xfc,0x9e,0x5, +0x4c,0xb,0x18,0xe,0x64,0x8,0x55,0xfb,0x16,0xf9,0x73,0x3, +0x24,0x8,0x74,0x3,0x80,0x5,0x4f,0xd,0xb3,0x5,0x4d,0xf5, +0xc6,0xf4,0x78,0xfc,0xe3,0xf9,0xed,0xf2,0xf9,0xf1,0x20,0xf2, +0x56,0xee,0xba,0xf1,0x28,0xfe,0x7e,0xfe,0x33,0xf3,0x1e,0xf1, +0x61,0xf4,0x16,0xf5,0x1c,0xfa,0x43,0xfe,0x6b,0xfa,0x4c,0xf8, +0xfa,0xff,0x4,0xc,0xa7,0x11,0x3f,0xe,0x93,0xa,0x13,0xb, +0x7,0xb,0xd1,0x9,0xaf,0xa,0x62,0xc,0xa4,0xb,0xde,0x5, +0x67,0xfb,0x54,0xf4,0xd8,0xf6,0x38,0xfc,0xc9,0xfd,0x57,0xfe, +0xd,0xfb,0xf6,0xeb,0xc4,0xdb,0x30,0xdd,0x1b,0xe9,0x1,0xef, +0x6c,0xf1,0xd0,0xf4,0x39,0xf8,0x46,0xfb,0x84,0xf6,0x18,0xed, +0xfb,0xed,0x95,0xf3,0x75,0xf6,0xb1,0x0,0xeb,0xb,0x72,0x6, +0x27,0xf7,0x86,0xf1,0x60,0xf7,0x29,0xfa,0x85,0xf4,0x40,0xef, +0x62,0xee,0xf2,0xf2,0xa2,0xff,0x4d,0xc,0x57,0xd,0x36,0x4, +0xe,0xfa,0x69,0xf3,0xa,0xee,0x86,0xe9,0x98,0xea,0xcb,0xef, +0xf4,0xf0,0xfc,0xee,0xc,0xf0,0x66,0xef,0xd2,0xeb,0xd6,0xf1, +0x34,0xff,0x6b,0x3,0xcb,0xff,0xd6,0xff,0x56,0x5,0xb1,0xa, +0xdc,0x8,0x1c,0x1,0xf9,0xfb,0xea,0xfd,0x1f,0x6,0xc9,0xc, +0x31,0xb,0xe0,0x4,0x96,0xfc,0xb0,0xf7,0xcc,0xfd,0xb1,0x4, +0x7e,0x2,0x67,0x0,0xf2,0x0,0x7f,0xfa,0x98,0xed,0xe,0xe8, +0xff,0xf0,0x38,0xfb,0x1c,0xfa,0x35,0xf2,0xd0,0xe8,0xf1,0xdf, +0x56,0xde,0xd1,0xe8,0xc0,0xf7,0x2c,0xf9,0x4f,0xed,0xcd,0xec, +0x67,0xfa,0x6a,0xff,0x4,0xfa,0xb1,0xf7,0xd7,0xf7,0xb0,0xf5, +0x3,0xf2,0x3c,0xeb,0x56,0xe3,0x8e,0xe5,0xe5,0xf2,0xf0,0xfa, +0x88,0xf5,0xc,0xec,0x2e,0xe8,0x4e,0xeb,0x9,0xf1,0x51,0xf6, +0x81,0xfb,0x55,0xff,0x6a,0x2,0x2a,0x7,0x23,0xc,0xd,0xe, +0xdb,0x7,0x64,0xfe,0x9b,0x3,0x83,0x10,0x73,0xa,0x90,0xfb, +0x16,0xff,0x81,0xb,0x1b,0xa,0x1a,0xfd,0x2,0xf5,0x79,0xfa, +0x66,0x7,0xa2,0xe,0xbe,0x9,0x6a,0xfe,0x3f,0xf4,0xcd,0xec, +0x7b,0xec,0xcd,0xf6,0x6e,0xff,0xae,0xf9,0x5c,0xed,0x3d,0xea, +0x6d,0xf0,0xed,0xef,0x1,0xe6,0xc1,0xe4,0x88,0xef,0xf7,0xf6, +0xb7,0xf5,0xc7,0xef,0x32,0xec,0xe1,0xf1,0x1c,0xf7,0xed,0xee, +0xd5,0xe4,0x6,0xe9,0xc4,0xf2,0xdb,0xf4,0x15,0xf7,0xc2,0xfd, +0x82,0xfc,0x4a,0xf7,0x84,0xfd,0x46,0x7,0x63,0x7,0x41,0x4, +0x28,0x6,0x80,0xa,0x74,0xc,0x39,0xb,0xd0,0x6,0xd4,0x0, +0xf2,0x1,0x65,0xb,0x6d,0xd,0xb7,0x3,0x72,0x0,0x42,0xa, +0x1,0xf,0x47,0x5,0xeb,0xfd,0xf1,0x3,0x83,0xa,0x3d,0x9, +0xfa,0x6,0x28,0x7,0x4d,0x8,0xa0,0xb,0x4,0x11,0x41,0x13, +0x78,0xc,0xf2,0xff,0xee,0xfa,0xb7,0x2,0x45,0x9,0x8e,0x2, +0xcd,0xf7,0x66,0xf5,0xd8,0xfb,0x33,0x6,0xbf,0x9,0xae,0x1, +0x70,0xfb,0xdf,0xfd,0x10,0xff,0x56,0xfc,0xfa,0xfa,0xac,0xf9, +0xa3,0xf5,0x2e,0xf5,0xf2,0xfc,0xa1,0x0,0x4e,0xfa,0x79,0xfa, +0x96,0x2,0x42,0x2,0xa4,0xfe,0x3,0x2,0xf3,0x2,0xc7,0x1, +0x7f,0xb,0x6e,0x15,0x74,0xd,0x8f,0x2,0xd6,0x5,0x29,0x5, +0x49,0xf6,0x25,0xef,0x33,0xf6,0x90,0xf9,0x61,0xf9,0x16,0x4, +0x71,0x10,0x62,0xd,0xf0,0x9,0xcc,0x14,0x1b,0x19,0x84,0x10, +0xf2,0x10,0xce,0x15,0x2d,0xf,0x1d,0xa,0x4b,0xf,0xd5,0x10, +0x8e,0xd,0xe4,0x11,0x27,0x17,0xdb,0xd,0xae,0x0,0x6a,0x3, +0x1b,0x10,0x4c,0x15,0xdc,0xe,0xec,0x6,0xa6,0x8,0xdd,0xe, +0x3,0x10,0xe,0xf,0x0,0xb,0x26,0x1,0xcf,0xf9,0xa,0xf7, +0xb4,0xf6,0xa1,0xfa,0xa4,0xfb,0x73,0xf8,0x44,0xfc,0x71,0x4, +0x9e,0x7,0x74,0x7,0x46,0x7,0x3c,0x7,0xcd,0x3,0x74,0xfc, +0x42,0xfc,0xbb,0x5,0xb3,0x9,0xca,0x1,0x88,0xf9,0x1e,0xf9, +0x8a,0xf8,0x5f,0xf1,0xee,0xed,0x35,0xf3,0xca,0xf9,0x5,0x5, +0x94,0x14,0xda,0x14,0xa7,0x5,0x3c,0x0,0xed,0x4,0x19,0xff, +0xae,0xf4,0xd8,0xf7,0x3b,0x1,0x62,0x4,0x1,0x8,0x5b,0xf, +0xd3,0xe,0x6,0x7,0x63,0x8,0x51,0x11,0x45,0x13,0xbc,0x14, +0xd1,0x1d,0x50,0x24,0x54,0x26,0x21,0x24,0x3f,0x14,0x96,0x2, +0xac,0x2,0xdf,0x9,0xac,0xb,0xf0,0x10,0x9e,0x1a,0x94,0x1d, +0xf1,0x1c,0x29,0x21,0x84,0x22,0x5,0x1d,0x9c,0x19,0xd7,0x14, +0x1a,0xd,0xd6,0x11,0x9f,0x1c,0xda,0x17,0xfd,0xa,0xc4,0x1, +0x13,0xf6,0x5c,0xee,0xa3,0xf4,0xf6,0xfc,0x89,0xfd,0x56,0xfd, +0xf3,0xff,0x9b,0x0,0xde,0xfd,0x92,0xfc,0x2c,0xff,0x5c,0x1, +0x77,0x1,0x6a,0xff,0x95,0xf7,0x54,0xf1,0x49,0xf7,0x7f,0xff, +0x52,0xff,0x92,0xfe,0xd0,0x3,0x2b,0xb,0xcc,0xd,0x4b,0xc, +0x2a,0x10,0x9c,0x16,0xf7,0x15,0x5f,0x13,0x9c,0xc,0xc1,0xf7, +0x14,0xe5,0x64,0xe6,0xa,0xf0,0xcd,0xf4,0xde,0xf5,0x2,0xf6, +0x8b,0xf7,0x86,0xfd,0x9a,0x6,0x30,0xb,0x41,0xb,0x9c,0x10, +0x0,0x13,0xb2,0x5,0xaf,0xfb,0x38,0xff,0x99,0xfb,0xaa,0xf4, +0x87,0xfb,0x43,0x0,0x59,0xf8,0xd0,0xf5,0x4e,0xfe,0xa1,0x5, +0x22,0x9,0xee,0xc,0x63,0xc,0xc9,0x6,0x5d,0x3,0x96,0xfa, +0xe5,0xec,0x44,0xf1,0x6e,0xf8,0xd5,0xe2,0x2c,0xd0,0x7,0xdd, +0x64,0xe7,0xaa,0xe4,0x28,0xf1,0xc1,0x5,0xb4,0xa,0xdc,0x9, +0xa,0x10,0x11,0xf,0xdb,0xff,0xc5,0xf2,0xe8,0xea,0x9a,0xdd, +0xd4,0xd4,0x8d,0xdb,0xf5,0xe4,0x1,0xed,0x5f,0xfd,0xac,0x9, +0x50,0x0,0x1f,0xf0,0x3b,0xf1,0x77,0xfd,0x82,0xfe,0x4e,0xf6, +0x40,0xf6,0xbf,0xfa,0x30,0xfc,0x7e,0x0,0xb1,0x0,0x7e,0xf6, +0xc0,0xef,0x47,0xee,0x61,0xeb,0x20,0xef,0x3c,0xfa,0x42,0x0, +0x77,0x1,0xa1,0xc,0x46,0x1d,0xd1,0x16,0x53,0xff,0x0,0xfb, +0xf7,0x0,0x27,0xf5,0xd7,0xe3,0x1e,0xde,0x16,0xde,0xe5,0xe0, +0x0,0xee,0x15,0xff,0xf,0x1,0x8f,0xfb,0xe6,0x0,0x5,0x4, +0xfb,0xfd,0x46,0xfd,0x53,0xff,0x74,0xff,0xd8,0x1,0x98,0xfe, +0x1c,0xf1,0xcc,0xe4,0x67,0xe3,0xb8,0xe6,0xe3,0xe2,0xab,0xdd, +0x48,0xe3,0xc3,0xf3,0xf9,0xc,0x79,0x25,0x72,0x2c,0xbf,0x24, +0xaf,0x1e,0x62,0x19,0x75,0x9,0x30,0xf6,0x59,0xef,0xb7,0xf0, +0x31,0xf4,0x68,0xfd,0x15,0x2,0x67,0xfd,0xf8,0x2,0x1a,0x15, +0x96,0x1b,0xd7,0x11,0x2d,0xd,0xdb,0x14,0x3b,0x1b,0xdb,0x17, +0x98,0xa,0x60,0xf9,0xd7,0xf1,0xed,0xf4,0xf3,0xf4,0xfb,0xeb, +0x3a,0xe1,0x53,0xe3,0xf8,0xf5,0x96,0x9,0x1a,0x13,0x7c,0x11, +0x8c,0x8,0x32,0x6,0x8b,0xb,0x46,0x6,0xb3,0xf5,0xb0,0xe9, +0x27,0xe3,0x11,0xdf,0x7f,0xe4,0x2d,0xed,0x2a,0xec,0x68,0xed, +0x60,0xfb,0x5c,0x6,0xb7,0x7,0xa7,0x9,0x1,0xc,0x89,0x8, +0xc1,0x1,0x49,0xfd,0xdd,0xfb,0xf0,0xfd,0xba,0xff,0xc5,0xf6, +0x71,0xec,0x51,0xf0,0x92,0xf0,0xbd,0xe2,0xdb,0xdc,0x47,0xe3, +0x4b,0xea,0xe2,0xf3,0x42,0x1,0x8a,0xa,0xcc,0xb,0x6,0xc, +0xb4,0x9,0xab,0xf8,0xb2,0xe8,0x36,0xeb,0xd3,0xe9,0xd5,0xe0, +0xe8,0xe9,0xdc,0xfa,0xfe,0xff,0x4b,0x8,0x28,0x1c,0x18,0x2a, +0x15,0x2a,0xfa,0x21,0x7e,0x15,0x62,0x10,0x9e,0x18,0xb9,0x16, +0xb9,0x3,0x73,0xfc,0x62,0x0,0xf3,0xf5,0x46,0xe9,0xe,0xef, +0x92,0xf6,0x8b,0xf1,0x40,0xec,0xed,0xee,0x1f,0xfc,0x5d,0xf, +0x28,0x13,0x4f,0xb,0xca,0xd,0x4d,0x7,0x62,0xec,0x93,0xde, +0x32,0xe2,0x45,0xe0,0x14,0xde,0xea,0xe6,0xfc,0xf6,0x9a,0x5, +0xc6,0x8,0x2,0x0,0xbb,0xf6,0xc3,0xf4,0xec,0xf2,0xb3,0xe9, +0xd6,0xe3,0xa7,0xe6,0xba,0xe8,0x98,0xef,0x1a,0xfc,0x50,0xf8, +0xcc,0xe7,0xb5,0xe3,0xfc,0xe6,0x2d,0xe7,0xb5,0xef,0xb1,0xf9, +0x5e,0xf4,0x4,0xf2,0x67,0x0,0x7e,0x5,0xed,0xf9,0x6e,0xf7, +0x73,0xfa,0x3d,0xf0,0xf3,0xe8,0xe,0xe9,0xf2,0xdc,0x2f,0xdd, +0xda,0xf7,0x71,0xfa,0xe1,0xe8,0xf7,0xf6,0x40,0x5,0x22,0xf3, +0xb,0xf0,0xa8,0x2,0xe5,0xfa,0x9b,0xe2,0x97,0xe6,0x62,0xfc, +0x9b,0x1,0xa4,0x1,0xc9,0xa,0xa9,0x9,0x85,0x2,0x4b,0x4, +0x35,0xfe,0x18,0xf5,0xb2,0xff,0x6f,0xb,0xd8,0x7,0xec,0xb, +0xb4,0x1b,0x7e,0x19,0x5,0x7,0xc0,0x4,0xe9,0x8,0x53,0xf8, +0x10,0xec,0x4c,0xf9,0xea,0x3,0x2d,0x3,0xf0,0x9,0xfc,0xf, +0x3d,0x9,0xa6,0x5,0xf,0xa,0x1a,0x3,0xad,0xf2,0x3c,0xee, +0x61,0xf0,0x92,0xe8,0x61,0xe4,0x1d,0xf2,0x65,0xfe,0x37,0xfb, +0x79,0xfb,0xa8,0x6,0x4a,0x7,0xa3,0xfc,0x6f,0x0,0x95,0xd, +0xb9,0x7,0x87,0xfe,0x5f,0x12,0x84,0x29,0xaf,0x23,0xab,0x1b, +0xbe,0x23,0x6a,0x24,0x4f,0x1d,0x10,0x1f,0x8f,0x1e,0x69,0x17, +0x77,0x1e,0x60,0x2f,0x18,0x31,0xf4,0x2a,0xc7,0x2b,0xf3,0x26, +0x4f,0x1c,0x3b,0x19,0xf7,0x13,0x43,0x7,0x75,0x3,0x6,0xc, +0xb7,0x13,0x6c,0x14,0x33,0x14,0x50,0x16,0x87,0x14,0x36,0xc, +0x22,0x2,0x47,0xfe,0xd8,0x2,0x84,0x2,0xe,0xfe,0xbc,0x4, +0x17,0x4,0xf4,0xf2,0x31,0xf5,0xed,0xfe,0x37,0xe6,0xcc,0xd4, +0xc2,0xf0,0x8a,0xfe,0x60,0xec,0xc2,0xf9,0x5,0x17,0xa5,0x7, +0x45,0xf6,0xb0,0xa,0x35,0x9,0x6d,0xec,0xb5,0xf5,0xc3,0xe, +0xea,0x5,0xd,0x2,0x1e,0x1b,0x44,0x25,0xff,0x18,0x5e,0x16, +0x1,0x18,0x2b,0xb,0x84,0x1,0x50,0xb,0xde,0x13,0x8f,0xc, +0x64,0x6,0x68,0xa,0x65,0xb,0x10,0x5,0xbc,0x4,0x27,0xb, +0xa4,0x3,0xc0,0xf1,0xf4,0xf2,0x2f,0xff,0x95,0xfe,0x89,0x2, +0xf9,0x10,0x6f,0xd,0x60,0x1,0x4b,0xb,0xd1,0x14,0x9c,0x1, +0x96,0xf1,0x6b,0xfe,0xa1,0x8,0x66,0x2,0xdf,0x5,0xca,0x12, +0x57,0x13,0x91,0x6,0x68,0xfc,0xaa,0x0,0xef,0x2,0x21,0xef, +0xf8,0xe0,0xe8,0xf0,0xfb,0xfa,0xea,0xec,0x99,0xf0,0x5f,0xc, +0x31,0xe,0x3a,0xf5,0x8e,0xf0,0x1f,0xfa,0x52,0xf1,0x4c,0xe7, +0x47,0xec,0xc2,0xe8,0xab,0xdd,0xb5,0xe4,0x33,0xf0,0x86,0xed, +0x33,0xf3,0xd1,0xfe,0x8d,0xf0,0x5,0xe3,0x59,0xf9,0x48,0x7, +0xa3,0xf0,0xb0,0xeb,0x98,0x5,0x55,0x2,0x5e,0xec,0xf1,0x3, +0x39,0x22,0x93,0xa,0xd9,0xf7,0x16,0x12,0x4f,0x1a,0x4b,0x6, +0x2d,0xd,0x96,0x21,0xfd,0x14,0xfa,0x1,0x91,0x11,0x44,0x1d, +0xe4,0x3,0x43,0xf8,0x21,0xb,0xf7,0x4,0x45,0xec,0xe3,0xf5, +0x70,0x8,0x4,0xf4,0x16,0xdf,0x2d,0xf4,0x6c,0xff,0x40,0xe3, +0xcd,0xe2,0xb3,0x6,0xd6,0x6,0xa2,0xed,0x37,0xf2,0xaa,0xf9, +0x30,0xe3,0xc5,0xd7,0x59,0xed,0xdf,0xef,0xf8,0xd2,0xb2,0xd9, +0x39,0x4,0x8a,0x9,0x78,0xf6,0x80,0x2,0x42,0x11,0xe6,0x1, +0xd5,0xf5,0x6d,0xfb,0xfd,0xf4,0x60,0xe7,0x99,0xf2,0x4f,0x5, +0x26,0x3,0x26,0x1,0xdd,0x6,0x68,0xff,0x9c,0xf7,0x81,0xfe, +0x15,0x1,0xf,0xfa,0xa4,0x1,0xc4,0x18,0x2b,0x14,0x87,0xf0, +0xbe,0xeb,0xaf,0x3,0x46,0xfb,0x9,0xe2,0x8e,0xe2,0xec,0xea, +0xa0,0xea,0x33,0xf2,0x7f,0x3,0x62,0x5,0x70,0xf7,0xcd,0xfb, +0xaf,0x9,0xd6,0xfe,0xdb,0xef,0xc8,0xf3,0x72,0xfb,0x3f,0xfe, +0x3f,0xfb,0x73,0xf5,0xa5,0xf1,0xbd,0xef,0x1d,0xfd,0xff,0xf, +0x14,0x5,0x91,0xf0,0xff,0xf9,0xa4,0xb,0x54,0x5,0x2b,0xf6, +0xec,0xf6,0x22,0xf9,0x42,0xf0,0x66,0xf8,0x9d,0xb,0x3b,0x4, +0xa6,0xf6,0x3,0xfc,0xe1,0xfc,0x15,0xf3,0x9,0xf0,0x5,0xf9, +0x2a,0x5,0x86,0x7,0x4,0x7,0x81,0x8,0xa,0xfd,0x7f,0xf3, +0x19,0x1,0x63,0x9,0x18,0xf8,0xe8,0xec,0x79,0xfc,0x7d,0x9, +0x2,0x0,0x24,0xfc,0xff,0x5,0xb3,0xfe,0x42,0xed,0x35,0xef, +0x4a,0xfb,0x16,0x0,0x21,0x0,0xb4,0x1,0xa9,0x5,0x4e,0x7, +0x1,0x8,0xfc,0x9,0x83,0x8,0x59,0x8,0x30,0x8,0x51,0xff, +0xe1,0xfe,0xd4,0xd,0x7c,0x13,0x6a,0xc,0x1a,0x8,0x64,0xb, +0x25,0x11,0xa3,0xa,0xc8,0xfc,0x74,0xfc,0x85,0xfe,0x4e,0xf6, +0x9e,0xf5,0xae,0x0,0x90,0x6,0x88,0x2,0x2c,0x1,0xfa,0x8, +0xbc,0xa,0x31,0x0,0x88,0xfa,0xa4,0xfd,0xf3,0xfe,0x72,0x1, +0xd,0x10,0x9f,0x24,0xbe,0x26,0xa1,0x13,0x50,0x4,0xf4,0xfe, +0x60,0xfb,0xe,0xfd,0xbc,0x2,0xcb,0x8,0x2e,0x10,0xb1,0x11, +0x6f,0xd,0x13,0x10,0x82,0x16,0x15,0x11,0x47,0x2,0xb0,0xfa, +0x87,0xf8,0xe4,0xee,0x2d,0xec,0x59,0x3,0x5b,0x17,0x7b,0x5, +0xa3,0xed,0x74,0xf9,0x95,0xb,0xff,0x4,0x59,0x4,0x24,0x15, +0xdd,0x11,0xd7,0xf8,0xb6,0xf1,0x77,0xfe,0x78,0xfe,0xf4,0xf7, +0x75,0xb,0xf,0x26,0x3,0x1e,0xb,0x5,0xba,0x1,0x54,0x7, +0x6d,0xfd,0x6f,0xf3,0x73,0xf8,0x3d,0xfd,0xc9,0xfe,0xe,0xc, +0x17,0x1b,0x90,0x18,0xea,0xc,0x36,0x6,0x35,0xfe,0x65,0xf0, +0x41,0xeb,0xfa,0xf2,0x32,0xf8,0xfb,0xfd,0xd2,0xe,0x3d,0x17, +0xe2,0xa,0x3e,0xff,0x14,0xfb,0x3f,0xeb,0xc9,0xd4,0x5d,0xd4, +0xb1,0xe5,0x59,0xec,0x46,0xef,0xd9,0xff,0x6b,0xd,0xf1,0x10, +0xa8,0x18,0x90,0x17,0x63,0x0,0xb9,0xef,0xff,0xf6,0xe1,0xfc, +0x2a,0xfa,0xcb,0x5,0x44,0x17,0xe3,0x16,0x53,0x16,0x85,0x21, +0x50,0x16,0xcc,0xef,0xc8,0xdc,0xf7,0xe7,0x68,0xec,0x61,0xe2, +0x54,0xe3,0x59,0xf1,0x49,0xf7,0x66,0xf2,0xee,0xef,0xa,0xec, +0xcd,0xde,0xcb,0xd6,0x7c,0xdd,0x27,0xe8,0x19,0xf5,0x1,0x7, +0x28,0x13,0x55,0x14,0xa0,0x11,0x2a,0xd,0x66,0x6,0x2d,0x7, +0x96,0x12,0xdf,0x12,0x42,0x2,0xd,0x1,0x55,0x17,0xb0,0x24, +0x19,0x1f,0x2d,0x18,0xb2,0x12,0x38,0x7,0x97,0xfc,0xd9,0xfb, +0x72,0xfb,0x30,0xf4,0x64,0xf4,0xda,0x1,0xbb,0xc,0xcc,0xa, +0x2d,0x0,0x8c,0xf6,0x5f,0xf5,0x3a,0xf8,0xee,0xf5,0x53,0xf1, +0x47,0xf2,0x31,0xf5,0xc4,0xf6,0x2a,0xfd,0x97,0x1,0x49,0xfa, +0xb4,0xf5,0x63,0xf8,0x19,0xf2,0x85,0xea,0xcd,0xee,0x9d,0xf2, +0xf9,0xf3,0x98,0xfe,0x4a,0xa,0xa6,0x8,0x26,0xff,0xb1,0xfc, +0x67,0x1,0xe7,0x1,0x4,0xff,0x8f,0xff,0x3a,0x0,0xf,0x1, +0xb2,0x8,0x1d,0x14,0x9a,0x18,0xc1,0x13,0xc9,0xd,0x49,0x9, +0x36,0x3,0xf2,0x0,0x52,0x0,0xe6,0xf5,0x14,0xec,0x56,0xf1, +0x9c,0xfa,0x6,0xfe,0x6a,0xfe,0xa1,0xf9,0xda,0xf1,0x84,0xf2, +0xd5,0xfb,0x1f,0x2,0xa,0x3,0x13,0x6,0xe1,0xc,0x38,0x15, +0x93,0x1b,0xab,0x16,0x53,0x7,0x7,0xfd,0x9,0xfc,0x60,0xfc, +0xc0,0xfd,0xa8,0x0,0xd4,0xfe,0xa6,0xfb,0x25,0x0,0xad,0x5, +0x3e,0x4,0xa0,0x1,0xcb,0xff,0xe8,0xfc,0x49,0xfa,0xc3,0xf4, +0x8f,0xee,0xc,0xef,0xc0,0xf4,0x7c,0xfb,0x2a,0xfd,0xc6,0xf8, +0xd0,0xf7,0xfa,0xf5,0x6f,0xf0,0x7c,0xf7,0x7e,0x2,0xd7,0xfc, +0xdf,0xf4,0xd9,0xf6,0x62,0xf6,0xd8,0xf1,0xa0,0xf1,0xaa,0xf1, +0x4,0xeb,0xee,0xe6,0xb8,0xee,0xf,0xf6,0xfb,0xf5,0xbd,0xfa, +0xe8,0x3,0x2e,0x6,0xfa,0x3,0xa0,0x4,0x80,0x5,0xde,0x1, +0x9c,0xff,0xaf,0x3,0x5a,0x6,0xaa,0x6,0x34,0xa,0xd7,0xa, +0x51,0x8,0x52,0xa,0x4b,0x9,0x52,0x1,0x22,0xfe,0xbd,0xfd, +0xa6,0xf7,0xb9,0xf4,0xc2,0xf8,0xdd,0xf8,0xd1,0xf3,0xfd,0xf0, +0x2c,0xf4,0x52,0xfc,0x2a,0x1,0x5f,0x0,0x42,0x1,0xc0,0x1, +0xf1,0xfe,0x6d,0xfe,0x34,0x0,0x3d,0x6,0x9e,0x12,0x45,0x16, +0x67,0xc,0xb1,0x7,0x7b,0x8,0xab,0xfe,0xe3,0xf3,0xc,0xf7, +0x49,0xf8,0xd4,0xed,0x38,0xed,0xdb,0xf9,0xd3,0xf9,0xd,0xed, +0x8b,0xec,0xad,0xf5,0xe,0xf4,0x94,0xed,0xf0,0xee,0x3e,0xf0, +0xe8,0xf2,0x2c,0x1,0x21,0xb,0xdf,0x3,0x40,0xfd,0x87,0xfd, +0x5d,0xf7,0x2e,0xf1,0x1a,0xf7,0x43,0xfd,0xbe,0xfb,0xdd,0xfd, +0xdd,0x2,0xba,0x1,0x1,0x1,0xb1,0x4,0x29,0x6,0xc0,0x5, +0xb6,0x5,0x44,0x3,0xe7,0xfd,0x44,0xfa,0x24,0xfe,0x75,0x4, +0x6d,0x4,0x39,0x6,0x15,0xf,0x84,0x11,0x54,0xf,0x24,0x18, +0xae,0x20,0x7f,0x18,0xca,0xf,0x62,0x12,0x9b,0x10,0x73,0xa, +0xb7,0xd,0x2b,0x10,0x94,0x9,0x37,0x8,0x45,0xa,0xf3,0x0, +0xf1,0xf6,0x62,0xfa,0x39,0x1,0x23,0x3,0x87,0x0,0x1b,0xf7, +0x6f,0xf0,0x1c,0xf4,0x64,0xf6,0x4d,0xf8,0x55,0x2,0x63,0x6, +0x30,0x0,0x6f,0x1,0x54,0x9,0x72,0x8,0x6b,0x1,0x98,0xff, +0xfb,0xff,0x2a,0xff,0x33,0x5,0x14,0xe,0x34,0xf,0x6c,0xe, +0x8e,0xd,0x12,0x6,0x22,0xfc,0x24,0xf5,0x7e,0xf4,0xdf,0xfb, +0xa6,0x3,0x9f,0x6,0xc7,0x4,0xb2,0xff,0x15,0xfb,0x3f,0xf4, +0x92,0xef,0xf9,0xf3,0xc6,0xf2,0x70,0xee,0x81,0xfd,0x29,0xe, +0xe,0x8,0x10,0xfe,0xaf,0xff,0x63,0x1,0xef,0xfa,0x83,0xf2, +0x99,0xf2,0x23,0xfd,0x60,0xa,0x74,0x12,0x41,0x15,0x5e,0x14, +0xd6,0x8,0x39,0xfa,0x27,0xff,0x7c,0xa,0x76,0x4,0x47,0x2, +0x0,0x11,0x53,0x19,0xf6,0x19,0x42,0x1d,0xd8,0x16,0x73,0xa, +0xf2,0x9,0xc6,0x5,0xb7,0xf1,0xa0,0xeb,0x1a,0xfb,0xa2,0xfd, +0x67,0xf2,0xbd,0xf6,0x66,0x0,0x96,0xf5,0x5c,0xe7,0x2e,0xee, +0xc,0xf9,0x4a,0xf5,0xe8,0xf0,0x7b,0xf3,0x67,0xf4,0x95,0xf7, +0xe,0xff,0x6d,0x1,0x4f,0x0,0xfc,0xff,0xf,0xf8,0xe7,0xea, +0xc7,0xef,0x45,0x6,0xe8,0xa,0xa,0xfe,0xb5,0x5,0xd,0x18, +0xf0,0x14,0xee,0xf,0x96,0x1b,0x76,0x1c,0x2c,0x8,0x50,0xfd, +0x73,0x5,0x2b,0x5,0xb5,0xfb,0xe,0x3,0xee,0xc,0xdf,0x3, +0xdb,0xff,0x54,0x5,0xd5,0xfa,0xfd,0xf1,0x2,0xff,0x5e,0x5, +0x34,0xff,0xb4,0x7,0xd1,0x11,0xcf,0x6,0xf8,0xfc,0x1a,0x2, +0x92,0xff,0xc7,0xf1,0x36,0xef,0xd6,0xf9,0xb0,0xfe,0xc9,0xfb, +0xa8,0x0,0x9c,0xb,0xeb,0xb,0x52,0x2,0x14,0xfc,0x4,0xfc, +0xe8,0xfd,0xb6,0xff,0x7a,0x0,0xeb,0x0,0xdd,0x3,0x45,0x5, +0xa8,0xfe,0x80,0xfb,0x6d,0x4,0x7c,0x5,0xf3,0xf9,0xf,0xfb, +0x43,0x7,0x31,0x7,0x18,0x0,0x90,0x2,0xe6,0x5,0x74,0xfd, +0xfa,0xf7,0x8b,0x0,0x56,0x0,0x88,0xf1,0x4d,0xee,0xe0,0xf2, +0xc3,0xef,0x62,0xf3,0x2c,0xf9,0x20,0xef,0xa,0xea,0x77,0xf4, +0xc,0xf6,0xb9,0xf0,0xf9,0xf2,0x3d,0xf0,0xff,0xe7,0x2,0xea, +0x55,0xed,0xe3,0xe7,0x99,0xe6,0xe,0xe9,0xdd,0xe1,0xde,0xda, +0x8e,0xde,0xc,0xdf,0x20,0xda,0xda,0xdd,0x2c,0xe3,0xe9,0xde, +0xa5,0xdc,0x50,0xe1,0xe9,0xe0,0x5c,0xdb,0x9a,0xd9,0x69,0xdb, +0x9b,0xde,0x42,0xe2,0xf3,0xe1,0x75,0xde,0xb5,0xde,0xee,0xe2, +0xd6,0xe3,0x1f,0xdf,0xfa,0xdc,0x9,0xe1,0xb1,0xe2,0x51,0xe1, +0xb0,0xe3,0x7d,0xe5,0xd9,0xe4,0xd7,0xe7,0x8,0xeb,0x3a,0xe9, +0x28,0xe7,0x20,0xea,0x4d,0xee,0x71,0xee,0x84,0xf1,0x2,0xf9, +0x70,0xf9,0x6c,0xf8,0x4,0xfe,0xd4,0xff,0xc7,0xfe,0x64,0x1, +0xdd,0x2,0x5,0x4,0xee,0x5,0xc1,0x7,0x8,0xa,0x6e,0x6, +0x29,0x2,0xd6,0x3,0x36,0xfe,0xf,0xf6,0x67,0xfc,0xb8,0x3, +0x81,0xff,0xba,0xfe,0xd4,0x6,0xa1,0x6,0x4b,0xfd,0xc,0xff, +0xee,0x6,0x3c,0x5,0x35,0x5,0x83,0x9,0x3d,0x9,0xc4,0xc, +0x7d,0x12,0x7e,0x12,0xbb,0x14,0x1,0x19,0xbd,0x1a,0xb5,0x1e, +0x3e,0x24,0x3e,0x27,0xf1,0x26,0x88,0x26,0x0,0x29,0xee,0x27, +0x95,0x22,0x23,0x23,0xea,0x28,0x27,0x2c,0x19,0x2c,0x68,0x2c, +0xe0,0x2f,0xa0,0x32,0x89,0x30,0x44,0x2f,0x6b,0x32,0xbc,0x33, +0x13,0x32,0x69,0x35,0xac,0x3b,0x6f,0x39,0x73,0x32,0xb5,0x31, +0xee,0x30,0xef,0x2a,0xc8,0x2c,0xe3,0x37,0xd3,0x3b,0xfb,0x38, +0x33,0x38,0xce,0x33,0x90,0x2d,0x99,0x2d,0x2f,0x2d,0xe5,0x27, +0x7d,0x22,0x1,0x21,0xf0,0x26,0x31,0x2f,0x6f,0x32,0x81,0x32, +0xd1,0x31,0xac,0x30,0x4f,0x2c,0xea,0x24,0x51,0x22,0xfa,0x23, +0x35,0x27,0xdc,0x2b,0x13,0x2a,0x2a,0x23,0x5f,0x19,0xa5,0xa, +0xdb,0x6,0x14,0xb,0xc2,0x0,0x7f,0xf5,0xe,0xfb,0xb8,0x4, +0x2e,0x6,0x67,0x4,0x22,0xa,0x31,0xc,0xfc,0xff,0x41,0xf8, +0xf2,0xf4,0x29,0xed,0x15,0xee,0x48,0xf1,0x38,0xf0,0xca,0xf1, +0x69,0xea,0x15,0xe0,0x61,0xe1,0x66,0xe2,0x9d,0xe0,0x3a,0xe1, +0xbe,0xe3,0x76,0xe6,0xc8,0xe2,0xcf,0xe2,0xf0,0xe6,0xaa,0xdd, +0xfc,0xd7,0x42,0xdb,0x18,0xd2,0x7a,0xcc,0x76,0xd3,0xee,0xd6, +0x60,0xdd,0x9b,0xe6,0xb,0xe6,0x9b,0xe3,0xdc,0xeb,0x69,0xf6, +0x51,0xf2,0x72,0xec,0xb9,0xf2,0xb3,0xf0,0x15,0xe9,0x86,0xec, +0x2b,0xed,0xa8,0xeb,0xe1,0xee,0x79,0xec,0x87,0xea,0x11,0xed, +0xfe,0xed,0x81,0xf1,0x2f,0xf5,0x8f,0xf5,0xda,0xf5,0xea,0xf5, +0x89,0xf5,0x2b,0xf3,0x92,0xf3,0x8a,0xf6,0xaa,0xef,0x59,0xeb, +0x75,0xf3,0xfb,0xf2,0x64,0xed,0x8e,0xf1,0x68,0xf4,0x9a,0xf3, +0x41,0xf6,0x4d,0xf8,0x2d,0xf3,0xa0,0xe9,0x54,0xe8,0x84,0xea, +0xfe,0xe2,0x16,0xde,0x72,0xe0,0xf2,0xdc,0x8b,0xd8,0x83,0xda, +0x58,0xde,0x8f,0xe1,0x2a,0xe3,0xf0,0xe4,0x1c,0xe8,0x64,0xea, +0x5d,0xec,0x5e,0xed,0x27,0xed,0x8,0xef,0x79,0xf0,0xb1,0xec, +0x90,0xe8,0x6b,0xeb,0x6,0xef,0xfd,0xec,0xae,0xef,0x2d,0xf7, +0xc8,0xf7,0xbb,0xf9,0x4b,0x0,0x81,0xfc,0x69,0xf4,0xc4,0xf6, +0x29,0xfc,0xcd,0xfc,0x61,0xfd,0xaa,0xfd,0x0,0xfa,0x51,0xf9, +0x4,0xff,0x38,0x0,0xa1,0xfd,0x54,0x1,0x62,0x4,0x51,0x2, +0xbb,0x4,0xcf,0x9,0x54,0x9,0x46,0x7,0x39,0x8,0xa8,0x6, +0x12,0x1,0x50,0xff,0x27,0xff,0xb,0xfa,0xbb,0xf8,0xa6,0xfc, +0x6a,0xfa,0xde,0xf7,0xd9,0xfc,0x4f,0xff,0xeb,0xfc,0xd7,0xfd, +0xe1,0xff,0xfb,0xfe,0x20,0xff,0x49,0xff,0xe4,0xfa,0xae,0xf7, +0xb,0xf9,0xb0,0xf8,0x9e,0xf8,0xc6,0xfb,0xae,0xfb,0x6d,0xf9, +0xea,0xf9,0x89,0xfb,0x63,0xfe,0x9e,0x0,0x3d,0xff,0x4c,0xfe, +0xe1,0xff,0x32,0x1,0xdc,0x0,0xbd,0xff,0x86,0xff,0x7e,0xfe, +0x97,0xfb,0x85,0xfa,0xc4,0xfb,0x1b,0xfe,0x47,0x2,0x19,0x6, +0x59,0x7,0xd0,0x6,0x7b,0x6,0xbf,0x7,0xbe,0x8,0xef,0x7, +0x73,0x6,0x26,0x5,0xde,0x4,0x1b,0x5,0xa5,0x4,0x75,0x3, +0x5f,0x1,0x46,0x0,0x39,0x1,0xcc,0x1,0xc5,0x2,0x4,0x5, +0x54,0x6,0xc9,0x7,0xd7,0x9,0xb3,0x9,0x37,0x8,0xe7,0x7, +0x23,0x8,0x92,0x7,0xf2,0x6,0xa,0x8,0x11,0xa,0x99,0xa, +0xc2,0xa,0x1f,0xe,0xf0,0x13,0xb2,0x17,0x8a,0x18,0xa5,0x18, +0xd4,0x17,0x54,0x15,0x0,0x12,0xe8,0xf,0x1d,0x11,0xea,0x13, +0x42,0x15,0xb5,0x15,0x4,0x16,0xf7,0x14,0xab,0x12,0xb3,0x11, +0xa4,0x13,0x0,0x15,0x4f,0x12,0xc1,0xe,0x17,0xe,0x9d,0xe, +0x30,0xe,0x40,0xe,0xde,0xf,0xa0,0x10,0x18,0xe,0x38,0x9, +0x14,0x5,0xac,0x2,0xbe,0xfe,0x9c,0xf9,0x2a,0xfa,0x9d,0x0, +0x9,0x5,0xa5,0x5,0x6,0x7,0x13,0x9,0x66,0x6,0x16,0xff, +0x37,0xfa,0x96,0xf8,0x6,0xf6,0x56,0xf6,0xdc,0xfd,0xed,0x6, +0xb8,0xa,0xc6,0x9,0x40,0x8,0xb7,0x7,0x4b,0x6,0xdb,0x2, +0xbf,0x0,0x23,0x4,0x2c,0x9,0xe9,0x8,0x76,0x6,0x99,0x7, +0x5a,0xa,0x18,0xd,0x1c,0x11,0x53,0x13,0x29,0xe,0x78,0x3, +0xff,0xfe,0xb6,0x6,0x1e,0x11,0x2f,0x15,0x8c,0x14,0x55,0x12, +0x93,0xd,0x1d,0x7,0x90,0x6,0x7b,0xe,0xa0,0x13,0x80,0xf, +0x78,0x9,0x8b,0x6,0xd4,0x4,0xa3,0x3,0x24,0x7,0xdb,0x11, +0xed,0x18,0x27,0x10,0xbf,0xff,0xf9,0xf6,0x78,0xf6,0x25,0xf8, +0x81,0xfb,0x79,0x0,0xad,0x0,0x3,0xf8,0xae,0xef,0x8b,0xf2, +0x4,0xfa,0xe,0xf9,0x9a,0xf2,0x45,0xef,0x3d,0xed,0x7b,0xec, +0xf1,0xf0,0x8b,0xf6,0x74,0xfa,0x41,0xff,0xdb,0x1,0xe3,0xfe, +0x94,0xf9,0x8,0xf6,0x73,0xf6,0xfa,0xfa,0xd5,0x1,0x28,0x7, +0xaf,0x6,0x86,0x2,0xfe,0x0,0x75,0x4,0x43,0xb,0x79,0x10, +0x79,0xf,0x4d,0xa,0xa,0x5,0x15,0x0,0xda,0xfc,0xb7,0x0, +0x1d,0xc,0xc7,0x15,0x9d,0x18,0x69,0x18,0x33,0x14,0x7e,0xa, +0xf4,0x3,0x85,0x6,0x6a,0xb,0xfb,0x9,0x1d,0x3,0xde,0xfd, +0x1c,0xfd,0x18,0x1,0xdf,0xa,0xb2,0x12,0xe8,0xa,0x1c,0xf6, +0x16,0xe8,0x53,0xea,0xd5,0xf2,0x2f,0xf9,0xcc,0xfd,0x3e,0xfd, +0xe,0xf4,0x25,0xeb,0xcc,0xed,0x83,0xf8,0x5,0xff,0x4d,0xfe, +0x3f,0xfb,0xb0,0xf4,0x12,0xe8,0x18,0xe0,0x4d,0xea,0x70,0xff, +0x5d,0xa,0x2d,0x4,0xbe,0xf7,0x5,0xf0,0x1e,0xf1,0xe7,0xfa, +0xdf,0x6,0x5c,0x8,0x86,0xf9,0xd0,0xe6,0x10,0xe4,0x4d,0xf4, +0x10,0x6,0xe0,0xb,0xf5,0x6,0xc0,0xf8,0xdf,0xe5,0xa9,0xdd, +0xfd,0xe6,0x3f,0xfa,0x44,0xe,0xf7,0x16,0x24,0xc,0x3e,0xf8, +0xcd,0xec,0x79,0xf0,0xc3,0xfc,0xdc,0x3,0x65,0xfe,0xda,0xf1, +0xa7,0xe6,0x27,0xe5,0x1d,0xf6,0xab,0x12,0xba,0x20,0xc8,0x12, +0x10,0xfb,0xa6,0xee,0x59,0xed,0xa,0xf5,0x8d,0x9,0x9b,0x1d, +0xf,0x1b,0x6b,0x5,0x14,0xf6,0x9e,0xf8,0x29,0x0,0x60,0x3, +0xc1,0x7,0xdf,0x8,0xcd,0xfb,0x56,0xe8,0x28,0xdf,0xd3,0xe8, +0xe7,0xff,0x37,0xf,0x60,0x8,0xba,0xf2,0xc5,0xdc,0xea,0xd1, +0xb,0xd5,0x1,0xde,0xe3,0xe3,0xe5,0xe6,0x39,0xee,0x1b,0xfa, +0x54,0x3,0x95,0x8,0x88,0x9,0x11,0x4,0x5b,0xfb,0x76,0xf2, +0xb9,0xed,0x96,0xf2,0xe3,0x1,0x49,0x1c,0xb4,0x33,0x2,0x2c, +0x79,0x7,0x7c,0xe8,0x3d,0xe4,0xd6,0xf3,0x55,0x6,0x9e,0x10, +0x5,0xd,0x73,0x0,0x5,0xfd,0xea,0x7,0xbb,0x14,0x90,0x18, +0xc5,0xa,0x26,0xf1,0x2e,0xe1,0xb4,0xe2,0x7c,0xed,0xef,0xf5, +0xcf,0xf6,0x4d,0xf6,0xf3,0xf0,0x92,0xe1,0xc6,0xd9,0xd4,0xe2, +0xf7,0xf0,0x1f,0xfe,0xf8,0xff,0x67,0xe9,0x56,0xcc,0x4a,0xc9, +0x66,0xe2,0x27,0x0,0x5c,0xc,0x42,0xfc,0x5a,0xe0,0xf9,0xd9, +0xf1,0xec,0xea,0x3,0x73,0x10,0x66,0xa,0x50,0xfa,0xc9,0xf6, +0xcf,0x2,0x92,0xf,0x4c,0x10,0xd8,0x6,0x36,0x5,0xd3,0xb, +0x96,0x7,0x6d,0xfd,0x91,0x1,0x65,0xf,0x5,0x12,0x46,0x9, +0x5b,0x6,0x2c,0x8,0xfe,0x6,0x8b,0xa,0x10,0xf,0xb1,0x7, +0x1b,0xf7,0x8e,0xe5,0x88,0xe0,0x44,0xed,0x39,0xf4,0x0,0xeb, +0x79,0xe3,0xe6,0xe0,0x1a,0xde,0xe3,0xe0,0xae,0xe8,0x60,0xeb, +0x93,0xe0,0x99,0xd0,0xd3,0xd3,0x27,0xeb,0x6,0xfd,0x4a,0x0, +0xfb,0xfa,0x88,0xf3,0xe8,0xf7,0xda,0x9,0x3d,0x15,0xe,0xe, +0xa2,0xfa,0xfa,0xeb,0x3b,0xf5,0x73,0x12,0xf7,0x28,0xc8,0x2b, +0xe3,0x23,0x25,0x19,0x37,0xa,0xc0,0xf9,0xf2,0xf2,0x54,0xf7, +0xfb,0xfc,0xdc,0x3,0xcc,0xc,0xb3,0xc,0x77,0x4,0x77,0x1, +0xff,0x5,0x47,0xd,0x94,0xc,0x33,0xf8,0x5c,0xe0,0xd7,0xe0, +0xc7,0xf5,0x42,0xb,0xee,0x19,0xa1,0x1c,0x11,0x10,0x37,0x1, +0x9f,0xfd,0xda,0x0,0x9b,0x2,0xad,0x1,0xdd,0x1,0x4a,0xb, +0x26,0x19,0x5f,0x19,0xf8,0xb,0xb8,0xfd,0x7a,0xf1,0xb3,0xea, +0x7d,0xf0,0xe6,0xff,0xc2,0x9,0xfd,0x3,0x6b,0xfd,0xa3,0x5, +0x56,0xf,0x88,0xa,0xd4,0xfb,0x30,0xf2,0x8c,0xf6,0xba,0xfd, +0x1a,0xfb,0xa8,0xf4,0x4d,0xee,0x9e,0xe8,0xab,0xed,0x23,0xfd, +0xe9,0x4,0x90,0xf9,0x17,0xeb,0xc3,0xf2,0xb,0x8,0xb4,0xe, +0x32,0x6,0x1c,0xfe,0x84,0xfd,0xaa,0x6,0xe5,0x11,0x2b,0x12, +0x20,0x9,0xbe,0x2,0x3d,0x1,0xed,0xfd,0x27,0xfb,0x31,0x0, +0x99,0x8,0xfe,0xf,0x6,0x19,0x99,0x1c,0xdf,0x12,0xe4,0x4, +0xb3,0xfd,0xae,0xfd,0xe1,0x1,0x8f,0x7,0xbd,0xd,0x34,0x14, +0xa7,0x12,0x15,0x4,0xa,0xf9,0xa8,0xfe,0x7,0x7,0x19,0x4, +0x72,0xfb,0x51,0xfa,0x63,0x7,0x5a,0x19,0xba,0x20,0xb6,0x15, +0x13,0xf9,0x99,0xdd,0xb5,0xda,0x66,0xeb,0x1,0xfc,0x10,0x3, +0xee,0x1,0x8a,0x4,0xa8,0xb,0x55,0x7,0x91,0xfa,0xd9,0xf4, +0x7a,0xf7,0x3c,0x0,0x6b,0x9,0x32,0xa,0x97,0x7,0x26,0x8, +0xa2,0x8,0x43,0x7,0xaf,0x1,0xe0,0xf6,0x9b,0xf0,0x43,0xf8, +0x1b,0xa,0xd4,0x18,0xdb,0x19,0xa2,0x10,0x2d,0x7,0x30,0xff, +0xef,0xf7,0x33,0xf5,0xeb,0xf3,0x22,0xef,0xf2,0xf1,0x69,0x3, +0xf5,0x11,0x34,0x11,0x52,0xa,0xb0,0x6,0x5d,0xa,0x79,0x11, +0x68,0xd,0xfb,0xfc,0x93,0xf0,0xc0,0xf0,0xc0,0xfa,0xbd,0x5, +0x9b,0x6,0xfb,0xfe,0x80,0xfb,0xdd,0x2,0x86,0xe,0xd4,0xe, +0x49,0x0,0xfd,0xf2,0xa7,0xf0,0x97,0xf6,0x1e,0x3,0x8e,0x10, +0xe2,0x19,0xef,0x21,0x96,0x22,0xa1,0x11,0x64,0xf9,0x5,0xed, +0x8f,0xf0,0x37,0xfd,0xdb,0x9,0x9f,0xd,0xbd,0xa,0xea,0xc, +0xd9,0x13,0xd8,0x12,0x94,0x6,0x25,0xf7,0x57,0xec,0xa2,0xeb, +0x8d,0xf6,0x66,0x6,0xe1,0x10,0xbe,0x13,0xbc,0x14,0x59,0x14, +0x6a,0xf,0x53,0xa,0x75,0x9,0xc1,0xa,0x24,0xe,0x4f,0x16, +0xec,0x23,0xa5,0x32,0x17,0x37,0xb0,0x2a,0x61,0x16,0x97,0x4, +0xe1,0xf6,0xa6,0xef,0x99,0xef,0x1,0xef,0x67,0xef,0xc8,0xfc, +0x8e,0x10,0x36,0x15,0x6,0x6,0xfe,0xf1,0x80,0xe6,0xcc,0xe1, +0xe7,0xdd,0x70,0xdd,0x98,0xdf,0x3c,0xe2,0x5c,0xed,0x1a,0xfd, +0x13,0x2,0xcf,0xfe,0x6b,0xfd,0x54,0xff,0x48,0x3,0x29,0x4, +0x6f,0xff,0x50,0xfb,0x2d,0xff,0xd4,0xd,0x36,0x1c,0x4b,0x1c, +0x1f,0x14,0xaf,0xc,0xf3,0x5,0x6a,0x4,0x17,0x6,0x60,0x3, +0x8e,0x0,0xdc,0x0,0xa4,0x2,0xfb,0x9,0x27,0x15,0xb4,0x1a, +0xf7,0x16,0xf2,0xd,0xf1,0x5,0xdf,0xfd,0x4b,0xf0,0x7,0xe5, +0x71,0xe8,0xdc,0xf4,0x21,0xfe,0xb1,0x5,0x81,0xe,0xf,0x11, +0x4f,0xa,0x8b,0x0,0xdf,0xf5,0x71,0xe9,0xf8,0xdd,0x2e,0xd7, +0x6,0xdc,0xd3,0xf1,0xe5,0xc,0x5c,0x19,0x4a,0x16,0x69,0x11, +0x55,0xb,0x9c,0xfc,0xf1,0xed,0xbc,0xec,0x94,0xf4,0xf9,0xfa, +0x95,0x1,0x53,0xc,0x7c,0x12,0xda,0xb,0x7c,0x0,0x77,0xf8, +0x2f,0xf0,0x8c,0xe8,0x98,0xe8,0x97,0xef,0xd4,0xf7,0xc9,0xfe, +0x38,0x3,0x41,0x2,0x86,0xfb,0xcc,0xf1,0x94,0xe2,0xa6,0xcf, +0xab,0xca,0x75,0xd9,0xe4,0xe9,0x32,0xf3,0xa0,0xf8,0xbc,0xf6, +0x35,0xf1,0x36,0xf2,0x76,0xf4,0x70,0xef,0x17,0xe9,0x37,0xe9, +0x40,0xef,0xbb,0xf7,0x14,0x1,0xc0,0xa,0x58,0x12,0x18,0x16, +0xd0,0x15,0xc,0xc,0xcf,0xf6,0xa9,0xe6,0x37,0xea,0xb,0xf8, +0xd7,0x4,0xd8,0x10,0xe,0x17,0xd0,0x15,0x0,0x17,0x4c,0x16, +0x95,0x7,0xb5,0xf5,0x9a,0xef,0xa,0xef,0x13,0xec,0x6c,0xec, +0x46,0xf7,0x75,0x9,0x49,0x18,0xa7,0x1b,0x50,0x11,0x25,0xfd, +0x5b,0xe8,0x38,0xda,0x3c,0xd7,0x72,0xe0,0xd8,0xef,0xa1,0x4, +0xcd,0x1e,0xaa,0x29,0x93,0x16,0x1a,0xfc,0xb3,0xf2,0x97,0xf2, +0xed,0xe9,0xa5,0xda,0xb8,0xd6,0x7f,0xe8,0x21,0x8,0x17,0x24, +0xfc,0x2e,0x48,0x28,0x27,0x16,0x2b,0xff,0x5a,0xeb,0xb5,0xdc, +0xb,0xd4,0x84,0xdc,0x53,0xf6,0xf1,0xc,0xf6,0x15,0x93,0x18, +0x79,0x15,0xda,0x3,0xae,0xe7,0xf7,0xd6,0xb4,0xda,0x1c,0xe2, +0xf7,0xe4,0x36,0xee,0x9b,0xfe,0x12,0xb,0x5d,0xf,0x60,0xb, +0x9f,0x1,0xdb,0xfb,0xd,0xfe,0xa3,0x1,0x92,0x2,0xbd,0xfe, +0x3,0xf9,0x77,0x1,0xd0,0x1a,0x5d,0x29,0x6b,0x1a,0x9d,0x2, +0xb4,0x0,0x17,0x12,0xb9,0x19,0xc0,0xc,0xb5,0xfc,0xc,0xfc, +0xb7,0x9,0xc3,0x11,0x9e,0xa,0x1b,0x5,0xe2,0xc,0x36,0x19, +0x34,0x1c,0xe3,0xc,0xe3,0xf6,0x43,0xef,0xc6,0xf3,0x12,0xfc, +0xa3,0xb,0xf0,0x19,0xa4,0x18,0xd8,0xc,0xab,0x2,0x1a,0xfa, +0x9c,0xed,0x77,0xe1,0xa3,0xdf,0xbb,0xe6,0xf0,0xee,0x55,0xf9, +0x60,0x9,0xb7,0x18,0xfd,0x1a,0x86,0xc,0xb8,0xfa,0x23,0xf3, +0xe7,0xef,0xbc,0xe9,0x6f,0xeb,0xe4,0xfa,0x57,0xd,0x25,0x1a, +0xdd,0x19,0xda,0x9,0x9d,0xfb,0x9e,0xfa,0x9a,0xf9,0x35,0xf1, +0xcb,0xec,0xeb,0xf7,0x76,0xe,0x9e,0x1c,0xd9,0x17,0xb0,0xa, +0x89,0x0,0xf,0xfb,0x63,0xf6,0x80,0xf0,0x93,0xee,0x30,0xf3, +0xae,0xfb,0x27,0x7,0x16,0x10,0x58,0x10,0x21,0xd,0x47,0xb, +0x8c,0x6,0x45,0xfe,0xc0,0xf8,0xa6,0xfa,0x9a,0x5,0xa1,0x15, +0xf9,0x1d,0xe3,0x1a,0xbc,0x1a,0x9a,0x20,0x1c,0x1a,0x5a,0x3, +0x1,0xf3,0xed,0xf5,0xe1,0xfd,0xfc,0xfe,0x4f,0xfd,0x50,0xfd, +0x7b,0x4,0xa9,0x10,0xeb,0xe,0x5e,0xff,0x19,0xf6,0xdd,0xf1, +0x14,0xed,0xf7,0xef,0x30,0xf8,0x65,0xff,0xb4,0x6,0xa2,0xb, +0x7f,0xa,0xb7,0x1,0x47,0xf4,0x62,0xea,0x69,0xe5,0x3,0xe3, +0xf9,0xe3,0x92,0xe9,0x89,0xf9,0xe6,0xe,0x6d,0x14,0xfd,0xa, +0x3a,0x7,0x2b,0x5,0x39,0xf8,0x40,0xed,0x59,0xee,0x14,0xf1, +0xc2,0xf4,0xcd,0xfd,0x10,0x1,0xcb,0xfd,0xe9,0x1,0x3f,0xb, +0x79,0xd,0xbf,0x4,0xfb,0xf8,0x47,0xf8,0x6a,0x1,0xc9,0x6, +0x5f,0x7,0x90,0xa,0xf0,0x10,0xb4,0xf,0xc0,0x1,0xc1,0xf9, +0x35,0xfc,0xfc,0xf0,0x45,0xdd,0x9a,0xdd,0x93,0xed,0xcd,0xf9, +0x43,0x2,0xa8,0xa,0x3b,0xb,0x53,0x0,0x5f,0xf5,0x9f,0xef, +0x29,0xe7,0xe0,0xde,0x91,0xe1,0xe5,0xed,0x10,0xfa,0x1d,0x1, +0xb8,0x6,0x44,0xb,0x2a,0x8,0xf9,0xfe,0x88,0xf7,0x97,0xf5, +0x12,0xf9,0x94,0xfd,0xf0,0x1,0xd4,0x7,0xf5,0x8,0xe8,0x4, +0x7,0x7,0xa0,0xd,0xe1,0x7,0x4b,0xf5,0x4a,0xee,0xee,0xf9, +0xf9,0xfe,0xae,0xf9,0x81,0x1,0x3a,0x12,0xdc,0x13,0xd5,0x5, +0xf2,0xfa,0xb6,0xfb,0xbc,0xfc,0x12,0xf9,0xd0,0xfa,0x29,0xfe, +0x7,0xfa,0xb4,0xf8,0x39,0x2,0x7a,0xb,0xa,0x9,0x4a,0x0, +0xc4,0xfc,0x1e,0xfd,0xca,0xfe,0xff,0x5,0x8f,0xa,0xa8,0x3, +0x8f,0xfc,0x4a,0xff,0x5a,0x4,0xe,0x1,0xb7,0xf7,0xb4,0xf5, +0x82,0xff,0x21,0xb,0x40,0x10,0x37,0x10,0xb1,0xe,0xe4,0x8, +0x62,0xfe,0xe8,0xf9,0x46,0xfc,0x65,0xf8,0xc7,0xf1,0xeb,0xf6, +0x25,0x1,0xab,0x0,0xe5,0xfb,0xb9,0x0,0x6c,0x6,0x60,0x2, +0x4b,0x0,0x96,0x5,0xc9,0x6,0x4b,0x4,0xa2,0x5,0x11,0x7, +0x31,0x6,0x89,0x6,0x18,0x5,0xd1,0xfe,0x5,0xfc,0xf2,0x1, +0xc,0x7,0x53,0x5,0xd4,0x2,0xfb,0x2,0xe2,0x5,0xd0,0xa, +0x7a,0xa,0x10,0x3,0xf9,0xfd,0x43,0xfc,0xd4,0xf7,0xc,0xf5, +0x76,0xf8,0x16,0xfd,0xfd,0x1,0xcd,0x6,0x6a,0x3,0x73,0xfa, +0x12,0xf8,0x91,0xfa,0x37,0xfb,0xf1,0xfa,0x36,0xfa,0xb8,0xfb, +0x8b,0xff,0x77,0xfc,0xf2,0xf5,0x92,0xf7,0xb,0xf9,0x9d,0xf2, +0x71,0xef,0x43,0xf3,0xd9,0xf6,0x17,0xfb,0x98,0x3,0xc2,0xb, +0x16,0xd,0xe5,0xa,0x5d,0xc,0xfe,0xd,0x86,0xc,0x1a,0xd, +0xc5,0xc,0x4e,0x7,0xcd,0x3,0x40,0x4,0xe0,0x6,0x70,0xf, +0x30,0x18,0x7a,0x18,0x3a,0x16,0x81,0x17,0x54,0x19,0xff,0x17, +0xfe,0x10,0x3,0x8,0x75,0x6,0x6f,0xb,0xdf,0xb,0xfd,0x5, +0xef,0x2,0xf7,0x5,0x76,0x9,0xb5,0x8,0xb0,0x3,0x4f,0xff, +0xc1,0x0,0xe2,0x6,0x2f,0xd,0x24,0xf,0x17,0xb,0x66,0x5, +0xdf,0xfe,0xcd,0xf4,0x12,0xee,0x90,0xf1,0x2b,0xfa,0x3b,0xfe, +0x47,0xf8,0xec,0xf1,0x1c,0xf9,0x18,0x2,0x1e,0xfc,0xdd,0xf3, +0xea,0xf4,0x2f,0xf4,0xb1,0xf1,0xf2,0xf6,0x67,0xf7,0x6c,0xeb, +0x55,0xea,0xb7,0xf9,0xf7,0xfc,0x3b,0xf1,0x20,0xf0,0x2,0xf9, +0x15,0xfc,0xc4,0xfd,0x2c,0x1,0x87,0xfd,0xc7,0xf9,0xb8,0x1, +0x74,0x9,0xa1,0x4,0x5d,0xfc,0xa1,0xf8,0x6e,0xf7,0x3e,0xf8, +0x99,0xf9,0x52,0xfa,0xf9,0xfd,0x7,0x5,0xfa,0xa,0xca,0xc, +0x3c,0xa,0x1a,0x4,0xaa,0xfb,0x7c,0xf4,0x32,0xf3,0x98,0xf7, +0xc1,0xfc,0x57,0x0,0x50,0x4,0x19,0x7,0xe5,0x4,0x51,0x2, +0xc1,0x1,0x3b,0xf9,0x74,0xea,0xa0,0xe7,0x72,0xf1,0xec,0xf6, +0x4e,0xf7,0x5,0xfe,0x4b,0x4,0xe4,0xfc,0x40,0xf1,0x2b,0xec, +0xb8,0xe4,0x1a,0xdb,0x19,0xdb,0xbc,0xdf,0x20,0xe1,0x86,0xe4, +0x35,0xeb,0xb2,0xf0,0x90,0xf4,0xf,0xf6,0x55,0xf0,0x55,0xe2, +0x75,0xd9,0x63,0xe1,0x42,0xed,0x9d,0xf1,0xa7,0xf7,0xc8,0xfd, +0x73,0xfb,0x58,0xfc,0x41,0x4,0x99,0x2,0xb2,0xf8,0x3,0xf7, +0xb2,0xfb,0xae,0xfb,0xc3,0xfa,0x1c,0x2,0x2d,0xb,0x1d,0xa, +0xa3,0x4,0x83,0x3,0x1a,0x0,0xf,0xf9,0xb7,0xf8,0x3a,0xfe, +0x8a,0x2,0x3,0x8,0xcd,0xe,0x5c,0x10,0xe0,0xd,0x5d,0xd, +0x7e,0xb,0x84,0x4,0xd9,0xff,0xe1,0xff,0x8c,0xfc,0x8a,0xf8, +0x39,0xfd,0x1f,0x7,0xbe,0xe,0xa3,0x12,0x96,0x12,0x2f,0xf, +0xd6,0x9,0xf3,0x4,0xb2,0x3,0xe1,0x4,0x6,0x6,0xda,0x6, +0xa7,0x6,0xd8,0x6,0x1c,0x8,0x4f,0x8,0x2e,0x9,0x13,0xa, +0x8f,0x7,0xff,0x6,0xc2,0x9,0x19,0x8,0x38,0x5,0x6,0x7, +0xc7,0x7,0x5e,0x7,0x20,0xc,0xab,0x11,0xf7,0x11,0x69,0xe, +0x9a,0x5,0x3a,0xf7,0x92,0xec,0x1b,0xec,0x4e,0xf2,0x8b,0xfb, +0x43,0x7,0xcb,0x12,0xdc,0x19,0x93,0x1c,0x3b,0x1c,0x4c,0x13, +0x89,0x1,0x4,0xf4,0x4,0xf1,0x99,0xf5,0x6e,0x2,0x50,0x10, +0x75,0x13,0x55,0x11,0x2e,0x13,0xdc,0x13,0xc0,0xe,0xb7,0x7, +0xf,0x2,0x62,0x0,0x8a,0x4,0x41,0xb,0x2f,0x11,0x54,0x15, +0x92,0x14,0xca,0xd,0xad,0x2,0xc4,0xf4,0x95,0xeb,0xcc,0xec, +0x4c,0xf0,0x10,0xf2,0x34,0xfb,0xce,0xb,0x51,0x17,0x38,0x19, +0x94,0x16,0x23,0xf,0xff,0x1,0xdc,0xf7,0x8a,0xf3,0xa9,0xed, +0x58,0xeb,0xdb,0xf6,0x6e,0x6,0xba,0xc,0x61,0x10,0x3a,0x18, +0x12,0x18,0x11,0xa,0xf3,0xfe,0xd7,0xfe,0x20,0xfe,0xf5,0xfa, +0x76,0xfe,0x95,0x6,0x12,0xc,0x4b,0x10,0x78,0x13,0x74,0xc, +0x56,0xfa,0x3,0xed,0x62,0xea,0x32,0xe6,0xf3,0xe0,0xfe,0xe9, +0x29,0x0,0x60,0x13,0x49,0x1d,0xa1,0x1d,0xb4,0xe,0x4e,0xf3, +0x60,0xde,0xf9,0xda,0xd6,0xde,0xf5,0xe2,0xfc,0xf0,0x1a,0x9, +0x9f,0x17,0x4,0x11,0xf5,0x0,0x7b,0xf9,0x5e,0xfc,0x57,0xfb, +0x9d,0xf3,0x30,0xf3,0x4,0xfc,0x5f,0x3,0x4f,0x7,0xd5,0x9, +0x7c,0x5,0xcf,0xf4,0x75,0xe0,0x29,0xd8,0x8,0xda,0xc8,0xde, +0x4a,0xf1,0xc4,0xe,0xe1,0x1b,0xc7,0x16,0x83,0x15,0x17,0x17, +0xbf,0xb,0xd4,0xf4,0x1c,0xe3,0x1e,0xe2,0x25,0xeb,0xe0,0xf5, +0x65,0x2,0x6d,0x5,0x77,0xfb,0xe9,0xfd,0x2f,0xe,0x16,0xe, +0x49,0x0,0xff,0xfb,0x19,0x0,0xbe,0x4,0x87,0x7,0x5d,0x5, +0x89,0xfe,0xc2,0xf5,0x5c,0xf5,0x5e,0x3,0xd5,0xc,0x3b,0x4, +0x5b,0xf7,0x96,0xf1,0x5a,0xef,0x1b,0xeb,0xe2,0xeb,0xdf,0xfd, +0xfd,0xf,0xb4,0xa,0x2f,0xfe,0x82,0xf9,0xad,0xf0,0xd8,0xe8, +0x1a,0xef,0x8,0xf5,0x96,0xe9,0x69,0xd8,0xc7,0xdc,0xff,0xf7, +0x57,0xb,0x3d,0xd,0x94,0xf,0xe4,0xb,0xdd,0xf4,0x36,0xe3, +0x2d,0xea,0x9f,0xf0,0x69,0xe9,0x27,0xf0,0xf4,0x8,0x10,0x12, +0xfd,0xa,0xe9,0x10,0x33,0x16,0xf6,0xfd,0xdd,0xe1,0x92,0xe2, +0x4b,0xed,0x33,0xf0,0xe8,0xf9,0xed,0xa,0x1a,0x11,0x2d,0xd, +0x81,0xe,0xce,0x10,0x2e,0xfe,0xb7,0xdf,0x24,0xdd,0x6e,0xf8, +0x61,0xe,0x66,0x16,0x5e,0x1d,0x5b,0x1f,0x2e,0x14,0x78,0x5, +0x24,0xfd,0xa8,0xf2,0xd6,0xe3,0x53,0xe0,0x2a,0xe8,0x6,0xed, +0xca,0xf0,0xe1,0xfc,0x8,0xc,0x3c,0xe,0x30,0x0,0x4a,0xf1, +0xef,0xeb,0xf0,0xf0,0xf9,0xfc,0x80,0x2,0x2c,0xfc,0x3b,0xf5, +0x8b,0xf6,0xe6,0x3,0xd4,0x14,0x12,0x18,0x4f,0xf,0x29,0x6, +0x0,0x1,0x4b,0x3,0x85,0xa,0xf,0x12,0xe2,0x17,0x3f,0x17, +0xe0,0x15,0xa9,0x19,0x12,0x14,0x1f,0xff,0x6c,0xed,0xc9,0xec, +0x1,0xf5,0x16,0xf8,0x18,0xfa,0x94,0x3,0x49,0xb,0x6d,0xd, +0x6a,0x12,0x9f,0x14,0x23,0xe,0x53,0xb,0x7e,0xf,0x7c,0x9, +0x9e,0xf7,0xa6,0xf2,0x1c,0x2,0x37,0x10,0xab,0x12,0x26,0xe, +0xb9,0xff,0x78,0xee,0x9b,0xf0,0xf9,0x2,0x74,0x7,0xd9,0xf9, +0x8,0xf4,0x27,0xfb,0x4b,0xff,0x3d,0x1,0x4b,0x9,0x1d,0x10, +0x30,0xe,0x57,0xa,0x6a,0x7,0xbf,0xfb,0xd9,0xec,0x67,0xef, +0x9b,0xfd,0xd6,0x0,0x9f,0xfe,0x55,0x7,0x22,0x12,0x90,0x10, +0xe4,0x8,0x98,0x4,0x81,0xfd,0xe2,0xf1,0xb1,0xef,0xb,0xfa, +0x41,0x3,0x7b,0x6,0xe7,0xb,0xc1,0x15,0xe7,0x19,0xe2,0x12, +0xd0,0x8,0x10,0x0,0x17,0xf6,0x69,0xf0,0x1e,0xf7,0x6f,0x7, +0x9,0x15,0x38,0x19,0xba,0x1a,0xf8,0x19,0x8f,0x10,0xe5,0x7, +0x17,0x6,0x14,0xff,0xda,0xf2,0xbd,0xf1,0x26,0x1,0x45,0x10, +0x60,0xd,0xcb,0x3,0xb8,0x1,0x96,0xfa,0xbd,0xef,0x4,0xf3, +0xd0,0xf8,0xfe,0xf2,0xaa,0xf2,0xc2,0x2,0x87,0x11,0x61,0xf, +0x94,0x8,0x17,0xd,0xf9,0xe,0x44,0xfe,0xd5,0xea,0xcd,0xe4, +0xda,0xe5,0x6b,0xea,0xc3,0xf4,0x7d,0xfb,0xc2,0xf7,0xea,0xf5, +0xe7,0xff,0x96,0x8,0xac,0x1,0xdd,0xf4,0xa6,0xf1,0x62,0xf6, +0x42,0xfc,0xb4,0x0,0x6f,0x0,0xcd,0xfc,0xb7,0xfb,0xdf,0xfe, +0x53,0x2,0xc9,0xff,0x6b,0xf8,0x43,0xf3,0xf8,0xf0,0x26,0xf2, +0x77,0xf8,0x72,0x2,0x3c,0x12,0xb3,0x1e,0xc0,0x17,0xee,0x7, +0x2c,0x0,0xed,0xfd,0x9c,0xfd,0xae,0xfb,0xd6,0xf3,0x71,0xeb, +0xa9,0xe9,0x1a,0xf2,0x80,0xfe,0x97,0x1,0x74,0xfd,0x8c,0xfa, +0xf4,0xf7,0x3c,0xf7,0x85,0xfb,0xb7,0x2,0x55,0x6,0x1e,0x1, +0x44,0xfb,0xca,0xfa,0x56,0xf6,0xe3,0xee,0x8,0xed,0xb0,0xe9, +0xb7,0xdf,0xa4,0xd9,0xe9,0xdc,0x89,0xe2,0x50,0xe8,0x33,0xf1, +0x23,0xf8,0xb0,0xfa,0xd9,0xfe,0x72,0x3,0x50,0x4,0xf0,0x2, +0xf3,0x0,0xfd,0x0,0x6d,0x3,0xd8,0x3,0x83,0x1,0x52,0xff, +0x4,0x0,0xac,0x3,0xb5,0x7,0xfa,0xc,0x6c,0x11,0xfe,0xe, +0x27,0xa,0x14,0x9,0x60,0x7,0x78,0x2,0xce,0xfc,0xc5,0xf5, +0xa7,0xeb,0x10,0xe2,0xb8,0xe0,0xec,0xe7,0x6b,0xee,0xc3,0xee, +0x7d,0xec,0x70,0xed,0x1e,0xf3,0xac,0xfb,0x8b,0x6,0x96,0xf, +0x73,0x10,0x22,0xd,0x53,0xd,0xcc,0xf,0x8f,0x11,0xbb,0x11, +0x28,0xe,0xcd,0x8,0xbd,0x7,0x5c,0xc,0xde,0x13,0x81,0x1b, +0xc4,0x1e,0xbf,0x1b,0x1f,0x18,0xf1,0x14,0x0,0xa,0x0,0xf9, +0xb0,0xed,0x7d,0xe8,0x23,0xe4,0x86,0xe3,0x1a,0xe8,0x89,0xee, +0xa5,0xf4,0x49,0xf8,0x2f,0xfa,0xfc,0xfc,0x96,0x2,0xd1,0xe, +0xb1,0x1a,0x7f,0x17,0x1f,0xd,0xfe,0xb,0x57,0xc,0x44,0x2, +0xeb,0xf3,0xe0,0xea,0xda,0xe7,0xfb,0xe8,0x25,0xf1,0x98,0xfd, +0xea,0x2,0xfc,0x4,0xa8,0x11,0x80,0x20,0xa8,0x20,0x75,0x17, +0xb3,0x11,0xa,0xc,0xfc,0x0,0x8c,0xfa,0xef,0xfe,0xa3,0x3, +0xef,0x3,0xef,0x3,0x8f,0x2,0xc5,0x2,0x8d,0xa,0x44,0x15, +0xb5,0x1a,0x7c,0x17,0x92,0xf,0x8a,0xc,0x94,0xe,0xfb,0xe, +0xe5,0xe,0x8b,0xd,0xdf,0x3,0x35,0xf4,0xea,0xe9,0xbc,0xe9, +0x90,0xec,0x8d,0xec,0x1b,0xee,0x85,0xf3,0xba,0xfa,0xb,0x7, +0xf8,0x15,0x34,0x1b,0xad,0x14,0xc7,0xb,0x51,0x4,0xe5,0xfb, +0xd8,0xf3,0x50,0xef,0x87,0xed,0xf8,0xed,0xbd,0xf0,0xc0,0xf3, +0xfd,0xf6,0x2e,0xf9,0x2e,0xf6,0x8,0xef,0x9e,0xe6,0x75,0xe1, +0xf5,0xe6,0x34,0xf1,0x9f,0xf3,0x51,0xf2,0x2a,0xf7,0x1a,0xff, +0x4f,0x0,0x27,0xf9,0xd,0xf1,0x6c,0xea,0x1f,0xe6,0x3f,0xea, +0x6e,0xf2,0x9e,0xf7,0xbf,0xff,0x69,0x9,0x58,0xc,0x77,0xd, +0xcd,0xf,0xdd,0xc,0x12,0x6,0x27,0x2,0xb8,0x0,0x9,0xfe, +0xf4,0xfb,0x9c,0xfe,0xc2,0x2,0xb8,0x2,0x6e,0x0,0x1,0x1, +0xe5,0x4,0x56,0x8,0x26,0x9,0x20,0x8,0xec,0x3,0x76,0xfd, +0x34,0xfc,0xb7,0x0,0x9b,0x2,0x57,0x0,0x29,0xfe,0xf1,0xfb, +0xb4,0xf9,0xae,0xfb,0xbc,0x0,0x89,0xff,0x9d,0xf7,0xfb,0xf4, +0x4e,0xfa,0x8a,0xff,0xb3,0x2,0xff,0x3,0x47,0x1,0xe1,0xfc, +0x9,0xfb,0xed,0xfb,0x7e,0xfb,0x7e,0xf7,0xea,0xf4,0xce,0xf6, +0xa3,0xf9,0x8,0xfc,0x2d,0xff,0x82,0x3,0xf8,0x6,0xf8,0x5, +0xc8,0x3,0xe7,0x4,0xc,0x5,0xd,0x2,0x47,0xff,0x42,0xfd, +0x91,0xfc,0x75,0xfe,0xd9,0x0,0xed,0x0,0xf1,0xfe,0x58,0xfd, +0x23,0xfc,0x50,0xfa,0x32,0xfa,0x4c,0xfd,0x2f,0x2,0x52,0x6, +0x2c,0x7,0x1f,0x6,0x61,0x6,0x84,0x7,0x3,0x6,0x50,0xff, +0xd4,0xf7,0x8a,0xf5,0x1a,0xf7,0xa2,0xfb,0xd,0x3,0x29,0x7, +0xdc,0x5,0x83,0x4,0xca,0x4,0x46,0x3,0x57,0xfe,0x78,0xf9, +0x78,0xf7,0xd5,0xf5,0x7a,0xf3,0x31,0xf4,0x46,0xf9,0x7d,0xfc, +0x3c,0xf9,0x98,0xf5,0xa7,0xf6,0x22,0xf9,0x5f,0xfb,0xdd,0xfd, +0xd7,0xff,0x7d,0x0,0x5f,0x0,0xad,0x3,0xd9,0x7,0x2,0x5, +0x90,0x1,0x68,0x4,0x28,0x5,0xb,0x0,0x17,0xfb,0x87,0xfb, +0xc3,0x0,0xa4,0x2,0x28,0x0,0xb4,0x0,0x1,0x3,0x95,0x4, +0xbf,0x6,0x4,0x5,0x41,0xfe,0x57,0xf9,0xa,0xfa,0xa,0xfe, +0x64,0x0,0x33,0x0,0xd6,0x1,0x5c,0x4,0x7e,0x3,0x67,0x2, +0x97,0x3,0x3a,0x2,0xbc,0xfe,0x93,0xfe,0xb4,0x0,0x9e,0x2, +0x3a,0x4,0xd,0x4,0x9d,0x2,0x9d,0x0,0xc4,0xfc,0x72,0xf8, +0x44,0xf5,0x19,0xf5,0x12,0xfa,0x3,0x0,0xc8,0x2,0x54,0x3, +0x34,0x2,0xa8,0x1,0x9e,0x0,0x8b,0xf8,0x69,0xef,0xaa,0xf0, +0xbc,0xf6,0xab,0xfb,0x3a,0x4,0xe5,0x8,0x8c,0x1,0xe4,0xfd, +0x6,0x5,0x7c,0x4,0x44,0xf9,0x8a,0xf4,0x29,0xf8,0x77,0xf8, +0x8b,0xf6,0x69,0xfd,0xf0,0x6,0xde,0x2,0x29,0xfa,0x97,0xfd, +0x8c,0x1,0xeb,0xf9,0x23,0xf6,0xa6,0xff,0x37,0x5,0xae,0x0, +0x20,0x4,0xdd,0xc,0x49,0x7,0x18,0xff,0x5a,0x5,0x16,0x8, +0xf4,0xf9,0x33,0xf0,0xc8,0xf7,0xcd,0xfc,0x9a,0xf8,0x67,0xfe, +0x51,0x8,0x13,0x6,0x1d,0x6,0x9e,0xd,0xda,0xb,0x2a,0x3, +0xf1,0xff,0xff,0x0,0xee,0xfe,0x2f,0xfb,0x2b,0xfe,0xf4,0x1, +0x73,0xff,0x6,0x0,0xff,0x1,0x4c,0xfe,0xb3,0xfc,0xb2,0xfe, +0xd5,0x0,0x48,0x4,0xed,0x7,0xa,0xc,0xb9,0x9,0xaa,0xfd, +0x6f,0xf8,0xd2,0xfa,0x23,0xf8,0xa3,0xf7,0x87,0xfa,0xc5,0xf8, +0xb5,0xfb,0x6a,0x7,0xef,0xd,0x64,0x9,0x37,0x4,0x40,0x4, +0x9,0x2,0x87,0xff,0xea,0x4,0xa,0x9,0x6a,0x6,0x54,0x5, +0x5a,0x3,0xcf,0xfb,0xf4,0xf6,0xad,0xfa,0x71,0xfe,0x2,0xfb, +0x31,0xfc,0xfd,0x7,0x56,0xf,0xd6,0xf,0x20,0x11,0x8d,0xd, +0x1d,0x5,0x86,0x0,0x15,0x0,0xc3,0xfe,0xe5,0xfc,0x3d,0x4, +0x0,0x11,0x9a,0xf,0xbb,0x7,0x8d,0xb,0x20,0x10,0x3c,0xe, +0x98,0xd,0xd0,0xa,0x9f,0x4,0x96,0x4,0x6e,0xc,0x11,0x10, +0xc6,0x7,0x59,0x0,0xc0,0x1,0x8d,0xfe,0x14,0xf6,0x3e,0xf6, +0x86,0xfb,0xf7,0xfc,0xee,0xff,0xfc,0x6,0x86,0x9,0x6f,0x6, +0x4f,0x4,0xe5,0x0,0xb0,0xfa,0x69,0xf8,0x10,0xf9,0xb8,0xf7, +0xcd,0xf6,0x1c,0xf9,0x2c,0xfe,0xa,0x3,0x34,0x5,0x40,0x4, +0xf4,0xfd,0x90,0xf6,0x44,0xf8,0x99,0xff,0xc1,0x1,0xd7,0xff, +0x74,0x0,0x6b,0x2,0x14,0x1,0xfa,0xfe,0x14,0xfe,0xae,0xfa, +0x73,0xfa,0x7c,0x1,0xed,0x3,0xc7,0x0,0xa2,0x4,0x15,0xe, +0x8,0x13,0x6f,0xf,0x0,0x7,0xad,0x1,0x46,0xff,0x37,0xfc, +0x90,0xfb,0x3d,0xfc,0x2b,0xfd,0x3a,0x3,0xcc,0x9,0xb3,0xb, +0x85,0xe,0xe4,0x10,0x1c,0xf,0x6f,0xd,0x8a,0x9,0x68,0x2, +0x4,0x1,0x46,0x4,0x4d,0x3,0xa9,0xfe,0xb3,0xfc,0xc4,0xff, +0xf7,0x1,0x29,0xff,0xd,0xfc,0xcd,0xf9,0x9e,0xf7,0x44,0xf8, +0xdc,0xf8,0x4e,0xf7,0x1e,0xf7,0xe3,0xf8,0x82,0xfb,0x23,0xfb, +0xc4,0xf5,0x1e,0xf2,0x99,0xf0,0x25,0xed,0x69,0xed,0xf4,0xf1, +0xb1,0xf3,0xa3,0xf4,0x76,0xf8,0x8f,0xfa,0xbb,0xf8,0xa4,0xf8, +0xf4,0xfb,0xd3,0xfb,0x47,0xf6,0x8d,0xf1,0x11,0xf1,0x41,0xf3, +0x3e,0xf7,0x5,0xfd,0x93,0x0,0x89,0xff,0x7a,0xff,0x7,0x1, +0x2,0xff,0x67,0xfc,0xea,0xfc,0x8e,0xfe,0xa8,0xff,0xae,0xff, +0xe2,0x1,0xca,0x6,0x59,0x8,0xd7,0x7,0x8a,0x8,0xc,0x7, +0xb1,0x4,0x1c,0x4,0xdd,0x3,0x86,0x4,0x9b,0x4,0x23,0x2, +0x46,0x0,0x61,0x0,0x20,0x0,0xa2,0xfe,0x55,0xfc,0x7a,0xf8, +0xd7,0xf3,0x82,0xf3,0xe7,0xf7,0xe0,0xf9,0xf6,0xf6,0x57,0xf3, +0xcb,0xf1,0x17,0xf1,0xc6,0xef,0x1d,0xef,0x7c,0xed,0x9d,0xe9, +0x1d,0xe9,0x8c,0xec,0xe0,0xef,0x7e,0xf4,0x35,0xf8,0x3c,0xf8, +0x2d,0xf8,0x91,0xf7,0x7e,0xf6,0x61,0xf8,0xfa,0xf8,0xdc,0xf6, +0x6,0xf8,0x6a,0xfa,0x60,0xf9,0xe0,0xf8,0x25,0xfc,0x53,0xff, +0x93,0xff,0xd1,0xff,0x6c,0x1,0xfe,0x1,0xb8,0x2,0x28,0x5, +0xae,0x6,0x1c,0x7,0x10,0x7,0x72,0x5,0xb0,0x5,0xd1,0x8, +0xba,0x9,0xb1,0x9,0xeb,0xb,0xe5,0xc,0x18,0xd,0x99,0xf, +0xfd,0x10,0xa7,0xf,0x53,0xf,0x84,0x11,0x81,0x14,0x2d,0x17, +0xa9,0x1a,0x8f,0x1e,0x30,0x20,0x2b,0x21,0xa2,0x24,0x5b,0x28, +0xd1,0x28,0x49,0x25,0xbf,0x1f,0x8,0x1b,0xc9,0x15,0x2b,0xd, +0xec,0x3,0xe5,0xfd,0x55,0xfa,0x5,0xf9,0x87,0xfb,0xf9,0xfd, +0x8d,0xfb,0x20,0xf8,0x16,0xf7,0x7c,0xf3,0x48,0xeb,0x6e,0xe2, +0xde,0xd9,0x59,0xd1,0x81,0xcc,0x61,0xcd,0xd9,0xcf,0xc8,0xcf, +0x93,0xcf,0x3e,0xd3,0xbf,0xd8,0x80,0xdb,0xb2,0xdb,0xfa,0xdb, +0xb1,0xdc,0xa8,0xde,0xe8,0xe3,0x49,0xea,0x6d,0xec,0x1e,0xea, +0xca,0xe8,0xdf,0xe9,0x97,0xe9,0x86,0xe8,0x48,0xeb,0x2c,0xf2, +0x4c,0xfa,0x2f,0x3,0xa3,0xd,0xf2,0x16,0xc5,0x1b,0x41,0x1e, +0x67,0x1f,0xbb,0x1b,0x5,0x16,0x19,0x14,0xaa,0x14,0xb8,0x15, +0xdb,0x17,0xe,0x1a,0xa9,0x1b,0x3,0x1c,0x6,0x1a,0xe3,0x17, +0xda,0x16,0x94,0x13,0x1a,0xe,0x29,0xb,0xc1,0xa,0xa0,0x9, +0xc5,0x8,0x89,0x8,0xf5,0x4,0x43,0xfd,0xac,0xf6,0x77,0xf4, +0xb,0xf3,0xa5,0xf0,0x53,0xf1,0xe1,0xf3,0xf7,0xf4,0x68,0xf8, +0x30,0xfd,0xd9,0xfb,0x86,0xf5,0x4e,0xf0,0xab,0xed,0x6a,0xeb, +0x69,0xe7,0x6a,0xe4,0x6b,0xe5,0x4d,0xe7,0x73,0xe9,0xa4,0xee, +0xf3,0xf2,0xd7,0xf1,0xb1,0xef,0x13,0xf1,0xbc,0xf2,0x54,0xf2, +0x62,0xf3,0xeb,0xf5,0x57,0xf6,0xa9,0xf6,0x32,0xf9,0xca,0xfa, +0xcc,0xfa,0x8d,0xfb,0x5c,0xfd,0x15,0x1,0x8b,0x6,0x3d,0xb, +0x1d,0xf,0x87,0x12,0xca,0x14,0x1b,0x16,0x35,0x15,0xb3,0x12, +0xa,0x11,0xac,0xe,0x24,0xd,0xf4,0xf,0xf7,0x11,0xe1,0x10, +0x26,0x13,0xa3,0x18,0x0,0x1b,0x66,0x19,0x52,0x17,0x96,0x15, +0x59,0x12,0x2,0xe,0x46,0xa,0x84,0x7,0x6e,0x5,0x6c,0x3, +0xfb,0x2,0xd6,0x3,0x45,0x1,0x64,0xfd,0x7f,0xfd,0x52,0xfe, +0x58,0xfe,0x44,0x0,0x20,0x2,0x3c,0x2,0x5b,0x1,0x27,0x0, +0x20,0xff,0x3f,0xfc,0x60,0xf7,0x3d,0xf4,0x1f,0xf4,0xba,0xf6, +0x98,0xfb,0x8c,0x0,0x6d,0x4,0xd4,0x7,0x18,0xb,0x90,0xd, +0x7c,0xe,0x90,0xd,0xb4,0xa,0xd4,0x8,0xb9,0xa,0xdc,0xc, +0xc3,0xc,0xc0,0xc,0xb5,0xc,0x6e,0xb,0x14,0xa,0x58,0xa, +0x5c,0xc,0x2d,0xd,0x70,0xb,0x7c,0x9,0xbe,0x7,0x96,0x5, +0xb5,0x3,0xc6,0x1,0x6a,0xff,0x61,0xfd,0x47,0xfc,0xaa,0xfb, +0xc3,0xfa,0x3e,0xfb,0x7e,0xfe,0x44,0x1,0x31,0x1,0x8a,0x0, +0xd2,0xff,0xbd,0xfd,0x68,0xfd,0x6e,0x0,0x8c,0x1,0xfe,0xfe, +0xc8,0xfc,0xa,0xfc,0x7,0xfd,0x44,0x0,0x9,0x3,0x74,0x4, +0x6e,0x6,0xd5,0x8,0x82,0xb,0xad,0xe,0x4b,0x10,0x1b,0xf, +0x47,0xc,0xe4,0x8,0xd4,0x6,0xa2,0x7,0x99,0x8,0x5,0x9, +0x7b,0xc,0xfd,0xf,0x81,0xf,0xd4,0xf,0xde,0x10,0x83,0xd, +0x2f,0xb,0xbf,0xd,0x8f,0xc,0x84,0x5,0x27,0x2,0x80,0x4, +0x73,0x6,0x8,0x8,0xb5,0xa,0x4b,0xa,0x88,0x6,0x9b,0x4, +0xce,0x5,0xb0,0x6,0x42,0x5,0xae,0x4,0x8,0x7,0xf9,0x8, +0xf4,0x9,0x1f,0xb,0xf1,0x9,0x8b,0x7,0xc4,0x6,0x6f,0x5, +0xea,0x2,0x2e,0x0,0x20,0xfc,0x26,0xf9,0x39,0xfa,0x4c,0xfc, +0xc4,0xfc,0x78,0xfd,0x4d,0xff,0xd2,0x0,0xdb,0xff,0x5c,0xfc, +0xdc,0xfa,0x92,0xfc,0x95,0xfc,0x12,0xfb,0xf6,0xfa,0x48,0xfa, +0xf8,0xf9,0x17,0xfd,0x84,0x0,0x94,0x0,0x78,0xff,0x21,0x1, +0xe6,0x3,0x1,0x3,0x98,0x0,0x68,0x0,0x21,0x0,0xd5,0xff, +0x84,0x1,0x95,0x1,0x4f,0xfd,0xc7,0xf8,0x1,0xf8,0x67,0xf7, +0x12,0xf3,0xd2,0xf0,0x75,0xf4,0xd3,0xf7,0x19,0xf9,0xd1,0xfa, +0xad,0xf9,0x7c,0xf5,0x94,0xf4,0x66,0xf6,0x58,0xf4,0xe7,0xee, +0xa1,0xec,0x22,0xf0,0x96,0xf6,0xb5,0xfc,0xf5,0x0,0x4c,0x2, +0xb8,0x1,0xf3,0x1,0x68,0x1,0x68,0xfd,0x65,0xf9,0xbf,0xf8, +0xf5,0xf9,0x79,0xfa,0x3b,0xf9,0x86,0xf8,0xc2,0xf9,0xec,0xfa, +0x1b,0xfd,0x2a,0x0,0x8c,0xff,0xf5,0xfc,0x44,0xfc,0xfa,0xfa, +0x33,0xf9,0x84,0xfb,0xb4,0x0,0xaa,0x2,0xf0,0x0,0x24,0x0, +0x3e,0x0,0x97,0xfe,0x1,0xfc,0x1d,0xf9,0x39,0xf6,0xbf,0xf5, +0x86,0xf8,0xec,0xfb,0x11,0xfc,0x85,0xf8,0x1e,0xf6,0x6,0xf8, +0x42,0xfa,0xc,0xf7,0x8d,0xf0,0x8,0xee,0xbd,0xee,0x72,0xee, +0x18,0xf0,0xc9,0xf3,0xce,0xf3,0x8c,0xf1,0xce,0xf1,0x1c,0xf2, +0x3f,0xef,0x7d,0xed,0x1e,0xf1,0x71,0xf5,0xc5,0xf4,0x79,0xf2, +0xe7,0xf3,0x58,0xf7,0xb,0xf9,0xf1,0xf9,0x8a,0xfb,0xda,0xfb, +0x5e,0xfa,0x9d,0xf9,0x3d,0xfa,0x10,0xfb,0x85,0xfc,0x37,0x0, +0xcc,0x4,0xa8,0x5,0xbb,0x2,0xf,0x1,0xaf,0x0,0x69,0xfe, +0x54,0xfc,0x9d,0xfc,0x9e,0xfd,0x92,0x0,0x58,0x7,0x4d,0xd, +0xcd,0xc,0x38,0x7,0x7f,0x2,0xf2,0x0,0xc2,0xfe,0x3d,0xfa, +0x89,0xf7,0x45,0xf9,0xf4,0xfd,0x9,0x3,0x96,0x5,0x27,0x3, +0x24,0xfc,0xe3,0xf5,0xe2,0xf4,0x74,0xf6,0x94,0xf8,0xc0,0xfc, +0x1,0x1,0xca,0x4,0x1b,0xa,0xeb,0xc,0x8a,0x8,0x9e,0x0, +0x41,0xfb,0xf4,0xf7,0x3e,0xf4,0xe9,0xf3,0xbb,0xf7,0x1a,0xfa, +0x21,0xfc,0xfd,0xfe,0xda,0xfc,0x42,0xf8,0x62,0xf8,0xb4,0xf9, +0x6b,0xf7,0xfd,0xf4,0xbc,0xf5,0x34,0xf7,0x60,0xf7,0xf,0xf8, +0x44,0xf8,0xa5,0xf5,0xe2,0xf4,0xe1,0xf9,0x46,0xfe,0x5a,0xfd, +0xd5,0xfd,0x5,0x4,0x2f,0x9,0x5f,0x9,0xc5,0x7,0x89,0x5, +0x10,0x3,0x16,0x1,0x34,0xfe,0x3f,0xfb,0x56,0xfa,0x11,0xfb, +0xf2,0xfb,0x88,0xfa,0x23,0xf8,0xe7,0xfa,0xc4,0x1,0x55,0x5, +0x8d,0x5,0x48,0x6,0x45,0x6,0x3f,0x4,0xaa,0x1,0x7d,0xfe, +0xb6,0xfb,0x6c,0xfc,0x87,0xff,0xe,0x1,0x5f,0x1,0x6a,0x3, +0x2c,0x6,0x8,0x6,0xc2,0x2,0x80,0xfe,0x7e,0xfa,0xb3,0xf8, +0x7,0xfb,0x8d,0xff,0xd7,0x1,0x3d,0x1,0x81,0x1,0x95,0x1, +0x20,0xfd,0x94,0xf7,0x8a,0xf5,0xfa,0xf5,0x15,0xf9,0x56,0xfe, +0x7d,0x3,0x70,0x8,0xc2,0xa,0x35,0x9,0x9d,0x6,0x3a,0x2, +0xe5,0xfc,0x70,0xfb,0x95,0xfb,0xc4,0xf9,0xc8,0xfa,0x36,0x1, +0xd9,0x6,0x1e,0x7,0x54,0x4,0xeb,0x0,0xaa,0xfd,0x8b,0xfc, +0x3,0xfe,0x33,0x0,0x54,0x2,0xe7,0x4,0x52,0x7,0x63,0x7, +0xc5,0x4,0x9b,0x1,0xee,0xfe,0xf1,0xfc,0xd0,0xfa,0xc8,0xf7, +0x80,0xf7,0xf3,0xfb,0x47,0x0,0xa9,0x1,0x62,0x2,0x15,0x4, +0xf5,0x5,0xdb,0x5,0xed,0x1,0x26,0xfb,0xea,0xf6,0x20,0xf9, +0x82,0xfd,0xea,0xff,0x77,0x2,0x9,0x6,0x8b,0x9,0x5a,0xc, +0x31,0xc,0x21,0x9,0xf9,0x5,0x43,0x2,0xc2,0xfc,0xbe,0xf8, +0xeb,0xf9,0x4c,0xfe,0x9f,0x1,0x9b,0x3,0x22,0x5,0x6e,0x4, +0xcb,0x0,0xbf,0xfc,0x8c,0xf9,0x2e,0xf7,0x4f,0xf9,0x44,0x1, +0x91,0x8,0xfc,0xb,0xae,0xe,0xc9,0x10,0x10,0x10,0x16,0xc, +0x2f,0x6,0x7c,0x1,0x51,0x0,0x2f,0x2,0x6e,0x4,0xd5,0x5, +0xd8,0x8,0x28,0xd,0x36,0xf,0xca,0xd,0xab,0x7,0x0,0xff, +0xf3,0xfa,0xa0,0xfb,0xef,0xfb,0x13,0xfc,0x1b,0xfd,0x97,0xfd, +0x9e,0xfd,0x11,0xff,0xa,0x2,0x87,0x3,0x1,0x3,0xd1,0x3, +0xf9,0x5,0xb0,0x7,0x9c,0xa,0x36,0xe,0x65,0xe,0x31,0xc, +0xf8,0xb,0x72,0xc,0x6e,0xb,0x1f,0xb,0x98,0xb,0x9c,0xa, +0x76,0x8,0xfd,0x5,0x65,0x4,0xfb,0x5,0x25,0xa,0x9a,0xc, +0x15,0xb,0x8e,0x8,0x5d,0x7,0xd7,0x5,0x15,0x3,0xca,0xff, +0x44,0xfd,0x1,0xfd,0x8f,0xfd,0x1e,0xfe,0x85,0x0,0xb,0x3, +0xf9,0x2,0x7,0x1,0xd1,0xfe,0x75,0xfe,0x7f,0xff,0x19,0xff, +0x6a,0xff,0x9c,0x2,0x34,0x5,0xb6,0x6,0x3d,0x9,0x7b,0xa, +0x2d,0xa,0x71,0xb,0xc2,0xc,0xdf,0xc,0x51,0xe,0x8,0xf, +0x89,0xb,0x9e,0x6,0xac,0x4,0xde,0x5,0x2,0x5,0x2c,0x0, +0x33,0xff,0x45,0x3,0x27,0x3,0x94,0xff,0x92,0xfe,0x17,0xfd, +0xce,0xf9,0xf1,0xf8,0x75,0xf9,0x16,0xf8,0xb1,0xf7,0x16,0xfb, +0x54,0xfd,0xa1,0xfa,0xaa,0xf7,0xd3,0xf6,0xd2,0xf4,0xbf,0xf3, +0x8f,0xf7,0xfd,0xfa,0xbe,0xf9,0xd8,0xfa,0x46,0x1,0x7f,0x4, +0xbf,0x2,0xf1,0x2,0x35,0x3,0x2,0xff,0x9,0xfd,0x2f,0x0, +0x18,0x0,0x61,0xfe,0xcb,0x2,0xc6,0x6,0xad,0x5,0x88,0x6, +0x52,0x7,0x1b,0x2,0xa0,0xfc,0x54,0xfc,0x44,0xfd,0x19,0xfa, +0x9,0xf6,0x31,0xf8,0xb6,0xfc,0xce,0xfd,0xa7,0xff,0x80,0x1, +0x2a,0xfe,0x7c,0xf9,0xac,0xf6,0x26,0xf4,0xa8,0xf3,0x1f,0xf6, +0x4d,0xfa,0x9,0x0,0x8a,0x3,0xf8,0x0,0x32,0xfc,0xf9,0xf7, +0x3f,0xf2,0x47,0xef,0xd5,0xf2,0x6a,0xf5,0x5b,0xf4,0x13,0xf8, +0x2,0x0,0xb3,0x1,0x0,0xfd,0xb2,0xfa,0x1c,0xfa,0xf3,0xf5, +0xc5,0xf3,0x3a,0xf7,0x45,0xf8,0xf6,0xf6,0x5b,0xfb,0x61,0x0, +0x2d,0xfe,0xfd,0xfb,0xaa,0xff,0xcb,0x0,0xc2,0xfb,0x8a,0xf9, +0xf3,0xfc,0x99,0xff,0xfd,0xff,0x28,0x0,0x41,0xff,0xf3,0xfd, +0x68,0xfe,0x1a,0xff,0x2b,0xfe,0x82,0xfd,0x9c,0xfe,0xac,0xff, +0x8e,0xfe,0xe6,0xfc,0xdd,0xff,0x33,0x7,0x6d,0xb,0x1d,0xa, +0x33,0x8,0x2b,0x8,0x16,0x7,0x89,0x2,0xe3,0xfe,0xf1,0xff, +0x28,0x1,0x59,0x1,0x57,0x3,0xce,0x2,0xdb,0xff,0x77,0x2, +0xe2,0x6,0x15,0x3,0x9f,0xfb,0xf0,0xfa,0xff,0xfd,0x7b,0xfc, +0x3,0xf9,0xcc,0xf8,0x14,0xf9,0x2,0xf8,0x77,0xf8,0x44,0xf9, +0x27,0xf7,0x58,0xf8,0x74,0x2,0xdd,0x8,0xd7,0x2,0x8a,0xfe, +0xe0,0x1,0xaf,0x0,0x58,0xfa,0x14,0xf8,0xc9,0xf9,0xf4,0xfa, +0xcd,0xfb,0x48,0xfd,0x38,0xfc,0x1c,0xfa,0xc4,0xfe,0x40,0x6, +0xf5,0x5,0x9c,0x2,0x9b,0x5,0x43,0xb,0x8a,0xb,0xab,0x6, +0x72,0x3,0xda,0x3,0xc,0x4,0xd2,0x4,0x1b,0x7,0xe2,0x6, +0x58,0x6,0xd7,0x9,0xe3,0xb,0x99,0x8,0xbf,0x5,0x1b,0x7, +0x43,0x9,0x2c,0x8,0xe,0x6,0x2,0x7,0x28,0x7,0xf7,0x2, +0x9a,0xfe,0xdf,0xfa,0x82,0xf7,0xd8,0xf8,0x86,0xfc,0xcb,0xfd, +0x29,0x0,0x8c,0x4,0x5d,0x5,0x26,0x2,0x64,0xff,0x7c,0xfc, +0x7b,0xf7,0xbf,0xf5,0x27,0xf8,0x4c,0xf7,0x19,0xf7,0x49,0xfe, +0xfd,0x2,0x86,0xff,0x4e,0xfd,0xd8,0xfd,0xfa,0xfa,0x7a,0xf8, +0xf4,0xfa,0x44,0xfb,0x31,0xf6,0x6d,0xf5,0x1c,0xfb,0x67,0xfd, +0x16,0xfb,0xe3,0xfa,0xfd,0xfb,0xe8,0xfa,0x2,0xfb,0xe6,0xfd, +0x9c,0xfe,0x27,0xfd,0xf4,0xfd,0x67,0xff,0xdd,0xff,0xb5,0x1, +0xdc,0x3,0xd1,0x3,0xee,0x1,0x66,0xff,0x14,0xfe,0x92,0xfe, +0x37,0xfe,0x37,0xfc,0x7e,0xfc,0x0,0x0,0x17,0x2,0xc5,0x2, +0x53,0x5,0x5f,0x6,0x1e,0x3,0x73,0xfe,0x54,0xf9,0x83,0xf5, +0x52,0xf7,0xc6,0xfc,0x25,0xff,0xf6,0xfd,0xb5,0xfe,0x4f,0x1, +0x0,0x1,0xc0,0xff,0xde,0xff,0x55,0xfd,0xa,0xfa,0x1b,0xfb, +0xc1,0xfc,0xec,0xfb,0xf3,0xfb,0xbb,0xfc,0xc,0xfb,0xa,0xf7, +0x78,0xf4,0x12,0xf6,0xc,0xf8,0x79,0xf7,0x9e,0xf9,0x9f,0xfe, +0x1,0x0,0xf7,0xff,0x48,0x1,0xb8,0xfe,0xca,0xf8,0xf9,0xf5, +0xe6,0xf6,0xf3,0xf6,0x64,0xf5,0xd3,0xf8,0x6d,0x0,0x9b,0x0, +0xc6,0xfa,0xfb,0xf9,0xf,0xfc,0xb4,0xfb,0xaa,0xfc,0x4c,0x0, +0x9e,0x1,0x5,0x0,0x1d,0x1,0xe0,0x2,0x29,0xfe,0x75,0xf8, +0x9a,0xf8,0xea,0xf9,0x7,0xfc,0xdc,0x1,0x6e,0x6,0x7e,0x7, +0x19,0x8,0xf5,0x8,0x12,0xa,0x89,0x9,0xac,0x5,0x4d,0x3, +0x50,0x5,0xe8,0x7,0x6,0xa,0xec,0xb,0x1d,0xb,0xb6,0x8, +0x46,0x7,0xfc,0x5,0x9c,0x4,0x9,0x4,0x49,0x6,0xb0,0xc, +0x4c,0x12,0x46,0x13,0xbe,0x11,0x8b,0xd,0x4b,0x7,0x3e,0x3, +0xb,0x1,0xab,0xfe,0x6f,0xfe,0xed,0x1,0xe0,0x5,0x64,0x7, +0x64,0x9,0x87,0xc,0xcf,0xa,0x78,0x5,0xb,0x4,0x1c,0x5, +0x5,0x4,0xc7,0x2,0xb3,0x2,0x57,0x1,0x6b,0xff,0x67,0xff, +0x2d,0xff,0xdf,0xfc,0x6f,0xfc,0xfa,0x0,0x69,0x7,0x5,0xb, +0x4e,0xc,0xa3,0xf,0x98,0x13,0xd3,0x12,0xa0,0xe,0x6b,0xa, +0x69,0x6,0xc2,0x4,0x79,0x6,0x24,0x8,0xd0,0x8,0xc9,0x9, +0x61,0xa,0xb8,0xa,0xc7,0xa,0x36,0x9,0x2e,0x8,0xf5,0x8, +0x2a,0x7,0x6e,0x3,0x85,0x4,0x54,0x9,0xa7,0xa,0x6f,0x8, +0xc1,0x7,0x6c,0x8,0x14,0x8,0xaa,0x8,0x93,0x9,0x87,0x7, +0xaf,0x5,0x77,0x7,0xe8,0x9,0xdc,0x9,0x38,0x8,0xca,0x8, +0x3b,0xa,0xd3,0x6,0xfc,0x2,0x89,0x4,0xcf,0x5,0x22,0x4, +0x87,0x2,0xfc,0x1,0x90,0x5,0x8b,0xb,0xb4,0xb,0x15,0x7, +0xd8,0x5,0x28,0x9,0xef,0xb,0x1c,0xb,0x36,0x8,0x29,0x6, +0x3a,0x7,0x85,0xa,0x30,0xa,0x9a,0x3,0xfd,0xfc,0xc8,0xfb, +0x38,0xfc,0xf8,0xf9,0x8c,0xf9,0x84,0xfd,0x97,0xff,0xf5,0xfe, +0x5e,0x0,0x6c,0x1,0x6e,0xfe,0x32,0xfa,0x8a,0xf9,0x81,0xfd, +0x70,0x2,0x36,0x6,0x5b,0x8,0xb5,0x6,0x4e,0x4,0xac,0x5, +0x1c,0x7,0x19,0x5,0xd2,0x0,0x9c,0xfd,0xc,0x2,0x2f,0xb, +0x71,0xb,0xec,0x2,0xa5,0xfb,0x6b,0xf5,0xc1,0xef,0x1c,0xef, +0x82,0xef,0x7a,0xec,0xb3,0xed,0xc4,0xf7,0xa0,0xff,0xb6,0xfc, +0x48,0xf6,0x1,0xf2,0xe2,0xec,0xa0,0xea,0xe4,0xf0,0xbf,0xfa, +0x9f,0x2,0x99,0x8,0xd8,0xb,0x6e,0xa,0xa2,0x4,0xaa,0xfb, +0x86,0xf0,0xac,0xe8,0x6a,0xea,0xbd,0xef,0x3c,0xf0,0xee,0xf1, +0xda,0xfa,0xd0,0x4,0xa9,0x9,0x75,0x6,0x80,0xf7,0xaf,0xe5, +0x68,0xe5,0x29,0xf3,0x47,0xf8,0xb,0xf9,0xec,0x1,0x54,0x6, +0x71,0x2,0xe4,0x0,0xb0,0xff,0xcb,0xfd,0x4f,0xff,0x46,0x2, +0xe3,0x2,0xa5,0xfd,0xf3,0xfa,0x9c,0x4,0xe9,0xb,0xdd,0x6, +0x3a,0xfe,0x74,0xf1,0xad,0xe4,0xf1,0xe4,0xdb,0xed,0xf4,0xf4, +0x2b,0xf7,0xe8,0xf5,0x6,0xf6,0x32,0xf5,0x1d,0xf2,0xaa,0xf2, +0x16,0xf2,0x69,0xec,0xb3,0xe7,0x4c,0xe4,0x7c,0xe6,0xa5,0xf2, +0xf8,0xfb,0x6d,0xfb,0x86,0xf6,0x1,0xef,0x4,0xe9,0xba,0xe5, +0xb0,0xe1,0xca,0xe3,0x37,0xec,0xc1,0xef,0xf2,0xf0,0xd7,0xf4, +0x38,0xf6,0x90,0xf6,0x32,0xfa,0x52,0xfc,0x67,0xf7,0x55,0xef, +0x20,0xef,0x44,0xf8,0xb8,0x0,0xce,0x5,0xe3,0x8,0x9a,0x6, +0x7b,0x2,0x18,0x2,0x63,0x1,0x56,0xfe,0x74,0xfd,0x53,0x0, +0x6,0x4,0xa3,0x2,0x86,0xfb,0xd7,0xf8,0x20,0xfc,0xcb,0xfa, +0x70,0xf7,0x56,0xfa,0xc4,0xfd,0xb2,0xfd,0x6f,0xfe,0x37,0x1, +0x86,0x3,0x62,0x2,0x53,0x2,0x98,0x6,0x62,0x3,0xb5,0xfa, +0x14,0xfd,0x60,0x1,0x14,0xfd,0xaa,0xfd,0x96,0x3,0x6c,0x2, +0xb0,0xfd,0xa2,0xfd,0x4d,0xfe,0xb7,0xf8,0x8f,0xf4,0x9d,0xf9, +0xf6,0xfa,0x88,0xf5,0x88,0xf7,0x84,0xfb,0x6f,0xf9,0x5d,0xfc, +0xf7,0x4,0x6f,0x8,0x9e,0x6,0x52,0x5,0x43,0x6,0x92,0x6, +0xad,0x7,0xf3,0xd,0xb9,0x12,0xa6,0x10,0xf8,0xd,0x98,0xa, +0xa1,0x5,0x9d,0x7,0xf7,0xd,0xfd,0xc,0x7b,0x7,0x24,0x6, +0x9e,0x6,0xc5,0x5,0xc0,0x7,0x80,0xa,0x55,0x6,0x84,0xff, +0x44,0xfd,0xb5,0xfb,0xda,0xf9,0xef,0xfb,0xcf,0xff,0xfc,0x1, +0x4f,0x1,0x56,0xfe,0xd7,0xfb,0xcc,0xfa,0xf7,0xfe,0xbc,0x9, +0xad,0xd,0x85,0x4,0xcd,0xfb,0xe3,0xfa,0xef,0xfc,0x63,0xfd, +0x65,0xfa,0xe5,0xf6,0xdf,0xf6,0xeb,0xf8,0xfc,0xf8,0x92,0xf8, +0x72,0xfe,0x59,0x6,0xa5,0x6,0xe7,0x4,0x4f,0x4,0x55,0x0, +0xc,0x1,0x5,0x7,0x56,0x6,0x28,0x4,0xe4,0x8,0x18,0xf, +0x9f,0x12,0xc3,0x13,0x2d,0x15,0x8,0x17,0xd6,0x13,0xae,0xe, +0x1,0xc,0x64,0x6,0x34,0x2,0xb3,0x6,0x95,0x9,0x33,0x5, +0xd0,0x3,0x7a,0x8,0x2f,0xc,0xc8,0xb,0xd3,0x7,0xf7,0x1, +0x20,0xff,0x20,0x1,0x27,0x2,0xd6,0x0,0xfa,0x2,0x63,0x7, +0xf6,0x7,0x4b,0x5,0x6b,0x2,0x1c,0xff,0x1d,0xfb,0x73,0xf7, +0xd7,0xf3,0xf9,0xef,0x6e,0xef,0xd4,0xf2,0x93,0xf3,0x83,0xf2, +0x93,0xf7,0x34,0xff,0x17,0x0,0x80,0xfb,0x31,0xfa,0xff,0xfe, +0xb4,0x1,0x97,0xfd,0xf8,0xf7,0xcd,0xf2,0xf4,0xf0,0xb4,0xf7, +0x86,0xff,0x36,0x2,0xc7,0x6,0xee,0xe,0x76,0x15,0x39,0x16, +0x9a,0x10,0xbe,0xc,0xb,0xf,0x20,0x10,0x78,0xb,0xd4,0x4, +0x63,0x3,0xd2,0x8,0x5c,0xd,0x89,0xd,0x99,0xb,0x52,0x9, +0x33,0xc,0x0,0x12,0xfd,0xf,0x93,0xa,0x92,0xd,0x2c,0x14, +0x14,0x11,0x59,0x3,0x84,0xf7,0x9f,0xf5,0x47,0xf9,0x66,0xfc, +0xec,0xfc,0x2b,0xfd,0xdb,0x1,0xa5,0x8,0xe7,0x8,0xb,0x2, +0xc8,0xfd,0xcd,0xfe,0x10,0xfd,0x1b,0xf9,0x87,0xf8,0xb3,0xf7, +0x75,0xf7,0x2c,0xfb,0x9f,0xfa,0x4e,0xf4,0xbd,0xf1,0x10,0xf4, +0x98,0xf6,0xb,0xf8,0x1c,0xfc,0x6,0x5,0x1f,0xb,0x34,0xb, +0x90,0xa,0xd0,0x6,0x9e,0x0,0x2e,0xff,0xb4,0xfd,0xa7,0xf6, +0x9d,0xf1,0x65,0xf6,0x5b,0x1,0x6,0x7,0x36,0x7,0x14,0xb, +0x41,0xe,0x33,0xd,0x5b,0xe,0xcc,0xc,0x89,0x6,0xc4,0x4, +0x93,0x3,0x3b,0xfe,0x96,0xfb,0x22,0xfd,0xb5,0x0,0x56,0x3, +0xc,0x2,0x3a,0x3,0xbe,0x9,0x40,0xe,0x0,0xe,0x32,0xb, +0x6d,0x9,0x72,0x9,0xb8,0x5,0x53,0x0,0x9c,0xff,0x38,0xff, +0xdc,0xfc,0x18,0xfc,0x21,0xfb,0xc2,0xfa,0xce,0xfe,0xb5,0x2, +0xd7,0x1,0xda,0x0,0xfd,0x3,0x37,0x8,0x54,0x9,0xee,0x6, +0xcc,0x3,0x1c,0x3,0xe6,0x3,0x7e,0x1,0xb7,0xfb,0xfd,0xf9, +0xde,0x0,0xff,0x8,0x40,0xb,0x9d,0xb,0xdb,0xc,0xb9,0xd, +0x70,0x10,0x87,0x11,0x98,0xb,0x4a,0x6,0xf4,0x8,0xbd,0xc, +0x60,0x9,0x6b,0x2,0xf7,0xff,0xe9,0xff,0xd1,0xfd,0xe4,0xfd, +0xc3,0xff,0x66,0x0,0xe3,0x3,0xc0,0x6,0xfd,0x3,0x4b,0x4, +0xfb,0x8,0x40,0x8,0x3c,0x3,0xa0,0xff,0xd5,0xfc,0x83,0xfb, +0xc6,0xfc,0xaf,0xfd,0xe9,0xfc,0xb7,0xfd,0xac,0x0,0xd2,0x0, +0x57,0xfd,0xf7,0xfa,0xeb,0xfa,0x5b,0xfc,0x48,0xfe,0x5d,0xfd, +0xc8,0xfb,0x8e,0xfe,0x6e,0x0,0x7,0xfc,0x8b,0xf6,0xbd,0xf2, +0xc3,0xee,0xfa,0xec,0xd5,0xed,0xfb,0xed,0x1c,0xef,0xd,0xf4, +0xf8,0xf8,0x21,0xfa,0x1a,0xfb,0x4a,0xff,0x75,0x2,0x80,0x0, +0xeb,0xfb,0xb2,0xf7,0x82,0xf5,0x94,0xf6,0xce,0xf6,0xc2,0xf3, +0x5,0xf4,0x94,0xf8,0x26,0xf9,0x1d,0xf6,0xf5,0xf5,0x84,0xf6, +0x44,0xf4,0x3a,0xf2,0xde,0xf0,0x59,0xed,0x55,0xea,0xab,0xea, +0xb1,0xea,0xb5,0xe9,0xff,0xea,0xea,0xeb,0x4f,0xe9,0xa9,0xe5, +0xa3,0xe3,0xb7,0xe4,0x59,0xe7,0x8,0xe8,0xe5,0xe8,0x57,0xec, +0x97,0xef,0x16,0xf1,0xdc,0xef,0x5c,0xeb,0x5d,0xe7,0x5c,0xe7, +0x6c,0xea,0x9b,0xeb,0x3c,0xe9,0x6d,0xeb,0x3b,0xf4,0x4f,0xf9, +0x6,0xf9,0xe7,0xf9,0x30,0xfb,0x9f,0xfa,0x86,0xf9,0xc5,0xf7, +0x4a,0xf5,0x96,0xf4,0x2b,0xf7,0xdd,0xfa,0x82,0xfe,0x3,0x3, +0xb5,0x5,0x3d,0x4,0x43,0x1,0x6c,0xff,0x8d,0xff,0xc5,0x0, +0x4a,0x1,0x5d,0x2,0x7,0x5,0x76,0x7,0xf5,0x8,0xfd,0x9, +0xf1,0xa,0x3e,0xa,0xb7,0x5,0xaa,0x0,0xd8,0xfd,0x5c,0xfb, +0x43,0xfb,0x6e,0xfe,0x65,0x0,0xf0,0x1,0xfd,0x4,0xaa,0x6, +0x9d,0x6,0x19,0x5,0x40,0x1,0xc2,0xfd,0x3,0xfc,0x7,0xfa, +0x76,0xf7,0x52,0xf6,0xe8,0xf9,0x7e,0x1,0x90,0x6,0x86,0x7, +0x1b,0x8,0xb9,0x7,0x5c,0x5,0x41,0x3,0x2f,0x1,0x90,0xfe, +0xf7,0xfd,0xb7,0x0,0x94,0x5,0x81,0xa,0xf5,0xc,0x30,0xc, +0x50,0x9,0x53,0x5,0xb9,0x1,0xf4,0xff,0x9d,0x0,0x3a,0x4, +0xe0,0x9,0x48,0x10,0xf6,0x16,0xc8,0x1a,0xe4,0x18,0x3a,0x13, +0x74,0xc,0xeb,0x6,0x84,0x4,0x98,0x3,0x28,0x4,0x88,0x9, +0xa8,0x12,0x5a,0x1a,0x91,0x1c,0x8b,0x19,0x4c,0x14,0x82,0xc, +0x18,0x3,0xae,0xfd,0x0,0xfc,0xb8,0xfb,0x5a,0x0,0x7f,0x7, +0xf1,0x9,0x10,0x9,0x10,0x9,0xc6,0x8,0xae,0x5,0xf6,0x0, +0xa4,0xfe,0xb5,0xfe,0x17,0xfe,0xa9,0xfe,0x17,0x3,0xe,0x8, +0xfb,0x8,0xe4,0x5,0x7e,0x1,0x56,0xfc,0xbd,0xf7,0x8d,0xf8, +0x69,0xfd,0xec,0xfe,0xd0,0xfd,0x75,0xff,0x98,0x2,0x71,0x4, +0x25,0x5,0x2e,0x4,0x1,0x2,0x2f,0x1,0x47,0x1,0x4d,0xff, +0xd6,0xfc,0xf5,0xfe,0x26,0x5,0x38,0x9,0x9d,0x8,0x65,0x6, +0xc9,0x4,0xe7,0x2,0x99,0x0,0xda,0xff,0x31,0x1,0xc8,0x2, +0x43,0x4,0x42,0x6,0x86,0x7,0xc1,0x6,0x24,0x3,0x6b,0xfd, +0x9c,0xfa,0x21,0xfc,0xf6,0xfb,0xd0,0xf9,0xff,0xfb,0x80,0x3, +0x7,0xd,0x82,0x14,0x81,0x15,0x47,0x10,0x4,0x8,0xee,0xfd, +0xc8,0xf4,0x27,0xf2,0x10,0xf7,0xc0,0xfb,0x2a,0xfc,0xf3,0x0, +0x4a,0xc,0x61,0x12,0xc6,0x10,0x79,0xe,0x6f,0x9,0x4,0xff, +0x1b,0xf6,0x83,0xf4,0x86,0xf9,0xc2,0x2,0xb4,0xc,0x72,0x11, +0x60,0xe,0xa,0x8,0x55,0x4,0xca,0x5,0x98,0x9,0x7b,0x9, +0x4b,0x6,0x87,0x6,0x47,0xa,0x7e,0xd,0x2e,0xd,0xdf,0x8, +0x76,0x4,0x9,0x1,0xa1,0xfc,0x69,0xf9,0x8,0xf9,0x63,0xfd, +0x12,0x8,0xe,0xf,0x7a,0x8,0xa2,0xfa,0xc4,0xf0,0xf5,0xf0, +0xac,0xf9,0x9,0x1,0x4e,0xfe,0x25,0xf4,0x73,0xf2,0xe7,0xff, +0x70,0x6,0x75,0xfa,0x4c,0xf3,0x51,0xf9,0x19,0xfa,0x8c,0xf4, +0xba,0xf4,0xc6,0xf9,0xa9,0xff,0xc7,0x6,0xc8,0xa,0x76,0x5, +0xc6,0xfb,0xf5,0xf7,0x5d,0xf7,0x3d,0xf4,0xcf,0xf5,0xef,0xfb, +0x7b,0xf8,0xb9,0xf0,0x58,0xf8,0xca,0x8,0xe9,0xe,0x2a,0xe, +0xb9,0xe,0x93,0xa,0xb5,0xff,0x38,0xf6,0xed,0xf3,0xee,0xf6, +0x2f,0xf9,0xe0,0xf9,0x4b,0xfd,0x5b,0x4,0xe7,0xb,0x3b,0xe, +0x78,0xa,0x75,0x8,0x1c,0x9,0x7d,0x6,0x8f,0x2,0xba,0xff, +0xa7,0xfc,0x70,0xfb,0x31,0xfe,0x2f,0x5,0xf4,0xb,0x55,0xb, +0x68,0x7,0x79,0x5,0xf6,0x0,0xf9,0xfc,0xe3,0xfe,0xd8,0xff, +0xf8,0xfe,0xf1,0x3,0xfa,0xa,0xef,0x9,0x75,0x1,0x4c,0xfa, +0x10,0xf7,0x66,0xf4,0x7a,0xf2,0x5,0xf0,0x64,0xea,0xd1,0xe9, +0xf6,0xf5,0x1a,0x5,0x2a,0xb,0xc0,0x9,0xf7,0x5,0x2a,0xff, +0xdb,0xf6,0x5,0xf3,0xfa,0xf3,0xa6,0xf4,0x21,0xf4,0x5d,0xf6, +0xa5,0xfc,0xab,0x0,0xcf,0xfc,0x96,0xf6,0x60,0xf6,0xa5,0xfb, +0x74,0xff,0x2b,0xfe,0x3b,0xfd,0xaa,0x0,0xac,0x2,0xcc,0xff, +0xa8,0xfa,0xd4,0xf5,0x5d,0xf4,0x44,0xf4,0xe4,0xf1,0x3d,0xf2, +0xc,0xf7,0xae,0xfb,0x52,0x1,0xdd,0x7,0x91,0xa,0x7d,0x8, +0x7b,0x2,0x17,0xfb,0xb2,0xf5,0x59,0xf1,0x27,0xee,0xa2,0xee, +0x12,0xf3,0x69,0xfa,0x32,0x0,0x8b,0x0,0xb0,0xff,0xbb,0x0, +0x47,0xff,0x7f,0xf8,0xdc,0xef,0xed,0xeb,0xbd,0xef,0x88,0xf6, +0xb6,0xfa,0x89,0xfd,0x62,0x1,0x5a,0x1,0xdd,0xf9,0xb5,0xf3, +0xf4,0xf5,0xb8,0xf8,0x99,0xf5,0x3,0xf3,0xa2,0xf5,0xf2,0xf8, +0x77,0xfb,0x76,0x0,0x73,0x3,0x6c,0xff,0x4c,0xfb,0xb7,0xf9, +0x22,0xf4,0x21,0xef,0xc0,0xf2,0x77,0xf8,0x92,0xf7,0x3a,0xf1, +0xa2,0xeb,0x66,0xeb,0xa8,0xef,0x9f,0xf6,0xad,0xff,0xe3,0x4, +0x5c,0x0,0x96,0xf6,0x60,0xf0,0x46,0xef,0x3a,0xef,0x40,0xf1, +0x77,0xf8,0x42,0xfe,0xfa,0xfb,0x5a,0xf8,0x86,0xfa,0xb2,0xfe, +0x28,0xff,0xbc,0xfb,0x45,0xf8,0x78,0xf8,0x29,0xfc,0x28,0x0, +0xe2,0x2,0x22,0x6,0x6c,0x9,0xe7,0x6,0xcd,0xfc,0x27,0xf2, +0xe0,0xec,0x11,0xed,0x7d,0xf1,0x26,0xf9,0xfc,0x1,0x50,0x8, +0x4a,0x9,0x34,0x5,0xd6,0xfd,0x72,0xf7,0x3e,0xf6,0x57,0xf6, +0x87,0xf3,0x60,0xf3,0xb5,0xf8,0x7a,0xfd,0xb3,0xff,0x8b,0x2, +0x42,0x5,0x0,0x4,0xb0,0xfe,0xdd,0xfa,0x63,0xfc,0x2d,0x1, +0xaf,0x6,0xf4,0xa,0x92,0xb,0x60,0x9,0xa4,0x6,0x5,0x4, +0x8f,0x1,0x37,0xfe,0x8b,0xfa,0x1e,0xf9,0x45,0xf9,0x6e,0xfa, +0x57,0xfe,0xc,0x3,0xa2,0x6,0x8f,0xa,0x64,0xc,0x36,0x9, +0x6b,0x5,0xf0,0x4,0x25,0x4,0x55,0xff,0x59,0xf8,0xad,0xf1, +0x7e,0xed,0xca,0xf0,0xfb,0xfb,0x49,0x7,0xcd,0xe,0xf5,0x14, +0x9c,0x18,0x81,0x16,0x46,0x10,0xca,0x9,0xfb,0x2,0x2d,0xfa, +0xa2,0xf4,0x81,0xf8,0x94,0xff,0x5a,0x3,0xc6,0x9,0xe,0x13, +0x65,0x14,0xe4,0xd,0xdf,0x8,0x4c,0x6,0xe0,0x3,0xf6,0x3, +0x1e,0x7,0xde,0x9,0x26,0xa,0x69,0x9,0x42,0x8,0xe7,0x4, +0x93,0x1,0xdc,0x2,0x5d,0x6,0x73,0x7,0xc,0x7,0xfa,0x6, +0x2d,0x7,0xc4,0x7,0xee,0x8,0xb,0xa,0x2b,0x9,0x8d,0x6, +0x27,0x5,0xa0,0x4,0x7e,0x4,0x17,0x6,0x63,0x5,0x88,0x0, +0xa6,0xfd,0xa5,0xfe,0x96,0x2,0x6a,0xb,0xe5,0x14,0x90,0x18, +0x5e,0x17,0xba,0x12,0x62,0x9,0x44,0xfd,0xdd,0xf3,0x75,0xf2, +0x7c,0xf9,0xdd,0x3,0xbb,0xc,0x15,0x12,0xbe,0x12,0x56,0x10, +0xf1,0xf,0x16,0x10,0xde,0x8,0x98,0xfd,0x85,0xf9,0x15,0xfd, +0xd,0x3,0xe7,0x8,0x75,0xb,0x94,0xa,0xf8,0x7,0x19,0x3, +0x85,0xfe,0xff,0xfc,0x9a,0xfd,0x4b,0x1,0xb2,0x9,0x3a,0x14, +0x25,0x19,0x2d,0x13,0xa2,0x9,0x5d,0x4,0xb5,0x0,0x49,0xfe, +0xda,0xfe,0xed,0xfe,0x4c,0xfe,0x74,0x0,0x8,0x6,0x58,0xb, +0xff,0x9,0x8e,0x2,0xf8,0xfb,0x6e,0xf9,0xeb,0xfb,0x80,0x0, +0xce,0x1,0xa2,0x2,0x7c,0x5,0xb9,0x6,0xe5,0x5,0x2b,0x1, +0xb2,0xf7,0xa4,0xf2,0x7a,0xf6,0x30,0xfc,0x10,0xff,0x9e,0x0, +0x67,0x4,0x94,0xb,0xbc,0x12,0x4a,0x15,0x97,0x10,0xe8,0x8, +0x3,0x7,0xbe,0x9,0x5a,0x8,0x66,0x2,0xd4,0xfd,0x74,0xfc, +0xb1,0xfa,0xd6,0xf5,0x21,0xf3,0xe4,0xf9,0x41,0x5,0x66,0x8, +0x14,0x2,0x64,0xfd,0xc5,0xfe,0x6b,0xff,0xc3,0xfb,0xa1,0xf8, +0xaa,0xf7,0x83,0xf3,0xf5,0xed,0x6b,0xef,0x92,0xf3,0x21,0xf2, +0x88,0xf2,0x8e,0xfa,0xdd,0x0,0x12,0xff,0xc,0xf9,0x63,0xf6, +0xe4,0xfd,0xab,0xb,0x27,0x11,0x26,0x7,0x6a,0xf8,0xe7,0xf4, +0x4c,0xfb,0x66,0xfb,0x40,0xf2,0xa2,0xed,0x16,0xf2,0x91,0xf7, +0xfa,0xfa,0x25,0xfe,0xaf,0x1,0xe1,0x8,0xcd,0x13,0x56,0x17, +0x3e,0xb,0xf,0xf8,0x0,0xec,0xed,0xe9,0x92,0xea,0x12,0xe9, +0xe5,0xe6,0xcc,0xe8,0xe9,0xf3,0xa2,0x4,0xc6,0xe,0xef,0xf, +0x31,0x11,0x81,0x14,0x11,0x12,0x97,0x5,0x4d,0xf6,0x7f,0xf0, +0x8d,0xf5,0xce,0xfa,0xc8,0xfa,0x5a,0xfa,0xd6,0xfd,0x2c,0x4, +0xb3,0x9,0xb1,0x9,0xc3,0x3,0x9e,0x0,0x4c,0x5,0x27,0x8, +0x55,0x3,0x2c,0x1,0x97,0x5,0x19,0x6,0x9f,0x0,0x8a,0xfa, +0xbb,0xf0,0x53,0xe5,0x48,0xe4,0x1a,0xeb,0x85,0xee,0xb6,0xf2, +0x4f,0xfe,0xd8,0x9,0x73,0xd,0xb2,0x9,0x2d,0x1,0xe3,0xf6, +0xac,0xee,0x21,0xe9,0xdf,0xe2,0x48,0xdc,0x89,0xdc,0x13,0xe6, +0x2,0xf1,0xe2,0xf7,0xe,0xff,0xbc,0x9,0xbf,0x12,0xe8,0x14, +0xbd,0x11,0x5c,0xe,0xca,0xe,0xec,0x10,0xf1,0xc,0x23,0x1, +0x6f,0xf6,0x2a,0xf4,0x1b,0xf9,0x5a,0x1,0x13,0x9,0x14,0xd, +0x2b,0xf,0x3b,0x11,0x72,0xd,0x39,0x1,0x20,0xf5,0x9a,0xee, +0x40,0xeb,0x70,0xea,0xa7,0xeb,0x6a,0xec,0xc9,0xee,0x6b,0xf5, +0xeb,0xf9,0xdd,0xf3,0x23,0xe7,0x2b,0xde,0xd8,0xdb,0xfb,0xdf, +0x7e,0xec,0xae,0xfd,0x8c,0xc,0x9a,0x17,0x18,0x1e,0xc4,0x1a, +0x7a,0xd,0xdd,0xff,0x24,0xf6,0x3,0xec,0xad,0xe6,0x46,0xee, +0x13,0xfc,0xda,0x7,0x76,0x11,0x53,0x17,0xb1,0x18,0x3a,0x15, +0x82,0x9,0x7e,0xfa,0x10,0xf2,0x2e,0xef,0xf8,0xec,0xd2,0xeb, +0xe9,0xea,0x4a,0xe9,0x13,0xeb,0x52,0xf1,0x23,0xf5,0x1b,0xf4, +0x5c,0xf5,0x1a,0xfb,0xe0,0xfe,0xb7,0xfe,0x80,0xfe,0x93,0xff, +0xc3,0x0,0x3a,0x1,0x6,0x0,0xb1,0xfc,0x87,0xfa,0x9a,0xfe, +0xfd,0x4,0xe1,0x3,0xcb,0xfd,0x2d,0xfc,0x61,0xfe,0x84,0x1, +0x3b,0x6,0x62,0xa,0x8d,0xe,0x52,0x14,0xd8,0x15,0x87,0xf, +0x38,0x5,0x3d,0xfb,0x4b,0xf4,0xd2,0xee,0x65,0xe9,0x2d,0xe9, +0xa2,0xef,0xd7,0xf7,0x31,0xff,0xac,0x3,0x32,0x5,0xb3,0x5, +0x1d,0x1,0x9b,0xf5,0x4c,0xeb,0x51,0xe7,0x18,0xe7,0x55,0xe8, +0xff,0xea,0x9b,0xf0,0x5,0xfb,0xca,0x6,0x68,0xb,0xb8,0x8, +0x23,0x9,0x45,0xe,0xe9,0xe,0xe2,0x9,0xb0,0x5,0x49,0x5, +0x94,0x7,0xdd,0x8,0xa8,0x6,0x82,0x2,0x6f,0xfe,0xa6,0xfb, +0x36,0xf9,0x1,0xf4,0x81,0xed,0xf7,0xea,0x4,0xee,0x95,0xf4, +0xd1,0xfb,0x5,0x2,0x10,0x7,0xd,0xa,0xdb,0x8,0x15,0x2, +0x28,0xf8,0xc1,0xf0,0xc,0xed,0xf7,0xe9,0x73,0xe8,0x51,0xeb, +0xb,0xf4,0x9d,0x2,0xaa,0xf,0x82,0x13,0x52,0x13,0xd0,0x14, +0x64,0x12,0x19,0x9,0xcb,0xff,0xe9,0xfb,0x6a,0xfb,0x84,0xfa, +0xa5,0xf9,0x5e,0xfa,0x9f,0xfc,0x29,0x1,0x4a,0x5,0x2c,0x5, +0xb1,0x5,0x15,0x9,0xc7,0x8,0x18,0x8,0x8c,0xd,0xc7,0xf, +0x6c,0x8,0xf9,0x0,0xb3,0xfd,0x44,0xf9,0x53,0xf3,0xd9,0xed, +0xfc,0xe7,0x46,0xe5,0xca,0xe9,0xa0,0xf0,0xdc,0xf5,0x55,0xfd, +0x80,0x6,0xd4,0xb,0x85,0xd,0xa4,0xd,0x86,0xa,0x31,0x5, +0x5c,0x1,0xed,0xfc,0x78,0xf5,0xd9,0xf0,0xbb,0xf1,0x2f,0xf3, +0x45,0xf6,0xfe,0xfd,0xa6,0x6,0x72,0xf,0x95,0x18,0xf4,0x1b, +0x1,0x19,0xb2,0x16,0x1,0x15,0x4f,0xf,0xf5,0x7,0x73,0x2, +0x57,0xfd,0x61,0xfa,0xe7,0xfa,0xb4,0xf7,0x4b,0xf0,0x47,0xef, +0xbf,0xf5,0x68,0xfb,0x81,0xfe,0xff,0x2,0x44,0xa,0x60,0x11, +0x11,0x16,0xb2,0x17,0x8e,0x13,0x24,0xb,0x27,0x3,0xaa,0xf9, +0x41,0xf0,0x5a,0xef,0x5e,0xf5,0x59,0xfc,0x72,0x6,0x2e,0x13, +0xdb,0x1c,0xf4,0x21,0x5,0x23,0xf0,0x1f,0x54,0x1a,0xac,0x12, +0xe0,0x7,0x4c,0xfc,0x4f,0xf3,0x1c,0xed,0x91,0xea,0x20,0xed, +0xaa,0xf2,0x3c,0xf8,0x9e,0xfc,0x17,0x0,0x47,0x4,0x15,0x8, +0xea,0x7,0x5b,0x4,0xa4,0x0,0x5c,0xfd,0xfd,0xfa,0xb2,0xfa, +0x1f,0xfb,0x6,0xfc,0xa7,0xff,0x43,0x3,0x70,0x3,0xc2,0x4, +0x1f,0x9,0x3b,0xb,0x0,0xb,0x5d,0xc,0xee,0xe,0x8a,0x10, +0xc8,0x10,0xc0,0x10,0x44,0xf,0x13,0xa,0xd8,0x4,0x5d,0x2, +0x1e,0x0,0x27,0x1,0x36,0x8,0xae,0xe,0x12,0x12,0x3b,0x15, +0x75,0x15,0x8e,0x12,0xf4,0x10,0x38,0xd,0x6,0x3,0x99,0xf8, +0x13,0xf3,0x6c,0xf0,0x2a,0xf1,0x73,0xf6,0x26,0xfe,0x43,0x8, +0x20,0x13,0xdd,0x18,0x4f,0x19,0x39,0x19,0xb1,0x17,0x13,0x11, +0x78,0x8,0x51,0x3,0xe2,0x0,0xe0,0xff,0x61,0x2,0xae,0x6, +0xce,0x8,0x3f,0x9,0x3,0xa,0x27,0xa,0x33,0x7,0x7d,0x2, +0xf6,0xfe,0x46,0xfb,0xe7,0xf8,0x5c,0xfb,0x74,0xfd,0x83,0xfc, +0x9b,0xfd,0xaa,0xfe,0xc1,0xfc,0xae,0xfb,0x1,0xfa,0x94,0xf5, +0xc,0xf4,0xbb,0xf6,0xe2,0xf8,0x32,0xfc,0xd2,0x3,0x73,0xa, +0x38,0xc,0xc3,0xb,0x0,0x9,0xe2,0x3,0xfb,0xfd,0x42,0xf4, +0x5a,0xe8,0x1b,0xe3,0x81,0xe6,0xac,0xed,0x27,0xf5,0x62,0xfd, +0x8f,0x6,0xb8,0xa,0x92,0x7,0x2e,0x3,0xa,0xff,0x6d,0xfb, +0xd1,0xfb,0x8b,0xfd,0x5b,0xfe,0xe4,0x0,0x9e,0x3,0xba,0x4, +0x36,0x6,0x9e,0x7,0xb7,0x5,0x3e,0x0,0x73,0xfc,0xbb,0xfe, +0x40,0x5,0xff,0xa,0x60,0xb,0xef,0x8,0xa6,0x9,0xe8,0x7, +0xa6,0xfe,0xbd,0xf7,0x3c,0xf8,0x3b,0xfa,0x40,0xfc,0x9f,0xfe, +0x74,0xff,0x8d,0x0,0xf3,0x3,0x4f,0x6,0x5c,0x5,0x53,0x5, +0x26,0x6,0x17,0x1,0xf0,0xf9,0xd8,0xf8,0x31,0xf8,0xbd,0xf4, +0xee,0xf4,0x70,0xf4,0xa,0xee,0xa4,0xec,0x12,0xf5,0x56,0xfc, +0x68,0xfe,0x8e,0x0,0xad,0x1,0xd5,0xfd,0xed,0xf7,0x6c,0xf3, +0x2f,0xef,0x73,0xed,0x71,0xf1,0x20,0xf5,0x2c,0xf5,0x20,0xf9, +0x99,0x0,0x4c,0x3,0x1d,0x3,0xa0,0x3,0xfe,0x0,0xa5,0xfd, +0x9d,0x1,0x71,0x9,0xfd,0xb,0x42,0xc,0x53,0xe,0x6b,0xb, +0x5,0x4,0xef,0xfe,0xf5,0xf8,0x76,0xf2,0xf1,0xf1,0x33,0xf5, +0x1c,0xfa,0x7d,0x2,0xdd,0xc,0xfc,0x15,0xac,0x18,0x4e,0x16, +0xd4,0x14,0x6,0xe,0x4d,0x0,0x29,0xf7,0x48,0xf2,0xfd,0xed, +0x6,0xf0,0x66,0xf6,0x87,0xfb,0xee,0x1,0xc9,0xa,0x34,0x10, +0x3c,0xd,0x4a,0x7,0xe6,0x4,0x4d,0x2,0x12,0xfe,0x90,0xfb, +0xed,0xf8,0x93,0xf6,0x6f,0xf8,0x1a,0xfc,0x69,0xfb,0x10,0xf7, +0x33,0xf7,0x7c,0xfb,0x3f,0xfd,0xc9,0x1,0xc,0xa,0x72,0xa, +0x4a,0x6,0x20,0x7,0xea,0x7,0xa8,0x5,0xf1,0x1,0x3,0xfa, +0x33,0xf3,0x86,0xf5,0x6b,0xf8,0x48,0xf3,0xf,0xf1,0x57,0xf8, +0x40,0xfe,0xa4,0x1,0x1f,0xa,0x12,0x10,0x21,0xc,0x30,0x8, +0x98,0x9,0x3d,0x6,0xd,0xfb,0x59,0xf2,0x25,0xee,0x90,0xeb, +0xfb,0xef,0x8f,0xf6,0xd6,0xf6,0x74,0xfb,0xd,0x7,0x6c,0xb, +0x44,0x8,0xf6,0x3,0x64,0xfd,0x19,0xf6,0xd1,0xf0,0x3e,0xee, +0xd7,0xed,0xbe,0xec,0xb,0xeb,0xdd,0xeb,0x2c,0xf1,0xe9,0xf7, +0x26,0xf8,0xec,0xf2,0x39,0xf0,0xf2,0xef,0x46,0xf0,0x28,0xf1, +0xab,0xf1,0xb,0xf5,0x4d,0xf9,0x7a,0xf7,0x53,0xf3,0xd9,0xf1, +0x72,0xef,0x12,0xeb,0xac,0xe8,0x1f,0xe9,0xf6,0xe9,0xb2,0xed, +0x39,0xf6,0xf5,0xfa,0x3e,0xfa,0x50,0xfb,0xa0,0xf9,0xdb,0xf4, +0x8a,0xf5,0x56,0xf2,0xb3,0xe6,0x35,0xe6,0xd0,0xf1,0x26,0xf3, +0x5c,0xea,0x43,0xe9,0x1d,0xef,0xf9,0xf2,0x98,0xf7,0xf2,0xf9, +0xf0,0xf2,0xcb,0xed,0xff,0xf1,0xcd,0xf3,0x9a,0xf1,0x2b,0xf2, +0xe5,0xf0,0x9f,0xee,0xbc,0xf3,0x26,0xf9,0x22,0xf3,0x99,0xea, +0x5b,0xee,0x87,0xf8,0x43,0xfc,0xbb,0xfa,0xd4,0xf8,0x18,0xfa, +0x13,0x3,0x27,0xc,0x19,0x9,0xc5,0xfd,0x88,0xf4,0x7c,0xf2, +0x44,0xf8,0xf8,0xfe,0xb0,0x1,0xde,0x4,0xba,0x9,0x26,0xe, +0xf3,0x12,0xfe,0x13,0x6e,0xd,0xa2,0x6,0x96,0x5,0x26,0x5, +0x21,0x2,0x39,0x1,0x8,0x3,0xcf,0x2,0xbe,0x1,0x36,0x2, +0x2f,0x0,0xcf,0xfc,0xd2,0xfe,0xa6,0x3,0xaf,0x5,0x17,0x7, +0xa5,0x8,0x8f,0x7,0xb2,0x5,0x6a,0x4,0x76,0x0,0xd9,0xfa, +0x82,0xf7,0xb,0xf6,0xa6,0xf8,0xfb,0x2,0x47,0xd,0x8b,0xe, +0xdb,0xa,0x66,0x7,0xe,0x4,0xf8,0x2,0x34,0x4,0x50,0x4, +0x47,0x5,0xb3,0xa,0xe5,0x10,0xe8,0x11,0xd7,0xd,0x1a,0x9, +0xdc,0x5,0xbe,0x3,0x98,0x3,0x78,0x5,0x10,0x7,0x4f,0x9, +0x3f,0xf,0x47,0x16,0xf4,0x19,0xba,0x19,0x3b,0x15,0x4,0xd, +0xc4,0x5,0x1f,0x4,0x78,0x8,0xb9,0xd,0xf2,0xe,0x12,0xf, +0x9a,0x11,0x66,0x13,0xf8,0x12,0x8f,0x13,0x35,0x16,0x8f,0x17, +0x20,0x15,0xd9,0x10,0x2a,0xc,0xab,0x7,0xbd,0x7,0xae,0xc, +0x5d,0xf,0x78,0xc,0x84,0x8,0x64,0x9,0x56,0xd,0xaf,0xd, +0x19,0xb,0xa8,0x6,0xd3,0xfe,0x20,0xfb,0x63,0xfd,0xed,0xfc, +0x55,0xfe,0x5b,0x7,0xed,0xd,0xba,0xd,0x2a,0xd,0x74,0xd, +0xc3,0xa,0xd,0x5,0x47,0x1,0x91,0xff,0xe2,0xfd,0xb3,0x1, +0xc6,0x8,0xb1,0x9,0xe3,0xa,0xae,0x12,0xfb,0x15,0x4e,0xf, +0x52,0x6,0x4c,0x0,0xe,0xfe,0x6a,0x0,0x8c,0x5,0xfc,0x6, +0x79,0x3,0xd7,0x2,0x64,0x6,0xdf,0x7,0x70,0x7,0x58,0x7, +0x97,0x5,0x2,0x1,0x3a,0xfb,0x53,0xf8,0xb8,0xfa,0xa1,0xfe, +0x4a,0x0,0xaa,0xff,0xd8,0xfc,0x77,0xf9,0x47,0xf9,0x90,0xfd, +0xc2,0x4,0xfc,0xb,0xc8,0xe,0x3b,0xb,0x95,0x5,0x68,0x2, +0x6c,0x1,0x67,0x0,0x53,0xfe,0x34,0xfc,0x84,0xfb,0x72,0xfc, +0x70,0x0,0xcc,0x7,0xcd,0xc,0x77,0xb,0x8b,0x7,0xc3,0x4, +0xb4,0x1,0xda,0xfc,0x5d,0xfa,0xbc,0xfd,0x93,0x0,0x96,0xfe, +0xb2,0xfe,0x75,0x1,0x28,0xff,0x10,0xfa,0x22,0xf8,0x8,0xf8, +0x4d,0xfa,0x20,0x0,0x53,0x4,0xab,0x5,0x87,0x8,0xde,0xa, +0x58,0x8,0x89,0x3,0xc8,0xff,0x10,0xfd,0xe8,0xfc,0xaf,0x0, +0x51,0x4,0xab,0x2,0xe4,0xfc,0x8a,0xf8,0xae,0xf8,0x22,0xfb, +0xa4,0xfc,0xca,0xfe,0x4c,0x5,0x6b,0xe,0xee,0x13,0xb2,0x11, +0xdc,0x9,0xe3,0x1,0xbe,0xf9,0x9e,0xee,0x75,0xe4,0x74,0xe1, +0xfd,0xe8,0xfd,0xfa,0xbf,0xe,0x4,0x1b,0xe1,0x1f,0x40,0x1d, +0x93,0x11,0xeb,0x1,0xc8,0xf3,0x47,0xe8,0x57,0xe0,0xaf,0xde, +0xcc,0xe4,0x6a,0xed,0x8f,0xf3,0x74,0xfc,0xc6,0x9,0xa9,0x11, +0xe2,0x10,0x75,0xe,0x9f,0xc,0x1f,0xa,0x23,0xa,0x8f,0xc, +0x5c,0xb,0x69,0x7,0x88,0x5,0xce,0x1,0xf6,0xf9,0xb9,0xf5, +0x87,0xf9,0x29,0x0,0xf3,0x1,0xea,0xff,0x2a,0x3,0xe7,0x8, +0x35,0x6,0x5a,0x0,0x35,0xff,0x7,0xfd,0xf9,0xf9,0x70,0xfa, +0x4a,0xf5,0x1b,0xe7,0xfa,0xdf,0x57,0xe4,0xeb,0xe0,0x88,0xd3, +0x7a,0xd4,0x6,0xe6,0xbc,0xf2,0x9f,0xf9,0x1b,0x3,0xf8,0x8, +0x81,0xa,0x8,0xb,0xc1,0x1,0x4b,0xef,0xb8,0xe4,0xe6,0xe6, +0xef,0xe9,0xdd,0xe8,0x85,0xec,0x78,0xf9,0xf6,0x6,0xd7,0xc, +0x87,0xc,0x47,0xb,0xef,0xb,0x64,0xc,0xd1,0xa,0xc2,0x8, +0xee,0x5,0x3f,0x5,0x6a,0xb,0xaf,0xd,0xf5,0xff,0xdb,0xf0, +0x46,0xf3,0xfe,0xfb,0x41,0xf7,0xf3,0xec,0x76,0xee,0x90,0xf6, +0xa5,0xfa,0x7c,0xfb,0xc3,0xf5,0x55,0xe9,0x92,0xe2,0xaf,0xe3, +0x34,0xe3,0x0,0xe0,0x5d,0xe2,0xfa,0xee,0x5d,0xfa,0xc,0xf9, +0x75,0xf4,0xc,0xf2,0xc4,0xeb,0x4f,0xe9,0x6e,0xed,0xf6,0xeb, +0x17,0xeb,0x39,0xf7,0x96,0x3,0xdf,0x1,0x8f,0xfa,0x8d,0xf7, +0xd4,0xf3,0x11,0xed,0x86,0xe8,0x28,0xe6,0x52,0xe8,0x90,0xf2, +0x5e,0xfd,0xb,0x4,0x36,0x6,0xa0,0x0,0x5b,0xf9,0x94,0xf4, +0xb1,0xee,0x68,0xed,0x2e,0xf2,0xb4,0xf6,0x81,0xfa,0x48,0xf9, +0x10,0xf5,0x27,0xf7,0xc1,0xf8,0x37,0xf7,0x3a,0xf9,0x5,0xf8, +0x35,0xf5,0x12,0xfc,0xf4,0x7,0xbb,0x11,0x8f,0x16,0x49,0x13, +0xd3,0xa,0x59,0x1,0xda,0xfb,0x79,0xfb,0x83,0xf8,0x90,0xf4, +0xb5,0xf5,0x3d,0xf8,0xf3,0xf9,0x9b,0xfa,0x4c,0xfc,0xe6,0x0, +0xbe,0xfe,0xdd,0xf5,0xdb,0xf0,0xb2,0xec,0x22,0xeb,0x96,0xef, +0x80,0xed,0x9,0xe7,0xa,0xe9,0xc9,0xee,0x80,0xf2,0x16,0xf4, +0x17,0xf5,0xa2,0xfb,0x79,0x5,0xd0,0xb,0x50,0xe,0xaa,0xc, +0x90,0x9,0xf0,0x8,0xe6,0x7,0xf4,0x3,0xe7,0xff,0xed,0x0, +0x8f,0x5,0x26,0x6,0x75,0x6,0x12,0xb,0xf0,0x9,0xd3,0x1, +0x97,0xfc,0x55,0xf8,0x15,0xf0,0x20,0xea,0xa4,0xed,0x7,0xf5, +0x85,0xf6,0x6a,0xf6,0xb5,0xfb,0x92,0x0,0x37,0x1,0xfe,0x0, +0xc2,0xfd,0xb5,0xf4,0xc1,0xec,0x9,0xed,0x1,0xf1,0x29,0xf4, +0xcd,0xfa,0xe6,0x2,0x1b,0x6,0x1d,0x8,0x1f,0xb,0x6d,0x8, +0x4d,0xfe,0x5c,0xf4,0x31,0xf0,0xa2,0xee,0x83,0xef,0xe0,0xf9, +0xd9,0x9,0x9b,0x13,0x19,0x18,0x15,0x1d,0x5f,0x1e,0x3,0x18, +0x89,0xe,0xc5,0x4,0x55,0xfa,0xf4,0xf3,0xd5,0xf4,0x39,0xfc, +0xe8,0x9,0x29,0x14,0x51,0x13,0x0,0x12,0xbc,0x12,0x8f,0xc, +0x68,0x4,0x73,0xfe,0x95,0xf6,0xe8,0xf2,0x21,0xf8,0xe3,0xfe, +0x9f,0x4,0x3,0xd,0xec,0x12,0x3c,0xf,0x1a,0xa,0x59,0xc, +0x4e,0xe,0x4b,0xa,0xb1,0x5,0x94,0x4,0x7,0x7,0xe8,0x9, +0x6,0xc,0xe4,0xe,0xe1,0xe,0x40,0xc,0x64,0xb,0x45,0x8, +0x64,0x2,0xb,0xff,0x1e,0xfc,0x9a,0xf7,0x5b,0xf3,0xca,0xf0, +0xbb,0xf1,0xeb,0xf3,0x40,0xf4,0xf2,0xf3,0x85,0xf4,0xd,0xf8, +0xdf,0xfd,0xff,0x1,0x3d,0x5,0xb0,0x8,0x66,0xa,0x9b,0xb, +0x6b,0xe,0x6a,0x11,0xd5,0x10,0x60,0xc,0xae,0x8,0xc6,0x7, +0x61,0xa,0x49,0x10,0xd3,0x14,0x9b,0x18,0x2e,0x1c,0x5a,0x18, +0x2a,0x12,0x15,0x14,0x6d,0x16,0xf5,0x11,0x91,0xd,0xff,0xb, +0x6e,0x8,0x2d,0x3,0x58,0x1,0x5c,0x2,0xf9,0x1,0x14,0x0, +0xd2,0xfd,0x18,0xff,0x21,0x8,0x52,0x10,0x31,0xf,0x68,0xd, +0x26,0x11,0xb6,0x11,0x45,0xa,0xc5,0x0,0xb3,0xf8,0x13,0xf3, +0x61,0xf5,0x3e,0xfe,0x2b,0x5,0x43,0xb,0xe3,0x11,0xe3,0x12, +0x7e,0x11,0x39,0x13,0xac,0x11,0x1b,0xa,0x76,0x3,0xb4,0xff, +0xab,0xfb,0xee,0xf9,0xd2,0xfd,0xb5,0x1,0x9,0x2,0x21,0x3, +0xcd,0x3,0x3,0x1,0xde,0xfe,0x40,0xff,0xa3,0xff,0x7,0xff, +0xc5,0xfd,0x99,0xfc,0x64,0xfb,0x4a,0xfb,0x20,0xfe,0xb2,0x0, +0xc8,0x0,0x1c,0x1,0x23,0x2,0x15,0x4,0x31,0x8,0x46,0xb, +0xb6,0xa,0xc1,0x8,0x59,0x8,0x65,0xa,0x5d,0xc,0xa8,0xb, +0xf9,0xa,0x73,0xd,0xbd,0x10,0x52,0x12,0x8,0x13,0x61,0x12, +0x7a,0xf,0xb5,0xb,0x25,0x8,0xd6,0x6,0xeb,0x7,0xca,0x5, +0xdb,0x0,0x7c,0xff,0x49,0x0,0x4,0x1,0x22,0x3,0x2d,0x3, +0xbe,0xff,0x84,0xfd,0x29,0xfd,0xd9,0xfb,0x6c,0xfa,0xf3,0xfb, +0xdc,0xfd,0x9f,0xfb,0xa4,0xfa,0xf2,0xfe,0x97,0x1,0x9c,0x2, +0xd6,0x5,0x2,0x4,0x8a,0xfc,0x4f,0xfa,0x43,0xfc,0x18,0xf9, +0xc4,0xf4,0x4b,0xf8,0x8f,0xfd,0x90,0xfc,0xfa,0xfd,0x23,0x5, +0xda,0x5,0x88,0x0,0xbf,0xfd,0x3e,0xf8,0x40,0xef,0x3a,0xed, +0xe,0xf1,0xec,0xf3,0x8b,0xf8,0xbf,0xff,0xc1,0x3,0xec,0x3, +0x4a,0x4,0x3a,0x4,0xf5,0xff,0x92,0xf8,0xba,0xf2,0x2e,0xf0, +0x0,0xf1,0x2d,0xf5,0xb4,0xf9,0x2d,0xfc,0xf1,0xfe,0x5f,0x3, +0x68,0x6,0xe5,0x5,0x9b,0x3,0x2b,0x2,0xec,0x2,0xde,0x4, +0xa7,0x4,0x41,0x3,0xc,0x6,0x56,0xa,0x64,0xa,0x7,0xb, +0x5,0x10,0xbd,0x14,0xd0,0x17,0x94,0x19,0x3,0x18,0xb6,0x13, +0x2d,0xe,0x38,0x8,0x55,0x1,0xd5,0xf7,0xaa,0xef,0xe7,0xed, +0x2b,0xf0,0xe2,0xf3,0xca,0xf9,0xce,0x0,0xe5,0x5,0x65,0x7, +0x6f,0x7,0x9e,0x6,0xe5,0x1,0xf6,0xfb,0x37,0xfa,0x7d,0xfa, +0x1,0xf9,0xf3,0xf8,0xf5,0xfe,0x21,0x5,0x4,0x4,0x7c,0x4, +0xe9,0xb,0x4d,0xd,0x5a,0x7,0x45,0x6,0xcc,0x6,0xb1,0x0, +0x11,0xfa,0x49,0xf8,0x1c,0xf4,0xfb,0xeb,0xd3,0xea,0x83,0xed, +0xdd,0xe5,0x2e,0xdc,0x93,0xde,0xb4,0xe3,0x48,0xe2,0x37,0xe1, +0x9f,0xe3,0x2c,0xe4,0x5a,0xe3,0x2a,0xe5,0xbe,0xe4,0xdc,0xdd, +0xc7,0xd7,0xe7,0xd5,0xc8,0xd2,0xe8,0xce,0x8e,0xd0,0x6b,0xd8, +0x72,0xdf,0x91,0xe3,0x9,0xed,0x17,0xfa,0x9,0xff,0xf1,0xfe, +0x18,0x1,0x66,0x0,0xa4,0xfc,0x6e,0xfc,0x29,0xfd,0xf3,0xfa, +0xda,0xfa,0xe8,0xff,0x2f,0x6,0x67,0xb,0xd,0xf,0x63,0xf, +0x5b,0xe,0xfe,0xe,0xc5,0xe,0x84,0xb,0x89,0x8,0xb1,0x7, +0xbc,0x6,0x80,0x6,0xcf,0x8,0x4,0x9,0x84,0x5,0x38,0x4, +0x26,0x4,0xe4,0xff,0x85,0xfa,0x26,0xf9,0x15,0xfb,0x40,0xfd, +0x16,0xfe,0x49,0xfd,0x23,0xfa,0x43,0xf6,0xe2,0xf4,0x3e,0xf5, +0x1c,0xf5,0x8b,0xf3,0xa5,0xf0,0xa9,0xee,0xde,0xee,0xe9,0xf1, +0xc3,0xf6,0xa2,0xf6,0x8a,0xf0,0x1,0xed,0x61,0xee,0xcc,0xf0, +0x99,0xf2,0x8,0xf4,0x45,0xf5,0xb,0xf4,0xf4,0xf0,0xc1,0xef, +0xaf,0xed,0x92,0xe9,0x1b,0xe9,0x69,0xec,0x9,0xf0,0xa6,0xf2, +0xe0,0xf3,0xf,0xf7,0xf,0xfc,0xc5,0xfc,0xdf,0xf8,0xfc,0xf3, +0x8a,0xef,0x48,0xed,0x47,0xee,0x38,0xf2,0x22,0xf8,0xfa,0xfd, +0x12,0x3,0xd4,0x7,0x12,0xb,0xaa,0xb,0xc4,0xa,0x1b,0x9, +0xfd,0x4,0xcf,0xff,0x80,0xfd,0x71,0xfd,0x28,0xff,0xa,0x4, +0xfd,0x7,0xa3,0x7,0xf5,0x5,0x86,0x4,0x4,0x2,0xbd,0xfe, +0xc,0xfd,0xf9,0xfd,0x1,0xff,0x61,0xfe,0x6b,0xfd,0x9,0xfe, +0xa1,0x0,0x75,0x1,0x3b,0xfe,0x71,0xfa,0x6a,0xf6,0x7a,0xf1, +0x18,0xf0,0xdc,0xf1,0xf,0xf3,0xb5,0xf5,0xce,0xf9,0x40,0xfc, +0xa4,0xfe,0xd3,0x2,0xa5,0x6,0x63,0x7,0xa2,0x4,0x6d,0x1, +0xcd,0x0,0x44,0x1,0x6c,0x0,0xbc,0xff,0xbf,0x0,0x47,0x2, +0x69,0x5,0xcc,0xb,0x2d,0x11,0x70,0x12,0x75,0x13,0x38,0x15, +0xdb,0x13,0xcf,0xf,0xeb,0xb,0xe1,0x7,0x25,0x4,0x9f,0x2, +0x25,0x2,0xcf,0x1,0x91,0x3,0x5d,0x6,0xda,0x7,0xae,0x9, +0xc2,0xb,0x81,0xb,0x86,0x9,0xc8,0x6,0x7b,0x4,0xd6,0x4, +0xcb,0x5,0xb0,0x5,0x79,0x6,0x3b,0x6,0xf6,0x3,0x26,0x4, +0xb7,0x6,0x7d,0x7,0x18,0x7,0x28,0x9,0x50,0xd,0x43,0xf, +0x61,0xf,0xff,0x11,0x81,0x15,0x5e,0x17,0x4a,0x19,0xd7,0x19, +0x6,0x17,0xad,0x12,0x5d,0xe,0x55,0xb,0xf6,0x8,0x23,0x5, +0xf,0x3,0xd0,0x6,0xcb,0xe,0x43,0x18,0xf3,0x20,0xfc,0x25, +0xd1,0x25,0x44,0x1f,0xa1,0x12,0xdf,0x4,0xad,0xfa,0x4f,0xf3, +0xe2,0xef,0xde,0xf6,0xb0,0x7,0x40,0x18,0x97,0x22,0xcc,0x26, +0xc7,0x24,0x45,0x1d,0x4d,0x11,0x63,0x2,0x91,0xf5,0x1b,0xef, +0xe,0xef,0x94,0xf5,0x98,0x2,0x96,0x11,0xb0,0x1b,0x8c,0x1c, +0x0,0x15,0x3c,0xa,0x15,0x0,0x29,0xf7,0x82,0xf2,0x88,0xf5, +0x7c,0xfd,0x72,0x6,0x82,0xf,0x53,0x15,0x0,0x13,0x17,0x9, +0x2,0xfd,0x1a,0xf4,0xb,0xf1,0x1f,0xf2,0xde,0xf5,0xf0,0x0, +0xde,0x11,0xd8,0x1a,0x98,0x18,0xcd,0x13,0x8b,0xa,0x73,0xfc, +0x44,0xf5,0xdb,0xf4,0x46,0xf3,0x89,0xf6,0xca,0x2,0x7c,0xd, +0x33,0x10,0x25,0xe,0x3d,0x7,0x14,0xfc,0x77,0xf5,0x25,0xf7, +0x13,0xfb,0xcf,0xff,0x9b,0x7,0x29,0xf,0x99,0x12,0x61,0x11, +0x3,0xb,0xac,0xff,0xb5,0xf4,0xa,0xf2,0xb2,0xf5,0x15,0xf7, +0xd5,0xf7,0x1e,0xfc,0x31,0xff,0x90,0x0,0x2c,0x5,0xe1,0x9, +0x77,0xa,0xb1,0x9,0x97,0x7,0x7c,0x1,0x78,0xfa,0xc4,0xf4, +0x90,0xed,0xb0,0xe6,0x16,0xe5,0x6b,0xe8,0x86,0xef,0x68,0xfb, +0x23,0xa,0x9,0x17,0xb7,0x1e,0x5f,0x1e,0x65,0x13,0x8d,0x2, +0xf1,0xf5,0x3d,0xee,0x7a,0xe8,0xe4,0xe9,0x3c,0xf2,0x2a,0xfb, +0xc6,0x6,0xf8,0x13,0x55,0x19,0xa5,0x16,0x91,0x12,0x0,0xe, +0xa6,0x6,0xcf,0xfd,0xec,0xf9,0xf7,0xfd,0x2,0x4,0xe4,0x7, +0x5c,0xa,0xea,0x9,0x86,0x6,0x43,0x3,0xff,0xfe,0x82,0xf7, +0xc8,0xf0,0x6e,0xef,0x82,0xf1,0x13,0xf4,0x63,0xf9,0xe9,0x2, +0x6b,0xb,0x54,0xc,0xd8,0x5,0x25,0xfe,0x98,0xf8,0xed,0xf3, +0x17,0xf0,0xac,0xec,0x33,0xe9,0xaf,0xeb,0xcd,0xf6,0x3f,0x0, +0x8f,0x2,0x22,0x7,0x83,0x12,0xbe,0x1a,0xd1,0x16,0xc2,0x9, +0x53,0xfd,0x1a,0xf8,0xde,0xf7,0xb0,0xf4,0xab,0xea,0x13,0xe0, +0x16,0xe1,0xdb,0xf0,0x75,0x1,0x8f,0x7,0xe5,0x9,0x1a,0xf, +0x43,0x14,0xf,0x17,0x0,0x12,0x1c,0x1,0x18,0xf0,0xc9,0xe8, +0xea,0xe4,0xd8,0xe1,0xa2,0xe5,0xdb,0xef,0x4,0xfc,0x70,0x9, +0x39,0x15,0xf6,0x17,0x26,0xf,0x3b,0x1,0x6d,0xf8,0x33,0xfa, +0x62,0xfd,0x28,0xf5,0x58,0xea,0xea,0xec,0xfb,0xf5,0x6a,0xfa, +0x46,0xfc,0x4c,0xf7,0x58,0xe8,0xeb,0xde,0x5,0xe4,0xaa,0xee, +0xca,0xf8,0xd2,0xff,0xb1,0x2,0x43,0x8,0x24,0xf,0x1a,0xa, +0xc,0xf9,0x56,0xe9,0xf5,0xe1,0x70,0xe0,0xc2,0xde,0x37,0xdb, +0x86,0xdc,0x86,0xe6,0xb9,0xf5,0xee,0x8,0x3f,0x19,0x2a,0x15, +0x8e,0xff,0xf4,0xf2,0x53,0xf4,0xeb,0xf1,0x3,0xe8,0xfe,0xdc, +0x4e,0xd6,0x87,0xde,0x69,0xf4,0xef,0x3,0x65,0x5,0xeb,0x6, +0x4b,0x10,0xda,0x17,0x99,0x12,0x60,0xfe,0x2b,0xe6,0x38,0xde, +0x98,0xe9,0xec,0xf4,0xd5,0xf3,0x4e,0xea,0x9b,0xe6,0x9e,0xf5, +0x69,0x9,0xa5,0xb,0xf1,0x3,0xf4,0xff,0x4d,0xfb,0x7,0xf5, +0x6e,0xf1,0x2c,0xef,0x10,0xf1,0x89,0xfc,0xee,0x9,0x26,0xa, +0x9c,0xfc,0xe3,0xef,0xa5,0xee,0xaf,0xf5,0x59,0xf7,0x4d,0xec, +0xf6,0xe0,0x8b,0xe2,0x50,0xed,0x1e,0xfa,0xeb,0x5,0xf6,0xc, +0x25,0xf,0x49,0xe,0x36,0x5,0xaa,0xf0,0x7a,0xdc,0x88,0xd6, +0xc1,0xdd,0x7e,0xe8,0xfb,0xee,0x36,0xf3,0xe7,0x1,0xad,0x1c, +0x68,0x33,0x61,0x3a,0x7a,0x2f,0x68,0x17,0xbf,0xff,0x8,0xf0, +0x8b,0xe4,0x3d,0xdd,0x5a,0xdf,0x17,0xed,0xed,0x0,0x70,0xe, +0xe6,0xd,0xd2,0x5,0x5f,0x3,0xc4,0x8,0xa8,0xa,0x61,0x2, +0xc9,0xf4,0xa0,0xea,0xb,0xee,0xa4,0xfe,0xc7,0x9,0x2c,0x3, +0xf8,0xf3,0x95,0xe7,0xe7,0xe1,0x3f,0xe6,0xf2,0xf1,0x88,0xf9, +0xe7,0xfa,0x3b,0x1,0x2b,0xd,0x10,0x12,0x84,0xd,0x37,0x8, +0x55,0x6,0x42,0x8,0x26,0xb,0xc2,0x5,0x21,0xf7,0x58,0xed, +0x56,0xf1,0x3a,0xfd,0x2f,0x7,0x50,0x9,0x83,0x7,0x78,0xc, +0xc2,0x18,0x66,0x21,0xe9,0x1e,0x26,0x11,0xbc,0xfe,0xda,0xf3, +0xac,0xf2,0x7f,0xee,0x8a,0xe3,0x24,0xe0,0xd4,0xed,0x4d,0x4, +0x8c,0x13,0x41,0x11,0x69,0x2,0x92,0xf7,0xb,0xfa,0x8c,0x0, +0xc0,0xfb,0xbf,0xed,0x29,0xe9,0xbb,0xf5,0x98,0x8,0x6b,0x15, +0x88,0x16,0x17,0xf,0xa1,0xa,0xef,0xc,0xe,0xa,0xb8,0xfb, +0x65,0xf1,0x26,0xfa,0x2c,0xc,0x7d,0x16,0x51,0x19,0xf5,0x1b, +0x7b,0x20,0x2,0x26,0xbf,0x24,0x93,0x13,0xa8,0xfa,0x13,0xec, +0x8c,0xec,0x65,0xf4,0xb2,0xfc,0xa9,0x4,0x85,0x11,0xe7,0x22, +0x5d,0x2c,0x21,0x27,0xd7,0x1a,0x60,0xe,0x1e,0x2,0x9,0xf6, +0x1a,0xeb,0xd0,0xe4,0x6d,0xe8,0xf1,0xf5,0xbd,0x5,0xbc,0xf, +0x77,0x13,0x19,0x15,0x32,0x13,0x9d,0x9,0x44,0xfd,0xe,0xf7, +0xf0,0xf7,0x6f,0xfc,0x22,0x1,0xb4,0x2,0x7f,0x4,0x97,0xc, +0xa5,0x16,0x3,0x1a,0x0,0x16,0x73,0xf,0x51,0xa,0xd9,0x6, +0x74,0x3,0x7a,0x0,0xb7,0xff,0xaa,0x2,0x5,0x8,0xd2,0xb, +0xae,0xc,0x1e,0xc,0x5e,0xc,0x7f,0xd,0x8c,0x9,0x27,0xfe, +0xb3,0xf3,0x7d,0xf0,0xb3,0xf3,0x28,0xfb,0x1d,0x3,0x5c,0x9, +0xef,0xe,0xa7,0x13,0xcf,0x15,0x34,0x13,0x7a,0xc,0xcb,0x6, +0x63,0x4,0xf8,0x3,0x5f,0x6,0xf6,0xa,0x47,0xe,0x51,0x10, +0x58,0x14,0x26,0x19,0xe3,0x18,0x2c,0x13,0x4c,0xc,0xa8,0x4, +0x29,0xff,0xab,0x1,0x31,0x6,0x50,0x3,0xfa,0xfe,0x84,0x1, +0xb3,0x5,0x6f,0x5,0x64,0x4,0x27,0x7,0x75,0xc,0xee,0xf, +0xaa,0xe,0x6c,0xa,0x5a,0x7,0x4c,0x6,0xaa,0x4,0x3c,0x1, +0x86,0xfd,0xf0,0xfa,0x2a,0xfa,0xee,0xfb,0x10,0xff,0xb2,0x0, +0xca,0xff,0xd3,0xfd,0x76,0xfc,0xfb,0xfa,0xe4,0xf7,0xd4,0xf5, +0xc5,0xf8,0x88,0xfe,0xd7,0x0,0xc1,0xfe,0x40,0xfe,0xf6,0xff, +0xdd,0xfb,0x40,0xf2,0xe6,0xec,0x6d,0xed,0xd7,0xf0,0x25,0xf8, +0x10,0x0,0x6d,0x5,0x9c,0xd,0x34,0x18,0x69,0x1b,0xfa,0x16, +0xb4,0x12,0x10,0xd,0x7a,0x1,0xcf,0xf4,0xd5,0xeb,0xd1,0xe5, +0xad,0xe5,0x40,0xee,0xd7,0xfa,0x20,0x7,0xbb,0x11,0x7b,0x17, +0x6a,0x17,0x9c,0x12,0x8d,0x8,0x7f,0xfb,0x10,0xee,0x99,0xe0, +0x6a,0xd9,0x4c,0xdf,0xfc,0xed,0x41,0xfe,0x32,0xc,0xc9,0x13, +0xa8,0x14,0xc9,0x11,0xdb,0xa,0xfe,0xff,0xcf,0xf6,0xa8,0xf3, +0xd5,0xf3,0xfc,0xf3,0xe4,0xf5,0xa,0xfc,0xe7,0x4,0x7b,0xb, +0x6f,0xb,0xc4,0x5,0xcc,0xfe,0x87,0xf9,0x4c,0xf7,0x3d,0xf7, +0xf5,0xf6,0x40,0xf5,0x8c,0xf3,0xa6,0xf4,0xba,0xf6,0x49,0xf5, +0xee,0xf2,0x88,0xf2,0x6a,0xf0,0x49,0xed,0xfc,0xeb,0x2d,0xe9, +0xa5,0xe5,0xbf,0xe6,0x1a,0xea,0x41,0xeb,0xc7,0xed,0x79,0xf5, +0x85,0xfd,0xb2,0x1,0x38,0x6,0x84,0xa,0x64,0x6,0x65,0xfc, +0x76,0xf5,0xa,0xf0,0xdb,0xe9,0x1a,0xe8,0x20,0xed,0x6f,0xf7, +0xe,0x5,0x73,0x11,0xab,0x19,0x0,0x1e,0xff,0x1c,0xa2,0x15, +0xcd,0x9,0x2e,0xfb,0xf1,0xed,0x86,0xe9,0x1a,0xee,0xc5,0xf4, +0xc8,0xfb,0x6d,0x4,0xdc,0xc,0xa6,0x13,0x89,0x16,0x22,0x14, +0x12,0x10,0x4c,0xa,0x42,0x1,0x82,0xfa,0xa4,0xf7,0x1c,0xf6, +0x2,0xf9,0xd8,0xfe,0xac,0x0,0x6e,0xfe,0x90,0xfb,0xc,0xf9, +0x12,0xf5,0xd2,0xed,0x9a,0xe6,0x5c,0xe2,0x54,0xe0,0xc3,0xe1, +0x8e,0xe6,0xd8,0xeb,0xac,0xf0,0xa1,0xf3,0xb7,0xf3,0x9d,0xf2, +0xf0,0xf0,0x6b,0xee,0x5,0xeb,0x96,0xe7,0x8b,0xe7,0xc2,0xec, +0xa,0xf5,0x11,0xfd,0xd3,0x1,0xf6,0x3,0x38,0x7,0x7,0xb, +0x24,0xb,0xe4,0x5,0x32,0xfd,0xd5,0xf5,0xd7,0xf3,0x4a,0xf5, +0x2e,0xf6,0x8b,0xf7,0x96,0xfc,0x9d,0x4,0x2b,0xb,0xc4,0xc, +0x87,0xa,0xfe,0x7,0xd0,0x6,0x2b,0x5,0x5c,0x0,0x7c,0xfb, +0xef,0xfb,0x92,0xfe,0x7b,0xff,0x75,0x1,0x4c,0x2,0x17,0xfe, +0x93,0xfa,0xf4,0xfb,0xb,0xfe,0x74,0xfe,0x22,0xff,0x78,0x1, +0x1d,0x4,0x93,0x5,0x1e,0x7,0xdf,0x7,0x4a,0x4,0x3,0xff, +0x6d,0xfc,0x4,0xf9,0x2a,0xf4,0x5f,0xf4,0x83,0xf6,0x0,0xf5, +0x28,0xf8,0xf5,0x1,0x25,0x7,0x70,0x7,0x36,0x7,0x5d,0x3, +0xe6,0xfe,0x77,0xfc,0xbe,0xf5,0x8b,0xec,0x68,0xe8,0x25,0xe8, +0x10,0xea,0x6f,0xef,0xd7,0xf4,0x4,0xf8,0x52,0xfd,0x7d,0x6, +0x3,0xe,0x4c,0xf,0xc1,0xb,0x4,0x7,0x2b,0x2,0x66,0xfc, +0x72,0xf7,0x10,0xf6,0x81,0xf7,0x27,0xfb,0xe5,0x1,0x70,0x9, +0x15,0xf,0xaf,0x12,0x6f,0x13,0xf7,0x10,0x22,0xd,0x93,0x9, +0xbb,0x6,0xce,0x4,0x78,0x5,0xd2,0x9,0x16,0xe,0x44,0xe, +0xc5,0xa,0xaa,0x4,0x70,0xfe,0x15,0xfb,0x4b,0xf8,0x2,0xf5, +0x59,0xf5,0xa9,0xf9,0x53,0xff,0xfb,0x3,0x15,0x4,0x1d,0x2, +0x5c,0x3,0xb,0x4,0xb4,0x0,0xc7,0xfd,0x42,0xfc,0xe,0xfa, +0xfd,0xf9,0x40,0xfd,0xd4,0xff,0xf4,0x0,0x78,0x2,0x27,0x3, +0xd1,0x3,0x9d,0x6,0xba,0x8,0x5a,0xa,0xd5,0xe,0x32,0x11, +0x51,0xd,0x1a,0x9,0x72,0x7,0x79,0x4,0x59,0x0,0xf9,0xfe, +0x2a,0xff,0x1f,0xfe,0x5d,0xff,0x2e,0x4,0xe6,0x6,0x19,0x7, +0xbd,0x8,0x3a,0xa,0xc1,0x8,0xd6,0x5,0xf6,0x3,0xb2,0x1, +0xbd,0xfd,0x48,0xfc,0x9,0xfd,0xad,0xfa,0xa6,0xf7,0x32,0xf6, +0xb3,0xf3,0x4e,0xf4,0x4d,0xfb,0x54,0x3,0x86,0x8,0x8a,0xb, +0x8,0xe,0x2a,0xf,0xca,0xb,0x6d,0x6,0x92,0x3,0x17,0x0, +0x5c,0xfa,0x68,0xf9,0xc8,0xfe,0x9a,0x2,0xfe,0x4,0xbe,0xb, +0x6e,0x11,0x1f,0x11,0x14,0x10,0xa9,0xf,0x2c,0xf,0x7c,0x10, +0xcd,0xf,0x9d,0xa,0xbf,0x4,0x89,0x0,0xd2,0xfd,0x98,0xf9, +0x69,0xf2,0x1f,0xee,0x49,0xef,0x8f,0xf1,0xe0,0xf4,0xa8,0xfc, +0x5f,0x6,0xed,0xb,0xfd,0xe,0xae,0x13,0x35,0x13,0x2c,0xa, +0x35,0x1,0xa1,0xf7,0x34,0xe9,0xf4,0xe0,0x6e,0xe3,0x4,0xe6, +0x98,0xea,0xb1,0xf9,0x3b,0xa,0x7c,0x13,0x15,0x1c,0xbb,0x22, +0xb4,0x1c,0x9c,0xd,0xb8,0xff,0xf,0xf3,0x92,0xe8,0x8,0xe7, +0x47,0xed,0xd1,0xf4,0xe4,0xfd,0x4c,0x8,0x13,0xe,0x5d,0xf, +0x63,0x10,0x17,0xd,0xae,0x2,0xf8,0xfa,0x81,0xfe,0xc8,0x7, +0x6e,0xf,0x68,0x16,0xc5,0x1a,0x39,0x17,0x19,0x10,0x5c,0x9, +0x54,0xfe,0x0,0xf3,0x5,0xf1,0x8f,0xf4,0xd0,0xf8,0x11,0x4, +0xb7,0x13,0x95,0x1b,0xb,0x1d,0x36,0x1c,0xd0,0x10,0x90,0xfd, +0x60,0xf0,0xac,0xe5,0x0,0xd7,0x3c,0xd1,0x7e,0xda,0x38,0xe5, +0xac,0xee,0x1f,0x0,0x4,0x10,0x16,0x12,0xfd,0x11,0x75,0x14, +0x1c,0xd,0x7a,0x0,0xb8,0xf8,0x49,0xf0,0xe8,0xe7,0xbb,0xe8, +0x96,0xf0,0x6e,0xf9,0x60,0x4,0x8b,0xf,0xc0,0x12,0x29,0xf, +0x89,0xc,0xae,0x6,0xa8,0xf9,0x24,0xef,0x72,0xec,0xb5,0xee, +0x77,0xf6,0x21,0x3,0xbd,0xf,0xd5,0x18,0x7a,0x1c,0x29,0x18, +0xf5,0xd,0x1e,0x4,0xc5,0xf9,0x6,0xee,0x3d,0xeb,0x3c,0xf5, +0x20,0x4,0xc4,0x14,0x64,0x24,0x0,0x2c,0x8f,0x28,0x52,0x1b, +0xeb,0x8,0xfc,0xf5,0xd6,0xe4,0xea,0xda,0xab,0xda,0x36,0xe0, +0x4e,0xed,0x86,0x2,0x55,0x13,0x58,0x18,0x97,0x18,0x3f,0x14, +0x45,0x7,0xf7,0xfb,0x58,0xf7,0x14,0xf1,0x5a,0xef,0x31,0xf9, +0xd9,0xff,0x70,0xff,0xaa,0x5,0xd6,0xc,0x1b,0x8,0x3d,0x1, +0xd5,0xff,0x12,0xfb,0x96,0xf7,0x3c,0xff,0xfc,0x4,0x9d,0x1, +0xe4,0x3,0x2e,0xb,0x61,0x9,0xb1,0x4,0xf5,0x6,0x8c,0x5, +0x0,0xfd,0xb9,0xfc,0x6e,0x1,0xd,0xfc,0xf5,0xf8,0x70,0x1, +0x3,0x5,0xdd,0x4,0xb8,0xc,0x57,0x10,0x5b,0xa,0x2c,0x8, +0x8,0x7,0xee,0xfd,0x8,0xf6,0x80,0xf3,0x63,0xed,0xf9,0xe7, +0xc3,0xeb,0xc2,0xf1,0x6d,0xf5,0xce,0xf9,0x7c,0xfc,0x68,0xfb, +0x9d,0xf8,0xfd,0xf4,0x8a,0xef,0x54,0xea,0x7,0xec,0xea,0xf0, +0x65,0xf0,0x5c,0xf1,0xb5,0xf5,0xac,0xf5,0xd5,0xf7,0xff,0xfc, +0xa3,0xfa,0x32,0xf6,0x8e,0xf5,0x92,0xf4,0xce,0xf5,0xec,0xf8, +0x1f,0xf9,0x2d,0xfa,0x5,0xfd,0xc2,0xfd,0xe3,0xff,0xa3,0x1, +0x36,0xfa,0xee,0xf1,0x98,0xf2,0xe2,0xf0,0x31,0xed,0x91,0xf4, +0x96,0xfb,0x7a,0xfa,0x51,0x0,0x99,0x8,0xab,0x4,0xea,0xfe, +0xd0,0xfd,0x10,0xf5,0xac,0xea,0x16,0xee,0x70,0xf1,0x2f,0xec, +0xa4,0xf4,0xb2,0x5,0x12,0x5,0x25,0x0,0xff,0x3,0x10,0xfe, +0xc6,0xf2,0x34,0xf4,0xb8,0xf5,0x87,0xef,0x5b,0xf3,0xe4,0xfe, +0x6f,0xff,0x52,0xff,0xf3,0x9,0xc2,0xa,0xed,0xff,0xaa,0x1, +0x3b,0x7,0x6c,0xfe,0x2d,0xfa,0xa9,0x3,0x92,0x3,0x2e,0xfa, +0xe9,0xfb,0xbe,0xfe,0xb2,0xf5,0x43,0xf1,0x60,0xf7,0x9c,0xfb, +0xdf,0xfe,0xf8,0x3,0x28,0x4,0xd4,0x0,0x1e,0x1,0x6b,0x0, +0xd8,0xf6,0xbe,0xee,0x8d,0xf1,0x26,0xf1,0x51,0xec,0x25,0xf5, +0xae,0x3,0x2a,0x8,0x6e,0xa,0x59,0xc,0xc5,0x6,0xe7,0x0, +0xde,0x0,0x86,0xff,0x8a,0xf9,0x89,0xf5,0x38,0xf7,0xea,0xf9, +0x8c,0xfa,0x9b,0xfc,0x1c,0x0,0x6a,0xff,0xe7,0xfd,0x71,0x2, +0x80,0x3,0xf8,0xfc,0xcb,0xfe,0xa,0x5,0xe7,0xfd,0x54,0xf6, +0x44,0xfc,0x8c,0xff,0x66,0xfa,0x22,0xfd,0x63,0x6,0xe7,0x4, +0x50,0xfd,0xde,0xfd,0xea,0xfd,0x4b,0xf8,0xef,0xf9,0x18,0xff, +0x1d,0xfe,0x73,0xfe,0x5e,0x0,0x9b,0xfe,0xf1,0xfd,0xa3,0xfd, +0x39,0xfb,0x1d,0xfc,0xa3,0xfe,0x60,0xfd,0x29,0xfe,0x18,0x6, +0xb,0xd,0x43,0xe,0x6f,0xf,0x8b,0xd,0x1a,0x6,0xe1,0x5, +0x7e,0xb,0xe,0x8,0xd0,0x2,0x2e,0x6,0xcf,0x6,0x7c,0xff, +0x88,0xfd,0xbd,0x3,0x93,0x2,0xd5,0xf9,0x14,0xfb,0xaf,0x0, +0x20,0xfb,0x0,0xf7,0xd1,0xfd,0xb,0x1,0xca,0xfd,0xfc,0xfd, +0x42,0xfd,0xd5,0xf5,0xaf,0xf3,0x22,0xfc,0x9b,0xfd,0xcb,0xf3, +0xe8,0xf1,0x1,0xfa,0x3e,0xfe,0x74,0x0,0x47,0x5,0xec,0x3, +0x29,0xfd,0x85,0xff,0x4e,0x5,0xfd,0xfd,0xf1,0xf6,0xb,0xff, +0x92,0x6,0xc3,0x5,0x2d,0x5,0x4f,0x3,0x88,0x0,0x78,0x3, +0xf,0x9,0x3,0x8,0xa5,0xff,0x4e,0xfc,0x4b,0x1,0x8e,0x3, +0x48,0x6,0x8b,0xd,0x52,0xc,0x9d,0x5,0x15,0x6,0x5b,0x5, +0x57,0xff,0x8f,0xff,0x19,0x5,0x1d,0x5,0x2d,0xff,0x7c,0xfb, +0xe0,0xfe,0x63,0x6,0x8,0xd,0xa8,0x10,0x23,0x10,0x2b,0xd, +0xa4,0xb,0x5a,0xa,0x35,0x9,0xa0,0xc,0xc9,0xf,0xdb,0xe, +0x8e,0x12,0x4,0x18,0x39,0x15,0x92,0x10,0xa2,0xe,0xf8,0xc, +0x86,0xe,0x39,0xd,0xf0,0x3,0x64,0x1,0xbb,0xa,0x95,0xf, +0x49,0xb,0x5e,0xa,0x75,0xe,0xb1,0xc,0xd3,0x5,0x33,0x2, +0x90,0xfe,0x22,0xf9,0xc4,0xf9,0xd9,0xfd,0x67,0xfd,0x61,0xfd, +0x3a,0x2,0x48,0x7,0x6a,0xa,0xa3,0xa,0xf6,0x7,0x41,0x7, +0x69,0x7,0x86,0x4,0x39,0x0,0x42,0xfa,0x19,0xf8,0xd1,0xfe, +0xe7,0xff,0x82,0xf8,0x19,0xfc,0x5a,0x8,0x36,0xc,0x0,0x8, +0xe8,0x4,0xaa,0xa,0x91,0x16,0xd1,0x19,0xb7,0xe,0xd2,0xff, +0x8c,0xfd,0xf3,0x9,0x1c,0x10,0x9e,0x9,0x98,0x8,0xf4,0xe, +0xd7,0x13,0x30,0x17,0xe6,0x12,0x53,0xa,0x18,0xf,0xff,0x16, +0xe2,0xc,0x9e,0xfe,0x39,0xfe,0xe4,0x5,0x1e,0xe,0x85,0xe, +0xd8,0x1,0xf7,0xf7,0x7f,0xfd,0xb0,0x6,0xa8,0x4,0x92,0xfa, +0xfd,0xfa,0xaf,0x6,0x1b,0x7,0x2a,0xfe,0xb8,0xfd,0x11,0x0, +0x40,0x2,0x86,0x6,0xf1,0xfe,0xac,0xf1,0xad,0xf1,0xd8,0xf1, +0xff,0xe8,0xe2,0xe7,0xb9,0xee,0xae,0xf2,0x6d,0xf5,0x96,0xf4, +0xf2,0xee,0x48,0xf1,0x3,0xfd,0x53,0x1,0xcb,0xf8,0x68,0xf0, +0xa7,0xf2,0xcf,0xfb,0x5a,0xff,0x92,0xf8,0x67,0xf5,0x5e,0xff, +0x8f,0x4,0xd1,0xf7,0xdc,0xea,0xca,0xec,0x1a,0xfa,0xeb,0xa, +0x73,0xe,0x32,0xff,0x16,0xf7,0xfa,0xfd,0xba,0xfa,0x67,0xef, +0x84,0xf1,0x94,0xf6,0x29,0xf4,0x95,0xf9,0x72,0x1,0xa,0xfc, +0x97,0xfb,0xc2,0x6,0x5f,0x2,0x10,0xf5,0x7d,0xfb,0x27,0x6, +0x2b,0x3,0xd0,0x4,0x8e,0xb,0xdd,0x9,0x6,0xc,0x12,0xe, +0xd5,0xf9,0x79,0xe2,0x96,0xe0,0xfb,0xe3,0xa5,0xe3,0x21,0xea, +0x2b,0xf5,0x1d,0x0,0x8c,0x9,0x15,0xa,0x70,0x0,0x26,0xf5, +0x22,0xf0,0xe0,0xee,0xfc,0xe6,0x9e,0xde,0x4f,0xe8,0xaa,0xfc, +0x5c,0x5,0xe5,0x4,0xb9,0x6,0xc8,0x5,0x6c,0xff,0x87,0xf7, +0x37,0xea,0xa7,0xde,0x68,0xe7,0xdb,0xf9,0xa,0xfc,0xd3,0xf9, +0x77,0x8,0x4f,0x11,0x1e,0x2,0xeb,0xf3,0xd2,0xed,0x5b,0xe3, +0xcd,0xe5,0x18,0xf5,0x34,0xf3,0x3b,0xed,0xe3,0xfd,0x60,0xe, +0x92,0xa,0x15,0x5,0x32,0x5,0x93,0xfe,0x94,0xf8,0xdd,0xfb, +0xf0,0xf9,0xed,0xf5,0x14,0x0,0x48,0x6,0xb6,0xf9,0x87,0xf1, +0x20,0xfb,0x17,0x8,0x28,0xb,0x9d,0x4,0x46,0xfd,0x89,0xfc, +0x4e,0x2,0x5,0x5,0x85,0xfc,0x2b,0xf3,0x2d,0xf6,0x6e,0x0, +0x5b,0x6,0x6,0x5,0xf9,0x2,0x1a,0x5,0x7d,0x5,0x5f,0xfd, +0xbb,0xf0,0x50,0xeb,0x5b,0xf0,0xef,0xf8,0x17,0x5,0x28,0x11, +0xdc,0x13,0x32,0x14,0x96,0x12,0x8e,0x4,0xb9,0xf4,0x30,0xec, +0x44,0xe7,0x28,0xea,0xe1,0xf2,0x82,0xfd,0xcd,0xb,0x2f,0x15, +0xbb,0x17,0xf3,0x17,0x71,0xe,0xad,0xff,0x59,0xf7,0x7b,0xf0, +0xcb,0xed,0x49,0xf9,0xfe,0x5,0x3c,0x7,0x81,0x7,0xb6,0x9, +0xac,0x6,0x28,0x5,0x21,0x6,0xdc,0x0,0x3,0xfc,0x8c,0xfc, +0xca,0xfc,0xce,0xfe,0x11,0x4,0xfe,0x7,0xca,0x6,0x6a,0x2, +0x8f,0x4,0x5d,0xa,0xb8,0x9,0x25,0x9,0x5,0x8,0xcd,0xfc, +0xf4,0xf1,0x97,0xf0,0x2a,0xf2,0xf2,0xf6,0x20,0x2,0xe,0xd, +0xca,0x13,0x2e,0x1a,0x86,0x1b,0x60,0x11,0x65,0x5,0xcf,0xfc, +0x8,0xf3,0x80,0xee,0xb8,0xf1,0xdd,0xf6,0x43,0x1,0x93,0xd, +0x5e,0xf,0x1d,0xb,0x21,0xd,0x84,0xd,0x80,0x1,0x95,0xf8, +0x3d,0xfb,0xeb,0xf8,0x58,0xf7,0xd4,0x4,0x6b,0xd,0xc8,0x4, +0xf8,0xfe,0xbd,0x2,0x71,0xfe,0x9d,0xf3,0x8c,0xf7,0x6a,0xff, +0x67,0xfb,0x91,0x2,0x2f,0xe,0x77,0xff,0x1c,0xf3,0x86,0xfd, +0x7b,0xfa,0x31,0xea,0x32,0xec,0x62,0xf3,0xc4,0xe9,0xc0,0xe2, +0x80,0xee,0xfd,0xf7,0xd2,0xf6,0x61,0xfd,0x8f,0x6,0xa5,0x1, +0x7d,0xf9,0x46,0xfb,0x19,0xfe,0xa1,0xfb,0x61,0xfd,0xd9,0xfe, +0x95,0xf3,0x47,0xef,0xf0,0xfc,0x4a,0x1,0xca,0xfd,0xb1,0x9, +0xf5,0x15,0x2,0x12,0xf3,0xc,0x3,0x10,0x3b,0xf,0x39,0x7, +0x5d,0x6,0x63,0xa,0xf0,0x3,0xb2,0xfc,0x46,0x0,0x30,0x4, +0x8,0x2,0x94,0xfc,0x12,0xf8,0x7e,0xf9,0x45,0xff,0x39,0x5, +0x89,0x7,0xe2,0x6,0xad,0xb,0x1c,0x10,0xe5,0x6,0xd8,0xf9, +0x91,0xf4,0xcc,0xef,0x28,0xe8,0x26,0xe3,0x4d,0xe3,0x14,0xea, +0xed,0xf4,0xa6,0xfa,0xd5,0xfa,0x44,0xfe,0xb5,0x0,0xe8,0xfa, +0x15,0xf7,0x3c,0xf8,0xf0,0xf4,0xe3,0xf5,0xa0,0x0,0x4a,0x0, +0x95,0xf3,0x6c,0xf5,0x58,0x2,0x84,0x0,0x12,0xfa,0xec,0x1, +0xee,0x6,0x2c,0x4,0x9c,0xf,0xda,0x1b,0x8a,0x13,0x53,0x10, +0x2b,0x1b,0x25,0x15,0x33,0x4,0xad,0x3,0x7d,0x6,0xba,0xfe, +0xdf,0xfc,0x75,0x2,0xc1,0xff,0x81,0xfc,0x15,0x5,0xe3,0xa, +0x5c,0x6,0x12,0x8,0x9e,0xf,0x51,0xc,0x94,0x2,0x19,0xff, +0x14,0xfc,0x3e,0xf3,0x8f,0xee,0x56,0xf0,0x92,0xee,0xa1,0xf1, +0x13,0x1,0x5,0x8,0x5c,0x4,0xc9,0xb,0xf3,0x11,0xd2,0x6, +0x77,0x0,0x8e,0x3,0x85,0xfc,0x92,0xf7,0x60,0x0,0xb7,0x0, +0x7f,0xfb,0x36,0x6,0xd0,0xc,0x96,0x1,0x89,0xfd,0x37,0x0, +0xba,0xf8,0xc0,0xf3,0x3d,0xf8,0xbb,0xf9,0xfe,0xf8,0xd7,0xfc, +0xd9,0x0,0xe3,0x0,0xd6,0x0,0xa7,0x1,0xd8,0xff,0x65,0xff, +0x1a,0x3,0xb7,0x3,0xe4,0x1,0x61,0x5,0xe7,0xa,0xb0,0xe, +0xa5,0x15,0xb3,0x1c,0x98,0x1c,0x9a,0x1c,0xa0,0x20,0x41,0x1e, +0xe0,0x17,0xe5,0x14,0xc0,0xe,0x9f,0x8,0xe,0xa,0x95,0xa, +0x4d,0x8,0xab,0x9,0xee,0xc,0xe2,0x10,0xc,0x13,0x98,0xe, +0x83,0x7,0x49,0x2,0x2e,0xfe,0xd9,0xfa,0x7e,0xf6,0x2b,0xf2, +0x22,0xf4,0x98,0xfb,0x96,0x0,0x63,0x2,0x1f,0x5,0x3f,0x7, +0x59,0x7,0xbe,0x4,0x72,0xfc,0xb6,0xf5,0xfd,0xf6,0x5a,0xf4, +0x6e,0xed,0x63,0xf3,0x10,0xff,0xc5,0xfe,0xce,0xfc,0xa1,0x1, +0x74,0xff,0xdd,0xf8,0x8d,0xfc,0xf2,0xff,0xe5,0xfa,0xc3,0xfe, +0x2b,0xc,0xf5,0x11,0x2f,0x15,0x9a,0x1d,0x79,0x1e,0x1e,0x16, +0xaa,0x11,0x6,0xe,0x4,0x3,0x90,0xf9,0xb8,0xf9,0x86,0xfd, +0x84,0x0,0x52,0x5,0xe6,0xa,0x76,0xd,0x92,0xd,0x14,0xa, +0x75,0x2,0x35,0xfd,0x1f,0xf8,0xf3,0xee,0xd3,0xec,0x31,0xf1, +0x64,0xf1,0x39,0xf5,0x38,0xfc,0x9a,0xfb,0x94,0xfc,0x72,0x0, +0x41,0xfa,0x60,0xf3,0xf7,0xf7,0x6b,0xfc,0xc0,0xf9,0xbc,0xfa, +0x91,0xff,0xa1,0xfe,0x24,0xfd,0xd8,0xfc,0xf0,0xf4,0xef,0xed, +0xe6,0xed,0xff,0xea,0xab,0xe9,0x69,0xef,0x9c,0xf3,0xbc,0xf5, +0xe8,0xf9,0x29,0xfd,0xee,0xfb,0x50,0xf9,0x73,0xfa,0xec,0xf9, +0xd0,0xf4,0x7f,0xf2,0x69,0xf1,0x14,0xef,0x98,0xee,0xab,0xed, +0x1b,0xee,0xfb,0xf1,0x34,0xf6,0x13,0xfc,0x66,0x1,0x47,0x4, +0xfb,0x5,0x1f,0x2,0x4d,0xfd,0xae,0xfb,0xa9,0xf5,0x94,0xf1, +0x3b,0xf5,0x71,0xf7,0xa5,0xfa,0x2b,0x2,0x4f,0x6,0x30,0x7, +0x20,0x8,0x90,0x6,0x97,0x1,0x91,0xfe,0xd2,0xff,0x66,0xfe, +0xf0,0xfc,0x4,0x3,0x4e,0x6,0x33,0x1,0xb3,0xfc,0xf,0xf9, +0x8a,0xf4,0x8c,0xf2,0xd,0xf3,0x33,0xf4,0x10,0xf4,0x3e,0xf5, +0x4c,0xf9,0xa3,0xf9,0xcb,0xf8,0x33,0xfc,0x1c,0xfc,0xe8,0xf9, +0x59,0xfc,0xd6,0xf9,0xda,0xf2,0x30,0xf5,0xe5,0xf7,0x10,0xef, +0x81,0xea,0x1f,0xf1,0x7,0xf2,0x78,0xef,0x49,0xf7,0x77,0xfe, +0x41,0xfd,0x39,0x0,0xe6,0x3,0x1e,0xfc,0x5e,0xf3,0x4a,0xf5, +0x2f,0xf9,0x3,0xf7,0x2f,0xf7,0x7b,0xfe,0x73,0x1,0xd5,0x0, +0x13,0x7,0x3,0x7,0xe1,0xfd,0x8c,0x1,0x47,0x7,0x5,0xfe, +0x8c,0xfa,0xaa,0x0,0x72,0xff,0x4e,0xfd,0xfd,0xfe,0x8,0xfd, +0x1a,0xfa,0x47,0xfa,0x86,0xfb,0x70,0xfb,0x33,0xfb,0x1c,0xfd, +0xc2,0xfd,0x5e,0xfc,0x89,0xfc,0x22,0xfc,0xb7,0xf8,0x6c,0xf4, +0x60,0xf4,0x7e,0xf9,0xfc,0xfc,0xd,0x1,0xb4,0x8,0x7a,0x9, +0xec,0x5,0xfe,0x7,0x33,0x7,0xf2,0xff,0xb0,0xfc,0x3a,0xfe, +0xa0,0xfd,0xe3,0xfd,0xb8,0x4,0xaf,0x9,0xf,0x9,0xde,0xb, +0x76,0xb,0xcf,0x2,0x25,0xff,0x91,0xfe,0xb,0xf9,0xe5,0xf4, +0x5c,0xf6,0x86,0xfc,0x7d,0x0,0xfa,0xff,0xcd,0x4,0xf5,0x7, +0xd5,0x1,0x8a,0x0,0x22,0x1,0x3a,0xfa,0x5e,0xf8,0xe2,0xfb, +0xd4,0xf9,0x93,0xf8,0x5d,0xfe,0x31,0x4,0x25,0x5,0x1b,0x5, +0x62,0x6,0x22,0x5,0xc,0x1,0x3b,0xfe,0xcd,0xfc,0x49,0xf9, +0xd7,0xf5,0x73,0xf9,0x9f,0xff,0x11,0x1,0xe4,0x4,0xc8,0xa, +0xf5,0x8,0x2,0x4,0x5,0x1,0x9d,0xfd,0xbb,0xfb,0x26,0xfb, +0x8e,0xfb,0xbe,0xfe,0x3f,0x1,0x68,0x3,0x94,0x6,0x99,0x4, +0xde,0xfe,0x55,0xfc,0x9d,0xf9,0x92,0xf4,0xfd,0xf4,0xb5,0xfb, +0x24,0x0,0xcb,0x2,0xf5,0x8,0xf,0xd,0x3,0xb,0x40,0x8, +0x77,0x5,0xd0,0x0,0x43,0xfe,0x84,0xff,0xe3,0x1,0xa7,0x3, +0x4b,0x5,0x9f,0x9,0x43,0xf,0x2f,0xf,0x18,0xa,0x70,0x6, +0xf3,0x3,0xc2,0x2,0x7a,0x4,0x6c,0x5,0xb3,0x7,0xdb,0xd, +0x66,0xd,0x1,0x5,0x5b,0x1,0x7d,0x1,0x66,0xff,0x73,0x1, +0x50,0x7,0xd8,0x7,0xf7,0x5,0x78,0x8,0x4d,0xb,0xd3,0xa, +0x10,0x9,0xe4,0x5,0x9c,0x1,0xeb,0xff,0xa3,0x2,0x5c,0x6, +0x81,0x7,0x58,0x9,0xbe,0xc,0xe0,0x9,0xdb,0x1,0x89,0xfd, +0xac,0xfb,0xbc,0xfa,0x8a,0xfe,0x4e,0x3,0x8a,0x4,0xdc,0x5, +0x8a,0x8,0x21,0x9,0xae,0x7,0x26,0x6,0x73,0x4,0x64,0x3, +0x43,0x3,0xfb,0x3,0x87,0x8,0xe1,0xd,0x7,0xd,0xf,0xa, +0x8b,0x8,0xa8,0x3,0x49,0xff,0x92,0x1,0x18,0x4,0xcd,0x1, +0x79,0x0,0xed,0x2,0x4e,0x3,0x89,0x1,0x98,0x3,0xd3,0x5, +0x0,0x5,0x80,0x7,0xdb,0x9,0x9b,0x4,0x56,0x1,0xf4,0x6, +0x67,0x9,0x67,0x3,0xe8,0xff,0xee,0x0,0xeb,0xff,0xc5,0x0, +0x47,0x6,0xd0,0x9,0x9c,0x9,0xb3,0x7,0x64,0x4,0x77,0x1, +0x34,0x0,0xab,0x0,0xa5,0x0,0xc6,0xfe,0x51,0xff,0xfd,0x0, +0x25,0xff,0x48,0xfe,0x1a,0xff,0x82,0xfd,0x4,0xfe,0x7d,0x1, +0xdb,0x1,0x2f,0x2,0x54,0x8,0x6f,0xe,0x15,0xd,0x72,0x8, +0x7,0x4,0x10,0xfd,0x3c,0xfa,0xd1,0x0,0xc8,0x5,0x35,0x5, +0xca,0x6,0xa3,0x8,0x35,0x8,0x5d,0xb,0x7a,0xf,0x34,0xc, +0x6f,0x7,0x22,0x9,0x38,0x8,0xc5,0x0,0x5a,0xff,0x1e,0x3, +0x5e,0x0,0x82,0xfb,0x55,0xfb,0x12,0xfb,0xfd,0xfa,0xa0,0x1, +0x3,0xb,0xad,0xc,0xbf,0x7,0xe7,0x2,0x8,0xfc,0xbc,0xf4, +0x64,0xf5,0x6e,0xf9,0x4f,0xf8,0xe6,0xf8,0xfa,0x0,0xe2,0x5, +0x18,0x2,0x50,0x1,0xf4,0x3,0x63,0xfc,0xb5,0xf2,0xf6,0xf3, +0x89,0xf4,0x95,0xf4,0xc3,0x1,0x4,0xd,0xf,0x9,0x6d,0x5, +0xf4,0x3,0xf5,0xf9,0xde,0xf1,0xf6,0xf4,0x78,0xf9,0x50,0xfb, +0x78,0xff,0xb0,0x3,0xda,0x5,0x93,0x9,0x45,0xc,0x8b,0x9, +0xbc,0x3,0xa6,0xfb,0xb1,0xf2,0x84,0xee,0x7e,0xee,0x60,0xef, +0xad,0xf2,0x71,0xf5,0x98,0xf2,0x5d,0xf0,0x2c,0xf7,0x89,0xff, +0x7a,0xff,0xad,0xfc,0xdb,0xf8,0xc7,0xed,0x83,0xe5,0xa2,0xe7, +0xb0,0xe9,0xe0,0xee,0x4,0xfe,0xab,0x6,0x20,0x3,0xd,0x3, +0xaf,0x5,0xef,0x1,0xfa,0xfc,0xa6,0xf5,0xbb,0xe8,0xa5,0xe7, +0x1a,0xf6,0xf6,0xfd,0x67,0x1,0x4a,0xd,0x57,0x10,0xc7,0x3, +0xe4,0xf8,0xc0,0xed,0x36,0xdf,0xe3,0xde,0xba,0xeb,0x2e,0xf2, +0xdb,0xf5,0x25,0x2,0x84,0x9,0xf4,0x2,0x90,0xff,0x9,0x1, +0xe6,0xf6,0xa8,0xec,0xc7,0xf2,0x20,0xf9,0x2e,0xf8,0xbb,0xff, +0xae,0x9,0xd2,0x4,0x5b,0xfb,0xd0,0xf9,0x9a,0xf5,0x41,0xeb, +0xa5,0xea,0xdd,0xf4,0x1f,0xf8,0x79,0xf4,0xee,0xf8,0xc1,0xff, +0x9f,0xfc,0x6d,0xfa,0x6e,0xfe,0x9f,0xf7,0xc1,0xe9,0xd7,0xeb, +0x47,0xf6,0x23,0xf5,0xc1,0xf2,0xd6,0xf9,0x85,0xfd,0xb7,0xfb, +0x6a,0x0,0x8d,0x6,0x5c,0x4,0xd5,0x1,0x54,0x2,0x1a,0xfb, +0x2f,0xf1,0xd,0xf4,0xa8,0xfc,0x76,0xfd,0x12,0xfc,0x13,0xff, +0x48,0x2,0x13,0x3,0x4f,0x3,0x5b,0x3,0xe7,0x0,0xe3,0xfd, +0x79,0xfe,0x9d,0xfd,0xa6,0xfa,0x24,0x0,0xde,0x8,0x3b,0x8, +0x5d,0x5,0x51,0x5,0xa8,0x1,0x2c,0xff,0x8e,0x0,0x92,0xfb, +0x4e,0xf4,0x44,0xf7,0x39,0xfc,0xdd,0xf9,0x80,0xfa,0x87,0x1, +0x8,0x5,0x66,0x5,0x8c,0x5,0x23,0x0,0x28,0xf8,0x74,0xf5, +0x42,0xf4,0xc5,0xf0,0x10,0xf1,0x24,0xf6,0x95,0xf8,0x7,0xf9, +0x54,0xff,0x2d,0x9,0xf9,0xc,0x2e,0xa,0x30,0x6,0x8e,0x1, +0x45,0xfd,0x10,0xfd,0xdc,0xfd,0xea,0xfb,0xc1,0xfc,0x71,0x1, +0xc9,0x2,0x39,0x3,0x0,0x9,0x9b,0xd,0xe5,0xa,0xa3,0x6, +0x8a,0x3,0x3c,0xfe,0x7b,0xfc,0x68,0x4,0x10,0xb,0xcf,0x8, +0xae,0x9,0xaf,0xf,0x62,0xd,0xc4,0x8,0xf0,0xb,0xe3,0x6, +0x7b,0xf7,0xe9,0xf5,0x79,0xfe,0x36,0xff,0xf,0x4,0xd3,0x11, +0xa5,0x15,0x40,0x10,0xa2,0xd,0x2a,0x7,0xdb,0xf8,0x2f,0xef, +0x1,0xee,0x5,0xeb,0x7b,0xe7,0xb4,0xed,0x3b,0xf8,0x3d,0xfe, +0x62,0x3,0xfb,0x5,0x58,0x0,0x7f,0xf8,0x59,0xf3,0x5f,0xed, +0x93,0xe9,0xc,0xef,0x5f,0xf9,0x2d,0x1,0xb8,0x8,0xc1,0xe, +0x10,0xe,0xa8,0xc,0x7a,0xd,0xb9,0x8,0x7d,0x1,0xd8,0xff, +0x95,0xff,0x10,0xff,0xf,0x5,0xa4,0xe,0x4d,0x12,0xcf,0x11, +0x94,0x11,0xc1,0xc,0x67,0x4,0xd,0x2,0x5a,0x4,0x5a,0x3, +0x19,0x1,0x96,0x3,0x3e,0x8,0x48,0xa,0xe5,0xc,0x58,0xf, +0xca,0x9,0x7d,0x2,0xb,0x2,0xda,0xfe,0x2e,0xf8,0x6d,0xfa, +0x39,0x0,0x9a,0x0,0x89,0x2,0x4f,0x8,0x16,0xb,0x60,0x9, +0xc7,0x4,0x48,0xfd,0x3c,0xf4,0x90,0xed,0x9a,0xec,0xc1,0xf0, +0xb6,0xf7,0x2f,0x0,0xc9,0x8,0xb7,0xf,0xe2,0x12,0x26,0x11, +0xfa,0xb,0xb,0x5,0x9c,0xfd,0x2,0xf9,0x39,0xfa,0xc2,0xff, +0x10,0x6,0xb6,0xc,0x11,0x14,0x94,0x18,0x47,0x18,0xeb,0x15, +0x6b,0x12,0x78,0xd,0xf7,0x8,0x0,0x6,0x74,0x4,0x34,0x4, +0x95,0x6,0x61,0xd,0xbb,0x13,0x4d,0x14,0x87,0x14,0x5,0x18, +0xda,0x17,0xc2,0x11,0xba,0xb,0x81,0x7,0x3,0x4,0x7,0x4, +0xda,0x6,0xb0,0x8,0xfb,0xc,0xb1,0x14,0x18,0x18,0xd3,0x15, +0xb9,0x10,0xc6,0x7,0xe8,0xfd,0x9f,0xf7,0x74,0xf6,0x29,0xfb, +0xc3,0x1,0x82,0x6,0x0,0xb,0x8a,0xe,0x70,0xe,0xbb,0x9, +0xfe,0x1,0x15,0xfc,0xc4,0xf8,0xc5,0xf6,0x44,0xfb,0x26,0x6, +0xe2,0xd,0xc4,0x10,0x1f,0x14,0xdc,0x14,0xd7,0xd,0xf6,0x4, +0x31,0x0,0xbe,0xfc,0xcf,0xfb,0x5,0x1,0x6e,0x6,0xfa,0x7, +0x26,0xc,0x73,0x13,0xca,0x13,0x94,0xc,0x82,0x7,0x83,0x3, +0x24,0xfc,0x85,0xf8,0x14,0xfa,0xf4,0xf9,0xe4,0xfa,0x78,0x0, +0x28,0x6,0x12,0x9,0xf7,0x8,0xc5,0x5,0x77,0x0,0xe7,0xf9, +0xb3,0xf3,0x5d,0xef,0xc0,0xec,0xa4,0xeb,0x8f,0xec,0xc4,0xf0, +0x59,0xf6,0x85,0xf7,0xe0,0xf3,0xa3,0xef,0x6c,0xe9,0x42,0xdf, +0x42,0xd6,0x86,0xd1,0xbb,0xcd,0xa2,0xcb,0xdf,0xce,0xd,0xd4, +0x90,0xd7,0xc7,0xda,0xda,0xdb,0x31,0xd9,0x79,0xd7,0xd7,0xd7, +0x11,0xd6,0xdc,0xd3,0xe2,0xd6,0xa,0xde,0xe7,0xe4,0x9e,0xeb, +0x9d,0xf2,0x97,0xf7,0xd4,0xfa,0x67,0xfe,0x38,0x1,0xc5,0x1, +0xb0,0x2,0xe9,0x6,0xe,0xc,0xaf,0xf,0x6b,0x14,0xf0,0x19, +0x5a,0x1b,0xe,0x1a,0xf9,0x1a,0x46,0x1b,0x55,0x17,0xd,0x14, +0xa4,0x14,0x88,0x14,0x1d,0x13,0x45,0x15,0x1e,0x19,0x6a,0x19, +0xd5,0x18,0x62,0x19,0xea,0x15,0xb1,0xf,0x24,0xc,0xa1,0x7, +0x8d,0x1,0x8f,0x0,0xd6,0x1,0xe1,0xff,0x9,0xfe,0xd0,0xfd, +0x89,0xfc,0x75,0xf9,0xc3,0xf4,0x3c,0xf0,0x94,0xed,0x24,0xec, +0xfe,0xeb,0xb,0xed,0x22,0xee,0x86,0xef,0x74,0xf0,0xbb,0xee, +0x33,0xec,0x5a,0xec,0xf5,0xec,0x65,0xeb,0xbc,0xeb,0xb1,0xef, +0xda,0xf2,0x4c,0xf5,0x3,0xfa,0x3d,0xfe,0x57,0xff,0x77,0x0, +0xcc,0x2,0x25,0x3,0xd5,0x2,0x7,0x5,0x5f,0x6,0xe6,0x5, +0x94,0x7,0x54,0x9,0x53,0x9,0xe4,0xb,0xaf,0x10,0x10,0x14, +0x31,0x16,0x4e,0x17,0x38,0x17,0x15,0x17,0xf,0x17,0x52,0x16, +0x5d,0x14,0xb1,0x11,0x77,0xf,0xbc,0xd,0xeb,0xb,0xbd,0xa, +0x7,0xb,0x7e,0xb,0x95,0xa,0x40,0x9,0x4f,0x8,0xcf,0x6, +0x5b,0x5,0xd8,0x4,0xcd,0x2,0xcd,0xfd,0x37,0xf9,0x13,0xf7, +0x59,0xf5,0x26,0xf3,0x3e,0xf1,0x36,0xf0,0x5d,0xf0,0x96,0xf0, +0xc5,0xf0,0xf4,0xf1,0x8d,0xf2,0x8b,0xf2,0x9,0xf4,0x5c,0xf5, +0x71,0xf5,0xef,0xf5,0xa6,0xf5,0x29,0xf4,0x78,0xf4,0xfc,0xf5, +0x46,0xf5,0xb0,0xf4,0x63,0xf8,0x78,0xfc,0x44,0xfd,0x62,0xff, +0x9d,0x3,0x37,0x5,0xc5,0x5,0xb6,0x8,0xb6,0xa,0xd1,0x8, +0xde,0x6,0x1f,0x7,0x3,0x6,0xf4,0x3,0xfb,0x3,0xc3,0x3, +0x55,0x3,0x70,0x5,0x8b,0x7,0x1c,0x8,0xb9,0x8,0x8e,0x8, +0x9d,0x6,0xa5,0x3,0x3f,0x1,0xa4,0xff,0x31,0xfd,0xf7,0xfa, +0xa7,0xfa,0xf5,0xfa,0x47,0xfa,0xd5,0xf7,0x80,0xf5,0x2a,0xf5, +0x6e,0xf4,0xfb,0xf2,0x52,0xf2,0xe5,0xf1,0x54,0xf3,0xa1,0xf5, +0x50,0xf5,0x7f,0xf5,0x9c,0xf7,0x66,0xf7,0x9d,0xf5,0xc2,0xf5, +0x2f,0xf7,0x52,0xf7,0x7b,0xf6,0x56,0xf8,0xa2,0xfc,0x5e,0xff, +0xb2,0x1,0xd0,0x5,0x17,0x8,0x9a,0x6,0xa0,0x5,0x6c,0x6, +0x9d,0x5,0xf6,0x4,0x8e,0x7,0xee,0x9,0x50,0xa,0xd4,0xa, +0x92,0xb,0xcb,0xc,0x93,0xd,0x5d,0xc,0x8f,0xb,0xff,0xa, +0x4d,0x9,0x2f,0xa,0x93,0xc,0xe9,0xb,0xba,0xa,0xd5,0xa, +0x6d,0x9,0xf4,0x5,0xda,0x1,0x9d,0xff,0xe9,0xff,0x6d,0xff, +0x31,0xfe,0xaa,0xfe,0xd,0xff,0x87,0xfe,0xfa,0xfe,0xda,0xfe, +0xec,0xfb,0x42,0xf8,0xd3,0xf5,0x6f,0xf3,0xc,0xf2,0x99,0xf3, +0x1e,0xf5,0xb2,0xf5,0x2d,0xf8,0xb7,0xf9,0xc9,0xf8,0xa6,0xf9, +0xd1,0xfa,0xd0,0xf9,0x7,0xfa,0x2f,0xfb,0x26,0xfb,0x7a,0xfc, +0x64,0xff,0x2b,0x0,0x0,0x0,0xfa,0x2,0xa,0x5,0x40,0x2, +0xde,0x1,0x5f,0x5,0x88,0x5,0xeb,0x5,0xa2,0xa,0x0,0xd, +0xd2,0xc,0x6b,0xf,0xfa,0x11,0x1f,0x11,0xea,0xf,0x5,0x10, +0xdc,0xe,0x8e,0xc,0xde,0xa,0x9f,0x8,0xc5,0x6,0x16,0x7, +0x46,0x8,0xd5,0xa,0x10,0xd,0x97,0xb,0x3d,0xa,0xe9,0x9, +0xd4,0x5,0xf5,0x0,0x7f,0xfe,0x52,0xfa,0xcf,0xf4,0x82,0xf3, +0xea,0xf5,0x11,0xf7,0xe1,0xf7,0x28,0xfb,0xeb,0xfc,0xa0,0xfb, +0x59,0xfb,0xf6,0xfa,0x4b,0xf8,0x22,0xf6,0xa0,0xf5,0xa5,0xf5, +0xd4,0xf5,0x36,0xf6,0xa7,0xf7,0x46,0xfa,0x81,0xfc,0xc0,0xfd, +0xd3,0xfe,0xd9,0xff,0xc4,0x0,0x8,0x2,0xe4,0x2,0xff,0x2, +0xb3,0x3,0xe,0x5,0xf7,0x6,0xa,0x9,0x36,0x9,0x4b,0x9, +0xd8,0xa,0x68,0x9,0x85,0x5,0x54,0x4,0x7,0x5,0x8e,0x6, +0xb4,0x9,0xd6,0xb,0x41,0xc,0x76,0xd,0x28,0xe,0x95,0xb, +0x7f,0x7,0x98,0x4,0x11,0x2,0x7,0xff,0x16,0xfd,0x7c,0xfe, +0xa4,0x2,0x47,0x5,0x66,0x5,0xd9,0x5,0xf,0x5,0xc9,0x1, +0x3d,0xff,0x76,0xfd,0x84,0xfb,0x3c,0xfb,0xf0,0xfc,0xa3,0xff, +0x70,0x1,0x8f,0x1,0xb1,0x2,0xa2,0x3,0xe7,0x0,0xf1,0xfd, +0x87,0xfd,0xed,0xfc,0x94,0xfd,0x4d,0x1,0x9d,0x2,0x9f,0x0, +0xa2,0x1,0x7d,0x3,0x4,0x1,0x9,0xff,0xee,0xff,0xc1,0xfe, +0xc9,0xfc,0xc2,0xfe,0x15,0x3,0x6,0x5,0x6c,0x3,0x6c,0x2, +0x8d,0x3,0x63,0x2,0x1a,0x0,0x70,0x1,0x80,0x2,0xd,0x1, +0xb3,0x2,0x50,0x5,0x84,0x3,0x2b,0x2,0xf4,0x2,0x3b,0x1, +0x81,0x0,0xbf,0x2,0xb,0x2,0x2f,0x0,0x7a,0x1,0x76,0x1, +0xaf,0xfe,0xee,0xfc,0x63,0xfb,0x7c,0xf9,0x6f,0xf9,0x94,0xf8, +0xc6,0xf4,0x5f,0xf3,0x48,0xf6,0x5b,0xf8,0x94,0xf8,0x1f,0xf9, +0x91,0xf9,0x59,0xfa,0x1e,0xfb,0x6b,0xf9,0x30,0xf7,0x5c,0xf8, +0x48,0xfb,0x62,0xfc,0xf7,0xfb,0x91,0xfa,0x5f,0xf7,0xad,0xf5, +0xff,0xf8,0x84,0xfc,0x75,0xfb,0x13,0xfa,0xc8,0xfa,0xf8,0xf9, +0x9,0xfa,0xad,0xfe,0x55,0x1,0x9d,0xfe,0xe5,0xfc,0x7a,0xfc, +0xad,0xfa,0x20,0xfb,0xce,0xfc,0xf5,0xfb,0xec,0xfc,0xed,0x0, +0x26,0x1,0x9c,0xfd,0xf0,0xfc,0xf2,0xff,0x7e,0x3,0xa4,0x4, +0x4a,0x0,0x5d,0xfa,0x65,0xfa,0xd8,0xfd,0xa6,0xff,0x48,0x0, +0x3e,0xfe,0x44,0xfa,0xd3,0xf9,0x9a,0xfc,0x1a,0xfe,0xa7,0xfc, +0xbf,0xf9,0x55,0xf8,0x25,0xf9,0xf5,0xfa,0xbc,0xfc,0x1,0xfe, +0xda,0xff,0xef,0x1,0x57,0x2,0xa0,0x0,0xd1,0xfc,0xba,0xf9, +0xce,0xf9,0x5a,0xfa,0xd4,0xfb,0xd3,0xfe,0xc6,0xfd,0x1e,0xfb, +0xf7,0xfe,0xd3,0x4,0x3a,0x4,0x50,0x0,0xf1,0xfe,0x27,0xfe, +0x1c,0xfd,0xed,0xfe,0xf,0x0,0x99,0xfe,0x5c,0x1,0x94,0x6, +0xd1,0x5,0x23,0x1,0x7,0xfe,0x3,0xfd,0x90,0xfe,0xbe,0x1, +0xdb,0x1,0x83,0xfe,0x98,0xfe,0x58,0x3,0xa7,0x5,0x81,0x4, +0xea,0x3,0xed,0x3,0x60,0x4,0x90,0x4,0xc6,0x1,0xa6,0xfd, +0x20,0xfc,0x61,0xfd,0x1,0x0,0xd9,0x1,0x1c,0x0,0x65,0xfe, +0x3,0x3,0xac,0x8,0x53,0x7,0xec,0x2,0x42,0x0,0x8d,0xff, +0x4e,0x1,0x49,0x1,0x93,0xfd,0x85,0xfc,0xfc,0xff,0xfd,0x4, +0x27,0x8,0xfd,0x3,0x2a,0xfc,0xa4,0xfc,0x5,0x4,0x73,0x6, +0xf1,0x3,0xb8,0x4,0x23,0x9,0xaa,0xe,0x2c,0x13,0x89,0xf, +0x15,0x4,0x13,0xfc,0x9c,0xfb,0x69,0xfe,0x64,0x0,0x4c,0x1, +0x4d,0x7,0x17,0x13,0xb1,0x1a,0x6a,0x18,0x50,0xf,0x39,0x7, +0x1f,0x6,0x26,0x6,0x22,0x0,0x78,0xf8,0xe7,0xf5,0x71,0xfa, +0xd2,0x2,0x71,0x7,0xe1,0x5,0xa5,0x2,0xd4,0x0,0xa1,0x1, +0x3c,0x5,0x6a,0x8,0xa3,0x9,0x1e,0xc,0xbc,0xe,0xe6,0xb, +0x33,0x6,0x1,0x4,0x46,0x4,0x68,0x5,0x2e,0x6,0x89,0x1, +0x6f,0xfb,0x2d,0xfd,0xc2,0x1,0x8d,0x0,0xd1,0xfc,0x70,0xfc, +0xbf,0x0,0x6c,0x5,0x3,0x4,0xbc,0xfe,0x3,0xfc,0x30,0xfb, +0x7a,0xf8,0x4e,0xf3,0x4b,0xef,0xe,0xf1,0x79,0xf9,0xe9,0x4, +0x14,0xb,0x8a,0x7,0xc3,0x1,0xe2,0xff,0xf9,0xff,0x41,0x0, +0x7,0xfe,0x30,0xfa,0x4b,0xfd,0x2d,0x8,0x7d,0x10,0x86,0x10, +0xf2,0xb,0x76,0x6,0x9d,0x0,0xf,0xfc,0xd7,0xf6,0x88,0xee, +0x45,0xee,0x29,0xfd,0xc,0xc,0xd,0xf,0x28,0xb,0xb3,0x4, +0xa4,0xfc,0x8f,0xf7,0xc4,0xf6,0xa3,0xf3,0x73,0xee,0x6c,0xf1, +0xe6,0xf9,0x8c,0xfd,0x27,0x0,0x87,0x4,0x44,0x4,0x32,0x0, +0xc,0xfb,0xff,0xf2,0x86,0xed,0x3,0xf2,0x56,0xfa,0x39,0xfd, +0xfb,0xfd,0x1d,0x0,0xa3,0xfd,0xe6,0xf5,0xca,0xf1,0x8,0xf6, +0xb1,0xfb,0xe3,0xfb,0x5e,0xfe,0x45,0x6,0x5c,0x6,0x33,0x1, +0x98,0x3,0xec,0x2,0x5,0xf8,0x9f,0xf3,0x4f,0xf9,0x53,0xfb, +0x65,0xfb,0xd4,0x1,0x4,0x7,0x88,0x5,0x25,0x3,0x72,0xfd, +0x8d,0xf2,0xc5,0xed,0x34,0xf3,0x62,0xf9,0x94,0xf9,0x8e,0xf7, +0x71,0xfa,0x1,0xff,0x19,0xfe,0x89,0xf9,0x26,0xf5,0x44,0xf6, +0x78,0xff,0x43,0x5,0xd4,0x3,0x18,0x8,0xd4,0x10,0x4,0x10, +0x27,0x6,0x86,0xfc,0x7f,0xf5,0x28,0xf3,0x51,0xfa,0xb3,0x4, +0xbe,0x6,0x98,0x4,0xbe,0x6,0xaf,0x6,0x3,0xfe,0xde,0xf4, +0x21,0xf2,0xc1,0xef,0x8,0xec,0xba,0xee,0x45,0xf2,0x7,0xee, +0x90,0xee,0x4f,0xf7,0x86,0xf5,0x2,0xeb,0x95,0xe9,0x33,0xee, +0x5f,0xf1,0x19,0xf7,0x3f,0xfd,0x60,0xff,0x4a,0x0,0x3f,0xfe, +0xd8,0xf5,0x9c,0xee,0xc6,0xef,0xe2,0xf4,0x26,0xfa,0xc1,0x2, +0x56,0xc,0xa6,0x10,0x43,0x11,0x51,0x10,0xb2,0xb,0x1a,0x5, +0x9d,0xff,0xb5,0xfc,0xb7,0xfe,0x33,0x4,0x40,0x8,0x75,0x9, +0x34,0xa,0xe4,0xa,0xde,0x6,0xb1,0xfc,0x85,0xf3,0xab,0xf0, +0x31,0xf2,0x8a,0xf5,0x37,0xfb,0xc7,0x1,0xc4,0x3,0xe7,0x1, +0xc9,0xff,0x24,0xf8,0x46,0xed,0xd3,0xea,0xc3,0xed,0x97,0xf0, +0x2,0xf7,0xd0,0xfb,0xaf,0xfb,0x87,0x0,0xd9,0x9,0xe,0xc, +0x47,0x6,0x98,0x0,0x5d,0x0,0xb0,0x5,0xa8,0xb,0xaa,0xd, +0xbc,0xd,0xe6,0xd,0x1d,0xa,0x6c,0x1,0xfd,0xf9,0x43,0xf8, +0x67,0xfa,0xfe,0xfc,0x43,0x1,0x9e,0x8,0x92,0xe,0x7e,0x11, +0x8e,0x13,0xc3,0x11,0x5f,0xc,0xe4,0x8,0xf0,0x4,0x68,0xff, +0x1a,0x0,0x7c,0x4,0x3f,0x4,0xe1,0x4,0xb1,0x7,0xae,0x2, +0x73,0xfa,0xa8,0xf9,0x77,0xfc,0xd1,0xfe,0x43,0x2,0x81,0x6, +0xfd,0xa,0x1c,0xc,0x71,0x7,0x71,0x1,0x2,0xfb,0xd3,0xf1, +0xf0,0xe9,0xf9,0xe8,0x96,0xef,0x6,0xfb,0xe9,0x8,0x5b,0x16, +0x72,0x1e,0x71,0x1f,0xeb,0x1a,0x80,0x11,0x4c,0x5,0xcb,0xfb, +0x36,0xf9,0xfb,0xf9,0x3a,0xfa,0xaa,0xff,0x93,0x9,0x6b,0xe, +0x1c,0x10,0xcc,0xf,0x61,0x5,0xb0,0xf5,0x3b,0xec,0xf6,0xe9, +0x87,0xec,0x80,0xf1,0xf9,0xf5,0xc1,0xfa,0x0,0x1,0x11,0x6, +0x75,0x6,0x2a,0x2,0x72,0xfb,0x71,0xf4,0xd0,0xef,0x3b,0xee, +0xb1,0xef,0x62,0xf5,0xbe,0xfc,0x9b,0x3,0xd1,0xa,0x8a,0xe, +0x86,0xc,0x20,0xa,0x90,0x9,0x9f,0x7,0x11,0x4,0xf3,0x1, +0x71,0x1,0xe3,0x1,0x9e,0x5,0x3d,0xa,0xbe,0xa,0x84,0xa, +0x7f,0xb,0x5,0x8,0xcc,0x0,0x55,0xfd,0x43,0xff,0xb6,0x1, +0x79,0x3,0x88,0x7,0x82,0xa,0x9f,0x7,0x7d,0x3,0xef,0x2, +0xc2,0x2,0xf5,0xfe,0x21,0xfa,0x87,0xf9,0x9c,0xfb,0x6a,0xfd, +0x53,0x1,0xaf,0x5,0xa3,0x6,0xd3,0x5,0x1f,0x3,0xd4,0xfd, +0xd,0xfb,0xd2,0xfd,0xa1,0x1,0x29,0x2,0xd1,0x2,0xa6,0x6, +0x63,0x7,0x13,0x3,0x99,0x1,0xf9,0x2,0x7c,0x0,0xb6,0xfb, +0x9,0xfa,0x4c,0xfb,0xe1,0xfb,0xec,0xfa,0x13,0xfb,0xbf,0xfc, +0x39,0xfe,0xd2,0xfe,0xca,0xfc,0x2a,0xf9,0x83,0xf8,0x1a,0xf9, +0x4d,0xf6,0xe8,0xf1,0x42,0xef,0xb0,0xef,0xe8,0xf3,0x98,0xf9, +0x6b,0xfd,0x9f,0x0,0x3e,0x6,0xc4,0xa,0xc4,0x9,0xa4,0x7, +0x45,0x6,0xcf,0x2,0xb7,0x2,0x7b,0x7,0x99,0xa,0x71,0xe, +0xfe,0x13,0xf0,0x15,0x1,0x16,0x2e,0x14,0x8a,0xe,0x19,0xb, +0x3f,0xc,0xde,0xe,0x53,0x12,0x7a,0x14,0xba,0x12,0x6b,0xf, +0x31,0xe,0x6,0xc,0x7c,0x4,0x2,0xfd,0x71,0xf9,0xd9,0xf5, +0x70,0xf4,0xcf,0xf7,0x3d,0xfc,0x0,0x0,0xf9,0x0,0xe1,0xfd, +0xcd,0xf8,0x50,0xf2,0xdf,0xec,0x54,0xe9,0xed,0xe4,0x54,0xe3, +0x7f,0xe7,0xa4,0xec,0xd6,0xee,0xa9,0xee,0xdc,0xf0,0x9b,0xf5, +0xae,0xf5,0x26,0xf3,0x8f,0xf4,0x54,0xf5,0x35,0xf3,0x0,0xf5, +0xa6,0xfa,0x66,0xfd,0x7d,0xfd,0xc0,0xfe,0x69,0x0,0xd4,0x2, +0xe2,0x5,0x9d,0x5,0x83,0x5,0xa0,0x9,0xed,0xa,0xb4,0x7, +0xd,0x6,0x7,0x6,0xe8,0x6,0xed,0x8,0xf0,0x8,0x4f,0x8, +0x45,0xb,0x1d,0xf,0x52,0x10,0x4a,0x10,0x56,0xe,0xe3,0xa, +0x23,0xb,0xd0,0xc,0x64,0xb,0x23,0xc,0xdc,0xe,0x85,0xd, +0x9d,0xc,0x47,0xe,0x13,0xb,0x6c,0x3,0xbc,0xfe,0xa6,0xfd, +0x10,0xfc,0x4,0xfa,0x84,0xf9,0x3e,0xf9,0xd4,0xf8,0xe0,0xf8, +0xac,0xf7,0xb3,0xf5,0xd,0xf4,0x7c,0xf2,0xfe,0xf2,0x14,0xf4, +0xf3,0xf1,0xd0,0xef,0xd8,0xf0,0x6c,0xf1,0x90,0xef,0x60,0xef, +0xa2,0xf2,0x8d,0xf4,0xbf,0xf5,0x16,0xfc,0xec,0x1,0x2d,0x0, +0xca,0xfd,0x69,0xfe,0xc5,0xfc,0x2a,0xfa,0x9d,0xf8,0x71,0xf4, +0x5f,0xf0,0x33,0xf2,0x96,0xf6,0xe2,0xf9,0x18,0xff,0x58,0x4, +0x53,0x4,0xb6,0x3,0x76,0x7,0x38,0x8,0xc7,0x2,0xca,0x0, +0xde,0x4,0x67,0x6,0xba,0x4,0xfc,0x6,0xfb,0x9,0xdd,0x6, +0x89,0x5,0x43,0x9,0x2,0x4,0x42,0xfa,0xc8,0xfd,0x78,0x3, +0xea,0xff,0x6a,0x2,0xf6,0xb,0x26,0xf,0x8f,0x10,0xda,0x13, +0x21,0x11,0x4c,0xb,0x95,0x8,0xd8,0x3,0x3a,0xfd,0xc6,0xfc, +0x4,0xff,0x49,0xfe,0x2c,0x1,0x77,0x9,0xfc,0xe,0x7c,0xe, +0xae,0xb,0x19,0xb,0xd6,0xa,0xeb,0x6,0xd,0x3,0x5e,0xff, +0xc1,0xf9,0xec,0xf9,0xa0,0xfe,0xda,0xfd,0x7c,0xfc,0xf5,0xfe, +0x31,0xfe,0x24,0xfc,0x60,0xfe,0x10,0xff,0x35,0xfc,0x1f,0xfd, +0xd0,0x0,0x95,0x1,0x2c,0x1,0x80,0xff,0x59,0xfb,0x8a,0xf9, +0x7d,0xf9,0xeb,0xf6,0x15,0xf4,0x5a,0xf2,0xe6,0xf0,0x27,0xf1, +0x58,0xf3,0x89,0xf5,0x6,0xf6,0xd1,0xf6,0x47,0xf9,0x5f,0xf9, +0x18,0xf8,0x62,0xf8,0x0,0xf5,0xe0,0xef,0x15,0xf2,0x2e,0xf6, +0xd1,0xf3,0x9e,0xf3,0x90,0xfb,0x10,0x1,0x10,0x2,0x37,0x6, +0xed,0x5,0xc1,0xfe,0xb0,0x0,0xc8,0x7,0x32,0x3,0x23,0xfd, +0x18,0x3,0xf9,0x7,0x66,0x2,0xe,0x0,0xb0,0x3,0x81,0xff, +0x8,0xfc,0xe3,0x4,0xf4,0x6,0xc3,0xff,0x20,0x6,0x12,0xf, +0xbf,0x6,0x76,0xfe,0x42,0x0,0xd6,0xfc,0xec,0xf6,0xf9,0xf9, +0xa,0xfb,0x6e,0xf5,0x99,0xf9,0xb1,0x5,0xb6,0x6,0x3,0x0, +0x2e,0xff,0x98,0xff,0x68,0xfa,0x2e,0xf5,0x9f,0xf3,0xd1,0xf2, +0xa4,0xf3,0x9b,0xf6,0xa,0xf6,0x66,0xf4,0x35,0xf9,0x1e,0xfd, +0x6b,0xfa,0x74,0xf9,0xc,0xf8,0x4d,0xf2,0x36,0xf3,0xb2,0xf7, +0xf6,0xf4,0x79,0xf5,0x83,0xfc,0x41,0xfe,0xe3,0xfd,0xfb,0xff, +0x3c,0x0,0xe3,0xff,0x40,0xfd,0x51,0xf9,0x3d,0xfd,0xc6,0x0, +0xa,0xfb,0x63,0xfc,0xa0,0x6,0x64,0x6,0x51,0x2,0x38,0x6, +0x7b,0x2,0x3a,0xf8,0x3f,0xfa,0x69,0xfd,0x56,0xf9,0x9a,0xfd, +0x32,0x3,0x7f,0xff,0x6d,0x0,0x56,0x4,0xee,0x0,0x4a,0xff, +0xe2,0x0,0x88,0xfe,0x80,0xfc,0xd3,0xfc,0x59,0xfc,0xc5,0xfd, +0x1d,0x2,0x6a,0x4,0xd4,0x4,0x8e,0x7,0xe6,0x7,0x10,0x2, +0xda,0xfe,0x29,0x0,0xe2,0xfc,0xad,0xf6,0xcc,0xf5,0x3d,0xf9, +0x4c,0xfd,0xef,0x2,0x85,0x7,0x7a,0x5,0xb,0x4,0x5f,0xc, +0x3f,0x12,0x8f,0xa,0x3e,0x1,0x3a,0xff,0xc,0x0,0xaa,0x2, +0x4a,0x6,0x71,0x7,0x59,0x9,0xda,0xe,0xc7,0x11,0xb3,0xc, +0x31,0x3,0x4e,0xfe,0x53,0x2,0xe4,0x6,0xbc,0x3,0x2,0x1, +0x29,0x8,0x81,0x11,0x85,0x13,0x5e,0xf,0xca,0x6,0xb,0xfe, +0x9b,0xfc,0x5e,0xfd,0xa4,0xfa,0x3b,0xfc,0x2d,0x0,0x84,0x0, +0xa8,0x6,0x83,0xe,0x7e,0xa,0xc8,0x5,0xb6,0x5,0x5a,0xfc, +0x34,0xf3,0xbe,0xf8,0x73,0xfc,0xb5,0xf7,0xe4,0xfc,0xdb,0x5, +0xbc,0xff,0xcb,0xf7,0xee,0xf9,0x2d,0xf9,0x7f,0xf7,0x73,0xfe, +0x31,0x2,0x5c,0xfd,0xcb,0xfd,0xdb,0x5,0x2b,0x8,0xfe,0x5, +0xb0,0xc,0x9b,0x10,0xcf,0x5,0xc0,0x4,0xba,0xe,0xf,0x5, +0xb4,0xfa,0x52,0xb,0x87,0x13,0xdc,0x3,0xf6,0x2,0xb5,0xe, +0xb8,0xa,0xef,0x9,0xef,0x14,0x16,0xe,0x7a,0xff,0x3e,0x3, +0xe,0x5,0xde,0xfa,0x12,0xfc,0xde,0x7,0x2,0xc,0x95,0x8, +0xef,0x4,0xe0,0x1,0xc7,0x0,0xaa,0x4,0x39,0x6,0xdf,0xfd, +0x79,0xf6,0xab,0xf7,0x63,0xfa,0x8b,0xff,0xb4,0x7,0xbc,0x7, +0x76,0x0,0x99,0xfd,0x1f,0xfd,0x2a,0xf9,0x3e,0xf9,0xed,0xfe, +0xd7,0xfe,0x3b,0xfb,0xd1,0xfc,0xf2,0xfd,0x7f,0xfe,0xf4,0x4, +0xf4,0x7,0x53,0x0,0x43,0xfb,0x19,0x1,0xd8,0x3,0x2b,0xfc, +0xab,0xfc,0x4a,0x9,0x3e,0xc,0x8d,0x7,0x44,0x9,0x2f,0x7, +0x96,0x1,0xa2,0x6,0x5d,0xa,0x2c,0x0,0x78,0xf8,0x68,0xfe, +0x12,0x4,0x89,0x1,0x5c,0x4,0xfd,0xe,0x1e,0x10,0x46,0x9, +0xed,0x8,0x92,0x5,0x70,0xf6,0x15,0xf0,0x61,0xfc,0x6b,0x3, +0xbd,0xfc,0x6a,0xfe,0x98,0x7,0xc8,0x6,0x93,0x5,0x5f,0x7, +0xb3,0xfc,0xba,0xee,0x21,0xec,0x15,0xef,0xc3,0xf3,0x83,0xfa, +0x8d,0x3,0x61,0xb,0xc0,0x7,0x53,0x0,0x88,0x1,0x13,0x0, +0xa5,0xf8,0x23,0xf6,0x62,0xf5,0xbd,0xf3,0x17,0xf8,0x41,0x1, +0xd,0x7,0x11,0x7,0x31,0x4,0x4d,0xfd,0x5d,0xf5,0x60,0xf6, +0x46,0xfd,0xb0,0x2,0xd3,0x9,0xa,0x10,0x9a,0xd,0xe7,0x3, +0x5d,0xfc,0x39,0xfa,0x2a,0xf3,0x67,0xeb,0x51,0xef,0xfa,0xf0, +0x1b,0xf2,0x99,0x5,0xb0,0x11,0x84,0x7,0x9,0x8,0x41,0xd, +0x79,0xfb,0xb1,0xeb,0x30,0xf0,0xa3,0xed,0x85,0xe5,0xca,0xf3, +0xb2,0x3,0x2b,0xfa,0x8e,0xf3,0xe5,0xfd,0xf4,0xfe,0x8a,0xf7, +0xb3,0xf5,0x2b,0xf3,0xb1,0xf3,0x97,0xff,0xe3,0x9,0x58,0x7, +0x1b,0x4,0x20,0xb,0xa2,0xc,0xe8,0xfb,0xcf,0xec,0x17,0xf1, +0x82,0xfd,0x10,0x4,0x5d,0x6,0x65,0x6,0xa5,0x1,0xc6,0x3, +0xa6,0x12,0xaa,0x11,0x1,0xf9,0x74,0xef,0x13,0xfc,0x4f,0x0, +0x55,0xfd,0x93,0x1,0x24,0x2,0x52,0xfe,0xc3,0x5,0xda,0x9, +0x42,0xf6,0xf6,0xe7,0xd5,0xf6,0x23,0x3,0x24,0xfd,0xba,0xfc, +0x1,0x2,0xf3,0x1,0x2e,0x9,0x89,0x14,0x61,0xb,0xd2,0xf6, +0x42,0xf6,0x9a,0xff,0xd6,0xfa,0x24,0xfa,0x98,0x4,0x37,0xff, +0x19,0xf5,0x86,0xfe,0xe3,0x4,0x4c,0xfd,0x47,0xfe,0x1a,0x3, +0x13,0xfc,0xe7,0xf8,0x6a,0x1,0xe,0xff,0x8,0xf2,0xd8,0xf3, +0x85,0xfb,0x14,0xf3,0x19,0xe8,0xf2,0xe6,0x49,0xe8,0xa2,0xee, +0x20,0xfc,0x87,0x4,0x56,0x0,0xfe,0xfa,0x48,0x1,0x2c,0x7, +0x51,0x0,0xcf,0xf9,0x67,0xfa,0xf6,0xfa,0x8a,0xfa,0xeb,0xf8, +0x9d,0xf9,0x50,0x2,0x2b,0xc,0xce,0xd,0xd1,0x7,0x3d,0x3, +0xe4,0x4,0xbd,0x5,0x5f,0x5,0x39,0x7,0xe4,0x5,0x79,0x5, +0xa4,0xa,0x6e,0xc,0xd8,0xa,0x5c,0xb,0xc4,0xb,0x77,0xa, +0x46,0x5,0xcf,0xfd,0xb2,0xfa,0x78,0xfc,0xdd,0x0,0xa1,0x3, +0x9d,0x1,0x70,0x1,0x1b,0x5,0xcd,0x4,0x2a,0x0,0x7a,0xfe, +0x9e,0xff,0x38,0xfb,0xc7,0xf4,0xb1,0xf6,0x4e,0xf9,0x9a,0xf7, +0x19,0xfa,0x45,0xfb,0x6f,0xf7,0xd6,0xf7,0xa2,0xf9,0x5e,0xfa, +0x34,0xfd,0x70,0xfb,0xb1,0xf8,0x84,0xfe,0x32,0x2,0xb0,0xfd, +0x13,0xfd,0x5,0x0,0x67,0xfc,0x6,0xf7,0xca,0xf5,0x21,0xf4, +0xf8,0xf5,0x9c,0xfe,0x52,0x2,0x89,0x2,0xb2,0xa,0xfc,0x10, +0xdf,0xc,0xc7,0x8,0x74,0x8,0xf0,0x5,0xe9,0xfe,0x2f,0xf8, +0x7,0xfa,0x1d,0x1,0xc2,0x4,0x74,0x8,0x9f,0xc,0x5a,0xa, +0xee,0x5,0xad,0x4,0xc6,0x1,0x2b,0xfc,0xaf,0xf8,0xcf,0xf8, +0xa0,0xfa,0xc8,0xfb,0x65,0xfb,0x0,0xfb,0x93,0xfb,0x1e,0xfa, +0xe4,0xf4,0x81,0xf0,0xd0,0xef,0x58,0xf1,0x9c,0xf5,0x15,0xfb, +0xde,0xfe,0xef,0x2,0xdb,0x5,0x8b,0x2,0x39,0xfc,0xf8,0xf8, +0x8c,0xf7,0xa4,0xf5,0xab,0xf5,0xd2,0xf7,0xa9,0xf8,0x7f,0xfb, +0xf1,0x3,0xc,0x9,0xf2,0x5,0x44,0x4,0x5,0x6,0xc,0x3, +0xea,0xfd,0x4e,0xfe,0x2,0x1,0x2,0x2,0x77,0x4,0xd3,0x7, +0x19,0x9,0xe1,0x9,0x0,0xa,0xdc,0x7,0x2e,0x5,0xba,0x3, +0xbc,0x3,0x9e,0x3,0x3e,0x4,0x4d,0x9,0xa1,0xc,0x47,0x8, +0x2d,0x6,0xdb,0x8,0x4f,0x5,0x76,0xff,0x4d,0x1,0xa8,0x2, +0x46,0xfd,0xa5,0xfc,0x3e,0x3,0xfd,0x4,0x6b,0x3,0xb5,0x5, +0xa9,0x5,0x25,0x2,0x9e,0x0,0xfb,0xfd,0xe4,0xfa,0x39,0xfc, +0x3d,0xfe,0x47,0xfe,0x43,0xff,0x51,0x1,0x20,0x2,0x56,0x0, +0xd5,0xfd,0x25,0xfe,0x65,0x0,0xaa,0xff,0xa4,0xfb,0xd3,0xfb, +0x5,0x1,0x3c,0x1,0xed,0xfd,0x25,0x0,0x7c,0x1,0x16,0xfd, +0xcd,0xfc,0xfc,0x0,0xc0,0x0,0x89,0xfe,0xb7,0x0,0x5a,0x5, +0xfa,0x8,0xbf,0xc,0xdc,0x10,0xf6,0x11,0xf,0x11,0x6f,0x10, +0xfa,0xb,0xea,0x5,0x68,0x5,0xcc,0x4,0x4b,0x1,0xf3,0x2, +0xb6,0x5,0x4a,0x5,0xd3,0xa,0x70,0x12,0x83,0xf,0x6f,0x7, +0xd2,0x3,0x47,0x1,0x8,0xfc,0x8e,0xf9,0x3c,0xfc,0xaf,0xfc, +0x5e,0xfa,0x22,0xfc,0xc8,0xfe,0xcb,0xfe,0xad,0x0,0xf4,0x1, +0x6b,0xfe,0x3f,0xfc,0x96,0xfe,0xe0,0xfe,0x84,0xfc,0x39,0xfe, +0xf5,0x0,0xed,0xfd,0x6b,0xfa,0x7b,0xfa,0x23,0xfa,0x42,0xfa, +0xa0,0xfb,0xd8,0xfb,0x4a,0xfc,0xe8,0xfb,0x47,0xf9,0x40,0xf8, +0x62,0xf8,0xff,0xf6,0xba,0xf6,0x9f,0xf8,0xf7,0xfa,0x70,0xfe, +0xc9,0x2,0x7e,0x4,0xc6,0x2,0x2b,0x1,0xc8,0xff,0x85,0xfc, +0x68,0xfa,0xd,0xfb,0xe,0xfc,0xb6,0xfd,0x12,0xff,0x72,0xfe, +0xe7,0xfe,0x75,0x0,0x97,0x0,0xb0,0x1,0x2c,0x3,0x2d,0x2, +0x53,0x2,0x7f,0x4,0xd9,0x3,0x46,0x2,0x79,0x4,0x9,0x6, +0x29,0x1,0x62,0xfb,0x1d,0xfc,0xf0,0xfc,0x54,0xf7,0xd3,0xf4, +0xfe,0xf9,0x22,0xfc,0xce,0xfa,0x8e,0xfe,0x8a,0x2,0x7d,0x0, +0x86,0xfd,0x13,0xfb,0xeb,0xf4,0x8c,0xed,0x57,0xea,0x26,0xea, +0x58,0xe9,0x7b,0xea,0xf8,0xf0,0xf3,0xf7,0x91,0xfb,0x3,0xfe, +0x25,0xfd,0xd1,0xf8,0xe5,0xf7,0xc6,0xf8,0x9c,0xf6,0xc1,0xf5, +0x51,0xf7,0xd3,0xf7,0xa3,0xf9,0xd8,0xfd,0xa3,0xff,0xe2,0xfc, +0xf4,0xfa,0xf,0xfe,0xae,0x0,0x9,0x1,0x5,0x5,0xf2,0x7, +0xdd,0x5,0x3,0x8,0x90,0xb,0xaf,0x6,0x3c,0x2,0x6e,0x4, +0xd3,0x4,0x18,0x5,0x22,0xa,0x4a,0xb,0xee,0x6,0x25,0x6, +0x57,0x5,0x86,0xfe,0x8d,0xf9,0x71,0xf8,0xf0,0xf4,0x98,0xf3, +0x56,0xf8,0xe7,0xfb,0x55,0xfc,0xa4,0xfd,0x28,0xfe,0x2f,0xfb, +0x71,0xf6,0xc5,0xf2,0x89,0xf2,0x4c,0xf6,0x78,0xfa,0x1a,0xfc, +0xe1,0xfe,0xf3,0x3,0x99,0x4,0xee,0x1,0x15,0x3,0xac,0x3, +0x68,0x0,0x50,0x0,0x97,0x1,0x82,0xff,0x1b,0x2,0x76,0xa, +0x73,0xb,0x2a,0x5,0xc4,0x5,0x75,0xa,0xdb,0x5,0xcb,0x0, +0xc,0x5,0x67,0x2,0x16,0xf7,0x61,0xf7,0xbd,0xfd,0xfc,0xfb, +0x3c,0xfc,0x6d,0x2,0x8b,0x4,0xe5,0x3,0xad,0x5,0x30,0x6, +0x8a,0x2,0xe6,0xff,0x1c,0x1,0x86,0x1,0x7b,0x2,0xa8,0x5, +0x7e,0x2,0x10,0xfd,0x21,0x1,0x5,0x4,0x4d,0xfd,0x9a,0xfa, +0xf3,0xfc,0x62,0xf9,0xa5,0xf9,0x57,0x6,0x35,0xd,0x41,0x7, +0x99,0x6,0x84,0x9,0xe9,0x1,0x21,0xfc,0x63,0x0,0xff,0xfe, +0x33,0xfa,0x15,0x0,0x81,0x4,0xff,0xfd,0xaa,0xfd,0x3c,0x4, +0x6f,0x0,0xe9,0xfa,0xc,0xfe,0x32,0xfc,0xf3,0xf7,0xcb,0xfd, +0xd9,0x1,0x96,0xfe,0x31,0xff,0x22,0x0,0xfd,0xfa,0x48,0xf8, +0xfd,0xfa,0x86,0xf8,0xcb,0xf1,0xbe,0xf5,0xee,0xfd,0x89,0xfa, +0xbd,0xfa,0x2c,0x6,0xa0,0x5,0x14,0xfe,0xc4,0x4,0x43,0x8, +0xf9,0xfc,0x66,0xfa,0x7c,0x0,0xd1,0xfa,0xbe,0xf5,0x79,0xfe, +0xe,0x2,0xf0,0xfc,0x37,0xff,0xde,0x2,0xcc,0xff,0x3,0xff, +0x23,0x1,0x40,0xfe,0xa2,0xf7,0x9c,0xf7,0xc5,0xfe,0x1a,0xfe, +0x43,0xfa,0xc0,0x3,0x54,0x7,0xc7,0xf8,0x22,0xf6,0xa3,0x0, +0x50,0xfb,0x21,0xf3,0xcf,0xfc,0xea,0x0,0xf6,0xf7,0x4c,0xff, +0xd6,0xc,0x12,0x3,0x6c,0xfb,0xc4,0x6,0xb,0x4,0x88,0xf6, +0x72,0xfa,0xca,0xfd,0x2c,0xf4,0x17,0xf7,0x5,0x5,0x13,0x1, +0x6c,0xf5,0xf6,0xff,0xf0,0xa,0x85,0xfc,0xa0,0xf8,0xf,0x8, +0x3f,0xff,0x76,0xf0,0x39,0x0,0x87,0x5,0xf2,0xf0,0x45,0xf5, +0x9b,0xb,0x44,0x6,0x3b,0xfa,0x7,0x4,0x40,0x7,0xd1,0xf9, +0x27,0xf8,0x97,0xff,0xba,0xf9,0x9d,0xf0,0x27,0xf8,0x72,0x3, +0xd,0xfc,0xb,0xf4,0xee,0x1,0xdc,0x7,0x3c,0xf7,0x87,0xf7, +0x14,0x8,0x5f,0x2,0x73,0xf5,0x7f,0xff,0xc9,0xb,0xa8,0x3, +0xd0,0xfa,0x99,0x3,0xa2,0x9,0xa9,0xfe,0x81,0xfc,0x7d,0xb, +0x4,0xd,0xcf,0x1,0x4e,0x8,0xe4,0x11,0xea,0x1,0x57,0xf4, +0x13,0x0,0xb3,0x2,0x3c,0xf5,0xf,0xfc,0xe6,0xd,0xf3,0xc, +0x8b,0xb,0x61,0x18,0xab,0x19,0x2d,0x9,0x5c,0x4,0xd7,0xe, +0x6c,0x9,0xde,0xf7,0x8d,0xfe,0xcb,0xe,0xa4,0x5,0x16,0xff, +0x51,0xe,0xb1,0xa,0x70,0xf9,0x20,0x6,0x66,0x14,0x48,0x4, +0x36,0xff,0x13,0xf,0x22,0x9,0x70,0xf6,0x80,0xf6,0xd8,0xf7, +0x97,0xef,0x7c,0xf3,0x82,0x0,0xbf,0x3,0x8e,0x5,0x6e,0x10, +0xb1,0x17,0x40,0x13,0xc4,0xd,0xe9,0xa,0xa6,0x1,0xf,0xf8, +0xe5,0xfa,0x9e,0xfe,0x4b,0xfb,0x9e,0xff,0x74,0x7,0xb1,0x5, +0x13,0x6,0xc4,0xa,0xe,0x7,0x5b,0x3,0x46,0x7,0xed,0x6, +0xc8,0x2,0x40,0x8,0x99,0x10,0x25,0xd,0xd3,0xa,0x98,0x12, +0x12,0xd,0xc9,0xfc,0x60,0xfe,0xd5,0x5,0x7a,0x0,0x7e,0xff, +0x69,0xa,0xa8,0x12,0x4,0x12,0x32,0x12,0xa,0x19,0x4f,0x17, +0xef,0x9,0x3a,0x3,0x7f,0xfd,0x58,0xf1,0x4b,0xf1,0x93,0xfb, +0x4e,0xfe,0xc0,0xfe,0xa7,0x5,0x42,0xa,0xd8,0x5,0xae,0x3, +0x56,0x7,0x8f,0x2,0x6a,0xfb,0x8e,0xfd,0x7b,0xfc,0x14,0xf9, +0xb,0xfc,0xf8,0xfb,0x7d,0xfa,0xdb,0xfa,0xd1,0xf5,0x77,0xf2, +0xd,0xf4,0x21,0xf5,0xe1,0xf9,0x83,0xfe,0xa3,0xfd,0x24,0xfe, +0x5c,0x1,0xfb,0x2,0x4e,0x1,0x4e,0xff,0x7b,0xff,0x15,0xfc, +0x81,0xf8,0x6f,0xfa,0xaf,0xf8,0xe2,0xf6,0x30,0xfc,0x8a,0xfe, +0x2c,0x0,0x94,0x5,0xef,0x7,0xe4,0x9,0xeb,0x8,0x7a,0x2, +0x4d,0xff,0x87,0xf8,0xd0,0xed,0xd6,0xed,0x72,0xef,0xfc,0xeb, +0xe8,0xee,0x3e,0xf4,0xd6,0xf5,0x75,0xf6,0x4,0xf6,0x1b,0xf7, +0x81,0xf8,0x9,0xf6,0xbd,0xf2,0xe0,0xf0,0x52,0xf1,0xd9,0xf1, +0x58,0xee,0x7d,0xeb,0xae,0xe9,0x15,0xe6,0xa0,0xe6,0x18,0xe8, +0xa,0xe7,0x35,0xec,0x93,0xf3,0xa8,0xf5,0xe3,0xf6,0xea,0xf6, +0x97,0xf5,0xf0,0xf4,0xe9,0xf0,0xbd,0xeb,0x50,0xea,0x2a,0xeb, +0x20,0xed,0x52,0xef,0xd1,0xf3,0xc,0xfb,0x57,0xfe,0x71,0xff, +0xba,0x1,0xc3,0xff,0xd2,0xfd,0xb4,0x0,0xf1,0x0,0x77,0xfe, +0x60,0xfe,0x34,0xff,0x30,0xff,0xc3,0xfe,0x58,0x0,0x9d,0x1, +0x2b,0xfe,0xf1,0xfd,0x5d,0x3,0x45,0x4,0x7b,0x4,0x8b,0xa, +0x17,0xf,0xb,0xf,0x38,0xd,0x5,0xb,0x1,0x9,0x77,0x5, +0x2,0x3,0x56,0x3,0xb1,0x1,0x5a,0x0,0x8c,0x2,0x3a,0x5, +0x5,0x9,0x88,0xb,0xb7,0x8,0xb9,0x4,0xa1,0x2,0x48,0x3, +0x6b,0x4,0xd4,0xff,0x37,0xfb,0xe4,0xfc,0x1a,0xfd,0x83,0xfa, +0x53,0xfa,0xf3,0xfa,0xc2,0xfa,0xba,0xf9,0x1,0xfa,0x3c,0xfd, +0xbb,0xfe,0x87,0xfe,0x83,0x0,0xb7,0x2,0xbf,0x3,0x89,0x2, +0x9b,0xff,0x43,0xff,0xc0,0xfe,0x70,0xfc,0x70,0xfd,0x26,0xff, +0x57,0xfe,0xed,0xfd,0xef,0xfe,0x93,0x1,0x32,0x3,0xb3,0x2, +0x2e,0x4,0x63,0x5,0xc4,0x5,0x84,0x8,0x27,0x7,0xb2,0x2, +0xfd,0x3,0xd4,0x5,0xec,0x3,0x25,0x2,0x84,0x1,0x33,0x4, +0xa6,0x7,0x24,0x7,0x50,0x7,0xc2,0x7,0x50,0x3,0x78,0xff, +0x99,0x0,0xe7,0x0,0x16,0xfd,0x70,0xfb,0x70,0xfe,0xee,0xfd, +0x4e,0xfb,0x23,0xfe,0x8,0xff,0x37,0xfb,0x5e,0xfb,0x2a,0xfd, +0xf0,0xfc,0xdf,0xfc,0x50,0xfb,0xb9,0xf9,0x2d,0xfa,0x99,0xfa, +0x85,0xfb,0x27,0xfc,0xdc,0xfb,0x1,0xfc,0xe5,0xfa,0x1a,0xfb, +0xed,0xfd,0x72,0xfd,0x34,0xfc,0x3a,0xfd,0xcf,0xfb,0x96,0xfb, +0x9c,0xfe,0x48,0xfe,0xb4,0xfc,0x3b,0xfd,0x2,0xfc,0x64,0xf9, +0xd7,0xf8,0xe1,0xfa,0xfe,0xfc,0x23,0xfd,0xac,0xfd,0xcf,0xfe, +0x75,0xfe,0x7a,0xfe,0xf5,0xfe,0x8b,0xfe,0xb9,0xfd,0x5e,0xfb, +0x3a,0xfa,0x32,0xfd,0x9e,0xfe,0x3b,0xfd,0xbe,0xfe,0x75,0x1, +0x34,0x0,0x45,0xfd,0x9e,0xfd,0x9a,0xfd,0x7a,0xf8,0xf8,0xf6, +0xa,0xfd,0xb7,0xfe,0x8d,0xfb,0x6e,0xfc,0xd8,0xfd,0xfa,0xfd, +0xd,0x0,0xad,0xff,0x6b,0xfc,0x84,0xfb,0xdb,0xfb,0x5b,0xfc, +0x1c,0xfe,0x3b,0xfe,0x86,0xfd,0x88,0x0,0x95,0x2,0x5d,0xff, +0xd2,0xfe,0x45,0x1,0xbf,0xfe,0x45,0xfe,0x95,0x2,0xe,0xfe, +0xf3,0xf5,0x53,0xfa,0x6,0x3,0xdb,0x3,0xb0,0x1,0x68,0x2, +0xb2,0x3,0x69,0x1,0x45,0xfe,0x62,0xff,0xc5,0x0,0xfa,0xff, +0x66,0x2,0xe1,0x5,0xb3,0x5,0x84,0x6,0xeb,0x8,0xd,0x7, +0x9a,0x3,0xd2,0x2,0x54,0x1,0x1d,0x0,0xb5,0x2,0x64,0x5, +0x80,0x7,0x71,0xa,0x8,0xa,0x46,0x8,0x67,0x8,0x79,0x5, +0xfe,0x1,0xb3,0x2,0x53,0x1,0x64,0xfd,0x24,0xfe,0x8b,0x2, +0xb8,0x5,0x42,0x7,0x14,0x8,0xb6,0x6,0xf7,0x2,0x9,0x1, +0x84,0x2,0xb1,0x4,0xb,0x5,0x51,0x2,0x45,0x0,0xe9,0x1, +0x1a,0x4,0xfd,0x6,0x73,0x9,0x4c,0x7,0xdf,0x4,0x1e,0x4, +0xb5,0x2,0xd0,0x4,0x7,0x8,0xe9,0x8,0x54,0xd,0xef,0x11, +0x78,0x12,0x13,0x14,0x77,0x13,0xb9,0xe,0xf1,0xc,0xde,0xc, +0x46,0xb,0x12,0xb,0xf8,0xd,0x0,0x14,0x9d,0x19,0x58,0x1b, +0x43,0x1a,0x80,0x14,0xe9,0x9,0x49,0x2,0xed,0x0,0x6c,0x0, +0x91,0xfe,0xe0,0x0,0xaa,0x8,0x85,0xe,0xf3,0xf,0x8a,0xf, +0x6a,0xb,0xb0,0x3,0x77,0xfd,0xf6,0xfc,0x45,0x1,0x47,0x5, +0x4e,0xb,0x92,0x16,0x96,0x1b,0x3a,0x15,0x99,0xe,0x66,0xa, +0x1d,0x5,0x82,0x2,0x9a,0x4,0xe6,0x6,0x92,0x5,0x9c,0x5, +0xda,0xc,0x29,0x13,0xb0,0x11,0x69,0xd,0x5e,0x6,0x43,0xfc, +0x8c,0xf5,0x8,0xf4,0x2f,0xf8,0xf2,0xfe,0xc1,0xfe,0x83,0xfb, +0xd3,0xfd,0xf5,0xfe,0x17,0xfd,0x82,0xfe,0x73,0x0,0x98,0x4, +0xc8,0x10,0x97,0x1a,0xe0,0x15,0x11,0xa,0xca,0x5,0x42,0x9, +0x2,0x8,0xe4,0xff,0xb8,0xfb,0xf7,0xfd,0x70,0x2,0xbb,0x9, +0x4d,0x10,0x9f,0xe,0x17,0x7,0x1d,0x3,0x86,0x2,0x92,0xfa, +0x6f,0xec,0x8a,0xea,0xa0,0xf9,0x65,0x7,0x69,0x7,0x60,0xfe, +0xa1,0xf5,0x59,0xf3,0xd,0xf5,0x99,0xf2,0xc5,0xed,0x76,0xef, +0xb3,0xf6,0xcb,0xfd,0x80,0x2,0x82,0x0,0xaf,0xf9,0xa7,0xf6, +0x93,0xf4,0xbf,0xee,0x3b,0xeb,0x5c,0xeb,0x2d,0xed,0xf,0xf4, +0x22,0xfd,0x88,0x0,0xd2,0xfc,0xb7,0xf6,0xd7,0xf2,0x37,0xf0, +0x6f,0xf0,0xc0,0xfa,0xcf,0x9,0x91,0xf,0xc5,0xc,0x19,0xc, +0x6,0xe,0x33,0x9,0x4,0xfd,0x54,0xf3,0x73,0xef,0x74,0xf1, +0xf,0xfa,0xa,0x0,0x39,0xff,0xc4,0x0,0xb8,0x4,0x68,0x3, +0x6,0xfc,0x51,0xf2,0x37,0xec,0xae,0xeb,0x1e,0xed,0x7a,0xef, +0xc,0xf0,0x1a,0xec,0xcd,0xea,0x15,0xee,0x58,0xe8,0x39,0xd8, +0xd4,0xd2,0xf,0xde,0xb6,0xe9,0x4c,0xf4,0x10,0x0,0x5e,0xfc, +0x73,0xea,0xda,0xe2,0xce,0xe7,0x65,0xe8,0x5f,0xe2,0x14,0xe2, +0x6a,0xec,0xf8,0xf7,0x92,0xfe,0xe8,0x1,0x77,0x1,0xa,0xff, +0xe9,0xfb,0x6d,0xf4,0xcd,0xeb,0x24,0xeb,0xd8,0xf7,0xd9,0xa, +0xb8,0x13,0xdb,0x13,0x7b,0x12,0x32,0x2,0x3b,0xe8,0xac,0xe0, +0x28,0xe8,0x6c,0xeb,0xd7,0xec,0x9f,0xf4,0x68,0x2,0x1,0xc, +0xbd,0x7,0xdd,0xfd,0x34,0xf8,0x27,0xf2,0x90,0xe9,0xb2,0xe3, +0xd5,0xe2,0x5c,0xe7,0x2,0xf2,0xec,0xfd,0x36,0x1,0x3a,0xf9, +0xee,0xee,0xcb,0xee,0x70,0xfc,0x2e,0x9,0xef,0x7,0x41,0x4, +0x18,0xa,0xa,0x11,0xc3,0xe,0x3c,0x1,0x5a,0xef,0x7f,0xe7, +0x8c,0xeb,0x41,0xec,0xe9,0xe4,0xb8,0xe6,0x8,0xf9,0x91,0x4, +0x3f,0xfa,0x0,0xed,0x9e,0xea,0x8f,0xea,0x26,0xe9,0x79,0xea, +0xbe,0xef,0x73,0xf8,0xcc,0xff,0x39,0xff,0x1c,0xf8,0xa7,0xf2, +0x5e,0xf2,0x7e,0xf1,0x98,0xed,0xd0,0xee,0x5b,0xfb,0xc3,0xe, +0x3f,0x1e,0x50,0x22,0x5d,0x1d,0x1f,0x15,0xab,0xc,0x90,0x5, +0x50,0xfd,0x8a,0xf5,0x5e,0xfa,0xc3,0xc,0xb7,0x1a,0x8f,0x1a, +0x33,0x16,0xc8,0x17,0xf8,0x1a,0xc6,0x15,0x18,0xa,0x2d,0x3, +0x4e,0x6,0x24,0x10,0x24,0x18,0xdf,0x17,0x77,0x14,0x34,0x12, +0xbd,0x8,0x7f,0xf7,0x4d,0xec,0x12,0xec,0xcd,0xf1,0x61,0xfa, +0x2f,0xff,0x98,0xfd,0xd2,0xfe,0x46,0x2,0x43,0xfc,0xe9,0xef, +0x86,0xe8,0x76,0xe6,0x9e,0xe6,0x11,0xe9,0x64,0xee,0xa4,0xf7, +0x64,0x2,0x33,0x8,0xc7,0x5,0xcd,0xff,0x44,0xfe,0x10,0x0, +0x10,0x0,0xd1,0x4,0x9e,0x11,0x6d,0x18,0x66,0x11,0xb4,0x7, +0x6f,0x6,0x31,0x9,0x29,0x5,0x26,0xfe,0x71,0xff,0x7f,0x4, +0x9,0x6,0xc2,0x9,0x5e,0x10,0xd5,0x11,0xd9,0xe,0x79,0xe, +0x91,0xf,0x3e,0xc,0x30,0x7,0x32,0x5,0xb2,0x2,0xe4,0xfe, +0x16,0xfd,0xf5,0xf9,0xf2,0xf5,0xc6,0xf9,0xde,0x5,0xfb,0x10, +0xd4,0x16,0x17,0x1c,0xd3,0x21,0x2a,0x1f,0x26,0x12,0xdf,0x5, +0xa9,0xfd,0xf1,0xf1,0xaa,0xe6,0xf6,0xe9,0xbd,0xf7,0x54,0xfe, +0xad,0xfe,0x49,0x2,0xa4,0x5,0x15,0x8,0xb2,0xa,0xa3,0x7, +0x98,0x6,0x2d,0xe,0x52,0xd,0x97,0x0,0xe0,0xf9,0xf6,0xf5, +0x9,0xe8,0xb0,0xd9,0xde,0xd5,0x9d,0xd8,0xb0,0xdf,0x78,0xeb, +0xff,0xf8,0xb8,0x7,0x63,0x12,0x60,0xf,0x7f,0x4,0x60,0xfe, +0x8,0xfc,0xf,0xf9,0x6a,0xf8,0xd7,0xfe,0xb,0x9,0x3,0xc, +0xd7,0x9,0x2a,0xc,0xd2,0xa,0x8c,0x2,0xac,0x0,0x85,0x4, +0x82,0xa,0x79,0x17,0x1d,0x21,0xe8,0x22,0xfa,0x28,0x6,0x29, +0xb5,0x15,0xf2,0x0,0x4b,0xf5,0xc3,0xe8,0xd,0xdf,0x1d,0xe2, +0xd7,0xed,0x90,0xf8,0x69,0xfd,0x9a,0x1,0xc9,0x8,0x56,0x8, +0x2c,0xff,0xc5,0xfb,0x47,0xfd,0x9,0xfa,0x9e,0xf4,0xad,0xf2, +0xab,0xf7,0x33,0xfe,0x9a,0xf9,0xd0,0xf0,0xee,0xef,0x5a,0xed, +0xfa,0xe8,0x24,0xf0,0xbb,0xfa,0xd,0xfe,0x50,0x1,0xb4,0x6, +0x7f,0x9,0xc1,0x9,0xa2,0x8,0xf7,0x8,0x5f,0xb,0x21,0xa, +0xfe,0x5,0xd1,0x5,0xf4,0x7,0x6b,0x7,0x66,0x5,0xac,0x4, +0xef,0x7,0xd5,0x10,0x82,0x1a,0x7b,0x1f,0xaf,0x22,0x9c,0x26, +0x5f,0x23,0xb9,0x14,0x12,0x7,0xc,0x4,0x98,0x2,0x92,0xfc, +0xca,0xfb,0xee,0x3,0x35,0x8,0x8f,0x1,0x84,0xfc,0x40,0x2, +0x24,0x6,0xa8,0x0,0x28,0xff,0x3a,0x5,0xb4,0x7,0x47,0x8, +0xd0,0xd,0x7b,0x11,0x30,0xc,0x25,0x1,0x91,0xf6,0x61,0xf2, +0x6f,0xf5,0x3b,0xf9,0x82,0xfd,0x23,0x7,0x8f,0xe,0x8d,0xb, +0xa5,0x5,0xca,0x2,0xec,0xff,0xf0,0xfc,0x56,0xf9,0x94,0xf3, +0xef,0xf1,0xb4,0xf8,0x10,0x0,0xa3,0x2,0xfc,0x4,0xf5,0x5, +0xee,0x1,0x30,0x0,0x3,0x2,0x9e,0x0,0xac,0x0,0x4b,0x3, +0x9f,0x1,0x79,0x0,0x64,0x1,0xa3,0xff,0x0,0x1,0x7b,0x3, +0x12,0xff,0xec,0xfb,0x68,0xff,0x2,0x2,0xb7,0x0,0xee,0xfe, +0x1e,0x1,0x2e,0x6,0x63,0x8,0xc7,0xa,0x20,0x12,0x24,0x17, +0x91,0x12,0x8f,0x9,0xa1,0x3,0x10,0x0,0x4f,0xfc,0x95,0xf8, +0x3e,0xf8,0xea,0x2,0x6a,0x11,0xb0,0x12,0xbf,0x10,0x96,0x15, +0x4b,0xf,0x0,0x0,0xd,0xf8,0x17,0xee,0xe7,0xe1,0x3a,0xe3, +0xc1,0xed,0xf5,0xf8,0xb8,0x4,0x30,0xb,0xed,0x9,0x50,0x7, +0x5f,0x4,0xb1,0xfb,0x60,0xf0,0x7d,0xee,0x57,0xf8,0x98,0x4, +0x46,0xc,0xd1,0xe,0xdc,0xe,0xf5,0xb,0x1f,0x4,0x1c,0xfa, +0x9b,0xf0,0xa4,0xea,0xe,0xeb,0xa,0xf0,0x6a,0xfb,0x66,0x9, +0x74,0xe,0xbe,0xf,0x2e,0x10,0xb7,0x4,0xe2,0xf5,0x92,0xed, +0x94,0xe5,0x55,0xe3,0x57,0xe7,0xbb,0xe8,0x3f,0xf0,0x85,0xfc, +0x28,0xfe,0x90,0xfd,0xfb,0x3,0xcc,0x4,0x1d,0xfe,0x59,0xfd, +0xb5,0x0,0x5c,0xfc,0x69,0xf6,0xb3,0xf8,0xc,0xf8,0x9f,0xed, +0xf4,0xe7,0x9b,0xec,0xbb,0xf0,0xb7,0xf3,0xf3,0xfc,0x81,0x5, +0xe6,0x6,0x40,0xa,0x2c,0xd,0x93,0x6,0x1b,0x1,0xa3,0xff, +0xe3,0xf9,0x98,0xf9,0x5f,0xff,0x8b,0xfd,0x1d,0xfd,0x3b,0x7, +0x52,0xe,0xc7,0xc,0xe0,0xa,0x1c,0xa,0xb6,0x8,0x62,0xb, +0x53,0x11,0xd6,0x12,0x7e,0x13,0x2,0x13,0x97,0x4,0x9b,0xf3, +0xa8,0xf2,0xd1,0xf2,0xe7,0xe9,0x9e,0xe7,0xc2,0xef,0x45,0xf7, +0x99,0xf8,0x84,0xf8,0xb,0xfe,0xe4,0x1,0xb8,0xfa,0xdf,0xf1, +0x6e,0xf0,0x1e,0xf1,0xef,0xee,0x43,0xec,0x39,0xef,0x15,0xf8, +0x4b,0xfb,0x92,0xf3,0xc7,0xed,0xda,0xf2,0x78,0xfa,0x7b,0xfb, +0xcc,0xf8,0x0,0xfe,0x1e,0xb,0xdb,0xb,0x5a,0xff,0xb0,0xfe, +0xde,0x4,0xfb,0xfe,0x69,0xfa,0x7a,0xfb,0x16,0xf7,0x3e,0xfb, +0x92,0x6,0xa3,0xff,0x5a,0xf5,0x7b,0xff,0x25,0x6,0x38,0xfb, +0x48,0xfa,0x7c,0x7,0xb9,0x9,0x2e,0x6,0x45,0xa,0x78,0x2, +0xfd,0xee,0x8b,0xec,0x0,0xee,0x1d,0xe0,0x9c,0xe2,0x77,0xf9, +0x55,0xfd,0x59,0xfa,0x3b,0xb,0x22,0x11,0x62,0xff,0xc,0xf6, +0xbf,0xf3,0xfd,0xe7,0x99,0xe3,0xfc,0xeb,0xca,0xed,0x73,0xed, +0x64,0xfa,0xb2,0x3,0xb8,0xf9,0xa5,0xf2,0x54,0xf6,0x9b,0xef, +0xa5,0xe9,0x6b,0xf5,0x12,0xfb,0xe4,0xf8,0xd9,0x5,0xf9,0xd, +0x5f,0x2,0x7d,0xfd,0x20,0xfb,0xcb,0xe7,0x30,0xdf,0x3c,0xf0, +0x24,0xfb,0xd9,0xfb,0x26,0x8,0x4b,0x14,0x9,0x13,0xe5,0x12, +0x28,0x12,0x48,0x2,0xc5,0xf2,0xdd,0xf4,0x45,0xf5,0xd7,0xea, +0xde,0xf0,0x39,0x4,0x8c,0x3,0xa3,0xfa,0xbc,0xfd,0x11,0xf9, +0x8,0xf0,0xc6,0xf7,0x2b,0xfe,0x71,0xf9,0x75,0xfe,0x56,0x9, +0x6f,0x7,0xfb,0x0,0x7d,0x2,0x6d,0xff,0xe,0xf0,0xf4,0xe8, +0x72,0xf0,0x54,0xf2,0x64,0xf0,0xca,0xf9,0x5d,0x4,0xad,0x5, +0x5d,0x7,0x97,0x9,0x78,0x0,0x1,0xf5,0xcc,0xf6,0xad,0xf8, +0xc6,0xf1,0xb0,0xf3,0x94,0xfb,0xc5,0xf6,0xee,0xee,0xc8,0xf3, +0xfa,0xfd,0xa3,0x2,0x24,0x5,0xf5,0xa,0xb7,0xe,0x53,0xf, +0x2,0x12,0xee,0x11,0x3f,0x10,0x8c,0x13,0xce,0x10,0xf4,0x5, +0x2c,0x5,0x0,0xf,0x30,0x14,0xb3,0x12,0x32,0x11,0x41,0xe, +0xcf,0x8,0x5,0xa,0xf5,0xe,0xcc,0xb,0x37,0xa,0x1a,0x10, +0xa5,0xf,0x16,0xb,0xfc,0xa,0x95,0x7,0x1f,0xfe,0x6f,0xf6, +0xdc,0xf4,0xb6,0xf7,0xa3,0xfe,0xa7,0xa,0x5b,0x11,0x80,0xd, +0x39,0xc,0x47,0xb,0xe1,0x0,0xb5,0xfa,0x68,0xfd,0xef,0xfb, +0x9,0xfc,0x93,0x6,0x42,0xd,0xa8,0x7,0x64,0x4,0x32,0x6, +0xdd,0xff,0xd9,0xf9,0xb3,0xfe,0x61,0x0,0xb5,0x0,0xf4,0xf, +0x8b,0x20,0x53,0x1f,0xed,0x15,0xf0,0x11,0x74,0xc,0xee,0xfe, +0x74,0xf8,0x8a,0x1,0x59,0xd,0x10,0x19,0xff,0x26,0x32,0x2b, +0x2b,0x22,0x38,0x19,0x44,0x18,0xdb,0x14,0x1f,0x6,0x3a,0xfd, +0x16,0x3,0x59,0x6,0xee,0xa,0xaf,0x19,0xe1,0x1b,0x19,0xf, +0xb3,0xa,0x3a,0x8,0xd1,0xfd,0x55,0xfd,0x73,0x7,0x9b,0x7, +0xd0,0x1,0xae,0x2,0x79,0x0,0xee,0xf8,0x15,0xf8,0x78,0xf8, +0x9a,0xf0,0xb7,0xe8,0x9c,0xe9,0x9,0xee,0x45,0xed,0x26,0xef, +0xd6,0xfa,0x89,0xfd,0xe3,0xf3,0xf,0xf4,0xeb,0xf7,0xd9,0xf3, +0x39,0xf7,0xe5,0xff,0x5d,0xff,0xa5,0xfd,0x5,0x1,0xa9,0x5, +0x78,0x9,0xcd,0x5,0xb5,0xff,0xfb,0x7,0x79,0x14,0xef,0x10, +0x2a,0xb,0xdb,0xf,0x12,0xe,0x89,0x8,0xad,0xf,0x4d,0x10, +0x27,0x1,0x20,0xff,0xaf,0x8,0x15,0x5,0x79,0x3,0xe5,0xf, +0x4a,0xd,0x7c,0xfa,0xdc,0xf8,0x5a,0xfd,0x6d,0xed,0x6c,0xe4, +0x1a,0xf4,0x98,0xfb,0x9d,0xf4,0xe3,0xf5,0x4e,0xf8,0xa0,0xf4, +0xf3,0xfa,0xb1,0x5,0x14,0xfe,0xd4,0xee,0x1d,0xf1,0x59,0xf7, +0xdf,0xef,0x5e,0xf0,0x55,0xfa,0x66,0xf2,0xd5,0xeb,0xd1,0xfb, +0xb4,0xfe,0xe2,0xef,0xd6,0xf3,0x69,0xfb,0xa8,0xef,0x4b,0xed, +0x9d,0xfb,0xe1,0xfc,0x48,0xf2,0xe2,0xf1,0x1b,0xfc,0xf2,0x3, +0x82,0x1,0x9e,0xf8,0x4a,0xf1,0xa3,0xec,0xfb,0xeb,0xcc,0xee, +0xc8,0xee,0x66,0xf2,0x41,0x0,0xa0,0x8,0x75,0x5,0xfa,0x2, +0xd4,0x0,0x37,0x0,0xa3,0x6,0xef,0x4,0xf5,0xf9,0x15,0xfd, +0x5b,0x7,0xde,0x7,0x66,0xe,0xe9,0x1a,0x4f,0x15,0xc6,0x9, +0xf6,0xd,0x66,0xd,0x7b,0xff,0x52,0x1,0xcd,0xc,0xc7,0x4, +0x52,0x0,0x85,0x12,0x82,0x15,0xde,0x1,0x4c,0xfd,0xfd,0x2, +0xcb,0xf6,0xdb,0xe5,0xea,0xe3,0x27,0xe2,0xdc,0xda,0xf5,0xe7, +0xcc,0x0,0x33,0xfe,0x2,0xf2,0xac,0xf6,0x11,0xea,0x4b,0xd0, +0x29,0xda,0xef,0xeb,0xf1,0xdc,0x81,0xd7,0x63,0xef,0x5b,0xf8, +0x5a,0xf2,0x2b,0xfc,0xc4,0x1,0xd3,0xf1,0x90,0xea,0xab,0xf2, +0xbb,0xef,0x59,0xeb,0x8a,0x1,0x72,0x1c,0x31,0x16,0x3a,0x5, +0x95,0xa,0x59,0xc,0x4c,0x0,0x5,0x6,0x5e,0xe,0xb4,0xff, +0x92,0xf9,0xfb,0xb,0xee,0x17,0x2b,0x10,0xe4,0xc,0xb0,0x1a, +0x5,0x1c,0x33,0xb,0xbc,0xb,0x28,0xc,0x6f,0xf3,0x7a,0xee, +0xcf,0xfc,0xdb,0xed,0x4a,0xe4,0xed,0x1,0x65,0xe,0x5,0xfb, +0x23,0xff,0xa9,0x11,0x81,0x3,0x8d,0xef,0x23,0xf6,0x88,0xf8, +0x5c,0xf2,0xb6,0x0,0x80,0xf,0xc4,0x4,0xea,0xfd,0x76,0xf, +0xa,0x12,0x4d,0xf0,0x6a,0xdd,0x84,0xef,0x8a,0xf8,0x36,0xf4, +0x8f,0xfd,0x9d,0x3,0x10,0x2,0x94,0xd,0xe2,0x11,0x1a,0xf8, +0x23,0xe3,0x61,0xf1,0xd4,0xfb,0x58,0xe8,0xd0,0xe1,0xe4,0xf2, +0xc0,0xfb,0x6e,0x1,0x60,0x5,0x48,0xfd,0x19,0xfb,0x27,0xfe, +0xaa,0xfb,0x83,0xfd,0x66,0xfe,0x93,0xff,0xc5,0x9,0x4,0x8, +0xb2,0xfa,0xda,0xfa,0x1f,0xff,0xb,0xfb,0x1d,0xf9,0xd6,0xf6, +0xeb,0xee,0x4,0xf4,0x84,0x8,0x5c,0xd,0x2a,0x5,0x71,0xb, +0x55,0x10,0x43,0x8,0x64,0x5,0xc9,0x1,0x8f,0xfb,0xbe,0xfd, +0x72,0xfb,0xe1,0xf5,0x9c,0xfd,0x3e,0xb,0x45,0x13,0x6a,0x13, +0xd8,0xf,0xb1,0xd,0x5b,0x7,0xd3,0xfb,0x66,0xf1,0x54,0xf0, +0x17,0xfd,0x37,0x4,0xe9,0xff,0x3b,0x3,0x6f,0x5,0x98,0x3, +0xd0,0x9,0xfc,0x3,0x24,0xf4,0x3e,0xf3,0xc7,0xf5,0xf5,0xf9, +0xda,0x6,0x14,0xa,0xd2,0x8,0xd0,0xf,0xbe,0xd,0xc0,0xff, +0xf0,0xf3,0x35,0xe9,0xf2,0xe0,0x30,0xe9,0x0,0xfc,0xd6,0x2, +0x6b,0x3,0xb,0x7,0x4b,0xff,0xf4,0xf4,0x65,0xf3,0x64,0xeb, +0xa6,0xe5,0x5e,0xed,0x9b,0xf5,0x2e,0xfd,0x8b,0xfd,0x65,0xf7, +0xef,0x1,0x34,0xb,0x33,0xfb,0xb3,0xee,0xe7,0xf2,0xcf,0xf5, +0xaf,0xfa,0x62,0xb,0x2f,0x1a,0x7d,0x16,0x8b,0xc,0x37,0x8, +0x69,0xfb,0xb6,0xed,0xfb,0xf3,0x50,0x1,0x62,0x7,0xef,0x7, +0xf1,0x3,0x4b,0x1,0xe3,0x3,0xc1,0xa,0x38,0xd,0xb7,0x1, +0xb0,0xfd,0x5d,0xe,0x9d,0x16,0xfc,0xf,0x82,0xf,0x44,0x13, +0x69,0xe,0xd3,0xfe,0x4f,0xf1,0x9d,0xef,0xd8,0xf1,0x61,0xfb, +0xba,0xc,0xe5,0xf,0x1d,0x7,0x9e,0x2,0x2b,0xff,0xd4,0x0, +0xb,0x7,0x9,0x1,0x78,0xf6,0x60,0xf9,0x6,0x0,0x89,0xfe, +0x9a,0xfe,0x61,0x2,0xc6,0xfd,0x24,0xf8,0x12,0xfb,0x3c,0xfa, +0xb6,0xf9,0x35,0x6,0xda,0x11,0x58,0x13,0x57,0x10,0xfc,0xb, +0x26,0xb,0x34,0x9,0xcc,0x2,0x37,0x3,0x6,0x6,0xdc,0x2, +0x32,0x2,0x7f,0x1,0x96,0xfc,0xca,0xfd,0x8c,0x3,0xf0,0x2, +0xec,0xfc,0xc9,0xf9,0x18,0xfc,0x34,0xff,0xc9,0x3,0x8f,0xb, +0xb5,0xe,0xcb,0xc,0xf7,0xc,0x41,0xc,0xb7,0x7,0x1a,0x4, +0xe4,0x5,0x69,0xd,0xa7,0x11,0xbd,0xa,0x71,0x3,0xc3,0x7, +0x71,0xe,0xc8,0xc,0x0,0xa,0xd9,0x8,0x9,0x1,0xeb,0xfa, +0xb6,0x3,0x39,0x10,0x89,0x11,0x50,0xa,0x5d,0x3,0xc6,0x0, +0x5,0xff,0xe3,0xfc,0x59,0xff,0xbf,0x1,0x33,0x0,0x9,0x4, +0x35,0xa,0xa4,0x8,0x2b,0x7,0x60,0x7,0xe,0x0,0xc3,0xfa, +0x77,0xfe,0x54,0xfe,0x85,0xfc,0xf9,0x3,0x76,0x7,0xe0,0xfb, +0x38,0xf0,0xe3,0xed,0xaf,0xeb,0xbc,0xe7,0xa2,0xe9,0x8f,0xf0, +0x15,0xf7,0x74,0xfa,0x5e,0xf8,0x38,0xf5,0x45,0xf6,0x97,0xf4, +0xd9,0xee,0x93,0xf0,0x5e,0xfa,0x81,0x5,0xa8,0x10,0x6c,0x14, +0x66,0xc,0xcd,0x3,0x51,0xff,0xde,0xf7,0x5e,0xf0,0xa4,0xf1, +0x36,0xfc,0xc4,0xb,0x13,0x18,0xb1,0x1a,0xd1,0x16,0x5a,0xa, +0xfa,0xf1,0x4e,0xdd,0x29,0xd5,0x8c,0xd2,0x76,0xdc,0x13,0xf3, +0xc7,0x5,0x67,0x16,0x9,0x25,0x4b,0x24,0x69,0x1b,0x8b,0xf, +0x72,0xfa,0x32,0xec,0x3b,0xec,0x5b,0xec,0x92,0xf2,0x70,0x2, +0xc5,0xa,0xf3,0xc,0x88,0xf,0xa5,0x7,0x47,0xfa,0xed,0xf7, +0x59,0xfc,0x6e,0xfe,0x46,0xfe,0xe2,0xfd,0xfa,0x2,0x17,0x9, +0x3d,0x3,0xe8,0xfa,0xd4,0xf9,0x10,0xf2,0xc1,0xe6,0x5f,0xe7, +0x63,0xec,0xa8,0xf2,0xfa,0xff,0xa7,0xa,0x29,0xf,0x45,0x12, +0x9e,0xf,0xbb,0xb,0x9b,0xc,0xf2,0x6,0xea,0xf9,0x29,0xf4, +0xff,0xf4,0xb6,0xf4,0xb3,0xf6,0x35,0xf8,0xb0,0xf2,0x10,0xf2, +0xb,0xfd,0x35,0x1,0xd8,0xf9,0x4c,0xfa,0x45,0x4,0xef,0x6, +0x37,0x3,0x96,0x7,0x9f,0xe,0x68,0x9,0x6d,0x2,0x51,0x5, +0xe6,0x2,0x79,0xfa,0x19,0xfe,0xbe,0x3,0x42,0x0,0x33,0x5, +0x29,0x10,0x77,0xe,0x6a,0xe,0xaa,0x19,0x20,0x19,0x6d,0xc, +0xea,0x5,0x6e,0xfd,0xc4,0xf1,0x35,0xf5,0xea,0xfd,0x93,0xf9, +0x82,0xf7,0x44,0x5,0xe7,0x10,0xe9,0xe,0x6e,0x10,0x6b,0x19, +0x5c,0x13,0x3c,0x3,0x72,0x3,0x56,0x8,0xd9,0xff,0xb6,0xfb, +0x7e,0x0,0x68,0xfd,0x1f,0xfb,0x95,0x3,0x84,0x5,0x3e,0xfe, +0xa0,0xfd,0x22,0xfe,0x57,0xf8,0xf1,0xf7,0x1b,0xfc,0xc8,0xfd, +0x83,0x4,0x3e,0xa,0x6c,0x2,0x8c,0xf9,0xa0,0xf8,0x6e,0xf5, +0xf7,0xef,0x9d,0xef,0xc0,0xf1,0xf2,0xf3,0x85,0xfa,0xa9,0x5, +0x99,0xc,0xb7,0x9,0xc0,0x3,0xb,0x1,0xf8,0xfc,0x89,0xf7, +0xe1,0xf9,0x1a,0xfe,0x9b,0xf9,0x76,0xf8,0x46,0xfd,0x97,0xf7, +0x2f,0xf1,0xa9,0xf5,0xa,0xf5,0x2c,0xf1,0x90,0xf5,0x1d,0xf9, +0x83,0xfd,0x9e,0x5,0x9,0x4,0x47,0xff,0xcf,0x1,0x89,0xfd, +0x5d,0xf1,0x4c,0xee,0x73,0xf2,0x89,0xf0,0xe0,0xea,0x62,0xeb, +0x31,0xef,0x1d,0xf0,0x72,0xf2,0x85,0xf5,0xc2,0xf1,0x4b,0xed, +0x62,0xf1,0x4e,0xf4,0xd0,0xec,0xe0,0xe6,0x80,0xe8,0xe7,0xe5, +0x44,0xe2,0xa8,0xe7,0x64,0xea,0xe8,0xe5,0xb7,0xe8,0xd9,0xf0, +0xcc,0xf1,0x13,0xf2,0xd4,0xfb,0x60,0x2,0xca,0xf9,0x41,0xf4, +0x2e,0xfb,0x1c,0xfb,0xc2,0xf7,0x1c,0x0,0x59,0x1,0x69,0xf5, +0x7,0xf5,0x63,0xfe,0xaa,0xfd,0x9,0xfb,0x8a,0x5,0x1c,0xf, +0xe7,0x8,0x82,0x5,0x58,0xf,0xfc,0xf,0x23,0x7,0x15,0xa, +0xe6,0xd,0x81,0x2,0xb1,0xf9,0x29,0x0,0x48,0x5,0xd2,0x2, +0xb,0x8,0x8b,0xf,0x9f,0x8,0x71,0x3,0x51,0xd,0x54,0x10, +0x85,0x8,0x4d,0xa,0x85,0xe,0xe1,0x5,0x8d,0xff,0x50,0x5, +0xeb,0x4,0xed,0xfc,0xf9,0xff,0x5a,0x5,0x69,0xfd,0x3a,0xf8, +0xa4,0xff,0xd6,0x2,0xe6,0xfd,0xc5,0xfe,0x2e,0x5,0x1c,0x4, +0x8d,0xff,0xb7,0x3,0xae,0x5,0x55,0xfd,0x57,0xfb,0x4f,0xff, +0x92,0xf9,0xa4,0xf3,0x74,0xf9,0xae,0x0,0xee,0x1,0x3a,0x3, +0xb7,0x6,0x1b,0x6,0x7a,0x2,0x18,0x3,0xbd,0x2,0x21,0xfd, +0x2d,0xfc,0x37,0x0,0xb6,0x0,0x19,0x1,0x0,0x5,0x9b,0x6, +0x6d,0x5,0x66,0x8,0xc2,0xd,0x15,0xc,0x53,0x6,0xd5,0x5, +0xb4,0x7,0xb7,0x8,0xae,0xb,0x11,0xd,0x24,0xa,0xfc,0x7, +0xeb,0x9,0x27,0xd,0xcb,0xc,0xa6,0x9,0xe6,0x7,0x62,0x5, +0x1b,0x2,0x76,0x4,0xe1,0x9,0x38,0xa,0x81,0x7,0x30,0x6, +0x60,0x3,0x2f,0x0,0xe4,0x1,0xde,0x2,0x26,0xff,0x34,0xff, +0xed,0x0,0x83,0xfd,0x13,0xfe,0x74,0x3,0x15,0x2,0x57,0xfd, +0x3b,0xfc,0x4c,0xfc,0x32,0xfd,0x6a,0xfe,0x87,0xfe,0x86,0xff, +0x1a,0x0,0xfd,0xfe,0x3b,0xff,0x92,0xff,0x85,0xfc,0x6a,0xf9, +0xd9,0xfa,0xed,0xfd,0xad,0xfe,0xa8,0xff,0x8a,0x2,0x7a,0x4, +0xf0,0x3,0x96,0x0,0xa,0xfd,0x70,0xfe,0x85,0x2,0xb0,0x3, +0x9d,0x2,0x99,0x0,0xe9,0xfe,0xf9,0x1,0x95,0x8,0x4c,0xb, +0x85,0x8,0x24,0x5,0x8c,0x3,0x2b,0x3,0xcc,0x3,0x35,0x4, +0x39,0x3,0x49,0x1,0x83,0xff,0xff,0x0,0xea,0x4,0x5,0x5, +0xf5,0x3,0x99,0x6,0x49,0x5,0x6a,0xff,0x8f,0xff,0x16,0x2, +0xee,0xfe,0x27,0xfc,0x4f,0xfe,0x5c,0x1,0x62,0x1,0x34,0xfc, +0x3f,0xf6,0xed,0xf6,0xde,0xfa,0x8e,0xfb,0x83,0xfb,0xd3,0xfc, +0xb1,0xfd,0xcf,0xff,0x8d,0x2,0x60,0x1,0x64,0xfe,0x58,0xfd, +0xa1,0xfb,0x39,0xf9,0x80,0xf9,0x29,0xfc,0x55,0x0,0x1b,0x4, +0x0,0x4,0xd6,0x1,0x1,0x0,0xa,0xfd,0x9e,0xfa,0x7e,0xfa, +0x8b,0xfa,0xc3,0xfa,0xca,0xfc,0x52,0x1,0xf8,0x5,0xd7,0x4, +0x57,0x0,0xe1,0xff,0xa7,0xfe,0x6a,0xf9,0x11,0xfa,0x1d,0x1, +0xd6,0x4,0xef,0x5,0x58,0x8,0x59,0x8,0xf2,0x3,0x57,0xfe, +0xff,0xf9,0xc8,0xf7,0x48,0xf7,0xb,0xf8,0xe,0xfc,0xb4,0x1, +0xb6,0x2,0x25,0x1,0x59,0x2,0xde,0x0,0xcf,0xfa,0x11,0xf9, +0x0,0xfc,0x8b,0xfc,0x19,0xfb,0x1a,0xfb,0xe1,0xfb,0xbc,0xfb, +0x48,0xfb,0x41,0xfa,0x2e,0xf6,0x1c,0xf2,0x9d,0xf3,0x17,0xf8, +0x30,0xfb,0x67,0xfd,0xf2,0xfe,0x67,0xfe,0x1a,0xfb,0xe5,0xf7, +0x5d,0xf7,0x7f,0xf6,0x6e,0xf5,0x1a,0xf7,0x65,0xf7,0x46,0xf5, +0x4a,0xf6,0xb7,0xf9,0xa,0xfb,0xef,0xfa,0x58,0xfe,0xd9,0x4, +0x4c,0x6,0xab,0x3,0x48,0x4,0x2,0x4,0xc8,0x0,0xbe,0xff, +0x3d,0xfe,0xc4,0xfb,0xd8,0xfc,0xce,0xfd,0x40,0xfc,0xda,0xfc, +0xa4,0x0,0xcf,0x3,0xa,0x3,0x42,0x0,0xda,0xff,0x96,0xff, +0xb7,0xfb,0xbc,0xf8,0x64,0xfb,0xec,0xfe,0x94,0xfe,0x2b,0xfe, +0x21,0xff,0x3e,0xfe,0xeb,0xfc,0xe4,0xfc,0x53,0xfe,0xa0,0x0, +0xbb,0xff,0xb6,0xff,0x70,0x6,0x50,0xb,0x6b,0xc,0x2e,0xf, +0xb1,0xa,0xcd,0xff,0x97,0xfd,0x29,0x0,0x91,0xfd,0xa2,0xfb, +0x94,0xff,0xd4,0x4,0xd6,0x6,0x9a,0x7,0x55,0x9,0x76,0x9, +0x57,0x8,0x9e,0x6,0x53,0x2,0x87,0xff,0x59,0x0,0xd,0x1, +0x6,0x3,0x45,0x5,0x89,0x3,0xa8,0x2,0x46,0x5,0x32,0x5, +0x3c,0x2,0xd5,0x1,0x3e,0x3,0xfe,0x1,0xd5,0xfe,0x6f,0xfd, +0x7c,0xff,0x31,0x6,0x70,0xd,0x17,0xc,0xf8,0x2,0x63,0xfb, +0xbe,0xf8,0xec,0xf8,0xd2,0xf9,0x36,0xfa,0x97,0xf9,0x55,0xfa, +0xfe,0x1,0xce,0xe,0x3d,0x16,0x3d,0x13,0x30,0x8,0x93,0xfb, +0xad,0xf5,0x94,0xf6,0x56,0xfa,0x46,0x1,0x29,0x9,0x96,0xe, +0xcd,0xf,0xc9,0xa,0xc8,0x4,0x66,0x3,0x12,0x2,0xee,0xfe, +0x38,0xfd,0x7f,0xfd,0x38,0x2,0xd0,0xb,0x68,0x14,0x63,0x15, +0xfb,0x8,0x76,0xf5,0x92,0xec,0x4f,0xee,0xd8,0xed,0x8b,0xef, +0xaf,0xf9,0x19,0x3,0x17,0x9,0xa1,0x10,0x9f,0x11,0x87,0x4, +0xf0,0xf6,0x6e,0xf6,0x7a,0xf9,0xaa,0xf5,0x9a,0xf4,0x1d,0xfc, +0x5b,0x2,0xf2,0x5,0x3a,0xb,0xc9,0x9,0xe1,0xff,0xdc,0xfc, +0xe9,0x3,0xc0,0x7,0x22,0x5,0x97,0x3,0xaf,0x5,0xe4,0x8, +0x44,0xa,0x40,0x9,0xc4,0x8,0x98,0x7,0x5e,0xff,0xc1,0xf0, +0x54,0xe5,0x31,0xe5,0x25,0xf1,0xe9,0x3,0x5f,0x14,0xdd,0x15, +0xc2,0x3,0xfb,0xef,0x3,0xef,0x7a,0xfc,0xcc,0x7,0xac,0x7, +0x35,0xfa,0xed,0xe5,0x59,0xda,0xb3,0xe5,0xc0,0x2,0x80,0x18, +0xa7,0x16,0x3f,0x1,0x26,0xe6,0xf2,0xd9,0xfe,0xe5,0x19,0xfb, +0x4c,0x9,0x40,0xd,0xae,0x9,0xd0,0x4,0xe2,0x0,0xf9,0xfe, +0xfe,0x2,0x48,0x8,0x20,0x8,0x2b,0x0,0x23,0xec,0xd9,0xd9, +0x23,0xe6,0xae,0xb,0x44,0x25,0xa0,0x22,0x31,0xf,0x34,0xf7, +0x1c,0xe9,0x65,0xf3,0x8d,0x8,0x5e,0xe,0xe4,0x7,0x15,0x2, +0x9,0xf9,0xd5,0xef,0x78,0xf3,0x8,0x0,0x1c,0x4,0x2c,0xfa, +0x4d,0xee,0xe0,0xea,0x80,0xf1,0x86,0x5,0xa9,0x22,0xcb,0x33, +0xfb,0x27,0x6e,0x8,0x9b,0xf0,0xfc,0xec,0x6b,0xf4,0x75,0x1, +0xc1,0xa,0xf7,0x0,0x60,0xf0,0xb,0xed,0xdc,0xf0,0x92,0xf6, +0x7f,0xff,0xf0,0xfe,0x35,0xee,0x4d,0xdd,0x6c,0xdf,0xf6,0xf4, +0xb6,0xb,0xfb,0x13,0xc4,0xc,0xa4,0xfd,0x77,0xef,0x8e,0xe9, +0x6a,0xef,0x0,0xf8,0xec,0xf7,0x15,0xf9,0xa8,0x3,0x19,0xb, +0x26,0xf,0xd2,0x16,0x74,0x18,0x25,0x13,0xcb,0xf,0x5c,0x9, +0x9f,0xfa,0xf0,0xeb,0xd4,0xec,0xa3,0x0,0x3a,0xf,0x34,0x6, +0xc6,0xf2,0x96,0xe2,0x15,0xdd,0xbb,0xef,0x17,0xe,0x5d,0x15, +0x8d,0x7,0x13,0x0,0xd,0xff,0xe2,0xff,0x2b,0xa,0xb6,0xe, +0xa3,0xff,0x5,0xef,0xdd,0xe6,0xab,0xe5,0x28,0xf3,0xc9,0x6, +0x61,0xe,0x82,0x8,0x96,0xfa,0xd,0xf2,0x38,0xfc,0xce,0xd, +0xa8,0x15,0xaf,0x10,0x9c,0x1,0x53,0xf1,0xd7,0xe9,0x40,0xed, +0x68,0xf9,0xff,0x7,0xad,0xf,0x79,0xa,0xc2,0xfb,0x1a,0xf3, +0x8a,0xfd,0xad,0x14,0x65,0x22,0xc8,0x13,0xab,0xf3,0xa6,0xe6, +0xad,0xfc,0xac,0x1d,0x7c,0x29,0x2c,0x17,0x33,0xf7,0xcc,0xe2, +0x82,0xe6,0x7e,0xf3,0xfe,0xf3,0xdf,0xf1,0x92,0x1,0x85,0x14, +0xfe,0x11,0xd2,0xfe,0xf1,0xee,0x1d,0xee,0xa1,0xfa,0xaf,0x5, +0x1b,0xfe,0x94,0xe7,0xfa,0xdc,0xf3,0xe9,0xac,0xfe,0x9a,0xd, +0xd6,0x9,0xd5,0xeb,0xa2,0xd0,0xe9,0xd3,0x2e,0xe4,0xb4,0xef, +0xef,0xfd,0x2,0xd,0x44,0xf,0x5a,0x5,0x32,0xfd,0x94,0xfc, +0x35,0xfe,0xd6,0xfe,0xea,0xfb,0xd9,0xf4,0xbf,0xf4,0xac,0x2, +0xb,0x13,0xfc,0x1a,0x6b,0x1d,0xaa,0x1c,0xd1,0x13,0x1e,0x5, +0x33,0xfc,0xdf,0xfe,0x6c,0x9,0x78,0x11,0xf2,0xd,0x2f,0x6, +0x68,0x5,0xc0,0x8,0xd0,0x9,0xdd,0x2,0x20,0xf5,0xf,0xf2, +0xea,0xfe,0xd7,0xa,0x0,0xf,0x1f,0xf,0x4f,0xc,0xe0,0xa, +0x29,0xb,0x12,0x6,0xc4,0xfa,0x90,0xf1,0x83,0xf3,0x7b,0xfe, +0xc1,0x2,0xc4,0xf8,0xc7,0xee,0x20,0xf2,0xa1,0xfc,0x2a,0x5, +0xa2,0x8,0x7,0x2,0x10,0xf7,0x3b,0xf6,0x9f,0xfa,0xf4,0xf5, +0xee,0xea,0x47,0xe5,0x88,0xe7,0xb1,0xe5,0x71,0xdb,0x1c,0xdc, +0xcb,0xee,0xbc,0x0,0xea,0x7,0xe5,0x4,0x9e,0xf9,0x83,0xf3, +0x68,0xfc,0x4e,0x9,0xa9,0x9,0xce,0xfd,0x35,0xf7,0x45,0xff, +0xe2,0xc,0x55,0x14,0xa9,0xf,0xc,0x4,0x64,0xfe,0x8f,0x0, +0x57,0x7,0xdf,0x16,0x7a,0x2a,0x92,0x32,0x6,0x2c,0xa1,0x23, +0x6f,0x21,0x39,0x20,0xf2,0x18,0xcb,0x9,0x9e,0xf9,0x5,0xf6, +0xf5,0xfd,0x2b,0x2,0xcd,0x3,0x81,0xe,0xa5,0x18,0x9c,0xd, +0x39,0xf4,0x71,0xe9,0x1b,0xf0,0x85,0xf2,0x97,0xee,0xf,0xeb, +0x63,0xe3,0xf3,0xdd,0x6d,0xe0,0xd8,0xdb,0x55,0xcf,0x92,0xcf, +0xc3,0xda,0x20,0xdd,0x3d,0xdc,0x6,0xe8,0x20,0xf7,0x32,0xff, +0x3,0x6,0x41,0x8,0x7c,0x0,0x33,0xf7,0x40,0xf4,0x87,0xfa, +0x50,0x5,0x8c,0x8,0x39,0x6,0x98,0x7,0x8e,0xa,0x3d,0xe, +0x1,0x14,0x33,0x18,0x65,0x1b,0x12,0x1d,0x78,0x17,0x94,0xf, +0xff,0xf,0x77,0x14,0x3f,0x14,0xbe,0x12,0x55,0x10,0xfc,0x7, +0x39,0x3,0x47,0xa,0x7b,0x13,0x51,0x18,0x15,0x17,0x4d,0xd, +0x55,0x4,0xac,0x4,0x53,0x9,0x85,0xc,0x38,0xb,0x37,0x7, +0x4e,0x4,0xf9,0xfd,0x89,0xf4,0x83,0xef,0x53,0xec,0x76,0xea, +0x9e,0xf1,0x7,0xfc,0xf1,0xfd,0xa7,0xfb,0x85,0xfd,0x86,0x0, +0x78,0x0,0xe5,0xfb,0x7e,0xee,0x45,0xde,0xa9,0xda,0x61,0xe2, +0xef,0xe9,0x5c,0xf0,0x64,0xf6,0xee,0xf9,0x6e,0xfa,0xd5,0xf6, +0x47,0xf3,0x6a,0xf5,0xe,0xfa,0x53,0xfd,0x63,0xfd,0x75,0xf7, +0xbf,0xf2,0x83,0xf9,0xa,0x3,0x9e,0x1,0x21,0xfc,0xfa,0xfb, +0x5,0xfb,0x7f,0xfc,0x19,0xd,0xe7,0x20,0x4e,0x24,0x2a,0x20, +0xe0,0x22,0xe0,0x26,0x62,0x27,0x36,0x28,0x8a,0x23,0xc1,0x15, +0xa4,0xd,0xcd,0xd,0xb1,0x5,0xc0,0xfa,0xfe,0xfb,0x59,0xff, +0xf8,0xfe,0x21,0x5,0xf,0xc,0xa7,0x8,0xe4,0x2,0xfc,0x3, +0xb7,0x3,0x38,0xf7,0x30,0xe7,0x94,0xe1,0xb3,0xdf,0xe2,0xd9, +0x3b,0xd9,0xf5,0xdf,0x9c,0xe6,0x6a,0xec,0x31,0xf0,0x53,0xef, +0x38,0xee,0x73,0xf0,0xe3,0xf3,0xe6,0xf5,0x64,0xf7,0xb1,0xfd, +0x65,0x6,0x35,0x4,0xb,0xfa,0x1,0xfa,0xe3,0xfd,0x91,0xf4, +0x1e,0xed,0x37,0xf8,0xc6,0x4,0xb7,0xa,0x43,0x18,0xed,0x24, +0xf1,0x1f,0x7f,0x16,0x41,0x16,0x9c,0x15,0xaf,0xd,0x11,0x5, +0x32,0x2,0x41,0x2,0xf,0xff,0x54,0xfd,0x93,0x0,0x85,0xfd, +0x28,0xf6,0xa4,0xfa,0xf1,0x1,0x86,0xfc,0x4f,0xf9,0x1f,0x3, +0xad,0x7,0x66,0xff,0x59,0xf9,0x84,0xf7,0xdc,0xee,0xf4,0xe3, +0xe2,0xe1,0x3f,0xe6,0x67,0xed,0x9e,0xf8,0xef,0x2,0x7,0x8, +0x61,0xb,0x3d,0xd,0xae,0x9,0x85,0x2,0xf4,0xfd,0x11,0xfe, +0x82,0xfe,0x42,0xfd,0x6e,0xff,0x1e,0x4,0x5,0x2,0x20,0xfb, +0xca,0xf9,0x8b,0xfb,0x1e,0xf9,0x54,0xf5,0xb9,0xf4,0x76,0xf7, +0xae,0xfb,0x3d,0x0,0x5c,0x7,0x9d,0xc,0x4c,0x7,0xff,0xff, +0x76,0x0,0x64,0xfd,0xf4,0xf4,0x1d,0xf6,0x60,0xfd,0xa,0x0, +0xef,0x4,0x7e,0xe,0xe5,0x13,0x45,0x16,0xbf,0x19,0xcd,0x18, +0xde,0x11,0x9e,0xc,0x8e,0xb,0x69,0x9,0x5f,0x5,0x97,0x4, +0x8f,0x6,0x5e,0x6,0x23,0x7,0x13,0xc,0x51,0xd,0xd8,0x8, +0x86,0x8,0xd6,0xb,0x31,0x9,0x64,0x3,0x21,0x3,0xb6,0x4, +0x44,0x0,0x22,0xfa,0xfd,0xf7,0xb5,0xf4,0xa7,0xf1,0x9e,0xf5, +0x64,0xf8,0x89,0xf7,0x85,0xfe,0x51,0x4,0xd7,0xfd,0xd1,0xfb, +0xdd,0x1,0xaa,0xfe,0xe9,0xf6,0xfe,0xf6,0x5e,0xf8,0x25,0xf5, +0x29,0xf1,0x30,0xf1,0xaa,0xf6,0x3f,0xfc,0x1e,0xfe,0x8f,0xff, +0xe6,0x2,0xed,0x8,0xff,0x10,0x6c,0x16,0xb,0x15,0x8e,0xc, +0xe,0x5,0xb7,0x6,0xe8,0x7,0x33,0x2,0xe0,0x1,0xba,0x4, +0x57,0xff,0x22,0xfb,0x44,0xfd,0xe8,0xfc,0xac,0xfb,0x71,0xfb, +0xb9,0xf9,0x80,0xfc,0x61,0x3,0x7b,0x6,0xd4,0x7,0x11,0x9, +0xf0,0x4,0xb1,0xfc,0xb4,0xf6,0x41,0xf4,0x6d,0xf2,0xe4,0xf1, +0xe,0xf7,0xad,0xff,0x8c,0x5,0x36,0xa,0x6,0xe,0x27,0xb, +0x67,0x5,0xfe,0x2,0xc,0xfc,0x6c,0xf0,0xe7,0xef,0xbc,0xf7, +0x20,0xf6,0xb5,0xef,0x7f,0xf1,0xe,0xf4,0xfa,0xf0,0xdc,0xf0, +0x39,0xf3,0xf4,0xf1,0xa3,0xf5,0xf0,0xff,0x9e,0x2,0x2a,0x0, +0x60,0x1,0xb7,0xfc,0xf3,0xf4,0xb2,0xf6,0xc4,0xf5,0x76,0xee, +0x58,0xf2,0xe6,0xf8,0x21,0xf6,0x7d,0xfb,0xd7,0x6,0x2,0x4, +0xc4,0x0,0x1f,0x9,0xa0,0x7,0xa9,0xfb,0x9,0xfc,0x39,0x2, +0xfa,0xfd,0x42,0xf9,0xd2,0xfc,0x34,0x0,0x2,0x1,0xe0,0x3, +0x8e,0x3,0xfa,0xfb,0x75,0xf9,0x39,0x0,0x3e,0x0,0x94,0xfa, +0xe5,0xff,0xfd,0x7,0xe3,0x6,0x89,0x7,0x52,0xb,0x57,0x6, +0xe5,0xfc,0x26,0xf8,0x90,0xf4,0x4c,0xf1,0x55,0xf5,0x67,0xfc, +0x41,0xfd,0x50,0x1,0xa1,0xd,0x88,0x10,0xb9,0x9,0xc6,0x7, +0x80,0x3,0x46,0xfc,0x80,0xfe,0x8c,0x1,0x4b,0x3,0xfc,0xc, +0xcf,0xe,0x87,0x6,0x2f,0x9,0xfb,0x9,0x18,0xfe,0xe4,0xfe, +0x46,0x8,0xf0,0x3,0xeb,0x1,0x8,0x9,0x83,0x4,0xa4,0xfc, +0xd3,0x2,0xf6,0x4,0xf4,0xf6,0xa1,0xf0,0xf4,0xfa,0xff,0xfc, +0x59,0xf6,0xac,0xff,0x7a,0xa,0x82,0x0,0x9d,0xfa,0x9f,0x2, +0x36,0xff,0x2b,0xf9,0xa9,0xff,0x1,0xfe,0x4f,0xf9,0x71,0x7, +0xbf,0xe,0xf,0xff,0x28,0xf8,0xa5,0xff,0x29,0xff,0x11,0xfa, +0x47,0xf8,0xee,0xf6,0xe1,0xf8,0xfd,0xfc,0x18,0x1,0xb6,0x6, +0x54,0x8,0x96,0x6,0x22,0x4,0x1b,0xfb,0xcb,0xf5,0xbc,0xfb, +0x13,0xfb,0x13,0xf6,0xbe,0xfc,0x79,0x3,0xf9,0x2,0x5b,0x3, +0x50,0x3,0xbc,0x5,0x98,0x8,0xbb,0xfe,0x19,0xf6,0xfb,0xfb, +0xc7,0xfa,0xed,0xf5,0x20,0x2,0xb0,0x5,0xec,0xf6,0x91,0xf9, +0x99,0x3,0x91,0xf9,0xb3,0xf6,0x1b,0x3,0xfb,0x0,0x46,0xf9, +0x69,0xff,0x14,0x5,0xd4,0x0,0x4a,0xfa,0xfe,0xf6,0x30,0xf7, +0x6e,0xf7,0xef,0xf7,0xd1,0xfa,0x67,0xfd,0x3d,0xff,0x7e,0x2, +0x2a,0x5,0xc2,0x1,0xa9,0xf9,0xac,0xf9,0x4d,0x1,0xe9,0xfe, +0x36,0xf6,0x5f,0xf9,0xa7,0x0,0x3f,0xfb,0xd6,0xf2,0xc0,0xf5, +0xbc,0xf7,0x33,0xf2,0xa0,0xf7,0xa7,0x3,0xff,0x2,0xaa,0x0, +0x9f,0x2,0x45,0xfe,0x99,0xfb,0xfc,0xfb,0x6a,0xf5,0xdd,0xef, +0xe2,0xf0,0xee,0xf5,0x13,0xfe,0x17,0xff,0xd2,0xf9,0x2f,0xfc, +0x35,0x1,0x9d,0xfe,0x85,0xf8,0x2b,0xf7,0x68,0xfd,0x66,0x1, +0xdd,0xfc,0xb5,0xfc,0x61,0x4,0x65,0x4,0x5f,0xfb,0xd6,0xf8, +0x56,0xfe,0x34,0xff,0xd7,0xfd,0x74,0x4,0x52,0xa,0x9f,0x7, +0x9,0x7,0xca,0xa,0x80,0x6,0x89,0xfc,0x92,0xfe,0x3c,0x7, +0xa1,0xff,0x6e,0xf5,0xba,0xff,0x3b,0x5,0xea,0xf7,0x93,0xf7, +0x9e,0x2,0x34,0xfb,0xc3,0xef,0xf7,0xf6,0x3f,0xfd,0x5e,0xf6, +0xeb,0xf8,0x58,0x4,0x44,0xfe,0xc1,0xf5,0x47,0x2,0xf7,0x4, +0xa1,0xf3,0x63,0xf6,0x98,0x3,0xd9,0xf9,0xbb,0xf6,0x97,0x7, +0x82,0x5,0xc2,0xfc,0x70,0xd,0xa2,0x14,0xb9,0x2,0x5a,0x1, +0x84,0xc,0xfa,0x5,0x55,0x1,0xc0,0xb,0x57,0xf,0xfc,0xb, +0xab,0x10,0xc3,0x17,0x2,0x14,0x54,0x9,0xe7,0xa,0x6b,0x13, +0x59,0x7,0xdc,0xf6,0x23,0x3,0xda,0x12,0x88,0xb,0xfe,0x6, +0x31,0xd,0x6,0x9,0x2b,0x4,0xc5,0xb,0x29,0xa,0xa2,0xfa, +0x96,0xfa,0xa0,0x7,0xc,0x2,0x64,0xf3,0xdd,0xf7,0xe9,0x1, +0xfb,0xfd,0xbb,0xf8,0x8b,0xfd,0xb1,0x2,0xbe,0x0,0x64,0x2, +0x45,0xa,0xbc,0x5,0xdd,0xfb,0x4c,0x4,0x83,0x9,0x62,0xfb, +0xbb,0xfb,0x25,0xb,0xf0,0x7,0xc3,0xff,0x17,0x6,0x12,0x3, +0x71,0xf6,0x8,0xfe,0x4b,0xa,0x5d,0x1,0x98,0x0,0x32,0x15, +0xd6,0x19,0x81,0xb,0x70,0x5,0x54,0x6,0x83,0x5,0x6e,0x1, +0xe0,0xfa,0xc1,0xf8,0xff,0xf8,0xee,0xfe,0x95,0xe,0x30,0xe, +0xd9,0x0,0x2c,0xa,0x1b,0x12,0xcf,0xfe,0x36,0xfa,0x67,0xa, +0xcb,0x7,0x4,0x0,0x91,0x7,0x56,0x4,0xe8,0xfa,0xb5,0x7, +0xbd,0xd,0x30,0xf9,0x58,0xf8,0xb1,0xc,0x8,0x5,0x9a,0xf4, +0x3d,0x1,0xe8,0xb,0x69,0x1,0x75,0x1,0x8f,0xd,0x76,0x9, +0xd9,0x0,0x20,0x9,0x40,0x8,0xdc,0xf2,0xb7,0xf0,0x8,0x3, +0x76,0xff,0x1,0xf0,0x83,0xfc,0x38,0x14,0xf6,0xf,0xfb,0x2, +0xb8,0xd,0xdb,0x10,0xd9,0xf9,0x3d,0xf5,0x9c,0xfe,0xf8,0xed, +0x5d,0xe7,0x1d,0x1,0x68,0x5,0x1f,0xf6,0x8f,0x2,0x4,0x10, +0x72,0xff,0x47,0xf5,0xfc,0xfc,0xbb,0xf7,0x20,0xec,0x86,0xf1, +0xfd,0xfc,0x9f,0xfc,0xbf,0xf6,0xd,0xfb,0x68,0xff,0x1,0xf5, +0x97,0xf6,0x96,0x4,0x2d,0xf1,0x72,0xdd,0xce,0xfa,0x95,0x8, +0xc2,0xef,0x70,0xf8,0x51,0xc,0x7b,0xf6,0x65,0xee,0x3f,0x5, +0x18,0xfd,0xcd,0xe7,0x4d,0xf7,0x3f,0x5,0xf2,0xf2,0x4a,0xee, +0x93,0x5,0xe4,0xa,0x36,0xfa,0xaf,0xfb,0x43,0x7,0x67,0xfa, +0xd7,0xed,0xd7,0xfd,0xe1,0x1,0x7e,0xee,0x3f,0xf6,0xb5,0xa, +0xe,0xfd,0x64,0xf4,0x89,0xc,0x2a,0x11,0x66,0xfe,0xd7,0x2, +0x8f,0xb,0x2d,0xfd,0xfd,0xfa,0xf5,0x6,0xda,0xf6,0xeb,0xe2, +0x79,0xf5,0xd3,0x6,0xaa,0xf5,0xb2,0xed,0x98,0x1,0xbf,0x6, +0xe1,0xf9,0x2f,0xff,0x82,0x3,0xb6,0xed,0x26,0xea,0x9a,0xfe, +0xaa,0xf3,0xf0,0xe1,0x7e,0xf8,0x3b,0x6,0xbe,0xf3,0xfd,0xf5, +0xce,0x6,0x8d,0xf9,0x89,0xe7,0x71,0xf0,0x99,0xf5,0x90,0xe9, +0xf1,0xec,0xc5,0xfd,0x15,0x0,0x0,0xfe,0x56,0x5,0x7e,0x5, +0xd0,0xf9,0xc7,0xf6,0x39,0xfe,0xf6,0xf6,0x8c,0xe7,0x9c,0xf0, +0x4b,0xfe,0xdc,0xf6,0xd2,0xf9,0x0,0x7,0x3f,0xfd,0x9a,0xf1, +0xd3,0xf5,0x64,0xf6,0xf2,0xf6,0xa9,0xfc,0x69,0xfe,0x81,0x3, +0x10,0xc,0xc1,0xf,0x86,0x13,0x98,0x10,0x92,0x0,0x76,0xf9, +0xa7,0xff,0x5,0xfa,0x16,0xf1,0xc8,0xfc,0x41,0x7,0xa7,0x1, +0xbc,0x5,0x55,0xe,0xac,0x5,0x34,0xfe,0xa2,0x0,0xfe,0xfb, +0x3e,0xf5,0xdc,0xf6,0x5a,0xfc,0xf1,0x0,0xf8,0x1,0xcd,0x2, +0xcd,0x3,0x45,0xfc,0x33,0xf4,0x4c,0xf7,0xd7,0xf8,0x8c,0xf4, +0xda,0xf9,0xdd,0x4,0xfa,0x8,0xf3,0xd,0x8b,0x14,0xa8,0xe, +0x8d,0x2,0x8d,0xfb,0xdd,0xf0,0xaa,0xe5,0x7c,0xe8,0xee,0xf0, +0xf2,0xf3,0x8c,0xf8,0xa3,0x3,0xda,0xd,0x3f,0xc,0xa4,0x1, +0x46,0xfb,0x4a,0xf7,0xf4,0xf1,0x32,0xf3,0x9b,0xf7,0x8a,0xfa, +0x6b,0x0,0x72,0x4,0x6f,0x6,0xf9,0x6,0x50,0xfb,0xf7,0xf2, +0xf1,0xfd,0xf7,0x1,0x3b,0xfd,0x50,0x8,0x7d,0xf,0xe1,0x6, +0xc7,0x9,0xbf,0x12,0x57,0xc,0xb6,0x2,0xb1,0x2,0xcc,0x7, +0x71,0x9,0xd8,0x6,0x48,0x10,0xff,0x20,0x56,0x1a,0x9,0xc, +0x93,0x17,0x54,0x1f,0x6f,0x11,0xf4,0x16,0xf,0x2a,0xbc,0x26, +0x7,0x25,0xac,0x2f,0x2b,0x2b,0xd1,0x24,0xe7,0x27,0xd5,0x26, +0x94,0x2a,0x32,0x27,0x64,0x14,0xb0,0x1d,0x13,0x36,0x93,0x2b, +0x26,0x21,0x3e,0x2f,0xd2,0x2a,0x7e,0x19,0x30,0x20,0x76,0x2b, +0x3b,0x1e,0x7b,0x10,0x3d,0x1d,0x71,0x22,0xe3,0x8,0x82,0x3, +0x34,0x1d,0x95,0x18,0x44,0xfe,0xc3,0x9,0xf6,0x1b,0x98,0x1, +0x36,0xf0,0x6d,0xc,0x8a,0xe,0x3b,0xee,0x81,0xf5,0x9b,0x4, +0xd7,0xe7,0xee,0xe0,0xed,0xfd,0x72,0xf4,0x7b,0xd8,0x96,0xe3, +0x1b,0xec,0xd4,0xd2,0x16,0xce,0x9e,0xe5,0xf9,0xdf,0x99,0xcb, +0x52,0xd8,0x7,0xe5,0x28,0xd6,0x89,0xd2,0x8e,0xdf,0xba,0xdb, +0x1,0xcf,0x5a,0xd4,0x7b,0xdc,0xc3,0xd1,0x71,0xd0,0xce,0xe4, +0x85,0xe4,0xc8,0xd4,0xea,0xdd,0xb5,0xe6,0xcf,0xd9,0xaf,0xd8, +0xce,0xe4,0x4b,0xe3,0x5e,0xdb,0x49,0xdf,0x75,0xe8,0x7d,0xe8, +0x54,0xe5,0x3c,0xe8,0x1e,0xe7,0x5b,0xdf,0xd2,0xdd,0x43,0xe3, +0x5c,0xe6,0xf0,0xe6,0x45,0xee,0xd,0xf8,0xe3,0xf4,0x9,0xf0, +0x9a,0xf6,0x89,0xf6,0xf3,0xef,0x34,0xf4,0x6c,0xf7,0x90,0xf2, +0x68,0xf4,0x52,0xfa,0xac,0xf9,0xd3,0xf8,0xba,0xfc,0x98,0xfb, +0xc2,0xf4,0x62,0xf5,0x7f,0xf9,0x91,0xf9,0x4d,0x0,0xf5,0x7, +0xce,0x3,0xe9,0x0,0xd8,0x2,0xa6,0xff,0xb1,0xfd,0x48,0xff, +0xba,0xfd,0xbc,0xfb,0x21,0xff,0xfb,0x7,0xd0,0xb,0xd8,0x7, +0x76,0xb,0xe7,0x11,0x97,0xc,0x16,0x9,0x38,0xb,0x57,0x6, +0xa5,0x4,0x4b,0xa,0x46,0x8,0xd2,0x2,0xf3,0x4,0x97,0x9, +0xec,0xa,0x64,0x9,0xe8,0x8,0x30,0xb,0x7f,0xb,0x9a,0xa, +0x77,0xd,0x86,0xf,0x21,0xc,0xfa,0x8,0x9e,0xb,0x53,0xf, +0xa6,0xc,0xe4,0x8,0xbd,0xb,0x38,0xc,0x30,0x6,0xb2,0x6, +0xd2,0xa,0xc4,0x4,0xfd,0xff,0xbb,0x7,0x4,0xb,0x89,0x4, +0x92,0x5,0xa6,0xa,0x36,0x6,0x34,0x2,0x48,0x4,0x94,0x1, +0xa1,0xfd,0xa6,0x0,0xbf,0x4,0xae,0x5,0xbd,0x4,0x95,0x5, +0xf4,0xa,0xf8,0xb,0x67,0x6,0xb7,0x6,0xc2,0xa,0x9c,0x9, +0x3e,0x8,0x16,0x8,0xd1,0x5,0x99,0x4,0xd,0x6,0x65,0x9, +0x8f,0xc,0x0,0xc,0x99,0xa,0x16,0xc,0x55,0xd,0xac,0xc, +0x5c,0xd,0xec,0xf,0x6d,0xf,0x30,0xc,0xf9,0xc,0xac,0xe, +0x16,0xc,0xac,0xc,0x83,0x10,0xf8,0xc,0xf,0x6,0x22,0x7, +0x88,0xc,0xa9,0xc,0x3,0xa,0x2e,0xb,0x78,0xb,0x72,0x7, +0x75,0x7,0xe9,0xa,0xd7,0x7,0xf5,0x3,0x3d,0x8,0x82,0x9, +0x48,0x2,0xac,0x2,0x6b,0x9,0x46,0x4,0x7a,0xfc,0x16,0xff, +0xa1,0xfe,0xf,0xfb,0x6,0x1,0xc4,0x6,0xa0,0x5,0xd9,0x7, +0xb,0xd,0x3b,0xc,0x58,0x5,0x7e,0x0,0xb6,0xfe,0x51,0xf8, +0x6e,0xf3,0x8a,0xf7,0xe7,0xf8,0xeb,0xf7,0xab,0xfe,0xdf,0x1, +0xc4,0xfd,0xf5,0xfd,0xa9,0xfd,0xd3,0xf8,0x96,0xf7,0xef,0xf8, +0x2b,0xfa,0xf9,0xfc,0xd4,0xfe,0x6e,0xff,0x4a,0xfe,0x65,0xf9, +0xcf,0xf6,0xc,0xf7,0xdf,0xf2,0xe1,0xf1,0xb8,0xf9,0x12,0xfd, +0x6a,0xfc,0x91,0x3,0xae,0x7,0xc7,0x0,0xaa,0xfc,0xa3,0xfb, +0xf4,0xf5,0x75,0xf5,0xb,0xfc,0x3b,0xfd,0x76,0xfa,0x46,0xfb, +0xe,0xfd,0x62,0xfc,0xff,0xf9,0xff,0xf8,0xd9,0xf9,0x8b,0xf8, +0xe3,0xf8,0x50,0xff,0x89,0x2,0x17,0x1,0xfc,0x2,0x56,0x1, +0x83,0xf9,0x56,0xf7,0xce,0xf8,0xa2,0xf6,0xdb,0xf4,0x35,0xf5, +0x41,0xf7,0x6f,0xf9,0x8a,0xf7,0xd6,0xf6,0x2d,0xfa,0x28,0xfa, +0xf2,0xf8,0xd3,0xf9,0x3b,0xf8,0x9,0xf8,0xbc,0xfb,0x86,0xfb, +0xa3,0xf6,0x8a,0xf3,0x86,0xf4,0xbe,0xf5,0xe4,0xf3,0x8e,0xf3, +0x6a,0xf6,0x3f,0xf7,0x73,0xf8,0x8b,0xfc,0xa0,0xfd,0xe3,0xfb, +0x72,0xfb,0x5a,0xfa,0xb8,0xf8,0x98,0xf8,0xaa,0xf6,0x9e,0xf3, +0xa5,0xf6,0x49,0xfb,0xb7,0xf7,0x19,0xf5,0x65,0xfb,0x96,0xfd, +0x7e,0xfa,0x1e,0xfe,0x4c,0x1,0xf6,0xfd,0x2,0xff,0xc,0x2, +0xbd,0xfd,0x54,0xfb,0x5a,0x0,0x1e,0x1,0x5b,0xfc,0x15,0xfc, +0x46,0xfe,0xe,0xfe,0x48,0xff,0x95,0x1,0x8e,0x2,0x5a,0x4, +0xd9,0x4,0x38,0x3,0x1b,0x4,0x9a,0x4,0x82,0x0,0x64,0xfe, +0xa1,0x1,0xe6,0x1,0x73,0xfd,0xeb,0xfe,0xd3,0x4,0x7e,0x2, +0xb7,0xfe,0x1e,0x4,0x61,0x6,0xb7,0x1,0x39,0x4,0xff,0x8, +0x66,0x4,0x14,0x1,0x92,0x5,0xa6,0x5,0x35,0x1,0x77,0x3, +0x47,0x6,0x9d,0x2,0x58,0x3,0xad,0x8,0x6,0x7,0x7a,0x3, +0xd7,0x4,0x7a,0x5,0x48,0x4,0x28,0x3,0xea,0x1,0xc3,0x2, +0xc7,0x3,0x68,0x2,0x9f,0x1,0xaa,0x1,0xc8,0x1,0x14,0x3, +0x5,0x4,0xb2,0x4,0xd7,0x5,0xec,0x5,0xc9,0x6,0x49,0x8, +0x6a,0x6,0x3,0x4,0x5a,0x4,0x83,0x3,0xbf,0x1,0x87,0x2, +0xb8,0x2,0x85,0x1,0xa8,0x3,0xd6,0x5,0x8f,0x3,0x44,0x4, +0xb7,0x9,0xa2,0x9,0x3d,0x5,0x9a,0x4,0x5d,0x4,0x5f,0x2, +0x9c,0x1,0x3c,0x0,0xec,0xff,0x7,0x3,0xbf,0x3,0xb6,0x2, +0x19,0x5,0xc3,0x6,0x91,0x6,0x4,0x7,0x94,0x3,0x9f,0xfe, +0x90,0xff,0x1a,0x2,0xcb,0x2,0x14,0x4,0x77,0x2,0x14,0xfe, +0xac,0xfc,0xfc,0xfc,0x2b,0xfd,0x14,0xfe,0x87,0xfd,0xb9,0xfc, +0x6,0xfe,0xf9,0xfd,0x54,0xfc,0x92,0xfc,0xaa,0xfc,0xd5,0xf9, +0x48,0xf6,0x88,0xf4,0xab,0xf4,0xf0,0xf5,0xa1,0xf7,0xcf,0xf8, +0x5a,0xf8,0xba,0xf5,0xb2,0xf2,0x61,0xf2,0x49,0xf4,0x65,0xf5, +0xc2,0xf5,0xfa,0xf5,0x57,0xf5,0xfa,0xf4,0x8e,0xf5,0x23,0xf6, +0xb7,0xf5,0x55,0xf3,0xc8,0xf1,0xb0,0xf3,0x33,0xf5,0x5d,0xf5, +0xc4,0xf6,0x9b,0xf6,0x4e,0xf5,0x8a,0xf6,0xd3,0xf5,0xc3,0xf1, +0x7b,0xf1,0xf8,0xf4,0x5f,0xf7,0xd4,0xf8,0x8e,0xf8,0x5a,0xf5, +0x28,0xf3,0xed,0xf3,0x56,0xf4,0xb3,0xf3,0x5c,0xf4,0xc7,0xf5, +0x3f,0xf6,0x79,0xf6,0x7b,0xf7,0x8f,0xf8,0x96,0xf8,0xee,0xf7, +0x58,0xf7,0xaa,0xf5,0x5c,0xf3,0x10,0xf4,0x29,0xf7,0x9a,0xf8, +0x2c,0xf9,0xce,0xf9,0xa1,0xf7,0xb7,0xf4,0x26,0xf6,0x3a,0xf9, +0x61,0xf9,0xec,0xf9,0x1b,0xfd,0x45,0xfe,0xf,0xfd,0x3d,0xfd, +0xc2,0xfc,0x9c,0xfa,0xb0,0xfa,0x1,0xfc,0x35,0xfc,0xdf,0xfd, +0xfe,0x0,0x50,0x2,0x13,0x2,0x37,0x2,0x3c,0x2,0x97,0x0, +0x9c,0xfe,0xbe,0xff,0xee,0x3,0xf,0x8,0xc3,0xb,0xcf,0xf, +0xca,0x11,0x11,0x10,0xa,0xd,0xd2,0x9,0x72,0x5,0x6e,0x2, +0xba,0x3,0x96,0x7,0x4d,0xc,0x14,0x12,0xf4,0x15,0x72,0x15, +0x1e,0x13,0x87,0xf,0x6e,0x9,0xe,0x5,0x2d,0x5,0x85,0x6, +0x24,0x8,0x4d,0xb,0xd7,0xf,0x9b,0x15,0xbf,0x18,0xa4,0x13, +0xb6,0x8,0xfd,0xff,0xeb,0xfd,0x76,0x2,0x2f,0xa,0xd2,0xf, +0x8f,0x12,0x3c,0x14,0x94,0x12,0x6d,0xe,0x1,0xd,0x6c,0xb, +0x16,0x5,0xb,0xff,0xbc,0xfe,0xc8,0x3,0x4a,0xb,0xa1,0x11, +0xbb,0x14,0xaf,0x13,0x9d,0xf,0xbb,0xc,0x36,0xc,0x2d,0xa, +0x5e,0x3,0x83,0xfa,0x27,0xf7,0x9a,0xfb,0x87,0x3,0x1a,0xc, +0x58,0x13,0x68,0x16,0xe3,0x13,0x72,0xd,0x95,0x9,0x45,0xb, +0xfa,0xb,0x32,0x9,0x9a,0x8,0x97,0xb,0x8c,0x10,0x2f,0x19, +0x48,0x22,0xe2,0x23,0xf9,0x1e,0x5c,0x19,0x15,0x13,0x48,0xd, +0xfb,0xc,0xe4,0x15,0x33,0x26,0xa4,0x31,0xec,0x2f,0xa2,0x28, +0xee,0x1f,0x93,0x14,0xa4,0xc,0xec,0x7,0x45,0x2,0x66,0x3, +0xbf,0xb,0x49,0xe,0xc7,0xc,0x63,0x12,0x5b,0x18,0xc1,0x13, +0xe8,0x9,0x42,0x1,0xe3,0xf8,0x8f,0xf4,0x9b,0xfa,0x4c,0x8, +0x99,0x10,0x5d,0xa,0x2a,0xfd,0x6a,0xf3,0x4d,0xf1,0x49,0xff, +0xee,0x16,0xdf,0x17,0x8,0xfc,0x16,0xea,0x3f,0xf4,0xa6,0x1, +0x7b,0x4,0x58,0x4,0x4c,0xfe,0x87,0xf1,0x24,0xea,0x64,0xe9, +0x8f,0xea,0x8e,0xee,0xfa,0xef,0x4b,0xea,0xb2,0xe1,0x57,0xd9, +0x81,0xd9,0x53,0xec,0x2,0x6,0x17,0xf,0xa3,0x3,0xb6,0xf0, +0x6,0xe3,0x2a,0xe2,0x15,0xea,0x2e,0xef,0xe7,0xef,0xd7,0xef, +0x48,0xed,0x24,0xea,0xcf,0xeb,0xf5,0xf4,0xcb,0x2,0xc0,0x5, +0xce,0xf5,0x8c,0xe9,0x49,0xf0,0x88,0xf6,0xf5,0xf2,0x46,0xf5, +0x8,0xfa,0xa3,0xf1,0x86,0xe6,0xbb,0xe6,0x9b,0xed,0xa1,0xf8, +0xa,0x5,0x7a,0x6,0x19,0xfa,0x1d,0xe9,0xa0,0xdc,0x2f,0xdd, +0x6d,0xeb,0x62,0xfa,0xd,0xfd,0xfc,0xf1,0x64,0xe2,0x3,0xdc, +0x8a,0xe3,0x26,0xec,0xbd,0xe7,0x2,0xd9,0x6a,0xcd,0x54,0xd0, +0xc6,0xe1,0x20,0xf5,0xe8,0x0,0xb5,0x4,0xc2,0xfd,0xe6,0xeb, +0x7f,0xd9,0x37,0xd0,0xbe,0xd2,0x3d,0xdf,0x9e,0xed,0x8a,0xf5, +0x8e,0xf7,0x41,0xf7,0x72,0xf4,0xcd,0xf0,0x29,0xf1,0xdd,0xf4, +0x10,0xf5,0x38,0xf0,0x84,0xee,0xd5,0xf6,0xe1,0x5,0x8a,0x11, +0xa9,0x10,0x99,0x2,0x89,0xf0,0x47,0xe6,0xcd,0xe8,0x1f,0xf1, +0xf5,0xf6,0x4f,0xfd,0xb1,0x6,0x42,0xb,0x2d,0x6,0x2d,0xfd, +0x93,0xf8,0xf0,0xf8,0xce,0xf6,0x4c,0xf0,0x7c,0xeb,0xeb,0xea, +0x55,0xed,0x8b,0xf1,0xe8,0xf5,0xab,0xf8,0x40,0xf6,0x9e,0xed, +0xcc,0xe7,0xa0,0xee,0x1b,0xfe,0x91,0x8,0x6c,0x6,0x68,0xfd, +0xcc,0xfa,0x94,0x3,0xce,0xa,0x1c,0x5,0x72,0xfc,0xee,0xfd, +0x8b,0x6,0x68,0xc,0x8c,0xb,0xf9,0x9,0x25,0xf,0xc3,0x16, +0x80,0x18,0x8,0x14,0x6d,0xc,0x35,0x6,0xb9,0x6,0xea,0xa, +0x34,0xa,0xe7,0x4,0x4f,0x1,0x25,0xff,0x87,0xfc,0xff,0xfc, +0x79,0x1,0xf,0x6,0x92,0x7,0x5f,0x4,0x5,0x0,0x4b,0x2, +0xa4,0xb,0x3f,0x14,0x62,0x16,0xcb,0x11,0x7b,0xa,0xb6,0x6, +0x3a,0x7,0xbb,0x6,0x9c,0x5,0xb7,0x6,0x10,0x5,0xdb,0xff, +0xf4,0xfe,0x8f,0x3,0xbe,0x9,0xb8,0xe,0xa1,0xd,0x11,0x7, +0xb,0x2,0x3e,0xff,0x9e,0xfb,0x4b,0xf9,0x6a,0xfa,0xe9,0xfc, +0xf2,0xff,0x21,0x4,0x26,0x7,0xc7,0x7,0xd5,0x7,0xf9,0x6, +0x31,0x5,0xde,0x4,0x2,0x5,0x82,0x2,0x6e,0xff,0x62,0x2, +0x4,0xc,0x9d,0x13,0x86,0x13,0xca,0xd,0xbb,0x6,0x49,0x4, +0xc5,0x6,0xb0,0x7,0x50,0x7,0x1a,0xa,0x99,0xe,0x26,0x11, +0x81,0x10,0x23,0x10,0xdd,0x12,0x3e,0x12,0x82,0x8,0x6c,0xfb, +0x8c,0xf5,0x16,0xfb,0xe1,0x3,0x69,0x6,0xa3,0x5,0xea,0x7, +0xae,0xc,0x80,0xf,0xda,0xc,0x3d,0x7,0xd0,0x4,0x4f,0x7, +0x60,0xa,0x3d,0x8,0xbb,0x3,0xb,0x5,0xaf,0x9,0x22,0xa, +0xaf,0x5,0x32,0xff,0x7e,0xfc,0xef,0x0,0x4d,0x7,0xf2,0xa, +0xe3,0xa,0xfa,0x7,0x60,0x6,0xa9,0x5,0xce,0xff,0x1c,0xf5, +0xae,0xee,0x89,0xf1,0x6e,0xf4,0xc4,0xef,0x9f,0xeb,0x2d,0xed, +0x5a,0xef,0xe,0xf0,0xec,0xef,0x1a,0xf0,0x63,0xf0,0x53,0xed, +0xbf,0xe9,0x2f,0xea,0xa9,0xe9,0xe5,0xe4,0xad,0xe1,0x76,0xe4, +0x9d,0xe9,0x72,0xed,0x30,0xf4,0xee,0xfd,0xa7,0x2,0x44,0x2, +0x51,0x1,0x45,0xff,0x3c,0xfc,0xf3,0xf9,0x18,0xfc,0x8f,0x4, +0xaf,0xa,0x34,0x8,0x77,0x3,0x1d,0x0,0x1d,0xf9,0xb8,0xec, +0xab,0xe2,0xd8,0xe1,0xe7,0xe5,0x40,0xea,0xa,0xf2,0xa,0xfe, +0x24,0x9,0xa1,0xc,0x78,0x6,0x38,0xfd,0xb7,0xf5,0x8c,0xee, +0x9b,0xe8,0xe5,0xe6,0xf9,0xe9,0x1f,0xee,0xc3,0xef,0x7,0xf4, +0xe7,0xfe,0x60,0x8,0xbb,0xa,0xd7,0xb,0xee,0x12,0x36,0x1e, +0xdc,0x24,0x52,0x24,0x4f,0x22,0x31,0x21,0x17,0x1e,0xdb,0x16, +0xd4,0xe,0xf5,0xb,0xc5,0xc,0x74,0xc,0x6a,0xb,0x50,0xa, +0xb2,0x8,0xb4,0x6,0xd0,0x3,0xf2,0x1,0xe3,0x2,0x9a,0x4, +0x5c,0x5,0x3a,0x4,0xb8,0x0,0xa,0xfc,0x22,0xf7,0x91,0xf1, +0xe3,0xe9,0x3a,0xe2,0xaa,0xdf,0x66,0xe1,0xad,0xe6,0xed,0xf1, +0x22,0xfc,0x3,0xff,0x89,0x1,0x79,0x5,0x3d,0x2,0xc7,0xf7, +0xb5,0xef,0xed,0xed,0x31,0xee,0xfc,0xed,0xd3,0xed,0xdf,0xef, +0x31,0xf8,0x8e,0x3,0x49,0xa,0x27,0xd,0xcd,0xd,0x7c,0xb, +0x63,0xa,0x1e,0xb,0xc0,0x8,0x68,0x2,0xfc,0xfc,0x1,0x0, +0x9d,0xa,0xd,0x13,0x21,0x18,0x10,0x1f,0x9a,0x26,0x16,0x2b, +0xd1,0x2a,0x59,0x26,0x77,0x21,0xb8,0x1e,0xd3,0x1b,0x41,0x16, +0x8d,0x10,0xdc,0xc,0x6,0xa,0x20,0xa,0xd0,0xc,0x3c,0xd, +0x63,0xc,0xe,0xb,0xa7,0x8,0x16,0xa,0x24,0xc,0xb8,0x6, +0x80,0xfd,0xae,0xf4,0x2a,0xec,0x24,0xe6,0x5d,0xe1,0xab,0xdd, +0x5,0xe0,0x9c,0xe7,0xee,0xee,0x84,0xf3,0x43,0xf4,0x49,0xf2, +0x6e,0xf2,0x7c,0xf4,0xd1,0xf2,0x19,0xf0,0x35,0xf1,0xb,0xf2, +0xf6,0xf2,0x6c,0xf7,0xc7,0xfa,0x23,0xfc,0x8f,0xfb,0x8d,0xf4, +0xc3,0xee,0x5c,0xf2,0x5,0xf7,0x89,0xf8,0xcc,0xfc,0x5f,0x4, +0xfb,0xb,0xa6,0x11,0x45,0x14,0x4a,0x14,0x78,0x11,0x49,0xb, +0xda,0x5,0x87,0x5,0x2e,0x6,0xe,0x4,0x94,0x4,0x63,0x9, +0xcb,0xc,0xff,0xc,0x3,0xc,0x9f,0xd,0xb1,0x13,0x4b,0x19, +0x4b,0x1b,0xca,0x1a,0xd0,0x18,0x75,0x18,0x8,0x18,0xc5,0x12, +0x7e,0xc,0x16,0x8,0xac,0x4,0xb9,0x6,0xc3,0xc,0xe4,0xe, +0x8d,0xf,0x61,0x12,0x84,0xf,0x6,0x3,0x8c,0xf5,0x92,0xeb, +0xc2,0xe0,0xb7,0xd6,0x1b,0xd4,0x53,0xd9,0x74,0xe1,0x96,0xe7, +0x7a,0xeb,0x86,0xf0,0xa8,0xf5,0x9a,0xf5,0x69,0xed,0x86,0xe1, +0x9b,0xdb,0x8e,0xdc,0xc1,0xde,0x7,0xe5,0x2c,0xf1,0xa1,0xfb, +0xe7,0xff,0x23,0xff,0x76,0xfb,0x57,0xf7,0xc7,0xf2,0xee,0xed, +0x59,0xee,0xfd,0xf9,0xb1,0xc,0xf1,0x1b,0x37,0x25,0x7d,0x29, +0x6a,0x24,0x21,0x16,0xd4,0x4,0xd9,0xf6,0x94,0xf2,0x69,0xf8, +0x7a,0x5,0xfc,0x17,0xa8,0x27,0xab,0x2f,0xbc,0x33,0xde,0x2f, +0x37,0x20,0xd9,0xc,0x66,0xfe,0x34,0xf9,0x42,0xfb,0xab,0xfe, +0x33,0x4,0xad,0x9,0x96,0x5,0xe7,0xf9,0x1c,0xf0,0x2e,0xe9, +0x48,0xe5,0xbb,0xe7,0x0,0xf0,0x4c,0xfe,0x84,0xe,0x87,0x12, +0x2e,0xd,0x4e,0xe,0x60,0xa,0xaf,0xf6,0x35,0xe8,0x48,0xe6, +0xc2,0xe7,0x84,0xef,0xb7,0xf6,0x32,0xf6,0xb7,0xf9,0xb7,0xff, +0x98,0xfd,0xaf,0xfb,0xa8,0x2,0x17,0xa,0x53,0x7,0x70,0x2, +0x7c,0x7,0x3e,0x6,0x88,0xf1,0x6d,0xe0,0xec,0xdf,0xf5,0xe0, +0x66,0xe2,0xea,0xec,0x1d,0xf9,0xc0,0x2,0xf6,0xe,0x14,0x14, +0x9d,0x9,0x3,0xfd,0x5b,0xf5,0xb2,0xee,0x8,0xef,0x21,0xf9, +0xce,0x5,0x74,0xe,0x6a,0x10,0xc9,0xf,0xb9,0xa,0xfe,0xfc, +0xde,0xf1,0x60,0xec,0x6,0xe6,0xb7,0xe9,0xe9,0xfa,0x2,0xb, +0x20,0x14,0xba,0x15,0xd1,0xf,0x78,0x5,0x8f,0xf5,0x6e,0xe4, +0xe3,0xdd,0xcb,0xe1,0xdd,0xe7,0x16,0xf2,0x10,0x2,0xe8,0xd, +0xe4,0x13,0x45,0x17,0xee,0x10,0xee,0x5,0xa0,0x0,0x7d,0xf9, +0xe1,0xf3,0x2,0xfa,0x4e,0xff,0x81,0xfc,0xe3,0xfb,0x98,0xff, +0x49,0x1,0xe3,0xfe,0xd0,0xfc,0x85,0xfb,0x0,0xf8,0xab,0xf8, +0xd1,0xfd,0x40,0xfd,0x9b,0xf9,0x80,0xf7,0x33,0xf2,0x9a,0xec, +0xd5,0xeb,0x77,0xea,0xc,0xe4,0xe3,0xde,0xb0,0xe0,0x6c,0xe4, +0x92,0xe6,0x79,0xea,0xb1,0xee,0x32,0xf1,0x67,0xf5,0xcd,0xf9, +0x37,0xf8,0x96,0xf2,0xce,0xee,0x65,0xe9,0x63,0xe0,0xd0,0xdc, +0xb2,0xdf,0x7a,0xe2,0x3a,0xe7,0xd0,0xed,0x78,0xf2,0x24,0xf9, +0xbe,0x0,0xb5,0x0,0x49,0xfb,0x13,0xf9,0x39,0xf9,0x35,0xf9, +0x7b,0xfd,0x75,0x4,0xb,0x7,0x5,0x8,0x5d,0xa,0xd,0x9, +0xce,0x5,0x7a,0x6,0x2b,0x8,0x7e,0x7,0x6b,0x9,0x21,0x11, +0x20,0x18,0xc8,0x1a,0xc5,0x1d,0xf8,0x1e,0xf0,0x17,0xa1,0xd, +0x80,0x7,0x1c,0x4,0x79,0x2,0xa8,0x4,0x18,0x8,0xdf,0xa, +0xd5,0xf,0x11,0x15,0x4,0x16,0x52,0x14,0xf4,0x11,0x51,0xe, +0xb7,0xa,0x1b,0x7,0x26,0x3,0xe2,0x2,0xc3,0x5,0x5d,0x4, +0x91,0x0,0x35,0x1,0x18,0x1,0x9b,0xfd,0xff,0xfd,0xbb,0xff, +0x31,0xfe,0x6a,0xfe,0x73,0x0,0x3d,0x0,0xec,0xfd,0xbf,0xfb, +0xc8,0xfc,0xba,0xfd,0xe4,0xfa,0xe2,0xf9,0xb5,0xfa,0xea,0xf8, +0x73,0xf9,0xd3,0xfe,0xb5,0x2,0x17,0x2,0x83,0x4,0xa0,0xf, +0xd3,0x17,0x30,0x16,0x63,0x16,0xbf,0x18,0xfe,0x14,0x3a,0x11, +0x34,0x10,0xb4,0xc,0x7a,0xc,0x9c,0x14,0x53,0x1a,0x5e,0x16, +0x21,0x13,0xe5,0x14,0xac,0x11,0xaa,0xc,0xde,0xf,0x30,0x13, +0xc9,0x11,0x53,0x17,0x6d,0x21,0xd3,0x1f,0x4b,0x16,0x19,0x11, +0xf,0x9,0x50,0xfc,0xb4,0xf7,0x83,0xf6,0x5f,0xf3,0xe1,0xfb, +0xde,0x9,0x39,0xa,0x48,0x6,0x93,0x7,0x48,0x1,0x30,0xf7, +0x1f,0xfa,0x9e,0xfe,0x80,0xf6,0x1,0xf3,0x5b,0xfc,0x49,0xff, +0x46,0xf8,0xd6,0xf5,0xae,0xf5,0x6e,0xef,0xce,0xef,0xaf,0xfc, +0xa7,0xfe,0xe0,0xf7,0x3d,0x6,0xf6,0x15,0x91,0x9,0x75,0xfe, +0x1a,0x3,0xf8,0xff,0x95,0xfb,0xd6,0x0,0xab,0xff,0x7d,0xf9, +0x17,0x0,0xb,0xd,0x22,0xc,0x23,0x1,0x56,0xff,0x9e,0x6, +0xe,0xd,0xd3,0xf,0x60,0xb,0xc5,0x3,0x75,0x1,0xf5,0x1, +0x3b,0x2,0xb,0xfe,0x49,0xf3,0xf5,0xf2,0xab,0x1,0xe9,0x6, +0x39,0xff,0xfd,0xfe,0x21,0x3,0x47,0xff,0xee,0xfa,0xf6,0xf6, +0x1c,0xec,0xf6,0xe7,0x21,0xf1,0xdf,0xf4,0x7e,0xf0,0x31,0xf0, +0x8,0xf1,0xb0,0xee,0x24,0xeb,0xf9,0xe6,0xd0,0xe6,0xd,0xeb, +0xc,0xed,0xf,0xf0,0xbc,0xf6,0xab,0xf6,0xb7,0xf1,0x7f,0xf4, +0xe7,0xf6,0x5c,0xef,0x5e,0xea,0xf9,0xed,0x56,0xf2,0x2e,0xf6, +0xc3,0xfc,0xd,0x5,0x65,0x5,0x52,0xfa,0xc6,0xf5,0xff,0xfc, +0x9e,0xfd,0xa3,0xf7,0x63,0xf6,0x4a,0xf5,0x2a,0xf5,0xd7,0xff, +0x9c,0xb,0xed,0x7,0xe4,0xff,0xc4,0xff,0x6f,0xf6,0x9c,0xe7, +0x18,0xf0,0x52,0x0,0x2d,0x0,0xef,0x3,0xa2,0xc,0xb6,0x6, +0x72,0x2,0x50,0x4,0xae,0xf7,0xfa,0xeb,0xc9,0xee,0xc8,0xea, +0x9d,0xe5,0x4d,0xee,0xec,0xf2,0xb9,0xf5,0x13,0x3,0x26,0x3, +0xe2,0xf3,0xd3,0xee,0x32,0xeb,0x72,0xe2,0xd3,0xe6,0xa3,0xef, +0xe7,0xef,0x8f,0xf6,0x40,0x0,0x55,0xfb,0x98,0xf6,0x77,0xff, +0x82,0x1,0x32,0xf4,0xf8,0xe9,0x3d,0xec,0xff,0xf5,0x8e,0x1, +0x8b,0xd,0xb1,0x16,0xca,0x12,0x64,0x8,0xb6,0x5,0x26,0xfc, +0x28,0xeb,0xc3,0xef,0xb4,0xfc,0xa6,0xf7,0x79,0xf8,0xbe,0x8, +0x30,0xe,0x52,0xd,0x7e,0x13,0xd7,0xc,0x3a,0xf7,0x40,0xf3, +0x3,0x2,0x53,0x3,0xaf,0xfa,0x3d,0x1,0xcc,0xb,0x9,0xa, +0x52,0x8,0x32,0xa,0xd3,0x4,0x44,0xfe,0x75,0x1,0x70,0x7, +0xcf,0x7,0x2,0xa,0xcf,0xe,0x48,0x8,0x90,0xfe,0xe1,0x3, +0x36,0x9,0x3e,0x2,0xdd,0xff,0x1f,0x3,0xbd,0x1,0x13,0x4, +0x85,0xb,0x8c,0xc,0xad,0x8,0x70,0x8,0xba,0x9,0x24,0x5, +0xb6,0xfe,0x1,0x1,0x9e,0x6,0x1,0x6,0xda,0x6,0x88,0x9, +0x1f,0x1,0xa3,0xf9,0xc1,0x3,0x5f,0x9,0x2a,0xfe,0xa5,0xfc, +0xf9,0x6,0xa8,0x8,0x43,0x7,0xe8,0x7,0xea,0x3,0xe,0x4, +0x3b,0xd,0xd3,0x12,0x91,0xd,0x35,0x5,0x1f,0x6,0x9e,0xe, +0xa3,0x12,0x37,0x11,0xa8,0xd,0x5e,0x6,0xf9,0x0,0x18,0x5, +0x36,0xc,0xb1,0xd,0x3a,0xd,0x51,0xa,0xbd,0x2,0x75,0x2, +0x6f,0x7,0x11,0x6,0x70,0x9,0x4e,0xf,0xaa,0x9,0xc8,0x5, +0x9b,0x4,0xc4,0xfe,0x5f,0x5,0xf2,0xd,0x88,0x3,0xa1,0xfc, +0x68,0x2,0xff,0x3,0xb6,0x7,0x94,0xe,0x63,0x8,0x41,0x1, +0xeb,0xb,0xbe,0x13,0x63,0x9,0x7f,0x6,0x46,0x12,0x6c,0x15, +0xa4,0xf,0xd7,0xa,0x75,0x5,0x4,0x1,0x21,0xfb,0x22,0xf6, +0x41,0xfb,0x6d,0x1,0xd9,0x3,0x69,0x7,0x7f,0x0,0xf3,0xfa, +0xa3,0xe,0x89,0x16,0x34,0xfa,0xc4,0xef,0x66,0xff,0x6a,0xf4, +0x95,0xe3,0x9a,0xf0,0x6b,0xf5,0xa8,0xee,0x38,0xfc,0x18,0x1, +0x12,0xf4,0x4f,0xfc,0xfe,0xa,0xc9,0x3,0x78,0xf9,0xf8,0xf5, +0x81,0xf7,0x71,0xff,0xf,0xff,0xcc,0xfb,0x9,0x5,0xae,0x1, +0xd,0xf1,0xa7,0xf8,0xce,0x0,0x7f,0xeb,0xd8,0xe6,0x17,0xfb, +0xb5,0xf9,0x38,0xf6,0xdb,0x9,0xd7,0xd,0x7f,0xfe,0x94,0xfc, +0x2,0xff,0x47,0xf6,0xdd,0xeb,0x96,0xe9,0xc7,0xf0,0x97,0xf5, +0x7d,0xf4,0x75,0xfc,0x87,0x5,0xa1,0xff,0x17,0xfb,0xfd,0xff, +0x77,0xfc,0x61,0xf3,0x6,0xf7,0xc7,0xff,0xb3,0xfb,0x12,0xf5, +0x2e,0xfa,0xce,0xf9,0x40,0xec,0xc8,0xe8,0x7b,0xef,0x86,0xec, +0x5c,0xe8,0x53,0xf0,0xe7,0xf8,0x25,0xf8,0x96,0xf5,0xe8,0xf8, +0xc9,0xfc,0x16,0xf8,0xca,0xef,0xf5,0xef,0x6c,0xf2,0x2,0xec, +0x5a,0xea,0x6f,0xf5,0x33,0xf9,0xa2,0xf6,0x4d,0xff,0xf5,0x3, +0xba,0xfb,0x39,0xfd,0x4b,0x6,0x30,0x3,0x7,0xfc,0x48,0xfc, +0x75,0xfd,0xeb,0xfb,0x8e,0xf9,0x82,0xf7,0xf5,0xf7,0xcb,0xf7, +0xe4,0xf5,0xcf,0xfa,0x81,0x1,0x1a,0xfe,0xde,0xfc,0x47,0x4, +0x14,0x3,0x7d,0xfc,0x7b,0xff,0x7b,0xff,0x63,0xf3,0xb7,0xed, +0x13,0xf3,0x12,0xf2,0x19,0xf0,0x85,0xfb,0x27,0x4,0xa3,0x1, +0xa7,0x2,0xdd,0x1,0xd7,0xf9,0x43,0xf6,0x3c,0xf3,0xe6,0xec, +0xb0,0xea,0x39,0xeb,0x60,0xf0,0x77,0xf8,0xdb,0xf7,0xf9,0xf6, +0xb0,0xfd,0x62,0xfb,0xf5,0xf1,0xd0,0xf5,0x89,0xfd,0xa0,0xf8, +0xed,0xf7,0x14,0x4,0x2f,0x7,0x40,0x1,0xd1,0x3,0xc6,0x5, +0xb8,0xfe,0x94,0xfb,0x55,0xff,0xa4,0x0,0xdb,0xff,0x79,0x6, +0xd1,0x12,0x6a,0x16,0x2f,0x12,0xfe,0x12,0xdd,0x13,0x70,0xc, +0xe4,0x6,0x67,0x9,0x6f,0x8,0x72,0x1,0x9b,0x0,0x64,0x4, +0x9f,0x4,0xe8,0x6,0x9b,0xb,0x75,0xb,0xfa,0x9,0x8b,0xb, +0xf6,0xc,0x35,0xb,0xa4,0x9,0x32,0xd,0xba,0xd,0x35,0x5, +0xc8,0x0,0x84,0x4,0xb4,0x5,0x56,0x3,0xd7,0x0,0x30,0xfe, +0x5b,0xfc,0x6d,0xfc,0xa,0xfe,0xd2,0xfd,0x4b,0xfd,0xa9,0x1, +0x58,0x4,0xdd,0x0,0x2e,0xff,0xb1,0xfe,0x72,0xf8,0x7,0xef, +0xa3,0xeb,0x44,0xf1,0x7f,0xf4,0x7d,0xf2,0x85,0xf9,0xf1,0x4, +0xac,0x7,0x4c,0xa,0x54,0xd,0xc8,0x6,0x18,0x1,0x86,0x4, +0x62,0x6,0x4,0x4,0x1f,0x6,0xf3,0xb,0xfe,0xb,0x6,0x7, +0x56,0x5,0x68,0x3,0x8b,0xfd,0x82,0xfc,0xbd,0x1,0x93,0x6, +0x1,0xc,0xb3,0x12,0xe4,0x15,0xdf,0x14,0x18,0x13,0xcf,0xf, +0x8f,0x7,0x37,0xff,0x98,0xfd,0xeb,0xfd,0xcc,0xfb,0xf,0xfc, +0xa8,0xff,0x41,0x2,0x1b,0x4,0xd9,0x5,0x4f,0x3,0x6c,0xff, +0x13,0x1,0x7e,0x1,0x35,0xff,0xd1,0x3,0x17,0x4,0xc2,0xf8, +0x86,0xf4,0x12,0xf5,0xbc,0xed,0x44,0xeb,0xf4,0xee,0x46,0xee, +0x54,0xf3,0xb9,0xff,0x91,0x4,0x7,0x5,0x7a,0x8,0x66,0x6, +0xeb,0xff,0xa3,0xfd,0xd8,0xf8,0xfc,0xf2,0xb1,0xf6,0xde,0xfb, +0xa8,0xff,0x6f,0x6,0xbf,0x5,0xa6,0x3,0x7,0x9,0x82,0x6, +0xf2,0x2,0x8a,0xa,0xa2,0xb,0xcd,0x8,0xc9,0xe,0x4a,0xf, +0xaf,0x7,0x0,0x3,0x5d,0xff,0xfb,0xfb,0x20,0xfa,0x51,0xf8, +0xa,0xf9,0xec,0xfc,0x91,0x2,0x8f,0xa,0xd5,0x10,0xe7,0xf, +0x44,0xd,0xb,0xe,0x10,0x9,0xb4,0xff,0x9e,0xff,0x81,0xff, +0x73,0xf5,0x67,0xf1,0xf8,0xf7,0x44,0xfe,0x5c,0x3,0xb1,0x5, +0xa8,0x4,0xdb,0x8,0xaf,0xf,0x34,0xd,0xcf,0x6,0x4e,0x8, +0xd8,0x8,0x2,0x1,0x23,0xff,0xf4,0x2,0xd3,0xfc,0x46,0xf7, +0xfb,0xfd,0xcc,0x1,0x5f,0x0,0xcf,0x5,0x5c,0xa,0x8,0x8, +0xdc,0x8,0x79,0xa,0x14,0x8,0x84,0x9,0x6f,0xb,0xf4,0x9, +0xbe,0xd,0xbf,0xd,0x35,0x3,0x5a,0x1,0xc5,0x2,0x7c,0xf4, +0xcf,0xeb,0x3d,0xf4,0x55,0xf4,0xa8,0xf0,0xc3,0x0,0x30,0x12, +0x81,0xe,0x2b,0x9,0x7a,0xe,0xbd,0x7,0x95,0xf3,0xae,0xec, +0xbd,0xec,0x35,0xe1,0x1b,0xdf,0x92,0xef,0x7d,0xf6,0x20,0xf6, +0xa,0x4,0x21,0xe,0xe0,0x4,0x7,0xff,0x33,0x3,0x94,0xfd, +0x57,0xf4,0x46,0xfb,0x9b,0x4,0x7f,0xff,0x4d,0xfa,0x3a,0xf7, +0xe5,0xe5,0x37,0xd3,0x4e,0xd1,0xa3,0xd1,0x49,0xce,0xe6,0xd8, +0x9a,0xed,0x4c,0xfa,0x9f,0x3,0x58,0xd,0x53,0xa,0xfc,0xfd, +0xea,0xf3,0x28,0xe8,0x9f,0xde,0xed,0xdd,0x49,0xdd,0xa7,0xde, +0xd2,0xe6,0xea,0xe9,0x9f,0xea,0x54,0xf2,0xa,0xf5,0x3f,0xf3, +0x52,0xfc,0x9e,0x5,0x46,0x3,0x26,0x3,0x8c,0x6,0x3f,0x0, +0x14,0xf7,0xfb,0xf2,0x74,0xeb,0x4a,0xe3,0xdb,0xe6,0xe9,0xf0, +0x62,0xf5,0x3b,0xf8,0x80,0x0,0x89,0x6,0x2f,0x6,0x0,0x9, +0xd4,0xe,0x7d,0xf,0xa9,0xe,0xde,0x10,0x8,0x11,0x92,0xb, +0x4f,0x4,0x5b,0xff,0xbb,0xfa,0x87,0xf7,0xea,0xfb,0x48,0x4, +0x1e,0xa,0x35,0x11,0x52,0x1b,0x50,0x21,0x21,0x1f,0xe8,0x19, +0xaa,0x14,0xb2,0xb,0x88,0x3,0x74,0x2,0xdc,0x0,0x7a,0xfc, +0x29,0xfd,0x23,0x0,0x32,0xff,0x80,0xfc,0xb4,0xfb,0x67,0xfd, +0x86,0xfe,0xf5,0xfe,0xff,0x3,0xd5,0x9,0xf,0x7,0x0,0x1, +0x5b,0xff,0x2,0xf9,0x79,0xeb,0x16,0xe4,0x81,0xe1,0x3,0xdd, +0x69,0xe0,0xb8,0xea,0x87,0xef,0x58,0xf4,0xa3,0xff,0xf3,0x6, +0x45,0x3,0xdd,0xfc,0xa2,0xfc,0xe5,0xfc,0xf1,0xf6,0xa1,0xf2, +0x3f,0xf4,0x8,0xf5,0x18,0xf5,0x90,0xf9,0x7b,0x0,0xc9,0x5, +0xa6,0x9,0x17,0xc,0x85,0xd,0x97,0x11,0x5b,0x15,0xe6,0x13, +0x10,0x13,0x77,0x13,0x61,0x10,0xe2,0x10,0xba,0x14,0x4b,0x12, +0x81,0xe,0xc7,0xe,0x93,0xf,0x9f,0x11,0x52,0x14,0x79,0x16, +0x1b,0x1a,0x14,0x1c,0xb4,0x1c,0x1b,0x1f,0xdd,0x1b,0x57,0x12, +0x3d,0xc,0x60,0x6,0x94,0xfd,0x9d,0xfa,0x14,0xfc,0x4a,0xfc, +0xd7,0xff,0xad,0x4,0x2b,0x5,0xde,0x5,0x27,0x6,0x2,0x1, +0x9b,0xfc,0x34,0xfb,0x76,0xf5,0xb6,0xef,0x15,0xf2,0x72,0xf4, +0x22,0xf0,0xca,0xec,0x2,0xed,0xe1,0xeb,0x96,0xea,0x3b,0xec, +0x6f,0xef,0x3d,0xf2,0x54,0xf6,0x22,0xfd,0xf5,0x0,0x95,0xfe, +0x3a,0xfc,0xa2,0xfb,0x68,0xf9,0x9d,0xf6,0xef,0xf4,0x5e,0xf5, +0x66,0xf8,0x26,0xfc,0x55,0x0,0xda,0x4,0x1b,0x8,0xe5,0x9, +0x15,0xa,0x9d,0x9,0x34,0xa,0x57,0xb,0xe5,0xc,0x26,0xe, +0x1a,0xd,0x78,0xb,0xa7,0xb,0x2a,0xb,0x2b,0x8,0xd0,0x6, +0x1e,0x8,0x49,0x7,0x10,0x7,0x9c,0xa,0xc9,0xb,0xf8,0xb, +0xf2,0xe,0xe1,0xd,0x5,0x9,0x40,0x6,0x54,0x3,0x73,0xfe, +0xe4,0xf8,0xb7,0xf5,0x62,0xf6,0x79,0xf5,0x7d,0xf4,0x83,0xf8, +0x1e,0xfb,0x43,0xfb,0xfa,0xfd,0x3,0xfe,0x48,0xfb,0x9f,0xfc, +0x2d,0xfd,0x7d,0xf8,0x37,0xf5,0x27,0xf5,0xd2,0xf4,0x72,0xf6, +0xfc,0xf8,0xc8,0xf7,0x9b,0xf7,0x7b,0xfa,0x54,0xfa,0xd0,0xfa, +0xfb,0xfe,0x27,0x0,0xd2,0x0,0x4c,0x4,0xed,0x3,0xa4,0x1, +0x94,0x2,0x50,0x2,0x6d,0x0,0x51,0xff,0xd,0xfd,0xc9,0xfc, +0xb4,0x0,0xe6,0x3,0x9f,0x6,0x1f,0xa,0x93,0xa,0xf6,0x9, +0xd4,0xa,0xdd,0x8,0xaf,0x4,0xf5,0x2,0xf,0x2,0x3e,0xff, +0x90,0xfd,0xbf,0xff,0x26,0x1,0x54,0xff,0x68,0x0,0x51,0x3, +0x9d,0x0,0xd3,0xfc,0x69,0xfd,0xbb,0xfb,0x61,0xf7,0x33,0xf9, +0x5d,0xfd,0xba,0xfa,0x8b,0xf7,0xc3,0xf8,0x4c,0xf7,0x23,0xf4, +0x60,0xf3,0xe1,0xf0,0xd0,0xee,0xc3,0xf1,0xa6,0xf5,0xc7,0xf7, +0x64,0xf9,0x57,0xfb,0x4c,0xfd,0x51,0xfd,0x55,0xfb,0x98,0xf7, +0x50,0xf3,0xea,0xf3,0xd8,0xf8,0x5e,0xfb,0x15,0xfc,0xa4,0xff, +0x6,0x4,0xa5,0x4,0xe2,0x4,0xc4,0x7,0xfd,0x6,0x3b,0x4, +0x92,0x6,0xe7,0x7,0x12,0x6,0x4f,0x7,0x27,0x9,0x19,0xa, +0xf8,0xa,0x5c,0x8,0xa4,0x5,0xa4,0x6,0xb1,0x7,0xbd,0x7, +0x1,0x7,0x45,0x4,0x71,0x2,0xa3,0x4,0x71,0x6,0xba,0x2, +0x7f,0xff,0x6d,0x1,0xaa,0x1,0xe3,0xff,0x4,0x0,0xdc,0xfd, +0x81,0xfb,0x1a,0xfd,0x45,0xfc,0xdb,0xf8,0x9d,0xf9,0x94,0xfb, +0xe,0xfa,0x3b,0xf9,0xd3,0xfb,0x15,0xfc,0x5b,0xf8,0xef,0xf6, +0x17,0xf7,0x7,0xf5,0xfc,0xf5,0xe5,0xfa,0x59,0xfc,0x74,0xfb, +0xa9,0xfd,0xbf,0xff,0xf4,0xfe,0x87,0xfe,0xd8,0xfd,0x6e,0xfb, +0x7a,0xfb,0x25,0xfe,0xc9,0xff,0xe8,0x2,0xbe,0x7,0x6d,0x8, +0x83,0x6,0xa3,0x6,0xd1,0x5,0x46,0x4,0x47,0x6,0x8b,0x7, +0xcc,0x4,0x7f,0x3,0xa9,0x4,0xa7,0x5,0x2b,0x7,0xf7,0x6, +0x12,0x4,0x15,0x4,0x2a,0x7,0x1,0x8,0x5f,0x8,0x68,0xa, +0x60,0x9,0xfc,0x6,0xbb,0x8,0xb7,0x8,0x2b,0x4,0x19,0x3, +0x1,0x4,0x85,0x1,0x75,0x0,0x63,0x2,0xf1,0x2,0x52,0x2, +0x18,0x3,0x40,0x4,0x2f,0x2,0x91,0xfe,0xb9,0xfd,0x7d,0xfc, +0x3c,0xf9,0xdb,0xf8,0x30,0xfa,0x46,0xf9,0x39,0xf9,0x38,0xfc, +0x4c,0xfd,0x4b,0xfb,0x27,0xfb,0xd8,0xfa,0xcc,0xf8,0x65,0xfb, +0xff,0xfe,0xa0,0xfd,0xb6,0xfd,0x73,0xff,0xd2,0xfe,0x90,0xff, +0x28,0x0,0x41,0xfe,0x44,0xfe,0x2e,0xff,0x16,0xfe,0xcf,0xfe, +0x59,0x3,0xd5,0x6,0x75,0x6,0x93,0x5,0x73,0x4,0xbf,0x1, +0x44,0x1,0xd8,0x2,0x15,0x3,0xf6,0x3,0xd5,0x5,0x7,0x6, +0x58,0x5,0x3b,0x5,0xc2,0x4,0xdc,0x2,0xd9,0x0,0xdf,0x0, +0xcd,0x2,0x0,0x5,0x2b,0x5,0xee,0x2,0x52,0x1,0x25,0x1, +0x6f,0x0,0x5f,0xff,0x7e,0xff,0xae,0x0,0xd6,0x0,0xfe,0xfe, +0xc5,0xfc,0x26,0xfb,0xe8,0xf9,0xec,0xf8,0x79,0xf8,0x7a,0xf9, +0x42,0xfb,0xdd,0xfb,0x9d,0xfb,0xc3,0xfb,0x3d,0xfc,0x5f,0xfd, +0xfe,0xfe,0xe4,0xfe,0xb,0xfd,0x34,0xfb,0x10,0xf9,0xf0,0xf7, +0xbe,0xf8,0xdd,0xf9,0xe,0xfb,0x64,0xf4,0xb6,0xe0,0xa1,0xd1, +0x58,0xd0,0x31,0xd2,0x83,0xda,0x93,0xea,0x24,0xf2,0x78,0xf0, +0xb6,0xee,0x44,0xe9,0x14,0xe0,0x5c,0xdc,0xa2,0xdf,0xe8,0xe3, +0xd,0xe8,0x11,0xec,0xa9,0xeb,0x4f,0xe8,0x70,0xe6,0xda,0xe4, +0x78,0xe2,0xe0,0xde,0xad,0xde,0x97,0xe9,0xda,0xf8,0xe4,0x4, +0x35,0x10,0xb0,0x12,0x73,0x7,0x95,0xfb,0xb8,0xf3,0xb3,0xeb, +0xcd,0xe8,0x3a,0xef,0x97,0xf9,0x6d,0x3,0x1d,0xc,0xa,0xf, +0x4b,0x9,0x2a,0x1,0x87,0xfa,0x34,0xf6,0x3a,0xf9,0x99,0x2, +0x76,0xc,0xbe,0x14,0x1c,0x17,0x75,0x10,0x3,0x5,0x6d,0xf9, +0xaf,0xf0,0x12,0xee,0x2c,0xf2,0x51,0xf9,0x50,0x0,0xe5,0x6, +0xaa,0xa,0xe4,0x9,0xe,0x7,0x9e,0x1,0x33,0xf9,0xf0,0xf1, +0xad,0xed,0x77,0xee,0xc3,0xf5,0x17,0xfd,0x53,0xff,0x31,0xfe, +0x74,0xfa,0x62,0xf5,0x41,0xf3,0xc0,0xf5,0xe,0xfb,0x94,0x1, +0x1,0x8,0xd2,0xb,0x16,0xb,0xba,0x6,0xf0,0x0,0x24,0xfb, +0x11,0xf8,0x52,0xfa,0xa0,0xfe,0x49,0x1,0xdd,0x4,0x57,0xa, +0x1d,0xf,0xae,0x11,0xfd,0xf,0x52,0xb,0x87,0x8,0xb3,0x8, +0x1b,0xc,0x5f,0x13,0x17,0x1b,0x76,0x1e,0x8a,0x1b,0xee,0x15, +0xd4,0x11,0xd7,0xe,0xfe,0xe,0x14,0x14,0xb4,0x19,0x3a,0x1e, +0xe2,0x22,0x59,0x26,0xba,0x27,0x2c,0x26,0xde,0x21,0xfe,0x1c, +0x5,0x18,0x57,0x13,0xc6,0x10,0x24,0x12,0x42,0x17,0xa5,0x1b, +0x83,0x1b,0xd1,0x16,0xab,0xf,0xad,0xb,0xdd,0xd,0xab,0x12, +0x5f,0x16,0x9d,0x16,0x29,0x14,0xbf,0x12,0xb2,0x10,0xd8,0x9, +0x5d,0x1,0xc8,0xfe,0xcf,0x3,0xe3,0x9,0x8e,0xb,0x3c,0x9, +0xe4,0x6,0x9e,0xb,0xbd,0x15,0xb8,0x16,0x81,0xb,0xd0,0x1, +0x3,0x2,0x6,0xb,0xc4,0x17,0x2c,0x1e,0x83,0x19,0xf0,0x12, +0x56,0x12,0xd2,0x11,0xdc,0xa,0x56,0x1,0x81,0xfc,0xf0,0xff, +0x23,0x8,0x42,0xe,0x4d,0x12,0x7f,0x16,0x36,0x19,0xa7,0x1a, +0x71,0x17,0xe2,0x9,0xfc,0xfa,0x3c,0xf8,0x5f,0xff,0xec,0x6, +0x0,0x9,0x24,0x4,0x7b,0xfe,0xde,0xff,0xa9,0x6,0xcd,0x9, +0x2c,0x4,0xda,0xfa,0xb7,0xf7,0xc5,0xfd,0x8d,0x4,0xde,0x2, +0xc2,0xfb,0x9a,0xf8,0xaf,0xfa,0x98,0xfc,0xcc,0xfb,0xdb,0xf8, +0xcc,0xf4,0xd0,0xf3,0x36,0xfa,0xe1,0x2,0x4b,0x4,0x25,0xff, +0x74,0xfb,0xcf,0xfb,0xd3,0xfc,0x95,0xfb,0xe1,0xf7,0x12,0xf4, +0x77,0xf3,0x7a,0xf5,0xa1,0xf4,0xa7,0xed,0x89,0xe5,0x44,0xe7, +0xf4,0xf5,0xce,0x2,0xdd,0xff,0x33,0xf4,0x99,0xee,0x3b,0xf2, +0x22,0xf6,0x79,0xf2,0xfa,0xec,0x84,0xed,0xa4,0xef,0xb5,0xed, +0xc5,0xe8,0x6f,0xe4,0x2e,0xe6,0x6c,0xed,0xd7,0xf0,0x8,0xed, +0x39,0xe9,0x5,0xec,0x5f,0xf3,0xaa,0xf8,0x15,0xfa,0x94,0xf7, +0xbb,0xec,0xb3,0xdb,0x30,0xd1,0xbc,0xd2,0x42,0xda,0xc7,0xe3, +0x13,0xee,0xaa,0xf4,0xf8,0xf4,0x1f,0xf2,0x50,0xf0,0x3a,0xf0, +0xb9,0xed,0x72,0xe5,0x36,0xdd,0x4c,0xde,0x2a,0xe7,0xef,0xee, +0xe0,0xf3,0x6e,0xf9,0x45,0xfd,0x33,0xf8,0xf9,0xe9,0x32,0xdf, +0xd5,0xe1,0x1a,0xeb,0x58,0xf1,0x83,0xf4,0xe5,0xf7,0x97,0xfc, +0xfb,0xfe,0x94,0xfb,0x97,0xf7,0x5e,0xf7,0xb6,0xf5,0x39,0xf0, +0xb1,0xed,0xea,0xf1,0x13,0xf8,0x8,0xfe,0x3f,0x6,0x26,0xb, +0xbb,0x4,0xa4,0xf8,0x88,0xf3,0x14,0xf7,0x9d,0xf9,0x71,0xf7, +0x16,0xf7,0xc3,0xfa,0x57,0xff,0x6d,0x2,0xe3,0x0,0xc8,0xfc, +0x1d,0xfc,0xab,0xfe,0x1f,0x0,0xf2,0xfb,0xd7,0xf4,0xaa,0xf6, +0x24,0x0,0x57,0x2,0xdd,0xfb,0x23,0xf7,0x37,0xf9,0x3d,0xff, +0xc7,0x2,0xe0,0x3,0x1c,0x7,0x4a,0x8,0x71,0x3,0xb6,0xff, +0x57,0x0,0x66,0x0,0xa6,0x1,0x3c,0x7,0x34,0xa,0x21,0x5, +0x97,0xfb,0x20,0xf3,0x67,0xf0,0xf,0xf2,0xdb,0xf1,0xa6,0xf1, +0x36,0xf5,0x23,0xf9,0xff,0xff,0x5c,0xd,0x45,0x15,0xe2,0xe, +0x48,0x4,0x5e,0xfe,0x6e,0xfa,0x91,0xf5,0x34,0xf3,0xa1,0xfa, +0xc7,0xa,0x92,0x15,0x6f,0x14,0xe1,0x10,0xb0,0x10,0xe1,0xe, +0x69,0x9,0x6d,0x6,0x95,0x9,0xdd,0xc,0x54,0xc,0x46,0xf, +0xf3,0x18,0x3e,0x1d,0x12,0x14,0x6c,0x9,0x33,0x7,0xad,0x3, +0x3f,0xf9,0x0,0xf4,0x68,0xfc,0xb6,0xa,0x73,0x11,0xc8,0xe, +0x5e,0xd,0xb0,0xf,0xd,0xd,0xf8,0x3,0xef,0xfc,0x13,0xfd, +0x6a,0xfd,0xe8,0xf7,0x61,0xf6,0xb4,0xff,0x36,0x9,0x34,0x9, +0x1d,0x3,0x28,0x2,0x31,0x9,0x1f,0xa,0x19,0x0,0xde,0xfa, +0x14,0xff,0xc7,0xff,0xd0,0xf9,0x97,0xf7,0x1a,0xfd,0xfd,0x2, +0xb7,0x4,0xca,0x4,0xef,0x3,0xef,0x0,0x6f,0xfd,0x77,0xfc, +0xe0,0xfd,0xc0,0xfe,0xe1,0xfe,0x19,0xff,0xbd,0xfe,0x5d,0xff, +0xb5,0x0,0xc6,0xfe,0xa7,0xf9,0x5e,0xf4,0xf0,0xf0,0x8c,0xf0, +0x15,0xf3,0xc,0xfa,0xa1,0x4,0x48,0xc,0xd7,0xf,0x7d,0x12, +0x26,0x12,0x2d,0xd,0x44,0x5,0x68,0xfe,0xe6,0xfe,0x4f,0x4, +0xe0,0x6,0x53,0x9,0x87,0xf,0xbd,0x15,0x8,0x19,0x5c,0x16, +0xcc,0xd,0xb0,0x6,0x94,0x1,0xc9,0xfb,0xab,0xfc,0xdd,0x4, +0x26,0x9,0x33,0x8,0xe7,0x8,0x25,0xa,0x42,0x5,0x8a,0xf7, +0xbc,0xe6,0x65,0xdc,0x51,0xda,0xf1,0xdb,0x46,0xe1,0xae,0xea, +0xf8,0xf2,0xfc,0xf7,0x10,0xfa,0xc6,0xf5,0x1c,0xec,0x63,0xe3, +0x8d,0xdf,0x8a,0xe2,0xb7,0xe8,0xa3,0xec,0x90,0xf1,0xfc,0xf9, +0xbc,0x1,0xc4,0x5,0x29,0x4,0xd8,0xff,0x1,0xff,0x4a,0xff, +0x12,0xfe,0x3e,0x1,0x39,0xb,0x3a,0x15,0x6b,0x17,0x61,0x12, +0xa0,0xd,0xc5,0xc,0x6b,0xd,0x7,0xc,0x7d,0x9,0xf5,0xa, +0x6e,0xe,0xbb,0xd,0xbf,0xb,0x25,0xd,0x83,0x10,0x9c,0x12, +0xb2,0x11,0xd7,0x10,0x64,0x12,0xf5,0x11,0x57,0xe,0xdf,0xb, +0x4f,0xa,0x7e,0x5,0xbb,0xfd,0xb1,0xf9,0xd9,0xfe,0xcb,0x9, +0x45,0x12,0xd6,0x15,0xa,0x18,0x12,0x17,0x4c,0xe,0xaa,0x2, +0xa8,0xf9,0x96,0xf1,0x77,0xed,0x7d,0xf0,0xd,0xf5,0x9,0xf8, +0x62,0xfa,0x0,0xfa,0x92,0xf6,0x41,0xf1,0x7,0xe8,0xdd,0xdb, +0x3f,0xd4,0xee,0xd6,0xf9,0xe0,0x19,0xeb,0x2c,0xf2,0xa4,0xf6, +0x50,0xf7,0xe9,0xf3,0x34,0xef,0x47,0xea,0x4b,0xe6,0xe1,0xe7, +0xae,0xef,0x7c,0xf7,0x13,0xfc,0xc,0x2,0x80,0xc,0x6e,0x14, +0x74,0x12,0xfb,0xa,0x71,0x6,0x93,0x7,0xac,0xc,0x4b,0x11, +0x1e,0x13,0x7a,0x15,0xb9,0x19,0xce,0x1a,0x38,0x16,0x60,0x11, +0xb4,0xf,0x9,0xe,0x2c,0xc,0x47,0xc,0x0,0xd,0x5d,0xe, +0xf,0x11,0xd3,0x12,0xa0,0x11,0xa9,0xc,0x8,0x7,0xc2,0x5, +0x4b,0x6,0x91,0x4,0xc8,0x3,0x13,0x5,0x97,0x3,0x10,0xfe, +0xc2,0xf8,0x95,0xf6,0xd0,0xf6,0xda,0xf6,0xf2,0xf4,0xf7,0xf4, +0x52,0xf9,0xc3,0xf9,0xd9,0xf3,0x41,0xf1,0xfe,0xf1,0x8a,0xef, +0xc4,0xeb,0x8f,0xe8,0xca,0xe7,0x2,0xed,0x10,0xf2,0x1e,0xf2, +0xd8,0xf4,0xbb,0xfb,0x5d,0xfe,0xa6,0xfb,0x5c,0xf8,0xe2,0xf6, +0x5b,0xf8,0x1b,0xfb,0x9b,0xfb,0xf,0xfa,0x6b,0xf8,0x6c,0xf8, +0x6e,0xfc,0x36,0x2,0x10,0x4,0xe,0x2,0x8c,0x0,0xec,0x1, +0xc9,0x5,0xa0,0x7,0xbe,0x4,0x1a,0x4,0xcd,0x9,0xf6,0xd, +0xcf,0xc,0xaa,0xb,0xdc,0xc,0xd1,0xf,0x80,0x12,0x39,0x10, +0xd0,0x9,0x2,0x5,0x89,0x2,0xcd,0xff,0x5b,0xfd,0x30,0xfd, +0x5f,0xfe,0xa,0x1,0x8a,0x7,0x4b,0xd,0xe7,0xc,0x87,0xa, +0xba,0x7,0xdb,0x0,0x6c,0xf8,0xf1,0xf2,0x51,0xf1,0xef,0xf1, +0x1c,0xf4,0xe3,0xfa,0xea,0x2,0xa3,0x3,0x4a,0x0,0xdc,0x0, +0xd7,0x4,0x21,0x9,0x5f,0xc,0x4e,0xf,0xe8,0x13,0xeb,0x18, +0xcd,0x1a,0xc,0x18,0xc5,0x12,0xa,0xe,0xdb,0xa,0x80,0x8, +0xc4,0x4,0x65,0x0,0x40,0xff,0x79,0x0,0xe7,0x3,0xc3,0x9, +0x70,0x9,0xd3,0x2,0xfc,0x1,0x25,0x6,0x43,0x6,0x38,0x1, +0xd8,0xfb,0x62,0xfb,0x9a,0xfa,0xe0,0xf1,0xfd,0xea,0xcc,0xee, +0x7a,0xf3,0x79,0xf1,0xd,0xef,0x6b,0xf2,0xc9,0xf7,0x1d,0xf8, +0x5e,0xf5,0xd0,0xf6,0xdb,0xfa,0xf7,0xf8,0x4f,0xf1,0xce,0xec, +0x6c,0xed,0xda,0xed,0x56,0xec,0xd3,0xea,0x9b,0xed,0xae,0xf6, +0xfa,0xfe,0x55,0x2,0xb4,0x6,0x2a,0xc,0x3b,0xb,0xcd,0x4, +0x6b,0x0,0x1d,0xfe,0xd6,0xf8,0x98,0xf3,0x7,0xf5,0xfa,0xfa, +0x4e,0x0,0xa8,0x4,0xb7,0x8,0xcf,0xc,0x2b,0xf,0x3e,0xc, +0xbd,0x7,0x69,0x8,0x89,0xa,0xa,0x7,0x6f,0x1,0xfc,0x1, +0xf9,0x5,0x97,0x1,0xf7,0xf5,0xc5,0xf1,0x52,0xf6,0x8a,0xf8, +0x4a,0xf8,0xb9,0xfc,0xbc,0x5,0x7f,0xd,0x3e,0x10,0x8b,0x10, +0xf4,0x11,0x82,0x12,0x2,0x10,0x88,0xc,0x15,0xa,0xc6,0x7, +0xaf,0x3,0xbf,0xfc,0x68,0xf4,0x6f,0xef,0x87,0xf0,0xf0,0xf4, +0xb,0xfb,0x69,0x2,0xc7,0x7,0x64,0x9,0xc4,0x6,0xcd,0xff, +0xe6,0xf6,0xd0,0xeb,0x22,0xe0,0x33,0xdb,0xd5,0xdb,0xbe,0xdc, +0xc6,0xe1,0x68,0xea,0x46,0xef,0x6f,0xf1,0xf0,0xf3,0x1f,0xf4, +0xbf,0xf3,0xba,0xf7,0x4f,0xfe,0x6c,0x3,0x9f,0x4,0xe7,0xff, +0xf3,0xf8,0xc1,0xf3,0x2b,0xed,0x30,0xe7,0x6c,0xe8,0x37,0xef, +0x76,0xf9,0x72,0x6,0x14,0x10,0xae,0x14,0xb9,0x15,0xa0,0xf, +0xe2,0x4,0x33,0xfd,0x2e,0xf8,0xb2,0xf5,0xc3,0xfb,0xea,0x7, +0xed,0xf,0x62,0x11,0xa5,0xf,0x2e,0xc,0x85,0x8,0xb8,0x5, +0xf7,0x5,0x3b,0xd,0x62,0x18,0x5,0x20,0x55,0x23,0x8a,0x23, +0x1,0x1f,0x21,0x16,0xc0,0xa,0xe4,0xfd,0xec,0xf4,0xd4,0xf5, +0x84,0xfb,0x33,0x0,0x76,0x8,0x44,0x11,0x3d,0x10,0x6e,0x8, +0x93,0x0,0x31,0xf9,0x10,0xf5,0xa9,0xf4,0x6c,0xf5,0x37,0xf7, +0x86,0xf7,0x4c,0xf5,0x7e,0xf3,0xef,0xf0,0x3,0xed,0x72,0xeb, +0xd2,0xeb,0xee,0xec,0xba,0xf1,0x77,0xf7,0x13,0xf8,0x9c,0xf6, +0xfb,0xf4,0xe2,0xed,0x77,0xe4,0x2d,0xdf,0xb1,0xdc,0xf1,0xdd, +0xe1,0xe2,0xdf,0xe5,0xb7,0xe7,0x31,0xeb,0x74,0xed,0x32,0xed, +0x80,0xec,0x9b,0xee,0xa5,0xf2,0x0,0xf4,0x19,0xf6,0xc2,0xfc, +0x16,0x1,0x2e,0x0,0x61,0xfe,0xf0,0xfb,0x74,0xf9,0xe7,0xfa, +0xd5,0x0,0xb1,0x7,0xdc,0xc,0x4e,0x11,0xf1,0x15,0xcc,0x18, +0x86,0x18,0xe8,0x15,0xa8,0x12,0x31,0x10,0xc1,0xd,0x33,0xb, +0xb3,0xa,0x97,0xb,0x26,0xb,0x53,0xa,0xbe,0xa,0x77,0xa, +0x43,0x8,0x72,0x6,0xa4,0x6,0x96,0x7,0x81,0x7,0x6c,0x6, +0x1f,0x6,0x12,0x6,0x64,0x2,0x52,0xfb,0x7c,0xf5,0xb2,0xf1, +0x1d,0xef,0x20,0xef,0xa6,0xf1,0x25,0xf5,0xb1,0xf7,0xd1,0xf8, +0x27,0xfb,0xe6,0xfc,0xdc,0xfa,0x63,0xf9,0xa5,0xf8,0x1e,0xf4, +0xb0,0xf0,0xd1,0xf1,0x67,0xf2,0xe6,0xf1,0xb3,0xf3,0xdd,0xf6, +0x60,0xf7,0xf6,0xf5,0xd5,0xf8,0x62,0xfe,0xc0,0x0,0x37,0x3, +0x9f,0x6,0xea,0x5,0xff,0x2,0xdd,0x1,0x24,0x3,0xa4,0x5, +0xfe,0x5,0x39,0x5,0xaf,0x6,0x41,0x7,0x97,0x5,0x87,0x6, +0xf1,0x9,0x99,0xb,0xc4,0xc,0x9c,0xe,0xb3,0xe,0xcb,0xf, +0x12,0x13,0xe5,0x12,0xcf,0x10,0xb5,0xf,0x4a,0xb,0xbd,0x5, +0x6b,0x3,0x35,0x3,0x3f,0x6,0xd6,0xa,0x10,0xd,0x78,0xd, +0xb6,0xb,0x64,0xa,0x19,0xb,0x3d,0x7,0x59,0x2,0xd8,0x3, +0xb7,0x1,0x31,0xf9,0x1c,0xf9,0xbd,0xff,0xe7,0xfd,0x41,0xf8, +0x83,0xfb,0x20,0x1,0x5e,0x0,0x16,0x1,0x2e,0x7,0xdf,0x7, +0x1c,0xff,0x48,0xf7,0x8f,0xf5,0xdc,0xf4,0x35,0xf7,0xf1,0xfe, +0x82,0x1,0x62,0xff,0x2,0x5,0xdb,0xa,0x26,0x6,0x99,0x0, +0x20,0xff,0x10,0xfc,0x18,0xfb,0xdc,0x0,0x72,0x8,0xa,0xd, +0x44,0xe,0xe9,0xd,0x22,0xd,0x99,0x7,0x12,0xfb,0xc1,0xf1, +0x6e,0xf4,0xfa,0xfd,0x8b,0x6,0x76,0xa,0x33,0xa,0x7f,0xa, +0x4,0xb,0x2b,0x8,0xd6,0x4,0x2e,0x1,0x7c,0xfa,0xc6,0xf7, +0x86,0xfd,0x93,0x3,0xb2,0x5,0x83,0x7,0xb1,0x8,0x4a,0x7, +0xd5,0x4,0xd5,0x1,0xa,0xfe,0xb5,0xfb,0xe4,0xfc,0xef,0x0, +0x74,0x4,0x73,0x4,0x41,0x3,0x3e,0x4,0xa8,0x4,0x98,0x1, +0x6e,0xfe,0xbc,0xfd,0xcc,0xfd,0xd0,0xfe,0xec,0x0,0x47,0x1, +0x5e,0x2,0x57,0x7,0x2f,0x8,0x56,0x1,0xbb,0xfd,0x6c,0x0, +0x22,0x1,0x16,0xff,0x2e,0xfe,0x13,0xff,0x44,0x1,0x4b,0x1, +0xf2,0xfe,0x44,0x0,0x7f,0x3,0x17,0x3,0xf0,0x1,0xd5,0x0, +0x8b,0xfe,0x5c,0xff,0xd5,0x0,0x3b,0xfe,0x21,0xfe,0x1f,0x2, +0x55,0x1,0xa3,0xfc,0x5b,0xfd,0x15,0x3,0x94,0x4,0xf1,0xff, +0xcb,0xfc,0xf6,0xfc,0xb7,0xfb,0x3b,0xfb,0xe7,0xfe,0x71,0x1, +0xa,0x1,0xce,0x2,0xe2,0x2,0x6d,0xfc,0x79,0xf8,0xc9,0xf9, +0xec,0xf6,0x37,0xf3,0xcb,0xf6,0x8,0xfb,0x7a,0xfa,0x22,0xfb, +0x8f,0xff,0xbe,0x1,0x6f,0xff,0x68,0xfd,0x5b,0xfb,0xab,0xf7, +0xa0,0xf8,0xd6,0xfc,0x6d,0xfb,0xf4,0xf9,0x2b,0x0,0x49,0x4, +0xbc,0xff,0x7d,0xfd,0x1c,0x1,0xc,0x0,0x25,0xfc,0x14,0xfe, +0xad,0x0,0xbf,0x0,0x3e,0x2,0xbf,0x2,0x1,0x2,0xe3,0x1, +0xc1,0xff,0x5e,0xfd,0x27,0xfc,0xcd,0xfa,0x55,0xfc,0xa9,0xfd, +0x3c,0xfa,0xe2,0xf9,0x57,0xff,0xaf,0x1,0x58,0xff,0x5f,0xfd, +0x1b,0xfd,0x4a,0xfe,0xb9,0xff,0x7a,0xff,0x7,0xfe,0x2d,0xfc, +0xf4,0xfb,0x62,0xff,0x39,0x0,0x7e,0xfc,0x50,0xfe,0x61,0x2, +0xcc,0xfe,0xc4,0xfc,0x40,0x0,0xe4,0xff,0x9b,0xfd,0x44,0xfc, +0xad,0xfa,0x8a,0xfb,0xa0,0xf9,0x73,0xf5,0x67,0xfa,0x44,0x0, +0x27,0xfd,0xf2,0xfc,0x7d,0x1,0xa4,0x2,0x4f,0x4,0xa8,0x5, +0xe5,0x1,0xf8,0xfd,0x27,0xfb,0xea,0xf9,0x79,0xfd,0xf9,0xfd, +0x53,0xfb,0xc8,0x0,0x67,0x4,0xae,0xfd,0x3f,0xfd,0x1c,0x3, +0xaf,0x1,0x44,0x1,0x11,0x5,0x7f,0x2,0xa7,0xff,0xd5,0x1, +0x79,0xff,0x4d,0xfb,0x74,0xfd,0xd3,0xfe,0x52,0xfb,0x2d,0xfa, +0xb6,0xfc,0x3c,0xff,0xe7,0x1,0xdd,0x2,0xe1,0xff,0x7b,0xfe, +0x31,0x1,0xcb,0x0,0xbc,0xfd,0xd6,0xff,0x21,0x3,0x72,0x1, +0xc8,0xff,0x7f,0x0,0x35,0x0,0x81,0xff,0x73,0x0,0xdc,0x2, +0xec,0x3,0x45,0x2,0x5,0x2,0x6c,0x3,0x7a,0x3,0x7c,0x4, +0x8d,0x4,0xe2,0x1,0xf0,0x3,0x8c,0x6,0x32,0x0,0xd1,0xfc, +0x85,0x2,0x31,0x1,0xb5,0xf9,0x91,0xfa,0xb9,0xfc,0x84,0xf8, +0x10,0xf9,0xa4,0xff,0xaf,0x0,0xfd,0xfd,0x66,0x0,0x4,0x3, +0xa0,0xfe,0xe6,0xfb,0x36,0xff,0x49,0xfc,0x12,0xf7,0xfc,0xfc, +0x2c,0x1,0x10,0xfd,0x6a,0x0,0xc1,0x5,0xbb,0x2,0x98,0x3, +0xed,0x7,0xe0,0x4,0xc1,0x1,0xd0,0x3,0x46,0x4,0xe8,0x1, +0x42,0x0,0x38,0x1,0x14,0x4,0xb8,0x5,0xde,0x4,0x57,0x2, +0x7f,0xff,0x37,0xfd,0x83,0xf9,0xec,0xf6,0xdc,0xfa,0xa4,0xfd, +0xa2,0xfa,0x76,0xfe,0x4f,0x5,0x1b,0x1,0xf5,0xfe,0x55,0x4, +0x92,0xff,0xdb,0xf7,0xc8,0xfa,0x1f,0xfc,0xa0,0xf9,0xce,0xfd, +0xf0,0x4,0x7d,0x6,0x38,0x1,0x23,0xfe,0x73,0x1,0x5f,0xfe, +0x4a,0xf9,0xf6,0x0,0x61,0x4,0xd4,0xfd,0xc8,0x3,0x35,0xa, +0x81,0x0,0x6c,0xfd,0xce,0x0,0x9a,0xf7,0xb8,0xf3,0xf5,0xfb, +0xcc,0xfa,0xfc,0xf8,0xf0,0x3,0xae,0x9,0xfd,0x4,0x92,0x3, +0xbc,0x4,0xaf,0x0,0x17,0xf9,0xa7,0xf7,0xfc,0xfc,0x10,0xfc, +0x34,0xf9,0x65,0x1,0x7b,0x6,0x59,0x1,0x22,0x3,0x34,0x7, +0xe2,0x1,0xa2,0xfe,0x33,0xff,0x58,0xfc,0xb6,0xfc,0xd4,0xff, +0x82,0xff,0x86,0xff,0x72,0xfe,0x58,0xfb,0x59,0xfd,0xe5,0xfe, +0x81,0xf9,0xb4,0xf7,0x2d,0xfc,0x2b,0xfd,0x1c,0xfb,0xbb,0xfb, +0x6c,0xff,0xc5,0x2,0xdc,0xff,0x3d,0xfa,0x66,0xfb,0x43,0xfc, +0xae,0xf6,0x3a,0xf7,0x9f,0xfc,0xd2,0xfa,0xdf,0xfb,0xd0,0x4, +0x98,0x6,0x44,0x3,0x3c,0x6,0x37,0x8,0x9e,0x3,0xee,0xff, +0xc6,0xfe,0x70,0xfc,0xd9,0xfa,0x0,0xfc,0x3,0xfe,0xfa,0xff, +0x38,0x1,0xd3,0x1,0xec,0x3,0x1b,0x5,0x95,0x3,0xc1,0x3, +0x49,0x3,0xee,0xfe,0x20,0xfe,0x90,0x0,0x34,0xff,0x8f,0xff, +0xd4,0x3,0xdd,0x2,0x2f,0xff,0x2c,0x1,0x18,0x3,0x3a,0x0, +0xb2,0xff,0x6e,0x2,0xf8,0x2,0xc8,0x2,0x77,0x3,0x29,0x3, +0x9a,0x2,0xe,0x2,0xa5,0x0,0xdb,0xfe,0xc,0xfe,0x25,0xff, +0xd6,0xfe,0xe7,0xfc,0x68,0xff,0x60,0x3,0x59,0x3,0x6,0x4, +0xe1,0x5,0xd0,0x5,0x79,0x5,0xb,0x3,0x66,0xff,0xcc,0xfe, +0x63,0xfd,0x91,0xfb,0x9c,0xfe,0x66,0x1,0x53,0x2,0xfa,0x5, +0x64,0x6,0x58,0x2,0xdb,0x2,0x73,0x4,0x8c,0x2,0x22,0x4, +0x71,0x7,0x95,0x7,0x38,0x8,0xb5,0x7,0xc7,0x5,0x48,0x6, +0x66,0x4,0x3e,0x2,0x6b,0x5,0xa4,0x5,0xab,0x4,0xb0,0xa, +0x2c,0xe,0x0,0xd,0x5c,0xf,0x66,0xf,0xe9,0x9,0x2f,0x6, +0xb3,0x5,0xe2,0x5,0xd,0x5,0x99,0x5,0x6b,0xa,0x9c,0xc, +0x76,0xa,0xde,0xb,0xd7,0xa,0x30,0x2,0x55,0xff,0xd0,0x2, +0xc3,0x0,0x29,0x1,0x7d,0xa,0x15,0xf,0xa2,0xc,0xa8,0xd, +0x2a,0xf,0xc3,0x9,0x82,0x2,0x75,0x1,0xc9,0x3,0xa8,0x3, +0xf6,0x5,0x29,0xc,0x42,0xe,0x60,0xf,0xa9,0x12,0x99,0xf, +0xaa,0x9,0x0,0x8,0x17,0x5,0xa7,0x0,0xe,0xfd,0x3,0xf8, +0x3e,0xf1,0x33,0xe5,0x2a,0xda,0x4c,0xdc,0x67,0xde,0x97,0xdb, +0xd7,0xe7,0xcd,0xf6,0xa6,0xf3,0x8b,0xf1,0xde,0xf4,0x11,0xe9, +0x86,0xd7,0x91,0xd0,0x41,0xcd,0x25,0xca,0x34,0xcc,0x88,0xd5, +0x88,0xe2,0x3a,0xe8,0xc1,0xe7,0x71,0xeb,0xe,0xe9,0xbd,0xdc, +0x25,0xdd,0xbf,0xe9,0xf0,0xed,0xe2,0xf0,0x28,0xfc,0x88,0x2, +0xdf,0xff,0xfd,0xfd,0xba,0xfd,0x1e,0xf9,0x99,0xf3,0x9,0xf7, +0x77,0xff,0x17,0x4,0x97,0xb,0x58,0x17,0x39,0x1d,0xc2,0x1e, +0xd5,0x1e,0xf8,0x1a,0x3b,0x18,0x70,0x17,0x80,0x15,0x8b,0x16, +0xee,0x17,0x13,0x15,0x41,0x14,0xc9,0x15,0x7b,0x14,0x80,0x13, +0x75,0x13,0xd3,0x10,0xa8,0xe,0x58,0xe,0x3f,0xc,0x59,0x9, +0x89,0x6,0x3b,0x1,0xde,0xfb,0xd4,0xf8,0x53,0xf5,0x6b,0xf2, +0xe6,0xf1,0x57,0xf0,0x80,0xed,0xd2,0xeb,0x59,0xea,0xa3,0xe9, +0xde,0xeb,0x9,0xef,0x80,0xf0,0x8b,0xf1,0xc7,0xf1,0xe2,0xee, +0x47,0xec,0x6e,0xeb,0xfa,0xe6,0x38,0xe2,0xcf,0xe3,0xbb,0xe6, +0x52,0xe9,0xfe,0xf0,0xd,0xfa,0x1c,0xff,0xf4,0x1,0x6a,0x3, +0xdc,0x2,0x9d,0x1,0x86,0x1,0x2c,0x3,0xcf,0x4,0x52,0x6, +0xd0,0x9,0x23,0xd,0xa4,0xd,0x90,0xe,0x38,0x11,0x1b,0x12, +0x18,0x12,0x76,0x14,0xd1,0x17,0xe1,0x1a,0x2e,0x1e,0x56,0x20, +0x41,0x20,0xfd,0x1d,0x13,0x1a,0x2b,0x16,0xa5,0x12,0xa9,0xf, +0xd,0xe,0x9c,0xc,0x52,0xb,0x75,0xb,0x2c,0xb,0xd0,0x9, +0x49,0x9,0xe0,0x8,0xe1,0x6,0x18,0x4,0x78,0x1,0xb1,0xfd, +0x48,0xf9,0x3d,0xf7,0x34,0xf5,0x67,0xf0,0xb7,0xed,0x6,0xee, +0x4,0xed,0x37,0xed,0x52,0xf0,0x43,0xf2,0x1c,0xf3,0x95,0xf4, +0x15,0xf5,0x78,0xf4,0xf1,0xf3,0x79,0xf3,0x3d,0xf3,0x68,0xf3, +0xdf,0xf3,0x44,0xf5,0xd4,0xf6,0x2,0xf7,0xd2,0xf7,0x32,0xfa, +0x30,0xfb,0xd5,0xfc,0x1f,0x2,0xa4,0x6,0xb,0x9,0x81,0xc, +0xe9,0xe,0x62,0xe,0x18,0xd,0xd0,0xb,0xc7,0xa,0x4a,0xa, +0x4d,0xa,0x2,0xc,0x30,0xf,0xc9,0x11,0xbb,0x13,0xf0,0x15, +0xb1,0x16,0x5e,0x14,0xfb,0x11,0x16,0x11,0x16,0xe,0xdc,0x9, +0x50,0x8,0x13,0x7,0x2e,0x4,0xc1,0x1,0xa7,0xff,0x2f,0xfd, +0x6a,0xfb,0x7,0xfb,0x58,0xfb,0x7d,0xfa,0x6d,0xf9,0x1a,0xfa, +0x43,0xf9,0xe1,0xf5,0x33,0xf4,0x14,0xf3,0xaa,0xef,0x75,0xed, +0x86,0xed,0x78,0xec,0x84,0xeb,0xef,0xec,0x24,0xee,0x60,0xee, +0x1e,0xf0,0x96,0xf2,0xaa,0xf3,0x3f,0xf4,0xab,0xf5,0x64,0xf7, +0x67,0xf8,0x21,0xf9,0x64,0xfa,0x51,0xfb,0x89,0xfb,0xf0,0xfb, +0x96,0xfc,0x4e,0xfe,0x9f,0x1,0xe8,0x4,0x9d,0x8,0x88,0xd, +0x90,0x10,0x76,0x10,0xdc,0xf,0x85,0xf,0x2f,0xe,0x66,0xc, +0x37,0xc,0x48,0xd,0x3a,0xd,0xb5,0xc,0x24,0xd,0xc3,0xc, +0x9d,0xb,0x8f,0xb,0x1a,0xb,0x86,0x9,0xb1,0x8,0x10,0x8, +0x1e,0x7,0xe0,0x6,0xcf,0x5,0x2b,0x3,0xde,0x0,0x65,0xfe, +0x45,0xfb,0x2e,0xf9,0xd7,0xf7,0x4,0xf7,0x5e,0xf7,0xc4,0xf7, +0x14,0xf8,0x1a,0xf8,0x83,0xf6,0x2b,0xf5,0x87,0xf4,0x10,0xf2, +0x1d,0xf0,0x6c,0xf0,0x3e,0xef,0x5e,0xed,0x6e,0xee,0x10,0xf0, +0xb4,0xf0,0x2f,0xf3,0x67,0xf6,0x72,0xf7,0xd,0xf8,0x3,0xf9, +0xec,0xf8,0x6f,0xf9,0x17,0xfb,0xaa,0xfc,0x74,0xff,0x5c,0x2, +0x64,0x3,0xb2,0x4,0x8e,0x5,0xfa,0x3,0x59,0x3,0x7e,0x4, +0xbe,0x4,0x8,0x6,0xb7,0x9,0x55,0xc,0x57,0xd,0x2b,0xf, +0x11,0x10,0x42,0xe,0xfb,0xc,0xab,0xc,0x71,0xa,0x58,0x8, +0x93,0x8,0xca,0x8,0x51,0x8,0x8e,0x8,0x9c,0x9,0x6f,0xa, +0xa1,0x9,0x92,0x7,0xa9,0x5,0xf8,0x3,0xae,0x2,0x18,0x2, +0x1f,0x1,0xcb,0xfe,0xe1,0xfc,0x4f,0xfd,0xf2,0xfc,0x10,0xfa, +0x12,0xf9,0x3f,0xf9,0x10,0xf7,0x3e,0xf6,0xfe,0xf6,0x81,0xf5, +0x1d,0xf5,0xe0,0xf6,0x42,0xf7,0x39,0xf8,0xf3,0xf9,0xda,0xf8, +0x57,0xf7,0x58,0xf7,0xc9,0xf5,0xd0,0xf3,0x40,0xf4,0xfe,0xf4, +0xd7,0xf5,0x38,0xf9,0xe5,0xfc,0x87,0xfe,0xe,0x0,0x19,0x2, +0x90,0x3,0x1,0x4,0x8,0x3,0xe2,0x1,0xdb,0x1,0x70,0x2, +0x16,0x4,0xb8,0x6,0xa0,0x8,0xdc,0x9,0x25,0xb,0xdc,0xb, +0x4a,0xb,0xd7,0x9,0x56,0x9,0xfc,0x9,0xed,0x9,0xb1,0x9, +0x71,0xa,0x3,0xb,0xe2,0xa,0x22,0xa,0x6b,0x8,0xae,0x6, +0x25,0x5,0xcc,0x2,0xc2,0x0,0x91,0x0,0x41,0x1,0x36,0x2, +0xaa,0x3,0xf2,0x3,0x38,0x2,0x65,0x0,0xf6,0xfe,0xdb,0xfc, +0xa4,0xfa,0x2b,0xf9,0x92,0xf8,0xec,0xf8,0x5f,0xf9,0x28,0xf9, +0x1d,0xf9,0x64,0xf9,0x1a,0xf9,0x36,0xf9,0x30,0xfa,0xb0,0xf9, +0x38,0xf8,0xbe,0xf8,0xba,0xf9,0x53,0xf9,0x42,0xf9,0x42,0xf9, +0x98,0xf8,0x16,0xf9,0xdb,0xfa,0x8d,0xfc,0x72,0xfd,0x5a,0xfd, +0x3,0xfe,0xc,0x0,0x1a,0x1,0x37,0x1,0x66,0x2,0xc2,0x3, +0xee,0x3,0x1,0x4,0x70,0x4,0x1c,0x4,0x4b,0x3,0x1d,0x3, +0x3c,0x3,0x13,0x3,0x3c,0x3,0xa,0x5,0x9,0x8,0x62,0x9, +0xff,0x8,0xa9,0x8,0xc5,0x6,0x3d,0x3,0xf4,0x0,0x82,0xff, +0x5a,0xfe,0x20,0xff,0x41,0x1,0xf7,0x2,0xa,0x3,0xb7,0x1, +0xc4,0x0,0x72,0xff,0xca,0xfc,0x40,0xfb,0x30,0xfb,0xe0,0xfa, +0x38,0xfb,0xf3,0xfc,0x48,0xfe,0xd8,0xfd,0xa6,0xfc,0xea,0xfb, +0xa0,0xfa,0x41,0xf8,0x78,0xf6,0xa,0xf6,0xa4,0xf6,0xdb,0xf8, +0x7d,0xfc,0xc3,0xfe,0x4b,0xfe,0xb9,0xfd,0x6e,0xfd,0x51,0xfb, +0xd8,0xf9,0xd0,0xfa,0x5f,0xfb,0xb8,0xfb,0x59,0xfd,0xb6,0xfe, +0x99,0xff,0x8d,0x0,0xa,0x1,0x6b,0x1,0xae,0x1,0xa4,0x1, +0xd5,0x1,0x35,0x2,0xc8,0x2,0x78,0x3,0x8e,0x3,0x3d,0x3, +0x3d,0x3,0x7e,0x3,0x71,0x3,0x6a,0x3,0x16,0x4,0x19,0x4, +0x1d,0x3,0x6f,0x3,0xf1,0x3,0xa3,0x2,0xc,0x2,0x53,0x2, +0x36,0x1,0xfe,0x0,0x45,0x2,0x99,0x1,0x61,0x0,0x3b,0x1, +0x84,0x1,0x6b,0x0,0xc7,0xff,0x80,0xfe,0x15,0xfd,0x4e,0xfd, +0xae,0xfc,0xff,0xfa,0x17,0xfb,0xca,0xfa,0xf4,0xf8,0xc8,0xf8, +0x73,0xf9,0x38,0xf9,0x93,0xf9,0x2a,0xfa,0xb0,0xfa,0x11,0xfc, +0x63,0xfc,0x3,0xfb,0x67,0xfa,0xaf,0xfa,0xc2,0xfa,0xee,0xfa, +0x51,0xfb,0x44,0xfc,0x9b,0xfd,0xf1,0xfd,0xec,0xfd,0xa8,0xfe, +0x85,0xfe,0x85,0xfd,0xdf,0xfd,0xee,0xfe,0x79,0xff,0xa2,0x0, +0x12,0x2,0xe8,0x1,0xf3,0x0,0x14,0x1,0x32,0x1,0x66,0x0, +0xe5,0x0,0xb6,0x2,0x50,0x3,0x9a,0x3,0xb2,0x4,0x70,0x4, +0xb6,0x2,0x51,0x1,0xfb,0xff,0xaf,0xfe,0xdf,0xfe,0xc5,0x0, +0xcc,0x2,0xfb,0x3,0x0,0x5,0x45,0x5,0x56,0x3,0xa7,0x0, +0xd5,0xfe,0xd8,0xfc,0x19,0xfb,0xb4,0xfb,0xfb,0xfd,0x96,0xff, +0x3a,0x0,0x3c,0x0,0x24,0xff,0xd6,0xfd,0x36,0xfd,0x33,0xfc, +0x43,0xfb,0xff,0xfb,0xb3,0xfd,0x42,0xff,0x2b,0x0,0xb3,0xff, +0x3f,0xfe,0x90,0xfc,0xf5,0xfa,0x1c,0xfa,0x49,0xfa,0x36,0xfb, +0xe9,0xfc,0x66,0xff,0xdb,0x1,0xf1,0x2,0x14,0x3,0xd9,0x2, +0x3,0x1,0x9e,0xfe,0x9d,0xfd,0xf0,0xfc,0x3,0xfd,0x5e,0xff, +0xb3,0x2,0xed,0x5,0x1f,0x8,0x2b,0x8,0x8a,0x7,0xa7,0x6, +0xb6,0x4,0x9a,0x3,0x19,0x4,0x9d,0x4,0x11,0x5,0xd1,0x5, +0x42,0x6,0x12,0x6,0xbe,0x5,0xbc,0x5,0x77,0x5,0xd9,0x4, +0xa3,0x4,0x4f,0x4,0xc0,0x3,0x33,0x4,0xe9,0x4,0x1d,0x4, +0x92,0x2,0x8c,0x1,0xad,0x0,0xbb,0xff,0x92,0xfe,0x2,0xfd, +0x89,0xfc,0xcc,0xfd,0x4d,0xff,0xeb,0x0,0x17,0x2,0x80,0x1, +0xd4,0x0,0xfd,0xff,0x50,0xfd,0xd0,0xfb,0xf4,0xfb,0xc1,0xfa, +0x49,0xfb,0xa9,0xfe,0xb5,0xff,0x5c,0xff,0x0,0x1,0xa4,0x1, +0x1e,0x0,0x6e,0xff,0xa3,0xff,0x4e,0xff,0xf6,0xfe,0x9d,0xff, +0x38,0x1,0x77,0x2,0x85,0x2,0x47,0x2,0xd,0x2,0x45,0x1, +0xe9,0x0,0xc2,0x1,0x88,0x2,0xff,0x2,0x23,0x4,0xe1,0x4, +0x7a,0x4,0xc1,0x4,0x6,0x5,0xfd,0x2,0xfb,0x0,0xb2,0x0, +0x7c,0xff,0xba,0xfe,0x31,0x1,0x4b,0x3,0xcb,0x2,0x2c,0x2, +0xb8,0x1,0xe3,0x0,0x36,0x0,0x96,0xff,0xc9,0xff,0x52,0x0, +0x3c,0xff,0x2b,0xfe,0x29,0xfe,0x63,0xfc,0x6,0xfa,0xaa,0xfa, +0x33,0xfc,0x53,0xfc,0xce,0xfc,0x62,0xfd,0xf7,0xfc,0xf6,0xfc, +0xd8,0xfc,0xba,0xfb,0xa5,0xfb,0x76,0xfc,0x87,0xfc,0xda,0xfc, +0x61,0xfd,0xe5,0xfc,0xb5,0xfc,0x62,0xfd,0x39,0xfd,0x88,0xfc, +0x33,0xfd,0x56,0xfe,0x48,0xfe,0x7e,0xfe,0xad,0xff,0x77,0x0, +0xbc,0x0,0x93,0xfd,0x9f,0xf3,0x77,0xe8,0x6c,0xe3,0x5c,0xe5, +0xab,0xed,0xe5,0xf8,0xab,0x1,0xe7,0x6,0x16,0x6,0xb,0xfd, +0x55,0xf2,0xb1,0xea,0x6d,0xe5,0xe,0xe7,0x21,0xf1,0xcf,0xfb, +0x7f,0x3,0x8,0x9,0x4f,0x9,0xd3,0x3,0xfa,0xfb,0x5c,0xf2, +0x8f,0xe9,0x86,0xe7,0x17,0xed,0x9,0xf8,0x92,0x6,0x69,0x12, +0x28,0x16,0xe3,0x13,0xb0,0xc,0x9f,0xff,0x16,0xf2,0x87,0xea, +0xd9,0xe9,0x88,0xf0,0x4c,0xfe,0xf9,0xc,0xde,0x15,0x5c,0x17, +0x1f,0x11,0xc2,0x4,0x22,0xf9,0xcf,0xf3,0xe,0xf5,0xe1,0xfb, +0x25,0x5,0x55,0xc,0xc4,0xf,0xb2,0xe,0xda,0x9,0xcc,0x4, +0x99,0x0,0xad,0xfc,0x77,0xfa,0x30,0xfa,0xd9,0xfb,0x41,0x1, +0x81,0x9,0x90,0x10,0x65,0x13,0xa8,0x10,0xb5,0x8,0x18,0xff, +0xc7,0xf8,0xeb,0xf7,0x4f,0xfc,0xa4,0x4,0x46,0xc,0xe1,0xe, +0x6,0xd,0x55,0x8,0xd9,0x2,0xce,0x0,0x55,0x3,0x14,0x7, +0x7e,0x9,0xf2,0x9,0x29,0x8,0x6,0x5,0xfe,0x2,0x97,0x2, +0x52,0x1,0xe9,0xfe,0x55,0xfd,0x80,0xfc,0x53,0xfd,0x1d,0x2, +0xb5,0x8,0xe3,0xc,0x15,0xd,0x3,0x9,0x26,0x2,0x67,0xfc, +0xc7,0xfa,0x93,0xfd,0x3e,0x3,0x60,0x9,0xbe,0xd,0xde,0xe, +0xdb,0xc,0x78,0x9,0x3,0x7,0x49,0x7,0xa3,0x9,0x25,0xb, +0x15,0xb,0x9a,0xb,0x1e,0xe,0x86,0x11,0x5a,0x12,0x24,0xe, +0x86,0x6,0x86,0xfe,0xeb,0xf9,0x18,0xfd,0x2b,0x6,0x73,0xd, +0x24,0x10,0x34,0x11,0x67,0x10,0x3b,0xa,0xa,0x0,0x2b,0xf8, +0xf0,0xf6,0xaf,0xfb,0xbc,0x1,0xf9,0x4,0xf5,0x5,0xfe,0x5, +0x12,0x5,0x89,0x3,0xf5,0xfe,0x25,0xf6,0x77,0xef,0xcd,0xf0, +0xe7,0xf9,0x30,0x7,0x9c,0x11,0xfd,0x13,0x6b,0x10,0xc6,0x9, +0x8a,0x0,0xf,0xf7,0x55,0xf0,0xe6,0xed,0x64,0xf1,0x93,0xf9, +0xcd,0x0,0x96,0x4,0x65,0x7,0x77,0x9,0xeb,0x8,0xa8,0x4, +0x5b,0xfc,0x16,0xf4,0x3,0xf1,0xe9,0xf1,0xf7,0xf4,0x70,0xfb, +0x50,0x1,0x22,0x0,0x48,0xfa,0xbc,0xf6,0x25,0xf6,0x5f,0xf5, +0x34,0xf4,0x3b,0xf4,0xd4,0xf6,0xaa,0xfb,0x51,0xff,0x68,0xff, +0xcc,0xfc,0xfa,0xf8,0x43,0xf6,0x7,0xf6,0x1e,0xf6,0x65,0xf5, +0x1f,0xf6,0xab,0xfa,0xfc,0x2,0xd1,0x9,0x88,0x8,0x37,0x1, +0xee,0xfb,0x71,0xfa,0xaa,0xf8,0xa1,0xf5,0x26,0xf4,0x89,0xf6, +0x5a,0xfd,0x4,0x6,0xa6,0xa,0x64,0x8,0xa9,0x3,0xcf,0x1, +0xda,0x1,0xfa,0xfe,0x68,0xf8,0x75,0xf3,0x19,0xf4,0xf6,0xf7, +0xb2,0xfb,0x1a,0xfe,0x17,0xfe,0xd0,0xfc,0x18,0xfd,0x27,0xfe, +0x84,0xfd,0x7e,0xfb,0x36,0xfa,0x40,0xfb,0xb6,0xfd,0xe7,0xfe, +0x74,0xfe,0xeb,0xfe,0xe7,0x0,0x4b,0x1,0xf1,0xfe,0xb0,0xfc, +0x2,0xfb,0x96,0xf8,0x49,0xf8,0x79,0xfc,0x37,0x1,0x98,0x1, +0x30,0xfe,0xda,0xfa,0xe5,0xf8,0x9e,0xf7,0x2b,0xf7,0x46,0xf7, +0xdc,0xf7,0x5c,0xf9,0x27,0xfa,0x36,0xf9,0x40,0xf8,0x9e,0xf8, +0xf6,0xf9,0x5a,0xfa,0xa7,0xf8,0x4f,0xf7,0x9d,0xf8,0x1e,0xfc, +0x54,0x0,0xdb,0x2,0xda,0x2,0x1f,0x2,0x0,0x1,0x1b,0xff, +0x3c,0xfe,0x49,0xff,0x14,0x1,0x2e,0x3,0x34,0x5,0x15,0x6, +0x97,0x6,0x3,0x8,0x6f,0x9,0xce,0x9,0x45,0x8,0x23,0x4, +0xaf,0x0,0x26,0x1,0x54,0x2,0xbf,0x1,0x49,0x2,0xe3,0x3, +0x15,0x3,0xcb,0xff,0xd5,0xfb,0x6f,0xf9,0x5,0xfc,0x9e,0x1, +0x11,0x3,0x37,0xff,0xff,0xfa,0x26,0xf9,0xc,0xf9,0x74,0xf8, +0x6e,0xf6,0xd4,0xf4,0x61,0xf4,0x5e,0xf4,0xf6,0xf4,0x31,0xf6, +0x9e,0xf8,0xda,0xfc,0xff,0x0,0x9d,0x2,0x82,0x0,0x5a,0xfb, +0x3d,0xf7,0x7f,0xf7,0x90,0xfa,0x84,0xfd,0x14,0xff,0xa,0xff, +0x35,0xfe,0x9,0xfe,0xca,0xff,0x29,0x3,0x4e,0x5,0x5a,0x4, +0x5c,0x2,0x66,0x1,0xec,0x0,0x8a,0x0,0xd7,0x0,0x14,0x2, +0x9e,0x3,0xbd,0x3,0x99,0x1,0x5,0xff,0x76,0xfe,0x66,0x0, +0x4e,0x3,0x5e,0x5,0xcc,0x5,0xdc,0x4,0x84,0x3,0x78,0x2, +0x62,0x2,0xd,0x4,0x1c,0x6,0x82,0x6,0xc7,0x5,0x5d,0x4, +0x36,0x2,0x11,0x1,0xa,0x1,0xe8,0xff,0x1d,0xfe,0x49,0xfe, +0x6b,0x0,0x39,0x2,0xcf,0x3,0xd2,0x6,0x9b,0x9,0xa,0xa, +0x44,0x9,0xd7,0x7,0xe7,0x4,0x3,0x2,0x7a,0x1,0x29,0x2, +0x88,0x1,0x53,0x0,0x7d,0x0,0x1e,0x1,0xac,0x0,0x81,0xff, +0x9b,0xfe,0x53,0xfe,0xac,0xfd,0xc6,0xfb,0xd1,0xf9,0x15,0xf9, +0xfc,0xf8,0xf1,0xf8,0x73,0xf9,0x82,0xfa,0xbb,0xfb,0xbf,0xfc, +0x7c,0xfc,0x6c,0xfb,0x99,0xfb,0x31,0xfc,0xc9,0xfb,0xe3,0xfb, +0x32,0xfd,0x1b,0xff,0xa9,0x1,0x1a,0x4,0x74,0x5,0x7a,0x5, +0xbb,0x4,0x71,0x4,0x58,0x4,0xe,0x4,0x8a,0x4,0x49,0x5, +0x52,0x5,0xd0,0x4,0xf7,0x3,0x97,0x3,0x88,0x3,0xbb,0x2, +0x55,0x2,0xde,0x2,0x40,0x3,0x2f,0x4,0xa8,0x5,0xaf,0x5, +0x3e,0x4,0xdb,0x2,0x5f,0x1,0x82,0xfe,0xe5,0xfa,0x69,0xf8, +0x4e,0xf7,0x1e,0xf8,0x78,0xfb,0x68,0xfe,0xe,0xff,0xdb,0xff, +0xd8,0x0,0x12,0x0,0xe7,0xfe,0x11,0xfe,0xa5,0xfc,0x51,0xfc, +0xe9,0xfd,0x69,0xff,0xd5,0xff,0xc2,0xfe,0xa4,0xfc,0x9b,0xfb, +0x5d,0xfb,0x71,0xfa,0xc7,0xf9,0xf6,0xf9,0x26,0xfb,0x49,0xfe, +0x8,0x2,0x1c,0x4,0xde,0x4,0xf9,0x4,0x91,0x3,0xf0,0x0, +0x81,0xfe,0x24,0xfc,0xbe,0xf9,0xa7,0xf8,0x24,0xf9,0xb4,0xfa, +0x71,0xfd,0xe,0x0,0xbc,0x0,0x73,0x0,0x46,0x1,0x5b,0x2, +0xfa,0x1,0xdd,0x1,0x3d,0x3,0x3,0x4,0x43,0x4,0xcb,0x4, +0x92,0x3,0xd0,0x0,0x8d,0xfe,0xe0,0xfc,0x76,0xfc,0x84,0xfd, +0x87,0xfe,0xd4,0xff,0xfa,0x1,0x6b,0x3,0x90,0x3,0xef,0x2, +0xb,0x1,0x7e,0xfe,0xb5,0xfd,0xc4,0xfe,0xf5,0xff,0xa1,0x1, +0xfd,0x3,0xb4,0x5,0x2f,0x6,0x19,0x5,0xc6,0x2,0x8c,0x0, +0x5a,0xfe,0x64,0xfc,0x6a,0xfc,0x2e,0xfe,0xd,0x0,0x4e,0x2, +0x4c,0x5,0x13,0x7,0x9d,0x6,0x96,0x5,0x9f,0x4,0x53,0x3, +0x5c,0x2,0x69,0x1,0x51,0x0,0x21,0x0,0x9,0x0,0x85,0xff, +0xa8,0xff,0xcb,0xff,0x9e,0xff,0x18,0x0,0xb4,0x0,0x15,0x1, +0x70,0x1,0x67,0x1,0x61,0x1,0x2d,0x1,0xc3,0xff,0xad,0xfd, +0x9a,0xfb,0xbe,0xf9,0xdf,0xf8,0x7a,0xf8,0xd8,0xf7,0x1f,0xf8, +0x49,0xf9,0x18,0xfa,0xed,0xfa,0x34,0xfc,0x3b,0xfd,0xb5,0xfd, +0xf5,0xfd,0x7d,0xfe,0xc1,0xfe,0xc9,0xfd,0x92,0xfc,0xe4,0xfb, +0xfa,0xfa,0x94,0xfa,0xc3,0xfb,0xd0,0xfd,0x38,0x0,0xcf,0x2, +0xf1,0x4,0xbb,0x6,0x7d,0x8,0x28,0x9,0xed,0x7,0x23,0x6, +0xba,0x4,0xf0,0x2,0x30,0x1,0x6c,0x0,0x38,0x0,0xb,0x0, +0x90,0xff,0x75,0xff,0xc4,0x0,0x2,0x2,0x4b,0x2,0x57,0x3, +0xb8,0x4,0x85,0x4,0x38,0x3,0xca,0x1,0xb6,0xff,0xdb,0xfc, +0xaa,0xfa,0xbe,0xf9,0x11,0xf9,0xa0,0xf8,0x24,0xf9,0x97,0xfa, +0xa8,0xfc,0xb3,0xfe,0x8d,0x0,0x11,0x2,0x39,0x2,0x5e,0x1, +0x69,0x0,0x84,0xff,0xfa,0xff,0x6e,0x1,0xa4,0x1,0x93,0x1, +0x73,0x2,0x65,0x2,0x15,0x1,0x11,0x0,0x2c,0xff,0x45,0xfe, +0x5a,0xfe,0x3d,0xfe,0xd6,0xfc,0xce,0xfc,0x9e,0xfe,0x32,0xff, +0x35,0xff,0x6a,0x0,0x64,0x1,0xe6,0x1,0x9e,0x2,0x2b,0x3, +0x83,0x3,0xb2,0x2,0x67,0x0,0x6e,0xfe,0xef,0xfc,0xd3,0xfb, +0xd2,0xfc,0x65,0xff,0x19,0x2,0x94,0x5,0x11,0x9,0x1c,0xb, +0xbf,0xc,0xc9,0xd,0x6f,0xc,0x8f,0x9,0x8f,0x6,0x3c,0x3, +0xbc,0xff,0xb,0xfd,0xca,0xfc,0xe8,0xfe,0xc3,0x0,0x2e,0x2, +0x69,0x4,0xf3,0x5,0x0,0x6,0xb0,0x4,0x7a,0x1,0xf,0xfe, +0x70,0xfb,0x58,0xf8,0xd8,0xf5,0xd5,0xf4,0x79,0xf4,0xd7,0xf5, +0x58,0xf8,0xd2,0xf9,0xe4,0xfb,0xa9,0xfe,0x38,0xff,0xf5,0xfe, +0x2e,0xff,0x41,0xfd,0x22,0xfa,0x9d,0xf8,0xca,0xf7,0xa4,0xf7, +0xd8,0xf9,0xb1,0xfd,0x8,0x1,0x5f,0x3,0x40,0x6,0x8,0x9, +0x12,0x9,0x45,0x7,0x56,0x5,0x9d,0x2,0xfd,0xff,0x64,0xfe, +0x7f,0xfd,0x3d,0xfe,0x1f,0x0,0x7f,0x1,0xcd,0x2,0x27,0x4, +0x8d,0x4,0x13,0x4,0xac,0x3,0x5b,0x3,0x29,0x2,0xcf,0x0, +0x4d,0x0,0x6e,0xff,0x9c,0xfe,0xf1,0xfe,0xd6,0xfe,0xca,0xfe, +0x7,0x1,0xdd,0x3,0xd5,0x4,0x34,0x4,0x1f,0x3,0x1,0x2, +0xc1,0xff,0xb6,0xfb,0x11,0xf8,0xf,0xf6,0x26,0xf4,0xed,0xf2, +0x52,0xf4,0xf2,0xf6,0xb7,0xf9,0x7c,0xfd,0xce,0x0,0x1c,0x2, +0xa3,0x1,0xc0,0xfe,0x34,0xfa,0x94,0xf6,0x59,0xf4,0xd6,0xf2, +0x8a,0xf2,0x95,0xf4,0xf4,0xf8,0xe1,0xfd,0x9b,0x2,0x94,0x7, +0xdb,0xb,0x43,0xe,0x52,0xe,0x64,0xc,0x12,0xa,0x76,0x7, +0xf1,0x3,0x13,0x1,0xab,0xff,0x4a,0xff,0xa2,0x0,0x5e,0x3, +0xa4,0x6,0xd7,0xa,0x5c,0xe,0x4,0xf,0x5b,0xe,0xc5,0xd, +0x13,0xc,0x36,0x9,0xce,0x5,0xf6,0x1,0x79,0xfe,0x8e,0xfb, +0x66,0xf9,0x5a,0xf9,0xfd,0xfa,0xf,0xfd,0xee,0xff,0xd5,0x2, +0x9b,0x3,0xe5,0x1,0x66,0xff,0xaf,0xfd,0xdb,0xfb,0x8e,0xf8, +0xd7,0xf5,0xa3,0xf5,0xd8,0xf5,0x81,0xf5,0xdd,0xf6,0x5d,0xf9, +0x3,0xfa,0x32,0xf9,0xeb,0xf8,0xcb,0xf8,0xc2,0xf7,0xbe,0xf6, +0xf9,0xf7,0xc4,0xfb,0xe7,0xff,0xb0,0x2,0xc6,0x3,0xf9,0x3, +0xa6,0x3,0xed,0x0,0x8,0xfd,0x65,0xfb,0x39,0xf9,0x17,0xf5, +0x31,0xf4,0xfb,0xf5,0x4e,0xf6,0x6e,0xf7,0xf9,0xfa,0x37,0xfe, +0x5d,0x0,0x2,0x2,0xd6,0x2,0x68,0x3,0x62,0x4,0x7c,0x4, +0xaa,0x2,0x0,0x0,0x38,0xfd,0x54,0xfa,0x97,0xf8,0x76,0xf9, +0xc1,0xfc,0xa1,0x0,0x6c,0x4,0x7e,0x9,0x8a,0xe,0xd5,0x10, +0x6,0x11,0x81,0xf,0x52,0xb,0xd2,0x5,0xc3,0x0,0x89,0xfc, +0xeb,0xf8,0x1d,0xf6,0x11,0xf6,0xa0,0xf8,0xb9,0xfa,0xc8,0xfc, +0x67,0x0,0x5b,0x3,0x8e,0x4,0x33,0x5,0xb0,0x4,0x93,0x2, +0xa1,0xff,0x2e,0xfc,0x6b,0xf9,0x66,0xf7,0x6c,0xf4,0xc,0xf2, +0xdf,0xf1,0x25,0xf1,0xa6,0xef,0x2d,0xf0,0x92,0xf2,0xc0,0xf5, +0x26,0xf9,0x8e,0xfc,0x36,0x1,0xdf,0x5,0xdd,0x7,0x3b,0x8, +0x9f,0x7,0xba,0x4,0x7b,0x0,0x76,0xfc,0x6e,0xf9,0x10,0xf8, +0x36,0xf8,0x50,0xfa,0x65,0xfe,0xb4,0x2,0x6c,0x7,0x87,0xc, +0x18,0xf,0xd7,0xf,0x3d,0x10,0x9d,0xc,0x73,0x6,0x98,0x3, +0xd6,0x0,0xf8,0xfa,0x6f,0xf7,0x3f,0xf7,0x87,0xf6,0x90,0xf6, +0x2b,0xf9,0x31,0xfc,0x39,0xfe,0x94,0x0,0x11,0x4,0x1f,0x6, +0xf0,0x4,0x6f,0x3,0xe1,0x2,0x95,0x0,0x64,0xfd,0x36,0xfc, +0x8d,0xfb,0xe6,0xfa,0x37,0xfd,0x30,0x1,0x8d,0x3,0xbb,0x5, +0xa4,0x8,0x23,0xa,0x30,0xa,0xee,0xa,0x68,0xc,0xf0,0xb, +0x31,0xa,0x5f,0xb,0x73,0xd,0x3e,0xc,0x13,0xb,0xcd,0xb, +0xaf,0xa,0x76,0x7,0xbb,0x4,0x5b,0x3,0x9d,0x2,0xb3,0x1, +0xad,0x1,0x6b,0x2,0x3f,0x2,0x4b,0x2,0xb9,0x2,0x42,0x1, +0xd3,0xfe,0x9b,0xfc,0x7a,0xf9,0x90,0xf6,0x76,0xf5,0xa8,0xf4, +0x29,0xf3,0xcc,0xf2,0xa8,0xf4,0xed,0xf6,0x13,0xf8,0x35,0xf9, +0x5f,0xfb,0xd3,0xfd,0xa,0x0,0xbc,0x1,0xd6,0x1,0xa1,0x0, +0x86,0xff,0x3,0xfe,0xc7,0xfb,0xbb,0xfa,0xb3,0xfb,0x6,0xfe, +0xbf,0x1,0xd9,0x6,0x7,0xc,0x4,0xf,0x9f,0xe,0xd0,0xb, +0x74,0x7,0x13,0x2,0xef,0xfc,0x94,0xf8,0x6e,0xf5,0x9a,0xf4, +0x79,0xf5,0x9b,0xf6,0x3c,0xf8,0x38,0xfa,0x3b,0xfb,0x2b,0xfb, +0x76,0xfa,0x72,0xf9,0x9c,0xf9,0xfc,0xfa,0xbc,0xfb,0x6b,0xfc, +0x2,0xfe,0xab,0xfe,0x74,0xfd,0x79,0xfb,0xe8,0xf9,0x91,0xf9, +0xfe,0xf9,0x68,0xfb,0x41,0xff,0x7b,0x3,0xd1,0x5,0x46,0x8, +0x3,0xa,0x58,0x8,0x5e,0x6,0x99,0x5,0xf1,0x2,0xe8,0xff, +0x14,0xff,0xc5,0xfe,0x68,0xfe,0x20,0xfe,0x84,0xfd,0x74,0xfd, +0x2c,0xfd,0xea,0xfb,0xf1,0xfa,0xf9,0xf9,0x6d,0xf9,0x18,0xfa, +0x29,0xfa,0xe9,0xf9,0x1b,0xfa,0xdf,0xf8,0x5d,0xf7,0x82,0xf7, +0x92,0xf7,0xb4,0xf6,0x85,0xf6,0x5d,0xf8,0xd4,0xfa,0x8b,0xfb, +0x7f,0xfc,0x60,0xff,0x50,0x1,0xe7,0x1,0xef,0x2,0xff,0x3, +0x48,0x5,0x20,0x7,0xaf,0x8,0xc,0xa,0x6a,0xb,0x32,0xc, +0x40,0xb,0x74,0x8,0xc,0x6,0x2c,0x4,0xf,0x1,0x5,0xff, +0x64,0xff,0x82,0xff,0xe0,0x0,0x75,0x5,0xf6,0x8,0x77,0x9, +0x86,0x9,0x60,0x8,0x10,0x4,0xfb,0xfd,0x4a,0xf9,0x7,0xf7, +0x75,0xf4,0xeb,0xf1,0x6f,0xf3,0x6e,0xf6,0xdd,0xf6,0x40,0xf8, +0x11,0xfc,0x2a,0xfe,0xce,0xfd,0xc8,0xfd,0x77,0xfe,0x9d,0xfd, +0xa,0xfc,0xb2,0xfc,0x20,0xfd,0x37,0xfb,0xf3,0xfa,0x18,0xfc, +0x34,0xfb,0x4,0xfb,0x48,0xfd,0x44,0xff,0x70,0x1,0x48,0x5, +0x9f,0x8,0x23,0xa,0x73,0xb,0xe8,0xb,0xf5,0x8,0x37,0x5, +0xee,0x3,0xb1,0x1,0xc,0xfe,0xc2,0xfd,0x77,0xff,0xc7,0x0, +0x2b,0x4,0xca,0x8,0x2e,0xc,0x6,0xe,0xcb,0xd,0x87,0xd, +0xe9,0xc,0x4e,0x8,0xb0,0x3,0x11,0x2,0x39,0xff,0x3e,0xfd, +0x35,0xfe,0x25,0xfe,0x7e,0xff,0xf1,0x3,0x9a,0x6,0xe1,0x7, +0x2c,0x9,0x2e,0x8,0x53,0x6,0x27,0x5,0x21,0x3,0xae,0x0, +0x74,0xff,0x4f,0xff,0xeb,0xfe,0x7f,0xfe,0x3a,0xff,0x45,0xff, +0xce,0xfc,0x2c,0xfa,0xf6,0xf8,0x9a,0xf7,0x15,0xf6,0x47,0xf6, +0x6a,0xf7,0x57,0xf8,0xfa,0xfa,0x7e,0xfe,0x5d,0xff,0xff,0xfe, +0x6a,0xff,0x6a,0xfe,0x5c,0xfb,0x4c,0xf8,0x37,0xf6,0x34,0xf4, +0xde,0xf1,0x7e,0xf1,0x77,0xf3,0xc5,0xf4,0x48,0xf6,0xa4,0xfa, +0x72,0xff,0x9a,0x2,0xda,0x5,0xfd,0x8,0xa0,0x9,0x94,0x7, +0x2f,0x4,0x47,0x0,0x56,0xfc,0xfc,0xf8,0x81,0xf7,0xf0,0xf7, +0x17,0xf9,0x2d,0xfc,0x31,0x1,0x91,0x4,0x62,0x6,0x30,0x8, +0xac,0x7,0x2d,0x5,0x69,0x3,0xde,0x1,0x16,0x0,0x15,0xff, +0x4e,0xff,0x1e,0x0,0x64,0x0,0x31,0x1,0xc9,0x2,0x41,0x2, +0x91,0x0,0x9,0x1,0xfa,0x1,0x51,0x1,0xf6,0x0,0xb6,0x2, +0xee,0x4,0x37,0x5,0x27,0x5,0xf9,0x5,0x41,0x4,0x98,0x0, +0x26,0xff,0x89,0xfd,0x96,0xf9,0x24,0xf7,0x12,0xf6,0x96,0xf3, +0x75,0xf2,0x8c,0xf4,0xed,0xf6,0x54,0xf9,0x85,0xfd,0xf7,0x0, +0xc5,0x0,0x46,0xff,0x97,0xfe,0x65,0xfc,0x18,0xf8,0xa4,0xf4, +0x9e,0xf2,0x9,0xf1,0xa2,0xf1,0x96,0xf5,0x22,0xfa,0x8e,0xfd, +0xd6,0x1,0x30,0x6,0x26,0x7,0xfa,0x5,0xb,0x5,0x92,0x3, +0x70,0x2,0x85,0x2,0xa2,0x2,0x6d,0x3,0x77,0x4,0x9c,0x3, +0x5b,0x2,0xb0,0x2,0x2e,0x3,0x1b,0x2,0x43,0x0,0x36,0x0, +0xa9,0x1,0xac,0x1,0x73,0x1,0xd0,0x3,0x22,0x6,0xfe,0x5, +0x77,0x6,0xde,0x7,0x3b,0x6,0x7,0x3,0x41,0x1,0x16,0xfe, +0xda,0xf9,0xcf,0xf8,0x9b,0xf9,0x38,0xfa,0xde,0xfc,0xd8,0x1, +0xae,0x6,0x15,0xa,0xeb,0xb,0xc2,0xa,0x19,0x6,0x77,0x1, +0xd7,0xfd,0xcb,0xf8,0x31,0xf5,0x41,0xf6,0x83,0xf9,0x47,0xfd, +0xe6,0x1,0x6b,0x7,0x31,0xc,0x6e,0xc,0x95,0x9,0xea,0x7, +0xb3,0x4,0xf5,0xfe,0xae,0xfb,0xd,0xfa,0x23,0xf7,0x3e,0xf6, +0xb8,0xf8,0xf5,0xfa,0x50,0xfc,0x10,0xff,0xa4,0x2,0x96,0x4, +0x49,0x4,0x93,0x2,0xeb,0xff,0xc2,0xfb,0xfa,0xf5,0x2f,0xf1, +0x67,0xef,0xef,0xee,0x36,0xf0,0x23,0xf6,0xa7,0xfd,0x65,0x2, +0x1b,0x7,0x47,0xc,0x3c,0xc,0x81,0x7,0x74,0x3,0x78,0xff, +0x6,0xfa,0x22,0xf7,0xe5,0xf8,0x99,0xfb,0xb0,0xfd,0x32,0x2, +0x0,0x8,0x89,0xa,0x30,0xb,0x94,0xc,0x19,0xc,0x22,0x9, +0x89,0x6,0xf0,0x4,0xb0,0x3,0x7e,0x2,0xcc,0x1,0x0,0x2, +0x91,0x1,0xba,0x0,0xe7,0x0,0x2,0x0,0x2,0xfe,0x75,0xfd, +0xc4,0xfc,0x9f,0xfb,0xe6,0xfb,0x75,0xfb,0x89,0xfa,0xc,0xfc, +0xce,0xfd,0x5d,0xfe,0xc1,0xff,0x45,0x1,0xaa,0x1,0x6f,0x1, +0xa1,0x0,0x9d,0xff,0xd4,0xfe,0xf,0xfe,0x71,0xfd,0x88,0xfd, +0x26,0xfe,0x45,0xfe,0x23,0xff,0x33,0x2,0x4f,0x4,0x65,0x4, +0x85,0x5,0x27,0x6,0xe6,0x3,0xf,0x1,0x12,0xff,0x24,0xfd, +0xed,0xfa,0x80,0xfa,0x32,0xfd,0x84,0xfe,0x48,0xfe,0xe4,0x1, +0x9,0x5,0xc6,0x3,0x9d,0x3,0xc,0x3,0x4b,0xff,0xf3,0xfd, +0x4b,0xfe,0xe8,0xfc,0xf0,0xfd,0x3f,0x2,0xfa,0x5,0xa0,0x8, +0x72,0xb,0x9f,0xd,0xd3,0xc,0xde,0xa,0xd2,0xa,0xa1,0x8, +0x1c,0x4,0xae,0x4,0xe9,0x6,0xe5,0x3,0x1f,0x2,0x4,0x5, +0x8c,0x5,0x86,0x3,0x7,0x4,0xee,0x5,0xa,0x6,0x1b,0x5, +0x88,0x5,0xb,0x6,0x3b,0x4,0x10,0x3,0x8b,0x3,0x5d,0x1, +0xa4,0xfe,0x5b,0xfe,0x60,0xfc,0x7a,0xfa,0x27,0xfc,0xea,0xfb, +0xb7,0xf9,0x54,0xfa,0x3,0xfa,0x64,0xf7,0x0,0xf7,0x9,0xf8, +0x3e,0xf8,0xcf,0xf8,0x99,0xfa,0x27,0xfc,0xe9,0xfa,0x93,0xf8, +0x14,0xf8,0xa8,0xf6,0x80,0xf3,0x24,0xf1,0x0,0xef,0xf,0xef, +0x54,0xf2,0xed,0xf3,0x9d,0xf5,0x70,0xfa,0xfd,0xfb,0x5a,0xfa, +0x87,0xfb,0x6c,0xfb,0xc,0xf8,0xc3,0xf7,0x7b,0xf9,0x4e,0xf8, +0xb2,0xf6,0xbb,0xf7,0xa9,0xf9,0x6b,0xfa,0xca,0xfb,0x2c,0xff, +0xdd,0xff,0x3c,0xfd,0x8e,0xfe,0x88,0x1,0x40,0xff,0x57,0xfd, +0x7,0xff,0xb0,0xfd,0x54,0xfa,0x64,0xfa,0xb,0xfc,0x74,0xfc, +0x73,0xfd,0xea,0x0,0x0,0x3,0xd9,0x0,0xb8,0xff,0x8c,0x0, +0x9a,0xfe,0xe4,0xfc,0x64,0xfd,0x60,0xfc,0xe7,0xfb,0x46,0xfd, +0x85,0xfd,0x72,0xfe,0x6c,0x0,0xd4,0xff,0x6,0xfe,0xa0,0xfd, +0x27,0xfd,0xd5,0xfb,0xa3,0xfb,0xe1,0xfc,0xd9,0xfc,0xf4,0xfb, +0x5a,0xfd,0xe6,0xfe,0x44,0xfe,0xc3,0xfe,0x9,0x0,0xd4,0xfe, +0x4a,0xfe,0x3,0x0,0xb1,0xff,0xb6,0xfe,0xce,0x0,0x8,0x2, +0x87,0x0,0xe2,0x0,0x8e,0x2,0x1,0x2,0xb6,0x1,0xf3,0x3, +0x7e,0x5,0xe7,0x4,0x7,0x5,0xc1,0x5,0x90,0x4,0xb5,0x3, +0xfb,0x4,0x20,0x4,0x32,0x1,0xe1,0x1,0x84,0x4,0xe4,0x3, +0xb3,0x3,0x54,0x8,0x1c,0xc,0xb1,0xa,0xbf,0x9,0x68,0xa, +0xf5,0x5,0x41,0x0,0x80,0x1,0xb0,0x2,0x9a,0xfe,0x36,0xff, +0xad,0x5,0x7e,0x8,0x40,0x9,0xbd,0xc,0x22,0xf,0x98,0xd, +0xa,0xa,0x24,0x7,0xd3,0x4,0x69,0x0,0x43,0xfc,0x83,0xfc, +0xae,0xfe,0x7b,0x0,0xc6,0x2,0x4f,0x5,0x99,0x7,0x9,0x8, +0xe9,0x6,0xb7,0x6,0x6d,0x4,0x2d,0xff,0x44,0xfd,0x58,0xfe, +0xd9,0xfd,0x5a,0xfd,0xb1,0xfe,0xab,0x0,0x96,0x1,0xe2,0x1, +0x8,0x4,0xe4,0x4,0xc7,0x1,0x0,0x2,0xce,0x5,0x71,0x3, +0xca,0xfe,0xe6,0x0,0x3d,0x3,0x6e,0x0,0xeb,0xff,0x1d,0x3, +0xd2,0x2,0xa8,0x0,0x6d,0x3,0x70,0x6,0x76,0x2,0xf9,0xfe, +0xc,0x2,0xc4,0x1,0x90,0xfb,0x9c,0xfa,0x1d,0xff,0xd3,0x0, +0x86,0x0,0xed,0x1,0xf0,0x2,0x1e,0x1,0x10,0x0,0xce,0x1, +0xd0,0xff,0x79,0xfa,0x29,0xfa,0xed,0xfa,0xef,0xf7,0x86,0xf8, +0x84,0xfc,0x47,0xfd,0x3b,0xfd,0x63,0xfe,0x8a,0xfd,0xaa,0xfa, +0xdd,0xf8,0x67,0xf9,0x2b,0xf9,0x36,0xf6,0xdd,0xf4,0xa4,0xf6, +0xf7,0xf6,0x4e,0xf6,0x27,0xf9,0x86,0xfc,0x9a,0xfa,0xf9,0xf6, +0xd1,0xf7,0xb6,0xf9,0x2a,0xf8,0xae,0xf7,0x86,0xfb,0xef,0xfd, +0xb1,0xfb,0x43,0xfa,0x3b,0xfb,0x96,0xf9,0x15,0xf7,0x72,0xf9, +0xb9,0xfc,0xbb,0xfa,0x9a,0xf8,0x4c,0xfc,0x68,0xff,0x68,0xfd, +0xca,0xfd,0xd4,0x0,0x2b,0xfe,0xea,0xf9,0x1f,0xfb,0x15,0xfc, +0xf3,0xf9,0xe7,0xfa,0x1,0xff,0x41,0x0,0xa9,0xfe,0x11,0xff, +0x86,0x0,0xf0,0xfe,0x95,0xfd,0xcf,0xff,0x6d,0x0,0x89,0xfd, +0xa8,0xfc,0x38,0xfe,0xc7,0xfd,0xb5,0xfb,0x4b,0xfb,0x75,0xfc, +0xdf,0xfc,0x7c,0xfc,0xe0,0xfc,0x2b,0xfd,0x4a,0xfc,0x27,0xfc, +0xb3,0xfc,0xb4,0xfb,0xcb,0xf9,0x7b,0xf7,0xc6,0xf4,0x34,0xf4, +0x3c,0xf5,0x49,0xf5,0x73,0xf6,0x7a,0xf9,0x44,0xfb,0x68,0xfc, +0xbb,0xfe,0xfe,0xff,0xac,0xfe,0xfc,0xfc,0xf1,0xfb,0xda,0xf9, +0x59,0xf7,0xc6,0xf6,0xa0,0xf7,0x7,0xf9,0xe1,0xfb,0x85,0xff, +0xb3,0x1,0x55,0x2,0x96,0x3,0xb5,0x4,0x12,0x3,0x2e,0x1, +0x37,0x1,0x94,0xff,0x65,0xfd,0x81,0xff,0x78,0x2,0x86,0x2, +0x33,0x4,0x54,0x8,0xf0,0x8,0xe7,0x6,0xa7,0x7,0xe,0x8, +0xbf,0x4,0xb0,0x3,0x3d,0x6,0xc2,0x5,0x4e,0x3,0x40,0x5, +0x8b,0x9,0xcc,0xa,0xf7,0xa,0xf6,0xc,0xd,0xd,0x36,0xa, +0xd,0xa,0xcf,0xb,0x2c,0x9,0xe3,0x4,0xe7,0x5,0x39,0x9, +0xb3,0x8,0xc1,0x7,0x36,0xb,0x78,0xe,0xb6,0xc,0xee,0x9, +0xeb,0x9,0xd2,0x8,0xa6,0x4,0x57,0x3,0x54,0x6,0x83,0x6, +0xeb,0x3,0xfa,0x5,0x4a,0xb,0xc,0xc,0xb0,0x8,0x48,0x7, +0x11,0x7,0xe4,0x4,0xe1,0x3,0xe,0x4,0x7d,0x2,0x18,0x4, +0x2b,0x9,0xef,0x9,0xfc,0x8,0x2f,0xb,0x95,0xb,0x5e,0xa, +0xe1,0xc,0xc5,0xe,0x45,0xb,0xae,0xa,0x30,0x11,0xce,0x10, +0x21,0x6,0x66,0x4,0x86,0xc,0x67,0xa,0xaa,0x2,0xac,0x7, +0x76,0x10,0xdd,0xd,0x4,0xa,0xf7,0xe,0x1c,0x11,0xce,0x9, +0xd3,0x4,0xf3,0x5,0xa6,0x2,0x1e,0xfc,0xad,0xfd,0xe3,0x2, +0x4f,0x2,0x99,0x2,0xc9,0x7,0xc8,0x9,0xa0,0x6,0x2f,0x2, +0x9e,0x0,0xf,0x3,0xdc,0xff,0x1f,0xf7,0xb,0xf8,0x76,0xfc, +0x66,0xf5,0xf7,0xef,0x7c,0xf7,0xc4,0xfc,0x94,0xf9,0x11,0xfc, +0x63,0x5,0x3,0x8,0x67,0x6,0xb8,0xa,0x5f,0xc,0x20,0x4, +0x19,0xfe,0x6d,0xfd,0x3a,0xf6,0x23,0xed,0x10,0xf0,0x59,0xf6, +0xa5,0xf4,0xaa,0xf6,0xff,0x0,0x13,0x5,0x40,0x2,0xa8,0x3, +0x98,0x5,0x5c,0x0,0xa4,0xfa,0x24,0xf9,0x86,0xf3,0x26,0xed, +0x75,0xf1,0x2b,0xf4,0xb3,0xec,0x94,0xed,0xa7,0xf6,0x5b,0xf5, +0xd9,0xf0,0xc0,0xf5,0x13,0xfb,0x8a,0xf9,0x1b,0xf8,0x88,0xfa, +0xaf,0xfa,0x2,0xf8,0xda,0xf8,0x86,0xfa,0xbc,0xf8,0x59,0xf8, +0x4d,0xfa,0x53,0xf9,0xf9,0xf5,0x50,0xf5,0xd7,0xf6,0xa4,0xf5, +0xb2,0xf2,0xfc,0xf1,0x3a,0xf3,0x0,0xf6,0x70,0xf8,0x69,0xf8, +0x66,0xfa,0x98,0xfe,0x4a,0xfc,0x2,0xf4,0x25,0xf1,0xb,0xf4, +0xf9,0xf0,0xde,0xea,0x7b,0xee,0xf8,0xf4,0x3a,0xf5,0xaf,0xf7, +0x59,0xfd,0x94,0xfe,0x12,0xfe,0xd9,0xfe,0x27,0xfd,0x9f,0xf8, +0x38,0xf7,0x7,0xfa,0xf8,0xf9,0x2d,0xf9,0x98,0xfe,0xc0,0x3, +0xbe,0x4,0x73,0x7,0xc0,0xa,0x21,0xb,0x51,0xa,0xaa,0x9, +0xdf,0x6,0x35,0x1,0xdd,0xff,0x2c,0x2,0xe7,0xfd,0x48,0xfb, +0x84,0x2,0x54,0x4,0xbf,0xfe,0x65,0x0,0x76,0x5,0x4d,0x4, +0x95,0x0,0xa1,0xfe,0xaf,0xfc,0x7d,0xf9,0x9e,0xf7,0xad,0xf7, +0x70,0xf6,0x35,0xf5,0xc,0xf7,0xb9,0xf7,0x74,0xf4,0xb4,0xf3, +0x7a,0xf6,0xbb,0xf4,0xc9,0xf0,0xa1,0xf1,0xae,0xf2,0xa8,0xf2, +0x62,0xf6,0x72,0xfa,0xca,0xfc,0xdf,0xff,0x5f,0x1,0x79,0x0, +0x9b,0xff,0xdb,0xfe,0x71,0xfc,0xbd,0xf8,0x95,0xf8,0x69,0xfb, +0x22,0xfc,0xcd,0xfe,0x89,0x4,0x1f,0x7,0x6b,0x9,0xe4,0xc, +0xb3,0xb,0x11,0x8,0x9,0x6,0xfc,0x3,0x78,0x1,0x58,0xff, +0x7a,0xff,0x98,0x2,0x16,0x5,0xc6,0x5,0x2c,0x8,0xaf,0xc, +0x71,0xe,0x26,0xc,0xe8,0xa,0xd8,0xa,0xb6,0x7,0x79,0x3, +0x2a,0x1,0x42,0x0,0x14,0x0,0x85,0xff,0x52,0x0,0x61,0x4, +0xd7,0x7,0xd3,0x9,0x14,0xd,0x8a,0xe,0xce,0xc,0x29,0xc, +0x33,0xb,0x39,0x6,0x59,0x2,0x3f,0x3,0x29,0x3,0xc8,0x1, +0x8b,0x4,0x41,0x7,0x6e,0x5,0x4b,0x4,0x2c,0x4,0x1a,0x0, +0x6c,0xfb,0xc7,0xfa,0x81,0xfa,0xa5,0xf8,0x20,0xfa,0x4b,0xff, +0x73,0x2,0xe1,0x2,0x50,0x3,0x0,0x3,0x1a,0x0,0x96,0xfa, +0xcb,0xf5,0x86,0xf4,0xf4,0xf2,0x4a,0xf0,0xaf,0xf2,0x67,0xf8, +0xdc,0xfb,0x8f,0xff,0x53,0x4,0x4a,0x7,0x46,0x9,0xd7,0x9, +0x89,0x8,0x41,0x7,0x8,0x4,0xbc,0xff,0x23,0xff,0xf3,0xfe, +0x9a,0xfc,0x73,0xfd,0x9f,0x1,0x56,0x5,0xf8,0x8,0x9c,0xc, +0xc8,0xe,0x30,0xe,0x56,0xb,0xbc,0x8,0x43,0x5,0x46,0xff, +0x63,0xfa,0x7c,0xf8,0xe1,0xf7,0x94,0xf8,0x34,0xfb,0xfb,0xfe, +0xaf,0x1,0x4f,0x2,0xb8,0x2,0x47,0x2,0xcc,0xfe,0xa5,0xfa, +0xed,0xf8,0xe1,0xf8,0xe2,0xf8,0x86,0xf9,0xcd,0xfb,0xd6,0xfd, +0x4,0xfe,0xdb,0xfd,0x31,0xfd,0x3d,0xfa,0xa1,0xf6,0x1f,0xf5, +0xa2,0xf5,0x34,0xf7,0xf9,0xf9,0x8a,0xfd,0xf0,0x0,0x7b,0x3, +0xcd,0x3,0x28,0x2,0x40,0x0,0xe1,0xfc,0x48,0xf8,0xe9,0xf5, +0x5f,0xf5,0x5c,0xf5,0x71,0xf7,0x6c,0xfb,0xea,0xff,0xe4,0x3, +0x8d,0x6,0x4f,0x8,0xe3,0x8,0xb1,0x8,0x6e,0x8,0x4e,0x6, +0xf6,0x3,0xf0,0x3,0xd7,0x2,0x40,0x1,0x40,0x3,0x1f,0x5, +0xaa,0x3,0x8a,0x2,0x89,0x3,0xa6,0x4,0x4b,0x4,0xbb,0x3, +0x2a,0x5,0x93,0x6,0x87,0x5,0xc6,0x4,0xfe,0x4,0xb9,0x2, +0xf9,0xff,0x5e,0x0,0x45,0x0,0xea,0xfd,0x84,0xfc,0xb6,0xfa, +0x7f,0xf7,0xb,0xf6,0x84,0xf5,0x56,0xf4,0x42,0xf4,0xa1,0xf5, +0x91,0xf7,0xac,0xf9,0xd6,0xfc,0x3a,0x0,0x5c,0xff,0xeb,0xfb, +0x12,0xfa,0x7a,0xf5,0x76,0xee,0x7c,0xeb,0x3c,0xeb,0xda,0xeb, +0x91,0xed,0x18,0xef,0x49,0xf3,0xab,0xf8,0xb7,0xf9,0x8a,0xfa, +0x8b,0xfd,0xa0,0xfd,0xa2,0xfb,0xf4,0xfa,0x6c,0xfb,0x12,0xfc, +0xa0,0xfb,0x7b,0xfb,0x94,0xfc,0xeb,0xfb,0xd6,0xfa,0x45,0xfd, +0xac,0x0,0x24,0x2,0x64,0x4,0xc1,0x8,0xc6,0xb,0xcc,0xb, +0x4c,0xb,0x2e,0xb,0xdf,0x9,0x70,0x7,0x6d,0x5,0x67,0x4, +0xf2,0x3,0x72,0x4,0x13,0x6,0x10,0x7,0xdb,0x6,0x54,0x6, +0x9b,0x4,0x41,0x2,0xd0,0x1,0x92,0x2,0x2a,0x3,0xe,0x5, +0xab,0x7,0x8f,0x8,0xe7,0x8,0x60,0x9,0xf2,0x6,0x88,0x2, +0x2b,0xff,0xa8,0xfb,0xe8,0xf8,0x5,0xf9,0xbe,0xf9,0xce,0xfb, +0xc,0x1,0x90,0x5,0x31,0x7,0x52,0x7,0x89,0x6,0x56,0x5, +0xdf,0x2,0x5a,0xff,0x3d,0xfd,0xc4,0xfb,0xf3,0xf9,0x9e,0xf9, +0xac,0xfa,0x81,0xfb,0xde,0xfb,0x71,0xfd,0x91,0x0,0xcf,0x1, +0xa3,0x1,0xe4,0x3,0xb3,0x5,0x68,0x4,0xe7,0x3,0x95,0x4, +0x1b,0x3,0xe4,0x0,0x75,0x1,0x2d,0x4,0xa0,0x6,0x4,0x9, +0x4f,0xc,0xb5,0xf,0x88,0x11,0x47,0x11,0x5e,0x11,0xab,0x11, +0xa0,0xe,0x24,0xc,0xc2,0xe,0x58,0x10,0x38,0xf,0xa9,0x11, +0xa8,0x15,0xf6,0x15,0x48,0x14,0x96,0x12,0x2c,0xf,0x72,0x9, +0x6,0x5,0x5f,0x4,0x57,0x4,0xce,0x3,0x57,0x6,0xe0,0xb, +0x66,0x10,0x3,0x12,0x20,0x12,0xc6,0x11,0xad,0xe,0x23,0x8, +0x9a,0x2,0x5b,0x0,0xd0,0xfe,0x28,0xfe,0x92,0x1,0x2e,0x7, +0xb6,0xa,0x34,0xd,0xec,0xf,0x8d,0x10,0x7,0xf,0xf7,0xc, +0xb3,0xa,0x6,0x8,0x40,0x4,0xac,0x1,0x81,0x2,0x11,0x3, +0xb1,0x2,0x7b,0x4,0xba,0x5,0xa9,0x5,0xa4,0x7,0x1a,0x9, +0x24,0x8,0xb6,0x6,0xe,0x2,0x30,0xf9,0x40,0xf1,0x50,0xeb, +0x1e,0xe5,0x82,0xe0,0x91,0xe0,0xd9,0xe4,0xcc,0xe9,0x7,0xee, +0x83,0xf3,0x29,0xf7,0x34,0xf4,0xee,0xee,0xa3,0xe9,0x7f,0xdf, +0x89,0xd4,0xb3,0xcf,0xf7,0xcd,0xf0,0xcd,0x23,0xd2,0x4e,0xd8, +0x9d,0xdd,0xb6,0xe1,0x6e,0xe5,0x58,0xe8,0xaa,0xe7,0xa4,0xe5, +0xba,0xe5,0x9b,0xe4,0x16,0xe3,0x62,0xe5,0xff,0xe7,0x5,0xe9, +0x12,0xec,0x18,0xf0,0xb2,0xf1,0x4e,0xf2,0x29,0xf5,0x83,0xf8, +0x66,0xf9,0x51,0xfb,0xcf,0xff,0x27,0x2,0x42,0x3,0x25,0x7, +0x5c,0xb,0x8b,0xd,0xdb,0xf,0xfc,0x12,0xa6,0x14,0x4f,0x14, +0xa5,0x13,0x9b,0x12,0xb5,0x10,0x6e,0xf,0x63,0xf,0xc0,0xf, +0x84,0x10,0x14,0x13,0x55,0x17,0xfc,0x19,0xf0,0x1a,0x85,0x1c, +0x2f,0x1b,0xfa,0x14,0xea,0xe,0x7a,0xa,0xb0,0x5,0xe0,0x1, +0xa2,0x0,0xcb,0x0,0xb8,0x0,0x7c,0x1,0xf8,0x3,0xff,0x4, +0x13,0x3,0x26,0x0,0x2a,0xfc,0xdb,0xf6,0x9b,0xf1,0x48,0xed, +0xbb,0xea,0x92,0xe9,0xf3,0xe7,0xc7,0xe6,0x80,0xe8,0xa0,0xea, +0x62,0xe9,0x82,0xe8,0x2,0xeb,0xed,0xea,0xf6,0xe6,0xd0,0xe5, +0x34,0xe7,0xe,0xe6,0x95,0xe4,0x3a,0xe7,0x72,0xea,0x10,0xea, +0x46,0xeb,0x52,0xf0,0x9e,0xf2,0xfb,0xf2,0x67,0xf6,0x8a,0xf9, +0x18,0xfa,0x55,0xfb,0xd3,0xfe,0x8c,0x2,0x30,0x4,0xbd,0x6, +0xf9,0xb,0x87,0xe,0xfa,0xe,0xa,0x12,0x1f,0x14,0x37,0x13, +0xfe,0x12,0xd0,0x13,0xb9,0x14,0x24,0x16,0x5d,0x18,0x3,0x1b, +0x12,0x1d,0x5e,0x1f,0x5f,0x21,0x5b,0x20,0x52,0x1e,0xa,0x1d, +0xd,0x1a,0xa6,0x16,0x97,0x14,0xa2,0x11,0xda,0xe,0xf8,0xe, +0x69,0xf,0xc5,0xd,0xf7,0xc,0xe0,0xd,0x8e,0xc,0x56,0x9, +0xa3,0x7,0xb0,0x5,0x95,0x1,0x97,0xfd,0x27,0xfb,0x94,0xf9, +0x79,0xf7,0x49,0xf5,0x18,0xf5,0x64,0xf5,0x51,0xf4,0xbf,0xf3, +0x9d,0xf3,0xbc,0xf2,0x80,0xf2,0xca,0xf2,0xa9,0xf2,0xf1,0xf2, +0x7c,0xf3,0xdb,0xf3,0x95,0xf4,0x40,0xf5,0x4d,0xf5,0xf1,0xf4, +0x53,0xf4,0x16,0xf4,0xca,0xf4,0xa,0xf6,0xd8,0xf7,0x39,0xfa, +0x5f,0xfc,0x98,0xfe,0x6e,0x1,0xac,0x3,0xad,0x4,0x7b,0x5, +0xcc,0x6,0xc1,0x7,0x29,0x7,0x93,0x6,0xf9,0x7,0x66,0x9, +0xcb,0x9,0x57,0xb,0x68,0xd,0xfa,0xd,0x7,0xe,0x6c,0xe, +0x98,0xe,0x91,0xe,0x7f,0xe,0x40,0xe,0xbb,0xd,0xbf,0xc, +0xcb,0xb,0xcc,0xb,0xec,0xb,0x1,0xb,0x33,0xa,0xd8,0x9, +0x83,0x8,0xef,0x6,0x73,0x6,0x4c,0x6,0x60,0x5,0xcd,0x3, +0x4f,0x3,0xb3,0x3,0x3f,0x2,0x2,0x0,0xca,0xfe,0x7e,0xfc, +0x93,0xf9,0x37,0xf8,0x56,0xf7,0x75,0xf6,0x18,0xf6,0x70,0xf6, +0x11,0xf8,0x6f,0xf9,0x68,0xf9,0x1,0xfa,0xd8,0xfa,0x64,0xf9, +0x3d,0xf7,0x20,0xf7,0x9,0xf7,0x30,0xf5,0x78,0xf4,0xa2,0xf5, +0x57,0xf6,0x6d,0xf7,0xe2,0xf9,0xc7,0xfb,0x54,0xfc,0xb0,0xfc, +0xef,0xfd,0x13,0xff,0x92,0xfe,0x1d,0xfe,0xe6,0xfe,0xe3,0xfe, +0xd2,0xfd,0x8f,0xfd,0x46,0xfe,0x44,0xfe,0x5d,0xfd,0x3a,0xfe, +0x6f,0x0,0x91,0x0,0xf9,0xff,0x39,0x1,0xed,0x1,0x5b,0x0, +0x35,0xff,0xe0,0xff,0x72,0xff,0x5c,0xfd,0x2c,0xfd,0x35,0xfe, +0x68,0xfd,0x7c,0xfc,0xc,0xfd,0x93,0xfd,0xe,0xfd,0xdb,0xfb, +0xa9,0xfb,0x63,0xfc,0x93,0xfb,0x51,0xfa,0xb5,0xfa,0xc3,0xfa, +0xb5,0xf9,0x71,0xf9,0x4,0xfa,0x63,0xfa,0x22,0xfa,0x52,0xf9, +0x3,0xf9,0x56,0xf9,0xd2,0xf8,0xd1,0xf7,0xe8,0xf7,0x70,0xf8, +0x59,0xf8,0x3c,0xf8,0x1d,0xf9,0x2c,0xfb,0xda,0xfc,0x38,0xfd, +0xfc,0xfd,0x1b,0xff,0x68,0xfe,0xeb,0xfc,0xa2,0xfc,0x6c,0xfc, +0x84,0xfb,0x87,0xfb,0x11,0xfd,0xc1,0xfe,0x1d,0x0,0x52,0x2, +0x3f,0x5,0xf,0x7,0xe4,0x7,0xea,0x8,0x4d,0x8,0x4d,0x5, +0xf6,0x2,0x2e,0x1,0x8b,0xfe,0xe3,0xfd,0x50,0xff,0xd8,0xff, +0xc7,0x0,0xb3,0x3,0x7d,0x6,0x98,0x6,0xa0,0x4,0xca,0x3, +0x79,0x2,0x66,0xfd,0xcc,0xf9,0x17,0xfb,0x85,0xfb,0x2b,0xfa, +0x31,0xfc,0x2c,0x0,0x12,0x0,0x5,0xfd,0xcf,0xfc,0xe8,0xfc, +0xe7,0xf8,0x8e,0xf6,0x14,0xf9,0xfc,0xfa,0xea,0xfb,0x74,0xff, +0x0,0x4,0x17,0x6,0x82,0x5,0xbf,0x4,0xb1,0x3,0x2d,0x0, +0x49,0xfd,0xdc,0xfd,0x7b,0xfe,0x19,0xff,0xf6,0x2,0x22,0x7, +0xae,0x8,0x45,0xa,0x5,0xc,0x1b,0xb,0xde,0x8,0xdd,0x7, +0xe5,0x6,0xfc,0x4,0xa7,0x4,0x25,0x7,0x66,0x9,0x95,0x9, +0xf,0xa,0x85,0xb,0x9e,0xb,0xb6,0xa,0xd4,0xa,0xb4,0xa, +0xab,0x8,0xfe,0x6,0xad,0x7,0x75,0x8,0x42,0x8,0xbb,0x9, +0xf1,0xb,0x83,0xb,0x26,0xb,0xa8,0xc,0xe1,0xa,0xb0,0x6, +0xd3,0x5,0xda,0x4,0x16,0x1,0x18,0x0,0xf4,0x1,0xdf,0x2, +0x14,0x4,0x4e,0x6,0x31,0x8,0x45,0x8,0xaf,0x5,0xae,0x3, +0x9b,0x3,0x5b,0x1,0x92,0xfd,0xeb,0xfc,0xb3,0xfd,0x5d,0xfc, +0x54,0xfc,0x84,0x0,0x6c,0x3,0x47,0x2,0x28,0x2,0x8e,0x3, +0xa1,0x2,0xf5,0xff,0x4d,0xfe,0xc7,0xfe,0x53,0xff,0x84,0xfe, +0x6e,0xff,0xf2,0x1,0x6e,0x3,0xda,0x5,0x3a,0x8,0xc,0x7, +0x32,0x5,0x24,0x5,0xdd,0x4,0x2,0x5,0xa7,0x7,0xfa,0xa, +0x45,0xc,0x41,0xc,0xf,0xc,0x6c,0xa,0x6a,0x7,0x8f,0x5, +0xd3,0x5,0xdb,0x5,0xc3,0x4,0xf1,0x5,0x60,0x9,0x14,0xb, +0x48,0xc,0x3a,0xe,0xa8,0xc,0x12,0x7,0x87,0x1,0x2e,0xfd, +0xf2,0xf8,0xed,0xf5,0x8e,0xf6,0xc1,0xf9,0xf9,0xfc,0x65,0xff, +0x93,0xff,0x83,0xff,0x25,0x2,0xa3,0x1,0x59,0xfc,0xfe,0xfa, +0xd5,0xfb,0xe,0xf8,0x2e,0xf7,0xff,0xfc,0xa2,0xfe,0x98,0xfb, +0xee,0xfc,0xa6,0xfd,0xe0,0xf7,0x6c,0xf5,0xc,0xfb,0xc3,0xfe, +0xf,0xfd,0x73,0x0,0xdc,0xa,0x8d,0xc,0x40,0x4,0x4a,0x4, +0xd3,0x6,0xe7,0xf9,0x38,0xee,0xce,0xf3,0x4c,0xf6,0xf1,0xef, +0xa8,0xf7,0xdd,0x7,0x64,0x7,0x64,0x0,0xcf,0x5,0x84,0x8, +0xa5,0xfc,0x7b,0xf4,0x83,0xf9,0xd2,0xfb,0x28,0xf5,0xd7,0xf5, +0xd8,0xff,0xeb,0xfe,0xf0,0xf4,0x4,0xf5,0x90,0xf6,0xf6,0xeb, +0x60,0xe4,0x6d,0xe9,0x1b,0xed,0x7e,0xed,0x7b,0xf6,0x9f,0x0, +0xdf,0xff,0x1d,0xfe,0x3d,0xff,0x17,0xf8,0x61,0xee,0x8f,0xec, +0x5e,0xeb,0x7f,0xe7,0x3a,0xe7,0x24,0xea,0xbf,0xed,0x3c,0xf2, +0x1a,0xf6,0xbf,0xf8,0xcc,0xf9,0x85,0xf8,0x16,0xfa,0x13,0x0, +0x96,0x0,0x15,0xfd,0xa7,0x1,0x50,0x5,0x32,0xfd,0xcd,0xf7, +0x73,0xfa,0x44,0xf8,0xa8,0xf4,0x3e,0xf8,0x36,0xfc,0x8a,0xfd, +0x5e,0x1,0x86,0x6,0xc0,0x9,0xca,0xa,0x40,0x9,0xbe,0x6, +0x89,0x4,0x90,0x1,0xfe,0x0,0xf7,0x3,0x93,0x3,0x4b,0x0, +0x58,0x0,0x94,0xfe,0x17,0xf8,0x62,0xf6,0x5c,0xf9,0xa5,0xf7, +0xa4,0xf4,0x3f,0xf7,0x26,0xfa,0x66,0xfa,0x73,0xfe,0xad,0x4, +0x23,0x4,0x16,0xff,0x8a,0xfc,0x36,0xf9,0x15,0xf3,0xe2,0xf0, +0xf9,0xf2,0x43,0xf3,0x63,0xf1,0x86,0xef,0x59,0xef,0x7b,0xf2, +0x5c,0xf6,0x39,0xf9,0x69,0xfc,0xc0,0xfe,0xf3,0xff,0x25,0x0, +0x2f,0xfe,0xcb,0xfd,0xda,0xfe,0x77,0xfa,0xb5,0xf4,0x22,0xf5, +0x58,0xf6,0x8d,0xf5,0x14,0xfa,0xe7,0x3,0xac,0xa,0x4c,0xc, +0x17,0xd,0x3f,0xe,0x99,0xc,0xee,0x6,0x47,0x1,0x6f,0xfe, +0xf4,0xfa,0x8d,0xf6,0x7e,0xf7,0xef,0xfd,0x41,0x3,0x2d,0x6, +0x46,0xa,0xe6,0xd,0x21,0xb,0x6e,0x4,0x58,0x2,0xc7,0x2, +0xb6,0xfe,0xa3,0xf9,0xa3,0xf9,0xcb,0xfc,0x1a,0xfe,0x92,0xfd, +0x16,0x0,0xf1,0x3,0x73,0x0,0x60,0xf8,0xb6,0xf6,0xf0,0xf7, +0x9e,0xf3,0x89,0xf1,0xe2,0xf7,0x45,0xfd,0xd7,0xfe,0x0,0x3, +0x4,0x8,0xa3,0x9,0xe5,0x7,0xaa,0x3,0xd8,0xff,0xf0,0xfb, +0xce,0xf4,0x7b,0xf0,0x93,0xf4,0xcc,0xf9,0x42,0xfc,0x89,0x2, +0x3,0xb,0xac,0xd,0xc2,0xd,0x31,0x10,0x10,0x10,0x2e,0xb, +0x70,0x5,0xa4,0x0,0xad,0xfd,0x3,0xfd,0x3f,0xfd,0xb7,0xfe, +0x29,0x3,0xbe,0x7,0x83,0x8,0xb1,0x9,0x5f,0xd,0x1e,0xc, +0xd6,0x7,0xaf,0x7,0xad,0x5,0xe3,0xff,0xbf,0xfe,0x39,0x1, +0x6a,0x1,0x69,0x0,0x80,0x1,0x5c,0x3,0x53,0x1,0x81,0xfd, +0xf,0xfd,0x98,0xfc,0x3e,0xfa,0x13,0xfb,0xd0,0xfe,0x72,0x0, +0x1f,0x0,0xde,0x1,0xd7,0x3,0xc3,0x0,0xe5,0xfb,0xaf,0xf9, +0x17,0xf6,0x33,0xf0,0x19,0xee,0x2d,0xf1,0xae,0xf4,0xb9,0xf7, +0x97,0xfd,0x5a,0x3,0x9f,0x4,0xce,0x4,0x27,0x5,0xa6,0x2, +0x45,0xff,0x51,0xfd,0x3c,0xfb,0x77,0xf9,0xfb,0xfa,0x91,0xfe, +0x47,0x0,0xe0,0x2,0xe9,0x7,0x68,0x9,0x11,0xa,0xbd,0xe, +0x8b,0x10,0xac,0xf,0x91,0x12,0x88,0x13,0x3c,0xf,0x33,0xc, +0x1c,0xb,0xee,0x8,0x96,0x7,0x8c,0x8,0xf9,0x9,0xfe,0xb, +0x3d,0x10,0xaa,0x14,0x50,0x16,0xbd,0x15,0x4b,0x14,0x45,0x11, +0xd9,0xb,0xe6,0x5,0x8e,0x1,0x65,0xfe,0x95,0xfc,0x95,0xfc, +0x15,0xfd,0x53,0xfd,0x9d,0xfc,0xed,0xfa,0x2d,0xfa,0x59,0xfa, +0xa7,0xfa,0xd0,0xfb,0x8f,0xfd,0x5c,0xff,0x60,0x0,0x3b,0xff, +0x3b,0xfd,0x39,0xfb,0xbb,0xf6,0xac,0xf0,0x63,0xee,0x61,0xef, +0x3,0xef,0x3,0xf1,0xcb,0xf8,0x5b,0xfe,0x4,0xff,0xdd,0x1, +0x72,0x5,0x21,0x3,0x9b,0xfd,0x5e,0xfb,0x8d,0xfa,0x63,0xf6, +0xee,0xf3,0x74,0xf7,0x2b,0xfa,0x22,0xfb,0xa3,0xff,0xce,0x3, +0x6b,0x4,0x6,0x5,0x4f,0x5,0x45,0x4,0xa3,0x3,0x44,0x2, +0xfa,0xff,0x7e,0xff,0xac,0xff,0xdd,0xfe,0x75,0xff,0xef,0x0, +0x2a,0x1,0xd,0x2,0x5b,0x3,0x4b,0x3,0xa8,0x3,0x60,0x4, +0x12,0x4,0xcc,0x3,0xb8,0x3,0x9e,0x3,0xda,0x2,0x92,0x0, +0x74,0xff,0xcf,0xff,0x21,0xfe,0x30,0xfc,0x48,0xfc,0x1f,0xfb, +0x6e,0xf8,0xc3,0xf7,0x73,0xf8,0x1e,0xf8,0xff,0xf7,0x2,0xf9, +0x12,0xf9,0xcb,0xf6,0xe5,0xf2,0x8f,0xee,0xef,0xe9,0x9,0xe4, +0x15,0xde,0x8a,0xdb,0xb5,0xdc,0x7a,0xdf,0x8f,0xe4,0xa0,0xec, +0x5f,0xf4,0xf9,0xf9,0x30,0xfe,0x1d,0xff,0x9e,0xfc,0x74,0xf9, +0x99,0xf4,0xe2,0xee,0x3e,0xed,0xe9,0xee,0x29,0xf1,0xb2,0xf6, +0x3d,0x0,0x55,0x8,0xfe,0xc,0x33,0x12,0xf0,0x15,0x97,0x14, +0xd8,0x13,0xbe,0x13,0x3d,0xf,0x15,0xd,0x93,0xe,0x26,0xc, +0x82,0xb,0x5f,0x10,0xe4,0x11,0xf6,0x10,0x85,0x13,0x0,0x15, +0x76,0x12,0x43,0x11,0xd7,0x12,0x41,0x12,0x33,0xf,0x5b,0xe, +0x76,0xf,0x7c,0xe,0xb8,0xb,0xa1,0xa,0x24,0xa,0x2f,0x6, +0x1a,0x1,0x72,0xff,0x75,0xfe,0xbd,0xfa,0x32,0xf8,0xc1,0xfa, +0xee,0xfd,0x51,0xfe,0xc2,0x0,0x3c,0x3,0x2d,0x0,0x82,0xfe, +0x40,0xff,0xcd,0xf9,0x6d,0xf3,0x79,0xf2,0xe1,0xf0,0xc6,0xed, +0xb4,0xee,0x56,0xf3,0x6e,0xf6,0x54,0xf8,0xf3,0xfe,0x11,0x6, +0x46,0x6,0xa8,0x5,0x9f,0x7,0x25,0x6,0x5b,0x1,0x68,0xfd, +0x39,0xfd,0x6a,0x0,0x52,0x1,0xb3,0x2,0x2e,0xb,0x96,0x11, +0xf1,0x10,0xb8,0x14,0xc0,0x1a,0xeb,0x18,0x35,0x17,0xa0,0x1b, +0x48,0x1f,0xc5,0x1f,0x38,0x1f,0xf,0x22,0xf4,0x27,0xc8,0x26, +0xd2,0x21,0xce,0x22,0x36,0x22,0x52,0x1e,0xd5,0x1f,0xe7,0x24, +0x0,0x2a,0xe9,0x2c,0x6d,0x2d,0xee,0x30,0xba,0x30,0x68,0x26, +0x25,0x1e,0xa,0x1b,0x4a,0x14,0xa9,0xb,0xf0,0x6,0xa4,0x7, +0xbf,0x8,0x18,0x6,0xc3,0x8,0xb9,0xe,0xec,0x6,0xf0,0xfb, +0x7,0xfe,0xf5,0xf9,0x4b,0xea,0xf7,0xe6,0xd8,0xe9,0x89,0xe0, +0x17,0xd8,0xbe,0xd9,0xe9,0xd9,0x14,0xd4,0xf2,0xd0,0x6b,0xd7, +0x12,0xdb,0x98,0xd3,0xe9,0xd5,0x65,0xe1,0xff,0xdb,0x3f,0xd3, +0x47,0xda,0x7e,0xdb,0xa7,0xd0,0x3b,0xd1,0x97,0xdc,0xbc,0xdc, +0xa0,0xd6,0x1d,0xe1,0xc7,0xee,0x97,0xe8,0xdf,0xe5,0x99,0xf3, +0x56,0xf4,0x61,0xeb,0xa,0xf2,0xa,0xf9,0xd2,0xf3,0xb1,0xf4, +0x5b,0xfd,0x8,0x1,0xf9,0x1,0x4b,0x6,0x6b,0xc,0x83,0xe, +0x36,0xc,0x31,0xe,0x77,0x12,0xa6,0x10,0xba,0x10,0x69,0x15, +0xaf,0x14,0x88,0x14,0x44,0x1a,0x9e,0x1a,0xff,0x16,0x1c,0x18, +0xb5,0x16,0xe5,0xe,0x37,0xb,0xd5,0xd,0x2d,0xc,0x87,0x7, +0xb3,0xb,0x94,0x11,0x81,0xc,0x81,0x8,0xc6,0xc,0x24,0x9, +0x18,0xfe,0xaf,0xfa,0x70,0xf8,0x5,0xef,0x18,0xe9,0x2e,0xeb, +0x27,0xec,0x6b,0xe8,0x69,0xe6,0x2a,0xe9,0xe9,0xe8,0xc0,0xe3, +0x2f,0xe2,0xb8,0xe1,0x77,0xdc,0xb7,0xd8,0xad,0xd7,0xb6,0xd4, +0xb1,0xd2,0xd0,0xd2,0x1,0xd3,0x66,0xd4,0x7e,0xd6,0xa9,0xd7, +0xe1,0xd8,0x81,0xdb,0x40,0xde,0x79,0xde,0x8d,0xde,0x90,0xe1, +0x40,0xe3,0x62,0xe2,0x63,0xe5,0x6a,0xeb,0x72,0xed,0xc2,0xee, +0x8b,0xf5,0x2e,0xfb,0xfa,0xfa,0x50,0xfd,0xd4,0x3,0x89,0x6, +0x7f,0x6,0xf5,0x9,0x38,0xe,0x11,0xe,0x24,0xe,0x35,0x13, +0xe3,0x15,0x7c,0x13,0xe1,0x14,0x11,0x19,0xc6,0x18,0x12,0x18, +0x6c,0x1b,0x61,0x1e,0xd,0x1e,0x85,0x1d,0x70,0x1e,0x54,0x1d, +0x8e,0x19,0xad,0x17,0x40,0x17,0x1a,0x14,0x6f,0x10,0xea,0xf, +0x27,0x10,0xf6,0xe,0xc9,0xd,0x82,0xc,0x86,0xa,0xc3,0x8, +0x54,0x6,0xcb,0x2,0x1e,0x0,0xfc,0xfd,0xe,0xfb,0xf4,0xf8, +0x6c,0xf8,0x76,0xf6,0x33,0xf3,0x25,0xf3,0x48,0xf4,0x96,0xf1, +0x3d,0xef,0x35,0xf0,0x40,0xef,0x48,0xec,0xed,0xeb,0x32,0xed, +0xdb,0xec,0xba,0xeb,0x8b,0xec,0x87,0xee,0xbd,0xef,0x6f,0xf1, +0xcd,0xf3,0x32,0xf5,0x52,0xf6,0xca,0xf7,0x5d,0xf8,0x91,0xf8, +0x80,0xfa,0xe2,0xfc,0x27,0xfe,0x76,0x1,0x86,0x5,0xff,0x5, +0xc7,0x7,0xa4,0xc,0x6c,0xd,0x97,0xb,0xba,0xc,0x61,0xe, +0xb4,0xd,0xf4,0xc,0xfa,0xe,0x83,0x11,0xa7,0x11,0xa3,0x12, +0xfa,0x14,0x30,0x15,0xc5,0x14,0x53,0x15,0xbc,0x15,0x54,0x15, +0xf0,0x13,0x4c,0x13,0xcf,0x12,0x3e,0x10,0x51,0xe,0x98,0xd, +0x6a,0xb,0xb6,0x9,0x8a,0x9,0xd3,0x8,0x66,0x8,0xa3,0x9, +0x16,0xa,0xe7,0x7,0x5b,0x6,0xdd,0x5,0xb,0x2,0x95,0xfd, +0x9b,0xfc,0xf2,0xfa,0x17,0xf8,0x9d,0xf8,0x87,0xfa,0x5f,0xfa, +0xb4,0xfa,0xb8,0xfc,0x6d,0xfc,0x63,0xfa,0xb5,0xfa,0x28,0xfa, +0x3,0xf7,0x5d,0xf6,0x20,0xf7,0x95,0xf6,0xc8,0xf7,0x40,0xfa, +0x5d,0xfb,0xc8,0xfb,0xfb,0xfb,0x5b,0xfc,0xf4,0xfc,0xdb,0xfc, +0xe3,0xfc,0x4a,0xfe,0x4c,0x0,0x64,0x1,0x2e,0x2,0x37,0x4, +0x63,0x5,0xef,0x3,0xff,0x2,0x85,0x3,0x3,0x3,0xb6,0x2, +0xc5,0x4,0xaf,0x6,0xec,0x6,0x40,0x8,0x68,0xa,0xf1,0x9, +0xf4,0x7,0x9,0x7,0x11,0x6,0x97,0x4,0xef,0x3,0x98,0x3, +0xe8,0x2,0x30,0x3,0x41,0x4,0x74,0x3,0x44,0x1,0xbf,0x0, +0x77,0x0,0xb1,0xfd,0x7,0xfb,0x61,0xfb,0x5d,0xfc,0xa9,0xfb, +0xa8,0xfb,0x15,0xfd,0xf9,0xfb,0x64,0xf8,0x50,0xf7,0xc,0xf8, +0xd8,0xf5,0x9,0xf3,0x82,0xf4,0xb1,0xf6,0xf0,0xf5,0xef,0xf6, +0x28,0xfa,0xb5,0xf9,0x27,0xf7,0x3a,0xf7,0xe7,0xf7,0x25,0xf7, +0xfc,0xf6,0xc1,0xf8,0xad,0xfb,0xe6,0xfd,0x89,0xfe,0x7f,0xfe, +0xbc,0xfd,0x8c,0xfb,0x47,0xf9,0x2d,0xf8,0x40,0xf8,0xd2,0xf9, +0xde,0xfb,0x8,0xfe,0xe9,0x1,0x5c,0x4,0xdf,0x2,0xde,0x2, +0x52,0x4,0x7f,0x1,0xdd,0xfd,0x44,0xfd,0x10,0xfc,0x39,0xfa, +0x93,0xfa,0x19,0xfc,0x8c,0xfc,0x21,0xfc,0x2c,0xfe,0x87,0x2, +0x43,0x3,0xf5,0xff,0xb6,0xfd,0x3c,0xfc,0x2c,0xf9,0x1f,0xf6, +0xef,0xf4,0xba,0xf5,0x25,0xf8,0x33,0xfc,0xb3,0x1,0xc7,0x5, +0x57,0x6,0xe8,0x5,0x65,0x4,0xd0,0xfe,0xa9,0xf8,0xd9,0xf5, +0xf4,0xf3,0xdd,0xf3,0xbd,0xf8,0x83,0xff,0x89,0x5,0x60,0xb, +0xa0,0xe,0x93,0xd,0x62,0xa,0x8,0x6,0x56,0x0,0x6f,0xfb, +0x80,0xfa,0xdb,0xfd,0x87,0x2,0x2f,0x7,0xfb,0xc,0xb,0x12, +0x44,0x13,0x9e,0x11,0x7e,0xe,0x30,0x9,0xfa,0x2,0xfa,0xfe, +0xef,0xfd,0xd6,0xfe,0xab,0x2,0x46,0x9,0xea,0xd,0xd2,0xf, +0xdd,0x12,0x3a,0x14,0xaf,0x10,0xed,0xc,0x5e,0xa,0x76,0x6, +0xc1,0x3,0x18,0x4,0xb1,0x4,0xea,0x4,0xd1,0x6,0x37,0xa, +0x95,0xc,0x15,0xc,0xd9,0x8,0x8a,0x5,0x97,0x4,0xed,0x3, +0xbf,0x1,0x15,0x0,0x5a,0xff,0x82,0xff,0x6f,0x2,0xfe,0x6, +0x9,0x9,0xce,0x6,0x4f,0x4,0x8,0x5,0x87,0x3,0x40,0xfd, +0x36,0xfa,0x93,0xfc,0x6e,0xfe,0x23,0xff,0xdf,0x1,0xfc,0x5, +0xbd,0x7,0xbc,0x7,0x30,0x9,0xc6,0x6,0x18,0xfd,0xb5,0xf6, +0x4,0xf8,0xa0,0xf8,0xf0,0xf8,0x41,0xff,0x43,0x7,0x34,0xc, +0x5,0x11,0x82,0x13,0xb7,0xe,0x22,0x7,0xa7,0x1,0x2c,0xfd, +0x3f,0xfa,0x75,0xfa,0xd,0xff,0x57,0x8,0x28,0x11,0x9e,0x15, +0x7a,0x17,0xb5,0x16,0xd1,0x12,0xb5,0xc,0x2,0x4,0xe6,0xfb, +0x47,0xfa,0xd1,0xfe,0xd9,0x3,0x75,0x7,0x12,0xd,0x69,0x13, +0x24,0x13,0xac,0xb,0xb8,0x2,0xab,0xfa,0xf1,0xf4,0x78,0xf3, +0xfd,0xf4,0x43,0xf7,0x35,0xfa,0x52,0xff,0x96,0x4,0x25,0x3, +0xf,0xfc,0x4c,0xf9,0xf9,0xf8,0x19,0xf1,0xf3,0xe8,0xde,0xed, +0x95,0xf8,0x87,0xfd,0x61,0x2,0xf9,0x9,0xdc,0x9,0x1b,0x2, +0xc4,0xfc,0x3f,0xf8,0xfa,0xf0,0x57,0xee,0x98,0xf2,0xfb,0xf5, +0x9c,0xf7,0xca,0xfd,0x9,0x7,0x3e,0xb,0xa4,0x9,0x91,0x7, +0xf8,0x4,0x96,0xff,0x9d,0xfa,0xc6,0xf8,0x1b,0xf8,0xe1,0xf8, +0x26,0xfd,0x2d,0x0,0x96,0xfd,0xfb,0xfc,0x95,0x2,0xb4,0x3, +0x57,0xfe,0x27,0xff,0xcc,0x3,0x23,0xfe,0xf5,0xf4,0x83,0xf7, +0x18,0xfd,0xe1,0xf8,0xe9,0xf4,0x6c,0xf9,0xc7,0xfb,0xc4,0xf7, +0xb8,0xf7,0xdb,0xfd,0x31,0xff,0xae,0xf8,0xf6,0xf5,0x8d,0xf9, +0x40,0xf7,0x1a,0xf1,0x30,0xf6,0x29,0x1,0x5,0x0,0xc,0xf7, +0x62,0xf6,0xd6,0xf8,0x1e,0xf2,0x1b,0xec,0x24,0xf1,0xd8,0xf5, +0x83,0xf3,0xdb,0xf3,0xcd,0xfa,0x66,0x1,0xe4,0x0,0x8a,0xfb, +0x3a,0xf9,0xd0,0xf5,0xf0,0xea,0x2f,0xe5,0x30,0xea,0x20,0xec, +0x6a,0xec,0x7b,0xf4,0x3c,0xf9,0x3e,0xf4,0x3f,0xf1,0xb7,0xf1, +0xbf,0xee,0x9f,0xec,0x9,0xef,0x92,0xf0,0x1e,0xf1,0xf2,0xf5, +0x83,0xfc,0x6f,0xff,0xf9,0xff,0x3b,0xff,0xa8,0xfa,0xac,0xf3, +0x8b,0xef,0xb8,0xf0,0xb0,0xf4,0x25,0xf7,0xc4,0xf9,0x69,0x1, +0x88,0x7,0xde,0x4,0xed,0x3,0xdd,0x8,0x5c,0x6,0x83,0xfe, +0xcc,0xfb,0xaa,0xf8,0xea,0xf4,0xdd,0xf5,0xc,0xf6,0x2,0xf8, +0x5a,0xfe,0x2d,0xfd,0x17,0xf9,0x56,0xff,0x45,0x3,0x2,0xfc, +0x8c,0xf9,0x20,0xfe,0x25,0xfa,0x10,0xf2,0x65,0xf4,0x8,0xf9, +0xf0,0xf5,0x5d,0xf5,0xda,0xfb,0x8e,0xff,0x1e,0xfe,0xff,0xfc, +0x2b,0xfe,0x67,0xff,0xdc,0xfd,0x64,0xfb,0xf6,0xfb,0x9b,0xfd, +0x4,0xfd,0xc0,0xfc,0xaa,0xfe,0x47,0x0,0x2a,0x1,0x16,0x1, +0x7f,0xff,0xbd,0x0,0xf9,0x2,0x73,0xff,0xaf,0xfd,0xda,0x2, +0x75,0x3,0x2d,0xff,0xe4,0x0,0x2a,0x5,0x3,0x4,0xac,0x0, +0xe9,0x0,0xd7,0x2,0xb1,0x1,0xd6,0xff,0x42,0x1,0x83,0x2, +0xf3,0x0,0xe9,0xff,0x88,0x1,0xbf,0x3,0xcc,0x3,0xd6,0x2, +0xde,0x3,0x1d,0x5,0x3f,0x3,0xbe,0x0,0x9f,0x1,0x7d,0x3, +0xf1,0x1,0x38,0xff,0xbe,0xff,0xe7,0x1,0x9,0x2,0x7b,0x1, +0xb9,0x3,0xfb,0x6,0xde,0x6,0xb7,0x4,0xb7,0x3,0xf2,0x2, +0x7f,0x1,0x5e,0xff,0x1e,0xfd,0x93,0xfd,0x17,0xff,0x6c,0xfd, +0x8e,0xfd,0xee,0x2,0xb2,0x4,0xca,0x1,0xde,0x3,0x5,0x7, +0x7a,0x2,0x4e,0xfe,0x6d,0x1,0x26,0x3,0x5c,0xff,0x49,0xfe, +0x9e,0x2,0xc6,0x3,0x54,0xff,0x53,0xff,0xad,0x4,0x99,0x3, +0x83,0xfe,0xda,0x0,0x9,0x4,0x5d,0x0,0xc2,0xff,0x91,0x4, +0x3e,0x4,0x2,0x0,0x35,0xff,0x8a,0xff,0x18,0xfd,0xa6,0xf9, +0xcb,0xf9,0x2a,0xfd,0x14,0xfd,0x96,0xfb,0x1c,0x0,0x42,0x4, +0xe9,0x1,0xd4,0x0,0x92,0x2,0x21,0x0,0x4a,0xfb,0xc4,0xf9, +0x99,0xfa,0xb7,0xfa,0x54,0xfa,0x75,0xfb,0x99,0xfe,0x4e,0x1, +0x4b,0x1,0xb9,0x0,0x4d,0x2,0xf9,0x2,0x56,0x0,0x4,0xff, +0xd4,0x0,0x66,0x0,0xea,0xfd,0x92,0xff,0x98,0x2,0x6a,0x0, +0xf3,0xfd,0x86,0x0,0x70,0x2,0xa,0x1,0x34,0x1,0x63,0x3, +0x2e,0x4,0x14,0x3,0xac,0x1,0xb0,0x0,0x58,0xff,0xad,0xfd, +0xac,0xfc,0x3a,0xfc,0xd6,0xfc,0xa3,0xfe,0x75,0xff,0x2b,0x0, +0x10,0x3,0x14,0x4,0x6e,0x0,0xde,0xfd,0x83,0xfe,0x97,0xfc, +0xcd,0xf8,0x64,0xfa,0x9,0xff,0x23,0xff,0xcd,0xfe,0x85,0x3, +0x77,0x5,0x37,0x1,0x1,0x0,0x5,0x2,0x40,0xff,0x72,0xfb, +0xf6,0xfd,0x86,0x2,0x6f,0x3,0x4c,0x4,0xf5,0x7,0x21,0x9, +0xcc,0x5,0xc1,0x3,0x4c,0x3,0x68,0xff,0x2b,0xfc,0x0,0xff, +0x20,0x1,0xcd,0xff,0xee,0x2,0x70,0x7,0xea,0x5,0xca,0x4, +0xfc,0x5,0xca,0x2,0xf9,0xfe,0x12,0xff,0x95,0xff,0xe8,0xff, +0xcf,0x0,0xfd,0x1,0xd1,0x3,0x62,0x4,0x64,0x3,0x6a,0x2, +0xf5,0x0,0x4,0x0,0xbc,0xff,0x94,0xfe,0x3e,0xff,0x1d,0x2, +0xef,0x2,0xbd,0x3,0x1b,0x7,0xeb,0x6,0x3e,0x2,0xdf,0x0, +0x76,0x1,0xf2,0xfd,0x93,0xfa,0x83,0xfb,0x2c,0xfd,0x2,0xfd, +0x8b,0xfc,0xd5,0xfe,0xf2,0x1,0x86,0x0,0x48,0xfe,0x9f,0xff, +0xae,0xfe,0xff,0xf9,0xe,0xf8,0xdb,0xf9,0x2d,0xfa,0x62,0xf7, +0xb6,0xf7,0xae,0xfc,0x17,0xfe,0xa3,0xfc,0x8f,0xff,0xe0,0x2, +0xad,0x1,0xe8,0xff,0x48,0x0,0xe5,0x0,0x8b,0xff,0xe7,0xfd, +0xfb,0xff,0xfa,0x2,0xa2,0x1,0x4a,0x0,0x58,0x3,0x57,0x4, +0x66,0x0,0x35,0xff,0x1d,0x2,0x3d,0x2,0x43,0x0,0x22,0x2, +0xcd,0x5,0xaa,0x5,0x4b,0x4,0x77,0x5,0xb6,0x4,0xcc,0x0, +0xdf,0xfe,0xb0,0xfd,0x90,0xfb,0xe6,0xfb,0x32,0xfd,0x8a,0xfd, +0xb9,0xfe,0x56,0xff,0x8c,0xff,0xac,0x0,0xd1,0xff,0x69,0xfe, +0x38,0xff,0xab,0xfe,0x54,0xfd,0xa6,0xfe,0x3c,0xff,0xfb,0xfd, +0x23,0xfe,0xe3,0xfd,0x75,0xfb,0xa4,0xf9,0xfd,0xf9,0x9d,0xfb, +0x83,0xfc,0x6,0xfd,0x54,0x0,0x97,0x3,0x37,0x2,0x77,0x0, +0xf4,0x0,0x8a,0xff,0x57,0xfc,0x31,0xfa,0x76,0xf9,0xf6,0xf9, +0xf6,0xfa,0x8,0xfd,0x9c,0x0,0xce,0x2,0x3d,0x3,0xf1,0x3, +0x83,0x3,0xb8,0x1,0xc,0x1,0x21,0x1,0xde,0x0,0xa6,0x0, +0x50,0x0,0xce,0x0,0x6a,0x2,0x65,0x2,0x5f,0x1,0x6f,0x2, +0x3d,0x3,0x26,0x2,0x83,0x2,0x18,0x4,0xe8,0x4,0x58,0x6, +0x64,0x7,0xc5,0x5,0xab,0x3,0xe,0x3,0x2b,0x2,0x35,0x0, +0x22,0xff,0x42,0xff,0xa,0xff,0x3c,0xff,0xa2,0x0,0xbf,0x1, +0x4f,0x2,0x88,0x2,0xea,0x1,0x9f,0x1,0xca,0x1,0x0,0x1, +0x7e,0x0,0x21,0x1,0xb3,0x0,0x1f,0xff,0x6d,0xfe,0x17,0xfe, +0x89,0xfd,0x37,0xfe,0x7b,0xff,0x1a,0x0,0x7e,0x1,0x11,0x3, +0xe9,0x2,0xe3,0x2,0x32,0x3,0x77,0x1,0x3e,0x0,0xfe,0x0, +0xf1,0xff,0xa4,0xfe,0xa2,0x0,0x7a,0x2,0xa9,0x2,0x7e,0x3, +0xaf,0x3,0x5a,0x3,0x3b,0x4,0xce,0x3,0x51,0x2,0x92,0x3, +0x62,0x5,0x5e,0x4,0xd8,0x3,0x77,0x5,0x70,0x4,0x99,0x0, +0x96,0xff,0xa,0x0,0x46,0xfd,0x45,0xfb,0xfb,0xfd,0xbb,0x0, +0xe3,0x0,0x3d,0x2,0x2c,0x5,0x47,0x5,0xb,0x2,0xab,0xff, +0xd3,0xfe,0x95,0xfb,0xa,0xf7,0xb6,0xf7,0x72,0xfb,0xc2,0xfa, +0x34,0xfa,0xb6,0xfe,0xa0,0x0,0xad,0xfe,0x5c,0xff,0x56,0x0, +0x5,0xff,0x88,0xfe,0x5,0xff,0x50,0xff,0x3b,0xff,0xfe,0xfe, +0x89,0xff,0xf1,0xff,0xd0,0xff,0x2,0x0,0x10,0x0,0xad,0x1, +0xee,0x4,0x5e,0x5,0x9e,0x4,0x4e,0x7,0x48,0x9,0x50,0x7, +0x53,0x7,0xd5,0xa,0x38,0xb,0xc2,0x8,0x2e,0xa,0x50,0xe, +0xb9,0xe,0x35,0xc,0xd6,0xc,0x2d,0xf,0x4d,0xc,0x14,0x8, +0xe6,0x9,0x8a,0xb,0x3d,0x8,0xc4,0x7,0x55,0xc,0xc6,0xe, +0xdf,0xc,0x15,0xc,0xc,0xe,0x47,0xb,0x77,0x2,0x72,0xfc, +0xf4,0xf8,0x40,0xf2,0xad,0xed,0x16,0xf0,0xc9,0xf3,0x1c,0xf5, +0xa7,0xf6,0x99,0xf8,0x1c,0xf8,0x76,0xf3,0x25,0xeb,0x58,0xe3, +0xa0,0xde,0x66,0xd9,0x41,0xd5,0xaa,0xd8,0x4b,0xdf,0x9e,0xe2, +0x85,0xe6,0x9c,0xeb,0x25,0xeb,0x7d,0xe5,0x2f,0xe1,0xd1,0xde, +0xfd,0xda,0x0,0xd8,0xcd,0xda,0x5d,0xe1,0x2d,0xe6,0x43,0xea, +0xfd,0xf0,0xd7,0xf5,0x78,0xf4,0x3,0xf3,0xe4,0xf4,0x52,0xf4, +0x50,0xf2,0xb9,0xf5,0xea,0xfb,0x0,0xff,0xb,0x2,0x61,0x8, +0xad,0xc,0x7e,0xc,0xe9,0xd,0x2f,0x11,0x2e,0x11,0xbb,0x10, +0x6b,0x13,0x85,0x15,0xd2,0x15,0x4,0x17,0x3d,0x18,0xf6,0x17, +0xf0,0x17,0x95,0x18,0x4,0x18,0x18,0x17,0x83,0x17,0x61,0x17, +0x6c,0x15,0xd1,0x13,0xbd,0x12,0x72,0xf,0x15,0xb,0xd6,0x9, +0xf5,0x9,0x1e,0x7,0x6e,0x4,0x44,0x5,0x7b,0x4,0x24,0xff, +0x46,0xfb,0xab,0xfa,0x4,0xf7,0x50,0xf1,0x71,0xf0,0xea,0xf0, +0xc7,0xed,0x87,0xec,0x8e,0xee,0xe3,0xed,0x49,0xeb,0x74,0xea, +0xa4,0xe9,0x3,0xe7,0x57,0xe4,0xf3,0xe3,0x6a,0xe5,0x45,0xe6, +0xbd,0xe6,0x95,0xe8,0x9e,0xea,0xdc,0xeb,0xd8,0xed,0x3e,0xf0, +0x79,0xf1,0xe3,0xf2,0xc5,0xf5,0x14,0xf8,0xd8,0xf8,0xa6,0xfa, +0x20,0xfe,0x29,0x0,0xb,0x1,0x3e,0x4,0x5d,0x8,0xe6,0xa, +0x25,0xe,0x2f,0x12,0xfa,0x13,0xc8,0x14,0x72,0x16,0x1c,0x17, +0xc0,0x16,0x17,0x17,0xa3,0x17,0xa8,0x18,0x13,0x1b,0xc4,0x1c, +0x3f,0x1d,0x23,0x1f,0x9f,0x20,0x76,0x1e,0x81,0x1b,0x7,0x1a, +0x6d,0x17,0x28,0x14,0x6b,0x13,0xcb,0x13,0xd3,0x12,0xe0,0x11, +0xd0,0x11,0x2c,0x11,0xd2,0xe,0x7,0xb,0xc7,0x7,0x38,0x5, +0x2b,0x1,0x7d,0xfd,0x52,0xfc,0xed,0xfa,0xea,0xf8,0x39,0xf8, +0x96,0xf7,0x14,0xf6,0x26,0xf4,0x4b,0xf2,0x1a,0xf1,0x95,0xef, +0x1d,0xee,0x53,0xee,0xfb,0xed,0x46,0xec,0x85,0xec,0xe8,0xed, +0x94,0xed,0x8b,0xed,0xb,0xef,0x77,0xef,0x80,0xef,0x77,0xf1, +0xd,0xf3,0x5b,0xf3,0x3d,0xf5,0xa,0xf8,0x8c,0xf9,0xe5,0xfa, +0x63,0xfd,0xee,0xff,0x38,0x1,0x4d,0x2,0x2c,0x4,0xad,0x5, +0xe2,0x6,0x4c,0x8,0x8b,0x9,0x7e,0xb,0xa3,0xd,0xfa,0xe, +0xb9,0x10,0xb,0x12,0x1d,0x12,0xc5,0x12,0x4d,0x13,0x24,0x12, +0xc0,0x10,0x86,0x10,0x80,0x10,0x6a,0xf,0xda,0xe,0x28,0x10, +0xda,0x10,0x36,0x10,0xde,0xf,0xbc,0xe,0x4a,0xc,0xff,0x9, +0x8e,0x7,0x94,0x4,0x42,0x2,0xd1,0x0,0x85,0xff,0xc6,0xfe, +0xa4,0xfe,0x9,0xfe,0x17,0xfd,0x14,0xfc,0x4,0xfa,0x6a,0xf7, +0x9a,0xf5,0x1b,0xf4,0x42,0xf2,0xef,0xf0,0xe9,0xf0,0x1b,0xf1, +0xc1,0xf0,0xd9,0xf0,0x45,0xf1,0x28,0xf1,0xee,0xf0,0xd2,0xf0, +0xd5,0xf0,0x3b,0xf1,0xd8,0xf1,0xd6,0xf2,0x41,0xf4,0x9d,0xf5, +0xe7,0xf6,0x48,0xf8,0x86,0xf9,0x51,0xfa,0x12,0xfb,0x75,0xfc, +0xdd,0xfd,0xf1,0xfe,0x91,0x0,0x66,0x2,0x93,0x3,0xa4,0x4, +0x24,0x6,0x91,0x7,0x77,0x8,0x57,0x9,0x76,0xa,0x37,0xb, +0x87,0xb,0xce,0xb,0x20,0xc,0x37,0xc,0xe1,0xb,0xcd,0xb, +0x17,0xc,0xe1,0xb,0x96,0xb,0xb7,0xb,0x87,0xb,0xcf,0xa, +0xd1,0x9,0xcf,0x8,0xad,0x7,0xf5,0x5,0x56,0x4,0x30,0x3, +0xce,0x1,0x89,0x0,0xbe,0xff,0xf7,0xfe,0xb,0xfe,0xd1,0xfc, +0x94,0xfb,0x77,0xfa,0xee,0xf8,0x69,0xf7,0x41,0xf6,0x27,0xf5, +0x6f,0xf4,0xf0,0xf3,0x7e,0xf3,0x5b,0xf3,0x1,0xf3,0x94,0xf2, +0x7f,0xf2,0x26,0xf2,0xc2,0xf1,0xec,0xf1,0x44,0xf2,0x9b,0xf2, +0x2e,0xf3,0x21,0xf4,0x3f,0xf5,0x3c,0xf6,0x31,0xf7,0xc,0xf8, +0xc3,0xf8,0x89,0xf9,0x49,0xfa,0x3d,0xfb,0x8d,0xfc,0xd2,0xfd, +0x17,0xff,0x83,0x0,0xea,0x1,0x4b,0x3,0x91,0x4,0xa7,0x5, +0x83,0x6,0x20,0x7,0xb6,0x7,0x51,0x8,0xe6,0x8,0x8d,0x9, +0x23,0xa,0x84,0xa,0xaf,0xa,0xc0,0xa,0xc7,0xa,0x8f,0xa, +0x4b,0xa,0x2a,0xa,0xc9,0x9,0x43,0x9,0xd4,0x8,0x21,0x8, +0x21,0x7,0x24,0x6,0x36,0x5,0x4e,0x4,0x84,0x3,0xc5,0x2, +0xca,0x1,0xa4,0x0,0x76,0xff,0x37,0xfe,0x3b,0xfd,0x66,0xfc, +0x5c,0xfb,0x72,0xfa,0xb6,0xf9,0xf1,0xf8,0x48,0xf8,0x8f,0xf7, +0xbe,0xf6,0x16,0xf6,0xad,0xf5,0x77,0xf5,0x38,0xf5,0xf9,0xf4, +0xef,0xf4,0xf8,0xf4,0x3c,0xf5,0xd8,0xf5,0xa6,0xf6,0xb9,0xf7, +0xc8,0xf8,0xa6,0xf9,0x85,0xfa,0x4b,0xfb,0x31,0xfc,0x39,0xfd, +0xb,0xfe,0x3,0xff,0x1e,0x0,0x11,0x1,0x3d,0x2,0x9d,0x3, +0x12,0x5,0x83,0x6,0x7c,0x7,0x4e,0x8,0x45,0x9,0xf2,0x9, +0x6a,0xa,0xe7,0xa,0x40,0xb,0x5f,0xb,0x7a,0xb,0xd4,0xb, +0xfe,0xb,0xd7,0xb,0xe,0xc,0x50,0xc,0x9,0xc,0xa3,0xb, +0x31,0xb,0x7d,0xa,0x8f,0x9,0x70,0x8,0x75,0x7,0x8d,0x6, +0x76,0x5,0x89,0x4,0xba,0x3,0xdd,0x2,0x46,0x2,0xa2,0x1, +0x9c,0x0,0x8f,0xff,0x5b,0xfe,0xfa,0xfc,0x9,0xfc,0x57,0xfb, +0x57,0xfa,0x6f,0xf9,0x3,0xf9,0xc7,0xf8,0x75,0xf8,0x1a,0xf8, +0xd2,0xf7,0x81,0xf7,0x2b,0xf7,0x23,0xf7,0x48,0xf7,0x74,0xf7, +0xf4,0xf7,0x83,0xf8,0xef,0xf8,0x78,0xf9,0xdd,0xf9,0x2f,0xfa, +0xaa,0xfa,0x11,0xfb,0x7a,0xfb,0xd5,0xfb,0x3c,0xfc,0x3e,0xfd, +0x79,0xfe,0xa1,0xff,0xb6,0x0,0x52,0x1,0x19,0x2,0x37,0x3, +0xcb,0x3,0x62,0x4,0x36,0x5,0x91,0x5,0xeb,0x5,0xa9,0x6, +0x68,0x7,0xdf,0x7,0xd,0x8,0x1a,0x8,0xb4,0x7,0x16,0x7, +0x7,0x7,0x2c,0x7,0x30,0x7,0x14,0x7,0x99,0x6,0x3d,0x6, +0x7,0x6,0x81,0x5,0xd,0x5,0x7a,0x4,0x64,0x3,0x24,0x2, +0xdc,0x0,0x84,0xff,0x2a,0xfe,0x13,0xfd,0x79,0xfc,0xe6,0xfb, +0x1d,0xfb,0x35,0xfa,0x56,0xf9,0xdc,0xf8,0x8d,0xf8,0x44,0xf8, +0x4,0xf8,0x20,0xf7,0x2,0xf6,0xab,0xf5,0x81,0xf5,0xe2,0xf4, +0x6e,0xf4,0x65,0xf4,0x14,0xf4,0xb1,0xf3,0xf9,0xf3,0x67,0xf4, +0x92,0xf4,0xf0,0xf1,0x93,0xe8,0xac,0xdd,0x97,0xd9,0xc0,0xda, +0x58,0xdf,0xb1,0xe7,0x68,0xec,0x7a,0xea,0x14,0xea,0xf8,0xed, +0xa1,0xf1,0x8b,0xf4,0x66,0xf7,0xcf,0xf6,0x19,0xf1,0x3e,0xeb, +0x80,0xeb,0x1,0xf2,0x97,0xfa,0xb7,0x2,0xe5,0x6,0x5b,0x2, +0xf3,0xf9,0x8d,0xf9,0xbf,0x2,0x74,0xd,0xa,0x14,0x22,0x14, +0x52,0xd,0xda,0x4,0x98,0x3,0x26,0xa,0x6a,0xf,0xf7,0xf, +0x79,0xe,0x7b,0x9,0x2e,0x3,0xa5,0x2,0x5a,0x7,0xb3,0xc, +0x5d,0x10,0x70,0xf,0x9e,0x9,0x4f,0x3,0xe9,0x0,0x17,0x4, +0x1e,0xa,0x9,0xd,0xce,0x9,0x8c,0x2,0x9a,0xfb,0xa4,0xf9, +0xa,0xfe,0xaa,0x3,0x88,0x5,0x1f,0x4,0xf5,0x0,0x69,0xfe, +0xb3,0xff,0x3a,0x3,0x8f,0x5,0x88,0x6,0x4c,0x5,0xf3,0xff, +0xe3,0xf8,0xb7,0xf5,0xb,0xf8,0x44,0xfd,0x32,0x3,0x9f,0x5, +0xd,0x1,0x59,0xfb,0xa4,0xfb,0x83,0x0,0x16,0x6,0xc,0x9, +0x45,0x6,0xf8,0xff,0x30,0xfc,0x24,0xfd,0x57,0x0,0xd9,0x2, +0x3,0x3,0x1c,0x1,0x27,0xff,0x57,0xfe,0xf1,0xff,0x8b,0x5, +0x49,0xc,0x9,0x10,0x94,0x10,0xfc,0xd,0x1e,0xa,0x22,0xa, +0x3c,0xe,0x4c,0x11,0xfc,0x10,0x62,0xe,0x12,0xb,0x14,0xa, +0xa2,0xd,0x45,0x12,0x2f,0x14,0x3f,0x15,0xdc,0x15,0xb4,0x13, +0x14,0x11,0x85,0x10,0x68,0x10,0x78,0x10,0xc8,0x10,0x29,0xe, +0xf3,0x7,0x6c,0x2,0x31,0x0,0xcc,0x0,0x4c,0x3,0x20,0x5, +0x68,0x4,0x5f,0x2,0x66,0x0,0x49,0x0,0xa1,0x2,0xbe,0x3, +0x4,0x2,0x31,0xff,0x97,0xfa,0x6b,0xf5,0x7e,0xf4,0xf6,0xf7, +0xa0,0xfb,0x2,0xfe,0x71,0xff,0xe4,0xfe,0x68,0xfd,0x9b,0xfe, +0x42,0x2,0xd0,0x4,0x55,0x5,0x97,0x4,0xd9,0x2,0x42,0x1, +0x85,0x1,0x73,0x3,0x6,0x5,0xce,0x4,0xbe,0x2,0x9c,0xff, +0xc6,0xfc,0xba,0xfb,0xe,0xfe,0xcc,0x2,0x50,0x5,0x9e,0x4, +0x82,0x4,0x5,0x5,0xfd,0x3,0xaf,0x2,0x15,0x2,0x8e,0x0, +0x68,0xfd,0x2a,0xfa,0x2f,0xf8,0x9c,0xf7,0x46,0xfa,0xdb,0x1, +0xe6,0x8,0x19,0x8,0xe4,0x2,0x64,0x1,0x6c,0x2,0x9b,0x1, +0xfb,0xff,0xc4,0xfd,0xd2,0xfa,0x86,0xfa,0x24,0xfc,0xf3,0xfb, +0xa1,0xfb,0x15,0xfd,0x99,0xfd,0xee,0xfa,0xf6,0xf5,0xfd,0xf1, +0x51,0xf2,0x52,0xf6,0x20,0xfa,0x64,0xfb,0xdc,0xfa,0xb4,0xf9, +0xa4,0xf8,0xa5,0xf7,0xea,0xf4,0x5,0xf1,0xa8,0xef,0x17,0xf0, +0x99,0xef,0xc7,0xf0,0x86,0xf5,0x52,0xfb,0xe5,0x0,0x7b,0x4, +0xf0,0x2,0xf1,0xfe,0x21,0xfd,0xfb,0xfb,0x42,0xfa,0xfc,0xf9, +0x2c,0xfa,0xdc,0xf9,0x72,0xfa,0x7c,0xfb,0x74,0xfd,0x9a,0x1, +0x1e,0x5,0x59,0x5,0x1a,0x3,0x2f,0x0,0x27,0xff,0x90,0x0, +0x95,0x1,0xbd,0x0,0x29,0xff,0xce,0xfd,0xc1,0xfc,0x4,0xfc, +0x6,0xfc,0x49,0xfd,0x27,0xff,0x4b,0xff,0xef,0xfc,0x60,0xfb, +0x25,0xfc,0x20,0xfc,0xd1,0xfa,0xa8,0xfa,0xb6,0xfa,0x77,0xf9, +0x56,0xf8,0x85,0xf7,0x8f,0xf6,0x91,0xf7,0x16,0xfa,0xf3,0xf9, +0x12,0xf7,0xd2,0xf4,0x53,0xf4,0xa5,0xf5,0xd,0xf8,0x1b,0xfa, +0x52,0xfc,0x58,0xfe,0x19,0xfe,0xd7,0xfc,0x16,0xfd,0x84,0xfd, +0x8c,0xfc,0x87,0xfb,0x67,0xfa,0xe8,0xf7,0x50,0xf7,0xb5,0xfb, +0x11,0x1,0x7d,0x3,0x59,0x4,0x76,0x4,0x2e,0x3,0x73,0x1, +0x8b,0x0,0x77,0x0,0x1b,0x0,0x13,0xff,0xca,0xfe,0xf,0x0, +0xa8,0x1,0xfe,0x2,0xed,0x4,0x65,0x6,0x4c,0x5,0x6f,0x3, +0x5c,0x3,0x79,0x3,0xbd,0x2,0xcc,0x2,0x6f,0x3,0x7f,0x3, +0x90,0x3,0x7d,0x3,0x4d,0x2,0x5e,0x1,0x37,0x2,0xe,0x3, +0x7e,0x2,0xe,0x2,0x46,0x2,0x4,0x2,0x2a,0x1,0x91,0x0, +0x7c,0x0,0xdb,0xff,0x1c,0xfe,0x5c,0xfc,0x47,0xfb,0xcb,0xfa, +0xea,0xfa,0xd5,0xfa,0xed,0xf9,0xeb,0xf8,0xbc,0xf8,0x90,0xf9, +0xc6,0xfa,0xd8,0xfb,0xff,0xfc,0xfb,0xfd,0xcb,0xfd,0x65,0xfc, +0x45,0xfb,0xf,0xfb,0xd,0xfb,0x4a,0xfb,0x24,0xfb,0xfb,0xf9, +0xd6,0xfa,0x9c,0xfe,0x2b,0x1,0x2,0x2,0x34,0x3,0x85,0x3, +0x24,0x3,0x4d,0x3,0x61,0x2,0xe,0x1,0xa7,0x1,0x55,0x2, +0xd9,0x1,0xd5,0x1,0xc9,0x1,0xc5,0x1,0x97,0x3,0x20,0x5, +0xba,0x4,0x5b,0x5,0xe1,0x6,0xcb,0x6,0xae,0x6,0x48,0x7, +0x8b,0x6,0x64,0x5,0x3b,0x5,0xe6,0x3,0x64,0x1,0x52,0x1, +0xff,0x2,0x28,0x3,0x4e,0x3,0x63,0x4,0x33,0x4,0xc8,0x3, +0xbc,0x3,0x59,0x2,0xa8,0x1,0x20,0x2,0x61,0x0,0x72,0xfe, +0x40,0xff,0x79,0xff,0x6c,0xfe,0x89,0xff,0x3e,0x1,0xa5,0x0, +0x42,0x0,0xb6,0x1,0x6a,0x2,0x10,0x2,0x95,0x2,0x7,0x3, +0x8d,0x1,0xc6,0xfe,0x7a,0xfc,0xaa,0xfb,0x67,0xfb,0x50,0xfa, +0x2e,0xfa,0x33,0xfc,0xea,0xfc,0x4d,0xfc,0x51,0xfe,0xbf,0xff, +0x60,0xfd,0x74,0xfc,0xb4,0xfc,0x23,0xf9,0x38,0xf6,0xb8,0xf7, +0x58,0xf9,0x26,0xfa,0x8a,0xfb,0x24,0xfc,0x5c,0xfc,0x32,0xfd, +0xd2,0xfd,0x47,0xfe,0xa7,0xfe,0xaa,0xfe,0xf8,0xfe,0x5f,0xff, +0x50,0xff,0xf8,0xff,0x78,0x1,0xd3,0x1,0x1a,0x1,0x44,0x1, +0x1,0x2,0x7,0x2,0x31,0x2,0xca,0x2,0x77,0x2,0x48,0x2, +0x92,0x3,0xa8,0x3,0xe,0x2,0x87,0x2,0x39,0x4,0x17,0x4, +0x4,0x4,0xcc,0x4,0x6b,0x4,0x85,0x3,0x85,0x2,0xba,0x0, +0xe4,0xff,0x8c,0x0,0x93,0x0,0xcd,0xff,0x84,0xff,0x8b,0xff, +0x87,0xff,0xec,0xff,0x35,0x0,0x6a,0xff,0x35,0xfe,0x59,0xfd, +0xbf,0xfc,0x28,0xfd,0x4f,0xfe,0x64,0xfe,0xe6,0xfd,0x20,0xfe, +0xdb,0xfd,0xc5,0xfc,0x61,0xfc,0x44,0xfc,0xbd,0xfb,0xe8,0xfb, +0x70,0xfc,0x53,0xfc,0x75,0xfc,0x15,0xfd,0x5c,0xfd,0x22,0xfd, +0x5a,0xfc,0xdc,0xfb,0x96,0xfc,0xdb,0xfc,0xcf,0xfb,0x2,0xfc, +0x6d,0xfe,0x58,0x0,0x8e,0x0,0x3e,0x1,0xac,0x2,0x85,0x2, +0x84,0x1,0x82,0x1,0xf,0x1,0xbe,0xff,0x1d,0xff,0xb4,0xfe, +0x66,0xfe,0x93,0xff,0xbc,0x1,0x9b,0x3,0x7f,0x4,0x16,0x4, +0xfd,0x3,0x17,0x5,0x2e,0x5,0x4,0x4,0x77,0x3,0x6,0x3, +0x79,0x2,0xd3,0x2,0x9a,0x3,0xdd,0x4,0x6f,0x6,0x6f,0x6, +0xa1,0x5,0x96,0x5,0x28,0x5,0x97,0x4,0xb8,0x4,0x5c,0x4, +0xa5,0x3,0xca,0x2,0x14,0x1,0x4e,0x0,0x1b,0x1,0x2,0x1, +0xb,0x0,0x3f,0xff,0x97,0xfd,0x4,0xfc,0xc,0xfc,0x10,0xfc, +0x6b,0xfb,0x83,0xfb,0xb1,0xfb,0x33,0xfb,0x42,0xfb,0xe8,0xfb, +0x33,0xfc,0x50,0xfc,0x6b,0xfc,0x4d,0xfc,0x12,0xfc,0xcf,0xfb, +0x14,0xfc,0xbf,0xfd,0x15,0x0,0x90,0x1,0x5d,0x2,0x55,0x3, +0x3c,0x4,0xf6,0x4,0x9b,0x5,0x8f,0x5,0xae,0x4,0xed,0x3, +0x15,0x4,0x83,0x4,0x41,0x4,0x94,0x4,0x79,0x6,0xcb,0x7, +0x15,0x8,0xc8,0x8,0x50,0x8,0x81,0x6,0xb,0x6,0xab,0x5, +0xb3,0x3,0x69,0x2,0xbb,0x1,0x55,0x0,0x60,0x0,0x23,0x2, +0x1,0x3,0xf3,0x2,0xf0,0x2,0xba,0x2,0xad,0x2,0x8d,0x2, +0xbd,0x1,0xa2,0x1,0xcc,0x2,0x31,0x3,0x8d,0x2,0xe5,0x2, +0xf3,0x3,0xd3,0x3,0xca,0x2,0xbe,0x1,0x38,0x0,0xad,0xfe, +0x2e,0xfe,0x2f,0xfe,0x45,0xfe,0xe4,0xfe,0x94,0xff,0xa9,0xff, +0x28,0xff,0x33,0xfe,0xee,0xfc,0x15,0xfb,0x94,0xf8,0x98,0xf6, +0xce,0xf5,0xac,0xf5,0x1c,0xf6,0x3b,0xf7,0x95,0xf8,0xf,0xfa, +0xe2,0xfb,0x5e,0xfd,0x73,0xfd,0xc6,0xfc,0xcd,0xfc,0x32,0xfd, +0x27,0xfd,0x59,0xfd,0x57,0xfe,0x81,0xff,0x24,0x0,0xd3,0x0, +0xad,0x2,0x6d,0x4,0x89,0x4,0xec,0x4,0xf7,0x5,0x66,0x5, +0xf1,0x4,0x2a,0x6,0x46,0x6,0xb8,0x5,0x7f,0x6,0x57,0x6, +0xf,0x5,0x1c,0x5,0xc8,0x5,0x19,0x6,0x32,0x6,0xb4,0x5, +0x3f,0x5,0x75,0x4,0xbb,0x2,0x42,0x2,0xda,0x2,0x2,0x2, +0xc,0x1,0xf2,0x0,0x39,0x0,0xcd,0xff,0x38,0x0,0xf,0x0, +0xc3,0xff,0x86,0xff,0x64,0xfe,0x10,0xfd,0x36,0xfc,0x80,0xfb, +0xc6,0xfa,0xbe,0xf9,0xc5,0xf8,0x5f,0xf8,0x26,0xf8,0x63,0xf8, +0x30,0xf9,0xc2,0xf9,0x41,0xfa,0xd7,0xfa,0xa1,0xfb,0x13,0xfd, +0x80,0xfd,0x35,0xfc,0xce,0xfb,0xe6,0xfb,0x3c,0xfa,0xf2,0xf8, +0xb3,0xf9,0x6a,0xfa,0xa2,0xfa,0xa6,0xfb,0x6a,0xfd,0x29,0xff, +0x3,0x0,0xd8,0xff,0x84,0xff,0xdb,0xfe,0x18,0xfd,0x65,0xfb, +0x89,0xfb,0x88,0xfc,0x8a,0xfc,0x63,0xfd,0xaa,0x0,0xbd,0x2, +0x26,0x2,0x6b,0x2,0xaa,0x2,0x91,0x0,0x9e,0xff,0x7d,0x0, +0x75,0xff,0x4d,0xfe,0xc3,0xff,0x7a,0x1,0xd5,0x2,0x6f,0x5, +0xb8,0x7,0xf1,0x7,0xf7,0x6,0x83,0x5,0x9d,0x3,0x93,0x1, +0x78,0xff,0x7b,0xfd,0xee,0xfb,0xcf,0xfa,0xda,0xfa,0xfc,0xfc, +0x17,0x0,0xa7,0x2,0xca,0x4,0x51,0x6,0x59,0x6,0x42,0x5, +0x91,0x3,0xba,0x0,0x5a,0xfd,0xce,0xfa,0xf1,0xf8,0x3d,0xf8, +0xfb,0xf9,0x79,0xfc,0xc1,0xfd,0x4c,0xff,0xa3,0x1,0x9f,0x2, +0xa6,0x1,0x1f,0x0,0xb1,0xfe,0xd0,0xfc,0xdc,0xfa,0xdf,0xfa, +0xba,0xfc,0xa2,0xfd,0xc8,0xfd,0x1b,0xff,0x7a,0xff,0x4a,0xfd, +0xb0,0xfb,0x72,0xfb,0x37,0xfa,0x70,0xf9,0xc5,0xfa,0x10,0xfc, +0x25,0xfd,0x57,0xff,0xe8,0x0,0x94,0x0,0x2d,0xff,0xa4,0xfc, +0x88,0xf9,0x78,0xf7,0x47,0xf6,0x13,0xf6,0x92,0xf8,0x86,0xfc, +0x50,0xff,0x17,0x2,0xa,0x5,0x5f,0x5,0x45,0x4,0xfa,0x3, +0x6f,0x2,0x82,0xff,0xed,0xfd,0x9d,0xfd,0xef,0xfd,0x5d,0xff, +0x1e,0x1,0x78,0x2,0x5,0x3,0x6f,0x2,0x34,0x2,0xab,0x2, +0xd9,0x1,0x94,0x0,0x97,0x0,0x6e,0x0,0x22,0x0,0x22,0x1, +0xe6,0x1,0xa7,0x1,0xd7,0x1,0x67,0x2,0x92,0x2,0x33,0x2, +0x9,0x2,0xfb,0x2,0x31,0x3,0xee,0x1,0x3,0x2,0x93,0x2, +0x4a,0x1,0x21,0x1,0x3d,0x3,0x75,0x4,0x60,0x4,0xf7,0x3, +0x27,0x3,0x57,0x2,0x95,0x0,0xe0,0xfd,0xe2,0xfc,0x99,0xfc, +0xcf,0xfa,0x91,0xfa,0x94,0xfc,0x60,0xfd,0xb,0xfe,0xef,0xff, +0xe3,0xff,0x61,0xfd,0xa1,0xfa,0x79,0xf8,0xa8,0xf7,0xc1,0xf7, +0xbd,0xf7,0xba,0xf8,0xc4,0xfa,0x1e,0xfc,0x50,0xfd,0x69,0xff, +0xb9,0x0,0xd6,0xff,0x70,0xfe,0xee,0xfd,0x5a,0xfd,0x12,0xfd, +0x4b,0xfe,0x5a,0xff,0x77,0xff,0xc7,0x0,0xb0,0x2,0x4e,0x3, +0x62,0x4,0x28,0x6,0x31,0x6,0xa8,0x5,0xce,0x5,0xc7,0x4, +0x80,0x3,0x94,0x3,0x79,0x3,0x54,0x3,0x36,0x4,0x9,0x5, +0xac,0x5,0x99,0x6,0x3c,0x7,0x37,0x7,0x19,0x6,0x24,0x4, +0x57,0x2,0x90,0x0,0x3c,0xff,0x68,0xff,0x61,0x0,0xc4,0x1, +0xfb,0x3,0x9c,0x5,0x7e,0x5,0xcd,0x4,0xf4,0x3,0x9,0x2, +0x99,0xff,0x9c,0xfd,0xe7,0xfb,0x6,0xfb,0xf9,0xfb,0x3c,0xfe, +0x89,0x0,0x56,0x2,0xe7,0x3,0x1d,0x5,0xd6,0x4,0x34,0x3, +0x21,0x2,0xa0,0x1,0x0,0x0,0x71,0xfe,0xb5,0xfe,0x53,0xfe, +0xa4,0xfc,0x48,0xfd,0xb3,0xfe,0x5d,0xfd,0x6f,0xfc,0x9d,0xfd, +0xcd,0xfd,0x3c,0xfd,0xc4,0xfd,0xe2,0xfe,0x77,0xff,0xf,0xff, +0x34,0xff,0xf,0x0,0x3,0xff,0xd2,0xfd,0xf3,0xfe,0xdc,0xfe, +0x56,0xfd,0x6e,0xfe,0x3e,0x0,0x6e,0x0,0xad,0x1,0xd5,0x3, +0xcc,0x4,0x72,0x5,0x2,0x6,0x68,0x6,0xe7,0x6,0x9e,0x5, +0x50,0x3,0x65,0x2,0x97,0x0,0x10,0xfe,0x72,0xfe,0x31,0xff, +0x29,0xfe,0x22,0xff,0xc8,0x1,0x95,0x2,0x8c,0x2,0xfe,0x2, +0x58,0x2,0x35,0x0,0x7,0xfe,0x6c,0xfc,0xea,0xfa,0xbb,0xf9, +0xbc,0xf9,0xac,0xfa,0x88,0xfb,0x6c,0xfc,0x77,0xfd,0xac,0xfd, +0x69,0xfd,0xe6,0xfd,0x79,0xfe,0xe7,0xfe,0xfe,0xff,0x35,0x1, +0x4c,0x2,0x5f,0x3,0xed,0x3,0x5c,0x4,0xea,0x3,0xa6,0x1, +0xb2,0xff,0x60,0xfe,0x55,0xfc,0xfa,0xfb,0xf,0xfe,0xa2,0xff, +0xcb,0x0,0xce,0x2,0xa0,0x4,0x6f,0x5,0x16,0x5,0x2e,0x4, +0x24,0x3,0x82,0x0,0x43,0xfd,0x66,0xfc,0x2b,0xfc,0xf4,0xfa, +0x40,0xfb,0x30,0xfc,0xef,0xfb,0x3d,0xfc,0xb8,0xfc,0xe5,0xfc, +0xd6,0xfd,0xa9,0xfd,0x14,0xfd,0x60,0xfe,0x32,0xfe,0x91,0xfc, +0x42,0xfd,0x96,0xfd,0xf7,0xfb,0x39,0xfb,0xe2,0xfa,0xb4,0xfa, +0x9c,0xfb,0x8e,0xfc,0x22,0xfe,0xe1,0xff,0xc1,0xff,0xc6,0xff, +0x2e,0x0,0xcf,0xfe,0xab,0xfe,0xf,0x0,0x1c,0xff,0x9b,0xfe, +0x1b,0x0,0x4e,0xff,0x4e,0xfe,0xd0,0xff,0x6d,0xff,0x28,0xfd, +0xb6,0xfc,0xdd,0xfc,0x32,0xfc,0xee,0xfb,0x3a,0xfd,0x35,0xff, +0xd,0xff,0xfd,0xfd,0xf2,0xfe,0x15,0xff,0x38,0xfd,0xbe,0xfc, +0xf8,0xfc,0x72,0xfc,0xaf,0xfc,0x75,0xfd,0x65,0xfe,0x98,0xff, +0xf8,0xff,0xa1,0x0,0xf1,0x1,0x2f,0x1,0xd3,0xff,0x81,0x0, +0x56,0x0,0xf0,0xfe,0x96,0xff,0xc1,0x0,0xb0,0x0,0x60,0x1, +0xbd,0x2,0x60,0x3,0x3e,0x3,0x6e,0x2,0x47,0x1,0x6d,0xff, +0xa,0xfd,0xf1,0xfb,0x9f,0xfb,0x2c,0xfb,0xf0,0xfb,0x3e,0xfd, +0x72,0xfe,0x71,0x0,0x65,0x1,0x36,0x1,0x22,0x2,0x5f,0x1, +0xe2,0xfd,0xc3,0xfc,0x47,0xfd,0xb,0xfb,0x98,0xf9,0xce,0xfb, +0x15,0xfd,0xea,0xfc,0x94,0xff,0x87,0x3,0xd9,0x4,0xf8,0x4, +0x3a,0x6,0x92,0x6,0x47,0x4,0x57,0x2,0x2e,0x2,0xca,0x0, +0x8c,0xfe,0x91,0xfe,0xe8,0xff,0xcb,0x0,0x9a,0x1,0x84,0x2, +0x59,0x3,0x69,0x3,0x94,0x2,0x11,0x2,0x9d,0x1,0x66,0x0, +0xc8,0xff,0x83,0x0,0xf1,0x0,0xc2,0x0,0xbc,0x1,0x23,0x3, +0xf0,0x2,0xd6,0x2,0xa8,0x3,0xf9,0x2,0x53,0x2,0xfa,0x3, +0xca,0x4,0x45,0x4,0xea,0x5,0xf5,0x7,0x6c,0x7,0x4d,0x7, +0xb9,0x8,0x9,0x8,0xea,0x5,0x68,0x5,0xa5,0x4,0x79,0x2, +0xd3,0x1,0x1b,0x3,0xef,0x3,0x70,0x4,0x1d,0x6,0xd4,0x7, +0x3e,0x8,0xa3,0x8,0x11,0x9,0x12,0x8,0x23,0x6,0xaa,0x3, +0x53,0x1,0x88,0x0,0xdd,0xff,0x75,0xff,0xa3,0x1,0x85,0x3, +0x7e,0x3,0x47,0x5,0x73,0x7,0xc9,0x6,0x44,0x6,0xde,0x6, +0xb0,0x5,0xde,0x3,0xb3,0x3,0xef,0x3,0xb2,0x3,0xc0,0x3, +0x29,0x4,0x62,0x4,0xbd,0x3,0xb0,0x2,0x89,0x2,0x8d,0x2, +0x24,0x2,0x79,0x2,0xdf,0x2,0x9d,0x2,0xbc,0x2,0xd4,0x2, +0x57,0x2,0x49,0x1,0x19,0xff,0x1,0xfd,0xe6,0xfb,0xa0,0xfa, +0xff,0xf9,0x9f,0xfa,0xfa,0xfa,0x59,0xfb,0x1c,0xfc,0x15,0xfc, +0x9c,0xfb,0xd5,0xfa,0xf3,0xf8,0x32,0xf7,0xf7,0xf5,0x9d,0xf3, +0x70,0xf1,0x5e,0xf1,0x5e,0xf1,0xb7,0xf0,0x90,0xf1,0x40,0xf3, +0xd2,0xf3,0xea,0xf3,0xbd,0xf4,0x98,0xf5,0xee,0xf4,0xb7,0xf3, +0x96,0xf3,0xb2,0xf2,0xb7,0xf0,0x85,0xf0,0x54,0xf1,0x6e,0xf1, +0x7c,0xf2,0x7a,0xf4,0xe6,0xf5,0x3d,0xf7,0xe7,0xf8,0x4d,0xfa, +0xe0,0xfa,0xbc,0xfa,0xf4,0xfa,0x4e,0xfb,0xf6,0xfa,0x84,0xfb, +0x4b,0xfd,0xfe,0xfd,0x7f,0xfe,0x9a,0x0,0x16,0x2,0x21,0x2, +0xce,0x2,0xc3,0x3,0xc9,0x3,0x8a,0x3,0xe5,0x3,0xec,0x4, +0x57,0x5,0xf3,0x4,0xb9,0x5,0x26,0x7,0x54,0x7,0x4d,0x7, +0xe0,0x7,0x7,0x8,0x45,0x7,0xf4,0x5,0x5a,0x5,0x8f,0x5, +0xcb,0x4,0xeb,0x3,0x8c,0x4,0x64,0x4,0xa3,0x2,0x54,0x2, +0x45,0x3,0x76,0x2,0x78,0x0,0x89,0xff,0x24,0xff,0xba,0xfd, +0x36,0xfc,0x8d,0xfc,0x41,0xfd,0xf9,0xfb,0x0,0xfb,0xda,0xfb, +0x5f,0xfb,0x71,0xf9,0x34,0xf9,0xc4,0xf9,0xd3,0xf8,0xb8,0xf7, +0x6,0xf8,0x60,0xf8,0x22,0xf8,0x2d,0xf9,0x8,0xfb,0x60,0xfb, +0x48,0xfb,0xc,0xfc,0x3d,0xfc,0x18,0xfc,0xfb,0xfc,0xf2,0xfd, +0xf,0xfe,0x41,0xfe,0x2c,0xff,0x40,0x0,0x29,0x1,0x53,0x2, +0x9b,0x3,0xff,0x3,0x9b,0x3,0x0,0x4,0x46,0x5,0x16,0x6, +0xf0,0x6,0x95,0x8,0x8d,0x9,0x29,0x9,0xab,0x8,0xe8,0x8, +0x45,0x9,0xbf,0x8,0x21,0x8,0x75,0x8,0x51,0x8,0xa9,0x7, +0x68,0x8,0x9d,0x9,0x91,0x9,0xd,0x9,0x9f,0x8,0xa8,0x7, +0x33,0x6,0x31,0x5,0xf2,0x4,0x7e,0x4,0x9a,0x3,0x1c,0x3, +0xa0,0x2,0x85,0x1,0xda,0x0,0x14,0x1,0xee,0x0,0x48,0x0, +0xd8,0xff,0xb,0xff,0x9,0xfe,0xe8,0xfd,0x10,0xfe,0xdc,0xfd, +0xa2,0xfd,0x20,0xfd,0x61,0xfc,0xca,0xfb,0x44,0xfb,0x58,0xfb, +0xc,0xfc,0x1b,0xfc,0x81,0xfb,0x58,0xfb,0x7e,0xfb,0x4e,0xfb, +0x6c,0xfb,0x30,0xfc,0x35,0xfc,0x7d,0xfb,0xe2,0xfb,0xdf,0xfc, +0x15,0xfd,0x9d,0xfd,0xe9,0xfe,0x7d,0xff,0x3c,0xff,0x3f,0xff, +0xbc,0xff,0x24,0x0,0x27,0x0,0x5b,0x0,0x10,0x1,0x60,0x1, +0x7a,0x1,0xa1,0x2,0xdf,0x3,0xf3,0x3,0x22,0x4,0xb7,0x4, +0x41,0x4,0x4f,0x3,0x39,0x3,0x88,0x3,0x85,0x3,0x76,0x3, +0xd1,0x3,0x6a,0x4,0xc1,0x4,0xf7,0x4,0x41,0x5,0xeb,0x4, +0xc9,0x3,0xea,0x2,0x7e,0x2,0xa4,0x1,0xbf,0x0,0xb1,0x0, +0xc4,0x0,0x67,0x0,0x5b,0x0,0x85,0x0,0xeb,0xff,0x16,0xff, +0xd8,0xfe,0x7f,0xfe,0xc6,0xfd,0x4e,0xfd,0x14,0xfd,0xb,0xfd, +0x1d,0xfd,0xe8,0xfc,0xe1,0xfc,0xd2,0xfc,0xd6,0xfb,0x2c,0xfb, +0x8a,0xfb,0x52,0xfb,0xbc,0xfa,0x4c,0xfb,0x1,0xfc,0xb6,0xfb, +0xd0,0xfb,0xf5,0xfc,0x5c,0xfd,0xc4,0xfc,0xda,0xfc,0x44,0xfd, +0xd9,0xfc,0x73,0xfc,0xf7,0xfc,0xaa,0xfd,0xa6,0xfd,0x80,0xfd, +0x8,0xfe,0x66,0xfe,0x3f,0xfe,0xbf,0xfe,0x86,0xff,0x79,0xff, +0x61,0xff,0xe7,0xff,0xf0,0xff,0x57,0xff,0x95,0xff,0x49,0x0, +0xfb,0xff,0x82,0xff,0xd0,0xff,0x34,0x0,0x86,0x0,0xfc,0x0, +0x85,0x1,0xd2,0x1,0x71,0x1,0x41,0x1,0xc0,0x1,0x7a,0x1, +0x6f,0x0,0x8,0x0,0xf4,0xff,0x6e,0xff,0x12,0xff,0x86,0xff, +0xdb,0xff,0x38,0xff,0xcb,0xfe,0x47,0xff,0x96,0xff,0x50,0xff, +0x30,0xff,0x59,0xff,0xbb,0xfe,0xa,0xfd,0xb1,0xfb,0xdb,0xfa, +0xed,0xf9,0xf7,0xf9,0x29,0xfb,0x44,0xfc,0x31,0xfd,0x17,0xfe, +0x6d,0xfe,0xa,0xfe,0x79,0xfd,0x15,0xfd,0x2f,0xfc,0xa1,0xfa, +0xa6,0xf9,0xe4,0xf9,0x9,0xfb,0x9b,0xfc,0x12,0xfe,0x2,0xff, +0x44,0xff,0x2b,0xff,0xe1,0xfe,0x3c,0xfe,0xd5,0xfd,0x25,0xfe, +0x1a,0xff,0x9d,0x0,0xa3,0x1,0xbf,0x1,0xee,0x1,0x9a,0x1, +0x8,0x0,0x84,0xfe,0x73,0xfd,0x68,0xfc,0xa8,0xfc,0xfa,0xfe, +0xa0,0x1,0x68,0x3,0xfc,0x4,0xc3,0x5,0xb8,0x4,0xf1,0x2, +0xe6,0x0,0x4b,0xfe,0xab,0xfc,0xb1,0xfc,0x36,0xfd,0x64,0xfe, +0x96,0x0,0x95,0x2,0xa5,0x3,0x24,0x4,0xc9,0x3,0x67,0x2, +0x41,0x1,0x1c,0x1,0x51,0x1,0x80,0x1,0xb9,0x1,0xe0,0x1, +0x92,0x1,0x86,0x0,0xdd,0xff,0x61,0x0,0x8e,0x0,0xe,0x0, +0x99,0x0,0xdf,0x1,0x6a,0x2,0xd6,0x2,0x81,0x3,0xea,0x2, +0xe,0x1,0xb1,0xff,0x3,0xff,0x7c,0xfe,0xb7,0xfe,0xf1,0xff, +0x6c,0x1,0x7d,0x2,0xfb,0x2,0xc4,0x2,0x95,0x1,0x4d,0x0, +0x7,0x0,0xf,0x0,0xec,0xff,0x52,0x0,0xe8,0x0,0x84,0x1, +0xfa,0x2,0x71,0x4,0x2d,0x4,0xaa,0x2,0x66,0x1,0x68,0x0, +0x45,0xff,0x8f,0xfe,0xf1,0xfe,0x3c,0x0,0xc2,0x1,0x17,0x3, +0xde,0x3,0xb6,0x3,0x77,0x3,0xd3,0x3,0x80,0x3,0xfb,0x1, +0x6c,0x0,0x5f,0xff,0x2b,0xff,0x87,0xff,0x89,0xff,0xd2,0xff, +0xc0,0x0,0x36,0x1,0x51,0x1,0xb9,0x1,0x22,0x2,0x6e,0x2, +0xe4,0x2,0x8f,0x3,0xb6,0x3,0xb5,0x2,0x9e,0x1,0x5b,0x1, +0xd6,0x0,0xe8,0xff,0x25,0x0,0x15,0x1,0x15,0x1,0x32,0x1, +0x84,0x2,0x68,0x3,0x50,0x3,0xa6,0x3,0x7a,0x4,0xc1,0x4, +0x69,0x4,0x51,0x4,0x75,0x4,0xde,0x3,0x12,0x3,0xb9,0x2, +0xb3,0x1,0x38,0x0,0xf6,0xff,0xdb,0x0,0xca,0x1,0x9d,0x2, +0xe7,0x3,0x9,0x5,0xcf,0x4,0x71,0x4,0xdd,0x4,0x1a,0x4, +0x36,0x2,0x93,0x1,0xd7,0x1,0x6f,0x1,0xfd,0x0,0xaf,0x1, +0xc3,0x2,0xe3,0x2,0xc7,0x2,0x4f,0x3,0xf7,0x2,0x85,0x1, +0x3f,0x1,0xd0,0x1,0x5c,0x1,0x4d,0x1,0x55,0x2,0x3a,0x2, +0x90,0x1,0xff,0x1,0x12,0x2,0xee,0x1,0xf4,0x2,0x40,0x3, +0x2c,0x2,0xdf,0x1,0xd4,0x1,0x92,0x0,0xdc,0xff,0xfd,0x0, +0x9e,0x1,0x96,0x0,0x64,0x0,0x5d,0x1,0x4d,0x1,0x4e,0x1, +0xc4,0x2,0x2d,0x3,0x86,0x1,0x82,0x0,0xe,0x1,0xd0,0x0, +0x2f,0xff,0x39,0xff,0x1a,0x1,0xb7,0x0,0xc3,0xfe,0x7f,0xff, +0xa8,0x0,0x8,0xff,0x33,0xfe,0x89,0xff,0xeb,0xfe,0xb0,0xfc, +0xec,0xfc,0x82,0xfe,0xf5,0xfd,0xca,0xfc,0xe5,0xfd,0x40,0xff, +0x5c,0xfe,0x51,0xfd,0x79,0xfd,0xc,0xfd,0x75,0xfc,0xf1,0xfc, +0xfc,0xfc,0x4d,0xfc,0x38,0xfc,0x5d,0xfc,0x54,0xfc,0x2d,0xfc, +0xb4,0xfb,0x99,0xfb,0x9d,0xfb,0xee,0xfa,0x9f,0xfa,0xad,0xfa, +0x45,0xfa,0x54,0xfa,0x1a,0xfa,0xd8,0xf8,0xdf,0xf8,0xe9,0xf9, +0x8,0xfa,0xc0,0xfa,0x5a,0xfc,0xf4,0xfc,0x58,0xfd,0x2c,0xfe, +0xd0,0xfd,0x7e,0xfc,0x36,0xfc,0xb8,0xfc,0x16,0xfc,0xbb,0xfa, +0x26,0xfb,0x0,0xfd,0x7a,0xfd,0xff,0xfc,0xac,0xfd,0x1c,0xfe, +0xf7,0xfc,0x74,0xfc,0x47,0xfd,0x28,0xfd,0xa3,0xfb,0x34,0xfb, +0xd3,0xfc,0x72,0xfd,0xe9,0xfb,0xf6,0xfb,0x8e,0xfd,0xce,0xfc, +0x4b,0xfb,0xe0,0xfb,0xa1,0xfc,0x55,0xfc,0x6,0xfc,0xfb,0xfb, +0xd9,0xfb,0x2e,0xfb,0xa3,0xfa,0x59,0xfb,0x12,0xfc,0x75,0xfb, +0x32,0xfb,0x79,0xfc,0x5e,0xfd,0xc2,0xfc,0x6e,0xfc,0x32,0xfd, +0x60,0xfd,0x63,0xfc,0x25,0xfc,0x5e,0xfd,0xc0,0xfd,0xbf,0xfc, +0x31,0xfd,0xc4,0xfe,0x40,0xfe,0xd7,0xfc,0x67,0xfd,0x5,0xfe, +0x9c,0xfc,0x2a,0xfc,0x23,0xfe,0x9c,0xfe,0x64,0xfd,0x7f,0xfe, +0xf3,0xff,0x9b,0xfe,0xed,0xfd,0x3d,0xff,0x12,0xff,0x66,0xfd, +0xb3,0xfc,0x62,0xfd,0x5a,0xfe,0x3a,0xfe,0x8a,0xfd,0x35,0xfe, +0x27,0xff,0xa9,0xfe,0xe6,0xfe,0xa3,0x0,0xc0,0x0,0xb9,0xff, +0x86,0x0,0x45,0x1,0x88,0xff,0xcc,0xfd,0x7,0xfe,0x15,0xfe, +0xc9,0xfc,0x89,0xfc,0x18,0xfe,0xde,0xfe,0x9d,0xfe,0x95,0xff, +0x40,0x1,0x86,0x1,0xb1,0x0,0xac,0x0,0x66,0x1,0xcd,0x0, +0x79,0xff,0xb1,0xff,0xf7,0xff,0xaf,0xfe,0x9,0xfe,0x20,0xfe, +0xca,0xfc,0x15,0xfc,0x9,0xfe,0x53,0xff,0xa6,0xfe,0xa7,0xff, +0x48,0x2,0xab,0x2,0x84,0x1,0x38,0x2,0xf,0x3,0x1,0x1, +0x49,0xff,0xa4,0x0,0xc7,0x0,0x90,0xfe,0x1,0xff,0xa1,0x1, +0xad,0x1,0x3b,0x0,0x28,0x1,0x46,0x3,0xf2,0x2,0x7b,0x1, +0xb1,0x2,0x71,0x4,0xd,0x3,0xcb,0x1,0x8d,0x3,0x47,0x4, +0x57,0x2,0xd7,0x1,0x32,0x3,0xec,0x2,0x4f,0x1,0x9,0x1, +0x15,0x2,0x9e,0x2,0x48,0x2,0x51,0x2,0x62,0x2,0x99,0x1, +0x6f,0x1,0xc0,0x1,0x82,0x0,0x2b,0xff,0x18,0xff,0x41,0xfe, +0xac,0xfc,0x79,0xfc,0x3f,0xfd,0x96,0xfd,0xf0,0xfd,0x8,0xff, +0xeb,0xff,0xde,0xff,0xdb,0xff,0x94,0x0,0x1e,0x1,0x5f,0x0, +0x33,0xff,0x1b,0xff,0xf2,0xfe,0xcb,0xfd,0xcc,0xfd,0x53,0xff, +0x6,0x0,0xd9,0xff,0x7d,0x0,0x7c,0x1,0x5d,0x1,0xa,0x1, +0xb8,0x1,0xa0,0x1,0x3e,0x0,0xd7,0xff,0xd8,0xff,0x87,0xfe, +0x18,0xfe,0xda,0xff,0xa1,0x0,0xba,0xff,0x87,0x0,0x4e,0x2, +0x6d,0x1,0xa6,0xff,0x57,0x0,0x54,0x1,0x4e,0xff,0xfa,0xfc, +0x11,0xff,0x26,0x2,0xc0,0x0,0xff,0xff,0xbf,0x3,0xc1,0x4, +0xc7,0x1,0xf7,0x1,0x20,0x4,0xe9,0x2,0xb6,0x0,0x97,0x1, +0xba,0x3,0xd9,0x3,0x23,0x3,0x1a,0x4,0x1f,0x5,0x0,0x4, +0x98,0x2,0x83,0x2,0x3f,0x2,0x6b,0x1,0x4e,0x1,0xf9,0x1, +0xe9,0x2,0x4d,0x3,0xc9,0x2,0xd1,0x2,0x46,0x3,0xa7,0x2, +0xdc,0x1,0x57,0x1,0x9d,0x0,0x9a,0x0,0x51,0x0,0xf1,0xfe, +0xce,0xfe,0x51,0xff,0x25,0xfe,0x2,0xfd,0x61,0xfd,0xde,0xfd, +0xfd,0xfd,0x94,0xfe,0xe8,0xff,0xb7,0x0,0xcf,0xff,0x88,0xfe, +0x33,0xfe,0x5c,0xfd,0x90,0xfb,0xbe,0xfa,0x4,0xfb,0x1e,0xfb, +0xc6,0xfb,0x83,0xfd,0xed,0xfe,0x89,0xff,0x21,0x0,0x4f,0x0, +0x12,0xff,0x46,0xfd,0xb6,0xfc,0xdc,0xfc,0x5d,0xfc,0x5c,0xfc, +0xcd,0xfd,0x8,0xff,0x1f,0xff,0xa1,0xff,0x4f,0x1,0xee,0x1, +0x62,0x0,0xce,0xff,0xf7,0x0,0xc,0x0,0xf2,0xfd,0xd8,0xfe, +0x41,0x0,0xf2,0xfe,0x6e,0xfe,0x52,0x0,0xf8,0x0,0x41,0x0, +0x35,0x1,0x1a,0x3,0x9c,0x3,0x42,0x3,0x77,0x3,0xfe,0x3, +0xe4,0x3,0x41,0x3,0x41,0x3,0xce,0x3,0xa1,0x3,0x65,0x3, +0x20,0x4,0x4e,0x4,0xb8,0x3,0x4a,0x4,0xdb,0x4,0xca,0x3, +0x60,0x3,0x31,0x4,0x75,0x3,0xd6,0x1,0xb,0x2,0xa6,0x2, +0x99,0x1,0x9a,0x0,0xd9,0x0,0xb0,0x0,0x98,0xff,0x14,0xff, +0x82,0xff,0x55,0xff,0x3,0xfe,0x47,0xfd,0xde,0xfd,0x4e,0xfe, +0x13,0xfe,0x25,0xfe,0x99,0xfe,0x72,0xfe,0x79,0xfd,0x29,0xfd, +0xf1,0xfd,0x9b,0xfd,0xf6,0xfb,0xda,0xfb,0xfe,0xfc,0xba,0xfc, +0x5f,0xfc,0x58,0xfe,0x4e,0x0,0xdb,0xff,0x67,0xff,0x3c,0x0, +0xcf,0xff,0x14,0xfe,0x7c,0xfd,0x68,0xfd,0x44,0xfc,0x94,0xfb, +0x98,0xfc,0x98,0xfd,0xe6,0xfd,0xca,0xfe,0xda,0xff,0x26,0x0, +0x21,0x0,0xc3,0xff,0x4a,0xff,0x54,0xff,0x4,0xff,0x9c,0xfe, +0x6a,0xff,0xe,0x0,0xac,0xff,0xf5,0xff,0x8d,0x0,0x48,0x0, +0x49,0x0,0x51,0x0,0xf8,0xfe,0xce,0xfd,0xfd,0xfd,0xb,0xfe, +0x28,0xfe,0x54,0xff,0x59,0x0,0x80,0x0,0xd6,0x0,0xca,0x1, +0x84,0x2,0x40,0x2,0xaa,0x1,0x6e,0x1,0xbc,0x0,0xd1,0xff, +0xeb,0xff,0x78,0x0,0x8b,0x0,0x7a,0x0,0x97,0x0,0xe0,0x0, +0xde,0x0,0x50,0x0,0x81,0x0,0x92,0x1,0x73,0x1,0x9a,0x0, +0xe5,0x0,0xe5,0x0,0xbf,0xff,0x8d,0xff,0x38,0x0,0xe,0x0, +0x7e,0xff,0x3f,0xff,0x4e,0xff,0x83,0xff,0x5e,0xff,0x4f,0xff, +0x9c,0xff,0xc3,0xfe,0x38,0xfd,0x58,0xfd,0x22,0xfe,0xc1,0xfd, +0x16,0xfe,0xf2,0xff,0xba,0x0,0x5,0x0,0xcc,0xff,0xb,0x0, +0x6a,0xff,0x16,0xfe,0x9e,0xfd,0xc9,0xfd,0xcb,0xfc,0x1f,0xfc, +0xcb,0xfd,0x19,0xff,0xa2,0xfe,0x30,0xff,0x77,0x0,0x1f,0x0, +0x6e,0xff,0xeb,0xff,0x39,0x0,0xb3,0xff,0x90,0xff,0xe8,0xff, +0x9b,0xff,0xd1,0xfe,0xd2,0xfe,0x99,0xff,0xc3,0xff,0x87,0xff, +0x50,0x0,0x28,0x1,0xff,0x0,0x63,0x1,0x89,0x2,0xcb,0x2, +0x6c,0x2,0x8f,0x2,0xd7,0x2,0x62,0x2,0xdd,0x1,0x6e,0x2, +0xda,0x2,0x31,0x2,0xda,0x1,0xa6,0x1,0x93,0x0,0xba,0xff, +0xb5,0xff,0xed,0xff,0x5b,0x0,0xf6,0x0,0x93,0x1,0x40,0x2, +0xe5,0x2,0x3b,0x3,0xdc,0x2,0xb8,0x1,0x5b,0x0,0x2e,0xff, +0xf3,0xfd,0x5,0xfd,0x83,0xfd,0xa8,0xfe,0xfe,0xfe,0xa4,0xff, +0x17,0x1,0x7c,0x1,0xf4,0x0,0x69,0x1,0x2c,0x2,0x77,0x1, +0xaf,0x0,0x8c,0x1,0xf4,0x1,0x2a,0x1,0xe0,0x1,0x7c,0x3, +0x5f,0x3,0x88,0x2,0xb1,0x2,0x41,0x3,0x33,0x3,0x21,0x3, +0x30,0x4,0x70,0x5,0xd2,0x5,0x83,0x6,0xc6,0x7,0x53,0x8, +0x3c,0x8,0x78,0x8,0x2f,0x9,0x82,0x9,0xea,0x8,0x97,0x8, +0x54,0x9,0xc8,0x9,0x6f,0x9,0xb4,0x9,0x5d,0xa,0xd2,0x9, +0xc,0x9,0x96,0x9,0x4d,0xa,0x27,0xa,0xe1,0x9,0x1c,0xa, +0x5e,0xa,0x7b,0x9,0x2,0x8,0x91,0x7,0x9f,0x6,0xb,0x4, +0x98,0x2,0x3d,0x2,0x78,0x0,0xec,0xfe,0x60,0xff,0x1a,0x0, +0x40,0x0,0x7f,0x0,0x3c,0x1,0xbf,0x1,0x8c,0x0,0xc1,0xfe, +0xaa,0xfd,0x87,0xfa,0x3f,0xf5,0xd4,0xf1,0xb4,0xef,0x6d,0xec, +0x62,0xea,0x7e,0xeb,0x4d,0xed,0xf4,0xed,0x4d,0xef,0x2f,0xf2, +0xf5,0xf2,0x8c,0xf0,0x5c,0xef,0x4e,0xef,0x4b,0xec,0xd7,0xe8, +0xe5,0xe8,0x88,0xe9,0x76,0xe8,0x97,0xe8,0xcd,0xea,0xf,0xec, +0x9e,0xeb,0x55,0xec,0xe1,0xee,0x93,0xf0,0xf,0xf1,0xdc,0xf2, +0xc0,0xf5,0x3c,0xf7,0x93,0xf7,0xa8,0xf8,0xe3,0xf9,0xb3,0xf9, +0x16,0xf9,0xf8,0xf9,0xc2,0xfb,0xfd,0xfc,0x85,0xfe,0x55,0x1, +0xf8,0x3,0x67,0x5,0x80,0x6,0x91,0x7,0x53,0x8,0xb8,0x8, +0xaf,0x8,0xea,0x8,0x85,0x9,0x4c,0x9,0xdb,0x8,0x68,0x9, +0xd3,0x9,0x92,0x9,0x76,0x9,0x76,0x9,0x72,0x9,0x60,0x9, +0x35,0x9,0x67,0x9,0x56,0x9,0x61,0x8,0x63,0x7,0x31,0x6, +0x45,0x4,0x75,0x2,0xe3,0x0,0x5c,0xff,0x20,0xfe,0xd1,0xfc, +0x9f,0xfb,0x5,0xfb,0x76,0xfa,0xe,0xfa,0x33,0xfa,0x8,0xfa, +0x43,0xf9,0x79,0xf8,0x90,0xf7,0x3a,0xf6,0xa5,0xf4,0x2f,0xf3, +0xf9,0xf1,0xd0,0xf0,0xfe,0xef,0x18,0xf0,0xe8,0xf0,0xef,0xf1, +0x50,0xf3,0x2,0xf5,0x56,0xf6,0xf8,0xf6,0x2f,0xf7,0x4c,0xf7, +0x6a,0xf7,0x5e,0xf7,0x6c,0xf7,0x3a,0xf8,0x6a,0xf9,0xaa,0xfa, +0xbe,0xfc,0x18,0xff,0xa5,0x0,0x26,0x2,0xbc,0x3,0x9b,0x4, +0x42,0x5,0x31,0x6,0x65,0x7,0xeb,0x8,0x44,0xa,0x67,0xb, +0xaf,0xc,0x8e,0xd,0xfe,0xd,0x7b,0xe,0xa8,0xe,0x87,0xe, +0x65,0xe,0x37,0xe,0x5d,0xe,0xdc,0xe,0x41,0xf,0xcb,0xf, +0x49,0x10,0xf8,0xf,0x1d,0xf,0x39,0xe,0x11,0xd,0x9e,0xb, +0x2b,0xa,0xbd,0x8,0x68,0x7,0x5c,0x6,0x7a,0x5,0xb4,0x4, +0x1f,0x4,0x75,0x3,0x9b,0x2,0xbc,0x1,0xac,0x0,0x7e,0xff, +0x89,0xfe,0x8c,0xfd,0x52,0xfc,0x1f,0xfb,0xc,0xfa,0xf,0xf9, +0x42,0xf8,0xca,0xf7,0x9e,0xf7,0x69,0xf7,0x2a,0xf7,0x1c,0xf7, +0x27,0xf7,0x5b,0xf7,0xae,0xf7,0xd8,0xf7,0x22,0xf8,0xae,0xf8, +0x14,0xf9,0x52,0xf9,0x92,0xf9,0xea,0xf9,0x66,0xfa,0xd7,0xfa, +0x7d,0xfb,0x71,0xfc,0x22,0xfd,0xf9,0xfd,0x6d,0xff,0xb7,0x0, +0xbb,0x1,0xc0,0x2,0x7f,0x3,0x1d,0x4,0x72,0x4,0x4b,0x4, +0x74,0x4,0xf9,0x4,0x4f,0x5,0xb9,0x5,0x34,0x6,0x8e,0x6, +0x2,0x7,0x73,0x7,0xbd,0x7,0xf0,0x7,0xf1,0x7,0xe1,0x7, +0xe6,0x7,0xed,0x7,0xdc,0x7,0xa8,0x7,0x58,0x7,0xdb,0x6, +0x2c,0x6,0x99,0x5,0x37,0x5,0xd5,0x4,0x63,0x4,0xf0,0x3, +0x90,0x3,0x2c,0x3,0xc3,0x2,0x79,0x2,0x7,0x2,0x4d,0x1, +0x8a,0x0,0xac,0xff,0xc1,0xfe,0xfc,0xfd,0x58,0xfd,0xd4,0xfc, +0x47,0xfc,0xb8,0xfb,0x70,0xfb,0x33,0xfb,0xfe,0xfa,0x2a,0xfb, +0x31,0xfb,0xde,0xfa,0xc7,0xfa,0xd3,0xfa,0xa9,0xfa,0x89,0xfa, +0x96,0xfa,0xa2,0xfa,0x9c,0xfa,0xaa,0xfa,0xe9,0xfa,0x45,0xfb, +0xa0,0xfb,0xf,0xfc,0xad,0xfc,0x3c,0xfd,0xa0,0xfd,0x1b,0xfe, +0x9c,0xfe,0xb,0xff,0x9f,0xff,0x2e,0x0,0xa6,0x0,0x2b,0x1, +0x7e,0x1,0xdb,0x1,0x90,0x2,0x18,0x3,0x64,0x3,0xe7,0x3, +0x7b,0x4,0xe4,0x4,0x40,0x5,0xae,0x5,0xf,0x6,0x2a,0x6, +0x2c,0x6,0x2a,0x6,0xec,0x5,0xaa,0x5,0x9f,0x5,0x84,0x5, +0x3b,0x5,0xec,0x4,0xa0,0x4,0x3d,0x4,0xd2,0x3,0x7d,0x3, +0x1c,0x3,0xb1,0x2,0x57,0x2,0xe3,0x1,0x69,0x1,0xff,0x0, +0x7b,0x0,0xf3,0xff,0x62,0xff,0x9d,0xfe,0xc3,0xfd,0xe7,0xfc, +0x37,0xfc,0xe7,0xfb,0xc2,0xfb,0xaf,0xfb,0x9f,0xfb,0x6e,0xfb, +0x5b,0xfb,0x64,0xfb,0x44,0xfb,0xf,0xfb,0xd6,0xfa,0xa7,0xfa, +0x89,0xfa,0x68,0xfa,0x81,0xfa,0xd4,0xfa,0xf,0xfb,0x4e,0xfb, +0xad,0xfb,0x7,0xfc,0x5e,0xfc,0xbe,0xfc,0x36,0xfd,0xa8,0xfd, +0xf7,0xfd,0x62,0xfe,0xe3,0xfe,0x3b,0xff,0x9c,0xff,0x21,0x0, +0x89,0x0,0xc8,0x0,0x26,0x1,0xa5,0x1,0xfd,0x1,0x53,0x2, +0xd7,0x2,0x31,0x3,0x69,0x3,0xb3,0x3,0xcf,0x3,0xe0,0x3, +0x26,0x4,0x59,0x4,0x66,0x4,0x6e,0x4,0x69,0x4,0x5e,0x4, +0x45,0x4,0x26,0x4,0xc,0x4,0xe4,0x3,0xba,0x3,0x9b,0x3, +0x72,0x3,0x3b,0x3,0xf9,0x2,0xb8,0x2,0x67,0x2,0xe9,0x1, +0x66,0x1,0x0,0x1,0xaf,0x0,0x6b,0x0,0x19,0x0,0xc7,0xff, +0x8e,0xff,0x49,0xff,0x3,0xff,0xba,0xfe,0x46,0xfe,0xf1,0xfd, +0xe1,0xfd,0xa4,0xfd,0x3a,0xfd,0x10,0xfd,0x4,0xfd,0xe2,0xfc, +0xd9,0xfc,0xd2,0xfc,0x9e,0xfc,0x83,0xfc,0x9c,0xfc,0xaa,0xfc, +0xb5,0xfc,0xe3,0xfc,0x17,0xfd,0x44,0xfd,0x78,0xfd,0xa7,0xfd, +0xca,0xfd,0xfe,0xfd,0x52,0xfe,0x96,0xfe,0xbe,0xfe,0xf9,0xfe, +0x3e,0xff,0x7c,0xff,0xd5,0xff,0x35,0x0,0x7c,0x0,0xb7,0x0, +0xee,0x0,0x27,0x1,0x62,0x1,0x91,0x1,0xb5,0x1,0xcc,0x1, +0xde,0x1,0x5,0x2,0x1b,0x2,0x1e,0x2,0x43,0x2,0x75,0x2, +0x89,0x2,0x81,0x2,0x54,0x2,0x1b,0x2,0xe7,0x1,0x93,0x1, +0x35,0x1,0xf6,0x0,0xb2,0x0,0x71,0x0,0x47,0x0,0x14,0x0, +0xed,0xff,0xe6,0xff,0xd1,0xff,0x9d,0xff,0x57,0xff,0x1,0xff, +0x9a,0xfe,0x2e,0xfe,0xd7,0xfd,0x8f,0xfd,0x3f,0xfd,0x6,0xfd, +0xe5,0xfc,0xbe,0xfc,0xb7,0xfc,0xcb,0xfc,0xda,0xfc,0x0,0xfd, +0x18,0xfd,0xf4,0xfc,0xe3,0xfc,0xf0,0xfc,0xe3,0xfc,0xcf,0xfc, +0xb9,0xfc,0x98,0xfc,0xa2,0xfc,0xe9,0xfc,0x46,0xfd,0xa3,0xfd, +0xf1,0xfd,0x2d,0xfe,0x59,0xfe,0x89,0xfe,0xcc,0xfe,0x1,0xff, +0x26,0xff,0x56,0xff,0x71,0xff,0x86,0xff,0xc9,0xff,0x16,0x0, +0x53,0x0,0x8a,0x0,0x96,0x0,0xa6,0x0,0xec,0x0,0x1e,0x1, +0x3a,0x1,0x81,0x1,0xc3,0x1,0xdd,0x1,0xe2,0x1,0xd4,0x1, +0xc1,0x1,0xaf,0x1,0x91,0x1,0x7d,0x1,0x7a,0x1,0x70,0x1, +0x5c,0x1,0x3f,0x1,0x1d,0x1,0x1,0x1,0xeb,0x0,0xcf,0x0, +0xa1,0x0,0x68,0x0,0x2a,0x0,0xd4,0xff,0x8f,0xff,0x86,0xff, +0x72,0xff,0x34,0xff,0xfc,0xfe,0xbb,0xfe,0x6c,0xfe,0x35,0xfe, +0x7,0xfe,0xd7,0xfd,0xa9,0xfd,0x71,0xfd,0x59,0xfd,0x57,0xfd, +0x29,0xfd,0x7,0xfd,0x12,0xfd,0xfb,0xfc,0xe0,0xfc,0x7,0xfd, +0x4b,0xfd,0x8f,0xfd,0xc8,0xfd,0xe4,0xfd,0xf1,0xfd,0xf6,0xfd, +0x0,0xfe,0x2b,0xfe,0x69,0xfe,0x9b,0xfe,0xc1,0xfe,0xf2,0xfe, +0x23,0xff,0x3c,0xff,0x7a,0xff,0xde,0xff,0xe,0x0,0x3d,0x0, +0x97,0x0,0xbf,0x0,0xc5,0x0,0xcf,0x0,0xc9,0x0,0xfa,0x0, +0x4f,0x1,0x8c,0x1,0xdf,0x1,0x11,0x2,0xfc,0x1,0xe,0x2, +0x24,0x2,0xf9,0x1,0xd3,0x1,0xaf,0x1,0x82,0x1,0x71,0x1, +0x6c,0x1,0x7e,0x1,0x9d,0x1,0x9f,0x1,0x97,0x1,0x87,0x1, +0x55,0x1,0x1f,0x1,0xed,0x0,0xb7,0x0,0x85,0x0,0x6a,0x0, +0x6b,0x0,0x59,0x0,0x28,0x0,0xb,0x0,0xf7,0xff,0xd9,0xff, +0xc7,0xff,0xb9,0xff,0x8a,0xff,0x1b,0xff,0xa3,0xfe,0x83,0xfe, +0x92,0xfe,0x94,0xfe,0xa5,0xfe,0xab,0xfe,0x9c,0xfe,0xa0,0xfe, +0x9d,0xfe,0x93,0xfe,0x9b,0xfe,0x97,0xfe,0x9b,0xfe,0xc1,0xfe, +0xed,0xfe,0x17,0xff,0x41,0xff,0x75,0xff,0xb8,0xff,0xc8,0xff, +0x99,0xff,0x68,0xff,0x48,0xff,0x53,0xff,0x9f,0xff,0xfb,0xff, +0x2f,0x0,0x3d,0x0,0x4f,0x0,0x68,0x0,0x69,0x0,0x71,0x0, +0x8e,0x0,0x9c,0x0,0xb2,0x0,0xc5,0x0,0xa4,0x0,0x80,0x0, +0x80,0x0,0x89,0x0,0x90,0x0,0x93,0x0,0xa6,0x0,0xd2,0x0, +0xe1,0x0,0xbb,0x0,0x5c,0x0,0xd7,0xff,0x6c,0xff,0x1b,0xff, +0xe5,0xfe,0xdf,0xfe,0xd7,0xfe,0xcf,0xfe,0xdd,0xfe,0xa5,0xfe, +0x1c,0xfe,0x72,0xfd,0xab,0xfc,0x32,0xfc,0x16,0xfc,0x97,0xfa, +0xc1,0xf5,0xf,0xef,0x1d,0xeb,0x81,0xec,0xbf,0xf1,0xa3,0xf7, +0x51,0xfa,0x8d,0xf7,0x26,0xf2,0x51,0xef,0x4e,0xf1,0x97,0xf6, +0xb0,0xfb,0x65,0xfd,0xda,0xfa,0x4b,0xf6,0xd6,0xf3,0x47,0xf6, +0x56,0xfc,0x97,0x1,0xfd,0x1,0xa6,0xfc,0xf4,0xf4,0x7a,0xf1, +0x3,0xf7,0x29,0x3,0xf5,0xd,0xe6,0x10,0x12,0xb,0x66,0x1, +0x92,0xfb,0x69,0xfd,0x75,0x3,0xa7,0x7,0x2f,0x7,0x35,0x3, +0x2f,0xff,0xd1,0xfe,0xef,0x2,0x98,0x8,0xf8,0xb,0xec,0xa, +0x12,0x6,0x5f,0x0,0x5c,0xfd,0xa4,0xff,0xc2,0x6,0x5,0xe, +0x4f,0x10,0x3b,0xc,0x80,0x4,0x92,0xfe,0xcb,0xfe,0xfe,0x3, +0x11,0x9,0x54,0xa,0xc6,0x7,0xb,0x4,0x89,0x2,0xd8,0x4, +0xf8,0x8,0x81,0xb,0xc7,0xa,0x72,0x6,0xc6,0xff,0xd5,0xfa, +0x18,0xfb,0xf7,0xff,0xdf,0x5,0x14,0x8,0xcb,0x3,0xd6,0xfb, +0x88,0xf6,0xfc,0xf7,0xe2,0xfe,0x65,0x5,0x1e,0x6,0x24,0x1, +0x7e,0xfb,0xff,0xf9,0x3b,0xfd,0xea,0x1,0x6,0x4,0x32,0x2, +0xaf,0xfe,0x4e,0xfc,0x59,0xfc,0x55,0xff,0x3f,0x4,0x76,0x8, +0x33,0xa,0x2f,0x9,0x3a,0x6,0xc3,0x3,0x93,0x4,0xbd,0x8, +0x0,0xd,0x5c,0xe,0x8a,0xc,0x3d,0x9,0x53,0x7,0x75,0x8, +0x47,0xb,0xe3,0xd,0xe4,0xe,0x5c,0xd,0x86,0xa,0xa2,0x8, +0xeb,0x8,0x54,0xb,0xe7,0xd,0x29,0xe,0x3f,0xb,0x42,0x6, +0x32,0x2,0xaf,0x1,0x7e,0x4,0xd7,0x7,0x4d,0x8,0x18,0x5, +0x88,0x0,0x6a,0xfd,0xf0,0xfd,0x47,0x1,0x62,0x3,0x4a,0x2, +0x16,0xff,0x7d,0xfb,0x1c,0xfa,0x54,0xfc,0xaf,0xff,0xc5,0x0, +0x57,0xff,0x69,0xfd,0xc0,0xfb,0x6c,0xfa,0xb5,0xfa,0xcf,0xfc, +0xff,0xfe,0x12,0x0,0xc6,0xff,0x26,0xfe,0x9,0xfc,0x74,0xfb, +0xc4,0xfd,0x2,0x1,0xdb,0x1,0xdb,0xff,0x2b,0xfd,0xc6,0xfb, +0x77,0xfc,0xe8,0xfe,0x62,0x1,0xc0,0x1,0x9,0x0,0x26,0xfe, +0x41,0xfd,0xcf,0xfd,0x13,0x0,0x3,0x3,0x8d,0x4,0x37,0x3, +0xe0,0xff,0x5c,0xfd,0x3a,0xfd,0xc5,0xfe,0xc3,0x0,0x90,0x1, +0xc,0x0,0xf,0xfe,0x44,0xfe,0x4d,0x0,0x70,0x2,0xb3,0x3, +0xf,0x3,0xbb,0x0,0xa0,0xfe,0x70,0xfd,0xe8,0xfc,0x61,0xfd, +0x84,0xfe,0x40,0xff,0xf1,0xfe,0x86,0xfd,0xd7,0xfb,0xf,0xfb, +0x4a,0xfb,0xcc,0xfb,0xc9,0xfb,0x64,0xfa,0xa9,0xf7,0xbc,0xf5, +0x5d,0xf6,0x3b,0xf8,0x67,0xf9,0x7d,0xf9,0x4f,0xf8,0x54,0xf6, +0x4e,0xf5,0xb,0xf6,0x90,0xf7,0xd3,0xf8,0x49,0xf9,0xa6,0xf8, +0xb5,0xf7,0x97,0xf7,0x3b,0xf8,0x6e,0xf9,0xc,0xfb,0xda,0xfb, +0x86,0xfb,0x75,0xfb,0x7,0xfc,0xc8,0xfc,0x2,0xfe,0x52,0xff, +0x47,0xff,0xf6,0xfd,0xfc,0xfc,0xdc,0xfc,0x6b,0xfd,0xc,0xff, +0x1c,0x1,0x23,0x2,0x9,0x2,0xaf,0x1,0x64,0x1,0xf6,0x0, +0xa8,0x0,0xf2,0x0,0x5f,0x1,0xfe,0x0,0xae,0xff,0x69,0xfe, +0x4a,0xfe,0xf0,0xfe,0x77,0xff,0xb1,0xff,0xeb,0xfe,0x17,0xfd, +0x1f,0xfc,0xfc,0xfc,0x7b,0xfe,0x79,0xff,0xbc,0xff,0x1,0xff, +0x69,0xfd,0x60,0xfc,0x99,0xfc,0xb,0xfd,0x64,0xfd,0x95,0xfd, +0xe8,0xfc,0x0,0xfc,0xd6,0xfb,0xd,0xfc,0x72,0xfc,0x17,0xfd, +0x59,0xfd,0xb9,0xfc,0xe7,0xfb,0xd,0xfc,0x3b,0xfd,0xaa,0xfe, +0xb0,0xff,0x9a,0xff,0x6d,0xfe,0x32,0xfd,0x90,0xfc,0x86,0xfc, +0xd7,0xfc,0x28,0xfd,0x77,0xfd,0xf8,0xfd,0x7d,0xfe,0xcd,0xfe, +0x4a,0xff,0x17,0x0,0x8f,0x0,0x99,0x0,0x59,0x0,0x86,0xff, +0x29,0xff,0x23,0x0,0xfc,0x0,0x48,0x1,0x20,0x2,0x8b,0x2, +0xa4,0x1,0x34,0x1,0x5,0x2,0xb6,0x2,0xfb,0x2,0x49,0x3, +0x1f,0x3,0x7f,0x2,0x43,0x2,0x86,0x2,0x2,0x3,0x82,0x3, +0x86,0x3,0xfe,0x2,0x37,0x2,0x46,0x1,0xc5,0x0,0x36,0x1, +0xac,0x1,0x27,0x1,0x1b,0x0,0x21,0xff,0x30,0xfe,0xe6,0xfd, +0xc3,0xfe,0xb9,0xff,0xed,0xff,0xb8,0xff,0x32,0xff,0x73,0xfe, +0x46,0xfe,0xdf,0xfe,0x48,0xff,0xb1,0xfe,0x8b,0xfd,0xc2,0xfc, +0x96,0xfc,0xda,0xfc,0x75,0xfd,0x1e,0xfe,0x80,0xfe,0x86,0xfe, +0x62,0xfe,0x6a,0xfe,0xe1,0xfe,0xb3,0xff,0x78,0x0,0xe3,0x0, +0xd8,0x0,0x73,0x0,0x51,0x0,0xc0,0x0,0x36,0x1,0x88,0x1, +0xc4,0x1,0x82,0x1,0x11,0x1,0x32,0x1,0xae,0x1,0x23,0x2, +0x94,0x2,0xaf,0x2,0x58,0x2,0xf4,0x1,0x8a,0x1,0x1d,0x1, +0x49,0x1,0x6,0x2,0x4d,0x2,0xe3,0x1,0x71,0x1,0x19,0x1, +0xf1,0x0,0x2f,0x1,0x5d,0x1,0x36,0x1,0xee,0x0,0x5b,0x0, +0x12,0x0,0xfc,0x0,0x27,0x2,0x58,0x2,0x15,0x2,0x95,0x1, +0x52,0x0,0x17,0xff,0xc9,0xfe,0x99,0xfe,0xff,0xfd,0x7b,0xfd, +0x11,0xfd,0xf4,0xfc,0xb2,0xfd,0xab,0xfe,0x29,0xff,0x39,0xff, +0x99,0xfe,0xa2,0xfd,0x5a,0xfd,0x92,0xfd,0x9c,0xfd,0x93,0xfd, +0x83,0xfd,0x32,0xfd,0xe5,0xfc,0xf6,0xfc,0x27,0xfd,0x50,0xfd, +0x9b,0xfd,0x85,0xfd,0xc,0xfd,0x2a,0xfd,0xaa,0xfd,0x20,0xfe, +0x1c,0xff,0x6,0x0,0xfd,0xff,0xca,0xff,0xda,0xff,0x8e,0xff, +0x28,0xff,0x7b,0xff,0x72,0x0,0x60,0x1,0x16,0x2,0xa1,0x2, +0xce,0x2,0xb0,0x2,0x9d,0x2,0xad,0x2,0x92,0x2,0x1a,0x2, +0x97,0x1,0x59,0x1,0xb4,0x1,0xd8,0x2,0xe1,0x3,0x47,0x4, +0x60,0x4,0xa0,0x3,0x57,0x2,0xf1,0x1,0xe7,0x1,0xa0,0x1, +0x12,0x2,0xae,0x2,0x47,0x2,0xb0,0x1,0xd9,0x1,0x1e,0x2, +0xc7,0x1,0x25,0x1,0x7c,0x0,0x8f,0xff,0xb2,0xfe,0x9c,0xfe, +0x69,0xff,0x61,0x0,0x85,0x0,0xf7,0xff,0xa6,0xff,0x6b,0xff, +0xdc,0xfe,0xd4,0xfe,0xb6,0xff,0x17,0x0,0x8e,0xff,0x86,0xff, +0xbc,0xff,0x13,0xff,0xb7,0xfe,0x38,0xff,0x25,0xff,0x94,0xfe, +0x95,0xfe,0xce,0xfe,0xcc,0xfe,0x2e,0xff,0x50,0x0,0x39,0x1, +0x28,0x1,0xd2,0x0,0x98,0x0,0x26,0x0,0x1a,0x0,0x22,0x1, +0x52,0x2,0x50,0x2,0x7d,0x1,0x12,0x1,0xdd,0x0,0x97,0x0, +0x3e,0x1,0x7c,0x2,0x83,0x2,0xa9,0x1,0xcd,0x1,0xa5,0x2, +0xfb,0x2,0x5a,0x3,0xe2,0x3,0x4f,0x3,0xec,0x1,0x68,0x1, +0x1a,0x2,0xe5,0x2,0x11,0x3,0xe,0x3,0xc6,0x2,0x7a,0x1, +0x0,0x0,0x7b,0xff,0x80,0xff,0xab,0xff,0x5,0x0,0x87,0x0, +0x38,0x1,0xc5,0x1,0x32,0x2,0xbe,0x2,0xb3,0x2,0xcf,0x1, +0xd4,0x0,0xe1,0xff,0xfc,0xfe,0xdf,0xfe,0x7a,0xff,0xff,0xff, +0x7a,0x0,0xff,0x0,0xb5,0x0,0xa1,0xff,0xed,0xfe,0x7,0xff, +0x85,0xff,0xef,0xff,0x3f,0x0,0xa6,0x0,0xb4,0x0,0x6e,0x0, +0xa6,0x0,0x3,0x1,0xa6,0x0,0xa2,0xff,0xa4,0xfe,0x86,0xfe, +0x21,0xff,0x95,0xff,0x3b,0x0,0x21,0x1,0x2c,0x1,0x82,0x0, +0x24,0x0,0x1b,0x0,0x34,0x0,0x9b,0x0,0x51,0x1,0xd8,0x1, +0xdd,0x1,0xba,0x1,0xbe,0x1,0xb5,0x1,0x5e,0x1,0xb1,0x0, +0x7,0x0,0xb5,0xff,0xa3,0xff,0xc0,0xff,0x33,0x0,0xe9,0x0, +0x72,0x1,0x7c,0x1,0x1c,0x1,0x85,0x0,0xe0,0xff,0x32,0xff, +0x9b,0xfe,0x8b,0xfe,0xa6,0xfe,0x16,0xfe,0x85,0xfd,0xd2,0xfd, +0x4c,0xfe,0x92,0xfe,0x4,0xff,0x73,0xff,0x94,0xff,0x6d,0xff, +0x3f,0xff,0x70,0xff,0xaa,0xff,0x71,0xff,0x28,0xff,0xe7,0xfe, +0x66,0xfe,0x1c,0xfe,0x75,0xfe,0x3,0xff,0x63,0xff,0x99,0xff, +0xa9,0xff,0xa6,0xff,0xcd,0xff,0x1,0x0,0x8,0x0,0x15,0x0, +0x9,0x0,0x7f,0xff,0xfa,0xfe,0xe5,0xfe,0xa9,0xfe,0x6c,0xfe, +0xcd,0xfe,0x20,0xff,0xea,0xfe,0xea,0xfe,0x24,0xff,0x1a,0xff, +0x59,0xff,0xfb,0xff,0xf9,0xff,0x6b,0xff,0x2e,0xff,0x7,0xff, +0xc5,0xfe,0xdd,0xfe,0x2d,0xff,0x4b,0xff,0x3e,0xff,0x34,0xff, +0x44,0xff,0x57,0xff,0x63,0xff,0x97,0xff,0xeb,0xff,0xe9,0xff, +0x67,0xff,0x1c,0xff,0x4b,0xff,0x18,0xff,0xb4,0xfe,0x16,0xff, +0x5e,0xff,0x9b,0xfe,0xfa,0xfd,0x34,0xfe,0x6c,0xfe,0x63,0xfe, +0x9d,0xfe,0xf6,0xfe,0x0,0xff,0xf5,0xfe,0x27,0xff,0x5d,0xff, +0x57,0xff,0x3b,0xff,0x33,0xff,0x1e,0xff,0xf1,0xfe,0xed,0xfe, +0x2b,0xff,0x9d,0xff,0x23,0x0,0x82,0x0,0xc2,0x0,0xee,0x0, +0xd5,0x0,0xc3,0x0,0xed,0x0,0xc,0x1,0x54,0x1,0xb5,0x1, +0x81,0x1,0x8,0x1,0xd7,0x0,0x79,0x0,0x15,0x0,0x7a,0x0, +0x3,0x1,0xda,0x0,0xcd,0x0,0x28,0x1,0x47,0x1,0xaa,0x1, +0x38,0x2,0xa8,0x1,0x70,0x0,0xb7,0xff,0x1e,0xff,0x8e,0xfe, +0xad,0xfe,0x35,0xff,0x9d,0xff,0x37,0x0,0x6,0x1,0x5b,0x1, +0x3d,0x1,0xf6,0x0,0x39,0x0,0x5a,0xff,0xeb,0xfe,0x7c,0xfe, +0xe6,0xfd,0x9c,0xfd,0x90,0xfd,0x93,0xfd,0xd9,0xfd,0x52,0xfe, +0x67,0xfe,0x1a,0xfe,0x25,0xfe,0x78,0xfe,0xe0,0xfe,0xc7,0xff, +0xb5,0x0,0xf5,0x0,0xab,0x0,0xf7,0xff,0x2c,0xff,0x92,0xfe, +0xc3,0xfd,0xea,0xfc,0x87,0xfc,0x89,0xfc,0x11,0xfd,0x3f,0xfe, +0x7e,0xff,0x4b,0x0,0xc6,0x0,0xe5,0x0,0x65,0x0,0xda,0xff, +0xcb,0xff,0x9e,0xff,0x35,0xff,0x1d,0xff,0x52,0xff,0x9c,0xff, +0xba,0xff,0x97,0xff,0x62,0xff,0xdc,0xfe,0x29,0xfe,0x24,0xfe, +0xc8,0xfe,0x83,0xff,0x3a,0x0,0xf4,0x0,0x92,0x1,0xb8,0x1, +0x4e,0x1,0x9d,0x0,0xaa,0xff,0x95,0xfe,0xc8,0xfd,0x75,0xfd, +0xa0,0xfd,0x18,0xfe,0x9a,0xfe,0x7,0xff,0x3d,0xff,0x4f,0xff, +0x40,0xff,0xe0,0xfe,0x94,0xfe,0xc0,0xfe,0xff,0xfe,0x45,0xff, +0x14,0x0,0xfc,0x0,0xf9,0x0,0x6a,0x0,0x2e,0x0,0xa8,0xff, +0xb8,0xfe,0xb9,0xfe,0x63,0xff,0x5d,0xff,0x6f,0xff,0xb0,0x0, +0xec,0x1,0x1a,0x2,0x31,0x2,0x6b,0x2,0xaf,0x1,0x9a,0x0, +0x88,0x0,0xb9,0x0,0x74,0x0,0xac,0x0,0x77,0x1,0xcd,0x1, +0xb1,0x1,0xb3,0x1,0x94,0x1,0xff,0x0,0x35,0x0,0xa4,0xff, +0x84,0xff,0xbe,0xff,0x1a,0x0,0x7b,0x0,0x9c,0x0,0x48,0x0, +0xca,0xff,0x76,0xff,0x15,0xff,0x6f,0xfe,0x17,0xfe,0x77,0xfe, +0xe0,0xfe,0x4b,0xff,0x6f,0x0,0x3b,0x1,0xa7,0x0,0x1e,0x0, +0x4a,0x0,0xf3,0xff,0x59,0xff,0x7e,0xff,0xb7,0xff,0x7f,0xff, +0xa2,0xff,0x31,0x0,0x7a,0x0,0x97,0x0,0xd6,0x0,0xfe,0x0, +0x9,0x1,0x2c,0x1,0x60,0x1,0x9a,0x1,0xe3,0x1,0xe3,0x1, +0x32,0x1,0x43,0x0,0xaa,0xff,0x27,0xff,0xc2,0xfe,0xff,0xfe, +0x9f,0xff,0x18,0x0,0x94,0x0,0x64,0x1,0x1e,0x2,0xfd,0x1, +0x7b,0x1,0x7f,0x1,0x2c,0x1,0x16,0x0,0xd7,0xff,0x85,0x0, +0xa8,0x0,0xa3,0x0,0x48,0x1,0xb9,0x1,0x40,0x1,0x5f,0x0, +0xdc,0xff,0xb6,0xff,0x48,0xff,0xe8,0xfe,0x68,0xff,0x3,0x0, +0xfd,0xff,0x5c,0x0,0x58,0x1,0x8b,0x1,0xac,0x0,0xd8,0xff, +0x53,0xff,0x68,0xfe,0x4f,0xfd,0x6,0xfd,0x31,0xfd,0xc8,0xfc, +0x3e,0xfc,0x57,0xfc,0xa3,0xfc,0xeb,0xfc,0x96,0xfd,0x67,0xfe, +0xf8,0xfe,0x45,0xff,0x79,0xff,0xd3,0xff,0xe6,0xff,0x31,0xff, +0x8e,0xfe,0x74,0xfe,0x32,0xfe,0x46,0xfe,0x71,0xff,0xd8,0x0, +0xbf,0x1,0x7b,0x2,0x5e,0x3,0x1a,0x4,0x1f,0x4,0x9f,0x3, +0x2d,0x3,0xbf,0x2,0x3d,0x2,0xfe,0x1,0x70,0x2,0x48,0x3, +0x85,0x3,0x76,0x3,0x21,0x4,0x6a,0x4,0x3f,0x3,0x35,0x2, +0x3d,0x2,0xe8,0x1,0xf5,0x0,0xfd,0x0,0xcc,0x1,0x90,0x1, +0xbd,0x0,0xdf,0x0,0x34,0x1,0x87,0x0,0xab,0xff,0x62,0xff, +0xe2,0xfe,0xf0,0xfd,0x6b,0xfd,0x68,0xfd,0x85,0xfd,0x9d,0xfd, +0x77,0xfd,0xa8,0xfd,0x91,0xfe,0xee,0xfe,0xc0,0xfe,0x63,0xff, +0x1b,0x0,0xac,0xff,0xf9,0xfe,0xe1,0xfe,0x75,0xfe,0x2a,0xfd, +0x96,0xfc,0x3f,0xfd,0x72,0xfd,0x89,0xfd,0xf6,0xfe,0x22,0x0, +0xf4,0xff,0x1d,0x0,0xc8,0x0,0xcf,0x0,0xac,0x0,0x98,0x0, +0x15,0x0,0xd0,0xff,0xfa,0xff,0xbc,0xff,0x80,0xff,0x99,0xff, +0x8,0xff,0x3c,0xfe,0x8a,0xfe,0x50,0xff,0xa0,0xff,0x48,0x0, +0x68,0x1,0x71,0x1,0x9e,0x0,0xa9,0x0,0xa6,0x0,0x73,0xff, +0xa,0xff,0xe2,0xff,0x16,0x0,0x36,0x0,0x3b,0x1,0xce,0x1, +0xe8,0x1,0x77,0x2,0x1f,0x2,0xa4,0x0,0x49,0x0,0xca,0x0, +0x6a,0x0,0x75,0x0,0x7e,0x1,0x42,0x1,0xcf,0xff,0x13,0xff, +0x50,0xfe,0xb3,0xfc,0xe2,0xfb,0x32,0xfc,0x3f,0xfc,0x73,0xfc, +0x4b,0xfd,0xa4,0xfd,0x89,0xfd,0x86,0xfd,0xc8,0xfc,0x80,0xfb, +0xbb,0xfa,0x37,0xfa,0xe4,0xf9,0x82,0xfa,0xc2,0xfb,0x77,0xfc, +0x6a,0xfc,0x3f,0xfc,0xfe,0xfb,0x84,0xfb,0x5f,0xfb,0xbb,0xfb, +0x63,0xfc,0x6d,0xfd,0xa7,0xfe,0xee,0xff,0x2e,0x1,0xbc,0x1, +0x78,0x1,0xec,0x0,0x9,0x0,0xf6,0xfe,0x89,0xfe,0xf1,0xfe, +0xbe,0xff,0xf2,0x0,0x81,0x2,0x98,0x3,0xd0,0x3,0xa7,0x3, +0x5a,0x3,0xaf,0x2,0xc6,0x1,0x30,0x1,0xe,0x1,0xcc,0x0, +0x78,0x0,0xcd,0x0,0x66,0x1,0x4f,0x1,0xc6,0x0,0x9e,0x0, +0xa2,0x0,0x1e,0x0,0xbb,0xff,0x4a,0x0,0xb3,0x0,0x81,0x0, +0xda,0x0,0x29,0x1,0x6a,0x0,0xf8,0xff,0x64,0x0,0x48,0x0, +0xa5,0xff,0x85,0xff,0x7f,0xff,0x20,0xff,0x41,0xff,0xd8,0xff, +0xb8,0xff,0x6a,0xff,0x3,0x0,0x50,0x0,0xbb,0xff,0xe9,0xff, +0x8b,0x0,0x1d,0x0,0xd1,0xff,0x55,0x0,0x8,0x0,0x9,0xff, +0xab,0xfe,0xae,0xfe,0xca,0xfe,0x2d,0xff,0x96,0xff,0xe7,0xff, +0xfe,0xff,0x8,0x0,0xd9,0x0,0xe7,0x1,0xd5,0x1,0x55,0x1, +0x5a,0x1,0xcc,0x0,0xb8,0xff,0xf4,0xff,0xfe,0x0,0xfe,0x0, +0xd5,0x0,0xa7,0x1,0xd,0x2,0xc4,0x1,0x93,0x2,0xd1,0x3, +0x91,0x3,0xad,0x2,0x37,0x2,0x61,0x1,0x64,0x0,0x43,0x0, +0xad,0x0,0x1d,0x1,0x6f,0x1,0x8d,0x1,0xbf,0x1,0xe,0x2, +0x21,0x2,0xed,0x1,0x69,0x1,0x77,0x0,0x61,0xff,0xee,0xfe, +0x4b,0xff,0x92,0xff,0xd3,0xff,0xb6,0x0,0xed,0x0,0xd4,0xff, +0x40,0xff,0xff,0xfe,0xa4,0xfd,0xbf,0xfc,0x17,0xfd,0xe8,0xfc, +0xb9,0xfc,0x9e,0xfd,0x23,0xfe,0x5c,0xfe,0x7e,0xff,0x9,0x0, +0x58,0xff,0x10,0xff,0xd6,0xfe,0xb2,0xfd,0x2d,0xfd,0xc0,0xfd, +0x5a,0xfd,0x34,0xfc,0xa5,0xfc,0xb1,0xfd,0x6b,0xfd,0xb8,0xfd, +0x69,0xff,0x19,0x0,0xf,0x0,0xc9,0x0,0x13,0x1,0xd4,0x0, +0x29,0x1,0x13,0x1,0x62,0x0,0x3b,0x0,0xd1,0xff,0x9,0xff, +0x97,0xff,0xad,0x0,0x96,0x0,0x79,0x0,0x4,0x1,0xf9,0x0, +0xc3,0x0,0x80,0x1,0x9,0x2,0x72,0x1,0x9,0x1,0x30,0x1, +0x92,0x0,0x9d,0xff,0x96,0xff,0x81,0xff,0xd8,0xfe,0x3,0xff, +0xd7,0xff,0x16,0x0,0x31,0x0,0xc4,0x0,0x3a,0x1,0x29,0x1, +0xb4,0x0,0xf3,0xff,0x38,0xff,0xe7,0xfe,0xcc,0xfe,0xd8,0xfe, +0x96,0xff,0x70,0x0,0x3a,0x0,0xbb,0xff,0xe9,0xff,0x9b,0xff, +0x83,0xfe,0x43,0xfe,0xdb,0xfe,0xed,0xfe,0xd2,0xfe,0x7e,0xff, +0x69,0x0,0xa0,0x0,0x3e,0x0,0xea,0xff,0x64,0xff,0x48,0xfe, +0xc1,0xfd,0x74,0xfe,0x51,0xff,0xd,0x0,0xda,0x0,0xb,0x1, +0xc6,0x0,0x8c,0x0,0xf0,0xff,0x2b,0xff,0xfc,0xfe,0xc,0xff, +0xf9,0xfe,0x6a,0xff,0x86,0x0,0x72,0x1,0xf3,0x1,0x54,0x2, +0x16,0x2,0x8,0x1,0x31,0x0,0x3b,0x0,0xb4,0x0,0x68,0x1, +0x81,0x2,0x74,0x3,0xb7,0x3,0xb0,0x3,0xa9,0x3,0x70,0x3, +0xa,0x3,0x95,0x2,0x27,0x2,0xe3,0x1,0xe9,0x1,0x57,0x2, +0xc9,0x2,0xfa,0x2,0x3a,0x3,0x18,0x3,0x45,0x2,0xbf,0x1, +0xa6,0x1,0x88,0x1,0xe2,0x1,0x5c,0x2,0x18,0x2,0x96,0x1, +0x36,0x1,0xd3,0x0,0xe8,0x0,0x4a,0x1,0x39,0x1,0xd,0x1, +0x1f,0x1,0x18,0x1,0x63,0x1,0x32,0x2,0x59,0x2,0xa7,0x1, +0x47,0x1,0x4,0x1,0x18,0x0,0x8e,0xff,0x35,0x0,0x8b,0x0, +0xe0,0xff,0xd2,0xff,0x2c,0x0,0x2b,0xff,0x4e,0xfe,0x65,0xff, +0x12,0x0,0xf,0xff,0xc1,0xfe,0x60,0xff,0x11,0xff,0x6d,0xfe, +0x92,0xfe,0xc5,0xfe,0x49,0xfe,0x4b,0xfd,0xcf,0xfc,0x82,0xfd, +0x18,0xfe,0xf3,0xfd,0xce,0xfe,0x6b,0x0,0x67,0x0,0x7b,0xff, +0xe,0x0,0xd7,0x0,0xd2,0xff,0x39,0xff,0xb8,0x0,0x45,0x1, +0xe4,0xff,0xed,0xff,0x41,0x1,0xc4,0x0,0x82,0xff,0xc8,0xff, +0xc,0x0,0x47,0xff,0x66,0xff,0xa6,0x0,0x60,0x1,0x81,0x1, +0xb8,0x1,0xa9,0x1,0xb3,0x0,0x2f,0xff,0x40,0xfe,0xdc,0xfd, +0x22,0xfd,0xec,0xfc,0xcb,0xfd,0x57,0xfe,0x7e,0xfe,0x45,0xff, +0xe1,0xff,0x68,0xff,0xa1,0xfe,0x32,0xfe,0x9a,0xfd,0xc0,0xfc, +0x87,0xfc,0xe1,0xfc,0xdc,0xfc,0xbf,0xfc,0xf,0xfd,0x4f,0xfd, +0x44,0xfd,0x32,0xfd,0x48,0xfd,0x94,0xfd,0xb6,0xfd,0xaa,0xfd, +0xee,0xfd,0xc,0xfe,0x8d,0xfd,0x4d,0xfd,0x5c,0xfd,0xe7,0xfc, +0xc4,0xfc,0x9a,0xfd,0xf8,0xfd,0xb3,0xfd,0x2f,0xfe,0xce,0xfe, +0x66,0xfe,0xf0,0xfd,0x27,0xfe,0x6,0xfe,0x60,0xfd,0x8f,0xfd, +0x93,0xfe,0xe8,0xfe,0xdc,0xfe,0xa5,0xff,0x30,0x0,0xb5,0xff, +0x97,0xff,0xd2,0xff,0x38,0xff,0x9f,0xfe,0xf5,0xfe,0x66,0xff, +0x82,0xff,0xdd,0xff,0x77,0x0,0x9c,0x0,0x6e,0x0,0xc3,0x0, +0x34,0x1,0xf4,0x0,0xc0,0x0,0xfb,0x0,0xdb,0x0,0xa4,0x0, +0xe7,0x0,0xe,0x1,0xd9,0x0,0xe0,0x0,0x49,0x1,0x8b,0x1, +0x9a,0x1,0x28,0x2,0xdd,0x2,0xb1,0x2,0x12,0x2,0x92,0x1, +0xa6,0x0,0xa3,0xff,0x5a,0xff,0x54,0xff,0x14,0xff,0x1c,0xff, +0xbd,0xff,0x82,0x0,0xc0,0x0,0x75,0x0,0x2c,0x0,0xae,0xff, +0x8f,0xfe,0xbd,0xfd,0xbf,0xfd,0x9c,0xfd,0x76,0xfd,0xfe,0xfd, +0x3f,0xfe,0x3,0xfe,0x4b,0xfe,0x5f,0xfe,0x74,0xfd,0xc4,0xfc, +0xf2,0xfc,0x4,0xfd,0xeb,0xfc,0x9e,0xfd,0x75,0xfe,0x19,0xfe, +0x88,0xfd,0xbf,0xfd,0x6a,0xfd,0x83,0xfc,0x7c,0xfc,0xb5,0xfc, +0x4c,0xfc,0x24,0xfc,0xaf,0xfc,0x58,0xfd,0x9e,0xfd,0x76,0xfd, +0x61,0xfd,0x61,0xfd,0xe8,0xfc,0x71,0xfc,0xbe,0xfc,0x50,0xfd, +0xb9,0xfd,0x54,0xfe,0xe2,0xfe,0xd2,0xfe,0x9e,0xfe,0xd8,0xfe, +0xfb,0xfe,0xdd,0xfe,0x34,0xff,0xc8,0xff,0xde,0xff,0x0,0x0, +0xcb,0x0,0x81,0x1,0xad,0x1,0xec,0x1,0x44,0x2,0x23,0x2, +0xf4,0x1,0x5b,0x2,0xda,0x2,0xf2,0x2,0x3,0x3,0x2e,0x3, +0xc,0x3,0x99,0x2,0x67,0x2,0xbe,0x2,0x24,0x3,0x21,0x3, +0xea,0x2,0xcd,0x2,0xa0,0x2,0x51,0x2,0x49,0x2,0x4d,0x2, +0xc5,0x1,0x64,0x1,0x7e,0x1,0xf5,0x0,0x47,0x0,0x9f,0x0, +0xd7,0x0,0x37,0x0,0xd8,0xff,0xcc,0xff,0x73,0xff,0x6,0xff, +0x2,0xff,0x63,0xff,0x67,0xff,0xd3,0xfe,0x99,0xfe,0xb5,0xfe, +0x4d,0xfe,0xee,0xfd,0x44,0xfe,0x8d,0xfe,0x24,0xfe,0x7f,0xfd, +0x64,0xfd,0xd0,0xfd,0xe6,0xfd,0x83,0xfd,0xa0,0xfd,0x19,0xfe, +0xdb,0xfd,0x83,0xfd,0x4d,0xfe,0x4d,0xff,0x2a,0xff,0xb3,0xfe, +0xf8,0xfe,0x1b,0xff,0x66,0xfe,0xc,0xfe,0xb3,0xfe,0x2b,0xff, +0x18,0xff,0x74,0xff,0x2f,0x0,0x92,0x0,0xcb,0x0,0x46,0x1, +0xbf,0x1,0xb8,0x1,0x61,0x1,0x5b,0x1,0x8c,0x1,0xa4,0x1, +0xd6,0x1,0xee,0x1,0xd5,0x1,0xf8,0x1,0xfa,0x1,0xdf,0x1, +0x87,0x2,0x30,0x3,0xfe,0x2,0x8,0x3,0x6c,0x3,0x3d,0x3, +0xda,0x2,0x84,0x2,0x9,0x2,0xc3,0x1,0x71,0x1,0xce,0x0, +0x86,0x0,0xa3,0x0,0xc3,0x0,0xd,0x1,0x40,0x1,0x3b,0x1, +0x80,0x1,0xa3,0x1,0x27,0x1,0xd9,0x0,0xa7,0x0,0xc5,0xff, +0xef,0xfe,0xa9,0xfe,0x42,0xfe,0x3,0xfe,0x51,0xfe,0xa0,0xfe, +0x6,0xff,0x99,0xff,0xcb,0xff,0xd5,0xff,0xe6,0xff,0x85,0xff, +0x17,0xff,0xe,0xff,0xc1,0xfe,0x4,0xfe,0xba,0xfd,0x37,0xfe, +0xc3,0xfe,0xee,0xfe,0xe,0xff,0x4b,0xff,0x5d,0xff,0xb,0xff, +0xaa,0xfe,0xe0,0xfe,0x7f,0xff,0xb5,0xff,0xc0,0xff,0x43,0x0, +0xc8,0x0,0xcd,0x0,0xa2,0x0,0x77,0x0,0xf,0x0,0x73,0xff, +0x17,0xff,0x5a,0xff,0x16,0x0,0xc8,0x0,0x4e,0x1,0xe1,0x1, +0x27,0x2,0xab,0x1,0x3f,0x1,0xab,0x1,0xee,0x1,0x52,0x1, +0xff,0x0,0xa8,0x1,0x2e,0x2,0xdf,0x1,0xb4,0x1,0x9,0x2, +0xa9,0x1,0xbe,0x0,0xe0,0x0,0x88,0x1,0x67,0x1,0x82,0x1, +0x82,0x2,0xf3,0x2,0x62,0x2,0xd6,0x1,0x80,0x1,0xf,0x1, +0xc2,0x0,0xc7,0x0,0xd,0x1,0x71,0x1,0x8c,0x1,0x50,0x1, +0x20,0x1,0xa4,0x0,0xab,0xff,0x30,0xff,0x73,0xff,0xaf,0xff, +0x3,0x0,0xc2,0x0,0x96,0x1,0x4c,0x2,0xae,0x2,0x95,0x2, +0x32,0x2,0x36,0x1,0xbd,0xff,0x3e,0xff,0xef,0xff,0x46,0x0, +0x58,0x0,0x49,0x1,0x22,0x2,0xf1,0x1,0x16,0x2,0xf3,0x2, +0xf4,0x2,0x47,0x2,0x47,0x2,0x4d,0x2,0x69,0x1,0xd0,0x0, +0x7c,0x1,0x10,0x2,0xb0,0x1,0xb2,0x1,0x69,0x2,0x73,0x2, +0x18,0x2,0x76,0x2,0xbf,0x2,0x2e,0x2,0xa4,0x1,0x98,0x1, +0x79,0x1,0x41,0x1,0x6f,0x1,0xe0,0x1,0x25,0x2,0x32,0x2, +0xf2,0x1,0x93,0x1,0x87,0x1,0x6a,0x1,0x1,0x1,0x27,0x1, +0x99,0x1,0x37,0x1,0xc3,0x0,0x5c,0x1,0x30,0x2,0x53,0x2, +0x5b,0x2,0xd7,0x2,0x11,0x3,0x67,0x2,0xb2,0x1,0xc1,0x1, +0xc8,0x1,0xf7,0x0,0x9,0x0,0xf2,0xff,0x39,0x0,0xb,0x0, +0x69,0x0,0x66,0x2,0x98,0x3,0xf8,0x1,0xe8,0x0,0x63,0x2, +0x14,0x2,0x64,0xff,0x65,0xff,0xe9,0x0,0x9a,0xff,0xb0,0xfe, +0x2,0x1,0x15,0x2,0x6b,0x0,0x38,0x0,0x77,0x1,0x71,0x0, +0x4f,0xfe,0xbd,0xfe,0x3f,0x0,0xfd,0xff,0x4,0x0,0x9d,0x1, +0xe4,0x1,0x98,0x0,0x2a,0x0,0xf0,0xff,0xd1,0xfe,0x23,0xfe, +0x16,0xfe,0x8b,0xfd,0xe,0xfd,0x88,0xfd,0x30,0xfe,0x1f,0xfe, +0xf9,0xfd,0x81,0xfe,0xf6,0xfe,0x8f,0xfe,0x58,0xfe,0x30,0xff, +0xd1,0xff,0x77,0xff,0x37,0xff,0xcb,0xfe,0x23,0xfd,0x0,0xfc, +0xd5,0xfc,0x67,0xfd,0xca,0xfc,0x38,0xfd,0x79,0xfe,0xa0,0xfe, +0xc3,0xfe,0xce,0xff,0xb,0x0,0x50,0xff,0xd0,0xfe,0x2c,0xfe, +0x5a,0xfd,0x19,0xfd,0x2e,0xfd,0x48,0xfd,0x6b,0xfd,0xb1,0xfd, +0x4d,0xfe,0x71,0xfe,0xf2,0xfd,0x49,0xfe,0xb9,0xfe,0xce,0xfd, +0x5b,0xfd,0xf9,0xfd,0xa4,0xfd,0x21,0xfd,0x28,0xfe,0x32,0xff, +0xbd,0xfe,0x1b,0xfe,0x7d,0xfe,0x5b,0xfe,0x8c,0xfc,0x93,0xfb, +0xe1,0xfc,0x66,0xfd,0x55,0xfc,0xea,0xfc,0xbe,0xfe,0x9c,0xfe, +0xd5,0xfd,0x11,0xff,0x20,0x0,0xa9,0xfe,0x75,0xfd,0x8a,0xfe, +0xf9,0xfe,0xd1,0xfd,0x35,0xfe,0xd5,0xff,0xc3,0xff,0xf3,0xfe, +0x15,0xff,0x4c,0xff,0x76,0xff,0xa2,0xff,0x39,0xff,0x54,0xff, +0x2a,0x0,0xe8,0xff,0x10,0xff,0x47,0xff,0xa0,0xff,0xdf,0xfe, +0x4,0xfe,0x94,0xfe,0x73,0xff,0xaa,0xfe,0x5e,0xfe,0x5f,0x0, +0xca,0x0,0xa8,0xfe,0x6a,0xfe,0x7d,0xff,0x55,0xfe,0xbe,0xfc, +0x42,0xfd,0x8f,0xfe,0xe8,0xfe,0x75,0xfe,0xbd,0xfe,0xd7,0xff, +0xb9,0xff,0x9a,0xfe,0x9a,0xfe,0xdf,0xfe,0xea,0xfd,0x62,0xfd, +0x8b,0xfe,0x99,0xff,0x80,0xff,0xde,0xff,0xcf,0x0,0x1e,0x0, +0x97,0xfe,0xb9,0xfe,0xea,0xfe,0xbe,0xfd,0xd8,0xfd,0xc,0xff, +0xbf,0xfe,0xbd,0xfe,0x6d,0x0,0xeb,0x0,0x1a,0x0,0xca,0x0, +0xf2,0x1,0xd6,0x0,0x1a,0xff,0xf7,0xff,0x62,0x1,0xcc,0xff, +0x42,0xfe,0xc4,0xff,0x28,0x0,0x50,0xfe,0x6,0xff,0x93,0x1, +0xe0,0x1,0x3f,0x1,0x24,0x2,0x57,0x3,0xd4,0x2,0x4,0x1, +0x97,0x0,0x9d,0x1,0xbd,0x0,0xdb,0xfe,0x7,0x0,0x43,0x2, +0x61,0x1,0x32,0x0,0x44,0x2,0x7b,0x3,0x8f,0x0,0xac,0xfe, +0x93,0x0,0xa6,0x0,0xec,0xfd,0x7a,0xfe,0x3c,0x1,0x6e,0x0, +0xd0,0xfe,0x96,0x0,0x94,0x1,0x40,0xff,0x1b,0xfe,0x49,0xff, +0x19,0xff,0xbe,0xfd,0xfe,0xfd,0xf2,0xfe,0xfa,0xfe,0x46,0xff, +0xa,0x0,0xbc,0xff,0x16,0xff,0x5b,0xff,0x5d,0xff,0xd2,0xfe, +0x1f,0xff,0xd7,0xff,0xaa,0xff,0x39,0xff,0xca,0xff,0xb1,0x0, +0x55,0x0,0xbc,0xff,0xc1,0x0,0x88,0x1,0x60,0x0,0xfe,0xff, +0x98,0x1,0x19,0x2,0x8e,0x0,0xa,0x0,0xa0,0x1,0x3,0x2, +0x2c,0x0,0x5a,0x0,0x11,0x3,0x20,0x3,0xf0,0x0,0xa1,0x1, +0x5f,0x3,0xc2,0x1,0xc3,0xff,0x5,0x1,0x1d,0x2,0x31,0x0, +0x2,0xff,0xe3,0x0,0xea,0x1,0x98,0x0,0xf4,0x0,0x15,0x3, +0xb7,0x2,0xda,0x0,0x32,0x1,0xff,0x1,0xde,0x0,0xed,0xff, +0x3a,0x0,0x4,0x0,0x57,0xff,0x6d,0xff,0xd4,0xff,0xe1,0xff, +0xfb,0xff,0x36,0x0,0xfe,0xff,0x64,0xff,0x16,0xff,0x34,0xff, +0x55,0xff,0x65,0xff,0xe7,0xff,0xbf,0x0,0xb4,0x0,0x12,0x0, +0xa9,0x0,0x54,0x1,0x1b,0x0,0x3c,0xff,0x34,0x0,0x47,0x0, +0x2,0xff,0x51,0xff,0x1a,0x1,0x7f,0x1,0x85,0x0,0xec,0x0, +0x2c,0x2,0xc,0x1,0x3f,0xff,0x95,0x0,0x22,0x2,0x9b,0x0, +0xe5,0xff,0x92,0x1,0x12,0x1,0xa,0xff,0x3c,0x0,0x46,0x2, +0xf9,0x0,0xac,0xff,0x29,0x1,0xaf,0x1,0x27,0x0,0x68,0x0, +0xa,0x2,0x53,0x1,0x82,0xff,0xbd,0xff,0x54,0x0,0x73,0xff, +0xb1,0xff,0xbc,0x1,0x20,0x2,0xd1,0x0,0x34,0x1,0x50,0x2, +0xc,0x1,0x86,0xff,0x69,0x0,0xb1,0x0,0x8e,0xfe,0xa9,0xfd, +0xe3,0xfe,0xcd,0xfe,0x4,0xfe,0xa8,0xff,0x7f,0x1,0x41,0x0, +0xa,0xff,0xd4,0x0,0x79,0x1,0xe9,0xfe,0x80,0xfe,0xb8,0x0, +0x65,0xff,0x1a,0xfc,0x30,0xfd,0xb7,0xff,0x67,0xfe,0x34,0xfd, +0xde,0xff,0x79,0x1,0x4b,0xff,0xa7,0xfe,0x50,0x1,0xff,0x1, +0xdd,0xff,0xa0,0xff,0x35,0x1,0x58,0x0,0xda,0xfd,0x4a,0xfe, +0x99,0x0,0xcc,0xff,0x76,0xfd,0xd5,0xfe,0x69,0x1,0x6d,0x0, +0x55,0xff,0x9b,0x1,0x18,0x3,0x7b,0x1,0x7a,0x0,0x56,0x1, +0x57,0x1,0xe4,0xff,0x29,0xff,0x5,0x0,0x8b,0x0,0x5e,0xff, +0x6d,0xfe,0x1b,0xff,0x8d,0xff,0x8,0xff,0x4a,0xff,0x7c,0x0, +0xea,0x0,0x47,0x0,0x4c,0x0,0x86,0x1,0xbd,0x1,0x4f,0x0, +0xb9,0xff,0xf8,0xff,0xd1,0xfe,0x95,0xfd,0x6b,0xfe,0xda,0xff, +0x76,0x0,0x19,0x1,0xc2,0x1,0xb0,0x1,0x9a,0x1,0xdf,0x1, +0x65,0x1,0x7b,0x0,0x39,0x0,0xb1,0xff,0xbe,0xfe,0x4d,0xff, +0xcf,0x0,0xf5,0x0,0x71,0x0,0xe7,0x0,0x3a,0x1,0x2c,0x0, +0x18,0xff,0x47,0xff,0x7c,0xff,0xbc,0xfe,0x86,0xfe,0x93,0xff, +0x21,0x0,0x9d,0xff,0xbf,0xff,0xbf,0x0,0xbd,0x0,0x90,0xff, +0x23,0xff,0xa7,0xff,0x75,0xff,0xd5,0xfe,0x6c,0xff,0x93,0x0, +0x9f,0x0,0x43,0x0,0xbd,0x0,0x57,0x1,0x3e,0x1,0xf2,0x0, +0x10,0x1,0x76,0x1,0x72,0x1,0x0,0x1,0x17,0x1,0xa0,0x1, +0x91,0x1,0xe,0x1,0xfb,0x0,0x78,0x1,0xe8,0x1,0x8,0x2, +0xd4,0x2,0x7c,0x4,0x3c,0x5,0xdd,0x4,0x4,0x5,0x51,0x5, +0x75,0x4,0x42,0x3,0xf7,0x2,0xf,0x3,0xa1,0x2,0x6f,0x2, +0x54,0x3,0x31,0x4,0x50,0x4,0xad,0x4,0x3,0x5,0x64,0x4, +0x8f,0x3,0x0,0x3,0x50,0x2,0x8,0x2,0x58,0x2,0x4a,0x2, +0xf,0x2,0xc0,0x2,0xa4,0x3,0x53,0x3,0xd1,0x2,0x79,0x3, +0xa1,0x3,0x29,0x2,0x5d,0x1,0xe5,0x1,0x8f,0x1,0xbf,0x0, +0x3,0x1,0x55,0x1,0x22,0x1,0x9,0x1,0xd4,0x0,0x31,0x1, +0x2d,0x2,0xd5,0x1,0x26,0x1,0x10,0x2,0x10,0x2,0xcf,0xff, +0xc8,0xfd,0xd1,0xfb,0x5d,0xf8,0x11,0xf5,0xcb,0xf3,0x35,0xf4, +0x55,0xf5,0x0,0xf7,0xcc,0xf9,0x7,0xfd,0xb2,0xfe,0x93,0xfe, +0xbe,0xfd,0xe,0xfc,0xfc,0xf8,0x77,0xf5,0x31,0xf3,0x4f,0xf2, +0xbb,0xf1,0xec,0xf1,0xc8,0xf3,0xe2,0xf5,0xef,0xf6,0xab,0xf7, +0x66,0xf8,0xf3,0xf8,0xde,0xf9,0xc2,0xfa,0xd4,0xfa,0xbe,0xfa, +0xce,0xfa,0x37,0xfa,0x5d,0xf9,0x18,0xf9,0x8,0xf9,0xf6,0xf8, +0x9e,0xf9,0x39,0xfb,0x8,0xfd,0x88,0xfe,0xf6,0xff,0x32,0x1, +0xa4,0x1,0x83,0x1,0x34,0x1,0xe8,0x0,0x52,0x1,0x50,0x2, +0x35,0x3,0x8e,0x4,0xea,0x5,0xc9,0x5,0x46,0x5,0x76,0x5, +0xac,0x4,0xd,0x3,0xd3,0x2,0x99,0x3,0x25,0x4,0x65,0x5, +0x54,0x7,0x55,0x8,0xa1,0x8,0xfd,0x8,0x2f,0x8,0x12,0x6, +0x79,0x4,0x30,0x3,0x38,0x1,0x9,0x0,0x51,0x0,0x54,0x0, +0xee,0xff,0x6b,0x0,0x47,0x1,0x7c,0x1,0x5e,0x1,0x3a,0x1, +0xa9,0x0,0x8a,0xff,0x3e,0xfe,0xc,0xfd,0x9f,0xfb,0xe3,0xf9, +0xb5,0xf8,0x56,0xf8,0x23,0xf8,0x60,0xf8,0x49,0xf9,0x1a,0xfa, +0xb0,0xfa,0x26,0xfb,0xfe,0xfa,0x81,0xfa,0x2d,0xfa,0x9d,0xf9, +0xf3,0xf8,0xc3,0xf8,0xee,0xf8,0x46,0xf9,0xea,0xf9,0xcd,0xfa, +0xa0,0xfb,0x24,0xfc,0x90,0xfc,0x1f,0xfd,0x9d,0xfd,0x14,0xfe, +0xb8,0xfe,0x58,0xff,0xfe,0xff,0xe3,0x0,0xb1,0x1,0x10,0x2, +0x65,0x2,0xd,0x3,0xa8,0x3,0xea,0x3,0x4e,0x4,0xf8,0x4, +0x5a,0x5,0x8f,0x5,0x16,0x6,0xa1,0x6,0xe7,0x6,0x43,0x7, +0xc5,0x7,0x30,0x8,0x7f,0x8,0x97,0x8,0x70,0x8,0x33,0x8, +0xb5,0x7,0xd8,0x6,0x9,0x6,0x76,0x5,0xf2,0x4,0xa4,0x4, +0xc0,0x4,0x15,0x5,0x5e,0x5,0x72,0x5,0x3e,0x5,0xca,0x4, +0xf9,0x3,0xb4,0x2,0x4e,0x1,0x1f,0x0,0x2,0xff,0xea,0xfd, +0x38,0xfd,0xf,0xfd,0x10,0xfd,0xff,0xfc,0x7,0xfd,0x22,0xfd, +0xef,0xfc,0x6a,0xfc,0xf6,0xfb,0x98,0xfb,0x11,0xfb,0x80,0xfa, +0x1d,0xfa,0xe6,0xf9,0xc5,0xf9,0xbe,0xf9,0xf7,0xf9,0x61,0xfa, +0xa6,0xfa,0xd0,0xfa,0x1d,0xfb,0x65,0xfb,0x8b,0xfb,0xc4,0xfb, +0xf,0xfc,0x5e,0xfc,0xc5,0xfc,0x3a,0xfd,0xc1,0xfd,0x5b,0xfe, +0xe8,0xfe,0x6e,0xff,0xec,0xff,0x3f,0x0,0x7b,0x0,0xbc,0x0, +0xfe,0x0,0x55,0x1,0xb7,0x1,0xc,0x2,0x77,0x2,0xff,0x2, +0x8c,0x3,0x15,0x4,0x82,0x4,0xd1,0x4,0x13,0x5,0x32,0x5, +0x2c,0x5,0x13,0x5,0xd5,0x4,0x93,0x4,0x7e,0x4,0x7f,0x4, +0x7f,0x4,0x91,0x4,0xa5,0x4,0xb3,0x4,0xc8,0x4,0xbb,0x4, +0x67,0x4,0xf8,0x3,0x8d,0x3,0x2,0x3,0x52,0x2,0xbf,0x1, +0x65,0x1,0x4,0x1,0x9d,0x0,0x77,0x0,0x53,0x0,0xe4,0xff, +0x87,0xff,0x65,0xff,0x1c,0xff,0x9c,0xfe,0x1c,0xfe,0xb2,0xfd, +0x4d,0xfd,0xe8,0xfc,0xa9,0xfc,0x8a,0xfc,0x5c,0xfc,0x35,0xfc, +0x2c,0xfc,0x23,0xfc,0x1e,0xfc,0x28,0xfc,0x3e,0xfc,0x4e,0xfc, +0x3f,0xfc,0x38,0xfc,0x57,0xfc,0x74,0xfc,0x9d,0xfc,0xe9,0xfc, +0x26,0xfd,0x5b,0xfd,0xba,0xfd,0x26,0xfe,0x77,0xfe,0xc0,0xfe, +0x19,0xff,0x6b,0xff,0xa9,0xff,0xf5,0xff,0x5d,0x0,0xc5,0x0, +0x25,0x1,0x84,0x1,0xe9,0x1,0x37,0x2,0x61,0x2,0x9b,0x2, +0xf4,0x2,0x3e,0x3,0x6d,0x3,0xa0,0x3,0xd8,0x3,0xf3,0x3, +0xf5,0x3,0xa,0x4,0x1e,0x4,0x16,0x4,0x1b,0x4,0x18,0x4, +0xe6,0x3,0xb8,0x3,0x93,0x3,0x56,0x3,0x10,0x3,0xcb,0x2, +0x89,0x2,0x45,0x2,0x1,0x2,0xdc,0x1,0xbc,0x1,0x7f,0x1, +0x41,0x1,0xf7,0x0,0x92,0x0,0x38,0x0,0xe9,0xff,0xa0,0xff, +0x62,0xff,0x1c,0xff,0xd3,0xfe,0x98,0xfe,0x67,0xfe,0x41,0xfe, +0x19,0xfe,0xec,0xfd,0xbf,0xfd,0x7f,0xfd,0x44,0xfd,0x37,0xfd, +0x37,0xfd,0x30,0xfd,0x43,0xfd,0x62,0xfd,0x68,0xfd,0x64,0xfd, +0x7e,0xfd,0xb6,0xfd,0xe0,0xfd,0xf1,0xfd,0xf9,0xfd,0x2,0xfe, +0x18,0xfe,0x44,0xfe,0x7f,0xfe,0xb4,0xfe,0xd2,0xfe,0xf6,0xfe, +0x32,0xff,0x6f,0xff,0xb5,0xff,0x3,0x0,0x2f,0x0,0x4a,0x0, +0x82,0x0,0xc0,0x0,0xe6,0x0,0x12,0x1,0x57,0x1,0x7f,0x1, +0x84,0x1,0xa0,0x1,0xb5,0x1,0xad,0x1,0xca,0x1,0xd,0x2, +0x3c,0x2,0x56,0x2,0x67,0x2,0x7c,0x2,0x95,0x2,0x95,0x2, +0x89,0x2,0x88,0x2,0x71,0x2,0x37,0x2,0xfa,0x1,0xd9,0x1, +0xc8,0x1,0xb2,0x1,0xa4,0x1,0x90,0x1,0x53,0x1,0x16,0x1, +0xf6,0x0,0xd4,0x0,0xb6,0x0,0xa0,0x0,0x6f,0x0,0x2b,0x0, +0xf1,0xff,0xc5,0xff,0x9e,0xff,0x63,0xff,0x15,0xff,0xca,0xfe, +0x76,0xfe,0x34,0xfe,0x33,0xfe,0x4e,0xfe,0x53,0xfe,0x5d,0xfe, +0x73,0xfe,0x6a,0xfe,0x44,0xfe,0x2a,0xfe,0x18,0xfe,0xf3,0xfd, +0xd4,0xfd,0xde,0xfd,0xf1,0xfd,0xf9,0xfd,0x17,0xfe,0x52,0xfe, +0x87,0xfe,0x9f,0xfe,0xb1,0xfe,0xcc,0xfe,0xd9,0xfe,0xdf,0xfe, +0xa,0xff,0x4b,0xff,0x68,0xff,0x63,0xff,0x6c,0xff,0x83,0xff, +0x7f,0xff,0x7d,0xff,0xb5,0xff,0x4,0x0,0x39,0x0,0x68,0x0, +0xa2,0x0,0xcf,0x0,0xd0,0x0,0xb5,0x0,0xa7,0x0,0x86,0x0, +0x4d,0x0,0x48,0x0,0x66,0x0,0x74,0x0,0xa5,0x0,0xed,0x0, +0x10,0x1,0x17,0x1,0x8,0x1,0xe3,0x0,0xca,0x0,0xbd,0x0, +0xac,0x0,0x88,0x0,0x57,0x0,0x32,0x0,0x0,0x0,0xbf,0xff, +0xa2,0xff,0x90,0xff,0x69,0xff,0x5a,0xff,0x60,0xff,0x66,0xff, +0x74,0xff,0x71,0xff,0x5c,0xff,0x38,0xff,0xea,0xfe,0x96,0xfe, +0x6a,0xfe,0x47,0xfe,0x20,0xfe,0x17,0xfe,0x2a,0xfe,0x31,0xfe, +0x1d,0xfe,0x1a,0xfe,0x38,0xfe,0x47,0xfe,0x40,0xfe,0x54,0xfe, +0x79,0xfe,0x7b,0xfe,0x6a,0xfe,0x7a,0xfe,0x93,0xfe,0x89,0xfe, +0x73,0xfe,0x68,0xfe,0x6c,0xfe,0x8c,0xfe,0xbf,0xfe,0xfa,0xfe, +0x3a,0xff,0x6d,0xff,0x8c,0xff,0xa2,0xff,0xb7,0xff,0xc1,0xff, +0xb4,0xff,0xb0,0xff,0xc6,0xff,0xcf,0xff,0xd3,0xff,0xf4,0xff, +0x22,0x0,0x41,0x0,0x4a,0x0,0x54,0x0,0x68,0x0,0x6a,0x0, +0x61,0x0,0x61,0x0,0x59,0x0,0x4f,0x0,0x44,0x0,0x34,0x0, +0x36,0x0,0x31,0x0,0x1e,0x0,0x2a,0x0,0x36,0x0,0x26,0x0, +0x1d,0x0,0x13,0x0,0xfe,0xff,0xe6,0xff,0xc4,0xff,0xb0,0xff, +0xad,0xff,0x9f,0xff,0x9d,0xff,0xb6,0xff,0xc3,0xff,0xbe,0xff, +0xb4,0xff,0x9e,0xff,0x6b,0xff,0x33,0xff,0x1b,0xff,0xb,0xff, +0xe3,0xfe,0xd2,0xfe,0xee,0xfe,0x6,0xff,0x15,0xff,0x31,0xff, +0x49,0xff,0x50,0xff,0x49,0xff,0x3a,0xff,0x2a,0xff,0x17,0xff, +0xfc,0xfe,0xef,0xfe,0xea,0xfe,0xe9,0xfe,0x10,0xff,0x4e,0xff, +0x7d,0xff,0xb0,0xff,0xe0,0xff,0xf1,0xff,0xff,0xff,0xe,0x0, +0x5,0x0,0xe9,0xff,0xdb,0xff,0xe6,0xff,0xfc,0xff,0x12,0x0, +0x43,0x0,0x90,0x0,0xcf,0x0,0xf5,0x0,0x14,0x1,0x2e,0x1, +0x2d,0x1,0x15,0x1,0x5,0x1,0xfe,0x0,0xf2,0x0,0xee,0x0, +0x4,0x1,0x27,0x1,0x42,0x1,0x60,0x1,0x7c,0x1,0x70,0x1, +0x4e,0x1,0x3b,0x1,0x25,0x1,0xa,0x1,0xf9,0x0,0xeb,0x0, +0xdd,0x0,0xc5,0x0,0x9c,0x0,0x89,0x0,0x9b,0x0,0xb0,0x0, +0xae,0x0,0x98,0x0,0x75,0x0,0x35,0x0,0xe6,0xff,0xbc,0xff, +0xae,0xff,0x92,0xff,0x86,0xff,0x99,0xff,0x9d,0xff,0x78,0xff, +0x39,0xff,0xf,0xff,0x4,0xff,0x5,0xff,0x12,0xff,0x27,0xff, +0x34,0xff,0x47,0xff,0x5c,0xff,0x5e,0xff,0x50,0xff,0x42,0xff, +0x45,0xff,0x52,0xff,0x56,0xff,0x58,0xff,0x55,0xff,0x4f,0xff, +0x58,0xff,0x5f,0xff,0x5b,0xff,0x66,0xff,0x75,0xff,0x7a,0xff, +0x9c,0xff,0xed,0xff,0x3e,0x0,0x6b,0x0,0x91,0x0,0xc4,0x0, +0xc8,0x0,0x73,0x0,0xfe,0xff,0xc3,0xff,0xdc,0xff,0x1d,0x0, +0x68,0x0,0xb5,0x0,0xcb,0x0,0xa0,0x0,0x61,0x0,0x15,0x0, +0xdf,0xff,0x1,0x0,0x5f,0x0,0xa6,0x0,0x9b,0x0,0x44,0x0, +0xe1,0xff,0xa7,0xff,0xa9,0xff,0xcd,0xff,0xef,0xff,0x9,0x0, +0x16,0x0,0x9,0x0,0xe5,0xff,0xb8,0xff,0xa5,0xff,0xa4,0xff, +0x90,0xff,0x81,0xff,0x2,0xff,0x1b,0xfd,0x79,0xfa,0x14,0xf9, +0x92,0xf9,0x37,0xfb,0x35,0xfd,0x74,0xfe,0xe2,0xfd,0x3,0xfc, +0xa3,0xfa,0x9f,0xfa,0x8f,0xfb,0xdd,0xfc,0xb7,0xfd,0x40,0xfd, +0xd9,0xfb,0xf2,0xfa,0x84,0xfb,0x2d,0xfd,0xa8,0xfe,0xf9,0xfe, +0xc6,0xfd,0x79,0xfb,0xe8,0xf9,0x35,0xfb,0xb,0xff,0x9f,0x2, +0xc0,0x3,0x44,0x2,0x53,0xff,0x16,0xfd,0x4f,0xfd,0x6c,0xff, +0x80,0x1,0x7d,0x2,0x4b,0x2,0x5a,0x1,0x84,0x0,0x81,0x0, +0x56,0x1,0x84,0x2,0x61,0x3,0x53,0x3,0x4d,0x2,0x31,0x1, +0x44,0x1,0x1a,0x3,0xa3,0x5,0xad,0x6,0x53,0x5,0xcd,0x2, +0xd3,0x0,0xd6,0x0,0xc,0x3,0x8e,0x5,0x67,0x6,0xa4,0x5, +0x51,0x4,0x35,0x3,0xef,0x2,0xb6,0x3,0xce,0x4,0x63,0x5, +0x24,0x5,0xc2,0x3,0xbd,0x1,0xc7,0x0,0xa4,0x1,0x74,0x3, +0x99,0x4,0xb2,0x3,0x2c,0x1,0x34,0xff,0x5b,0xff,0x3b,0x1, +0x20,0x3,0x7a,0x3,0x8,0x2,0x0,0x0,0xde,0xfe,0xed,0xfe, +0xa3,0xff,0x66,0x0,0x99,0x0,0x4d,0x0,0xeb,0xff,0x6a,0xff, +0x3b,0xff,0xe,0x0,0x73,0x1,0x4e,0x2,0xee,0x1,0xa9,0x0, +0x90,0xff,0xa0,0xff,0x24,0x1,0xf8,0x2,0x8c,0x3,0xcd,0x2, +0x98,0x1,0xe0,0x0,0x34,0x1,0x25,0x2,0x25,0x3,0xcb,0x3, +0x91,0x3,0xd5,0x2,0x40,0x2,0xe9,0x1,0x38,0x2,0x20,0x3, +0x9f,0x3,0x29,0x3,0x5,0x2,0xe6,0x0,0xb8,0x0,0xbc,0x1, +0x0,0x3,0x46,0x3,0x53,0x2,0xc,0x1,0x69,0x0,0xdd,0x0, +0xf2,0x1,0xa8,0x2,0x8b,0x2,0xda,0x1,0x12,0x1,0x7f,0x0, +0x3b,0x0,0x79,0x0,0x21,0x1,0x79,0x1,0x11,0x1,0x1d,0x0, +0x21,0xff,0xb9,0xfe,0x31,0xff,0x35,0x0,0xea,0x0,0x93,0x0, +0x7a,0xff,0xa8,0xfe,0xba,0xfe,0x7f,0xff,0x33,0x0,0x1c,0x0, +0x2e,0xff,0xee,0xfd,0xd7,0xfc,0x4c,0xfc,0xa2,0xfc,0x90,0xfd, +0x4e,0xfe,0x73,0xfe,0xf,0xfe,0x8a,0xfd,0x9e,0xfd,0x75,0xfe, +0x43,0xff,0x5c,0xff,0xaa,0xfe,0x69,0xfd,0x54,0xfc,0x43,0xfc, +0x14,0xfd,0xf8,0xfd,0xa3,0xfe,0xfa,0xfe,0xd2,0xfe,0xa3,0xfe, +0xe6,0xfe,0x68,0xff,0xfc,0xff,0x6f,0x0,0x5c,0x0,0xc3,0xff, +0x3,0xff,0x87,0xfe,0xb1,0xfe,0x63,0xff,0xef,0xff,0xd3,0xff, +0x26,0xff,0x6f,0xfe,0x46,0xfe,0xe2,0xfe,0xbf,0xff,0x29,0x0, +0xf2,0xff,0x35,0xff,0x5b,0xfe,0x2c,0xfe,0xc9,0xfe,0x64,0xff, +0x7b,0xff,0x3b,0xff,0xb3,0xfe,0xf,0xfe,0xe8,0xfd,0x5e,0xfe, +0xc5,0xfe,0xca,0xfe,0x8e,0xfe,0x20,0xfe,0xcf,0xfd,0xfc,0xfd, +0x89,0xfe,0x20,0xff,0x7a,0xff,0x59,0xff,0xd6,0xfe,0x56,0xfe, +0x6,0xfe,0xcf,0xfd,0xaa,0xfd,0x91,0xfd,0x4b,0xfd,0xde,0xfc, +0xc7,0xfc,0x2a,0xfd,0xb4,0xfd,0x6f,0xfe,0x47,0xff,0x61,0xff, +0x8a,0xfe,0xb0,0xfd,0x36,0xfd,0xee,0xfc,0x0,0xfd,0x40,0xfd, +0x35,0xfd,0x11,0xfd,0x25,0xfd,0x71,0xfd,0xf,0xfe,0xe3,0xfe, +0x58,0xff,0xd,0xff,0x64,0xfe,0x2,0xfe,0x19,0xfe,0x70,0xfe, +0xd8,0xfe,0x32,0xff,0x40,0xff,0xea,0xfe,0x96,0xfe,0xc1,0xfe, +0x50,0xff,0xd1,0xff,0xf,0x0,0xf8,0xff,0x9c,0xff,0x69,0xff, +0xae,0xff,0x2c,0x0,0x8a,0x0,0xd2,0x0,0xf5,0x0,0xae,0x0, +0x4d,0x0,0x61,0x0,0xa7,0x0,0xb2,0x0,0x9d,0x0,0x5c,0x0, +0xdf,0xff,0x8f,0xff,0xae,0xff,0x4,0x0,0x6b,0x0,0xbe,0x0, +0xb9,0x0,0x81,0x0,0x6a,0x0,0x78,0x0,0xb3,0x0,0xfa,0x0, +0xce,0x0,0x4a,0x0,0xb,0x0,0xf3,0xff,0xc0,0xff,0xd0,0xff, +0x2a,0x0,0x3b,0x0,0xf3,0xff,0xc9,0xff,0xae,0xff,0x6b,0xff, +0x6e,0xff,0xc6,0xff,0xc9,0xff,0x8c,0xff,0x7c,0xff,0x4b,0xff, +0x1b,0xff,0x99,0xff,0x57,0x0,0x76,0x0,0x32,0x0,0xf3,0xff, +0x87,0xff,0x25,0xff,0x42,0xff,0x84,0xff,0x7f,0xff,0x7f,0xff, +0xa2,0xff,0xb7,0xff,0x4,0x0,0xb7,0x0,0x4f,0x1,0x78,0x1, +0x65,0x1,0x15,0x1,0x98,0x0,0x75,0x0,0xa7,0x0,0xb8,0x0, +0xc3,0x0,0xe5,0x0,0xc7,0x0,0xa5,0x0,0x3,0x1,0x61,0x1, +0x28,0x1,0x12,0x1,0x80,0x1,0x8e,0x1,0x68,0x1,0xcc,0x1, +0xb7,0x1,0xe4,0x0,0xd2,0x0,0x32,0x1,0xc6,0x0,0x57,0x0, +0x71,0x0,0x62,0x0,0x88,0x0,0x45,0x1,0x91,0x1,0x28,0x1, +0xde,0x0,0xbb,0x0,0x6b,0x0,0x48,0x0,0x76,0x0,0x7f,0x0, +0x41,0x0,0x1e,0x0,0x2c,0x0,0x2c,0x0,0x1b,0x0,0xe7,0xff, +0x81,0xff,0x69,0xff,0x88,0xff,0x28,0xff,0xdc,0xfe,0x53,0xff, +0x9a,0xff,0x42,0xff,0x1d,0xff,0xb,0xff,0x93,0xfe,0x5c,0xfe, +0x9e,0xfe,0x91,0xfe,0x3f,0xfe,0x4e,0xfe,0x7e,0xfe,0x76,0xfe, +0xa5,0xfe,0xe8,0xfe,0xbe,0xfe,0xad,0xfe,0x1e,0xff,0x48,0xff, +0xe,0xff,0x32,0xff,0x61,0xff,0x24,0xff,0x29,0xff,0x7a,0xff, +0x7a,0xff,0x7c,0xff,0xcc,0xff,0x19,0x0,0x72,0x0,0xe0,0x0, +0xd,0x1,0x0,0x1,0xff,0x0,0xf2,0x0,0x82,0x0,0xf0,0xff, +0xc5,0xff,0xc8,0xff,0xc6,0xff,0x3,0x0,0x4f,0x0,0x79,0x0, +0xc0,0x0,0xb,0x1,0x1d,0x1,0xf5,0x0,0xac,0x0,0x8a,0x0, +0x94,0x0,0x95,0x0,0x8f,0x0,0x72,0x0,0x34,0x0,0x16,0x0, +0x22,0x0,0x31,0x0,0x45,0x0,0x52,0x0,0x3c,0x0,0x39,0x0, +0x72,0x0,0x7e,0x0,0x43,0x0,0x31,0x0,0x16,0x0,0xb4,0xff, +0x8c,0xff,0xa1,0xff,0x96,0xff,0x9d,0xff,0xb0,0xff,0x95,0xff, +0x81,0xff,0x89,0xff,0x73,0xff,0x43,0xff,0x41,0xff,0x52,0xff, +0x12,0xff,0xda,0xfe,0x1c,0xff,0x2c,0xff,0xc0,0xfe,0xa1,0xfe, +0xdc,0xfe,0xe4,0xfe,0xef,0xfe,0x44,0xff,0x7b,0xff,0x6f,0xff, +0x91,0xff,0xd9,0xff,0xc6,0xff,0x88,0xff,0x82,0xff,0x82,0xff, +0x92,0xff,0xeb,0xff,0x49,0x0,0x79,0x0,0x9c,0x0,0xae,0x0, +0xb9,0x0,0xdc,0x0,0xef,0x0,0xe3,0x0,0xdf,0x0,0xe4,0x0, +0xdc,0x0,0xe9,0x0,0x17,0x1,0x33,0x1,0x22,0x1,0xf,0x1, +0x8,0x1,0xf0,0x0,0xef,0x0,0x3a,0x1,0x88,0x1,0x77,0x1, +0x3d,0x1,0x1d,0x1,0xf2,0x0,0xca,0x0,0xe4,0x0,0xf5,0x0, +0xbd,0x0,0x9e,0x0,0x9c,0x0,0x6c,0x0,0x52,0x0,0x7a,0x0, +0x7c,0x0,0x3d,0x0,0xb,0x0,0xf5,0xff,0xf7,0xff,0x2c,0x0, +0x8a,0x0,0xd0,0x0,0xe7,0x0,0xd0,0x0,0x85,0x0,0x32,0x0, +0x4,0x0,0xd4,0xff,0x83,0xff,0x2c,0xff,0xed,0xfe,0xdf,0xfe, +0xfd,0xfe,0x25,0xff,0x55,0xff,0x9b,0xff,0xed,0xff,0x13,0x0, +0xf8,0xff,0xcf,0xff,0xa2,0xff,0x55,0xff,0xa,0xff,0xdb,0xfe, +0xa0,0xfe,0x69,0xfe,0x87,0xfe,0xff,0xfe,0x9c,0xff,0x41,0x0, +0xcd,0x0,0x12,0x1,0x19,0x1,0x16,0x1,0x1a,0x1,0xfe,0x0, +0xbc,0x0,0x9a,0x0,0xa8,0x0,0xbe,0x0,0x5,0x1,0x70,0x1, +0x95,0x1,0x8e,0x1,0x93,0x1,0x61,0x1,0xf,0x1,0xe,0x1, +0x43,0x1,0x65,0x1,0x8f,0x1,0xc7,0x1,0xd5,0x1,0xcc,0x1, +0xd1,0x1,0xc4,0x1,0x94,0x1,0x40,0x1,0xca,0x0,0x6d,0x0, +0x33,0x0,0xdf,0xff,0xa0,0xff,0xbf,0xff,0xec,0xff,0xff,0xff, +0x31,0x0,0x64,0x0,0x53,0x0,0x38,0x0,0x41,0x0,0xb,0x0, +0x94,0xff,0x42,0xff,0xdc,0xfe,0x42,0xfe,0x25,0xfe,0x8c,0xfe, +0xce,0xfe,0xfd,0xfe,0x5a,0xff,0x92,0xff,0x88,0xff,0x71,0xff, +0x4a,0xff,0x12,0xff,0xed,0xfe,0xd7,0xfe,0xb0,0xfe,0xa2,0xfe, +0xd3,0xfe,0x15,0xff,0x5a,0xff,0xb1,0xff,0xd9,0xff,0xc4,0xff, +0xc0,0xff,0xc3,0xff,0xaf,0xff,0xb4,0xff,0xca,0xff,0xad,0xff, +0x6b,0xff,0x44,0xff,0x44,0xff,0x5c,0xff,0xad,0xff,0x1a,0x0, +0x31,0x0,0x7,0x0,0xd,0x0,0x2b,0x0,0x2b,0x0,0x44,0x0, +0x82,0x0,0x98,0x0,0x73,0x0,0x67,0x0,0xa1,0x0,0xeb,0x0, +0x6,0x1,0xe7,0x0,0xb9,0x0,0x98,0x0,0x56,0x0,0x14,0x0, +0x2c,0x0,0x63,0x0,0x80,0x0,0xba,0x0,0xe1,0x0,0xb6,0x0, +0x8e,0x0,0x98,0x0,0x96,0x0,0x57,0x0,0xf1,0xff,0x91,0xff, +0x38,0xff,0xe8,0xfe,0xe8,0xfe,0x3e,0xff,0x7d,0xff,0x80,0xff, +0xa9,0xff,0xea,0xff,0xc5,0xff,0x88,0xff,0xa4,0xff,0x8f,0xff, +0x1b,0xff,0xf0,0xfe,0xff,0xfe,0xdc,0xfe,0xd8,0xfe,0x28,0xff, +0x67,0xff,0x6b,0xff,0x69,0xff,0x69,0xff,0x5a,0xff,0x48,0xff, +0x3e,0xff,0x3c,0xff,0x46,0xff,0x5d,0xff,0x86,0xff,0xbe,0xff, +0xe2,0xff,0xe9,0xff,0x8,0x0,0x48,0x0,0x54,0x0,0x10,0x0, +0xd5,0xff,0xa9,0xff,0x53,0xff,0xb,0xff,0x9,0xff,0x1f,0xff, +0x3b,0xff,0x7b,0xff,0xe5,0xff,0x49,0x0,0x70,0x0,0x76,0x0, +0x80,0x0,0x63,0x0,0xf0,0xff,0x55,0xff,0xe4,0xfe,0x9e,0xfe, +0x7a,0xfe,0xa8,0xfe,0x9,0xff,0x60,0xff,0xca,0xff,0x2a,0x0, +0x5e,0x0,0xad,0x0,0xeb,0x0,0xc9,0x0,0x9f,0x0,0xa3,0x0, +0x81,0x0,0x2d,0x0,0xb,0x0,0x3c,0x0,0x6c,0x0,0x67,0x0, +0x5e,0x0,0x6c,0x0,0x74,0x0,0x66,0x0,0x61,0x0,0x62,0x0, +0x32,0x0,0xff,0xff,0x13,0x0,0x49,0x0,0x7f,0x0,0x85,0x0, +0x42,0x0,0x1b,0x0,0x9,0x0,0xaf,0xff,0x6c,0xff,0x50,0xff, +0xe6,0xfe,0x93,0xfe,0xc0,0xfe,0xf0,0xfe,0x3,0xff,0x58,0xff, +0xcf,0xff,0x11,0x0,0x2d,0x0,0x43,0x0,0x2a,0x0,0xf1,0xff, +0xce,0xff,0x91,0xff,0x2f,0xff,0x9,0xff,0x16,0xff,0x16,0xff, +0x53,0xff,0xf0,0xff,0x5c,0x0,0x73,0x0,0xba,0x0,0xb,0x1, +0xe9,0x0,0xa3,0x0,0x7d,0x0,0x1f,0x0,0xa3,0xff,0x61,0xff, +0x26,0xff,0xe2,0xfe,0xef,0xfe,0x26,0xff,0x2c,0xff,0x44,0xff, +0x80,0xff,0x78,0xff,0x6c,0xff,0xc6,0xff,0xd,0x0,0xfd,0xff, +0x18,0x0,0x53,0x0,0x42,0x0,0x34,0x0,0x5c,0x0,0x3e,0x0, +0xda,0xff,0x9c,0xff,0x64,0xff,0x26,0xff,0x4e,0xff,0xb3,0xff, +0xf7,0xff,0x62,0x0,0xe1,0x0,0xfc,0x0,0x9,0x1,0x51,0x1, +0x1e,0x1,0x7c,0x0,0x32,0x0,0xe6,0xff,0x45,0xff,0xfb,0xfe, +0xfe,0xfe,0xc6,0xfe,0xa3,0xfe,0xbb,0xfe,0xc7,0xfe,0xe7,0xfe, +0x38,0xff,0x92,0xff,0xfa,0xff,0x68,0x0,0x96,0x0,0x7a,0x0, +0x45,0x0,0xfe,0xff,0x88,0xff,0x3,0xff,0x9d,0xfe,0x4e,0xfe, +0x17,0xfe,0x2f,0xfe,0x8a,0xfe,0xd3,0xfe,0x1d,0xff,0x9c,0xff, +0x3,0x0,0x39,0x0,0x9a,0x0,0xf1,0x0,0xe2,0x0,0xc0,0x0, +0xba,0x0,0x64,0x0,0xac,0xff,0x17,0xff,0xdd,0xfe,0xbf,0xfe, +0xc8,0xfe,0x39,0xff,0xe6,0xff,0x79,0x0,0xf6,0x0,0x77,0x1, +0xc5,0x1,0xa0,0x1,0x51,0x1,0x36,0x1,0xfe,0x0,0x71,0x0, +0x3,0x0,0xee,0xff,0xf6,0xff,0x17,0x0,0x69,0x0,0xce,0x0, +0x23,0x1,0x78,0x1,0xe6,0x1,0x49,0x2,0x54,0x2,0xf1,0x1, +0x5e,0x1,0xd0,0x0,0x4d,0x0,0xde,0xff,0x7e,0xff,0x27,0xff, +0xa,0xff,0x3d,0xff,0x8c,0xff,0xdd,0xff,0x2e,0x0,0x73,0x0, +0xa6,0x0,0xcb,0x0,0xeb,0x0,0xf4,0x0,0xb6,0x0,0x61,0x0, +0x40,0x0,0x1,0x0,0x5e,0xff,0xca,0xfe,0x97,0xfe,0x80,0xfe, +0x76,0xfe,0xb5,0xfe,0x1a,0xff,0x5c,0xff,0x99,0xff,0xe4,0xff, +0x15,0x0,0x2a,0x0,0x2a,0x0,0x3,0x0,0xd0,0xff,0xa4,0xff, +0x4c,0xff,0xe7,0xfe,0xdc,0xfe,0x7,0xff,0x22,0xff,0x66,0xff, +0xd7,0xff,0x2f,0x0,0xa4,0x0,0x58,0x1,0xcd,0x1,0xc3,0x1, +0x8d,0x1,0x4d,0x1,0xeb,0x0,0xa0,0x0,0xa4,0x0,0x9f,0x0, +0x5c,0x0,0x52,0x0,0xa6,0x0,0xd2,0x0,0xc8,0x0,0xf6,0x0, +0x27,0x1,0x5,0x1,0xea,0x0,0xe,0x1,0x5,0x1,0xad,0x0, +0x5c,0x0,0x15,0x0,0x98,0xff,0xed,0xfe,0x61,0xfe,0x24,0xfe, +0x2f,0xfe,0x5c,0xfe,0xab,0xfe,0x3e,0xff,0xda,0xff,0x14,0x0, +0x2b,0x0,0x6f,0x0,0x58,0x0,0xab,0xff,0xa,0xff,0x9c,0xfe, +0x27,0xfe,0xff,0xfd,0x41,0xfe,0x7d,0xfe,0xb9,0xfe,0x29,0xff, +0x93,0xff,0xd1,0xff,0x6,0x0,0x43,0x0,0x6a,0x0,0x4f,0x0, +0x1d,0x0,0xe,0x0,0xf0,0xff,0xb0,0xff,0x85,0xff,0x62,0xff, +0x39,0xff,0x32,0xff,0x3e,0xff,0x50,0xff,0x9e,0xff,0xc,0x0, +0x4d,0x0,0x7c,0x0,0xab,0x0,0x99,0x0,0x6a,0x0,0x5e,0x0, +0x40,0x0,0x16,0x0,0x23,0x0,0x33,0x0,0x25,0x0,0x33,0x0, +0x4d,0x0,0x3d,0x0,0x2e,0x0,0x3a,0x0,0x1f,0x0,0xd9,0xff, +0xdb,0xff,0x23,0x0,0x34,0x0,0x2a,0x0,0x4b,0x0,0x53,0x0, +0x1b,0x0,0xcc,0xff,0x7d,0xff,0x48,0xff,0x2b,0xff,0xfd,0xfe, +0xeb,0xfe,0x48,0xff,0xad,0xff,0x9a,0xff,0x8b,0xff,0xc7,0xff, +0xad,0xff,0x47,0xff,0x2b,0xff,0x21,0xff,0xdd,0xfe,0x95,0xfe, +0x71,0xfe,0x6b,0xfe,0x67,0xfe,0x5e,0xfe,0x7f,0xfe,0xe2,0xfe, +0x5a,0xff,0xc2,0xff,0x44,0x0,0xd4,0x0,0xec,0x0,0xa7,0x0, +0x98,0x0,0x6f,0x0,0xeb,0xff,0xb9,0xff,0xf3,0xff,0xf8,0xff, +0x1,0x0,0x9e,0x0,0x46,0x1,0x61,0x1,0x98,0x1,0x23,0x2, +0x2e,0x2,0xe4,0x1,0xe9,0x1,0xd0,0x1,0x62,0x1,0x20,0x1, +0xff,0x0,0xb8,0x0,0x8c,0x0,0x89,0x0,0x6e,0x0,0x76,0x0, +0xb7,0x0,0xa2,0x0,0x56,0x0,0x48,0x0,0x7,0x0,0x8a,0xff, +0x6a,0xff,0x7c,0xff,0x80,0xff,0xbb,0xff,0x12,0x0,0x38,0x0, +0x3b,0x0,0x42,0x0,0x2f,0x0,0xdd,0xff,0xab,0xff,0xaf,0xff, +0x80,0xff,0x8c,0xff,0x12,0x0,0x38,0x0,0x24,0x0,0x84,0x0, +0xb6,0x0,0x80,0x0,0x95,0x0,0xac,0x0,0x59,0x0,0x28,0x0, +0x24,0x0,0xdd,0xff,0x9d,0xff,0x8b,0xff,0x48,0xff,0x18,0xff, +0x69,0xff,0xc5,0xff,0xcd,0xff,0xde,0xff,0x11,0x0,0xf2,0xff, +0x81,0xff,0x40,0xff,0x27,0xff,0xfd,0xfe,0x21,0xff,0xad,0xff, +0x39,0x0,0xb4,0x0,0xb,0x1,0x1b,0x1,0x2a,0x1,0x5,0x1, +0x64,0x0,0xfe,0xff,0x7,0x0,0xe4,0xff,0xe8,0xff,0x57,0x0, +0x94,0x0,0xa7,0x0,0xde,0x0,0xda,0x0,0xa3,0x0,0x94,0x0, +0x7a,0x0,0x3c,0x0,0x33,0x0,0x60,0x0,0x4c,0x0,0x1,0x0, +0xe9,0xff,0xe6,0xff,0xcd,0xff,0xcc,0xff,0xc6,0xff,0xc9,0xff, +0x4,0x0,0x9,0x0,0xd2,0xff,0xd6,0xff,0xb2,0xff,0x2f,0xff, +0xfb,0xfe,0x2f,0xff,0x5a,0xff,0x9a,0xff,0x1f,0x0,0x9c,0x0, +0xc7,0x0,0xb7,0x0,0x86,0x0,0x29,0x0,0xbe,0xff,0x6e,0xff, +0x37,0xff,0x2e,0xff,0x79,0xff,0xf0,0xff,0x5a,0x0,0xca,0x0, +0x12,0x1,0xf0,0x0,0xd1,0x0,0xdd,0x0,0x8b,0x0,0x36,0x0, +0x55,0x0,0x36,0x0,0xbf,0xff,0x90,0xff,0x61,0xff,0x0,0xff, +0xe6,0xfe,0x14,0xff,0x3d,0xff,0x74,0xff,0xbc,0xff,0xd8,0xff, +0xd5,0xff,0xe2,0xff,0xc0,0xff,0x53,0xff,0x10,0xff,0xfa,0xfe, +0xd0,0xfe,0xeb,0xfe,0x41,0xff,0x37,0xff,0x10,0xff,0x44,0xff, +0x40,0xff,0xcf,0xfe,0xc2,0xfe,0x1d,0xff,0x51,0xff,0xa8,0xff, +0x39,0x0,0x78,0x0,0x80,0x0,0xa4,0x0,0xa0,0x0,0x5a,0x0, +0xfe,0xff,0x96,0xff,0x34,0xff,0x3,0xff,0xd,0xff,0x48,0xff, +0x9b,0xff,0xe1,0xff,0x24,0x0,0x91,0x0,0xde,0x0,0xd3,0x0, +0xd3,0x0,0xd7,0x0,0x75,0x0,0xfe,0xff,0xc3,0xff,0x8f,0xff, +0x6f,0xff,0xa9,0xff,0x2d,0x0,0x88,0x0,0x81,0x0,0x84,0x0, +0xc3,0x0,0xd1,0x0,0x97,0x0,0x60,0x0,0x38,0x0,0xb,0x0, +0xf0,0xff,0x1b,0x0,0x6e,0x0,0x72,0x0,0x44,0x0,0x51,0x0, +0x57,0x0,0x12,0x0,0xee,0xff,0x6,0x0,0xe9,0xff,0xa6,0xff, +0xa8,0xff,0xa0,0xff,0x32,0xff,0xef,0xfe,0x20,0xff,0x3c,0xff, +0x38,0xff,0x5f,0xff,0x76,0xff,0x6b,0xff,0x68,0xff,0x53,0xff, +0x2a,0xff,0x14,0xff,0xf2,0xfe,0xc3,0xfe,0xc9,0xfe,0x10,0xff, +0x50,0xff,0x71,0xff,0xa6,0xff,0xe0,0xff,0xda,0xff,0xc8,0xff, +0xf0,0xff,0x14,0x0,0xe,0x0,0xe,0x0,0x1,0x0,0xd0,0xff, +0xb9,0xff,0xc2,0xff,0xbf,0xff,0xd3,0xff,0x17,0x0,0x61,0x0, +0xab,0x0,0xfb,0x0,0x2f,0x1,0x3b,0x1,0x29,0x1,0xf2,0x0, +0xaa,0x0,0x6f,0x0,0x2c,0x0,0xe6,0xff,0xd3,0xff,0xe0,0xff, +0xda,0xff,0xdd,0xff,0x0,0x0,0x14,0x0,0x1b,0x0,0x3d,0x0, +0x69,0x0,0x7c,0x0,0x80,0x0,0x77,0x0,0x49,0x0,0xfd,0xff, +0xb4,0xff,0x7a,0xff,0x49,0xff,0x12,0xff,0xea,0xfe,0xf4,0xfe, +0x6,0xff,0x11,0xff,0x56,0xff,0xa8,0xff,0xb8,0xff,0xd4,0xff, +0x32,0x0,0x76,0x0,0x80,0x0,0x85,0x0,0x7c,0x0,0x32,0x0, +0xb2,0xff,0x3e,0xff,0xec,0xfe,0x9a,0xfe,0x46,0xfe,0x26,0xfe, +0x6b,0xfe,0xe5,0xfe,0x32,0xff,0x7c,0xff,0xe,0x0,0x71,0x0, +0x65,0x0,0x65,0x0,0x78,0x0,0x30,0x0,0xa4,0xff,0x4c,0xff, +0x40,0xff,0x2f,0xff,0x17,0xff,0x5c,0xff,0xd8,0xff,0x25,0x0, +0x83,0x0,0x13,0x1,0x64,0x1,0x68,0x1,0x6e,0x1,0x65,0x1, +0x2d,0x1,0xed,0x0,0xbe,0x0,0x82,0x0,0x40,0x0,0x1f,0x0, +0xa,0x0,0xfd,0xff,0x16,0x0,0x2f,0x0,0x38,0x0,0x6d,0x0, +0xb0,0x0,0xcb,0x0,0xe4,0x0,0xe7,0x0,0xa9,0x0,0x75,0x0, +0x55,0x0,0xe3,0xff,0x4d,0xff,0x5,0xff,0xc0,0xfe,0x3f,0xfe, +0x15,0xfe,0x71,0xfe,0xac,0xfe,0xc5,0xfe,0x40,0xff,0xca,0xff, +0xf5,0xff,0x19,0x0,0x47,0x0,0x27,0x0,0xe2,0xff,0xad,0xff, +0x52,0xff,0xed,0xfe,0xc3,0xfe,0xab,0xfe,0xa2,0xfe,0xdf,0xfe, +0x32,0xff,0x78,0xff,0xe5,0xff,0x51,0x0,0x7b,0x0,0x99,0x0, +0xaf,0x0,0x77,0x0,0x1c,0x0,0xdb,0xff,0x91,0xff,0x5e,0xff, +0x8d,0xff,0xde,0xff,0xd,0x0,0x4b,0x0,0x96,0x0,0xbd,0x0, +0xd7,0x0,0xe2,0x0,0xc2,0x0,0x99,0x0,0x67,0x0,0x26,0x0, +0x1d,0x0,0x46,0x0,0x4a,0x0,0x4e,0x0,0x87,0x0,0xa3,0x0, +0x7e,0x0,0x76,0x0,0x89,0x0,0x59,0x0,0x1b,0x0,0x38,0x0, +0x51,0x0,0x25,0x0,0x36,0x0,0x8a,0x0,0xa1,0x0,0xa5,0x0, +0xca,0x0,0xb4,0x0,0x76,0x0,0x4c,0x0,0xfa,0xff,0xa1,0xff, +0xa2,0xff,0xba,0xff,0xae,0xff,0xc6,0xff,0xfd,0xff,0xd,0x0, +0x18,0x0,0x38,0x0,0x2a,0x0,0xf5,0xff,0xd8,0xff,0xb0,0xff, +0x74,0xff,0x70,0xff,0x80,0xff,0x52,0xff,0x3e,0xff,0x76,0xff, +0x96,0xff,0xab,0xff,0x2,0x0,0x4b,0x0,0x59,0x0,0x7c,0x0, +0x95,0x0,0x5c,0x0,0xf,0x0,0xce,0xff,0x68,0xff,0x21,0xff, +0x30,0xff,0x3f,0xff,0x54,0xff,0xd2,0xff,0x66,0x0,0xa0,0x0, +0xcf,0x0,0x17,0x1,0x1e,0x1,0xe3,0x0,0x9b,0x0,0x54,0x0, +0x1b,0x0,0xdc,0xff,0x93,0xff,0x7f,0xff,0x96,0xff,0x8f,0xff, +0x92,0xff,0xcf,0xff,0xfd,0xff,0xf0,0xff,0xf4,0xff,0x17,0x0, +0xe,0x0,0x10,0x0,0x5b,0x0,0x65,0x0,0x21,0x0,0x3f,0x0, +0x61,0x0,0xf5,0xff,0xc4,0xff,0xed,0xff,0x85,0xff,0x9,0xff, +0x3a,0xff,0x52,0xff,0x12,0xff,0x51,0xff,0xed,0xff,0x39,0x0, +0x6d,0x0,0xcd,0x0,0xfe,0x0,0xe0,0x0,0xae,0x0,0x71,0x0, +0x28,0x0,0xde,0xff,0x77,0xff,0x28,0xff,0x47,0xff,0x73,0xff, +0x74,0xff,0xd7,0xff,0x6c,0x0,0x80,0x0,0x7a,0x0,0xc6,0x0, +0xc4,0x0,0x5a,0x0,0x2b,0x0,0x25,0x0,0xe4,0xff,0xa3,0xff, +0xa0,0xff,0xa6,0xff,0xa6,0xff,0xc0,0xff,0xd1,0xff,0xd3,0xff, +0xf6,0xff,0xfb,0xff,0xce,0xff,0xfa,0xff,0x46,0x0,0xf,0x0, +0xe1,0xff,0x1e,0x0,0x7,0x0,0x9b,0xff,0x96,0xff,0xca,0xff, +0xb4,0xff,0x84,0xff,0x8c,0xff,0xb7,0xff,0xba,0xff,0x9d,0xff, +0xbe,0xff,0x2,0x0,0x1,0x0,0xea,0xff,0xc,0x0,0x32,0x0, +0x20,0x0,0xf0,0xff,0xbc,0xff,0x82,0xff,0x4d,0xff,0x2f,0xff, +0x2a,0xff,0x51,0xff,0x9c,0xff,0xc5,0xff,0xdf,0xff,0x2b,0x0, +0x5a,0x0,0x42,0x0,0x54,0x0,0x7d,0x0,0x59,0x0,0x29,0x0, +0xf,0x0,0xde,0xff,0xc7,0xff,0xd9,0xff,0xe0,0xff,0xfb,0xff, +0x28,0x0,0x30,0x0,0x46,0x0,0x8b,0x0,0xab,0x0,0x84,0x0, +0x4f,0x0,0x3a,0x0,0x22,0x0,0xf3,0xff,0x8,0x0,0x62,0x0, +0x7d,0x0,0x74,0x0,0x9c,0x0,0xa0,0x0,0x78,0x0,0x73,0x0, +0x56,0x0,0x2c,0x0,0x4a,0x0,0x49,0x0,0x8,0x0,0x1f,0x0, +0x74,0x0,0x67,0x0,0x2e,0x0,0x41,0x0,0x51,0x0,0xf7,0xff, +0xb4,0xff,0x10,0x0,0x63,0x0,0x45,0x0,0x77,0x0,0xe7,0x0, +0xc5,0x0,0x87,0x0,0xc4,0x0,0xc9,0x0,0x69,0x0,0x58,0x0, +0x7b,0x0,0x5f,0x0,0x5d,0x0,0xc8,0x0,0x32,0x1,0x3b,0x1, +0x3e,0x1,0x7a,0x1,0x85,0x1,0x57,0x1,0x66,0x1,0x97,0x1, +0x8f,0x1,0x83,0x1,0xad,0x1,0xef,0x1,0x17,0x2,0x16,0x2, +0x31,0x2,0x78,0x2,0x68,0x2,0x28,0x2,0x58,0x2,0x87,0x2, +0x41,0x2,0x52,0x2,0xd6,0x2,0xd7,0x2,0x84,0x2,0xb2,0x2, +0xfb,0x2,0xdb,0x2,0xdb,0x2,0x2c,0x3,0x40,0x3,0xa,0x3, +0xfe,0x2,0x17,0x3,0xdd,0x2,0x37,0x2,0x88,0x1,0xec,0x0, +0x7,0x0,0xf8,0xfe,0x41,0xfe,0x96,0xfd,0xa9,0xfc,0x20,0xfc, +0x27,0xfc,0x29,0xfc,0x43,0xfc,0xba,0xfc,0x16,0xfd,0x23,0xfd, +0x0,0xfd,0x84,0xfc,0xab,0xfb,0xa4,0xfa,0x85,0xf9,0x8d,0xf8, +0xce,0xf7,0x2d,0xf7,0xe6,0xf6,0x23,0xf7,0x99,0xf7,0x25,0xf8, +0xdb,0xf8,0x90,0xf9,0x7,0xfa,0x4f,0xfa,0xab,0xfa,0xed,0xfa, +0xc9,0xfa,0xa3,0xfa,0xbf,0xfa,0xa3,0xfa,0x6e,0xfa,0xb0,0xfa, +0x1a,0xfb,0x71,0xfb,0x27,0xfc,0x13,0xfd,0xc9,0xfd,0x72,0xfe, +0x2a,0xff,0xcb,0xff,0x53,0x0,0xbd,0x0,0x19,0x1,0x71,0x1, +0xa9,0x1,0xe5,0x1,0x4c,0x2,0x90,0x2,0xa8,0x2,0xe6,0x2, +0x3a,0x3,0x7d,0x3,0xbb,0x3,0x10,0x4,0x8c,0x4,0x0,0x5, +0x52,0x5,0xb9,0x5,0xfc,0x5,0xcc,0x5,0x86,0x5,0x48,0x5, +0xc4,0x4,0x24,0x4,0x99,0x3,0x13,0x3,0xb9,0x2,0x96,0x2, +0x85,0x2,0x8a,0x2,0x98,0x2,0x8d,0x2,0x73,0x2,0x42,0x2, +0xd1,0x1,0x36,0x1,0x84,0x0,0xa9,0xff,0xd2,0xfe,0x1e,0xfe, +0x6f,0xfd,0xea,0xfc,0xb2,0xfc,0x9b,0xfc,0x87,0xfc,0x72,0xfc, +0x65,0xfc,0x5f,0xfc,0x31,0xfc,0xf5,0xfb,0xcc,0xfb,0x7a,0xfb, +0x15,0xfb,0xe4,0xfa,0xc4,0xfa,0xb5,0xfa,0xd7,0xfa,0xe,0xfb, +0x57,0xfb,0xb1,0xfb,0x4,0xfc,0x63,0xfc,0xd5,0xfc,0x3c,0xfd, +0x97,0xfd,0xfb,0xfd,0x55,0xfe,0x97,0xfe,0xf9,0xfe,0x8b,0xff, +0x16,0x0,0x99,0x0,0x1a,0x1,0x87,0x1,0xeb,0x1,0x43,0x2, +0x9c,0x2,0x9,0x3,0x6b,0x3,0xca,0x3,0x3a,0x4,0x97,0x4, +0xf1,0x4,0x57,0x5,0x98,0x5,0xb9,0x5,0xca,0x5,0xbe,0x5, +0xa4,0x5,0x86,0x5,0x6e,0x5,0x6d,0x5,0x63,0x5,0x4a,0x5, +0x46,0x5,0x3a,0x5,0x3,0x5,0xd0,0x4,0xa4,0x4,0x4b,0x4, +0xe0,0x3,0x80,0x3,0x9,0x3,0x8a,0x2,0x20,0x2,0xbf,0x1, +0x6f,0x1,0x19,0x1,0xae,0x0,0x57,0x0,0x5,0x0,0xa2,0xff, +0x4b,0xff,0xf2,0xfe,0x92,0xfe,0x2f,0xfe,0xc3,0xfd,0x68,0xfd, +0x1a,0xfd,0xcc,0xfc,0xa4,0xfc,0x84,0xfc,0x52,0xfc,0x3f,0xfc, +0x35,0xfc,0x17,0xfc,0x4,0xfc,0xff,0xfb,0xf7,0xfb,0xe6,0xfb, +0xea,0xfb,0x12,0xfc,0x36,0xfc,0x60,0xfc,0xa1,0xfc,0xd6,0xfc, +0xa,0xfd,0x4b,0xfd,0x87,0xfd,0xca,0xfd,0xb,0xfe,0x52,0xfe, +0xb8,0xfe,0x11,0xff,0x5f,0xff,0xbf,0xff,0x14,0x0,0x6c,0x0, +0xcd,0x0,0x1d,0x1,0x72,0x1,0xc4,0x1,0xfd,0x1,0x3b,0x2, +0x77,0x2,0xa9,0x2,0xe7,0x2,0x1e,0x3,0x53,0x3,0x8e,0x3, +0xb8,0x3,0xd9,0x3,0xf9,0x3,0x7,0x4,0x2,0x4,0xe8,0x3, +0xc2,0x3,0xa1,0x3,0x7c,0x3,0x4f,0x3,0x2d,0x3,0xa,0x3, +0xe1,0x2,0xc4,0x2,0xa3,0x2,0x6d,0x2,0x30,0x2,0xe9,0x1, +0x94,0x1,0x40,0x1,0xdf,0x0,0x77,0x0,0x26,0x0,0xe2,0xff, +0x99,0xff,0x56,0xff,0x1b,0xff,0xe2,0xfe,0x9d,0xfe,0x51,0xfe, +0x15,0xfe,0xdc,0xfd,0x9d,0xfd,0x6a,0xfd,0x3e,0xfd,0x17,0xfd, +0xfb,0xfc,0xe2,0xfc,0xd8,0xfc,0xd7,0xfc,0xd0,0xfc,0xce,0xfc, +0xd7,0xfc,0xe9,0xfc,0x0,0xfd,0xd,0xfd,0x23,0xfd,0x43,0xfd, +0x58,0xfd,0x77,0xfd,0xa7,0xfd,0xd5,0xfd,0x8,0xfe,0x3d,0xfe, +0x64,0xfe,0x8f,0xfe,0xc9,0xfe,0x9,0xff,0x49,0xff,0x87,0xff, +0xc5,0xff,0x6,0x0,0x4f,0x0,0x96,0x0,0xd8,0x0,0x1d,0x1, +0x5e,0x1,0x8f,0x1,0xbc,0x1,0xe0,0x1,0xf9,0x1,0x12,0x2, +0x24,0x2,0x2e,0x2,0x3f,0x2,0x47,0x2,0x4f,0x2,0x60,0x2, +0x67,0x2,0x6b,0x2,0x70,0x2,0x5e,0x2,0x43,0x2,0x29,0x2, +0x6,0x2,0xe1,0x1,0xbd,0x1,0x92,0x1,0x66,0x1,0x38,0x1, +0x3,0x1,0xce,0x0,0xa3,0x0,0x7a,0x0,0x55,0x0,0x34,0x0, +0xb,0x0,0xdb,0xff,0xb2,0xff,0x83,0xff,0x4c,0xff,0x1f,0xff, +0xee,0xfe,0xbc,0xfe,0x90,0xfe,0x67,0xfe,0x50,0xfe,0x45,0xfe, +0x2f,0xfe,0x23,0xfe,0x25,0xfe,0x21,0xfe,0x21,0xfe,0x24,0xfe, +0x1f,0xfe,0x16,0xfe,0x9,0xfe,0x4,0xfe,0x4,0xfe,0xfd,0xfd, +0x7,0xfe,0x20,0xfe,0x2d,0xfe,0x44,0xfe,0x68,0xfe,0x86,0xfe, +0xae,0xfe,0xde,0xfe,0x9,0xff,0x39,0xff,0x66,0xff,0x8c,0xff, +0xb3,0xff,0xd4,0xff,0xf6,0xff,0x19,0x0,0x39,0x0,0x5d,0x0, +0x83,0x0,0xa9,0x0,0xd1,0x0,0xf1,0x0,0x14,0x1,0x41,0x1, +0x64,0x1,0x85,0x1,0xa9,0x1,0xb7,0x1,0xbf,0x1,0xd1,0x1, +0xd8,0x1,0xd0,0x1,0xc5,0x1,0xbc,0x1,0xb2,0x1,0xa6,0x1, +0x9c,0x1,0x92,0x1,0x8c,0x1,0x89,0x1,0x7a,0x1,0x61,0x1, +0x48,0x1,0x29,0x1,0x9,0x1,0xed,0x0,0xcc,0x0,0xa9,0x0, +0x88,0x0,0x68,0x0,0x46,0x0,0x1e,0x0,0xf6,0xff,0xcc,0xff, +0xa4,0xff,0x8f,0xff,0x77,0xff,0x51,0xff,0x3a,0xff,0x25,0xff, +0x3,0xff,0xee,0xfe,0xe3,0xfe,0xd8,0xfe,0xd2,0xfe,0xcd,0xfe, +0xcd,0xfe,0xce,0xfe,0xc2,0xfe,0xb9,0xfe,0xb9,0xfe,0xb1,0xfe, +0xa8,0xfe,0xae,0xfe,0xbd,0xfe,0xc2,0xfe,0xc6,0xfe,0xdb,0xfe, +0xf4,0xfe,0xb,0xff,0x2a,0xff,0x46,0xff,0x61,0xff,0x78,0xff, +0x88,0xff,0xa3,0xff,0xc6,0xff,0xe4,0xff,0x0,0x0,0x9,0x0, +0xa,0x0,0x17,0x0,0x23,0x0,0x39,0x0,0x63,0x0,0x86,0x0, +0xa3,0x0,0xc1,0x0,0xdd,0x0,0xfc,0x0,0x12,0x1,0x16,0x1, +0x13,0x1,0x7,0x1,0xfb,0x0,0xfa,0x0,0xf6,0x0,0xf0,0x0, +0xf2,0x0,0xf3,0x0,0xef,0x0,0xed,0x0,0xf1,0x0,0xf5,0x0, +0xf0,0x0,0xe9,0x0,0xdd,0x0,0xc3,0x0,0xa4,0x0,0x7d,0x0, +0x57,0x0,0x3b,0x0,0x1d,0x0,0x2,0x0,0xed,0xff,0xda,0xff, +0xd6,0xff,0xd2,0xff,0xbd,0xff,0xa7,0xff,0x8f,0xff,0x75,0xff, +0x6e,0xff,0x63,0xff,0x50,0xff,0x47,0xff,0x3c,0xff,0x23,0xff, +0x8,0xff,0xf0,0xfe,0xe9,0xfe,0xeb,0xfe,0xe2,0xfe,0xd8,0xfe, +0xdb,0xfe,0xe6,0xfe,0xf4,0xfe,0x3,0xff,0x6,0xff,0xfb,0xfe, +0xec,0xfe,0xe6,0xfe,0xe9,0xfe,0xe9,0xfe,0xe6,0xfe,0xe6,0xfe, +0xe8,0xfe,0xed,0xfe,0xf4,0xfe,0xf7,0xfe,0x3,0xff,0x16,0xff, +0x19,0xff,0x1c,0xff,0x33,0xff,0x47,0xff,0x4c,0xff,0x4f,0xff, +0x50,0xff,0x4e,0xff,0x4c,0xff,0x44,0xff,0x3d,0xff,0x41,0xff, +0x4a,0xff,0x58,0xff,0x6f,0xff,0x85,0xff,0x8d,0xff,0x89,0xff, +0x85,0xff,0x85,0xff,0x8a,0xff,0x86,0xff,0x72,0xff,0x69,0xff, +0x72,0xff,0x7b,0xff,0x78,0xff,0x61,0xff,0x3f,0xff,0x2b,0xff, +0x28,0xff,0x2a,0xff,0x3c,0xff,0x5c,0xff,0x72,0xff,0x77,0xff, +0x79,0xff,0x85,0xff,0x91,0xff,0x78,0xff,0x3,0xff,0x2f,0xfe, +0x79,0xfd,0x61,0xfd,0xc1,0xfd,0x41,0xfe,0xb9,0xfe,0xe0,0xfe, +0x82,0xfe,0xfe,0xfd,0xe2,0xfd,0x43,0xfe,0xcf,0xfe,0x31,0xff, +0x1c,0xff,0x93,0xfe,0x36,0xfe,0x95,0xfe,0x6b,0xff,0xff,0xff, +0xf5,0xff,0x91,0xff,0x34,0xff,0xfb,0xfe,0x29,0xff,0xf8,0xff, +0xe9,0x0,0x46,0x1,0x4,0x1,0x94,0x0,0x46,0x0,0x44,0x0, +0xb2,0x0,0x5e,0x1,0xb0,0x1,0x70,0x1,0xf4,0x0,0x9b,0x0, +0x9b,0x0,0xfa,0x0,0x75,0x1,0xb4,0x1,0x9f,0x1,0x7b,0x1, +0x82,0x1,0x95,0x1,0xb4,0x1,0xff,0x1,0x3f,0x2,0x2b,0x2, +0xbd,0x1,0x2f,0x1,0xf7,0x0,0x64,0x1,0x2b,0x2,0x9d,0x2, +0x5b,0x2,0xb7,0x1,0x51,0x1,0x77,0x1,0x6,0x2,0x90,0x2, +0xaa,0x2,0x3a,0x2,0x9b,0x1,0x41,0x1,0x4a,0x1,0x8b,0x1, +0xce,0x1,0xd8,0x1,0x8b,0x1,0x1c,0x1,0xe6,0x0,0x8,0x1, +0x53,0x1,0x8e,0x1,0x82,0x1,0xf9,0x0,0x3b,0x0,0xf6,0xff, +0x48,0x0,0xbb,0x0,0xfd,0x0,0xf9,0x0,0xba,0x0,0x69,0x0, +0x3f,0x0,0x5f,0x0,0xa0,0x0,0xa2,0x0,0x68,0x0,0x56,0x0, +0x7b,0x0,0x81,0x0,0x7b,0x0,0xe4,0x0,0x8e,0x1,0xb0,0x1, +0x3d,0x1,0xe1,0x0,0xc3,0x0,0xc1,0x0,0x10,0x1,0x8d,0x1, +0x93,0x1,0x10,0x1,0xb3,0x0,0xe3,0x0,0x56,0x1,0xa0,0x1, +0xa7,0x1,0x84,0x1,0x48,0x1,0x10,0x1,0xe,0x1,0x36,0x1, +0x3e,0x1,0x20,0x1,0xb,0x1,0xda,0x0,0x73,0x0,0x47,0x0, +0x8b,0x0,0xd9,0x0,0xf1,0x0,0xdc,0x0,0x93,0x0,0x31,0x0, +0xb,0x0,0x2f,0x0,0x42,0x0,0x10,0x0,0xd3,0xff,0xa8,0xff, +0x8a,0xff,0x9a,0xff,0xcf,0xff,0xe6,0xff,0xd5,0xff,0xb7,0xff, +0x83,0xff,0x26,0xff,0xbd,0xfe,0x96,0xfe,0xc0,0xfe,0xec,0xfe, +0xea,0xfe,0xc0,0xfe,0x7e,0xfe,0x67,0xfe,0x9f,0xfe,0xc9,0xfe, +0x9c,0xfe,0x49,0xfe,0x8,0xfe,0xdd,0xfd,0xdb,0xfd,0x1b,0xfe, +0x63,0xfe,0x6b,0xfe,0x54,0xfe,0x5e,0xfe,0x6e,0xfe,0x63,0xfe, +0x6b,0xfe,0x96,0xfe,0xb0,0xfe,0xb2,0xfe,0xbc,0xfe,0xc1,0xfe, +0xc1,0xfe,0xef,0xfe,0x39,0xff,0x55,0xff,0x44,0xff,0x41,0xff, +0x65,0xff,0xa1,0xff,0xd9,0xff,0xf8,0xff,0xf6,0xff,0xe3,0xff, +0xde,0xff,0xde,0xff,0xce,0xff,0xcb,0xff,0xea,0xff,0xf4,0xff, +0xc9,0xff,0x9f,0xff,0xad,0xff,0xc9,0xff,0xca,0xff,0xdf,0xff, +0x8,0x0,0xf8,0xff,0xc0,0xff,0xbb,0xff,0xe2,0xff,0xfe,0xff, +0x4,0x0,0xe8,0xff,0xad,0xff,0x89,0xff,0x8d,0xff,0x8d,0xff, +0x7c,0xff,0x76,0xff,0x74,0xff,0x5e,0xff,0x44,0xff,0x4a,0xff, +0x6c,0xff,0x89,0xff,0x96,0xff,0xa0,0xff,0x9c,0xff,0x80,0xff, +0x67,0xff,0x58,0xff,0x33,0xff,0x5,0xff,0xe7,0xfe,0xcd,0xfe, +0xc0,0xfe,0xcf,0xfe,0xe3,0xfe,0xf4,0xfe,0x17,0xff,0x3b,0xff, +0x48,0xff,0x4b,0xff,0x4f,0xff,0x53,0xff,0x58,0xff,0x55,0xff, +0x40,0xff,0x32,0xff,0x36,0xff,0x37,0xff,0x50,0xff,0x9d,0xff, +0xde,0xff,0x1,0x0,0x1c,0x0,0xcd,0xff,0x5e,0xff,0xde,0xff, +0x9f,0x0,0x5e,0x0,0x30,0x0,0xca,0x0,0x92,0x0,0xa0,0xff, +0xd8,0xff,0xad,0x0,0x8d,0x0,0x19,0x0,0x24,0x0,0x24,0x0, +0xf4,0xff,0x8,0x0,0x41,0x0,0x56,0x0,0x62,0x0,0x47,0x0, +0xc9,0xff,0x4a,0xff,0x63,0xff,0xe2,0xff,0x1f,0x0,0xea,0xff, +0x8c,0xff,0x47,0xff,0x27,0xff,0x36,0xff,0x90,0xff,0x12,0x0, +0x2e,0x0,0xb5,0xff,0x4f,0xff,0x65,0xff,0xa2,0xff,0xd0,0xff, +0xf1,0xff,0xdc,0xff,0xa3,0xff,0x86,0xff,0x75,0xff,0x89,0xff, +0xfb,0xff,0x63,0x0,0x3f,0x0,0xd4,0xff,0x9d,0xff,0xac,0xff, +0xed,0xff,0x4b,0x0,0x8b,0x0,0x73,0x0,0x10,0x0,0xa6,0xff, +0x75,0xff,0x99,0xff,0xee,0xff,0x1c,0x0,0x8,0x0,0xd3,0xff, +0x9f,0xff,0xa4,0xff,0xf5,0xff,0x4b,0x0,0x74,0x0,0x67,0x0, +0x10,0x0,0xbc,0xff,0xe0,0xff,0x49,0x0,0x7f,0x0,0x84,0x0, +0x70,0x0,0x17,0x0,0xba,0xff,0xdf,0xff,0x55,0x0,0x8c,0x0, +0x8c,0x0,0x86,0x0,0x5c,0x0,0x22,0x0,0x2e,0x0,0x7e,0x0, +0xac,0x0,0x82,0x0,0x33,0x0,0xf7,0xff,0xd8,0xff,0xec,0xff, +0x28,0x0,0x3c,0x0,0x11,0x0,0xcb,0xff,0x7a,0xff,0x4c,0xff, +0x78,0xff,0xc8,0xff,0xe0,0xff,0xcb,0xff,0xc2,0xff,0xad,0xff, +0x77,0xff,0x79,0xff,0xc6,0xff,0xd7,0xff,0x99,0xff,0x80,0xff, +0x7a,0xff,0x59,0xff,0x7d,0xff,0xea,0xff,0x17,0x0,0xf2,0xff, +0xd2,0xff,0xbd,0xff,0xab,0xff,0xc6,0xff,0x7,0x0,0x2a,0x0, +0x18,0x0,0xf2,0xff,0xd3,0xff,0xd6,0xff,0xf,0x0,0x53,0x0, +0x69,0x0,0x5f,0x0,0x4c,0x0,0x24,0x0,0x12,0x0,0x51,0x0, +0xa1,0x0,0xa6,0x0,0x79,0x0,0x52,0x0,0x2a,0x0,0xb,0x0, +0x1b,0x0,0x40,0x0,0x45,0x0,0x29,0x0,0xfe,0xff,0xd3,0xff, +0xc9,0xff,0xf1,0xff,0x11,0x0,0x8,0x0,0xf9,0xff,0xe2,0xff, +0xae,0xff,0x9e,0xff,0xd5,0xff,0x2,0x0,0xf3,0xff,0xc7,0xff, +0x9e,0xff,0x7d,0xff,0x6e,0xff,0x86,0xff,0xb1,0xff,0xb4,0xff, +0x91,0xff,0x7a,0xff,0x6f,0xff,0x61,0xff,0x66,0xff,0x7b,0xff, +0x7f,0xff,0x62,0xff,0x39,0xff,0x37,0xff,0x5f,0xff,0x7a,0xff, +0x82,0xff,0x99,0xff,0xa2,0xff,0x7c,0xff,0x57,0xff,0x64,0xff, +0x78,0xff,0x66,0xff,0x51,0xff,0x5c,0xff,0x61,0xff,0x57,0xff, +0x78,0xff,0xc2,0xff,0xf8,0xff,0x16,0x0,0x30,0x0,0x38,0x0, +0x38,0x0,0x57,0x0,0x91,0x0,0xb9,0x0,0xc8,0x0,0xdb,0x0, +0xe8,0x0,0xe5,0x0,0xf3,0x0,0x7,0x1,0xfc,0x0,0xec,0x0, +0xdf,0x0,0xcf,0x0,0xdf,0x0,0xfd,0x0,0x10,0x1,0x36,0x1, +0x4a,0x1,0x21,0x1,0xa,0x1,0x19,0x1,0x1,0x1,0xc5,0x0, +0x9f,0x0,0x84,0x0,0x50,0x0,0x1d,0x0,0x17,0x0,0x2d,0x0, +0x36,0x0,0x3c,0x0,0x57,0x0,0x7f,0x0,0x91,0x0,0x87,0x0, +0x83,0x0,0x87,0x0,0x6e,0x0,0x3a,0x0,0xf,0x0,0xfd,0xff, +0xf2,0xff,0xe2,0xff,0xec,0xff,0x9,0x0,0x4,0x0,0xeb,0xff, +0xe4,0xff,0xe1,0xff,0xcd,0xff,0xb2,0xff,0xa9,0xff,0xb2,0xff, +0xac,0xff,0x9c,0xff,0x9d,0xff,0xa2,0xff,0xa3,0xff,0x99,0xff, +0x7d,0xff,0x68,0xff,0x56,0xff,0x3f,0xff,0x50,0xff,0x7b,0xff, +0x8c,0xff,0x9e,0xff,0xcf,0xff,0xfc,0xff,0x1b,0x0,0x39,0x0, +0x52,0x0,0x5c,0x0,0x54,0x0,0x4c,0x0,0x57,0x0,0x64,0x0, +0x5a,0x0,0x59,0x0,0x82,0x0,0xb0,0x0,0xbc,0x0,0xc1,0x0, +0xda,0x0,0xf0,0x0,0xea,0x0,0xe0,0x0,0xe3,0x0,0xd8,0x0, +0xbc,0x0,0xb0,0x0,0xad,0x0,0x9a,0x0,0x84,0x0,0x7d,0x0, +0x7a,0x0,0x66,0x0,0x4a,0x0,0x47,0x0,0x63,0x0,0x67,0x0, +0x4e,0x0,0x54,0x0,0x62,0x0,0x45,0x0,0x28,0x0,0x29,0x0, +0x1f,0x0,0x6,0x0,0xee,0xff,0xe2,0xff,0xed,0xff,0xf6,0xff, +0xf2,0xff,0xf0,0xff,0xf1,0xff,0xf8,0xff,0x3,0x0,0x5,0x0, +0x7,0x0,0x9,0x0,0x0,0x0,0xf8,0xff,0xe9,0xff,0xcb,0xff, +0xc2,0xff,0xce,0xff,0xd8,0xff,0xdb,0xff,0xca,0xff,0xb0,0xff, +0xa9,0xff,0xb0,0xff,0xa0,0xff,0x80,0xff,0x7b,0xff,0x8a,0xff, +0x8b,0xff,0x92,0xff,0xab,0xff,0xb3,0xff,0x9c,0xff,0x78,0xff, +0x5d,0xff,0x4f,0xff,0x44,0xff,0x49,0xff,0x6d,0xff,0x9f,0xff, +0xcf,0xff,0xf9,0xff,0x26,0x0,0x4c,0x0,0x5c,0x0,0x69,0x0, +0x6f,0x0,0x4a,0x0,0x1f,0x0,0x11,0x0,0x8,0x0,0xc,0x0, +0x26,0x0,0x45,0x0,0x71,0x0,0x9f,0x0,0xc6,0x0,0xf7,0x0, +0x1a,0x1,0x1d,0x1,0xf,0x1,0xe4,0x0,0x9b,0x0,0x5a,0x0, +0x34,0x0,0x24,0x0,0x1a,0x0,0xc,0x0,0x3,0x0,0xfb,0xff, +0xfa,0xff,0xd,0x0,0x19,0x0,0x11,0x0,0x7,0x0,0xf7,0xff, +0xe1,0xff,0xce,0xff,0xb1,0xff,0x9a,0xff,0x90,0xff,0x7c,0xff, +0x6d,0xff,0x72,0xff,0x68,0xff,0x5c,0xff,0x6c,0xff,0x80,0xff, +0x92,0xff,0xa4,0xff,0xab,0xff,0xab,0xff,0xab,0xff,0xaa,0xff, +0xa5,0xff,0x8b,0xff,0x6e,0xff,0x5f,0xff,0x3a,0xff,0xa,0xff, +0xfc,0xfe,0x10,0xff,0x2b,0xff,0x3b,0xff,0x4d,0xff,0x6d,0xff, +0x76,0xff,0x62,0xff,0x63,0xff,0x77,0xff,0x68,0xff,0x31,0xff, +0xf,0xff,0x1f,0xff,0x33,0xff,0x3d,0xff,0x5f,0xff,0x89,0xff, +0x9b,0xff,0xae,0xff,0xce,0xff,0xe6,0xff,0xee,0xff,0xef,0xff, +0xfc,0xff,0x19,0x0,0x2c,0x0,0x36,0x0,0x52,0x0,0x73,0x0, +0x7e,0x0,0x8a,0x0,0x9a,0x0,0x8d,0x0,0x6d,0x0,0x5c,0x0, +0x55,0x0,0x4c,0x0,0x47,0x0,0x41,0x0,0x2a,0x0,0x5,0x0, +0xec,0xff,0xe1,0xff,0xd4,0xff,0xd1,0xff,0xda,0xff,0xdc,0xff, +0xd6,0xff,0xd0,0xff,0xcd,0xff,0xcb,0xff,0xbc,0xff,0x9f,0xff, +0x85,0xff,0x6c,0xff,0x50,0xff,0x34,0xff,0x24,0xff,0x24,0xff, +0x23,0xff,0x1d,0xff,0x29,0xff,0x3d,0xff,0x42,0xff,0x4a,0xff, +0x64,0xff,0x7a,0xff,0x86,0xff,0x95,0xff,0x9b,0xff,0x93,0xff, +0x90,0xff,0x8e,0xff,0x8b,0xff,0x97,0xff,0xa9,0xff,0xb3,0xff, +0xba,0xff,0xcc,0xff,0xdf,0xff,0xe0,0xff,0xe2,0xff,0xea,0xff, +0xd4,0xff,0xbd,0xff,0xdc,0xff,0x12,0x0,0x2c,0x0,0x28,0x0, +0x19,0x0,0x10,0x0,0x7,0x0,0xfd,0xff,0x7,0x0,0x18,0x0, +0x20,0x0,0x29,0x0,0x46,0x0,0x80,0x0,0xba,0x0,0xcc,0x0, +0xcd,0x0,0xd7,0x0,0xc8,0x0,0x95,0x0,0x6d,0x0,0x61,0x0, +0x4f,0x0,0x37,0x0,0x35,0x0,0x36,0x0,0x42,0x0,0x77,0x0, +0xae,0x0,0xc5,0x0,0xd2,0x0,0xd3,0x0,0xab,0x0,0x69,0x0, +0x3c,0x0,0x13,0x0,0xcc,0xff,0x9c,0xff,0x9c,0xff,0x95,0xff, +0x95,0xff,0xa3,0xff,0x99,0xff,0x98,0xff,0x9c,0xff,0x71,0xff, +0x4e,0xff,0x5c,0xff,0x69,0xff,0x78,0xff,0x9e,0xff,0xb4,0xff, +0xa2,0xff,0x8d,0xff,0x8e,0xff,0x89,0xff,0x6f,0xff,0x5b,0xff, +0x57,0xff,0x59,0xff,0x6c,0xff,0xa1,0xff,0xe3,0xff,0xe,0x0, +0x30,0x0,0x54,0x0,0x60,0x0,0x59,0x0,0x5a,0x0,0x60,0x0, +0x5f,0x0,0x4b,0x0,0x30,0x0,0x2c,0x0,0x3f,0x0,0x5c,0x0, +0x7b,0x0,0x8e,0x0,0x8a,0x0,0x73,0x0,0x73,0x0,0x95,0x0, +0x9d,0x0,0x83,0x0,0x8b,0x0,0xa8,0x0,0xa4,0x0,0x95,0x0, +0xa2,0x0,0xb4,0x0,0xb1,0x0,0xa5,0x0,0xa3,0x0,0xa3,0x0, +0x8e,0x0,0x63,0x0,0x46,0x0,0x39,0x0,0x17,0x0,0xf3,0xff, +0xeb,0xff,0xec,0xff,0xff,0xff,0x2b,0x0,0x3f,0x0,0x37,0x0, +0x2b,0x0,0x1c,0x0,0x9,0x0,0xe5,0xff,0xb6,0xff,0xa0,0xff, +0x9f,0xff,0x99,0xff,0x8d,0xff,0x8b,0xff,0x94,0xff,0x8c,0xff, +0x77,0xff,0x6a,0xff,0x50,0xff,0x2d,0xff,0x30,0xff,0x45,0xff, +0x4e,0xff,0x61,0xff,0x81,0xff,0x98,0xff,0xb3,0xff,0xe3,0xff, +0xb,0x0,0x8,0x0,0xf4,0xff,0xee,0xff,0xe1,0xff,0xbe,0xff, +0x9f,0xff,0xa1,0xff,0xb7,0xff,0xcf,0xff,0xfa,0xff,0x4a,0x0, +0x9b,0x0,0xcd,0x0,0xeb,0x0,0xb,0x1,0x11,0x1,0xda,0x0, +0x9d,0x0,0x8e,0x0,0x84,0x0,0x6b,0x0,0x75,0x0,0xa0,0x0, +0xb6,0x0,0xb9,0x0,0xda,0x0,0x3,0x1,0xf4,0x0,0xc6,0x0, +0xaf,0x0,0x8c,0x0,0x3a,0x0,0xe7,0xff,0xb5,0xff,0x9e,0xff, +0x99,0xff,0x90,0xff,0x87,0xff,0x97,0xff,0xac,0xff,0xaa,0xff, +0xa7,0xff,0x9d,0xff,0x6e,0xff,0x42,0xff,0x2d,0xff,0x10,0xff, +0x6,0xff,0x2c,0xff,0x56,0xff,0x6b,0xff,0x86,0xff,0xb6,0xff, +0xd6,0xff,0xcd,0xff,0xc0,0xff,0xce,0xff,0xd5,0xff,0xcc,0xff, +0xcd,0xff,0xdb,0xff,0xe7,0xff,0xf1,0xff,0xfa,0xff,0xfe,0xff, +0x9,0x0,0x21,0x0,0x30,0x0,0x30,0x0,0x3a,0x0,0x48,0x0, +0x4d,0x0,0x52,0x0,0x53,0x0,0x3c,0x0,0x21,0x0,0x23,0x0, +0x20,0x0,0x8,0x0,0xd,0x0,0x1d,0x0,0xa,0x0,0x12,0x0, +0x3e,0x0,0x41,0x0,0x36,0x0,0x45,0x0,0x3a,0x0,0x26,0x0, +0x30,0x0,0x1e,0x0,0xeb,0xff,0xdc,0xff,0xe9,0xff,0xe2,0xff, +0xde,0xff,0xf2,0xff,0xf2,0xff,0xdd,0xff,0xee,0xff,0x8,0x0, +0xe9,0xff,0xc1,0xff,0xad,0xff,0x77,0xff,0x45,0xff,0x4e,0xff, +0x51,0xff,0x3d,0xff,0x49,0xff,0x5b,0xff,0x58,0xff,0x67,0xff, +0x79,0xff,0x67,0xff,0x47,0xff,0x2e,0xff,0x11,0xff,0xff,0xfe, +0x17,0xff,0x3d,0xff,0x54,0xff,0x7f,0xff,0xb4,0xff,0xd0,0xff, +0xf1,0xff,0x1e,0x0,0x38,0x0,0x42,0x0,0x52,0x0,0x6f,0x0, +0x7c,0x0,0x7c,0x0,0xa4,0x0,0xd2,0x0,0xc9,0x0,0xca,0x0, +0xed,0x0,0xef,0x0,0xe8,0x0,0xfd,0x0,0xe,0x1,0x11,0x1, +0x11,0x1,0x4,0x1,0xe8,0x0,0xcd,0x0,0xc0,0x0,0xa9,0x0, +0x7e,0x0,0x58,0x0,0x2f,0x0,0x9,0x0,0xb,0x0,0x16,0x0, +0x14,0x0,0x30,0x0,0x4d,0x0,0x3b,0x0,0x35,0x0,0x53,0x0, +0x5a,0x0,0x43,0x0,0x2e,0x0,0x14,0x0,0xf0,0xff,0xcd,0xff, +0xaa,0xff,0x7e,0xff,0x59,0xff,0x4f,0xff,0x59,0xff,0x5b,0xff, +0x66,0xff,0x96,0xff,0xcd,0xff,0xe8,0xff,0xfa,0xff,0xc,0x0, +0x1,0x0,0xd8,0xff,0xb6,0xff,0x9f,0xff,0x8c,0xff,0x8b,0xff, +0x91,0xff,0x95,0xff,0xaf,0xff,0xcf,0xff,0xde,0xff,0xf1,0xff, +0x3,0x0,0x2,0x0,0x4,0x0,0xd,0x0,0x8,0x0,0xfc,0xff, +0xf2,0xff,0xda,0xff,0xb1,0xff,0x98,0xff,0x87,0xff,0x54,0xff, +0x25,0xff,0x35,0xff,0x5a,0xff,0x7b,0xff,0xc2,0xff,0x14,0x0, +0x3d,0x0,0x48,0x0,0x53,0x0,0x5e,0x0,0x42,0x0,0xf2,0xff, +0x9f,0xff,0x81,0xff,0x7a,0xff,0x5f,0xff,0x5d,0xff,0x8b,0xff, +0xa4,0xff,0x9f,0xff,0xae,0xff,0xc3,0xff,0xcf,0xff,0xd8,0xff, +0xd1,0xff,0xda,0xff,0xfa,0xff,0xf2,0xff,0xca,0xff,0xb3,0xff, +0x9e,0xff,0x7a,0xff,0x59,0xff,0x43,0xff,0x46,0xff,0x69,0xff, +0x9a,0xff,0xbf,0xff,0xe3,0xff,0x18,0x0,0x32,0x0,0x26,0x0, +0x36,0x0,0x50,0x0,0x45,0x0,0x4c,0x0,0x73,0x0,0x72,0x0, +0x5a,0x0,0x5d,0x0,0x60,0x0,0x58,0x0,0x5e,0x0,0x5d,0x0, +0x4f,0x0,0x5b,0x0,0x72,0x0,0x6d,0x0,0x67,0x0,0x6d,0x0, +0x61,0x0,0x54,0x0,0x63,0x0,0x63,0x0,0x4d,0x0,0x57,0x0, +0x6e,0x0,0x56,0x0,0x3d,0x0,0x45,0x0,0x25,0x0,0xe5,0xff, +0xd5,0xff,0xc7,0xff,0x88,0xff,0x69,0xff,0x77,0xff,0x79,0xff, +0x97,0xff,0xd6,0xff,0xe9,0xff,0xe9,0xff,0xc,0x0,0x18,0x0, +0xfa,0xff,0xe9,0xff,0xd5,0xff,0xae,0xff,0xa8,0xff,0xc7,0xff, +0xd8,0xff,0xeb,0xff,0x14,0x0,0x2c,0x0,0x2f,0x0,0x3f,0x0, +0x3d,0x0,0x12,0x0,0xf8,0xff,0x2,0x0,0xf0,0xff,0xca,0xff, +0xcd,0xff,0xde,0xff,0xd7,0xff,0xdd,0xff,0x0,0x0,0x1a,0x0, +0x1f,0x0,0x18,0x0,0x0,0x0,0xd5,0xff,0xb0,0xff,0x8c,0xff, +0x5a,0xff,0x38,0xff,0x3a,0xff,0x48,0xff,0x74,0xff,0xcb,0xff, +0xd,0x0,0x24,0x0,0x35,0x0,0x36,0x0,0xa,0x0,0xd6,0xff, +0xc3,0xff,0xb0,0xff,0x91,0xff,0x85,0xff,0x96,0xff,0xb3,0xff, +0xdb,0xff,0xb,0x0,0x37,0x0,0x57,0x0,0x5a,0x0,0x38,0x0, +0x4,0x0,0xda,0xff,0xb4,0xff,0x8b,0xff,0x77,0xff,0x71,0xff, +0x67,0xff,0x73,0xff,0x9d,0xff,0xb6,0xff,0xb3,0xff,0xb1,0xff, +0xb3,0xff,0xa1,0xff,0x89,0xff,0x99,0xff,0xc6,0xff,0xea,0xff, +0x5,0x0,0x1e,0x0,0x2b,0x0,0x30,0x0,0x29,0x0,0x1e,0x0, +0x11,0x0,0xf5,0xff,0xe3,0xff,0xeb,0xff,0xf1,0xff,0xe,0x0, +0x5f,0x0,0xb4,0x0,0xe6,0x0,0x7,0x1,0x24,0x1,0x25,0x1, +0xf5,0x0,0xaf,0x0,0x6b,0x0,0x1f,0x0,0xd3,0xff,0xa0,0xff, +0x90,0xff,0xac,0xff,0xe2,0xff,0xa,0x0,0x26,0x0,0x3e,0x0, +0x37,0x0,0x18,0x0,0xff,0xff,0xce,0xff,0x96,0xff,0x96,0xff, +0x9f,0xff,0x7e,0xff,0x83,0xff,0xbe,0xff,0xd3,0xff,0xc6,0xff, +0xc8,0xff,0xc7,0xff,0xb0,0xff,0x9d,0xff,0xac,0xff,0xc1,0xff, +0xcd,0xff,0xec,0xff,0x13,0x0,0x38,0x0,0x74,0x0,0x9a,0x0, +0x98,0x0,0x93,0x0,0x72,0x0,0x34,0x0,0x12,0x0,0xfc,0xff, +0xf3,0xff,0x19,0x0,0x48,0x0,0x70,0x0,0xa7,0x0,0xce,0x0, +0xcb,0x0,0xa9,0x0,0x69,0x0,0x1e,0x0,0xc9,0xff,0x65,0xff, +0x30,0xff,0x3b,0xff,0x47,0xff,0x6a,0xff,0xd0,0xff,0x35,0x0, +0x5f,0x0,0x74,0x0,0x92,0x0,0x91,0x0,0x57,0x0,0x14,0x0, +0xdd,0xff,0x99,0xff,0x5b,0xff,0x4c,0xff,0x69,0xff,0x9e,0xff, +0xd0,0xff,0xf1,0xff,0x24,0x0,0x6c,0x0,0x93,0x0,0x8d,0x0, +0x7b,0x0,0x63,0x0,0x36,0x0,0x5,0x0,0xe2,0xff,0xd1,0xff, +0xde,0xff,0xf1,0xff,0xdd,0xff,0xcc,0xff,0xdf,0xff,0xcf,0xff, +0x93,0xff,0x75,0xff,0x75,0xff,0x5c,0xff,0x38,0xff,0x44,0xff, +0x7b,0xff,0x9d,0xff,0xa8,0xff,0xbc,0xff,0xc6,0xff,0xac,0xff, +0x6d,0xff,0x2f,0xff,0x27,0xff,0x30,0xff,0x27,0xff,0x55,0xff, +0xc1,0xff,0x14,0x0,0x52,0x0,0xa3,0x0,0xd7,0x0,0xbd,0x0, +0x75,0x0,0x25,0x0,0xca,0xff,0x72,0xff,0x40,0xff,0x2f,0xff, +0x46,0xff,0x96,0xff,0xea,0xff,0x23,0x0,0x72,0x0,0xcb,0x0, +0xef,0x0,0xeb,0x0,0xe9,0x0,0xd0,0x0,0x83,0x0,0x2b,0x0, +0xf3,0xff,0xc9,0xff,0x9d,0xff,0x82,0xff,0x75,0xff,0x97,0xff, +0xfe,0xff,0x4c,0x0,0x62,0x0,0x9c,0x0,0xd1,0x0,0xb8,0x0, +0xac,0x0,0xc6,0x0,0xb8,0x0,0x96,0x0,0x97,0x0,0x95,0x0, +0x6c,0x0,0x45,0x0,0x34,0x0,0xff,0xff,0xbc,0xff,0xcb,0xff, +0xfb,0xff,0x15,0x0,0x53,0x0,0xa0,0x0,0xbc,0x0,0xcf,0x0, +0xe0,0x0,0xb5,0x0,0x66,0x0,0x26,0x0,0xe8,0xff,0xa6,0xff, +0x90,0xff,0x8e,0xff,0x6a,0xff,0x51,0xff,0x6d,0xff,0x86,0xff, +0x9c,0xff,0xe4,0xff,0x1d,0x0,0x5,0x0,0xef,0xff,0xfc,0xff, +0xcf,0xff,0x7d,0xff,0x5a,0xff,0x30,0xff,0xec,0xfe,0xf1,0xfe, +0x31,0xff,0x50,0xff,0x62,0xff,0x9d,0xff,0xd5,0xff,0xcd,0xff, +0xb9,0xff,0xc9,0xff,0xc9,0xff,0xb8,0xff,0xc8,0xff,0xde,0xff, +0xef,0xff,0xff,0xff,0xe7,0xff,0xc7,0xff,0xe7,0xff,0xe,0x0, +0xfc,0xff,0xf6,0xff,0x2c,0x0,0x3f,0x0,0xd,0x0,0x12,0x0, +0x4e,0x0,0x29,0x0,0xd8,0xff,0xe9,0xff,0xf9,0xff,0xba,0xff, +0xbd,0xff,0xfe,0xff,0xed,0xff,0xcf,0xff,0xf4,0xff,0x8,0x0, +0x19,0x0,0x50,0x0,0x5a,0x0,0x47,0x0,0x64,0x0,0x73,0x0, +0x44,0x0,0x29,0x0,0x33,0x0,0x6,0x0,0xcd,0xff,0xff,0xff, +0x32,0x0,0xf,0x0,0x3e,0x0,0xaa,0x0,0x96,0x0,0x85,0x0, +0xc6,0x0,0x8a,0x0,0xf9,0xff,0xd3,0xff,0xc7,0xff,0x93,0xff, +0x84,0xff,0x6f,0xff,0x4e,0xff,0x75,0xff,0xa0,0xff,0x9e,0xff, +0xc8,0xff,0xe1,0xff,0x8b,0xff,0x4d,0xff,0x76,0xff,0x78,0xff, +0x38,0xff,0x36,0xff,0x5c,0xff,0x4c,0xff,0x39,0xff,0x44,0xff, +0x47,0xff,0x54,0xff,0x51,0xff,0x2e,0xff,0x5d,0xff,0xb1,0xff, +0x87,0xff,0x69,0xff,0xe6,0xff,0x41,0x0,0x32,0x0,0x4a,0x0, +0x61,0x0,0x24,0x0,0xed,0xff,0xdc,0xff,0xc3,0xff,0xc6,0xff, +0xe9,0xff,0xda,0xff,0xd2,0xff,0x2b,0x0,0x6a,0x0,0x43,0x0, +0x53,0x0,0x90,0x0,0x55,0x0,0x9,0x0,0x33,0x0,0x35,0x0, +0xe4,0xff,0xe0,0xff,0x2,0x0,0xde,0xff,0xcd,0xff,0xef,0xff, +0xef,0xff,0xf5,0xff,0x39,0x0,0x56,0x0,0x4c,0x0,0x8b,0x0, +0xc7,0x0,0xa6,0x0,0xa9,0x0,0xe2,0x0,0xbe,0x0,0x72,0x0, +0x5b,0x0,0x23,0x0,0xc9,0xff,0xba,0xff,0xd2,0xff,0xd4,0xff, +0xfb,0xff,0x63,0x0,0xab,0x0,0xb6,0x0,0xdc,0x0,0xf7,0x0, +0x93,0x0,0x19,0x0,0xf1,0xff,0xa6,0xff,0x3a,0xff,0x45,0xff, +0x82,0xff,0x7f,0xff,0xa1,0xff,0x7,0x0,0x49,0x0,0x64,0x0, +0x69,0x0,0x4c,0x0,0x39,0x0,0x22,0x0,0xc8,0xff,0x81,0xff, +0xa4,0xff,0xb4,0xff,0x69,0xff,0x69,0xff,0xd4,0xff,0xe0,0xff, +0xa6,0xff,0xdc,0xff,0x27,0x0,0xa,0x0,0xf1,0xff,0x17,0x0, +0x2a,0x0,0xe,0x0,0xff,0xff,0x1e,0x0,0x43,0x0,0x48,0x0, +0x4d,0x0,0x69,0x0,0x7c,0x0,0x73,0x0,0x63,0x0,0x50,0x0, +0x36,0x0,0x1d,0x0,0xa,0x0,0x15,0x0,0x47,0x0,0x66,0x0, +0x73,0x0,0xa1,0x0,0xc5,0x0,0xc5,0x0,0xbd,0x0,0x92,0x0, +0x4e,0x0,0x31,0x0,0x26,0x0,0xd,0x0,0xd,0x0,0x32,0x0, +0x5f,0x0,0x88,0x0,0xb4,0x0,0xcf,0x0,0xc3,0x0,0xaa,0x0, +0x94,0x0,0x6c,0x0,0x31,0x0,0x9,0x0,0xfa,0xff,0xec,0xff, +0xf8,0xff,0x2e,0x0,0x4a,0x0,0x46,0x0,0x50,0x0,0x4a,0x0, +0x27,0x0,0x0,0x0,0xdf,0xff,0xbc,0xff,0x8d,0xff,0x7a,0xff, +0x92,0xff,0x8f,0xff,0x81,0xff,0xad,0xff,0xd6,0xff,0xc0,0xff, +0x9c,0xff,0x94,0xff,0x92,0xff,0x6f,0xff,0x49,0xff,0x54,0xff, +0x63,0xff,0x29,0xff,0xd2,0xfe,0xbe,0xfe,0xc3,0xfe,0x97,0xfe, +0x87,0xfe,0xc4,0xfe,0xf3,0xfe,0xef,0xfe,0xf8,0xfe,0x20,0xff, +0x32,0xff,0x11,0xff,0xec,0xfe,0xda,0xfe,0xa8,0xfe,0x5a,0xfe, +0x22,0xfe,0x1e,0xfe,0x3d,0xfe,0x56,0xfe,0x79,0xfe,0xb4,0xfe, +0xd6,0xfe,0xe3,0xfe,0x3,0xff,0x28,0xff,0x3c,0xff,0x30,0xff, +0xc,0xff,0xef,0xfe,0xda,0xfe,0xba,0xfe,0xa5,0xfe,0xbc,0xfe, +0xfb,0xfe,0x32,0xff,0x55,0xff,0x87,0xff,0xca,0xff,0xf8,0xff, +0xa,0x0,0x25,0x0,0x3e,0x0,0x2f,0x0,0x17,0x0,0x27,0x0, +0x4c,0x0,0x6a,0x0,0x71,0x0,0x75,0x0,0x96,0x0,0xaf,0x0, +0xb5,0x0,0xd0,0x0,0xf2,0x0,0x4,0x1,0x10,0x1,0x1a,0x1, +0x21,0x1,0x2b,0x1,0x3b,0x1,0x48,0x1,0x44,0x1,0x2e,0x1, +0xc,0x1,0xea,0x0,0xdb,0x0,0xd8,0x0,0xd2,0x0,0xc2,0x0, +0xa7,0x0,0x9f,0x0,0xab,0x0,0xb7,0x0,0xc5,0x0,0xc6,0x0, +0xb1,0x0,0x8b,0x0,0x58,0x0,0x2e,0x0,0x7,0x0,0xdb,0xff, +0xca,0xff,0xc6,0xff,0xbb,0xff,0xc3,0xff,0xd7,0xff,0xef,0xff, +0x6,0x0,0xff,0xff,0xe5,0xff,0xc2,0xff,0x9c,0xff,0x87,0xff, +0x79,0xff,0x6f,0xff,0x6a,0xff,0x61,0xff,0x6a,0xff,0x8b,0xff, +0xb0,0xff,0xd2,0xff,0xe5,0xff,0xe3,0xff,0xe3,0xff,0xdc,0xff, +0xc8,0xff,0xbe,0xff,0xc8,0xff,0xd6,0xff,0xd6,0xff,0xd7,0xff, +0xef,0xff,0x10,0x0,0x2f,0x0,0x53,0x0,0x78,0x0,0x90,0x0, +0x9a,0x0,0xa8,0x0,0xbc,0x0,0xc4,0x0,0xcf,0x0,0xe9,0x0, +0xf6,0x0,0xf7,0x0,0x1,0x1,0x12,0x1,0x2a,0x1,0x3f,0x1, +0x47,0x1,0x4b,0x1,0x49,0x1,0x40,0x1,0x42,0x1,0x53,0x1, +0x5f,0x1,0x5e,0x1,0x57,0x1,0x47,0x1,0x30,0x1,0x19,0x1, +0x3,0x1,0xef,0x0,0xd4,0x0,0xb3,0x0,0x94,0x0,0x7b,0x0, +0x72,0x0,0x7e,0x0,0x7c,0x0,0x6b,0x0,0x62,0x0,0x4b,0x0, +0x24,0x0,0x5,0x0,0xe2,0xff,0xbe,0xff,0xa1,0xff,0x82,0xff, +0x70,0xff,0x69,0xff,0x5f,0xff,0x6c,0xff,0x85,0xff,0x7f,0xff, +0x6c,0xff,0x60,0xff,0x53,0xff,0x3d,0xff,0x2e,0xff,0x30,0xff, +0x2e,0xff,0x1f,0xff,0x13,0xff,0x12,0xff,0x1d,0xff,0x2c,0xff, +0x36,0xff,0x41,0xff,0x47,0xff,0x46,0xff,0x4d,0xff,0x56,0xff, +0x59,0xff,0x58,0xff,0x58,0xff,0x61,0xff,0x63,0xff,0x5e,0xff, +0x72,0xff,0x89,0xff,0x90,0xff,0xa0,0xff,0xab,0xff,0xa9,0xff, +0xb5,0xff,0xc8,0xff,0xdf,0xff,0xfe,0xff,0x13,0x0,0x1f,0x0, +0x25,0x0,0x26,0x0,0x36,0x0,0x4e,0x0,0x56,0x0,0x53,0x0, +0x52,0x0,0x52,0x0,0x55,0x0,0x5d,0x0,0x6e,0x0,0x7b,0x0, +0x7c,0x0,0x7e,0x0,0x7e,0x0,0x76,0x0,0x71,0x0,0x69,0x0, +0x5a,0x0,0x44,0x0,0x2b,0x0,0x19,0x0,0x12,0x0,0xa,0x0, +0x6,0x0,0x0,0x0,0xf2,0xff,0xe2,0xff,0xd5,0xff,0xcc,0xff, +0xc1,0xff,0xb3,0xff,0xab,0xff,0xa0,0xff,0x89,0xff,0x7f,0xff, +0x7f,0xff,0x78,0xff,0x77,0xff,0x79,0xff,0x72,0xff,0x65,0xff, +0x54,0xff,0x4d,0xff,0x55,0xff,0x5c,0xff,0x5c,0xff,0x59,0xff, +0x57,0xff,0x5f,0xff,0x68,0xff,0x6b,0xff,0x70,0xff,0x6f,0xff, +0x68,0xff,0x63,0xff,0x64,0xff,0x67,0xff,0x6f,0xff,0x82,0xff, +0x94,0xff,0x98,0xff,0xa3,0xff,0xb9,0xff,0xc7,0xff,0xd2,0xff, +0xe5,0xff,0xf4,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0x5,0x0, +0xe,0x0,0x15,0x0,0x23,0x0,0x2f,0x0,0x37,0x0,0x3c,0x0, +0x47,0x0,0x61,0x0,0x7b,0x0,0x8b,0x0,0x9a,0x0,0xa2,0x0, +0xa5,0x0,0xad,0x0,0xb6,0x0,0xbb,0x0,0xb5,0x0,0xad,0x0, +0xb1,0x0,0xb1,0x0,0xab,0x0,0xb4,0x0,0xbb,0x0,0xb7,0x0, +0xb5,0x0,0xb1,0x0,0xaa,0x0,0xa2,0x0,0x98,0x0,0x92,0x0, +0x8b,0x0,0x7d,0x0,0x6f,0x0,0x5e,0x0,0x50,0x0,0x49,0x0, +0x3f,0x0,0x31,0x0,0x25,0x0,0x1f,0x0,0x1a,0x0,0x15,0x0, +0x15,0x0,0x11,0x0,0x2,0x0,0xf4,0xff,0xe3,0xff,0xde,0xff, +0xe9,0xff,0xe9,0xff,0xe6,0xff,0xeb,0xff,0xdd,0xff,0xce,0xff, +0xcf,0xff,0xce,0xff,0xd2,0xff,0xdb,0xff,0xd2,0xff,0xc2,0xff, +0xbb,0xff,0xb3,0xff,0xb6,0xff,0xce,0xff,0xe0,0xff,0xe1,0xff, +0xee,0xff,0x1,0x0,0x2,0x0,0x4,0x0,0xc,0x0,0xe,0x0, +0x19,0x0,0x2a,0x0,0x35,0x0,0x3a,0x0,0x3d,0x0,0x43,0x0, +0x47,0x0,0x48,0x0,0x4c,0x0,0x4f,0x0,0x50,0x0,0x58,0x0, +0x6a,0x0,0x7e,0x0,0x85,0x0,0x83,0x0,0x88,0x0,0x8e,0x0, +0x90,0x0,0x8e,0x0,0x86,0x0,0x85,0x0,0x8a,0x0,0x8e,0x0, +0x8f,0x0,0x8f,0x0,0x93,0x0,0x9b,0x0,0x9a,0x0,0x91,0x0, +0x81,0x0,0x6f,0x0,0x68,0x0,0x60,0x0,0x48,0x0,0x2c,0x0, +0x13,0x0,0xfc,0xff,0xea,0xff,0xe4,0xff,0xe6,0xff,0xd8,0xff, +0xc3,0xff,0xb9,0xff,0xb2,0xff,0xad,0xff,0xa6,0xff,0x94,0xff, +0x81,0xff,0x71,0xff,0x5f,0xff,0x59,0xff,0x55,0xff,0x4a,0xff, +0x3f,0xff,0x2d,0xff,0x14,0xff,0x0,0xff,0xf1,0xfe,0xe9,0xfe, +0xe3,0xfe,0xd6,0xfe,0xcb,0xfe,0xcd,0xfe,0xa9,0xfe,0x25,0xfe, +0x77,0xfd,0x5,0xfd,0xdf,0xfc,0xed,0xfc,0x10,0xfd,0x1f,0xfd, +0x4,0xfd,0xc8,0xfc,0xc5,0xfc,0x3e,0xfd,0xca,0xfd,0xb,0xfe, +0x23,0xfe,0xf7,0xfd,0x77,0xfd,0x12,0xfd,0x28,0xfd,0x94,0xfd, +0xe1,0xfd,0xdb,0xfd,0xb8,0xfd,0xa1,0xfd,0xb8,0xfd,0x52,0xfe, +0x4d,0xff,0xfb,0xff,0xe9,0xff,0x64,0xff,0x10,0xff,0x19,0xff, +0x5c,0xff,0xbb,0xff,0xf6,0xff,0xdf,0xff,0xa5,0xff,0x90,0xff, +0xbc,0xff,0xb,0x0,0x65,0x0,0xc4,0x0,0xf0,0x0,0xc4,0x0, +0x87,0x0,0x7a,0x0,0xb4,0x0,0x16,0x1,0x52,0x1,0x3b,0x1, +0xed,0x0,0xaa,0x0,0xa4,0x0,0xe0,0x0,0x3d,0x1,0x7c,0x1, +0x6d,0x1,0x3a,0x1,0x19,0x1,0x1a,0x1,0x3f,0x1,0x87,0x1, +0xd3,0x1,0xdb,0x1,0x7e,0x1,0x4,0x1,0xb7,0x0,0xb4,0x0, +0xe6,0x0,0xff,0x0,0xc3,0x0,0x40,0x0,0xd6,0xff,0xf6,0xff, +0x74,0x0,0xc4,0x0,0xc5,0x0,0x88,0x0,0x1f,0x0,0xc8,0xff, +0xac,0xff,0xc4,0xff,0xe1,0xff,0xcd,0xff,0x9a,0xff,0x6b,0xff, +0x52,0xff,0x6e,0xff,0xc4,0xff,0x1c,0x0,0x45,0x0,0x33,0x0, +0x13,0x0,0xf,0x0,0x32,0x0,0x77,0x0,0xa8,0x0,0xa8,0x0, +0x9d,0x0,0xa0,0x0,0xbd,0x0,0xfc,0x0,0x49,0x1,0x90,0x1, +0xca,0x1,0xe7,0x1,0xe3,0x1,0xd2,0x1,0xd3,0x1,0x0,0x2, +0x45,0x2,0x67,0x2,0x4b,0x2,0x13,0x2,0xf4,0x1,0xb,0x2, +0x40,0x2,0x67,0x2,0x5e,0x2,0x20,0x2,0xd4,0x1,0xb0,0x1, +0xc2,0x1,0xf6,0x1,0x1f,0x2,0xa,0x2,0xcd,0x1,0xa1,0x1, +0x8e,0x1,0x92,0x1,0x9d,0x1,0x85,0x1,0x40,0x1,0xeb,0x0, +0xab,0x0,0x94,0x0,0x9b,0x0,0xae,0x0,0xb4,0x0,0x98,0x0, +0x6c,0x0,0x49,0x0,0x35,0x0,0x2e,0x0,0x2d,0x0,0x30,0x0, +0x24,0x0,0xf0,0xff,0xb9,0xff,0xaf,0xff,0xb5,0xff,0xac,0xff, +0xa1,0xff,0x93,0xff,0x6e,0xff,0x3e,0xff,0x3a,0xff,0x66,0xff, +0x7e,0xff,0x72,0xff,0x6c,0xff,0x65,0xff,0x42,0xff,0x2c,0xff, +0x4f,0xff,0x80,0xff,0x7f,0xff,0x5a,0xff,0x51,0xff,0x5f,0xff, +0x68,0xff,0x8d,0xff,0xbd,0xff,0xab,0xff,0x76,0xff,0x67,0xff, +0x69,0xff,0x67,0xff,0x7a,0xff,0x86,0xff,0x68,0xff,0x53,0xff, +0x7c,0xff,0xa8,0xff,0xac,0xff,0xc9,0xff,0x0,0x0,0x8,0x0, +0xfb,0xff,0x7,0x0,0xb,0x0,0xf6,0xff,0xe5,0xff,0xd8,0xff, +0xb9,0xff,0x8b,0xff,0x69,0xff,0x5b,0xff,0x57,0xff,0x5e,0xff, +0x72,0xff,0x87,0xff,0x80,0xff,0x4a,0xff,0x1c,0xff,0x31,0xff, +0x50,0xff,0x3a,0xff,0x23,0xff,0x31,0xff,0x23,0xff,0xf8,0xfe, +0x13,0xff,0x4b,0xff,0x2c,0xff,0xfe,0xfe,0x10,0xff,0x10,0xff, +0xf9,0xfe,0x1e,0xff,0x53,0xff,0x54,0xff,0x4b,0xff,0x67,0xff, +0x91,0xff,0x97,0xff,0x80,0xff,0x88,0xff,0xae,0xff,0xaa,0xff, +0x65,0xff,0x35,0xff,0x48,0xff,0x4f,0xff,0x26,0xff,0x1c,0xff, +0x42,0xff,0x51,0xff,0x4d,0xff,0x6b,0xff,0x78,0xff,0x47,0xff, +0x28,0xff,0x3f,0xff,0x46,0xff,0x33,0xff,0x2d,0xff,0x37,0xff, +0x45,0xff,0x4c,0xff,0x50,0xff,0x50,0xff,0x3b,0xff,0x32,0xff, +0x59,0xff,0x84,0xff,0x90,0xff,0x8e,0xff,0x89,0xff,0x90,0xff, +0xaa,0xff,0xc4,0xff,0xcc,0xff,0xbb,0xff,0xa2,0xff,0x9f,0xff, +0xb0,0xff,0xb3,0xff,0x98,0xff,0x87,0xff,0xa0,0xff,0xb5,0xff, +0xa8,0xff,0xb5,0xff,0xfb,0xff,0x2f,0x0,0x1b,0x0,0xf6,0xff, +0xf6,0xff,0xeb,0xff,0xbd,0xff,0xa0,0xff,0xa0,0xff,0xa6,0xff, +0xb5,0xff,0xcf,0xff,0xf0,0xff,0xb,0x0,0x13,0x0,0x14,0x0, +0x27,0x0,0x44,0x0,0x4c,0x0,0x31,0x0,0x19,0x0,0x17,0x0, +0x1b,0x0,0x25,0x0,0x2e,0x0,0x2d,0x0,0x37,0x0,0x4e,0x0, +0x5f,0x0,0x6a,0x0,0x72,0x0,0x74,0x0,0x69,0x0,0x56,0x0, +0x4c,0x0,0x40,0x0,0x27,0x0,0x1d,0x0,0x2a,0x0,0x34,0x0, +0x28,0x0,0x14,0x0,0xd,0x0,0x3,0x0,0xe5,0xff,0xce,0xff, +0xca,0xff,0xcd,0xff,0xcb,0xff,0xcb,0xff,0xe2,0xff,0xfe,0xff, +0x3,0x0,0x15,0x0,0x38,0x0,0x2a,0x0,0xf4,0xff,0xe4,0xff, +0xfc,0xff,0xf5,0xff,0xd7,0xff,0xf2,0xff,0x28,0x0,0x2b,0x0, +0x36,0x0,0x73,0x0,0x8c,0x0,0x71,0x0,0x68,0x0,0x72,0x0, +0x57,0x0,0x2d,0x0,0x2f,0x0,0x3d,0x0,0x1f,0x0,0x16,0x0, +0x50,0x0,0x77,0x0,0x55,0x0,0x36,0x0,0x49,0x0,0x50,0x0, +0x1b,0x0,0xeb,0xff,0xf7,0xff,0xfc,0xff,0xc7,0xff,0xab,0xff, +0xe1,0xff,0x0,0x0,0xce,0xff,0xc0,0xff,0xe,0x0,0x37,0x0, +0xa,0x0,0x6,0x0,0x41,0x0,0x36,0x0,0xf0,0xff,0xf7,0xff, +0x2f,0x0,0x1c,0x0,0xdd,0xff,0xde,0xff,0x10,0x0,0x15,0x0, +0xea,0xff,0xe9,0xff,0x18,0x0,0x17,0x0,0xd8,0xff,0xc1,0xff, +0xe9,0xff,0xf7,0xff,0xcd,0xff,0xa5,0xff,0x97,0xff,0x8c,0xff, +0x7c,0xff,0x7d,0xff,0x9c,0xff,0xac,0xff,0x96,0xff,0x95,0xff, +0xb7,0xff,0xcb,0xff,0xc7,0xff,0xb7,0xff,0xb7,0xff,0xd5,0xff, +0xdb,0xff,0xbd,0xff,0xc8,0xff,0xf4,0xff,0xf4,0xff,0xe4,0xff, +0x5,0x0,0x18,0x0,0xdb,0xff,0xaf,0xff,0xe6,0xff,0x17,0x0, +0xf0,0xff,0xdc,0xff,0x13,0x0,0x35,0x0,0x26,0x0,0x2b,0x0, +0x44,0x0,0x42,0x0,0xd,0x0,0xc9,0xff,0xc2,0xff,0xd8,0xff, +0xb2,0xff,0xa1,0xff,0xeb,0xff,0x15,0x0,0xeb,0xff,0xe8,0xff, +0x29,0x0,0x3a,0x0,0xa,0x0,0xf7,0xff,0x5,0x0,0xec,0xff, +0xba,0xff,0xb4,0xff,0xce,0xff,0xca,0xff,0xb7,0xff,0xcb,0xff, +0xf5,0xff,0xc,0x0,0x16,0x0,0x23,0x0,0x39,0x0,0x3a,0x0, +0x1,0x0,0xd0,0xff,0xd8,0xff,0xdd,0xff,0xc6,0xff,0xc0,0xff, +0xd8,0xff,0xf4,0xff,0xef,0xff,0xdb,0xff,0xed,0xff,0x8,0x0, +0xf0,0xff,0xc7,0xff,0xc9,0xff,0xd9,0xff,0xc7,0xff,0xbd,0xff, +0xeb,0xff,0x1a,0x0,0x15,0x0,0xc,0x0,0x2e,0x0,0x4a,0x0, +0x3b,0x0,0x2f,0x0,0x2f,0x0,0x1b,0x0,0xc,0x0,0x22,0x0, +0x3d,0x0,0x49,0x0,0x50,0x0,0x64,0x0,0x8a,0x0,0x9d,0x0, +0x8b,0x0,0x6c,0x0,0x53,0x0,0x44,0x0,0x42,0x0,0x35,0x0, +0x1a,0x0,0x15,0x0,0x29,0x0,0x32,0x0,0x37,0x0,0x54,0x0, +0x6c,0x0,0x62,0x0,0x51,0x0,0x4a,0x0,0x3d,0x0,0x22,0x0, +0x6,0x0,0xf0,0xff,0xe2,0xff,0xdc,0xff,0xdf,0xff,0xeb,0xff, +0x9,0x0,0x2c,0x0,0x30,0x0,0x16,0x0,0xe,0x0,0x1d,0x0, +0x15,0x0,0xf8,0xff,0xe7,0xff,0xe0,0xff,0xd7,0xff,0xdb,0xff, +0xed,0xff,0xfc,0xff,0xfa,0xff,0xfe,0xff,0x21,0x0,0x3b,0x0, +0x23,0x0,0xff,0xff,0xf3,0xff,0xed,0xff,0xdc,0xff,0xc5,0xff, +0xbb,0xff,0xb8,0xff,0xb4,0xff,0xcd,0xff,0x1,0x0,0x17,0x0, +0xb,0x0,0xa,0x0,0x17,0x0,0x11,0x0,0x1,0x0,0xf,0x0, +0x26,0x0,0x24,0x0,0x23,0x0,0x35,0x0,0x3e,0x0,0x3d,0x0, +0x59,0x0,0x86,0x0,0x8e,0x0,0x74,0x0,0x6a,0x0,0x6f,0x0, +0x72,0x0,0x79,0x0,0x6f,0x0,0x4e,0x0,0x35,0x0,0x35,0x0, +0x45,0x0,0x51,0x0,0x45,0x0,0x36,0x0,0x3a,0x0,0x38,0x0, +0x30,0x0,0x33,0x0,0x23,0x0,0xfa,0xff,0xf4,0xff,0x8,0x0, +0xed,0xff,0xb3,0xff,0x9f,0xff,0xa8,0xff,0x97,0xff,0x77,0xff, +0x7e,0xff,0x93,0xff,0x87,0xff,0x81,0xff,0xa4,0xff,0xcb,0xff, +0xd0,0xff,0xc1,0xff,0xc6,0xff,0xe4,0xff,0xe3,0xff,0xc5,0xff, +0xcc,0xff,0xe4,0xff,0xdf,0xff,0xdc,0xff,0xef,0xff,0xff,0xff, +0x5,0x0,0x13,0x0,0x2e,0x0,0x44,0x0,0x37,0x0,0x24,0x0, +0x3b,0x0,0x56,0x0,0x36,0x0,0x10,0x0,0x1f,0x0,0x24,0x0, +0xf9,0xff,0xe4,0xff,0x4,0x0,0x1a,0x0,0xe,0x0,0x13,0x0, +0x3f,0x0,0x5b,0x0,0x53,0x0,0x5a,0x0,0x74,0x0,0x72,0x0, +0x63,0x0,0x5d,0x0,0x4f,0x0,0x42,0x0,0x30,0x0,0x16,0x0, +0x15,0x0,0x21,0x0,0x19,0x0,0x1b,0x0,0x35,0x0,0x49,0x0, +0x49,0x0,0x47,0x0,0x53,0x0,0x52,0x0,0x2a,0x0,0x6,0x0, +0xfd,0xff,0xef,0xff,0xd7,0xff,0xbe,0xff,0xaf,0xff,0xb4,0xff, +0xb8,0xff,0xab,0xff,0xa3,0xff,0xa8,0xff,0x9a,0xff,0x82,0xff, +0x8b,0xff,0x95,0xff,0x8c,0xff,0x9f,0xff,0xb5,0xff,0xa5,0xff, +0x9b,0xff,0x99,0xff,0x80,0xff,0x69,0xff,0x65,0xff,0x6e,0xff, +0x7d,0xff,0x87,0xff,0x9d,0xff,0xc5,0xff,0xe7,0xff,0xf7,0xff, +0xfc,0xff,0xfa,0xff,0xec,0xff,0xd9,0xff,0xd8,0xff,0xe4,0xff, +0xe6,0xff,0xda,0xff,0xd5,0xff,0xec,0xff,0xfd,0xff,0xed,0xff, +0xea,0xff,0xf7,0xff,0xed,0xff,0xdd,0xff,0xdc,0xff,0xe6,0xff, +0xe9,0xff,0xd7,0xff,0xce,0xff,0xd5,0xff,0xd1,0xff,0xcc,0xff, +0xd2,0xff,0xd6,0xff,0xdf,0xff,0xe6,0xff,0xda,0xff,0xd3,0xff, +0xdc,0xff,0xdd,0xff,0xd0,0xff,0xca,0xff,0xcb,0xff,0xc1,0xff, +0xba,0xff,0xbb,0xff,0xb5,0xff,0xac,0xff,0xab,0xff,0xb3,0xff, +0xb9,0xff,0xae,0xff,0xa5,0xff,0xa3,0xff,0x91,0xff,0x81,0xff, +0x80,0xff,0x6a,0xff,0x4a,0xff,0x4a,0xff,0x64,0xff,0x77,0xff, +0x82,0xff,0x9b,0xff,0xbc,0xff,0xc3,0xff,0xab,0xff,0x99,0xff, +0xa1,0xff,0x9a,0xff,0x72,0xff,0x63,0xff,0x83,0xff,0x9b,0xff, +0x9c,0xff,0xb5,0xff,0xee,0xff,0x9,0x0,0xfb,0xff,0x6,0x0, +0x28,0x0,0x23,0x0,0x8,0x0,0x6,0x0,0x15,0x0,0x23,0x0, +0x31,0x0,0x47,0x0,0x5d,0x0,0x5f,0x0,0x58,0x0,0x68,0x0, +0x75,0x0,0x53,0x0,0x26,0x0,0x2e,0x0,0x48,0x0,0x46,0x0, +0x4d,0x0,0x80,0x0,0x9f,0x0,0x8c,0x0,0x86,0x0,0x91,0x0, +0x6f,0x0,0x3b,0x0,0x2c,0x0,0x1f,0x0,0x7,0x0,0x8,0x0, +0x19,0x0,0x2c,0x0,0x44,0x0,0x5b,0x0,0x64,0x0,0x5c,0x0, +0x57,0x0,0x52,0x0,0x3b,0x0,0x18,0x0,0xf2,0xff,0xcf,0xff, +0xb2,0xff,0x94,0xff,0x88,0xff,0x91,0xff,0x9a,0xff,0xb1,0xff, +0xe1,0xff,0x6,0x0,0x15,0x0,0x13,0x0,0x6,0x0,0xec,0xff, +0xbe,0xff,0x92,0xff,0x6c,0xff,0x45,0xff,0x3d,0xff,0x4d,0xff, +0x51,0xff,0x62,0xff,0x93,0xff,0xc0,0xff,0xd5,0xff,0xe3,0xff, +0x0,0x0,0x19,0x0,0x19,0x0,0x13,0x0,0x19,0x0,0x16,0x0, +0x2,0x0,0xe5,0xff,0xd6,0xff,0xd7,0xff,0xd5,0xff,0xcf,0xff, +0xdb,0xff,0x0,0x0,0x2c,0x0,0x4d,0x0,0x75,0x0,0xa3,0x0, +0xbf,0x0,0xc7,0x0,0xb7,0x0,0x94,0x0,0x78,0x0,0x54,0x0, +0x1e,0x0,0x2,0x0,0x9,0x0,0x9,0x0,0xb,0x0,0x33,0x0, +0x62,0x0,0x77,0x0,0x8f,0x0,0xa6,0x0,0x9d,0x0,0x86,0x0, +0x68,0x0,0x40,0x0,0x1f,0x0,0xff,0xff,0xe2,0xff,0xdc,0xff, +0xdf,0xff,0xe3,0xff,0xf8,0xff,0x17,0x0,0x24,0x0,0x1c,0x0, +0x1d,0x0,0x1d,0x0,0xff,0xff,0xe3,0xff,0xeb,0xff,0xe6,0xff, +0xc8,0xff,0xcd,0xff,0xf3,0xff,0x4,0x0,0xa,0x0,0x24,0x0, +0x38,0x0,0x34,0x0,0x29,0x0,0x24,0x0,0x22,0x0,0x16,0x0, +0x5,0x0,0x5,0x0,0xe,0x0,0xc,0x0,0x11,0x0,0x19,0x0, +0xd,0x0,0xf8,0xff,0xe2,0xff,0xc7,0xff,0xb0,0xff,0x9e,0xff, +0x8e,0xff,0x9a,0xff,0xc6,0xff,0xee,0xff,0x18,0x0,0x4d,0x0, +0x76,0x0,0x7e,0x0,0x6c,0x0,0x50,0x0,0x35,0x0,0xff,0xff, +0xb8,0xff,0x9d,0xff,0xb5,0xff,0xcb,0xff,0xe8,0xff,0x26,0x0, +0x63,0x0,0x7f,0x0,0x94,0x0,0xa9,0x0,0x97,0x0,0x5c,0x0, +0x26,0x0,0xfd,0xff,0xce,0xff,0xae,0xff,0xb9,0xff,0xde,0xff, +0xfe,0xff,0x2a,0x0,0x60,0x0,0x79,0x0,0x6d,0x0,0x53,0x0, +0x3a,0x0,0x1b,0x0,0xe5,0xff,0xb6,0xff,0xab,0xff,0xa7,0xff, +0xae,0xff,0xd3,0xff,0xf4,0xff,0xfd,0xff,0xf5,0xff,0xe5,0xff, +0xde,0xff,0xdc,0xff,0xd6,0xff,0xda,0xff,0xee,0xff,0xf5,0xff, +0xdf,0xff,0xd1,0xff,0xdd,0xff,0xd9,0xff,0xc0,0xff,0xae,0xff, +0x97,0xff,0x74,0xff,0x62,0xff,0x68,0xff,0x6c,0xff,0x61,0xff, +0x59,0xff,0x62,0xff,0x70,0xff,0x7e,0xff,0x89,0xff,0x90,0xff, +0x8d,0xff,0x6e,0xff,0x3e,0xff,0x29,0xff,0x26,0xff,0x12,0xff, +0x2,0xff,0x16,0xff,0x31,0xff,0x38,0xff,0x44,0xff,0x69,0xff, +0x89,0xff,0xa0,0xff,0xb4,0xff,0xbe,0xff,0xc3,0xff,0xcc,0xff, +0xd0,0xff,0xd3,0xff,0xe0,0xff,0xf0,0xff,0xef,0xff,0xf2,0xff, +0xa,0x0,0x23,0x0,0x47,0x0,0x72,0x0,0x81,0x0,0x7f,0x0, +0x80,0x0,0x73,0x0,0x69,0x0,0x71,0x0,0x6f,0x0,0x4f,0x0, +0x2f,0x0,0x3a,0x0,0x50,0x0,0x4a,0x0,0x4c,0x0,0x5e,0x0, +0x56,0x0,0x45,0x0,0x46,0x0,0x51,0x0,0x55,0x0,0x44,0x0, +0x28,0x0,0x17,0x0,0x7,0x0,0xec,0xff,0xd3,0xff,0xd4,0xff, +0xe9,0xff,0xfc,0xff,0x2,0x0,0x7,0x0,0x15,0x0,0x29,0x0, +0x2e,0x0,0x1c,0x0,0xfb,0xff,0xd7,0xff,0xb9,0xff,0xa1,0xff, +0x97,0xff,0x9a,0xff,0x8d,0xff,0x7d,0xff,0x86,0xff,0x96,0xff, +0x9f,0xff,0xa4,0xff,0xa9,0xff,0xb3,0xff,0xb3,0xff,0x9b,0xff, +0x86,0xff,0x81,0xff,0x76,0xff,0x67,0xff,0x78,0xff,0xa4,0xff, +0xbc,0xff,0xd3,0xff,0xc,0x0,0x4b,0x0,0x69,0x0,0x6c,0x0, +0x68,0x0,0x68,0x0,0x61,0x0,0x4c,0x0,0x32,0x0,0x31,0x0, +0x4f,0x0,0x65,0x0,0x76,0x0,0xa5,0x0,0xc6,0x0,0xc6,0x0, +0xc9,0x0,0xba,0x0,0x95,0x0,0x82,0x0,0x5c,0x0,0x29,0x0, +0x3c,0x0,0x73,0x0,0x67,0x0,0x48,0x0,0x66,0x0,0x7c,0x0, +0x4d,0x0,0x2f,0x0,0x44,0x0,0x3d,0x0,0x18,0x0,0x23,0x0, +0x53,0x0,0x66,0x0,0x64,0x0,0x6a,0x0,0x62,0x0,0x4a,0x0, +0x2f,0x0,0x5,0x0,0xdf,0xff,0xce,0xff,0xba,0xff,0xaf,0xff, +0xc9,0xff,0xed,0xff,0x0,0x0,0x8,0x0,0xf,0x0,0x12,0x0, +0xa,0x0,0xf4,0xff,0xcf,0xff,0xa8,0xff,0xa1,0xff,0xb5,0xff, +0xc6,0xff,0xe7,0xff,0x24,0x0,0x43,0x0,0x34,0x0,0x3b,0x0, +0x4a,0x0,0x1a,0x0,0xe1,0xff,0xd9,0xff,0xc9,0xff,0xac,0xff, +0xb2,0xff,0xd3,0xff,0xfc,0xff,0x23,0x0,0x36,0x0,0x47,0x0, +0x62,0x0,0x66,0x0,0x49,0x0,0x30,0x0,0x1c,0x0,0xef,0xff, +0xbe,0xff,0xb3,0xff,0xb1,0xff,0x96,0xff,0x89,0xff,0xa7,0xff, +0xca,0xff,0xde,0xff,0xfe,0xff,0x12,0x0,0x2,0x0,0x0,0x0, +0x14,0x0,0xc,0x0,0xef,0xff,0xd7,0xff,0xb4,0xff,0x8a,0xff, +0x7a,0xff,0x84,0xff,0x7b,0xff,0x66,0xff,0x81,0xff,0xb5,0xff, +0xcc,0xff,0xe7,0xff,0xa,0x0,0x13,0x0,0xe,0x0,0xf5,0xff, +0xbb,0xff,0x9d,0xff,0xa1,0xff,0x83,0xff,0x6b,0xff,0xa1,0xff, +0xd0,0xff,0xba,0xff,0xd3,0xff,0x29,0x0,0x31,0x0,0xfd,0xff, +0x7,0x0,0x1b,0x0,0xef,0xff,0xd4,0xff,0xe1,0xff,0xcb,0xff, +0xb2,0xff,0xcc,0xff,0xe3,0xff,0xe5,0xff,0xf5,0xff,0x7,0x0, +0x22,0x0,0x59,0x0,0x73,0x0,0x5f,0x0,0x60,0x0,0x62,0x0, +0x31,0x0,0x16,0x0,0x28,0x0,0xf9,0xff,0xa8,0xff,0xb2,0xff, +0xd3,0xff,0xaf,0xff,0xab,0xff,0xe8,0xff,0xf0,0xff,0xd6,0xff, +0x1,0x0,0x2d,0x0,0x10,0x0,0xfe,0xff,0x6,0x0,0xe2,0xff, +0xb3,0xff,0x9c,0xff,0x7f,0xff,0x75,0xff,0x88,0xff,0x89,0xff, +0x8f,0xff,0xb3,0xff,0xc8,0xff,0xcf,0xff,0xec,0xff,0xf4,0xff, +0xd2,0xff,0xc0,0xff,0xc4,0xff,0xb7,0xff,0xa9,0xff,0xb1,0xff, +0xb9,0xff,0xb9,0xff,0xcb,0xff,0xea,0xff,0xfe,0xff,0x17,0x0, +0x33,0x0,0x3f,0x0,0x4f,0x0,0x55,0x0,0x2e,0x0,0x11,0x0, +0x17,0x0,0xfc,0xff,0xcd,0xff,0xce,0xff,0xdc,0xff,0xd8,0xff, +0xf0,0xff,0x20,0x0,0x36,0x0,0x44,0x0,0x5d,0x0,0x60,0x0, +0x60,0x0,0x6d,0x0,0x56,0x0,0x31,0x0,0x2a,0x0,0x14,0x0, +0xef,0xff,0xfe,0xff,0x2c,0x0,0x38,0x0,0x3e,0x0,0x68,0x0, +0x7b,0x0,0x65,0x0,0x6e,0x0,0x7e,0x0,0x56,0x0,0x34,0x0, +0x3b,0x0,0x36,0x0,0x2b,0x0,0x38,0x0,0x48,0x0,0x55,0x0, +0x5f,0x0,0x5b,0x0,0x51,0x0,0x4f,0x0,0x3f,0x0,0x25,0x0, +0x2e,0x0,0x36,0x0,0x14,0x0,0x5,0x0,0x18,0x0,0x1b,0x0, +0x19,0x0,0x31,0x0,0x41,0x0,0x3b,0x0,0x45,0x0,0x5e,0x0, +0x5c,0x0,0x50,0x0,0x53,0x0,0x4b,0x0,0x35,0x0,0x2b,0x0, +0x30,0x0,0x39,0x0,0x33,0x0,0x2b,0x0,0x3e,0x0,0x54,0x0, +0x4b,0x0,0x43,0x0,0x51,0x0,0x55,0x0,0x37,0x0,0x1e,0x0, +0x27,0x0,0x26,0x0,0x14,0x0,0x1c,0x0,0x2b,0x0,0x21,0x0, +0x11,0x0,0xa,0x0,0xfd,0xff,0xde,0xff,0xc5,0xff,0xd0,0xff, +0xe0,0xff,0xd6,0xff,0xdb,0xff,0x7,0x0,0x2c,0x0,0x39,0x0, +0x49,0x0,0x52,0x0,0x30,0x0,0x1,0x0,0xef,0xff,0xe3,0xff, +0xcb,0xff,0xc1,0xff,0xce,0xff,0xdb,0xff,0xe2,0xff,0xf8,0xff, +0x1a,0x0,0x36,0x0,0x3c,0x0,0x23,0x0,0x10,0x0,0xe,0x0, +0xef,0xff,0xcd,0xff,0xd6,0xff,0xd7,0xff,0xc2,0xff,0xcf,0xff, +0xed,0xff,0xf3,0xff,0xf5,0xff,0x6,0x0,0xd,0x0,0xfb,0xff, +0xec,0xff,0xe8,0xff,0xd2,0xff,0xb7,0xff,0xbe,0xff,0xca,0xff, +0xc3,0xff,0xcd,0xff,0xe5,0xff,0xe1,0xff,0xda,0xff,0xeb,0xff, +0xf1,0xff,0xdb,0xff,0xb4,0xff,0x7e,0xff,0x54,0xff,0x3c,0xff, +0x23,0xff,0x1e,0xff,0x38,0xff,0x4d,0xff,0x54,0xff,0x6f,0xff, +0x99,0xff,0xa5,0xff,0x87,0xff,0x66,0xff,0x4e,0xff,0x25,0xff, +0xf6,0xfe,0xe4,0xfe,0xe5,0xfe,0xe5,0xfe,0xed,0xfe,0x5,0xff, +0x1b,0xff,0x2b,0xff,0x32,0xff,0x39,0xff,0x47,0xff,0x3c,0xff, +0x1a,0xff,0x14,0xff,0x16,0xff,0xa,0xff,0xe,0xff,0x1b,0xff, +0x1b,0xff,0x27,0xff,0x42,0xff,0x4c,0xff,0x48,0xff,0x54,0xff, +0x68,0xff,0x6a,0xff,0x6c,0xff,0x8c,0xff,0xae,0xff,0xb7,0xff, +0xbc,0xff,0xd7,0xff,0xf2,0xff,0xe8,0xff,0xd6,0xff,0xe1,0xff, +0xeb,0xff,0xe7,0xff,0xf3,0xff,0xf,0x0,0x2a,0x0,0x3b,0x0, +0x52,0x0,0x78,0x0,0x96,0x0,0xa1,0x0,0xae,0x0,0xbe,0x0, +0xbd,0x0,0xad,0x0,0x9e,0x0,0x99,0x0,0x99,0x0,0x93,0x0, +0x8f,0x0,0x99,0x0,0xac,0x0,0xc0,0x0,0xd9,0x0,0xe8,0x0, +0xe2,0x0,0xe1,0x0,0xde,0x0,0xc2,0x0,0xa7,0x0,0x99,0x0, +0x88,0x0,0x7a,0x0,0x79,0x0,0x81,0x0,0x81,0x0,0x79,0x0, +0x89,0x0,0x9a,0x0,0x83,0x0,0x72,0x0,0x79,0x0,0x6c,0x0, +0x48,0x0,0x36,0x0,0x37,0x0,0x30,0x0,0x21,0x0,0x23,0x0, +0x24,0x0,0x10,0x0,0xb,0x0,0x16,0x0,0xa,0x0,0xf9,0xff, +0xfc,0xff,0xfc,0xff,0xf5,0xff,0xf5,0xff,0xf7,0xff,0xf3,0xff, +0xed,0xff,0xe2,0xff,0xd7,0xff,0xd0,0xff,0xc6,0xff,0xbe,0xff, +0xc6,0xff,0xd3,0xff,0xd8,0xff,0xe1,0xff,0xf5,0xff,0xb,0x0, +0x13,0x0,0x14,0x0,0x1b,0x0,0x1a,0x0,0xb,0x0,0xa,0x0, +0x11,0x0,0xc,0x0,0x10,0x0,0x25,0x0,0x32,0x0,0x3c,0x0, +0x54,0x0,0x67,0x0,0x67,0x0,0x66,0x0,0x6f,0x0,0x6b,0x0, +0x58,0x0,0x4f,0x0,0x53,0x0,0x5a,0x0,0x5c,0x0,0x5c,0x0, +0x5f,0x0,0x66,0x0,0x6f,0x0,0x73,0x0,0x73,0x0,0x74,0x0, +0x6b,0x0,0x5b,0x0,0x50,0x0,0x4a,0x0,0x3e,0x0,0x30,0x0, +0x2a,0x0,0x2b,0x0,0x27,0x0,0x1a,0x0,0x19,0x0,0x26,0x0, +0x21,0x0,0xf,0x0,0xc,0x0,0x8,0x0,0xf0,0xff,0xe3,0xff, +0xee,0xff,0xef,0xff,0xd9,0xff,0xc5,0xff,0xc1,0xff,0xc2,0xff, +0xbe,0xff,0xb6,0xff,0xb1,0xff,0xb0,0xff,0xa7,0xff,0x9f,0xff, +0xa8,0xff,0xa8,0xff,0x97,0xff,0x99,0xff,0xa4,0xff,0x90,0xff, +0x7a,0xff,0x82,0xff,0x88,0xff,0x78,0xff,0x75,0xff,0x8d,0xff, +0x9d,0xff,0x98,0xff,0x9e,0xff,0xaf,0xff,0xab,0xff,0xa2,0xff, +0xad,0xff,0xba,0xff,0xb6,0xff,0xa9,0xff,0xad,0xff,0xc9,0xff, +0xdb,0xff,0xd6,0xff,0xdd,0xff,0xf5,0xff,0xfc,0xff,0xf4,0xff, +0xfe,0xff,0x12,0x0,0x12,0x0,0xc,0x0,0x13,0x0,0x1e,0x0, +0x22,0x0,0x22,0x0,0x26,0x0,0x33,0x0,0x33,0x0,0x24,0x0, +0x2b,0x0,0x43,0x0,0x44,0x0,0x3b,0x0,0x42,0x0,0x47,0x0, +0x3e,0x0,0x3f,0x0,0x45,0x0,0x46,0x0,0x43,0x0,0x36,0x0, +0x2b,0x0,0x36,0x0,0x40,0x0,0x39,0x0,0x35,0x0,0x36,0x0, +0x2e,0x0,0x23,0x0,0x1d,0x0,0x1a,0x0,0xf,0x0,0x8,0x0, +0xa,0x0,0x3,0x0,0xf4,0xff,0xee,0xff,0xea,0xff,0xe2,0xff, +0xdf,0xff,0xe2,0xff,0xdf,0xff,0xd0,0xff,0xc8,0xff,0xcb,0xff, +0xbb,0xff,0xa6,0xff,0xac,0xff,0xb4,0xff,0xaa,0xff,0xa7,0xff, +0xb2,0xff,0xb2,0xff,0xac,0xff,0xb8,0xff,0xc0,0xff,0xac,0xff, +0xa6,0xff,0xb3,0xff,0xb0,0xff,0xad,0xff,0xbc,0xff,0xc4,0xff, +0xc5,0xff,0xcc,0xff,0xd2,0xff,0xd7,0xff,0xe2,0xff,0xe8,0xff, +0xec,0xff,0xf4,0xff,0xf9,0xff,0xf8,0xff,0x1,0x0,0x11,0x0, +0x19,0x0,0x17,0x0,0x1b,0x0,0x28,0x0,0x2c,0x0,0x2a,0x0, +0x3d,0x0,0x4c,0x0,0x42,0x0,0x47,0x0,0x5b,0x0,0x56,0x0, +0x47,0x0,0x4b,0x0,0x4f,0x0,0x44,0x0,0x3d,0x0,0x3f,0x0, +0x41,0x0,0x45,0x0,0x4b,0x0,0x46,0x0,0x3d,0x0,0x46,0x0, +0x4f,0x0,0x46,0x0,0x3e,0x0,0x40,0x0,0x42,0x0,0x3a,0x0, +0x30,0x0,0x29,0x0,0x1b,0x0,0x6,0x0,0xfd,0xff,0x0,0x0, +0xfd,0xff,0xf1,0xff,0xeb,0xff,0xee,0xff,0xf0,0xff,0xeb,0xff, +0xe6,0xff,0xe2,0xff,0xd1,0xff,0xbf,0xff,0xbd,0xff,0xbd,0xff, +0xb5,0xff,0xb1,0xff,0xb1,0xff,0xa9,0xff,0x9f,0xff,0x9c,0xff, +0xa0,0xff,0xa5,0xff,0xa5,0xff,0xa0,0xff,0x9b,0xff,0x9b,0xff, +0xa2,0xff,0xab,0xff,0xad,0xff,0xab,0xff,0xae,0xff,0xb8,0xff, +0xbe,0xff,0xbf,0xff,0xc7,0xff,0xcc,0xff,0xc2,0xff,0xb8,0xff, +0xbc,0xff,0xbe,0xff,0xb5,0xff,0xb4,0xff,0xc2,0xff,0xd0,0xff, +0xd9,0xff,0xdc,0xff,0xd9,0xff,0xda,0xff,0xdd,0xff,0xda,0xff, +0xd6,0xff,0xce,0xff,0xc4,0xff,0xc8,0xff,0xca,0xff,0xca,0xff, +0xd2,0xff,0xd4,0xff,0xcc,0xff,0xcd,0xff,0xd7,0xff,0xdf,0xff, +0xdd,0xff,0xdb,0xff,0xda,0xff,0xd1,0xff,0xc6,0xff,0xc9,0xff, +0xce,0xff,0xc7,0xff,0xc7,0xff,0xca,0xff,0xc2,0xff,0xc5,0xff, +0xd2,0xff,0xce,0xff,0xc4,0xff,0xc1,0xff,0xba,0xff,0xb9,0xff, +0xc4,0xff,0xc5,0xff,0xc0,0xff,0xba,0xff,0xb6,0xff,0xbc,0xff, +0xbe,0xff,0xb7,0xff,0xb7,0xff,0xb9,0xff,0xbb,0xff,0xbb,0xff, +0xb5,0xff,0xbe,0xff,0xca,0xff,0xb8,0xff,0xb2,0xff,0xcc,0xff, +0xcd,0xff,0xba,0xff,0xc3,0xff,0xd3,0xff,0xcc,0xff,0xc8,0xff, +0xd0,0xff,0xca,0xff,0xc3,0xff,0xce,0xff,0xd5,0xff,0xd2,0xff, +0xd4,0xff,0xd9,0xff,0xdd,0xff,0xe6,0xff,0xeb,0xff,0xe9,0xff, +0xe7,0xff,0xeb,0xff,0xee,0xff,0xee,0xff,0xef,0xff,0xf1,0xff, +0xf0,0xff,0xf0,0xff,0xf5,0xff,0xfb,0xff,0x5,0x0,0x16,0x0, +0x25,0x0,0x2c,0x0,0x30,0x0,0x34,0x0,0x30,0x0,0x28,0x0, +0x21,0x0,0x1d,0x0,0x1c,0x0,0x1a,0x0,0x1f,0x0,0x33,0x0, +0x39,0x0,0x37,0x0,0x4a,0x0,0x56,0x0,0x56,0x0,0x5f,0x0, +0x52,0x0,0x36,0x0,0x3c,0x0,0x47,0x0,0x38,0x0,0x36,0x0, +0x41,0x0,0x3a,0x0,0x3b,0x0,0x55,0x0,0x60,0x0,0x54,0x0, +0x53,0x0,0x57,0x0,0x4c,0x0,0x3f,0x0,0x39,0x0,0x31,0x0, +0x2a,0x0,0x2b,0x0,0x29,0x0,0x2b,0x0,0x3b,0x0,0x4b,0x0, +0x4f,0x0,0x51,0x0,0x4a,0x0,0x41,0x0,0x49,0x0,0x4e,0x0, +0x3f,0x0,0x37,0x0,0x3a,0x0,0x36,0x0,0x41,0x0,0x59,0x0, +0x58,0x0,0x4c,0x0,0x53,0x0,0x5a,0x0,0x52,0x0,0x48,0x0, +0x42,0x0,0x3a,0x0,0x36,0x0,0x37,0x0,0x3a,0x0,0x43,0x0, +0x56,0x0,0x61,0x0,0x5d,0x0,0x64,0x0,0x76,0x0,0x6d,0x0, +0x57,0x0,0x49,0x0,0x33,0x0,0x1b,0x0,0x17,0x0,0x1f,0x0, +0x2b,0x0,0x33,0x0,0x32,0x0,0x3b,0x0,0x4d,0x0,0x55,0x0, +0x58,0x0,0x62,0x0,0x63,0x0,0x54,0x0,0x53,0x0,0x6b,0x0, +0x72,0x0,0x54,0x0,0x3a,0x0,0x33,0x0,0x24,0x0,0x3,0x0, +0xef,0xff,0xf5,0xff,0xfd,0xff,0xea,0xff,0xd1,0xff,0xe2,0xff, +0xfc,0xff,0xea,0xff,0xd7,0xff,0xea,0xff,0xe1,0xff,0xb9,0xff, +0xbe,0xff,0xdb,0xff,0xcc,0xff,0xab,0xff,0xa8,0xff,0xaf,0xff, +0xad,0xff,0xb8,0xff,0xd3,0xff,0xeb,0xff,0x6,0x0,0x1d,0x0, +0x20,0x0,0x20,0x0,0x1b,0x0,0x1,0x0,0xe4,0xff,0xe3,0xff, +0xed,0xff,0xd3,0xff,0xb0,0xff,0xcb,0xff,0xf5,0xff,0xe8,0xff, +0xe0,0xff,0xf3,0xff,0xe5,0xff,0xc8,0xff,0xd0,0xff,0xe7,0xff, +0xeb,0xff,0xdd,0xff,0xc6,0xff,0xb1,0xff,0xb0,0xff,0xb8,0xff, +0xc0,0xff,0xd8,0xff,0xf1,0xff,0xe7,0xff,0xd8,0xff,0xe6,0xff, +0xee,0xff,0xda,0xff,0xc8,0xff,0xc8,0xff,0xc2,0xff,0xbc,0xff, +0xd8,0xff,0xfe,0xff,0xf5,0xff,0xd6,0xff,0xd6,0xff,0xdf,0xff, +0xc8,0xff,0xb1,0xff,0xc5,0xff,0xda,0xff,0xcc,0xff,0xc5,0xff, +0xc7,0xff,0xac,0xff,0x8b,0xff,0x7a,0xff,0x69,0xff,0x64,0xff, +0x74,0xff,0x8d,0xff,0x9e,0xff,0xa4,0xff,0xb0,0xff,0xc1,0xff, +0xc6,0xff,0xcb,0xff,0xce,0xff,0xc5,0xff,0xc8,0xff,0xd9,0xff, +0xcc,0xff,0xa4,0xff,0x93,0xff,0x99,0xff,0x93,0xff,0x95,0xff, +0xb6,0xff,0xd9,0xff,0xf2,0xff,0xc,0x0,0x18,0x0,0x18,0x0, +0x1a,0x0,0xfc,0xff,0xc3,0xff,0xb3,0xff,0xc3,0xff,0xbd,0xff, +0xc3,0xff,0xea,0xff,0xf9,0xff,0xde,0xff,0xce,0xff,0xe3,0xff, +0x2,0x0,0x0,0x0,0xe8,0xff,0xeb,0xff,0xfb,0xff,0xe0,0xff, +0xc6,0xff,0xdf,0xff,0xdf,0xff,0xad,0xff,0xaf,0xff,0xde,0xff, +0xe0,0xff,0xdb,0xff,0xfc,0xff,0x11,0x0,0x7,0x0,0xf5,0xff, +0xe8,0xff,0xe8,0xff,0xf1,0xff,0xf1,0xff,0xf4,0xff,0x7,0x0, +0x9,0x0,0xeb,0xff,0xde,0xff,0xf8,0xff,0xfe,0xff,0xe3,0xff, +0xe2,0xff,0xf4,0xff,0xea,0xff,0xec,0xff,0x23,0x0,0x40,0x0, +0x1e,0x0,0x8,0x0,0x9,0x0,0xf2,0xff,0xec,0xff,0xf,0x0, +0x12,0x0,0xe8,0xff,0xd6,0xff,0xe7,0xff,0xf0,0xff,0xf8,0xff, +0x12,0x0,0x1c,0x0,0xc,0x0,0x8,0x0,0x12,0x0,0xf,0x0, +0x0,0x0,0xfc,0xff,0x4,0x0,0xfc,0xff,0xeb,0xff,0xf9,0xff, +0x10,0x0,0x11,0x0,0xf,0x0,0x11,0x0,0x5,0x0,0xf3,0xff, +0xed,0xff,0xed,0xff,0xe9,0xff,0xf1,0xff,0x2,0x0,0xd,0x0, +0x14,0x0,0x13,0x0,0x10,0x0,0xf,0x0,0xf7,0xff,0xd4,0xff, +0xd7,0xff,0xd6,0xff,0xb5,0xff,0xb4,0xff,0xdc,0xff,0xf1,0xff, +0xed,0xff,0xf1,0xff,0x4,0x0,0x18,0x0,0x1e,0x0,0x1a,0x0, +0x1d,0x0,0xf,0x0,0xd9,0xff,0xc9,0xff,0x2,0x0,0xa,0x0, +0xd6,0xff,0xef,0xff,0x3b,0x0,0x32,0x0,0xc,0x0,0x34,0x0, +0x5b,0x0,0x2f,0x0,0x3,0x0,0xa,0x0,0x12,0x0,0x11,0x0, +0x12,0x0,0x11,0x0,0x22,0x0,0x29,0x0,0xff,0xff,0xe9,0xff, +0x18,0x0,0x2d,0x0,0xed,0xff,0xcb,0xff,0xe,0x0,0x30,0x0, +0xea,0xff,0xd8,0xff,0x1e,0x0,0x18,0x0,0xcc,0xff,0xd1,0xff, +0xfa,0xff,0xe3,0xff,0xcc,0xff,0xdb,0xff,0xe2,0xff,0xe1,0xff, +0xce,0xff,0xaa,0xff,0xca,0xff,0x6,0x0,0xe0,0xff,0xae,0xff, +0xdd,0xff,0x0,0x0,0xcf,0xff,0xb0,0xff,0xd9,0xff,0xfc,0xff, +0xe2,0xff,0xb8,0xff,0xbe,0xff,0xdf,0xff,0xd0,0xff,0xb3,0xff, +0xda,0xff,0x7,0x0,0xe5,0xff,0xc7,0xff,0xf0,0xff,0x19,0x0, +0xb,0x0,0xe2,0xff,0xd5,0xff,0xf3,0xff,0xf9,0xff,0xce,0xff, +0xcf,0xff,0xf,0x0,0x16,0x0,0xdc,0xff,0xe4,0xff,0x20,0x0, +0xf,0x0,0xd5,0xff,0xfb,0xff,0x43,0x0,0x1c,0x0,0xdd,0xff, +0x17,0x0,0x4c,0x0,0xfd,0xff,0xcb,0xff,0x1,0x0,0xa,0x0, +0xe6,0xff,0x4,0x0,0x30,0x0,0x38,0x0,0x3f,0x0,0x3a,0x0, +0x35,0x0,0x4f,0x0,0x38,0x0,0xe2,0xff,0xd6,0xff,0xa,0x0, +0xf3,0xff,0xc3,0xff,0xec,0xff,0x18,0x0,0xf9,0xff,0xf3,0xff, +0x2d,0x0,0x2b,0x0,0xf6,0xff,0xb,0x0,0x2c,0x0,0xf6,0xff, +0xd3,0xff,0xf0,0xff,0xe2,0xff,0xc8,0xff,0xf1,0xff,0x1,0x0, +0xdd,0xff,0xf2,0xff,0x25,0x0,0x17,0x0,0xfd,0xff,0xc,0x0, +0xb,0x0,0xf3,0xff,0xf6,0xff,0x8,0x0,0x1,0x0,0xfc,0xff, +0x3,0x0,0xfb,0xff,0x2,0x0,0x1f,0x0,0x9,0x0,0xf3,0xff, +0x2c,0x0,0x42,0x0,0xff,0xff,0xf0,0xff,0x26,0x0,0x2b,0x0, +0x6,0x0,0x12,0x0,0x37,0x0,0x26,0x0,0xe,0x0,0x33,0x0, +0x43,0x0,0x16,0x0,0x8,0x0,0x1a,0x0,0xd,0x0,0xf8,0xff, +0xfb,0xff,0xe,0x0,0x26,0x0,0x29,0x0,0x1d,0x0,0x22,0x0, +0x28,0x0,0x16,0x0,0xd,0x0,0x1a,0x0,0x17,0x0,0xf9,0xff, +0xef,0xff,0xa,0x0,0x13,0x0,0x0,0x0,0xc,0x0,0x28,0x0, +0x20,0x0,0x1e,0x0,0x34,0x0,0x2c,0x0,0x13,0x0,0x1a,0x0, +0x28,0x0,0x16,0x0,0xf5,0xff,0xf0,0xff,0x5,0x0,0xb,0x0, +0xc,0x0,0x1e,0x0,0x1b,0x0,0xfb,0xff,0xf4,0xff,0x11,0x0, +0x1d,0x0,0x0,0x0,0xea,0xff,0xf0,0xff,0xf2,0xff,0xe8,0xff, +0xe8,0xff,0xf9,0xff,0x4,0x0,0xf4,0xff,0xe2,0xff,0xf0,0xff, +0xf9,0xff,0xe2,0xff,0xe8,0xff,0x15,0x0,0x18,0x0,0xf7,0xff, +0xf7,0xff,0xf,0x0,0x12,0x0,0x1,0x0,0xf4,0xff,0xf6,0xff, +0xf4,0xff,0xee,0xff,0x0,0x0,0x19,0x0,0x17,0x0,0x13,0x0, +0x17,0x0,0xd,0x0,0xfb,0xff,0xea,0xff,0xe2,0xff,0xea,0xff, +0xf0,0xff,0xe7,0xff,0xde,0xff,0xe5,0xff,0xf4,0xff,0xfd,0xff, +0xb,0x0,0x1e,0x0,0x1c,0x0,0xe,0x0,0x14,0x0,0x1a,0x0, +0x8,0x0,0xf2,0xff,0xe5,0xff,0xd7,0xff,0xcf,0xff,0xd3,0xff, +0xdf,0xff,0xfa,0xff,0x18,0x0,0x1f,0x0,0x1b,0x0,0x16,0x0, +0x2,0x0,0xed,0xff,0xe3,0xff,0xda,0xff,0xd2,0xff,0xc9,0xff, +0xc8,0xff,0xde,0xff,0xf2,0xff,0xf5,0xff,0xff,0xff,0x6,0x0, +0xf5,0xff,0xe4,0xff,0xe6,0xff,0xe4,0xff,0xd6,0xff,0xcf,0xff, +0xd5,0xff,0xd5,0xff,0xcd,0xff,0xd5,0xff,0xf5,0xff,0x1,0x0, +0xf1,0xff,0xfc,0xff,0xc,0x0,0xf4,0xff,0xf1,0xff,0x7,0x0, +0xf4,0xff,0xe1,0xff,0xee,0xff,0xea,0xff,0xe4,0xff,0xf6,0xff, +0x3,0x0,0xff,0xff,0xf9,0xff,0xfc,0xff,0xfd,0xff,0xf7,0xff, +0xff,0xff,0x4,0x0,0xfc,0xff,0x3,0x0,0x9,0x0,0xfb,0xff, +0x6,0x0,0x18,0x0,0x7,0x0,0xf4,0xff,0xf7,0xff,0xf2,0xff, +0xe0,0xff,0xea,0xff,0xe,0x0,0xe,0x0,0xf9,0xff,0xe,0x0, +0x1e,0x0,0x2,0x0,0xfc,0xff,0x8,0x0,0xf8,0xff,0xea,0xff, +0xf1,0xff,0xf6,0xff,0xeb,0xff,0xe8,0xff,0xfa,0xff,0xf2,0xff, +0xd4,0xff,0xe2,0xff,0xef,0xff,0xd7,0xff,0xe4,0xff,0x0,0x0, +0xe9,0xff,0xd4,0xff,0xe5,0xff,0xf2,0xff,0xf5,0xff,0xf9,0xff, +0xf9,0xff,0xef,0xff,0xe7,0xff,0xe1,0xff,0xd2,0xff,0xcb,0xff, +0xc5,0xff,0xb1,0xff,0xba,0xff,0xe4,0xff,0xfa,0xff,0x6,0x0, +0x26,0x0,0x3e,0x0,0x30,0x0,0x17,0x0,0x12,0x0,0xd,0x0, +0xf2,0xff,0xe1,0xff,0xe7,0xff,0xed,0xff,0xf3,0xff,0x3,0x0, +0x1b,0x0,0x21,0x0,0x11,0x0,0x13,0x0,0x22,0x0,0x16,0x0, +0xb,0x0,0xe,0x0,0xf5,0xff,0xd7,0xff,0xe5,0xff,0xf2,0xff, +0xdc,0xff,0xdf,0xff,0xa,0x0,0x1d,0x0,0x1c,0x0,0x30,0x0, +0x34,0x0,0x11,0x0,0xf2,0xff,0xe6,0xff,0xd0,0xff,0xb7,0xff, +0xb6,0xff,0xc4,0xff,0xd0,0xff,0xf1,0xff,0x1b,0x0,0x30,0x0, +0x30,0x0,0x20,0x0,0xc,0x0,0x1,0x0,0xeb,0xff,0xca,0xff, +0xc1,0xff,0xd4,0xff,0xde,0xff,0xd8,0xff,0xe9,0xff,0xf,0x0, +0x6,0x0,0xdd,0xff,0xe2,0xff,0xf4,0xff,0xdb,0xff,0xc7,0xff, +0xe1,0xff,0xf2,0xff,0xdd,0xff,0xd9,0xff,0xee,0xff,0xe7,0xff, +0xd5,0xff,0xde,0xff,0xe6,0xff,0xe8,0xff,0xf0,0xff,0xe7,0xff, +0xda,0xff,0xe2,0xff,0xe3,0xff,0xd2,0xff,0xcc,0xff,0xd9,0xff, +0xec,0xff,0x1,0x0,0x15,0x0,0x22,0x0,0x29,0x0,0x1f,0x0, +0x2,0x0,0xed,0xff,0xec,0xff,0xea,0xff,0xe3,0xff,0xea,0xff, +0xfb,0xff,0xa,0x0,0x11,0x0,0xb,0x0,0x7,0x0,0x3,0x0, +0xec,0xff,0xde,0xff,0xf1,0xff,0xfe,0xff,0x2,0x0,0x17,0x0, +0x1b,0x0,0x10,0x0,0x16,0x0,0x11,0x0,0xfe,0xff,0x1,0x0, +0x2,0x0,0xf5,0xff,0xfb,0xff,0x3,0x0,0xf4,0xff,0xea,0xff, +0xf2,0xff,0xfe,0xff,0xc,0x0,0x1b,0x0,0x2a,0x0,0x3f,0x0, +0x4c,0x0,0x3c,0x0,0x2a,0x0,0x29,0x0,0x1a,0x0,0xf3,0xff, +0xe0,0xff,0xee,0xff,0xfb,0xff,0x1,0x0,0x22,0x0,0x46,0x0, +0x44,0x0,0x32,0x0,0x30,0x0,0x26,0x0,0x4,0x0,0xeb,0xff, +0xed,0xff,0xf2,0xff,0xfc,0xff,0xb,0x0,0xe,0x0,0x26,0x0, +0x45,0x0,0x2d,0x0,0xe,0x0,0x1c,0x0,0x14,0x0,0xf2,0xff, +0xfa,0xff,0x12,0x0,0x12,0x0,0x12,0x0,0x11,0x0,0xd,0x0, +0x1c,0x0,0x1c,0x0,0x2,0x0,0x16,0x0,0x43,0x0,0x3e,0x0, +0x2c,0x0,0x33,0x0,0x23,0x0,0xfa,0xff,0xd2,0xff,0xbe,0xff, +0xca,0xff,0xce,0xff,0xd1,0xff,0xd,0x0,0x4d,0x0,0x4f,0x0, +0x45,0x0,0x47,0x0,0x2c,0x0,0xf6,0xff,0xd1,0xff,0xc6,0xff, +0xc3,0xff,0xc7,0xff,0xd7,0xff,0xe7,0xff,0xf2,0xff,0xfd,0xff, +0xff,0xff,0xef,0xff,0xf2,0xff,0x11,0x0,0x1d,0x0,0x1b,0x0, +0x2d,0x0,0x2f,0x0,0x15,0x0,0x7,0x0,0xe8,0xff,0xbd,0xff, +0xcb,0xff,0xe5,0xff,0xdd,0xff,0x5,0x0,0x50,0x0,0x53,0x0, +0x38,0x0,0x46,0x0,0x3b,0x0,0x2,0x0,0xf5,0xff,0x8,0x0, +0xfc,0xff,0xf9,0xff,0x1c,0x0,0x28,0x0,0x1d,0x0,0x2d,0x0, +0x32,0x0,0x9,0x0,0xfd,0xff,0x17,0x0,0xb,0x0,0xf9,0xff, +0xd,0x0,0xb,0x0,0xef,0xff,0xdd,0xff,0xca,0xff,0xbe,0xff, +0xc0,0xff,0xb5,0xff,0xb0,0xff,0xc5,0xff,0xe0,0xff,0xe8,0xff, +0xd8,0xff,0xd3,0xff,0xdf,0xff,0xc7,0xff,0xa5,0xff,0xbd,0xff, +0xd3,0xff,0xb4,0xff,0xb1,0xff,0xd2,0xff,0xc4,0xff,0xa8,0xff, +0xac,0xff,0xa2,0xff,0x88,0xff,0x87,0xff,0x9a,0xff,0xa4,0xff, +0xa6,0xff,0xb7,0xff,0xcc,0xff,0xc9,0xff,0xc1,0xff,0xbc,0xff, +0xb2,0xff,0xb6,0xff,0xb7,0xff,0xa1,0xff,0xa4,0xff,0xbb,0xff, +0xb7,0xff,0xba,0xff,0xd5,0xff,0xd8,0xff,0xcf,0xff,0xd9,0xff, +0xee,0xff,0xf9,0xff,0xfe,0xff,0x7,0x0,0xc,0x0,0x7,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x16,0x0, +0x23,0x0,0x26,0x0,0x2f,0x0,0x39,0x0,0x2c,0x0,0x15,0x0, +0xa,0x0,0x1,0x0,0xf1,0xff,0xe4,0xff,0xe9,0xff,0xfb,0xff, +0xf1,0xff,0xd8,0xff,0xe8,0xff,0xfa,0xff,0xe1,0xff,0xdc,0xff, +0xf2,0xff,0xee,0xff,0xee,0xff,0x6,0x0,0x7,0x0,0xfe,0xff, +0x2,0x0,0xfd,0xff,0xed,0xff,0xe7,0xff,0xee,0xff,0xf7,0xff, +0xff,0xff,0xc,0x0,0x1b,0x0,0x28,0x0,0x2c,0x0,0x25,0x0, +0x24,0x0,0x33,0x0,0x31,0x0,0x18,0x0,0x1a,0x0,0x32,0x0, +0x2d,0x0,0x19,0x0,0x24,0x0,0x35,0x0,0x2b,0x0,0x20,0x0, +0x32,0x0,0x4a,0x0,0x49,0x0,0x41,0x0,0x52,0x0,0x58,0x0, +0x38,0x0,0x2a,0x0,0x47,0x0,0x48,0x0,0x30,0x0,0x45,0x0, +0x5f,0x0,0x3f,0x0,0x31,0x0,0x58,0x0,0x59,0x0,0x3b,0x0, +0x46,0x0,0x50,0x0,0x30,0x0,0x21,0x0,0x28,0x0,0x17,0x0, +0x8,0x0,0xc,0x0,0xf4,0xff,0xee,0xff,0x21,0x0,0x2b,0x0, +0x5,0x0,0x1b,0x0,0x29,0x0,0xeb,0xff,0xd1,0xff,0xec,0xff, +0xda,0xff,0xbb,0xff,0xce,0xff,0xdc,0xff,0xcb,0xff,0xd1,0xff, +0xe8,0xff,0xd6,0xff,0xbb,0xff,0xc3,0xff,0xc2,0xff,0xad,0xff, +0xc6,0xff,0xf5,0xff,0xf7,0xff,0xf1,0xff,0x9,0x0,0x12,0x0, +0xfc,0xff,0xf2,0xff,0xf6,0xff,0xf6,0xff,0xf0,0xff,0xe6,0xff, +0xe3,0xff,0xea,0xff,0xf3,0xff,0x9,0x0,0x1f,0x0,0x29,0x0, +0x40,0x0,0x54,0x0,0x4d,0x0,0x58,0x0,0x68,0x0,0x46,0x0, +0x1d,0x0,0x23,0x0,0x1d,0x0,0xf6,0xff,0xfa,0xff,0x19,0x0, +0x10,0x0,0x10,0x0,0x32,0x0,0x32,0x0,0x29,0x0,0x44,0x0, +0x45,0x0,0x23,0x0,0x24,0x0,0x23,0x0,0xf8,0xff,0xe2,0xff, +0xec,0xff,0xd9,0xff,0xc8,0xff,0xeb,0xff,0x7,0x0,0x0,0x0, +0x1b,0x0,0x3e,0x0,0x1c,0x0,0xfc,0xff,0xb,0x0,0xdd,0xff, +0x89,0xff,0x90,0xff,0xb5,0xff,0xa7,0xff,0xa8,0xff,0xc7,0xff, +0xd7,0xff,0xdc,0xff,0xc9,0xff,0xa6,0xff,0x9f,0xff,0x98,0xff, +0x74,0xff,0x6a,0xff,0x9f,0xff,0xca,0xff,0xba,0xff,0xb9,0xff, +0xe2,0xff,0xd2,0xff,0x93,0xff,0x83,0xff,0x98,0xff,0x99,0xff, +0x9b,0xff,0xbd,0xff,0xe3,0xff,0xeb,0xff,0xe8,0xff,0xde,0xff, +0xc3,0xff,0xbe,0xff,0xca,0xff,0xc1,0xff,0xc2,0xff,0xdf,0xff, +0xf0,0xff,0xe6,0xff,0xd6,0xff,0xd4,0xff,0xc8,0xff,0xaa,0xff, +0xb8,0xff,0xec,0xff,0x19,0x0,0x4a,0x0,0x65,0x0,0x4e,0x0, +0x3b,0x0,0x2a,0x0,0xf0,0xff,0xac,0xff,0x94,0xff,0xa5,0xff, +0xb8,0xff,0xcc,0xff,0xff,0xff,0x25,0x0,0x1e,0x0,0x20,0x0, +0x29,0x0,0x1b,0x0,0x1d,0x0,0x33,0x0,0x29,0x0,0xf,0x0, +0xf,0x0,0xf9,0xff,0xb3,0xff,0xa2,0xff,0xd9,0xff,0xd7,0xff, +0xce,0xff,0x26,0x0,0x60,0x0,0x4f,0x0,0x64,0x0,0x67,0x0, +0x1f,0x0,0xf3,0xff,0xf8,0xff,0xf2,0xff,0xfd,0xff,0x3c,0x0, +0x68,0x0,0x5a,0x0,0x53,0x0,0x4b,0x0,0x4,0x0,0xd5,0xff, +0xfc,0xff,0x2a,0x0,0x41,0x0,0x61,0x0,0x89,0x0,0x99,0x0, +0x6f,0x0,0x47,0x0,0x42,0x0,0x11,0x0,0xe2,0xff,0x12,0x0, +0x50,0x0,0x74,0x0,0x9e,0x0,0xae,0x0,0xa9,0x0,0x8d,0x0, +0x39,0x0,0xf7,0xff,0x13,0x0,0x56,0x0,0x65,0x0,0x62,0x0, +0xb5,0x0,0xe6,0x0,0x66,0x0,0x7,0x0,0x4a,0x0,0x3d,0x0, +0xc9,0xff,0xe9,0xff,0x6e,0x0,0x8b,0x0,0x85,0x0,0xaf,0x0, +0xa7,0x0,0x63,0x0,0x34,0x0,0xfc,0xff,0xcf,0xff,0x9,0x0, +0x4c,0x0,0x34,0x0,0x4a,0x0,0xa7,0x0,0x88,0x0,0x17,0x0, +0x16,0x0,0x2d,0x0,0xf8,0xff,0xf3,0xff,0x1d,0x0,0x1d,0x0, +0x3c,0x0,0x62,0x0,0x23,0x0,0xee,0xff,0x13,0x0,0xff,0xff, +0xb1,0xff,0xda,0xff,0x4f,0x0,0x4e,0x0,0x14,0x0,0x35,0x0, +0x4e,0x0,0x2,0x0,0xc4,0xff,0xc3,0xff,0xb9,0xff,0xb5,0xff, +0xcc,0xff,0xc9,0xff,0xca,0xff,0xed,0xff,0xd9,0xff,0x95,0xff, +0x8b,0xff,0x9a,0xff,0x85,0xff,0x81,0xff,0x97,0xff,0x95,0xff, +0x88,0xff,0x75,0xff,0x48,0xff,0x23,0xff,0x20,0xff,0x14,0xff, +0x0,0xff,0x1f,0xff,0x53,0xff,0x51,0xff,0x38,0xff,0x3b,0xff, +0x33,0xff,0xc,0xff,0xf0,0xfe,0xf1,0xfe,0xf8,0xfe,0xff,0xfe, +0x11,0xff,0x26,0xff,0x31,0xff,0x2f,0xff,0x1d,0xff,0xf,0xff, +0x15,0xff,0x29,0xff,0x40,0xff,0x55,0xff,0x65,0xff,0x78,0xff, +0x7b,0xff,0x66,0xff,0x56,0xff,0x57,0xff,0x5f,0xff,0x6d,0xff, +0x82,0xff,0xae,0xff,0xe3,0xff,0xf7,0xff,0xf6,0xff,0x0,0x0, +0x0,0x0,0xef,0xff,0xec,0xff,0xfc,0xff,0x15,0x0,0x36,0x0, +0x54,0x0,0x63,0x0,0x6e,0x0,0x72,0x0,0x69,0x0,0x5f,0x0, +0x63,0x0,0x6f,0x0,0x84,0x0,0x98,0x0,0xa7,0x0,0xbb,0x0, +0xc4,0x0,0xb1,0x0,0x9e,0x0,0x9c,0x0,0x90,0x0,0x82,0x0, +0x8c,0x0,0xa1,0x0,0xa5,0x0,0xa0,0x0,0x9e,0x0,0x98,0x0, +0x85,0x0,0x6f,0x0,0x63,0x0,0x62,0x0,0x69,0x0,0x6a,0x0, +0x62,0x0,0x64,0x0,0x5f,0x0,0x44,0x0,0x2f,0x0,0x20,0x0, +0xc,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x13,0x0,0x1d,0x0, +0xc,0x0,0xfd,0xff,0xf9,0xff,0xe8,0xff,0xd9,0xff,0xe0,0xff, +0xe7,0xff,0xdf,0xff,0xde,0xff,0xe8,0xff,0xea,0xff,0xe1,0xff, +0xd2,0xff,0xce,0xff,0xd7,0xff,0xda,0xff,0xdb,0xff,0xe8,0xff, +0xf0,0xff,0xe7,0xff,0xe1,0xff,0xe3,0xff,0xdf,0xff,0xd9,0xff, +0xde,0xff,0xea,0xff,0xf5,0xff,0xfa,0xff,0x3,0x0,0xf,0x0, +0xe,0x0,0x5,0x0,0xd,0x0,0x17,0x0,0x17,0x0,0x24,0x0, +0x39,0x0,0x3e,0x0,0x37,0x0,0x32,0x0,0x33,0x0,0x31,0x0, +0x27,0x0,0x28,0x0,0x3a,0x0,0x4e,0x0,0x5b,0x0,0x65,0x0, +0x6c,0x0,0x69,0x0,0x5d,0x0,0x53,0x0,0x49,0x0,0x43,0x0, +0x46,0x0,0x4b,0x0,0x4f,0x0,0x55,0x0,0x56,0x0,0x51,0x0, +0x49,0x0,0x45,0x0,0x44,0x0,0x3b,0x0,0x37,0x0,0x41,0x0, +0x3e,0x0,0x32,0x0,0x31,0x0,0x26,0x0,0x14,0x0,0xe,0x0, +0x6,0x0,0xf8,0xff,0xf9,0xff,0x3,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0xfc,0xff,0xed,0xff,0xe3,0xff,0xdc,0xff,0xd4,0xff, +0xcc,0xff,0xc7,0xff,0xc8,0xff,0xc8,0xff,0xc3,0xff,0xc4,0xff, +0xc9,0xff,0xc7,0xff,0xc0,0xff,0xbd,0xff,0xbc,0xff,0xbf,0xff, +0xc4,0xff,0xbe,0xff,0xb8,0xff,0xbf,0xff,0xb8,0xff,0xaa,0xff, +0xb2,0xff,0xb6,0xff,0xac,0xff,0xb5,0xff,0xc5,0xff,0xc3,0xff, +0xc1,0xff,0xcb,0xff,0xd0,0xff,0xcb,0xff,0xcc,0xff,0xd5,0xff, +0xd5,0xff,0xd1,0xff,0xd8,0xff,0xe1,0xff,0xe1,0xff,0xe1,0xff, +0xe1,0xff,0xe2,0xff,0xe4,0xff,0xec,0xff,0xf6,0xff,0xf9,0xff, +0x1,0x0,0xa,0x0,0x7,0x0,0xa,0x0,0x10,0x0,0x9,0x0, +0x4,0x0,0x5,0x0,0x7,0x0,0xd,0x0,0x11,0x0,0x18,0x0, +0x21,0x0,0x1b,0x0,0x14,0x0,0x19,0x0,0x16,0x0,0xd,0x0, +0xc,0x0,0xd,0x0,0x8,0x0,0x7,0x0,0xa,0x0,0x8,0x0, +0x3,0x0,0xfc,0xff,0xf4,0xff,0xf6,0xff,0xfb,0xff,0xf6,0xff, +0xf7,0xff,0x2,0x0,0x4,0x0,0xfe,0xff,0xfc,0xff,0xf9,0xff, +0xee,0xff,0xe1,0xff,0xe2,0xff,0xe6,0xff,0xdd,0xff,0xd7,0xff, +0xdc,0xff,0xdc,0xff,0xda,0xff,0xdc,0xff,0xdb,0xff,0xd4,0xff, +0xcd,0xff,0xc7,0xff,0xc5,0xff,0xc3,0xff,0xc0,0xff,0xc5,0xff, +0xcd,0xff,0xc9,0xff,0xc2,0xff,0xc5,0xff,0xc5,0xff,0xc0,0xff, +0xbd,0xff,0xbe,0xff,0xc1,0xff,0xc4,0xff,0xc9,0xff,0xcd,0xff, +0xcc,0xff,0xd1,0xff,0xd9,0xff,0xd6,0xff,0xd5,0xff,0xe0,0xff, +0xe2,0xff,0xdd,0xff,0xe3,0xff,0xef,0xff,0xf3,0xff,0xf3,0xff, +0xf6,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x6,0x0, +0xf,0x0,0x16,0x0,0x19,0x0,0x1a,0x0,0x1a,0x0,0x1e,0x0, +0x1f,0x0,0x19,0x0,0x1a,0x0,0x22,0x0,0x24,0x0,0x24,0x0, +0x25,0x0,0x2a,0x0,0x2e,0x0,0x2d,0x0,0x2b,0x0,0x2b,0x0, +0x2e,0x0,0x34,0x0,0x2f,0x0,0x29,0x0,0x2d,0x0,0x27,0x0, +0x20,0x0,0x27,0x0,0x27,0x0,0x1e,0x0,0x24,0x0,0x2c,0x0, +0x26,0x0,0x1f,0x0,0x1a,0x0,0x11,0x0,0xb,0x0,0x11,0x0, +0x17,0x0,0xf,0x0,0xc,0x0,0x15,0x0,0x14,0x0,0x2,0x0, +0xf3,0xff,0xed,0xff,0xe5,0xff,0xe1,0xff,0xe9,0xff,0xf7,0xff, +0xfb,0xff,0xfd,0xff,0x3,0x0,0xfe,0xff,0xf1,0xff,0xe5,0xff, +0xd7,0xff,0xd3,0xff,0xe3,0xff,0xec,0xff,0xed,0xff,0xfa,0xff, +0x0,0x0,0xf3,0xff,0xe6,0xff,0xe1,0xff,0xd9,0xff,0xd5,0xff, +0xde,0xff,0xf6,0xff,0xa,0x0,0xf,0x0,0xf,0x0,0xe,0x0, +0xa,0x0,0x0,0x0,0xf6,0xff,0xf7,0xff,0xff,0xff,0xa,0x0, +0x19,0x0,0x20,0x0,0x1c,0x0,0x17,0x0,0xc,0x0,0xfd,0xff, +0xfa,0xff,0x2,0x0,0x10,0x0,0x24,0x0,0x33,0x0,0x38,0x0, +0x3b,0x0,0x32,0x0,0x1e,0x0,0x12,0x0,0x12,0x0,0xf,0x0, +0x10,0x0,0x1b,0x0,0x26,0x0,0x2a,0x0,0x2a,0x0,0x25,0x0, +0x1e,0x0,0x13,0x0,0xd,0x0,0x15,0x0,0x20,0x0,0x22,0x0, +0x27,0x0,0x29,0x0,0x1f,0x0,0x11,0x0,0xc,0x0,0x9,0x0, +0x2,0x0,0x1,0x0,0xf,0x0,0x17,0x0,0x13,0x0,0x15,0x0, +0x13,0x0,0x4,0x0,0xf5,0xff,0xef,0xff,0xee,0xff,0xf2,0xff, +0xfb,0xff,0x5,0x0,0x8,0x0,0x4,0x0,0xfe,0xff,0xf6,0xff, +0xed,0xff,0xe9,0xff,0xee,0xff,0xf5,0xff,0xfb,0xff,0x0,0x0, +0x7,0x0,0xc,0x0,0xa,0x0,0xfe,0xff,0xf2,0xff,0xed,0xff, +0xeb,0xff,0xed,0xff,0xf9,0xff,0x2,0x0,0x5,0x0,0x8,0x0, +0x9,0x0,0x7,0x0,0x2,0x0,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0x0,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x5,0x0,0x2,0x0, +0xf9,0xff,0xf8,0xff,0xfa,0xff,0x0,0x0,0xa,0x0,0x11,0x0, +0x1a,0x0,0x26,0x0,0x24,0x0,0x17,0x0,0x10,0x0,0x10,0x0, +0xb,0x0,0x6,0x0,0x8,0x0,0x8,0x0,0xd,0x0,0x1a,0x0, +0x1e,0x0,0x1e,0x0,0x1f,0x0,0x16,0x0,0xa,0x0,0xa,0x0, +0xc,0x0,0x6,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xf4,0xff, +0xef,0xff,0xf5,0xff,0xf3,0xff,0xed,0xff,0xf4,0xff,0xff,0xff, +0x4,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x2,0x0,0xfb,0xff, +0xf6,0xff,0xf4,0xff,0xf0,0xff,0xec,0xff,0xee,0xff,0xf8,0xff, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xf9,0xff,0xf2,0xff, +0xeb,0xff,0xe4,0xff,0xde,0xff,0xe1,0xff,0xe2,0xff,0xda,0xff, +0xd7,0xff,0xdf,0xff,0xea,0xff,0xf6,0xff,0xf7,0xff,0xed,0xff, +0xe7,0xff,0xe6,0xff,0xe2,0xff,0xe1,0xff,0xe4,0xff,0xe5,0xff, +0xe5,0xff,0xe9,0xff,0xea,0xff,0xea,0xff,0xec,0xff,0xed,0xff, +0xf1,0xff,0xf6,0xff,0xef,0xff,0xe9,0xff,0xf3,0xff,0x2,0x0, +0x8,0x0,0x7,0x0,0x3,0x0,0xf4,0xff,0xe2,0xff,0xde,0xff, +0xea,0xff,0xf4,0xff,0xf8,0xff,0xfc,0xff,0x4,0x0,0x9,0x0, +0x3,0x0,0xfa,0xff,0xf4,0xff,0xea,0xff,0xe0,0xff,0xe2,0xff, +0xe7,0xff,0xec,0xff,0xfd,0xff,0x16,0x0,0x19,0x0,0x0,0x0, +0xe9,0xff,0xda,0xff,0xd1,0xff,0xd4,0xff,0xda,0xff,0xe0,0xff, +0xee,0xff,0xfa,0xff,0x1,0x0,0x5,0x0,0x0,0x0,0xf0,0xff, +0xdc,0xff,0xca,0xff,0xc5,0xff,0xcb,0xff,0xd5,0xff,0xe4,0xff, +0xf2,0xff,0xf8,0xff,0xf2,0xff,0xdc,0xff,0xcb,0xff,0xca,0xff, +0xc8,0xff,0xc7,0xff,0xd2,0xff,0xe1,0xff,0xed,0xff,0xf5,0xff, +0xf7,0xff,0xf1,0xff,0xdf,0xff,0xcd,0xff,0xc5,0xff,0xc6,0xff, +0xce,0xff,0xdf,0xff,0xf7,0xff,0x4,0x0,0xff,0xff,0xf9,0xff, +0xf8,0xff,0xed,0xff,0xe0,0xff,0xe3,0xff,0xef,0xff,0xf5,0xff, +0xf4,0xff,0xf8,0xff,0x3,0x0,0xb,0x0,0x8,0x0,0xfe,0xff, +0xf4,0xff,0xf2,0xff,0xf9,0xff,0x5,0x0,0x15,0x0,0x1f,0x0, +0x1a,0x0,0xe,0x0,0x4,0x0,0xfc,0xff,0xfd,0xff,0x3,0x0, +0x0,0x0,0xfd,0xff,0x1,0x0,0x6,0x0,0xb,0x0,0xc,0x0, +0x6,0x0,0x5,0x0,0x9,0x0,0xa,0x0,0xd,0x0,0xb,0x0, +0x1,0x0,0xf5,0xff,0xe9,0xff,0xe3,0xff,0xdb,0xff,0xcc,0xff, +0xd1,0xff,0xec,0xff,0x5,0x0,0x11,0x0,0xd,0x0,0x2,0x0, +0xf8,0xff,0xe6,0xff,0xd0,0xff,0xc6,0xff,0xcd,0xff,0xd9,0xff, +0xe1,0xff,0xeb,0xff,0xfa,0xff,0x0,0x0,0xfa,0xff,0xf2,0xff, +0xe7,0xff,0xe1,0xff,0xe5,0xff,0xe9,0xff,0xf5,0xff,0x7,0x0, +0xc,0x0,0x0,0x0,0xef,0xff,0xe7,0xff,0xe8,0xff,0xe7,0xff, +0xe8,0xff,0xf3,0xff,0x9,0x0,0x22,0x0,0x2c,0x0,0x29,0x0, +0x25,0x0,0x16,0x0,0x1,0x0,0xf9,0xff,0xf9,0xff,0xfc,0xff, +0x6,0x0,0x13,0x0,0x1e,0x0,0x2b,0x0,0x34,0x0,0x31,0x0, +0x25,0x0,0x1c,0x0,0x1b,0x0,0x1e,0x0,0x20,0x0,0x1f,0x0, +0x1e,0x0,0x1c,0x0,0x1a,0x0,0x16,0x0,0x10,0x0,0xc,0x0, +0x9,0x0,0x5,0x0,0x4,0x0,0x9,0x0,0xd,0x0,0xe,0x0, +0xa,0x0,0x6,0x0,0x4,0x0,0x0,0x0,0xff,0xff,0xfc,0xff, +0xf3,0xff,0xf0,0xff,0xf0,0xff,0xec,0xff,0xf3,0xff,0xfd,0xff, +0xf8,0xff,0xf0,0xff,0xf4,0xff,0xfd,0xff,0xfd,0xff,0xf7,0xff, +0xf5,0xff,0xf3,0xff,0xf0,0xff,0xf4,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0x0,0x0,0x4,0x0,0xa,0x0,0x12,0x0, +0x14,0x0,0x14,0x0,0x1a,0x0,0x20,0x0,0x1e,0x0,0x14,0x0, +0xe,0x0,0x10,0x0,0xf,0x0,0x9,0x0,0xb,0x0,0x12,0x0, +0x15,0x0,0x16,0x0,0x1b,0x0,0x25,0x0,0x25,0x0,0x1d,0x0, +0x1d,0x0,0x21,0x0,0x1c,0x0,0x15,0x0,0x16,0x0,0x18,0x0, +0x15,0x0,0xc,0x0,0xb,0x0,0x11,0x0,0x11,0x0,0xf,0x0, +0x14,0x0,0x16,0x0,0x12,0x0,0x11,0x0,0x13,0x0,0xe,0x0, +0x6,0x0,0x0,0x0,0xfa,0xff,0xf9,0xff,0xfc,0xff,0xfb,0xff, +0xf9,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfb,0xff,0xf4,0xff,0xf1,0xff,0xf2,0xff,0xf0,0xff,0xf1,0xff, +0xf8,0xff,0xfa,0xff,0xf8,0xff,0xfc,0xff,0x2,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x8,0x0,0x7,0x0,0x2,0x0,0x1,0x0, +0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x3,0x0,0x3,0x0, +0xff,0xff,0xfd,0xff,0x8,0x0,0xe,0x0,0xa,0x0,0xf,0x0, +0x15,0x0,0xf,0x0,0xd,0x0,0x12,0x0,0x12,0x0,0xb,0x0, +0x3,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0x1,0x0,0x5,0x0, +0x7,0x0,0xb,0x0,0xb,0x0,0x8,0x0,0x7,0x0,0x4,0x0, +0xfc,0xff,0xf4,0xff,0xec,0xff,0xe7,0xff,0xe4,0xff,0xe4,0xff, +0xe3,0xff,0xe2,0xff,0xe7,0xff,0xea,0xff,0xe9,0xff,0xeb,0xff, +0xf0,0xff,0xf5,0xff,0xfa,0xff,0xf8,0xff,0xf1,0xff,0xed,0xff, +0xe9,0xff,0xe5,0xff,0xe3,0xff,0xde,0xff,0xdb,0xff,0xdd,0xff, +0xe2,0xff,0xf1,0xff,0xfa,0xff,0xfc,0xff,0x2,0x0,0x5,0x0, +0x6,0x0,0x7,0x0,0x2,0x0,0xfb,0xff,0xf9,0xff,0xf2,0xff, +0xed,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xfb,0xff,0x0,0x0, +0xff,0xff,0x2,0x0,0x4,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff, +0xf2,0xff,0xe9,0xff,0xe6,0xff,0xec,0xff,0xf0,0xff,0xeb,0xff, +0xe8,0xff,0xe9,0xff,0xea,0xff,0xe9,0xff,0xe4,0xff,0xe5,0xff, +0xf1,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf8,0xff, +0xf1,0xff,0xe6,0xff,0xda,0xff,0xd5,0xff,0xd6,0xff,0xda,0xff, +0xe2,0xff,0xed,0xff,0xf4,0xff,0xf7,0xff,0xf4,0xff,0xed,0xff, +0xea,0xff,0xeb,0xff,0xe8,0xff,0xeb,0xff,0xec,0xff,0xea,0xff, +0xee,0xff,0xf3,0xff,0xf4,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff, +0xfe,0xff,0x5,0x0,0xd,0x0,0x18,0x0,0x1b,0x0,0x19,0x0, +0x17,0x0,0x10,0x0,0x8,0x0,0x3,0x0,0x0,0x0,0x2,0x0, +0x4,0x0,0x6,0x0,0xe,0x0,0x1a,0x0,0x23,0x0,0x23,0x0, +0x21,0x0,0x22,0x0,0x1f,0x0,0x16,0x0,0xe,0x0,0xa,0x0, +0xff,0xff,0xf1,0xff,0xee,0xff,0xed,0xff,0xe9,0xff,0xed,0xff, +0xf7,0xff,0xfd,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff, +0xf6,0xff,0xf3,0xff,0xf4,0xff,0xf1,0xff,0xeb,0xff,0xea,0xff, +0xea,0xff,0xe7,0xff,0xe2,0xff,0xdc,0xff,0xda,0xff,0xdb,0xff, +0xe1,0xff,0xed,0xff,0xfa,0xff,0xfc,0xff,0xf7,0xff,0xf7,0xff, +0xf4,0xff,0xe8,0xff,0xe0,0xff,0xe0,0xff,0xe4,0xff,0xed,0xff, +0xf8,0xff,0x1,0x0,0x7,0x0,0xb,0x0,0xa,0x0,0x3,0x0, +0xf6,0xff,0xf1,0xff,0xf2,0xff,0xf4,0xff,0xfc,0xff,0x7,0x0, +0xf,0x0,0x10,0x0,0xb,0x0,0x7,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x9,0x0,0x13,0x0,0x1b,0x0,0x22,0x0,0x26,0x0, +0x21,0x0,0x18,0x0,0xf,0x0,0x8,0x0,0x6,0x0,0x7,0x0, +0x8,0x0,0x10,0x0,0x16,0x0,0x13,0x0,0xd,0x0,0x8,0x0, +0x0,0x0,0xf7,0xff,0xef,0xff,0xeb,0xff,0xf0,0xff,0xf8,0xff, +0xff,0xff,0x3,0x0,0x6,0x0,0x4,0x0,0xfd,0xff,0xf6,0xff, +0xf6,0xff,0xf5,0xff,0xf2,0xff,0xf3,0xff,0xf4,0xff,0xf3,0xff, +0xef,0xff,0xec,0xff,0xeb,0xff,0xec,0xff,0xee,0xff,0xf1,0xff, +0xf3,0xff,0xf7,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xf7,0xff, +0xf0,0xff,0xee,0xff,0xef,0xff,0xf2,0xff,0xf7,0xff,0xfc,0xff, +0x0,0x0,0x1,0x0,0xfd,0xff,0xf8,0xff,0xf7,0xff,0xfa,0xff, +0xfc,0xff,0xfc,0xff,0x1,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0xa,0x0,0x8,0x0,0x0,0x0,0xfa,0xff,0xfd,0xff,0x5,0x0, +0xc,0x0,0xf,0x0,0x11,0x0,0xe,0x0,0x8,0x0,0x2,0x0, +0x1,0x0,0x3,0x0,0x5,0x0,0x7,0x0,0xc,0x0,0x12,0x0, +0x15,0x0,0x16,0x0,0x16,0x0,0xf,0x0,0x5,0x0,0x2,0x0, +0x1,0x0,0xfd,0xff,0xff,0xff,0x8,0x0,0xe,0x0,0x9,0x0, +0x3,0x0,0x1,0x0,0xfc,0xff,0xf4,0xff,0xf2,0xff,0xf6,0xff, +0xf9,0xff,0xfc,0xff,0x0,0x0,0x6,0x0,0xb,0x0,0xa,0x0, +0x7,0x0,0x0,0x0,0xf8,0xff,0xf1,0xff,0xed,0xff,0xee,0xff, +0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf9,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xf7,0xff,0xf4,0xff,0xf3,0xff, +0xf0,0xff,0xf3,0xff,0xf7,0xff,0xf2,0xff,0xee,0xff,0xf1,0xff, +0xf2,0xff,0xee,0xff,0xec,0xff,0xed,0xff,0xef,0xff,0xf0,0xff, +0xf3,0xff,0xf6,0xff,0xfc,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xf9,0xff,0xf6,0xff,0xf7,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0x0,0x0,0x4,0x0,0x2,0x0,0xfe,0xff,0xfb,0xff, +0xfa,0xff,0xf8,0xff,0xf8,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0x6,0x0,0xa,0x0,0x6,0x0,0x0,0x0,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xf8,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff, +0xf3,0xff,0xf2,0xff,0xf0,0xff,0xec,0xff,0xed,0xff,0xf3,0xff, +0xf8,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0x3,0x0,0x1,0x0, +0xf8,0xff,0xf4,0xff,0xf1,0xff,0xec,0xff,0xe9,0xff,0xe9,0xff, +0xe9,0xff,0xeb,0xff,0xef,0xff,0xf2,0xff,0xf4,0xff,0xf7,0xff, +0xf8,0xff,0xf6,0xff,0xf3,0xff,0xf0,0xff,0xea,0xff,0xe6,0xff, +0xe5,0xff,0xe6,0xff,0xe6,0xff,0xe5,0xff,0xe9,0xff,0xed,0xff, +0xed,0xff,0xf0,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf8,0xff, +0xf8,0xff,0xf4,0xff,0xf5,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x4,0x0,0xc,0x0,0xc,0x0,0xa,0x0,0x12,0x0,0x19,0x0, +0x17,0x0,0x12,0x0,0xe,0x0,0xd,0x0,0x9,0x0,0x0,0x0, +0xfd,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x4,0x0,0x8,0x0, +0xd,0x0,0xe,0x0,0xc,0x0,0x11,0x0,0x15,0x0,0x10,0x0, +0xc,0x0,0xd,0x0,0xb,0x0,0x5,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3,0x0, +0x8,0x0,0xc,0x0,0xe,0x0,0xd,0x0,0xb,0x0,0x6,0x0, +0xff,0xff,0xfa,0xff,0xf5,0xff,0xef,0xff,0xed,0xff,0xec,0xff, +0xee,0xff,0xf5,0xff,0xfe,0xff,0x5,0x0,0x8,0x0,0x7,0x0, +0x4,0x0,0xff,0xff,0xf7,0xff,0xf1,0xff,0xf2,0xff,0xf4,0xff, +0xf6,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0,0x6,0x0,0x8,0x0, +0x7,0x0,0x8,0x0,0xa,0x0,0xb,0x0,0xd,0x0,0xf,0x0, +0x11,0x0,0xe,0x0,0x7,0x0,0x1,0x0,0xfb,0xff,0xf9,0xff, +0xfd,0xff,0x1,0x0,0x5,0x0,0xe,0x0,0x14,0x0,0x15,0x0, +0x15,0x0,0x15,0x0,0x10,0x0,0x9,0x0,0x5,0x0,0x1,0x0, +0x1,0x0,0x8,0x0,0xc,0x0,0xb,0x0,0xc,0x0,0xa,0x0, +0xff,0xff,0xf7,0xff,0xf5,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff, +0xfe,0xff,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0xfe,0xff, +0xfa,0xff,0xf9,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf5,0xff, +0xf4,0xff,0xf3,0xff,0xf2,0xff,0xf2,0xff,0xf2,0xff,0xf3,0xff, +0xf7,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf4,0xff,0xee,0xff, +0xea,0xff,0xe7,0xff,0xe6,0xff,0xe7,0xff,0xe9,0xff,0xee,0xff, +0xf4,0xff,0xf6,0xff,0xf7,0xff,0xf6,0xff,0xf4,0xff,0xf5,0xff, +0xf7,0xff,0xf7,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xf8,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf5,0xff, +0xf4,0xff,0xf8,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xfd,0xff,0xf9,0xff,0xf6,0xff, +0xf6,0xff,0xf9,0xff,0xfe,0xff,0x2,0x0,0x4,0x0,0x4,0x0, +0x2,0x0,0x0,0x0,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff, +0xfb,0xff,0xff,0xff,0x3,0x0,0x4,0x0,0xff,0xff,0xfa,0xff, +0xf8,0xff,0xf5,0xff,0xf1,0xff,0xf0,0xff,0xf4,0xff,0xf8,0xff, +0xfb,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xf7,0xff,0xf6,0xff,0xf9,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0xf8,0xff,0xf3,0xff,0xf2,0xff,0xf0,0xff, +0xee,0xff,0xf4,0xff,0xfc,0xff,0x4,0x0,0x9,0x0,0x8,0x0, +0x6,0x0,0x3,0x0,0x0,0x0,0xff,0xff,0xfc,0xff,0xf9,0xff, +0xfc,0xff,0x1,0x0,0x5,0x0,0x7,0x0,0x8,0x0,0xb,0x0, +0xc,0x0,0x5,0x0,0x0,0x0,0x3,0x0,0x9,0x0,0xc,0x0, +0xe,0x0,0x12,0x0,0x15,0x0,0x13,0x0,0xe,0x0,0xb,0x0, +0x8,0x0,0x4,0x0,0x2,0x0,0x3,0x0,0x9,0x0,0x14,0x0, +0x18,0x0,0x14,0x0,0x12,0x0,0xf,0x0,0x8,0x0,0x2,0x0, +0xfd,0xff,0xf9,0xff,0xfb,0xff,0x1,0x0,0x4,0x0,0x7,0x0, +0xc,0x0,0xc,0x0,0x7,0x0,0x4,0x0,0x0,0x0,0xfd,0xff, +0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0x2,0x0,0xfc,0xff, +0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf8,0xff,0xfb,0xff, +0x1,0x0,0x7,0x0,0xa,0x0,0x9,0x0,0x8,0x0,0x7,0x0, +0xff,0xff,0xf7,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0xfe,0xff, +0x5,0x0,0xd,0x0,0x15,0x0,0x17,0x0,0x13,0x0,0xe,0x0, +0xb,0x0,0x5,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xff,0xff, +0x6,0x0,0xa,0x0,0xe,0x0,0x14,0x0,0x15,0x0,0x11,0x0, +0xe,0x0,0xb,0x0,0x7,0x0,0x3,0x0,0x0,0x0,0xfe,0xff, +0x0,0x0,0x0,0x0,0xfc,0xff,0xfa,0xff,0xfd,0xff,0x1,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf4,0xff,0xf6,0xff, +0xf7,0xff,0xf2,0xff,0xf1,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff, +0xf8,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf5,0xff, +0xef,0xff,0xe8,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xea,0xff, +0xf1,0xff,0xfd,0xff,0x7,0x0,0x8,0x0,0x6,0x0,0x3,0x0, +0xfb,0xff,0xee,0xff,0xe8,0xff,0xe9,0xff,0xec,0xff,0xef,0xff, +0xf9,0xff,0x6,0x0,0xe,0x0,0x10,0x0,0xf,0x0,0xb,0x0, +0x4,0x0,0xfc,0xff,0xfa,0xff,0x0,0x0,0x6,0x0,0x8,0x0, +0xb,0x0,0xd,0x0,0x8,0x0,0x5,0x0,0xff,0xff,0xf4,0xff, +0xef,0xff,0xf2,0xff,0xf7,0xff,0xfe,0xff,0x7,0x0,0xd,0x0, +0x11,0x0,0x11,0x0,0xd,0x0,0x5,0x0,0xfb,0xff,0xf4,0xff, +0xee,0xff,0xee,0xff,0xf6,0xff,0xff,0xff,0x3,0x0,0x7,0x0, +0xe,0x0,0x11,0x0,0xd,0x0,0x3,0x0,0xfb,0xff,0xf9,0xff, +0xf6,0xff,0xf3,0xff,0xf8,0xff,0x3,0x0,0xb,0x0,0xd,0x0, +0xc,0x0,0x8,0x0,0x3,0x0,0xfd,0xff,0xf6,0xff,0xf2,0xff, +0xf8,0xff,0xfe,0xff,0x0,0x0,0x9,0x0,0x14,0x0,0x13,0x0, +0x8,0x0,0x0,0x0,0xfa,0xff,0xf3,0xff,0xee,0xff,0xee,0xff, +0xf6,0xff,0x3,0x0,0xd,0x0,0x10,0x0,0xf,0x0,0xf,0x0, +0x9,0x0,0xfc,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf9,0xff, +0x2,0x0,0xb,0x0,0x11,0x0,0x11,0x0,0xf,0x0,0x9,0x0, +0x3,0x0,0xff,0xff,0xfa,0xff,0xf7,0xff,0xfa,0xff,0xff,0xff, +0x2,0x0,0x5,0x0,0x9,0x0,0x7,0x0,0x3,0x0,0xfb,0xff, +0xf4,0xff,0xf3,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff, +0xfb,0xff,0xfe,0xff,0x1,0x0,0x0,0x0,0xfc,0xff,0xf6,0xff, +0xf7,0xff,0xf8,0xff,0xfa,0xff,0x1,0x0,0x5,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0xfd,0xff,0xf8,0xff,0xf4,0xff,0xf0,0xff, +0xf2,0xff,0xfa,0xff,0xfe,0xff,0x0,0x0,0x3,0x0,0x4,0x0, +0xff,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xf8,0xff,0xf8,0xff, +0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf3,0xff,0xf2,0xff, +0xf6,0xff,0xf8,0xff,0xfa,0xff,0x0,0x0,0x3,0x0,0xfe,0xff, +0xfb,0xff,0xfe,0xff,0xfb,0xff,0xf3,0xff,0xf4,0xff,0xfa,0xff, +0xf8,0xff,0xf8,0xff,0xff,0xff,0x5,0x0,0x1,0x0,0xfb,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf9,0xff, +0x2,0x0,0x5,0x0,0xff,0xff,0x1,0x0,0x5,0x0,0xfe,0xff, +0xf9,0xff,0x1,0x0,0x4,0x0,0xff,0xff,0x2,0x0,0x6,0x0, +0x2,0x0,0xff,0xff,0x0,0x0,0xfc,0xff,0xf9,0xff,0xff,0xff, +0x2,0x0,0x2,0x0,0x8,0x0,0xe,0x0,0xd,0x0,0xa,0x0, +0x9,0x0,0x7,0x0,0x4,0x0,0x6,0x0,0x8,0x0,0x5,0x0, +0x5,0x0,0xd,0x0,0xe,0x0,0x6,0x0,0x4,0x0,0x6,0x0, +0x6,0x0,0x8,0x0,0xd,0x0,0xe,0x0,0xf,0x0,0xe,0x0, +0xc,0x0,0x9,0x0,0x6,0x0,0x2,0x0,0xfd,0xff,0xff,0xff, +0x7,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xc,0x0,0x8,0x0, +0x3,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x3,0x0, +0x8,0x0,0x9,0x0,0x8,0x0,0x7,0x0,0x5,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0x5,0x0,0xa,0x0,0xa,0x0,0xa,0x0, +0xa,0x0,0x6,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x5,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0x7,0x0, +0x3,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x4,0x0, +0x5,0x0,0x6,0x0,0x8,0x0,0x7,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x4,0x0,0x7,0x0,0x9,0x0, +0xa,0x0,0x8,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x3,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0xfe,0xff, +0xf9,0xff,0xf8,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x1,0x0,0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff, +0xf9,0xff,0xf6,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf7,0xff, +0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf6,0xff, +0xf4,0xff,0xf7,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x2,0x0, +0x4,0x0,0x4,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfb,0xff, +0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x3,0x0,0x0,0x0,0xfd,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x3,0x0,0x5,0x0,0x8,0x0, +0xa,0x0,0x7,0x0,0x4,0x0,0x3,0x0,0xff,0xff,0xfc,0xff, +0xfd,0xff,0x0,0x0,0x4,0x0,0x9,0x0,0xb,0x0,0xb,0x0, +0xa,0x0,0x8,0x0,0x4,0x0,0xff,0xff,0xff,0xff,0x2,0x0, +0x5,0x0,0x9,0x0,0xb,0x0,0x9,0x0,0x8,0x0,0x6,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0x0,0x0,0x5,0x0, +0x8,0x0,0x9,0x0,0x8,0x0,0x4,0x0,0x1,0x0,0xfe,0xff, +0xfb,0xff,0xf8,0xff,0xfa,0xff,0xff,0xff,0x3,0x0,0x5,0x0, +0x7,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0xfc,0xff,0xfa,0xff, +0xfc,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0xfe,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xfd,0xff, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xfd,0xff,0x2,0x0,0x4,0x0, +0x3,0x0,0x5,0x0,0x5,0x0,0x2,0x0,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x0,0x0, +0xfd,0xff,0xfc,0xff,0xfa,0xff,0xf7,0xff,0xf7,0xff,0xf9,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xf8,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x5,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x5,0x0,0x5,0x0,0x2,0x0,0x1,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x6,0x0,0x5,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0x1,0x0,0x4,0x0,0x6,0x0,0x7,0x0, +0x7,0x0,0x7,0x0,0x7,0x0,0x5,0x0,0x2,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x4,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x6,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x7,0x0, +0x5,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0xff,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x6,0x0,0x8,0x0,0x6,0x0,0x1,0x0, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xff,0xff, +0x3,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x2,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x0,0x0,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x0,0x0, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfe,0xff,0x2,0x0,0x3,0x0,0xff,0xff,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0x1,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff, +0xfd,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x5,0x0,0x6,0x0, +0x4,0x0,0x2,0x0,0xfe,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff, +0xfc,0xff,0xff,0xff,0xff,0xff,0x2,0x0,0x6,0x0,0x4,0x0, +0xff,0xff,0xfc,0xff,0xff,0xff,0x3,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x1,0x0,0x7,0x0, +0xc,0x0,0x10,0x0,0xe,0x0,0x9,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x4,0x0,0x7,0x0, +0x7,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0x0,0x0,0x2,0x0,0x6,0x0,0x9,0x0,0x8,0x0, +0x2,0x0,0xfc,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff,0xfc,0xff, +0xf9,0xff,0xfc,0xff,0x1,0x0,0x4,0x0,0x7,0x0,0x7,0x0, +0x4,0x0,0x2,0x0,0x0,0x0,0xfc,0xff,0xf9,0xff,0xfc,0xff, +0x1,0x0,0x6,0x0,0x9,0x0,0x7,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xfb,0xff,0xf8,0xff,0xfb,0xff,0x1,0x0, +0x6,0x0,0x8,0x0,0x7,0x0,0x5,0x0,0x3,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0x0,0x0,0xff,0xff,0xfa,0xff,0xfa,0xff,0xfe,0xff,0x2,0x0, +0x2,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfa,0xff,0xf7,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff, +0x2,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfb,0xff, +0xf8,0xff,0xf8,0xff,0xfb,0xff,0x0,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xf9,0xff, +0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0x2,0x0,0x7,0x0, +0x7,0x0,0x6,0x0,0x4,0x0,0xff,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0x1,0x0,0x5,0x0,0xa,0x0,0xb,0x0,0x7,0x0, +0x0,0x0,0xf9,0xff,0xf4,0xff,0xf5,0xff,0xfa,0xff,0xff,0xff, +0x4,0x0,0xb,0x0,0xe,0x0,0xe,0x0,0xb,0x0,0x3,0x0, +0xfb,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xfa,0xff,0x1,0x0, +0x7,0x0,0xb,0x0,0xd,0x0,0xc,0x0,0x7,0x0,0x3,0x0, +0x0,0x0,0xfb,0xff,0xf6,0xff,0xf8,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0x1,0x0,0x5,0x0,0x5,0x0, +0x1,0x0,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0x0,0x0,0x6,0x0, +0x9,0x0,0x8,0x0,0x5,0x0,0xff,0xff,0xfb,0xff,0xfd,0xff, +0xfc,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0x2,0x0, +0x5,0x0,0x4,0x0,0x6,0x0,0xa,0x0,0x8,0x0,0x3,0x0, +0xfd,0xff,0xf9,0xff,0xfa,0xff,0x0,0x0,0x5,0x0,0x4,0x0, +0xff,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff, +0xfc,0xff,0x1,0x0,0x5,0x0,0x6,0x0,0x2,0x0,0xfe,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0x1,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff,0x2,0x0, +0x5,0x0,0x7,0x0,0x3,0x0,0xfc,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0x1,0x0,0x5,0x0,0x8,0x0,0xa,0x0,0x8,0x0, +0x2,0x0,0xfd,0xff,0xfb,0xff,0xf8,0xff,0xf8,0xff,0xfd,0xff, +0x1,0x0,0x4,0x0,0x7,0x0,0x5,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff, +0x0,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x3,0x0,0x7,0x0,0x9,0x0, +0x5,0x0,0xff,0xff,0xfa,0xff,0xf8,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff,0x2,0x0,0x3,0x0, +0x2,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfa,0xff,0xf9,0xff,0xfb,0xff,0xff,0xff,0x3,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x2,0x0,0x2,0x0, +0x4,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0xff,0xff,0xf9,0xff, +0xf8,0xff,0xfe,0xff,0x3,0x0,0x4,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x3,0x0,0x0,0x0,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x7,0x0, +0x5,0x0,0xff,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0x0,0x0, +0x5,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x5,0x0,0x0,0x0, +0xfe,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0xfd,0xff,0xfb,0xff,0xfd,0xff,0x1,0x0,0x4,0x0,0x6,0x0, +0x6,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x3,0x0, +0x6,0x0,0x5,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x3,0x0,0x2,0x0, +0xff,0xff,0xfc,0xff,0xfa,0xff,0xfe,0xff,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0, +0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfd,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xfa,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfb,0xff,0xf9,0xff, +0xfb,0xff,0x0,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0xff,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0x0,0x0,0x3,0x0,0x5,0x0,0x4,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x5,0x0,0x6,0x0, +0x4,0x0,0x1,0x0,0x1,0x0,0x4,0x0,0x4,0x0,0x0,0x0, +0xfb,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0x0,0x0,0x2,0x0,0x0,0x0,0xfd,0xff,0xff,0xff, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x6,0x0, +0x7,0x0,0x7,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x4,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0x0,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0xff,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x4,0x0,0x5,0x0,0x1,0x0,0xfd,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0xff,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0xff,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0x0,0x0,0x3,0x0,0x6,0x0,0xa,0x0, +0xa,0x0,0x5,0x0,0xfe,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff, +0xfb,0xff,0xff,0xff,0x3,0x0,0x2,0x0,0xfd,0xff,0xf9,0xff, +0xf8,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfb,0xff,0xff,0xff,0x2,0x0, +0x4,0x0,0x3,0x0,0xff,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xfe,0xff,0x1,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0xfe,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff, +0x4,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0x1,0x0, +0x3,0x0,0x5,0x0,0x7,0x0,0x6,0x0,0x3,0x0,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x4,0x0, +0x6,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x1,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x5,0x0,0x8,0x0,0x9,0x0,0x6,0x0, +0x2,0x0,0xff,0xff,0xfb,0xff,0xfb,0xff,0xff,0xff,0x4,0x0, +0x6,0x0,0x5,0x0,0x1,0x0,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfd,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0,0x1,0x0, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xff,0xff,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0x1,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xf9,0xff,0xfa,0xff,0xfe,0xff,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xfd,0xff, +0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff,0xfb,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x1,0x0, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x4,0x0,0x3,0x0, +0x1,0x0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x4,0x0,0x7,0x0,0x5,0x0,0x2,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x5,0x0,0x4,0x0, +0x1,0x0,0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfc,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0x2,0x0,0x5,0x0,0x3,0x0,0xff,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfb,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x3,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xff,0xff,0x2,0x0,0x4,0x0, +0x3,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x1,0x0,0xfd,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0,0x3,0x0, +0x5,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x2,0x0,0xfd,0xff,0xfa,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0xfe,0xff, +0x0,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zombie3.pcm b/src/client/sound/data/zombie3.pcm new file mode 100755 index 0000000..56194a0 --- /dev/null +++ b/src/client/sound/data/zombie3.pcm @@ -0,0 +1,15623 @@ +unsigned char PCM_zombie3[187442] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x11,0x6e,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff, +0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff, +0xf9,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x1,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff, +0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff, +0xf7,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff, +0xf9,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x4,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xf9,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff, +0xf1,0xff,0xef,0xff,0xed,0xff,0xeb,0xff,0xe9,0xff,0xe8,0xff, +0xe8,0xff,0xe8,0xff,0xe7,0xff,0xe7,0xff,0xeb,0xff,0xed,0xff, +0xef,0xff,0xf0,0xff,0xf3,0xff,0xf5,0xff,0xf8,0xff,0xf9,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xf8,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf1,0xff, +0xf2,0xff,0xf3,0xff,0xf1,0xff,0xf1,0xff,0xf4,0xff,0xf4,0xff, +0xf5,0xff,0xf6,0xff,0xf6,0xff,0xf8,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0x1,0x0,0x5,0x0,0x7,0x0,0x8,0x0,0xa,0x0, +0xf,0x0,0x13,0x0,0x12,0x0,0x14,0x0,0x18,0x0,0x18,0x0, +0x18,0x0,0x19,0x0,0x18,0x0,0x17,0x0,0x14,0x0,0x10,0x0, +0xd,0x0,0xb,0x0,0x8,0x0,0x4,0x0,0xff,0xff,0xfb,0xff, +0xf8,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf0,0xff,0xf0,0xff, +0xf2,0xff,0xf3,0xff,0xf2,0xff,0xf4,0xff,0xf9,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x5,0x0,0xb,0x0,0xe,0x0,0x10,0x0, +0x13,0x0,0x17,0x0,0x19,0x0,0x19,0x0,0x1b,0x0,0x1f,0x0, +0x20,0x0,0x1f,0x0,0x1e,0x0,0x1e,0x0,0x1e,0x0,0x1b,0x0, +0x18,0x0,0x15,0x0,0x11,0x0,0xc,0x0,0x8,0x0,0x4,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0, +0x4,0x0,0x6,0x0,0x8,0x0,0xb,0x0,0xe,0x0,0x10,0x0, +0x10,0x0,0xf,0x0,0x10,0x0,0x11,0x0,0x10,0x0,0xe,0x0, +0xb,0x0,0xa,0x0,0xb,0x0,0x9,0x0,0x7,0x0,0x8,0x0, +0xa,0x0,0xa,0x0,0xa,0x0,0x9,0x0,0x9,0x0,0xc,0x0, +0xb,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x4,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x2,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x6,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x6,0x0, +0x8,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xc,0x0,0xe,0x0, +0x11,0x0,0x12,0x0,0x13,0x0,0x16,0x0,0x18,0x0,0x16,0x0, +0x15,0x0,0x14,0x0,0x11,0x0,0xd,0x0,0xa,0x0,0x8,0x0, +0x7,0x0,0x3,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x6,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0xa,0x0,0x9,0x0, +0x7,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfc,0xff, +0xf8,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff, +0x2,0x0,0x4,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0xff,0xff,0xfc,0xff,0xf9,0xff,0xf7,0xff, +0xf7,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff,0xf9,0xff,0xfb,0xff, +0xfe,0xff,0x2,0x0,0x3,0x0,0x3,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0xb,0x0,0xf,0x0,0xf,0x0,0xb,0x0,0xa,0x0, +0xa,0x0,0x8,0x0,0x3,0x0,0x0,0x0,0xfd,0xff,0xfa,0xff, +0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf8,0xff,0xf8,0xff,0xf5,0xff, +0xf6,0xff,0xf9,0xff,0xfa,0xff,0xf8,0xff,0xf5,0xff,0xf5,0xff, +0xf7,0xff,0xf3,0xff,0xec,0xff,0xeb,0xff,0xed,0xff,0xee,0xff, +0xed,0xff,0xec,0xff,0xef,0xff,0xf4,0xff,0xf6,0xff,0xf7,0xff, +0xfc,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x1,0x0, +0xfd,0xff,0xf7,0xff,0xf3,0xff,0xf1,0xff,0xef,0xff,0xec,0xff, +0xe8,0xff,0xe7,0xff,0xea,0xff,0xea,0xff,0xe8,0xff,0xe9,0xff, +0xec,0xff,0xec,0xff,0xeb,0xff,0xeb,0xff,0xeb,0xff,0xe8,0xff, +0xe5,0xff,0xe2,0xff,0xe3,0xff,0xe3,0xff,0xe1,0xff,0xe1,0xff, +0xe6,0xff,0xeb,0xff,0xee,0xff,0xf2,0xff,0xf7,0xff,0xfc,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xfb,0xff, +0xf8,0xff,0xf4,0xff,0xf0,0xff,0xee,0xff,0xed,0xff,0xed,0xff, +0xed,0xff,0xec,0xff,0xed,0xff,0xf1,0xff,0xf3,0xff,0xf3,0xff, +0xf3,0xff,0xf3,0xff,0xf4,0xff,0xf2,0xff,0xee,0xff,0xed,0xff, +0xef,0xff,0xee,0xff,0xec,0xff,0xec,0xff,0xf2,0xff,0xf9,0xff, +0xfc,0xff,0xfe,0xff,0x4,0x0,0x9,0x0,0xd,0x0,0xd,0x0, +0xd,0x0,0xd,0x0,0xa,0x0,0x3,0x0,0xfd,0xff,0xf8,0xff, +0xf3,0xff,0xf0,0xff,0xed,0xff,0xea,0xff,0xe9,0xff,0xe9,0xff, +0xea,0xff,0xec,0xff,0xee,0xff,0xef,0xff,0xf0,0xff,0xef,0xff, +0xee,0xff,0xeb,0xff,0xe9,0xff,0xe8,0xff,0xe5,0xff,0xe3,0xff, +0xe2,0xff,0xe2,0xff,0xe4,0xff,0xe7,0xff,0xe8,0xff,0xe9,0xff, +0xec,0xff,0xef,0xff,0xf0,0xff,0xef,0xff,0xee,0xff,0xee,0xff, +0xea,0xff,0xe2,0xff,0xdc,0xff,0xda,0xff,0xd9,0xff,0xd6,0xff, +0xd3,0xff,0xd3,0xff,0xd6,0xff,0xd9,0xff,0xdb,0xff,0xe0,0xff, +0xe5,0xff,0xe9,0xff,0xeb,0xff,0xec,0xff,0xee,0xff,0xef,0xff, +0xf0,0xff,0xee,0xff,0xeb,0xff,0xe9,0xff,0xe9,0xff,0xe9,0xff, +0xea,0xff,0xea,0xff,0xe8,0xff,0xea,0xff,0xed,0xff,0xed,0xff, +0xec,0xff,0xec,0xff,0xeb,0xff,0xe8,0xff,0xe3,0xff,0xdc,0xff, +0xd8,0xff,0xd3,0xff,0xcc,0xff,0xc7,0xff,0xc5,0xff,0xc5,0xff, +0xc5,0xff,0xc5,0xff,0xc9,0xff,0xd1,0xff,0xd5,0xff,0xd8,0xff, +0xdd,0xff,0xe3,0xff,0xe4,0xff,0xe4,0xff,0xe5,0xff,0xe2,0xff, +0xde,0xff,0xdc,0xff,0xdd,0xff,0xdd,0xff,0xdc,0xff,0xdb,0xff, +0xdc,0xff,0xdf,0xff,0xe3,0xff,0xe5,0xff,0xe7,0xff,0xe8,0xff, +0xe8,0xff,0xe6,0xff,0xe4,0xff,0xe1,0xff,0xdd,0xff,0xda,0xff, +0xd9,0xff,0xd6,0xff,0xd4,0xff,0xd5,0xff,0xda,0xff,0xde,0xff, +0xe2,0xff,0xe9,0xff,0xf0,0xff,0xf6,0xff,0xfc,0xff,0x1,0x0, +0x4,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x1,0x0, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0x1,0x0,0x1,0x0,0x2,0x0,0x5,0x0,0x6,0x0, +0x5,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xfc,0xff,0xf8,0xff, +0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xfb,0xff, +0xff,0xff,0x1,0x0,0x5,0x0,0xa,0x0,0xe,0x0,0x11,0x0, +0x12,0x0,0x12,0x0,0x11,0x0,0xf,0x0,0xc,0x0,0xb,0x0, +0xa,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0xb,0x0, +0xf,0x0,0x13,0x0,0x14,0x0,0x15,0x0,0x17,0x0,0x18,0x0, +0x16,0x0,0x14,0x0,0x10,0x0,0xc,0x0,0x8,0x0,0x4,0x0, +0xff,0xff,0xfc,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0,0x1,0x0, +0x4,0x0,0xb,0x0,0x10,0x0,0x12,0x0,0x14,0x0,0x17,0x0, +0x19,0x0,0x17,0x0,0x15,0x0,0x14,0x0,0x13,0x0,0x11,0x0, +0x12,0x0,0x16,0x0,0x1a,0x0,0x1b,0x0,0x1e,0x0,0x27,0x0, +0x2f,0x0,0x32,0x0,0x34,0x0,0x37,0x0,0x39,0x0,0x37,0x0, +0x33,0x0,0x32,0x0,0x2f,0x0,0x27,0x0,0x21,0x0,0x1f,0x0, +0x1a,0x0,0x16,0x0,0x16,0x0,0x18,0x0,0x19,0x0,0x19,0x0, +0x19,0x0,0x1b,0x0,0x1f,0x0,0x20,0x0,0x1f,0x0,0x1c,0x0, +0x18,0x0,0x16,0x0,0x15,0x0,0x12,0x0,0xf,0x0,0x10,0x0, +0x13,0x0,0x14,0x0,0x14,0x0,0x18,0x0,0x20,0x0,0x27,0x0, +0x29,0x0,0x2b,0x0,0x2d,0x0,0x2e,0x0,0x2c,0x0,0x2b,0x0, +0x29,0x0,0x26,0x0,0x21,0x0,0x1b,0x0,0x17,0x0,0x16,0x0, +0x17,0x0,0x18,0x0,0x1a,0x0,0x1b,0x0,0x1e,0x0,0x21,0x0, +0x24,0x0,0x24,0x0,0x26,0x0,0x28,0x0,0x26,0x0,0x21,0x0, +0x1e,0x0,0x1d,0x0,0x19,0x0,0x12,0x0,0xe,0x0,0x10,0x0, +0x12,0x0,0x11,0x0,0x10,0x0,0x11,0x0,0x17,0x0,0x1b,0x0, +0x1b,0x0,0x1c,0x0,0x1c,0x0,0x1c,0x0,0x1c,0x0,0x1b,0x0, +0x1a,0x0,0x19,0x0,0x18,0x0,0x19,0x0,0x1a,0x0,0x1b,0x0, +0x1f,0x0,0x26,0x0,0x2b,0x0,0x2f,0x0,0x34,0x0,0x38,0x0, +0x38,0x0,0x38,0x0,0x38,0x0,0x34,0x0,0x2f,0x0,0x26,0x0, +0x1e,0x0,0x18,0x0,0x12,0x0,0xa,0x0,0x3,0x0,0xfd,0xff, +0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff, +0xf7,0xff,0xfa,0xff,0xfe,0xff,0x1,0x0,0x4,0x0,0x8,0x0, +0x9,0x0,0xa,0x0,0xe,0x0,0x11,0x0,0x15,0x0,0x19,0x0, +0x1b,0x0,0x1e,0x0,0x1d,0x0,0x1d,0x0,0x20,0x0,0x22,0x0, +0x21,0x0,0x1d,0x0,0x16,0x0,0x11,0x0,0xe,0x0,0x7,0x0, +0xfe,0xff,0xf4,0xff,0xea,0xff,0xe0,0xff,0xd8,0xff,0xd4,0xff, +0xd3,0xff,0xd1,0xff,0xcc,0xff,0xcd,0xff,0xd3,0xff,0xd9,0xff, +0xdf,0xff,0xe7,0xff,0xee,0xff,0xf5,0xff,0xf9,0xff,0xfc,0xff, +0x1,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0xa,0x0,0xc,0x0, +0xb,0x0,0x10,0x0,0x18,0x0,0x1d,0x0,0x1f,0x0,0x23,0x0, +0x28,0x0,0x2c,0x0,0x2b,0x0,0x2a,0x0,0x28,0x0,0x21,0x0, +0x15,0x0,0xc,0x0,0x6,0x0,0x2,0x0,0xf8,0xff,0xec,0xff, +0xe7,0xff,0xe6,0xff,0xe4,0xff,0xe1,0xff,0xe3,0xff,0xe9,0xff, +0xed,0xff,0xf0,0xff,0xf3,0xff,0xf5,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0x3,0x0, +0x8,0x0,0xd,0x0,0x12,0x0,0x1b,0x0,0x26,0x0,0x2e,0x0, +0x35,0x0,0x3e,0x0,0x43,0x0,0x40,0x0,0x39,0x0,0x32,0x0, +0x2a,0x0,0x1f,0x0,0x13,0x0,0x5,0x0,0xf8,0xff,0xf0,0xff, +0xe8,0xff,0xe4,0xff,0xe3,0xff,0xe4,0xff,0xe7,0xff,0xea,0xff, +0xeb,0xff,0xeb,0xff,0xed,0xff,0xed,0xff,0xe7,0xff,0xde,0xff, +0xd8,0xff,0xd5,0xff,0xcf,0xff,0xc7,0xff,0xc5,0xff,0xcc,0xff, +0xd4,0xff,0xd6,0xff,0xdd,0xff,0xeb,0xff,0xf7,0xff,0xfd,0xff, +0x0,0x0,0x6,0x0,0xa,0x0,0x4,0x0,0xfa,0xff,0xf3,0xff, +0xf1,0xff,0xeb,0xff,0xde,0xff,0xd6,0xff,0xd8,0xff,0xd7,0xff, +0xd3,0xff,0xd2,0xff,0xd5,0xff,0xdc,0xff,0xe0,0xff,0xdf,0xff, +0xe0,0xff,0xe3,0xff,0xe2,0xff,0xdf,0xff,0xdc,0xff,0xd8,0xff, +0xd4,0xff,0xcf,0xff,0xcf,0xff,0xd3,0xff,0xd3,0xff,0xd2,0xff, +0xd5,0xff,0xdb,0xff,0xdf,0xff,0xe0,0xff,0xe2,0xff,0xe1,0xff, +0xdd,0xff,0xd6,0xff,0xd2,0xff,0xd3,0xff,0xcf,0xff,0xc2,0xff, +0xb9,0xff,0xbb,0xff,0xbe,0xff,0xbb,0xff,0xbb,0xff,0xc2,0xff, +0xcb,0xff,0xd3,0xff,0xd8,0xff,0xdf,0xff,0xed,0xff,0xf6,0xff, +0xf4,0xff,0xf4,0xff,0xf8,0xff,0xfe,0xff,0x1,0x0,0xfc,0xff, +0xf7,0xff,0xfa,0xff,0xfd,0xff,0xfa,0xff,0xf7,0xff,0xfa,0xff, +0x1,0x0,0x2,0x0,0xfa,0xff,0xf3,0xff,0xf4,0xff,0xf5,0xff, +0xef,0xff,0xe3,0xff,0xd8,0xff,0xcf,0xff,0xca,0xff,0xc3,0xff, +0xbc,0xff,0xb6,0xff,0xb4,0xff,0xb1,0xff,0xab,0xff,0xa8,0xff, +0xad,0xff,0xb0,0xff,0xad,0xff,0xa7,0xff,0xa4,0xff,0xa5,0xff, +0xa5,0xff,0xa2,0xff,0xa4,0xff,0xa8,0xff,0xa8,0xff,0xa8,0xff, +0xab,0xff,0xb0,0xff,0xb9,0xff,0xbf,0xff,0xc6,0xff,0xcd,0xff, +0xce,0xff,0xcf,0xff,0xd5,0xff,0xd9,0xff,0xda,0xff,0xd5,0xff, +0xd0,0xff,0xce,0xff,0xcc,0xff,0xc7,0xff,0xc0,0xff,0xb8,0xff, +0xb2,0xff,0xaa,0xff,0x9e,0xff,0x92,0xff,0x89,0xff,0x82,0xff, +0x79,0xff,0x6a,0xff,0x5f,0xff,0x5d,0xff,0x5c,0xff,0x58,0xff, +0x57,0xff,0x5f,0xff,0x64,0xff,0x64,0xff,0x65,0xff,0x6c,0xff, +0x7d,0xff,0x8b,0xff,0x89,0xff,0x85,0xff,0x8a,0xff,0x92,0xff, +0x97,0xff,0x98,0xff,0x9c,0xff,0xa8,0xff,0xb0,0xff,0xb4,0xff, +0xba,0xff,0xc0,0xff,0xc3,0xff,0xc3,0xff,0xbf,0xff,0xb9,0xff, +0xb2,0xff,0xad,0xff,0xaa,0xff,0xa5,0xff,0x9d,0xff,0x96,0xff, +0x94,0xff,0x95,0xff,0x96,0xff,0x96,0xff,0x9b,0xff,0xa3,0xff, +0xa5,0xff,0xa3,0xff,0xa8,0xff,0xaf,0xff,0xb0,0xff,0xb0,0xff, +0xb1,0xff,0xb1,0xff,0xb1,0xff,0xb2,0xff,0xb1,0xff,0xb2,0xff, +0xb5,0xff,0xbc,0xff,0xc6,0xff,0xd0,0xff,0xda,0xff,0xe6,0xff, +0xf6,0xff,0x5,0x0,0xe,0x0,0x17,0x0,0x22,0x0,0x2b,0x0, +0x2d,0x0,0x2e,0x0,0x35,0x0,0x3c,0x0,0x3f,0x0,0x42,0x0, +0x45,0x0,0x4d,0x0,0x57,0x0,0x5e,0x0,0x63,0x0,0x67,0x0, +0x68,0x0,0x65,0x0,0x5e,0x0,0x54,0x0,0x4a,0x0,0x3e,0x0, +0x2c,0x0,0x17,0x0,0x6,0x0,0xff,0xff,0xfa,0xff,0xf3,0xff, +0xf2,0xff,0xf7,0xff,0x4,0x0,0x12,0x0,0x1f,0x0,0x32,0x0, +0x42,0x0,0x4c,0x0,0x56,0x0,0x5e,0x0,0x64,0x0,0x68,0x0, +0x6c,0x0,0x73,0x0,0x76,0x0,0x77,0x0,0x80,0x0,0x8a,0x0, +0x91,0x0,0x97,0x0,0x9f,0x0,0xa9,0x0,0xaa,0x0,0xa4,0x0, +0xa0,0x0,0x9c,0x0,0x91,0x0,0x7f,0x0,0x68,0x0,0x58,0x0, +0x47,0x0,0x32,0x0,0x25,0x0,0x1e,0x0,0x14,0x0,0xf,0x0, +0x11,0x0,0x19,0x0,0x25,0x0,0x31,0x0,0x39,0x0,0x3f,0x0, +0x44,0x0,0x4b,0x0,0x4e,0x0,0x48,0x0,0x3d,0x0,0x37,0x0, +0x35,0x0,0x30,0x0,0x29,0x0,0x29,0x0,0x32,0x0,0x41,0x0, +0x47,0x0,0x48,0x0,0x52,0x0,0x61,0x0,0x68,0x0,0x66,0x0, +0x62,0x0,0x60,0x0,0x58,0x0,0x47,0x0,0x3a,0x0,0x38,0x0, +0x39,0x0,0x30,0x0,0x23,0x0,0x25,0x0,0x35,0x0,0x40,0x0, +0x43,0x0,0x48,0x0,0x57,0x0,0x64,0x0,0x63,0x0,0x5e,0x0, +0x61,0x0,0x64,0x0,0x5c,0x0,0x4e,0x0,0x45,0x0,0x41,0x0, +0x3d,0x0,0x37,0x0,0x34,0x0,0x37,0x0,0x3d,0x0,0x43,0x0, +0x4c,0x0,0x5b,0x0,0x6b,0x0,0x78,0x0,0x81,0x0,0x8b,0x0, +0x93,0x0,0x93,0x0,0x8f,0x0,0x8d,0x0,0x89,0x0,0x84,0x0, +0x80,0x0,0x7e,0x0,0x7c,0x0,0x7e,0x0,0x8a,0x0,0x97,0x0, +0x9d,0x0,0x9f,0x0,0xa2,0x0,0xab,0x0,0xae,0x0,0x9e,0x0, +0x88,0x0,0x7a,0x0,0x67,0x0,0x4c,0x0,0x35,0x0,0x24,0x0, +0x14,0x0,0x7,0x0,0x7,0x0,0x11,0x0,0x1c,0x0,0x24,0x0, +0x31,0x0,0x43,0x0,0x4b,0x0,0x46,0x0,0x45,0x0,0x42,0x0, +0x32,0x0,0x22,0x0,0x16,0x0,0xc,0x0,0x1,0x0,0xf3,0xff, +0xf7,0xff,0xe,0x0,0x18,0x0,0x18,0x0,0x26,0x0,0x3e,0x0, +0x50,0x0,0x50,0x0,0x4c,0x0,0x4d,0x0,0x46,0x0,0x33,0x0, +0x1d,0x0,0xa,0x0,0xfa,0xff,0xe6,0xff,0xcf,0xff,0xbf,0xff, +0xb8,0xff,0xbc,0xff,0xc4,0xff,0xc8,0xff,0xd0,0xff,0xdf,0xff, +0xed,0xff,0xf1,0xff,0xed,0xff,0xed,0xff,0xef,0xff,0xe3,0xff, +0xce,0xff,0xc0,0xff,0xbe,0xff,0xb0,0xff,0x99,0xff,0x96,0xff, +0xa5,0xff,0xae,0xff,0xb3,0xff,0xc5,0xff,0xe3,0xff,0xf8,0xff, +0xfc,0xff,0x7,0x0,0x1c,0x0,0x23,0x0,0x17,0x0,0x9,0x0, +0x0,0x0,0xfa,0xff,0xea,0xff,0xdd,0xff,0xe7,0xff,0xf7,0xff, +0x1,0x0,0x10,0x0,0x29,0x0,0x47,0x0,0x65,0x0,0x7f,0x0, +0x8e,0x0,0x90,0x0,0x8c,0x0,0x82,0x0,0x6c,0x0,0x50,0x0, +0x35,0x0,0x1b,0x0,0xff,0xff,0xe6,0xff,0xd8,0xff,0xd8,0xff, +0xe0,0xff,0xe8,0xff,0xf5,0xff,0x5,0x0,0x15,0x0,0x28,0x0, +0x39,0x0,0x44,0x0,0x4b,0x0,0x48,0x0,0x44,0x0,0x44,0x0, +0x3a,0x0,0x34,0x0,0x3c,0x0,0x40,0x0,0x43,0x0,0x52,0x0, +0x69,0x0,0x82,0x0,0x98,0x0,0xa7,0x0,0xb5,0x0,0xbe,0x0, +0xbf,0x0,0xb8,0x0,0xa6,0x0,0x91,0x0,0x75,0x0,0x4e,0x0, +0x27,0x0,0x7,0x0,0xf2,0xff,0xe8,0xff,0xde,0xff,0xd8,0xff, +0xd9,0xff,0xe4,0xff,0xf3,0xff,0xff,0xff,0x6,0x0,0x9,0x0, +0x5,0x0,0xfd,0xff,0xf3,0xff,0xdf,0xff,0xc7,0xff,0xb7,0xff, +0xad,0xff,0xa0,0xff,0x99,0xff,0xa4,0xff,0xb7,0xff,0xc6,0xff, +0xd0,0xff,0xde,0xff,0xfb,0xff,0x13,0x0,0x11,0x0,0xb,0x0, +0x8,0x0,0xfa,0xff,0xe5,0xff,0xd0,0xff,0xc4,0xff,0xbf,0xff, +0xb2,0xff,0xa4,0xff,0xa5,0xff,0xb0,0xff,0xbd,0xff,0xcc,0xff, +0xde,0xff,0xf2,0xff,0xfe,0xff,0x2,0x0,0x1,0x0,0xff,0xff, +0xfc,0xff,0xee,0xff,0xd2,0xff,0xb4,0xff,0x9c,0xff,0x8c,0xff, +0x7b,0xff,0x65,0xff,0x59,0xff,0x5c,0xff,0x67,0xff,0x74,0xff, +0x81,0xff,0x95,0xff,0xa9,0xff,0xb7,0xff,0xc5,0xff,0xd4,0xff, +0xda,0xff,0xda,0xff,0xd5,0xff,0xd1,0xff,0xd1,0xff,0xd0,0xff, +0xd2,0xff,0xde,0xff,0xec,0xff,0xfa,0xff,0xb,0x0,0x17,0x0, +0x1c,0x0,0x24,0x0,0x29,0x0,0x1c,0x0,0x0,0x0,0xdd,0xff, +0xbd,0xff,0x9b,0xff,0x70,0xff,0x41,0xff,0x1d,0xff,0x6,0xff, +0xf7,0xfe,0xed,0xfe,0xef,0xfe,0xfc,0xfe,0xc,0xff,0x24,0xff, +0x45,0xff,0x5f,0xff,0x74,0xff,0x8c,0xff,0xa0,0xff,0xab,0xff, +0xac,0xff,0xa9,0xff,0xaa,0xff,0x9f,0xff,0x8d,0xff,0x7f,0xff, +0x77,0xff,0x75,0xff,0x73,0xff,0x6d,0xff,0x6f,0xff,0x76,0xff, +0x75,0xff,0x6e,0xff,0x60,0xff,0x4e,0xff,0x3f,0xff,0x27,0xff, +0x1,0xff,0xe0,0xfe,0xca,0xfe,0xb4,0xfe,0x9a,0xfe,0x8a,0xfe, +0x8c,0xfe,0x9b,0xfe,0xa6,0xfe,0xad,0xfe,0xc7,0xfe,0xee,0xfe, +0x5,0xff,0xe,0xff,0x19,0xff,0x27,0xff,0x2a,0xff,0x1c,0xff, +0x12,0xff,0x13,0xff,0x11,0xff,0x10,0xff,0xc,0xff,0x5,0xff, +0x5,0xff,0x3,0xff,0xa,0xff,0x21,0xff,0x30,0xff,0x37,0xff, +0x45,0xff,0x56,0xff,0x61,0xff,0x62,0xff,0x61,0xff,0x65,0xff, +0x60,0xff,0x51,0xff,0x48,0xff,0x43,0xff,0x41,0xff,0x3d,0xff, +0x37,0xff,0x39,0xff,0x3f,0xff,0x40,0xff,0x46,0xff,0x52,0xff, +0x5d,0xff,0x5d,0xff,0x53,0xff,0x47,0xff,0x40,0xff,0x3b,0xff, +0x35,0xff,0x2e,0xff,0x27,0xff,0x21,0xff,0x23,0xff,0x26,0xff, +0x26,0xff,0x2b,0xff,0x37,0xff,0x42,0xff,0x4d,0xff,0x59,0xff, +0x68,0xff,0x7a,0xff,0x86,0xff,0x89,0xff,0x8b,0xff,0x8d,0xff, +0x8f,0xff,0x8d,0xff,0x89,0xff,0x8a,0xff,0x8c,0xff,0x8a,0xff, +0x8a,0xff,0x93,0xff,0xa4,0xff,0xb2,0xff,0xb9,0xff,0xbb,0xff, +0xc0,0xff,0xcb,0xff,0xd2,0xff,0xd1,0xff,0xce,0xff,0xc6,0xff, +0xbb,0xff,0xb5,0xff,0xb0,0xff,0xad,0xff,0xad,0xff,0xb0,0xff, +0xb6,0xff,0xbe,0xff,0xc4,0xff,0xd3,0xff,0xe7,0xff,0xf5,0xff, +0x0,0x0,0xf,0x0,0x1e,0x0,0x24,0x0,0x28,0x0,0x2f,0x0, +0x36,0x0,0x39,0x0,0x37,0x0,0x36,0x0,0x3e,0x0,0x4d,0x0, +0x5b,0x0,0x67,0x0,0x75,0x0,0x89,0x0,0xa1,0x0,0xbb,0x0, +0xcd,0x0,0xd5,0x0,0xe2,0x0,0xee,0x0,0xea,0x0,0xde,0x0, +0xd2,0x0,0xc8,0x0,0xba,0x0,0xa6,0x0,0x98,0x0,0x95,0x0, +0x8a,0x0,0x7c,0x0,0x74,0x0,0x75,0x0,0x7a,0x0,0x73,0x0, +0x67,0x0,0x65,0x0,0x5f,0x0,0x4e,0x0,0x3e,0x0,0x34,0x0, +0x2c,0x0,0x23,0x0,0x1f,0x0,0x2b,0x0,0x39,0x0,0x44,0x0, +0x53,0x0,0x6f,0x0,0x95,0x0,0xb2,0x0,0xc2,0x0,0xdb,0x0, +0xfc,0x0,0xf,0x1,0x14,0x1,0x14,0x1,0x18,0x1,0x19,0x1, +0xf,0x1,0x2,0x1,0xf6,0x0,0xe8,0x0,0xd9,0x0,0xc8,0x0, +0xb6,0x0,0xa7,0x0,0x97,0x0,0x82,0x0,0x71,0x0,0x65,0x0, +0x54,0x0,0x3b,0x0,0x21,0x0,0x8,0x0,0xf9,0xff,0xef,0xff, +0xda,0xff,0xc3,0xff,0xbc,0xff,0xba,0xff,0xb7,0xff,0xb8,0xff, +0xc2,0xff,0xd9,0xff,0xef,0xff,0x3,0x0,0x1d,0x0,0x38,0x0, +0x4f,0x0,0x63,0x0,0x77,0x0,0x8a,0x0,0x91,0x0,0x8e,0x0, +0x91,0x0,0x99,0x0,0x97,0x0,0x8b,0x0,0x81,0x0,0x85,0x0, +0x8a,0x0,0x83,0x0,0x7c,0x0,0x7d,0x0,0x7c,0x0,0x73,0x0, +0x67,0x0,0x5f,0x0,0x55,0x0,0x41,0x0,0x2b,0x0,0x20,0x0, +0x15,0x0,0xfe,0xff,0xe8,0xff,0xde,0xff,0xdb,0xff,0xd6,0xff, +0xcf,0xff,0xd5,0xff,0xe9,0xff,0xf6,0xff,0xff,0xff,0x15,0x0, +0x2d,0x0,0x41,0x0,0x4f,0x0,0x5e,0x0,0x72,0x0,0x7d,0x0, +0x7c,0x0,0x7e,0x0,0x89,0x0,0x90,0x0,0x8d,0x0,0x89,0x0, +0x95,0x0,0xa2,0x0,0xa6,0x0,0xa8,0x0,0xab,0x0,0xb0,0x0, +0xaf,0x0,0xa4,0x0,0xa1,0x0,0x9b,0x0,0x82,0x0,0x64,0x0, +0x4f,0x0,0x3f,0x0,0x2d,0x0,0x17,0x0,0xb,0x0,0x8,0x0, +0x5,0x0,0x5,0x0,0x11,0x0,0x26,0x0,0x38,0x0,0x41,0x0, +0x48,0x0,0x53,0x0,0x5d,0x0,0x64,0x0,0x6a,0x0,0x6e,0x0, +0x67,0x0,0x59,0x0,0x57,0x0,0x5d,0x0,0x60,0x0,0x66,0x0, +0x6f,0x0,0x79,0x0,0x83,0x0,0x89,0x0,0x91,0x0,0x9a,0x0, +0xa3,0x0,0xaa,0x0,0xa0,0x0,0x8a,0x0,0x78,0x0,0x68,0x0, +0x5a,0x0,0x4a,0x0,0x35,0x0,0x25,0x0,0x1a,0x0,0xd,0x0, +0x7,0x0,0xd,0x0,0x17,0x0,0x15,0x0,0x12,0x0,0x19,0x0, +0x1a,0x0,0x7,0x0,0xf3,0xff,0xe8,0xff,0xe1,0xff,0xcf,0xff, +0xab,0xff,0x90,0xff,0x88,0xff,0x83,0xff,0x7b,0xff,0x77,0xff, +0x7d,0xff,0x88,0xff,0x92,0xff,0x9e,0xff,0xaf,0xff,0xb8,0xff, +0xbb,0xff,0xc0,0xff,0xc4,0xff,0xbf,0xff,0xb2,0xff,0xab,0xff, +0xb1,0xff,0xb3,0xff,0xa3,0xff,0x96,0xff,0x9b,0xff,0xa4,0xff, +0xa9,0xff,0xab,0xff,0xad,0xff,0xb4,0xff,0xb2,0xff,0xa6,0xff, +0x9e,0xff,0x9a,0xff,0x8d,0xff,0x76,0xff,0x5d,0xff,0x4a,0xff, +0x36,0xff,0x26,0xff,0x23,0xff,0x27,0xff,0x32,0xff,0x41,0xff, +0x4e,0xff,0x65,0xff,0x8c,0xff,0xb4,0xff,0xd5,0xff,0xea,0xff, +0xf7,0xff,0x3,0x0,0x9,0x0,0xb,0x0,0xe,0x0,0xc,0x0, +0x6,0x0,0x0,0x0,0xff,0xff,0x9,0x0,0x1a,0x0,0x2e,0x0, +0x42,0x0,0x4e,0x0,0x53,0x0,0x4f,0x0,0x4b,0x0,0x4a,0x0, +0x3b,0x0,0x21,0x0,0xc,0x0,0xf7,0xff,0xdf,0xff,0xcc,0xff, +0xcb,0xff,0xd4,0xff,0xd6,0xff,0xd6,0xff,0xe6,0xff,0x4,0x0, +0x26,0x0,0x44,0x0,0x60,0x0,0x79,0x0,0x86,0x0,0x8c,0x0, +0x9c,0x0,0xb1,0x0,0xba,0x0,0xb2,0x0,0xad,0x0,0xb3,0x0, +0xb3,0x0,0xb3,0x0,0xc4,0x0,0xda,0x0,0xe9,0x0,0xef,0x0, +0xf5,0x0,0x4,0x1,0xf,0x1,0xc,0x1,0x2,0x1,0xee,0x0, +0xd1,0x0,0xb3,0x0,0x94,0x0,0x78,0x0,0x5d,0x0,0x40,0x0, +0x2a,0x0,0x1b,0x0,0xd,0x0,0xb,0x0,0x14,0x0,0x1f,0x0, +0x25,0x0,0x21,0x0,0x16,0x0,0xb,0x0,0xfb,0xff,0xeb,0xff, +0xda,0xff,0xbc,0xff,0x9c,0xff,0x87,0xff,0x7a,0xff,0x75,0xff, +0x77,0xff,0x7b,0xff,0x87,0xff,0x9a,0xff,0xaf,0xff,0xc7,0xff, +0xd5,0xff,0xd5,0xff,0xd4,0xff,0xcb,0xff,0xb9,0xff,0xa2,0xff, +0x85,0xff,0x69,0xff,0x52,0xff,0x36,0xff,0x17,0xff,0xfd,0xfe, +0xeb,0xfe,0xe5,0xfe,0xe1,0xfe,0xd4,0xfe,0xbf,0xfe,0xae,0xfe, +0xa0,0xfe,0x8b,0xfe,0x67,0xfe,0x43,0xfe,0x28,0xfe,0xd,0xfe, +0xeb,0xfd,0xce,0xfd,0xc0,0xfd,0xbc,0xfd,0xbb,0xfd,0xc5,0xfd, +0xdf,0xfd,0x7,0xfe,0x2b,0xfe,0x42,0xfe,0x5b,0xfe,0x7e,0xfe, +0xa1,0xfe,0xb3,0xfe,0xaf,0xfe,0xa7,0xfe,0xa8,0xfe,0x9e,0xfe, +0x87,0xfe,0x75,0xfe,0x72,0xfe,0x70,0xfe,0x5d,0xfe,0x4b,0xfe, +0x4d,0xfe,0x5a,0xfe,0x61,0xfe,0x55,0xfe,0x3e,0xfe,0x28,0xfe, +0x7,0xfe,0xe2,0xfd,0xdb,0xfd,0xef,0xfd,0x3,0xfe,0xf,0xfe, +0x19,0xfe,0x26,0xfe,0x38,0xfe,0x50,0xfe,0x68,0xfe,0x7d,0xfe, +0x90,0xfe,0x9e,0xfe,0xad,0xfe,0xc3,0xfe,0xd8,0xfe,0xe4,0xfe, +0xee,0xfe,0xf8,0xfe,0x0,0xff,0x4,0xff,0x7,0xff,0xf,0xff, +0x17,0xff,0x20,0xff,0x26,0xff,0x27,0xff,0x30,0xff,0x41,0xff, +0x47,0xff,0x44,0xff,0x3d,0xff,0x38,0xff,0x34,0xff,0x29,0xff, +0x1a,0xff,0xe,0xff,0x6,0xff,0xfe,0xfe,0xf0,0xfe,0xe6,0xfe, +0xed,0xfe,0xfb,0xfe,0x1,0xff,0x7,0xff,0x14,0xff,0x27,0xff, +0x36,0xff,0x41,0xff,0x4d,0xff,0x58,0xff,0x5f,0xff,0x65,0xff, +0x6d,0xff,0x79,0xff,0x88,0xff,0x96,0xff,0xa8,0xff,0xc0,0xff, +0xd5,0xff,0xe1,0xff,0xf0,0xff,0x7,0x0,0x1c,0x0,0x2b,0x0, +0x37,0x0,0x42,0x0,0x4d,0x0,0x55,0x0,0x5b,0x0,0x64,0x0, +0x6e,0x0,0x78,0x0,0x7e,0x0,0x82,0x0,0x8d,0x0,0x98,0x0, +0x9b,0x0,0x9e,0x0,0xa3,0x0,0xa6,0x0,0xa5,0x0,0xa3,0x0, +0xa8,0x0,0xae,0x0,0xac,0x0,0xa9,0x0,0xab,0x0,0xb0,0x0, +0xb5,0x0,0xbb,0x0,0xc5,0x0,0xd3,0x0,0xde,0x0,0xe3,0x0, +0xed,0x0,0x2,0x1,0x11,0x1,0x15,0x1,0x1a,0x1,0x1f,0x1, +0x21,0x1,0x20,0x1,0x1c,0x1,0x1d,0x1,0x1e,0x1,0x1a,0x1, +0x1c,0x1,0x23,0x1,0x25,0x1,0x22,0x1,0x1a,0x1,0x1a,0x1, +0x21,0x1,0x1d,0x1,0x12,0x1,0xb,0x1,0x2,0x1,0xfa,0x0, +0xef,0x0,0xdf,0x0,0xd3,0x0,0xce,0x0,0xca,0x0,0xc4,0x0, +0xba,0x0,0xb5,0x0,0xb7,0x0,0xbc,0x0,0xbe,0x0,0xb5,0x0, +0xaa,0x0,0xa3,0x0,0x95,0x0,0x83,0x0,0x75,0x0,0x65,0x0, +0x50,0x0,0x3e,0x0,0x32,0x0,0x30,0x0,0x32,0x0,0x30,0x0, +0x30,0x0,0x35,0x0,0x3f,0x0,0x4f,0x0,0x5b,0x0,0x5b,0x0, +0x5a,0x0,0x5c,0x0,0x58,0x0,0x4e,0x0,0x46,0x0,0x43,0x0, +0x46,0x0,0x44,0x0,0x3a,0x0,0x3f,0x0,0x50,0x0,0x59,0x0, +0x61,0x0,0x66,0x0,0x6b,0x0,0x75,0x0,0x77,0x0,0x6d,0x0, +0x6c,0x0,0x70,0x0,0x6d,0x0,0x64,0x0,0x59,0x0,0x58,0x0, +0x69,0x0,0x7a,0x0,0x7f,0x0,0x84,0x0,0x96,0x0,0xb0,0x0, +0xc5,0x0,0xd4,0x0,0xe9,0x0,0xfd,0x0,0x3,0x1,0x1,0x1, +0xfd,0x0,0xfe,0x0,0x2,0x1,0xf9,0x0,0xe6,0x0,0xdc,0x0, +0xda,0x0,0xd9,0x0,0xd8,0x0,0xd3,0x0,0xd4,0x0,0xdb,0x0, +0xdd,0x0,0xda,0x0,0xd8,0x0,0xd4,0x0,0xcf,0x0,0xc8,0x0, +0xbb,0x0,0xa9,0x0,0x9a,0x0,0x94,0x0,0x92,0x0,0x8c,0x0, +0x88,0x0,0x8f,0x0,0x97,0x0,0x99,0x0,0x98,0x0,0x99,0x0, +0x99,0x0,0x91,0x0,0x7b,0x0,0x61,0x0,0x4a,0x0,0x29,0x0, +0xfe,0xff,0xd5,0xff,0xb0,0xff,0x91,0xff,0x76,0xff,0x60,0xff, +0x51,0xff,0x42,0xff,0x34,0xff,0x30,0xff,0x2d,0xff,0x23,0xff, +0x1a,0xff,0x15,0xff,0x12,0xff,0xd,0xff,0xff,0xfe,0xef,0xfe, +0xe8,0xfe,0xec,0xfe,0xf4,0xfe,0xf1,0xfe,0xee,0xfe,0xfa,0xfe, +0x6,0xff,0x7,0xff,0x7,0xff,0xb,0xff,0xe,0xff,0x9,0xff, +0xf9,0xfe,0xe7,0xfe,0xd9,0xfe,0xce,0xfe,0xbd,0xfe,0xb2,0xfe, +0xb7,0xfe,0xbc,0xfe,0xba,0xfe,0xca,0xfe,0xe9,0xfe,0x6,0xff, +0x1d,0xff,0x32,0xff,0x47,0xff,0x5c,0xff,0x70,0xff,0x7e,0xff, +0x8c,0xff,0x96,0xff,0x9b,0xff,0xa6,0xff,0xbb,0xff,0xcd,0xff, +0xd6,0xff,0xe8,0xff,0x5,0x0,0x21,0x0,0x37,0x0,0x4d,0x0, +0x63,0x0,0x74,0x0,0x7c,0x0,0x82,0x0,0x89,0x0,0x8a,0x0, +0x88,0x0,0x8b,0x0,0x96,0x0,0x9d,0x0,0xa0,0x0,0xb1,0x0, +0xd2,0x0,0xf5,0x0,0x16,0x1,0x36,0x1,0x58,0x1,0x78,0x1, +0x92,0x1,0xaa,0x1,0xc6,0x1,0xcf,0x1,0xc4,0x1,0xc0,0x1, +0xc1,0x1,0xbc,0x1,0xb1,0x1,0xa5,0x1,0xa4,0x1,0xa9,0x1, +0xa3,0x1,0x9f,0x1,0xa7,0x1,0xae,0x1,0xad,0x1,0xa3,0x1, +0x97,0x1,0x91,0x1,0x7f,0x1,0x61,0x1,0x4b,0x1,0x3a,0x1, +0x24,0x1,0xe,0x1,0x2,0x1,0x1,0x1,0xff,0x0,0xfd,0x0, +0x2,0x1,0xb,0x1,0x12,0x1,0x12,0x1,0xe,0x1,0xf,0x1, +0x8,0x1,0xf1,0x0,0xd4,0x0,0xb9,0x0,0xa0,0x0,0x85,0x0, +0x60,0x0,0x3f,0x0,0x2c,0x0,0x21,0x0,0x19,0x0,0x11,0x0, +0xe,0x0,0x17,0x0,0x1d,0x0,0x1a,0x0,0x1b,0x0,0x22,0x0, +0x21,0x0,0xf,0x0,0xf9,0xff,0xf0,0xff,0xe9,0xff,0xd9,0xff, +0xc7,0xff,0xbb,0xff,0xb3,0xff,0xac,0xff,0xaa,0xff,0xaf,0xff, +0xb3,0xff,0xb5,0xff,0xb6,0xff,0xb4,0xff,0xb0,0xff,0xae,0xff, +0xa8,0xff,0x9b,0xff,0x8a,0xff,0x7b,0xff,0x6f,0xff,0x61,0xff, +0x52,0xff,0x4f,0xff,0x5d,0xff,0x6d,0xff,0x74,0xff,0x7d,0xff, +0x97,0xff,0xb7,0xff,0xd2,0xff,0xe8,0xff,0xf2,0xff,0xf1,0xff, +0xf4,0xff,0xf7,0xff,0xf4,0xff,0xed,0xff,0xe3,0xff,0xdb,0xff, +0xd2,0xff,0xc7,0xff,0xc6,0xff,0xd4,0xff,0xe3,0xff,0xed,0xff, +0xf1,0xff,0xf6,0xff,0xfa,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xe3,0xff,0xc0,0xff,0xa3,0xff,0x96,0xff,0x92,0xff,0x85,0xff, +0x75,0xff,0x7c,0xff,0x90,0xff,0xa2,0xff,0xb4,0xff,0xc8,0xff, +0xe8,0xff,0x9,0x0,0x15,0x0,0x16,0x0,0x16,0x0,0xf,0x0, +0x0,0x0,0xe6,0xff,0xcd,0xff,0xbc,0xff,0xa4,0xff,0x83,0xff, +0x6b,0xff,0x63,0xff,0x60,0xff,0x4e,0xff,0x34,0xff,0x1e,0xff, +0xd,0xff,0xf8,0xfe,0xd1,0xfe,0x9a,0xfe,0x62,0xfe,0x2d,0xfe, +0xf3,0xfd,0xb6,0xfd,0x74,0xfd,0x37,0xfd,0x9,0xfd,0xde,0xfc, +0xb5,0xfc,0x96,0xfc,0x7f,0xfc,0x71,0xfc,0x67,0xfc,0x58,0xfc, +0x4d,0xfc,0x42,0xfc,0x30,0xfc,0x1a,0xfc,0xfc,0xfb,0xdb,0xfb, +0xc5,0xfb,0xb5,0xfb,0xa4,0xfb,0x93,0xfb,0x8a,0xfb,0x95,0xfb, +0xb7,0xfb,0xe1,0xfb,0xd,0xfc,0x3d,0xfc,0x6d,0xfc,0x8a,0xfc, +0x92,0xfc,0x9a,0xfc,0xa4,0xfc,0xa1,0xfc,0x94,0xfc,0x85,0xfc, +0x7a,0xfc,0x78,0xfc,0x73,0xfc,0x6f,0xfc,0x7e,0xfc,0x94,0xfc, +0xa9,0xfc,0xc5,0xfc,0xe8,0xfc,0x10,0xfd,0x35,0xfd,0x4d,0xfd, +0x66,0xfd,0x87,0xfd,0xa3,0xfd,0xbc,0xfd,0xd3,0xfd,0xe9,0xfd, +0x10,0xfe,0x46,0xfe,0x77,0xfe,0xa8,0xfe,0xe7,0xfe,0x31,0xff, +0x7d,0xff,0xc3,0xff,0x2,0x0,0x42,0x0,0x82,0x0,0xb9,0x0, +0xe4,0x0,0xa,0x1,0x2b,0x1,0x44,0x1,0x59,0x1,0x73,0x1, +0x94,0x1,0xb3,0x1,0xca,0x1,0xe3,0x1,0xc,0x2,0x41,0x2, +0x6a,0x2,0x86,0x2,0xa9,0x2,0xd7,0x2,0xf8,0x2,0x4,0x3, +0xd,0x3,0x22,0x3,0x38,0x3,0x38,0x3,0x29,0x3,0x2f,0x3, +0x47,0x3,0x53,0x3,0x58,0x3,0x68,0x3,0x85,0x3,0x9c,0x3, +0xa0,0x3,0xa3,0x3,0xb6,0x3,0xbf,0x3,0xae,0x3,0x96,0x3, +0x82,0x3,0x69,0x3,0x49,0x3,0x21,0x3,0x2,0x3,0xf1,0x2, +0xda,0x2,0xc1,0x2,0xb2,0x2,0xa6,0x2,0x9c,0x2,0x95,0x2, +0x90,0x2,0x86,0x2,0x71,0x2,0x59,0x2,0x47,0x2,0x32,0x2, +0x9,0x2,0xda,0x1,0xb5,0x1,0x94,0x1,0x68,0x1,0x3c,0x1, +0x1e,0x1,0x9,0x1,0xf3,0x0,0xda,0x0,0xc4,0x0,0xb5,0x0, +0xa8,0x0,0x93,0x0,0x76,0x0,0x58,0x0,0x3a,0x0,0x12,0x0, +0xdf,0xff,0xae,0xff,0x86,0xff,0x65,0xff,0x47,0xff,0x2b,0xff, +0x12,0xff,0x4,0xff,0xa,0xff,0x1c,0xff,0x2b,0xff,0x33,0xff, +0x3b,0xff,0x41,0xff,0x43,0xff,0x44,0xff,0x41,0xff,0x36,0xff, +0x25,0xff,0xe,0xff,0xff,0xfe,0xfe,0xfe,0x0,0xff,0x4,0xff, +0x1a,0xff,0x3f,0xff,0x63,0xff,0x7c,0xff,0x9a,0xff,0xc6,0xff, +0xe8,0xff,0xf7,0xff,0x6,0x0,0x11,0x0,0x9,0x0,0xfc,0xff, +0x1,0x0,0x12,0x0,0x15,0x0,0x10,0x0,0x23,0x0,0x4e,0x0, +0x74,0x0,0x8f,0x0,0xb2,0x0,0xe9,0x0,0x19,0x1,0x2b,0x1, +0x37,0x1,0x4c,0x1,0x5e,0x1,0x65,0x1,0x68,0x1,0x6a,0x1, +0x6e,0x1,0x78,0x1,0x8e,0x1,0xb0,0x1,0xd4,0x1,0xf7,0x1, +0x20,0x2,0x4f,0x2,0x7a,0x2,0x99,0x2,0xb3,0x2,0xce,0x2, +0xe4,0x2,0xf1,0x2,0xed,0x2,0xdb,0x2,0xd1,0x2,0xd3,0x2, +0xd4,0x2,0xcf,0x2,0xc9,0x2,0xca,0x2,0xd0,0x2,0xd7,0x2, +0xdb,0x2,0xde,0x2,0xdf,0x2,0xd3,0x2,0xba,0x2,0xa2,0x2, +0x8b,0x2,0x6c,0x2,0x42,0x2,0x4,0x2,0xc7,0x1,0xa4,0x1, +0x85,0x1,0x52,0x1,0x1f,0x1,0xfe,0x0,0xe7,0x0,0xc2,0x0, +0x85,0x0,0x55,0x0,0x3e,0x0,0x1a,0x0,0xda,0xff,0x8f,0xff, +0x57,0xff,0x34,0xff,0x2,0xff,0xc3,0xfe,0x96,0xfe,0x77,0xfe, +0x59,0xfe,0x41,0xfe,0x36,0xfe,0x39,0xfe,0x37,0xfe,0x27,0xfe, +0x20,0xfe,0x21,0xfe,0x1b,0xfe,0x12,0xfe,0x7,0xfe,0x0,0xfe, +0xf3,0xfd,0xd6,0xfd,0xc0,0xfd,0xc0,0xfd,0xbd,0xfd,0xaf,0xfd, +0xa0,0xfd,0x9d,0xfd,0xa4,0xfd,0x93,0xfd,0x76,0xfd,0x78,0xfd, +0x83,0xfd,0x78,0xfd,0x60,0xfd,0x4c,0xfd,0x4a,0xfd,0x4e,0xfd, +0x4f,0xfd,0x54,0xfd,0x60,0xfd,0x6c,0xfd,0x80,0xfd,0xa3,0xfd, +0xcd,0xfd,0xf0,0xfd,0xc,0xfe,0x38,0xfe,0x6c,0xfe,0x8a,0xfe, +0xa4,0xfe,0xd8,0xfe,0x13,0xff,0x33,0xff,0x43,0xff,0x68,0xff, +0xa1,0xff,0xcd,0xff,0xed,0xff,0x1c,0x0,0x54,0x0,0x7d,0x0, +0x90,0x0,0xa8,0x0,0xdc,0x0,0x11,0x1,0x28,0x1,0x2e,0x1, +0x3a,0x1,0x56,0x1,0x7d,0x1,0x91,0x1,0x93,0x1,0xa2,0x1, +0xc5,0x1,0xe6,0x1,0xf8,0x1,0x0,0x2,0x16,0x2,0x38,0x2, +0x4e,0x2,0x4f,0x2,0x4e,0x2,0x53,0x2,0x5c,0x2,0x64,0x2, +0x64,0x2,0x5f,0x2,0x56,0x2,0x55,0x2,0x62,0x2,0x69,0x2, +0x6c,0x2,0x79,0x2,0x85,0x2,0x86,0x2,0x86,0x2,0x92,0x2, +0xa7,0x2,0xa8,0x2,0x92,0x2,0x84,0x2,0x83,0x2,0x7c,0x2, +0x66,0x2,0x4d,0x2,0x42,0x2,0x3c,0x2,0x23,0x2,0x4,0x2, +0xf3,0x1,0xe6,0x1,0xd7,0x1,0xc0,0x1,0x9b,0x1,0x79,0x1, +0x5e,0x1,0x42,0x1,0x25,0x1,0x1,0x1,0xd4,0x0,0xa7,0x0, +0x80,0x0,0x68,0x0,0x5d,0x0,0x4d,0x0,0x3b,0x0,0x33,0x0, +0x31,0x0,0x36,0x0,0x37,0x0,0x33,0x0,0x3a,0x0,0x42,0x0, +0x2f,0x0,0xe,0x0,0xfd,0xff,0xfc,0xff,0xf5,0xff,0xdd,0xff, +0xca,0xff,0xc8,0xff,0xc8,0xff,0xbb,0xff,0xb8,0xff,0xd4,0xff, +0xf3,0xff,0xf0,0xff,0xde,0xff,0xe7,0xff,0x3,0x0,0xa,0x0, +0xf3,0xff,0xe4,0xff,0xe7,0xff,0xe5,0xff,0xd1,0xff,0xc5,0xff, +0xd9,0xff,0xf5,0xff,0xfb,0xff,0x7,0x0,0x2a,0x0,0x57,0x0, +0x7e,0x0,0x8f,0x0,0x98,0x0,0xb2,0x0,0xc5,0x0,0xbc,0x0, +0xae,0x0,0xa6,0x0,0xa0,0x0,0x90,0x0,0x70,0x0,0x62,0x0, +0x73,0x0,0x81,0x0,0x7a,0x0,0x6e,0x0,0x73,0x0,0x86,0x0, +0x8b,0x0,0x7c,0x0,0x6a,0x0,0x54,0x0,0x2a,0x0,0xed,0xff, +0xb3,0xff,0x85,0xff,0x4a,0xff,0xf9,0xfe,0xb0,0xfe,0x7e,0xfe, +0x4f,0xfe,0x17,0xfe,0xdf,0xfd,0xb9,0xfd,0x9a,0xfd,0x6c,0xfd, +0x34,0xfd,0x4,0xfd,0xdd,0xfc,0xab,0xfc,0x66,0xfc,0x25,0xfc, +0xf5,0xfb,0xbd,0xfb,0x82,0xfb,0x59,0xfb,0x3d,0xfb,0x29,0xfb, +0x1a,0xfb,0xd,0xfb,0xb,0xfb,0x13,0xfb,0x16,0xfb,0x17,0xfb, +0x11,0xfb,0xfc,0xfa,0xe3,0xfa,0xc8,0xfa,0xa0,0xfa,0x6d,0xfa, +0x35,0xfa,0x1,0xfa,0xd0,0xf9,0x99,0xf9,0x64,0xf9,0x41,0xf9, +0x26,0xf9,0x10,0xf9,0xff,0xf8,0xf1,0xf8,0xec,0xf8,0xea,0xf8, +0xe1,0xf8,0xd6,0xf8,0xcd,0xf8,0xc6,0xf8,0xcd,0xf8,0xde,0xf8, +0xf4,0xf8,0x1a,0xf9,0x4d,0xf9,0x79,0xf9,0x9c,0xf9,0xcd,0xf9, +0x17,0xfa,0x6c,0xfa,0xbb,0xfa,0x7,0xfb,0x5b,0xfb,0xb5,0xfb, +0xfe,0xfb,0x34,0xfc,0x6e,0xfc,0xac,0xfc,0xdb,0xfc,0xff,0xfc, +0x2a,0xfd,0x5e,0xfd,0x90,0xfd,0xbe,0xfd,0xf8,0xfd,0x42,0xfe, +0x8e,0xfe,0xd6,0xfe,0x1d,0xff,0x63,0xff,0xaa,0xff,0xef,0xff, +0x24,0x0,0x4e,0x0,0x7b,0x0,0xa7,0x0,0xd2,0x0,0xf7,0x0, +0x18,0x1,0x42,0x1,0x73,0x1,0xa6,0x1,0xe2,0x1,0x29,0x2, +0x6a,0x2,0xa3,0x2,0xdf,0x2,0x24,0x3,0x61,0x3,0x85,0x3, +0xa1,0x3,0xcb,0x3,0xed,0x3,0xf6,0x3,0xf8,0x3,0xc,0x4, +0x29,0x4,0x3e,0x4,0x4f,0x4,0x69,0x4,0x8c,0x4,0xaf,0x4, +0xca,0x4,0xe4,0x4,0x2,0x5,0x13,0x5,0x11,0x5,0x9,0x5, +0xf9,0x4,0xe2,0x4,0xc2,0x4,0x97,0x4,0x6b,0x4,0x42,0x4, +0x14,0x4,0xe6,0x3,0xba,0x3,0x99,0x3,0x7d,0x3,0x55,0x3, +0x2d,0x3,0x12,0x3,0xf0,0x2,0xc6,0x2,0x9f,0x2,0x79,0x2, +0x4e,0x2,0x16,0x2,0xde,0x1,0xb8,0x1,0x96,0x1,0x68,0x1, +0x3a,0x1,0x17,0x1,0x0,0x1,0xea,0x0,0xd5,0x0,0xcd,0x0, +0xca,0x0,0xb2,0x0,0x91,0x0,0x81,0x0,0x72,0x0,0x4d,0x0, +0x1d,0x0,0xf2,0xff,0xcd,0xff,0xa0,0xff,0x6d,0xff,0x4a,0xff, +0x36,0xff,0x25,0xff,0x13,0xff,0x2,0xff,0xfc,0xfe,0xff,0xfe, +0xfb,0xfe,0xf6,0xfe,0xf7,0xfe,0xf0,0xfe,0xe1,0xfe,0xd5,0xfe, +0xc9,0xfe,0xc3,0xfe,0xbd,0xfe,0xb3,0xfe,0xac,0xfe,0xaf,0xfe, +0xc4,0xfe,0xe0,0xfe,0xf2,0xfe,0xb,0xff,0x34,0xff,0x59,0xff, +0x76,0xff,0x94,0xff,0xc0,0xff,0xf1,0xff,0x7,0x0,0x1f,0x0, +0x5b,0x0,0x96,0x0,0xb7,0x0,0xd6,0x0,0x9,0x1,0x4f,0x1, +0x8c,0x1,0xae,0x1,0xd6,0x1,0x18,0x2,0x52,0x2,0x75,0x2, +0x92,0x2,0xb3,0x2,0xd3,0x2,0xf3,0x2,0x14,0x3,0x2f,0x3, +0x46,0x3,0x5a,0x3,0x6b,0x3,0x80,0x3,0x9a,0x3,0xb5,0x3, +0xcf,0x3,0xe1,0x3,0xf1,0x3,0xd,0x4,0x2a,0x4,0x3f,0x4, +0x4e,0x4,0x54,0x4,0x59,0x4,0x65,0x4,0x69,0x4,0x5a,0x4, +0x41,0x4,0x2b,0x4,0x1f,0x4,0xb,0x4,0xdc,0x3,0xab,0x3, +0x97,0x3,0x85,0x3,0x54,0x3,0xf,0x3,0xd7,0x2,0xb5,0x2, +0x97,0x2,0x61,0x2,0x1c,0x2,0xe7,0x1,0xc0,0x1,0x97,0x1, +0x67,0x1,0x38,0x1,0x17,0x1,0xfb,0x0,0xcd,0x0,0x9c,0x0, +0x7c,0x0,0x60,0x0,0x36,0x0,0x1,0x0,0xd0,0xff,0xaf,0xff, +0x86,0xff,0x48,0xff,0x14,0xff,0xf4,0xfe,0xc7,0xfe,0x82,0xfe, +0x3d,0xfe,0x6,0xfe,0xce,0xfd,0x87,0xfd,0x42,0xfd,0xc,0xfd, +0xd1,0xfc,0x8e,0xfc,0x5c,0xfc,0x3d,0xfc,0x1f,0xfc,0xff,0xfb, +0xeb,0xfb,0xeb,0xfb,0xef,0xfb,0xe3,0xfb,0xd6,0xfb,0xe1,0xfb, +0xfd,0xfb,0x12,0xfc,0x1e,0xfc,0x26,0xfc,0x34,0xfc,0x55,0xfc, +0x80,0xfc,0xa0,0xfc,0xbb,0xfc,0xde,0xfc,0xc,0xfd,0x3d,0xfd, +0x59,0xfd,0x6d,0xfd,0x99,0xfd,0xc9,0xfd,0xe7,0xfd,0x2,0xfe, +0x21,0xfe,0x42,0xfe,0x64,0xfe,0x87,0xfe,0xb7,0xfe,0xeb,0xfe, +0x13,0xff,0x3f,0xff,0x70,0xff,0xa4,0xff,0xec,0xff,0x38,0x0, +0x71,0x0,0x98,0x0,0xbb,0x0,0xf9,0x0,0x45,0x1,0x71,0x1, +0x83,0x1,0xa5,0x1,0xda,0x1,0xfd,0x1,0x8,0x2,0x23,0x2, +0x5e,0x2,0x94,0x2,0xaf,0x2,0xc3,0x2,0xec,0x2,0x27,0x3, +0x57,0x3,0x7b,0x3,0xa4,0x3,0xcf,0x3,0xe9,0x3,0xf8,0x3, +0x12,0x4,0x36,0x4,0x4e,0x4,0x5b,0x4,0x67,0x4,0x75,0x4, +0x87,0x4,0x93,0x4,0x9d,0x4,0xb5,0x4,0xc3,0x4,0xba,0x4, +0xaa,0x4,0x9c,0x4,0x93,0x4,0x7f,0x4,0x50,0x4,0x14,0x4, +0xd4,0x3,0x94,0x3,0x66,0x3,0x41,0x3,0x18,0x3,0xea,0x2, +0xbc,0x2,0xa0,0x2,0x96,0x2,0x8d,0x2,0x88,0x2,0x80,0x2, +0x6d,0x2,0x59,0x2,0x3c,0x2,0x26,0x2,0x1b,0x2,0xec,0x1, +0xa3,0x1,0x76,0x1,0x5b,0x1,0x36,0x1,0x3,0x1,0xcc,0x0, +0xb9,0x0,0xc2,0x0,0xa5,0x0,0x6a,0x0,0x4e,0x0,0x4e,0x0, +0x40,0x0,0x5,0x0,0xb3,0xff,0x84,0xff,0x6d,0xff,0x37,0xff, +0xe9,0xfe,0xb3,0xfe,0xa3,0xfe,0x9c,0xfe,0x86,0xfe,0x7f,0xfe, +0xa1,0xfe,0xcd,0xfe,0xdb,0xfe,0xda,0xfe,0xf6,0xfe,0x28,0xff, +0x3b,0xff,0x28,0xff,0x1b,0xff,0x1d,0xff,0x20,0xff,0x19,0xff, +0xf,0xff,0x1a,0xff,0x38,0xff,0x5b,0xff,0x7d,0xff,0x9a,0xff, +0xcb,0xff,0x16,0x0,0x4f,0x0,0x6d,0x0,0x88,0x0,0xb0,0x0, +0xe4,0x0,0xfc,0x0,0xe9,0x0,0xe2,0x0,0xf8,0x0,0xf,0x1, +0x23,0x1,0x39,0x1,0x51,0x1,0x6a,0x1,0x88,0x1,0xb7,0x1, +0xe6,0x1,0xfd,0x1,0xd,0x2,0x1b,0x2,0xf,0x2,0xe1,0x1, +0xa7,0x1,0x77,0x1,0x42,0x1,0xef,0x0,0x8c,0x0,0x32,0x0, +0xe1,0xff,0x89,0xff,0x32,0xff,0xf9,0xfe,0xd7,0xfe,0x9b,0xfe, +0x42,0xfe,0xf8,0xfd,0xcd,0xfd,0x9d,0xfd,0x43,0xfd,0xd2,0xfc, +0x73,0xfc,0x2d,0xfc,0xdc,0xfb,0x76,0xfb,0x20,0xfb,0xf7,0xfa, +0xdb,0xfa,0xad,0xfa,0x88,0xfa,0x8e,0xfa,0xae,0xfa,0xc0,0xfa, +0xbc,0xfa,0xba,0xfa,0xc6,0xfa,0xcb,0xfa,0xb5,0xfa,0x91,0xfa, +0x71,0xfa,0x52,0xfa,0x2e,0xfa,0x0,0xfa,0xcd,0xf9,0xa7,0xf9, +0x9a,0xf9,0x90,0xf9,0x6f,0xf9,0x4d,0xf9,0x45,0xf9,0x3e,0xf9, +0x1e,0xf9,0xea,0xf8,0xb6,0xf8,0x96,0xf8,0x6d,0xf8,0x1b,0xf8, +0xce,0xf7,0xa6,0xf7,0x83,0xf7,0x5f,0xf7,0x38,0xf7,0x22,0xf7, +0x35,0xf7,0x51,0xf7,0x6f,0xf7,0xab,0xf7,0xfb,0xf7,0x5b,0xf8, +0xbe,0xf8,0x1,0xf9,0x3a,0xf9,0x83,0xf9,0xc5,0xf9,0xfe,0xf9, +0x35,0xfa,0x78,0xfa,0xcc,0xfa,0x19,0xfb,0x66,0xfb,0xcd,0xfb, +0x41,0xfc,0xb2,0xfc,0x1e,0xfd,0x84,0xfd,0xeb,0xfd,0x48,0xfe, +0x9a,0xfe,0xe9,0xfe,0x2a,0xff,0x55,0xff,0x75,0xff,0x99,0xff, +0xc6,0xff,0xe5,0xff,0xf5,0xff,0x1b,0x0,0x45,0x0,0x59,0x0, +0x6f,0x0,0x94,0x0,0xc1,0x0,0xeb,0x0,0x2,0x1,0x12,0x1, +0x30,0x1,0x4f,0x1,0x71,0x1,0x9d,0x1,0xc1,0x1,0xe1,0x1, +0xb,0x2,0x39,0x2,0x71,0x2,0xb0,0x2,0xe9,0x2,0x29,0x3, +0x6b,0x3,0x9f,0x3,0xd9,0x3,0x20,0x4,0x60,0x4,0x95,0x4, +0xc1,0x4,0xe7,0x4,0x9,0x5,0x1e,0x5,0x33,0x5,0x49,0x5, +0x4d,0x5,0x37,0x5,0x1a,0x5,0x7,0x5,0xf7,0x4,0xdb,0x4, +0xba,0x4,0x99,0x4,0x6a,0x4,0x33,0x4,0xfa,0x3,0xcb,0x3, +0xaa,0x3,0x73,0x3,0x1f,0x3,0xd8,0x2,0xa2,0x2,0x6a,0x2, +0x31,0x2,0xf9,0x1,0xcb,0x1,0xa5,0x1,0x82,0x1,0x68,0x1, +0x59,0x1,0x51,0x1,0x4b,0x1,0x49,0x1,0x54,0x1,0x56,0x1, +0x4c,0x1,0x55,0x1,0x69,0x1,0x6d,0x1,0x62,0x1,0x53,0x1, +0x57,0x1,0x6a,0x1,0x64,0x1,0x56,0x1,0x5b,0x1,0x5a,0x1, +0x47,0x1,0x39,0x1,0x3e,0x1,0x47,0x1,0x2d,0x1,0xf9,0x0, +0xd9,0x0,0xc7,0x0,0xa6,0x0,0x70,0x0,0x37,0x0,0xf,0x0, +0xeb,0xff,0xb6,0xff,0x85,0xff,0x6a,0xff,0x52,0xff,0x33,0xff, +0x19,0xff,0x12,0xff,0x1c,0xff,0x1d,0xff,0x16,0xff,0x23,0xff, +0x44,0xff,0x62,0xff,0x75,0xff,0x82,0xff,0xa5,0xff,0xdf,0xff, +0x7,0x0,0x1f,0x0,0x52,0x0,0x9b,0x0,0xd9,0x0,0x0,0x1, +0x2d,0x1,0x76,0x1,0xbb,0x1,0xe8,0x1,0x1c,0x2,0x60,0x2, +0x9a,0x2,0xb4,0x2,0xbc,0x2,0xe8,0x2,0x2f,0x3,0x4c,0x3, +0x3c,0x3,0x38,0x3,0x56,0x3,0x76,0x3,0x82,0x3,0x86,0x3, +0x90,0x3,0xa3,0x3,0xb7,0x3,0xc2,0x3,0xce,0x3,0xe6,0x3, +0xf7,0x3,0xff,0x3,0x0,0x4,0xf5,0x3,0xf8,0x3,0xe,0x4, +0x1a,0x4,0x1b,0x4,0x21,0x4,0x2f,0x4,0x44,0x4,0x5c,0x4, +0x7e,0x4,0xac,0x4,0xcd,0x4,0xd9,0x4,0xde,0x4,0xf4,0x4, +0x18,0x5,0x22,0x5,0x3,0x5,0xde,0x4,0xc2,0x4,0xa3,0x4, +0x7a,0x4,0x49,0x4,0x18,0x4,0xf4,0x3,0xc5,0x3,0x72,0x3, +0x1a,0x3,0xe1,0x2,0xab,0x2,0x57,0x2,0xe7,0x1,0x72,0x1, +0xd,0x1,0xae,0x0,0x3d,0x0,0xcd,0xff,0x6e,0xff,0x8,0xff, +0x9e,0xfe,0x4a,0xfe,0xd,0xfe,0xda,0xfd,0xab,0xfd,0x83,0xfd, +0x5c,0xfd,0x38,0xfd,0x1e,0xfd,0x13,0xfd,0xf,0xfd,0xf0,0xfc, +0xc3,0xfc,0xbd,0xfc,0xc2,0xfc,0x9a,0xfc,0x61,0xfc,0x4d,0xfc, +0x5b,0xfc,0x5c,0xfc,0x2d,0xfc,0x1,0xfc,0x10,0xfc,0x2a,0xfc, +0x1b,0xfc,0xf9,0xfb,0xe0,0xfb,0xd8,0xfb,0xd1,0xfb,0xaf,0xfb, +0x81,0xfb,0x66,0xfb,0x48,0xfb,0x18,0xfb,0xf0,0xfa,0xea,0xfa, +0x3,0xfb,0x1e,0xfb,0x25,0xfb,0x3a,0xfb,0x80,0xfb,0xd2,0xfb, +0x9,0xfc,0x35,0xfc,0x6d,0xfc,0xad,0xfc,0xe2,0xfc,0x7,0xfd, +0x2d,0xfd,0x5c,0xfd,0x97,0xfd,0xe7,0xfd,0x38,0xfe,0x77,0xfe, +0xbc,0xfe,0x30,0xff,0xc5,0xff,0x38,0x0,0x85,0x0,0xdc,0x0, +0x42,0x1,0x9f,0x1,0xd9,0x1,0xfc,0x1,0x3b,0x2,0x7b,0x2, +0x85,0x2,0x80,0x2,0x98,0x2,0xc8,0x2,0x8,0x3,0x2e,0x3, +0x31,0x3,0x52,0x3,0xa3,0x3,0xef,0x3,0x14,0x4,0x25,0x4, +0x48,0x4,0x7c,0x4,0x95,0x4,0x89,0x4,0x7d,0x4,0x8c,0x4, +0x9f,0x4,0x97,0x4,0x8a,0x4,0x95,0x4,0xbb,0x4,0xf7,0x4, +0x2e,0x5,0x5a,0x5,0x8d,0x5,0xc6,0x5,0xfa,0x5,0x1a,0x6, +0x1a,0x6,0x1f,0x6,0x2e,0x6,0x9,0x6,0xb6,0x5,0x82,0x5, +0x74,0x5,0x5d,0x5,0x14,0x5,0xae,0x4,0x8a,0x4,0xa4,0x4, +0x8e,0x4,0x43,0x4,0x16,0x4,0x11,0x4,0xfa,0x3,0x9b,0x3, +0x1e,0x3,0xe3,0x2,0xc6,0x2,0x63,0x2,0xcc,0x1,0x50,0x1, +0xf,0x1,0xea,0x0,0xb0,0x0,0x6a,0x0,0x43,0x0,0x3b,0x0, +0x3a,0x0,0x34,0x0,0x36,0x0,0x48,0x0,0x58,0x0,0x64,0x0, +0x5e,0x0,0x37,0x0,0x1d,0x0,0x21,0x0,0x1a,0x0,0x5,0x0, +0xe6,0xff,0xca,0xff,0xd0,0xff,0xdb,0xff,0xd8,0xff,0xe6,0xff, +0xff,0xff,0xb,0x0,0xfe,0xff,0xda,0xff,0xcb,0xff,0xdc,0xff, +0xca,0xff,0x86,0xff,0x3e,0xff,0x11,0xff,0x2,0xff,0xef,0xfe, +0xc6,0xfe,0xb8,0xfe,0xda,0xfe,0xfc,0xfe,0x10,0xff,0x40,0xff, +0x8d,0xff,0xce,0xff,0xfa,0xff,0x2f,0x0,0x77,0x0,0xbb,0x0, +0xeb,0x0,0x16,0x1,0x46,0x1,0x66,0x1,0x71,0x1,0x90,0x1, +0xca,0x1,0xdf,0x1,0xd2,0x1,0xe8,0x1,0x13,0x2,0x8,0x2, +0xc0,0x1,0x89,0x1,0x9b,0x1,0x94,0x1,0x7,0x1,0x50,0x0, +0xe7,0xff,0xa0,0xff,0x2d,0xff,0x84,0xfe,0xdd,0xfd,0x78,0xfd, +0x26,0xfd,0xaa,0xfc,0x38,0xfc,0xfa,0xfb,0xc8,0xfb,0x7e,0xfb, +0x23,0xfb,0xdf,0xfa,0xc0,0xfa,0x96,0xfa,0x49,0xfa,0xff,0xf9, +0xd2,0xf9,0xb1,0xf9,0x85,0xf9,0x53,0xf9,0x3d,0xf9,0x42,0xf9, +0x40,0xf9,0x2d,0xf9,0x1f,0xf9,0x26,0xf9,0x3d,0xf9,0x4e,0xf9, +0x4e,0xf9,0x3b,0xf9,0x1a,0xf9,0xfe,0xf8,0xe4,0xf8,0xac,0xf8, +0x62,0xf8,0x1c,0xf8,0xca,0xf7,0x77,0xf7,0x30,0xf7,0xda,0xf6, +0x83,0xf6,0x42,0xf6,0xff,0xf5,0xb2,0xf5,0x6a,0xf5,0x35,0xf5, +0x19,0xf5,0xf6,0xf4,0xb8,0xf4,0x7f,0xf4,0x67,0xf4,0x6a,0xf4, +0x66,0xf4,0x52,0xf4,0x58,0xf4,0x87,0xf4,0xb5,0xf4,0xda,0xf4, +0x1d,0xf5,0x87,0xf5,0xf9,0xf5,0x6d,0xf6,0xef,0xf6,0x82,0xf7, +0x23,0xf8,0xbc,0xf8,0x3c,0xf9,0xb9,0xf9,0x3c,0xfa,0xad,0xfa, +0x15,0xfb,0x7e,0xfb,0xe1,0xfb,0x4b,0xfc,0xbd,0xfc,0x23,0xfd, +0x79,0xfd,0xce,0xfd,0x2f,0xfe,0x94,0xfe,0xdb,0xfe,0x7,0xff, +0x3f,0xff,0x7d,0xff,0x9a,0xff,0xa1,0xff,0xb8,0xff,0xdc,0xff, +0xf2,0xff,0xee,0xff,0xf8,0xff,0x27,0x0,0x4f,0x0,0x60,0x0, +0x86,0x0,0xcb,0x0,0x16,0x1,0x55,0x1,0x8c,0x1,0xd8,0x1, +0x3a,0x2,0x90,0x2,0xd8,0x2,0x1e,0x3,0x62,0x3,0xac,0x3, +0xf8,0x3,0x3a,0x4,0x7c,0x4,0xbe,0x4,0xf4,0x4,0x20,0x5, +0x4c,0x5,0x82,0x5,0xb6,0x5,0xce,0x5,0xd2,0x5,0xdc,0x5, +0xe6,0x5,0xd4,0x5,0xad,0x5,0x85,0x5,0x66,0x5,0x40,0x5, +0xf7,0x4,0x9e,0x4,0x67,0x4,0x43,0x4,0xb,0x4,0xc9,0x3, +0x8d,0x3,0x63,0x3,0x40,0x3,0x8,0x3,0xc8,0x2,0xa4,0x2, +0x8b,0x2,0x58,0x2,0x19,0x2,0xfb,0x1,0xf8,0x1,0xdc,0x1, +0xb2,0x1,0x9e,0x1,0x9c,0x1,0xa2,0x1,0x98,0x1,0x7c,0x1, +0x7c,0x1,0x91,0x1,0x8f,0x1,0x87,0x1,0x88,0x1,0x89,0x1, +0x87,0x1,0x7e,0x1,0x7b,0x1,0x80,0x1,0x78,0x1,0x6a,0x1, +0x5f,0x1,0x4c,0x1,0x3b,0x1,0x37,0x1,0x3c,0x1,0x3b,0x1, +0x25,0x1,0x13,0x1,0x1b,0x1,0x24,0x1,0x14,0x1,0xf1,0x0, +0xd8,0x0,0xd1,0x0,0xba,0x0,0x8b,0x0,0x70,0x0,0x6f,0x0, +0x68,0x0,0x56,0x0,0x4b,0x0,0x54,0x0,0x6a,0x0,0x8e,0x0, +0xcc,0x0,0x8,0x1,0x2a,0x1,0x48,0x1,0x75,0x1,0xc2,0x1, +0x24,0x2,0x61,0x2,0x82,0x2,0xc1,0x2,0x7,0x3,0x35,0x3, +0x6b,0x3,0xb2,0x3,0xfa,0x3,0x1f,0x4,0x1a,0x4,0x2e,0x4, +0x67,0x4,0x87,0x4,0x83,0x4,0x7f,0x4,0x8e,0x4,0x98,0x4, +0x6a,0x4,0x2b,0x4,0x22,0x4,0x1f,0x4,0xed,0x3,0xa8,0x3, +0x7e,0x3,0x72,0x3,0x60,0x3,0x45,0x3,0x43,0x3,0x4f,0x3, +0x58,0x3,0x69,0x3,0x89,0x3,0xb8,0x3,0xeb,0x3,0xd,0x4, +0x2b,0x4,0x4b,0x4,0x65,0x4,0x8d,0x4,0xcd,0x4,0x9,0x5, +0x27,0x5,0x3d,0x5,0x76,0x5,0xb8,0x5,0xd9,0x5,0xf4,0x5, +0x1a,0x6,0x2f,0x6,0x20,0x6,0xf5,0x5,0xdb,0x5,0xd4,0x5, +0xa4,0x5,0x48,0x5,0xfb,0x4,0xca,0x4,0x97,0x4,0x4a,0x4, +0x1,0x4,0xdb,0x3,0xa8,0x3,0x4b,0x3,0xed,0x2,0xab,0x2, +0x74,0x2,0x2a,0x2,0xc7,0x1,0x76,0x1,0x3f,0x1,0xe4,0x0, +0x71,0x0,0x2d,0x0,0x18,0x0,0xee,0xff,0x82,0xff,0xc,0xff, +0xe7,0xfe,0xeb,0xfe,0xad,0xfe,0x50,0xfe,0x28,0xfe,0x23,0xfe, +0x5,0xfe,0xca,0xfd,0xb3,0xfd,0xcc,0xfd,0xd2,0xfd,0xb3,0xfd, +0x9e,0xfd,0x9d,0xfd,0x94,0xfd,0x73,0xfd,0x61,0xfd,0x7a,0xfd, +0x7c,0xfd,0x4d,0xfd,0x29,0xfd,0x27,0xfd,0x31,0xfd,0x29,0xfd, +0xf6,0xfc,0xbf,0xfc,0xa5,0xfc,0x90,0xfc,0x5f,0xfc,0xf,0xfc, +0xbd,0xfb,0x87,0xfb,0x60,0xfb,0x34,0xfb,0xfb,0xfa,0xc7,0xfa, +0xb9,0xfa,0xc8,0xfa,0xca,0xfa,0xc0,0xfa,0xc7,0xfa,0xf1,0xfa, +0x2d,0xfb,0x59,0xfb,0x80,0xfb,0xc2,0xfb,0x9,0xfc,0x3c,0xfc, +0x79,0xfc,0xdf,0xfc,0x4c,0xfd,0x94,0xfd,0xd3,0xfd,0x3e,0xfe, +0xc3,0xfe,0x23,0xff,0x66,0xff,0xbb,0xff,0x2f,0x0,0xa2,0x0, +0xf9,0x0,0x3d,0x1,0x80,0x1,0xc1,0x1,0x3,0x2,0x4a,0x2, +0x7c,0x2,0x9d,0x2,0xc9,0x2,0xf9,0x2,0x21,0x3,0x48,0x3, +0x68,0x3,0x8a,0x3,0xb2,0x3,0xd4,0x3,0xfc,0x3,0x19,0x4, +0x22,0x4,0x39,0x4,0x5b,0x4,0x65,0x4,0x5c,0x4,0x5b,0x4, +0x7c,0x4,0x98,0x4,0x92,0x4,0xa0,0x4,0xc9,0x4,0xdf,0x4, +0xf2,0x4,0x11,0x5,0x3f,0x5,0x7c,0x5,0x9c,0x5,0xa2,0x5, +0xc0,0x5,0xea,0x5,0x1,0x6,0xe,0x6,0xe,0x6,0x8,0x6, +0x7,0x6,0xe,0x6,0x12,0x6,0x6,0x6,0xf2,0x5,0xe5,0x5, +0xe3,0x5,0xd0,0x5,0x9b,0x5,0x69,0x5,0x58,0x5,0x3f,0x5, +0xfe,0x4,0xa9,0x4,0x5c,0x4,0x2f,0x4,0xd,0x4,0xd1,0x3, +0x90,0x3,0x63,0x3,0x3a,0x3,0x1,0x3,0xd0,0x2,0xc2,0x2, +0xb9,0x2,0x9d,0x2,0x82,0x2,0x71,0x2,0x68,0x2,0x68,0x2, +0x5b,0x2,0x44,0x2,0x37,0x2,0x2d,0x2,0x11,0x2,0xef,0x1, +0xdc,0x1,0xcb,0x1,0xb0,0x1,0x9e,0x1,0x8a,0x1,0x61,0x1, +0x4b,0x1,0x5d,0x1,0x6e,0x1,0x59,0x1,0x24,0x1,0x8,0x1, +0x1d,0x1,0x30,0x1,0x21,0x1,0xd,0x1,0x22,0x1,0x53,0x1, +0x63,0x1,0x5e,0x1,0x88,0x1,0xe9,0x1,0x43,0x2,0x66,0x2, +0x68,0x2,0x96,0x2,0xf4,0x2,0x3c,0x3,0x56,0x3,0x64,0x3, +0x87,0x3,0xb4,0x3,0xc0,0x3,0xb1,0x3,0xbd,0x3,0xe6,0x3, +0xe8,0x3,0xb5,0x3,0x83,0x3,0x69,0x3,0x51,0x3,0x1e,0x3, +0xbb,0x2,0x47,0x2,0xe9,0x1,0x89,0x1,0xf,0x1,0x85,0x0, +0x0,0x0,0x95,0xff,0x19,0xff,0x71,0xfe,0xe3,0xfd,0x85,0xfd, +0x21,0xfd,0xa3,0xfc,0x10,0xfc,0x8a,0xfb,0x2a,0xfb,0xc0,0xfa, +0x3b,0xfa,0xc1,0xf9,0x5a,0xf9,0xf0,0xf8,0x72,0xf8,0xf4,0xf7, +0xa0,0xf7,0x61,0xf7,0xe,0xf7,0xab,0xf6,0x48,0xf6,0x2,0xf6, +0xda,0xf5,0x9f,0xf5,0x4e,0xf5,0x13,0xf5,0xeb,0xf4,0xb3,0xf4, +0x72,0xf4,0x51,0xf4,0x55,0xf4,0x45,0xf4,0x18,0xf4,0x4,0xf4, +0x11,0xf4,0x13,0xf4,0xf7,0xf3,0xdd,0xf3,0xd8,0xf3,0xc2,0xf3, +0x83,0xf3,0x44,0xf3,0x19,0xf3,0xe8,0xf2,0x97,0xf2,0x38,0xf2, +0xf2,0xf1,0xc1,0xf1,0x7b,0xf1,0x2a,0xf1,0xf6,0xf0,0xd1,0xf0, +0x9d,0xf0,0x6d,0xf0,0x5d,0xf0,0x61,0xf0,0x75,0xf0,0x93,0xf0, +0xa8,0xf0,0xce,0xf0,0x2f,0xf1,0xb4,0xf1,0x30,0xf2,0xac,0xf2, +0x4c,0xf3,0xf,0xf4,0xd2,0xf4,0x84,0xf5,0x3b,0xf6,0x1,0xf7, +0xcb,0xf7,0x80,0xf8,0x22,0xf9,0xca,0xf9,0x73,0xfa,0x8,0xfb, +0x9b,0xfb,0x2b,0xfc,0x95,0xfc,0xe6,0xfc,0x44,0xfd,0xac,0xfd, +0x1,0xfe,0x39,0xfe,0x65,0xfe,0x96,0xfe,0xbc,0xfe,0xc8,0xfe, +0xcc,0xfe,0xd6,0xfe,0xe7,0xfe,0xfe,0xfe,0xb,0xff,0x14,0xff, +0x3c,0xff,0x82,0xff,0xc5,0xff,0xfe,0xff,0x49,0x0,0xaf,0x0, +0x12,0x1,0x4e,0x1,0x85,0x1,0xe9,0x1,0x5a,0x2,0x98,0x2, +0xb8,0x2,0xf6,0x2,0x53,0x3,0x9f,0x3,0xcc,0x3,0x7,0x4, +0x64,0x4,0xbb,0x4,0xea,0x4,0x8,0x5,0x41,0x5,0x8f,0x5, +0xc0,0x5,0xc5,0x5,0xb5,0x5,0xa6,0x5,0x97,0x5,0x77,0x5, +0x44,0x5,0x7,0x5,0xba,0x4,0x67,0x4,0x1e,0x4,0xd2,0x3, +0x80,0x3,0x2f,0x3,0xdc,0x2,0x97,0x2,0x56,0x2,0xe5,0x1, +0x6e,0x1,0x35,0x1,0xfb,0x0,0x8e,0x0,0x1f,0x0,0xd7,0xff, +0xb3,0xff,0x85,0xff,0x3b,0xff,0x24,0xff,0x4c,0xff,0x5b,0xff, +0x4a,0xff,0x60,0xff,0xc0,0xff,0x24,0x0,0x2d,0x0,0x27,0x0, +0x7f,0x0,0xdb,0x0,0xe4,0x0,0xd9,0x0,0xf4,0x0,0x1d,0x1, +0x1c,0x1,0xf0,0x0,0xd6,0x0,0xdc,0x0,0xe3,0x0,0xd1,0x0, +0xad,0x0,0x8a,0x0,0x5d,0x0,0x34,0x0,0x37,0x0,0x23,0x0, +0xce,0xff,0x8a,0xff,0x6e,0xff,0x4e,0xff,0x29,0xff,0xb,0xff, +0xe,0xff,0x2a,0xff,0x2e,0xff,0x3b,0xff,0x76,0xff,0xbb,0xff, +0x1,0x0,0x5c,0x0,0xcc,0x0,0x35,0x1,0x68,0x1,0x9b,0x1, +0x10,0x2,0x86,0x2,0xcb,0x2,0xf6,0x2,0x2d,0x3,0x8a,0x3, +0xcc,0x3,0xd2,0x3,0xff,0x3,0x6e,0x4,0xb9,0x4,0xc2,0x4, +0xd4,0x4,0x30,0x5,0x92,0x5,0x97,0x5,0x79,0x5,0x8d,0x5, +0xaf,0x5,0xa8,0x5,0x77,0x5,0x54,0x5,0x55,0x5,0x31,0x5, +0xea,0x4,0xdb,0x4,0xed,0x4,0xe4,0x4,0xd2,0x4,0xd6,0x4, +0xde,0x4,0xbb,0x4,0x93,0x4,0xa0,0x4,0xa3,0x4,0x6b,0x4, +0x31,0x4,0x16,0x4,0x1d,0x4,0xe,0x4,0xce,0x3,0xcd,0x3, +0x11,0x4,0x22,0x4,0x12,0x4,0x1d,0x4,0x49,0x4,0x85,0x4, +0x87,0x4,0x65,0x4,0x82,0x4,0xa8,0x4,0xa5,0x4,0x9c,0x4, +0x92,0x4,0xaa,0x4,0xcf,0x4,0xb1,0x4,0x89,0x4,0x9b,0x4, +0xa7,0x4,0x90,0x4,0x65,0x4,0x3c,0x4,0x2c,0x4,0x1d,0x4, +0xef,0x3,0xb2,0x3,0x74,0x3,0x30,0x3,0xfe,0x2,0xf1,0x2, +0xdb,0x2,0x8e,0x2,0x3d,0x2,0x25,0x2,0x30,0x2,0x22,0x2, +0xfa,0x1,0xf6,0x1,0x16,0x2,0x9,0x2,0xe4,0x1,0xf9,0x1, +0x2b,0x2,0x34,0x2,0x5,0x2,0xd5,0x1,0xdf,0x1,0xf6,0x1, +0xdb,0x1,0xb2,0x1,0xa6,0x1,0xa6,0x1,0x8f,0x1,0x5f,0x1, +0x42,0x1,0x46,0x1,0x4a,0x1,0x2c,0x1,0xdd,0x0,0x7e,0x0, +0x4d,0x0,0x3d,0x0,0xb,0x0,0xae,0xff,0x58,0xff,0x19,0xff, +0xd0,0xfe,0x80,0xfe,0x4c,0xfe,0x2f,0xfe,0xd,0xfe,0xe0,0xfd, +0xaa,0xfd,0x6b,0xfd,0x38,0xfd,0x2f,0xfd,0x2f,0xfd,0x0,0xfd, +0xb0,0xfc,0x7e,0xfc,0x8b,0xfc,0x96,0xfc,0x5c,0xfc,0x29,0xfc, +0x43,0xfc,0x56,0xfc,0x34,0xfc,0x32,0xfc,0x80,0xfc,0xcc,0xfc, +0xc6,0xfc,0xbb,0xfc,0x14,0xfd,0x86,0xfd,0xa5,0xfd,0x9c,0xfd, +0xc2,0xfd,0x9,0xfe,0x27,0xfe,0x22,0xfe,0x32,0xfe,0x4b,0xfe, +0x5c,0xfe,0x72,0xfe,0x88,0xfe,0xa3,0xfe,0xbf,0xfe,0xd6,0xfe, +0x5,0xff,0x30,0xff,0x2d,0xff,0x2c,0xff,0x3f,0xff,0x43,0xff, +0x37,0xff,0x35,0xff,0x3a,0xff,0x1c,0xff,0xf7,0xfe,0x13,0xff, +0x4f,0xff,0x6c,0xff,0x76,0xff,0x94,0xff,0xda,0xff,0x2a,0x0, +0x5e,0x0,0x98,0x0,0xe3,0x0,0x10,0x1,0x30,0x1,0x6a,0x1, +0xbc,0x1,0xfa,0x1,0xa,0x2,0x44,0x2,0xcd,0x2,0x31,0x3, +0x56,0x3,0x94,0x3,0x18,0x4,0xc3,0x4,0x28,0x5,0x33,0x5, +0x71,0x5,0xf0,0x5,0x2f,0x6,0x26,0x6,0x21,0x6,0x3e,0x6, +0x58,0x6,0x25,0x6,0xba,0x5,0x84,0x5,0x86,0x5,0x65,0x5, +0xb,0x5,0xb5,0x4,0x96,0x4,0x75,0x4,0x17,0x4,0xc2,0x3, +0xb7,0x3,0xb0,0x3,0x6c,0x3,0x5,0x3,0xcf,0x2,0xf3,0x2, +0x17,0x3,0xf0,0x2,0xce,0x2,0xee,0x2,0x19,0x3,0x22,0x3, +0x33,0x3,0x7c,0x3,0xd0,0x3,0xeb,0x3,0xe9,0x3,0xf6,0x3, +0x18,0x4,0x4e,0x4,0x76,0x4,0x71,0x4,0x59,0x4,0x3f,0x4, +0x18,0x4,0xee,0x3,0xc7,0x3,0x9f,0x3,0x6d,0x3,0x20,0x3, +0xbc,0x2,0x65,0x2,0x43,0x2,0x3c,0x2,0x11,0x2,0xc3,0x1, +0x82,0x1,0x66,0x1,0x56,0x1,0x3b,0x1,0x1d,0x1,0x6,0x1, +0xf7,0x0,0xec,0x0,0xe4,0x0,0xf8,0x0,0x2e,0x1,0x6b,0x1, +0xac,0x1,0xea,0x1,0x2f,0x2,0xa8,0x2,0x38,0x3,0xb0,0x3, +0x23,0x4,0x7e,0x4,0xc9,0x4,0x2f,0x5,0x6d,0x5,0x77,0x5, +0x9c,0x5,0xbc,0x5,0x9f,0x5,0x4c,0x5,0xf6,0x4,0xe0,0x4, +0xb0,0x4,0x5,0x4,0x51,0x3,0xd2,0x2,0x4f,0x2,0xb1,0x1, +0xe9,0x0,0x29,0x0,0x9b,0xff,0xe6,0xfe,0xf7,0xfd,0x20,0xfd, +0x69,0xfc,0xb1,0xfb,0xed,0xfa,0x24,0xfa,0x58,0xf9,0x93,0xf8, +0x15,0xf8,0xc2,0xf7,0x33,0xf7,0x96,0xf6,0x55,0xf6,0x54,0xf6, +0x31,0xf6,0xc0,0xf5,0x7a,0xf5,0xab,0xf5,0xc1,0xf5,0x71,0xf5, +0x29,0xf5,0x29,0xf5,0x5e,0xf5,0x64,0xf5,0x7,0xf5,0xdc,0xf4, +0x13,0xf5,0x15,0xf5,0xc8,0xf4,0x89,0xf4,0x65,0xf4,0x47,0xf4, +0xfb,0xf3,0x63,0xf3,0xbc,0xf2,0x47,0xf2,0xe3,0xf1,0x48,0xf1, +0x76,0xf0,0xbe,0xef,0x44,0xef,0xd0,0xee,0x2a,0xee,0x6d,0xed, +0xed,0xec,0xbb,0xec,0x98,0xec,0x4b,0xec,0xe8,0xeb,0xcc,0xeb, +0x14,0xec,0x46,0xec,0x2e,0xec,0x3b,0xec,0xa2,0xec,0x32,0xed, +0x9f,0xed,0xce,0xed,0x2d,0xee,0x12,0xef,0xf8,0xef,0x7a,0xf0, +0x4,0xf1,0xf0,0xf1,0x19,0xf3,0x15,0xf4,0xbf,0xf4,0x82,0xf5, +0x8f,0xf6,0x8c,0xf7,0x51,0xf8,0x8,0xf9,0xc3,0xf9,0x7c,0xfa, +0xd,0xfb,0x60,0xfb,0xaa,0xfb,0xf,0xfc,0x74,0xfc,0xc2,0xfc, +0xff,0xfc,0x38,0xfd,0x80,0xfd,0xda,0xfd,0x15,0xfe,0x21,0xfe, +0x4a,0xfe,0xa8,0xfe,0xe9,0xfe,0xed,0xfe,0xe8,0xfe,0x19,0xff, +0x97,0xff,0xa,0x0,0x27,0x0,0x51,0x0,0xdd,0x0,0x87,0x1, +0x18,0x2,0x8d,0x2,0x16,0x3,0xed,0x3,0xbc,0x4,0x28,0x5, +0x90,0x5,0x37,0x6,0xeb,0x6,0x84,0x7,0xdf,0x7,0x1c,0x8, +0x8a,0x8,0xfb,0x8,0x30,0x9,0x59,0x9,0x86,0x9,0xb4,0x9, +0xe6,0x9,0xe8,0x9,0xbd,0x9,0xad,0x9,0xa5,0x9,0x7b,0x9, +0x22,0x9,0x9d,0x8,0x1e,0x8,0xb1,0x7,0x22,0x7,0x7d,0x6, +0xe8,0x5,0x59,0x5,0xcd,0x4,0x4c,0x4,0xcc,0x3,0x5e,0x3, +0x1f,0x3,0xe8,0x2,0x89,0x2,0x1a,0x2,0xca,0x1,0xa4,0x1, +0x7f,0x1,0x1c,0x1,0x99,0x0,0x66,0x0,0x6d,0x0,0x3c,0x0, +0xe7,0xff,0xc7,0xff,0xef,0xff,0x28,0x0,0x38,0x0,0x4a,0x0, +0x9e,0x0,0xfb,0x0,0x1f,0x1,0x29,0x1,0x3c,0x1,0x5e,0x1, +0x73,0x1,0x50,0x1,0x1c,0x1,0x9,0x1,0xeb,0x0,0x9f,0x0, +0x55,0x0,0x3a,0x0,0x3f,0x0,0x22,0x0,0xc7,0xff,0x73,0xff, +0x50,0xff,0x35,0xff,0xf7,0xfe,0x98,0xfe,0x39,0xfe,0xef,0xfd, +0x9e,0xfd,0x3f,0xfd,0xf6,0xfc,0xd4,0xfc,0xdf,0xfc,0x13,0xfd, +0x45,0xfd,0x6f,0xfd,0xce,0xfd,0x8b,0xfe,0x70,0xff,0x26,0x0, +0xc3,0x0,0x93,0x1,0x7c,0x2,0x3a,0x3,0xd0,0x3,0x6d,0x4, +0x1b,0x5,0xad,0x5,0x16,0x6,0x8b,0x6,0x22,0x7,0xb2,0x7, +0x1a,0x8,0x68,0x8,0xcf,0x8,0x41,0x9,0x83,0x9,0x9e,0x9, +0xa9,0x9,0x93,0x9,0x60,0x9,0xc,0x9,0x84,0x8,0xe2,0x7, +0x6d,0x7,0x2d,0x7,0xd0,0x6,0x40,0x6,0xd1,0x5,0xba,0x5, +0xd3,0x5,0xd2,0x5,0xb4,0x5,0xcd,0x5,0x29,0x6,0x5d,0x6, +0x5d,0x6,0x82,0x6,0xdb,0x6,0x1f,0x7,0x25,0x7,0x32,0x7, +0x7c,0x7,0xc8,0x7,0xfa,0x7,0x3c,0x8,0x9d,0x8,0xfc,0x8, +0x3a,0x9,0x74,0x9,0xcd,0x9,0x10,0xa,0x13,0xa,0x4,0xa, +0xe7,0x9,0x9a,0x9,0x27,0x9,0xaa,0x8,0x31,0x8,0xa9,0x7, +0xf8,0x6,0x3b,0x6,0xb4,0x5,0x5c,0x5,0xf3,0x4,0x70,0x4, +0xfe,0x3,0xae,0x3,0x5d,0x3,0xf1,0x2,0x82,0x2,0x28,0x2, +0xcd,0x1,0x4c,0x1,0xa0,0x0,0x14,0x0,0xe5,0xff,0xca,0xff, +0x84,0xff,0x6f,0xff,0xb4,0xff,0x2,0x0,0x1d,0x0,0x2d,0x0, +0x9f,0x0,0x69,0x1,0xe8,0x1,0xf8,0x1,0x9,0x2,0x59,0x2, +0xc6,0x2,0x5,0x3,0x13,0x3,0x3f,0x3,0x87,0x3,0xb0,0x3, +0xcc,0x3,0x11,0x4,0x6e,0x4,0xa3,0x4,0xa2,0x4,0x9b,0x4, +0xa2,0x4,0x99,0x4,0x5e,0x4,0x6,0x4,0xc3,0x3,0x8e,0x3, +0x3e,0x3,0xbd,0x2,0x34,0x2,0x3,0x2,0x1e,0x2,0x1d,0x2, +0xff,0x1,0xe7,0x1,0xeb,0x1,0x33,0x2,0x88,0x2,0xb2,0x2, +0xe4,0x2,0x1f,0x3,0x37,0x3,0x3d,0x3,0x67,0x3,0xd6,0x3, +0x33,0x4,0x35,0x4,0x3d,0x4,0x83,0x4,0xd8,0x4,0x1d,0x5, +0x34,0x5,0x33,0x5,0x4b,0x5,0x48,0x5,0xfc,0x4,0x93,0x4, +0x33,0x4,0xca,0x3,0x39,0x3,0x9c,0x2,0xa,0x2,0x6b,0x1, +0xda,0x0,0x78,0x0,0x21,0x0,0xc6,0xff,0x60,0xff,0xe1,0xfe, +0x69,0xfe,0x18,0xfe,0xd2,0xfd,0x5f,0xfd,0xc8,0xfc,0x43,0xfc, +0xdb,0xfb,0x80,0xfb,0x31,0xfb,0xfa,0xfa,0xe5,0xfa,0xd6,0xfa, +0xb0,0xfa,0xa2,0xfa,0xc7,0xfa,0xef,0xfa,0xf5,0xfa,0xf4,0xfa, +0x19,0xfb,0x50,0xfb,0x47,0xfb,0xa,0xfb,0x4,0xfb,0x4d,0xfb, +0x83,0xfb,0x84,0xfb,0xa2,0xfb,0xfb,0xfb,0x4b,0xfc,0x7c,0xfc, +0xb3,0xfc,0x6,0xfd,0x6a,0xfd,0xa8,0xfd,0x9a,0xfd,0x65,0xfd, +0x41,0xfd,0x3a,0xfd,0x23,0xfd,0xda,0xfc,0x6e,0xfc,0xfa,0xfb, +0xab,0xfb,0x91,0xfb,0x79,0xfb,0x6c,0xfb,0x9a,0xfb,0xb5,0xfb, +0x8c,0xfb,0x85,0xfb,0xe3,0xfb,0x64,0xfc,0xa2,0xfc,0x95,0xfc, +0xaa,0xfc,0xf,0xfd,0x73,0xfd,0xb2,0xfd,0xa,0xfe,0xb6,0xfe, +0x98,0xff,0x45,0x0,0xc0,0x0,0x7f,0x1,0x7f,0x2,0x72,0x3, +0x3f,0x4,0xd8,0x4,0x3b,0x5,0x85,0x5,0xde,0x5,0x62,0x6, +0xc5,0x6,0xb1,0x6,0x61,0x6,0x46,0x6,0x8d,0x6,0xea,0x6, +0xd9,0x6,0x8f,0x6,0x8d,0x6,0xad,0x6,0xa1,0x6,0x67,0x6, +0x2c,0x6,0x1d,0x6,0xf9,0x5,0x8a,0x5,0x2c,0x5,0x16,0x5, +0x1f,0x5,0x1f,0x5,0x4,0x5,0xfd,0x4,0x30,0x5,0x63,0x5, +0x87,0x5,0xdf,0x5,0x76,0x6,0x9,0x7,0x53,0x7,0x6f,0x7, +0xcf,0x7,0x95,0x8,0x46,0x9,0x7e,0x9,0x8d,0x9,0xed,0x9, +0x83,0xa,0xe2,0xa,0x8,0xb,0x65,0xb,0xc,0xc,0x7d,0xc, +0x96,0xc,0xb6,0xc,0xe8,0xc,0xf7,0xc,0xda,0xc,0x93,0xc, +0x11,0xc,0x3e,0xb,0x3e,0xa,0x55,0x9,0x57,0x8,0xf7,0x6, +0x75,0x5,0x47,0x4,0x45,0x3,0xeb,0x1,0x6f,0x0,0x66,0xff, +0x8e,0xfe,0x6c,0xfd,0x2f,0xfc,0x35,0xfb,0x74,0xfa,0x72,0xf9, +0x1b,0xf8,0x36,0xf7,0xe1,0xf6,0x3a,0xf6,0x33,0xf5,0x8e,0xf4, +0x7f,0xf4,0xa3,0xf4,0x75,0xf4,0x9,0xf4,0xf6,0xf3,0xf,0xf4, +0xd5,0xf3,0x73,0xf3,0x18,0xf3,0xaf,0xf2,0x35,0xf2,0x86,0xf1, +0xb6,0xf0,0xfe,0xef,0x47,0xef,0x9a,0xee,0x1e,0xee,0xad,0xed, +0x30,0xed,0xa3,0xec,0x4,0xec,0xa0,0xeb,0x81,0xeb,0x38,0xeb, +0xa6,0xea,0xfc,0xe9,0x68,0xe9,0x3,0xe9,0x9e,0xe8,0x1f,0xe8, +0xb6,0xe7,0x5d,0xe7,0xe9,0xe6,0x95,0xe6,0xa4,0xe6,0xe0,0xe6, +0xf6,0xe6,0xfd,0xe6,0x3e,0xe7,0xa4,0xe7,0xdf,0xe7,0xf7,0xe7, +0x2c,0xe8,0xa0,0xe8,0x2f,0xe9,0x7b,0xe9,0x80,0xe9,0xcf,0xe9, +0xa5,0xea,0x97,0xeb,0x6b,0xec,0x40,0xed,0x4e,0xee,0xa0,0xef, +0xec,0xf0,0x12,0xf2,0x5c,0xf3,0xc6,0xf4,0xdf,0xf5,0xa2,0xf6, +0x8a,0xf7,0xb6,0xf8,0x9a,0xf9,0x5,0xfa,0x7e,0xfa,0x3f,0xfb, +0xf1,0xfb,0x5b,0xfc,0xc0,0xfc,0x65,0xfd,0xd,0xfe,0x68,0xfe, +0x98,0xfe,0xd4,0xfe,0x26,0xff,0x68,0xff,0x6f,0xff,0x6a,0xff, +0x6f,0xff,0x61,0xff,0x70,0xff,0xb2,0xff,0xff,0xff,0x5e,0x0, +0xc2,0x0,0x2d,0x1,0xe1,0x1,0xd9,0x2,0xb6,0x3,0x51,0x4, +0xe6,0x4,0xac,0x5,0x6c,0x6,0xf4,0x6,0x5b,0x7,0xce,0x7, +0x6a,0x8,0xd9,0x8,0xe2,0x8,0x11,0x9,0x94,0x9,0xfc,0x9, +0x2b,0xa,0x3a,0xa,0x4f,0xa,0x97,0xa,0xbb,0xa,0x7f,0xa, +0x3f,0xa,0x1d,0xa,0xd3,0x9,0x2f,0x9,0x5b,0x8,0xd4,0x7, +0xa4,0x7,0x23,0x7,0x18,0x6,0x18,0x5,0x91,0x4,0x6d,0x4, +0x2a,0x4,0x62,0x3,0xab,0x2,0x89,0x2,0x50,0x2,0xac,0x1, +0x20,0x1,0xce,0x0,0x9f,0x0,0x5b,0x0,0xc9,0xff,0x6f,0xff, +0x90,0xff,0xa0,0xff,0x92,0xff,0xb4,0xff,0x0,0x0,0x4c,0x0, +0x65,0x0,0x79,0x0,0xcf,0x0,0x25,0x1,0x2a,0x1,0xe6,0x0, +0x93,0x0,0x77,0x0,0x7b,0x0,0x4a,0x0,0xd4,0xff,0x5f,0xff, +0x25,0xff,0xf1,0xfe,0x8d,0xfe,0x26,0xfe,0xec,0xfd,0xd2,0xfd, +0xa2,0xfd,0x3e,0xfd,0xdd,0xfc,0xa8,0xfc,0x90,0xfc,0x8b,0xfc, +0x82,0xfc,0x7c,0xfc,0x89,0xfc,0xaa,0xfc,0xa,0xfd,0x94,0xfd, +0xa,0xfe,0x90,0xfe,0x2b,0xff,0xbf,0xff,0x59,0x0,0xe7,0x0, +0x79,0x1,0x26,0x2,0xa5,0x2,0xdf,0x2,0x8,0x3,0x52,0x3, +0xd9,0x3,0x5c,0x4,0xb2,0x4,0x22,0x5,0xaa,0x5,0x7,0x6, +0x40,0x6,0xa7,0x6,0x74,0x7,0x45,0x8,0x8b,0x8,0x66,0x8, +0x67,0x8,0xb8,0x8,0xf7,0x8,0xf5,0x8,0xf2,0x8,0x5,0x9, +0xb,0x9,0x3,0x9,0x15,0x9,0x6a,0x9,0xd2,0x9,0xc,0xa, +0x2e,0xa,0x54,0xa,0x6e,0xa,0x6e,0xa,0x62,0xa,0x5e,0xa, +0x31,0xa,0xaf,0x9,0x1e,0x9,0xcc,0x8,0xb8,0x8,0xb9,0x8, +0xa1,0x8,0x7e,0x8,0x70,0x8,0x71,0x8,0x95,0x8,0xe5,0x8, +0x35,0x9,0x65,0x9,0x57,0x9,0x21,0x9,0xf6,0x8,0xe2,0x8, +0xd9,0x8,0xc4,0x8,0x88,0x8,0x35,0x8,0xf2,0x7,0xd5,0x7, +0xc3,0x7,0xa0,0x7,0x79,0x7,0x3e,0x7,0xe4,0x6,0x79,0x6, +0xf4,0x5,0x6f,0x5,0x1,0x5,0x6f,0x4,0x94,0x3,0x89,0x2, +0x9a,0x1,0x12,0x1,0xbc,0x0,0x2d,0x0,0x6e,0xff,0xe7,0xfe, +0xcc,0xfe,0xc3,0xfe,0x84,0xfe,0x4c,0xfe,0x50,0xfe,0x7a,0xfe, +0x70,0xfe,0xa,0xfe,0xd8,0xfd,0x14,0xfe,0x3b,0xfe,0x2b,0xfe, +0x12,0xfe,0x25,0xfe,0x91,0xfe,0xf4,0xfe,0x35,0xff,0xbe,0xff, +0x62,0x0,0xd2,0x0,0x1e,0x1,0x62,0x1,0xd4,0x1,0x47,0x2, +0x55,0x2,0x39,0x2,0x2b,0x2,0xd,0x2,0xe7,0x1,0xc4,0x1, +0x9e,0x1,0x60,0x1,0x9,0x1,0xe4,0x0,0xfb,0x0,0xed,0x0, +0xa0,0x0,0x60,0x0,0x78,0x0,0xc0,0x0,0xc7,0x0,0x9f,0x0, +0x96,0x0,0xa3,0x0,0xa7,0x0,0xa5,0x0,0xc4,0x0,0x14,0x1, +0x4a,0x1,0x6a,0x1,0xcb,0x1,0x5a,0x2,0xfa,0x2,0xc2,0x3, +0x8c,0x4,0x41,0x5,0xfd,0x5,0xbd,0x6,0x64,0x7,0xe1,0x7, +0x55,0x8,0xd2,0x8,0x17,0x9,0x2,0x9,0xbe,0x8,0xa0,0x8, +0xd9,0x8,0xd7,0x8,0x36,0x8,0xb1,0x7,0x92,0x7,0x60,0x7, +0x5,0x7,0x99,0x6,0x43,0x6,0xe,0x6,0x82,0x5,0xb6,0x4, +0x46,0x4,0x14,0x4,0xd2,0x3,0x5e,0x3,0xaa,0x2,0x36,0x2, +0x3e,0x2,0x5d,0x2,0x71,0x2,0x81,0x2,0x8c,0x2,0xc0,0x2, +0x5,0x3,0x32,0x3,0x7d,0x3,0xd8,0x3,0xd9,0x3,0x7e,0x3, +0x2f,0x3,0x20,0x3,0x21,0x3,0xd6,0x2,0x50,0x2,0xf9,0x1, +0xc3,0x1,0x60,0x1,0x4,0x1,0xe0,0x0,0xae,0x0,0x3e,0x0, +0xae,0xff,0x3b,0xff,0xcb,0xfe,0xb,0xfe,0x39,0xfd,0xb3,0xfc, +0x43,0xfc,0x7d,0xfb,0x56,0xfa,0x6b,0xf9,0x1e,0xf9,0xc3,0xf8, +0xf4,0xf7,0x30,0xf7,0xc2,0xf6,0x8b,0xf6,0x3e,0xf6,0xd3,0xf5, +0xb7,0xf5,0xc0,0xf5,0x78,0xf5,0x2d,0xf5,0x3d,0xf5,0x90,0xf5, +0xbc,0xf5,0x89,0xf5,0x9f,0xf5,0x68,0xf6,0x46,0xf7,0xd5,0xf7, +0x4e,0xf8,0xf9,0xf8,0xec,0xf9,0xd9,0xfa,0x9c,0xfb,0x43,0xfc, +0xa8,0xfc,0xee,0xfc,0x57,0xfd,0xb1,0xfd,0xc9,0xfd,0xa6,0xfd, +0x76,0xfd,0x6e,0xfd,0x4d,0xfd,0xdb,0xfc,0x8a,0xfc,0x93,0xfc, +0xa6,0xfc,0x8b,0xfc,0x46,0xfc,0x1c,0xfc,0x46,0xfc,0x70,0xfc, +0x79,0xfc,0xcd,0xfc,0x72,0xfd,0x18,0xfe,0xb9,0xfe,0x72,0xff, +0x72,0x0,0xa8,0x1,0xa4,0x2,0x6d,0x3,0x68,0x4,0x7e,0x5, +0x55,0x6,0xe7,0x6,0x91,0x7,0x67,0x8,0xec,0x8,0x4,0x9, +0x24,0x9,0x81,0x9,0xe9,0x9,0xf5,0x9,0xa7,0x9,0x95,0x9, +0xc3,0x9,0xad,0x9,0x59,0x9,0x2e,0x9,0x40,0x9,0x4c,0x9, +0x27,0x9,0x20,0x9,0x85,0x9,0x14,0xa,0x5a,0xa,0x9e,0xa, +0x92,0xb,0xeb,0xc,0xd3,0xd,0x2e,0xe,0x8c,0xe,0x82,0xf, +0xb2,0x10,0xc,0x11,0xa5,0x10,0x51,0x10,0x47,0x10,0x28,0x10, +0x38,0xf,0xa4,0xd,0xa2,0xc,0xd,0xc,0xeb,0xa,0x52,0x9, +0xc7,0x7,0xae,0x6,0xd7,0x5,0x76,0x4,0xc0,0x2,0x7b,0x1, +0x66,0x0,0xea,0xfe,0x1a,0xfd,0x7e,0xfb,0x49,0xfa,0x27,0xf9, +0xcc,0xf7,0x3a,0xf6,0xe9,0xf4,0x52,0xf4,0xf9,0xf3,0x30,0xf3, +0xe,0xf2,0x16,0xf1,0xb5,0xf0,0x54,0xf0,0x4,0xef,0x61,0xed, +0x5c,0xec,0xa1,0xeb,0x89,0xea,0xe3,0xe8,0x3f,0xe7,0x58,0xe6, +0xbd,0xe5,0xb4,0xe4,0xa5,0xe3,0xe,0xe3,0xb2,0xe2,0x46,0xe2, +0xc0,0xe1,0x52,0xe1,0x3f,0xe1,0x49,0xe1,0xe9,0xe0,0x4c,0xe0, +0xfe,0xdf,0xf3,0xdf,0xe2,0xdf,0x92,0xdf,0x3,0xdf,0xb3,0xde, +0xc3,0xde,0xbb,0xde,0x8c,0xde,0x89,0xde,0xb7,0xde,0xea,0xde, +0xf4,0xde,0xdb,0xde,0xe9,0xde,0x2c,0xdf,0x66,0xdf,0x79,0xdf, +0x7d,0xdf,0x95,0xdf,0xfd,0xdf,0xb4,0xe0,0x7c,0xe1,0x79,0xe2, +0xdf,0xe3,0x87,0xe5,0x5c,0xe7,0x3d,0xe9,0x30,0xeb,0x96,0xed, +0xf,0xf0,0xf3,0xf1,0x86,0xf3,0x25,0xf5,0xd5,0xf6,0x83,0xf8, +0xd3,0xf9,0xb5,0xfa,0x72,0xfb,0x3d,0xfc,0x35,0xfd,0x10,0xfe, +0x94,0xfe,0x2e,0xff,0xfd,0xff,0xa0,0x0,0xf2,0x0,0x18,0x1, +0x73,0x1,0x4,0x2,0x3a,0x2,0x11,0x2,0xc,0x2,0x4b,0x2, +0x9e,0x2,0xda,0x2,0x1b,0x3,0x8e,0x3,0x2b,0x4,0xeb,0x4, +0xbd,0x5,0x79,0x6,0x50,0x7,0x6b,0x8,0x6d,0x9,0x2,0xa, +0x65,0xa,0xb,0xb,0xe8,0xb,0x6d,0xc,0x6d,0xc,0x66,0xc, +0xa2,0xc,0xda,0xc,0xd7,0xc,0xd4,0xc,0x11,0xd,0x64,0xd, +0x80,0xd,0x7e,0xd,0xa0,0xd,0xd8,0xd,0xfb,0xd,0xea,0xd, +0x99,0xd,0x38,0xd,0xcf,0xc,0x2e,0xc,0x81,0xb,0xe7,0xa, +0x13,0xa,0x7,0x9,0x13,0x8,0x40,0x7,0x73,0x6,0x8c,0x5, +0x82,0x4,0xa5,0x3,0xfc,0x2,0xa,0x2,0xc1,0x0,0xb1,0xff, +0xf5,0xfe,0xb,0xfe,0xc1,0xfc,0x9c,0xfb,0x5,0xfb,0xa5,0xfa, +0x8,0xfa,0x81,0xf9,0xab,0xf9,0x68,0xfa,0x8,0xfb,0x4b,0xfb, +0xb1,0xfb,0x9f,0xfc,0xb3,0xfd,0x4a,0xfe,0x7b,0xfe,0xc7,0xfe, +0x35,0xff,0x6d,0xff,0x47,0xff,0xd0,0xfe,0x65,0xfe,0x3f,0xfe, +0x4,0xfe,0x84,0xfd,0xfe,0xfc,0x9b,0xfc,0x58,0xfc,0xfa,0xfb, +0x88,0xfb,0x52,0xfb,0x8,0xfb,0x63,0xfa,0xf0,0xf9,0xf0,0xf9, +0xa,0xfa,0xdc,0xf9,0x6f,0xf9,0x86,0xf9,0x45,0xfa,0xdc,0xfa, +0x59,0xfb,0x53,0xfc,0x9b,0xfd,0xc2,0xfe,0xa9,0xff,0xc9,0x0, +0x60,0x2,0xaa,0x3,0x65,0x4,0x34,0x5,0x1b,0x6,0xbb,0x6, +0x15,0x7,0x85,0x7,0x58,0x8,0x17,0x9,0x42,0x9,0x60,0x9, +0x5,0xa,0xf2,0xa,0xc7,0xb,0x7e,0xc,0x30,0xd,0xdc,0xd, +0x76,0xe,0xf8,0xe,0x7a,0xf,0x10,0x10,0x76,0x10,0x7b,0x10, +0x65,0x10,0x49,0x10,0x6,0x10,0xc9,0xf,0xa6,0xf,0x7c,0xf, +0x42,0xf,0xd9,0xe,0x47,0xe,0xd0,0xd,0x8e,0xd,0x5e,0xd, +0xfb,0xc,0x40,0xc,0x7c,0xb,0x6,0xb,0xc3,0xa,0x84,0xa, +0x31,0xa,0xe9,0x9,0xef,0x9,0x28,0xa,0x5f,0xa,0xcd,0xa, +0x8d,0xb,0x58,0xc,0xd,0xd,0xb0,0xd,0x4a,0xe,0xdd,0xe, +0x46,0xf,0x92,0xf,0xdd,0xf,0xec,0xf,0x8a,0xf,0xce,0xe, +0xfd,0xd,0x4d,0xd,0x97,0xc,0x96,0xb,0x45,0xa,0xcd,0x8, +0x74,0x7,0x5f,0x6,0x57,0x5,0x26,0x4,0xdb,0x2,0xb2,0x1, +0xb6,0x0,0xb9,0xff,0xc1,0xfe,0xff,0xfd,0x78,0xfd,0x15,0xfd, +0x9a,0xfc,0x17,0xfc,0x7,0xfc,0x6b,0xfc,0xfa,0xfc,0xb5,0xfd, +0x6e,0xfe,0xf8,0xfe,0x9c,0xff,0x91,0x0,0xa9,0x1,0x84,0x2, +0xf6,0x2,0x33,0x3,0x76,0x3,0xa8,0x3,0x9c,0x3,0x8f,0x3, +0xce,0x3,0x5,0x4,0xd2,0x3,0x84,0x3,0xa8,0x3,0x49,0x4, +0xaa,0x4,0x82,0x4,0xa3,0x4,0x35,0x5,0x71,0x5,0x3e,0x5, +0x19,0x5,0x78,0x5,0xc,0x6,0xd1,0x5,0x28,0x5,0x48,0x5, +0xdd,0x5,0x8,0x6,0xd0,0x5,0xbf,0x5,0x23,0x6,0x71,0x6, +0x57,0x6,0x88,0x6,0x22,0x7,0x6c,0x7,0x55,0x7,0x6b,0x7, +0xdb,0x7,0x4a,0x8,0xa2,0x8,0x1d,0x9,0x9e,0x9,0x7,0xa, +0x8d,0xa,0x60,0xb,0x66,0xc,0x24,0xd,0x9d,0xd,0x85,0xe, +0xa0,0xf,0x12,0x10,0x19,0x10,0x73,0x10,0x12,0x11,0x2b,0x11, +0x7f,0x10,0xe2,0xf,0xaa,0xf,0x32,0xf,0x3c,0xe,0x2f,0xd, +0x6f,0xc,0xbe,0xb,0x88,0xa,0x17,0x9,0x11,0x8,0x3c,0x7, +0x13,0x6,0x77,0x4,0xc5,0x2,0x75,0x1,0x62,0x0,0x2a,0xff, +0xdc,0xfd,0xb8,0xfc,0xf1,0xfb,0x5e,0xfb,0xc6,0xfa,0x65,0xfa, +0x60,0xfa,0x7d,0xfa,0x7f,0xfa,0x2f,0xfa,0xae,0xf9,0x50,0xf9, +0xfb,0xf8,0x9b,0xf8,0x41,0xf8,0x93,0xf7,0x7a,0xf6,0x76,0xf5, +0xbd,0xf4,0x2d,0xf4,0xad,0xf3,0x2e,0xf3,0xb5,0xf2,0x1f,0xf2, +0x39,0xf1,0x72,0xf0,0x57,0xf0,0x7d,0xf0,0x18,0xf0,0x2b,0xef, +0x82,0xee,0x7a,0xee,0x70,0xee,0xfa,0xed,0xbf,0xed,0x2e,0xee, +0xb4,0xee,0xc2,0xee,0xb4,0xee,0x27,0xef,0xfe,0xef,0xa1,0xf0, +0xd8,0xf0,0xf2,0xf0,0x2d,0xf1,0x7a,0xf1,0xee,0xf1,0x8e,0xf2, +0xf8,0xf2,0x1d,0xf3,0x85,0xf3,0x71,0xf4,0xaa,0xf5,0xf3,0xf6, +0x4a,0xf8,0xca,0xf9,0x3f,0xfb,0x8f,0xfc,0x2e,0xfe,0x1b,0x0, +0xaf,0x1,0xcd,0x2,0xe4,0x3,0x12,0x5,0x8,0x6,0x7c,0x6, +0xbe,0x6,0x67,0x7,0x49,0x8,0xbb,0x8,0xc9,0x8,0xf4,0x8, +0x64,0x9,0xec,0x9,0x49,0xa,0x70,0xa,0x9a,0xa,0xdb,0xa, +0x22,0xb,0x54,0xb,0x69,0xb,0x92,0xb,0xd4,0xb,0x23,0xc, +0xaf,0xc,0x57,0xd,0xe9,0xd,0x9b,0xe,0x6b,0xf,0x4a,0x10, +0x5d,0x11,0x84,0x12,0x85,0x13,0x49,0x14,0xe0,0x14,0x97,0x15, +0x46,0x16,0x84,0x16,0x74,0x16,0x6d,0x16,0x81,0x16,0x65,0x16, +0xdf,0x15,0x74,0x15,0x7d,0x15,0x66,0x15,0xe6,0x14,0x6e,0x14, +0x4a,0x14,0x32,0x14,0xb3,0x13,0x1a,0x13,0xfd,0x12,0x0,0x13, +0xab,0x12,0x57,0x12,0x53,0x12,0xa0,0x12,0xe3,0x12,0x6d,0x12, +0xc9,0x11,0x3,0x12,0x4c,0x12,0x91,0x11,0x3a,0x10,0xc,0xf, +0x72,0xe,0x98,0xd,0x29,0xb,0x70,0x8,0x1b,0x7,0x0,0x6, +0xdf,0x3,0x2b,0x1,0xe6,0xfe,0xa8,0xfd,0x44,0xfc,0xd8,0xf9, +0xce,0xf7,0xbf,0xf6,0x85,0xf5,0xba,0xf3,0xee,0xf1,0x98,0xf0, +0x86,0xef,0x34,0xee,0xca,0xec,0xaf,0xeb,0xd2,0xea,0xf4,0xe9, +0x2,0xe9,0x10,0xe8,0x1c,0xe7,0x53,0xe6,0xc1,0xe5,0xc2,0xe4, +0x38,0xe3,0xd7,0xe1,0xc3,0xe0,0xc2,0xdf,0x63,0xde,0x5b,0xdc, +0x88,0xda,0x81,0xd9,0x83,0xd8,0x3d,0xd7,0x10,0xd6,0x1b,0xd5, +0x79,0xd4,0x37,0xd4,0xd7,0xd3,0x2b,0xd3,0xde,0xd2,0x10,0xd3, +0x17,0xd3,0xc1,0xd2,0x44,0xd2,0x1a,0xd2,0x74,0xd2,0x79,0xd2, +0x10,0xd2,0x39,0xd2,0xe1,0xd2,0x66,0xd3,0xd4,0xd3,0x68,0xd4, +0x73,0xd5,0xd1,0xd6,0xba,0xd7,0x2f,0xd8,0x4,0xd9,0x3b,0xda, +0x1e,0xdb,0x93,0xdb,0xe9,0xdb,0x81,0xdc,0xd7,0xdd,0x3f,0xdf, +0xfb,0xdf,0x1e,0xe1,0x20,0xe3,0x3b,0xe5,0x5d,0xe7,0x72,0xe9, +0xa9,0xeb,0x67,0xee,0x97,0xf0,0xf2,0xf1,0xa5,0xf3,0x73,0xf5, +0xcd,0xf6,0xcf,0xf7,0x62,0xf8,0xed,0xf8,0xb8,0xf9,0x57,0xfa, +0xdf,0xfa,0x93,0xfb,0x68,0xfc,0x6c,0xfd,0x83,0xfe,0x71,0xff, +0x5c,0x0,0x96,0x1,0xde,0x2,0xc4,0x3,0x6c,0x4,0xf2,0x4, +0x7c,0x5,0x61,0x6,0x46,0x7,0xe6,0x7,0x8b,0x8,0x2b,0x9, +0x1,0xa,0x5a,0xb,0xba,0xc,0xf6,0xd,0x49,0xf,0x8b,0x10, +0x87,0x11,0x38,0x12,0xc1,0x12,0x40,0x13,0x74,0x13,0x11,0x13, +0x3c,0x12,0x88,0x11,0x17,0x11,0x82,0x10,0xd3,0xf,0x5d,0xf, +0x38,0xf,0x31,0xf,0xd8,0xe,0x7d,0xe,0xc7,0xe,0x1f,0xf, +0xd4,0xe,0xf,0xe,0x38,0xd,0xb4,0xc,0xe,0xc,0xc1,0xa, +0x91,0x9,0xd7,0x8,0xf0,0x7,0xc7,0x6,0xde,0x5,0x98,0x5, +0xc7,0x5,0xb6,0x5,0x3a,0x5,0xd0,0x4,0xb3,0x4,0x94,0x4, +0x22,0x4,0x7d,0x3,0xdd,0x2,0x5,0x2,0xc6,0x0,0x97,0xff, +0xe0,0xfe,0x40,0xfe,0x7d,0xfd,0xee,0xfc,0xb1,0xfc,0xc5,0xfc, +0xdd,0xfc,0x96,0xfc,0x9e,0xfc,0x3f,0xfd,0x63,0xfd,0xbf,0xfc, +0xff,0xfb,0x88,0xfb,0x2f,0xfb,0x50,0xfa,0x9,0xf9,0x21,0xf8, +0x79,0xf7,0xaf,0xf6,0xde,0xf5,0x51,0xf5,0x6e,0xf5,0xd6,0xf5, +0xd4,0xf5,0xcf,0xf5,0x5c,0xf6,0x2a,0xf7,0xbe,0xf7,0xeb,0xf7, +0xef,0xf7,0x52,0xf8,0x9,0xf9,0x60,0xf9,0x5c,0xf9,0xe1,0xf9, +0x11,0xfb,0x51,0xfc,0x57,0xfd,0x55,0xfe,0xdd,0xff,0xf3,0x1, +0xb5,0x3,0xe9,0x4,0xb,0x6,0x3d,0x7,0x44,0x8,0xcb,0x8, +0x2,0x9,0x61,0x9,0xba,0x9,0xc7,0x9,0xa8,0x9,0xac,0x9, +0x2c,0xa,0xf1,0xa,0x8e,0xb,0x22,0xc,0xfb,0xc,0x7,0xe, +0xd7,0xe,0x48,0xf,0xd1,0xf,0x7c,0x10,0xf6,0x10,0x20,0x11, +0xe1,0x10,0xaf,0x10,0xf5,0x10,0x19,0x11,0xde,0x10,0xc5,0x10, +0xf9,0x10,0x6d,0x11,0xec,0x11,0x37,0x12,0x90,0x12,0x3a,0x13, +0xe5,0x13,0x23,0x14,0xd,0x14,0x17,0x14,0x41,0x14,0x28,0x14, +0xbc,0x13,0x41,0x13,0xd,0x13,0x24,0x13,0x3f,0x13,0x43,0x13, +0x67,0x13,0xee,0x13,0x9c,0x14,0xe3,0x14,0xf6,0x14,0x46,0x15, +0x5a,0x15,0xae,0x14,0x82,0x13,0x5a,0x12,0x77,0x11,0x4c,0x10, +0x45,0xe,0x37,0xc,0x1c,0xb,0x4f,0xa,0xe8,0x8,0x51,0x7, +0x82,0x6,0x9d,0x6,0xa4,0x6,0xe2,0x5,0x8,0x5,0xe3,0x4, +0x24,0x5,0x1a,0x5,0x7c,0x4,0xde,0x3,0xfe,0x3,0x45,0x4, +0xf1,0x3,0x93,0x3,0xcd,0x3,0xa1,0x4,0x7d,0x5,0xa1,0x5, +0xbf,0x5,0xc3,0x6,0xa4,0x7,0x7b,0x7,0x8,0x7,0xed,0x6, +0xfa,0x6,0x85,0x6,0x16,0x5,0x88,0x3,0xe5,0x2,0xb1,0x2, +0xfa,0x1,0xeb,0x0,0x5a,0x0,0x90,0x0,0x22,0x1,0x89,0x1, +0xb7,0x1,0x3b,0x2,0x4d,0x3,0x25,0x4,0x37,0x4,0x34,0x4, +0xea,0x4,0xe0,0x5,0x15,0x6,0xd5,0x5,0x1a,0x6,0xe4,0x6, +0xb1,0x7,0x3c,0x8,0xc2,0x8,0xd5,0x9,0x3,0xb,0x78,0xb, +0xae,0xb,0x34,0xc,0xc0,0xc,0x6,0xd,0xd0,0xc,0x36,0xc, +0xae,0xb,0x79,0xb,0x77,0xb,0x4a,0xb,0xfc,0xa,0x17,0xb, +0xa7,0xb,0x4d,0xc,0xc6,0xc,0x27,0xd,0x8,0xe,0x1f,0xf, +0x4f,0xf,0xe5,0xe,0xba,0xe,0xaf,0xe,0x91,0xe,0x2b,0xe, +0x4e,0xd,0x79,0xc,0xfe,0xb,0x92,0xb,0x11,0xb,0x8f,0xa, +0x29,0xa,0xff,0x9,0xdf,0x9,0x74,0x9,0xea,0x8,0x8c,0x8, +0x2d,0x8,0xa1,0x7,0xf6,0x6,0x5a,0x6,0xf9,0x5,0x93,0x5, +0x36,0x5,0x66,0x5,0xd2,0x5,0x5,0x6,0x66,0x6,0x16,0x7, +0xd4,0x7,0x76,0x8,0xec,0x8,0x5b,0x9,0x92,0x9,0x4a,0x9, +0xd5,0x8,0x63,0x8,0xb1,0x7,0xaa,0x6,0x83,0x5,0x87,0x4, +0xa6,0x3,0x9e,0x2,0x88,0x1,0xaa,0x0,0x12,0x0,0x89,0xff, +0xf3,0xfe,0x4e,0xfe,0x71,0xfd,0xca,0xfc,0xcd,0xfc,0xcf,0xfc, +0x3e,0xfc,0x78,0xfb,0x24,0xfb,0x8c,0xfb,0xd2,0xfb,0x6f,0xfb, +0x6f,0xfb,0x30,0xfc,0xd0,0xfc,0xe6,0xfc,0xf0,0xfc,0x9f,0xfd, +0x7e,0xfe,0xb4,0xfe,0x9e,0xfe,0x9a,0xfe,0x61,0xfe,0xb9,0xfd, +0xc9,0xfc,0x56,0xfc,0x50,0xfc,0xae,0xfb,0xaf,0xfa,0x24,0xfa, +0x20,0xfa,0x54,0xfa,0x5d,0xfa,0x66,0xfa,0xac,0xfa,0xd5,0xfa, +0xf4,0xfa,0x1e,0xfb,0x11,0xfb,0xed,0xfa,0xa7,0xfa,0x41,0xfa, +0x1,0xfa,0xa7,0xf9,0x1c,0xf9,0x96,0xf8,0x13,0xf8,0xc2,0xf7, +0xb5,0xf7,0x89,0xf7,0x1c,0xf7,0xd8,0xf6,0x15,0xf7,0x65,0xf7, +0x4b,0xf7,0x12,0xf7,0x22,0xf7,0x8f,0xf7,0x9,0xf8,0x45,0xf8, +0xc8,0xf8,0xc3,0xf9,0xb7,0xfa,0xc8,0xfb,0x2c,0xfd,0xa0,0xfe, +0xf7,0xff,0x3a,0x1,0xa8,0x2,0x33,0x4,0x39,0x5,0x98,0x5, +0xdc,0x5,0x47,0x6,0x61,0x6,0xb7,0x5,0xa5,0x4,0xb4,0x3, +0xe4,0x2,0xe8,0x1,0xc6,0x0,0x0,0x0,0xa4,0xff,0x32,0xff, +0xb7,0xfe,0x93,0xfe,0xfe,0xfe,0xbb,0xff,0x20,0x0,0x70,0x0, +0x51,0x1,0x65,0x2,0x55,0x3,0x48,0x4,0xa5,0x5,0xa9,0x7, +0x94,0x9,0x19,0xb,0xeb,0xc,0x4c,0xf,0x14,0x12,0xba,0x14, +0xc1,0x16,0x79,0x18,0xd9,0x19,0xd3,0x1a,0xc4,0x1b,0x47,0x1c, +0x6,0x1c,0x37,0x1b,0x18,0x1a,0x1a,0x19,0xb4,0x17,0x7a,0x15, +0xba,0x13,0xaf,0x12,0x1a,0x11,0xb2,0xe,0x2a,0xc,0x7a,0xa, +0x50,0x9,0x12,0x7,0xfd,0x3,0xac,0x1,0x14,0x0,0xfe,0xfd, +0x20,0xfb,0x9b,0xf8,0x23,0xf7,0xc1,0xf5,0xbe,0xf3,0xdb,0xf1, +0xd5,0xf0,0x4e,0xf0,0x9b,0xef,0xb7,0xee,0xf1,0xed,0x42,0xed, +0x82,0xec,0xc3,0xeb,0x3,0xeb,0xe1,0xe9,0x6f,0xe8,0x40,0xe7, +0x37,0xe6,0xf3,0xe4,0x9c,0xe3,0x9d,0xe2,0x39,0xe2,0xcc,0xe1, +0xb4,0xe0,0xd6,0xdf,0xc8,0xdf,0xc3,0xdf,0xff,0xde,0x77,0xdd, +0x2b,0xdc,0x91,0xdb,0x6d,0xda,0x65,0xd8,0x87,0xd6,0x28,0xd5, +0xf8,0xd3,0x8d,0xd2,0xe9,0xd0,0xe1,0xcf,0xa7,0xcf,0x70,0xcf, +0xf2,0xce,0xc2,0xce,0xf,0xcf,0x42,0xcf,0x33,0xcf,0x34,0xcf, +0x4f,0xcf,0x90,0xcf,0xcc,0xcf,0xdf,0xcf,0x50,0xd0,0x37,0xd1, +0x4f,0xd2,0xd4,0xd3,0xac,0xd5,0xbc,0xd7,0x4a,0xda,0x17,0xdd, +0xef,0xdf,0xcf,0xe2,0x67,0xe5,0xea,0xe7,0xa1,0xea,0xed,0xec, +0x6e,0xee,0xc2,0xef,0x5b,0xf1,0xf6,0xf2,0x38,0xf4,0xc,0xf5, +0xfa,0xf5,0x96,0xf7,0x2c,0xf9,0x8,0xfa,0xda,0xfa,0x15,0xfc, +0x72,0xfd,0xa7,0xfe,0x3a,0xff,0x6e,0xff,0x0,0x0,0x96,0x0, +0xbc,0x0,0xb5,0x0,0xc1,0x0,0x36,0x1,0x20,0x2,0x8,0x3, +0x7,0x4,0x98,0x5,0x94,0x7,0x90,0x9,0x86,0xb,0x8c,0xd, +0x99,0xf,0x79,0x11,0xd4,0x12,0xcb,0x13,0xcc,0x14,0x90,0x15, +0xd9,0x15,0xf,0x16,0x54,0x16,0x9c,0x16,0x0,0x17,0x4e,0x17, +0x83,0x17,0xd9,0x17,0x54,0x18,0xd7,0x18,0x12,0x19,0xd9,0x18, +0x75,0x18,0xf7,0x17,0x28,0x17,0xe2,0x15,0x36,0x14,0xac,0x12, +0x6b,0x11,0xe2,0xf,0x11,0xe,0x9a,0xc,0xb8,0xb,0x22,0xb, +0x6e,0xa,0x99,0x9,0x13,0x9,0xd7,0x8,0x59,0x8,0x6a,0x7, +0x5f,0x6,0x77,0x5,0x81,0x4,0x28,0x3,0x91,0x1,0x3a,0x0, +0x59,0xff,0xac,0xfe,0xed,0xfd,0x4b,0xfd,0x35,0xfd,0x9f,0xfd, +0x7,0xfe,0x34,0xfe,0x5a,0xfe,0xaf,0xfe,0x10,0xff,0xfc,0xfe, +0x4a,0xfe,0x6c,0xfd,0xbe,0xfc,0x4,0xfc,0xfd,0xfa,0xdd,0xf9, +0xdd,0xf8,0xfe,0xf7,0x4f,0xf7,0xda,0xf6,0x86,0xf6,0x51,0xf6, +0x1d,0xf6,0xcb,0xf5,0x7c,0xf5,0x42,0xf5,0xea,0xf4,0x53,0xf4, +0x93,0xf3,0xdc,0xf2,0x50,0xf2,0xf0,0xf1,0xa8,0xf1,0x7f,0xf1, +0xd1,0xf1,0xce,0xf2,0x1a,0xf4,0x68,0xf5,0xdb,0xf6,0xb6,0xf8, +0x3,0xfb,0x51,0xfd,0x27,0xff,0xaf,0x0,0x51,0x2,0xfc,0x3, +0x6e,0x5,0xa0,0x6,0xb9,0x7,0xcd,0x8,0xc8,0x9,0xb7,0xa, +0xd4,0xb,0x19,0xd,0x53,0xe,0x73,0xf,0x80,0x10,0x7f,0x11, +0x51,0x12,0xee,0x12,0x85,0x13,0xda,0x13,0xba,0x13,0x8b,0x13, +0x70,0x13,0x2d,0x13,0xbc,0x12,0x4f,0x12,0x49,0x12,0x74,0x12, +0x3c,0x12,0x18,0x12,0x94,0x12,0x4d,0x13,0xba,0x13,0xa8,0x13, +0xc0,0x13,0x7c,0x14,0xf3,0x14,0xce,0x14,0xae,0x14,0x9b,0x14, +0xae,0x14,0xd6,0x14,0xa4,0x14,0x8c,0x14,0xe8,0x14,0x3b,0x15, +0x6c,0x15,0x95,0x15,0xd7,0x15,0x5f,0x16,0xc1,0x16,0xa7,0x16, +0x5b,0x16,0xe,0x16,0xa7,0x15,0xda,0x14,0x9d,0x13,0x6c,0x12, +0x5b,0x11,0xe4,0xf,0x1c,0xe,0xa5,0xc,0x90,0xb,0x79,0xa, +0x2d,0x9,0xba,0x7,0x5d,0x6,0x2f,0x5,0x3,0x4,0xda,0x2, +0xa3,0x1,0x2b,0x0,0xb5,0xfe,0x78,0xfd,0x5d,0xfc,0x6a,0xfb, +0x83,0xfa,0xaf,0xf9,0x38,0xf9,0xfd,0xf8,0xc1,0xf8,0xb0,0xf8, +0xf7,0xf8,0x61,0xf9,0x8e,0xf9,0x98,0xf9,0xd2,0xf9,0x35,0xfa, +0xa6,0xfa,0xdb,0xfa,0xbe,0xfa,0xda,0xfa,0x59,0xfb,0xb6,0xfb, +0xbe,0xfb,0xe0,0xfb,0x76,0xfc,0x9,0xfd,0x20,0xfd,0x36,0xfd, +0xc1,0xfd,0x73,0xfe,0xb4,0xfe,0x76,0xfe,0x72,0xfe,0xcb,0xfe, +0xd1,0xfe,0x6c,0xfe,0x24,0xfe,0x57,0xfe,0x8e,0xfe,0x14,0xfe, +0x9a,0xfd,0xf5,0xfd,0x8b,0xfe,0xd7,0xfe,0x5,0xff,0x72,0xff, +0x63,0x0,0x52,0x1,0xe9,0x1,0x9d,0x2,0x99,0x3,0xa4,0x4, +0x7d,0x5,0x23,0x6,0x13,0x7,0x4b,0x8,0x48,0x9,0x16,0xa, +0x15,0xb,0x58,0xc,0x8b,0xd,0x59,0xe,0xd,0xf,0xff,0xf, +0xeb,0x10,0x6c,0x11,0xa3,0x11,0xed,0x11,0x37,0x12,0x47,0x12, +0x26,0x12,0xf3,0x11,0xd9,0x11,0xab,0x11,0x2d,0x11,0xb8,0x10, +0x4a,0x10,0x85,0xf,0xa9,0xe,0xfd,0xd,0x5e,0xd,0x7d,0xc, +0x3b,0xb,0x2e,0xa,0x9c,0x9,0xe,0x9,0x43,0x8,0x52,0x7, +0xc2,0x6,0xce,0x6,0x87,0x6,0xba,0x5,0x67,0x5,0x95,0x5, +0x82,0x5,0x12,0x5,0xc9,0x4,0x1c,0x5,0x91,0x5,0x4d,0x5, +0x9c,0x4,0x97,0x4,0x36,0x5,0x5c,0x5,0xb4,0x4,0xf1,0x3, +0x91,0x3,0x70,0x3,0x6,0x3,0x37,0x2,0x64,0x1,0xb3,0x0, +0x20,0x0,0x69,0xff,0x4d,0xfe,0x51,0xfd,0xe0,0xfc,0x8a,0xfc, +0xd3,0xfb,0xac,0xfa,0xa6,0xf9,0x1f,0xf9,0xa6,0xf8,0x37,0xf8, +0x18,0xf8,0xeb,0xf7,0x6f,0xf7,0xe7,0xf6,0xda,0xf6,0x9e,0xf7, +0x66,0xf8,0x6e,0xf8,0x75,0xf8,0x28,0xf9,0xd9,0xf9,0x10,0xfa, +0x83,0xfa,0x8a,0xfb,0x8c,0xfc,0x16,0xfd,0x42,0xfd,0xdf,0xfd, +0x56,0xff,0x90,0x0,0x1d,0x1,0xdb,0x1,0xcc,0x2,0x6f,0x3, +0xc4,0x3,0x29,0x4,0x2,0x5,0x8d,0x5,0x2a,0x5,0xd4,0x4, +0xfd,0x4,0x3,0x5,0xa9,0x4,0x16,0x4,0xf6,0x3,0x44,0x4, +0xbc,0x3,0x91,0x2,0x30,0x2,0x8f,0x2,0xc2,0x2,0x5d,0x2, +0xb1,0x1,0x91,0x1,0xf4,0x1,0x1f,0x2,0x2d,0x2,0x94,0x2, +0x1c,0x3,0x73,0x3,0xcf,0x3,0x9a,0x4,0xd8,0x5,0x5,0x7, +0xec,0x7,0xe7,0x8,0x20,0xa,0x5e,0xb,0x5d,0xc,0x32,0xd, +0x37,0xe,0x32,0xf,0xa0,0xf,0xa5,0xf,0x8b,0xf,0x7e,0xf, +0xa6,0xf,0xbd,0xf,0x99,0xf,0x58,0xf,0x6,0xf,0xfa,0xe, +0x44,0xf,0x44,0xf,0xf8,0xe,0xc9,0xe,0xae,0xe,0x74,0xe, +0xf1,0xd,0x55,0xd,0x25,0xd,0x4d,0xd,0x2f,0xd,0xc2,0xc, +0xc9,0xc,0xa8,0xd,0xa7,0xe,0x22,0xf,0x6c,0xf,0xd,0x10, +0xf0,0x10,0x83,0x11,0x6b,0x11,0x6,0x11,0xce,0x10,0x76,0x10, +0x35,0xf,0x3e,0xd,0x89,0xb,0x39,0xa,0xe0,0x8,0x2e,0x7, +0x0,0x5,0xf7,0x2,0xaa,0x1,0x71,0x0,0x9a,0xfe,0x6a,0xfc, +0x73,0xfa,0xb6,0xf8,0x94,0xf6,0xe8,0xf3,0x42,0xf1,0xf2,0xee, +0xb7,0xec,0xff,0xe9,0xf5,0xe6,0xb7,0xe4,0x27,0xe3,0x1f,0xe1, +0xcf,0xde,0xf5,0xdc,0x99,0xdb,0x64,0xda,0xd7,0xd8,0xf3,0xd6, +0x64,0xd5,0x3a,0xd4,0xf0,0xd2,0x47,0xd1,0x6b,0xcf,0xf0,0xcd, +0x8,0xcd,0x3b,0xcc,0x70,0xcb,0xb6,0xca,0x1e,0xca,0x46,0xca, +0xfc,0xca,0x53,0xcb,0x7d,0xcb,0xdf,0xcb,0x52,0xcc,0x14,0xcd, +0xf9,0xcd,0x65,0xce,0x59,0xce,0x28,0xce,0x45,0xce,0xa3,0xce, +0xa8,0xce,0x73,0xce,0x69,0xce,0x9a,0xce,0x18,0xcf,0x54,0xcf, +0x47,0xcf,0xde,0xcf,0xcd,0xd0,0x54,0xd1,0xa6,0xd1,0xf0,0xd1, +0x74,0xd2,0x21,0xd3,0x77,0xd3,0x9,0xd4,0x3c,0xd5,0x65,0xd6, +0x96,0xd7,0x2b,0xd9,0x58,0xdb,0x78,0xde,0x96,0xe1,0xf3,0xe3, +0xc0,0xe6,0x74,0xea,0x35,0xee,0x7d,0xf1,0xfe,0xf3,0x61,0xf6, +0x69,0xf9,0xee,0xfb,0x45,0xfd,0x8a,0xfe,0x1a,0x0,0xa5,0x1, +0xe3,0x2,0x65,0x3,0xc4,0x3,0xc0,0x4,0xbf,0x5,0x4e,0x6, +0xa7,0x6,0xef,0x6,0x3d,0x7,0x89,0x7,0xd3,0x7,0x10,0x8, +0x13,0x8,0x1f,0x8,0x58,0x8,0x7a,0x8,0x99,0x8,0xe8,0x8, +0x7b,0x9,0x38,0xa,0xcb,0xa,0x77,0xb,0x7b,0xc,0x87,0xd, +0x83,0xe,0x30,0xf,0x8a,0xf,0x3f,0x10,0xda,0x10,0x83,0x10, +0x3,0x10,0xcd,0xf,0x49,0xf,0x7b,0xe,0x9b,0xd,0xd6,0xc, +0x8c,0xc,0x63,0xc,0xe4,0xb,0x79,0xb,0x74,0xb,0x9a,0xb, +0xb1,0xb,0x6e,0xb,0xda,0xa,0x4e,0xa,0x93,0x9,0x7a,0x8, +0x45,0x7,0xfe,0x5,0xd0,0x4,0xd0,0x3,0x7c,0x2,0xe,0x1, +0x4d,0x0,0xf0,0xff,0x56,0xff,0xa4,0xfe,0x1b,0xfe,0x83,0xfd, +0x9b,0xfc,0x96,0xfb,0xb9,0xfa,0xdc,0xf9,0xb4,0xf8,0x3b,0xf7, +0xe1,0xf5,0xf4,0xf4,0x11,0xf4,0x48,0xf3,0x3c,0xf3,0x92,0xf3, +0x9e,0xf3,0xb8,0xf3,0x77,0xf4,0xbe,0xf5,0xde,0xf6,0x7e,0xf7, +0x31,0xf8,0x4b,0xf9,0x10,0xfa,0x1d,0xfa,0x8,0xfa,0x4f,0xfa, +0xab,0xfa,0x97,0xfa,0x3d,0xfa,0x69,0xfa,0x1a,0xfb,0x91,0xfb, +0xe5,0xfb,0x94,0xfc,0xaa,0xfd,0xde,0xfe,0x8c,0xff,0xad,0xff, +0x41,0x0,0x3f,0x1,0x97,0x1,0x43,0x1,0x2,0x1,0x53,0x1, +0x19,0x2,0xa7,0x2,0xf2,0x2,0xd4,0x3,0x7f,0x5,0x41,0x7, +0xb8,0x8,0x3e,0xa,0x12,0xc,0xd9,0xd,0x37,0xf,0x34,0x10, +0xed,0x10,0x7f,0x11,0xf1,0x11,0x25,0x12,0x12,0x12,0xd0,0x11, +0xb1,0x11,0x16,0x12,0xb3,0x12,0xe2,0x12,0x5,0x13,0xd8,0x13, +0x5,0x15,0xc7,0x15,0x7,0x16,0x6e,0x16,0x6c,0x17,0x1d,0x18, +0xb2,0x17,0xa,0x17,0xe6,0x16,0xee,0x16,0xc5,0x16,0x68,0x16, +0x4e,0x16,0x8f,0x16,0x60,0x16,0xea,0x15,0x10,0x16,0x8f,0x16, +0xb8,0x16,0x42,0x16,0x5e,0x15,0xac,0x14,0xfe,0x13,0xa9,0x12, +0xf6,0x10,0x5e,0xf,0xe6,0xd,0x8d,0xc,0x2d,0xb,0xcc,0x9, +0xe3,0x8,0xa5,0x8,0xae,0x8,0x88,0x8,0x2f,0x8,0x4,0x8, +0x5c,0x8,0xec,0x8,0xe6,0x8,0x3d,0x8,0xb7,0x7,0x68,0x7, +0xbc,0x6,0xc8,0x5,0x12,0x5,0xb2,0x4,0x3c,0x4,0x74,0x3, +0xc9,0x2,0x8f,0x2,0x7e,0x2,0x59,0x2,0x29,0x2,0xf7,0x1, +0xa8,0x1,0x29,0x1,0xa8,0x0,0x3e,0x0,0xb1,0xff,0xd,0xff, +0x7d,0xfe,0xec,0xfd,0x67,0xfd,0x25,0xfd,0x63,0xfd,0x17,0xfe, +0xa1,0xfe,0xd8,0xfe,0x4c,0xff,0x16,0x0,0xf,0x1,0xfe,0x1, +0x63,0x2,0x7b,0x2,0xdd,0x2,0x4b,0x3,0x68,0x3,0x38,0x3, +0x25,0x3,0xbf,0x3,0x9a,0x4,0xf5,0x4,0x2f,0x5,0xdd,0x5, +0xeb,0x6,0xef,0x7,0xad,0x8,0x61,0x9,0x9,0xa,0x5c,0xa, +0x80,0xa,0xab,0xa,0xe4,0xa,0xf7,0xa,0x98,0xa,0x1c,0xa, +0xe4,0x9,0xdf,0x9,0xb,0xa,0x2,0xa,0x9e,0x9,0x9d,0x9, +0x2,0xa,0x2d,0xa,0xf1,0x9,0x5c,0x9,0xeb,0x8,0xd0,0x8, +0x5c,0x8,0x88,0x7,0xcd,0x6,0x39,0x6,0x1,0x6,0x19,0x6, +0x11,0x6,0x2,0x6,0x34,0x6,0xc6,0x6,0xb7,0x7,0xa0,0x8, +0x30,0x9,0x90,0x9,0xfb,0x9,0x5f,0xa,0x71,0xa,0x63,0xa, +0x8d,0xa,0x72,0xa,0xc7,0x9,0x24,0x9,0xe1,0x8,0xe3,0x8, +0xbe,0x8,0x1,0x8,0x4e,0x7,0x3f,0x7,0xf4,0x6,0xb0,0x5, +0xd,0x4,0xa,0x3,0xb8,0x2,0xec,0x1,0x42,0x0,0xc7,0xfe, +0xd5,0xfd,0xe,0xfd,0x87,0xfc,0x55,0xfc,0x6a,0xfc,0x8b,0xfc, +0x94,0xfc,0x1f,0xfd,0x38,0xfe,0x3,0xff,0x92,0xff,0x72,0x0, +0x83,0x1,0x4e,0x2,0x7c,0x2,0x97,0x2,0x5f,0x3,0x4d,0x4, +0xb4,0x4,0xeb,0x4,0x4e,0x5,0xd5,0x5,0x46,0x6,0x95,0x6, +0x2d,0x7,0x5,0x8,0x8c,0x8,0x9c,0x8,0x6c,0x8,0x6d,0x8, +0xe4,0x8,0x4,0x9,0x34,0x8,0x38,0x7,0x7e,0x6,0xa7,0x5, +0xda,0x4,0x60,0x4,0x15,0x4,0xbb,0x3,0x12,0x3,0x86,0x2, +0xc2,0x2,0x36,0x3,0x1a,0x3,0xdc,0x2,0x1d,0x3,0x7b,0x3, +0x1b,0x3,0x52,0x2,0x64,0x2,0x2c,0x3,0x7c,0x3,0x2d,0x3, +0xd6,0x2,0x1,0x3,0x9f,0x3,0xd,0x4,0x72,0x4,0x31,0x5, +0x97,0x5,0x50,0x5,0x4,0x5,0x2e,0x5,0xc4,0x5,0x17,0x6, +0x9a,0x5,0xdd,0x4,0x5c,0x4,0xea,0x3,0x84,0x3,0x1c,0x3, +0xc4,0x2,0xa8,0x2,0x50,0x2,0x7a,0x1,0xc8,0x0,0x84,0x0, +0x61,0x0,0x23,0x0,0xa1,0xff,0xf5,0xfe,0x49,0xfe,0xb8,0xfd, +0x76,0xfd,0x5c,0xfd,0x2b,0xfd,0x2a,0xfd,0x7e,0xfd,0xf2,0xfd, +0x58,0xfe,0xaf,0xfe,0x76,0xff,0xbf,0x0,0x94,0x1,0xb8,0x1, +0xf4,0x1,0xd1,0x2,0x27,0x4,0xf3,0x4,0xb7,0x4,0xa0,0x4, +0x52,0x5,0x13,0x6,0x74,0x6,0x9f,0x6,0x23,0x7,0x3b,0x8, +0xf7,0x8,0xec,0x8,0xe,0x9,0xd1,0x9,0x98,0xa,0xcd,0xa, +0xac,0xa,0xf9,0xa,0xb3,0xb,0x1c,0xc,0x38,0xc,0xd0,0xc, +0x12,0xe,0x51,0xf,0xd,0x10,0x56,0x10,0x94,0x10,0x64,0x11, +0x84,0x12,0xb9,0x12,0xe9,0x11,0x1f,0x11,0xc9,0x10,0x6d,0x10, +0x20,0xf,0xe7,0xc,0x54,0xb,0xa6,0xa,0x2e,0x9,0xc1,0x6, +0xa6,0x4,0x38,0x3,0xe1,0x1,0xe5,0xff,0x67,0xfd,0x73,0xfb, +0xfb,0xf9,0xf3,0xf7,0x98,0xf5,0xdc,0xf3,0x92,0xf2,0xa,0xf1, +0x45,0xef,0x9e,0xed,0x6c,0xec,0xd6,0xeb,0x73,0xeb,0xd8,0xea, +0x13,0xea,0x3f,0xe9,0xb7,0xe8,0x88,0xe8,0xc9,0xe7,0x63,0xe6, +0x56,0xe5,0xa0,0xe4,0xad,0xe3,0x31,0xe2,0x43,0xe0,0x4,0xdf, +0xb9,0xde,0xd3,0xdd,0x3,0xdc,0x73,0xda,0x68,0xd9,0x68,0xd8, +0xb,0xd7,0x86,0xd5,0x7e,0xd4,0xab,0xd3,0x5c,0xd2,0xbe,0xd0, +0x60,0xcf,0x8e,0xce,0x19,0xce,0x8b,0xcd,0xdb,0xcc,0x70,0xcc, +0x93,0xcc,0xf9,0xcc,0x48,0xcd,0xd8,0xcd,0xb6,0xce,0x8b,0xcf, +0x6c,0xd0,0x7,0xd1,0x4c,0xd1,0x36,0xd2,0xa0,0xd3,0x95,0xd4, +0x3f,0xd5,0xe4,0xd5,0xd3,0xd6,0x72,0xd8,0x18,0xda,0x80,0xdb, +0x5a,0xdd,0x7a,0xdf,0x67,0xe1,0x37,0xe3,0x4,0xe5,0x20,0xe7, +0x6d,0xe9,0x34,0xeb,0x7a,0xec,0xbe,0xed,0x4,0xef,0x3b,0xf0, +0x75,0xf1,0xa8,0xf2,0x9d,0xf3,0x4e,0xf4,0x1d,0xf5,0x43,0xf6, +0x95,0xf7,0xd6,0xf8,0xee,0xf9,0xef,0xfa,0xe3,0xfb,0xb3,0xfc, +0x6b,0xfd,0x37,0xfe,0x1c,0xff,0xf2,0xff,0x7e,0x0,0xdb,0x0, +0x84,0x1,0xb9,0x2,0x21,0x4,0x4a,0x5,0x48,0x6,0x80,0x7, +0xe2,0x8,0x30,0xa,0x89,0xb,0x17,0xd,0xa3,0xe,0xb2,0xf, +0x27,0x10,0x8b,0x10,0x34,0x11,0xe5,0x11,0x49,0x12,0x32,0x12, +0xf2,0x11,0x3,0x12,0x23,0x12,0xff,0x11,0xce,0x11,0xc3,0x11, +0xda,0x11,0xba,0x11,0xf9,0x10,0xa,0x10,0x9d,0xf,0x51,0xf, +0x75,0xe,0x32,0xd,0xd,0xc,0x23,0xb,0x52,0xa,0x8f,0x9, +0xe6,0x8,0x52,0x8,0xb5,0x7,0x29,0x7,0xf3,0x6,0xd1,0x6, +0x64,0x6,0xf7,0x5,0xa0,0x5,0xc,0x5,0x5f,0x4,0xc3,0x3, +0x9,0x3,0x36,0x2,0x6e,0x1,0xc1,0x0,0x1e,0x0,0x62,0xff, +0xc4,0xfe,0x85,0xfe,0x7c,0xfe,0x5c,0xfe,0x19,0xfe,0xeb,0xfd, +0xde,0xfd,0xb8,0xfd,0x96,0xfd,0x85,0xfd,0x25,0xfd,0x91,0xfc, +0x4d,0xfc,0x5c,0xfc,0x3a,0xfc,0xb0,0xfb,0x81,0xfb,0x14,0xfc, +0x6d,0xfc,0x27,0xfc,0x7,0xfc,0x5a,0xfc,0xc1,0xfc,0xa9,0xfc, +0x38,0xfc,0x7c,0xfc,0x38,0xfd,0x35,0xfd,0xdf,0xfc,0x28,0xfd, +0xf8,0xfd,0xd6,0xfe,0x5f,0xff,0xe7,0xff,0x13,0x1,0x74,0x2, +0x78,0x3,0x5f,0x4,0x88,0x5,0x15,0x7,0x9c,0x8,0x8d,0x9, +0x4b,0xa,0x5f,0xb,0x82,0xc,0x59,0xd,0xef,0xd,0x8f,0xe, +0x75,0xf,0x64,0x10,0x0,0x11,0x6a,0x11,0x9,0x12,0xda,0x12, +0x6b,0x13,0xa0,0x13,0xc5,0x13,0xf3,0x13,0x18,0x14,0x12,0x14, +0xc7,0x13,0x67,0x13,0x39,0x13,0x41,0x13,0x55,0x13,0x6e,0x13, +0xc7,0x13,0x6b,0x14,0x4,0x15,0x6a,0x15,0xc5,0x15,0x40,0x16, +0xba,0x16,0xc6,0x16,0x6e,0x16,0x15,0x16,0xad,0x15,0x22,0x15, +0x84,0x14,0xc3,0x13,0x2a,0x13,0xec,0x12,0xc8,0x12,0xa0,0x12, +0x67,0x12,0x34,0x12,0x5d,0x12,0x99,0x12,0x66,0x12,0xd0,0x11, +0x6,0x11,0x62,0x10,0xed,0xf,0xfa,0xe,0x97,0xd,0x71,0xc, +0x75,0xb,0x63,0xa,0x53,0x9,0x48,0x8,0x64,0x7,0x98,0x6, +0x9c,0x5,0x97,0x4,0xb1,0x3,0xac,0x2,0x81,0x1,0x6e,0x0, +0x82,0xff,0x89,0xfe,0x55,0xfd,0x9,0xfc,0x0,0xfb,0x5d,0xfa, +0xe1,0xf9,0x68,0xf9,0x1b,0xf9,0x0,0xf9,0x1f,0xf9,0xb4,0xf9, +0x72,0xfa,0xca,0xfa,0x12,0xfb,0xce,0xfb,0xa4,0xfc,0x9,0xfd, +0x15,0xfd,0x4c,0xfd,0xb9,0xfd,0xca,0xfd,0x73,0xfd,0x58,0xfd, +0x8c,0xfd,0xa0,0xfd,0xaa,0xfd,0x3,0xfe,0x7e,0xfe,0x9e,0xfe, +0x68,0xfe,0x71,0xfe,0xd4,0xfe,0xe3,0xfe,0x60,0xfe,0xf0,0xfd, +0xe9,0xfd,0xd3,0xfd,0x7c,0xfd,0x59,0xfd,0xc7,0xfd,0x91,0xfe, +0x43,0xff,0xf6,0xff,0x1c,0x1,0x61,0x2,0x6e,0x3,0xab,0x4, +0xf8,0x5,0x1,0x7,0x4,0x8,0xc9,0x8,0x36,0x9,0xea,0x9, +0xae,0xa,0xf9,0xa,0x2d,0xb,0x91,0xb,0x19,0xc,0xc2,0xc, +0x46,0xd,0xc3,0xd,0x79,0xe,0x27,0xf,0x98,0xf,0xce,0xf, +0xf0,0xf,0x4d,0x10,0x87,0x10,0x32,0x10,0xa8,0xf,0x1f,0xf, +0x82,0xe,0xe1,0xd,0x2d,0xd,0x7b,0xc,0xa,0xc,0xbe,0xb, +0x4f,0xb,0xae,0xa,0x26,0xa,0xf6,0x9,0xdd,0x9,0x83,0x9, +0xd3,0x8,0x14,0x8,0xbe,0x7,0x75,0x7,0xb2,0x6,0x7,0x6, +0xe4,0x5,0xe9,0x5,0xe7,0x5,0xe4,0x5,0x12,0x6,0xa9,0x6, +0x40,0x7,0x92,0x7,0xfd,0x7,0x85,0x8,0xc6,0x8,0xa5,0x8, +0x7f,0x8,0x7a,0x8,0x1d,0x8,0x40,0x7,0x45,0x6,0x44,0x5, +0x29,0x4,0x1a,0x3,0x3e,0x2,0x70,0x1,0x4b,0x0,0x13,0xff, +0x59,0xfe,0xde,0xfd,0x36,0xfd,0x6b,0xfc,0xc2,0xfb,0xb0,0xfb, +0xab,0xfb,0xc8,0xfa,0xde,0xf9,0xe1,0xf9,0x3a,0xfa,0x64,0xfa, +0x5c,0xfa,0x6e,0xfa,0x1f,0xfb,0x7,0xfc,0x8f,0xfc,0x40,0xfd, +0x6c,0xfe,0x87,0xff,0x36,0x0,0xc8,0x0,0xbc,0x1,0xc9,0x2, +0x28,0x3,0xfd,0x2,0xff,0x2,0x52,0x3,0x88,0x3,0x56,0x3, +0xe9,0x2,0xa8,0x2,0xb0,0x2,0xbc,0x2,0x89,0x2,0x3d,0x2, +0x1b,0x2,0x3d,0x2,0x85,0x2,0x6b,0x2,0xba,0x1,0x47,0x1, +0x96,0x1,0xc5,0x1,0x22,0x1,0x3d,0x0,0xe8,0xff,0x22,0x0, +0x53,0x0,0x32,0x0,0x3d,0x0,0xe4,0x0,0xb4,0x1,0x45,0x2, +0xe,0x3,0x4a,0x4,0x82,0x5,0x4f,0x6,0xaf,0x6,0xff,0x6, +0x79,0x7,0xbe,0x7,0xbc,0x7,0xcc,0x7,0xbb,0x7,0x56,0x7, +0xf8,0x6,0xf0,0x6,0x3f,0x7,0x90,0x7,0x9d,0x7,0x9f,0x7, +0x9b,0x7,0x60,0x7,0x43,0x7,0x6d,0x7,0x57,0x7,0x9e,0x6, +0x72,0x5,0x5e,0x4,0x9d,0x3,0xde,0x2,0x16,0x2,0x9c,0x1, +0x6b,0x1,0x3e,0x1,0xb,0x1,0x1b,0x1,0xac,0x1,0x6a,0x2, +0x3,0x3,0x79,0x3,0x9c,0x3,0x92,0x3,0xf5,0x3,0x95,0x4, +0xc1,0x4,0x75,0x4,0x2f,0x4,0x28,0x4,0x2f,0x4,0x48,0x4, +0xce,0x4,0xb9,0x5,0x90,0x6,0x13,0x7,0xc3,0x7,0x27,0x9, +0xb0,0xa,0xb1,0xb,0x67,0xc,0xf6,0xc,0x51,0xd,0x8f,0xd, +0x88,0xd,0x4d,0xd,0xec,0xc,0x37,0xc,0x68,0xb,0x5d,0xa, +0xc0,0x8,0x4d,0x7,0x68,0x6,0x6b,0x5,0xf3,0x3,0xe7,0x1, +0xb9,0xff,0x18,0xfe,0x84,0xfc,0x5e,0xfa,0xeb,0xf7,0x4d,0xf5, +0xa5,0xf2,0x4a,0xf0,0x16,0xee,0xc3,0xeb,0xa8,0xe9,0x3d,0xe8, +0x41,0xe7,0x1c,0xe6,0xf3,0xe4,0x54,0xe4,0x42,0xe4,0x38,0xe4, +0xb4,0xe3,0xe6,0xe2,0x53,0xe2,0xb5,0xe1,0xa0,0xe0,0x51,0xdf, +0xf,0xde,0xe8,0xdc,0xca,0xdb,0x82,0xda,0x30,0xd9,0x3f,0xd8, +0xc9,0xd7,0x82,0xd7,0x10,0xd7,0x67,0xd6,0xff,0xd5,0x2,0xd6, +0xb2,0xd5,0xbf,0xd4,0xda,0xd3,0x3d,0xd3,0x6f,0xd2,0x47,0xd1, +0xf7,0xcf,0xdf,0xce,0x35,0xce,0xbb,0xcd,0x5d,0xcd,0x38,0xcd, +0x40,0xcd,0x8b,0xcd,0x25,0xce,0xde,0xce,0x91,0xcf,0x38,0xd0, +0xf2,0xd0,0xb3,0xd1,0x3a,0xd2,0xbe,0xd2,0x8d,0xd3,0x67,0xd4, +0x2d,0xd5,0x4,0xd6,0x2b,0xd7,0xdd,0xd8,0xde,0xda,0xf4,0xdc, +0x4a,0xdf,0xe7,0xe1,0xd0,0xe4,0xc8,0xe7,0x2d,0xea,0x51,0xec, +0xf4,0xee,0x98,0xf1,0x7d,0xf3,0xbc,0xf4,0xe7,0xf5,0x86,0xf7, +0x33,0xf9,0x2d,0xfa,0xec,0xfa,0x28,0xfc,0x98,0xfd,0xba,0xfe, +0x8b,0xff,0x5e,0x0,0x68,0x1,0x51,0x2,0xce,0x2,0xd,0x3, +0x41,0x3,0x69,0x3,0x79,0x3,0x7f,0x3,0x97,0x3,0xcf,0x3, +0x4e,0x4,0x16,0x5,0xf8,0x5,0x22,0x7,0xb9,0x8,0x7c,0xa, +0x38,0xc,0xbe,0xd,0x6,0xf,0x4f,0x10,0x70,0x11,0x1f,0x12, +0x7b,0x12,0xb5,0x12,0xc,0x13,0x47,0x13,0xe7,0x12,0x77,0x12, +0x9b,0x12,0xd2,0x12,0xb0,0x12,0x5f,0x12,0x29,0x12,0x63,0x12, +0xc7,0x12,0x9a,0x12,0xec,0x11,0x4f,0x11,0xbe,0x10,0xd5,0xf, +0x75,0xe,0xe0,0xc,0x72,0xb,0x27,0xa,0x9f,0x8,0xe5,0x6, +0x7a,0x5,0x89,0x4,0xd8,0x3,0x16,0x3,0x33,0x2,0x99,0x1, +0x47,0x1,0x98,0x0,0x96,0xff,0xc3,0xfe,0xd,0xfe,0x2c,0xfd, +0xe7,0xfb,0x4c,0xfa,0x23,0xf9,0xca,0xf8,0x8b,0xf8,0x5,0xf8, +0x95,0xf7,0x96,0xf7,0x36,0xf8,0x11,0xf9,0x79,0xf9,0xb4,0xf9, +0x53,0xfa,0xfe,0xfa,0x41,0xfb,0x20,0xfb,0xc2,0xfa,0x80,0xfa, +0x5e,0xfa,0xd6,0xf9,0xe9,0xf8,0x24,0xf8,0xaa,0xf7,0x4e,0xf7, +0xfa,0xf6,0x99,0xf6,0x4d,0xf6,0x60,0xf6,0x95,0xf6,0x8c,0xf6, +0x86,0xf6,0xc1,0xf6,0xf,0xf7,0x32,0xf7,0xf0,0xf6,0xd4,0xf6, +0xa2,0xf7,0x90,0xf8,0xd1,0xf8,0x3e,0xf9,0x73,0xfa,0x25,0xfc, +0xec,0xfd,0x82,0xff,0x82,0x1,0x40,0x4,0xa4,0x6,0x4a,0x8, +0x9,0xa,0x10,0xc,0xe6,0xd,0x12,0xf,0x82,0xf,0xd6,0xf, +0x42,0x10,0x5b,0x10,0x5b,0x10,0xa5,0x10,0xe5,0x10,0xe8,0x10, +0xec,0x10,0x8,0x11,0x54,0x11,0xea,0x11,0x71,0x12,0x92,0x12, +0x73,0x12,0x2e,0x12,0xd2,0x11,0x8f,0x11,0x50,0x11,0xee,0x10, +0xb0,0x10,0xb2,0x10,0x8f,0x10,0x35,0x10,0x52,0x10,0x66,0x11, +0xcd,0x12,0x6a,0x13,0x55,0x13,0x9a,0x13,0x75,0x14,0x3e,0x15, +0x90,0x15,0x78,0x15,0x37,0x15,0xdb,0x14,0x1f,0x14,0x33,0x13, +0x9b,0x12,0x41,0x12,0xe2,0x11,0x70,0x11,0xc6,0x10,0x13,0x10, +0xf3,0xf,0x5e,0x10,0x95,0x10,0x46,0x10,0xc5,0xf,0x50,0xf, +0x9f,0xe,0x59,0xd,0xff,0xb,0x2e,0xb,0x32,0xa,0x43,0x8, +0x19,0x6,0x99,0x4,0xb7,0x3,0xc,0x3,0x3c,0x2,0x72,0x1, +0x1,0x1,0xa9,0x0,0x6c,0x0,0x81,0x0,0x92,0x0,0x63,0x0, +0x5,0x0,0x85,0xff,0x27,0xff,0xfe,0xfe,0xe6,0xfe,0xfe,0xfe, +0x28,0xff,0x2a,0xff,0x5c,0xff,0x9,0x0,0xe2,0x0,0xbe,0x1, +0xbf,0x2,0xa3,0x3,0x5,0x4,0x24,0x4,0x55,0x4,0x7c,0x4, +0x64,0x4,0xf1,0x3,0x2f,0x3,0x5f,0x2,0x9f,0x1,0xea,0x0, +0x73,0x0,0x62,0x0,0x78,0x0,0x86,0x0,0xb9,0x0,0x27,0x1, +0xc2,0x1,0x8f,0x2,0x5d,0x3,0xee,0x3,0x46,0x4,0x92,0x4, +0x10,0x5,0x89,0x5,0x9b,0x5,0xab,0x5,0x1a,0x6,0xac,0x6, +0x4a,0x7,0xfe,0x7,0xda,0x8,0xfb,0x9,0x15,0xb,0xf7,0xb, +0xe5,0xc,0xd1,0xd,0x60,0xe,0x93,0xe,0xa8,0xe,0xa8,0xe, +0x6a,0xe,0xf3,0xd,0x60,0xd,0xd9,0xc,0x9f,0xc,0x8f,0xc, +0x65,0xc,0x54,0xc,0x8a,0xc,0xee,0xc,0x48,0xd,0x63,0xd, +0x59,0xd,0x5d,0xd,0x51,0xd,0xf2,0xc,0x36,0xc,0x6b,0xb, +0xb1,0xa,0xc3,0x9,0xc1,0x8,0xfa,0x7,0x50,0x7,0x8d,0x6, +0xc4,0x5,0x51,0x5,0x56,0x5,0x66,0x5,0x39,0x5,0xec,0x4, +0xb6,0x4,0xb9,0x4,0xae,0x4,0x66,0x4,0x2b,0x4,0xfe,0x3, +0xbe,0x3,0x98,0x3,0x90,0x3,0x85,0x3,0x77,0x3,0x7d,0x3, +0xa6,0x3,0xdf,0x3,0x0,0x4,0xf8,0x3,0xe5,0x3,0x14,0x4, +0x5e,0x4,0x34,0x4,0x92,0x3,0xf5,0x2,0x8f,0x2,0x2d,0x2, +0x9e,0x1,0xdf,0x0,0x1d,0x0,0x91,0xff,0xf3,0xfe,0x11,0xfe, +0x92,0xfd,0x9b,0xfd,0x8a,0xfd,0x49,0xfd,0x3,0xfd,0x9,0xfd, +0x98,0xfd,0x1,0xfe,0x11,0xfe,0x6d,0xfe,0xe2,0xfe,0xe,0xff, +0xf7,0xfe,0xcd,0xfe,0xd,0xff,0x71,0xff,0x76,0xff,0x9d,0xff, +0xea,0xff,0xcd,0xff,0xa1,0xff,0x3,0x0,0xd5,0x0,0x3d,0x1, +0xa5,0x0,0xe0,0xff,0xd3,0xff,0x16,0x0,0xf3,0xff,0x88,0xff, +0x6c,0xff,0x69,0xff,0x13,0xff,0x0,0xff,0x95,0xff,0x57,0x0, +0xe4,0x0,0x36,0x1,0xac,0x1,0x78,0x2,0x20,0x3,0x93,0x3, +0xd,0x4,0x68,0x4,0x98,0x4,0x92,0x4,0x56,0x4,0x29,0x4, +0x16,0x4,0x2,0x4,0xc9,0x3,0x1a,0x3,0x27,0x2,0x8a,0x1, +0x6a,0x1,0x84,0x1,0x74,0x1,0xef,0x0,0x33,0x0,0xdc,0xff, +0xfc,0xff,0x3,0x0,0xb7,0xff,0x4d,0xff,0xe5,0xfe,0x8c,0xfe, +0x21,0xfe,0xad,0xfd,0xb4,0xfd,0x1e,0xfe,0x46,0xfe,0x19,0xfe, +0xff,0xfd,0x5d,0xfe,0x13,0xff,0x78,0xff,0x70,0xff,0x67,0xff, +0x7d,0xff,0x9c,0xff,0x8b,0xff,0x43,0xff,0x3c,0xff,0x7f,0xff, +0x97,0xff,0x8c,0xff,0xad,0xff,0xe,0x0,0x98,0x0,0x23,0x1, +0x97,0x1,0x7,0x2,0x7b,0x2,0xf0,0x2,0x7c,0x3,0x3b,0x4, +0x17,0x5,0xb6,0x5,0xee,0x5,0x38,0x6,0xf1,0x6,0xc2,0x7, +0x66,0x8,0xfe,0x8,0xa7,0x9,0x69,0xa,0xfc,0xa,0x5f,0xb, +0x48,0xc,0x6d,0xd,0xc5,0xd,0xad,0xd,0xe6,0xd,0x3e,0xe, +0x3d,0xe,0x76,0xd,0x5d,0xc,0xcd,0xb,0x16,0xb,0x55,0x9, +0x3a,0x7,0x84,0x5,0x21,0x4,0xa0,0x2,0xa2,0x0,0x96,0xfe, +0xdd,0xfc,0x5,0xfb,0x4,0xf9,0x2d,0xf7,0x56,0xf5,0x6a,0xf3, +0x69,0xf1,0x44,0xef,0x6f,0xed,0x25,0xec,0xda,0xea,0x60,0xe9, +0x1a,0xe8,0x28,0xe7,0x7a,0xe6,0x25,0xe6,0xf5,0xe5,0x92,0xe5, +0x16,0xe5,0xbb,0xe4,0x7a,0xe4,0x4f,0xe4,0xfd,0xe3,0x3f,0xe3, +0x54,0xe2,0x92,0xe1,0xdc,0xe0,0xdc,0xdf,0x87,0xde,0x53,0xdd, +0x79,0xdc,0x8e,0xdb,0x5d,0xda,0x1c,0xd9,0xb,0xd8,0x52,0xd7, +0x9d,0xd6,0x8e,0xd5,0x6b,0xd4,0x77,0xd3,0x88,0xd2,0x88,0xd1, +0x99,0xd0,0xcd,0xcf,0x1d,0xcf,0x96,0xce,0x49,0xce,0x42,0xce, +0xa1,0xce,0x47,0xcf,0xe8,0xcf,0x90,0xd0,0x78,0xd1,0xbf,0xd2, +0x49,0xd4,0x85,0xd5,0x51,0xd6,0x49,0xd7,0xae,0xd8,0x32,0xda, +0xa4,0xdb,0x30,0xdd,0x27,0xdf,0x6d,0xe1,0x99,0xe3,0xc3,0xe5, +0x39,0xe8,0xca,0xea,0x23,0xed,0x39,0xef,0x8,0xf1,0x90,0xf2, +0xee,0xf3,0x20,0xf5,0x3c,0xf6,0x41,0xf7,0xb9,0xf7,0xfc,0xf7, +0xea,0xf8,0xf7,0xf9,0x8f,0xfa,0x30,0xfb,0xec,0xfb,0xbc,0xfc, +0xaa,0xfd,0x41,0xfe,0xcf,0xfe,0xd3,0xff,0xbf,0x0,0x60,0x1, +0x9,0x2,0xd0,0x2,0xe4,0x3,0x24,0x5,0x49,0x6,0x9c,0x7, +0x3f,0x9,0xd2,0xa,0x38,0xc,0xaf,0xd,0x6d,0xf,0x72,0x11, +0x4e,0x13,0x85,0x14,0x78,0x15,0xc0,0x16,0xda,0x17,0x4c,0x18, +0x79,0x18,0x8c,0x18,0x7a,0x18,0x3f,0x18,0xac,0x17,0xe7,0x16, +0x1f,0x16,0x42,0x15,0x5d,0x14,0x78,0x13,0x62,0x12,0x9,0x11, +0xb7,0xf,0xb0,0xe,0xa9,0xd,0x54,0xc,0xc3,0xa,0x27,0x9, +0xe4,0x7,0xe7,0x6,0xad,0x5,0x8e,0x4,0xdc,0x3,0x3b,0x3, +0xb5,0x2,0x52,0x2,0xb,0x2,0x26,0x2,0x3d,0x2,0xfa,0x1, +0xa3,0x1,0x24,0x1,0x7d,0x0,0xe9,0xff,0x58,0xff,0xca,0xfe, +0x27,0xfe,0x59,0xfd,0xb6,0xfc,0x48,0xfc,0xe5,0xfb,0xa9,0xfb, +0x8f,0xfb,0x52,0xfb,0xc2,0xfa,0x1f,0xfa,0xbb,0xf9,0x3f,0xf9, +0x62,0xf8,0x69,0xf7,0x8f,0xf6,0xd7,0xf5,0xe,0xf5,0x3,0xf4, +0xfe,0xf2,0x57,0xf2,0xf9,0xf1,0x89,0xf1,0xf1,0xf0,0x91,0xf0, +0xa3,0xf0,0xef,0xf0,0x25,0xf1,0x27,0xf1,0x3e,0xf1,0xbd,0xf1, +0x79,0xf2,0x34,0xf3,0x2,0xf4,0xc,0xf5,0x47,0xf6,0x85,0xf7, +0xd4,0xf8,0x84,0xfa,0xbd,0xfc,0x3f,0xff,0x7f,0x1,0x5a,0x3, +0x3a,0x5,0x6d,0x7,0xbb,0x9,0x83,0xb,0xae,0xc,0xd5,0xd, +0xe5,0xe,0x73,0xf,0xa6,0xf,0xba,0xf,0x15,0x10,0xac,0x10, +0xaf,0x10,0x3c,0x10,0xf9,0xf,0xee,0xf,0x28,0x10,0x67,0x10, +0x5e,0x10,0x5c,0x10,0x30,0x10,0xb6,0xf,0x95,0xf,0xfa,0xf, +0x8a,0x10,0xd6,0x10,0x9c,0x10,0x96,0x10,0x41,0x11,0x13,0x12, +0xe7,0x12,0xe2,0x13,0xcd,0x14,0x99,0x15,0x4f,0x16,0x7,0x17, +0xe0,0x17,0x96,0x18,0xe9,0x18,0xf8,0x18,0xc6,0x18,0x3f,0x18, +0x84,0x17,0xf3,0x16,0xad,0x16,0x30,0x16,0x2d,0x15,0x23,0x14, +0x67,0x13,0xc5,0x12,0x2b,0x12,0x74,0x11,0x6c,0x10,0x28,0xf, +0xad,0xd,0x2,0xc,0x62,0xa,0xc3,0x8,0x0,0x7,0x21,0x5, +0x34,0x3,0x77,0x1,0x4,0x0,0xca,0xfe,0xf4,0xfd,0x49,0xfd, +0x69,0xfc,0xa9,0xfb,0x1e,0xfb,0x99,0xfa,0x57,0xfa,0x2a,0xfa, +0xac,0xf9,0x22,0xf9,0xd4,0xf8,0xc7,0xf8,0xf6,0xf8,0x35,0xf9, +0x77,0xf9,0xf2,0xf9,0xd3,0xfa,0xe6,0xfb,0xba,0xfc,0x68,0xfd, +0x5d,0xfe,0x63,0xff,0x5,0x0,0x2f,0x0,0xf0,0xff,0x9c,0xff, +0x80,0xff,0x28,0xff,0x39,0xfe,0x2f,0xfd,0x6e,0xfc,0xe9,0xfb, +0x9b,0xfb,0x73,0xfb,0x6c,0xfb,0x9c,0xfb,0xe8,0xfb,0x33,0xfc, +0x84,0xfc,0xef,0xfc,0x8a,0xfd,0x2,0xfe,0x18,0xfe,0x4f,0xfe, +0xdd,0xfe,0x7a,0xff,0x44,0x0,0x40,0x1,0x4b,0x2,0xad,0x3, +0x4e,0x5,0xca,0x6,0x74,0x8,0x75,0xa,0x38,0xc,0x88,0xd, +0xa4,0xe,0x6b,0xf,0xe5,0xf,0x76,0x10,0xf2,0x10,0xf2,0x10, +0xaf,0x10,0x7f,0x10,0x76,0x10,0x82,0x10,0x77,0x10,0x66,0x10, +0x8b,0x10,0xc4,0x10,0xaf,0x10,0x3e,0x10,0xcc,0xf,0x7f,0xf, +0xe4,0xe,0xae,0xd,0x3c,0xc,0xf8,0xa,0xe3,0x9,0xec,0x8, +0xf5,0x7,0xe5,0x6,0x1c,0x6,0xe8,0x5,0xe7,0x5,0xe9,0x5, +0xd,0x6,0xb,0x6,0xf3,0x5,0x1f,0x6,0x29,0x6,0xc0,0x5, +0x47,0x5,0xe0,0x4,0x68,0x4,0xd8,0x3,0x53,0x3,0x2e,0x3, +0x97,0x3,0x38,0x4,0x9f,0x4,0xe9,0x4,0x7f,0x5,0x34,0x6, +0x94,0x6,0xc5,0x6,0xfe,0x6,0xe0,0x6,0x2b,0x6,0x3b,0x5, +0x65,0x4,0x97,0x3,0xb5,0x2,0x81,0x1,0x16,0x0,0x2b,0xff, +0xbc,0xfe,0x23,0xfe,0x93,0xfd,0x56,0xfd,0x25,0xfd,0xd5,0xfc, +0x4c,0xfc,0xb6,0xfb,0x68,0xfb,0x2a,0xfb,0xd4,0xfa,0x8c,0xfa, +0x3d,0xfa,0x15,0xfa,0x38,0xfa,0x8d,0xfa,0x6f,0xfb,0x9e,0xfc, +0x67,0xfd,0x5b,0xfe,0xf4,0xff,0x78,0x1,0xac,0x2,0xc2,0x3, +0xb2,0x4,0xa6,0x5,0x50,0x6,0x50,0x6,0x54,0x6,0xac,0x6, +0xcf,0x6,0xb6,0x6,0xa3,0x6,0x9c,0x6,0xa1,0x6,0x9a,0x6, +0xcb,0x6,0x4f,0x7,0x5b,0x7,0xae,0x6,0x5,0x6,0xb9,0x5, +0x83,0x5,0xe6,0x4,0xd8,0x3,0xf4,0x2,0x53,0x2,0x86,0x1, +0xa5,0x0,0x1b,0x0,0x0,0x0,0x9,0x0,0xfc,0xff,0xf4,0xff, +0x5,0x0,0x2c,0x0,0x78,0x0,0xe6,0x0,0x6c,0x1,0xbe,0x1, +0x7c,0x1,0x39,0x1,0xb9,0x1,0x9f,0x2,0x19,0x3,0xfb,0x2, +0xdd,0x2,0x59,0x3,0x36,0x4,0xce,0x4,0xfd,0x4,0x23,0x5, +0x90,0x5,0x15,0x6,0x51,0x6,0x2b,0x6,0xb5,0x5,0x29,0x5, +0xac,0x4,0xf0,0x3,0xc0,0x2,0x8b,0x1,0xc6,0x0,0x44,0x0, +0x90,0xff,0xb5,0xfe,0x7,0xfe,0x83,0xfd,0x22,0xfd,0x20,0xfd, +0x48,0xfd,0x10,0xfd,0x8d,0xfc,0x3e,0xfc,0x70,0xfc,0x17,0xfd, +0x9d,0xfd,0xcd,0xfd,0x3b,0xfe,0x12,0xff,0x36,0x0,0xa5,0x1, +0xf4,0x2,0x9,0x4,0x40,0x5,0x91,0x6,0x6,0x8,0x76,0x9, +0x8b,0xa,0xba,0xb,0x3c,0xd,0x88,0xe,0x8a,0xf,0x52,0x10, +0xf3,0x10,0xc7,0x11,0xa4,0x12,0x1e,0x13,0xb,0x13,0x6c,0x12, +0xbe,0x11,0x4b,0x11,0x7a,0x10,0xe0,0xe,0xe5,0xc,0x22,0xb, +0xa9,0x9,0xf1,0x7,0xae,0x5,0x4d,0x3,0x53,0x1,0x8a,0xff, +0x6f,0xfd,0x3b,0xfb,0x73,0xf9,0xe6,0xf7,0x23,0xf6,0x4e,0xf4, +0xef,0xf2,0xa,0xf2,0x2d,0xf1,0x5c,0xf0,0xc5,0xef,0x65,0xef, +0x44,0xef,0x24,0xef,0xec,0xee,0xf1,0xee,0x3,0xef,0xd0,0xee, +0x63,0xee,0xbb,0xed,0xd,0xed,0x7d,0xec,0xc6,0xeb,0xd5,0xea, +0xa9,0xe9,0x58,0xe8,0x26,0xe7,0xf2,0xe5,0x9c,0xe4,0x4a,0xe3, +0xd8,0xe1,0x34,0xe0,0x94,0xde,0xfb,0xdc,0x3a,0xdb,0x6d,0xd9, +0xe5,0xd7,0x76,0xd6,0xcd,0xd4,0x2d,0xd3,0xef,0xd1,0x49,0xd1, +0x26,0xd1,0xef,0xd0,0xbc,0xd0,0x37,0xd1,0x30,0xd2,0x28,0xd3, +0x11,0xd4,0x2a,0xd5,0xa0,0xd6,0xf8,0xd7,0xc7,0xd8,0x8c,0xd9, +0xb4,0xda,0xfa,0xdb,0xf4,0xdc,0xb6,0xdd,0xd4,0xde,0x67,0xe0, +0xd4,0xe1,0xf1,0xe2,0x5b,0xe4,0x68,0xe6,0x68,0xe8,0xcd,0xe9, +0x5,0xeb,0x75,0xec,0x1,0xee,0x4a,0xef,0xfc,0xef,0x87,0xf0, +0x5f,0xf1,0x22,0xf2,0xb5,0xf2,0x5d,0xf3,0x30,0xf4,0x29,0xf5, +0x2,0xf6,0xa0,0xf6,0x69,0xf7,0x89,0xf8,0xad,0xf9,0x69,0xfa, +0xce,0xfa,0x6b,0xfb,0x61,0xfc,0x4f,0xfd,0xf9,0xfd,0x8f,0xfe, +0x7c,0xff,0xc0,0x0,0x12,0x2,0x63,0x3,0xbb,0x4,0x71,0x6, +0x86,0x8,0x41,0xa,0xa1,0xb,0xb,0xd,0x59,0xe,0xb0,0xf, +0x0,0x11,0xe4,0x11,0x9d,0x12,0x46,0x13,0xae,0x13,0x0,0x14, +0x2b,0x14,0x28,0x14,0x1f,0x14,0xd5,0x13,0x5f,0x13,0x1,0x13, +0x86,0x12,0xe0,0x11,0x24,0x11,0xc,0x10,0xa0,0xe,0x4a,0xd, +0x6,0xc,0x9f,0xa,0x12,0x9,0x5d,0x7,0xcd,0x5,0xcc,0x4, +0xb,0x4,0x24,0x3,0x5e,0x2,0xf9,0x1,0xe6,0x1,0xe5,0x1, +0xc9,0x1,0xe7,0x1,0x45,0x2,0x50,0x2,0x7,0x2,0xdb,0x1, +0xe0,0x1,0xdd,0x1,0x8a,0x1,0x1d,0x1,0x3,0x1,0x7,0x1, +0xcf,0x0,0x74,0x0,0x4f,0x0,0x62,0x0,0x41,0x0,0xe5,0xff, +0x65,0xff,0x97,0xfe,0xc3,0xfd,0x1f,0xfd,0x41,0xfc,0xf4,0xfa, +0x5d,0xf9,0xfb,0xf7,0x31,0xf7,0x46,0xf6,0xd6,0xf4,0xcd,0xf3, +0x7b,0xf3,0x34,0xf3,0x96,0xf2,0x0,0xf2,0x1f,0xf2,0xa4,0xf2, +0x9b,0xf2,0x42,0xf2,0x6e,0xf2,0xa,0xf3,0xa2,0xf3,0x18,0xf4, +0xa3,0xf4,0x90,0xf5,0xe9,0xf6,0x73,0xf8,0xc,0xfa,0xce,0xfb, +0xe6,0xfd,0x55,0x0,0xd9,0x2,0x13,0x5,0xa,0x7,0x1f,0x9, +0x31,0xb,0xbd,0xc,0xcd,0xd,0xc3,0xe,0xaf,0xf,0x58,0x10, +0x8c,0x10,0x79,0x10,0x7c,0x10,0x9a,0x10,0x86,0x10,0x1c,0x10, +0x92,0xf,0x47,0xf,0x31,0xf,0xcc,0xe,0x11,0xe,0x8d,0xd, +0x4f,0xd,0xe0,0xc,0x37,0xc,0xc9,0xb,0xd6,0xb,0x8,0xc, +0xd,0xc,0x3b,0xc,0xfb,0xc,0xfa,0xd,0xc7,0xe,0xa7,0xf, +0xf7,0x10,0x7b,0x12,0xca,0x13,0xeb,0x14,0x20,0x16,0x47,0x17, +0x1c,0x18,0xaf,0x18,0x1a,0x19,0x51,0x19,0x4e,0x19,0x9,0x19, +0x91,0x18,0x22,0x18,0xb2,0x17,0xe,0x17,0x3a,0x16,0x48,0x15, +0x44,0x14,0x3d,0x13,0xb,0x12,0xa2,0x10,0x2a,0xf,0x88,0xd, +0x98,0xb,0x8b,0x9,0x95,0x7,0xa8,0x5,0x87,0x3,0x53,0x1, +0xac,0xff,0x7e,0xfe,0xa,0xfd,0x53,0xfb,0xfd,0xf9,0x47,0xf9, +0xe3,0xf8,0x3a,0xf8,0x4b,0xf7,0xc0,0xf6,0xa7,0xf6,0x7a,0xf6, +0x3a,0xf6,0x55,0xf6,0xdb,0xf6,0x65,0xf7,0xd2,0xf7,0xa2,0xf8, +0xdf,0xf9,0xfb,0xfa,0xdd,0xfb,0xc3,0xfc,0xeb,0xfd,0x3a,0xff, +0xfc,0xff,0x1f,0x0,0x74,0x0,0x29,0x1,0xc2,0x1,0xe2,0x1, +0x75,0x1,0x2,0x1,0xe4,0x0,0xc0,0x0,0x5e,0x0,0xc1,0xff, +0xb,0xff,0x86,0xfe,0x2,0xfe,0x41,0xfd,0x9c,0xfc,0x46,0xfc, +0x26,0xfc,0x1f,0xfc,0x0,0xfc,0xf8,0xfb,0x51,0xfc,0xcf,0xfc, +0x32,0xfd,0xb2,0xfd,0x88,0xfe,0x86,0xff,0x68,0x0,0x4e,0x1, +0x85,0x2,0xb,0x4,0x90,0x5,0xd9,0x6,0x21,0x8,0xbb,0x9, +0x81,0xb,0x22,0xd,0x86,0xe,0xbb,0xf,0xed,0x10,0x27,0x12, +0x35,0x13,0xdc,0x13,0x37,0x14,0xaf,0x14,0x58,0x15,0xb1,0x15, +0x83,0x15,0x34,0x15,0x2a,0x15,0x32,0x15,0xc0,0x14,0xe0,0x13, +0x16,0x13,0x3b,0x12,0xf4,0x10,0x8c,0xf,0x59,0xe,0x3e,0xd, +0xf8,0xb,0x7b,0xa,0x7,0x9,0xda,0x7,0xd9,0x6,0xea,0x5, +0x8,0x5,0x41,0x4,0xd8,0x3,0xba,0x3,0x6e,0x3,0xb,0x3, +0x24,0x3,0xbf,0x3,0x54,0x4,0x75,0x4,0x6d,0x4,0x7,0x5, +0x2c,0x6,0xe6,0x6,0x1f,0x7,0x9c,0x7,0x7b,0x8,0x1d,0x9, +0x45,0x9,0x80,0x9,0x24,0xa,0xa5,0xa,0x83,0xa,0xe,0xa, +0xa7,0x9,0x47,0x9,0xb9,0x8,0xc0,0x7,0x3c,0x6,0x69,0x4, +0xae,0x2,0x26,0x1,0x9a,0xff,0xe5,0xfd,0x29,0xfc,0xa2,0xfa, +0x89,0xf9,0xcc,0xf8,0x21,0xf8,0x90,0xf7,0x50,0xf7,0x4c,0xf7, +0x79,0xf7,0xd6,0xf7,0x33,0xf8,0xac,0xf8,0x7f,0xf9,0x7c,0xfa, +0x69,0xfb,0x4f,0xfc,0x45,0xfd,0x64,0xfe,0x9a,0xff,0xe9,0x0, +0x62,0x2,0xac,0x3,0xab,0x4,0xd6,0x5,0x4e,0x7,0xbe,0x8, +0xae,0x9,0xd3,0x9,0xdd,0x9,0x77,0xa,0xe6,0xa,0x6e,0xa, +0x7b,0x9,0x9c,0x8,0xf0,0x7,0x36,0x7,0xf,0x6,0xb5,0x4, +0xba,0x3,0xfe,0x2,0xf3,0x1,0x8a,0x0,0x45,0xff,0x61,0xfe, +0x7a,0xfd,0x72,0xfc,0xa2,0xfb,0xe5,0xfa,0xfd,0xf9,0x52,0xf9, +0x18,0xf9,0x3f,0xf9,0xc8,0xf9,0x51,0xfa,0xce,0xfa,0xd5,0xfb, +0x43,0xfd,0xa1,0xfe,0x13,0x0,0x95,0x1,0x1,0x3,0x7a,0x4, +0x10,0x6,0x9b,0x7,0xc7,0x8,0x7a,0x9,0xf,0xa,0x8f,0xa, +0xb4,0xa,0x7b,0xa,0xe4,0x9,0x20,0x9,0x8d,0x8,0xcf,0x7, +0x6a,0x6,0xc4,0x4,0x5b,0x3,0x43,0x2,0x48,0x1,0xcc,0xff, +0xa9,0xfd,0xc7,0xfb,0x9d,0xfa,0xa4,0xf9,0x89,0xf8,0x8c,0xf7, +0xe0,0xf6,0x78,0xf6,0x5f,0xf6,0xce,0xf6,0xb7,0xf7,0xda,0xf8, +0x39,0xfa,0xcb,0xfb,0x76,0xfd,0x3f,0xff,0xf9,0x0,0x8d,0x2, +0x3a,0x4,0xf0,0x5,0x5b,0x7,0x7f,0x8,0x90,0x9,0xb1,0xa, +0x4,0xc,0x83,0xd,0xc9,0xe,0x9f,0xf,0x6a,0x10,0x64,0x11, +0x36,0x12,0x9e,0x12,0xa5,0x12,0x76,0x12,0x24,0x12,0x74,0x11, +0x71,0x10,0x65,0xf,0x40,0xe,0xd7,0xc,0x31,0xb,0x8b,0x9, +0x1f,0x8,0xa6,0x6,0xff,0x4,0x95,0x3,0x5e,0x2,0xf2,0x0, +0x41,0xff,0x6f,0xfd,0xcf,0xfb,0x70,0xfa,0xd8,0xf8,0xda,0xf6, +0xe2,0xf4,0x38,0xf3,0xc0,0xf1,0x55,0xf0,0x14,0xef,0x40,0xee, +0xea,0xed,0xca,0xed,0x88,0xed,0x4f,0xed,0x82,0xed,0xff,0xed, +0x44,0xee,0x3,0xee,0x74,0xed,0xf3,0xec,0x44,0xec,0x2b,0xeb, +0xf1,0xe9,0xb5,0xe8,0x62,0xe7,0xf3,0xe5,0x75,0xe4,0x30,0xe3, +0x1c,0xe2,0xd4,0xe0,0x6b,0xdf,0x1e,0xde,0xd8,0xdc,0x77,0xdb, +0xd5,0xd9,0x20,0xd8,0x94,0xd6,0xf5,0xd4,0x45,0xd3,0xd9,0xd1, +0xae,0xd0,0xc4,0xcf,0x2f,0xcf,0xf4,0xce,0x41,0xcf,0xec,0xcf, +0x9a,0xd0,0x88,0xd1,0xf4,0xd2,0xa5,0xd4,0x44,0xd6,0x90,0xd7, +0xdc,0xd8,0xa3,0xda,0x83,0xdc,0xf9,0xdd,0x3a,0xdf,0x9e,0xe0, +0x61,0xe2,0x5e,0xe4,0xfe,0xe5,0x62,0xe7,0x2c,0xe9,0x44,0xeb, +0x36,0xed,0xd7,0xee,0x3d,0xf0,0xa5,0xf1,0xee,0xf2,0xd0,0xf3, +0x75,0xf4,0xfa,0xf4,0x4c,0xf5,0x6b,0xf5,0x54,0xf5,0x31,0xf5, +0x4b,0xf5,0x9c,0xf5,0xfc,0xf5,0x4d,0xf6,0xb4,0xf6,0x9a,0xf7, +0xee,0xf8,0x2b,0xfa,0x8,0xfb,0xe8,0xfb,0x5c,0xfd,0xd,0xff, +0x39,0x0,0x1e,0x1,0x57,0x2,0xf2,0x3,0x99,0x5,0xf6,0x6, +0x4a,0x8,0x17,0xa,0x25,0xc,0xff,0xd,0x82,0xf,0xbd,0x10, +0x2,0x12,0x71,0x13,0xb6,0x14,0xa2,0x15,0x44,0x16,0xa2,0x16, +0xab,0x16,0x2b,0x16,0x44,0x15,0x76,0x14,0xc8,0x13,0xa3,0x12, +0x1,0x11,0x99,0xf,0xa8,0xe,0xb4,0xd,0x7e,0xc,0x40,0xb, +0x4e,0xa,0x91,0x9,0x84,0x8,0x20,0x7,0xe7,0x5,0xee,0x4, +0xe9,0x3,0xb3,0x2,0x8f,0x1,0xd0,0x0,0x46,0x0,0xd4,0xff, +0xbe,0xff,0xe9,0xff,0x1a,0x0,0x79,0x0,0x20,0x1,0xdd,0x1, +0x6c,0x2,0xcf,0x2,0x41,0x3,0xa5,0x3,0xa9,0x3,0x4d,0x3, +0xda,0x2,0x9a,0x2,0x5d,0x2,0xb2,0x1,0xe6,0x0,0x77,0x0, +0x1e,0x0,0x82,0xff,0xb0,0xfe,0xd4,0xfd,0x29,0xfd,0x87,0xfc, +0x6c,0xfb,0xf2,0xf9,0x88,0xf8,0x21,0xf7,0x98,0xf5,0x3,0xf4, +0x91,0xf2,0x72,0xf1,0x78,0xf0,0x54,0xef,0x63,0xee,0x24,0xee, +0x7d,0xee,0x1d,0xef,0xbd,0xef,0x86,0xf0,0xd6,0xf1,0x4f,0xf3, +0x7b,0xf4,0xcc,0xf5,0x97,0xf7,0x79,0xf9,0x12,0xfb,0x4e,0xfc, +0x97,0xfd,0x85,0xff,0xc7,0x1,0x8a,0x3,0xed,0x4,0x97,0x6, +0x69,0x8,0xf0,0x9,0x2f,0xb,0x67,0xc,0xa1,0xd,0x61,0xe, +0x4f,0xe,0x3,0xe,0x15,0xe,0x2e,0xe,0xc0,0xd,0xb0,0xc, +0x7d,0xb,0xab,0xa,0xed,0x9,0xf5,0x8,0x29,0x8,0xb6,0x7, +0x65,0x7,0x10,0x7,0xbf,0x6,0xdc,0x6,0x94,0x7,0x6c,0x8, +0x26,0x9,0xeb,0x9,0xbb,0xa,0x90,0xb,0x91,0xc,0xd9,0xd, +0x38,0xf,0x5d,0x10,0x49,0x11,0x3a,0x12,0x66,0x13,0xd3,0x14, +0x1b,0x16,0xe0,0x16,0x5f,0x17,0xe9,0x17,0x4b,0x18,0x58,0x18, +0x1f,0x18,0x83,0x17,0x75,0x16,0x1f,0x15,0x90,0x13,0xef,0x11, +0x64,0x10,0xb8,0xe,0xc0,0xc,0xb2,0xa,0xd9,0x8,0x31,0x7, +0x76,0x5,0xca,0x3,0x7b,0x2,0x3c,0x1,0xc8,0xff,0x4a,0xfe, +0xde,0xfc,0xc3,0xfb,0xf5,0xfa,0xec,0xf9,0xd1,0xf8,0x26,0xf8, +0xbd,0xf7,0x54,0xf7,0xfb,0xf6,0xf6,0xf6,0x6e,0xf7,0xfd,0xf7, +0x6d,0xf8,0x1a,0xf9,0x25,0xfa,0x57,0xfb,0x63,0xfc,0x31,0xfd, +0x24,0xfe,0x39,0xff,0xfb,0xff,0x96,0x0,0x49,0x1,0xbb,0x1, +0xe5,0x1,0x30,0x2,0x99,0x2,0xd8,0x2,0xe8,0x2,0xe3,0x2, +0xca,0x2,0xa4,0x2,0x65,0x2,0xf9,0x1,0x6f,0x1,0xd1,0x0, +0x1d,0x0,0x68,0xff,0xc7,0xfe,0x27,0xfe,0x7d,0xfd,0x11,0xfd, +0x12,0xfd,0x3b,0xfd,0x6e,0xfd,0xef,0xfd,0xd1,0xfe,0xd,0x0, +0x9f,0x1,0x57,0x3,0x14,0x5,0xd8,0x6,0xc1,0x8,0xd7,0xa, +0xca,0xc,0x79,0xe,0x2e,0x10,0xe3,0x11,0x57,0x13,0x87,0x14, +0x96,0x15,0xb4,0x16,0xb6,0x17,0x25,0x18,0x40,0x18,0x8f,0x18, +0xcb,0x18,0x8e,0x18,0x4,0x18,0x77,0x17,0x3,0x17,0x53,0x16, +0xfb,0x14,0x71,0x13,0x62,0x12,0x7d,0x11,0x4a,0x10,0xdb,0xe, +0x6c,0xd,0x4e,0xc,0x88,0xb,0xcd,0xa,0x2d,0xa,0xd0,0x9, +0x7f,0x9,0x22,0x9,0xdc,0x8,0xb1,0x8,0x97,0x8,0x8b,0x8, +0x83,0x8,0x62,0x8,0x17,0x8,0xb7,0x7,0x81,0x7,0xa1,0x7, +0xd4,0x7,0xc8,0x7,0xb6,0x7,0xba,0x7,0x8c,0x7,0x49,0x7, +0x56,0x7,0xc3,0x7,0xef,0x7,0x39,0x7,0x53,0x6,0x39,0x6, +0x54,0x6,0xb8,0x5,0x8a,0x4,0x65,0x3,0x89,0x2,0x95,0x1, +0x4c,0x0,0x2c,0xff,0x6c,0xfe,0xaf,0xfd,0xca,0xfc,0xea,0xfb, +0x32,0xfb,0x9a,0xfa,0x58,0xfa,0x7c,0xfa,0x43,0xfa,0x5e,0xf9, +0x9d,0xf8,0x78,0xf8,0xbe,0xf8,0x7,0xf9,0x14,0xf9,0x5b,0xf9, +0x22,0xfa,0x2,0xfb,0x21,0xfc,0xc7,0xfd,0x88,0xff,0x9,0x1, +0x4c,0x2,0x8c,0x3,0xe6,0x4,0xe6,0x5,0x50,0x6,0x81,0x6, +0x99,0x6,0x75,0x6,0xe,0x6,0x71,0x5,0xb,0x5,0xf,0x5, +0xd0,0x4,0xf4,0x3,0x6,0x3,0x5f,0x2,0xf2,0x1,0x8d,0x1, +0xd6,0x0,0xd0,0xff,0xcd,0xfe,0xd1,0xfd,0xf1,0xfc,0x61,0xfc, +0xea,0xfb,0x44,0xfb,0xa8,0xfa,0x91,0xfa,0xfd,0xfa,0x55,0xfb, +0x88,0xfb,0x21,0xfc,0x1d,0xfd,0x10,0xfe,0xbd,0xfe,0x1b,0xff, +0x91,0xff,0x57,0x0,0xdc,0x0,0xf3,0x0,0x15,0x1,0x35,0x1, +0x13,0x1,0xe6,0x0,0xd8,0x0,0xc2,0x0,0x81,0x0,0x14,0x0, +0xae,0xff,0x8b,0xff,0x7a,0xff,0x1f,0xff,0x8b,0xfe,0x29,0xfe, +0xd,0xfe,0xb7,0xfd,0xea,0xfc,0x12,0xfc,0x70,0xfb,0xfb,0xfa, +0xab,0xfa,0x51,0xfa,0xf4,0xf9,0xc5,0xf9,0xa9,0xf9,0xd7,0xf9, +0x86,0xfa,0x37,0xfb,0x81,0xfb,0xbb,0xfb,0x63,0xfc,0x33,0xfd, +0x67,0xfd,0x45,0xfd,0xa6,0xfd,0x7a,0xfe,0x61,0xff,0x8,0x0, +0x55,0x0,0x29,0x1,0xca,0x2,0x64,0x4,0xd1,0x5,0x1b,0x7, +0x16,0x8,0x39,0x9,0xa7,0xa,0xe1,0xb,0xc3,0xc,0x56,0xd, +0xbc,0xd,0x34,0xe,0xbf,0xe,0x55,0xf,0xdd,0xf,0x4f,0x10, +0xd,0x11,0x3,0x12,0x90,0x12,0xab,0x12,0xc2,0x12,0xe,0x13, +0x87,0x13,0xb5,0x13,0x30,0x13,0x61,0x12,0xca,0x11,0x28,0x11, +0x40,0x10,0x31,0xf,0xdb,0xd,0x54,0xc,0x6,0xb,0xdf,0x9, +0xa0,0x8,0x41,0x7,0xbf,0x5,0x3c,0x4,0xe0,0x2,0x9b,0x1, +0x20,0x0,0x3d,0xfe,0x5d,0xfc,0xdb,0xfa,0x44,0xf9,0x6a,0xf7, +0xb0,0xf5,0x39,0xf4,0x10,0xf3,0x19,0xf2,0xe9,0xf0,0x8e,0xef, +0x79,0xee,0x92,0xed,0x73,0xec,0x14,0xeb,0xa4,0xe9,0x39,0xe8, +0xc3,0xe6,0x28,0xe5,0x63,0xe3,0xaf,0xe1,0x3f,0xe0,0xed,0xde, +0x8f,0xdd,0x46,0xdc,0x29,0xdb,0x17,0xda,0xf9,0xd8,0xe0,0xd7, +0xe9,0xd6,0xe,0xd6,0x1f,0xd5,0x5,0xd4,0xd1,0xd2,0xac,0xd1, +0xeb,0xd0,0x85,0xd0,0xff,0xcf,0x6d,0xcf,0x44,0xcf,0x92,0xcf, +0x35,0xd0,0xca,0xd0,0x37,0xd1,0x34,0xd2,0xb7,0xd3,0xd8,0xd4, +0x9a,0xd5,0x77,0xd6,0xa6,0xd7,0x31,0xd9,0x85,0xda,0x50,0xdb, +0x3a,0xdc,0x86,0xdd,0xde,0xde,0x2d,0xe0,0x74,0xe1,0xd3,0xe2, +0x5c,0xe4,0xa3,0xe5,0x9f,0xe6,0xeb,0xe7,0x76,0xe9,0x9e,0xea, +0x69,0xeb,0x3e,0xec,0x52,0xed,0x98,0xee,0x87,0xef,0x10,0xf0, +0x7,0xf1,0x88,0xf2,0xe1,0xf3,0xe6,0xf4,0xeb,0xf5,0x7e,0xf7, +0x9c,0xf9,0x66,0xfb,0xba,0xfc,0x33,0xfe,0xd1,0xff,0x75,0x1, +0x1f,0x3,0xa9,0x4,0x23,0x6,0x90,0x7,0xdb,0x8,0x28,0xa, +0x94,0xb,0xe,0xd,0x7b,0xe,0xc3,0xf,0xcb,0x10,0x66,0x11, +0xcf,0x11,0x7f,0x12,0x50,0x13,0xdb,0x13,0xff,0x13,0xdb,0x13, +0xce,0x13,0xd4,0x13,0x86,0x13,0xf2,0x12,0x60,0x12,0xcf,0x11, +0x2f,0x11,0x64,0x10,0x83,0xf,0xdf,0xe,0x74,0xe,0xd4,0xd, +0xe5,0xc,0x2,0xc,0x55,0xb,0xa6,0xa,0xc3,0x9,0xb4,0x8, +0xda,0x7,0x3c,0x7,0x39,0x6,0xf3,0x4,0x22,0x4,0xcf,0x3, +0x9d,0x3,0x27,0x3,0x77,0x2,0x4e,0x2,0x96,0x2,0x97,0x2, +0x9a,0x2,0xdb,0x2,0xfa,0x2,0xe0,0x2,0x7e,0x2,0x1a,0x2, +0x19,0x2,0xe6,0x1,0x42,0x1,0xe3,0x0,0xd4,0x0,0xab,0x0, +0x65,0x0,0xd,0x0,0xd9,0xff,0xea,0xff,0xe6,0xff,0x9a,0xff, +0xfb,0xfe,0xeb,0xfd,0xc4,0xfc,0xdc,0xfb,0xe5,0xfa,0xae,0xf9, +0x5f,0xf8,0x1f,0xf7,0x37,0xf6,0xb9,0xf5,0x45,0xf5,0xe0,0xf4, +0xe4,0xf4,0x44,0xf5,0xcb,0xf5,0x5d,0xf6,0xe3,0xf6,0x87,0xf7, +0x72,0xf8,0x68,0xf9,0x47,0xfa,0x43,0xfb,0x65,0xfc,0x9c,0xfd, +0xff,0xfe,0xa8,0x0,0x8f,0x2,0x69,0x4,0x6,0x6,0xbb,0x7, +0xc7,0x9,0xc7,0xb,0x3f,0xd,0x1e,0xe,0xdd,0xe,0xec,0xf, +0xd2,0x10,0xda,0x10,0x43,0x10,0xde,0xf,0xec,0xf,0xd6,0xf, +0x2d,0xf,0x6a,0xe,0x2e,0xe,0x75,0xe,0x97,0xe,0x2e,0xe, +0xef,0xd,0x45,0xe,0x7d,0xe,0x61,0xe,0x5c,0xe,0x79,0xe, +0x76,0xe,0xf,0xe,0xaa,0xd,0x14,0xe,0xee,0xe,0x54,0xf, +0x62,0xf,0xde,0xf,0x1d,0x11,0x6d,0x12,0x27,0x13,0xa9,0x13, +0x49,0x14,0xe5,0x14,0x46,0x15,0x15,0x15,0x7d,0x14,0xf2,0x13, +0x69,0x13,0xbc,0x12,0xc3,0x11,0x82,0x10,0x7e,0xf,0xe3,0xe, +0x50,0xe,0x60,0xd,0x27,0xc,0x48,0xb,0x99,0xa,0x37,0x9, +0x82,0x7,0x28,0x6,0xbe,0x4,0xe2,0x2,0xa1,0x0,0x5f,0xfe, +0xc7,0xfc,0xac,0xfb,0x54,0xfa,0xd6,0xf8,0xc0,0xf7,0x49,0xf7, +0x22,0xf7,0xf3,0xf6,0xd2,0xf6,0xdc,0xf6,0x11,0xf7,0x63,0xf7, +0xa1,0xf7,0xde,0xf7,0x5d,0xf8,0xe2,0xf8,0x2f,0xf9,0xa0,0xf9, +0x70,0xfa,0x48,0xfb,0xee,0xfb,0x97,0xfc,0x7a,0xfd,0x88,0xfe, +0x72,0xff,0xf5,0xff,0x5a,0x0,0x8,0x1,0xab,0x1,0xb4,0x1, +0x40,0x1,0xb6,0x0,0x2a,0x0,0x83,0xff,0xbf,0xfe,0xde,0xfd, +0xf0,0xfc,0x35,0xfc,0xc4,0xfb,0x7e,0xfb,0x85,0xfb,0xf5,0xfb, +0x80,0xfc,0xfa,0xfc,0x99,0xfd,0x67,0xfe,0x41,0xff,0x23,0x0, +0x19,0x1,0x2f,0x2,0x42,0x3,0x2a,0x4,0x46,0x5,0xef,0x6, +0xc3,0x8,0x53,0xa,0xd0,0xb,0x9f,0xd,0xaf,0xf,0x76,0x11, +0xcc,0x12,0x28,0x14,0x92,0x15,0x8b,0x16,0xfc,0x16,0x3d,0x17, +0x78,0x17,0x71,0x17,0xf6,0x16,0x4f,0x16,0xc1,0x15,0x21,0x15, +0x6f,0x14,0xf4,0x13,0xa1,0x13,0x34,0x13,0xac,0x12,0x0,0x12, +0x27,0x11,0x68,0x10,0xda,0xf,0x28,0xf,0x12,0xe,0xa6,0xc, +0x35,0xb,0x1b,0xa,0x45,0x9,0x6d,0x8,0xa2,0x7,0xfa,0x6, +0x56,0x6,0xcf,0x5,0xce,0x5,0x5b,0x6,0xec,0x6,0x33,0x7, +0x66,0x7,0xb3,0x7,0x13,0x8,0x58,0x8,0x5b,0x8,0x9,0x8, +0x6e,0x7,0xe6,0x6,0x84,0x6,0xda,0x5,0xe5,0x4,0x7,0x4, +0x73,0x3,0x39,0x3,0xe3,0x2,0x6,0x2,0x48,0x1,0xff,0x0, +0xa4,0x0,0xd,0x0,0x39,0xff,0xfa,0xfd,0xa5,0xfc,0xa0,0xfb, +0xb7,0xfa,0xb4,0xf9,0xb4,0xf8,0xde,0xf7,0x44,0xf7,0xff,0xf6, +0x20,0xf7,0xa3,0xf7,0x4c,0xf8,0xb9,0xf8,0xf,0xf9,0xc3,0xf9, +0xa3,0xfa,0x36,0xfb,0x59,0xfb,0x5d,0xfb,0xd6,0xfb,0x77,0xfc, +0x7d,0xfc,0x4d,0xfc,0x88,0xfc,0x12,0xfd,0xdb,0xfd,0xc4,0xfe, +0x97,0xff,0x72,0x0,0x4e,0x1,0x27,0x2,0x27,0x3,0x11,0x4, +0x9d,0x4,0xe3,0x4,0xe,0x5,0x33,0x5,0x38,0x5,0x14,0x5, +0xd,0x5,0x3a,0x5,0x69,0x5,0x86,0x5,0xbd,0x5,0x2c,0x6, +0x9a,0x6,0x5,0x7,0xb9,0x7,0x54,0x8,0x57,0x8,0x15,0x8, +0xfb,0x7,0xfc,0x7,0xa9,0x7,0xa8,0x6,0x82,0x5,0xf6,0x4, +0xae,0x4,0x1a,0x4,0x62,0x3,0xe0,0x2,0xcb,0x2,0xd,0x3, +0x47,0x3,0x5b,0x3,0x83,0x3,0xe6,0x3,0x50,0x4,0x5c,0x4, +0xf7,0x3,0x68,0x3,0xf8,0x2,0xc0,0x2,0x85,0x2,0x2,0x2, +0x5d,0x1,0xf4,0x0,0xc,0x1,0x79,0x1,0xc2,0x1,0xcb,0x1, +0xc8,0x1,0xcf,0x1,0xe8,0x1,0xcb,0x1,0x34,0x1,0x59,0x0, +0x5d,0xff,0x41,0xfe,0x1e,0xfd,0xf4,0xfb,0xe6,0xfa,0x11,0xfa, +0x42,0xf9,0x7a,0xf8,0xd8,0xf7,0x84,0xf7,0xb9,0xf7,0x16,0xf8, +0x2f,0xf8,0x32,0xf8,0x38,0xf8,0x44,0xf8,0x77,0xf8,0xc6,0xf8, +0x39,0xf9,0xc8,0xf9,0x59,0xfa,0x1c,0xfb,0x9,0xfc,0x7,0xfd, +0x57,0xfe,0xdc,0xff,0x40,0x1,0x91,0x2,0xf3,0x3,0x7f,0x5, +0x2b,0x7,0xb6,0x8,0xf7,0x9,0xd2,0xa,0x36,0xb,0x7e,0xb, +0x0,0xc,0x6a,0xc,0x45,0xc,0x91,0xb,0x9c,0xa,0xab,0x9, +0xd3,0x8,0x2,0x8,0x1d,0x7,0x2b,0x6,0x52,0x5,0xa0,0x4, +0xe0,0x3,0xd6,0x2,0xa6,0x1,0xae,0x0,0xfa,0xff,0x17,0xff, +0xaf,0xfd,0x1e,0xfc,0xd9,0xfa,0xca,0xf9,0xb2,0xf8,0x82,0xf7, +0x6f,0xf6,0xaf,0xf5,0xb,0xf5,0x6a,0xf4,0xfd,0xf3,0x8d,0xf3, +0xe9,0xf2,0x36,0xf2,0x5e,0xf1,0x52,0xf0,0xb,0xef,0x63,0xed, +0x91,0xeb,0xd3,0xe9,0x15,0xe8,0x6b,0xe6,0xc7,0xe4,0xa,0xe3, +0x83,0xe1,0x59,0xe0,0x63,0xdf,0x85,0xde,0x8e,0xdd,0x83,0xdc, +0x95,0xdb,0x98,0xda,0x7e,0xd9,0x7d,0xd8,0x7a,0xd7,0x58,0xd6, +0x41,0xd5,0x38,0xd4,0x3d,0xd3,0x79,0xd2,0xf4,0xd1,0xb5,0xd1, +0xa7,0xd1,0x81,0xd1,0x65,0xd1,0xc1,0xd1,0x83,0xd2,0x29,0xd3, +0x7d,0xd3,0xda,0xd3,0x90,0xd4,0x49,0xd5,0xd0,0xd5,0x72,0xd6, +0x34,0xd7,0xfb,0xd7,0xe2,0xd8,0xe9,0xd9,0x27,0xdb,0xcd,0xdc, +0xb5,0xde,0x92,0xe0,0x4f,0xe2,0xc,0xe4,0xd9,0xe5,0x85,0xe7, +0xfb,0xe8,0x4a,0xea,0x5c,0xeb,0x3b,0xec,0xea,0xec,0x49,0xed, +0xc4,0xed,0xbe,0xee,0xad,0xef,0x4d,0xf0,0x2d,0xf1,0x79,0xf2, +0xfd,0xf3,0x9c,0xf5,0xc,0xf7,0x51,0xf8,0xba,0xf9,0xe,0xfb, +0x36,0xfc,0x85,0xfd,0xe8,0xfe,0x36,0x0,0x80,0x1,0xd1,0x2, +0x54,0x4,0xee,0x5,0x8d,0x7,0xaa,0x9,0x14,0xc,0xf7,0xd, +0x67,0xf,0xd7,0x10,0x60,0x12,0xf7,0x13,0x2a,0x15,0xc2,0x15, +0x2b,0x16,0x87,0x16,0x83,0x16,0x1b,0x16,0xab,0x15,0x67,0x15, +0xf,0x15,0x76,0x14,0xe8,0x13,0xab,0x13,0x9c,0x13,0x6e,0x13, +0xc,0x13,0xaa,0x12,0x7b,0x12,0x4b,0x12,0xab,0x11,0xc9,0x10, +0x40,0x10,0xeb,0xf,0x40,0xf,0x41,0xe,0x25,0xd,0x31,0xc, +0xa9,0xb,0x45,0xb,0xa5,0xa,0xf3,0x9,0x72,0x9,0xf2,0x8, +0x47,0x8,0xcf,0x7,0xb1,0x7,0x5f,0x7,0x93,0x6,0xa7,0x5, +0xea,0x4,0x76,0x4,0xfb,0x3,0x36,0x3,0x9c,0x2,0x65,0x2, +0x12,0x2,0x83,0x1,0x2c,0x1,0x34,0x1,0x34,0x1,0xc3,0x0, +0x1b,0x0,0xac,0xff,0x46,0xff,0x9a,0xfe,0xe6,0xfd,0x60,0xfd, +0xe0,0xfc,0x22,0xfc,0x22,0xfb,0x5d,0xfa,0x7,0xfa,0x92,0xf9, +0xc9,0xf8,0x22,0xf8,0xb6,0xf7,0x2b,0xf7,0x59,0xf6,0xb8,0xf5, +0xd6,0xf5,0x17,0xf6,0xb0,0xf5,0x31,0xf5,0x68,0xf5,0x3b,0xf6, +0x1b,0xf7,0x89,0xf7,0xd6,0xf7,0xb3,0xf8,0xf0,0xf9,0x20,0xfb, +0x3b,0xfc,0x2f,0xfd,0x32,0xfe,0x96,0xff,0x11,0x1,0x54,0x2, +0xa2,0x3,0x32,0x5,0xb2,0x6,0xbe,0x7,0x6d,0x8,0x1f,0x9, +0xde,0x9,0x61,0xa,0xab,0xa,0xfb,0xa,0x15,0xb,0xcd,0xa, +0xa4,0xa,0xf2,0xa,0x7d,0xb,0xd8,0xb,0xc1,0xb,0x9c,0xb, +0xe6,0xb,0x5f,0xc,0xa5,0xc,0xa9,0xc,0x98,0xc,0xbb,0xc, +0xf8,0xc,0x7,0xd,0x11,0xd,0x41,0xd,0xa3,0xd,0x2e,0xe, +0x97,0xe,0xd8,0xe,0x41,0xf,0xd8,0xf,0x7a,0x10,0x6,0x11, +0x44,0x11,0x1b,0x11,0xce,0x10,0xcc,0x10,0x12,0x11,0x19,0x11, +0x99,0x10,0xd8,0xf,0x38,0xf,0xdf,0xe,0xaa,0xe,0x5a,0xe, +0xc8,0xd,0x15,0xd,0x83,0xc,0x17,0xc,0x96,0xb,0xcf,0xa, +0xef,0x9,0x3b,0x9,0x85,0x8,0x75,0x7,0x1a,0x6,0xc0,0x4, +0xb4,0x3,0x2,0x3,0x52,0x2,0x55,0x1,0x1c,0x0,0xa,0xff, +0x96,0xfe,0xa4,0xfe,0x89,0xfe,0xfe,0xfd,0x65,0xfd,0x3c,0xfd, +0x69,0xfd,0x5b,0xfd,0xf2,0xfc,0xa1,0xfc,0xb1,0xfc,0xe5,0xfc, +0xd2,0xfc,0x87,0xfc,0x77,0xfc,0xb3,0xfc,0x1c,0xfd,0xbf,0xfd, +0x53,0xfe,0x97,0xfe,0xec,0xfe,0x90,0xff,0x4a,0x0,0xe4,0x0, +0x31,0x1,0x4b,0x1,0x93,0x1,0xef,0x1,0x2c,0x2,0x62,0x2, +0x6e,0x2,0x58,0x2,0x76,0x2,0xb9,0x2,0x3,0x3,0x45,0x3, +0x51,0x3,0x78,0x3,0xf8,0x3,0x6a,0x4,0xbc,0x4,0x34,0x5, +0xd1,0x5,0x75,0x6,0x9,0x7,0xa0,0x7,0x48,0x8,0xc9,0x8, +0x26,0x9,0xa9,0x9,0x75,0xa,0x4c,0xb,0xdd,0xb,0x74,0xc, +0x81,0xd,0xca,0xe,0xfa,0xf,0xa,0x11,0xe,0x12,0x2e,0x13, +0x39,0x14,0xfe,0x14,0xb9,0x15,0x48,0x16,0x60,0x16,0x49,0x16, +0x57,0x16,0x85,0x16,0x86,0x16,0x21,0x16,0xb4,0x15,0x92,0x15, +0x77,0x15,0x21,0x15,0xa3,0x14,0x2e,0x14,0xc3,0x13,0x23,0x13, +0x3a,0x12,0x46,0x11,0x67,0x10,0x81,0xf,0x8d,0xe,0xa3,0xd, +0xc9,0xc,0xf,0xc,0x81,0xb,0x0,0xb,0xaa,0xa,0xbe,0xa, +0xe8,0xa,0xbe,0xa,0x50,0xa,0xfe,0x9,0x27,0xa,0x7e,0xa, +0x32,0xa,0x32,0x9,0x36,0x8,0xab,0x7,0x3e,0x7,0x80,0x6, +0x99,0x5,0xdf,0x4,0x43,0x4,0xaf,0x3,0x20,0x3,0x99,0x2, +0x2c,0x2,0xc5,0x1,0x5e,0x1,0x0,0x1,0x5b,0x0,0x52,0xff, +0x61,0xfe,0xd9,0xfd,0x82,0xfd,0x5,0xfd,0x4c,0xfc,0xa1,0xfb, +0x71,0xfb,0xbb,0xfb,0x15,0xfc,0x5a,0xfc,0xad,0xfc,0xff,0xfc, +0x4b,0xfd,0xa9,0xfd,0x6,0xfe,0x45,0xfe,0x5b,0xfe,0x17,0xfe, +0x88,0xfd,0x18,0xfd,0xe9,0xfc,0xbe,0xfc,0x7e,0xfc,0x39,0xfc, +0xa,0xfc,0x21,0xfc,0x89,0xfc,0xfa,0xfc,0x49,0xfd,0xa9,0xfd, +0x3a,0xfe,0xbe,0xfe,0x9,0xff,0x45,0xff,0xa0,0xff,0xb,0x0, +0x6c,0x0,0xa1,0x0,0xbb,0x0,0xff,0x0,0x83,0x1,0x2e,0x2, +0xd0,0x2,0x21,0x3,0x3d,0x3,0x95,0x3,0x45,0x4,0xff,0x4, +0x5f,0x5,0x46,0x5,0xc,0x5,0xe8,0x4,0xa5,0x4,0x26,0x4, +0x95,0x3,0xb,0x3,0x9b,0x2,0x55,0x2,0x1,0x2,0x69,0x1, +0xf7,0x0,0x11,0x1,0x60,0x1,0x65,0x1,0x6,0x1,0xa7,0x0, +0xc0,0x0,0x1f,0x1,0x20,0x1,0x8d,0x0,0xd2,0xff,0x71,0xff, +0x6b,0xff,0x6c,0xff,0x31,0xff,0x9e,0xfe,0xf,0xfe,0xd8,0xfd, +0xb0,0xfd,0x7e,0xfd,0x8d,0xfd,0xb2,0xfd,0x84,0xfd,0x20,0xfd, +0xf,0xfd,0x55,0xfd,0x56,0xfd,0x18,0xfd,0xe,0xfd,0x2e,0xfd, +0x59,0xfd,0x67,0xfd,0x51,0xfd,0x8e,0xfd,0x1,0xfe,0x26,0xfe, +0x3b,0xfe,0x83,0xfe,0xb0,0xfe,0xa7,0xfe,0xba,0xfe,0xb,0xff, +0xc,0xff,0x85,0xfe,0x28,0xfe,0x32,0xfe,0x34,0xfe,0xfc,0xfd, +0x94,0xfd,0x35,0xfd,0x1e,0xfd,0x2e,0xfd,0x55,0xfd,0xc5,0xfd, +0x88,0xfe,0x54,0xff,0x2b,0x0,0x9c,0x1,0xbc,0x3,0xf0,0x5, +0xf5,0x7,0xd4,0x9,0xb4,0xb,0xd9,0xd,0xe0,0xf,0x5c,0x11, +0xa8,0x12,0xd5,0x13,0x68,0x14,0x5f,0x14,0x29,0x14,0xe5,0x13, +0x3a,0x13,0x2,0x12,0x88,0x10,0xe8,0xe,0x27,0xd,0x50,0xb, +0x36,0x9,0xf0,0x6,0xa6,0x4,0x3,0x2,0xc,0xff,0x2b,0xfc, +0x62,0xf9,0xc9,0xf6,0x92,0xf4,0x6a,0xf2,0x43,0xf0,0x97,0xee, +0x8d,0xed,0xf2,0xec,0x82,0xec,0x19,0xec,0xd5,0xeb,0x96,0xeb, +0x14,0xeb,0x78,0xea,0xf7,0xe9,0x63,0xe9,0x67,0xe8,0x1a,0xe7, +0x17,0xe6,0x70,0xe5,0x8c,0xe4,0x82,0xe3,0xd3,0xe2,0x5f,0xe2, +0xd5,0xe1,0x37,0xe1,0xb3,0xe0,0x34,0xe0,0x5a,0xdf,0x1c,0xde, +0xcb,0xdc,0x89,0xdb,0x3a,0xda,0xa6,0xd8,0x7,0xd7,0xd2,0xd5, +0xb9,0xd4,0x5e,0xd3,0x2d,0xd2,0x81,0xd1,0x21,0xd1,0xbf,0xd0, +0x3c,0xd0,0xc7,0xcf,0x93,0xcf,0x97,0xcf,0xa5,0xcf,0xad,0xcf, +0xdf,0xcf,0x3b,0xd0,0x94,0xd0,0x20,0xd1,0x17,0xd2,0x56,0xd3, +0xc8,0xd4,0x7a,0xd6,0x6d,0xd8,0xa8,0xda,0x25,0xdd,0xd4,0xdf, +0xb1,0xe2,0xbd,0xe5,0xcb,0xe8,0xa5,0xeb,0x4c,0xee,0xc9,0xf0, +0x17,0xf3,0x31,0xf5,0xd3,0xf6,0xe7,0xf7,0xd2,0xf8,0xbe,0xf9, +0x75,0xfa,0xcd,0xfa,0xf8,0xfa,0x5d,0xfb,0xdf,0xfb,0xd,0xfc, +0x1a,0xfc,0x5c,0xfc,0xb9,0xfc,0xf8,0xfc,0x19,0xfd,0x73,0xfd, +0x21,0xfe,0xce,0xfe,0x8b,0xff,0xa9,0x0,0x10,0x2,0x9b,0x3, +0x56,0x5,0x3c,0x7,0x41,0x9,0x65,0xb,0x86,0xd,0x84,0xf, +0x96,0x11,0xbb,0x13,0x99,0x15,0x51,0x17,0xdd,0x18,0xb1,0x19, +0x5,0x1a,0x4c,0x1a,0x53,0x1a,0x2b,0x1a,0xf1,0x19,0x59,0x19, +0x8f,0x18,0xc1,0x17,0xa6,0x16,0x67,0x15,0x5c,0x14,0x54,0x13, +0x2b,0x12,0xb,0x11,0xf7,0xf,0xdb,0xe,0xb9,0xd,0x7f,0xc, +0x39,0xb,0xfb,0x9,0x9a,0x8,0x23,0x7,0xc1,0x5,0x70,0x4, +0x63,0x3,0x9d,0x2,0xbd,0x1,0xe2,0x0,0x69,0x0,0x39,0x0, +0x8,0x0,0x99,0xff,0x9,0xff,0xc5,0xfe,0x8f,0xfe,0xf7,0xfd, +0x49,0xfd,0xd0,0xfc,0x74,0xfc,0x2d,0xfc,0xf8,0xfb,0xdf,0xfb, +0xef,0xfb,0x1,0xfc,0x2a,0xfc,0xae,0xfc,0x3c,0xfd,0x5d,0xfd, +0x42,0xfd,0x34,0xfd,0x28,0xfd,0x3,0xfd,0x8f,0xfc,0xb3,0xfb, +0xae,0xfa,0xba,0xf9,0xdb,0xf8,0xef,0xf7,0xc7,0xf6,0x75,0xf5, +0x5e,0xf4,0xac,0xf3,0xc,0xf3,0x40,0xf2,0x78,0xf1,0xfd,0xf0, +0xeb,0xf0,0x13,0xf1,0x31,0xf1,0x6b,0xf1,0xfe,0xf1,0xcf,0xf2, +0xdd,0xf3,0x38,0xf5,0xc8,0xf6,0x79,0xf8,0x2b,0xfa,0x9,0xfc, +0x83,0xfe,0x55,0x1,0xda,0x3,0x6,0x6,0x24,0x8,0x52,0xa, +0x46,0xc,0xbb,0xd,0xd5,0xe,0x96,0xf,0xe7,0xf,0xe1,0xf, +0x78,0xf,0xcc,0xe,0x2e,0xe,0x9c,0xd,0x3,0xd,0x43,0xc, +0x42,0xb,0x64,0xa,0xfc,0x9,0xda,0x9,0xb1,0x9,0x3b,0x9, +0x83,0x8,0xf6,0x7,0xc4,0x7,0xb6,0x7,0x9a,0x7,0x8c,0x7, +0xce,0x7,0x51,0x8,0xe1,0x8,0x91,0x9,0x95,0xa,0xea,0xb, +0x56,0xd,0xa0,0xe,0xb3,0xf,0x80,0x10,0xeb,0x10,0x22,0x11, +0x93,0x11,0x8,0x12,0xad,0x11,0x89,0x10,0xa2,0xf,0x87,0xf, +0xb7,0xf,0x55,0xf,0x42,0xe,0x4f,0xd,0xf4,0xc,0xd1,0xc, +0x6c,0xc,0xa1,0xb,0x9a,0xa,0x96,0x9,0x9e,0x8,0x8d,0x7, +0x2f,0x6,0x98,0x4,0x30,0x3,0x23,0x2,0x31,0x1,0xfc,0xff, +0x86,0xfe,0x64,0xfd,0xdd,0xfc,0x83,0xfc,0xfb,0xfb,0x33,0xfb, +0x58,0xfa,0xd8,0xf9,0xce,0xf9,0xd9,0xf9,0xa0,0xf9,0x33,0xf9, +0x3,0xf9,0x6d,0xf9,0x40,0xfa,0x5,0xfb,0xaf,0xfb,0x86,0xfc, +0x7a,0xfd,0x86,0xfe,0xe8,0xff,0x56,0x1,0x58,0x2,0xd,0x3, +0xd2,0x3,0xcd,0x4,0x95,0x5,0xaf,0x5,0x96,0x5,0xcf,0x5, +0x0,0x6,0xcf,0x5,0x4c,0x5,0xe7,0x4,0x18,0x5,0x61,0x5, +0x1b,0x5,0xb1,0x4,0x91,0x4,0x8d,0x4,0x95,0x4,0xa1,0x4, +0xab,0x4,0xc3,0x4,0xdf,0x4,0x1d,0x5,0xb2,0x5,0x86,0x6, +0x85,0x7,0xb9,0x8,0x15,0xa,0xa1,0xb,0x32,0xd,0x9c,0xe, +0x39,0x10,0x7,0x12,0x8c,0x13,0xc5,0x14,0xd0,0x15,0xaa,0x16, +0x8a,0x17,0x5f,0x18,0xe3,0x18,0x30,0x19,0x65,0x19,0x7b,0x19, +0x85,0x19,0x7d,0x19,0x33,0x19,0x7a,0x18,0x74,0x17,0x70,0x16, +0x6f,0x15,0x48,0x14,0xf9,0x12,0x8f,0x11,0x2e,0x10,0xf5,0xe, +0xd2,0xd,0xa8,0xc,0x94,0xb,0xd4,0xa,0x59,0xa,0xd8,0x9, +0x32,0x9,0x6f,0x8,0xd4,0x7,0x9f,0x7,0x6c,0x7,0xff,0x6, +0xb3,0x6,0x94,0x6,0x6e,0x6,0x43,0x6,0x2b,0x6,0x55,0x6, +0xa5,0x6,0xbf,0x6,0xaf,0x6,0xa9,0x6,0x9c,0x6,0x50,0x6, +0xb8,0x5,0x1e,0x5,0x99,0x4,0xec,0x3,0x15,0x3,0x46,0x2, +0xae,0x1,0x3a,0x1,0x9b,0x0,0xed,0xff,0x6d,0xff,0xe3,0xfe, +0x3d,0xfe,0xb0,0xfd,0x48,0xfd,0xdd,0xfc,0x29,0xfc,0x5a,0xfb, +0xe6,0xfa,0x8e,0xfa,0xe9,0xf9,0x50,0xf9,0x1d,0xf9,0x20,0xf9, +0xf9,0xf8,0xa3,0xf8,0xa7,0xf8,0x52,0xf9,0x1c,0xfa,0x8c,0xfa, +0xd4,0xfa,0x3e,0xfb,0xd6,0xfb,0x89,0xfc,0x28,0xfd,0x9a,0xfd, +0xf3,0xfd,0x4a,0xfe,0xb7,0xfe,0x2d,0xff,0x84,0xff,0xc1,0xff, +0x9,0x0,0x69,0x0,0xde,0x0,0x46,0x1,0x82,0x1,0x9f,0x1, +0xb4,0x1,0xb7,0x1,0x8f,0x1,0x43,0x1,0xe9,0x0,0x73,0x0, +0xe7,0xff,0x75,0xff,0x2b,0xff,0xea,0xfe,0x9a,0xfe,0x56,0xfe, +0x5d,0xfe,0xa2,0xfe,0xd5,0xfe,0xc1,0xfe,0x8d,0xfe,0x9d,0xfe, +0xe8,0xfe,0x18,0xff,0x14,0xff,0xda,0xfe,0xa5,0xfe,0xd6,0xfe, +0x2c,0xff,0x3f,0xff,0x3f,0xff,0x67,0xff,0xbe,0xff,0x17,0x0, +0x2b,0x0,0x13,0x0,0x3,0x0,0xf4,0xff,0xd4,0xff,0x82,0xff, +0x5,0xff,0x93,0xfe,0x46,0xfe,0x2d,0xfe,0x22,0xfe,0xd9,0xfd, +0x8d,0xfd,0xa5,0xfd,0x2,0xfe,0x52,0xfe,0x71,0xfe,0x71,0xfe, +0x7a,0xfe,0x95,0xfe,0xbe,0xfe,0xde,0xfe,0xc0,0xfe,0x82,0xfe, +0x73,0xfe,0x7a,0xfe,0x77,0xfe,0x8e,0xfe,0xb0,0xfe,0xc8,0xfe, +0xf5,0xfe,0x28,0xff,0x65,0xff,0xc4,0xff,0x12,0x0,0x52,0x0, +0xbc,0x0,0x1f,0x1,0x62,0x1,0xc7,0x1,0x5a,0x2,0xfa,0x2, +0x99,0x3,0x49,0x4,0x1a,0x5,0xdd,0x5,0x82,0x6,0x42,0x7, +0x3a,0x8,0x40,0x9,0x24,0xa,0xe0,0xa,0xbc,0xb,0xf6,0xc, +0x55,0xe,0x5a,0xf,0xa,0x10,0xd5,0x10,0xc8,0x11,0x9d,0x12, +0x1d,0x13,0x31,0x13,0x2b,0x13,0x33,0x13,0xec,0x12,0x43,0x12, +0x6c,0x11,0x70,0x10,0x58,0xf,0x1d,0xe,0xb1,0xc,0x1b,0xb, +0x63,0x9,0xcc,0x7,0x6f,0x6,0xe1,0x4,0xec,0x2,0xbf,0x0, +0xaa,0xfe,0xef,0xfc,0x52,0xfb,0x86,0xf9,0xbe,0xf7,0x2a,0xf6, +0xcb,0xf4,0x84,0xf3,0x2a,0xf2,0xf9,0xf0,0x27,0xf0,0x6c,0xef, +0x90,0xee,0x9d,0xed,0xa5,0xec,0xd5,0xeb,0x29,0xeb,0x66,0xea, +0x83,0xe9,0xa1,0xe8,0xca,0xe7,0xec,0xe6,0xf,0xe6,0x38,0xe5, +0x54,0xe4,0x52,0xe3,0x3e,0xe2,0x33,0xe1,0x3a,0xe0,0x28,0xdf, +0xe4,0xdd,0x94,0xdc,0x55,0xdb,0x17,0xda,0xc3,0xd8,0x52,0xd7, +0xec,0xd5,0xba,0xd4,0xb0,0xd3,0xd7,0xd2,0x40,0xd2,0xa8,0xd1, +0x1f,0xd1,0x28,0xd1,0xa2,0xd1,0x9,0xd2,0x74,0xd2,0x22,0xd3, +0x17,0xd4,0x49,0xd5,0x72,0xd6,0x78,0xd7,0xb0,0xd8,0x1f,0xda, +0x7e,0xdb,0xda,0xdc,0x6c,0xde,0x27,0xe0,0xd9,0xe1,0x8b,0xe3, +0x5c,0xe5,0x2a,0xe7,0xe1,0xe8,0x9a,0xea,0x49,0xec,0xca,0xed, +0x1b,0xef,0x4f,0xf0,0x4e,0xf1,0x21,0xf2,0xf,0xf3,0xf3,0xf3, +0x9a,0xf4,0x50,0xf5,0x17,0xf6,0xd5,0xf6,0xbc,0xf7,0x97,0xf8, +0x5a,0xf9,0x81,0xfa,0xdf,0xfb,0xf4,0xfc,0xd6,0xfd,0xc8,0xfe, +0xf3,0xff,0x53,0x1,0xb4,0x2,0xf,0x4,0x76,0x5,0xfc,0x6, +0xb0,0x8,0x63,0xa,0x4,0xc,0xc6,0xd,0x9f,0xf,0x50,0x11, +0xd8,0x12,0x48,0x14,0x81,0x15,0x79,0x16,0x4a,0x17,0xe6,0x17, +0x48,0x18,0x93,0x18,0xa6,0x18,0x68,0x18,0x13,0x18,0x9e,0x17, +0xd1,0x16,0xbb,0x15,0x81,0x14,0x58,0x13,0x7f,0x12,0xc9,0x11, +0xd8,0x10,0xac,0xf,0x8d,0xe,0x98,0xd,0xb0,0xc,0xa2,0xb, +0x77,0xa,0x79,0x9,0xa8,0x8,0xd1,0x7,0xe8,0x6,0xf6,0x5, +0x32,0x5,0xdc,0x4,0xa5,0x4,0x38,0x4,0xd6,0x3,0x9f,0x3, +0x6b,0x3,0x30,0x3,0xec,0x2,0x90,0x2,0x25,0x2,0xa6,0x1, +0x11,0x1,0x96,0x0,0x35,0x0,0xb1,0xff,0x1d,0xff,0xbc,0xfe, +0x7d,0xfe,0x2b,0xfe,0xac,0xfd,0x15,0xfd,0xb8,0xfc,0x7c,0xfc, +0xfd,0xfb,0x4c,0xfb,0x95,0xfa,0xf6,0xf9,0x8d,0xf9,0x14,0xf9, +0x5e,0xf8,0xbb,0xf7,0x4a,0xf7,0x0,0xf7,0xdd,0xf6,0xaf,0xf6, +0x52,0xf6,0x8,0xf6,0x1b,0xf6,0x6f,0xf6,0xab,0xf6,0xb0,0xf6, +0x96,0xf6,0xb8,0xf6,0x55,0xf7,0x10,0xf8,0x99,0xf8,0x2e,0xf9, +0xf8,0xf9,0xf5,0xfa,0x14,0xfc,0x19,0xfd,0x16,0xfe,0x48,0xff, +0x92,0x0,0xd3,0x1,0x0,0x3,0x11,0x4,0x26,0x5,0x53,0x6, +0x78,0x7,0x8b,0x8,0x7b,0x9,0x20,0xa,0x89,0xa,0xe0,0xa, +0x35,0xb,0x90,0xb,0xac,0xb,0x5a,0xb,0x3a,0xb,0x96,0xb, +0xbb,0xb,0x7a,0xb,0x4d,0xb,0x65,0xb,0xb6,0xb,0xc5,0xb, +0x43,0xb,0xf1,0xa,0x2f,0xb,0x42,0xb,0xe3,0xa,0x7e,0xa, +0x69,0xa,0xb4,0xa,0xf,0xb,0x3a,0xb,0x73,0xb,0xd4,0xb, +0x23,0xc,0x4c,0xc,0x6d,0xc,0xb9,0xc,0xd,0xd,0xdc,0xc, +0x3b,0xc,0xf0,0xb,0xef,0xb,0xb3,0xb,0x3f,0xb,0xab,0xa, +0x35,0xa,0x16,0xa,0xb2,0x9,0xc5,0x8,0xfc,0x7,0x7c,0x7, +0xee,0x6,0x1e,0x6,0xef,0x4,0xc0,0x3,0xf7,0x2,0x53,0x2, +0x89,0x1,0x85,0x0,0x5e,0xff,0x5f,0xfe,0x96,0xfd,0xe7,0xfc, +0x6b,0xfc,0xdb,0xfb,0xfa,0xfa,0x4b,0xfa,0xc,0xfa,0xc5,0xf9, +0x6d,0xf9,0x38,0xf9,0x8,0xf9,0xfd,0xf8,0xc,0xf9,0xc8,0xf8, +0x7f,0xf8,0xa8,0xf8,0xf9,0xf8,0x40,0xf9,0x85,0xf9,0xae,0xf9, +0xf7,0xf9,0x97,0xfa,0x5f,0xfb,0x23,0xfc,0xd3,0xfc,0x69,0xfd, +0xef,0xfd,0x6a,0xfe,0xde,0xfe,0x38,0xff,0x72,0xff,0xb3,0xff, +0xc,0x0,0x5d,0x0,0x9b,0x0,0xf4,0x0,0x8c,0x1,0x3b,0x2, +0xca,0x2,0x2f,0x3,0x82,0x3,0x15,0x4,0xf7,0x4,0xc0,0x5, +0x4c,0x6,0xc7,0x6,0x54,0x7,0x1f,0x8,0x14,0x9,0xe9,0x9, +0xa3,0xa,0x7b,0xb,0x7c,0xc,0x7b,0xd,0x52,0xe,0xf,0xf, +0xd7,0xf,0xce,0x10,0xf3,0x11,0xfc,0x12,0xc1,0x13,0x75,0x14, +0x48,0x15,0x2e,0x16,0x3,0x17,0xaa,0x17,0xe,0x18,0x30,0x18, +0x3e,0x18,0x4c,0x18,0x57,0x18,0x4c,0x18,0xe6,0x17,0x2a,0x17, +0x88,0x16,0xf,0x16,0x77,0x15,0xb7,0x14,0xe7,0x13,0x11,0x13, +0x37,0x12,0x3c,0x11,0x11,0x10,0xf7,0xe,0x31,0xe,0x97,0xd, +0xbd,0xc,0x87,0xb,0x68,0xa,0xdb,0x9,0xb5,0x9,0x73,0x9, +0xfa,0x8,0x91,0x8,0x50,0x8,0xfc,0x7,0x71,0x7,0xb,0x7, +0xf8,0x6,0xd1,0x6,0x63,0x6,0xda,0x5,0x69,0x5,0x2c,0x5, +0xf1,0x4,0xa1,0x4,0x54,0x4,0xd9,0x3,0x28,0x3,0x98,0x2, +0x37,0x2,0xd4,0x1,0x33,0x1,0x3b,0x0,0x40,0xff,0x88,0xfe, +0xe0,0xfd,0x18,0xfd,0x42,0xfc,0x88,0xfb,0xcd,0xfa,0xee,0xf9, +0x33,0xf9,0xce,0xf8,0xa6,0xf8,0x98,0xf8,0x71,0xf8,0x2e,0xf8, +0x13,0xf8,0x35,0xf8,0x88,0xf8,0x8,0xf9,0x97,0xf9,0xd,0xfa, +0x5b,0xfa,0xad,0xfa,0x43,0xfb,0x15,0xfc,0xe2,0xfc,0x7e,0xfd, +0xfc,0xfd,0x89,0xfe,0x23,0xff,0xad,0xff,0x1f,0x0,0x9b,0x0, +0x26,0x1,0x6b,0x1,0x5b,0x1,0x6e,0x1,0xbb,0x1,0xeb,0x1, +0xe9,0x1,0xc2,0x1,0x9c,0x1,0xc5,0x1,0xa,0x2,0xf9,0x1, +0xb1,0x1,0x88,0x1,0x7c,0x1,0x72,0x1,0x6e,0x1,0x6e,0x1, +0x6a,0x1,0x65,0x1,0x6d,0x1,0x8a,0x1,0xbd,0x1,0x13,0x2, +0x6e,0x2,0xa2,0x2,0xcb,0x2,0xe3,0x2,0xe2,0x2,0x12,0x3, +0x54,0x3,0x43,0x3,0x15,0x3,0x2,0x3,0xfd,0x2,0x14,0x3, +0x11,0x3,0xd5,0x2,0x9c,0x2,0x5f,0x2,0xfa,0x1,0x75,0x1, +0xc8,0x0,0x19,0x0,0x72,0xff,0x9a,0xfe,0xa7,0xfd,0xd8,0xfc, +0x2d,0xfc,0xac,0xfb,0x63,0xfb,0x28,0xfb,0xde,0xfa,0xb2,0xfa, +0xc3,0xfa,0xf2,0xfa,0xf,0xfb,0xe6,0xfa,0x6e,0xfa,0xfa,0xf9, +0xaa,0xf9,0x65,0xf9,0x32,0xf9,0xfe,0xf8,0xbc,0xf8,0x88,0xf8, +0x6f,0xf8,0xa0,0xf8,0x22,0xf9,0xa4,0xf9,0x12,0xfa,0x5a,0xfa, +0x59,0xfa,0x54,0xfa,0x7b,0xfa,0xa0,0xfa,0xa3,0xfa,0x62,0xfa, +0x2,0xfa,0xfa,0xf9,0x53,0xfa,0xc3,0xfa,0x44,0xfb,0xea,0xfb, +0xb3,0xfc,0x80,0xfd,0x36,0xfe,0x1f,0xff,0x74,0x0,0xdc,0x1, +0xfc,0x2,0xe6,0x3,0xbe,0x4,0xb0,0x5,0xfb,0x6,0x78,0x8, +0xc9,0x9,0xeb,0xa,0x3,0xc,0x26,0xd,0x71,0xe,0xc4,0xf, +0xee,0x10,0x2,0x12,0xd6,0x12,0x1,0x13,0xcd,0x12,0xc0,0x12, +0x98,0x12,0xea,0x11,0xc2,0x10,0x5e,0xf,0xf,0xe,0xd8,0xc, +0x6c,0xb,0xeb,0x9,0x99,0x8,0x50,0x7,0xe9,0x5,0x5c,0x4, +0xba,0x2,0x3a,0x1,0xbd,0xff,0x7,0xfe,0x20,0xfc,0x7,0xfa, +0xe3,0xf7,0x3,0xf6,0x4f,0xf4,0xa8,0xf2,0x2b,0xf1,0xcb,0xef, +0x74,0xee,0x40,0xed,0x45,0xec,0x7e,0xeb,0xdd,0xea,0x18,0xea, +0xf2,0xe8,0xca,0xe7,0xea,0xe6,0xf8,0xe5,0xdb,0xe4,0xc2,0xe3, +0x8f,0xe2,0x59,0xe1,0x2d,0xe0,0xe6,0xde,0xd3,0xdd,0x9,0xdd, +0x23,0xdc,0x23,0xdb,0x13,0xda,0xf7,0xd8,0xa,0xd8,0x37,0xd7, +0x5c,0xd6,0x80,0xd5,0x83,0xd4,0x8a,0xd3,0xca,0xd2,0x7,0xd2, +0x48,0xd1,0xe8,0xd0,0xc6,0xd0,0x8e,0xd0,0x5a,0xd0,0x6e,0xd0, +0xdc,0xd0,0x95,0xd1,0x68,0xd2,0x39,0xd3,0x4f,0xd4,0xb5,0xd5, +0xb,0xd7,0x53,0xd8,0xe5,0xd9,0xbe,0xdb,0xa6,0xdd,0x79,0xdf, +0x25,0xe1,0xe2,0xe2,0x6,0xe5,0x6d,0xe7,0x9a,0xe9,0x78,0xeb, +0x59,0xed,0x60,0xef,0x54,0xf1,0xf5,0xf2,0x43,0xf4,0x77,0xf5, +0xa8,0xf6,0xb5,0xf7,0x82,0xf8,0x2e,0xf9,0xf9,0xf9,0xde,0xfa, +0xa1,0xfb,0x4d,0xfc,0x1e,0xfd,0x31,0xfe,0x5a,0xff,0x69,0x0, +0x7c,0x1,0xbf,0x2,0x27,0x4,0x83,0x5,0xb3,0x6,0x9,0x8, +0xa3,0x9,0xb,0xb,0x39,0xc,0x80,0xd,0xe4,0xe,0x66,0x10, +0xea,0x11,0x47,0x13,0x92,0x14,0xbd,0x15,0xdc,0x16,0x11,0x18, +0xec,0x18,0x1c,0x19,0xd8,0x18,0x69,0x18,0x10,0x18,0xc3,0x17, +0x37,0x17,0x77,0x16,0xc8,0x15,0x38,0x15,0xa2,0x14,0xe5,0x13, +0x7,0x13,0x21,0x12,0x5b,0x11,0xc5,0x10,0x18,0x10,0x25,0xf, +0xb,0xe,0xf2,0xc,0xee,0xb,0xe9,0xa,0xc4,0x9,0x7d,0x8, +0x30,0x7,0x1c,0x6,0x4c,0x5,0x80,0x4,0xa2,0x3,0xca,0x2, +0x13,0x2,0xa1,0x1,0x47,0x1,0xc2,0x0,0x22,0x0,0x83,0xff, +0xea,0xfe,0x5d,0xfe,0xe8,0xfd,0x7d,0xfd,0xfe,0xfc,0x79,0xfc, +0x21,0xfc,0x3,0xfc,0xf4,0xfb,0xc5,0xfb,0x89,0xfb,0x66,0xfb, +0x57,0xfb,0x48,0xfb,0x0,0xfb,0x5e,0xfa,0xa0,0xf9,0xc,0xf9, +0xb9,0xf8,0x67,0xf8,0xbb,0xf7,0xe6,0xf6,0x40,0xf6,0xc1,0xf5, +0x6e,0xf5,0x39,0xf5,0xf5,0xf4,0xaa,0xf4,0x71,0xf4,0x68,0xf4, +0x94,0xf4,0xb3,0xf4,0xc3,0xf4,0xfd,0xf4,0x8c,0xf5,0x65,0xf6, +0x15,0xf7,0x87,0xf7,0x40,0xf8,0x70,0xf9,0xea,0xfa,0x6a,0xfc, +0x8c,0xfd,0x6b,0xfe,0x92,0xff,0x1f,0x1,0xc9,0x2,0x44,0x4, +0x40,0x5,0xdd,0x5,0xd6,0x6,0x37,0x8,0x41,0x9,0xd8,0x9, +0x5d,0xa,0xdc,0xa,0x50,0xb,0x95,0xb,0x93,0xb,0x9b,0xb, +0xb2,0xb,0xa4,0xb,0x87,0xb,0x64,0xb,0x39,0xb,0x24,0xb, +0x2b,0xb,0x5f,0xb,0x8a,0xb,0x5a,0xb,0x28,0xb,0x67,0xb, +0xce,0xb,0xf0,0xb,0xda,0xb,0xca,0xb,0xec,0xb,0x3f,0xc, +0x7f,0xc,0xac,0xc,0x3,0xd,0x5d,0xd,0x9c,0xd,0xe8,0xd, +0x17,0xe,0x1d,0xe,0x31,0xe,0x28,0xe,0xd6,0xd,0x3e,0xd, +0x79,0xc,0xd6,0xb,0x4a,0xb,0x7e,0xa,0x88,0x9,0x8e,0x8, +0x90,0x7,0xa7,0x6,0xc9,0x5,0xfb,0x4,0x45,0x4,0x50,0x3, +0x1f,0x2,0x43,0x1,0xb0,0x0,0xd8,0xff,0xb4,0xfe,0x97,0xfd, +0xbf,0xfc,0x44,0xfc,0xce,0xfb,0x21,0xfb,0xc2,0xfa,0xef,0xfa, +0x39,0xfb,0x63,0xfb,0x7c,0xfb,0xb7,0xfb,0x41,0xfc,0xc4,0xfc, +0xe7,0xfc,0xdb,0xfc,0xe3,0xfc,0x6,0xfd,0x33,0xfd,0x5b,0xfd, +0x7a,0xfd,0x88,0xfd,0xa4,0xfd,0xf3,0xfd,0x7c,0xfe,0x24,0xff, +0xb5,0xff,0x1c,0x0,0x8e,0x0,0x27,0x1,0xb8,0x1,0xf,0x2, +0x3e,0x2,0x7c,0x2,0xb6,0x2,0xd1,0x2,0xe8,0x2,0xf,0x3, +0x5d,0x3,0xe2,0x3,0x81,0x4,0x1a,0x5,0xac,0x5,0x59,0x6, +0x3c,0x7,0x36,0x8,0x2b,0x9,0xff,0x9,0x99,0xa,0x42,0xb, +0x20,0xc,0xeb,0xc,0xa2,0xd,0x75,0xe,0x5e,0xf,0x6c,0x10, +0x82,0x11,0x6c,0x12,0x65,0x13,0xa9,0x14,0xfd,0x15,0x3a,0x17, +0x3e,0x18,0xd9,0x18,0x51,0x19,0xe6,0x19,0x40,0x1a,0x23,0x1a, +0xc6,0x19,0x4f,0x19,0xcb,0x18,0x40,0x18,0xb0,0x17,0x30,0x17, +0xbf,0x16,0x50,0x16,0xe5,0x15,0x6b,0x15,0xd9,0x14,0x30,0x14, +0x80,0x13,0xee,0x12,0x54,0x12,0x4b,0x11,0xf7,0xf,0xec,0xe, +0x5a,0xe,0x6,0xe,0xa1,0xd,0xf7,0xc,0x42,0xc,0xfd,0xb, +0x9,0xc,0xed,0xb,0xa9,0xb,0x4d,0xb,0xdf,0xa,0x99,0xa, +0x4d,0xa,0xaf,0x9,0xf2,0x8,0x4a,0x8,0xad,0x7,0x10,0x7, +0x51,0x6,0x68,0x5,0x98,0x4,0x21,0x4,0xdd,0x3,0x54,0x3, +0x5d,0x2,0x68,0x1,0xc1,0x0,0x4f,0x0,0xe8,0xff,0x3d,0xff, +0xd,0xfe,0xbe,0xfc,0xcd,0xfb,0x15,0xfb,0x65,0xfa,0xb8,0xf9, +0xec,0xf8,0x30,0xf8,0xe3,0xf7,0xe9,0xf7,0xfd,0xf7,0x1a,0xf8, +0x42,0xf8,0x8b,0xf8,0xff,0xf8,0x4a,0xf9,0x2c,0xf9,0x33,0xf9, +0xdf,0xf9,0xb0,0xfa,0x4,0xfb,0x9,0xfb,0x4b,0xfb,0x26,0xfc, +0x55,0xfd,0x30,0xfe,0x97,0xfe,0xf6,0xfe,0x85,0xff,0x36,0x0, +0xca,0x0,0xff,0x0,0xca,0x0,0x78,0x0,0x48,0x0,0x15,0x0, +0xb3,0xff,0x45,0xff,0xf6,0xfe,0xe5,0xfe,0x2,0xff,0x2,0xff, +0xd9,0xfe,0xd0,0xfe,0xd,0xff,0x6a,0xff,0xb0,0xff,0xb9,0xff, +0x8e,0xff,0x89,0xff,0x4,0x0,0xaf,0x0,0x12,0x1,0x43,0x1, +0x8f,0x1,0x22,0x2,0xed,0x2,0x9c,0x3,0xff,0x3,0x3c,0x4, +0x96,0x4,0x19,0x5,0x7c,0x5,0x9a,0x5,0x95,0x5,0x96,0x5, +0xb0,0x5,0xb5,0x5,0x76,0x5,0x1f,0x5,0xed,0x4,0xd5,0x4, +0xa3,0x4,0x46,0x4,0xe3,0x3,0x84,0x3,0x33,0x3,0xf7,0x2, +0xa2,0x2,0x43,0x2,0xa,0x2,0xc3,0x1,0x57,0x1,0xf3,0x0, +0x90,0x0,0x12,0x0,0x87,0xff,0x7,0xff,0x86,0xfe,0xf7,0xfd, +0x63,0xfd,0xce,0xfc,0x63,0xfc,0x4a,0xfc,0x37,0xfc,0x4,0xfc, +0x5,0xfc,0x55,0xfc,0xbf,0xfc,0x1c,0xfd,0x69,0xfd,0xc9,0xfd, +0x47,0xfe,0xb7,0xfe,0x5,0xff,0x54,0xff,0xc8,0xff,0x5d,0x0, +0xf4,0x0,0x6b,0x1,0xc8,0x1,0x4e,0x2,0xc,0x3,0xcc,0x3, +0x71,0x4,0xed,0x4,0x55,0x5,0xbd,0x5,0x5,0x6,0x52,0x6, +0xe1,0x6,0x88,0x7,0x1f,0x8,0x9b,0x8,0x19,0x9,0xe3,0x9, +0xd3,0xa,0x88,0xb,0x8,0xc,0x97,0xc,0x52,0xd,0x2,0xe, +0x6b,0xe,0x9b,0xe,0xa3,0xe,0x95,0xe,0x73,0xe,0xfa,0xd, +0x1e,0xd,0x19,0xc,0xf8,0xa,0xbb,0x9,0x61,0x8,0xcc,0x6, +0x3,0x5,0x61,0x3,0x15,0x2,0xaf,0x0,0xef,0xfe,0x31,0xfd, +0x9f,0xfb,0x36,0xfa,0xf8,0xf8,0x9a,0xf7,0x16,0xf6,0xca,0xf4, +0xd1,0xf3,0x13,0xf3,0x5c,0xf2,0x79,0xf1,0xa0,0xf0,0x22,0xf0, +0xe3,0xef,0x9f,0xef,0x38,0xef,0xad,0xee,0x10,0xee,0x68,0xed, +0x9f,0xec,0xb0,0xeb,0x7e,0xea,0xe9,0xe8,0x4d,0xe7,0xf6,0xe5, +0x74,0xe4,0x87,0xe2,0x82,0xe0,0xbd,0xde,0x68,0xdd,0x29,0xdc, +0x8b,0xda,0xd2,0xd8,0x7b,0xd7,0x91,0xd6,0xd8,0xd5,0x4,0xd5, +0x1b,0xd4,0x5c,0xd3,0x1,0xd3,0x2d,0xd3,0x83,0xd3,0x9b,0xd3, +0xb9,0xd3,0x4b,0xd4,0x50,0xd5,0x7c,0xd6,0x95,0xd7,0x9b,0xd8, +0xad,0xd9,0xf3,0xda,0x4f,0xdc,0x63,0xdd,0x3f,0xde,0x3b,0xdf, +0x77,0xe0,0xd7,0xe1,0x0,0xe3,0xd7,0xe3,0xc6,0xe4,0x15,0xe6, +0x99,0xe7,0xfb,0xe8,0x9,0xea,0xb,0xeb,0x43,0xec,0x88,0xed, +0xae,0xee,0xa6,0xef,0x7b,0xf0,0x63,0xf1,0x7a,0xf2,0x99,0xf3, +0x97,0xf4,0x6f,0xf5,0x49,0xf6,0x65,0xf7,0xd0,0xf8,0x23,0xfa, +0x26,0xfb,0x33,0xfc,0x7e,0xfd,0xe4,0xfe,0x45,0x0,0x81,0x1, +0x9a,0x2,0xcb,0x3,0x33,0x5,0xaf,0x6,0x14,0x8,0x74,0x9, +0xe0,0xa,0x5a,0xc,0xee,0xd,0x77,0xf,0xe4,0x10,0x52,0x12, +0xa7,0x13,0xe5,0x14,0x12,0x16,0xc5,0x16,0xda,0x16,0xaa,0x16, +0x8b,0x16,0xc0,0x16,0x2,0x17,0xba,0x16,0xf,0x16,0x74,0x15, +0xec,0x14,0x45,0x14,0x53,0x13,0x17,0x12,0xd2,0x10,0xb8,0xf, +0xa3,0xe,0x54,0xd,0xda,0xb,0x68,0xa,0x2e,0x9,0x35,0x8, +0x24,0x7,0xe5,0x5,0xe4,0x4,0x2f,0x4,0x81,0x3,0xd3,0x2, +0x3a,0x2,0xc9,0x1,0x80,0x1,0x4e,0x1,0x30,0x1,0x21,0x1, +0x11,0x1,0xfc,0x0,0xe9,0x0,0xde,0x0,0xc6,0x0,0x8f,0x0, +0x3f,0x0,0xda,0xff,0x65,0xff,0xda,0xfe,0x42,0xfe,0xbc,0xfd, +0x44,0xfd,0xc3,0xfc,0x26,0xfc,0x6e,0xfb,0xc3,0xfa,0x2f,0xfa, +0x97,0xf9,0xeb,0xf8,0xb,0xf8,0x10,0xf7,0x46,0xf6,0x9f,0xf5, +0xfc,0xf4,0x6a,0xf4,0xfc,0xf3,0xcd,0xf3,0xbf,0xf3,0xaa,0xf3, +0xa0,0xf3,0xaf,0xf3,0xfa,0xf3,0x8b,0xf4,0x2,0xf5,0x32,0xf5, +0x58,0xf5,0xb5,0xf5,0x65,0xf6,0x3f,0xf7,0xfe,0xf7,0xb1,0xf8, +0xa9,0xf9,0xf3,0xfa,0x42,0xfc,0x7c,0xfd,0xdb,0xfe,0x62,0x0, +0xf4,0x1,0x6c,0x3,0x8c,0x4,0x6b,0x5,0x66,0x6,0x89,0x7, +0x8c,0x8,0x4c,0x9,0xdc,0x9,0x6e,0xa,0x3a,0xb,0x1a,0xc, +0xad,0xc,0x1,0xd,0x53,0xd,0x93,0xd,0xcf,0xd,0xa,0xe, +0xf3,0xd,0x82,0xd,0x6,0xd,0xb1,0xc,0x6f,0xc,0x17,0xc, +0xb0,0xb,0x63,0xb,0x60,0xb,0xa0,0xb,0xc0,0xb,0xc0,0xb, +0x24,0xc,0xe9,0xc,0x9b,0xd,0x1,0xe,0x20,0xe,0x43,0xe, +0xc9,0xe,0x94,0xf,0x28,0x10,0x57,0x10,0x71,0x10,0xa5,0x10, +0xe3,0x10,0x28,0x11,0x40,0x11,0x15,0x11,0xe3,0x10,0x8a,0x10, +0xc3,0xf,0xb8,0xe,0xad,0xd,0xbd,0xc,0xcd,0xb,0xa8,0xa, +0x2b,0x9,0x57,0x7,0x89,0x5,0x17,0x4,0xd1,0x2,0x89,0x1, +0x3c,0x0,0xc7,0xfe,0x72,0xfd,0xad,0xfc,0x24,0xfc,0x78,0xfb, +0xf8,0xfa,0xb3,0xfa,0x62,0xfa,0x25,0xfa,0x5,0xfa,0xd0,0xf9, +0xbe,0xf9,0xe3,0xf9,0xeb,0xf9,0xc8,0xf9,0xa7,0xf9,0xc3,0xf9, +0x2e,0xfa,0x95,0xfa,0xdc,0xfa,0x23,0xfb,0x57,0xfb,0x8b,0xfb, +0xc8,0xfb,0xf5,0xfb,0x28,0xfc,0x35,0xfc,0xdd,0xfb,0x7e,0xfb, +0x70,0xfb,0x96,0xfb,0xd7,0xfb,0x41,0xfc,0xa7,0xfc,0xe8,0xfc, +0x42,0xfd,0xec,0xfd,0xe6,0xfe,0x2,0x0,0xd4,0x0,0x44,0x1, +0xa4,0x1,0x17,0x2,0xb5,0x2,0x7a,0x3,0x16,0x4,0x7e,0x4, +0xe6,0x4,0x69,0x5,0x1f,0x6,0xec,0x6,0xcc,0x7,0xe8,0x8, +0x7,0xa,0xde,0xa,0x8c,0xb,0x53,0xc,0x5d,0xd,0x8a,0xe, +0x85,0xf,0x4d,0x10,0x8,0x11,0xa9,0x11,0x57,0x12,0x5e,0x13, +0x82,0x14,0x63,0x15,0x7,0x16,0x8c,0x16,0x26,0x17,0xf6,0x17, +0x98,0x18,0xd0,0x18,0xcc,0x18,0x88,0x18,0x18,0x18,0x98,0x17, +0xf2,0x16,0x3c,0x16,0x73,0x15,0x6f,0x14,0x66,0x13,0x8b,0x12, +0xe4,0x11,0x67,0x11,0xc0,0x10,0xd4,0xf,0x1,0xf,0x6c,0xe, +0xdf,0xd,0x39,0xd,0x82,0xc,0xe2,0xb,0x7f,0xb,0x21,0xb, +0x79,0xa,0xdb,0x9,0xba,0x9,0xc5,0x9,0xa7,0x9,0x73,0x9, +0x3b,0x9,0x32,0x9,0x56,0x9,0x2a,0x9,0x84,0x8,0xb6,0x7, +0xb,0x7,0x7b,0x6,0xc0,0x5,0xc2,0x4,0xa8,0x3,0xa1,0x2, +0xc1,0x1,0xe8,0x0,0xfd,0xff,0x28,0xff,0x79,0xfe,0xdd,0xfd, +0x33,0xfd,0x55,0xfc,0x6e,0xfb,0xdd,0xfa,0x8a,0xfa,0xfe,0xf9, +0x30,0xf9,0x74,0xf8,0xf4,0xf7,0xb1,0xf7,0x7b,0xf7,0xa,0xf7, +0x91,0xf6,0x63,0xf6,0x79,0xf6,0xb5,0xf6,0xee,0xf6,0x1d,0xf7, +0x60,0xf7,0xb2,0xf7,0x2f,0xf8,0xe2,0xf8,0x85,0xf9,0x1f,0xfa, +0xcb,0xfa,0x5d,0xfb,0xeb,0xfb,0xa3,0xfc,0x68,0xfd,0x32,0xfe, +0x18,0xff,0xfe,0xff,0x9f,0x0,0x3,0x1,0x86,0x1,0x3c,0x2, +0xe2,0x2,0x31,0x3,0x20,0x3,0x9,0x3,0x35,0x3,0x72,0x3, +0x75,0x3,0x45,0x3,0x17,0x3,0xf9,0x2,0xd6,0x2,0xc5,0x2, +0xcd,0x2,0xcf,0x2,0xbf,0x2,0xa4,0x2,0xa8,0x2,0xdd,0x2, +0x1c,0x3,0x68,0x3,0xee,0x3,0x8e,0x4,0xfe,0x4,0x31,0x5, +0x73,0x5,0x7,0x6,0xc2,0x6,0x37,0x7,0x3a,0x7,0xf9,0x6, +0xc2,0x6,0xd3,0x6,0x3,0x7,0xd5,0x6,0x3e,0x6,0xbe,0x5, +0x7a,0x5,0x5b,0x5,0x40,0x5,0xde,0x4,0x73,0x4,0x51,0x4, +0xf6,0x3,0x1d,0x3,0x3f,0x2,0x9b,0x1,0x21,0x1,0xac,0x0, +0x2,0x0,0x14,0xff,0x31,0xfe,0xc3,0xfd,0xb5,0xfd,0xa4,0xfd, +0x6a,0xfd,0x5,0xfd,0x8b,0xfc,0x36,0xfc,0xf8,0xfb,0xa6,0xfb, +0x3a,0xfb,0xc0,0xfa,0x59,0xfa,0x1a,0xfa,0xf7,0xf9,0xda,0xf9, +0xc0,0xf9,0xd0,0xf9,0x22,0xfa,0x92,0xfa,0xe2,0xfa,0xe,0xfb, +0x73,0xfb,0x5c,0xfc,0x7c,0xfd,0x49,0xfe,0xb8,0xfe,0x57,0xff, +0x87,0x0,0xf8,0x1,0x32,0x3,0x13,0x4,0xcc,0x4,0xb0,0x5, +0xcf,0x6,0xe9,0x7,0xd2,0x8,0x95,0x9,0x50,0xa,0x1,0xb, +0x9f,0xb,0x1e,0xc,0x3b,0xc,0x10,0xc,0xf5,0xb,0xa9,0xb, +0xed,0xa,0xe7,0x9,0xa1,0x8,0x50,0x7,0x35,0x6,0x2c,0x5, +0x16,0x4,0xeb,0x2,0xb1,0x1,0xaf,0x0,0xd,0x0,0x96,0xff, +0x5,0xff,0x48,0xfe,0x65,0xfd,0x7e,0xfc,0xba,0xfb,0xe4,0xfa, +0xd1,0xf9,0xe3,0xf8,0x40,0xf8,0xac,0xf7,0x7,0xf7,0x28,0xf6, +0x2c,0xf5,0x7f,0xf4,0xfe,0xf3,0x46,0xf3,0x43,0xf2,0xe1,0xf0, +0x39,0xef,0xa0,0xed,0x19,0xec,0x6a,0xea,0x92,0xe8,0xa9,0xe6, +0xb6,0xe4,0xe4,0xe2,0x4b,0xe1,0xc5,0xdf,0x54,0xde,0xfe,0xdc, +0xac,0xdb,0x68,0xda,0x19,0xd9,0xc2,0xd7,0xb0,0xd6,0xca,0xd5, +0xc5,0xd4,0xa6,0xd3,0x93,0xd2,0xd7,0xd1,0x9c,0xd1,0x93,0xd1, +0x84,0xd1,0x8b,0xd1,0xb9,0xd1,0x15,0xd2,0xb2,0xd2,0x8d,0xd3, +0x89,0xd4,0x80,0xd5,0x4a,0xd6,0xe8,0xd6,0xba,0xd7,0xde,0xd8, +0x14,0xda,0x44,0xdb,0x63,0xdc,0x83,0xdd,0xe0,0xde,0x54,0xe0, +0xcb,0xe1,0x70,0xe3,0x14,0xe5,0x8c,0xe6,0xd1,0xe7,0xc0,0xe8, +0xa2,0xe9,0xbb,0xea,0xb5,0xeb,0x5b,0xec,0xd0,0xec,0x1e,0xed, +0x77,0xed,0x32,0xee,0x33,0xef,0x2d,0xf0,0x2e,0xf1,0x3e,0xf2, +0x6b,0xf3,0xe9,0xf4,0x7f,0xf6,0xf9,0xf7,0x9f,0xf9,0x55,0xfb, +0xd6,0xfc,0x47,0xfe,0xc9,0xff,0x87,0x1,0x93,0x3,0x9f,0x5, +0x92,0x7,0x88,0x9,0x78,0xb,0x6c,0xd,0x63,0xf,0x24,0x11, +0x8f,0x12,0xab,0x13,0x6b,0x14,0xe8,0x14,0x55,0x15,0x85,0x15, +0x77,0x15,0x7d,0x15,0x60,0x15,0xe,0x15,0xe6,0x14,0x95,0x14, +0xfe,0x13,0xb4,0x13,0x7d,0x13,0xe7,0x12,0x25,0x12,0x56,0x11, +0xa5,0x10,0x2f,0x10,0xa6,0xf,0xee,0xe,0x31,0xe,0x81,0xd, +0xf1,0xc,0x98,0xc,0x50,0xc,0xe2,0xb,0x5c,0xb,0xf8,0xa, +0xaf,0xa,0x53,0xa,0xcd,0x9,0x37,0x9,0xba,0x8,0x27,0x8, +0x45,0x7,0x40,0x6,0x41,0x5,0x61,0x4,0xa8,0x3,0xe1,0x2, +0xf3,0x1,0x8,0x1,0x43,0x0,0xb0,0xff,0x4b,0xff,0xe2,0xfe, +0x4c,0xfe,0x9e,0xfd,0xe7,0xfc,0x25,0xfc,0x7c,0xfb,0xe7,0xfa, +0x28,0xfa,0x3c,0xf9,0x3c,0xf8,0x4e,0xf7,0xa5,0xf6,0x1b,0xf6, +0x90,0xf5,0x31,0xf5,0xf8,0xf4,0xc9,0xf4,0x98,0xf4,0x6a,0xf4, +0x7b,0xf4,0xbb,0xf4,0xd0,0xf4,0xa8,0xf4,0x64,0xf4,0x3d,0xf4, +0x73,0xf4,0xe4,0xf4,0x43,0xf5,0x80,0xf5,0xc2,0xf5,0x37,0xf6, +0xec,0xf6,0xdd,0xf7,0xdb,0xf8,0xc3,0xf9,0xaf,0xfa,0x8b,0xfb, +0x54,0xfc,0x48,0xfd,0x45,0xfe,0x2a,0xff,0xe,0x0,0xc4,0x0, +0x43,0x1,0xce,0x1,0x71,0x2,0x35,0x3,0x23,0x4,0xa,0x5, +0xc9,0x5,0x84,0x6,0x59,0x7,0x3d,0x8,0x17,0x9,0xc6,0x9, +0x39,0xa,0x9d,0xa,0xff,0xa,0x46,0xb,0x97,0xb,0xef,0xb, +0x3c,0xc,0xc1,0xc,0x71,0xd,0xc,0xe,0xbc,0xe,0xa1,0xf, +0xa0,0x10,0x8e,0x11,0x3c,0x12,0xb7,0x12,0x34,0x13,0xbd,0x13, +0x25,0x14,0x53,0x14,0x5f,0x14,0x61,0x14,0x5d,0x14,0x56,0x14, +0x3e,0x14,0x18,0x14,0xef,0x13,0xbb,0x13,0x8a,0x13,0x54,0x13, +0xe4,0x12,0x2a,0x12,0x40,0x11,0x76,0x10,0x0,0x10,0x77,0xf, +0x67,0xe,0xf1,0xc,0x9a,0xb,0xd0,0xa,0x59,0xa,0x96,0x9, +0x64,0x8,0x3b,0x7,0x6e,0x6,0xc0,0x5,0xe2,0x4,0xf4,0x3, +0x23,0x3,0x56,0x2,0x5d,0x1,0x23,0x0,0xea,0xfe,0x4,0xfe, +0x61,0xfd,0xb6,0xfc,0xdc,0xfb,0xe0,0xfa,0xe7,0xf9,0x19,0xf9, +0xa7,0xf8,0x99,0xf8,0x9e,0xf8,0x58,0xf8,0xc1,0xf7,0x2e,0xf7, +0x3,0xf7,0x47,0xf7,0x8c,0xf7,0x5d,0xf7,0xd7,0xf6,0x70,0xf6, +0x55,0xf6,0x84,0xf6,0xd6,0xf6,0xc,0xf7,0x31,0xf7,0x64,0xf7, +0x9f,0xf7,0xb,0xf8,0xa8,0xf8,0x36,0xf9,0x9f,0xf9,0xff,0xf9, +0x7b,0xfa,0xfe,0xfa,0x68,0xfb,0xf2,0xfb,0xbf,0xfc,0x9e,0xfd, +0x69,0xfe,0xf7,0xfe,0x5d,0xff,0x35,0x0,0xbc,0x1,0x55,0x3, +0x5a,0x4,0xff,0x4,0xec,0x5,0x4c,0x7,0xda,0x8,0x2b,0xa, +0x4,0xb,0xd8,0xb,0x14,0xd,0x50,0xe,0x39,0xf,0x7,0x10, +0xed,0x10,0x3,0x12,0x32,0x13,0x1d,0x14,0xa3,0x14,0x1f,0x15, +0xf3,0x15,0xfe,0x16,0xd5,0x17,0x3c,0x18,0x2e,0x18,0x4,0x18, +0x44,0x18,0xb7,0x18,0xb4,0x18,0x4a,0x18,0xea,0x17,0x95,0x17, +0x45,0x17,0x11,0x17,0xdd,0x16,0xb4,0x16,0xc1,0x16,0xc4,0x16, +0x81,0x16,0x21,0x16,0xcd,0x15,0x9c,0x15,0xa5,0x15,0x96,0x15, +0xfe,0x14,0xd,0x14,0x4f,0x13,0xe4,0x12,0x99,0x12,0x47,0x12, +0xc9,0x11,0x10,0x11,0x5a,0x10,0xdd,0xf,0x78,0xf,0xfb,0xe, +0x4d,0xe,0x5f,0xd,0x46,0xc,0x37,0xb,0x36,0xa,0x28,0x9, +0x17,0x8,0xa,0x7,0xe6,0x5,0xaa,0x4,0x89,0x3,0xa0,0x2, +0xd6,0x1,0x16,0x1,0x51,0x0,0x6e,0xff,0x69,0xfe,0x68,0xfd, +0x9a,0xfc,0x1f,0xfc,0xaf,0xfb,0xd3,0xfa,0xcd,0xf9,0x4a,0xf9, +0x38,0xf9,0x21,0xf9,0xe9,0xf8,0xaa,0xf8,0x88,0xf8,0xa3,0xf8, +0xd2,0xf8,0xd4,0xf8,0xb8,0xf8,0xb3,0xf8,0xde,0xf8,0x44,0xf9, +0xd5,0xf9,0x3c,0xfa,0x59,0xfa,0xaf,0xfa,0x7f,0xfb,0x5a,0xfc, +0xf6,0xfc,0x59,0xfd,0x97,0xfd,0xfd,0xfd,0xac,0xfe,0x39,0xff, +0x64,0xff,0x81,0xff,0xe1,0xff,0x65,0x0,0xb4,0x0,0x98,0x0, +0x52,0x0,0x82,0x0,0x29,0x1,0x7c,0x1,0x36,0x1,0xec,0x0, +0xf9,0x0,0x4f,0x1,0xda,0x1,0x5d,0x2,0xa8,0x2,0xe8,0x2, +0x54,0x3,0x9,0x4,0x1,0x5,0xd8,0x5,0x48,0x6,0xca,0x6, +0xb2,0x7,0xa3,0x8,0x67,0x9,0x16,0xa,0xb2,0xa,0x4d,0xb, +0xd2,0xb,0x29,0xc,0x8a,0xc,0xeb,0xc,0x1c,0xd,0x26,0xd, +0xee,0xc,0x77,0xc,0x16,0xc,0xe5,0xb,0xc8,0xb,0x7e,0xb, +0xbf,0xa,0xc1,0x9,0xf5,0x8,0x66,0x8,0xcf,0x7,0xfe,0x6, +0x2,0x6,0x9,0x5,0x38,0x4,0x93,0x3,0xf5,0x2,0x4f,0x2, +0xb0,0x1,0x6,0x1,0x62,0x0,0xef,0xff,0x8a,0xff,0x15,0xff, +0xa1,0xfe,0x28,0xfe,0x9b,0xfd,0x5,0xfd,0x84,0xfc,0x3a,0xfc, +0x31,0xfc,0x42,0xfc,0x29,0xfc,0xec,0xfb,0xf0,0xfb,0x64,0xfc, +0xb,0xfd,0x9c,0xfd,0xd3,0xfd,0xa3,0xfd,0x70,0xfd,0x73,0xfd, +0x6c,0xfd,0x40,0xfd,0xed,0xfc,0x4a,0xfc,0x8d,0xfb,0x26,0xfb, +0x12,0xfb,0x14,0xfb,0xe,0xfb,0x20,0xfb,0x86,0xfb,0x2b,0xfc, +0xd6,0xfc,0x77,0xfd,0x1c,0xfe,0x9,0xff,0x25,0x0,0xe3,0x0, +0x64,0x1,0x26,0x2,0x14,0x3,0xfb,0x3,0xc7,0x4,0x65,0x5, +0xf4,0x5,0x6e,0x6,0xad,0x6,0xca,0x6,0xd5,0x6,0x8d,0x6, +0xc1,0x5,0xa7,0x4,0x86,0x3,0x4a,0x2,0xc6,0x0,0xb,0xff, +0x44,0xfd,0x8d,0xfb,0xe4,0xf9,0x34,0xf8,0x8e,0xf6,0x19,0xf5, +0xc0,0xf3,0x55,0xf2,0xfd,0xf0,0xdf,0xef,0xc1,0xee,0x96,0xed, +0x7e,0xec,0x75,0xeb,0x93,0xea,0xc5,0xe9,0xcf,0xe8,0xe1,0xe7, +0x2b,0xe7,0x8f,0xe6,0x4,0xe6,0x73,0xe5,0xcb,0xe4,0x18,0xe4, +0x70,0xe3,0xe1,0xe2,0x2c,0xe2,0x31,0xe1,0x42,0xe0,0x5e,0xdf, +0x54,0xde,0x47,0xdd,0x34,0xdc,0x17,0xdb,0x17,0xda,0x38,0xd9, +0x7b,0xd8,0xc1,0xd7,0xdf,0xd6,0x12,0xd6,0x92,0xd5,0x35,0xd5, +0xce,0xd4,0x4f,0xd4,0xe6,0xd3,0xcf,0xd3,0xe2,0xd3,0xd6,0xd3, +0xd5,0xd3,0x1e,0xd4,0x8c,0xd4,0xfb,0xd4,0x86,0xd5,0x29,0xd6, +0xd8,0xd6,0xa9,0xd7,0x91,0xd8,0x88,0xd9,0x9c,0xda,0xbf,0xdb, +0xfd,0xdc,0x6d,0xde,0xf9,0xdf,0x93,0xe1,0x37,0xe3,0xd7,0xe4, +0x7d,0xe6,0x43,0xe8,0xc,0xea,0xae,0xeb,0x38,0xed,0xba,0xee, +0x2a,0xf0,0x9e,0xf1,0x21,0xf3,0xa6,0xf4,0x17,0xf6,0x5e,0xf7, +0x87,0xf8,0xb0,0xf9,0xfa,0xfa,0x5d,0xfc,0x70,0xfd,0x1f,0xfe, +0xf5,0xfe,0xf4,0xff,0xc5,0x0,0x95,0x1,0x81,0x2,0x7d,0x3, +0x98,0x4,0xb5,0x5,0xc9,0x6,0xfd,0x7,0x51,0x9,0xaf,0xa, +0xf9,0xb,0x20,0xd,0x35,0xe,0x26,0xf,0xee,0xf,0xcf,0x10, +0xbe,0x11,0x48,0x12,0x61,0x12,0x66,0x12,0x82,0x12,0xd1,0x12, +0x4a,0x13,0x77,0x13,0x52,0x13,0x4e,0x13,0x5d,0x13,0x4a,0x13, +0x18,0x13,0xb4,0x12,0x2f,0x12,0xb0,0x11,0x21,0x11,0x7e,0x10, +0xcf,0xf,0x14,0xf,0x5c,0xe,0xb9,0xd,0x27,0xd,0x70,0xc, +0x92,0xb,0xe9,0xa,0x88,0xa,0x2e,0xa,0x9f,0x9,0xae,0x8, +0xc0,0x7,0x45,0x7,0xd6,0x6,0x8,0x6,0xfa,0x4,0xe7,0x3, +0x6,0x3,0x56,0x2,0xac,0x1,0x1a,0x1,0xba,0x0,0x71,0x0, +0x25,0x0,0xdf,0xff,0xc2,0xff,0xc8,0xff,0xdd,0xff,0xe6,0xff, +0xba,0xff,0x62,0xff,0x5,0xff,0xa7,0xfe,0x68,0xfe,0x5d,0xfe, +0x50,0xfe,0x12,0xfe,0xa4,0xfd,0x31,0xfd,0xef,0xfc,0xdf,0xfc, +0xb2,0xfc,0x20,0xfc,0x3e,0xfb,0x64,0xfa,0xc8,0xf9,0x4c,0xf9, +0xc5,0xf8,0x37,0xf8,0xc2,0xf7,0x84,0xf7,0x8d,0xf7,0xc8,0xf7, +0x3d,0xf8,0x13,0xf9,0x13,0xfa,0xe8,0xfa,0xaa,0xfb,0x96,0xfc, +0xc5,0xfd,0x3c,0xff,0xd4,0x0,0x3d,0x2,0x62,0x3,0x8b,0x4, +0xdf,0x5,0x41,0x7,0xb5,0x8,0x25,0xa,0x3f,0xb,0xf6,0xb, +0x67,0xc,0xd0,0xc,0x89,0xd,0x53,0xe,0xa5,0xe,0x82,0xe, +0x2f,0xe,0xe0,0xd,0xb9,0xd,0xa9,0xd,0x87,0xd,0x31,0xd, +0xaa,0xc,0x1c,0xc,0xa4,0xb,0x61,0xb,0x52,0xb,0x40,0xb, +0x2e,0xb,0x33,0xb,0x19,0xb,0xe7,0xa,0xfc,0xa,0x62,0xb, +0xcd,0xb,0x8,0xc,0xfd,0xb,0xc3,0xb,0xbf,0xb,0x1d,0xc, +0x81,0xc,0x96,0xc,0x5a,0xc,0x10,0xc,0x3,0xc,0x3,0xc, +0xcd,0xb,0x92,0xb,0x6a,0xb,0x1f,0xb,0x7d,0xa,0x9a,0x9, +0xdd,0x8,0x68,0x8,0xed,0x7,0x27,0x7,0xfb,0x5,0xb5,0x4, +0xc7,0x3,0xfb,0x2,0xfa,0x1,0xe3,0x0,0xd6,0xff,0xe5,0xfe, +0xff,0xfd,0xff,0xfc,0xff,0xfb,0x28,0xfb,0x89,0xfa,0xf,0xfa, +0x78,0xf9,0xcf,0xf8,0x54,0xf8,0x1,0xf8,0xdb,0xf7,0xec,0xf7, +0x3,0xf8,0x19,0xf8,0x65,0xf8,0xe,0xf9,0xf9,0xf9,0xe5,0xfa, +0xc8,0xfb,0xc4,0xfc,0xcc,0xfd,0xc1,0xfe,0x99,0xff,0x53,0x0, +0x8,0x1,0xbf,0x1,0x3a,0x2,0x57,0x2,0x5a,0x2,0x92,0x2, +0x7,0x3,0x70,0x3,0x84,0x3,0x7d,0x3,0xb5,0x3,0xf6,0x3, +0xf0,0x3,0xc9,0x3,0xca,0x3,0xff,0x3,0x2f,0x4,0x1c,0x4, +0xee,0x3,0x9,0x4,0x9c,0x4,0x6a,0x5,0x27,0x6,0xdb,0x6, +0xa5,0x7,0xac,0x8,0x17,0xa,0xa8,0xb,0x10,0xd,0x4f,0xe, +0x73,0xf,0x87,0x10,0xa7,0x11,0xed,0x12,0x33,0x14,0x16,0x15, +0x90,0x15,0x6,0x16,0x96,0x16,0x2b,0x17,0x9f,0x17,0xd7,0x17, +0xe,0x18,0x58,0x18,0x58,0x18,0x6,0x18,0xb8,0x17,0x98,0x17, +0x8a,0x17,0x38,0x17,0x6b,0x16,0x72,0x15,0xba,0x14,0x38,0x14, +0x9a,0x13,0xbd,0x12,0xc4,0x11,0xf5,0x10,0x6d,0x10,0x5,0x10, +0xb5,0xf,0x90,0xf,0x63,0xf,0xf7,0xe,0x61,0xe,0xff,0xd, +0xea,0xd,0xaa,0xd,0x12,0xd,0x7c,0xc,0xf0,0xb,0x7b,0xb, +0x30,0xb,0xe5,0xa,0xc8,0xa,0xe3,0xa,0xb8,0xa,0x4b,0xa, +0xed,0x9,0xa5,0x9,0x66,0x9,0x3,0x9,0x58,0x8,0x82,0x7, +0x90,0x6,0xb0,0x5,0xf3,0x4,0x12,0x4,0x1a,0x3,0x4c,0x2, +0xa6,0x1,0x23,0x1,0xa0,0x0,0xed,0xff,0x47,0xff,0xdf,0xfe, +0x84,0xfe,0x16,0xfe,0x86,0xfd,0xd4,0xfc,0x53,0xfc,0x28,0xfc, +0xe3,0xfb,0x5a,0xfb,0xe8,0xfa,0xce,0xfa,0x7,0xfb,0x4a,0xfb, +0x49,0xfb,0x34,0xfb,0x7b,0xfb,0x18,0xfc,0xa4,0xfc,0xf1,0xfc, +0x33,0xfd,0xa3,0xfd,0x3d,0xfe,0xdc,0xfe,0x39,0xff,0x45,0xff, +0x6e,0xff,0xf9,0xff,0xab,0x0,0x2e,0x1,0x58,0x1,0x60,0x1, +0xae,0x1,0x26,0x2,0x53,0x2,0x38,0x2,0x28,0x2,0x2d,0x2, +0x2a,0x2,0xf,0x2,0xc0,0x1,0x66,0x1,0x3f,0x1,0x24,0x1, +0xfd,0x0,0xe0,0x0,0xb5,0x0,0x74,0x0,0x56,0x0,0x79,0x0, +0xa4,0x0,0x8d,0x0,0x68,0x0,0x85,0x0,0xc9,0x0,0x23,0x1, +0x74,0x1,0x78,0x1,0x7b,0x1,0xeb,0x1,0x89,0x2,0xff,0x2, +0x37,0x3,0x3d,0x3,0x6c,0x3,0xfa,0x3,0x66,0x4,0x45,0x4, +0xfb,0x3,0xee,0x3,0x5,0x4,0xfa,0x3,0x92,0x3,0x3,0x3, +0xbe,0x2,0x78,0x2,0xec,0x1,0x6d,0x1,0xe8,0x0,0x34,0x0, +0x95,0xff,0x1b,0xff,0xa7,0xfe,0x32,0xfe,0xb6,0xfd,0x55,0xfd, +0x3,0xfd,0xa2,0xfc,0x68,0xfc,0x5f,0xfc,0x50,0xfc,0x4c,0xfc, +0x7e,0xfc,0xdb,0xfc,0x19,0xfd,0x1f,0xfd,0x3c,0xfd,0xb4,0xfd, +0x4b,0xfe,0x84,0xfe,0x57,0xfe,0x52,0xfe,0xb5,0xfe,0x2b,0xff, +0x85,0xff,0xe5,0xff,0x4b,0x0,0xb0,0x0,0x31,0x1,0xcc,0x1, +0x4b,0x2,0xa7,0x2,0xf5,0x2,0x30,0x3,0x5c,0x3,0x57,0x3, +0x18,0x3,0x8,0x3,0x3d,0x3,0x4d,0x3,0x45,0x3,0x7d,0x3, +0x4,0x4,0xc0,0x4,0x98,0x5,0x77,0x6,0x4d,0x7,0x19,0x8, +0xf7,0x8,0xcb,0x9,0x59,0xa,0xa1,0xa,0xc0,0xa,0xd9,0xa, +0xe5,0xa,0xb8,0xa,0x7b,0xa,0x5e,0xa,0x10,0xa,0x6a,0x9, +0xb4,0x8,0xc,0x8,0x6b,0x7,0x92,0x6,0x25,0x5,0x77,0x3, +0x1,0x2,0x78,0x0,0xa8,0xfe,0xbd,0xfc,0xad,0xfa,0xb3,0xf8, +0x8,0xf7,0x4b,0xf5,0x7e,0xf3,0xe8,0xf1,0x61,0xf0,0xee,0xee, +0x9e,0xed,0x37,0xec,0xe6,0xea,0xd8,0xe9,0xc1,0xe8,0x86,0xe7, +0x47,0xe6,0x1d,0xe5,0x1f,0xe4,0x40,0xe3,0x5b,0xe2,0x64,0xe1, +0x52,0xe0,0x28,0xdf,0xc,0xde,0x20,0xdd,0x57,0xdc,0x84,0xdb, +0x76,0xda,0x23,0xd9,0xfb,0xd7,0x47,0xd7,0xa9,0xd6,0xe3,0xd5, +0x14,0xd5,0x4c,0xd4,0xb4,0xd3,0x5a,0xd3,0xc,0xd3,0xd0,0xd2, +0xd1,0xd2,0xf,0xd3,0x6d,0xd3,0xc0,0xd3,0x24,0xd4,0xe0,0xd4, +0xd7,0xd5,0xa8,0xd6,0x49,0xd7,0xe9,0xd7,0xaa,0xd8,0x8e,0xd9, +0x6b,0xda,0x1d,0xdb,0xc9,0xdb,0x8b,0xdc,0x6a,0xdd,0x85,0xde, +0xba,0xdf,0xed,0xe0,0x4a,0xe2,0xbc,0xe3,0x2b,0xe5,0xc6,0xe6, +0x70,0xe8,0x7,0xea,0x94,0xeb,0xfe,0xec,0x6b,0xee,0xfe,0xef, +0x8d,0xf1,0x1d,0xf3,0xb0,0xf4,0x39,0xf6,0xf0,0xf7,0xbb,0xf9, +0x48,0xfb,0xc4,0xfc,0x61,0xfe,0xf7,0xff,0x6c,0x1,0xc0,0x2, +0xe3,0x3,0xec,0x4,0x14,0x6,0x49,0x7,0x3c,0x8,0xf9,0x8, +0xb1,0x9,0x61,0xa,0x2f,0xb,0x1f,0xc,0xde,0xc,0x68,0xd, +0xe,0xe,0xdd,0xe,0xc7,0xf,0xc9,0x10,0x96,0x11,0xfe,0x11, +0x62,0x12,0x3,0x13,0x9d,0x13,0xe3,0x13,0xd5,0x13,0xb2,0x13, +0x9b,0x13,0x6f,0x13,0xb,0x13,0x4a,0x12,0x4e,0x11,0x8b,0x10, +0xfc,0xf,0x5e,0xf,0xa3,0xe,0xa4,0xd,0x8d,0xc,0xcf,0xb, +0x39,0xb,0x5e,0xa,0x22,0x9,0xc1,0x7,0xac,0x6,0xf4,0x5, +0x44,0x5,0x69,0x4,0x79,0x3,0xe3,0x2,0xd5,0x2,0xdf,0x2, +0xb6,0x2,0x68,0x2,0x12,0x2,0xd6,0x1,0x92,0x1,0xf7,0x0, +0xfc,0xff,0xd6,0xfe,0xcd,0xfd,0xea,0xfc,0x7,0xfc,0x27,0xfb, +0x52,0xfa,0x8b,0xf9,0xf8,0xf8,0xa0,0xf8,0x6e,0xf8,0x2d,0xf8, +0x9d,0xf7,0xf7,0xf6,0xa9,0xf6,0x91,0xf6,0x3c,0xf6,0xa5,0xf5, +0x25,0xf5,0xfd,0xf4,0x29,0xf5,0x5f,0xf5,0x64,0xf5,0x71,0xf5, +0xda,0xf5,0x83,0xf6,0x1f,0xf7,0x88,0xf7,0xe3,0xf7,0x65,0xf8, +0xc,0xf9,0xcc,0xf9,0x93,0xfa,0x41,0xfb,0x4,0xfc,0xf9,0xfc, +0xf9,0xfd,0x10,0xff,0x29,0x0,0x26,0x1,0x42,0x2,0x8d,0x3, +0xd4,0x4,0xa,0x6,0x18,0x7,0x20,0x8,0x60,0x9,0xa8,0xa, +0xbe,0xb,0x97,0xc,0x2d,0xd,0x9d,0xd,0xfc,0xd,0x54,0xe, +0xaf,0xe,0xc7,0xe,0x74,0xe,0x4,0xe,0xbe,0xd,0xaf,0xd, +0xa1,0xd,0x3f,0xd,0xb1,0xc,0x62,0xc,0x37,0xc,0xe0,0xb, +0x5b,0xb,0xdf,0xa,0x9f,0xa,0x8f,0xa,0x59,0xa,0xd1,0x9, +0x50,0x9,0x40,0x9,0x9a,0x9,0x12,0xa,0x54,0xa,0x34,0xa, +0xd,0xa,0x32,0xa,0x6f,0xa,0x99,0xa,0x87,0xa,0xf2,0x9, +0x21,0x9,0x73,0x8,0xd2,0x7,0x50,0x7,0xb2,0x6,0x95,0x5, +0x63,0x4,0x58,0x3,0x19,0x2,0xcf,0x0,0xb2,0xff,0x8a,0xfe, +0x55,0xfd,0xef,0xfb,0x1a,0xfa,0x50,0xf8,0x2f,0xf7,0x8d,0xf6, +0xdb,0xf5,0xcb,0xf4,0x5e,0xf3,0xff,0xf1,0x4d,0xf1,0x40,0xf1, +0x27,0xf1,0xaa,0xf0,0x14,0xf0,0xce,0xef,0xe0,0xef,0x11,0xf0, +0x67,0xf0,0x11,0xf1,0xe8,0xf1,0x8d,0xf2,0xfe,0xf2,0x9b,0xf3, +0x91,0xf4,0xb6,0xf5,0xe1,0xf6,0xc2,0xf7,0x33,0xf8,0xa4,0xf8, +0x88,0xf9,0xdc,0xfa,0x3e,0xfc,0x3e,0xfd,0xfa,0xfd,0xd5,0xfe, +0xce,0xff,0xe3,0x0,0xfd,0x1,0xe7,0x2,0xaf,0x3,0x4b,0x4, +0xa6,0x4,0xf0,0x4,0x58,0x5,0xf7,0x5,0xb2,0x6,0x3f,0x7, +0x9a,0x7,0xef,0x7,0x80,0x8,0x76,0x9,0x87,0xa,0x7b,0xb, +0x65,0xc,0x40,0xd,0x3e,0xe,0x60,0xf,0x5f,0x10,0x66,0x11, +0x8e,0x12,0x8d,0x13,0x7d,0x14,0x76,0x15,0x6c,0x16,0x9f,0x17, +0xf8,0x18,0x18,0x1a,0x5,0x1b,0xe8,0x1b,0xc9,0x1c,0x9e,0x1d, +0x54,0x1e,0xd1,0x1e,0x9,0x1f,0x3,0x1f,0xb9,0x1e,0x39,0x1e, +0xb0,0x1d,0xf,0x1d,0x44,0x1c,0x87,0x1b,0xcf,0x1a,0xe6,0x19, +0xfa,0x18,0x35,0x18,0x83,0x17,0xdc,0x16,0x26,0x16,0x46,0x15, +0x63,0x14,0x84,0x13,0x7f,0x12,0x74,0x11,0x90,0x10,0xbf,0xf, +0xee,0xe,0xf7,0xd,0xf0,0xc,0x5f,0xc,0x3c,0xc,0xfc,0xb, +0x85,0xb,0xf2,0xa,0x7d,0xa,0x5b,0xa,0x38,0xa,0xd8,0x9, +0x67,0x9,0xd8,0x8,0x1a,0x8,0x56,0x7,0xb3,0x6,0x41,0x6, +0xd0,0x5,0x35,0x5,0x95,0x4,0xf5,0x3,0x4c,0x3,0xc6,0x2, +0x67,0x2,0xf8,0x1,0x4c,0x1,0x77,0x0,0xa9,0xff,0xcb,0xfe, +0xc4,0xfd,0xcf,0xfc,0xe,0xfc,0x6b,0xfb,0xbd,0xfa,0xe4,0xf9, +0x2c,0xf9,0xfa,0xf8,0x2a,0xf9,0x42,0xf9,0x17,0xf9,0x0,0xf9, +0x77,0xf9,0x59,0xfa,0x4,0xfb,0x43,0xfb,0x74,0xfb,0xd,0xfc, +0x1f,0xfd,0x1b,0xfe,0x9a,0xfe,0x13,0xff,0x6,0x0,0x26,0x1, +0xf8,0x1,0x73,0x2,0xf1,0x2,0xc8,0x3,0xb7,0x4,0x51,0x5, +0x90,0x5,0xa7,0x5,0xd1,0x5,0x1c,0x6,0x42,0x6,0x35,0x6, +0x18,0x6,0xe2,0x5,0xaf,0x5,0x9e,0x5,0x77,0x5,0x43,0x5, +0x3b,0x5,0x54,0x5,0x66,0x5,0x64,0x5,0x4f,0x5,0x30,0x5, +0x25,0x5,0x58,0x5,0xa9,0x5,0xca,0x5,0xc2,0x5,0xb2,0x5, +0xc1,0x5,0x23,0x6,0x78,0x6,0x60,0x6,0x58,0x6,0xb6,0x6, +0x3a,0x7,0xa9,0x7,0xd4,0x7,0xc4,0x7,0xcd,0x7,0xd,0x8, +0x51,0x8,0x50,0x8,0x5,0x8,0xb6,0x7,0x8e,0x7,0xa7,0x7, +0xc7,0x7,0x74,0x7,0xfd,0x6,0xf9,0x6,0x2c,0x7,0x29,0x7, +0xb7,0x6,0xe6,0x5,0x44,0x5,0xef,0x4,0x81,0x4,0xce,0x3, +0xc4,0x2,0xa4,0x1,0xde,0x0,0x4f,0x0,0xa7,0xff,0xe3,0xfe, +0x11,0xfe,0x74,0xfd,0x2f,0xfd,0xe3,0xfc,0x59,0xfc,0xc5,0xfb, +0x56,0xfb,0x1e,0xfb,0x18,0xfb,0x20,0xfb,0x26,0xfb,0x5d,0xfb, +0xcf,0xfb,0x59,0xfc,0xf0,0xfc,0x69,0xfd,0xbb,0xfd,0x42,0xfe, +0x8,0xff,0xb9,0xff,0x25,0x0,0x44,0x0,0x4d,0x0,0x7d,0x0, +0xdc,0x0,0x42,0x1,0x50,0x1,0xf3,0x0,0xc2,0x0,0xed,0x0, +0x8,0x1,0xde,0x0,0x93,0x0,0x85,0x0,0xd5,0x0,0x15,0x1, +0xfc,0x0,0xe8,0x0,0x4b,0x1,0xff,0x1,0x8a,0x2,0xe6,0x2, +0x44,0x3,0xa9,0x3,0x2c,0x4,0xa4,0x4,0xc8,0x4,0xbb,0x4, +0x90,0x4,0x43,0x4,0xf2,0x3,0x7d,0x3,0xdc,0x2,0x2a,0x2, +0x3e,0x1,0x33,0x0,0x3f,0xff,0x28,0xfe,0xd3,0xfc,0x66,0xfb, +0x2,0xfa,0xd4,0xf8,0xb1,0xf7,0x45,0xf6,0xbc,0xf4,0x80,0xf3, +0xa5,0xf2,0xd8,0xf1,0xbd,0xf0,0x66,0xef,0x2f,0xee,0x4c,0xed, +0x8c,0xec,0x7b,0xeb,0x5,0xea,0xa3,0xe8,0x94,0xe7,0xb4,0xe6, +0xd8,0xe5,0xcf,0xe4,0xa0,0xe3,0x94,0xe2,0xb3,0xe1,0xc8,0xe0, +0xcc,0xdf,0xce,0xde,0xb7,0xdd,0x82,0xdc,0x51,0xdb,0x32,0xda, +0x3,0xd9,0xbb,0xd7,0xa8,0xd6,0xfb,0xd5,0x82,0xd5,0x10,0xd5, +0xac,0xd4,0x79,0xd4,0xb2,0xd4,0x34,0xd5,0x88,0xd5,0xa7,0xd5, +0xf4,0xd5,0x93,0xd6,0x5a,0xd7,0x11,0xd8,0xa6,0xd8,0x44,0xd9, +0x33,0xda,0x75,0xdb,0xb7,0xdc,0xcc,0xdd,0xd9,0xde,0xfa,0xdf, +0x37,0xe1,0x77,0xe2,0x7c,0xe3,0x5b,0xe4,0x5b,0xe5,0x5c,0xe6, +0x30,0xe7,0xf6,0xe7,0xc1,0xe8,0x9d,0xe9,0xa7,0xea,0xcd,0xeb, +0xdd,0xec,0xcf,0xed,0xce,0xee,0xff,0xef,0x5b,0xf1,0xb9,0xf2, +0xfb,0xf3,0x3d,0xf5,0xae,0xf6,0x32,0xf8,0x93,0xf9,0x1,0xfb, +0xaf,0xfc,0x65,0xfe,0xec,0xff,0x63,0x1,0xf1,0x2,0xa1,0x4, +0x4a,0x6,0xbd,0x7,0x17,0x9,0x7f,0xa,0xd4,0xb,0x1,0xd, +0xa,0xe,0x1,0xf,0x5,0x10,0xdd,0x10,0x27,0x11,0x9,0x11, +0xf3,0x10,0x1b,0x11,0x6d,0x11,0x80,0x11,0x32,0x11,0xf3,0x10, +0xf2,0x10,0xf2,0x10,0xca,0x10,0x66,0x10,0xe5,0xf,0x86,0xf, +0x38,0xf,0xb5,0xe,0xef,0xd,0x24,0xd,0x97,0xc,0x42,0xc, +0xf1,0xb,0x85,0xb,0x19,0xb,0xe8,0xa,0xe4,0xa,0xd9,0xa, +0xbd,0xa,0x7b,0xa,0x30,0xa,0x1c,0xa,0xc,0xa,0xc8,0x9, +0x74,0x9,0x10,0x9,0xaa,0x8,0x75,0x8,0x4a,0x8,0xe7,0x7, +0x5e,0x7,0xeb,0x6,0x92,0x6,0xfd,0x5,0xfe,0x4,0xcf,0x3, +0xb3,0x2,0xb2,0x1,0x8b,0x0,0x1c,0xff,0xae,0xfd,0x7a,0xfc, +0x7d,0xfb,0xa0,0xfa,0xad,0xf9,0xb1,0xf8,0x3,0xf8,0xb1,0xf7, +0x8d,0xf7,0x64,0xf7,0xd,0xf7,0xdb,0xf6,0x21,0xf7,0x8d,0xf7, +0xd1,0xf7,0x8,0xf8,0x50,0xf8,0xd3,0xf8,0x90,0xf9,0x2f,0xfa, +0xa4,0xfa,0x3b,0xfb,0xf2,0xfb,0xab,0xfc,0x77,0xfd,0x37,0xfe, +0xd0,0xfe,0x78,0xff,0x2e,0x0,0xb8,0x0,0x1b,0x1,0x75,0x1, +0xd4,0x1,0x45,0x2,0xa9,0x2,0xda,0x2,0xe3,0x2,0x9,0x3, +0x91,0x3,0x3d,0x4,0xb4,0x4,0x1c,0x5,0xa6,0x5,0x33,0x6, +0xa0,0x6,0xe1,0x6,0xd,0x7,0x31,0x7,0x2f,0x7,0xd,0x7, +0x3,0x7,0x2b,0x7,0x6a,0x7,0x8d,0x7,0x93,0x7,0xb8,0x7, +0x28,0x8,0xd6,0x8,0x86,0x9,0xa,0xa,0x71,0xa,0xa9,0xa, +0xb7,0xa,0x1,0xb,0x85,0xb,0xd0,0xb,0xd8,0xb,0xc8,0xb, +0xab,0xb,0xbd,0xb,0x19,0xc,0x6f,0xc,0x7d,0xc,0x4c,0xc, +0x7,0xc,0xbd,0xb,0x60,0xb,0xf1,0xa,0x51,0xa,0x61,0x9, +0x3c,0x8,0x4,0x7,0xd3,0x5,0xce,0x4,0xdd,0x3,0xe5,0x2, +0x2,0x2,0x15,0x1,0xfe,0xff,0x22,0xff,0xd4,0xfe,0xbe,0xfe, +0x6c,0xfe,0xc5,0xfd,0xf4,0xfc,0x54,0xfc,0x35,0xfc,0x5e,0xfc, +0x55,0xfc,0x1e,0xfc,0x1,0xfc,0x1,0xfc,0x18,0xfc,0x74,0xfc, +0x29,0xfd,0xde,0xfd,0x34,0xfe,0x5e,0xfe,0xb0,0xfe,0x19,0xff, +0x85,0xff,0xdc,0xff,0xfe,0xff,0x12,0x0,0x10,0x0,0xca,0xff, +0x9f,0xff,0xc6,0xff,0xea,0xff,0x1,0x0,0x10,0x0,0xf4,0xff, +0x12,0x0,0xb1,0x0,0x5a,0x1,0xc6,0x1,0x11,0x2,0x49,0x2, +0x94,0x2,0x5,0x3,0x76,0x3,0xd5,0x3,0xb,0x4,0x9,0x4, +0x26,0x4,0xa8,0x4,0x6f,0x5,0x49,0x6,0x4,0x7,0xa5,0x7, +0x8a,0x8,0xb4,0x9,0xb8,0xa,0x82,0xb,0x3e,0xc,0x1b,0xd, +0x6,0xe,0x86,0xe,0xa4,0xe,0x14,0xf,0xf6,0xf,0xd4,0x10, +0x6d,0x11,0xb1,0x11,0xee,0x11,0x99,0x12,0x76,0x13,0xef,0x13, +0x5,0x14,0x1b,0x14,0x48,0x14,0x70,0x14,0x75,0x14,0x38,0x14, +0xc3,0x13,0x5e,0x13,0x17,0x13,0xd0,0x12,0x76,0x12,0xfb,0x11, +0x7d,0x11,0x29,0x11,0xe7,0x10,0xa0,0x10,0x66,0x10,0x2e,0x10, +0xee,0xf,0xb4,0xf,0x86,0xf,0x49,0xf,0xcc,0xe,0x48,0xe, +0x27,0xe,0x38,0xe,0x14,0xe,0xbb,0xd,0x4a,0xd,0xf2,0xc, +0xdc,0xc,0xd6,0xc,0xaf,0xc,0x6b,0xc,0xc,0xc,0xb6,0xb, +0x7e,0xb,0x40,0xb,0xe3,0xa,0x55,0xa,0x98,0x9,0xb,0x9, +0xd9,0x8,0x84,0x8,0xca,0x7,0xfc,0x6,0x62,0x6,0xd,0x6, +0xc1,0x5,0x14,0x5,0x23,0x4,0x6f,0x3,0xfd,0x2,0x67,0x2, +0x81,0x1,0x83,0x0,0xe0,0xff,0x94,0xff,0x9,0xff,0x27,0xfe, +0x7f,0xfd,0x42,0xfd,0x3d,0xfd,0x41,0xfd,0x21,0xfd,0x1,0xfd, +0x36,0xfd,0xa4,0xfd,0x19,0xfe,0xa8,0xfe,0x3a,0xff,0x98,0xff, +0xd0,0xff,0x22,0x0,0xc5,0x0,0x7b,0x1,0xcb,0x1,0xd6,0x1, +0x10,0x2,0x83,0x2,0xe7,0x2,0x2,0x3,0xf7,0x2,0x1f,0x3, +0x41,0x3,0xee,0x2,0x65,0x2,0x10,0x2,0xf7,0x1,0xdb,0x1, +0x4e,0x1,0x4d,0x0,0x89,0xff,0x58,0xff,0x4e,0xff,0x14,0xff, +0xb2,0xfe,0x64,0xfe,0x62,0xfe,0x90,0xfe,0xbe,0xfe,0xfc,0xfe, +0x61,0xff,0xef,0xff,0x91,0x0,0x1f,0x1,0xb5,0x1,0x78,0x2, +0x35,0x3,0xe4,0x3,0x97,0x4,0x7,0x5,0x2b,0x5,0x49,0x5, +0x74,0x5,0xac,0x5,0xc4,0x5,0x79,0x5,0x1a,0x5,0xc,0x5, +0x1f,0x5,0x9,0x5,0xc7,0x4,0x6e,0x4,0x15,0x4,0xc8,0x3, +0x83,0x3,0x21,0x3,0x95,0x2,0x1c,0x2,0xd3,0x1,0x99,0x1, +0x4f,0x1,0xf4,0x0,0xd1,0x0,0xa,0x1,0x31,0x1,0x6,0x1, +0xca,0x0,0xab,0x0,0xa4,0x0,0x87,0x0,0x17,0x0,0x80,0xff, +0x1e,0xff,0xef,0xfe,0xa7,0xfe,0x3c,0xfe,0xf8,0xfd,0xe7,0xfd, +0xd1,0xfd,0xbf,0xfd,0xcb,0xfd,0xe7,0xfd,0xfc,0xfd,0xc,0xfe, +0x30,0xfe,0x69,0xfe,0xb3,0xfe,0x20,0xff,0x8b,0xff,0xe4,0xff, +0x63,0x0,0xfb,0x0,0x83,0x1,0xf5,0x1,0x28,0x2,0x2f,0x2, +0x37,0x2,0x24,0x2,0xf4,0x1,0xbd,0x1,0x68,0x1,0xa,0x1, +0xae,0x0,0x42,0x0,0xe1,0xff,0x90,0xff,0x34,0xff,0xd8,0xfe, +0x9b,0xfe,0x84,0xfe,0x7f,0xfe,0x89,0xfe,0xcb,0xfe,0x61,0xff, +0x21,0x0,0xd5,0x0,0x7f,0x1,0x3e,0x2,0x1b,0x3,0xfd,0x3, +0xa0,0x4,0xcf,0x4,0xc5,0x4,0xb7,0x4,0x8b,0x4,0x28,0x4, +0x7c,0x3,0xa9,0x2,0xe9,0x1,0x16,0x1,0x1f,0x0,0x2e,0xff, +0xee,0xfd,0x3f,0xfc,0x9c,0xfa,0xf,0xf9,0x4d,0xf7,0x3e,0xf5, +0xe3,0xf2,0x8e,0xf0,0x92,0xee,0xb5,0xec,0xb0,0xea,0xae,0xe8, +0xe6,0xe6,0x60,0xe5,0x33,0xe4,0x42,0xe3,0x28,0xe2,0xed,0xe0, +0x8,0xe0,0x73,0xdf,0xd4,0xde,0x15,0xde,0x3d,0xdd,0x6b,0xdc, +0xc1,0xdb,0x1f,0xdb,0x5e,0xda,0x7f,0xd9,0x95,0xd8,0xc9,0xd7, +0x23,0xd7,0x86,0xd6,0xe2,0xd5,0x2f,0xd5,0x89,0xd4,0x21,0xd4, +0xdd,0xd3,0x9b,0xd3,0x72,0xd3,0x66,0xd3,0x60,0xd3,0x64,0xd3, +0x74,0xd3,0x8a,0xd3,0xc4,0xd3,0x3f,0xd4,0xe0,0xd4,0x94,0xd5, +0x5b,0xd6,0x21,0xd7,0x2,0xd8,0x43,0xd9,0xa6,0xda,0xbe,0xdb, +0xad,0xdc,0xa0,0xdd,0x7f,0xde,0x5e,0xdf,0x5e,0xe0,0x45,0xe1, +0xfb,0xe1,0xe4,0xe2,0x22,0xe4,0x78,0xe5,0xf1,0xe6,0x91,0xe8, +0x33,0xea,0xfa,0xeb,0xe9,0xed,0xad,0xef,0x55,0xf1,0x21,0xf3, +0x0,0xf5,0xc5,0xf6,0x57,0xf8,0xca,0xf9,0x62,0xfb,0x35,0xfd, +0x16,0xff,0xdb,0x0,0x83,0x2,0x20,0x4,0xc0,0x5,0x56,0x7, +0xcc,0x8,0x1b,0xa,0x34,0xb,0x16,0xc,0xef,0xc,0xc3,0xd, +0x8a,0xe,0x3d,0xf,0x96,0xf,0xc3,0xf,0x46,0x10,0xf2,0x10, +0x7e,0x11,0xf9,0x11,0x59,0x12,0xe4,0x12,0xb9,0x13,0x36,0x14, +0x40,0x14,0x72,0x14,0xe6,0x14,0x4c,0x15,0x7f,0x15,0x6f,0x15, +0x3c,0x15,0xd,0x15,0xcf,0x14,0x66,0x14,0xe1,0x13,0x3b,0x13, +0x80,0x12,0xfd,0x11,0x9b,0x11,0x0,0x11,0x43,0x10,0x8d,0xf, +0xe4,0xe,0x47,0xe,0x80,0xd,0x8a,0xc,0x7e,0xb,0x49,0xa, +0x35,0x9,0x72,0x8,0xb2,0x7,0xb,0x7,0x8e,0x6,0xf4,0x5, +0x6e,0x5,0x38,0x5,0x1e,0x5,0x6,0x5,0xe6,0x4,0x8f,0x4, +0xf2,0x3,0x23,0x3,0x3e,0x2,0x5a,0x1,0x78,0x0,0x86,0xff, +0x6d,0xfe,0x47,0xfd,0x43,0xfc,0x73,0xfb,0xc2,0xfa,0x2,0xfa, +0x32,0xf9,0x7a,0xf8,0xd9,0xf7,0x5c,0xf7,0x16,0xf7,0xe1,0xf6, +0xaf,0xf6,0x97,0xf6,0x8c,0xf6,0xab,0xf6,0x2,0xf7,0x5f,0xf7, +0xb4,0xf7,0x4,0xf8,0x37,0xf8,0x54,0xf8,0x83,0xf8,0xdc,0xf8, +0x47,0xf9,0xa6,0xf9,0x8,0xfa,0x70,0xfa,0xe4,0xfa,0x88,0xfb, +0x2e,0xfc,0x9a,0xfc,0x6,0xfd,0x97,0xfd,0x27,0xfe,0x8e,0xfe, +0xbc,0xfe,0xf2,0xfe,0x87,0xff,0x64,0x0,0x2a,0x1,0xb8,0x1, +0x82,0x2,0xd4,0x3,0x1e,0x5,0xf1,0x5,0x93,0x6,0x50,0x7, +0x39,0x8,0x1a,0x9,0x8f,0x9,0x9b,0x9,0x96,0x9,0xc4,0x9, +0x2c,0xa,0x7e,0xa,0x7f,0xa,0x53,0xa,0x35,0xa,0x5c,0xa, +0xa8,0xa,0xbb,0xa,0x8b,0xa,0x40,0xa,0x4,0xa,0xf1,0x9, +0xea,0x9,0xb9,0x9,0x62,0x9,0x38,0x9,0x5c,0x9,0x68,0x9, +0x1c,0x9,0xa8,0x8,0x67,0x8,0xb0,0x8,0x1a,0x9,0xcc,0x8, +0x3,0x8,0x81,0x7,0x49,0x7,0x25,0x7,0xee,0x6,0x67,0x6, +0x89,0x5,0xad,0x4,0x2b,0x4,0xf0,0x3,0xa9,0x3,0x2d,0x3, +0x88,0x2,0xf8,0x1,0xc3,0x1,0xca,0x1,0xb9,0x1,0x9a,0x1, +0x9f,0x1,0xae,0x1,0x98,0x1,0x70,0x1,0x54,0x1,0x68,0x1, +0xa1,0x1,0x88,0x1,0xfa,0x0,0x6a,0x0,0xb,0x0,0xda,0xff, +0xdd,0xff,0xd1,0xff,0x81,0xff,0xff,0xfe,0x7a,0xfe,0x3b,0xfe, +0x4c,0xfe,0x5f,0xfe,0x24,0xfe,0x9b,0xfd,0x38,0xfd,0x60,0xfd, +0xc9,0xfd,0x11,0xfe,0x41,0xfe,0x8f,0xfe,0x1f,0xff,0xea,0xff, +0xb7,0x0,0x69,0x1,0x46,0x2,0x7b,0x3,0xa1,0x4,0x6b,0x5, +0xa,0x6,0xc6,0x6,0xd0,0x7,0x8,0x9,0xd8,0x9,0x7,0xa, +0x12,0xa,0x80,0xa,0x40,0xb,0xdc,0xb,0x16,0xc,0x1d,0xc, +0x3f,0xc,0xa6,0xc,0x2c,0xd,0x9a,0xd,0xf6,0xd,0x4e,0xe, +0xaa,0xe,0xc,0xf,0x56,0xf,0xa0,0xf,0x22,0x10,0xb4,0x10, +0x35,0x11,0xb6,0x11,0x1c,0x12,0x62,0x12,0xb3,0x12,0xf,0x13, +0x72,0x13,0xba,0x13,0xb7,0x13,0x91,0x13,0x78,0x13,0x48,0x13, +0x7,0x13,0xc1,0x12,0x5c,0x12,0xf5,0x11,0xa9,0x11,0x5d,0x11, +0xc,0x11,0xb9,0x10,0x6f,0x10,0x47,0x10,0x3f,0x10,0x3f,0x10, +0x32,0x10,0x14,0x10,0xf5,0xf,0xe4,0xf,0xd9,0xf,0xb9,0xf, +0x83,0xf,0x49,0xf,0xf3,0xe,0x75,0xe,0xf2,0xd,0x71,0xd, +0xdd,0xc,0x1c,0xc,0x1f,0xb,0x19,0xa,0x3e,0x9,0x73,0x8, +0x95,0x7,0x8d,0x6,0x69,0x5,0x6c,0x4,0xc2,0x3,0x4f,0x3, +0xb4,0x2,0xe3,0x1,0x59,0x1,0x40,0x1,0x3d,0x1,0x11,0x1, +0xc8,0x0,0x94,0x0,0x83,0x0,0x6c,0x0,0x4f,0x0,0x47,0x0, +0x52,0x0,0x5b,0x0,0x42,0x0,0x19,0x0,0x4,0x0,0xfc,0xff, +0xf9,0xff,0xf7,0xff,0xe1,0xff,0x92,0xff,0xfd,0xfe,0x6c,0xfe, +0x1b,0xfe,0xe7,0xfd,0xbb,0xfd,0x82,0xfd,0x35,0xfd,0xe,0xfd, +0x26,0xfd,0x77,0xfd,0x3,0xfe,0x8b,0xfe,0xd3,0xfe,0xfe,0xfe, +0x45,0xff,0xb3,0xff,0x16,0x0,0x45,0x0,0x4b,0x0,0x52,0x0, +0x83,0x0,0xbd,0x0,0xe0,0x0,0x19,0x1,0x61,0x1,0x92,0x1, +0xc3,0x1,0xda,0x1,0xd1,0x1,0xef,0x1,0x24,0x2,0x2f,0x2, +0xa,0x2,0xbf,0x1,0x6f,0x1,0x60,0x1,0x94,0x1,0xc5,0x1, +0xb4,0x1,0x6e,0x1,0x5c,0x1,0xba,0x1,0x37,0x2,0x8d,0x2, +0xdd,0x2,0x36,0x3,0x97,0x3,0xea,0x3,0x2,0x4,0x10,0x4, +0x3e,0x4,0x43,0x4,0x3,0x4,0x9d,0x3,0x34,0x3,0xc,0x3, +0xf2,0x2,0x86,0x2,0x1c,0x2,0x3,0x2,0xfe,0x1,0xe1,0x1, +0xb1,0x1,0x8b,0x1,0x86,0x1,0x69,0x1,0xfd,0x0,0x73,0x0, +0x17,0x0,0xf5,0xff,0xdb,0xff,0x8c,0xff,0x28,0xff,0x1,0xff, +0x23,0xff,0x5f,0xff,0xa2,0xff,0xf1,0xff,0x48,0x0,0x77,0x0, +0x70,0x0,0x71,0x0,0x73,0x0,0x32,0x0,0xba,0xff,0x3b,0xff, +0xd4,0xfe,0x94,0xfe,0x4e,0xfe,0xe5,0xfd,0xb3,0xfd,0x9,0xfe, +0x92,0xfe,0xc3,0xfe,0xb2,0xfe,0xcf,0xfe,0x35,0xff,0xae,0xff, +0xef,0xff,0xf1,0xff,0x4,0x0,0x35,0x0,0x65,0x0,0xa8,0x0, +0xf,0x1,0xb3,0x1,0x77,0x2,0x12,0x3,0xa3,0x3,0x4b,0x4, +0xe4,0x4,0x69,0x5,0xd7,0x5,0x37,0x6,0x9a,0x6,0xb0,0x6, +0x83,0x6,0x9d,0x6,0xfd,0x6,0x45,0x7,0x67,0x7,0x6a,0x7, +0x6a,0x7,0x7c,0x7,0x6b,0x7,0x6,0x7,0x7e,0x6,0xf9,0x5, +0x4d,0x5,0x5d,0x4,0x4a,0x3,0x36,0x2,0x39,0x1,0x41,0x0, +0x11,0xff,0x9c,0xfd,0x1f,0xfc,0xd4,0xfa,0xa7,0xf9,0x53,0xf8, +0xb0,0xf6,0xe3,0xf4,0x3e,0xf3,0xcb,0xf1,0x4d,0xf0,0xc4,0xee, +0x4e,0xed,0xee,0xeb,0xaa,0xea,0x6f,0xe9,0x45,0xe8,0x51,0xe7, +0x6c,0xe6,0x76,0xe5,0x80,0xe4,0x82,0xe3,0x85,0xe2,0x90,0xe1, +0x93,0xe0,0xb6,0xdf,0xff,0xde,0x3c,0xde,0x65,0xdd,0x91,0xdc, +0xec,0xdb,0x91,0xdb,0x33,0xdb,0x7b,0xda,0x82,0xd9,0xac,0xd8, +0x1c,0xd8,0x8c,0xd7,0xc3,0xd6,0xd8,0xd5,0x11,0xd5,0x97,0xd4, +0x3d,0xd4,0xf4,0xd3,0xf4,0xd3,0x33,0xd4,0x91,0xd4,0x15,0xd5, +0xb8,0xd5,0x82,0xd6,0x7a,0xd7,0x7b,0xd8,0x8f,0xd9,0xd3,0xda, +0x9,0xdc,0xf6,0xdc,0xe6,0xdd,0x24,0xdf,0x89,0xe0,0xe5,0xe1, +0x11,0xe3,0xb,0xe4,0x2a,0xe5,0x8a,0xe6,0xeb,0xe7,0x3b,0xe9, +0x6c,0xea,0x77,0xeb,0xa5,0xec,0xfd,0xed,0x4a,0xef,0x82,0xf0, +0xbc,0xf1,0x20,0xf3,0xb9,0xf4,0x4c,0xf6,0xb6,0xf7,0x1c,0xf9, +0xb1,0xfa,0x82,0xfc,0x71,0xfe,0x37,0x0,0xb2,0x1,0x30,0x3, +0xfd,0x4,0xd8,0x6,0x5e,0x8,0x9d,0x9,0xd6,0xa,0xa,0xc, +0xa,0xd,0xc9,0xd,0x63,0xe,0xeb,0xe,0x53,0xf,0x94,0xf, +0xd8,0xf,0x22,0x10,0x3e,0x10,0x46,0x10,0x6a,0x10,0xa4,0x10, +0x2,0x11,0x54,0x11,0x61,0x11,0x78,0x11,0xd3,0x11,0x36,0x12, +0x83,0x12,0xcd,0x12,0x1d,0x13,0x72,0x13,0xd1,0x13,0x32,0x14, +0x77,0x14,0xa5,0x14,0xc6,0x14,0xe0,0x14,0xb,0x15,0xa,0x15, +0x9a,0x14,0x7,0x14,0x6c,0x13,0x8d,0x12,0x7b,0x11,0x40,0x10, +0xdb,0xe,0x87,0xd,0x3a,0xc,0xbb,0xa,0x23,0x9,0xc0,0x7, +0xa0,0x6,0xa2,0x5,0xb9,0x4,0xdd,0x3,0x9,0x3,0x4b,0x2, +0x9d,0x1,0x2,0x1,0x86,0x0,0xf7,0xff,0x44,0xff,0xaf,0xfe, +0x3b,0xfe,0xd0,0xfd,0x71,0xfd,0x17,0xfd,0xd8,0xfc,0xce,0xfc, +0xcc,0xfc,0xb2,0xfc,0x9a,0xfc,0x72,0xfc,0x2f,0xfc,0xff,0xfb, +0xbc,0xfb,0x29,0xfb,0x92,0xfa,0x26,0xfa,0xb3,0xf9,0x38,0xf9, +0xba,0xf8,0x32,0xf8,0xcf,0xf7,0xb0,0xf7,0xc4,0xf7,0xe4,0xf7, +0xf7,0xf7,0x8,0xf8,0x43,0xf8,0xc8,0xf8,0x66,0xf9,0xcc,0xf9, +0x21,0xfa,0xae,0xfa,0x5c,0xfb,0xb,0xfc,0xb3,0xfc,0x5d,0xfd, +0x1f,0xfe,0x15,0xff,0x53,0x0,0xa6,0x1,0xd7,0x2,0xf,0x4, +0x55,0x5,0x81,0x6,0xb4,0x7,0xfa,0x8,0x2c,0xa,0x32,0xb, +0xe2,0xb,0x34,0xc,0x7e,0xc,0xd,0xd,0xb8,0xd,0x2d,0xe, +0x76,0xe,0xbc,0xe,0xfd,0xe,0x42,0xf,0x80,0xf,0xa1,0xf, +0xc0,0xf,0xd7,0xf,0xa1,0xf,0x4,0xf,0x45,0xe,0xc2,0xd, +0x79,0xd,0x3a,0xd,0xec,0xc,0x6c,0xc,0xdf,0xb,0xb0,0xb, +0xdd,0xb,0x42,0xc,0xc2,0xc,0xf0,0xc,0xb6,0xc,0xac,0xc, +0xc,0xd,0x6e,0xd,0x81,0xd,0x34,0xd,0xc7,0xc,0xb4,0xc, +0xd5,0xc,0xa5,0xc,0x35,0xc,0xdf,0xb,0xb5,0xb,0x76,0xb, +0xd1,0xa,0xd,0xa,0x87,0x9,0xec,0x8,0xf8,0x7,0xc6,0x6, +0x7d,0x5,0x63,0x4,0x6d,0x3,0x52,0x2,0x29,0x1,0x12,0x0, +0xed,0xfe,0xbe,0xfd,0xbb,0xfc,0x9,0xfc,0x7b,0xfb,0xce,0xfa, +0x11,0xfa,0x66,0xf9,0xd5,0xf8,0x6f,0xf8,0x3e,0xf8,0x39,0xf8, +0x3c,0xf8,0x15,0xf8,0xc7,0xf7,0xa6,0xf7,0x5,0xf8,0xb4,0xf8, +0x37,0xf9,0x71,0xf9,0xa8,0xf9,0x3c,0xfa,0x31,0xfb,0xfb,0xfb, +0x63,0xfc,0xd8,0xfc,0x97,0xfd,0x6b,0xfe,0x10,0xff,0x7e,0xff, +0xf1,0xff,0x94,0x0,0x5a,0x1,0x4,0x2,0x62,0x2,0x9e,0x2, +0x6,0x3,0xa5,0x3,0x48,0x4,0xb5,0x4,0xed,0x4,0x2c,0x5, +0xa1,0x5,0x38,0x6,0xb9,0x6,0x16,0x7,0x66,0x7,0xb6,0x7, +0x20,0x8,0xa7,0x8,0x2f,0x9,0xb8,0x9,0x4e,0xa,0xf2,0xa, +0xa1,0xb,0x42,0xc,0xe3,0xc,0xba,0xd,0xc2,0xe,0xb4,0xf, +0x5d,0x10,0xee,0x10,0xc1,0x11,0xbb,0x12,0x9a,0x13,0x4f,0x14, +0xd1,0x14,0x35,0x15,0x9d,0x15,0xe5,0x15,0xf2,0x15,0xfc,0x15, +0x10,0x16,0xfb,0x15,0xb9,0x15,0x60,0x15,0xe7,0x14,0x83,0x14, +0x50,0x14,0xff,0x13,0x78,0x13,0xde,0x12,0x31,0x12,0x9c,0x11, +0x35,0x11,0xb3,0x10,0xde,0xf,0xd2,0xe,0xde,0xd,0x35,0xd, +0xbb,0xc,0x2c,0xc,0x5c,0xb,0x94,0xa,0x29,0xa,0xdf,0x9, +0x7c,0x9,0xb,0x9,0x86,0x8,0x16,0x8,0xc8,0x7,0x4a,0x7, +0x9c,0x6,0xf3,0x5,0x6b,0x5,0x10,0x5,0xb2,0x4,0x22,0x4, +0x81,0x3,0xfd,0x2,0xbb,0x2,0xa1,0x2,0x4a,0x2,0xb6,0x1, +0x4f,0x1,0x33,0x1,0x30,0x1,0xff,0x0,0x70,0x0,0xc7,0xff, +0x6f,0xff,0x52,0xff,0x22,0xff,0xc0,0xfe,0x31,0xfe,0xb0,0xfd, +0x60,0xfd,0x21,0xfd,0xda,0xfc,0x7f,0xfc,0x1a,0xfc,0xdc,0xfb, +0xb5,0xfb,0x81,0xfb,0x36,0xfb,0xc9,0xfa,0x76,0xfa,0x77,0xfa, +0x89,0xfa,0x65,0xfa,0x1f,0xfa,0x21,0xfa,0xb9,0xfa,0x83,0xfb, +0xf3,0xfb,0x36,0xfc,0xe4,0xfc,0x1d,0xfe,0x59,0xff,0x1a,0x0, +0x81,0x0,0xf6,0x0,0xc1,0x1,0x98,0x2,0xd8,0x2,0x8e,0x2, +0x40,0x2,0x17,0x2,0xf9,0x1,0xc7,0x1,0x96,0x1,0x90,0x1, +0x88,0x1,0x45,0x1,0xed,0x0,0xc1,0x0,0xe4,0x0,0x3c,0x1, +0x87,0x1,0xa9,0x1,0x97,0x1,0x71,0x1,0x88,0x1,0xe6,0x1, +0x54,0x2,0xc4,0x2,0x31,0x3,0x85,0x3,0xdd,0x3,0x6a,0x4, +0x27,0x5,0xe7,0x5,0x68,0x6,0x90,0x6,0x90,0x6,0x85,0x6, +0x67,0x6,0x38,0x6,0xc9,0x5,0x14,0x5,0x6b,0x4,0xdc,0x3, +0x69,0x3,0x2e,0x3,0xf1,0x2,0x90,0x2,0x54,0x2,0x40,0x2, +0x4,0x2,0xab,0x1,0x81,0x1,0x86,0x1,0x72,0x1,0x10,0x1, +0x72,0x0,0xfa,0xff,0xe3,0xff,0xf2,0xff,0x0,0x0,0xc,0x0, +0x11,0x0,0x42,0x0,0x98,0x0,0xcc,0x0,0xf4,0x0,0x27,0x1, +0x3b,0x1,0x2e,0x1,0xfe,0x0,0xbb,0x0,0x99,0x0,0x7f,0x0, +0x45,0x0,0x1d,0x0,0x2c,0x0,0x52,0x0,0x80,0x0,0xae,0x0, +0xda,0x0,0x38,0x1,0xa5,0x1,0xb6,0x1,0xaa,0x1,0xde,0x1, +0x17,0x2,0x35,0x2,0x2d,0x2,0xea,0x1,0xbf,0x1,0xc0,0x1, +0xaf,0x1,0xad,0x1,0xd8,0x1,0x18,0x2,0x6b,0x2,0xaa,0x2, +0xc3,0x2,0xf7,0x2,0x59,0x3,0xa2,0x3,0x8e,0x3,0xe,0x3, +0x53,0x2,0xbb,0x1,0x32,0x1,0x35,0x0,0xd8,0xfe,0xab,0xfd, +0xb1,0xfc,0x9e,0xfb,0x76,0xfa,0x4e,0xf9,0x31,0xf8,0x20,0xf7, +0xe8,0xf5,0x5e,0xf4,0xb0,0xf2,0x10,0xf1,0x65,0xef,0xa2,0xed, +0xde,0xeb,0x15,0xea,0x51,0xe8,0xb1,0xe6,0x45,0xe5,0x1f,0xe4, +0x31,0xe3,0x4e,0xe2,0x70,0xe1,0xa2,0xe0,0xf0,0xdf,0x6d,0xdf, +0xea,0xde,0x2b,0xde,0x44,0xdd,0x6f,0xdc,0xb2,0xdb,0xf6,0xda, +0x37,0xda,0x62,0xd9,0x83,0xd8,0xe8,0xd7,0x91,0xd7,0x41,0xd7, +0xe7,0xd6,0x74,0xd6,0x1b,0xd6,0x1d,0xd6,0x12,0xd6,0xa6,0xd5, +0x2d,0xd5,0xea,0xd4,0xd7,0xd4,0xce,0xd4,0x9b,0xd4,0x6a,0xd4, +0xa1,0xd4,0x32,0xd5,0xc6,0xd5,0x57,0xd6,0x21,0xd7,0x3f,0xd8, +0x8f,0xd9,0xc3,0xda,0xc6,0xdb,0xd9,0xdc,0x14,0xde,0x4c,0xdf, +0x63,0xe0,0x45,0xe1,0x4,0xe2,0xed,0xe2,0x14,0xe4,0x3f,0xe5, +0x64,0xe6,0xbf,0xe7,0x6e,0xe9,0x3f,0xeb,0x0,0xed,0xc0,0xee, +0x9a,0xf0,0x89,0xf2,0x63,0xf4,0xf5,0xf5,0x44,0xf7,0x90,0xf8, +0xe6,0xf9,0x2f,0xfb,0x7f,0xfc,0xe9,0xfd,0x5b,0xff,0xd3,0x0, +0x40,0x2,0xa1,0x3,0x3b,0x5,0xed,0x6,0x48,0x8,0x4d,0x9, +0x31,0xa,0x10,0xb,0xe2,0xb,0x5c,0xc,0x80,0xc,0xae,0xc, +0x2,0xd,0x5c,0xd,0x90,0xd,0xb2,0xd,0x2d,0xe,0xf8,0xe, +0xaf,0xf,0x40,0x10,0xbb,0x10,0x23,0x11,0x8d,0x11,0xd9,0x11, +0xe7,0x11,0x8,0x12,0x6c,0x12,0xaf,0x12,0xa5,0x12,0x8b,0x12, +0x78,0x12,0x7b,0x12,0x92,0x12,0x63,0x12,0xf0,0x11,0x8e,0x11, +0x3c,0x11,0xd5,0x10,0x42,0x10,0x7a,0xf,0x97,0xe,0x81,0xd, +0x36,0xc,0xfd,0xa,0xcc,0x9,0x8e,0x8,0x7a,0x7,0x9c,0x6, +0xd6,0x5,0x24,0x5,0x7d,0x4,0xf6,0x3,0xb1,0x3,0x82,0x3, +0x2b,0x3,0xb8,0x2,0x38,0x2,0x99,0x1,0xf5,0x0,0x54,0x0, +0xa6,0xff,0x0,0xff,0x6c,0xfe,0xe0,0xfd,0x7d,0xfd,0x4f,0xfd, +0x3d,0xfd,0xf,0xfd,0xa8,0xfc,0x57,0xfc,0x59,0xfc,0x77,0xfc, +0x4d,0xfc,0xc1,0xfb,0x4e,0xfb,0x54,0xfb,0x77,0xfb,0x73,0xfb, +0x6f,0xfb,0x89,0xfb,0xc4,0xfb,0xa,0xfc,0x53,0xfc,0xa8,0xfc, +0xed,0xfc,0x2a,0xfd,0x6a,0xfd,0x7e,0xfd,0x68,0xfd,0x4e,0xfd, +0x29,0xfd,0xfc,0xfc,0xd9,0xfc,0xc7,0xfc,0xb1,0xfc,0x91,0xfc, +0x9b,0xfc,0xe1,0xfc,0x54,0xfd,0xe9,0xfd,0x85,0xfe,0x27,0xff, +0xec,0xff,0xd1,0x0,0xe2,0x1,0x2b,0x3,0x8c,0x4,0xdb,0x5, +0x15,0x7,0x6a,0x8,0xd4,0x9,0x1b,0xb,0x5d,0xc,0xa7,0xd, +0xb9,0xe,0x95,0xf,0x44,0x10,0xae,0x10,0xf0,0x10,0x1b,0x11, +0x17,0x11,0xcf,0x10,0x3c,0x10,0x72,0xf,0x81,0xe,0x73,0xd, +0x72,0xc,0xa2,0xb,0xea,0xa,0x8,0xa,0xf3,0x8,0xfd,0x7, +0x74,0x7,0x53,0x7,0x3e,0x7,0xc7,0x6,0xf8,0x5,0x5d,0x5, +0x51,0x5,0x8b,0x5,0x86,0x5,0x3b,0x5,0xfe,0x4,0xfc,0x4, +0x1d,0x5,0x26,0x5,0x8,0x5,0xe6,0x4,0xd1,0x4,0xb8,0x4, +0x50,0x4,0x74,0x3,0xa0,0x2,0x38,0x2,0xf0,0x1,0x6f,0x1, +0x9d,0x0,0x9c,0xff,0xd6,0xfe,0x98,0xfe,0xad,0xfe,0x96,0xfe, +0xa,0xfe,0x50,0xfd,0xe3,0xfc,0xd9,0xfc,0xd2,0xfc,0x88,0xfc, +0x12,0xfc,0x98,0xfb,0x59,0xfb,0x57,0xfb,0x32,0xfb,0xed,0xfa, +0xe4,0xfa,0x1f,0xfb,0x60,0xfb,0x57,0xfb,0x1,0xfb,0xe4,0xfa, +0x38,0xfb,0xa6,0xfb,0xe9,0xfb,0xd9,0xfb,0xa2,0xfb,0xe6,0xfb, +0xc6,0xfc,0xac,0xfd,0x49,0xfe,0xdc,0xfe,0xa3,0xff,0xa7,0x0, +0xe5,0x1,0x20,0x3,0xc,0x4,0xee,0x4,0x2d,0x6,0x8a,0x7, +0x94,0x8,0x49,0x9,0xee,0x9,0xd9,0xa,0x6,0xc,0xce,0xc, +0xcb,0xc,0x80,0xc,0x82,0xc,0xd0,0xc,0xf3,0xc,0x8e,0xc, +0xf5,0xb,0x9a,0xb,0x66,0xb,0x42,0xb,0x37,0xb,0x2a,0xb, +0x35,0xb,0x72,0xb,0xc6,0xb,0x28,0xc,0x98,0xc,0x2c,0xd, +0xed,0xd,0xae,0xe,0x6e,0xf,0x38,0x10,0xe2,0x10,0x89,0x11, +0x7a,0x12,0x97,0x13,0x7c,0x14,0x1,0x15,0x56,0x15,0xbe,0x15, +0x4c,0x16,0xd2,0x16,0xf0,0x16,0x8a,0x16,0xea,0x15,0x49,0x15, +0xb1,0x14,0x6,0x14,0x27,0x13,0x1c,0x12,0xfb,0x10,0xe9,0xf, +0x12,0xf,0x43,0xe,0x55,0xd,0x95,0xc,0x19,0xc,0xa1,0xb, +0x8,0xb,0x53,0xa,0xc5,0x9,0x90,0x9,0x61,0x9,0xd7,0x8, +0x18,0x8,0x84,0x7,0x58,0x7,0x61,0x7,0x2e,0x7,0xce,0x6, +0xaf,0x6,0xb3,0x6,0x8e,0x6,0x5b,0x6,0x37,0x6,0x2c,0x6, +0x1e,0x6,0xaf,0x5,0xff,0x4,0x94,0x4,0x73,0x4,0x63,0x4, +0x40,0x4,0xec,0x3,0x92,0x3,0x6f,0x3,0x77,0x3,0x82,0x3, +0x75,0x3,0x5a,0x3,0x56,0x3,0x53,0x3,0x12,0x3,0x71,0x2, +0xaf,0x1,0x3f,0x1,0x3,0x1,0x7f,0x0,0xb2,0xff,0xe2,0xfe, +0x48,0xfe,0x9,0xfe,0xfc,0xfd,0xea,0xfd,0xe8,0xfd,0x4,0xfe, +0x33,0xfe,0x85,0xfe,0xe,0xff,0xbc,0xff,0x54,0x0,0xbc,0x0, +0x30,0x1,0xe5,0x1,0xc5,0x2,0x92,0x3,0x30,0x4,0xc5,0x4, +0x82,0x5,0x4e,0x6,0xd9,0x6,0xa,0x7,0x35,0x7,0x97,0x7, +0xf2,0x7,0xe3,0x7,0x4d,0x7,0x8a,0x6,0x20,0x6,0xff,0x5, +0xa5,0x5,0xd9,0x4,0xcb,0x3,0xd2,0x2,0x36,0x2,0xec,0x1, +0x9f,0x1,0xa,0x1,0x4b,0x0,0xc8,0xff,0xa9,0xff,0xbf,0xff, +0xdb,0xff,0xde,0xff,0xcc,0xff,0xf1,0xff,0x54,0x0,0x88,0x0, +0x87,0x0,0xab,0x0,0xeb,0x0,0x2d,0x1,0x50,0x1,0x18,0x1, +0xec,0x0,0x34,0x1,0x77,0x1,0x77,0x1,0x5e,0x1,0x2c,0x1, +0x8,0x1,0xf7,0x0,0xcc,0x0,0xa5,0x0,0x66,0x0,0xdb,0xff, +0x52,0xff,0x1,0xff,0xdd,0xfe,0xb9,0xfe,0x56,0xfe,0xe4,0xfd, +0xbb,0xfd,0xb7,0xfd,0x95,0xfd,0x5b,0xfd,0x17,0xfd,0xb6,0xfc, +0x43,0xfc,0xdc,0xfb,0x71,0xfb,0x9,0xfb,0xaf,0xfa,0x30,0xfa, +0x9e,0xf9,0x31,0xf9,0xdc,0xf8,0xb1,0xf8,0xbb,0xf8,0xb7,0xf8, +0x95,0xf8,0x7b,0xf8,0x94,0xf8,0xfc,0xf8,0x9a,0xf9,0x3d,0xfa, +0xdc,0xfa,0x8c,0xfb,0x6d,0xfc,0x85,0xfd,0xc2,0xfe,0xec,0xff, +0xd5,0x0,0xb6,0x1,0xb6,0x2,0xaf,0x3,0x86,0x4,0x27,0x5, +0xaa,0x5,0x5a,0x6,0x20,0x7,0xa5,0x7,0xd2,0x7,0xf0,0x7, +0x5c,0x8,0xd6,0x8,0xb8,0x8,0xfc,0x7,0x20,0x7,0x6b,0x6, +0xc6,0x5,0xeb,0x4,0xb7,0x3,0x61,0x2,0x53,0x1,0xb5,0x0, +0x38,0x0,0xa7,0xff,0xa,0xff,0x73,0xfe,0x1,0xfe,0xbd,0xfd, +0x6b,0xfd,0xc1,0xfc,0xd4,0xfb,0x2,0xfb,0x43,0xfa,0x57,0xf9, +0x54,0xf8,0x4c,0xf7,0x57,0xf6,0xb8,0xf5,0x3b,0xf5,0x92,0xf4, +0xc4,0xf3,0xdd,0xf2,0x24,0xf2,0xae,0xf1,0xde,0xf0,0x6e,0xef, +0xd4,0xed,0x69,0xec,0x18,0xeb,0x9b,0xe9,0xe3,0xe7,0x2c,0xe6, +0xaf,0xe4,0x77,0xe3,0x4a,0xe2,0xed,0xe0,0x87,0xdf,0x57,0xde, +0x68,0xdd,0x7f,0xdc,0x57,0xdb,0xff,0xd9,0xae,0xd8,0x91,0xd7, +0xba,0xd6,0xe8,0xd5,0xf9,0xd4,0x31,0xd4,0xb6,0xd3,0x97,0xd3, +0xcf,0xd3,0x17,0xd4,0x6e,0xd4,0x20,0xd5,0x25,0xd6,0x42,0xd7, +0x4f,0xd8,0x3c,0xd9,0x30,0xda,0x53,0xdb,0x83,0xdc,0x96,0xdd, +0x9c,0xde,0xac,0xdf,0xd4,0xe0,0x27,0xe2,0x95,0xe3,0x1,0xe5, +0x63,0xe6,0xb1,0xe7,0xf8,0xe8,0x49,0xea,0x7d,0xeb,0x64,0xec, +0xf6,0xec,0x66,0xed,0xf5,0xed,0x97,0xee,0xc,0xef,0x4b,0xef, +0x90,0xef,0x26,0xf0,0x2c,0xf1,0x6e,0xf2,0xa3,0xf3,0xd0,0xf4, +0x33,0xf6,0xd1,0xf7,0x80,0xf9,0x2f,0xfb,0xce,0xfc,0x7a,0xfe, +0x59,0x0,0x15,0x2,0x84,0x3,0x12,0x5,0xd5,0x6,0x9e,0x8, +0x78,0xa,0x3c,0xc,0xd0,0xd,0x67,0xf,0xf2,0x10,0x47,0x12, +0x78,0x13,0x81,0x14,0x4a,0x15,0xc0,0x15,0xf3,0x15,0x2c,0x16, +0x61,0x16,0x46,0x16,0xed,0x15,0x6d,0x15,0xd2,0x14,0x60,0x14, +0x12,0x14,0xa1,0x13,0x1e,0x13,0xa2,0x12,0x28,0x12,0xbd,0x11, +0x41,0x11,0xa5,0x10,0x3,0x10,0x4b,0xf,0x8c,0xe,0xf9,0xd, +0x71,0xd,0xcf,0xc,0x3a,0xc,0xcb,0xb,0x74,0xb,0xd,0xb, +0x81,0xa,0x0,0xa,0xa6,0x9,0x50,0x9,0xdd,0x8,0x25,0x8, +0x39,0x7,0x83,0x6,0x23,0x6,0xb5,0x5,0xf0,0x4,0x4,0x4, +0x47,0x3,0xcf,0x2,0x69,0x2,0xd8,0x1,0x16,0x1,0x43,0x0, +0x83,0xff,0xe6,0xfe,0x4f,0xfe,0x96,0xfd,0xdc,0xfc,0x43,0xfc, +0xc1,0xfb,0x56,0xfb,0x4,0xfb,0xd7,0xfa,0xd8,0xfa,0xe2,0xfa, +0xc8,0xfa,0x8d,0xfa,0x53,0xfa,0x48,0xfa,0x58,0xfa,0x4b,0xfa, +0x33,0xfa,0x45,0xfa,0x84,0xfa,0xea,0xfa,0x86,0xfb,0x47,0xfc, +0x8,0xfd,0xc8,0xfd,0x80,0xfe,0x14,0xff,0x9c,0xff,0x4c,0x0, +0x12,0x1,0xb9,0x1,0x29,0x2,0x8a,0x2,0x26,0x3,0x1a,0x4, +0x3a,0x5,0x48,0x6,0x24,0x7,0xef,0x7,0xe2,0x8,0x12,0xa, +0x3a,0xb,0xf6,0xb,0x4d,0xc,0x8a,0xc,0xd6,0xc,0x36,0xd, +0x75,0xd,0x6c,0xd,0x5d,0xd,0x6b,0xd,0x77,0xd,0x84,0xd, +0x9c,0xd,0xc9,0xd,0x9,0xe,0x1c,0xe,0xf0,0xd,0xc8,0xd, +0xc8,0xd,0xcb,0xd,0xa2,0xd,0x51,0xd,0xfe,0xc,0xbc,0xc, +0x7f,0xc,0x32,0xc,0xe,0xc,0x5a,0xc,0xb5,0xc,0xb1,0xc, +0x8b,0xc,0x9c,0xc,0xf6,0xc,0x6c,0xd,0x99,0xd,0x38,0xd, +0x68,0xc,0xa9,0xb,0x3b,0xb,0xb5,0xa,0xc8,0x9,0x97,0x8, +0x49,0x7,0x1e,0x6,0x58,0x5,0xd5,0x4,0x31,0x4,0x37,0x3, +0x36,0x2,0x8a,0x1,0x2,0x1,0x4a,0x0,0x5d,0xff,0x69,0xfe, +0x90,0xfd,0xaa,0xfc,0x90,0xfb,0x79,0xfa,0xb4,0xf9,0x77,0xf9, +0x84,0xf9,0x3e,0xf9,0xa7,0xf8,0x5f,0xf8,0x9d,0xf8,0x17,0xf9, +0x74,0xf9,0x7d,0xf9,0x33,0xf9,0xd1,0xf8,0x8b,0xf8,0x74,0xf8, +0x96,0xf8,0xc9,0xf8,0xd7,0xf8,0xda,0xf8,0x3,0xf9,0x83,0xf9, +0x80,0xfa,0xae,0xfb,0xab,0xfc,0x77,0xfd,0x25,0xfe,0xd2,0xfe, +0x9b,0xff,0x6c,0x0,0x37,0x1,0xd5,0x1,0x28,0x2,0x60,0x2, +0xa2,0x2,0xe,0x3,0xbd,0x3,0x66,0x4,0xca,0x4,0x6,0x5, +0x47,0x5,0xaa,0x5,0x2a,0x6,0xbe,0x6,0x62,0x7,0xd4,0x7, +0x3,0x8,0x34,0x8,0x9a,0x8,0x58,0x9,0x3b,0xa,0xe2,0xa, +0x66,0xb,0x3,0xc,0xc8,0xc,0xc9,0xd,0xe5,0xe,0xf0,0xf, +0xe8,0x10,0xbb,0x11,0x6c,0x12,0x12,0x13,0xb8,0x13,0x74,0x14, +0x18,0x15,0x42,0x15,0xe,0x15,0xe7,0x14,0xe8,0x14,0xe7,0x14, +0xcd,0x14,0x91,0x14,0x54,0x14,0x34,0x14,0xf7,0x13,0x7e,0x13, +0x2a,0x13,0x1d,0x13,0x2,0x13,0x95,0x12,0xc0,0x11,0xdf,0x10, +0x6b,0x10,0x3c,0x10,0xd8,0xf,0x22,0xf,0x6d,0xe,0x0,0xe, +0xb3,0xd,0x58,0xd,0xfb,0xc,0x91,0xc,0x1d,0xc,0xb1,0xb, +0x3c,0xb,0xa5,0xa,0xde,0x9,0xb,0x9,0x6d,0x8,0xf8,0x7, +0x64,0x7,0x95,0x6,0xc2,0x5,0x4b,0x5,0x2a,0x5,0x8,0x5, +0xb6,0x4,0x3c,0x4,0xdf,0x3,0xd2,0x3,0xcb,0x3,0x90,0x3, +0x48,0x3,0x23,0x3,0x22,0x3,0x8,0x3,0xc7,0x2,0x8e,0x2, +0x4f,0x2,0xfb,0x1,0xa3,0x1,0x4d,0x1,0x1,0x1,0xb1,0x0, +0x49,0x0,0xf3,0xff,0xc0,0xff,0x7d,0xff,0x17,0xff,0xa5,0xfe, +0x46,0xfe,0xd,0xfe,0x4,0xfe,0xc,0xfe,0xf8,0xfd,0xf8,0xfd, +0x4d,0xfe,0xca,0xfe,0x4d,0xff,0xea,0xff,0x88,0x0,0x14,0x1, +0x94,0x1,0x4,0x2,0x67,0x2,0xcd,0x2,0x37,0x3,0x88,0x3, +0xa9,0x3,0xae,0x3,0xbe,0x3,0xd6,0x3,0xd6,0x3,0xb8,0x3, +0x93,0x3,0x6a,0x3,0x42,0x3,0x2f,0x3,0x1b,0x3,0xe6,0x2, +0xa5,0x2,0x79,0x2,0x66,0x2,0x4f,0x2,0x23,0x2,0xa,0x2, +0x2a,0x2,0x69,0x2,0x99,0x2,0xa3,0x2,0xaf,0x2,0xf3,0x2, +0x60,0x3,0xae,0x3,0xa1,0x3,0x63,0x3,0x5d,0x3,0x9b,0x3, +0xc3,0x3,0xba,0x3,0x8f,0x3,0x40,0x3,0xfe,0x2,0xef,0x2, +0xbd,0x2,0x35,0x2,0x9f,0x1,0x23,0x1,0xae,0x0,0x37,0x0, +0xa0,0xff,0xf,0xff,0xf0,0xfe,0xf,0xff,0xf2,0xfe,0x9c,0xfe, +0x50,0xfe,0x3d,0xfe,0x60,0xfe,0x71,0xfe,0x2f,0xfe,0xb2,0xfd, +0x57,0xfd,0x59,0xfd,0x71,0xfd,0x53,0xfd,0x19,0xfd,0xd9,0xfc, +0xac,0xfc,0xa9,0xfc,0x7b,0xfc,0xe9,0xfb,0x47,0xfb,0xca,0xfa, +0x4e,0xfa,0xa3,0xf9,0xb1,0xf8,0xd7,0xf7,0x82,0xf7,0x78,0xf7, +0x61,0xf7,0x5a,0xf7,0x7f,0xf7,0xd1,0xf7,0x4f,0xf8,0xe4,0xf8, +0x74,0xf9,0xf3,0xf9,0x5c,0xfa,0xbd,0xfa,0x1c,0xfb,0x7b,0xfb, +0xdb,0xfb,0x33,0xfc,0xa3,0xfc,0x41,0xfd,0xe9,0xfd,0x77,0xfe, +0xe3,0xfe,0x4d,0xff,0xdd,0xff,0x6d,0x0,0xcf,0x0,0x9,0x1, +0x24,0x1,0x3c,0x1,0x77,0x1,0xbd,0x1,0x10,0x2,0x95,0x2, +0x19,0x3,0x6a,0x3,0xd1,0x3,0x96,0x4,0x7d,0x5,0x2e,0x6, +0x9a,0x6,0xd6,0x6,0x8,0x7,0x36,0x7,0x31,0x7,0x1,0x7, +0xd3,0x6,0x82,0x6,0xe2,0x5,0xfe,0x4,0x7,0x4,0x3f,0x3, +0x99,0x2,0xc9,0x1,0xa9,0x0,0x51,0xff,0x2,0xfe,0xf1,0xfc, +0xeb,0xfb,0xb0,0xfa,0x58,0xf9,0xe5,0xf7,0x4a,0xf6,0xc6,0xf4, +0x6e,0xf3,0xb,0xf2,0x9b,0xf0,0x14,0xef,0x62,0xed,0xc4,0xeb, +0x40,0xea,0xae,0xe8,0x45,0xe7,0x2,0xe6,0xa2,0xe4,0x2f,0xe3, +0xc0,0xe1,0x7a,0xe0,0x93,0xdf,0xc7,0xde,0xbc,0xdd,0x6f,0xdc, +0x11,0xdb,0xee,0xd9,0x17,0xd9,0x5b,0xd8,0xa6,0xd7,0xca,0xd6, +0xaa,0xd5,0xb2,0xd4,0x39,0xd4,0xe,0xd4,0xd9,0xd3,0x78,0xd3, +0x6,0xd3,0xcc,0xd2,0xe9,0xd2,0xff,0xd2,0xd3,0xd2,0xc6,0xd2, +0x13,0xd3,0x78,0xd3,0xbe,0xd3,0xf1,0xd3,0x5c,0xd4,0x48,0xd5, +0x7b,0xd6,0x99,0xd7,0x9a,0xd8,0xb2,0xd9,0xd,0xdb,0xa5,0xdc, +0x52,0xde,0xd8,0xdf,0xe,0xe1,0x2a,0xe2,0x78,0xe3,0xf5,0xe4, +0x83,0xe6,0xf1,0xe7,0x2f,0xe9,0x81,0xea,0x9,0xec,0xaa,0xed, +0x59,0xef,0xe,0xf1,0xaf,0xf2,0x37,0xf4,0xb8,0xf5,0x3e,0xf7, +0xb2,0xf8,0xf6,0xf9,0x6,0xfb,0x0,0xfc,0xfa,0xfc,0xe4,0xfd, +0xc6,0xfe,0xc4,0xff,0xf0,0x0,0x56,0x2,0xc6,0x3,0xb,0x5, +0x72,0x6,0x2b,0x8,0xf6,0x9,0xb1,0xb,0x29,0xd,0x3c,0xe, +0x39,0xf,0x38,0x10,0xfa,0x10,0x79,0x11,0xd5,0x11,0x39,0x12, +0xb2,0x12,0x10,0x13,0x48,0x13,0xa1,0x13,0x36,0x14,0xae,0x14, +0xb3,0x14,0x53,0x14,0xbd,0x13,0x23,0x13,0x8c,0x12,0xb4,0x11, +0x86,0x10,0x21,0xf,0xad,0xd,0x67,0xc,0x2e,0xb,0xd3,0x9, +0xb6,0x8,0xfa,0x7,0x4e,0x7,0xb4,0x6,0x4b,0x6,0xa,0x6, +0xe6,0x5,0xc5,0x5,0x97,0x5,0x51,0x5,0xec,0x4,0x7f,0x4, +0x20,0x4,0xdd,0x3,0xae,0x3,0x86,0x3,0x6e,0x3,0x40,0x3, +0x7,0x3,0x35,0x3,0xb1,0x3,0xfb,0x3,0xdb,0x3,0x3d,0x3, +0x74,0x2,0xc,0x2,0xaa,0x1,0xa0,0x0,0x1d,0xff,0xb5,0xfd, +0xa8,0xfc,0xcc,0xfb,0xd3,0xfa,0xd1,0xf9,0x4a,0xf9,0x50,0xf9, +0x53,0xf9,0x13,0xf9,0xd9,0xf8,0xe5,0xf8,0x48,0xf9,0xc4,0xf9, +0xe0,0xf9,0x80,0xf9,0x10,0xf9,0x24,0xf9,0xde,0xf9,0xc3,0xfa, +0x6f,0xfb,0xe2,0xfb,0x73,0xfc,0xaf,0xfd,0x7a,0xff,0x22,0x1, +0x71,0x2,0x86,0x3,0x77,0x4,0x6c,0x5,0x3b,0x6,0xc4,0x6, +0x51,0x7,0x5,0x8,0x97,0x8,0xce,0x8,0xd1,0x8,0xfe,0x8, +0x8e,0x9,0x7a,0xa,0x4f,0xb,0xa1,0xb,0xb4,0xb,0xf6,0xb, +0x7c,0xc,0x29,0xd,0xaf,0xd,0xda,0xd,0xc5,0xd,0x84,0xd, +0x4f,0xd,0x65,0xd,0x86,0xd,0x64,0xd,0x6,0xd,0x9e,0xc, +0x57,0xc,0x2f,0xc,0x24,0xc,0x4c,0xc,0x90,0xc,0xad,0xc, +0x7e,0xc,0x34,0xc,0x2c,0xc,0x5f,0xc,0x6a,0xc,0x10,0xc, +0x83,0xb,0x2a,0xb,0xa,0xb,0xd2,0xa,0x99,0xa,0x9b,0xa, +0xa8,0xa,0x9b,0xa,0x80,0xa,0x3c,0xa,0xd9,0x9,0x7d,0x9, +0xf,0x9,0x7a,0x8,0xa3,0x7,0x5d,0x6,0xea,0x4,0xcc,0x3, +0xed,0x2,0xfa,0x1,0xe5,0x0,0xb5,0xff,0x9d,0xfe,0xe7,0xfd, +0x6c,0xfd,0xd6,0xfc,0x27,0xfc,0x8f,0xfb,0x1a,0xfb,0xa0,0xfa, +0xf7,0xf9,0x33,0xf9,0x97,0xf8,0x51,0xf8,0x46,0xf8,0x27,0xf8, +0xdd,0xf7,0x98,0xf7,0x8a,0xf7,0xce,0xf7,0x4c,0xf8,0xbf,0xf8, +0xee,0xf8,0xe7,0xf8,0xb,0xf9,0x97,0xf9,0x39,0xfa,0x87,0xfa, +0x94,0xfa,0xab,0xfa,0xa,0xfb,0xaa,0xfb,0x37,0xfc,0x86,0xfc, +0xcb,0xfc,0x39,0xfd,0xcc,0xfd,0x4a,0xfe,0x98,0xfe,0x19,0xff, +0x1,0x0,0xd8,0x0,0x51,0x1,0x9e,0x1,0x10,0x2,0xeb,0x2, +0x0,0x4,0xcf,0x4,0x40,0x5,0x9f,0x5,0x1b,0x6,0xb6,0x6, +0x70,0x7,0x55,0x8,0x42,0x9,0xde,0x9,0x39,0xa,0xda,0xa, +0xda,0xb,0xd4,0xc,0xa9,0xd,0x73,0xe,0x2b,0xf,0xc3,0xf, +0x3c,0x10,0xbe,0x10,0x80,0x11,0x58,0x12,0xfb,0x12,0x63,0x13, +0x93,0x13,0xd1,0x13,0x6a,0x14,0x7,0x15,0x4e,0x15,0x57,0x15, +0x29,0x15,0xd3,0x14,0x83,0x14,0x40,0x14,0xff,0x13,0x99,0x13, +0xf5,0x12,0x4f,0x12,0xcd,0x11,0x6c,0x11,0x3e,0x11,0xf,0x11, +0xa7,0x10,0x3f,0x10,0xf6,0xf,0x94,0xf,0x19,0xf,0xbe,0xe, +0x84,0xe,0x3c,0xe,0xcd,0xd,0x3c,0xd,0xcc,0xc,0xcd,0xc, +0x9,0xd,0xfe,0xc,0x9c,0xc,0x26,0xc,0xc9,0xb,0x86,0xb, +0x3c,0xb,0xc5,0xa,0x11,0xa,0x34,0x9,0x51,0x8,0x74,0x7, +0x9f,0x6,0xeb,0x5,0x62,0x5,0xe6,0x4,0x53,0x4,0xb3,0x3, +0x31,0x3,0xe2,0x2,0xb0,0x2,0x78,0x2,0x1b,0x2,0xaf,0x1, +0x51,0x1,0xf4,0x0,0xa7,0x0,0x7e,0x0,0x4a,0x0,0xf5,0xff, +0xac,0xff,0xa4,0xff,0xd4,0xff,0xfb,0xff,0xe4,0xff,0xb6,0xff, +0xba,0xff,0xd8,0xff,0xcb,0xff,0xb1,0xff,0xce,0xff,0x1,0x0, +0x9,0x0,0xfc,0xff,0x24,0x0,0x92,0x0,0x17,0x1,0x87,0x1, +0xf2,0x1,0x86,0x2,0x1f,0x3,0x60,0x3,0x6a,0x3,0xaf,0x3, +0x21,0x4,0x6f,0x4,0x83,0x4,0x77,0x4,0x86,0x4,0xbf,0x4, +0xd1,0x4,0x95,0x4,0x4d,0x4,0x3b,0x4,0x44,0x4,0xe,0x4, +0x8b,0x3,0x15,0x3,0xe8,0x2,0xec,0x2,0xf4,0x2,0xe8,0x2, +0xe8,0x2,0x1d,0x3,0x6c,0x3,0xb3,0x3,0xfa,0x3,0x47,0x4, +0x9a,0x4,0xce,0x4,0xd7,0x4,0xfc,0x4,0x64,0x5,0xc9,0x5, +0xfa,0x5,0xf3,0x5,0xcf,0x5,0xd5,0x5,0x8,0x6,0x24,0x6, +0xf4,0x5,0x64,0x5,0xb4,0x4,0x2c,0x4,0x80,0x3,0x8f,0x2, +0xa3,0x1,0xd2,0x0,0x21,0x0,0x94,0xff,0xee,0xfe,0x4b,0xfe, +0x12,0xfe,0x1d,0xfe,0x5,0xfe,0xb2,0xfd,0x42,0xfd,0xf7,0xfc, +0xf5,0xfc,0x7,0xfd,0xe9,0xfc,0xa4,0xfc,0x68,0xfc,0x5a,0xfc, +0x82,0xfc,0xbd,0xfc,0xe5,0xfc,0xec,0xfc,0xc1,0xfc,0x86,0xfc, +0x73,0xfc,0x6f,0xfc,0x39,0xfc,0xc4,0xfb,0x4a,0xfb,0x14,0xfb, +0xfd,0xfa,0xb9,0xfa,0x75,0xfa,0x64,0xfa,0x77,0xfa,0x98,0xfa, +0x8e,0xfa,0x64,0xfa,0x7e,0xfa,0xdf,0xfa,0x24,0xfb,0x33,0xfb, +0x51,0xfb,0xc0,0xfb,0x68,0xfc,0x8,0xfd,0x98,0xfd,0x28,0xfe, +0xae,0xfe,0x18,0xff,0x69,0xff,0xc1,0xff,0x21,0x0,0x6d,0x0, +0x91,0x0,0x9d,0x0,0xe5,0x0,0x9d,0x1,0x88,0x2,0x5e,0x3, +0x35,0x4,0x4f,0x5,0xa7,0x6,0xdc,0x7,0xb7,0x8,0x6b,0x9, +0x1c,0xa,0xa8,0xa,0xcd,0xa,0x8a,0xa,0x37,0xa,0xf9,0x9, +0xa2,0x9,0x14,0x9,0x70,0x8,0xea,0x7,0x7b,0x7,0xd0,0x6, +0xcd,0x5,0xaf,0x4,0x93,0x3,0x3e,0x2,0x81,0x0,0x9f,0xfe, +0xd6,0xfc,0xfd,0xfa,0xff,0xf8,0x16,0xf7,0x83,0xf5,0x59,0xf4, +0x57,0xf3,0x52,0xf2,0x70,0xf1,0xce,0xf0,0x65,0xf0,0x8,0xf0, +0x7d,0xef,0xe4,0xee,0x4c,0xee,0x5a,0xed,0x8,0xec,0xb8,0xea, +0x88,0xe9,0x4f,0xe8,0xe1,0xe6,0x39,0xe5,0x91,0xe3,0x26,0xe2, +0xf8,0xe0,0xe4,0xdf,0xd2,0xde,0xc5,0xdd,0xc9,0xdc,0xd7,0xdb, +0xd8,0xda,0xdc,0xd9,0x8,0xd9,0x49,0xd8,0x82,0xd7,0xb7,0xd6, +0xf6,0xd5,0x82,0xd5,0x7f,0xd5,0xa1,0xd5,0xd3,0xd5,0x49,0xd6, +0xef,0xd6,0x9b,0xd7,0x4c,0xd8,0x14,0xd9,0xfc,0xd9,0xcd,0xda, +0x45,0xdb,0x8c,0xdb,0xf4,0xdb,0x9f,0xdc,0x76,0xdd,0x39,0xde, +0xef,0xde,0xf1,0xdf,0x61,0xe1,0xf7,0xe2,0x78,0xe4,0xff,0xe5, +0xbf,0xe7,0xa5,0xe9,0x68,0xeb,0xdb,0xec,0x33,0xee,0xb6,0xef, +0x44,0xf1,0x99,0xf2,0xcf,0xf3,0x28,0xf5,0xc9,0xf6,0x96,0xf8, +0x30,0xfa,0x83,0xfb,0xe7,0xfc,0x6f,0xfe,0xd1,0xff,0xee,0x0, +0xd0,0x1,0x8f,0x2,0x34,0x3,0xaf,0x3,0x1e,0x4,0xb4,0x4, +0x4c,0x5,0xb9,0x5,0x35,0x6,0xec,0x6,0xbb,0x7,0x8f,0x8, +0x63,0x9,0x2e,0xa,0xf,0xb,0x6,0xc,0xf7,0xc,0xf5,0xd, +0xfc,0xe,0xf1,0xf,0xe1,0x10,0xa3,0x11,0x16,0x12,0x9c,0x12, +0x41,0x13,0x8b,0x13,0x71,0x13,0x28,0x13,0x99,0x12,0xeb,0x11, +0x7c,0x11,0x28,0x11,0x93,0x10,0xdc,0xf,0x30,0xf,0x8e,0xe, +0x10,0xe,0x9a,0xd,0xd5,0xc,0xb9,0xb,0x6e,0xa,0x1a,0x9, +0xf1,0x7,0xf7,0x6,0x19,0x6,0x53,0x5,0x8a,0x4,0xcd,0x3, +0x5d,0x3,0x3c,0x3,0x37,0x3,0x23,0x3,0xe4,0x2,0x85,0x2, +0x11,0x2,0x80,0x1,0xee,0x0,0x7c,0x0,0x1d,0x0,0xa9,0xff, +0x1f,0xff,0xb7,0xfe,0xa3,0xfe,0xd1,0xfe,0xfc,0xfe,0xed,0xfe, +0xae,0xfe,0x68,0xfe,0x39,0xfe,0x1e,0xfe,0x2,0xfe,0xc7,0xfd, +0x4d,0xfd,0xbf,0xfc,0x8a,0xfc,0xba,0xfc,0xfe,0xfc,0x3b,0xfd, +0x7b,0xfd,0xdb,0xfd,0x71,0xfe,0xf7,0xfe,0x4b,0xff,0xb4,0xff, +0x2a,0x0,0x77,0x0,0xa2,0x0,0xb8,0x0,0xfe,0x0,0xa2,0x1, +0x37,0x2,0x8a,0x2,0xc,0x3,0xe0,0x3,0xd1,0x4,0xd1,0x5, +0xb3,0x6,0x4a,0x7,0xcd,0x7,0x74,0x8,0x39,0x9,0xb,0xa, +0xc3,0xa,0x3b,0xb,0x97,0xb,0xf7,0xb,0x58,0xc,0xd2,0xc, +0x5e,0xd,0xd0,0xd,0x34,0xe,0x78,0xe,0x66,0xe,0x3b,0xe, +0x5f,0xe,0xb6,0xe,0xca,0xe,0x54,0xe,0x95,0xd,0xd,0xd, +0xcc,0xc,0x8b,0xc,0x35,0xc,0xd0,0xb,0x5f,0xb,0xb,0xb, +0xf1,0xa,0xf4,0xa,0x9,0xb,0x27,0xb,0x1a,0xb,0x0,0xb, +0xf,0xb,0x6,0xb,0xdc,0xa,0xdc,0xa,0xde,0xa,0xa9,0xa, +0x47,0xa,0xc6,0x9,0x82,0x9,0xb5,0x9,0xed,0x9,0xdc,0x9, +0xa9,0x9,0x60,0x9,0x3,0x9,0x92,0x8,0x18,0x8,0xb2,0x7, +0x1c,0x7,0xf5,0x5,0x87,0x4,0x51,0x3,0x5f,0x2,0x97,0x1, +0xd5,0x0,0xeb,0xff,0x9,0xff,0x5d,0xfe,0xbe,0xfd,0x2f,0xfd, +0xc1,0xfc,0x38,0xfc,0x8e,0xfb,0xd4,0xfa,0xd3,0xf9,0xc4,0xf8, +0x19,0xf8,0xa2,0xf7,0x31,0xf7,0xeb,0xf6,0xb6,0xf6,0x7c,0xf6, +0x94,0xf6,0x35,0xf7,0x19,0xf8,0xcb,0xf8,0x22,0xf9,0x5d,0xf9, +0xcf,0xf9,0x88,0xfa,0x5d,0xfb,0x12,0xfc,0x7e,0xfc,0xba,0xfc, +0x3c,0xfd,0x3d,0xfe,0x64,0xff,0x66,0x0,0x4e,0x1,0x23,0x2, +0xef,0x2,0xc5,0x3,0x92,0x4,0x3d,0x5,0xce,0x5,0x5b,0x6, +0xb8,0x6,0xa0,0x6,0x52,0x6,0x54,0x6,0xb7,0x6,0x25,0x7, +0x48,0x7,0x6,0x7,0xb9,0x6,0xd8,0x6,0x77,0x7,0x3d,0x8, +0xc4,0x8,0x13,0x9,0x78,0x9,0x4,0xa,0x97,0xa,0x37,0xb, +0xe5,0xb,0x80,0xc,0x0,0xd,0x87,0xd,0x23,0xe,0xdc,0xe, +0xaa,0xf,0x6c,0x10,0x38,0x11,0x2f,0x12,0x14,0x13,0xab,0x13, +0x16,0x14,0x80,0x14,0xed,0x14,0x31,0x15,0x20,0x15,0xc8,0x14, +0x51,0x14,0xe1,0x13,0x8b,0x13,0x14,0x13,0x64,0x12,0xbf,0x11, +0x44,0x11,0xe3,0x10,0x8d,0x10,0x1b,0x10,0x88,0xf,0xfb,0xe, +0x79,0xe,0xf0,0xd,0x47,0xd,0x74,0xc,0xa4,0xb,0x18,0xb, +0xca,0xa,0x6b,0xa,0xdb,0x9,0x5d,0x9,0x1d,0x9,0x1,0x9, +0xf1,0x8,0xca,0x8,0x5b,0x8,0xcb,0x7,0x63,0x7,0x20,0x7, +0xde,0x6,0x89,0x6,0xb,0x6,0x6d,0x5,0xfe,0x4,0xc8,0x4, +0x8b,0x4,0x41,0x4,0x5,0x4,0xdf,0x3,0xc7,0x3,0x7b,0x3, +0xed,0x2,0x90,0x2,0x99,0x2,0xaf,0x2,0x69,0x2,0xc2,0x1, +0x20,0x1,0xdf,0x0,0xf1,0x0,0xf5,0x0,0x81,0x0,0xb3,0xff, +0x21,0xff,0xee,0xfe,0xca,0xfe,0x85,0xfe,0x17,0xfe,0xa7,0xfd, +0x72,0xfd,0x5b,0xfd,0x24,0xfd,0xdb,0xfc,0xa8,0xfc,0x9d,0xfc, +0xa2,0xfc,0x72,0xfc,0xff,0xfb,0xc6,0xfb,0x2e,0xfc,0xf2,0xfc, +0x8b,0xfd,0xc7,0xfd,0xe3,0xfd,0x5c,0xfe,0x5b,0xff,0x6d,0x0, +0x4,0x1,0x11,0x1,0xd,0x1,0x54,0x1,0xc1,0x1,0x13,0x2, +0x2a,0x2,0xfc,0x1,0xd7,0x1,0x1,0x2,0x37,0x2,0x43,0x2, +0x3a,0x2,0x30,0x2,0x49,0x2,0x63,0x2,0x12,0x2,0x72,0x1, +0x18,0x1,0x30,0x1,0x4c,0x1,0xf0,0x0,0x25,0x0,0x83,0xff, +0x7c,0xff,0xdb,0xff,0xe,0x0,0xd0,0xff,0x62,0xff,0x28,0xff, +0x4a,0xff,0x9c,0xff,0xd6,0xff,0xbf,0xff,0x65,0xff,0x3e,0xff, +0x87,0xff,0xdd,0xff,0xf9,0xff,0xfa,0xff,0xf2,0xff,0xfb,0xff, +0x32,0x0,0x63,0x0,0x7c,0x0,0xa4,0x0,0xd5,0x0,0xf4,0x0, +0xfc,0x0,0xe1,0x0,0xc7,0x0,0xec,0x0,0x24,0x1,0xe4,0x0, +0x17,0x0,0x34,0xff,0x9c,0xfe,0x66,0xfe,0x4e,0xfe,0xc5,0xfd, +0xb2,0xfc,0xb8,0xfb,0x65,0xfb,0xab,0xfb,0x15,0xfc,0x38,0xfc, +0xf6,0xfb,0x89,0xfb,0x5d,0xfb,0x96,0xfb,0xdb,0xfb,0xef,0xfb, +0xf2,0xfb,0xfa,0xfb,0xf5,0xfb,0xec,0xfb,0x26,0xfc,0xd0,0xfc, +0xa5,0xfd,0x4c,0xfe,0xb1,0xfe,0xd8,0xfe,0xf7,0xfe,0x71,0xff, +0x1d,0x0,0x54,0x0,0xed,0xff,0x57,0xff,0xf8,0xfe,0xed,0xfe, +0x11,0xff,0x3d,0xff,0x64,0xff,0x72,0xff,0x6e,0xff,0xc3,0xff, +0xa4,0x0,0xb2,0x1,0x85,0x2,0xec,0x2,0xe,0x3,0x75,0x3, +0x40,0x4,0x2,0x5,0x92,0x5,0x4,0x6,0x64,0x6,0xb5,0x6, +0xd6,0x6,0xdf,0x6,0x26,0x7,0x85,0x7,0x89,0x7,0x15,0x7, +0x4e,0x6,0x72,0x5,0xcd,0x4,0x5f,0x4,0xa7,0x3,0x4c,0x2, +0xa7,0x0,0x22,0xff,0xaa,0xfd,0x23,0xfc,0x7f,0xfa,0x97,0xf8, +0xa9,0xf6,0xf0,0xf4,0x26,0xf3,0x45,0xf1,0xab,0xef,0x57,0xee, +0x1b,0xed,0xeb,0xeb,0xa2,0xea,0x52,0xe9,0x4b,0xe8,0x6e,0xe7, +0x61,0xe6,0x35,0xe5,0x1d,0xe4,0x1e,0xe3,0x1f,0xe2,0x12,0xe1, +0x3f,0xe0,0xdc,0xdf,0x7a,0xdf,0xd0,0xde,0x33,0xde,0xc5,0xdd, +0x7c,0xdd,0x33,0xdd,0x84,0xdc,0x84,0xdb,0xb1,0xda,0xd5,0xd9, +0xa1,0xd8,0x64,0xd7,0x6d,0xd6,0xc9,0xd5,0x66,0xd5,0xfd,0xd4, +0x84,0xd4,0x63,0xd4,0xb9,0xd4,0x33,0xd5,0xa7,0xd5,0x1a,0xd6, +0x5f,0xd6,0x82,0xd6,0xda,0xd6,0x61,0xd7,0xe5,0xd7,0x8a,0xd8, +0x5c,0xd9,0x3a,0xda,0x46,0xdb,0xa9,0xdc,0x44,0xde,0x6,0xe0, +0xf7,0xe1,0xd,0xe4,0x1c,0xe6,0xb,0xe8,0xe0,0xe9,0x95,0xeb, +0x36,0xed,0xee,0xee,0xa9,0xf0,0x21,0xf2,0x63,0xf3,0xa5,0xf4, +0xf2,0xf5,0x59,0xf7,0xde,0xf8,0x51,0xfa,0xa0,0xfb,0xee,0xfc, +0x44,0xfe,0x9b,0xff,0xd8,0x0,0xda,0x1,0xde,0x2,0x11,0x4, +0x16,0x5,0xbf,0x5,0x4d,0x6,0xf0,0x6,0xb7,0x7,0x83,0x8, +0x18,0x9,0x9d,0x9,0x68,0xa,0x79,0xb,0xa4,0xc,0xbb,0xd, +0xba,0xe,0xb7,0xf,0x91,0x10,0x44,0x11,0x4,0x12,0xa1,0x12, +0xd8,0x12,0xd3,0x12,0x97,0x12,0xf,0x12,0x96,0x11,0x61,0x11, +0x36,0x11,0x5,0x11,0xc9,0x10,0x6b,0x10,0x2a,0x10,0x1c,0x10, +0xdc,0xf,0x54,0xf,0xb4,0xe,0xe9,0xd,0xf6,0xc,0xee,0xb, +0xb8,0xa,0x7a,0x9,0x70,0x8,0x84,0x7,0x9d,0x6,0xcf,0x5, +0x10,0x5,0x55,0x4,0xc7,0x3,0x5d,0x3,0xbf,0x2,0xec,0x1, +0x1b,0x1,0x56,0x0,0xa2,0xff,0xdb,0xfe,0xc4,0xfd,0xa8,0xfc, +0xdf,0xfb,0x60,0xfb,0x3,0xfb,0x70,0xfa,0xc3,0xf9,0xb9,0xf9, +0x3a,0xfa,0x80,0xfa,0x7c,0xfa,0x70,0xfa,0x80,0xfa,0xd5,0xfa, +0x20,0xfb,0x3,0xfb,0xd4,0xfa,0xe3,0xfa,0xee,0xfa,0xd8,0xfa, +0xd5,0xfa,0xfc,0xfa,0x42,0xfb,0xae,0xfb,0x31,0xfc,0xa7,0xfc, +0x4,0xfd,0x5a,0xfd,0xd8,0xfd,0x80,0xfe,0xf9,0xfe,0x9,0xff, +0xd4,0xfe,0xb5,0xfe,0xf7,0xfe,0x74,0xff,0xd8,0xff,0x32,0x0, +0xa9,0x0,0x47,0x1,0x27,0x2,0x4c,0x3,0x77,0x4,0x6b,0x5, +0x3f,0x6,0x1d,0x7,0xfc,0x7,0xda,0x8,0x99,0x9,0xe,0xa, +0x7f,0xa,0x1c,0xb,0xa9,0xb,0x3b,0xc,0xf3,0xc,0xa4,0xd, +0x6d,0xe,0x51,0xf,0xf4,0xf,0x52,0x10,0xa8,0x10,0xc,0x11, +0x77,0x11,0xaf,0x11,0x73,0x11,0xe6,0x10,0x71,0x10,0x61,0x10, +0x85,0x10,0x6e,0x10,0xe,0x10,0xb7,0xf,0x9a,0xf,0x89,0xf, +0x3e,0xf,0xbd,0xe,0x3c,0xe,0xc2,0xd,0x21,0xd,0x42,0xc, +0x48,0xb,0x54,0xa,0x75,0x9,0xaf,0x8,0x6,0x8,0x84,0x7, +0xd,0x7,0x76,0x6,0xdd,0x5,0x80,0x5,0x72,0x5,0x87,0x5, +0x4e,0x5,0xae,0x4,0x23,0x4,0xda,0x3,0x99,0x3,0x55,0x3, +0x3,0x3,0x8b,0x2,0x3,0x2,0x7f,0x1,0xfe,0x0,0x79,0x0, +0xec,0xff,0x4d,0xff,0x6b,0xfe,0x48,0xfd,0x1f,0xfc,0xf2,0xfa, +0xc2,0xf9,0xc6,0xf8,0xf2,0xf7,0xf8,0xf6,0xdd,0xf5,0xfb,0xf4, +0x95,0xf4,0xa2,0xf4,0xd5,0xf4,0xdb,0xf4,0xb0,0xf4,0xb4,0xf4, +0x28,0xf5,0xf4,0xf5,0xd9,0xf6,0xa5,0xf7,0x56,0xf8,0xe,0xf9, +0xb,0xfa,0x59,0xfb,0xa1,0xfc,0xbd,0xfd,0xe6,0xfe,0x2,0x0, +0xf5,0x0,0xe0,0x1,0xb4,0x2,0x81,0x3,0x64,0x4,0xff,0x4, +0x30,0x5,0x4b,0x5,0x76,0x5,0xcc,0x5,0x5b,0x6,0xc6,0x6, +0xdb,0x6,0xcb,0x6,0xd0,0x6,0x26,0x7,0xde,0x7,0xa5,0x8, +0x1f,0x9,0x5c,0x9,0xa6,0x9,0x2a,0xa,0xed,0xa,0xbe,0xb, +0x6b,0xc,0x2,0xd,0x90,0xd,0x15,0xe,0xaf,0xe,0x68,0xf, +0x2b,0x10,0xf2,0x10,0xa8,0x11,0x32,0x12,0xa6,0x12,0x2f,0x13, +0xd7,0x13,0x85,0x14,0xfb,0x14,0xfd,0x14,0xbc,0x14,0xac,0x14, +0xd7,0x14,0x5,0x15,0x6,0x15,0xaf,0x14,0x45,0x14,0x27,0x14, +0x20,0x14,0x0,0x14,0xdc,0x13,0x91,0x13,0x9,0x13,0x41,0x12, +0x39,0x11,0x3c,0x10,0x64,0xf,0x6d,0xe,0x47,0xd,0xe8,0xb, +0x74,0xa,0x59,0x9,0x94,0x8,0xd3,0x7,0xf,0x7,0x34,0x6, +0x46,0x5,0x98,0x4,0x32,0x4,0xdc,0x3,0x82,0x3,0x9,0x3, +0x8b,0x2,0x3c,0x2,0x4,0x2,0xc6,0x1,0x9f,0x1,0xab,0x1, +0xe9,0x1,0x7,0x2,0xb1,0x1,0x47,0x1,0x43,0x1,0x8b,0x1, +0xc9,0x1,0x93,0x1,0xdb,0x0,0x44,0x0,0x15,0x0,0xdd,0xff, +0x72,0xff,0xe7,0xfe,0x51,0xfe,0xe1,0xfd,0x77,0xfd,0xed,0xfc, +0x95,0xfc,0x8a,0xfc,0x8a,0xfc,0x7e,0xfc,0x6d,0xfc,0x7b,0xfc, +0xdc,0xfc,0x6b,0xfd,0xd2,0xfd,0xd,0xfe,0x52,0xfe,0xb3,0xfe, +0xc,0xff,0x3e,0xff,0x75,0xff,0xd5,0xff,0x1e,0x0,0x47,0x0, +0x9a,0x0,0xe,0x1,0x83,0x1,0xf,0x2,0xa3,0x2,0x26,0x3, +0xb5,0x3,0x47,0x4,0xae,0x4,0xef,0x4,0x3a,0x5,0x8f,0x5, +0xc1,0x5,0xe8,0x5,0x48,0x6,0xc9,0x6,0x35,0x7,0x8f,0x7, +0x8,0x8,0xc6,0x8,0x9a,0x9,0x32,0xa,0x80,0xa,0x89,0xa, +0x6b,0xa,0x49,0xa,0xea,0x9,0x34,0x9,0x7c,0x8,0xdd,0x7, +0x3e,0x7,0xa7,0x6,0x30,0x6,0x8,0x6,0x21,0x6,0x12,0x6, +0xc0,0x5,0x64,0x5,0x1e,0x5,0xde,0x4,0x64,0x4,0x86,0x3, +0x98,0x2,0xf7,0x1,0x8c,0x1,0x36,0x1,0x7,0x1,0x12,0x1, +0x68,0x1,0xf7,0x1,0x6e,0x2,0xba,0x2,0x7,0x3,0x38,0x3, +0x33,0x3,0x1,0x3,0x80,0x2,0xb8,0x1,0xea,0x0,0x21,0x0, +0x6c,0xff,0xdf,0xfe,0x4e,0xfe,0xae,0xfd,0x2d,0xfd,0xbd,0xfc, +0x48,0xfc,0xd5,0xfb,0x42,0xfb,0x70,0xfa,0x8e,0xf9,0xb3,0xf8, +0xd2,0xf7,0xf2,0xf6,0x1a,0xf6,0x63,0xf5,0xe4,0xf4,0x72,0xf4, +0xb,0xf4,0xec,0xf3,0x9,0xf4,0x3a,0xf4,0x8b,0xf4,0xfe,0xf4, +0x88,0xf5,0x39,0xf6,0xa,0xf7,0xcf,0xf7,0x8c,0xf8,0x6d,0xf9, +0x4b,0xfa,0xfa,0xfa,0x97,0xfb,0x1c,0xfc,0x8a,0xfc,0x21,0xfd, +0xc7,0xfd,0x4d,0xfe,0xcb,0xfe,0x46,0xff,0xcd,0xff,0x58,0x0, +0xc7,0x0,0x5a,0x1,0xa,0x2,0x5a,0x2,0x54,0x2,0x4d,0x2, +0x6e,0x2,0xd7,0x2,0x37,0x3,0x41,0x3,0x5d,0x3,0xe4,0x3, +0x99,0x4,0x18,0x5,0x6d,0x5,0xc,0x6,0xcf,0x6,0xfe,0x6, +0x82,0x6,0xe6,0x5,0x7e,0x5,0x2f,0x5,0xa6,0x4,0xbc,0x3, +0xaa,0x2,0xd5,0x1,0x68,0x1,0x1d,0x1,0xb4,0x0,0x45,0x0, +0xce,0xff,0x1b,0xff,0x2e,0xfe,0x45,0xfd,0x6a,0xfc,0x4a,0xfb, +0xcd,0xf9,0x58,0xf8,0x1f,0xf7,0x5,0xf6,0x4,0xf5,0xa,0xf4, +0x17,0xf3,0x5b,0xf2,0xb5,0xf1,0xb1,0xf0,0x4e,0xef,0xfa,0xed, +0xbc,0xec,0x3b,0xeb,0x53,0xe9,0x29,0xe7,0x17,0xe5,0x6d,0xe3, +0x6,0xe2,0x9e,0xe0,0x43,0xdf,0x19,0xde,0x31,0xdd,0x7f,0xdc, +0xd9,0xdb,0x3e,0xdb,0xba,0xda,0x3a,0xda,0xba,0xd9,0x24,0xd9, +0x69,0xd8,0xd3,0xd7,0xa2,0xd7,0xba,0xd7,0xe6,0xd7,0x16,0xd8, +0x5a,0xd8,0xdb,0xd8,0xa1,0xd9,0x7d,0xda,0x44,0xdb,0xed,0xdb, +0x88,0xdc,0x37,0xdd,0xff,0xdd,0xbc,0xde,0x5e,0xdf,0xf4,0xdf, +0xa3,0xe0,0x78,0xe1,0x5f,0xe2,0x6c,0xe3,0xa4,0xe4,0xd9,0xe5, +0x31,0xe7,0xbc,0xe8,0x3b,0xea,0xc8,0xeb,0x7b,0xed,0x1c,0xef, +0xad,0xf0,0x1e,0xf2,0x5f,0xf3,0x9a,0xf4,0xb8,0xf5,0xc9,0xf6, +0x7,0xf8,0x21,0xf9,0x8,0xfa,0x22,0xfb,0x6a,0xfc,0xcd,0xfd, +0x47,0xff,0xb2,0x0,0x1f,0x2,0x84,0x3,0xb5,0x4,0xd6,0x5, +0xdd,0x6,0xa8,0x7,0x68,0x8,0x20,0x9,0xba,0x9,0x63,0xa, +0x3c,0xb,0x3f,0xc,0x6d,0xd,0xbc,0xe,0xfe,0xf,0xe,0x11, +0xf,0x12,0x11,0x13,0xd7,0x13,0x36,0x14,0x32,0x14,0xe3,0x13, +0x6b,0x13,0xc2,0x12,0x7,0x12,0x86,0x11,0x23,0x11,0xa5,0x10, +0x1e,0x10,0xa5,0xf,0x44,0xf,0x3,0xf,0xae,0xe,0x13,0xe, +0x4a,0xd,0x50,0xc,0x1d,0xb,0xfd,0x9,0x33,0x9,0x96,0x8, +0xfb,0x7,0x5e,0x7,0xd6,0x6,0xb4,0x6,0xc,0x7,0x82,0x7, +0xce,0x7,0xe2,0x7,0xbc,0x7,0x82,0x7,0x38,0x7,0xa9,0x6, +0xee,0x5,0x43,0x5,0x81,0x4,0x81,0x3,0x72,0x2,0x87,0x1, +0xdc,0x0,0x5f,0x0,0xce,0xff,0x18,0xff,0x4e,0xfe,0x70,0xfd, +0x9d,0xfc,0xf3,0xfb,0x79,0xfb,0x26,0xfb,0xab,0xfa,0x2,0xfa, +0xb3,0xf9,0xc7,0xf9,0xec,0xf9,0x27,0xfa,0x74,0xfa,0xc9,0xfa, +0x32,0xfb,0x8b,0xfb,0xf1,0xfb,0xa3,0xfc,0x7c,0xfd,0x49,0xfe, +0xf6,0xfe,0x91,0xff,0x65,0x0,0x7a,0x1,0x91,0x2,0x8d,0x3, +0x4b,0x4,0xc7,0x4,0x4a,0x5,0xf4,0x5,0xa1,0x6,0x3b,0x7, +0xba,0x7,0x2a,0x8,0xb0,0x8,0x6a,0x9,0x43,0xa,0x26,0xb, +0x2,0xc,0xa7,0xc,0x2f,0xd,0xdd,0xd,0x6e,0xe,0xa2,0xe, +0xc4,0xe,0xf8,0xe,0x1f,0xf,0x29,0xf,0x2e,0xf,0x53,0xf, +0x86,0xf,0xab,0xf,0xd3,0xf,0xeb,0xf,0xf7,0xf,0x28,0x10, +0x6a,0x10,0x9b,0x10,0xb7,0x10,0x8c,0x10,0x23,0x10,0xe8,0xf, +0x1c,0x10,0x71,0x10,0x55,0x10,0xdc,0xf,0xa8,0xf,0xd4,0xf, +0xea,0xf,0xb2,0xf,0x4a,0xf,0xe2,0xe,0x90,0xe,0x32,0xe, +0x86,0xd,0x7a,0xc,0x62,0xb,0x84,0xa,0x9d,0x9,0x75,0x8, +0x3e,0x7,0x19,0x6,0x9,0x5,0x7,0x4,0xec,0x2,0xce,0x1, +0xf0,0x0,0x2e,0x0,0x51,0xff,0x5b,0xfe,0x48,0xfd,0x53,0xfc, +0xb8,0xfb,0x1b,0xfb,0x5e,0xfa,0xc0,0xf9,0x19,0xf9,0x74,0xf8, +0x26,0xf8,0xf6,0xf7,0x9f,0xf7,0x4c,0xf7,0x2d,0xf7,0x32,0xf7, +0x17,0xf7,0xc0,0xf6,0x6f,0xf6,0x66,0xf6,0x9b,0xf6,0xbd,0xf6, +0x96,0xf6,0x62,0xf6,0x6d,0xf6,0xdd,0xf6,0xa3,0xf7,0x4b,0xf8, +0xa3,0xf8,0x11,0xf9,0xcf,0xf9,0xd5,0xfa,0xe9,0xfb,0xb2,0xfc, +0x45,0xfd,0xee,0xfd,0xc4,0xfe,0xb8,0xff,0x82,0x0,0x14,0x1, +0xc6,0x1,0x89,0x2,0x23,0x3,0xc3,0x3,0x61,0x4,0xd6,0x4, +0x62,0x5,0x2e,0x6,0xed,0x6,0x67,0x7,0xba,0x7,0x33,0x8, +0x9,0x9,0x1a,0xa,0xee,0xa,0x5a,0xb,0xb9,0xb,0x6b,0xc, +0x7a,0xd,0x90,0xe,0x61,0xf,0x26,0x10,0x1c,0x11,0x30,0x12, +0x3e,0x13,0xe,0x14,0x96,0x14,0x20,0x15,0xae,0x15,0x17,0x16, +0x59,0x16,0x67,0x16,0x48,0x16,0x27,0x16,0x3,0x16,0xdf,0x15, +0xbe,0x15,0x70,0x15,0xfc,0x14,0xa6,0x14,0x65,0x14,0xf1,0x13, +0x3f,0x13,0x7b,0x12,0xbc,0x11,0x18,0x11,0x80,0x10,0xb0,0xf, +0xbb,0xe,0xf7,0xd,0x61,0xd,0xdf,0xc,0x86,0xc,0x49,0xc, +0xf6,0xb,0x84,0xb,0x1,0xb,0x8c,0xa,0x30,0xa,0xbd,0x9, +0x11,0x9,0x36,0x8,0x3e,0x7,0x46,0x6,0x6b,0x5,0xa2,0x4, +0x6,0x4,0xa8,0x3,0x2c,0x3,0x69,0x2,0xb0,0x1,0x2b,0x1, +0xe2,0x0,0xbc,0x0,0x5c,0x0,0xb3,0xff,0xf8,0xfe,0x55,0xfe, +0xfa,0xfd,0xce,0xfd,0x8d,0xfd,0x26,0xfd,0x97,0xfc,0x26,0xfc, +0x2a,0xfc,0x5a,0xfc,0x4d,0xfc,0x10,0xfc,0xce,0xfb,0xbd,0xfb, +0xf3,0xfb,0x16,0xfc,0xea,0xfb,0xad,0xfb,0x91,0xfb,0x89,0xfb, +0x8e,0xfb,0x94,0xfb,0x96,0xfb,0xdf,0xfb,0x83,0xfc,0x5,0xfd, +0x61,0xfd,0xc,0xfe,0x13,0xff,0x4a,0x0,0x69,0x1,0x8,0x2, +0x5a,0x2,0xe2,0x2,0x9c,0x3,0x33,0x4,0x63,0x4,0x33,0x4, +0xf3,0x3,0xd3,0x3,0xcb,0x3,0xd2,0x3,0xe5,0x3,0x0,0x4, +0xc,0x4,0xf6,0x3,0xdb,0x3,0xef,0x3,0x39,0x4,0x61,0x4, +0x14,0x4,0x9e,0x3,0x80,0x3,0xb6,0x3,0xf6,0x3,0x27,0x4, +0x6f,0x4,0xfd,0x4,0xb7,0x5,0x4d,0x6,0xca,0x6,0x71,0x7, +0x2d,0x8,0xab,0x8,0xbe,0x8,0x78,0x8,0x4c,0x8,0x8b,0x8, +0xa4,0x8,0x18,0x8,0x35,0x7,0x5f,0x6,0xe6,0x5,0xd7,0x5, +0x92,0x5,0xcb,0x4,0xf3,0x3,0x3d,0x3,0x95,0x2,0x0,0x2, +0x86,0x1,0x3d,0x1,0xc,0x1,0x7b,0x0,0x74,0xff,0x97,0xfe, +0x58,0xfe,0x6f,0xfe,0x6b,0xfe,0x1c,0xfe,0x7d,0xfd,0xe4,0xfc, +0xbb,0xfc,0xe1,0xfc,0x1,0xfd,0xfa,0xfc,0xb9,0xfc,0x4f,0xfc, +0xe0,0xfb,0x7d,0xfb,0x3c,0xfb,0xfd,0xfa,0x6b,0xfa,0x80,0xf9, +0x98,0xf8,0xc,0xf8,0xff,0xf7,0x2c,0xf8,0x1a,0xf8,0xcb,0xf7, +0xb0,0xf7,0xef,0xf7,0x5b,0xf8,0xcf,0xf8,0x26,0xf9,0x64,0xf9, +0x9b,0xf9,0x91,0xf9,0x4b,0xf9,0x38,0xf9,0x7b,0xf9,0xe3,0xf9, +0x37,0xfa,0x53,0xfa,0x58,0xfa,0x98,0xfa,0x2c,0xfb,0xda,0xfb, +0x57,0xfc,0x9d,0xfc,0xc8,0xfc,0xc2,0xfc,0x92,0xfc,0x8c,0xfc, +0xde,0xfc,0x39,0xfd,0x2b,0xfd,0xe4,0xfc,0xfa,0xfc,0x93,0xfd, +0x78,0xfe,0x73,0xff,0x5a,0x0,0x52,0x1,0x8a,0x2,0xd0,0x3, +0xde,0x4,0xca,0x5,0xd6,0x6,0xf5,0x7,0xb9,0x8,0xca,0x8, +0x44,0x8,0xbb,0x7,0x90,0x7,0x6b,0x7,0xd3,0x6,0xc0,0x5, +0x7f,0x4,0x8a,0x3,0xd8,0x2,0xe4,0x1,0xca,0x0,0xe7,0xff, +0xed,0xfe,0xa0,0xfd,0x2e,0xfc,0xbf,0xfa,0x86,0xf9,0x66,0xf8, +0xe3,0xf6,0x12,0xf5,0x8f,0xf3,0x80,0xf2,0x9e,0xf1,0xb1,0xf0, +0xa0,0xef,0xb5,0xee,0xb,0xee,0x7,0xed,0x7a,0xeb,0x3,0xea, +0xd3,0xe8,0xa8,0xe7,0x33,0xe6,0x8,0xe4,0x92,0xe1,0xd6,0xdf, +0xdb,0xde,0xee,0xdd,0xce,0xdc,0xb6,0xdb,0xf1,0xda,0x7e,0xda, +0x1d,0xda,0xbe,0xd9,0x72,0xd9,0x33,0xd9,0xdb,0xd8,0x3e,0xd8, +0x70,0xd7,0xc5,0xd6,0x95,0xd6,0xd7,0xd6,0xfa,0xd6,0xc9,0xd6, +0xc4,0xd6,0x1e,0xd7,0xbf,0xd7,0x9b,0xd8,0x4c,0xd9,0x8c,0xd9, +0x9b,0xd9,0x8a,0xd9,0x71,0xd9,0xaf,0xd9,0x29,0xda,0x70,0xda, +0x8c,0xda,0xb5,0xda,0x40,0xdb,0x8a,0xdc,0x42,0xde,0xdf,0xdf, +0x8a,0xe1,0x72,0xe3,0x79,0xe5,0x98,0xe7,0xaf,0xe9,0xb7,0xeb, +0xee,0xed,0x2e,0xf0,0x3,0xf2,0x5b,0xf3,0x88,0xf4,0x3,0xf6, +0xe9,0xf7,0xbc,0xf9,0xf1,0xfa,0x97,0xfb,0x58,0xfc,0xa9,0xfd, +0x42,0xff,0xa8,0x0,0xa1,0x1,0x51,0x2,0x20,0x3,0x15,0x4, +0xeb,0x4,0xa4,0x5,0x58,0x6,0x1c,0x7,0xfc,0x7,0xb3,0x8, +0x44,0x9,0x38,0xa,0xa7,0xb,0x23,0xd,0x68,0xe,0x72,0xf, +0x6a,0x10,0x74,0x11,0x6b,0x12,0x4,0x13,0x25,0x13,0xf2,0x12, +0x7d,0x12,0xd1,0x11,0x27,0x11,0xb2,0x10,0x6d,0x10,0x1b,0x10, +0x6a,0xf,0x7f,0xe,0xea,0xd,0xc6,0xd,0xa3,0xd,0x20,0xd, +0x32,0xc,0x33,0xb,0x8f,0xa,0x30,0xa,0xa6,0x9,0xe8,0x8, +0x4a,0x8,0xef,0x7,0xa2,0x7,0x2d,0x7,0xba,0x6,0x98,0x6, +0x96,0x6,0x47,0x6,0x9c,0x5,0xc1,0x4,0xea,0x3,0x26,0x3, +0x40,0x2,0x35,0x1,0x47,0x0,0x67,0xff,0x6d,0xfe,0x7c,0xfd, +0xc6,0xfc,0x62,0xfc,0x29,0xfc,0xc3,0xfb,0x2d,0xfb,0xc7,0xfa, +0xb5,0xfa,0xa6,0xfa,0x6b,0xfa,0x32,0xfa,0x36,0xfa,0x8c,0xfa, +0xdd,0xfa,0xc5,0xfa,0xa4,0xfa,0x9,0xfb,0xc0,0xfb,0x4d,0xfc, +0x73,0xfc,0x5a,0xfc,0x91,0xfc,0x3d,0xfd,0xe8,0xfd,0x47,0xfe, +0x6a,0xfe,0x85,0xfe,0xc7,0xfe,0x2c,0xff,0x94,0xff,0xf9,0xff, +0x6e,0x0,0xfd,0x0,0xab,0x1,0x8d,0x2,0x9a,0x3,0xa9,0x4, +0xc5,0x5,0xfb,0x6,0x3b,0x8,0x7c,0x9,0x96,0xa,0x85,0xb, +0x70,0xc,0x42,0xd,0xeb,0xd,0x74,0xe,0xc0,0xe,0xf7,0xe, +0x52,0xf,0x97,0xf,0xa2,0xf,0x8e,0xf,0x61,0xf,0x32,0xf, +0x2c,0xf,0x48,0xf,0x3e,0xf,0xc4,0xe,0x23,0xe,0xed,0xd, +0x2d,0xe,0x68,0xe,0x38,0xe,0xd6,0xd,0xd3,0xd,0x49,0xe, +0xc8,0xe,0xf2,0xe,0x6,0xf,0x88,0xf,0x34,0x10,0x4a,0x10, +0xd6,0xf,0x74,0xf,0x63,0xf,0x6c,0xf,0x19,0xf,0x31,0xe, +0x18,0xd,0x47,0xc,0xae,0xb,0xe6,0xa,0xd9,0x9,0xeb,0x8, +0x28,0x8,0x40,0x7,0x34,0x6,0xd,0x5,0xcb,0x3,0xc2,0x2, +0x0,0x2,0x11,0x1,0xe1,0xff,0xa9,0xfe,0x89,0xfd,0xb7,0xfc, +0x39,0xfc,0xae,0xfb,0xf4,0xfa,0x3d,0xfa,0xae,0xf9,0x5a,0xf9, +0x28,0xf9,0xeb,0xf8,0x97,0xf8,0x3a,0xf8,0xd3,0xf7,0x63,0xf7, +0xd,0xf7,0xd8,0xf6,0x9d,0xf6,0x70,0xf6,0x5a,0xf6,0x19,0xf6, +0xd8,0xf5,0xee,0xf5,0x35,0xf6,0x96,0xf6,0xb,0xf7,0x5b,0xf7, +0x99,0xf7,0xe6,0xf7,0x48,0xf8,0xf2,0xf8,0xbc,0xf9,0x47,0xfa, +0x9f,0xfa,0xe2,0xfa,0x3d,0xfb,0xf4,0xfb,0xd6,0xfc,0x81,0xfd, +0xea,0xfd,0x50,0xfe,0xf7,0xfe,0xd3,0xff,0xac,0x0,0x86,0x1, +0x46,0x2,0xbd,0x2,0x29,0x3,0xea,0x3,0xa,0x5,0x3f,0x6, +0x2f,0x7,0xc5,0x7,0x54,0x8,0x49,0x9,0x92,0xa,0xc0,0xb, +0xa9,0xc,0x80,0xd,0x63,0xe,0x39,0xf,0xda,0xf,0x5e,0x10, +0x10,0x11,0xd3,0x11,0x35,0x12,0x24,0x12,0xfd,0x11,0x7,0x12, +0x30,0x12,0x41,0x12,0xa,0x12,0x9d,0x11,0x44,0x11,0xc,0x11, +0xdc,0x10,0xd3,0x10,0xde,0x10,0xcf,0x10,0xbf,0x10,0xb3,0x10, +0xb6,0x10,0x1,0x11,0x59,0x11,0x6a,0x11,0x5c,0x11,0x50,0x11, +0x56,0x11,0x89,0x11,0x91,0x11,0x3c,0x11,0xf2,0x10,0xca,0x10, +0xb7,0x10,0xd0,0x10,0xa9,0x10,0xfc,0xf,0x4a,0xf,0xb6,0xe, +0x2,0xe,0x41,0xd,0x56,0xc,0x1c,0xb,0xe1,0x9,0xbd,0x8, +0x96,0x7,0x7b,0x6,0x73,0x5,0xa8,0x4,0x2d,0x4,0xb2,0x3, +0x19,0x3,0x92,0x2,0x49,0x2,0x59,0x2,0x7e,0x2,0x5a,0x2, +0x2,0x2,0xb3,0x1,0x98,0x1,0xbf,0x1,0xf1,0x1,0x8,0x2, +0x12,0x2,0x16,0x2,0x2e,0x2,0x70,0x2,0xb7,0x2,0xd3,0x2, +0xd0,0x2,0xc8,0x2,0xa1,0x2,0x40,0x2,0xb5,0x1,0x12,0x1, +0x85,0x0,0x46,0x0,0x10,0x0,0x91,0xff,0xfc,0xfe,0xba,0xfe, +0x10,0xff,0xc6,0xff,0x31,0x0,0x2a,0x0,0x3c,0x0,0xd7,0x0, +0xcf,0x1,0x7f,0x2,0x91,0x2,0x7b,0x2,0xba,0x2,0x3d,0x3, +0x9f,0x3,0xc0,0x3,0xd7,0x3,0x16,0x4,0x83,0x4,0xea,0x4, +0xe6,0x4,0x98,0x4,0x92,0x4,0xc9,0x4,0xd5,0x4,0x8e,0x4, +0xfe,0x3,0x7f,0x3,0x63,0x3,0x7d,0x3,0xa8,0x3,0xe0,0x3, +0xb,0x4,0x53,0x4,0xe1,0x4,0x84,0x5,0x2e,0x6,0xd7,0x6, +0x3e,0x7,0x76,0x7,0xcc,0x7,0x20,0x8,0x24,0x8,0xf4,0x7, +0xd4,0x7,0xc2,0x7,0x91,0x7,0x1c,0x7,0x52,0x6,0x70,0x5, +0xb5,0x4,0xfb,0x3,0x24,0x3,0x1e,0x2,0xd9,0x0,0xc4,0xff, +0x1c,0xff,0x7e,0xfe,0xf2,0xfd,0x98,0xfd,0x36,0xfd,0x10,0xfd, +0x49,0xfd,0x72,0xfd,0x94,0xfd,0xe1,0xfd,0x38,0xfe,0x97,0xfe, +0xce,0xfe,0xc4,0xfe,0xe6,0xfe,0x3f,0xff,0x60,0xff,0x47,0xff, +0x13,0xff,0xc2,0xfe,0x7e,0xfe,0x4a,0xfe,0xc1,0xfd,0xcc,0xfc, +0xd3,0xfb,0xeb,0xfa,0xe5,0xf9,0xfe,0xf8,0x68,0xf8,0xee,0xf7, +0x70,0xf7,0xec,0xf6,0x9c,0xf6,0xd8,0xf6,0x63,0xf7,0xdb,0xf7, +0x44,0xf8,0xa0,0xf8,0xa,0xf9,0xb2,0xf9,0x50,0xfa,0xb5,0xfa, +0x3c,0xfb,0x5,0xfc,0xb8,0xfc,0x29,0xfd,0x89,0xfd,0x13,0xfe, +0xc9,0xfe,0x56,0xff,0x4e,0xff,0xd7,0xfe,0x79,0xfe,0x56,0xfe, +0x51,0xfe,0x2c,0xfe,0x96,0xfd,0xfd,0xfc,0x11,0xfd,0xa6,0xfd, +0x6a,0xfe,0x58,0xff,0x4a,0x0,0x42,0x1,0x37,0x2,0xf8,0x2, +0xca,0x3,0xca,0x4,0x8d,0x5,0x7,0x6,0x4f,0x6,0x3f,0x6, +0x27,0x6,0x7e,0x6,0xfc,0x6,0x2a,0x7,0x4,0x7,0x9f,0x6, +0x1c,0x6,0xbc,0x5,0x53,0x5,0x77,0x4,0x41,0x3,0xe8,0x1, +0x72,0x0,0x2,0xff,0x9f,0xfd,0x41,0xfc,0xf,0xfb,0xe8,0xf9, +0xb2,0xf8,0xac,0xf7,0xcd,0xf6,0xc,0xf6,0x87,0xf5,0xe9,0xf4, +0xfb,0xf3,0xfb,0xf2,0xe5,0xf1,0xd1,0xf0,0x5,0xf0,0x32,0xef, +0xea,0xed,0x4f,0xec,0xb5,0xea,0x4d,0xe9,0xd,0xe8,0xad,0xe6, +0xfe,0xe4,0x1d,0xe3,0x5b,0xe1,0xc5,0xdf,0x26,0xde,0x85,0xdc, +0x9,0xdb,0xc2,0xd9,0xd4,0xd8,0x16,0xd8,0x44,0xd7,0x9f,0xd6, +0x5f,0xd6,0x61,0xd6,0x82,0xd6,0x88,0xd6,0x73,0xd6,0xb9,0xd6, +0x6e,0xd7,0x2e,0xd8,0xc7,0xd8,0x3b,0xd9,0xbb,0xd9,0x80,0xda, +0x60,0xdb,0x28,0xdc,0xde,0xdc,0x7c,0xdd,0x1,0xde,0x80,0xde, +0x0,0xdf,0x94,0xdf,0x48,0xe0,0xff,0xe0,0xd0,0xe1,0xe8,0xe2, +0x15,0xe4,0x4a,0xe5,0xc3,0xe6,0x66,0xe8,0x2,0xea,0xb9,0xeb, +0x7b,0xed,0x16,0xef,0x98,0xf0,0x14,0xf2,0x85,0xf3,0xf3,0xf4, +0x4f,0xf6,0x88,0xf7,0xb4,0xf8,0xe,0xfa,0xb1,0xfb,0x58,0xfd, +0xb5,0xfe,0xe5,0xff,0x2f,0x1,0x9c,0x2,0xd3,0x3,0x93,0x4, +0x2e,0x5,0xf4,0x5,0xb3,0x6,0x37,0x7,0x95,0x7,0xa,0x8, +0xda,0x8,0x6,0xa,0x31,0xb,0x2c,0xc,0x42,0xd,0x8a,0xe, +0x94,0xf,0x51,0x10,0x2d,0x11,0x15,0x12,0xab,0x12,0xe7,0x12, +0xdc,0x12,0xb6,0x12,0x9d,0x12,0x66,0x12,0xef,0x11,0x45,0x11, +0x8f,0x10,0xd,0x10,0xa3,0xf,0x3,0xf,0x45,0xe,0x7d,0xd, +0x98,0xc,0xbc,0xb,0xd6,0xa,0xd0,0x9,0xf3,0x8,0x32,0x8, +0x3d,0x7,0x42,0x6,0x7c,0x5,0xe9,0x4,0x96,0x4,0x71,0x4, +0x46,0x4,0x1e,0x4,0x13,0x4,0x10,0x4,0x4,0x4,0xe7,0x3, +0xb1,0x3,0x5f,0x3,0xdd,0x2,0x35,0x2,0xa1,0x1,0x28,0x1, +0x84,0x0,0xba,0xff,0x8,0xff,0x81,0xfe,0x29,0xfe,0xef,0xfd, +0xa2,0xfd,0x3e,0xfd,0xe8,0xfc,0xb4,0xfc,0xa4,0xfc,0xa4,0xfc, +0x92,0xfc,0x6d,0xfc,0x52,0xfc,0x58,0xfc,0x8d,0xfc,0xf0,0xfc, +0x72,0xfd,0x1e,0xfe,0x3,0xff,0xd7,0xff,0x58,0x0,0xf0,0x0, +0x6,0x2,0x51,0x3,0x50,0x4,0xd0,0x4,0x1,0x5,0x57,0x5, +0xc,0x6,0xe0,0x6,0x68,0x7,0xa1,0x7,0x1,0x8,0xb5,0x8, +0x7e,0x9,0x55,0xa,0x37,0xb,0x6,0xc,0xd9,0xc,0xa8,0xd, +0x5e,0xe,0x1f,0xf,0xf0,0xf,0xc5,0x10,0x97,0x11,0x21,0x12, +0x6a,0x12,0xd4,0x12,0x6e,0x13,0xf,0x14,0x91,0x14,0xc7,0x14, +0xb7,0x14,0x6d,0x14,0xf7,0x13,0x94,0x13,0x5a,0x13,0x20,0x13, +0x9e,0x12,0x8f,0x11,0x43,0x10,0x5e,0xf,0xfd,0xe,0xe3,0xe, +0xb3,0xe,0x1b,0xe,0x50,0xd,0xb6,0xc,0x5e,0xc,0x3f,0xc, +0x35,0xc,0x1e,0xc,0xea,0xb,0x6b,0xb,0xb6,0xa,0x41,0xa, +0x18,0xa,0xfe,0x9,0xe0,0x9,0x7f,0x9,0xb1,0x8,0xc5,0x7, +0x15,0x7,0x9f,0x6,0x41,0x6,0xc8,0x5,0xd7,0x4,0x4a,0x3, +0xb7,0x1,0xda,0x0,0x76,0x0,0xa9,0xff,0x2a,0xfe,0x6d,0xfc, +0xeb,0xfa,0xd9,0xf9,0x1b,0xf9,0x5e,0xf8,0x72,0xf7,0x63,0xf6, +0x51,0xf5,0x69,0xf4,0xcb,0xf3,0x8e,0xf3,0xbe,0xf3,0xe9,0xf3, +0x73,0xf3,0xbb,0xf2,0x84,0xf2,0xe4,0xf2,0x9a,0xf3,0x4c,0xf4, +0x9b,0xf4,0xb7,0xf4,0x20,0xf5,0xf4,0xf5,0x26,0xf7,0x94,0xf8, +0xe6,0xf9,0xda,0xfa,0x95,0xfb,0x69,0xfc,0x85,0xfd,0xd4,0xfe, +0x11,0x0,0xff,0x0,0x99,0x1,0x14,0x2,0xb0,0x2,0x9b,0x3, +0xb1,0x4,0x8c,0x5,0x5,0x6,0x48,0x6,0x8a,0x6,0xd2,0x6, +0x5,0x7,0x27,0x7,0x5b,0x7,0x79,0x7,0x48,0x7,0xff,0x6, +0x6,0x7,0x85,0x7,0x4e,0x8,0xfa,0x8,0x4c,0x9,0x8e,0x9, +0x4d,0xa,0xa5,0xb,0xfa,0xc,0xca,0xd,0x3e,0xe,0xd0,0xe, +0xc9,0xf,0xf6,0x10,0xd1,0x11,0x5c,0x12,0x1c,0x13,0x2a,0x14, +0x25,0x15,0xc3,0x15,0x23,0x16,0xab,0x16,0x7d,0x17,0x41,0x18, +0x83,0x18,0x28,0x18,0x99,0x17,0x34,0x17,0xdf,0x16,0x7a,0x16, +0xe4,0x15,0xd1,0x14,0x92,0x13,0xab,0x12,0xe9,0x11,0x20,0x11, +0x67,0x10,0x8a,0xf,0x9f,0xe,0xf3,0xd,0x4d,0xd,0x88,0xc, +0xd6,0xb,0x23,0xb,0x5b,0xa,0x8e,0x9,0xb5,0x8,0xe8,0x7, +0x5d,0x7,0x1c,0x7,0x4,0x7,0xc2,0x6,0x3f,0x6,0xe3,0x5, +0xdd,0x5,0xff,0x5,0x2c,0x6,0x2c,0x6,0xd1,0x5,0x63,0x5, +0x1d,0x5,0xdb,0x4,0x8d,0x4,0x37,0x4,0xd0,0x3,0x7e,0x3, +0x3f,0x3,0xd0,0x2,0x4f,0x2,0xf,0x2,0xef,0x1,0xa7,0x1, +0x20,0x1,0x5e,0x0,0xb7,0xff,0x65,0xff,0x8,0xff,0x51,0xfe, +0x75,0xfd,0xbe,0xfc,0x58,0xfc,0x1c,0xfc,0xb7,0xfb,0x54,0xfb, +0x27,0xfb,0xc,0xfb,0x1b,0xfb,0x68,0xfb,0x9f,0xfb,0xc5,0xfb, +0x2e,0xfc,0xbe,0xfc,0x43,0xfd,0xc9,0xfd,0x51,0xfe,0xe0,0xfe, +0x84,0xff,0x45,0x0,0x2f,0x1,0x2a,0x2,0xf5,0x2,0x9c,0x3, +0x57,0x4,0x12,0x5,0xc3,0x5,0x7e,0x6,0x7,0x7,0x36,0x7, +0x37,0x7,0xe,0x7,0xce,0x6,0xac,0x6,0x6a,0x6,0xd6,0x5, +0x34,0x5,0xa5,0x4,0x1c,0x4,0x90,0x3,0x10,0x3,0xce,0x2, +0xad,0x2,0x42,0x2,0x91,0x1,0xf4,0x0,0xc6,0x0,0x20,0x1, +0x71,0x1,0x3c,0x1,0xec,0x0,0xa,0x1,0x89,0x1,0x1e,0x2, +0x9e,0x2,0x1d,0x3,0xbc,0x3,0x4c,0x4,0x8d,0x4,0xab,0x4, +0x8,0x5,0x95,0x5,0xf2,0x5,0xf9,0x5,0xa7,0x5,0x30,0x5, +0x1,0x5,0xfe,0x4,0xb3,0x4,0x19,0x4,0x40,0x3,0x3f,0x2, +0x6b,0x1,0xbf,0x0,0xf7,0xff,0x1b,0xff,0x3e,0xfe,0x6c,0xfd, +0xc1,0xfc,0x25,0xfc,0x85,0xfb,0x4,0xfb,0xa7,0xfa,0x27,0xfa, +0x64,0xf9,0xab,0xf8,0x34,0xf8,0xde,0xf7,0x97,0xf7,0x52,0xf7, +0x10,0xf7,0x11,0xf7,0x4c,0xf7,0x92,0xf7,0x11,0xf8,0xe2,0xf8, +0xcd,0xf9,0x79,0xfa,0x99,0xfa,0xa7,0xfa,0x54,0xfb,0x3a,0xfc, +0xbd,0xfc,0xe6,0xfc,0xf3,0xfc,0x42,0xfd,0x7,0xfe,0xd8,0xfe, +0x61,0xff,0xcb,0xff,0x57,0x0,0x1,0x1,0x69,0x1,0x53,0x1, +0x3,0x1,0xcf,0x0,0xc6,0x0,0x95,0x0,0x4,0x0,0x64,0xff, +0x1b,0xff,0x38,0xff,0x8e,0xff,0xc3,0xff,0xd5,0xff,0xc,0x0, +0x67,0x0,0xd9,0x0,0x6d,0x1,0x6,0x2,0x79,0x2,0xbf,0x2, +0x22,0x3,0xf7,0x3,0xed,0x4,0x94,0x5,0x16,0x6,0xa6,0x6, +0x2b,0x7,0x72,0x7,0x49,0x7,0xbf,0x6,0x22,0x6,0xa2,0x5, +0x2,0x5,0xe0,0x3,0x73,0x2,0x49,0x1,0x80,0x0,0xeb,0xff, +0x44,0xff,0x3b,0xfe,0xfe,0xfc,0xed,0xfb,0xf7,0xfa,0xdc,0xf9, +0x6d,0xf8,0xaa,0xf6,0xcb,0xf4,0xf5,0xf2,0x2d,0xf1,0x5f,0xef, +0x84,0xed,0xda,0xeb,0x72,0xea,0xfc,0xe8,0x53,0xe7,0x7a,0xe5, +0xa1,0xe3,0x21,0xe2,0xc2,0xe0,0x2,0xdf,0x1,0xdd,0x28,0xdb, +0xa7,0xd9,0x90,0xd8,0xc3,0xd7,0x10,0xd7,0x7d,0xd6,0x2f,0xd6, +0x21,0xd6,0x1c,0xd6,0x26,0xd6,0x6b,0xd6,0xb0,0xd6,0x98,0xd6, +0x57,0xd6,0x56,0xd6,0x8f,0xd6,0xc3,0xd6,0xe2,0xd6,0xfd,0xd6, +0x2b,0xd7,0x94,0xd7,0x1b,0xd8,0x78,0xd8,0xbc,0xd8,0x1a,0xd9, +0x77,0xd9,0xa6,0xd9,0xa3,0xd9,0xc6,0xd9,0x63,0xda,0x1f,0xdb, +0xb8,0xdb,0x7b,0xdc,0x88,0xdd,0xeb,0xde,0xa2,0xe0,0x4c,0xe2, +0xf2,0xe3,0xeb,0xe5,0x0,0xe8,0xa,0xea,0x2b,0xec,0x4a,0xee, +0x6e,0xf0,0x98,0xf2,0x83,0xf4,0x4f,0xf6,0x20,0xf8,0xac,0xf9, +0xdc,0xfa,0xdc,0xfb,0xa8,0xfc,0x4a,0xfd,0xdb,0xfd,0x4b,0xfe, +0x93,0xfe,0xee,0xfe,0x8d,0xff,0x4c,0x0,0x12,0x1,0xf5,0x1, +0xed,0x2,0x0,0x4,0x20,0x5,0x1d,0x6,0x1c,0x7,0x38,0x8, +0x47,0x9,0x47,0xa,0x2f,0xb,0xf9,0xb,0xec,0xc,0xfe,0xd, +0xf9,0xe,0xef,0xf,0xba,0x10,0x30,0x11,0x97,0x11,0xee,0x11, +0xef,0x11,0x92,0x11,0xd6,0x10,0xd2,0xf,0xdc,0xe,0x13,0xe, +0x53,0xd,0x81,0xc,0x93,0xb,0x92,0xa,0x96,0x9,0xbc,0x8, +0x1c,0x8,0x93,0x7,0xd3,0x6,0xe2,0x5,0x9,0x5,0x52,0x4, +0xb7,0x3,0x47,0x3,0xd8,0x2,0x44,0x2,0xc9,0x1,0x84,0x1, +0x55,0x1,0x3a,0x1,0x2c,0x1,0x22,0x1,0x19,0x1,0xdb,0x0, +0x5e,0x0,0x8,0x0,0xf1,0xff,0xc0,0xff,0x59,0xff,0xde,0xfe, +0x6e,0xfe,0x39,0xfe,0x4d,0xfe,0x7d,0xfe,0xb4,0xfe,0xf0,0xfe, +0x20,0xff,0x53,0xff,0x97,0xff,0xde,0xff,0x23,0x0,0x44,0x0, +0x4,0x0,0x86,0xff,0x2d,0xff,0x19,0xff,0x2c,0xff,0x1c,0xff, +0xa7,0xfe,0x12,0xfe,0xdd,0xfd,0xff,0xfd,0x2b,0xfe,0x4e,0xfe, +0x66,0xfe,0x6e,0xfe,0x7d,0xfe,0xc3,0xfe,0x61,0xff,0x41,0x0, +0x1f,0x1,0xeb,0x1,0xe1,0x2,0x3a,0x4,0xeb,0x5,0xbc,0x7, +0x8a,0x9,0x62,0xb,0x3d,0xd,0xc5,0xe,0xe5,0xf,0x35,0x11, +0xe0,0x12,0x10,0x14,0x51,0x14,0xd,0x14,0xb9,0x13,0xac,0x13, +0xc6,0x13,0x5e,0x13,0x6d,0x12,0x78,0x11,0x94,0x10,0xdb,0xf, +0x68,0xf,0xf3,0xe,0x7b,0xe,0x6,0xe,0x3a,0xd,0x3d,0xc, +0xad,0xb,0x98,0xb,0x92,0xb,0x4d,0xb,0xb8,0xa,0xfe,0x9, +0xb3,0x9,0x6c,0xa,0xdc,0xb,0x2,0xd,0x69,0xd,0x6d,0xd, +0x91,0xd,0x2a,0xe,0x2d,0xf,0xf5,0xf,0xc6,0xf,0xb9,0xe, +0x87,0xd,0x93,0xc,0xce,0xb,0x28,0xb,0x83,0xa,0x9e,0x9, +0x55,0x8,0xde,0x6,0xba,0x5,0x2e,0x5,0xdf,0x4,0x3f,0x4, +0xfe,0x2,0x21,0x1,0x3b,0xff,0x6,0xfe,0x55,0xfd,0x6f,0xfc, +0x23,0xfb,0x9b,0xf9,0x19,0xf8,0x8,0xf7,0x94,0xf6,0xa2,0xf6, +0xcc,0xf6,0x67,0xf6,0x87,0xf5,0xe1,0xf4,0x92,0xf4,0x93,0xf4, +0xd6,0xf4,0xc6,0xf4,0x48,0xf4,0xe2,0xf3,0xb7,0xf3,0xe3,0xf3, +0x9a,0xf4,0x93,0xf5,0x60,0xf6,0xef,0xf6,0xa3,0xf7,0x2,0xf9, +0xe9,0xfa,0x9d,0xfc,0xb0,0xfd,0x67,0xfe,0x45,0xff,0x5b,0x0, +0x44,0x1,0xcd,0x1,0x0,0x2,0xe9,0x1,0xbf,0x1,0xb2,0x1, +0xad,0x1,0xa9,0x1,0xd0,0x1,0x6,0x2,0xf6,0x1,0xb3,0x1, +0xba,0x1,0x28,0x2,0x96,0x2,0xc9,0x2,0xec,0x2,0x32,0x3, +0xa4,0x3,0x4e,0x4,0x36,0x5,0x43,0x6,0x6b,0x7,0xc2,0x8, +0x33,0xa,0xa9,0xb,0x4d,0xd,0x26,0xf,0xbc,0x10,0xbb,0x11, +0x79,0x12,0x56,0x13,0x25,0x14,0xa5,0x14,0xd6,0x14,0xb1,0x14, +0x41,0x14,0xe3,0x13,0xc6,0x13,0xa3,0x13,0x4c,0x13,0xe1,0x12, +0x74,0x12,0x3,0x12,0x99,0x11,0x4e,0x11,0x8,0x11,0x87,0x10, +0xda,0xf,0x41,0xf,0xb7,0xe,0x5c,0xe,0x63,0xe,0x65,0xe, +0x1,0xe,0xa5,0xd,0xaf,0xd,0xe5,0xd,0xa,0xe,0x12,0xe, +0xec,0xd,0x9d,0xd,0x41,0xd,0xe3,0xc,0x77,0xc,0xf5,0xb, +0x6f,0xb,0x1,0xb,0x88,0xa,0xda,0x9,0x38,0x9,0xec,0x8, +0xd1,0x8,0x9e,0x8,0x4b,0x8,0x9,0x8,0xfa,0x7,0xff,0x7, +0xe8,0x7,0xa2,0x7,0x53,0x7,0x33,0x7,0x17,0x7,0xaf,0x6, +0x14,0x6,0x8e,0x5,0x30,0x5,0xbe,0x4,0xf6,0x3,0x22,0x3, +0x8f,0x2,0x9,0x2,0x8a,0x1,0x1c,0x1,0x81,0x0,0xe0,0xff, +0x7e,0xff,0x30,0xff,0xd9,0xfe,0x87,0xfe,0x4a,0xfe,0x43,0xfe, +0x7a,0xfe,0xe7,0xfe,0x7f,0xff,0x10,0x0,0x88,0x0,0x2c,0x1, +0x27,0x2,0x33,0x3,0xe1,0x3,0x24,0x4,0x58,0x4,0xc1,0x4, +0x3e,0x5,0x61,0x5,0x8,0x5,0x9a,0x4,0x76,0x4,0x88,0x4, +0x69,0x4,0xe8,0x3,0x5a,0x3,0xe9,0x2,0x55,0x2,0xa7,0x1, +0x1f,0x1,0xb2,0x0,0x46,0x0,0xff,0xff,0xec,0xff,0xe3,0xff, +0xfe,0xff,0x8c,0x0,0x67,0x1,0x53,0x2,0x53,0x3,0xd,0x4, +0x56,0x4,0xb5,0x4,0x5d,0x5,0xe6,0x5,0xc,0x6,0xdf,0x5, +0xac,0x5,0xa7,0x5,0xaf,0x5,0xae,0x5,0xa9,0x5,0x98,0x5, +0x73,0x5,0x30,0x5,0xb8,0x4,0x1a,0x4,0x9a,0x3,0x37,0x3, +0xab,0x2,0xf9,0x1,0x5c,0x1,0xeb,0x0,0xc2,0x0,0xd5,0x0, +0xfc,0x0,0x46,0x1,0x83,0x1,0x84,0x1,0xac,0x1,0x1b,0x2, +0x6f,0x2,0x88,0x2,0x52,0x2,0xda,0x1,0x9f,0x1,0x9e,0x1, +0x48,0x1,0xa3,0x0,0xa,0x0,0x7f,0xff,0xf0,0xfe,0x2a,0xfe, +0x3,0xfd,0xf1,0xfb,0x60,0xfb,0xf6,0xfa,0x59,0xfa,0xb6,0xf9, +0x54,0xf9,0x80,0xf9,0x2d,0xfa,0xcf,0xfa,0x3d,0xfb,0xd4,0xfb, +0xa8,0xfc,0x7c,0xfd,0x19,0xfe,0x73,0xfe,0xcf,0xfe,0x4b,0xff, +0x8e,0xff,0x6a,0xff,0x27,0xff,0xfd,0xfe,0xe7,0xfe,0xa3,0xfe, +0xdc,0xfd,0xc2,0xfc,0xc2,0xfb,0xc4,0xfa,0x85,0xf9,0x2b,0xf8, +0xf2,0xf6,0xce,0xf5,0xab,0xf4,0xc7,0xf3,0x7c,0xf3,0xc7,0xf3, +0x6e,0xf4,0x37,0xf5,0x15,0xf6,0x52,0xf7,0x10,0xf9,0xdc,0xfa, +0x63,0xfc,0xee,0xfd,0xa7,0xff,0x3d,0x1,0x80,0x2,0xb9,0x3, +0x21,0x5,0x8e,0x6,0xbf,0x7,0xa2,0x8,0x40,0x9,0x97,0x9, +0x9c,0x9,0x55,0x9,0xb3,0x8,0xa2,0x7,0x1f,0x6,0x27,0x4, +0xf3,0x1,0xf0,0xff,0x21,0xfe,0x43,0xfc,0x4f,0xfa,0x69,0xf8, +0xea,0xf6,0x2,0xf6,0x4c,0xf5,0x86,0xf4,0xd9,0xf3,0x45,0xf3, +0xc9,0xf2,0x82,0xf2,0x49,0xf2,0xd4,0xf1,0x37,0xf1,0xb4,0xf0, +0x33,0xf0,0x87,0xef,0xcc,0xee,0xf9,0xed,0xec,0xec,0xc0,0xeb, +0x92,0xea,0x60,0xe9,0xd,0xe8,0x7c,0xe6,0xea,0xe4,0x80,0xe3, +0x20,0xe2,0xe2,0xe0,0xc6,0xdf,0xa1,0xde,0x94,0xdd,0xbd,0xdc, +0xf4,0xdb,0x17,0xdb,0x54,0xda,0xf3,0xd9,0xc3,0xd9,0x63,0xd9, +0xe2,0xd8,0x6f,0xd8,0x29,0xd8,0x2a,0xd8,0x45,0xd8,0x3d,0xd8, +0xfb,0xd7,0x92,0xd7,0x4a,0xd7,0x12,0xd7,0xc2,0xd6,0xb9,0xd6, +0xec,0xd6,0xe3,0xd6,0xd0,0xd6,0x14,0xd7,0xc3,0xd7,0xd9,0xd8, +0x1e,0xda,0x76,0xdb,0xe5,0xdc,0x6a,0xde,0x46,0xe0,0x73,0xe2, +0x8c,0xe4,0xaa,0xe6,0xf7,0xe8,0x28,0xeb,0x4c,0xed,0xa8,0xef, +0x21,0xf2,0x81,0xf4,0xa4,0xf6,0x7c,0xf8,0x1f,0xfa,0x74,0xfb, +0x69,0xfc,0x41,0xfd,0xe5,0xfd,0x4,0xfe,0xed,0xfd,0xe6,0xfd, +0xa0,0xfd,0x3d,0xfd,0x3a,0xfd,0x72,0xfd,0x9e,0xfd,0xef,0xfd, +0x71,0xfe,0xf6,0xfe,0xaf,0xff,0xce,0x0,0xfd,0x1,0x11,0x3, +0x49,0x4,0x9e,0x5,0xdc,0x6,0x26,0x8,0xaa,0x9,0x5a,0xb, +0xf0,0xc,0x3a,0xe,0x67,0xf,0x94,0x10,0x99,0x11,0x7f,0x12, +0x3c,0x13,0xa3,0x13,0xd8,0x13,0xd7,0x13,0x66,0x13,0xb1,0x12, +0x1,0x12,0x47,0x11,0x65,0x10,0x44,0xf,0xe3,0xd,0x6a,0xc, +0x4,0xb,0xc7,0x9,0xb9,0x8,0xb6,0x7,0x99,0x6,0x8d,0x5, +0xd1,0x4,0x3c,0x4,0x95,0x3,0xf3,0x2,0x5f,0x2,0xc6,0x1, +0x2d,0x1,0x87,0x0,0xe0,0xff,0x76,0xff,0x35,0xff,0xcb,0xfe, +0x4e,0xfe,0xf5,0xfd,0xd7,0xfd,0x1,0xfe,0x3c,0xfe,0x49,0xfe, +0x5a,0xfe,0x9a,0xfe,0xe8,0xfe,0x3f,0xff,0xb6,0xff,0x49,0x0, +0xde,0x0,0x6b,0x1,0x16,0x2,0xe2,0x2,0xad,0x3,0x8c,0x4, +0x6b,0x5,0x18,0x6,0xaf,0x6,0x26,0x7,0x4d,0x7,0x42,0x7, +0x10,0x7,0xad,0x6,0x21,0x6,0x4f,0x5,0x55,0x4,0x95,0x3, +0x4,0x3,0x66,0x2,0xd4,0x1,0x7d,0x1,0x5f,0x1,0x66,0x1, +0x9e,0x1,0x18,0x2,0xc7,0x2,0x99,0x3,0x76,0x4,0x6b,0x5, +0xa2,0x6,0xd,0x8,0x8c,0x9,0x10,0xb,0x80,0xc,0x11,0xe, +0xda,0xf,0x70,0x11,0xc1,0x12,0xe,0x14,0x28,0x15,0xeb,0x15, +0x91,0x16,0x18,0x17,0x36,0x17,0xd4,0x16,0x1f,0x16,0x53,0x15, +0x90,0x14,0xb1,0x13,0x85,0x12,0x46,0x11,0x46,0x10,0x71,0xf, +0xa6,0xe,0xcd,0xd,0xd6,0xc,0x15,0xc,0xaa,0xb,0x34,0xb, +0xa3,0xa,0x12,0xa,0x8a,0x9,0x58,0x9,0x7a,0x9,0x63,0x9, +0xe8,0x8,0x6d,0x8,0x58,0x8,0xc4,0x8,0x17,0x9,0xad,0x8, +0xed,0x7,0x92,0x7,0x91,0x7,0x94,0x7,0x4a,0x7,0x90,0x6, +0xda,0x5,0x6a,0x5,0xce,0x4,0xe5,0x3,0x6,0x3,0x54,0x2, +0xb6,0x1,0xed,0x0,0xf7,0xff,0x2,0xff,0x1b,0xfe,0x82,0xfd, +0x2b,0xfd,0x62,0xfc,0x13,0xfb,0xb6,0xf9,0x73,0xf8,0x7c,0xf7, +0xbf,0xf6,0xbe,0xf5,0x58,0xf4,0xb9,0xf2,0x3d,0xf1,0x51,0xf0, +0xc4,0xef,0x56,0xef,0xff,0xee,0x96,0xee,0x5e,0xee,0xb3,0xee, +0x58,0xef,0x32,0xf0,0x40,0xf1,0x4b,0xf2,0x75,0xf3,0xbe,0xf4, +0xed,0xf5,0x57,0xf7,0x35,0xf9,0x26,0xfb,0xf2,0xfc,0x95,0xfe, +0x21,0x0,0xdb,0x1,0xe0,0x3,0xec,0x5,0x92,0x7,0x9b,0x8, +0x52,0x9,0xd,0xa,0xc5,0xa,0x5d,0xb,0xa6,0xb,0x82,0xb, +0x21,0xb,0xb3,0xa,0x66,0xa,0x6d,0xa,0x90,0xa,0x95,0xa, +0x99,0xa,0xa0,0xa,0xcb,0xa,0x4a,0xb,0xe0,0xb,0x6d,0xc, +0x10,0xd,0xb8,0xd,0x5c,0xe,0xfe,0xe,0xb4,0xf,0xc4,0x10, +0xef,0x11,0xc6,0x12,0x8c,0x13,0x76,0x14,0x77,0x15,0x94,0x16, +0x80,0x17,0x6,0x18,0x7a,0x18,0xe4,0x18,0x1d,0x19,0x2b,0x19, +0xf8,0x18,0x88,0x18,0x0,0x18,0x3d,0x17,0x40,0x16,0x64,0x15, +0xb8,0x14,0x1c,0x14,0x7a,0x13,0xb5,0x12,0xe2,0x11,0x42,0x11, +0xd9,0x10,0x79,0x10,0xd8,0xf,0xda,0xe,0xcd,0xd,0xe4,0xc, +0xfb,0xb,0x9,0xb,0x11,0xa,0xc,0x9,0x17,0x8,0x46,0x7, +0xa4,0x6,0x37,0x6,0xe9,0x5,0xbc,0x5,0xab,0x5,0x79,0x5, +0x28,0x5,0xe8,0x4,0xca,0x4,0xd3,0x4,0xd6,0x4,0x9a,0x4, +0x3f,0x4,0x1c,0x4,0x64,0x4,0xd7,0x4,0xe,0x5,0x1e,0x5, +0x4b,0x5,0x8c,0x5,0xb7,0x5,0x94,0x5,0x33,0x5,0xfc,0x4, +0xcf,0x4,0x34,0x4,0x53,0x3,0x9b,0x2,0x10,0x2,0x8f,0x1, +0xfe,0x0,0x2d,0x0,0x43,0xff,0xb6,0xfe,0x6d,0xfe,0x6,0xfe, +0xa9,0xfd,0x7c,0xfd,0x59,0xfd,0x4c,0xfd,0x7c,0xfd,0xfc,0xfd, +0xb5,0xfe,0x50,0xff,0xc1,0xff,0x52,0x0,0x12,0x1,0xe4,0x1, +0xa0,0x2,0x49,0x3,0x16,0x4,0xf,0x5,0x7,0x6,0xda,0x6, +0x92,0x7,0x73,0x8,0x7d,0x9,0x43,0xa,0x85,0xa,0x60,0xa, +0x2a,0xa,0x1b,0xa,0xde,0x9,0x35,0x9,0x57,0x8,0x75,0x7, +0xbe,0x6,0x4e,0x6,0xe7,0x5,0x56,0x5,0xa7,0x4,0x13,0x4, +0xc2,0x3,0x77,0x3,0x7,0x3,0x9c,0x2,0x19,0x2,0x6b,0x1, +0xfa,0x0,0xdb,0x0,0xb5,0x0,0x96,0x0,0xc3,0x0,0x33,0x1, +0xbb,0x1,0x45,0x2,0xb9,0x2,0x32,0x3,0xe4,0x3,0xae,0x4, +0x2c,0x5,0x2e,0x5,0xff,0x4,0x6,0x5,0x30,0x5,0x37,0x5, +0x8,0x5,0xd0,0x4,0xcb,0x4,0xe8,0x4,0xde,0x4,0xba,0x4, +0x86,0x4,0x1b,0x4,0x8e,0x3,0xf7,0x2,0x47,0x2,0x89,0x1, +0xb4,0x0,0x9f,0xff,0x5c,0xfe,0x30,0xfd,0x53,0xfc,0x9a,0xfb, +0xb5,0xfa,0xcd,0xf9,0x1d,0xf9,0x89,0xf8,0x1d,0xf8,0xe6,0xf7, +0xb7,0xf7,0xa5,0xf7,0xd3,0xf7,0x21,0xf8,0x99,0xf8,0x45,0xf9, +0xf9,0xf9,0xcb,0xfa,0xd5,0xfb,0xdc,0xfc,0xe2,0xfd,0xde,0xfe, +0x9d,0xff,0x7d,0x0,0xb6,0x1,0xa0,0x2,0xfa,0x2,0x34,0x3, +0x71,0x3,0xb7,0x3,0xf7,0x3,0xd1,0x3,0x40,0x3,0x91,0x2, +0xc8,0x1,0xef,0x0,0x16,0x0,0x26,0xff,0x32,0xfe,0x52,0xfd, +0x74,0xfc,0xbb,0xfb,0x52,0xfb,0x24,0xfb,0x37,0xfb,0xa1,0xfb, +0x2d,0xfc,0x8b,0xfc,0xd1,0xfc,0x80,0xfd,0xc2,0xfe,0xb,0x0, +0x5,0x1,0xeb,0x1,0xfd,0x2,0x50,0x4,0xb9,0x5,0xf4,0x6, +0x21,0x8,0x56,0x9,0x55,0xa,0xf9,0xa,0x15,0xb,0xea,0xa, +0x4,0xb,0xf6,0xa,0x2c,0xa,0xed,0x8,0x6f,0x7,0xe5,0x5, +0xb2,0x4,0x87,0x3,0xf6,0x1,0x17,0x0,0x1,0xfe,0xf4,0xfb, +0x35,0xfa,0x89,0xf8,0xc7,0xf6,0xf4,0xf4,0xf9,0xf2,0xea,0xf0, +0x23,0xef,0xdb,0xed,0xc9,0xec,0x91,0xeb,0x4d,0xea,0x28,0xe9, +0x2b,0xe8,0x65,0xe7,0xad,0xe6,0xe2,0xe5,0x4d,0xe5,0xf5,0xe4, +0x72,0xe4,0xb0,0xe3,0xe,0xe3,0xd7,0xe2,0xf6,0xe2,0xf3,0xe2, +0x60,0xe2,0x7b,0xe1,0xdb,0xe0,0x9a,0xe0,0x63,0xe0,0xdd,0xdf, +0xe6,0xde,0xcf,0xdd,0x8,0xdd,0x94,0xdc,0x1a,0xdc,0x6a,0xdb, +0xb9,0xda,0x33,0xda,0xb7,0xd9,0x3a,0xd9,0xc3,0xd8,0x58,0xd8, +0x26,0xd8,0xa,0xd8,0xbf,0xd7,0x82,0xd7,0x98,0xd7,0xd,0xd8, +0xdc,0xd8,0xa3,0xd9,0x4c,0xda,0x41,0xdb,0x85,0xdc,0xef,0xdd, +0x7f,0xdf,0x4,0xe1,0x6a,0xe2,0xd0,0xe3,0x44,0xe5,0xe9,0xe6, +0xc3,0xe8,0xab,0xea,0x99,0xec,0x65,0xee,0x0,0xf0,0xca,0xf1, +0xe5,0xf3,0xdc,0xf5,0x62,0xf7,0xac,0xf8,0xe9,0xf9,0x12,0xfb, +0x2b,0xfc,0x10,0xfd,0xab,0xfd,0x61,0xfe,0x56,0xff,0x20,0x0, +0x9a,0x0,0x21,0x1,0xc,0x2,0x38,0x3,0xf,0x4,0x6d,0x4, +0xd4,0x4,0x85,0x5,0x54,0x6,0xa,0x7,0x77,0x7,0xa6,0x7, +0xea,0x7,0x66,0x8,0xe7,0x8,0x54,0x9,0xe0,0x9,0x83,0xa, +0xe9,0xa,0x1d,0xb,0x6e,0xb,0xdb,0xb,0x30,0xc,0x5a,0xc, +0x2e,0xc,0x9e,0xb,0xf1,0xa,0x68,0xa,0xeb,0x9,0x5a,0x9, +0xb4,0x8,0xfa,0x7,0x37,0x7,0x92,0x6,0x26,0x6,0xe4,0x5, +0x9b,0x5,0x25,0x5,0x83,0x4,0xd7,0x3,0x23,0x3,0x64,0x2, +0xb8,0x1,0x7,0x1,0x10,0x0,0x4,0xff,0x20,0xfe,0x51,0xfd, +0xc8,0xfc,0xb4,0xfc,0xa5,0xfc,0x5a,0xfc,0x15,0xfc,0xf5,0xfb, +0xec,0xfb,0x13,0xfc,0x70,0xfc,0xbe,0xfc,0xb6,0xfc,0x86,0xfc, +0x99,0xfc,0xfa,0xfc,0x72,0xfd,0xec,0xfd,0x41,0xfe,0x43,0xfe, +0x3f,0xfe,0x93,0xfe,0x1c,0xff,0x91,0xff,0xda,0xff,0xda,0xff, +0x9e,0xff,0x7c,0xff,0xa0,0xff,0xd5,0xff,0xc9,0xff,0x72,0xff, +0x19,0xff,0xf7,0xfe,0x0,0xff,0x18,0xff,0x59,0xff,0xf2,0xff, +0xd9,0x0,0xd0,0x1,0xc1,0x2,0xb1,0x3,0xb9,0x4,0x12,0x6, +0xb5,0x7,0x10,0x9,0xb4,0x9,0x2,0xa,0x81,0xa,0x3a,0xb, +0x20,0xc,0xf7,0xc,0x56,0xd,0x83,0xd,0x1b,0xe,0xd,0xf, +0xfd,0xf,0xbe,0x10,0x37,0x11,0x79,0x11,0x9d,0x11,0xb0,0x11, +0x9c,0x11,0x2c,0x11,0x7f,0x10,0xfb,0xf,0xb9,0xf,0x90,0xf, +0x45,0xf,0xe1,0xe,0xe9,0xe,0x90,0xf,0x47,0x10,0x7e,0x10, +0x3f,0x10,0x15,0x10,0x40,0x10,0x61,0x10,0x20,0x10,0x73,0xf, +0x79,0xe,0x7a,0xd,0xa8,0xc,0xa,0xc,0x8c,0xb,0xf5,0xa, +0x24,0xa,0x33,0x9,0x5b,0x8,0xd1,0x7,0x70,0x7,0xe7,0x6, +0x24,0x6,0x37,0x5,0x21,0x4,0x6,0x3,0x45,0x2,0x6,0x2, +0xce,0x1,0x38,0x1,0x88,0x0,0xf4,0xff,0x8e,0xff,0xa5,0xff, +0x6,0x0,0x14,0x0,0xac,0xff,0xf9,0xfe,0x29,0xfe,0x8c,0xfd, +0x34,0xfd,0xb3,0xfc,0xb1,0xfb,0x4a,0xfa,0xda,0xf8,0xa3,0xf7, +0xc1,0xf6,0x33,0xf6,0xd7,0xf5,0x56,0xf5,0x69,0xf4,0x6d,0xf3, +0xf,0xf3,0x76,0xf3,0x24,0xf4,0x8a,0xf4,0x6e,0xf4,0x8,0xf4, +0xea,0xf3,0x7c,0xf4,0x6c,0xf5,0x30,0xf6,0xb3,0xf6,0x3,0xf7, +0x48,0xf7,0xf1,0xf7,0x16,0xf9,0x73,0xfa,0xbf,0xfb,0x95,0xfc, +0xd,0xfd,0x95,0xfd,0x46,0xfe,0x3c,0xff,0x5b,0x0,0xe1,0x0, +0xab,0x0,0x5b,0x0,0x56,0x0,0xd1,0x0,0x9d,0x1,0x2b,0x2, +0x7c,0x2,0xd1,0x2,0x32,0x3,0xd7,0x3,0xe2,0x4,0x19,0x6, +0x4c,0x7,0x2e,0x8,0x7d,0x8,0x98,0x8,0x18,0x9,0x12,0xa, +0x7,0xb,0x77,0xb,0x89,0xb,0xc5,0xb,0x5b,0xc,0x1d,0xd, +0xc4,0xd,0x2d,0xe,0x7e,0xe,0xc7,0xe,0xe5,0xe,0xd3,0xe, +0xa9,0xe,0x8b,0xe,0x80,0xe,0x46,0xe,0xbb,0xd,0x30,0xd, +0xfe,0xc,0x33,0xd,0x80,0xd,0x8a,0xd,0x5a,0xd,0x2d,0xd, +0x32,0xd,0x70,0xd,0x8a,0xd,0x4b,0xd,0x4,0xd,0xc4,0xc, +0x59,0xc,0xc9,0xb,0x22,0xb,0xa1,0xa,0x81,0xa,0x46,0xa, +0x9c,0x9,0xf7,0x8,0x83,0x8,0x14,0x8,0xad,0x7,0x3e,0x7, +0xdd,0x6,0xa9,0x6,0x38,0x6,0x74,0x5,0xd2,0x4,0x76,0x4, +0x6e,0x4,0xa4,0x4,0x82,0x4,0x14,0x4,0xf1,0x3,0x3,0x4, +0x19,0x4,0x54,0x4,0x7f,0x4,0x6f,0x4,0x49,0x4,0x24,0x4, +0x1a,0x4,0x35,0x4,0x49,0x4,0x40,0x4,0x16,0x4,0xdc,0x3, +0xd6,0x3,0x10,0x4,0x33,0x4,0xfd,0x3,0xae,0x3,0x92,0x3, +0x97,0x3,0x96,0x3,0x77,0x3,0x42,0x3,0x55,0x3,0xa3,0x3, +0xa0,0x3,0x60,0x3,0x5d,0x3,0xc2,0x3,0x88,0x4,0x22,0x5, +0xff,0x4,0xaa,0x4,0x0,0x5,0xf8,0x5,0xe1,0x6,0x24,0x7, +0xdf,0x6,0xd0,0x6,0x45,0x7,0xdd,0x7,0x12,0x8,0xbc,0x7, +0x53,0x7,0x57,0x7,0x8f,0x7,0x83,0x7,0x4b,0x7,0x2f,0x7, +0x30,0x7,0x28,0x7,0xeb,0x6,0x6e,0x6,0xf3,0x5,0xbb,0x5, +0x9f,0x5,0x29,0x5,0x2c,0x4,0x1e,0x3,0x74,0x2,0x10,0x2, +0xb2,0x1,0x44,0x1,0xc6,0x0,0x51,0x0,0xf1,0xff,0xad,0xff, +0x8a,0xff,0x77,0xff,0x62,0xff,0x3a,0xff,0xfb,0xfe,0xe5,0xfe, +0x20,0xff,0x7c,0xff,0xc6,0xff,0x11,0x0,0xa8,0x0,0x8f,0x1, +0x70,0x2,0x4f,0x3,0x3e,0x4,0xf5,0x4,0x83,0x5,0x4,0x6, +0x32,0x6,0x1a,0x6,0xdd,0x5,0x73,0x5,0x5,0x5,0x83,0x4, +0xd9,0x3,0x36,0x3,0x61,0x2,0x4b,0x1,0x70,0x0,0xba,0xff, +0xd4,0xfe,0xe1,0xfd,0xea,0xfc,0xf3,0xfb,0x2e,0xfb,0x80,0xfa, +0xdd,0xf9,0x80,0xf9,0x81,0xf9,0xce,0xf9,0x2e,0xfa,0x73,0xfa, +0xe1,0xfa,0xc3,0xfb,0xd5,0xfc,0xa5,0xfd,0x2a,0xfe,0xa7,0xfe, +0x48,0xff,0x1,0x0,0x9b,0x0,0xdc,0x0,0xdf,0x0,0xf0,0x0, +0x14,0x1,0x2e,0x1,0x41,0x1,0x3d,0x1,0x2c,0x1,0x1f,0x1, +0xc2,0x0,0xa,0x0,0x87,0xff,0x56,0xff,0x2c,0xff,0xf3,0xfe, +0x70,0xfe,0xa7,0xfd,0x41,0xfd,0x72,0xfd,0xc8,0xfd,0xa,0xfe, +0x37,0xfe,0x77,0xfe,0xfa,0xfe,0xa5,0xff,0x63,0x0,0x3a,0x1, +0xec,0x1,0x74,0x2,0x24,0x3,0xf4,0x3,0xb6,0x4,0x60,0x5, +0xe3,0x5,0x49,0x6,0xab,0x6,0xe7,0x6,0xe6,0x6,0xcd,0x6, +0xb8,0x6,0x9e,0x6,0x47,0x6,0x88,0x5,0x9c,0x4,0xeb,0x3, +0x74,0x3,0xde,0x2,0xf7,0x1,0xda,0x0,0xa9,0xff,0x82,0xfe, +0x82,0xfd,0x76,0xfc,0xd,0xfb,0x58,0xf9,0xb0,0xf7,0x2a,0xf6, +0x8a,0xf4,0xbc,0xf2,0xf0,0xf0,0x36,0xef,0x87,0xed,0xec,0xeb, +0x5a,0xea,0xd2,0xe8,0x7d,0xe7,0x67,0xe6,0x47,0xe5,0xed,0xe3, +0x9a,0xe2,0x9a,0xe1,0xcd,0xe0,0x11,0xe0,0x5b,0xdf,0x86,0xde, +0xd0,0xdd,0x94,0xdd,0x8d,0xdd,0x5b,0xdd,0x7,0xdd,0xbd,0xdc, +0xaa,0xdc,0xab,0xdc,0x75,0xdc,0xd,0xdc,0x7a,0xdb,0xcc,0xda, +0x56,0xda,0xa,0xda,0xa5,0xd9,0x41,0xd9,0xe4,0xd8,0x74,0xd8, +0x24,0xd8,0x2,0xd8,0xe6,0xd7,0xdf,0xd7,0xf4,0xd7,0xfe,0xd7, +0xf3,0xd7,0xed,0xd7,0x1e,0xd8,0xbb,0xd8,0xa0,0xd9,0x91,0xda, +0xba,0xdb,0x41,0xdd,0xb,0xdf,0x16,0xe1,0x53,0xe3,0x94,0xe5, +0xd0,0xe7,0xe7,0xe9,0xcb,0xeb,0xbd,0xed,0xc0,0xef,0x9f,0xf1, +0x63,0xf3,0xeb,0xf4,0x18,0xf6,0x48,0xf7,0xd9,0xf8,0xad,0xfa, +0x5b,0xfc,0x93,0xfd,0x59,0xfe,0xf7,0xfe,0xd1,0xff,0xea,0x0, +0xb8,0x1,0xf3,0x1,0xf1,0x1,0xf8,0x1,0x19,0x2,0x4f,0x2, +0x8d,0x2,0xfe,0x2,0xba,0x3,0x61,0x4,0xcf,0x4,0x5e,0x5, +0x4c,0x6,0xa3,0x7,0x1f,0x9,0x3e,0xa,0xf4,0xa,0xad,0xb, +0x9a,0xc,0xa2,0xd,0x80,0xe,0xd,0xf,0x6b,0xf,0x9c,0xf, +0x80,0xf,0x5e,0xf,0x6f,0xf,0x78,0xf,0x49,0xf,0xc8,0xe, +0xe8,0xd,0xf7,0xc,0x24,0xc,0x46,0xb,0x57,0xa,0x54,0x9, +0x25,0x8,0xd1,0x6,0x6e,0x5,0x26,0x4,0x31,0x3,0x7e,0x2, +0xc5,0x1,0xd7,0x0,0xe3,0xff,0x66,0xff,0x71,0xff,0x8f,0xff, +0x5e,0xff,0xcd,0xfe,0x3f,0xfe,0x1a,0xfe,0x30,0xfe,0x31,0xfe, +0x5,0xfe,0xb6,0xfd,0x98,0xfd,0xe4,0xfd,0x50,0xfe,0xb9,0xfe, +0x41,0xff,0xeb,0xff,0x93,0x0,0xf5,0x0,0x16,0x1,0x40,0x1, +0x8d,0x1,0x2,0x2,0x81,0x2,0x91,0x2,0x41,0x2,0x29,0x2, +0x82,0x2,0x38,0x3,0x7,0x4,0x71,0x4,0x70,0x4,0x67,0x4, +0x93,0x4,0xee,0x4,0x34,0x5,0x2b,0x5,0xe0,0x4,0x6f,0x4, +0x6,0x4,0xe1,0x3,0x2,0x4,0x4b,0x4,0x88,0x4,0xa3,0x4, +0xe5,0x4,0x92,0x5,0x85,0x6,0x79,0x7,0x53,0x8,0x28,0x9, +0x1,0xa,0xd1,0xa,0xbc,0xb,0xe1,0xc,0x25,0xe,0x55,0xf, +0x2c,0x10,0xb7,0x10,0x73,0x11,0x87,0x12,0x92,0x13,0x44,0x14, +0x87,0x14,0x96,0x14,0xbe,0x14,0xca,0x14,0x76,0x14,0xe5,0x13, +0x2c,0x13,0x5b,0x12,0x77,0x11,0x38,0x10,0xdd,0xe,0xf6,0xd, +0x21,0xd,0xe5,0xb,0x9e,0xa,0xaa,0x9,0x25,0x9,0xf9,0x8, +0x9b,0x8,0xdd,0x7,0x3f,0x7,0x16,0x7,0x57,0x7,0xbc,0x7, +0xfd,0x7,0x3b,0x8,0x62,0x8,0x2d,0x8,0x1e,0x8,0xb2,0x8, +0x7f,0x9,0x2,0xa,0xf9,0x9,0x5d,0x9,0xd1,0x8,0xd2,0x8, +0xfb,0x8,0xcb,0x8,0x30,0x8,0x3e,0x7,0x2e,0x6,0x4a,0x5, +0x95,0x4,0xf2,0x3,0x54,0x3,0x86,0x2,0x64,0x1,0x44,0x0, +0x70,0xff,0xe0,0xfe,0x77,0xfe,0x4,0xfe,0x4a,0xfd,0x3d,0xfc, +0x2e,0xfb,0x94,0xfa,0x66,0xfa,0x18,0xfa,0x61,0xf9,0x5e,0xf8, +0x81,0xf7,0x52,0xf7,0x7a,0xf7,0x3e,0xf7,0xcb,0xf6,0x9f,0xf6, +0xbc,0xf6,0xf8,0xf6,0x3b,0xf7,0xaa,0xf7,0x59,0xf8,0xe0,0xf8, +0x9,0xf9,0x1c,0xf9,0x69,0xf9,0x43,0xfa,0x6d,0xfb,0x1f,0xfc, +0x4c,0xfc,0x88,0xfc,0x13,0xfd,0xe6,0xfd,0xd7,0xfe,0xa6,0xff, +0x28,0x0,0x44,0x0,0x1a,0x0,0x9,0x0,0x39,0x0,0x79,0x0, +0x79,0x0,0xfb,0xff,0x1e,0xff,0x6f,0xfe,0x5c,0xfe,0xb3,0xfe, +0xe6,0xfe,0xde,0xfe,0xe9,0xfe,0x2a,0xff,0xb8,0xff,0x96,0x0, +0x7f,0x1,0x5a,0x2,0x38,0x3,0xfb,0x3,0xac,0x4,0x80,0x5, +0x88,0x6,0xc7,0x7,0x5,0x9,0xcb,0x9,0x47,0xa,0xf4,0xa, +0xc2,0xb,0x9c,0xc,0x7f,0xd,0xb,0xe,0x21,0xe,0x3,0xe, +0xc7,0xd,0x89,0xd,0x6d,0xd,0x45,0xd,0xd7,0xc,0xc,0xc, +0x1b,0xb,0x7a,0xa,0x2d,0xa,0xe5,0x9,0x97,0x9,0x1f,0x9, +0x73,0x8,0x4,0x8,0x0,0x8,0x17,0x8,0xa,0x8,0xd0,0x7, +0x93,0x7,0x8a,0x7,0xad,0x7,0xe3,0x7,0x1d,0x8,0x5e,0x8, +0xa8,0x8,0xd7,0x8,0xdc,0x8,0xfd,0x8,0x58,0x9,0xb2,0x9, +0xd6,0x9,0xc2,0x9,0x85,0x9,0x3c,0x9,0x3,0x9,0xe4,0x8, +0xd2,0x8,0xae,0x8,0x58,0x8,0xd5,0x7,0x66,0x7,0x45,0x7, +0x68,0x7,0x67,0x7,0xf2,0x6,0x60,0x6,0xe,0x6,0xdd,0x5, +0xc8,0x5,0xc7,0x5,0x84,0x5,0x17,0x5,0xe4,0x4,0xed,0x4, +0x23,0x5,0x6f,0x5,0xa2,0x5,0xcf,0x5,0x16,0x6,0x79,0x6, +0xee,0x6,0x40,0x7,0x6c,0x7,0xc5,0x7,0x3c,0x8,0x86,0x8, +0xbb,0x8,0xd,0x9,0x90,0x9,0x2d,0xa,0x87,0xa,0x94,0xa, +0xbb,0xa,0x8,0xb,0x49,0xb,0x73,0xb,0x46,0xb,0xa5,0xa, +0xb,0xa,0xbd,0x9,0x86,0x9,0x4b,0x9,0xdf,0x8,0x1e,0x8, +0x6d,0x7,0x23,0x7,0x11,0x7,0xe8,0x6,0x75,0x6,0xdb,0x5, +0x6e,0x5,0x22,0x5,0xc7,0x4,0x67,0x4,0x19,0x4,0xfa,0x3, +0xfd,0x3,0xed,0x3,0xe2,0x3,0x1a,0x4,0x9a,0x4,0x34,0x5, +0xb3,0x5,0x3,0x6,0x3f,0x6,0x78,0x6,0xa7,0x6,0xae,0x6, +0x89,0x6,0x5e,0x6,0x1b,0x6,0xb9,0x5,0x82,0x5,0x70,0x5, +0x33,0x5,0xeb,0x4,0xbc,0x4,0x9c,0x4,0x91,0x4,0x61,0x4, +0xbd,0x3,0xde,0x2,0x1f,0x2,0x97,0x1,0x37,0x1,0xcc,0x0, +0x3a,0x0,0xa1,0xff,0x26,0xff,0x0,0xff,0x61,0xff,0xf1,0xff, +0x33,0x0,0x32,0x0,0x20,0x0,0xfe,0xff,0x4,0x0,0x54,0x0, +0x9f,0x0,0xa0,0x0,0x6c,0x0,0x2a,0x0,0xf9,0xff,0x2,0x0, +0x50,0x0,0x9d,0x0,0x9d,0x0,0x43,0x0,0xb2,0xff,0x39,0xff, +0xfc,0xfe,0xb9,0xfe,0x40,0xfe,0x8b,0xfd,0x95,0xfc,0xd9,0xfb, +0xc9,0xfb,0xfb,0xfb,0xf8,0xfb,0xc6,0xfb,0x73,0xfb,0x36,0xfb, +0x4f,0xfb,0xb2,0xfb,0x2d,0xfc,0x6f,0xfc,0x56,0xfc,0x35,0xfc, +0x29,0xfc,0x3a,0xfc,0xc1,0xfc,0x8c,0xfd,0xf8,0xfd,0x18,0xfe, +0x4a,0xfe,0x96,0xfe,0xff,0xfe,0x97,0xff,0x47,0x0,0xe8,0x0, +0x45,0x1,0x62,0x1,0xa7,0x1,0x58,0x2,0x30,0x3,0xc5,0x3, +0xf2,0x3,0xe6,0x3,0xa,0x4,0x82,0x4,0xfd,0x4,0x2b,0x5, +0x20,0x5,0x29,0x5,0x61,0x5,0xad,0x5,0x12,0x6,0x77,0x6, +0x92,0x6,0x82,0x6,0x77,0x6,0x1f,0x6,0x60,0x5,0x79,0x4, +0x78,0x3,0x56,0x2,0xf9,0x0,0x45,0xff,0x90,0xfd,0x4b,0xfc, +0x70,0xfb,0x9d,0xfa,0x83,0xf9,0x56,0xf8,0x8c,0xf7,0x1c,0xf7, +0x98,0xf6,0xb5,0xf5,0x86,0xf4,0x59,0xf3,0x47,0xf2,0x30,0xf1, +0x8,0xf0,0xdd,0xee,0xe2,0xed,0x38,0xed,0xa4,0xec,0xfd,0xeb, +0x54,0xeb,0xb1,0xea,0x1f,0xea,0x7a,0xe9,0x88,0xe8,0x61,0xe7, +0x1e,0xe6,0xb8,0xe4,0x4d,0xe3,0xce,0xe1,0x1e,0xe0,0x89,0xde, +0x3f,0xdd,0x23,0xdc,0x2b,0xdb,0x3a,0xda,0x3c,0xd9,0x55,0xd8, +0x8a,0xd7,0xd8,0xd6,0x60,0xd6,0x4,0xd6,0x98,0xd5,0x44,0xd5, +0x31,0xd5,0x65,0xd5,0xf6,0xd5,0xd3,0xd6,0xda,0xd7,0xe,0xd9, +0x5d,0xda,0xb8,0xdb,0x35,0xdd,0xc2,0xde,0x39,0xe0,0x99,0xe1, +0xd2,0xe2,0xea,0xe3,0x9,0xe5,0x29,0xe6,0x2b,0xe7,0xff,0xe7, +0xb2,0xe8,0x73,0xe9,0x41,0xea,0xfd,0xea,0xd0,0xeb,0xde,0xec, +0xfd,0xed,0x7,0xef,0x11,0xf0,0x41,0xf1,0x9b,0xf2,0x11,0xf4, +0x82,0xf5,0xb9,0xf6,0xba,0xf7,0xaf,0xf8,0x88,0xf9,0x47,0xfa, +0x12,0xfb,0xd1,0xfb,0x73,0xfc,0x9,0xfd,0x94,0xfd,0x53,0xfe, +0x7e,0xff,0xb8,0x0,0xbf,0x1,0xbf,0x2,0xb1,0x3,0x7c,0x4, +0x4c,0x5,0x20,0x6,0xbd,0x6,0x21,0x7,0x74,0x7,0xc6,0x7, +0x30,0x8,0xc0,0x8,0x6a,0x9,0x18,0xa,0xab,0xa,0x2c,0xb, +0xcd,0xb,0x5f,0xc,0xaa,0xc,0xb7,0xc,0x66,0xc,0xcd,0xb, +0x53,0xb,0xc1,0xa,0xc1,0x9,0x92,0x8,0x54,0x7,0x27,0x6, +0x64,0x5,0xd2,0x4,0x13,0x4,0x3c,0x3,0x51,0x2,0x54,0x1, +0x7f,0x0,0xcb,0xff,0x14,0xff,0x87,0xfe,0x48,0xfe,0x9,0xfe, +0x8b,0xfd,0x26,0xfd,0x4c,0xfd,0xf7,0xfd,0xbf,0xfe,0x21,0xff, +0xa,0xff,0x6,0xff,0x6f,0xff,0xfc,0xff,0x40,0x0,0x14,0x0, +0xb5,0xff,0x60,0xff,0xf8,0xfe,0x6d,0xfe,0xf8,0xfd,0xa7,0xfd, +0x4c,0xfd,0xc4,0xfc,0x13,0xfc,0x96,0xfb,0xa0,0xfb,0xeb,0xfb, +0xb,0xfc,0x0,0xfc,0xb,0xfc,0x88,0xfc,0x86,0xfd,0x7f,0xfe, +0x32,0xff,0xf3,0xff,0xc6,0x0,0x81,0x1,0x4a,0x2,0x22,0x3, +0xf1,0x3,0xae,0x4,0x11,0x5,0x31,0x5,0xa9,0x5,0x91,0x6, +0x82,0x7,0x2d,0x8,0x79,0x8,0xbf,0x8,0x57,0x9,0xf,0xa, +0xb2,0xa,0x45,0xb,0xba,0xb,0x22,0xc,0xaf,0xc,0x7a,0xd, +0x89,0xe,0xc6,0xf,0xb,0x11,0x48,0x12,0x63,0x13,0x45,0x14, +0x5,0x15,0xc5,0x15,0x79,0x16,0xec,0x16,0xce,0x16,0x15,0x16, +0x49,0x15,0xf2,0x14,0xd7,0x14,0x7a,0x14,0xd8,0x13,0x36,0x13, +0xa1,0x12,0x15,0x12,0xab,0x11,0x50,0x11,0xbd,0x10,0xec,0xf, +0xf9,0xe,0xf5,0xd,0x2c,0xd,0xc6,0xc,0x73,0xc,0x12,0xc, +0xdc,0xb,0xf8,0xb,0x59,0xc,0xc4,0xc,0x32,0xd,0xbe,0xd, +0x2a,0xe,0x43,0xe,0x24,0xe,0xd4,0xd,0x87,0xd,0x53,0xd, +0xc3,0xc,0xa2,0xb,0x4c,0xa,0x32,0x9,0x76,0x8,0xa3,0x7, +0x59,0x6,0xf3,0x4,0xba,0x3,0x99,0x2,0x5b,0x1,0xbf,0xff, +0x20,0xfe,0x23,0xfd,0x69,0xfc,0x42,0xfb,0xb4,0xf9,0x1a,0xf8, +0xf2,0xf6,0x80,0xf6,0x3e,0xf6,0x97,0xf5,0xb1,0xf4,0x24,0xf4, +0x44,0xf4,0xc5,0xf4,0x31,0xf5,0x6d,0xf5,0xb6,0xf5,0x51,0xf6, +0x26,0xf7,0xd7,0xf7,0x4d,0xf8,0xa2,0xf8,0xf6,0xf8,0x77,0xf9, +0x12,0xfa,0x8b,0xfa,0xf8,0xfa,0x8e,0xfb,0x4d,0xfc,0x21,0xfd, +0xe5,0xfd,0x5d,0xfe,0x80,0xfe,0x9c,0xfe,0xf2,0xfe,0x23,0xff, +0xa6,0xfe,0xa1,0xfd,0x8b,0xfc,0x82,0xfb,0xac,0xfa,0x26,0xfa, +0xa7,0xf9,0xfc,0xf8,0x6d,0xf8,0x4b,0xf8,0x91,0xf8,0xf6,0xf8, +0x5a,0xf9,0xcc,0xf9,0x3e,0xfa,0xc3,0xfa,0x7c,0xfb,0x21,0xfc, +0x9c,0xfc,0x41,0xfd,0xc,0xfe,0xfa,0xfe,0x40,0x0,0xad,0x1, +0xa,0x3,0x62,0x4,0xac,0x5,0x1,0x7,0x6a,0x8,0x89,0x9, +0x41,0xa,0xc3,0xa,0x3,0xb,0xd9,0xa,0x58,0xa,0xc1,0x9, +0x32,0x9,0x9d,0x8,0x8,0x8,0x4b,0x7,0x3a,0x6,0x67,0x5, +0x56,0x5,0x92,0x5,0x87,0x5,0x15,0x5,0x56,0x4,0xab,0x3, +0x7b,0x3,0xab,0x3,0x9f,0x3,0xf5,0x2,0x13,0x2,0x8a,0x1, +0x68,0x1,0x89,0x1,0xd7,0x1,0x34,0x2,0x74,0x2,0x86,0x2, +0xa8,0x2,0xb,0x3,0x78,0x3,0xd8,0x3,0x24,0x4,0xf2,0x3, +0x41,0x3,0xaa,0x2,0x54,0x2,0xa,0x2,0xcc,0x1,0x82,0x1, +0xf3,0x0,0x3c,0x0,0xdf,0xff,0x36,0x0,0xdd,0x0,0x1a,0x1, +0xd5,0x0,0x89,0x0,0x6f,0x0,0x7a,0x0,0x91,0x0,0x69,0x0, +0xd3,0xff,0x19,0xff,0x7b,0xfe,0xf6,0xfd,0x9d,0xfd,0x83,0xfd, +0x81,0xfd,0x74,0xfd,0x60,0xfd,0x65,0xfd,0xa4,0xfd,0x25,0xfe, +0xc6,0xfe,0x52,0xff,0xa7,0xff,0xde,0xff,0x47,0x0,0xff,0x0, +0xbd,0x1,0x58,0x2,0x12,0x3,0xb,0x4,0x27,0x5,0x57,0x6, +0x80,0x7,0xa0,0x8,0xe3,0x9,0x3b,0xb,0x5f,0xc,0x2c,0xd, +0xad,0xd,0x9,0xe,0x3c,0xe,0x28,0xe,0xde,0xd,0x79,0xd, +0x0,0xd,0x7a,0xc,0xec,0xb,0x72,0xb,0x31,0xb,0x1f,0xb, +0x2a,0xb,0x48,0xb,0x6b,0xb,0xb0,0xb,0xe,0xc,0x30,0xc, +0x2d,0xc,0x5b,0xc,0x9e,0xc,0xbe,0xc,0xd9,0xc,0xe,0xd, +0x58,0xd,0xba,0xd,0x1e,0xe,0x6b,0xe,0xb3,0xe,0xff,0xe, +0x28,0xf,0xe,0xf,0xa8,0xe,0xff,0xd,0x1e,0xd,0x5,0xc, +0xe0,0xa,0xf7,0x9,0x4f,0x9,0xa0,0x8,0xa1,0x7,0x80,0x6, +0xce,0x5,0xb7,0x5,0xcf,0x5,0x9f,0x5,0xfb,0x4,0x3d,0x4, +0xdb,0x3,0x9c,0x3,0x24,0x3,0x8c,0x2,0x1,0x2,0x9e,0x1, +0x43,0x1,0xa1,0x0,0xea,0xff,0x75,0xff,0x16,0xff,0xaf,0xfe, +0x3b,0xfe,0x89,0xfd,0xb3,0xfc,0x12,0xfc,0xad,0xfb,0x49,0xfb, +0xaf,0xfa,0xfd,0xf9,0x85,0xf9,0x53,0xf9,0x50,0xf9,0x74,0xf9, +0x92,0xf9,0x93,0xf9,0xba,0xf9,0x36,0xfa,0xde,0xfa,0x87,0xfb, +0x52,0xfc,0x3c,0xfd,0xe2,0xfd,0x3a,0xfe,0xbd,0xfe,0x7b,0xff, +0x19,0x0,0x75,0x0,0x6a,0x0,0xfd,0xff,0xba,0xff,0xcb,0xff, +0x9c,0xff,0xf6,0xfe,0x5d,0xfe,0x3b,0xfe,0x5d,0xfe,0x3f,0xfe, +0xef,0xfd,0xf7,0xfd,0x30,0xfe,0x46,0xfe,0x74,0xfe,0xc1,0xfe, +0xe,0xff,0x93,0xff,0x35,0x0,0xb4,0x0,0x62,0x1,0x6f,0x2, +0xa6,0x3,0xf6,0x4,0x6a,0x6,0xde,0x7,0xc,0x9,0xe6,0x9, +0xd9,0xa,0x1e,0xc,0x36,0xd,0xb2,0xd,0xb5,0xd,0x81,0xd, +0x3e,0xd,0x19,0xd,0xf7,0xc,0x63,0xc,0x5b,0xb,0x4c,0xa, +0x49,0x9,0x23,0x8,0xd4,0x6,0x5b,0x5,0xd9,0x3,0x70,0x2, +0xdb,0x0,0xee,0xfe,0xea,0xfc,0x1b,0xfb,0x9e,0xf9,0x5a,0xf8, +0xef,0xf6,0x2d,0xf5,0x63,0xf3,0xef,0xf1,0xd0,0xf0,0xd7,0xef, +0xd1,0xee,0x91,0xed,0x21,0xec,0xdc,0xea,0xff,0xe9,0x60,0xe9, +0xb3,0xe8,0xf5,0xe7,0x4f,0xe7,0xd5,0xe6,0x75,0xe6,0xf9,0xe5, +0x61,0xe5,0x4,0xe5,0xd4,0xe4,0x39,0xe4,0x15,0xe3,0xc4,0xe1, +0x9b,0xe0,0xd0,0xdf,0x23,0xdf,0x8,0xde,0xa6,0xdc,0x8c,0xdb, +0xd3,0xda,0x53,0xda,0xef,0xd9,0x94,0xd9,0x4a,0xd9,0x11,0xd9, +0xd9,0xd8,0xc0,0xd8,0xf4,0xd8,0x5e,0xd9,0xc9,0xd9,0x40,0xda, +0xd3,0xda,0x7a,0xdb,0x74,0xdc,0xd7,0xdd,0x49,0xdf,0xaa,0xe0, +0x25,0xe2,0xc5,0xe3,0x8d,0xe5,0x54,0xe7,0xf0,0xe8,0x8a,0xea, +0x34,0xec,0xc8,0xed,0x44,0xef,0xa2,0xf0,0xf3,0xf1,0x67,0xf3, +0xb6,0xf4,0x97,0xf5,0x74,0xf6,0x8e,0xf7,0x95,0xf8,0x79,0xf9, +0x51,0xfa,0x5,0xfb,0xc1,0xfb,0xb8,0xfc,0xa4,0xfd,0x70,0xfe, +0x64,0xff,0x7e,0x0,0x9a,0x1,0xbe,0x2,0xe2,0x3,0xd,0x5, +0x52,0x6,0x8d,0x7,0xac,0x8,0xcd,0x9,0xeb,0xa,0xe9,0xb, +0xbe,0xc,0x5a,0xd,0xbc,0xd,0xd,0xe,0x52,0xe,0x4a,0xe, +0x1,0xe,0xc5,0xd,0x9a,0xd,0x75,0xd,0x52,0xd,0x9,0xd, +0xc1,0xc,0xc7,0xc,0xfd,0xc,0x34,0xd,0x4d,0xd,0x1d,0xd, +0xca,0xc,0x82,0xc,0x24,0xc,0xb9,0xb,0x5c,0xb,0xdc,0xa, +0x1b,0xa,0x3e,0x9,0x80,0x8,0x1e,0x8,0x8,0x8,0xd0,0x7, +0x39,0x7,0x94,0x6,0x27,0x6,0xc5,0x5,0x34,0x5,0x6c,0x4, +0x7e,0x3,0x99,0x2,0xb5,0x1,0xa9,0x0,0xbb,0xff,0x35,0xff, +0xf4,0xfe,0xdc,0xfe,0xd0,0xfe,0xa7,0xfe,0xa8,0xfe,0x2e,0xff, +0x5,0x0,0xae,0x0,0xda,0x0,0x9c,0x0,0x5f,0x0,0x63,0x0, +0x87,0x0,0x91,0x0,0x64,0x0,0xfb,0xff,0x81,0xff,0x36,0xff, +0x3a,0xff,0x88,0xff,0xe5,0xff,0xf2,0xff,0x9e,0xff,0x49,0xff, +0x43,0xff,0x80,0xff,0xaa,0xff,0xa0,0xff,0x96,0xff,0xb8,0xff, +0xc,0x0,0xa9,0x0,0x8d,0x1,0xb2,0x2,0x26,0x4,0xd0,0x5, +0x86,0x7,0x33,0x9,0xf3,0xa,0x4,0xd,0x2d,0xf,0xe3,0x10, +0xd,0x12,0xd7,0x12,0x6d,0x13,0x26,0x14,0x5,0x15,0x8d,0x15, +0x92,0x15,0x5e,0x15,0x26,0x15,0xd,0x15,0x2f,0x15,0x5d,0x15, +0x41,0x15,0xc0,0x14,0xee,0x13,0x2,0x13,0x58,0x12,0xda,0x11, +0x17,0x11,0x17,0x10,0xb,0xf,0x11,0xe,0x71,0xd,0x1a,0xd, +0xc7,0xc,0xb5,0xc,0x5,0xd,0x6c,0xd,0xd4,0xd,0x39,0xe, +0xa3,0xe,0x47,0xf,0xf1,0xf,0x2c,0x10,0xfd,0xf,0x83,0xf, +0xd5,0xe,0x4c,0xe,0x4,0xe,0x95,0xd,0xc3,0xc,0xc4,0xb, +0xeb,0xa,0x55,0xa,0xcd,0x9,0x14,0x9,0x22,0x8,0xef,0x6, +0x79,0x5,0xd9,0x3,0x15,0x2,0x38,0x0,0x72,0xfe,0xc0,0xfc, +0xfc,0xfa,0x16,0xf9,0x2e,0xf7,0x93,0xf5,0x70,0xf4,0x98,0xf3, +0xd8,0xf2,0xfd,0xf1,0xf9,0xf0,0xff,0xef,0x43,0xef,0xe7,0xee, +0xe1,0xee,0xc4,0xee,0x58,0xee,0xc5,0xed,0x4b,0xed,0x6c,0xed, +0x3c,0xee,0xf3,0xee,0x35,0xef,0x77,0xef,0xc,0xf0,0x2,0xf1, +0x24,0xf2,0x25,0xf3,0xf,0xf4,0xf0,0xf4,0xa3,0xf5,0x1d,0xf6, +0x87,0xf6,0x1f,0xf7,0xe2,0xf7,0x68,0xf8,0x70,0xf8,0x1e,0xf8, +0xcc,0xf7,0xe3,0xf7,0x4c,0xf8,0x7f,0xf8,0x56,0xf8,0xf0,0xf7, +0x6e,0xf7,0x35,0xf7,0x62,0xf7,0x88,0xf7,0x75,0xf7,0x40,0xf7, +0xfd,0xf6,0x0,0xf7,0x89,0xf7,0x64,0xf8,0x52,0xf9,0x27,0xfa, +0xe4,0xfa,0xf9,0xfb,0x94,0xfd,0x63,0xff,0x35,0x1,0xbf,0x2, +0xca,0x3,0xde,0x4,0x5d,0x6,0xd3,0x7,0xf5,0x8,0xe7,0x9, +0xbe,0xa,0x78,0xb,0xfd,0xb,0x51,0xc,0xae,0xc,0x29,0xd, +0x8b,0xd,0x63,0xd,0x8c,0xc,0x9a,0xb,0x9,0xb,0xac,0xa, +0x1c,0xa,0x4,0x9,0x8b,0x7,0x59,0x6,0x9e,0x5,0xfb,0x4, +0x43,0x4,0x84,0x3,0xd1,0x2,0x42,0x2,0xd0,0x1,0x5d,0x1, +0x1,0x1,0xed,0x0,0x18,0x1,0x33,0x1,0xd,0x1,0xe9,0x0, +0x40,0x1,0x15,0x2,0xe0,0x2,0x59,0x3,0xb0,0x3,0xfe,0x3, +0x63,0x4,0xf9,0x4,0x64,0x5,0x69,0x5,0x4a,0x5,0x16,0x5, +0xc0,0x4,0x6b,0x4,0x9,0x4,0x87,0x3,0x7,0x3,0x83,0x2, +0xe5,0x1,0x45,0x1,0xaa,0x0,0xa,0x0,0x60,0xff,0x9b,0xfe, +0xba,0xfd,0xd4,0xfc,0xf8,0xfb,0x4a,0xfb,0xca,0xfa,0x2c,0xfa, +0x79,0xf9,0x16,0xf9,0xc,0xf9,0x33,0xf9,0x85,0xf9,0xeb,0xf9, +0x79,0xfa,0x4d,0xfb,0x25,0xfc,0xcf,0xfc,0x7b,0xfd,0x73,0xfe, +0xba,0xff,0xd1,0x0,0x7a,0x1,0x30,0x2,0x39,0x3,0x67,0x4, +0x8c,0x5,0x6a,0x6,0x11,0x7,0xf1,0x7,0xf3,0x8,0xad,0x9, +0x8,0xa,0x1d,0xa,0x27,0xa,0x4f,0xa,0x70,0xa,0x67,0xa, +0x28,0xa,0xa9,0x9,0x24,0x9,0xe3,0x8,0xdf,0x8,0xe3,0x8, +0xcc,0x8,0x9d,0x8,0x7a,0x8,0x86,0x8,0xcd,0x8,0x28,0x9, +0x71,0x9,0xc8,0x9,0x3c,0xa,0xb2,0xa,0x39,0xb,0xe5,0xb, +0x8c,0xc,0x1f,0xd,0xc8,0xd,0x8a,0xe,0x45,0xf,0x6,0x10, +0xdf,0x10,0xc2,0x11,0x97,0x12,0x47,0x13,0xd0,0x13,0x56,0x14, +0xf3,0x14,0x85,0x15,0xbf,0x15,0x91,0x15,0x59,0x15,0x37,0x15, +0xf9,0x14,0xa5,0x14,0x45,0x14,0xb1,0x13,0xea,0x12,0x1b,0x12, +0x7a,0x11,0x17,0x11,0xa3,0x10,0xd2,0xf,0xc7,0xe,0xcc,0xd, +0xff,0xc,0x3c,0xc,0x58,0xb,0x6e,0xa,0x8f,0x9,0x9b,0x8, +0xa1,0x7,0xdf,0x6,0x7c,0x6,0x70,0x6,0x78,0x6,0x56,0x6, +0x34,0x6,0x6c,0x6,0xf9,0x6,0x92,0x7,0x14,0x8,0x73,0x8, +0xa7,0x8,0xd6,0x8,0x20,0x9,0x72,0x9,0xac,0x9,0xab,0x9, +0x5e,0x9,0xe6,0x8,0x5a,0x8,0xc5,0x7,0x8,0x7,0xe2,0x5, +0x6e,0x4,0xe4,0x2,0x2e,0x1,0x6b,0xff,0xcf,0xfd,0x4f,0xfc, +0x15,0xfb,0x1d,0xfa,0xef,0xf8,0xc9,0xf7,0x4a,0xf7,0x61,0xf7, +0xcf,0xf7,0x45,0xf8,0x62,0xf8,0xa4,0xf8,0xc3,0xf9,0x44,0xfb, +0x8b,0xfc,0xc2,0xfd,0xf8,0xfe,0x2f,0x0,0x87,0x1,0x9e,0x2, +0x3c,0x3,0xd9,0x3,0x72,0x4,0x73,0x4,0xdc,0x3,0x8,0x3, +0x3b,0x2,0x9d,0x1,0xe5,0x0,0xae,0xff,0x26,0xfe,0xd3,0xfc, +0xd7,0xfb,0xeb,0xfa,0xd4,0xf9,0x88,0xf8,0x16,0xf7,0xa5,0xf5, +0x4f,0xf4,0xd,0xf3,0xbb,0xf1,0x36,0xf0,0xb6,0xee,0x76,0xed, +0x2d,0xec,0xe1,0xea,0xe,0xea,0x62,0xe9,0x5a,0xe8,0x3e,0xe7, +0x2a,0xe6,0x7,0xe5,0x31,0xe4,0x74,0xe3,0x2a,0xe2,0x8f,0xe0, +0x46,0xdf,0x5f,0xde,0x9c,0xdd,0xcb,0xdc,0xe6,0xdb,0x3d,0xdb, +0xf,0xdb,0x23,0xdb,0x30,0xdb,0x4d,0xdb,0x9c,0xdb,0x7,0xdc, +0x6b,0xdc,0xae,0xdc,0xe0,0xdc,0x38,0xdd,0x9b,0xdd,0x9c,0xdd, +0x1c,0xdd,0x6c,0xdc,0xea,0xdb,0x9d,0xdb,0x1c,0xdb,0x1d,0xda, +0xec,0xd8,0xfa,0xd7,0x4f,0xd7,0xcb,0xd6,0x79,0xd6,0x5c,0xd6, +0x5e,0xd6,0x85,0xd6,0xed,0xd6,0xbc,0xd7,0x1c,0xd9,0xfc,0xda, +0xf2,0xdc,0xad,0xde,0x65,0xe0,0x90,0xe2,0x45,0xe5,0x2b,0xe8, +0xe7,0xea,0x52,0xed,0x91,0xef,0xcd,0xf1,0xfe,0xf3,0x12,0xf6, +0xe8,0xf7,0x5e,0xf9,0x73,0xfa,0xa,0xfb,0x33,0xfb,0x75,0xfb, +0xec,0xfb,0x37,0xfc,0x45,0xfc,0x31,0xfc,0x35,0xfc,0xba,0xfc, +0x9d,0xfd,0x73,0xfe,0x4a,0xff,0x39,0x0,0x31,0x1,0x3e,0x2, +0x47,0x3,0x49,0x4,0x7f,0x5,0xd3,0x6,0xe5,0x7,0x9a,0x8, +0x2f,0x9,0xe9,0x9,0xd0,0xa,0xa3,0xb,0x1b,0xc,0x35,0xc, +0x36,0xc,0x49,0xc,0x45,0xc,0xf1,0xb,0x57,0xb,0xbe,0xa, +0x2b,0xa,0x6f,0x9,0xa6,0x8,0x18,0x8,0xca,0x7,0x99,0x7, +0x5b,0x7,0xe,0x7,0xe8,0x6,0xb,0x7,0x52,0x7,0x8d,0x7, +0xa9,0x7,0xbd,0x7,0xe2,0x7,0xb,0x8,0x19,0x8,0x1c,0x8, +0x38,0x8,0x52,0x8,0x38,0x8,0xee,0x7,0x7e,0x7,0xff,0x6, +0x91,0x6,0x10,0x6,0x5c,0x5,0x95,0x4,0xc2,0x3,0xf5,0x2, +0x4b,0x2,0xb4,0x1,0x43,0x1,0x11,0x1,0xe8,0x0,0xae,0x0, +0x83,0x0,0x82,0x0,0xc3,0x0,0x38,0x1,0xbb,0x1,0x47,0x2, +0xca,0x2,0x4d,0x3,0x1,0x4,0xd0,0x4,0x86,0x5,0x16,0x6, +0x79,0x6,0xbc,0x6,0xf0,0x6,0xf9,0x6,0xc4,0x6,0x88,0x6, +0x72,0x6,0x5a,0x6,0x23,0x6,0xe8,0x5,0xc7,0x5,0xed,0x5, +0x50,0x6,0x94,0x6,0xce,0x6,0x55,0x7,0xf5,0x7,0x7f,0x8, +0x20,0x9,0xca,0x9,0x6b,0xa,0x1f,0xb,0xd3,0xb,0x7c,0xc, +0x3e,0xd,0xe,0xe,0xba,0xe,0x28,0xf,0x6a,0xf,0xa4,0xf, +0xde,0xf,0xfc,0xf,0xf1,0xf,0xb2,0xf,0x2d,0xf,0xa3,0xe, +0x61,0xe,0x30,0xe,0xe9,0xd,0xb5,0xd,0x78,0xd,0x43,0xd, +0x5d,0xd,0x7b,0xd,0x7b,0xd,0xa7,0xd,0xb4,0xd,0x74,0xd, +0x5b,0xd,0x88,0xd,0xbe,0xd,0xcd,0xd,0xa0,0xd,0x7d,0xd, +0x8e,0xd,0x84,0xd,0x41,0xd,0xdc,0xc,0x6e,0xc,0x13,0xc, +0x8a,0xb,0x8f,0xa,0x85,0x9,0xbe,0x8,0xfb,0x7,0x22,0x7, +0x55,0x6,0x95,0x5,0xf2,0x4,0x6d,0x4,0xe1,0x3,0x6e,0x3, +0x32,0x3,0xd2,0x2,0x36,0x2,0xb7,0x1,0x6e,0x1,0x2f,0x1, +0xd4,0x0,0x51,0x0,0xb9,0xff,0x19,0xff,0x85,0xfe,0xb,0xfe, +0x76,0xfd,0xbc,0xfc,0xeb,0xfb,0xd3,0xfa,0xa0,0xf9,0xaf,0xf8, +0xc6,0xf7,0xbf,0xf6,0xca,0xf5,0xe3,0xf4,0x19,0xf4,0x87,0xf3, +0xb,0xf3,0xc0,0xf2,0xcd,0xf2,0x9,0xf3,0x52,0xf3,0x9e,0xf3, +0xe8,0xf3,0x6a,0xf4,0x4b,0xf5,0x2c,0xf6,0xad,0xf6,0xfd,0xf6, +0x7d,0xf7,0x27,0xf8,0xaf,0xf8,0xf8,0xf8,0x12,0xf9,0x17,0xf9, +0x2c,0xf9,0x5a,0xf9,0x65,0xf9,0x35,0xf9,0xfa,0xf8,0xb4,0xf8, +0x55,0xf8,0x1d,0xf8,0x2d,0xf8,0x54,0xf8,0x6e,0xf8,0x72,0xf8, +0x89,0xf8,0xef,0xf8,0xa1,0xf9,0x7b,0xfa,0x42,0xfb,0xcd,0xfb, +0x68,0xfc,0x3f,0xfd,0x1c,0xfe,0xea,0xfe,0xa0,0xff,0x23,0x0, +0x8f,0x0,0xe4,0x0,0x1d,0x1,0x7a,0x1,0xfd,0x1,0x46,0x2, +0x2a,0x2,0xd2,0x1,0x9d,0x1,0xc3,0x1,0x0,0x2,0xe9,0x1, +0x7a,0x1,0xb,0x1,0xe1,0x0,0xf1,0x0,0x14,0x1,0x28,0x1, +0x1f,0x1,0x12,0x1,0x25,0x1,0x47,0x1,0x6c,0x1,0xb6,0x1, +0x2c,0x2,0x85,0x2,0x82,0x2,0x3e,0x2,0x22,0x2,0x70,0x2, +0xe5,0x2,0x15,0x3,0xd9,0x2,0x47,0x2,0xb9,0x1,0x9b,0x1, +0xba,0x1,0xa5,0x1,0x58,0x1,0xf4,0x0,0x87,0x0,0x2f,0x0, +0xd,0x0,0x3b,0x0,0xa2,0x0,0xf2,0x0,0x5,0x1,0xf9,0x0, +0x14,0x1,0xa3,0x1,0x83,0x2,0x3a,0x3,0x9e,0x3,0xe9,0x3, +0x68,0x4,0x1a,0x5,0xac,0x5,0xf6,0x5,0x12,0x6,0xf9,0x5, +0xab,0x5,0x4c,0x5,0xd8,0x4,0x49,0x4,0xb3,0x3,0xa,0x3, +0x30,0x2,0x3a,0x1,0x7e,0x0,0x5b,0x0,0xc2,0x0,0x1d,0x1, +0x1a,0x1,0x0,0x1,0x2d,0x1,0xdc,0x1,0xf4,0x2,0xdd,0x3, +0x42,0x4,0x8d,0x4,0x1b,0x5,0xe7,0x5,0xd4,0x6,0xb0,0x7, +0x64,0x8,0x33,0x9,0x37,0xa,0x1e,0xb,0xb6,0xb,0x29,0xc, +0xa1,0xc,0x1c,0xd,0x5e,0xd,0xc,0xd,0x50,0xc,0xc8,0xb, +0x94,0xb,0x60,0xb,0x0,0xb,0x6d,0xa,0xdf,0x9,0xd2,0x9, +0x5d,0xa,0xe,0xb,0x7e,0xb,0xb2,0xb,0xff,0xb,0x92,0xc, +0x3b,0xd,0xd8,0xd,0x4a,0xe,0x78,0xe,0xb0,0xe,0x1b,0xf, +0x5b,0xf,0x6d,0xf,0xbd,0xf,0x3a,0x10,0xa3,0x10,0xfe,0x10, +0x22,0x11,0x3,0x11,0xfe,0x10,0x24,0x11,0x21,0x11,0xce,0x10, +0x48,0x10,0xcc,0xf,0x6f,0xf,0x6,0xf,0x85,0xe,0x3,0xe, +0x99,0xd,0x62,0xd,0x38,0xd,0xde,0xc,0x5e,0xc,0xc4,0xb, +0x26,0xb,0xae,0xa,0x31,0xa,0x74,0x9,0xa1,0x8,0xe4,0x7, +0x47,0x7,0xd9,0x6,0x7d,0x6,0xf,0x6,0xbb,0x5,0x99,0x5, +0x7c,0x5,0x54,0x5,0x30,0x5,0x13,0x5,0x0,0x5,0xea,0x4, +0xc1,0x4,0x9c,0x4,0x93,0x4,0x98,0x4,0xa6,0x4,0xc4,0x4, +0xed,0x4,0xd,0x5,0x18,0x5,0x2b,0x5,0x4d,0x5,0x4f,0x5, +0x19,0x5,0xae,0x4,0x28,0x4,0xb7,0x3,0x5a,0x3,0xd9,0x2, +0x27,0x2,0x7a,0x1,0x14,0x1,0xd0,0x0,0x4a,0x0,0x9a,0xff, +0x29,0xff,0x7,0xff,0xeb,0xfe,0x78,0xfe,0xc7,0xfd,0x67,0xfd, +0x7e,0xfd,0xc7,0xfd,0x3,0xfe,0xff,0xfd,0x11,0xfe,0xca,0xfe, +0xd5,0xff,0xa3,0x0,0x57,0x1,0x1f,0x2,0xf,0x3,0x27,0x4, +0xd5,0x4,0xeb,0x4,0x35,0x5,0xf3,0x5,0x77,0x6,0x53,0x6, +0x8c,0x5,0xba,0x4,0x9e,0x4,0xad,0x4,0xdc,0x3,0x6c,0x2, +0x26,0x1,0x53,0x0,0xd5,0xff,0xa,0xff,0xbe,0xfd,0xb7,0xfc, +0x1d,0xfc,0x7f,0xfb,0xef,0xfa,0x57,0xfa,0x75,0xf9,0xb2,0xf8, +0x31,0xf8,0x78,0xf7,0x8d,0xf6,0xd4,0xf5,0x47,0xf5,0xaa,0xf4, +0xe3,0xf3,0xdc,0xf2,0xbc,0xf1,0xda,0xf0,0x19,0xf0,0xfc,0xee, +0x54,0xed,0x54,0xeb,0x57,0xe9,0x82,0xe7,0x93,0xe5,0x89,0xe3, +0xae,0xe1,0xfd,0xdf,0x74,0xde,0x3c,0xdd,0x43,0xdc,0x8c,0xdb, +0x20,0xdb,0xb7,0xda,0x4a,0xda,0x25,0xda,0x23,0xda,0x11,0xda, +0xe,0xda,0xff,0xd9,0xe3,0xd9,0x31,0xda,0xd3,0xda,0x45,0xdb, +0xb5,0xdb,0x77,0xdc,0x59,0xdd,0x2e,0xde,0xd9,0xde,0x41,0xdf, +0xab,0xdf,0x2e,0xe0,0x7f,0xe0,0x7b,0xe0,0x49,0xe0,0x40,0xe0, +0xa7,0xe0,0x33,0xe1,0x82,0xe1,0xd8,0xe1,0xb4,0xe2,0x1a,0xe4, +0xa2,0xe5,0x8,0xe7,0x54,0xe8,0xa1,0xe9,0x22,0xeb,0xd5,0xec, +0x5d,0xee,0xbf,0xef,0x44,0xf1,0xc9,0xf2,0x15,0xf4,0x4c,0xf5, +0xae,0xf6,0x4b,0xf8,0xe1,0xf9,0x17,0xfb,0xf3,0xfb,0xd3,0xfc, +0xe1,0xfd,0xf8,0xfe,0xf3,0xff,0xca,0x0,0x82,0x1,0x3f,0x2, +0x1f,0x3,0x5,0x4,0xe2,0x4,0xd1,0x5,0xc7,0x6,0xa0,0x7, +0x57,0x8,0x4,0x9,0xb2,0x9,0x69,0xa,0x23,0xb,0x9e,0xb, +0xbe,0xb,0xd7,0xb,0x1d,0xc,0x72,0xc,0xad,0xc,0x89,0xc, +0x11,0xc,0xae,0xb,0x6f,0xb,0x10,0xb,0x7c,0xa,0xca,0x9, +0x2c,0x9,0xbd,0x8,0x57,0x8,0xda,0x7,0x44,0x7,0xb6,0x6, +0x68,0x6,0x3f,0x6,0xf7,0x5,0xae,0x5,0x8a,0x5,0x6c,0x5, +0x48,0x5,0x3f,0x5,0x59,0x5,0x78,0x5,0x91,0x5,0xa3,0x5, +0xa5,0x5,0x9a,0x5,0x93,0x5,0x8d,0x5,0x6b,0x5,0x25,0x5, +0xe3,0x4,0x99,0x4,0x2d,0x4,0xde,0x3,0xbc,0x3,0x88,0x3, +0x48,0x3,0x14,0x3,0xe3,0x2,0xd8,0x2,0xda,0x2,0xad,0x2, +0x6b,0x2,0x26,0x2,0xcd,0x1,0x95,0x1,0x85,0x1,0x6c,0x1, +0x55,0x1,0x58,0x1,0x5d,0x1,0x79,0x1,0xd8,0x1,0x4c,0x2, +0x99,0x2,0xd5,0x2,0x26,0x3,0x88,0x3,0xd9,0x3,0xf9,0x3, +0x6,0x4,0x33,0x4,0x72,0x4,0xa6,0x4,0xb7,0x4,0xa2,0x4, +0xaf,0x4,0x11,0x5,0x8e,0x5,0xfa,0x5,0x45,0x6,0x6b,0x6, +0xa7,0x6,0x29,0x7,0xd7,0x7,0xa1,0x8,0x70,0x9,0x11,0xa, +0x89,0xa,0x23,0xb,0x5,0xc,0x29,0xd,0x79,0xe,0xa4,0xf, +0x66,0x10,0xf3,0x10,0x9a,0x11,0x6d,0x12,0x56,0x13,0x7,0x14, +0x4e,0x14,0x3e,0x14,0xea,0x13,0x7c,0x13,0x26,0x13,0xc5,0x12, +0x36,0x12,0x7c,0x11,0x8d,0x10,0x7f,0xf,0x91,0xe,0xe0,0xd, +0x5d,0xd,0xcc,0xc,0xf7,0xb,0x1,0xb,0x3a,0xa,0xd2,0x9, +0xb2,0x9,0x8a,0x9,0x16,0x9,0x7d,0x8,0x1e,0x8,0x26,0x8, +0x91,0x8,0x2d,0x9,0x7f,0x9,0x53,0x9,0xf,0x9,0x14,0x9, +0x6a,0x9,0xd6,0x9,0xcf,0x9,0xfe,0x8,0xb2,0x7,0x7e,0x6, +0x99,0x5,0xb0,0x4,0x6f,0x3,0xe9,0x1,0x32,0x0,0x54,0xfe, +0x95,0xfc,0x21,0xfb,0x1,0xfa,0x4d,0xf9,0xb0,0xf8,0x96,0xf7, +0x1e,0xf6,0x16,0xf5,0x0,0xf5,0x86,0xf5,0xe0,0xf5,0x9b,0xf5, +0xa,0xf5,0xdc,0xf4,0x69,0xf5,0x84,0xf6,0xb2,0xf7,0x66,0xf8, +0x96,0xf8,0xba,0xf8,0x14,0xf9,0x97,0xf9,0x2b,0xfa,0x91,0xfa, +0x8b,0xfa,0x16,0xfa,0x61,0xf9,0xb3,0xf8,0x30,0xf8,0xcd,0xf7, +0x64,0xf7,0xcc,0xf6,0x16,0xf6,0x9d,0xf5,0x9d,0xf5,0xe9,0xf5, +0x33,0xf6,0x83,0xf6,0xef,0xf6,0x47,0xf7,0xa2,0xf7,0x59,0xf8, +0x44,0xf9,0x1,0xfa,0x78,0xfa,0xc3,0xfa,0x26,0xfb,0xdd,0xfb, +0xcb,0xfc,0xb3,0xfd,0x55,0xfe,0xa0,0xfe,0xd1,0xfe,0x3,0xff, +0x34,0xff,0x90,0xff,0xf7,0xff,0xd3,0xff,0x9,0xff,0x1a,0xfe, +0x5f,0xfd,0xa,0xfd,0x30,0xfd,0x52,0xfd,0xfd,0xfc,0x82,0xfc, +0x61,0xfc,0xbf,0xfc,0x7f,0xfd,0x40,0xfe,0xb8,0xfe,0xfb,0xfe, +0x28,0xff,0x57,0xff,0xa7,0xff,0x23,0x0,0xbd,0x0,0x36,0x1, +0x52,0x1,0x36,0x1,0x47,0x1,0xcc,0x1,0x92,0x2,0xfe,0x2, +0xda,0x2,0x7a,0x2,0x1d,0x2,0xef,0x1,0xc,0x2,0x21,0x2, +0xca,0x1,0x31,0x1,0xbc,0x0,0x93,0x0,0xb9,0x0,0x22,0x1, +0x8b,0x1,0xbb,0x1,0xbd,0x1,0xbf,0x1,0xfc,0x1,0x81,0x2, +0x15,0x3,0x86,0x3,0xa8,0x3,0x6d,0x3,0x42,0x3,0x89,0x3, +0xfb,0x3,0x49,0x4,0x64,0x4,0x35,0x4,0xde,0x3,0xc0,0x3, +0xe1,0x3,0xf1,0x3,0xc8,0x3,0x75,0x3,0x23,0x3,0xef,0x2, +0xbf,0x2,0x9a,0x2,0xc4,0x2,0x12,0x3,0x24,0x3,0x21,0x3, +0x30,0x3,0x4d,0x3,0xb0,0x3,0x40,0x4,0x87,0x4,0x72,0x4, +0x54,0x4,0x7f,0x4,0xfa,0x4,0x7f,0x5,0xe9,0x5,0x34,0x6, +0x5e,0x6,0xac,0x6,0x37,0x7,0xae,0x7,0x2,0x8,0x57,0x8, +0x87,0x8,0x7a,0x8,0x58,0x8,0x46,0x8,0x70,0x8,0xd7,0x8, +0x24,0x9,0x30,0x9,0x39,0x9,0x58,0x9,0x9b,0x9,0x20,0xa, +0xa7,0xa,0xf5,0xa,0x33,0xb,0x70,0xb,0x87,0xb,0x7b,0xb, +0x5c,0xb,0x4b,0xb,0x59,0xb,0x54,0xb,0x3,0xb,0x6b,0xa, +0xdf,0x9,0xa7,0x9,0x99,0x9,0x6b,0x9,0xe,0x9,0x89,0x8, +0xb,0x8,0xbd,0x7,0x6a,0x7,0xfb,0x6,0x98,0x6,0x36,0x6, +0xb0,0x5,0x1f,0x5,0xb8,0x4,0x91,0x4,0x92,0x4,0x8f,0x4, +0x74,0x4,0x6d,0x4,0xb2,0x4,0x33,0x5,0xc2,0x5,0x40,0x6, +0x8a,0x6,0xaf,0x6,0xdd,0x6,0x4,0x7,0x25,0x7,0x54,0x7, +0x4d,0x7,0xe4,0x6,0x80,0x6,0x5e,0x6,0x4e,0x6,0x3e,0x6, +0x3a,0x6,0x28,0x6,0x13,0x6,0x5,0x6,0xd7,0x5,0xbb,0x5, +0xfb,0x5,0x48,0x6,0x3a,0x6,0xc8,0x5,0x21,0x5,0xbe,0x4, +0xdf,0x4,0x28,0x5,0x3c,0x5,0x9,0x5,0xca,0x4,0xe7,0x4, +0x6c,0x5,0x17,0x6,0xbc,0x6,0x38,0x7,0x83,0x7,0xbf,0x7, +0xe9,0x7,0xe9,0x7,0xc6,0x7,0x9d,0x7,0x79,0x7,0x33,0x7, +0x82,0x6,0x9b,0x5,0x25,0x5,0x5e,0x5,0xc8,0x5,0xd6,0x5, +0x5d,0x5,0xbe,0x4,0xbb,0x4,0x50,0x5,0x8b,0x5,0x5,0x5, +0x3d,0x4,0x9c,0x3,0x33,0x3,0xd8,0x2,0x64,0x2,0xe,0x2, +0xd,0x2,0x14,0x2,0xe8,0x1,0xd8,0x1,0x43,0x2,0x30,0x3, +0x2f,0x4,0x85,0x4,0x3b,0x4,0x3e,0x4,0xcb,0x4,0x41,0x5, +0x69,0x5,0x5b,0x5,0x3c,0x5,0x55,0x5,0x4f,0x5,0xd5,0x4, +0xa8,0x4,0x7,0x5,0x16,0x5,0x70,0x4,0x44,0x3,0xdb,0x1, +0xc2,0x0,0xf2,0xff,0xa0,0xfe,0xa2,0xfc,0xa1,0xfa,0xf5,0xf8, +0x6b,0xf7,0xe8,0xf5,0x88,0xf4,0x62,0xf3,0x65,0xf2,0x6e,0xf1, +0x76,0xf0,0x8d,0xef,0xcf,0xee,0x4b,0xee,0xc0,0xed,0xca,0xec, +0x71,0xeb,0x38,0xea,0x6b,0xe9,0xc2,0xe8,0xcd,0xe7,0x7d,0xe6, +0xf1,0xe4,0x65,0xe3,0x48,0xe2,0x88,0xe1,0x96,0xe0,0x6d,0xdf, +0x52,0xde,0x35,0xdd,0x17,0xdc,0x22,0xdb,0x89,0xda,0x5a,0xda, +0xfe,0xd9,0xe,0xd9,0x23,0xd8,0xc0,0xd7,0xbe,0xd7,0xf2,0xd7, +0xe,0xd8,0xd0,0xd7,0xaf,0xd7,0x12,0xd8,0x81,0xd8,0xc8,0xd8, +0x7a,0xd9,0x8d,0xda,0x53,0xdb,0xb1,0xdb,0x10,0xdc,0xd5,0xdc, +0x26,0xde,0x8f,0xdf,0x7f,0xe0,0x3,0xe1,0xa9,0xe1,0x2,0xe3, +0xeb,0xe4,0x9e,0xe6,0xfc,0xe7,0x96,0xe9,0x76,0xeb,0x35,0xed, +0xce,0xee,0x72,0xf0,0x42,0xf2,0x30,0xf4,0xa6,0xf5,0x44,0xf6, +0xd9,0xf6,0x36,0xf8,0xe6,0xf9,0x1d,0xfb,0xb6,0xfb,0x15,0xfc, +0xca,0xfc,0xd8,0xfd,0xca,0xfe,0x99,0xff,0x75,0x0,0x44,0x1, +0xdc,0x1,0x2b,0x2,0x7c,0x2,0x64,0x3,0xb6,0x4,0xac,0x5, +0x2a,0x6,0x99,0x6,0x53,0x7,0x8a,0x8,0xf3,0x9,0xf0,0xa, +0x7f,0xb,0x14,0xc,0xc3,0xc,0x5a,0xd,0xc0,0xd,0xf7,0xd, +0x1a,0xe,0x22,0xe,0xcf,0xd,0x36,0xd,0xb9,0xc,0x63,0xc, +0x4,0xc,0x60,0xb,0x38,0xa,0xc5,0x8,0x9b,0x7,0xce,0x6, +0xf1,0x5,0xc5,0x4,0x7e,0x3,0x6a,0x2,0xa8,0x1,0x33,0x1, +0xe2,0x0,0xa9,0x0,0xb6,0x0,0xf9,0x0,0x18,0x1,0xf7,0x0, +0xdb,0x0,0x8,0x1,0x53,0x1,0x60,0x1,0x3b,0x1,0x7,0x1, +0xd5,0x0,0xe0,0x0,0x17,0x1,0x43,0x1,0x92,0x1,0xe5,0x1, +0xd7,0x1,0xad,0x1,0xc3,0x1,0xf2,0x1,0x11,0x2,0xe9,0x1, +0x58,0x1,0xd6,0x0,0xbf,0x0,0xdb,0x0,0xfa,0x0,0x4,0x1, +0xf0,0x0,0xd,0x1,0x6a,0x1,0xaf,0x1,0xee,0x1,0x4f,0x2, +0x88,0x2,0x86,0x2,0x62,0x2,0x13,0x2,0xd6,0x1,0xd2,0x1, +0xce,0x1,0xbe,0x1,0xcb,0x1,0xfc,0x1,0x58,0x2,0xe4,0x2, +0xa2,0x3,0xa1,0x4,0xd8,0x5,0x17,0x7,0x3a,0x8,0x55,0x9, +0x7d,0xa,0x92,0xb,0x7c,0xc,0x4d,0xd,0x3,0xe,0xa3,0xe, +0x18,0xf,0x2b,0xf,0x10,0xf,0x23,0xf,0x57,0xf,0x88,0xf, +0x89,0xf,0x18,0xf,0x78,0xe,0x20,0xe,0xe4,0xd,0x52,0xd, +0x65,0xc,0x4d,0xb,0x2d,0xa,0x3a,0x9,0x94,0x8,0x14,0x8, +0x9b,0x7,0x3b,0x7,0x9,0x7,0x1f,0x7,0xa0,0x7,0x89,0x8, +0xa5,0x9,0x9a,0xa,0x29,0xb,0x64,0xb,0x93,0xb,0xe9,0xb, +0x54,0xc,0x85,0xc,0x2c,0xc,0x54,0xb,0x60,0xa,0xaf,0x9, +0x60,0x9,0x47,0x9,0xfc,0x8,0x68,0x8,0xb0,0x7,0xbe,0x6, +0xc0,0x5,0x23,0x5,0x90,0x4,0x92,0x3,0x6a,0x2,0x3f,0x1, +0x1e,0x0,0x71,0xff,0x54,0xff,0x6c,0xff,0x75,0xff,0x5f,0xff, +0x52,0xff,0x77,0xff,0xbb,0xff,0x23,0x0,0x7c,0x0,0x31,0x0, +0x33,0xff,0x1b,0xfe,0x36,0xfd,0x72,0xfc,0xbf,0xfb,0xfe,0xfa, +0x24,0xfa,0x63,0xf9,0xcc,0xf8,0x67,0xf8,0x54,0xf8,0x72,0xf8, +0x8f,0xf8,0x92,0xf8,0x4e,0xf8,0xf,0xf8,0x5f,0xf8,0xeb,0xf8, +0x1d,0xf9,0x31,0xf9,0x7c,0xf9,0x1,0xfa,0xcb,0xfa,0xbb,0xfb, +0x80,0xfc,0x9,0xfd,0x76,0xfd,0xd9,0xfd,0x1e,0xfe,0x31,0xfe, +0x27,0xfe,0x5,0xfe,0x99,0xfd,0xc2,0xfc,0xbf,0xfb,0xe4,0xfa, +0x53,0xfa,0x0,0xfa,0xa9,0xf9,0x1c,0xf9,0xa5,0xf8,0x81,0xf8, +0x74,0xf8,0x6c,0xf8,0x9a,0xf8,0xf4,0xf8,0x5c,0xf9,0xd0,0xf9, +0x32,0xfa,0x73,0xfa,0xde,0xfa,0xb2,0xfb,0xab,0xfc,0x68,0xfd, +0xf2,0xfd,0x7d,0xfe,0x1a,0xff,0xde,0xff,0xb3,0x0,0x2f,0x1, +0x3a,0x1,0x4d,0x1,0x98,0x1,0xb6,0x1,0x8c,0x1,0x57,0x1, +0x12,0x1,0xbd,0x0,0x7f,0x0,0x3b,0x0,0xe0,0xff,0xa1,0xff, +0x8e,0xff,0x86,0xff,0x4e,0xff,0xdd,0xfe,0x87,0xfe,0x8a,0xfe, +0xb4,0xfe,0xb4,0xfe,0x6b,0xfe,0x3,0xfe,0xbf,0xfd,0xbb,0xfd, +0xdd,0xfd,0xe2,0xfd,0xb6,0xfd,0x9d,0xfd,0xb2,0xfd,0xde,0xfd, +0x31,0xfe,0xa4,0xfe,0xfc,0xfe,0x33,0xff,0x7e,0xff,0xf1,0xff, +0x7d,0x0,0x4,0x1,0x6f,0x1,0xb6,0x1,0xe2,0x1,0x23,0x2, +0x9e,0x2,0x22,0x3,0x67,0x3,0x9a,0x3,0xf0,0x3,0x35,0x4, +0x5d,0x4,0x80,0x4,0x67,0x4,0x10,0x4,0xd6,0x3,0xb2,0x3, +0x5b,0x3,0xe5,0x2,0x73,0x2,0x1b,0x2,0xc,0x2,0x38,0x2, +0x51,0x2,0x5c,0x2,0xac,0x2,0x5c,0x3,0x32,0x4,0xc5,0x4, +0x5,0x5,0x71,0x5,0x3e,0x6,0x10,0x7,0xc8,0x7,0x6e,0x8, +0xdf,0x8,0x4c,0x9,0x4,0xa,0xde,0xa,0x90,0xb,0x1,0xc, +0x3a,0xc,0x62,0xc,0x8e,0xc,0x86,0xc,0x1a,0xc,0x80,0xb, +0x11,0xb,0xc4,0xa,0x50,0xa,0xb0,0x9,0x32,0x9,0x18,0x9, +0x47,0x9,0x7f,0x9,0xac,0x9,0xc3,0x9,0xce,0x9,0xff,0x9, +0x4f,0xa,0x8b,0xa,0x93,0xa,0x4e,0xa,0xe4,0x9,0xc8,0x9, +0x0,0xa,0x35,0xa,0x43,0xa,0x31,0xa,0x1b,0xa,0x1f,0xa, +0x31,0xa,0x41,0xa,0x45,0xa,0x10,0xa,0x93,0x9,0xf9,0x8, +0x6c,0x8,0x6,0x8,0xcc,0x7,0x9d,0x7,0x5d,0x7,0x23,0x7, +0xf,0x7,0x33,0x7,0x8e,0x7,0x8,0x8,0x83,0x8,0xc3,0x8, +0xae,0x8,0x94,0x8,0xbe,0x8,0xfc,0x8,0xf7,0x8,0x90,0x8, +0x4,0x8,0xbb,0x7,0xce,0x7,0xa,0x8,0x43,0x8,0x73,0x8, +0xb4,0x8,0x8,0x9,0x62,0x9,0xc9,0x9,0x36,0xa,0x99,0xa, +0xf0,0xa,0x0,0xb,0xcc,0xa,0xd8,0xa,0x58,0xb,0xf6,0xb, +0x6b,0xc,0x90,0xc,0x7c,0xc,0x98,0xc,0x16,0xd,0x92,0xd, +0x93,0xd,0x15,0xd,0x66,0xc,0x9b,0xb,0xb3,0xa,0xe3,0x9, +0x2d,0x9,0x5a,0x8,0x54,0x7,0x1b,0x6,0xdd,0x4,0xed,0x3, +0x58,0x3,0xed,0x2,0x64,0x2,0x77,0x1,0x70,0x0,0xe5,0xff, +0xac,0xff,0x57,0xff,0x19,0xff,0x27,0xff,0x54,0xff,0x7c,0xff, +0xa2,0xff,0xe9,0xff,0x74,0x0,0x24,0x1,0xba,0x1,0x6,0x2, +0xff,0x1,0x16,0x2,0xb5,0x2,0x73,0x3,0xbc,0x3,0x9d,0x3, +0x5e,0x3,0x62,0x3,0x5,0x4,0xc4,0x4,0x92,0x4,0xa8,0x3, +0x2b,0x3,0x2d,0x3,0xe6,0x2,0x3a,0x2,0x99,0x1,0x4e,0x1, +0x43,0x1,0xb,0x1,0x90,0x0,0x4b,0x0,0x7e,0x0,0x1,0x1, +0x61,0x1,0x2b,0x1,0xb6,0x0,0x8c,0x0,0x55,0x0,0xca,0xff, +0x3c,0xff,0xa3,0xfe,0xec,0xfd,0x46,0xfd,0x8d,0xfc,0xad,0xfb, +0x1c,0xfb,0xfc,0xfa,0xc7,0xfa,0xff,0xf9,0xc6,0xf8,0xb3,0xf7, +0xdf,0xf6,0xb6,0xf5,0xc,0xf4,0x44,0xf2,0x8e,0xf0,0xe5,0xee, +0x39,0xed,0x51,0xeb,0x67,0xe9,0x29,0xe8,0x90,0xe7,0xcb,0xe6, +0x8d,0xe5,0x40,0xe4,0x4d,0xe3,0xe0,0xe2,0xaf,0xe2,0x25,0xe2, +0x34,0xe1,0x56,0xe0,0xb0,0xdf,0x20,0xdf,0xa3,0xde,0x2a,0xde, +0xab,0xdd,0x2d,0xdd,0xa8,0xdc,0x31,0xdc,0xf7,0xdb,0xda,0xdb, +0x9f,0xdb,0x3e,0xdb,0xd1,0xda,0x7f,0xda,0x55,0xda,0x45,0xda, +0x5d,0xda,0x85,0xda,0x8d,0xda,0xb0,0xda,0x3c,0xdb,0x9,0xdc, +0xec,0xdc,0x18,0xde,0xa9,0xdf,0x47,0xe1,0xa7,0xe2,0x9,0xe4, +0xc9,0xe5,0xe8,0xe7,0x19,0xea,0xd7,0xeb,0xe0,0xec,0xab,0xed, +0xc4,0xee,0x2,0xf0,0xf8,0xf0,0x98,0xf1,0x11,0xf2,0x89,0xf2, +0xb,0xf3,0x9d,0xf3,0x5f,0xf4,0x62,0xf5,0x72,0xf6,0x40,0xf7, +0xc0,0xf7,0x38,0xf8,0xfe,0xf8,0x1d,0xfa,0x23,0xfb,0xaa,0xfb, +0xf5,0xfb,0x86,0xfc,0x6d,0xfd,0x91,0xfe,0xe6,0xff,0x41,0x1, +0x97,0x2,0xa,0x4,0x71,0x5,0xad,0x6,0xfd,0x7,0x6b,0x9, +0x9b,0xa,0x33,0xb,0x21,0xb,0xce,0xa,0xcd,0xa,0xf3,0xa, +0x90,0xa,0x70,0x9,0x5,0x8,0xec,0x6,0x69,0x6,0x1e,0x6, +0xa7,0x5,0x1c,0x5,0x81,0x4,0xb4,0x3,0xfe,0x2,0xa2,0x2, +0x73,0x2,0x53,0x2,0x35,0x2,0xed,0x1,0x9c,0x1,0x9f,0x1, +0x2,0x2,0xb0,0x2,0x91,0x3,0x64,0x4,0x21,0x5,0xf,0x6, +0x32,0x7,0x53,0x8,0x4a,0x9,0x8,0xa,0x94,0xa,0xf2,0xa, +0x9,0xb,0xd7,0xa,0x8b,0xa,0x42,0xa,0xda,0x9,0x35,0x9, +0x68,0x8,0xad,0x7,0x2a,0x7,0xcd,0x6,0x57,0x6,0x93,0x5, +0x9a,0x4,0xb8,0x3,0xfe,0x2,0x4a,0x2,0x91,0x1,0xdc,0x0, +0x27,0x0,0x87,0xff,0x2f,0xff,0x37,0xff,0x99,0xff,0x37,0x0, +0xe3,0x0,0xaa,0x1,0xb9,0x2,0xee,0x3,0xf1,0x4,0xb9,0x5, +0x6b,0x6,0xa,0x7,0x82,0x7,0xdb,0x7,0x3c,0x8,0xae,0x8, +0x4,0x9,0x34,0x9,0x5d,0x9,0x9b,0x9,0x25,0xa,0x2,0xb, +0xc5,0xb,0x25,0xc,0x47,0xc,0x52,0xc,0x65,0xc,0x9c,0xc, +0xc5,0xc,0xbe,0xc,0x98,0xc,0x4d,0xc,0xf1,0xb,0xde,0xb, +0x1d,0xc,0x64,0xc,0x8f,0xc,0x94,0xc,0x74,0xc,0x5a,0xc, +0x53,0xc,0x31,0xc,0xe7,0xb,0x93,0xb,0x32,0xb,0xc3,0xa, +0x71,0xa,0x71,0xa,0xb7,0xa,0xfb,0xa,0x2a,0xb,0x83,0xb, +0x19,0xc,0xcb,0xc,0x99,0xd,0x5b,0xe,0xbd,0xe,0xf1,0xe, +0x56,0xf,0xd9,0xf,0x2d,0x10,0x27,0x10,0xf3,0xf,0xdd,0xf, +0xaf,0xf,0x17,0xf,0x53,0xe,0x98,0xd,0xcb,0xc,0xf9,0xb, +0xee,0xa,0x71,0x9,0xf0,0x7,0xb7,0x6,0x80,0x5,0x44,0x4, +0x28,0x3,0xd,0x2,0xf6,0x0,0x15,0x0,0x90,0xff,0x5e,0xff, +0x2a,0xff,0xd4,0xfe,0xaa,0xfe,0xce,0xfe,0x29,0xff,0xbd,0xff, +0x52,0x0,0x9d,0x0,0xc4,0x0,0x0,0x1,0x3a,0x1,0x6a,0x1, +0x7c,0x1,0x35,0x1,0xa0,0x0,0xf2,0xff,0x23,0xff,0x45,0xfe, +0x8e,0xfd,0xd7,0xfc,0xf7,0xfb,0x7,0xfb,0x1,0xfa,0xf9,0xf8, +0x3a,0xf8,0xb2,0xf7,0x2d,0xf7,0x96,0xf6,0xbc,0xf5,0xc6,0xf4, +0x33,0xf4,0x14,0xf4,0x37,0xf4,0x71,0xf4,0x8b,0xf4,0xa2,0xf4, +0xfe,0xf4,0xa3,0xf5,0x92,0xf6,0xa5,0xf7,0x7c,0xf8,0xc,0xf9, +0x6c,0xf9,0xa7,0xf9,0x16,0xfa,0xbb,0xfa,0x24,0xfb,0x5f,0xfb, +0xac,0xfb,0xfa,0xfb,0x64,0xfc,0xfa,0xfc,0x98,0xfd,0x50,0xfe, +0x17,0xff,0xa4,0xff,0xec,0xff,0x6,0x0,0x17,0x0,0x58,0x0, +0xbb,0x0,0xef,0x0,0xd2,0x0,0x79,0x0,0x2e,0x0,0x39,0x0, +0x91,0x0,0xeb,0x0,0xfa,0x0,0xac,0x0,0x53,0x0,0x2a,0x0, +0x11,0x0,0xe3,0xff,0x96,0xff,0x2b,0xff,0xb2,0xfe,0x3a,0xfe, +0xe3,0xfd,0xbc,0xfd,0xab,0xfd,0xb6,0xfd,0xe4,0xfd,0x11,0xfe, +0x43,0xfe,0x99,0xfe,0x7,0xff,0x8d,0xff,0xf,0x0,0x55,0x0, +0x7e,0x0,0xd0,0x0,0x58,0x1,0xb,0x2,0xae,0x2,0xfb,0x2, +0x16,0x3,0x47,0x3,0x80,0x3,0x96,0x3,0x87,0x3,0x53,0x3, +0xe4,0x2,0x35,0x2,0x62,0x1,0x8c,0x0,0xd6,0xff,0x43,0xff, +0x94,0xfe,0xb6,0xfd,0x3,0xfd,0xb0,0xfc,0x8f,0xfc,0x74,0xfc, +0x65,0xfc,0x8c,0xfc,0xef,0xfc,0x61,0xfd,0xd6,0xfd,0x74,0xfe, +0x52,0xff,0x5d,0x0,0x4f,0x1,0x6,0x2,0xdd,0x2,0xa,0x4, +0x4b,0x5,0x75,0x6,0x67,0x7,0xec,0x7,0x48,0x8,0xd3,0x8, +0x63,0x9,0xbe,0x9,0xda,0x9,0xb6,0x9,0x7e,0x9,0x49,0x9, +0xf3,0x8,0x99,0x8,0x79,0x8,0x64,0x8,0x2,0x8,0x38,0x7, +0x52,0x6,0xdc,0x5,0xf2,0x5,0x5,0x6,0xa7,0x5,0x18,0x5, +0xd5,0x4,0x10,0x5,0xaa,0x5,0x62,0x6,0x9,0x7,0x89,0x7, +0xf8,0x7,0x8f,0x8,0x61,0x9,0x44,0xa,0x0,0xb,0x73,0xb, +0xaa,0xb,0xce,0xb,0xef,0xb,0xc,0xc,0x37,0xc,0x53,0xc, +0x2a,0xc,0xb9,0xb,0x31,0xb,0xc6,0xa,0x7c,0xa,0x1d,0xa, +0x8c,0x9,0xdc,0x8,0x23,0x8,0x93,0x7,0x3f,0x7,0x0,0x7, +0xe0,0x6,0xce,0x6,0x6f,0x6,0xfc,0x5,0x7,0x6,0x66,0x6, +0xb0,0x6,0xc8,0x6,0x81,0x6,0x12,0x6,0xd,0x6,0x65,0x6, +0xb7,0x6,0xe0,0x6,0xc9,0x6,0x85,0x6,0x51,0x6,0x3b,0x6, +0x61,0x6,0xcf,0x6,0xc,0x7,0xc7,0x6,0x4f,0x6,0xd,0x6, +0x2e,0x6,0x9a,0x6,0xfa,0x6,0x10,0x7,0xf4,0x6,0xd3,0x6, +0xc2,0x6,0xc1,0x6,0xcf,0x6,0xeb,0x6,0xf5,0x6,0x9d,0x6, +0xd2,0x5,0xe,0x5,0xc6,0x4,0xdf,0x4,0xe1,0x4,0x5c,0x4, +0x39,0x3,0x36,0x2,0x2b,0x2,0xba,0x2,0xe0,0x2,0x4a,0x2, +0x5e,0x1,0xbc,0x0,0xc3,0x0,0x22,0x1,0x54,0x1,0x46,0x1, +0x1a,0x1,0xf6,0x0,0xf9,0x0,0x1e,0x1,0x85,0x1,0x6f,0x2, +0x84,0x3,0x15,0x4,0x28,0x4,0x3a,0x4,0x91,0x4,0x2b,0x5, +0xc5,0x5,0xf3,0x5,0x9c,0x5,0x8,0x5,0x7a,0x4,0xd,0x4, +0xc5,0x3,0x89,0x3,0x39,0x3,0xa4,0x2,0xc7,0x1,0x2e,0x1, +0x2b,0x1,0x27,0x1,0xaf,0x0,0x10,0x0,0x82,0xff,0x32,0xff, +0x67,0xff,0xb6,0xff,0xa0,0xff,0xbf,0xff,0x94,0x0,0x92,0x1, +0x2a,0x2,0x7a,0x2,0xa,0x3,0x2f,0x4,0x3e,0x5,0x58,0x5, +0xcb,0x4,0x57,0x4,0x2c,0x4,0x29,0x4,0xbe,0x3,0x93,0x2, +0x95,0x1,0x57,0x1,0xf6,0x0,0x0,0x0,0x4,0xff,0x38,0xfe, +0x73,0xfd,0x70,0xfc,0xd6,0xfa,0xdc,0xf8,0x22,0xf7,0xcb,0xf5, +0x6b,0xf4,0x80,0xf2,0x2b,0xf0,0x4d,0xee,0x24,0xed,0xe8,0xeb, +0x3e,0xea,0x92,0xe8,0x2d,0xe7,0xff,0xe5,0xcf,0xe4,0x46,0xe3, +0x82,0xe1,0x3f,0xe0,0xae,0xdf,0xe5,0xde,0x72,0xdd,0x25,0xdc, +0x92,0xdb,0x6f,0xdb,0x66,0xdb,0xe,0xdb,0x4d,0xda,0xe0,0xd9, +0xa,0xda,0x19,0xda,0xce,0xd9,0x8a,0xd9,0x98,0xd9,0xf9,0xd9, +0x3d,0xda,0x2c,0xda,0x51,0xda,0x6,0xdb,0x7,0xdc,0xe6,0xdc, +0x3e,0xdd,0x43,0xdd,0xbd,0xdd,0xc0,0xde,0x9f,0xdf,0x1d,0xe0, +0x83,0xe0,0xd,0xe1,0xcc,0xe1,0xaa,0xe2,0x90,0xe3,0x9e,0xe4, +0xf8,0xe5,0x48,0xe7,0x1d,0xe8,0xcc,0xe8,0xf6,0xe9,0x90,0xeb, +0xe,0xed,0x10,0xee,0xc4,0xee,0xe2,0xef,0xa8,0xf1,0x84,0xf3, +0x29,0xf5,0xc9,0xf6,0x83,0xf8,0x7d,0xfa,0x72,0xfc,0xe9,0xfd, +0x53,0xff,0x2d,0x1,0xdb,0x2,0xeb,0x3,0xa4,0x4,0x54,0x5, +0x60,0x6,0xc9,0x7,0xd8,0x8,0x4b,0x9,0xb3,0x9,0x6b,0xa, +0x4e,0xb,0x5,0xc,0x4b,0xc,0x3c,0xc,0x1c,0xc,0xee,0xb, +0x88,0xb,0xe5,0xa,0x32,0xa,0xa2,0x9,0x2e,0x9,0x7b,0x8, +0x62,0x7,0x64,0x6,0xeb,0x5,0xa4,0x5,0x1a,0x5,0x3a,0x4, +0x41,0x3,0x9f,0x2,0x6a,0x2,0x31,0x2,0xe2,0x1,0xd2,0x1, +0xf7,0x1,0x25,0x2,0x67,0x2,0xb3,0x2,0x33,0x3,0xb,0x4, +0xc0,0x4,0x0,0x5,0x25,0x5,0x6a,0x5,0xd0,0x5,0x57,0x6, +0xab,0x6,0x81,0x6,0x2e,0x6,0x18,0x6,0x2a,0x6,0x12,0x6, +0xb7,0x5,0x2f,0x5,0x76,0x4,0x81,0x3,0x6f,0x2,0x6d,0x1, +0x95,0x0,0xcf,0xff,0xd5,0xfe,0x91,0xfd,0x6b,0xfc,0xda,0xfb, +0xd4,0xfb,0xf6,0xfb,0xfa,0xfb,0xe8,0xfb,0xf1,0xfb,0x35,0xfc, +0xbb,0xfc,0x70,0xfd,0x20,0xfe,0xaf,0xfe,0x3c,0xff,0xd4,0xff, +0x93,0x0,0xb9,0x1,0x1f,0x3,0x6e,0x4,0x91,0x5,0x7d,0x6, +0x4e,0x7,0x3e,0x8,0x16,0x9,0x80,0x9,0x9c,0x9,0x8d,0x9, +0x56,0x9,0x6,0x9,0xa3,0x8,0x57,0x8,0x4a,0x8,0x2d,0x8, +0xe0,0x7,0xb8,0x7,0xc4,0x7,0xe7,0x7,0x29,0x8,0x50,0x8, +0x37,0x8,0x1b,0x8,0x15,0x8,0x1f,0x8,0x48,0x8,0x8b,0x8, +0xd8,0x8,0xd,0x9,0x2a,0x9,0x93,0x9,0x62,0xa,0x3f,0xb, +0xb,0xc,0xb2,0xc,0x1f,0xd,0x7d,0xd,0xca,0xd,0x7,0xe, +0x66,0xe,0xa6,0xe,0x77,0xe,0x11,0xe,0xa8,0xd,0x69,0xd, +0x8c,0xd,0xca,0xd,0xb3,0xd,0x40,0xd,0x8f,0xc,0xe5,0xb, +0x7c,0xb,0x17,0xb,0x79,0xa,0xae,0x9,0xa0,0x8,0x67,0x7, +0x64,0x6,0xab,0x5,0x24,0x5,0xd7,0x4,0x6e,0x4,0x7e,0x3, +0x66,0x2,0xd3,0x1,0xbf,0x1,0x88,0x1,0xcb,0x0,0xc3,0xff, +0xef,0xfe,0x86,0xfe,0x46,0xfe,0xe0,0xfd,0x7a,0xfd,0x4e,0xfd, +0x50,0xfd,0x6a,0xfd,0x7c,0xfd,0x94,0xfd,0xfe,0xfd,0x79,0xfe, +0x67,0xfe,0x0,0xfe,0xeb,0xfd,0x38,0xfe,0x8e,0xfe,0xae,0xfe, +0x7d,0xfe,0xc,0xfe,0xa1,0xfd,0x7e,0xfd,0x8b,0xfd,0x8e,0xfd, +0x6b,0xfd,0xe4,0xfc,0xe9,0xfb,0xf1,0xfa,0x50,0xfa,0xe9,0xf9, +0x7b,0xf9,0xb6,0xf8,0x9e,0xf7,0xae,0xf6,0x24,0xf6,0xe9,0xf5, +0xfa,0xf5,0x20,0xf6,0x32,0xf6,0x78,0xf6,0xa,0xf7,0xb4,0xf7, +0x95,0xf8,0xb4,0xf9,0xe8,0xfa,0x20,0xfc,0x8,0xfd,0x93,0xfd, +0x74,0xfe,0xe2,0xff,0x49,0x1,0x37,0x2,0x83,0x2,0x81,0x2, +0xe5,0x2,0xbc,0x3,0x68,0x4,0x95,0x4,0x4e,0x4,0xca,0x3, +0x5c,0x3,0x1b,0x3,0xda,0x2,0x80,0x2,0xff,0x1,0x3a,0x1, +0x3e,0x0,0x61,0xff,0xf0,0xfe,0xed,0xfe,0xa,0xff,0xe8,0xfe, +0x8c,0xfe,0x74,0xfe,0xf8,0xfe,0xd2,0xff,0x9c,0x0,0x41,0x1, +0xc0,0x1,0x25,0x2,0x94,0x2,0xfc,0x2,0x65,0x3,0xf9,0x3, +0x7a,0x4,0x94,0x4,0x60,0x4,0x20,0x4,0x33,0x4,0xb2,0x4, +0xfe,0x4,0xb1,0x4,0x12,0x4,0x84,0x3,0x44,0x3,0x32,0x3, +0xdf,0x2,0x44,0x2,0xa0,0x1,0xf7,0x0,0x6b,0x0,0x28,0x0, +0x11,0x0,0xd,0x0,0x25,0x0,0x3c,0x0,0x55,0x0,0x98,0x0, +0xfc,0x0,0x51,0x1,0x75,0x1,0x5c,0x1,0x25,0x1,0xe6,0x0, +0x97,0x0,0x51,0x0,0x24,0x0,0x16,0x0,0x2d,0x0,0x46,0x0, +0x66,0x0,0xef,0x0,0xe6,0x1,0xe0,0x2,0xa0,0x3,0x26,0x4, +0xa4,0x4,0x50,0x5,0x7,0x6,0x8e,0x6,0xd8,0x6,0xc,0x7, +0x4c,0x7,0x8c,0x7,0xb1,0x7,0xda,0x7,0x35,0x8,0xa8,0x8, +0xe4,0x8,0xe5,0x8,0xf3,0x8,0x1b,0x9,0x32,0x9,0x12,0x9, +0x94,0x8,0xe7,0x7,0x70,0x7,0x28,0x7,0xc4,0x6,0x51,0x6, +0xf8,0x5,0xc1,0x5,0xb3,0x5,0xc8,0x5,0xf8,0x5,0x68,0x6, +0x5,0x7,0x64,0x7,0x88,0x7,0xd2,0x7,0x57,0x8,0x0,0x9, +0xa7,0x9,0xf4,0x9,0xf5,0x9,0x27,0xa,0x9e,0xa,0xfd,0xa, +0x33,0xb,0x8e,0xb,0x8,0xc,0x4e,0xc,0x5c,0xc,0x58,0xc, +0x55,0xc,0x7c,0xc,0xaf,0xc,0x7d,0xc,0xd8,0xb,0x29,0xb, +0xc6,0xa,0xbf,0xa,0xc2,0xa,0x5f,0xa,0xb6,0x9,0x54,0x9, +0x58,0x9,0x78,0x9,0x75,0x9,0x44,0x9,0x12,0x9,0x2,0x9, +0xe0,0x8,0x9f,0x8,0x83,0x8,0x8a,0x8,0xa2,0x8,0xa1,0x8, +0x3e,0x8,0xe5,0x7,0x27,0x8,0x93,0x8,0xaf,0x8,0xa1,0x8, +0x77,0x8,0x47,0x8,0x46,0x8,0x57,0x8,0x62,0x8,0x7d,0x8, +0x88,0x8,0x74,0x8,0x5d,0x8,0x3f,0x8,0x54,0x8,0xd1,0x8, +0xfa,0x8,0x2d,0x8,0x1f,0x7,0x86,0x6,0x5,0x6,0x32,0x5, +0x10,0x4,0xb1,0x2,0x41,0x1,0xf8,0xff,0xd1,0xfe,0xb9,0xfd, +0xd2,0xfc,0x3b,0xfc,0xb6,0xfb,0xd7,0xfa,0x9f,0xf9,0xd5,0xf8, +0x16,0xf9,0xb6,0xf9,0xca,0xf9,0x65,0xf9,0xf,0xf9,0x63,0xf9, +0xaf,0xfa,0x26,0xfc,0x1e,0xfd,0x18,0xfe,0x61,0xff,0xa0,0x0, +0xa9,0x1,0x76,0x2,0x49,0x3,0x69,0x4,0x2a,0x5,0xc5,0x4, +0xc7,0x3,0x28,0x3,0x6,0x3,0xc,0x3,0xc3,0x2,0xa7,0x1, +0x1e,0x0,0x5f,0xff,0xa8,0xff,0x5,0x0,0xda,0xff,0x7b,0xff, +0x5f,0xff,0x78,0xff,0x7a,0xff,0x94,0xff,0x44,0x0,0x52,0x1, +0xfb,0x1,0x1f,0x2,0x2f,0x2,0xad,0x2,0x2c,0x4,0x33,0x6, +0x2d,0x7,0xff,0x6,0x26,0x7,0x9,0x8,0xea,0x8,0x4e,0x9, +0x8,0x9,0x44,0x8,0x64,0x7,0x5c,0x6,0xf9,0x4,0x6f,0x3, +0x2a,0x2,0x23,0x1,0xc9,0xff,0xe7,0xfd,0x1b,0xfc,0x24,0xfb, +0xe8,0xfa,0x87,0xfa,0x7c,0xf9,0x19,0xf8,0xbd,0xf6,0x9d,0xf5, +0xda,0xf4,0xdf,0xf3,0x2b,0xf2,0x56,0xf0,0xd4,0xee,0x37,0xed, +0x86,0xeb,0x1d,0xea,0xdf,0xe8,0xc5,0xe7,0xaa,0xe6,0x11,0xe5, +0x54,0xe3,0x38,0xe2,0x75,0xe1,0x6b,0xe0,0xf0,0xde,0x2c,0xdd, +0xbb,0xdb,0xf4,0xda,0x61,0xda,0xc2,0xd9,0x4c,0xd9,0x2d,0xd9, +0x88,0xd9,0x2a,0xda,0xba,0xda,0x66,0xdb,0x75,0xdc,0xa3,0xdd, +0x88,0xde,0x5,0xdf,0x38,0xdf,0x74,0xdf,0xee,0xdf,0x54,0xe0, +0x3c,0xe0,0xf8,0xdf,0x5,0xe0,0x45,0xe0,0x7a,0xe0,0xb1,0xe0, +0x4,0xe1,0x84,0xe1,0x23,0xe2,0x8c,0xe2,0xba,0xe2,0x26,0xe3, +0xf8,0xe3,0xd3,0xe4,0x7d,0xe5,0xf5,0xe5,0x8d,0xe6,0xd4,0xe7, +0xa1,0xe9,0x49,0xeb,0xd9,0xec,0xc4,0xee,0xf,0xf1,0x80,0xf3, +0xdc,0xf5,0x2b,0xf8,0x89,0xfa,0xc4,0xfc,0xac,0xfe,0x43,0x0, +0x9b,0x1,0xe3,0x2,0x26,0x4,0x1d,0x5,0xbe,0x5,0x48,0x6, +0xda,0x6,0x72,0x7,0x6,0x8,0x83,0x8,0xea,0x8,0x47,0x9, +0x91,0x9,0xc0,0x9,0xe8,0x9,0x3,0xa,0x2,0xa,0xeb,0x9, +0xb4,0x9,0x5e,0x9,0x24,0x9,0x30,0x9,0x5f,0x9,0x74,0x9, +0x79,0x9,0xb7,0x9,0x3f,0xa,0xf5,0xa,0xce,0xb,0x88,0xc, +0xdb,0xc,0x9,0xd,0x4a,0xd,0x47,0xd,0xc5,0xc,0x12,0xc, +0x69,0xb,0xb6,0xa,0xfb,0x9,0x43,0x9,0x91,0x8,0xe,0x8, +0xb6,0x7,0x67,0x7,0x33,0x7,0xf5,0x6,0x75,0x6,0xe9,0x5, +0x47,0x5,0x52,0x4,0x48,0x3,0x4d,0x2,0x31,0x1,0x10,0x0, +0x1b,0xff,0x3d,0xfe,0x73,0xfd,0xe3,0xfc,0xbb,0xfc,0x1,0xfd, +0x67,0xfd,0x88,0xfd,0x63,0xfd,0x4a,0xfd,0x76,0xfd,0xcc,0xfd, +0xe3,0xfd,0x92,0xfd,0x38,0xfd,0x29,0xfd,0x5e,0xfd,0xc0,0xfd, +0x46,0xfe,0xf5,0xfe,0xcb,0xff,0x99,0x0,0x51,0x1,0xd,0x2, +0xd2,0x2,0xa7,0x3,0x64,0x4,0xb3,0x4,0xa3,0x4,0x92,0x4, +0xba,0x4,0x1b,0x5,0x7b,0x5,0xad,0x5,0xba,0x5,0xc7,0x5, +0xb,0x6,0x9f,0x6,0x55,0x7,0xf4,0x7,0x59,0x8,0x79,0x8, +0x95,0x8,0xfd,0x8,0xa4,0x9,0x38,0xa,0x7b,0xa,0x86,0xa, +0xaf,0xa,0x34,0xb,0xc,0xc,0xdb,0xc,0x37,0xd,0x3b,0xd, +0x7c,0xd,0x26,0xe,0xce,0xe,0x40,0xf,0x7e,0xf,0x82,0xf, +0x86,0xf,0x8d,0xf,0x4f,0xf,0x6,0xf,0xfa,0xe,0xcf,0xe, +0x26,0xe,0x19,0xd,0x17,0xc,0x97,0xb,0x7d,0xb,0x42,0xb, +0xb2,0xa,0xf8,0x9,0x60,0x9,0x27,0x9,0x32,0x9,0x2c,0x9, +0xdb,0x8,0x27,0x8,0x13,0x7,0xf1,0x5,0x2e,0x5,0xcf,0x4, +0x75,0x4,0xb1,0x3,0x89,0x2,0xb5,0x1,0xad,0x1,0xf9,0x1, +0x18,0x2,0xf5,0x1,0x98,0x1,0x36,0x1,0xf3,0x0,0x94,0x0, +0xf5,0xff,0x39,0xff,0x7d,0xfe,0xc0,0xfd,0x3,0xfd,0x4f,0xfc, +0xb8,0xfb,0x55,0xfb,0x18,0xfb,0xd5,0xfa,0x5e,0xfa,0xac,0xf9, +0xfa,0xf8,0x8e,0xf8,0x27,0xf8,0x5b,0xf7,0x49,0xf6,0x65,0xf5, +0xe2,0xf4,0xa2,0xf4,0x8e,0xf4,0x98,0xf4,0xa3,0xf4,0xc3,0xf4, +0x3f,0xf5,0xfc,0xf5,0xaf,0xf6,0x50,0xf7,0xd9,0xf7,0x40,0xf8, +0xa1,0xf8,0x1c,0xf9,0xb3,0xf9,0x33,0xfa,0x7a,0xfa,0xcc,0xfa, +0x56,0xfb,0xe6,0xfb,0x58,0xfc,0xbd,0xfc,0x2c,0xfd,0xa3,0xfd, +0xfc,0xfd,0x14,0xfe,0x9,0xfe,0x16,0xfe,0x58,0xfe,0xaa,0xfe, +0xc5,0xfe,0x94,0xfe,0x6b,0xfe,0x8d,0xfe,0xd3,0xfe,0x15,0xff, +0x4b,0xff,0x6b,0xff,0x7b,0xff,0x8a,0xff,0xae,0xff,0x2,0x0, +0x6e,0x0,0xdc,0x0,0x3f,0x1,0x6a,0x1,0x85,0x1,0xe0,0x1, +0x40,0x2,0x70,0x2,0x98,0x2,0xab,0x2,0xaa,0x2,0xc5,0x2, +0xee,0x2,0x18,0x3,0x74,0x3,0xf6,0x3,0x55,0x4,0x83,0x4, +0xb2,0x4,0x0,0x5,0x5b,0x5,0x86,0x5,0x4b,0x5,0xc6,0x4, +0x4a,0x4,0xff,0x3,0xd5,0x3,0x96,0x3,0x25,0x3,0xa7,0x2, +0x64,0x2,0x7a,0x2,0xae,0x2,0xa5,0x2,0x6b,0x2,0x3e,0x2, +0x30,0x2,0x2f,0x2,0xd,0x2,0xbe,0x1,0x85,0x1,0x78,0x1, +0x6a,0x1,0x59,0x1,0x70,0x1,0xb8,0x1,0x13,0x2,0x66,0x2, +0xa0,0x2,0xb9,0x2,0xcf,0x2,0xec,0x2,0xe8,0x2,0xb5,0x2, +0x6f,0x2,0x2c,0x2,0xf3,0x1,0xb2,0x1,0x79,0x1,0x87,0x1, +0xd5,0x1,0x24,0x2,0x62,0x2,0xa2,0x2,0xe9,0x2,0x2d,0x3, +0x69,0x3,0x8d,0x3,0x8b,0x3,0x83,0x3,0x8c,0x3,0x98,0x3, +0xb7,0x3,0xe0,0x3,0xe6,0x3,0xfb,0x3,0x76,0x4,0x1c,0x5, +0x6e,0x5,0x60,0x5,0x3b,0x5,0x48,0x5,0x8e,0x5,0xaf,0x5, +0x65,0x5,0x9,0x5,0xd,0x5,0x6e,0x5,0xe5,0x5,0x22,0x6, +0x40,0x6,0xc5,0x6,0xa9,0x7,0x61,0x8,0xc4,0x8,0xf7,0x8, +0x36,0x9,0xad,0x9,0x1f,0xa,0x45,0xa,0x4d,0xa,0x7b,0xa, +0xcf,0xa,0xe,0xb,0x18,0xb,0x1d,0xb,0x41,0xb,0x61,0xb, +0x3d,0xb,0xbb,0xa,0x15,0xa,0x9a,0x9,0x3f,0x9,0xb8,0x8, +0xf4,0x7,0x41,0x7,0xef,0x6,0x2,0x7,0x24,0x7,0x1b,0x7, +0x20,0x7,0x6e,0x7,0xf2,0x7,0x62,0x8,0x64,0x8,0x22,0x8, +0x3f,0x8,0xa2,0x8,0x9e,0x8,0x3d,0x8,0xf8,0x7,0x10,0x8, +0x8d,0x8,0x19,0x9,0x44,0x9,0x16,0x9,0x1,0x9,0x4f,0x9, +0xa6,0x9,0x66,0x9,0x9e,0x8,0xe8,0x7,0x75,0x7,0xe3,0x6, +0xf5,0x5,0xe3,0x4,0x3,0x4,0x89,0x3,0x57,0x3,0xfe,0x2, +0x42,0x2,0x9a,0x1,0x7b,0x1,0x91,0x1,0x40,0x1,0x88,0x0, +0xc8,0xff,0x40,0xff,0x4,0xff,0xd3,0xfe,0x5b,0xfe,0xd9,0xfd, +0xb9,0xfd,0xe4,0xfd,0xf,0xfe,0x29,0xfe,0x69,0xfe,0x5,0xff, +0xcb,0xff,0x57,0x0,0x9d,0x0,0xf7,0x0,0xa2,0x1,0x68,0x2, +0xfd,0x2,0x72,0x3,0xd7,0x3,0x16,0x4,0x4f,0x4,0x9c,0x4, +0xd1,0x4,0xe1,0x4,0xe6,0x4,0xa0,0x4,0xe5,0x3,0x34,0x3, +0xe1,0x2,0x7f,0x2,0xba,0x1,0xb8,0x0,0xb5,0xff,0xdd,0xfe, +0x2c,0xfe,0x76,0xfd,0xad,0xfc,0xd5,0xfb,0x28,0xfb,0x5,0xfb, +0x5d,0xfb,0xbc,0xfb,0x1c,0xfc,0xff,0xfc,0xa7,0xfe,0x9f,0x0, +0x64,0x2,0xe,0x4,0x12,0x6,0x97,0x8,0x2e,0xb,0x29,0xd, +0x54,0xe,0x5c,0xf,0x2,0x11,0xd9,0x12,0xdc,0x13,0x7,0x14, +0x18,0x14,0x5d,0x14,0x8a,0x14,0x1b,0x14,0xe1,0x12,0x5c,0x11, +0xe9,0xf,0x26,0xe,0x94,0xb,0x58,0x8,0x21,0x5,0x72,0x2, +0x15,0x0,0x71,0xfd,0x81,0xfa,0x1,0xf8,0x5d,0xf6,0x4f,0xf5, +0x9a,0xf4,0x15,0xf4,0x8d,0xf3,0x3a,0xf3,0x4a,0xf3,0x52,0xf3, +0x25,0xf3,0x28,0xf3,0x70,0xf3,0x8b,0xf3,0x41,0xf3,0xd6,0xf2, +0xa6,0xf2,0xc6,0xf2,0xf5,0xf2,0xda,0xf2,0x61,0xf2,0xbc,0xf1, +0xf,0xf1,0x34,0xf0,0xe6,0xee,0x51,0xed,0xc2,0xeb,0xf6,0xe9, +0xb0,0xe7,0x45,0xe5,0xa,0xe3,0x31,0xe1,0xcc,0xdf,0x74,0xde, +0xda,0xdc,0x5e,0xdb,0x7a,0xda,0x2c,0xda,0x15,0xda,0xc8,0xd9, +0x4f,0xd9,0x3d,0xd9,0xbe,0xd9,0x40,0xda,0x87,0xda,0xfa,0xda, +0xdf,0xdb,0x3c,0xdd,0xcb,0xde,0xa,0xe0,0x2a,0xe1,0xe3,0xe2, +0x32,0xe5,0x6c,0xe7,0x2e,0xe9,0x9f,0xea,0x7,0xec,0x81,0xed, +0x0,0xef,0x5c,0xf0,0x77,0xf1,0x76,0xf2,0x69,0xf3,0x2d,0xf4, +0xf3,0xf4,0x1c,0xf6,0x8f,0xf7,0xe3,0xf8,0xde,0xf9,0x9d,0xfa, +0x6f,0xfb,0x69,0xfc,0x3f,0xfd,0xc0,0xfd,0x7,0xfe,0x23,0xfe, +0x11,0xfe,0xe6,0xfd,0xb5,0xfd,0xa7,0xfd,0xe2,0xfd,0x4b,0xfe, +0xc2,0xfe,0x38,0xff,0xb8,0xff,0xa8,0x0,0x1f,0x2,0x8e,0x3, +0x9c,0x4,0x58,0x5,0x0,0x6,0x6,0x7,0x56,0x8,0x4e,0x9, +0xe8,0x9,0x96,0xa,0x7e,0xb,0x82,0xc,0x8c,0xd,0x94,0xe, +0x91,0xf,0x6f,0x10,0x11,0x11,0x4b,0x11,0x1,0x11,0x6c,0x10, +0xd0,0xf,0xed,0xe,0x5e,0xd,0x62,0xb,0x82,0x9,0xd0,0x7, +0x1a,0x6,0x79,0x4,0x16,0x3,0xd5,0x1,0x95,0x0,0x67,0xff, +0x3d,0xfe,0x11,0xfd,0x2a,0xfc,0x7e,0xfb,0xa8,0xfa,0xc8,0xf9, +0x28,0xf9,0xb6,0xf8,0x79,0xf8,0x8a,0xf8,0xcd,0xf8,0x3d,0xf9, +0xdc,0xf9,0x9a,0xfa,0x72,0xfb,0x63,0xfc,0x6e,0xfd,0x73,0xfe, +0x1d,0xff,0x53,0xff,0x64,0xff,0x95,0xff,0xda,0xff,0x1,0x0, +0xe5,0xff,0x80,0xff,0xc,0xff,0xd2,0xfe,0xd2,0xfe,0xe0,0xfe, +0xe8,0xfe,0xd8,0xfe,0xb8,0xfe,0xa3,0xfe,0x94,0xfe,0x8d,0xfe, +0x9c,0xfe,0xad,0xfe,0xaa,0xfe,0xa1,0xfe,0x9f,0xfe,0xad,0xfe, +0xdc,0xfe,0x1f,0xff,0x5f,0xff,0xb3,0xff,0x3f,0x0,0xfd,0x0, +0xe1,0x1,0xd9,0x2,0xd2,0x3,0xbe,0x4,0x9d,0x5,0x9c,0x6, +0xc2,0x7,0xc9,0x8,0xa6,0x9,0x8c,0xa,0x74,0xb,0x5e,0xc, +0x53,0xd,0x35,0xe,0x1a,0xf,0xe,0x10,0xce,0x10,0x5b,0x11, +0xe2,0x11,0x51,0x12,0x88,0x12,0x69,0x12,0xf1,0x11,0x6a,0x11, +0x10,0x11,0xc0,0x10,0x33,0x10,0x48,0xf,0x20,0xe,0xb,0xd, +0x52,0xc,0xfb,0xb,0xac,0xb,0xfc,0xa,0xf9,0x9,0x7,0x9, +0x58,0x8,0xe9,0x7,0x95,0x7,0x1b,0x7,0x7f,0x6,0xf0,0x5, +0x6c,0x5,0x11,0x5,0x0,0x5,0xf,0x5,0x15,0x5,0xff,0x4, +0xbd,0x4,0x8b,0x4,0x97,0x4,0xb3,0x4,0xa0,0x4,0x26,0x4, +0x4f,0x3,0x7d,0x2,0xe2,0x1,0x6b,0x1,0xf3,0x0,0x32,0x0, +0x1b,0xff,0xf5,0xfd,0xef,0xfc,0x1d,0xfc,0x6c,0xfb,0xa2,0xfa, +0xb4,0xf9,0xac,0xf8,0x80,0xf7,0x6e,0xf6,0xd3,0xf5,0xa6,0xf5, +0x75,0xf5,0xdf,0xf4,0x9,0xf4,0x8e,0xf3,0xb8,0xf3,0x24,0xf4, +0x6e,0xf4,0x7a,0xf4,0x52,0xf4,0x36,0xf4,0x56,0xf4,0xa6,0xf4, +0x37,0xf5,0xed,0xf5,0x55,0xf6,0x53,0xf6,0x5c,0xf6,0xe4,0xf6, +0xd5,0xf7,0xa6,0xf8,0x17,0xf9,0x4f,0xf9,0x7f,0xf9,0xc0,0xf9, +0xb,0xfa,0x61,0xfa,0xde,0xfa,0x4a,0xfb,0x6b,0xfb,0x70,0xfb, +0x8b,0xfb,0xcc,0xfb,0x57,0xfc,0xf2,0xfc,0x35,0xfd,0x3a,0xfd, +0x5d,0xfd,0xc3,0xfd,0x64,0xfe,0x13,0xff,0x82,0xff,0xa0,0xff, +0xc4,0xff,0x35,0x0,0xd4,0x0,0x5a,0x1,0xb9,0x1,0x15,0x2, +0x77,0x2,0xd4,0x2,0x43,0x3,0xdb,0x3,0x7a,0x4,0xeb,0x4, +0x32,0x5,0x81,0x5,0xe0,0x5,0x3b,0x6,0x8a,0x6,0xae,0x6, +0xa6,0x6,0xa1,0x6,0x9a,0x6,0x76,0x6,0x3f,0x6,0x9,0x6, +0xda,0x5,0x90,0x5,0x8,0x5,0x8f,0x4,0x67,0x4,0x43,0x4, +0xd7,0x3,0x31,0x3,0x88,0x2,0x9,0x2,0x9d,0x1,0xe,0x1, +0x5a,0x0,0x9e,0xff,0xfc,0xfe,0x90,0xfe,0x41,0xfe,0xfb,0xfd, +0xca,0xfd,0xad,0xfd,0xab,0xfd,0xe8,0xfd,0x38,0xfe,0x4b,0xfe, +0x46,0xfe,0x6e,0xfe,0xa5,0xfe,0xbd,0xfe,0xc3,0xfe,0xcd,0xfe, +0xd9,0xfe,0xe5,0xfe,0xfb,0xfe,0x17,0xff,0x38,0xff,0x78,0xff, +0xc5,0xff,0xd1,0xff,0xa3,0xff,0x6f,0xff,0x31,0xff,0xe6,0xfe, +0xb0,0xfe,0x8b,0xfe,0x3e,0xfe,0xae,0xfd,0x31,0xfd,0x23,0xfd, +0x76,0xfd,0xf0,0xfd,0x64,0xfe,0xc4,0xfe,0x39,0xff,0xd6,0xff, +0x6f,0x0,0x5,0x1,0xb9,0x1,0x7d,0x2,0x2f,0x3,0xab,0x3, +0xda,0x3,0xf,0x4,0xc3,0x4,0xcd,0x5,0x9f,0x6,0x15,0x7, +0x58,0x7,0x93,0x7,0xf0,0x7,0x6a,0x8,0xc6,0x8,0xe5,0x8, +0xcd,0x8,0x72,0x8,0xe7,0x7,0x7d,0x7,0x57,0x7,0x44,0x7, +0x28,0x7,0xf7,0x6,0x95,0x6,0x32,0x6,0x2b,0x6,0x7a,0x6, +0xe0,0x6,0x3f,0x7,0x75,0x7,0x80,0x7,0xa1,0x7,0x10,0x8, +0xb4,0x8,0x46,0x9,0xaa,0x9,0xcf,0x9,0xb6,0x9,0xb0,0x9, +0x10,0xa,0x84,0xa,0x7f,0xa,0xf7,0x9,0x50,0x9,0xdd,0x8, +0xb2,0x8,0x9d,0x8,0x59,0x8,0xe0,0x7,0x51,0x7,0xd4,0x6, +0x8b,0x6,0x6a,0x6,0x58,0x6,0x63,0x6,0x72,0x6,0x4f,0x6, +0x17,0x6,0x4,0x6,0x37,0x6,0xaa,0x6,0x23,0x7,0x55,0x7, +0x1f,0x7,0xa2,0x6,0x56,0x6,0x6d,0x6,0x5d,0x6,0xce,0x5, +0xea,0x4,0xcc,0x3,0xb6,0x2,0xb,0x2,0x99,0x1,0xf6,0x0, +0x41,0x0,0xb5,0xff,0x56,0xff,0x2f,0xff,0x32,0xff,0x62,0xff, +0xd2,0xff,0x48,0x0,0x90,0x0,0xd1,0x0,0x24,0x1,0x8f,0x1, +0x2f,0x2,0xd4,0x2,0x16,0x3,0xd1,0x2,0x61,0x2,0x43,0x2, +0x5b,0x2,0x10,0x2,0x18,0x1,0xb3,0xff,0x60,0xfe,0x5d,0xfd, +0x5d,0xfc,0x34,0xfb,0x20,0xfa,0x2c,0xf9,0x4d,0xf8,0x96,0xf7, +0x6,0xf7,0xe6,0xf6,0x7b,0xf7,0x34,0xf8,0x9b,0xf8,0x18,0xf9, +0x7,0xfa,0x68,0xfb,0x31,0xfd,0x8,0xff,0xb9,0x0,0x7e,0x2, +0x63,0x4,0x71,0x6,0xb8,0x8,0xdf,0xa,0xbb,0xc,0x78,0xe, +0xbe,0xf,0x5d,0x10,0xe3,0x10,0x7f,0x11,0xd5,0x11,0xc1,0x11, +0x4d,0x11,0xa6,0x10,0x15,0x10,0xa5,0xf,0x2a,0xf,0x9e,0xe, +0x18,0xe,0x99,0xd,0x18,0xd,0x91,0xc,0xf0,0xb,0x47,0xb, +0xce,0xa,0x6b,0xa,0xe3,0x9,0x5e,0x9,0x2,0x9,0xb8,0x8, +0x7b,0x8,0x34,0x8,0xd2,0x7,0x92,0x7,0x56,0x7,0xa6,0x6, +0x99,0x5,0x82,0x4,0x60,0x3,0x3a,0x2,0xea,0x0,0x30,0xff, +0x74,0xfd,0x1d,0xfc,0xf0,0xfa,0xcf,0xf9,0xdc,0xf8,0x1,0xf8, +0x32,0xf7,0x58,0xf6,0x41,0xf5,0x1c,0xf4,0x3a,0xf3,0x75,0xf2, +0x6f,0xf1,0xfb,0xef,0x40,0xee,0x99,0xec,0x48,0xeb,0x40,0xea, +0x2a,0xe9,0xcc,0xe7,0x65,0xe6,0x36,0xe5,0xb,0xe4,0xb4,0xe2, +0x72,0xe1,0x77,0xe0,0x75,0xdf,0x1d,0xde,0xa5,0xdc,0x54,0xdb, +0x48,0xda,0xb2,0xd9,0x6d,0xd9,0xfe,0xd8,0xa3,0xd8,0xe8,0xd8, +0x8d,0xd9,0x56,0xda,0x8b,0xdb,0xfb,0xdc,0x4b,0xde,0xa7,0xdf, +0x13,0xe1,0x77,0xe2,0x18,0xe4,0xe8,0xe5,0x79,0xe7,0xb3,0xe8, +0xc1,0xe9,0xe6,0xea,0x57,0xec,0xd0,0xed,0xed,0xee,0xc2,0xef, +0x8b,0xf0,0x60,0xf1,0x31,0xf2,0xd2,0xf2,0x59,0xf3,0x4,0xf4, +0xa6,0xf4,0xfc,0xf4,0x35,0xf5,0x9a,0xf5,0x54,0xf6,0x73,0xf7, +0x9f,0xf8,0x6e,0xf9,0x2d,0xfa,0x68,0xfb,0x15,0xfd,0xdf,0xfe, +0x95,0x0,0x18,0x2,0x7a,0x3,0xe1,0x4,0x41,0x6,0x8f,0x7, +0xe2,0x8,0x21,0xa,0xd,0xb,0x9b,0xb,0xf3,0xb,0x57,0xc, +0xfb,0xc,0xa8,0xd,0xe7,0xd,0xb0,0xd,0x6d,0xd,0x4a,0xd, +0x14,0xd,0xac,0xc,0x25,0xc,0x82,0xb,0xba,0xa,0xd1,0x9, +0xcc,0x8,0xbf,0x7,0xde,0x6,0x3b,0x6,0x94,0x5,0xa0,0x4, +0x87,0x3,0xbb,0x2,0x4d,0x2,0xe1,0x1,0x40,0x1,0x86,0x0, +0xdd,0xff,0x55,0xff,0xd4,0xfe,0x52,0xfe,0xee,0xfd,0xa5,0xfd, +0x51,0xfd,0xea,0xfc,0x7f,0xfc,0x38,0xfc,0x3c,0xfc,0x48,0xfc, +0xf,0xfc,0xbc,0xfb,0x73,0xfb,0x22,0xfb,0xe8,0xfa,0xc2,0xfa, +0x74,0xfa,0x15,0xfa,0xc3,0xf9,0x6f,0xf9,0x36,0xf9,0x27,0xf9, +0x1a,0xf9,0xc,0xf9,0xf0,0xf8,0xa7,0xf8,0x75,0xf8,0x9d,0xf8, +0xdd,0xf8,0xe8,0xf8,0xc3,0xf8,0x9f,0xf8,0xc9,0xf8,0x47,0xf9, +0xaa,0xf9,0xbb,0xf9,0xda,0xf9,0x5b,0xfa,0xff,0xfa,0x71,0xfb, +0xcc,0xfb,0x65,0xfc,0x4e,0xfd,0x4a,0xfe,0x1d,0xff,0xe1,0xff, +0xf8,0x0,0x8e,0x2,0x52,0x4,0xc5,0x5,0xcf,0x6,0xea,0x7, +0x7a,0x9,0x1e,0xb,0x53,0xc,0x21,0xd,0xad,0xd,0x5,0xe, +0x60,0xe,0xca,0xe,0x10,0xf,0x1a,0xf,0xdb,0xe,0x60,0xe, +0xef,0xd,0xa8,0xd,0x6c,0xd,0x13,0xd,0x6d,0xc,0x93,0xb, +0xe0,0xa,0x5f,0xa,0xf7,0x9,0xb5,0x9,0x89,0x9,0x4c,0x9, +0x12,0x9,0x11,0x9,0x72,0x9,0x2a,0xa,0xfe,0xa,0xb9,0xb, +0x42,0xc,0x9e,0xc,0xd,0xd,0xa7,0xd,0x36,0xe,0x91,0xe, +0xa6,0xe,0x67,0xe,0xef,0xd,0x5f,0xd,0xc3,0xc,0x2d,0xc, +0x7b,0xb,0x7b,0xa,0x47,0x9,0x1f,0x8,0x1a,0x7,0x24,0x6, +0x5,0x5,0xa6,0x3,0x48,0x2,0x28,0x1,0x3e,0x0,0x4c,0xff, +0x36,0xfe,0x25,0xfd,0x33,0xfc,0x5b,0xfb,0xbd,0xfa,0x52,0xfa, +0xe6,0xf9,0x99,0xf9,0x7c,0xf9,0x4b,0xf9,0x6,0xf9,0xdc,0xf8, +0xc7,0xf8,0xc4,0xf8,0xb0,0xf8,0x3f,0xf8,0xa1,0xf7,0x48,0xf7, +0x2e,0xf7,0x10,0xf7,0xdc,0xf6,0xa0,0xf6,0x82,0xf6,0xab,0xf6, +0x1d,0xf7,0xad,0xf7,0x2d,0xf8,0xa1,0xf8,0x16,0xf9,0x75,0xf9, +0xc1,0xf9,0x25,0xfa,0x96,0xfa,0xe1,0xfa,0xf2,0xfa,0xe0,0xfa, +0xd1,0xfa,0xe9,0xfa,0x3e,0xfb,0x9e,0xfb,0xb3,0xfb,0x8d,0xfb, +0x86,0xfb,0x9d,0xfb,0xa8,0xfb,0xa8,0xfb,0x93,0xfb,0x76,0xfb, +0x77,0xfb,0x83,0xfb,0x92,0xfb,0xdf,0xfb,0x79,0xfc,0x38,0xfd, +0xff,0xfd,0xbe,0xfe,0x97,0xff,0xc2,0x0,0x2c,0x2,0x7d,0x3, +0x69,0x4,0xfe,0x4,0x99,0x5,0x6b,0x6,0x47,0x7,0xef,0x7, +0x3d,0x8,0x45,0x8,0x47,0x8,0x5d,0x8,0x7e,0x8,0x98,0x8, +0x86,0x8,0x3c,0x8,0xbd,0x7,0x1,0x7,0x3f,0x6,0xb1,0x5, +0x23,0x5,0x62,0x4,0x69,0x3,0x49,0x2,0x6f,0x1,0x26,0x1, +0x0,0x1,0x9c,0x0,0x33,0x0,0x0,0x0,0xb,0x0,0x37,0x0, +0x5d,0x0,0x8e,0x0,0xdf,0x0,0x24,0x1,0x32,0x1,0x1f,0x1, +0x28,0x1,0x8a,0x1,0x27,0x2,0x88,0x2,0x7e,0x2,0x48,0x2, +0x37,0x2,0x70,0x2,0xcd,0x2,0xfb,0x2,0xcc,0x2,0x65,0x2, +0xd,0x2,0xd8,0x1,0x9c,0x1,0x3c,0x1,0xdb,0x0,0x97,0x0, +0x4c,0x0,0xdd,0xff,0x80,0xff,0x76,0xff,0xa4,0xff,0xbe,0xff, +0xa6,0xff,0x78,0xff,0x71,0xff,0xb5,0xff,0x23,0x0,0x78,0x0, +0xa3,0x0,0xc3,0x0,0xf2,0x0,0x40,0x1,0xc6,0x1,0x71,0x2, +0x6,0x3,0x7f,0x3,0xf9,0x3,0x74,0x4,0xc,0x5,0xda,0x5, +0xb2,0x6,0x73,0x7,0x15,0x8,0x79,0x8,0xb9,0x8,0x2f,0x9, +0xea,0x9,0xa8,0xa,0x18,0xb,0x19,0xb,0xef,0xa,0x2,0xb, +0x7f,0xb,0x23,0xc,0x73,0xc,0x50,0xc,0xa,0xc,0xd2,0xb, +0xba,0xb,0xc4,0xb,0xa5,0xb,0x43,0xb,0xd4,0xa,0x3a,0xa, +0x79,0x9,0xfa,0x8,0xd4,0x8,0xe4,0x8,0xfc,0x8,0xb4,0x8, +0x39,0x8,0x51,0x8,0xf8,0x8,0x8a,0x9,0xc3,0x9,0xaf,0x9, +0x95,0x9,0xbd,0x9,0xe9,0x9,0xbf,0x9,0x76,0x9,0x68,0x9, +0x88,0x9,0x71,0x9,0xf5,0x8,0x87,0x8,0xa1,0x8,0xf6,0x8, +0xcd,0x8,0x1,0x8,0xc,0x7,0x5d,0x6,0x1b,0x6,0xfc,0x5, +0x41,0x5,0xdf,0x3,0xfd,0x2,0x9,0x3,0x1d,0x3,0xb4,0x2, +0x1a,0x2,0xba,0x1,0xf4,0x1,0x5e,0x2,0x15,0x2,0x5d,0x1, +0x1f,0x1,0x64,0x1,0x9e,0x1,0x4e,0x1,0x90,0x0,0x51,0x0, +0xd9,0x0,0x39,0x1,0xf1,0x0,0x7c,0x0,0x55,0x0,0x91,0x0, +0xdf,0x0,0xc0,0x0,0x36,0x0,0xbf,0xff,0x95,0xff,0x7b,0xff, +0x45,0xff,0xd,0xff,0xde,0xfe,0xc0,0xfe,0xb0,0xfe,0x78,0xfe, +0x2f,0xfe,0x35,0xfe,0x54,0xfe,0x3a,0xfe,0x16,0xfe,0xe1,0xfd, +0xb0,0xfd,0xe5,0xfd,0x24,0xfe,0x14,0xfe,0x4a,0xfe,0xe9,0xfe, +0x7b,0xff,0xf5,0xff,0x50,0x0,0xb2,0x0,0x86,0x1,0x71,0x2, +0xe6,0x2,0x2c,0x3,0x95,0x3,0x3a,0x4,0xe,0x5,0x7b,0x5, +0x61,0x5,0x94,0x5,0x42,0x6,0xbe,0x6,0xc5,0x6,0x81,0x6, +0x2e,0x6,0x18,0x6,0x40,0x6,0x4c,0x6,0xff,0x5,0x90,0x5, +0x7b,0x5,0xda,0x5,0x51,0x6,0xaa,0x6,0x6,0x7,0x8f,0x7, +0x39,0x8,0xca,0x8,0x4c,0x9,0xf8,0x9,0xd3,0xa,0xd2,0xb, +0x8f,0xc,0x8e,0xc,0x80,0xc,0x50,0xd,0x5e,0xe,0xc3,0xe, +0x9c,0xe,0x32,0xe,0xce,0xd,0x9b,0xd,0x1f,0xd,0x2a,0xc, +0x32,0xb,0x2a,0xa,0xc0,0x8,0xd,0x7,0x47,0x5,0xd1,0x3, +0xeb,0x2,0xe2,0x1,0x0,0x0,0xc7,0xfd,0x5,0xfc,0xd5,0xfa, +0xeb,0xf9,0xd8,0xf8,0x53,0xf7,0xbd,0xf5,0xa8,0xf4,0xfe,0xf3, +0x57,0xf3,0xb7,0xf2,0x51,0xf2,0x10,0xf2,0x9e,0xf1,0xc0,0xf0, +0xbe,0xef,0x1d,0xef,0xc6,0xee,0x10,0xee,0x99,0xec,0xa0,0xea, +0xc5,0xe8,0x8a,0xe7,0x97,0xe6,0x2e,0xe5,0x63,0xe3,0xc3,0xe1, +0x6c,0xe0,0x4e,0xdf,0x4f,0xde,0x41,0xdd,0x54,0xdc,0xaf,0xdb, +0xde,0xda,0xd0,0xd9,0x3f,0xd9,0x6e,0xd9,0xf5,0xd9,0x8e,0xda, +0x10,0xdb,0x84,0xdb,0x6b,0xdc,0xa,0xde,0xde,0xdf,0x69,0xe1, +0xbb,0xe2,0xff,0xe3,0x36,0xe5,0x4c,0xe6,0x49,0xe7,0x6f,0xe8, +0xd8,0xe9,0x17,0xeb,0xd8,0xeb,0x5a,0xec,0x18,0xed,0x5f,0xee, +0x4,0xf0,0x4f,0xf1,0xd0,0xf1,0x15,0xf2,0xd5,0xf2,0x6,0xf4, +0x22,0xf5,0xf2,0xf5,0xb5,0xf6,0xae,0xf7,0xce,0xf8,0xfb,0xf9, +0x64,0xfb,0x1a,0xfd,0xe2,0xfe,0x83,0x0,0xd6,0x1,0xc9,0x2, +0xc0,0x3,0x1a,0x5,0x6e,0x6,0x25,0x7,0x53,0x7,0x5f,0x7, +0x8b,0x7,0xda,0x7,0x21,0x8,0x46,0x8,0x4f,0x8,0x3c,0x8, +0x1a,0x8,0x0,0x8,0xf1,0x7,0xe8,0x7,0xf5,0x7,0xf8,0x7, +0xc0,0x7,0x77,0x7,0x75,0x7,0xbb,0x7,0xe,0x8,0x3f,0x8, +0x38,0x8,0xc,0x8,0xe3,0x7,0xc4,0x7,0x90,0x7,0x1b,0x7, +0x58,0x6,0x7f,0x5,0xb1,0x4,0xcb,0x3,0xd1,0x2,0xfe,0x1, +0x4c,0x1,0x8a,0x0,0xb0,0xff,0xca,0xfe,0xe6,0xfd,0x1d,0xfd, +0x72,0xfc,0xcc,0xfb,0x1f,0xfb,0x77,0xfa,0xcf,0xf9,0x29,0xf9, +0xab,0xf8,0x6e,0xf8,0x6c,0xf8,0x9a,0xf8,0xde,0xf8,0x17,0xf9, +0x57,0xf9,0xc0,0xf9,0x2b,0xfa,0x74,0xfa,0xaf,0xfa,0xcc,0xfa, +0xa5,0xfa,0x6a,0xfa,0x5d,0xfa,0x76,0xfa,0x89,0xfa,0x7e,0xfa, +0x6f,0xfa,0x92,0xfa,0xf0,0xfa,0x6a,0xfb,0xe1,0xfb,0x47,0xfc, +0xae,0xfc,0x1e,0xfd,0x75,0xfd,0xc4,0xfd,0x47,0xfe,0x8,0xff, +0xd6,0xff,0x8d,0x0,0x4a,0x1,0x3f,0x2,0x5b,0x3,0x7b,0x4, +0x96,0x5,0x83,0x6,0x32,0x7,0xd2,0x7,0x64,0x8,0xc5,0x8, +0x0,0x9,0x25,0x9,0x30,0x9,0x38,0x9,0x62,0x9,0xac,0x9, +0xfb,0x9,0x48,0xa,0xb3,0xa,0x43,0xb,0xcc,0xb,0x33,0xc, +0x9b,0xc,0x1c,0xd,0x93,0xd,0xd7,0xd,0xef,0xd,0x1,0xe, +0x28,0xe,0x5b,0xe,0x66,0xe,0x43,0xe,0x2a,0xe,0x29,0xe, +0x29,0xe,0x39,0xe,0x49,0xe,0x22,0xe,0xd2,0xd,0x79,0xd, +0x9,0xd,0x9b,0xc,0x3f,0xc,0xb6,0xb,0xf4,0xa,0x1c,0xa, +0x34,0x9,0x57,0x8,0xb4,0x7,0x46,0x7,0xfc,0x6,0xa6,0x6, +0x15,0x6,0x83,0x5,0x3d,0x5,0x36,0x5,0x3a,0x5,0x6,0x5, +0x7d,0x4,0xd3,0x3,0x22,0x3,0x61,0x2,0x96,0x1,0xc2,0x0, +0x1,0x0,0x6c,0xff,0xd5,0xfe,0x45,0xfe,0xef,0xfd,0xbd,0xfd, +0x98,0xfd,0x7c,0xfd,0x40,0xfd,0xdd,0xfc,0x72,0xfc,0x5,0xfc, +0x9d,0xfb,0x1b,0xfb,0x4f,0xfa,0x7a,0xf9,0xfb,0xf8,0xd5,0xf8, +0xee,0xf8,0xb,0xf9,0xea,0xf8,0xca,0xf8,0x4,0xf9,0x5d,0xf9, +0x83,0xf9,0x73,0xf9,0x2c,0xf9,0xb4,0xf8,0x37,0xf8,0xd6,0xf7, +0x8b,0xf7,0x45,0xf7,0xb,0xf7,0xfa,0xf6,0x18,0xf7,0x7f,0xf7, +0x4f,0xf8,0x35,0xf9,0xd9,0xf9,0x62,0xfa,0x5,0xfb,0xb2,0xfb, +0x47,0xfc,0xa3,0xfc,0xdf,0xfc,0x2a,0xfd,0x6a,0xfd,0x84,0xfd, +0x9f,0xfd,0xe4,0xfd,0x72,0xfe,0x38,0xff,0xdd,0xff,0x36,0x0, +0x7d,0x0,0xf3,0x0,0x94,0x1,0x19,0x2,0x3d,0x2,0x16,0x2, +0xdc,0x1,0xa2,0x1,0x74,0x1,0x6b,0x1,0x70,0x1,0x5c,0x1, +0x45,0x1,0x56,0x1,0x96,0x1,0xf3,0x1,0x65,0x2,0xdb,0x2, +0x35,0x3,0x5a,0x3,0x5a,0x3,0x4f,0x3,0x32,0x3,0x11,0x3, +0xfd,0x2,0xc2,0x2,0x3f,0x2,0xb8,0x1,0x6f,0x1,0x5c,0x1, +0x66,0x1,0x84,0x1,0x9a,0x1,0x7f,0x1,0x48,0x1,0x3b,0x1, +0x6b,0x1,0xa9,0x1,0xb1,0x1,0x50,0x1,0xa4,0x0,0x27,0x0, +0x21,0x0,0x4b,0x0,0x39,0x0,0xfa,0xff,0xcd,0xff,0xb7,0xff, +0xc5,0xff,0xfe,0xff,0x32,0x0,0x50,0x0,0x6b,0x0,0x54,0x0, +0xf2,0xff,0x83,0xff,0x4f,0xff,0x5b,0xff,0x4c,0xff,0xcb,0xfe, +0x21,0xfe,0xdb,0xfd,0x21,0xfe,0xb5,0xfe,0x45,0xff,0x97,0xff, +0xbc,0xff,0x15,0x0,0xcd,0x0,0x9a,0x1,0x30,0x2,0x8c,0x2, +0xb5,0x2,0xa8,0x2,0x90,0x2,0xae,0x2,0x0,0x3,0x5a,0x3, +0xa0,0x3,0xd2,0x3,0xf7,0x3,0x43,0x4,0xe8,0x4,0xc3,0x5, +0x82,0x6,0xfe,0x6,0x4a,0x7,0x87,0x7,0xc1,0x7,0x3,0x8, +0x41,0x8,0x47,0x8,0xa,0x8,0xc5,0x7,0x9a,0x7,0x88,0x7, +0x99,0x7,0xcc,0x7,0xf6,0x7,0xd8,0x7,0x82,0x7,0x65,0x7, +0xac,0x7,0xff,0x7,0x4,0x8,0xa8,0x7,0x1d,0x7,0xb4,0x6, +0x97,0x6,0xb2,0x6,0xc7,0x6,0xba,0x6,0xbd,0x6,0xf3,0x6, +0x3f,0x7,0x99,0x7,0x21,0x8,0xe6,0x8,0xac,0x9,0xf7,0x9, +0xa5,0x9,0x28,0x9,0x2,0x9,0x42,0x9,0x59,0x9,0xa9,0x8, +0x76,0x7,0xa0,0x6,0x71,0x6,0x80,0x6,0x61,0x6,0x5,0x6, +0xb5,0x5,0xab,0x5,0xa8,0x5,0x54,0x5,0xcb,0x4,0x6a,0x4, +0x44,0x4,0xf5,0x3,0x19,0x3,0xef,0x1,0x30,0x1,0x36,0x1, +0x9d,0x1,0xba,0x1,0x63,0x1,0xb,0x1,0x25,0x1,0xba,0x1, +0x64,0x2,0x8b,0x2,0x3d,0x2,0x34,0x2,0x91,0x2,0xc3,0x2, +0x93,0x2,0x39,0x2,0x29,0x2,0x90,0x2,0xce,0x2,0x85,0x2, +0x40,0x2,0x59,0x2,0xae,0x2,0x7,0x3,0xff,0x2,0x91,0x2, +0x43,0x2,0x43,0x2,0x48,0x2,0x1f,0x2,0xc4,0x1,0x4d,0x1, +0xbf,0x0,0x21,0x0,0xae,0xff,0x76,0xff,0x4e,0xff,0x2c,0xff, +0xe,0xff,0xf4,0xfe,0x1,0xff,0x56,0xff,0x2,0x0,0xeb,0x0, +0xb3,0x1,0x2e,0x2,0x95,0x2,0x22,0x3,0xde,0x3,0xb0,0x4, +0x68,0x5,0xf6,0x5,0x63,0x6,0xc8,0x6,0x75,0x7,0x7e,0x8, +0x71,0x9,0x18,0xa,0x87,0xa,0xb4,0xa,0xdc,0xa,0x2b,0xb, +0x1f,0xb,0x75,0xa,0x97,0x9,0xc1,0x8,0xfd,0x7,0x5f,0x7, +0xfb,0x6,0x24,0x7,0xbc,0x7,0x5,0x8,0x1b,0x8,0xc6,0x8, +0xa,0xa,0x6b,0xb,0x6c,0xc,0x9f,0xc,0x5a,0xc,0x7d,0xc, +0x11,0xd,0x57,0xd,0x1b,0xd,0xd3,0xc,0xd2,0xc,0xf6,0xc, +0x3,0xd,0xfd,0xc,0x1b,0xd,0x31,0xd,0xbe,0xc,0xa8,0xb, +0x22,0xa,0x6b,0x8,0xd,0x7,0xe9,0x5,0xf2,0x3,0x22,0x1, +0x9e,0xfe,0xd4,0xfc,0x7f,0xfb,0x5e,0xfa,0xee,0xf8,0x22,0xf7, +0xb3,0xf5,0xbc,0xf4,0x8a,0xf3,0xee,0xf1,0x54,0xf0,0xb,0xef, +0xf8,0xed,0xad,0xec,0x12,0xeb,0xca,0xe9,0x37,0xe9,0xe3,0xe8, +0x56,0xe8,0x79,0xe7,0x82,0xe6,0xe6,0xe5,0xa0,0xe5,0xe0,0xe4, +0x65,0xe3,0xf1,0xe1,0xe1,0xe0,0xca,0xdf,0x7c,0xde,0x30,0xdd, +0x23,0xdc,0x81,0xdb,0x19,0xdb,0x7f,0xda,0xde,0xd9,0xba,0xd9, +0x1f,0xda,0xc4,0xda,0x3f,0xdb,0x6f,0xdb,0xf8,0xdb,0x3d,0xdd, +0xa4,0xde,0xc1,0xdf,0xd0,0xe0,0xe,0xe2,0x88,0xe3,0xd3,0xe4, +0x6d,0xe5,0xc5,0xe5,0x91,0xe6,0x95,0xe7,0x3c,0xe8,0x60,0xe8, +0x52,0xe8,0xa8,0xe8,0x8b,0xe9,0x78,0xea,0x16,0xeb,0x9d,0xeb, +0x5e,0xec,0x45,0xed,0x0,0xee,0x81,0xee,0x22,0xef,0x1b,0xf0, +0x15,0xf1,0xd3,0xf1,0xc1,0xf2,0x55,0xf4,0x87,0xf6,0xf2,0xf8, +0x2a,0xfb,0x47,0xfd,0xd4,0xff,0xb5,0x2,0x22,0x5,0xd4,0x6, +0x29,0x8,0x6c,0x9,0x8e,0xa,0x35,0xb,0x28,0xb,0xef,0xa, +0x2a,0xb,0xa0,0xb,0xbc,0xb,0x5f,0xb,0xd1,0xa,0x8c,0xa, +0xa2,0xa,0x47,0xa,0x3,0x9,0x83,0x7,0x72,0x6,0xa9,0x5, +0xbe,0x4,0x96,0x3,0xa1,0x2,0x69,0x2,0xd7,0x2,0x7f,0x3, +0x27,0x4,0xdb,0x4,0xcb,0x5,0xdb,0x6,0x95,0x7,0xc7,0x7, +0xa7,0x7,0x67,0x7,0x9,0x7,0x6b,0x6,0x99,0x5,0xc7,0x4, +0x0,0x4,0x2c,0x3,0x4b,0x2,0x73,0x1,0xb6,0x0,0x5,0x0, +0x36,0xff,0x14,0xfe,0x93,0xfc,0x1a,0xfb,0x4,0xfa,0x9,0xf9, +0xe3,0xf7,0xd9,0xf6,0x1a,0xf6,0xa7,0xf5,0x9f,0xf5,0xec,0xf5, +0x3e,0xf6,0xae,0xf6,0x79,0xf7,0x53,0xf8,0xdd,0xf8,0x3f,0xf9, +0xc8,0xf9,0x8b,0xfa,0x3e,0xfb,0x8d,0xfb,0xb5,0xfb,0x2c,0xfc, +0xe8,0xfc,0xac,0xfd,0x5e,0xfe,0xe5,0xfe,0x61,0xff,0xfe,0xff, +0x95,0x0,0xd,0x1,0x95,0x1,0x30,0x2,0xb7,0x2,0x1e,0x3, +0x74,0x3,0xeb,0x3,0xa9,0x4,0x7b,0x5,0x1f,0x6,0xae,0x6, +0x47,0x7,0xd2,0x7,0x4d,0x8,0xc1,0x8,0x21,0x9,0x83,0x9, +0xf7,0x9,0x53,0xa,0x8f,0xa,0xb0,0xa,0xae,0xa,0xbb,0xa, +0xf8,0xa,0x20,0xb,0x4,0xb,0xc2,0xa,0x8f,0xa,0x95,0xa, +0xcc,0xa,0x8,0xb,0x3a,0xb,0x7a,0xb,0xef,0xb,0x95,0xc, +0x34,0xd,0xc2,0xd,0x5d,0xe,0xea,0xe,0x2e,0xf,0x21,0xf, +0x0,0xf,0xfc,0xe,0xff,0xe,0xd3,0xe,0x68,0xe,0xe6,0xd, +0x78,0xd,0xe,0xd,0x93,0xc,0x1d,0xc,0x97,0xb,0xc5,0xa, +0x9e,0x9,0x4d,0x8,0xf8,0x6,0xb5,0x5,0x78,0x4,0x2a,0x3, +0xdb,0x1,0xcf,0x0,0x47,0x0,0x2f,0x0,0x3f,0x0,0x4e,0x0, +0x5a,0x0,0x60,0x0,0x69,0x0,0x85,0x0,0xa0,0x0,0x8f,0x0, +0x44,0x0,0xb5,0xff,0xfc,0xfe,0x63,0xfe,0x5,0xfe,0xdc,0xfd, +0xfb,0xfd,0x26,0xfe,0x1,0xfe,0xb0,0xfd,0x74,0xfd,0x59,0xfd, +0x5e,0xfd,0x38,0xfd,0x90,0xfc,0xa2,0xfb,0xc6,0xfa,0xe,0xfa, +0x78,0xf9,0x2,0xf9,0xcf,0xf8,0xf6,0xf8,0x2d,0xf9,0x48,0xf9, +0x91,0xf9,0x31,0xfa,0x3,0xfb,0xc7,0xfb,0x25,0xfc,0xfd,0xfb, +0xbd,0xfb,0xcf,0xfb,0xa,0xfc,0x24,0xfc,0xe,0xfc,0xe8,0xfb, +0xee,0xfb,0x2e,0xfc,0x83,0xfc,0x14,0xfd,0xfe,0xfd,0xcc,0xfe, +0x33,0xff,0x6c,0xff,0xa7,0xff,0x2,0x0,0x8b,0x0,0xf8,0x0, +0x1,0x1,0xd2,0x0,0xc0,0x0,0xef,0x0,0x5d,0x1,0x3,0x2, +0xb1,0x2,0x22,0x3,0x60,0x3,0xa6,0x3,0xf3,0x3,0x40,0x4, +0x93,0x4,0xaa,0x4,0x44,0x4,0x8e,0x3,0xda,0x2,0x5b,0x2, +0x2c,0x2,0x8,0x2,0x8f,0x1,0xe4,0x0,0x61,0x0,0x37,0x0, +0x7d,0x0,0xd8,0x0,0xd7,0x0,0xb4,0x0,0xb1,0x0,0xb4,0x0, +0xcc,0x0,0x1,0x1,0x4b,0x1,0xb4,0x1,0xe6,0x1,0xb4,0x1, +0xa8,0x1,0x6,0x2,0x88,0x2,0x8,0x3,0x4d,0x3,0x33,0x3, +0xa,0x3,0xff,0x2,0xf1,0x2,0xc8,0x2,0x67,0x2,0xce,0x1, +0x31,0x1,0x91,0x0,0xd4,0xff,0x1d,0xff,0x99,0xfe,0x2a,0xfe, +0xaa,0xfd,0x2b,0xfd,0xe2,0xfc,0xed,0xfc,0x3c,0xfd,0x8b,0xfd, +0x9f,0xfd,0x99,0xfd,0xc1,0xfd,0x1c,0xfe,0x6f,0xfe,0x9b,0xfe, +0xc1,0xfe,0xa,0xff,0x6f,0xff,0xc3,0xff,0x4,0x0,0x67,0x0, +0xa,0x1,0xc9,0x1,0x77,0x2,0x3,0x3,0x70,0x3,0xc3,0x3, +0x8,0x4,0x5c,0x4,0xb3,0x4,0xe8,0x4,0x9,0x5,0x36,0x5, +0x6f,0x5,0xc1,0x5,0x2b,0x6,0xa4,0x6,0x4b,0x7,0x17,0x8, +0xde,0x8,0x71,0x9,0xb7,0x9,0x7,0xa,0x9a,0xa,0xe4,0xa, +0xa5,0xa,0x65,0xa,0x4e,0xa,0x3b,0xa,0x36,0xa,0xe,0xa, +0xb3,0x9,0x80,0x9,0x8e,0x9,0xa1,0x9,0x99,0x9,0x6a,0x9, +0x1d,0x9,0xd7,0x8,0x9a,0x8,0x50,0x8,0x7,0x8,0xde,0x7, +0xe8,0x7,0x35,0x8,0xab,0x8,0xfd,0x8,0x46,0x9,0xf6,0x9, +0x5,0xb,0xe9,0xb,0x59,0xc,0x84,0xc,0xaf,0xc,0xf6,0xc, +0x33,0xd,0x16,0xd,0x8b,0xc,0xe7,0xb,0x8e,0xb,0x68,0xb, +0xe,0xb,0x63,0xa,0x9c,0x9,0xf2,0x8,0x83,0x8,0x31,0x8, +0x90,0x7,0x79,0x6,0x66,0x5,0xb3,0x4,0x2a,0x4,0x63,0x3, +0x46,0x2,0x5d,0x1,0x39,0x1,0x7b,0x1,0x70,0x1,0xa,0x1, +0xba,0x0,0xa,0x1,0xf9,0x1,0xa9,0x2,0xa1,0x2,0x64,0x2, +0x8b,0x2,0x12,0x3,0x63,0x3,0xf,0x3,0x99,0x2,0x9b,0x2, +0xd3,0x2,0xc6,0x2,0x42,0x2,0x85,0x1,0x32,0x1,0x7f,0x1, +0xc1,0x1,0x43,0x1,0x39,0x0,0x9d,0xff,0xf1,0xff,0x71,0x0, +0x37,0x0,0x7d,0xff,0x7,0xff,0x12,0xff,0x50,0xff,0x70,0xff, +0x7d,0xff,0xbb,0xff,0x26,0x0,0x68,0x0,0x52,0x0,0x2c,0x0, +0x8c,0x0,0x85,0x1,0x40,0x2,0xd,0x2,0x65,0x1,0x25,0x1, +0x7a,0x1,0xc,0x2,0x6e,0x2,0x56,0x2,0xf1,0x1,0xda,0x1, +0x67,0x2,0x35,0x3,0xdb,0x3,0x69,0x4,0xef,0x4,0x51,0x5, +0xa4,0x5,0x34,0x6,0x1e,0x7,0x11,0x8,0x95,0x8,0x97,0x8, +0x5c,0x8,0x64,0x8,0x3b,0x9,0x88,0xa,0x34,0xb,0x19,0xb, +0xfa,0xa,0x2a,0xb,0x7f,0xb,0xf0,0xb,0x83,0xc,0xe7,0xc, +0x9d,0xc,0xd0,0xb,0x36,0xb,0xa,0xb,0x1f,0xb,0x40,0xb, +0xa,0xb,0x5f,0xa,0xb4,0x9,0x5d,0x9,0x3e,0x9,0x1c,0x9, +0xd4,0x8,0x6d,0x8,0xd2,0x7,0xe7,0x6,0x13,0x6,0xb4,0x5, +0x57,0x5,0x84,0x4,0x6e,0x3,0x53,0x2,0x4c,0x1,0x8b,0x0, +0xdb,0xff,0xb7,0xfe,0x25,0xfd,0x8a,0xfb,0x9,0xfa,0x93,0xf8, +0xa,0xf7,0x65,0xf5,0xcb,0xf3,0x37,0xf2,0x7c,0xf0,0xaf,0xee, +0xd,0xed,0xb0,0xeb,0x87,0xea,0x58,0xe9,0xd7,0xe7,0x6,0xe6, +0x7d,0xe4,0x9d,0xe3,0xe8,0xe2,0xcd,0xe1,0x80,0xe0,0x7a,0xdf, +0xd9,0xde,0x59,0xde,0xce,0xdd,0x62,0xdd,0x2a,0xdd,0xf2,0xdc, +0x9f,0xdc,0x36,0xdc,0xe1,0xdb,0xe1,0xdb,0x1e,0xdc,0x1f,0xdc, +0xb0,0xdb,0x3e,0xdb,0x5b,0xdb,0xf6,0xdb,0x85,0xdc,0xe4,0xdc, +0x46,0xdd,0xd2,0xdd,0xa1,0xde,0x99,0xdf,0x91,0xe0,0x96,0xe1, +0xb4,0xe2,0xd6,0xe3,0xea,0xe4,0xfb,0xe5,0x54,0xe7,0xf,0xe9, +0xcb,0xea,0x44,0xec,0xa6,0xed,0x30,0xef,0xf3,0xf0,0xb8,0xf2, +0x42,0xf4,0x8b,0xf5,0x97,0xf6,0x71,0xf7,0x38,0xf8,0x2,0xf9, +0xd4,0xf9,0x97,0xfa,0x1e,0xfb,0x6c,0xfb,0xc9,0xfb,0x71,0xfc, +0x5c,0xfd,0x53,0xfe,0x1c,0xff,0xc3,0xff,0x92,0x0,0xa0,0x1, +0xbc,0x2,0xbb,0x3,0x94,0x4,0x6c,0x5,0x66,0x6,0x6c,0x7, +0x61,0x8,0x38,0x9,0xe3,0x9,0x88,0xa,0x36,0xb,0xa3,0xb, +0xca,0xb,0xdc,0xb,0xb8,0xb,0x5a,0xb,0xe2,0xa,0x1f,0xa, +0x15,0x9,0x12,0x8,0x11,0x7,0xe7,0x5,0x9a,0x4,0x52,0x3, +0x2e,0x2,0x1d,0x1,0x1a,0x0,0x5d,0xff,0xe1,0xfe,0x6a,0xfe, +0x0,0xfe,0xb9,0xfd,0x91,0xfd,0x83,0xfd,0x70,0xfd,0x47,0xfd, +0x26,0xfd,0x1a,0xfd,0x1c,0xfd,0x21,0xfd,0x7,0xfd,0xe4,0xfc, +0x4,0xfd,0x51,0xfd,0x78,0xfd,0x70,0xfd,0x4d,0xfd,0x28,0xfd, +0x2b,0xfd,0x37,0xfd,0x4,0xfd,0x8c,0xfc,0x1,0xfc,0x8e,0xfb, +0x32,0xfb,0xe2,0xfa,0xaa,0xfa,0x87,0xfa,0x6b,0xfa,0x65,0xfa, +0x86,0xfa,0xbe,0xfa,0x0,0xfb,0x3c,0xfb,0x5c,0xfb,0x74,0xfb, +0xa4,0xfb,0xe3,0xfb,0x9,0xfc,0xf,0xfc,0x1a,0xfc,0x4d,0xfc, +0xba,0xfc,0x76,0xfd,0x59,0xfe,0x23,0xff,0xe8,0xff,0xd7,0x0, +0xe5,0x1,0x15,0x3,0x68,0x4,0x97,0x5,0x76,0x6,0x2b,0x7, +0xe3,0x7,0x99,0x8,0x45,0x9,0xec,0x9,0x92,0xa,0x26,0xb, +0x97,0xb,0xe6,0xb,0x34,0xc,0x9f,0xc,0xfe,0xc,0x10,0xd, +0xe7,0xc,0xbb,0xc,0x88,0xc,0x3a,0xc,0xe0,0xb,0x90,0xb, +0x30,0xb,0xc0,0xa,0x88,0xa,0xa8,0xa,0xf5,0xa,0x48,0xb, +0x7b,0xb,0x91,0xb,0xcd,0xb,0x5b,0xc,0x18,0xd,0xa7,0xd, +0xc4,0xd,0xac,0xd,0xc0,0xd,0xf2,0xd,0xe,0xe,0x19,0xe, +0xe,0xe,0xce,0xd,0x71,0xd,0x10,0xd,0x98,0xc,0x8,0xc, +0x62,0xb,0x7c,0xa,0x5d,0x9,0x32,0x8,0xed,0x6,0x8a,0x5, +0x22,0x4,0xd3,0x2,0xbe,0x1,0xa1,0x0,0x3c,0xff,0x10,0xfe, +0x73,0xfd,0xe,0xfd,0xc4,0xfc,0x8c,0xfc,0x36,0xfc,0xf4,0xfb, +0x12,0xfc,0x64,0xfc,0xa0,0xfc,0xb7,0xfc,0xc5,0xfc,0xd5,0xfc, +0xd1,0xfc,0xbf,0xfc,0xb4,0xfc,0xa8,0xfc,0xa0,0xfc,0xaa,0xfc, +0x98,0xfc,0x39,0xfc,0xb1,0xfb,0x53,0xfb,0x45,0xfb,0x55,0xfb, +0xf,0xfb,0x64,0xfa,0xe8,0xf9,0xdb,0xf9,0xec,0xf9,0xf8,0xf9, +0xf6,0xf9,0xe8,0xf9,0x22,0xfa,0x98,0xfa,0xd9,0xfa,0x0,0xfb, +0x71,0xfb,0x27,0xfc,0xbf,0xfc,0xdb,0xfc,0xc2,0xfc,0x13,0xfd, +0xa9,0xfd,0xa,0xfe,0x37,0xfe,0x4e,0xfe,0x58,0xfe,0x77,0xfe, +0x9c,0xfe,0xb9,0xfe,0x4,0xff,0x74,0xff,0xb3,0xff,0xbc,0xff, +0xc5,0xff,0x2,0x0,0x9e,0x0,0x5c,0x1,0xcf,0x1,0x5,0x2, +0x56,0x2,0xdc,0x2,0x7e,0x3,0x1d,0x4,0x93,0x4,0xd7,0x4, +0x10,0x5,0x4d,0x5,0x66,0x5,0x5d,0x5,0x6e,0x5,0x94,0x5, +0x85,0x5,0x1c,0x5,0x70,0x4,0xcf,0x3,0x88,0x3,0x65,0x3, +0xed,0x2,0x18,0x2,0x32,0x1,0x79,0x0,0x1d,0x0,0xff,0xff, +0xbb,0xff,0x51,0xff,0x12,0xff,0x3,0xff,0x1b,0xff,0x73,0xff, +0xf8,0xff,0x78,0x0,0xcb,0x0,0xf4,0x0,0x41,0x1,0xd1,0x1, +0x4a,0x2,0x75,0x2,0x5e,0x2,0xd,0x2,0xbb,0x1,0xa3,0x1, +0x8f,0x1,0x40,0x1,0xd3,0x0,0x65,0x0,0xed,0xff,0x78,0xff, +0x28,0xff,0x2,0xff,0xf6,0xfe,0xda,0xfe,0x86,0xfe,0x19,0xfe, +0xde,0xfd,0xed,0xfd,0x28,0xfe,0x53,0xfe,0x44,0xfe,0x27,0xfe, +0x42,0xfe,0xa7,0xfe,0x3d,0xff,0xec,0xff,0x8c,0x0,0xf7,0x0, +0x42,0x1,0xa7,0x1,0x39,0x2,0xc9,0x2,0x1e,0x3,0x35,0x3, +0x39,0x3,0x42,0x3,0x58,0x3,0x8b,0x3,0xd9,0x3,0x33,0x4, +0x8b,0x4,0xd7,0x4,0x24,0x5,0x94,0x5,0x39,0x6,0xf2,0x6, +0x78,0x7,0xbb,0x7,0xf3,0x7,0x3a,0x8,0x78,0x8,0x9e,0x8, +0xc7,0x8,0xf,0x9,0x49,0x9,0x39,0x9,0xd,0x9,0xf,0x9, +0x4a,0x9,0xab,0x9,0xeb,0x9,0xa6,0x9,0xd,0x9,0xd0,0x8, +0xf8,0x8,0xf3,0x8,0x9c,0x8,0x25,0x8,0xc0,0x7,0xbb,0x7, +0xe7,0x7,0xce,0x7,0xa6,0x7,0xe0,0x7,0x63,0x8,0xd3,0x8, +0xe0,0x8,0xb3,0x8,0xe2,0x8,0x62,0x9,0x9b,0x9,0x56,0x9, +0xda,0x8,0x8f,0x8,0x99,0x8,0xab,0x8,0x62,0x8,0xac,0x7, +0x7,0x7,0xea,0x6,0xe0,0x6,0x66,0x6,0xb6,0x5,0x0,0x5, +0x5e,0x4,0xdb,0x3,0x19,0x3,0x19,0x2,0x7d,0x1,0x4a,0x1, +0x15,0x1,0xc5,0x0,0x63,0x0,0x57,0x0,0x12,0x1,0xf6,0x1, +0x51,0x2,0x8e,0x2,0x2a,0x3,0x18,0x4,0x18,0x5,0x8b,0x5, +0x62,0x5,0x8b,0x5,0x17,0x6,0x2e,0x6,0xc7,0x5,0x58,0x5, +0x20,0x5,0x36,0x5,0x10,0x5,0x25,0x4,0x29,0x3,0x1b,0x3, +0xac,0x3,0xb2,0x3,0xc8,0x2,0xb3,0x1,0x30,0x1,0x31,0x1, +0x32,0x1,0xc2,0x0,0x10,0x0,0xc4,0xff,0xf0,0xff,0x7,0x0, +0xdb,0xff,0xdc,0xff,0x75,0x0,0x55,0x1,0xad,0x1,0x7b,0x1, +0x8a,0x1,0x8,0x2,0x9a,0x2,0x7,0x3,0xff,0x2,0x97,0x2, +0x87,0x2,0xf9,0x2,0x6e,0x3,0xb9,0x3,0xf5,0x3,0x1f,0x4, +0x16,0x4,0xea,0x3,0x1b,0x4,0xce,0x4,0x4c,0x5,0x2d,0x5, +0xd1,0x4,0x8c,0x4,0x7f,0x4,0xcc,0x4,0x62,0x5,0xdd,0x5, +0xff,0x5,0x28,0x6,0xa8,0x6,0x2e,0x7,0xa1,0x7,0x49,0x8, +0x5,0x9,0x7c,0x9,0xa5,0x9,0xce,0x9,0x4c,0xa,0xd,0xb, +0xc4,0xb,0x36,0xc,0x35,0xc,0x10,0xc,0x72,0xc,0x29,0xd, +0x4c,0xd,0xaf,0xc,0xd9,0xb,0x19,0xb,0x54,0xa,0x56,0x9, +0x2b,0x8,0x19,0x7,0xc,0x6,0xb2,0x4,0x11,0x3,0x67,0x1, +0x15,0x0,0x6e,0xff,0xe1,0xfe,0x75,0xfd,0x67,0xfb,0xd0,0xf9, +0x4,0xf9,0x71,0xf8,0x94,0xf7,0x74,0xf6,0x5b,0xf5,0x94,0xf4, +0x34,0xf4,0xea,0xf3,0x7b,0xf3,0x3d,0xf3,0x48,0xf3,0x1c,0xf3, +0x7a,0xf2,0xb5,0xf1,0x3d,0xf1,0x25,0xf1,0xdc,0xf0,0xd2,0xef, +0x44,0xee,0xcc,0xec,0xb5,0xeb,0xd2,0xea,0x91,0xe9,0xc0,0xe7, +0xe1,0xe5,0x33,0xe4,0x82,0xe2,0xd2,0xe0,0x43,0xdf,0xf2,0xdd, +0xfe,0xdc,0x8,0xdc,0xd7,0xda,0x13,0xda,0x17,0xda,0x77,0xda, +0xfe,0xda,0x98,0xdb,0x40,0xdc,0x4f,0xdd,0xd7,0xde,0x7b,0xe0, +0x10,0xe2,0xa0,0xe3,0x52,0xe5,0x3d,0xe7,0x1c,0xe9,0xb7,0xea, +0x46,0xec,0xf8,0xed,0x89,0xef,0xb0,0xf0,0x81,0xf1,0x24,0xf2, +0xb1,0xf2,0x2d,0xf3,0x61,0xf3,0x35,0xf3,0xf9,0xf2,0xe3,0xf2, +0xde,0xf2,0xcf,0xf2,0xb1,0xf2,0xca,0xf2,0x4d,0xf3,0xea,0xf3, +0x5b,0xf4,0xbb,0xf4,0x40,0xf5,0x6,0xf6,0xf7,0xf6,0xe5,0xf7, +0xcb,0xf8,0xc4,0xf9,0xe7,0xfa,0x41,0xfc,0xd0,0xfd,0x76,0xff, +0x11,0x1,0xaf,0x2,0x4e,0x4,0xaf,0x5,0xd3,0x6,0xe7,0x7, +0xbf,0x8,0x23,0x9,0x1b,0x9,0xaf,0x8,0x4,0x8,0x6c,0x7, +0x5,0x7,0x95,0x6,0xd6,0x5,0xe8,0x4,0x32,0x4,0xd1,0x3, +0x9a,0x3,0x6b,0x3,0x27,0x3,0xb3,0x2,0x26,0x2,0x9c,0x1, +0x11,0x1,0x82,0x0,0xf1,0xff,0x52,0xff,0x98,0xfe,0xc8,0xfd, +0x17,0xfd,0xbc,0xfc,0x90,0xfc,0x54,0xfc,0x12,0xfc,0xbf,0xfb, +0x54,0xfb,0x1c,0xfb,0x23,0xfb,0x12,0xfb,0xc6,0xfa,0x51,0xfa, +0xcb,0xf9,0x68,0xf9,0x65,0xf9,0xc0,0xf9,0x2f,0xfa,0x70,0xfa, +0x9c,0xfa,0x2,0xfb,0xca,0xfb,0xd7,0xfc,0xef,0xfd,0xd5,0xfe, +0x5c,0xff,0x92,0xff,0x9f,0xff,0x92,0xff,0x89,0xff,0x84,0xff, +0x45,0xff,0xa4,0xfe,0xb3,0xfd,0xc9,0xfc,0x5e,0xfc,0x6a,0xfc, +0x83,0xfc,0x8d,0xfc,0x9c,0xfc,0xb5,0xfc,0xf3,0xfc,0x78,0xfd, +0x5c,0xfe,0x71,0xff,0x46,0x0,0xbe,0x0,0x30,0x1,0xfa,0x1, +0x2e,0x3,0x82,0x4,0xa1,0x5,0x93,0x6,0x95,0x7,0xb5,0x8, +0xde,0x9,0x10,0xb,0x44,0xc,0x38,0xd,0xb3,0xd,0xd4,0xd, +0xd4,0xd,0xd7,0xd,0xc7,0xd,0x6a,0xd,0xc2,0xc,0xff,0xb, +0x38,0xb,0x8c,0xa,0x1e,0xa,0xf8,0x9,0x5,0xa,0xa,0xa, +0xdf,0x9,0xb1,0x9,0xc7,0x9,0x40,0xa,0xd0,0xa,0xf8,0xa, +0xb9,0xa,0x98,0xa,0xbf,0xa,0xdf,0xa,0xd7,0xa,0xcf,0xa, +0xe8,0xa,0x18,0xb,0x40,0xb,0x39,0xb,0xf,0xb,0xf5,0xa, +0xfd,0xa,0xe2,0xa,0x46,0xa,0x41,0x9,0x5a,0x8,0xbb,0x7, +0x11,0x7,0x29,0x6,0x17,0x5,0xfe,0x3,0x1d,0x3,0xb0,0x2, +0x7f,0x2,0x33,0x2,0xf0,0x1,0xdd,0x1,0xb7,0x1,0x59,0x1, +0xf7,0x0,0xd2,0x0,0xe4,0x0,0xa4,0x0,0xcc,0xff,0xd5,0xfe, +0xf,0xfe,0x65,0xfd,0xed,0xfc,0x8f,0xfc,0x7,0xfc,0x82,0xfb, +0x53,0xfb,0x5a,0xfb,0x55,0xfb,0x58,0xfb,0x82,0xfb,0x9d,0xfb, +0x7c,0xfb,0x3c,0xfb,0x11,0xfb,0x29,0xfb,0x64,0xfb,0x55,0xfb, +0xe8,0xfa,0x87,0xfa,0xac,0xfa,0x79,0xfb,0x7b,0xfc,0x17,0xfd, +0x4b,0xfd,0x81,0xfd,0xe7,0xfd,0x68,0xfe,0xeb,0xfe,0x5e,0xff, +0x9d,0xff,0x77,0xff,0xf2,0xfe,0x70,0xfe,0x4a,0xfe,0x7a,0xfe, +0xd1,0xfe,0xd,0xff,0xfd,0xfe,0x1,0xff,0x81,0xff,0x1e,0x0, +0x86,0x0,0xe7,0x0,0x3b,0x1,0x67,0x1,0x73,0x1,0x65,0x1, +0x82,0x1,0xe3,0x1,0x22,0x2,0x22,0x2,0x1f,0x2,0x36,0x2, +0x98,0x2,0x48,0x3,0xd1,0x3,0xf7,0x3,0xe0,0x3,0xb5,0x3, +0x9d,0x3,0x9c,0x3,0x8d,0x3,0x61,0x3,0x2,0x3,0x6a,0x2, +0xf3,0x1,0xd3,0x1,0xcd,0x1,0xc2,0x1,0xc2,0x1,0xbc,0x1, +0xae,0x1,0xc6,0x1,0x11,0x2,0x4c,0x2,0x40,0x2,0x24,0x2, +0x23,0x2,0x19,0x2,0xf9,0x1,0xd1,0x1,0xa5,0x1,0x8c,0x1, +0x64,0x1,0xfc,0x0,0x87,0x0,0x3c,0x0,0x29,0x0,0x3d,0x0, +0xd,0x0,0x6b,0xff,0xe0,0xfe,0xc1,0xfe,0xc6,0xfe,0x9e,0xfe, +0x4d,0xfe,0x5,0xfe,0xf2,0xfd,0x19,0xfe,0x4b,0xfe,0x5c,0xfe, +0x72,0xfe,0xbb,0xfe,0x21,0xff,0x87,0xff,0xf4,0xff,0x6c,0x0, +0xdc,0x0,0x24,0x1,0x3d,0x1,0x52,0x1,0x8b,0x1,0xda,0x1, +0x12,0x2,0x19,0x2,0xf4,0x1,0xcb,0x1,0xda,0x1,0x21,0x2, +0x62,0x2,0x98,0x2,0xe3,0x2,0x22,0x3,0x4a,0x3,0x90,0x3, +0xd,0x4,0x84,0x4,0xc3,0x4,0xf0,0x4,0x30,0x5,0x82,0x5, +0xfb,0x5,0x85,0x6,0xcd,0x6,0xd6,0x6,0xfb,0x6,0x62,0x7, +0xdd,0x7,0x2e,0x8,0x52,0x8,0x62,0x8,0x5b,0x8,0x53,0x8, +0x56,0x8,0x3c,0x8,0x20,0x8,0x33,0x8,0x41,0x8,0x2a,0x8, +0x15,0x8,0x1b,0x8,0x61,0x8,0xe3,0x8,0x42,0x9,0x68,0x9, +0x92,0x9,0xcf,0x9,0x29,0xa,0x81,0xa,0x77,0xa,0x33,0xa, +0x17,0xa,0xef,0x9,0x9d,0x9,0x56,0x9,0x13,0x9,0xd6,0x8, +0xae,0x8,0x5e,0x8,0xef,0x7,0xac,0x7,0x93,0x7,0x78,0x7, +0x41,0x7,0xea,0x6,0x99,0x6,0x5e,0x6,0x1b,0x6,0xdc,0x5, +0xbd,0x5,0xaf,0x5,0xb5,0x5,0xef,0x5,0x29,0x6,0x1a,0x6, +0xc,0x6,0x4c,0x6,0xa0,0x6,0xc8,0x6,0xaa,0x6,0x40,0x6, +0xdc,0x5,0xc6,0x5,0xc0,0x5,0x63,0x5,0xa5,0x4,0xe9,0x3, +0x84,0x3,0x50,0x3,0x1,0x3,0x87,0x2,0xff,0x1,0xa4,0x1, +0x99,0x1,0xa7,0x1,0x85,0x1,0x49,0x1,0x5d,0x1,0xd6,0x1, +0x26,0x2,0xec,0x1,0x81,0x1,0x63,0x1,0x8b,0x1,0xa3,0x1, +0x5b,0x1,0xa3,0x0,0xf1,0xff,0xba,0xff,0xbd,0xff,0x89,0xff, +0x31,0xff,0xa,0xff,0x3d,0xff,0x80,0xff,0x53,0xff,0x1,0xff, +0x3b,0xff,0xbf,0xff,0xef,0xff,0xc4,0xff,0x7f,0xff,0x72,0xff, +0xf0,0xff,0xa1,0x0,0xf8,0x0,0x31,0x1,0xbf,0x1,0x7d,0x2, +0x24,0x3,0x90,0x3,0xb0,0x3,0xac,0x3,0xa1,0x3,0x65,0x3, +0xe0,0x2,0x36,0x2,0x9d,0x1,0x3b,0x1,0xe4,0x0,0x56,0x0, +0xc3,0xff,0x99,0xff,0xd3,0xff,0x11,0x0,0x1b,0x0,0xf0,0xff, +0xd9,0xff,0x31,0x0,0xc1,0x0,0x2c,0x1,0xb8,0x1,0x95,0x2, +0x74,0x3,0x65,0x4,0xae,0x5,0x56,0x7,0x4b,0x9,0x25,0xb, +0x6f,0xc,0x6a,0xd,0x88,0xe,0xac,0xf,0x8d,0x10,0xe9,0x10, +0x9a,0x10,0xa,0x10,0xae,0xf,0x21,0xf,0xc,0xe,0xeb,0xc, +0xf0,0xb,0xbb,0xa,0x4d,0x9,0xcc,0x7,0x40,0x6,0xeb,0x4, +0xb0,0x3,0xc,0x2,0x22,0x0,0x6e,0xfe,0x12,0xfd,0xf7,0xfb, +0xe4,0xfa,0xc9,0xf9,0xf0,0xf8,0x69,0xf8,0xf0,0xf7,0x87,0xf7, +0x83,0xf7,0xf1,0xf7,0x5f,0xf8,0x6b,0xf8,0x1c,0xf8,0xc6,0xf7, +0xbb,0xf7,0xc0,0xf7,0x44,0xf7,0x32,0xf6,0xf5,0xf4,0xd6,0xf3, +0xaf,0xf2,0x15,0xf1,0x28,0xef,0x90,0xed,0x44,0xec,0x91,0xea, +0x64,0xe8,0x58,0xe6,0xb8,0xe4,0x54,0xe3,0xde,0xe1,0x1c,0xe0, +0x38,0xde,0xc3,0xdc,0xee,0xdb,0x4d,0xdb,0x9e,0xda,0x1e,0xda, +0x2d,0xda,0xcd,0xda,0xac,0xdb,0xbd,0xdc,0x2f,0xde,0xe1,0xdf, +0x8e,0xe1,0x28,0xe3,0xb9,0xe4,0x3b,0xe6,0xb5,0xe7,0x29,0xe9, +0x57,0xea,0xa,0xeb,0xa7,0xeb,0x99,0xec,0xa9,0xed,0x96,0xee, +0x6c,0xef,0x35,0xf0,0xef,0xf0,0xab,0xf1,0x58,0xf2,0xdd,0xf2, +0x5b,0xf3,0xd1,0xf3,0xe7,0xf3,0xa1,0xf3,0x6e,0xf3,0x8c,0xf3, +0xfc,0xf3,0x95,0xf4,0xd,0xf5,0x8d,0xf5,0x8f,0xf6,0x23,0xf8, +0xd7,0xf9,0x51,0xfb,0x9f,0xfc,0xee,0xfd,0x4c,0xff,0xa1,0x0, +0xb8,0x1,0x86,0x2,0x3d,0x3,0xe1,0x3,0x6f,0x4,0x6,0x5, +0xac,0x5,0x6d,0x6,0x40,0x7,0xd2,0x7,0x11,0x8,0x3d,0x8, +0x68,0x8,0x72,0x8,0x3e,0x8,0xd3,0x7,0x45,0x7,0x84,0x6, +0x8c,0x5,0x94,0x4,0xca,0x3,0x3c,0x3,0xd8,0x2,0x5e,0x2, +0xb0,0x1,0x12,0x1,0xbc,0x0,0x90,0x0,0x54,0x0,0xee,0xff, +0x6b,0xff,0xdf,0xfe,0x5f,0xfe,0xf8,0xfd,0x97,0xfd,0x31,0xfd, +0xe6,0xfc,0xc5,0xfc,0xaa,0xfc,0x91,0xfc,0x98,0xfc,0xb2,0xfc, +0xc6,0xfc,0xcc,0xfc,0xbf,0xfc,0xab,0xfc,0xa2,0xfc,0xa7,0xfc, +0xba,0xfc,0xcf,0xfc,0xb3,0xfc,0x57,0xfc,0xfc,0xfb,0xdd,0xfb, +0xe0,0xfb,0xde,0xfb,0xc2,0xfb,0x74,0xfb,0x13,0xfb,0xef,0xfa, +0x1a,0xfb,0x62,0xfb,0x98,0xfb,0xae,0xfb,0xb2,0xfb,0xd1,0xfb, +0x36,0xfc,0xc6,0xfc,0x36,0xfd,0x86,0xfd,0xf1,0xfd,0x7e,0xfe, +0x1d,0xff,0xda,0xff,0xab,0x0,0x8e,0x1,0x91,0x2,0x9b,0x3, +0x8f,0x4,0x7c,0x5,0x77,0x6,0x82,0x7,0x75,0x8,0x21,0x9, +0x9c,0x9,0x1a,0xa,0xa5,0xa,0x2b,0xb,0x87,0xb,0xa7,0xb, +0xc4,0xb,0x17,0xc,0x74,0xc,0x83,0xc,0x5e,0xc,0x66,0xc, +0x8a,0xc,0x91,0xc,0x7e,0xc,0x57,0xc,0x32,0xc,0x28,0xc, +0x15,0xc,0xf0,0xb,0xec,0xb,0x11,0xc,0x3e,0xc,0x5b,0xc, +0x7c,0xc,0xb6,0xc,0xf3,0xc,0x19,0xd,0x1e,0xd,0x9,0xd, +0xf5,0xc,0xd7,0xc,0x8e,0xc,0x12,0xc,0x68,0xb,0xbc,0xa, +0x45,0xa,0xf3,0x9,0x96,0x9,0xf,0x9,0x70,0x8,0xef,0x7, +0x8b,0x7,0x13,0x7,0x84,0x6,0xec,0x5,0x4b,0x5,0xa7,0x4, +0xec,0x3,0x6,0x3,0x34,0x2,0xb2,0x1,0x47,0x1,0xb5,0x0, +0x1b,0x0,0xbb,0xff,0xa8,0xff,0xa8,0xff,0x76,0xff,0x12,0xff, +0xc3,0xfe,0xbb,0xfe,0xb3,0xfe,0x54,0xfe,0xe1,0xfd,0x9c,0xfd, +0x5d,0xfd,0x16,0xfd,0xcc,0xfc,0x81,0xfc,0x75,0xfc,0x9d,0xfc, +0xa9,0xfc,0x8f,0xfc,0x68,0xfc,0x50,0xfc,0x56,0xfc,0x49,0xfc, +0x28,0xfc,0x1b,0xfc,0x9,0xfc,0xc7,0xfb,0x77,0xfb,0x59,0xfb, +0x7a,0xfb,0xbf,0xfb,0x4,0xfc,0x13,0xfc,0xf9,0xfb,0x11,0xfc, +0x69,0xfc,0xc7,0xfc,0x14,0xfd,0x4c,0xfd,0x77,0xfd,0x90,0xfd, +0x9a,0xfd,0xd7,0xfd,0x62,0xfe,0xec,0xfe,0x34,0xff,0x44,0xff, +0x56,0xff,0xb9,0xff,0x7e,0x0,0x34,0x1,0x5b,0x1,0x24,0x1, +0x9,0x1,0x21,0x1,0x62,0x1,0xae,0x1,0xaf,0x1,0x66,0x1, +0x16,0x1,0xd4,0x0,0xbb,0x0,0xe3,0x0,0x28,0x1,0x5a,0x1, +0x5e,0x1,0x46,0x1,0x4f,0x1,0x93,0x1,0xfb,0x1,0x64,0x2, +0xab,0x2,0xc9,0x2,0xdd,0x2,0xd,0x3,0x60,0x3,0xb6,0x3, +0xe5,0x3,0xde,0x3,0xbe,0x3,0xab,0x3,0xb7,0x3,0xdb,0x3, +0xe6,0x3,0xa1,0x3,0x17,0x3,0x90,0x2,0x35,0x2,0xf0,0x1, +0x9f,0x1,0x32,0x1,0xb2,0x0,0x2b,0x0,0x9d,0xff,0x35,0xff, +0x1a,0xff,0x2a,0xff,0x2c,0xff,0x12,0xff,0xe1,0xfe,0xac,0xfe, +0xa1,0xfe,0xe6,0xfe,0x4f,0xff,0x7d,0xff,0x5a,0xff,0x1c,0xff, +0xc,0xff,0x59,0xff,0xcb,0xff,0x2,0x0,0xf7,0xff,0xcc,0xff, +0xa6,0xff,0xad,0xff,0xdf,0xff,0x8,0x0,0xec,0xff,0x90,0xff, +0x3f,0xff,0x6,0xff,0xe9,0xfe,0x4,0xff,0x1f,0xff,0x2,0xff, +0xca,0xfe,0x9c,0xfe,0xac,0xfe,0x14,0xff,0x9c,0xff,0xfb,0xff, +0x19,0x0,0x1c,0x0,0x4e,0x0,0xbb,0x0,0x3f,0x1,0xab,0x1, +0xe1,0x1,0xf7,0x1,0x19,0x2,0x60,0x2,0xcf,0x2,0x57,0x3, +0xe3,0x3,0x59,0x4,0xaa,0x4,0xe7,0x4,0x3a,0x5,0xdd,0x5, +0xbc,0x6,0x55,0x7,0x6a,0x7,0x57,0x7,0x87,0x7,0x5,0x8, +0x82,0x8,0xca,0x8,0xed,0x8,0xf9,0x8,0x7,0x9,0x21,0x9, +0x2d,0x9,0x36,0x9,0x4a,0x9,0x46,0x9,0xe,0x9,0x9e,0x8, +0xe,0x8,0x9b,0x7,0x6d,0x7,0x56,0x7,0xef,0x6,0x39,0x6, +0xa0,0x5,0x54,0x5,0x62,0x5,0xae,0x5,0xb5,0x5,0x50,0x5, +0x1b,0x5,0x63,0x5,0xd6,0x5,0x2e,0x6,0x6c,0x6,0xa3,0x6, +0xeb,0x6,0x33,0x7,0x55,0x7,0x62,0x7,0x76,0x7,0x72,0x7, +0x3b,0x7,0xc3,0x6,0x20,0x6,0x8b,0x5,0xc,0x5,0x82,0x4, +0xf7,0x3,0x67,0x3,0xc2,0x2,0x1d,0x2,0x98,0x1,0x3d,0x1, +0xe6,0x0,0x6d,0x0,0xe0,0xff,0x5f,0xff,0x9,0xff,0xdd,0xfe, +0xa7,0xfe,0x77,0xfe,0x97,0xfe,0xfb,0xfe,0x7f,0xff,0x22,0x0, +0xb9,0x0,0x3c,0x1,0xed,0x1,0xa6,0x2,0xf6,0x2,0xee,0x2, +0xb6,0x2,0x36,0x2,0x95,0x1,0x15,0x1,0xb7,0x0,0x69,0x0, +0xef,0xff,0x32,0xff,0xb6,0xfe,0xe3,0xfe,0x77,0xff,0xf4,0xff, +0xf,0x0,0xe2,0xff,0xdd,0xff,0x6,0x0,0xe5,0xff,0x81,0xff, +0x63,0xff,0x8b,0xff,0x9a,0xff,0x75,0xff,0x40,0xff,0x6f,0xff, +0x56,0x0,0x76,0x1,0x1f,0x2,0x33,0x2,0x1,0x2,0xff,0x1, +0x48,0x2,0x6e,0x2,0x16,0x2,0x5f,0x1,0xaf,0x0,0x3f,0x0, +0x16,0x0,0x39,0x0,0x9a,0x0,0x22,0x1,0xbe,0x1,0x58,0x2, +0xe,0x3,0xee,0x3,0xd0,0x4,0xbc,0x5,0xa0,0x6,0x3d,0x7, +0xbc,0x7,0x34,0x8,0x8f,0x8,0x1a,0x9,0x5,0xa,0xed,0xa, +0x8e,0xb,0x1a,0xc,0xd5,0xc,0xa6,0xd,0x4f,0xe,0xc7,0xe, +0xff,0xe,0xd4,0xe,0x6c,0xe,0xf8,0xd,0x73,0xd,0xac,0xc, +0x94,0xb,0x74,0xa,0x7c,0x9,0x83,0x8,0x89,0x7,0xb0,0x6, +0xda,0x5,0xd,0x5,0x7d,0x4,0xea,0x3,0x1a,0x3,0x62,0x2, +0xee,0x1,0x7a,0x1,0xc3,0x0,0xba,0xff,0x92,0xfe,0x7f,0xfd, +0x6e,0xfc,0x5e,0xfb,0x58,0xfa,0x3c,0xf9,0x21,0xf8,0x33,0xf7, +0x4c,0xf6,0x61,0xf5,0xd0,0xf4,0x8d,0xf4,0xf,0xf4,0x45,0xf3, +0x81,0xf2,0xbf,0xf1,0xe9,0xf0,0x4,0xf0,0x2,0xef,0xe6,0xed, +0xac,0xec,0x5c,0xeb,0x2f,0xea,0x32,0xe9,0x4d,0xe8,0x7e,0xe7, +0xbc,0xe6,0xf0,0xe5,0x14,0xe5,0x3e,0xe4,0x81,0xe3,0xc7,0xe2, +0xed,0xe1,0xd9,0xe0,0x7c,0xdf,0x22,0xde,0x2a,0xdd,0x95,0xdc, +0x2e,0xdc,0xc6,0xdb,0x73,0xdb,0x69,0xdb,0xb2,0xdb,0x6c,0xdc, +0x99,0xdd,0xda,0xde,0xf3,0xdf,0xf9,0xe0,0x11,0xe2,0x4e,0xe3, +0xa7,0xe4,0xd,0xe6,0x5b,0xe7,0x7b,0xe8,0xac,0xe9,0x19,0xeb, +0xaf,0xec,0x60,0xee,0x9,0xf0,0x89,0xf1,0xd6,0xf2,0xe4,0xf3, +0xec,0xf4,0x1d,0xf6,0x1f,0xf7,0x8f,0xf7,0x84,0xf7,0x63,0xf7, +0x7c,0xf7,0xc7,0xf7,0xd,0xf8,0x41,0xf8,0x82,0xf8,0xf0,0xf8, +0x8b,0xf9,0x5e,0xfa,0x7c,0xfb,0xb8,0xfc,0xd3,0xfd,0xb8,0xfe, +0x76,0xff,0x46,0x0,0x44,0x1,0x2b,0x2,0xc4,0x2,0x20,0x3, +0x6d,0x3,0xe7,0x3,0x9a,0x4,0x46,0x5,0xc2,0x5,0x10,0x6, +0x39,0x6,0x6d,0x6,0xa7,0x6,0xb9,0x6,0xb0,0x6,0x7d,0x6, +0xe8,0x5,0x14,0x5,0x30,0x4,0x4b,0x3,0x92,0x2,0x2,0x2, +0x70,0x1,0xcf,0x0,0x2b,0x0,0xb2,0xff,0x7c,0xff,0x59,0xff, +0x37,0xff,0x1b,0xff,0xe5,0xfe,0x90,0xfe,0x2f,0xfe,0xcc,0xfd, +0x6e,0xfd,0x15,0xfd,0xb7,0xfc,0x59,0xfc,0x29,0xfc,0x41,0xfc, +0x69,0xfc,0x7d,0xfc,0x96,0xfc,0xb5,0xfc,0xd0,0xfc,0xee,0xfc, +0x2a,0xfd,0x7c,0xfd,0x93,0xfd,0x51,0xfd,0xf,0xfd,0x17,0xfd, +0x6e,0xfd,0xd8,0xfd,0x18,0xfe,0x56,0xfe,0xca,0xfe,0x50,0xff, +0xba,0xff,0x20,0x0,0xa3,0x0,0x26,0x1,0x77,0x1,0x7a,0x1, +0x53,0x1,0x59,0x1,0x95,0x1,0xb4,0x1,0x96,0x1,0x5d,0x1, +0x49,0x1,0x96,0x1,0x10,0x2,0x62,0x2,0xa2,0x2,0xf2,0x2, +0x65,0x3,0x5,0x4,0xb4,0x4,0x6a,0x5,0x48,0x6,0x37,0x7, +0x4,0x8,0xc2,0x8,0xae,0x9,0xbe,0xa,0xc1,0xb,0xa4,0xc, +0x5a,0xd,0xff,0xd,0xb4,0xe,0x53,0xf,0xb9,0xf,0xf9,0xf, +0x2e,0x10,0x70,0x10,0x9c,0x10,0x7f,0x10,0x25,0x10,0xc1,0xf, +0x73,0xf,0x2f,0xf,0xbc,0xe,0x9,0xe,0x3d,0xd,0x86,0xc, +0x0,0xc,0x8d,0xb,0xf3,0xa,0x53,0xa,0xfb,0x9,0xe4,0x9, +0xc7,0x9,0x9b,0x9,0x81,0x9,0x88,0x9,0xa3,0x9,0xa3,0x9, +0x7a,0x9,0x44,0x9,0xe,0x9,0xdc,0x8,0xa4,0x8,0x47,0x8, +0xe5,0x7,0x9d,0x7,0x53,0x7,0x8,0x7,0xc2,0x6,0x74,0x6, +0x2c,0x6,0xd2,0x5,0x36,0x5,0x75,0x4,0xbe,0x3,0x10,0x3, +0x54,0x2,0x88,0x1,0xc8,0x0,0x32,0x0,0xaf,0xff,0x7,0xff, +0x55,0xfe,0xf4,0xfd,0xe6,0xfd,0xbf,0xfd,0x23,0xfd,0x27,0xfc, +0x50,0xfb,0xed,0xfa,0xa7,0xfa,0x6,0xfa,0x1f,0xf9,0x55,0xf8, +0xd4,0xf7,0x92,0xf7,0x7d,0xf7,0x86,0xf7,0xb5,0xf7,0xfa,0xf7, +0x1f,0xf8,0x39,0xf8,0x7b,0xf8,0xe6,0xf8,0x90,0xf9,0x52,0xfa, +0xc5,0xfa,0xef,0xfa,0x26,0xfb,0xa4,0xfb,0x60,0xfc,0x1f,0xfd, +0xc5,0xfd,0x46,0xfe,0x89,0xfe,0xbd,0xfe,0x19,0xff,0x87,0xff, +0xe2,0xff,0xb,0x0,0x3,0x0,0xd3,0xff,0x8a,0xff,0x79,0xff, +0xaa,0xff,0xac,0xff,0x66,0xff,0x24,0xff,0xfd,0xfe,0xef,0xfe, +0x20,0xff,0xad,0xff,0x5b,0x0,0xda,0x0,0x36,0x1,0xa8,0x1, +0x66,0x2,0x83,0x3,0xb3,0x4,0x9a,0x5,0x1e,0x6,0x65,0x6, +0xc4,0x6,0x51,0x7,0xc4,0x7,0x3,0x8,0x29,0x8,0x2d,0x8, +0xfe,0x7,0xbb,0x7,0x99,0x7,0x95,0x7,0x72,0x7,0x9,0x7, +0x5c,0x6,0x87,0x5,0xd2,0x4,0x5a,0x4,0xd9,0x3,0x31,0x3, +0x97,0x2,0x26,0x2,0xe8,0x1,0xeb,0x1,0x17,0x2,0x68,0x2, +0xf1,0x2,0x84,0x3,0xd8,0x3,0xf0,0x3,0x19,0x4,0x6d,0x4, +0x9f,0x4,0x7a,0x4,0x15,0x4,0x8c,0x3,0x16,0x3,0xd7,0x2, +0x98,0x2,0x3b,0x2,0xef,0x1,0xd9,0x1,0xcb,0x1,0x7f,0x1, +0x1a,0x1,0xf3,0x0,0x0,0x1,0xe5,0x0,0x7c,0x0,0xfb,0xff, +0xa9,0xff,0xa1,0xff,0xd3,0xff,0xfb,0xff,0xff,0xff,0x2e,0x0, +0xb6,0x0,0x66,0x1,0xf2,0x1,0x37,0x2,0x7a,0x2,0xee,0x2, +0x3d,0x3,0x3f,0x3,0x23,0x3,0xfb,0x2,0xd3,0x2,0xbb,0x2, +0xb5,0x2,0xbe,0x2,0xe2,0x2,0x2e,0x3,0x7f,0x3,0xbd,0x3, +0x2d,0x4,0xda,0x4,0x80,0x5,0xee,0x5,0x9,0x6,0x1a,0x6, +0x82,0x6,0xc,0x7,0x6d,0x7,0xb1,0x7,0xfa,0x7,0x6b,0x8, +0xff,0x8,0x9e,0x9,0x61,0xa,0x3d,0xb,0xf5,0xb,0x64,0xc, +0x82,0xc,0x8d,0xc,0xcd,0xc,0x4,0xd,0xc3,0xc,0x9,0xc, +0x22,0xb,0x49,0xa,0xac,0x9,0x4a,0x9,0xf5,0x8,0x9f,0x8, +0x3a,0x8,0xba,0x7,0x7c,0x7,0xd8,0x7,0x7e,0x8,0xf3,0x8, +0x14,0x9,0xdf,0x8,0xa0,0x8,0xce,0x8,0x3a,0x9,0x4a,0x9, +0xf8,0x8,0xa0,0x8,0x4c,0x8,0xed,0x7,0x93,0x7,0x72,0x7, +0xa4,0x7,0xc9,0x7,0x79,0x7,0xaa,0x6,0x92,0x5,0xc6,0x4, +0xb2,0x4,0x92,0x4,0x54,0x3,0x51,0x1,0xc5,0xff,0xa,0xff, +0xb5,0xfe,0x6f,0xfe,0xde,0xfd,0x2f,0xfd,0x17,0xfd,0x76,0xfd, +0xa9,0xfd,0xfb,0xfd,0xca,0xfe,0x88,0xff,0x81,0xff,0xdd,0xfe, +0xa1,0xfe,0x75,0xff,0x9d,0x0,0x10,0x1,0xc4,0x0,0x5b,0x0, +0x7a,0x0,0x7d,0x1,0xc6,0x2,0x5f,0x3,0x6e,0x3,0x7b,0x3, +0x30,0x3,0x62,0x2,0xae,0x1,0x65,0x1,0x4c,0x1,0xc9,0x0, +0x3c,0xff,0x36,0xfd,0x58,0xfc,0x20,0xfd,0x32,0xfe,0x55,0xfe, +0xbe,0xfd,0x71,0xfd,0x34,0xfe,0x97,0xff,0x5f,0x0,0x5d,0x0, +0x4c,0x0,0x62,0x0,0x5d,0x0,0xfc,0xff,0x7a,0xff,0xba,0xff, +0xc4,0x0,0x5b,0x1,0xec,0x0,0x45,0x0,0x87,0x0,0x15,0x2, +0xeb,0x3,0x8e,0x4,0x1,0x4,0x9c,0x3,0xe0,0x3,0x35,0x4, +0x3a,0x4,0xfc,0x3,0xb9,0x3,0x95,0x3,0x1d,0x3,0x3a,0x2, +0xdd,0x1,0x7c,0x2,0x56,0x3,0xad,0x3,0x79,0x3,0x29,0x3, +0x48,0x3,0xe6,0x3,0x56,0x4,0xf,0x4,0x4d,0x3,0x76,0x2, +0xa8,0x1,0xde,0x0,0x36,0x0,0xfb,0xff,0x8,0x0,0xd7,0xff, +0x76,0xff,0x6b,0xff,0x8,0x0,0x51,0x1,0xb9,0x2,0x82,0x3, +0xc4,0x3,0xd,0x4,0x8b,0x4,0x4,0x5,0x31,0x5,0x12,0x5, +0xf9,0x4,0xfe,0x4,0xd8,0x4,0x88,0x4,0x87,0x4,0x5,0x5, +0x97,0x5,0xa8,0x5,0x7,0x5,0x2c,0x4,0x90,0x3,0xed,0x2, +0xc0,0x1,0xdf,0xff,0x97,0xfd,0x7d,0xfb,0xba,0xf9,0xff,0xf7, +0x64,0xf6,0x63,0xf5,0xed,0xf4,0x73,0xf4,0xd1,0xf3,0x60,0xf3, +0x67,0xf3,0xdb,0xf3,0x49,0xf4,0xb,0xf4,0x1d,0xf3,0x28,0xf2, +0x9c,0xf1,0x51,0xf1,0xe7,0xf0,0x4e,0xf0,0xc5,0xef,0x5b,0xef, +0xba,0xee,0xcd,0xed,0x25,0xed,0xfc,0xec,0xac,0xec,0xb0,0xeb, +0xeb,0xe9,0xb0,0xe7,0xe6,0xe5,0xd0,0xe4,0xa5,0xe3,0xfe,0xe1, +0x2b,0xe0,0xb3,0xde,0xe2,0xdd,0x68,0xdd,0x4,0xdd,0xf5,0xdc, +0x51,0xdd,0xd5,0xdd,0x35,0xde,0x71,0xde,0xe5,0xde,0xe4,0xdf, +0x58,0xe1,0x97,0xe2,0x19,0xe3,0x79,0xe3,0x83,0xe4,0x12,0xe6, +0xa1,0xe7,0xc5,0xe8,0x7a,0xe9,0x40,0xea,0x43,0xeb,0x50,0xec, +0x65,0xed,0x70,0xee,0x50,0xef,0xb,0xf0,0x92,0xf0,0xe3,0xf0, +0x4c,0xf1,0xf4,0xf1,0x91,0xf2,0xd4,0xf2,0xb4,0xf2,0x85,0xf2, +0xbf,0xf2,0x76,0xf3,0x54,0xf4,0x32,0xf5,0x2d,0xf6,0x5b,0xf7, +0xc1,0xf8,0x3f,0xfa,0xca,0xfb,0x6f,0xfd,0x2,0xff,0x26,0x0, +0xbb,0x0,0x3,0x1,0x71,0x1,0x26,0x2,0xbc,0x2,0xee,0x2, +0xf3,0x2,0x28,0x3,0xa9,0x3,0x5d,0x4,0x1d,0x5,0xbb,0x5, +0x1f,0x6,0x4f,0x6,0x3e,0x6,0xd1,0x5,0x37,0x5,0xcb,0x4, +0x6b,0x4,0xad,0x3,0xa6,0x2,0xbd,0x1,0x3b,0x1,0x2e,0x1, +0x5f,0x1,0x87,0x1,0x8e,0x1,0x80,0x1,0x79,0x1,0x75,0x1, +0x55,0x1,0x1e,0x1,0xda,0x0,0x5e,0x0,0x9f,0xff,0xe7,0xfe, +0x9e,0xfe,0xcf,0xfe,0x31,0xff,0x7f,0xff,0x86,0xff,0x75,0xff, +0xd5,0xff,0x97,0x0,0x1b,0x1,0x2c,0x1,0x8,0x1,0xe6,0x0, +0xb6,0x0,0x5e,0x0,0x1c,0x0,0x2a,0x0,0x68,0x0,0xa6,0x0, +0xc5,0x0,0xce,0x0,0xf3,0x0,0x4c,0x1,0xc9,0x1,0x23,0x2, +0xa,0x2,0xa5,0x1,0x5c,0x1,0x36,0x1,0x1a,0x1,0x14,0x1, +0x32,0x1,0x65,0x1,0x9a,0x1,0xd7,0x1,0x3c,0x2,0xdc,0x2, +0xa8,0x3,0x7f,0x4,0x30,0x5,0x95,0x5,0xfa,0x5,0xce,0x6, +0xdf,0x7,0xbf,0x8,0x71,0x9,0x1d,0xa,0xca,0xa,0x81,0xb, +0x2a,0xc,0x93,0xc,0xce,0xc,0xfe,0xc,0xfd,0xc,0xa2,0xc, +0xd,0xc,0x8c,0xb,0x5f,0xb,0x5a,0xb,0xa,0xb,0x7b,0xa, +0x2e,0xa,0x4c,0xa,0x86,0xa,0xa0,0xa,0x9f,0xa,0xaf,0xa, +0xf7,0xa,0x5b,0xb,0x9a,0xb,0xb5,0xb,0xde,0xb,0x49,0xc, +0xea,0xc,0x5b,0xd,0x81,0xd,0xb4,0xd,0xff,0xd,0x29,0xe, +0x2c,0xe,0x18,0xe,0xeb,0xd,0x8d,0xd,0x1,0xd,0x7b,0xc, +0xff,0xb,0x6c,0xb,0xd1,0xa,0x1c,0xa,0x23,0x9,0x19,0x8, +0x65,0x7,0x9,0x7,0x79,0x6,0x61,0x5,0x2a,0x4,0x4c,0x3, +0xd4,0x2,0x90,0x2,0x2f,0x2,0x8e,0x1,0xf7,0x0,0xa6,0x0, +0x5e,0x0,0xff,0xff,0xcf,0xff,0xc6,0xff,0xa4,0xff,0x4a,0xff, +0xa5,0xfe,0xfd,0xfd,0xd7,0xfd,0x6,0xfe,0xeb,0xfd,0x56,0xfd, +0x90,0xfc,0x1c,0xfc,0x30,0xfc,0x60,0xfc,0x40,0xfc,0xe4,0xfb, +0x8c,0xfb,0x5d,0xfb,0x55,0xfb,0x51,0xfb,0x46,0xfb,0x5f,0xfb, +0x8d,0xfb,0x88,0xfb,0x75,0xfb,0x9a,0xfb,0xda,0xfb,0x30,0xfc, +0x99,0xfc,0xca,0xfc,0xb6,0xfc,0x7e,0xfc,0x41,0xfc,0x28,0xfc, +0x22,0xfc,0xfa,0xfb,0xc5,0xfb,0x91,0xfb,0x47,0xfb,0x24,0xfb, +0x6d,0xfb,0xea,0xfb,0x5a,0xfc,0xc6,0xfc,0x33,0xfd,0xa0,0xfd, +0x3a,0xfe,0x16,0xff,0x10,0x0,0xdc,0x0,0x6d,0x1,0xfd,0x1, +0x83,0x2,0x1,0x3,0xb5,0x3,0x70,0x4,0xed,0x4,0x38,0x5, +0x52,0x5,0x6c,0x5,0xbc,0x5,0x11,0x6,0x56,0x6,0x6f,0x6, +0x2a,0x6,0xdd,0x5,0xca,0x5,0xb4,0x5,0x9d,0x5,0x82,0x5, +0x1a,0x5,0x74,0x4,0xf6,0x3,0xcf,0x3,0xd1,0x3,0xad,0x3, +0x66,0x3,0x24,0x3,0xe7,0x2,0xcc,0x2,0x5,0x3,0x6c,0x3, +0xb6,0x3,0xdc,0x3,0xf6,0x3,0xb,0x4,0x16,0x4,0x2a,0x4, +0x6c,0x4,0xb1,0x4,0xae,0x4,0x68,0x4,0x12,0x4,0xef,0x3, +0x37,0x4,0xa0,0x4,0xde,0x4,0xf1,0x4,0xcc,0x4,0x9f,0x4, +0xc1,0x4,0x13,0x5,0x39,0x5,0xec,0x4,0x24,0x4,0x3e,0x3, +0x88,0x2,0x20,0x2,0xda,0x1,0x4a,0x1,0x84,0x0,0xea,0xff, +0x7d,0xff,0x3b,0xff,0x24,0xff,0x12,0xff,0xe,0xff,0x3,0xff, +0xb4,0xfe,0x46,0xfe,0x0,0xfe,0xff,0xfd,0x43,0xfe,0x82,0xfe, +0x6b,0xfe,0x47,0xfe,0xa2,0xfe,0x6f,0xff,0x3e,0x0,0xeb,0x0, +0x74,0x1,0xf3,0x1,0xa4,0x2,0x6b,0x3,0xf5,0x3,0x3a,0x4, +0x56,0x4,0x79,0x4,0xc5,0x4,0xd,0x5,0x2b,0x5,0x4a,0x5, +0x84,0x5,0xa9,0x5,0x98,0x5,0x83,0x5,0x92,0x5,0xa2,0x5, +0x7f,0x5,0x2c,0x5,0xee,0x4,0xe5,0x4,0xcc,0x4,0x96,0x4, +0x80,0x4,0x8d,0x4,0xd7,0x4,0x63,0x5,0xca,0x5,0xf4,0x5, +0x4a,0x6,0xe2,0x6,0x6c,0x7,0xbd,0x7,0xf9,0x7,0x53,0x8, +0xac,0x8,0xb9,0x8,0x8a,0x8,0x72,0x8,0x67,0x8,0x27,0x8, +0xa3,0x7,0xff,0x6,0x6f,0x6,0xe,0x6,0x96,0x5,0xc0,0x4, +0xc1,0x3,0x15,0x3,0xe8,0x2,0xd9,0x2,0x86,0x2,0x32,0x2, +0x51,0x2,0xa7,0x2,0xb6,0x2,0x90,0x2,0x9c,0x2,0xe0,0x2, +0x21,0x3,0x20,0x3,0xb0,0x2,0x42,0x2,0x83,0x2,0x25,0x3, +0x53,0x3,0x1,0x3,0xd8,0x2,0x64,0x3,0x4e,0x4,0x99,0x4, +0x34,0x4,0xe1,0x3,0xb7,0x3,0x7a,0x3,0x3c,0x3,0xdf,0x2, +0x62,0x2,0x25,0x2,0x22,0x2,0xf6,0x1,0xcb,0x1,0x32,0x2, +0x28,0x3,0xff,0x3,0x47,0x4,0x42,0x4,0x6d,0x4,0xda,0x4, +0x30,0x5,0x2b,0x5,0xe2,0x4,0x6f,0x4,0xf8,0x3,0xc5,0x3, +0xb1,0x3,0x5f,0x3,0xfe,0x2,0xaf,0x2,0x37,0x2,0xa8,0x1, +0x2e,0x1,0xbb,0x0,0x50,0x0,0xae,0xff,0xae,0xfe,0xd6,0xfd, +0x83,0xfd,0x94,0xfd,0xfe,0xfd,0x83,0xfe,0xd5,0xfe,0x3a,0xff, +0x5,0x0,0x18,0x1,0x3c,0x2,0x59,0x3,0x3f,0x4,0x9c,0x4, +0x84,0x4,0x99,0x4,0x32,0x5,0xe2,0x5,0xd,0x6,0xaa,0x5, +0x2b,0x5,0xd7,0x4,0xa4,0x4,0x81,0x4,0x49,0x4,0xc3,0x3, +0xd4,0x2,0x95,0x1,0x5c,0x0,0x80,0xff,0x31,0xff,0x44,0xff, +0xd,0xff,0x56,0xfe,0xfd,0xfd,0x9f,0xfe,0xda,0xff,0x24,0x1, +0x41,0x2,0x36,0x3,0x2e,0x4,0x1f,0x5,0xfe,0x5,0xfc,0x6, +0x1d,0x8,0x10,0x9,0xae,0x9,0xfc,0x9,0x2b,0xa,0xbb,0xa, +0xb9,0xb,0x55,0xc,0x1,0xc,0x19,0xb,0x2b,0xa,0x70,0x9, +0xb8,0x8,0xa5,0x7,0x24,0x6,0x6d,0x4,0xbb,0x2,0x21,0x1, +0xa9,0xff,0x8d,0xfe,0xe3,0xfd,0x4e,0xfd,0x63,0xfc,0x26,0xfb, +0xc,0xfa,0x6c,0xf9,0x1c,0xf9,0xbe,0xf8,0x25,0xf8,0x53,0xf7, +0x85,0xf6,0xee,0xf5,0x7e,0xf5,0x3e,0xf5,0x3b,0xf5,0x17,0xf5, +0x7e,0xf4,0xb6,0xf3,0x24,0xf3,0xc5,0xf2,0x5f,0xf2,0xb0,0xf1, +0x99,0xf0,0x57,0xef,0x44,0xee,0x88,0xed,0x4,0xed,0x5a,0xec, +0x85,0xeb,0xb0,0xea,0xa1,0xe9,0x76,0xe8,0xaf,0xe7,0x2f,0xe7, +0x76,0xe6,0x50,0xe5,0xcd,0xe3,0x60,0xe2,0x63,0xe1,0xbe,0xe0, +0x47,0xe0,0xb5,0xdf,0xdd,0xde,0x31,0xde,0xf6,0xdd,0xc8,0xdd, +0x84,0xdd,0x80,0xdd,0xb7,0xdd,0xca,0xdd,0xc7,0xdd,0xff,0xdd, +0xa9,0xde,0xe8,0xdf,0x67,0xe1,0x96,0xe2,0xa7,0xe3,0x31,0xe5, +0x31,0xe7,0x41,0xe9,0x4,0xeb,0x53,0xec,0x69,0xed,0x76,0xee, +0x3d,0xef,0xb3,0xef,0x31,0xf0,0xd1,0xf0,0x45,0xf1,0x4e,0xf1, +0x13,0xf1,0x22,0xf1,0xb1,0xf1,0x22,0xf2,0x1d,0xf2,0x2,0xf2, +0x2,0xf2,0xf,0xf2,0x2a,0xf2,0x36,0xf2,0x36,0xf2,0x8c,0xf2, +0x54,0xf3,0x24,0xf4,0xd2,0xf4,0xd8,0xf5,0x88,0xf7,0x7c,0xf9, +0x11,0xfb,0x19,0xfc,0x14,0xfd,0x82,0xfe,0x39,0x0,0xc1,0x1, +0xb6,0x2,0x2,0x3,0x3d,0x3,0xe7,0x3,0x9f,0x4,0xf9,0x4, +0x1c,0x5,0x42,0x5,0x55,0x5,0x7,0x5,0x46,0x4,0x71,0x3, +0xe6,0x2,0x90,0x2,0x1,0x2,0xfb,0x0,0xb9,0xff,0xb9,0xfe, +0x35,0xfe,0xde,0xfd,0x50,0xfd,0xae,0xfc,0x4a,0xfc,0x35,0xfc, +0x4a,0xfc,0x58,0xfc,0x8a,0xfc,0x1a,0xfd,0xc3,0xfd,0x59,0xfe, +0x1b,0xff,0x2,0x0,0xe8,0x0,0xe2,0x1,0xc2,0x2,0x46,0x3, +0xa1,0x3,0xf,0x4,0x71,0x4,0xaf,0x4,0xd3,0x4,0xe0,0x4, +0xdd,0x4,0xbd,0x4,0x8a,0x4,0xa6,0x4,0x1b,0x5,0x73,0x5, +0x76,0x5,0x38,0x5,0xd8,0x4,0x97,0x4,0x6b,0x4,0x0,0x4, +0x69,0x3,0xf1,0x2,0x96,0x2,0x41,0x2,0x1,0x2,0xef,0x1, +0x36,0x2,0xd9,0x2,0x6a,0x3,0xaa,0x3,0xf3,0x3,0x7c,0x4, +0x26,0x5,0xc0,0x5,0xf,0x6,0x38,0x6,0x94,0x6,0x16,0x7, +0xa4,0x7,0x56,0x8,0x27,0x9,0x10,0xa,0xfd,0xa,0xbc,0xb, +0x50,0xc,0xef,0xc,0xb1,0xd,0x63,0xe,0xbc,0xe,0xd1,0xe, +0xba,0xe,0x6d,0xe,0x2d,0xe,0x32,0xe,0x51,0xe,0x67,0xe, +0x55,0xe,0xfb,0xd,0x87,0xd,0x2e,0xd,0xf9,0xc,0xd7,0xc, +0x80,0xc,0xb7,0xb,0xb6,0xa,0xdb,0x9,0x38,0x9,0xbe,0x8, +0x54,0x8,0xe0,0x7,0x70,0x7,0x22,0x7,0x11,0x7,0x60,0x7, +0xe1,0x7,0x33,0x8,0x5c,0x8,0x80,0x8,0xa0,0x8,0xf1,0x8, +0x96,0x9,0x41,0xa,0x99,0xa,0xb0,0xa,0xd9,0xa,0x43,0xb, +0xd3,0xb,0x61,0xc,0xac,0xc,0x87,0xc,0x1f,0xc,0xb3,0xb, +0x40,0xb,0xa5,0xa,0xe5,0x9,0xf5,0x8,0xb4,0x7,0x41,0x6, +0xf2,0x4,0xe5,0x3,0xf3,0x2,0xe3,0x1,0xb8,0x0,0x9d,0xff, +0xac,0xfe,0x10,0xfe,0xd1,0xfd,0x7c,0xfd,0xdc,0xfc,0x4d,0xfc, +0xfd,0xfb,0xd5,0xfb,0xf1,0xfb,0x6f,0xfc,0x11,0xfd,0x7c,0xfd, +0xbc,0xfd,0x22,0xfe,0xd8,0xfe,0xde,0xff,0xea,0x0,0x8d,0x1, +0xb7,0x1,0xaa,0x1,0xac,0x1,0xd2,0x1,0xd7,0x1,0x8e,0x1, +0x16,0x1,0x7f,0x0,0xd4,0xff,0x27,0xff,0x77,0xfe,0xce,0xfd, +0x36,0xfd,0x85,0xfc,0xa0,0xfb,0xae,0xfa,0xfe,0xf9,0xa5,0xf9, +0x5e,0xf9,0xee,0xf8,0x74,0xf8,0x3f,0xf8,0x77,0xf8,0xf7,0xf8, +0x8d,0xf9,0x20,0xfa,0xac,0xfa,0x57,0xfb,0x43,0xfc,0x54,0xfd, +0x59,0xfe,0x3e,0xff,0xf6,0xff,0x6d,0x0,0xc1,0x0,0x3f,0x1, +0xf2,0x1,0x81,0x2,0x98,0x2,0x53,0x2,0x19,0x2,0x36,0x2, +0x9e,0x2,0xd7,0x2,0x96,0x2,0x4e,0x2,0x69,0x2,0xb1,0x2, +0xf1,0x2,0x2,0x3,0xda,0x2,0xd5,0x2,0x4,0x3,0xf,0x3, +0xf0,0x2,0xcd,0x2,0xd5,0x2,0x1b,0x3,0x17,0x3,0x99,0x2, +0x64,0x2,0xd4,0x2,0x6e,0x3,0xbb,0x3,0xae,0x3,0x80,0x3, +0x79,0x3,0xc8,0x3,0x42,0x4,0x7c,0x4,0x6a,0x4,0x5a,0x4, +0x54,0x4,0x3e,0x4,0x3c,0x4,0x5c,0x4,0x6c,0x4,0x53,0x4, +0x36,0x4,0x32,0x4,0x40,0x4,0x5a,0x4,0x75,0x4,0x7c,0x4, +0x75,0x4,0x91,0x4,0xe4,0x4,0x1b,0x5,0x4,0x5,0xe8,0x4, +0xe9,0x4,0xe0,0x4,0xd3,0x4,0xd3,0x4,0xd5,0x4,0xd8,0x4, +0xd6,0x4,0xa6,0x4,0x4a,0x4,0xd,0x4,0x24,0x4,0x67,0x4, +0x81,0x4,0x37,0x4,0xbc,0x3,0x92,0x3,0xc2,0x3,0xf0,0x3, +0xf5,0x3,0xdf,0x3,0xce,0x3,0xdc,0x3,0xf5,0x3,0x20,0x4, +0x7b,0x4,0xca,0x4,0xdd,0x4,0xec,0x4,0x28,0x5,0x83,0x5, +0xe8,0x5,0x2c,0x6,0x1a,0x6,0xd6,0x5,0xb5,0x5,0xc5,0x5, +0xe4,0x5,0xe7,0x5,0xb2,0x5,0x68,0x5,0x33,0x5,0x1e,0x5, +0x29,0x5,0x36,0x5,0x3b,0x5,0x59,0x5,0x7b,0x5,0x86,0x5, +0x91,0x5,0xa5,0x5,0xb6,0x5,0xb7,0x5,0xa1,0x5,0x6f,0x5, +0x27,0x5,0xa,0x5,0x1e,0x5,0xd8,0x4,0x38,0x4,0xd0,0x3, +0xb9,0x3,0xd8,0x3,0xf7,0x3,0x90,0x3,0xd6,0x2,0x92,0x2, +0xab,0x2,0x88,0x2,0x18,0x2,0x80,0x1,0xf0,0x0,0xb1,0x0, +0x79,0x0,0xed,0xff,0x88,0xff,0xa6,0xff,0xd6,0xff,0xc9,0xff, +0x85,0xff,0x65,0xff,0x3a,0x0,0xa6,0x1,0xc,0x2,0x77,0x1, +0x79,0x1,0x76,0x2,0xdb,0x3,0xf4,0x4,0xc,0x5,0xcd,0x4, +0x8d,0x5,0xb9,0x6,0x1b,0x7,0x3,0x7,0xd,0x7,0x74,0x7, +0xa,0x8,0xa9,0x7,0x28,0x6,0x33,0x5,0x5c,0x5,0x8b,0x5, +0xf4,0x4,0x6d,0x3,0xb1,0x1,0x31,0x1,0xbc,0x1,0x7b,0x1, +0x8,0x0,0xcc,0xfe,0x78,0xfe,0xb5,0xfe,0x8,0xff,0xd9,0xfe, +0x6d,0xfe,0xe6,0xfe,0xfa,0xff,0x75,0x0,0x84,0x0,0xdd,0x0, +0xc0,0x1,0x1f,0x3,0xcb,0x3,0xf6,0x2,0x3e,0x2,0xfc,0x2, +0xa,0x4,0x4f,0x4,0xf7,0x3,0x63,0x3,0x55,0x3,0x18,0x4, +0x8d,0x4,0x40,0x4,0x21,0x4,0x5c,0x4,0x5b,0x4,0xe9,0x3, +0xfb,0x2,0x2d,0x2,0x3c,0x2,0x53,0x2,0x6d,0x1,0x43,0x0, +0xbb,0xff,0xc9,0xff,0x53,0x0,0xdc,0x0,0xc6,0x0,0xc3,0x0, +0x8a,0x1,0x37,0x2,0x26,0x2,0xe0,0x1,0xde,0x1,0x3f,0x2, +0xab,0x2,0x61,0x2,0xab,0x1,0x86,0x1,0x6,0x2,0xbb,0x2, +0x72,0x3,0xf5,0x3,0x6b,0x4,0x59,0x5,0x86,0x6,0x38,0x7, +0xa5,0x7,0x77,0x8,0x80,0x9,0x36,0xa,0x7b,0xa,0x86,0xa, +0xce,0xa,0x69,0xb,0xca,0xb,0xa4,0xb,0x2d,0xb,0x9c,0xa, +0x18,0xa,0x95,0x9,0xac,0x8,0x23,0x7,0x49,0x5,0x7c,0x3, +0xb3,0x1,0xda,0xff,0xa,0xfe,0x3f,0xfc,0x69,0xfa,0x81,0xf8, +0x9a,0xf6,0x3,0xf5,0xde,0xf3,0xf0,0xf2,0xfc,0xf1,0xe2,0xf0, +0xd9,0xef,0x4b,0xef,0x1a,0xef,0xcd,0xee,0x54,0xee,0xf0,0xed, +0xc2,0xed,0x96,0xed,0x1c,0xed,0x5c,0xec,0x90,0xeb,0xc1,0xea, +0xc4,0xe9,0x8b,0xe8,0x43,0xe7,0x21,0xe6,0x33,0xe5,0x59,0xe4, +0x48,0xe3,0xfd,0xe1,0xfb,0xe0,0x78,0xe0,0xd,0xe0,0x71,0xdf, +0xb3,0xde,0xe4,0xdd,0x22,0xdd,0x86,0xdc,0x1c,0xdc,0xfd,0xdb, +0xf,0xdc,0x25,0xdc,0x72,0xdc,0x10,0xdd,0xc4,0xdd,0x9f,0xde, +0xbc,0xdf,0xdd,0xe0,0xe6,0xe1,0xd8,0xe2,0x9c,0xe3,0x3d,0xe4, +0xd2,0xe4,0x69,0xe5,0x7,0xe6,0x8e,0xe6,0xec,0xe6,0x50,0xe7, +0xfb,0xe7,0xf2,0xe8,0xb,0xea,0x1f,0xeb,0x10,0xec,0xf1,0xec, +0x22,0xee,0x9e,0xef,0xf4,0xf0,0x21,0xf2,0x58,0xf3,0x8f,0xf4, +0xbd,0xf5,0xef,0xf6,0x2f,0xf8,0x87,0xf9,0xeb,0xfa,0x47,0xfc, +0x6c,0xfd,0x39,0xfe,0xf1,0xfe,0xd6,0xff,0xc8,0x0,0x7b,0x1, +0xcf,0x1,0xf6,0x1,0x22,0x2,0x35,0x2,0x35,0x2,0x36,0x2, +0x1d,0x2,0xe8,0x1,0xae,0x1,0x70,0x1,0x3d,0x1,0x2f,0x1, +0x3c,0x1,0x3e,0x1,0x29,0x1,0x2d,0x1,0x7e,0x1,0x8,0x2, +0x9e,0x2,0x1f,0x3,0x82,0x3,0xca,0x3,0xfb,0x3,0x2e,0x4, +0x79,0x4,0xd5,0x4,0x20,0x5,0x25,0x5,0xdb,0x4,0x90,0x4, +0x8c,0x4,0xc9,0x4,0x2,0x5,0xe1,0x4,0x6d,0x4,0xfb,0x3, +0xa5,0x3,0x4f,0x3,0xf1,0x2,0x7c,0x2,0xcf,0x1,0x7,0x1, +0x66,0x0,0xfd,0xff,0xa8,0xff,0x45,0xff,0xe7,0xfe,0xa5,0xfe, +0x5b,0xfe,0x7,0xfe,0xe0,0xfd,0xe0,0xfd,0xdd,0xfd,0xcb,0xfd, +0x95,0xfd,0x55,0xfd,0x62,0xfd,0xc4,0xfd,0x2c,0xfe,0x84,0xfe, +0x5,0xff,0xd4,0xff,0xc8,0x0,0xa8,0x1,0x60,0x2,0x2b,0x3, +0x42,0x4,0x59,0x5,0x14,0x6,0xa5,0x6,0x5f,0x7,0x3a,0x8, +0xf5,0x8,0x6b,0x9,0xd8,0x9,0x97,0xa,0x94,0xb,0x3e,0xc, +0x47,0xc,0xe,0xc,0x15,0xc,0x59,0xc,0x5f,0xc,0xbc,0xb, +0xb6,0xa,0xc,0xa,0xe0,0x9,0xb0,0x9,0x41,0x9,0xc7,0x8, +0x86,0x8,0x9a,0x8,0xda,0x8,0xf3,0x8,0xe7,0x8,0x13,0x9, +0x7c,0x9,0xb4,0x9,0x85,0x9,0x4a,0x9,0x9f,0x9,0x8a,0xa, +0x59,0xb,0xbc,0xb,0x1b,0xc,0xc8,0xc,0xd3,0xd,0xfa,0xe, +0xba,0xf,0x14,0x10,0x60,0x10,0x8b,0x10,0x5c,0x10,0xd7,0xf, +0x4b,0xf,0x0,0xf,0xb1,0xe,0xea,0xd,0xc7,0xc,0xe6,0xb, +0xa3,0xb,0x89,0xb,0xf7,0xa,0xf5,0x9,0xe2,0x8,0x9,0x8, +0x6e,0x7,0x96,0x6,0x3a,0x5,0xc8,0x3,0x9c,0x2,0x96,0x1, +0x7f,0x0,0x6e,0xff,0xc3,0xfe,0x85,0xfe,0x40,0xfe,0xc6,0xfd, +0x6a,0xfd,0x81,0xfd,0xfc,0xfd,0x7d,0xfe,0xa0,0xfe,0x66,0xfe, +0x3f,0xfe,0x86,0xfe,0xf2,0xfe,0x10,0xff,0xeb,0xfe,0xce,0xfe, +0xe2,0xfe,0x7,0xff,0x11,0xff,0x2f,0xff,0x8e,0xff,0xd6,0xff, +0xcd,0xff,0x94,0xff,0x49,0xff,0x27,0xff,0x37,0xff,0xf8,0xfe, +0x39,0xfe,0x57,0xfd,0x93,0xfc,0xb,0xfc,0xa9,0xfb,0x32,0xfb, +0xc0,0xfa,0x75,0xfa,0x4e,0xfa,0x66,0xfa,0xb6,0xfa,0x17,0xfb, +0x9a,0xfb,0x23,0xfc,0x89,0xfc,0xe5,0xfc,0x4e,0xfd,0xbc,0xfd, +0x34,0xfe,0xba,0xfe,0x54,0xff,0xf8,0xff,0x8e,0x0,0x1c,0x1, +0xcc,0x1,0xbd,0x2,0xca,0x3,0x9f,0x4,0x15,0x5,0x4d,0x5, +0x92,0x5,0xf3,0x5,0x1d,0x6,0xd3,0x5,0x4a,0x5,0xdf,0x4, +0xab,0x4,0x85,0x4,0x47,0x4,0xf4,0x3,0xc5,0x3,0xf4,0x3, +0x3e,0x4,0x41,0x4,0x37,0x4,0x6d,0x4,0xba,0x4,0xdb,0x4, +0xac,0x4,0x76,0x4,0xa5,0x4,0x4,0x5,0x36,0x5,0x3f,0x5, +0x43,0x5,0x7f,0x5,0x4,0x6,0x6b,0x6,0x82,0x6,0x8e,0x6, +0xb3,0x6,0xc8,0x6,0xae,0x6,0x72,0x6,0x2b,0x6,0xf3,0x5, +0xc1,0x5,0x4b,0x5,0x9b,0x4,0x3b,0x4,0x34,0x4,0x27,0x4, +0xf9,0x3,0x9b,0x3,0x2f,0x3,0x19,0x3,0x35,0x3,0x12,0x3, +0xaa,0x2,0x29,0x2,0xdf,0x1,0xec,0x1,0xd1,0x1,0x46,0x1, +0xc0,0x0,0xa0,0x0,0xc8,0x0,0xe2,0x0,0xba,0x0,0x70,0x0, +0x61,0x0,0xac,0x0,0xd6,0x0,0x80,0x0,0x3f,0x0,0x79,0x0, +0xa6,0x0,0x7c,0x0,0x47,0x0,0x46,0x0,0xbf,0x0,0x76,0x1, +0xc0,0x1,0xcf,0x1,0x57,0x2,0x56,0x3,0x5f,0x4,0x1b,0x5, +0x76,0x5,0xd2,0x5,0x66,0x6,0xcf,0x6,0xcc,0x6,0xb4,0x6, +0xde,0x6,0x24,0x7,0x21,0x7,0xb1,0x6,0x27,0x6,0x20,0x6, +0xa2,0x6,0xe2,0x6,0x80,0x6,0xe5,0x5,0x70,0x5,0x60,0x5, +0x7d,0x5,0x10,0x5,0x3c,0x4,0xee,0x3,0x36,0x4,0x83,0x4, +0xa5,0x4,0xb6,0x4,0x31,0x5,0x65,0x6,0x81,0x7,0xd7,0x7, +0x4,0x8,0xa6,0x8,0x91,0x9,0x32,0xa,0xd9,0x9,0xee,0x8, +0xb2,0x8,0x14,0x9,0x7,0x9,0x6c,0x8,0xda,0x7,0xc0,0x7, +0xf,0x8,0xfb,0x7,0x22,0x7,0x64,0x6,0x72,0x6,0xa2,0x6, +0x7,0x6,0xb7,0x4,0x7f,0x3,0x0,0x3,0xf6,0x2,0x7a,0x2, +0x97,0x1,0x5f,0x1,0xdf,0x1,0x2c,0x2,0xf5,0x1,0x7e,0x1, +0x73,0x1,0x56,0x2,0x1d,0x3,0xa4,0x2,0xbb,0x1,0x90,0x1, +0xe,0x2,0x7e,0x2,0x45,0x2,0xbc,0x1,0x13,0x2,0x2b,0x3, +0x92,0x3,0xa,0x3,0x92,0x2,0xaf,0x2,0x2f,0x3,0x38,0x3, +0xee,0x1,0x5e,0x0,0x49,0x0,0xfa,0x0,0xa0,0x0,0x4c,0xff, +0x38,0xfe,0x34,0xfe,0xf6,0xfe,0xfd,0xfe,0xc1,0xfd,0xb5,0xfc, +0xbf,0xfc,0xf,0xfd,0x84,0xfc,0xea,0xfa,0xac,0xf9,0x2c,0xfa, +0x3a,0xfb,0xf6,0xfa,0xec,0xf9,0xbd,0xf9,0xcc,0xfa,0x2d,0xfc, +0xaa,0xfc,0x46,0xfc,0x9e,0xfc,0x6a,0xfe,0x24,0x0,0x84,0x0, +0x5e,0x0,0x32,0x1,0x60,0x3,0x9f,0x5,0x59,0x6,0x2f,0x6, +0x25,0x7,0x1f,0x9,0x3f,0xa,0xe6,0x9,0xa,0x9,0xd6,0x8, +0x75,0x9,0x69,0x9,0xa5,0x7,0x92,0x5,0xd3,0x4,0xde,0x4, +0x37,0x4,0x69,0x2,0x77,0x0,0xdd,0xff,0x50,0x0,0xe8,0xff, +0x47,0xfe,0xf6,0xfc,0xcb,0xfc,0x5a,0xfd,0xaa,0xfd,0x19,0xfd, +0xbe,0xfc,0xfe,0xfd,0xf7,0xff,0x1a,0x1,0x8f,0x1,0x5f,0x2, +0x19,0x4,0x31,0x6,0x67,0x7,0xa3,0x7,0x2a,0x8,0x81,0x9, +0xdc,0xa,0x6d,0xb,0x44,0xb,0x41,0xb,0xfc,0xb,0xb0,0xc, +0x58,0xc,0x4b,0xb,0x7d,0xa,0xf6,0x9,0xfe,0x8,0x14,0x7, +0x92,0x4,0x79,0x2,0x1b,0x1,0x9a,0xff,0x59,0xfd,0xea,0xfa, +0x12,0xf9,0xce,0xf7,0x95,0xf6,0x20,0xf5,0xc2,0xf3,0xdd,0xf2, +0x38,0xf2,0x45,0xf1,0x4,0xf0,0x7,0xef,0x9e,0xee,0x8b,0xee, +0x4a,0xee,0xbe,0xed,0x5b,0xed,0x4d,0xed,0x3e,0xed,0x15,0xed, +0xd8,0xec,0x7c,0xec,0x25,0xec,0xa5,0xeb,0xa2,0xea,0x97,0xe9, +0x2,0xe9,0x79,0xe8,0x9a,0xe7,0x84,0xe6,0x78,0xe5,0xae,0xe4, +0x17,0xe4,0x65,0xe3,0x87,0xe2,0xae,0xe1,0xf0,0xe0,0x28,0xe0, +0x2b,0xdf,0x2a,0xde,0x87,0xdd,0x45,0xdd,0xa,0xdd,0x9c,0xdc, +0x28,0xdc,0x2,0xdc,0x3e,0xdc,0xb7,0xdc,0x32,0xdd,0x93,0xdd, +0xe,0xde,0xc6,0xde,0x96,0xdf,0x7c,0xe0,0x9d,0xe1,0xf4,0xe2, +0x3c,0xe4,0x3a,0xe5,0x3d,0xe6,0xcf,0xe7,0xc6,0xe9,0x87,0xeb, +0xda,0xec,0xe9,0xed,0x1b,0xef,0xbf,0xf0,0x88,0xf2,0x13,0xf4, +0x85,0xf5,0x1e,0xf7,0xbc,0xf8,0x1f,0xfa,0x3c,0xfb,0x73,0xfc, +0x1a,0xfe,0xb4,0xff,0x6d,0x0,0x55,0x0,0x21,0x0,0x2b,0x0, +0x67,0x0,0x71,0x0,0xc6,0xff,0xb1,0xfe,0xb,0xfe,0xea,0xfd, +0xcc,0xfd,0xa0,0xfd,0x95,0xfd,0xa6,0xfd,0xb5,0xfd,0xb7,0xfd, +0xe0,0xfd,0x6a,0xfe,0x27,0xff,0xd3,0xff,0x60,0x0,0xca,0x0, +0x50,0x1,0x75,0x2,0x18,0x4,0x8e,0x5,0xb1,0x6,0xba,0x7, +0xa5,0x8,0x5f,0x9,0xe0,0x9,0x2b,0xa,0x4d,0xa,0x25,0xa, +0x7f,0x9,0x6a,0x8,0x1d,0x7,0xdb,0x5,0xdc,0x4,0xf7,0x3, +0xcb,0x2,0x69,0x1,0x46,0x0,0x77,0xff,0xa8,0xfe,0xc7,0xfd, +0x0,0xfd,0x53,0xfc,0xb4,0xfb,0x27,0xfb,0xa4,0xfa,0x3f,0xfa, +0x20,0xfa,0x42,0xfa,0x8f,0xfa,0xdf,0xfa,0x2c,0xfb,0xbf,0xfb, +0x92,0xfc,0x4b,0xfd,0x1,0xfe,0xd6,0xfe,0x70,0xff,0xbd,0xff, +0xf,0x0,0x8c,0x0,0x2b,0x1,0xbc,0x1,0xf,0x2,0x4e,0x2, +0xb4,0x2,0x3a,0x3,0xca,0x3,0x41,0x4,0x92,0x4,0xf5,0x4, +0x72,0x5,0xb5,0x5,0xc1,0x5,0xe1,0x5,0x1f,0x6,0x67,0x6, +0xa3,0x6,0xac,0x6,0x9f,0x6,0xd0,0x6,0x2f,0x7,0x59,0x7, +0x38,0x7,0xf,0x7,0x5,0x7,0xff,0x6,0xe9,0x6,0xd8,0x6, +0xe2,0x6,0x14,0x7,0x6f,0x7,0xd3,0x7,0x2a,0x8,0xb3,0x8, +0xa6,0x9,0xb7,0xa,0x79,0xb,0x6,0xc,0xa9,0xc,0x6a,0xd, +0x39,0xe,0x2,0xf,0x9b,0xf,0x18,0x10,0xb9,0x10,0x65,0x11, +0xcf,0x11,0xef,0x11,0x2,0x12,0x25,0x12,0x16,0x12,0x6f,0x11, +0x43,0x10,0xf,0xf,0x12,0xe,0x14,0xd,0xdb,0xb,0x76,0xa, +0x1b,0x9,0xb,0x8,0x5d,0x7,0xbc,0x6,0xe4,0x5,0x1e,0x5, +0xae,0x4,0x50,0x4,0xb7,0x3,0xf6,0x2,0x57,0x2,0x5,0x2, +0xce,0x1,0x7b,0x1,0x3f,0x1,0x6a,0x1,0xfc,0x1,0xb0,0x2, +0x2c,0x3,0x6b,0x3,0xcc,0x3,0x77,0x4,0xb,0x5,0x2a,0x5, +0xd9,0x4,0x64,0x4,0xef,0x3,0x57,0x3,0x88,0x2,0xb3,0x1, +0xe,0x1,0x9a,0x0,0x2e,0x0,0x94,0xff,0xcb,0xfe,0x18,0xfe, +0xaa,0xfd,0x3e,0xfd,0x62,0xfc,0x39,0xfb,0x3f,0xfa,0x79,0xf9, +0xb1,0xf8,0xe4,0xf7,0x22,0xf7,0xa2,0xf6,0xb2,0xf6,0x26,0xf7, +0x99,0xf7,0x11,0xf8,0xc5,0xf8,0xb9,0xf9,0xb7,0xfa,0x73,0xfb, +0xfb,0xfb,0xaf,0xfc,0x93,0xfd,0x46,0xfe,0xac,0xfe,0xfc,0xfe, +0x63,0xff,0xef,0xff,0x78,0x0,0xc8,0x0,0x14,0x1,0xb0,0x1, +0x59,0x2,0x9d,0x2,0x8a,0x2,0x7a,0x2,0x9f,0x2,0xcc,0x2, +0xae,0x2,0x54,0x2,0x1,0x2,0xc4,0x1,0x94,0x1,0x5e,0x1, +0xf,0x1,0xdf,0x0,0x6,0x1,0x4b,0x1,0x70,0x1,0x87,0x1, +0xba,0x1,0x11,0x2,0x5c,0x2,0x81,0x2,0xb4,0x2,0x17,0x3, +0x8c,0x3,0xf3,0x3,0x44,0x4,0x91,0x4,0xe,0x5,0xbe,0x5, +0x63,0x6,0xe9,0x6,0x73,0x7,0xa,0x8,0x8e,0x8,0xcf,0x8, +0xcb,0x8,0xcb,0x8,0xe8,0x8,0xc8,0x8,0x30,0x8,0x6b,0x7, +0xd3,0x6,0x71,0x6,0x2,0x6,0x3c,0x5,0x29,0x4,0x47,0x3, +0xe1,0x2,0x8a,0x2,0xd6,0x1,0x4,0x1,0x7d,0x0,0x46,0x0, +0x18,0x0,0xb2,0xff,0x5b,0xff,0x7e,0xff,0xdf,0xff,0x1d,0x0, +0x43,0x0,0x63,0x0,0xa1,0x0,0x34,0x1,0xd6,0x1,0x28,0x2, +0x58,0x2,0xa7,0x2,0x9,0x3,0x61,0x3,0x99,0x3,0xbd,0x3, +0xe9,0x3,0xfe,0x3,0xd1,0x3,0x7e,0x3,0x26,0x3,0xd0,0x2, +0x8c,0x2,0x3e,0x2,0xb4,0x1,0x24,0x1,0xde,0x0,0xc6,0x0, +0xb2,0x0,0xaa,0x0,0xba,0x0,0xf1,0x0,0x46,0x1,0x85,0x1, +0xc2,0x1,0x3c,0x2,0xdb,0x2,0x44,0x3,0x57,0x3,0x58,0x3, +0xb4,0x3,0x8b,0x4,0x64,0x5,0xb7,0x5,0xc0,0x5,0x1e,0x6, +0xe8,0x6,0xb5,0x7,0x32,0x8,0x69,0x8,0xb6,0x8,0x21,0x9, +0x34,0x9,0x2,0x9,0x19,0x9,0x84,0x9,0xf5,0x9,0x2d,0xa, +0xfd,0x9,0xa3,0x9,0xab,0x9,0x34,0xa,0xc0,0xa,0xc8,0xa, +0x55,0xa,0xdb,0x9,0xa2,0x9,0xb0,0x9,0xc6,0x9,0x80,0x9, +0xed,0x8,0x6f,0x8,0x24,0x8,0xfa,0x7,0xbb,0x7,0x51,0x7, +0x12,0x7,0xc,0x7,0xb4,0x6,0x4,0x6,0x9c,0x5,0xb1,0x5, +0xf9,0x5,0x25,0x6,0xf8,0x5,0x8b,0x5,0x5c,0x5,0x97,0x5, +0xd5,0x5,0xd1,0x5,0xad,0x5,0x7a,0x5,0x19,0x5,0x94,0x4, +0x4b,0x4,0x79,0x4,0xa9,0x4,0x64,0x4,0xf9,0x3,0xd0,0x3, +0xca,0x3,0xb9,0x3,0x98,0x3,0x61,0x3,0x29,0x3,0x0,0x3, +0x9c,0x2,0xc6,0x1,0xe3,0x0,0x7d,0x0,0x5f,0x0,0xfe,0xff, +0x53,0xff,0xba,0xfe,0x69,0xfe,0x5a,0xfe,0x5b,0xfe,0x39,0xfe, +0xf4,0xfd,0xc0,0xfd,0xca,0xfd,0xfd,0xfd,0x11,0xfe,0x9,0xfe, +0x36,0xfe,0x99,0xfe,0xfa,0xfe,0x60,0xff,0xc2,0xff,0x11,0x0, +0xa0,0x0,0x81,0x1,0x26,0x2,0x4c,0x2,0x46,0x2,0x6f,0x2, +0xe3,0x2,0x5e,0x3,0xa2,0x3,0xd8,0x3,0xc,0x4,0x14,0x4, +0x1,0x4,0xe1,0x3,0xd3,0x3,0xff,0x3,0x21,0x4,0xef,0x3, +0x86,0x3,0x13,0x3,0xc2,0x2,0xb2,0x2,0xc2,0x2,0xda,0x2, +0xe8,0x2,0xea,0x2,0x19,0x3,0x7c,0x3,0xed,0x3,0x4c,0x4, +0x69,0x4,0x78,0x4,0xd2,0x4,0x2c,0x5,0x47,0x5,0x68,0x5, +0x90,0x5,0xa0,0x5,0xa6,0x5,0x8f,0x5,0x8d,0x5,0x5,0x6, +0xb9,0x6,0xf2,0x6,0x8f,0x6,0x29,0x6,0x51,0x6,0x7,0x7, +0xa1,0x7,0x75,0x7,0xe3,0x6,0xdd,0x6,0x6e,0x7,0xfa,0x7, +0x41,0x8,0x59,0x8,0x8f,0x8,0x4,0x9,0x44,0x9,0x4,0x9, +0xab,0x8,0x7f,0x8,0x2f,0x8,0x3e,0x7,0x8b,0x5,0xab,0x3, +0x56,0x2,0x67,0x1,0xfd,0xff,0xbd,0xfd,0x3f,0xfb,0x39,0xf9, +0xc5,0xf7,0x6f,0xf6,0xc3,0xf4,0xe9,0xf2,0x43,0xf1,0xb1,0xef, +0xf6,0xed,0x52,0xec,0xe,0xeb,0x34,0xea,0x83,0xe9,0x83,0xe8, +0x4b,0xe7,0xb0,0xe6,0xf,0xe7,0xcf,0xe7,0x3b,0xe8,0x3a,0xe8, +0x49,0xe8,0xca,0xe8,0x6a,0xe9,0x98,0xe9,0x3a,0xe9,0x95,0xe8, +0xf2,0xe7,0x4d,0xe7,0x50,0xe6,0xfb,0xe4,0xf0,0xe3,0x75,0xe3, +0xf5,0xe2,0x8,0xe2,0x5,0xe1,0x66,0xe0,0x4f,0xe0,0x69,0xe0, +0x21,0xe0,0x63,0xdf,0xae,0xde,0x65,0xde,0x63,0xde,0x49,0xde, +0x11,0xde,0x36,0xde,0xb,0xdf,0x47,0xe0,0x7c,0xe1,0xbf,0xe2, +0x72,0xe4,0x88,0xe6,0x97,0xe8,0x4e,0xea,0xa2,0xeb,0xe1,0xec, +0x3a,0xee,0x54,0xef,0xf0,0xef,0x4b,0xf0,0xb4,0xf0,0x6b,0xf1, +0x71,0xf2,0x8e,0xf3,0xb1,0xf4,0xf7,0xf5,0x66,0xf7,0xd3,0xf8, +0x9,0xfa,0xb,0xfb,0xe8,0xfb,0x98,0xfc,0x22,0xfd,0x6c,0xfd, +0x5e,0xfd,0x4a,0xfd,0x76,0xfd,0xd1,0xfd,0x47,0xfe,0xd5,0xfe, +0x7d,0xff,0x46,0x0,0x14,0x1,0xaa,0x1,0xe9,0x1,0xef,0x1, +0xe2,0x1,0xb3,0x1,0x4e,0x1,0xb3,0x0,0xf3,0xff,0x58,0xff, +0xf,0xff,0xed,0xfe,0xf6,0xfe,0x4c,0xff,0xde,0xff,0x98,0x0, +0x54,0x1,0xda,0x1,0x4a,0x2,0xc8,0x2,0x2c,0x3,0x5b,0x3, +0x54,0x3,0x2c,0x3,0x4,0x3,0xda,0x2,0xb7,0x2,0xa9,0x2, +0xa1,0x2,0xaa,0x2,0xbd,0x2,0xa3,0x2,0x4d,0x2,0xdf,0x1, +0x61,0x1,0xdd,0x0,0x4a,0x0,0x8d,0xff,0xc5,0xfe,0x13,0xfe, +0x73,0xfd,0xf5,0xfc,0xa8,0xfc,0x80,0xfc,0x7c,0xfc,0xa5,0xfc, +0xf0,0xfc,0x36,0xfd,0x76,0xfd,0xf5,0xfd,0xb6,0xfe,0x5a,0xff, +0xbd,0xff,0x21,0x0,0xbf,0x0,0x9b,0x1,0x86,0x2,0x2b,0x3, +0x64,0x3,0x8e,0x3,0xf,0x4,0xba,0x4,0x34,0x5,0x6f,0x5, +0x8d,0x5,0xa7,0x5,0xbe,0x5,0xd4,0x5,0xf3,0x5,0x20,0x6, +0x52,0x6,0x6d,0x6,0x54,0x6,0x18,0x6,0xf2,0x5,0xc,0x6, +0x4e,0x6,0x67,0x6,0x40,0x6,0x2f,0x6,0x75,0x6,0xd,0x7, +0xcd,0x7,0x78,0x8,0xf6,0x8,0x56,0x9,0xbe,0x9,0x58,0xa, +0xff,0xa,0x78,0xb,0xbc,0xb,0xcb,0xb,0xbe,0xb,0xc6,0xb, +0xfb,0xb,0x77,0xc,0x1f,0xd,0x91,0xd,0xba,0xd,0xbf,0xd, +0xd4,0xd,0x31,0xe,0x97,0xe,0xa9,0xe,0x77,0xe,0x0,0xe, +0x53,0xd,0xbc,0xc,0x3d,0xc,0xd2,0xb,0x98,0xb,0x48,0xb, +0xac,0xa,0x11,0xa,0xbf,0x9,0xb4,0x9,0xbf,0x9,0x9a,0x9, +0x2c,0x9,0x9e,0x8,0x16,0x8,0xab,0x7,0x65,0x7,0x34,0x7, +0xf1,0x6,0x93,0x6,0x27,0x6,0xba,0x5,0x7f,0x5,0xa8,0x5, +0xec,0x5,0xdd,0x5,0x73,0x5,0xde,0x4,0x54,0x4,0xd,0x4, +0x6,0x4,0xf1,0x3,0x94,0x3,0xf0,0x2,0x4c,0x2,0xea,0x1, +0xb3,0x1,0x7f,0x1,0x49,0x1,0xff,0x0,0x92,0x0,0x5,0x0, +0x6e,0xff,0xf3,0xfe,0xb0,0xfe,0x96,0xfe,0x57,0xfe,0xc1,0xfd, +0x37,0xfd,0x25,0xfd,0x65,0xfd,0x9f,0xfd,0x94,0xfd,0x4a,0xfd, +0x2c,0xfd,0x6b,0xfd,0xb7,0xfd,0xd8,0xfd,0xd8,0xfd,0xc2,0xfd, +0xa8,0xfd,0x90,0xfd,0x6e,0xfd,0x63,0xfd,0x8f,0xfd,0xc1,0xfd, +0xc5,0xfd,0xa4,0xfd,0x7e,0xfd,0x82,0xfd,0xbf,0xfd,0x9,0xfe, +0x4c,0xfe,0x83,0xfe,0x96,0xfe,0xa6,0xfe,0xe4,0xfe,0x3b,0xff, +0x9a,0xff,0xf7,0xff,0x39,0x0,0x5a,0x0,0x71,0x0,0xad,0x0, +0xb,0x1,0x4c,0x1,0x54,0x1,0x3c,0x1,0x28,0x1,0x3c,0x1, +0x58,0x1,0x4b,0x1,0x2b,0x1,0x18,0x1,0x11,0x1,0x5,0x1, +0xe0,0x0,0xbb,0x0,0xc2,0x0,0xed,0x0,0x18,0x1,0x24,0x1, +0x24,0x1,0x3b,0x1,0x6c,0x1,0xbc,0x1,0x20,0x2,0x7c,0x2, +0xe2,0x2,0x6c,0x3,0xf5,0x3,0x61,0x4,0xba,0x4,0x15,0x5, +0x81,0x5,0xf9,0x5,0x63,0x6,0x96,0x6,0x91,0x6,0x83,0x6, +0x63,0x6,0x21,0x6,0xf1,0x5,0xcc,0x5,0x74,0x5,0xf2,0x4, +0x59,0x4,0xad,0x3,0x21,0x3,0xc7,0x2,0x79,0x2,0x22,0x2, +0xae,0x1,0x39,0x1,0x4,0x1,0xc,0x1,0x2d,0x1,0x66,0x1, +0x90,0x1,0x8f,0x1,0xa8,0x1,0x6,0x2,0x78,0x2,0xc8,0x2, +0xf6,0x2,0x10,0x3,0x25,0x3,0x4f,0x3,0x87,0x3,0x98,0x3, +0xa2,0x3,0xdc,0x3,0x17,0x4,0x27,0x4,0x6,0x4,0xc4,0x3, +0xc2,0x3,0x15,0x4,0x3e,0x4,0xfd,0x3,0x81,0x3,0x10,0x3, +0xe9,0x2,0xe1,0x2,0xae,0x2,0x62,0x2,0x27,0x2,0x15,0x2, +0x33,0x2,0x56,0x2,0x72,0x2,0xb6,0x2,0x3b,0x3,0xd2,0x3, +0x45,0x4,0xa9,0x4,0x1a,0x5,0x7b,0x5,0xda,0x5,0x4b,0x6, +0x94,0x6,0x9c,0x6,0xa8,0x6,0xd5,0x6,0xf2,0x6,0xe0,0x6, +0xbb,0x6,0x9f,0x6,0x84,0x6,0x58,0x6,0x17,0x6,0xb9,0x5, +0x39,0x5,0xc0,0x4,0x5e,0x4,0xc8,0x3,0x4,0x3,0x7d,0x2, +0x27,0x2,0x93,0x1,0xd4,0x0,0x51,0x0,0x17,0x0,0xfe,0xff, +0xf1,0xff,0xcb,0xff,0x8a,0xff,0x93,0xff,0xf2,0xff,0x10,0x0, +0xc4,0xff,0x95,0xff,0xc5,0xff,0xff,0xff,0xde,0xff,0x8a,0xff, +0x68,0xff,0x7b,0xff,0xb1,0xff,0xff,0xff,0x22,0x0,0x2e,0x0, +0x8a,0x0,0x19,0x1,0x6c,0x1,0x5e,0x1,0x2a,0x1,0x10,0x1, +0xe8,0x0,0x67,0x0,0xa0,0xff,0xc0,0xfe,0xfd,0xfd,0xb6,0xfd, +0xbe,0xfd,0x6d,0xfd,0xd1,0xfc,0xb7,0xfc,0x67,0xfd,0x3c,0xfe, +0x8c,0xfe,0x7e,0xfe,0x8b,0xfe,0xaf,0xfe,0xcd,0xfe,0xf8,0xfe, +0x3,0xff,0xe6,0xfe,0x4,0xff,0x60,0xff,0xc9,0xff,0x72,0x0, +0x76,0x1,0x83,0x2,0x40,0x3,0xb4,0x3,0x40,0x4,0xea,0x4, +0x2f,0x5,0xea,0x4,0x88,0x4,0x29,0x4,0x9e,0x3,0x2,0x3, +0xa0,0x2,0x7f,0x2,0x87,0x2,0x9c,0x2,0x8d,0x2,0x4e,0x2, +0x3a,0x2,0xa0,0x2,0x35,0x3,0x48,0x3,0xbb,0x2,0x40,0x2, +0x4b,0x2,0xaa,0x2,0x22,0x3,0xa0,0x3,0x15,0x4,0xa9,0x4, +0x90,0x5,0xb3,0x6,0xc2,0x7,0x9a,0x8,0x47,0x9,0xaf,0x9, +0xaa,0x9,0x63,0x9,0x43,0x9,0x55,0x9,0x17,0x9,0x49,0x8, +0x5f,0x7,0xc9,0x6,0x7d,0x6,0x47,0x6,0xff,0x5,0x89,0x5, +0xed,0x4,0x71,0x4,0x1b,0x4,0x98,0x3,0x9,0x3,0xe8,0x2, +0xa,0x3,0x4,0x3,0xe2,0x2,0xf4,0x2,0x78,0x3,0x2f,0x4, +0xa5,0x4,0xf7,0x4,0x59,0x5,0xa2,0x5,0xca,0x5,0xc0,0x5, +0x41,0x5,0x88,0x4,0xf2,0x3,0x37,0x3,0x8,0x2,0xbb,0x0, +0xb1,0xff,0xd0,0xfe,0xc4,0xfd,0x62,0xfc,0xd7,0xfa,0x8e,0xf9, +0xa8,0xf8,0xd0,0xf7,0xbc,0xf6,0x7f,0xf5,0x57,0xf4,0x6f,0xf3, +0xa8,0xf2,0xc5,0xf1,0xf3,0xf0,0x94,0xf0,0x6e,0xf0,0xfe,0xef, +0x38,0xef,0x63,0xee,0xd0,0xed,0x9b,0xed,0x62,0xed,0xc9,0xec, +0xf6,0xeb,0x17,0xeb,0x2d,0xea,0x37,0xe9,0x42,0xe8,0x61,0xe7, +0x63,0xe6,0xd,0xe5,0x8b,0xe3,0x14,0xe2,0xd3,0xe0,0xfc,0xdf, +0x57,0xdf,0x88,0xde,0xb7,0xdd,0x43,0xdd,0x52,0xdd,0xc1,0xdd, +0x44,0xde,0xb1,0xde,0xc,0xdf,0x7f,0xdf,0x27,0xe0,0xd6,0xe0, +0x5e,0xe1,0xde,0xe1,0x89,0xe2,0x4f,0xe3,0xfc,0xe3,0x9c,0xe4, +0x81,0xe5,0xbf,0xe6,0x11,0xe8,0x31,0xe9,0x16,0xea,0xda,0xea, +0x8a,0xeb,0x23,0xec,0x9d,0xec,0xf3,0xec,0x1f,0xed,0x1e,0xed, +0xfd,0xec,0xef,0xec,0x3d,0xed,0xf8,0xed,0xca,0xee,0x77,0xef, +0x3f,0xf0,0x5c,0xf1,0xac,0xf2,0xf0,0xf3,0x4,0xf5,0xf8,0xf5, +0xf0,0xf6,0xe7,0xf7,0xc6,0xf8,0x83,0xf9,0x42,0xfa,0x3f,0xfb, +0x55,0xfc,0x3e,0xfd,0x1d,0xfe,0x28,0xff,0x83,0x0,0x12,0x2, +0x61,0x3,0x48,0x4,0xc,0x5,0xd1,0x5,0xa1,0x6,0x77,0x7, +0x13,0x8,0x60,0x8,0x76,0x8,0x4a,0x8,0xf5,0x7,0xc7,0x7, +0xc1,0x7,0x96,0x7,0x11,0x7,0x2c,0x6,0x10,0x5,0x23,0x4, +0x88,0x3,0x0,0x3,0x51,0x2,0x60,0x1,0x3e,0x0,0x42,0xff, +0x9c,0xfe,0x3d,0xfe,0xd,0xfe,0xe4,0xfd,0xaf,0xfd,0x9d,0xfd, +0xcb,0xfd,0x3e,0xfe,0xb,0xff,0x26,0x0,0x33,0x1,0xeb,0x1, +0x6e,0x2,0x4,0x3,0xbc,0x3,0x66,0x4,0xbe,0x4,0x9b,0x4, +0x22,0x4,0xae,0x3,0x6a,0x3,0x1e,0x3,0xa7,0x2,0x2b,0x2, +0xaa,0x1,0x6,0x1,0x61,0x0,0xe9,0xff,0xa3,0xff,0x5f,0xff, +0xd8,0xfe,0x12,0xfe,0x4d,0xfd,0xc0,0xfc,0x8c,0xfc,0xa0,0xfc, +0xd0,0xfc,0x23,0xfd,0xa9,0xfd,0x4f,0xfe,0x16,0xff,0x40,0x0, +0xe9,0x1,0xa8,0x3,0x4,0x5,0xf7,0x5,0xce,0x6,0xc9,0x7, +0xcf,0x8,0xaa,0x9,0x53,0xa,0xc0,0xa,0xf1,0xa,0x1a,0xb, +0x56,0xb,0xa7,0xb,0x18,0xc,0x72,0xc,0x7d,0xc,0x59,0xc, +0x47,0xc,0x5f,0xc,0x87,0xc,0x97,0xc,0x89,0xc,0x5b,0xc, +0x12,0xc,0xe7,0xb,0x10,0xc,0x67,0xc,0xa2,0xc,0xb0,0xc, +0x9a,0xc,0x6b,0xc,0x47,0xc,0x42,0xc,0x46,0xc,0x39,0xc, +0xdb,0xb,0x8,0xb,0x27,0xa,0xb0,0x9,0xa6,0x9,0xaf,0x9, +0x6a,0x9,0xd4,0x8,0x67,0x8,0x72,0x8,0xb0,0x8,0xd9,0x8, +0x4,0x9,0x3b,0x9,0x68,0x9,0x8e,0x9,0xa8,0x9,0xbc,0x9, +0xf4,0x9,0x3f,0xa,0x4f,0xa,0xe,0xa,0xab,0x9,0x5d,0x9, +0x25,0x9,0xd4,0x8,0x30,0x8,0x1e,0x7,0xe3,0x5,0xcd,0x4, +0xc9,0x3,0xba,0x2,0x95,0x1,0x3d,0x0,0xdd,0xfe,0xb9,0xfd, +0xcb,0xfc,0x14,0xfc,0xa5,0xfb,0x5f,0xfb,0x18,0xfb,0xcc,0xfa, +0xaa,0xfa,0xf4,0xfa,0x9d,0xfb,0x52,0xfc,0xeb,0xfc,0x68,0xfd, +0xc7,0xfd,0x34,0xfe,0xdb,0xfe,0x90,0xff,0x2b,0x0,0xb8,0x0, +0xe,0x1,0xc,0x1,0xf9,0x0,0x1c,0x1,0x70,0x1,0xa4,0x1, +0x5f,0x1,0xd1,0x0,0x50,0x0,0xde,0xff,0x7e,0xff,0x34,0xff, +0xca,0xfe,0x3c,0xfe,0xc6,0xfd,0x7e,0xfd,0x6d,0xfd,0xa2,0xfd, +0xfd,0xfd,0x4f,0xfe,0x9a,0xfe,0x11,0xff,0xd6,0xff,0xbe,0x0, +0x82,0x1,0x22,0x2,0xb4,0x2,0x16,0x3,0x3e,0x3,0x59,0x3, +0x98,0x3,0xf,0x4,0x74,0x4,0x73,0x4,0x3e,0x4,0x38,0x4, +0x8d,0x4,0x34,0x5,0xd2,0x5,0x16,0x6,0x30,0x6,0x72,0x6, +0xe5,0x6,0x53,0x7,0x91,0x7,0xb0,0x7,0xe2,0x7,0x2c,0x8, +0x6b,0x8,0x9c,0x8,0xdf,0x8,0x22,0x9,0x59,0x9,0x92,0x9, +0x94,0x9,0x4e,0x9,0x10,0x9,0xc7,0x8,0x17,0x8,0xf,0x7, +0xf4,0x5,0xd7,0x4,0xb9,0x3,0xaf,0x2,0xba,0x1,0xd3,0x0, +0x26,0x0,0xda,0xff,0xc1,0xff,0xc0,0xff,0xf0,0xff,0x57,0x0, +0xeb,0x0,0x8e,0x1,0x20,0x2,0xb4,0x2,0x55,0x3,0xdd,0x3, +0x44,0x4,0xa2,0x4,0xfd,0x4,0x77,0x5,0xf1,0x5,0xe,0x6, +0xea,0x5,0xe0,0x5,0xcc,0x5,0x7d,0x5,0xf6,0x4,0x38,0x4, +0x61,0x3,0x7b,0x2,0x5e,0x1,0x2a,0x0,0x11,0xff,0x19,0xfe, +0x58,0xfd,0xc2,0xfc,0x49,0xfc,0x20,0xfc,0x4a,0xfc,0x95,0xfc, +0x1e,0xfd,0xfc,0xfd,0xee,0xfe,0xb0,0xff,0x57,0x0,0x36,0x1, +0x5d,0x2,0x77,0x3,0x25,0x4,0x75,0x4,0xe7,0x4,0xbe,0x5, +0x90,0x6,0xe4,0x6,0xd6,0x6,0xf,0x7,0xd9,0x7,0x86,0x8, +0x63,0x8,0xa7,0x7,0x15,0x7,0x29,0x7,0x72,0x7,0xed,0x6, +0xa1,0x5,0xaa,0x4,0x71,0x4,0x60,0x4,0xfb,0x3,0x64,0x3, +0x37,0x3,0xcd,0x3,0x89,0x4,0xab,0x4,0x7f,0x4,0xc3,0x4, +0x8e,0x5,0x40,0x6,0x35,0x6,0xae,0x5,0x8e,0x5,0xe3,0x5, +0xe1,0x5,0x4b,0x5,0xc6,0x4,0xdd,0x4,0x60,0x5,0xa0,0x5, +0x34,0x5,0xc2,0x4,0x48,0x5,0x5e,0x6,0x9b,0x6,0xc5,0x5, +0xf1,0x4,0x14,0x5,0xf4,0x5,0x19,0x6,0xd4,0x4,0x9d,0x3, +0xbd,0x3,0x89,0x4,0xbb,0x4,0xdd,0x3,0xe4,0x2,0x2f,0x3, +0x32,0x4,0xf8,0x3,0x4e,0x2,0xe7,0x0,0xaa,0x0,0xdb,0x0, +0x20,0x0,0xfe,0xfd,0xf1,0xfb,0x9e,0xfb,0x27,0xfc,0xba,0xfb, +0x6b,0xfa,0x8e,0xf9,0xea,0xf9,0xf4,0xfa,0x2d,0xfb,0x59,0xfa, +0x25,0xfa,0x65,0xfb,0xd7,0xfc,0x4f,0xfd,0xfe,0xfc,0x16,0xfd, +0xb5,0xfe,0x15,0x1,0x3e,0x2,0x40,0x2,0xdc,0x2,0x81,0x4, +0x47,0x6,0x39,0x7,0x15,0x7,0xe2,0x6,0x80,0x7,0xff,0x7, +0x52,0x7,0xf8,0x5,0xf9,0x4,0xb8,0x4,0x95,0x4,0x73,0x3, +0x70,0x1,0x21,0x0,0x31,0x0,0x7c,0x0,0x9,0x0,0x1a,0xff, +0x66,0xfe,0x74,0xfe,0x3,0xff,0x50,0xff,0x6f,0xff,0x1b,0x0, +0x41,0x1,0x24,0x2,0x80,0x2,0xe0,0x2,0xf8,0x3,0xae,0x5, +0xfe,0x6,0x44,0x7,0x26,0x7,0x88,0x7,0x6c,0x8,0x4b,0x9, +0xa4,0x9,0x5d,0x9,0xf8,0x8,0xd4,0x8,0xc1,0x8,0x9d,0x8, +0x67,0x8,0x22,0x8,0xda,0x7,0x74,0x7,0xe8,0x6,0x95,0x6, +0xc0,0x6,0x31,0x7,0x7b,0x7,0x75,0x7,0x4f,0x7,0x5c,0x7, +0xbd,0x7,0x2f,0x8,0x55,0x8,0x18,0x8,0x8b,0x7,0xd5,0x6, +0x31,0x6,0xa3,0x5,0x1e,0x5,0x98,0x4,0xd9,0x3,0xd3,0x2, +0xd7,0x1,0x2a,0x1,0xb7,0x0,0x3e,0x0,0xa2,0xff,0xe9,0xfe, +0x2,0xfe,0xfd,0xfc,0x1b,0xfc,0x6f,0xfb,0xcf,0xfa,0x19,0xfa, +0x42,0xf9,0x5c,0xf8,0xa5,0xf7,0x42,0xf7,0xfd,0xf6,0xa9,0xf6, +0x3c,0xf6,0x8b,0xf5,0x96,0xf4,0x7e,0xf3,0x37,0xf2,0xd0,0xf0, +0x4f,0xef,0x78,0xed,0x43,0xeb,0xf3,0xe8,0xc3,0xe6,0xeb,0xe4, +0x6e,0xe3,0x1b,0xe2,0xca,0xe0,0x8b,0xdf,0x98,0xde,0xf,0xde, +0xe3,0xdd,0xf1,0xdd,0xeb,0xdd,0xc5,0xdd,0xbb,0xdd,0xca,0xdd, +0xef,0xdd,0x5d,0xde,0xfc,0xde,0x98,0xdf,0x23,0xe0,0x99,0xe0, +0x2f,0xe1,0x32,0xe2,0x82,0xe3,0xa5,0xe4,0x48,0xe5,0x7a,0xe5, +0x9e,0xe5,0xb,0xe6,0x92,0xe6,0xb8,0xe6,0x5f,0xe6,0xdc,0xe5, +0x86,0xe5,0x6c,0xe5,0x7a,0xe5,0xbe,0xe5,0x40,0xe6,0xde,0xe6, +0x90,0xe7,0x52,0xe8,0x1b,0xe9,0x1e,0xea,0x6f,0xeb,0xc9,0xec, +0xe4,0xed,0xa0,0xee,0x40,0xef,0x36,0xf0,0x90,0xf1,0x8,0xf3, +0x60,0xf4,0x8a,0xf5,0xc5,0xf6,0x50,0xf8,0x15,0xfa,0xce,0xfb, +0x5b,0xfd,0xcb,0xfe,0xb,0x0,0xee,0x0,0x86,0x1,0xff,0x1, +0x7c,0x2,0xf0,0x2,0x15,0x3,0xef,0x2,0xe1,0x2,0xb,0x3, +0x5f,0x3,0xbf,0x3,0x5,0x4,0x44,0x4,0x97,0x4,0xd8,0x4, +0xe2,0x4,0xb8,0x4,0x77,0x4,0x37,0x4,0xde,0x3,0x4d,0x3, +0xa3,0x2,0x1d,0x2,0xdc,0x1,0xcf,0x1,0xd6,0x1,0xef,0x1, +0x31,0x2,0x97,0x2,0x4,0x3,0x70,0x3,0xd6,0x3,0x34,0x4, +0x8b,0x4,0xb7,0x4,0xa8,0x4,0x88,0x4,0x66,0x4,0x34,0x4, +0xf,0x4,0x13,0x4,0x37,0x4,0x57,0x4,0x53,0x4,0x32,0x4, +0x6,0x4,0xe7,0x3,0xd0,0x3,0x84,0x3,0xf3,0x2,0x43,0x2, +0x70,0x1,0x8b,0x0,0xd5,0xff,0x67,0xff,0x16,0xff,0xbd,0xfe, +0x76,0xfe,0x7a,0xfe,0xdc,0xfe,0x84,0xff,0x39,0x0,0xea,0x0, +0xb6,0x1,0x6b,0x2,0xe6,0x2,0x5f,0x3,0xe8,0x3,0x7b,0x4, +0xc,0x5,0x4c,0x5,0x40,0x5,0x5f,0x5,0xd5,0x5,0x7f,0x6, +0x28,0x7,0x90,0x7,0xbe,0x7,0xe1,0x7,0xfe,0x7,0x24,0x8, +0x58,0x8,0x55,0x8,0xf3,0x7,0x64,0x7,0xd5,0x6,0x6c,0x6, +0x57,0x6,0x91,0x6,0xe5,0x6,0x29,0x7,0x66,0x7,0xd2,0x7, +0x82,0x8,0x5c,0x9,0x4b,0xa,0x18,0xb,0x7f,0xb,0x8e,0xb, +0x83,0xb,0x8b,0xb,0xae,0xb,0xd2,0xb,0xda,0xb,0xaa,0xb, +0x45,0xb,0xfa,0xa,0x13,0xb,0x7b,0xb,0xd4,0xb,0xd7,0xb, +0x95,0xb,0x3b,0xb,0xf7,0xa,0xdd,0xa,0xc4,0xa,0x90,0xa, +0x43,0xa,0xae,0x9,0xea,0x8,0x62,0x8,0x43,0x8,0x74,0x8, +0x9f,0x8,0x61,0x8,0xe3,0x7,0x82,0x7,0x4e,0x7,0x38,0x7, +0x16,0x7,0xbb,0x6,0x25,0x6,0x3e,0x5,0xa,0x4,0x8,0x3, +0x8a,0x2,0x4a,0x2,0xe9,0x1,0x43,0x1,0x5b,0x0,0x88,0xff, +0x5a,0xff,0xd3,0xff,0x3b,0x0,0x14,0x0,0x96,0xff,0x2b,0xff, +0xa,0xff,0x47,0xff,0xa7,0xff,0xbc,0xff,0x76,0xff,0x1e,0xff, +0xe5,0xfe,0xd5,0xfe,0x3,0xff,0x6b,0xff,0xbe,0xff,0x8c,0xff, +0xf0,0xfe,0x7b,0xfe,0x6c,0xfe,0x9a,0xfe,0xb2,0xfe,0x6f,0xfe, +0xd1,0xfd,0x15,0xfd,0x97,0xfc,0x8d,0xfc,0xbd,0xfc,0xe3,0xfc, +0xeb,0xfc,0xaf,0xfc,0x60,0xfc,0x78,0xfc,0xd,0xfd,0xbe,0xfd, +0x34,0xfe,0x60,0xfe,0x6b,0xfe,0x8c,0xfe,0xec,0xfe,0x7c,0xff, +0xef,0xff,0x10,0x0,0x4,0x0,0xc,0x0,0x51,0x0,0xb7,0x0, +0x3,0x1,0x27,0x1,0x49,0x1,0x7b,0x1,0xad,0x1,0xdd,0x1, +0xa,0x2,0x2f,0x2,0x5e,0x2,0x9c,0x2,0xc2,0x2,0xc8,0x2, +0xe0,0x2,0x2e,0x3,0x99,0x3,0xe9,0x3,0x1f,0x4,0x5c,0x4, +0x91,0x4,0xc1,0x4,0x6,0x5,0x31,0x5,0x26,0x5,0x26,0x5, +0x46,0x5,0x48,0x5,0x25,0x5,0x2,0x5,0xe4,0x4,0xd5,0x4, +0xe6,0x4,0xfb,0x4,0xe3,0x4,0xa4,0x4,0x73,0x4,0x62,0x4, +0x42,0x4,0xfa,0x3,0xa3,0x3,0x57,0x3,0x1f,0x3,0xf2,0x2, +0xc9,0x2,0xb2,0x2,0x9f,0x2,0x9e,0x2,0xd6,0x2,0x6,0x3, +0xb,0x3,0x30,0x3,0x79,0x3,0xc3,0x3,0x1f,0x4,0x4f,0x4, +0x1e,0x4,0xec,0x3,0x17,0x4,0x6a,0x4,0x85,0x4,0x64,0x4, +0x47,0x4,0x43,0x4,0x2b,0x4,0xfc,0x3,0xd4,0x3,0x9d,0x3, +0x4c,0x3,0x12,0x3,0xd5,0x2,0x5c,0x2,0x1,0x2,0x16,0x2, +0x4b,0x2,0x6f,0x2,0xa9,0x2,0xfb,0x2,0x64,0x3,0x4,0x4, +0xbc,0x4,0x36,0x5,0x4f,0x5,0x4b,0x5,0x77,0x5,0xbf,0x5, +0xd8,0x5,0xb8,0x5,0x8c,0x5,0x6a,0x5,0x3e,0x5,0x3,0x5, +0xfa,0x4,0x3a,0x5,0x6c,0x5,0x59,0x5,0x10,0x5,0xb0,0x4, +0x9a,0x4,0xcb,0x4,0xa7,0x4,0x2b,0x4,0xe1,0x3,0xe2,0x3, +0x2,0x4,0xe8,0x3,0x5c,0x3,0xe,0x3,0x7a,0x3,0xf8,0x3, +0xb,0x4,0xec,0x3,0xdd,0x3,0xfa,0x3,0x27,0x4,0x32,0x4, +0x33,0x4,0x72,0x4,0xf8,0x4,0x6b,0x5,0x71,0x5,0x4a,0x5, +0x94,0x5,0x60,0x6,0xfa,0x6,0xe7,0x6,0x84,0x6,0x55,0x6, +0x69,0x6,0x9a,0x6,0xa0,0x6,0x42,0x6,0xc9,0x5,0xb2,0x5, +0xe2,0x5,0xe6,0x5,0xb3,0x5,0x89,0x5,0x7e,0x5,0x5a,0x5, +0xcc,0x4,0xe5,0x3,0x43,0x3,0x2b,0x3,0xd,0x3,0x63,0x2, +0x66,0x1,0xa7,0x0,0x96,0x0,0x28,0x1,0x8b,0x1,0x4c,0x1, +0x1f,0x1,0x6c,0x1,0xb9,0x1,0xdb,0x1,0xf4,0x1,0xe,0x2, +0x50,0x2,0x79,0x2,0x45,0x2,0x36,0x2,0x80,0x2,0xc6,0x2, +0xf6,0x2,0xf8,0x2,0xba,0x2,0xb0,0x2,0xe9,0x2,0xc6,0x2, +0x23,0x2,0x6f,0x1,0xdf,0x0,0x6d,0x0,0x7,0x0,0x9e,0xff, +0x64,0xff,0x5f,0xff,0x2b,0xff,0xbd,0xfe,0x7a,0xfe,0x86,0xfe, +0xe3,0xfe,0x7a,0xff,0xb5,0xff,0x40,0xff,0xd1,0xfe,0x26,0xff, +0xd,0x0,0xff,0x0,0xbf,0x1,0x4a,0x2,0xe7,0x2,0xf1,0x3, +0x42,0x5,0x86,0x6,0xa1,0x7,0x7d,0x8,0x27,0x9,0xb3,0x9, +0x3,0xa,0x5a,0xa,0x30,0xb,0x5,0xc,0xfe,0xb,0x5c,0xb, +0xdb,0xa,0xb8,0xa,0xe7,0xa,0xea,0xa,0xfa,0x9,0x53,0x8, +0xce,0x6,0x87,0x5,0x65,0x4,0x75,0x3,0x89,0x2,0xa0,0x1, +0xcb,0x0,0xdc,0xff,0x11,0xff,0xfd,0xfe,0x80,0xff,0xf7,0xff, +0xee,0xff,0x62,0xff,0xe4,0xfe,0x8,0xff,0xa3,0xff,0x1e,0x0, +0x47,0x0,0x5f,0x0,0xca,0x0,0xcf,0x1,0x32,0x3,0x6c,0x4, +0x70,0x5,0x78,0x6,0x5d,0x7,0xc3,0x7,0xb0,0x7,0x71,0x7, +0x27,0x7,0xa5,0x6,0x8e,0x5,0xdc,0x3,0x2c,0x2,0xe8,0x0, +0xd5,0xff,0xc1,0xfe,0x84,0xfd,0xfe,0xfb,0x8b,0xfa,0x40,0xf9, +0x9d,0xf7,0xa5,0xf5,0xbe,0xf3,0xe8,0xf1,0x2,0xf0,0xdf,0xed, +0x98,0xeb,0xe1,0xe9,0x0,0xe9,0x7b,0xe8,0x1b,0xe8,0xfe,0xe7, +0x21,0xe8,0xac,0xe8,0x9b,0xe9,0x5e,0xea,0xda,0xea,0x78,0xeb, +0x9,0xec,0x19,0xec,0xcc,0xeb,0x7c,0xeb,0x6d,0xeb,0x93,0xeb, +0x67,0xeb,0xba,0xea,0xc,0xea,0xb2,0xe9,0x82,0xe9,0x2f,0xe9, +0x6f,0xe8,0x52,0xe7,0x46,0xe6,0x55,0xe5,0x1a,0xe4,0x97,0xe2, +0x20,0xe1,0xf3,0xdf,0x28,0xdf,0x75,0xde,0xa6,0xdd,0x4f,0xdd, +0xc9,0xdd,0x96,0xde,0x5b,0xdf,0x32,0xe0,0x48,0xe1,0xd1,0xe2, +0xa3,0xe4,0x3b,0xe6,0x75,0xe7,0xb3,0xe8,0x36,0xea,0xcf,0xeb, +0x3f,0xed,0x7d,0xee,0xae,0xef,0x2,0xf1,0x6f,0xf2,0xbb,0xf3, +0xea,0xf4,0x1e,0xf6,0x56,0xf7,0x7b,0xf8,0x6c,0xf9,0x3f,0xfa, +0x2d,0xfb,0xc,0xfc,0x88,0xfc,0xc0,0xfc,0x12,0xfd,0x97,0xfd, +0x30,0xfe,0xb1,0xfe,0xee,0xfe,0x2,0xff,0x41,0xff,0xae,0xff, +0x8,0x0,0x37,0x0,0x45,0x0,0x40,0x0,0x9,0x0,0x71,0xff, +0xc4,0xfe,0x6b,0xfe,0x30,0xfe,0xc5,0xfd,0x3b,0xfd,0xb6,0xfc, +0x6e,0xfc,0xa3,0xfc,0x28,0xfd,0xaa,0xfd,0x36,0xfe,0xe4,0xfe, +0x8d,0xff,0x31,0x0,0xf5,0x0,0xd6,0x1,0xb2,0x2,0x41,0x3, +0x6a,0x3,0x91,0x3,0xe9,0x3,0x2e,0x4,0x3d,0x4,0x2f,0x4, +0x15,0x4,0xeb,0x3,0x95,0x3,0x14,0x3,0x8d,0x2,0x12,0x2, +0x85,0x1,0xa7,0x0,0x64,0xff,0x19,0xfe,0x2e,0xfd,0x84,0xfc, +0xb1,0xfb,0xaf,0xfa,0xcb,0xf9,0x40,0xf9,0x23,0xf9,0x44,0xf9, +0x54,0xf9,0x80,0xf9,0x21,0xfa,0xfc,0xfa,0xab,0xfb,0x32,0xfc, +0xe8,0xfc,0x2,0xfe,0x47,0xff,0x59,0x0,0x24,0x1,0xe6,0x1, +0xe8,0x2,0x25,0x4,0x5b,0x5,0x44,0x6,0xd7,0x6,0x6f,0x7, +0x2c,0x8,0xa0,0x8,0xa7,0x8,0x8b,0x8,0x77,0x8,0x6c,0x8, +0x36,0x8,0xa6,0x7,0x25,0x7,0xe,0x7,0x17,0x7,0xf9,0x6, +0xc8,0x6,0xb0,0x6,0xe7,0x6,0x5c,0x7,0x98,0x7,0x8d,0x7, +0xa2,0x7,0xe7,0x7,0x22,0x8,0x45,0x8,0x68,0x8,0xb9,0x8, +0x41,0x9,0xbd,0x9,0xfc,0x9,0x2a,0xa,0xa6,0xa,0x8a,0xb, +0x76,0xc,0xb,0xd,0x47,0xd,0x62,0xd,0xa8,0xd,0xb,0xe, +0x3f,0xe,0x40,0xe,0x26,0xe,0xfa,0xd,0xd2,0xd,0xa5,0xd, +0x7a,0xd,0x75,0xd,0x6e,0xd,0x31,0xd,0xd1,0xc,0x6d,0xc, +0x5,0xc,0x87,0xb,0xf3,0xa,0x3e,0xa,0x39,0x9,0x6,0x8, +0x0,0x7,0x20,0x6,0x33,0x5,0x40,0x4,0x53,0x3,0x77,0x2, +0xc8,0x1,0x60,0x1,0x28,0x1,0xe1,0x0,0x81,0x0,0x2e,0x0, +0xf0,0xff,0xc1,0xff,0xad,0xff,0xa1,0xff,0x79,0xff,0x39,0xff, +0x2,0xff,0xee,0xfe,0x11,0xff,0x69,0xff,0xbe,0xff,0xe6,0xff, +0xf2,0xff,0x10,0x0,0x3d,0x0,0x59,0x0,0x5c,0x0,0x2d,0x0, +0x9e,0xff,0xc8,0xfe,0xf5,0xfd,0x4d,0xfd,0xb7,0xfc,0x6,0xfc, +0x51,0xfb,0xc1,0xfa,0x57,0xfa,0x2f,0xfa,0x49,0xfa,0x76,0xfa, +0xb3,0xfa,0xf6,0xfa,0x29,0xfb,0x74,0xfb,0xd7,0xfb,0x2a,0xfc, +0x71,0xfc,0xa7,0xfc,0xe3,0xfc,0x5b,0xfd,0xf0,0xfd,0x84,0xfe, +0x32,0xff,0xf6,0xff,0xbc,0x0,0x6d,0x1,0xfa,0x1,0x77,0x2, +0xe3,0x2,0x22,0x3,0x29,0x3,0xed,0x2,0x81,0x2,0x24,0x2, +0xf0,0x1,0xc0,0x1,0x6e,0x1,0xa,0x1,0xc7,0x0,0xc9,0x0, +0xf8,0x0,0x15,0x1,0x15,0x1,0x12,0x1,0x3,0x1,0xdd,0x0, +0xc8,0x0,0xd9,0x0,0xdf,0x0,0xba,0x0,0x91,0x0,0x7e,0x0, +0x89,0x0,0xcb,0x0,0x3a,0x1,0xa8,0x1,0xfa,0x1,0x31,0x2, +0x6f,0x2,0xd5,0x2,0x44,0x3,0x99,0x3,0xdc,0x3,0x1d,0x4, +0x4b,0x4,0x4b,0x4,0x48,0x4,0x80,0x4,0xd3,0x4,0x12,0x5, +0x2c,0x5,0x11,0x5,0xde,0x4,0xb8,0x4,0x93,0x4,0x73,0x4, +0x50,0x4,0xf1,0x3,0x43,0x3,0x7f,0x2,0xe1,0x1,0x7a,0x1, +0x37,0x1,0xdb,0x0,0x43,0x0,0xb1,0xff,0x4e,0xff,0xef,0xfe, +0xac,0xfe,0xb8,0xfe,0xee,0xfe,0x1c,0xff,0x1c,0xff,0xf4,0xfe, +0xf,0xff,0xac,0xff,0x94,0x0,0x75,0x1,0xff,0x1,0x29,0x2, +0x5a,0x2,0xdb,0x2,0x80,0x3,0x4,0x4,0x3e,0x4,0xf,0x4, +0x9e,0x3,0x4c,0x3,0x3e,0x3,0x45,0x3,0x23,0x3,0xb5,0x2, +0xc,0x2,0x7f,0x1,0x45,0x1,0x31,0x1,0x1a,0x1,0xf9,0x0, +0x99,0x0,0xef,0xff,0x8b,0xff,0xc9,0xff,0x5e,0x0,0xf0,0x0, +0x52,0x1,0x7e,0x1,0xc3,0x1,0x7b,0x2,0xa7,0x3,0xd1,0x4, +0x8c,0x5,0xe4,0x5,0x28,0x6,0x96,0x6,0x22,0x7,0x74,0x7, +0x79,0x7,0x80,0x7,0x8d,0x7,0x87,0x7,0x79,0x7,0x71,0x7, +0x9d,0x7,0xe5,0x7,0xb9,0x7,0x10,0x7,0xa7,0x6,0xda,0x6, +0x25,0x7,0xf7,0x6,0x3c,0x6,0x54,0x5,0xf4,0x4,0x5b,0x5, +0xb8,0x5,0x67,0x5,0xd8,0x4,0x99,0x4,0xa1,0x4,0x95,0x4, +0x5b,0x4,0x60,0x4,0xb8,0x4,0xc7,0x4,0x6e,0x4,0x1c,0x4, +0x1d,0x4,0xac,0x4,0x70,0x5,0x6c,0x5,0xb3,0x4,0x6a,0x4, +0xd3,0x4,0x2f,0x5,0xc,0x5,0x8c,0x4,0x22,0x4,0x12,0x4, +0x14,0x4,0xda,0x3,0x88,0x3,0x6c,0x3,0xa2,0x3,0xdd,0x3, +0x91,0x3,0xbd,0x2,0x39,0x2,0x71,0x2,0x70,0x2,0x75,0x1, +0x2e,0x0,0x5d,0xff,0x1a,0xff,0x16,0xff,0x9b,0xfe,0xb7,0xfd, +0x72,0xfd,0xe5,0xfd,0x49,0xfe,0x57,0xfe,0x44,0xfe,0x88,0xfe, +0x49,0xff,0xca,0xff,0xac,0xff,0xa4,0xff,0x43,0x0,0x44,0x1, +0xb,0x2,0x3c,0x2,0x36,0x2,0xbf,0x2,0xd6,0x3,0x8e,0x4, +0x91,0x4,0x73,0x4,0x8d,0x4,0xcf,0x4,0xfd,0x4,0xc9,0x4, +0x8b,0x4,0xd5,0x4,0x48,0x5,0x5f,0x5,0x66,0x5,0xb9,0x5, +0x5d,0x6,0x1d,0x7,0x68,0x7,0x1a,0x7,0xf1,0x6,0x55,0x7, +0xde,0x7,0x31,0x8,0x26,0x8,0xca,0x7,0x93,0x7,0xbd,0x7, +0xf7,0x7,0x29,0x8,0x6d,0x8,0x85,0x8,0x29,0x8,0x80,0x7, +0xe9,0x6,0xa9,0x6,0xac,0x6,0x8b,0x6,0x8,0x6,0x5f,0x5, +0xed,0x4,0xe9,0x4,0x44,0x5,0x94,0x5,0xb1,0x5,0xde,0x5, +0x1c,0x6,0x56,0x6,0xa1,0x6,0xe3,0x6,0xff,0x6,0xf6,0x6, +0xac,0x6,0x37,0x6,0xe8,0x5,0xd8,0x5,0xd0,0x5,0x6f,0x5, +0x8a,0x4,0x6d,0x3,0x8c,0x2,0xea,0x1,0x23,0x1,0x2,0x0, +0xb3,0xfe,0x53,0xfd,0xe9,0xfb,0x9d,0xfa,0x9c,0xf9,0x1,0xf9, +0xb9,0xf8,0x83,0xf8,0x31,0xf8,0xd6,0xf7,0xb4,0xf7,0xf1,0xf7, +0x55,0xf8,0x64,0xf8,0xda,0xf7,0xf9,0xf6,0x1f,0xf6,0x37,0xf5, +0x11,0xf4,0xc2,0xf2,0x4d,0xf1,0x9b,0xef,0xc2,0xed,0xfd,0xeb, +0x6d,0xea,0xff,0xe8,0x97,0xe7,0x24,0xe6,0x9d,0xe4,0x33,0xe3, +0x23,0xe2,0x5d,0xe1,0xbe,0xe0,0x2e,0xe0,0x99,0xdf,0x13,0xdf, +0xcb,0xde,0xef,0xde,0x77,0xdf,0xb,0xe0,0x7f,0xe0,0x1,0xe1, +0xb0,0xe1,0x8b,0xe2,0x8e,0xe3,0xa3,0xe4,0xa9,0xe5,0x78,0xe6, +0xef,0xe6,0x33,0xe7,0x91,0xe7,0x1,0xe8,0x3f,0xe8,0x2e,0xe8, +0xd1,0xe7,0x53,0xe7,0x13,0xe7,0x34,0xe7,0x76,0xe7,0x99,0xe7, +0xa9,0xe7,0xe5,0xe7,0x70,0xe8,0x41,0xe9,0x46,0xea,0x48,0xeb, +0x20,0xec,0x0,0xed,0xf9,0xed,0xec,0xee,0x5,0xf0,0x6c,0xf1, +0xe3,0xf2,0x35,0xf4,0x80,0xf5,0xf5,0xf6,0x94,0xf8,0x3e,0xfa, +0xd6,0xfb,0x42,0xfd,0x74,0xfe,0x6d,0xff,0x30,0x0,0xb1,0x0, +0x5,0x1,0x74,0x1,0x18,0x2,0xa5,0x2,0xee,0x2,0x37,0x3, +0xd6,0x3,0xdb,0x4,0xfa,0x5,0xe0,0x6,0x78,0x7,0xe1,0x7, +0x35,0x8,0x46,0x8,0xe3,0x7,0x50,0x7,0xdb,0x6,0x62,0x6, +0xa8,0x5,0x9c,0x4,0x85,0x3,0xd2,0x2,0x82,0x2,0x46,0x2, +0xe0,0x1,0x3a,0x1,0x8a,0x0,0x4,0x0,0x86,0xff,0x5,0xff, +0x9d,0xfe,0x3b,0xfe,0xc8,0xfd,0x5a,0xfd,0x1e,0xfd,0x3f,0xfd, +0xce,0xfd,0x8b,0xfe,0x21,0xff,0x88,0xff,0xee,0xff,0x7c,0x0, +0x2c,0x1,0xa0,0x1,0x8d,0x1,0x37,0x1,0xf1,0x0,0xb1,0x0, +0x60,0x0,0xe5,0xff,0x46,0xff,0xd3,0xfe,0x90,0xfe,0x1f,0xfe, +0x6a,0xfd,0xc6,0xfc,0x89,0xfc,0xa5,0xfc,0x9b,0xfc,0x1e,0xfc, +0xa0,0xfb,0xad,0xfb,0x3b,0xfc,0xee,0xfc,0x86,0xfd,0xf,0xfe, +0xdf,0xfe,0xf,0x0,0x45,0x1,0x3b,0x2,0x1b,0x3,0x37,0x4, +0x73,0x5,0x6a,0x6,0x11,0x7,0x9c,0x7,0x3d,0x8,0x2,0x9, +0x9a,0x9,0xcd,0x9,0xf3,0x9,0x57,0xa,0xd2,0xa,0x12,0xb, +0xef,0xa,0xac,0xa,0xa1,0xa,0xc6,0xa,0xe4,0xa,0xe8,0xa, +0xf4,0xa,0x43,0xb,0xbf,0xb,0x13,0xc,0x32,0xc,0x68,0xc, +0xe7,0xc,0x84,0xd,0xe8,0xd,0xe1,0xd,0x91,0xd,0x61,0xd, +0x67,0xd,0x3b,0xd,0xbe,0xc,0x4a,0xc,0xe,0xc,0xf0,0xb, +0xb7,0xb,0x33,0xb,0xa7,0xa,0x6c,0xa,0x4d,0xa,0xf2,0x9, +0x78,0x9,0xc,0x9,0xbe,0x8,0x90,0x8,0x5e,0x8,0x22,0x8, +0xa,0x8,0x22,0x8,0x62,0x8,0xc0,0x8,0x9,0x9,0x44,0x9, +0x92,0x9,0xb2,0x9,0x6e,0x9,0x1,0x9,0x92,0x8,0xf,0x8, +0x79,0x7,0xc6,0x6,0xd2,0x5,0xb0,0x4,0xba,0x3,0x4,0x3, +0x50,0x2,0x87,0x1,0xbf,0x0,0x2,0x0,0x49,0xff,0x88,0xfe, +0xd9,0xfd,0x68,0xfd,0x16,0xfd,0xb4,0xfc,0x61,0xfc,0x3c,0xfc, +0x44,0xfc,0x8f,0xfc,0x24,0xfd,0xba,0xfd,0x25,0xfe,0x90,0xfe, +0x8,0xff,0x7a,0xff,0xe6,0xff,0x3e,0x0,0x69,0x0,0x59,0x0, +0xf,0x0,0xd2,0xff,0xdd,0xff,0x10,0x0,0x2e,0x0,0x24,0x0, +0x11,0x0,0x13,0x0,0xe,0x0,0xfb,0xff,0x6,0x0,0x15,0x0, +0xfa,0xff,0xcb,0xff,0x98,0xff,0x75,0xff,0xa3,0xff,0x18,0x0, +0x75,0x0,0xb4,0x0,0x20,0x1,0xbb,0x1,0x54,0x2,0xd4,0x2, +0x3f,0x3,0x98,0x3,0xdc,0x3,0xf4,0x3,0xff,0x3,0x37,0x4, +0x89,0x4,0xc3,0x4,0xe9,0x4,0x8,0x5,0x3d,0x5,0xb0,0x5, +0x45,0x6,0xae,0x6,0xdf,0x6,0x8,0x7,0x3e,0x7,0x65,0x7, +0x69,0x7,0x55,0x7,0x42,0x7,0x44,0x7,0x59,0x7,0x62,0x7, +0x5a,0x7,0x5f,0x7,0x74,0x7,0x98,0x7,0xb6,0x7,0x94,0x7, +0x4a,0x7,0x4,0x7,0x9f,0x6,0x24,0x6,0xab,0x5,0x1b,0x5, +0xa2,0x4,0x5c,0x4,0x5,0x4,0x9c,0x3,0x5b,0x3,0x55,0x3, +0x76,0x3,0x8a,0x3,0x78,0x3,0x55,0x3,0x35,0x3,0x37,0x3, +0x49,0x3,0x39,0x3,0x1c,0x3,0xff,0x2,0xb9,0x2,0x6c,0x2, +0x59,0x2,0x87,0x2,0xb4,0x2,0x91,0x2,0x1c,0x2,0xaa,0x1, +0x84,0x1,0x9e,0x1,0x9b,0x1,0x3a,0x1,0xa3,0x0,0x1d,0x0, +0xdf,0xff,0xd4,0xff,0xb2,0xff,0x8d,0xff,0x94,0xff,0x8b,0xff, +0x6f,0xff,0x91,0xff,0xf3,0xff,0x61,0x0,0xb4,0x0,0xde,0x0, +0xfa,0x0,0x1b,0x1,0x4b,0x1,0x99,0x1,0xd3,0x1,0xd4,0x1, +0xd5,0x1,0xda,0x1,0xac,0x1,0x8b,0x1,0xc3,0x1,0xa,0x2, +0x8,0x2,0xdf,0x1,0xde,0x1,0x33,0x2,0xc6,0x2,0x33,0x3, +0x42,0x3,0x48,0x3,0x95,0x3,0x1e,0x4,0x96,0x4,0xa1,0x4, +0x6b,0x4,0x86,0x4,0xcd,0x4,0xc9,0x4,0xa5,0x4,0x9d,0x4, +0xa7,0x4,0xba,0x4,0x9e,0x4,0x4b,0x4,0x3e,0x4,0x9a,0x4, +0xd0,0x4,0x86,0x4,0x19,0x4,0x10,0x4,0x83,0x4,0xf2,0x4, +0xbe,0x4,0x29,0x4,0x2a,0x4,0xca,0x4,0x33,0x5,0x1a,0x5, +0xc8,0x4,0xc8,0x4,0x6b,0x5,0xd7,0x5,0x46,0x5,0x82,0x4, +0x68,0x4,0x9a,0x4,0x6b,0x4,0xa1,0x3,0xa2,0x2,0x23,0x2, +0x36,0x2,0x18,0x2,0x5c,0x1,0x90,0x0,0x59,0x0,0x87,0x0, +0x9d,0x0,0x66,0x0,0xfe,0xff,0xb6,0xff,0xb0,0xff,0xbe,0xff, +0xd8,0xff,0x10,0x0,0x3c,0x0,0x27,0x0,0xe6,0xff,0xea,0xff, +0x63,0x0,0xdd,0x0,0xda,0x0,0x69,0x0,0x1f,0x0,0x65,0x0, +0xcc,0x0,0xb6,0x0,0x5d,0x0,0x35,0x0,0x54,0x0,0x96,0x0, +0x89,0x0,0x17,0x0,0xf1,0xff,0x4d,0x0,0x81,0x0,0x23,0x0, +0x98,0xff,0x98,0xff,0x62,0x0,0x63,0x1,0xe0,0x1,0xdf,0x1, +0x2c,0x2,0x4f,0x3,0xd1,0x4,0xe9,0x5,0x4e,0x6,0x59,0x6, +0x90,0x6,0xd3,0x6,0x9e,0x6,0x34,0x6,0x11,0x6,0xf7,0x5, +0x91,0x5,0xe0,0x4,0x2c,0x4,0x15,0x4,0x9f,0x4,0xcb,0x4, +0x31,0x4,0x86,0x3,0x57,0x3,0x83,0x3,0xb2,0x3,0x98,0x3, +0x49,0x3,0x49,0x3,0xa7,0x3,0xf9,0x3,0x57,0x4,0x23,0x5, +0x3c,0x6,0x3d,0x7,0xc4,0x7,0xd4,0x7,0xc,0x8,0xa8,0x8, +0x10,0x9,0xe6,0x8,0x5a,0x8,0xae,0x7,0x17,0x7,0x9a,0x6, +0x1a,0x6,0xb3,0x5,0x82,0x5,0x57,0x5,0xd,0x5,0xc1,0x4, +0xa1,0x4,0xcd,0x4,0x12,0x5,0xea,0x4,0x5c,0x4,0x4,0x4, +0xe5,0x3,0xa3,0x3,0x4d,0x3,0xef,0x2,0x8e,0x2,0x5a,0x2, +0x12,0x2,0x60,0x1,0x8f,0x0,0xf1,0xff,0x74,0xff,0xc9,0xfe, +0x82,0xfd,0xbb,0xfb,0x16,0xfa,0xcb,0xf8,0x92,0xf7,0x33,0xf6, +0xb1,0xf4,0x46,0xf3,0x24,0xf2,0x1c,0xf1,0xf4,0xef,0xed,0xee, +0x6d,0xee,0x38,0xee,0xb0,0xed,0xba,0xec,0xb7,0xeb,0x1f,0xeb, +0x12,0xeb,0xfe,0xea,0x5b,0xea,0x7d,0xe9,0xe2,0xe8,0x8d,0xe8, +0x47,0xe8,0xcc,0xe7,0x1f,0xe7,0x7c,0xe6,0xcb,0xe5,0xe1,0xe4, +0xda,0xe3,0xde,0xe2,0xf9,0xe1,0x2e,0xe1,0x4e,0xe0,0x3c,0xdf, +0x3f,0xde,0xc0,0xdd,0xbd,0xdd,0xe9,0xdd,0x27,0xde,0x80,0xde, +0x4,0xdf,0xdd,0xdf,0x19,0xe1,0x9a,0xe2,0x23,0xe4,0x72,0xe5, +0x91,0xe6,0xb2,0xe7,0xc7,0xe8,0xd8,0xe9,0xed,0xea,0xaf,0xeb, +0x8,0xec,0x5e,0xec,0xd9,0xec,0x4e,0xed,0xa6,0xed,0xf3,0xed, +0x50,0xee,0xbc,0xee,0x20,0xef,0x77,0xef,0xc3,0xef,0x1b,0xf0, +0xac,0xf0,0x68,0xf1,0x6,0xf2,0x86,0xf2,0x49,0xf3,0x84,0xf4, +0xfa,0xf5,0x63,0xf7,0xca,0xf8,0x46,0xfa,0xc2,0xfb,0x18,0xfd, +0x26,0xfe,0xf8,0xfe,0xb0,0xff,0x2a,0x0,0x27,0x0,0xce,0xff, +0x74,0xff,0x3c,0xff,0xe,0xff,0xbe,0xfe,0x57,0xfe,0x2e,0xfe, +0x50,0xfe,0x78,0xfe,0x88,0xfe,0xa4,0xfe,0xf4,0xfe,0x5c,0xff, +0x72,0xff,0x1b,0xff,0xdf,0xfe,0x21,0xff,0x9e,0xff,0xee,0xff, +0xe8,0xff,0xc2,0xff,0xeb,0xff,0x77,0x0,0x2,0x1,0x3d,0x1, +0x37,0x1,0x15,0x1,0xd9,0x0,0x52,0x0,0x73,0xff,0x87,0xfe, +0xc0,0xfd,0xdd,0xfc,0xa0,0xfb,0x47,0xfa,0x3b,0xf9,0xaf,0xf8, +0x86,0xf8,0x67,0xf8,0x31,0xf8,0x31,0xf8,0xa0,0xf8,0x5f,0xf9, +0x4c,0xfa,0x47,0xfb,0x35,0xfc,0x20,0xfd,0xf,0xfe,0xf3,0xfe, +0xee,0xff,0x16,0x1,0x31,0x2,0xfd,0x2,0x74,0x3,0xcd,0x3, +0x50,0x4,0xf2,0x4,0x5b,0x5,0x59,0x5,0xff,0x4,0x88,0x4, +0x1a,0x4,0x9e,0x3,0xf6,0x2,0x29,0x2,0x5c,0x1,0xb6,0x0, +0x2e,0x0,0xa9,0xff,0x61,0xff,0x88,0xff,0xf7,0xff,0x84,0x0, +0x29,0x1,0xff,0x1,0x3b,0x3,0xc3,0x4,0x3c,0x6,0x6c,0x7, +0x4e,0x8,0x23,0x9,0x39,0xa,0x5a,0xb,0x15,0xc,0x74,0xc, +0xb1,0xc,0xe7,0xc,0x2c,0xd,0x77,0xd,0xb3,0xd,0xf2,0xd, +0x3f,0xe,0x68,0xe,0x58,0xe,0x3c,0xe,0x30,0xe,0x1b,0xe, +0xe5,0xd,0x89,0xd,0x19,0xd,0xb0,0xc,0x57,0xc,0xd,0xc, +0xd9,0xb,0xb2,0xb,0x9a,0xb,0x8f,0xb,0x79,0xb,0x61,0xb, +0x52,0xb,0x1a,0xb,0xac,0xa,0x2f,0xa,0xb2,0x9,0x38,0x9, +0xc3,0x8,0x44,0x8,0xba,0x7,0x39,0x7,0xd8,0x6,0xa1,0x6, +0x82,0x6,0x7a,0x6,0x9b,0x6,0xd4,0x6,0xf,0x7,0x41,0x7, +0x63,0x7,0x85,0x7,0xaa,0x7,0xc0,0x7,0xc6,0x7,0xaa,0x7, +0x57,0x7,0xdc,0x6,0x43,0x6,0x8f,0x5,0xd2,0x4,0x10,0x4, +0x3e,0x3,0x4d,0x2,0x4d,0x1,0x68,0x0,0x87,0xff,0x80,0xfe, +0x88,0xfd,0xc6,0xfc,0x5,0xfc,0x31,0xfb,0x65,0xfa,0xa3,0xf9, +0x4,0xf9,0xba,0xf8,0xb5,0xf8,0xc3,0xf8,0xf3,0xf8,0x91,0xf9, +0xbe,0xfa,0x32,0xfc,0x8b,0xfd,0xc3,0xfe,0x21,0x0,0xaf,0x1, +0x2d,0x3,0x53,0x4,0xe8,0x4,0x10,0x5,0x35,0x5,0x61,0x5, +0x47,0x5,0xdc,0x4,0x5c,0x4,0xff,0x3,0xc6,0x3,0x76,0x3, +0xfa,0x2,0x8b,0x2,0x47,0x2,0x2,0x2,0x8d,0x1,0xe3,0x0, +0x18,0x0,0x6c,0xff,0x2c,0xff,0x24,0xff,0x0,0xff,0xfb,0xfe, +0x62,0xff,0x23,0x0,0x36,0x1,0x8c,0x2,0xf4,0x3,0x51,0x5, +0x7a,0x6,0x62,0x7,0x3b,0x8,0xe,0x9,0xae,0x9,0xf3,0x9, +0xba,0x9,0x34,0x9,0xd8,0x8,0xc8,0x8,0xb8,0x8,0x6e,0x8, +0x1e,0x8,0x0,0x8,0xe4,0x7,0xb1,0x7,0x7d,0x7,0x46,0x7, +0x11,0x7,0xce,0x6,0x39,0x6,0x59,0x5,0x82,0x4,0xf5,0x3, +0xc1,0x3,0x8b,0x3,0xfb,0x2,0x5e,0x2,0x11,0x2,0xd,0x2, +0x3b,0x2,0x74,0x2,0x89,0x2,0x74,0x2,0x39,0x2,0xf3,0x1, +0xc6,0x1,0xa2,0x1,0x59,0x1,0xd2,0x0,0x1a,0x0,0x75,0xff, +0x38,0xff,0x5e,0xff,0x8f,0xff,0xa3,0xff,0xce,0xff,0x37,0x0, +0xc5,0x0,0x49,0x1,0xc9,0x1,0x7d,0x2,0x3f,0x3,0x89,0x3, +0x51,0x3,0xfa,0x2,0xcf,0x2,0x1f,0x3,0xa8,0x3,0x91,0x3, +0xe9,0x2,0x92,0x2,0xd6,0x2,0x62,0x3,0xc3,0x3,0xb7,0x3, +0x8d,0x3,0xa3,0x3,0xb6,0x3,0x69,0x3,0xdc,0x2,0x69,0x2, +0x28,0x2,0xda,0x1,0x43,0x1,0x9f,0x0,0x95,0x0,0x54,0x1, +0x40,0x2,0xdd,0x2,0x46,0x3,0xd3,0x3,0xda,0x4,0x38,0x6, +0x2e,0x7,0x64,0x7,0x4f,0x7,0x46,0x7,0x26,0x7,0xda,0x6, +0x87,0x6,0x3e,0x6,0xff,0x5,0xc4,0x5,0x7d,0x5,0x4f,0x5, +0x89,0x5,0x16,0x6,0x87,0x6,0x86,0x6,0x2a,0x6,0xf0,0x5, +0xfe,0x5,0xe4,0x5,0x79,0x5,0x0,0x5,0x82,0x4,0xf5,0x3, +0x8a,0x3,0x6c,0x3,0x94,0x3,0xce,0x3,0xe3,0x3,0xb4,0x3, +0x63,0x3,0x4b,0x3,0x64,0x3,0x23,0x3,0x5e,0x2,0x72,0x1, +0x94,0x0,0xd5,0xff,0x42,0xff,0xd0,0xfe,0x83,0xfe,0x7d,0xfe, +0x9f,0xfe,0xae,0xfe,0xeb,0xfe,0xd1,0xff,0x1d,0x1,0xff,0x1, +0x4b,0x2,0x63,0x2,0xa6,0x2,0x4b,0x3,0xfb,0x3,0x24,0x4, +0xda,0x3,0x8c,0x3,0x78,0x3,0x90,0x3,0x84,0x3,0x64,0x3, +0xa8,0x3,0x9,0x4,0xd4,0x3,0x2c,0x3,0x87,0x2,0xfe,0x1, +0xa5,0x1,0x57,0x1,0x77,0x0,0xe9,0xfe,0x8c,0xfd,0xe3,0xfc, +0x8d,0xfc,0x4e,0xfc,0x31,0xfc,0x34,0xfc,0x8f,0xfc,0x5d,0xfd, +0x68,0xfe,0xa8,0xff,0xa,0x1,0x47,0x2,0x58,0x3,0x49,0x4, +0x13,0x5,0xfa,0x5,0x15,0x7,0xf1,0x7,0x75,0x8,0x12,0x9, +0xd4,0x9,0x82,0xa,0x4b,0xb,0x4b,0xc,0x3c,0xd,0xe4,0xd, +0x1b,0xe,0xd8,0xd,0x66,0xd,0xfe,0xc,0x84,0xc,0xc3,0xb, +0x89,0xa,0xf8,0x8,0x8b,0x7,0x84,0x6,0xcd,0x5,0x54,0x5, +0xb,0x5,0xd7,0x4,0xae,0x4,0x9e,0x4,0xbd,0x4,0x16,0x5, +0x7a,0x5,0x94,0x5,0x52,0x5,0xfe,0x4,0xcf,0x4,0xbd,0x4, +0xce,0x4,0xd,0x5,0x73,0x5,0x19,0x6,0x0,0x7,0xd7,0x7, +0x8d,0x8,0x82,0x9,0xcb,0xa,0xdf,0xb,0x3e,0xc,0xf6,0xb, +0x71,0xb,0xfe,0xa,0x83,0xa,0xaa,0x9,0x47,0x8,0xaa,0x6, +0x67,0x5,0x9a,0x4,0xc7,0x3,0xb1,0x2,0xb6,0x1,0x12,0x1, +0x86,0x0,0xcd,0xff,0xcc,0xfe,0xa5,0xfd,0xa3,0xfc,0xaf,0xfb, +0x68,0xfa,0xe1,0xf8,0x7c,0xf7,0x7f,0xf6,0xe4,0xf5,0x59,0xf5, +0xc9,0xf4,0x78,0xf4,0x73,0xf4,0x81,0xf4,0x88,0xf4,0x92,0xf4, +0xa0,0xf4,0x8d,0xf4,0xf,0xf4,0xc,0xf3,0xbe,0xf1,0x8f,0xf0, +0xb0,0xef,0xc8,0xee,0x7f,0xed,0x12,0xec,0xe6,0xea,0xd,0xea, +0x57,0xe9,0x93,0xe8,0xd1,0xe7,0x4a,0xe7,0xe1,0xe6,0x15,0xe6, +0xcb,0xe4,0x89,0xe3,0xc0,0xe2,0x3f,0xe2,0x8f,0xe1,0x93,0xe0, +0xb1,0xdf,0x7c,0xdf,0xf1,0xdf,0x6a,0xe0,0xab,0xe0,0x38,0xe1, +0x4b,0xe2,0x86,0xe3,0x93,0xe4,0x6a,0xe5,0x43,0xe6,0x44,0xe7, +0x26,0xe8,0x8f,0xe8,0xb5,0xe8,0x1e,0xe9,0xff,0xe9,0x4,0xeb, +0xb5,0xeb,0x17,0xec,0xaa,0xec,0xb2,0xed,0xe8,0xee,0xe7,0xef, +0x91,0xf0,0x1c,0xf1,0xaa,0xf1,0x8,0xf2,0x9,0xf2,0xe0,0xf1, +0xdb,0xf1,0x1,0xf2,0x2c,0xf2,0x4d,0xf2,0x70,0xf2,0xcb,0xf2, +0xa0,0xf3,0xca,0xf4,0xda,0xf5,0xcf,0xf6,0xea,0xf7,0x23,0xf9, +0x4e,0xfa,0x4f,0xfb,0x1c,0xfc,0xd2,0xfc,0x84,0xfd,0x28,0xfe, +0xc0,0xfe,0x60,0xff,0x1b,0x0,0xde,0x0,0x83,0x1,0xb,0x2, +0x9f,0x2,0x51,0x3,0xff,0x3,0x5c,0x4,0x4f,0x4,0x1a,0x4, +0xe4,0x3,0x71,0x3,0xa5,0x2,0xce,0x1,0x13,0x1,0x4e,0x0, +0x7e,0xff,0xb6,0xfe,0x5,0xfe,0xa3,0xfd,0x8c,0xfd,0x5f,0xfd, +0x8,0xfd,0xd1,0xfc,0xe2,0xfc,0x21,0xfd,0x5f,0xfd,0x80,0xfd, +0x92,0xfd,0xba,0xfd,0x2,0xfe,0x55,0xfe,0xb3,0xfe,0x29,0xff, +0xae,0xff,0x1e,0x0,0x66,0x0,0xb9,0x0,0x40,0x1,0xce,0x1, +0x36,0x2,0x75,0x2,0x85,0x2,0x78,0x2,0x6b,0x2,0x48,0x2, +0xea,0x1,0x6d,0x1,0xf8,0x0,0x7b,0x0,0xea,0xff,0x72,0xff, +0x37,0xff,0x34,0xff,0x50,0xff,0x67,0xff,0x88,0xff,0xe2,0xff, +0x6f,0x0,0x2,0x1,0x75,0x1,0xbb,0x1,0xf7,0x1,0x50,0x2, +0xb2,0x2,0xf8,0x2,0x42,0x3,0xc3,0x3,0x71,0x4,0x28,0x5, +0xd1,0x5,0x78,0x6,0x5a,0x7,0x61,0x8,0x1d,0x9,0x6c,0x9, +0x85,0x9,0xab,0x9,0xed,0x9,0xe2,0x9,0x5d,0x9,0xdc,0x8, +0xbb,0x8,0xd1,0x8,0xe7,0x8,0x4,0x9,0x54,0x9,0xdf,0x9, +0x70,0xa,0xbc,0xa,0xc7,0xa,0xf2,0xa,0x4a,0xb,0x67,0xb, +0x27,0xb,0xaf,0xa,0x3f,0xa,0x34,0xa,0x6f,0xa,0x7e,0xa, +0x68,0xa,0x7e,0xa,0xe0,0xa,0x5a,0xb,0xa4,0xb,0xb4,0xb, +0xad,0xb,0x96,0xb,0x5e,0xb,0xf6,0xa,0x6f,0xa,0xf3,0x9, +0x97,0x9,0x48,0x9,0xe2,0x8,0x68,0x8,0x25,0x8,0x56,0x8, +0xbc,0x8,0xde,0x8,0xb2,0x8,0x8f,0x8,0x86,0x8,0x6a,0x8, +0x1d,0x8,0x9c,0x7,0xf8,0x6,0x4e,0x6,0xb1,0x5,0xf,0x5, +0x49,0x4,0x8d,0x3,0x1a,0x3,0xb3,0x2,0x26,0x2,0xb1,0x1, +0x6c,0x1,0x2c,0x1,0xdf,0x0,0x7b,0x0,0xf8,0xff,0x7e,0xff, +0x2e,0xff,0xe4,0xfe,0x75,0xfe,0xf2,0xfd,0x80,0xfd,0x35,0xfd, +0x11,0xfd,0x11,0xfd,0x3d,0xfd,0x74,0xfd,0xa3,0xfd,0xef,0xfd, +0x51,0xfe,0xb3,0xfe,0x13,0xff,0x3b,0xff,0x19,0xff,0xec,0xfe, +0xcc,0xfe,0xa1,0xfe,0x61,0xfe,0x6,0xfe,0xb0,0xfd,0x83,0xfd, +0x81,0xfd,0x8e,0xfd,0x9f,0xfd,0xcd,0xfd,0x16,0xfe,0x55,0xfe, +0x7b,0xfe,0x7a,0xfe,0x6f,0xfe,0x7d,0xfe,0x76,0xfe,0x43,0xfe, +0x13,0xfe,0x0,0xfe,0x5,0xfe,0x23,0xfe,0x67,0xfe,0xd7,0xfe, +0x56,0xff,0xd1,0xff,0x4a,0x0,0xaf,0x0,0xe,0x1,0x7d,0x1, +0xd4,0x1,0xf7,0x1,0x8,0x2,0x27,0x2,0x4e,0x2,0x7f,0x2, +0xc5,0x2,0xf,0x3,0x5a,0x3,0xd3,0x3,0x6a,0x4,0xc3,0x4, +0xd4,0x4,0xd0,0x4,0xc8,0x4,0xb4,0x4,0x82,0x4,0x1e,0x4, +0x97,0x3,0xe,0x3,0x9b,0x2,0x4c,0x2,0x0,0x2,0xa9,0x1, +0x7b,0x1,0x74,0x1,0x5d,0x1,0x4e,0x1,0x5d,0x1,0x67,0x1, +0x64,0x1,0x56,0x1,0x3d,0x1,0x33,0x1,0x5e,0x1,0xbf,0x1, +0x2b,0x2,0x67,0x2,0x8b,0x2,0xe6,0x2,0x85,0x3,0x2f,0x4, +0xc6,0x4,0x3f,0x5,0x7e,0x5,0x81,0x5,0x5b,0x5,0x7,0x5, +0xaa,0x4,0x88,0x4,0x70,0x4,0xdd,0x3,0xcf,0x2,0xd7,0x1, +0x56,0x1,0x2a,0x1,0xb,0x1,0xb9,0x0,0x26,0x0,0xb4,0xff, +0xac,0xff,0xcf,0xff,0xe1,0xff,0xf2,0xff,0x0,0x0,0x3,0x0, +0xf,0x0,0x2e,0x0,0x73,0x0,0xd6,0x0,0x27,0x1,0x55,0x1, +0x84,0x1,0xc8,0x1,0x36,0x2,0xd0,0x2,0x53,0x3,0x9a,0x3, +0xbe,0x3,0xc3,0x3,0xb1,0x3,0xc5,0x3,0x8,0x4,0x30,0x4, +0x12,0x4,0xb8,0x3,0x48,0x3,0x10,0x3,0x3d,0x3,0x95,0x3, +0xc4,0x3,0xbd,0x3,0xb2,0x3,0xcb,0x3,0xe7,0x3,0xe4,0x3, +0xe4,0x3,0xde,0x3,0xa7,0x3,0x4f,0x3,0xe6,0x2,0x77,0x2, +0x3d,0x2,0x51,0x2,0x76,0x2,0x57,0x2,0xfe,0x1,0xe2,0x1, +0x2d,0x2,0x93,0x2,0xd8,0x2,0xd4,0x2,0x85,0x2,0x46,0x2, +0x5b,0x2,0xa7,0x2,0xe4,0x2,0xf9,0x2,0x1,0x3,0x12,0x3, +0x3a,0x3,0x86,0x3,0xeb,0x3,0x61,0x4,0xcc,0x4,0xe9,0x4, +0xa5,0x4,0x32,0x4,0xed,0x3,0xfc,0x3,0x0,0x4,0xa9,0x3, +0x1f,0x3,0x97,0x2,0x26,0x2,0xfc,0x1,0x34,0x2,0x68,0x2, +0x2e,0x2,0xca,0x1,0xa1,0x1,0xa0,0x1,0xbe,0x1,0xfa,0x1, +0x3,0x2,0xb3,0x1,0x70,0x1,0x81,0x1,0xa2,0x1,0xa2,0x1, +0xc3,0x1,0xb,0x2,0x18,0x2,0xcd,0x1,0x8d,0x1,0x9f,0x1, +0xe2,0x1,0x22,0x2,0x35,0x2,0xdf,0x1,0x5a,0x1,0x39,0x1, +0x74,0x1,0x93,0x1,0x79,0x1,0x50,0x1,0x25,0x1,0xd9,0x0, +0x93,0x0,0x96,0x0,0xaf,0x0,0x9d,0x0,0x82,0x0,0x6e,0x0, +0x50,0x0,0x49,0x0,0x8f,0x0,0xf6,0x0,0x12,0x1,0xea,0x0, +0xcf,0x0,0xc2,0x0,0xc4,0x0,0xf9,0x0,0x39,0x1,0x41,0x1, +0x12,0x1,0x10,0x1,0x7f,0x1,0x22,0x2,0xc4,0x2,0x64,0x3, +0xe5,0x3,0x3d,0x4,0x8a,0x4,0xf6,0x4,0x97,0x5,0x32,0x6, +0x7f,0x6,0x66,0x6,0x22,0x6,0x24,0x6,0x84,0x6,0xea,0x6, +0x15,0x7,0x18,0x7,0x4d,0x7,0xcd,0x7,0x37,0x8,0x63,0x8, +0x96,0x8,0xf5,0x8,0x4e,0x9,0x45,0x9,0xdf,0x8,0x96,0x8, +0x96,0x8,0x87,0x8,0x1a,0x8,0x68,0x7,0xcd,0x6,0x97,0x6, +0xa1,0x6,0x5d,0x6,0xa3,0x5,0xf3,0x4,0x89,0x4,0x1f,0x4, +0x7f,0x3,0xb9,0x2,0xfd,0x1,0x31,0x1,0x9,0x0,0xbb,0xfe, +0xbe,0xfd,0x1d,0xfd,0xbc,0xfc,0x6f,0xfc,0xe5,0xfb,0x2a,0xfb, +0xd9,0xfa,0x3c,0xfb,0xca,0xfb,0xf3,0xfb,0xd0,0xfb,0x8d,0xfb, +0x2f,0xfb,0xb8,0xfa,0x10,0xfa,0x28,0xf9,0x10,0xf8,0xc8,0xf6, +0x3d,0xf5,0x5b,0xf3,0x5e,0xf1,0xca,0xef,0xab,0xee,0x6e,0xed, +0x91,0xeb,0x5c,0xe9,0x94,0xe7,0x61,0xe6,0x4f,0xe5,0x5,0xe4, +0x6a,0xe2,0xd6,0xe0,0xb9,0xdf,0xf5,0xde,0x59,0xde,0x2c,0xde, +0x9a,0xde,0x6f,0xdf,0x4b,0xe0,0x6,0xe1,0x9,0xe2,0xcc,0xe3, +0xe3,0xe5,0x70,0xe7,0x4a,0xe8,0xd8,0xe8,0x4f,0xe9,0xb6,0xe9, +0xe9,0xe9,0xa3,0xe9,0x14,0xe9,0xaf,0xe8,0x78,0xe8,0x3a,0xe8, +0xfa,0xe7,0xf8,0xe7,0x55,0xe8,0xc0,0xe8,0xd2,0xe8,0xb1,0xe8, +0xab,0xe8,0xaf,0xe8,0x9c,0xe8,0x7d,0xe8,0x55,0xe8,0x4c,0xe8, +0xaf,0xe8,0x79,0xe9,0x77,0xea,0xc6,0xeb,0xa1,0xed,0x2,0xf0, +0x95,0xf2,0xe1,0xf4,0xd1,0xf6,0xb3,0xf8,0x87,0xfa,0xfb,0xfb, +0xed,0xfc,0x78,0xfd,0xaa,0xfd,0xab,0xfd,0xb5,0xfd,0xc1,0xfd, +0xcc,0xfd,0x1a,0xfe,0xba,0xfe,0x5f,0xff,0xd8,0xff,0x3a,0x0, +0xc1,0x0,0x5d,0x1,0xa7,0x1,0x84,0x1,0x30,0x1,0xbf,0x0, +0x3f,0x0,0xe0,0xff,0xaa,0xff,0x82,0xff,0x6e,0xff,0x8e,0xff, +0xe2,0xff,0x53,0x0,0xdb,0x0,0x68,0x1,0xc2,0x1,0xb3,0x1, +0x45,0x1,0xb7,0x0,0x1c,0x0,0x52,0xff,0x62,0xfe,0x7a,0xfd, +0xa4,0xfc,0xdd,0xfb,0x41,0xfb,0xf1,0xfa,0x4,0xfb,0x71,0xfb, +0xff,0xfb,0x6e,0xfc,0xbb,0xfc,0xb,0xfd,0x6d,0xfd,0xba,0xfd, +0xc5,0xfd,0x9b,0xfd,0x67,0xfd,0x37,0xfd,0xe9,0xfc,0x80,0xfc, +0x58,0xfc,0x9b,0xfc,0x9,0xfd,0x64,0xfd,0x9a,0xfd,0xb7,0xfd, +0xea,0xfd,0x36,0xfe,0x5a,0xfe,0x26,0xfe,0xad,0xfd,0x29,0xfd, +0x94,0xfc,0xd7,0xfb,0x3e,0xfb,0x9,0xfb,0x15,0xfb,0x40,0xfb, +0x85,0xfb,0xed,0xfb,0x98,0xfc,0xa3,0xfd,0xfa,0xfe,0x59,0x0, +0x7e,0x1,0x67,0x2,0x48,0x3,0x41,0x4,0x2c,0x5,0xe0,0x5, +0x86,0x6,0x44,0x7,0xf3,0x7,0x82,0x8,0x7,0x9,0x9c,0x9, +0x50,0xa,0x16,0xb,0xb5,0xb,0xfc,0xb,0x15,0xc,0x53,0xc, +0x9f,0xc,0xab,0xc,0x58,0xc,0xc6,0xb,0x45,0xb,0x1a,0xb, +0x26,0xb,0x27,0xb,0x18,0xb,0xb,0xb,0x14,0xb,0x66,0xb, +0xf,0xc,0xc3,0xc,0x43,0xd,0x8b,0xd,0xaa,0xd,0xb9,0xd, +0xb6,0xd,0xa1,0xd,0x9c,0xd,0x90,0xd,0x54,0xd,0xc,0xd, +0xda,0xc,0xd7,0xc,0x35,0xd,0xbc,0xd,0xf1,0xd,0xbe,0xd, +0x8d,0xd,0x9a,0xd,0xa1,0xd,0x60,0xd,0xc7,0xc,0xd7,0xb, +0xd7,0xa,0xf,0xa,0x65,0x9,0xae,0x8,0xf1,0x7,0x50,0x7, +0xd0,0x6,0x3f,0x6,0x94,0x5,0x8,0x5,0xc5,0x4,0x8a,0x4, +0xeb,0x3,0xea,0x2,0xdf,0x1,0x0,0x1,0x7f,0x0,0x38,0x0, +0xa0,0xff,0xd8,0xfe,0x74,0xfe,0x7a,0xfe,0xbe,0xfe,0x26,0xff, +0x78,0xff,0xc3,0xff,0x3c,0x0,0xae,0x0,0xd1,0x0,0xd7,0x0, +0x8,0x1,0x43,0x1,0x67,0x1,0x65,0x1,0x43,0x1,0x40,0x1, +0x6e,0x1,0x8b,0x1,0x8f,0x1,0x8b,0x1,0x84,0x1,0x8d,0x1, +0x8a,0x1,0x3c,0x1,0xc5,0x0,0x6e,0x0,0x2b,0x0,0xc0,0xff, +0x3e,0xff,0xdc,0xfe,0xb1,0xfe,0x9f,0xfe,0x61,0xfe,0x7,0xfe, +0x7,0xfe,0x78,0xfe,0x15,0xff,0xad,0xff,0xf,0x0,0x4f,0x0, +0xdb,0x0,0xca,0x1,0xaf,0x2,0x40,0x3,0xac,0x3,0x1f,0x4, +0x85,0x4,0xd0,0x4,0xef,0x4,0xdf,0x4,0xe5,0x4,0x7,0x5, +0xff,0x4,0xbd,0x4,0x6a,0x4,0x47,0x4,0x5a,0x4,0x45,0x4, +0xcf,0x3,0x36,0x3,0xdc,0x2,0xdc,0x2,0xcf,0x2,0x58,0x2, +0x9b,0x1,0xfc,0x0,0xd7,0x0,0x10,0x1,0x3a,0x1,0x4e,0x1, +0x6d,0x1,0x9c,0x1,0xdc,0x1,0x17,0x2,0x52,0x2,0xcc,0x2, +0x6a,0x3,0xaf,0x3,0x6b,0x3,0xf8,0x2,0xc9,0x2,0x0,0x3, +0x5d,0x3,0x70,0x3,0x1c,0x3,0xca,0x2,0xc3,0x2,0xe5,0x2, +0xf9,0x2,0xe7,0x2,0xd2,0x2,0xc9,0x2,0x75,0x2,0xc6,0x1, +0x2a,0x1,0xe3,0x0,0xc5,0x0,0x8b,0x0,0x2,0x0,0x46,0xff, +0xd0,0xfe,0xef,0xfe,0x48,0xff,0x57,0xff,0x1f,0xff,0xef,0xfe, +0xdf,0xfe,0xcc,0xfe,0xb0,0xfe,0xac,0xfe,0xbf,0xfe,0xc4,0xfe, +0xaf,0xfe,0x95,0xfe,0xa9,0xfe,0x1e,0xff,0xfc,0xff,0xf1,0x0, +0x87,0x1,0xe7,0x1,0xa4,0x2,0xb9,0x3,0xc2,0x4,0xab,0x5, +0x7d,0x6,0x33,0x7,0xbf,0x7,0x17,0x8,0x5d,0x8,0xb8,0x8, +0x22,0x9,0x5f,0x9,0x29,0x9,0x8c,0x8,0xf1,0x7,0x9c,0x7, +0x48,0x7,0x8f,0x6,0x81,0x5,0x75,0x4,0x93,0x3,0xd9,0x2, +0x32,0x2,0x93,0x1,0x14,0x1,0xbb,0x0,0x81,0x0,0x90,0x0, +0xfc,0x0,0xb1,0x1,0x92,0x2,0x79,0x3,0x51,0x4,0x35,0x5, +0x3d,0x6,0x63,0x7,0x8e,0x8,0x9f,0x9,0x7b,0xa,0xf,0xb, +0x67,0xb,0xa6,0xb,0xe8,0xb,0x1c,0xc,0x16,0xc,0xb8,0xb, +0xc,0xb,0x25,0xa,0x30,0x9,0x7b,0x8,0xf4,0x7,0xa,0x7, +0xa6,0x5,0x4c,0x4,0x41,0x3,0x84,0x2,0xf5,0x1,0x36,0x1, +0x29,0x0,0x37,0xff,0xa5,0xfe,0x59,0xfe,0x31,0xfe,0x1d,0xfe, +0x23,0xfe,0x45,0xfe,0x48,0xfe,0x13,0xfe,0x13,0xfe,0x84,0xfe, +0x7,0xff,0x3c,0xff,0xfe,0xfe,0x5f,0xfe,0x2,0xfe,0x51,0xfe, +0xdb,0xfe,0x25,0xff,0x2a,0xff,0x27,0xff,0x84,0xff,0x5e,0x0, +0x4d,0x1,0x1c,0x2,0xdb,0x2,0x66,0x3,0xa4,0x3,0xd8,0x3, +0xe,0x4,0x2b,0x4,0x5a,0x4,0x6d,0x4,0xe9,0x3,0x27,0x3, +0xe0,0x2,0x0,0x3,0x23,0x3,0x1b,0x3,0xbd,0x2,0x26,0x2, +0xbd,0x1,0x9e,0x1,0x89,0x1,0x47,0x1,0xc5,0x0,0x38,0x0, +0x0,0x0,0x1b,0x0,0x67,0x0,0x1c,0x1,0x45,0x2,0x8d,0x3, +0xc2,0x4,0xfb,0x5,0x5c,0x7,0x7,0x9,0xd9,0xa,0x52,0xc, +0x1d,0xd,0x80,0xd,0xd3,0xd,0x11,0xe,0x34,0xe,0x14,0xe, +0x8e,0xd,0xe5,0xc,0x37,0xc,0x43,0xb,0xfc,0x9,0x91,0x8, +0x35,0x7,0xf5,0x5,0x92,0x4,0xeb,0x2,0x38,0x1,0xc4,0xff, +0xa5,0xfe,0xc9,0xfd,0x2d,0xfd,0xcc,0xfc,0xc2,0xfc,0x50,0xfd, +0x37,0xfe,0x3,0xff,0xed,0xff,0x43,0x1,0xdd,0x2,0x7e,0x4, +0xe9,0x5,0x12,0x7,0x39,0x8,0x65,0x9,0x51,0xa,0xd7,0xa, +0x13,0xb,0x38,0xb,0x46,0xb,0x12,0xb,0x7c,0xa,0xb9,0x9, +0xe,0x9,0x57,0x8,0x5f,0x7,0x49,0x6,0x3f,0x5,0x59,0x4, +0x8b,0x3,0x9e,0x2,0x78,0x1,0x3c,0x0,0x23,0xff,0x45,0xfe, +0x6d,0xfd,0x79,0xfc,0x8b,0xfb,0xb4,0xfa,0xfc,0xf9,0x63,0xf9, +0xde,0xf8,0x71,0xf8,0x16,0xf8,0xb8,0xf7,0x33,0xf7,0x71,0xf6, +0x98,0xf5,0xc6,0xf4,0xe0,0xf3,0xbd,0xf2,0x56,0xf1,0xf0,0xef, +0xc0,0xee,0x9b,0xed,0x5e,0xec,0x1b,0xeb,0x9,0xea,0x4e,0xe9, +0xa6,0xe8,0xd5,0xe7,0x5,0xe7,0x67,0xe6,0x7,0xe6,0xbb,0xe5, +0x51,0xe5,0xe1,0xe4,0x9b,0xe4,0x85,0xe4,0x78,0xe4,0x51,0xe4, +0x3b,0xe4,0x58,0xe4,0x6b,0xe4,0x48,0xe4,0xf2,0xe3,0x91,0xe3, +0x54,0xe3,0x1a,0xe3,0xac,0xe2,0xb,0xe2,0x64,0xe1,0xec,0xe0, +0x99,0xe0,0x53,0xe0,0x26,0xe0,0xa,0xe0,0xfc,0xdf,0xe,0xe0, +0x47,0xe0,0xcc,0xe0,0xa2,0xe1,0x98,0xe2,0x9a,0xe3,0x9d,0xe4, +0xbd,0xe5,0x43,0xe7,0x2b,0xe9,0x2f,0xeb,0xe,0xed,0xa8,0xee, +0x18,0xf0,0x7d,0xf1,0xe8,0xf2,0x4c,0xf4,0x5c,0xf5,0xfb,0xf5, +0x6c,0xf6,0xde,0xf6,0x52,0xf7,0xc6,0xf7,0x46,0xf8,0xbe,0xf8, +0xe,0xf9,0x3c,0xf9,0x62,0xf9,0x90,0xf9,0xca,0xf9,0xec,0xf9, +0xe0,0xf9,0xb8,0xf9,0x8f,0xf9,0x90,0xf9,0xd4,0xf9,0x3e,0xfa, +0xce,0xfa,0x8e,0xfb,0x6f,0xfc,0x5a,0xfd,0x42,0xfe,0x3a,0xff, +0x4c,0x0,0x35,0x1,0xc4,0x1,0x12,0x2,0x46,0x2,0x6f,0x2, +0x82,0x2,0x77,0x2,0x53,0x2,0x2c,0x2,0x17,0x2,0x6,0x2, +0xeb,0x1,0xd3,0x1,0xc7,0x1,0xbe,0x1,0x9e,0x1,0x50,0x1, +0xee,0x0,0x87,0x0,0x1f,0x0,0xce,0xff,0x82,0xff,0x33,0xff, +0xff,0xfe,0xe6,0xfe,0x0,0xff,0x4a,0xff,0x82,0xff,0x9b,0xff, +0xba,0xff,0xe6,0xff,0x16,0x0,0x28,0x0,0x13,0x0,0xe0,0xff, +0x90,0xff,0x53,0xff,0x4d,0xff,0x56,0xff,0x60,0xff,0x7b,0xff, +0xac,0xff,0xff,0xff,0x6e,0x0,0xea,0x0,0x85,0x1,0x30,0x2, +0xb1,0x2,0x14,0x3,0x82,0x3,0xeb,0x3,0x56,0x4,0xe1,0x4, +0x52,0x5,0x73,0x5,0x81,0x5,0xa3,0x5,0xce,0x5,0x6,0x6, +0x32,0x6,0x12,0x6,0xad,0x5,0x46,0x5,0xf1,0x4,0xa4,0x4, +0x65,0x4,0x2c,0x4,0xdb,0x3,0x8a,0x3,0x6a,0x3,0x9f,0x3, +0x18,0x4,0xa4,0x4,0x4a,0x5,0x18,0x6,0xfe,0x6,0x7,0x8, +0x45,0x9,0x85,0xa,0x8e,0xb,0x66,0xc,0x42,0xd,0x20,0xe, +0xd3,0xe,0x65,0xf,0xde,0xf,0x19,0x10,0x26,0x10,0x21,0x10, +0xf7,0xf,0xca,0xf,0xb4,0xf,0x80,0xf,0x5,0xf,0x54,0xe, +0x98,0xd,0xfb,0xc,0x7e,0xc,0xef,0xb,0x3f,0xb,0x8f,0xa, +0xf1,0x9,0x78,0x9,0x42,0x9,0x3b,0x9,0x37,0x9,0x3b,0x9, +0x53,0x9,0x74,0x9,0xad,0x9,0x16,0xa,0x8f,0xa,0xd4,0xa, +0xd1,0xa,0xa6,0xa,0x75,0xa,0x67,0xa,0x88,0xa,0xa2,0xa, +0x6a,0xa,0xe0,0x9,0x50,0x9,0xf9,0x8,0xd4,0x8,0xbf,0x8, +0x90,0x8,0x14,0x8,0x4a,0x7,0x5a,0x6,0x77,0x5,0xd4,0x4, +0x6a,0x4,0xec,0x3,0x2b,0x3,0x43,0x2,0x7c,0x1,0x12,0x1, +0xf9,0x0,0xf8,0x0,0xe6,0x0,0xaa,0x0,0x4d,0x0,0xe4,0xff, +0x66,0xff,0xf4,0xfe,0xc4,0xfe,0x80,0xfe,0xbd,0xfd,0xc0,0xfc, +0xe,0xfc,0xda,0xfb,0xb,0xfc,0x52,0xfc,0x65,0xfc,0x63,0xfc, +0xa8,0xfc,0x5a,0xfd,0x4c,0xfe,0x39,0xff,0x6,0x0,0xa4,0x0, +0x2,0x1,0x42,0x1,0x91,0x1,0xf,0x2,0xa7,0x2,0xff,0x2, +0xec,0x2,0xa7,0x2,0x77,0x2,0x79,0x2,0xa7,0x2,0xc0,0x2, +0x72,0x2,0xcb,0x1,0xc,0x1,0x58,0x0,0xc4,0xff,0x68,0xff, +0x17,0xff,0x8a,0xfe,0xca,0xfd,0x26,0xfd,0xe7,0xfc,0x23,0xfd, +0xac,0xfd,0x46,0xfe,0xc8,0xfe,0x11,0xff,0x4d,0xff,0xf2,0xff, +0x13,0x1,0x45,0x2,0x27,0x3,0x8e,0x3,0x8c,0x3,0x9d,0x3, +0x29,0x4,0xe7,0x4,0x58,0x5,0x68,0x5,0x2f,0x5,0xd3,0x4, +0x8b,0x4,0x61,0x4,0x3f,0x4,0x26,0x4,0xee,0x3,0x5a,0x3, +0x80,0x2,0xb1,0x1,0x42,0x1,0x63,0x1,0xae,0x1,0x6c,0x1, +0xb3,0x0,0x44,0x0,0x77,0x0,0x1d,0x1,0xda,0x1,0x39,0x2, +0x21,0x2,0x1c,0x2,0x78,0x2,0xe8,0x2,0x4f,0x3,0xd2,0x3, +0x3a,0x4,0x38,0x4,0xce,0x3,0x48,0x3,0x43,0x3,0xf3,0x3, +0x84,0x4,0x41,0x4,0x7c,0x3,0xe0,0x2,0xdb,0x2,0x5c,0x3, +0xd9,0x3,0xe,0x4,0x25,0x4,0x2d,0x4,0x27,0x4,0x45,0x4, +0xb4,0x4,0x60,0x5,0xdb,0x5,0xbb,0x5,0x3f,0x5,0x10,0x5, +0x5d,0x5,0xba,0x5,0xe4,0x5,0xd4,0x5,0x90,0x5,0x5a,0x5, +0x65,0x5,0x7b,0x5,0x7d,0x5,0x6d,0x5,0x14,0x5,0x6a,0x4, +0xc6,0x3,0x51,0x3,0x9,0x3,0xd,0x3,0x29,0x3,0xec,0x2, +0x8f,0x2,0xaa,0x2,0x55,0x3,0x58,0x4,0x71,0x5,0x1f,0x6, +0x5f,0x6,0xd8,0x6,0xa2,0x7,0x1a,0x8,0x12,0x8,0xe8,0x7, +0xe7,0x7,0xf9,0x7,0x8b,0x7,0x75,0x6,0x96,0x5,0x79,0x5, +0x72,0x5,0xdc,0x4,0xc5,0x3,0xa6,0x2,0x1c,0x2,0x4,0x2, +0x86,0x1,0x68,0x0,0x47,0xff,0xa5,0xfe,0x69,0xfe,0x15,0xfe, +0x9a,0xfd,0x82,0xfd,0x2,0xfe,0xa9,0xfe,0x19,0xff,0x73,0xff, +0x1,0x0,0xfc,0x0,0x7c,0x2,0xdb,0x3,0x1d,0x4,0xa3,0x3, +0xc0,0x3,0x98,0x4,0x44,0x5,0x51,0x5,0xc0,0x4,0xe2,0x3, +0x65,0x3,0x70,0x3,0x59,0x3,0xcd,0x2,0x33,0x2,0xde,0x1, +0x8e,0x1,0xdc,0x0,0x10,0x0,0xef,0xff,0x6c,0x0,0x9b,0x0, +0x24,0x0,0x8a,0xff,0x5d,0xff,0xe8,0xff,0xff,0x0,0xd8,0x1, +0xe6,0x1,0xca,0x1,0x5c,0x2,0x66,0x3,0x60,0x4,0x28,0x5, +0xbb,0x5,0x29,0x6,0x7a,0x6,0xa4,0x6,0xcd,0x6,0x6,0x7, +0x40,0x7,0x7b,0x7,0x58,0x7,0x91,0x6,0xe9,0x5,0x30,0x6, +0xf7,0x6,0x61,0x7,0x48,0x7,0xfd,0x6,0xf3,0x6,0x81,0x7, +0x44,0x8,0x7d,0x8,0x2f,0x8,0xe4,0x7,0xb3,0x7,0x69,0x7, +0xff,0x6,0x92,0x6,0x34,0x6,0xd7,0x5,0x51,0x5,0xa8,0x4, +0x1a,0x4,0xd0,0x3,0xb4,0x3,0x9c,0x3,0x52,0x3,0xdb,0x2, +0x93,0x2,0x8c,0x2,0x8e,0x2,0xad,0x2,0xc,0x3,0x76,0x3, +0xc5,0x3,0x27,0x4,0xe5,0x4,0x14,0x6,0x83,0x7,0xcd,0x8, +0xa4,0x9,0x3c,0xa,0xfd,0xa,0xdd,0xb,0x6c,0xc,0x6e,0xc, +0x2b,0xc,0xec,0xb,0x74,0xb,0x90,0xa,0x75,0x9,0x5e,0x8, +0x82,0x7,0xbc,0x6,0x8a,0x5,0xf8,0x3,0x9d,0x2,0xb3,0x1, +0x9,0x1,0x4a,0x0,0x41,0xff,0x44,0xfe,0xcb,0xfd,0xbe,0xfd, +0xbe,0xfd,0xca,0xfd,0x19,0xfe,0xa8,0xfe,0x4a,0xff,0xea,0xff, +0x9e,0x0,0x83,0x1,0x72,0x2,0x1b,0x3,0x64,0x3,0x50,0x3, +0x10,0x3,0xeb,0x2,0xb5,0x2,0xf7,0x1,0xa5,0x0,0x30,0xff, +0xe2,0xfd,0x99,0xfc,0x2e,0xfb,0x93,0xf9,0xc8,0xf7,0xf1,0xf5, +0x2d,0xf4,0x6c,0xf2,0xae,0xf0,0x9,0xef,0x82,0xed,0x2,0xec, +0x58,0xea,0xb1,0xe8,0x88,0xe7,0xcf,0xe6,0xed,0xe5,0xc4,0xe4, +0xc5,0xe3,0x1a,0xe3,0x9f,0xe2,0x47,0xe2,0xe6,0xe1,0x55,0xe1, +0xd5,0xe0,0x9a,0xe0,0x7d,0xe0,0x55,0xe0,0x3f,0xe0,0x6b,0xe0, +0xa6,0xe0,0x96,0xe0,0x7d,0xe0,0xc9,0xe0,0x60,0xe1,0xf0,0xe1, +0x49,0xe2,0x69,0xe2,0x8b,0xe2,0xf7,0xe2,0xa1,0xe3,0x34,0xe4, +0x7e,0xe4,0x9f,0xe4,0xbf,0xe4,0xeb,0xe4,0x14,0xe5,0x1e,0xe5, +0x1c,0xe5,0xf,0xe5,0xc4,0xe4,0x62,0xe4,0x43,0xe4,0x5d,0xe4, +0x94,0xe4,0xee,0xe4,0x44,0xe5,0x84,0xe5,0xf5,0xe5,0xd0,0xe6, +0xfa,0xe7,0x35,0xe9,0x59,0xea,0x7e,0xeb,0xbc,0xec,0x4,0xee, +0x88,0xef,0x71,0xf1,0x66,0xf3,0x29,0xf5,0xe4,0xf6,0xa6,0xf8, +0x77,0xfa,0x6e,0xfc,0x5d,0xfe,0x5,0x0,0x3f,0x1,0x15,0x2, +0xbc,0x2,0x38,0x3,0x6d,0x3,0x5f,0x3,0x15,0x3,0x95,0x2, +0xe3,0x1,0xf,0x1,0x48,0x0,0x9e,0xff,0x24,0xff,0xee,0xfe, +0xa9,0xfe,0x1a,0xfe,0xa6,0xfd,0x90,0xfd,0x98,0xfd,0x8e,0xfd, +0x78,0xfd,0x5c,0xfd,0x61,0xfd,0xa7,0xfd,0x14,0xfe,0x92,0xfe, +0x28,0xff,0xce,0xff,0x7f,0x0,0x3e,0x1,0xff,0x1,0xbe,0x2, +0x5a,0x3,0x8a,0x3,0x57,0x3,0x24,0x3,0x13,0x3,0xec,0x2, +0x87,0x2,0xfe,0x1,0x83,0x1,0x38,0x1,0x1d,0x1,0x7,0x1, +0xf5,0x0,0x13,0x1,0x49,0x1,0x4a,0x1,0x6,0x1,0xc2,0x0, +0xb5,0x0,0xa4,0x0,0x53,0x0,0xd1,0xff,0x39,0xff,0xc9,0xfe, +0xb4,0xfe,0xc3,0xfe,0xd5,0xfe,0xf7,0xfe,0x16,0xff,0x37,0xff, +0x80,0xff,0xee,0xff,0x5c,0x0,0x92,0x0,0x81,0x0,0x57,0x0, +0x45,0x0,0x66,0x0,0xbe,0x0,0x28,0x1,0x83,0x1,0xe1,0x1, +0x7a,0x2,0x68,0x3,0x92,0x4,0xcd,0x5,0xec,0x6,0xd0,0x7, +0x92,0x8,0x5c,0x9,0x28,0xa,0xd4,0xa,0x54,0xb,0x9b,0xb, +0xa0,0xb,0x86,0xb,0x6e,0xb,0x61,0xb,0x65,0xb,0x52,0xb, +0xeb,0xa,0x4d,0xa,0xb5,0x9,0x3d,0x9,0xdf,0x8,0x7d,0x8, +0xa,0x8,0x8d,0x7,0x6,0x7,0x99,0x6,0x73,0x6,0xa6,0x6, +0x1d,0x7,0x85,0x7,0xb4,0x7,0xf4,0x7,0x95,0x8,0x93,0x9, +0x9a,0xa,0x54,0xb,0xcb,0xb,0x2f,0xc,0x8c,0xc,0xdb,0xc, +0x17,0xd,0x38,0xd,0x2c,0xd,0xc3,0xc,0x4,0xc,0x33,0xb, +0x7e,0xa,0xe5,0x9,0x58,0x9,0xa4,0x8,0xa8,0x7,0xa3,0x6, +0xda,0x5,0x37,0x5,0xa3,0x4,0x29,0x4,0xa6,0x3,0x1,0x3, +0x50,0x2,0xbb,0x1,0x68,0x1,0x47,0x1,0x1d,0x1,0xdd,0x0, +0x96,0x0,0x6a,0x0,0x82,0x0,0xb0,0x0,0xb2,0x0,0x91,0x0, +0x60,0x0,0x1e,0x0,0xcf,0xff,0x77,0xff,0x18,0xff,0xbb,0xfe, +0x4a,0xfe,0x9f,0xfd,0xea,0xfc,0x84,0xfc,0x70,0xfc,0x77,0xfc, +0x60,0xfc,0x13,0xfc,0xc9,0xfb,0xc9,0xfb,0x5,0xfc,0x3c,0xfc, +0x48,0xfc,0x54,0xfc,0x8a,0xfc,0xbf,0xfc,0xd0,0xfc,0xe3,0xfc, +0x26,0xfd,0x9d,0xfd,0x0,0xfe,0x27,0xfe,0x4b,0xfe,0x85,0xfe, +0xb8,0xfe,0xd7,0xfe,0xcd,0xfe,0x95,0xfe,0x66,0xfe,0x62,0xfe, +0x5b,0xfe,0x23,0xfe,0xe7,0xfd,0xd7,0xfd,0xe4,0xfd,0xa,0xfe, +0x5b,0xfe,0xc1,0xfe,0x34,0xff,0xc2,0xff,0x56,0x0,0xd5,0x0, +0x5c,0x1,0xf,0x2,0xdb,0x2,0x98,0x3,0x33,0x4,0xb6,0x4, +0x4b,0x5,0xf9,0x5,0x97,0x6,0x16,0x7,0x7d,0x7,0xbf,0x7, +0xe8,0x7,0xf9,0x7,0xe2,0x7,0xa8,0x7,0x62,0x7,0xb,0x7, +0x97,0x6,0x2e,0x6,0xe1,0x5,0x8e,0x5,0x3d,0x5,0xfd,0x4, +0xb8,0x4,0x92,0x4,0x96,0x4,0x84,0x4,0x61,0x4,0x4a,0x4, +0x29,0x4,0x6,0x4,0xe2,0x3,0xb5,0x3,0xb5,0x3,0xe3,0x3, +0xea,0x3,0xc3,0x3,0xb0,0x3,0xb5,0x3,0xc0,0x3,0xea,0x3, +0x7,0x4,0xc9,0x3,0x65,0x3,0x1b,0x3,0xd0,0x2,0x8d,0x2, +0x65,0x2,0x3b,0x2,0x19,0x2,0xfe,0x1,0xc5,0x1,0x90,0x1, +0x92,0x1,0xbc,0x1,0xe8,0x1,0xcc,0x1,0x46,0x1,0xe5,0x0, +0x13,0x1,0x44,0x1,0x6,0x1,0x97,0x0,0x48,0x0,0x64,0x0, +0xd5,0x0,0xfb,0x0,0xd1,0x0,0xf1,0x0,0x5c,0x1,0x9b,0x1, +0x8d,0x1,0x6b,0x1,0x82,0x1,0xf3,0x1,0x5b,0x2,0x1d,0x2, +0x8e,0x1,0xae,0x1,0x74,0x2,0xd,0x3,0x2e,0x3,0x1b,0x3, +0x63,0x3,0x4b,0x4,0x16,0x5,0x31,0x5,0xe,0x5,0x23,0x5, +0x6f,0x5,0xb7,0x5,0x87,0x5,0xff,0x4,0xea,0x4,0x3c,0x5, +0x20,0x5,0x84,0x4,0x11,0x4,0x33,0x4,0xd3,0x4,0x34,0x5, +0xbd,0x4,0xa,0x4,0x11,0x4,0xd0,0x4,0x8c,0x5,0x95,0x5, +0x5,0x5,0xc9,0x4,0x48,0x5,0xcf,0x5,0xd6,0x5,0xba,0x5, +0xd1,0x5,0xee,0x5,0xdf,0x5,0x8b,0x5,0x2b,0x5,0x4b,0x5, +0xb6,0x5,0x80,0x5,0x8c,0x4,0x9d,0x3,0x46,0x3,0x8a,0x3, +0xc6,0x3,0x55,0x3,0x7a,0x2,0xed,0x1,0xe9,0x1,0x1c,0x2, +0x2d,0x2,0x23,0x2,0x36,0x2,0x52,0x2,0x1f,0x2,0xc6,0x1, +0xe1,0x1,0x68,0x2,0xc0,0x2,0xa4,0x2,0x2b,0x2,0xaf,0x1, +0xb4,0x1,0x1c,0x2,0x2f,0x2,0xb8,0x1,0x3f,0x1,0x15,0x1, +0xf9,0x0,0xbc,0x0,0x97,0x0,0xab,0x0,0xc0,0x0,0x9b,0x0, +0x55,0x0,0x40,0x0,0x95,0x0,0x40,0x1,0xb9,0x1,0x8d,0x1, +0x37,0x1,0x83,0x1,0x57,0x2,0xfc,0x2,0x1d,0x3,0x5,0x3, +0x1d,0x3,0x5e,0x3,0x8b,0x3,0xaa,0x3,0xde,0x3,0x21,0x4, +0x5b,0x4,0x64,0x4,0x1e,0x4,0xf2,0x3,0x69,0x4,0x2e,0x5, +0x8a,0x5,0x7e,0x5,0x6d,0x5,0x91,0x5,0xf9,0x5,0x73,0x6, +0xe2,0x6,0x59,0x7,0xb8,0x7,0xec,0x7,0x18,0x8,0x5f,0x8, +0xe5,0x8,0x9c,0x9,0x5,0xa,0xd0,0x9,0x5a,0x9,0xb,0x9, +0xb5,0x8,0x8,0x8,0xb,0x7,0xf1,0x5,0xec,0x4,0xf8,0x3, +0xd6,0x2,0x99,0x1,0xb4,0x0,0x52,0x0,0x4d,0x0,0x56,0x0, +0x37,0x0,0x2a,0x0,0x8b,0x0,0x57,0x1,0x33,0x2,0xd5,0x2, +0x4f,0x3,0xe7,0x3,0xbd,0x4,0xa5,0x5,0x5d,0x6,0xe9,0x6, +0x81,0x7,0x27,0x8,0xaf,0x8,0xf7,0x8,0xfe,0x8,0xf6,0x8, +0x3,0x9,0xd4,0x8,0x14,0x8,0xe8,0x6,0xac,0x5,0x8d,0x4, +0x83,0x3,0x4c,0x2,0xca,0x0,0x45,0xff,0xe9,0xfd,0xb8,0xfc, +0xcc,0xfb,0x13,0xfb,0x8c,0xfa,0x53,0xfa,0xa,0xfa,0x87,0xf9, +0x42,0xf9,0x55,0xf9,0x7d,0xf9,0xa9,0xf9,0xaf,0xf9,0x78,0xf9, +0x36,0xf9,0xe,0xf9,0xfd,0xf8,0x3,0xf9,0xfd,0xf8,0xc4,0xf8, +0x69,0xf8,0x19,0xf8,0xe0,0xf7,0xb8,0xf7,0x73,0xf7,0xce,0xf6, +0xc9,0xf5,0x9e,0xf4,0x6a,0xf3,0x2b,0xf2,0xcb,0xf0,0x33,0xef, +0x75,0xed,0xbc,0xeb,0x2f,0xea,0xed,0xe8,0x0,0xe8,0x41,0xe7, +0x83,0xe6,0xc8,0xe5,0x1b,0xe5,0x8f,0xe4,0x51,0xe4,0x2e,0xe4, +0xbf,0xe3,0x24,0xe3,0x96,0xe2,0x10,0xe2,0xc1,0xe1,0xd3,0xe1, +0x2e,0xe2,0xc1,0xe2,0x69,0xe3,0x2,0xe4,0xcb,0xe4,0x10,0xe6, +0xae,0xe7,0x28,0xe9,0x36,0xea,0xf1,0xea,0x8c,0xeb,0x2f,0xec, +0xda,0xec,0x43,0xed,0x62,0xed,0x85,0xed,0xb3,0xed,0xba,0xed, +0xb2,0xed,0xdc,0xed,0x3e,0xee,0x8f,0xee,0x90,0xee,0x59,0xee, +0x30,0xee,0x43,0xee,0x83,0xee,0xa3,0xee,0x6c,0xee,0x2b,0xee, +0x4b,0xee,0xd2,0xee,0xa6,0xef,0xaa,0xf0,0xb4,0xf1,0xd2,0xf2, +0x2e,0xf4,0xc9,0xf5,0x90,0xf7,0x70,0xf9,0x4b,0xfb,0x14,0xfd, +0xbd,0xfe,0x1d,0x0,0x2f,0x1,0x49,0x2,0x9b,0x3,0xb6,0x4, +0x47,0x5,0x8e,0x5,0xd6,0x5,0x41,0x6,0xb2,0x6,0xd3,0x6, +0xa9,0x6,0x6d,0x6,0x23,0x6,0xcb,0x5,0x3f,0x5,0x70,0x4, +0xb0,0x3,0x0,0x3,0xf3,0x1,0x95,0x0,0x67,0xff,0xac,0xfe, +0x35,0xfe,0xb6,0xfd,0x11,0xfd,0x7e,0xfc,0x54,0xfc,0xa0,0xfc, +0x21,0xfd,0xa7,0xfd,0x29,0xfe,0x9d,0xfe,0xd,0xff,0x7d,0xff, +0xf1,0xff,0x81,0x0,0x20,0x1,0x9e,0x1,0xfe,0x1,0x64,0x2, +0xe6,0x2,0x7c,0x3,0x10,0x4,0x9c,0x4,0xf,0x5,0x54,0x5, +0x75,0x5,0x85,0x5,0x85,0x5,0x5a,0x5,0xdb,0x4,0xff,0x3, +0x1,0x3,0x2c,0x2,0x94,0x1,0xc,0x1,0x60,0x0,0x9c,0xff, +0xf0,0xfe,0x68,0xfe,0x17,0xfe,0x14,0xfe,0x2e,0xfe,0x35,0xfe, +0x2f,0xfe,0x16,0xfe,0xc,0xfe,0x56,0xfe,0xd7,0xfe,0x56,0xff, +0xee,0xff,0xbd,0x0,0xbd,0x1,0xf1,0x2,0x45,0x4,0x9b,0x5, +0xf,0x7,0xb8,0x8,0x49,0xa,0xa0,0xb,0xf5,0xc,0x3c,0xe, +0x4e,0xf,0x23,0x10,0x93,0x10,0xd3,0x10,0x3c,0x11,0x97,0x11, +0xa0,0x11,0x64,0x11,0xff,0x10,0x8b,0x10,0x14,0x10,0x99,0xf, +0x35,0xf,0xc5,0xe,0x16,0xe,0x49,0xd,0x7e,0xc,0xc1,0xb, +0x3e,0xb,0xf5,0xa,0xa9,0xa,0x34,0xa,0xb5,0x9,0x74,0x9, +0x96,0x9,0xf9,0x9,0x63,0xa,0xb0,0xa,0xe5,0xa,0x3a,0xb, +0xd1,0xb,0x81,0xc,0xf,0xd,0x65,0xd,0x9a,0xd,0xe1,0xd, +0x1c,0xe,0x2,0xe,0xcc,0xd,0xd2,0xd,0xe0,0xd,0xb6,0xd, +0x53,0xd,0xbb,0xc,0x34,0xc,0xf7,0xb,0x9d,0xb,0xc0,0xa, +0xa6,0x9,0x9d,0x8,0x91,0x7,0x66,0x6,0x27,0x5,0xe8,0x3, +0xc4,0x2,0xb4,0x1,0x96,0x0,0x75,0xff,0x92,0xfe,0x14,0xfe, +0xd1,0xfd,0x79,0xfd,0xf1,0xfc,0x6b,0xfc,0x27,0xfc,0x22,0xfc, +0x16,0xfc,0xec,0xfb,0xc8,0xfb,0xbc,0xfb,0xcf,0xfb,0xf3,0xfb, +0xe,0xfc,0x51,0xfc,0xdf,0xfc,0x7c,0xfd,0xe7,0xfd,0x1d,0xfe, +0x50,0xfe,0xbb,0xfe,0x49,0xff,0xa7,0xff,0xa3,0xff,0x62,0xff, +0x34,0xff,0x25,0xff,0x11,0xff,0xe3,0xfe,0x9c,0xfe,0x5e,0xfe, +0x32,0xfe,0xe1,0xfd,0x7c,0xfd,0x48,0xfd,0x3e,0xfd,0x45,0xfd, +0x48,0xfd,0x1a,0xfd,0xce,0xfc,0xb6,0xfc,0xf9,0xfc,0x66,0xfd, +0xc1,0xfd,0x8,0xfe,0x4d,0xfe,0xa7,0xfe,0x57,0xff,0x44,0x0, +0xa,0x1,0xa5,0x1,0x42,0x2,0xdb,0x2,0x6e,0x3,0xec,0x3, +0x3e,0x4,0x81,0x4,0xc5,0x4,0xe4,0x4,0xda,0x4,0xc0,0x4, +0xb2,0x4,0xc5,0x4,0xdb,0x4,0xd6,0x4,0xc0,0x4,0xa8,0x4, +0x99,0x4,0x94,0x4,0x78,0x4,0x33,0x4,0xd3,0x3,0x63,0x3, +0xeb,0x2,0x66,0x2,0xd5,0x1,0x53,0x1,0xe4,0x0,0x79,0x0, +0x1f,0x0,0xcc,0xff,0x7a,0xff,0x5c,0xff,0x8a,0xff,0xb8,0xff, +0xa3,0xff,0x78,0xff,0x69,0xff,0x78,0xff,0x9c,0xff,0xb4,0xff, +0xa7,0xff,0xa2,0xff,0xc2,0xff,0xf4,0xff,0x26,0x0,0x58,0x0, +0xb9,0x0,0x52,0x1,0xba,0x1,0xc0,0x1,0xa7,0x1,0x9b,0x1, +0xa7,0x1,0xc1,0x1,0x8e,0x1,0xf3,0x0,0x53,0x0,0xf7,0xff, +0xc4,0xff,0x86,0xff,0x2f,0xff,0xe5,0xfe,0xc9,0xfe,0xc7,0xfe, +0xc3,0xfe,0xc0,0xfe,0xbe,0xfe,0xb8,0xfe,0xce,0xfe,0xef,0xfe, +0xdf,0xfe,0xc6,0xfe,0xff,0xfe,0x84,0xff,0x8,0x0,0x60,0x0, +0xa9,0x0,0x2c,0x1,0x5,0x2,0xf,0x3,0xa,0x4,0xa3,0x4, +0xd9,0x4,0x24,0x5,0xb1,0x5,0x39,0x6,0x87,0x6,0x97,0x6, +0x8d,0x6,0x9c,0x6,0xbd,0x6,0xdc,0x6,0x6,0x7,0x35,0x7, +0x64,0x7,0x97,0x7,0xad,0x7,0x83,0x7,0x46,0x7,0x46,0x7, +0x6e,0x7,0x42,0x7,0xaa,0x6,0x3,0x6,0x9c,0x5,0xa3,0x5, +0xd5,0x5,0x74,0x5,0x9a,0x4,0x3b,0x4,0x7a,0x4,0xb6,0x4, +0x9d,0x4,0x42,0x4,0xc,0x4,0x4b,0x4,0x7c,0x4,0x1a,0x4, +0xbf,0x3,0x0,0x4,0x8d,0x4,0xf1,0x4,0xea,0x4,0x8b,0x4, +0x97,0x4,0x73,0x5,0x42,0x6,0x5e,0x6,0x2d,0x6,0x1c,0x6, +0x30,0x6,0x39,0x6,0x1,0x6,0xac,0x5,0x7b,0x5,0x2c,0x5, +0x82,0x4,0xcd,0x3,0x3d,0x3,0xbd,0x2,0x68,0x2,0x17,0x2, +0x58,0x1,0x62,0x0,0xc6,0xff,0x84,0xff,0x5a,0xff,0x2c,0xff, +0xe7,0xfe,0x94,0xfe,0x58,0xfe,0x52,0xfe,0xb2,0xfe,0x5c,0xff, +0xdf,0xff,0x31,0x0,0x99,0x0,0x3,0x1,0x6b,0x1,0x9,0x2, +0xa8,0x2,0xe6,0x2,0x1,0x3,0x37,0x3,0x3c,0x3,0x2,0x3, +0xee,0x2,0x15,0x3,0x38,0x3,0x2a,0x3,0xcf,0x2,0x54,0x2, +0x2a,0x2,0x5c,0x2,0x79,0x2,0x41,0x2,0xc8,0x1,0x65,0x1, +0x76,0x1,0xcf,0x1,0xf4,0x1,0xf9,0x1,0x43,0x2,0xa7,0x2, +0xd4,0x2,0xfe,0x2,0x68,0x3,0xef,0x3,0x56,0x4,0x6a,0x4, +0x14,0x4,0xb4,0x3,0xb3,0x3,0xd4,0x3,0xbe,0x3,0x77,0x3, +0x3e,0x3,0x52,0x3,0x7f,0x3,0x5f,0x3,0x53,0x3,0xfa,0x3, +0xed,0x4,0x5c,0x5,0x37,0x5,0x1,0x5,0x43,0x5,0x9,0x6, +0xa8,0x6,0x95,0x6,0x3f,0x6,0x49,0x6,0x99,0x6,0xb0,0x6, +0x75,0x6,0x5d,0x6,0xca,0x6,0x52,0x7,0x13,0x7,0x6,0x6, +0x19,0x5,0xda,0x4,0xdd,0x4,0x6d,0x4,0x24,0x3,0x67,0x1, +0x2f,0x0,0xb0,0xff,0x37,0xff,0x8c,0xfe,0xf6,0xfd,0x9a,0xfd, +0x9a,0xfd,0xd3,0xfd,0xdd,0xfd,0x1a,0xfe,0x20,0xff,0x56,0x0, +0xdd,0x0,0xd3,0x0,0xc2,0x0,0xe,0x1,0xc5,0x1,0x37,0x2, +0xb5,0x1,0xa6,0x0,0xdd,0xff,0x60,0xff,0xa0,0xfe,0x54,0xfd, +0xdb,0xfb,0x9c,0xfa,0x34,0xf9,0xe,0xf7,0x88,0xf4,0x68,0xf2, +0xd1,0xf0,0x57,0xef,0x62,0xed,0xcb,0xea,0x75,0xe8,0x41,0xe7, +0xcb,0xe6,0x30,0xe6,0x51,0xe5,0xad,0xe4,0xab,0xe4,0x21,0xe5, +0x94,0xe5,0xed,0xe5,0x7a,0xe6,0x45,0xe7,0x2,0xe8,0x5e,0xe8, +0x3d,0xe8,0x15,0xe8,0x76,0xe8,0x1,0xe9,0xdb,0xe8,0xb,0xe8, +0x4f,0xe7,0xf6,0xe6,0xca,0xe6,0x77,0xe6,0xb9,0xe5,0xbb,0xe4, +0xfe,0xe3,0x87,0xe3,0xd9,0xe2,0xe9,0xe1,0x17,0xe1,0x9a,0xe0, +0x64,0xe0,0x2a,0xe0,0xc1,0xdf,0x97,0xdf,0x1d,0xe0,0x7,0xe1, +0xe1,0xe1,0xa1,0xe2,0x73,0xe3,0x81,0xe4,0xc9,0xe5,0x10,0xe7, +0x3c,0xe8,0x62,0xe9,0x8b,0xea,0xbf,0xeb,0xe2,0xec,0xd8,0xed, +0xe7,0xee,0x4a,0xf0,0xb8,0xf1,0xc8,0xf2,0x8b,0xf3,0x52,0xf4, +0x47,0xf5,0x52,0xf6,0x33,0xf7,0xb7,0xf7,0x10,0xf8,0x98,0xf8, +0x3a,0xf9,0xbb,0xf9,0x36,0xfa,0xd1,0xfa,0x85,0xfb,0x27,0xfc, +0x70,0xfc,0x78,0xfc,0xa7,0xfc,0xfd,0xfc,0x31,0xfd,0x1d,0xfd, +0xb7,0xfc,0x3a,0xfc,0x5,0xfc,0x7,0xfc,0xee,0xfb,0xd4,0xfb, +0x2,0xfc,0x61,0xfc,0xa6,0xfc,0xcb,0xfc,0x0,0xfd,0x6b,0xfd, +0x8,0xfe,0x88,0xfe,0xbe,0xfe,0xf2,0xfe,0x6b,0xff,0x24,0x0, +0xf7,0x0,0x96,0x1,0xfa,0x1,0x92,0x2,0x70,0x3,0x1c,0x4, +0x5b,0x4,0x41,0x4,0xf0,0x3,0x8c,0x3,0xec,0x2,0xdb,0x1, +0xa4,0x0,0xac,0xff,0xd3,0xfe,0xe8,0xfd,0x5,0xfd,0x46,0xfc, +0xc8,0xfb,0xb0,0xfb,0xc7,0xfb,0xc2,0xfb,0xcf,0xfb,0x21,0xfc, +0x95,0xfc,0x6,0xfd,0x5e,0xfd,0xb8,0xfd,0x72,0xfe,0x99,0xff, +0xc7,0x0,0xd4,0x1,0xec,0x2,0x23,0x4,0x76,0x5,0xcf,0x6, +0xea,0x7,0xaa,0x8,0x4a,0x9,0xd6,0x9,0x17,0xa,0xc,0xa, +0xe6,0x9,0xc3,0x9,0x9c,0x9,0x48,0x9,0xbd,0x8,0x45,0x8, +0x11,0x8,0xc,0x8,0xf1,0x7,0x79,0x7,0xd1,0x6,0x7d,0x6, +0x7c,0x6,0x75,0x6,0x60,0x6,0x63,0x6,0x87,0x6,0xc2,0x6, +0x8,0x7,0x5c,0x7,0xe7,0x7,0xcc,0x8,0xcb,0x9,0x73,0xa, +0xbf,0xa,0x19,0xb,0xb8,0xb,0x71,0xc,0xe6,0xc,0xff,0xc, +0x9,0xd,0x1f,0xd,0x21,0xd,0x18,0xd,0xb,0xd,0x2,0xd, +0xe,0xd,0xea,0xc,0x6a,0xc,0x4,0xc,0xf,0xc,0x3e,0xc, +0x2f,0xc,0xd7,0xb,0x84,0xb,0x72,0xb,0x86,0xb,0x82,0xb, +0x42,0xb,0xd2,0xa,0x67,0xa,0x4,0xa,0x6f,0x9,0x9f,0x8, +0xd3,0x7,0x2d,0x7,0x87,0x6,0xc3,0x5,0x12,0x5,0x9c,0x4, +0x51,0x4,0x22,0x4,0xfc,0x3,0xcd,0x3,0xb1,0x3,0xc7,0x3, +0xfb,0x3,0x27,0x4,0x34,0x4,0x36,0x4,0x45,0x4,0x50,0x4, +0x59,0x4,0x83,0x4,0xd5,0x4,0x2d,0x5,0x5b,0x5,0x56,0x5, +0x3c,0x5,0x26,0x5,0xf,0x5,0xca,0x4,0x38,0x4,0x6e,0x3, +0x8d,0x2,0xa4,0x1,0xb3,0x0,0xae,0xff,0xce,0xfe,0x5c,0xfe, +0x1e,0xfe,0xb7,0xfd,0x54,0xfd,0x53,0xfd,0xab,0xfd,0x10,0xfe, +0x50,0xfe,0x6a,0xfe,0x80,0xfe,0xc3,0xfe,0x37,0xff,0x96,0xff, +0xc2,0xff,0xfe,0xff,0x83,0x0,0x2b,0x1,0xb7,0x1,0x32,0x2, +0xcb,0x2,0x55,0x3,0x95,0x3,0x99,0x3,0x6d,0x3,0x1a,0x3, +0xba,0x2,0x37,0x2,0x85,0x1,0xcd,0x0,0x2e,0x0,0xb9,0xff, +0x70,0xff,0x55,0xff,0x94,0xff,0x1e,0x0,0x9c,0x0,0x8,0x1, +0x9b,0x1,0x5a,0x2,0x2d,0x3,0xf6,0x3,0x8c,0x4,0xd9,0x4, +0xf,0x5,0x7e,0x5,0xb,0x6,0x63,0x6,0x88,0x6,0x98,0x6, +0x9f,0x6,0xaf,0x6,0xa7,0x6,0x60,0x6,0xff,0x5,0x9e,0x5, +0x30,0x5,0x9c,0x4,0xc4,0x3,0xf8,0x2,0x9c,0x2,0x7b,0x2, +0x35,0x2,0xd6,0x1,0x9f,0x1,0xda,0x1,0x81,0x2,0x1d,0x3, +0x6d,0x3,0xca,0x3,0x86,0x4,0x55,0x5,0xda,0x5,0x35,0x6, +0x92,0x6,0xe0,0x6,0x8,0x7,0xf4,0x6,0xac,0x6,0x6a,0x6, +0x34,0x6,0xe9,0x5,0x7f,0x5,0xda,0x4,0xfd,0x3,0x47,0x3, +0xdd,0x2,0x72,0x2,0xe1,0x1,0x55,0x1,0xe5,0x0,0x89,0x0, +0x5c,0x0,0x54,0x0,0x50,0x0,0x74,0x0,0xcd,0x0,0x4,0x1, +0xff,0x0,0xd,0x1,0x63,0x1,0xe1,0x1,0x21,0x2,0x4,0x2, +0xf6,0x1,0x44,0x2,0xa0,0x2,0xaa,0x2,0x60,0x2,0x23,0x2, +0x20,0x2,0xc,0x2,0xc4,0x1,0x87,0x1,0x6d,0x1,0x55,0x1, +0x36,0x1,0x26,0x1,0x4f,0x1,0xdd,0x1,0xa5,0x2,0x45,0x3, +0xc1,0x3,0x65,0x4,0x1c,0x5,0xbf,0x5,0x81,0x6,0x54,0x7, +0xd0,0x7,0xd0,0x7,0x8e,0x7,0x7e,0x7,0xc6,0x7,0xf5,0x7, +0xa8,0x7,0x4,0x7,0x70,0x6,0x1a,0x6,0xb4,0x5,0x7,0x5, +0x69,0x4,0x7,0x4,0xa2,0x3,0x9,0x3,0x1e,0x2,0x3b,0x1, +0x1c,0x1,0x9a,0x1,0xda,0x1,0xaf,0x1,0x8c,0x1,0xd1,0x1, +0xa9,0x2,0xd6,0x3,0xcc,0x4,0x4a,0x5,0xab,0x5,0x5e,0x6, +0x42,0x7,0xd1,0x7,0xbc,0x7,0x59,0x7,0x3d,0x7,0x44,0x7, +0xba,0x6,0xa9,0x5,0xc3,0x4,0x2c,0x4,0x8b,0x3,0xa5,0x2, +0x84,0x1,0x8f,0x0,0x3a,0x0,0x44,0x0,0xde,0xff,0xdd,0xfe, +0x6,0xfe,0xdd,0xfd,0xfb,0xfd,0xce,0xfd,0x69,0xfd,0x32,0xfd, +0x3b,0xfd,0x63,0xfd,0xb2,0xfd,0x14,0xfe,0x81,0xfe,0x3c,0xff, +0x1c,0x0,0x99,0x0,0xd9,0x0,0x50,0x1,0xdd,0x1,0x2a,0x2, +0x15,0x2,0xb4,0x1,0x7b,0x1,0xa6,0x1,0xda,0x1,0xda,0x1, +0xe4,0x1,0x2c,0x2,0xcc,0x2,0xb4,0x3,0x7e,0x4,0xd,0x5, +0xd5,0x5,0xd7,0x6,0x7c,0x7,0xa6,0x7,0xb6,0x7,0xe5,0x7, +0x2f,0x8,0x3a,0x8,0xc3,0x7,0x1d,0x7,0xb7,0x6,0x91,0x6, +0x69,0x6,0x3,0x6,0x70,0x5,0xdd,0x4,0x3e,0x4,0x9e,0x3, +0x21,0x3,0xa4,0x2,0xf,0x2,0x91,0x1,0x54,0x1,0x50,0x1, +0x6b,0x1,0x95,0x1,0xdf,0x1,0x75,0x2,0x76,0x3,0x9c,0x4, +0x7f,0x5,0x27,0x6,0xcc,0x6,0x7d,0x7,0x45,0x8,0x1,0x9, +0x74,0x9,0xc8,0x9,0x1a,0xa,0x3c,0xa,0x2c,0xa,0xfd,0x9, +0xb4,0x9,0x77,0x9,0x2e,0x9,0x75,0x8,0x4b,0x7,0x1d,0x6, +0x28,0x5,0x46,0x4,0x41,0x3,0x19,0x2,0xf6,0x0,0xc,0x0, +0x8d,0xff,0x73,0xff,0x76,0xff,0x6b,0xff,0x61,0xff,0x6d,0xff, +0xa0,0xff,0x11,0x0,0xb8,0x0,0x4b,0x1,0x8b,0x1,0x95,0x1, +0xb4,0x1,0x2,0x2,0x68,0x2,0xac,0x2,0xa6,0x2,0x6f,0x2, +0x11,0x2,0x6a,0x1,0x8f,0x0,0xb5,0xff,0xd0,0xfe,0xc1,0xfd, +0x85,0xfc,0x20,0xfb,0xb5,0xf9,0x93,0xf8,0xd3,0xf7,0x4f,0xf7, +0xc7,0xf6,0x9,0xf6,0x34,0xf5,0xa0,0xf4,0x55,0xf4,0x15,0xf4, +0xb2,0xf3,0xf5,0xf2,0xcc,0xf1,0xb4,0xf0,0xb,0xf0,0x7f,0xef, +0xcd,0xee,0x17,0xee,0x74,0xed,0x2,0xed,0xdd,0xec,0xc9,0xec, +0x87,0xec,0x32,0xec,0xeb,0xeb,0xa0,0xeb,0x1c,0xeb,0x33,0xea, +0x1d,0xe9,0x3b,0xe8,0x7f,0xe7,0x98,0xe6,0x7e,0xe5,0x69,0xe4, +0xb6,0xe3,0x8f,0xe3,0x9a,0xe3,0x76,0xe3,0x3a,0xe3,0x2d,0xe3, +0x63,0xe3,0xa1,0xe3,0xb2,0xe3,0xbb,0xe3,0xde,0xe3,0xfa,0xe3, +0xfc,0xe3,0xec,0xe3,0xec,0xe3,0x40,0xe4,0xd6,0xe4,0x5f,0xe5, +0xdc,0xe5,0x5f,0xe6,0xfe,0xe6,0xdc,0xe7,0xc1,0xe8,0x6b,0xe9, +0xb,0xea,0xbf,0xea,0x68,0xeb,0xe6,0xeb,0x31,0xec,0x95,0xec, +0x40,0xed,0xcd,0xed,0xf,0xee,0x52,0xee,0xb1,0xee,0x3c,0xef, +0xe,0xf0,0xc9,0xf0,0x14,0xf1,0x4c,0xf1,0xe0,0xf1,0xa0,0xf2, +0x35,0xf3,0xa2,0xf3,0xf9,0xf3,0x4f,0xf4,0xbb,0xf4,0x21,0xf5, +0x7d,0xf5,0xfe,0xf5,0xa3,0xf6,0x5a,0xf7,0x30,0xf8,0x11,0xf9, +0x1,0xfa,0x22,0xfb,0x48,0xfc,0x41,0xfd,0x22,0xfe,0xee,0xfe, +0x8b,0xff,0xe4,0xff,0xd,0x0,0x3f,0x0,0x78,0x0,0x86,0x0, +0x77,0x0,0x79,0x0,0xb7,0x0,0x38,0x1,0x9c,0x1,0xa0,0x1, +0x96,0x1,0xcd,0x1,0x2f,0x2,0x5f,0x2,0xf,0x2,0x6f,0x1, +0xed,0x0,0x9f,0x0,0x59,0x0,0x17,0x0,0xfa,0xff,0x11,0x0, +0x28,0x0,0x24,0x0,0x4f,0x0,0xe2,0x0,0xad,0x1,0x52,0x2, +0x7d,0x2,0x48,0x2,0x40,0x2,0xa0,0x2,0xa,0x3,0x29,0x3, +0x10,0x3,0x3,0x3,0x1f,0x3,0x41,0x3,0x61,0x3,0xb5,0x3, +0x4a,0x4,0xd7,0x4,0xfa,0x4,0xa1,0x4,0x51,0x4,0x8a,0x4, +0x1c,0x5,0x6d,0x5,0x3b,0x5,0xc9,0x4,0x95,0x4,0xda,0x4, +0x55,0x5,0x93,0x5,0x9d,0x5,0xdc,0x5,0x43,0x6,0x70,0x6, +0x87,0x6,0xed,0x6,0xad,0x7,0x7b,0x8,0xd9,0x8,0xad,0x8, +0xa0,0x8,0x27,0x9,0xeb,0x9,0x66,0xa,0x5f,0xa,0x18,0xa, +0x15,0xa,0x5e,0xa,0x96,0xa,0xbe,0xa,0x19,0xb,0x9d,0xb, +0xf6,0xb,0xa,0xc,0x1b,0xc,0x76,0xc,0x27,0xd,0xdc,0xd, +0x22,0xe,0x1,0xe,0xe4,0xd,0x9,0xe,0x66,0xe,0xa8,0xe, +0x9b,0xe,0x86,0xe,0x9d,0xe,0xab,0xe,0x97,0xe,0x78,0xe, +0x5f,0xe,0x49,0xe,0x7,0xe,0x87,0xd,0x0,0xd,0x95,0xc, +0x4b,0xc,0x13,0xc,0xbb,0xb,0x48,0xb,0xf9,0xa,0xe7,0xa, +0xf3,0xa,0x2,0xb,0x20,0xb,0x57,0xb,0x72,0xb,0x42,0xb, +0xfd,0xa,0xe1,0xa,0xf2,0xa,0xf,0xb,0xfc,0xa,0x99,0xa, +0x16,0xa,0xa9,0x9,0x4b,0x9,0xf6,0x8,0xb3,0x8,0x61,0x8, +0xde,0x7,0x36,0x7,0x76,0x6,0xb3,0x5,0x1e,0x5,0xbc,0x4, +0x68,0x4,0x7,0x4,0x97,0x3,0x2d,0x3,0xd7,0x2,0x94,0x2, +0x82,0x2,0xb2,0x2,0xe8,0x2,0xd8,0x2,0x84,0x2,0x3d,0x2, +0x3f,0x2,0x7c,0x2,0xb2,0x2,0x96,0x2,0x2c,0x2,0xe5,0x1, +0xff,0x1,0x27,0x2,0xf,0x2,0xcc,0x1,0x7b,0x1,0x2c,0x1, +0xe1,0x0,0x84,0x0,0x25,0x0,0xfe,0xff,0xe8,0xff,0x82,0xff, +0xd5,0xfe,0x3f,0xfe,0x1e,0xfe,0x9c,0xfe,0x3b,0xff,0x5c,0xff, +0x45,0xff,0x65,0xff,0xa4,0xff,0xf,0x0,0xca,0x0,0x93,0x1, +0x1e,0x2,0x4e,0x2,0x39,0x2,0x40,0x2,0x97,0x2,0x1d,0x3, +0x97,0x3,0xba,0x3,0x70,0x3,0x20,0x3,0x11,0x3,0x17,0x3, +0xfb,0x2,0xb1,0x2,0x3c,0x2,0xa5,0x1,0x7,0x1,0x91,0x0, +0x73,0x0,0x98,0x0,0xa7,0x0,0x80,0x0,0x57,0x0,0x6e,0x0, +0xf7,0x0,0xd0,0x1,0x73,0x2,0xb3,0x2,0xc7,0x2,0xc4,0x2, +0xda,0x2,0x47,0x3,0xc1,0x3,0xea,0x3,0xd7,0x3,0xa9,0x3, +0x6f,0x3,0x5e,0x3,0x95,0x3,0xdb,0x3,0xd6,0x3,0x6a,0x3, +0xd0,0x2,0x63,0x2,0x4f,0x2,0x56,0x2,0xc,0x2,0x5b,0x1, +0xa5,0x0,0x46,0x0,0x29,0x0,0x14,0x0,0x24,0x0,0x66,0x0, +0x83,0x0,0x55,0x0,0x2f,0x0,0x71,0x0,0x22,0x1,0xea,0x1, +0x66,0x2,0x73,0x2,0x47,0x2,0x59,0x2,0xd7,0x2,0x68,0x3, +0xb1,0x3,0xa5,0x3,0x69,0x3,0x1f,0x3,0xdb,0x2,0xb9,0x2, +0xb8,0x2,0x92,0x2,0x3f,0x2,0xea,0x1,0x81,0x1,0x25,0x1, +0x27,0x1,0x53,0x1,0x5a,0x1,0x3a,0x1,0xe8,0x0,0x84,0x0, +0x7e,0x0,0xda,0x0,0x6,0x1,0xbe,0x0,0x5b,0x0,0x2c,0x0, +0x34,0x0,0x4e,0x0,0x3c,0x0,0x27,0x0,0x67,0x0,0xac,0x0, +0x9f,0x0,0xa5,0x0,0xf5,0x0,0x60,0x1,0xd6,0x1,0x26,0x2, +0x52,0x2,0xb8,0x2,0x41,0x3,0x96,0x3,0xe0,0x3,0x5f,0x4, +0xf6,0x4,0x73,0x5,0xc9,0x5,0x1f,0x6,0x85,0x6,0xdf,0x6, +0x18,0x7,0x1c,0x7,0xee,0x6,0xc8,0x6,0xc5,0x6,0x9a,0x6, +0xc,0x6,0x53,0x5,0xb5,0x4,0x36,0x4,0xc9,0x3,0x50,0x3, +0x9c,0x2,0xdc,0x1,0x75,0x1,0x57,0x1,0x2b,0x1,0xcf,0x0, +0x70,0x0,0x61,0x0,0xb6,0x0,0x10,0x1,0x2c,0x1,0x3c,0x1, +0x9a,0x1,0x66,0x2,0x43,0x3,0xaa,0x3,0xb3,0x3,0x5,0x4, +0xcf,0x4,0x78,0x5,0x8e,0x5,0x66,0x5,0x7b,0x5,0xb3,0x5, +0xbc,0x5,0x94,0x5,0x55,0x5,0x2b,0x5,0x3e,0x5,0x39,0x5, +0xc2,0x4,0x38,0x4,0xb,0x4,0x3,0x4,0xc1,0x3,0x4f,0x3, +0xe8,0x2,0xad,0x2,0x96,0x2,0x8c,0x2,0x78,0x2,0x63,0x2, +0x82,0x2,0xbf,0x2,0xbe,0x2,0x7e,0x2,0x5d,0x2,0x8d,0x2, +0xcb,0x2,0xa9,0x2,0x22,0x2,0xac,0x1,0xab,0x1,0x5,0x2, +0x4f,0x2,0x52,0x2,0x55,0x2,0xac,0x2,0x52,0x3,0x0,0x4, +0x81,0x4,0x0,0x5,0xc0,0x5,0x9d,0x6,0x3f,0x7,0x88,0x7, +0xad,0x7,0xf,0x8,0xa9,0x8,0x2,0x9,0xf8,0x8,0xc9,0x8, +0x9c,0x8,0x6f,0x8,0x1c,0x8,0x8d,0x7,0xe7,0x6,0x4b,0x6, +0xa7,0x5,0xe6,0x4,0x11,0x4,0x52,0x3,0xbf,0x2,0x3b,0x2, +0xab,0x1,0x2e,0x1,0xfb,0x0,0xf4,0x0,0xe4,0x0,0xfc,0x0, +0x6a,0x1,0x5,0x2,0xc5,0x2,0xb2,0x3,0x9d,0x4,0x93,0x5, +0xb3,0x6,0xc0,0x7,0x85,0x8,0x1,0x9,0x3d,0x9,0x42,0x9, +0xf,0x9,0x96,0x8,0xd2,0x7,0xbb,0x6,0x56,0x5,0xc4,0x3, +0x30,0x2,0xb9,0x0,0x5b,0xff,0xfb,0xfd,0x79,0xfc,0xdb,0xfa, +0x61,0xf9,0x21,0xf8,0xf0,0xf6,0xc8,0xf5,0xd2,0xf4,0x1a,0xf4, +0x9b,0xf3,0x3e,0xf3,0x14,0xf3,0x75,0xf3,0x66,0xf4,0x83,0xf5, +0xa0,0xf6,0xc3,0xf7,0xf2,0xf8,0x4f,0xfa,0xc7,0xfb,0xe1,0xfc, +0x64,0xfd,0xa4,0xfd,0xe4,0xfd,0xa,0xfe,0x2,0xfe,0xd3,0xfd, +0x7d,0xfd,0xf,0xfd,0x8e,0xfc,0xd6,0xfb,0xec,0xfa,0x15,0xfa, +0x4c,0xf9,0x3f,0xf8,0xab,0xf6,0x99,0xf4,0x7d,0xf2,0xb2,0xf0, +0xfc,0xee,0x16,0xed,0x34,0xeb,0x84,0xe9,0x10,0xe8,0x2,0xe7, +0x41,0xe6,0x91,0xe5,0x20,0xe5,0x19,0xe5,0x28,0xe5,0xff,0xe4, +0xaf,0xe4,0x88,0xe4,0xc7,0xe4,0x1e,0xe5,0xc,0xe5,0xad,0xe4, +0x92,0xe4,0xf6,0xe4,0x90,0xe5,0xf6,0xe5,0xa,0xe6,0x28,0xe6, +0x9f,0xe6,0x11,0xe7,0x1d,0xe7,0xe,0xe7,0x25,0xe7,0x3c,0xe7, +0x29,0xe7,0xba,0xe6,0x7,0xe6,0xab,0xe5,0xb0,0xe5,0x75,0xe5, +0xce,0xe4,0xfb,0xe3,0x48,0xe3,0xe6,0xe2,0x80,0xe2,0xca,0xe1, +0x1f,0xe1,0xc2,0xe0,0x91,0xe0,0x7c,0xe0,0x9c,0xe0,0x1e,0xe1, +0x2d,0xe2,0x8a,0xe3,0xbf,0xe4,0xc8,0xe5,0x1d,0xe7,0xe6,0xe8, +0xcb,0xea,0x8c,0xec,0x1e,0xee,0x87,0xef,0xf4,0xf0,0x8b,0xf2, +0x3b,0xf4,0xf5,0xf5,0xa2,0xf7,0x2d,0xf9,0x94,0xfa,0xbf,0xfb, +0xb3,0xfc,0x9b,0xfd,0x59,0xfe,0xb7,0xfe,0xa4,0xfe,0x25,0xfe, +0x71,0xfd,0xbc,0xfc,0x5,0xfc,0x6b,0xfb,0xfd,0xfa,0x9a,0xfa, +0x49,0xfa,0x2d,0xfa,0x5a,0xfa,0xe4,0xfa,0xa0,0xfb,0x2c,0xfc, +0x7c,0xfc,0xde,0xfc,0x8b,0xfd,0x68,0xfe,0x33,0xff,0xcb,0xff, +0x50,0x0,0xfe,0x0,0xef,0x1,0xfb,0x2,0xf2,0x3,0xdf,0x4, +0xeb,0x5,0xee,0x6,0x77,0x7,0x76,0x7,0x5b,0x7,0x67,0x7, +0x72,0x7,0x43,0x7,0xb8,0x6,0xe7,0x5,0x2d,0x5,0xcf,0x4, +0x9c,0x4,0x48,0x4,0xf0,0x3,0xd0,0x3,0xd3,0x3,0xd1,0x3, +0xbd,0x3,0x8d,0x3,0x52,0x3,0x2b,0x3,0x3,0x3,0xa7,0x2, +0x23,0x2,0xbb,0x1,0x93,0x1,0x8d,0x1,0x80,0x1,0x6f,0x1, +0x75,0x1,0x92,0x1,0xbc,0x1,0xf,0x2,0x95,0x2,0xf,0x3, +0x5d,0x3,0x8d,0x3,0xb3,0x3,0x10,0x4,0xc2,0x4,0x74,0x5, +0xee,0x5,0x52,0x6,0xbc,0x6,0x39,0x7,0xb9,0x7,0x22,0x8, +0x94,0x8,0x14,0x9,0x63,0x9,0x68,0x9,0x2f,0x9,0xeb,0x8, +0x7,0x9,0x5f,0x9,0x3a,0x9,0x91,0x8,0x6,0x8,0xbe,0x7, +0x7f,0x7,0x50,0x7,0x21,0x7,0xc5,0x6,0x61,0x6,0x2c,0x6, +0x20,0x6,0x4b,0x6,0xba,0x6,0x4a,0x7,0xbf,0x7,0xff,0x7, +0x44,0x8,0xf4,0x8,0x0,0xa,0xf3,0xa,0x8f,0xb,0xd8,0xb, +0xf6,0xb,0x29,0xc,0x82,0xc,0xcb,0xc,0xe3,0xc,0xd5,0xc, +0xa7,0xc,0x58,0xc,0xe3,0xb,0x62,0xb,0x26,0xb,0x18,0xb, +0xa6,0xa,0xbd,0x9,0xcb,0x8,0x6,0x8,0x84,0x7,0x41,0x7, +0xd7,0x6,0x14,0x6,0x5e,0x5,0x12,0x5,0x10,0x5,0xff,0x4, +0xce,0x4,0xb2,0x4,0xbb,0x4,0xb7,0x4,0x78,0x4,0x25,0x4, +0x20,0x4,0x4e,0x4,0x44,0x4,0xfa,0x3,0x95,0x3,0x37,0x3, +0x20,0x3,0x23,0x3,0xdc,0x2,0x66,0x2,0xff,0x1,0xb4,0x1, +0x77,0x1,0x16,0x1,0xa4,0x0,0x8a,0x0,0xc6,0x0,0xf3,0x0, +0xe4,0x0,0xc8,0x0,0xec,0x0,0x63,0x1,0xdd,0x1,0xed,0x1, +0x97,0x1,0x5b,0x1,0x67,0x1,0x5d,0x1,0xe,0x1,0x9a,0x0, +0x43,0x0,0x48,0x0,0x50,0x0,0xf7,0xff,0xae,0xff,0xc7,0xff, +0xe8,0xff,0xde,0xff,0x83,0xff,0xba,0xfe,0xf,0xfe,0xed,0xfd, +0xf3,0xfd,0xb0,0xfd,0x43,0xfd,0x14,0xfd,0x51,0xfd,0xd1,0xfd, +0x7e,0xfe,0x6c,0xff,0x81,0x0,0x86,0x1,0x68,0x2,0x38,0x3, +0xd,0x4,0xeb,0x4,0xba,0x5,0x3b,0x6,0x4d,0x6,0x43,0x6, +0x6d,0x6,0xb2,0x6,0xfb,0x6,0x42,0x7,0x5a,0x7,0x41,0x7, +0x2d,0x7,0x28,0x7,0x2e,0x7,0x30,0x7,0xed,0x6,0x50,0x6, +0x83,0x5,0xb9,0x4,0x2b,0x4,0xf2,0x3,0xc4,0x3,0x5b,0x3, +0xe8,0x2,0xcb,0x2,0x1c,0x3,0xbf,0x3,0x80,0x4,0x7,0x5, +0x49,0x5,0xba,0x5,0x75,0x6,0x1b,0x7,0xac,0x7,0x44,0x8, +0xa3,0x8,0xbf,0x8,0xb8,0x8,0x99,0x8,0x9c,0x8,0xe0,0x8, +0x5,0x9,0xb8,0x8,0xfd,0x7,0x3a,0x7,0x3,0x7,0x3c,0x7, +0x21,0x7,0x51,0x6,0x30,0x5,0x3e,0x4,0x94,0x3,0x11,0x3, +0x89,0x2,0xb5,0x1,0x9b,0x0,0xa2,0xff,0xde,0xfe,0x3f,0xfe, +0xef,0xfd,0xdd,0xfd,0xe0,0xfd,0xd9,0xfd,0x8b,0xfd,0x39,0xfd, +0x63,0xfd,0xd6,0xfd,0x26,0xfe,0x2a,0xfe,0xbd,0xfd,0x2a,0xfd, +0x1f,0xfd,0x90,0xfd,0xc4,0xfd,0x84,0xfd,0x53,0xfd,0x8f,0xfd, +0x1e,0xfe,0xbb,0xfe,0x4e,0xff,0x12,0x0,0xc,0x1,0xa8,0x1, +0xb2,0x1,0xb6,0x1,0x12,0x2,0xd8,0x2,0xa1,0x3,0x67,0x3, +0x31,0x2,0x8d,0x1,0x23,0x2,0xe9,0x2,0xe5,0x2,0x31,0x2, +0xbd,0x1,0x21,0x2,0x93,0x2,0x26,0x2,0x4a,0x1,0xc4,0x0, +0x93,0x0,0x5c,0x0,0x89,0xff,0x15,0xfe,0x6d,0xfd,0x3b,0xfe, +0xda,0xfe,0x46,0xfe,0xaf,0xfd,0x28,0xfe,0x9e,0xff,0x71,0x1, +0xa5,0x2,0xec,0x2,0x50,0x3,0x8c,0x4,0x1d,0x6,0x4d,0x7, +0xd,0x8,0xdb,0x8,0xff,0x9,0xc7,0xa,0x9f,0xa,0x80,0xa, +0x5e,0xb,0x82,0xc,0xe4,0xc,0x57,0xc,0x31,0xb,0x60,0xa, +0x8b,0xa,0xc1,0xa,0xd7,0x9,0x29,0x8,0xce,0x6,0x26,0x6, +0xb3,0x5,0xd9,0x4,0xd2,0x3,0x49,0x3,0x30,0x3,0xf4,0x2, +0x65,0x2,0xed,0x1,0x4b,0x2,0xaa,0x3,0xd3,0x4,0x98,0x4, +0xe2,0x3,0x5d,0x4,0xfc,0x5,0xa4,0x7,0xae,0x8,0x0,0x9, +0x36,0x9,0x7,0xa,0x2,0xb,0x86,0xb,0xf3,0xb,0x86,0xc, +0xe4,0xc,0xde,0xc,0x64,0xc,0xb1,0xb,0x68,0xb,0x62,0xb, +0xbe,0xa,0x6a,0x9,0x14,0x8,0x18,0x7,0x76,0x6,0xea,0x5, +0x3,0x5,0xec,0x3,0x3d,0x3,0xef,0x2,0xaa,0x2,0x90,0x2, +0xb1,0x2,0xbb,0x2,0x78,0x2,0xfb,0x1,0x88,0x1,0x7f,0x1, +0xdb,0x1,0x28,0x2,0xb,0x2,0x8a,0x1,0xf,0x1,0x19,0x1, +0xa2,0x1,0x22,0x2,0x38,0x2,0xf3,0x1,0x9c,0x1,0x5f,0x1, +0x41,0x1,0x36,0x1,0x14,0x1,0xaf,0x0,0x26,0x0,0xb9,0xff, +0x75,0xff,0x70,0xff,0xad,0xff,0xbf,0xff,0x6f,0xff,0xf5,0xfe, +0x67,0xfe,0xe8,0xfd,0xa4,0xfd,0x5f,0xfd,0xd0,0xfc,0xe4,0xfb, +0xb2,0xfa,0xd0,0xf9,0xc0,0xf9,0x1b,0xfa,0x4c,0xfa,0x55,0xfa, +0x75,0xfa,0xdb,0xfa,0x82,0xfb,0x31,0xfc,0xc3,0xfc,0x44,0xfd, +0xb8,0xfd,0x4,0xfe,0x1d,0xfe,0x24,0xfe,0x4d,0xfe,0xbb,0xfe, +0x1b,0xff,0xe7,0xfe,0x71,0xfe,0x7e,0xfe,0xfb,0xfe,0x40,0xff, +0xda,0xfe,0xce,0xfd,0xa5,0xfc,0xd2,0xfb,0x19,0xfb,0x11,0xfa, +0xb4,0xf8,0x47,0xf7,0x17,0xf6,0x3c,0xf5,0x84,0xf4,0xc3,0xf3, +0x56,0xf3,0xa5,0xf3,0x3b,0xf4,0x87,0xf4,0xc4,0xf4,0x3c,0xf5, +0xec,0xf5,0xbe,0xf6,0x43,0xf7,0x2a,0xf7,0xf0,0xf6,0x8,0xf7, +0x29,0xf7,0xf0,0xf6,0x3e,0xf6,0x34,0xf5,0x35,0xf4,0x74,0xf3, +0x8f,0xf2,0x4f,0xf1,0x5,0xf0,0xc2,0xee,0x3c,0xed,0x80,0xeb, +0xce,0xe9,0x46,0xe8,0xed,0xe6,0xac,0xe5,0x5f,0xe4,0x14,0xe3, +0x14,0xe2,0xa0,0xe1,0x99,0xe1,0xa9,0xe1,0xdb,0xe1,0x74,0xe2, +0x57,0xe3,0x34,0xe4,0xb,0xe5,0xf9,0xe5,0xe3,0xe6,0x91,0xe7, +0xec,0xe7,0xf,0xe8,0x2f,0xe8,0x61,0xe8,0x97,0xe8,0xae,0xe8, +0x70,0xe8,0xf8,0xe7,0xbf,0xe7,0xdc,0xe7,0xf2,0xe7,0xe4,0xe7, +0xd6,0xe7,0xbb,0xe7,0x78,0xe7,0x2d,0xe7,0x19,0xe7,0x50,0xe7, +0xa8,0xe7,0xf0,0xe7,0x24,0xe8,0x70,0xe8,0x12,0xe9,0x2e,0xea, +0x86,0xeb,0xb4,0xec,0xa9,0xed,0xb4,0xee,0xfe,0xef,0x53,0xf1, +0x79,0xf2,0x83,0xf3,0x93,0xf4,0x7d,0xf5,0x1d,0xf6,0xaf,0xf6, +0x7d,0xf7,0x95,0xf8,0xd3,0xf9,0xe4,0xfa,0x78,0xfb,0xcd,0xfb, +0xa3,0xfc,0x2a,0xfe,0xa8,0xff,0x9c,0x0,0x46,0x1,0xe8,0x1, +0x76,0x2,0xf1,0x2,0x6d,0x3,0xec,0x3,0x6a,0x4,0xbd,0x4, +0xa5,0x4,0x30,0x4,0xd2,0x3,0xd8,0x3,0xc,0x4,0xf1,0x3, +0x63,0x3,0xc2,0x2,0x68,0x2,0x3a,0x2,0xfd,0x1,0x90,0x1, +0x1b,0x1,0xec,0x0,0xee,0x0,0xeb,0x0,0xff,0x0,0x56,0x1, +0xf3,0x1,0xc2,0x2,0x92,0x3,0x66,0x4,0x73,0x5,0xd2,0x6, +0x54,0x8,0x87,0x9,0x3d,0xa,0xc4,0xa,0x42,0xb,0xbe,0xb, +0x36,0xc,0x35,0xc,0x97,0xb,0xf3,0xa,0x78,0xa,0xe5,0x9, +0x39,0x9,0x72,0x8,0x89,0x7,0xc1,0x6,0x2a,0x6,0x6a,0x5, +0x6d,0x4,0x93,0x3,0xfb,0x2,0x72,0x2,0xf5,0x1,0x97,0x1, +0x6a,0x1,0x9c,0x1,0x23,0x2,0xbb,0x2,0x60,0x3,0x3c,0x4, +0x68,0x5,0xbf,0x6,0xde,0x7,0xb1,0x8,0x74,0x9,0x30,0xa, +0xcc,0xa,0x2f,0xb,0x47,0xb,0x54,0xb,0x92,0xb,0xc1,0xb, +0xab,0xb,0x8a,0xb,0x7e,0xb,0x7d,0xb,0x8b,0xb,0x81,0xb, +0x45,0xb,0x1e,0xb,0x1f,0xb,0xf2,0xa,0x7e,0xa,0x10,0xa, +0xdf,0x9,0xec,0x9,0x23,0xa,0x5f,0xa,0x79,0xa,0x84,0xa, +0xad,0xa,0xf3,0xa,0x4c,0xb,0xa7,0xb,0xc6,0xb,0xa7,0xb, +0x85,0xb,0x67,0xb,0x48,0xb,0x32,0xb,0x2f,0xb,0x50,0xb, +0x91,0xb,0xe0,0xb,0x3a,0xc,0x8e,0xc,0xf5,0xc,0x8b,0xd, +0x15,0xe,0x58,0xe,0x74,0xe,0x9e,0xe,0xe1,0xe,0xa,0xf, +0xf7,0xe,0xdc,0xe,0xc6,0xe,0x92,0xe,0x2d,0xe,0xae,0xd, +0x42,0xd,0xd6,0xc,0x1e,0xc,0x23,0xb,0xc,0xa,0xe4,0x8, +0xe2,0x7,0x8,0x7,0x9,0x6,0xe8,0x4,0xc2,0x3,0x9c,0x2, +0xae,0x1,0xa,0x1,0x81,0x0,0x13,0x0,0xc1,0xff,0x70,0xff, +0x32,0xff,0x13,0xff,0x17,0xff,0x77,0xff,0x35,0x0,0xfd,0x0, +0xa1,0x1,0x1b,0x2,0x89,0x2,0x44,0x3,0x35,0x4,0xce,0x4, +0xfc,0x4,0x1f,0x5,0x4d,0x5,0x61,0x5,0x45,0x5,0xdf,0x4, +0x64,0x4,0x32,0x4,0x6,0x4,0x5f,0x3,0x6b,0x2,0x9f,0x1, +0x20,0x1,0xc3,0x0,0x0,0x0,0xaf,0xfe,0x96,0xfd,0x31,0xfd, +0xf8,0xfc,0x8c,0xfc,0x2c,0xfc,0x7,0xfc,0x33,0xfc,0xb1,0xfc, +0x34,0xfd,0x96,0xfd,0x38,0xfe,0x3b,0xff,0x36,0x0,0xef,0x0, +0x79,0x1,0xe,0x2,0x14,0x3,0x6c,0x4,0x75,0x5,0xf,0x6, +0x81,0x6,0x9,0x7,0xe6,0x7,0xfb,0x8,0xd5,0x9,0x2c,0xa, +0x10,0xa,0xdc,0x9,0xe4,0x9,0x4,0xa,0xe7,0x9,0x68,0x9, +0xbf,0x8,0x48,0x8,0xec,0x7,0x64,0x7,0xd3,0x6,0x75,0x6, +0x45,0x6,0xf,0x6,0x95,0x5,0xe4,0x4,0x6b,0x4,0x62,0x4, +0x65,0x4,0xf9,0x3,0x47,0x3,0xd2,0x2,0xd9,0x2,0x43,0x3, +0x98,0x3,0x8a,0x3,0x79,0x3,0xbc,0x3,0x3a,0x4,0xd1,0x4, +0x47,0x5,0x9d,0x5,0x1a,0x6,0x70,0x6,0x35,0x6,0xec,0x5, +0x1c,0x6,0x80,0x6,0x9e,0x6,0x29,0x6,0x48,0x5,0xaf,0x4, +0xa0,0x4,0x7a,0x4,0xc8,0x3,0xe0,0x2,0x30,0x2,0xb6,0x1, +0x13,0x1,0x15,0x0,0x2c,0xff,0xbd,0xfe,0x66,0xfe,0xa0,0xfd, +0xa0,0xfc,0xff,0xfb,0x7,0xfc,0x83,0xfc,0xdc,0xfc,0xb7,0xfc, +0xa2,0xfc,0x48,0xfd,0x56,0xfe,0x2d,0xff,0xc9,0xff,0x7a,0x0, +0x4d,0x1,0xe5,0x1,0x6,0x2,0x4,0x2,0x2d,0x2,0x87,0x2, +0xe9,0x2,0xe2,0x2,0x57,0x2,0xe7,0x1,0xfa,0x1,0x63,0x2, +0xc1,0x2,0xba,0x2,0x61,0x2,0x14,0x2,0xf,0x2,0x32,0x2, +0x5,0x2,0x72,0x1,0x8,0x1,0xe8,0x0,0xcf,0x0,0xc4,0x0, +0xdc,0x0,0x43,0x1,0xf,0x2,0xd6,0x2,0x74,0x3,0x41,0x4, +0x35,0x5,0x11,0x6,0xd6,0x6,0x89,0x7,0x23,0x8,0x8d,0x8, +0xa7,0x8,0x9a,0x8,0xbb,0x8,0x13,0x9,0x5f,0x9,0x51,0x9, +0xfd,0x8,0x2,0x9,0xa4,0x9,0x1f,0xa,0xe3,0x9,0x74,0x9, +0x6b,0x9,0xcc,0x9,0x29,0xa,0xf3,0x9,0x58,0x9,0x3d,0x9, +0xb6,0x9,0xef,0x9,0xb1,0x9,0x7b,0x9,0xb8,0x9,0x76,0xa, +0x2e,0xb,0x4a,0xb,0x28,0xb,0x61,0xb,0xc4,0xb,0xf3,0xb, +0xe0,0xb,0x96,0xb,0x4c,0xb,0x0,0xb,0x59,0xa,0x62,0x9, +0x87,0x8,0x1,0x8,0xa1,0x7,0xfc,0x6,0x20,0x6,0xa0,0x5, +0xac,0x5,0xe5,0x5,0xfe,0x5,0xeb,0x5,0xe4,0x5,0x21,0x6, +0x85,0x6,0xdd,0x6,0x2b,0x7,0x6c,0x7,0x8b,0x7,0x7b,0x7, +0x47,0x7,0x30,0x7,0x89,0x7,0xa,0x8,0xf5,0x7,0x59,0x7, +0xe1,0x6,0x8f,0x6,0x19,0x6,0x7b,0x5,0xb3,0x4,0xd2,0x3, +0xe5,0x2,0x9e,0x1,0x8,0x0,0xad,0xfe,0xc4,0xfd,0x19,0xfd, +0x68,0xfc,0x8a,0xfb,0xd5,0xfa,0xc5,0xfa,0x18,0xfb,0x3f,0xfb, +0x4d,0xfb,0x8a,0xfb,0x2,0xfc,0xc9,0xfc,0xa6,0xfd,0x26,0xfe, +0x86,0xfe,0x20,0xff,0xa5,0xff,0xf2,0xff,0x44,0x0,0x9f,0x0, +0xe0,0x0,0xe7,0x0,0xa8,0x0,0x5e,0x0,0x4c,0x0,0x47,0x0, +0x2,0x0,0x8b,0xff,0x1a,0xff,0xbb,0xfe,0x6a,0xfe,0xeb,0xfd, +0xf8,0xfc,0xec,0xfb,0x40,0xfb,0xb9,0xfa,0x2,0xfa,0x26,0xf9, +0x68,0xf8,0x2e,0xf8,0x62,0xf8,0x4c,0xf8,0xe6,0xf7,0xf3,0xf7, +0xa6,0xf8,0x71,0xf9,0xc9,0xf9,0x90,0xf9,0x51,0xf9,0xa3,0xf9, +0x2a,0xfa,0x40,0xfa,0xfe,0xf9,0xe3,0xf9,0x40,0xfa,0xea,0xfa, +0x44,0xfb,0x52,0xfb,0xc5,0xfb,0x96,0xfc,0x20,0xfd,0x2a,0xfd, +0xe5,0xfc,0xb3,0xfc,0xbc,0xfc,0x81,0xfc,0x95,0xfb,0x63,0xfa, +0x92,0xf9,0x30,0xf9,0xc6,0xf8,0xf0,0xf7,0xda,0xf6,0x29,0xf6, +0xf3,0xf5,0x85,0xf5,0xb0,0xf4,0x1,0xf4,0xa1,0xf3,0x44,0xf3, +0xaa,0xf2,0xbc,0xf1,0xe0,0xf0,0x90,0xf0,0x92,0xf0,0x53,0xf0, +0xb6,0xef,0x14,0xef,0xcf,0xee,0xd7,0xee,0xbb,0xee,0x69,0xee, +0x41,0xee,0x54,0xee,0x46,0xee,0xf8,0xed,0xa5,0xed,0x88,0xed, +0xb4,0xed,0xcb,0xed,0x5b,0xed,0xaa,0xec,0x2b,0xec,0xc6,0xeb, +0x35,0xeb,0x7a,0xea,0xd7,0xe9,0x76,0xe9,0x1c,0xe9,0x7e,0xe8, +0xd6,0xe7,0x9b,0xe7,0xe8,0xe7,0x4f,0xe8,0x4a,0xe8,0xcf,0xe7, +0x55,0xe7,0x2e,0xe7,0x19,0xe7,0xb2,0xe6,0xf,0xe6,0x7c,0xe5, +0x10,0xe5,0xb0,0xe4,0x40,0xe4,0x0,0xe4,0x63,0xe4,0x39,0xe5, +0xe6,0xe5,0x46,0xe6,0xa8,0xe6,0x4d,0xe7,0x31,0xe8,0x5,0xe9, +0x6f,0xe9,0x7c,0xe9,0xa6,0xe9,0x29,0xea,0xb8,0xea,0x3a,0xeb, +0xf3,0xeb,0xfa,0xec,0x22,0xee,0x3f,0xef,0x5c,0xf0,0xae,0xf1, +0x1e,0xf3,0x49,0xf4,0x0,0xf5,0x57,0xf5,0x8e,0xf5,0xdb,0xf5, +0xf,0xf6,0x3,0xf6,0xee,0xf5,0x2,0xf6,0x48,0xf6,0xc6,0xf6, +0x4a,0xf7,0xc6,0xf7,0x86,0xf8,0x7c,0xf9,0x46,0xfa,0xd6,0xfa, +0x56,0xfb,0xe3,0xfb,0x79,0xfc,0xd0,0xfc,0xf0,0xfc,0x4f,0xfd, +0x4,0xfe,0xc5,0xfe,0x74,0xff,0x15,0x0,0xd1,0x0,0xbb,0x1, +0x8b,0x2,0x29,0x3,0xbd,0x3,0x53,0x4,0xe0,0x4,0x40,0x5, +0x4f,0x5,0x45,0x5,0x78,0x5,0xd7,0x5,0x8,0x6,0x11,0x6, +0x3d,0x6,0x75,0x6,0x92,0x6,0xa8,0x6,0xa0,0x6,0x8c,0x6, +0xad,0x6,0xaf,0x6,0x45,0x6,0xc6,0x5,0x7a,0x5,0x5c,0x5, +0x31,0x5,0xc1,0x4,0x51,0x4,0x1d,0x4,0xdd,0x3,0x7e,0x3, +0x3f,0x3,0x31,0x3,0x44,0x3,0x4f,0x3,0x28,0x3,0x3,0x3, +0x43,0x3,0xf1,0x3,0xbf,0x4,0x6b,0x5,0xd5,0x5,0x27,0x6, +0xc7,0x6,0xac,0x7,0x54,0x8,0xb1,0x8,0x29,0x9,0xd5,0x9, +0x77,0xa,0xd3,0xa,0xec,0xa,0x17,0xb,0x98,0xb,0x30,0xc, +0x67,0xc,0x1f,0xc,0x91,0xb,0x13,0xb,0xc4,0xa,0x59,0xa, +0x89,0x9,0xad,0x8,0x43,0x8,0x18,0x8,0xbc,0x7,0x65,0x7, +0x80,0x7,0xf3,0x7,0x7f,0x8,0xf6,0x8,0x3b,0x9,0x90,0x9, +0x27,0xa,0xbd,0xa,0x2f,0xb,0x84,0xb,0xcb,0xb,0x5a,0xc, +0x20,0xd,0xac,0xd,0x35,0xe,0x1,0xf,0xc2,0xf,0x5d,0x10, +0xde,0x10,0x1c,0x11,0x33,0x11,0x4e,0x11,0x3d,0x11,0xdb,0x10, +0x5d,0x10,0xeb,0xf,0x79,0xf,0x7,0xf,0x94,0xe,0xc,0xe, +0x8a,0xd,0x42,0xd,0xe,0xd,0xa8,0xc,0xf8,0xb,0x3c,0xb, +0xb3,0xa,0x31,0xa,0x7c,0x9,0xbb,0x8,0x9,0x8,0x5c,0x7, +0xc0,0x6,0x39,0x6,0xdf,0x5,0xd1,0x5,0xe3,0x5,0xc5,0x5, +0x72,0x5,0x4d,0x5,0x9e,0x5,0x1f,0x6,0x4f,0x6,0x1b,0x6, +0xeb,0x5,0xa,0x6,0x40,0x6,0x43,0x6,0x13,0x6,0xc2,0x5, +0x72,0x5,0x3c,0x5,0xd9,0x4,0x26,0x4,0x98,0x3,0x6d,0x3, +0x3a,0x3,0xa4,0x2,0xd5,0x1,0x3b,0x1,0xf6,0x0,0xbb,0x0, +0x45,0x0,0xa7,0xff,0x20,0xff,0xc1,0xfe,0x6c,0xfe,0x12,0xfe, +0xcb,0xfd,0xc2,0xfd,0x6,0xfe,0x59,0xfe,0x70,0xfe,0x7f,0xfe, +0xee,0xfe,0x9d,0xff,0x22,0x0,0x6f,0x0,0xa8,0x0,0xea,0x0, +0x35,0x1,0x54,0x1,0x43,0x1,0x4f,0x1,0xac,0x1,0x40,0x2, +0x9e,0x2,0x81,0x2,0x76,0x2,0xee,0x2,0x7f,0x3,0xbf,0x3, +0xaa,0x3,0x69,0x3,0x37,0x3,0x1a,0x3,0xec,0x2,0xac,0x2, +0x72,0x2,0x66,0x2,0x7f,0x2,0x8b,0x2,0x8d,0x2,0xb0,0x2, +0x13,0x3,0x96,0x3,0xca,0x3,0x99,0x3,0x76,0x3,0x93,0x3, +0xa6,0x3,0x6c,0x3,0x12,0x3,0xe5,0x2,0xc2,0x2,0x8a,0x2, +0x75,0x2,0x90,0x2,0xd9,0x2,0x53,0x3,0x99,0x3,0x71,0x3, +0x62,0x3,0xc9,0x3,0x47,0x4,0x7a,0x4,0x7a,0x4,0x7f,0x4, +0x8f,0x4,0x84,0x4,0x41,0x4,0x1,0x4,0x1d,0x4,0x61,0x4, +0x1f,0x4,0x21,0x3,0xfd,0x1,0x73,0x1,0x78,0x1,0x30,0x1, +0x26,0x0,0xeb,0xfe,0x21,0xfe,0xbc,0xfd,0x58,0xfd,0xbc,0xfc, +0x25,0xfc,0x1,0xfc,0x5,0xfc,0x9c,0xfb,0xf0,0xfa,0x82,0xfa, +0x94,0xfa,0x13,0xfb,0x37,0xfb,0x93,0xfa,0x2c,0xfa,0xc6,0xfa, +0xcf,0xfb,0xa9,0xfc,0x3a,0xfd,0xba,0xfd,0x8e,0xfe,0xb6,0xff, +0xc4,0x0,0x94,0x1,0x6c,0x2,0x72,0x3,0x55,0x4,0xae,0x4, +0xb3,0x4,0x3,0x5,0xda,0x5,0xa2,0x6,0x9d,0x6,0x1,0x6, +0xba,0x5,0x5,0x6,0x4b,0x6,0xc,0x6,0x66,0x5,0xeb,0x4, +0xd4,0x4,0x96,0x4,0xce,0x3,0xe4,0x2,0x68,0x2,0x5e,0x2, +0x53,0x2,0xd2,0x1,0x10,0x1,0xca,0x0,0x39,0x1,0xc8,0x1, +0xf4,0x1,0xda,0x1,0xf5,0x1,0x8d,0x2,0x4c,0x3,0xb3,0x3, +0xde,0x3,0x39,0x4,0xcc,0x4,0x4f,0x5,0x87,0x5,0x8f,0x5, +0xe1,0x5,0xb5,0x6,0x8a,0x7,0xe6,0x7,0xfb,0x7,0x30,0x8, +0x98,0x8,0x2c,0x9,0xbb,0x9,0xfe,0x9,0x7,0xa,0x18,0xa, +0x29,0xa,0x1b,0xa,0xf5,0x9,0xd4,0x9,0xdb,0x9,0xfb,0x9, +0xeb,0x9,0x9b,0x9,0x6c,0x9,0x88,0x9,0xa2,0x9,0xbb,0x9, +0xe7,0x9,0xb8,0x9,0x47,0x9,0x5c,0x9,0xd8,0x9,0xfa,0x9, +0xa8,0x9,0x45,0x9,0x3c,0x9,0xa4,0x9,0xb,0xa,0x28,0xa, +0x3c,0xa,0x7e,0xa,0xe7,0xa,0x74,0xb,0x6,0xc,0x88,0xc, +0x38,0xd,0x8,0xe,0x6d,0xe,0x49,0xe,0x12,0xe,0x14,0xe, +0x23,0xe,0xd6,0xd,0x10,0xd,0x38,0xc,0x7c,0xb,0xa4,0xa, +0xc6,0x9,0xc,0x9,0x4e,0x8,0xa7,0x7,0x2c,0x7,0x6a,0x6, +0x62,0x5,0xb6,0x4,0x4f,0x4,0x90,0x3,0x77,0x2,0x50,0x1, +0x77,0x0,0x44,0x0,0x4b,0x0,0xdb,0xff,0x3c,0xff,0x32,0xff, +0xe9,0xff,0xf5,0x0,0xc1,0x1,0x1d,0x2,0x96,0x2,0xa9,0x3, +0xb9,0x4,0xce,0x4,0x2c,0x4,0xc5,0x3,0xcf,0x3,0xdc,0x3, +0x6a,0x3,0x5a,0x2,0x68,0x1,0x23,0x1,0xf3,0x0,0x4c,0x0, +0x72,0xff,0xd0,0xfe,0x8e,0xfe,0x45,0xfe,0x38,0xfd,0x96,0xfb, +0x64,0xfa,0xd5,0xf9,0x3e,0xf9,0x3f,0xf8,0x4,0xf7,0x10,0xf6, +0xd2,0xf5,0xfb,0xf5,0xf9,0xf5,0xea,0xf5,0x27,0xf6,0xb5,0xf6, +0x64,0xf7,0xcc,0xf7,0xe7,0xf7,0x57,0xf8,0x12,0xf9,0x4a,0xf9, +0xe9,0xf8,0x85,0xf8,0x9d,0xf8,0x4a,0xf9,0xe6,0xf9,0xb8,0xf9, +0x9,0xf9,0xa9,0xf8,0xda,0xf8,0x21,0xf9,0xe7,0xf8,0x38,0xf8, +0x8e,0xf7,0xf6,0xf6,0x6,0xf6,0xb9,0xf4,0x94,0xf3,0xce,0xf2, +0x1b,0xf2,0x48,0xf1,0x5a,0xf0,0x89,0xef,0x2e,0xef,0x59,0xef, +0xaa,0xef,0xc7,0xef,0xd1,0xef,0x39,0xf0,0xec,0xf0,0x8a,0xf1, +0x9,0xf2,0x69,0xf2,0x8d,0xf2,0x92,0xf2,0xa6,0xf2,0xc9,0xf2, +0xee,0xf2,0x10,0xf3,0x2a,0xf3,0x48,0xf3,0x6b,0xf3,0x73,0xf3, +0x66,0xf3,0x64,0xf3,0x48,0xf3,0xe9,0xf2,0x2e,0xf2,0xfa,0xf0, +0x91,0xef,0x34,0xee,0xba,0xec,0x1b,0xeb,0x84,0xe9,0xb,0xe8, +0xcd,0xe6,0xd9,0xe5,0x2a,0xe5,0xaa,0xe4,0x4e,0xe4,0x45,0xe4, +0x88,0xe4,0xd2,0xe4,0x18,0xe5,0x4e,0xe5,0x8f,0xe5,0x25,0xe6, +0xd4,0xe6,0x32,0xe7,0x5f,0xe7,0xb1,0xe7,0x4f,0xe8,0x21,0xe9, +0xeb,0xe9,0x96,0xea,0x3a,0xeb,0xe5,0xeb,0x4f,0xec,0x38,0xec, +0xea,0xeb,0xbb,0xeb,0xb4,0xeb,0x96,0xeb,0xde,0xea,0xb0,0xe9, +0xeb,0xe8,0xb9,0xe8,0xa3,0xe8,0x88,0xe8,0x87,0xe8,0xbe,0xe8, +0x34,0xe9,0xab,0xe9,0x11,0xea,0xc2,0xea,0xd2,0xeb,0xd8,0xec, +0x89,0xed,0xe0,0xed,0x3a,0xee,0x30,0xef,0x8d,0xf0,0x84,0xf1, +0xf4,0xf1,0x54,0xf2,0x6,0xf3,0xf,0xf4,0xf,0xf5,0xdd,0xf5, +0xb0,0xf6,0x7d,0xf7,0x8,0xf8,0x54,0xf8,0xa0,0xf8,0x21,0xf9, +0xcd,0xf9,0x60,0xfa,0x7e,0xfa,0x28,0xfa,0xc,0xfa,0x8f,0xfa, +0x49,0xfb,0xf0,0xfb,0x84,0xfc,0x1c,0xfd,0xe2,0xfd,0xca,0xfe, +0xa7,0xff,0x86,0x0,0x6b,0x1,0x2b,0x2,0x94,0x2,0xa6,0x2, +0xbd,0x2,0x12,0x3,0x62,0x3,0x6e,0x3,0x70,0x3,0xc6,0x3, +0x7c,0x4,0x55,0x5,0xfc,0x5,0x6a,0x6,0xd,0x7,0xfa,0x7, +0xa7,0x8,0xd6,0x8,0xcf,0x8,0xd3,0x8,0xfb,0x8,0x2c,0x9, +0x1e,0x9,0xda,0x8,0xe0,0x8,0x6f,0x9,0x1a,0xa,0x79,0xa, +0xac,0xa,0xfe,0xa,0x68,0xb,0x74,0xb,0xec,0xa,0x2c,0xa, +0x74,0x9,0xb6,0x8,0xe1,0x7,0xf1,0x6,0xfc,0x5,0x24,0x5, +0x9d,0x4,0x91,0x4,0xcc,0x4,0x2,0x5,0x43,0x5,0x9a,0x5, +0xe5,0x5,0x2f,0x6,0x98,0x6,0xf3,0x6,0xf4,0x6,0xc4,0x6, +0xbc,0x6,0xef,0x6,0x58,0x7,0xd6,0x7,0x38,0x8,0xa5,0x8, +0x3d,0x9,0xd9,0x9,0x5d,0xa,0xbe,0xa,0xec,0xa,0xf2,0xa, +0xcf,0xa,0x77,0xa,0xd,0xa,0xc9,0x9,0x9c,0x9,0x5b,0x9, +0x13,0x9,0xd9,0x8,0xc3,0x8,0xf4,0x8,0x49,0x9,0x85,0x9, +0xa5,0x9,0x8c,0x9,0x3a,0x9,0xf7,0x8,0xe0,0x8,0xdb,0x8, +0xd3,0x8,0xa5,0x8,0x3b,0x8,0xd0,0x7,0xc7,0x7,0x33,0x8, +0xb7,0x8,0xfb,0x8,0x3,0x9,0x19,0x9,0x5f,0x9,0xab,0x9, +0xe8,0x9,0x13,0xa,0x1a,0xa,0x19,0xa,0x1d,0xa,0xff,0x9, +0xd9,0x9,0xfe,0x9,0x68,0xa,0xa1,0xa,0x62,0xa,0xf0,0x9, +0xc0,0x9,0xe,0xa,0x7e,0xa,0x66,0xa,0xb1,0x9,0xdf,0x8, +0x54,0x8,0x18,0x8,0xbb,0x7,0xf2,0x6,0x3b,0x6,0xc4,0x5, +0x4,0x5,0xfb,0x3,0x2b,0x3,0xc7,0x2,0xce,0x2,0xe9,0x2, +0x83,0x2,0xbb,0x1,0x60,0x1,0xb7,0x1,0x3a,0x2,0x76,0x2, +0x63,0x2,0x33,0x2,0x2d,0x2,0x6c,0x2,0xba,0x2,0xfb,0x2, +0x53,0x3,0xc0,0x3,0x6,0x4,0x2e,0x4,0x8b,0x4,0x36,0x5, +0xe6,0x5,0x51,0x6,0x5d,0x6,0x19,0x6,0xc2,0x5,0xa4,0x5, +0xbc,0x5,0xb6,0x5,0x68,0x5,0xf3,0x4,0x69,0x4,0xdf,0x3, +0x9e,0x3,0xc7,0x3,0xf6,0x3,0xca,0x3,0x3f,0x3,0x7e,0x2, +0xe1,0x1,0xa4,0x1,0x7c,0x1,0xa,0x1,0x51,0x0,0x8b,0xff, +0x11,0xff,0x6,0xff,0x25,0xff,0x63,0xff,0x3,0x0,0xc8,0x0, +0x4c,0x1,0xd0,0x1,0xbf,0x2,0x2,0x4,0x27,0x5,0xd3,0x5, +0x14,0x6,0x49,0x6,0xbc,0x6,0x67,0x7,0xde,0x7,0xe6,0x7, +0xf5,0x7,0x26,0x8,0xfb,0x7,0xaa,0x7,0xbc,0x7,0xf8,0x7, +0xdc,0x7,0x26,0x7,0xf0,0x5,0xd6,0x4,0x6b,0x4,0x53,0x4, +0xad,0x3,0x69,0x2,0x50,0x1,0xde,0x0,0xd9,0x0,0xc1,0x0, +0x7d,0x0,0x87,0x0,0xff,0x0,0x59,0x1,0x59,0x1,0x59,0x1, +0xcb,0x1,0xad,0x2,0x6c,0x3,0x81,0x3,0x1f,0x3,0x12,0x3, +0xd0,0x3,0xc1,0x4,0xc,0x5,0xc2,0x4,0x90,0x4,0xe5,0x4, +0x78,0x5,0xb6,0x5,0x7f,0x5,0x2c,0x5,0x6,0x5,0xf2,0x4, +0x78,0x4,0x8f,0x3,0xed,0x2,0xe6,0x2,0xd7,0x2,0x35,0x2, +0x41,0x1,0x85,0x0,0x58,0x0,0x87,0x0,0x5f,0x0,0xc9,0xff, +0x60,0xff,0x3f,0xff,0x37,0xff,0x35,0xff,0xfa,0xfe,0xbe,0xfe, +0xf7,0xfe,0x52,0xff,0x4d,0xff,0x1b,0xff,0x3c,0xff,0xb9,0xff, +0x19,0x0,0x40,0x0,0x84,0x0,0xdf,0x0,0xc,0x1,0x2b,0x1, +0x6f,0x1,0xa8,0x1,0xcc,0x1,0x2a,0x2,0x7d,0x2,0x5d,0x2, +0x61,0x2,0xef,0x2,0x7c,0x3,0xd1,0x3,0x27,0x4,0x88,0x4, +0xe2,0x4,0x2f,0x5,0x7d,0x5,0xd5,0x5,0x10,0x6,0x12,0x6, +0xe7,0x5,0x95,0x5,0x22,0x5,0xd5,0x4,0xe6,0x4,0xdb,0x4, +0x52,0x4,0xd1,0x3,0xb2,0x3,0x95,0x3,0x55,0x3,0x38,0x3, +0x3f,0x3,0x2e,0x3,0xd,0x3,0xdf,0x2,0x86,0x2,0x41,0x2, +0x58,0x2,0x96,0x2,0xa5,0x2,0x7c,0x2,0xad,0x2,0x9b,0x3, +0x99,0x4,0x24,0x5,0x93,0x5,0x20,0x6,0xfb,0x6,0x18,0x8, +0xcc,0x8,0xea,0x8,0xc,0x9,0x72,0x9,0xce,0x9,0xce,0x9, +0x77,0x9,0x2c,0x9,0x4e,0x9,0x9e,0x9,0x75,0x9,0xd6,0x8, +0x42,0x8,0xc5,0x7,0x39,0x7,0x86,0x6,0x85,0x5,0x71,0x4, +0x92,0x3,0xbc,0x2,0xbf,0x1,0xb9,0x0,0xf1,0xff,0xad,0xff, +0xe0,0xff,0x36,0x0,0x8f,0x0,0x1b,0x1,0xc7,0x1,0x58,0x2, +0xf4,0x2,0xb4,0x3,0x52,0x4,0xbe,0x4,0x18,0x5,0x67,0x5, +0xbc,0x5,0x3f,0x6,0xf8,0x6,0x9a,0x7,0xfa,0x7,0x76,0x8, +0x4c,0x9,0x36,0xa,0xba,0xa,0x95,0xa,0xfe,0x9,0x44,0x9, +0x87,0x8,0xd0,0x7,0xb7,0x6,0x13,0x5,0x95,0x3,0x77,0x2, +0x33,0x1,0xc5,0xff,0xa7,0xfe,0x1b,0xfe,0xe8,0xfd,0x9f,0xfd, +0xfc,0xfc,0x15,0xfc,0x6a,0xfb,0x49,0xfb,0x48,0xfb,0x8,0xfb, +0x99,0xfa,0x45,0xfa,0x66,0xfa,0xe3,0xfa,0x49,0xfb,0xa5,0xfb, +0x32,0xfc,0xca,0xfc,0x61,0xfd,0x1c,0xfe,0xd1,0xfe,0x42,0xff, +0x82,0xff,0xa0,0xff,0xa4,0xff,0xa9,0xff,0x8e,0xff,0x47,0xff, +0x1,0xff,0x96,0xfe,0xe2,0xfd,0xff,0xfc,0xf6,0xfb,0xe4,0xfa, +0xf0,0xf9,0xf0,0xf8,0xb8,0xf7,0x57,0xf6,0x17,0xf5,0x29,0xf4, +0x5d,0xf3,0x91,0xf2,0xe7,0xf1,0x76,0xf1,0x34,0xf1,0x12,0xf1, +0x17,0xf1,0x34,0xf1,0x4e,0xf1,0x89,0xf1,0xfe,0xf1,0x8d,0xf2, +0x4a,0xf3,0x3c,0xf4,0x4b,0xf5,0x6c,0xf6,0x79,0xf7,0x7c,0xf8, +0xae,0xf9,0xe8,0xfa,0xec,0xfb,0xad,0xfc,0x12,0xfd,0x2c,0xfd, +0x40,0xfd,0x66,0xfd,0x8d,0xfd,0x8a,0xfd,0x3f,0xfd,0xdd,0xfc, +0x95,0xfc,0x40,0xfc,0xc4,0xfb,0x3e,0xfb,0xa0,0xfa,0xb4,0xf9, +0x78,0xf8,0x16,0xf7,0xaf,0xf5,0x43,0xf4,0xd8,0xf2,0x83,0xf1, +0x3a,0xf0,0x16,0xef,0x3c,0xee,0x87,0xed,0xfa,0xec,0xc7,0xec, +0xbf,0xec,0x9c,0xec,0x56,0xec,0xfc,0xeb,0xdb,0xeb,0x16,0xec, +0x3b,0xec,0x3,0xec,0xc7,0xeb,0xf0,0xeb,0x76,0xec,0xe,0xed, +0x7a,0xed,0xba,0xed,0x18,0xee,0xb8,0xee,0x2f,0xef,0x18,0xef, +0x97,0xee,0x14,0xee,0xae,0xed,0xf,0xed,0xf6,0xeb,0xbf,0xea, +0xc0,0xe9,0xde,0xe8,0x0,0xe8,0x26,0xe7,0x5e,0xe6,0xd9,0xe5, +0x7a,0xe5,0xe7,0xe4,0x45,0xe4,0xd6,0xe3,0x78,0xe3,0x1a,0xe3, +0xc0,0xe2,0x51,0xe2,0xfe,0xe1,0x2,0xe2,0x35,0xe2,0x7a,0xe2, +0x1e,0xe3,0x4e,0xe4,0xa5,0xe5,0xc8,0xe6,0xfa,0xe7,0x8c,0xe9, +0x7d,0xeb,0x9b,0xed,0x74,0xef,0xd7,0xf0,0x2c,0xf2,0xbb,0xf3, +0x55,0xf5,0xcb,0xf6,0x8,0xf8,0x18,0xf9,0x12,0xfa,0xe8,0xfa, +0x97,0xfb,0x47,0xfc,0x0,0xfd,0x8e,0xfd,0xbf,0xfd,0x9d,0xfd, +0x6b,0xfd,0x5f,0xfd,0x6f,0xfd,0x68,0xfd,0x22,0xfd,0xaf,0xfc, +0x55,0xfc,0x3b,0xfc,0x4e,0xfc,0x7a,0xfc,0xc7,0xfc,0x43,0xfd, +0xd2,0xfd,0x42,0xfe,0xc1,0xfe,0x9d,0xff,0xd1,0x0,0x1c,0x2, +0x1f,0x3,0xc2,0x3,0x92,0x4,0xe5,0x5,0x5b,0x7,0x85,0x8, +0x4f,0x9,0xf8,0x9,0xdf,0xa,0x6,0xc,0xf8,0xc,0x75,0xd, +0xe2,0xd,0x7b,0xe,0xde,0xe,0xe3,0xe,0xb5,0xe,0x6e,0xe, +0x47,0xe,0x16,0xe,0x4a,0xd,0x1a,0xc,0x2a,0xb,0x7d,0xa, +0xbb,0x9,0xbd,0x8,0xab,0x7,0xd5,0x6,0x4a,0x6,0xdb,0x5, +0x60,0x5,0xcd,0x4,0x4b,0x4,0x1a,0x4,0x18,0x4,0xe,0x4, +0x30,0x4,0x86,0x4,0xc5,0x4,0x6,0x5,0x7a,0x5,0xf,0x6, +0xd9,0x6,0xd5,0x7,0xba,0x8,0x7f,0x9,0x48,0xa,0x2a,0xb, +0x20,0xc,0x7,0xd,0xd3,0xd,0x83,0xe,0xfb,0xe,0x25,0xf, +0x24,0xf,0x3b,0xf,0x4b,0xf,0xff,0xe,0x71,0xe,0xc3,0xd, +0xfd,0xc,0x69,0xc,0xee,0xb,0x2a,0xb,0x3c,0xa,0x74,0x9, +0xdb,0x8,0x49,0x8,0xa7,0x7,0x18,0x7,0xbc,0x6,0x8d,0x6, +0x71,0x6,0x4c,0x6,0x4a,0x6,0xa4,0x6,0x42,0x7,0xfa,0x7, +0xad,0x8,0x65,0x9,0x70,0xa,0xae,0xb,0xa7,0xc,0x6f,0xd, +0x71,0xe,0xa1,0xf,0xa3,0x10,0x46,0x11,0x93,0x11,0xce,0x11, +0x32,0x12,0x86,0x12,0x91,0x12,0x6b,0x12,0x21,0x12,0xdd,0x11, +0x9e,0x11,0xfa,0x10,0x17,0x10,0x74,0xf,0xf5,0xe,0x3d,0xe, +0x1e,0xd,0xaf,0xb,0x6e,0xa,0xa3,0x9,0xf5,0x8,0xf5,0x7, +0xb4,0x6,0x8b,0x5,0xa3,0x4,0x3,0x4,0x76,0x3,0xba,0x2, +0x32,0x2,0x17,0x2,0xde,0x1,0x82,0x1,0x82,0x1,0xf4,0x1, +0xaa,0x2,0x42,0x3,0x73,0x3,0x98,0x3,0x17,0x4,0xd7,0x4, +0x6f,0x5,0x8d,0x5,0x72,0x5,0x9d,0x5,0xe7,0x5,0xb3,0x5, +0xe,0x5,0xc0,0x4,0xfd,0x4,0x1e,0x5,0xa1,0x4,0xaa,0x3, +0xe0,0x2,0xbd,0x2,0xcb,0x2,0x3e,0x2,0x2,0x1,0xc4,0xff, +0xd,0xff,0xa6,0xfe,0xf,0xfe,0x25,0xfd,0x61,0xfc,0x41,0xfc, +0x6b,0xfc,0x5f,0xfc,0x4a,0xfc,0x71,0xfc,0xe,0xfd,0xe,0xfe, +0xa8,0xfe,0x95,0xfe,0x9b,0xfe,0x41,0xff,0x53,0x0,0x4e,0x1, +0xcd,0x1,0xf3,0x1,0x46,0x2,0xfd,0x2,0xab,0x3,0x27,0x4, +0xdb,0x4,0xb6,0x5,0x52,0x6,0x95,0x6,0x7a,0x6,0x6b,0x6, +0xf0,0x6,0x8a,0x7,0x69,0x7,0x91,0x6,0xac,0x5,0x4c,0x5, +0x27,0x5,0x84,0x4,0x84,0x3,0xcf,0x2,0x59,0x2,0xc5,0x1, +0x2f,0x1,0xc4,0x0,0x9f,0x0,0xd3,0x0,0xc4,0x0,0xd1,0xff, +0xa5,0xfe,0x36,0xfe,0x6c,0xfe,0x8e,0xfe,0x25,0xfe,0x71,0xfd, +0x15,0xfd,0x52,0xfd,0xff,0xfd,0xf5,0xfe,0x2d,0x0,0x87,0x1, +0xdb,0x2,0xfe,0x3,0xac,0x4,0x2f,0x5,0x2d,0x6,0x50,0x7, +0xad,0x7,0x35,0x7,0x68,0x6,0xc5,0x5,0x9a,0x5,0x7e,0x5, +0xe7,0x4,0x0,0x4,0x26,0x3,0x57,0x2,0x78,0x1,0x7d,0x0, +0x53,0xff,0x30,0xfe,0x3b,0xfd,0xea,0xfb,0xfe,0xf9,0x58,0xf8, +0xb3,0xf7,0xc9,0xf7,0xfb,0xf7,0xdf,0xf7,0xbd,0xf7,0x4e,0xf8, +0xa8,0xf9,0x63,0xfb,0x46,0xfd,0xef,0xfe,0x21,0x0,0x3b,0x1, +0x66,0x2,0x73,0x3,0x97,0x4,0xcf,0x5,0x98,0x6,0xdf,0x6, +0x8,0x7,0x5d,0x7,0xd1,0x7,0x10,0x8,0x23,0x8,0x3f,0x8, +0xf0,0x7,0xf0,0x6,0xd5,0x5,0xd,0x5,0x65,0x4,0x90,0x3, +0x38,0x2,0x49,0x0,0x77,0xfe,0xa1,0xfd,0xa6,0xfd,0x9e,0xfd, +0x16,0xfd,0x85,0xfc,0xa2,0xfc,0x74,0xfd,0x5f,0xfe,0x3d,0xff, +0x50,0x0,0x61,0x1,0x27,0x2,0xbd,0x2,0x44,0x3,0xeb,0x3, +0xa,0x5,0x6b,0x6,0x67,0x7,0xe3,0x7,0x78,0x8,0xa2,0x9, +0x32,0xb,0x8e,0xc,0x67,0xd,0xfe,0xd,0x98,0xe,0x13,0xf, +0x3e,0xf,0x14,0xf,0x9f,0xe,0x5,0xe,0x6f,0xd,0x9f,0xc, +0x70,0xb,0x78,0xa,0x8,0xa,0xae,0x9,0x5,0x9,0x11,0x8, +0x34,0x7,0xd8,0x6,0xb8,0x6,0x3c,0x6,0x57,0x5,0x41,0x4, +0x42,0x3,0xa4,0x2,0x21,0x2,0x3d,0x1,0x60,0x0,0x48,0x0, +0xbb,0x0,0x18,0x1,0x4f,0x1,0x8f,0x1,0x9,0x2,0xf3,0x2, +0xf5,0x3,0x79,0x4,0x93,0x4,0xb6,0x4,0xf2,0x4,0xd,0x5, +0xf8,0x4,0xd7,0x4,0xe5,0x4,0x48,0x5,0xb2,0x5,0xb7,0x5, +0x76,0x5,0x5f,0x5,0xa2,0x5,0xf4,0x5,0xc0,0x5,0xe0,0x4, +0xb0,0x3,0x97,0x2,0xc8,0x1,0x1a,0x1,0x52,0x0,0x71,0xff, +0x95,0xfe,0xf3,0xfd,0xac,0xfd,0x9c,0xfd,0xbd,0xfd,0xe,0xfe, +0x43,0xfe,0x2f,0xfe,0xf3,0xfd,0xc7,0xfd,0xe4,0xfd,0x49,0xfe, +0x93,0xfe,0x5f,0xfe,0xe7,0xfd,0xce,0xfd,0x41,0xfe,0xf7,0xfe, +0x8f,0xff,0xd1,0xff,0xe8,0xff,0x0,0x0,0xf,0x0,0x18,0x0, +0x14,0x0,0x1,0x0,0xdd,0xff,0x49,0xff,0x39,0xfe,0x46,0xfd, +0xcc,0xfc,0xaa,0xfc,0x84,0xfc,0xf4,0xfb,0x7,0xfb,0x59,0xfa, +0x2f,0xfa,0x16,0xfa,0xc3,0xf9,0x69,0xf9,0x28,0xf9,0xf0,0xf8, +0x9f,0xf8,0x24,0xf8,0xc8,0xf7,0xd4,0xf7,0x28,0xf8,0x71,0xf8, +0x5f,0xf8,0x13,0xf8,0xfd,0xf7,0x29,0xf8,0x52,0xf8,0x56,0xf8, +0x3b,0xf8,0x1e,0xf8,0x5,0xf8,0xdb,0xf7,0x9b,0xf7,0x5d,0xf7, +0x38,0xf7,0x17,0xf7,0xc9,0xf6,0x42,0xf6,0xc1,0xf5,0x9b,0xf5, +0xa1,0xf5,0x6e,0xf5,0x25,0xf5,0xf4,0xf4,0xdd,0xf4,0x1d,0xf5, +0xa4,0xf5,0x2f,0xf6,0xb5,0xf6,0xc,0xf7,0x1a,0xf7,0x6,0xf7, +0x4,0xf7,0x49,0xf7,0xab,0xf7,0xbe,0xf7,0x66,0xf7,0xd3,0xf6, +0x5e,0xf6,0x21,0xf6,0xcb,0xf5,0x3e,0xf5,0x8c,0xf4,0xac,0xf3, +0x9d,0xf2,0x42,0xf1,0x8b,0xef,0xc8,0xed,0x3c,0xec,0xc5,0xea, +0x2e,0xe9,0xb9,0xe7,0xc6,0xe6,0x38,0xe6,0xe6,0xe5,0xc3,0xe5, +0xc5,0xe5,0x37,0xe6,0x35,0xe7,0x27,0xe8,0xa8,0xe8,0xe2,0xe8, +0x25,0xe9,0xa0,0xe9,0x30,0xea,0x9c,0xea,0xf1,0xea,0x56,0xeb, +0xc8,0xeb,0x2e,0xec,0x85,0xec,0xd7,0xec,0x3b,0xed,0x8f,0xed, +0x4d,0xed,0x5a,0xec,0x36,0xeb,0x1b,0xea,0xf5,0xe8,0xaf,0xe7, +0x3e,0xe6,0xdb,0xe4,0xd5,0xe3,0x47,0xe3,0x33,0xe3,0x83,0xe3, +0x2f,0xe4,0x27,0xe5,0x25,0xe6,0x1a,0xe7,0x1e,0xe8,0x22,0xe9, +0x2e,0xea,0x30,0xeb,0xee,0xeb,0x8d,0xec,0x59,0xed,0x58,0xee, +0x74,0xef,0xa1,0xf0,0xda,0xf1,0x1a,0xf3,0x5d,0xf4,0x92,0xf5, +0x8d,0xf6,0x31,0xf7,0x82,0xf7,0x90,0xf7,0x66,0xf7,0x18,0xf7, +0xc7,0xf6,0x77,0xf6,0x3a,0xf6,0x46,0xf6,0xa1,0xf6,0x3f,0xf7, +0x1d,0xf8,0xf,0xf9,0x12,0xfa,0x38,0xfb,0x4b,0xfc,0x1e,0xfd, +0xcb,0xfd,0x5b,0xfe,0xc7,0xfe,0x20,0xff,0x69,0xff,0x91,0xff, +0xde,0xff,0x9f,0x0,0x81,0x1,0x24,0x2,0x98,0x2,0xe7,0x2, +0x4e,0x3,0x8,0x4,0xa7,0x4,0xb8,0x4,0x48,0x4,0xb6,0x3, +0x73,0x3,0x81,0x3,0xa1,0x3,0xce,0x3,0xc,0x4,0x6f,0x4, +0xb,0x5,0xc0,0x5,0x68,0x6,0x9,0x7,0xc8,0x7,0x92,0x8, +0xe5,0x8,0xac,0x8,0x8e,0x8,0xc5,0x8,0xef,0x8,0xde,0x8, +0x8e,0x8,0x17,0x8,0xde,0x7,0xfa,0x7,0xea,0x7,0x7a,0x7, +0xf6,0x6,0x8e,0x6,0x3b,0x6,0xe1,0x5,0x8e,0x5,0x9c,0x5, +0x7,0x6,0x4f,0x6,0x78,0x6,0x4,0x7,0x14,0x8,0x63,0x9, +0x90,0xa,0x51,0xb,0xea,0xb,0xda,0xc,0xf6,0xd,0xb1,0xe, +0xed,0xe,0x9,0xf,0x7c,0xf,0x30,0x10,0x79,0x10,0x3d,0x10, +0xc,0x10,0xf9,0xf,0xb4,0xf,0x1d,0xf,0x29,0xe,0x7,0xd, +0x1f,0xc,0x5d,0xb,0x49,0xa,0xf3,0x8,0xec,0x7,0x76,0x7, +0x60,0x7,0x59,0x7,0x3d,0x7,0x4c,0x7,0xc5,0x7,0x79,0x8, +0x20,0x9,0xa5,0x9,0x2e,0xa,0xf2,0xa,0xcb,0xb,0x65,0xc, +0xc1,0xc,0x33,0xd,0xf7,0xd,0xc7,0xe,0x41,0xf,0x74,0xf, +0xa6,0xf,0xe1,0xf,0xe8,0xf,0x88,0xf,0xfc,0xe,0x7f,0xe, +0xa,0xe,0x86,0xd,0xac,0xc,0xa5,0xb,0x1f,0xb,0xf6,0xa, +0x6b,0xa,0x98,0x9,0x11,0x9,0xe3,0x8,0xcd,0x8,0xa2,0x8, +0x48,0x8,0xf7,0x7,0xb,0x8,0x59,0x8,0x94,0x8,0xd3,0x8, +0x3b,0x9,0xc1,0x9,0x14,0xa,0xe2,0x9,0xa2,0x9,0xf2,0x9, +0x74,0xa,0x78,0xa,0xe1,0x9,0x3,0x9,0x5a,0x8,0x24,0x8, +0x30,0x8,0x1f,0x8,0xca,0x7,0x71,0x7,0x4f,0x7,0x46,0x7, +0x29,0x7,0x6,0x7,0xfa,0x6,0xeb,0x6,0xad,0x6,0x43,0x6, +0xe3,0x5,0xc3,0x5,0xf2,0x5,0x4f,0x6,0x8f,0x6,0x83,0x6, +0x72,0x6,0xbf,0x6,0x39,0x7,0x77,0x7,0x5c,0x7,0xfa,0x6, +0x81,0x6,0x19,0x6,0xb4,0x5,0x46,0x5,0xe0,0x4,0x8e,0x4, +0x51,0x4,0x45,0x4,0x74,0x4,0xaa,0x4,0xce,0x4,0xfd,0x4, +0x3f,0x5,0x6a,0x5,0x5c,0x5,0x25,0x5,0xdf,0x4,0x98,0x4, +0x82,0x4,0x69,0x4,0xf8,0x3,0xae,0x3,0xdd,0x3,0x8,0x4, +0x15,0x4,0x9,0x4,0xe1,0x3,0x12,0x4,0x4f,0x4,0xda,0x3, +0x2c,0x3,0xe6,0x2,0xe3,0x2,0xe0,0x2,0x81,0x2,0xc0,0x1, +0x53,0x1,0x9f,0x1,0x1d,0x2,0x48,0x2,0x45,0x2,0x73,0x2, +0xef,0x2,0x69,0x3,0x58,0x3,0xf7,0x2,0x8,0x3,0x73,0x3, +0x92,0x3,0x27,0x3,0x57,0x2,0xa1,0x1,0x88,0x1,0xc9,0x1, +0x94,0x1,0xaf,0x0,0xc9,0xff,0x71,0xff,0x77,0xff,0x68,0xff, +0x6,0xff,0x96,0xfe,0x79,0xfe,0x80,0xfe,0x65,0xfe,0x55,0xfe, +0x8d,0xfe,0x26,0xff,0xf7,0xff,0x70,0x0,0x59,0x0,0x75,0x0, +0x60,0x1,0x8e,0x2,0x4d,0x3,0x8d,0x3,0x72,0x3,0x5b,0x3, +0x96,0x3,0xc0,0x3,0x84,0x3,0xc,0x3,0x72,0x2,0xb8,0x1, +0xe1,0x0,0xb,0x0,0x7b,0xff,0x26,0xff,0xa3,0xfe,0xc2,0xfd, +0xc7,0xfc,0x25,0xfc,0x1e,0xfc,0x8e,0xfc,0xf5,0xfc,0xcc,0xfc, +0x42,0xfc,0x2d,0xfc,0xe1,0xfc,0xeb,0xfd,0xe0,0xfe,0xa6,0xff, +0x42,0x0,0xe2,0x0,0xa7,0x1,0x74,0x2,0x4d,0x3,0x52,0x4, +0x47,0x5,0xb9,0x5,0x5c,0x5,0x9a,0x4,0x44,0x4,0x40,0x4, +0xea,0x3,0x21,0x3,0xfc,0x1,0xc4,0x0,0xf2,0xff,0x88,0xff, +0x5e,0xff,0x4e,0xff,0xa,0xff,0x97,0xfe,0x25,0xfe,0xc5,0xfd, +0xb5,0xfd,0xff,0xfd,0x2f,0xfe,0xf6,0xfd,0x9a,0xfd,0x9b,0xfd, +0x1d,0xfe,0x2,0xff,0x38,0x0,0x92,0x1,0xc2,0x2,0x87,0x3, +0x20,0x4,0x31,0x5,0xb4,0x6,0x13,0x8,0xee,0x8,0xfe,0x8, +0x76,0x8,0x2e,0x8,0x75,0x8,0xd8,0x8,0xf0,0x8,0xa3,0x8, +0x15,0x8,0x7a,0x7,0xff,0x6,0xc6,0x6,0xe5,0x6,0x3e,0x7, +0x36,0x7,0x52,0x6,0x2b,0x5,0xbb,0x4,0x35,0x5,0x21,0x6, +0x9e,0x6,0x6,0x6,0x1d,0x5,0x42,0x5,0x54,0x6,0x42,0x7, +0xd0,0x7,0x3b,0x8,0xa9,0x8,0x20,0x9,0x3f,0x9,0x1d,0x9, +0xb7,0x9,0x16,0xb,0xf8,0xb,0xaa,0xb,0x90,0xa,0x92,0x9, +0xb2,0x9,0xb5,0xa,0xf8,0xa,0xdd,0x9,0xa2,0x8,0x34,0x8, +0x46,0x8,0x47,0x8,0x6,0x8,0xd0,0x7,0xd1,0x7,0x8b,0x7, +0xc4,0x6,0xe5,0x5,0x62,0x5,0x63,0x5,0x76,0x5,0xb0,0x4, +0xfd,0x2,0x8e,0x1,0x66,0x1,0x14,0x2,0x82,0x2,0x42,0x2, +0xa7,0x1,0x44,0x1,0x59,0x1,0x9e,0x1,0xcb,0x1,0xcd,0x1, +0xad,0x1,0x61,0x1,0x8d,0x0,0x45,0xff,0x83,0xfe,0xc8,0xfe, +0x61,0xff,0x58,0xff,0x9c,0xfe,0xc,0xfe,0x37,0xfe,0xd6,0xfe, +0x64,0xff,0x76,0xff,0x15,0xff,0xbe,0xfe,0x98,0xfe,0x5f,0xfe, +0xf8,0xfd,0x85,0xfd,0xb,0xfd,0x7a,0xfc,0xd2,0xfb,0x35,0xfb, +0xdd,0xfa,0xab,0xfa,0x1e,0xfa,0x3e,0xf9,0x7e,0xf8,0xd2,0xf7, +0xff,0xf6,0x13,0xf6,0x35,0xf5,0x86,0xf4,0xdc,0xf3,0xfe,0xf2, +0x16,0xf2,0x7c,0xf1,0x68,0xf1,0x9a,0xf1,0x7f,0xf1,0x42,0xf1, +0x87,0xf1,0x4c,0xf2,0x22,0xf3,0xa1,0xf3,0xb6,0xf3,0xfb,0xf3, +0xd7,0xf4,0xb8,0xf5,0xfc,0xf5,0xb5,0xf5,0x4e,0xf5,0x23,0xf5, +0x3d,0xf5,0x36,0xf5,0xd0,0xf4,0x70,0xf4,0x56,0xf4,0x2e,0xf4, +0xc1,0xf3,0x4b,0xf3,0x19,0xf3,0x28,0xf3,0x1b,0xf3,0x8c,0xf2, +0xa4,0xf1,0xf9,0xf0,0xc0,0xf0,0xa4,0xf0,0x58,0xf0,0xea,0xef, +0xc3,0xef,0x27,0xf0,0xd2,0xf0,0x84,0xf1,0x49,0xf2,0x2e,0xf3, +0x23,0xf4,0xdb,0xf4,0x15,0xf5,0x15,0xf5,0x59,0xf5,0xd7,0xf5, +0xe4,0xf5,0x32,0xf5,0x5b,0xf4,0xe1,0xf3,0xc7,0xf3,0xc9,0xf3, +0x6e,0xf3,0xe3,0xf2,0xc6,0xf2,0xc6,0xf2,0x66,0xf2,0xc7,0xf1, +0x12,0xf1,0x93,0xf0,0x67,0xf0,0xf0,0xef,0xcd,0xee,0x9d,0xed, +0x21,0xed,0x49,0xed,0x52,0xed,0xd6,0xec,0x19,0xec,0xa9,0xeb, +0xe7,0xeb,0x58,0xec,0x22,0xec,0x62,0xeb,0xc0,0xea,0x49,0xea, +0xb9,0xe9,0xf5,0xe8,0x31,0xe8,0xeb,0xe7,0x32,0xe8,0x46,0xe8, +0xbb,0xe7,0xa,0xe7,0xd0,0xe6,0x69,0xe7,0x78,0xe8,0x0,0xe9, +0xdd,0xe8,0xc8,0xe8,0x10,0xe9,0xa4,0xe9,0x54,0xea,0xee,0xea, +0x96,0xeb,0x50,0xec,0xd2,0xec,0x36,0xed,0xca,0xed,0x9a,0xee, +0x73,0xef,0xfc,0xef,0x12,0xf0,0xb,0xf0,0x3b,0xf0,0x86,0xf0, +0xc8,0xf0,0xe,0xf1,0x4b,0xf1,0x4f,0xf1,0xa,0xf1,0xcc,0xf0, +0x2a,0xf1,0x23,0xf2,0x13,0xf3,0xa5,0xf3,0xee,0xf3,0x47,0xf4, +0x5e,0xf5,0x33,0xf7,0xf7,0xf8,0x65,0xfa,0xd8,0xfb,0x6c,0xfd, +0xa,0xff,0xae,0x0,0x4e,0x2,0xed,0x3,0x6c,0x5,0x6e,0x6, +0xf7,0x6,0x79,0x7,0x1f,0x8,0xb6,0x8,0x1,0x9,0xf5,0x8, +0xbf,0x8,0x88,0x8,0x5e,0x8,0x32,0x8,0xe8,0x7,0xab,0x7, +0x78,0x7,0xf4,0x6,0x47,0x6,0xdf,0x5,0xce,0x5,0x5,0x6, +0x2d,0x6,0x13,0x6,0x1c,0x6,0x91,0x6,0x6d,0x7,0x73,0x8, +0x15,0x9,0x6d,0x9,0x34,0xa,0x71,0xb,0x90,0xc,0x2f,0xd, +0x62,0xd,0x9b,0xd,0x2f,0xe,0xc3,0xe,0xc6,0xe,0x6e,0xe, +0x51,0xe,0x68,0xe,0x61,0xe,0xfa,0xd,0x2c,0xd,0x8d,0xc, +0x85,0xc,0x82,0xc,0xf4,0xb,0x22,0xb,0xb4,0xa,0xcb,0xa, +0xcd,0xa,0x51,0xa,0xc3,0x9,0xc3,0x9,0x41,0xa,0x86,0xa, +0x48,0xa,0xb,0xa,0x43,0xa,0xd4,0xa,0x39,0xb,0x10,0xb, +0xc4,0xa,0xfb,0xa,0x77,0xb,0x88,0xb,0x10,0xb,0x88,0xa, +0x53,0xa,0x57,0xa,0x38,0xa,0xe5,0x9,0xb9,0x9,0xe5,0x9, +0x37,0xa,0x59,0xa,0x23,0xa,0x0,0xa,0x83,0xa,0x6a,0xb, +0xf1,0xb,0xec,0xb,0xd4,0xb,0x8,0xc,0x6a,0xc,0xc8,0xc, +0x13,0xd,0x35,0xd,0x44,0xd,0x5e,0xd,0x5f,0xd,0x2e,0xd, +0xf5,0xc,0xca,0xc,0x8f,0xc,0x2c,0xc,0xc6,0xb,0x77,0xb, +0x2f,0xb,0xda,0xa,0x65,0xa,0xff,0x9,0xff,0x9,0x45,0xa, +0x73,0xa,0x68,0xa,0x4b,0xa,0x60,0xa,0x8b,0xa,0x8c,0xa, +0x89,0xa,0xab,0xa,0xf1,0xa,0x46,0xb,0x6e,0xb,0x81,0xb, +0xd6,0xb,0x5f,0xc,0xba,0xc,0xac,0xc,0x65,0xc,0x3b,0xc, +0x2e,0xc,0xf3,0xb,0x40,0xb,0x20,0xa,0xfb,0x8,0x24,0x8, +0xa2,0x7,0x37,0x7,0x93,0x6,0xd3,0x5,0x55,0x5,0x12,0x5, +0xce,0x4,0x94,0x4,0x95,0x4,0xa0,0x4,0x50,0x4,0xa5,0x3, +0xe6,0x2,0x5d,0x2,0x35,0x2,0x40,0x2,0x39,0x2,0x4,0x2, +0xc0,0x1,0xe8,0x1,0x7c,0x2,0xde,0x2,0xf8,0x2,0x11,0x3, +0x23,0x3,0x27,0x3,0x12,0x3,0xc8,0x2,0x6c,0x2,0x20,0x2, +0xdc,0x1,0x9c,0x1,0x75,0x1,0x7d,0x1,0xb2,0x1,0xd,0x2, +0x53,0x2,0x50,0x2,0x48,0x2,0x6a,0x2,0x81,0x2,0xa7,0x2, +0x9,0x3,0x41,0x3,0x1c,0x3,0x13,0x3,0x60,0x3,0xbb,0x3, +0x10,0x4,0x7e,0x4,0xf8,0x4,0x50,0x5,0x67,0x5,0x59,0x5, +0x4d,0x5,0x4c,0x5,0x7e,0x5,0xe2,0x5,0x20,0x6,0x11,0x6, +0xfd,0x5,0x3b,0x6,0xc6,0x6,0x46,0x7,0x97,0x7,0xc9,0x7, +0xdd,0x7,0xd8,0x7,0xab,0x7,0x62,0x7,0x3f,0x7,0x37,0x7, +0xb,0x7,0x9f,0x6,0xff,0x5,0x9f,0x5,0xda,0x5,0x60,0x6, +0x95,0x6,0x26,0x6,0x6d,0x5,0x3,0x5,0xe3,0x4,0xcb,0x4, +0x93,0x4,0x1f,0x4,0xbb,0x3,0x9a,0x3,0x66,0x3,0x1d,0x3, +0x2c,0x3,0xcf,0x3,0xbb,0x4,0x2b,0x5,0xc1,0x4,0x39,0x4, +0x57,0x4,0xc7,0x4,0xb0,0x4,0xbf,0x3,0x54,0x2,0x36,0x1, +0xea,0x0,0xfe,0x0,0xbe,0x0,0x39,0x0,0xfc,0xff,0x52,0x0, +0xd5,0x0,0x7,0x1,0x3f,0x1,0x3,0x2,0xeb,0x2,0x9,0x3, +0x2c,0x2,0x34,0x1,0x1,0x1,0x92,0x1,0x22,0x2,0xd5,0x1, +0xfc,0x0,0xd2,0x0,0x74,0x1,0xf6,0x1,0x7,0x2,0xee,0x1, +0xe2,0x1,0xf7,0x1,0xd2,0x1,0xfe,0x0,0xda,0xff,0x33,0xff, +0xef,0xfe,0x69,0xfe,0x84,0xfd,0xa0,0xfc,0x44,0xfc,0x88,0xfc, +0xbb,0xfc,0x79,0xfc,0x3c,0xfc,0x50,0xfc,0x86,0xfc,0xac,0xfc, +0xb9,0xfc,0xc6,0xfc,0xf5,0xfc,0x44,0xfd,0x74,0xfd,0x77,0xfd, +0xc2,0xfd,0x9c,0xfe,0xa3,0xff,0x86,0x0,0x7b,0x1,0xa5,0x2, +0xc2,0x3,0xb2,0x4,0x8d,0x5,0x4d,0x6,0xfa,0x6,0x89,0x7, +0xa8,0x7,0x42,0x7,0xb8,0x6,0x90,0x6,0xd0,0x6,0xc2,0x6, +0x1b,0x6,0x98,0x5,0xcb,0x5,0x98,0x6,0x7b,0x7,0xf9,0x7, +0x1e,0x8,0x22,0x8,0x2f,0x8,0x86,0x8,0xfe,0x8,0x24,0x9, +0xe8,0x8,0x82,0x8,0x7,0x8,0x6e,0x7,0x9,0x7,0x51,0x7, +0xfc,0x7,0x86,0x8,0xb,0x9,0x75,0x9,0x6d,0x9,0x57,0x9, +0xca,0x9,0x83,0xa,0xde,0xa,0xaa,0xa,0xf7,0x9,0x1b,0x9, +0xb5,0x8,0xce,0x8,0xd9,0x8,0x99,0x8,0x4c,0x8,0x89,0x8, +0x80,0x9,0x50,0xa,0x46,0xa,0xe6,0x9,0xe8,0x9,0x26,0xa, +0xf7,0x9,0x19,0x9,0xe6,0x7,0xe2,0x6,0x48,0x6,0x83,0x5, +0xe4,0x3,0x5,0x2,0x11,0x1,0x27,0x1,0x65,0x1,0xd7,0x0, +0x90,0xff,0xc7,0xfe,0xe5,0xfe,0xdc,0xfe,0x40,0xfe,0xce,0xfd, +0xd7,0xfd,0x1b,0xfe,0x56,0xfe,0x41,0xfe,0x36,0xfe,0xf8,0xfe, +0x6e,0x0,0xca,0x1,0x97,0x2,0x2f,0x3,0x52,0x4,0xbd,0x5, +0x38,0x6,0x8d,0x5,0xbb,0x4,0x3f,0x4,0xb7,0x3,0xcd,0x2, +0x5c,0x1,0x69,0xff,0x8f,0xfd,0x33,0xfc,0xd5,0xfa,0x4f,0xf9, +0x2a,0xf8,0x87,0xf7,0x13,0xf7,0x54,0xf6,0x2b,0xf5,0x4b,0xf4, +0x2f,0xf4,0x64,0xf4,0x61,0xf4,0x23,0xf4,0x7,0xf4,0x74,0xf4, +0x8e,0xf5,0xe1,0xf6,0xb3,0xf7,0x35,0xf8,0x32,0xf9,0x8a,0xfa, +0xa3,0xfb,0x50,0xfc,0xa0,0xfc,0xcf,0xfc,0xc4,0xfc,0xd3,0xfb, +0xff,0xf9,0x32,0xf8,0xc5,0xf6,0x4a,0xf5,0x7c,0xf3,0x46,0xf1, +0xc7,0xee,0xb7,0xec,0x7e,0xeb,0x95,0xea,0xcb,0xe9,0x70,0xe9, +0x78,0xe9,0xad,0xe9,0xe6,0xe9,0x34,0xea,0x2,0xeb,0x43,0xec, +0x73,0xed,0x8b,0xee,0xab,0xef,0xa1,0xf0,0x7d,0xf1,0x9f,0xf2, +0x2,0xf4,0x4c,0xf5,0x36,0xf6,0x96,0xf6,0x95,0xf6,0xac,0xf6, +0xdc,0xf6,0x94,0xf6,0x53,0xf5,0x4c,0xf3,0x57,0xf1,0x9f,0xef, +0xa3,0xed,0x7e,0xeb,0x87,0xe9,0xd0,0xe7,0x71,0xe6,0x2b,0xe5, +0x4,0xe4,0xc5,0xe3,0x7d,0xe4,0x6d,0xe5,0x54,0xe6,0x10,0xe7, +0x9d,0xe7,0x97,0xe8,0x23,0xea,0x85,0xeb,0x6f,0xec,0x27,0xed, +0xc7,0xed,0x54,0xee,0xea,0xee,0x80,0xef,0x1,0xf0,0x76,0xf0, +0xce,0xf0,0xc7,0xf0,0x5e,0xf0,0xe1,0xef,0x4e,0xef,0x89,0xee, +0x82,0xed,0xd6,0xeb,0xab,0xe9,0xe3,0xe7,0xb1,0xe6,0xbb,0xe5, +0xdb,0xe4,0xde,0xe3,0x8,0xe3,0xe6,0xe2,0x5a,0xe3,0x6,0xe4, +0xdf,0xe4,0xdb,0xe5,0xbe,0xe6,0x47,0xe7,0x8c,0xe7,0xf2,0xe7, +0xa6,0xe8,0x60,0xe9,0x97,0xe9,0x43,0xe9,0xf8,0xe8,0xfe,0xe8, +0x48,0xe9,0xc1,0xe9,0x37,0xea,0xa8,0xea,0x12,0xeb,0x44,0xeb, +0x81,0xeb,0x1d,0xec,0xf0,0xec,0xbf,0xed,0x42,0xee,0x4a,0xee, +0x4e,0xee,0xf5,0xee,0x31,0xf0,0x72,0xf1,0x66,0xf2,0x37,0xf3, +0x34,0xf4,0x7b,0xf5,0xcb,0xf6,0xea,0xf7,0xfc,0xf8,0xfe,0xf9, +0xb8,0xfa,0x22,0xfb,0x3b,0xfb,0x42,0xfb,0xa6,0xfb,0x2a,0xfc, +0x4f,0xfc,0x34,0xfc,0x3f,0xfc,0xa0,0xfc,0x76,0xfd,0xad,0xfe, +0xee,0xff,0xb,0x1,0x17,0x2,0x26,0x3,0x53,0x4,0xad,0x5, +0x22,0x7,0x8f,0x8,0xa0,0x9,0x9,0xa,0x24,0xa,0x8b,0xa, +0x4a,0xb,0xe,0xc,0x96,0xc,0xd4,0xc,0xd1,0xc,0xa7,0xc, +0x88,0xc,0x97,0xc,0xc1,0xc,0xb5,0xc,0x27,0xc,0x2b,0xb, +0x8,0xa,0x3,0x9,0x5e,0x8,0xf7,0x7,0x6a,0x7,0xc3,0x6, +0x37,0x6,0xd9,0x5,0xeb,0x5,0x92,0x6,0x67,0x7,0x8,0x8, +0x84,0x8,0xf6,0x8,0x67,0x9,0xe2,0x9,0x61,0xa,0xd5,0xa, +0x16,0xb,0x6,0xb,0xdd,0xa,0xc6,0xa,0xb9,0xa,0xc7,0xa, +0xd7,0xa,0x9f,0xa,0x1d,0xa,0x82,0x9,0x10,0x9,0xcd,0x8, +0x6c,0x8,0xd6,0x7,0x21,0x7,0x7c,0x6,0x40,0x6,0x37,0x6, +0x4,0x6,0xf,0x6,0x96,0x6,0x30,0x7,0xb9,0x7,0x49,0x8, +0xed,0x8,0xc2,0x9,0xb0,0xa,0x5b,0xb,0xb0,0xb,0x2,0xc, +0x72,0xc,0xd9,0xc,0xe,0xd,0xed,0xc,0xa3,0xc,0x96,0xc, +0xae,0xc,0xa8,0xc,0x93,0xc,0x86,0xc,0x8f,0xc,0x99,0xc, +0x97,0xc,0xc1,0xc,0x1b,0xd,0x76,0xd,0xd3,0xd,0x1e,0xe, +0x62,0xe,0xdc,0xe,0x6f,0xf,0xd8,0xf,0x28,0x10,0x95,0x10, +0x13,0x11,0x5b,0x11,0x72,0x11,0x9a,0x11,0xc9,0x11,0xd0,0x11, +0x9f,0x11,0x40,0x11,0xd8,0x10,0x56,0x10,0xa5,0xf,0xed,0xe, +0x13,0xe,0x4,0xd,0x18,0xc,0x56,0xb,0x72,0xa,0xb0,0x9, +0x6f,0x9,0x92,0x9,0xe8,0x9,0x3f,0xa,0x66,0xa,0x83,0xa, +0xf9,0xa,0xd5,0xb,0x7f,0xc,0x77,0xc,0x1c,0xc,0xf0,0xb, +0xc5,0xb,0x76,0xb,0x11,0xb,0x8d,0xa,0x1c,0xa,0xcb,0x9, +0x3b,0x9,0x2b,0x8,0xd2,0x6,0xb8,0x5,0x11,0x5,0x29,0x4, +0x7e,0x2,0x96,0x0,0x17,0xff,0x1c,0xfe,0x81,0xfd,0x5,0xfd, +0x8a,0xfc,0x7a,0xfc,0x24,0xfd,0x1,0xfe,0x9a,0xfe,0x40,0xff, +0x35,0x0,0x55,0x1,0x35,0x2,0x6e,0x2,0x4e,0x2,0x79,0x2, +0xe7,0x2,0x3f,0x3,0x58,0x3,0x35,0x3,0x20,0x3,0x30,0x3, +0x17,0x3,0xcd,0x2,0x9e,0x2,0x8e,0x2,0x3a,0x2,0x3f,0x1, +0xb1,0xff,0x5c,0xfe,0xfa,0xfd,0xfc,0xfd,0x76,0xfd,0xac,0xfc, +0x53,0xfc,0x8f,0xfc,0x33,0xfd,0xf4,0xfd,0xaa,0xfe,0x73,0xff, +0x43,0x0,0xd4,0x0,0xf6,0x0,0xe5,0x0,0x1e,0x1,0xa7,0x1, +0xa,0x2,0xf4,0x1,0x9e,0x1,0x8d,0x1,0xdc,0x1,0x4d,0x2, +0xa6,0x2,0xa1,0x2,0x44,0x2,0xd2,0x1,0x57,0x1,0xe5,0x0, +0x78,0x0,0xe9,0xff,0x65,0xff,0xf7,0xfe,0x86,0xfe,0x6c,0xfe, +0xdb,0xfe,0xa5,0xff,0x8e,0x0,0x37,0x1,0x8f,0x1,0xdf,0x1, +0x30,0x2,0xa7,0x2,0x4e,0x3,0x92,0x3,0x3a,0x3,0xbf,0x2, +0x68,0x2,0x37,0x2,0x3b,0x2,0x5f,0x2,0x67,0x2,0x15,0x2, +0x6f,0x1,0xcc,0x0,0x55,0x0,0xfc,0xff,0xa7,0xff,0x16,0xff, +0x3e,0xfe,0x71,0xfd,0xea,0xfc,0xba,0xfc,0xe6,0xfc,0x4b,0xfd, +0xcd,0xfd,0x44,0xfe,0x98,0xfe,0x12,0xff,0xe1,0xff,0xe4,0x0, +0xcd,0x1,0x1c,0x2,0xe6,0x1,0xe8,0x1,0x5e,0x2,0xda,0x2, +0xff,0x2,0xca,0x2,0x89,0x2,0x7b,0x2,0x82,0x2,0x52,0x2, +0xf0,0x1,0xc5,0x1,0xdb,0x1,0x9f,0x1,0xdb,0x0,0x10,0x0, +0xc9,0xff,0xeb,0xff,0xee,0xff,0xaa,0xff,0x67,0xff,0x56,0xff, +0x6f,0xff,0x93,0xff,0xd2,0xff,0x3f,0x0,0xa4,0x0,0xdb,0x0, +0xfc,0x0,0x52,0x1,0x2d,0x2,0x3f,0x3,0xeb,0x3,0x4a,0x4, +0xd7,0x4,0xb8,0x5,0xb8,0x6,0x81,0x7,0xf7,0x7,0x48,0x8, +0x8b,0x8,0x9e,0x8,0x95,0x8,0xc9,0x8,0x3f,0x9,0xa5,0x9, +0xbc,0x9,0x89,0x9,0xad,0x9,0x91,0xa,0x80,0xb,0xf2,0xb, +0x32,0xc,0x6e,0xc,0xcb,0xc,0x54,0xd,0x99,0xd,0x8b,0xd, +0x9e,0xd,0xe1,0xd,0x8,0xe,0xf7,0xd,0xee,0xd,0x4f,0xe, +0x23,0xf,0xd2,0xf,0x9f,0xf,0xe3,0xe,0xaf,0xe,0x37,0xf, +0xd4,0xf,0xcb,0xf,0xb5,0xe,0x5a,0xd,0x1,0xd,0x82,0xd, +0x8b,0xd,0xa4,0xc,0xa6,0xb,0x74,0xb,0xca,0xb,0x99,0xb, +0x8d,0xa,0x76,0x9,0xed,0x8,0x97,0x8,0xdc,0x7,0x67,0x6, +0xad,0x4,0xcf,0x3,0xd9,0x3,0x50,0x3,0xba,0x1,0x84,0x0, +0x8e,0x0,0x30,0x1,0x93,0x1,0x4b,0x1,0x9c,0x0,0x6b,0x0, +0xc3,0x0,0xbf,0x0,0x3c,0x0,0x9d,0xff,0x13,0xff,0xad,0xfe, +0xe8,0xfd,0x66,0xfc,0x33,0xfb,0x2a,0xfb,0x4a,0xfb,0x84,0xfa, +0x5c,0xf9,0x9d,0xf8,0x7c,0xf8,0xe3,0xf8,0x6,0xf9,0x3f,0xf8, +0x66,0xf7,0x63,0xf7,0xd4,0xf7,0x10,0xf8,0xd7,0xf7,0x81,0xf7, +0x91,0xf7,0xaf,0xf7,0x3f,0xf7,0xa2,0xf6,0x95,0xf6,0xe,0xf7, +0x6e,0xf7,0x4e,0xf7,0xcf,0xf6,0xa1,0xf6,0x5d,0xf7,0x81,0xf8, +0x2e,0xf9,0x6c,0xf9,0xa0,0xf9,0x2,0xfa,0x75,0xfa,0x8e,0xfa, +0x76,0xfa,0x7a,0xfa,0x38,0xfa,0x8f,0xf9,0xd5,0xf8,0x41,0xf8, +0xd,0xf8,0xed,0xf7,0x26,0xf7,0xe,0xf6,0x92,0xf5,0x99,0xf5, +0x7e,0xf5,0x20,0xf5,0x9b,0xf4,0x2e,0xf4,0x16,0xf4,0x7,0xf4, +0xbe,0xf3,0xa8,0xf3,0xf5,0xf3,0x43,0xf4,0x3c,0xf4,0xc6,0xf3, +0x62,0xf3,0xaa,0xf3,0x1f,0xf4,0xf1,0xf3,0x68,0xf3,0x23,0xf3, +0x1f,0xf3,0x11,0xf3,0xde,0xf2,0x7e,0xf2,0x22,0xf2,0x20,0xf2, +0x39,0xf2,0xf3,0xf1,0x69,0xf1,0xfe,0xf0,0xdc,0xf0,0xb8,0xf0, +0x25,0xf0,0x6c,0xef,0x23,0xef,0x34,0xef,0x5e,0xef,0x98,0xef, +0x99,0xef,0x42,0xef,0x26,0xef,0x7b,0xef,0xa5,0xef,0x80,0xef, +0x7d,0xef,0x89,0xef,0x59,0xef,0xf5,0xee,0x7d,0xee,0x5b,0xee, +0xd6,0xee,0x58,0xef,0x50,0xef,0xff,0xee,0xae,0xee,0x55,0xee, +0xe3,0xed,0x27,0xed,0x28,0xec,0x5c,0xeb,0xb3,0xea,0xbf,0xe9, +0xa8,0xe8,0xe5,0xe7,0xd2,0xe7,0x50,0xe8,0xa1,0xe8,0xb5,0xe8, +0x41,0xe9,0x5d,0xea,0xa4,0xeb,0xa2,0xec,0x8,0xed,0x39,0xed, +0xa9,0xed,0x30,0xee,0x87,0xee,0xa1,0xee,0xc6,0xee,0x13,0xef, +0x23,0xef,0xc3,0xee,0x3f,0xee,0xfd,0xed,0x9,0xee,0xbb,0xed, +0xae,0xec,0x52,0xeb,0xf3,0xe9,0x8c,0xe8,0x41,0xe7,0x28,0xe6, +0x3a,0xe5,0x80,0xe4,0xf8,0xe3,0x71,0xe3,0xea,0xe2,0xe5,0xe2, +0x98,0xe3,0x7c,0xe4,0x9,0xe5,0x3a,0xe5,0xb0,0xe5,0xfe,0xe6, +0xab,0xe8,0xff,0xe9,0x15,0xeb,0x4b,0xec,0xda,0xed,0xd1,0xef, +0xc7,0xf1,0x65,0xf3,0xda,0xf4,0x50,0xf6,0x8c,0xf7,0x76,0xf8, +0x3e,0xf9,0x12,0xfa,0xda,0xfa,0x3f,0xfb,0x4e,0xfb,0x5f,0xfb, +0x53,0xfb,0x9,0xfb,0xe4,0xfa,0xeb,0xfa,0xd2,0xfa,0x85,0xfa, +0x12,0xfa,0xbf,0xf9,0xcd,0xf9,0x20,0xfa,0x91,0xfa,0xf8,0xfa, +0x50,0xfb,0xa,0xfc,0x4a,0xfd,0xa0,0xfe,0xd1,0xff,0xef,0x0, +0x5,0x2,0x17,0x3,0xc,0x4,0xe2,0x4,0xda,0x5,0x4,0x7, +0xb,0x8,0xd9,0x8,0xbd,0x9,0xd8,0xa,0x11,0xc,0x3f,0xd, +0x36,0xe,0x17,0xf,0x10,0x10,0xe4,0x10,0x54,0x11,0x7b,0x11, +0x9b,0x11,0xda,0x11,0x5,0x12,0xab,0x11,0xf2,0x10,0x92,0x10, +0x9d,0x10,0x9d,0x10,0x64,0x10,0xa3,0xf,0x5d,0xe,0x6d,0xd, +0x15,0xd,0xa1,0xc,0xae,0xb,0x5a,0xa,0x15,0x9,0x2b,0x8, +0x70,0x7,0xf2,0x6,0xe4,0x6,0x1c,0x7,0x6e,0x7,0xb9,0x7, +0x5,0x8,0x9e,0x8,0x8a,0x9,0x94,0xa,0x8a,0xb,0x3b,0xc, +0xba,0xc,0x1c,0xd,0x6e,0xd,0xe9,0xd,0x88,0xe,0x14,0xf, +0x6e,0xf,0x79,0xf,0x61,0xf,0x7a,0xf,0xa7,0xf,0x8e,0xf, +0xfd,0xe,0xfd,0xd,0xd4,0xc,0xd1,0xb,0xec,0xa,0xca,0x9, +0x52,0x8,0xdd,0x6,0xac,0x5,0xad,0x4,0xb2,0x3,0xf0,0x2, +0xe3,0x2,0x45,0x3,0x7a,0x3,0x95,0x3,0xd2,0x3,0x43,0x4, +0x24,0x5,0x39,0x6,0xff,0x6,0x9e,0x7,0x6d,0x8,0x51,0x9, +0x21,0xa,0xe3,0xa,0xae,0xb,0xbc,0xc,0x2,0xe,0xed,0xe, +0x54,0xf,0xa9,0xf,0x9,0x10,0x2e,0x10,0xda,0xf,0x5,0xf, +0x25,0xe,0xa8,0xd,0x26,0xd,0x13,0xc,0xbb,0xa,0xda,0x9, +0x98,0x9,0x88,0x9,0x59,0x9,0x1e,0x9,0x37,0x9,0xb8,0x9, +0x10,0xa,0xef,0x9,0xb3,0x9,0x96,0x9,0x87,0x9,0x6d,0x9, +0x6,0x9,0x61,0x8,0x16,0x8,0x3c,0x8,0x1e,0x8,0x86,0x7, +0xa,0x7,0x24,0x7,0xc5,0x7,0x43,0x8,0xe3,0x7,0x1c,0x7, +0xf0,0x6,0x44,0x7,0x5a,0x7,0xfc,0x6,0x87,0x6,0x67,0x6, +0x8f,0x6,0x80,0x6,0x10,0x6,0xc2,0x5,0xf4,0x5,0x40,0x6, +0x26,0x6,0x8a,0x5,0xdf,0x4,0xc6,0x4,0xd3,0x4,0x18,0x4, +0xd1,0x2,0xb9,0x1,0x14,0x1,0xc4,0x0,0x30,0x0,0x27,0xff, +0x68,0xfe,0x31,0xfe,0x5,0xfe,0xac,0xfd,0x42,0xfd,0x46,0xfd, +0x28,0xfe,0x36,0xff,0x68,0xff,0x36,0xff,0xbb,0xff,0xdb,0x0, +0x2,0x2,0x5,0x3,0x9a,0x3,0xd5,0x3,0x59,0x4,0x2f,0x5, +0xcf,0x5,0xee,0x5,0xe3,0x5,0x1c,0x6,0x36,0x6,0xb7,0x5, +0xf3,0x4,0x45,0x4,0xc6,0x3,0x56,0x3,0x6d,0x2,0xd,0x1, +0xbd,0xff,0x8a,0xfe,0x89,0xfd,0x3,0xfd,0xa1,0xfc,0xf1,0xfb, +0x32,0xfb,0xc6,0xfa,0xd4,0xfa,0x9c,0xfb,0xe4,0xfc,0xb1,0xfd, +0xdf,0xfd,0x7b,0xfe,0xdc,0xff,0x47,0x1,0x43,0x2,0xb7,0x2, +0xe4,0x2,0x6a,0x3,0x45,0x4,0xc4,0x4,0xd2,0x4,0xdb,0x4, +0x1c,0x5,0x99,0x5,0xd5,0x5,0x4f,0x5,0xbb,0x4,0x18,0x5, +0xfa,0x5,0x30,0x6,0x87,0x5,0xee,0x4,0x23,0x5,0x8,0x6, +0xe7,0x6,0x21,0x7,0x19,0x7,0xa9,0x7,0xad,0x8,0x89,0x9, +0x4,0xa,0x29,0xa,0x80,0xa,0x3a,0xb,0x7c,0xb,0xfc,0xa, +0x84,0xa,0x78,0xa,0x81,0xa,0x33,0xa,0x74,0x9,0xd5,0x8, +0xe8,0x8,0x4c,0x9,0x56,0x9,0xfb,0x8,0x87,0x8,0x50,0x8, +0x77,0x8,0x93,0x8,0x7c,0x8,0x96,0x8,0xca,0x8,0xc5,0x8, +0xa3,0x8,0x88,0x8,0x97,0x8,0xf4,0x8,0x77,0x9,0xe7,0x9, +0xa,0xa,0xe4,0x9,0xd0,0x9,0xff,0x9,0x6c,0xa,0xd7,0xa, +0xdd,0xa,0xba,0xa,0xd5,0xa,0xcd,0xa,0x45,0xa,0x92,0x9, +0x16,0x9,0xc9,0x8,0x88,0x8,0x30,0x8,0x8f,0x7,0xbf,0x6, +0x35,0x6,0x32,0x6,0x9a,0x6,0x16,0x7,0x7e,0x7,0x2d,0x8, +0x29,0x9,0xf9,0x9,0x91,0xa,0x3f,0xb,0x2b,0xc,0x4d,0xd, +0x49,0xe,0xc2,0xe,0xd1,0xe,0xc,0xf,0xde,0xf,0xa4,0x10, +0x7a,0x10,0xc7,0xf,0x98,0xf,0x24,0x10,0x8d,0x10,0xe6,0xf, +0xb7,0xe,0x59,0xe,0xae,0xe,0xae,0xe,0x22,0xe,0x67,0xd, +0x46,0xd,0x44,0xe,0xe3,0xe,0xb0,0xd,0x2b,0xc,0x25,0xc, +0xc,0xd,0x71,0xd,0xa2,0xc,0x57,0xb,0x1b,0xb,0xcf,0xb, +0xbf,0xb,0x9e,0xa,0xbc,0x9,0xbb,0x9,0x1a,0xa,0xb9,0x9, +0x95,0x7,0x9e,0x4,0x12,0x3,0xd8,0x2,0xf3,0x1,0xf4,0xff, +0xd2,0xfd,0x80,0xfc,0x5a,0xfc,0x55,0xfc,0xb6,0xfb,0x7b,0xfb, +0x27,0xfc,0xfe,0xfc,0x63,0xfd,0xf,0xfd,0xa1,0xfc,0x41,0xfd, +0x79,0xfe,0xb5,0xfe,0xe6,0xfd,0x5c,0xfd,0xe5,0xfd,0x1f,0xff, +0xf9,0xff,0xfa,0xff,0xde,0xff,0x1b,0x0,0x4,0x0,0x14,0xff, +0xb2,0xfd,0x64,0xfc,0x2d,0xfb,0x71,0xf9,0x72,0xf6,0xc8,0xf2, +0x66,0xf0,0xcc,0xef,0x30,0xef,0xaa,0xed,0x16,0xec,0x25,0xeb, +0x13,0xeb,0x79,0xeb,0x65,0xeb,0x3b,0xeb,0xde,0xeb,0xa6,0xec, +0xc6,0xec,0x74,0xec,0x54,0xec,0x4c,0xed,0x51,0xef,0xe7,0xf0, +0x5e,0xf1,0xb8,0xf1,0xca,0xf2,0x5d,0xf4,0xc7,0xf5,0x7b,0xf6, +0xad,0xf6,0xfe,0xf6,0x46,0xf7,0x14,0xf7,0xba,0xf6,0xa0,0xf6, +0xd0,0xf6,0xf6,0xf6,0x71,0xf6,0x74,0xf5,0x2,0xf5,0x31,0xf5, +0x30,0xf5,0x99,0xf4,0xad,0xf3,0xef,0xf2,0x74,0xf2,0xe4,0xf1, +0x40,0xf1,0xec,0xf0,0xec,0xf0,0xde,0xf0,0x87,0xf0,0x12,0xf0, +0xe3,0xef,0x32,0xf0,0x88,0xf0,0x30,0xf0,0x76,0xef,0x46,0xef, +0xb1,0xef,0x28,0xf0,0x6c,0xf0,0xce,0xf0,0xea,0xf1,0xb9,0xf3, +0x2b,0xf5,0xd2,0xf5,0x90,0xf6,0xdd,0xf7,0x3e,0xf9,0x10,0xfa, +0xcc,0xf9,0xc9,0xf8,0x2e,0xf8,0x14,0xf8,0x70,0xf7,0x23,0xf6, +0x20,0xf5,0xe4,0xf4,0xd5,0xf4,0x1e,0xf4,0xcd,0xf2,0xaf,0xf1, +0x22,0xf1,0x92,0xf0,0x53,0xef,0x72,0xed,0xa1,0xeb,0x94,0xea, +0x4,0xea,0x7,0xe9,0xcb,0xe7,0x6b,0xe7,0x28,0xe8,0x45,0xe9, +0x2b,0xea,0x2,0xeb,0x68,0xec,0x4d,0xee,0xc1,0xef,0x66,0xf0, +0xe5,0xf0,0xce,0xf1,0x0,0xf3,0xeb,0xf3,0xf5,0xf3,0x58,0xf3, +0x4f,0xf3,0x1a,0xf4,0x7c,0xf4,0xf8,0xf3,0x34,0xf3,0xa9,0xf2, +0x63,0xf2,0xee,0xf1,0xda,0xf0,0x9f,0xef,0xb5,0xee,0xe7,0xed, +0xf4,0xec,0xe5,0xeb,0x17,0xeb,0xe1,0xea,0xfa,0xea,0xcb,0xea, +0x33,0xea,0xc4,0xe9,0xc,0xea,0xb0,0xea,0x1f,0xeb,0x81,0xeb, +0x29,0xec,0x2c,0xed,0x44,0xee,0x1f,0xef,0x3,0xf0,0x5c,0xf1, +0xf6,0xf2,0x36,0xf4,0x84,0xf4,0xc,0xf4,0xc,0xf4,0xd3,0xf4, +0x16,0xf5,0x4b,0xf4,0x47,0xf3,0xd6,0xf2,0x58,0xf3,0x28,0xf4, +0x19,0xf4,0xb6,0xf3,0x48,0xf4,0x57,0xf5,0xe0,0xf5,0xab,0xf5, +0xdc,0xf4,0x51,0xf4,0x9f,0xf4,0x90,0xf4,0x6b,0xf3,0x73,0xf2, +0x8e,0xf2,0x5a,0xf3,0x5e,0xf4,0x2d,0xf5,0xe2,0xf5,0x6f,0xf7, +0xdf,0xf9,0xe8,0xfb,0x1,0xfd,0xf1,0xfd,0x4b,0xff,0xb5,0x0, +0x85,0x1,0xb0,0x1,0xdb,0x1,0x84,0x2,0x7e,0x3,0x52,0x4, +0xde,0x4,0x71,0x5,0x6b,0x6,0xb5,0x7,0xbc,0x8,0x22,0x9, +0x1f,0x9,0xf8,0x8,0xbe,0x8,0x58,0x8,0x9c,0x7,0xb3,0x6, +0xea,0x5,0x4d,0x5,0xd1,0x4,0x5a,0x4,0xe4,0x3,0xd1,0x3, +0x63,0x4,0x31,0x5,0x9c,0x5,0xb1,0x5,0x30,0x6,0x36,0x7, +0x21,0x8,0xe7,0x8,0xaf,0x9,0x49,0xa,0xe6,0xa,0xbb,0xb, +0x8c,0xc,0x48,0xd,0xf5,0xd,0x76,0xe,0xe0,0xe,0x37,0xf, +0x75,0xf,0xd1,0xf,0x1d,0x10,0xf0,0xf,0x97,0xf,0x8c,0xf, +0x93,0xf,0x65,0xf,0x15,0xf,0x8f,0xe,0xcd,0xd,0xfa,0xc, +0x43,0xc,0xea,0xb,0xd2,0xb,0x63,0xb,0xa7,0xa,0x2f,0xa, +0x1a,0xa,0x99,0xa,0xd5,0xb,0xfd,0xc,0x73,0xd,0xdd,0xd, +0xa4,0xe,0x55,0xf,0xbc,0xf,0xf,0x10,0x7e,0x10,0xdd,0x10, +0xd0,0x10,0x96,0x10,0xb3,0x10,0x2c,0x11,0xe9,0x11,0xa4,0x12, +0xc7,0x12,0x66,0x12,0x40,0x12,0x90,0x12,0xaa,0x12,0xf8,0x11, +0xdb,0x10,0x4,0x10,0x6c,0xf,0xe0,0xe,0x90,0xe,0xac,0xe, +0x19,0xf,0x90,0xf,0xef,0xf,0x38,0x10,0x7d,0x10,0x25,0x11, +0x28,0x12,0x80,0x12,0xaf,0x11,0x7a,0x10,0x57,0xf,0x17,0xe, +0xce,0xc,0x9e,0xb,0x75,0xa,0x76,0x9,0xbf,0x8,0x1a,0x8, +0x59,0x7,0xb3,0x6,0x8b,0x6,0xf1,0x6,0x53,0x7,0x15,0x7, +0x5a,0x6,0xc5,0x5,0xa9,0x5,0xfe,0x5,0x6e,0x6,0x72,0x6, +0x43,0x6,0xc9,0x6,0xfd,0x7,0xff,0x8,0x94,0x9,0x13,0xa, +0xa1,0xa,0x1f,0xb,0x35,0xb,0xc5,0xa,0x48,0xa,0xe,0xa, +0xb5,0x9,0xa4,0x8,0xe2,0x6,0x4a,0x5,0x8d,0x4,0x44,0x4, +0xa6,0x3,0x9c,0x2,0x72,0x1,0x55,0x0,0x7b,0xff,0xe4,0xfe, +0x2a,0xfe,0x54,0xfd,0xd5,0xfc,0x72,0xfc,0xab,0xfb,0xd8,0xfa, +0x9a,0xfa,0xfd,0xfa,0xb3,0xfb,0x47,0xfc,0x4f,0xfc,0x4a,0xfc, +0x1e,0xfd,0x68,0xfe,0xfa,0xfe,0xac,0xfe,0x4e,0xfe,0x8d,0xfe, +0x54,0xff,0xb7,0xff,0x31,0xff,0x74,0xfe,0x8,0xfe,0xa3,0xfd, +0x17,0xfd,0x7e,0xfc,0xf4,0xfb,0xad,0xfb,0x69,0xfb,0x60,0xfa, +0xc5,0xf8,0xc5,0xf7,0x8b,0xf7,0x39,0xf7,0x64,0xf6,0x22,0xf5, +0xe4,0xf3,0x2d,0xf3,0xac,0xf2,0xda,0xf1,0xfe,0xf0,0x6b,0xf0, +0x41,0xf0,0x87,0xf0,0xaa,0xf0,0x9d,0xf0,0x56,0xf1,0xd7,0xf2, +0xa,0xf4,0xc3,0xf4,0xb9,0xf5,0x59,0xf7,0x9b,0xf9,0xee,0xfb, +0x87,0xfd,0x66,0xfe,0x9e,0xff,0xe2,0x1,0x79,0x4,0x52,0x6, +0x74,0x7,0xdd,0x8,0x8,0xb,0x9,0xd,0x21,0xe,0xdf,0xe, +0xb2,0xf,0x59,0x10,0x9f,0x10,0x1d,0x10,0x5,0xf,0x8b,0xe, +0xa5,0xe,0xf0,0xd,0x43,0xc,0xaa,0xa,0xf1,0x9,0x15,0xa, +0x14,0xa,0x53,0x9,0xcc,0x8,0x12,0x9,0x46,0x9,0x16,0x9, +0x25,0x9,0xbf,0x9,0xf1,0xa,0x77,0xc,0x32,0xd,0x3,0xd, +0xad,0xd,0xeb,0xf,0x81,0x12,0x79,0x14,0xc7,0x15,0xeb,0x16, +0xbc,0x18,0xe7,0x1a,0x27,0x1c,0x81,0x1c,0xde,0x1c,0x59,0x1d, +0x87,0x1d,0xf3,0x1c,0x67,0x1b,0xb9,0x19,0xd2,0x18,0xff,0x17, +0x45,0x16,0x1c,0x14,0x7b,0x12,0x87,0x11,0xad,0x10,0x6f,0xf, +0x10,0xe,0x32,0xd,0xcf,0xc,0x71,0xc,0xf6,0xb,0x97,0xb, +0xb6,0xb,0x44,0xc,0x93,0xc,0x65,0xc,0x54,0xc,0xb5,0xc, +0x21,0xd,0x24,0xd,0xd1,0xc,0x9e,0xc,0xb9,0xc,0x9c,0xc, +0xb1,0xb,0x47,0xa,0x39,0x9,0xc1,0x8,0x5b,0x8,0x5b,0x7, +0x77,0x5,0x6a,0x3,0x1e,0x2,0x1d,0x1,0xa8,0xff,0x22,0xfe, +0xfd,0xfc,0x2b,0xfc,0x9c,0xfb,0xe9,0xfa,0x7,0xfa,0xf2,0xf9, +0x1,0xfb,0x1e,0xfc,0x85,0xfc,0x90,0xfc,0xf4,0xfc,0xeb,0xfd, +0xfb,0xfe,0xad,0xff,0x1f,0x0,0x7c,0x0,0xd1,0x0,0x24,0x1, +0x38,0x1,0x42,0x1,0xf3,0x1,0xc1,0x2,0x7e,0x2,0x8e,0x1, +0xfd,0x0,0xf0,0x0,0x20,0x1,0x1c,0x1,0xb8,0x0,0x81,0x0, +0x72,0x0,0xe7,0xff,0x26,0xff,0xf2,0xfe,0x8e,0xff,0xa5,0x0, +0x8,0x1,0xf0,0xff,0x70,0xfe,0xfa,0xfd,0x67,0xfe,0x7f,0xfe, +0x8c,0xfd,0xef,0xfb,0x68,0xfa,0x2b,0xf9,0xc,0xf8,0x1a,0xf7, +0x78,0xf6,0xd3,0xf5,0xcf,0xf4,0x75,0xf3,0xea,0xf1,0xd1,0xf0, +0x5,0xf1,0xcf,0xf1,0xa7,0xf1,0xa0,0xf0,0xcf,0xef,0xd8,0xef, +0xe9,0xf0,0x7f,0xf2,0xe1,0xf3,0x4,0xf5,0xcb,0xf5,0x12,0xf6, +0x6e,0xf6,0x59,0xf7,0xb4,0xf8,0x1d,0xfa,0xa6,0xfa,0x9b,0xf9, +0xfa,0xf7,0x63,0xf7,0xc9,0xf7,0xbb,0xf7,0x8f,0xf6,0xd3,0xf4, +0x47,0xf3,0x65,0xf2,0xf1,0xf1,0x28,0xf1,0xed,0xef,0xc6,0xee, +0xf3,0xed,0x68,0xed,0xd8,0xec,0x20,0xec,0xe7,0xeb,0x5b,0xec, +0x85,0xec,0xc,0xec,0xae,0xeb,0x6,0xec,0x32,0xed,0xa8,0xee, +0x67,0xef,0x65,0xef,0x88,0xef,0x43,0xf0,0x57,0xf1,0x2f,0xf2, +0x64,0xf2,0x6d,0xf2,0xaf,0xf2,0xa7,0xf2,0x23,0xf2,0xb3,0xf1, +0x88,0xf1,0x51,0xf1,0xd7,0xf0,0x39,0xf0,0xec,0xef,0x23,0xf0, +0x64,0xf0,0x21,0xf0,0x7c,0xef,0x40,0xef,0xee,0xef,0xf9,0xf0, +0x6c,0xf1,0x8,0xf1,0x8e,0xf0,0xd0,0xf0,0x86,0xf1,0xf0,0xf1, +0x22,0xf2,0x69,0xf2,0xb0,0xf2,0xe7,0xf2,0xe6,0xf2,0xbf,0xf2, +0x21,0xf3,0x16,0xf4,0xbd,0xf4,0xb6,0xf4,0x4f,0xf4,0x14,0xf4, +0x81,0xf4,0x44,0xf5,0x99,0xf5,0x6f,0xf5,0x18,0xf5,0xc9,0xf4, +0xca,0xf4,0x1e,0xf5,0x73,0xf5,0xc6,0xf5,0x1c,0xf6,0x14,0xf6, +0xbd,0xf5,0xbb,0xf5,0x3a,0xf6,0xf2,0xf6,0x87,0xf7,0x62,0xf7, +0x6a,0xf6,0x8d,0xf5,0x5c,0xf5,0x40,0xf5,0x9f,0xf4,0x98,0xf3, +0x86,0xf2,0x95,0xf1,0xc7,0xf0,0x17,0xf0,0xab,0xef,0xc8,0xef, +0x46,0xf0,0x98,0xf0,0x9b,0xf0,0xc7,0xf0,0x95,0xf1,0x4,0xf3, +0x5d,0xf4,0x6,0xf5,0x69,0xf5,0x17,0xf6,0x21,0xf7,0x7d,0xf8, +0xe1,0xf9,0x12,0xfb,0x3e,0xfc,0x28,0xfd,0x72,0xfd,0x9a,0xfd, +0x1a,0xfe,0x94,0xfe,0x7a,0xfe,0x76,0xfd,0x93,0xfb,0x8e,0xf9, +0x18,0xf8,0xd2,0xf6,0xf3,0xf4,0xb5,0xf2,0xeb,0xf0,0xbf,0xef, +0xdd,0xee,0x15,0xee,0x78,0xed,0x4b,0xed,0x8d,0xed,0xe4,0xed, +0x35,0xee,0xb7,0xee,0xc4,0xef,0x8c,0xf1,0x7c,0xf3,0xe1,0xf4, +0xf9,0xf5,0x89,0xf7,0xf8,0xf9,0xdb,0xfc,0x4e,0xff,0xf4,0x0, +0x17,0x2,0x13,0x3,0x21,0x4,0xe1,0x4,0xc8,0x4,0x32,0x4, +0x9d,0x3,0xb4,0x2,0x3e,0x1,0x6c,0xff,0x9a,0xfd,0x4e,0xfc, +0x69,0xfb,0x31,0xfa,0xa6,0xf8,0x58,0xf7,0x9d,0xf6,0x77,0xf6, +0x5b,0xf6,0xcd,0xf5,0x45,0xf5,0x43,0xf5,0xb6,0xf5,0x7c,0xf6, +0x35,0xf7,0xaf,0xf7,0x82,0xf8,0xc8,0xf9,0xe1,0xfa,0xe3,0xfb, +0x49,0xfd,0x17,0xff,0xf9,0x0,0x61,0x2,0x1b,0x3,0xcc,0x3, +0xf4,0x4,0x59,0x6,0x85,0x7,0xe,0x8,0x2b,0x8,0x84,0x8, +0xf,0x9,0x45,0x9,0x36,0x9,0x60,0x9,0xde,0x9,0x35,0xa, +0xfd,0x9,0x73,0x9,0x26,0x9,0x5d,0x9,0xd8,0x9,0xdc,0x9, +0x10,0x9,0x1f,0x8,0xd6,0x7,0xa,0x8,0xf6,0x7,0x3d,0x7, +0x4d,0x6,0xc4,0x5,0xaa,0x5,0x7d,0x5,0x4,0x5,0x99,0x4, +0x92,0x4,0xdc,0x4,0x20,0x5,0x10,0x5,0xb,0x5,0xbe,0x5, +0xee,0x6,0xf7,0x7,0xbc,0x8,0x65,0x9,0x67,0xa,0x9,0xc, +0x95,0xd,0x92,0xe,0x7b,0xf,0x8b,0x10,0xbb,0x11,0x6,0x13, +0xfa,0x13,0x7a,0x14,0xf4,0x14,0x3d,0x15,0xe8,0x14,0x28,0x14, +0x58,0x13,0x97,0x12,0xbb,0x11,0x67,0x10,0xa4,0xe,0xf8,0xc, +0xb7,0xb,0xd5,0xa,0x21,0xa,0x59,0x9,0xa7,0x8,0x65,0x8, +0x47,0x8,0xa,0x8,0xc,0x8,0x36,0x8,0x45,0x8,0xba,0x8, +0x84,0x9,0xed,0x9,0x4f,0xa,0x1f,0xb,0xdb,0xb,0x99,0xc, +0xca,0xd,0xfe,0xe,0xee,0xf,0xc3,0x10,0x3f,0x11,0x58,0x11, +0x6d,0x11,0x4d,0x11,0xb5,0x10,0x6,0x10,0x74,0xf,0xc3,0xe, +0xe0,0xd,0x9c,0xc,0xff,0xa,0xe7,0x9,0x9d,0x9,0x1c,0x9, +0xe4,0x7,0x67,0x6,0xf5,0x4,0xf7,0x3,0x86,0x3,0xdf,0x2, +0xc7,0x1,0xc4,0x0,0xe3,0xff,0x39,0xff,0x17,0xff,0x27,0xff, +0xd,0xff,0xfc,0xfe,0xb,0xff,0x2c,0xff,0x61,0xff,0x98,0xff, +0x10,0x0,0x1f,0x1,0x6b,0x2,0x6c,0x3,0xeb,0x3,0xfc,0x3, +0x9e,0x4,0xc0,0x6,0x29,0x9,0x16,0xa,0xbc,0x9,0x40,0x9, +0x7b,0x9,0xc2,0xa,0x8,0xc,0xfa,0xb,0x31,0xb,0xc,0xb, +0xb5,0xb,0x6d,0xc,0x81,0xc,0x23,0xc,0x7f,0xc,0x99,0xd, +0xb7,0xd,0x50,0xc,0xdd,0xa,0x68,0xa,0xd1,0xa,0x0,0xb, +0x63,0x9,0xa2,0x6,0x76,0x5,0x40,0x6,0xd4,0x6,0x2b,0x6, +0x15,0x5,0x5,0x5,0x95,0x6,0x37,0x8,0x6c,0x8,0x4f,0x8, +0x86,0x9,0xb4,0xb,0x5b,0xd,0xb0,0xd,0x99,0xd,0xda,0xe, +0x4c,0x11,0xab,0x12,0x54,0x12,0x29,0x12,0x67,0x13,0x58,0x15, +0x5b,0x16,0x76,0x15,0x13,0x14,0x7b,0x14,0x10,0x16,0x6b,0x16, +0xc,0x15,0x3d,0x13,0x41,0x12,0x45,0x12,0xdf,0x11,0x26,0x10, +0x79,0xe,0x18,0xe,0x3f,0xe,0xb2,0xd,0x3f,0xc,0x9,0xb, +0xa2,0xb,0x8f,0xd,0x34,0xe,0xda,0xc,0xea,0xb,0xc,0xd, +0x49,0xf,0xd2,0x10,0x83,0x10,0x58,0xf,0xc9,0xf,0xc8,0x11, +0xfb,0x12,0xf6,0x12,0xe6,0x12,0x58,0x13,0xa,0x14,0xa4,0x13, +0x96,0x11,0xf,0x10,0x65,0x10,0x9c,0x10,0xfc,0xe,0xf6,0xb, +0xa5,0x8,0x63,0x6,0xae,0x5,0xef,0x4,0xe0,0x2,0xaf,0x0, +0x8e,0xff,0xf3,0xfe,0x33,0xfe,0x67,0xfd,0x1c,0xfd,0xb6,0xfd, +0x79,0xfe,0x6a,0xfe,0xef,0xfd,0xd2,0xfd,0x32,0xfe,0xe4,0xfe, +0x23,0xff,0x4f,0xfe,0x60,0xfd,0x66,0xfd,0xc3,0xfd,0x8d,0xfd, +0xd8,0xfc,0xfc,0xfb,0x3c,0xfb,0xca,0xfa,0x78,0xfa,0xf,0xfa, +0xb3,0xf9,0x72,0xf9,0x9,0xf9,0x2a,0xf8,0xe7,0xf6,0xfe,0xf5, +0x8,0xf6,0x73,0xf6,0x45,0xf6,0x85,0xf5,0xeb,0xf4,0xd8,0xf4, +0x50,0xf5,0x31,0xf6,0x13,0xf7,0xb0,0xf7,0x2a,0xf8,0x7b,0xf8, +0x88,0xf8,0xad,0xf8,0x9,0xf9,0x21,0xf9,0xb1,0xf8,0xf3,0xf7, +0x40,0xf7,0xe1,0xf6,0x9a,0xf6,0xfc,0xf5,0x37,0xf5,0xa3,0xf4, +0x27,0xf4,0x8d,0xf3,0xcc,0xf2,0x21,0xf2,0xba,0xf1,0x38,0xf1, +0x5c,0xf0,0x79,0xef,0xfc,0xee,0x44,0xef,0x14,0xf0,0x9b,0xf0, +0xec,0xf0,0xc3,0xf1,0x30,0xf3,0xd8,0xf4,0x39,0xf6,0x14,0xf7, +0x28,0xf8,0x9c,0xf9,0x55,0xfa,0x27,0xfa,0x1b,0xfa,0xa3,0xfa, +0x57,0xfb,0xa3,0xfb,0x4b,0xfb,0xf4,0xfa,0x6d,0xfb,0x42,0xfc, +0x5f,0xfc,0xb9,0xfb,0x12,0xfb,0xec,0xfa,0x9,0xfb,0x58,0xfa, +0x6d,0xf8,0x94,0xf6,0xc9,0xf5,0x46,0xf5,0x3f,0xf4,0xe8,0xf2, +0xc4,0xf1,0x41,0xf1,0x46,0xf1,0xdf,0xf0,0x94,0xef,0x81,0xee, +0x8a,0xee,0xca,0xee,0x39,0xee,0xfa,0xec,0xeb,0xeb,0xdb,0xeb, +0x5e,0xec,0x4d,0xec,0xe0,0xeb,0xf,0xec,0xf4,0xec,0x37,0xee, +0x15,0xef,0xfa,0xee,0x5,0xef,0x41,0xf0,0x7e,0xf1,0x63,0xf1, +0x58,0xf0,0xa7,0xef,0xe9,0xef,0x37,0xf0,0x88,0xef,0x83,0xee, +0x55,0xee,0xf0,0xee,0x93,0xef,0x99,0xef,0x1b,0xef,0x12,0xef, +0xdc,0xef,0x68,0xf0,0xdd,0xef,0xc,0xef,0x26,0xef,0xdb,0xef, +0x10,0xf0,0x9c,0xef,0x55,0xef,0x33,0xf0,0x13,0xf2,0x98,0xf3, +0x3b,0xf4,0xe1,0xf4,0x1f,0xf6,0xbc,0xf7,0x23,0xf9,0xf9,0xf9, +0xe3,0xfa,0x73,0xfc,0xe7,0xfd,0x8b,0xfe,0xe8,0xfe,0xd0,0xff, +0x74,0x1,0x32,0x3,0x24,0x4,0x60,0x4,0xc3,0x4,0x69,0x5, +0xc4,0x5,0xc7,0x5,0x92,0x5,0x13,0x5,0x79,0x4,0xeb,0x3, +0x82,0x3,0x7e,0x3,0x99,0x3,0x48,0x3,0xa0,0x2,0x48,0x2, +0xd6,0x2,0xee,0x3,0x6e,0x4,0x1c,0x4,0xed,0x3,0x73,0x4, +0x71,0x5,0x64,0x6,0x0,0x7,0xce,0x7,0x59,0x9,0xc1,0xa, +0xf3,0xa,0x91,0xa,0xb1,0xa,0x69,0xb,0x33,0xc,0xe2,0xb, +0xc3,0x9,0xb1,0x7,0xa3,0x7,0x6a,0x8,0x3a,0x8,0x55,0x7, +0x9e,0x6,0x93,0x6,0x51,0x7,0xff,0x7,0xd4,0x7,0x4c,0x7, +0xe,0x7,0xf3,0x6,0x69,0x6,0x28,0x5,0x14,0x4,0x77,0x4, +0x8e,0x5,0x73,0x5,0x5b,0x4,0xef,0x3,0xb9,0x4,0x2a,0x6, +0x5e,0x7,0x72,0x7,0x93,0x6,0xb9,0x5,0xf7,0x4,0xbd,0x3, +0x20,0x2,0x77,0x0,0xe7,0xfe,0x52,0xfd,0x62,0xfb,0x65,0xf9, +0x20,0xf8,0x83,0xf7,0x13,0xf7,0x95,0xf6,0xb4,0xf5,0x7d,0xf4, +0x92,0xf3,0x58,0xf3,0x94,0xf3,0x9d,0xf3,0x33,0xf3,0xf1,0xf2, +0x4f,0xf3,0x3b,0xf4,0x94,0xf5,0x39,0xf7,0x4,0xf9,0xcc,0xfa, +0x5d,0xfc,0xa5,0xfd,0xa7,0xfe,0x8a,0xff,0xb5,0x0,0xd,0x2, +0xbe,0x2,0x72,0x2,0xe6,0x1,0xb1,0x1,0x84,0x1,0x29,0x1, +0xef,0x0,0xc9,0x0,0x3b,0x0,0x20,0xff,0xfa,0xfd,0x4a,0xfd, +0x3,0xfd,0xf2,0xfc,0xdf,0xfc,0x47,0xfc,0x56,0xfb,0xf1,0xfa, +0xe,0xfb,0xf1,0xfa,0xb7,0xfa,0xc6,0xfa,0xba,0xfa,0x1b,0xfa, +0x4b,0xf9,0x12,0xf9,0x9e,0xf9,0x8f,0xfa,0x6b,0xfb,0xcb,0xfb, +0xd7,0xfb,0x6f,0xfc,0xfa,0xfd,0xc0,0xff,0xff,0x0,0xaa,0x1, +0xfe,0x1,0x36,0x2,0x5e,0x2,0x4a,0x2,0xd,0x2,0x7,0x2, +0x36,0x2,0xf9,0x1,0xfc,0x0,0xf4,0xff,0xa4,0xff,0xcb,0xff, +0xa9,0xff,0xb6,0xfe,0x11,0xfd,0x84,0xfb,0x62,0xfa,0x1b,0xf9, +0x65,0xf7,0x98,0xf5,0x21,0xf4,0x28,0xf3,0x65,0xf2,0xb0,0xf1, +0x60,0xf1,0xc3,0xf1,0xc0,0xf2,0xf5,0xf3,0x31,0xf5,0xb5,0xf6, +0xa5,0xf8,0xc9,0xfa,0xff,0xfc,0x52,0xff,0xe2,0x1,0xa5,0x4, +0x40,0x7,0x79,0x9,0x87,0xb,0x97,0xd,0x86,0xf,0x2e,0x11, +0x7e,0x12,0x5c,0x13,0xb2,0x13,0x51,0x13,0x41,0x12,0xa,0x11, +0xdb,0xf,0x4c,0xe,0x37,0xc,0xb8,0x9,0xf,0x7,0xb5,0x4, +0xd4,0x2,0x4e,0x1,0x2,0x0,0x9a,0xfe,0x1f,0xfd,0x18,0xfc, +0x8e,0xfb,0x57,0xfb,0xa4,0xfb,0x74,0xfc,0x6b,0xfd,0x45,0xfe, +0x28,0xff,0x9c,0x0,0xcc,0x2,0x18,0x5,0xd9,0x6,0x8,0x8, +0xfe,0x8,0x35,0xa,0xd4,0xb,0x33,0xd,0xbb,0xd,0xce,0xd, +0xce,0xd,0x6e,0xd,0x7b,0xc,0x58,0xb,0xaa,0xa,0x63,0xa, +0x6f,0x9,0x55,0x7,0x16,0x5,0xb2,0x3,0x15,0x3,0x97,0x2, +0x77,0x1,0xcd,0xff,0xe5,0xfe,0x31,0xff,0x50,0xff,0x9c,0xfe, +0x1f,0xfe,0x57,0xfe,0xbb,0xfe,0xae,0xfe,0x16,0xfe,0xe1,0xfd, +0xce,0xfe,0xcc,0xff,0xc5,0xff,0x55,0xff,0x87,0xff,0xc4,0x0, +0xa7,0x2,0xe9,0x3,0xe6,0x3,0xbf,0x3,0x6d,0x4,0x51,0x5, +0xa8,0x5,0x80,0x5,0x39,0x5,0x52,0x5,0xd5,0x5,0x19,0x6, +0x1,0x6,0x55,0x6,0x7a,0x7,0xf2,0x8,0xee,0x9,0x20,0xa, +0x17,0xa,0x87,0xa,0x10,0xb,0x9e,0xa,0xa,0x9,0x45,0x7, +0xef,0x5,0xed,0x4,0x96,0x3,0x73,0x1,0x46,0xff,0x9,0xfe, +0x6f,0xfd,0xb5,0xfc,0xb1,0xfb,0xbe,0xfa,0x6a,0xfa,0xaa,0xfa, +0xab,0xfa,0x25,0xfa,0xd6,0xf9,0x3e,0xfa,0xfb,0xfa,0xa9,0xfb, +0x6b,0xfc,0xab,0xfd,0x97,0xff,0xa8,0x1,0x30,0x3,0x5d,0x4, +0xcf,0x5,0x8e,0x7,0x3,0x9,0x98,0x9,0x3b,0x9,0x55,0x8, +0x45,0x7,0x1d,0x6,0xc5,0x4,0x39,0x3,0x90,0x1,0xc3,0xff, +0xe2,0xfd,0x1d,0xfc,0xad,0xfa,0xdd,0xf9,0x5e,0xf9,0x71,0xf8, +0x34,0xf7,0x48,0xf6,0xdc,0xf5,0xd9,0xf5,0xe0,0xf5,0x80,0xf5, +0x5,0xf5,0xff,0xf4,0x63,0xf5,0xdb,0xf5,0x5c,0xf6,0x43,0xf7, +0x9d,0xf8,0xc3,0xf9,0x50,0xfa,0xcf,0xfa,0xc7,0xfb,0x19,0xfd, +0x35,0xfe,0x79,0xfe,0xf9,0xfd,0x77,0xfd,0x37,0xfd,0xeb,0xfc, +0x5d,0xfc,0x7c,0xfb,0xb8,0xfa,0x92,0xfa,0x84,0xfa,0x4,0xfa, +0xb1,0xf9,0x10,0xfa,0xc9,0xfa,0x68,0xfb,0x9f,0xfb,0x5c,0xfb, +0x19,0xfb,0x3a,0xfb,0x41,0xfb,0xaf,0xfa,0x11,0xfa,0xf4,0xf9, +0xfb,0xf9,0xcf,0xf9,0xa2,0xf9,0xb5,0xf9,0x34,0xfa,0x2e,0xfb, +0x3a,0xfc,0xc2,0xfc,0x6,0xfd,0xc3,0xfd,0xd6,0xfe,0x89,0xff, +0xcc,0xff,0x3c,0x0,0x35,0x1,0x45,0x2,0xed,0x2,0x7f,0x3, +0x70,0x4,0xca,0x5,0x4e,0x7,0x65,0x8,0xd9,0x8,0x4c,0x9, +0x17,0xa,0xa7,0xa,0x66,0xa,0xa3,0x9,0x11,0x9,0x92,0x8, +0x95,0x7,0x30,0x6,0xcd,0x4,0xc8,0x3,0x39,0x3,0xa5,0x2, +0x99,0x1,0x5a,0x0,0xa1,0xff,0xc5,0xff,0x31,0x0,0x44,0x0, +0x3d,0x0,0x7e,0x0,0xf5,0x0,0x8e,0x1,0x35,0x2,0xd8,0x2, +0xa7,0x3,0xb5,0x4,0xa0,0x5,0x32,0x6,0xa7,0x6,0x60,0x7, +0x9a,0x8,0xeb,0x9,0x7b,0xa,0x55,0xa,0x47,0xa,0x90,0xa, +0xd1,0xa,0xa5,0xa,0xd8,0x9,0xcc,0x8,0x1c,0x8,0x9f,0x7, +0xbe,0x6,0x80,0x5,0x64,0x4,0xbb,0x3,0x78,0x3,0x30,0x3, +0x94,0x2,0x32,0x2,0x95,0x2,0x2b,0x3,0x2f,0x3,0xc5,0x2, +0x8b,0x2,0xe0,0x2,0x85,0x3,0xb3,0x3,0x22,0x3,0xb6,0x2, +0x3c,0x3,0x3b,0x4,0x6,0x5,0x6e,0x5,0x97,0x5,0x42,0x6, +0xaa,0x7,0x93,0x8,0x71,0x8,0x43,0x8,0xad,0x8,0x6c,0x9, +0xd4,0x9,0x80,0x9,0x2c,0x9,0xb9,0x9,0xce,0xa,0x8a,0xb, +0xb0,0xb,0xb8,0xb,0x3b,0xc,0x39,0xd,0xd1,0xd,0x4d,0xd, +0x52,0xc,0xba,0xb,0x44,0xb,0x70,0xa,0xe,0x9,0x26,0x7, +0x72,0x5,0x7b,0x4,0xa8,0x3,0x5d,0x2,0xdc,0x0,0xc4,0xff, +0x4a,0xff,0x8,0xff,0xac,0xfe,0x3e,0xfe,0xeb,0xfd,0x30,0xfe, +0x3f,0xff,0x5d,0x0,0x23,0x1,0x2e,0x2,0xee,0x3,0x2a,0x6, +0x81,0x8,0x8b,0xa,0x3b,0xc,0x1,0xe,0xe5,0xf,0x47,0x11, +0xd8,0x11,0xf4,0x11,0xd,0x12,0x5,0x12,0x40,0x11,0x93,0xf, +0x8b,0xd,0xa0,0xb,0x8,0xa,0xb0,0x8,0xfd,0x6,0xaf,0x4, +0x93,0x2,0x3b,0x1,0x3e,0x0,0x4c,0xff,0x8c,0xfe,0xa,0xfe, +0xd5,0xfd,0xd7,0xfd,0xd7,0xfd,0x2a,0xfe,0x32,0xff,0xba,0x0, +0x6d,0x2,0xe3,0x3,0xd9,0x4,0xef,0x5,0xc5,0x7,0xbe,0x9, +0xe7,0xa,0x41,0xb,0x56,0xb,0x59,0xb,0x54,0xb,0x6,0xb, +0xf0,0x9,0x93,0x8,0xb1,0x7,0x8a,0x6,0x8e,0x4,0x99,0x2, +0x3a,0x1,0x63,0x0,0xe8,0xff,0xf,0xff,0x88,0xfd,0x53,0xfc, +0x59,0xfc,0x35,0xfd,0xb,0xfe,0x9c,0xfe,0x38,0xff,0x36,0x0, +0x74,0x1,0x6f,0x2,0x49,0x3,0xa3,0x4,0x39,0x6,0x4c,0x7, +0x80,0x7,0xf5,0x6,0x98,0x6,0x31,0x7,0xfb,0x7,0xd6,0x7, +0xad,0x6,0xe,0x5,0xa6,0x3,0xcc,0x2,0x16,0x2,0x17,0x1, +0xfa,0xff,0xf1,0xfe,0xd3,0xfd,0xb3,0xfc,0x5,0xfc,0x3f,0xfc, +0x82,0xfd,0xe,0xff,0xcb,0xff,0xdb,0xff,0x7d,0x0,0x47,0x2, +0x98,0x4,0x79,0x6,0x43,0x7,0x16,0x7,0xfa,0x6,0x8e,0x7, +0x1d,0x8,0xfc,0x7,0x89,0x7,0x13,0x7,0x60,0x6,0x47,0x5, +0xec,0x3,0xc8,0x2,0x64,0x2,0x3b,0x2,0xb,0x1,0xbb,0xfe, +0x51,0xfc,0x97,0xfa,0xdc,0xf9,0x77,0xf9,0x24,0xf8,0x24,0xf6, +0xcf,0xf4,0x7d,0xf4,0xcb,0xf4,0x3d,0xf5,0x6d,0xf5,0xb0,0xf5, +0x5b,0xf6,0x4,0xf7,0x5f,0xf7,0x8c,0xf7,0xce,0xf7,0x49,0xf8, +0x87,0xf8,0xf3,0xf7,0xca,0xf6,0xd5,0xf5,0x6b,0xf5,0x32,0xf5, +0xab,0xf4,0x8d,0xf3,0x6,0xf2,0xca,0xf0,0x2c,0xf0,0xa5,0xef, +0xc2,0xee,0x96,0xed,0x62,0xec,0x44,0xeb,0x2f,0xea,0x3f,0xe9, +0x73,0xe8,0x89,0xe7,0xa7,0xe6,0x22,0xe6,0xc7,0xe5,0x62,0xe5, +0x3,0xe5,0xce,0xe4,0xe8,0xe4,0x22,0xe5,0xfb,0xe4,0x88,0xe4, +0x70,0xe4,0xd8,0xe4,0x3d,0xe5,0x34,0xe5,0xb8,0xe4,0x34,0xe4, +0x46,0xe4,0xe0,0xe4,0x52,0xe5,0x6c,0xe5,0x98,0xe5,0x25,0xe6, +0xfc,0xe6,0xaf,0xe7,0x18,0xe8,0xc0,0xe8,0xfc,0xe9,0x37,0xeb, +0xc9,0xeb,0xc3,0xeb,0x99,0xeb,0xaf,0xeb,0x13,0xec,0x48,0xec, +0xe5,0xeb,0x48,0xeb,0xa,0xeb,0x8,0xeb,0xc7,0xea,0x59,0xea, +0x30,0xea,0x96,0xea,0x69,0xeb,0xf2,0xeb,0xb7,0xeb,0x58,0xeb, +0xa5,0xeb,0xbf,0xec,0x27,0xee,0xf4,0xee,0x3c,0xef,0x59,0xf0, +0x52,0xf2,0xeb,0xf3,0x4,0xf5,0x2a,0xf6,0xb2,0xf7,0xce,0xf9, +0xaf,0xfb,0x51,0xfc,0x61,0xfc,0x10,0xfd,0x1e,0xfe,0x90,0xfe, +0x5,0xfe,0x16,0xfd,0xce,0xfc,0x5b,0xfd,0xa2,0xfd,0xfa,0xfc, +0x6,0xfc,0x7d,0xfb,0x5c,0xfb,0x16,0xfb,0x31,0xfa,0x1c,0xf9, +0x82,0xf8,0x25,0xf8,0x7d,0xf7,0x99,0xf6,0xfb,0xf5,0x20,0xf6, +0xe5,0xf6,0xa7,0xf7,0x2f,0xf8,0xed,0xf8,0x4e,0xfa,0x1b,0xfc, +0xcd,0xfd,0x34,0xff,0x79,0x0,0xcb,0x1,0xb,0x3,0xff,0x3, +0xde,0x4,0xe5,0x5,0xdf,0x6,0x9e,0x7,0x1b,0x8,0x53,0x8, +0x7d,0x8,0xd8,0x8,0x37,0x9,0x41,0x9,0xce,0x8,0xe8,0x7, +0xf1,0x6,0x3b,0x6,0x76,0x5,0x77,0x4,0x99,0x3,0x93,0x2, +0x15,0x1,0xde,0xff,0x47,0xff,0xc4,0xfe,0x4b,0xfe,0xff,0xfd, +0xa2,0xfd,0x41,0xfd,0x2f,0xfd,0x83,0xfd,0x10,0xfe,0x99,0xfe, +0x1f,0xff,0xa9,0xff,0x10,0x0,0x79,0x0,0x75,0x1,0xe,0x3, +0x8c,0x4,0x7e,0x5,0xf,0x6,0x8c,0x6,0x7b,0x7,0x30,0x9, +0x9,0xb,0x41,0xc,0xdf,0xc,0x61,0xd,0x22,0xe,0xdd,0xe, +0xfd,0xe,0xc4,0xe,0xee,0xe,0x1f,0xf,0x82,0xe,0x46,0xd, +0x11,0xc,0x36,0xb,0xea,0xa,0xd0,0xa,0x23,0xa,0x14,0x9, +0x6e,0x8,0x3d,0x8,0xb,0x8,0x73,0x7,0x66,0x6,0x67,0x5, +0xe0,0x4,0x7d,0x4,0xe7,0x3,0x52,0x3,0xf4,0x2,0xd7,0x2, +0x35,0x3,0x1c,0x4,0x2b,0x5,0x39,0x6,0x62,0x7,0x7b,0x8, +0x54,0x9,0x2,0xa,0x8f,0xa,0xd7,0xa,0xe9,0xa,0xf2,0xa, +0xd7,0xa,0x77,0xa,0x18,0xa,0xfd,0x9,0x1c,0xa,0x2d,0xa, +0xd6,0x9,0x2f,0x9,0x94,0x8,0xc,0x8,0x79,0x7,0xa3,0x6, +0x37,0x5,0x62,0x3,0xb6,0x1,0x8f,0x0,0xf4,0xff,0xa0,0xff, +0x3c,0xff,0xe2,0xfe,0xfe,0xfe,0xa0,0xff,0x75,0x0,0x69,0x1, +0x7f,0x2,0x70,0x3,0xe,0x4,0x72,0x4,0xcd,0x4,0x50,0x5, +0x7,0x6,0xdd,0x6,0x7b,0x7,0x8f,0x7,0x96,0x7,0x3c,0x8, +0x49,0x9,0x27,0xa,0x80,0xa,0x53,0xa,0x5,0xa,0xca,0x9, +0x9e,0x9,0x95,0x9,0x61,0x9,0xb6,0x8,0xdf,0x7,0x14,0x7, +0x6c,0x6,0x37,0x6,0x7b,0x6,0xb7,0x6,0x61,0x6,0x89,0x5, +0x1,0x5,0x34,0x5,0x8e,0x5,0xa9,0x5,0x9d,0x5,0x5f,0x5, +0x23,0x5,0x5d,0x5,0xe0,0x5,0x4b,0x6,0xa5,0x6,0xfa,0x6, +0x5c,0x7,0xc1,0x7,0xea,0x7,0x43,0x8,0x35,0x9,0x6,0xa, +0x54,0xa,0xb2,0xa,0x35,0xb,0xc4,0xb,0xc6,0xc,0xf7,0xd, +0x97,0xe,0xcb,0xe,0x10,0xf,0x47,0xf,0x67,0xf,0xb0,0xf, +0xd8,0xf,0x62,0xf,0x7e,0xe,0xa3,0xd,0xe1,0xc,0xe,0xc, +0x1d,0xb,0xf,0xa,0xeb,0x8,0xcd,0x7,0x91,0x6,0x1f,0x5, +0xe2,0x3,0x4,0x3,0x38,0x2,0x63,0x1,0x7c,0x0,0x8d,0xff, +0x9,0xff,0x26,0xff,0x7d,0xff,0xa5,0xff,0xcb,0xff,0x71,0x0, +0x86,0x1,0x7f,0x2,0x2e,0x3,0xdc,0x3,0xfb,0x4,0x48,0x6, +0xc2,0x6,0x8d,0x6,0xb9,0x6,0x60,0x7,0xe,0x8,0x37,0x8, +0x68,0x7,0x87,0x6,0x8f,0x6,0xc9,0x6,0x7a,0x6,0xcf,0x5, +0x3c,0x5,0x66,0x5,0xc1,0x5,0xdd,0x4,0x55,0x3,0xd3,0x2, +0x24,0x3,0x48,0x3,0xbb,0x2,0x72,0x1,0xa5,0x0,0x60,0x1, +0x59,0x2,0x21,0x2,0x8d,0x1,0xd3,0x1,0xbe,0x2,0x68,0x3, +0x26,0x3,0x42,0x2,0x3,0x2,0xc7,0x2,0x32,0x3,0x63,0x2, +0x1d,0x1,0xab,0x0,0x86,0x1,0x98,0x2,0xa0,0x2,0x4c,0x2, +0xe4,0x2,0x47,0x4,0x8e,0x5,0x33,0x6,0x7a,0x6,0x2f,0x7, +0x61,0x8,0x12,0x9,0xb4,0x8,0x2b,0x8,0x93,0x8,0x98,0x9, +0x20,0xa,0xc5,0x9,0x2d,0x9,0x5c,0x9,0x1e,0xa,0x32,0xa, +0x8d,0x9,0x10,0x9,0xdd,0x8,0x94,0x8,0xb5,0x7,0x3e,0x6, +0x31,0x5,0xde,0x4,0x51,0x4,0x4d,0x3,0x90,0x2,0x93,0x2, +0x33,0x3,0xc4,0x3,0x9c,0x3,0x4f,0x3,0x1f,0x4,0xd2,0x5, +0x6,0x7,0x56,0x7,0x72,0x7,0x2f,0x8,0xd0,0x9,0x4d,0xb, +0xfd,0xb,0xdd,0xc,0x5d,0xe,0xb5,0xf,0x7f,0x10,0x93,0x10, +0x5f,0x10,0x13,0x11,0x39,0x12,0xf9,0x11,0x84,0x10,0x5e,0xf, +0xa6,0xe,0xf0,0xd,0x35,0xd,0x1f,0xc,0xc4,0xa,0xca,0x9, +0xe3,0x8,0x59,0x7,0x62,0x5,0xbc,0x3,0xec,0x2,0x61,0x2, +0xb5,0x0,0x28,0xfe,0x94,0xfc,0x52,0xfc,0x39,0xfc,0xd0,0xfb, +0x3a,0xfb,0xd6,0xfa,0x57,0xfb,0x65,0xfc,0xa9,0xfc,0x2c,0xfc, +0x44,0xfc,0x45,0xfd,0x34,0xfe,0x30,0xfe,0x43,0xfd,0x87,0xfc, +0x11,0xfd,0x6b,0xfe,0x4f,0xff,0x77,0xff,0x7b,0xff,0x0,0x0, +0x52,0x1,0xc7,0x2,0x69,0x3,0x81,0x3,0xcc,0x3,0x32,0x4, +0x75,0x4,0x76,0x4,0xe,0x4,0x9d,0x3,0x89,0x3,0x73,0x3, +0x5,0x3,0x7a,0x2,0xc,0x2,0xb4,0x1,0x43,0x1,0x47,0x0, +0x73,0xfe,0x22,0xfc,0xfb,0xf9,0x20,0xf8,0x22,0xf6,0xa2,0xf3, +0xc3,0xf0,0x2a,0xee,0x73,0xec,0x84,0xeb,0xcf,0xea,0x1d,0xea, +0x89,0xe9,0x65,0xe9,0xfb,0xe9,0xcf,0xea,0x42,0xeb,0xc3,0xeb, +0xb8,0xec,0xc2,0xed,0xc6,0xee,0xe1,0xef,0x1c,0xf1,0xc8,0xf2, +0xde,0xf4,0xb2,0xf6,0xe4,0xf7,0xb6,0xf8,0x95,0xf9,0x74,0xfa, +0xd0,0xfa,0x84,0xfa,0xb8,0xf9,0x70,0xf8,0xc9,0xf6,0xa,0xf5, +0x71,0xf3,0xf7,0xf1,0x44,0xf0,0x62,0xee,0xc1,0xec,0x60,0xeb, +0xf8,0xe9,0x74,0xe8,0x17,0xe7,0x3d,0xe6,0xb7,0xe5,0x10,0xe5, +0x5e,0xe4,0xf6,0xe3,0x2c,0xe4,0x3a,0xe5,0xb0,0xe6,0xf3,0xe7, +0x3c,0xe9,0x2,0xeb,0x20,0xed,0x15,0xef,0x87,0xf0,0x92,0xf1, +0xaf,0xf2,0xee,0xf3,0xc2,0xf4,0xee,0xf4,0xf8,0xf4,0x72,0xf5, +0x46,0xf6,0xf0,0xf6,0x35,0xf7,0x73,0xf7,0x24,0xf8,0x24,0xf9, +0xb4,0xf9,0x8c,0xf9,0x27,0xf9,0xe3,0xf8,0x93,0xf8,0xd3,0xf7, +0x7b,0xf6,0xfe,0xf4,0xdf,0xf3,0x1,0xf3,0x16,0xf2,0xfa,0xf0, +0xf4,0xef,0xab,0xef,0xd0,0xef,0x41,0xef,0xb,0xee,0x2d,0xed, +0xf6,0xec,0xf9,0xec,0x84,0xec,0x3c,0xeb,0xfc,0xe9,0xfd,0xe9, +0xf1,0xea,0x92,0xeb,0xbe,0xeb,0x62,0xec,0xf3,0xed,0x36,0xf0, +0x57,0xf2,0x92,0xf3,0x83,0xf4,0x19,0xf6,0xd7,0xf7,0xfe,0xf8, +0x70,0xf9,0x48,0xf9,0x22,0xf9,0x5a,0xf9,0x49,0xf9,0xb2,0xf8, +0x3a,0xf8,0x13,0xf8,0xd7,0xf7,0x4f,0xf7,0x71,0xf6,0x56,0xf5, +0x56,0xf4,0x74,0xf3,0x22,0xf2,0x3d,0xf0,0x5c,0xee,0xda,0xec, +0xa6,0xeb,0x9b,0xea,0xb0,0xe9,0x53,0xe9,0xc0,0xe9,0x71,0xea, +0x25,0xeb,0x27,0xec,0x86,0xed,0x4f,0xef,0x61,0xf1,0xff,0xf2, +0x1,0xf4,0x3b,0xf5,0xfd,0xf6,0x80,0xf8,0x34,0xf9,0x95,0xf9, +0x64,0xfa,0xa5,0xfb,0x96,0xfc,0xb5,0xfc,0x8c,0xfc,0xc0,0xfc, +0x13,0xfd,0x2c,0xfd,0xef,0xfc,0x64,0xfc,0x3,0xfc,0xd2,0xfb, +0x21,0xfb,0x1b,0xfa,0x86,0xf9,0x87,0xf9,0xc0,0xf9,0x99,0xf9, +0xfa,0xf8,0xbf,0xf8,0x48,0xf9,0x27,0xfa,0x0,0xfb,0x61,0xfb, +0x63,0xfb,0xdf,0xfb,0xc3,0xfc,0x4b,0xfd,0xa1,0xfd,0x49,0xfe, +0x3,0xff,0x66,0xff,0x9b,0xff,0xff,0xff,0xbb,0x0,0xbe,0x1, +0xca,0x2,0x76,0x3,0xb2,0x3,0x13,0x4,0x1,0x5,0x1b,0x6, +0xec,0x6,0x70,0x7,0xc7,0x7,0x34,0x8,0xce,0x8,0x3f,0x9, +0x7d,0x9,0xc6,0x9,0x2e,0xa,0xd4,0xa,0x68,0xb,0x5f,0xb, +0xf,0xb,0x5,0xb,0x26,0xb,0x47,0xb,0x3a,0xb,0xef,0xa, +0xa1,0xa,0x52,0xa,0xdb,0x9,0x5c,0x9,0xe0,0x8,0x7d,0x8, +0x59,0x8,0x42,0x8,0xeb,0x7,0x75,0x7,0x2d,0x7,0x2e,0x7, +0x90,0x7,0x57,0x8,0xed,0x8,0x0,0x9,0x3d,0x9,0x10,0xa, +0x3c,0xb,0x8c,0xc,0x82,0xd,0xea,0xd,0x5c,0xe,0x11,0xf, +0xcd,0xf,0x70,0x10,0xde,0x10,0x4b,0x11,0xbc,0x11,0x90,0x11, +0xe9,0x10,0x87,0x10,0x90,0x10,0xe0,0x10,0xe2,0x10,0xe1,0xf, +0x76,0xe,0xb2,0xd,0x8c,0xd,0x81,0xd,0x20,0xd,0x24,0xc, +0x9,0xb,0x95,0xa,0x9b,0xa,0x49,0xa,0x94,0x9,0x27,0x9, +0x10,0x9,0xea,0x8,0x99,0x8,0x20,0x8,0xe,0x8,0xf3,0x8, +0xee,0x9,0xdb,0x9,0x30,0x9,0x21,0x9,0x1a,0xa,0x78,0xb, +0x21,0xc,0xd4,0xb,0x8f,0xb,0x2f,0xc,0x43,0xd,0xdd,0xd, +0x4,0xe,0x54,0xe,0xf9,0xe,0xb1,0xf,0xd5,0xf,0x2a,0xf, +0xe6,0xe,0xdd,0xf,0xdd,0x10,0xa5,0x10,0x86,0xf,0x99,0xe, +0x86,0xe,0xc7,0xe,0x76,0xe,0x86,0xd,0x68,0xc,0xa3,0xb, +0x6f,0xb,0x31,0xb,0xab,0xa,0x89,0xa,0xd3,0xa,0x7,0xb, +0x22,0xb,0x3e,0xb,0x65,0xb,0xa3,0xb,0xd0,0xb,0xdf,0xb, +0xe1,0xb,0xc8,0xb,0xa1,0xb,0x64,0xb,0xe7,0xa,0x68,0xa, +0x6b,0xa,0xcb,0xa,0xae,0xa,0xfb,0x9,0x9a,0x9,0x80,0x9, +0xf5,0x8,0x40,0x8,0x89,0x7,0x71,0x6,0x9b,0x5,0x67,0x5, +0xda,0x4,0x8d,0x3,0x58,0x2,0xe5,0x1,0xf9,0x1,0xdf,0x1, +0x56,0x1,0xff,0x0,0x5d,0x1,0xe3,0x1,0xe0,0x1,0x7d,0x1, +0x14,0x1,0x16,0x1,0x5,0x2,0xeb,0x2,0x47,0x2,0xec,0x0, +0x6f,0x0,0x8f,0x0,0x82,0x0,0x5,0x0,0x21,0xff,0x7c,0xfe, +0x9e,0xfe,0xc1,0xfe,0xef,0xfd,0xbc,0xfc,0x85,0xfc,0x81,0xfd, +0x9d,0xfe,0x9e,0xfe,0x90,0xfd,0x3a,0xfd,0x94,0xfe,0x35,0x0, +0xc5,0x0,0x75,0x0,0x45,0x0,0x43,0x1,0xe5,0x2,0x75,0x3, +0xdf,0x2,0x64,0x2,0x7f,0x2,0xb0,0x2,0x34,0x2,0xff,0x0, +0xd1,0xff,0x25,0xff,0xa1,0xfe,0x67,0xfd,0xa1,0xfb,0xaa,0xfa, +0xaa,0xfa,0xb7,0xfa,0x84,0xfa,0xfc,0xf9,0xb4,0xf9,0x75,0xfa, +0x55,0xfb,0x8f,0xfb,0xd7,0xfb,0x7f,0xfc,0xa3,0xfd,0xff,0xfe, +0x9a,0xff,0x18,0x0,0xca,0x1,0xeb,0x3,0x7c,0x5,0xb4,0x6, +0xda,0x7,0x33,0x9,0xda,0xa,0x2a,0xc,0x61,0xc,0xd4,0xb, +0xd0,0xb,0x8b,0xc,0xd2,0xc,0x52,0xc,0xa6,0xb,0x71,0xb, +0x28,0xc,0x7,0xd,0x26,0xd,0x2c,0xd,0x96,0xd,0x33,0xe, +0x17,0xf,0x81,0xf,0xe6,0xe,0x90,0xe,0x13,0xf,0x71,0xf, +0x69,0xf,0x76,0xf,0x9f,0xf,0xd0,0xf,0x3f,0x10,0xdc,0x10, +0x14,0x11,0xd8,0x10,0xc0,0x10,0xbb,0x10,0x75,0x10,0x21,0x10, +0x93,0xf,0x90,0xe,0x9d,0xd,0x17,0xd,0xe9,0xc,0xd7,0xc, +0x7f,0xc,0x2f,0xc,0x86,0xc,0x26,0xd,0x70,0xd,0x74,0xd, +0x8a,0xd,0xdf,0xd,0x27,0xe,0xd8,0xd,0xe7,0xc,0xa0,0xb, +0x6f,0xa,0x8b,0x9,0x96,0x8,0x65,0x7,0x3f,0x6,0x1d,0x5, +0x6,0x4,0x45,0x3,0xec,0x2,0xe7,0x2,0xeb,0x2,0x8e,0x2, +0xdb,0x1,0x30,0x1,0xe0,0x0,0xed,0x0,0xab,0x0,0xab,0xff, +0x8b,0xfe,0xf6,0xfd,0x3,0xfe,0xa3,0xfe,0x96,0xff,0x6a,0x0, +0x13,0x1,0xcb,0x1,0x78,0x2,0x1a,0x3,0x2,0x4,0xd1,0x4, +0xbb,0x4,0xb2,0x3,0xfb,0x1,0xe4,0xff,0x28,0xfe,0xe,0xfd, +0x15,0xfc,0xf1,0xfa,0xdc,0xf9,0x2d,0xf9,0x2,0xf9,0x36,0xf9, +0xa2,0xf9,0x16,0xfa,0x7b,0xfa,0xc9,0xfa,0xb9,0xfa,0x24,0xfa, +0x45,0xf9,0x79,0xf8,0x1d,0xf8,0xd5,0xf7,0xe1,0xf6,0xf9,0xf5, +0x5a,0xf6,0x8e,0xf7,0x8b,0xf8,0xe,0xf9,0x39,0xf9,0x7e,0xf9, +0x21,0xfa,0x93,0xfa,0x20,0xfa,0xbf,0xf8,0x10,0xf7,0xbb,0xf5, +0x96,0xf4,0xf,0xf3,0x58,0xf1,0x45,0xf0,0x11,0xf0,0x3a,0xf0, +0x7c,0xf0,0xf1,0xf0,0x71,0xf1,0xe3,0xf1,0x56,0xf2,0xa3,0xf2, +0xc5,0xf2,0xea,0xf2,0xeb,0xf2,0xa4,0xf2,0x45,0xf2,0x5,0xf2, +0x8,0xf2,0x69,0xf2,0x9,0xf3,0xba,0xf3,0x5e,0xf4,0xe3,0xf4, +0x5d,0xf5,0xd9,0xf5,0x48,0xf6,0xac,0xf6,0xd0,0xf6,0x5c,0xf6, +0x98,0xf5,0x6,0xf5,0x98,0xf4,0x28,0xf4,0xbe,0xf3,0x51,0xf3, +0xf1,0xf2,0xb2,0xf2,0xae,0xf2,0x9,0xf3,0x8c,0xf3,0x4,0xf4, +0x7e,0xf4,0xc9,0xf4,0x2,0xf5,0xa9,0xf5,0x81,0xf6,0x5,0xf7, +0x47,0xf7,0x69,0xf7,0x7b,0xf7,0x79,0xf7,0x46,0xf7,0x27,0xf7, +0x3d,0xf7,0x2d,0xf7,0x10,0xf7,0x38,0xf7,0x61,0xf7,0x5e,0xf7, +0x86,0xf7,0xe0,0xf7,0x0,0xf8,0xa7,0xf7,0xd4,0xf6,0xa1,0xf5, +0x69,0xf4,0x5f,0xf3,0x3b,0xf2,0xd1,0xf0,0x51,0xef,0x2f,0xee, +0xdf,0xed,0x0,0xee,0xe7,0xed,0xea,0xed,0x5a,0xee,0xc4,0xee, +0x6,0xef,0x1a,0xef,0xa5,0xee,0xe7,0xed,0x5f,0xed,0xc3,0xec, +0xcd,0xeb,0xec,0xea,0x8c,0xea,0xbb,0xea,0x62,0xeb,0x4f,0xec, +0x66,0xed,0xb6,0xee,0x8,0xf0,0x20,0xf1,0x28,0xf2,0x1e,0xf3, +0xb9,0xf3,0xe3,0xf3,0x99,0xf3,0xf,0xf3,0xb2,0xf2,0xa3,0xf2, +0xd6,0xf2,0x30,0xf3,0xa1,0xf3,0x7c,0xf4,0xb1,0xf5,0xa1,0xf6, +0x49,0xf7,0xc9,0xf7,0xda,0xf7,0x87,0xf7,0xfe,0xf6,0x42,0xf6, +0x5a,0xf5,0x1a,0xf4,0x95,0xf2,0x59,0xf1,0xc3,0xf0,0xe7,0xf0, +0x77,0xf1,0xe1,0xf1,0x44,0xf2,0xc,0xf3,0x15,0xf4,0x28,0xf5, +0x23,0xf6,0xd5,0xf6,0x75,0xf7,0x4e,0xf8,0x8,0xf9,0x3b,0xf9, +0x5d,0xf9,0x29,0xfa,0x79,0xfb,0xa5,0xfc,0x74,0xfd,0xf8,0xfd, +0x76,0xfe,0x59,0xff,0x70,0x0,0x1e,0x1,0x22,0x1,0x9b,0x0, +0x4,0x0,0xc6,0xff,0x7a,0xff,0xcd,0xfe,0x45,0xfe,0x1a,0xfe, +0xcd,0xfd,0x39,0xfd,0xd3,0xfc,0xf5,0xfc,0x6a,0xfd,0xe9,0xfd, +0x5f,0xfe,0x94,0xfe,0x8a,0xfe,0xcf,0xfe,0x86,0xff,0x47,0x0, +0xe8,0x0,0x67,0x1,0xb6,0x1,0xe9,0x1,0x32,0x2,0xcb,0x2, +0x87,0x3,0xef,0x3,0x15,0x4,0x2e,0x4,0x39,0x4,0x96,0x4, +0x4b,0x5,0x92,0x5,0x5e,0x5,0x3a,0x5,0x8,0x5,0xa7,0x4, +0x50,0x4,0x33,0x4,0x93,0x4,0x30,0x5,0x39,0x5,0xb6,0x4, +0x78,0x4,0xee,0x4,0x10,0x6,0x49,0x7,0xa6,0x7,0x2e,0x7, +0xe0,0x6,0xf8,0x6,0xd9,0x6,0x74,0x6,0x20,0x6,0xd6,0x5, +0x51,0x5,0x48,0x4,0xd8,0x2,0xd7,0x1,0xb2,0x1,0xed,0x1, +0xf5,0x1,0x6b,0x1,0xbe,0x0,0xfb,0x0,0xe1,0x1,0x52,0x2, +0x6b,0x2,0xe3,0x2,0xe0,0x3,0x21,0x5,0x14,0x6,0x9f,0x6, +0xad,0x7,0xac,0x9,0xa0,0xb,0xac,0xc,0x2f,0xd,0xec,0xd, +0x3a,0xf,0xaa,0x10,0x29,0x11,0x89,0x10,0x3,0x10,0x45,0x10, +0x87,0x10,0xf1,0xf,0xba,0xe,0xdc,0xd,0xbf,0xd,0x9b,0xd, +0xa5,0xc,0x4e,0xb,0x94,0xa,0x8c,0xa,0xa0,0xa,0x76,0xa, +0xe8,0x9,0x67,0x9,0xe4,0x9,0xfe,0xa,0x85,0xb,0x9c,0xb, +0x18,0xc,0x17,0xd,0x4b,0xe,0x3e,0xf,0x98,0xf,0xb2,0xf, +0x47,0x10,0x86,0x11,0xb6,0x12,0xfa,0x12,0x3a,0x12,0x73,0x11, +0x95,0x11,0xff,0x11,0x7a,0x11,0x3d,0x10,0x24,0xf,0x4e,0xe, +0xa7,0xd,0xe3,0xc,0x63,0xb,0xc7,0x9,0x93,0x9,0x36,0xa, +0xac,0x9,0xe4,0x7,0x65,0x6,0x3b,0x6,0x5a,0x7,0xfe,0x7, +0xa0,0x6,0xc1,0x4,0x40,0x4,0x8a,0x4,0x95,0x4,0xed,0x3, +0x99,0x2,0xd2,0x1,0x37,0x2,0x40,0x2,0xfa,0x0,0x9a,0xff, +0x31,0xff,0x7d,0xff,0xb9,0xff,0xf9,0xfe,0x36,0xfd,0x2c,0xfc, +0xfc,0xfc,0x5e,0xfe,0xec,0xfe,0xa2,0xfe,0x23,0xfe,0xb7,0xfe, +0xc7,0x0,0x55,0x2,0xb,0x2,0x65,0x1,0xd4,0x1,0xf6,0x2, +0xb9,0x3,0x51,0x3,0x9,0x2,0x5b,0x1,0xe,0x2,0xbe,0x2, +0x96,0x1,0x8b,0xff,0x5,0xff,0xc2,0xff,0xc9,0xff,0x4d,0xfe, +0x1f,0xfc,0x22,0xfb,0xb8,0xfb,0xd4,0xfb,0x99,0xfa,0x1d,0xf9, +0x80,0xf8,0x93,0xf9,0x3d,0xfb,0x68,0xfb,0x4,0xfb,0x57,0xfc, +0x1,0xff,0x8,0x1,0xa7,0x1,0x1f,0x2,0xc9,0x3,0x31,0x6, +0x28,0x8,0x14,0x9,0x46,0x9,0x28,0xa,0x82,0xc,0x10,0xf, +0x4c,0x10,0x94,0x10,0x92,0x11,0x8a,0x13,0xc3,0x14,0x7b,0x14, +0xc6,0x13,0x3e,0x13,0xdc,0x12,0x79,0x12,0x15,0x11,0x8b,0xe, +0xb4,0xc,0x5a,0xc,0x32,0xc,0x5d,0xb,0xfa,0x9,0xba,0x8, +0x67,0x8,0x71,0x8,0xd0,0x7,0xf0,0x6,0x9b,0x6,0x95,0x6, +0x18,0x6,0xd8,0x4,0xc4,0x3,0x23,0x4,0xb7,0x5,0xe6,0x6, +0x8,0x7,0x3b,0x7,0x6a,0x8,0x2c,0xa,0xd4,0xb,0xf8,0xc, +0xa7,0xd,0x78,0xe,0x21,0xf,0xe0,0xe,0x37,0xe,0x35,0xe, +0xed,0xe,0x60,0xf,0x8a,0xe,0xf4,0xc,0xf6,0xb,0xb0,0xb, +0x7b,0xb,0xe5,0xa,0x8d,0x9,0xdc,0x7,0x9d,0x6,0x69,0x5, +0xd0,0x3,0xdc,0x2,0xb,0x3,0x5f,0x3,0x1c,0x3,0x66,0x2, +0xe,0x2,0x1f,0x3,0x21,0x5,0x81,0x6,0xce,0x6,0xdb,0x6, +0x65,0x7,0x41,0x8,0x93,0x8,0x2c,0x8,0xd3,0x7,0xf8,0x7, +0xf9,0x7,0x6,0x7,0x7f,0x5,0x6e,0x4,0x26,0x4,0x34,0x4, +0x79,0x3,0x5b,0x1,0x6c,0xff,0xf9,0xfe,0xf9,0xfe,0xab,0xfe, +0x73,0xfe,0x70,0xfe,0xe7,0xfe,0xdc,0xff,0xb5,0x0,0x92,0x1, +0xf2,0x2,0x8c,0x4,0xb8,0x5,0x18,0x6,0x33,0x6,0xc5,0x6, +0x5b,0x7,0x5d,0x7,0x17,0x7,0xb0,0x6,0x4,0x6,0x19,0x5, +0xf8,0x3,0xc0,0x2,0x9b,0x1,0x9a,0x0,0x72,0xff,0x75,0xfd, +0xd8,0xfa,0xa4,0xf8,0xe0,0xf6,0xfb,0xf4,0x40,0xf3,0x32,0xf2, +0x9e,0xf1,0xe7,0xf0,0x3c,0xf0,0x89,0xf0,0xd3,0xf1,0x7e,0xf3, +0x4d,0xf5,0xc3,0xf6,0xcd,0xf7,0x15,0xf9,0x68,0xfa,0x3c,0xfb, +0xa7,0xfb,0xd5,0xfb,0x1d,0xfc,0x50,0xfc,0x95,0xfb,0x7a,0xfa, +0x2e,0xfa,0x4d,0xfa,0x1d,0xfa,0x4c,0xf9,0x60,0xf7,0xe8,0xf4, +0x32,0xf3,0x38,0xf2,0x0,0xf1,0x43,0xef,0x4c,0xed,0x6b,0xeb, +0x1e,0xea,0xb2,0xe9,0xd0,0xe9,0x39,0xea,0xc,0xeb,0x27,0xec, +0x14,0xed,0xad,0xed,0x82,0xee,0xf8,0xef,0x66,0xf1,0x31,0xf2, +0x68,0xf2,0x1f,0xf2,0xd8,0xf1,0x3d,0xf2,0xd,0xf3,0xa2,0xf3, +0xc1,0xf3,0xac,0xf3,0xfd,0xf3,0xb0,0xf4,0x35,0xf5,0x78,0xf5, +0x95,0xf5,0xb2,0xf5,0xf5,0xf5,0xdf,0xf5,0x32,0xf5,0xc9,0xf4, +0x48,0xf5,0x51,0xf6,0x2a,0xf7,0x64,0xf7,0x4b,0xf7,0xb7,0xf7, +0xe3,0xf8,0xf,0xfa,0x84,0xfa,0x41,0xfa,0xdb,0xf9,0xce,0xf9, +0x8a,0xf9,0x4b,0xf8,0xb2,0xf6,0xb4,0xf5,0x2d,0xf5,0x81,0xf4, +0x41,0xf3,0x91,0xf1,0x41,0xf0,0xd3,0xef,0xe3,0xef,0x94,0xef, +0xa1,0xee,0xeb,0xed,0x12,0xee,0x8c,0xee,0xd5,0xee,0x14,0xef, +0x9a,0xef,0x8f,0xf0,0xcc,0xf1,0xd4,0xf2,0x84,0xf3,0x89,0xf4, +0x26,0xf6,0x87,0xf7,0x5,0xf8,0xb0,0xf7,0x2f,0xf7,0x80,0xf7, +0x5f,0xf8,0x66,0xf8,0x3a,0xf7,0x9e,0xf5,0x47,0xf4,0x88,0xf3, +0xd,0xf3,0x44,0xf2,0xc,0xf1,0xd0,0xef,0xd3,0xee,0xb6,0xed, +0x77,0xec,0xd8,0xeb,0x23,0xec,0xd0,0xec,0x10,0xed,0xca,0xec, +0xe,0xed,0x73,0xee,0x65,0xf0,0x49,0xf2,0x97,0xf3,0x4c,0xf4, +0x56,0xf5,0xe4,0xf6,0x1e,0xf8,0xbe,0xf8,0x61,0xf9,0x7e,0xfa, +0xaa,0xfb,0x30,0xfc,0x2a,0xfc,0x69,0xfc,0x80,0xfd,0x0,0xff, +0xd9,0xff,0xb8,0xff,0x31,0xff,0xec,0xfe,0x50,0xff,0xeb,0xff, +0xa6,0xff,0xbb,0xfe,0x73,0xfe,0xe1,0xfe,0x49,0xff,0x9a,0xff, +0xe9,0xff,0x8c,0x0,0xde,0x1,0xff,0x2,0x62,0x3,0xcc,0x3, +0x68,0x4,0xe9,0x4,0x52,0x5,0x4e,0x5,0xf7,0x4,0x17,0x5, +0xb5,0x5,0x12,0x6,0xfd,0x5,0x2b,0x6,0xfd,0x6,0xe8,0x7, +0x61,0x8,0x49,0x8,0x22,0x8,0x9f,0x8,0x3f,0x9,0x13,0x9, +0x53,0x8,0xb3,0x7,0xd7,0x7,0x98,0x8,0xda,0x8,0xa5,0x8, +0xf8,0x8,0xbb,0x9,0x59,0xa,0x85,0xa,0x0,0xa,0x23,0x9, +0x79,0x8,0xa1,0x7,0x7,0x6,0xf5,0x3,0xfa,0x1,0x40,0x0, +0xca,0xfe,0x79,0xfd,0x7c,0xfc,0x3b,0xfc,0x3d,0xfc,0xd6,0xfb, +0x54,0xfb,0x15,0xfb,0xf5,0xfa,0xdc,0xfa,0xe1,0xfa,0xe9,0xfa, +0xa9,0xfa,0x6c,0xfa,0xb9,0xfa,0x70,0xfb,0xaf,0xfc,0xaa,0xfe, +0xb7,0x0,0x53,0x2,0x8d,0x3,0xc5,0x4,0x53,0x6,0xb4,0x7, +0x77,0x8,0xa1,0x8,0xf1,0x7,0xfd,0x6,0x75,0x6,0xe2,0x5, +0x41,0x5,0xb8,0x4,0xe1,0x3,0x1e,0x3,0xaa,0x2,0x32,0x2, +0xce,0x1,0x2f,0x1,0x3e,0x0,0xa4,0xff,0xfe,0xfe,0xa4,0xfd, +0x3f,0xfc,0x74,0xfb,0x5a,0xfb,0xf4,0xfb,0x6e,0xfc,0xdb,0xfb, +0x39,0xfb,0x1a,0xfc,0x25,0xfe,0xf9,0xff,0x8b,0x0,0xdc,0xff, +0xd6,0xff,0xb0,0x1,0x87,0x3,0xcb,0x3,0x76,0x3,0xc0,0x3, +0x14,0x5,0xd3,0x6,0x3d,0x7,0x55,0x6,0xa2,0x6,0xc6,0x8, +0x7b,0xa,0x8f,0xa,0xdc,0x9,0xbd,0x9,0x4,0xb,0x72,0xc, +0x26,0xc,0xe7,0xa,0x7f,0xa,0xe4,0xa,0x1e,0xb,0x5a,0xa, +0x98,0x8,0x47,0x7,0x30,0x7,0xde,0x6,0x2a,0x5,0x3b,0x3, +0x5f,0x2,0x40,0x2,0xd6,0x1,0xbb,0x0,0x8b,0xff,0x4,0xff, +0x9,0xff,0x13,0xff,0xbe,0xfe,0x30,0xfe,0x3b,0xfe,0x0,0xff, +0x66,0xff,0xf3,0xfe,0xbd,0xfe,0xf6,0xff,0x8,0x2,0x8e,0x3, +0x8b,0x4,0x67,0x5,0x64,0x6,0x32,0x8,0xe,0xa,0x8e,0xa, +0x63,0xa,0xbc,0xa,0x7a,0xb,0xbf,0xb,0xba,0xa,0x4d,0x9, +0xa,0x9,0x83,0x9,0x76,0x9,0x92,0x8,0x3d,0x7,0x3a,0x6, +0xea,0x5,0xd6,0x5,0x2f,0x5,0xba,0x3,0x56,0x2,0x9f,0x1, +0x13,0x1,0x82,0x0,0x43,0x0,0x45,0x0,0x56,0x0,0x9f,0x0, +0x7a,0x1,0xf6,0x2,0x8d,0x4,0xd0,0x5,0xde,0x6,0xf6,0x7, +0x1a,0x9,0x1,0xa,0x7c,0xa,0xd3,0xa,0x28,0xb,0x27,0xb, +0xba,0xa,0x7,0xa,0x28,0x9,0x94,0x8,0x55,0x8,0x90,0x7, +0x40,0x6,0x10,0x5,0xe5,0x3,0x95,0x2,0x49,0x1,0x1c,0x0, +0x76,0xff,0xa,0xff,0xde,0xfd,0x3f,0xfc,0x52,0xfb,0x68,0xfb, +0xff,0xfb,0x4b,0xfc,0x10,0xfc,0x9,0xfc,0xe0,0xfc,0x50,0xfe, +0x77,0xff,0xda,0xff,0xed,0xff,0x5d,0x0,0x10,0x1,0x2d,0x1, +0x7c,0x0,0xe3,0xff,0xc1,0xff,0x76,0xff,0xd0,0xfe,0xf3,0xfd, +0x12,0xfd,0xdb,0xfc,0x32,0xfd,0xe3,0xfc,0xe4,0xfb,0x45,0xfb, +0x2d,0xfb,0x28,0xfb,0xe5,0xfa,0x3d,0xfa,0xb3,0xf9,0xca,0xf9, +0xff,0xf9,0xd3,0xf9,0xaa,0xf9,0xf0,0xf9,0x94,0xfa,0x5c,0xfb, +0xf7,0xfb,0x1f,0xfc,0x44,0xfc,0xf3,0xfc,0x8d,0xfd,0x5e,0xfd, +0xdb,0xfc,0x8e,0xfc,0x80,0xfc,0x7a,0xfc,0x1d,0xfc,0xbe,0xfb, +0xec,0xfb,0x53,0xfc,0x9d,0xfc,0xe8,0xfc,0x4f,0xfd,0x1d,0xfe, +0x35,0xff,0xcf,0xff,0xb5,0xff,0x9a,0xff,0x16,0x0,0xf2,0x0, +0x73,0x1,0x4e,0x1,0xef,0x0,0xdc,0x0,0x2d,0x1,0x77,0x1, +0x33,0x1,0x68,0x0,0xc4,0xff,0x93,0xff,0x1f,0xff,0xea,0xfd, +0x65,0xfc,0xe6,0xfa,0x73,0xf9,0x18,0xf8,0xb7,0xf6,0x51,0xf5, +0xf,0xf4,0xe1,0xf2,0xfc,0xf1,0xc1,0xf1,0xf4,0xf1,0x29,0xf2, +0x4f,0xf2,0x77,0xf2,0xdd,0xf2,0xbf,0xf3,0xf0,0xf4,0xe6,0xf5, +0x56,0xf6,0xc9,0xf6,0xe5,0xf7,0x47,0xf9,0x4e,0xfa,0xf4,0xfa, +0x73,0xfb,0x49,0xfc,0x77,0xfd,0x0,0xfe,0xb2,0xfd,0x3d,0xfd, +0xb1,0xfc,0x29,0xfc,0xb2,0xfb,0x94,0xfa,0xe3,0xf8,0x7c,0xf7, +0x5c,0xf6,0x35,0xf5,0x34,0xf4,0x6f,0xf3,0xd2,0xf2,0x63,0xf2, +0x35,0xf2,0x4e,0xf2,0xb0,0xf2,0x52,0xf3,0x1a,0xf4,0xff,0xf4, +0x11,0xf6,0x4f,0xf7,0xa0,0xf8,0xc5,0xf9,0xbd,0xfa,0xf3,0xfb, +0x7b,0xfd,0xde,0xfe,0xdc,0xff,0x9a,0x0,0x4d,0x1,0xf5,0x1, +0x75,0x2,0xba,0x2,0xb4,0x2,0x78,0x2,0x37,0x2,0xe2,0x1, +0x63,0x1,0xe1,0x0,0x9b,0x0,0x9f,0x0,0x9d,0x0,0x63,0x0, +0x51,0x0,0xb2,0x0,0x21,0x1,0x42,0x1,0x44,0x1,0x4a,0x1, +0x45,0x1,0x55,0x1,0x73,0x1,0x6c,0x1,0x58,0x1,0x58,0x1, +0x73,0x1,0xa6,0x1,0xdb,0x1,0x47,0x2,0x3,0x3,0x92,0x3, +0xc7,0x3,0xed,0x3,0x40,0x4,0xdf,0x4,0x70,0x5,0x5c,0x5, +0xe2,0x4,0xcd,0x4,0x4d,0x5,0xca,0x5,0xf0,0x5,0x3b,0x6, +0x8,0x7,0x27,0x8,0x2f,0x9,0xb5,0x9,0x6,0xa,0xac,0xa, +0x5e,0xb,0x9e,0xb,0x31,0xb,0x2,0xa,0xcb,0x8,0x26,0x8, +0x7b,0x7,0x5b,0x6,0x27,0x5,0x17,0x4,0x3d,0x3,0xba,0x2, +0x79,0x2,0x72,0x2,0x94,0x2,0x80,0x2,0x3a,0x2,0x3b,0x2, +0x69,0x2,0x49,0x2,0xec,0x1,0xb8,0x1,0xd9,0x1,0x1d,0x2, +0x5f,0x2,0xcb,0x2,0x7f,0x3,0x95,0x4,0xb,0x6,0x1e,0x7, +0x54,0x7,0x7a,0x7,0x4,0x8,0x60,0x8,0x2e,0x8,0x72,0x7, +0x54,0x6,0x32,0x5,0x41,0x4,0x78,0x3,0xd7,0x2,0x36,0x2, +0x80,0x1,0xde,0x0,0x36,0x0,0x51,0xff,0x5b,0xfe,0x82,0xfd, +0x9c,0xfc,0x78,0xfb,0x26,0xfa,0xff,0xf8,0x2a,0xf8,0x74,0xf7, +0x19,0xf7,0x90,0xf7,0xa1,0xf8,0xd8,0xf9,0x39,0xfb,0xe8,0xfc, +0xd7,0xfe,0x10,0x1,0x5e,0x3,0xfe,0x4,0xe2,0x5,0x8,0x7, +0xd0,0x8,0xa9,0xa,0xd5,0xb,0x16,0xc,0x70,0xc,0xe3,0xd, +0xbc,0xf,0xae,0x10,0x64,0x10,0xaa,0xf,0x6e,0xf,0x58,0xf, +0x65,0xe,0x3c,0xc,0x78,0x9,0x4d,0x7,0xbe,0x5,0x76,0x3, +0x7a,0x0,0xf8,0xfd,0x8f,0xfc,0x3f,0xfc,0xf1,0xfb,0xb2,0xfa, +0x6f,0xf9,0x2a,0xf9,0xcd,0xf9,0xd9,0xfa,0x45,0xfb,0xe3,0xfa, +0x11,0xfb,0x59,0xfc,0xf0,0xfd,0x40,0xff,0x33,0x0,0x58,0x1, +0x55,0x3,0xaa,0x5,0x3e,0x7,0xd3,0x7,0xff,0x7,0x59,0x8, +0x5,0x9,0x65,0x9,0xa1,0x8,0x36,0x7,0x83,0x6,0x5b,0x6, +0xbe,0x5,0xfa,0x4,0x84,0x4,0x36,0x4,0x50,0x4,0xc2,0x4, +0xba,0x4,0xfd,0x3,0x3f,0x3,0x1f,0x3,0x44,0x3,0xf9,0x2, +0x52,0x2,0xde,0x1,0xf4,0x1,0x92,0x2,0x45,0x3,0xd3,0x3, +0x55,0x4,0xb0,0x4,0x44,0x5,0x6b,0x6,0x89,0x7,0x3c,0x8, +0xde,0x8,0x6a,0x9,0x94,0x9,0xbe,0x9,0xae,0xa,0x20,0xc, +0x1c,0xd,0x6f,0xd,0x3f,0xd,0xe4,0xc,0x18,0xd,0x85,0xd, +0x46,0xd,0x88,0xc,0xc7,0xb,0x1,0xb,0x4,0xa,0xe7,0x8, +0x6b,0x8,0x9e,0x8,0x6f,0x8,0x84,0x7,0x55,0x6,0x47,0x5, +0xaf,0x4,0x52,0x4,0x80,0x3,0xfe,0x1,0x20,0x0,0x88,0xfe, +0x95,0xfd,0xf7,0xfc,0x8b,0xfc,0xcb,0xfc,0x70,0xfd,0x71,0xfd, +0x15,0xfd,0x85,0xfd,0x9b,0xfe,0x66,0xff,0x74,0xff,0x98,0xfe, +0x43,0xfd,0x6c,0xfc,0xc,0xfc,0x59,0xfb,0x5f,0xfa,0xb5,0xf9, +0x4f,0xf9,0xf3,0xf8,0xb3,0xf8,0xa1,0xf8,0xf2,0xf8,0xbc,0xf9, +0x64,0xfa,0x5f,0xfa,0xeb,0xf9,0x9f,0xf9,0xbf,0xf9,0xf8,0xf9, +0xe9,0xf9,0xce,0xf9,0x20,0xfa,0xea,0xfa,0xd8,0xfb,0xcc,0xfc, +0xe5,0xfd,0x18,0xff,0x4d,0x0,0x27,0x1,0x3e,0x1,0xe9,0x0, +0x7d,0x0,0xc5,0xff,0xb1,0xfe,0x22,0xfd,0x4d,0xfb,0xee,0xf9, +0x0,0xf9,0x1d,0xf8,0x72,0xf7,0x33,0xf7,0x7d,0xf7,0x2f,0xf8, +0xe3,0xf8,0x63,0xf9,0xb6,0xf9,0x30,0xfa,0xfd,0xfa,0xab,0xfb, +0xf,0xfc,0x38,0xfc,0x38,0xfc,0xba,0xfc,0xe8,0xfd,0x20,0xff, +0x3d,0x0,0x62,0x1,0x8d,0x2,0xaa,0x3,0x7a,0x4,0xc9,0x4, +0x63,0x4,0x54,0x3,0x9,0x2,0x54,0x0,0xf5,0xfd,0x7d,0xfb, +0x52,0xf9,0x75,0xf7,0xf2,0xf5,0xc3,0xf4,0xee,0xf3,0x8c,0xf3, +0xa5,0xf3,0x21,0xf4,0xae,0xf4,0x11,0xf5,0x5d,0xf5,0xc1,0xf5, +0x33,0xf6,0x7f,0xf6,0xc8,0xf6,0x39,0xf7,0xa7,0xf7,0x26,0xf8, +0x0,0xf9,0x31,0xfa,0x4b,0xfb,0xf5,0xfb,0x94,0xfc,0x48,0xfd, +0x50,0xfd,0x83,0xfc,0x1a,0xfb,0x17,0xf9,0x19,0xf7,0x6c,0xf5, +0x7a,0xf3,0x2f,0xf1,0x2b,0xef,0xe0,0xed,0x2d,0xed,0x97,0xec, +0xe,0xec,0xfb,0xeb,0x93,0xec,0x6f,0xed,0xf8,0xed,0x26,0xee, +0x42,0xee,0xbd,0xee,0xef,0xef,0x30,0xf1,0x11,0xf2,0x4a,0xf3, +0xeb,0xf4,0x5e,0xf6,0xa2,0xf7,0xe8,0xf8,0x5d,0xfa,0xb4,0xfb, +0xe,0xfc,0x81,0xfb,0xfb,0xfa,0xc2,0xfa,0x5b,0xfa,0x43,0xf9, +0x89,0xf7,0xee,0xf5,0x30,0xf5,0x9,0xf5,0x9c,0xf4,0xe3,0xf3, +0x78,0xf3,0xaf,0xf3,0x7f,0xf4,0x35,0xf5,0x67,0xf5,0xdd,0xf5, +0x26,0xf7,0xcd,0xf8,0x33,0xfa,0xf,0xfb,0xcc,0xfb,0xf0,0xfc, +0x61,0xfe,0xb6,0xff,0x76,0x0,0x8b,0x0,0x59,0x0,0x2,0x0, +0x84,0xff,0xec,0xfe,0x16,0xfe,0x1a,0xfd,0x46,0xfc,0x95,0xfb, +0xb2,0xfa,0xa2,0xf9,0x1,0xf9,0xe6,0xf8,0xc0,0xf8,0x82,0xf8, +0x52,0xf8,0x33,0xf8,0x76,0xf8,0x19,0xf9,0xaf,0xf9,0x2e,0xfa, +0x4,0xfb,0x66,0xfc,0xf1,0xfd,0x56,0xff,0x87,0x0,0x3e,0x1, +0xa9,0x1,0x23,0x2,0x4f,0x2,0xc9,0x1,0x9d,0x0,0x2a,0xff, +0x21,0xfe,0x8c,0xfd,0xb2,0xfc,0x60,0xfb,0x3b,0xfa,0xfa,0xf9, +0x96,0xfa,0x31,0xfb,0xea,0xfa,0x17,0xfa,0x22,0xfa,0x4e,0xfb, +0x1d,0xfc,0xc5,0xfb,0x1a,0xfb,0x43,0xfb,0x7d,0xfc,0xb1,0xfd, +0x10,0xfe,0x73,0xfe,0xe4,0xff,0xf9,0x1,0x7e,0x3,0xfa,0x3, +0x13,0x4,0x9c,0x4,0x73,0x5,0x57,0x5,0xd9,0x3,0x6e,0x2, +0xff,0x1,0xe8,0x1,0x7a,0x1,0x6a,0x0,0x89,0xff,0xe6,0xff, +0x97,0x0,0x6e,0x0,0xf2,0xff,0xe1,0xff,0x4b,0x0,0xad,0x0, +0x69,0x0,0xc2,0xff,0x6e,0xff,0xbf,0xff,0x6e,0x0,0xcd,0x0, +0xe1,0x0,0x58,0x1,0x62,0x2,0x92,0x3,0x4e,0x4,0x87,0x4, +0xde,0x4,0x81,0x5,0xf0,0x5,0xdf,0x5,0x5d,0x5,0xc4,0x4, +0x96,0x4,0xb0,0x4,0x58,0x4,0x9b,0x3,0x46,0x3,0x63,0x3, +0x88,0x3,0x9d,0x3,0x61,0x3,0x1f,0x3,0xb9,0x3,0xee,0x4, +0xc4,0x5,0x20,0x6,0x64,0x6,0xe3,0x6,0xaf,0x7,0x47,0x8, +0x53,0x8,0x5a,0x8,0x9d,0x8,0x78,0x8,0xd2,0x7,0x49,0x7, +0xec,0x6,0xa1,0x6,0x6c,0x6,0xf1,0x5,0x4b,0x5,0x12,0x5, +0x2,0x5,0x6d,0x4,0x7d,0x3,0xf4,0x2,0xfb,0x2,0xe4,0x2, +0x39,0x2,0x83,0x1,0x9c,0x1,0x6a,0x2,0x14,0x3,0x78,0x3, +0x36,0x4,0xba,0x5,0xe8,0x7,0xe1,0x9,0xf0,0xa,0xa9,0xb, +0xed,0xc,0xb4,0xe,0x8,0x10,0x4c,0x10,0x7a,0x10,0x68,0x11, +0x50,0x12,0x7b,0x12,0x31,0x12,0x47,0x12,0xee,0x12,0x2,0x13, +0xb,0x12,0xc1,0x10,0x4d,0xf,0xca,0xd,0x4d,0xc,0x2f,0xa, +0x7f,0x7,0x7,0x5,0x4,0x3,0x48,0x1,0xd5,0xff,0xf,0xff, +0xe1,0xfe,0x94,0xfe,0x61,0xfe,0xf9,0xfe,0x49,0x0,0xf0,0x1, +0x49,0x3,0x24,0x4,0x42,0x5,0xce,0x6,0x55,0x8,0x8f,0x9, +0x79,0xa,0xf3,0xb,0x30,0xe,0xa5,0xf,0xf3,0xf,0x92,0x10, +0x3,0x12,0x8d,0x13,0x77,0x14,0x4a,0x14,0x75,0x13,0x3c,0x13, +0x9e,0x13,0x1,0x13,0xec,0x10,0xbc,0xe,0x5b,0xd,0x60,0xc, +0xb9,0xa,0xdb,0x7,0xee,0x4,0x51,0x3,0x83,0x2,0x4e,0x1, +0x5b,0xff,0x41,0xfd,0x3b,0xfc,0x72,0xfc,0x29,0xfc,0x90,0xfa, +0x28,0xf9,0x2a,0xf9,0xe,0xfa,0xa3,0xfa,0x54,0xfa,0xa4,0xf9, +0xc4,0xf9,0x53,0xfb,0x51,0xfd,0x28,0xfe,0x40,0xfe,0x2b,0xff, +0xeb,0x0,0x40,0x2,0x5b,0x2,0xf7,0x1,0x9f,0x2,0xef,0x3, +0x78,0x4,0x42,0x4,0x8a,0x3,0x5,0x3,0x7,0x4,0x45,0x5, +0xb2,0x4,0x51,0x3,0xcf,0x2,0x75,0x3,0x6a,0x4,0xe5,0x3, +0xbe,0x1,0x2a,0x0,0x6a,0x0,0x23,0x1,0x72,0x0,0xa8,0xfe, +0x92,0xfd,0xfe,0xfd,0x8d,0xff,0xac,0x0,0x7,0x0,0xad,0xff, +0xf8,0x1,0x82,0x5,0x27,0x8,0x63,0x9,0xf6,0x9,0xe6,0xb, +0x7a,0xf,0x4a,0x12,0x74,0x13,0x2a,0x14,0x5e,0x15,0x54,0x17, +0x15,0x19,0x59,0x19,0xd9,0x18,0xa,0x19,0xb0,0x19,0x97,0x19, +0x3b,0x18,0x20,0x16,0x0,0x14,0x2f,0x12,0xba,0x10,0x13,0xf, +0x83,0xc,0xc8,0x9,0x17,0x8,0x22,0x7,0x43,0x6,0x91,0x5, +0x27,0x5,0x1d,0x5,0xd0,0x5,0x36,0x7,0x8a,0x8,0x3a,0x9, +0xf2,0x9,0x6e,0xb,0x26,0xd,0x67,0xe,0x27,0xf,0xc0,0xf, +0xa3,0x10,0xab,0x11,0x54,0x12,0x68,0x12,0xc6,0x11,0x19,0x11, +0x3f,0x11,0x1f,0x11,0x76,0xf,0x3b,0xd,0x6b,0xb,0xc6,0x9, +0x6b,0x8,0x4b,0x7,0x28,0x5,0xc7,0x1,0xfb,0xfe,0x8d,0xfd, +0x2f,0xfc,0x57,0xfa,0xa1,0xf8,0x35,0xf7,0x39,0xf6,0xb5,0xf5, +0x23,0xf5,0xc9,0xf4,0x5f,0xf5,0x98,0xf6,0xb8,0xf7,0x5a,0xf8, +0xa7,0xf8,0x9f,0xf9,0x9a,0xfb,0x35,0xfd,0xab,0xfd,0x28,0xfe, +0x59,0xff,0x9b,0x0,0x8c,0x1,0x3,0x2,0x4a,0x2,0x6c,0x3, +0xe0,0x4,0xac,0x4,0x30,0x3,0x78,0x2,0xbe,0x2,0xb3,0x2, +0x46,0x1,0x9f,0xfe,0x55,0xfc,0x7b,0xfb,0x13,0xfb,0xc2,0xf9, +0xa8,0xf7,0xfa,0xf5,0xc1,0xf5,0x65,0xf6,0x10,0xf6,0x80,0xf4, +0x70,0xf3,0x94,0xf3,0xeb,0xf3,0x8c,0xf3,0x60,0xf2,0x4d,0xf1, +0x1e,0xf1,0x3a,0xf1,0xfc,0xf0,0xc7,0xf0,0xec,0xf0,0x7c,0xf1, +0x7f,0xf2,0x74,0xf3,0xbb,0xf3,0x74,0xf3,0x75,0xf3,0x18,0xf4, +0xba,0xf4,0xce,0xf4,0x84,0xf4,0x2f,0xf4,0xfc,0xf3,0x3a,0xf4, +0x34,0xf5,0x52,0xf6,0x78,0xf6,0xf2,0xf5,0xdd,0xf5,0xec,0xf5, +0x5f,0xf5,0x85,0xf4,0xa8,0xf3,0x92,0xf2,0x64,0xf1,0x67,0xf0, +0x6a,0xef,0x3b,0xee,0x55,0xed,0x34,0xed,0x53,0xed,0xec,0xec, +0x25,0xec,0xbb,0xeb,0xf7,0xeb,0x74,0xec,0xc0,0xec,0x91,0xec, +0xe1,0xeb,0x7e,0xeb,0x57,0xec,0xc0,0xed,0x4b,0xee,0x2a,0xee, +0x6d,0xee,0x33,0xef,0x30,0xf0,0xe4,0xf0,0xf1,0xf0,0x34,0xf1, +0x45,0xf2,0xa,0xf3,0xc2,0xf2,0xed,0xf1,0x8f,0xf1,0x7b,0xf2, +0xb7,0xf3,0x65,0xf3,0xb7,0xf1,0x52,0xf0,0xf3,0xef,0xf9,0xef, +0x57,0xef,0x12,0xee,0x51,0xed,0xad,0xed,0x47,0xee,0x4e,0xee, +0xad,0xee,0x6e,0xf0,0xc8,0xf2,0x5b,0xf4,0xa5,0xf4,0x88,0xf4, +0x8f,0xf5,0x4f,0xf7,0xfa,0xf7,0x5d,0xf7,0x9b,0xf6,0xd2,0xf6, +0x26,0xf8,0x1e,0xf9,0x15,0xf9,0x8d,0xf9,0x59,0xfb,0x39,0xfd, +0xde,0xfd,0x80,0xfd,0x49,0xfd,0xe3,0xfd,0xbd,0xfe,0x94,0xfe, +0x1e,0xfd,0x97,0xfb,0xd,0xfb,0x52,0xfb,0x90,0xfb,0x48,0xfb, +0xb,0xfb,0x5d,0xfb,0xa8,0xfb,0x91,0xfb,0x5f,0xfb,0xe9,0xfa, +0xe2,0xf9,0x6f,0xf8,0xb0,0xf6,0xc6,0xf4,0x37,0xf3,0x66,0xf2, +0xfc,0xf1,0xb1,0xf1,0xaf,0xf1,0x19,0xf2,0xf3,0xf2,0xea,0xf3, +0xb9,0xf4,0xc2,0xf5,0xda,0xf6,0x2c,0xf7,0xd7,0xf6,0x86,0xf6, +0x80,0xf6,0x4,0xf7,0xfa,0xf7,0xae,0xf8,0xec,0xf8,0x98,0xf9, +0x1c,0xfb,0x74,0xfc,0xe6,0xfc,0xdc,0xfc,0xd9,0xfc,0xeb,0xfc, +0x57,0xfc,0x51,0xfa,0x99,0xf7,0xb8,0xf5,0x17,0xf5,0xb5,0xf4, +0x4d,0xf3,0x51,0xf1,0xc5,0xf0,0x43,0xf2,0x1f,0xf4,0xee,0xf4, +0x11,0xf5,0x9f,0xf5,0x44,0xf7,0x86,0xf9,0xbc,0xfa,0xbf,0xfa, +0x93,0xfb,0xa6,0xfd,0x9f,0xff,0xff,0x0,0xb4,0x1,0x5d,0x2, +0x27,0x4,0x2e,0x6,0xe3,0x6,0xe7,0x6,0x40,0x7,0xb4,0x7, +0xd4,0x7,0x7b,0x7,0xb5,0x6,0xf,0x6,0xd7,0x5,0x49,0x5, +0x14,0x4,0xa,0x3,0x47,0x2,0x7b,0x1,0xd8,0x0,0x20,0x0, +0x7b,0xff,0xb2,0xff,0x15,0x0,0xc7,0xff,0xa0,0xff,0x6e,0x0, +0x15,0x2,0x7,0x4,0x4c,0x5,0xd0,0x5,0xc8,0x6,0x90,0x8, +0x5f,0xa,0xd9,0xb,0xe5,0xc,0x71,0xd,0x14,0xe,0xa,0xf, +0xc1,0xf,0x4a,0x10,0xf2,0x10,0x63,0x11,0x9a,0x11,0xaf,0x11, +0x50,0x11,0xda,0x10,0xf7,0x10,0x34,0x11,0xd5,0x10,0xde,0xf, +0x80,0xe,0x1a,0xd,0x8d,0xc,0x1f,0xd,0xe7,0xd,0xe6,0xd, +0x0,0xd,0x10,0xc,0xf2,0xb,0x71,0xc,0xac,0xc,0xec,0xb, +0xff,0x9,0x98,0x7,0xe3,0x5,0xc,0x5,0x21,0x4,0xd8,0x2, +0xfc,0x1,0xd6,0x1,0xfd,0x1,0x30,0x2,0x33,0x2,0x7a,0x2, +0xf1,0x3,0xc0,0x5,0x3f,0x6,0x7f,0x5,0xdc,0x4,0xd7,0x5, +0x58,0x8,0xf2,0x9,0x81,0x9,0xdc,0x8,0x9b,0x9,0x72,0xb, +0x1e,0xd,0x8f,0xd,0x47,0xd,0xa4,0xd,0x72,0xe,0xd,0xe, +0xe9,0xb,0xa7,0x9,0x0,0x9,0x5e,0x9,0x7e,0x8,0x7f,0x5, +0x68,0x2,0x99,0x1,0x92,0x2,0x3c,0x3,0xb2,0x2,0x4b,0x1, +0x8e,0x0,0xe4,0x1,0x94,0x3,0x93,0x3,0x59,0x3,0x52,0x4, +0xea,0x5,0xc9,0x7,0x2,0x9,0xf,0x9,0x1e,0xa,0x38,0xd, +0x2c,0x10,0x7b,0x11,0x9a,0x11,0xcc,0x11,0x5a,0x13,0xa7,0x15, +0xa4,0x16,0xc7,0x15,0x69,0x14,0xc7,0x13,0xa9,0x13,0xdc,0x12, +0xbe,0x10,0x26,0xe,0xa4,0xc,0x31,0xc,0x9d,0xa,0x16,0x7, +0xa1,0x3,0xd2,0x1,0x75,0x1,0x70,0x1,0xfc,0xff,0x11,0xfd, +0x47,0xfb,0xc3,0xfb,0xf2,0xfc,0x45,0xfd,0x93,0xfc,0x42,0xfc, +0x74,0xfd,0x56,0xff,0xab,0x0,0xea,0x0,0xd2,0x0,0x59,0x2, +0x3f,0x5,0x28,0x7,0x88,0x7,0x74,0x7,0x23,0x8,0xe8,0x9, +0x3e,0xb,0x73,0xb,0x69,0xb,0x4a,0xb,0x92,0xb,0x4d,0xc, +0xc1,0xb,0x2a,0xa,0xaf,0x9,0x5d,0xa,0xd7,0xa,0x55,0xa, +0xf7,0x8,0xc3,0x7,0x6d,0x7,0xa8,0x7,0x8e,0x7,0x59,0x6, +0xf5,0x4,0xa6,0x4,0xa8,0x4,0xfa,0x3,0xed,0x2,0x23,0x2, +0x77,0x2,0xc6,0x3,0x49,0x4,0x8f,0x3,0x8,0x3,0xe2,0x3, +0x38,0x6,0x26,0x8,0xe6,0x7,0x46,0x7,0x59,0x8,0x2f,0xa, +0x93,0xb,0x30,0xc,0x40,0xc,0xd1,0xc,0x50,0xe,0x9,0x10, +0xd,0x11,0x2e,0x11,0xaf,0x11,0xf6,0x12,0x80,0x13,0xe9,0x12, +0x5b,0x12,0x8b,0x12,0xe1,0x12,0x17,0x12,0x80,0x10,0x2f,0xf, +0xe0,0xd,0xf3,0xc,0xc5,0xc,0xbd,0xb,0xad,0x9,0x64,0x8, +0xda,0x7,0xef,0x6,0xa3,0x5,0x57,0x4,0x46,0x3,0x97,0x2, +0xf4,0x1,0xdc,0x0,0x7a,0xff,0x9d,0xfe,0xe5,0xfe,0xdc,0xff, +0x28,0x0,0xab,0xff,0x2b,0x0,0x3c,0x2,0x23,0x4,0xa2,0x4, +0x59,0x4,0x52,0x4,0xff,0x4,0x5d,0x6,0x5e,0x7,0x96,0x6, +0x27,0x5,0x72,0x5,0xc6,0x6,0x2,0x7,0x40,0x6,0xa4,0x5, +0x7b,0x5,0x5b,0x5,0xa0,0x4,0xe8,0x2,0x92,0x0,0xdd,0xfe, +0x5e,0xfe,0xd2,0xfd,0xe4,0xfb,0x7,0xf9,0x2d,0xf7,0x58,0xf7, +0xe9,0xf7,0x24,0xf7,0x7b,0xf5,0xf4,0xf3,0x6c,0xf3,0x32,0xf4, +0x82,0xf4,0xdc,0xf2,0xf0,0xf0,0xcc,0xf0,0xc1,0xf1,0x4d,0xf2, +0x6d,0xf2,0xe7,0xf2,0x45,0xf4,0x44,0xf6,0x98,0xf7,0xda,0xf7, +0x64,0xf8,0xf5,0xf9,0xaa,0xfb,0x46,0xfc,0x7a,0xfb,0x90,0xfa, +0xb0,0xfa,0x18,0xfb,0xb1,0xfa,0xc4,0xf9,0x20,0xf9,0xec,0xf8, +0xcd,0xf8,0x7c,0xf8,0x3,0xf8,0xc3,0xf7,0xc1,0xf7,0x3c,0xf7, +0xf4,0xf5,0xa0,0xf4,0xc6,0xf3,0x4a,0xf3,0xc2,0xf2,0xf7,0xf1, +0x28,0xf1,0x84,0xf0,0x23,0xf0,0x34,0xf0,0xb8,0xf0,0x82,0xf1, +0x29,0xf2,0x59,0xf2,0x5f,0xf2,0xad,0xf2,0x75,0xf3,0x79,0xf4, +0xb,0xf5,0x38,0xf5,0x94,0xf5,0x3b,0xf6,0x25,0xf7,0x6,0xf8, +0x91,0xf8,0x2c,0xf9,0xe4,0xf9,0x70,0xfa,0xfd,0xfa,0x7c,0xfb, +0xcd,0xfb,0x2b,0xfc,0x60,0xfc,0x1b,0xfc,0x73,0xfb,0xc9,0xfa, +0x76,0xfa,0x39,0xfa,0x69,0xf9,0xc8,0xf7,0xdb,0xf5,0x9f,0xf4, +0x1c,0xf4,0x2c,0xf3,0x6c,0xf1,0x7b,0xef,0x3,0xee,0x58,0xed, +0xc4,0xec,0x68,0xeb,0xe5,0xe9,0x28,0xe9,0x26,0xe9,0x86,0xe9, +0xc0,0xe9,0x4,0xea,0xad,0xeb,0xc0,0xee,0x9c,0xf1,0xbd,0xf3, +0xc3,0xf5,0x2d,0xf8,0x43,0xfb,0x87,0xfe,0x1e,0x1,0x10,0x3, +0x94,0x4,0x62,0x5,0x93,0x5,0xae,0x5,0xce,0x5,0xa4,0x5, +0xe0,0x4,0x21,0x3,0x9e,0x0,0x94,0xfe,0x34,0xfd,0x37,0xfb, +0x5a,0xf8,0x58,0xf5,0x92,0xf2,0x75,0xf0,0xb7,0xee,0x51,0xec, +0xa3,0xe9,0xe1,0xe7,0x3f,0xe7,0x49,0xe7,0x84,0xe7,0xc8,0xe7, +0x5a,0xe8,0x78,0xe9,0x43,0xeb,0x7c,0xed,0x6c,0xef,0x1b,0xf1, +0x48,0xf3,0xfa,0xf5,0x9d,0xf8,0xcf,0xfa,0x79,0xfc,0xee,0xfd, +0xb3,0xff,0xc9,0x1,0xa7,0x3,0xb8,0x4,0x0,0x5,0x57,0x5, +0x27,0x6,0xb7,0x6,0x81,0x6,0xd8,0x5,0x1f,0x5,0x61,0x4, +0x4d,0x3,0x87,0x1,0x74,0xff,0xd3,0xfd,0x83,0xfc,0xdb,0xfa, +0xce,0xf8,0xd7,0xf6,0x59,0xf5,0x77,0xf4,0xba,0xf3,0x70,0xf2, +0x4,0xf1,0x9b,0xf0,0x4,0xf1,0x0,0xf1,0x52,0xf0,0xe5,0xef, +0x85,0xf0,0x2b,0xf2,0xc7,0xf3,0x8e,0xf4,0x5c,0xf5,0x20,0xf7, +0x8c,0xf9,0x22,0xfc,0x3b,0xfe,0x98,0xff,0x5d,0x1,0xfa,0x3, +0x7,0x6,0xb0,0x6,0xdd,0x6,0xe1,0x7,0xa0,0x9,0x9a,0xa, +0x38,0xa,0x53,0x9,0xd3,0x8,0xee,0x8,0xc6,0x8,0x5d,0x7, +0x8,0x5,0xf8,0x2,0xfa,0x1,0xff,0x0,0x57,0xfe,0x6,0xfb, +0x22,0xf9,0x6e,0xf8,0xd4,0xf7,0xc1,0xf6,0x41,0xf5,0xe8,0xf4, +0x82,0xf6,0x32,0xf8,0xb8,0xf8,0x7,0xf9,0x16,0xfa,0x1c,0xfc, +0x6b,0xfe,0x9b,0xff,0xc,0x0,0xb0,0x1,0x5b,0x4,0x3b,0x6, +0xe2,0x6,0x2d,0x7,0x41,0x8,0x7a,0xa,0x35,0xc,0xef,0xb, +0xbe,0xa,0x88,0xa,0x39,0xb,0x41,0xb,0xfb,0x9,0x34,0x8, +0xed,0x6,0x91,0x6,0x5e,0x6,0x40,0x5,0xc0,0x3,0x19,0x3, +0x6c,0x3,0xfe,0x3,0xd0,0x3,0xbc,0x2,0xda,0x1,0xaf,0x1, +0xd4,0x1,0x7,0x2,0xe0,0x1,0x46,0x1,0xc,0x1,0x8d,0x1, +0x2f,0x2,0x6e,0x2,0x4a,0x2,0x5e,0x2,0x59,0x3,0xd4,0x4, +0xbd,0x5,0x9a,0x5,0x1b,0x5,0xa4,0x5,0x31,0x7,0x27,0x8, +0x29,0x8,0x19,0x8,0x86,0x8,0xed,0x9,0x9d,0xb,0x22,0xc, +0x28,0xc,0x30,0xd,0xfc,0xe,0x67,0x10,0xb4,0x10,0x42,0x10, +0x26,0x10,0xc9,0x10,0x76,0x11,0xc0,0x10,0x7f,0xe,0x65,0xc, +0x38,0xb,0x7e,0xa,0x8b,0x9,0x3a,0x7,0x21,0x4,0x43,0x2, +0x59,0x1,0x3b,0x0,0x11,0xff,0xdf,0xfd,0xf0,0xfc,0x14,0xfd, +0xa9,0xfd,0x8e,0xfd,0xa5,0xfd,0x62,0xff,0xf,0x2,0x13,0x4, +0x39,0x5,0x35,0x6,0x33,0x8,0xbd,0xb,0xea,0xe,0xfb,0xf, +0x59,0x10,0xe5,0x11,0x44,0x14,0xef,0x15,0xb3,0x15,0x41,0x14, +0x1,0x14,0x47,0x15,0x69,0x15,0x15,0x13,0xa6,0xf,0x1,0xd, +0x66,0xc,0x30,0xc,0x3,0x9,0x3,0x4,0x6e,0x1,0xa2,0x1, +0xe6,0x1,0xad,0x0,0x3f,0xfe,0x84,0xfc,0x79,0xfd,0xfb,0xff, +0xa5,0x0,0x1e,0xff,0x8a,0xfe,0x31,0x0,0x91,0x2,0x0,0x4, +0xbf,0x3,0x76,0x3,0x37,0x5,0xaa,0x7,0xcb,0x8,0x14,0x9, +0xa3,0x9,0x2b,0xb,0x34,0xd,0x9,0xe,0x51,0xd,0xb9,0xc, +0x62,0xd,0x5f,0xe,0x25,0xe,0xad,0xc,0x15,0xb,0x67,0xa, +0xe5,0xa,0x40,0xb,0x44,0xa,0xf7,0x8,0x9d,0x8,0xe7,0x8, +0x2,0x9,0x5d,0x8,0x19,0x7,0x6b,0x6,0xee,0x6,0x49,0x7, +0x44,0x6,0xa7,0x4,0xb0,0x3,0xd1,0x3,0xa4,0x4,0xbb,0x4, +0x8a,0x3,0x9b,0x2,0x6,0x3,0xfd,0x3,0x37,0x4,0x89,0x3, +0x20,0x3,0xc8,0x3,0xd5,0x4,0x4b,0x5,0x1d,0x5,0x2a,0x5, +0x20,0x6,0xa6,0x7,0xea,0x8,0x7d,0x9,0xd,0xa,0xa8,0xb, +0x90,0xd,0x5b,0xe,0x36,0xe,0xcd,0xd,0x7f,0xd,0x87,0xd, +0x7,0xd,0xec,0xa,0xcf,0x7,0x43,0x5,0xbe,0x3,0x7,0x2, +0x4c,0xff,0x66,0xfc,0x26,0xfa,0xb1,0xf8,0xde,0xf7,0xcc,0xf6, +0x27,0xf5,0xf6,0xf3,0xb7,0xf3,0x9c,0xf3,0x98,0xf2,0xbb,0xf0, +0xe0,0xef,0xd7,0xf0,0xb9,0xf1,0x76,0xf1,0x3d,0xf1,0xdc,0xf1, +0x55,0xf3,0x4d,0xf5,0xb4,0xf6,0x1a,0xf7,0x97,0xf7,0xfb,0xf8, +0x63,0xfa,0x98,0xfa,0xe7,0xf9,0x53,0xf9,0x1a,0xf9,0xe5,0xf8, +0x3d,0xf8,0xfb,0xf6,0xbf,0xf5,0x2a,0xf5,0x31,0xf5,0x3f,0xf5, +0xa5,0xf4,0x7c,0xf3,0xa9,0xf2,0xc7,0xf2,0x8a,0xf3,0xd8,0xf3, +0xeb,0xf2,0x62,0xf1,0x84,0xf0,0xd6,0xf0,0x50,0xf1,0x82,0xf0, +0xec,0xee,0x39,0xee,0x8e,0xee,0xe7,0xee,0xab,0xee,0x11,0xee, +0x3f,0xee,0xed,0xef,0xdf,0xf1,0x7d,0xf2,0x3b,0xf2,0xb8,0xf2, +0x77,0xf4,0x89,0xf6,0x91,0xf7,0x50,0xf7,0x6d,0xf7,0x3,0xf9, +0xe3,0xfa,0x5,0xfc,0x9e,0xfc,0xb,0xfd,0x7,0xfe,0x93,0xff, +0x3b,0x0,0xb3,0xff,0x39,0xff,0x1c,0xff,0xbf,0xfe,0xbb,0xfd, +0x18,0xfc,0x75,0xfa,0x4f,0xf9,0x6a,0xf8,0x70,0xf7,0x55,0xf6, +0x7b,0xf5,0x62,0xf5,0xb7,0xf5,0xd3,0xf5,0xed,0xf5,0x8c,0xf6, +0x80,0xf7,0x46,0xf8,0xc6,0xf8,0x38,0xf9,0xbb,0xf9,0x68,0xfa, +0x35,0xfb,0xc9,0xfb,0x3d,0xfc,0x1a,0xfd,0x29,0xfe,0xef,0xfe, +0x8c,0xff,0x9,0x0,0x6f,0x0,0x6,0x1,0x56,0x1,0xbd,0x0, +0x97,0xff,0x71,0xfe,0xc4,0xfd,0xdf,0xfd,0xee,0xfd,0x1a,0xfd, +0x1f,0xfc,0xf0,0xfb,0x79,0xfc,0x35,0xfd,0xab,0xfd,0xaf,0xfd, +0xac,0xfd,0x48,0xfe,0x2d,0xff,0x2b,0xff,0x65,0xfe,0x24,0xfe, +0x55,0xfe,0x19,0xfe,0x61,0xfd,0x50,0xfc,0x4b,0xfb,0x24,0xfb, +0x9b,0xfb,0xa1,0xfb,0x32,0xfb,0x8,0xfb,0x3a,0xfb,0xb0,0xfb, +0x70,0xfc,0xd1,0xfc,0x9b,0xfc,0xbf,0xfc,0x6f,0xfd,0x19,0xfe, +0x97,0xfe,0x97,0xfe,0x64,0xfe,0x30,0xff,0xc0,0x0,0xc2,0x1, +0x16,0x2,0xa0,0x2,0xe2,0x3,0x99,0x5,0xeb,0x6,0xe1,0x6, +0xee,0x5,0x30,0x6,0xa8,0x7,0xb0,0x7,0xc3,0x5,0x94,0x3, +0x18,0x2,0x97,0x1,0x28,0x1,0x57,0xff,0x4,0xfd,0xf0,0xfb, +0xe8,0xfb,0xbe,0xfb,0xe1,0xfa,0xf3,0xf9,0x29,0xfa,0x64,0xfb, +0xfe,0xfb,0x61,0xfb,0xf8,0xfa,0xa7,0xfb,0xef,0xfc,0x48,0xfe, +0x6,0xff,0x2f,0xff,0x2c,0x0,0x3a,0x2,0x1e,0x4,0x8c,0x5, +0xd8,0x6,0x2f,0x8,0xb2,0x9,0x13,0xb,0xdf,0xb,0x11,0xc, +0xf3,0xb,0x99,0xb,0xf7,0xa,0x61,0xa,0xac,0x9,0x54,0x8, +0xc9,0x6,0x93,0x5,0xf2,0x4,0x7,0x5,0xd6,0x4,0xf2,0x3, +0x52,0x3,0x20,0x3,0x82,0x3,0x50,0x4,0xc3,0x3,0xff,0x1, +0x54,0x1,0xea,0x1,0x54,0x2,0xbe,0x1,0x45,0x0,0x3a,0xff, +0x86,0xff,0x8a,0x0,0xe9,0x0,0xcb,0xff,0x79,0xfe,0xde,0xfe, +0x37,0x0,0xa3,0x0,0xce,0xff,0x99,0xfe,0x3b,0xfe,0xf3,0xfe, +0x5c,0xff,0x7d,0xfe,0x35,0xfd,0x8,0xfd,0x40,0xfe,0x83,0xff, +0x90,0xff,0xfd,0xfe,0x41,0xff,0x9c,0x0,0xe5,0x1,0x1c,0x2, +0x4f,0x1,0x77,0x0,0x9e,0x0,0x4c,0x1,0xed,0x0,0xae,0xff, +0x26,0xff,0x7f,0xff,0xb2,0xff,0x58,0xff,0xcd,0xfe,0xc8,0xfe, +0x64,0xff,0xc3,0xff,0x43,0xff,0x31,0xfe,0x87,0xfd,0xe8,0xfd, +0x55,0xfe,0xc7,0xfd,0x24,0xfd,0x68,0xfd,0x27,0xfe,0xa8,0xfe, +0xd0,0xfe,0x36,0xff,0x3b,0x0,0x3c,0x1,0xae,0x1,0xf3,0x1, +0x8c,0x2,0x67,0x3,0xf,0x4,0x25,0x4,0xce,0x3,0xe1,0x3, +0xec,0x4,0xe6,0x5,0xb3,0x5,0x27,0x5,0x45,0x5,0xa6,0x5, +0xdd,0x5,0xf8,0x5,0x2,0x6,0x15,0x6,0x3f,0x6,0x5f,0x6, +0x40,0x6,0xfd,0x5,0x0,0x6,0x45,0x6,0x97,0x6,0x16,0x7, +0x68,0x7,0xc,0x7,0xa1,0x6,0xfb,0x6,0xd6,0x7,0x67,0x8, +0x23,0x8,0x29,0x7,0x5b,0x6,0x62,0x6,0xb6,0x6,0x5e,0x6, +0x38,0x5,0xfe,0x3,0x57,0x3,0x3c,0x3,0x15,0x3,0x8d,0x2, +0x23,0x2,0x60,0x2,0xf0,0x2,0x7a,0x3,0x44,0x4,0x33,0x5, +0xec,0x5,0xf1,0x6,0x6a,0x8,0x5f,0x9,0x95,0x9,0xd9,0x9, +0x7e,0xa,0x68,0xb,0x19,0xc,0xba,0xb,0xa5,0xa,0x2d,0xa, +0x78,0xa,0x93,0xa,0xad,0x9,0xae,0x7,0xb0,0x5,0xc7,0x4, +0x49,0x4,0x43,0x3,0x8,0x2,0xe2,0x0,0x98,0xff,0x56,0xfe, +0x39,0xfd,0x31,0xfc,0xf0,0xfb,0x8e,0xfc,0x89,0xfc,0x86,0xfb, +0x2a,0xfb,0x2f,0xfc,0xd9,0xfd,0x9c,0xff,0x5b,0x1,0x51,0x3, +0x9a,0x5,0xdb,0x7,0x35,0xa,0xd3,0xc,0x47,0xf,0x80,0x11, +0x5b,0x13,0x2b,0x14,0x33,0x14,0x5f,0x14,0xc6,0x14,0xe2,0x14, +0x66,0x14,0x89,0x13,0x60,0x12,0xbb,0x10,0xa,0xf,0xb4,0xd, +0x59,0xc,0x97,0xa,0xfb,0x7,0x73,0x4,0x2e,0x1,0xf8,0xfe, +0x2d,0xfd,0x10,0xfb,0xa7,0xf8,0xbb,0xf6,0xef,0xf5,0xd4,0xf5, +0xfa,0xf5,0x60,0xf6,0xd5,0xf6,0x8e,0xf7,0x9c,0xf8,0x28,0xf9, +0xf7,0xf8,0xdd,0xf8,0x2a,0xf9,0x9b,0xf9,0xcf,0xf9,0x68,0xf9, +0x7,0xf9,0xab,0xf9,0x9b,0xfa,0xa6,0xfa,0x31,0xfa,0xdc,0xf9, +0x73,0xf9,0xfa,0xf8,0x5a,0xf8,0x0,0xf7,0x0,0xf5,0x26,0xf3, +0xe9,0xf1,0xee,0xf0,0xb7,0xef,0xb0,0xee,0xa9,0xee,0x4e,0xef, +0xcc,0xef,0x27,0xf0,0x96,0xf0,0x10,0xf1,0xca,0xf1,0x8a,0xf2, +0x9a,0xf2,0x1a,0xf2,0xbb,0xf1,0x90,0xf1,0x58,0xf1,0xf3,0xf0, +0x32,0xf0,0x40,0xef,0xdb,0xee,0x41,0xef,0x6a,0xef,0x7d,0xee, +0x42,0xed,0xcf,0xec,0xf5,0xec,0x13,0xed,0x20,0xed,0x1e,0xed, +0xfa,0xec,0x7a,0xed,0x3f,0xef,0x3b,0xf1,0x92,0xf2,0x17,0xf4, +0x4a,0xf6,0x9c,0xf8,0x86,0xfa,0xdc,0xfb,0x37,0xfd,0x10,0xff, +0xb6,0x0,0xb6,0x1,0x35,0x2,0x40,0x2,0x83,0x2,0x6e,0x3, +0x9,0x4,0x8b,0x3,0x66,0x2,0x1f,0x1,0xad,0xff,0x7,0xfe, +0x51,0xfc,0x99,0xfa,0x42,0xf9,0x6d,0xf8,0x43,0xf7,0xcd,0xf5, +0x46,0xf5,0xe6,0xf5,0xef,0xf6,0xdc,0xf7,0x82,0xf8,0x7,0xf9, +0x7a,0xf9,0xe0,0xf9,0x54,0xfa,0xa0,0xfa,0xd6,0xfa,0x13,0xfb, +0x9,0xfb,0xf7,0xfa,0x25,0xfb,0x6e,0xfb,0x3,0xfc,0x9d,0xfc, +0xb6,0xfc,0x7c,0xfc,0xc7,0xfb,0x85,0xfa,0x34,0xf9,0xa9,0xf7, +0xb7,0xf5,0xab,0xf3,0x93,0xf1,0xf1,0xef,0x5b,0xef,0x51,0xef, +0x54,0xef,0xb7,0xef,0xee,0xf0,0xc7,0xf2,0x43,0xf4,0xc4,0xf4, +0xd,0xf5,0x5d,0xf6,0x60,0xf8,0x64,0xf9,0x1b,0xf9,0xfa,0xf8, +0xdb,0xf9,0x5a,0xfb,0xa2,0xfc,0xb,0xfd,0xce,0xfc,0xda,0xfc, +0x7d,0xfd,0x85,0xfd,0xa,0xfc,0x27,0xfa,0xe,0xf9,0x54,0xf8, +0xea,0xf6,0x44,0xf4,0x8e,0xf1,0x75,0xf0,0x8a,0xf0,0xb0,0xf0, +0xba,0xf0,0xa3,0xf0,0x11,0xf1,0xc6,0xf2,0x30,0xf5,0x37,0xf7, +0x60,0xf8,0x6c,0xf9,0x69,0xfb,0xd7,0xfd,0xee,0xff,0xaa,0x1, +0xfe,0x2,0x81,0x4,0x62,0x6,0x51,0x7,0x47,0x7,0x72,0x7, +0xb8,0x7,0xb6,0x7,0x43,0x7,0xd7,0x5,0xea,0x3,0xdf,0x2, +0xcc,0x2,0x87,0x2,0x83,0x1,0x31,0x0,0x61,0xff,0x74,0xff, +0xa3,0xff,0x35,0xff,0xe6,0xfe,0x3b,0xff,0xa5,0xff,0xf,0x0, +0x8a,0x0,0xb0,0x0,0xb,0x1,0x5f,0x2,0xc9,0x3,0x41,0x4, +0x48,0x4,0x7d,0x4,0xe,0x5,0x19,0x6,0xad,0x6,0xe1,0x5, +0xe4,0x4,0xde,0x4,0x40,0x5,0x60,0x5,0xf,0x5,0x7c,0x4, +0x7c,0x4,0x59,0x5,0x22,0x6,0xe2,0x5,0x35,0x5,0x83,0x5, +0x87,0x6,0xed,0x6,0x6e,0x6,0x82,0x5,0x5,0x5,0xa4,0x5, +0x8a,0x6,0xc1,0x6,0x9f,0x6,0xbb,0x6,0x7d,0x7,0x8f,0x8, +0xba,0x8,0xe6,0x7,0x2f,0x7,0xad,0x6,0xe6,0x5,0x3,0x5, +0xbe,0x3,0x9d,0x1,0xa0,0xff,0xd0,0xfe,0x9c,0xfe,0x5e,0xfe, +0xb,0xfe,0xa7,0xfd,0x8e,0xfd,0x1c,0xfe,0x57,0xff,0xd7,0x0, +0xb6,0x1,0x30,0x2,0xa2,0x3,0xd0,0x5,0x77,0x7,0xa8,0x8, +0xf1,0x9,0x79,0xb,0x91,0xd,0xbc,0xf,0x7a,0x10,0xf9,0xf, +0x43,0x10,0x8e,0x11,0x1e,0x12,0x7,0x11,0xc8,0xe,0x2e,0xd, +0x3f,0xd,0x34,0xd,0xda,0xb,0x1f,0xa,0xc8,0x8,0xbd,0x8, +0x99,0x9,0xec,0x8,0x34,0x7,0x2a,0x7,0x4c,0x8,0x82,0x8, +0x6e,0x7,0x38,0x6,0x4e,0x6,0x67,0x7,0xc7,0x7,0xe7,0x6, +0xe7,0x5,0x1d,0x6,0x7a,0x7,0x4b,0x8,0x86,0x7,0x85,0x6, +0x34,0x7,0xea,0x8,0x5a,0x9,0x90,0x8,0x3d,0x8,0xb1,0x8, +0x8c,0x9,0x3d,0xa,0xe9,0x9,0x4e,0x9,0xfe,0x9,0x51,0xb, +0x64,0xb,0x38,0xa,0x6b,0x9,0xcf,0x9,0x9c,0xa,0x6b,0xa, +0xda,0x8,0x57,0x7,0x7,0x7,0xf,0x7,0x20,0x6,0xe1,0x3, +0xb1,0x1,0xd2,0x1,0x18,0x3,0xb2,0x1,0x2e,0xfe,0x98,0xfc, +0xcd,0xfd,0xae,0xff,0xdd,0xff,0x2d,0xfd,0xcc,0xfa,0x29,0xfd, +0x85,0x1,0xcf,0x1,0xde,0xfe,0xb9,0xfd,0x27,0x0,0xef,0x3, +0x8d,0x4,0xca,0x0,0x66,0xfe,0xfa,0x0,0x17,0x4,0x71,0x3, +0xd5,0xff,0xe6,0xfc,0x48,0xfe,0x2,0x2,0x68,0x1,0x23,0xfc, +0xf3,0xf8,0x51,0xfa,0x5a,0xfc,0xe3,0xfb,0xea,0xf8,0xe6,0xf5, +0x43,0xf6,0x48,0xf9,0x5b,0xfa,0xf5,0xf8,0xdd,0xf8,0x7b,0xfb, +0x7c,0xff,0xf9,0x2,0x33,0x4,0x73,0x4,0xca,0x6,0xf,0xb, +0x94,0xe,0xb9,0xf,0x17,0xf,0x31,0xf,0x6a,0x11,0xd9,0x13, +0x44,0x14,0x16,0x13,0x43,0x12,0xaf,0x12,0x8c,0x13,0x69,0x13, +0x5b,0x11,0xb,0xf,0x6b,0xf,0x26,0x11,0x66,0x10,0xd5,0xd, +0x68,0xc,0x76,0xc,0x34,0xd,0x8b,0xd,0x72,0xc,0xf6,0xa, +0x5c,0xa,0x16,0xa,0x6b,0x9,0x34,0x8,0xf7,0x6,0x84,0x6, +0x14,0x6,0xac,0x4,0x4b,0x3,0xcb,0x2,0xcc,0x2,0x3,0x3, +0xd,0x3,0xa3,0x2,0x58,0x2,0xd4,0x2,0xbf,0x3,0x2a,0x4, +0x44,0x4,0xfa,0x4,0xa,0x6,0x21,0x7,0x5b,0x8,0xbc,0x8, +0x71,0x8,0xb3,0x9,0x77,0xc,0x54,0xe,0x5a,0xe,0xc4,0xd, +0x5a,0xe,0x4f,0x10,0xbf,0x11,0x23,0x11,0xff,0xe,0x3b,0xd, +0xe4,0xc,0x2a,0xc,0xd7,0x8,0x2d,0x4,0x4,0x1,0x3a,0xff, +0x43,0xfc,0x85,0xf7,0xcc,0xf2,0x90,0xef,0x41,0xee,0xd3,0xed, +0x2b,0xec,0xb5,0xe9,0x28,0xe9,0xcb,0xea,0x62,0xec,0xfe,0xec, +0xbf,0xed,0xa5,0xef,0x34,0xf2,0x4d,0xf4,0xa5,0xf5,0x6,0xf7, +0x3d,0xf9,0x1,0xfc,0x61,0xfe,0xbc,0xff,0x48,0x0,0x1e,0x1, +0x93,0x2,0x60,0x3,0xe3,0x2,0xa4,0x1,0xe7,0xff,0xf4,0xfd, +0xd6,0xfb,0x7,0xf9,0xce,0xf5,0xe,0xf3,0xd,0xf1,0x46,0xef, +0x3d,0xed,0x7a,0xeb,0x95,0xea,0x32,0xea,0x24,0xea,0x40,0xea, +0xf9,0xe9,0x93,0xe9,0xa7,0xe9,0x26,0xea,0xb8,0xea,0x35,0xeb, +0x28,0xec,0xca,0xed,0x32,0xef,0x38,0xf0,0xb8,0xf1,0xce,0xf3, +0xd5,0xf5,0x47,0xf7,0x47,0xf8,0x22,0xf9,0xd6,0xf9,0xa3,0xfa, +0x3e,0xfb,0xc8,0xfa,0xd0,0xf9,0x67,0xf9,0x7d,0xf9,0x96,0xf9, +0x1b,0xf9,0x47,0xf8,0x40,0xf8,0x4,0xf9,0xae,0xf9,0xb3,0xf9, +0xef,0xf8,0x1e,0xf8,0xf2,0xf7,0xec,0xf7,0x54,0xf7,0x1f,0xf6, +0xfb,0xf4,0x76,0xf4,0x33,0xf4,0xe0,0xf3,0x9d,0xf3,0x7e,0xf3, +0xac,0xf3,0xf4,0xf3,0xa,0xf4,0x54,0xf4,0x14,0xf5,0xc8,0xf5, +0xf0,0xf5,0xe4,0xf5,0x77,0xf6,0x87,0xf7,0x2c,0xf8,0x44,0xf8, +0x72,0xf8,0x6f,0xf9,0x22,0xfb,0x40,0xfc,0x33,0xfc,0x4c,0xfc, +0xc7,0xfd,0xe1,0xff,0xf4,0x0,0xc4,0x0,0x52,0x0,0x7a,0x0, +0x64,0x1,0xc1,0x1,0x16,0x0,0x9a,0xfd,0x56,0xfc,0xc1,0xfb, +0x69,0xfa,0x5a,0xf8,0x53,0xf6,0xec,0xf4,0x89,0xf4,0xc0,0xf4, +0x85,0xf4,0xc2,0xf3,0x7e,0xf3,0x27,0xf4,0xe,0xf5,0x78,0xf5, +0x4c,0xf5,0x1f,0xf5,0xb6,0xf5,0xe0,0xf6,0x99,0xf7,0x88,0xf7, +0x38,0xf7,0x5e,0xf7,0x8a,0xf8,0x23,0xfa,0xad,0xfa,0x4c,0xfa, +0xad,0xfa,0x22,0xfc,0x57,0xfd,0x62,0xfd,0xcd,0xfc,0xab,0xfc, +0x3e,0xfd,0xaf,0xfd,0x10,0xfd,0xc8,0xfb,0x4d,0xfb,0xc,0xfc, +0x18,0xfd,0x64,0xfd,0xad,0xfc,0x35,0xfc,0x1f,0xfd,0x4b,0xfe, +0x43,0xfe,0x5f,0xfd,0x9a,0xfc,0x26,0xfc,0x97,0xfb,0xc3,0xfa, +0x9f,0xf9,0x10,0xf8,0xb9,0xf6,0xf4,0xf5,0xeb,0xf4,0xaa,0xf3, +0x22,0xf3,0x57,0xf3,0xe6,0xf3,0x53,0xf4,0x20,0xf4,0xf,0xf4, +0x2b,0xf5,0x2b,0xf7,0xc,0xf9,0x6,0xfa,0x67,0xfa,0x9c,0xfb, +0x1,0xfe,0x57,0x0,0xd9,0x1,0xd5,0x2,0x1b,0x4,0x66,0x6, +0xd6,0x8,0x98,0x9,0x3b,0x9,0xe,0xa,0xf6,0xb,0xbf,0xc, +0xa8,0xb,0xd7,0x9,0x94,0x8,0x25,0x8,0x9a,0x7,0xef,0x5, +0x92,0x3,0xf4,0x1,0xbb,0x1,0xd5,0x1,0xc6,0x0,0x3a,0xff, +0x42,0xff,0x7a,0x0,0xc4,0x0,0x41,0x0,0x62,0x0,0x17,0x1, +0xf5,0x1,0xf0,0x2,0x80,0x3,0xae,0x3,0x66,0x4,0xbb,0x5, +0x4,0x7,0xd,0x8,0xea,0x8,0xce,0x9,0xc0,0xa,0x5f,0xb, +0xac,0xb,0xee,0xb,0xf1,0xb,0x94,0xb,0x28,0xb,0xdd,0xa, +0x54,0xa,0x5e,0x9,0xf3,0x8,0xa3,0x9,0x49,0xa,0x4,0xa, +0x3c,0x9,0xc9,0x8,0x94,0x9,0xdd,0xa,0x5e,0xa,0x58,0x8, +0x35,0x7,0x4a,0x7,0x5e,0x7,0xc3,0x6,0x4,0x5,0x2f,0x3, +0x4c,0x3,0x62,0x4,0xd3,0x3,0xf6,0x1,0xfa,0x0,0xa0,0x1, +0xd4,0x2,0xbb,0x2,0xc4,0x0,0xc8,0xfe,0xd2,0xfe,0x43,0x0, +0xc4,0x0,0xbc,0xff,0xbb,0xfe,0x1c,0xff,0xf3,0x0,0xbf,0x2, +0xf5,0x2,0x76,0x2,0x62,0x3,0xef,0x5,0xfc,0x7,0xcf,0x7, +0x99,0x6,0xca,0x6,0xcf,0x8,0xa8,0xa,0x44,0xa,0x98,0x8, +0x52,0x8,0x9d,0x9,0xc2,0xa,0x53,0xa,0x42,0x8,0x21,0x7, +0x3e,0x8,0xeb,0x8,0x8e,0x7,0x8b,0x5,0x8f,0x4,0x2f,0x5, +0xb1,0x5,0x6a,0x4,0xdb,0x2,0xde,0x2,0x5,0x4,0xed,0x4, +0xf1,0x4,0xea,0x4,0xf9,0x5,0xcc,0x7,0xb,0x9,0x51,0x9, +0x1f,0xa,0x17,0xc,0xbd,0xd,0x9e,0xe,0x70,0xf,0x40,0x10, +0x4b,0x11,0x43,0x12,0x70,0x12,0xc9,0x12,0xe2,0x13,0x6e,0x14, +0xc1,0x13,0x73,0x12,0xc4,0x11,0x41,0x12,0x11,0x12,0xe8,0xf, +0x80,0xd,0x2f,0xc,0x57,0xb,0xfc,0x9,0x76,0x7,0xaa,0x4, +0x2e,0x3,0xad,0x2,0xc2,0x1,0xbe,0xff,0x4a,0xfd,0x57,0xfc, +0x21,0xfd,0x62,0xfd,0x71,0xfc,0xea,0xfb,0x67,0xfc,0x3a,0xfd, +0x34,0xfe,0x6c,0xff,0x2e,0x0,0x3c,0x0,0xdc,0x0,0x6b,0x2, +0xa5,0x3,0x39,0x4,0xf8,0x4,0x11,0x6,0x24,0x7,0x49,0x8, +0x85,0x9,0xe3,0x9,0x73,0x9,0x23,0xa,0xeb,0xb,0x7a,0xc, +0x55,0xb,0xee,0x9,0x62,0x9,0xda,0x9,0xf,0xa,0xbb,0x8, +0xb1,0x6,0x6f,0x5,0x3d,0x5,0x68,0x5,0xdc,0x4,0x8c,0x3, +0xe8,0x2,0x6a,0x3,0xe7,0x3,0x8f,0x3,0x94,0x2,0xb3,0x1, +0xcf,0x1,0xce,0x2,0x64,0x3,0xf8,0x2,0xd3,0x2,0xc,0x4, +0xca,0x5,0x42,0x7,0xa2,0x8,0x9d,0x9,0x85,0xa,0x5f,0xc, +0x5f,0xe,0x13,0xf,0x4,0xf,0x93,0xf,0xe1,0x10,0xd5,0x11, +0xb2,0x11,0xf,0x11,0xd,0x11,0x3,0x12,0xe6,0x12,0x89,0x12, +0xa,0x11,0x6e,0xf,0xb8,0xe,0x86,0xe,0xe3,0xc,0xb3,0x9, +0xfc,0x6,0x20,0x5,0x4b,0x3,0x63,0x1,0x38,0xff,0xd,0xfd, +0xec,0xfb,0x7a,0xfb,0x39,0xfa,0x65,0xf8,0x8a,0xf7,0xd5,0xf7, +0x48,0xf8,0x31,0xf8,0x4f,0xf7,0x7a,0xf6,0xef,0xf6,0x0,0xf8, +0x39,0xf8,0xbf,0xf7,0x58,0xf7,0x33,0xf7,0x5e,0xf7,0x90,0xf7, +0x2a,0xf7,0x89,0xf6,0x99,0xf6,0xc,0xf7,0x7,0xf7,0x8c,0xf6, +0x26,0xf6,0x49,0xf6,0xa9,0xf6,0x54,0xf6,0x51,0xf5,0x93,0xf4, +0x5f,0xf4,0x72,0xf4,0xc8,0xf4,0x2e,0xf5,0x42,0xf5,0x5e,0xf5, +0x4d,0xf6,0xbf,0xf7,0xd9,0xf8,0xb1,0xf9,0x86,0xfa,0x2a,0xfb, +0x7d,0xfb,0x56,0xfb,0xa2,0xfa,0x81,0xf9,0x33,0xf8,0x2b,0xf7, +0x67,0xf6,0x51,0xf5,0x21,0xf4,0xb6,0xf3,0x22,0xf4,0xce,0xf4, +0x71,0xf5,0xfc,0xf5,0x8c,0xf6,0x53,0xf7,0x15,0xf8,0x96,0xf8, +0x3a,0xf9,0x39,0xfa,0x25,0xfb,0xa2,0xfb,0xde,0xfb,0x85,0xfc, +0xf4,0xfd,0xa1,0xff,0xd0,0x0,0x86,0x1,0x79,0x2,0x9b,0x3, +0xf4,0x3,0x85,0x3,0xf5,0x2,0x32,0x2,0x20,0x1,0x78,0xff, +0xbc,0xfc,0xd9,0xf9,0x4a,0xf8,0xbd,0xf7,0xb1,0xf6,0xb3,0xf4, +0xfb,0xf2,0x85,0xf2,0xb1,0xf2,0x8b,0xf2,0x3,0xf2,0x9d,0xf1, +0xcf,0xf1,0x68,0xf2,0x8c,0xf2,0xf9,0xf1,0xb,0xf2,0x12,0xf4, +0xf2,0xf6,0xba,0xf8,0x5c,0xf9,0xe4,0xf9,0x35,0xfb,0x9d,0xfd, +0xb8,0xff,0xbb,0xff,0x62,0xfe,0xb7,0xfd,0xd2,0xfd,0x6f,0xfd, +0xfe,0xfb,0xfa,0xf9,0x5a,0xf8,0x3d,0xf7,0x9c,0xf5,0x19,0xf3, +0x92,0xf0,0xf1,0xee,0x5f,0xee,0xe5,0xed,0x54,0xec,0x46,0xea, +0x9f,0xe9,0x9a,0xea,0x9f,0xeb,0x2c,0xec,0x4,0xed,0x43,0xee, +0xec,0xef,0x5,0xf2,0x0,0xf4,0xf8,0xf5,0x5a,0xf8,0x71,0xfa, +0x84,0xfb,0xfa,0xfb,0xcb,0xfc,0x1d,0xfe,0xcc,0xfe,0x6d,0xfe, +0xee,0xfd,0xa1,0xfd,0x31,0xfd,0x78,0xfc,0x81,0xfb,0xab,0xfa, +0x63,0xfa,0x7a,0xfa,0x3,0xfa,0xa5,0xf8,0xa0,0xf7,0xef,0xf7, +0xdf,0xf8,0x7d,0xf9,0x8d,0xf9,0xaa,0xf9,0x9b,0xfa,0x3,0xfc, +0xf7,0xfc,0x44,0xfd,0x42,0xfd,0x74,0xfd,0xf,0xfe,0x89,0xfe, +0x50,0xfe,0x9e,0xfd,0x17,0xfd,0x3,0xfd,0x49,0xfd,0x88,0xfd, +0x83,0xfd,0xbe,0xfd,0x60,0xfe,0xa6,0xfe,0x5e,0xfe,0x9,0xfe, +0x1a,0xfe,0x83,0xfe,0x50,0xfe,0x20,0xfd,0x16,0xfc,0x21,0xfc, +0x23,0xfd,0x57,0xfe,0xe6,0xfe,0xe6,0xfe,0x44,0xff,0x90,0x0, +0xf7,0x1,0x2e,0x2,0xb3,0x1,0xb4,0x1,0xb0,0x1,0xd4,0x0, +0x59,0xff,0xf6,0xfd,0x34,0xfd,0xb4,0xfc,0xb4,0xfb,0x2f,0xfa, +0xcb,0xf8,0x67,0xf8,0xdc,0xf8,0xf5,0xf8,0x8a,0xf8,0x7b,0xf8, +0xf1,0xf8,0x8f,0xf9,0x10,0xfa,0x63,0xfa,0xd8,0xfa,0x91,0xfb, +0x30,0xfc,0x8c,0xfc,0x6,0xfd,0xf2,0xfd,0xc,0xff,0xa5,0xff, +0x9b,0xff,0xcb,0xff,0xad,0x0,0x3e,0x1,0x8b,0x0,0x48,0xff, +0xb3,0xfe,0x94,0xfe,0xc2,0xfd,0x12,0xfc,0x21,0xfa,0x81,0xf8, +0xe2,0xf7,0xb8,0xf7,0x46,0xf6,0x38,0xf4,0x47,0xf4,0x5d,0xf6, +0xe2,0xf7,0x34,0xf8,0xb8,0xf8,0x5e,0xfa,0x69,0xfd,0xd7,0x0, +0xba,0x2,0x5f,0x3,0xd5,0x4,0x56,0x7,0x74,0x9,0x20,0xa, +0xca,0x9,0x84,0xa,0xda,0xc,0x59,0xe,0xd0,0xd,0x1a,0xd, +0x98,0xd,0xd4,0xe,0xb6,0xf,0xef,0xe,0xab,0xc,0x54,0xb, +0xd3,0xb,0x5,0xc,0xb3,0xa,0xfc,0x8,0x28,0x8,0xcb,0x8, +0xe6,0x9,0x86,0x9,0x47,0x8,0xba,0x8,0xc9,0xa,0x1d,0xc, +0xcb,0xb,0x8f,0xa,0xd4,0x9,0xb9,0xa,0x21,0xc,0xf9,0xb, +0x60,0xa,0x1e,0x9,0x63,0x9,0xce,0xa,0x85,0xb,0x68,0xa, +0x35,0x9,0x2,0xa,0x79,0xb,0x23,0xb,0x90,0x9,0x41,0x8, +0x7a,0x7,0xa0,0x7,0xc2,0x7,0x17,0x6,0x20,0x4,0x33,0x4, +0x96,0x5,0x92,0x6,0x18,0x6,0xa4,0x4,0x89,0x4,0x44,0x6, +0x4c,0x7,0x42,0x6,0x8c,0x4,0x87,0x3,0xf4,0x2,0x4b,0x2, +0x65,0x1,0x47,0x0,0x95,0xff,0xdb,0xff,0x85,0x0,0xb7,0x0, +0x6e,0x0,0xb9,0x0,0x22,0x2,0x6c,0x3,0xe3,0x3,0x7c,0x4, +0x77,0x5,0x14,0x6,0x83,0x6,0x98,0x7,0xf5,0x8,0x9c,0x9, +0x8,0xa,0x11,0xb,0x46,0xc,0x50,0xd,0x6b,0xe,0x3e,0xf, +0x3a,0xf,0x99,0xe,0x15,0xe,0xa1,0xd,0xab,0xc,0x87,0xb, +0x97,0xa,0x52,0x9,0xc1,0x7,0xda,0x6,0xc7,0x6,0x83,0x6, +0xbb,0x5,0x6b,0x5,0x9d,0x5,0x62,0x5,0xb,0x5,0x2b,0x5, +0x66,0x5,0x4,0x6,0x5d,0x7,0x8f,0x8,0x6e,0x9,0x1c,0xb, +0x99,0xd,0x9a,0xf,0xda,0x10,0x22,0x12,0x8c,0x13,0x75,0x14, +0xc3,0x14,0xc6,0x14,0x30,0x14,0xec,0x12,0xb1,0x11,0x66,0x10, +0xae,0xe,0x3e,0xd,0x22,0xc,0x82,0xa,0x96,0x8,0x50,0x7, +0xd8,0x6,0xf8,0x5,0xf7,0x3,0xac,0x2,0x7,0x3,0xd8,0x2, +0x55,0x1,0x3f,0x0,0x64,0x0,0xae,0x1,0xb4,0x3,0xd2,0x4, +0x68,0x4,0xa8,0x4,0xff,0x6,0x8d,0x9,0x6a,0xa,0x32,0xa, +0x64,0xa,0x14,0xb,0xc9,0xa,0xf4,0x8,0x32,0x7,0x63,0x6, +0x90,0x5,0x1e,0x4,0xe2,0x1,0x1a,0xff,0x63,0xfd,0xe,0xfd, +0xd8,0xfb,0x2a,0xf9,0xe2,0xf6,0x5e,0xf5,0x9d,0xf3,0xd2,0xf1, +0x72,0xf0,0x19,0xef,0xbf,0xed,0x1c,0xed,0x31,0xed,0x23,0xed, +0xe2,0xec,0x6,0xed,0x9e,0xed,0x92,0xee,0xaa,0xef,0x43,0xf0, +0x3f,0xf0,0x3e,0xf0,0xbf,0xf0,0xa0,0xf1,0x1b,0xf2,0xf0,0xf1, +0x30,0xf2,0x51,0xf3,0x10,0xf4,0xdc,0xf3,0x3a,0xf4,0xea,0xf5, +0xae,0xf7,0x8d,0xf8,0x6b,0xf8,0x1a,0xf8,0x2a,0xf9,0xfb,0xfa, +0x58,0xfb,0x92,0xfa,0x93,0xfa,0xee,0xfb,0xb4,0xfd,0x58,0xfe, +0xd5,0xfd,0xd9,0xfd,0xd9,0xfe,0xb1,0xff,0x73,0xff,0x27,0xfe, +0xf3,0xfc,0xea,0xfc,0x19,0xfd,0xc0,0xfb,0x6f,0xf9,0x2e,0xf8, +0x28,0xf8,0x26,0xf8,0xa8,0xf7,0xd2,0xf6,0x2e,0xf6,0x89,0xf6, +0xdd,0xf7,0x13,0xf9,0x58,0xf9,0x62,0xf9,0x46,0xfa,0xbd,0xfb, +0xd4,0xfc,0x2a,0xfd,0x60,0xfd,0x67,0xfe,0xe5,0xff,0xcd,0x0, +0xbd,0x0,0xd1,0xff,0x33,0xff,0xc6,0xff,0xec,0xff,0x31,0xfe, +0xd3,0xfb,0x57,0xfa,0x85,0xf9,0x5f,0xf8,0x8b,0xf6,0x97,0xf4, +0x3e,0xf3,0xbd,0xf2,0x67,0xf2,0x6d,0xf1,0x4e,0xf0,0x1c,0xf0, +0xa7,0xf0,0xb4,0xf0,0xd3,0xef,0x33,0xef,0xdd,0xef,0x27,0xf1, +0xf8,0xf1,0x3e,0xf2,0x83,0xf2,0x60,0xf3,0x9,0xf5,0xac,0xf6, +0x57,0xf7,0x6e,0xf7,0xe3,0xf7,0xc8,0xf8,0x90,0xf9,0x8e,0xf9, +0xb1,0xf8,0xe3,0xf7,0xde,0xf7,0x71,0xf8,0x89,0xf8,0x53,0xf7, +0xf9,0xf5,0xe1,0xf5,0xa8,0xf6,0x68,0xf7,0x2a,0xf7,0xe0,0xf5, +0x79,0xf5,0x8e,0xf6,0x66,0xf7,0x2f,0xf7,0x47,0xf6,0xbd,0xf5, +0xe7,0xf6,0xd8,0xf8,0x4c,0xf9,0x74,0xf8,0x72,0xf8,0x47,0xfa, +0xfa,0xfc,0xeb,0xfe,0x6c,0xff,0x80,0xff,0xcf,0x0,0x3d,0x3, +0xdc,0x4,0xce,0x4,0x56,0x4,0xe7,0x4,0x61,0x6,0x23,0x7, +0x17,0x6,0x83,0x4,0x63,0x4,0x95,0x5,0x59,0x6,0x97,0x5, +0xc5,0x3,0xb7,0x2,0x9e,0x3,0xe2,0x4,0x7d,0x4,0x45,0x3, +0x8,0x3,0xb0,0x3,0x4e,0x4,0x6e,0x4,0xeb,0x3,0x59,0x3, +0xa4,0x3,0x65,0x4,0x6d,0x4,0xd6,0x3,0xbb,0x3,0x5b,0x4, +0xac,0x4,0x0,0x4,0x40,0x3,0x56,0x3,0x89,0x3,0xf,0x3, +0x57,0x2,0x9b,0x1,0xc2,0x0,0x6c,0x0,0x90,0x0,0x25,0x0, +0xa4,0xff,0x24,0x0,0xeb,0x0,0x2e,0x1,0x64,0x1,0xf0,0x1, +0xd3,0x2,0xc9,0x3,0x65,0x4,0x82,0x4,0x43,0x4,0x45,0x4, +0xe0,0x4,0x48,0x5,0xa,0x5,0x8c,0x4,0x1,0x4,0xa1,0x3, +0xa1,0x3,0xcb,0x3,0xe1,0x3,0xac,0x3,0x3c,0x3,0xc8,0x2, +0x22,0x2,0x5a,0x1,0xea,0x0,0xb2,0x0,0xd,0x0,0xc6,0xfe, +0x46,0xfd,0x35,0xfc,0x13,0xfc,0xcd,0xfc,0x9c,0xfd,0x10,0xfe, +0xa9,0xfe,0xf3,0xff,0xb9,0x1,0x47,0x3,0x5c,0x4,0x65,0x5, +0x84,0x6,0x80,0x7,0x18,0x8,0x8,0x8,0xc3,0x7,0x1,0x8, +0x6f,0x8,0x49,0x8,0x86,0x7,0xaa,0x6,0x1,0x6,0x56,0x5, +0x66,0x4,0x28,0x3,0xd1,0x1,0x85,0x0,0x7,0xff,0x50,0xfd, +0xa0,0xfb,0x4e,0xfa,0xfe,0xf9,0x71,0xfa,0x95,0xfa,0x37,0xfa, +0xce,0xf9,0x4a,0xfa,0x4d,0xfc,0x6d,0xfe,0x62,0xff,0xc4,0xff, +0x4f,0x0,0xa2,0x1,0xbe,0x3,0x3e,0x5,0xb4,0x5,0x58,0x6, +0xd9,0x7,0x71,0x9,0xf2,0x9,0x90,0x9,0x75,0x9,0xc3,0x9, +0x9c,0x9,0x29,0x8,0x98,0x5,0x5a,0x3,0x40,0x2,0x7a,0x1, +0xcb,0xff,0x2c,0xfd,0x48,0xfb,0xec,0xfa,0x8b,0xfa,0x5a,0xf9, +0x2d,0xf8,0x58,0xf7,0x48,0xf7,0x1f,0xf8,0x64,0xf8,0xbe,0xf7, +0xdd,0xf7,0x4b,0xf9,0x0,0xfb,0xa,0xfc,0x73,0xfc,0x43,0xfd, +0xf3,0xfe,0x16,0x1,0xe9,0x2,0x34,0x3,0x98,0x2,0x61,0x3, +0x3e,0x5,0x43,0x6,0x15,0x6,0x86,0x5,0x14,0x6,0xab,0x7, +0x53,0x8,0xdc,0x7,0x2c,0x7,0x8,0x7,0x99,0x8,0xec,0x9, +0x1e,0x8,0x10,0x6,0x97,0x7,0x83,0xa,0x29,0xb,0xe9,0x9, +0x14,0x9,0xbb,0x9,0xb4,0xb,0x2f,0xd,0xda,0xb,0x58,0x9, +0x65,0x9,0x60,0xb,0xd8,0xb,0xe7,0x9,0xe6,0x7,0x8f,0x8, +0x10,0xb,0x24,0xc,0x4d,0xb,0x9f,0xa,0x79,0xb,0xa,0xe, +0x64,0x10,0xce,0xf,0xc3,0xd,0x42,0xe,0xe1,0x10,0x4b,0x12, +0x15,0x12,0x61,0x11,0xc0,0x10,0x97,0x11,0xbf,0x13,0xe2,0x13, +0x4f,0x11,0x10,0x10,0xa9,0x11,0xbd,0x12,0x14,0x11,0x1c,0xe, +0x50,0xc,0xf9,0xc,0xa8,0xe,0x89,0xe,0xd,0xc,0x8d,0x9, +0xb4,0x9,0x17,0xc,0x8c,0xc,0x2a,0x9,0x38,0x6,0xa,0x7, +0xa8,0x8,0xfc,0x7,0x19,0x6,0xc4,0x4,0x1e,0x5,0x2c,0x7, +0x1d,0x8,0x63,0x6,0xfc,0x4,0x18,0x6,0xcd,0x7,0xa7,0x7, +0xb3,0x5,0x2a,0x4,0x99,0x4,0xca,0x5,0xb5,0x5,0x20,0x4, +0xb3,0x2,0xd2,0x2,0xe8,0x3,0x37,0x4,0xf0,0x2,0x60,0x1, +0x4b,0x1,0xe3,0x1,0x27,0x1,0x20,0xff,0x1f,0xfd,0xf9,0xfb, +0xa6,0xfb,0x17,0xfb,0x54,0xf9,0x33,0xf7,0x94,0xf6,0x5b,0xf7, +0xa2,0xf7,0xfc,0xf6,0x32,0xf6,0xc3,0xf5,0x5b,0xf6,0x7e,0xf7, +0xb7,0xf7,0x30,0xf7,0xd2,0xf6,0xc7,0xf6,0xd3,0xf6,0x51,0xf6, +0x82,0xf5,0xa3,0xf5,0xa4,0xf6,0x7a,0xf7,0xdb,0xf7,0x5,0xf8, +0x13,0xf8,0x35,0xf8,0xd9,0xf8,0x9b,0xf9,0x43,0xf9,0xe9,0xf7, +0xcc,0xf6,0x50,0xf6,0x20,0xf6,0xc8,0xf5,0xf6,0xf4,0x5,0xf4, +0x99,0xf3,0xe3,0xf3,0x5d,0xf4,0x1c,0xf4,0x42,0xf3,0x2b,0xf3, +0x29,0xf4,0xf8,0xf4,0xb9,0xf4,0xc8,0xf3,0x4e,0xf3,0x1a,0xf4, +0x80,0xf5,0x59,0xf6,0xba,0xf6,0x58,0xf7,0xad,0xf8,0xd4,0xfa, +0x7,0xfd,0x65,0xfe,0x33,0xff,0x2d,0x0,0x6b,0x1,0x4b,0x2, +0x4,0x2,0xb7,0x0,0x60,0xff,0x74,0xfe,0x67,0xfd,0x9d,0xfb, +0x7e,0xf9,0xfa,0xf7,0x2c,0xf7,0x72,0xf6,0x67,0xf5,0x55,0xf4, +0x8,0xf4,0xa6,0xf4,0x9,0xf5,0x83,0xf4,0xce,0xf3,0xc7,0xf3, +0xb2,0xf4,0xd7,0xf5,0x13,0xf6,0xcc,0xf5,0x12,0xf6,0xb2,0xf6, +0x2e,0xf7,0x50,0xf7,0x2b,0xf7,0x88,0xf7,0x66,0xf8,0xa1,0xf8, +0xfd,0xf7,0x39,0xf7,0xec,0xf6,0xfa,0xf6,0x9d,0xf6,0xa4,0xf5, +0x8e,0xf4,0x88,0xf3,0xb2,0xf2,0xb,0xf2,0x51,0xf1,0xa6,0xf0, +0x52,0xf0,0x77,0xf0,0x6,0xf1,0x82,0xf1,0xaa,0xf1,0xe2,0xf1, +0x90,0xf2,0xcf,0xf3,0x3a,0xf5,0xcc,0xf5,0x2d,0xf5,0xcb,0xf4, +0x8,0xf6,0x5,0xf8,0x19,0xf9,0x0,0xf9,0x96,0xf8,0x22,0xf9, +0xf5,0xfa,0x50,0xfc,0xe8,0xfb,0xf6,0xfa,0x3,0xfb,0xc6,0xfb, +0xec,0xfb,0xb8,0xfa,0xdd,0xf8,0xf2,0xf7,0x7d,0xf8,0xd7,0xf8, +0xb1,0xf7,0x2e,0xf6,0xfe,0xf5,0x31,0xf7,0x5b,0xf8,0x1e,0xf8, +0xd,0xf7,0xcd,0xf6,0xc7,0xf7,0xe,0xf9,0x72,0xf9,0xf0,0xf8, +0x0,0xf9,0x4f,0xfa,0xd9,0xfb,0xc2,0xfc,0x4b,0xfd,0x31,0xfe, +0xac,0xff,0x32,0x1,0x80,0x2,0xa3,0x3,0x88,0x4,0xa0,0x5, +0x27,0x7,0x2d,0x8,0x2a,0x8,0xd7,0x7,0xc0,0x7,0xd0,0x7, +0xd2,0x7,0x73,0x7,0x74,0x6,0x2a,0x5,0x42,0x4,0xaf,0x3, +0x9e,0x2,0x26,0x1,0x13,0x0,0x14,0xff,0xa9,0xfd,0x4a,0xfc, +0x27,0xfb,0x1c,0xfa,0x5f,0xf9,0xc0,0xf8,0xd7,0xf7,0x15,0xf7, +0x28,0xf7,0xaa,0xf7,0xce,0xf7,0xf8,0xf7,0xde,0xf8,0x64,0xfa, +0xb,0xfc,0xfe,0xfc,0x8b,0xfd,0x67,0xff,0x1e,0x2,0x91,0x3, +0x94,0x3,0x3e,0x3,0xb8,0x3,0x4f,0x5,0x9,0x6,0xbc,0x4, +0x83,0x3,0x1b,0x4,0x6a,0x5,0x92,0x5,0x7a,0x4,0xb1,0x3, +0x8c,0x4,0x98,0x6,0x6a,0x7,0xe2,0x5,0xb3,0x4,0xdf,0x5, +0x8f,0x7,0xbf,0x7,0x6f,0x6,0x23,0x5,0x7a,0x5,0x9b,0x6, +0x74,0x6,0x7,0x5,0xe6,0x3,0x2a,0x4,0x31,0x5,0x37,0x5, +0xb8,0x3,0x42,0x2,0x5e,0x2,0x36,0x3,0xf4,0x2,0xd8,0x1, +0x17,0x1,0xfc,0x0,0x83,0x1,0x12,0x2,0x2a,0x2,0xb5,0x2, +0x25,0x4,0xb1,0x5,0xd5,0x6,0xcf,0x7,0x3c,0x9,0xda,0xa, +0xbb,0xb,0x21,0xc,0xac,0xc,0x12,0xd,0x29,0xd,0x2f,0xd, +0x1b,0xd,0x9,0xd,0x7e,0xd,0x14,0xe,0xc7,0xd,0x34,0xd, +0x43,0xd,0x24,0xd,0x46,0xc,0xe4,0xa,0x4d,0x9,0x19,0x8, +0xd1,0x6,0xc5,0x4,0x90,0x2,0x81,0x0,0xeb,0xfe,0x48,0xfe, +0x94,0xfd,0x68,0xfc,0xce,0xfb,0xff,0xfb,0x66,0xfc,0x98,0xfc, +0x8,0xfd,0x30,0xfe,0x55,0xff,0x9c,0x0,0x93,0x2,0x17,0x4, +0x3d,0x5,0x39,0x7,0x7f,0x9,0x9b,0xb,0xc2,0xd,0x54,0xf, +0xe9,0xf,0x24,0x10,0xfc,0x10,0xc8,0x11,0x98,0x10,0x2e,0xe, +0xa0,0xc,0x84,0xb,0xc7,0x9,0x37,0x7,0x6d,0x4,0xf3,0x2, +0xa9,0x2,0xc1,0x1,0xc3,0xff,0x59,0xfd,0xff,0xfb,0xc7,0xfc, +0x3e,0xfd,0x31,0xfb,0x7,0xf9,0xf6,0xf8,0xf5,0xf9,0xe5,0xfa, +0x47,0xfb,0x4,0xfb,0x67,0xfb,0x8c,0xfd,0x23,0x0,0xdf,0x0, +0x4b,0x0,0xf9,0x0,0xc3,0x2,0xc7,0x3,0xe7,0x3,0x60,0x3, +0x6d,0x2,0x53,0x2,0x6e,0x3,0xbc,0x4,0x38,0x5,0xcb,0x4, +0xfa,0x4,0xce,0x6,0xf8,0x8,0x7,0xa,0x4f,0xa,0xe0,0xa, +0xf1,0xb,0x2a,0xd,0x1a,0xe,0xd2,0xd,0x15,0xd,0x1c,0xe, +0xda,0xf,0xc8,0xf,0x56,0xe,0xfe,0xc,0xd9,0xc,0xf5,0xd, +0x1e,0xe,0x11,0xc,0x71,0x9,0x23,0x8,0x1c,0x8,0x96,0x7, +0xd1,0x5,0xe1,0x3,0x4e,0x2,0x1e,0x1,0x54,0x0,0x9b,0xff, +0xee,0xfe,0x4a,0xfe,0x4,0xfe,0x6b,0xfe,0x59,0xfe,0xd6,0xfd, +0x92,0xfe,0x35,0x0,0xb9,0x1,0x27,0x3,0x5b,0x4,0xaf,0x5, +0x66,0x7,0x29,0x9,0x2b,0xb,0xeb,0xc,0xc8,0xd,0x7b,0xe, +0x2f,0xf,0x86,0xf,0xac,0xf,0x7f,0xf,0x3,0xf,0x79,0xe, +0xb3,0xd,0xc3,0xc,0xd8,0xb,0x3,0xb,0x45,0xa,0x19,0x9, +0x60,0x7,0xec,0x5,0xee,0x4,0xc4,0x3,0x41,0x2,0xc2,0x0, +0x4f,0xff,0xae,0xfd,0x1b,0xfc,0xca,0xfa,0x7d,0xf9,0x65,0xf8, +0xbb,0xf7,0x1,0xf7,0xff,0xf5,0x1a,0xf5,0xa9,0xf4,0x93,0xf4, +0x70,0xf4,0x3b,0xf4,0x2a,0xf4,0x30,0xf4,0x6c,0xf4,0xeb,0xf4, +0x6e,0xf5,0x2,0xf6,0x91,0xf6,0x9,0xf7,0xf1,0xf7,0x68,0xf9, +0xdf,0xfa,0xfd,0xfb,0xec,0xfc,0x5b,0xfe,0x35,0x0,0x43,0x1, +0x69,0x1,0xcf,0x1,0xb0,0x2,0x4c,0x3,0x12,0x3,0xe,0x2, +0xb8,0x0,0x9d,0xff,0xfd,0xfe,0x3a,0xfe,0x98,0xfc,0xde,0xfa, +0xff,0xf9,0x51,0xf9,0xe9,0xf7,0xf8,0xf5,0x8a,0xf4,0x1a,0xf4, +0xa5,0xf3,0x5d,0xf2,0xfc,0xf0,0x6e,0xf0,0xf8,0xf0,0x14,0xf2, +0xcc,0xf2,0x44,0xf3,0x80,0xf4,0x92,0xf6,0xb8,0xf8,0x7d,0xfa, +0xeb,0xfb,0x60,0xfd,0xd0,0xfe,0xbf,0xff,0x50,0x0,0xfc,0x0, +0xb7,0x1,0x57,0x2,0xc4,0x2,0xfa,0x2,0x5c,0x3,0xdf,0x3, +0xd9,0x3,0x3a,0x3,0x61,0x2,0x50,0x1,0x10,0x0,0xd3,0xfe, +0x9d,0xfd,0x16,0xfc,0x34,0xfa,0xa3,0xf8,0x90,0xf7,0x9d,0xf6, +0x1b,0xf6,0x1a,0xf6,0xf4,0xf5,0xa7,0xf5,0x88,0xf5,0x5f,0xf5, +0x20,0xf5,0x3f,0xf5,0xa5,0xf5,0x69,0xf5,0x5a,0xf4,0x5d,0xf3, +0x2,0xf3,0x2e,0xf3,0x5c,0xf3,0xe0,0xf2,0xf8,0xf1,0x72,0xf1, +0x78,0xf1,0xc2,0xf1,0xde,0xf1,0xc5,0xf1,0x3b,0xf2,0x52,0xf3, +0x1a,0xf4,0x62,0xf4,0xf8,0xf4,0x5e,0xf6,0x2b,0xf8,0x5f,0xf9, +0x94,0xf9,0x87,0xf9,0xd5,0xf9,0x40,0xfa,0x87,0xfa,0x82,0xfa, +0x25,0xfa,0xe1,0xf9,0xa4,0xf9,0xe,0xf9,0xaf,0xf8,0xc7,0xf8, +0xdd,0xf8,0xcc,0xf8,0x37,0xf8,0x36,0xf7,0xaf,0xf6,0x53,0xf6, +0x59,0xf5,0x42,0xf4,0xb7,0xf3,0xb4,0xf3,0xee,0xf3,0x4f,0xf4, +0x22,0xf5,0x7b,0xf6,0x43,0xf8,0x7e,0xfa,0xba,0xfc,0x63,0xfe, +0x9d,0xff,0xf6,0x0,0x32,0x2,0xa9,0x2,0xd8,0x2,0x5c,0x3, +0xc5,0x3,0x20,0x4,0x99,0x4,0xbe,0x4,0xfd,0x4,0xb4,0x5, +0x3f,0x6,0x75,0x6,0x5f,0x6,0xbc,0x5,0xa0,0x4,0x43,0x3, +0xf2,0x1,0xd2,0x0,0x85,0xff,0xf5,0xfd,0x8a,0xfc,0xc0,0xfb, +0xd1,0xfb,0x78,0xfc,0x54,0xfd,0x2b,0xfe,0x11,0xff,0x6b,0x0, +0x14,0x2,0x66,0x3,0x11,0x4,0x3a,0x4,0x9d,0x4,0x6b,0x5, +0xc1,0x5,0x72,0x5,0xde,0x4,0x37,0x4,0x33,0x4,0x71,0x4, +0x5d,0x3,0x52,0x1,0xd9,0xff,0x12,0xff,0x25,0xfe,0x39,0xfc, +0x8e,0xf9,0xb7,0xf7,0x51,0xf7,0x73,0xf7,0x80,0xf7,0x50,0xf7, +0x47,0xf7,0x61,0xf8,0x53,0xfa,0xcf,0xfb,0xe2,0xfc,0x5d,0xfe, +0x3e,0x0,0xd9,0x1,0x85,0x2,0xac,0x2,0x6b,0x3,0xd4,0x4, +0x39,0x6,0x12,0x7,0x21,0x7,0xef,0x6,0xfd,0x6,0xfe,0x6, +0xeb,0x6,0xa3,0x6,0x6f,0x5,0x6c,0x3,0x78,0x1,0xe3,0xff, +0xa2,0xfe,0xa5,0xfd,0x9e,0xfc,0x72,0xfb,0x8e,0xfa,0x5a,0xfa, +0xa3,0xfa,0x16,0xfb,0xb3,0xfb,0x85,0xfc,0x3e,0xfd,0x5a,0xfd, +0x2a,0xfd,0xe7,0xfd,0xa6,0xff,0x8,0x1,0xa8,0x1,0x74,0x2, +0xc6,0x3,0x50,0x5,0xdb,0x6,0x3f,0x8,0x93,0x9,0xeb,0xa, +0xcf,0xb,0x3,0xc,0xe6,0xb,0xe5,0xb,0x9,0xc,0xae,0xb, +0xb5,0xa,0x17,0xa,0xe8,0x9,0x88,0x9,0x4e,0x9,0x4b,0x9, +0x2f,0x9,0x70,0x9,0xaf,0x9,0x15,0x9,0x60,0x8,0x46,0x8, +0x2e,0x8,0xb0,0x7,0xd8,0x6,0x11,0x6,0x38,0x6,0x1c,0x7, +0x72,0x7,0x1,0x7,0xc7,0x6,0x51,0x7,0x2c,0x8,0x7f,0x8, +0x0,0x8,0x5c,0x7,0x5a,0x7,0xd6,0x7,0x1a,0x8,0xf9,0x7, +0xcf,0x7,0xf9,0x7,0xd8,0x8,0x11,0xa,0x49,0xa,0x7a,0x9, +0x54,0x9,0x45,0xa,0x2,0xb,0x75,0xa,0x8f,0x8,0x63,0x6, +0x41,0x5,0xbf,0x4,0x2c,0x3,0x44,0x0,0x73,0xfd,0xc5,0xfb, +0x4b,0xfb,0xd8,0xfa,0x3,0xf9,0x35,0xf7,0x96,0xf7,0xd4,0xf8, +0xf2,0xf8,0x1c,0xf8,0x5,0xf7,0xbd,0xf6,0xd7,0xf7,0x1e,0xf9, +0x96,0xf9,0xb5,0xf9,0x4b,0xfa,0x7b,0xfb,0xdd,0xfc,0x50,0xfe, +0x58,0xff,0xb4,0xff,0xa8,0x0,0x5f,0x2,0x3b,0x3,0x1a,0x3, +0x21,0x3,0xda,0x3,0x15,0x5,0xf1,0x5,0xc4,0x5,0xce,0x4, +0x21,0x4,0xc1,0x4,0xb1,0x5,0x41,0x5,0xab,0x3,0x3d,0x2, +0xf3,0x1,0x14,0x2,0xe9,0x0,0x3c,0xff,0xc5,0xfe,0xd,0xff, +0x7b,0xff,0xab,0xff,0xf9,0xfe,0x89,0xfe,0x95,0xff,0xce,0x0, +0xdb,0x0,0x6c,0x0,0x9b,0x0,0x47,0x1,0xa0,0x1,0x59,0x1, +0x1b,0x1,0xd5,0x1,0x74,0x3,0x6,0x5,0x17,0x6,0xe8,0x6, +0x4c,0x8,0xc7,0xa,0x37,0xd,0x9d,0xe,0xaf,0xf,0x3,0x11, +0x67,0x12,0xd8,0x13,0xef,0x14,0x2f,0x15,0x56,0x15,0x4a,0x16, +0x3a,0x17,0xe6,0x16,0xd2,0x15,0x2d,0x15,0x0,0x15,0x91,0x14, +0x1a,0x13,0x5d,0x10,0xb6,0xd,0xac,0xc,0x2c,0xc,0x59,0xa, +0x9a,0x7,0x1a,0x5,0x9e,0x3,0x7d,0x3,0xd4,0x2,0x3a,0x0, +0xb,0xfe,0xfa,0xfd,0xa0,0xfe,0x89,0xfe,0x62,0xfd,0x7b,0xfc, +0xd0,0xfd,0x82,0x0,0xe4,0x1,0xa0,0x1,0xcc,0x1,0xe7,0x3, +0x1f,0x7,0x43,0x9,0xf5,0x8,0xd2,0x7,0x9a,0x8,0x5d,0xa, +0x1f,0xa,0xcf,0x7,0x20,0x5,0x70,0x3,0xb8,0x2,0xd4,0x0, +0x17,0xfd,0xa8,0xf9,0xc3,0xf7,0x99,0xf6,0xbe,0xf4,0xc7,0xf1, +0xf1,0xee,0x3a,0xed,0xc5,0xec,0xd2,0xec,0xcd,0xeb,0x1b,0xea, +0x9f,0xe9,0x6c,0xea,0x96,0xeb,0xa8,0xec,0x92,0xed,0xe3,0xee, +0x20,0xf1,0x10,0xf4,0xa5,0xf6,0x3d,0xf8,0xd2,0xf9,0xe,0xfc, +0x7d,0xfe,0x82,0x0,0x12,0x1,0x7e,0x0,0x78,0x0,0xca,0x0, +0xaf,0x0,0x3d,0x0,0x1e,0xff,0x3,0xfe,0xc8,0xfd,0x2a,0xfd, +0x88,0xfb,0x5,0xfa,0x41,0xf9,0xbf,0xf8,0xa3,0xf7,0x1e,0xf6, +0xc,0xf5,0x45,0xf4,0xaf,0xf3,0x8a,0xf3,0x6d,0xf3,0x7c,0xf3, +0x18,0xf4,0xd0,0xf4,0xcd,0xf5,0x93,0xf7,0x81,0xf9,0xeb,0xfa, +0xd1,0xfb,0x6a,0xfc,0x33,0xfd,0x49,0xfe,0xe4,0xfe,0x8c,0xfe, +0xfe,0xfd,0xc,0xfe,0x43,0xfe,0xf0,0xfd,0x9f,0xfd,0x22,0xfe, +0x1f,0xff,0xc7,0xff,0xed,0xff,0xf1,0xff,0xf5,0xff,0xbc,0xff, +0x5c,0xff,0xc2,0xfe,0xa8,0xfd,0xa9,0xfc,0x24,0xfc,0x76,0xfb, +0xb9,0xfa,0x55,0xfa,0xe9,0xf9,0x76,0xf9,0x26,0xf9,0x9e,0xf8, +0xf1,0xf7,0x57,0xf7,0xc3,0xf6,0x67,0xf6,0x3a,0xf6,0xc7,0xf5, +0xd6,0xf4,0xd1,0xf3,0x7e,0xf3,0xee,0xf3,0x31,0xf4,0xce,0xf3, +0x8c,0xf3,0x49,0xf4,0xba,0xf5,0xe6,0xf6,0x9a,0xf7,0x5f,0xf8, +0xa3,0xf9,0x4f,0xfb,0xa8,0xfc,0x23,0xfd,0x54,0xfd,0x6,0xfe, +0x23,0xff,0xd9,0xff,0x90,0xff,0xc1,0xfe,0x3f,0xfe,0xd0,0xfd, +0xbe,0xfc,0x13,0xfb,0x54,0xf9,0xbf,0xf7,0x40,0xf6,0xf3,0xf4, +0xcd,0xf3,0x6b,0xf2,0x2a,0xf1,0xd0,0xf0,0x15,0xf1,0x46,0xf1, +0x54,0xf1,0x94,0xf1,0x6c,0xf2,0xc3,0xf3,0xed,0xf4,0xb0,0xf5, +0x85,0xf6,0xd1,0xf7,0x67,0xf9,0xe7,0xfa,0x7a,0xfc,0x42,0xfe, +0xde,0xff,0x50,0x1,0xe3,0x2,0x78,0x4,0xdb,0x5,0xd4,0x6, +0xf7,0x6,0x41,0x6,0x60,0x5,0xc5,0x4,0xcf,0x3,0xf8,0x1, +0xba,0xff,0xb5,0xfd,0x55,0xfc,0x40,0xfb,0x72,0xf9,0x95,0xf7, +0x34,0xf7,0xa3,0xf7,0x84,0xf7,0xca,0xf6,0xe4,0xf5,0xbf,0xf5, +0x6,0xf7,0x77,0xf8,0x90,0xf8,0x1c,0xf8,0xb5,0xf8,0x3c,0xfa, +0xb1,0xfb,0xe4,0xfc,0x11,0xfe,0x9d,0xff,0xed,0x1,0x6f,0x4, +0x24,0x6,0x29,0x7,0x82,0x8,0x6b,0xa,0xf2,0xb,0x84,0xc, +0x6f,0xc,0x27,0xc,0xfa,0xb,0xba,0xb,0x47,0xb,0xc2,0xa, +0x89,0x9,0xe3,0x7,0x3d,0x7,0xf9,0x6,0xf9,0x5,0x4,0x5, +0x58,0x4,0x85,0x3,0xa8,0x2,0x76,0x1,0x1a,0x0,0x66,0xff, +0x23,0xff,0x9f,0xfe,0xc2,0xfd,0xf5,0xfc,0xc2,0xfc,0x52,0xfd, +0x2,0xfe,0xfb,0xfd,0xd1,0xfd,0xde,0xfe,0x9a,0x0,0xc4,0x1, +0x25,0x2,0xca,0x1,0xfe,0x1,0xe6,0x3,0x54,0x5,0x80,0x4, +0x46,0x3,0x45,0x3,0x18,0x4,0xd3,0x4,0x8f,0x4,0xcc,0x3, +0xea,0x3,0x81,0x4,0x76,0x4,0xd2,0x3,0xd3,0x2,0x3f,0x2, +0xd5,0x2,0xf8,0x2,0x18,0x1,0xe2,0xfe,0x2f,0xfe,0x77,0xfe, +0x73,0xfe,0x4e,0xfd,0x58,0xfb,0x3,0xfa,0x2,0xfa,0x79,0xfa, +0x60,0xfa,0xec,0xf9,0x24,0xfa,0x50,0xfb,0xbf,0xfc,0x82,0xfd, +0x68,0xfd,0xed,0xfd,0x1a,0x0,0x7a,0x2,0x98,0x3,0xe1,0x3, +0x47,0x4,0xb1,0x5,0xf4,0x7,0x6c,0x9,0xeb,0x9,0xdc,0xa, +0x1d,0xc,0xfa,0xc,0xce,0xd,0x6c,0xe,0xa8,0xe,0x28,0xf, +0x75,0xf,0xb8,0xe,0xbf,0xd,0x7f,0xd,0x65,0xd,0x52,0xc, +0x5e,0xa,0xd1,0x8,0x2c,0x8,0xa0,0x7,0x76,0x6,0xf0,0x4, +0xd9,0x3,0x64,0x3,0x1e,0x3,0x94,0x2,0xab,0x1,0x81,0x1, +0xba,0x2,0x60,0x3,0xcb,0x2,0x3c,0x3,0x27,0x5,0x23,0x7, +0x45,0x8,0x11,0x8,0xf0,0x7,0x89,0x9,0x52,0xb,0x82,0xb, +0xc2,0xa,0x5b,0xa,0x4c,0xb,0xb,0xd,0x39,0xd,0x98,0xb, +0xd3,0xa,0xf8,0xb,0x8,0xd,0x5,0xc,0x77,0x9,0xce,0x7, +0xed,0x7,0xda,0x7,0xc,0x6,0x7a,0x3,0xce,0x1,0xd8,0x1, +0xaf,0x2,0xfb,0x1,0x67,0xff,0x4c,0xfe,0x58,0x0,0xf9,0x1, +0x73,0x0,0x4c,0xfe,0x0,0xfe,0x3d,0xff,0xd9,0x0,0x82,0x0, +0xb1,0xfd,0x66,0xfc,0xd8,0xfe,0x1,0x2,0xdf,0x2,0x9f,0x1, +0xf7,0x0,0x99,0x3,0xee,0x7,0x84,0x9,0xf8,0x7,0x32,0x7, +0xf1,0x8,0x75,0xb,0x5f,0xc,0x36,0xa,0x68,0x7,0x87,0x8, +0xe0,0xb,0xd1,0xb,0x72,0x8,0xbf,0x5,0xd2,0x5,0xf,0x8, +0xa5,0x8,0xb8,0x4,0x27,0x0,0x27,0x0,0xd3,0x2,0xe0,0x2, +0x96,0xff,0x2e,0xfc,0xb1,0xfb,0x5c,0xfe,0x14,0x0,0xcd,0xfd, +0x2b,0xfb,0x75,0xfc,0x74,0x0,0x34,0x3,0x71,0x2,0x7e,0x0, +0xb4,0x1,0xac,0x5,0x3f,0x8,0xd7,0x7,0x8a,0x6,0xd2,0x6, +0xca,0x8,0x87,0xa,0x16,0xa,0xc8,0x7,0xb8,0x6,0x5,0x8, +0xe6,0x8,0x40,0x8,0x8c,0x7,0x57,0x7,0xa0,0x7,0xf3,0x7, +0x50,0x7,0x25,0x6,0x75,0x5,0x14,0x5,0x5d,0x4,0xd7,0x2, +0xb6,0x0,0xfe,0xfe,0x4e,0xfe,0xdd,0xfd,0xb3,0xfc,0x49,0xfb, +0x92,0xfa,0x90,0xfa,0xe0,0xfa,0x9,0xfb,0x4,0xfb,0xad,0xfb, +0x24,0xfd,0x32,0xfe,0x2e,0xfe,0xb6,0xfd,0xb5,0xfd,0x5b,0xfe, +0xef,0xfe,0xbd,0xfe,0x1a,0xfe,0x8,0xfe,0xac,0xfe,0x60,0xff, +0xcc,0xff,0xdc,0xff,0x2b,0x0,0x3d,0x1,0xbf,0x1,0xed,0x0, +0x1f,0x0,0xf4,0xff,0x2,0x0,0xc5,0xff,0x6d,0xfe,0xb8,0xfc, +0x47,0xfc,0xb5,0xfc,0xbd,0xfc,0x24,0xfc,0x6e,0xfb,0x3c,0xfb, +0xaf,0xfb,0x3e,0xfc,0xe9,0xfb,0x7d,0xfa,0x59,0xf9,0xdf,0xf8, +0xef,0xf7,0x9e,0xf6,0x72,0xf5,0x45,0xf4,0x94,0xf3,0x8d,0xf3, +0xa8,0xf3,0xff,0xf3,0xcf,0xf4,0xfd,0xf5,0x48,0xf7,0x2c,0xf8, +0xc7,0xf8,0x7a,0xf9,0xfa,0xf9,0x44,0xfa,0xa2,0xfa,0xc5,0xfa, +0x90,0xfa,0x61,0xfa,0x5b,0xfa,0x56,0xfa,0x3d,0xfa,0x69,0xfa, +0xdb,0xfa,0xd0,0xfa,0x28,0xfa,0x6d,0xf9,0xb1,0xf8,0xf2,0xf7, +0x1,0xf7,0x5b,0xf5,0x68,0xf3,0xe1,0xf1,0xbb,0xf0,0xd4,0xef, +0x11,0xef,0x5b,0xee,0x3d,0xee,0x3a,0xef,0xb3,0xf0,0xa0,0xf1, +0x37,0xf2,0x86,0xf3,0x79,0xf5,0x43,0xf7,0xa9,0xf8,0xb7,0xf9, +0xe9,0xfa,0xb7,0xfc,0x8d,0xfe,0xe3,0xff,0x5,0x1,0x22,0x2, +0x1c,0x3,0xbe,0x3,0x21,0x4,0x6f,0x4,0x47,0x4,0xd1,0x3, +0x7e,0x3,0xfa,0x2,0x58,0x2,0xbb,0x1,0x7a,0x0,0xd7,0xfe, +0x8e,0xfd,0x6d,0xfc,0x33,0xfb,0xd8,0xf9,0x8c,0xf8,0xd7,0xf7, +0xbf,0xf7,0xd9,0xf7,0xd4,0xf7,0xec,0xf7,0xcc,0xf8,0x24,0xfa, +0x27,0xfb,0xe1,0xfb,0x5c,0xfc,0xa6,0xfc,0xfe,0xfc,0xf4,0xfc, +0x71,0xfc,0x6,0xfc,0xb1,0xfb,0x62,0xfb,0x2c,0xfb,0xc0,0xfa, +0x31,0xfa,0xe0,0xf9,0xa,0xfa,0x94,0xfa,0xd2,0xfa,0x84,0xfa, +0x19,0xfa,0xc1,0xf9,0xa4,0xf9,0xa6,0xf9,0x37,0xf9,0xa7,0xf8, +0xc2,0xf8,0x6d,0xf9,0x3b,0xfa,0xfb,0xfa,0xaa,0xfb,0x94,0xfc, +0xe0,0xfd,0xf,0xff,0x75,0xff,0xf,0xff,0x98,0xfe,0x5f,0xfe, +0xbd,0xfd,0x52,0xfc,0xbb,0xfa,0x99,0xf9,0xab,0xf8,0x82,0xf7, +0x7a,0xf6,0xe5,0xf5,0x6e,0xf5,0xf,0xf5,0xed,0xf4,0xb9,0xf4, +0x7e,0xf4,0xa6,0xf4,0x35,0xf5,0xdf,0xf5,0x43,0xf6,0x9d,0xf6, +0xb1,0xf7,0x8c,0xf9,0x8f,0xfb,0x49,0xfd,0xc9,0xfe,0xa4,0x0, +0xc5,0x2,0x71,0x4,0xcf,0x5,0x6,0x7,0xbb,0x7,0x5f,0x8, +0x18,0x9,0xf7,0x8,0xf0,0x7,0x35,0x7,0x5b,0x7,0x6b,0x7, +0x3c,0x6,0x53,0x4,0x2f,0x3,0x15,0x3,0xe4,0x2,0xd6,0x1, +0x4b,0x0,0xfa,0xfe,0xa0,0xfe,0x3e,0xff,0x44,0xff,0x14,0xfe, +0x60,0xfd,0xd,0xfe,0x4d,0xff,0x12,0x0,0xaf,0xff,0x3f,0xff, +0x92,0x0,0xaa,0x2,0x2f,0x3,0x37,0x2,0x76,0x1,0xd3,0x1, +0xa,0x3,0xc8,0x3,0xd4,0x2,0x6c,0x1,0x97,0x1,0xa8,0x2, +0xf5,0x2,0x3f,0x2,0x46,0x1,0x7f,0x1,0xf7,0x2,0x6e,0x3, +0x6c,0x2,0xc3,0x1,0x46,0x2,0x69,0x3,0xd6,0x3,0xd3,0x2, +0xb9,0x1,0xce,0x1,0x80,0x2,0x78,0x2,0x69,0x1,0xa5,0x0, +0xe0,0x0,0x33,0x1,0x4c,0x1,0x2b,0x1,0x7a,0x0,0xfa,0xff, +0x7a,0x0,0x31,0x1,0x2a,0x1,0xb6,0x0,0x8b,0x0,0x81,0x0, +0x69,0x0,0xdb,0x0,0x8e,0x1,0x8b,0x1,0x4e,0x1,0xc3,0x1, +0x92,0x2,0x1f,0x3,0x90,0x3,0x10,0x4,0x47,0x4,0x3a,0x4, +0x60,0x4,0x70,0x4,0xf,0x4,0x80,0x3,0xc2,0x2,0x15,0x2, +0x19,0x2,0x3d,0x2,0xb3,0x1,0xfc,0x0,0xcc,0x0,0x51,0x1, +0x1b,0x2,0x22,0x2,0x8f,0x1,0xbf,0x1,0xbf,0x2,0x57,0x3, +0x19,0x3,0xb8,0x2,0x1d,0x3,0x64,0x4,0x66,0x5,0x38,0x5, +0xda,0x4,0xbd,0x5,0x69,0x7,0x8b,0x8,0xad,0x8,0x38,0x8, +0x5e,0x8,0x7f,0x9,0x2e,0xa,0xbd,0x9,0xf0,0x8,0x68,0x8, +0x7e,0x8,0x9e,0x8,0x12,0x8,0x8d,0x7,0x55,0x7,0xf3,0x6, +0xb5,0x6,0x71,0x6,0xbe,0x5,0xe4,0x4,0x53,0x4,0xc2,0x4, +0x8d,0x5,0xf7,0x4,0xe2,0x3,0xef,0x3,0x8e,0x4,0x38,0x5, +0xaf,0x5,0x7a,0x5,0x22,0x5,0x44,0x5,0xbe,0x5,0xe8,0x5, +0x51,0x5,0x0,0x5,0x84,0x5,0xb2,0x5,0x22,0x5,0x6a,0x4, +0xf6,0x3,0xfd,0x3,0x8,0x4,0xdc,0x3,0xea,0x3,0xcf,0x3, +0x13,0x3,0x8e,0x2,0x35,0x3,0x81,0x4,0xfd,0x4,0x72,0x4, +0x12,0x4,0xc9,0x4,0x82,0x6,0xd8,0x7,0x82,0x7,0xe7,0x6, +0xbf,0x7,0x6,0x9,0x35,0x9,0x27,0x8,0xf3,0x6,0x39,0x7, +0x40,0x8,0x6e,0x7,0x22,0x5,0xf4,0x3,0x4b,0x4,0xfc,0x4, +0xa,0x5,0xef,0x3,0x11,0x3,0x35,0x4,0xb,0x6,0x84,0x6, +0x28,0x6,0x61,0x6,0xa9,0x7,0x63,0x9,0x4b,0xa,0x6e,0xa, +0x24,0xb,0xab,0xc,0x45,0xe,0x58,0xf,0x67,0xf,0xe9,0xe, +0x15,0xf,0xfa,0xf,0x4e,0x10,0xc,0xf,0xd1,0xc,0x53,0xb, +0xeb,0xa,0x47,0xa,0x57,0x8,0x6c,0x5,0x35,0x3,0xc1,0x2, +0x9c,0x2,0x5b,0x1,0xbb,0xff,0xc6,0xfe,0x18,0xff,0x73,0x0, +0x30,0x1,0x1f,0x1,0x30,0x2,0x8d,0x4,0x64,0x6,0xd,0x7, +0x6c,0x7,0x68,0x8,0xb6,0x9,0xf8,0x9,0xb8,0x8,0x3c,0x7, +0x6b,0x6,0x80,0x5,0xc6,0x3,0xa4,0x1,0x84,0xff,0x87,0xfd, +0x9f,0xfb,0x52,0xf9,0x95,0xf6,0x1e,0xf4,0x14,0xf2,0xf3,0xef, +0xcd,0xed,0x61,0xec,0xee,0xeb,0xc7,0xeb,0x79,0xeb,0xca,0xeb, +0x7a,0xed,0xe9,0xef,0x39,0xf2,0x3d,0xf4,0x1e,0xf6,0x72,0xf8, +0x61,0xfb,0xc1,0xfd,0xef,0xfe,0xab,0xff,0x7e,0x0,0x31,0x1, +0x47,0x1,0xab,0x0,0xb6,0xff,0x4b,0xfe,0xdf,0xfc,0x29,0xfc, +0x9,0xfb,0xd5,0xf8,0xad,0xf6,0xda,0xf4,0x64,0xf3,0x98,0xf2, +0x8c,0xf1,0x1d,0xf0,0xa4,0xef,0x77,0xf0,0xcb,0xf1,0xb3,0xf2, +0x37,0xf3,0xce,0xf4,0xc6,0xf7,0x6d,0xfa,0xee,0xfb,0x1e,0xfd, +0xdb,0xfe,0x41,0x1,0x82,0x3,0x79,0x4,0x76,0x4,0x10,0x5, +0x6c,0x6,0x2e,0x7,0xa6,0x6,0x48,0x5,0x41,0x4,0xf7,0x3, +0x7,0x3,0xcf,0x0,0x8e,0xfe,0xa,0xfd,0xe4,0xfb,0xa9,0xfa, +0x64,0xf9,0x56,0xf8,0x79,0xf7,0xc,0xf7,0x3f,0xf7,0x65,0xf7, +0x2c,0xf7,0x9,0xf7,0x66,0xf7,0x2f,0xf8,0x88,0xf8,0xfa,0xf7, +0x6c,0xf7,0x9a,0xf7,0x40,0xf8,0x9e,0xf8,0x35,0xf8,0x46,0xf7, +0xad,0xf6,0x5a,0xf7,0x8d,0xf8,0xfa,0xf7,0x2a,0xf6,0xd9,0xf5, +0x5,0xf7,0xc8,0xf7,0x3,0xf7,0x48,0xf5,0x24,0xf5,0x36,0xf7, +0xc5,0xf8,0xa4,0xf8,0x32,0xf8,0xbb,0xf8,0xb6,0xfa,0xf3,0xfc, +0x86,0xfd,0xd1,0xfc,0xf3,0xfc,0x47,0xfe,0x2d,0xff,0xc3,0xfe, +0xa6,0xfd,0xfc,0xfc,0x51,0xfd,0x5a,0xfd,0xd7,0xfb,0xec,0xf9, +0xcb,0xf8,0x15,0xf8,0x33,0xf7,0xc2,0xf5,0xf5,0xf3,0x89,0xf2, +0xaa,0xf1,0x56,0xf1,0x51,0xf1,0x0,0xf1,0xa8,0xf0,0x4,0xf1, +0x37,0xf2,0xdc,0xf3,0x2d,0xf5,0x2e,0xf6,0xab,0xf7,0xbf,0xf9, +0x12,0xfc,0x3,0xfe,0xfa,0xfe,0xe0,0xff,0xb4,0x1,0xcf,0x3, +0x47,0x5,0xcb,0x5,0xa2,0x5,0xc4,0x5,0x60,0x6,0x55,0x6, +0xeb,0x4,0xee,0x2,0x8e,0x1,0x77,0x0,0x9e,0xfe,0x31,0xfc, +0x5,0xfa,0x9c,0xf8,0xff,0xf7,0x55,0xf7,0x2e,0xf6,0x67,0xf5, +0x8e,0xf5,0x4e,0xf6,0xec,0xf6,0xe4,0xf6,0xf0,0xf6,0xe6,0xf7, +0x33,0xf9,0xea,0xf9,0xd4,0xf9,0xb9,0xf9,0xdd,0xfa,0xd2,0xfc, +0xc5,0xfd,0x84,0xfd,0xcb,0xfd,0xa2,0xff,0xf0,0x1,0x12,0x3, +0xf7,0x2,0x9e,0x2,0xec,0x2,0xef,0x3,0x33,0x4,0xc3,0x2, +0x19,0x1,0xb0,0x0,0xe8,0x0,0x87,0x0,0x7a,0xff,0xc7,0xfe, +0x62,0xff,0xe6,0x0,0xc2,0x1,0x42,0x1,0xad,0x0,0x1f,0x1, +0xc2,0x1,0x79,0x1,0x53,0x0,0xe3,0xfe,0xb2,0xfd,0x17,0xfd, +0xdd,0xfc,0x70,0xfc,0xd0,0xfb,0xba,0xfb,0x6f,0xfc,0x60,0xfd, +0x35,0xfe,0x22,0xff,0x66,0x0,0xdc,0x1,0x41,0x3,0x90,0x4, +0xad,0x5,0x6e,0x6,0x12,0x7,0xda,0x7,0xbe,0x8,0xa6,0x9, +0x8b,0xa,0x67,0xb,0x1d,0xc,0xc9,0xc,0x86,0xd,0xea,0xd, +0xd5,0xd,0xb7,0xd,0x63,0xd,0x4c,0xc,0x90,0xa,0xb3,0x8, +0xfa,0x6,0x8e,0x5,0x9e,0x4,0xab,0x3,0x3b,0x2,0x28,0x1, +0x26,0x1,0x8f,0x1,0xc4,0x1,0xcb,0x1,0x38,0x2,0x4b,0x3, +0xf9,0x3,0xbb,0x3,0x72,0x3,0xc4,0x3,0xd3,0x4,0x10,0x6, +0x76,0x6,0x61,0x6,0xe3,0x6,0xee,0x7,0x9,0x9,0xe,0xa, +0xc8,0xa,0x12,0xb,0x38,0xb,0x31,0xb,0x7c,0xa,0xb4,0x9, +0xa0,0x9,0x57,0x9,0x3c,0x8,0x4,0x7,0x1d,0x6,0x8a,0x5, +0x8,0x5,0x6d,0x4,0x9,0x4,0x8a,0x3,0x9e,0x2,0xd2,0x1, +0x37,0x1,0x9c,0x0,0xee,0xff,0xc6,0xfe,0x7b,0xfd,0xd9,0xfc, +0xb3,0xfc,0x5c,0xfc,0x7b,0xfb,0x91,0xfa,0x6d,0xfa,0xcf,0xfa, +0x8,0xfb,0x31,0xfb,0xb1,0xfb,0x74,0xfc,0x4f,0xfd,0x8d,0xfe, +0xf2,0xff,0xd2,0x0,0xa3,0x1,0xcb,0x2,0xd4,0x3,0xf1,0x4, +0x2d,0x6,0xa9,0x6,0x53,0x6,0x68,0x6,0xe4,0x7,0x48,0x9, +0x4c,0x8,0x47,0x6,0x1e,0x6,0x89,0x7,0x3c,0x8,0x97,0x6, +0x34,0x3,0x1c,0x1,0xa4,0x1,0xee,0x1,0x5d,0xff,0x3b,0xfb, +0x8f,0xf8,0xa5,0xf8,0xa7,0xf9,0x8f,0xf8,0xd5,0xf5,0x3b,0xf5, +0x8c,0xf7,0xff,0xf9,0x3,0xfb,0x1,0xfb,0xbe,0xfb,0xf9,0xfe, +0xbe,0x2,0xfe,0x3,0xa,0x4,0xa6,0x5,0xaf,0x8,0xd5,0xb, +0x30,0xe,0x0,0xf,0x8,0xf,0x8a,0x10,0xaf,0x13,0xa6,0x15, +0xfe,0x14,0x6c,0x13,0x95,0x12,0x79,0x12,0x3a,0x12,0xca,0x10, +0xe,0xe,0x83,0xb,0x98,0xa,0xda,0xa,0x6d,0xa,0x76,0x8, +0xa9,0x6,0xf8,0x6,0x14,0x8,0x9b,0x7,0x3d,0x6,0xb0,0x5, +0x5,0x6,0x31,0x7,0x82,0x8,0x55,0x8,0xb3,0x7,0x2c,0x9, +0xe2,0xb,0x7f,0xd,0x54,0xe,0x5e,0xf,0x6c,0x10,0x93,0x11, +0xa4,0x12,0xcb,0x12,0x5b,0x12,0x37,0x12,0xf1,0x11,0x97,0x10, +0x46,0xe,0x18,0xc,0xc2,0xa,0xad,0x9,0x1c,0x8,0x39,0x6, +0x82,0x4,0x50,0x3,0x9f,0x2,0xfd,0x1,0xeb,0x0,0x76,0xff, +0x91,0xfe,0xa1,0xfe,0x3b,0xfe,0x9d,0xfc,0x1f,0xfb,0x66,0xfa, +0xcd,0xf9,0x17,0xf9,0x12,0xf8,0xb2,0xf6,0x20,0xf6,0xa,0xf7, +0x1b,0xf8,0xe1,0xf7,0xe4,0xf6,0xcf,0xf6,0xfa,0xf7,0xcf,0xf8, +0x2f,0xf8,0xd6,0xf6,0xa,0xf6,0x62,0xf6,0x4a,0xf7,0x26,0xf7, +0xa9,0xf5,0x9,0xf5,0xaa,0xf6,0xa2,0xf8,0xdf,0xf8,0xfd,0xf7, +0x8c,0xf7,0x49,0xf8,0xa8,0xf9,0xd2,0xf9,0x21,0xf8,0x8d,0xf6, +0x98,0xf6,0x50,0xf7,0xfe,0xf6,0x51,0xf5,0xfa,0xf3,0x7b,0xf4, +0xe1,0xf5,0x3a,0xf6,0x3f,0xf5,0x42,0xf4,0x31,0xf4,0xc6,0xf4, +0x46,0xf5,0xed,0xf4,0xe5,0xf3,0x75,0xf3,0xcf,0xf3,0x5,0xf4, +0x2d,0xf4,0xc9,0xf4,0xbb,0xf5,0xda,0xf6,0xa,0xf8,0x2d,0xf9, +0x48,0xfa,0x70,0xfb,0x92,0xfc,0x57,0xfd,0xdb,0xfd,0x53,0xfe, +0x62,0xfe,0x3a,0xfe,0x42,0xfe,0x16,0xfe,0x80,0xfd,0x9e,0xfc, +0xb4,0xfb,0x58,0xfb,0x5e,0xfb,0x15,0xfb,0x6a,0xfa,0xa4,0xf9, +0x4d,0xf9,0x74,0xf9,0x8e,0xf9,0x83,0xf9,0x9,0xf9,0x38,0xf8, +0x2c,0xf8,0xa6,0xf8,0x9c,0xf8,0x90,0xf8,0xe5,0xf8,0x29,0xf9, +0x72,0xf9,0xb,0xfa,0xca,0xfa,0x50,0xfb,0xe6,0xfb,0xf7,0xfc, +0xd6,0xfd,0x29,0xfe,0x7c,0xfe,0xa6,0xfe,0x81,0xfe,0x3e,0xfe, +0x72,0xfd,0x3d,0xfc,0x49,0xfb,0x7f,0xfa,0x7c,0xf9,0x36,0xf8, +0xff,0xf6,0x38,0xf6,0xad,0xf5,0xe8,0xf4,0x7,0xf4,0xa9,0xf3, +0xb,0xf4,0x85,0xf4,0x71,0xf4,0xf3,0xf3,0xaf,0xf3,0x74,0xf4, +0xe4,0xf5,0x5e,0xf6,0xd7,0xf5,0xf3,0xf5,0x3c,0xf7,0x9,0xf9, +0x94,0xfa,0x4f,0xfb,0xc1,0xfb,0xe8,0xfc,0x6f,0xfe,0x60,0xff, +0xb0,0xff,0xe0,0xff,0xf,0x0,0xe8,0xff,0x5f,0xff,0xe3,0xfe, +0x93,0xfe,0x30,0xfe,0xc2,0xfd,0x3b,0xfd,0x8a,0xfc,0x1a,0xfc, +0xd5,0xfb,0x18,0xfb,0x4d,0xfa,0x2a,0xfa,0x18,0xfa,0x69,0xf9, +0x78,0xf8,0xd0,0xf7,0xb6,0xf7,0x3,0xf8,0xfc,0xf7,0x81,0xf7, +0x7f,0xf7,0x65,0xf8,0x87,0xf9,0x28,0xfa,0x57,0xfa,0x7,0xfb, +0x9a,0xfc,0xd4,0xfd,0xfd,0xfd,0x24,0xfe,0x11,0xff,0x5d,0x0, +0x97,0x1,0x54,0x2,0x53,0x2,0x91,0x2,0x6,0x4,0x8e,0x5, +0xd5,0x5,0x91,0x5,0xc5,0x5,0x6a,0x6,0xfd,0x6,0xd2,0x6, +0xf7,0x5,0x51,0x5,0x2e,0x5,0x1a,0x5,0x88,0x4,0x59,0x3, +0x2f,0x2,0x9c,0x1,0x56,0x1,0xa2,0x0,0x65,0xff,0x8a,0xfe, +0x72,0xfe,0x5c,0xfe,0xe6,0xfd,0x3e,0xfd,0xf9,0xfc,0xc6,0xfd, +0xd5,0xfe,0x2,0xff,0x10,0xff,0x1e,0x0,0x33,0x2,0x58,0x4, +0x29,0x5,0x5,0x5,0xc9,0x5,0xa9,0x7,0x3b,0x9,0x96,0x9, +0xda,0x8,0x6,0x8,0xf2,0x7,0x9,0x8,0x1d,0x7,0x3b,0x5, +0xad,0x3,0x13,0x3,0xa3,0x2,0x5a,0x1,0x1d,0xff,0xfa,0xfc, +0xf4,0xfb,0xaa,0xfb,0x1b,0xfb,0xa,0xfa,0xcd,0xf8,0xed,0xf7, +0x1a,0xf8,0x47,0xf9,0x1e,0xfa,0xeb,0xf9,0xf1,0xf9,0x38,0xfb, +0xfb,0xfc,0x2b,0xfe,0x98,0xfe,0xf7,0xfe,0x30,0x0,0xe3,0x1, +0xdd,0x2,0x8,0x3,0x4a,0x3,0x4e,0x4,0x2,0x6,0x7f,0x7, +0xeb,0x7,0xc9,0x7,0x69,0x8,0xd5,0x9,0xd0,0xa,0xe9,0xa, +0xc0,0xa,0xa8,0xa,0x8a,0xa,0x64,0xa,0x56,0xa,0x51,0xa, +0xf1,0x9,0x46,0x9,0xe4,0x8,0xbe,0x8,0x6a,0x8,0xdd,0x7, +0x2c,0x7,0xca,0x6,0x5,0x7,0x2,0x7,0x1b,0x6,0x32,0x5, +0x45,0x5,0x22,0x6,0xb8,0x6,0x54,0x6,0xc9,0x5,0x2d,0x6, +0x1d,0x7,0xb0,0x7,0xb0,0x7,0x89,0x7,0x2f,0x8,0xc6,0x9, +0xe3,0xa,0xe5,0xa,0x1f,0xb,0x7e,0xc,0x4f,0xe,0x5e,0xf, +0x5a,0xf,0x47,0xf,0xee,0xf,0x76,0x10,0xe5,0xf,0x92,0xe, +0x1f,0xd,0xc8,0xb,0x9f,0xa,0x1d,0x9,0xcd,0x6,0x68,0x4, +0xaa,0x2,0x2d,0x1,0x78,0xff,0xa7,0xfd,0xe7,0xfb,0x53,0xfa, +0xf3,0xf8,0xa7,0xf7,0x78,0xf6,0xba,0xf5,0xa4,0xf5,0xe9,0xf5, +0x6b,0xf6,0x93,0xf7,0x74,0xf9,0x96,0xfb,0xc8,0xfd,0x4a,0x0, +0x20,0x3,0xc0,0x5,0xc3,0x7,0x2e,0x9,0x2b,0xa,0x2d,0xb, +0x28,0xc,0x31,0xc,0x58,0xb,0x70,0xa,0x68,0x9,0x54,0x8, +0x7b,0x7,0x2b,0x6,0x58,0x4,0x1e,0x3,0x68,0x2,0xf5,0x0, +0xaf,0xfe,0xf8,0xfc,0x50,0xfc,0xd3,0xfb,0x29,0xfb,0xa7,0xfa, +0x69,0xfa,0xc0,0xfa,0xec,0xfb,0x8e,0xfd,0xeb,0xfe,0x9f,0xff, +0x98,0x0,0xd1,0x2,0x3d,0x5,0x7e,0x6,0x8,0x7,0xe6,0x7, +0x58,0x9,0xea,0xa,0xd4,0xb,0x6a,0xb,0x18,0xa,0x88,0x9, +0x30,0xa,0x2a,0xa,0x59,0x8,0x1b,0x6,0x16,0x5,0x48,0x5, +0x36,0x5,0xdb,0x3,0x3d,0x2,0x17,0x2,0x79,0x3,0x96,0x4, +0x16,0x4,0x9,0x3,0x61,0x3,0x2a,0x5,0xa5,0x6,0xbc,0x6, +0x15,0x6,0x16,0x6,0x73,0x7,0x29,0x9,0x8f,0x9,0x18,0x9, +0xa1,0x9,0x22,0xb,0xf,0xc,0xec,0xb,0x49,0xb,0xaa,0xa, +0x4b,0xa,0xb2,0x9,0x0,0x8,0x96,0x5,0xc,0x4,0xc0,0x3, +0x89,0x3,0x9f,0x2,0x33,0x1,0x49,0x0,0xa4,0x0,0x49,0x1, +0xf5,0x0,0xb6,0xff,0x48,0xfe,0x75,0xfd,0x2a,0xfd,0x5a,0xfc, +0xbe,0xfa,0x41,0xf9,0xc1,0xf8,0xe4,0xf8,0x8d,0xf8,0xf9,0xf7, +0xf7,0xf7,0x58,0xf8,0x11,0xf9,0x8c,0xf9,0xa6,0xf8,0x86,0xf7, +0xac,0xf7,0xe8,0xf7,0xe9,0xf6,0x24,0xf5,0xc5,0xf3,0x7f,0xf3, +0xb7,0xf3,0x77,0xf3,0xc9,0xf2,0x63,0xf2,0xdc,0xf2,0xed,0xf3, +0x8f,0xf4,0x40,0xf4,0xdc,0xf3,0x8e,0xf4,0x9f,0xf5,0x81,0xf5, +0xc1,0xf4,0xd7,0xf4,0xb7,0xf5,0x75,0xf6,0x5a,0xf6,0xed,0xf5, +0x6f,0xf6,0xaf,0xf7,0xa0,0xf8,0xe2,0xf8,0x71,0xf8,0x13,0xf8, +0xb7,0xf8,0x85,0xf9,0x55,0xf9,0xc6,0xf8,0xba,0xf8,0xe5,0xf8, +0xcf,0xf8,0xa5,0xf8,0x95,0xf8,0x8a,0xf8,0x7c,0xf8,0x50,0xf8, +0xf8,0xf7,0xc4,0xf7,0xfe,0xf7,0x6b,0xf8,0xa4,0xf8,0x1,0xf9, +0xfe,0xf9,0xe9,0xfa,0x33,0xfb,0xb5,0xfb,0xdc,0xfc,0xf7,0xfd, +0xc2,0xfe,0x63,0xff,0xc7,0xff,0xfc,0xff,0x45,0x0,0xbd,0x0, +0x1e,0x1,0x16,0x1,0xce,0x0,0x76,0x0,0xe8,0xff,0x5a,0xff, +0xf2,0xfe,0x15,0xfe,0xb5,0xfc,0x89,0xfb,0x97,0xfa,0x85,0xf9, +0x44,0xf8,0x0,0xf7,0x75,0xf6,0xe3,0xf6,0x3a,0xf7,0x8,0xf7, +0x0,0xf7,0x89,0xf7,0xa9,0xf8,0xc6,0xf9,0x4,0xfa,0x1d,0xfa, +0x1d,0xfb,0x3a,0xfc,0x86,0xfc,0x89,0xfc,0xf,0xfd,0x4e,0xfe, +0xbe,0xff,0x6f,0x0,0x5f,0x0,0xab,0x0,0xa4,0x1,0x46,0x2, +0xe4,0x1,0xca,0x0,0xaa,0xff,0xd7,0xfe,0x88,0xfd,0x3b,0xfb, +0xb,0xf9,0xe0,0xf7,0x4b,0xf7,0xac,0xf6,0xa4,0xf5,0x74,0xf4, +0x40,0xf4,0x72,0xf5,0x80,0xf6,0xe,0xf6,0x1a,0xf5,0x27,0xf5, +0xde,0xf5,0x82,0xf6,0x6,0xf7,0x1b,0xf7,0x4,0xf7,0xec,0xf7, +0xd4,0xf9,0x75,0xfb,0x50,0xfc,0x3a,0xfd,0xe1,0xfe,0x96,0x0, +0x5b,0x1,0x4a,0x1,0x3f,0x1,0xbd,0x1,0x3c,0x2,0xee,0x1, +0xf7,0x0,0x1c,0x0,0x7,0x0,0xa8,0x0,0xf,0x1,0xdb,0x0, +0x76,0x0,0x34,0x0,0x82,0x0,0xf3,0x0,0x8e,0x0,0xe3,0xff, +0x91,0xff,0xec,0xfe,0xfd,0xfd,0x64,0xfd,0x2c,0xfd,0x1b,0xfd, +0xcf,0xfc,0xad,0xfc,0x89,0xfd,0x98,0xfe,0xe6,0xfe,0x2b,0xff, +0x2d,0x0,0xe4,0x1,0xcf,0x3,0xfa,0x4,0x37,0x5,0xbe,0x5, +0x56,0x7,0x38,0x9,0x49,0xa,0x48,0xa,0xd9,0x9,0x15,0xa, +0xe3,0xa,0xc5,0xa,0x6d,0x9,0x19,0x8,0x59,0x7,0xa6,0x6, +0x58,0x5,0x81,0x3,0xe8,0x1,0xd9,0x0,0xd,0x0,0x41,0xff, +0xf,0xfe,0x62,0xfc,0xab,0xfa,0x4f,0xf9,0x6a,0xf8,0x9a,0xf7, +0x7e,0xf6,0x6b,0xf5,0xe7,0xf4,0xa,0xf5,0x6e,0xf5,0xa6,0xf5, +0xd8,0xf5,0x64,0xf6,0x8d,0xf7,0x1a,0xf9,0x2c,0xfa,0x87,0xfa, +0xec,0xfa,0xd5,0xfb,0x34,0xfd,0x68,0xfe,0xd5,0xfe,0xec,0xfe, +0x31,0xff,0xb1,0xff,0x90,0x0,0x7e,0x1,0x1,0x2,0xee,0x1, +0x51,0x1,0xfd,0x0,0x34,0x1,0xbd,0x0,0x57,0xff,0xe2,0xfd, +0xa6,0xfc,0x9a,0xfb,0x71,0xfa,0xcb,0xf8,0x3a,0xf7,0x99,0xf6, +0xc8,0xf6,0xe9,0xf6,0xab,0xf6,0xa8,0xf6,0x64,0xf7,0x9d,0xf8, +0xa4,0xf9,0x45,0xfa,0x41,0xfb,0xe3,0xfc,0x8d,0xfe,0xf9,0xff, +0x57,0x1,0x11,0x3,0x95,0x5,0x64,0x8,0xd5,0xa,0x11,0xd, +0x1d,0xf,0xdd,0x10,0x8a,0x12,0x1c,0x14,0x57,0x15,0xc9,0x15, +0x4,0x15,0x8e,0x13,0x44,0x12,0xd,0x11,0x74,0xf,0x73,0xd, +0x23,0xb,0xc3,0x8,0xa9,0x6,0xc8,0x4,0x5,0x3,0xa3,0x1, +0xa9,0x0,0xad,0xff,0x60,0xfe,0xa,0xfd,0x79,0xfc,0xb4,0xfc, +0xee,0xfc,0x30,0xfd,0xfb,0xfd,0x28,0xff,0x8b,0x0,0x27,0x2, +0xf6,0x3,0x25,0x6,0x7b,0x8,0x57,0xa,0xb9,0xb,0x47,0xd, +0x19,0xf,0x35,0x10,0x1b,0x10,0xbc,0xf,0xec,0xf,0x31,0x10, +0xa7,0xf,0x2e,0xe,0x75,0xc,0xf,0xb,0x38,0xa,0x6b,0x9, +0x80,0x7,0x21,0x5,0x25,0x4,0xd8,0x3,0x87,0x2,0xaf,0x0, +0x80,0xff,0x24,0xff,0xfb,0xfe,0x74,0xfe,0x9c,0xfd,0xa6,0xfc, +0x4,0xfc,0x30,0xfc,0x8a,0xfc,0x91,0xfc,0xbf,0xfc,0x37,0xfd, +0xd6,0xfd,0xa1,0xfe,0xa6,0xff,0xf9,0x0,0x3f,0x2,0x2b,0x3, +0xde,0x3,0x31,0x4,0x3e,0x4,0x83,0x4,0xf2,0x4,0x73,0x5, +0xe4,0x5,0xf9,0x5,0xa,0x6,0x6b,0x6,0x17,0x7,0x3,0x8, +0x68,0x8,0xdd,0x7,0x2a,0x7,0xac,0x6,0x41,0x6,0xac,0x5, +0x82,0x4,0x42,0x3,0x3b,0x2,0xd8,0x0,0xab,0xff,0x31,0xff, +0x73,0xfe,0x8f,0xfd,0x6e,0xfd,0x95,0xfd,0x76,0xfd,0x92,0xfd, +0x4b,0xfe,0x14,0xff,0xa2,0xff,0xb6,0x0,0x1a,0x2,0xd9,0x2, +0xad,0x3,0xd,0x5,0x21,0x6,0x48,0x7,0xc0,0x8,0x8d,0x9, +0x12,0xa,0x2c,0xb,0x32,0xc,0x6e,0xc,0x4e,0xc,0x88,0xc, +0xcb,0xc,0x8b,0xc,0x44,0xc,0xf1,0xb,0x1c,0xb,0x98,0xa, +0x98,0xa,0xf5,0x9,0x9f,0x8,0x69,0x7,0xaf,0x6,0x3b,0x6, +0x9a,0x5,0xb4,0x4,0xa0,0x3,0xad,0x2,0x60,0x2,0x8e,0x2, +0xcc,0x2,0xda,0x2,0x59,0x2,0x16,0x2,0x14,0x3,0x6b,0x4, +0x2c,0x5,0xae,0x5,0x18,0x6,0x97,0x6,0x87,0x7,0x59,0x8, +0x66,0x8,0x64,0x8,0x12,0x9,0x6f,0x9,0xd0,0x8,0x3f,0x8, +0xea,0x7,0x34,0x7,0x37,0x6,0xa5,0x4,0x4f,0x2,0x32,0x0, +0xce,0xfe,0x92,0xfd,0xc7,0xfb,0xc2,0xf9,0xad,0xf8,0x38,0xf8, +0x54,0xf7,0xb1,0xf6,0xd7,0xf6,0xed,0xf6,0xb6,0xf6,0x81,0xf6, +0x37,0xf6,0xdd,0xf5,0xad,0xf5,0x92,0xf5,0x16,0xf5,0x4b,0xf4, +0x8,0xf4,0x68,0xf4,0xc1,0xf4,0xdc,0xf4,0x0,0xf5,0x8b,0xf5, +0x4c,0xf6,0xc6,0xf6,0x33,0xf7,0x72,0xf7,0xdd,0xf6,0x40,0xf6, +0x35,0xf6,0x93,0xf5,0x50,0xf4,0xa7,0xf3,0x95,0xf3,0x9b,0xf3, +0x93,0xf3,0x35,0xf3,0xd3,0xf2,0x3b,0xf3,0x68,0xf4,0x2a,0xf5, +0xa2,0xf4,0xc6,0xf3,0xa9,0xf3,0xed,0xf3,0xf4,0xf3,0x65,0xf3, +0xae,0xf2,0x27,0xf3,0x8b,0xf4,0x31,0xf5,0xde,0xf4,0x9a,0xf4, +0x90,0xf5,0xa9,0xf7,0xe3,0xf8,0x72,0xf8,0xd5,0xf7,0x3c,0xf8, +0x98,0xf9,0xc9,0xfa,0xa1,0xfa,0xaa,0xf9,0xaa,0xf9,0x56,0xfb, +0x14,0xfd,0x50,0xfd,0x11,0xfd,0x90,0xfd,0x87,0xfe,0x6d,0xff, +0x33,0xff,0xd4,0xfd,0x3d,0xfd,0x9c,0xfd,0x49,0xfd,0xfb,0xfb, +0xa2,0xfa,0x4e,0xfa,0xfb,0xfa,0x2d,0xfb,0x37,0xfa,0x38,0xf9, +0x6b,0xf9,0x82,0xfa,0x4,0xfb,0x74,0xfa,0xdd,0xf9,0x4c,0xfa, +0x98,0xfb,0x62,0xfc,0x5f,0xfc,0xdf,0xfc,0x32,0xfe,0x8f,0xff, +0x6b,0x0,0x98,0x0,0xfd,0x0,0x62,0x2,0x9d,0x3,0x71,0x3, +0x94,0x2,0x43,0x2,0x7b,0x2,0x8d,0x2,0x1d,0x2,0xe5,0x0, +0x5a,0xff,0x81,0xfe,0x8,0xfe,0xff,0xfc,0x69,0xfb,0x96,0xf9, +0xf0,0xf7,0xb0,0xf6,0x7d,0xf5,0x18,0xf4,0x90,0xf2,0x6d,0xf1, +0xf,0xf1,0xb7,0xf0,0xf9,0xef,0x5a,0xef,0x2f,0xef,0xaf,0xef, +0x7f,0xf0,0xdb,0xf0,0xf3,0xf0,0x54,0xf1,0x4c,0xf2,0xb4,0xf3, +0xb3,0xf4,0x63,0xf5,0xc0,0xf6,0xb1,0xf8,0x6b,0xfa,0x8a,0xfb, +0x80,0xfc,0xef,0xfd,0x61,0xff,0x39,0x0,0xa7,0x0,0xda,0x0, +0x4,0x1,0x30,0x1,0x16,0x1,0xae,0x0,0x16,0x0,0xc1,0xff, +0xdf,0xff,0xb2,0xff,0x2c,0xff,0xdc,0xfe,0x74,0xfe,0xaa,0xfd, +0xc1,0xfc,0x20,0xfc,0xf5,0xfb,0xa8,0xfb,0xe3,0xfa,0x2d,0xfa, +0xee,0xf9,0x79,0xfa,0x75,0xfb,0xed,0xfb,0x32,0xfc,0x2d,0xfd, +0xdf,0xfe,0xd8,0x0,0x8c,0x2,0xe5,0x3,0x6a,0x5,0x32,0x7, +0xce,0x8,0xd7,0x9,0xa7,0xa,0x6,0xc,0x76,0xd,0xfd,0xd, +0xee,0xd,0xf8,0xd,0x96,0xe,0xa7,0xf,0xdd,0xf,0xe8,0xe, +0x6,0xe,0x88,0xd,0xef,0xc,0xf1,0xb,0x33,0xa,0x34,0x8, +0xab,0x6,0xdc,0x4,0x42,0x2,0xc7,0xff,0xe9,0xfd,0x5c,0xfc, +0xce,0xfa,0x3,0xf9,0x63,0xf7,0x9b,0xf6,0x73,0xf6,0x65,0xf6, +0x6f,0xf6,0xd7,0xf6,0xa8,0xf7,0x67,0xf8,0xfb,0xf8,0xff,0xf9, +0x39,0xfb,0xcb,0xfb,0xf7,0xfb,0x85,0xfc,0x68,0xfd,0x50,0xfe, +0xa,0xff,0x32,0xff,0x2a,0xff,0x9,0x0,0x5a,0x1,0xa3,0x1, +0xfb,0x0,0x85,0x0,0x8a,0x0,0x5e,0x0,0x49,0xff,0xbc,0xfd, +0xc2,0xfc,0x41,0xfc,0x85,0xfb,0x6e,0xfa,0x4c,0xf9,0x9c,0xf8, +0x85,0xf8,0xa3,0xf8,0xb5,0xf8,0xdd,0xf8,0x1a,0xf9,0x25,0xf9, +0x15,0xf9,0x5e,0xf9,0xf1,0xf9,0x59,0xfa,0x62,0xfa,0x2e,0xfa, +0x68,0xfa,0x6f,0xfb,0xa0,0xfc,0x88,0xfd,0x75,0xfe,0xcc,0xff, +0x84,0x1,0xa,0x3,0x34,0x4,0x67,0x5,0x7f,0x6,0x49,0x7, +0xe1,0x7,0x5c,0x8,0x17,0x9,0x1,0xa,0x6d,0xa,0xb9,0xa, +0xb5,0xb,0x27,0xd,0x4a,0xe,0x92,0xe,0x75,0xe,0xe2,0xe, +0x54,0xf,0xb7,0xe,0x5a,0xd,0x11,0xc,0x15,0xb,0x2d,0xa, +0xe9,0x8,0x2f,0x7,0xe5,0x5,0xeb,0x5,0x5c,0x6,0xd4,0x5, +0xec,0x4,0xf2,0x4,0xed,0x5,0xfc,0x6,0xa,0x7,0x6d,0x6, +0xc5,0x6,0xda,0x7,0x5f,0x8,0xad,0x8,0x4f,0x9,0x37,0xa, +0x7c,0xb,0x8c,0xc,0xcc,0xc,0xf8,0xc,0xe7,0xd,0x10,0xf, +0x9,0xf,0x9f,0xd,0x3e,0xc,0x91,0xb,0xb8,0xa,0xe8,0x8, +0x85,0x6,0x81,0x4,0xde,0x2,0x26,0x1,0x57,0xff,0x1c,0xfd, +0xb2,0xfa,0x50,0xf9,0x9a,0xf8,0x5d,0xf7,0xe4,0xf5,0xed,0xf4, +0xd5,0xf4,0x70,0xf5,0xdf,0xf5,0xeb,0xf5,0x38,0xf6,0x1f,0xf7, +0x9b,0xf8,0x7d,0xfa,0x52,0xfc,0x84,0xfd,0x5a,0xfe,0x10,0x0, +0x33,0x2,0xfc,0x2,0xe1,0x2,0x5a,0x3,0x33,0x4,0xc4,0x4, +0x7c,0x4,0x17,0x3,0x1,0x2,0x82,0x2,0x5e,0x3,0xe4,0x2, +0x74,0x1,0x7d,0x0,0xd3,0x0,0x2,0x2,0x1f,0x2,0x57,0x0, +0xc,0xff,0x2,0x0,0x5c,0x1,0x0,0x1,0x92,0xff,0x43,0xff, +0xfe,0x0,0xf7,0x2,0x47,0x3,0xd1,0x2,0x5a,0x3,0x38,0x5, +0x8d,0x7,0xca,0x8,0x62,0x8,0x5e,0x8,0x20,0xa,0xb7,0xb, +0xb4,0xb,0x74,0xb,0x17,0xc,0x6e,0xd,0xdd,0xe,0x67,0xf, +0x34,0xf,0xb0,0xf,0xb,0x11,0xfe,0x11,0xff,0x11,0xaa,0x11, +0x85,0x11,0x87,0x11,0x67,0x11,0xd3,0x10,0xe3,0xf,0xfa,0xe, +0x3a,0xe,0xc1,0xd,0x46,0xd,0xf5,0xb,0xf8,0x9,0x6c,0x8, +0xb2,0x7,0x16,0x7,0xc2,0x5,0xea,0x3,0x43,0x2,0xc,0x1, +0x95,0x0,0x46,0x0,0xf9,0xfe,0xe2,0xfd,0x6d,0xfe,0x53,0xff, +0x63,0xff,0x14,0xff,0x65,0xff,0xe1,0x0,0x54,0x2,0x1b,0x2, +0xe7,0x0,0xa7,0x0,0xb5,0x1,0x9d,0x2,0x35,0x2,0xd8,0x0, +0xd3,0xff,0x31,0x0,0xf8,0x0,0x3b,0x0,0x65,0xfe,0x9,0xfd, +0x26,0xfc,0xe4,0xfa,0xac,0xf8,0xd,0xf6,0x2e,0xf4,0xaf,0xf2, +0xb4,0xf0,0x7a,0xee,0x96,0xec,0xa3,0xeb,0x89,0xeb,0x74,0xeb, +0x70,0xeb,0xeb,0xeb,0xf7,0xec,0x8b,0xee,0x9,0xf0,0xe,0xf1, +0xfe,0xf1,0xce,0xf2,0x64,0xf3,0x44,0xf4,0x8e,0xf5,0xd2,0xf6, +0xb5,0xf7,0x69,0xf8,0x94,0xf9,0x75,0xfb,0x51,0xfd,0x5f,0xfe, +0x2,0xff,0xf6,0xff,0xda,0x0,0xe7,0x0,0x1e,0x0,0x28,0xff, +0xb9,0xfe,0x8f,0xfe,0xbb,0xfd,0x59,0xfc,0x7c,0xfb,0xa0,0xfb, +0x54,0xfc,0xc7,0xfc,0x9f,0xfc,0x77,0xfc,0xd6,0xfc,0x25,0xfd, +0xc5,0xfc,0x39,0xfc,0x3,0xfc,0xc1,0xfb,0x18,0xfb,0x48,0xfa, +0xd0,0xf9,0x7,0xfa,0xc9,0xfa,0x71,0xfb,0xb4,0xfb,0x3b,0xfc, +0x4c,0xfd,0xdc,0xfd,0xa3,0xfd,0x78,0xfd,0x58,0xfd,0xdd,0xfc, +0x17,0xfc,0x1e,0xfb,0x53,0xfa,0xff,0xf9,0xd7,0xf9,0xa8,0xf9, +0x6f,0xf9,0x6d,0xf9,0x1c,0xfa,0x23,0xfb,0xb9,0xfb,0xc9,0xfb, +0xbf,0xfb,0xc9,0xfb,0xb4,0xfb,0x67,0xfb,0xfe,0xfa,0x4e,0xfa, +0x63,0xf9,0xa3,0xf8,0x11,0xf8,0x6d,0xf7,0xd6,0xf6,0x9d,0xf6, +0xb0,0xf6,0xa8,0xf6,0x6a,0xf6,0xf9,0xf5,0x8a,0xf5,0xb8,0xf5, +0x3d,0xf6,0x9,0xf6,0x2d,0xf5,0xbf,0xf4,0x4a,0xf5,0x37,0xf6, +0xb9,0xf6,0xf7,0xf6,0x79,0xf7,0x70,0xf8,0xbf,0xf9,0xcd,0xfa, +0x55,0xfb,0x9,0xfc,0x51,0xfd,0x9b,0xfe,0xf3,0xfe,0x44,0xfe, +0xe2,0xfd,0x83,0xfe,0x30,0xff,0xe8,0xfe,0x8e,0xfd,0x4,0xfc, +0x89,0xfb,0xe0,0xfb,0x9b,0xfb,0x39,0xfa,0xb9,0xf8,0x40,0xf8, +0xab,0xf8,0xec,0xf8,0x70,0xf8,0x95,0xf7,0x6e,0xf7,0x6b,0xf8, +0x3d,0xf9,0xf9,0xf8,0xd2,0xf8,0xd3,0xf9,0x51,0xfb,0x61,0xfc, +0xdf,0xfc,0x6a,0xfd,0xf6,0xfe,0x33,0x1,0x83,0x2,0xa7,0x2, +0xe4,0x2,0xc9,0x3,0xe0,0x4,0x50,0x5,0xa6,0x4,0xda,0x3, +0xc6,0x3,0xaa,0x3,0xd4,0x2,0xa6,0x1,0xa9,0x0,0x49,0x0, +0x65,0x0,0x1,0x0,0xa,0xff,0xc0,0xfe,0x53,0xff,0xaf,0xff, +0x7d,0xff,0xe,0xff,0xaf,0xfe,0xd7,0xfe,0x90,0xff,0x4,0x0, +0xbc,0xff,0x72,0xff,0xd9,0xff,0x9f,0x0,0x49,0x1,0x6a,0x1, +0xc1,0x0,0x60,0x0,0x20,0x1,0xc5,0x1,0x4c,0x1,0x3d,0x0, +0x7f,0xff,0xa0,0xff,0xfb,0xff,0x70,0xff,0x3c,0xfe,0x60,0xfd, +0x8f,0xfd,0x67,0xfe,0x52,0xfe,0x1a,0xfd,0x6f,0xfc,0x23,0xfd, +0x6b,0xfe,0x1f,0xff,0xf6,0xfe,0xc8,0xfe,0x44,0xff,0x51,0x0, +0x32,0x1,0x2c,0x1,0xc5,0x0,0xe8,0x0,0x6c,0x1,0xbf,0x1, +0x89,0x1,0x4,0x1,0xd3,0x0,0xc,0x1,0x77,0x1,0xc0,0x1, +0x60,0x1,0xe6,0x0,0x3e,0x1,0xec,0x1,0xf1,0x1,0xfc,0x0, +0xd8,0xff,0xdb,0xff,0xb4,0x0,0xe4,0x0,0x39,0x0,0x8a,0xff, +0xb2,0xff,0x22,0x1,0xee,0x2,0xa9,0x3,0xa6,0x3,0x92,0x4, +0xb1,0x6,0x69,0x8,0xd8,0x8,0xbd,0x8,0x37,0x9,0xa3,0xa, +0xe0,0xb,0xbc,0xb,0x15,0xb,0x32,0xb,0xf7,0xb,0xdc,0xc, +0x2c,0xd,0xba,0xc,0xbb,0xc,0x92,0xd,0xf0,0xd,0x18,0xd, +0xa6,0xb,0xa8,0xa,0x68,0xa,0xf4,0x9,0x79,0x8,0x57,0x6, +0xda,0x4,0x9f,0x4,0x87,0x4,0xb4,0x3,0xb4,0x2,0x15,0x2, +0x24,0x2,0x94,0x2,0x68,0x2,0xbd,0x1,0x5b,0x1,0x56,0x1, +0x7b,0x1,0x3c,0x1,0x6a,0x0,0x15,0x0,0xbb,0x0,0x8b,0x1, +0xe6,0x1,0xdb,0x1,0xdb,0x1,0x29,0x2,0xa6,0x2,0xec,0x2, +0x96,0x2,0xf0,0x1,0x8c,0x1,0x7d,0x1,0x6c,0x1,0x9c,0x0, +0x29,0xff,0x68,0xfe,0x54,0xfe,0xba,0xfd,0x97,0xfc,0x85,0xfb, +0xcb,0xfa,0xac,0xfa,0x14,0xfb,0x2a,0xfb,0x76,0xfa,0x36,0xfa, +0x47,0xfb,0x77,0xfc,0x3a,0xfd,0xe9,0xfd,0x4f,0xfe,0xa7,0xfe, +0xcb,0xfe,0x6e,0xfe,0xce,0xfe,0x9,0x0,0x90,0x0,0x65,0x0, +0x40,0x0,0x56,0x0,0xf6,0x0,0xe0,0x1,0x50,0x2,0x28,0x2, +0x15,0x2,0x5b,0x2,0x1d,0x2,0x2d,0x1,0xb9,0x0,0x3c,0x1, +0xb1,0x1,0x11,0x1,0x14,0x0,0x2b,0x0,0x37,0x1,0x8c,0x2, +0x79,0x3,0x6d,0x3,0xd1,0x3,0x6d,0x5,0x51,0x6,0x13,0x6, +0x33,0x6,0xba,0x6,0xea,0x6,0x6b,0x6,0x59,0x5,0xac,0x4, +0x53,0x5,0xb0,0x6,0xc,0x7,0x96,0x6,0x39,0x7,0xe6,0x8, +0x48,0xa,0xc4,0xa,0x24,0xa,0xce,0x9,0x26,0xb,0x60,0xc, +0xc2,0xb,0x6d,0xa,0x5,0xa,0xbc,0xa,0x60,0xb,0x29,0xb, +0xb5,0xa,0x6b,0xa,0x50,0xa,0x6b,0xa,0x14,0xa,0xde,0x8, +0xac,0x7,0x6c,0x7,0x91,0x7,0xbc,0x6,0xf6,0x4,0xbc,0x3, +0xaa,0x3,0x14,0x4,0x59,0x4,0x20,0x4,0x54,0x3,0xe7,0x2, +0xdb,0x3,0x40,0x5,0x6d,0x5,0xa5,0x4,0x77,0x4,0x88,0x5, +0xa5,0x6,0x6e,0x6,0x91,0x5,0x8a,0x5,0x3c,0x6,0xa0,0x6, +0x12,0x6,0xcb,0x4,0xfb,0x3,0x10,0x4,0xa2,0x3,0xa9,0x1, +0x4c,0xff,0xd8,0xfd,0x8,0xfd,0xe9,0xfb,0xcb,0xf9,0x57,0xf7, +0x1e,0xf6,0xbd,0xf5,0xc7,0xf4,0x86,0xf3,0xa4,0xf2,0x5b,0xf2, +0xc0,0xf2,0x5,0xf3,0xdf,0xf2,0x40,0xf3,0x79,0xf4,0xd7,0xf5, +0xac,0xf6,0x37,0xf7,0x10,0xf8,0xff,0xf8,0xd9,0xf9,0xa4,0xfa, +0x18,0xfb,0x75,0xfb,0xe5,0xfb,0x3c,0xfc,0xaa,0xfc,0xbe,0xfc, +0x57,0xfc,0x62,0xfc,0xd6,0xfc,0x2c,0xfd,0x2c,0xfd,0x7c,0xfc, +0xca,0xfb,0xe9,0xfb,0x7a,0xfc,0xba,0xfc,0x24,0xfc,0x7d,0xfb, +0x6,0xfc,0xf0,0xfc,0xea,0xfc,0x21,0xfc,0x94,0xfb,0x39,0xfc, +0x7c,0xfd,0xae,0xfd,0x72,0xfc,0xf9,0xfa,0x85,0xfa,0xc3,0xfa, +0x53,0xfa,0x8,0xf9,0xae,0xf7,0xd,0xf7,0x52,0xf7,0x67,0xf7, +0x5,0xf7,0x36,0xf7,0xa,0xf8,0x35,0xf9,0x52,0xfa,0x8e,0xfa, +0x9c,0xfa,0xa1,0xfb,0x27,0xfd,0x8a,0xfe,0x9b,0xff,0x44,0x0, +0xe8,0x0,0xef,0x1,0x26,0x3,0x4,0x4,0x89,0x4,0x4,0x5, +0x38,0x5,0xc,0x5,0x98,0x4,0xb7,0x3,0xca,0x2,0xc2,0x1, +0xe5,0xff,0xd5,0xfd,0x62,0xfc,0xc,0xfb,0x92,0xf9,0x2f,0xf8, +0x12,0xf7,0x7c,0xf6,0x40,0xf6,0xe0,0xf5,0x1e,0xf5,0x41,0xf4, +0x17,0xf4,0x9e,0xf4,0xc2,0xf4,0x65,0xf4,0x9f,0xf4,0xb8,0xf5, +0xc8,0xf6,0x62,0xf7,0xfc,0xf7,0xf1,0xf8,0x37,0xfa,0x29,0xfb, +0x26,0xfb,0xf5,0xfa,0xa5,0xfb,0xd2,0xfc,0xa1,0xfd,0xc0,0xfd, +0x5f,0xfd,0x46,0xfd,0xb9,0xfd,0xd1,0xfd,0x30,0xfd,0xb3,0xfc, +0xc7,0xfc,0xe2,0xfc,0x99,0xfc,0xed,0xfb,0x65,0xfb,0xd2,0xfb, +0xcc,0xfc,0xe,0xfd,0x9e,0xfc,0x52,0xfc,0x68,0xfc,0xe9,0xfc, +0x79,0xfd,0xd,0xfd,0xb5,0xfb,0xda,0xfa,0xc7,0xfa,0x7d,0xfa, +0xb3,0xf9,0xb8,0xf8,0xe6,0xf7,0xdb,0xf7,0x74,0xf8,0xd5,0xf8, +0x5,0xf9,0xd6,0xf9,0xb5,0xfb,0xf0,0xfd,0x5f,0xff,0x41,0x0, +0xdc,0x1,0x50,0x4,0x90,0x6,0x1,0x8,0x1a,0x9,0x82,0xa, +0x3f,0xc,0xf4,0xd,0xe5,0xe,0xd5,0xe,0xd3,0xe,0x1a,0xf, +0x6b,0xe,0xaf,0xc,0xb9,0xa,0xde,0x8,0x1a,0x7,0x7c,0x4, +0x4e,0x0,0x3d,0xfc,0xde,0xf9,0x1f,0xf8,0xd3,0xf5,0x6f,0xf3, +0x70,0xf1,0x33,0xf0,0x45,0xf0,0xf2,0xf0,0x38,0xf1,0xe4,0xf1, +0xc0,0xf3,0x12,0xf6,0x1e,0xf8,0xc7,0xf9,0xae,0xfb,0xc3,0xfe, +0x51,0x2,0xb8,0x4,0xfb,0x5,0x22,0x7,0xd3,0x8,0xa,0xb, +0xb3,0xc,0xa4,0xc,0x67,0xb,0x79,0xa,0x3f,0xa,0xb6,0x9, +0xe5,0x7,0x19,0x5,0x7b,0x2,0xcc,0x0,0x7f,0xff,0x49,0xfd, +0x45,0xfa,0x20,0xf8,0x92,0xf7,0xa0,0xf7,0x26,0xf7,0xe6,0xf5, +0x14,0xf5,0x25,0xf6,0x6f,0xf8,0x1b,0xfa,0xcf,0xfa,0x99,0xfb, +0x62,0xfd,0x16,0x0,0x61,0x2,0x19,0x3,0x3b,0x3,0x97,0x4, +0xa7,0x6,0x9a,0x7,0x3f,0x7,0x64,0x6,0xd,0x6,0xe,0x7, +0x2c,0x8,0xb4,0x7,0x7a,0x6,0x7,0x6,0x92,0x6,0x82,0x7, +0x97,0x7,0x45,0x6,0xfe,0x4,0x29,0x5,0xc,0x6,0x3d,0x6, +0xcd,0x5,0xae,0x5,0x5b,0x6,0xba,0x7,0xba,0x8,0x75,0x8, +0x15,0x8,0xbe,0x8,0x8b,0x9,0x4b,0x9,0xcc,0x7,0xff,0x5, +0x22,0x5,0xa7,0x4,0x2a,0x3,0x18,0x1,0xeb,0xff,0xff,0xff, +0x80,0x0,0x74,0x0,0xa1,0xff,0xa,0xff,0x26,0x0,0x77,0x2, +0xd6,0x3,0x1a,0x4,0xfd,0x4,0xbe,0x6,0x62,0x8,0x90,0x9, +0x85,0xa,0x85,0xb,0xb4,0xc,0xf8,0xd,0xe8,0xe,0x14,0xf, +0xa5,0xe,0x3a,0xe,0xcf,0xd,0x97,0xc,0x49,0xa,0x90,0x7, +0xf3,0x4,0x7e,0x2,0x2a,0x0,0xa9,0xfd,0x8c,0xfa,0x3b,0xf7, +0x6,0xf5,0x74,0xf4,0x25,0xf4,0xf9,0xf2,0xed,0xf1,0x19,0xf2, +0x38,0xf3,0x87,0xf4,0x64,0xf5,0x22,0xf6,0xd0,0xf7,0x4e,0xfa, +0x6c,0xfc,0xb5,0xfd,0xd8,0xfe,0xaa,0x0,0xfb,0x2,0x93,0x4, +0xc0,0x4,0x7f,0x4,0xd,0x5,0xf6,0x5,0x17,0x6,0x3d,0x5, +0xef,0x3,0xec,0x2,0x2a,0x2,0xc6,0x0,0xf3,0xfe,0x54,0xfd, +0xd6,0xfb,0xb3,0xfa,0xae,0xf9,0x55,0xf8,0xa2,0xf7,0x13,0xf8, +0xca,0xf8,0x62,0xf9,0xdf,0xf9,0x9e,0xfa,0x11,0xfc,0xde,0xfd, +0xa3,0xff,0x3b,0x1,0x8d,0x2,0x9,0x4,0xb0,0x5,0x17,0x7, +0x4c,0x8,0x47,0x9,0xc,0xa,0xc6,0xa,0x59,0xb,0xc8,0xb, +0xee,0xb,0xb3,0xb,0x9d,0xb,0xa2,0xb,0x65,0xb,0x1b,0xb, +0xa4,0xa,0xde,0x9,0x40,0x9,0x17,0x9,0x3c,0x9,0x15,0x9, +0x75,0x8,0x1f,0x8,0x5f,0x8,0xd8,0x8,0x47,0x9,0x7a,0x9, +0xa5,0x9,0xfd,0x9,0x54,0xa,0x84,0xa,0x49,0xa,0xc5,0x9, +0x6d,0x9,0xed,0x8,0xf,0x8,0x2f,0x7,0x55,0x6,0xd8,0x5, +0xca,0x5,0x5a,0x5,0x86,0x4,0x24,0x4,0x64,0x4,0xb9,0x4, +0x80,0x4,0xb1,0x3,0xce,0x2,0x84,0x2,0x16,0x3,0x74,0x3, +0xc6,0x2,0xf5,0x1,0xd8,0x1,0x64,0x2,0x32,0x3,0x41,0x3, +0x72,0x2,0x4,0x2,0x4a,0x2,0x32,0x2,0xf5,0x0,0xff,0xfe, +0x70,0xfd,0xca,0xfc,0x2a,0xfc,0x7c,0xfa,0x6c,0xf8,0x65,0xf7, +0x1a,0xf7,0xa3,0xf6,0xf0,0xf5,0xf1,0xf4,0x30,0xf4,0xa0,0xf4, +0x6d,0xf5,0x38,0xf5,0x73,0xf4,0x66,0xf4,0x51,0xf5,0x51,0xf6, +0xbe,0xf6,0x0,0xf7,0xc8,0xf7,0x37,0xf9,0xf0,0xfa,0xa8,0xfc, +0x3d,0xfe,0x5f,0xff,0x28,0x0,0x1d,0x1,0xee,0x1,0x2,0x2, +0x82,0x1,0xd3,0x0,0x2a,0x0,0x80,0xff,0xb1,0xfe,0xb5,0xfd, +0x80,0xfc,0x4a,0xfb,0x81,0xfa,0xf4,0xf9,0x1f,0xf9,0xf4,0xf7, +0x2,0xf7,0xe4,0xf6,0xfb,0xf6,0x30,0xf6,0x61,0xf5,0xe8,0xf5, +0x8,0xf7,0x99,0xf7,0xbe,0xf7,0xe0,0xf7,0xbc,0xf8,0xf0,0xfa, +0xfc,0xfc,0x50,0xfd,0x35,0xfd,0x61,0xfe,0xa1,0x0,0xb9,0x2, +0x36,0x3,0x55,0x2,0x8e,0x2,0x8d,0x4,0xa,0x6,0xd9,0x5, +0x3,0x5,0xa0,0x4,0xe6,0x4,0xd5,0x4,0x22,0x3,0x9d,0x0, +0x6c,0xff,0x76,0xff,0xcc,0xfe,0xbd,0xfc,0x3a,0xfa,0xbb,0xf8, +0xbf,0xf8,0xca,0xf8,0x87,0xf7,0xde,0xf5,0x1b,0xf5,0x24,0xf5, +0x43,0xf5,0xd1,0xf4,0xb5,0xf3,0xf7,0xf2,0x67,0xf3,0xec,0xf3, +0x6d,0xf3,0xd2,0xf2,0x3e,0xf3,0x97,0xf4,0x8,0xf6,0x9d,0xf6, +0x83,0xf6,0x4,0xf7,0x8c,0xf8,0x42,0xfa,0x2e,0xfb,0x0,0xfb, +0x8e,0xfa,0x16,0xfb,0x5e,0xfc,0x9f,0xfc,0x5f,0xfb,0x84,0xfa, +0xde,0xfa,0x10,0xfb,0x54,0xfa,0xd5,0xf8,0x5d,0xf7,0x1,0xf7, +0xef,0xf6,0x97,0xf5,0x93,0xf3,0x1c,0xf2,0x85,0xf1,0xa4,0xf1, +0x94,0xf1,0xe8,0xf0,0xbc,0xf0,0xc3,0xf1,0x1c,0xf3,0x6,0xf4, +0x1,0xf5,0xa3,0xf6,0x94,0xf8,0x23,0xfa,0x15,0xfb,0xec,0xfb, +0x20,0xfd,0x7d,0xfe,0xc3,0xff,0xcd,0x0,0x6d,0x1,0x20,0x2, +0x4c,0x3,0x7d,0x4,0x54,0x5,0xb3,0x5,0xab,0x5,0x9c,0x5, +0x9e,0x5,0x8b,0x5,0x15,0x5,0x5,0x4,0x2d,0x3,0x3a,0x3, +0x5f,0x3,0xc4,0x2,0x93,0x1,0xc1,0x0,0x46,0x1,0x72,0x2, +0xc0,0x2,0x62,0x2,0x79,0x2,0x2f,0x3,0x2a,0x4,0xe5,0x4, +0xe0,0x4,0xe1,0x4,0xc8,0x5,0x94,0x6,0x7b,0x6,0x66,0x6, +0xd9,0x6,0x55,0x7,0x5a,0x7,0x98,0x6,0xbc,0x5,0xd7,0x5, +0x8a,0x6,0x95,0x6,0xd0,0x5,0x33,0x5,0x64,0x5,0xfd,0x5, +0x2b,0x6,0x9a,0x5,0x1e,0x5,0xb6,0x5,0x9e,0x6,0x89,0x6, +0xb9,0x5,0x24,0x5,0x8e,0x5,0xbd,0x6,0x1b,0x7,0x17,0x6, +0xff,0x4,0xb6,0x4,0xd,0x5,0x32,0x5,0x34,0x4,0x59,0x2, +0xd9,0x0,0x11,0x0,0x28,0xff,0x77,0xfd,0x98,0xfb,0x5c,0xfa, +0xbe,0xf9,0x18,0xf9,0xdd,0xf7,0xca,0xf6,0x12,0xf7,0x1b,0xf8, +0xa2,0xf8,0x94,0xf8,0x6c,0xf8,0xe5,0xf8,0x66,0xfa,0xc3,0xfb, +0xd7,0xfb,0x7c,0xfb,0x14,0xfc,0x81,0xfd,0xb3,0xfe,0x10,0xff, +0xf4,0xfe,0x4e,0xff,0x74,0x0,0x78,0x1,0xa4,0x1,0x6f,0x1, +0x63,0x1,0xaa,0x1,0xf8,0x1,0x98,0x1,0xc1,0x0,0x85,0x0, +0xdb,0x0,0xdc,0x0,0x56,0x0,0xd7,0xff,0xe0,0xff,0x99,0x0, +0xa7,0x1,0x36,0x2,0x0,0x2,0x0,0x2,0xed,0x2,0x13,0x4, +0x88,0x4,0x44,0x4,0xe4,0x3,0x12,0x4,0xb7,0x4,0x8,0x5, +0xcb,0x4,0xb3,0x4,0x31,0x5,0xfa,0x5,0x97,0x6,0xbd,0x6, +0xc3,0x6,0x8b,0x7,0x5,0x9,0x12,0xa,0x41,0xa,0x23,0xa, +0x42,0xa,0xb4,0xa,0x7,0xb,0xba,0xa,0xe4,0x9,0x1c,0x9, +0xac,0x8,0x1c,0x8,0xc,0x7,0xe9,0x5,0xf,0x5,0x6b,0x4, +0xd9,0x3,0x1e,0x3,0x37,0x2,0x83,0x1,0x11,0x1,0xa8,0x0, +0x2a,0x0,0x9b,0xff,0x3c,0xff,0x9,0xff,0xbd,0xfe,0x93,0xfe, +0xc8,0xfe,0x2b,0xff,0x96,0xff,0xe3,0xff,0x2b,0x0,0xdd,0x0, +0xe1,0x1,0xb3,0x2,0x29,0x3,0x6d,0x3,0xc8,0x3,0x47,0x4, +0x6d,0x4,0xce,0x3,0xe2,0x2,0x69,0x2,0x13,0x2,0x29,0x1, +0xed,0xff,0xb3,0xfe,0x91,0xfd,0xef,0xfc,0x77,0xfc,0x93,0xfb, +0xc3,0xfa,0x73,0xfa,0x57,0xfa,0x76,0xfa,0xce,0xfa,0xec,0xfa, +0xd1,0xfa,0x43,0xfb,0xa1,0xfc,0x1a,0xfe,0x2a,0xff,0x4d,0x0, +0xa9,0x1,0x1d,0x3,0xc8,0x4,0x54,0x6,0x36,0x7,0xc8,0x7, +0xe8,0x8,0x53,0xa,0xb0,0xa,0xf5,0x9,0x73,0x9,0x93,0x9, +0xdc,0x9,0xdf,0x9,0x7a,0x9,0x41,0x9,0xad,0x9,0x6c,0xa, +0x26,0xb,0xe2,0xb,0xef,0xc,0x6,0xe,0x69,0xe,0x97,0xe, +0x78,0xf,0x96,0x10,0x32,0x11,0x9,0x11,0x6f,0x10,0x2a,0x10, +0x4d,0x10,0x64,0x10,0xe,0x10,0xed,0xe,0xb8,0xd,0x2b,0xd, +0x54,0xc,0xb2,0xa,0x29,0x9,0x19,0x8,0xe3,0x6,0xb,0x5, +0x2b,0x3,0x14,0x2,0x3f,0x1,0x24,0x0,0x3e,0xff,0xda,0xfe, +0xbc,0xfe,0x97,0xfe,0x78,0xfe,0xa5,0xfe,0x8,0xff,0x96,0xff, +0x1b,0x0,0xf,0x0,0xee,0xff,0x4d,0x0,0x89,0x0,0x26,0x0, +0x59,0xff,0xce,0xfe,0x2,0xff,0xcd,0xfe,0x43,0xfd,0x9a,0xfb, +0xc5,0xfa,0x57,0xfa,0xa2,0xf9,0x27,0xf8,0x4b,0xf6,0xdb,0xf4, +0xe3,0xf3,0xfc,0xf2,0xbc,0xf1,0x4b,0xf0,0x6d,0xef,0x20,0xef, +0xdb,0xee,0xa3,0xee,0xab,0xee,0x1f,0xef,0x3,0xf0,0xc,0xf1, +0x11,0xf2,0xfc,0xf2,0xe3,0xf3,0x26,0xf5,0x9e,0xf6,0xbd,0xf7, +0x6d,0xf8,0xec,0xf8,0x97,0xf9,0xb5,0xfa,0xee,0xfb,0xa2,0xfc, +0xd3,0xfc,0x46,0xfd,0x50,0xfe,0x3e,0xff,0x75,0xff,0x31,0xff, +0x1d,0xff,0x9f,0xff,0x11,0x0,0x91,0xff,0x91,0xfe,0x14,0xfe, +0x25,0xfe,0x3b,0xfe,0xf0,0xfd,0x57,0xfd,0xe7,0xfc,0xde,0xfc, +0x7,0xfd,0xf,0xfd,0xaa,0xfc,0x7,0xfc,0xc4,0xfb,0xe6,0xfb, +0xd2,0xfb,0x6e,0xfb,0x32,0xfb,0x4f,0xfb,0x80,0xfb,0xa4,0xfb, +0x0,0xfc,0xbb,0xfc,0xa0,0xfd,0x91,0xfe,0x6c,0xff,0xf3,0xff, +0x5f,0x0,0x25,0x1,0xc,0x2,0x9e,0x2,0xbf,0x2,0x8c,0x2, +0x6e,0x2,0xa9,0x2,0xb4,0x2,0x24,0x2,0x41,0x1,0x33,0x0, +0xef,0xfe,0xae,0xfd,0x66,0xfc,0xe0,0xfa,0x39,0xf9,0x81,0xf7, +0xc6,0xf5,0x51,0xf4,0xfd,0xf2,0x8f,0xf1,0xba,0xf0,0xf6,0xf0, +0x5e,0xf1,0x36,0xf1,0x17,0xf1,0xa1,0xf1,0xa6,0xf2,0xd3,0xf3, +0xae,0xf4,0xec,0xf4,0x51,0xf5,0x85,0xf6,0xc8,0xf7,0x4a,0xf8, +0x7e,0xf8,0x3c,0xf9,0x80,0xfa,0x5b,0xfb,0x42,0xfb,0xe9,0xfa, +0x2e,0xfb,0xc4,0xfb,0xa3,0xfb,0x87,0xfa,0x27,0xf9,0x1c,0xf8, +0x40,0xf7,0xec,0xf5,0xfa,0xf3,0x55,0xf2,0x7e,0xf1,0xc6,0xf0, +0xbf,0xef,0xc5,0xee,0x64,0xee,0xf2,0xee,0xfb,0xef,0xaf,0xf0, +0x11,0xf1,0xcd,0xf1,0x4b,0xf3,0x2e,0xf5,0xe6,0xf6,0x8b,0xf8, +0x58,0xfa,0x12,0xfc,0xc7,0xfd,0xcb,0xff,0xee,0x1,0xb8,0x3, +0x25,0x5,0xaa,0x6,0x3e,0x8,0x18,0x9,0xfc,0x8,0xb1,0x8, +0xa1,0x8,0x72,0x8,0xe0,0x7,0xde,0x6,0x90,0x5,0x9c,0x4, +0x43,0x4,0xcf,0x3,0xf8,0x2,0x5a,0x2,0x39,0x2,0x55,0x2, +0x3c,0x2,0x9c,0x1,0x0,0x1,0x10,0x1,0x5b,0x1,0x52,0x1, +0x40,0x1,0x92,0x1,0x50,0x2,0x23,0x3,0xb1,0x3,0x4c,0x4, +0x8a,0x5,0xf,0x7,0x16,0x8,0xac,0x8,0x2e,0x9,0x81,0x9, +0x98,0x9,0x91,0x9,0x55,0x9,0xdc,0x8,0x4e,0x8,0xc0,0x7, +0x2c,0x7,0xac,0x6,0x64,0x6,0xfb,0x5,0x33,0x5,0xa6,0x4, +0xb1,0x4,0xd8,0x4,0xaa,0x4,0xea,0x3,0xcf,0x2,0x2d,0x2, +0x13,0x2,0xa1,0x1,0x9b,0x0,0x84,0xff,0xd4,0xfe,0x97,0xfe, +0x54,0xfe,0xb0,0xfd,0xe0,0xfc,0x1e,0xfc,0x8a,0xfb,0x39,0xfb, +0xda,0xfa,0x18,0xfa,0x3c,0xf9,0xa6,0xf8,0x4a,0xf8,0xd,0xf8, +0xe0,0xf7,0xb9,0xf7,0xc6,0xf7,0x44,0xf8,0x3e,0xf9,0x50,0xfa, +0xe8,0xfa,0x72,0xfb,0xdf,0xfc,0x92,0xfe,0x75,0xff,0xe5,0xff, +0x67,0x0,0xec,0x0,0xa8,0x1,0x4f,0x2,0x34,0x2,0xe8,0x1, +0x35,0x2,0x7d,0x2,0x35,0x2,0xed,0x1,0xf0,0x1,0x0,0x2, +0xec,0x1,0x6f,0x1,0xc3,0x0,0xa1,0x0,0x0,0x1,0x31,0x1, +0xe4,0x0,0x7f,0x0,0xd1,0x0,0xcf,0x1,0x9a,0x2,0x16,0x3, +0xe7,0x3,0x57,0x5,0x2,0x7,0x48,0x8,0x60,0x9,0xef,0xa, +0x88,0xc,0x94,0xd,0x64,0xe,0x30,0xf,0xc3,0xf,0xf1,0xf, +0xbe,0xf,0x5b,0xf,0x6,0xf,0xed,0xe,0xd0,0xe,0x23,0xe, +0x28,0xd,0x99,0xc,0x68,0xc,0xf8,0xb,0xe8,0xa,0x8d,0x9, +0x9c,0x8,0x12,0x8,0x6c,0x7,0x8a,0x6,0xa2,0x5,0xfc,0x4, +0x97,0x4,0x46,0x4,0x35,0x4,0x2f,0x4,0xab,0x3,0x34,0x3, +0x96,0x3,0x7c,0x4,0x15,0x5,0xeb,0x4,0x68,0x4,0x77,0x4, +0x32,0x5,0xea,0x5,0xc,0x6,0x77,0x5,0xf7,0x4,0x4a,0x5, +0xae,0x5,0x1f,0x5,0x37,0x4,0x16,0x4,0x7c,0x4,0x4c,0x4, +0x4a,0x3,0x41,0x2,0xd2,0x1,0xe8,0x1,0xd3,0x1,0xf3,0x0, +0x98,0xff,0x9b,0xfe,0x43,0xfe,0xfa,0xfd,0xfa,0xfc,0x82,0xfb, +0xaa,0xfa,0x9d,0xfa,0xac,0xfa,0x92,0xfa,0x5a,0xfa,0x78,0xfa, +0x8e,0xfb,0x8,0xfd,0xcb,0xfd,0xff,0xfd,0x75,0xfe,0x8c,0xff, +0x1a,0x1,0x74,0x2,0xf2,0x2,0x4,0x3,0x13,0x4,0x3b,0x6, +0xcc,0x7,0x3f,0x8,0xa9,0x8,0x56,0x9,0x2,0xa,0x77,0xa, +0x1d,0xa,0x2c,0x9,0x77,0x8,0xaa,0x7,0x1c,0x6,0x28,0x4, +0xaa,0x2,0x24,0x2,0x21,0x2,0x9c,0x1,0x86,0x0,0xfd,0xff, +0x66,0x0,0xf1,0x0,0x5b,0x1,0xe1,0x1,0x2b,0x2,0x86,0x2, +0x78,0x3,0x1f,0x4,0x44,0x4,0x2b,0x5,0xf6,0x6,0xca,0x8, +0x46,0xa,0x61,0xb,0x91,0xc,0x3a,0xe,0xc9,0xf,0x84,0x10, +0x5a,0x10,0x8c,0xf,0x6c,0xe,0x65,0xd,0x6a,0xc,0xa6,0xa, +0xe7,0x7,0x49,0x5,0x79,0x3,0xd,0x2,0x7e,0x0,0xb9,0xfe, +0x1f,0xfd,0xb2,0xfb,0x16,0xfa,0x9c,0xf8,0x86,0xf7,0x56,0xf6, +0xfe,0xf4,0xf0,0xf3,0x43,0xf3,0xec,0xf2,0x26,0xf3,0xfd,0xf3, +0xd8,0xf4,0x5e,0xf5,0x1d,0xf6,0x7c,0xf7,0x36,0xf9,0xbd,0xfa, +0x94,0xfb,0x1a,0xfc,0xb9,0xfc,0xe0,0xfc,0x6a,0xfc,0xd7,0xfb, +0xa,0xfb,0xf6,0xf9,0xe6,0xf8,0x8a,0xf7,0x9e,0xf5,0xdc,0xf3, +0xf4,0xf2,0x48,0xf2,0xfa,0xf0,0x53,0xef,0x8,0xee,0x8d,0xed, +0xc8,0xed,0x89,0xed,0x54,0xec,0x9f,0xeb,0x46,0xec,0x75,0xed, +0x64,0xee,0xdb,0xee,0x30,0xef,0x6d,0xf0,0xed,0xf2,0x67,0xf5, +0xb6,0xf6,0xa3,0xf7,0x68,0xf9,0xd2,0xfb,0xd9,0xfd,0xc9,0xfe, +0xf6,0xfe,0x71,0xff,0x60,0x0,0xf8,0x0,0xe6,0x0,0x4a,0x0, +0x85,0xff,0x30,0xff,0x2a,0xff,0xb4,0xfe,0xba,0xfd,0xdb,0xfc, +0x8c,0xfc,0x98,0xfc,0x6c,0xfc,0xfb,0xfb,0xdf,0xfb,0x5a,0xfc, +0xf6,0xfc,0x52,0xfd,0x7e,0xfd,0xc5,0xfd,0x79,0xfe,0x5a,0xff, +0xcb,0xff,0xf5,0xff,0x7a,0x0,0x7e,0x1,0x95,0x2,0x1c,0x3, +0xed,0x2,0xb1,0x2,0xff,0x2,0x9d,0x3,0xad,0x3,0xd2,0x2, +0xcf,0x1,0x55,0x1,0x4d,0x1,0x4d,0x1,0xd4,0x0,0x10,0x0, +0xc7,0xff,0xcb,0xff,0x85,0xff,0x1a,0xff,0x99,0xfe,0xf4,0xfd, +0x78,0xfd,0x22,0xfd,0x82,0xfc,0x9f,0xfb,0x16,0xfb,0x7,0xfb, +0xc8,0xfa,0xed,0xf9,0xcd,0xf8,0x19,0xf8,0x17,0xf8,0xf0,0xf7, +0xfc,0xf6,0xd8,0xf5,0x1e,0xf5,0xe9,0xf4,0x22,0xf5,0x8,0xf5, +0x3f,0xf4,0x9d,0xf3,0xd7,0xf3,0xb9,0xf4,0x68,0xf5,0x7b,0xf5, +0xc3,0xf5,0x95,0xf6,0x54,0xf7,0xfd,0xf7,0xce,0xf8,0xba,0xf9, +0xd3,0xfa,0xcf,0xfb,0x45,0xfc,0x6f,0xfc,0xbd,0xfc,0x8d,0xfd, +0x9c,0xfe,0xf1,0xfe,0x7b,0xfe,0x24,0xfe,0x12,0xfe,0xc2,0xfd, +0x2c,0xfd,0x7b,0xfc,0xae,0xfb,0xfb,0xfa,0x93,0xfa,0x37,0xfa, +0xde,0xf9,0xe1,0xf9,0x2d,0xfa,0x6b,0xfa,0x7f,0xfa,0x97,0xfa, +0x21,0xfb,0xf9,0xfb,0x64,0xfc,0x6a,0xfc,0x94,0xfc,0x8,0xfd, +0xed,0xfd,0x13,0xff,0xdb,0xff,0x69,0x0,0x45,0x1,0x4b,0x2, +0x35,0x3,0xf8,0x3,0x76,0x4,0xa1,0x4,0x7f,0x4,0x1e,0x4, +0xb2,0x3,0x5a,0x3,0xf6,0x2,0x8a,0x2,0x54,0x2,0x38,0x2, +0xcf,0x1,0x66,0x1,0xb3,0x1,0x65,0x2,0xa4,0x2,0x4f,0x2, +0x6f,0x1,0x47,0x0,0xad,0xff,0x64,0xff,0x53,0xfe,0xf5,0xfc, +0x47,0xfc,0xfe,0xfb,0xa5,0xfb,0x22,0xfb,0xb1,0xfa,0x44,0xfb, +0xe3,0xfc,0x2,0xfe,0xf,0xfe,0xc,0xfe,0xc6,0xfe,0x17,0x0, +0xfd,0x0,0xa8,0x0,0xd,0x0,0xa7,0x0,0xef,0x1,0x64,0x2, +0xf9,0x1,0xab,0x1,0x21,0x2,0x9,0x3,0x28,0x3,0x1d,0x2, +0x32,0x1,0x1f,0x1,0x2d,0x1,0xaf,0x0,0x5b,0xff,0x7e,0xfd, +0x61,0xfc,0x95,0xfc,0xb5,0xfc,0xa5,0xfb,0x7a,0xfa,0x90,0xfa, +0x6a,0xfb,0x11,0xfc,0x56,0xfc,0x45,0xfc,0x7b,0xfc,0xba,0xfd, +0x1a,0xff,0x42,0xff,0xaf,0xfe,0xc6,0xfe,0xf,0x0,0xb9,0x1, +0x3b,0x2,0xaf,0x1,0x3,0x2,0xbe,0x3,0x71,0x5,0x2f,0x6, +0x32,0x6,0x63,0x6,0xa3,0x7,0xe,0x9,0x5,0x9,0x1e,0x8, +0x1,0x8,0xbc,0x8,0x4f,0x9,0x1b,0x9,0x6d,0x8,0x64,0x8, +0x5d,0x9,0xee,0x9,0x30,0x9,0x51,0x8,0x87,0x8,0x6d,0x9, +0xf3,0x9,0x5f,0x9,0x23,0x8,0xbd,0x7,0x82,0x8,0xe1,0x8, +0xb3,0x7,0x9e,0x5,0x28,0x4,0x14,0x4,0x50,0x4,0x44,0x3, +0x54,0x1,0x3e,0x0,0x74,0x0,0x11,0x1,0x5c,0x1,0x15,0x1, +0x2,0x1,0x74,0x2,0x88,0x4,0x1d,0x5,0xd6,0x4,0x9c,0x5, +0x58,0x7,0x10,0x9,0xeb,0x9,0x86,0x9,0x4c,0x9,0xa4,0xa, +0x3c,0xc,0x39,0xc,0xed,0xa,0xe9,0x9,0xf3,0x9,0x3,0xa, +0xab,0x8,0x4a,0x6,0x3a,0x4,0xdd,0x2,0x9e,0x1,0x86,0xff, +0x53,0xfc,0x92,0xf9,0xb6,0xf8,0xc4,0xf8,0x14,0xf8,0xf5,0xf6, +0xae,0xf6,0x99,0xf7,0x66,0xf9,0x41,0xfb,0xfe,0xfb,0x36,0xfc, +0xcf,0xfd,0x6d,0x0,0x19,0x2,0xb7,0x2,0x82,0x3,0xfe,0x4, +0xbd,0x6,0xf0,0x7,0x47,0x8,0x60,0x8,0xa,0x9,0x19,0xa, +0x4d,0xa,0xf4,0x8,0x2f,0x7,0xb2,0x6,0x3f,0x7,0xd8,0x6, +0xc,0x5,0x77,0x3,0xc8,0x2,0x9b,0x2,0xb3,0x2,0x7c,0x2, +0xe7,0x1,0xeb,0x1,0xcb,0x2,0xbf,0x3,0x36,0x4,0x74,0x4, +0x6,0x5,0xd5,0x5,0x97,0x6,0x38,0x7,0x76,0x7,0x8c,0x7, +0x14,0x8,0xf4,0x8,0xbd,0x9,0x1c,0xa,0xff,0x9,0x12,0xa, +0xd8,0xa,0x8d,0xb,0x2f,0xb,0x31,0xa,0xbd,0x9,0xc1,0x9, +0x78,0x9,0xb5,0x8,0x98,0x7,0xb8,0x6,0x7a,0x6,0x33,0x6, +0x9c,0x5,0x20,0x5,0xe2,0x4,0x5,0x5,0x17,0x5,0x77,0x4, +0xe4,0x3,0xf6,0x3,0xb,0x4,0xbd,0x3,0x63,0x3,0x70,0x3, +0x8e,0x3,0xf8,0x2,0x5,0x2,0x83,0x1,0x50,0x1,0xe7,0x0, +0x8,0x0,0xdd,0xfe,0xba,0xfd,0xd1,0xfc,0x18,0xfc,0xf9,0xfa, +0x7f,0xf9,0xb3,0xf8,0x5b,0xf8,0x99,0xf7,0xc5,0xf6,0x41,0xf6, +0x1b,0xf6,0x3e,0xf6,0x1e,0xf6,0xee,0xf5,0x9,0xf6,0x4,0xf6, +0xf7,0xf5,0x22,0xf6,0x53,0xf6,0x84,0xf6,0x6b,0xf6,0x36,0xf6, +0xbb,0xf6,0x9c,0xf7,0xe9,0xf7,0x91,0xf7,0x1a,0xf7,0x66,0xf7, +0x4e,0xf8,0x73,0xf8,0xba,0xf7,0x46,0xf7,0xbe,0xf7,0xcb,0xf8, +0x25,0xf9,0x32,0xf8,0x6a,0xf7,0x23,0xf8,0x5d,0xf9,0x62,0xf9, +0x75,0xf8,0x26,0xf8,0xd9,0xf8,0xb1,0xf9,0xb8,0xf9,0xfb,0xf8, +0xf1,0xf8,0x14,0xfa,0xc6,0xfa,0x72,0xfa,0x3e,0xfa,0xb7,0xfa, +0xa0,0xfb,0x4a,0xfc,0x32,0xfc,0x13,0xfc,0x71,0xfc,0xc5,0xfc, +0xb8,0xfc,0x40,0xfc,0xae,0xfb,0x96,0xfb,0x70,0xfb,0x99,0xfa, +0xe5,0xf9,0xe3,0xf9,0x2,0xfa,0xfe,0xf9,0xec,0xf9,0xd7,0xf9, +0x9,0xfa,0x85,0xfa,0xdf,0xfa,0x39,0xfb,0x16,0xfc,0x2d,0xfd, +0xe8,0xfd,0xa0,0xfe,0x0,0x0,0xc1,0x1,0xde,0x2,0x22,0x3, +0x96,0x3,0xab,0x4,0xa7,0x5,0xf8,0x5,0x90,0x5,0xe1,0x4, +0xae,0x4,0x97,0x4,0xaa,0x3,0x4e,0x2,0x57,0x1,0xcc,0x0, +0x3f,0x0,0x12,0xff,0x4b,0xfd,0xf1,0xfb,0x53,0xfb,0x93,0xfa, +0x62,0xf9,0x54,0xf8,0xde,0xf7,0xf9,0xf7,0x29,0xf8,0x19,0xf8, +0x43,0xf8,0xf,0xf9,0x55,0xfa,0xde,0xfb,0x32,0xfd,0x7,0xfe, +0xcc,0xfe,0xa8,0xff,0x8f,0x0,0x9b,0x1,0x12,0x2,0x7e,0x1, +0xd3,0x0,0xc9,0x0,0x26,0x1,0x8,0x1,0xb4,0xff,0x32,0xfe, +0xc6,0xfd,0xa8,0xfd,0xbf,0xfc,0xf2,0xfa,0xcb,0xf8,0xa7,0xf7, +0xef,0xf7,0xd1,0xf7,0x64,0xf6,0x60,0xf5,0x10,0xf6,0xa5,0xf7, +0xec,0xf8,0x55,0xf9,0x61,0xf9,0x7e,0xfa,0xb9,0xfc,0x52,0xfe, +0xc5,0xfe,0x2f,0xff,0x1c,0x0,0x47,0x1,0x28,0x2,0x5a,0x2, +0x3c,0x2,0x4a,0x2,0x62,0x2,0x44,0x2,0xc7,0x1,0xea,0x0, +0xfe,0xff,0x19,0xff,0xd,0xfe,0xe9,0xfc,0xbb,0xfb,0x80,0xfa, +0xa6,0xf9,0x7b,0xf9,0xb0,0xf9,0xcb,0xf9,0xb9,0xf9,0x1e,0xfa, +0x93,0xfb,0x6e,0xfd,0x7a,0xfe,0x92,0xfe,0xb4,0xfe,0xc1,0xff, +0x32,0x1,0xb7,0x1,0x4a,0x1,0x25,0x1,0xf8,0x1,0x29,0x3, +0xa6,0x3,0x4e,0x3,0x3b,0x3,0x24,0x4,0x25,0x5,0xd8,0x4, +0x5b,0x3,0x9,0x2,0xa8,0x1,0xbd,0x1,0x2c,0x1,0x96,0xff, +0x30,0xfe,0x1,0xfe,0x83,0xfe,0xdf,0xfe,0xe4,0xfe,0x4,0xff, +0xc0,0xff,0xdb,0x0,0xb5,0x1,0xfb,0x1,0xd3,0x1,0xd0,0x1, +0x31,0x2,0xa2,0x2,0xce,0x2,0x89,0x2,0x28,0x2,0x42,0x2, +0xaa,0x2,0xc8,0x2,0x76,0x2,0xd,0x2,0xeb,0x1,0xd9,0x1, +0x7b,0x1,0xc6,0x0,0xb3,0xff,0xa0,0xfe,0x4,0xfe,0x76,0xfd, +0x75,0xfc,0x43,0xfb,0x7f,0xfa,0x65,0xfa,0x77,0xfa,0x45,0xfa, +0xfd,0xf9,0xef,0xf9,0x4e,0xfa,0xce,0xfa,0xfa,0xfa,0xda,0xfa, +0xa1,0xfa,0xbc,0xfa,0x73,0xfb,0xf,0xfc,0x2,0xfc,0xd7,0xfb, +0x32,0xfc,0x14,0xfd,0xd0,0xfd,0xf1,0xfd,0x4,0xfe,0x89,0xfe, +0x46,0xff,0xb0,0xff,0x7e,0xff,0x52,0xff,0xd4,0xff,0xbd,0x0, +0x52,0x1,0xd,0x1,0x9f,0x0,0x4e,0x1,0xa1,0x2,0x5b,0x3, +0x83,0x3,0xe6,0x3,0x34,0x5,0xe6,0x6,0x81,0x7,0x9,0x7, +0xd8,0x6,0x74,0x7,0x2d,0x8,0xe9,0x7,0x63,0x6,0xc6,0x4, +0x1d,0x4,0xf1,0x3,0x35,0x3,0xf6,0x1,0xf1,0x0,0x80,0x0, +0xa5,0x0,0xc3,0x0,0x42,0x0,0x2,0x0,0xb4,0x0,0x75,0x1, +0x98,0x1,0x36,0x1,0xbb,0x0,0xe6,0x0,0xb7,0x1,0x76,0x2, +0xc0,0x2,0x9b,0x2,0x94,0x2,0x66,0x3,0xd8,0x4,0xdc,0x5, +0xed,0x5,0xeb,0x5,0xa5,0x6,0x5c,0x7,0x44,0x7,0x9d,0x6, +0xb9,0x5,0xe7,0x4,0x33,0x4,0xff,0x2,0x4b,0x1,0xe2,0xff, +0xb,0xff,0x67,0xfe,0x6c,0xfd,0xe4,0xfb,0x8e,0xfa,0x20,0xfa, +0xfc,0xf9,0x4a,0xf9,0x63,0xf8,0x14,0xf8,0x88,0xf8,0x5a,0xf9, +0xe8,0xf9,0x17,0xfa,0x9a,0xfa,0xbf,0xfb,0x2d,0xfd,0xbd,0xfe, +0x2a,0x0,0xf7,0x0,0x6a,0x1,0x35,0x2,0x6b,0x3,0x88,0x4, +0x8,0x5,0xd0,0x4,0x5f,0x4,0x5e,0x4,0xc8,0x4,0xf3,0x4, +0x85,0x4,0xdd,0x3,0x91,0x3,0xac,0x3,0x9f,0x3,0x9,0x3, +0x39,0x2,0xc1,0x1,0xca,0x1,0xdf,0x1,0x82,0x1,0xfe,0x0, +0xe2,0x0,0x3c,0x1,0xde,0x1,0xa6,0x2,0x6c,0x3,0x2d,0x4, +0x19,0x5,0x6a,0x6,0x9,0x8,0x8b,0x9,0xc4,0xa,0xe6,0xb, +0x11,0xd,0x38,0xe,0xf2,0xe,0xfd,0xe,0xf3,0xe,0x43,0xf, +0x79,0xf,0x47,0xf,0xb7,0xe,0xdf,0xd,0x26,0xd,0x9d,0xc, +0xe3,0xb,0xfb,0xa,0x24,0xa,0x7f,0x9,0x14,0x9,0x81,0x8, +0x95,0x7,0xfe,0x6,0xfb,0x6,0xd9,0x6,0x53,0x6,0xd7,0x5, +0xa8,0x5,0xaa,0x5,0xa9,0x5,0x76,0x5,0x33,0x5,0x32,0x5, +0x5a,0x5,0x63,0x5,0x48,0x5,0x3,0x5,0xb1,0x4,0x8d,0x4, +0x66,0x4,0xe2,0x3,0x3,0x3,0x6,0x2,0x69,0x1,0x33,0x1, +0xc1,0x0,0xf3,0xff,0x13,0xff,0x2e,0xfe,0xa7,0xfd,0xa6,0xfd, +0x7f,0xfd,0xfa,0xfc,0x87,0xfc,0x5d,0xfc,0x42,0xfc,0xad,0xfb, +0xd7,0xfa,0xa8,0xfa,0xe6,0xfa,0xb6,0xfa,0x24,0xfa,0x8c,0xf9, +0x3c,0xf9,0x68,0xf9,0x8f,0xf9,0x4,0xf9,0xe4,0xf7,0xec,0xf6, +0x95,0xf6,0x6f,0xf6,0xd6,0xf5,0xff,0xf4,0x70,0xf4,0x2a,0xf4, +0xec,0xf3,0xdb,0xf3,0x49,0xf4,0xfd,0xf4,0xa5,0xf5,0x84,0xf6, +0xab,0xf7,0xe0,0xf8,0x37,0xfa,0x91,0xfb,0xb4,0xfc,0xc5,0xfd, +0x93,0xfe,0xc5,0xfe,0xbd,0xfe,0xe3,0xfe,0xd,0xff,0x1a,0xff, +0xe6,0xfe,0x37,0xfe,0x75,0xfd,0x47,0xfd,0x57,0xfd,0xa7,0xfc, +0x1f,0xfb,0xcd,0xf9,0x40,0xf9,0xb4,0xf8,0xa4,0xf7,0xa0,0xf6, +0x1d,0xf6,0x15,0xf6,0x69,0xf6,0xc7,0xf6,0x0,0xf7,0x68,0xf7, +0x5f,0xf8,0xcd,0xf9,0x2c,0xfb,0x2d,0xfc,0x2b,0xfd,0x9d,0xfe, +0x2f,0x0,0xb,0x1,0x38,0x1,0x7c,0x1,0xd2,0x1,0xc7,0x1, +0x67,0x1,0xa4,0x0,0x7d,0xff,0x55,0xfe,0x40,0xfd,0x14,0xfc, +0xad,0xfa,0x7,0xf9,0xc3,0xf7,0x3d,0xf7,0xc9,0xf6,0xb,0xf6, +0x6f,0xf5,0x3b,0xf5,0x70,0xf5,0xf8,0xf5,0x9a,0xf6,0x1f,0xf7, +0x9f,0xf7,0x66,0xf8,0x6f,0xf9,0x74,0xfa,0x51,0xfb,0x1,0xfc, +0xb9,0xfc,0xa9,0xfd,0x7f,0xfe,0xd3,0xfe,0xce,0xfe,0xe4,0xfe, +0x23,0xff,0x1d,0xff,0x99,0xfe,0xb6,0xfd,0xb1,0xfc,0x2,0xfc, +0xc3,0xfb,0x52,0xfb,0x9b,0xfa,0x5e,0xfa,0xb3,0xfa,0xb,0xfb, +0x58,0xfb,0xac,0xfb,0xf4,0xfb,0x73,0xfc,0x5,0xfd,0xe,0xfd, +0xc5,0xfc,0xbe,0xfc,0xd7,0xfc,0xb4,0xfc,0x3f,0xfc,0xf1,0xfb, +0x40,0xfc,0xb2,0xfc,0xcf,0xfc,0xd7,0xfc,0x1c,0xfd,0xc3,0xfd, +0x65,0xfe,0x68,0xfe,0x1b,0xfe,0x2,0xfe,0x16,0xfe,0x29,0xfe, +0xf0,0xfd,0x9e,0xfd,0xfd,0xfd,0x28,0xff,0x66,0x0,0x2e,0x1, +0xe5,0x1,0x46,0x3,0xf5,0x4,0x2a,0x6,0xd8,0x6,0x29,0x7, +0x6f,0x7,0xbe,0x7,0x60,0x7,0x28,0x6,0xf4,0x4,0x6b,0x4, +0x54,0x4,0xea,0x3,0xe6,0x2,0xf5,0x1,0xb6,0x1,0xfc,0x1, +0x1b,0x2,0xb2,0x1,0x15,0x1,0xc3,0x0,0xe0,0x0,0x0,0x1, +0x90,0x0,0xe4,0xff,0xbb,0xff,0xc,0x0,0x6d,0x0,0xc1,0x0, +0x48,0x1,0x32,0x2,0x37,0x3,0x15,0x4,0xda,0x4,0x91,0x5, +0x29,0x6,0x8d,0x6,0xb1,0x6,0x82,0x6,0x12,0x6,0xc2,0x5, +0x58,0x5,0x6c,0x4,0x90,0x3,0x8,0x3,0x61,0x2,0xa5,0x1, +0xb0,0x0,0x67,0xff,0x87,0xfe,0xd,0xfe,0x36,0xfd,0x30,0xfc, +0x65,0xfb,0x9b,0xfa,0xdf,0xf9,0x8a,0xf9,0x49,0xf9,0xe2,0xf8, +0xd9,0xf8,0x23,0xf9,0x42,0xf9,0x6c,0xf9,0xda,0xf9,0x86,0xfa, +0x7c,0xfb,0x65,0xfc,0x16,0xfd,0xab,0xfd,0x1,0xfe,0x6c,0xfe, +0x25,0xff,0xa2,0xff,0xd1,0xff,0x19,0x0,0x69,0x0,0xa2,0x0, +0xbc,0x0,0xb3,0x0,0xaf,0x0,0xf2,0x0,0x9a,0x1,0x4e,0x2, +0x7f,0x2,0x3e,0x2,0x3c,0x2,0xce,0x2,0x68,0x3,0x89,0x3, +0x53,0x3,0xec,0x2,0xc9,0x2,0x4e,0x3,0x9e,0x3,0xc,0x3, +0x62,0x2,0x76,0x2,0x47,0x3,0x21,0x4,0x42,0x4,0xe9,0x3, +0x4,0x4,0xdc,0x4,0xba,0x5,0xdd,0x5,0x74,0x5,0x2b,0x5, +0x6e,0x5,0x6,0x6,0x6,0x6,0x4a,0x5,0xec,0x4,0x73,0x5, +0x5c,0x6,0xe1,0x6,0xca,0x6,0xe6,0x6,0x81,0x7,0xed,0x7, +0x13,0x8,0x36,0x8,0x43,0x8,0x54,0x8,0x74,0x8,0x3e,0x8, +0x56,0x7,0x48,0x6,0x1d,0x6,0x71,0x6,0xb,0x6,0x5,0x5, +0xff,0x3,0x1a,0x3,0x66,0x2,0xc5,0x1,0xde,0x0,0xa7,0xff, +0x9b,0xfe,0x10,0xfe,0xa0,0xfd,0xd4,0xfc,0xec,0xfb,0x96,0xfb, +0xff,0xfb,0x46,0xfc,0xdd,0xfb,0x7f,0xfb,0x91,0xfb,0xde,0xfb, +0x3f,0xfc,0x49,0xfc,0x11,0xfc,0x47,0xfc,0xcc,0xfc,0x5,0xfd, +0xc5,0xfc,0x62,0xfc,0xa5,0xfc,0x89,0xfd,0xf7,0xfd,0x79,0xfd, +0xc2,0xfc,0x81,0xfc,0x97,0xfc,0xa7,0xfc,0x99,0xfc,0x57,0xfc, +0x26,0xfc,0x99,0xfc,0x57,0xfd,0xad,0xfd,0xad,0xfd,0xab,0xfd, +0xd8,0xfd,0x25,0xfe,0x49,0xfe,0x6a,0xfe,0xb0,0xfe,0xcf,0xfe, +0xbc,0xfe,0xb8,0xfe,0xc1,0xfe,0xc3,0xfe,0xe7,0xfe,0x48,0xff, +0x9e,0xff,0xb6,0xff,0xe3,0xff,0x65,0x0,0xee,0x0,0x8,0x1, +0xbc,0x0,0x9c,0x0,0xe3,0x0,0x10,0x1,0xe4,0x0,0xd9,0x0, +0x43,0x1,0xfa,0x1,0xef,0x2,0xee,0x3,0x78,0x4,0xfa,0x4, +0x78,0x6,0x69,0x8,0x65,0x9,0x89,0x9,0xdc,0x9,0x8d,0xa, +0x36,0xb,0x6e,0xb,0xf8,0xa,0x57,0xa,0x5a,0xa,0xbb,0xa, +0x8c,0xa,0xa3,0x9,0xc5,0x8,0xa3,0x8,0xdd,0x8,0x7f,0x8, +0x6f,0x7,0x70,0x6,0xf3,0x5,0xad,0x5,0xc,0x5,0xea,0x3, +0xf6,0x2,0xd9,0x2,0x28,0x3,0x23,0x3,0x16,0x3,0x9e,0x3, +0x9a,0x4,0x97,0x5,0x22,0x6,0x57,0x6,0x22,0x7,0x74,0x8, +0x39,0x9,0x4d,0x9,0x3a,0x9,0x39,0x9,0x3d,0x9,0x4,0x9, +0x8d,0x8,0x9,0x8,0x69,0x7,0xd0,0x6,0x56,0x6,0xc5,0x5, +0x1e,0x5,0x73,0x4,0x7a,0x3,0x8,0x2,0xa3,0x0,0xb3,0xff, +0x64,0xfe,0x21,0xfc,0xe6,0xf9,0x82,0xf8,0xcb,0xf7,0x1b,0xf7, +0xf8,0xf5,0xf,0xf5,0x4,0xf5,0x62,0xf5,0xd6,0xf5,0x29,0xf6, +0x48,0xf6,0xcf,0xf6,0xb1,0xf7,0x4d,0xf8,0x8f,0xf8,0x95,0xf8, +0xbe,0xf8,0x39,0xf9,0x98,0xf9,0xd6,0xf9,0x14,0xfa,0x42,0xfa, +0xa6,0xfa,0x27,0xfb,0x84,0xfb,0xda,0xfb,0xe6,0xfb,0xb8,0xfb, +0xe3,0xfb,0xf9,0xfb,0x4f,0xfb,0x5d,0xfa,0xcb,0xf9,0x90,0xf9, +0x72,0xf9,0x3b,0xf9,0xbc,0xf8,0x50,0xf8,0x72,0xf8,0xc3,0xf8, +0xa7,0xf8,0x38,0xf8,0x5,0xf8,0x63,0xf8,0x9e,0xf8,0xfa,0xf7, +0x58,0xf7,0x7c,0xf7,0xcb,0xf7,0xa,0xf8,0x8f,0xf8,0x33,0xf9, +0xe6,0xf9,0xdd,0xfa,0xf5,0xfb,0xff,0xfc,0x1d,0xfe,0x5b,0xff, +0x61,0x0,0xf0,0x0,0x50,0x1,0x1,0x2,0x18,0x3,0x13,0x4, +0x9e,0x4,0xc,0x5,0x95,0x5,0xc,0x6,0x5c,0x6,0x83,0x6, +0x75,0x6,0x9,0x6,0x2b,0x5,0x41,0x4,0x85,0x3,0x98,0x2, +0x4a,0x1,0x91,0xff,0xb1,0xfd,0x7f,0xfc,0xe7,0xfb,0xee,0xfa, +0xb9,0xf9,0xea,0xf8,0x86,0xf8,0xaa,0xf8,0x2e,0xf9,0x9b,0xf9, +0x37,0xfa,0x5c,0xfb,0x9a,0xfc,0x88,0xfd,0x64,0xfe,0x83,0xff, +0xc8,0x0,0xf2,0x1,0xe7,0x2,0x87,0x3,0xf1,0x3,0x4f,0x4, +0x58,0x4,0xda,0x3,0x5,0x3,0xa,0x2,0xef,0x0,0x6a,0xff, +0x86,0xfd,0xe3,0xfb,0x84,0xfa,0xdb,0xf8,0x2,0xf7,0x5f,0xf5, +0xd,0xf4,0x4,0xf3,0x20,0xf2,0x38,0xf1,0x6b,0xf0,0xb,0xf0, +0x19,0xf0,0x4a,0xf0,0xa0,0xf0,0x4e,0xf1,0x62,0xf2,0xd9,0xf3, +0x73,0xf5,0xd5,0xf6,0x6,0xf8,0x4a,0xf9,0xc4,0xfa,0x26,0xfc, +0x7,0xfd,0x8d,0xfd,0xfd,0xfd,0x3d,0xfe,0x49,0xfe,0x41,0xfe, +0x5,0xfe,0x7d,0xfd,0xff,0xfc,0xc8,0xfc,0x73,0xfc,0xa9,0xfb, +0xa4,0xfa,0xd8,0xf9,0xa0,0xf9,0x8c,0xf9,0xd9,0xf8,0xfa,0xf7, +0xa2,0xf7,0xa8,0xf7,0xed,0xf7,0x77,0xf8,0x15,0xf9,0xce,0xf9, +0xda,0xfa,0x30,0xfc,0x2a,0xfd,0x99,0xfd,0x76,0xfe,0xdd,0xff, +0xba,0x0,0xec,0x0,0xdf,0x0,0xd5,0x0,0x2b,0x1,0x83,0x1, +0x5d,0x1,0x4a,0x1,0xaa,0x1,0xfa,0x1,0x2,0x2,0xe7,0x1, +0xa4,0x1,0x58,0x1,0x55,0x1,0x4e,0x1,0xb5,0x0,0xd6,0xff, +0x59,0xff,0x73,0xff,0xd8,0xff,0xd8,0xff,0x59,0xff,0x1b,0xff, +0x68,0xff,0xe0,0xff,0x3a,0x0,0x2d,0x0,0x86,0xff,0xcc,0xfe, +0xb6,0xfe,0xd3,0xfe,0x31,0xfe,0x1f,0xfd,0x61,0xfc,0xda,0xfb, +0x55,0xfb,0xdd,0xfa,0x77,0xfa,0x88,0xfa,0x10,0xfb,0x34,0xfb, +0xb6,0xfa,0x6b,0xfa,0xc7,0xfa,0x59,0xfb,0xac,0xfb,0xb7,0xfb, +0xbc,0xfb,0x3a,0xfc,0x5a,0xfd,0x96,0xfe,0xa2,0xff,0xb5,0x0, +0x14,0x2,0xb7,0x3,0xe9,0x4,0x4c,0x5,0x8f,0x5,0xea,0x5, +0x2,0x6,0xf6,0x5,0x8f,0x5,0x80,0x4,0x76,0x3,0xd8,0x2, +0x3f,0x2,0x9b,0x1,0xf7,0x0,0x12,0x0,0x23,0xff,0xa3,0xfe, +0x6c,0xfe,0x11,0xfe,0xb5,0xfd,0xb1,0xfd,0xe7,0xfd,0x5,0xfe, +0x15,0xfe,0x72,0xfe,0x61,0xff,0x9f,0x0,0xa6,0x1,0x7a,0x2, +0x80,0x3,0xcd,0x4,0x28,0x6,0x54,0x7,0x2d,0x8,0x8,0x9, +0x35,0xa,0x27,0xb,0x60,0xb,0x59,0xb,0x9e,0xb,0x2c,0xc, +0xb8,0xc,0xb0,0xc,0xa,0xc,0xca,0xb,0x5d,0xc,0xc4,0xc, +0x5f,0xc,0xa4,0xb,0x10,0xb,0xf1,0xa,0x33,0xb,0x2e,0xb, +0x8f,0xa,0xd4,0x9,0x9c,0x9,0xd8,0x9,0xbc,0x9,0xfa,0x8, +0x3e,0x8,0xf3,0x7,0xdc,0x7,0x77,0x7,0x77,0x6,0x59,0x5, +0xd5,0x4,0x6,0x5,0x5a,0x5,0xdd,0x4,0xba,0x3,0x79,0x3, +0x5c,0x4,0x4,0x5,0xdf,0x4,0x7e,0x4,0x82,0x4,0x3f,0x5, +0x4e,0x6,0xac,0x6,0x65,0x6,0xb5,0x6,0xce,0x7,0xb7,0x8, +0xc7,0x8,0xe6,0x7,0x9,0x7,0x4a,0x7,0xb4,0x7,0xd8,0x6, +0xe2,0x4,0xb8,0x2,0x41,0x1,0x8d,0x0,0x75,0xff,0x6a,0xfd, +0x26,0xfb,0xae,0xf9,0x4d,0xf9,0xf7,0xf8,0xbe,0xf7,0x2a,0xf6, +0x52,0xf5,0xa6,0xf5,0x3d,0xf6,0x3,0xf6,0xac,0xf5,0x4c,0xf6, +0xc4,0xf7,0x9c,0xf9,0x35,0xfb,0x3a,0xfc,0xb2,0xfd,0x46,0x0, +0xb1,0x2,0xcb,0x3,0x4c,0x4,0x20,0x5,0x18,0x6,0x98,0x6, +0x1d,0x6,0xdd,0x4,0xbf,0x3,0xe5,0x2,0xca,0x1,0x40,0x0, +0x6e,0xfe,0x1,0xfd,0x57,0xfc,0xb1,0xfb,0xbc,0xfa,0xf4,0xf9, +0x73,0xf9,0x48,0xf9,0xa0,0xf9,0x9,0xfa,0x25,0xfa,0x8b,0xfa, +0xad,0xfb,0x1d,0xfd,0x8e,0xfe,0x1f,0x0,0xbb,0x1,0x89,0x3, +0xb8,0x5,0xd3,0x7,0x6c,0x9,0xa8,0xa,0xf7,0xb,0xa7,0xd, +0x28,0xf,0xa8,0xf,0x8a,0xf,0xa8,0xf,0xfd,0xf,0x4,0x10, +0x66,0xf,0x44,0xe,0x2b,0xd,0x4e,0xc,0x26,0xb,0x6b,0x9, +0xbc,0x7,0x99,0x6,0x8c,0x5,0x1c,0x4,0xa2,0x2,0x99,0x1, +0xfa,0x0,0x93,0x0,0x1d,0x0,0x81,0xff,0x4b,0xff,0xab,0xff, +0xd2,0xff,0x63,0xff,0x2,0xff,0x2d,0xff,0x9c,0xff,0xa9,0xff, +0x27,0xff,0xaa,0xfe,0xa7,0xfe,0xdb,0xfe,0xbb,0xfe,0x29,0xfe, +0x87,0xfd,0x18,0xfd,0xaf,0xfc,0x1e,0xfc,0x90,0xfb,0x2d,0xfb, +0xd8,0xfa,0x91,0xfa,0x7a,0xfa,0x9b,0xfa,0xf4,0xfa,0x4d,0xfb, +0x6c,0xfb,0xa8,0xfb,0x25,0xfc,0x74,0xfc,0x54,0xfc,0xf8,0xfb, +0xba,0xfb,0xb2,0xfb,0x6c,0xfb,0x93,0xfa,0x8b,0xf9,0xe1,0xf8, +0x7e,0xf8,0xf2,0xf7,0x4d,0xf7,0xc2,0xf6,0x68,0xf6,0x69,0xf6, +0x61,0xf6,0xfb,0xf5,0xc9,0xf5,0x3,0xf6,0x61,0xf6,0xdb,0xf6, +0x4c,0xf7,0xc0,0xf7,0x82,0xf8,0x85,0xf9,0xac,0xfa,0xeb,0xfb, +0x33,0xfd,0x8c,0xfe,0xd1,0xff,0x23,0x1,0x8b,0x2,0x73,0x3, +0xc5,0x3,0xf8,0x3,0x29,0x4,0x3a,0x4,0xce,0x3,0xce,0x2, +0xda,0x1,0x35,0x1,0x6f,0x0,0x29,0xff,0x95,0xfd,0x4c,0xfc, +0x75,0xfb,0x91,0xfa,0x47,0xf9,0xe5,0xf7,0x15,0xf7,0xef,0xf6, +0xf2,0xf6,0x2,0xf7,0x39,0xf7,0xc6,0xf7,0xf6,0xf8,0x4b,0xfa, +0xc,0xfb,0xb5,0xfb,0xf7,0xfc,0x82,0xfe,0xb9,0xff,0x77,0x0, +0xf4,0x0,0x76,0x1,0x10,0x2,0x8c,0x2,0xb2,0x2,0x76,0x2, +0xf7,0x1,0x74,0x1,0xe0,0x0,0xda,0xff,0x6e,0xfe,0xa,0xfd, +0xea,0xfb,0xf3,0xfa,0xcf,0xf9,0x64,0xf8,0x16,0xf7,0x31,0xf6, +0xb1,0xf5,0x4f,0xf5,0xe5,0xf4,0xcc,0xf4,0x2a,0xf5,0x9b,0xf5, +0xe2,0xf5,0xe2,0xf5,0xdc,0xf5,0x81,0xf6,0x61,0xf7,0x5c,0xf7, +0xf2,0xf6,0x46,0xf7,0xc,0xf8,0xa8,0xf8,0x18,0xf9,0x58,0xf9, +0x9f,0xf9,0x44,0xfa,0xe3,0xfa,0x11,0xfb,0x8,0xfb,0xd,0xfb, +0x2c,0xfb,0x27,0xfb,0x9c,0xfa,0xf7,0xf9,0xe8,0xf9,0x10,0xfa, +0xe6,0xf9,0xa4,0xf9,0x91,0xf9,0xbf,0xf9,0x22,0xfa,0x7e,0xfa, +0xdb,0xfa,0x46,0xfb,0x88,0xfb,0xa6,0xfb,0x9b,0xfb,0x50,0xfb, +0x1e,0xfb,0xfd,0xfa,0x90,0xfa,0x30,0xfa,0x34,0xfa,0x6c,0xfa, +0xc8,0xfa,0x4d,0xfb,0xc8,0xfb,0x22,0xfc,0x98,0xfc,0x47,0xfd, +0xee,0xfd,0x60,0xfe,0xa4,0xfe,0xcd,0xfe,0x33,0xff,0xe7,0xff, +0x6e,0x0,0x92,0x0,0x9b,0x0,0xf7,0x0,0x84,0x1,0xe0,0x1, +0x3e,0x2,0x85,0x2,0x88,0x2,0xe2,0x2,0x36,0x3,0xe2,0x2, +0xbf,0x2,0x2,0x3,0xf9,0x2,0x8d,0x2,0xa2,0x1,0xae,0x0, +0x67,0x0,0x46,0x0,0xb0,0xff,0xb6,0xfe,0xac,0xfd,0x13,0xfd, +0xd6,0xfc,0x7f,0xfc,0xf0,0xfb,0x72,0xfb,0x93,0xfb,0x4,0xfc, +0xb,0xfc,0x4,0xfc,0x34,0xfc,0x88,0xfc,0x61,0xfd,0x46,0xfe, +0x8a,0xfe,0xda,0xfe,0xe5,0xff,0x59,0x1,0x93,0x2,0x58,0x3, +0x10,0x4,0xfa,0x4,0xdc,0x5,0x84,0x6,0xcc,0x6,0xab,0x6, +0x59,0x6,0xff,0x5,0x49,0x5,0x11,0x4,0xee,0x2,0x26,0x2, +0x46,0x1,0x16,0x0,0xd7,0xfe,0xf2,0xfd,0x84,0xfd,0x42,0xfd, +0x10,0xfd,0xd3,0xfc,0x6d,0xfc,0x47,0xfc,0x89,0xfc,0xdf,0xfc, +0x33,0xfd,0x89,0xfd,0xe6,0xfd,0x64,0xfe,0x17,0xff,0x9,0x0, +0xf2,0x0,0xb4,0x1,0x91,0x2,0x7f,0x3,0x77,0x4,0x4b,0x5, +0x82,0x5,0x77,0x5,0xb7,0x5,0xe1,0x5,0xab,0x5,0x52,0x5, +0xd,0x5,0xbc,0x4,0x27,0x4,0xbc,0x3,0xc9,0x3,0xbe,0x3, +0x6a,0x3,0xe,0x3,0xd3,0x2,0x1a,0x3,0xbd,0x3,0xd3,0x3, +0x6a,0x3,0x93,0x3,0x80,0x4,0x46,0x5,0x31,0x5,0x7b,0x4, +0x37,0x4,0x10,0x5,0xe5,0x5,0x5c,0x5,0x3a,0x4,0x13,0x4, +0x12,0x5,0x21,0x6,0xa,0x6,0x0,0x5,0xd7,0x4,0x2a,0x6, +0x25,0x7,0xb7,0x6,0xe,0x6,0x35,0x6,0x2a,0x7,0x3a,0x8, +0x5d,0x8,0xa,0x8,0xca,0x8,0x5c,0xa,0x75,0xb,0xce,0xb, +0xcb,0xb,0x18,0xc,0xf8,0xc,0x75,0xd,0xbf,0xc,0x5a,0xb, +0x6,0xa,0xdb,0x8,0xc8,0x7,0x91,0x6,0xc6,0x4,0xd3,0x2, +0x7b,0x1,0x8c,0x0,0xaa,0xff,0xcd,0xfe,0x9,0xfe,0xb9,0xfd, +0xcd,0xfd,0xba,0xfd,0x39,0xfd,0xa0,0xfc,0xbb,0xfc,0x87,0xfd, +0x1e,0xfe,0x64,0xfe,0xb9,0xfe,0x98,0xff,0x76,0x1,0x20,0x3, +0x8e,0x3,0x7,0x4,0x43,0x5,0x4b,0x6,0x84,0x6,0xd3,0x5, +0xc0,0x4,0x43,0x4,0x8,0x4,0xcb,0x2,0x8b,0x0,0x87,0xfe, +0x62,0xfd,0xff,0xfc,0xc9,0xfc,0xce,0xfb,0x60,0xfa,0xdd,0xf9, +0x48,0xfa,0xc3,0xfa,0xb,0xfb,0x23,0xfb,0x41,0xfb,0xa3,0xfb, +0x67,0xfc,0x6e,0xfd,0x2d,0xfe,0xd7,0xfe,0x34,0x0,0xfb,0x1, +0x84,0x3,0x8d,0x4,0x24,0x5,0xd,0x6,0x5b,0x7,0x3,0x8, +0xee,0x7,0xc1,0x7,0x98,0x7,0x5d,0x7,0xc5,0x6,0x73,0x5, +0xfc,0x3,0x70,0x3,0x92,0x3,0xf4,0x2,0x2f,0x1,0x6e,0xff, +0xce,0xfe,0x2f,0xff,0x41,0xff,0x3b,0xfe,0x27,0xfd,0x18,0xfd, +0xbf,0xfd,0x91,0xfe,0x39,0xff,0x9d,0xff,0x44,0x0,0x74,0x1, +0x9a,0x2,0x81,0x3,0x82,0x4,0xb2,0x5,0xf5,0x6,0x13,0x8, +0x9f,0x8,0xc5,0x8,0x17,0x9,0x78,0x9,0x73,0x9,0xe5,0x8, +0xec,0x7,0xe3,0x6,0xfe,0x5,0xec,0x4,0x84,0x3,0x1a,0x2, +0xe3,0x0,0xd7,0xff,0xf3,0xfe,0x20,0xfe,0x56,0xfd,0xd3,0xfc, +0x85,0xfc,0xeb,0xfb,0xf9,0xfa,0x32,0xfa,0xfc,0xf9,0x38,0xfa, +0x28,0xfa,0x51,0xf9,0x86,0xf8,0xdb,0xf8,0xfb,0xf9,0xc0,0xfa, +0x3,0xfb,0x7b,0xfb,0x72,0xfc,0x8f,0xfd,0x71,0xfe,0x5,0xff, +0x95,0xff,0x5f,0x0,0x25,0x1,0x58,0x1,0xd3,0x0,0x41,0x0, +0x34,0x0,0x44,0x0,0xce,0xff,0xb9,0xfe,0x85,0xfd,0xc4,0xfc, +0x3b,0xfc,0x4d,0xfb,0xfd,0xf9,0xb6,0xf8,0xc3,0xf7,0xc,0xf7, +0x29,0xf6,0x22,0xf5,0x4c,0xf4,0xa7,0xf3,0x4c,0xf3,0x54,0xf3, +0x69,0xf3,0x6e,0xf3,0xc7,0xf3,0x84,0xf4,0x39,0xf5,0xc3,0xf5, +0x73,0xf6,0x61,0xf7,0x60,0xf8,0x5f,0xf9,0x60,0xfa,0x73,0xfb, +0x9e,0xfc,0x92,0xfd,0x41,0xfe,0x15,0xff,0x34,0x0,0x45,0x1, +0xd4,0x1,0xb4,0x1,0x66,0x1,0x72,0x1,0x97,0x1,0x70,0x1, +0xdb,0x0,0xd3,0xff,0xe5,0xfe,0x85,0xfe,0x29,0xfe,0x81,0xfd, +0x0,0xfd,0xa9,0xfc,0x33,0xfc,0xa3,0xfb,0x3f,0xfb,0x5e,0xfb, +0x81,0xfb,0xdf,0xfa,0x36,0xfa,0x5d,0xfa,0xcf,0xfa,0x60,0xfb, +0xfe,0xfb,0x1b,0xfc,0x5a,0xfc,0x84,0xfd,0xe6,0xfe,0xc9,0xff, +0x4d,0x0,0xec,0x0,0xf1,0x1,0xd8,0x2,0x4,0x3,0xc8,0x2, +0xd1,0x2,0x33,0x3,0x4f,0x3,0xd3,0x2,0x38,0x2,0xe3,0x1, +0xec,0x1,0x1b,0x2,0xc1,0x1,0xd8,0x0,0x29,0x0,0xee,0xff, +0xc2,0xff,0x23,0xff,0xf3,0xfd,0xef,0xfc,0xa7,0xfc,0x89,0xfc, +0xd3,0xfb,0xbb,0xfa,0x8,0xfa,0x0,0xfa,0x49,0xfa,0x2a,0xfa, +0x40,0xf9,0x7a,0xf8,0xb6,0xf8,0x33,0xf9,0x11,0xf9,0x80,0xf8, +0x30,0xf8,0xba,0xf8,0x9e,0xf9,0xd6,0xf9,0x9e,0xf9,0xb4,0xf9, +0x27,0xfa,0xf8,0xfa,0xe4,0xfb,0x67,0xfc,0x4,0xfd,0x28,0xfe, +0xbb,0xfe,0x69,0xfe,0x87,0xfe,0x56,0xff,0xd5,0xff,0x74,0xff, +0x3b,0xfe,0xee,0xfc,0x8c,0xfc,0xca,0xfc,0x7f,0xfc,0x55,0xfb, +0x21,0xfa,0x9e,0xf9,0x80,0xf9,0x37,0xf9,0xce,0xf8,0x91,0xf8, +0x8d,0xf8,0x75,0xf8,0x3f,0xf8,0xa,0xf8,0xd7,0xf7,0x3d,0xf8, +0x64,0xf9,0x23,0xfa,0x3e,0xfa,0x86,0xfa,0x24,0xfb,0x38,0xfc, +0xdd,0xfd,0x8d,0xff,0xeb,0x0,0x10,0x2,0x4b,0x3,0xc5,0x4, +0xc,0x6,0xe7,0x6,0x99,0x7,0x3e,0x8,0xb7,0x8,0x96,0x8, +0xa6,0x7,0x97,0x6,0xf4,0x5,0x57,0x5,0x22,0x4,0x41,0x2, +0x65,0x0,0x2c,0xff,0x43,0xfe,0xb,0xfd,0xa4,0xfb,0x90,0xfa, +0xf8,0xf9,0xc1,0xf9,0xa0,0xf9,0x74,0xf9,0xb9,0xf9,0x8e,0xfa, +0x4b,0xfb,0xe7,0xfb,0xed,0xfc,0x5c,0xfe,0xdb,0xff,0xf,0x1, +0xd4,0x1,0x9d,0x2,0xe4,0x3,0x5b,0x5,0x47,0x6,0x83,0x6, +0xa3,0x6,0x9,0x7,0x4d,0x7,0xdd,0x6,0x21,0x6,0xe8,0x5, +0xcc,0x5,0x30,0x5,0x56,0x4,0x51,0x3,0x67,0x2,0x2f,0x2, +0xd9,0x1,0x8d,0x0,0x8,0xff,0xee,0xfd,0x33,0xfd,0x9e,0xfc, +0xa8,0xfb,0x37,0xfa,0xe6,0xf8,0x39,0xf8,0x10,0xf8,0xab,0xf7, +0xe8,0xf6,0x9a,0xf6,0xed,0xf6,0x7c,0xf7,0x21,0xf8,0x89,0xf8, +0xe5,0xf8,0xee,0xf9,0x58,0xfb,0x73,0xfc,0x50,0xfd,0x14,0xfe, +0x1b,0xff,0xaf,0x0,0xf,0x2,0xb4,0x2,0x59,0x3,0x75,0x4, +0xa6,0x5,0x88,0x6,0xe7,0x6,0xcd,0x6,0xb0,0x6,0xd4,0x6, +0xec,0x6,0xa3,0x6,0xf1,0x5,0xfd,0x4,0x7,0x4,0x1a,0x3, +0x37,0x2,0x7a,0x1,0xa8,0x0,0x7a,0xff,0x22,0xfe,0xf5,0xfc, +0x3f,0xfc,0xed,0xfb,0x78,0xfb,0xdb,0xfa,0x7e,0xfa,0x88,0xfa, +0xf9,0xfa,0x95,0xfb,0x2d,0xfc,0xee,0xfc,0xfb,0xfd,0x62,0xff, +0xe0,0x0,0xfb,0x1,0xf6,0x2,0x40,0x4,0xc0,0x5,0x3b,0x7, +0x51,0x8,0x4,0x9,0xda,0x9,0xc5,0xa,0x81,0xb,0xee,0xb, +0xc1,0xb,0x52,0xb,0x15,0xb,0xaf,0xa,0xe5,0x9,0xbf,0x8, +0x48,0x7,0xf4,0x5,0xf6,0x4,0xed,0x3,0xba,0x2,0x81,0x1, +0x6f,0x0,0xd1,0xff,0x97,0xff,0x5d,0xff,0x2b,0xff,0x25,0xff, +0x22,0xff,0x21,0xff,0x44,0xff,0x95,0xff,0x4a,0x0,0x65,0x1, +0x82,0x2,0x83,0x3,0x8a,0x4,0xa6,0x5,0xf0,0x6,0x53,0x8, +0x70,0x9,0x31,0xa,0xe3,0xa,0x8a,0xb,0xcf,0xb,0xb2,0xb, +0x6f,0xb,0x2e,0xb,0xfd,0xa,0x5f,0xa,0xe,0x9,0xb7,0x7, +0x8f,0x6,0x28,0x5,0x81,0x3,0xb8,0x1,0x8,0x0,0xca,0xfe, +0xad,0xfd,0x62,0xfc,0x39,0xfb,0x6d,0xfa,0x1e,0xfa,0x3c,0xfa, +0x66,0xfa,0x9b,0xfa,0x4d,0xfb,0x87,0xfc,0xa9,0xfd,0x34,0xfe, +0xc1,0xfe,0x20,0x0,0xd1,0x1,0xe9,0x2,0x72,0x3,0xf8,0x3, +0xcb,0x4,0xbe,0x5,0x47,0x6,0x41,0x6,0xf,0x6,0x31,0x6, +0xa3,0x6,0x89,0x6,0xa5,0x5,0xef,0x4,0xb6,0x4,0x9a,0x4, +0xa1,0x4,0x83,0x4,0x32,0x4,0x43,0x4,0x8b,0x4,0xa9,0x4, +0xcc,0x4,0xed,0x4,0xf2,0x4,0xf3,0x4,0x4,0x5,0x22,0x5, +0xe,0x5,0xb8,0x4,0x63,0x4,0x40,0x4,0x63,0x4,0x94,0x4, +0x7c,0x4,0x29,0x4,0xef,0x3,0x7,0x4,0xc,0x4,0xc0,0x3, +0xc5,0x3,0x2,0x4,0xb8,0x3,0x47,0x3,0x3e,0x3,0xc7,0x3, +0xcd,0x4,0x6e,0x5,0x4b,0x5,0x24,0x5,0x63,0x5,0xf2,0x5, +0x3e,0x6,0x9d,0x5,0xab,0x4,0x5d,0x4,0x45,0x4,0x8b,0x3, +0x69,0x2,0xa3,0x1,0x36,0x1,0x9e,0x0,0x9d,0xff,0x60,0xfe, +0x80,0xfd,0x1f,0xfd,0xa6,0xfc,0xc0,0xfb,0x80,0xfa,0x94,0xf9, +0xb6,0xf9,0x23,0xfa,0x4,0xfa,0xde,0xf9,0x2b,0xfa,0xe3,0xfa, +0xc8,0xfb,0x6c,0xfc,0xba,0xfc,0xde,0xfc,0x6,0xfd,0x43,0xfd, +0x50,0xfd,0x10,0xfd,0xb5,0xfc,0x7f,0xfc,0xa2,0xfc,0xaa,0xfc, +0x40,0xfc,0xe4,0xfb,0xc7,0xfb,0x8e,0xfb,0xff,0xfa,0x14,0xfa, +0x33,0xf9,0xb7,0xf8,0x5d,0xf8,0xa8,0xf7,0x86,0xf6,0xb0,0xf5, +0xcc,0xf5,0x67,0xf6,0xd6,0xf6,0x15,0xf7,0x94,0xf7,0x7d,0xf8, +0x46,0xf9,0xad,0xf9,0x18,0xfa,0xa4,0xfa,0x29,0xfb,0x4f,0xfb, +0xa3,0xfa,0xbf,0xf9,0xd3,0xf9,0xb3,0xfa,0x3b,0xfb,0x18,0xfb, +0xee,0xfa,0x64,0xfb,0x69,0xfc,0x17,0xfd,0xf9,0xfc,0xb7,0xfc, +0xa3,0xfc,0x63,0xfc,0xd,0xfc,0x95,0xfb,0xe7,0xfa,0xb7,0xfa, +0x19,0xfb,0x29,0xfb,0xcb,0xfa,0xb4,0xfa,0x3e,0xfb,0x4,0xfc, +0x54,0xfc,0xec,0xfb,0x16,0xfb,0x6b,0xfa,0x2c,0xfa,0xd0,0xf9, +0xf4,0xf8,0xf2,0xf7,0x4e,0xf7,0x65,0xf7,0x1,0xf8,0x7c,0xf8, +0xf1,0xf8,0xe3,0xf9,0x30,0xfb,0x6c,0xfc,0x5b,0xfd,0x21,0xfe, +0x1b,0xff,0x1f,0x0,0xa6,0x0,0x9b,0x0,0x4a,0x0,0x18,0x0, +0x42,0x0,0x92,0x0,0xbe,0x0,0xb7,0x0,0x80,0x0,0x3e,0x0, +0x13,0x0,0xea,0xff,0x9c,0xff,0xd9,0xfe,0x82,0xfd,0x1a,0xfc, +0x4,0xfb,0x18,0xfa,0x1d,0xf9,0x1,0xf8,0xe9,0xf6,0x53,0xf6, +0x66,0xf6,0x84,0xf6,0x5f,0xf6,0xb8,0xf6,0xfb,0xf7,0x4b,0xf9, +0xf9,0xf9,0x53,0xfa,0xef,0xfa,0x6,0xfc,0x4b,0xfd,0x1d,0xfe, +0x1e,0xfe,0xd3,0xfd,0x35,0xfe,0x34,0xff,0xdb,0xff,0xcd,0xff, +0x74,0xff,0x80,0xff,0x2c,0x0,0xbe,0x0,0xa4,0x0,0x23,0x0, +0xb2,0xff,0xab,0xff,0xd1,0xff,0x89,0xff,0xf1,0xfe,0x66,0xfe, +0x12,0xfe,0x1a,0xfe,0x29,0xfe,0xf9,0xfd,0xda,0xfd,0xf9,0xfd, +0x41,0xfe,0x72,0xfe,0x5d,0xfe,0x67,0xfe,0xcc,0xfe,0x16,0xff, +0x1c,0xff,0xe8,0xfe,0x7c,0xfe,0x3a,0xfe,0x43,0xfe,0x29,0xfe, +0xe2,0xfd,0xd0,0xfd,0xe,0xfe,0x9b,0xfe,0x61,0xff,0x5,0x0, +0x86,0x0,0x3a,0x1,0x1b,0x2,0xf9,0x2,0xb5,0x3,0x1d,0x4, +0x50,0x4,0x84,0x4,0x8f,0x4,0x53,0x4,0xf9,0x3,0xa3,0x3, +0x57,0x3,0xfb,0x2,0x88,0x2,0x1,0x2,0x5e,0x1,0xc7,0x0, +0x4b,0x0,0x9d,0xff,0x95,0xfe,0x77,0xfd,0x82,0xfc,0x9e,0xfb, +0xac,0xfa,0xb8,0xf9,0xc5,0xf8,0x35,0xf8,0x58,0xf8,0xac,0xf8, +0x10,0xf9,0x6,0xfa,0x57,0xfb,0xbc,0xfc,0x2d,0xfe,0x35,0xff, +0x1f,0x0,0x97,0x1,0x6,0x3,0xab,0x3,0x90,0x3,0x36,0x3, +0x6b,0x3,0x26,0x4,0x55,0x4,0x87,0x3,0x52,0x2,0x79,0x1, +0x3c,0x1,0xfb,0x0,0xd6,0xff,0xf8,0xfd,0x5b,0xfc,0x2a,0xfb, +0xd0,0xf9,0x4a,0xf8,0xe5,0xf6,0xdf,0xf5,0x96,0xf5,0xbc,0xf5, +0xc0,0xf5,0xe,0xf6,0x44,0xf7,0x46,0xf9,0x77,0xfb,0x39,0xfd, +0xa4,0xfe,0x34,0x0,0x15,0x2,0xf0,0x3,0x20,0x5,0xa5,0x5, +0x28,0x6,0xb6,0x6,0xc,0x7,0x1f,0x7,0xcc,0x6,0x5c,0x6, +0x47,0x6,0x35,0x6,0xa7,0x5,0x9c,0x4,0x62,0x3,0x5d,0x2, +0x8d,0x1,0x72,0x0,0xe6,0xfe,0x76,0xfd,0x81,0xfc,0xc7,0xfb, +0x37,0xfb,0xfe,0xfa,0xf9,0xfa,0x33,0xfb,0x8,0xfc,0x21,0xfd, +0xe6,0xfd,0xa5,0xfe,0xd6,0xff,0x12,0x1,0xf3,0x1,0xa3,0x2, +0x3a,0x3,0xa7,0x3,0xff,0x3,0x3e,0x4,0x25,0x4,0xd8,0x3, +0xce,0x3,0xc5,0x3,0x4c,0x3,0xc6,0x2,0x54,0x2,0xaf,0x1, +0x46,0x1,0x48,0x1,0x27,0x1,0xc5,0x0,0x53,0x0,0xed,0xff, +0xb9,0xff,0xcd,0xff,0xb,0x0,0xb,0x0,0x93,0xff,0x1a,0xff, +0xb,0xff,0x4f,0xff,0x7a,0xff,0x44,0xff,0x15,0xff,0x2b,0xff, +0x39,0xff,0x32,0xff,0x23,0xff,0x31,0xff,0x81,0xff,0xbf,0xff, +0xb3,0xff,0x66,0xff,0xe2,0xfe,0xa2,0xfe,0xc7,0xfe,0xe9,0xfe, +0xe1,0xfe,0xa1,0xfe,0x71,0xfe,0xaf,0xfe,0x27,0xff,0xaf,0xff, +0x46,0x0,0xdb,0x0,0x84,0x1,0x24,0x2,0x8b,0x2,0xa6,0x2, +0x8b,0x2,0xb9,0x2,0x4,0x3,0xd4,0x2,0x64,0x2,0xf1,0x1, +0x9d,0x1,0xaf,0x1,0xcc,0x1,0xca,0x1,0xbe,0x1,0x72,0x1, +0x12,0x1,0x8d,0x0,0xe3,0xff,0xc1,0xff,0xa4,0xff,0xb4,0xfe, +0xa4,0xfd,0x2a,0xfd,0x79,0xfd,0x70,0xfe,0x58,0xff,0x11,0x0, +0x20,0x1,0xbb,0x2,0xa6,0x4,0x57,0x6,0xaa,0x7,0xcf,0x8, +0xba,0x9,0x67,0xa,0xaa,0xa,0x69,0xa,0x27,0xa,0xff,0x9, +0x97,0x9,0xc,0x9,0x9d,0x8,0x4d,0x8,0xe0,0x7,0x1e,0x7, +0x5f,0x6,0xfa,0x5,0xaf,0x5,0xd,0x5,0xeb,0x3,0xa5,0x2, +0xb5,0x1,0x10,0x1,0x89,0x0,0x50,0x0,0x84,0x0,0xec,0x0, +0x7d,0x1,0x56,0x2,0x52,0x3,0x98,0x4,0x73,0x6,0x36,0x8, +0x18,0x9,0x83,0x9,0x3d,0xa,0x3f,0xb,0xe3,0xb,0xe8,0xb, +0xeb,0xb,0x62,0xc,0x5,0xd,0x5b,0xd,0x39,0xd,0xe3,0xc, +0xf3,0xc,0x85,0xd,0xac,0xd,0xc0,0xc,0x6c,0xb,0x8c,0xa, +0x5,0xa,0x29,0x9,0x93,0x7,0xba,0x5,0x70,0x4,0xd8,0x3, +0x53,0x3,0x71,0x2,0xa7,0x1,0x7d,0x1,0x99,0x1,0x91,0x1, +0x6c,0x1,0x46,0x1,0x72,0x1,0xe8,0x1,0x13,0x2,0xe3,0x1, +0xa6,0x1,0x81,0x1,0x98,0x1,0xc2,0x1,0xb2,0x1,0x74,0x1, +0x29,0x1,0xe3,0x0,0xac,0x0,0x78,0x0,0x30,0x0,0xc7,0xff, +0x48,0xff,0xbc,0xfe,0x1c,0xfe,0x71,0xfd,0xde,0xfc,0x63,0xfc, +0xe5,0xfb,0x6d,0xfb,0x8,0xfb,0xa6,0xfa,0x7e,0xfa,0xad,0xfa, +0xbc,0xfa,0xaa,0xfa,0xf3,0xfa,0x6f,0xfb,0xa9,0xfb,0x95,0xfb, +0x75,0xfb,0x81,0xfb,0xab,0xfb,0xdb,0xfb,0xf8,0xfb,0xe5,0xfb, +0xc5,0xfb,0xa9,0xfb,0xa1,0xfb,0x1d,0xfc,0xf6,0xfc,0x60,0xfd, +0x44,0xfd,0x3e,0xfd,0xab,0xfd,0x6b,0xfe,0x2,0xff,0xd0,0xfe, +0xa,0xfe,0xcb,0xfd,0x33,0xfe,0x37,0xfe,0x92,0xfd,0xcf,0xfc, +0x8d,0xfc,0xa,0xfd,0x54,0xfd,0xa8,0xfc,0xff,0xfb,0x3a,0xfc, +0xda,0xfc,0x24,0xfd,0xdd,0xfc,0x4c,0xfc,0x19,0xfc,0x91,0xfc, +0x2a,0xfd,0x4c,0xfd,0x2a,0xfd,0x34,0xfd,0x8a,0xfd,0x8,0xfe, +0x54,0xfe,0x71,0xfe,0xae,0xfe,0x4,0xff,0x37,0xff,0x19,0xff, +0xcc,0xfe,0xa6,0xfe,0x98,0xfe,0x84,0xfe,0x3d,0xfe,0x81,0xfd, +0xea,0xfc,0xfd,0xfc,0x20,0xfd,0xfd,0xfc,0x95,0xfc,0xff,0xfb, +0xfa,0xfb,0x8b,0xfc,0xbd,0xfc,0x6c,0xfc,0x2d,0xfc,0x44,0xfc, +0x7e,0xfc,0x6d,0xfc,0xf5,0xfb,0x85,0xfb,0x91,0xfb,0xd5,0xfb, +0xb5,0xfb,0x3d,0xfb,0xf0,0xfa,0x2e,0xfb,0xff,0xfb,0xa7,0xfc, +0x7b,0xfc,0x5,0xfc,0xf6,0xfb,0x41,0xfc,0x82,0xfc,0x50,0xfc, +0xb0,0xfb,0x3f,0xfb,0x43,0xfb,0x40,0xfb,0xc7,0xfa,0x1d,0xfa, +0xde,0xf9,0x2e,0xfa,0x91,0xfa,0x8d,0xfa,0x8,0xfa,0x59,0xf9, +0x46,0xf9,0xde,0xf9,0x2,0xfa,0x57,0xf9,0xc5,0xf8,0xca,0xf8, +0x1f,0xf9,0x3e,0xf9,0x1c,0xf9,0x3d,0xf9,0xa4,0xf9,0x2,0xfa, +0x3a,0xfa,0xfc,0xf9,0x9f,0xf9,0x17,0xfa,0xfe,0xfa,0x14,0xfb, +0x2a,0xfa,0x49,0xf9,0x77,0xf9,0x5f,0xfa,0xc8,0xfa,0x4f,0xfa, +0xb6,0xf9,0xcc,0xf9,0x97,0xfa,0x6a,0xfb,0xb2,0xfb,0x89,0xfb, +0xaf,0xfb,0x59,0xfc,0xa5,0xfc,0x46,0xfc,0x18,0xfc,0x7e,0xfc, +0x9,0xfd,0x3c,0xfd,0xf4,0xfc,0xdb,0xfc,0xa9,0xfd,0xcf,0xfe, +0x3d,0xff,0xfc,0xfe,0xf9,0xfe,0x9e,0xff,0x6e,0x0,0xb7,0x0, +0x3d,0x0,0xaa,0xff,0xfc,0xff,0xf6,0x0,0x69,0x1,0x57,0x1, +0x9e,0x1,0x6c,0x2,0x8b,0x3,0x8f,0x4,0xdc,0x4,0xe1,0x4, +0x7c,0x5,0x57,0x6,0x8f,0x6,0x4,0x6,0x6f,0x5,0x6c,0x5, +0xa5,0x5,0x6f,0x5,0xa1,0x4,0xbd,0x3,0x73,0x3,0x9b,0x3, +0x82,0x3,0xe7,0x2,0xf9,0x1,0x61,0x1,0x5a,0x1,0xf2,0x0, +0xf6,0xff,0x4e,0xff,0x49,0xff,0xa7,0xff,0xdf,0xff,0x86,0xff, +0x5e,0xff,0x25,0x0,0x47,0x1,0x2b,0x2,0xd9,0x2,0x4e,0x3, +0xd4,0x3,0xc3,0x4,0x86,0x5,0xa3,0x5,0xa4,0x5,0xc7,0x5, +0xd7,0x5,0xbc,0x5,0x51,0x5,0xc7,0x4,0x36,0x4,0x27,0x3, +0xc9,0x1,0xa2,0x0,0x96,0xff,0x7d,0xfe,0x16,0xfd,0x59,0xfb, +0xeb,0xf9,0xb,0xf9,0x80,0xf8,0x21,0xf8,0xd0,0xf7,0xa6,0xf7, +0xc7,0xf7,0x4f,0xf8,0x2a,0xf9,0xe7,0xf9,0xb7,0xfa,0xeb,0xfb, +0xf4,0xfc,0xbf,0xfd,0xc8,0xfe,0x7,0x0,0x31,0x1,0x3,0x2, +0xa9,0x2,0x8d,0x3,0x5e,0x4,0x0,0x5,0x9e,0x5,0xd4,0x5, +0x9f,0x5,0x68,0x5,0x3b,0x5,0x24,0x5,0xe4,0x4,0x36,0x4, +0x73,0x3,0xba,0x2,0x1,0x2,0xa2,0x1,0x87,0x1,0x42,0x1, +0xed,0x0,0xc0,0x0,0x88,0x0,0x1a,0x0,0xb6,0xff,0xbe,0xff, +0x24,0x0,0x44,0x0,0xc3,0xff,0x4a,0xff,0x88,0xff,0x59,0x0, +0x38,0x1,0xae,0x1,0xc0,0x1,0x2,0x2,0xc1,0x2,0x8f,0x3, +0xec,0x3,0xf8,0x3,0x29,0x4,0x76,0x4,0x79,0x4,0x24,0x4, +0xda,0x3,0x6,0x4,0x75,0x4,0xb3,0x4,0xc8,0x4,0xcc,0x4, +0xdf,0x4,0x36,0x5,0x7c,0x5,0x51,0x5,0xf9,0x4,0x9d,0x4, +0xf2,0x3,0xf2,0x2,0x11,0x2,0x70,0x1,0xb5,0x0,0xed,0xff, +0x3b,0xff,0x60,0xfe,0xc5,0xfd,0xc,0xfe,0x9f,0xfe,0xa5,0xfe, +0x46,0xfe,0xa,0xfe,0x25,0xfe,0x9a,0xfe,0x41,0xff,0xc0,0xff, +0x9,0x0,0x97,0x0,0xb5,0x1,0xe7,0x2,0xad,0x3,0x71,0x4, +0x83,0x5,0x70,0x6,0xef,0x6,0x2,0x7,0xc5,0x6,0x84,0x6, +0x2d,0x6,0x69,0x5,0x40,0x4,0xe1,0x2,0xab,0x1,0xcb,0x0, +0xcb,0xff,0x72,0xfe,0x16,0xfd,0x20,0xfc,0xa8,0xfb,0x38,0xfb, +0x8b,0xfa,0xd7,0xf9,0x3e,0xf9,0x3a,0xf9,0xd,0xfa,0xf8,0xfa, +0x75,0xfb,0xe2,0xfb,0xd3,0xfc,0x61,0xfe,0xa,0x0,0x6e,0x1, +0x83,0x2,0x6c,0x3,0x87,0x4,0xab,0x5,0x47,0x6,0x5b,0x6, +0x19,0x6,0xb9,0x5,0x63,0x5,0xd0,0x4,0xde,0x3,0xb7,0x2, +0x79,0x1,0x4e,0x0,0x4b,0xff,0x67,0xfe,0x77,0xfd,0x54,0xfc, +0x72,0xfb,0xc,0xfb,0x9e,0xfa,0x32,0xfa,0x34,0xfa,0xaa,0xfa, +0x7e,0xfb,0x7d,0xfc,0x6a,0xfd,0x57,0xfe,0x96,0xff,0x50,0x1, +0xb,0x3,0x2a,0x4,0xe7,0x4,0xdb,0x5,0x16,0x7,0x1b,0x8, +0xbd,0x8,0x3f,0x9,0x80,0x9,0x64,0x9,0x57,0x9,0x6d,0x9, +0x31,0x9,0x6f,0x8,0x77,0x7,0xa8,0x6,0xf0,0x5,0x1f,0x5, +0x2b,0x4,0x24,0x3,0x61,0x2,0xe,0x2,0xde,0x1,0xb0,0x1, +0xb9,0x1,0x6c,0x2,0xc5,0x3,0xef,0x4,0xb7,0x5,0xc3,0x6, +0x4c,0x8,0x15,0xa,0x6d,0xb,0xa,0xc,0xf1,0xc,0x70,0xe, +0x72,0xf,0x96,0xf,0x6f,0xf,0xa7,0xf,0x54,0x10,0x94,0x10, +0xed,0xf,0x5,0xf,0x4f,0xe,0x82,0xd,0x5a,0xc,0xd3,0xa, +0x1f,0x9,0xc0,0x7,0xc6,0x6,0x7b,0x5,0x1,0x4,0x4b,0x3, +0x33,0x3,0xf8,0x2,0x69,0x2,0xd5,0x1,0xdc,0x1,0x64,0x2, +0x86,0x2,0x29,0x2,0xbf,0x1,0x6e,0x1,0x42,0x1,0xff,0x0, +0xa8,0x0,0x9c,0x0,0x89,0x0,0xf2,0xff,0x3e,0xff,0xe0,0xfe, +0xad,0xfe,0x7c,0xfe,0x4e,0xfe,0xff,0xfd,0x9d,0xfd,0x53,0xfd, +0xfb,0xfc,0x98,0xfc,0x6a,0xfc,0x5a,0xfc,0x5c,0xfc,0x44,0xfc, +0xd7,0xfb,0xab,0xfb,0xfe,0xfb,0xd,0xfc,0xc5,0xfb,0xa3,0xfb, +0xa8,0xfb,0x98,0xfb,0x31,0xfb,0xa1,0xfa,0x51,0xfa,0x9,0xfa, +0x75,0xf9,0xb2,0xf8,0x14,0xf8,0xc1,0xf7,0x3c,0xf7,0x3f,0xf6, +0x74,0xf5,0x41,0xf5,0x49,0xf5,0x25,0xf5,0xc4,0xf4,0x8c,0xf4, +0xe,0xf5,0x5c,0xf6,0x92,0xf7,0xf8,0xf7,0x61,0xf8,0x8f,0xf9, +0xd8,0xfa,0x9b,0xfb,0xfd,0xfb,0x7c,0xfc,0x56,0xfd,0xdf,0xfd, +0xd8,0xfd,0x2,0xfe,0x7c,0xfe,0xee,0xfe,0x29,0xff,0xc2,0xfe, +0x9,0xfe,0xd2,0xfd,0xc3,0xfd,0xfa,0xfc,0x9c,0xfb,0x7e,0xfa, +0xe9,0xf9,0x5d,0xf9,0x8d,0xf8,0xc8,0xf7,0x69,0xf7,0xa1,0xf7, +0x4d,0xf8,0xf9,0xf8,0x6a,0xf9,0xd6,0xf9,0x51,0xfa,0xc3,0xfa, +0x5d,0xfb,0x23,0xfc,0x99,0xfc,0x9b,0xfc,0x68,0xfc,0x4a,0xfc, +0x95,0xfc,0x3,0xfd,0x27,0xfd,0x54,0xfd,0xbd,0xfd,0x17,0xfe, +0x3a,0xfe,0xfb,0xfd,0x71,0xfd,0xb,0xfd,0xb2,0xfc,0xf8,0xfb, +0x1,0xfb,0x4f,0xfa,0xf0,0xf9,0xb5,0xf9,0xb8,0xf9,0xee,0xf9, +0x1c,0xfa,0x5a,0xfa,0xb5,0xfa,0xfb,0xfa,0x32,0xfb,0x55,0xfb, +0x1c,0xfb,0x57,0xfa,0x50,0xf9,0x98,0xf8,0x32,0xf8,0xc7,0xf7, +0x4f,0xf7,0xc8,0xf6,0x56,0xf6,0x65,0xf6,0xe3,0xf6,0x3f,0xf7, +0x2a,0xf7,0xd0,0xf6,0xbb,0xf6,0x1e,0xf7,0x6a,0xf7,0x1e,0xf7, +0x69,0xf6,0xf,0xf6,0xc3,0xf6,0x18,0xf8,0xe3,0xf8,0x1c,0xf9, +0xbd,0xf9,0x16,0xfb,0xa6,0xfc,0xae,0xfd,0xd5,0xfd,0xd5,0xfd, +0x49,0xfe,0x92,0xfe,0x24,0xfe,0x58,0xfd,0xc1,0xfc,0xa9,0xfc, +0xba,0xfc,0x5d,0xfc,0xb8,0xfb,0x72,0xfb,0xab,0xfb,0xe1,0xfb, +0xb7,0xfb,0x54,0xfb,0xf,0xfb,0x20,0xfb,0x54,0xfb,0x1e,0xfb, +0xcf,0xfa,0x25,0xfb,0xde,0xfb,0x9e,0xfc,0x79,0xfd,0x19,0xfe, +0x84,0xfe,0x8a,0xff,0x12,0x1,0xa,0x2,0x15,0x2,0xd7,0x1, +0x7,0x2,0xbc,0x2,0x5b,0x3,0x53,0x3,0xf0,0x2,0xf4,0x2, +0x65,0x3,0xa0,0x3,0x82,0x3,0x5e,0x3,0x7e,0x3,0xee,0x3, +0x12,0x4,0x7c,0x3,0x15,0x3,0xac,0x3,0xa5,0x4,0x39,0x5, +0x5b,0x5,0xb2,0x5,0xd9,0x6,0x20,0x8,0x77,0x8,0x3f,0x8, +0x5f,0x8,0xce,0x8,0xec,0x8,0x3e,0x8,0xd1,0x6,0x68,0x5, +0xb0,0x4,0x40,0x4,0x47,0x3,0x8,0x2,0x44,0x1,0x4,0x1, +0xf8,0x0,0xe9,0x0,0xb3,0x0,0x92,0x0,0xcf,0x0,0x2f,0x1, +0x4b,0x1,0x3a,0x1,0x90,0x1,0x93,0x2,0xcb,0x3,0xaa,0x4, +0x54,0x5,0x24,0x6,0x1d,0x7,0x60,0x8,0xe0,0x9,0xcf,0xa, +0xe2,0xa,0xe5,0xa,0x36,0xb,0x47,0xb,0xbb,0xa,0xd3,0x9, +0xd2,0x8,0xa2,0x7,0x5e,0x6,0x2f,0x5,0xeb,0x3,0x90,0x2, +0x3f,0x1,0xde,0xff,0x7e,0xfe,0x5c,0xfd,0x96,0xfc,0x23,0xfc, +0xba,0xfb,0x3a,0xfb,0x7,0xfb,0x8a,0xfb,0x7e,0xfc,0x4d,0xfd, +0xed,0xfd,0xbd,0xfe,0xee,0xff,0x5d,0x1,0x9b,0x2,0x93,0x3, +0x8f,0x4,0x6a,0x5,0x28,0x6,0xea,0x6,0x59,0x7,0x96,0x7, +0xe0,0x7,0xe4,0x7,0xac,0x7,0x51,0x7,0xc1,0x6,0x21,0x6, +0x35,0x5,0xfa,0x3,0xf9,0x2,0x1b,0x2,0x12,0x1,0xeb,0xff, +0xec,0xfe,0x6e,0xfe,0x3f,0xfe,0x3,0xfe,0xd3,0xfd,0xea,0xfd, +0x7b,0xfe,0x49,0xff,0xee,0xff,0x7a,0x0,0xee,0x0,0xa3,0x1, +0xdf,0x2,0xbd,0x3,0x16,0x4,0xb0,0x4,0x90,0x5,0x8f,0x6, +0x41,0x7,0x24,0x7,0xeb,0x6,0xfa,0x6,0xca,0x6,0x33,0x6, +0x2d,0x5,0xe6,0x3,0xc5,0x2,0xf3,0x1,0x3c,0x1,0xfd,0xff, +0x83,0xfe,0xfb,0xfd,0xd,0xfe,0xe1,0xfd,0x96,0xfd,0x46,0xfd, +0x19,0xfd,0xc,0xfd,0xad,0xfc,0x4b,0xfc,0x45,0xfc,0x60,0xfc, +0x63,0xfc,0x12,0xfc,0xae,0xfb,0xd7,0xfb,0x87,0xfc,0x49,0xfd, +0x89,0xfd,0x42,0xfd,0x67,0xfd,0x1c,0xfe,0x82,0xfe,0x50,0xfe, +0xef,0xfd,0xcc,0xfd,0xc8,0xfd,0x96,0xfd,0x79,0xfd,0x8f,0xfd, +0xc5,0xfd,0x3b,0xfe,0x92,0xfe,0xad,0xfe,0x23,0xff,0xde,0xff, +0x59,0x0,0x7c,0x0,0x60,0x0,0x57,0x0,0x5b,0x0,0x8,0x0, +0x85,0xff,0x2,0xff,0x69,0xfe,0xfe,0xfd,0xd4,0xfd,0xa8,0xfd, +0x64,0xfd,0xfa,0xfc,0x89,0xfc,0x4d,0xfc,0x31,0xfc,0x2c,0xfc, +0x45,0xfc,0x5c,0xfc,0x73,0xfc,0xa8,0xfc,0x11,0xfd,0xc5,0xfd, +0x97,0xfe,0x5a,0xff,0xb,0x0,0x92,0x0,0x2f,0x1,0x4d,0x2, +0x74,0x3,0xd2,0x3,0xa2,0x3,0x97,0x3,0xa6,0x3,0x80,0x3, +0xd,0x3,0x68,0x2,0xff,0x1,0xbd,0x1,0xe2,0x0,0xa0,0xff, +0xb5,0xfe,0x20,0xfe,0xad,0xfd,0xb,0xfd,0xa,0xfc,0x7e,0xfb, +0xe8,0xfb,0x53,0xfc,0x2f,0xfc,0x61,0xfc,0x80,0xfd,0xe6,0xfe, +0xef,0xff,0x84,0x0,0xe2,0x0,0xd2,0x1,0x53,0x3,0x28,0x4, +0x1a,0x4,0x4,0x4,0x44,0x4,0xdc,0x4,0x50,0x5,0x3e,0x5, +0x3f,0x5,0x88,0x5,0x9f,0x5,0x96,0x5,0xb7,0x5,0xf8,0x5, +0x15,0x6,0xef,0x5,0xe7,0x5,0x32,0x6,0x8a,0x6,0xc9,0x6, +0x10,0x7,0xb6,0x7,0xd4,0x8,0xe7,0x9,0x89,0xa,0xe1,0xa, +0x47,0xb,0xe2,0xb,0x61,0xc,0x49,0xc,0xbe,0xb,0x5a,0xb, +0x20,0xb,0x8a,0xa,0xa2,0x9,0xd0,0x8,0x17,0x8,0x6a,0x7, +0xbb,0x6,0x21,0x6,0xf2,0x5,0xfb,0x5,0xce,0x5,0x62,0x5, +0xd1,0x4,0x75,0x4,0x6f,0x4,0x5a,0x4,0x2d,0x4,0xff,0x3, +0xbe,0x3,0xb6,0x3,0x2,0x4,0x4a,0x4,0x54,0x4,0xfe,0x3, +0x73,0x3,0xd,0x3,0xcf,0x2,0x64,0x2,0x55,0x1,0xa0,0xff, +0xfa,0xfd,0xc4,0xfc,0x95,0xfb,0x19,0xfa,0x9d,0xf8,0x8b,0xf7, +0xb7,0xf6,0xd5,0xf5,0x36,0xf5,0x2c,0xf5,0x89,0xf5,0x1a,0xf6, +0xaa,0xf6,0x12,0xf7,0xa9,0xf7,0xb2,0xf8,0xb9,0xf9,0x64,0xfa, +0xc9,0xfa,0x18,0xfb,0xb1,0xfb,0x80,0xfc,0xf5,0xfc,0x35,0xfd, +0x59,0xfd,0xea,0xfc,0x27,0xfc,0x96,0xfb,0x32,0xfb,0x93,0xfa, +0x2b,0xf9,0x5e,0xf7,0x3a,0xf6,0x8c,0xf5,0xa5,0xf4,0x88,0xf3, +0x5b,0xf2,0x88,0xf1,0x84,0xf1,0xe3,0xf1,0x15,0xf2,0x67,0xf2, +0x6e,0xf3,0xee,0xf4,0x29,0xf6,0x3,0xf7,0xc,0xf8,0xab,0xf9, +0x87,0xfb,0xc5,0xfc,0x35,0xfd,0x81,0xfd,0x1f,0xfe,0xe5,0xfe, +0x59,0xff,0x2c,0xff,0xa0,0xfe,0x38,0xfe,0x20,0xfe,0xe5,0xfd, +0x26,0xfd,0x3d,0xfc,0x8e,0xfb,0x15,0xfb,0xca,0xfa,0x7c,0xfa, +0xf8,0xf9,0x99,0xf9,0xc3,0xf9,0x30,0xfa,0x56,0xfa,0x3e,0xfa, +0x98,0xfa,0xab,0xfb,0xd4,0xfc,0x57,0xfd,0x47,0xfd,0x6a,0xfd, +0x3d,0xfe,0x58,0xff,0xd8,0xff,0x7b,0xff,0x2b,0xff,0x85,0xff, +0xcc,0xff,0x5d,0xff,0x92,0xfe,0xe4,0xfd,0xa1,0xfd,0x6f,0xfd, +0x77,0xfc,0x24,0xfb,0xb5,0xfa,0x3,0xfb,0xb,0xfb,0x9b,0xfa, +0x20,0xfa,0x31,0xfa,0x3,0xfb,0xe0,0xfb,0x32,0xfc,0x6f,0xfc, +0x22,0xfd,0x13,0xfe,0xad,0xfe,0xb4,0xfe,0xb1,0xfe,0x23,0xff, +0xa1,0xff,0x7f,0xff,0xc3,0xfe,0xd1,0xfd,0xeb,0xfc,0x36,0xfc, +0x8d,0xfb,0x62,0xfa,0xa7,0xf8,0x1d,0xf7,0x14,0xf6,0x34,0xf5, +0x4e,0xf4,0x69,0xf3,0xb7,0xf2,0x5c,0xf2,0x4d,0xf2,0xa4,0xf2, +0x47,0xf3,0xdc,0xf3,0x92,0xf4,0x90,0xf5,0x7e,0xf6,0x50,0xf7, +0x2c,0xf8,0x4,0xf9,0xe5,0xf9,0xd5,0xfa,0xc5,0xfb,0xac,0xfc, +0x60,0xfd,0xac,0xfd,0xa8,0xfd,0xc0,0xfd,0xfc,0xfd,0xcc,0xfd, +0x22,0xfd,0x75,0xfc,0xc9,0xfb,0x0,0xfb,0x53,0xfa,0xd0,0xf9, +0x4f,0xf9,0xe7,0xf8,0xe5,0xf8,0x40,0xf9,0x9b,0xf9,0xd,0xfa, +0xcc,0xfa,0x99,0xfb,0x87,0xfc,0xd0,0xfd,0xee,0xfe,0x78,0xff, +0xf9,0xff,0xf1,0x0,0x28,0x2,0x1e,0x3,0xa4,0x3,0x8,0x4, +0xa2,0x4,0x5c,0x5,0xda,0x5,0xe9,0x5,0xc7,0x5,0xdf,0x5, +0x21,0x6,0xd,0x6,0x88,0x5,0x10,0x5,0xf4,0x4,0xdb,0x4, +0x56,0x4,0xb3,0x3,0xa7,0x3,0x27,0x4,0x8b,0x4,0x9f,0x4, +0xb7,0x4,0x21,0x5,0xe7,0x5,0xb8,0x6,0x58,0x7,0xda,0x7, +0x39,0x8,0x78,0x8,0xb4,0x8,0xca,0x8,0xa4,0x8,0x53,0x8, +0xd6,0x7,0x51,0x7,0xfe,0x6,0xc8,0x6,0x3d,0x6,0x46,0x5, +0x8f,0x4,0x61,0x4,0x3c,0x4,0xe2,0x3,0x43,0x3,0x85,0x2, +0x30,0x2,0xfc,0x1,0x5a,0x1,0xc3,0x0,0x84,0x0,0x54,0x0, +0x22,0x0,0xdd,0xff,0xde,0xff,0x86,0x0,0x19,0x1,0x15,0x1, +0xfb,0x0,0x13,0x1,0x64,0x1,0xc8,0x1,0xa7,0x1,0x1f,0x1, +0xec,0x0,0xe6,0x0,0x9c,0x0,0x4b,0x0,0x23,0x0,0x17,0x0, +0x21,0x0,0xf3,0xff,0x87,0xff,0x6f,0xff,0xb2,0xff,0xcc,0xff, +0xb3,0xff,0xbe,0xff,0x26,0x0,0xbc,0x0,0xb,0x1,0x31,0x1, +0xb9,0x1,0xb3,0x2,0xb7,0x3,0x75,0x4,0xff,0x4,0xc9,0x5, +0x1,0x7,0x1b,0x8,0x99,0x8,0xda,0x8,0x53,0x9,0xb1,0x9, +0xb3,0x9,0x85,0x9,0x34,0x9,0xe2,0x8,0x8c,0x8,0xdf,0x7, +0x25,0x7,0xcd,0x6,0xa9,0x6,0x81,0x6,0x1a,0x6,0x86,0x5, +0x8a,0x5,0x9,0x6,0xf1,0x5,0x41,0x5,0xae,0x4,0x63,0x4, +0x51,0x4,0x3c,0x4,0xd5,0x3,0x4f,0x3,0xe,0x3,0x1f,0x3, +0x4e,0x3,0x71,0x3,0xa7,0x3,0xf,0x4,0x53,0x4,0x3b,0x4, +0x13,0x4,0x23,0x4,0x4b,0x4,0x3a,0x4,0xd4,0x3,0x58,0x3, +0xef,0x2,0x8b,0x2,0x31,0x2,0xf4,0x1,0xb6,0x1,0x45,0x1, +0xa1,0x0,0xc,0x0,0xb6,0xff,0x66,0xff,0xdc,0xfe,0x30,0xfe, +0xa6,0xfd,0x69,0xfd,0x58,0xfd,0x11,0xfd,0x3c,0xfc,0x20,0xfb, +0xb6,0xfa,0x25,0xfb,0x27,0xfb,0x4e,0xfa,0x85,0xf9,0x1c,0xf9, +0xc4,0xf8,0x50,0xf8,0x8e,0xf7,0xcc,0xf6,0x92,0xf6,0xc2,0xf6, +0x4,0xf7,0x2a,0xf7,0x3c,0xf7,0x9c,0xf7,0x45,0xf8,0xa2,0xf8, +0xa2,0xf8,0xe7,0xf8,0xc9,0xf9,0xcc,0xfa,0x3b,0xfb,0x1e,0xfb, +0x18,0xfb,0x9e,0xfb,0x88,0xfc,0x37,0xfd,0x5f,0xfd,0x74,0xfd, +0xf0,0xfd,0xa3,0xfe,0x13,0xff,0x13,0xff,0xb2,0xfe,0x4a,0xfe, +0x40,0xfe,0x3a,0xfe,0xd0,0xfd,0x78,0xfd,0x8d,0xfd,0xb5,0xfd, +0x9e,0xfd,0x47,0xfd,0xf,0xfd,0x60,0xfd,0x2,0xfe,0x50,0xfe, +0xf5,0xfd,0x6f,0xfd,0x8a,0xfd,0x26,0xfe,0x91,0xfe,0xa0,0xfe, +0x89,0xfe,0xac,0xfe,0x6b,0xff,0xa9,0x0,0xc4,0x1,0x89,0x2, +0x92,0x3,0xf7,0x4,0xea,0x5,0x74,0x6,0x49,0x7,0x43,0x8, +0xda,0x8,0xf0,0x8,0xd7,0x8,0x1c,0x9,0xd5,0x9,0x8e,0xa, +0xe6,0xa,0xfa,0xa,0x5d,0xb,0x36,0xc,0xc4,0xc,0x70,0xc, +0xc8,0xb,0xc2,0xb,0x1d,0xc,0xdb,0xb,0xe5,0xa,0xd4,0x9, +0x4a,0x9,0x5b,0x9,0xef,0x8,0xa1,0x7,0x99,0x6,0x61,0x6, +0x86,0x6,0x7b,0x6,0xc9,0x5,0xf7,0x4,0xd6,0x4,0x6,0x5, +0xdf,0x4,0x82,0x4,0x5d,0x4,0x88,0x4,0xc3,0x4,0xea,0x4, +0xff,0x4,0x1d,0x5,0x5a,0x5,0x8f,0x5,0xa3,0x5,0x93,0x5, +0x30,0x5,0x98,0x4,0x1,0x4,0x46,0x3,0x66,0x2,0x59,0x1, +0x7,0x0,0xba,0xfe,0xcc,0xfd,0x31,0xfd,0x6a,0xfc,0x42,0xfb, +0x61,0xfa,0x18,0xfa,0xd5,0xf9,0x4a,0xf9,0xaa,0xf8,0x41,0xf8, +0x2c,0xf8,0x15,0xf8,0xe8,0xf7,0xfe,0xf7,0x6c,0xf8,0x14,0xf9, +0x9d,0xf9,0xb8,0xf9,0xa8,0xf9,0xdf,0xf9,0x74,0xfa,0xf3,0xfa, +0xc0,0xfa,0x26,0xfa,0xc5,0xf9,0x85,0xf9,0x59,0xf9,0x62,0xf9, +0x44,0xf9,0xd7,0xf8,0x92,0xf8,0xd3,0xf8,0x6b,0xf9,0xf0,0xf9, +0x3d,0xfa,0x74,0xfa,0xc3,0xfa,0x4e,0xfb,0xec,0xfb,0x58,0xfc, +0xa5,0xfc,0xd8,0xfc,0xe7,0xfc,0xd,0xfd,0x33,0xfd,0x3e,0xfd, +0x73,0xfd,0xaf,0xfd,0xc0,0xfd,0xe5,0xfd,0x1c,0xfe,0x39,0xfe, +0x1e,0xfe,0xa9,0xfd,0x33,0xfd,0x21,0xfd,0x3b,0xfd,0x33,0xfd, +0xf6,0xfc,0xa0,0xfc,0x85,0xfc,0xc8,0xfc,0x4b,0xfd,0xcc,0xfd, +0xf,0xfe,0x55,0xfe,0x19,0xff,0x48,0x0,0x5d,0x1,0xf3,0x1, +0x12,0x2,0x11,0x2,0x53,0x2,0xbc,0x2,0xab,0x2,0x24,0x2, +0xa7,0x1,0x11,0x1,0x39,0x0,0x6b,0xff,0x9d,0xfe,0xa8,0xfd, +0xb7,0xfc,0xd7,0xfb,0xe1,0xfa,0xcd,0xf9,0xcf,0xf8,0xe9,0xf7, +0xe2,0xf6,0x3,0xf6,0xaa,0xf5,0x8f,0xf5,0x67,0xf5,0x71,0xf5, +0xfe,0xf5,0xe7,0xf6,0xb0,0xf7,0x57,0xf8,0x3e,0xf9,0x75,0xfa, +0xbc,0xfb,0xa7,0xfc,0x8,0xfd,0x5a,0xfd,0xfd,0xfd,0x89,0xfe, +0x70,0xfe,0xca,0xfd,0x4d,0xfd,0x38,0xfd,0xe0,0xfc,0xe0,0xfb, +0xaa,0xfa,0xb0,0xf9,0xe1,0xf8,0xfa,0xf7,0xd8,0xf6,0xa0,0xf5, +0x97,0xf4,0xcc,0xf3,0x3b,0xf3,0xe0,0xf2,0x8d,0xf2,0x6a,0xf2, +0xd8,0xf2,0x89,0xf3,0x36,0xf4,0x51,0xf5,0xd2,0xf6,0x16,0xf8, +0x2e,0xf9,0xa3,0xfa,0x2b,0xfc,0x10,0xfd,0xa6,0xfd,0xb7,0xfe, +0xe8,0xff,0x84,0x0,0xa8,0x0,0xe0,0x0,0x6b,0x1,0xe5,0x1, +0xd9,0x1,0x79,0x1,0x22,0x1,0xf3,0x0,0xef,0x0,0xa7,0x0, +0xa8,0xff,0xa8,0xfe,0xb6,0xfe,0x41,0xff,0x3,0xff,0x39,0xfe, +0xea,0xfd,0x58,0xfe,0x2e,0xff,0xd6,0xff,0x23,0x0,0xa6,0x0, +0x88,0x1,0x6f,0x2,0x22,0x3,0x6d,0x3,0x8e,0x3,0x29,0x4, +0x7,0x5,0x4d,0x5,0x10,0x5,0x1c,0x5,0xa5,0x5,0x3a,0x6, +0x78,0x6,0x3e,0x6,0xcc,0x5,0x8b,0x5,0x9a,0x5,0xb8,0x5, +0x6b,0x5,0xac,0x4,0x1d,0x4,0xe8,0x3,0x96,0x3,0x5,0x3, +0x92,0x2,0x92,0x2,0xc2,0x2,0x9e,0x2,0x20,0x2,0x7b,0x1, +0x8,0x1,0x4c,0x1,0xc6,0x1,0x5f,0x1,0x42,0x0,0x81,0xff, +0x67,0xff,0x39,0xff,0x82,0xfe,0xa0,0xfd,0x1d,0xfd,0x4a,0xfd, +0xd4,0xfd,0x12,0xfe,0x16,0xfe,0x73,0xfe,0x62,0xff,0x83,0x0, +0x5,0x1,0xfa,0x0,0x55,0x1,0x2b,0x2,0xe9,0x2,0x27,0x3, +0xf5,0x2,0x18,0x3,0xc1,0x3,0x2e,0x4,0x38,0x4,0x1b,0x4, +0xe0,0x3,0xb9,0x3,0xb1,0x3,0x5c,0x3,0x6c,0x2,0x66,0x1, +0xf9,0x0,0xb6,0x0,0x1,0x0,0x41,0xff,0xd1,0xfe,0x70,0xfe, +0xf,0xfe,0xd2,0xfd,0xa0,0xfd,0x6f,0xfd,0xa3,0xfd,0x5a,0xfe, +0x7,0xff,0x7b,0xff,0x23,0x0,0x34,0x1,0x6a,0x2,0x47,0x3, +0xdf,0x3,0xd9,0x4,0x2d,0x6,0x34,0x7,0xb1,0x7,0xbc,0x7, +0xb8,0x7,0x26,0x8,0xb9,0x8,0x82,0x8,0x65,0x7,0x42,0x6, +0x95,0x5,0x12,0x5,0x48,0x4,0xf,0x3,0xd8,0x1,0x26,0x1, +0xa8,0x0,0xff,0xff,0x6c,0xff,0xc,0xff,0xd0,0xfe,0xbe,0xfe, +0xad,0xfe,0xa5,0xfe,0xf5,0xfe,0x8a,0xff,0x36,0x0,0xd,0x1, +0x4,0x2,0x5,0x3,0xfb,0x3,0x8d,0x4,0xf8,0x4,0xe5,0x5, +0xf3,0x6,0x6f,0x7,0x7e,0x7,0x6e,0x7,0x6c,0x7,0x8b,0x7, +0xab,0x7,0xca,0x7,0xc6,0x7,0x6b,0x7,0xfc,0x6,0xa4,0x6, +0x6c,0x6,0x71,0x6,0x27,0x6,0xf,0x5,0xc0,0x3,0xc2,0x2, +0xea,0x1,0xf,0x1,0x13,0x0,0xe7,0xfe,0xf0,0xfd,0x76,0xfd, +0x16,0xfd,0xbc,0xfc,0xfa,0xfc,0xd3,0xfd,0xab,0xfe,0x29,0xff, +0x85,0xff,0x3d,0x0,0x2b,0x1,0x87,0x1,0x48,0x1,0x21,0x1, +0x52,0x1,0xbb,0x1,0x1c,0x2,0x7,0x2,0x95,0x1,0x75,0x1, +0xb9,0x1,0xc8,0x1,0x63,0x1,0xa7,0x0,0xd0,0xff,0x3f,0xff, +0xc1,0xfe,0xe4,0xfd,0xf2,0xfc,0x49,0xfc,0xca,0xfb,0x7a,0xfb, +0x6d,0xfb,0x77,0xfb,0x80,0xfb,0xd2,0xfb,0x8b,0xfc,0x1b,0xfd, +0x32,0xfd,0x3a,0xfd,0x80,0xfd,0xfe,0xfd,0x64,0xfe,0x4b,0xfe, +0xd,0xfe,0x4b,0xfe,0x8,0xff,0xe2,0xff,0x66,0x0,0x7c,0x0, +0xc7,0x0,0xc5,0x1,0xe3,0x2,0x32,0x3,0xd0,0x2,0x9f,0x2, +0xda,0x2,0x2d,0x3,0x31,0x3,0xa8,0x2,0x23,0x2,0x3f,0x2, +0xaf,0x2,0x1,0x3,0xf0,0x2,0x80,0x2,0x4e,0x2,0x82,0x2, +0x55,0x2,0x7e,0x1,0x8f,0x0,0xe9,0xff,0x48,0xff,0xa2,0xfe, +0x2a,0xfe,0x90,0xfd,0xca,0xfc,0x84,0xfc,0xb5,0xfc,0xbb,0xfc, +0x9a,0xfc,0xae,0xfc,0x4,0xfd,0x46,0xfd,0x2f,0xfd,0x17,0xfd, +0x68,0xfd,0x18,0xfe,0xf3,0xfe,0xcc,0xff,0xaf,0x0,0xc0,0x1, +0xdf,0x2,0xe9,0x3,0xc2,0x4,0x61,0x5,0x2c,0x6,0x37,0x7, +0xcc,0x7,0x91,0x7,0x13,0x7,0xfe,0x6,0x5c,0x7,0xab,0x7, +0xa5,0x7,0x60,0x7,0xf9,0x6,0xac,0x6,0x99,0x6,0x8e,0x6, +0x58,0x6,0xa2,0x5,0x58,0x4,0x38,0x3,0xd5,0x2,0xc5,0x2, +0x70,0x2,0xc9,0x1,0x43,0x1,0x81,0x1,0xa7,0x2,0xd4,0x3, +0x22,0x4,0x29,0x4,0xe6,0x4,0x11,0x6,0x4,0x7,0x6d,0x7, +0x39,0x7,0x32,0x7,0xe6,0x7,0x82,0x8,0x5a,0x8,0xe5,0x7, +0xbf,0x7,0xfe,0x7,0x29,0x8,0xd8,0x7,0x43,0x7,0xc1,0x6, +0x5b,0x6,0xb7,0x5,0x6e,0x4,0xc7,0x2,0x56,0x1,0x0,0x0, +0x63,0xfe,0x9f,0xfc,0x24,0xfb,0x1c,0xfa,0x63,0xf9,0xbd,0xf8, +0x5,0xf8,0x8c,0xf7,0xcd,0xf7,0x7e,0xf8,0xbb,0xf8,0x6c,0xf8, +0x56,0xf8,0xb9,0xf8,0x30,0xf9,0x97,0xf9,0xdd,0xf9,0xe4,0xf9, +0xe,0xfa,0xba,0xfa,0xad,0xfb,0x87,0xfc,0x13,0xfd,0x71,0xfd, +0xe5,0xfd,0x5d,0xfe,0x92,0xfe,0x81,0xfe,0x36,0xfe,0xad,0xfd, +0xe,0xfd,0x78,0xfc,0xab,0xfb,0xb6,0xfa,0xb,0xfa,0x8e,0xf9, +0xe6,0xf8,0x45,0xf8,0xf0,0xf7,0xe8,0xf7,0xf1,0xf7,0xab,0xf7, +0x34,0xf7,0xe,0xf7,0x6a,0xf7,0xfe,0xf7,0x5f,0xf8,0x7b,0xf8, +0x95,0xf8,0xf9,0xf8,0xbf,0xf9,0x75,0xfa,0xc2,0xfa,0x29,0xfb, +0x0,0xfc,0xee,0xfc,0xb8,0xfd,0x62,0xfe,0xf9,0xfe,0x90,0xff, +0x4f,0x0,0x39,0x1,0xcb,0x1,0xd3,0x1,0xdc,0x1,0x1,0x2, +0x2,0x2,0xe2,0x1,0x70,0x1,0xbb,0x0,0x34,0x0,0xd2,0xff, +0x76,0xff,0x3a,0xff,0xfb,0xfe,0xb7,0xfe,0xa9,0xfe,0x9b,0xfe, +0x3b,0xfe,0xca,0xfd,0x8a,0xfd,0x3b,0xfd,0xba,0xfc,0x35,0xfc, +0xbe,0xfb,0x73,0xfb,0x4d,0xfb,0x0,0xfb,0x9d,0xfa,0x71,0xfa, +0xae,0xfa,0x67,0xfb,0x19,0xfc,0x49,0xfc,0x6d,0xfc,0xfa,0xfc, +0xb0,0xfd,0x3a,0xfe,0x83,0xfe,0x82,0xfe,0x45,0xfe,0x12,0xfe, +0x25,0xfe,0x3e,0xfe,0x3,0xfe,0x9b,0xfd,0x50,0xfd,0x0,0xfd, +0x93,0xfc,0x2c,0xfc,0x9f,0xfb,0xae,0xfa,0x8a,0xf9,0x62,0xf8, +0x35,0xf7,0x6,0xf6,0xdb,0xf4,0xd4,0xf3,0xfc,0xf2,0x2e,0xf2, +0x8f,0xf1,0x66,0xf1,0xc4,0xf1,0x87,0xf2,0x45,0xf3,0xcf,0xf3, +0x6f,0xf4,0x42,0xf5,0x47,0xf6,0x75,0xf7,0x77,0xf8,0x2d,0xf9, +0xce,0xf9,0x97,0xfa,0x92,0xfb,0x63,0xfc,0xda,0xfc,0x5c,0xfd, +0xe,0xfe,0xa0,0xfe,0xe2,0xfe,0xed,0xfe,0x8,0xff,0x3f,0xff, +0x36,0xff,0x9f,0xfe,0x8e,0xfd,0x83,0xfc,0xef,0xfb,0xae,0xfb, +0x67,0xfb,0x1,0xfb,0x93,0xfa,0x43,0xfa,0x3d,0xfa,0x93,0xfa, +0x1f,0xfb,0xc6,0xfb,0x6f,0xfc,0xbe,0xfc,0xc1,0xfc,0x2c,0xfd, +0xc,0xfe,0xd0,0xfe,0x51,0xff,0xa4,0xff,0xe1,0xff,0x3a,0x0, +0xc0,0x0,0x63,0x1,0xfa,0x1,0x65,0x2,0xa9,0x2,0xcd,0x2, +0x6,0x3,0x5c,0x3,0x7c,0x3,0x70,0x3,0x7b,0x3,0x8f,0x3, +0x8e,0x3,0x57,0x3,0x10,0x3,0xf,0x3,0x28,0x3,0x18,0x3, +0xe0,0x2,0x66,0x2,0xed,0x1,0xd4,0x1,0xf6,0x1,0x1c,0x2, +0x4,0x2,0x8c,0x1,0x2b,0x1,0x13,0x1,0xe4,0x0,0x7e,0x0, +0xe6,0xff,0x1e,0xff,0x75,0xfe,0x3b,0xfe,0x23,0xfe,0x88,0xfd, +0xa7,0xfc,0x90,0xfc,0x6e,0xfd,0x40,0xfe,0x70,0xfe,0x70,0xfe, +0xfb,0xfe,0x30,0x0,0x67,0x1,0xfa,0x1,0x17,0x2,0x5b,0x2, +0xd0,0x2,0xf,0x3,0xe2,0x2,0x86,0x2,0x9c,0x2,0x3a,0x3, +0x85,0x3,0x1b,0x3,0x96,0x2,0x87,0x2,0xf4,0x2,0x29,0x3, +0x96,0x2,0xba,0x1,0x18,0x1,0xa0,0x0,0x41,0x0,0xdc,0xff, +0x7d,0xff,0x51,0xff,0x33,0xff,0x32,0xff,0x79,0xff,0xc5,0xff, +0xe,0x0,0x72,0x0,0xd2,0x0,0x30,0x1,0x82,0x1,0xd8,0x1, +0x80,0x2,0x3a,0x3,0x8d,0x3,0x99,0x3,0xb8,0x3,0x46,0x4, +0x62,0x5,0x71,0x6,0xb8,0x6,0x68,0x6,0x97,0x6,0xb7,0x7, +0xb1,0x8,0xa0,0x8,0x5,0x8,0xae,0x7,0xd3,0x7,0xf9,0x7, +0x70,0x7,0x70,0x6,0xb7,0x5,0x65,0x5,0x2c,0x5,0xa8,0x4, +0xd7,0x3,0x62,0x3,0x77,0x3,0x72,0x3,0x30,0x3,0x12,0x3, +0x23,0x3,0x48,0x3,0xa1,0x3,0x2a,0x4,0x7f,0x4,0x7b,0x4, +0x99,0x4,0x18,0x5,0x8d,0x5,0xa5,0x5,0x7e,0x5,0x7b,0x5, +0x1c,0x6,0x23,0x7,0x7d,0x7,0x0,0x7,0xd1,0x6,0x5c,0x7, +0xef,0x7,0xdc,0x7,0xc8,0x6,0x56,0x5,0xdb,0x4,0xeb,0x4, +0xe2,0x3,0xfd,0x1,0xa5,0x0,0x20,0x0,0xbc,0xff,0xc5,0xfe, +0x63,0xfd,0xba,0xfc,0x1a,0xfd,0x6e,0xfd,0x12,0xfd,0x79,0xfc, +0x55,0xfc,0x17,0xfd,0x57,0xfe,0xe5,0xfe,0xa9,0xfe,0xdb,0xfe, +0xdd,0xff,0x8,0x1,0xf0,0x1,0x68,0x2,0xbb,0x2,0x91,0x3, +0x99,0x4,0x1b,0x5,0x60,0x5,0xd5,0x5,0x3a,0x6,0x61,0x6, +0x47,0x6,0xbb,0x5,0xca,0x4,0x0,0x4,0x84,0x3,0xb9,0x2, +0x67,0x1,0xb,0x0,0xdd,0xfe,0xb6,0xfd,0x83,0xfc,0x56,0xfb, +0x74,0xfa,0xf3,0xf9,0x86,0xf9,0x8,0xf9,0x8f,0xf8,0x57,0xf8, +0xb3,0xf8,0x53,0xf9,0x85,0xf9,0x73,0xf9,0x90,0xf9,0xf7,0xf9, +0xd8,0xfa,0xf3,0xfb,0xb7,0xfc,0x52,0xfd,0x7,0xfe,0xaf,0xfe, +0x59,0xff,0x7,0x0,0xab,0x0,0x44,0x1,0x81,0x1,0x63,0x1, +0x47,0x1,0x3f,0x1,0x48,0x1,0x26,0x1,0xa4,0x0,0x1b,0x0, +0x79,0xff,0x6f,0xfe,0x75,0xfd,0xc6,0xfc,0xf9,0xfb,0xec,0xfa, +0xc1,0xf9,0xaf,0xf8,0xcc,0xf7,0xc,0xf7,0x91,0xf6,0x37,0xf6, +0xcf,0xf5,0xc2,0xf5,0x26,0xf6,0xa1,0xf6,0x29,0xf7,0xe4,0xf7, +0xd4,0xf8,0xe0,0xf9,0x11,0xfb,0x8f,0xfc,0x20,0xfe,0x85,0xff, +0xce,0x0,0x9,0x2,0x9b,0x3,0xbd,0x5,0xaf,0x7,0xf4,0x8, +0x10,0xa,0x6f,0xb,0xd6,0xc,0xd9,0xd,0x4a,0xe,0x22,0xe, +0x97,0xd,0x8,0xd,0x4c,0xc,0x7,0xb,0x76,0x9,0xe8,0x7, +0xa4,0x6,0xc3,0x5,0xa5,0x4,0x31,0x3,0x1e,0x2,0x77,0x1, +0xe4,0x0,0x4e,0x0,0x8a,0xff,0xa8,0xfe,0xf9,0xfd,0x9d,0xfd, +0x75,0xfd,0x58,0xfd,0x7f,0xfd,0x21,0xfe,0x19,0xff,0x60,0x0, +0xd1,0x1,0x28,0x3,0x8c,0x4,0x9,0x6,0x68,0x7,0x92,0x8, +0x5e,0x9,0xb7,0x9,0xcd,0x9,0xd0,0x9,0xd4,0x9,0x6f,0x9, +0x5b,0x8,0x54,0x7,0xc7,0x6,0x33,0x6,0x51,0x5,0x7,0x4, +0x7c,0x2,0x6e,0x1,0xdb,0x0,0xca,0xff,0x13,0xfe,0x65,0xfc, +0x21,0xfb,0x26,0xfa,0x23,0xf9,0xff,0xf7,0xe,0xf7,0x85,0xf6, +0x3a,0xf6,0x9,0xf6,0xf4,0xf5,0xfe,0xf5,0x30,0xf6,0x82,0xf6, +0xbd,0xf6,0xd6,0xf6,0x23,0xf7,0xbe,0xf7,0x55,0xf8,0xdd,0xf8, +0x9a,0xf9,0x9c,0xfa,0xb2,0xfb,0xa4,0xfc,0x84,0xfd,0x9b,0xfe, +0xcb,0xff,0xc2,0x0,0x74,0x1,0xdb,0x1,0x9,0x2,0x30,0x2, +0x3d,0x2,0xe3,0x1,0xfa,0x0,0xc8,0xff,0xed,0xfe,0x7a,0xfe, +0xdd,0xfd,0xd4,0xfc,0x7e,0xfb,0x3c,0xfa,0x67,0xf9,0xdc,0xf8, +0x47,0xf8,0x98,0xf7,0xff,0xf6,0xb6,0xf6,0xa5,0xf6,0xa7,0xf6, +0xe6,0xf6,0x72,0xf7,0x37,0xf8,0x1a,0xf9,0xe1,0xf9,0x94,0xfa, +0x9d,0xfb,0x16,0xfd,0x8b,0xfe,0x9b,0xff,0x8b,0x0,0xa2,0x1, +0xc3,0x2,0xe5,0x3,0xec,0x4,0x98,0x5,0xff,0x5,0x18,0x6, +0xc6,0x5,0x56,0x5,0xd1,0x4,0xfc,0x3,0xeb,0x2,0xa2,0x1, +0x36,0x0,0xff,0xfe,0xf1,0xfd,0xac,0xfc,0x3e,0xfb,0x1d,0xfa, +0x6d,0xf9,0xe9,0xf8,0x4d,0xf8,0x90,0xf7,0x9,0xf7,0x2,0xf7, +0x24,0xf7,0x24,0xf7,0x1e,0xf7,0x8,0xf7,0x24,0xf7,0xd7,0xf7, +0xbe,0xf8,0x73,0xf9,0x28,0xfa,0xe8,0xfa,0xbe,0xfb,0xe5,0xfc, +0x1e,0xfe,0xbb,0xfe,0xad,0xfe,0xb0,0xfe,0xfd,0xfe,0x29,0xff, +0x2,0xff,0x5a,0xfe,0x4b,0xfd,0x8c,0xfc,0xc,0xfc,0x2f,0xfb, +0x3b,0xfa,0x84,0xf9,0xe4,0xf8,0x61,0xf8,0xe1,0xf7,0x21,0xf7, +0x79,0xf6,0x3b,0xf6,0x0,0xf6,0x81,0xf5,0x1,0xf5,0xba,0xf4, +0xbb,0xf4,0xf4,0xf4,0x40,0xf5,0x9e,0xf5,0x2f,0xf6,0x3,0xf7, +0xf3,0xf7,0x98,0xf8,0xf5,0xf8,0xa5,0xf9,0xae,0xfa,0x73,0xfb, +0xb9,0xfb,0xd0,0xfb,0x3f,0xfc,0x37,0xfd,0x5c,0xfe,0x45,0xff, +0xb2,0xff,0xe8,0xff,0xa5,0x0,0xc5,0x1,0x53,0x2,0x33,0x2, +0xf8,0x1,0xbb,0x1,0x2a,0x1,0x2c,0x0,0x3,0xff,0xeb,0xfd, +0xe1,0xfc,0xee,0xfb,0x15,0xfb,0x2e,0xfa,0x4a,0xf9,0xcb,0xf8, +0xbd,0xf8,0xb5,0xf8,0x8f,0xf8,0xa2,0xf8,0xa,0xf9,0x8d,0xf9, +0x17,0xfa,0xb1,0xfa,0x63,0xfb,0x55,0xfc,0x96,0xfd,0xdb,0xfe, +0xef,0xff,0x11,0x1,0x76,0x2,0xf9,0x3,0x68,0x5,0x94,0x6, +0x67,0x7,0xfe,0x7,0x60,0x8,0x7d,0x8,0x67,0x8,0x3d,0x8, +0x1e,0x8,0xe7,0x7,0x3f,0x7,0x64,0x6,0xf5,0x5,0xa3,0x5, +0x94,0x4,0xfc,0x2,0xae,0x1,0xb8,0x0,0xab,0xff,0x49,0xfe, +0xa9,0xfc,0x53,0xfb,0xa5,0xfa,0x44,0xfa,0xef,0xf9,0xc7,0xf9, +0x7,0xfa,0xc,0xfb,0x70,0xfc,0x50,0xfd,0x4,0xfe,0x6d,0xff, +0x5e,0x1,0xa,0x3,0xf9,0x3,0x9e,0x4,0xd3,0x5,0x62,0x7, +0x5e,0x8,0xb3,0x8,0xec,0x8,0x4d,0x9,0xc5,0x9,0x7,0xa, +0x9f,0x9,0xa5,0x8,0xca,0x7,0x24,0x7,0x1a,0x6,0xa4,0x4, +0x3c,0x3,0x13,0x2,0x3,0x1,0xbb,0xff,0x7f,0xfe,0xa,0xfe, +0x17,0xfe,0xea,0xfd,0xb4,0xfd,0xb6,0xfd,0x2,0xfe,0xca,0xfe, +0x90,0xff,0xb1,0xff,0x9c,0xff,0xfd,0xff,0xea,0x0,0xd,0x2, +0xe6,0x2,0x60,0x3,0xe7,0x3,0xd7,0x4,0x6,0x6,0xe7,0x6, +0x51,0x7,0xb2,0x7,0x43,0x8,0xce,0x8,0xe9,0x8,0x6d,0x8, +0x15,0x8,0x87,0x8,0x10,0x9,0xcc,0x8,0xe,0x8,0xbc,0x7, +0x30,0x8,0xef,0x8,0xe,0x9,0x41,0x8,0x93,0x7,0xc9,0x7, +0x1f,0x8,0xd2,0x7,0xfd,0x6,0x15,0x6,0xc8,0x5,0xec,0x5, +0x71,0x5,0x6e,0x4,0xd1,0x3,0xc7,0x3,0xf5,0x3,0xf3,0x3, +0xb8,0x3,0x8e,0x3,0x86,0x3,0xb2,0x3,0xe4,0x3,0xd2,0x3, +0xe7,0x3,0x61,0x4,0xec,0x4,0x76,0x5,0xd6,0x5,0xf,0x6, +0xa2,0x6,0x7b,0x7,0x31,0x8,0xb0,0x8,0xe6,0x8,0xf4,0x8, +0x13,0x9,0x19,0x9,0xac,0x8,0xb3,0x7,0xb2,0x6,0xe6,0x5, +0xe1,0x4,0x9c,0x3,0x3f,0x2,0xef,0x0,0x21,0x0,0x79,0xff, +0x4a,0xfe,0xff,0xfc,0x8,0xfc,0x8c,0xfb,0x87,0xfb,0x2d,0xfb, +0x46,0xfa,0xcf,0xf9,0x28,0xfa,0xe1,0xfa,0xaa,0xfb,0x58,0xfc, +0x12,0xfd,0x51,0xfe,0xf4,0xff,0x29,0x1,0xbb,0x1,0x24,0x2, +0x9c,0x2,0x23,0x3,0x60,0x3,0xe7,0x2,0x4b,0x2,0x1b,0x2, +0xda,0x1,0x1e,0x1,0x8,0x0,0x1,0xff,0x72,0xfe,0x17,0xfe, +0x7e,0xfd,0x9e,0xfc,0xa7,0xfb,0xb,0xfb,0xc5,0xfa,0x52,0xfa, +0xb0,0xf9,0x9,0xf9,0xb5,0xf8,0xfe,0xf8,0x2e,0xf9,0xe0,0xf8, +0xd8,0xf8,0x76,0xf9,0x67,0xfa,0x28,0xfb,0x79,0xfb,0xc0,0xfb, +0x5c,0xfc,0x11,0xfd,0x67,0xfd,0x2b,0xfd,0xd7,0xfc,0x1,0xfd, +0x89,0xfd,0xdc,0xfd,0xc0,0xfd,0xe2,0xfd,0xe6,0xfe,0x23,0x0, +0x98,0x0,0x51,0x0,0x19,0x0,0x7b,0x0,0x24,0x1,0x72,0x1, +0x3d,0x1,0xe1,0x0,0xee,0x0,0x4a,0x1,0x59,0x1,0x20,0x1, +0xf4,0x0,0x6,0x1,0x66,0x1,0x8e,0x1,0x41,0x1,0x11,0x1, +0x26,0x1,0x20,0x1,0xb4,0x0,0xdd,0xff,0x26,0xff,0xea,0xfe, +0xd0,0xfe,0x71,0xfe,0xce,0xfd,0x37,0xfd,0xf9,0xfc,0x24,0xfd, +0xa9,0xfd,0x16,0xfe,0x22,0xfe,0x56,0xfe,0x0,0xff,0xd2,0xff, +0xa0,0x0,0x3c,0x1,0xa2,0x1,0x29,0x2,0xea,0x2,0x73,0x3, +0x66,0x3,0x1d,0x3,0x1c,0x3,0x43,0x3,0x18,0x3,0x5d,0x2, +0x86,0x1,0x58,0x1,0x91,0x1,0x66,0x1,0xd6,0x0,0x50,0x0, +0x54,0x0,0xd9,0x0,0xfb,0x0,0x88,0x0,0x4d,0x0,0xa4,0x0, +0x60,0x1,0xfd,0x1,0x15,0x2,0x46,0x2,0x56,0x3,0xf4,0x4, +0x38,0x6,0xee,0x6,0xd2,0x7,0x25,0x9,0x7c,0xa,0xcd,0xb, +0xad,0xc,0xa4,0xc,0x80,0xc,0xa0,0xc,0x40,0xc,0x51,0xb, +0x34,0xa,0x25,0x9,0x88,0x8,0x3,0x8,0xe2,0x6,0x7f,0x5, +0x82,0x4,0xfc,0x3,0x9e,0x3,0xdb,0x2,0x77,0x1,0xe,0x0, +0x5c,0xff,0x11,0xff,0x37,0xfe,0xf2,0xfc,0x4a,0xfc,0x7e,0xfc, +0xfa,0xfc,0x2a,0xfd,0x7,0xfd,0x68,0xfd,0xb0,0xfe,0xf1,0xff, +0x88,0x0,0xe7,0x0,0x7d,0x1,0x51,0x2,0x6,0x3,0xb,0x3, +0x6a,0x2,0xef,0x1,0xfd,0x1,0xf4,0x1,0x33,0x1,0x2,0x0, +0x23,0xff,0x1,0xff,0x27,0xff,0xa7,0xfe,0x6f,0xfd,0x5b,0xfc, +0xbe,0xfb,0x35,0xfb,0x91,0xfa,0xc4,0xf9,0xae,0xf8,0xca,0xf7, +0x9e,0xf7,0xa7,0xf7,0x58,0xf7,0x17,0xf7,0x2b,0xf7,0x4b,0xf7, +0x5d,0xf7,0x85,0xf7,0xf2,0xf7,0xb1,0xf8,0x83,0xf9,0x23,0xfa, +0x9a,0xfa,0x1a,0xfb,0xec,0xfb,0x1f,0xfd,0x2e,0xfe,0x92,0xfe, +0xc4,0xfe,0x67,0xff,0x1b,0x0,0x65,0x0,0x4c,0x0,0x0,0x0, +0xfb,0xff,0x20,0x0,0xb2,0xff,0xed,0xfe,0x5e,0xfe,0xee,0xfd, +0x7c,0xfd,0xc2,0xfc,0xba,0xfb,0xf8,0xfa,0x81,0xfa,0xf3,0xf9, +0x53,0xf9,0xba,0xf8,0x4f,0xf8,0x21,0xf8,0x14,0xf8,0x34,0xf8, +0x7b,0xf8,0xea,0xf8,0x97,0xf9,0x5b,0xfa,0x3a,0xfb,0x3c,0xfc, +0x1,0xfd,0x76,0xfd,0xf5,0xfd,0xc1,0xfe,0xa2,0xff,0x17,0x0, +0x2f,0x0,0x32,0x0,0x4c,0x0,0xb8,0x0,0xdf,0x0,0x37,0x0, +0xa1,0xff,0x78,0xff,0xd,0xff,0x5d,0xfe,0x88,0xfd,0x76,0xfc, +0x87,0xfb,0xd4,0xfa,0xf5,0xf9,0xd4,0xf8,0xc4,0xf7,0x1d,0xf7, +0xee,0xf6,0xe3,0xf6,0x99,0xf6,0x46,0xf6,0x79,0xf6,0x15,0xf7, +0xd5,0xf7,0xad,0xf8,0x43,0xf9,0xbf,0xf9,0xbf,0xfa,0x9,0xfc, +0x14,0xfd,0xa4,0xfd,0xee,0xfd,0xa8,0xfe,0xb7,0xff,0x4c,0x0, +0x67,0x0,0x5c,0x0,0x65,0x0,0x6f,0x0,0xe4,0xff,0xec,0xfe, +0x32,0xfe,0x9c,0xfd,0xe5,0xfc,0xf3,0xfb,0xcf,0xfa,0x1e,0xfa, +0x0,0xfa,0xad,0xf9,0x0,0xf9,0x7d,0xf8,0x83,0xf8,0xf9,0xf8, +0x1f,0xf9,0x83,0xf8,0xa,0xf8,0x8a,0xf8,0x58,0xf9,0xa3,0xf9, +0xa1,0xf9,0xcd,0xf9,0x96,0xfa,0xdd,0xfb,0x99,0xfc,0xa4,0xfc, +0x28,0xfd,0x64,0xfe,0x85,0xff,0x17,0x0,0x41,0x0,0x76,0x0, +0xfd,0x0,0x9a,0x1,0xd7,0x1,0xa3,0x1,0x79,0x1,0x91,0x1, +0xb5,0x1,0xe5,0x1,0x26,0x2,0x5b,0x2,0x83,0x2,0x7c,0x2, +0x3f,0x2,0xf6,0x1,0x76,0x1,0xac,0x0,0xda,0xff,0x1c,0xff, +0x65,0xfe,0x8e,0xfd,0xa2,0xfc,0xa,0xfc,0xd9,0xfb,0xb8,0xfb, +0xac,0xfb,0xe5,0xfb,0x4a,0xfc,0x8d,0xfc,0x98,0xfc,0xd2,0xfc, +0x64,0xfd,0xdd,0xfd,0x17,0xfe,0x4b,0xfe,0x8a,0xfe,0xfe,0xfe, +0x9e,0xff,0xc,0x0,0x77,0x0,0x37,0x1,0xff,0x1,0x80,0x2, +0x95,0x2,0x65,0x2,0x91,0x2,0xd8,0x2,0x5c,0x2,0x67,0x1, +0x9c,0x0,0x1b,0x0,0xe5,0xff,0x57,0xff,0x1c,0xfe,0x2d,0xfd, +0x1e,0xfd,0x39,0xfd,0xb9,0xfc,0xb8,0xfb,0x7,0xfb,0x4,0xfb, +0x44,0xfb,0x5e,0xfb,0xf,0xfb,0x93,0xfa,0x9e,0xfa,0x2a,0xfb, +0x9f,0xfb,0xe5,0xfb,0x4f,0xfc,0xfa,0xfc,0xa6,0xfd,0x42,0xfe, +0x9,0xff,0xf5,0xff,0xdd,0x0,0xa6,0x1,0x1f,0x2,0x5c,0x2, +0x93,0x2,0xe1,0x2,0x40,0x3,0x5b,0x3,0x0,0x3,0x74,0x2, +0x19,0x2,0x1e,0x2,0x19,0x2,0x82,0x1,0xcc,0x0,0x85,0x0, +0x95,0x0,0xce,0x0,0xcd,0x0,0x8e,0x0,0xd9,0x0,0xa6,0x1, +0x9,0x2,0xd6,0x1,0x98,0x1,0xb8,0x1,0x30,0x2,0x7f,0x2, +0x31,0x2,0xc5,0x1,0x1f,0x2,0xfd,0x2,0x84,0x3,0xca,0x3, +0x3d,0x4,0x1b,0x5,0x75,0x6,0x72,0x7,0x95,0x7,0xd7,0x7, +0xa2,0x8,0x49,0x9,0x66,0x9,0xec,0x8,0x3e,0x8,0xee,0x7, +0xd9,0x7,0x92,0x7,0xfb,0x6,0x55,0x6,0x24,0x6,0x6c,0x6, +0xbb,0x6,0xd7,0x6,0xac,0x6,0x8b,0x6,0xe6,0x6,0x6c,0x7, +0x8c,0x7,0x46,0x7,0xa,0x7,0x48,0x7,0xc3,0x7,0xcf,0x7, +0x63,0x7,0xf9,0x6,0xd4,0x6,0xf6,0x6,0xee,0x6,0x40,0x6, +0x55,0x5,0xd0,0x4,0x77,0x4,0xdd,0x3,0x19,0x3,0x48,0x2, +0x6c,0x1,0x97,0x0,0xc7,0xff,0x2d,0xff,0xe4,0xfe,0x7e,0xfe, +0xe2,0xfd,0x76,0xfd,0x52,0xfd,0x76,0xfd,0xdc,0xfd,0x24,0xfe, +0x1e,0xfe,0x7,0xfe,0x30,0xfe,0x99,0xfe,0xe4,0xfe,0xef,0xfe, +0x7,0xff,0x44,0xff,0x89,0xff,0xd3,0xff,0x28,0x0,0x81,0x0, +0xb3,0x0,0xd1,0x0,0x6,0x1,0xc,0x1,0xc2,0x0,0x78,0x0, +0x39,0x0,0xca,0xff,0x13,0xff,0x29,0xfe,0x4e,0xfd,0x99,0xfc, +0x9,0xfc,0x91,0xfb,0xe9,0xfa,0x3a,0xfa,0xb,0xfa,0x34,0xfa, +0x55,0xfa,0x86,0xfa,0xf2,0xfa,0xaa,0xfb,0x7d,0xfc,0xc,0xfd, +0x5f,0xfd,0xce,0xfd,0x5e,0xfe,0xa8,0xfe,0x81,0xfe,0x77,0xfe, +0xe5,0xfe,0x38,0xff,0x12,0xff,0xfe,0xfe,0x42,0xff,0x83,0xff, +0x9c,0xff,0x83,0xff,0x39,0xff,0x33,0xff,0x7e,0xff,0x71,0xff, +0xd,0xff,0xe1,0xfe,0x5,0xff,0x48,0xff,0x44,0xff,0xc8,0xfe, +0x7d,0xfe,0xe1,0xfe,0x89,0xff,0xe4,0xff,0xf1,0xff,0x2e,0x0, +0xc8,0x0,0x76,0x1,0x33,0x2,0xe1,0x2,0x1c,0x3,0x2d,0x3, +0x7e,0x3,0xbc,0x3,0x8e,0x3,0xf8,0x2,0x1f,0x2,0x5d,0x1, +0xd2,0x0,0x25,0x0,0xf,0xff,0xe3,0xfd,0x32,0xfd,0xf1,0xfc, +0x96,0xfc,0xed,0xfb,0x5a,0xfb,0x4d,0xfb,0x98,0xfb,0xc3,0xfb, +0xc9,0xfb,0xe6,0xfb,0x53,0xfc,0x25,0xfd,0xd9,0xfd,0x1c,0xfe, +0x86,0xfe,0x72,0xff,0x5f,0x0,0xd3,0x0,0xfb,0x0,0x70,0x1, +0x13,0x2,0x2c,0x2,0xec,0x1,0xdf,0x1,0xbf,0x1,0x62,0x1, +0xa,0x1,0xb5,0x0,0x4b,0x0,0xd2,0xff,0x84,0xff,0x91,0xff, +0xb0,0xff,0xb6,0xff,0xc4,0xff,0xb4,0xff,0x9e,0xff,0xd7,0xff, +0x1d,0x0,0x0,0x0,0x8e,0xff,0x1e,0xff,0xf2,0xfe,0xe4,0xfe, +0x9d,0xfe,0x21,0xfe,0xe8,0xfd,0x3c,0xfe,0xa1,0xfe,0xb4,0xfe, +0xd9,0xfe,0x5a,0xff,0x33,0x0,0x34,0x1,0xd2,0x1,0x16,0x2, +0xb9,0x2,0xc7,0x3,0xd5,0x4,0xbb,0x5,0x62,0x6,0xf7,0x6, +0xed,0x7,0x1d,0x9,0xf0,0x9,0x66,0xa,0xd1,0xa,0x21,0xb, +0x33,0xb,0xf,0xb,0xc9,0xa,0x86,0xa,0xf,0xa,0x19,0x9, +0xe0,0x7,0x94,0x6,0x3a,0x5,0xf4,0x3,0x98,0x2,0x14,0x1, +0x9f,0xff,0x38,0xfe,0xf1,0xfc,0xc9,0xfb,0xa7,0xfa,0xdc,0xf9, +0x78,0xf9,0x2d,0xf9,0xe3,0xf8,0x8f,0xf8,0xa0,0xf8,0x6d,0xf9, +0x4e,0xfa,0xe1,0xfa,0x7f,0xfb,0x6b,0xfc,0xb4,0xfd,0xbe,0xfe, +0xe,0xff,0x58,0xff,0x1,0x0,0xb1,0x0,0x32,0x1,0x32,0x1, +0xc6,0x0,0x79,0x0,0x57,0x0,0x1c,0x0,0xa6,0xff,0xf9,0xfe, +0x52,0xfe,0xb5,0xfd,0xeb,0xfc,0xe2,0xfb,0xd3,0xfa,0xa,0xfa, +0x6e,0xf9,0xde,0xf8,0x76,0xf8,0x1a,0xf8,0xd0,0xf7,0xd1,0xf7, +0x10,0xf8,0x7d,0xf8,0xdc,0xf8,0xe2,0xf8,0xd9,0xf8,0xe,0xf9, +0x64,0xf9,0xb0,0xf9,0xe4,0xf9,0x3c,0xfa,0xc4,0xfa,0x27,0xfb, +0x69,0xfb,0xbc,0xfb,0xe,0xfc,0x59,0xfc,0x95,0xfc,0xa0,0xfc, +0x53,0xfc,0xcc,0xfb,0x6b,0xfb,0x37,0xfb,0x19,0xfb,0x2e,0xfb, +0x52,0xfb,0x60,0xfb,0x78,0xfb,0xde,0xfb,0xdb,0xfc,0x15,0xfe, +0xee,0xfe,0x7b,0xff,0xee,0xff,0x40,0x0,0x75,0x0,0x86,0x0, +0x94,0x0,0xa2,0x0,0x83,0x0,0x55,0x0,0x30,0x0,0x3d,0x0, +0xb4,0x0,0x23,0x1,0x2c,0x1,0x17,0x1,0x1f,0x1,0x43,0x1, +0x24,0x1,0xad,0x0,0x5c,0x0,0x14,0x0,0x96,0xff,0x2a,0xff, +0xc6,0xfe,0x82,0xfe,0x8f,0xfe,0x9e,0xfe,0x89,0xfe,0x37,0xfe, +0xee,0xfd,0x64,0xfe,0xfd,0xfe,0xd0,0xfe,0x74,0xfe,0x69,0xfe, +0x93,0xfe,0xcb,0xfe,0x88,0xfe,0x9,0xfe,0x2b,0xfe,0xa2,0xfe, +0xa4,0xfe,0x2d,0xfe,0xa6,0xfd,0x79,0xfd,0xd7,0xfd,0x2c,0xfe, +0xa9,0xfd,0xd4,0xfc,0xdb,0xfc,0x6f,0xfd,0x8b,0xfd,0x5,0xfd, +0x54,0xfc,0x40,0xfc,0xd6,0xfc,0x14,0xfd,0xb5,0xfc,0x17,0xfc, +0x44,0xfb,0xb1,0xfa,0x95,0xfa,0x2c,0xfa,0x24,0xf9,0x15,0xf8, +0x7c,0xf7,0x41,0xf7,0x12,0xf7,0xed,0xf6,0xda,0xf6,0xe1,0xf6, +0x44,0xf7,0xdf,0xf7,0x45,0xf8,0xa1,0xf8,0x4c,0xf9,0x47,0xfa, +0x3d,0xfb,0xd4,0xfb,0x61,0xfc,0x7f,0xfd,0x1,0xff,0x38,0x0, +0xb7,0x0,0xe6,0x0,0x96,0x1,0xa8,0x2,0x6e,0x3,0x9c,0x3, +0x1c,0x3,0x9c,0x2,0xc9,0x2,0xe1,0x2,0x58,0x2,0xa6,0x1, +0xfe,0x0,0x8b,0x0,0x2d,0x0,0x72,0xff,0xe3,0xfe,0xdb,0xfe, +0xab,0xfe,0x59,0xfe,0x45,0xfe,0x45,0xfe,0x84,0xfe,0x11,0xff, +0x70,0xff,0xaa,0xff,0x19,0x0,0xbd,0x0,0x7f,0x1,0x4f,0x2, +0xfe,0x2,0x7f,0x3,0x10,0x4,0xd0,0x4,0x98,0x5,0x29,0x6, +0x5a,0x6,0x6d,0x6,0xd3,0x6,0x6f,0x7,0xde,0x7,0xf4,0x7, +0xce,0x7,0xc2,0x7,0xd4,0x7,0x96,0x7,0xc0,0x6,0xa3,0x5, +0xeb,0x4,0x7c,0x4,0xa9,0x3,0x9b,0x2,0xdc,0x1,0x85,0x1, +0x70,0x1,0x1f,0x1,0x81,0x0,0x49,0x0,0xa5,0x0,0x1a,0x1, +0x21,0x1,0x9c,0x0,0x4d,0x0,0x95,0x0,0xfa,0x0,0x47,0x1, +0x72,0x1,0x98,0x1,0x1e,0x2,0xc8,0x2,0x2a,0x3,0x66,0x3, +0xb1,0x3,0x17,0x4,0x4b,0x4,0xf,0x4,0xb2,0x3,0x47,0x3, +0xe0,0x2,0xcf,0x2,0xba,0x2,0x1e,0x2,0x27,0x1,0x49,0x0, +0xd7,0xff,0xa1,0xff,0x39,0xff,0xbe,0xfe,0x6d,0xfe,0x40,0xfe, +0xfb,0xfd,0x4e,0xfd,0x8a,0xfc,0x34,0xfc,0x32,0xfc,0x3d,0xfc, +0x38,0xfc,0x3c,0xfc,0xa4,0xfc,0x76,0xfd,0x3c,0xfe,0x9b,0xfe, +0xb1,0xfe,0xf9,0xfe,0x93,0xff,0xe,0x0,0x1b,0x0,0xdf,0xff, +0xa1,0xff,0x7e,0xff,0x8a,0xff,0xd1,0xff,0xf0,0xff,0xca,0xff, +0xed,0xff,0x54,0x0,0xa5,0x0,0x2b,0x1,0xcd,0x1,0xc,0x2, +0x43,0x2,0xd3,0x2,0x5a,0x3,0x8f,0x3,0x7f,0x3,0x59,0x3, +0x76,0x3,0xc1,0x3,0xbf,0x3,0x72,0x3,0x35,0x3,0x3f,0x3, +0xa5,0x3,0x4,0x4,0xdd,0x3,0x98,0x3,0xc7,0x3,0x33,0x4, +0x7d,0x4,0x98,0x4,0xb9,0x4,0xe,0x5,0x4b,0x5,0x42,0x5, +0x4f,0x5,0xa8,0x5,0x3,0x6,0xf,0x6,0xd9,0x5,0x94,0x5, +0x78,0x5,0xc1,0x5,0x29,0x6,0x1d,0x6,0xcf,0x5,0xb6,0x5, +0xba,0x5,0x94,0x5,0x21,0x5,0x71,0x4,0xb6,0x3,0x1,0x3, +0x62,0x2,0xb9,0x1,0xca,0x0,0xdc,0xff,0x33,0xff,0xcc,0xfe, +0xaf,0xfe,0x9a,0xfe,0x6d,0xfe,0x6d,0xfe,0x80,0xfe,0x9a,0xfe, +0xcd,0xfe,0xc2,0xfe,0xa3,0xfe,0xe1,0xfe,0xf7,0xfe,0xa0,0xfe, +0x7c,0xfe,0xb3,0xfe,0xef,0xfe,0xf9,0xfe,0xc2,0xfe,0xb2,0xfe, +0x2b,0xff,0x9e,0xff,0x73,0xff,0xde,0xfe,0x4b,0xfe,0xf6,0xfd, +0xb5,0xfd,0x5,0xfd,0xf5,0xfb,0xa,0xfb,0x54,0xfa,0xac,0xf9, +0x26,0xf9,0xe7,0xf8,0xc,0xf9,0x71,0xf9,0xb0,0xf9,0xb9,0xf9, +0x23,0xfa,0x38,0xfb,0x3d,0xfc,0xca,0xfc,0x54,0xfd,0x0,0xfe, +0xd3,0xfe,0xbe,0xff,0x25,0x0,0x3a,0x0,0xc5,0x0,0x72,0x1, +0xb7,0x1,0xbb,0x1,0xa7,0x1,0xbe,0x1,0x26,0x2,0x6c,0x2, +0x34,0x2,0xc0,0x1,0x73,0x1,0x48,0x1,0x4,0x1,0x9d,0x0, +0x27,0x0,0xe7,0xff,0xe3,0xff,0xc7,0xff,0xc1,0xff,0xe,0x0, +0x5c,0x0,0xa5,0x0,0x19,0x1,0xa0,0x1,0x4d,0x2,0x18,0x3, +0xa1,0x3,0xca,0x3,0xe1,0x3,0x1c,0x4,0x70,0x4,0xb7,0x4, +0xa8,0x4,0x24,0x4,0xb0,0x3,0xb5,0x3,0xe2,0x3,0xc5,0x3, +0x20,0x3,0x40,0x2,0xc4,0x1,0x72,0x1,0xbe,0x0,0xb2,0xff, +0x86,0xfe,0x9f,0xfd,0x24,0xfd,0xa5,0xfc,0x16,0xfc,0xaa,0xfb, +0x49,0xfb,0x1a,0xfb,0x1e,0xfb,0xd,0xfb,0xfa,0xfa,0xfa,0xfa, +0xcd,0xfa,0x68,0xfa,0xf6,0xf9,0xa3,0xf9,0x94,0xf9,0x8b,0xf9, +0x27,0xf9,0xa1,0xf8,0x66,0xf8,0x68,0xf8,0xa8,0xf8,0x2c,0xf9, +0x75,0xf9,0x64,0xf9,0x7e,0xf9,0xfa,0xf9,0x97,0xfa,0x1,0xfb, +0x35,0xfb,0x5e,0xfb,0x55,0xfb,0x26,0xfb,0x2e,0xfb,0x57,0xfb, +0x55,0xfb,0x23,0xfb,0xf7,0xfa,0x8,0xfb,0x3b,0xfb,0x5c,0xfb, +0x59,0xfb,0x30,0xfb,0x45,0xfb,0xd8,0xfb,0x60,0xfc,0x6d,0xfc, +0x3d,0xfc,0x4e,0xfc,0xe0,0xfc,0x7c,0xfd,0x85,0xfd,0x26,0xfd, +0x16,0xfd,0x95,0xfd,0xf4,0xfd,0xc9,0xfd,0xa4,0xfd,0xd9,0xfd, +0x46,0xfe,0xcc,0xfe,0x8,0xff,0x3,0xff,0x54,0xff,0xee,0xff, +0x5b,0x0,0x7c,0x0,0x62,0x0,0x4d,0x0,0x71,0x0,0xad,0x0, +0xc1,0x0,0x8f,0x0,0x50,0x0,0x3f,0x0,0x67,0x0,0xd5,0x0, +0x47,0x1,0x8b,0x1,0xf,0x2,0xc3,0x2,0x2e,0x3,0x7d,0x3, +0xc7,0x3,0x1b,0x4,0xc2,0x4,0x3c,0x5,0x28,0x5,0x2e,0x5, +0x92,0x5,0xf6,0x5,0x10,0x6,0xe7,0x5,0xe9,0x5,0x25,0x6, +0x21,0x6,0xc5,0x5,0x59,0x5,0x3f,0x5,0x67,0x5,0x36,0x5, +0x99,0x4,0xdf,0x3,0x50,0x3,0x64,0x3,0xb9,0x3,0xa3,0x3, +0xaa,0x3,0x2e,0x4,0xc0,0x4,0x10,0x5,0xc,0x5,0x27,0x5, +0xd5,0x5,0x82,0x6,0x7d,0x6,0xeb,0x5,0x53,0x5,0x23,0x5, +0x6c,0x5,0xb5,0x5,0x5d,0x5,0xa0,0x4,0x8c,0x4,0x33,0x5, +0xa1,0x5,0x8a,0x5,0x4e,0x5,0x47,0x5,0x81,0x5,0x9d,0x5, +0x57,0x5,0xd6,0x4,0x92,0x4,0xda,0x4,0x33,0x5,0xf0,0x4, +0x1a,0x4,0x6d,0x3,0x8d,0x3,0xdd,0x3,0x62,0x3,0x83,0x2, +0xe5,0x1,0x66,0x1,0x2,0x1,0xae,0x0,0x23,0x0,0x94,0xff, +0x4e,0xff,0xe3,0xfe,0xec,0xfd,0x6,0xfd,0xc3,0xfc,0xa9,0xfc, +0x3a,0xfc,0x6b,0xfb,0x9b,0xfa,0x82,0xfa,0xfb,0xfa,0x32,0xfb, +0x38,0xfb,0x6a,0xfb,0xcf,0xfb,0x7a,0xfc,0x12,0xfd,0x4f,0xfd, +0xa5,0xfd,0x47,0xfe,0xe4,0xfe,0x3f,0xff,0x30,0xff,0xf5,0xfe, +0x24,0xff,0x95,0xff,0xaa,0xff,0x8d,0xff,0xa1,0xff,0xc9,0xff, +0xb,0x0,0x52,0x0,0x2b,0x0,0xc0,0xff,0x8b,0xff,0x7f,0xff, +0x29,0xff,0x1a,0xfe,0x87,0xfc,0x3c,0xfb,0x7c,0xfa,0x0,0xfa, +0x69,0xf9,0x76,0xf8,0xbb,0xf7,0xc8,0xf7,0x14,0xf8,0x1a,0xf8, +0xe4,0xf7,0x9d,0xf7,0xb4,0xf7,0x2c,0xf8,0x68,0xf8,0x73,0xf8, +0xad,0xf8,0x11,0xf9,0xaf,0xf9,0x74,0xfa,0x1,0xfb,0x89,0xfb, +0x72,0xfc,0x7b,0xfd,0x58,0xfe,0x1f,0xff,0xc7,0xff,0x67,0x0, +0x3d,0x1,0x7,0x2,0x7b,0x2,0xdb,0x2,0x24,0x3,0x28,0x3, +0x37,0x3,0x4a,0x3,0x5,0x3,0x96,0x2,0x13,0x2,0x46,0x1, +0x7a,0x0,0xde,0xff,0x23,0xff,0x2f,0xfe,0x28,0xfd,0x4e,0xfc, +0xc4,0xfb,0x4f,0xfb,0xd5,0xfa,0x90,0xfa,0x8c,0xfa,0xc4,0xfa, +0x31,0xfb,0x9a,0xfb,0xf,0xfc,0xc8,0xfc,0x95,0xfd,0x6a,0xfe, +0x77,0xff,0x74,0x0,0x38,0x1,0xe8,0x1,0x88,0x2,0x4c,0x3, +0x34,0x4,0xad,0x4,0xbc,0x4,0xbf,0x4,0xb8,0x4,0xac,0x4, +0x5e,0x4,0xa8,0x3,0xf,0x3,0xa4,0x2,0xa,0x2,0x4c,0x1, +0x6b,0x0,0x83,0xff,0xd6,0xfe,0x45,0xfe,0xa7,0xfd,0xfc,0xfc, +0x54,0xfc,0xc1,0xfb,0x1b,0xfb,0x6c,0xfa,0xda,0xf9,0x68,0xf9, +0x4d,0xf9,0x59,0xf9,0x22,0xf9,0xc,0xf9,0x5c,0xf9,0xca,0xf9, +0x40,0xfa,0x99,0xfa,0xd8,0xfa,0x5b,0xfb,0x17,0xfc,0xb2,0xfc, +0x5,0xfd,0x27,0xfd,0x5e,0xfd,0xbb,0xfd,0x12,0xfe,0x2d,0xfe, +0x18,0xfe,0x51,0xfe,0xe4,0xfe,0x6f,0xff,0xfc,0xff,0x92,0x0, +0x13,0x1,0x9f,0x1,0x1e,0x2,0x76,0x2,0xcd,0x2,0xfb,0x2, +0xc9,0x2,0x38,0x2,0x84,0x1,0xfc,0x0,0x8a,0x0,0xeb,0xff, +0x20,0xff,0x40,0xfe,0x78,0xfd,0xea,0xfc,0x66,0xfc,0xd0,0xfb, +0x24,0xfb,0x6f,0xfa,0x3,0xfa,0xe3,0xf9,0xcf,0xf9,0xf9,0xf9, +0x81,0xfa,0x23,0xfb,0xf2,0xfb,0xf2,0xfc,0xe2,0xfd,0x7,0xff, +0x95,0x0,0x16,0x2,0x47,0x3,0x57,0x4,0x88,0x5,0xf5,0x6, +0x44,0x8,0xfa,0x8,0x19,0x9,0xa,0x9,0x2e,0x9,0x54,0x9, +0xf1,0x8,0xfb,0x7,0xbd,0x6,0x6d,0x5,0x23,0x4,0xa6,0x2, +0xe4,0x0,0x49,0xff,0x15,0xfe,0x4,0xfd,0xab,0xfb,0x2a,0xfa, +0x29,0xf9,0xc4,0xf8,0x84,0xf8,0x40,0xf8,0x29,0xf8,0x76,0xf8, +0x51,0xf9,0x85,0xfa,0x85,0xfb,0x45,0xfc,0x66,0xfd,0xc,0xff, +0xbb,0x0,0x39,0x2,0x5b,0x3,0x1e,0x4,0x1,0x5,0x8,0x6, +0xa9,0x6,0xf2,0x6,0xf,0x7,0xcc,0x6,0x42,0x6,0xac,0x5, +0xf8,0x4,0xb,0x4,0xe4,0x2,0xb6,0x1,0xdb,0x0,0x41,0x0, +0x7d,0xff,0xae,0xfe,0x2f,0xfe,0xf6,0xfd,0xd7,0xfd,0xa9,0xfd, +0x72,0xfd,0x80,0xfd,0xbe,0xfd,0xf3,0xfd,0x51,0xfe,0xc5,0xfe, +0x17,0xff,0x77,0xff,0xd1,0xff,0xf7,0xff,0x4a,0x0,0xf3,0x0, +0xa9,0x1,0x3b,0x2,0x8a,0x2,0xd6,0x2,0x92,0x3,0x52,0x4, +0x81,0x4,0x7e,0x4,0x96,0x4,0xc3,0x4,0x2b,0x5,0x49,0x5, +0xcb,0x4,0x93,0x4,0xba,0x4,0xa6,0x4,0x78,0x4,0x22,0x4, +0xab,0x3,0xa6,0x3,0xa8,0x3,0xa,0x3,0x45,0x2,0xc8,0x1, +0x5d,0x1,0xbd,0x0,0xc6,0xff,0xc8,0xfe,0x2d,0xfe,0xb2,0xfd, +0xe9,0xfc,0x7,0xfc,0x79,0xfb,0x51,0xfb,0x61,0xfb,0x3e,0xfb, +0xda,0xfa,0xfa,0xfa,0xbc,0xfb,0x71,0xfc,0x8,0xfd,0xbb,0xfd, +0x84,0xfe,0x76,0xff,0x58,0x0,0x2,0x1,0xea,0x1,0x25,0x3, +0x24,0x4,0xc5,0x4,0x70,0x5,0x2e,0x6,0xb2,0x6,0x15,0x7, +0x68,0x7,0x7c,0x7,0x55,0x7,0xef,0x6,0x4c,0x6,0xa7,0x5, +0xf6,0x4,0x2e,0x4,0x53,0x3,0x27,0x2,0xe4,0x0,0xfc,0xff, +0x45,0xff,0x92,0xfe,0x6,0xfe,0xb8,0xfd,0x99,0xfd,0x8d,0xfd, +0xb3,0xfd,0x47,0xfe,0x21,0xff,0xca,0xff,0x28,0x0,0xb8,0x0, +0xb3,0x1,0xa3,0x2,0x4a,0x3,0xc1,0x3,0x20,0x4,0x97,0x4, +0xf9,0x4,0xed,0x4,0xa3,0x4,0x5d,0x4,0x12,0x4,0xa0,0x3, +0xf7,0x2,0x65,0x2,0x28,0x2,0xe1,0x1,0x46,0x1,0xa4,0x0, +0x6c,0x0,0xa2,0x0,0xcf,0x0,0xb3,0x0,0x90,0x0,0xa8,0x0, +0xfa,0x0,0x4a,0x1,0x5d,0x1,0x6d,0x1,0xbc,0x1,0xfa,0x1, +0xc1,0x1,0x32,0x1,0xb5,0x0,0x6d,0x0,0xe6,0xff,0xab,0xfe, +0x48,0xfd,0x96,0xfc,0x2b,0xfc,0x23,0xfb,0xae,0xf9,0x8a,0xf8, +0xee,0xf7,0xaf,0xf7,0x8f,0xf7,0x61,0xf7,0x4c,0xf7,0xa2,0xf7, +0x42,0xf8,0xe0,0xf8,0x8a,0xf9,0x6b,0xfa,0x86,0xfb,0xaf,0xfc, +0xc8,0xfd,0xfc,0xfe,0x49,0x0,0x81,0x1,0xb3,0x2,0xe0,0x3, +0xdd,0x4,0x79,0x5,0x6b,0x5,0xed,0x4,0x8c,0x4,0x40,0x4, +0xb1,0x3,0x7c,0x2,0x99,0x0,0xe2,0xfe,0xb5,0xfd,0x82,0xfc, +0x37,0xfb,0x15,0xfa,0xf,0xf9,0x50,0xf8,0xee,0xf7,0xc2,0xf7, +0xdb,0xf7,0x2f,0xf8,0x94,0xf8,0x1a,0xf9,0xc7,0xf9,0x9c,0xfa, +0xb0,0xfb,0xe6,0xfc,0xb,0xfe,0x1,0xff,0xd2,0xff,0xdc,0x0, +0x2e,0x2,0x2c,0x3,0xac,0x3,0xfe,0x3,0xa,0x4,0x1,0x4, +0x62,0x4,0xb1,0x4,0x2d,0x4,0x63,0x3,0x19,0x3,0xeb,0x2, +0x7b,0x2,0x12,0x2,0x8d,0x1,0xcc,0x0,0x51,0x0,0x18,0x0, +0x9a,0xff,0xe7,0xfe,0x93,0xfe,0xc6,0xfe,0xda,0xfe,0x80,0xfe, +0x50,0xfe,0x77,0xfe,0xa0,0xfe,0xa3,0xfe,0x75,0xfe,0x73,0xfe, +0xc0,0xfe,0xae,0xfe,0x15,0xfe,0x7b,0xfd,0x25,0xfd,0x20,0xfd, +0x15,0xfd,0xb4,0xfc,0x30,0xfc,0xf0,0xfb,0x59,0xfc,0x4,0xfd, +0x1a,0xfd,0x7,0xfd,0x70,0xfd,0xf9,0xfd,0x6d,0xfe,0xd9,0xfe, +0x3f,0xff,0xd1,0xff,0x64,0x0,0x97,0x0,0x8b,0x0,0x8b,0x0, +0x83,0x0,0x45,0x0,0xd3,0xff,0x3f,0xff,0x95,0xfe,0xd3,0xfd, +0xcd,0xfc,0x99,0xfb,0x91,0xfa,0x97,0xf9,0x8f,0xf8,0xc0,0xf7, +0xe,0xf7,0x57,0xf6,0xe2,0xf5,0xb6,0xf5,0x9a,0xf5,0x99,0xf5, +0xd,0xf6,0x28,0xf7,0x79,0xf8,0x83,0xf9,0x6a,0xfa,0x72,0xfb, +0x9e,0xfc,0xf5,0xfd,0x59,0xff,0x71,0x0,0x42,0x1,0x2f,0x2, +0x1a,0x3,0xae,0x3,0x1,0x4,0x40,0x4,0x74,0x4,0x79,0x4, +0x5,0x4,0x39,0x3,0x76,0x2,0xcf,0x1,0x13,0x1,0xf2,0xff, +0x71,0xfe,0x8,0xfd,0x30,0xfc,0xf5,0xfb,0xc8,0xfb,0x3a,0xfb, +0xcd,0xfa,0xf8,0xfa,0x7f,0xfb,0x24,0xfc,0xcb,0xfc,0x8e,0xfd, +0x9e,0xfe,0xce,0xff,0x4,0x1,0x4d,0x2,0x7a,0x3,0xb6,0x4, +0x35,0x6,0x66,0x7,0xff,0x7,0x89,0x8,0x2f,0x9,0x8e,0x9, +0x69,0x9,0xd2,0x8,0x1a,0x8,0x84,0x7,0xd9,0x6,0xdb,0x5, +0xbd,0x4,0xe3,0x3,0x6d,0x3,0x32,0x3,0xf6,0x2,0x9a,0x2, +0x46,0x2,0x4b,0x2,0x91,0x2,0xa7,0x2,0x7c,0x2,0x40,0x2, +0x7,0x2,0xc2,0x1,0x50,0x1,0xda,0x0,0x98,0x0,0x5a,0x0, +0xf3,0xff,0x6d,0xff,0xed,0xfe,0xc3,0xfe,0xe7,0xfe,0xdf,0xfe, +0x81,0xfe,0x35,0xfe,0x63,0xfe,0xaa,0xfe,0x8d,0xfe,0x7b,0xfe, +0xc1,0xfe,0xd,0xff,0x65,0xff,0xca,0xff,0x1e,0x0,0xbd,0x0, +0x84,0x1,0xf5,0x1,0x31,0x2,0x67,0x2,0x8e,0x2,0xb4,0x2, +0x7a,0x2,0xa1,0x1,0xa4,0x0,0xdb,0xff,0x14,0xff,0x22,0xfe, +0x19,0xfd,0x35,0xfc,0x75,0xfb,0xa8,0xfa,0xf0,0xf9,0x70,0xf9, +0x7,0xf9,0xbb,0xf8,0x9f,0xf8,0xbf,0xf8,0x47,0xf9,0x25,0xfa, +0x31,0xfb,0x65,0xfc,0x9b,0xfd,0xd3,0xfe,0x26,0x0,0x87,0x1, +0x14,0x3,0xad,0x4,0xcd,0x5,0x81,0x6,0x31,0x7,0xd7,0x7, +0x37,0x8,0x40,0x8,0x18,0x8,0xce,0x7,0x52,0x7,0x9c,0x6, +0x93,0x5,0x77,0x4,0x94,0x3,0xb9,0x2,0xca,0x1,0xad,0x0, +0x59,0xff,0x90,0xfe,0x90,0xfe,0x8e,0xfe,0x4d,0xfe,0x12,0xfe, +0x40,0xfe,0x25,0xff,0x4f,0x0,0x55,0x1,0x32,0x2,0xe8,0x2, +0xed,0x3,0x4e,0x5,0x61,0x6,0x2a,0x7,0xec,0x7,0x99,0x8, +0x4e,0x9,0xde,0x9,0xf5,0x9,0xb5,0x9,0x3d,0x9,0x8f,0x8, +0xac,0x7,0x8a,0x6,0x36,0x5,0xaa,0x3,0x2,0x2,0x8e,0x0, +0x5f,0xff,0x74,0xfe,0xe7,0xfd,0xa0,0xfd,0x88,0xfd,0x8c,0xfd, +0x8e,0xfd,0xc6,0xfd,0x60,0xfe,0x16,0xff,0xb2,0xff,0x25,0x0, +0x54,0x0,0x99,0x0,0x39,0x1,0xb6,0x1,0xca,0x1,0xd2,0x1, +0xed,0x1,0xeb,0x1,0x93,0x1,0xe6,0x0,0x4d,0x0,0x5,0x0, +0xcc,0xff,0x41,0xff,0x54,0xfe,0x62,0xfd,0xc2,0xfc,0x84,0xfc, +0x9f,0xfc,0xb1,0xfc,0x83,0xfc,0x80,0xfc,0xc0,0xfc,0x1,0xfd, +0x55,0xfd,0xe6,0xfd,0xb0,0xfe,0x51,0xff,0x6b,0xff,0x7f,0xff, +0x3,0x0,0x9b,0x0,0xd,0x1,0x49,0x1,0x2a,0x1,0xe7,0x0, +0xc8,0x0,0xac,0x0,0x5b,0x0,0xd4,0xff,0x58,0xff,0x1e,0xff, +0x6,0xff,0xce,0xfe,0x65,0xfe,0x0,0xfe,0xfd,0xfd,0x6b,0xfe, +0xd7,0xfe,0x8,0xff,0x2b,0xff,0x60,0xff,0xd6,0xff,0x6a,0x0, +0x8e,0x0,0x54,0x0,0x5b,0x0,0xb5,0x0,0x8,0x1,0x10,0x1, +0xd5,0x0,0xa6,0x0,0x83,0x0,0x2a,0x0,0x9b,0xff,0xff,0xfe, +0x88,0xfe,0x3b,0xfe,0xc3,0xfd,0x10,0xfd,0x8e,0xfc,0x61,0xfc, +0x30,0xfc,0xee,0xfb,0xe6,0xfb,0x2a,0xfc,0x97,0xfc,0xf8,0xfc, +0x40,0xfd,0xef,0xfd,0x2d,0xff,0x49,0x0,0xd9,0x0,0x8,0x1, +0x2a,0x1,0x76,0x1,0xa4,0x1,0x5f,0x1,0xc9,0x0,0x14,0x0, +0x6f,0xff,0xc1,0xfe,0xb6,0xfd,0x94,0xfc,0xbb,0xfb,0xc8,0xfa, +0x76,0xf9,0x3a,0xf8,0x75,0xf7,0xf9,0xf6,0xa1,0xf6,0x82,0xf6, +0x79,0xf6,0x80,0xf6,0xfb,0xf6,0xc3,0xf7,0x67,0xf8,0x5d,0xf9, +0xa,0xfb,0xb8,0xfc,0xf3,0xfd,0xa,0xff,0x1b,0x0,0x5c,0x1, +0xc0,0x2,0x76,0x3,0x7e,0x3,0x68,0x3,0x2,0x3,0x7a,0x2, +0xe9,0x1,0x95,0x0,0xe9,0xfe,0xd7,0xfd,0xf8,0xfc,0xbd,0xfb, +0x43,0xfa,0xeb,0xf8,0x20,0xf8,0xcd,0xf7,0x82,0xf7,0x6,0xf7, +0x90,0xf6,0x9e,0xf6,0x19,0xf7,0x90,0xf7,0xe9,0xf7,0x50,0xf8, +0x7d,0xf9,0x6b,0xfb,0xc7,0xfc,0x85,0xfd,0xaf,0xfe,0x47,0x0, +0xf4,0x1,0x31,0x3,0x61,0x3,0x1c,0x3,0x3b,0x3,0x7d,0x3, +0x1e,0x3,0xcd,0x1,0x4b,0x0,0x74,0xff,0xd2,0xfe,0x7f,0xfd, +0xc4,0xfb,0xa2,0xfa,0x27,0xfa,0x92,0xf9,0xce,0xf8,0x24,0xf8, +0xc7,0xf7,0xc,0xf8,0x59,0xf8,0xbe,0xf7,0x10,0xf7,0x89,0xf7, +0xb4,0xf8,0x84,0xf9,0xc6,0xf9,0x25,0xfa,0x6a,0xfb,0x48,0xfd, +0x92,0xfe,0xed,0xfe,0x10,0xff,0x97,0xff,0x74,0x0,0xf4,0x0, +0x85,0x0,0xd1,0xff,0xb5,0xff,0xd8,0xff,0xc2,0xff,0xaf,0xff, +0xed,0xff,0xb2,0x0,0xb6,0x1,0x44,0x2,0x7b,0x2,0x2b,0x3, +0x65,0x4,0x7c,0x5,0xf1,0x5,0xe5,0x5,0xf4,0x5,0x7b,0x6, +0xec,0x6,0x9e,0x6,0xee,0x5,0x72,0x5,0xb,0x5,0x74,0x4, +0x8e,0x3,0x56,0x2,0x1d,0x1,0x12,0x0,0x4,0xff,0xae,0xfd, +0x18,0xfc,0xd3,0xfa,0x47,0xfa,0x27,0xfa,0x2f,0xfa,0x70,0xfa, +0xf,0xfb,0x47,0xfc,0x3,0xfe,0xd6,0xff,0x7a,0x1,0xe6,0x2, +0x71,0x4,0x52,0x6,0xf0,0x7,0xcb,0x8,0x4a,0x9,0xb,0xa, +0x8,0xb,0x9d,0xb,0x9e,0xb,0x84,0xb,0x64,0xb,0x13,0xb, +0x66,0xa,0xf4,0x8,0xfd,0x6,0x23,0x5,0x4d,0x3,0x22,0x1, +0x98,0xfe,0x15,0xfc,0x21,0xfa,0x9d,0xf8,0x5c,0xf7,0x86,0xf6, +0xe9,0xf5,0x9f,0xf5,0x16,0xf6,0xdc,0xf6,0x90,0xf7,0x77,0xf8, +0x6a,0xf9,0x5c,0xfa,0xbb,0xfb,0x5e,0xfd,0xc9,0xfe,0xfa,0xff, +0xfb,0x0,0xeb,0x1,0x1a,0x3,0x3b,0x4,0xc0,0x4,0xfc,0x4, +0x6a,0x5,0xc5,0x5,0xa4,0x5,0xf9,0x4,0x10,0x4,0x31,0x3, +0x4e,0x2,0x55,0x1,0x56,0x0,0x7e,0xff,0x12,0xff,0xe2,0xfe, +0xab,0xfe,0xab,0xfe,0x9,0xff,0xa1,0xff,0x1a,0x0,0x9,0x0, +0xb8,0xff,0xb3,0xff,0xc8,0xff,0xa7,0xff,0x68,0xff,0x4e,0xff, +0x7a,0xff,0xcc,0xff,0x2c,0x0,0x93,0x0,0xf9,0x0,0x54,0x1, +0x65,0x1,0x1e,0x1,0xc9,0x0,0x75,0x0,0x2e,0x0,0xf6,0xff, +0xa5,0xff,0x9a,0xff,0x8,0x0,0x7f,0x0,0x0,0x1,0xfd,0x1, +0x73,0x3,0xfa,0x4,0x22,0x6,0xff,0x6,0xe0,0x7,0xaf,0x8, +0x48,0x9,0x93,0x9,0x6c,0x9,0xed,0x8,0x5b,0x8,0xc4,0x7, +0xfc,0x6,0xd,0x6,0x48,0x5,0x80,0x4,0x66,0x3,0x36,0x2, +0xe,0x1,0xe0,0xff,0xd5,0xfe,0xdc,0xfd,0xe0,0xfc,0xb,0xfc, +0x61,0xfb,0x15,0xfb,0x84,0xfb,0x67,0xfc,0x59,0xfd,0x94,0xfe, +0x45,0x0,0x28,0x2,0xfe,0x3,0xae,0x5,0x13,0x7,0x33,0x8, +0x4d,0x9,0x3c,0xa,0x73,0xa,0x19,0xa,0xc9,0x9,0x78,0x9, +0xd3,0x8,0xce,0x7,0x8a,0x6,0x79,0x5,0x9e,0x4,0x64,0x3, +0xe7,0x1,0x8c,0x0,0x38,0xff,0xeb,0xfd,0x9d,0xfc,0x34,0xfb, +0x0,0xfa,0x49,0xf9,0x16,0xf9,0x26,0xf9,0x20,0xf9,0x69,0xf9, +0x95,0xfa,0x38,0xfc,0x8a,0xfd,0x72,0xfe,0x72,0xff,0xbf,0x0, +0xdc,0x1,0x71,0x2,0x96,0x2,0x91,0x2,0x87,0x2,0x28,0x2, +0x3f,0x1,0x36,0x0,0x65,0xff,0xc4,0xfe,0x18,0xfe,0x10,0xfd, +0xd0,0xfb,0xf9,0xfa,0xe1,0xfa,0x17,0xfb,0x16,0xfb,0x11,0xfb, +0x55,0xfb,0xf7,0xfb,0x1a,0xfd,0x60,0xfe,0x45,0xff,0x11,0x0, +0x2c,0x1,0x6c,0x2,0x4b,0x3,0xa1,0x3,0xf0,0x3,0x72,0x4, +0xd0,0x4,0x94,0x4,0x7b,0x3,0x41,0x2,0xb6,0x1,0x5f,0x1, +0xac,0x0,0x72,0xff,0xd5,0xfd,0xb9,0xfc,0x38,0xfc,0x5c,0xfb, +0x1a,0xfa,0x1e,0xf9,0xb5,0xf8,0xa4,0xf8,0x5b,0xf8,0xf5,0xf7, +0x24,0xf8,0xa,0xf9,0x44,0xfa,0x60,0xfb,0x2d,0xfc,0xf9,0xfc, +0x24,0xfe,0x97,0xff,0xcd,0x0,0x7d,0x1,0xfc,0x1,0x82,0x2, +0xe2,0x2,0x1,0x3,0xc4,0x2,0x49,0x2,0x11,0x2,0x2b,0x2, +0xda,0x1,0xbc,0x0,0x94,0xff,0xf4,0xfe,0x7e,0xfe,0xf7,0xfd, +0x48,0xfd,0x43,0xfc,0x63,0xfb,0x33,0xfb,0x5e,0xfb,0x55,0xfb, +0x1e,0xfb,0x48,0xfb,0x2b,0xfc,0x29,0xfd,0x86,0xfd,0xc3,0xfd, +0xc2,0xfe,0x2,0x0,0xa2,0x0,0xc2,0x0,0xac,0x0,0xad,0x0, +0x25,0x1,0x75,0x1,0x5,0x1,0x6d,0x0,0x3f,0x0,0x64,0x0, +0x51,0x0,0x9d,0xff,0xeb,0xfe,0xcb,0xfe,0xa3,0xfe,0xfe,0xfd, +0x2e,0xfd,0xa1,0xfc,0x74,0xfc,0x84,0xfc,0xa5,0xfc,0x99,0xfc, +0xa1,0xfc,0x50,0xfd,0x35,0xfe,0x7b,0xfe,0x56,0xfe,0x56,0xfe, +0xb3,0xfe,0x18,0xff,0x0,0xff,0x8a,0xfe,0xed,0xfd,0x53,0xfd, +0x12,0xfd,0xe0,0xfc,0x56,0xfc,0xa9,0xfb,0xfd,0xfa,0x76,0xfa, +0x1c,0xfa,0xb2,0xf9,0x78,0xf9,0xa2,0xf9,0xf3,0xf9,0x45,0xfa, +0x7f,0xfa,0x0,0xfb,0x48,0xfc,0xc3,0xfd,0xe6,0xfe,0xff,0xff, +0x3a,0x1,0x84,0x2,0xb9,0x3,0x7f,0x4,0xd8,0x4,0xc,0x5, +0x7,0x5,0x65,0x4,0x1e,0x3,0xd1,0x1,0xf9,0x0,0x46,0x0, +0x10,0xff,0x5c,0xfd,0x1d,0xfc,0xa3,0xfb,0x27,0xfb,0x66,0xfa, +0x93,0xf9,0xc7,0xf8,0x79,0xf8,0xa4,0xf8,0x81,0xf8,0x20,0xf8, +0x17,0xf8,0x6b,0xf8,0x8,0xf9,0xfc,0xf9,0x1f,0xfb,0x3e,0xfc, +0x35,0xfd,0x15,0xfe,0x27,0xff,0x6e,0x0,0x8f,0x1,0x52,0x2, +0xd4,0x2,0x64,0x3,0xec,0x3,0xf9,0x3,0xba,0x3,0xc1,0x3, +0xd9,0x3,0x9e,0x3,0x2a,0x3,0x9b,0x2,0x2e,0x2,0x15,0x2, +0x6,0x2,0xc0,0x1,0x58,0x1,0x1b,0x1,0x3b,0x1,0x5c,0x1, +0x18,0x1,0xb0,0x0,0xb5,0x0,0x4e,0x1,0xb2,0x1,0x4f,0x1, +0xdb,0x0,0xeb,0x0,0x40,0x1,0x5a,0x1,0xb0,0x0,0x98,0xff, +0xfe,0xfe,0xca,0xfe,0x95,0xfe,0x5c,0xfe,0xee,0xfd,0xa8,0xfd, +0x20,0xfe,0xd1,0xfe,0x36,0xff,0xae,0xff,0x78,0x0,0x6f,0x1, +0x5e,0x2,0xd3,0x2,0xc7,0x2,0xd0,0x2,0x1f,0x3,0x90,0x3, +0xe5,0x3,0x9e,0x3,0x9,0x3,0xa,0x3,0x4a,0x3,0x10,0x3, +0x73,0x2,0xbf,0x1,0x36,0x1,0xb0,0x0,0xb2,0xff,0x6e,0xfe, +0x39,0xfd,0x33,0xfc,0x61,0xfb,0x32,0xfa,0xaa,0xf8,0xc6,0xf7, +0xaf,0xf7,0xda,0xf7,0xce,0xf7,0x79,0xf7,0xbd,0xf7,0xd7,0xf8, +0xa8,0xf9,0xcd,0xf9,0xd5,0xf9,0x21,0xfa,0xd6,0xfa,0x9f,0xfb, +0x2,0xfc,0x34,0xfc,0xab,0xfc,0x7a,0xfd,0x6f,0xfe,0x35,0xff, +0x84,0xff,0xac,0xff,0x2c,0x0,0x8b,0x0,0x41,0x0,0xa5,0xff, +0x0,0xff,0x80,0xfe,0x50,0xfe,0xfe,0xfd,0x3f,0xfd,0x8c,0xfc, +0x71,0xfc,0x12,0xfd,0xd7,0xfd,0x19,0xfe,0xa,0xfe,0x30,0xfe, +0xd2,0xfe,0x89,0xff,0x6b,0xff,0x8e,0xfe,0xfa,0xfd,0xe6,0xfd, +0xbe,0xfd,0x11,0xfd,0x25,0xfc,0xc7,0xfb,0x17,0xfc,0x68,0xfc, +0x7d,0xfc,0xa4,0xfc,0xdf,0xfc,0x20,0xfd,0x94,0xfd,0xf1,0xfd, +0xf5,0xfd,0x3e,0xfe,0xfb,0xfe,0xa5,0xff,0x53,0x0,0x48,0x1, +0x73,0x2,0xee,0x3,0x91,0x5,0xe7,0x6,0xe2,0x7,0xbc,0x8, +0xaf,0x9,0x95,0xa,0xe4,0xa,0x65,0xa,0x62,0x9,0x4d,0x8, +0x68,0x7,0x6f,0x6,0x15,0x5,0x9d,0x3,0x68,0x2,0x7c,0x1, +0x70,0x0,0xd2,0xfe,0x18,0xfd,0x2e,0xfc,0xcd,0xfb,0x4,0xfb, +0xdc,0xf9,0xf7,0xf8,0xb9,0xf8,0x52,0xf9,0x38,0xfa,0xc6,0xfa, +0x9d,0xfb,0x61,0xfd,0x63,0xff,0x7,0x1,0x6f,0x2,0xd7,0x3, +0x77,0x5,0xf5,0x6,0x86,0x7,0x5d,0x7,0x5e,0x7,0x9f,0x7, +0x97,0x7,0x4,0x7,0x18,0x6,0x37,0x5,0x8a,0x4,0xee,0x3, +0x32,0x3,0x24,0x2,0xd6,0x0,0xa0,0xff,0x95,0xfe,0x94,0xfd, +0x69,0xfc,0xe8,0xfa,0x82,0xf9,0xc1,0xf8,0x71,0xf8,0x4c,0xf8, +0x35,0xf8,0x10,0xf8,0x37,0xf8,0xea,0xf8,0xa6,0xf9,0x18,0xfa, +0x9a,0xfa,0x5f,0xfb,0x8,0xfc,0x4d,0xfc,0x76,0xfc,0xf2,0xfc, +0xbe,0xfd,0x48,0xfe,0x62,0xfe,0xb8,0xfe,0x5b,0xff,0xc9,0xff, +0x32,0x0,0xad,0x0,0x24,0x1,0x10,0x2,0x30,0x3,0xd0,0x3, +0x3e,0x4,0xe3,0x4,0xc1,0x5,0xa3,0x6,0xb,0x7,0x1,0x7, +0xea,0x6,0xc1,0x6,0x84,0x6,0x2,0x6,0x1a,0x5,0x43,0x4, +0x8e,0x3,0x94,0x2,0x6a,0x1,0x48,0x0,0x5f,0xff,0xc9,0xfe, +0x40,0xfe,0xaf,0xfd,0x5b,0xfd,0x27,0xfd,0xf8,0xfc,0xb,0xfd, +0x4d,0xfd,0x6c,0xfd,0x92,0xfd,0x10,0xfe,0xe9,0xfe,0x8,0x0, +0x29,0x1,0x15,0x2,0x21,0x3,0x8b,0x4,0xfe,0x5,0x44,0x7, +0x59,0x8,0x11,0x9,0x75,0x9,0xb5,0x9,0x88,0x9,0x93,0x8, +0x40,0x7,0xf,0x6,0xd7,0x4,0x57,0x3,0x95,0x1,0xe6,0xff, +0x97,0xfe,0x62,0xfd,0x2d,0xfc,0x4a,0xfb,0xa6,0xfa,0x39,0xfa, +0xf4,0xf9,0x50,0xf9,0x97,0xf8,0x94,0xf8,0x1,0xf9,0x5c,0xf9, +0xb7,0xf9,0x47,0xfa,0x44,0xfb,0xa6,0xfc,0x7,0xfe,0x28,0xff, +0x5f,0x0,0xf8,0x1,0x73,0x3,0x4d,0x4,0x9c,0x4,0xb8,0x4, +0x11,0x5,0x6f,0x5,0xe,0x5,0x16,0x4,0x1a,0x3,0x42,0x2, +0xaf,0x1,0x31,0x1,0x86,0x0,0xd4,0xff,0x1c,0xff,0x79,0xfe, +0x6,0xfe,0x92,0xfd,0x2f,0xfd,0xe1,0xfc,0x7c,0xfc,0x4,0xfc, +0x75,0xfb,0x1a,0xfb,0x42,0xfb,0x81,0xfb,0x93,0xfb,0x8f,0xfb, +0x9e,0xfb,0x37,0xfc,0x25,0xfd,0xae,0xfd,0xd8,0xfd,0xf5,0xfd, +0x31,0xfe,0x77,0xfe,0x6b,0xfe,0x32,0xfe,0x17,0xfe,0xf,0xfe, +0x14,0xfe,0xe8,0xfd,0x8c,0xfd,0x98,0xfd,0x16,0xfe,0x8e,0xfe, +0xd2,0xfe,0x8,0xff,0x76,0xff,0x15,0x0,0xa1,0x0,0x8,0x1, +0x5a,0x1,0xdb,0x1,0x82,0x2,0xb3,0x2,0x54,0x2,0xdf,0x1, +0x9f,0x1,0x6d,0x1,0xc8,0x0,0xb1,0xff,0xc2,0xfe,0x27,0xfe, +0xac,0xfd,0x11,0xfd,0x63,0xfc,0x16,0xfc,0x14,0xfc,0xee,0xfb, +0xb2,0xfb,0x94,0xfb,0xc1,0xfb,0x1d,0xfc,0x40,0xfc,0x6c,0xfc, +0xd,0xfd,0xfb,0xfd,0xc,0xff,0x0,0x0,0xbe,0x0,0xd6,0x1, +0x74,0x3,0xfb,0x4,0xf8,0x5,0x97,0x6,0x36,0x7,0xce,0x7, +0x1a,0x8,0xed,0x7,0x3c,0x7,0x67,0x6,0xd1,0x5,0x4d,0x5, +0xc3,0x4,0x2f,0x4,0x50,0x3,0x67,0x2,0xd3,0x1,0x41,0x1, +0x75,0x0,0x9f,0xff,0xd5,0xfe,0x1c,0xfe,0x7f,0xfd,0xcd,0xfc, +0x6,0xfc,0x70,0xfb,0x10,0xfb,0xe0,0xfa,0xfd,0xfa,0x39,0xfb, +0x95,0xfb,0x5c,0xfc,0x38,0xfd,0xc0,0xfd,0x48,0xfe,0xfb,0xfe, +0xa9,0xff,0x46,0x0,0xab,0x0,0xcb,0x0,0xee,0x0,0x41,0x1, +0x90,0x1,0x94,0x1,0x62,0x1,0x57,0x1,0x74,0x1,0x6f,0x1, +0x41,0x1,0x6,0x1,0xc3,0x0,0x8a,0x0,0x4d,0x0,0xe9,0xff, +0x8d,0xff,0x52,0xff,0x0,0xff,0x9d,0xfe,0x51,0xfe,0x1a,0xfe, +0xfc,0xfd,0xdd,0xfd,0xb4,0xfd,0xa0,0xfd,0x85,0xfd,0x51,0xfd, +0x14,0xfd,0xb7,0xfc,0x97,0xfc,0xc,0xfd,0x78,0xfd,0x6c,0xfd, +0x49,0xfd,0x7e,0xfd,0x2d,0xfe,0x13,0xff,0xc5,0xff,0x41,0x0, +0xb1,0x0,0x49,0x1,0xb,0x2,0x96,0x2,0xf0,0x2,0x7c,0x3, +0x7,0x4,0x43,0x4,0x57,0x4,0x74,0x4,0xa1,0x4,0xc3,0x4, +0xb6,0x4,0x8a,0x4,0x56,0x4,0xe7,0x3,0x25,0x3,0x59,0x2, +0xbd,0x1,0x29,0x1,0x72,0x0,0xba,0xff,0xf8,0xfe,0xd,0xfe, +0x55,0xfd,0x8,0xfd,0xb7,0xfc,0x4c,0xfc,0x15,0xfc,0xc,0xfc, +0x32,0xfc,0x7a,0xfc,0xac,0xfc,0x14,0xfd,0xf5,0xfd,0xf5,0xfe, +0xec,0xff,0xbf,0x0,0x33,0x1,0xa8,0x1,0x9f,0x2,0xb6,0x3, +0x20,0x4,0xe2,0x3,0xb9,0x3,0xd0,0x3,0xbb,0x3,0x54,0x3, +0xb0,0x2,0xf,0x2,0xaa,0x1,0x39,0x1,0x85,0x0,0xc4,0xff, +0xd,0xff,0x96,0xfe,0x93,0xfe,0x77,0xfe,0xc6,0xfd,0x1f,0xfd, +0x1d,0xfd,0x67,0xfd,0x87,0xfd,0x89,0xfd,0x95,0xfd,0xde,0xfd, +0x78,0xfe,0xf,0xff,0x71,0xff,0xdf,0xff,0x55,0x0,0xa1,0x0, +0xe5,0x0,0x37,0x1,0x8a,0x1,0xd9,0x1,0xca,0x1,0x34,0x1, +0xc5,0x0,0xd4,0x0,0xe6,0x0,0xcc,0x0,0x88,0x0,0x9,0x0, +0xbc,0xff,0xd9,0xff,0xe1,0xff,0xb9,0xff,0xa8,0xff,0x94,0xff, +0x62,0xff,0x2a,0xff,0xe4,0xfe,0xa7,0xfe,0xa5,0xfe,0xb5,0xfe, +0xa2,0xfe,0x8a,0xfe,0x6e,0xfe,0x5d,0xfe,0x9c,0xfe,0xe3,0xfe, +0xc5,0xfe,0x86,0xfe,0x73,0xfe,0x69,0xfe,0x4b,0xfe,0x2a,0xfe, +0x15,0xfe,0x4,0xfe,0xff,0xfd,0xf7,0xfd,0xc1,0xfd,0xa6,0xfd, +0xfd,0xfd,0x74,0xfe,0xb9,0xfe,0xbf,0xfe,0xb0,0xfe,0x6,0xff, +0xa6,0xff,0xfc,0xff,0x2,0x0,0xed,0xff,0x0,0x0,0x5a,0x0, +0x88,0x0,0x76,0x0,0x8a,0x0,0xb5,0x0,0xb4,0x0,0x6c,0x0, +0x9,0x0,0xe9,0xff,0xdf,0xff,0xa7,0xff,0x52,0xff,0xa2,0xfe, +0xc6,0xfd,0x4b,0xfd,0xf0,0xfc,0x7b,0xfc,0x43,0xfc,0x33,0xfc, +0x2f,0xfc,0x51,0xfc,0x7e,0xfc,0xd2,0xfc,0x68,0xfd,0xf6,0xfd, +0x74,0xfe,0xdc,0xfe,0xec,0xfe,0xe1,0xfe,0x17,0xff,0x6c,0xff, +0xa7,0xff,0x9e,0xff,0x6c,0xff,0x85,0xff,0xf4,0xff,0x55,0x0, +0x78,0x0,0x5d,0x0,0x49,0x0,0x85,0x0,0xb7,0x0,0x57,0x0, +0xa0,0xff,0x43,0xff,0x63,0xff,0x83,0xff,0x5d,0xff,0x17,0xff, +0xdd,0xfe,0xd2,0xfe,0xfe,0xfe,0x2f,0xff,0x45,0xff,0x69,0xff, +0xcb,0xff,0x2d,0x0,0x2f,0x0,0x2,0x0,0xfc,0xff,0x0,0x0, +0xd2,0xff,0x7d,0xff,0x41,0xff,0x29,0xff,0xe,0xff,0x3,0xff, +0x16,0xff,0x1a,0xff,0xfc,0xfe,0xeb,0xfe,0xa,0xff,0x2c,0xff, +0x23,0xff,0x39,0xff,0x89,0xff,0xd3,0xff,0x24,0x0,0x73,0x0, +0xa3,0x0,0xff,0x0,0x90,0x1,0x4,0x2,0x3a,0x2,0x43,0x2, +0x68,0x2,0x9c,0x2,0x53,0x2,0xab,0x1,0x2f,0x1,0xda,0x0, +0x6e,0x0,0xb8,0xff,0xca,0xfe,0x17,0xfe,0xbe,0xfd,0x78,0xfd, +0x28,0xfd,0xe5,0xfc,0xbd,0xfc,0x99,0xfc,0x7b,0xfc,0x8d,0xfc, +0xd5,0xfc,0x59,0xfd,0x5,0xfe,0x9a,0xfe,0x5c,0xff,0x8b,0x0, +0xc2,0x1,0xe3,0x2,0x18,0x4,0x30,0x5,0xe9,0x5,0x4f,0x6, +0xba,0x6,0x2e,0x7,0x49,0x7,0x1b,0x7,0xb5,0x6,0x6,0x6, +0x72,0x5,0xf9,0x4,0x51,0x4,0xbe,0x3,0x20,0x3,0x40,0x2, +0x4f,0x1,0x27,0x0,0x3,0xff,0x65,0xfe,0xcb,0xfd,0xc4,0xfc, +0x99,0xfb,0x90,0xfa,0xf6,0xf9,0xdf,0xf9,0xea,0xf9,0xea,0xf9, +0x13,0xfa,0x97,0xfa,0x39,0xfb,0xb6,0xfb,0x37,0xfc,0xb8,0xfc, +0x24,0xfd,0xae,0xfd,0x45,0xfe,0xe7,0xfe,0x8c,0xff,0xf5,0xff, +0x58,0x0,0xf0,0x0,0xa1,0x1,0x5a,0x2,0xcd,0x2,0xe5,0x2, +0xfc,0x2,0xf9,0x2,0xb1,0x2,0x2b,0x2,0x54,0x1,0x72,0x0, +0xc4,0xff,0x11,0xff,0x2a,0xfe,0x28,0xfd,0x74,0xfc,0x38,0xfc, +0x5,0xfc,0xa6,0xfb,0x50,0xfb,0x31,0xfb,0x58,0xfb,0x99,0xfb, +0xa8,0xfb,0x53,0xfb,0xe1,0xfa,0xeb,0xfa,0x3c,0xfb,0x47,0xfb, +0x3e,0xfb,0x64,0xfb,0xb6,0xfb,0x47,0xfc,0x12,0xfd,0xf1,0xfd, +0xb9,0xfe,0x8a,0xff,0xa8,0x0,0xc0,0x1,0x86,0x2,0x3b,0x3, +0x3,0x4,0xd1,0x4,0x75,0x5,0xaa,0x5,0x98,0x5,0xa5,0x5, +0xe6,0x5,0x0,0x6,0xb3,0x5,0x54,0x5,0xfa,0x4,0x69,0x4, +0xcb,0x3,0x17,0x3,0x30,0x2,0x56,0x1,0x9d,0x0,0xd0,0xff, +0xc1,0xfe,0xc4,0xfd,0x4b,0xfd,0xd4,0xfc,0x19,0xfc,0xb1,0xfb, +0x86,0xfb,0x5a,0xfb,0x50,0xfb,0x3f,0xfb,0x58,0xfb,0xe1,0xfb, +0x90,0xfc,0x3f,0xfd,0xd2,0xfd,0x55,0xfe,0x32,0xff,0x46,0x0, +0x2c,0x1,0xec,0x1,0xab,0x2,0x89,0x3,0x7b,0x4,0x4d,0x5, +0xe8,0x5,0x46,0x6,0xa4,0x6,0x32,0x7,0xaf,0x7,0xdf,0x7, +0xc3,0x7,0x62,0x7,0xc4,0x6,0xe6,0x5,0xd9,0x4,0x9c,0x3, +0x42,0x2,0xfe,0x0,0x9e,0xff,0x26,0xfe,0x21,0xfd,0x6e,0xfc, +0x97,0xfb,0xb8,0xfa,0x1a,0xfa,0xfc,0xf9,0x53,0xfa,0x8a,0xfa, +0x91,0xfa,0xee,0xfa,0x97,0xfb,0x3a,0xfc,0x5,0xfd,0xd8,0xfd, +0x64,0xfe,0x2e,0xff,0x72,0x0,0x93,0x1,0x92,0x2,0xbd,0x3, +0xf5,0x4,0x44,0x6,0x6f,0x7,0x26,0x8,0xb9,0x8,0x41,0x9, +0x94,0x9,0xa7,0x9,0x7b,0x9,0x55,0x9,0x3e,0x9,0xcf,0x8, +0x27,0x8,0x90,0x7,0xfb,0x6,0x59,0x6,0x7b,0x5,0x53,0x4, +0x30,0x3,0x28,0x2,0x17,0x1,0xfd,0xff,0xe1,0xfe,0xc5,0xfd, +0xce,0xfc,0x1f,0xfc,0x9f,0xfb,0x4b,0xfb,0x45,0xfb,0x5c,0xfb, +0x6c,0xfb,0xc6,0xfb,0x85,0xfc,0x4c,0xfd,0xe9,0xfd,0x9a,0xfe, +0x76,0xff,0x5b,0x0,0x4d,0x1,0x3f,0x2,0x5,0x3,0xc1,0x3, +0x86,0x4,0x47,0x5,0x17,0x6,0xbd,0x6,0x0,0x7,0x1e,0x7, +0x3a,0x7,0x3b,0x7,0x4,0x7,0x79,0x6,0xb2,0x5,0xbd,0x4, +0x91,0x3,0x58,0x2,0xf1,0x0,0x1c,0xff,0x45,0xfd,0xb8,0xfb, +0x20,0xfa,0x7b,0xf8,0x2a,0xf7,0x25,0xf6,0x42,0xf5,0x90,0xf4, +0x28,0xf4,0x27,0xf4,0x8f,0xf4,0x19,0xf5,0xa1,0xf5,0x67,0xf6, +0x9a,0xf7,0xe9,0xf8,0x12,0xfa,0x3d,0xfb,0x81,0xfc,0xd9,0xfd, +0x55,0xff,0xb6,0x0,0xda,0x1,0xff,0x2,0x2a,0x4,0x54,0x5, +0x5c,0x6,0xf4,0x6,0x5f,0x7,0xcc,0x7,0xd1,0x7,0x6e,0x7, +0xc8,0x6,0xc8,0x5,0xa4,0x4,0x69,0x3,0xf8,0x1,0x80,0x0, +0x11,0xff,0xb5,0xfd,0x8b,0xfc,0x81,0xfb,0x9a,0xfa,0xd3,0xf9, +0x6,0xf9,0x68,0xf8,0x10,0xf8,0x95,0xf7,0xb,0xf7,0xe4,0xf6, +0x2c,0xf7,0xca,0xf7,0x6e,0xf8,0xba,0xf8,0x49,0xf9,0xaa,0xfa, +0x2b,0xfc,0x49,0xfd,0x4b,0xfe,0x62,0xff,0xa2,0x0,0xbc,0x1, +0x3f,0x2,0x8b,0x2,0x2,0x3,0x7e,0x3,0xb2,0x3,0x5f,0x3, +0xde,0x2,0xa0,0x2,0x50,0x2,0xdc,0x1,0x87,0x1,0x1e,0x1, +0x90,0x0,0xf3,0xff,0x24,0xff,0x41,0xfe,0x7a,0xfd,0xca,0xfc, +0x14,0xfc,0x16,0xfb,0xf2,0xf9,0x2e,0xf9,0xbd,0xf8,0x5a,0xf8, +0x23,0xf8,0x9,0xf8,0x2,0xf8,0x47,0xf8,0xab,0xf8,0x28,0xf9, +0xe,0xfa,0xea,0xfa,0x6d,0xfb,0xff,0xfb,0xa9,0xfc,0x84,0xfd, +0x9f,0xfe,0x5e,0xff,0xe1,0xff,0xb7,0x0,0xa5,0x1,0xa6,0x2, +0xbc,0x3,0x82,0x4,0x19,0x5,0xb3,0x5,0x22,0x6,0x50,0x6, +0x48,0x6,0x48,0x6,0x54,0x6,0x8,0x6,0x68,0x5,0xa0,0x4, +0xc9,0x3,0x3d,0x3,0xcd,0x2,0xe8,0x1,0xc2,0x0,0xe8,0xff, +0x74,0xff,0x3e,0xff,0xf8,0xfe,0x7f,0xfe,0x45,0xfe,0x9c,0xfe, +0xf,0xff,0x2f,0xff,0x12,0xff,0x21,0xff,0xcc,0xff,0x99,0x0, +0xb9,0x0,0x97,0x0,0xd8,0x0,0x78,0x1,0x58,0x2,0xfa,0x2, +0x2a,0x3,0x7d,0x3,0xf2,0x3,0x17,0x4,0xe8,0x3,0x9f,0x3, +0x92,0x3,0xb1,0x3,0x6d,0x3,0x9c,0x2,0x78,0x1,0x68,0x0, +0xd0,0xff,0x72,0xff,0xcd,0xfe,0xe4,0xfd,0x10,0xfd,0x72,0xfc, +0xe3,0xfb,0x53,0xfb,0xd4,0xfa,0x5e,0xfa,0xe2,0xf9,0x4c,0xf9, +0xa5,0xf8,0x2d,0xf8,0x20,0xf8,0x8d,0xf8,0x6,0xf9,0x26,0xf9, +0x5c,0xf9,0x7,0xfa,0xcd,0xfa,0x72,0xfb,0xe6,0xfb,0x4c,0xfc, +0xf0,0xfc,0x89,0xfd,0xae,0xfd,0xac,0xfd,0xdc,0xfd,0x2f,0xfe, +0x83,0xfe,0xa9,0xfe,0x7a,0xfe,0x38,0xfe,0x51,0xfe,0xb1,0xfe, +0xfb,0xfe,0x18,0xff,0x1a,0xff,0x35,0xff,0x79,0xff,0x8a,0xff, +0x45,0xff,0xe7,0xfe,0x9a,0xfe,0x82,0xfe,0x7e,0xfe,0x2e,0xfe, +0xaa,0xfd,0x62,0xfd,0x73,0xfd,0xab,0xfd,0xad,0xfd,0x75,0xfd, +0x79,0xfd,0xb8,0xfd,0xd5,0xfd,0xf8,0xfd,0x37,0xfe,0x83,0xfe, +0x2a,0xff,0xe4,0xff,0x35,0x0,0x82,0x0,0x3,0x1,0x88,0x1, +0x1e,0x2,0x88,0x2,0xbc,0x2,0x6,0x3,0x48,0x3,0x78,0x3, +0x94,0x3,0x6e,0x3,0x4f,0x3,0x6a,0x3,0x74,0x3,0x3f,0x3, +0xd2,0x2,0x75,0x2,0x47,0x2,0x10,0x2,0xc4,0x1,0x2d,0x1, +0x3e,0x0,0x9b,0xff,0x71,0xff,0x65,0xff,0x4a,0xff,0xa,0xff, +0x7,0xff,0x83,0xff,0xf3,0xff,0x23,0x0,0x6c,0x0,0xef,0x0, +0x86,0x1,0xd6,0x1,0xd3,0x1,0xd5,0x1,0xfe,0x1,0x35,0x2, +0x50,0x2,0x4a,0x2,0x65,0x2,0xb2,0x2,0x2,0x3,0x1d,0x3, +0xf4,0x2,0xcd,0x2,0xee,0x2,0x20,0x3,0x3,0x3,0x8e,0x2, +0x8,0x2,0x9a,0x1,0x3e,0x1,0xdf,0x0,0x63,0x0,0xf7,0xff, +0xda,0xff,0xe9,0xff,0xf2,0xff,0x2,0x0,0x51,0x0,0xd5,0x0, +0x1e,0x1,0x4a,0x1,0xb8,0x1,0x1c,0x2,0x5f,0x2,0xa6,0x2, +0xad,0x2,0x7f,0x2,0x65,0x2,0x54,0x2,0x36,0x2,0xfb,0x1, +0xbf,0x1,0xb1,0x1,0x9c,0x1,0x3a,0x1,0xaa,0x0,0x41,0x0, +0x11,0x0,0xd6,0xff,0x71,0xff,0xf0,0xfe,0x7a,0xfe,0x58,0xfe, +0x7b,0xfe,0x9c,0xfe,0xac,0xfe,0xb1,0xfe,0xf0,0xfe,0x6e,0xff, +0xa5,0xff,0x9c,0xff,0xca,0xff,0x10,0x0,0x1d,0x0,0xf1,0xff, +0xca,0xff,0xc0,0xff,0xab,0xff,0x7a,0xff,0x1f,0xff,0xe3,0xfe, +0x2f,0xff,0x81,0xff,0x47,0xff,0xe9,0xfe,0xd0,0xfe,0x1,0xff, +0x53,0xff,0x68,0xff,0x4e,0xff,0x6f,0xff,0xb9,0xff,0xd1,0xff, +0xd6,0xff,0xa,0x0,0x33,0x0,0x2c,0x0,0x34,0x0,0x46,0x0, +0x4f,0x0,0x47,0x0,0xf7,0xff,0x9e,0xff,0x90,0xff,0x88,0xff, +0x4e,0xff,0xef,0xfe,0x82,0xfe,0x3f,0xfe,0x45,0xfe,0x69,0xfe, +0x37,0xfe,0xb9,0xfd,0x7d,0xfd,0x79,0xfd,0x6b,0xfd,0x70,0xfd, +0x77,0xfd,0x9f,0xfd,0x18,0xfe,0xb6,0xfe,0x7f,0xff,0x49,0x0, +0xd2,0x0,0x90,0x1,0x99,0x2,0x63,0x3,0xd6,0x3,0x5,0x4, +0x19,0x4,0x4f,0x4,0x58,0x4,0xb,0x4,0xc5,0x3,0x81,0x3, +0x10,0x3,0xa7,0x2,0x4c,0x2,0xa6,0x1,0xee,0x0,0x91,0x0, +0x23,0x0,0x5e,0xff,0xbc,0xfe,0x2f,0xfe,0x6e,0xfd,0xc4,0xfc, +0x5b,0xfc,0xd,0xfc,0xd6,0xfb,0xd6,0xfb,0x23,0xfc,0xa5,0xfc, +0x3a,0xfd,0xe0,0xfd,0x8e,0xfe,0x62,0xff,0x6c,0x0,0x50,0x1, +0xc7,0x1,0xf8,0x1,0x2f,0x2,0x9d,0x2,0xc,0x3,0x2c,0x3, +0xb,0x3,0xb3,0x2,0x49,0x2,0x1e,0x2,0xe0,0x1,0x2e,0x1, +0x6f,0x0,0xdf,0xff,0x5e,0xff,0xd7,0xfe,0xe5,0xfd,0x9c,0xfc, +0xbf,0xfb,0x4e,0xfb,0xe1,0xfa,0x6c,0xfa,0xdb,0xf9,0x48,0xf9, +0xfc,0xf8,0x2,0xf9,0x3b,0xf9,0x48,0xf9,0x45,0xf9,0xcc,0xf9, +0xaa,0xfa,0x58,0xfb,0xe1,0xfb,0x7c,0xfc,0x59,0xfd,0x45,0xfe, +0xde,0xfe,0x4a,0xff,0x91,0xff,0xa0,0xff,0xc8,0xff,0xd6,0xff, +0x5c,0xff,0xac,0xfe,0x36,0xfe,0x7,0xfe,0xbc,0xfd,0xff,0xfc, +0x39,0xfc,0xc6,0xfb,0x7a,0xfb,0x49,0xfb,0x9,0xfb,0xa2,0xfa, +0x78,0xfa,0x92,0xfa,0x94,0xfa,0x82,0xfa,0x8b,0xfa,0xe5,0xfa, +0x7e,0xfb,0xd1,0xfb,0xdf,0xfb,0x3c,0xfc,0xc,0xfd,0x1,0xfe, +0xb7,0xfe,0x16,0xff,0x81,0xff,0x1f,0x0,0xab,0x0,0xfc,0x0, +0x3,0x1,0xf2,0x0,0x16,0x1,0x31,0x1,0xf,0x1,0xda,0x0, +0xa0,0x0,0x93,0x0,0xce,0x0,0xf9,0x0,0xd9,0x0,0x88,0x0, +0x5b,0x0,0x85,0x0,0x85,0x0,0x5,0x0,0x84,0xff,0x38,0xff, +0xef,0xfe,0xbd,0xfe,0xa3,0xfe,0x7e,0xfe,0x58,0xfe,0x47,0xfe, +0x5f,0xfe,0xa8,0xfe,0x4,0xff,0x70,0xff,0x7,0x0,0x8f,0x0, +0xaa,0x0,0x87,0x0,0x99,0x0,0xe1,0x0,0x29,0x1,0x72,0x1, +0xb9,0x1,0xf6,0x1,0x46,0x2,0xcc,0x2,0x7c,0x3,0x1f,0x4, +0x95,0x4,0xf0,0x4,0x37,0x5,0x5c,0x5,0x53,0x5,0xfb,0x4, +0x78,0x4,0x33,0x4,0x1,0x4,0x60,0x3,0x7d,0x2,0xc5,0x1, +0x65,0x1,0x53,0x1,0xfb,0x0,0x30,0x0,0xa9,0xff,0x74,0xff, +0x15,0xff,0xbb,0xfe,0x75,0xfe,0x4,0xfe,0xb6,0xfd,0xd0,0xfd, +0x13,0xfe,0x4d,0xfe,0x8e,0xfe,0x7,0xff,0xc0,0xff,0x6f,0x0, +0x11,0x1,0x8,0x2,0xd,0x3,0x8f,0x3,0xc7,0x3,0xfa,0x3, +0x37,0x4,0xa7,0x4,0xba,0x4,0x7,0x4,0x68,0x3,0x38,0x3, +0xf5,0x2,0x91,0x2,0x1,0x2,0x38,0x1,0x7d,0x0,0xc6,0xff, +0x4,0xff,0x64,0xfe,0xd0,0xfd,0x2e,0xfd,0xad,0xfc,0x5e,0xfc, +0x2,0xfc,0x8d,0xfb,0x71,0xfb,0xbb,0xfb,0xfd,0xfb,0x23,0xfc, +0x4d,0xfc,0xa4,0xfc,0x6e,0xfd,0x6c,0xfe,0xf4,0xfe,0x16,0xff, +0x81,0xff,0x63,0x0,0x3b,0x1,0xb0,0x1,0xd7,0x1,0x23,0x2, +0xf6,0x2,0xae,0x3,0xa9,0x3,0x7a,0x3,0xa2,0x3,0xe7,0x3, +0x1c,0x4,0x4,0x4,0x92,0x3,0x20,0x3,0xbd,0x2,0x2c,0x2, +0x66,0x1,0xaa,0x0,0x22,0x0,0x97,0xff,0xdb,0xfe,0x25,0xfe, +0x91,0xfd,0x4,0xfd,0x7a,0xfc,0xff,0xfb,0x9f,0xfb,0x5c,0xfb, +0x3b,0xfb,0x3e,0xfb,0x45,0xfb,0x1b,0xfb,0xf9,0xfa,0x43,0xfb, +0xd3,0xfb,0x63,0xfc,0xf6,0xfc,0x6b,0xfd,0xf9,0xfd,0xda,0xfe, +0x89,0xff,0xdb,0xff,0x3a,0x0,0xa7,0x0,0x1a,0x1,0x70,0x1, +0x5c,0x1,0x2e,0x1,0x36,0x1,0x37,0x1,0xfd,0x0,0x8c,0x0, +0x11,0x0,0xaa,0xff,0x3f,0xff,0xb2,0xfe,0xe1,0xfd,0xfe,0xfc, +0x57,0xfc,0xc1,0xfb,0x1d,0xfb,0x84,0xfa,0x10,0xfa,0xeb,0xf9, +0xd6,0xf9,0xc2,0xf9,0x17,0xfa,0x9d,0xfa,0x31,0xfb,0x13,0xfc, +0xe8,0xfc,0xab,0xfd,0xcc,0xfe,0x8,0x0,0x12,0x1,0x0,0x2, +0x4,0x3,0x23,0x4,0x2,0x5,0xad,0x5,0x8f,0x6,0x72,0x7, +0xe2,0x7,0xb5,0x7,0x2d,0x7,0xd7,0x6,0xa1,0x6,0x7,0x6, +0xdb,0x4,0x55,0x3,0x10,0x2,0x2e,0x1,0x20,0x0,0xd7,0xfe, +0xb4,0xfd,0x4,0xfd,0xd0,0xfc,0x8e,0xfc,0xeb,0xfb,0x71,0xfb, +0x94,0xfb,0x12,0xfc,0x5b,0xfc,0x6c,0xfc,0xaa,0xfc,0x27,0xfd, +0xe5,0xfd,0x87,0xfe,0x99,0xfe,0xf6,0xfe,0x35,0x0,0x69,0x1, +0x10,0x2,0x43,0x2,0x39,0x2,0xb2,0x2,0x6f,0x3,0x4b,0x3, +0x90,0x2,0x2a,0x2,0x22,0x2,0x35,0x2,0x13,0x2,0x90,0x1, +0x2,0x1,0xb4,0x0,0xb3,0x0,0xcf,0x0,0x9b,0x0,0x31,0x0, +0xea,0xff,0x9b,0xff,0x4c,0xff,0x2f,0xff,0xc,0xff,0xe3,0xfe, +0xe2,0xfe,0xd3,0xfe,0xa0,0xfe,0x7b,0xfe,0x91,0xfe,0xdb,0xfe, +0x8,0xff,0xe0,0xfe,0x8d,0xfe,0x4a,0xfe,0x40,0xfe,0x7a,0xfe, +0xd6,0xfe,0x26,0xff,0x3f,0xff,0x42,0xff,0x84,0xff,0x3,0x0, +0x78,0x0,0xb8,0x0,0xd5,0x0,0xf7,0x0,0x13,0x1,0x39,0x1, +0x7d,0x1,0x8f,0x1,0x79,0x1,0x94,0x1,0xa9,0x1,0x96,0x1, +0x67,0x1,0xfa,0x0,0x8a,0x0,0x49,0x0,0xd1,0xff,0x19,0xff, +0x59,0xfe,0x63,0xfd,0x34,0xfc,0x23,0xfb,0x4e,0xfa,0x9b,0xf9, +0x23,0xf9,0xfc,0xf8,0xfb,0xf8,0x39,0xf9,0xe3,0xf9,0x9d,0xfa, +0x41,0xfb,0xfc,0xfb,0x9e,0xfc,0x28,0xfd,0xcd,0xfd,0x5b,0xfe, +0xe3,0xfe,0xb0,0xff,0x7f,0x0,0x16,0x1,0x9d,0x1,0x1a,0x2, +0x94,0x2,0x27,0x3,0x8f,0x3,0x8c,0x3,0x61,0x3,0x37,0x3, +0xbe,0x2,0xe6,0x1,0xf9,0x0,0x43,0x0,0xd7,0xff,0x40,0xff, +0x41,0xfe,0x6b,0xfd,0x8,0xfd,0xe9,0xfc,0xfd,0xfc,0xc,0xfd, +0xfe,0xfc,0x1a,0xfd,0x63,0xfd,0xa9,0xfd,0xdd,0xfd,0x29,0xfe, +0xc4,0xfe,0x52,0xff,0x6e,0xff,0x68,0xff,0x95,0xff,0xf3,0xff, +0x42,0x0,0x1f,0x0,0x9d,0xff,0x18,0xff,0xad,0xfe,0x4c,0xfe, +0xd9,0xfd,0x72,0xfd,0x2e,0xfd,0xf5,0xfc,0x10,0xfd,0x79,0xfd, +0xa2,0xfd,0xc7,0xfd,0x3b,0xfe,0x99,0xfe,0xd2,0xfe,0xfe,0xfe, +0x27,0xff,0x85,0xff,0xd1,0xff,0xea,0xff,0x42,0x0,0xb4,0x0, +0x22,0x1,0xc0,0x1,0x2b,0x2,0x32,0x2,0x27,0x2,0xd,0x2, +0xdf,0x1,0xb0,0x1,0x38,0x1,0x48,0x0,0x37,0xff,0x69,0xfe, +0xc7,0xfd,0x23,0xfd,0xaf,0xfc,0x6e,0xfc,0x34,0xfc,0x18,0xfc, +0x40,0xfc,0xc5,0xfc,0x84,0xfd,0xff,0xfd,0x30,0xfe,0x7e,0xfe, +0xec,0xfe,0x6f,0xff,0xf7,0xff,0x55,0x0,0xb2,0x0,0x24,0x1, +0x74,0x1,0xa8,0x1,0xe0,0x1,0x3f,0x2,0xd5,0x2,0x1d,0x3, +0xc6,0x2,0x33,0x2,0xa3,0x1,0x37,0x1,0x0,0x1,0x77,0x0, +0x88,0xff,0xeb,0xfe,0xb9,0xfe,0x82,0xfe,0x51,0xfe,0x7e,0xfe, +0x38,0xff,0x21,0x0,0xbd,0x0,0x46,0x1,0x12,0x2,0xee,0x2, +0xb3,0x3,0x48,0x4,0xa9,0x4,0x14,0x5,0x69,0x5,0x6d,0x5, +0x57,0x5,0x33,0x5,0xf4,0x4,0xc2,0x4,0x45,0x4,0x37,0x3, +0x30,0x2,0x89,0x1,0xdb,0x0,0x21,0x0,0x7d,0xff,0xaa,0xfe, +0xcd,0xfd,0x59,0xfd,0x8,0xfd,0xac,0xfc,0x8b,0xfc,0x7a,0xfc, +0x7b,0xfc,0xc1,0xfc,0xf8,0xfc,0x4a,0xfd,0xd,0xfe,0xdf,0xfe, +0xac,0xff,0x6c,0x0,0xea,0x0,0x91,0x1,0x45,0x2,0x62,0x2, +0x30,0x2,0xfe,0x1,0xba,0x1,0x5b,0x1,0x81,0x0,0x4c,0xff, +0x56,0xfe,0xd2,0xfd,0xb3,0xfd,0x7e,0xfd,0xea,0xfc,0x9c,0xfc, +0xda,0xfc,0x42,0xfd,0x79,0xfd,0x45,0xfd,0x23,0xfd,0x7f,0xfd, +0xd8,0xfd,0xfc,0xfd,0x8,0xfe,0x1e,0xfe,0xd0,0xfe,0xe5,0xff, +0x8d,0x0,0xfa,0x0,0x9a,0x1,0x4c,0x2,0xe3,0x2,0x34,0x3, +0x1e,0x3,0xcf,0x2,0xb0,0x2,0xaa,0x2,0x17,0x2,0x9,0x1, +0x2d,0x0,0x8f,0xff,0xf1,0xfe,0x50,0xfe,0x9a,0xfd,0xee,0xfc, +0x9a,0xfc,0x88,0xfc,0x6c,0xfc,0x70,0xfc,0xe9,0xfc,0x92,0xfd, +0x15,0xfe,0x81,0xfe,0xed,0xfe,0x9c,0xff,0xb6,0x0,0xbb,0x1, +0x2e,0x2,0x36,0x2,0x70,0x2,0x23,0x3,0x77,0x3,0xfd,0x2, +0x90,0x2,0x5e,0x2,0xfa,0x1,0x92,0x1,0xf1,0x0,0xfe,0xff, +0x95,0xff,0xa5,0xff,0x48,0xff,0x99,0xfe,0xfb,0xfd,0x85,0xfd, +0x5c,0xfd,0x12,0xfd,0x48,0xfc,0xac,0xfb,0xaf,0xfb,0xec,0xfb, +0x16,0xfc,0x40,0xfc,0xb7,0xfc,0xba,0xfd,0x0,0xff,0xf0,0xff, +0x69,0x0,0xf9,0x0,0xe6,0x1,0xb8,0x2,0x31,0x3,0x43,0x3, +0xe8,0x2,0xb6,0x2,0xbd,0x2,0x4d,0x2,0x9b,0x1,0xd,0x1, +0x6f,0x0,0xe2,0xff,0x55,0xff,0x7f,0xfe,0xaf,0xfd,0x11,0xfd, +0x73,0xfc,0xae,0xfb,0xbd,0xfa,0x1f,0xfa,0x11,0xfa,0x4,0xfa, +0xee,0xf9,0x34,0xfa,0xaa,0xfa,0x38,0xfb,0x1,0xfc,0xe4,0xfc, +0xd3,0xfd,0xdb,0xfe,0xdc,0xff,0xc4,0x0,0x98,0x1,0x35,0x2, +0x93,0x2,0xe3,0x2,0x0,0x3,0xc0,0x2,0x84,0x2,0x71,0x2, +0x28,0x2,0x91,0x1,0xf2,0x0,0x89,0x0,0x32,0x0,0xb7,0xff, +0x2a,0xff,0x92,0xfe,0xf4,0xfd,0x93,0xfd,0x56,0xfd,0xf0,0xfc, +0x85,0xfc,0x47,0xfc,0x33,0xfc,0x2f,0xfc,0x20,0xfc,0x20,0xfc, +0x59,0xfc,0xd1,0xfc,0x7e,0xfd,0x25,0xfe,0x95,0xfe,0xf6,0xfe, +0x9e,0xff,0x54,0x0,0x86,0x0,0x61,0x0,0x4d,0x0,0xb,0x0, +0xa3,0xff,0x3a,0xff,0xa6,0xfe,0x36,0xfe,0x4,0xfe,0xc2,0xfd, +0xa1,0xfd,0x7e,0xfd,0x36,0xfd,0x4c,0xfd,0xc9,0xfd,0x55,0xfe, +0xa2,0xfe,0x72,0xfe,0x5e,0xfe,0xc3,0xfe,0x14,0xff,0x39,0xff, +0x37,0xff,0xb,0xff,0x22,0xff,0x6c,0xff,0xa5,0xff,0xe8,0xff, +0x27,0x0,0x78,0x0,0xbe,0x0,0xa1,0x0,0x6b,0x0,0x45,0x0, +0xc,0x0,0xf7,0xff,0xea,0xff,0xc1,0xff,0xaa,0xff,0x76,0xff, +0x37,0xff,0x43,0xff,0x52,0xff,0x5d,0xff,0xaa,0xff,0xdf,0xff, +0xc8,0xff,0xad,0xff,0xa2,0xff,0xb9,0xff,0xe4,0xff,0xc8,0xff, +0x89,0xff,0x6b,0xff,0x4e,0xff,0x69,0xff,0xb2,0xff,0x8b,0xff, +0x23,0xff,0xee,0xfe,0x99,0xfe,0xef,0xfd,0x11,0xfd,0x45,0xfc, +0xc3,0xfb,0x52,0xfb,0xe6,0xfa,0x81,0xfa,0xd3,0xf9,0x5e,0xf9, +0x99,0xf9,0xd8,0xf9,0xf0,0xf9,0x48,0xfa,0xcb,0xfa,0x69,0xfb, +0xd,0xfc,0x83,0xfc,0x14,0xfd,0x2,0xfe,0xfb,0xfe,0xbb,0xff, +0x4a,0x0,0x97,0x0,0xc2,0x0,0x29,0x1,0x97,0x1,0xb9,0x1, +0xc3,0x1,0xc7,0x1,0xe0,0x1,0x26,0x2,0x1d,0x2,0xbe,0x1, +0x8d,0x1,0x9a,0x1,0xbb,0x1,0xa5,0x1,0x36,0x1,0xd5,0x0, +0xbe,0x0,0xd5,0x0,0xd8,0x0,0x85,0x0,0x23,0x0,0xf5,0xff, +0xf2,0xff,0x14,0x0,0x24,0x0,0x32,0x0,0x6f,0x0,0x94,0x0, +0x9d,0x0,0x9d,0x0,0x8b,0x0,0xad,0x0,0xd3,0x0,0x98,0x0, +0x2a,0x0,0xac,0xff,0x75,0xff,0xb2,0xff,0xe4,0xff,0xec,0xff, +0xbb,0xff,0x58,0xff,0x68,0xff,0xb5,0xff,0xbf,0xff,0xec,0xff, +0xff,0xff,0xbb,0xff,0xb0,0xff,0x93,0xff,0x9,0xff,0xbf,0xfe, +0xe5,0xfe,0x2,0xff,0xe3,0xfe,0x98,0xfe,0x59,0xfe,0x6d,0xfe, +0xbd,0xfe,0xc2,0xfe,0x6d,0xfe,0x5b,0xfe,0xa6,0xfe,0xbe,0xfe, +0x7d,0xfe,0x2b,0xfe,0x4,0xfe,0x2a,0xfe,0x77,0xfe,0x80,0xfe, +0x66,0xfe,0xa8,0xfe,0x16,0xff,0x5f,0xff,0x97,0xff,0x95,0xff, +0x98,0xff,0x15,0x0,0x73,0x0,0x40,0x0,0xe6,0xff,0x97,0xff, +0x7f,0xff,0xc1,0xff,0xec,0xff,0xaf,0xff,0x39,0xff,0x16,0xff, +0x83,0xff,0xd4,0xff,0x9b,0xff,0x4e,0xff,0x3d,0xff,0x86,0xff, +0x3,0x0,0x31,0x0,0x27,0x0,0x63,0x0,0xdf,0x0,0x74,0x1, +0x2,0x2,0x6d,0x2,0xec,0x2,0x70,0x3,0xbd,0x3,0x1f,0x4, +0xb3,0x4,0x42,0x5,0xd1,0x5,0x34,0x6,0x34,0x6,0x2c,0x6, +0x1d,0x6,0xab,0x5,0x19,0x5,0xb8,0x4,0x67,0x4,0xe3,0x3, +0xed,0x2,0xa4,0x1,0x9f,0x0,0xb,0x0,0x82,0xff,0xad,0xfe, +0xae,0xfd,0xf5,0xfc,0xa0,0xfc,0x85,0xfc,0xb0,0xfc,0x2,0xfd, +0x38,0xfd,0x78,0xfd,0xcb,0xfd,0x6,0xfe,0x66,0xfe,0x26,0xff, +0xed,0xff,0x48,0x0,0x48,0x0,0x79,0x0,0x2c,0x1,0x26,0x2, +0xfe,0x2,0x85,0x3,0xef,0x3,0x55,0x4,0x85,0x4,0xbf,0x4, +0x13,0x5,0x3,0x5,0xb8,0x4,0x59,0x4,0x97,0x3,0xe2,0x2, +0x82,0x2,0x1d,0x2,0xca,0x1,0x7c,0x1,0x6,0x1,0xb4,0x0, +0x81,0x0,0x4b,0x0,0xfc,0xff,0x6f,0xff,0x4,0xff,0xd5,0xfe, +0x5d,0xfe,0xa8,0xfd,0x5,0xfd,0xa3,0xfc,0xa1,0xfc,0xa2,0xfc, +0x68,0xfc,0x25,0xfc,0x25,0xfc,0x9d,0xfc,0x23,0xfd,0x5f,0xfd, +0x90,0xfd,0xd5,0xfd,0x75,0xfe,0x45,0xff,0x80,0xff,0x8c,0xff, +0x3,0x0,0x6b,0x0,0xac,0x0,0xd7,0x0,0xe4,0x0,0x51,0x1, +0xe7,0x1,0x12,0x2,0x22,0x2,0x65,0x2,0xd8,0x2,0x52,0x3, +0x5a,0x3,0xe2,0x2,0x5b,0x2,0xf8,0x1,0x83,0x1,0xb6,0x0, +0xbb,0xff,0xea,0xfe,0x3e,0xfe,0x93,0xfd,0xd6,0xfc,0x2b,0xfc, +0xf1,0xfb,0x1f,0xfc,0x4a,0xfc,0x39,0xfc,0xf8,0xfb,0xd8,0xfb, +0x8,0xfc,0x49,0xfc,0x88,0xfc,0xd6,0xfc,0x23,0xfd,0x7f,0xfd, +0xf4,0xfd,0x85,0xfe,0x50,0xff,0x47,0x0,0x52,0x1,0x48,0x2, +0xe3,0x2,0x76,0x3,0x52,0x4,0x0,0x5,0x55,0x5,0x7e,0x5, +0x5d,0x5,0x6,0x5,0x87,0x4,0xca,0x3,0xff,0x2,0x27,0x2, +0x71,0x1,0x18,0x1,0x7d,0x0,0x85,0xff,0xcc,0xfe,0x5c,0xfe, +0x46,0xfe,0x55,0xfe,0xd3,0xfd,0x15,0xfd,0xc4,0xfc,0xa0,0xfc, +0x5e,0xfc,0xf9,0xfb,0x96,0xfb,0x6b,0xfb,0x76,0xfb,0x91,0xfb, +0x7a,0xfb,0x8f,0xfb,0x69,0xfc,0x51,0xfd,0xa8,0xfd,0xe7,0xfd, +0x34,0xfe,0xbb,0xfe,0x6e,0xff,0x89,0xff,0x5a,0xff,0x9a,0xff, +0xe7,0xff,0x14,0x0,0x3f,0x0,0x27,0x0,0xb,0x0,0x61,0x0, +0xe4,0x0,0x19,0x1,0xf1,0x0,0xae,0x0,0xa0,0x0,0xc7,0x0, +0x97,0x0,0xd5,0xff,0x13,0xff,0x96,0xfe,0x16,0xfe,0x6a,0xfd, +0x9f,0xfc,0xb,0xfc,0xe0,0xfb,0xd6,0xfb,0xcc,0xfb,0xc9,0xfb, +0xc7,0xfb,0x6,0xfc,0x8b,0xfc,0xf1,0xfc,0x1d,0xfd,0x5b,0xfd, +0xef,0xfd,0xc2,0xfe,0x52,0xff,0x61,0xff,0x8b,0xff,0x5e,0x0, +0x5f,0x1,0x3,0x2,0x7f,0x2,0x8,0x3,0xa0,0x3,0x43,0x4, +0xc9,0x4,0x31,0x5,0x70,0x5,0x6b,0x5,0x72,0x5,0x9e,0x5, +0x9a,0x5,0x4f,0x5,0xe1,0x4,0x76,0x4,0xf5,0x3,0x5f,0x3, +0xe7,0x2,0x45,0x2,0x5d,0x1,0x94,0x0,0xe6,0xff,0x3e,0xff, +0x80,0xfe,0x8a,0xfd,0xd7,0xfc,0x7c,0xfc,0x3,0xfc,0xa0,0xfb, +0x69,0xfb,0x42,0xfb,0x51,0xfb,0x4c,0xfb,0x19,0xfb,0x11,0xfb, +0x34,0xfb,0x74,0xfb,0xc1,0xfb,0xf,0xfc,0x7b,0xfc,0xfb,0xfc, +0x98,0xfd,0x3e,0xfe,0xa7,0xfe,0x11,0xff,0xad,0xff,0x3f,0x0, +0xa5,0x0,0xc1,0x0,0xda,0x0,0x3f,0x1,0x68,0x1,0x28,0x1, +0xfb,0x0,0xed,0x0,0xf9,0x0,0x6,0x1,0x9a,0x0,0xbc,0xff, +0x1,0xff,0x84,0xfe,0xeb,0xfd,0x4,0xfd,0xb3,0xfb,0x4b,0xfa, +0x93,0xf9,0x40,0xf9,0x8b,0xf8,0xdd,0xf7,0x9f,0xf7,0xd7,0xf7, +0x99,0xf8,0x19,0xf9,0x43,0xf9,0x37,0xfa,0xb5,0xfb,0xf5,0xfc, +0x14,0xfe,0x6,0xff,0x1d,0x0,0xb0,0x1,0xe,0x3,0xfc,0x3, +0xf8,0x4,0x5,0x6,0x5,0x7,0xdf,0x7,0x45,0x8,0x3c,0x8, +0x33,0x8,0x49,0x8,0xe4,0x7,0xbf,0x6,0x7b,0x5,0x6d,0x4, +0x81,0x3,0xa6,0x2,0x71,0x1,0xe6,0xff,0xa9,0xfe,0xcf,0xfd, +0x2e,0xfd,0xc7,0xfc,0x53,0xfc,0xf5,0xfb,0xa,0xfc,0x3b,0xfc, +0x46,0xfc,0x5d,0xfc,0x94,0xfc,0x3,0xfd,0xb2,0xfd,0x6f,0xfe, +0x16,0xff,0xae,0xff,0x67,0x0,0x3b,0x1,0xc,0x2,0x7,0x3, +0xe3,0x3,0x3f,0x4,0x8a,0x4,0xbb,0x4,0x9d,0x4,0xb8,0x4, +0xd7,0x4,0x75,0x4,0x15,0x4,0xdb,0x3,0x65,0x3,0xfd,0x2, +0xc4,0x2,0x39,0x2,0x51,0x1,0x79,0x0,0xbb,0xff,0x0,0xff, +0x73,0xfe,0xdf,0xfd,0x6,0xfd,0x51,0xfc,0xb,0xfc,0xf9,0xfb, +0xc7,0xfb,0x6e,0xfb,0x2c,0xfb,0x0,0xfb,0xf6,0xfa,0x17,0xfb, +0xef,0xfa,0xa9,0xfa,0xc5,0xfa,0xea,0xfa,0x12,0xfb,0x60,0xfb, +0x95,0xfb,0x3d,0xfc,0x7c,0xfd,0x7e,0xfe,0x3d,0xff,0xfa,0xff, +0xac,0x0,0x8f,0x1,0x7f,0x2,0x2f,0x3,0x9a,0x3,0xc9,0x3, +0xd9,0x3,0xc2,0x3,0x7a,0x3,0x28,0x3,0xbf,0x2,0x41,0x2, +0xaa,0x1,0xcc,0x0,0xf5,0xff,0x6d,0xff,0xd2,0xfe,0xd4,0xfd, +0xb6,0xfc,0xc9,0xfb,0xec,0xfa,0x19,0xfa,0x90,0xf9,0x11,0xf9, +0x9c,0xf8,0xc3,0xf8,0x49,0xf9,0xbb,0xf9,0x5d,0xfa,0x58,0xfb, +0x88,0xfc,0xa8,0xfd,0xa5,0xfe,0xb5,0xff,0xc4,0x0,0xbf,0x1, +0xac,0x2,0x4e,0x3,0xa6,0x3,0xd9,0x3,0xd3,0x3,0xa2,0x3, +0x5a,0x3,0xa,0x3,0xaf,0x2,0x1b,0x2,0x78,0x1,0x6,0x1, +0x97,0x0,0xfd,0xff,0x4f,0xff,0xca,0xfe,0x86,0xfe,0x6d,0xfe, +0x64,0xfe,0x31,0xfe,0x19,0xfe,0xa7,0xfe,0x80,0xff,0x41,0x0, +0xee,0x0,0x5a,0x1,0xd,0x2,0x2c,0x3,0xc8,0x3,0x8,0x4, +0x84,0x4,0xd9,0x4,0xe4,0x4,0x9d,0x4,0x1b,0x4,0xfb,0x3, +0xf8,0x3,0x9e,0x3,0x25,0x3,0x5c,0x2,0x5f,0x1,0xe4,0x0, +0x97,0x0,0xc5,0xff,0x85,0xfe,0x61,0xfd,0xd3,0xfc,0xa4,0xfc, +0x46,0xfc,0xc6,0xfb,0x67,0xfb,0x55,0xfb,0xac,0xfb,0x11,0xfc, +0x39,0xfc,0x82,0xfc,0x39,0xfd,0xf,0xfe,0x7c,0xfe,0x7e,0xfe, +0xb4,0xfe,0x4d,0xff,0xbe,0xff,0xc3,0xff,0xa0,0xff,0x98,0xff, +0xbb,0xff,0xe4,0xff,0xb7,0xff,0x12,0xff,0x8a,0xfe,0x76,0xfe, +0x2f,0xfe,0x66,0xfd,0xa5,0xfc,0x4f,0xfc,0x67,0xfc,0x97,0xfc, +0x72,0xfc,0x37,0xfc,0x74,0xfc,0x5b,0xfd,0x91,0xfe,0x61,0xff, +0xb9,0xff,0x40,0x0,0x43,0x1,0x3b,0x2,0x69,0x2,0x4,0x2, +0xd5,0x1,0xd7,0x1,0xbc,0x1,0x94,0x1,0x66,0x1,0x46,0x1, +0x4d,0x1,0x49,0x1,0x1d,0x1,0xef,0x0,0xf7,0x0,0x15,0x1, +0xf1,0x0,0x8a,0x0,0x2e,0x0,0x30,0x0,0x65,0x0,0x73,0x0, +0xa2,0x0,0xf6,0x0,0x33,0x1,0xc2,0x1,0x52,0x2,0x62,0x2, +0xa8,0x2,0x37,0x3,0x91,0x3,0xc6,0x3,0x87,0x3,0x22,0x3, +0x3a,0x3,0x29,0x3,0xb9,0x2,0x6f,0x2,0x7,0x2,0x8a,0x1, +0x60,0x1,0x2c,0x1,0xb3,0x0,0x44,0x0,0xfe,0xff,0xbb,0xff, +0x6c,0xff,0xf,0xff,0xa1,0xfe,0x52,0xfe,0x3e,0xfe,0x30,0xfe, +0x15,0xfe,0x0,0xfe,0x13,0xfe,0x6a,0xfe,0xd3,0xfe,0x2f,0xff, +0xa2,0xff,0x34,0x0,0xb2,0x0,0xf6,0x0,0x50,0x1,0xd7,0x1, +0x14,0x2,0x22,0x2,0x37,0x2,0xd,0x2,0xcb,0x1,0xa8,0x1, +0x8e,0x1,0x77,0x1,0x46,0x1,0x25,0x1,0xa,0x1,0x90,0x0, +0x2e,0x0,0x23,0x0,0xea,0xff,0x6d,0xff,0xc0,0xfe,0x33,0xfe, +0xc,0xfe,0xe3,0xfd,0xbe,0xfd,0xb6,0xfd,0x83,0xfd,0x95,0xfd, +0xdc,0xfd,0xcd,0xfd,0xc0,0xfd,0xe4,0xfd,0x23,0xfe,0x65,0xfe, +0x50,0xfe,0x39,0xfe,0x5d,0xfe,0x88,0xfe,0xd3,0xfe,0x9,0xff, +0x31,0xff,0x75,0xff,0x5a,0xff,0x36,0xff,0x58,0xff,0x3b,0xff, +0x53,0xff,0x9a,0xff,0x35,0xff,0xa3,0xfe,0x67,0xfe,0x4c,0xfe, +0x4a,0xfe,0x1b,0xfe,0xf4,0xfd,0x23,0xfe,0x29,0xfe,0xfc,0xfd, +0xcc,0xfd,0x5a,0xfd,0xe4,0xfc,0xd1,0xfc,0xe1,0xfc,0xb4,0xfc, +0x77,0xfc,0x95,0xfc,0xf8,0xfc,0x6a,0xfd,0xb7,0xfd,0xbe,0xfd, +0x19,0xfe,0xe9,0xfe,0x87,0xff,0xf1,0xff,0x3f,0x0,0x80,0x0, +0xf4,0x0,0x19,0x1,0xfb,0x0,0x5c,0x1,0xd9,0x1,0x43,0x2, +0xe6,0x2,0x1f,0x3,0xb,0x3,0x5c,0x3,0xc8,0x3,0x5,0x4, +0x6,0x4,0xbe,0x3,0x72,0x3,0x1b,0x3,0xc7,0x2,0xc3,0x2, +0xa8,0x2,0x31,0x2,0xc5,0x1,0x75,0x1,0x2c,0x1,0x1d,0x1, +0x44,0x1,0x4f,0x1,0x8,0x1,0xaa,0x0,0x86,0x0,0x87,0x0, +0x73,0x0,0x47,0x0,0x3b,0x0,0x5c,0x0,0x75,0x0,0xa5,0x0, +0xf7,0x0,0x25,0x1,0x5d,0x1,0xac,0x1,0xac,0x1,0x76,0x1, +0x30,0x1,0xe1,0x0,0xda,0x0,0xe5,0x0,0x93,0x0,0x35,0x0, +0xff,0xff,0xc3,0xff,0x98,0xff,0x89,0xff,0x66,0xff,0x29,0xff, +0xf6,0xfe,0xcc,0xfe,0xb2,0xfe,0xa9,0xfe,0x8e,0xfe,0x68,0xfe, +0x38,0xfe,0xf3,0xfd,0xf0,0xfd,0x14,0xfe,0xf9,0xfd,0xe6,0xfd, +0xd8,0xfd,0xb7,0xfd,0xe5,0xfd,0x8,0xfe,0xd5,0xfd,0xbb,0xfd, +0xb1,0xfd,0xbb,0xfd,0xc6,0xfd,0x7e,0xfd,0x7a,0xfd,0xd7,0xfd, +0xe2,0xfd,0xb7,0xfd,0x5f,0xfd,0xef,0xfc,0xf7,0xfc,0x20,0xfd, +0x1b,0xfd,0x1d,0xfd,0xef,0xfc,0xb9,0xfc,0xb9,0xfc,0xad,0xfc, +0xa1,0xfc,0xaf,0xfc,0xe3,0xfc,0x25,0xfd,0x12,0xfd,0xe1,0xfc, +0xf8,0xfc,0x45,0xfd,0xb6,0xfd,0x8,0xfe,0x1f,0xfe,0x5a,0xfe, +0xc8,0xfe,0x4e,0xff,0xc5,0xff,0x4,0x0,0x59,0x0,0x1,0x1, +0xc4,0x1,0x47,0x2,0x62,0x2,0x90,0x2,0x16,0x3,0x83,0x3, +0xc2,0x3,0xf9,0x3,0x40,0x4,0xb3,0x4,0x0,0x5,0xd9,0x4, +0x6c,0x4,0x2c,0x4,0x77,0x4,0xe8,0x4,0xc1,0x4,0x26,0x4, +0x9f,0x3,0x3d,0x3,0xcf,0x2,0x3e,0x2,0x6c,0x1,0x6e,0x0, +0xf5,0xff,0x4,0x0,0xb4,0xff,0x27,0xff,0xef,0xfe,0xf7,0xfe, +0x3d,0xff,0x60,0xff,0xf,0xff,0xf0,0xfe,0x16,0xff,0xf8,0xfe, +0xa1,0xfe,0x35,0xfe,0xe6,0xfd,0xf2,0xfd,0x1d,0xfe,0x1b,0xfe, +0xff,0xfd,0x4,0xfe,0x4c,0xfe,0xa1,0xfe,0xa1,0xfe,0x6b,0xfe, +0xbd,0xfe,0x90,0xff,0xee,0xff,0xd1,0xff,0xc1,0xff,0xbc,0xff, +0xd3,0xff,0xc5,0xff,0x3e,0xff,0xbc,0xfe,0x7f,0xfe,0x49,0xfe, +0x14,0xfe,0xb6,0xfd,0x25,0xfd,0xb0,0xfc,0x60,0xfc,0xfe,0xfb, +0x76,0xfb,0xf2,0xfa,0x78,0xfa,0x3,0xfa,0xaf,0xf9,0x49,0xf9, +0x1,0xf9,0x3a,0xf9,0x64,0xf9,0x3d,0xf9,0x41,0xf9,0x86,0xf9, +0x4c,0xfa,0x70,0xfb,0x38,0xfc,0xd8,0xfc,0x95,0xfd,0x5f,0xfe, +0x7a,0xff,0x95,0x0,0x85,0x1,0x8d,0x2,0x41,0x3,0x98,0x3, +0x2,0x4,0x84,0x4,0x12,0x5,0x4d,0x5,0x5,0x5,0x9c,0x4, +0xfc,0x3,0x53,0x3,0xf8,0x2,0x56,0x2,0x50,0x1,0x6a,0x0, +0xa7,0xff,0x1,0xff,0x7c,0xfe,0x23,0xfe,0xf8,0xfd,0xb3,0xfd, +0xae,0xfd,0x43,0xfe,0xc1,0xfe,0x1d,0xff,0xea,0xff,0xca,0x0, +0x90,0x1,0x78,0x2,0x29,0x3,0x9f,0x3,0x21,0x4,0x7f,0x4, +0xe6,0x4,0x72,0x5,0x84,0x5,0x3c,0x5,0x41,0x5,0x58,0x5, +0x3c,0x5,0xf8,0x4,0x80,0x4,0x28,0x4,0xec,0x3,0x65,0x3, +0xc4,0x2,0x19,0x2,0x3c,0x1,0x84,0x0,0xe0,0xff,0xff,0xfe, +0x30,0xfe,0xa9,0xfd,0x50,0xfd,0xe,0xfd,0xb5,0xfc,0x70,0xfc, +0x8d,0xfc,0xcf,0xfc,0xfa,0xfc,0x44,0xfd,0xd3,0xfd,0x4f,0xfe, +0x59,0xfe,0x32,0xfe,0x46,0xfe,0x8d,0xfe,0xd9,0xfe,0xdf,0xfe, +0x5f,0xfe,0xb0,0xfd,0x49,0xfd,0x11,0xfd,0x80,0xfc,0x35,0xfb, +0xd4,0xf9,0x3f,0xf9,0xf,0xf9,0x9b,0xf8,0xf9,0xf7,0x61,0xf7, +0x5b,0xf7,0xd,0xf8,0xa3,0xf8,0xef,0xf8,0x78,0xf9,0x77,0xfa, +0x7,0xfc,0x7a,0xfd,0x2d,0xfe,0xe1,0xfe,0xf8,0xff,0xfd,0x0, +0xdd,0x1,0x4a,0x2,0x36,0x2,0x49,0x2,0x7f,0x2,0x79,0x2, +0x44,0x2,0x10,0x2,0xeb,0x1,0x87,0x1,0xbe,0x0,0xe2,0xff, +0x21,0xff,0xa5,0xfe,0x44,0xfe,0x61,0xfd,0x41,0xfc,0x9f,0xfb, +0x7e,0xfb,0x92,0xfb,0x5f,0xfb,0xc7,0xfa,0xb1,0xfa,0x65,0xfb, +0x2a,0xfc,0xce,0xfc,0x69,0xfd,0x20,0xfe,0x75,0xff,0xfa,0x0, +0xd3,0x1,0x8b,0x2,0xb5,0x3,0xc3,0x4,0x8a,0x5,0x1d,0x6, +0x5e,0x6,0x8b,0x6,0x9b,0x6,0x64,0x6,0x36,0x6,0xd,0x6, +0xb7,0x5,0x3f,0x5,0xa7,0x4,0xd,0x4,0x97,0x3,0x66,0x3, +0x5b,0x3,0xe2,0x2,0x1f,0x2,0xb1,0x1,0x57,0x1,0xf8,0x0, +0xa9,0x0,0x1c,0x0,0xaf,0xff,0xa1,0xff,0x8b,0xff,0x7b,0xff, +0x71,0xff,0x58,0xff,0x62,0xff,0x5d,0xff,0x40,0xff,0x2c,0xff, +0xed,0xfe,0xb2,0xfe,0xb8,0xfe,0xd2,0xfe,0xef,0xfe,0x9,0xff, +0x38,0xff,0x8a,0xff,0xca,0xff,0x3d,0x0,0xff,0x0,0x7e,0x1, +0x95,0x1,0x77,0x1,0x51,0x1,0x54,0x1,0x1f,0x1,0x82,0x0, +0xea,0xff,0x5f,0xff,0xe2,0xfe,0x87,0xfe,0xe7,0xfd,0x24,0xfd, +0xed,0xfc,0xf,0xfd,0xea,0xfc,0x7e,0xfc,0xd,0xfc,0xb1,0xfb, +0x71,0xfb,0x1,0xfb,0x3d,0xfa,0xad,0xf9,0x7a,0xf9,0x3b,0xf9, +0xd5,0xf8,0x76,0xf8,0x70,0xf8,0xa,0xf9,0xe8,0xf9,0x9e,0xfa, +0x48,0xfb,0xfc,0xfb,0xd9,0xfc,0xcc,0xfd,0x7a,0xfe,0x21,0xff, +0x24,0x0,0xc,0x1,0x57,0x1,0x1e,0x1,0xd1,0x0,0xf4,0x0, +0x81,0x1,0xce,0x1,0x71,0x1,0xa7,0x0,0x20,0x0,0x2d,0x0, +0x16,0x0,0x77,0xff,0xe1,0xfe,0x77,0xfe,0x24,0xfe,0xd2,0xfd, +0x2,0xfd,0x45,0xfc,0x93,0xfc,0x9,0xfd,0xf7,0xfc,0x11,0xfd, +0x6c,0xfd,0x26,0xfe,0x87,0xff,0xa6,0x0,0x21,0x1,0xe6,0x1, +0x3d,0x3,0xb2,0x4,0xd9,0x5,0x75,0x6,0xf6,0x6,0xa5,0x7, +0xfa,0x7,0xc0,0x7,0x70,0x7,0x25,0x7,0x8d,0x6,0x8b,0x5, +0x45,0x4,0xff,0x2,0xf5,0x1,0x1d,0x1,0x2b,0x0,0xfe,0xfe, +0xda,0xfd,0xfb,0xfc,0x4c,0xfc,0xaa,0xfb,0x3,0xfb,0x98,0xfa, +0xcc,0xfa,0x42,0xfb,0x90,0xfb,0x18,0xfc,0x5,0xfd,0x24,0xfe, +0x83,0xff,0xe5,0x0,0x8,0x2,0x1c,0x3,0x3e,0x4,0x62,0x5, +0x73,0x6,0x5d,0x7,0xfd,0x7,0x7,0x8,0xbc,0x7,0x84,0x7, +0x25,0x7,0xbb,0x6,0x55,0x6,0x80,0x5,0x82,0x4,0x86,0x3, +0x3b,0x2,0x18,0x1,0x4f,0x0,0x6e,0xff,0x77,0xfe,0x5e,0xfd, +0x1f,0xfc,0x39,0xfb,0xbe,0xfa,0x57,0xfa,0xf9,0xf9,0xd2,0xf9, +0xf7,0xf9,0x59,0xfa,0xfa,0xfa,0xa5,0xfb,0x13,0xfc,0x94,0xfc, +0x6c,0xfd,0x53,0xfe,0xfb,0xfe,0x57,0xff,0x99,0xff,0xeb,0xff, +0x6e,0x0,0xfd,0x0,0xeb,0x0,0x5e,0x0,0x46,0x0,0x71,0x0, +0x69,0x0,0x3b,0x0,0xd5,0xff,0x90,0xff,0x8d,0xff,0x4d,0xff, +0xd7,0xfe,0x6e,0xfe,0x5f,0xfe,0xa4,0xfe,0x61,0xfe,0xd6,0xfd, +0x6,0xfe,0x87,0xfe,0xba,0xfe,0x8f,0xfe,0x19,0xfe,0xf4,0xfd, +0x24,0xfe,0xe,0xfe,0xc1,0xfd,0x8a,0xfd,0x7a,0xfd,0x52,0xfd, +0xcd,0xfc,0x3c,0xfc,0xdd,0xfb,0xbb,0xfb,0xcc,0xfb,0x9b,0xfb, +0x4c,0xfb,0x52,0xfb,0x64,0xfb,0x75,0xfb,0xaf,0xfb,0x0,0xfc, +0x9e,0xfc,0x50,0xfd,0xae,0xfd,0xfb,0xfd,0x83,0xfe,0x6b,0xff, +0x8b,0x0,0x74,0x1,0x3,0x2,0x34,0x2,0x83,0x2,0x7f,0x3, +0x41,0x4,0x19,0x4,0xc2,0x3,0x71,0x3,0x7,0x3,0xc0,0x2, +0x51,0x2,0x7b,0x1,0xa8,0x0,0x28,0x0,0xcc,0xff,0x32,0xff, +0x59,0xfe,0x8b,0xfd,0xdf,0xfc,0x61,0xfc,0x9,0xfc,0x84,0xfb, +0xe0,0xfa,0x84,0xfa,0x5c,0xfa,0x17,0xfa,0xeb,0xf9,0x28,0xfa, +0x88,0xfa,0xbe,0xfa,0xfe,0xfa,0x78,0xfb,0x26,0xfc,0x13,0xfd, +0x2,0xfe,0x7b,0xfe,0xac,0xfe,0x6,0xff,0x45,0xff,0x55,0xff, +0xb6,0xff,0x44,0x0,0x96,0x0,0xc4,0x0,0xd9,0x0,0xec,0x0, +0xe,0x1,0x8,0x1,0xdd,0x0,0x9d,0x0,0x33,0x0,0xbb,0xff, +0x20,0xff,0x52,0xfe,0x9f,0xfd,0xff,0xfc,0x4a,0xfc,0xc1,0xfb, +0x80,0xfb,0x63,0xfb,0x4a,0xfb,0x29,0xfb,0x3f,0xfb,0xaf,0xfb, +0x1c,0xfc,0x29,0xfc,0x1b,0xfc,0x87,0xfc,0x5a,0xfd,0xfb,0xfd, +0x49,0xfe,0x9e,0xfe,0x5d,0xff,0x8a,0x0,0xb4,0x1,0x90,0x2, +0x3a,0x3,0xcc,0x3,0x6b,0x4,0x28,0x5,0xc6,0x5,0x10,0x6, +0xa,0x6,0xe4,0x5,0xd1,0x5,0xd3,0x5,0xc2,0x5,0x5e,0x5, +0xd3,0x4,0xbd,0x4,0xf5,0x4,0xb3,0x4,0xff,0x3,0x44,0x3, +0xa0,0x2,0x3b,0x2,0xe7,0x1,0x3c,0x1,0x96,0x0,0x5b,0x0, +0x60,0x0,0x84,0x0,0x93,0x0,0x6d,0x0,0x61,0x0,0x87,0x0, +0xb3,0x0,0xf6,0x0,0x40,0x1,0x64,0x1,0x7d,0x1,0xbb,0x1, +0x10,0x2,0x5c,0x2,0xdd,0x2,0xb4,0x3,0x65,0x4,0xc8,0x4, +0x3f,0x5,0xce,0x5,0x6e,0x6,0x11,0x7,0x4b,0x7,0x2d,0x7, +0x1b,0x7,0x2,0x7,0xe2,0x6,0xdc,0x6,0xd6,0x6,0xe2,0x6, +0xf8,0x6,0xbb,0x6,0x1b,0x6,0x76,0x5,0x28,0x5,0xee,0x4, +0x27,0x4,0xdf,0x2,0x76,0x1,0x5,0x0,0xe4,0xfe,0xf8,0xfd, +0x93,0xfc,0x29,0xfb,0x5f,0xfa,0xae,0xf9,0xf1,0xf8,0x66,0xf8, +0xe4,0xf7,0xa8,0xf7,0xbe,0xf7,0xa4,0xf7,0x73,0xf7,0x7b,0xf7, +0xd8,0xf7,0xaf,0xf8,0xa0,0xf9,0x62,0xfa,0x54,0xfb,0x9b,0xfc, +0x3d,0xfe,0x23,0x0,0xe7,0x1,0x6d,0x3,0xbe,0x4,0xb5,0x5, +0x50,0x6,0x7d,0x6,0x33,0x6,0xae,0x5,0xf6,0x4,0xed,0x3, +0xc4,0x2,0xd2,0x1,0x2e,0x1,0x7d,0x0,0x86,0xff,0x73,0xfe, +0x5e,0xfd,0x6b,0xfc,0xd1,0xfb,0x5c,0xfb,0xa1,0xfa,0xbf,0xf9, +0x2e,0xf9,0xed,0xf8,0xc0,0xf8,0xc5,0xf8,0x5,0xf9,0x93,0xf9, +0x96,0xfa,0xa7,0xfb,0xae,0xfc,0x2a,0xfe,0x1,0x0,0xd0,0x1, +0x60,0x3,0x9e,0x4,0xe7,0x5,0x1d,0x7,0xcf,0x7,0x4a,0x8, +0xb7,0x8,0x9,0x9,0x6e,0x9,0x75,0x9,0xe9,0x8,0x73,0x8, +0x5c,0x8,0x7d,0x8,0x57,0x8,0x82,0x7,0xbb,0x6,0x5c,0x6, +0xd8,0x5,0x2e,0x5,0x3a,0x4,0xff,0x2,0x55,0x2,0x5,0x2, +0x62,0x1,0xce,0x0,0x52,0x0,0xda,0xff,0xb5,0xff,0x90,0xff, +0x57,0xff,0x6f,0xff,0xc6,0xff,0x32,0x0,0x7d,0x0,0xa6,0x0, +0x30,0x1,0xfb,0x1,0xb5,0x2,0x9f,0x3,0x80,0x4,0x21,0x5, +0xb6,0x5,0x2a,0x6,0x9b,0x6,0x6,0x7,0x17,0x7,0x25,0x7, +0x47,0x7,0x5,0x7,0x99,0x6,0x38,0x6,0xc1,0x5,0x24,0x5, +0x15,0x4,0xb2,0x2,0x5b,0x1,0xeb,0xff,0x79,0xfe,0x3e,0xfd, +0xfe,0xfb,0xbc,0xfa,0xb0,0xf9,0xb8,0xf8,0xc6,0xf7,0x4d,0xf7, +0x95,0xf7,0xc,0xf8,0x11,0xf8,0xdc,0xf7,0x0,0xf8,0xc1,0xf8, +0xd9,0xf9,0xb4,0xfa,0x1d,0xfb,0x70,0xfb,0x36,0xfc,0x62,0xfd, +0x74,0xfe,0x65,0xff,0x47,0x0,0xfe,0x0,0x96,0x1,0xfc,0x1, +0x48,0x2,0x93,0x2,0x6a,0x2,0xe0,0x1,0x30,0x1,0xf1,0xff, +0x8e,0xfe,0xab,0xfd,0xe3,0xfc,0x2,0xfc,0x2c,0xfb,0x52,0xfa, +0x67,0xf9,0x91,0xf8,0x36,0xf8,0x1c,0xf8,0xb9,0xf7,0x3f,0xf7, +0xc2,0xf6,0x5e,0xf6,0x8b,0xf6,0xeb,0xf6,0x2d,0xf7,0x85,0xf7, +0xe8,0xf7,0xb5,0xf8,0x7,0xfa,0x60,0xfb,0xcc,0xfc,0x42,0xfe, +0x9d,0xff,0xf9,0x0,0x16,0x2,0xe8,0x2,0x71,0x3,0xa0,0x3, +0xe5,0x3,0x1f,0x4,0xf0,0x3,0x97,0x3,0xc,0x3,0x84,0x2, +0x42,0x2,0xef,0x1,0x98,0x1,0xf9,0x0,0xf2,0xff,0x72,0xff, +0x4a,0xff,0xca,0xfe,0x47,0xfe,0xd0,0xfd,0x7d,0xfd,0x62,0xfd, +0x37,0xfd,0x55,0xfd,0xa8,0xfd,0xe2,0xfd,0x56,0xfe,0x8e,0xfe, +0x55,0xfe,0x61,0xfe,0xd8,0xfe,0xbf,0xff,0x9b,0x0,0xcf,0x0, +0x17,0x1,0xcd,0x1,0x83,0x2,0x25,0x3,0x3f,0x3,0xfd,0x2, +0x1d,0x3,0x57,0x3,0x62,0x3,0x2c,0x3,0xb6,0x2,0x8c,0x2, +0x88,0x2,0x3e,0x2,0xef,0x1,0x8d,0x1,0x17,0x1,0xac,0x0, +0x31,0x0,0xe9,0xff,0x93,0xff,0xdd,0xfe,0x8f,0xfe,0x81,0xfe, +0xcf,0xfd,0xf7,0xfc,0x74,0xfc,0xee,0xfb,0x68,0xfb,0xe4,0xfa, +0x2a,0xfa,0x5c,0xf9,0xad,0xf8,0x19,0xf8,0x98,0xf7,0x17,0xf7, +0x8f,0xf6,0x2b,0xf6,0xfd,0xf5,0xdd,0xf5,0xdf,0xf5,0x64,0xf6, +0x5a,0xf7,0x3d,0xf8,0xf0,0xf8,0xbe,0xf9,0xaf,0xfa,0xba,0xfb, +0xbc,0xfc,0x66,0xfd,0xe3,0xfd,0x6e,0xfe,0xc4,0xfe,0xcf,0xfe, +0x7a,0xfe,0xcc,0xfd,0x7e,0xfd,0xa6,0xfd,0x6c,0xfd,0xab,0xfc, +0xe5,0xfb,0x87,0xfb,0xa4,0xfb,0xc9,0xfb,0xa8,0xfb,0x57,0xfb, +0xeb,0xfa,0x8d,0xfa,0x41,0xfa,0xee,0xf9,0xb6,0xf9,0xa7,0xf9, +0x8f,0xf9,0x60,0xf9,0x64,0xf9,0xde,0xf9,0x75,0xfa,0xef,0xfa, +0x9e,0xfb,0x65,0xfc,0x2,0xfd,0xa5,0xfd,0x3a,0xfe,0xc4,0xfe, +0x6d,0xff,0xd4,0xff,0xf4,0xff,0x39,0x0,0x96,0x0,0xc,0x1, +0x91,0x1,0xe5,0x1,0x5c,0x2,0x11,0x3,0xa5,0x3,0x64,0x4, +0x64,0x5,0x43,0x6,0xe,0x7,0x67,0x7,0x42,0x7,0x71,0x7, +0xdd,0x7,0xf,0x8,0x19,0x8,0xb7,0x7,0x20,0x7,0xcc,0x6, +0x51,0x6,0x91,0x5,0xd4,0x4,0x0,0x4,0xf7,0x2,0x9f,0x1, +0x45,0x0,0x63,0xff,0x97,0xfe,0x90,0xfd,0x89,0xfc,0x96,0xfb, +0xf7,0xfa,0xc8,0xfa,0xbd,0xfa,0xab,0xfa,0x94,0xfa,0xcd,0xfa, +0x7b,0xfb,0x22,0xfc,0xc1,0xfc,0x9c,0xfd,0x84,0xfe,0x83,0xff, +0xa1,0x0,0x9a,0x1,0x90,0x2,0x8f,0x3,0x52,0x4,0xf6,0x4, +0x81,0x5,0xa4,0x5,0x95,0x5,0x74,0x5,0xcf,0x4,0xe0,0x3, +0x11,0x3,0xfe,0x1,0xda,0x0,0x6,0x0,0x10,0xff,0x7,0xfe, +0x37,0xfd,0x69,0xfc,0xb3,0xfb,0xb,0xfb,0x3e,0xfa,0xa7,0xf9, +0x68,0xf9,0x5d,0xf9,0x51,0xf9,0x7,0xf9,0x10,0xf9,0xb1,0xf9, +0x4c,0xfa,0xdd,0xfa,0x93,0xfb,0x65,0xfc,0x79,0xfd,0x63,0xfe, +0xf6,0xfe,0xe5,0xff,0x1b,0x1,0xf6,0x1,0x6d,0x2,0xa4,0x2, +0xbe,0x2,0x0,0x3,0x91,0x3,0x1e,0x4,0x21,0x4,0xe4,0x3, +0x1c,0x4,0x8c,0x4,0xa6,0x4,0x9a,0x4,0x9b,0x4,0x82,0x4, +0x4b,0x4,0xf3,0x3,0x7e,0x3,0x15,0x3,0xa0,0x2,0x29,0x2, +0xf9,0x1,0xbb,0x1,0x2f,0x1,0xcd,0x0,0xac,0x0,0x9f,0x0, +0xc4,0x0,0x12,0x1,0x6c,0x1,0x88,0x1,0x4f,0x1,0x39,0x1, +0x71,0x1,0xd3,0x1,0x57,0x2,0x9c,0x2,0x86,0x2,0x9f,0x2, +0x30,0x3,0x8,0x4,0xb0,0x4,0xc,0x5,0x83,0x5,0xd9,0x5, +0xbc,0x5,0xc9,0x5,0x2b,0x6,0x48,0x6,0x5,0x6,0x9c,0x5, +0x1a,0x5,0xa8,0x4,0x42,0x4,0x93,0x3,0xa6,0x2,0xd2,0x1, +0x19,0x1,0x5c,0x0,0x90,0xff,0xc7,0xfe,0x43,0xfe,0xf8,0xfd, +0x94,0xfd,0x3e,0xfd,0x11,0xfd,0xcb,0xfc,0x9a,0xfc,0xd8,0xfc, +0x31,0xfd,0x44,0xfd,0x2d,0xfd,0x18,0xfd,0x35,0xfd,0xa1,0xfd, +0xed,0xfd,0xd3,0xfd,0xc5,0xfd,0xe1,0xfd,0xa,0xfe,0x79,0xfe, +0xf2,0xfe,0x3d,0xff,0xab,0xff,0x15,0x0,0x1b,0x0,0xee,0xff, +0xc2,0xff,0xba,0xff,0xdc,0xff,0xd5,0xff,0x8b,0xff,0x3e,0xff, +0x5,0xff,0xf5,0xfe,0x1f,0xff,0x3f,0xff,0x2b,0xff,0x24,0xff, +0x3d,0xff,0x36,0xff,0x5,0xff,0xd9,0xfe,0xc0,0xfe,0x78,0xfe, +0xc5,0xfd,0xeb,0xfc,0x38,0xfc,0xb9,0xfb,0x53,0xfb,0xae,0xfa, +0xe0,0xf9,0x5b,0xf9,0x1d,0xf9,0x10,0xf9,0x14,0xf9,0x2,0xf9, +0x61,0xf9,0x2f,0xfa,0x9c,0xfa,0xe8,0xfa,0xad,0xfb,0xb2,0xfc, +0xc6,0xfd,0xd0,0xfe,0x9f,0xff,0x65,0x0,0x7f,0x1,0xe0,0x2, +0x7,0x4,0xd5,0x4,0x94,0x5,0x3a,0x6,0xcc,0x6,0x5a,0x7, +0x8f,0x7,0x71,0x7,0x1b,0x7,0x5d,0x6,0x78,0x5,0x5d,0x4, +0xb1,0x2,0x20,0x1,0x22,0x0,0x7,0xff,0xae,0xfd,0x86,0xfc, +0x97,0xfb,0xfe,0xfa,0x9c,0xfa,0xe4,0xf9,0x19,0xf9,0xe0,0xf8, +0xa,0xf9,0x4c,0xf9,0xb7,0xf9,0x7b,0xfa,0xc4,0xfb,0x31,0xfd, +0x45,0xfe,0x32,0xff,0x5b,0x0,0xdf,0x1,0x74,0x3,0xac,0x4, +0x90,0x5,0x49,0x6,0xed,0x6,0x6e,0x7,0x71,0x7,0x36,0x7, +0x3a,0x7,0xb,0x7,0x5e,0x6,0x78,0x5,0x8c,0x4,0xfe,0x3, +0xaf,0x3,0xff,0x2,0x30,0x2,0xb0,0x1,0x4a,0x1,0xcc,0x0, +0x5d,0x0,0x2b,0x0,0xf,0x0,0xf6,0xff,0xf6,0xff,0xe3,0xff, +0xe7,0xff,0x1f,0x0,0x2b,0x0,0x47,0x0,0x82,0x0,0x3d,0x0, +0xc9,0xff,0x95,0xff,0x6c,0xff,0x67,0xff,0x45,0xff,0xce,0xfe, +0x92,0xfe,0x9d,0xfe,0xbc,0xfe,0xf9,0xfe,0xf2,0xfe,0xac,0xfe, +0x88,0xfe,0x67,0xfe,0x5d,0xfe,0x6b,0xfe,0x46,0xfe,0x43,0xfe, +0x6e,0xfe,0x39,0xfe,0xec,0xfd,0xf0,0xfd,0xee,0xfd,0xd6,0xfd, +0xcf,0xfd,0xb1,0xfd,0x72,0xfd,0x1b,0xfd,0xa6,0xfc,0x12,0xfc, +0x52,0xfb,0x81,0xfa,0xcb,0xf9,0x24,0xf9,0x8e,0xf8,0x0,0xf8, +0x96,0xf7,0x7f,0xf7,0x69,0xf7,0x4c,0xf7,0x9f,0xf7,0x6,0xf8, +0x3f,0xf8,0xda,0xf8,0xd8,0xf9,0xda,0xfa,0xd9,0xfb,0xd3,0xfc, +0xf2,0xfd,0x28,0xff,0x2f,0x0,0x5e,0x1,0xbf,0x2,0xd7,0x3, +0xd4,0x4,0xb8,0x5,0x43,0x6,0xef,0x6,0xa8,0x7,0xcd,0x7, +0x9c,0x7,0x6e,0x7,0x3a,0x7,0x4,0x7,0x90,0x6,0xdb,0x5, +0x4f,0x5,0xf2,0x4,0x9f,0x4,0x44,0x4,0xd1,0x3,0x8b,0x3, +0x99,0x3,0xb2,0x3,0x9b,0x3,0x52,0x3,0x41,0x3,0xaf,0x3, +0x1a,0x4,0x2e,0x4,0x2a,0x4,0x48,0x4,0xa3,0x4,0x31,0x5, +0xc7,0x5,0x12,0x6,0xec,0x5,0xbc,0x5,0xad,0x5,0xa1,0x5, +0xd6,0x5,0x27,0x6,0x29,0x6,0xe7,0x5,0x85,0x5,0x37,0x5, +0x2e,0x5,0x1e,0x5,0xaa,0x4,0xc9,0x3,0xec,0x2,0x76,0x2, +0x8,0x2,0x6e,0x1,0xcf,0x0,0x1d,0x0,0x8d,0xff,0x24,0xff, +0xa9,0xfe,0x4f,0xfe,0xd2,0xfd,0xf7,0xfc,0x2a,0xfc,0x3a,0xfb, +0x1e,0xfa,0x60,0xf9,0xd1,0xf8,0x43,0xf8,0xbf,0xf7,0x28,0xf7, +0xde,0xf6,0x2,0xf7,0x3a,0xf7,0x6e,0xf7,0x72,0xf7,0x76,0xf7, +0xf0,0xf7,0x96,0xf8,0xfb,0xf8,0x30,0xf9,0x6b,0xf9,0xdc,0xf9, +0x97,0xfa,0x6a,0xfb,0xe0,0xfb,0x23,0xfc,0xe5,0xfc,0xc6,0xfd, +0x4f,0xfe,0xf8,0xfe,0x9c,0xff,0xbe,0xff,0x76,0xff,0xe6,0xfe, +0x5a,0xfe,0xf0,0xfd,0x81,0xfd,0x37,0xfd,0xd6,0xfc,0x4f,0xfc, +0x45,0xfc,0x82,0xfc,0x9e,0xfc,0xe6,0xfc,0x20,0xfd,0x14,0xfd, +0x26,0xfd,0x5e,0xfd,0x9a,0xfd,0xe3,0xfd,0x37,0xfe,0xb1,0xfe, +0x4f,0xff,0x8,0x0,0xf1,0x0,0xef,0x1,0xd9,0x2,0xae,0x3, +0x9f,0x4,0x97,0x5,0x6,0x6,0x2,0x6,0x1a,0x6,0x1e,0x6, +0xdf,0x5,0x93,0x5,0x8,0x5,0x44,0x4,0xaa,0x3,0x29,0x3, +0x98,0x2,0xfc,0x1,0x7c,0x1,0x3a,0x1,0xa,0x1,0xda,0x0, +0xc8,0x0,0xb0,0x0,0x8f,0x0,0x84,0x0,0xa0,0x0,0xc,0x1, +0xaa,0x1,0x48,0x2,0xe6,0x2,0x5c,0x3,0xdf,0x3,0xd5,0x4, +0xc3,0x5,0x47,0x6,0x8a,0x6,0x78,0x6,0x41,0x6,0x2f,0x6, +0xf5,0x5,0x5c,0x5,0x7d,0x4,0x80,0x3,0x87,0x2,0x81,0x1, +0x6d,0x0,0x6f,0xff,0x9a,0xfe,0x0,0xfe,0x6c,0xfd,0xb7,0xfc, +0x23,0xfc,0xc5,0xfb,0xba,0xfb,0xfe,0xfb,0xf7,0xfb,0xa7,0xfb, +0xc9,0xfb,0x4c,0xfc,0xaa,0xfc,0xdf,0xfc,0x3c,0xfd,0xed,0xfd, +0xa6,0xfe,0xf5,0xfe,0xfc,0xfe,0x32,0xff,0xa1,0xff,0xec,0xff, +0xed,0xff,0xa6,0xff,0x31,0xff,0xe2,0xfe,0xbb,0xfe,0x7f,0xfe, +0x44,0xfe,0x9,0xfe,0xcc,0xfd,0xb2,0xfd,0x93,0xfd,0x5d,0xfd, +0x3f,0xfd,0x39,0xfd,0x3d,0xfd,0x2c,0xfd,0xe5,0xfc,0xa6,0xfc, +0xa5,0xfc,0xe9,0xfc,0x52,0xfd,0x85,0xfd,0x8b,0xfd,0xba,0xfd, +0xf4,0xfd,0x16,0xfe,0x27,0xfe,0x18,0xfe,0x11,0xfe,0x19,0xfe, +0xe5,0xfd,0x88,0xfd,0x51,0xfd,0x43,0xfd,0x4e,0xfd,0x60,0xfd, +0x3d,0xfd,0xf3,0xfc,0xf4,0xfc,0x44,0xfd,0x89,0xfd,0xbc,0xfd, +0x8,0xfe,0x92,0xfe,0x44,0xff,0xd1,0xff,0x5e,0x0,0x3c,0x1, +0x38,0x2,0x7,0x3,0xc6,0x3,0x9c,0x4,0x5b,0x5,0xc8,0x5, +0x2,0x6,0xf8,0x5,0x69,0x5,0xa8,0x4,0xff,0x3,0x29,0x3, +0x1b,0x2,0xfe,0x0,0xf3,0xff,0x19,0xff,0x38,0xfe,0x55,0xfd, +0xcf,0xfc,0x68,0xfc,0xe8,0xfb,0x9c,0xfb,0x7a,0xfb,0x67,0xfb, +0x8a,0xfb,0xc6,0xfb,0xf6,0xfb,0x42,0xfc,0xbd,0xfc,0x45,0xfd, +0xe8,0xfd,0xcc,0xfe,0xa4,0xff,0x27,0x0,0x8e,0x0,0x5,0x1, +0x7d,0x1,0xc6,0x1,0xac,0x1,0x50,0x1,0xdf,0x0,0x4a,0x0, +0xac,0xff,0x6,0xff,0x4b,0xfe,0x88,0xfd,0x92,0xfc,0xb0,0xfb, +0x40,0xfb,0xb8,0xfa,0x7,0xfa,0xbb,0xf9,0x97,0xf9,0x64,0xf9, +0x47,0xf9,0x16,0xf9,0xc,0xf9,0x6d,0xf9,0xf3,0xf9,0x7f,0xfa, +0x17,0xfb,0xb8,0xfb,0x5b,0xfc,0xde,0xfc,0x54,0xfd,0xd6,0xfd, +0x51,0xfe,0xca,0xfe,0xf8,0xfe,0xd3,0xfe,0xd7,0xfe,0x0,0xff, +0x19,0xff,0x26,0xff,0xf6,0xfe,0xc7,0xfe,0xee,0xfe,0xd,0xff, +0xe,0xff,0x22,0xff,0x21,0xff,0x2f,0xff,0x71,0xff,0x95,0xff, +0x86,0xff,0x83,0xff,0xc0,0xff,0x2a,0x0,0x6d,0x0,0x9b,0x0, +0xed,0x0,0x33,0x1,0x72,0x1,0xed,0x1,0x56,0x2,0x66,0x2, +0x76,0x2,0xab,0x2,0xb6,0x2,0x8b,0x2,0x53,0x2,0x13,0x2, +0xd3,0x1,0x97,0x1,0x4e,0x1,0xf1,0x0,0xac,0x0,0xa3,0x0, +0x94,0x0,0x3e,0x0,0xe6,0xff,0xd9,0xff,0xec,0xff,0x1,0x0, +0x22,0x0,0x44,0x0,0x93,0x0,0x21,0x1,0x88,0x1,0x97,0x1, +0xa4,0x1,0xde,0x1,0x2a,0x2,0x60,0x2,0x50,0x2,0xb,0x2, +0xda,0x1,0x91,0x1,0xff,0x0,0x8b,0x0,0x54,0x0,0xd,0x0, +0xbf,0xff,0x47,0xff,0x84,0xfe,0xd,0xfe,0xf7,0xfd,0xa0,0xfd, +0xfa,0xfc,0x47,0xfc,0xb7,0xfb,0x99,0xfb,0xa3,0xfb,0x6d,0xfb, +0x41,0xfb,0x5e,0xfb,0xd2,0xfb,0x9d,0xfc,0x5a,0xfd,0xf0,0xfd, +0x9c,0xfe,0x4c,0xff,0xed,0xff,0x83,0x0,0xf0,0x0,0x5f,0x1, +0x6,0x2,0xb0,0x2,0x18,0x3,0x4a,0x3,0x5f,0x3,0x58,0x3, +0x54,0x3,0x56,0x3,0x17,0x3,0x9d,0x2,0x47,0x2,0x23,0x2, +0xd6,0x1,0x36,0x1,0x99,0x0,0x4f,0x0,0x31,0x0,0x20,0x0, +0x2c,0x0,0x47,0x0,0x6a,0x0,0x8e,0x0,0x89,0x0,0x7d,0x0, +0xb2,0x0,0x8,0x1,0x31,0x1,0x1d,0x1,0xdd,0x0,0xb2,0x0, +0xc7,0x0,0xd6,0x0,0xbc,0x0,0xa9,0x0,0x9a,0x0,0x97,0x0, +0xa6,0x0,0x9e,0x0,0xbc,0x0,0x11,0x1,0x20,0x1,0x8,0x1, +0x29,0x1,0x5f,0x1,0x9e,0x1,0xf4,0x1,0x42,0x2,0x8f,0x2, +0xda,0x2,0x7,0x3,0xe,0x3,0x1a,0x3,0x4d,0x3,0x7d,0x3, +0x96,0x3,0xa3,0x3,0x79,0x3,0x37,0x3,0x16,0x3,0xfa,0x2, +0xe6,0x2,0xba,0x2,0x4e,0x2,0xc4,0x1,0x23,0x1,0xac,0x0, +0x8b,0x0,0x3e,0x0,0xba,0xff,0x3e,0xff,0xbd,0xfe,0x9d,0xfe, +0xd3,0xfe,0xb7,0xfe,0x97,0xfe,0xd6,0xfe,0x32,0xff,0x98,0xff, +0xda,0xff,0x1,0x0,0x6b,0x0,0xe1,0x0,0x38,0x1,0x98,0x1, +0xca,0x1,0xed,0x1,0x4d,0x2,0x93,0x2,0x9e,0x2,0xc5,0x2, +0x7,0x3,0x36,0x3,0x49,0x3,0x4d,0x3,0x4d,0x3,0x4b,0x3, +0x41,0x3,0xe,0x3,0x9b,0x2,0x2b,0x2,0xf9,0x1,0xe6,0x1, +0xaf,0x1,0x38,0x1,0xbb,0x0,0x6d,0x0,0x1d,0x0,0xd8,0xff, +0xca,0xff,0xbc,0xff,0xa6,0xff,0xab,0xff,0xb3,0xff,0xd6,0xff, +0x19,0x0,0x33,0x0,0x2d,0x0,0x2e,0x0,0x21,0x0,0x1,0x0, +0xcd,0xff,0x52,0xff,0x95,0xfe,0x1e,0xfe,0x25,0xfe,0x51,0xfe, +0xaa,0xfe,0x2d,0xff,0x84,0xff,0xce,0xff,0x18,0x0,0x3c,0x0, +0x92,0x0,0x11,0x1,0x50,0x1,0x64,0x1,0x7b,0x1,0xa6,0x1, +0xbd,0x1,0x69,0x1,0xd9,0x0,0x58,0x0,0xdd,0xff,0x57,0xff, +0x8e,0xfe,0x8b,0xfd,0xb6,0xfc,0xe,0xfc,0x40,0xfb,0x32,0xfa, +0x31,0xf9,0x7d,0xf8,0xda,0xf7,0x38,0xf7,0xb9,0xf6,0x5a,0xf6, +0x5e,0xf6,0xb0,0xf6,0xff,0xf6,0xa4,0xf7,0xa8,0xf8,0xb2,0xf9, +0xc9,0xfa,0xc7,0xfb,0xbe,0xfc,0x7,0xfe,0x6c,0xff,0x97,0x0, +0x5d,0x1,0xe6,0x1,0xbb,0x2,0xba,0x3,0x6c,0x4,0xc0,0x4, +0x94,0x4,0x46,0x4,0x52,0x4,0x2a,0x4,0x7e,0x3,0xa7,0x2, +0xba,0x1,0xe4,0x0,0x3e,0x0,0x4e,0xff,0x17,0xfe,0x34,0xfd, +0xa5,0xfc,0xb,0xfc,0x75,0xfb,0x8,0xfb,0xc6,0xfa,0xd5,0xfa, +0x18,0xfb,0x36,0xfb,0x5d,0xfb,0xd7,0xfb,0x8b,0xfc,0x70,0xfd, +0x61,0xfe,0x5,0xff,0xaa,0xff,0xba,0x0,0xbf,0x1,0x70,0x2, +0x17,0x3,0xa4,0x3,0x19,0x4,0x8b,0x4,0x9b,0x4,0x65,0x4, +0x6c,0x4,0x8a,0x4,0x6c,0x4,0x9,0x4,0x85,0x3,0x2c,0x3, +0xed,0x2,0x68,0x2,0x9c,0x1,0xe1,0x0,0x74,0x0,0x21,0x0, +0x98,0xff,0xed,0xfe,0x4c,0xfe,0xd0,0xfd,0x74,0xfd,0x4,0xfd, +0xa6,0xfc,0x92,0xfc,0x9d,0xfc,0xb7,0xfc,0xe0,0xfc,0x7,0xfd, +0x6b,0xfd,0x1e,0xfe,0xb6,0xfe,0xff,0xfe,0x2e,0xff,0x64,0xff, +0x9d,0xff,0xfa,0xff,0x53,0x0,0x67,0x0,0x8a,0x0,0xec,0x0, +0x37,0x1,0x5f,0x1,0x6c,0x1,0x68,0x1,0xa2,0x1,0xe9,0x1, +0xb6,0x1,0x7,0x1,0x33,0x0,0x72,0xff,0xd6,0xfe,0x62,0xfe, +0xe6,0xfd,0x16,0xfd,0x26,0xfc,0x7f,0xfb,0x32,0xfb,0xb,0xfb, +0xb8,0xfa,0x38,0xfa,0xda,0xf9,0x97,0xf9,0x64,0xf9,0x3d,0xf9, +0xa,0xf9,0x16,0xf9,0x70,0xf9,0xb2,0xf9,0xe9,0xf9,0x56,0xfa, +0x1,0xfb,0xc6,0xfb,0x51,0xfc,0xb2,0xfc,0x41,0xfd,0xf3,0xfd, +0xa7,0xfe,0x62,0xff,0xfe,0xff,0x81,0x0,0x29,0x1,0xc8,0x1, +0x19,0x2,0x53,0x2,0xa4,0x2,0xea,0x2,0x9,0x3,0xdf,0x2, +0x7a,0x2,0x16,0x2,0xad,0x1,0x4c,0x1,0xf5,0x0,0x5d,0x0, +0xae,0xff,0x24,0xff,0xa2,0xfe,0x63,0xfe,0x81,0xfe,0xa1,0xfe, +0x97,0xfe,0x70,0xfe,0x77,0xfe,0xce,0xfe,0xf,0xff,0x27,0xff, +0x63,0xff,0xbe,0xff,0x10,0x0,0x4d,0x0,0xa7,0x0,0x3c,0x1, +0xe6,0x1,0xa1,0x2,0x57,0x3,0xeb,0x3,0x8c,0x4,0x1c,0x5, +0x72,0x5,0xc4,0x5,0xec,0x5,0x9c,0x5,0x2,0x5,0x81,0x4, +0x55,0x4,0x34,0x4,0xc5,0x3,0x33,0x3,0xa7,0x2,0xf,0x2, +0x7a,0x1,0x0,0x1,0x8b,0x0,0xfe,0xff,0x68,0xff,0xd1,0xfe, +0x23,0xfe,0x9a,0xfd,0x5f,0xfd,0x1a,0xfd,0x96,0xfc,0x8,0xfc, +0xaf,0xfb,0xa1,0xfb,0xcc,0xfb,0xff,0xfb,0x14,0xfc,0x41,0xfc, +0xaf,0xfc,0x3,0xfd,0x3f,0xfd,0xb1,0xfd,0x1c,0xfe,0x64,0xfe, +0xad,0xfe,0xf1,0xfe,0x46,0xff,0xa6,0xff,0x0,0x0,0x61,0x0, +0x97,0x0,0x97,0x0,0x95,0x0,0x8f,0x0,0x6e,0x0,0x2,0x0, +0x7c,0xff,0x4b,0xff,0x1c,0xff,0x98,0xfe,0x15,0xfe,0x9f,0xfd, +0x41,0xfd,0x13,0xfd,0xc2,0xfc,0x61,0xfc,0x51,0xfc,0x5f,0xfc, +0x3b,0xfc,0xa,0xfc,0xf7,0xfb,0xee,0xfb,0xf2,0xfb,0x22,0xfc, +0x4f,0xfc,0x77,0xfc,0xe2,0xfc,0x74,0xfd,0x8,0xfe,0xbc,0xfe, +0x66,0xff,0xfc,0xff,0xc5,0x0,0x96,0x1,0x11,0x2,0x57,0x2, +0xa7,0x2,0x24,0x3,0xcb,0x3,0x3d,0x4,0x40,0x4,0x31,0x4, +0x5d,0x4,0xae,0x4,0xdf,0x4,0xc7,0x4,0xa3,0x4,0x79,0x4, +0xf4,0x3,0x60,0x3,0x15,0x3,0x9f,0x2,0xd9,0x1,0x28,0x1, +0xa0,0x0,0x2f,0x0,0xe4,0xff,0xb2,0xff,0x8d,0xff,0x8d,0xff, +0x96,0xff,0x79,0xff,0x64,0xff,0x80,0xff,0xa6,0xff,0xc7,0xff, +0xe2,0xff,0xea,0xff,0x22,0x0,0xaf,0x0,0x4f,0x1,0xcd,0x1, +0x22,0x2,0x6d,0x2,0xc1,0x2,0xf9,0x2,0xd,0x3,0x17,0x3, +0x10,0x3,0xdc,0x2,0x72,0x2,0xe1,0x1,0x52,0x1,0xfe,0x0, +0xb2,0x0,0x8,0x0,0x69,0xff,0x29,0xff,0xbf,0xfe,0x37,0xfe, +0xde,0xfd,0x49,0xfd,0x75,0xfc,0xc8,0xfb,0x4a,0xfb,0xe1,0xfa, +0x53,0xfa,0xa9,0xf9,0x37,0xf9,0xfb,0xf8,0xa,0xf9,0x77,0xf9, +0xeb,0xf9,0x52,0xfa,0xcd,0xfa,0x71,0xfb,0x54,0xfc,0x1b,0xfd, +0x9c,0xfd,0x45,0xfe,0x9,0xff,0x89,0xff,0xe2,0xff,0x32,0x0, +0x80,0x0,0xe9,0x0,0x51,0x1,0x9d,0x1,0xe9,0x1,0x35,0x2, +0x6f,0x2,0x8c,0x2,0x72,0x2,0x4b,0x2,0x48,0x2,0x1f,0x2, +0xbd,0x1,0x7a,0x1,0x42,0x1,0xf0,0x0,0xbb,0x0,0xa3,0x0, +0x89,0x0,0x5a,0x0,0x1f,0x0,0x11,0x0,0x21,0x0,0x26,0x0, +0x41,0x0,0x62,0x0,0x6b,0x0,0x65,0x0,0x47,0x0,0x4b,0x0, +0x96,0x0,0xd8,0x0,0x2,0x1,0x4a,0x1,0xc8,0x1,0x70,0x2, +0xe9,0x2,0x36,0x3,0xa9,0x3,0xf8,0x3,0x1d,0x4,0x83,0x4, +0xdb,0x4,0x3,0x5,0x72,0x5,0xf2,0x5,0x25,0x6,0x28,0x6, +0x12,0x6,0xf7,0x5,0xc6,0x5,0x63,0x5,0x0,0x5,0x95,0x4, +0x0,0x4,0x7d,0x3,0x11,0x3,0xa5,0x2,0x31,0x2,0x8c,0x1, +0xec,0x0,0x86,0x0,0x17,0x0,0x9d,0xff,0x30,0xff,0xb6,0xfe, +0x38,0xfe,0xae,0xfd,0x28,0xfd,0xd6,0xfc,0x84,0xfc,0x38,0xfc, +0x37,0xfc,0x48,0xfc,0x56,0xfc,0x8d,0xfc,0xbd,0xfc,0xd2,0xfc, +0x17,0xfd,0x79,0xfd,0xa2,0xfd,0xa9,0xfd,0xd4,0xfd,0xf6,0xfd, +0xea,0xfd,0xf0,0xfd,0x24,0xfe,0x68,0xfe,0x9f,0xfe,0xb1,0xfe, +0xb4,0xfe,0xd0,0xfe,0xf1,0xfe,0xee,0xfe,0xbd,0xfe,0x68,0xfe, +0xf0,0xfd,0x66,0xfd,0xc9,0xfc,0xfa,0xfb,0x31,0xfb,0xc7,0xfa, +0x88,0xfa,0x26,0xfa,0xc7,0xf9,0xb3,0xf9,0xde,0xf9,0x16,0xfa, +0x5e,0xfa,0xb0,0xfa,0x3,0xfb,0x84,0xfb,0xf6,0xfb,0x1b,0xfc, +0x51,0xfc,0xa4,0xfc,0x0,0xfd,0xa1,0xfd,0x35,0xfe,0x91,0xfe, +0x0,0xff,0x53,0xff,0x7d,0xff,0xaa,0xff,0xbf,0xff,0xc9,0xff, +0xc9,0xff,0xb9,0xff,0xb9,0xff,0x8d,0xff,0x3b,0xff,0x15,0xff, +0xe6,0xfe,0x9f,0xfe,0x56,0xfe,0xff,0xfd,0xe0,0xfd,0xeb,0xfd, +0xbd,0xfd,0x8c,0xfd,0xa3,0xfd,0xd9,0xfd,0x11,0xfe,0x6c,0xfe, +0xd7,0xfe,0x15,0xff,0x74,0xff,0x11,0x0,0x6f,0x0,0xc3,0x0, +0x3a,0x1,0x5d,0x1,0x7e,0x1,0xcf,0x1,0xd4,0x1,0xb7,0x1, +0x7b,0x1,0xf3,0x0,0x87,0x0,0x22,0x0,0xa4,0xff,0x47,0xff, +0xcd,0xfe,0x62,0xfe,0x49,0xfe,0x10,0xfe,0xca,0xfd,0xad,0xfd, +0x9d,0xfd,0xca,0xfd,0xee,0xfd,0xd9,0xfd,0x11,0xfe,0x7e,0xfe, +0xe3,0xfe,0x6a,0xff,0xd4,0xff,0x1f,0x0,0x7a,0x0,0xb3,0x0, +0xec,0x0,0x26,0x1,0x8,0x1,0xbe,0x0,0x7c,0x0,0x2a,0x0, +0xcc,0xff,0x6f,0xff,0x2b,0xff,0xe5,0xfe,0x8b,0xfe,0x72,0xfe, +0x84,0xfe,0x6a,0xfe,0x33,0xfe,0xca,0xfd,0x45,0xfd,0xb,0xfd, +0x0,0xfd,0xf3,0xfc,0xe3,0xfc,0xb2,0xfc,0x98,0xfc,0xb7,0xfc, +0xbd,0xfc,0xaa,0xfc,0xd0,0xfc,0x4a,0xfd,0xcc,0xfd,0x1,0xfe, +0x16,0xfe,0x44,0xfe,0x86,0xfe,0xed,0xfe,0x2f,0xff,0xfc,0xfe, +0xda,0xfe,0xfd,0xfe,0xf6,0xfe,0xde,0xfe,0xdd,0xfe,0xd1,0xfe, +0xf2,0xfe,0x2b,0xff,0x1b,0xff,0x45,0xff,0xe8,0xff,0x5a,0x0, +0x93,0x0,0xef,0x0,0x52,0x1,0xc9,0x1,0x4a,0x2,0x7a,0x2, +0x70,0x2,0x78,0x2,0x90,0x2,0x8f,0x2,0x74,0x2,0x62,0x2, +0x39,0x2,0xd2,0x1,0x61,0x1,0xec,0x0,0x88,0x0,0x49,0x0, +0xd2,0xff,0x55,0xff,0x3c,0xff,0x11,0xff,0xbf,0xfe,0xac,0xfe, +0xbd,0xfe,0xf1,0xfe,0x4f,0xff,0xac,0xff,0x37,0x0,0xb,0x1, +0x10,0x2,0x37,0x3,0x3c,0x4,0x1a,0x5,0xf0,0x5,0x9b,0x6, +0x30,0x7,0xa5,0x7,0xbc,0x7,0x94,0x7,0x5c,0x7,0x1d,0x7, +0xbb,0x6,0x4,0x6,0x2f,0x5,0x5f,0x4,0x6e,0x3,0x98,0x2, +0xdb,0x1,0xcc,0x0,0xae,0xff,0xf9,0xfe,0x7a,0xfe,0xeb,0xfd, +0x6a,0xfd,0x1b,0xfd,0xe5,0xfc,0xbd,0xfc,0xc2,0xfc,0x4,0xfd, +0x78,0xfd,0xf4,0xfd,0x55,0xfe,0x9f,0xfe,0x1,0xff,0x8a,0xff, +0xde,0xff,0xf0,0xff,0x3b,0x0,0x9b,0x0,0xc3,0x0,0xf6,0x0, +0x10,0x1,0xf7,0x0,0xc,0x1,0xfb,0x0,0x70,0x0,0xf2,0xff, +0xad,0xff,0x6f,0xff,0x43,0xff,0xf,0xff,0xba,0xfe,0x69,0xfe, +0x4f,0xfe,0x46,0xfe,0x1,0xfe,0xab,0xfd,0x7a,0xfd,0x3f,0xfd, +0xe9,0xfc,0x77,0xfc,0x6,0xfc,0xef,0xfb,0x2d,0xfc,0x61,0xfc, +0x63,0xfc,0x6e,0xfc,0xdb,0xfc,0x60,0xfd,0xa6,0xfd,0xe,0xfe, +0x9d,0xfe,0xe,0xff,0x8d,0xff,0xdd,0xff,0xd9,0xff,0xfb,0xff, +0x46,0x0,0x7f,0x0,0xcd,0x0,0x3f,0x1,0xcf,0x1,0x5d,0x2, +0xb0,0x2,0xff,0x2,0x7a,0x3,0xce,0x3,0xc8,0x3,0x78,0x3, +0xef,0x2,0x5d,0x2,0xd4,0x1,0x28,0x1,0x61,0x0,0xb4,0xff, +0x29,0xff,0xae,0xfe,0x24,0xfe,0x91,0xfd,0x47,0xfd,0x31,0xfd, +0xf2,0xfc,0x8b,0xfc,0xc,0xfc,0xa9,0xfb,0xb0,0xfb,0xda,0xfb, +0xe9,0xfb,0x29,0xfc,0x9d,0xfc,0x40,0xfd,0x2c,0xfe,0x11,0xff, +0xc7,0xff,0x75,0x0,0x16,0x1,0xa6,0x1,0x10,0x2,0x5d,0x2, +0xaa,0x2,0xc4,0x2,0xab,0x2,0xa0,0x2,0x7d,0x2,0x31,0x2, +0xe1,0x1,0x6b,0x1,0xe4,0x0,0x6a,0x0,0xc5,0xff,0x1d,0xff, +0xa9,0xfe,0x34,0xfe,0xbd,0xfd,0x58,0xfd,0xe3,0xfc,0x85,0xfc, +0x56,0xfc,0x27,0xfc,0x31,0xfc,0x81,0xfc,0xb0,0xfc,0xd6,0xfc, +0x20,0xfd,0x5e,0xfd,0xa5,0xfd,0xf6,0xfd,0x18,0xfe,0x37,0xfe, +0x6b,0xfe,0x76,0xfe,0x9b,0xfe,0x2a,0xff,0xa4,0xff,0xa8,0xff, +0x9a,0xff,0xcf,0xff,0x35,0x0,0x97,0x0,0xaf,0x0,0x82,0x0, +0x5d,0x0,0x57,0x0,0x63,0x0,0x68,0x0,0x60,0x0,0xa7,0x0, +0x2e,0x1,0x6e,0x1,0xa7,0x1,0x47,0x2,0x6,0x3,0x8b,0x3, +0x9d,0x3,0x4d,0x3,0x6,0x3,0xbd,0x2,0x41,0x2,0xc3,0x1, +0x64,0x1,0x27,0x1,0xd1,0x0,0x35,0x0,0xb2,0xff,0x7a,0xff, +0x50,0xff,0x37,0xff,0x22,0xff,0xef,0xfe,0xc0,0xfe,0x90,0xfe, +0x4f,0xfe,0x26,0xfe,0x21,0xfe,0x21,0xfe,0x2b,0xfe,0x57,0xfe, +0xb6,0xfe,0x4a,0xff,0xf8,0xff,0xa6,0x0,0x56,0x1,0xee,0x1, +0x62,0x2,0xf7,0x2,0x9e,0x3,0xee,0x3,0xf8,0x3,0xff,0x3, +0xf0,0x3,0x9f,0x3,0xa,0x3,0x7a,0x2,0x12,0x2,0x9c,0x1, +0x14,0x1,0x95,0x0,0x11,0x0,0x88,0xff,0xfb,0xfe,0x66,0xfe, +0xfa,0xfd,0xcd,0xfd,0xa0,0xfd,0x69,0xfd,0x73,0xfd,0xb0,0xfd, +0xe7,0xfd,0x43,0xfe,0xac,0xfe,0xdc,0xfe,0x18,0xff,0x8c,0xff, +0xb,0x0,0x6f,0x0,0x80,0x0,0x89,0x0,0xe3,0x0,0x2d,0x1, +0x59,0x1,0x99,0x1,0xc0,0x1,0xf0,0x1,0x2e,0x2,0x39,0x2, +0x2a,0x2,0x5,0x2,0xff,0x1,0x2d,0x2,0x13,0x2,0xdb,0x1, +0xcd,0x1,0x89,0x1,0x3c,0x1,0x1e,0x1,0xfe,0x0,0xfd,0x0, +0xe1,0x0,0x73,0x0,0x4,0x0,0x8e,0xff,0x3f,0xff,0x42,0xff, +0xfd,0xfe,0x77,0xfe,0x43,0xfe,0x45,0xfe,0x3d,0xfe,0x33,0xfe, +0x34,0xfe,0x66,0xfe,0xd7,0xfe,0x68,0xff,0xbe,0xff,0xa8,0xff, +0x86,0xff,0xac,0xff,0x6,0x0,0x55,0x0,0x68,0x0,0x73,0x0, +0xc4,0x0,0x2d,0x1,0x71,0x1,0xa0,0x1,0xea,0x1,0x63,0x2, +0xdd,0x2,0xf8,0x2,0xad,0x2,0x74,0x2,0x6e,0x2,0x37,0x2, +0xcd,0x1,0x49,0x1,0xa1,0x0,0x34,0x0,0xe,0x0,0xd0,0xff, +0xb2,0xff,0xe9,0xff,0x3a,0x0,0x83,0x0,0xb8,0x0,0xe8,0x0, +0x18,0x1,0x37,0x1,0x64,0x1,0x71,0x1,0x27,0x1,0xf6,0x0, +0x18,0x1,0x4f,0x1,0x7c,0x1,0x81,0x1,0x9d,0x1,0x4,0x2, +0x43,0x2,0x40,0x2,0x4a,0x2,0x5c,0x2,0x56,0x2,0x30,0x2, +0xda,0x1,0x62,0x1,0xd9,0x0,0x5d,0x0,0xfd,0xff,0x95,0xff, +0x1f,0xff,0xc1,0xfe,0x8a,0xfe,0x68,0xfe,0x4e,0xfe,0x43,0xfe, +0x3f,0xfe,0x20,0xfe,0xec,0xfd,0xd8,0xfd,0xeb,0xfd,0xfd,0xfd, +0x1,0xfe,0xf7,0xfd,0xf2,0xfd,0x2c,0xfe,0x95,0xfe,0xda,0xfe, +0xfe,0xfe,0x2e,0xff,0x73,0xff,0xa5,0xff,0x8c,0xff,0x5e,0xff, +0x36,0xff,0xd8,0xfe,0x84,0xfe,0x67,0xfe,0x29,0xfe,0xd8,0xfd, +0x9e,0xfd,0x57,0xfd,0xed,0xfc,0x74,0xfc,0x4c,0xfc,0x4a,0xfc, +0xd4,0xfb,0x7c,0xfb,0xb7,0xfb,0xc8,0xfb,0x8a,0xfb,0x42,0xfb, +0xf3,0xfa,0xea,0xfa,0x18,0xfb,0x13,0xfb,0xdb,0xfa,0x94,0xfa, +0x97,0xfa,0x1f,0xfb,0xaa,0xfb,0xcd,0xfb,0xd3,0xfb,0x4a,0xfc, +0x2f,0xfd,0xd5,0xfd,0x1a,0xfe,0x8f,0xfe,0x48,0xff,0xdc,0xff, +0xc,0x0,0x1,0x0,0x7,0x0,0x28,0x0,0x30,0x0,0xde,0xff, +0x55,0xff,0x14,0xff,0x22,0xff,0x23,0xff,0xdf,0xfe,0x8a,0xfe, +0x94,0xfe,0xcd,0xfe,0xc0,0xfe,0x8a,0xfe,0x2c,0xfe,0xd5,0xfd, +0xe8,0xfd,0xe4,0xfd,0x8a,0xfd,0x61,0xfd,0x6c,0xfd,0x97,0xfd, +0xdc,0xfd,0xf1,0xfd,0xf6,0xfd,0x34,0xfe,0xbb,0xfe,0x5d,0xff, +0xab,0xff,0xd6,0xff,0x32,0x0,0x7a,0x0,0xdc,0x0,0x60,0x1, +0x88,0x1,0x99,0x1,0xcd,0x1,0xcc,0x1,0xbd,0x1,0xd5,0x1, +0xe6,0x1,0xc1,0x1,0x62,0x1,0x3,0x1,0xbe,0x0,0x8b,0x0, +0x58,0x0,0xf2,0xff,0x98,0xff,0x72,0xff,0x3f,0xff,0x40,0xff, +0x70,0xff,0x6b,0xff,0x82,0xff,0xb8,0xff,0xb4,0xff,0x9c,0xff, +0x7a,0xff,0x7d,0xff,0xd0,0xff,0xe9,0xff,0xd8,0xff,0x0,0x0, +0x1,0x0,0xed,0xff,0x9,0x0,0x4,0x0,0xe4,0xff,0xcf,0xff, +0xab,0xff,0x8f,0xff,0x71,0xff,0x54,0xff,0x62,0xff,0x4d,0xff, +0xf3,0xfe,0xc6,0xfe,0xd9,0xfe,0xd2,0xfe,0xba,0xfe,0xca,0xfe, +0xd6,0xfe,0xa4,0xfe,0x5b,0xfe,0x17,0xfe,0xde,0xfd,0xd0,0xfd, +0xa4,0xfd,0x7,0xfd,0x5c,0xfc,0x1a,0xfc,0x34,0xfc,0x4b,0xfc, +0x21,0xfc,0x1,0xfc,0x35,0xfc,0x91,0xfc,0xfd,0xfc,0x4f,0xfd, +0x7a,0xfd,0xeb,0xfd,0xae,0xfe,0x5a,0xff,0xc2,0xff,0xe4,0xff, +0x22,0x0,0xc9,0x0,0x5d,0x1,0x98,0x1,0xa5,0x1,0x9c,0x1, +0xa9,0x1,0x9c,0x1,0x3d,0x1,0xd2,0x0,0x54,0x0,0xbc,0xff, +0x39,0xff,0x6f,0xfe,0x76,0xfd,0xde,0xfc,0x61,0xfc,0xbd,0xfb, +0x12,0xfb,0x7d,0xfa,0x4e,0xfa,0x64,0xfa,0x5c,0xfa,0x5c,0xfa, +0x73,0xfa,0x93,0xfa,0xf6,0xfa,0x8e,0xfb,0x15,0xfc,0x8a,0xfc, +0x33,0xfd,0x2c,0xfe,0x1b,0xff,0xd7,0xff,0x8f,0x0,0x57,0x1, +0x36,0x2,0xeb,0x2,0x50,0x3,0xbe,0x3,0xf,0x4,0x5,0x4, +0x5,0x4,0x5,0x4,0xc7,0x3,0x67,0x3,0xc8,0x2,0x19,0x2, +0x9f,0x1,0x10,0x1,0x64,0x0,0xb9,0xff,0xff,0xfe,0x6d,0xfe, +0x22,0xfe,0xf7,0xfd,0xdb,0xfd,0xb6,0xfd,0xb8,0xfd,0x19,0xfe, +0x95,0xfe,0xf,0xff,0x9f,0xff,0x23,0x0,0x9f,0x0,0x30,0x1, +0xb4,0x1,0x1c,0x2,0x79,0x2,0xc5,0x2,0x3,0x3,0x3f,0x3, +0x63,0x3,0x6a,0x3,0x82,0x3,0x92,0x3,0x61,0x3,0x4,0x3, +0x94,0x2,0x21,0x2,0xe3,0x1,0xc7,0x1,0x77,0x1,0xf8,0x0, +0x8d,0x0,0x49,0x0,0x10,0x0,0xdc,0xff,0xbe,0xff,0xc1,0xff, +0xc9,0xff,0x86,0xff,0x15,0xff,0xf2,0xfe,0x14,0xff,0x33,0xff, +0x39,0xff,0xe8,0xfe,0x5f,0xfe,0x4,0xfe,0xcb,0xfd,0xbf,0xfd, +0xda,0xfd,0xa3,0xfd,0x35,0xfd,0xfc,0xfc,0xe9,0xfc,0xf8,0xfc, +0x26,0xfd,0x67,0xfd,0xb3,0xfd,0xc7,0xfd,0xc4,0xfd,0x2a,0xfe, +0xe9,0xfe,0xba,0xff,0x6c,0x0,0xe6,0x0,0x62,0x1,0xfa,0x1, +0x92,0x2,0x41,0x3,0xe6,0x3,0x3e,0x4,0x5c,0x4,0x6b,0x4, +0x7e,0x4,0x79,0x4,0x36,0x4,0xc6,0x3,0x31,0x3,0x73,0x2, +0xa8,0x1,0xdc,0x0,0x1b,0x0,0x6e,0xff,0xbb,0xfe,0x21,0xfe, +0xb5,0xfd,0x32,0xfd,0xa2,0xfc,0x73,0xfc,0x96,0xfc,0xa4,0xfc, +0xa6,0xfc,0xcd,0xfc,0x24,0xfd,0xa5,0xfd,0x3a,0xfe,0xe7,0xfe, +0xc0,0xff,0x92,0x0,0x55,0x1,0x29,0x2,0xef,0x2,0xa2,0x3, +0x40,0x4,0x96,0x4,0xb3,0x4,0x98,0x4,0x46,0x4,0x20,0x4, +0x1a,0x4,0xb2,0x3,0xe6,0x2,0xc,0x2,0x5d,0x1,0xbf,0x0, +0xf5,0xff,0x1d,0xff,0x7d,0xfe,0x1b,0xfe,0xb6,0xfd,0x6,0xfd, +0x41,0xfc,0xd4,0xfb,0xea,0xfb,0x59,0xfc,0x98,0xfc,0x89,0xfc, +0xc3,0xfc,0x57,0xfd,0xed,0xfd,0x8f,0xfe,0x29,0xff,0x8d,0xff, +0xd1,0xff,0x9,0x0,0x43,0x0,0x7c,0x0,0xb8,0x0,0xf7,0x0, +0x6,0x1,0xfb,0x0,0x20,0x1,0x6c,0x1,0xb2,0x1,0xbb,0x1, +0x63,0x1,0x4,0x1,0xde,0x0,0xb1,0x0,0x4b,0x0,0xc4,0xff, +0x62,0xff,0x3e,0xff,0xa,0xff,0xb4,0xfe,0x88,0xfe,0x90,0xfe, +0x9b,0xfe,0xa2,0xfe,0xc0,0xfe,0xea,0xfe,0xe5,0xfe,0xbb,0xfe, +0xbc,0xfe,0xbc,0xfe,0x91,0xfe,0xa9,0xfe,0xce,0xfe,0x7c,0xfe, +0x3c,0xfe,0x50,0xfe,0x62,0xfe,0xb2,0xfe,0x2a,0xff,0x64,0xff, +0xad,0xff,0x10,0x0,0x63,0x0,0xf7,0x0,0xb9,0x1,0x52,0x2, +0xa7,0x2,0xc9,0x2,0x11,0x3,0x8d,0x3,0xec,0x3,0x2a,0x4, +0x47,0x4,0x4d,0x4,0x75,0x4,0x9d,0x4,0x7a,0x4,0x1a,0x4, +0xd9,0x3,0xc2,0x3,0x61,0x3,0xb3,0x2,0xfc,0x1,0x41,0x1, +0xc0,0x0,0x4d,0x0,0x61,0xff,0x67,0xfe,0xe6,0xfd,0xb8,0xfd, +0x99,0xfd,0x44,0xfd,0xfb,0xfc,0x2f,0xfd,0x9a,0xfd,0x1,0xfe, +0x7e,0xfe,0xed,0xfe,0x4c,0xff,0x8e,0xff,0x94,0xff,0x96,0xff, +0xbb,0xff,0x0,0x0,0x56,0x0,0x97,0x0,0xb1,0x0,0xb5,0x0, +0xd1,0x0,0xf5,0x0,0xc7,0x0,0x79,0x0,0x6e,0x0,0x61,0x0, +0x33,0x0,0x0,0x0,0x9e,0xff,0x2b,0xff,0xe9,0xfe,0xc6,0xfe, +0x9a,0xfe,0x5d,0xfe,0x3a,0xfe,0x4b,0xfe,0x43,0xfe,0x21,0xfe, +0x39,0xfe,0x63,0xfe,0x6e,0xfe,0x78,0xfe,0x66,0xfe,0x36,0xfe, +0x23,0xfe,0x1,0xfe,0xae,0xfd,0x6b,0xfd,0x42,0xfd,0x3a,0xfd, +0x61,0xfd,0x7a,0xfd,0x5e,0xfd,0x4e,0xfd,0x7e,0xfd,0xd1,0xfd, +0x15,0xfe,0x71,0xfe,0xf3,0xfe,0x52,0xff,0x95,0xff,0xe2,0xff, +0x25,0x0,0x6f,0x0,0xc6,0x0,0x18,0x1,0x66,0x1,0x93,0x1, +0xc1,0x1,0x2a,0x2,0x7f,0x2,0x9b,0x2,0xd2,0x2,0x9,0x3, +0xcc,0x2,0x4d,0x2,0x15,0x2,0xee,0x1,0x87,0x1,0x27,0x1, +0x9d,0x0,0xc5,0xff,0x50,0xff,0x49,0xff,0x29,0xff,0xf0,0xfe, +0xad,0xfe,0x8f,0xfe,0xc5,0xfe,0xef,0xfe,0x16,0xff,0x8f,0xff, +0x18,0x0,0x86,0x0,0xe4,0x0,0x17,0x1,0x5f,0x1,0xf0,0x1, +0x6e,0x2,0xb5,0x2,0xf4,0x2,0x22,0x3,0x32,0x3,0x23,0x3, +0xd3,0x2,0x6a,0x2,0x3f,0x2,0x1e,0x2,0xae,0x1,0xf9,0x0, +0x2d,0x0,0x7a,0xff,0xe5,0xfe,0x67,0xfe,0xff,0xfd,0x73,0xfd, +0xf5,0xfc,0xf7,0xfc,0x28,0xfd,0x49,0xfd,0x86,0xfd,0xa7,0xfd, +0xb5,0xfd,0xeb,0xfd,0x3,0xfe,0xef,0xfd,0xe4,0xfd,0xdc,0xfd, +0xd5,0xfd,0xac,0xfd,0x47,0xfd,0xd9,0xfc,0x8e,0xfc,0x7e,0xfc, +0x8b,0xfc,0x6b,0xfc,0x34,0xfc,0xa,0xfc,0xe8,0xfb,0xed,0xfb, +0x9,0xfc,0x7,0xfc,0x17,0xfc,0x48,0xfc,0x62,0xfc,0x7c,0xfc, +0xb1,0xfc,0xe7,0xfc,0x3c,0xfd,0xad,0xfd,0xeb,0xfd,0x3,0xfe, +0x24,0xfe,0x4f,0xfe,0x97,0xfe,0xd7,0xfe,0xca,0xfe,0x90,0xfe, +0x62,0xfe,0x6e,0xfe,0xae,0xfe,0xde,0xfe,0xf7,0xfe,0xfd,0xfe, +0xfb,0xfe,0x23,0xff,0x37,0xff,0x1b,0xff,0x46,0xff,0x96,0xff, +0xa4,0xff,0x7d,0xff,0x4c,0xff,0x5c,0xff,0xac,0xff,0xd7,0xff, +0xd0,0xff,0xae,0xff,0x92,0xff,0xb0,0xff,0xe0,0xff,0x11,0x0, +0x44,0x0,0x4b,0x0,0x64,0x0,0xb3,0x0,0xf4,0x0,0x4a,0x1, +0xb2,0x1,0xff,0x1,0x6a,0x2,0xef,0x2,0x6a,0x3,0xd6,0x3, +0xf,0x4,0x3e,0x4,0x7d,0x4,0x91,0x4,0x85,0x4,0x55,0x4, +0xde,0x3,0x63,0x3,0xff,0x2,0x8a,0x2,0x5,0x2,0x7b,0x1, +0xfd,0x0,0x93,0x0,0x27,0x0,0xcc,0xff,0x92,0xff,0x4e,0xff, +0xf3,0xfe,0xb3,0xfe,0x8f,0xfe,0x70,0xfe,0x71,0xfe,0x71,0xfe, +0x41,0xfe,0x3e,0xfe,0x87,0xfe,0xc8,0xfe,0x1,0xff,0x3a,0xff, +0x6a,0xff,0xa3,0xff,0xd7,0xff,0x27,0x0,0x8d,0x0,0xb4,0x0, +0xbc,0x0,0xb3,0x0,0x92,0x0,0xb2,0x0,0xbf,0x0,0x6b,0x0, +0x3d,0x0,0xe,0x0,0x97,0xff,0x2a,0xff,0xa1,0xfe,0x19,0xfe, +0xde,0xfd,0x7f,0xfd,0x6,0xfd,0xac,0xfc,0x48,0xfc,0x21,0xfc, +0x33,0xfc,0x16,0xfc,0xff,0xfb,0xa,0xfc,0xe,0xfc,0xfa,0xfb, +0xc4,0xfb,0xb4,0xfb,0xd4,0xfb,0xc5,0xfb,0xaa,0xfb,0xb1,0xfb, +0xba,0xfb,0xdd,0xfb,0xa,0xfc,0x10,0xfc,0x1f,0xfc,0x72,0xfc, +0xde,0xfc,0x16,0xfd,0x1f,0xfd,0x31,0xfd,0x58,0xfd,0x99,0xfd, +0xf9,0xfd,0x70,0xfe,0xeb,0xfe,0x54,0xff,0xd7,0xff,0x7c,0x0, +0xf0,0x0,0x5e,0x1,0xf4,0x1,0x6f,0x2,0xe1,0x2,0x53,0x3, +0x95,0x3,0xd5,0x3,0x8,0x4,0xf9,0x3,0xf1,0x3,0x1b,0x4, +0x47,0x4,0x55,0x4,0x3a,0x4,0xfa,0x3,0xb2,0x3,0x91,0x3, +0x8d,0x3,0x5f,0x3,0xa,0x3,0xc5,0x2,0x90,0x2,0x63,0x2, +0x42,0x2,0x31,0x2,0x14,0x2,0xec,0x1,0xf4,0x1,0x13,0x2, +0x18,0x2,0x32,0x2,0x5d,0x2,0x6b,0x2,0x8b,0x2,0xe4,0x2, +0x57,0x3,0xab,0x3,0xe0,0x3,0x18,0x4,0x46,0x4,0x8b,0x4, +0xe5,0x4,0xe1,0x4,0xa9,0x4,0x8a,0x4,0x4a,0x4,0xfe,0x3, +0xbe,0x3,0x62,0x3,0xed,0x2,0x36,0x2,0x56,0x1,0x97,0x0, +0xc1,0xff,0xe9,0xfe,0x51,0xfe,0xbc,0xfd,0x2a,0xfd,0xaf,0xfc, +0x50,0xfc,0x52,0xfc,0x82,0xfc,0x8c,0xfc,0xa6,0xfc,0xe9,0xfc, +0x61,0xfd,0x10,0xfe,0xa2,0xfe,0x3,0xff,0x7a,0xff,0x1,0x0, +0x71,0x0,0xd2,0x0,0x24,0x1,0x3e,0x1,0x27,0x1,0xd,0x1, +0xcf,0x0,0x55,0x0,0xca,0xff,0x26,0xff,0x5e,0xfe,0x9f,0xfd, +0xee,0xfc,0x3a,0xfc,0x6f,0xfb,0x7c,0xfa,0xa9,0xf9,0x37,0xf9, +0xf6,0xf8,0xcc,0xf8,0xbb,0xf8,0xa1,0xf8,0xb0,0xf8,0x14,0xf9, +0x6e,0xf9,0xc1,0xf9,0x56,0xfa,0xfd,0xfa,0x8b,0xfb,0x3,0xfc, +0x7b,0xfc,0x27,0xfd,0xda,0xfd,0x72,0xfe,0x12,0xff,0x9b,0xff, +0x2d,0x0,0xf0,0x0,0x87,0x1,0xf0,0x1,0x51,0x2,0x7e,0x2, +0x87,0x2,0x82,0x2,0x77,0x2,0x73,0x2,0x39,0x2,0xe1,0x1, +0x8e,0x1,0x21,0x1,0xde,0x0,0xae,0x0,0x2e,0x0,0xae,0xff, +0x43,0xff,0xda,0xfe,0xb9,0xfe,0x9c,0xfe,0x46,0xfe,0x3,0xfe, +0xec,0xfd,0xf4,0xfd,0xfc,0xfd,0xf9,0xfd,0x22,0xfe,0x50,0xfe, +0x4d,0xfe,0x40,0xfe,0x61,0xfe,0xd6,0xfe,0x3c,0xff,0x41,0xff, +0x7e,0xff,0x27,0x0,0xcb,0x0,0x60,0x1,0xed,0x1,0x80,0x2, +0x41,0x3,0xf7,0x3,0x6d,0x4,0xb2,0x4,0xd6,0x4,0xee,0x4, +0xd7,0x4,0x7d,0x4,0x27,0x4,0xde,0x3,0x6b,0x3,0xa3,0x2, +0x87,0x1,0x76,0x0,0xac,0xff,0xe8,0xfe,0xf7,0xfd,0xd5,0xfc, +0x9c,0xfb,0xa5,0xfa,0xb,0xfa,0x61,0xf9,0x8b,0xf8,0xfd,0xf7, +0xd9,0xf7,0xdc,0xf7,0x0,0xf8,0x51,0xf8,0xc8,0xf8,0x73,0xf9, +0x51,0xfa,0x46,0xfb,0x28,0xfc,0xd8,0xfc,0x7e,0xfd,0x3e,0xfe, +0xdf,0xfe,0x36,0xff,0x4d,0xff,0x3b,0xff,0x3c,0xff,0x5a,0xff, +0x46,0xff,0xf6,0xfe,0x9a,0xfe,0x48,0xfe,0x21,0xfe,0xfa,0xfd, +0x92,0xfd,0x28,0xfd,0xe4,0xfc,0xae,0xfc,0x73,0xfc,0xf8,0xfb, +0x77,0xfb,0x6e,0xfb,0x92,0xfb,0x9f,0xfb,0xbe,0xfb,0xdb,0xfb, +0x19,0xfc,0x8e,0xfc,0xf4,0xfc,0x5d,0xfd,0xdc,0xfd,0x58,0xfe, +0xde,0xfe,0x4e,0xff,0xae,0xff,0x25,0x0,0x84,0x0,0xce,0x0, +0x21,0x1,0x69,0x1,0x9e,0x1,0xab,0x1,0xbb,0x1,0xe8,0x1, +0xea,0x1,0x6,0x2,0x5b,0x2,0x6e,0x2,0x94,0x2,0x2,0x3, +0x2b,0x3,0x59,0x3,0xca,0x3,0xb,0x4,0x45,0x4,0xaa,0x4, +0xfa,0x4,0x3b,0x5,0x7c,0x5,0xa2,0x5,0xaf,0x5,0xbe,0x5, +0xf7,0x5,0x2c,0x6,0x6,0x6,0xa6,0x5,0x2e,0x5,0x94,0x4, +0xe9,0x3,0x16,0x3,0x24,0x2,0x5c,0x1,0xa3,0x0,0xe8,0xff, +0x6f,0xff,0x9,0xff,0x8d,0xfe,0x48,0xfe,0x46,0xfe,0x63,0xfe, +0x82,0xfe,0x9b,0xfe,0xea,0xfe,0x54,0xff,0xa7,0xff,0x27,0x0, +0xa4,0x0,0xd0,0x0,0xf9,0x0,0x1c,0x1,0x32,0x1,0x7a,0x1, +0xb1,0x1,0xb0,0x1,0x99,0x1,0x4e,0x1,0xf8,0x0,0xc8,0x0, +0x94,0x0,0x2b,0x0,0x80,0xff,0xdc,0xfe,0x6c,0xfe,0xde,0xfd, +0x37,0xfd,0x97,0xfc,0x4,0xfc,0xcb,0xfb,0xb9,0xfb,0x5a,0xfb, +0xed,0xfa,0xb6,0xfa,0xb1,0xfa,0xc1,0xfa,0xc8,0xfa,0x8,0xfb, +0x7f,0xfb,0xc0,0xfb,0xda,0xfb,0xfe,0xfb,0x3f,0xfc,0xb7,0xfc, +0x25,0xfd,0x42,0xfd,0x53,0xfd,0x8d,0xfd,0xd3,0xfd,0x7,0xfe, +0x1a,0xfe,0xd,0xfe,0x26,0xfe,0x8b,0xfe,0xd9,0xfe,0xe4,0xfe, +0xf6,0xfe,0x18,0xff,0x4a,0xff,0xa6,0xff,0xe,0x0,0x87,0x0, +0x14,0x1,0x7c,0x1,0xdc,0x1,0x61,0x2,0xee,0x2,0x7f,0x3, +0xf0,0x3,0x18,0x4,0x41,0x4,0xaa,0x4,0xfc,0x4,0xe5,0x4, +0x94,0x4,0x3f,0x4,0xf1,0x3,0xc2,0x3,0x70,0x3,0xc1,0x2, +0x1d,0x2,0xbd,0x1,0x6a,0x1,0x21,0x1,0xe3,0x0,0xb2,0x0, +0xd3,0x0,0x2a,0x1,0x4f,0x1,0x6c,0x1,0xe3,0x1,0x90,0x2, +0x1e,0x3,0x7a,0x3,0xb9,0x3,0x21,0x4,0xde,0x4,0x89,0x5, +0xd4,0x5,0xfa,0x5,0x25,0x6,0x49,0x6,0x58,0x6,0x38,0x6, +0xfe,0x5,0xb6,0x5,0x4a,0x5,0xad,0x4,0xd8,0x3,0xee,0x2, +0x3a,0x2,0xb1,0x1,0x8,0x1,0x40,0x0,0x86,0xff,0xca,0xfe, +0x3,0xfe,0x78,0xfd,0x2a,0xfd,0xbe,0xfc,0x3d,0xfc,0xf7,0xfb, +0xec,0xfb,0xf9,0xfb,0x1a,0xfc,0x5b,0xfc,0xbb,0xfc,0x3,0xfd, +0x12,0xfd,0x3c,0xfd,0xc6,0xfd,0x35,0xfe,0x38,0xfe,0x45,0xfe, +0x6f,0xfe,0x65,0xfe,0x65,0xfe,0x6f,0xfe,0x24,0xfe,0xd6,0xfd, +0xb1,0xfd,0x68,0xfd,0x21,0xfd,0xe3,0xfc,0x7d,0xfc,0x54,0xfc, +0x8c,0xfc,0x8f,0xfc,0x47,0xfc,0x25,0xfc,0x54,0xfc,0xae,0xfc, +0xe0,0xfc,0xe4,0xfc,0x4,0xfd,0x2c,0xfd,0x3e,0xfd,0x80,0xfd, +0xca,0xfd,0xed,0xfd,0x2d,0xfe,0x6e,0xfe,0x7f,0xfe,0x79,0xfe, +0x43,0xfe,0x5,0xfe,0x0,0xfe,0xd0,0xfd,0x60,0xfd,0xfe,0xfc, +0xb5,0xfc,0xac,0xfc,0xce,0xfc,0xbf,0xfc,0xc6,0xfc,0x31,0xfd, +0xc3,0xfd,0x4f,0xfe,0xb6,0xfe,0xa,0xff,0xa9,0xff,0x9a,0x0, +0x79,0x1,0xb,0x2,0x76,0x2,0xf8,0x2,0x8a,0x3,0xfc,0x3, +0x34,0x4,0x5b,0x4,0xae,0x4,0x5,0x5,0x27,0x5,0x1b,0x5, +0xd2,0x4,0x7a,0x4,0x55,0x4,0x13,0x4,0x94,0x3,0x18,0x3, +0xa6,0x2,0x39,0x2,0xcf,0x1,0x7c,0x1,0x6e,0x1,0x5e,0x1, +0x2a,0x1,0x28,0x1,0x30,0x1,0x2a,0x1,0x4b,0x1,0x69,0x1, +0x79,0x1,0x8a,0x1,0x97,0x1,0xd3,0x1,0x18,0x2,0x37,0x2, +0x68,0x2,0x83,0x2,0x73,0x2,0x62,0x2,0x23,0x2,0x1,0x2, +0x1f,0x2,0xc6,0x1,0x3,0x1,0x80,0x0,0x45,0x0,0x2e,0x0, +0xa,0x0,0xab,0xff,0x43,0xff,0xe3,0xfe,0x7c,0xfe,0x15,0xfe, +0x9a,0xfd,0x25,0xfd,0xf5,0xfc,0xd1,0xfc,0x64,0xfc,0xdd,0xfb, +0xa5,0xfb,0xcf,0xfb,0x26,0xfc,0x64,0xfc,0x6c,0xfc,0x60,0xfc, +0x59,0xfc,0x5d,0xfc,0x7c,0xfc,0xa9,0xfc,0xcd,0xfc,0xc3,0xfc, +0x71,0xfc,0x35,0xfc,0x38,0xfc,0x30,0xfc,0x27,0xfc,0x13,0xfc, +0xd5,0xfb,0xc1,0xfb,0xd9,0xfb,0xe0,0xfb,0xf6,0xfb,0x25,0xfc, +0x55,0xfc,0x5d,0xfc,0x29,0xfc,0x5,0xfc,0xa,0xfc,0x38,0xfc, +0x89,0xfc,0x99,0xfc,0x99,0xfc,0xfb,0xfc,0x41,0xfd,0x27,0xfd, +0x1f,0xfd,0x61,0xfd,0xc2,0xfd,0xf8,0xfd,0x18,0xfe,0x47,0xfe, +0x72,0xfe,0xf6,0xfe,0xb0,0xff,0xf8,0xff,0x2e,0x0,0xac,0x0, +0x3a,0x1,0xbe,0x1,0xef,0x1,0x5,0x2,0x6d,0x2,0xa5,0x2, +0xaa,0x2,0xe9,0x2,0xe,0x3,0x56,0x3,0x0,0x4,0x52,0x4, +0x38,0x4,0x46,0x4,0x8d,0x4,0xdc,0x4,0x10,0x5,0x16,0x5, +0xf8,0x4,0xe9,0x4,0xf4,0x4,0xc2,0x4,0x63,0x4,0x2e,0x4, +0xff,0x3,0xd3,0x3,0xb7,0x3,0x84,0x3,0x53,0x3,0x12,0x3, +0x92,0x2,0x20,0x2,0xca,0x1,0x6d,0x1,0x55,0x1,0x78,0x1, +0x92,0x1,0xb8,0x1,0xd8,0x1,0xe8,0x1,0x11,0x2,0x25,0x2, +0x10,0x2,0xf,0x2,0xf7,0x1,0xb8,0x1,0xa2,0x1,0x7a,0x1, +0x9,0x1,0xa1,0x0,0x2e,0x0,0x9b,0xff,0x3e,0xff,0xf8,0xfe, +0x89,0xfe,0x33,0xfe,0xf,0xfe,0xf7,0xfd,0xd7,0xfd,0xab,0xfd, +0x8c,0xfd,0x8d,0xfd,0xa2,0xfd,0xbb,0xfd,0xc7,0xfd,0xd2,0xfd, +0xee,0xfd,0x12,0xfe,0x33,0xfe,0x40,0xfe,0x26,0xfe,0xf5,0xfd, +0xdf,0xfd,0xfb,0xfd,0x9,0xfe,0xdf,0xfd,0x98,0xfd,0x38,0xfd, +0xdf,0xfc,0xb5,0xfc,0x7f,0xfc,0x30,0xfc,0x0,0xfc,0xc1,0xfb, +0x60,0xfb,0x16,0xfb,0xe1,0xfa,0xbf,0xfa,0xdc,0xfa,0x25,0xfb, +0x67,0xfb,0xbf,0xfb,0x46,0xfc,0xd4,0xfc,0x74,0xfd,0x43,0xfe, +0x0,0xff,0xab,0xff,0x72,0x0,0x1a,0x1,0x68,0x1,0x72,0x1, +0x75,0x1,0x9b,0x1,0xa4,0x1,0x66,0x1,0x2a,0x1,0xfb,0x0, +0xc4,0x0,0x98,0x0,0x5a,0x0,0xf,0x0,0xde,0xff,0x89,0xff, +0x26,0xff,0x1d,0xff,0x36,0xff,0x2b,0xff,0x39,0xff,0x6c,0xff, +0xab,0xff,0xf9,0xff,0x46,0x0,0xb3,0x0,0x33,0x1,0x7c,0x1, +0xcc,0x1,0x38,0x2,0x4c,0x2,0x35,0x2,0x4e,0x2,0x64,0x2, +0x7d,0x2,0x9d,0x2,0x86,0x2,0x63,0x2,0x63,0x2,0x69,0x2, +0x7b,0x2,0x5b,0x2,0xe4,0x1,0x9d,0x1,0xb9,0x1,0xc5,0x1, +0x83,0x1,0x27,0x1,0x19,0x1,0x48,0x1,0x31,0x1,0xf3,0x0, +0xe0,0x0,0xc9,0x0,0xca,0x0,0xe2,0x0,0xb0,0x0,0x95,0x0, +0xdc,0x0,0x8,0x1,0x3,0x1,0xf2,0x0,0xce,0x0,0xbc,0x0, +0x95,0x0,0x3c,0x0,0xfc,0xff,0xcf,0xff,0xa0,0xff,0x75,0xff, +0x27,0xff,0xc8,0xfe,0x88,0xfe,0x73,0xfe,0x8c,0xfe,0x82,0xfe, +0x46,0xfe,0x42,0xfe,0x7b,0xfe,0xc2,0xfe,0xf0,0xfe,0xd8,0xfe, +0xc9,0xfe,0x21,0xff,0x8b,0xff,0x9b,0xff,0x58,0xff,0x0,0xff, +0xd8,0xfe,0xe5,0xfe,0xd4,0xfe,0x84,0xfe,0x3b,0xfe,0x1c,0xfe, +0x1f,0xfe,0x1f,0xfe,0xc6,0xfd,0x4f,0xfd,0x28,0xfd,0xfe,0xfc, +0xb3,0xfc,0x91,0xfc,0x79,0xfc,0x7d,0xfc,0xb7,0xfc,0xe7,0xfc, +0x1f,0xfd,0x60,0xfd,0x9c,0xfd,0x9,0xfe,0x7b,0xfe,0xdb,0xfe, +0x42,0xff,0x65,0xff,0x66,0xff,0x98,0xff,0xc9,0xff,0xb,0x0, +0x6a,0x0,0x95,0x0,0xac,0x0,0xe9,0x0,0x44,0x1,0xa2,0x1, +0xda,0x1,0x2,0x2,0x41,0x2,0x77,0x2,0x85,0x2,0x62,0x2, +0x2a,0x2,0xf5,0x1,0xc6,0x1,0xcb,0x1,0xe0,0x1,0xcb,0x1, +0xda,0x1,0x12,0x2,0x31,0x2,0x42,0x2,0x24,0x2,0xf3,0x1, +0xc,0x2,0x8,0x2,0x87,0x1,0x13,0x1,0x4,0x1,0x3,0x1, +0xd8,0x0,0x9c,0x0,0x56,0x0,0x1f,0x0,0x10,0x0,0xf3,0xff, +0xb9,0xff,0xa9,0xff,0xc5,0xff,0xe2,0xff,0xe7,0xff,0xbe,0xff, +0xa6,0xff,0xee,0xff,0x58,0x0,0x96,0x0,0xc0,0x0,0xea,0x0, +0x6,0x1,0x3f,0x1,0xa1,0x1,0xc6,0x1,0x9c,0x1,0x6e,0x1, +0x50,0x1,0x3b,0x1,0x5,0x1,0xa2,0x0,0x79,0x0,0x7c,0x0, +0x32,0x0,0xba,0xff,0x5b,0xff,0x4,0xff,0xa1,0xfe,0x52,0xfe, +0x1b,0xfe,0xae,0xfd,0x27,0xfd,0xfd,0xfc,0xcd,0xfc,0x48,0xfc, +0xdc,0xfb,0x83,0xfb,0x17,0xfb,0xd0,0xfa,0x8b,0xfa,0x3f,0xfa, +0x2f,0xfa,0x4c,0xfa,0x5e,0xfa,0x5b,0xfa,0x52,0xfa,0x4d,0xfa, +0x62,0xfa,0xa8,0xfa,0xf5,0xfa,0x49,0xfb,0xbe,0xfb,0x4,0xfc, +0x37,0xfc,0xb0,0xfc,0x21,0xfd,0x6e,0xfd,0xb2,0xfd,0xc2,0xfd, +0xd7,0xfd,0x2e,0xfe,0xba,0xfe,0x41,0xff,0x4b,0xff,0x2f,0xff, +0x8f,0xff,0xf5,0xff,0x2a,0x0,0x57,0x0,0x50,0x0,0x6a,0x0, +0x9a,0x0,0x4c,0x0,0xf4,0xff,0xef,0xff,0xd4,0xff,0xa9,0xff, +0x62,0xff,0xd5,0xfe,0x66,0xfe,0x4a,0xfe,0x23,0xfe,0xb4,0xfd, +0x54,0xfd,0x66,0xfd,0x9a,0xfd,0x9e,0xfd,0x89,0xfd,0x72,0xfd, +0xae,0xfd,0x1c,0xfe,0x31,0xfe,0x40,0xfe,0x95,0xfe,0xe7,0xfe, +0x74,0xff,0x17,0x0,0x4f,0x0,0xb9,0x0,0x9d,0x1,0x46,0x2, +0xa2,0x2,0xfa,0x2,0x63,0x3,0xd,0x4,0xba,0x4,0x10,0x5, +0x34,0x5,0x3c,0x5,0x45,0x5,0x80,0x5,0x8e,0x5,0x45,0x5, +0x0,0x5,0xa1,0x4,0xfc,0x3,0x4c,0x3,0x95,0x2,0xcd,0x1, +0xf8,0x0,0xeb,0xff,0xca,0xfe,0xf3,0xfd,0x53,0xfd,0xa3,0xfc, +0xfa,0xfb,0xa0,0xfb,0x9d,0xfb,0xc8,0xfb,0xd,0xfc,0x43,0xfc, +0x5e,0xfc,0xa5,0xfc,0x30,0xfd,0xd1,0xfd,0x6e,0xfe,0xed,0xfe, +0x5a,0xff,0xe8,0xff,0x7d,0x0,0xf8,0x0,0x72,0x1,0xe0,0x1, +0xd,0x2,0xa,0x2,0x8,0x2,0xe6,0x1,0xa1,0x1,0x8d,0x1, +0x78,0x1,0x2,0x1,0x81,0x0,0x30,0x0,0xd5,0xff,0x6d,0xff, +0x18,0xff,0xd9,0xfe,0x82,0xfe,0xfa,0xfd,0x8c,0xfd,0x49,0xfd, +0x7,0xfd,0xd3,0xfc,0x93,0xfc,0x32,0xfc,0xd6,0xfb,0x88,0xfb, +0x69,0xfb,0x79,0xfb,0x81,0xfb,0x99,0xfb,0xc7,0xfb,0xf5,0xfb, +0x53,0xfc,0xf2,0xfc,0xc2,0xfd,0x90,0xfe,0xfd,0xfe,0x3b,0xff, +0xad,0xff,0x4e,0x0,0x10,0x1,0xaa,0x1,0xec,0x1,0x38,0x2, +0xb6,0x2,0x47,0x3,0xc6,0x3,0xfd,0x3,0x19,0x4,0x52,0x4, +0x6a,0x4,0x61,0x4,0x5f,0x4,0x53,0x4,0x35,0x4,0xff,0x3, +0x94,0x3,0xe4,0x2,0x36,0x2,0xce,0x1,0x5c,0x1,0xc9,0x0, +0x6c,0x0,0x8,0x0,0x82,0xff,0x42,0xff,0x23,0xff,0xec,0xfe, +0xd7,0xfe,0xe8,0xfe,0x14,0xff,0x59,0xff,0xa3,0xff,0x0,0x0, +0x7c,0x0,0xe,0x1,0xab,0x1,0x40,0x2,0xe4,0x2,0xa5,0x3, +0x48,0x4,0xa9,0x4,0xe3,0x4,0x22,0x5,0x6c,0x5,0x8d,0x5, +0x53,0x5,0xb9,0x4,0xfd,0x3,0x59,0x3,0x9e,0x2,0xc1,0x1, +0xfc,0x0,0x49,0x0,0xb8,0xff,0x53,0xff,0xd1,0xfe,0x4a,0xfe, +0xf7,0xfd,0xb7,0xfd,0x8b,0xfd,0x62,0xfd,0xc,0xfd,0xd9,0xfc, +0xe0,0xfc,0xd1,0xfc,0xd2,0xfc,0x8,0xfd,0x34,0xfd,0x5b,0xfd, +0xbf,0xfd,0x38,0xfe,0x81,0xfe,0xd4,0xfe,0x4b,0xff,0x96,0xff, +0xea,0xff,0x76,0x0,0xba,0x0,0xa6,0x0,0x9e,0x0,0xa1,0x0, +0xa7,0x0,0x99,0x0,0x50,0x0,0xf5,0xff,0x82,0xff,0x3,0xff, +0xd6,0xfe,0xba,0xfe,0x60,0xfe,0x12,0xfe,0xcd,0xfd,0x7d,0xfd, +0x3b,0xfd,0xe9,0xfc,0xcf,0xfc,0x20,0xfd,0x3e,0xfd,0xf0,0xfc, +0xa2,0xfc,0x80,0xfc,0x78,0xfc,0x65,0xfc,0x38,0xfc,0x23,0xfc, +0x3f,0xfc,0x83,0xfc,0xea,0xfc,0x51,0xfd,0xd5,0xfd,0xb1,0xfe, +0xa0,0xff,0x4a,0x0,0xc8,0x0,0x3a,0x1,0xa1,0x1,0x1b,0x2, +0x9d,0x2,0xf5,0x2,0x26,0x3,0x53,0x3,0xa5,0x3,0x1d,0x4, +0x65,0x4,0x74,0x4,0x8e,0x4,0x84,0x4,0x3d,0x4,0x10,0x4, +0xfd,0x3,0xe3,0x3,0xa5,0x3,0x2,0x3,0x3b,0x2,0xb9,0x1, +0x4c,0x1,0xd3,0x0,0x63,0x0,0x8,0x0,0xd0,0xff,0x84,0xff, +0x33,0xff,0x47,0xff,0x8f,0xff,0xd5,0xff,0x45,0x0,0xa3,0x0, +0xd7,0x0,0x38,0x1,0xd3,0x1,0x7a,0x2,0xde,0x2,0x1,0x3, +0x61,0x3,0xf0,0x3,0x3c,0x4,0x63,0x4,0x78,0x4,0x57,0x4, +0x18,0x4,0xb5,0x3,0x27,0x3,0x99,0x2,0x1,0x2,0x3c,0x1, +0x58,0x0,0x62,0xff,0x61,0xfe,0x73,0xfd,0xc5,0xfc,0x40,0xfc, +0xa0,0xfb,0x0,0xfb,0xaa,0xfa,0x7f,0xfa,0x3c,0xfa,0xf2,0xf9, +0xce,0xf9,0xcf,0xf9,0xe2,0xf9,0x16,0xfa,0x70,0xfa,0xbf,0xfa, +0xe7,0xfa,0x39,0xfb,0xfd,0xfb,0xce,0xfc,0x40,0xfd,0xb8,0xfd, +0x7b,0xfe,0x1d,0xff,0x95,0xff,0x23,0x0,0x9b,0x0,0xc,0x1, +0x82,0x1,0x92,0x1,0x71,0x1,0x9b,0x1,0xb8,0x1,0x76,0x1, +0x9,0x1,0x7b,0x0,0xc5,0xff,0x19,0xff,0x96,0xfe,0x16,0xfe, +0x60,0xfd,0xa0,0xfc,0x1f,0xfc,0xbb,0xfb,0x55,0xfb,0x23,0xfb, +0x2f,0xfb,0x4b,0xfb,0x66,0xfb,0x89,0xfb,0x98,0xfb,0x8e,0xfb, +0xbd,0xfb,0x3a,0xfc,0xb3,0xfc,0x30,0xfd,0xd3,0xfd,0x7a,0xfe, +0x25,0xff,0xe9,0xff,0xa3,0x0,0x3b,0x1,0xb9,0x1,0x23,0x2, +0x69,0x2,0x91,0x2,0xcb,0x2,0xf3,0x2,0xe1,0x2,0xc6,0x2, +0x96,0x2,0x49,0x2,0x1a,0x2,0xbc,0x1,0xf7,0x0,0x4c,0x0, +0xc5,0xff,0xfe,0xfe,0x3a,0xfe,0xac,0xfd,0xd,0xfd,0x72,0xfc, +0x10,0xfc,0xc7,0xfb,0x90,0xfb,0x77,0xfb,0x62,0xfb,0x7e,0xfb, +0xf2,0xfb,0x64,0xfc,0xb4,0xfc,0x1e,0xfd,0x96,0xfd,0x1,0xfe, +0x8c,0xfe,0x2e,0xff,0xb8,0xff,0x43,0x0,0xde,0x0,0x5f,0x1, +0xb7,0x1,0xf8,0x1,0x29,0x2,0x7c,0x2,0xf1,0x2,0x1e,0x3, +0xe5,0x2,0xb5,0x2,0xd5,0x2,0xfd,0x2,0xab,0x2,0xef,0x1, +0x47,0x1,0xc0,0x0,0x28,0x0,0x71,0xff,0xbc,0xfe,0x4c,0xfe, +0x15,0xfe,0xcf,0xfd,0x89,0xfd,0x69,0xfd,0x80,0xfd,0xa2,0xfd, +0x74,0xfd,0x2b,0xfd,0x1f,0xfd,0x3d,0xfd,0x92,0xfd,0xff,0xfd, +0x52,0xfe,0xd8,0xfe,0x87,0xff,0x1b,0x0,0xbc,0x0,0x57,0x1, +0xec,0x1,0xb7,0x2,0x64,0x3,0xad,0x3,0xc5,0x3,0xcb,0x3, +0xd8,0x3,0xdd,0x3,0x92,0x3,0xf6,0x2,0x72,0x2,0x3e,0x2, +0x0,0x2,0x70,0x1,0xd0,0x0,0x5a,0x0,0x22,0x0,0x9,0x0, +0xa8,0xff,0x13,0xff,0x9d,0xfe,0x4a,0xfe,0x1f,0xfe,0xf0,0xfd, +0xbb,0xfd,0xe1,0xfd,0x33,0xfe,0x65,0xfe,0xa3,0xfe,0xf1,0xfe, +0x83,0xff,0x58,0x0,0xf0,0x0,0x5f,0x1,0xcf,0x1,0x2d,0x2, +0xaf,0x2,0x1f,0x3,0x63,0x3,0xd1,0x3,0x0,0x4,0xd6,0x3, +0xe5,0x3,0xfb,0x3,0xe5,0x3,0xcd,0x3,0x81,0x3,0x11,0x3, +0xbb,0x2,0x69,0x2,0x2,0x2,0x99,0x1,0x54,0x1,0x2b,0x1, +0xdc,0x0,0x66,0x0,0xf7,0xff,0xad,0xff,0x6b,0xff,0xc6,0xfe, +0xf0,0xfd,0x71,0xfd,0x16,0xfd,0xb3,0xfc,0x77,0xfc,0x5a,0xfc, +0x6d,0xfc,0xbe,0xfc,0x1e,0xfd,0x7e,0xfd,0xda,0xfd,0x49,0xfe, +0xf3,0xfe,0xa4,0xff,0x48,0x0,0xfa,0x0,0x90,0x1,0x16,0x2, +0xaf,0x2,0x13,0x3,0x44,0x3,0x84,0x3,0xad,0x3,0xce,0x3, +0xe,0x4,0x4,0x4,0xb9,0x3,0xab,0x3,0x81,0x3,0xce,0x2, +0xf8,0x1,0x59,0x1,0xe8,0x0,0x60,0x0,0x92,0xff,0xc3,0xfe, +0x10,0xfe,0x5a,0xfd,0xc2,0xfc,0x27,0xfc,0x63,0xfb,0xd3,0xfa, +0x8d,0xfa,0x39,0xfa,0xd7,0xf9,0xb8,0xf9,0xe9,0xf9,0x3a,0xfa, +0xa2,0xfa,0x3e,0xfb,0x24,0xfc,0x52,0xfd,0x6c,0xfe,0x40,0xff, +0x31,0x0,0x54,0x1,0x63,0x2,0x3e,0x3,0xc7,0x3,0x20,0x4, +0x7e,0x4,0xc5,0x4,0xd4,0x4,0x89,0x4,0x1b,0x4,0xda,0x3, +0x46,0x3,0x43,0x2,0x6c,0x1,0xa5,0x0,0xc8,0xff,0x22,0xff, +0x84,0xfe,0xd8,0xfd,0x57,0xfd,0x12,0xfd,0xf4,0xfc,0xbc,0xfc, +0x80,0xfc,0x70,0xfc,0x53,0xfc,0x45,0xfc,0x70,0xfc,0xbb,0xfc, +0x33,0xfd,0x8d,0xfd,0xac,0xfd,0xf,0xfe,0x9d,0xfe,0x29,0xff, +0xcc,0xff,0x26,0x0,0x6c,0x0,0xf,0x1,0xa8,0x1,0x0,0x2, +0x3a,0x2,0x60,0x2,0xa3,0x2,0xc7,0x2,0x92,0x2,0x61,0x2, +0x3f,0x2,0x0,0x2,0xcc,0x1,0x91,0x1,0x13,0x1,0x8f,0x0, +0x74,0x0,0x84,0x0,0x2c,0x0,0x97,0xff,0x2f,0xff,0xf0,0xfe, +0xca,0xfe,0x8c,0xfe,0xe3,0xfd,0xf8,0xfc,0x42,0xfc,0xde,0xfb, +0x81,0xfb,0xf4,0xfa,0x73,0xfa,0x49,0xfa,0x49,0xfa,0x13,0xfa, +0xcb,0xf9,0xfc,0xf9,0x8d,0xfa,0x3,0xfb,0x41,0xfb,0x58,0xfb, +0xb5,0xfb,0xb9,0xfc,0xc1,0xfd,0x4d,0xfe,0xdf,0xfe,0xc6,0xff, +0xa5,0x0,0x2f,0x1,0x71,0x1,0x9d,0x1,0xc2,0x1,0xe4,0x1, +0xf9,0x1,0xc5,0x1,0x68,0x1,0x2e,0x1,0xeb,0x0,0x6f,0x0, +0xdf,0xff,0x6c,0xff,0x2f,0xff,0xea,0xfe,0x64,0xfe,0xec,0xfd, +0xba,0xfd,0xa4,0xfd,0x8c,0xfd,0x5d,0xfd,0x1b,0xfd,0x0,0xfd, +0x20,0xfd,0x59,0xfd,0x82,0xfd,0x85,0xfd,0xae,0xfd,0x50,0xfe, +0x0,0xff,0x61,0xff,0xcd,0xff,0x82,0x0,0x54,0x1,0xfa,0x1, +0x45,0x2,0x64,0x2,0x9b,0x2,0x7,0x3,0xa5,0x3,0x1d,0x4, +0x51,0x4,0x96,0x4,0xc3,0x4,0x8b,0x4,0x26,0x4,0xbe,0x3, +0x54,0x3,0xc,0x3,0x0,0x3,0x9,0x3,0xde,0x2,0x96,0x2, +0x51,0x2,0xca,0x1,0x4c,0x1,0x3e,0x1,0x31,0x1,0xe9,0x0, +0xa2,0x0,0x5b,0x0,0x25,0x0,0xed,0xff,0x9b,0xff,0x71,0xff, +0x60,0xff,0x34,0xff,0x0,0xff,0xd7,0xfe,0xdd,0xfe,0xe7,0xfe, +0xb7,0xfe,0xa6,0xfe,0xc0,0xfe,0xb7,0xfe,0xb5,0xfe,0xc0,0xfe, +0xc0,0xfe,0xc6,0xfe,0xb8,0xfe,0xce,0xfe,0xd,0xff,0xe,0xff, +0x1f,0xff,0x86,0xff,0xcf,0xff,0xf0,0xff,0x5,0x0,0x4,0x0, +0x23,0x0,0x56,0x0,0x80,0x0,0x9d,0x0,0x75,0x0,0x3a,0x0, +0x11,0x0,0x87,0xff,0xb5,0xfe,0x9,0xfe,0x56,0xfd,0x7e,0xfc, +0xdd,0xfb,0x7c,0xfb,0x19,0xfb,0xd7,0xfa,0xe0,0xfa,0xe1,0xfa, +0xd9,0xfa,0x18,0xfb,0x94,0xfb,0x4d,0xfc,0x2c,0xfd,0xeb,0xfd, +0x8c,0xfe,0x0,0xff,0x69,0xff,0x25,0x0,0xc0,0x0,0xf8,0x0, +0x49,0x1,0x9e,0x1,0xca,0x1,0xe1,0x1,0xb2,0x1,0x75,0x1, +0x6c,0x1,0x5e,0x1,0x28,0x1,0xab,0x0,0x10,0x0,0xac,0xff, +0x30,0xff,0x82,0xfe,0x9,0xfe,0xc8,0xfd,0xa5,0xfd,0x8f,0xfd, +0x5d,0xfd,0x14,0xfd,0xe9,0xfc,0xf,0xfd,0x43,0xfd,0x26,0xfd, +0x2b,0xfd,0x8f,0xfd,0xe2,0xfd,0x26,0xfe,0x73,0xfe,0xe0,0xfe, +0xc1,0xff,0xbc,0x0,0x61,0x1,0xf5,0x1,0x97,0x2,0x27,0x3, +0xab,0x3,0xb,0x4,0x1e,0x4,0xf7,0x3,0xbe,0x3,0x5d,0x3, +0xde,0x2,0x77,0x2,0x5,0x2,0x86,0x1,0x32,0x1,0xc6,0x0, +0x17,0x0,0x77,0xff,0x15,0xff,0xdb,0xfe,0x7a,0xfe,0xed,0xfd, +0xb1,0xfd,0xc3,0xfd,0xc9,0xfd,0xb9,0xfd,0xa3,0xfd,0xc1,0xfd, +0x9,0xfe,0x1d,0xfe,0xc,0xfe,0xeb,0xfd,0xd9,0xfd,0x20,0xfe, +0x39,0xfe,0xd1,0xfd,0x8f,0xfd,0x93,0xfd,0xb7,0xfd,0x5,0xfe, +0x16,0xfe,0xeb,0xfd,0xf7,0xfd,0x40,0xfe,0xb0,0xfe,0x0,0xff, +0xf9,0xfe,0xfe,0xfe,0x25,0xff,0x3a,0xff,0x72,0xff,0xac,0xff, +0x9d,0xff,0x7d,0xff,0x6b,0xff,0x4c,0xff,0x1f,0xff,0xe4,0xfe, +0xa1,0xfe,0x52,0xfe,0xec,0xfd,0x81,0xfd,0x5,0xfd,0x6c,0xfc, +0xf0,0xfb,0x91,0xfb,0x31,0xfb,0xa,0xfb,0x1a,0xfb,0x13,0xfb, +0x23,0xfb,0x8f,0xfb,0x6,0xfc,0x7a,0xfc,0x4e,0xfd,0x4e,0xfe, +0x17,0xff,0xe2,0xff,0xd0,0x0,0xd0,0x1,0xf1,0x2,0xe6,0x3, +0x93,0x4,0x58,0x5,0x39,0x6,0xb,0x7,0xb2,0x7,0xe2,0x7, +0xcf,0x7,0xb1,0x7,0x47,0x7,0xb1,0x6,0xff,0x5,0x1e,0x5, +0x64,0x4,0x97,0x3,0x6e,0x2,0x76,0x1,0xa0,0x0,0x93,0xff, +0xba,0xfe,0x8,0xfe,0x1e,0xfd,0x62,0xfc,0x13,0xfc,0xea,0xfb, +0xe1,0xfb,0x7,0xfc,0x3b,0xfc,0x97,0xfc,0x37,0xfd,0xde,0xfd, +0x9d,0xfe,0x7d,0xff,0x31,0x0,0x0,0x1,0xf,0x2,0xc9,0x2, +0x51,0x3,0xb,0x4,0xa5,0x4,0xe,0x5,0x4e,0x5,0x3d,0x5, +0x3,0x5,0xa6,0x4,0x2b,0x4,0xb8,0x3,0xf8,0x2,0xe7,0x1, +0x7,0x1,0x4f,0x0,0x6d,0xff,0x87,0xfe,0xe2,0xfd,0x65,0xfd, +0x5,0xfd,0xe7,0xfc,0xe6,0xfc,0xf0,0xfc,0x3a,0xfd,0x85,0xfd, +0xc3,0xfd,0x54,0xfe,0xff,0xfe,0x78,0xff,0xe0,0xff,0x4a,0x0, +0xbf,0x0,0x2b,0x1,0x7a,0x1,0xd5,0x1,0x13,0x2,0x22,0x2, +0x50,0x2,0x78,0x2,0x7d,0x2,0x8e,0x2,0x8c,0x2,0x87,0x2, +0xa3,0x2,0x81,0x2,0x9,0x2,0x95,0x1,0x3c,0x1,0xdf,0x0, +0x56,0x0,0xb4,0xff,0x33,0xff,0xa5,0xfe,0xef,0xfd,0x5d,0xfd, +0xea,0xfc,0x8b,0xfc,0x84,0xfc,0xa4,0xfc,0x93,0xfc,0x8e,0xfc, +0xcb,0xfc,0x14,0xfd,0x3d,0xfd,0x59,0xfd,0x8c,0xfd,0xf0,0xfd, +0x87,0xfe,0x7,0xff,0x49,0xff,0xb1,0xff,0x48,0x0,0xbc,0x0, +0x3e,0x1,0xa9,0x1,0xbc,0x1,0xfe,0x1,0x59,0x2,0x37,0x2, +0x3,0x2,0xf5,0x1,0xb7,0x1,0x64,0x1,0xfc,0x0,0x61,0x0, +0xc7,0xff,0x38,0xff,0xb7,0xfe,0x3d,0xfe,0xab,0xfd,0x1e,0xfd, +0xa8,0xfc,0x28,0xfc,0xa3,0xfb,0x2c,0xfb,0xc2,0xfa,0x68,0xfa, +0x31,0xfa,0xa,0xfa,0xc2,0xf9,0x84,0xf9,0x95,0xf9,0xe5,0xf9, +0x52,0xfa,0xc8,0xfa,0x52,0xfb,0xfb,0xfb,0x8f,0xfc,0xf,0xfd, +0x90,0xfd,0xf0,0xfd,0x4f,0xfe,0x9f,0xfe,0xaf,0xfe,0xc1,0xfe, +0xf6,0xfe,0x3d,0xff,0x82,0xff,0x80,0xff,0x7f,0xff,0xc2,0xff, +0xc1,0xff,0x6d,0xff,0x35,0xff,0x1d,0xff,0x18,0xff,0xf3,0xfe, +0x72,0xfe,0xef,0xfd,0xb9,0xfd,0xb3,0xfd,0xbb,0xfd,0xc3,0xfd, +0xb1,0xfd,0x6d,0xfd,0x19,0xfd,0xd1,0xfc,0x92,0xfc,0x77,0xfc, +0x65,0xfc,0x25,0xfc,0xee,0xfb,0xf2,0xfb,0x1d,0xfc,0x4c,0xfc, +0x71,0xfc,0xbe,0xfc,0x2f,0xfd,0x94,0xfd,0x12,0xfe,0x9c,0xfe, +0x19,0xff,0xbb,0xff,0x42,0x0,0x68,0x0,0x83,0x0,0xc2,0x0, +0xa,0x1,0x3b,0x1,0x46,0x1,0x53,0x1,0x59,0x1,0x2c,0x1, +0xe5,0x0,0x8e,0x0,0x31,0x0,0xe2,0xff,0x76,0xff,0xef,0xfe, +0x78,0xfe,0xf5,0xfd,0x68,0xfd,0xf3,0xfc,0x77,0xfc,0x0,0xfc, +0xbe,0xfb,0x94,0xfb,0x6b,0xfb,0x5b,0xfb,0x65,0xfb,0xaf,0xfb, +0x3f,0xfc,0xb7,0xfc,0x11,0xfd,0x8f,0xfd,0x32,0xfe,0xf3,0xfe, +0x93,0xff,0xdc,0xff,0x4c,0x0,0x3a,0x1,0x1e,0x2,0x91,0x2, +0xe0,0x2,0x70,0x3,0x23,0x4,0xa2,0x4,0xc7,0x4,0x9d,0x4, +0x83,0x4,0xa9,0x4,0xaa,0x4,0x69,0x4,0x7,0x4,0x84,0x3, +0x36,0x3,0xfc,0x2,0x42,0x2,0x55,0x1,0xb0,0x0,0x2d,0x0, +0xa9,0xff,0x10,0xff,0x76,0xfe,0x19,0xfe,0xed,0xfd,0xb5,0xfd, +0x5f,0xfd,0x2f,0xfd,0x66,0xfd,0xba,0xfd,0xed,0xfd,0x18,0xfe, +0x42,0xfe,0xb1,0xfe,0x92,0xff,0x65,0x0,0xe8,0x0,0x84,0x1, +0x57,0x2,0xa,0x3,0x72,0x3,0xa9,0x3,0xdc,0x3,0x30,0x4, +0x73,0x4,0x62,0x4,0x1d,0x4,0xce,0x3,0x6c,0x3,0xf4,0x2, +0x41,0x2,0x61,0x1,0xa3,0x0,0xfa,0xff,0x39,0xff,0x7d,0xfe, +0xe5,0xfd,0x61,0xfd,0xb2,0xfc,0x9,0xfc,0xe0,0xfb,0xe4,0xfb, +0x95,0xfb,0x2b,0xfb,0x6,0xfb,0x3c,0xfb,0x99,0xfb,0xdf,0xfb, +0x27,0xfc,0x8d,0xfc,0x2,0xfd,0xb9,0xfd,0xa2,0xfe,0x40,0xff, +0xcb,0xff,0xd5,0x0,0xe9,0x1,0x97,0x2,0x4b,0x3,0x1,0x4, +0x93,0x4,0x2e,0x5,0x5c,0x5,0x1b,0x5,0x26,0x5,0x2d,0x5, +0xc3,0x4,0x37,0x4,0xb2,0x3,0x83,0x3,0xa7,0x3,0x77,0x3, +0xe,0x3,0xd0,0x2,0x97,0x2,0x5e,0x2,0x1f,0x2,0xbb,0x1, +0x45,0x1,0xe6,0x0,0xba,0x0,0x7e,0x0,0x32,0x0,0x56,0x0, +0xa8,0x0,0xb1,0x0,0xb2,0x0,0xb6,0x0,0xbd,0x0,0x2f,0x1, +0xe2,0x1,0x47,0x2,0x78,0x2,0xe1,0x2,0x8a,0x3,0x2c,0x4, +0x87,0x4,0xa5,0x4,0xfd,0x4,0xa8,0x5,0x1a,0x6,0x43,0x6, +0x8b,0x6,0xf0,0x6,0x46,0x7,0x4d,0x7,0xdd,0x6,0x38,0x6, +0xb8,0x5,0x62,0x5,0xc5,0x4,0xb4,0x3,0xce,0x2,0x34,0x2, +0x64,0x1,0x67,0x0,0x85,0xff,0xd8,0xfe,0x5e,0xfe,0xdd,0xfd, +0x41,0xfd,0xa9,0xfc,0x50,0xfc,0x54,0xfc,0x3d,0xfc,0xe7,0xfb, +0xc1,0xfb,0xc1,0xfb,0xda,0xfb,0x1b,0xfc,0x6a,0xfc,0xf6,0xfc, +0xa5,0xfd,0x28,0xfe,0xa8,0xfe,0x26,0xff,0x9e,0xff,0x18,0x0, +0x65,0x0,0xaa,0x0,0xe7,0x0,0xd4,0x0,0xa1,0x0,0x6e,0x0, +0x39,0x0,0x12,0x0,0xc1,0xff,0x52,0xff,0xf9,0xfe,0x97,0xfe, +0x39,0xfe,0xe0,0xfd,0x94,0xfd,0x60,0xfd,0xfd,0xfc,0x96,0xfc, +0x7e,0xfc,0x75,0xfc,0x81,0xfc,0x9d,0xfc,0x86,0xfc,0x9a,0xfc, +0x3,0xfd,0x52,0xfd,0x81,0xfd,0xc3,0xfd,0x17,0xfe,0x84,0xfe, +0xf,0xff,0x95,0xff,0x12,0x0,0xa9,0x0,0x2c,0x1,0x71,0x1, +0xae,0x1,0xd5,0x1,0xd4,0x1,0xe4,0x1,0xdf,0x1,0xb8,0x1, +0x9c,0x1,0x63,0x1,0x10,0x1,0xc2,0x0,0x76,0x0,0x2a,0x0, +0xd7,0xff,0xa5,0xff,0xa4,0xff,0x9f,0xff,0x9e,0xff,0x9e,0xff, +0xa9,0xff,0xef,0xff,0x28,0x0,0x43,0x0,0x4f,0x0,0x1c,0x0, +0x2e,0x0,0x8c,0x0,0x93,0x0,0xa7,0x0,0xe8,0x0,0x15,0x1, +0xa1,0x1,0x23,0x2,0x22,0x2,0x48,0x2,0xa5,0x2,0xca,0x2, +0xad,0x2,0x60,0x2,0x2f,0x2,0x2a,0x2,0x10,0x2,0xcd,0x1, +0x5d,0x1,0xf3,0x0,0xa7,0x0,0x57,0x0,0x10,0x0,0xa4,0xff, +0x8,0xff,0x9a,0xfe,0x3a,0xfe,0xc8,0xfd,0x6f,0xfd,0x1f,0xfd, +0xe0,0xfc,0xa7,0xfc,0x64,0xfc,0x47,0xfc,0x1c,0xfc,0xdc,0xfb, +0xd0,0xfb,0xbb,0xfb,0x9b,0xfb,0xc0,0xfb,0x7,0xfc,0x3e,0xfc, +0x4b,0xfc,0x5f,0xfc,0xd4,0xfc,0x60,0xfd,0xb3,0xfd,0xc,0xfe, +0xa7,0xfe,0x46,0xff,0x7c,0xff,0x8b,0xff,0xee,0xff,0x67,0x0, +0xb2,0x0,0xc6,0x0,0x80,0x0,0x1d,0x0,0xd8,0xff,0xa0,0xff, +0x51,0xff,0xa0,0xfe,0xd0,0xfd,0x73,0xfd,0x4f,0xfd,0xfd,0xfc, +0x91,0xfc,0x32,0xfc,0xee,0xfb,0xb7,0xfb,0x87,0xfb,0x6c,0xfb, +0x74,0xfb,0xaf,0xfb,0xf9,0xfb,0x4b,0xfc,0xcc,0xfc,0x65,0xfd, +0x24,0xfe,0x29,0xff,0x1f,0x0,0xcf,0x0,0x4d,0x1,0xc5,0x1, +0x53,0x2,0xb5,0x2,0xd8,0x2,0xdf,0x2,0xb1,0x2,0x83,0x2, +0x6c,0x2,0x2d,0x2,0xe5,0x1,0x9c,0x1,0x41,0x1,0x4,0x1, +0xbb,0x0,0x58,0x0,0x4,0x0,0x99,0xff,0x33,0xff,0xf1,0xfe, +0xa7,0xfe,0x54,0xfe,0xed,0xfd,0x98,0xfd,0x8c,0xfd,0x82,0xfd, +0x88,0xfd,0xbf,0xfd,0xdf,0xfd,0x1e,0xfe,0xa9,0xfe,0x3a,0xff, +0xfa,0xff,0xdd,0x0,0x81,0x1,0x1a,0x2,0xb8,0x2,0x11,0x3, +0x61,0x3,0xe3,0x3,0x3a,0x4,0x2f,0x4,0x1,0x4,0xa8,0x3, +0x4,0x3,0x5e,0x2,0xcb,0x1,0x28,0x1,0x8a,0x0,0xf7,0xff, +0x60,0xff,0xde,0xfe,0x80,0xfe,0x45,0xfe,0xd,0xfe,0xce,0xfd, +0xac,0xfd,0x8f,0xfd,0x70,0xfd,0x89,0xfd,0xbc,0xfd,0xe1,0xfd, +0x14,0xfe,0x51,0xfe,0x8c,0xfe,0xc6,0xfe,0x1,0xff,0x57,0xff, +0xc3,0xff,0x18,0x0,0x4f,0x0,0x80,0x0,0xa9,0x0,0xb4,0x0, +0xb5,0x0,0xd0,0x0,0x3,0x1,0x38,0x1,0x29,0x1,0xb2,0x0, +0x2f,0x0,0xd7,0xff,0xa1,0xff,0x7a,0xff,0x9,0xff,0x66,0xfe, +0x3,0xfe,0xc3,0xfd,0x9e,0xfd,0xbd,0xfd,0xc0,0xfd,0xaf,0xfd, +0xe0,0xfd,0x20,0xfe,0x46,0xfe,0x78,0xfe,0xb6,0xfe,0xf6,0xfe, +0x39,0xff,0x8c,0xff,0xd9,0xff,0xc,0x0,0x53,0x0,0x82,0x0, +0x61,0x0,0x49,0x0,0x29,0x0,0xc9,0xff,0x99,0xff,0x8c,0xff, +0x5f,0xff,0x4e,0xff,0x35,0xff,0xb,0xff,0x30,0xff,0x74,0xff, +0x98,0xff,0xc8,0xff,0x22,0x0,0x92,0x0,0xd6,0x0,0xf1,0x0, +0x20,0x1,0x46,0x1,0x75,0x1,0xc8,0x1,0xbc,0x1,0x5a,0x1, +0x1e,0x1,0xe5,0x0,0x9b,0x0,0x6a,0x0,0x39,0x0,0xfe,0xff, +0xa2,0xff,0x38,0xff,0x15,0xff,0xd,0xff,0xd5,0xfe,0xa8,0xfe, +0xa9,0xfe,0xb2,0xfe,0xc7,0xfe,0x16,0xff,0x7e,0xff,0xb7,0xff, +0xfe,0xff,0x80,0x0,0xe1,0x0,0x2a,0x1,0xa2,0x1,0x28,0x2, +0x9c,0x2,0xf5,0x2,0x22,0x3,0x27,0x3,0x28,0x3,0x41,0x3, +0x1e,0x3,0x66,0x2,0x91,0x1,0x6,0x1,0x61,0x0,0x7b,0xff, +0xaf,0xfe,0xe,0xfe,0x65,0xfd,0xca,0xfc,0x62,0xfc,0x1a,0xfc, +0xf8,0xfb,0xf3,0xfb,0xc9,0xfb,0x90,0xfb,0x74,0xfb,0x6b,0xfb, +0x9b,0xfb,0xef,0xfb,0x1b,0xfc,0x43,0xfc,0x85,0xfc,0xc8,0xfc, +0xd,0xfd,0x4f,0xfd,0xa9,0xfd,0x24,0xfe,0x5f,0xfe,0x3e,0xfe, +0xf,0xfe,0xf0,0xfd,0xd5,0xfd,0xbb,0xfd,0x80,0xfd,0x10,0xfd, +0xb6,0xfc,0xa8,0xfc,0x92,0xfc,0x5f,0xfc,0x4a,0xfc,0x48,0xfc, +0x64,0xfc,0x9b,0xfc,0xb5,0xfc,0xef,0xfc,0x5d,0xfd,0xb3,0xfd, +0x13,0xfe,0x8a,0xfe,0xeb,0xfe,0x4f,0xff,0xab,0xff,0x6,0x0, +0x77,0x0,0xb4,0x0,0xb3,0x0,0x9e,0x0,0x77,0x0,0x67,0x0, +0x75,0x0,0x75,0x0,0x65,0x0,0x56,0x0,0x60,0x0,0x79,0x0, +0x97,0x0,0xc8,0x0,0xe1,0x0,0x8,0x1,0x96,0x1,0x46,0x2, +0xd5,0x2,0x48,0x3,0xb0,0x3,0x4e,0x4,0xd7,0x4,0xfe,0x4, +0x2a,0x5,0x35,0x5,0xfc,0x4,0xe3,0x4,0x83,0x4,0xb1,0x3, +0x5,0x3,0x66,0x2,0x83,0x1,0x7a,0x0,0x78,0xff,0x8d,0xfe, +0x85,0xfd,0x7b,0xfc,0xb6,0xfb,0x0,0xfb,0x89,0xfa,0x84,0xfa, +0x8f,0xfa,0xa6,0xfa,0xd8,0xfa,0x24,0xfb,0xca,0xfb,0x69,0xfc, +0xd1,0xfc,0x77,0xfd,0x20,0xfe,0x95,0xfe,0x2c,0xff,0xb4,0xff, +0xfe,0xff,0x61,0x0,0xdc,0x0,0xfa,0x0,0xde,0x0,0xb,0x1, +0x26,0x1,0xc9,0x0,0x4b,0x0,0xa3,0xff,0xbe,0xfe,0xe8,0xfd, +0xea,0xfc,0xe3,0xfb,0x11,0xfb,0x15,0xfa,0x4e,0xf9,0xc,0xf9, +0xab,0xf8,0x47,0xf8,0x56,0xf8,0x93,0xf8,0xc1,0xf8,0xef,0xf8, +0x60,0xf9,0x2f,0xfa,0x15,0xfb,0xdf,0xfb,0x75,0xfc,0xf5,0xfc, +0xad,0xfd,0x84,0xfe,0x63,0xff,0x3b,0x0,0xbc,0x0,0xf,0x1, +0x61,0x1,0x7e,0x1,0x7d,0x1,0x66,0x1,0x21,0x1,0xa5,0x0, +0xf0,0xff,0x54,0xff,0xdf,0xfe,0x5b,0xfe,0x3,0xfe,0xc7,0xfd, +0x7a,0xfd,0x5f,0xfd,0x4c,0xfd,0x32,0xfd,0x62,0xfd,0x9f,0xfd, +0xd3,0xfd,0x21,0xfe,0x6b,0xfe,0xd4,0xfe,0x56,0xff,0xce,0xff, +0x60,0x0,0xd5,0x0,0x35,0x1,0xcf,0x1,0x37,0x2,0x5c,0x2, +0xb3,0x2,0x8,0x3,0x18,0x3,0xff,0x2,0xc9,0x2,0xa2,0x2, +0xa1,0x2,0x88,0x2,0x44,0x2,0x12,0x2,0x11,0x2,0x0,0x2, +0xaa,0x1,0x4a,0x1,0x15,0x1,0xfc,0x0,0xf0,0x0,0xf0,0x0, +0xf3,0x0,0xe8,0x0,0xe3,0x0,0xe4,0x0,0xb1,0x0,0x68,0x0, +0x53,0x0,0x37,0x0,0xe4,0xff,0x84,0xff,0x2e,0xff,0xe9,0xfe, +0x8f,0xfe,0xd,0xfe,0xb8,0xfd,0x7e,0xfd,0x16,0xfd,0xc9,0xfc, +0xb3,0xfc,0xb0,0xfc,0xee,0xfc,0x49,0xfd,0x76,0xfd,0xb0,0xfd, +0x12,0xfe,0x7d,0xfe,0xf0,0xfe,0x69,0xff,0xfd,0xff,0x9e,0x0, +0x6,0x1,0x66,0x1,0x9,0x2,0xaf,0x2,0x20,0x3,0x5c,0x3, +0x63,0x3,0x57,0x3,0x3d,0x3,0xf2,0x2,0x8b,0x2,0x1e,0x2, +0x71,0x1,0x7d,0x0,0xa7,0xff,0x9,0xff,0x5a,0xfe,0x8e,0xfd, +0xc9,0xfc,0x37,0xfc,0xe1,0xfb,0x96,0xfb,0x69,0xfb,0x87,0xfb, +0xa7,0xfb,0xbb,0xfb,0xe,0xfc,0x9b,0xfc,0x1e,0xfd,0x86,0xfd, +0x20,0xfe,0xf7,0xfe,0xa6,0xff,0x3e,0x0,0xf0,0x0,0x8b,0x1, +0x27,0x2,0xcb,0x2,0x3b,0x3,0x8e,0x3,0xbd,0x3,0xb9,0x3, +0xc1,0x3,0xa9,0x3,0x34,0x3,0x8b,0x2,0xcf,0x1,0x2a,0x1, +0xaf,0x0,0x27,0x0,0x91,0xff,0x2d,0xff,0xf8,0xfe,0x8b,0xfe, +0xf2,0xfd,0xb5,0xfd,0x9f,0xfd,0x61,0xfd,0x66,0xfd,0x90,0xfd, +0x91,0xfd,0xc2,0xfd,0x14,0xfe,0x43,0xfe,0xa1,0xfe,0x4b,0xff, +0xed,0xff,0x4c,0x0,0x97,0x0,0x2c,0x1,0xe0,0x1,0x3f,0x2, +0x56,0x2,0x6c,0x2,0x8e,0x2,0xb1,0x2,0xce,0x2,0xd8,0x2, +0xd7,0x2,0xe3,0x2,0xd6,0x2,0x84,0x2,0x2a,0x2,0xf5,0x1, +0xb8,0x1,0x79,0x1,0x3f,0x1,0xdb,0x0,0x76,0x0,0x57,0x0, +0x43,0x0,0x1e,0x0,0x24,0x0,0x1f,0x0,0xe3,0xff,0xb0,0xff, +0x7f,0xff,0x5e,0xff,0x71,0xff,0x45,0xff,0xf0,0xfe,0xe8,0xfe, +0xb4,0xfe,0x31,0xfe,0x13,0xfe,0x44,0xfe,0x40,0xfe,0x2,0xfe, +0xd4,0xfd,0xf6,0xfd,0x5c,0xfe,0xb3,0xfe,0xcd,0xfe,0xc9,0xfe, +0xef,0xfe,0x3d,0xff,0x7d,0xff,0x97,0xff,0x99,0xff,0xc2,0xff, +0x25,0x0,0x74,0x0,0x72,0x0,0x4b,0x0,0x5a,0x0,0x6b,0x0, +0x0,0x0,0x72,0xff,0x38,0xff,0xfb,0xfe,0x85,0xfe,0xef,0xfd, +0x51,0xfd,0xce,0xfc,0x76,0xfc,0x51,0xfc,0x3a,0xfc,0x6,0xfc, +0x4,0xfc,0x3d,0xfc,0x71,0xfc,0xb8,0xfc,0xe4,0xfc,0xe5,0xfc, +0x19,0xfd,0x57,0xfd,0x70,0xfd,0x9d,0xfd,0x0,0xfe,0x9b,0xfe, +0x3e,0xff,0xce,0xff,0x62,0x0,0xdc,0x0,0x5f,0x1,0xf6,0x1, +0x4d,0x2,0x9a,0x2,0xf1,0x2,0xa,0x3,0x10,0x3,0xf,0x3, +0xea,0x2,0xad,0x2,0x3f,0x2,0xdb,0x1,0x8b,0x1,0xc,0x1, +0xb1,0x0,0x65,0x0,0xd2,0xff,0x7e,0xff,0x66,0xff,0x20,0xff, +0xf5,0xfe,0xdd,0xfe,0x97,0xfe,0x8c,0xfe,0xc2,0xfe,0xe2,0xfe, +0x7,0xff,0x4b,0xff,0x93,0xff,0x7,0x0,0x8e,0x0,0xc8,0x0, +0x5,0x1,0x85,0x1,0xd5,0x1,0x9,0x2,0x56,0x2,0x6b,0x2, +0x4d,0x2,0x22,0x2,0xe0,0x1,0xc6,0x1,0xd5,0x1,0xa5,0x1, +0x14,0x1,0x6e,0x0,0xe,0x0,0xdb,0xff,0x86,0xff,0x1c,0xff, +0xdb,0xfe,0xc3,0xfe,0x8d,0xfe,0x34,0xfe,0xfa,0xfd,0xd7,0xfd, +0xc3,0xfd,0xb2,0xfd,0x6e,0xfd,0x3b,0xfd,0x3e,0xfd,0x27,0xfd, +0x24,0xfd,0x49,0xfd,0x4f,0xfd,0x47,0xfd,0x54,0xfd,0xaf,0xfd, +0x52,0xfe,0xab,0xfe,0xc0,0xfe,0x12,0xff,0xb4,0xff,0x5b,0x0, +0xb1,0x0,0xf4,0x0,0x89,0x1,0xe,0x2,0x5a,0x2,0xa6,0x2, +0xc7,0x2,0xbf,0x2,0xce,0x2,0xfd,0x2,0xe8,0x2,0x68,0x2, +0x18,0x2,0xd9,0x1,0x3c,0x1,0xbc,0x0,0x45,0x0,0x9c,0xff, +0x2e,0xff,0xba,0xfe,0x49,0xfe,0x14,0xfe,0xa1,0xfd,0x63,0xfd, +0x9a,0xfd,0x90,0xfd,0xa0,0xfd,0xf4,0xfd,0x2c,0xfe,0xba,0xfe, +0x6e,0xff,0x0,0x0,0xdc,0x0,0x9f,0x1,0x13,0x2,0x92,0x2, +0xff,0x2,0x77,0x3,0x10,0x4,0x74,0x4,0x9c,0x4,0x8f,0x4, +0x74,0x4,0x6b,0x4,0x23,0x4,0x9c,0x3,0x23,0x3,0xbd,0x2, +0x45,0x2,0x92,0x1,0xbc,0x0,0xee,0xff,0x2f,0xff,0x9b,0xfe, +0xef,0xfd,0x5,0xfd,0x5a,0xfc,0x0,0xfc,0xb9,0xfb,0xa3,0xfb, +0x94,0xfb,0x67,0xfb,0x85,0xfb,0x8,0xfc,0x76,0xfc,0xb8,0xfc, +0x32,0xfd,0xd3,0xfd,0x82,0xfe,0x54,0xff,0xcf,0xff,0x1,0x0, +0x86,0x0,0xe0,0x0,0xd2,0x0,0xc,0x1,0x4e,0x1,0x1c,0x1, +0xba,0x0,0x5e,0x0,0x2b,0x0,0x1a,0x0,0xf3,0xff,0xb9,0xff, +0x5a,0xff,0xef,0xfe,0xe4,0xfe,0x1f,0xff,0x58,0xff,0xa3,0xff, +0xea,0xff,0xa,0x0,0x20,0x0,0x40,0x0,0x67,0x0,0x96,0x0, +0xb4,0x0,0xb8,0x0,0xd1,0x0,0xfd,0x0,0xd,0x1,0x12,0x1, +0x7,0x1,0xfc,0x0,0x39,0x1,0x7e,0x1,0x69,0x1,0x3c,0x1, +0x22,0x1,0xf7,0x0,0xc6,0x0,0x8f,0x0,0x49,0x0,0x10,0x0, +0xc,0x0,0x3b,0x0,0x5b,0x0,0x77,0x0,0xc9,0x0,0x14,0x1, +0x33,0x1,0x6a,0x1,0xa9,0x1,0xcc,0x1,0xf3,0x1,0x1b,0x2, +0x21,0x2,0xe,0x2,0x11,0x2,0x3d,0x2,0x65,0x2,0x78,0x2, +0x85,0x2,0x78,0x2,0x41,0x2,0xf0,0x1,0x75,0x1,0xcb,0x0, +0x25,0x0,0xab,0xff,0x29,0xff,0x61,0xfe,0x94,0xfd,0x3,0xfd, +0x76,0xfc,0xf5,0xfb,0xcc,0xfb,0xcb,0xfb,0xc0,0xfb,0xd8,0xfb, +0x18,0xfc,0x64,0xfc,0xaa,0xfc,0xec,0xfc,0x50,0xfd,0xcb,0xfd, +0x1f,0xfe,0x4d,0xfe,0x7d,0xfe,0xb1,0xfe,0xd0,0xfe,0xe6,0xfe, +0xfa,0xfe,0xdb,0xfe,0xaf,0xfe,0xda,0xfe,0xf,0xff,0x19,0xff, +0x30,0xff,0x20,0xff,0xea,0xfe,0xed,0xfe,0xfa,0xfe,0xe4,0xfe, +0xe1,0xfe,0xe7,0xfe,0xcd,0xfe,0xa0,0xfe,0x76,0xfe,0x32,0xfe, +0xe3,0xfd,0xdd,0xfd,0xe9,0xfd,0xcc,0xfd,0xde,0xfd,0xee,0xfd, +0xda,0xfd,0x23,0xfe,0x8a,0xfe,0xb3,0xfe,0xf5,0xfe,0x43,0xff, +0x7a,0xff,0xcb,0xff,0x28,0x0,0x9f,0x0,0x38,0x1,0xb3,0x1, +0x14,0x2,0x8f,0x2,0x33,0x3,0xdd,0x3,0x64,0x4,0xd4,0x4, +0x3a,0x5,0x9c,0x5,0xe,0x6,0x5d,0x6,0x7e,0x6,0x98,0x6, +0x88,0x6,0x59,0x6,0x30,0x6,0xda,0x5,0x60,0x5,0xe1,0x4, +0x2b,0x4,0x46,0x3,0x5b,0x2,0x83,0x1,0xde,0x0,0x3d,0x0, +0x59,0xff,0x80,0xfe,0xf9,0xfd,0x98,0xfd,0x4e,0xfd,0xfb,0xfc, +0x80,0xfc,0x4f,0xfc,0x9b,0xfc,0xf0,0xfc,0x3b,0xfd,0x9a,0xfd, +0x11,0xfe,0xcd,0xfe,0x97,0xff,0x55,0x0,0x65,0x1,0x5f,0x2, +0xe2,0x2,0x93,0x3,0x75,0x4,0xf9,0x4,0x5c,0x5,0xab,0x5, +0x7c,0x5,0xfd,0x4,0x7d,0x4,0xe8,0x3,0x4d,0x3,0xb1,0x2, +0xe0,0x1,0x19,0x1,0x91,0x0,0xe6,0xff,0x5,0xff,0x39,0xfe, +0x8a,0xfd,0xf2,0xfc,0x54,0xfc,0xae,0xfb,0x52,0xfb,0x2f,0xfb, +0xec,0xfa,0x99,0xfa,0x70,0xfa,0xa3,0xfa,0xc,0xfb,0x50,0xfb, +0xa2,0xfb,0x35,0xfc,0xb8,0xfc,0x20,0xfd,0x7d,0xfd,0xab,0xfd, +0xca,0xfd,0x6,0xfe,0x48,0xfe,0x63,0xfe,0x61,0xfe,0x8d,0xfe, +0xf8,0xfe,0x5e,0xff,0x9d,0xff,0xcb,0xff,0x15,0x0,0x85,0x0, +0xdf,0x0,0xfd,0x0,0xe9,0x0,0xc8,0x0,0xed,0x0,0x32,0x1, +0xa,0x1,0x9e,0x0,0x6f,0x0,0x57,0x0,0x1f,0x0,0xc5,0xff, +0x4e,0xff,0xf7,0xfe,0xaf,0xfe,0x17,0xfe,0x59,0xfd,0xc2,0xfc, +0x5f,0xfc,0x36,0xfc,0xf5,0xfb,0x8a,0xfb,0x75,0xfb,0xba,0xfb, +0xc,0xfc,0x58,0xfc,0x85,0xfc,0xd9,0xfc,0x74,0xfd,0xf5,0xfd, +0x78,0xfe,0x10,0xff,0x93,0xff,0x50,0x0,0x3b,0x1,0xfa,0x1, +0xb2,0x2,0x65,0x3,0x3,0x4,0x93,0x4,0xe4,0x4,0x20,0x5, +0x7a,0x5,0xae,0x5,0x98,0x5,0x2d,0x5,0xa3,0x4,0x65,0x4, +0x2b,0x4,0x91,0x3,0xc3,0x2,0xec,0x1,0x3a,0x1,0xa9,0x0, +0xe1,0xff,0x7,0xff,0x76,0xfe,0x14,0xfe,0xb1,0xfd,0x4a,0xfd, +0xf8,0xfc,0xd1,0xfc,0xe0,0xfc,0xc,0xfd,0x15,0xfd,0x9,0xfd, +0x53,0xfd,0xf6,0xfd,0x9c,0xfe,0x19,0xff,0x5a,0xff,0x77,0xff, +0xa3,0xff,0xcf,0xff,0xd0,0xff,0xb2,0xff,0xaa,0xff,0xbc,0xff, +0xaa,0xff,0x6d,0xff,0x3c,0xff,0x18,0xff,0xf1,0xfe,0xd0,0xfe, +0xba,0xfe,0x9c,0xfe,0x69,0xfe,0x2e,0xfe,0xfa,0xfd,0xbe,0xfd, +0x7d,0xfd,0x58,0xfd,0x56,0xfd,0x58,0xfd,0x32,0xfd,0x6,0xfd, +0x5,0xfd,0xf2,0xfc,0xc7,0xfc,0xe3,0xfc,0x13,0xfd,0xf,0xfd, +0xf7,0xfc,0xdd,0xfc,0xfb,0xfc,0x56,0xfd,0x72,0xfd,0x5b,0xfd, +0x64,0xfd,0x78,0xfd,0xb4,0xfd,0x1c,0xfe,0x70,0xfe,0xb6,0xfe, +0xf1,0xfe,0x29,0xff,0x66,0xff,0x75,0xff,0x90,0xff,0xd5,0xff, +0xf4,0xff,0xc,0x0,0x1,0x0,0x9d,0xff,0x72,0xff,0xa2,0xff, +0xad,0xff,0x7b,0xff,0x2e,0xff,0x17,0xff,0x16,0xff,0xb0,0xfe, +0x7d,0xfe,0xc4,0xfe,0xbb,0xfe,0x93,0xfe,0xb3,0xfe,0xc8,0xfe, +0x26,0xff,0xe3,0xff,0x58,0x0,0xb2,0x0,0x3b,0x1,0x8f,0x1, +0xce,0x1,0x37,0x2,0x81,0x2,0xb9,0x2,0x8,0x3,0x10,0x3, +0xdb,0x2,0xd4,0x2,0xde,0x2,0xd7,0x2,0xb9,0x2,0x67,0x2, +0x32,0x2,0x25,0x2,0xc2,0x1,0x39,0x1,0xe6,0x0,0x9c,0x0, +0x57,0x0,0xf8,0xff,0x4a,0xff,0xad,0xfe,0x80,0xfe,0x7e,0xfe, +0x61,0xfe,0x63,0xfe,0x95,0xfe,0xae,0xfe,0xd8,0xfe,0x49,0xff, +0x86,0xff,0x6e,0xff,0x74,0xff,0xa0,0xff,0xbe,0xff,0xaf,0xff, +0x86,0xff,0x8e,0xff,0xc6,0xff,0x3,0x0,0x42,0x0,0x5b,0x0, +0x4d,0x0,0x6c,0x0,0xaf,0x0,0xc5,0x0,0xbb,0x0,0xad,0x0, +0x93,0x0,0x76,0x0,0x4a,0x0,0x19,0x0,0xfc,0xff,0x9a,0xff, +0xc,0xff,0xe4,0xfe,0xaa,0xfe,0x22,0xfe,0xfb,0xfd,0xdb,0xfd, +0x7b,0xfd,0x6e,0xfd,0x60,0xfd,0xc,0xfd,0xc8,0xfc,0x5e,0xfc, +0x15,0xfc,0x3e,0xfc,0x41,0xfc,0x28,0xfc,0x59,0xfc,0xa2,0xfc, +0xf4,0xfc,0x50,0xfd,0xa9,0xfd,0xfb,0xfd,0x29,0xfe,0x58,0xfe, +0x99,0xfe,0xdd,0xfe,0x4a,0xff,0x94,0xff,0x99,0xff,0xc1,0xff, +0xde,0xff,0xdf,0xff,0x13,0x0,0x32,0x0,0x2d,0x0,0x26,0x0, +0xf0,0xff,0xd4,0xff,0xd2,0xff,0x8d,0xff,0x47,0xff,0xf,0xff, +0xc3,0xfe,0xba,0xfe,0xd8,0xfe,0xcf,0xfe,0xc9,0xfe,0xde,0xfe, +0xa,0xff,0x5e,0xff,0xc3,0xff,0x10,0x0,0x3a,0x0,0x5b,0x0, +0x82,0x0,0xb3,0x0,0xf6,0x0,0x28,0x1,0x3a,0x1,0x54,0x1, +0x67,0x1,0x7c,0x1,0xa1,0x1,0x9f,0x1,0xa0,0x1,0xdc,0x1, +0xa,0x2,0x1b,0x2,0x1a,0x2,0x5,0x2,0x2e,0x2,0x5a,0x2, +0x2f,0x2,0x2e,0x2,0x6e,0x2,0x80,0x2,0x89,0x2,0xa5,0x2, +0xdf,0x2,0x53,0x3,0x80,0x3,0x55,0x3,0x5d,0x3,0x80,0x3, +0x95,0x3,0x93,0x3,0x33,0x3,0xcf,0x2,0xc9,0x2,0xb7,0x2, +0x72,0x2,0x2d,0x2,0xe8,0x1,0xb1,0x1,0x67,0x1,0xe9,0x0, +0x6a,0x0,0x12,0x0,0xcd,0xff,0x7b,0xff,0x16,0xff,0xc6,0xfe, +0x94,0xfe,0x72,0xfe,0x4c,0xfe,0x1f,0xfe,0x39,0xfe,0x9a,0xfe, +0xd6,0xfe,0xed,0xfe,0x6,0xff,0x21,0xff,0x5a,0xff,0x95,0xff, +0xbb,0xff,0xf8,0xff,0x3a,0x0,0x6e,0x0,0x7f,0x0,0x5f,0x0, +0x6b,0x0,0xa9,0x0,0xb3,0x0,0xa5,0x0,0x94,0x0,0x65,0x0, +0x3a,0x0,0x3,0x0,0x9f,0xff,0x24,0xff,0xa9,0xfe,0x4c,0xfe, +0x0,0xfe,0xa6,0xfd,0x5f,0xfd,0x3a,0xfd,0x19,0xfd,0xcf,0xfc, +0x61,0xfc,0x36,0xfc,0x54,0xfc,0x66,0xfc,0x7a,0xfc,0x95,0xfc, +0xba,0xfc,0x1d,0xfd,0x8a,0xfd,0xc9,0xfd,0xb,0xfe,0x69,0xfe, +0xd4,0xfe,0x2e,0xff,0x73,0xff,0xcc,0xff,0x1b,0x0,0x4c,0x0, +0x8b,0x0,0xae,0x0,0xb2,0x0,0xdd,0x0,0x5,0x1,0xe8,0x0, +0xb4,0x0,0xb2,0x0,0xd2,0x0,0xb4,0x0,0x4b,0x0,0xe9,0xff, +0xa7,0xff,0x92,0xff,0x8a,0xff,0x34,0xff,0xc6,0xfe,0xa3,0xfe, +0x8e,0xfe,0x54,0xfe,0x2b,0xfe,0x17,0xfe,0xf6,0xfd,0xd7,0xfd, +0xcd,0xfd,0xd5,0xfd,0xed,0xfd,0x11,0xfe,0x5b,0xfe,0xde,0xfe, +0x50,0xff,0x8e,0xff,0xc4,0xff,0xdb,0xff,0xd0,0xff,0xf1,0xff, +0x29,0x0,0x57,0x0,0x89,0x0,0x93,0x0,0x81,0x0,0x90,0x0, +0x7e,0x0,0x42,0x0,0x32,0x0,0x32,0x0,0x16,0x0,0xff,0xff, +0xe1,0xff,0xb6,0xff,0xa6,0xff,0x89,0xff,0x35,0xff,0xe1,0xfe, +0xb1,0xfe,0x92,0xfe,0x71,0xfe,0x35,0xfe,0xf8,0xfd,0xf7,0xfd, +0x6,0xfe,0xdb,0xfd,0xae,0xfd,0xbd,0xfd,0xea,0xfd,0x12,0xfe, +0x29,0xfe,0x2c,0xfe,0x39,0xfe,0x63,0xfe,0x84,0xfe,0x9f,0xfe, +0xd5,0xfe,0xfb,0xfe,0xf8,0xfe,0xb,0xff,0x28,0xff,0x23,0xff, +0x30,0xff,0x59,0xff,0x74,0xff,0x97,0xff,0xbe,0xff,0xbf,0xff, +0xb0,0xff,0xaf,0xff,0xaa,0xff,0x8f,0xff,0x66,0xff,0x46,0xff, +0x2f,0xff,0x13,0xff,0x1,0xff,0xe8,0xfe,0xc0,0xfe,0x92,0xfe, +0x4e,0xfe,0x1c,0xfe,0x1a,0xfe,0xff,0xfd,0xd3,0xfd,0xe5,0xfd, +0xd,0xfe,0x14,0xfe,0x1d,0xfe,0x58,0xfe,0xa0,0xfe,0xc6,0xfe, +0x7,0xff,0x68,0xff,0x80,0xff,0x79,0xff,0xa9,0xff,0xed,0xff, +0x37,0x0,0x76,0x0,0xa0,0x0,0xd9,0x0,0xf3,0x0,0xe1,0x0, +0xef,0x0,0x9,0x1,0x14,0x1,0x13,0x1,0xd7,0x0,0x90,0x0, +0x63,0x0,0xff,0xff,0x8c,0xff,0x5b,0xff,0x36,0xff,0xf8,0xfe, +0xb6,0xfe,0x79,0xfe,0x59,0xfe,0x66,0xfe,0x6e,0xfe,0x5f,0xfe, +0x7f,0xfe,0xca,0xfe,0xff,0xfe,0x4a,0xff,0xa7,0xff,0xd9,0xff, +0x21,0x0,0x73,0x0,0x8a,0x0,0xb7,0x0,0x3,0x1,0x1b,0x1, +0x24,0x1,0x2d,0x1,0x2c,0x1,0x3c,0x1,0x4c,0x1,0x57,0x1, +0x5a,0x1,0x41,0x1,0x4a,0x1,0x69,0x1,0x60,0x1,0x6c,0x1, +0x85,0x1,0x68,0x1,0x4c,0x1,0x21,0x1,0xd1,0x0,0xae,0x0, +0x82,0x0,0xfb,0xff,0x84,0xff,0x3b,0xff,0xc6,0xfe,0x56,0xfe, +0x9,0xfe,0x95,0xfd,0x1e,0xfd,0xe9,0xfc,0xca,0xfc,0xb8,0xfc, +0xce,0xfc,0xf5,0xfc,0x3a,0xfd,0xa5,0xfd,0x16,0xfe,0x97,0xfe, +0x20,0xff,0x91,0xff,0x7,0x0,0x85,0x0,0x4,0x1,0x92,0x1, +0xfc,0x1,0x45,0x2,0xc2,0x2,0x4e,0x3,0x88,0x3,0x8f,0x3, +0x93,0x3,0x80,0x3,0x4d,0x3,0x10,0x3,0xab,0x2,0x21,0x2, +0xbe,0x1,0x72,0x1,0xf9,0x0,0x6b,0x0,0xd7,0xff,0x40,0xff, +0xc5,0xfe,0x4d,0xfe,0xe0,0xfd,0xaa,0xfd,0x8f,0xfd,0x83,0xfd, +0x9f,0xfd,0xd8,0xfd,0xd,0xfe,0x41,0xfe,0xa1,0xfe,0x16,0xff, +0x6a,0xff,0xd7,0xff,0x6c,0x0,0xe2,0x0,0x46,0x1,0x98,0x1, +0xdd,0x1,0x4f,0x2,0xbe,0x2,0xfb,0x2,0x3a,0x3,0x86,0x3, +0xdd,0x3,0x21,0x4,0x35,0x4,0x47,0x4,0x64,0x4,0x88,0x4, +0xa9,0x4,0x8d,0x4,0x5a,0x4,0x35,0x4,0xea,0x3,0x9e,0x3, +0x75,0x3,0x49,0x3,0x1c,0x3,0xce,0x2,0x57,0x2,0xf2,0x1, +0x9e,0x1,0x5a,0x1,0x18,0x1,0xa8,0x0,0x26,0x0,0xae,0xff, +0x35,0xff,0xde,0xfe,0xa5,0xfe,0x64,0xfe,0x2d,0xfe,0xa,0xfe, +0x4,0xfe,0x2e,0xfe,0x76,0xfe,0xcd,0xfe,0x35,0xff,0x8e,0xff, +0xd5,0xff,0x39,0x0,0xb5,0x0,0x26,0x1,0xb0,0x1,0x37,0x2, +0x90,0x2,0x8,0x3,0x9a,0x3,0xec,0x3,0x22,0x4,0x58,0x4, +0x72,0x4,0x7e,0x4,0x5d,0x4,0xf6,0x3,0x70,0x3,0xd1,0x2, +0x20,0x2,0x5e,0x1,0x7a,0x0,0x98,0xff,0xc3,0xfe,0xe5,0xfd, +0x2f,0xfd,0x9f,0xfc,0xef,0xfb,0x4f,0xfb,0xff,0xfa,0xbf,0xfa, +0x8d,0xfa,0x8c,0xfa,0x9c,0xfa,0xe3,0xfa,0x7c,0xfb,0xe,0xfc, +0xa7,0xfc,0x77,0xfd,0x50,0xfe,0x23,0xff,0xec,0xff,0xad,0x0, +0x78,0x1,0x2d,0x2,0xd6,0x2,0x72,0x3,0xc3,0x3,0x5,0x4, +0x44,0x4,0x2b,0x4,0xef,0x3,0xba,0x3,0x61,0x3,0xfc,0x2, +0x77,0x2,0xb8,0x1,0xed,0x0,0x30,0x0,0x73,0xff,0xa1,0xfe, +0xd8,0xfd,0x3a,0xfd,0x97,0xfc,0x6,0xfc,0x96,0xfb,0x1c,0xfb, +0xe4,0xfa,0xf7,0xfa,0x1a,0xfb,0x78,0xfb,0xc5,0xfb,0xd4,0xfb, +0x42,0xfc,0x1b,0xfd,0xf6,0xfd,0xb7,0xfe,0x63,0xff,0x36,0x0, +0x36,0x1,0x23,0x2,0xf3,0x2,0x88,0x3,0xdb,0x3,0x24,0x4, +0x6a,0x4,0x6d,0x4,0x21,0x4,0xef,0x3,0xca,0x3,0x22,0x3, +0x55,0x2,0xc9,0x1,0x11,0x1,0x4b,0x0,0x98,0xff,0xab,0xfe, +0xb7,0xfd,0xe1,0xfc,0x30,0xfc,0xbf,0xfb,0x33,0xfb,0x9c,0xfa, +0x43,0xfa,0xdc,0xf9,0x8b,0xf9,0x7e,0xf9,0x5f,0xf9,0x5c,0xf9, +0xb3,0xf9,0x27,0xfa,0xb7,0xfa,0x6b,0xfb,0x3d,0xfc,0x4b,0xfd, +0x66,0xfe,0x52,0xff,0x3a,0x0,0x24,0x1,0xce,0x1,0x52,0x2, +0xd4,0x2,0x27,0x3,0x63,0x3,0x9f,0x3,0x94,0x3,0x4c,0x3, +0xef,0x2,0x70,0x2,0xf0,0x1,0x5d,0x1,0x86,0x0,0xa2,0xff, +0xb4,0xfe,0x9e,0xfd,0xa3,0xfc,0xd6,0xfb,0xd,0xfb,0x54,0xfa, +0xc2,0xf9,0x4d,0xf9,0xf8,0xf8,0xed,0xf8,0x25,0xf9,0x72,0xf9, +0xf3,0xf9,0xa9,0xfa,0x5e,0xfb,0x29,0xfc,0x25,0xfd,0x27,0xfe, +0x12,0xff,0xf3,0xff,0xdc,0x0,0xc2,0x1,0x9d,0x2,0x7f,0x3, +0x4b,0x4,0xdd,0x4,0x3d,0x5,0x78,0x5,0xa7,0x5,0xc1,0x5, +0x85,0x5,0x14,0x5,0xb3,0x4,0x29,0x4,0x52,0x3,0x7c,0x2, +0xb8,0x1,0xda,0x0,0x2,0x0,0x33,0xff,0x4d,0xfe,0x85,0xfd, +0xe1,0xfc,0x34,0xfc,0xa6,0xfb,0x34,0xfb,0xc1,0xfa,0x93,0xfa, +0xb8,0xfa,0xe8,0xfa,0x26,0xfb,0xa8,0xfb,0x58,0xfc,0xfb,0xfc, +0x92,0xfd,0x22,0xfe,0xad,0xfe,0x7b,0xff,0x71,0x0,0x16,0x1, +0x97,0x1,0x38,0x2,0xc9,0x2,0x39,0x3,0x92,0x3,0xd7,0x3, +0x7,0x4,0x1f,0x4,0x2d,0x4,0x10,0x4,0xad,0x3,0x4e,0x3, +0x17,0x3,0xd9,0x2,0x6a,0x2,0xb4,0x1,0xe4,0x0,0x42,0x0, +0xcc,0xff,0x46,0xff,0x83,0xfe,0xb5,0xfd,0x21,0xfd,0xb8,0xfc, +0x67,0xfc,0x11,0xfc,0xa9,0xfb,0x69,0xfb,0x5c,0xfb,0x67,0xfb, +0x81,0xfb,0x96,0xfb,0xd7,0xfb,0x5e,0xfc,0xdf,0xfc,0x60,0xfd, +0x5,0xfe,0xb2,0xfe,0x6b,0xff,0x3d,0x0,0xd,0x1,0xc0,0x1, +0x58,0x2,0xf5,0x2,0x7f,0x3,0xe1,0x3,0x3e,0x4,0x82,0x4, +0x95,0x4,0x9c,0x4,0x93,0x4,0x5e,0x4,0x8,0x4,0xb5,0x3, +0x62,0x3,0xf5,0x2,0x80,0x2,0x5,0x2,0x77,0x1,0x1d,0x1, +0xf0,0x0,0xa1,0x0,0x49,0x0,0xeb,0xff,0x6f,0xff,0x6,0xff, +0xaa,0xfe,0x42,0xfe,0xf3,0xfd,0xc0,0xfd,0xa7,0xfd,0xcb,0xfd, +0x1c,0xfe,0x5e,0xfe,0x9e,0xfe,0x14,0xff,0x99,0xff,0xfb,0xff, +0x6f,0x0,0x4,0x1,0x85,0x1,0xf3,0x1,0x50,0x2,0xa1,0x2, +0xf1,0x2,0x37,0x3,0x74,0x3,0x91,0x3,0x7f,0x3,0x5e,0x3, +0x17,0x3,0xb9,0x2,0x7b,0x2,0xd,0x2,0x61,0x1,0xe7,0x0, +0x65,0x0,0xa9,0xff,0x18,0xff,0x8b,0xfe,0xd5,0xfd,0x63,0xfd, +0x11,0xfd,0x8e,0xfc,0x30,0xfc,0xf0,0xfb,0x97,0xfb,0x66,0xfb, +0x58,0xfb,0x33,0xfb,0xe,0xfb,0xef,0xfa,0xf3,0xfa,0x35,0xfb, +0x83,0xfb,0xc3,0xfb,0xf0,0xfb,0x2a,0xfc,0xa5,0xfc,0x2c,0xfd, +0x92,0xfd,0xfe,0xfd,0x73,0xfe,0xf6,0xfe,0x7e,0xff,0xd6,0xff, +0x20,0x0,0x77,0x0,0xb2,0x0,0xcd,0x0,0xd6,0x0,0xd5,0x0, +0xe4,0x0,0xf1,0x0,0xc1,0x0,0x40,0x0,0xc3,0xff,0x89,0xff, +0x4e,0xff,0xd8,0xfe,0x5c,0xfe,0x9,0xfe,0xbc,0xfd,0x5d,0xfd, +0x25,0xfd,0x19,0xfd,0x7,0xfd,0x16,0xfd,0x39,0xfd,0x1f,0xfd, +0xa,0xfd,0x31,0xfd,0x63,0xfd,0xaa,0xfd,0x8,0xfe,0x61,0xfe, +0xc2,0xfe,0x27,0xff,0xa4,0xff,0x5b,0x0,0x1b,0x1,0xb4,0x1, +0x38,0x2,0xbe,0x2,0x2a,0x3,0x65,0x3,0x9c,0x3,0xe3,0x3, +0x11,0x4,0xf,0x4,0xf4,0x3,0xda,0x3,0xab,0x3,0x5d,0x3, +0x18,0x3,0xcf,0x2,0x68,0x2,0x10,0x2,0x9d,0x1,0xf2,0x0, +0x72,0x0,0x29,0x0,0xc0,0xff,0x35,0xff,0xa9,0xfe,0x3b,0xfe, +0xd,0xfe,0xc,0xfe,0x9,0xfe,0xfb,0xfd,0xed,0xfd,0xfc,0xfd, +0x45,0xfe,0xa3,0xfe,0xf2,0xfe,0x48,0xff,0xa0,0xff,0xe5,0xff, +0x2c,0x0,0x81,0x0,0xd3,0x0,0xb,0x1,0x4b,0x1,0xb4,0x1, +0xe6,0x1,0xda,0x1,0xf6,0x1,0x11,0x2,0xa,0x2,0xfa,0x1, +0xaf,0x1,0x5c,0x1,0x22,0x1,0xa5,0x0,0x19,0x0,0xa8,0xff, +0xe,0xff,0x75,0xfe,0xfd,0xfd,0x95,0xfd,0x36,0xfd,0xbc,0xfc, +0x44,0xfc,0xf1,0xfb,0xa3,0xfb,0x63,0xfb,0x2c,0xfb,0xd,0xfb, +0x26,0xfb,0x39,0xfb,0x57,0xfb,0x9f,0xfb,0xcf,0xfb,0x9,0xfc, +0x62,0xfc,0xac,0xfc,0xa,0xfd,0x5c,0xfd,0x99,0xfd,0xfd,0xfd, +0x4d,0xfe,0x7d,0xfe,0xc3,0xfe,0x3,0xff,0x4e,0xff,0xa6,0xff, +0xd1,0xff,0xd8,0xff,0xce,0xff,0xd0,0xff,0xe0,0xff,0xc9,0xff, +0xb5,0xff,0xae,0xff,0x62,0xff,0x6,0xff,0xdc,0xfe,0xc1,0xfe, +0x96,0xfe,0x4d,0xfe,0x12,0xfe,0x5,0xfe,0xfd,0xfd,0x3,0xfe, +0x14,0xfe,0xfb,0xfd,0xe6,0xfd,0xfc,0xfd,0x15,0xfe,0x22,0xfe, +0x32,0xfe,0x45,0xfe,0x62,0xfe,0x95,0xfe,0xcc,0xfe,0xf5,0xfe, +0x25,0xff,0x68,0xff,0xb0,0xff,0xf2,0xff,0x27,0x0,0x67,0x0, +0xb2,0x0,0xe3,0x0,0x16,0x1,0x55,0x1,0x79,0x1,0xa6,0x1, +0xd5,0x1,0xd5,0x1,0xe1,0x1,0x13,0x2,0x3b,0x2,0x54,0x2, +0x53,0x2,0x25,0x2,0xe3,0x1,0xac,0x1,0x76,0x1,0x1a,0x1, +0xb5,0x0,0x6f,0x0,0x1c,0x0,0xc4,0xff,0x8a,0xff,0x40,0xff, +0xde,0xfe,0x8b,0xfe,0x44,0xfe,0x18,0xfe,0xf1,0xfd,0xa9,0xfd, +0x82,0xfd,0x8c,0xfd,0x93,0xfd,0xaa,0xfd,0xd1,0xfd,0xe9,0xfd, +0x1e,0xfe,0x7b,0xfe,0xdd,0xfe,0x3f,0xff,0x97,0xff,0xe9,0xff, +0x41,0x0,0x82,0x0,0x9d,0x0,0xab,0x0,0xbb,0x0,0xca,0x0, +0xca,0x0,0xb5,0x0,0x91,0x0,0x6a,0x0,0x40,0x0,0xfe,0xff, +0xc0,0xff,0xa9,0xff,0x87,0xff,0x41,0xff,0xf9,0xfe,0xaa,0xfe, +0x63,0xfe,0x4a,0xfe,0x53,0xfe,0x5d,0xfe,0x52,0xfe,0x57,0xfe, +0x97,0xfe,0xe8,0xfe,0x2d,0xff,0x6d,0xff,0xa9,0xff,0xf6,0xff, +0x49,0x0,0x81,0x0,0xa5,0x0,0xb5,0x0,0xba,0x0,0xbe,0x0, +0xa1,0x0,0x65,0x0,0x25,0x0,0x6,0x0,0x8,0x0,0xe1,0xff, +0x97,0xff,0x69,0xff,0x2d,0xff,0xd9,0xfe,0x9a,0xfe,0x77,0xfe, +0x64,0xfe,0x49,0xfe,0x30,0xfe,0x38,0xfe,0x51,0xfe,0x63,0xfe, +0x65,0xfe,0x82,0xfe,0xed,0xfe,0x45,0xff,0x61,0xff,0xa7,0xff, +0x19,0x0,0x9a,0x0,0xd,0x1,0x48,0x1,0x89,0x1,0xd1,0x1, +0x0,0x2,0x53,0x2,0x94,0x2,0x9a,0x2,0xbe,0x2,0xe0,0x2, +0xe6,0x2,0xdc,0x2,0x92,0x2,0x52,0x2,0x3e,0x2,0xe6,0x1, +0x73,0x1,0x29,0x1,0xda,0x0,0x9a,0x0,0x75,0x0,0x47,0x0, +0x28,0x0,0x33,0x0,0x3e,0x0,0x2a,0x0,0x20,0x0,0x28,0x0, +0x2d,0x0,0x3e,0x0,0x40,0x0,0x28,0x0,0x40,0x0,0x78,0x0, +0x88,0x0,0x6c,0x0,0x57,0x0,0x7e,0x0,0xab,0x0,0xac,0x0, +0xc4,0x0,0xee,0x0,0x1,0x1,0x1a,0x1,0x11,0x1,0xde,0x0, +0xc9,0x0,0xc4,0x0,0x9d,0x0,0x60,0x0,0x3a,0x0,0x3c,0x0, +0x3e,0x0,0x2e,0x0,0x1a,0x0,0x0,0x0,0xe1,0xff,0xb9,0xff, +0x90,0xff,0x65,0xff,0x4,0xff,0x9e,0xfe,0x74,0xfe,0x40,0xfe, +0xf8,0xfd,0xc2,0xfd,0x7f,0xfd,0x4a,0xfd,0x44,0xfd,0x4a,0xfd, +0x4c,0xfd,0x4d,0xfd,0x6c,0xfd,0xad,0xfd,0xe0,0xfd,0x7,0xfe, +0x30,0xfe,0x67,0xfe,0xd0,0xfe,0x2c,0xff,0x61,0xff,0xc8,0xff, +0x44,0x0,0x9b,0x0,0xf9,0x0,0x61,0x1,0xb8,0x1,0x9,0x2, +0x3a,0x2,0x4f,0x2,0x68,0x2,0x65,0x2,0x25,0x2,0xc7,0x1, +0x66,0x1,0x3,0x1,0x9e,0x0,0x29,0x0,0xa0,0xff,0x19,0xff, +0xac,0xfe,0x5e,0xfe,0x10,0xfe,0xc5,0xfd,0x9a,0xfd,0x76,0xfd, +0x61,0xfd,0x8a,0xfd,0xb7,0xfd,0xbf,0xfd,0xea,0xfd,0x43,0xfe, +0xaf,0xfe,0x35,0xff,0xc5,0xff,0x55,0x0,0xe7,0x0,0x69,0x1, +0xf1,0x1,0x70,0x2,0xb2,0x2,0xe2,0x2,0x2b,0x3,0x62,0x3, +0x7d,0x3,0x97,0x3,0x99,0x3,0x73,0x3,0x28,0x3,0xbd,0x2, +0x53,0x2,0xfa,0x1,0x97,0x1,0x2b,0x1,0xbe,0x0,0x2c,0x0, +0x83,0xff,0xf,0xff,0xdc,0xfe,0xad,0xfe,0x5e,0xfe,0x29,0xfe, +0x3f,0xfe,0x5c,0xfe,0x5d,0xfe,0x85,0xfe,0xc3,0xfe,0xe5,0xfe, +0x8,0xff,0x25,0xff,0x2d,0xff,0x3e,0xff,0x44,0xff,0x44,0xff, +0x6e,0xff,0x97,0xff,0x9f,0xff,0xad,0xff,0xb0,0xff,0xa2,0xff, +0xb3,0xff,0xcb,0xff,0xc9,0xff,0xc2,0xff,0xaf,0xff,0x97,0xff, +0xb2,0xff,0xd8,0xff,0xb7,0xff,0x8f,0xff,0x92,0xff,0x71,0xff, +0x49,0xff,0x68,0xff,0x86,0xff,0x78,0xff,0x61,0xff,0x2f,0xff, +0x1,0xff,0xf2,0xfe,0xd5,0xfe,0xa7,0xfe,0x6d,0xfe,0x26,0xfe, +0x11,0xfe,0x3a,0xfe,0x77,0xfe,0xb3,0xfe,0xd9,0xfe,0x11,0xff, +0x6d,0xff,0x9f,0xff,0xb4,0xff,0xe6,0xff,0xf,0x0,0x18,0x0, +0x1e,0x0,0x25,0x0,0x28,0x0,0x2f,0x0,0x3c,0x0,0x4e,0x0, +0x4f,0x0,0x29,0x0,0x2,0x0,0xee,0xff,0xc0,0xff,0x90,0xff, +0x89,0xff,0x51,0xff,0xca,0xfe,0x6b,0xfe,0x35,0xfe,0xdc,0xfd, +0x67,0xfd,0xf9,0xfc,0xbf,0xfc,0xbc,0xfc,0xad,0xfc,0xa5,0xfc, +0xdc,0xfc,0x34,0xfd,0x8e,0xfd,0xf1,0xfd,0x47,0xfe,0xaa,0xfe, +0x3e,0xff,0xcc,0xff,0x48,0x0,0xd5,0x0,0x42,0x1,0x8a,0x1, +0xd6,0x1,0x11,0x2,0x57,0x2,0xa5,0x2,0x9b,0x2,0x62,0x2, +0x39,0x2,0xf1,0x1,0x9c,0x1,0x40,0x1,0xb8,0x0,0x29,0x0, +0xa2,0xff,0x14,0xff,0x8e,0xfe,0x13,0xfe,0xbb,0xfd,0x6f,0xfd, +0x9,0xfd,0xaa,0xfc,0x68,0xfc,0x4c,0xfc,0x58,0xfc,0x66,0xfc, +0x85,0xfc,0xc2,0xfc,0xd,0xfd,0x74,0xfd,0xde,0xfd,0x43,0xfe, +0xb2,0xfe,0xd,0xff,0x96,0xff,0x3e,0x0,0x8c,0x0,0xd8,0x0, +0x5c,0x1,0xa8,0x1,0xd8,0x1,0xe,0x2,0x3a,0x2,0x7a,0x2, +0x8e,0x2,0x76,0x2,0x70,0x2,0x42,0x2,0x0,0x2,0xd4,0x1, +0x8d,0x1,0x46,0x1,0xed,0x0,0x6b,0x0,0xb,0x0,0xb9,0xff, +0x64,0xff,0x37,0xff,0x1,0xff,0xc6,0xfe,0xa4,0xfe,0x75,0xfe, +0x69,0xfe,0x84,0xfe,0x70,0xfe,0x4d,0xfe,0x4a,0xfe,0x3f,0xfe, +0x23,0xfe,0x13,0xfe,0x20,0xfe,0x40,0xfe,0x61,0xfe,0x80,0xfe, +0xae,0xfe,0xfa,0xfe,0x4e,0xff,0xa8,0xff,0x14,0x0,0x68,0x0, +0xb8,0x0,0x32,0x1,0x97,0x1,0xde,0x1,0x21,0x2,0x31,0x2, +0x2d,0x2,0x43,0x2,0x48,0x2,0x48,0x2,0x22,0x2,0xa2,0x1, +0x30,0x1,0xf8,0x0,0x98,0x0,0x0,0x0,0x7e,0xff,0x24,0xff, +0xb4,0xfe,0x2b,0xfe,0xca,0xfd,0x86,0xfd,0x49,0xfd,0x1c,0xfd, +0xde,0xfc,0xb7,0xfc,0xb7,0xfc,0xa7,0xfc,0xca,0xfc,0x14,0xfd, +0x28,0xfd,0x76,0xfd,0x5,0xfe,0x64,0xfe,0xe5,0xfe,0x82,0xff, +0xd7,0xff,0x32,0x0,0xb3,0x0,0x23,0x1,0x82,0x1,0xca,0x1, +0x1,0x2,0x15,0x2,0xeb,0x1,0xc2,0x1,0xa9,0x1,0x81,0x1, +0x5d,0x1,0x11,0x1,0xa6,0x0,0x56,0x0,0xf2,0xff,0x85,0xff, +0x42,0xff,0x7,0xff,0xc7,0xfe,0x82,0xfe,0x4a,0xfe,0x4f,0xfe, +0x63,0xfe,0x6c,0xfe,0x95,0xfe,0xbf,0xfe,0xcb,0xfe,0xe5,0xfe, +0x25,0xff,0x86,0xff,0xe5,0xff,0x24,0x0,0x59,0x0,0xa2,0x0, +0xf9,0x0,0x41,0x1,0x77,0x1,0xaf,0x1,0xe7,0x1,0x16,0x2, +0x26,0x2,0x1d,0x2,0x33,0x2,0x3e,0x2,0xd,0x2,0xe8,0x1, +0xca,0x1,0x8b,0x1,0x55,0x1,0x16,0x1,0xc1,0x0,0x82,0x0, +0x51,0x0,0x1b,0x0,0xd8,0xff,0x91,0xff,0x74,0xff,0x5c,0xff, +0x19,0xff,0xde,0xfe,0xbc,0xfe,0xa3,0xfe,0xa7,0xfe,0xcd,0xfe, +0xfa,0xfe,0xd,0xff,0x14,0xff,0x2a,0xff,0x3b,0xff,0x51,0xff, +0x68,0xff,0x53,0xff,0x43,0xff,0x51,0xff,0x47,0xff,0x4a,0xff, +0x79,0xff,0x9e,0xff,0xc4,0xff,0x8,0x0,0x45,0x0,0x66,0x0, +0x7c,0x0,0x9c,0x0,0xc0,0x0,0xd6,0x0,0xc8,0x0,0x9c,0x0, +0x72,0x0,0x38,0x0,0xce,0xff,0x7b,0xff,0x37,0xff,0xae,0xfe, +0x21,0xfe,0xce,0xfd,0x85,0xfd,0x40,0xfd,0xeb,0xfc,0x89,0xfc, +0x62,0xfc,0x55,0xfc,0x3d,0xfc,0x55,0xfc,0x70,0xfc,0x77,0xfc, +0xbb,0xfc,0x13,0xfd,0x59,0xfd,0xe0,0xfd,0x9b,0xfe,0x3d,0xff, +0xbd,0xff,0x39,0x0,0xc6,0x0,0x46,0x1,0xb3,0x1,0x36,0x2, +0xaa,0x2,0xe7,0x2,0x10,0x3,0x25,0x3,0x18,0x3,0xf8,0x2, +0xcc,0x2,0x94,0x2,0x39,0x2,0xb9,0x1,0x2d,0x1,0x8a,0x0, +0xe8,0xff,0x66,0xff,0xda,0xfe,0x49,0xfe,0xca,0xfd,0x51,0xfd, +0xfd,0xfc,0xc5,0xfc,0x8a,0xfc,0x7f,0xfc,0xac,0xfc,0xe7,0xfc, +0x38,0xfd,0x9e,0xfd,0x15,0xfe,0x8b,0xfe,0xee,0xfe,0x68,0xff, +0x3,0x0,0x90,0x0,0x1a,0x1,0xa4,0x1,0x0,0x2,0x29,0x2, +0x46,0x2,0x60,0x2,0x6a,0x2,0x67,0x2,0x4c,0x2,0x6,0x2, +0xb9,0x1,0x80,0x1,0x40,0x1,0xfb,0x0,0xb1,0x0,0x4f,0x0, +0x0,0x0,0xd2,0xff,0x90,0xff,0x3c,0xff,0xf8,0xfe,0xb9,0xfe, +0x7f,0xfe,0x58,0xfe,0x2a,0xfe,0xf,0xfe,0x32,0xfe,0x44,0xfe, +0x37,0xfe,0x6f,0xfe,0xc0,0xfe,0xe6,0xfe,0x1d,0xff,0x60,0xff, +0x9a,0xff,0xd8,0xff,0xf2,0xff,0xf9,0xff,0x2,0x0,0x1,0x0, +0x8,0x0,0x0,0x0,0xee,0xff,0xff,0xff,0xf9,0xff,0xea,0xff, +0x22,0x0,0x5b,0x0,0x74,0x0,0x8a,0x0,0x8e,0x0,0xa0,0x0, +0xc4,0x0,0xd7,0x0,0xea,0x0,0xf6,0x0,0xf9,0x0,0xed,0x0, +0xc5,0x0,0xaf,0x0,0x9a,0x0,0x6a,0x0,0x68,0x0,0x64,0x0, +0x11,0x0,0xb5,0xff,0x67,0xff,0x17,0xff,0xdc,0xfe,0x92,0xfe, +0x38,0xfe,0xf8,0xfd,0xba,0xfd,0x6b,0xfd,0x2d,0xfd,0x18,0xfd, +0x2b,0xfd,0x63,0xfd,0x9f,0xfd,0xca,0xfd,0x28,0xfe,0xb6,0xfe, +0x17,0xff,0x6f,0xff,0xf0,0xff,0x6b,0x0,0xe2,0x0,0x44,0x1, +0x76,0x1,0xb6,0x1,0x2,0x2,0x1d,0x2,0x9,0x2,0xf5,0x1, +0xf2,0x1,0xde,0x1,0xab,0x1,0x66,0x1,0x0,0x1,0xa1,0x0, +0x49,0x0,0xbe,0xff,0x37,0xff,0xc8,0xfe,0x48,0xfe,0xe8,0xfd, +0x7f,0xfd,0xf5,0xfc,0xba,0xfc,0xb7,0xfc,0xb9,0xfc,0xd5,0xfc, +0xe2,0xfc,0xf,0xfd,0x93,0xfd,0x1a,0xfe,0x94,0xfe,0x6,0xff, +0x5f,0xff,0xcc,0xff,0x3a,0x0,0x86,0x0,0xd3,0x0,0x25,0x1, +0x71,0x1,0xb9,0x1,0xe9,0x1,0xf8,0x1,0xef,0x1,0xf4,0x1, +0x0,0x2,0xd0,0x1,0x87,0x1,0x62,0x1,0x27,0x1,0xcc,0x0, +0x82,0x0,0x49,0x0,0x10,0x0,0xc7,0xff,0x81,0xff,0x61,0xff, +0x47,0xff,0x2b,0xff,0x34,0xff,0x3e,0xff,0x21,0xff,0x28,0xff, +0x74,0xff,0x9a,0xff,0x83,0xff,0x97,0xff,0xcb,0xff,0xee,0xff, +0x11,0x0,0x22,0x0,0x39,0x0,0x8f,0x0,0xe0,0x0,0xf5,0x0, +0xfa,0x0,0xfe,0x0,0xf7,0x0,0xf2,0x0,0xea,0x0,0xda,0x0, +0xc0,0x0,0x98,0x0,0x72,0x0,0x4c,0x0,0x7,0x0,0xc5,0xff, +0xba,0xff,0xaf,0xff,0x74,0xff,0x39,0xff,0x20,0xff,0x1e,0xff, +0x9,0xff,0xd3,0xfe,0xb2,0xfe,0x94,0xfe,0x61,0xfe,0x5f,0xfe, +0x72,0xfe,0x50,0xfe,0x40,0xfe,0x51,0xfe,0x4a,0xfe,0x54,0xfe, +0x77,0xfe,0x8b,0xfe,0xb2,0xfe,0xeb,0xfe,0xb,0xff,0x27,0xff, +0x62,0xff,0xa6,0xff,0xd9,0xff,0x1a,0x0,0x76,0x0,0xc3,0x0, +0xfd,0x0,0x41,0x1,0x87,0x1,0xb7,0x1,0xce,0x1,0xcb,0x1, +0xa5,0x1,0x72,0x1,0x47,0x1,0x18,0x1,0xe6,0x0,0xc0,0x0, +0x8f,0x0,0x50,0x0,0x1f,0x0,0xf3,0xff,0xcf,0xff,0xbf,0xff, +0xbc,0xff,0xcc,0xff,0xd5,0xff,0xc9,0xff,0xd7,0xff,0x7,0x0, +0x31,0x0,0x5c,0x0,0x9d,0x0,0xee,0x0,0x3f,0x1,0x93,0x1, +0xf0,0x1,0x44,0x2,0x71,0x2,0x6d,0x2,0x6c,0x2,0xa4,0x2, +0xe0,0x2,0xcb,0x2,0x6f,0x2,0x6,0x2,0xca,0x1,0xc1,0x1, +0x93,0x1,0x36,0x1,0xf2,0x0,0xbb,0x0,0x84,0x0,0x53,0x0, +0x0,0x0,0xb6,0xff,0xa4,0xff,0x82,0xff,0x4c,0xff,0x2c,0xff, +0x10,0xff,0x1d,0xff,0x60,0xff,0x7c,0xff,0x75,0xff,0x8d,0xff, +0xac,0xff,0xbd,0xff,0xca,0xff,0xd1,0xff,0xeb,0xff,0x10,0x0, +0x8,0x0,0xcc,0xff,0x8a,0xff,0x67,0xff,0x64,0xff,0x60,0xff, +0x4b,0xff,0x31,0xff,0x7,0xff,0xcd,0xfe,0x9b,0xfe,0x63,0xfe, +0x25,0xfe,0xf0,0xfd,0xb5,0xfd,0x7d,0xfd,0x76,0xfd,0x9c,0xfd, +0xc2,0xfd,0xcf,0xfd,0xd5,0xfd,0xf4,0xfd,0x1e,0xfe,0x43,0xfe, +0x6d,0xfe,0x9a,0xfe,0xce,0xfe,0xc,0xff,0x39,0xff,0x3e,0xff, +0x20,0xff,0x9,0xff,0x11,0xff,0xd,0xff,0xf5,0xfe,0xed,0xfe, +0xe1,0xfe,0xd7,0xfe,0xee,0xfe,0x5,0xff,0xa,0xff,0x9,0xff, +0xfb,0xfe,0xe5,0xfe,0xd5,0xfe,0xc8,0xfe,0xbf,0xfe,0xc4,0xfe, +0xcd,0xfe,0xca,0xfe,0xd5,0xfe,0x4,0xff,0x34,0xff,0x53,0xff, +0x67,0xff,0x78,0xff,0xa5,0xff,0xce,0xff,0xd5,0xff,0xf9,0xff, +0x30,0x0,0x4b,0x0,0x81,0x0,0xc5,0x0,0xe2,0x0,0xfa,0x0, +0x18,0x1,0x3e,0x1,0x6c,0x1,0x85,0x1,0x93,0x1,0x9f,0x1, +0x9c,0x1,0xa4,0x1,0xae,0x1,0x9c,0x1,0x87,0x1,0x79,0x1, +0x61,0x1,0x4c,0x1,0x33,0x1,0x5,0x1,0xe2,0x0,0xdb,0x0, +0xbe,0x0,0x82,0x0,0x62,0x0,0x50,0x0,0x2b,0x0,0x20,0x0, +0x32,0x0,0x31,0x0,0x2d,0x0,0x4e,0x0,0x92,0x0,0xcf,0x0, +0xfb,0x0,0x2f,0x1,0x55,0x1,0x5c,0x1,0x67,0x1,0x6b,0x1, +0x5a,0x1,0x51,0x1,0x46,0x1,0x2b,0x1,0x9,0x1,0xde,0x0, +0xa5,0x0,0x68,0x0,0x3f,0x0,0x26,0x0,0xfd,0xff,0xc3,0xff, +0x95,0xff,0x82,0xff,0x78,0xff,0x60,0xff,0x4f,0xff,0x4e,0xff, +0x4a,0xff,0x56,0xff,0x7e,0xff,0xab,0xff,0xd3,0xff,0xe2,0xff, +0xed,0xff,0x16,0x0,0x30,0x0,0x37,0x0,0x4b,0x0,0x40,0x0, +0x22,0x0,0xd,0x0,0xcb,0xff,0x81,0xff,0x71,0xff,0x63,0xff, +0x40,0xff,0x32,0xff,0x23,0xff,0xd,0xff,0x2,0xff,0xee,0xfe, +0xdc,0xfe,0xcc,0xfe,0xa6,0xfe,0x87,0xfe,0x7c,0xfe,0x6f,0xfe, +0x72,0xfe,0x79,0xfe,0x7a,0xfe,0x87,0xfe,0x6b,0xfe,0x36,0xfe, +0x38,0xfe,0x3f,0xfe,0x2f,0xfe,0x26,0xfe,0x2,0xfe,0xd8,0xfd, +0xc4,0xfd,0xa8,0xfd,0xa0,0xfd,0xa1,0xfd,0x83,0xfd,0x66,0xfd, +0x4f,0xfd,0x4d,0xfd,0x73,0xfd,0x7e,0xfd,0x7f,0xfd,0xa0,0xfd, +0xb1,0xfd,0xc9,0xfd,0x2,0xfe,0x20,0xfe,0x3b,0xfe,0x71,0xfe, +0xb3,0xfe,0x3,0xff,0x32,0xff,0x35,0xff,0x6e,0xff,0xd3,0xff, +0x9,0x0,0xc,0x0,0x9,0x0,0x9,0x0,0xfb,0xff,0xdb,0xff, +0xca,0xff,0xb7,0xff,0x8b,0xff,0x77,0xff,0x77,0xff,0x54,0xff, +0x3a,0xff,0x42,0xff,0x3f,0xff,0x50,0xff,0x7c,0xff,0x7a,0xff, +0x70,0xff,0x99,0xff,0xca,0xff,0xfe,0xff,0x43,0x0,0x8a,0x0, +0xe1,0x0,0x3b,0x1,0x86,0x1,0xe3,0x1,0x54,0x2,0x9e,0x2, +0xbb,0x2,0xcd,0x2,0xdb,0x2,0xe3,0x2,0xf0,0x2,0xeb,0x2, +0xc3,0x2,0xab,0x2,0xae,0x2,0xab,0x2,0xa5,0x2,0x8b,0x2, +0x70,0x2,0x85,0x2,0x8f,0x2,0x5a,0x2,0x24,0x2,0xff,0x1, +0xb9,0x1,0x49,0x1,0xe4,0x0,0xb3,0x0,0x86,0x0,0x3b,0x0, +0xff,0xff,0xcd,0xff,0x86,0xff,0x54,0xff,0x3c,0xff,0x15,0xff, +0xf7,0xfe,0xff,0xfe,0x5,0xff,0xe4,0xfe,0xcd,0xfe,0xf9,0xfe, +0x27,0xff,0x1c,0xff,0x2c,0xff,0x73,0xff,0x9b,0xff,0x99,0xff, +0x96,0xff,0x95,0xff,0xb2,0xff,0xed,0xff,0x7,0x0,0xe8,0xff, +0xca,0xff,0xcb,0xff,0xb2,0xff,0x76,0xff,0x53,0xff,0x25,0xff, +0xe2,0xfe,0xd1,0xfe,0xbb,0xfe,0x71,0xfe,0x3d,0xfe,0x25,0xfe, +0x6,0xfe,0xd6,0xfd,0x94,0xfd,0x90,0xfd,0xaf,0xfd,0x84,0xfd, +0x4d,0xfd,0x4c,0xfd,0x66,0xfd,0xaa,0xfd,0xf8,0xfd,0x24,0xfe, +0x53,0xfe,0xaa,0xfe,0x2d,0xff,0x9a,0xff,0xca,0xff,0x12,0x0, +0x73,0x0,0xb7,0x0,0xf3,0x0,0x16,0x1,0x1f,0x1,0x39,0x1, +0x65,0x1,0x89,0x1,0x7e,0x1,0x5b,0x1,0x67,0x1,0x6f,0x1, +0x62,0x1,0x7e,0x1,0x97,0x1,0x98,0x1,0x9f,0x1,0xb1,0x1, +0xdd,0x1,0xec,0x1,0xdd,0x1,0x19,0x2,0x5c,0x2,0x64,0x2, +0x96,0x2,0xe1,0x2,0xd,0x3,0x46,0x3,0x68,0x3,0x7c,0x3, +0xbc,0x3,0xe4,0x3,0xdc,0x3,0xe1,0x3,0xe6,0x3,0xd9,0x3, +0xc3,0x3,0x88,0x3,0x3a,0x3,0x3,0x3,0xb9,0x2,0x41,0x2, +0xd2,0x1,0x8f,0x1,0x5b,0x1,0x10,0x1,0xc4,0x0,0x97,0x0, +0x77,0x0,0x54,0x0,0x2d,0x0,0xee,0xff,0xc1,0xff,0xc6,0xff, +0xc4,0xff,0xab,0xff,0x9e,0xff,0x98,0xff,0x9d,0xff,0xb5,0xff, +0xd4,0xff,0xea,0xff,0xec,0xff,0xf7,0xff,0xff,0xff,0xde,0xff, +0xc7,0xff,0xd4,0xff,0xdc,0xff,0xde,0xff,0xc9,0xff,0x89,0xff, +0x56,0xff,0x50,0xff,0x4b,0xff,0x33,0xff,0x19,0xff,0xf4,0xfe, +0xbf,0xfe,0x9d,0xfe,0x7f,0xfe,0x5c,0xfe,0x56,0xfe,0x1f,0xfe, +0xb9,0xfd,0x8f,0xfd,0x65,0xfd,0x2a,0xfd,0x29,0xfd,0xb,0xfd, +0xc4,0xfc,0xb7,0xfc,0xbd,0xfc,0xce,0xfc,0xe0,0xfc,0xbc,0xfc, +0xc1,0xfc,0x12,0xfd,0x4a,0xfd,0x5e,0xfd,0x7b,0xfd,0xc7,0xfd, +0x21,0xfe,0x43,0xfe,0x6f,0xfe,0xca,0xfe,0xf,0xff,0x5e,0xff, +0xc4,0xff,0x7,0x0,0x44,0x0,0x8f,0x0,0xc7,0x0,0xe6,0x0, +0xf5,0x0,0x0,0x1,0x17,0x1,0x27,0x1,0xf6,0x0,0x94,0x0, +0x5d,0x0,0x39,0x0,0xee,0xff,0xa8,0xff,0x5b,0xff,0xf5,0xfe, +0xa9,0xfe,0x6a,0xfe,0x10,0xfe,0xb6,0xfd,0x7b,0xfd,0x61,0xfd, +0x49,0xfd,0x2f,0xfd,0x2d,0xfd,0x41,0xfd,0x77,0xfd,0xb6,0xfd, +0xda,0xfd,0x1a,0xfe,0x7c,0xfe,0xc7,0xfe,0x1a,0xff,0x70,0xff, +0xb2,0xff,0x2,0x0,0x43,0x0,0x66,0x0,0xb2,0x0,0x1f,0x1, +0x6c,0x1,0x9a,0x1,0xce,0x1,0xfd,0x1,0x16,0x2,0x2c,0x2, +0x2f,0x2,0x7,0x2,0xd7,0x1,0xad,0x1,0x76,0x1,0x22,0x1, +0xba,0x0,0x6a,0x0,0x2f,0x0,0xdb,0xff,0x78,0xff,0x21,0xff, +0xd5,0xfe,0x95,0xfe,0x5b,0xfe,0x29,0xfe,0xf3,0xfd,0xbf,0xfd, +0xb1,0xfd,0xa5,0xfd,0x8a,0xfd,0x92,0xfd,0xba,0xfd,0xe5,0xfd, +0xfd,0xfd,0xf2,0xfd,0x7,0xfe,0x4e,0xfe,0x7c,0xfe,0xa7,0xfe, +0xeb,0xfe,0x11,0xff,0x23,0xff,0x47,0xff,0x6e,0xff,0x95,0xff, +0xc2,0xff,0xef,0xff,0x27,0x0,0x5a,0x0,0x6d,0x0,0x7e,0x0, +0xa0,0x0,0xa8,0x0,0x8e,0x0,0x6d,0x0,0x5d,0x0,0x69,0x0, +0x55,0x0,0xe,0x0,0xdb,0xff,0xb7,0xff,0x8c,0xff,0x5b,0xff, +0x8,0xff,0xcc,0xfe,0xcd,0xfe,0xb0,0xfe,0x7a,0xfe,0x51,0xfe, +0x1b,0xfe,0x6,0xfe,0xb,0xfe,0xf3,0xfd,0xe4,0xfd,0xf5,0xfd, +0x24,0xfe,0x60,0xfe,0x7d,0xfe,0xa5,0xfe,0xe6,0xfe,0x9,0xff, +0x43,0xff,0x99,0xff,0xbb,0xff,0xd2,0xff,0x6,0x0,0x2f,0x0, +0x55,0x0,0x78,0x0,0x83,0x0,0xa2,0x0,0xd9,0x0,0xee,0x0, +0x1,0x1,0x2a,0x1,0x36,0x1,0x3b,0x1,0x4e,0x1,0x4a,0x1, +0x4d,0x1,0x50,0x1,0x1e,0x1,0xf3,0x0,0xe1,0x0,0xb1,0x0, +0x7e,0x0,0x48,0x0,0x0,0x0,0xcb,0xff,0x8d,0xff,0x3e,0xff, +0xf9,0xfe,0xa3,0xfe,0x54,0xfe,0x28,0xfe,0xe6,0xfd,0x92,0xfd, +0x6b,0xfd,0x7d,0xfd,0xa0,0xfd,0xac,0xfd,0xc0,0xfd,0x10,0xfe, +0x83,0xfe,0xe8,0xfe,0x40,0xff,0xa1,0xff,0xe,0x0,0x70,0x0, +0xc4,0x0,0x17,0x1,0x65,0x1,0x9e,0x1,0xb5,0x1,0xc0,0x1, +0xc1,0x1,0xa0,0x1,0x75,0x1,0x4e,0x1,0x16,0x1,0xe2,0x0, +0xa9,0x0,0x3e,0x0,0xc7,0xff,0x77,0xff,0x2b,0xff,0xce,0xfe, +0x78,0xfe,0x38,0xfe,0x2,0xfe,0xcf,0xfd,0xad,0xfd,0xaa,0xfd, +0xa9,0xfd,0x9d,0xfd,0xb5,0xfd,0xef,0xfd,0x34,0xfe,0x99,0xfe, +0x7,0xff,0x6e,0xff,0xea,0xff,0x54,0x0,0xa7,0x0,0x15,0x1, +0x7c,0x1,0xb3,0x1,0xbc,0x1,0xb0,0x1,0xd5,0x1,0xfe,0x1, +0xd3,0x1,0x96,0x1,0x70,0x1,0x39,0x1,0xf9,0x0,0xb2,0x0, +0x6b,0x0,0x28,0x0,0xca,0xff,0x73,0xff,0x4d,0xff,0x3a,0xff, +0x28,0xff,0x18,0xff,0x0,0xff,0xda,0xfe,0xc4,0xfe,0xe9,0xfe, +0xd,0xff,0x1,0xff,0x9,0xff,0x27,0xff,0x44,0xff,0x7e,0xff, +0x92,0xff,0x69,0xff,0x64,0xff,0x7b,0xff,0x5e,0xff,0x2b,0xff, +0x15,0xff,0xdc,0xfe,0x6a,0xfe,0x2b,0xfe,0xb,0xfe,0xaf,0xfd, +0x69,0xfd,0x50,0xfd,0x24,0xfd,0x24,0xfd,0x45,0xfd,0x50,0xfd, +0x85,0xfd,0xd5,0xfd,0x19,0xfe,0x7e,0xfe,0xdd,0xfe,0x2a,0xff, +0x9b,0xff,0x7,0x0,0x6d,0x0,0xf9,0x0,0x5f,0x1,0x86,0x1, +0xc0,0x1,0xf9,0x1,0x9,0x2,0x12,0x2,0x2,0x2,0xd1,0x1, +0xa8,0x1,0x6b,0x1,0x5,0x1,0xa5,0x0,0x59,0x0,0x2a,0x0, +0x3,0x0,0xac,0xff,0x5d,0xff,0x51,0xff,0x36,0xff,0xf3,0xfe, +0xd5,0xfe,0xe9,0xfe,0xb,0xff,0x43,0xff,0x95,0xff,0xe9,0xff, +0x5b,0x0,0xfd,0x0,0x77,0x1,0xb7,0x1,0xc,0x2,0x80,0x2, +0xfb,0x2,0x5e,0x3,0x80,0x3,0x92,0x3,0xad,0x3,0xa3,0x3, +0x70,0x3,0x20,0x3,0xd8,0x2,0x92,0x2,0xff,0x1,0x49,0x1, +0xbd,0x0,0x39,0x0,0xc5,0xff,0x5a,0xff,0xc7,0xfe,0x4b,0xfe, +0xfe,0xfd,0xc0,0xfd,0xa2,0xfd,0x85,0xfd,0x67,0xfd,0x90,0xfd, +0xe2,0xfd,0x1a,0xfe,0x3d,0xfe,0x86,0xfe,0x12,0xff,0x8a,0xff, +0xc5,0xff,0xff,0xff,0x38,0x0,0x61,0x0,0x7f,0x0,0x7c,0x0, +0x74,0x0,0x7a,0x0,0x73,0x0,0x5f,0x0,0x38,0x0,0xfc,0xff, +0xc6,0xff,0x96,0xff,0x71,0xff,0x46,0xff,0x3,0xff,0xdc,0xfe, +0xcd,0xfe,0x91,0xfe,0x52,0xfe,0x43,0xfe,0x2d,0xfe,0xfb,0xfd, +0xcc,0xfd,0xb1,0xfd,0xba,0xfd,0xd2,0xfd,0xcf,0xfd,0xc9,0xfd, +0xe9,0xfd,0x6,0xfe,0xb,0xfe,0xd,0xfe,0xf5,0xfd,0xd9,0xfd, +0xd7,0xfd,0xd9,0xfd,0xd8,0xfd,0xce,0xfd,0xab,0xfd,0x92,0xfd, +0x8f,0xfd,0x89,0xfd,0x86,0xfd,0x95,0xfd,0xbb,0xfd,0xef,0xfd, +0x29,0xfe,0x66,0xfe,0x9f,0xfe,0xf7,0xfe,0x68,0xff,0xa8,0xff, +0xd9,0xff,0x39,0x0,0x9c,0x0,0xd8,0x0,0xe2,0x0,0xdc,0x0, +0xf8,0x0,0xd,0x1,0x10,0x1,0x5,0x1,0xbb,0x0,0x76,0x0, +0x66,0x0,0x24,0x0,0xb2,0xff,0x4e,0xff,0xee,0xfe,0xb2,0xfe, +0x8a,0xfe,0x34,0xfe,0xd8,0xfd,0xc5,0xfd,0xe0,0xfd,0xec,0xfd, +0xfb,0xfd,0x23,0xfe,0x50,0xfe,0x9b,0xfe,0xe8,0xfe,0x17,0xff, +0x70,0xff,0xd2,0xff,0x13,0x0,0x75,0x0,0xb2,0x0,0xb9,0x0, +0x9,0x1,0x4b,0x1,0x33,0x1,0x35,0x1,0x3c,0x1,0x7,0x1, +0xc7,0x0,0x81,0x0,0x24,0x0,0xbc,0xff,0x4c,0xff,0xd1,0xfe, +0x4d,0xfe,0xe0,0xfd,0x8b,0xfd,0x25,0xfd,0xb1,0xfc,0x55,0xfc, +0x28,0xfc,0xf,0xfc,0xed,0xfb,0xd2,0xfb,0xd7,0xfb,0xb,0xfc, +0x62,0xfc,0x98,0xfc,0xba,0xfc,0x3,0xfd,0x51,0xfd,0x9a,0xfd, +0xea,0xfd,0x3a,0xfe,0x82,0xfe,0x9b,0xfe,0xaf,0xfe,0xfb,0xfe, +0x23,0xff,0x10,0xff,0x19,0xff,0x28,0xff,0x22,0xff,0x11,0xff, +0xe9,0xfe,0xd7,0xfe,0xf0,0xfe,0xf7,0xfe,0xd8,0xfe,0xb6,0xfe, +0xa8,0xfe,0xaa,0xfe,0xbb,0xfe,0xb3,0xfe,0x7e,0xfe,0x77,0xfe, +0xa7,0xfe,0xa8,0xfe,0xa4,0xfe,0xc9,0xfe,0xe3,0xfe,0x5,0xff, +0x2b,0xff,0x38,0xff,0x61,0xff,0xa8,0xff,0xe1,0xff,0xf9,0xff, +0xe9,0xff,0xde,0xff,0xe7,0xff,0xda,0xff,0xc7,0xff,0xc2,0xff, +0xc4,0xff,0xce,0xff,0xd5,0xff,0xec,0xff,0x1a,0x0,0x42,0x0, +0x66,0x0,0x85,0x0,0xa3,0x0,0xd0,0x0,0x4,0x1,0x31,0x1, +0x55,0x1,0x7a,0x1,0xa7,0x1,0xce,0x1,0xf5,0x1,0x1e,0x2, +0x38,0x2,0x48,0x2,0x4d,0x2,0x41,0x2,0x2a,0x2,0x0,0x2, +0xd2,0x1,0xb8,0x1,0x8f,0x1,0x49,0x1,0xf7,0x0,0xb1,0x0, +0x81,0x0,0x3f,0x0,0xf8,0xff,0xd7,0xff,0xb5,0xff,0x99,0xff, +0x9e,0xff,0x96,0xff,0x7f,0xff,0x74,0xff,0x6c,0xff,0x74,0xff, +0x85,0xff,0xb3,0xff,0x14,0x0,0x63,0x0,0x94,0x0,0xc9,0x0, +0xf1,0x0,0x21,0x1,0x61,0x1,0x7c,0x1,0x79,0x1,0x71,0x1, +0x50,0x1,0x26,0x1,0x9,0x1,0xdb,0x0,0x9c,0x0,0x7a,0x0, +0x51,0x0,0xf2,0xff,0xa2,0xff,0x77,0xff,0x37,0xff,0xf7,0xfe, +0xc2,0xfe,0x86,0xfe,0x59,0xfe,0x2d,0xfe,0x4,0xfe,0xb,0xfe, +0x19,0xfe,0x21,0xfe,0x54,0xfe,0x87,0xfe,0x9b,0xfe,0xdc,0xfe, +0x4c,0xff,0xb7,0xff,0xf,0x0,0x3d,0x0,0x55,0x0,0xa3,0x0, +0x12,0x1,0x57,0x1,0x80,0x1,0x9f,0x1,0xac,0x1,0xcb,0x1, +0xfe,0x1,0x14,0x2,0x1b,0x2,0x2b,0x2,0x23,0x2,0xfb,0x1, +0xc6,0x1,0x95,0x1,0x70,0x1,0x4a,0x1,0xf,0x1,0xbe,0x0, +0x7a,0x0,0x58,0x0,0x3d,0x0,0x26,0x0,0x31,0x0,0x49,0x0, +0x5a,0x0,0x6e,0x0,0x83,0x0,0x9b,0x0,0xb7,0x0,0xd7,0x0, +0xfc,0x0,0x5,0x1,0xe6,0x0,0xd5,0x0,0xe5,0x0,0xf6,0x0, +0xf4,0x0,0xe8,0x0,0xf7,0x0,0x1b,0x1,0x1d,0x1,0x7,0x1, +0x11,0x1,0x3e,0x1,0x60,0x1,0x60,0x1,0x5a,0x1,0x5b,0x1, +0x5e,0x1,0x7f,0x1,0xa9,0x1,0xaf,0x1,0xac,0x1,0xae,0x1, +0x9e,0x1,0x86,0x1,0x6d,0x1,0x6b,0x1,0x72,0x1,0x39,0x1, +0xda,0x0,0x98,0x0,0x6d,0x0,0x4b,0x0,0x10,0x0,0xb3,0xff, +0x73,0xff,0x3b,0xff,0xd1,0xfe,0x77,0xfe,0x48,0xfe,0x14,0xfe, +0xdd,0xfd,0xae,0xfd,0x8b,0xfd,0x7c,0xfd,0x71,0xfd,0x6e,0xfd, +0x75,0xfd,0x7c,0xfd,0x8d,0xfd,0xa6,0xfd,0xb3,0xfd,0xd3,0xfd, +0x15,0xfe,0x5d,0xfe,0xb0,0xfe,0x14,0xff,0x70,0xff,0xc2,0xff, +0x4,0x0,0x3d,0x0,0x94,0x0,0xd2,0x0,0xd1,0x0,0xd1,0x0, +0xc2,0x0,0x92,0x0,0x72,0x0,0x40,0x0,0xf0,0xff,0xb7,0xff, +0x84,0xff,0x35,0xff,0xc9,0xfe,0x6e,0xfe,0x4b,0xfe,0x1c,0xfe, +0xfb,0xfd,0xf,0xfe,0xec,0xfd,0xc0,0xfd,0xed,0xfd,0xfa,0xfd, +0xf2,0xfd,0x3d,0xfe,0x72,0xfe,0x77,0xfe,0xad,0xfe,0x5,0xff, +0x57,0xff,0x9d,0xff,0xd4,0xff,0x17,0x0,0x6e,0x0,0xb9,0x0, +0xe9,0x0,0x9,0x1,0x28,0x1,0x4a,0x1,0x5b,0x1,0x41,0x1, +0x1e,0x1,0x22,0x1,0x2d,0x1,0x12,0x1,0xe4,0x0,0xb6,0x0, +0x8d,0x0,0x66,0x0,0x3b,0x0,0x7,0x0,0xd2,0xff,0xca,0xff, +0xd4,0xff,0x9c,0xff,0x51,0xff,0x41,0xff,0x58,0xff,0x85,0xff, +0xb5,0xff,0xd1,0xff,0xee,0xff,0x15,0x0,0x4c,0x0,0x85,0x0, +0xb0,0x0,0xe1,0x0,0x9,0x1,0x2d,0x1,0x55,0x1,0x52,0x1, +0x5d,0x1,0x94,0x1,0x95,0x1,0x77,0x1,0x6c,0x1,0x4f,0x1, +0x4e,0x1,0x4e,0x1,0xa,0x1,0xd7,0x0,0xbe,0x0,0x68,0x0, +0xfd,0xff,0xb4,0xff,0x70,0xff,0x26,0xff,0xe9,0xfe,0xa8,0xfe, +0x6a,0xfe,0x50,0xfe,0x41,0xfe,0x38,0xfe,0x59,0xfe,0x6a,0xfe, +0x6a,0xfe,0x9e,0xfe,0xcf,0xfe,0xee,0xfe,0x2c,0xff,0x4d,0xff, +0x57,0xff,0x86,0xff,0xaa,0xff,0xb5,0xff,0xc7,0xff,0xd4,0xff, +0xd8,0xff,0xd0,0xff,0xa3,0xff,0x5d,0xff,0x23,0xff,0xf7,0xfe, +0xdb,0xfe,0xc5,0xfe,0x78,0xfe,0x14,0xfe,0xf4,0xfd,0xda,0xfd, +0xab,0xfd,0xaa,0xfd,0xa3,0xfd,0x8d,0xfd,0xa9,0xfd,0xc0,0xfd, +0xc1,0xfd,0xd3,0xfd,0xe1,0xfd,0xf5,0xfd,0x9,0xfe,0x25,0xfe, +0x70,0xfe,0xb1,0xfe,0xd9,0xfe,0x27,0xff,0x7e,0xff,0xc4,0xff, +0x12,0x0,0x62,0x0,0xa6,0x0,0xd5,0x0,0xfa,0x0,0x1c,0x1, +0x27,0x1,0x35,0x1,0x4a,0x1,0x38,0x1,0xfd,0x0,0xb0,0x0, +0x71,0x0,0x59,0x0,0x4c,0x0,0x1c,0x0,0xc8,0xff,0x93,0xff, +0x96,0xff,0x73,0xff,0x2e,0xff,0x1a,0xff,0x23,0xff,0x29,0xff, +0x23,0xff,0x4,0xff,0x1,0xff,0x23,0xff,0x3b,0xff,0x4a,0xff, +0x5b,0xff,0x82,0xff,0xbd,0xff,0xdf,0xff,0xf6,0xff,0x25,0x0, +0x5e,0x0,0x94,0x0,0xc0,0x0,0xdf,0x0,0xfb,0x0,0x16,0x1, +0x20,0x1,0x1d,0x1,0x33,0x1,0x48,0x1,0x39,0x1,0x2f,0x1, +0x1c,0x1,0xec,0x0,0xe2,0x0,0xdc,0x0,0xa4,0x0,0x7e,0x0, +0x68,0x0,0x39,0x0,0xff,0xff,0xb3,0xff,0x6f,0xff,0x49,0xff, +0x29,0xff,0xff,0xfe,0xc2,0xfe,0x8d,0xfe,0x6e,0xfe,0x4a,0xfe, +0x37,0xfe,0x3a,0xfe,0x38,0xfe,0x5a,0xfe,0x8b,0xfe,0x96,0xfe, +0xaa,0xfe,0xd3,0xfe,0xf,0xff,0x7a,0xff,0xd0,0xff,0xf1,0xff, +0x32,0x0,0x92,0x0,0xd1,0x0,0x6,0x1,0x3b,0x1,0x4b,0x1, +0x55,0x1,0x6d,0x1,0x66,0x1,0x56,0x1,0x41,0x1,0xee,0x0, +0x89,0x0,0x3f,0x0,0xdb,0xff,0x63,0xff,0x7,0xff,0xba,0xfe, +0x5d,0xfe,0x4,0xfe,0xc2,0xfd,0x70,0xfd,0x2b,0xfd,0x39,0xfd, +0x3b,0xfd,0xb,0xfd,0xc,0xfd,0x34,0xfd,0x67,0xfd,0xb4,0xfd, +0xf3,0xfd,0x40,0xfe,0xb0,0xfe,0x6,0xff,0x5b,0xff,0xc6,0xff, +0x2f,0x0,0xae,0x0,0x27,0x1,0x70,0x1,0xa8,0x1,0xce,0x1, +0xef,0x1,0x32,0x2,0x52,0x2,0x23,0x2,0xf2,0x1,0xd0,0x1, +0x90,0x1,0x4f,0x1,0x1d,0x1,0xd6,0x0,0x83,0x0,0x27,0x0, +0xcb,0xff,0x8b,0xff,0x4d,0xff,0x18,0xff,0x7,0xff,0xee,0xfe, +0xdf,0xfe,0xf9,0xfe,0xc,0xff,0x20,0xff,0x42,0xff,0x5f,0xff, +0xb0,0xff,0x21,0x0,0x6b,0x0,0xaf,0x0,0xf8,0x0,0x32,0x1, +0x74,0x1,0xb6,0x1,0xe1,0x1,0xff,0x1,0x17,0x2,0x19,0x2, +0xfd,0x1,0xe3,0x1,0xd8,0x1,0xb7,0x1,0x87,0x1,0x6a,0x1, +0x4c,0x1,0x10,0x1,0xcf,0x0,0xa4,0x0,0x88,0x0,0x67,0x0, +0x3b,0x0,0x7,0x0,0xe1,0xff,0xce,0xff,0xbf,0xff,0xbd,0xff, +0xb2,0xff,0x91,0xff,0x7a,0xff,0x64,0xff,0x45,0xff,0x42,0xff, +0x46,0xff,0x32,0xff,0x13,0xff,0xf6,0xfe,0xdf,0xfe,0xd2,0xfe, +0xd7,0xfe,0xcf,0xfe,0x98,0xfe,0x7e,0xfe,0x99,0xfe,0x9b,0xfe, +0x99,0xfe,0xb6,0xfe,0xc6,0xfe,0xe2,0xfe,0x13,0xff,0x39,0xff, +0x6d,0xff,0xc6,0xff,0x2b,0x0,0x89,0x0,0xd6,0x0,0x8,0x1, +0x1d,0x1,0x36,0x1,0x63,0x1,0x74,0x1,0x60,0x1,0x3d,0x1, +0x13,0x1,0xe8,0x0,0xa1,0x0,0x53,0x0,0x2e,0x0,0xf4,0xff, +0x83,0xff,0x32,0xff,0xfe,0xfe,0xb3,0xfe,0x85,0xfe,0x6e,0xfe, +0x1e,0xfe,0xd4,0xfd,0xd9,0xfd,0xe8,0xfd,0x3,0xfe,0x4d,0xfe, +0x84,0xfe,0xc8,0xfe,0x3d,0xff,0x8b,0xff,0xd3,0xff,0x55,0x0, +0xcb,0x0,0x2b,0x1,0x82,0x1,0xb4,0x1,0xdd,0x1,0x1,0x2, +0xf,0x2,0x19,0x2,0x17,0x2,0xfe,0x1,0xce,0x1,0x84,0x1, +0x3c,0x1,0x8,0x1,0xc6,0x0,0x6a,0x0,0x12,0x0,0xcb,0xff, +0x6f,0xff,0x7,0xff,0xc1,0xfe,0x89,0xfe,0x58,0xfe,0x2e,0xfe, +0xfd,0xfd,0xf2,0xfd,0xd,0xfe,0x2e,0xfe,0x73,0xfe,0xb7,0xfe, +0xce,0xfe,0xf2,0xfe,0x18,0xff,0x33,0xff,0x74,0xff,0xaf,0xff, +0xc1,0xff,0xca,0xff,0xb3,0xff,0x8c,0xff,0x97,0xff,0xaf,0xff, +0x9b,0xff,0x81,0xff,0x72,0xff,0x57,0xff,0x4a,0xff,0x52,0xff, +0x3e,0xff,0x1d,0xff,0x12,0xff,0x4,0xff,0xee,0xfe,0xdb,0xfe, +0xd9,0xfe,0xef,0xfe,0x9,0xff,0x16,0xff,0x11,0xff,0x8,0xff, +0x1c,0xff,0x35,0xff,0x38,0xff,0x3f,0xff,0x39,0xff,0x31,0xff, +0x46,0xff,0x40,0xff,0xf,0xff,0xf9,0xfe,0x0,0xff,0xfd,0xfe, +0xe2,0xfe,0xb9,0xfe,0xa0,0xfe,0x9e,0xfe,0xa8,0xfe,0xad,0xfe, +0xa8,0xfe,0xc0,0xfe,0xf3,0xfe,0x14,0xff,0x2d,0xff,0x4a,0xff, +0x5b,0xff,0x7d,0xff,0xbd,0xff,0xeb,0xff,0xf1,0xff,0xeb,0xff, +0xf0,0xff,0xf2,0xff,0xe9,0xff,0xda,0xff,0xc9,0xff,0xb6,0xff, +0xa3,0xff,0x90,0xff,0x7a,0xff,0x5c,0xff,0x47,0xff,0x40,0xff, +0x1c,0xff,0xd3,0xfe,0xa1,0xfe,0x8c,0xfe,0x7c,0xfe,0x83,0xfe, +0xa2,0xfe,0xc1,0xfe,0xf3,0xfe,0x36,0xff,0x6c,0xff,0xb4,0xff, +0x21,0x0,0x7b,0x0,0xbc,0x0,0xff,0x0,0x1e,0x1,0x18,0x1, +0x2d,0x1,0x4b,0x1,0x3c,0x1,0x1e,0x1,0x13,0x1,0xff,0x0, +0xd4,0x0,0x9b,0x0,0x67,0x0,0x49,0x0,0x27,0x0,0xeb,0xff, +0xb3,0xff,0x86,0xff,0x67,0xff,0x61,0xff,0x46,0xff,0x18,0xff, +0x21,0xff,0x49,0xff,0x6b,0xff,0xa5,0xff,0xd6,0xff,0xf1,0xff, +0x37,0x0,0x8a,0x0,0xbf,0x0,0xf7,0x0,0x2f,0x1,0x69,0x1, +0xa7,0x1,0xa2,0x1,0x74,0x1,0x72,0x1,0x78,0x1,0x6c,0x1, +0x4d,0x1,0xff,0x0,0xc5,0x0,0xb7,0x0,0x81,0x0,0x3b,0x0, +0x1,0x0,0xc0,0xff,0x9f,0xff,0x86,0xff,0x55,0xff,0x53,0xff, +0x6b,0xff,0x67,0xff,0x7a,0xff,0xaf,0xff,0xe8,0xff,0x2f,0x0, +0x7d,0x0,0xbf,0x0,0xfc,0x0,0x44,0x1,0x9c,0x1,0xdd,0x1, +0x6,0x2,0x43,0x2,0x7e,0x2,0x98,0x2,0xac,0x2,0xb8,0x2, +0xaf,0x2,0xa6,0x2,0x8b,0x2,0x38,0x2,0xcd,0x1,0x80,0x1, +0x48,0x1,0xfe,0x0,0x9b,0x0,0x2e,0x0,0xcb,0xff,0x8d,0xff, +0x77,0xff,0x55,0xff,0x20,0xff,0x4,0xff,0xfd,0xfe,0x7,0xff, +0x2f,0xff,0x50,0xff,0x62,0xff,0x80,0xff,0xa4,0xff,0xd2,0xff, +0xfc,0xff,0x10,0x0,0x3e,0x0,0x81,0x0,0x8e,0x0,0x8a,0x0, +0xa1,0x0,0xa2,0x0,0x81,0x0,0x6d,0x0,0x63,0x0,0x40,0x0, +0xf,0x0,0xe4,0xff,0xb1,0xff,0x88,0xff,0x7c,0xff,0x67,0xff, +0x30,0xff,0xf4,0xfe,0xd1,0xfe,0xbd,0xfe,0xa2,0xfe,0x77,0xfe, +0x48,0xfe,0x2c,0xfe,0x29,0xfe,0x1f,0xfe,0xc,0xfe,0x2,0xfe, +0xf7,0xfd,0xf6,0xfd,0x5,0xfe,0xd,0xfe,0x21,0xfe,0x4b,0xfe, +0x6b,0xfe,0x78,0xfe,0x85,0xfe,0xaa,0xfe,0xd2,0xfe,0xe5,0xfe, +0x0,0xff,0x13,0xff,0x12,0xff,0x46,0xff,0x90,0xff,0xaa,0xff, +0xcf,0xff,0x6,0x0,0x2f,0x0,0x6e,0x0,0xb5,0x0,0xe2,0x0, +0x1b,0x1,0x5f,0x1,0x86,0x1,0xa9,0x1,0xe6,0x1,0x11,0x2, +0x1f,0x2,0x38,0x2,0x45,0x2,0x35,0x2,0x2b,0x2,0x12,0x2, +0xe6,0x1,0xc0,0x1,0x83,0x1,0x40,0x1,0x1c,0x1,0xf3,0x0, +0xdb,0x0,0xed,0x0,0xf4,0x0,0xfb,0x0,0x23,0x1,0x4a,0x1, +0x6c,0x1,0x9c,0x1,0xd4,0x1,0x9,0x2,0x28,0x2,0x50,0x2, +0x99,0x2,0xcb,0x2,0xe1,0x2,0xf4,0x2,0xf6,0x2,0x10,0x3, +0x35,0x3,0x18,0x3,0xf3,0x2,0xf7,0x2,0xd8,0x2,0xaa,0x2, +0x88,0x2,0x3a,0x2,0xd9,0x1,0x80,0x1,0x22,0x1,0xe5,0x0, +0xad,0x0,0x47,0x0,0xf0,0xff,0xc3,0xff,0x87,0xff,0x3a,0xff, +0x6,0xff,0xf2,0xfe,0xdc,0xfe,0xc4,0xfe,0xbe,0xfe,0xa7,0xfe, +0x7b,0xfe,0x72,0xfe,0x7d,0xfe,0x76,0xfe,0x62,0xfe,0x49,0xfe, +0x36,0xfe,0x31,0xfe,0x1f,0xfe,0xf4,0xfd,0xcc,0xfd,0xad,0xfd, +0x7f,0xfd,0x48,0xfd,0x14,0xfd,0xd5,0xfc,0x9f,0xfc,0x8a,0xfc, +0x75,0xfc,0x61,0xfc,0x5c,0xfc,0x54,0xfc,0x6e,0xfc,0xb2,0xfc, +0xe4,0xfc,0x10,0xfd,0x51,0xfd,0x8a,0xfd,0xba,0xfd,0xf7,0xfd, +0x3d,0xfe,0x86,0xfe,0xbf,0xfe,0xd4,0xfe,0xdf,0xfe,0xf6,0xfe, +0x9,0xff,0xc,0xff,0xfd,0xfe,0xdf,0xfe,0xb6,0xfe,0x82,0xfe, +0x49,0xfe,0x16,0xfe,0xe6,0xfd,0xb5,0xfd,0x94,0xfd,0x83,0xfd, +0x6c,0xfd,0x5b,0xfd,0x72,0xfd,0xad,0xfd,0xe4,0xfd,0x9,0xfe, +0x4b,0xfe,0xc6,0xfe,0x46,0xff,0xa2,0xff,0x5,0x0,0x7a,0x0, +0xe6,0x0,0x55,0x1,0xb2,0x1,0xf4,0x1,0x4e,0x2,0x9b,0x2, +0xb5,0x2,0xbb,0x2,0xae,0x2,0x9b,0x2,0x8c,0x2,0x49,0x2, +0xe1,0x1,0x85,0x1,0x29,0x1,0xe2,0x0,0xa3,0x0,0x52,0x0, +0x1f,0x0,0xed,0xff,0x9d,0xff,0x7c,0xff,0x76,0xff,0x49,0xff, +0x37,0xff,0x52,0xff,0x58,0xff,0x61,0xff,0x8b,0xff,0xb3,0xff, +0xdc,0xff,0x1b,0x0,0x53,0x0,0x87,0x0,0xc0,0x0,0xe1,0x0, +0xfa,0x0,0x15,0x1,0x17,0x1,0xb,0x1,0xf7,0x0,0xdc,0x0, +0xc2,0x0,0x9b,0x0,0x75,0x0,0x50,0x0,0xd,0x0,0xde,0xff, +0xcd,0xff,0x98,0xff,0x69,0xff,0x61,0xff,0x58,0xff,0x4d,0xff, +0x36,0xff,0xe,0xff,0xd,0xff,0x36,0xff,0x53,0xff,0x54,0xff, +0x4f,0xff,0x56,0xff,0x67,0xff,0x7c,0xff,0x78,0xff,0x4e,0xff, +0x41,0xff,0x4c,0xff,0x2b,0xff,0xa,0xff,0xa,0xff,0xfd,0xfe, +0xea,0xfe,0xf2,0xfe,0x6,0xff,0xf,0xff,0x12,0xff,0x23,0xff, +0x39,0xff,0x49,0xff,0x64,0xff,0x8b,0xff,0xad,0xff,0xc8,0xff, +0xed,0xff,0x29,0x0,0x65,0x0,0x84,0x0,0xa1,0x0,0xe0,0x0, +0x25,0x1,0x48,0x1,0x50,0x1,0x58,0x1,0x57,0x1,0x5d,0x1, +0x72,0x1,0x57,0x1,0x27,0x1,0x27,0x1,0x22,0x1,0xf3,0x0, +0xc6,0x0,0xa3,0x0,0x88,0x0,0x89,0x0,0x92,0x0,0x84,0x0, +0x6b,0x0,0x61,0x0,0x64,0x0,0x6e,0x0,0x80,0x0,0x7e,0x0, +0x78,0x0,0x8f,0x0,0x9a,0x0,0x94,0x0,0xb4,0x0,0xd9,0x0, +0xd1,0x0,0xc3,0x0,0xd6,0x0,0xf9,0x0,0xfd,0x0,0xde,0x0, +0xce,0x0,0xd2,0x0,0xca,0x0,0xb9,0x0,0xac,0x0,0xae,0x0, +0xc2,0x0,0xd2,0x0,0xd4,0x0,0xdb,0x0,0xf9,0x0,0x29,0x1, +0x44,0x1,0x3a,0x1,0x2e,0x1,0x1c,0x1,0xfa,0x0,0xda,0x0, +0xb3,0x0,0x7e,0x0,0x51,0x0,0x26,0x0,0xf1,0xff,0xbc,0xff, +0x8f,0xff,0x60,0xff,0x20,0xff,0xe7,0xfe,0xc3,0xfe,0x97,0xfe, +0x68,0xfe,0x45,0xfe,0x27,0xfe,0x1e,0xfe,0x1b,0xfe,0x10,0xfe, +0x1c,0xfe,0x35,0xfe,0x60,0xfe,0x9d,0xfe,0xba,0xfe,0xd4,0xfe, +0xf,0xff,0x43,0xff,0x7f,0xff,0xc6,0xff,0xf8,0xff,0x30,0x0, +0x68,0x0,0x8b,0x0,0xa3,0x0,0xa5,0x0,0xa2,0x0,0x9e,0x0, +0x7f,0x0,0x60,0x0,0x3e,0x0,0xfe,0xff,0xc1,0xff,0x92,0xff, +0x6b,0xff,0x4d,0xff,0x1f,0xff,0x3,0xff,0xa,0xff,0xb,0xff, +0x1d,0xff,0x40,0xff,0x44,0xff,0x57,0xff,0x91,0xff,0xb3,0xff, +0xc8,0xff,0xf3,0xff,0x11,0x0,0x22,0x0,0x5e,0x0,0xab,0x0, +0xda,0x0,0x0,0x1,0x27,0x1,0x51,0x1,0x80,0x1,0x94,0x1, +0x98,0x1,0x9e,0x1,0x83,0x1,0x4a,0x1,0xb,0x1,0xd3,0x0, +0xb0,0x0,0x7f,0x0,0x30,0x0,0x1,0x0,0xf9,0xff,0xee,0xff, +0xda,0xff,0xcd,0xff,0xcf,0xff,0xce,0xff,0xb5,0xff,0x92,0xff, +0x7c,0xff,0x77,0xff,0x75,0xff,0x66,0xff,0x56,0xff,0x54,0xff, +0x62,0xff,0x81,0xff,0xa7,0xff,0xce,0xff,0xe4,0xff,0xe6,0xff, +0xe3,0xff,0xd4,0xff,0xc0,0xff,0xac,0xff,0x7d,0xff,0x4b,0xff, +0x22,0xff,0xe2,0xfe,0xae,0xfe,0x91,0xfe,0x74,0xfe,0x68,0xfe, +0x59,0xfe,0x4b,0xfe,0x6f,0xfe,0x8f,0xfe,0x93,0xfe,0xa1,0xfe, +0x9b,0xfe,0x8b,0xfe,0x95,0xfe,0x8b,0xfe,0x68,0xfe,0x62,0xfe, +0x75,0xfe,0x7e,0xfe,0x7b,0xfe,0x84,0xfe,0x91,0xfe,0x98,0xfe, +0xaf,0xfe,0xc3,0xfe,0xbe,0xfe,0xbd,0xfe,0xbe,0xfe,0xa8,0xfe, +0x84,0xfe,0x63,0xfe,0x4b,0xfe,0x38,0xfe,0x18,0xfe,0xef,0xfd, +0xda,0xfd,0xe9,0xfd,0xfb,0xfd,0xf8,0xfd,0x11,0xfe,0x41,0xfe, +0x53,0xfe,0x6d,0xfe,0xb2,0xfe,0xf8,0xfe,0x3d,0xff,0x80,0xff, +0xa4,0xff,0xd4,0xff,0x2c,0x0,0x77,0x0,0x9d,0x0,0xbb,0x0, +0xd6,0x0,0xef,0x0,0x6,0x1,0x7,0x1,0xef,0x0,0xe0,0x0, +0xd5,0x0,0xb0,0x0,0x91,0x0,0x7c,0x0,0x3b,0x0,0xe8,0xff, +0xbd,0xff,0xa4,0xff,0x89,0xff,0x64,0xff,0x34,0xff,0x10,0xff, +0xf5,0xfe,0xd9,0xfe,0xd5,0xfe,0xe1,0xfe,0xe9,0xfe,0xf9,0xfe, +0x26,0xff,0x69,0xff,0xa2,0xff,0xd6,0xff,0x1c,0x0,0x59,0x0, +0x8c,0x0,0xc4,0x0,0xe3,0x0,0xec,0x0,0xfc,0x0,0x10,0x1, +0x1a,0x1,0x15,0x1,0x8,0x1,0xf4,0x0,0xc7,0x0,0x9c,0x0, +0x7d,0x0,0x49,0x0,0xfd,0xff,0xb9,0xff,0x89,0xff,0x4e,0xff, +0xf5,0xfe,0xb5,0xfe,0x96,0xfe,0x65,0xfe,0x41,0xfe,0x3a,0xfe, +0x31,0xfe,0x3c,0xfe,0x66,0xfe,0x8e,0xfe,0xa5,0xfe,0xbb,0xfe, +0xe0,0xfe,0x8,0xff,0x2e,0xff,0x53,0xff,0x60,0xff,0x6c,0xff, +0x93,0xff,0xa8,0xff,0xa9,0xff,0xaa,0xff,0x9e,0xff,0xae,0xff, +0xcd,0xff,0xc3,0xff,0xb8,0xff,0xbf,0xff,0xb1,0xff,0x9d,0xff, +0x96,0xff,0x92,0xff,0x79,0xff,0x46,0xff,0x1e,0xff,0x8,0xff, +0xed,0xfe,0xd9,0xfe,0xcf,0xfe,0xc5,0xfe,0xc0,0xfe,0xbf,0xfe, +0xc8,0xfe,0xda,0xfe,0xe4,0xfe,0xed,0xfe,0xff,0xfe,0x6,0xff, +0x5,0xff,0xe,0xff,0xe,0xff,0x6,0xff,0x1e,0xff,0x46,0xff, +0x50,0xff,0x4f,0xff,0x57,0xff,0x61,0xff,0x82,0xff,0xb1,0xff, +0xbf,0xff,0xb8,0xff,0xc8,0xff,0xe6,0xff,0xf8,0xff,0x12,0x0, +0x3f,0x0,0x5c,0x0,0x5b,0x0,0x51,0x0,0x44,0x0,0x2f,0x0, +0x1f,0x0,0x1e,0x0,0x8,0x0,0xd2,0xff,0xa0,0xff,0x76,0xff, +0x47,0xff,0x23,0xff,0x1,0xff,0xe2,0xfe,0xce,0xfe,0xab,0xfe, +0x89,0xfe,0x7b,0xfe,0x73,0xfe,0x77,0xfe,0x80,0xfe,0x7c,0xfe, +0x70,0xfe,0x60,0xfe,0x73,0xfe,0xb0,0xfe,0xd3,0xfe,0xec,0xfe, +0x2a,0xff,0x53,0xff,0x5b,0xff,0x7a,0xff,0xaf,0xff,0xed,0xff, +0x21,0x0,0x35,0x0,0x30,0x0,0x29,0x0,0x2f,0x0,0x32,0x0, +0x24,0x0,0xb,0x0,0xed,0xff,0xca,0xff,0xaa,0xff,0x8f,0xff, +0x6e,0xff,0x44,0xff,0x25,0xff,0x9,0xff,0xda,0xfe,0xba,0xfe, +0xb2,0xfe,0xa0,0xfe,0x8b,0xfe,0x87,0xfe,0x9c,0xfe,0xc6,0xfe, +0xe6,0xfe,0x7,0xff,0x3e,0xff,0x70,0xff,0xa4,0xff,0xe0,0xff, +0x8,0x0,0x26,0x0,0x49,0x0,0x65,0x0,0x7b,0x0,0x8f,0x0, +0xa8,0x0,0xb9,0x0,0xbb,0x0,0xc5,0x0,0xd2,0x0,0xee,0x0, +0x24,0x1,0x23,0x1,0xec,0x0,0xda,0x0,0xd2,0x0,0xb1,0x0, +0x8e,0x0,0x5c,0x0,0x2b,0x0,0x13,0x0,0xf1,0xff,0xc4,0xff, +0xa8,0xff,0x8f,0xff,0x6e,0xff,0x4d,0xff,0x50,0xff,0x7c,0xff, +0x94,0xff,0xa1,0xff,0xd0,0xff,0xff,0xff,0x2e,0x0,0x70,0x0, +0xa7,0x0,0xea,0x0,0x4a,0x1,0x98,0x1,0xdd,0x1,0x2a,0x2, +0x65,0x2,0x9e,0x2,0xd7,0x2,0xf3,0x2,0x4,0x3,0xf,0x3, +0x8,0x3,0xfa,0x2,0xd8,0x2,0xa1,0x2,0x69,0x2,0x33,0x2, +0x3,0x2,0xce,0x1,0x7c,0x1,0x23,0x1,0xd3,0x0,0x6e,0x0, +0x10,0x0,0xdf,0xff,0xa6,0xff,0x51,0xff,0x17,0xff,0xfc,0xfe, +0xf3,0xfe,0xff,0xfe,0x4,0xff,0x13,0xff,0x4a,0xff,0x79,0xff, +0xa3,0xff,0xe6,0xff,0x2d,0x0,0x76,0x0,0xb8,0x0,0xd6,0x0, +0xf7,0x0,0x29,0x1,0x51,0x1,0x6f,0x1,0x77,0x1,0x6a,0x1, +0x5c,0x1,0x47,0x1,0x26,0x1,0xf5,0x0,0xba,0x0,0x93,0x0, +0x74,0x0,0x45,0x0,0x16,0x0,0xf5,0xff,0xd8,0xff,0xb2,0xff, +0x99,0xff,0x9a,0xff,0x8d,0xff,0x72,0xff,0x75,0xff,0x85,0xff, +0x8b,0xff,0x89,0xff,0x8b,0xff,0xa9,0xff,0xca,0xff,0xd0,0xff, +0xdc,0xff,0xf5,0xff,0xb,0x0,0x1c,0x0,0x27,0x0,0x35,0x0, +0x44,0x0,0x4b,0x0,0x54,0x0,0x59,0x0,0x57,0x0,0x5a,0x0, +0x5e,0x0,0x55,0x0,0x40,0x0,0x28,0x0,0x15,0x0,0x13,0x0, +0x23,0x0,0x2f,0x0,0x37,0x0,0x51,0x0,0x60,0x0,0x6a,0x0, +0x8b,0x0,0x92,0x0,0x97,0x0,0xb9,0x0,0xa9,0x0,0x80,0x0, +0x81,0x0,0x6e,0x0,0x4a,0x0,0x47,0x0,0x33,0x0,0xa,0x0, +0xff,0xff,0x2,0x0,0xed,0xff,0xd7,0xff,0xde,0xff,0xe6,0xff, +0xe3,0xff,0xf3,0xff,0x7,0x0,0x20,0x0,0x4c,0x0,0x5c,0x0, +0x59,0x0,0x73,0x0,0x8d,0x0,0x9f,0x0,0xba,0x0,0xbc,0x0, +0xb4,0x0,0xb7,0x0,0xa7,0x0,0x93,0x0,0x8a,0x0,0x5a,0x0, +0x11,0x0,0xd7,0xff,0x92,0xff,0x38,0xff,0xd9,0xfe,0x86,0xfe, +0x52,0xfe,0x1f,0xfe,0xdb,0xfd,0x9f,0xfd,0x64,0xfd,0x37,0xfd, +0x35,0xfd,0x36,0xfd,0x27,0xfd,0x2e,0xfd,0x45,0xfd,0x5e,0xfd, +0x71,0xfd,0x80,0xfd,0xaa,0xfd,0xe8,0xfd,0x22,0xfe,0x5f,0xfe, +0x97,0xfe,0xc3,0xfe,0xef,0xfe,0x28,0xff,0x60,0xff,0x70,0xff, +0x64,0xff,0x79,0xff,0x95,0xff,0x88,0xff,0x61,0xff,0x3c,0xff, +0x1c,0xff,0xee,0xfe,0xbc,0xfe,0xa4,0xfe,0x90,0xfe,0x6b,0xfe, +0x54,0xfe,0x3d,0xfe,0x11,0xfe,0xed,0xfd,0xe1,0xfd,0xe2,0xfd, +0xe0,0xfd,0xd7,0xfd,0xd7,0xfd,0xec,0xfd,0xd,0xfe,0x27,0xfe, +0x3e,0xfe,0x66,0xfe,0xa0,0xfe,0xd9,0xfe,0xff,0xfe,0x1a,0xff, +0x44,0xff,0x66,0xff,0x71,0xff,0x93,0xff,0xcc,0xff,0xf6,0xff, +0x1c,0x0,0x44,0x0,0x6c,0x0,0xa1,0x0,0xd4,0x0,0xee,0x0, +0xf4,0x0,0xf9,0x0,0xf5,0x0,0xdf,0x0,0xca,0x0,0xa7,0x0, +0x73,0x0,0x5c,0x0,0x3e,0x0,0xf3,0xff,0xb5,0xff,0x8f,0xff, +0x61,0xff,0x3c,0xff,0x17,0xff,0xe9,0xfe,0xc7,0xfe,0x95,0xfe, +0x54,0xfe,0x3a,0xfe,0x33,0xfe,0x1d,0xfe,0x1a,0xfe,0x33,0xfe, +0x51,0xfe,0x7d,0xfe,0xb6,0xfe,0xf4,0xfe,0x43,0xff,0x97,0xff, +0xdc,0xff,0x1a,0x0,0x52,0x0,0x8b,0x0,0xcb,0x0,0xf2,0x0, +0x9,0x1,0x20,0x1,0x2f,0x1,0x55,0x1,0x7e,0x1,0x7e,0x1, +0x83,0x1,0x83,0x1,0x55,0x1,0x29,0x1,0x0,0x1,0xbc,0x0, +0x76,0x0,0x23,0x0,0xcf,0xff,0x93,0xff,0x49,0xff,0x9,0xff, +0xfe,0xfe,0xe7,0xfe,0xbb,0xfe,0xb2,0xfe,0xbc,0xfe,0xc4,0xfe, +0xd4,0xfe,0xea,0xfe,0xa,0xff,0x34,0xff,0x64,0xff,0xa5,0xff, +0xeb,0xff,0x18,0x0,0x4e,0x0,0x9c,0x0,0xcf,0x0,0xe9,0x0, +0x1a,0x1,0x43,0x1,0x66,0x1,0xa2,0x1,0xb0,0x1,0x91,0x1, +0x97,0x1,0x95,0x1,0x77,0x1,0x81,0x1,0x8c,0x1,0x75,0x1, +0x51,0x1,0x19,0x1,0xf5,0x0,0xe7,0x0,0xb2,0x0,0x75,0x0, +0x3f,0x0,0xf6,0xff,0xc8,0xff,0xbb,0xff,0x9a,0xff,0x67,0xff, +0x4b,0xff,0x4b,0xff,0x3e,0xff,0x2c,0xff,0x40,0xff,0x60,0xff, +0x81,0xff,0xa6,0xff,0xad,0xff,0xbe,0xff,0xf4,0xff,0x28,0x0, +0x55,0x0,0x65,0x0,0x6f,0x0,0xaa,0x0,0xd4,0x0,0xe0,0x0, +0x16,0x1,0x49,0x1,0x60,0x1,0x69,0x1,0x60,0x1,0x6a,0x1, +0x70,0x1,0x4d,0x1,0x1d,0x1,0xe0,0x0,0x9b,0x0,0x56,0x0, +0xc,0x0,0xd9,0xff,0x9a,0xff,0x49,0xff,0x19,0xff,0xd8,0xfe, +0x8f,0xfe,0x69,0xfe,0x33,0xfe,0x18,0xfe,0x1d,0xfe,0xf4,0xfd, +0xf0,0xfd,0x16,0xfe,0x6,0xfe,0x10,0xfe,0x3e,0xfe,0x63,0xfe, +0xad,0xfe,0xf0,0xfe,0x19,0xff,0x63,0xff,0xaf,0xff,0xe4,0xff, +0x26,0x0,0x65,0x0,0x82,0x0,0x93,0x0,0xb5,0x0,0xba,0x0, +0x9a,0x0,0x95,0x0,0x8a,0x0,0x68,0x0,0x57,0x0,0x26,0x0, +0xe2,0xff,0xc4,0xff,0x96,0xff,0x5c,0xff,0x37,0xff,0x6,0xff, +0xdd,0xfe,0xc8,0xfe,0xae,0xfe,0x99,0xfe,0x89,0xfe,0x84,0xfe, +0x91,0xfe,0xa0,0xfe,0xc3,0xfe,0xf5,0xfe,0x27,0xff,0x60,0xff, +0x94,0xff,0xd0,0xff,0x21,0x0,0x5d,0x0,0x83,0x0,0xb1,0x0, +0xde,0x0,0xfa,0x0,0xf9,0x0,0xf2,0x0,0xff,0x0,0xff,0x0, +0xe3,0x0,0xcc,0x0,0xc9,0x0,0xbf,0x0,0xa9,0x0,0xa0,0x0, +0xa9,0x0,0xae,0x0,0xb2,0x0,0xaa,0x0,0x99,0x0,0x97,0x0, +0x94,0x0,0x97,0x0,0xa9,0x0,0xa2,0x0,0x97,0x0,0xb3,0x0, +0xce,0x0,0xd8,0x0,0xe8,0x0,0xfd,0x0,0x7,0x1,0x2,0x1, +0xff,0x0,0x8,0x1,0x7,0x1,0xf4,0x0,0xd2,0x0,0xbd,0x0, +0xba,0x0,0xa6,0x0,0x91,0x0,0x8e,0x0,0x78,0x0,0x5f,0x0, +0x57,0x0,0x4b,0x0,0x51,0x0,0x5e,0x0,0x4a,0x0,0x38,0x0, +0x31,0x0,0x26,0x0,0x2f,0x0,0x3d,0x0,0x3e,0x0,0x4b,0x0, +0x4a,0x0,0x2c,0x0,0x10,0x0,0xfb,0xff,0xe0,0xff,0xb9,0xff, +0x76,0xff,0x25,0xff,0xe8,0xfe,0xbc,0xfe,0x86,0xfe,0x44,0xfe, +0x17,0xfe,0x4,0xfe,0xef,0xfd,0xe0,0xfd,0xe6,0xfd,0xf9,0xfd, +0x23,0xfe,0x57,0xfe,0x6c,0xfe,0x89,0xfe,0xd5,0xfe,0x27,0xff, +0x69,0xff,0xa8,0xff,0xe1,0xff,0x27,0x0,0x80,0x0,0xc7,0x0, +0xf0,0x0,0x1a,0x1,0x4c,0x1,0x5f,0x1,0x46,0x1,0x37,0x1, +0x2f,0x1,0xfe,0x0,0xca,0x0,0xa8,0x0,0x65,0x0,0x19,0x0, +0xe8,0xff,0xae,0xff,0x77,0xff,0x49,0xff,0xe,0xff,0xe6,0xfe, +0xdf,0xfe,0xe2,0xfe,0xfd,0xfe,0x23,0xff,0x3e,0xff,0x6f,0xff, +0xc4,0xff,0x23,0x0,0x80,0x0,0xdb,0x0,0x34,0x1,0x9b,0x1, +0xc,0x2,0x58,0x2,0x72,0x2,0x89,0x2,0xa6,0x2,0xb8,0x2, +0xb7,0x2,0x99,0x2,0x79,0x2,0x63,0x2,0x24,0x2,0xc6,0x1, +0x7b,0x1,0x2d,0x1,0xd2,0x0,0x77,0x0,0x1a,0x0,0xc4,0xff, +0x74,0xff,0x26,0xff,0xea,0xfe,0xc5,0xfe,0xb6,0xfe,0xaa,0xfe, +0x9a,0xfe,0xa9,0xfe,0xcc,0xfe,0xed,0xfe,0x21,0xff,0x5a,0xff, +0x8b,0xff,0xbf,0xff,0xf3,0xff,0x2d,0x0,0x4b,0x0,0x47,0x0, +0x60,0x0,0x85,0x0,0x8a,0x0,0x88,0x0,0x80,0x0,0x6e,0x0, +0x5e,0x0,0x3f,0x0,0x18,0x0,0xfc,0xff,0xdf,0xff,0xb3,0xff, +0x73,0xff,0x40,0xff,0x22,0xff,0xfd,0xfe,0xe1,0xfe,0xd6,0xfe, +0xca,0xfe,0xc4,0xfe,0xb5,0xfe,0xaa,0xfe,0xb0,0xfe,0xac,0xfe, +0xb8,0xfe,0xd6,0xfe,0xd7,0xfe,0xd8,0xfe,0xdb,0xfe,0xd2,0xfe, +0xe8,0xfe,0x4,0xff,0x10,0xff,0x22,0xff,0x14,0xff,0xfe,0xfe, +0x1d,0xff,0x49,0xff,0x5e,0xff,0x71,0xff,0x8d,0xff,0xa2,0xff, +0xa4,0xff,0xa9,0xff,0xb8,0xff,0xb9,0xff,0xc7,0xff,0xf2,0xff, +0x19,0x0,0x2c,0x0,0x3d,0x0,0x60,0x0,0x81,0x0,0x8b,0x0, +0x8d,0x0,0x8d,0x0,0x99,0x0,0xb1,0x0,0xa2,0x0,0x7b,0x0, +0x5b,0x0,0x22,0x0,0xf1,0xff,0xdd,0xff,0xbe,0xff,0xad,0xff, +0xa2,0xff,0x79,0xff,0x5b,0xff,0x54,0xff,0x49,0xff,0x4c,0xff, +0x5d,0xff,0x71,0xff,0x8c,0xff,0xa3,0xff,0xbd,0xff,0xf0,0xff, +0x33,0x0,0x68,0x0,0x89,0x0,0xb1,0x0,0xeb,0x0,0x26,0x1, +0x5a,0x1,0x84,0x1,0x9f,0x1,0xaa,0x1,0xa5,0x1,0x9c,0x1, +0x8e,0x1,0x63,0x1,0x27,0x1,0xfd,0x0,0xd2,0x0,0x96,0x0, +0x5a,0x0,0x1f,0x0,0xec,0xff,0xc4,0xff,0x8d,0xff,0x59,0xff, +0x38,0xff,0x11,0xff,0xf6,0xfe,0xf3,0xfe,0xf7,0xfe,0x0,0xff, +0xfd,0xfe,0x2,0xff,0x42,0xff,0x88,0xff,0xae,0xff,0xd5,0xff, +0xef,0xff,0x17,0x0,0x65,0x0,0x95,0x0,0xae,0x0,0xd9,0x0, +0xf2,0x0,0xf9,0x0,0xfe,0x0,0xf3,0x0,0xd4,0x0,0xaf,0x0, +0x95,0x0,0x77,0x0,0x49,0x0,0x24,0x0,0xf9,0xff,0xc8,0xff, +0xbc,0xff,0xae,0xff,0x8a,0xff,0x81,0xff,0x80,0xff,0x73,0xff, +0x72,0xff,0x79,0xff,0x94,0xff,0xbb,0xff,0xcf,0xff,0xef,0xff, +0x1c,0x0,0x35,0x0,0x4a,0x0,0x65,0x0,0x7a,0x0,0x87,0x0, +0x97,0x0,0xb0,0x0,0xb8,0x0,0xa1,0x0,0x91,0x0,0x85,0x0, +0x66,0x0,0x4f,0x0,0x40,0x0,0x27,0x0,0x1a,0x0,0xb,0x0, +0xed,0xff,0xd7,0xff,0xbe,0xff,0xb2,0xff,0xcb,0xff,0xd8,0xff, +0xd2,0xff,0xe7,0xff,0xf2,0xff,0xe1,0xff,0xe4,0xff,0xf9,0xff, +0x10,0x0,0x2e,0x0,0x4c,0x0,0x67,0x0,0x7c,0x0,0x7f,0x0, +0x7c,0x0,0x7f,0x0,0x7a,0x0,0x62,0x0,0x3d,0x0,0x19,0x0, +0xec,0xff,0xb8,0xff,0x96,0xff,0x75,0xff,0x3f,0xff,0xd,0xff, +0xed,0xfe,0xd4,0xfe,0xb3,0xfe,0x8a,0xfe,0x6a,0xfe,0x5b,0xfe, +0x57,0xfe,0x60,0xfe,0x6e,0xfe,0x7e,0xfe,0x87,0xfe,0x86,0xfe, +0xa6,0xfe,0xe4,0xfe,0x9,0xff,0x19,0xff,0x39,0xff,0x63,0xff, +0x8b,0xff,0xab,0xff,0xc5,0xff,0xe9,0xff,0xff,0xff,0xf8,0xff, +0xec,0xff,0xd3,0xff,0xb0,0xff,0xa6,0xff,0x99,0xff,0x77,0xff, +0x64,0xff,0x50,0xff,0x2d,0xff,0x16,0xff,0x0,0xff,0xe8,0xfe, +0xdb,0xfe,0xc7,0xfe,0xc1,0xfe,0xd4,0xfe,0xde,0xfe,0xea,0xfe, +0x2,0xff,0x12,0xff,0x28,0xff,0x52,0xff,0x88,0xff,0xb7,0xff, +0xcd,0xff,0xe8,0xff,0xa,0x0,0x20,0x0,0x46,0x0,0x76,0x0, +0x7d,0x0,0x74,0x0,0x7b,0x0,0x83,0x0,0x87,0x0,0x95,0x0, +0x98,0x0,0x82,0x0,0x81,0x0,0x96,0x0,0x83,0x0,0x5d,0x0, +0x50,0x0,0x40,0x0,0x1f,0x0,0x1,0x0,0xe8,0xff,0xda,0xff, +0xce,0xff,0xba,0xff,0xac,0xff,0xa5,0xff,0x98,0xff,0x8f,0xff, +0x85,0xff,0x68,0xff,0x4e,0xff,0x41,0xff,0x20,0xff,0xf7,0xfe, +0xe5,0xfe,0xd2,0xfe,0xb7,0xfe,0xa3,0xfe,0x94,0xfe,0x97,0xfe, +0xa3,0xfe,0x9d,0xfe,0xa0,0xfe,0xa8,0xfe,0xad,0xfe,0xc5,0xfe, +0xd0,0xfe,0xc0,0xfe,0xb8,0xfe,0xc0,0xfe,0xd7,0xfe,0xe9,0xfe, +0xef,0xfe,0x7,0xff,0x1b,0xff,0x22,0xff,0x34,0xff,0x33,0xff, +0x28,0xff,0x2a,0xff,0x23,0xff,0x1f,0xff,0x14,0xff,0xe6,0xfe, +0xcd,0xfe,0xbe,0xfe,0x8d,0xfe,0x6a,0xfe,0x59,0xfe,0x44,0xfe, +0x47,0xfe,0x47,0xfe,0x3d,0xfe,0x4f,0xfe,0x6e,0xfe,0x8c,0xfe, +0x9f,0xfe,0xa2,0xfe,0xb8,0xfe,0xe4,0xfe,0xa,0xff,0x35,0xff, +0x5e,0xff,0x80,0xff,0xa8,0xff,0xc4,0xff,0xd5,0xff,0xf6,0xff, +0x15,0x0,0x2b,0x0,0x4b,0x0,0x65,0x0,0x6f,0x0,0x7c,0x0, +0x81,0x0,0x7a,0x0,0x77,0x0,0x6a,0x0,0x4e,0x0,0x42,0x0, +0x39,0x0,0x1d,0x0,0x15,0x0,0x11,0x0,0xfb,0xff,0xfd,0xff, +0x3,0x0,0xf0,0xff,0xff,0xff,0x16,0x0,0x1a,0x0,0x3b,0x0, +0x59,0x0,0x63,0x0,0x80,0x0,0x8e,0x0,0x9d,0x0,0xc0,0x0, +0xbc,0x0,0xad,0x0,0xa6,0x0,0x95,0x0,0x9b,0x0,0x9a,0x0, +0x71,0x0,0x5a,0x0,0x45,0x0,0x27,0x0,0x17,0x0,0xf3,0xff, +0xc9,0xff,0xb0,0xff,0x81,0xff,0x5a,0xff,0x42,0xff,0x11,0xff, +0xe5,0xfe,0xce,0xfe,0xb0,0xfe,0x95,0xfe,0x8d,0xfe,0x98,0xfe, +0xa1,0xfe,0x90,0xfe,0x82,0xfe,0x91,0xfe,0xaa,0xfe,0xb2,0xfe, +0xb4,0xfe,0xbe,0xfe,0xc1,0xfe,0xbc,0xfe,0xbd,0xfe,0xc1,0xfe, +0xd5,0xfe,0xf4,0xfe,0xf5,0xfe,0xee,0xfe,0xfc,0xfe,0xe,0xff, +0x1a,0xff,0x16,0xff,0x10,0xff,0x8,0xff,0xea,0xfe,0xdd,0xfe, +0xee,0xfe,0xfd,0xfe,0xe,0xff,0x1f,0xff,0x30,0xff,0x53,0xff, +0x74,0xff,0x94,0xff,0xbb,0xff,0xd0,0xff,0xda,0xff,0xe7,0xff, +0xfd,0xff,0x22,0x0,0x2d,0x0,0x29,0x0,0x39,0x0,0x3d,0x0, +0x36,0x0,0x39,0x0,0x37,0x0,0x46,0x0,0x63,0x0,0x78,0x0, +0x8b,0x0,0x94,0x0,0x9c,0x0,0xb8,0x0,0xd4,0x0,0xee,0x0, +0xc,0x1,0x29,0x1,0x57,0x1,0x82,0x1,0x9d,0x1,0xcc,0x1, +0x3,0x2,0x20,0x2,0x39,0x2,0x49,0x2,0x3a,0x2,0x2d,0x2, +0x20,0x2,0xee,0x1,0xb0,0x1,0x89,0x1,0x55,0x1,0x8,0x1, +0xc2,0x0,0x8a,0x0,0x56,0x0,0x23,0x0,0xf7,0xff,0xd4,0xff, +0xb6,0xff,0xaf,0xff,0xb5,0xff,0xa8,0xff,0xb3,0xff,0xe0,0xff, +0xfa,0xff,0x1a,0x0,0x4a,0x0,0x6f,0x0,0xa4,0x0,0xdf,0x0, +0xfa,0x0,0x18,0x1,0x42,0x1,0x60,0x1,0x69,0x1,0x50,0x1, +0x24,0x1,0xfe,0x0,0xde,0x0,0xb7,0x0,0x6f,0x0,0x16,0x0, +0xcf,0xff,0x7a,0xff,0x13,0xff,0xd2,0xfe,0x9b,0xfe,0x5e,0xfe, +0x44,0xfe,0x2a,0xfe,0xf6,0xfd,0xe2,0xfd,0xf5,0xfd,0x11,0xfe, +0x2e,0xfe,0x54,0xfe,0x8e,0xfe,0xcb,0xfe,0xfb,0xfe,0x37,0xff, +0x75,0xff,0xac,0xff,0xf5,0xff,0x35,0x0,0x5b,0x0,0x7c,0x0, +0x95,0x0,0xaf,0x0,0xcd,0x0,0xd0,0x0,0xb9,0x0,0xa5,0x0, +0x95,0x0,0x87,0x0,0x6b,0x0,0x44,0x0,0x2b,0x0,0x12,0x0, +0xdf,0xff,0xbc,0xff,0xc5,0xff,0xd3,0xff,0xd6,0xff,0xe6,0xff, +0xeb,0xff,0xe4,0xff,0x5,0x0,0x3d,0x0,0x5f,0x0,0x77,0x0, +0x91,0x0,0xaf,0x0,0xd6,0x0,0xfa,0x0,0x19,0x1,0x3c,0x1, +0x58,0x1,0x5c,0x1,0x50,0x1,0x43,0x1,0x2e,0x1,0x20,0x1, +0x2a,0x1,0x1d,0x1,0xf6,0x0,0xe9,0x0,0xeb,0x0,0xf2,0x0, +0xff,0x0,0xfa,0x0,0xfa,0x0,0xb,0x1,0x8,0x1,0xff,0x0, +0x5,0x1,0x16,0x1,0x25,0x1,0x13,0x1,0xee,0x0,0xda,0x0, +0xc6,0x0,0xae,0x0,0x95,0x0,0x6f,0x0,0x4a,0x0,0x1e,0x0, +0xdd,0xff,0xa5,0xff,0x76,0xff,0x43,0xff,0x20,0xff,0xa,0xff, +0xea,0xfe,0xc1,0xfe,0xa9,0xfe,0xb7,0xfe,0xd3,0xfe,0xde,0xfe, +0xe1,0xfe,0xf0,0xfe,0xf,0xff,0x34,0xff,0x59,0xff,0x81,0xff, +0xa3,0xff,0xbc,0xff,0xd9,0xff,0xf7,0xff,0xe,0x0,0x24,0x0, +0x3b,0x0,0x53,0x0,0x61,0x0,0x51,0x0,0x34,0x0,0x1b,0x0, +0xfd,0xff,0xd3,0xff,0x84,0xff,0x1c,0xff,0xde,0xfe,0xaa,0xfe, +0x54,0xfe,0x19,0xfe,0xf7,0xfd,0xcd,0xfd,0xc7,0xfd,0xc8,0xfd, +0xc1,0xfd,0xe6,0xfd,0x13,0xfe,0x32,0xfe,0x5e,0xfe,0x7c,0xfe, +0xa2,0xfe,0xd9,0xfe,0xf6,0xfe,0x20,0xff,0x6e,0xff,0xb3,0xff, +0xe6,0xff,0x5,0x0,0x1c,0x0,0x41,0x0,0x6b,0x0,0x96,0x0, +0xa5,0x0,0x97,0x0,0x9b,0x0,0x9d,0x0,0x8c,0x0,0x7c,0x0, +0x4d,0x0,0x27,0x0,0x2b,0x0,0x16,0x0,0xf5,0xff,0xf7,0xff, +0x2,0x0,0xb,0x0,0x5,0x0,0xf1,0xff,0xed,0xff,0xf5,0xff, +0xf6,0xff,0xed,0xff,0xdf,0xff,0xdc,0xff,0xe6,0xff,0xf9,0xff, +0xa,0x0,0xe,0x0,0x1f,0x0,0x40,0x0,0x4f,0x0,0x4d,0x0, +0x52,0x0,0x5d,0x0,0x5a,0x0,0x50,0x0,0x53,0x0,0x55,0x0, +0x56,0x0,0x54,0x0,0x3a,0x0,0x35,0x0,0x57,0x0,0x63,0x0, +0x6a,0x0,0x89,0x0,0xa5,0x0,0xc1,0x0,0xcd,0x0,0xbf,0x0, +0xb9,0x0,0xaa,0x0,0x9a,0x0,0x9e,0x0,0x86,0x0,0x5e,0x0, +0x4d,0x0,0x33,0x0,0xe,0x0,0xf2,0xff,0xd7,0xff,0xb7,0xff, +0x82,0xff,0x45,0xff,0x1b,0xff,0xfd,0xfe,0xe8,0xfe,0xd2,0xfe, +0xa7,0xfe,0x8b,0xfe,0x98,0xfe,0xac,0xfe,0xbf,0xfe,0xe7,0xfe, +0x14,0xff,0x38,0xff,0x5e,0xff,0x87,0xff,0xb1,0xff,0xde,0xff, +0xf9,0xff,0xb,0x0,0x28,0x0,0x37,0x0,0x35,0x0,0x43,0x0, +0x5b,0x0,0x5c,0x0,0x44,0x0,0x2a,0x0,0x17,0x0,0x1,0x0, +0xe7,0xff,0xbf,0xff,0x8f,0xff,0x71,0xff,0x4f,0xff,0x14,0xff, +0xdd,0xfe,0xb9,0xfe,0xa4,0xfe,0xa5,0xfe,0xb3,0xfe,0xc1,0xfe, +0xc1,0xfe,0xc9,0xfe,0xf2,0xfe,0x1a,0xff,0x3b,0xff,0x6b,0xff, +0x8d,0xff,0xa2,0xff,0xc1,0xff,0xe3,0xff,0xa,0x0,0x29,0x0, +0x44,0x0,0x72,0x0,0x9d,0x0,0xb2,0x0,0xc3,0x0,0xd7,0x0, +0xef,0x0,0xf7,0x0,0xdf,0x0,0xc2,0x0,0xac,0x0,0x96,0x0, +0x78,0x0,0x4c,0x0,0x2b,0x0,0x17,0x0,0xf7,0xff,0xe6,0xff, +0xea,0xff,0xdb,0xff,0xbf,0xff,0xac,0xff,0x9a,0xff,0x79,0xff, +0x5c,0xff,0x5a,0xff,0x57,0xff,0x4d,0xff,0x59,0xff,0x63,0xff, +0x5f,0xff,0x73,0xff,0x93,0xff,0xaf,0xff,0xc5,0xff,0xc9,0xff, +0xd2,0xff,0xe7,0xff,0xee,0xff,0xf7,0xff,0x7,0x0,0x1,0x0, +0xf9,0xff,0xff,0xff,0x10,0x0,0x1c,0x0,0x17,0x0,0x23,0x0, +0x43,0x0,0x44,0x0,0x3e,0x0,0x4e,0x0,0x56,0x0,0x54,0x0, +0x4d,0x0,0x2e,0x0,0x9,0x0,0xf1,0xff,0xea,0xff,0xef,0xff, +0xea,0xff,0xdf,0xff,0xdd,0xff,0xeb,0xff,0x5,0x0,0x1,0x0, +0xe9,0xff,0xe5,0xff,0xe0,0xff,0xdd,0xff,0xea,0xff,0xe0,0xff, +0xe4,0xff,0x12,0x0,0x24,0x0,0x2e,0x0,0x5a,0x0,0x75,0x0, +0x80,0x0,0x90,0x0,0x97,0x0,0x9e,0x0,0xa0,0x0,0x8c,0x0, +0x71,0x0,0x53,0x0,0x2e,0x0,0xf,0x0,0xfa,0xff,0xf3,0xff, +0xf0,0xff,0xe3,0xff,0xd2,0xff,0xc0,0xff,0xb4,0xff,0xaf,0xff, +0x9e,0xff,0x81,0xff,0x78,0xff,0x7e,0xff,0x7c,0xff,0x80,0xff, +0x96,0xff,0xa7,0xff,0xad,0xff,0xbd,0xff,0xcf,0xff,0xdd,0xff, +0xea,0xff,0xfe,0xff,0x13,0x0,0x16,0x0,0x14,0x0,0x21,0x0, +0x2a,0x0,0x2e,0x0,0x3e,0x0,0x42,0x0,0x38,0x0,0x38,0x0, +0x3f,0x0,0x49,0x0,0x4d,0x0,0x40,0x0,0x33,0x0,0x33,0x0, +0x32,0x0,0x24,0x0,0x17,0x0,0x12,0x0,0xe,0x0,0x16,0x0, +0x1b,0x0,0x18,0x0,0x25,0x0,0x32,0x0,0x36,0x0,0x48,0x0, +0x55,0x0,0x56,0x0,0x63,0x0,0x60,0x0,0x54,0x0,0x55,0x0, +0x43,0x0,0x2e,0x0,0x2e,0x0,0x1e,0x0,0x3,0x0,0xfe,0xff, +0xfd,0xff,0x1,0x0,0x1,0x0,0xe6,0xff,0xc9,0xff,0xbd,0xff, +0xa4,0xff,0x8a,0xff,0x7c,0xff,0x64,0xff,0x4b,0xff,0x3b,0xff, +0x26,0xff,0x1a,0xff,0x1a,0xff,0x14,0xff,0x13,0xff,0x1e,0xff, +0x2b,0xff,0x3d,0xff,0x4c,0xff,0x58,0xff,0x5f,0xff,0x5c,0xff, +0x64,0xff,0x71,0xff,0x75,0xff,0x8b,0xff,0xa8,0xff,0xb8,0xff, +0xc9,0xff,0xd0,0xff,0xd6,0xff,0xe6,0xff,0xed,0xff,0xed,0xff, +0xe0,0xff,0xc9,0xff,0xbd,0xff,0xa7,0xff,0x84,0xff,0x7a,0xff, +0x78,0xff,0x68,0xff,0x57,0xff,0x57,0xff,0x66,0xff,0x6a,0xff, +0x73,0xff,0x92,0xff,0x95,0xff,0x95,0xff,0xb1,0xff,0xb9,0xff, +0xb3,0xff,0xbb,0xff,0xbd,0xff,0xc6,0xff,0xd5,0xff,0xe1,0xff, +0x4,0x0,0x2d,0x0,0x3d,0x0,0x4c,0x0,0x5c,0x0,0x5a,0x0, +0x4b,0x0,0x47,0x0,0x42,0x0,0x2b,0x0,0x1a,0x0,0xa,0x0, +0xec,0xff,0xde,0xff,0xda,0xff,0xcd,0xff,0xcc,0xff,0xc2,0xff, +0xad,0xff,0xae,0xff,0xb4,0xff,0xb7,0xff,0xb9,0xff,0xaa,0xff, +0xab,0xff,0xba,0xff,0xbd,0xff,0xca,0xff,0xd7,0xff,0xcf,0xff, +0xd2,0xff,0xd7,0xff,0xc7,0xff,0xc7,0xff,0xcf,0xff,0xbe,0xff, +0xba,0xff,0xc9,0xff,0xbe,0xff,0xac,0xff,0xa5,0xff,0x90,0xff, +0x81,0xff,0x88,0xff,0x7e,0xff,0x6b,0xff,0x63,0xff,0x5d,0xff, +0x5c,0xff,0x59,0xff,0x50,0xff,0x50,0xff,0x53,0xff,0x52,0xff, +0x55,0xff,0x4d,0xff,0x42,0xff,0x43,0xff,0x3e,0xff,0x39,0xff, +0x3b,0xff,0x35,0xff,0x30,0xff,0x36,0xff,0x30,0xff,0x25,0xff, +0x34,0xff,0x46,0xff,0x4a,0xff,0x52,0xff,0x54,0xff,0x47,0xff, +0x4d,0xff,0x61,0xff,0x6c,0xff,0x71,0xff,0x78,0xff,0x8b,0xff, +0xa7,0xff,0xb6,0xff,0xc3,0xff,0xdb,0xff,0xec,0xff,0xfb,0xff, +0x4,0x0,0x1,0x0,0xe,0x0,0x21,0x0,0x1a,0x0,0x16,0x0, +0x22,0x0,0x24,0x0,0x1f,0x0,0x13,0x0,0xf8,0xff,0xe4,0xff, +0xde,0xff,0xd4,0xff,0xc9,0xff,0xbe,0xff,0xb1,0xff,0xa5,0xff, +0xa0,0xff,0xa4,0xff,0xaa,0xff,0xb2,0xff,0xbe,0xff,0xc4,0xff, +0xc9,0xff,0xd5,0xff,0xd9,0xff,0xe6,0xff,0x2,0x0,0xf,0x0, +0x12,0x0,0x1f,0x0,0x33,0x0,0x48,0x0,0x4a,0x0,0x4f,0x0, +0x73,0x0,0x83,0x0,0x79,0x0,0x81,0x0,0x91,0x0,0xa4,0x0, +0xb3,0x0,0xa8,0x0,0xa0,0x0,0xa2,0x0,0x95,0x0,0x7d,0x0, +0x60,0x0,0x46,0x0,0x2d,0x0,0xd,0x0,0xf9,0xff,0xeb,0xff, +0xcf,0xff,0xc1,0xff,0xc3,0xff,0xbf,0xff,0xba,0xff,0xb8,0xff, +0xc4,0xff,0xd6,0xff,0xd9,0xff,0xd6,0xff,0xdd,0xff,0xf1,0xff, +0xb,0x0,0x1a,0x0,0x28,0x0,0x3a,0x0,0x4c,0x0,0x66,0x0, +0x72,0x0,0x6e,0x0,0x79,0x0,0x7c,0x0,0x6e,0x0,0x64,0x0, +0x58,0x0,0x46,0x0,0x2f,0x0,0xf,0x0,0xef,0xff,0xca,0xff, +0xaa,0xff,0x92,0xff,0x6f,0xff,0x55,0xff,0x45,0xff,0x2a,0xff, +0x1c,0xff,0x1b,0xff,0x10,0xff,0xd,0xff,0xe,0xff,0x10,0xff, +0x11,0xff,0xe,0xff,0x24,0xff,0x4d,0xff,0x66,0xff,0x77,0xff, +0x85,0xff,0x99,0xff,0xbb,0xff,0xcd,0xff,0xcb,0xff,0xce,0xff, +0xd9,0xff,0xe0,0xff,0xdb,0xff,0xcd,0xff,0xc7,0xff,0xc6,0xff, +0xc0,0xff,0xb8,0xff,0xb7,0xff,0xba,0xff,0xb2,0xff,0xa7,0xff, +0xa1,0xff,0x98,0xff,0x92,0xff,0x8e,0xff,0x82,0xff,0x79,0xff, +0x73,0xff,0x74,0xff,0x77,0xff,0x6d,0xff,0x66,0xff,0x6b,0xff, +0x76,0xff,0x88,0xff,0x99,0xff,0xa3,0xff,0xac,0xff,0xb0,0xff, +0xb9,0xff,0xce,0xff,0xe9,0xff,0x4,0x0,0xf,0x0,0x1b,0x0, +0x36,0x0,0x41,0x0,0x51,0x0,0x80,0x0,0x9e,0x0,0xb0,0x0, +0xc9,0x0,0xcd,0x0,0xcf,0x0,0xde,0x0,0xec,0x0,0xfc,0x0, +0xfa,0x0,0xdd,0x0,0xca,0x0,0xc3,0x0,0xba,0x0,0xb2,0x0, +0xa0,0x0,0x8a,0x0,0x7d,0x0,0x6d,0x0,0x58,0x0,0x4c,0x0, +0x41,0x0,0x30,0x0,0x20,0x0,0x7,0x0,0xeb,0xff,0xe9,0xff, +0xee,0xff,0xea,0xff,0xef,0xff,0xf3,0xff,0xf9,0xff,0xc,0x0, +0x1b,0x0,0x29,0x0,0x43,0x0,0x5e,0x0,0x74,0x0,0x81,0x0, +0x81,0x0,0x8a,0x0,0x9e,0x0,0xa6,0x0,0x9b,0x0,0x8f,0x0, +0x89,0x0,0x7a,0x0,0x67,0x0,0x53,0x0,0x31,0x0,0x16,0x0, +0x3,0x0,0xd7,0xff,0xaa,0xff,0x8b,0xff,0x68,0xff,0x50,0xff, +0x44,0xff,0x32,0xff,0x25,0xff,0x22,0xff,0x22,0xff,0x2b,0xff, +0x36,0xff,0x3d,0xff,0x4a,0xff,0x66,0xff,0x80,0xff,0x8b,0xff, +0xa2,0xff,0xc1,0xff,0xc9,0xff,0xc9,0xff,0xde,0xff,0xf3,0xff, +0x0,0x0,0x8,0x0,0xfa,0xff,0xe4,0xff,0xe4,0xff,0xe8,0xff, +0xdf,0xff,0xd8,0xff,0xcc,0xff,0xb6,0xff,0xa9,0xff,0xa4,0xff, +0xa2,0xff,0xa6,0xff,0xa9,0xff,0xad,0xff,0xba,0xff,0xc4,0xff, +0xd0,0xff,0xe7,0xff,0xf9,0xff,0xf9,0xff,0xfe,0xff,0xf,0x0, +0x17,0x0,0x21,0x0,0x3a,0x0,0x4b,0x0,0x54,0x0,0x61,0x0, +0x62,0x0,0x62,0x0,0x6c,0x0,0x73,0x0,0x7b,0x0,0x7e,0x0, +0x7b,0x0,0x7e,0x0,0x71,0x0,0x5c,0x0,0x53,0x0,0x4e,0x0, +0x56,0x0,0x57,0x0,0x34,0x0,0x21,0x0,0x32,0x0,0x3f,0x0, +0x44,0x0,0x3f,0x0,0x30,0x0,0x26,0x0,0x25,0x0,0x2a,0x0, +0x24,0x0,0x13,0x0,0xf,0x0,0x12,0x0,0xe,0x0,0x5,0x0, +0xf7,0xff,0xf4,0xff,0xf4,0xff,0xe8,0xff,0xe2,0xff,0xd6,0xff, +0xb9,0xff,0xab,0xff,0xae,0xff,0xab,0xff,0xa5,0xff,0xa3,0xff, +0xa0,0xff,0x9e,0xff,0xaa,0xff,0xbf,0xff,0xd2,0xff,0xe7,0xff, +0xf7,0xff,0xf7,0xff,0xfd,0xff,0xc,0x0,0x16,0x0,0x18,0x0, +0xb,0x0,0xf8,0xff,0xe9,0xff,0xd3,0xff,0xba,0xff,0x9d,0xff, +0x73,0xff,0x47,0xff,0x23,0xff,0x3,0xff,0xe3,0xfe,0xbe,0xfe, +0x9f,0xfe,0x93,0xfe,0x8f,0xfe,0x8c,0xfe,0x88,0xfe,0x8f,0xfe, +0xa7,0xfe,0xc8,0xfe,0xf1,0xfe,0x1e,0xff,0x41,0xff,0x67,0xff, +0x9e,0xff,0xd3,0xff,0xfd,0xff,0x2a,0x0,0x55,0x0,0x7b,0x0, +0xa2,0x0,0xbc,0x0,0xc9,0x0,0xda,0x0,0xdf,0x0,0xd0,0x0, +0xc6,0x0,0xac,0x0,0x7b,0x0,0x53,0x0,0x2c,0x0,0x1,0x0, +0xdd,0xff,0xba,0xff,0x95,0xff,0x6b,0xff,0x47,0xff,0x3b,0xff, +0x33,0xff,0x2b,0xff,0x29,0xff,0x1a,0xff,0x11,0xff,0x1f,0xff, +0x2f,0xff,0x49,0xff,0x64,0xff,0x74,0xff,0x96,0xff,0xbd,0xff, +0xd8,0xff,0x1,0x0,0x2e,0x0,0x44,0x0,0x55,0x0,0x73,0x0, +0x94,0x0,0xa1,0x0,0xa4,0x0,0xab,0x0,0xac,0x0,0xa5,0x0, +0x99,0x0,0x7f,0x0,0x68,0x0,0x61,0x0,0x54,0x0,0x37,0x0, +0x15,0x0,0xf7,0xff,0xd8,0xff,0xb4,0xff,0x97,0xff,0x7c,0xff, +0x57,0xff,0x31,0xff,0x13,0xff,0x2,0xff,0xfc,0xfe,0xf2,0xfe, +0xe3,0xfe,0xdd,0xfe,0xde,0xfe,0xe2,0xfe,0xe2,0xfe,0xe4,0xfe, +0xee,0xfe,0xf2,0xfe,0xf5,0xfe,0xb,0xff,0x22,0xff,0x33,0xff, +0x4e,0xff,0x77,0xff,0xa6,0xff,0xd0,0xff,0xfa,0xff,0x2d,0x0, +0x63,0x0,0x96,0x0,0xc4,0x0,0xe5,0x0,0x0,0x1,0x21,0x1, +0x34,0x1,0x2e,0x1,0x28,0x1,0x24,0x1,0x15,0x1,0xfd,0x0, +0xe0,0x0,0xbb,0x0,0x98,0x0,0x79,0x0,0x4e,0x0,0x20,0x0, +0xf6,0xff,0xc7,0xff,0x9a,0xff,0x86,0xff,0x7d,0xff,0x6c,0xff, +0x59,0xff,0x50,0xff,0x50,0xff,0x5f,0xff,0x7c,0xff,0x9a,0xff, +0xb3,0xff,0xd1,0xff,0xfb,0xff,0x2c,0x0,0x5c,0x0,0x8d,0x0, +0xc1,0x0,0xeb,0x0,0x6,0x1,0x23,0x1,0x45,0x1,0x63,0x1, +0x7f,0x1,0x94,0x1,0x9a,0x1,0x92,0x1,0x82,0x1,0x72,0x1, +0x61,0x1,0x36,0x1,0xfd,0x0,0xd0,0x0,0x9d,0x0,0x63,0x0, +0x33,0x0,0x3,0x0,0xcc,0xff,0x99,0xff,0x70,0xff,0x4e,0xff, +0x2b,0xff,0x9,0xff,0xee,0xfe,0xdd,0xfe,0xd5,0xfe,0xce,0xfe, +0xcb,0xfe,0xd3,0xfe,0xdc,0xfe,0xec,0xfe,0xc,0xff,0x25,0xff, +0x3c,0xff,0x66,0xff,0x8c,0xff,0xa3,0xff,0xc1,0xff,0xe6,0xff, +0x7,0x0,0x25,0x0,0x45,0x0,0x60,0x0,0x6a,0x0,0x70,0x0, +0x84,0x0,0x95,0x0,0x92,0x0,0x8b,0x0,0x8d,0x0,0x8c,0x0, +0x84,0x0,0x75,0x0,0x5b,0x0,0x3a,0x0,0x12,0x0,0xec,0xff, +0xcf,0xff,0xad,0xff,0x81,0xff,0x5f,0xff,0x45,0xff,0x2f,0xff, +0x20,0xff,0x16,0xff,0x18,0xff,0x1c,0xff,0x1b,0xff,0x20,0xff, +0x2c,0xff,0x3f,0xff,0x57,0xff,0x6b,0xff,0x87,0xff,0xab,0xff, +0xc2,0xff,0xdf,0xff,0x11,0x0,0x47,0x0,0x7e,0x0,0xaa,0x0, +0xd2,0x0,0x5,0x1,0x2f,0x1,0x50,0x1,0x6b,0x1,0x77,0x1, +0x86,0x1,0x90,0x1,0x83,0x1,0x73,0x1,0x57,0x1,0x26,0x1, +0xfe,0x0,0xd9,0x0,0xa9,0x0,0x76,0x0,0x3f,0x0,0xd,0x0, +0xe1,0xff,0xab,0xff,0x75,0xff,0x4b,0xff,0x2c,0xff,0x17,0xff, +0xfd,0xfe,0xe4,0xfe,0xdb,0xfe,0xd5,0xfe,0xd9,0xfe,0xee,0xfe, +0x2,0xff,0x14,0xff,0x32,0xff,0x52,0xff,0x6d,0xff,0x8c,0xff, +0xaf,0xff,0xcf,0xff,0xef,0xff,0x9,0x0,0x1c,0x0,0x2d,0x0, +0x3f,0x0,0x51,0x0,0x60,0x0,0x61,0x0,0x52,0x0,0x3a,0x0, +0x24,0x0,0x7,0x0,0xe1,0xff,0xc2,0xff,0xa6,0xff,0x7f,0xff, +0x57,0xff,0x31,0xff,0x9,0xff,0xea,0xfe,0xd4,0xfe,0xc3,0xfe, +0xaf,0xfe,0x92,0xfe,0x81,0xfe,0x81,0xfe,0x7b,0xfe,0x7b,0xfe, +0x88,0xfe,0x8e,0xfe,0x90,0xfe,0x95,0xfe,0xa3,0xfe,0xbd,0xfe, +0xcf,0xfe,0xdb,0xfe,0xfc,0xfe,0x27,0xff,0x47,0xff,0x64,0xff, +0x82,0xff,0x98,0xff,0xb3,0xff,0xd5,0xff,0xed,0xff,0x2,0x0, +0x18,0x0,0x21,0x0,0x25,0x0,0x2c,0x0,0x2c,0x0,0x32,0x0, +0x35,0x0,0x28,0x0,0x1f,0x0,0xf,0x0,0xef,0xff,0xdc,0xff, +0xd5,0xff,0xc8,0xff,0xb9,0xff,0xaf,0xff,0xae,0xff,0xae,0xff, +0xa8,0xff,0xa4,0xff,0xa3,0xff,0x9d,0xff,0x97,0xff,0x9c,0xff, +0xa9,0xff,0xae,0xff,0xb3,0xff,0xc0,0xff,0xd1,0xff,0xe7,0xff, +0xfc,0xff,0xc,0x0,0x23,0x0,0x39,0x0,0x44,0x0,0x5e,0x0, +0x7b,0x0,0x83,0x0,0x87,0x0,0x92,0x0,0x9a,0x0,0x9d,0x0, +0x9f,0x0,0xa1,0x0,0x9c,0x0,0x9a,0x0,0x9d,0x0,0x90,0x0, +0x86,0x0,0x89,0x0,0x7a,0x0,0x61,0x0,0x54,0x0,0x41,0x0, +0x26,0x0,0xb,0x0,0xf1,0xff,0xd4,0xff,0xb3,0xff,0x94,0xff, +0x79,0xff,0x63,0xff,0x55,0xff,0x47,0xff,0x36,0xff,0x31,0xff, +0x29,0xff,0x1c,0xff,0x1a,0xff,0x1c,0xff,0x27,0xff,0x3b,0xff, +0x45,0xff,0x4c,0xff,0x67,0xff,0x7e,0xff,0x81,0xff,0x87,0xff, +0x9b,0xff,0xb0,0xff,0xc4,0xff,0xd3,0xff,0xd3,0xff,0xd3,0xff, +0xde,0xff,0xe8,0xff,0xe7,0xff,0xde,0xff,0xd9,0xff,0xd9,0xff, +0xd5,0xff,0xcc,0xff,0xc2,0xff,0xb5,0xff,0xac,0xff,0xa6,0xff, +0x92,0xff,0x82,0xff,0x7c,0xff,0x74,0xff,0x6b,0xff,0x66,0xff, +0x65,0xff,0x6a,0xff,0x74,0xff,0x80,0xff,0x91,0xff,0xa8,0xff, +0xb5,0xff,0xbc,0xff,0xd2,0xff,0xeb,0xff,0xf5,0xff,0x4,0x0, +0xf,0x0,0xb,0x0,0x16,0x0,0x2b,0x0,0x34,0x0,0x38,0x0, +0x3d,0x0,0x43,0x0,0x54,0x0,0x5f,0x0,0x5d,0x0,0x5e,0x0, +0x63,0x0,0x60,0x0,0x59,0x0,0x5a,0x0,0x5a,0x0,0x49,0x0, +0x3b,0x0,0x3e,0x0,0x39,0x0,0x31,0x0,0x33,0x0,0x2f,0x0, +0x21,0x0,0x17,0x0,0x14,0x0,0x12,0x0,0xb,0x0,0x5,0x0, +0xc,0x0,0x10,0x0,0xc,0x0,0xe,0x0,0x12,0x0,0x17,0x0, +0x22,0x0,0x23,0x0,0x1d,0x0,0x24,0x0,0x30,0x0,0x3a,0x0, +0x3d,0x0,0x39,0x0,0x36,0x0,0x39,0x0,0x45,0x0,0x4e,0x0, +0x43,0x0,0x3a,0x0,0x41,0x0,0x42,0x0,0x3a,0x0,0x2e,0x0, +0x25,0x0,0x25,0x0,0x1b,0x0,0xd,0x0,0x12,0x0,0x12,0x0, +0x0,0x0,0xec,0xff,0xde,0xff,0xdf,0xff,0xdf,0xff,0xd4,0xff, +0xcc,0xff,0xc8,0xff,0xc5,0xff,0xc2,0xff,0xb9,0xff,0xc0,0xff, +0xd1,0xff,0xcf,0xff,0xd8,0xff,0xf0,0xff,0xfe,0xff,0x12,0x0, +0x28,0x0,0x31,0x0,0x42,0x0,0x55,0x0,0x60,0x0,0x6d,0x0, +0x77,0x0,0x7d,0x0,0x7f,0x0,0x7a,0x0,0x71,0x0,0x66,0x0, +0x5c,0x0,0x5b,0x0,0x54,0x0,0x38,0x0,0x22,0x0,0x1d,0x0, +0x10,0x0,0xff,0xff,0xfc,0xff,0xf5,0xff,0xea,0xff,0xe6,0xff, +0xe0,0xff,0xe2,0xff,0xed,0xff,0xf3,0xff,0x0,0x0,0x11,0x0, +0x17,0x0,0x23,0x0,0x35,0x0,0x45,0x0,0x58,0x0,0x6d,0x0, +0x7c,0x0,0x7b,0x0,0x7a,0x0,0x8a,0x0,0x91,0x0,0x90,0x0, +0x93,0x0,0x80,0x0,0x6d,0x0,0x6e,0x0,0x60,0x0,0x4c,0x0, +0x3e,0x0,0x1c,0x0,0x3,0x0,0x1,0x0,0xf6,0xff,0xe6,0xff, +0xdd,0xff,0xd7,0xff,0xd8,0xff,0xda,0xff,0xd2,0xff,0xcb,0xff, +0xd2,0xff,0xe6,0xff,0xf8,0xff,0x0,0x0,0x8,0x0,0x1e,0x0, +0x39,0x0,0x45,0x0,0x4f,0x0,0x5a,0x0,0x59,0x0,0x5d,0x0, +0x67,0x0,0x62,0x0,0x5c,0x0,0x54,0x0,0x44,0x0,0x3c,0x0, +0x2c,0x0,0x14,0x0,0x9,0x0,0xfe,0xff,0xf1,0xff,0xeb,0xff, +0xe3,0xff,0xd9,0xff,0xd3,0xff,0xd0,0xff,0xdc,0xff,0xe4,0xff, +0xe3,0xff,0xeb,0xff,0xf1,0xff,0xf6,0xff,0xc,0x0,0x25,0x0, +0x36,0x0,0x3d,0x0,0x42,0x0,0x55,0x0,0x6d,0x0,0x77,0x0, +0x7b,0x0,0x7c,0x0,0x7d,0x0,0x88,0x0,0x87,0x0,0x79,0x0, +0x74,0x0,0x74,0x0,0x65,0x0,0x48,0x0,0x2d,0x0,0x1b,0x0, +0x10,0x0,0x5,0x0,0xf5,0xff,0xe5,0xff,0xd9,0xff,0xcd,0xff, +0xc4,0xff,0xbc,0xff,0xb6,0xff,0xbe,0xff,0xca,0xff,0xca,0xff, +0xce,0xff,0xd2,0xff,0xd7,0xff,0xe1,0xff,0xe5,0xff,0xee,0xff, +0xfc,0xff,0xf6,0xff,0xf0,0xff,0xff,0xff,0x12,0x0,0x21,0x0, +0x1b,0x0,0xa,0x0,0xf,0x0,0x13,0x0,0x6,0x0,0xf9,0xff, +0xe4,0xff,0xd4,0xff,0xd2,0xff,0xc1,0xff,0xa8,0xff,0x9a,0xff, +0x8c,0xff,0x7e,0xff,0x79,0xff,0x76,0xff,0x71,0xff,0x62,0xff, +0x59,0xff,0x62,0xff,0x64,0xff,0x56,0xff,0x4e,0xff,0x4d,0xff, +0x49,0xff,0x49,0xff,0x4d,0xff,0x4f,0xff,0x59,0xff,0x6b,0xff, +0x73,0xff,0x77,0xff,0x84,0xff,0x95,0xff,0xab,0xff,0xbd,0xff, +0xc7,0xff,0xd7,0xff,0xed,0xff,0xf9,0xff,0x1,0x0,0xe,0x0, +0x24,0x0,0x36,0x0,0x38,0x0,0x39,0x0,0x45,0x0,0x4f,0x0, +0x50,0x0,0x50,0x0,0x50,0x0,0x48,0x0,0x35,0x0,0x25,0x0, +0x24,0x0,0x27,0x0,0x1f,0x0,0x15,0x0,0x7,0x0,0xf2,0xff, +0xed,0xff,0xf2,0xff,0xea,0xff,0xe2,0xff,0xe0,0xff,0xdb,0xff, +0xd6,0xff,0xcf,0xff,0xd2,0xff,0xea,0xff,0x1,0x0,0xc,0x0, +0x1a,0x0,0x2b,0x0,0x44,0x0,0x63,0x0,0x76,0x0,0x87,0x0, +0x97,0x0,0x9e,0x0,0xa4,0x0,0xab,0x0,0xaa,0x0,0xa2,0x0, +0xa1,0x0,0x9e,0x0,0x8c,0x0,0x7f,0x0,0x7b,0x0,0x6b,0x0, +0x59,0x0,0x48,0x0,0x30,0x0,0x1f,0x0,0x10,0x0,0xf6,0xff, +0xde,0xff,0xc9,0xff,0xba,0xff,0xb4,0xff,0xa8,0xff,0x97,0xff, +0x8e,0xff,0x8a,0xff,0x8b,0xff,0x92,0xff,0x95,0xff,0x96,0xff, +0xa0,0xff,0xb2,0xff,0xbb,0xff,0xc2,0xff,0xd6,0xff,0xe9,0xff, +0xee,0xff,0xef,0xff,0xf0,0xff,0xf8,0xff,0xfe,0xff,0xf8,0xff, +0xf7,0xff,0xf8,0xff,0xed,0xff,0xe2,0xff,0xd9,0xff,0xc9,0xff, +0xbe,0xff,0xaf,0xff,0x93,0xff,0x7b,0xff,0x6c,0xff,0x57,0xff, +0x3b,0xff,0x29,0xff,0x27,0xff,0x26,0xff,0x1e,0xff,0x1d,0xff, +0x26,0xff,0x34,0xff,0x4b,0xff,0x5e,0xff,0x61,0xff,0x6e,0xff, +0x83,0xff,0x8d,0xff,0x9f,0xff,0xb8,0xff,0xc6,0xff,0xd4,0xff, +0xe3,0xff,0xf6,0xff,0x19,0x0,0x35,0x0,0x44,0x0,0x5b,0x0, +0x72,0x0,0x80,0x0,0x8d,0x0,0x97,0x0,0x99,0x0,0x92,0x0, +0x87,0x0,0x82,0x0,0x80,0x0,0x78,0x0,0x67,0x0,0x4e,0x0, +0x3b,0x0,0x2a,0x0,0x14,0x0,0x5,0x0,0xfc,0xff,0xeb,0xff, +0xd8,0xff,0xcb,0xff,0xbf,0xff,0xaf,0xff,0xa1,0xff,0x96,0xff, +0x8e,0xff,0x90,0xff,0x99,0xff,0xa1,0xff,0xac,0xff,0xc1,0xff, +0xdb,0xff,0xf2,0xff,0xa,0x0,0x25,0x0,0x3f,0x0,0x52,0x0, +0x66,0x0,0x7e,0x0,0x8f,0x0,0x98,0x0,0xa2,0x0,0xa7,0x0, +0xa8,0x0,0xad,0x0,0xa9,0x0,0x99,0x0,0x8a,0x0,0x74,0x0, +0x5d,0x0,0x49,0x0,0x2d,0x0,0xe,0x0,0xf2,0xff,0xd3,0xff, +0xbb,0xff,0xaa,0xff,0x94,0xff,0x82,0xff,0x73,0xff,0x63,0xff, +0x56,0xff,0x4f,0xff,0x50,0xff,0x54,0xff,0x5a,0xff,0x63,0xff, +0x6a,0xff,0x78,0xff,0x8c,0xff,0x9d,0xff,0xb4,0xff,0xca,0xff, +0xd5,0xff,0xe7,0xff,0xf8,0xff,0xff,0xff,0x9,0x0,0x12,0x0, +0x13,0x0,0x15,0x0,0x11,0x0,0x7,0x0,0xfe,0xff,0xf8,0xff, +0xf4,0xff,0xec,0xff,0xd8,0xff,0xc5,0xff,0xc0,0xff,0xc0,0xff, +0xbd,0xff,0xb7,0xff,0xb0,0xff,0xac,0xff,0xaf,0xff,0xb3,0xff, +0xb6,0xff,0xb8,0xff,0xb8,0xff,0xbb,0xff,0xbf,0xff,0xba,0xff, +0xc0,0xff,0xc9,0xff,0xc2,0xff,0xbe,0xff,0xc4,0xff,0xc6,0xff, +0xc8,0xff,0xcd,0xff,0xcd,0xff,0xcf,0xff,0xdb,0xff,0xe5,0xff, +0xe6,0xff,0xea,0xff,0xf1,0xff,0xf1,0xff,0xf6,0xff,0x5,0x0, +0x14,0x0,0x21,0x0,0x25,0x0,0x29,0x0,0x35,0x0,0x3b,0x0, +0x40,0x0,0x4a,0x0,0x49,0x0,0x49,0x0,0x53,0x0,0x58,0x0, +0x58,0x0,0x59,0x0,0x53,0x0,0x49,0x0,0x40,0x0,0x35,0x0, +0x28,0x0,0x14,0x0,0x2,0x0,0xf8,0xff,0xeb,0xff,0xd7,0xff, +0xc1,0xff,0xb0,0xff,0xa4,0xff,0x9d,0xff,0x99,0xff,0x93,0xff, +0x90,0xff,0x93,0xff,0x9d,0xff,0xa9,0xff,0xbb,0xff,0xd1,0xff, +0xdb,0xff,0xe1,0xff,0xf7,0xff,0x9,0x0,0xa,0x0,0xf,0x0, +0x19,0x0,0x1f,0x0,0x26,0x0,0x23,0x0,0x14,0x0,0xa,0x0, +0x7,0x0,0x2,0x0,0xf6,0xff,0xe7,0xff,0xd5,0xff,0xbe,0xff, +0xaf,0xff,0xa5,0xff,0x93,0xff,0x7f,0xff,0x6a,0xff,0x54,0xff, +0x44,0xff,0x31,0xff,0x21,0xff,0x17,0xff,0xd,0xff,0x11,0xff, +0x18,0xff,0x15,0xff,0x1b,0xff,0x2c,0xff,0x3d,0xff,0x54,0xff, +0x68,0xff,0x77,0xff,0x88,0xff,0x9b,0xff,0xb2,0xff,0xca,0xff, +0xdb,0xff,0xf1,0xff,0x9,0x0,0x1e,0x0,0x34,0x0,0x46,0x0, +0x59,0x0,0x6a,0x0,0x72,0x0,0x7c,0x0,0x85,0x0,0x85,0x0, +0x89,0x0,0x8e,0x0,0x8b,0x0,0x87,0x0,0x85,0x0,0x7b,0x0, +0x71,0x0,0x67,0x0,0x53,0x0,0x3e,0x0,0x30,0x0,0x1d,0x0, +0xa,0x0,0xf8,0xff,0xdc,0xff,0xc0,0xff,0xb1,0xff,0xa1,0xff, +0x8c,0xff,0x7f,0xff,0x7c,0xff,0x82,0xff,0x85,0xff,0x86,0xff, +0x91,0xff,0xa2,0xff,0xba,0xff,0xd4,0xff,0xf0,0xff,0xf,0x0, +0x28,0x0,0x3b,0x0,0x53,0x0,0x66,0x0,0x75,0x0,0x8c,0x0, +0x9f,0x0,0xae,0x0,0xb6,0x0,0xb7,0x0,0xb9,0x0,0xb3,0x0, +0x9d,0x0,0x8f,0x0,0x7e,0x0,0x54,0x0,0x2d,0x0,0xc,0x0, +0xdf,0xff,0xb7,0xff,0x8e,0xff,0x5e,0xff,0x3f,0xff,0x2b,0xff, +0x13,0xff,0x6,0xff,0x1,0xff,0x1,0xff,0x11,0xff,0x24,0xff, +0x3b,0xff,0x64,0xff,0x8e,0xff,0xb9,0xff,0xed,0xff,0x19,0x0, +0x40,0x0,0x70,0x0,0xa1,0x0,0xc7,0x0,0xdf,0x0,0xf4,0x0, +0x6,0x1,0x5,0x1,0x0,0x1,0xfc,0x0,0xe4,0x0,0xbf,0x0, +0x9d,0x0,0x78,0x0,0x4f,0x0,0x28,0x0,0xfd,0xff,0xd7,0xff, +0xb7,0xff,0x8e,0xff,0x68,0xff,0x49,0xff,0x30,0xff,0x26,0xff, +0x20,0xff,0x17,0xff,0x19,0xff,0x24,0xff,0x38,0xff,0x5a,0xff, +0x7c,0xff,0x9f,0xff,0xc9,0xff,0xf1,0xff,0x17,0x0,0x3e,0x0, +0x61,0x0,0x88,0x0,0xab,0x0,0xb8,0x0,0xbf,0x0,0xca,0x0, +0xd4,0x0,0xd6,0x0,0xd5,0x0,0xd5,0x0,0xcc,0x0,0xb4,0x0, +0x97,0x0,0x7b,0x0,0x5e,0x0,0x45,0x0,0x2c,0x0,0x13,0x0, +0xfc,0xff,0xea,0xff,0xdf,0xff,0xd5,0xff,0xcf,0xff,0xd6,0xff, +0xe8,0xff,0xf6,0xff,0xf7,0xff,0xfd,0xff,0x15,0x0,0x29,0x0, +0x31,0x0,0x3a,0x0,0x42,0x0,0x4b,0x0,0x5d,0x0,0x65,0x0, +0x66,0x0,0x72,0x0,0x7d,0x0,0x81,0x0,0x87,0x0,0x89,0x0, +0x89,0x0,0x8c,0x0,0x87,0x0,0x75,0x0,0x64,0x0,0x55,0x0, +0x46,0x0,0x3f,0x0,0x3c,0x0,0x35,0x0,0x29,0x0,0x1f,0x0, +0x1f,0x0,0x19,0x0,0x9,0x0,0x5,0x0,0x7,0x0,0x0,0x0, +0xfb,0xff,0xf9,0xff,0xfd,0xff,0x0,0x0,0xf8,0xff,0xf4,0xff, +0xf7,0xff,0xf6,0xff,0xfd,0xff,0x7,0x0,0x1,0x0,0xfd,0xff, +0x3,0x0,0x5,0x0,0x3,0x0,0x6,0x0,0xc,0x0,0x14,0x0, +0x1c,0x0,0x25,0x0,0x37,0x0,0x4f,0x0,0x61,0x0,0x73,0x0, +0x83,0x0,0x87,0x0,0x8f,0x0,0x9f,0x0,0xa6,0x0,0xa6,0x0, +0x9f,0x0,0x8f,0x0,0x83,0x0,0x79,0x0,0x69,0x0,0x56,0x0, +0x40,0x0,0x2d,0x0,0x1b,0x0,0xff,0xff,0xe6,0xff,0xd3,0xff, +0xbe,0xff,0xa5,0xff,0x8a,0xff,0x73,0xff,0x61,0xff,0x56,0xff, +0x57,0xff,0x58,0xff,0x57,0xff,0x5e,0xff,0x73,0xff,0x8f,0xff, +0xaa,0xff,0xc8,0xff,0xea,0xff,0xc,0x0,0x2f,0x0,0x52,0x0, +0x6a,0x0,0x81,0x0,0x9a,0x0,0xac,0x0,0xb9,0x0,0xbd,0x0, +0xbc,0x0,0xbe,0x0,0xb2,0x0,0xa3,0x0,0x9b,0x0,0x86,0x0, +0x6b,0x0,0x50,0x0,0x2c,0x0,0x6,0x0,0xe4,0xff,0xc7,0xff, +0xac,0xff,0x8f,0xff,0x75,0xff,0x63,0xff,0x58,0xff,0x50,0xff, +0x45,0xff,0x45,0xff,0x57,0xff,0x63,0xff,0x6c,0xff,0x80,0xff, +0x8f,0xff,0xa0,0xff,0xbb,0xff,0xd0,0xff,0xe0,0xff,0xed,0xff, +0xfc,0xff,0xf,0x0,0x17,0x0,0x1a,0x0,0x26,0x0,0x32,0x0, +0x37,0x0,0x35,0x0,0x2a,0x0,0x1c,0x0,0x13,0x0,0xe,0x0, +0x4,0x0,0xf0,0xff,0xd9,0xff,0xc7,0xff,0xbd,0xff,0xb5,0xff, +0xa8,0xff,0x99,0xff,0x8e,0xff,0x88,0xff,0x81,0xff,0x78,0xff, +0x70,0xff,0x6a,0xff,0x62,0xff,0x5d,0xff,0x60,0xff,0x63,0xff, +0x61,0xff,0x60,0xff,0x60,0xff,0x60,0xff,0x62,0xff,0x65,0xff, +0x6d,0xff,0x78,0xff,0x7e,0xff,0x86,0xff,0x93,0xff,0x9d,0xff, +0xad,0xff,0xc7,0xff,0xda,0xff,0xe6,0xff,0xf7,0xff,0x7,0x0, +0x19,0x0,0x2e,0x0,0x3d,0x0,0x44,0x0,0x47,0x0,0x48,0x0, +0x49,0x0,0x4a,0x0,0x4b,0x0,0x4a,0x0,0x43,0x0,0x39,0x0, +0x2c,0x0,0x19,0x0,0x8,0x0,0xf9,0xff,0xe4,0xff,0xcb,0xff, +0xb6,0xff,0x9d,0xff,0x89,0xff,0x81,0xff,0x75,0xff,0x64,0xff, +0x5d,0xff,0x58,0xff,0x58,0xff,0x5f,0xff,0x63,0xff,0x6e,0xff, +0x82,0xff,0x8e,0xff,0x98,0xff,0xb0,0xff,0xce,0xff,0xe4,0xff, +0xf3,0xff,0x3,0x0,0x16,0x0,0x21,0x0,0x2e,0x0,0x3d,0x0, +0x3f,0x0,0x40,0x0,0x45,0x0,0x3f,0x0,0x2e,0x0,0x21,0x0, +0x19,0x0,0xd,0x0,0xfd,0xff,0xed,0xff,0xe5,0xff,0xde,0xff, +0xcf,0xff,0xbd,0xff,0xb1,0xff,0xa2,0xff,0x95,0xff,0x95,0xff, +0x94,0xff,0x85,0xff,0x7a,0xff,0x80,0xff,0x8e,0xff,0x91,0xff, +0x8f,0xff,0x95,0xff,0x9a,0xff,0xa1,0xff,0xad,0xff,0xb9,0xff, +0xc5,0xff,0xd5,0xff,0xe4,0xff,0xed,0xff,0xf7,0xff,0xfd,0xff, +0xfc,0xff,0x4,0x0,0x15,0x0,0x1c,0x0,0x1f,0x0,0x24,0x0, +0x24,0x0,0x27,0x0,0x29,0x0,0x21,0x0,0x18,0x0,0x12,0x0, +0xa,0x0,0x2,0x0,0xf0,0xff,0xdc,0xff,0xd4,0xff,0xc9,0xff, +0xb6,0xff,0xa8,0xff,0x9f,0xff,0x99,0xff,0x95,0xff,0x96,0xff, +0x9b,0xff,0x9d,0xff,0x99,0xff,0x9b,0xff,0xa8,0xff,0xb8,0xff, +0xc9,0xff,0xda,0xff,0xe9,0xff,0xf4,0xff,0xfe,0xff,0xc,0x0, +0x26,0x0,0x3f,0x0,0x4b,0x0,0x4e,0x0,0x4b,0x0,0x48,0x0, +0x4c,0x0,0x4b,0x0,0x43,0x0,0x37,0x0,0x20,0x0,0x9,0x0, +0xfc,0xff,0xec,0xff,0xdb,0xff,0xce,0xff,0xc0,0xff,0xb2,0xff, +0xac,0xff,0xaa,0xff,0xa9,0xff,0xae,0xff,0xb8,0xff,0xbd,0xff, +0xc2,0xff,0xce,0xff,0xdd,0xff,0xf1,0xff,0x4,0x0,0x14,0x0, +0x26,0x0,0x38,0x0,0x45,0x0,0x49,0x0,0x4b,0x0,0x53,0x0, +0x51,0x0,0x48,0x0,0x43,0x0,0x34,0x0,0x19,0x0,0x2,0x0, +0xe5,0xff,0xc7,0xff,0xac,0xff,0x8a,0xff,0x6a,0xff,0x4f,0xff, +0x37,0xff,0x2e,0xff,0x2e,0xff,0x30,0xff,0x33,0xff,0x32,0xff, +0x3f,0xff,0x5c,0xff,0x76,0xff,0x90,0xff,0xad,0xff,0xcf,0xff, +0xf1,0xff,0xc,0x0,0x25,0x0,0x3e,0x0,0x52,0x0,0x65,0x0, +0x6f,0x0,0x69,0x0,0x5d,0x0,0x4f,0x0,0x43,0x0,0x31,0x0, +0xc,0x0,0xec,0xff,0xcf,0xff,0xa7,0xff,0x85,0xff,0x65,0xff, +0x3d,0xff,0x1e,0xff,0x7,0xff,0xf6,0xfe,0xef,0xfe,0xec,0xfe, +0xf5,0xfe,0xc,0xff,0x27,0xff,0x46,0xff,0x65,0xff,0x86,0xff, +0xb2,0xff,0xde,0xff,0x5,0x0,0x2b,0x0,0x4e,0x0,0x78,0x0, +0x9e,0x0,0xb4,0x0,0xc2,0x0,0xcb,0x0,0xcc,0x0,0xce,0x0, +0xc5,0x0,0xb0,0x0,0x9c,0x0,0x7c,0x0,0x54,0x0,0x31,0x0, +0xe,0x0,0xe6,0xff,0xbd,0xff,0x94,0xff,0x76,0xff,0x63,0xff, +0x52,0xff,0x46,0xff,0x3f,0xff,0x41,0xff,0x51,0xff,0x64,0xff, +0x79,0xff,0x93,0xff,0xb0,0xff,0xd0,0xff,0xf5,0xff,0x18,0x0, +0x38,0x0,0x56,0x0,0x71,0x0,0x8b,0x0,0xa2,0x0,0xb5,0x0, +0xc0,0x0,0xc3,0x0,0xc6,0x0,0xc9,0x0,0xc2,0x0,0xb2,0x0, +0xa2,0x0,0x90,0x0,0x79,0x0,0x5f,0x0,0x42,0x0,0x26,0x0, +0xe,0x0,0xf7,0xff,0xe1,0xff,0xce,0xff,0xbd,0xff,0xae,0xff, +0x9f,0xff,0x94,0xff,0x8f,0xff,0x8b,0xff,0x80,0xff,0x79,0xff, +0x77,0xff,0x6d,0xff,0x66,0xff,0x66,0xff,0x62,0xff,0x60,0xff, +0x64,0xff,0x62,0xff,0x65,0xff,0x6f,0xff,0x77,0xff,0x85,0xff, +0x97,0xff,0xa2,0xff,0xb7,0xff,0xd2,0xff,0xe2,0xff,0xf7,0xff, +0x12,0x0,0x23,0x0,0x3b,0x0,0x59,0x0,0x6b,0x0,0x7b,0x0, +0x88,0x0,0x94,0x0,0xa5,0x0,0xad,0x0,0xaf,0x0,0xb0,0x0, +0x9e,0x0,0x8a,0x0,0x7a,0x0,0x5c,0x0,0x3e,0x0,0x26,0x0, +0xa,0x0,0xed,0xff,0xc9,0xff,0xa2,0xff,0x87,0xff,0x6d,0xff, +0x54,0xff,0x4b,0xff,0x48,0xff,0x3f,0xff,0x3d,0xff,0x49,0xff, +0x5c,0xff,0x73,0xff,0x91,0xff,0xb2,0xff,0xd6,0xff,0xfb,0xff, +0x1b,0x0,0x3a,0x0,0x59,0x0,0x76,0x0,0x96,0x0,0xb0,0x0, +0xc2,0x0,0xd1,0x0,0xd6,0x0,0xd8,0x0,0xdb,0x0,0xd2,0x0, +0xc1,0x0,0xaf,0x0,0x95,0x0,0x7d,0x0,0x69,0x0,0x4f,0x0, +0x34,0x0,0x1b,0x0,0x4,0x0,0xf0,0xff,0xd9,0xff,0xca,0xff, +0xc6,0xff,0xc0,0xff,0xb9,0xff,0xb2,0xff,0xac,0xff,0xb1,0xff, +0xb9,0xff,0xb6,0xff,0xb5,0xff,0xbb,0xff,0xbe,0xff,0xbe,0xff, +0xbf,0xff,0xc0,0xff,0xc3,0xff,0xc4,0xff,0xc5,0xff,0xc8,0xff, +0xc6,0xff,0xc4,0xff,0xc8,0xff,0xc8,0xff,0xca,0xff,0xd6,0xff, +0xe1,0xff,0xe8,0xff,0xf1,0xff,0xfb,0xff,0x8,0x0,0x13,0x0, +0x1c,0x0,0x2a,0x0,0x36,0x0,0x3f,0x0,0x47,0x0,0x4c,0x0, +0x53,0x0,0x59,0x0,0x50,0x0,0x3f,0x0,0x31,0x0,0x25,0x0, +0x15,0x0,0xfd,0xff,0xe5,0xff,0xca,0xff,0xab,0xff,0x91,0xff, +0x78,0xff,0x60,0xff,0x59,0xff,0x55,0xff,0x48,0xff,0x42,0xff, +0x42,0xff,0x48,0xff,0x5b,0xff,0x6e,0xff,0x7f,0xff,0x9f,0xff, +0xc4,0xff,0xde,0xff,0xf8,0xff,0x16,0x0,0x3a,0x0,0x64,0x0, +0x84,0x0,0x94,0x0,0xa7,0x0,0xb7,0x0,0xbb,0x0,0xbe,0x0, +0xb9,0x0,0xa8,0x0,0x94,0x0,0x76,0x0,0x53,0x0,0x31,0x0, +0xe,0x0,0xef,0xff,0xcd,0xff,0xa8,0xff,0x8e,0xff,0x7d,0xff, +0x6c,0xff,0x61,0xff,0x59,0xff,0x5c,0xff,0x6b,0xff,0x77,0xff, +0x83,0xff,0x9a,0xff,0xb5,0xff,0xd2,0xff,0xf0,0xff,0xc,0x0, +0x2b,0x0,0x47,0x0,0x5e,0x0,0x72,0x0,0x83,0x0,0x97,0x0, +0xa9,0x0,0xac,0x0,0xa3,0x0,0x9a,0x0,0x8f,0x0,0x7e,0x0, +0x6f,0x0,0x59,0x0,0x38,0x0,0x18,0x0,0xfc,0xff,0xe0,0xff, +0xcd,0xff,0xbe,0xff,0xae,0xff,0xa3,0xff,0x95,0xff,0x8a,0xff, +0x8d,0xff,0x97,0xff,0xa4,0xff,0xb1,0xff,0xb5,0xff,0xc0,0xff, +0xd6,0xff,0xe6,0xff,0xf5,0xff,0x7,0x0,0x13,0x0,0x1e,0x0, +0x2c,0x0,0x32,0x0,0x31,0x0,0x32,0x0,0x33,0x0,0x2f,0x0, +0x2a,0x0,0x20,0x0,0x14,0x0,0xc,0x0,0x4,0x0,0xf6,0xff, +0xed,0xff,0xe6,0xff,0xe0,0xff,0xdd,0xff,0xd8,0xff,0xd6,0xff, +0xdc,0xff,0xe1,0xff,0xe7,0xff,0xf1,0xff,0xfa,0xff,0x5,0x0, +0xf,0x0,0x15,0x0,0x21,0x0,0x31,0x0,0x39,0x0,0x3f,0x0, +0x45,0x0,0x44,0x0,0x42,0x0,0x49,0x0,0x50,0x0,0x4d,0x0, +0x49,0x0,0x45,0x0,0x3f,0x0,0x3e,0x0,0x3f,0x0,0x38,0x0, +0x2d,0x0,0x29,0x0,0x2b,0x0,0x2d,0x0,0x2a,0x0,0x24,0x0, +0x25,0x0,0x2d,0x0,0x34,0x0,0x33,0x0,0x39,0x0,0x46,0x0, +0x4f,0x0,0x51,0x0,0x56,0x0,0x5c,0x0,0x60,0x0,0x5f,0x0, +0x5f,0x0,0x5d,0x0,0x53,0x0,0x4b,0x0,0x47,0x0,0x3d,0x0, +0x32,0x0,0x28,0x0,0x1b,0x0,0xe,0x0,0xfc,0xff,0xee,0xff, +0xeb,0xff,0xe8,0xff,0xe0,0xff,0xdc,0xff,0xd8,0xff,0xd7,0xff, +0xd7,0xff,0xd9,0xff,0xdc,0xff,0xdc,0xff,0xda,0xff,0xd7,0xff, +0xd5,0xff,0xd8,0xff,0xd9,0xff,0xd8,0xff,0xdb,0xff,0xdc,0xff, +0xda,0xff,0xd4,0xff,0xc9,0xff,0xc3,0xff,0xc1,0xff,0xb8,0xff, +0xad,0xff,0xa2,0xff,0x9a,0xff,0x95,0xff,0x8e,0xff,0x89,0xff, +0x86,0xff,0x82,0xff,0x87,0xff,0x8b,0xff,0x8b,0xff,0x90,0xff, +0x9d,0xff,0xac,0xff,0xba,0xff,0xc7,0xff,0xd9,0xff,0xeb,0xff, +0xfa,0xff,0xd,0x0,0x20,0x0,0x31,0x0,0x43,0x0,0x4c,0x0, +0x54,0x0,0x5d,0x0,0x5f,0x0,0x60,0x0,0x61,0x0,0x56,0x0, +0x48,0x0,0x3d,0x0,0x31,0x0,0x24,0x0,0x14,0x0,0x0,0x0, +0xed,0xff,0xe0,0xff,0xd6,0xff,0xcb,0xff,0xc2,0xff,0xbe,0xff, +0xbc,0xff,0xba,0xff,0xbd,0xff,0xc9,0xff,0xd7,0xff,0xde,0xff, +0xec,0xff,0xfc,0xff,0x7,0x0,0x18,0x0,0x2a,0x0,0x35,0x0, +0x41,0x0,0x4a,0x0,0x4e,0x0,0x53,0x0,0x51,0x0,0x4a,0x0, +0x48,0x0,0x40,0x0,0x33,0x0,0x2c,0x0,0x21,0x0,0xf,0x0, +0xfe,0xff,0xef,0xff,0xe3,0xff,0xd6,0xff,0xc5,0xff,0xb3,0xff, +0xa5,0xff,0xa2,0xff,0xa1,0xff,0x9a,0xff,0x98,0xff,0xa0,0xff, +0xa6,0xff,0xac,0xff,0xb6,0xff,0xb9,0xff,0xba,0xff,0xc0,0xff, +0xc9,0xff,0xd1,0xff,0xd4,0xff,0xcf,0xff,0xcb,0xff,0xc1,0xff, +0xb2,0xff,0xac,0xff,0xa6,0xff,0x98,0xff,0x8e,0xff,0x87,0xff, +0x82,0xff,0x7d,0xff,0x77,0xff,0x7a,0xff,0x83,0xff,0x88,0xff, +0x90,0xff,0x9a,0xff,0xa4,0xff,0xb6,0xff,0xc8,0xff,0xd2,0xff, +0xe2,0xff,0xf4,0xff,0x0,0x0,0xa,0x0,0x10,0x0,0x11,0x0, +0x15,0x0,0x14,0x0,0x8,0x0,0xfe,0xff,0xfa,0xff,0xf3,0xff, +0xeb,0xff,0xe2,0xff,0xd2,0xff,0xc1,0xff,0xb6,0xff,0xb0,0xff, +0xac,0xff,0xa4,0xff,0x9d,0xff,0x9a,0xff,0x96,0xff,0x99,0xff, +0xa2,0xff,0xa9,0xff,0xb4,0xff,0xc2,0xff,0xd0,0xff,0xe0,0xff, +0xf0,0xff,0x0,0x0,0x13,0x0,0x22,0x0,0x2f,0x0,0x39,0x0, +0x41,0x0,0x4e,0x0,0x57,0x0,0x53,0x0,0x4d,0x0,0x48,0x0, +0x41,0x0,0x39,0x0,0x2f,0x0,0x22,0x0,0x16,0x0,0x7,0x0, +0xfb,0xff,0xf1,0xff,0xea,0xff,0xea,0xff,0xe4,0xff,0xda,0xff, +0xdb,0xff,0xe0,0xff,0xe3,0xff,0xe9,0xff,0xef,0xff,0xf4,0xff, +0xfe,0xff,0x8,0x0,0xd,0x0,0x14,0x0,0x1c,0x0,0x23,0x0, +0x28,0x0,0x22,0x0,0x1c,0x0,0x21,0x0,0x1e,0x0,0x16,0x0, +0x12,0x0,0x7,0x0,0xf9,0xff,0xf6,0xff,0xf3,0xff,0xe9,0xff, +0xde,0xff,0xd4,0xff,0xd3,0xff,0xd4,0xff,0xce,0xff,0xc9,0xff, +0xc6,0xff,0xc6,0xff,0xc6,0xff,0xc2,0xff,0xbe,0xff,0xbf,0xff, +0xbd,0xff,0xbd,0xff,0xc1,0xff,0xc5,0xff,0xc4,0xff,0xc1,0xff, +0xbc,0xff,0xb6,0xff,0xb2,0xff,0xb0,0xff,0xa8,0xff,0x9d,0xff, +0x94,0xff,0x8c,0xff,0x8b,0xff,0x8d,0xff,0x8d,0xff,0x90,0xff, +0x98,0xff,0xa0,0xff,0xaa,0xff,0xb6,0xff,0xc5,0xff,0xd8,0xff, +0xeb,0xff,0xff,0xff,0x14,0x0,0x26,0x0,0x39,0x0,0x4e,0x0, +0x60,0x0,0x6e,0x0,0x75,0x0,0x7d,0x0,0x86,0x0,0x8b,0x0, +0x8e,0x0,0x8a,0x0,0x82,0x0,0x80,0x0,0x79,0x0,0x68,0x0, +0x5b,0x0,0x52,0x0,0x47,0x0,0x36,0x0,0x22,0x0,0x14,0x0, +0xa,0x0,0x3,0x0,0xfe,0xff,0xf7,0xff,0xf4,0xff,0xf4,0xff, +0xf2,0xff,0xf8,0xff,0x2,0x0,0xd,0x0,0x19,0x0,0x24,0x0, +0x32,0x0,0x44,0x0,0x52,0x0,0x61,0x0,0x72,0x0,0x7e,0x0, +0x88,0x0,0x8e,0x0,0x8d,0x0,0x8b,0x0,0x88,0x0,0x80,0x0, +0x74,0x0,0x65,0x0,0x59,0x0,0x47,0x0,0x30,0x0,0x1d,0x0, +0xc,0x0,0xfe,0xff,0xf1,0xff,0xda,0xff,0xc4,0xff,0xb9,0xff, +0xb0,0xff,0xa8,0xff,0xa3,0xff,0x9d,0xff,0x9c,0xff,0x9d,0xff, +0x9d,0xff,0xa1,0xff,0xa8,0xff,0xb3,0xff,0xc1,0xff,0xcb,0xff, +0xd0,0xff,0xda,0xff,0xe8,0xff,0xf3,0xff,0xfc,0xff,0x7,0x0, +0x11,0x0,0x17,0x0,0x1e,0x0,0x27,0x0,0x2f,0x0,0x32,0x0, +0x36,0x0,0x3c,0x0,0x3d,0x0,0x34,0x0,0x2d,0x0,0x2a,0x0, +0x24,0x0,0x1b,0x0,0x11,0x0,0x7,0x0,0x2,0x0,0xfc,0xff, +0xf6,0xff,0xf3,0xff,0xef,0xff,0xe8,0xff,0xe3,0xff,0xe0,0xff, +0xdb,0xff,0xd8,0xff,0xd6,0xff,0xcf,0xff,0xc7,0xff,0xc5,0xff, +0xc6,0xff,0xc8,0xff,0xc8,0xff,0xc8,0xff,0xca,0xff,0xce,0xff, +0xd3,0xff,0xdb,0xff,0xe6,0xff,0xed,0xff,0xf5,0xff,0x0,0x0, +0xa,0x0,0x18,0x0,0x2c,0x0,0x39,0x0,0x44,0x0,0x53,0x0, +0x5d,0x0,0x66,0x0,0x72,0x0,0x7a,0x0,0x80,0x0,0x85,0x0, +0x85,0x0,0x80,0x0,0x75,0x0,0x6b,0x0,0x61,0x0,0x53,0x0, +0x48,0x0,0x3b,0x0,0x27,0x0,0x17,0x0,0xa,0x0,0xf7,0xff, +0xe8,0xff,0xdf,0xff,0xd2,0xff,0xc4,0xff,0xb9,0xff,0xb5,0xff, +0xb1,0xff,0xac,0xff,0xae,0xff,0xb5,0xff,0xb7,0xff,0xbb,0xff, +0xc6,0xff,0xd1,0xff,0xdc,0xff,0xe8,0xff,0xf8,0xff,0x8,0x0, +0xf,0x0,0x15,0x0,0x18,0x0,0x17,0x0,0x22,0x0,0x33,0x0, +0x32,0x0,0x26,0x0,0x24,0x0,0x21,0x0,0x14,0x0,0x2,0x0, +0xee,0xff,0xd5,0xff,0xc4,0xff,0xbf,0xff,0xb5,0xff,0x9d,0xff, +0x83,0xff,0x77,0xff,0x78,0xff,0x7a,0xff,0x79,0xff,0x73,0xff, +0x72,0xff,0x81,0xff,0x91,0xff,0x9a,0xff,0xa5,0xff,0xb1,0xff, +0xc1,0xff,0xd4,0xff,0xe2,0xff,0xee,0xff,0xfe,0xff,0xb,0x0, +0x17,0x0,0x24,0x0,0x2d,0x0,0x32,0x0,0x3a,0x0,0x3f,0x0, +0x37,0x0,0x2d,0x0,0x2b,0x0,0x28,0x0,0x1f,0x0,0x15,0x0, +0x9,0x0,0xf8,0xff,0xe7,0xff,0xda,0xff,0xce,0xff,0xc2,0xff, +0xb9,0xff,0xae,0xff,0xa0,0xff,0x97,0xff,0x93,0xff,0x91,0xff, +0x91,0xff,0x8f,0xff,0x8e,0xff,0x93,0xff,0x9a,0xff,0xa8,0xff, +0xb6,0xff,0xbf,0xff,0xcc,0xff,0xdc,0xff,0xeb,0xff,0xfa,0xff, +0x2,0x0,0xb,0x0,0x1d,0x0,0x2d,0x0,0x34,0x0,0x37,0x0, +0x39,0x0,0x3d,0x0,0x3f,0x0,0x3e,0x0,0x39,0x0,0x30,0x0, +0x2b,0x0,0x27,0x0,0x1b,0x0,0xe,0x0,0x4,0x0,0xf9,0xff, +0xec,0xff,0xdc,0xff,0xce,0xff,0xc0,0xff,0xb0,0xff,0xa8,0xff, +0xa1,0xff,0x96,0xff,0x90,0xff,0x8b,0xff,0x87,0xff,0x8c,0xff, +0x90,0xff,0x93,0xff,0x9b,0xff,0xa3,0xff,0xaf,0xff,0xbe,0xff, +0xce,0xff,0xdf,0xff,0xee,0xff,0xfc,0xff,0xa,0x0,0x19,0x0, +0x28,0x0,0x30,0x0,0x35,0x0,0x3f,0x0,0x45,0x0,0x46,0x0, +0x47,0x0,0x3e,0x0,0x32,0x0,0x29,0x0,0x1c,0x0,0xd,0x0, +0xfe,0xff,0xee,0xff,0xdd,0xff,0xcb,0xff,0xbd,0xff,0xae,0xff, +0x9a,0xff,0x92,0xff,0x96,0xff,0x97,0xff,0x98,0xff,0x9e,0xff, +0xa7,0xff,0xb2,0xff,0xbb,0xff,0xca,0xff,0xde,0xff,0xec,0xff, +0xfc,0xff,0x12,0x0,0x22,0x0,0x30,0x0,0x3f,0x0,0x4d,0x0, +0x56,0x0,0x5b,0x0,0x5a,0x0,0x57,0x0,0x59,0x0,0x58,0x0, +0x51,0x0,0x4a,0x0,0x41,0x0,0x39,0x0,0x33,0x0,0x29,0x0, +0x1e,0x0,0x1a,0x0,0x15,0x0,0x12,0x0,0x10,0x0,0xa,0x0, +0x4,0x0,0x0,0x0,0xfc,0xff,0xfe,0xff,0x1,0x0,0xfd,0xff, +0xfd,0xff,0x1,0x0,0x2,0x0,0x6,0x0,0x9,0x0,0x8,0x0, +0x7,0x0,0x5,0x0,0xff,0xff,0xfc,0xff,0xf9,0xff,0xf2,0xff, +0xe9,0xff,0xe3,0xff,0xda,0xff,0xd3,0xff,0xcb,0xff,0xc2,0xff, +0xba,0xff,0xb6,0xff,0xb2,0xff,0xac,0xff,0xaa,0xff,0xae,0xff, +0xb3,0xff,0xbc,0xff,0xc6,0xff,0xcd,0xff,0xd8,0xff,0xe8,0xff, +0xf7,0xff,0x3,0x0,0xb,0x0,0x14,0x0,0x23,0x0,0x2f,0x0, +0x33,0x0,0x3a,0x0,0x3e,0x0,0x3c,0x0,0x3a,0x0,0x37,0x0, +0x32,0x0,0x30,0x0,0x2e,0x0,0x28,0x0,0x1f,0x0,0x16,0x0, +0xf,0x0,0x6,0x0,0xfe,0xff,0xf9,0xff,0xf3,0xff,0xec,0xff, +0xe7,0xff,0xe4,0xff,0xe3,0xff,0xe2,0xff,0xe1,0xff,0xe1,0xff, +0xe4,0xff,0xe9,0xff,0xf0,0xff,0xf6,0xff,0xff,0xff,0x7,0x0, +0xd,0x0,0x16,0x0,0x1f,0x0,0x26,0x0,0x2d,0x0,0x31,0x0, +0x36,0x0,0x3d,0x0,0x41,0x0,0x42,0x0,0x42,0x0,0x41,0x0, +0x3e,0x0,0x3c,0x0,0x3a,0x0,0x35,0x0,0x2c,0x0,0x20,0x0, +0x1a,0x0,0x18,0x0,0x11,0x0,0x9,0x0,0x7,0x0,0x2,0x0, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x2,0x0,0x3,0x0, +0x6,0x0,0x9,0x0,0xb,0x0,0x12,0x0,0x1c,0x0,0x23,0x0, +0x2b,0x0,0x33,0x0,0x3a,0x0,0x43,0x0,0x49,0x0,0x50,0x0, +0x5a,0x0,0x61,0x0,0x64,0x0,0x66,0x0,0x66,0x0,0x63,0x0, +0x5e,0x0,0x56,0x0,0x4c,0x0,0x3f,0x0,0x2e,0x0,0x1c,0x0, +0xb,0x0,0xf7,0xff,0xe4,0xff,0xd2,0xff,0xc1,0xff,0xb4,0xff, +0xaa,0xff,0x9e,0xff,0x98,0xff,0x95,0xff,0x94,0xff,0x97,0xff, +0x9d,0xff,0xa3,0xff,0xae,0xff,0xbd,0xff,0xce,0xff,0xdd,0xff, +0xeb,0xff,0xff,0xff,0x12,0x0,0x22,0x0,0x33,0x0,0x40,0x0, +0x4a,0x0,0x57,0x0,0x5e,0x0,0x60,0x0,0x5e,0x0,0x59,0x0, +0x55,0x0,0x4e,0x0,0x41,0x0,0x35,0x0,0x25,0x0,0x18,0x0, +0xf,0x0,0xfd,0xff,0xed,0xff,0xe4,0xff,0xdc,0xff,0xd6,0xff, +0xd1,0xff,0xcb,0xff,0xc8,0xff,0xca,0xff,0xcf,0xff,0xd6,0xff, +0xde,0xff,0xe8,0xff,0xf1,0xff,0xfd,0xff,0xb,0x0,0x16,0x0, +0x20,0x0,0x27,0x0,0x2b,0x0,0x2e,0x0,0x2e,0x0,0x2a,0x0, +0x24,0x0,0x1c,0x0,0x15,0x0,0xc,0x0,0xfe,0xff,0xee,0xff, +0xe0,0xff,0xd5,0xff,0xcb,0xff,0xbb,0xff,0xac,0xff,0xa3,0xff, +0x9e,0xff,0x9e,0xff,0x9f,0xff,0x9d,0xff,0x9e,0xff,0xa1,0xff, +0xa5,0xff,0xaf,0xff,0xb9,0xff,0xc3,0xff,0xcf,0xff,0xd9,0xff, +0xe1,0xff,0xe8,0xff,0xef,0xff,0xf8,0xff,0xff,0xff,0x3,0x0, +0x3,0x0,0xfe,0xff,0xfa,0xff,0xf9,0xff,0xf2,0xff,0xe7,0xff, +0xdd,0xff,0xd3,0xff,0xce,0xff,0xc7,0xff,0xbf,0xff,0xbd,0xff, +0xbb,0xff,0xb9,0xff,0xbb,0xff,0xc0,0xff,0xc4,0xff,0xcc,0xff, +0xd7,0xff,0xe4,0xff,0xf4,0xff,0x3,0x0,0x10,0x0,0x21,0x0, +0x31,0x0,0x3c,0x0,0x48,0x0,0x53,0x0,0x5b,0x0,0x5f,0x0, +0x61,0x0,0x5f,0x0,0x5c,0x0,0x57,0x0,0x4e,0x0,0x40,0x0, +0x32,0x0,0x24,0x0,0x14,0x0,0x4,0x0,0xf7,0xff,0xe9,0xff, +0xdc,0xff,0xd1,0xff,0xc6,0xff,0xc0,0xff,0xbd,0xff,0xba,0xff, +0xbc,0xff,0xc1,0xff,0xc7,0xff,0xcd,0xff,0xd3,0xff,0xdb,0xff, +0xe7,0xff,0xf0,0xff,0xf6,0xff,0xfc,0xff,0x1,0x0,0x4,0x0, +0x7,0x0,0xb,0x0,0xb,0x0,0x7,0x0,0x1,0x0,0xfa,0xff, +0xf5,0xff,0xf1,0xff,0xe9,0xff,0xdc,0xff,0xd4,0xff,0xcf,0xff, +0xca,0xff,0xc4,0xff,0xbf,0xff,0xbc,0xff,0xbb,0xff,0xba,0xff, +0xb8,0xff,0xb8,0xff,0xbb,0xff,0xc1,0xff,0xc7,0xff,0xcb,0xff, +0xd2,0xff,0xd9,0xff,0xda,0xff,0xdb,0xff,0xdf,0xff,0xe2,0xff, +0xe4,0xff,0xea,0xff,0xee,0xff,0xf1,0xff,0xf6,0xff,0xfb,0xff, +0xfd,0xff,0xfe,0xff,0x1,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x7,0x0,0xb,0x0,0xb,0x0,0xc,0x0, +0xf,0x0,0xf,0x0,0x10,0x0,0x12,0x0,0x12,0x0,0x10,0x0, +0xf,0x0,0xe,0x0,0xd,0x0,0x9,0x0,0x6,0x0,0x7,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x2,0x0,0x1,0x0,0x5,0x0, +0x6,0x0,0x3,0x0,0x6,0x0,0xa,0x0,0xd,0x0,0x12,0x0, +0x17,0x0,0x1b,0x0,0x21,0x0,0x28,0x0,0x2c,0x0,0x31,0x0, +0x35,0x0,0x35,0x0,0x35,0x0,0x34,0x0,0x32,0x0,0x2c,0x0, +0x28,0x0,0x21,0x0,0x19,0x0,0x13,0x0,0xb,0x0,0x3,0x0, +0xfb,0xff,0xf4,0xff,0xee,0xff,0xeb,0xff,0xe6,0xff,0xe0,0xff, +0xdc,0xff,0xda,0xff,0xda,0xff,0xdc,0xff,0xdf,0xff,0xe2,0xff, +0xe5,0xff,0xeb,0xff,0xf1,0xff,0xf7,0xff,0xff,0xff,0x7,0x0, +0xc,0x0,0x11,0x0,0x16,0x0,0x19,0x0,0x1c,0x0,0x1c,0x0, +0x19,0x0,0x15,0x0,0x12,0x0,0xe,0x0,0xc,0x0,0xa,0x0, +0x4,0x0,0xfc,0xff,0xf6,0xff,0xf1,0xff,0xee,0xff,0xee,0xff, +0xec,0xff,0xe9,0xff,0xea,0xff,0xeb,0xff,0xeb,0xff,0xed,0xff, +0xef,0xff,0xf0,0xff,0xf5,0xff,0xfc,0xff,0xff,0xff,0x0,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0xfe,0xff,0xf9,0xff, +0xf5,0xff,0xef,0xff,0xe8,0xff,0xe2,0xff,0xdc,0xff,0xdb,0xff, +0xd8,0xff,0xd1,0xff,0xcc,0xff,0xcb,0xff,0xcb,0xff,0xce,0xff, +0xd1,0xff,0xd5,0xff,0xde,0xff,0xe9,0xff,0xf5,0xff,0x1,0x0, +0xd,0x0,0x1c,0x0,0x2c,0x0,0x3a,0x0,0x49,0x0,0x58,0x0, +0x61,0x0,0x69,0x0,0x72,0x0,0x77,0x0,0x7b,0x0,0x7e,0x0, +0x7b,0x0,0x76,0x0,0x71,0x0,0x68,0x0,0x5c,0x0,0x52,0x0, +0x45,0x0,0x34,0x0,0x26,0x0,0x19,0x0,0xb,0x0,0xff,0xff, +0xf4,0xff,0xe9,0xff,0xe1,0xff,0xdc,0xff,0xd6,0xff,0xd4,0xff, +0xd3,0xff,0xd6,0xff,0xdc,0xff,0xe2,0xff,0xe6,0xff,0xec,0xff, +0xf5,0xff,0xfe,0xff,0x3,0x0,0x9,0x0,0x10,0x0,0x17,0x0, +0x1a,0x0,0x1d,0x0,0x1e,0x0,0x1b,0x0,0x19,0x0,0x1a,0x0, +0x16,0x0,0xf,0x0,0x8,0x0,0xfe,0xff,0xf6,0xff,0xef,0xff, +0xe7,0xff,0xe1,0xff,0xdb,0xff,0xd5,0xff,0xd2,0xff,0xce,0xff, +0xc8,0xff,0xc6,0xff,0xc7,0xff,0xc8,0xff,0xc8,0xff,0xc6,0xff, +0xc6,0xff,0xcb,0xff,0xcf,0xff,0xd2,0xff,0xd6,0xff,0xdb,0xff, +0xe1,0xff,0xe9,0xff,0xee,0xff,0xf0,0xff,0xf5,0xff,0xfc,0xff, +0x1,0x0,0x4,0x0,0x5,0x0,0x7,0x0,0xa,0x0,0xc,0x0, +0xc,0x0,0xd,0x0,0xf,0x0,0x11,0x0,0x12,0x0,0x13,0x0, +0x16,0x0,0x1c,0x0,0x21,0x0,0x24,0x0,0x28,0x0,0x2b,0x0, +0x2b,0x0,0x2b,0x0,0x2a,0x0,0x26,0x0,0x20,0x0,0x19,0x0, +0x11,0x0,0x7,0x0,0xf9,0xff,0xea,0xff,0xdf,0xff,0xd2,0xff, +0xc7,0xff,0xc0,0xff,0xb7,0xff,0xae,0xff,0xac,0xff,0xab,0xff, +0xa9,0xff,0xab,0xff,0xac,0xff,0xad,0xff,0xb4,0xff,0xbd,0xff, +0xc8,0xff,0xd5,0xff,0xde,0xff,0xe9,0xff,0xf7,0xff,0x5,0x0, +0xf,0x0,0x19,0x0,0x22,0x0,0x2a,0x0,0x2f,0x0,0x2f,0x0, +0x2f,0x0,0x2d,0x0,0x29,0x0,0x21,0x0,0x17,0x0,0x9,0x0, +0xfc,0xff,0xf1,0xff,0xe5,0xff,0xd8,0xff,0xcc,0xff,0xc2,0xff, +0xb9,0xff,0xb1,0xff,0xab,0xff,0xa8,0xff,0xaa,0xff,0xb0,0xff, +0xb6,0xff,0xc1,0xff,0xcf,0xff,0xdf,0xff,0xf0,0xff,0x2,0x0, +0x16,0x0,0x29,0x0,0x3a,0x0,0x4c,0x0,0x60,0x0,0x6e,0x0, +0x79,0x0,0x80,0x0,0x82,0x0,0x83,0x0,0x83,0x0,0x7c,0x0, +0x72,0x0,0x65,0x0,0x54,0x0,0x41,0x0,0x2e,0x0,0x1b,0x0, +0x7,0x0,0xf3,0xff,0xdf,0xff,0xd1,0xff,0xc3,0xff,0xb4,0xff, +0xab,0xff,0xa5,0xff,0x9f,0xff,0x9c,0xff,0x9c,0xff,0x9c,0xff, +0xa1,0xff,0xa7,0xff,0xad,0xff,0xb5,0xff,0xbd,0xff,0xc5,0xff, +0xd0,0xff,0xda,0xff,0xe3,0xff,0xeb,0xff,0xf2,0xff,0xf7,0xff, +0xf9,0xff,0xfc,0xff,0xff,0xff,0xfe,0xff,0xfb,0xff,0xf7,0xff, +0xf4,0xff,0xf1,0xff,0xee,0xff,0xeb,0xff,0xe8,0xff,0xe7,0xff, +0xe9,0xff,0xe9,0xff,0xe8,0xff,0xea,0xff,0xed,0xff,0xf0,0xff, +0xf6,0xff,0xfb,0xff,0x2,0x0,0xa,0x0,0x10,0x0,0x13,0x0, +0x19,0x0,0x1f,0x0,0x23,0x0,0x27,0x0,0x29,0x0,0x27,0x0, +0x26,0x0,0x24,0x0,0x1f,0x0,0x1b,0x0,0x16,0x0,0xe,0x0, +0x8,0x0,0x0,0x0,0xf8,0xff,0xf1,0xff,0xe9,0xff,0xe2,0xff, +0xdf,0xff,0xdc,0xff,0xd8,0xff,0xd7,0xff,0xd9,0xff,0xda,0xff, +0xdd,0xff,0xe3,0xff,0xe9,0xff,0xee,0xff,0xf5,0xff,0xfc,0xff, +0x1,0x0,0x5,0x0,0xa,0x0,0xc,0x0,0xd,0x0,0x10,0x0, +0xe,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xa,0x0,0x7,0x0, +0x3,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,0x3,0x0,0x7,0x0, +0xd,0x0,0x14,0x0,0x1b,0x0,0x1f,0x0,0x21,0x0,0x23,0x0, +0x26,0x0,0x29,0x0,0x2a,0x0,0x2c,0x0,0x2b,0x0,0x2a,0x0, +0x29,0x0,0x22,0x0,0x1c,0x0,0x18,0x0,0x13,0x0,0xc,0x0, +0x5,0x0,0xfe,0xff,0xf9,0xff,0xf5,0xff,0xef,0xff,0xeb,0xff, +0xe6,0xff,0xe2,0xff,0xe2,0xff,0xe2,0xff,0xe1,0xff,0xe4,0xff, +0xe6,0xff,0xe8,0xff,0xee,0xff,0xf5,0xff,0xf9,0xff,0xfd,0xff, +0x2,0x0,0x7,0x0,0xc,0x0,0x10,0x0,0x12,0x0,0x13,0x0, +0x14,0x0,0x14,0x0,0x14,0x0,0x12,0x0,0xe,0x0,0xb,0x0, +0x7,0x0,0x1,0x0,0xfb,0xff,0xf7,0xff,0xf1,0xff,0xec,0xff, +0xe8,0xff,0xe1,0xff,0xda,0xff,0xd6,0xff,0xd3,0xff,0xd4,0xff, +0xd7,0xff,0xd8,0xff,0xd8,0xff,0xdc,0xff,0xe1,0xff,0xe7,0xff, +0xee,0xff,0xf5,0xff,0xfe,0xff,0x7,0x0,0xf,0x0,0x17,0x0, +0x20,0x0,0x27,0x0,0x2e,0x0,0x32,0x0,0x35,0x0,0x39,0x0, +0x3b,0x0,0x3b,0x0,0x39,0x0,0x37,0x0,0x34,0x0,0x30,0x0, +0x2b,0x0,0x28,0x0,0x23,0x0,0x1a,0x0,0x12,0x0,0xb,0x0, +0x2,0x0,0xfb,0xff,0xf6,0xff,0xee,0xff,0xe8,0xff,0xe2,0xff, +0xdd,0xff,0xdb,0xff,0xdb,0xff,0xda,0xff,0xd9,0xff,0xdb,0xff, +0xdf,0xff,0xe3,0xff,0xe7,0xff,0xeb,0xff,0xef,0xff,0xf3,0xff, +0xf9,0xff,0xfe,0xff,0x0,0x0,0x3,0x0,0x6,0x0,0x6,0x0, +0x5,0x0,0x6,0x0,0x5,0x0,0x2,0x0,0xfd,0xff,0xf8,0xff, +0xf3,0xff,0xed,0xff,0xe9,0xff,0xe3,0xff,0xde,0xff,0xdb,0xff, +0xd8,0xff,0xd5,0xff,0xd4,0xff,0xd2,0xff,0xd2,0xff,0xd5,0xff, +0xd6,0xff,0xd7,0xff,0xdd,0xff,0xe1,0xff,0xe5,0xff,0xeb,0xff, +0xf1,0xff,0xf8,0xff,0xff,0xff,0x5,0x0,0xa,0x0,0xf,0x0, +0x14,0x0,0x18,0x0,0x1a,0x0,0x1b,0x0,0x1e,0x0,0x1f,0x0, +0x1d,0x0,0x1b,0x0,0x17,0x0,0x11,0x0,0xc,0x0,0x7,0x0, +0x1,0x0,0xfb,0xff,0xf5,0xff,0xf0,0xff,0xec,0xff,0xe9,0xff, +0xe7,0xff,0xe5,0xff,0xe4,0xff,0xe5,0xff,0xe7,0xff,0xe9,0xff, +0xeb,0xff,0xed,0xff,0xf1,0xff,0xf5,0xff,0xf7,0xff,0xf7,0xff, +0xfa,0xff,0xfe,0xff,0x2,0x0,0x5,0x0,0x8,0x0,0xb,0x0, +0xb,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xa,0x0,0x7,0x0, +0x5,0x0,0x6,0x0,0x6,0x0,0x2,0x0,0xfd,0xff,0xfd,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x4,0x0, +0x7,0x0,0xb,0x0,0xc,0x0,0xe,0x0,0xf,0x0,0xf,0x0, +0x10,0x0,0x10,0x0,0xf,0x0,0xf,0x0,0x10,0x0,0xe,0x0, +0xb,0x0,0x8,0x0,0x1,0x0,0xfb,0xff,0xf7,0xff,0xf1,0xff, +0xed,0xff,0xe9,0xff,0xe5,0xff,0xe1,0xff,0xdd,0xff,0xdb,0xff, +0xda,0xff,0xd9,0xff,0xd9,0xff,0xdc,0xff,0xdf,0xff,0xe2,0xff, +0xe6,0xff,0xea,0xff,0xed,0xff,0xef,0xff,0xf2,0xff,0xf5,0xff, +0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff, +0xef,0xff,0xe9,0xff,0xe3,0xff,0xde,0xff,0xda,0xff,0xd7,0xff, +0xd1,0xff,0xcb,0xff,0xc6,0xff,0xc2,0xff,0xc1,0xff,0xc0,0xff, +0xbf,0xff,0xbf,0xff,0xc1,0xff,0xc2,0xff,0xc5,0xff,0xcb,0xff, +0xd1,0xff,0xd8,0xff,0xde,0xff,0xe5,0xff,0xea,0xff,0xef,0xff, +0xf6,0xff,0xfd,0xff,0x4,0x0,0xa,0x0,0xb,0x0,0xa,0x0, +0xb,0x0,0xd,0x0,0xd,0x0,0xb,0x0,0x7,0x0,0x1,0x0, +0xfe,0xff,0xfb,0xff,0xf8,0xff,0xf4,0xff,0xef,0xff,0xed,0xff, +0xe9,0xff,0xe4,0xff,0xe2,0xff,0xe1,0xff,0xe0,0xff,0xe1,0xff, +0xe2,0xff,0xe4,0xff,0xe5,0xff,0xe6,0xff,0xe7,0xff,0xeb,0xff, +0xee,0xff,0xf0,0xff,0xf2,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x6,0x0,0xa,0x0, +0xf,0x0,0x12,0x0,0x15,0x0,0x19,0x0,0x1b,0x0,0x1c,0x0, +0x20,0x0,0x23,0x0,0x27,0x0,0x2a,0x0,0x2d,0x0,0x2e,0x0, +0x2e,0x0,0x2b,0x0,0x27,0x0,0x25,0x0,0x21,0x0,0x1e,0x0, +0x1a,0x0,0x15,0x0,0x10,0x0,0xb,0x0,0x7,0x0,0x5,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0x1,0x0, +0x4,0x0,0x7,0x0,0xa,0x0,0xf,0x0,0x15,0x0,0x1b,0x0, +0x21,0x0,0x28,0x0,0x2d,0x0,0x32,0x0,0x36,0x0,0x37,0x0, +0x36,0x0,0x35,0x0,0x33,0x0,0x2f,0x0,0x2a,0x0,0x23,0x0, +0x1b,0x0,0x11,0x0,0x9,0x0,0x0,0x0,0xf7,0xff,0xee,0xff, +0xe4,0xff,0xda,0xff,0xd1,0xff,0xca,0xff,0xc3,0xff,0xbf,0xff, +0xbd,0xff,0xbc,0xff,0xbc,0xff,0xbe,0xff,0xc1,0xff,0xc5,0xff, +0xcb,0xff,0xd3,0xff,0xda,0xff,0xe3,0xff,0xec,0xff,0xf6,0xff, +0x0,0x0,0xa,0x0,0x12,0x0,0x1b,0x0,0x23,0x0,0x2a,0x0, +0x30,0x0,0x37,0x0,0x3e,0x0,0x42,0x0,0x45,0x0,0x45,0x0, +0x44,0x0,0x43,0x0,0x42,0x0,0x3c,0x0,0x35,0x0,0x2d,0x0, +0x25,0x0,0x1e,0x0,0x17,0x0,0xf,0x0,0x7,0x0,0xff,0xff, +0xf5,0xff,0xe4,0xff,0xcc,0xff,0xbe,0xff,0xc0,0xff,0xbf,0xff, +0xbc,0xff,0xc7,0xff,0xda,0xff,0xe9,0xff,0xf5,0xff,0xfa,0xff, +0xf8,0xff,0xfc,0xff,0x10,0x0,0x27,0x0,0x33,0x0,0x36,0x0, +0x3a,0x0,0x46,0x0,0x58,0x0,0x62,0x0,0x5d,0x0,0x55,0x0, +0x4e,0x0,0x4b,0x0,0x4c,0x0,0x4b,0x0,0x47,0x0,0x46,0x0, +0x41,0x0,0x36,0x0,0x2b,0x0,0x21,0x0,0x17,0x0,0xe,0x0, +0x5,0x0,0xf7,0xff,0xec,0xff,0xe9,0xff,0xe7,0xff,0xde,0xff, +0xd1,0xff,0xc7,0xff,0xbd,0xff,0xb7,0xff,0xb7,0xff,0xba,0xff, +0xbe,0xff,0xbf,0xff,0xbe,0xff,0xc1,0xff,0xc7,0xff,0xce,0xff, +0xd9,0xff,0xe1,0xff,0xe3,0xff,0xe8,0xff,0xf1,0xff,0xf9,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0xff,0xff,0xf8,0xff, +0xf1,0xff,0xe9,0xff,0xe2,0xff,0xe0,0xff,0xdc,0xff,0xd7,0xff, +0xd4,0xff,0xd2,0xff,0xcc,0xff,0xc4,0xff,0xbc,0xff,0xb4,0xff, +0xb1,0xff,0xb3,0xff,0xb6,0xff,0xb8,0xff,0xba,0xff,0xbe,0xff, +0xc6,0xff,0xce,0xff,0xd4,0xff,0xd7,0xff,0xdb,0xff,0xe0,0xff, +0xe7,0xff,0xef,0xff,0xf7,0xff,0x0,0x0,0x9,0x0,0xe,0x0, +0x12,0x0,0x17,0x0,0x1a,0x0,0x1d,0x0,0x21,0x0,0x26,0x0, +0x2a,0x0,0x2c,0x0,0x2d,0x0,0x2e,0x0,0x2d,0x0,0x2a,0x0, +0x24,0x0,0x1d,0x0,0x15,0x0,0xd,0x0,0x7,0x0,0x3,0x0, +0x0,0x0,0xfc,0xff,0xf8,0xff,0xf5,0xff,0xf1,0xff,0xef,0xff, +0xee,0xff,0xee,0xff,0xed,0xff,0xec,0xff,0xec,0xff,0xf0,0xff, +0xf4,0xff,0xf6,0xff,0xfa,0xff,0x0,0x0,0x5,0x0,0xb,0x0, +0x13,0x0,0x19,0x0,0x1e,0x0,0x23,0x0,0x26,0x0,0x29,0x0, +0x2b,0x0,0x2c,0x0,0x2d,0x0,0x2e,0x0,0x2c,0x0,0x29,0x0, +0x26,0x0,0x21,0x0,0x19,0x0,0x11,0x0,0xa,0x0,0x1,0x0, +0xf7,0xff,0xef,0xff,0xe4,0xff,0xd9,0xff,0xd0,0xff,0xc7,0xff, +0xc0,0xff,0xb9,0xff,0xb4,0xff,0xb1,0xff,0xb0,0xff,0xb1,0xff, +0xb5,0xff,0xba,0xff,0xc0,0xff,0xc7,0xff,0xce,0xff,0xd5,0xff, +0xde,0xff,0xe3,0xff,0xe9,0xff,0xf0,0xff,0xf5,0xff,0xf9,0xff, +0xfe,0xff,0x3,0x0,0x8,0x0,0xa,0x0,0x9,0x0,0xa,0x0, +0xa,0x0,0xa,0x0,0x9,0x0,0x4,0x0,0xfe,0xff,0xfb,0xff, +0xf8,0xff,0xf4,0xff,0xee,0xff,0xe8,0xff,0xe3,0xff,0xdc,0xff, +0xd7,0xff,0xd3,0xff,0xcf,0xff,0xcc,0xff,0xcd,0xff,0xd0,0xff, +0xd3,0xff,0xd7,0xff,0xdc,0xff,0xe2,0xff,0xe7,0xff,0xec,0xff, +0xf0,0xff,0xf4,0xff,0xf9,0xff,0xfd,0xff,0x0,0x0,0x6,0x0, +0xb,0x0,0xd,0x0,0x12,0x0,0x18,0x0,0x1b,0x0,0x20,0x0, +0x24,0x0,0x25,0x0,0x27,0x0,0x29,0x0,0x2b,0x0,0x2d,0x0, +0x2e,0x0,0x2e,0x0,0x2e,0x0,0x2e,0x0,0x2b,0x0,0x29,0x0, +0x24,0x0,0x1d,0x0,0x16,0x0,0xe,0x0,0x7,0x0,0x1,0x0, +0xf9,0xff,0xf1,0xff,0xeb,0xff,0xe6,0xff,0xe0,0xff,0xda,0xff, +0xd7,0xff,0xd5,0xff,0xd3,0xff,0xd5,0xff,0xd6,0xff,0xd8,0xff, +0xdc,0xff,0xdd,0xff,0xdd,0xff,0xe0,0xff,0xe4,0xff,0xe7,0xff, +0xe9,0xff,0xea,0xff,0xea,0xff,0xed,0xff,0xf1,0xff,0xf5,0xff, +0xf7,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf9,0xff,0xf9,0xff, +0xf6,0xff,0xf2,0xff,0xf1,0xff,0xf1,0xff,0xf1,0xff,0xee,0xff, +0xec,0xff,0xec,0xff,0xeb,0xff,0xea,0xff,0xea,0xff,0xe9,0xff, +0xea,0xff,0xec,0xff,0xed,0xff,0xed,0xff,0xef,0xff,0xf1,0xff, +0xf4,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xff,0xff, +0x2,0x0,0x3,0x0,0x6,0x0,0x9,0x0,0xe,0x0,0x12,0x0, +0x16,0x0,0x1a,0x0,0x1e,0x0,0x20,0x0,0x21,0x0,0x25,0x0, +0x27,0x0,0x29,0x0,0x2b,0x0,0x2c,0x0,0x2c,0x0,0x2c,0x0, +0x2b,0x0,0x2a,0x0,0x27,0x0,0x24,0x0,0x20,0x0,0x1c,0x0, +0x16,0x0,0x12,0x0,0xe,0x0,0xa,0x0,0x5,0x0,0x2,0x0, +0xff,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf6,0xff,0xf6,0xff, +0xf8,0xff,0xf7,0xff,0xf8,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0, +0x2,0x0,0x3,0x0,0x5,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0x9,0x0,0xb,0x0,0xd,0x0,0xc,0x0,0x9,0x0,0x8,0x0, +0x7,0x0,0x6,0x0,0x4,0x0,0xff,0xff,0xfb,0xff,0xf8,0xff, +0xf4,0xff,0xef,0xff,0xea,0xff,0xe6,0xff,0xe4,0xff,0xe1,0xff, +0xe0,0xff,0xdf,0xff,0xdd,0xff,0xdc,0xff,0xdc,0xff,0xdc,0xff, +0xdd,0xff,0xde,0xff,0xe1,0xff,0xe7,0xff,0xed,0xff,0xf2,0xff, +0xf7,0xff,0xfc,0xff,0x1,0x0,0x5,0x0,0x9,0x0,0xe,0x0, +0x11,0x0,0x14,0x0,0x17,0x0,0x18,0x0,0x18,0x0,0x1b,0x0, +0x1b,0x0,0x18,0x0,0x18,0x0,0x17,0x0,0x17,0x0,0x17,0x0, +0x15,0x0,0x10,0x0,0xc,0x0,0x9,0x0,0x8,0x0,0x6,0x0, +0x3,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff, +0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff, +0x0,0x0,0x2,0x0,0x5,0x0,0x8,0x0,0x9,0x0,0xa,0x0, +0xa,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x8,0x0, +0x7,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf4,0xff, +0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf7,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf3,0xff,0xf3,0xff, +0xf4,0xff,0xf1,0xff,0xed,0xff,0xeb,0xff,0xe9,0xff,0xe9,0xff, +0xea,0xff,0xeb,0xff,0xee,0xff,0xf2,0xff,0xf6,0xff,0xfb,0xff, +0x0,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0xc,0x0,0xd,0x0,0xd,0x0,0xc,0x0,0xa,0x0, +0x8,0x0,0x6,0x0,0x3,0x0,0x1,0x0,0xfe,0xff,0xfa,0xff, +0xf8,0xff,0xf6,0xff,0xf2,0xff,0xf0,0xff,0xef,0xff,0xee,0xff, +0xec,0xff,0xeb,0xff,0xea,0xff,0xe8,0xff,0xe8,0xff,0xe9,0xff, +0xe8,0xff,0xe8,0xff,0xe9,0xff,0xe7,0xff,0xe8,0xff,0xea,0xff, +0xe8,0xff,0xe9,0xff,0xeb,0xff,0xea,0xff,0xe9,0xff,0xeb,0xff, +0xec,0xff,0xee,0xff,0xef,0xff,0xef,0xff,0xf0,0xff,0xf1,0xff, +0xf1,0xff,0xf3,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfb,0xff,0xf8,0xff,0xf6,0xff, +0xf3,0xff,0xef,0xff,0xed,0xff,0xeb,0xff,0xe7,0xff,0xe4,0xff, +0xe2,0xff,0xde,0xff,0xdb,0xff,0xda,0xff,0xda,0xff,0xdb,0xff, +0xdb,0xff,0xdc,0xff,0xdb,0xff,0xdb,0xff,0xe0,0xff,0xe5,0xff, +0xe9,0xff,0xed,0xff,0xf3,0xff,0xf9,0xff,0xff,0xff,0x5,0x0, +0x9,0x0,0xd,0x0,0x10,0x0,0x12,0x0,0x12,0x0,0x13,0x0, +0x14,0x0,0x13,0x0,0x13,0x0,0x12,0x0,0xf,0x0,0xe,0x0, +0xc,0x0,0x9,0x0,0x5,0x0,0x2,0x0,0xfe,0xff,0xfb,0xff, +0xf8,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff,0xf5,0xff, +0xf7,0xff,0xfc,0xff,0xff,0xff,0x3,0x0,0x9,0x0,0xe,0x0, +0x13,0x0,0x18,0x0,0x1b,0x0,0x1f,0x0,0x23,0x0,0x25,0x0, +0x25,0x0,0x25,0x0,0x24,0x0,0x22,0x0,0x1f,0x0,0x1c,0x0, +0x19,0x0,0x16,0x0,0x12,0x0,0xc,0x0,0x7,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfb,0xff,0xf8,0xff,0xf6,0xff,0xf4,0xff, +0xf2,0xff,0xf1,0xff,0xf1,0xff,0xef,0xff,0xf0,0xff,0xf1,0xff, +0xf1,0xff,0xf2,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x8,0x0,0xb,0x0, +0xa,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x7,0x0,0x8,0x0, +0x7,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0x9,0x0,0xa,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x5,0x0,0x7,0x0,0x9,0x0,0xa,0x0,0xc,0x0, +0xe,0x0,0xf,0x0,0xf,0x0,0x10,0x0,0x11,0x0,0x12,0x0, +0x11,0x0,0xf,0x0,0xd,0x0,0xa,0x0,0x9,0x0,0x6,0x0, +0x2,0x0,0x0,0x0,0xfd,0xff,0xfa,0xff,0xf8,0xff,0xf6,0xff, +0xf3,0xff,0xf1,0xff,0xef,0xff,0xed,0xff,0xec,0xff,0xea,0xff, +0xe9,0xff,0xea,0xff,0xea,0xff,0xea,0xff,0xec,0xff,0xef,0xff, +0xf0,0xff,0xf2,0xff,0xf4,0xff,0xf6,0xff,0xf8,0xff,0xfd,0xff, +0x1,0x0,0x3,0x0,0x6,0x0,0xa,0x0,0xc,0x0,0xe,0x0, +0xf,0x0,0xf,0x0,0xf,0x0,0xe,0x0,0xd,0x0,0xb,0x0, +0x7,0x0,0x4,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xf9,0xff, +0xf5,0xff,0xf2,0xff,0xf0,0xff,0xed,0xff,0xeb,0xff,0xea,0xff, +0xeb,0xff,0xec,0xff,0xed,0xff,0xef,0xff,0xf3,0xff,0xf6,0xff, +0xfa,0xff,0xfd,0xff,0x1,0x0,0x5,0x0,0x8,0x0,0xb,0x0, +0xf,0x0,0x12,0x0,0x15,0x0,0x19,0x0,0x1b,0x0,0x1d,0x0, +0x1f,0x0,0x20,0x0,0x1f,0x0,0x1d,0x0,0x1b,0x0,0x18,0x0, +0x15,0x0,0x13,0x0,0x10,0x0,0xb,0x0,0x8,0x0,0x3,0x0, +0xfe,0xff,0xf9,0xff,0xf3,0xff,0xec,0xff,0xe8,0xff,0xe3,0xff, +0xde,0xff,0xdc,0xff,0xdb,0xff,0xda,0xff,0xd9,0xff,0xd7,0xff, +0xd6,0xff,0xd7,0xff,0xd6,0xff,0xd7,0xff,0xd8,0xff,0xd9,0xff, +0xdd,0xff,0xe0,0xff,0xe2,0xff,0xe5,0xff,0xe8,0xff,0xea,0xff, +0xec,0xff,0xee,0xff,0xf0,0xff,0xf4,0xff,0xf6,0xff,0xf8,0xff, +0xfa,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf6,0xff, +0xf5,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff, +0xfe,0xff,0x1,0x0,0x5,0x0,0x8,0x0,0xb,0x0,0xd,0x0, +0x10,0x0,0x12,0x0,0x15,0x0,0x16,0x0,0x16,0x0,0x16,0x0, +0x15,0x0,0x16,0x0,0x17,0x0,0x14,0x0,0x13,0x0,0x12,0x0, +0xf,0x0,0xc,0x0,0x9,0x0,0x5,0x0,0x2,0x0,0x0,0x0, +0xfc,0xff,0xf7,0xff,0xf4,0xff,0xf0,0xff,0xed,0xff,0xeb,0xff, +0xe8,0xff,0xe4,0xff,0xe2,0xff,0xe2,0xff,0xe2,0xff,0xe2,0xff, +0xe3,0xff,0xe5,0xff,0xe5,0xff,0xe7,0xff,0xea,0xff,0xed,0xff, +0xef,0xff,0xf2,0xff,0xf5,0xff,0xf8,0xff,0xfa,0xff,0xfe,0xff, +0x2,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x8,0x0, +0x8,0x0,0x9,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0x4,0x0,0x6,0x0,0x6,0x0, +0x9,0x0,0xb,0x0,0xa,0x0,0xb,0x0,0xe,0x0,0xd,0x0, +0xc,0x0,0xc,0x0,0xd,0x0,0xd,0x0,0xd,0x0,0xe,0x0, +0xe,0x0,0xe,0x0,0xf,0x0,0x10,0x0,0x13,0x0,0x14,0x0, +0x15,0x0,0x17,0x0,0x1a,0x0,0x1a,0x0,0x19,0x0,0x1a,0x0, +0x1a,0x0,0x19,0x0,0x17,0x0,0x15,0x0,0x14,0x0,0x13,0x0, +0x12,0x0,0xf,0x0,0xc,0x0,0xc,0x0,0xb,0x0,0x7,0x0, +0x5,0x0,0x4,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0,0x2,0x0, +0x5,0x0,0x6,0x0,0x6,0x0,0x8,0x0,0x9,0x0,0xb,0x0, +0xd,0x0,0xe,0x0,0xe,0x0,0xd,0x0,0xc,0x0,0xc,0x0, +0xd,0x0,0xd,0x0,0xd,0x0,0xe,0x0,0xf,0x0,0xe,0x0, +0xe,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x11,0x0,0x11,0x0, +0x13,0x0,0x15,0x0,0x17,0x0,0x1a,0x0,0x1c,0x0,0x1d,0x0, +0x1f,0x0,0x21,0x0,0x21,0x0,0x22,0x0,0x23,0x0,0x22,0x0, +0x23,0x0,0x24,0x0,0x22,0x0,0x20,0x0,0x1f,0x0,0x1d,0x0, +0x1a,0x0,0x17,0x0,0x14,0x0,0x10,0x0,0xe,0x0,0xc,0x0, +0x9,0x0,0x4,0x0,0x1,0x0,0xfd,0xff,0xfa,0xff,0xf9,0xff, +0xf5,0xff,0xf2,0xff,0xf2,0xff,0xf1,0xff,0xf1,0xff,0xf2,0xff, +0xf2,0xff,0xf3,0xff,0xf4,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xfc,0xff,0xff,0xff,0x2,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x6,0x0, +0x5,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x6,0x0,0x5,0x0,0x6,0x0, +0x9,0x0,0xa,0x0,0xc,0x0,0xe,0x0,0xf,0x0,0x10,0x0, +0x13,0x0,0x13,0x0,0x14,0x0,0x16,0x0,0x17,0x0,0x17,0x0, +0x18,0x0,0x17,0x0,0x14,0x0,0x12,0x0,0x10,0x0,0xe,0x0, +0xb,0x0,0x7,0x0,0x4,0x0,0x1,0x0,0xfe,0xff,0xfb,0xff, +0xf9,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff,0xf2,0xff,0xf0,0xff, +0xf0,0xff,0xf0,0xff,0xf1,0xff,0xf4,0xff,0xf7,0xff,0xf8,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf4,0xff,0xf1,0xff,0xed,0xff,0xea,0xff,0xe7,0xff, +0xe5,0xff,0xe2,0xff,0xe1,0xff,0xe0,0xff,0xe0,0xff,0xdf,0xff, +0xdf,0xff,0xe2,0xff,0xe4,0xff,0xe8,0xff,0xec,0xff,0xf0,0xff, +0xf4,0xff,0xf9,0xff,0xfd,0xff,0x1,0x0,0x5,0x0,0x8,0x0, +0xc,0x0,0xf,0x0,0x10,0x0,0x11,0x0,0x13,0x0,0x13,0x0, +0x13,0x0,0x13,0x0,0x12,0x0,0xf,0x0,0xe,0x0,0xb,0x0, +0x6,0x0,0x1,0x0,0xfb,0xff,0xf6,0xff,0xf0,0xff,0xeb,0xff, +0xe7,0xff,0xe3,0xff,0xdf,0xff,0xdc,0xff,0xd9,0xff,0xd8,0xff, +0xd8,0xff,0xd8,0xff,0xd8,0xff,0xdb,0xff,0xde,0xff,0xe1,0xff, +0xe4,0xff,0xe9,0xff,0xee,0xff,0xf2,0xff,0xf6,0xff,0xf9,0xff, +0xfe,0xff,0x2,0x0,0x4,0x0,0x6,0x0,0x8,0x0,0x9,0x0, +0x9,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0x6,0x0,0x5,0x0, +0x5,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff, +0xf2,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff, +0xf6,0xff,0xf9,0xff,0xfc,0xff,0xff,0xff,0x2,0x0,0x5,0x0, +0x8,0x0,0xb,0x0,0xe,0x0,0xf,0x0,0x12,0x0,0x15,0x0, +0x17,0x0,0x19,0x0,0x1b,0x0,0x1c,0x0,0x1c,0x0,0x1d,0x0, +0x1c,0x0,0x1a,0x0,0x1b,0x0,0x1b,0x0,0x1b,0x0,0x1b,0x0, +0x1b,0x0,0x1a,0x0,0x1a,0x0,0x1a,0x0,0x19,0x0,0x16,0x0, +0x14,0x0,0x12,0x0,0x11,0x0,0xf,0x0,0xd,0x0,0xa,0x0, +0x8,0x0,0x5,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0, +0x3,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x9,0x0,0xa,0x0, +0xc,0x0,0xd,0x0,0xf,0x0,0x10,0x0,0x10,0x0,0x10,0x0, +0x11,0x0,0xf,0x0,0xf,0x0,0xe,0x0,0xb,0x0,0x9,0x0, +0x8,0x0,0x5,0x0,0x3,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfb,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf6,0xff,0xf6,0xff, +0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff, +0xf4,0xff,0xf3,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff, +0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf7,0xff, +0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff, +0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf3,0xff,0xf2,0xff, +0xf1,0xff,0xef,0xff,0xee,0xff,0xed,0xff,0xed,0xff,0xeb,0xff, +0xe9,0xff,0xe8,0xff,0xe7,0xff,0xe7,0xff,0xe6,0xff,0xe6,0xff, +0xe4,0xff,0xe4,0xff,0xe6,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff, +0xe8,0xff,0xea,0xff,0xeb,0xff,0xed,0xff,0xf0,0xff,0xf1,0xff, +0xf4,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0x2,0x0, +0x6,0x0,0x9,0x0,0xb,0x0,0xe,0x0,0x11,0x0,0x13,0x0, +0x15,0x0,0x16,0x0,0x17,0x0,0x18,0x0,0x17,0x0,0x16,0x0, +0x15,0x0,0x12,0x0,0xf,0x0,0xe,0x0,0xc,0x0,0x8,0x0, +0x6,0x0,0x4,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x1,0x0,0x3,0x0,0x5,0x0,0x8,0x0,0xa,0x0,0xd,0x0, +0xf,0x0,0x11,0x0,0x13,0x0,0x15,0x0,0x17,0x0,0x19,0x0, +0x19,0x0,0x1a,0x0,0x1b,0x0,0x1c,0x0,0x1c,0x0,0x1d,0x0, +0x1d,0x0,0x1b,0x0,0x1b,0x0,0x1b,0x0,0x19,0x0,0x18,0x0, +0x17,0x0,0x15,0x0,0x14,0x0,0x13,0x0,0x11,0x0,0x10,0x0, +0xf,0x0,0xf,0x0,0xe,0x0,0xe,0x0,0xf,0x0,0xf,0x0, +0x10,0x0,0x12,0x0,0x12,0x0,0x13,0x0,0x15,0x0,0x16,0x0, +0x15,0x0,0x16,0x0,0x16,0x0,0x15,0x0,0x14,0x0,0x13,0x0, +0x11,0x0,0x11,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0xe,0x0, +0xc,0x0,0xb,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xc,0x0, +0xb,0x0,0xb,0x0,0xb,0x0,0xb,0x0,0x9,0x0,0x7,0x0, +0x6,0x0,0x6,0x0,0x4,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xf7,0xff,0xf4,0xff, +0xf3,0xff,0xf1,0xff,0xee,0xff,0xed,0xff,0xed,0xff,0xec,0xff, +0xec,0xff,0xeb,0xff,0xea,0xff,0xea,0xff,0xea,0xff,0xe8,0xff, +0xe7,0xff,0xe8,0xff,0xea,0xff,0xeb,0xff,0xec,0xff,0xee,0xff, +0xf0,0xff,0xf2,0xff,0xf5,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf5,0xff, +0xf2,0xff,0xf0,0xff,0xef,0xff,0xeb,0xff,0xe7,0xff,0xe6,0xff, +0xe4,0xff,0xe1,0xff,0xdf,0xff,0xdd,0xff,0xdc,0xff,0xdc,0xff, +0xdd,0xff,0xdf,0xff,0xe1,0xff,0xe4,0xff,0xe9,0xff,0xee,0xff, +0xf1,0xff,0xf5,0xff,0xfa,0xff,0xff,0xff,0x4,0x0,0x8,0x0, +0xc,0x0,0x10,0x0,0x14,0x0,0x16,0x0,0x18,0x0,0x19,0x0, +0x18,0x0,0x17,0x0,0x17,0x0,0x15,0x0,0x12,0x0,0x10,0x0, +0x10,0x0,0xe,0x0,0xb,0x0,0x8,0x0,0x6,0x0,0x4,0x0, +0x2,0x0,0x1,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf5,0xff, +0xf3,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff,0xf2,0xff,0xf3,0xff, +0xf5,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0x0,0x0, +0x2,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x9,0x0,0xa,0x0, +0xb,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xc,0x0,0xc,0x0, +0xa,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x5,0x0, +0x8,0x0,0xb,0x0,0xd,0x0,0xe,0x0,0x10,0x0,0x12,0x0, +0x15,0x0,0x17,0x0,0x17,0x0,0x18,0x0,0x1a,0x0,0x1a,0x0, +0x19,0x0,0x18,0x0,0x17,0x0,0x16,0x0,0x14,0x0,0x11,0x0, +0xf,0x0,0xd,0x0,0xb,0x0,0x9,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x3,0x0,0x5,0x0,0x7,0x0,0x9,0x0,0xc,0x0,0xd,0x0, +0xe,0x0,0xe,0x0,0xf,0x0,0x10,0x0,0x11,0x0,0x12,0x0, +0x13,0x0,0x13,0x0,0x13,0x0,0x13,0x0,0x11,0x0,0x10,0x0, +0xf,0x0,0xd,0x0,0xb,0x0,0xa,0x0,0x8,0x0,0x6,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x2,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff, +0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff, +0xf4,0xff,0xf2,0xff,0xf2,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff, +0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff, +0xf5,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff, +0xf3,0xff,0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf3,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x3,0x0,0x6,0x0,0x8,0x0, +0xa,0x0,0xd,0x0,0xf,0x0,0x11,0x0,0x12,0x0,0x14,0x0, +0x15,0x0,0x14,0x0,0x13,0x0,0x13,0x0,0x11,0x0,0xf,0x0, +0xd,0x0,0xa,0x0,0x8,0x0,0x7,0x0,0x5,0x0,0x2,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xf9,0xff, +0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff, +0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff, +0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x8,0x0,0xa,0x0,0xb,0x0, +0xb,0x0,0xc,0x0,0xd,0x0,0xd,0x0,0xd,0x0,0xd,0x0, +0xd,0x0,0xc,0x0,0xb,0x0,0x9,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x5,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x5,0x0, +0x6,0x0,0x7,0x0,0x9,0x0,0xa,0x0,0xb,0x0,0xd,0x0, +0xd,0x0,0xe,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0x10,0x0, +0xf,0x0,0xd,0x0,0xd,0x0,0xd,0x0,0xc,0x0,0xa,0x0, +0x8,0x0,0x6,0x0,0x5,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff, +0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff, +0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf8,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x8,0x0,0x9,0x0, +0x8,0x0,0x7,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x7,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf6,0xff,0xf4,0xff,0xf1,0xff,0xf0,0xff,0xee,0xff, +0xed,0xff,0xed,0xff,0xec,0xff,0xec,0xff,0xec,0xff,0xec,0xff, +0xef,0xff,0xf0,0xff,0xf0,0xff,0xf3,0xff,0xf7,0xff,0xfa,0xff, +0xfd,0xff,0x0,0x0,0x2,0x0,0x4,0x0,0x7,0x0,0x9,0x0, +0xb,0x0,0xd,0x0,0xe,0x0,0xf,0x0,0xf,0x0,0xf,0x0, +0xd,0x0,0xc,0x0,0xc,0x0,0xa,0x0,0x8,0x0,0x6,0x0, +0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x5,0x0,0x7,0x0,0x9,0x0,0xa,0x0,0xb,0x0,0xb,0x0, +0xc,0x0,0xf,0x0,0xf,0x0,0xe,0x0,0x10,0x0,0x10,0x0, +0xf,0x0,0x10,0x0,0x10,0x0,0xf,0x0,0xe,0x0,0xe,0x0, +0xc,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x4,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xf9,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff, +0xf5,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0x3,0x0,0x5,0x0,0x6,0x0, +0x7,0x0,0x9,0x0,0xa,0x0,0xb,0x0,0xc,0x0,0xc,0x0, +0xc,0x0,0xc,0x0,0xa,0x0,0x9,0x0,0x8,0x0,0x7,0x0, +0x4,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x2,0x0,0x4,0x0,0x6,0x0,0x7,0x0,0x7,0x0, +0x8,0x0,0x9,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xc,0x0, +0xb,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x8,0x0, +0x7,0x0,0x7,0x0,0x6,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0xff,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff,0xf7,0xff,0xf5,0xff, +0xf4,0xff,0xf2,0xff,0xf1,0xff,0xf0,0xff,0xef,0xff,0xee,0xff, +0xed,0xff,0xef,0xff,0xef,0xff,0xef,0xff,0xf0,0xff,0xf2,0xff, +0xf3,0xff,0xf5,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x6,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xfd,0xff,0xfb,0xff, +0xf8,0xff,0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf3,0xff,0xf2,0xff, +0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff,0xf3,0xff,0xf3,0xff, +0xf5,0xff,0xf8,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0x0,0x0, +0x3,0x0,0x5,0x0,0x7,0x0,0x9,0x0,0xc,0x0,0xd,0x0, +0xe,0x0,0x10,0x0,0x12,0x0,0x12,0x0,0x13,0x0,0x14,0x0, +0x14,0x0,0x14,0x0,0x14,0x0,0x13,0x0,0x11,0x0,0xf,0x0, +0xe,0x0,0xc,0x0,0xb,0x0,0x9,0x0,0x7,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x8,0x0, +0x8,0x0,0x9,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0, +0x9,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x4,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfc,0xff,0xf9,0xff, +0xf7,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff, +0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff,0xf6,0xff, +0xf8,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x3,0x0,0x6,0x0,0x8,0x0,0xa,0x0,0xb,0x0,0xe,0x0, +0x10,0x0,0x11,0x0,0x12,0x0,0x12,0x0,0x13,0x0,0x13,0x0, +0x12,0x0,0x11,0x0,0x11,0x0,0x10,0x0,0xe,0x0,0xd,0x0, +0xc,0x0,0xa,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x6,0x0,0x7,0x0,0x9,0x0,0xb,0x0, +0xd,0x0,0xe,0x0,0x10,0x0,0x11,0x0,0x12,0x0,0x14,0x0, +0x15,0x0,0x16,0x0,0x17,0x0,0x16,0x0,0x14,0x0,0x14,0x0, +0x14,0x0,0x13,0x0,0x11,0x0,0xf,0x0,0xf,0x0,0xd,0x0, +0xb,0x0,0x9,0x0,0x8,0x0,0x6,0x0,0x5,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff, +0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff, +0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf4,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf7,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x9,0x0, +0x9,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x6,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x2,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x8,0x0,0x8,0x0,0x9,0x0, +0xb,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xc,0x0,0xb,0x0, +0xb,0x0,0xa,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x1,0x0,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff, +0xf3,0xff,0xf2,0xff,0xf2,0xff,0xf2,0xff,0xf2,0xff,0xf2,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff, +0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf5,0xff, +0xf5,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff,0xf4,0xff, +0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf7,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff, +0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x6,0x0, +0x6,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x6,0x0,0x7,0x0,0x6,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0, +0x6,0x0,0x7,0x0,0x7,0x0,0x5,0x0,0x5,0x0,0x4,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x7,0x0,0x5,0x0, +0x6,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x5,0x0,0x4,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x8,0x0, +0x7,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xf9,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf5,0xff,0xf6,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x6,0x0,0x6,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x4,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zombiedeath.pcm b/src/client/sound/data/zombiedeath.pcm new file mode 100755 index 0000000..4307343 --- /dev/null +++ b/src/client/sound/data/zombiedeath.pcm @@ -0,0 +1,5516 @@ +unsigned char PCM_zombiedeath[66166] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x33,0x81,0x0,0x0,0x54,0x2,0xb8,0x2,0x28,0x3,0x8,0x4, +0xf6,0x4,0xfe,0x5,0x1e,0x7,0x15,0x8,0xf6,0x8,0x99,0x9, +0xed,0x9,0x33,0xa,0x91,0xa,0x23,0xb,0xad,0xb,0x1b,0xc, +0xc2,0xc,0x41,0xd,0x42,0xd,0x1f,0xd,0xfc,0xc,0x6,0xd, +0x43,0xd,0x53,0xd,0x1a,0xd,0xab,0xc,0x56,0xc,0x3d,0xc, +0xf6,0xb,0x97,0xb,0x16,0xb,0x6,0xa,0xf5,0x8,0x38,0x8, +0x62,0x7,0xc6,0x6,0x6b,0x6,0xa6,0x5,0x9b,0x4,0xa0,0x3, +0x9b,0x2,0xc4,0x1,0x73,0x1,0x8e,0x1,0xa0,0x1,0x17,0x1, +0xcb,0xff,0x84,0xfe,0xee,0xfd,0xa1,0xfd,0x81,0xfd,0xea,0xfd, +0x5d,0xfe,0xa4,0xfe,0xc8,0xfe,0xd1,0xfd,0x41,0xfc,0x31,0xfc, +0x1f,0xfd,0x53,0xfd,0x8a,0xfd,0x63,0xfe,0xa9,0xfe,0x3f,0xfe, +0x41,0xfe,0xdc,0xfe,0xbb,0xff,0xf3,0x0,0x3d,0x2,0x90,0x2, +0xe7,0x1,0xbd,0x1,0x5b,0x2,0xf8,0x2,0xcd,0x3,0x73,0x4, +0x2a,0x4,0xdc,0x3,0x63,0x4,0xad,0x5,0x19,0x7,0x6c,0x7, +0x30,0x7,0xae,0x7,0xb2,0x7,0xd9,0x6,0xec,0x6,0xb4,0x7, +0x23,0x8,0xef,0x8,0x87,0x9,0x16,0x8,0x0,0x6,0xd1,0x5, +0x7d,0x6,0x70,0x6,0x4c,0x6,0x30,0x6,0xf0,0x5,0xb1,0x5, +0xbf,0x4,0x4e,0x3,0x1d,0x2,0xfb,0x0,0xaf,0x0,0x4d,0x1, +0xff,0x0,0xda,0xff,0xbe,0xfe,0x14,0xfd,0x90,0xfb,0x72,0xfb, +0xdd,0xfb,0x66,0xfb,0x14,0xfa,0x52,0xf9,0x6b,0xf9,0xd8,0xf8, +0xd3,0xf7,0x7b,0xf7,0xd0,0xf6,0xe1,0xf5,0x2f,0xf6,0xef,0xf6, +0x2,0xf7,0xbf,0xf6,0xd5,0xf5,0x9c,0xf4,0x8b,0xf4,0x3b,0xf5, +0xcd,0xf5,0xbb,0xf6,0x49,0xf7,0xbc,0xf6,0x83,0xf6,0xca,0xf6, +0xa0,0xf6,0x17,0xf7,0x95,0xf8,0x85,0xf9,0x79,0xf9,0x3b,0xf9, +0x39,0xf9,0x76,0xf9,0x3,0xfa,0xf1,0xfa,0x85,0xfb,0x6b,0xfb, +0xb2,0xfb,0x86,0xfc,0x2a,0xfd,0xb8,0xfd,0x56,0xfe,0xa,0xff, +0xb3,0xff,0x9d,0xff,0x1d,0xff,0xe2,0xfe,0x4c,0xfe,0xf6,0xfd, +0x47,0xff,0xe6,0x0,0x16,0x1,0x62,0x0,0x47,0xff,0xd1,0xfd, +0x17,0xfd,0xf,0xfe,0x38,0x0,0xe4,0x1,0xb4,0x1,0xd1,0xff, +0x7f,0xfd,0xec,0xfb,0xac,0xfb,0xc0,0xfc,0x1b,0xfe,0xfb,0xfd, +0xb6,0xfc,0xee,0xfb,0x57,0xfb,0xfa,0xfa,0xbe,0xfb,0x76,0xfc, +0x43,0xfc,0xc9,0xfb,0x65,0xfb,0x54,0xfb,0xc4,0xfa,0xbf,0xf9, +0x23,0xfa,0xd1,0xfa,0x60,0xfa,0x4d,0xfa,0xeb,0xf9,0x94,0xf8, +0x91,0xf8,0xd,0xfa,0x5b,0xfb,0x2,0xfc,0x7c,0xfc,0x7,0xfd, +0xa4,0xfc,0xf4,0xfb,0xd3,0xfc,0xf5,0xfd,0x49,0xfe,0xc1,0xfe, +0xb2,0xfe,0x19,0xfe,0x91,0xfe,0xd7,0xff,0xac,0x0,0x25,0x1, +0x1d,0x2,0x9d,0x3,0xec,0x4,0x80,0x5,0x28,0x5,0xf4,0x4, +0xb7,0x5,0x1d,0x6,0x5,0x6,0xc2,0x6,0xdc,0x7,0x9d,0x8, +0x4b,0x9,0xe9,0x9,0x34,0xa,0x69,0xa,0x4f,0xb,0xee,0xb, +0x34,0xb,0xc8,0xa,0x1d,0xb,0xbb,0xb,0x3a,0xd,0x78,0xd, +0x49,0xb,0x47,0x9,0xda,0x7,0x40,0x7,0x2a,0x9,0xb2,0xb, +0x6,0xc,0x4b,0xa,0xc5,0x7,0x63,0x5,0xdd,0x3,0x29,0x4, +0x86,0x5,0x62,0x6,0x67,0x7,0xe2,0x7,0x57,0x6,0xa3,0x4, +0x3e,0x3,0x93,0x1,0xb7,0x1,0x85,0x3,0xa5,0x4,0xf6,0x3, +0xcd,0x0,0x50,0xfd,0xd6,0xfc,0xda,0xfe,0x7e,0x1,0xbc,0x3, +0x4d,0x4,0xf7,0x2,0xf3,0x0,0x2,0x0,0x25,0x1,0x40,0x2, +0x1f,0x1,0xbe,0xff,0xfc,0xfe,0x5,0xfd,0x48,0xfc,0xc7,0xfe, +0xf,0x1,0x65,0x2,0x6d,0x3,0x64,0x2,0x96,0x1,0xcb,0x2, +0x7c,0x3,0x56,0x4,0xd6,0x5,0x93,0x5,0x1d,0x4,0xd7,0x2, +0x60,0x2,0xb6,0x3,0xe6,0x5,0x51,0x7,0x20,0x7,0xf1,0x5, +0xca,0x5,0x36,0x6,0x6f,0x6,0x89,0x7,0x73,0x8,0xe7,0x8, +0x8f,0xa,0xe6,0xb,0xed,0xa,0x5f,0x8,0xa0,0x5,0xb7,0x3, +0xae,0x2,0x5d,0x2,0xb4,0x2,0x15,0x3,0xf2,0x3,0xb3,0x5, +0x10,0x7,0xe3,0x6,0xce,0x4,0xf,0x2,0xce,0x0,0x9a,0x0, +0x15,0x0,0xd5,0xff,0xce,0xff,0xdc,0xfe,0xe2,0xfd,0xb,0xfe, +0xfd,0xfd,0x62,0xfd,0xfc,0xfc,0xd7,0xfb,0xf7,0xfa,0xa8,0xfb, +0xa5,0xfb,0xfa,0xfa,0xf4,0xfa,0xbe,0xfa,0x6,0xfc,0xd2,0xfe, +0x30,0x0,0x74,0x0,0xff,0xfe,0xcd,0xfb,0x1d,0xfb,0x4a,0xfc, +0xa8,0xfc,0xcd,0xfd,0xe4,0xfe,0xcf,0xfe,0x55,0xff,0x69,0x0, +0xd4,0x1,0x1d,0x4,0xb0,0x6,0x87,0x8,0xad,0x8,0x3d,0x8, +0xb9,0x7,0x81,0x5,0x32,0x4,0xc,0x6,0xa4,0x7,0x5a,0x8, +0x94,0x9,0x73,0xa,0x50,0xc,0xce,0xf,0x29,0x12,0x75,0x12, +0xc6,0x11,0x19,0x11,0xa4,0x10,0xd3,0xf,0xbd,0xe,0xcf,0xc, +0xa6,0x9,0x91,0x7,0xbd,0x6,0xd1,0x4,0x54,0x3,0x36,0x4, +0x34,0x5,0x38,0x5,0xe2,0x4,0xce,0x2,0xfc,0xff,0x52,0xff, +0xc4,0xfe,0x1f,0xfc,0x4c,0xf9,0x88,0xf6,0xe9,0xf2,0xb0,0xee, +0x2c,0xea,0x55,0xe7,0xaa,0xe6,0x2c,0xe6,0xe1,0xe5,0xfa,0xe4, +0x17,0xe3,0xed,0xe2,0xfa,0xe2,0x2b,0xe1,0xf0,0xdf,0xaf,0xde, +0xe7,0xdc,0x39,0xdd,0x23,0xde,0x19,0xde,0xc1,0xde,0x2e,0xdf, +0x17,0xde,0xd4,0xdc,0x84,0xdc,0xf3,0xdc,0x6b,0xde,0xb3,0xe1, +0xa7,0xe4,0x7f,0xe5,0xf2,0xe6,0xd4,0xe9,0x2c,0xed,0x85,0xf1, +0x6e,0xf4,0x43,0xf5,0x41,0xf7,0xba,0xf8,0xcb,0xf7,0x52,0xf7, +0x68,0xf8,0x53,0xfb,0x6a,0x0,0x16,0x5,0xbf,0x7,0x14,0x9, +0xd3,0x9,0x2b,0xb,0x16,0xd,0xe,0xf,0x11,0x12,0xd3,0x14, +0x6,0x15,0xc6,0x14,0x29,0x15,0x68,0x13,0x71,0x11,0x60,0x12, +0x13,0x13,0xbd,0x12,0xcd,0x13,0x31,0x14,0x1f,0x13,0xce,0x12, +0x92,0x12,0x68,0x12,0x35,0x13,0x62,0x12,0x9d,0xe,0x8b,0xa, +0x48,0x7,0xb8,0x3,0x31,0x1,0xe0,0x0,0x86,0xff,0x52,0xfc, +0xa9,0xfa,0x9c,0xf9,0xb2,0xf7,0xa6,0xf7,0x46,0xf8,0xd,0xf6, +0xc9,0xf2,0x5f,0xf0,0x25,0xed,0x65,0xe9,0xa4,0xe7,0x5d,0xe7, +0xb7,0xe5,0x93,0xe2,0x4a,0xe0,0x84,0xdf,0x4e,0xdf,0xec,0xdf, +0x61,0xe1,0xc2,0xe1,0x5,0xe1,0x64,0xe1,0x93,0xe2,0x2f,0xe3, +0x97,0xe3,0xf2,0xe3,0x38,0xe4,0xb3,0xe4,0x87,0xe5,0x66,0xe7, +0xcf,0xe9,0x1c,0xeb,0xf6,0xeb,0x1c,0xee,0x3e,0xf1,0x85,0xf4, +0x5e,0xf8,0x5d,0xfc,0xff,0xfe,0xde,0x0,0xae,0x2,0x70,0x3, +0x63,0x4,0x18,0x7,0x38,0xa,0xd5,0xc,0xc5,0xe,0x3c,0x10, +0x3d,0x12,0xde,0x13,0x52,0x14,0x3c,0x15,0xe9,0x16,0x35,0x18, +0x7,0x19,0xbd,0x19,0x3a,0x1a,0x50,0x1a,0xf9,0x1a,0x79,0x1c, +0x39,0x1d,0x4d,0x1d,0xa8,0x1d,0x2c,0x1d,0xbd,0x1a,0x2,0x17, +0xf8,0x13,0xa4,0x12,0x22,0x12,0x6e,0x12,0xd3,0x12,0x9e,0x11, +0xc6,0x10,0x86,0x11,0xd1,0x10,0x50,0xe,0xdf,0xb,0x76,0x8, +0x1b,0x4,0x3d,0x1,0x9a,0xff,0x7b,0xfd,0xda,0xfb,0x2a,0xfb, +0xda,0xf9,0xce,0xf8,0x36,0xf9,0x43,0xf9,0xc2,0xf8,0x5,0xf9, +0x92,0xf8,0x45,0xf6,0xcc,0xf3,0xea,0xf1,0x5c,0xf0,0xec,0xef, +0x79,0xf0,0xf0,0xf0,0x60,0xf1,0xa8,0xf1,0xe2,0xf1,0x21,0xf3, +0xd9,0xf4,0x7b,0xf6,0x82,0xf8,0xaf,0xf9,0x40,0xfa,0x3e,0xfc, +0xa7,0xfe,0x2b,0x0,0xa,0x1,0x18,0x1,0x8d,0x1,0xe6,0x2, +0xa6,0x3,0x3b,0x5,0x13,0x9,0x6d,0xc,0x27,0xe,0xf,0x10, +0xed,0x11,0x37,0x13,0xe1,0x14,0x6d,0x16,0x2a,0x17,0x30,0x18, +0x6f,0x19,0x96,0x19,0x1,0x19,0xbd,0x19,0x7a,0x1c,0x9b,0x1e, +0x85,0x1e,0x22,0x1e,0x5c,0x1e,0x39,0x1e,0x6,0x1d,0x60,0x1b, +0x6d,0x1b,0x79,0x1c,0x55,0x1c,0x35,0x1c,0x2b,0x1b,0xd5,0x17, +0x37,0x16,0x2c,0x16,0x81,0x13,0x78,0x10,0x39,0xf,0x99,0xc, +0xa3,0x8,0x57,0x7,0x8c,0x8,0xb,0x8,0x8a,0x5,0xa0,0x3, +0xb8,0x1,0x83,0xff,0x72,0xfe,0xef,0xfd,0x9,0xfd,0xaa,0xfb, +0xad,0xf9,0xab,0xf6,0x66,0xf2,0xac,0xef,0x5c,0xf0,0xd3,0xf0, +0x3d,0xf0,0x7a,0xf1,0xa2,0xf2,0xda,0xf1,0x59,0xf1,0xc0,0xf0, +0x19,0xef,0x9b,0xef,0xd0,0xf2,0x4b,0xf4,0xff,0xf2,0xbc,0xf1, +0x78,0xf1,0x21,0xf2,0xb3,0xf3,0x9a,0xf5,0x89,0xf7,0xd1,0xf8, +0x85,0xf9,0xfd,0xfa,0x5a,0xfd,0x8b,0x0,0xb2,0x3,0x5d,0x4, +0x45,0x3,0xb2,0x2,0x91,0x2,0xe5,0x3,0x98,0x7,0x5e,0xb, +0xdd,0xc,0x9e,0xb,0xc4,0x9,0xa1,0xa,0x84,0xd,0x6f,0xf, +0xa,0x11,0x11,0x14,0x5e,0x16,0x8f,0x15,0x7d,0x13,0x5,0x12, +0xb1,0x10,0x30,0x11,0x3a,0x14,0xd,0x15,0xf8,0x11,0x25,0xf, +0x9,0xd,0xc3,0xa,0xc7,0xb,0x37,0xf,0x9e,0x10,0x97,0x11, +0x52,0x12,0xe0,0xd,0x1c,0x7,0x92,0x5,0xed,0x7,0xc7,0x8, +0xfe,0x6,0x40,0x3,0xbe,0xff,0xb2,0xff,0xae,0x1,0x26,0x2, +0x5e,0x1,0xe0,0xff,0x5a,0xfd,0x55,0xfb,0xe8,0xf9,0xe1,0xf8, +0xe0,0xfa,0x10,0xff,0x8a,0x0,0xc2,0xfd,0xbd,0xf8,0xa8,0xf3, +0x1,0xf1,0xb5,0xf2,0xf4,0xf6,0xbe,0xf9,0x34,0xfa,0x16,0xf9, +0x54,0xf6,0xd4,0xf4,0xe4,0xf7,0x3,0xfd,0xab,0xff,0x1,0xff, +0xb5,0xfc,0xb1,0xf9,0x99,0xf6,0x5a,0xf6,0x8f,0xfa,0x4a,0xff, +0xe6,0x0,0x92,0x1,0x7a,0x3,0xb0,0x3,0x2e,0x1,0x9e,0x0, +0x64,0x3,0xea,0x5,0x32,0x7,0x71,0x7,0xcb,0x5,0xe5,0x4, +0x15,0x8,0x74,0xc,0xad,0xd,0xd6,0xc,0xe4,0xa,0x23,0x6, +0x88,0x1,0x83,0x1,0xd,0x4,0x2d,0x5,0x4a,0x5,0x4f,0x7, +0xff,0x9,0xc6,0x8,0x50,0x6,0x16,0x8,0x53,0x9,0xac,0x4, +0xb7,0xff,0xa0,0xff,0x1c,0x0,0x46,0xfe,0x85,0xfe,0xc6,0xff, +0xaf,0xfc,0x2e,0xfa,0x46,0xfc,0xd5,0xfc,0x93,0xfc,0xf8,0xff, +0x7f,0x0,0xf9,0xf9,0xf0,0xf3,0xc5,0xf2,0xee,0xf2,0xf9,0xf3, +0x71,0xf7,0xea,0xf8,0xf6,0xf4,0x9e,0xef,0x76,0xec,0x7e,0xea, +0xb2,0xe9,0xfc,0xec,0x1b,0xf3,0xc,0xf5,0xfb,0xf1,0xa,0xf0, +0x58,0xf0,0xd,0xf0,0x21,0xef,0x47,0xf0,0x9a,0xf3,0xaa,0xf3, +0xfc,0xef,0xfa,0xee,0xd8,0xef,0xf3,0xee,0x2f,0xf0,0xc2,0xf5, +0xb1,0xfa,0xe9,0xfb,0x4a,0xfc,0xe6,0xfb,0x5c,0xf8,0x38,0xf7, +0xa1,0xfa,0x20,0xfb,0x86,0xfa,0xbf,0xfc,0x7b,0xfb,0x83,0xf8, +0x2d,0xfb,0xcc,0xff,0x37,0x1,0xa,0x0,0xa5,0xfe,0x67,0xff, +0x8e,0x1,0x7d,0x3,0xba,0x5,0xc5,0x6,0x0,0x4,0x9f,0xff, +0xdd,0xfe,0x47,0x2,0x79,0x6,0x5a,0xa,0x8b,0xc,0x64,0x9, +0x1,0x2,0xa2,0xfd,0x7,0x0,0x1d,0x4,0xcb,0x5,0x36,0x7, +0x3a,0x7,0xc2,0x3,0x31,0x1,0x4f,0x1,0xa,0x2,0x77,0x4, +0x3a,0x7,0xa9,0x6,0x37,0x4,0x3f,0x2,0x7a,0xff,0x1c,0xfc, +0x97,0xfb,0x56,0xfe,0xa,0x1,0xb2,0x2,0x81,0x3,0x63,0x2, +0xa2,0xff,0x6e,0xfc,0xcf,0xfb,0xfc,0x0,0xb2,0x6,0x89,0x5, +0xd,0x0,0x34,0xfb,0x6a,0xf8,0xb4,0xf9,0x1a,0xfe,0xee,0x0, +0x66,0x0,0x25,0xfe,0xf6,0xfc,0x10,0xfe,0x8e,0xff,0x24,0x1, +0x88,0x3,0x3a,0x4,0x99,0x2,0xb3,0x1,0xff,0x1,0x64,0x1, +0xc9,0xff,0x7,0xff,0x88,0xff,0xb2,0x0,0xc0,0x2,0x5b,0x3, +0x2f,0x1,0x3a,0x1,0xa4,0x4,0x8d,0x6,0xff,0x6,0x6d,0x7, +0x21,0x6,0x1,0x4,0xb,0x4,0xd9,0x6,0x3a,0x9,0xf5,0x7, +0xc4,0x4,0xca,0x1,0x47,0xff,0x9,0x0,0x3d,0x5,0x7e,0xa, +0x2c,0xc,0xc5,0xa,0xa3,0x7,0x6d,0x4,0x31,0x4,0xae,0x7, +0x35,0xc,0xb4,0xe,0x8d,0xc,0xf0,0x7,0xd8,0x5,0x99,0x5, +0x4f,0x7,0x94,0xb,0x51,0xc,0x7d,0xa,0x5f,0xb,0x51,0xa, +0xa3,0x8,0xbb,0xc,0xba,0xf,0xee,0xc,0x52,0xb,0xe3,0xc, +0x27,0xe,0xcd,0xf,0xc8,0x12,0xd4,0x12,0xe7,0xe,0x97,0xd, +0xab,0xf,0x9a,0xf,0xb6,0xe,0x6b,0x10,0x98,0x11,0x2,0xf, +0x34,0xc,0xa,0xd,0xa9,0xe,0x6d,0x11,0x59,0x19,0xba,0x1f, +0x46,0x1f,0x49,0x1f,0xd1,0x20,0x90,0x1d,0x9e,0x16,0x9f,0xf, +0x9e,0x8,0x1f,0x2,0xd5,0xfe,0x76,0xff,0x86,0x0,0xad,0x1, +0xc3,0x6,0x1,0xc,0x50,0x8,0x4,0xfd,0xa2,0xf2,0x60,0xea, +0x16,0xe4,0x59,0xe4,0xde,0xe6,0x5e,0xe3,0x6e,0xde,0x98,0xdc, +0x9a,0xd9,0xb7,0xd6,0x80,0xd8,0xab,0xdb,0x41,0xda,0x76,0xd4, +0xe2,0xce,0x76,0xca,0xc3,0xc6,0x0,0xc7,0xfc,0xc9,0x56,0xcb, +0xd8,0xcc,0x21,0xcf,0xb2,0xce,0x23,0xcc,0xc0,0xc8,0x66,0xc4, +0xb2,0xc1,0xbf,0xc1,0xb1,0xc3,0xb7,0xc8,0x9e,0xce,0x50,0xd0, +0xb,0xcf,0xb4,0xce,0xa7,0xce,0x33,0xcf,0xea,0xd2,0xd7,0xd7, +0xdb,0xda,0x6f,0xdd,0xfe,0xe0,0x69,0xe4,0xf6,0xe6,0xd,0xe8, +0xf2,0xe7,0xe5,0xe8,0x63,0xec,0x45,0xf2,0xa9,0xf8,0xe,0xfd, +0x9e,0x0,0x6a,0x5,0xd6,0x9,0x8c,0xd,0x82,0x12,0xc1,0x17, +0xa4,0x1a,0xa0,0x1a,0xf4,0x18,0x5d,0x16,0x48,0x13,0x4f,0x12, +0x85,0x15,0xb2,0x1a,0x89,0x1f,0x64,0x24,0x62,0x27,0x60,0x25, +0x40,0x21,0xf8,0x1e,0x77,0x1c,0x3,0x1a,0xdb,0x19,0xdf,0x17, +0xbc,0x13,0x51,0x12,0x3b,0x11,0x2b,0xe,0x4f,0xc,0x61,0xb, +0xd3,0x9,0x61,0x8,0x57,0x6,0x55,0x2,0xfe,0xfd,0x8f,0xfc, +0x7e,0xfb,0x57,0xf6,0x5b,0xf1,0xb7,0xef,0x7f,0xec,0x7a,0xe7, +0x1a,0xe5,0x8f,0xe4,0xa5,0xe2,0x57,0xe0,0x1f,0xe0,0xd4,0xdf, +0xfd,0xdd,0x2c,0xde,0x43,0xdf,0xd3,0xdc,0xfd,0xd8,0x20,0xd7, +0xdf,0xd5,0x2e,0xd4,0x24,0xd5,0x0,0xda,0xd2,0xdd,0x1,0xdf, +0x29,0xe1,0x79,0xe3,0x6c,0xe4,0x5d,0xe5,0x17,0xe6,0x76,0xe7, +0xee,0xea,0xb2,0xee,0xe1,0xf0,0x3d,0xf2,0xd0,0xf4,0x2f,0xf9, +0x84,0xfe,0xb2,0x3,0x13,0x7,0x29,0x9,0x47,0xa,0x37,0x9, +0xd8,0x9,0x49,0xe,0x1d,0x12,0xa1,0x15,0xa0,0x1a,0xc0,0x1e, +0x22,0x21,0x47,0x21,0xae,0x20,0x57,0x22,0x5c,0x24,0x45,0x25, +0x3c,0x25,0x94,0x23,0xba,0x22,0xe7,0x22,0x62,0x22,0xae,0x22, +0x1e,0x22,0xf7,0x1f,0xc7,0x1f,0x74,0x1f,0xa7,0x1c,0xca,0x1a, +0x83,0x1a,0x5,0x1a,0xfe,0x18,0x9c,0x16,0x8f,0x12,0x87,0xe, +0x38,0xb,0x4b,0x7,0x18,0x4,0x36,0x3,0x54,0x1,0x9b,0xfe, +0xe2,0xfe,0x3e,0xff,0x54,0xfd,0xa1,0xfc,0xc2,0xfc,0x9c,0xfa, +0x41,0xf6,0x88,0xf1,0x98,0xee,0x3f,0xed,0xa7,0xeb,0xb5,0xea, +0x60,0xea,0x7f,0xe8,0x3a,0xe8,0xa5,0xec,0x6e,0xef,0x1f,0xed, +0xe2,0xea,0x5a,0xe8,0x2,0xe4,0xcd,0xe3,0x16,0xe8,0x58,0xeb, +0xec,0xec,0x7a,0xed,0xa3,0xed,0x5,0xee,0x8e,0xed,0x4d,0xee, +0xf8,0xf0,0x30,0xf2,0xe6,0xf3,0xd8,0xf7,0x5d,0xfa,0xdb,0xfb, +0xb9,0xfd,0x8e,0xfe,0xc7,0xff,0xe3,0x1,0x28,0x4,0x2,0x8, +0x34,0xb,0xcf,0xb,0xd0,0xc,0x76,0xd,0x2f,0xd,0xa,0x11, +0xd4,0x17,0x7c,0x1b,0xf9,0x1c,0xfc,0x1d,0x5f,0x1c,0x85,0x1a, +0xc,0x1c,0x5d,0x1e,0xa6,0x1f,0x5d,0x21,0x38,0x22,0x73,0x22, +0x59,0x24,0xc7,0x24,0x18,0x22,0x94,0x20,0x9a,0x20,0xee,0x1f, +0x37,0x1f,0x72,0x1e,0x55,0x1d,0x84,0x1c,0xbf,0x1b,0xd8,0x1a, +0x30,0x1a,0xdf,0x19,0x86,0x18,0xd2,0x15,0xfb,0x14,0x40,0x15, +0x38,0x12,0xda,0xd,0xed,0xa,0xe7,0x7,0x46,0x6,0x69,0x8, +0x43,0xc,0xd5,0xc,0x16,0x7,0x85,0x0,0x98,0xff,0x32,0x1, +0x90,0x2,0x20,0x5,0x17,0x5,0xe6,0xff,0x36,0xfb,0x0,0xfb, +0xde,0xfd,0xed,0x0,0x6d,0x0,0x9e,0xfc,0x62,0xf9,0x11,0xf7, +0x43,0xf7,0x50,0xfd,0x40,0x4,0x6b,0x5,0x36,0x1,0x1c,0xfb, +0x99,0xf9,0x86,0xff,0xaa,0x5,0x5e,0x7,0xba,0x5,0x8e,0x0, +0xfe,0xfb,0x27,0xfe,0xfc,0x4,0xde,0xa,0xac,0xd,0xd5,0xd, +0xa6,0xc,0x34,0xb,0x8a,0xa,0x37,0xc,0x44,0x10,0x45,0x13, +0xc6,0x11,0x5c,0xd,0xfb,0xa,0x66,0xd,0xe3,0x12,0x5d,0x17, +0x54,0x18,0x98,0x15,0x42,0x10,0x33,0xc,0x46,0xe,0x1f,0x15, +0xe1,0x18,0x53,0x16,0xa4,0x12,0xae,0x10,0xe3,0xe,0x8,0xe, +0xa3,0xe,0xe2,0xe,0x27,0xd,0xe8,0x8,0x3b,0x6,0x24,0x9, +0xbb,0xb,0xc4,0x7,0x2f,0x2,0x46,0x1,0x80,0x3,0xb2,0x4, +0x5a,0x3,0x33,0x0,0xc2,0xfc,0xd6,0xf9,0x53,0xf8,0xb5,0xf9, +0xcc,0xfb,0x5b,0xfb,0x40,0xfa,0x5e,0xf9,0x6f,0xf6,0xe3,0xf2, +0xa2,0xf1,0x27,0xf3,0x24,0xf5,0xec,0xf4,0xcc,0xf5,0xf4,0xf9, +0x63,0xfb,0x63,0xf8,0xd1,0xf5,0x15,0xf5,0xb2,0xf5,0xf,0xf8, +0x32,0xfa,0x24,0xf8,0x33,0xf3,0x18,0xf2,0xc9,0xf4,0xb1,0xf7, +0xf5,0xfc,0xbb,0x1,0xf1,0xff,0x5,0xfc,0x17,0xfc,0x42,0xff, +0x17,0x3,0xe,0x6,0xbf,0x6,0xce,0x2,0x79,0xfb,0xf1,0xf8, +0xf0,0xfe,0x25,0x7,0x4,0xb,0x4e,0x9,0x76,0x4,0xc5,0x0, +0xc,0x2,0xd9,0x7,0x58,0xd,0x57,0xe,0x23,0x9,0x4e,0x1, +0x97,0xff,0x61,0x5,0x26,0xb,0xff,0xc,0xca,0xa,0x2c,0x4, +0xca,0xfb,0x5a,0xf8,0x2f,0xfe,0x3c,0x7,0xdc,0xa,0x2d,0x9, +0x90,0x4,0x1f,0xff,0xb4,0xfd,0x14,0x0,0x17,0x1,0x4d,0xff, +0xc5,0xfb,0xa0,0xf6,0xb5,0xf1,0x34,0xf2,0xa5,0xf8,0x3d,0xfd, +0xf,0xfd,0x89,0xfc,0x52,0xfb,0x1f,0xf7,0xad,0xf3,0x9a,0xf4, +0x37,0xf6,0x7e,0xf3,0xd0,0xef,0x21,0xf1,0x71,0xf5,0xb3,0xf7, +0x56,0xf6,0x8d,0xf2,0x66,0xef,0xc4,0xee,0x2b,0xef,0xa8,0xee, +0x61,0xed,0x94,0xeb,0xcd,0xe9,0xef,0xec,0x70,0xf6,0x6,0xfd, +0x63,0xfb,0xd9,0xf6,0xfa,0xf3,0xbd,0xf3,0x6e,0xf3,0xa1,0xf0, +0xd7,0xef,0xf0,0xf1,0x4b,0xf3,0x6c,0xf7,0x3b,0xfe,0x37,0x1, +0xdc,0x0,0xa9,0xfd,0x77,0xf7,0x8c,0xf7,0x78,0x0,0x77,0x6, +0xc5,0x4,0x4a,0x1,0x76,0xff,0x42,0x0,0x10,0x4,0xf3,0x7, +0xc,0x8,0xd4,0x3,0x3c,0x0,0x33,0x2,0x54,0x5,0x71,0x4, +0x90,0x5,0x6b,0xb,0x16,0xd,0x48,0x9,0x46,0x8,0x7d,0xa, +0x6c,0xb,0x3d,0xb,0xf7,0xa,0xec,0x9,0x8d,0x6,0x8b,0x1, +0x7f,0x1,0x47,0x8,0x32,0xd,0x26,0xd,0x2b,0xc,0x49,0xa, +0x97,0x9,0x4e,0xb,0x56,0xa,0xec,0xa,0xf3,0x10,0x76,0x10, +0x49,0xa,0xc7,0xc,0x35,0x11,0x4b,0xc,0x94,0x5,0xc1,0x3, +0x81,0x5,0x61,0x8,0xc3,0x8,0x84,0x7,0xd3,0x6,0xf1,0x5, +0x4,0x7,0xd1,0x7,0xf6,0x1,0xcf,0xf9,0x82,0xf6,0x8b,0xf7, +0xef,0xfa,0x6,0xfb,0x81,0xf2,0x9,0xe9,0x7d,0xe7,0xbc,0xea, +0x2f,0xef,0x83,0xf4,0xe3,0xf5,0xef,0xf1,0xd0,0xee,0x32,0xed, +0x78,0xe9,0x4b,0xe4,0xe4,0xdd,0x57,0xd9,0x56,0xdd,0x43,0xe5, +0x5c,0xe8,0xe5,0xe8,0xaa,0xe8,0x36,0xe6,0x5a,0xe5,0x28,0xe6, +0xcf,0xe5,0xc5,0xe7,0xb1,0xea,0xf4,0xe8,0xf5,0xe6,0x61,0xe8, +0x3e,0xe9,0xc5,0xea,0xcc,0xed,0xa1,0xee,0xbb,0xf0,0x2d,0xf4, +0x4f,0xf1,0x41,0xec,0x52,0xeb,0xa1,0xe9,0x63,0xe8,0xa1,0xec, +0xe9,0xf1,0xe0,0xf4,0xa0,0xf5,0x60,0xf3,0xb1,0xf1,0xa9,0xf1, +0xa5,0xef,0x71,0xef,0x9c,0xf3,0x5,0xf4,0x27,0xf0,0x9e,0xf0, +0x96,0xf2,0x86,0xef,0xbb,0xed,0x9f,0xf2,0x15,0xf7,0x65,0xf5, +0xc7,0xf3,0x7a,0xf8,0xb8,0xfd,0x5e,0xfd,0xbf,0xfa,0xe7,0xf7, +0xc2,0xf4,0x8b,0xf4,0xb8,0xf6,0xc0,0xf8,0x7a,0xfa,0x22,0xfa, +0xc8,0xf9,0x36,0xfd,0x39,0x0,0xeb,0x0,0x7a,0x2,0xd1,0x1, +0x59,0xff,0x5c,0x1,0xf7,0x1,0x7a,0xfb,0x87,0xf8,0xb,0xfb, +0x17,0xf9,0xe5,0xf7,0x77,0xfc,0x2b,0xfd,0xf1,0xfb,0x10,0x0, +0xef,0x2,0xf4,0x2,0x71,0x4,0x3c,0x4,0xf3,0x2,0x6b,0x3, +0x71,0x3,0xfd,0x3,0x57,0x4,0x2a,0x1,0x7c,0xfe,0x31,0xff, +0x28,0x1,0xd0,0x4,0x3d,0x8,0xce,0x8,0xab,0x8,0x37,0x7, +0x9,0x4,0x69,0x3,0xa4,0x4,0x7f,0x5,0x2a,0x7,0x21,0x7, +0xd5,0x4,0x65,0x3,0xc6,0x1,0x39,0x1,0x3f,0x3,0x6f,0x4, +0x51,0x6,0x9,0x8,0xd7,0x4,0xdf,0x3,0x21,0x7,0x37,0x5, +0xa,0x3,0x63,0x6,0x8c,0x7,0x58,0x7,0xb,0xa,0xbc,0xa, +0xca,0x9,0xea,0xa,0xdc,0xb,0xf8,0xb,0xaa,0xc,0x48,0xd, +0x91,0xd,0xbf,0xc,0x5d,0xa,0xd5,0x9,0x41,0xc,0x28,0xd, +0xaa,0xc,0xc1,0xe,0x7d,0x10,0xb4,0xe,0x8a,0xd,0xcf,0xe, +0x54,0xf,0xb9,0xe,0x16,0xd,0x35,0x8,0xcc,0x3,0x21,0x6, +0x76,0xa,0x55,0xa,0xe2,0x8,0x49,0x7,0xbc,0x5,0x96,0x8, +0xaf,0xa,0x96,0x6,0x68,0x4,0x14,0x5,0x98,0x1,0xd8,0xfe, +0xab,0xff,0xbb,0xfc,0xf4,0xf8,0xaa,0xfa,0x97,0xfa,0x2b,0xf7, +0x4e,0xfa,0x89,0xff,0x5e,0xfd,0x19,0xfb,0x59,0xfc,0x1a,0xfa, +0xe0,0xf6,0x59,0xf6,0x6a,0xf4,0x49,0xf2,0x5f,0xf2,0x4c,0xf1, +0xed,0xef,0xdc,0xf0,0xf1,0xf0,0x77,0xf0,0xc4,0xf2,0x39,0xf4, +0xd1,0xf2,0x25,0xf2,0x6b,0xf1,0xd4,0xf0,0x33,0xf3,0x9e,0xf4, +0x64,0xf3,0x26,0xf4,0xcf,0xf6,0xfd,0xf8,0x69,0xfb,0x8,0xff, +0x46,0x1,0xd3,0xfe,0xbb,0xfd,0x3a,0x2,0x88,0x3,0x95,0x2, +0x7,0x7,0x1,0x9,0x19,0x7,0xd9,0xb,0xde,0x11,0xb9,0x10, +0x86,0xf,0xdf,0x12,0xa7,0x16,0xff,0x18,0xd5,0x19,0x3b,0x18, +0xcb,0x15,0xd7,0x15,0xfb,0x17,0x64,0x19,0x32,0x1a,0x9f,0x1a, +0x24,0x18,0xb9,0x14,0x92,0x15,0xe5,0x17,0xd3,0x17,0x4c,0x19, +0x54,0x1b,0xd8,0x18,0xd4,0x14,0x8f,0x11,0xff,0xe,0x88,0x10, +0x82,0x12,0xfe,0xe,0xa0,0xa,0xec,0x9,0x75,0xa,0xe7,0xa, +0xa2,0xc,0x80,0xe,0x2,0xd,0x97,0x9,0x3b,0x7,0x12,0x4, +0xb2,0x1,0x34,0x2,0xf8,0xff,0x4,0xfb,0x52,0xfa,0x7f,0xfc, +0x8d,0xfd,0xa9,0xff,0x8e,0x1,0xa6,0xfe,0x6a,0xfb,0xc7,0xfc, +0x55,0xfc,0x38,0xf8,0xa8,0xf6,0x31,0xf6,0x86,0xf5,0x7a,0xf8, +0x98,0xfc,0x5d,0xfe,0xad,0xfc,0x22,0xf7,0x26,0xf5,0x3c,0xfb, +0xdd,0x0,0x7e,0x1,0x58,0x2,0xd7,0x3,0x19,0x1,0xd5,0xfc, +0x15,0xff,0x83,0x6,0xe6,0xa,0xdf,0x9,0xd1,0x6,0xe1,0x5, +0x9d,0x8,0xa0,0xc,0x67,0xf,0x7a,0x10,0xf,0x10,0xc4,0xe, +0x39,0xf,0x9c,0x13,0x63,0x17,0xe3,0x15,0xfc,0x12,0x96,0x12, +0x69,0x14,0x82,0x17,0x14,0x19,0x75,0x18,0x63,0x17,0x40,0x15, +0x4a,0x13,0xfb,0x13,0xb6,0x15,0x6f,0x15,0xde,0x12,0xdf,0x10, +0x8a,0xf,0x96,0xc,0x35,0xc,0xf6,0x10,0x5,0x14,0xaa,0x12, +0x80,0x10,0x71,0xd,0x7f,0x9,0x1,0x8,0xf8,0x7,0x4d,0x6, +0xe0,0x5,0x1a,0x6,0x1e,0x0,0xb2,0xf7,0xb4,0xf5,0x6c,0xf9, +0x99,0xfe,0x2b,0xff,0xb5,0xf9,0x41,0xf7,0x21,0xf7,0xcd,0xf2, +0xf9,0xf0,0x81,0xf2,0x5b,0xef,0x23,0xec,0x10,0xee,0x19,0xef, +0x54,0xed,0xca,0xed,0xbd,0xef,0x74,0xed,0xc8,0xe8,0x32,0xe8, +0x84,0xea,0x51,0xec,0x7a,0xee,0x45,0xef,0x3a,0xec,0x8d,0xe9, +0xa4,0xea,0x32,0xec,0x96,0xee,0xf8,0xf3,0xe0,0xf4,0x30,0xef, +0x13,0xee,0x1,0xf3,0xd1,0xf4,0xca,0xf2,0xb7,0xf2,0x42,0xf7, +0xd6,0xfc,0xa2,0xfd,0x1c,0xfa,0x62,0xf7,0x13,0xf8,0xf9,0xfa, +0x38,0xfe,0x2d,0x1,0xdc,0x1,0x7d,0xff,0xb6,0xfc,0x9f,0xfb, +0x30,0xff,0xee,0x5,0x40,0x6,0x19,0x1,0xe2,0x0,0x25,0x3, +0x7f,0x1,0x3f,0x2,0xc0,0x9,0x89,0xc,0xaa,0x3,0x2c,0xfd, +0xdc,0x0,0x7a,0x3,0xa3,0x2,0x40,0x4,0x37,0x4,0x5d,0xff, +0xb3,0xfa,0x1,0xfb,0xa1,0xff,0x5b,0x2,0x7e,0x0,0x54,0xfe, +0x51,0xfd,0x3,0xfa,0xa4,0xf4,0xd8,0xf3,0xf2,0xf8,0x35,0xfb, +0x58,0xf8,0x8c,0xf7,0x27,0xf9,0x3a,0xf7,0xcd,0xf1,0xe5,0xee, +0x7b,0xf1,0x33,0xf6,0x2,0xf9,0xfe,0xf8,0xb,0xf8,0x37,0xf7, +0x20,0xf4,0x22,0xf0,0xe0,0xf0,0x8d,0xf5,0x49,0xf7,0x75,0xf3, +0x17,0xf1,0x19,0xf5,0x25,0xf6,0x11,0xf1,0x4c,0xf2,0x91,0xf9, +0x5d,0xfb,0x1,0xfa,0xfc,0xfb,0xd2,0xfd,0x78,0xfc,0x1f,0xfc, +0x3f,0xff,0x8d,0x1,0x7f,0x0,0xab,0xff,0xfe,0x1,0x1b,0x5, +0x38,0x5,0xff,0x4,0x84,0x8,0x48,0xb,0xf5,0x8,0x80,0x5, +0xab,0x6,0xdc,0xb,0xa4,0xc,0xcb,0x8,0x49,0xb,0x2c,0x11, +0x33,0xf,0x7d,0x9,0xae,0x8,0xc9,0xc,0xb8,0x10,0x81,0x10, +0xe2,0xe,0xfa,0xc,0x42,0x7,0x30,0x3,0xd1,0x8,0xa5,0x12, +0x15,0x16,0x6b,0x12,0x8b,0xd,0x7a,0x9,0x14,0x6,0x1f,0x5, +0xf0,0x5,0xfb,0x5,0xf8,0x4,0x96,0x4,0xa7,0x5,0xe5,0x5, +0xc,0x5,0x41,0x5,0x92,0x4,0xb,0x3,0x4,0x3,0x60,0x0, +0xaf,0xfa,0x73,0xf8,0x9f,0xf8,0xe7,0xf7,0x48,0xfb,0x69,0x3, +0x1a,0x6,0xbd,0xfe,0x3,0xf5,0x64,0xf1,0x79,0xf5,0x39,0xfa, +0xf5,0xf9,0x9c,0xfb,0xff,0xff,0xdb,0xfc,0x9,0xf8,0xe3,0xfa, +0x67,0xfc,0x17,0xfa,0x90,0xfc,0x6d,0x0,0xbd,0xfe,0x18,0xfc, +0xb0,0xfe,0xe1,0x3,0x78,0x5,0xbc,0x1,0xa8,0xfd,0x38,0x2, +0xa9,0xd,0xea,0x10,0xa5,0x9,0x5f,0x4,0xaf,0x4,0x59,0x7, +0x4e,0xc,0x5,0x12,0x72,0x13,0x28,0xe,0x6d,0xa,0x68,0x10, +0x19,0x17,0xd5,0x14,0x60,0x11,0x2a,0x15,0x52,0x1b,0xf3,0x1c, +0xe9,0x1b,0x32,0x1d,0xe0,0x1f,0xfa,0x1d,0xc8,0x16,0xd0,0x14, +0xce,0x1c,0xb1,0x22,0x63,0x21,0x9b,0x1f,0x5,0x1c,0x8f,0x16, +0xda,0x15,0xdc,0x17,0x63,0x18,0xe,0x17,0x22,0x11,0xff,0x9, +0x6e,0x9,0xf3,0xb,0xd8,0x9,0xb6,0x5,0xac,0x3,0x9e,0xfe, +0x34,0xf4,0xc4,0xef,0xd4,0xf7,0x18,0xfc,0x84,0xf1,0xaf,0xea, +0xa7,0xee,0x8d,0xea,0x2c,0xe5,0xe7,0xee,0xaa,0xf3,0x39,0xe8, +0xe7,0xe0,0x2b,0xe3,0x6c,0xe4,0xb8,0xe0,0x2d,0xdc,0x59,0xdd, +0x5b,0xde,0x65,0xda,0x92,0xdc,0x8,0xe1,0x46,0xdc,0xa4,0xda, +0x54,0xe0,0x2f,0xdf,0x34,0xdd,0x0,0xe4,0x5f,0xe6,0x8d,0xdf, +0x32,0xdc,0x8a,0xdd,0x71,0xdd,0x39,0xde,0x97,0xe1,0x85,0xe3, +0x44,0xe1,0x6b,0xdf,0x9e,0xe4,0x73,0xea,0x9d,0xe8,0x4e,0xe7, +0x8e,0xea,0x40,0xea,0x2c,0xe9,0x7,0xed,0xf0,0xef,0x38,0xf0, +0xf1,0xf1,0xc3,0xf1,0xee,0xed,0x0,0xee,0x99,0xf3,0x97,0xf6, +0xe8,0xf5,0xab,0xf6,0x8,0xf7,0xbe,0xf5,0xda,0xf8,0x2e,0xff, +0x17,0xff,0xdb,0xf9,0x9c,0xf8,0x5f,0xfa,0x7b,0xfb,0xe8,0xfc, +0xfa,0xfb,0x55,0xf9,0x66,0xf9,0x17,0xf9,0x0,0xfa,0xff,0x0, +0xc8,0x3,0x6a,0xfd,0x4c,0xfa,0x2a,0xfb,0x6a,0xf8,0xf9,0xf8, +0x94,0xff,0xe4,0x0,0x6c,0xfd,0x86,0xfd,0xec,0xfc,0xc8,0xf9, +0x1,0xfa,0x8,0xfb,0x8b,0xfa,0xd7,0xfb,0x2b,0xfd,0x86,0xfd, +0xe8,0xfd,0x28,0xfd,0x58,0xfe,0xb3,0x1,0x35,0x2,0x8b,0x2, +0x5d,0x4,0x4c,0x2,0x85,0xff,0xbd,0x0,0x67,0x0,0x68,0xfe, +0x63,0x0,0xc4,0x2,0x25,0x3,0xb9,0x4,0xc1,0x4,0x36,0x4, +0x50,0x8,0x85,0xa,0x3e,0x7,0xb0,0x7,0xdc,0xb,0xf9,0xa, +0x65,0x7,0x72,0x9,0x41,0xd,0xab,0x9,0x81,0x4,0xd6,0x5, +0x1d,0x7,0x1,0x7,0x3d,0xb,0xb1,0xd,0xd3,0x9,0x95,0x6, +0x27,0x7,0x20,0x8,0x19,0x7,0xd6,0x5,0x15,0x6,0x70,0x4, +0x89,0x0,0xa3,0xff,0x98,0x0,0xca,0xfd,0x71,0xf9,0x6e,0xf9, +0x52,0xfb,0x4d,0xfa,0x5c,0xf9,0x8a,0xf9,0x2e,0xf6,0xff,0xf1, +0xcc,0xf2,0x4b,0xf6,0x97,0xf8,0x3d,0xf8,0x25,0xf4,0x96,0xef, +0xb0,0xef,0x72,0xf2,0xb7,0xf2,0x97,0xf1,0x94,0xf2,0x3e,0xf5, +0x1f,0xf7,0x37,0xf7,0xc2,0xf7,0x9e,0xf9,0x8b,0xf9,0x3f,0xf8, +0x5f,0xf8,0xe9,0xf7,0x51,0xf8,0xbf,0xfc,0x45,0x1,0x64,0x2, +0x2e,0x1,0xbf,0xff,0x72,0x0,0x25,0x2,0xd7,0x2,0x51,0x4, +0x89,0x6,0x5b,0x7,0x38,0x7,0x68,0x7,0x22,0x8,0xc4,0x7, +0xb7,0x6,0x35,0xa,0xe3,0xf,0x39,0xe,0xf6,0x8,0xaa,0x8, +0x49,0x8,0xd3,0x6,0xaa,0xb,0x3f,0x11,0xc3,0x10,0x6b,0xf, +0xb5,0xd,0x75,0xa,0xc2,0xb,0x34,0x10,0xee,0x10,0xb8,0xf, +0xd7,0xf,0x4,0xf,0x1a,0xd,0x24,0xe,0x4c,0x10,0xe,0xd, +0xb3,0x7,0x2f,0x7,0xa2,0x8,0xa2,0x9,0x9a,0xc,0xe3,0xe, +0x93,0xd,0xfe,0xa,0xd5,0x8,0x5b,0x7,0xf2,0x6,0xe7,0x6, +0x9b,0x6,0xa3,0x5,0x85,0x2,0x36,0xfe,0x6d,0xfd,0x48,0x0, +0x84,0x0,0xd8,0xfd,0xd6,0xfd,0xd1,0xfe,0x9e,0xfd,0x9b,0xfe, +0xc1,0x0,0xe7,0xfd,0x60,0xfb,0x25,0xfe,0x1a,0xff,0x56,0xfe, +0xc0,0x1,0x9b,0x3,0xae,0xff,0xff,0xfb,0x91,0xfb,0xc0,0xfd, +0xe5,0x1,0x4e,0x5,0xd2,0x6,0x16,0x7,0x3d,0x6,0x83,0x6, +0xf1,0x9,0xe4,0xc,0x8a,0xb,0xc8,0xa,0x74,0xf,0xc9,0x12, +0xb6,0xf,0xaf,0xd,0xe5,0x10,0x41,0x13,0x6f,0x12,0x32,0x13, +0x7f,0x16,0x4a,0x18,0x4f,0x18,0x88,0x19,0xab,0x1a,0x36,0x18, +0xfd,0x13,0x78,0x13,0x1c,0x16,0xbb,0x16,0x7a,0x16,0x67,0x18, +0x8,0x1a,0x44,0x1a,0x29,0x18,0x17,0x12,0x7d,0xe,0xa2,0x10, +0x2a,0x12,0xe6,0x13,0x88,0x16,0x78,0x11,0x36,0x9,0x86,0x9, +0x1d,0xc,0xd,0xa,0xe5,0x9,0x80,0xc,0xc7,0xc,0x88,0xa, +0x19,0x6,0xb7,0x2,0x92,0x5,0x90,0x9,0x1d,0x7,0x3c,0x2, +0xe0,0x0,0xc0,0x0,0x2b,0xff,0xdb,0xfd,0xb0,0xfc,0x7c,0xfa, +0x42,0xfa,0x86,0xfc,0xf6,0xfd,0x54,0xff,0xbb,0xff,0x6f,0xfb, +0x8d,0xf6,0x69,0xf5,0x20,0xf5,0x1e,0xf6,0x6d,0xf9,0x71,0xfa, +0x2f,0xf9,0x23,0xfa,0x2f,0xfc,0xa1,0xfc,0x52,0xfc,0xeb,0xfb, +0x8f,0xfb,0xfc,0xfb,0x9f,0xfc,0x91,0xfc,0x9a,0xfc,0x78,0xfd, +0x68,0xfe,0x55,0xff,0x65,0x1,0xb6,0x3,0x9a,0x4,0x63,0x5, +0x6d,0x6,0x86,0x5,0xc4,0x3,0xf3,0x3,0xdf,0x5,0x74,0x8, +0x8e,0xa,0xa9,0xa,0xb3,0x9,0x43,0xa,0x56,0xb,0x92,0x9, +0x2f,0x6,0x29,0x4,0x61,0x3,0x1e,0x4,0x10,0x5,0x3d,0x4, +0xc4,0x4,0x27,0x6,0x5c,0x5,0xaa,0x6,0x7b,0x9,0xb3,0x7, +0x91,0x2,0x7a,0xfd,0x2a,0xfd,0xf4,0x1,0x85,0x1,0x47,0xff, +0xfa,0x4,0x5c,0x6,0x8,0xff,0x9d,0xfc,0x36,0xfc,0x5c,0xf9, +0x5b,0xfd,0xcd,0x3,0xec,0x2,0xdb,0x1,0x36,0x4,0xf,0x2, +0x8b,0xff,0x8a,0x6,0x8a,0xd,0x41,0x9,0xb4,0x2,0x26,0x0, +0xfb,0xfb,0x1e,0xfa,0x17,0x0,0xfe,0x5,0x98,0x7,0xec,0xa, +0x1c,0xf,0x88,0xd,0xf7,0x8,0x9c,0x8,0xf0,0xa,0xbd,0xa, +0xda,0x7,0x77,0x4,0xbe,0x2,0xf8,0x3,0xb8,0x5,0x11,0x5, +0xe1,0x2,0x7a,0x1,0x28,0x3,0x60,0x7,0x7d,0x8,0xf9,0x6, +0x58,0x9,0xd2,0xa,0x59,0x7,0x33,0x7,0x1b,0x6,0xed,0xfc, +0xf,0xf8,0x5d,0xf7,0xfe,0xef,0xf,0xee,0x14,0xf5,0x35,0xf4, +0x4c,0xef,0xfd,0xf1,0x2f,0xf6,0x35,0xf6,0xd6,0xf3,0x20,0xf2, +0xc2,0xef,0xfa,0xe5,0xb1,0xda,0xa0,0xd9,0x41,0xdb,0x9,0xd7, +0x66,0xd4,0x59,0xd6,0x55,0xd6,0x70,0xd2,0xdc,0xcd,0xfe,0xc9, +0x5e,0xc7,0x71,0xc8,0x39,0xcc,0xfc,0xcd,0xd6,0xcc,0xe9,0xc9, +0x1a,0xc7,0xcc,0xc7,0x40,0xc9,0x76,0xc7,0xe6,0xc5,0x9f,0xc5, +0x21,0xc4,0xaf,0xc3,0x2c,0xc5,0x8f,0xc7,0xeb,0xcc,0x7,0xd2, +0x3e,0xd2,0xf8,0xd3,0x2e,0xda,0x74,0xdc,0x45,0xdb,0x3c,0xdd, +0xd4,0xde,0x99,0xde,0x25,0xe1,0x4f,0xe4,0xc7,0xe5,0xdf,0xe7, +0x5e,0xea,0x1a,0xed,0x36,0xf0,0xbe,0xf1,0x65,0xf2,0x7b,0xf4, +0x2c,0xf9,0x2f,0x0,0xab,0x5,0x77,0x7,0x14,0x8,0xb4,0x7, +0xd9,0x5,0x5a,0x5,0xd0,0x6,0x52,0x8,0xd2,0x9,0x9e,0xa, +0xcd,0x9,0x26,0xb,0x57,0x11,0xf4,0x16,0x64,0x18,0x63,0x1a, +0x99,0x1d,0x95,0x1c,0x3a,0x18,0xd7,0x14,0x4a,0x12,0x16,0x11, +0x8b,0x11,0x31,0x10,0x7c,0xd,0x9c,0xc,0x1d,0xc,0xdc,0xb, +0x84,0xd,0x3d,0xe,0x30,0xd,0xa,0xd,0x52,0xc,0x6,0xa, +0xd3,0x8,0x60,0x7,0xea,0x2,0x19,0xff,0xdc,0xfe,0xa6,0xfd, +0xee,0xf9,0xa8,0xf8,0x69,0xf9,0xd9,0xf9,0xe1,0xfd,0x85,0x3, +0xdc,0x2,0xdf,0xfe,0xe0,0xfd,0xc3,0xfc,0xfc,0xf9,0xda,0xf9, +0x47,0xfc,0x3d,0xfd,0x2b,0xfb,0x67,0xf8,0x9e,0xf8,0x93,0xfb, +0x73,0xff,0x85,0x3,0xf7,0x2,0x6d,0xfe,0x2,0x1,0xbe,0x7, +0x0,0x6,0xa2,0x3,0xa4,0x8,0xe1,0x8,0xb8,0x4,0x13,0xa, +0x7c,0x12,0xb,0x11,0x3,0xc,0xa2,0xc,0x58,0x11,0x83,0x16, +0x6a,0x1a,0xde,0x1c,0xd1,0x1e,0x24,0x1f,0x57,0x1d,0x4a,0x1c, +0xad,0x1d,0x7e,0x20,0xee,0x21,0xab,0x1f,0x54,0x1d,0x75,0x1e, +0x98,0x1f,0xc0,0x1f,0x12,0x21,0xd7,0x1f,0xc0,0x1a,0x90,0x17, +0x8a,0x17,0x36,0x17,0xb6,0x15,0xb6,0x13,0xde,0x12,0x77,0x13, +0x2a,0x11,0xb2,0xb,0xe0,0x8,0xa7,0x7,0xea,0x2,0x57,0xfd, +0xcd,0xfa,0x7f,0xf9,0x87,0xf8,0xcb,0xf9,0x6b,0xfb,0x18,0xf8, +0x4,0xf2,0x8f,0xf1,0x12,0xf5,0x2d,0xf4,0xcf,0xee,0x6e,0xe9, +0x41,0xe7,0xfb,0xe8,0x4d,0xe9,0xe0,0xe6,0x7a,0xe7,0x6f,0xe8, +0x22,0xe5,0x7,0xe4,0x61,0xe6,0xd1,0xe5,0x80,0xe5,0x70,0xe8, +0xb3,0xe9,0x9d,0xea,0xf7,0xec,0x95,0xec,0x53,0xec,0xbf,0xed, +0x54,0xe9,0xe5,0xe1,0xc7,0xe1,0x89,0xe6,0x89,0xe8,0x1b,0xe9, +0x7e,0xec,0x9b,0xf0,0x45,0xf2,0xfa,0xf3,0xc0,0xf6,0x45,0xf8, +0x2f,0xf9,0x37,0xf9,0xa0,0xf7,0xd7,0xf6,0x86,0xf6,0xe7,0xf6, +0x2,0xfb,0x8,0xff,0x71,0xff,0x4c,0x1,0xc5,0x5,0xcc,0x8, +0x5,0xb,0xc1,0xc,0x1a,0xb,0x64,0x9,0xd2,0xc,0xf7,0xf, +0xf8,0xd,0x3c,0xe,0x33,0x12,0xdc,0x10,0x31,0xe,0x74,0x12, +0xcc,0x13,0x57,0xe,0xd1,0x10,0x53,0x19,0x50,0x18,0xe8,0x13, +0x91,0x16,0xb9,0x17,0x1a,0x13,0xa1,0x10,0x10,0x11,0x5d,0x10, +0x43,0x10,0x86,0x11,0x1e,0x11,0x5a,0x10,0x7f,0x11,0xf4,0x10, +0x61,0xe,0x50,0xe,0xb0,0xe,0xfd,0xb,0xc3,0x9,0xa6,0xa, +0xd,0xc,0xb1,0xb,0x9b,0xa,0x7c,0xa,0xa,0xb,0x20,0xc, +0x72,0xd,0xb8,0xc,0xe,0x9,0xbf,0x3,0x85,0xff,0x75,0xff, +0xff,0x1,0x90,0x4,0x7b,0x8,0xf5,0xa,0x7e,0x7,0xa9,0x3, +0x8e,0x5,0x7c,0x7,0xd1,0x4,0xb9,0x1,0x90,0xfe,0x2a,0xfa, +0x48,0xfa,0x4e,0xfe,0x32,0xff,0xb5,0xfe,0x60,0xfe,0x23,0xfb, +0x14,0xfa,0xdf,0xfe,0x7d,0x2,0x86,0x1,0x8b,0xff,0x73,0xfe, +0x5b,0xfe,0xb9,0xfe,0x67,0xfe,0xfc,0xfd,0xfa,0xfd,0xf3,0xfc, +0xdc,0xfb,0x17,0xfd,0x4c,0xfe,0x3a,0xfd,0x7a,0xfc,0x2f,0xfd, +0x22,0xff,0x42,0x4,0xdb,0xa,0x21,0xd,0x28,0x9,0x8b,0x2, +0xcf,0xfd,0x5d,0xfd,0x64,0x1,0x24,0x7,0x3c,0xa,0x67,0x9, +0x81,0x6,0x90,0x4,0xe,0x7,0x3a,0xc,0xbf,0xd,0xec,0xa, +0x62,0x8,0xab,0x8,0xf4,0xa,0xf3,0xb,0xb,0xa,0xe5,0x7, +0x62,0x6,0x63,0x4,0x15,0x5,0xa,0xa,0xbf,0xc,0xdd,0x8, +0x73,0x3,0x27,0x1,0xd2,0x0,0x45,0x2,0xfe,0x5,0x41,0x8, +0x6b,0x6,0x55,0x2,0xa0,0xfd,0x62,0xfa,0xdf,0xfb,0xc1,0x0, +0x9f,0x2,0x8,0xfe,0xb0,0xf8,0x6b,0xf9,0x4d,0xfc,0x4b,0xfc, +0x2,0xfd,0x35,0xfd,0x7e,0xf7,0xad,0xf2,0x10,0xf7,0x45,0xfe, +0xb1,0xff,0x0,0xfd,0xe6,0xf9,0x93,0xf6,0xb9,0xf5,0xfd,0xf9, +0x49,0xfe,0x46,0xfd,0xad,0xf9,0xeb,0xf6,0x93,0xf4,0x52,0xf4, +0xc6,0xf8,0x10,0xfe,0xc0,0xff,0x8d,0x0,0x82,0x0,0xa1,0xfc, +0xf6,0xfa,0x2,0xff,0x6b,0x0,0xa0,0xfd,0xc7,0xfd,0x4,0x0, +0xed,0xff,0x61,0x1,0x72,0x8,0x9a,0xd,0x6,0x9,0xeb,0x2, +0xce,0x5,0xd2,0xb,0xb3,0xc,0xe3,0xc,0xc1,0xe,0xf3,0xa, +0x99,0x4,0x9c,0x8,0x86,0x12,0x83,0x14,0x10,0x11,0x12,0xf, +0x5,0xd,0x21,0xc,0x60,0xf,0xd4,0x13,0x96,0x14,0xed,0x10, +0xe7,0xe,0x76,0x12,0x77,0x15,0x62,0x14,0x88,0x12,0x44,0xf, +0x6b,0xc,0x8a,0xe,0xe5,0xf,0x6d,0xe,0x3f,0x11,0xaf,0x12, +0x17,0xd,0x60,0xb,0xc4,0xe,0x73,0xc,0xc9,0x5,0x35,0x2, +0xe7,0x2,0xe9,0x4,0x16,0x6,0x6d,0x9,0x78,0xd,0x55,0xa, +0x37,0x4,0x7e,0x4,0x5b,0x6,0x79,0x4,0xfb,0x3,0x7,0x5, +0x5d,0x1,0xa4,0xfa,0x8f,0xf7,0x8,0xfa,0x9f,0xff,0x33,0x3, +0xd0,0x2,0x59,0x2,0x8,0x1,0x89,0xfd,0x93,0xfd,0x2b,0xff, +0x96,0xfc,0x5c,0xfb,0xbd,0xfd,0x95,0x0,0x14,0x6,0xaf,0x8, +0x5e,0x1,0xd9,0xf9,0xe0,0xf8,0x6c,0xf8,0x77,0xf9,0xd8,0xff, +0xa,0x6,0xd9,0x6,0x13,0x3,0x83,0xff,0x73,0x1,0x4e,0x5, +0xbe,0x4,0x22,0x3,0xa8,0x2,0xb4,0xff,0xf2,0xfc,0x58,0xfd, +0xfe,0xfc,0x92,0xfb,0xd3,0xfc,0xf,0x0,0x30,0x2,0x7b,0x2, +0xbb,0x0,0xec,0xfc,0x61,0xfb,0x3b,0xfe,0x7b,0xfe,0x61,0xfa, +0x38,0xfa,0xd1,0xff,0x5e,0x6,0xbc,0x9,0x82,0x5,0x4c,0xfb, +0x5a,0xf2,0x33,0xef,0xc3,0xf3,0xb2,0xfb,0x2c,0xfe,0xc8,0xfb, +0xf1,0xfa,0xd8,0xfc,0x6b,0x0,0x5e,0x4,0x66,0x6,0xf4,0x3, +0x7,0xfc,0xe9,0xf4,0xe,0xf5,0x31,0xf7,0x0,0xf6,0xd3,0xf5, +0x58,0xf9,0xdc,0xfd,0x9c,0x1,0xc1,0x3,0x90,0x2,0xe8,0xfe, +0x25,0xff,0x85,0x4,0x74,0x5,0x88,0x0,0x9e,0xff,0xb8,0x1, +0x15,0x0,0x9d,0xff,0x52,0x3,0xc4,0x3,0xd3,0x0,0x81,0x1, +0xd2,0x2,0x41,0x0,0x8b,0x0,0x14,0x8,0x9e,0x11,0x2a,0x17, +0xbb,0x14,0xdf,0xc,0xe7,0x7,0xf9,0x6,0x1a,0x6,0x74,0x5, +0x52,0x6,0xcb,0x9,0xec,0x10,0xa,0x19,0x1,0x1c,0xd3,0x15, +0x5a,0xb,0xa0,0x5,0x70,0x6,0xa7,0x8,0x9f,0x5,0x4d,0xfd, +0xc2,0xf9,0x65,0xfc,0x6c,0xfb,0x73,0xfa,0x7e,0xff,0x32,0xff, +0x9b,0xf7,0xa6,0xf4,0x42,0xf0,0x62,0xe3,0xd3,0xdc,0x47,0xe0, +0xac,0xe1,0x73,0xe3,0xd0,0xe8,0xa1,0xea,0x72,0xea,0x15,0xea, +0x98,0xe4,0xbe,0xdc,0x45,0xd7,0x34,0xd5,0xd3,0xd7,0xbe,0xda, +0x50,0xdb,0xb4,0xde,0xe4,0xe2,0x9d,0xe2,0xdd,0xe1,0x7f,0xe2, +0x61,0xe1,0x23,0xe1,0xcb,0xe3,0xc1,0xe5,0x89,0xe6,0x40,0xe7, +0xa5,0xe6,0x67,0xe6,0x46,0xe8,0xe9,0xe9,0x1b,0xea,0xab,0xe9, +0x7a,0xe9,0x36,0xe9,0xf3,0xe7,0x2f,0xea,0x40,0xf2,0x69,0xf7, +0xd9,0xf6,0x5f,0xf7,0xaa,0xf7,0xf5,0xf4,0x4b,0xf3,0x47,0xf1, +0x3f,0xec,0x94,0xea,0xa9,0xef,0x7e,0xf5,0xa8,0xf8,0x18,0xfb, +0xf0,0xfc,0x6d,0xfd,0xc3,0xfc,0xa6,0xf9,0x7c,0xf4,0x62,0xf1, +0xf3,0xf1,0xbb,0xf2,0xb1,0xf0,0xa7,0xed,0x35,0xed,0x4e,0xef, +0xd6,0xf0,0xfc,0xee,0x52,0xea,0xec,0xe7,0x89,0xe9,0x6a,0xe9, +0x83,0xe5,0x20,0xe2,0x79,0xdf,0x2e,0xdd,0x39,0xdf,0xb,0xe2, +0x40,0xde,0xa4,0xd9,0x22,0xda,0xbb,0xd8,0xca,0xd4,0x8d,0xd5, +0x7a,0xd8,0x29,0xda,0xd5,0xdd,0x29,0xe1,0x72,0xe0,0xa7,0xdf, +0x61,0xe1,0xf6,0xe2,0x96,0xe2,0x63,0xe0,0xb8,0xde,0xe5,0xe0, +0x2b,0xe6,0x63,0xeb,0x3d,0xef,0x8d,0xf1,0x5a,0xf4,0x9d,0xf9, +0xae,0xfd,0xc7,0xfd,0xb,0xfe,0xd5,0x0,0xc9,0x3,0x4c,0x6, +0x76,0x9,0xc7,0xd,0xf9,0x12,0x4e,0x17,0x26,0x1a,0x23,0x1d, +0x66,0x1f,0xb5,0x1e,0x7d,0x1d,0xbe,0x1e,0x1b,0x21,0x65,0x24, +0x3e,0x29,0xb1,0x2b,0xd1,0x2a,0x76,0x2c,0xcd,0x30,0xee,0x31, +0xf3,0x30,0x72,0x32,0x22,0x33,0xe8,0x2e,0xe6,0x2a,0x8f,0x2c, +0xa9,0x2e,0xef,0x2a,0x5c,0x27,0x23,0x2a,0x2c,0x2b,0x82,0x25, +0x90,0x22,0xdc,0x24,0xaf,0x24,0x7f,0x21,0xbe,0x1d,0xb1,0x19, +0xf6,0x17,0x32,0x15,0xc8,0xc,0x4a,0x8,0xc9,0xb,0xf7,0x7, +0x8b,0xfb,0xc9,0xf8,0xae,0xfe,0x91,0xfe,0x60,0xfb,0xf3,0xfa, +0x7c,0xf7,0x4,0xf1,0x99,0xee,0x12,0xf1,0x23,0xf2,0xf2,0xeb, +0x3,0xe4,0xdc,0xe4,0x6b,0xea,0x8e,0xea,0xcb,0xe7,0x78,0xe7, +0x89,0xe7,0x7f,0xe6,0x66,0xe6,0xe4,0xe9,0xb1,0xf0,0xa0,0xf2, +0xb8,0xeb,0x6f,0xe9,0x7d,0xf2,0xe,0xf7,0x59,0xf2,0x8e,0xf3, +0x96,0xfa,0xee,0xfb,0x13,0xfb,0x64,0xfd,0x4b,0x0,0x1,0x4, +0x20,0x6,0x9f,0x5,0xe8,0xa,0x31,0x12,0xc5,0xf,0xaa,0xb, +0x78,0xf,0xb4,0x15,0xa5,0x19,0x7a,0x19,0xb3,0x18,0xa4,0x1c, +0x6c,0x1d,0x5b,0x1a,0x42,0x1e,0xb0,0x20,0x84,0x1a,0x60,0x19, +0x12,0x1e,0x7a,0x1e,0xc5,0x1d,0x76,0x20,0xa0,0x23,0x55,0x23, +0x90,0x1f,0xde,0x1d,0x15,0x1f,0xb7,0x1c,0xfa,0x15,0xfd,0x10, +0x51,0x11,0xd8,0x13,0x84,0x13,0xd2,0x10,0x76,0xe,0xd2,0xb, +0x38,0x9,0x48,0x8,0xba,0x7,0xe9,0x6,0x2e,0x7,0x74,0x6, +0x35,0x3,0xd7,0x0,0x93,0xfe,0x73,0xf9,0x68,0xf6,0x3e,0xf7, +0x20,0xf5,0x65,0xf0,0xfb,0xef,0xa2,0xf3,0x5d,0xf6,0x45,0xf7, +0xfb,0xf7,0xd5,0xf7,0x9b,0xf7,0xd8,0xf9,0xd2,0xf9,0x43,0xf3, +0x5f,0xee,0x31,0xf0,0x29,0xf1,0xc5,0xef,0x45,0xf3,0x60,0xfa, +0xde,0xfe,0x63,0x1,0xca,0x1,0xd8,0xff,0x1c,0x2,0xf8,0x5, +0xdc,0x3,0xf8,0x4,0x35,0xc,0x3c,0xd,0xc5,0xc,0xe2,0x11, +0xd5,0x12,0xe5,0x10,0x69,0x11,0xac,0xd,0x5d,0xb,0x4f,0x13, +0x43,0x1a,0x4b,0x19,0xdf,0x18,0xfd,0x1a,0xed,0x1a,0x23,0x1c, +0x3,0x23,0xe,0x27,0x2f,0x22,0x75,0x1d,0xb2,0x1b,0x59,0x18, +0x7f,0x19,0x83,0x1e,0x4c,0x1b,0xc5,0x14,0x2d,0x17,0x81,0x1b, +0x9b,0x18,0x6,0x15,0x10,0x15,0xbb,0x12,0xb6,0xf,0x64,0x13, +0x42,0x17,0xcc,0x11,0x96,0xb,0x1a,0xe,0x64,0xe,0xcf,0x4, +0x9,0x0,0xf,0x5,0x5f,0x4,0xff,0xfc,0xa9,0xf9,0xd6,0xf8, +0xfa,0xf8,0xd,0xfc,0xb8,0xfd,0xf5,0xfb,0xd5,0xf8,0xd6,0xf5, +0x1,0xf4,0xcf,0xf2,0x7c,0xf3,0x79,0xf3,0xbc,0xed,0x7e,0xea, +0x3b,0xed,0x53,0xea,0x59,0xe6,0xe,0xec,0xf3,0xf1,0xd7,0xf1, +0xb5,0xf1,0x1a,0xf2,0x66,0xf1,0xb2,0xf0,0x61,0xf1,0xe4,0xf2, +0xe5,0xf0,0x3c,0xed,0xaa,0xef,0xb0,0xf5,0x29,0xf8,0xc3,0xf7, +0xcc,0xf6,0xd3,0xf6,0xfa,0xf8,0x1c,0xfa,0xe3,0xfa,0x58,0xff, +0xd5,0x1,0xca,0xfe,0x0,0xff,0xa8,0x4,0xa8,0x9,0x89,0xb, +0x22,0x8,0x6f,0x3,0xfb,0x5,0x5,0xa,0xea,0x7,0xf1,0x7, +0x5d,0xe,0x9c,0x11,0x5c,0x10,0xc8,0x15,0xd7,0x1e,0x6,0x1c, +0xb0,0x14,0xc3,0x17,0x8f,0x17,0x1e,0xc,0xc7,0x8,0x57,0x10, +0xc7,0x13,0x52,0x14,0x4f,0x18,0x87,0x1a,0x78,0x18,0x2e,0x19, +0x58,0x1c,0x66,0x17,0xab,0xc,0x23,0x6,0x95,0x1,0xcd,0x2, +0xaa,0xe,0xf8,0x11,0xd5,0x7,0xe9,0x6,0x36,0xb,0xac,0x3, +0x9b,0xfd,0xb3,0x2,0xd1,0x4,0x9d,0xff,0x34,0xfd,0xeb,0x1, +0xeb,0x6,0xea,0x3,0x6e,0xfc,0xf8,0xf7,0xab,0xf4,0xde,0xf2, +0x23,0xf8,0xc4,0xff,0x21,0x0,0xa3,0xf9,0xf5,0xf4,0x58,0xf9, +0xaa,0x2,0xa4,0x5,0xd4,0x0,0x4e,0xf9,0xa7,0xf0,0x15,0xed, +0xe6,0xf3,0x11,0xfc,0x5c,0xfd,0x46,0xfc,0xe7,0xfc,0x34,0xff, +0x49,0x3,0x21,0x3,0xeb,0xf6,0x25,0xe7,0x6c,0xe3,0x78,0xe7, +0xa6,0xea,0xcc,0xf5,0x62,0x3,0x1e,0xfe,0x3c,0xf3,0x9c,0xfa, +0xae,0x2,0xa7,0xfa,0x33,0xf3,0x9e,0xf2,0x99,0xee,0x88,0xe9, +0xab,0xe9,0xd9,0xed,0x36,0xf1,0x95,0xee,0x7,0xec,0x57,0xf0, +0xf3,0xf1,0xf6,0xee,0xe6,0xf0,0xc7,0xf0,0xa9,0xe8,0x2f,0xe4, +0xc1,0xe6,0x65,0xeb,0x0,0xf1,0x53,0xf2,0x83,0xed,0xf3,0xe8, +0xab,0xe5,0x6e,0xe2,0x6b,0xe2,0xa7,0xe5,0xf2,0xe7,0x76,0xe8, +0x6f,0xeb,0xfa,0xf0,0x42,0xf2,0xd5,0xee,0x28,0xec,0x32,0xe9, +0x85,0xe5,0x45,0xe5,0x4c,0xe6,0xba,0xe5,0xe0,0xe6,0xb0,0xe9, +0x16,0xec,0x2b,0xef,0xa1,0xef,0x7a,0xeb,0x6b,0xea,0x12,0xee, +0x54,0xed,0x7b,0xe7,0x68,0xe4,0x72,0xe4,0x22,0xe3,0x8a,0xe3, +0x53,0xe9,0x14,0xee,0xff,0xed,0x1f,0xee,0x45,0xed,0xca,0xe8, +0x8c,0xe6,0x1b,0xe7,0xd0,0xe6,0xc0,0xe8,0xf7,0xeb,0xd1,0xeb, +0xf5,0xea,0x6,0xeb,0xdf,0xe9,0x42,0xe9,0xad,0xe9,0x73,0xe8, +0x2f,0xe8,0xc9,0xeb,0xb,0xee,0x80,0xec,0x59,0xec,0x4b,0xec, +0xdc,0xe8,0x4,0xe9,0x45,0xee,0x1d,0xee,0x7e,0xe8,0xb3,0xe7, +0xb2,0xea,0x72,0xea,0x63,0xeb,0x5a,0xf1,0x69,0xf3,0x9e,0xf0, +0x8a,0xf2,0xf2,0xf4,0xac,0xf0,0x65,0xec,0x3,0xec,0x4a,0xed, +0x4d,0xef,0x4a,0xf0,0xc8,0xf3,0x13,0xfb,0xb4,0xfd,0x70,0xfd, +0x18,0x1,0xe,0x2,0x7b,0xfe,0x79,0xfd,0xc0,0xfd,0x9b,0xfd, +0x77,0xff,0x3,0x1,0xb5,0x1,0x9a,0x4,0xe1,0x6,0xbb,0x5, +0x32,0x6,0x4e,0xa,0x58,0xc,0xf8,0xa,0x17,0xa,0x8c,0xa, +0x6e,0xb,0x11,0xb,0x71,0x9,0x60,0xa,0x29,0xc,0xfd,0x9, +0x53,0x7,0xab,0x7,0x40,0x8,0x50,0x7,0xc9,0x7,0xe4,0xd, +0x67,0x13,0x6a,0xe,0x2c,0x8,0xa,0xb,0xc6,0xb,0x42,0x4, +0xfa,0xfe,0x14,0x0,0xf3,0x2,0x93,0x4,0xc8,0x5,0x1a,0x8, +0x40,0x9,0xa8,0x9,0xa0,0xc,0x3a,0xd,0x48,0x9,0x71,0x7, +0x83,0x5,0x4e,0x2,0x25,0x6,0xd9,0x8,0x90,0x1,0xaf,0x1, +0x8e,0xb,0x19,0xb,0x7f,0x6,0xc1,0xa,0x85,0xc,0x6f,0x8, +0x30,0x8,0x4a,0xb,0x6f,0xd,0x11,0xd,0xc8,0xb,0x94,0xc, +0x8b,0xc,0xaf,0xa,0xb,0x9,0x2,0x7,0x73,0x9,0x33,0xf, +0x8d,0xd,0xd2,0xa,0x72,0x10,0x73,0x14,0xa,0x12,0xd8,0x10, +0xd2,0x11,0x6a,0xf,0x30,0x9,0x38,0x8,0xd5,0xe,0x24,0x12, +0xc,0x11,0xa7,0x10,0x9,0xe,0xee,0xc,0xbc,0x10,0xb6,0x11, +0xe6,0xf,0xdb,0xe,0x9e,0xb,0xd9,0x9,0x49,0xd,0x2f,0x11, +0xf9,0x12,0x2f,0x12,0xb,0x10,0x7e,0x10,0x70,0x10,0x7e,0xc, +0xe4,0xa,0x3e,0xc,0x15,0xa,0x2a,0x8,0x4b,0xb,0xe,0xd, +0xe5,0xb,0x20,0xe,0x4d,0x11,0xd7,0xd,0x56,0x6,0xaf,0x6, +0xd3,0xe,0xb3,0xc,0x61,0x1,0xd4,0x2,0x9d,0xa,0x2b,0x9, +0xa,0xa,0xf1,0xb,0x4f,0x4,0xd9,0x3,0xc9,0xb,0xbb,0x7, +0x41,0x1,0xd1,0x4,0xa8,0x6,0xd4,0x8,0xa9,0x11,0x24,0x12, +0x83,0x8,0x32,0x6,0xe8,0x9,0x21,0x9,0x8f,0x6,0x10,0x3, +0x3d,0xff,0xbe,0x2,0x8b,0x8,0x55,0x8,0x82,0x9,0xc6,0xd, +0xb6,0xe,0x1c,0xe,0x60,0xb,0xb7,0x5,0x26,0x4,0xbc,0x5, +0x17,0x5,0x90,0x5,0x1f,0x8,0x96,0x8,0x62,0x9,0x41,0xe, +0x43,0x10,0xbf,0x9,0x7f,0x5,0xf5,0xa,0xc0,0xe,0xe1,0xa, +0x7a,0x8,0x4c,0xb,0xa1,0xd,0x20,0xd,0x99,0xd,0xb9,0xf, +0xdd,0xd,0xa1,0x7,0x1b,0x5,0xd9,0x8,0x24,0xb,0xce,0x8, +0x93,0x8,0x50,0xb,0x0,0xd,0x4,0x10,0xab,0x11,0xda,0xe, +0x5e,0xe,0x9e,0xb,0x22,0x3,0x64,0x5,0xe7,0xd,0x3,0x9, +0x9b,0x2,0x4a,0x7,0xcb,0x9,0x83,0x6,0x35,0x7,0x4b,0xa, +0x7,0x8,0xcd,0x3,0xe,0x5,0x25,0x7,0xb1,0x5,0x73,0x5, +0x75,0x5,0xb8,0x3,0x52,0x2,0xfb,0xff,0xf,0x0,0xf5,0x3, +0x9e,0x3,0x97,0x0,0x3b,0x1,0xc2,0x3,0xb3,0x6,0x68,0x6, +0xc6,0x1,0xf2,0x0,0xf1,0x2,0xd1,0x0,0x46,0xfe,0x8a,0xfd, +0x3d,0xfb,0xc8,0xfa,0x66,0x0,0x24,0x5,0xa7,0x1,0x36,0xfd, +0x82,0xff,0x85,0x3,0x67,0x5,0xe6,0x4,0xed,0x1,0xea,0x1, +0xf8,0x2,0x84,0xfd,0xed,0xf9,0x5c,0xfe,0xde,0xfd,0x79,0xf6, +0xf,0xf6,0xdd,0xfb,0x6,0xff,0x9d,0x3,0xd9,0xa,0xea,0xa, +0xa6,0x2,0x13,0xfb,0x9c,0xfb,0xa8,0x2,0x59,0x4,0xef,0xfe, +0x74,0xfd,0xb9,0xfe,0x5c,0xfe,0x4a,0x0,0xb6,0x1,0x58,0x0, +0x3d,0xff,0x2c,0xfe,0x12,0x1,0xe6,0x6,0x6e,0x5,0xe8,0xff, +0x5e,0xff,0x18,0x2,0xba,0x3,0x9c,0x1,0x21,0xff,0xbf,0xff, +0xf7,0xfc,0xc7,0xf8,0xda,0xfb,0xd6,0xfe,0xa3,0xfc,0x93,0xfe, +0x5c,0x4,0x93,0x4,0x65,0x0,0x9b,0xfe,0xe,0xff,0xda,0xfe, +0xb1,0xfc,0x94,0xf8,0x99,0xf7,0x2c,0xfb,0x26,0xfd,0xbf,0xfe, +0xe3,0xff,0xc7,0xfa,0xc5,0xf7,0xa9,0xfa,0xe8,0xf9,0xe1,0xfb, +0xc6,0x1,0x9a,0xfd,0x97,0xfa,0x7b,0x4,0x44,0x9,0x92,0x5, +0x44,0x6,0xcd,0x2,0xc4,0xf5,0x5,0xf3,0x5f,0x1,0xf9,0xa, +0x6d,0x5,0xb1,0xff,0x44,0x1,0x4a,0x4,0xcc,0x9,0xd,0x11, +0x1c,0xf,0x34,0x6,0x8f,0x5,0xb2,0x9,0xcd,0x7,0x5a,0x8, +0x0,0xd,0x5f,0xc,0x21,0xe,0xe1,0xf,0xae,0x3,0x45,0xfc, +0x85,0x6,0x6a,0xb,0xbe,0x7,0x40,0x7,0x11,0x4,0x7b,0x3, +0x7a,0xd,0xb0,0x13,0xbd,0xe,0x82,0x4,0x2b,0xf9,0x34,0xf5, +0xf2,0xf6,0x2b,0xf1,0x5d,0xea,0x5c,0xf1,0xc0,0x0,0x96,0x9, +0xf0,0x2,0xbe,0xf6,0xb4,0xf8,0x12,0xfd,0x9e,0xf1,0xf,0xeb, +0x25,0xee,0x14,0xe5,0xf0,0xe2,0xce,0xf4,0xfc,0xf5,0x76,0xe4, +0x3d,0xe1,0x10,0xe7,0x11,0xe7,0xa,0xe6,0x98,0xe2,0x4d,0xdd, +0x93,0xdd,0x97,0xdf,0xad,0xde,0x74,0xe0,0x72,0xe7,0x8a,0xeb, +0x5e,0xe6,0x2,0xdf,0xa1,0xdb,0xc2,0xd5,0xf0,0xd0,0x58,0xda, +0x9a,0xe5,0xf,0xe1,0xf5,0xde,0x4b,0xec,0x88,0xf1,0x85,0xe8, +0x91,0xe5,0x9d,0xe8,0xbb,0xe8,0x9a,0xe8,0xfa,0xe6,0x71,0xe7, +0xb8,0xf2,0x91,0xfc,0x27,0xf8,0x3f,0xf4,0x42,0xfa,0xbf,0xfa, +0x82,0xf3,0x3c,0xf5,0x7b,0xfc,0x7e,0xfb,0xd4,0xfa,0x8d,0x1, +0x81,0x3,0xd5,0xfe,0x1c,0xfe,0xd6,0x1,0xae,0x4,0x11,0x3, +0x5e,0xfb,0x53,0xf4,0x30,0xf5,0xc2,0xf7,0x75,0xf4,0x6a,0xf2, +0x5a,0xf9,0xd8,0xff,0x72,0xfc,0xd8,0xf7,0xee,0xf6,0x90,0xf0, +0x19,0xe9,0xf0,0xeb,0x56,0xef,0x2d,0xe9,0x5b,0xe2,0x69,0xe2, +0xfc,0xe6,0xe6,0xe7,0x82,0xe0,0xcf,0xdc,0xd6,0xe2,0x70,0xe4, +0x69,0xdf,0xc7,0xdd,0xd,0xde,0xbb,0xdd,0xba,0xdd,0x85,0xdc, +0x6c,0xdc,0x79,0xdd,0xb8,0xdb,0x33,0xd9,0x9c,0xd8,0x5d,0xd8, +0x79,0xd6,0xe1,0xd4,0xf0,0xda,0x5a,0xe5,0x4a,0xe5,0x23,0xdf, +0xa4,0xe3,0xdc,0xeb,0x95,0xe9,0x91,0xe5,0x15,0xe8,0xf0,0xe7, +0xdd,0xe5,0xb9,0xeb,0xb1,0xf2,0x4d,0xf4,0x4f,0xf8,0xef,0xfd, +0x9e,0xff,0x70,0x1,0xc7,0x3,0x72,0x4,0xb0,0x6,0xa7,0x8, +0xf6,0x7,0x5,0xa,0xf7,0xf,0x34,0x15,0x33,0x18,0x1c,0x19, +0x0,0x1a,0xaf,0x1c,0x38,0x1d,0x4c,0x1b,0x5d,0x1c,0xb2,0x1d, +0xd8,0x1b,0x8e,0x1c,0xd0,0x1f,0x19,0x20,0x49,0x1f,0xe4,0x1f, +0x89,0x21,0x6c,0x22,0x2,0x1e,0xfd,0x18,0xc8,0x1b,0x38,0x1d, +0x89,0x15,0x4f,0x11,0x60,0x14,0xc7,0x11,0x1,0xc,0x89,0xf, +0x64,0x13,0x57,0xb,0x95,0x3,0x27,0x6,0x6a,0x8,0xd,0x5, +0x4c,0x2,0x3,0x1,0xda,0xfe,0x91,0xfc,0xd3,0xf9,0xb8,0xf5, +0x22,0xf3,0x60,0xf3,0xbc,0xf1,0x66,0xee,0x28,0xef,0x81,0xf1, +0x53,0xf1,0xee,0xf1,0xe9,0xf3,0x28,0xf4,0x7d,0xf1,0xbc,0xed, +0x1a,0xee,0x82,0xf0,0x88,0xed,0x47,0xeb,0xab,0xf1,0x48,0xf8, +0xc2,0xf7,0xf4,0xf5,0x98,0xf8,0xd0,0xfc,0x11,0xfd,0xad,0xfa, +0xd2,0xfb,0x73,0x0,0xb,0x4,0x1,0x7,0x45,0xb,0x60,0xe, +0x55,0xe,0x6a,0xd,0x90,0xe,0xb5,0x11,0xe4,0x12,0xae,0x11, +0xd4,0x14,0xcb,0x1b,0xc9,0x1d,0x80,0x1c,0xea,0x1e,0x87,0x22, +0x56,0x23,0xe5,0x22,0x8b,0x23,0x7c,0x25,0xbe,0x26,0xfa,0x25, +0x91,0x25,0xb3,0x28,0x85,0x2b,0xe7,0x27,0x80,0x24,0x3e,0x27, +0xc8,0x25,0x82,0x1f,0xe7,0x1f,0x82,0x21,0xb7,0x1e,0x70,0x20, +0x17,0x24,0x91,0x21,0x6b,0x1e,0x8,0x1e,0x33,0x1d,0x1f,0x1c, +0xda,0x17,0x9d,0xe,0xfa,0x9,0xfd,0xd,0xd2,0x10,0xb3,0xe, +0x8c,0xc,0xb3,0xb,0xdb,0xb,0x23,0xc,0x7d,0xa,0x31,0x7, +0x8d,0x3,0x91,0x2,0x71,0x3,0x58,0x0,0x5c,0xfe,0xb9,0x0, +0xa0,0xfd,0x24,0xfc,0x4b,0x4,0xc6,0x3,0x52,0xfa,0x8a,0xfb, +0x82,0x0,0x7c,0xfe,0xac,0xfd,0xd9,0xff,0x4d,0x0,0x2f,0x0, +0xbd,0x1,0x12,0x4,0x76,0x3,0x2d,0x0,0x18,0xff,0x39,0x1, +0x72,0x4,0xf2,0x6,0x70,0x9,0xdc,0xe,0x28,0x14,0xce,0x13, +0xf7,0xf,0xa9,0xe,0x39,0x12,0x8b,0x14,0x1c,0x10,0x3d,0xe, +0x43,0x14,0x71,0x16,0x48,0x14,0xec,0x17,0x5a,0x1c,0x1d,0x1d, +0xbf,0x1e,0x8d,0x1d,0x56,0x1b,0xcb,0x1e,0xfe,0x1c,0xf2,0x14, +0x35,0x17,0xa2,0x1d,0xc0,0x1c,0x73,0x1b,0xd7,0x1a,0x45,0x1b, +0xf,0x1d,0x32,0x16,0xd5,0x10,0x4c,0x18,0xd6,0x15,0xb,0x8, +0xf8,0xb,0x4d,0x19,0x2b,0x15,0xea,0x8,0xc0,0x6,0x9c,0x7, +0xa8,0x5,0x50,0x8,0xa0,0x7,0xe6,0xfd,0x4b,0xfe,0x1a,0x6, +0x1c,0x2,0x4c,0x0,0x8e,0x6,0xbf,0xff,0x5b,0xf4,0x40,0xf8, +0x26,0xfd,0xee,0xf4,0x91,0xef,0x13,0xf8,0xed,0xfa,0x4c,0xef, +0x7f,0xed,0x1b,0xf9,0xd5,0xf9,0x9e,0xf1,0xf3,0xef,0xd5,0xef, +0xb8,0xee,0x3f,0xf2,0xd9,0xf1,0xf8,0xe8,0xfd,0xe7,0xca,0xf0, +0x72,0xf2,0xe3,0xf1,0x26,0xf7,0x1f,0xf3,0x2b,0xe9,0xb6,0xee, +0x1f,0xfb,0xdf,0xf9,0x9c,0xf1,0x7b,0xf2,0xd,0xf9,0x16,0xfa, +0x9c,0xf6,0x27,0xf2,0x54,0xf1,0xd0,0xf9,0xb6,0xfd,0xdd,0xf7, +0x4f,0xfd,0x1d,0x4,0x67,0xfa,0x9d,0xfb,0x51,0xa,0xf1,0x5, +0x67,0xfb,0x48,0xff,0x7a,0x0,0x26,0xfd,0xb9,0xfd,0x66,0xf8, +0x12,0xf5,0x66,0xff,0xef,0x3,0xef,0xfe,0x44,0x3,0xb9,0x5, +0xde,0xfc,0xc4,0xfc,0x9a,0xff,0x3f,0xf5,0x7e,0xf0,0x7b,0xf5, +0x9a,0xf2,0xea,0xf2,0xd2,0xfc,0xeb,0xfb,0xe,0xf5,0x29,0xfa, +0xbc,0xfd,0x36,0xf6,0xc0,0xf4,0xd5,0xf9,0xc0,0xf5,0xfb,0xef, +0xc2,0xf4,0x69,0xf8,0xe3,0xf2,0xa2,0xf0,0x14,0xf6,0x1a,0xf8, +0xf2,0xf4,0x98,0xf3,0x65,0xf3,0x5d,0xf4,0xf9,0xf8,0x90,0xfa, +0x72,0xf5,0x6e,0xf2,0xa5,0xf7,0x64,0xfd,0x3d,0xf9,0x0,0xf3, +0xe6,0xf3,0x8a,0xef,0xf6,0xe9,0x98,0xf5,0xce,0xfe,0x27,0xf8, +0xde,0xfb,0x5,0x7,0xa,0x4,0xff,0x0,0x24,0x4,0xb0,0xfe, +0x6c,0xfa,0xfc,0xff,0xb9,0xfd,0x24,0xf8,0x85,0x4,0x73,0x11, +0x82,0xd,0x9e,0x10,0x72,0x1d,0xcf,0x1a,0x34,0x10,0x81,0xe, +0xcb,0xf,0x4a,0x10,0xf6,0x12,0x2a,0x16,0x21,0x12,0xc1,0x7, +0xf7,0x9,0x20,0x19,0xf3,0x1e,0x56,0x17,0xa2,0x9,0xef,0x0, +0x30,0x9,0x8e,0x11,0x22,0xa,0xb,0x0,0xbd,0xf9,0x80,0xfb, +0x2a,0x8,0x5c,0xb,0x55,0x4,0xa1,0x4,0x88,0xff,0x40,0xf4, +0x88,0xf8,0x15,0xfc,0x57,0xf1,0xd2,0xf5,0xd8,0x6,0xef,0x1, +0xff,0xf0,0x62,0xeb,0x3e,0xeb,0x69,0xec,0xd6,0xed,0x61,0xec, +0x2b,0xeb,0x3d,0xe6,0x6a,0xe3,0x74,0xeb,0x62,0xe9,0xb6,0xdc, +0xc6,0xdd,0x5e,0xe1,0x9d,0xdf,0x74,0xe2,0x8e,0xdd,0xf3,0xd2, +0x34,0xd1,0xf4,0xd0,0xd2,0xd0,0xa,0xd2,0x86,0xd2,0x12,0xd7, +0xa9,0xd5,0xda,0xcf,0x8d,0xd4,0xea,0xd2,0x56,0xc9,0xb5,0xcd, +0x78,0xd3,0x2b,0xd3,0x96,0xd7,0x1,0xd6,0xd7,0xcd,0xdf,0xcb, +0x17,0xce,0xd8,0xd2,0x43,0xd7,0xd,0xd6,0x60,0xd3,0xda,0xd4, +0x70,0xdd,0xc4,0xe3,0x73,0xdd,0x9a,0xda,0x5e,0xe2,0xba,0xe3, +0x62,0xe1,0x27,0xe3,0x45,0xe1,0x24,0xe1,0x6a,0xe9,0x69,0xee, +0xd,0xed,0x3a,0xee,0x7a,0xf0,0xd,0xf2,0xaf,0xf8,0x7d,0xfd, +0x7f,0xf8,0xfe,0xf5,0x99,0xfb,0x17,0xff,0xaa,0xfe,0x53,0xfe, +0x76,0x1,0x36,0x6,0x73,0x4,0x94,0x3,0x4a,0xa,0x82,0xb, +0x57,0x9,0x5e,0xc,0x49,0xb,0x75,0x8,0x94,0xb,0x5f,0xe, +0x23,0xf,0x9a,0xd,0x17,0xb,0x8a,0xe,0xe8,0x11,0xdd,0x10, +0xfd,0x10,0x7a,0xe,0x98,0xd,0x1c,0x15,0x1d,0x15,0x5c,0xb, +0xc3,0xb,0x9d,0x13,0xd9,0x12,0x37,0xc,0x7,0xa,0xbc,0xc, +0x94,0xf,0xb3,0x10,0xd3,0xe,0x57,0xa,0x2d,0x9,0x95,0xc, +0xa5,0xe,0xd0,0xd,0xac,0xb,0x88,0x8,0xac,0x5,0xc8,0x4, +0x31,0x6,0x26,0x5,0xc0,0xfe,0xa,0xfe,0xf6,0x7,0x68,0xb, +0xc0,0x2,0x2c,0x0,0x8d,0x6,0x13,0x6,0xa9,0xff,0xe9,0xfe, +0x9b,0x0,0xaf,0xfe,0x9b,0xfd,0xda,0xff,0x85,0x1,0x55,0x0, +0x98,0xfe,0x63,0x1,0x56,0x7,0x4b,0x5,0x4f,0xfa,0x80,0xf7, +0x3a,0x2,0xc0,0x7,0x5,0x0,0xb5,0xfc,0xfd,0x5,0x86,0xb, +0x88,0x6,0xc2,0x6,0x7d,0xe,0xde,0xa,0x53,0xff,0x72,0x3, +0x37,0x10,0xdd,0xe,0xd8,0x7,0x46,0xa,0x9f,0xe,0x6,0xf, +0xa6,0xf,0x3c,0x11,0x18,0x13,0xf,0x13,0xe9,0xe,0xb2,0xc, +0x28,0x11,0x66,0x15,0xe8,0x12,0xab,0xe,0x19,0x11,0x47,0x17, +0x5,0x17,0x1,0x12,0x41,0x11,0xc8,0x11,0x85,0xd,0x8d,0xa, +0x12,0xe,0x81,0x11,0x29,0x10,0x3a,0x10,0x8b,0x15,0x4f,0x17, +0x38,0xf,0x98,0x7,0x11,0xa,0xce,0xe,0xe4,0xc,0xbf,0x8, +0xf2,0x8,0xbe,0xc,0x5e,0xe,0xfb,0x9,0x48,0x5,0x6,0x7, +0xc2,0xa,0x65,0xb,0xbf,0xa,0x18,0x8,0xdb,0x1,0x23,0xfd, +0x5f,0x0,0xee,0x7,0x6f,0x8,0x6b,0x4,0x37,0x8,0x39,0xc, +0x2d,0x6,0x2e,0x1,0xc4,0x0,0xa8,0xfe,0x60,0x1,0x62,0x7, +0x70,0x6,0xa1,0x4,0xc5,0x5,0x17,0x4,0x8,0x6,0x91,0xd, +0xc5,0xb,0xa6,0x1,0xfc,0x1,0x7a,0xa,0xbe,0xa,0x1b,0x8, +0x26,0xb,0x46,0x9,0x1b,0x4,0x5f,0xb,0xc3,0x16,0x3d,0x15, +0x3d,0xf,0x78,0x10,0xf3,0x10,0x1e,0xd,0xaa,0xe,0x9,0x13, +0x46,0x13,0x24,0x16,0x33,0x19,0x12,0x15,0xe4,0x14,0x20,0x1a, +0x10,0x19,0x71,0x17,0x84,0x18,0x1a,0x14,0xd8,0xf,0xae,0x13, +0x2f,0x1b,0x14,0x1e,0x10,0x18,0x46,0x11,0xd,0x13,0x3,0x19, +0xb7,0x1a,0x65,0x15,0xce,0x11,0xfc,0x15,0xc9,0x14,0xd5,0xf, +0xfd,0x15,0xa8,0x17,0x3f,0xd,0xc9,0xc,0xfe,0x11,0x95,0xe, +0x4c,0xb,0x2,0x9,0xd5,0x7,0x56,0xe,0x4d,0x10,0xe8,0xa, +0xd2,0xc,0x5a,0xd,0x4c,0x3,0x7c,0xfe,0xf5,0x1,0x83,0x1, +0x9d,0xfd,0x67,0xfb,0xa1,0xfc,0xda,0x0,0x36,0x2,0x7,0x1, +0xca,0x2,0x45,0x2,0x59,0xfc,0x82,0xf8,0xb6,0xf8,0x53,0xf9, +0xf4,0xf6,0x5a,0xf1,0x2f,0xf1,0x6a,0xf8,0x57,0xfc,0x7b,0xfa, +0xa9,0xf7,0xb0,0xf6,0x91,0xf8,0xc1,0xf8,0xa3,0xf7,0x2e,0xfa, +0xd0,0xfa,0xd2,0xf8,0x18,0xfb,0x91,0xfe,0x0,0x1,0x70,0x1, +0xc4,0xfc,0x2c,0xfb,0x15,0xfe,0x9b,0xfc,0x2c,0xfd,0x33,0x4, +0x96,0x8,0x19,0x7,0x76,0x3,0xa2,0x5,0x58,0xa,0xbb,0x3, +0xfe,0xfd,0xfd,0x3,0xa6,0x4,0xd1,0x3,0xa1,0x8,0xe1,0x4, +0x63,0x5,0xb3,0xf,0x14,0xb,0x55,0x6,0xaf,0xf,0x6b,0xa, +0xff,0xfd,0x88,0x2,0x0,0x8,0x59,0x8,0xa2,0x6,0x82,0xfc, +0xe5,0xfd,0xa4,0xe,0x54,0xf,0xbb,0x6,0xf4,0x8,0xef,0x5, +0x9,0xfe,0x6b,0x2,0x3f,0xa,0xae,0xa,0xd3,0x3,0x37,0xfc, +0x8f,0x2,0x28,0xd,0xe,0x6,0x86,0xfa,0x86,0xfc,0xa1,0x4, +0x3,0x7,0x9d,0xfd,0xf7,0xf6,0x24,0x1,0xf1,0x2,0x2b,0xf5, +0x9e,0xf7,0xdc,0x1,0xb6,0xf7,0xf,0xe9,0x72,0xea,0x74,0xf3, +0xaf,0xf1,0xa4,0xe4,0x6b,0xe6,0x4c,0xf7,0x4f,0xf5,0x2e,0xe6, +0x8a,0xe9,0x92,0xf4,0x13,0xec,0xab,0xd8,0x55,0xd7,0xbd,0xe6, +0xdd,0xe8,0xa0,0xdb,0x79,0xd7,0x47,0xe0,0x20,0xe6,0xc7,0xdf, +0x41,0xdb,0x73,0xe3,0xd1,0xe0,0x24,0xd3,0xbe,0xda,0x72,0xe5, +0xc0,0xd9,0x41,0xd3,0x6b,0xda,0xc5,0xdf,0x9,0xe4,0xb0,0xde, +0x2b,0xd4,0x71,0xd7,0xbe,0xda,0xa9,0xd7,0x11,0xdd,0x62,0xe2, +0xa3,0xe3,0x34,0xe6,0x9b,0xe0,0x63,0xdd,0x7,0xe7,0x9e,0xe6, +0x63,0xdc,0x13,0xdf,0x76,0xe5,0x83,0xe2,0x60,0xe1,0x1d,0xe8, +0xe5,0xee,0x9f,0xef,0xf,0xee,0x2a,0xf1,0xf,0xf4,0x86,0xef, +0xf3,0xeb,0x78,0xef,0x64,0xf1,0xb3,0xf1,0x31,0xf7,0x80,0xfa, +0x29,0xf9,0xc2,0xfc,0xd8,0x0,0x90,0xff,0x62,0x0,0x80,0x1, +0xfd,0xfe,0x42,0xff,0x4,0x0,0x79,0xff,0x42,0x5,0xf2,0x9, +0x53,0x3,0xaf,0xfd,0xe,0x3,0x47,0x9,0x2e,0x8,0x11,0x5, +0x57,0x4,0xed,0x2,0xc4,0x2,0xd3,0x9,0x89,0xf,0x59,0x7, +0x9d,0xfb,0x87,0xfc,0x63,0x3,0xb5,0x4,0x29,0x2,0x9d,0xfd, +0xbc,0xfa,0xa7,0xfd,0x8e,0xfd,0x5c,0xfa,0xf0,0xfe,0x4a,0x1, +0x95,0xfb,0xa0,0xfb,0x99,0xfa,0x2e,0xf1,0xc3,0xf0,0x6a,0xf8, +0x8d,0xf9,0x79,0xf7,0x70,0xf5,0x85,0xf3,0x49,0xf4,0x3b,0xf5, +0x86,0xf6,0xca,0xf5,0xc,0xf1,0x78,0xf3,0xb3,0xf8,0xfb,0xf2, +0xd7,0xef,0x43,0xf5,0x2,0xf5,0xc3,0xf4,0x9e,0xf8,0xcc,0xf5, +0x5e,0xf5,0xc,0xfe,0xa5,0xfe,0x55,0xf6,0x53,0xf6,0xec,0xfd, +0x30,0x2,0x3b,0x2,0x34,0x1,0x42,0x1,0xdb,0x2,0x30,0x2, +0xd2,0x0,0x85,0x4,0x5e,0x7,0x98,0x5,0x11,0x9,0x5d,0x10, +0xca,0x10,0x99,0xd,0xce,0xd,0xbc,0x11,0x4b,0x15,0xcb,0x11, +0xb5,0xc,0xe9,0xf,0xb1,0x12,0x68,0xf,0x99,0x12,0x10,0x1d, +0x83,0x20,0x5f,0x19,0x12,0x12,0x5d,0x14,0x8e,0x1b,0xa1,0x1c, +0x31,0x1b,0xa1,0x1c,0xab,0x19,0xa8,0x15,0x1b,0x1b,0xab,0x21, +0x2c,0x21,0x46,0x1e,0xc,0x1a,0x2d,0x1a,0x6c,0x21,0xe6,0x1f, +0xe4,0x16,0x58,0x19,0x6d,0x20,0x8f,0x1f,0x3e,0x1c,0x61,0x19, +0x38,0x18,0xe0,0x19,0x73,0x1a,0x13,0x1a,0x6c,0x15,0x95,0xf, +0xd7,0x17,0xf,0x20,0x6b,0x14,0x41,0xc,0x55,0x11,0x4f,0xe, +0x5e,0xb,0xe3,0x12,0xa1,0xf,0x6d,0x2,0x40,0x4,0x56,0xe, +0x4a,0xa,0x83,0x1,0x2c,0x4,0xc0,0x7,0x42,0x7,0x41,0xb, +0x9e,0xa,0x89,0x1,0xb5,0xff,0xdb,0x2,0x3b,0x0,0x21,0xfe, +0x6,0x1,0x28,0x5,0x42,0x5,0x86,0xff,0x2f,0xff,0xea,0x5, +0x9b,0x3,0xe7,0xfc,0xee,0xff,0x5,0x0,0x8a,0xf6,0x58,0xf6, +0x5e,0x0,0x35,0x1,0x1a,0xfb,0x90,0xfd,0xe,0x3,0xb3,0xff, +0x7a,0xfa,0x25,0xfc,0x9e,0xff,0x75,0xff,0x34,0xfb,0x1,0xf4, +0xfb,0xf2,0x2e,0xff,0x17,0xa,0xf7,0x3,0xb,0xf9,0x4d,0xfa, +0x13,0x0,0x5b,0xfe,0x9f,0xfa,0x7c,0xfb,0x22,0xfb,0xe2,0xf8, +0x74,0xff,0xaf,0x9,0x8,0x5,0x40,0xf9,0xe4,0xfb,0xe2,0x3, +0x88,0xfd,0xcb,0xf3,0x1a,0xf9,0x7a,0x1,0xf5,0xfb,0x17,0xf6, +0x9f,0xfc,0x45,0x2,0xf2,0x1,0xb,0x2,0x62,0xfd,0x6d,0xf6, +0x39,0xf8,0xe1,0xfc,0x7e,0xfc,0x37,0xfb,0xea,0xfa,0x4c,0xfb, +0xc2,0xff,0x40,0x7,0xa9,0x6,0xef,0xf8,0x8c,0xef,0x6d,0xf6, +0x3e,0xfd,0x92,0xfb,0x64,0xfd,0x78,0x1,0x21,0xfd,0xad,0xf6, +0x8e,0xfa,0x33,0x2,0xfe,0xfe,0x36,0xf8,0xcb,0xf9,0xb0,0xf8, +0xa4,0xf2,0xa9,0xf7,0x33,0x1,0xdb,0xff,0x9f,0xfb,0xd5,0xfc, +0x34,0xfe,0x5,0xfc,0x20,0xf9,0x2a,0xfa,0x45,0xfb,0x4e,0xf7, +0x2a,0xf7,0x38,0xfd,0xee,0xfe,0x76,0x0,0x2b,0x7,0x3b,0x6, +0x8e,0xfc,0xfe,0xfa,0x7f,0x3,0xa5,0x7,0xc5,0x2,0x1,0xfe, +0xaf,0xfd,0xd3,0xfe,0x94,0x2,0xb4,0x6,0xc5,0x4,0x7b,0x3, +0x51,0x9,0xd0,0xa,0x49,0x3,0xb8,0xff,0x4a,0x4,0x88,0x8, +0x2f,0xa,0xc4,0xa,0xb2,0x6,0x84,0x0,0xa9,0x2,0x80,0xa, +0xe7,0xa,0xc3,0x3,0x4a,0xfe,0xf6,0xff,0xe5,0x7,0x38,0xa, +0xa,0x2,0xe7,0xff,0xa9,0x7,0x8b,0x7,0x51,0xfe,0x59,0xfa, +0x5f,0xfe,0x7d,0x2,0x47,0x3,0xc0,0x4,0xd,0x3,0xef,0xf9, +0xc2,0xf9,0xfd,0x6,0xa2,0xa,0xca,0xff,0x3,0xf7,0x2a,0xf9, +0xd6,0x0,0xc8,0xff,0x48,0xf9,0x26,0xfa,0xfb,0xfb,0x4d,0x0, +0x85,0x7,0xa7,0xfe,0x56,0xf5,0x5e,0xfe,0x76,0xfd,0x67,0xf3, +0xcb,0xf9,0x16,0xff,0x6e,0xf8,0x18,0xf6,0x2e,0xf8,0xc2,0xf9, +0xe,0xf9,0x53,0xf5,0x75,0xf6,0x30,0xfa,0x77,0xf8,0x2b,0xf8, +0x4f,0xfd,0x99,0xfd,0x9b,0xf3,0x6d,0xec,0x97,0xf4,0xcf,0xff, +0x1c,0x0,0x83,0xfb,0x13,0xf7,0x48,0xf4,0xd5,0xf7,0xf8,0xfc, +0x7b,0xfe,0x9b,0x0,0xe3,0x1,0xc2,0xfc,0xb0,0xf5,0x67,0xf5, +0xd8,0xfa,0xac,0xfc,0xac,0xf9,0x13,0xfa,0x64,0xfd,0xf4,0xfc, +0xcc,0xfd,0xa,0x6,0xc,0x9,0xc7,0xfa,0x6c,0xed,0x6f,0xf7, +0xae,0x7,0xc6,0x2,0xf1,0xf3,0x91,0xf0,0xf5,0xf3,0xe0,0xf5, +0xd2,0xf9,0x3e,0x0,0x58,0x0,0xd4,0xf5,0x3a,0xef,0x1,0xf7, +0xb0,0xfc,0x2e,0xf6,0xbf,0xf0,0x6d,0xf3,0xa4,0xf8,0xef,0xf7, +0xb6,0xf0,0x9a,0xf1,0xd0,0xf9,0x77,0xf5,0x54,0xec,0x9d,0xf1, +0x35,0xf8,0xd8,0xf2,0xca,0xef,0x3f,0xf7,0xb6,0xfb,0x2d,0xf4, +0x88,0xec,0xbc,0xf1,0x8,0xfa,0x43,0xf6,0x2d,0xed,0xc8,0xec, +0x5a,0xf2,0xa0,0xf1,0xde,0xea,0x51,0xed,0x81,0xf8,0x26,0xf8, +0x0,0xf0,0xc9,0xf2,0xc0,0xf6,0xf4,0xef,0x6,0xea,0xac,0xed, +0x7a,0xf5,0x4b,0xf5,0x71,0xed,0x64,0xef,0x5e,0xf7,0x89,0xf5, +0x92,0xf4,0xe,0xfa,0xfb,0xfa,0x0,0xfa,0xc5,0xf8,0x8a,0xf6, +0x51,0xfc,0x43,0x1,0xaf,0xf9,0xa8,0xf9,0x92,0x8,0xb0,0x9, +0x6,0xfc,0xd4,0xfe,0x1c,0xc,0x2a,0xc,0x9b,0xa,0xd6,0xd, +0xd5,0xa,0x44,0xb,0x61,0x11,0x62,0x11,0x56,0x10,0xdd,0xc, +0xd2,0x5,0xc5,0x9,0x6d,0xf,0xd1,0xd,0x1c,0x14,0x96,0x18, +0x3a,0x14,0x9e,0x1a,0x94,0x1f,0xf,0x17,0xcf,0x17,0xa4,0x1b, +0x69,0x13,0x47,0x11,0xe2,0x13,0x43,0xf,0xfe,0x10,0x11,0x15, +0x65,0xf,0x53,0x10,0x41,0x19,0x1e,0x18,0xed,0x12,0x8f,0x13, +0xd9,0x13,0x19,0x12,0x19,0x10,0x71,0xd,0xc5,0xa,0xf0,0x7, +0x8b,0x9,0xa5,0xf,0x1f,0xe,0xf9,0x6,0x56,0x6,0x85,0x6, +0xcb,0x3,0xa1,0x7,0xa3,0xe,0x69,0xe,0x9e,0xa,0xb3,0x8, +0x66,0x3,0x73,0xfb,0xae,0xfb,0x13,0x1,0x94,0x1,0x3a,0xff, +0x45,0xfa,0x56,0xf8,0xe8,0x1,0x5,0x4,0xed,0xfb,0x9d,0x4, +0xd0,0xc,0xcf,0xfd,0xd4,0xf4,0xa,0xf9,0x92,0xf6,0x47,0xf5, +0xb3,0xf8,0x71,0xf8,0xba,0xf7,0x4,0xf7,0x53,0xf9,0x15,0x2, +0x38,0x6,0xa4,0x2,0xfe,0xfe,0x97,0xfd,0xc6,0x0,0xba,0x4, +0x2a,0x2,0x22,0xfe,0xdf,0xfc,0xa4,0xfb,0xda,0xfc,0x2a,0x2, +0xe5,0x7,0x82,0xa,0xe8,0x7,0x45,0x4,0xfd,0x6,0xe0,0xc, +0xa5,0xd,0x6a,0xc,0xd5,0xe,0xc6,0xc,0xb7,0x2,0xea,0x0, +0x4a,0xa,0x2b,0xc,0xfe,0x8,0x36,0xf,0x84,0x14,0xec,0x10, +0xda,0xe,0xa6,0xe,0xc1,0xc,0xb,0xf,0x10,0x14,0xa6,0x12, +0x7e,0xb,0xd8,0x8,0x1e,0xa,0xb3,0x7,0x2d,0xa,0xa8,0x11, +0x60,0xd,0xb9,0x8,0x12,0x10,0xa6,0xf,0x67,0x9,0x5,0xd, +0x52,0xe,0xb8,0x8,0xba,0x4,0x30,0x4,0xac,0x9,0x47,0xa, +0x13,0x2,0x6c,0x5,0x2c,0xb,0xed,0x0,0xbd,0xfd,0x87,0x8, +0x59,0x9,0x4f,0x2,0xbb,0x1,0x94,0x5,0xec,0x4,0x55,0xfc, +0xa2,0xf9,0x2a,0x2,0x6f,0x1,0xa5,0xf7,0xd0,0xf7,0xa8,0xfa, +0x53,0xf7,0x17,0xf8,0xc4,0xfc,0xf0,0xfc,0x27,0xfb,0x72,0xfc, +0xb7,0xfc,0x66,0xf8,0x84,0xf7,0x87,0xf8,0x77,0xf0,0x88,0xec, +0xa8,0xf2,0x6f,0xec,0x5a,0xe4,0xc9,0xf0,0x49,0xf9,0x1,0xf1, +0x70,0xee,0xc5,0xf3,0x19,0xf7,0x41,0xf6,0xd7,0xf0,0x35,0xf1, +0xf8,0xf6,0xa8,0xf1,0x8f,0xe9,0x18,0xee,0x70,0xf2,0xaf,0xef, +0xf9,0xf3,0x80,0xfb,0xea,0xf4,0x6b,0xeb,0xa7,0xf3,0x1a,0x0, +0x57,0xfe,0x81,0xf9,0xc0,0xfb,0x20,0xfd,0x3e,0xf9,0x80,0xf6, +0x16,0xf9,0xf0,0xf9,0xcf,0xf6,0x9c,0xf9,0x44,0xfe,0x22,0xfc, +0x7d,0xfe,0x84,0x5,0xa8,0x2,0x5a,0xfe,0x60,0x2,0xbd,0x2, +0x60,0xff,0xd7,0x2,0x7,0x4,0x31,0xfc,0xc3,0xfa,0x69,0x3, +0x8,0x5,0xe9,0xfe,0x4b,0x1,0x4e,0xa,0x38,0x9,0xbb,0xff, +0xd5,0xfd,0xa3,0x1,0x57,0x1,0x86,0x3,0x26,0x8,0xc,0x3, +0x2,0xfb,0x16,0xfc,0x4a,0x0,0x49,0x1,0x85,0xff,0xb4,0xfb, +0xfb,0xf9,0xcc,0xfc,0x11,0xff,0xcd,0xfd,0x4c,0xfe,0x29,0x0, +0x62,0xfc,0xcc,0xf9,0xdb,0xfd,0x4c,0xfc,0x22,0xf6,0xab,0xf6, +0xc3,0xf7,0xb4,0xf5,0x41,0xf7,0xf6,0xfa,0xda,0xfa,0x17,0xf6, +0x40,0xf4,0x82,0xf9,0x2e,0xfb,0xd1,0xf5,0xec,0xf3,0x71,0xf7, +0x6c,0xf9,0x21,0xf6,0xea,0xf2,0x6d,0xf6,0x80,0xfa,0x40,0xf9, +0xf0,0xf5,0xa0,0xf2,0x3,0xf4,0x83,0xf9,0xd9,0xf9,0x78,0xf9, +0x9e,0xfc,0x94,0xf9,0x79,0xf6,0xc7,0xfd,0x12,0x1,0x27,0xf8, +0xd4,0xf1,0x25,0xf5,0x7f,0xfc,0x17,0x1,0xc1,0xfc,0x6c,0xf8, +0x50,0x1,0xa,0xa,0x59,0x6,0x10,0x5,0x24,0x9,0xc6,0x4, +0x8,0xfd,0x60,0xfe,0xc9,0x4,0xda,0x5,0x94,0x1,0xa4,0x2, +0x76,0xb,0x5d,0xf,0x83,0xa,0x7e,0xa,0xb7,0x12,0x75,0x13, +0xe1,0x9,0x5,0x7,0x91,0xd,0x7e,0xf,0x4e,0xa,0xe6,0x7, +0x16,0xb,0xd8,0x9,0x7d,0x1,0x9d,0x0,0x51,0xa,0xad,0xf, +0x63,0xb,0x34,0x5,0x33,0x6,0x32,0xc,0x30,0xb,0xc2,0x8, +0xf5,0xb,0x4a,0x4,0xee,0xf6,0x14,0xfc,0x88,0x5,0x4,0x0, +0x5b,0xf9,0x12,0xfb,0xc7,0x1,0xa4,0x7,0x18,0x3,0xc0,0xfc, +0xc9,0x1,0x6c,0x5,0xe7,0xff,0x62,0xfb,0xd6,0xf6,0xfe,0xef, +0x68,0xef,0xb4,0xf6,0x8d,0xfe,0x95,0xfe,0x1a,0xf6,0x9a,0xf2, +0xa5,0xfa,0x8a,0x0,0x20,0xfd,0x79,0xfa,0xdb,0xfb,0x2,0xfa, +0x9a,0xf4,0xfc,0xf1,0x9,0xf6,0xe9,0xfc,0x5b,0xfc,0xa7,0xf6, +0x49,0xf8,0x24,0xfa,0x9,0xf2,0x38,0xf1,0x8e,0x1,0x5d,0xb, +0xcc,0x0,0x83,0xf7,0xbe,0xff,0x1b,0x8,0xf8,0x2,0x3d,0xff, +0x17,0x2,0xd4,0xfc,0x3a,0xf5,0x2e,0xfb,0x55,0x4,0xa6,0x4, +0x99,0x3,0xc0,0x5,0x2b,0xc,0xa1,0x14,0x94,0x10,0xaa,0x3, +0x30,0x2,0x57,0x6,0x5f,0x4,0x53,0x2,0x27,0x1,0x5,0x2, +0xe4,0x7,0x3e,0x9,0xee,0x6,0x3c,0xb,0xed,0xd,0x8,0xa, +0xbc,0xb,0xe4,0xe,0x3b,0x6,0xca,0xfd,0x7,0x1,0xf7,0x3, +0xae,0x2,0x8d,0x2,0x3f,0x3,0x7f,0x8,0xd7,0xc,0x3b,0x6, +0x36,0xfe,0xae,0xfc,0x75,0x0,0xb6,0x8,0xd8,0xb,0xa1,0x7, +0x97,0x1,0xfa,0xf9,0x9f,0xf8,0x31,0xfc,0x15,0xfc,0x86,0xff, +0xcc,0xff,0x4d,0xf5,0x60,0xf3,0x91,0xfa,0xd9,0xfc,0xcd,0xfe, +0x5b,0x0,0x6e,0xfd,0x17,0xf9,0x4d,0xf4,0x45,0xf2,0x26,0xf3, +0xea,0xf1,0x4e,0xef,0x30,0xef,0xf0,0xf2,0xb0,0xf4,0x1e,0xf0, +0x11,0xee,0x23,0xf3,0x93,0xf7,0x80,0xf5,0x39,0xf1,0xb7,0xf2, +0xbc,0xf3,0xd2,0xed,0xba,0xeb,0xff,0xee,0x31,0xf1,0x8f,0xf4, +0x79,0xf5,0xcb,0xf2,0x88,0xf2,0xfd,0xf1,0x4d,0xf1,0xc2,0xf4, +0x19,0xf8,0xae,0xf7,0x17,0xf7,0x68,0xfa,0xe5,0xfd,0x3b,0xfa, +0x87,0xf1,0xd9,0xee,0xff,0xf7,0xd9,0xff,0x38,0xfd,0x28,0xfd, +0xc9,0xfc,0x97,0xf5,0xbd,0xfa,0x86,0x5,0x5c,0x4,0x95,0x5, +0x60,0x6,0x51,0xff,0xca,0xff,0x8d,0xff,0x3e,0xf8,0x7a,0xfc, +0x27,0x7,0xcf,0x8,0xb3,0x5,0x6b,0x4,0xe6,0x3,0xac,0x2, +0x65,0x6,0x3,0xd,0xcd,0xb,0x44,0x8,0xea,0x7,0xbe,0x5, +0x30,0x4,0xf1,0x2,0xb3,0x2,0x7b,0x8,0xab,0xa,0x83,0x5, +0xfe,0x3,0x60,0x6,0x22,0x8,0x76,0x9,0x13,0xa,0xf4,0x8, +0xd0,0x4,0x70,0x1,0x39,0x2,0x4e,0x3,0x5b,0x3,0x52,0x2, +0x4a,0xff,0x55,0xff,0xa4,0x3,0xe2,0x3,0x9a,0xff,0xf2,0x0, +0x50,0x5,0x9f,0x2,0x47,0xff,0x5a,0xff,0xc,0xfd,0xd3,0xfb, +0xe7,0xfa,0xee,0xf9,0x41,0xff,0xb9,0xff,0x6a,0xfb,0x36,0x2, +0x95,0x5,0x89,0xfc,0x5,0xfa,0xfe,0xff,0x0,0x5,0x13,0x3, +0x86,0xfc,0x7b,0x0,0x12,0x7,0xe0,0x0,0x8f,0xfd,0x73,0x2, +0x6d,0x3,0x1c,0x5,0x4f,0x9,0xe6,0x8,0x9d,0x5,0x6e,0x3, +0xec,0x4,0xdf,0x9,0x52,0xc,0xf3,0x9,0x1a,0x8,0xd9,0xa, +0x2c,0xd,0x1b,0x9,0xe1,0x3,0x66,0x5,0x11,0xb,0x80,0xc, +0xd9,0x9,0xab,0xb,0x5d,0x10,0xd1,0xe,0x9b,0xb,0x1f,0xe, +0x5a,0xf,0x94,0xb,0x2f,0xa,0xde,0xa,0x25,0xa,0x18,0xd, +0xa4,0x10,0x3f,0xe,0x78,0xe,0xdf,0x10,0xa7,0xb,0xe8,0xa, +0x77,0x14,0x72,0x15,0x13,0xd,0x5,0xb,0x22,0xe,0x76,0xe, +0x87,0xc,0xd3,0xd,0x74,0x13,0x6f,0x14,0xb5,0xc,0xa2,0x6, +0x38,0x9,0xec,0xc,0xf2,0xa,0xb4,0xb,0x64,0x12,0x2d,0x10, +0x4a,0x8,0x93,0xc,0x9a,0x11,0x29,0xb,0xbb,0x6,0x2,0x6, +0x9,0x5,0x13,0x9,0x58,0x9,0x33,0x3,0xa9,0x3,0x23,0x6, +0xbd,0x3,0xc2,0x3,0xf,0x6,0x76,0x6,0x2e,0x4,0x3f,0xff, +0xe4,0xfc,0x2d,0xfd,0x2e,0xfc,0xa1,0xff,0xf2,0x5,0x49,0x2, +0xd7,0xf8,0x54,0xf7,0x48,0xf9,0xe8,0xf7,0xb8,0xf8,0x7e,0xfa, +0x3b,0xfa,0xc4,0xfb,0x62,0xf9,0x84,0xf2,0x4,0xf3,0x92,0xf6, +0xce,0xf5,0xb6,0xf5,0x1d,0xf4,0xc2,0xf0,0x14,0xf1,0xc6,0xf0, +0x9e,0xf0,0x2,0xf5,0xc1,0xf5,0x1b,0xf4,0xe4,0xfa,0xd3,0xfd, +0x69,0xf2,0xb4,0xef,0x52,0xfb,0x92,0xf9,0xd6,0xee,0x30,0xf3, +0x7a,0xfb,0xa0,0xf7,0xe1,0xf0,0xdd,0xf4,0xd2,0x0,0xcd,0x3, +0xe7,0xfd,0xe0,0xfc,0xb3,0xfc,0x72,0xfa,0x4a,0xfc,0x3a,0x0, +0x9b,0x3,0x42,0x0,0xb4,0xf7,0xff,0xfa,0xb3,0x2,0x8c,0xfc, +0xf2,0xf5,0xd2,0xfd,0x1d,0x9,0xd9,0x6,0xb8,0xfb,0x82,0xfc, +0xc7,0x4,0x28,0x2,0xaf,0xfc,0x54,0xff,0xd1,0x2,0x77,0x1, +0x47,0xfe,0x37,0xfd,0x88,0xfd,0x59,0xfd,0x21,0xfd,0xb8,0xfe, +0xd7,0x3,0x1,0x5,0xf7,0xfe,0x37,0xfe,0x49,0x0,0x33,0xf9, +0x8c,0xf1,0xc7,0xf3,0xc7,0xfc,0xf2,0xff,0x24,0xf7,0xcd,0xf3, +0x53,0xfa,0x7b,0xf8,0xb0,0xf3,0xa9,0xf7,0x2a,0xfb,0x9c,0xf9, +0x82,0xf5,0xc3,0xf0,0x5e,0xf0,0x24,0xf3,0xf9,0xf2,0x34,0xf1, +0xef,0xf2,0x42,0xf3,0xa1,0xec,0x1b,0xea,0x9a,0xf0,0x1c,0xf2, +0xd,0xeb,0x35,0xe7,0xe7,0xec,0x91,0xf3,0xee,0xf0,0x3f,0xed, +0xa0,0xef,0xa4,0xee,0x80,0xeb,0x2,0xef,0xf0,0xf2,0xb5,0xee, +0xa4,0xe9,0xb3,0xee,0xc4,0xf4,0xfa,0xf2,0x96,0xf4,0xba,0xf7, +0xf9,0xf3,0x87,0xf3,0x77,0xf7,0xf7,0xf8,0x9,0xf8,0xfa,0xf3, +0xa0,0xf5,0x7d,0xfb,0xaf,0xf7,0xc5,0xf9,0x78,0x8,0x72,0x6, +0x72,0xf6,0x71,0xfa,0x7a,0xd,0x7c,0xc,0x70,0xfb,0x4d,0xfd, +0x93,0x9,0x5f,0x7,0xaf,0x6,0x88,0xa,0xf2,0x2,0xca,0xfe, +0xe0,0x4,0xe5,0x7,0xf7,0x9,0x2d,0xa,0x34,0x6,0xc6,0x8, +0xc3,0xf,0xda,0xe,0x5e,0x5,0xc6,0x0,0x0,0xc,0xca,0x11, +0xca,0x1,0xe4,0xfb,0x48,0x8,0x9d,0x7,0x83,0x3,0x44,0x9, +0x26,0x6,0x72,0x6,0x7d,0xe,0xe0,0x4,0x1b,0x1,0x81,0xe, +0x4c,0x4,0xac,0xf4,0xa8,0x1,0xe9,0x8,0x98,0xfd,0xd8,0xf9, +0xa2,0xfc,0xed,0xfc,0x4b,0xfc,0x74,0xfe,0x90,0x2,0x5,0xfc, +0x73,0xf0,0xc8,0xf5,0x53,0x3,0x52,0x2,0x70,0xf6,0xea,0xf0, +0x3c,0xf4,0x52,0xf7,0xdd,0xf7,0xca,0xf3,0xd8,0xec,0x2b,0xf1, +0x32,0xf9,0x4d,0xf5,0xec,0xf4,0x98,0xf9,0xfa,0xf5,0x51,0xf9, +0xe0,0x1,0x7c,0xfb,0x51,0xf4,0x57,0xf7,0xfa,0xf7,0xb2,0xf5, +0xa6,0xf5,0xc1,0xfa,0x45,0x2,0x5f,0x0,0xb5,0xfb,0xda,0xff, +0xaa,0x2,0x6f,0x2,0x5a,0x4,0x89,0x3,0x42,0x6,0xb0,0xb, +0xda,0x4,0x7e,0xfd,0x92,0x2,0x48,0x5,0xec,0x4,0x51,0xb, +0x8b,0xd,0x9a,0x6,0xb4,0x5,0x7d,0x10,0x3d,0x16,0x7c,0xc, +0x68,0x5,0xd5,0xc,0x12,0x13,0x43,0x11,0x11,0xd,0x64,0x8, +0xbf,0x9,0x1a,0xe,0xcb,0xb,0x94,0xa,0x86,0xc,0x49,0xa, +0x44,0xa,0xfd,0xc,0x1b,0xc,0xb4,0xb,0x8f,0xc,0xd6,0xd, +0xea,0xe,0x50,0x8,0x3e,0xff,0x3a,0xfe,0xd3,0xff,0x93,0x0, +0xb7,0x2,0xa,0x4,0xfd,0x4,0x59,0x5,0x4,0x3,0x1c,0x0, +0xc4,0xff,0xfd,0x1,0xd7,0xff,0x43,0xf9,0xce,0xfa,0x7d,0xfd, +0xf8,0xf4,0x5b,0xf3,0x3b,0xfd,0x52,0xfc,0xf9,0xf6,0xd3,0xfc, +0x22,0x0,0x11,0xfa,0xf8,0xf6,0x97,0xf9,0x49,0xfb,0xe9,0xf7, +0xb9,0xf4,0xe1,0xf9,0x44,0xfe,0xe9,0xf8,0x25,0xf6,0xa6,0xf9, +0x55,0xf9,0x6c,0xf8,0xbd,0xfa,0x5a,0xfb,0x28,0xfc,0x83,0xff, +0x8,0x2,0x70,0x2,0xf7,0x1,0x4b,0x0,0xa5,0xfb,0x3f,0xfa, +0x51,0x1,0x6a,0x2,0x57,0xfa,0xa2,0xfd,0xed,0x7,0xf7,0x5, +0xb1,0x1,0xe1,0x6,0x64,0xb,0x47,0x9,0xc9,0x7,0xf6,0x9, +0x7a,0x9,0x8c,0x6,0x4f,0x7,0xe1,0x7,0xdf,0x7,0x65,0xc, +0x56,0xd,0x93,0xa,0xa9,0xd,0x1c,0xc,0xab,0x3,0x92,0x6, +0xd2,0xf,0xe7,0x10,0x2,0xf,0xac,0xd,0x17,0xc,0x9d,0x9, +0x63,0x3,0xe0,0x4,0xd4,0xf,0xe,0xd,0xfe,0x1,0x6a,0x4, +0x22,0x7,0xec,0x2,0x60,0x6,0xa1,0xa,0x2d,0x7,0xa,0x6, +0xb0,0x7,0x8d,0x5,0x2b,0x1,0x64,0xfd,0xc9,0xfb,0xe9,0xfd, +0x4a,0x3,0xbe,0x5,0x57,0xff,0x25,0xf9,0xe1,0xfc,0x8e,0xff, +0xdc,0xf9,0x47,0xf9,0x5c,0xff,0xa4,0xfc,0xa2,0xf6,0x1b,0xfc, +0xa,0x0,0x96,0xf7,0x17,0xf4,0x85,0xfa,0x4d,0xfc,0xb8,0xf9, +0xbb,0xf8,0x65,0xf6,0x4a,0xf4,0x63,0xf4,0x9e,0xf4,0xc7,0xf7, +0xb9,0xfb,0x29,0xfa,0x15,0xf9,0xbd,0xfb,0xf6,0xf9,0x10,0xf5, +0x8,0xf4,0x33,0xf7,0x3c,0xfc,0xa9,0xfb,0xa2,0xf4,0xea,0xf3, +0x95,0xf8,0xb0,0xf8,0x99,0xfa,0x27,0x0,0x70,0xfe,0xf8,0xf9, +0xb,0xfe,0x54,0x3,0x23,0x0,0x83,0xfb,0x94,0xfd,0xec,0x1, +0x70,0x1,0x7d,0xfd,0xb4,0xfd,0xa8,0x1,0xed,0x1,0xc,0x3, +0xcf,0x9,0x5f,0xb,0x8c,0x5,0x95,0x3,0x0,0x7,0xfd,0x8, +0xc0,0x5,0x53,0x2,0xe9,0x4,0xa,0x6,0x74,0x2,0xdf,0x3, +0x65,0x7,0x5e,0x6,0x46,0x6,0x1f,0x7,0xa8,0x6,0x9b,0x8, +0x3f,0x9,0x5a,0x4,0xe9,0x0,0xc7,0x3,0x23,0x6,0x7,0x2, +0x30,0xff,0x6b,0x3,0xc9,0x3,0x4c,0xfd,0xbf,0xfc,0x45,0x1, +0x6d,0x1,0x3c,0x0,0xda,0x0,0x2b,0x1,0xe9,0xff,0x19,0xfb, +0xe9,0xf8,0xcf,0xff,0x15,0x2,0x60,0xf6,0x78,0xef,0xec,0xf8, +0x70,0xfe,0x2b,0xf4,0x33,0xf0,0xac,0xfa,0x17,0xfc,0x77,0xf4, +0x72,0xf7,0x7,0xfc,0x2c,0xf6,0x5b,0xf1,0x9f,0xf3,0x22,0xf5, +0x85,0xf1,0x99,0xee,0xaa,0xf1,0xcc,0xf4,0x66,0xf4,0x9a,0xf4, +0x6e,0xf6,0x7e,0xf9,0x45,0xf9,0x6b,0xf3,0xcf,0xf2,0x66,0xf8, +0x56,0xf9,0xea,0xf7,0x1c,0xf7,0xe2,0xf4,0x11,0xf6,0x1e,0xf9, +0x21,0xf9,0x57,0xfb,0x69,0xff,0xe4,0xfd,0x7d,0xf9,0x83,0xf9, +0x35,0xfd,0xb1,0xff,0x97,0x0,0x6,0x2,0x54,0x2,0x16,0x0, +0xf7,0xfd,0xdb,0xfc,0xd2,0xfb,0xd0,0xfb,0x55,0xfd,0x5f,0x1, +0x5c,0x6,0x48,0x4,0xae,0xfc,0x16,0xfd,0xfc,0x4,0x8,0x7, +0x1f,0x2,0x54,0x0,0x73,0x2,0x17,0xff,0x5f,0xfa,0xcf,0xff, +0xf6,0x4,0xc2,0x0,0xe5,0xff,0x72,0x3,0xad,0x2,0x47,0x1, +0x5f,0x1,0x84,0x0,0xb3,0xfd,0x5f,0xfa,0xff,0xfc,0x3,0x1, +0xa4,0xfe,0x29,0xff,0x29,0x1,0xbc,0xf8,0x14,0xf2,0x5d,0xf8, +0xa0,0xfd,0x17,0xfb,0x66,0xfb,0x6a,0xff,0x74,0xfb,0x8b,0xf2, +0x96,0xf4,0x11,0xfd,0xf3,0xfb,0x81,0xf6,0x5,0xf7,0xa8,0xf7, +0x72,0xf4,0xec,0xf2,0xcf,0xf5,0x4b,0xf9,0xbd,0xf8,0xfc,0xf7, +0x84,0xfa,0x29,0xf9,0x6c,0xf7,0xfc,0xfb,0x68,0xf9,0xa1,0xf2, +0xa4,0xf8,0xf3,0xfc,0xbb,0xf7,0xe1,0xf9,0x59,0xfe,0x53,0xfb, +0x14,0xf8,0x81,0xf9,0x4f,0xff,0x57,0xff,0x3f,0xf9,0xe4,0xff, +0xa,0x9,0x0,0x2,0x16,0xfd,0xbb,0x1,0x72,0x1,0xf3,0xff, +0x87,0x2,0x11,0x2,0x4b,0xfe,0xa6,0xfe,0x28,0x3,0x89,0x3, +0x76,0x1,0x3f,0x5,0x85,0xa,0x76,0xa,0x50,0x7,0xf8,0x4, +0x66,0x4,0xc3,0x4,0x10,0x6,0x9c,0x5,0xd,0x3,0x7,0x5, +0xc3,0x6,0xe0,0x3,0x98,0x8,0x5a,0xe,0x33,0x7,0x7e,0x3, +0xa4,0x9,0x98,0x9,0x98,0x6,0xdd,0x7,0xcf,0x6,0x28,0x5, +0xe4,0x5,0xc9,0x4,0xab,0x4,0x18,0x5,0x48,0x0,0x51,0xfe, +0xbe,0x2,0xb6,0x2,0x6c,0x0,0xdf,0x0,0x2c,0x0,0xe2,0x3, +0xe2,0x8,0x6a,0x1,0xc1,0xf8,0xab,0xfc,0x8f,0xff,0x5b,0xfa, +0x56,0xfb,0xba,0x2,0x4,0xff,0xa2,0xf5,0xa7,0xfb,0x58,0x7, +0xf4,0x3,0xdd,0xfb,0xa7,0x0,0x3,0x7,0x22,0xfd,0xeb,0xf3, +0xd3,0xfc,0xb6,0x0,0x54,0xfa,0xf3,0xff,0x76,0x4,0x9a,0xfc, +0xc6,0xfb,0x54,0x1,0xcd,0x3,0x27,0x4,0x5c,0x0,0x23,0xff, +0xf5,0x1,0xda,0xff,0xf9,0xfe,0xd4,0x1,0x38,0x1,0x66,0x1, +0xbe,0x3,0x93,0x3,0x33,0x2,0x79,0x1,0xed,0x2,0x34,0x5, +0xe7,0x5,0x4a,0x7,0x5d,0x6,0x87,0x2,0xe2,0x4,0x1b,0xa, +0x8e,0x8,0xfa,0x3,0x3e,0x1,0xd7,0x2,0x96,0x8,0xd0,0x8, +0x27,0x5,0xec,0x7,0x82,0x9,0xcb,0x6,0x57,0x9,0x9a,0xb, +0x9b,0x8,0x3e,0x6,0x70,0x5,0xbf,0x7,0xce,0x7,0x44,0x1, +0xa8,0x3,0x65,0xb,0x2,0x7,0xd7,0x4,0xd2,0xa,0xa0,0x7, +0x31,0x1,0x72,0x3,0xf7,0x7,0xc8,0x7,0x69,0x3,0x57,0x2, +0xbb,0x5,0x4c,0x5,0xea,0x2,0xf5,0x2,0x65,0x2,0xb7,0x2, +0x46,0x5,0xee,0x4,0x1a,0x0,0xc7,0xfd,0xc8,0x1,0x7e,0x4, +0x20,0x4,0xbe,0x5,0x99,0x2,0x97,0xfa,0xde,0xfb,0x89,0x2, +0xa6,0x0,0x3f,0xfc,0x3c,0xff,0xab,0x2,0xf2,0xff,0xc4,0xfe, +0xf3,0x2,0xa5,0x3,0xc,0xff,0x99,0xfd,0x5e,0xff,0x74,0xfd, +0xdb,0xf9,0x89,0xfa,0xbe,0xfd,0x4b,0x0,0x79,0x0,0xc6,0xfd, +0x3c,0xfe,0xf2,0x1,0x2e,0x2,0xc3,0x1,0xcc,0xfe,0x5c,0xf6, +0x8a,0xf7,0xf9,0x0,0xc9,0xff,0x63,0xfb,0xd9,0xfd,0x5d,0xfd, +0x16,0xfb,0x74,0xfe,0x83,0x1,0x9d,0xfe,0x6d,0xfb,0xd4,0xff, +0x29,0x5,0xb2,0xff,0x21,0xf9,0x17,0xfd,0x53,0x1,0x55,0x0, +0x8c,0xff,0xf8,0xfb,0x45,0xf8,0x2a,0xfc,0x61,0xff,0x56,0xfd, +0x8b,0xfe,0x8c,0xff,0x85,0xfb,0x18,0xfc,0xf2,0x1,0x4a,0x2, +0x9b,0xff,0xa2,0x2,0x12,0x4,0xd0,0xfb,0xb2,0xf5,0xc5,0xf9, +0xe,0xfd,0x73,0xfb,0x4d,0xfc,0x8e,0xff,0x4e,0x0,0x98,0xff, +0x2d,0x2,0xf9,0x5,0x4,0x4,0xe7,0xfe,0xfc,0xfd,0xe7,0xfe, +0x83,0xfb,0xab,0xf8,0x6f,0xfe,0x5c,0x2,0xbf,0xfb,0xfa,0xfb, +0x66,0x5,0x75,0x3,0x52,0xfc,0xe,0xff,0x96,0x1,0xd,0xfe, +0x48,0xfe,0x71,0x3,0xc2,0x2,0x1d,0xfc,0x3a,0xfd,0xb3,0x2, +0x2b,0xfe,0x14,0xf8,0xa2,0xfb,0x87,0x0,0xf,0xff,0x84,0xfb, +0x10,0xfe,0x6c,0x3,0xfe,0x0,0x33,0xfd,0x95,0x1,0xbc,0x3, +0x4f,0xfd,0xdf,0xf9,0xb0,0xfc,0x88,0xfa,0xcb,0xf5,0xb0,0xfb, +0x32,0x3,0x7a,0xff,0x9d,0xfd,0x98,0x3,0xde,0x2,0x21,0xfb, +0xc0,0xf8,0x2b,0xfc,0x0,0xfd,0x58,0xf9,0x86,0xf8,0x7,0xfc, +0x33,0xfc,0x3f,0xfb,0x2a,0xff,0x48,0xff,0x27,0xf9,0x9b,0xf9, +0x0,0xfe,0x82,0xfb,0x5d,0xf8,0xa5,0xf8,0x6a,0xf9,0xf,0xfd, +0xad,0xfd,0xa9,0xf8,0x7f,0xfa,0x7,0x0,0xb4,0xfd,0x4e,0xfa, +0xbc,0xf9,0x86,0xf7,0xed,0xf7,0xa4,0xfb,0xe6,0xfc,0xe6,0xfd, +0x78,0x0,0xb,0x0,0x41,0xfe,0xa9,0xff,0xd2,0xff,0xcd,0xfa, +0x17,0xf8,0xbf,0xfd,0x88,0x2,0x28,0xfe,0xd1,0xfb,0x8e,0x2, +0x87,0x4,0xdd,0xfe,0xb8,0xff,0xf9,0x5,0xaf,0x4,0xc,0xfd, +0xfc,0xfb,0x4b,0x2,0xc3,0x2,0xf4,0xfd,0xbb,0xff,0x28,0x5, +0xc4,0x5,0xd9,0x1,0x5e,0xff,0xf2,0x2,0x57,0x4,0x43,0xfe, +0xdf,0xfc,0xd1,0x1,0x2,0x2,0x60,0xff,0xdd,0x0,0x70,0x3, +0x9e,0x0,0x92,0xfb,0xee,0xfd,0x44,0x4,0x9e,0x3,0x33,0xfe, +0x8f,0xfd,0xda,0x1,0xc1,0x1,0x47,0xfc,0x2d,0xfb,0x13,0xfe, +0x7f,0xfe,0xa5,0xfd,0x5b,0xfc,0x55,0xfb,0x8c,0xfc,0x40,0xfd, +0xdc,0xfb,0xe0,0xfb,0x63,0x0,0xb4,0x3,0x68,0xfe,0xba,0xf9, +0x8,0xfc,0xeb,0xf9,0x6,0xf6,0x4c,0xfb,0xb5,0xff,0xee,0xfa, +0x38,0xf8,0xc6,0xfe,0x57,0x3,0x6a,0xfd,0x97,0xf9,0xd1,0xfe, +0x16,0x0,0x32,0xfb,0xfe,0xf9,0xc8,0xfc,0x21,0xfe,0xc6,0xfa, +0xd3,0xf8,0xbb,0xff,0x7b,0x3,0x31,0xfc,0x5,0xfb,0xb6,0x2, +0x17,0x1,0x5,0xfa,0x5,0xfd,0xea,0x2,0xe9,0x0,0xdb,0xfd, +0x4d,0x0,0x9d,0x2,0x51,0x0,0x62,0xfe,0x22,0x0,0x3a,0x2, +0x27,0x3,0x95,0x2,0xbb,0x1,0x5f,0x5,0xdf,0x9,0xf2,0x7, +0xf2,0x3,0xe5,0x4,0x4d,0x9,0xde,0x8,0x22,0x3,0xb3,0x3, +0xb,0x6,0x9b,0x0,0x20,0x3,0x67,0xd,0x83,0x9,0xdd,0x2, +0xfd,0x8,0x5a,0xa,0x56,0x3,0x21,0x4,0x20,0x7,0x4a,0x3, +0x7e,0x5,0xfe,0xc,0x20,0x6,0xcb,0xfa,0xc0,0x1,0x4,0xc, +0x56,0x4,0x21,0xfa,0x73,0x1,0x33,0xa,0x44,0x0,0x64,0xf9, +0x6b,0x4,0x5f,0x5,0xcd,0xfa,0x8c,0xfe,0xd2,0x5,0x65,0x0, +0x29,0xf9,0x37,0xfa,0x6f,0x1,0xc,0x1,0x3b,0xf7,0x39,0xf9, +0x52,0x2,0x23,0xfc,0x8b,0xf5,0x5d,0xfd,0x3a,0xff,0x3e,0xf7, +0x8a,0xf8,0x8b,0xfd,0xce,0xf8,0x0,0xf6,0x6c,0xfb,0x82,0xfb, +0xcf,0xf5,0x18,0xf6,0x0,0xfa,0xd2,0xf8,0x66,0xf6,0x70,0xfa, +0x34,0xff,0x68,0xfb,0x78,0xf6,0x77,0xfa,0x7c,0xfd,0x68,0xf7, +0x68,0xf6,0x41,0xff,0x99,0x1,0xce,0xfb,0x40,0xfb,0xf4,0x0, +0x19,0x2,0x6f,0xfb,0x77,0xfd,0x2e,0x9,0xbe,0x2,0xb,0xf7, +0x99,0x3,0xe,0x9,0x33,0xfc,0x98,0x1,0x28,0x9,0xb7,0xfe, +0x9f,0x1,0x8a,0xc,0x41,0x4,0xbf,0xfd,0x36,0x7,0x7e,0xa, +0x9,0x2,0x1f,0xff,0xca,0x5,0x5,0x9,0xa4,0x4,0x79,0x3, +0xdd,0x7,0x9,0x7,0xd2,0x2,0xc2,0x7,0x3d,0xe,0x50,0x8, +0x20,0x1,0x69,0x4,0x75,0x8,0x31,0x5,0x66,0x0,0x7c,0x3, +0xdc,0xa,0x55,0x7,0x41,0xfe,0xf6,0x0,0x7d,0x5,0x74,0x1, +0x1e,0x2,0xb1,0x3,0x0,0xfb,0xb6,0xf9,0x20,0x2,0xce,0xfe, +0x2d,0xfb,0x13,0x4,0x7e,0x4,0xb6,0xfc,0xe7,0xfd,0x94,0xff, +0xb5,0xfc,0xa9,0xfc,0xb6,0xfd,0x7c,0xfe,0x9c,0xfc,0x7d,0xf7, +0x43,0xfa,0x80,0x0,0xfc,0xfa,0xb1,0xf6,0x5a,0xff,0x36,0x2, +0x60,0xfb,0x23,0xfb,0xdf,0xfd,0x56,0xfc,0xdc,0xfa,0x74,0xf9, +0x18,0xfa,0x4f,0xf9,0xd8,0xf2,0xfc,0xf7,0x81,0x3,0x6d,0xfb, +0x6d,0xf4,0x5c,0x0,0xa1,0x3,0x96,0xfd,0x5c,0x2,0xf1,0x6, +0xa5,0x0,0x9f,0xf9,0x52,0xfa,0x95,0xfe,0xf3,0xfc,0xbb,0xf7, +0xae,0xf9,0x5c,0x1,0x30,0x3,0x15,0x0,0x35,0x4,0x5b,0x9, +0x14,0x4,0x8f,0x1,0xc4,0x6,0x26,0x6,0x78,0x2,0xc5,0x0, +0xe,0xfe,0x31,0xff,0x79,0x1,0x5b,0xff,0x26,0x1,0x37,0x6, +0x51,0x5,0x6,0x3,0x11,0x6,0xe9,0xa,0x9,0xb,0x83,0x5, +0x14,0x4,0x17,0xa,0x7f,0x7,0xa7,0xfb,0x8c,0xfd,0x47,0x8, +0x8b,0x3,0xe0,0xf9,0x58,0xff,0x2,0x8,0x35,0x5,0xc8,0xff, +0xdb,0x1,0x56,0x5,0xfd,0x3,0xb1,0x1,0x70,0x0,0x57,0x0, +0x2,0x0,0x86,0xfa,0x8d,0xf8,0x99,0x0,0x90,0xff,0x78,0xf3, +0x28,0xf6,0xb2,0x3,0x5c,0x2,0xac,0xf8,0x9c,0xfb,0xed,0x2, +0x46,0xfd,0x38,0xf5,0xdc,0xfa,0x9c,0x1,0x9a,0xfa,0xc8,0xf3, +0x7d,0xf9,0x51,0xfe,0x5e,0xfa,0xf9,0xf6,0x9,0xf8,0x88,0xfb, +0x7,0xfe,0xff,0xfc,0x13,0xfe,0xef,0xfe,0xb9,0xf8,0xd1,0xf6, +0x30,0xfd,0x71,0xfe,0xb,0xfb,0xdf,0xf9,0x3,0xfa,0xfe,0xfa, +0x81,0xf9,0x8b,0xf5,0x3c,0xf8,0xf,0x0,0x99,0xff,0xa6,0xfa, +0x24,0x1,0x2f,0x8,0x62,0xff,0x47,0xf9,0x2b,0x0,0xd4,0x0, +0x7b,0xfa,0x75,0xfa,0xff,0xff,0xcc,0x2,0xae,0xfc,0xe5,0xf8, +0xb4,0x3,0xbc,0xa,0xae,0x1,0xb5,0xfd,0x9b,0x8,0x71,0xd, +0x1,0x2,0xcb,0xfb,0x8b,0x4,0x3f,0x6,0xf6,0xfd,0xd7,0x0, +0x6f,0xa,0x94,0x7,0xf4,0xfd,0xb2,0xfe,0x67,0x5,0xa6,0x3, +0xf0,0xff,0xd5,0x3,0x9c,0x6,0xa,0x5,0x1e,0x4,0xa9,0x2, +0xcb,0x2,0x93,0x4,0xf3,0x0,0x5d,0xfb,0xa2,0xfb,0x97,0xfe, +0xa,0x0,0x49,0x0,0xd8,0xff,0xcc,0x1,0x61,0x5,0xf2,0x2, +0x82,0xfe,0xb2,0x1,0x80,0x1,0xe0,0xf6,0x25,0xf6,0x5,0x1, +0x86,0xfd,0x82,0xf2,0xc0,0xf9,0x89,0x3,0x83,0xfd,0x38,0xfc, +0xe8,0x4,0xcf,0x3,0x31,0xfc,0xc9,0xfa,0xdd,0xfd,0xfe,0xff, +0x22,0xfd,0xfb,0xfa,0xb3,0xff,0x68,0x0,0xd6,0xf9,0x59,0xf8, +0x8a,0xfb,0xb3,0xfa,0x2f,0xf9,0xbb,0xfe,0x54,0x5,0x7c,0x3, +0x92,0x2,0xd3,0x7,0xa9,0x4,0x31,0xfc,0x6e,0xfd,0x80,0xfe, +0x1f,0xf8,0xf6,0xf7,0x61,0xfc,0x90,0xfa,0x4c,0xfd,0x3e,0x8, +0xd,0x9,0x97,0x2,0x38,0x6,0xd5,0xa,0xb6,0x4,0xff,0xfd, +0x11,0xfd,0x29,0xfc,0x95,0xfa,0xaf,0xfd,0x7,0x3,0x7d,0x3, +0x20,0x2,0xdc,0x2,0xf5,0x2,0x5f,0x3,0x2b,0x4,0xb5,0x4, +0xea,0x7,0x97,0x8,0x3a,0x3,0x6b,0x1,0x38,0x5,0x30,0x5, +0xc4,0x0,0x80,0xff,0x53,0xff,0x78,0xfc,0x2b,0xff,0x5c,0x5, +0x6e,0x4,0x9e,0x4,0xa2,0x8,0x6b,0x7,0x32,0x8,0xab,0xa, +0x0,0x4,0x30,0xfd,0x44,0xfd,0x8e,0xfd,0xb6,0xfb,0x97,0xf9, +0xff,0xfc,0x53,0x3,0xe1,0x1,0xa4,0x0,0xd8,0x5,0x68,0x5, +0x74,0x1,0xad,0x1,0xde,0x0,0xf1,0x0,0xc3,0x2,0xa8,0xfe, +0xea,0xfa,0x7d,0xfd,0xdb,0xfc,0xd4,0xfa,0xcf,0xff,0xf0,0x2, +0x34,0xff,0x77,0xfd,0x15,0xfe,0x7b,0xfe,0xd4,0x1,0xc2,0x2, +0xca,0xfd,0x74,0xfd,0xf2,0x0,0xca,0xfc,0x5b,0xf9,0xf,0xff, +0xd8,0xfe,0xac,0xf5,0x6e,0xf5,0xfb,0xfe,0x22,0x1,0x2f,0xf9, +0x39,0xfa,0xec,0x5,0xc6,0x1,0xff,0xf5,0x6d,0x0,0xc1,0x8, +0x87,0xf9,0x85,0xf3,0x10,0xfd,0xb1,0xfc,0x19,0xf7,0xa8,0xf9, +0x96,0xfd,0xd0,0xfa,0xce,0xfa,0x53,0x6,0x33,0x9,0xab,0xfb, +0xf3,0xfa,0x32,0x6,0x3d,0x1,0x7d,0xf6,0x99,0xf9,0x9d,0xfe, +0x57,0xfb,0x1c,0xf9,0xeb,0xfd,0x88,0x0,0x44,0xfa,0x1c,0xf9, +0x13,0x5,0x67,0x8,0xc1,0xfc,0x87,0xfd,0xd5,0x8,0xe8,0x1, +0xd3,0xf4,0xe8,0xf9,0xeb,0x1,0xee,0xfe,0xc8,0xfb,0x6e,0xfc, +0x96,0xfc,0x2,0xfc,0x8,0xfb,0x33,0xfd,0xba,0x3,0x4d,0x5, +0xb,0x2,0x7,0x6,0x7d,0x9,0x3f,0x0,0x1e,0xf9,0xa1,0xfb, +0x28,0xfa,0xd9,0xf6,0x3a,0xfb,0xa0,0x0,0xa2,0x0,0xd4,0x1, +0x43,0x9,0x3,0xa,0x95,0xfe,0xdc,0xfd,0xd1,0x7,0x41,0x1, +0xe8,0xf6,0xd7,0xfe,0xfc,0x2,0xf0,0xf8,0xd7,0xf6,0xe2,0xfd, +0x7,0x0,0x8a,0x0,0x14,0x5,0xda,0x7,0x8f,0x3,0xc9,0xfc, +0xfc,0xfc,0x9,0x3,0xf2,0x3,0xb6,0xff,0x1,0xff,0x92,0x0, +0x28,0xff,0x2,0xfc,0x52,0xfa,0x17,0xfb,0x58,0xfd,0x17,0x1, +0xf2,0x5,0xfd,0x7,0x9b,0x6,0x89,0x4,0xe0,0x0,0x81,0xfc, +0x26,0xfb,0xfe,0xfb,0x82,0xfb,0x75,0xf9,0xd1,0xf9,0x77,0xfd, +0x6e,0xff,0x36,0xff,0x8d,0x0,0x13,0x3,0x8e,0x4,0x15,0x3, +0x54,0x0,0xfe,0x0,0xd0,0x0,0x95,0xfb,0xf4,0xfa,0x97,0xff, +0xc4,0xfc,0x1c,0xf8,0x15,0xfe,0x7f,0x4,0xfa,0x1,0xf1,0xff, +0x94,0x2,0x3c,0x3,0x80,0x0,0x79,0xff,0xe5,0x1,0x54,0x2, +0x33,0xff,0x6d,0xfe,0xae,0xfe,0xa8,0xfa,0x92,0xf7,0x6,0xfb, +0x33,0xff,0xe,0x0,0xcf,0x3,0x64,0x8,0xf3,0x3,0x8b,0xff, +0x5f,0x4,0x2d,0x4,0x6e,0xfd,0xc7,0xfe,0x4e,0x2,0x7b,0xfe, +0x8d,0xfa,0x63,0xfb,0x84,0xfd,0x4,0xfe,0x27,0xff,0x82,0x3, +0x2b,0x6,0xce,0x4,0x4e,0x4,0x84,0x4,0x2a,0x2,0xfc,0xfe, +0xa4,0xfd,0xe,0xfd,0xd2,0xfc,0x11,0xff,0x54,0x0,0xf6,0xfd, +0x46,0xff,0x32,0x4,0x71,0x4,0x3d,0x3,0x1b,0x5,0x59,0x4, +0x46,0xff,0xab,0xfc,0x16,0xfe,0x1,0xfd,0x30,0xfa,0xc2,0xfa, +0x8f,0xfa,0x8d,0xfa,0xcb,0xfe,0xb7,0xfe,0x85,0xfc,0xcd,0x1, +0x8b,0x3,0x51,0xfd,0x25,0xfc,0x7b,0xff,0x45,0xff,0x26,0xfb, +0x52,0xf8,0xcf,0xfc,0xed,0xff,0x4,0xfa,0xc,0xfa,0x73,0x1, +0xd6,0xff,0xf3,0xfc,0x5a,0x2,0x7d,0x2,0xe1,0xfc,0xff,0xfd, +0x70,0x2,0x21,0x3,0x8d,0xff,0x6f,0xfa,0xb,0xfb,0x6b,0xfd, +0xae,0xf7,0xbe,0xf5,0x9f,0xff,0x3d,0x2,0x61,0xfb,0x4d,0xff, +0xd4,0x8,0xd6,0x6,0x90,0x1,0xc1,0x2,0x8e,0x1,0xbf,0xfb, +0x75,0xfb,0xb5,0xff,0xca,0xfd,0xc,0xf9,0x55,0xfd,0xf7,0x3, +0xe1,0x0,0xc,0xff,0xd2,0x6,0xcd,0x8,0x15,0x3,0x23,0x5, +0xea,0x8,0x1e,0x3,0x2d,0xff,0x90,0x2,0xcc,0x1,0xbb,0xfc, +0xb1,0xfd,0x2f,0x4,0x21,0x5,0x75,0xfd,0x74,0xfb,0x5e,0x6, +0xaa,0xd,0x2a,0x9,0x65,0x6,0x5f,0x8,0xf7,0x5,0x94,0x1, +0xbe,0x0,0xd5,0xff,0x57,0xfd,0xc,0xfc,0xf9,0xfa,0x1c,0xfb, +0x58,0xff,0x1f,0x2,0xe7,0x1,0xb7,0x6,0x88,0xb,0x1,0x8, +0x9b,0x4,0xf2,0x3,0xfc,0xff,0xb1,0xfc,0x6f,0xfb,0xb5,0xfa, +0xe3,0xfd,0x8a,0xff,0xa4,0xfc,0xfe,0xfc,0x8c,0xff,0x4a,0x0, +0xd,0x0,0x4c,0xff,0x7b,0x3,0xf6,0x7,0xee,0x0,0xd9,0xfa, +0xa,0xff,0xeb,0xfd,0x60,0xf7,0xdf,0xf6,0x5d,0xf8,0x69,0xf9, +0xf4,0xfb,0xce,0xfb,0xa9,0xf8,0x82,0xf9,0x27,0x1,0xa8,0x5, +0xf6,0x1,0x8c,0x1,0xe6,0x2,0xd2,0xfc,0xaa,0xfa,0xd0,0xfc, +0xcd,0xf5,0x43,0xf2,0xe4,0xfb,0x98,0x0,0x7e,0xfb,0xe6,0xfa, +0x97,0x1,0x9c,0x5,0x83,0x2,0x1b,0x0,0xe8,0x2,0xc1,0x3, +0xc4,0x0,0x9b,0xfe,0xf0,0xfa,0x66,0xf6,0x1a,0xfa,0x7b,0x2, +0x88,0x2,0x2b,0xff,0x1b,0x3,0x66,0x6,0xb,0x2,0x49,0x0, +0x90,0x6,0xc,0x9,0x61,0x1,0xef,0xfc,0x94,0xff,0x8e,0xfb, +0x27,0xf8,0xcf,0x1,0xad,0x5,0x14,0xfd,0x8b,0xfd,0xbe,0x5, +0xe5,0x4,0x99,0x0,0x25,0x5,0xaf,0xb,0xff,0x6,0x6e,0xff, +0xa8,0x1,0xd9,0x0,0x36,0xf8,0x65,0xf9,0x36,0xff,0x53,0xfa, +0x8a,0xf8,0xb4,0x3,0xbd,0x8,0xf5,0xff,0xb4,0xfd,0x7f,0x7, +0x2b,0x8,0xfb,0xfe,0x4,0x1,0xe2,0x6,0xd6,0xf9,0xa2,0xe8, +0x70,0xf0,0xcc,0x0,0xcf,0xfb,0xad,0xf6,0xff,0x3,0x25,0x4, +0x6b,0xf6,0xee,0xfc,0x26,0x7,0x8d,0xfd,0x6f,0xf8,0x9,0x1, +0x31,0x2,0x32,0xf9,0x4d,0xf4,0xc0,0xf6,0xb1,0xf6,0xb2,0xf3, +0x86,0xf7,0x34,0xfd,0xba,0xfe,0xee,0x3,0x54,0x8,0x60,0x2, +0x24,0xfc,0xc7,0xfe,0xdd,0x3,0x1,0x4,0x4a,0xfe,0x4c,0xf8, +0x71,0xf8,0x22,0xfc,0x4a,0xfd,0x29,0xfe,0xd2,0x1,0x3e,0x4, +0x4e,0x6,0x41,0xb,0x33,0xb,0x43,0x4,0xbe,0x1,0xe0,0x2, +0xc8,0xff,0xd9,0xfc,0x1f,0xfd,0x82,0xfe,0x46,0x3,0xdd,0x6, +0x6d,0x3,0xcf,0x1,0x57,0x5,0xe6,0x4,0x91,0x2,0x91,0x4, +0xf3,0x7,0x4e,0xa,0x74,0x8,0xbe,0x1,0xa1,0xfd,0x46,0xfd, +0x19,0x0,0xea,0x7,0xaa,0x9,0x51,0x2,0x65,0xff,0x90,0xfe, +0xab,0xfc,0x8f,0x3,0x14,0xa,0x17,0x8,0x7e,0xa,0xf,0xa, +0x6e,0xfb,0x75,0xf3,0x4c,0xf9,0x8c,0xfa,0xb2,0xf9,0xbf,0xff, +0x7b,0x3,0xde,0x0,0xe9,0xfd,0x80,0xfe,0x7d,0x2,0x92,0x3, +0x54,0x0,0x8e,0xff,0xb1,0xff,0xc3,0xfb,0x84,0xf7,0xda,0xf7, +0x55,0xfb,0x93,0xfb,0xe7,0xf8,0x93,0xfb,0xf2,0xff,0x34,0xfd, +0x56,0xfa,0x7e,0xfe,0x20,0x2,0x3,0xff,0x50,0xfb,0x32,0xfc, +0x19,0xfb,0xad,0xf6,0x8d,0xf7,0x6,0xfb,0xcc,0xfa,0x88,0xfa, +0xd,0xfb,0xe9,0xfb,0xb0,0xfd,0xe6,0xfd,0x50,0x1,0x67,0x7, +0x3d,0x4,0x2f,0xfd,0x4a,0xfd,0x6c,0xfd,0xcb,0xfa,0x7b,0xfc, +0x92,0x0,0x74,0x0,0xc2,0xfe,0xc2,0x2,0xd8,0x5,0xaf,0x0, +0x20,0x1,0x30,0x9,0x97,0x7,0xc1,0x1,0xa,0x3,0xaa,0x2, +0xfa,0xfd,0xa0,0xfb,0x1,0xfd,0xcc,0xff,0x15,0x1,0x2b,0x4, +0x5e,0x8,0x0,0x5,0xf2,0x0,0x6e,0x4,0x5a,0x5,0xd1,0x1, +0x20,0x2,0x36,0x5,0x38,0x5,0x46,0xff,0xd,0xfa,0xc8,0xfb, +0x15,0xfc,0xa,0xfa,0x7,0xff,0x26,0x5,0x46,0x4,0xa5,0x1, +0xb0,0x1,0xe,0x2,0xb2,0xff,0x67,0xfe,0x6c,0x2,0x53,0x3, +0x9b,0xfc,0x2a,0xf8,0x9f,0xf8,0x88,0xf7,0x7e,0xf5,0xa4,0xf8, +0xe8,0x0,0x36,0x5,0xee,0x2,0xe5,0x0,0x71,0xff,0xa6,0xfe, +0xfd,0xff,0x9a,0xfc,0xfb,0xf7,0x48,0xfa,0xfb,0xf9,0xf1,0xf5, +0x44,0xf8,0x3b,0xfc,0x88,0xfd,0x7,0xfe,0xd2,0xfd,0x37,0x1, +0x91,0x3,0x5d,0x0,0x91,0x2,0x55,0x6,0x13,0x0,0x11,0xf9, +0xda,0xf7,0xf7,0xf7,0x0,0xf9,0xa2,0xfc,0xcf,0x3,0xac,0x7, +0x78,0x3,0x1c,0x1,0x82,0x2,0x33,0x2,0x5c,0x3,0x1,0x5, +0x7e,0x5,0x35,0x7,0xa6,0x6,0x80,0x2,0x88,0xfd,0x3b,0xfc, +0x43,0x1,0x3b,0x4,0x8f,0x5,0x44,0xb,0x4b,0x9,0xf9,0x1, +0x24,0x4,0x90,0x4,0xc1,0xff,0x94,0x3,0x3e,0x9,0x92,0x8, +0x3e,0x6,0xde,0x1,0xed,0xfd,0x2b,0xff,0xd3,0x2,0xe7,0x6, +0x46,0xa,0xd1,0x9,0x1f,0x7,0xbc,0x6,0x5,0x6,0xe,0x1, +0x19,0x1,0xd5,0x8,0x7,0x8,0xa9,0x0,0xc1,0x1,0x4c,0x2, +0x3d,0xfe,0x2e,0x3,0xee,0x9,0xaf,0x6,0x6b,0x3,0xa4,0x5, +0x98,0x5,0xe4,0x0,0xaa,0xfe,0x32,0x3,0xf2,0x5,0xb1,0x2, +0xe3,0x1,0xc7,0x1,0x77,0xfd,0x9a,0xfd,0xae,0x2,0x82,0x3, +0xd0,0x1,0xb8,0x1,0xe1,0x1,0xfe,0x1,0x33,0x1,0x5f,0xff, +0x3e,0xff,0x80,0x0,0x77,0x0,0x2c,0xff,0x4f,0xfd,0xe0,0xfb, +0xc1,0xfd,0x1e,0x1,0xed,0x0,0x26,0x0,0x18,0x2,0x51,0x2, +0xaf,0x0,0x4e,0xff,0x6d,0xfa,0xdd,0xf5,0x4e,0xfb,0x13,0x4, +0xaa,0x2,0x57,0xfd,0x11,0xff,0xc1,0x0,0x77,0xff,0x7d,0x3, +0x63,0x5,0xd6,0xfd,0xe,0xfb,0x29,0x0,0x17,0xfe,0x34,0xf7, +0x97,0xf8,0x60,0xfd,0xb9,0xfd,0xbe,0xff,0xfc,0x2,0x41,0xff, +0x78,0xfb,0xe4,0xff,0xa2,0x4,0x4d,0x4,0x47,0x3,0x7f,0x3, +0xd7,0x2,0x80,0xff,0x3,0xfb,0x16,0xf9,0x7e,0xfa,0xd4,0xfc, +0x94,0xfe,0x54,0xff,0x30,0xfe,0x1e,0xff,0x6a,0x5,0x4c,0x7, +0xae,0x1,0x71,0x0,0x97,0x1,0x6,0xfe,0x77,0xfc,0xf3,0xfc, +0x15,0xfa,0xe1,0xf7,0xe9,0xfa,0x26,0x1,0x99,0x1,0x6b,0xfb, +0xaa,0xfb,0x48,0x0,0xb0,0xfd,0x67,0xfb,0x9f,0x0,0x9c,0x3, +0x6e,0xfe,0x33,0xfa,0x40,0xfd,0x46,0xfd,0x28,0xf7,0x98,0xf7, +0x2a,0xfc,0x13,0xfb,0x98,0xfa,0xce,0xfd,0x58,0xff,0x9b,0x0, +0xf1,0x1,0xa3,0xfe,0x8c,0xf9,0x37,0xfa,0x77,0xfc,0x3f,0xf8, +0x86,0xf5,0xc4,0xfa,0x8a,0xfb,0xba,0xf4,0x60,0xf4,0x3d,0xfa, +0x1b,0xfb,0xe4,0xfa,0xae,0x0,0x7e,0x4,0x27,0xff,0x46,0xf8, +0xd5,0xf8,0xfd,0xfb,0x46,0xf8,0xb7,0xf2,0x63,0xf4,0x78,0xf6, +0xf,0xf2,0x1e,0xef,0x9,0xf4,0x9f,0xfb,0x7f,0xfe,0x7d,0xfd, +0xaf,0xfd,0x11,0xfe,0xf9,0xfc,0x8f,0xfb,0xee,0xf7,0x60,0xf3, +0x27,0xf2,0x58,0xf2,0xb6,0xf1,0xa3,0xf2,0x39,0xf5,0x7e,0xf5, +0x5e,0xf5,0x8d,0xfb,0xa6,0x0,0x34,0xfb,0x72,0xf7,0x68,0xfc, +0x80,0xfd,0xcc,0xf8,0x7c,0xf5,0x8b,0xf2,0x55,0xf0,0x78,0xf1, +0xf9,0xf2,0xd8,0xf2,0x32,0xf4,0x55,0xf7,0xb7,0xf8,0xc0,0xf9, +0x9b,0xfc,0xd,0xfd,0x30,0xfb,0x25,0xfc,0xa1,0xfc,0xf7,0xf7, +0xb3,0xf3,0xde,0xf4,0xda,0xf7,0x45,0xf9,0xdd,0xf8,0x32,0xf7, +0xef,0xf8,0x13,0xff,0x31,0x1,0xbc,0xfd,0x42,0xfc,0x3c,0xfd, +0x72,0xfd,0xcd,0xfe,0xf9,0x0,0x9b,0xfe,0x5f,0xf8,0x80,0xf6, +0x6b,0xf9,0x85,0xfa,0xd4,0xfa,0xcf,0xfb,0x38,0xfb,0xc,0xfe, +0xbc,0x3,0x17,0x1,0xd0,0xfa,0x11,0xfd,0xe,0x0,0x28,0xfd, +0xc0,0xfc,0x4,0xfe,0xc0,0xfb,0xbc,0xfa,0x53,0xfc,0x29,0xfe, +0xad,0x0,0x25,0x2,0x20,0x2,0x8e,0x2,0x41,0x4,0xb9,0x5, +0x9b,0x3,0x51,0x2,0x57,0x5,0xcf,0x3,0x60,0xff,0x30,0x1, +0x23,0x3,0xbf,0x1,0x7b,0x2,0x33,0x5,0xc7,0x8,0x7d,0xb, +0xdb,0xb,0xf6,0xb,0xec,0xa,0x28,0x9,0x77,0x8,0x72,0x7, +0x98,0x8,0x42,0xb,0x55,0x9,0x3e,0x6,0x4,0x8,0x47,0xb, +0x1b,0xc,0xa5,0xd,0x4f,0x12,0xb,0x15,0x5e,0x14,0x40,0x15, +0xa4,0x16,0x26,0x15,0xa5,0x11,0xfc,0xe,0xd9,0xf,0x1c,0x11, +0xad,0xf,0x2f,0xd,0xe0,0x9,0xd,0xb,0xf6,0x12,0x93,0x15, +0xdb,0x11,0x54,0x13,0x1a,0x17,0xe7,0x15,0x41,0x14,0xf9,0x14, +0x8c,0x12,0xbf,0xd,0xd,0xd,0xf5,0xc,0x78,0xa,0x75,0xa, +0x5a,0xb,0x79,0xd,0xd,0x13,0xbd,0x13,0x9a,0x10,0xd1,0x11, +0xe9,0x11,0xc2,0xe,0xa,0xd,0xc6,0xb,0x29,0xb,0xd7,0x9, +0x7,0x5,0x64,0x1,0x73,0x2,0xf6,0x4,0x7f,0x5,0xf3,0x5, +0x14,0x9,0x50,0x9,0x8b,0x5,0x7c,0x6,0xd9,0x8,0xc,0x5, +0x12,0x1,0xbf,0x0,0x6c,0x0,0x8e,0xfd,0xf8,0xf7,0x1,0xf7, +0x6c,0xfd,0xc8,0x0,0xcf,0x0,0x5c,0x3,0xbc,0x2,0x67,0x0, +0x54,0x1,0x33,0xfe,0x50,0xf9,0x26,0xfb,0x3d,0xfd,0x7,0xfa, +0xb3,0xf5,0x33,0xf5,0x6c,0xf8,0xb0,0xf9,0xf8,0xfb,0x9c,0x1, +0x8b,0xfe,0x8d,0xf7,0x48,0xfc,0x30,0x1,0x9,0xfb,0xd2,0xf6, +0x5f,0xfb,0xac,0xfe,0xf9,0xf9,0x6a,0xf5,0xd6,0xf7,0x8c,0xf8, +0xcf,0xf5,0x6f,0xfa,0x6a,0x2,0x10,0x1,0x78,0xfa,0x73,0xfa, +0x40,0xff,0xef,0xff,0xc2,0xfd,0x50,0xfd,0x34,0xfb,0x14,0xf6, +0x7c,0xf4,0xc2,0xf8,0x17,0xfc,0xb5,0xfc,0xcc,0xff,0xa4,0x0, +0x91,0xfb,0xd,0xfc,0xec,0x2,0xb1,0x4,0x10,0x5,0xc8,0x7, +0x8f,0x1,0xfe,0xf4,0xf1,0xf3,0xe9,0xfb,0xa4,0xfc,0x2b,0xfa, +0x32,0xff,0x24,0x3,0xf8,0xfe,0xb0,0xfc,0xc2,0x0,0x8c,0x3, +0xbb,0x2,0xcc,0x1,0xdc,0x0,0x64,0xfd,0x65,0xf5,0xc5,0xee, +0x5b,0xf3,0x97,0xfc,0xb0,0xfe,0x91,0xfd,0x52,0xfc,0x3f,0xfa, +0xea,0xfb,0x71,0xfe,0xac,0xfe,0x38,0x0,0x3c,0xff,0x57,0xf8, +0x1e,0xf2,0x26,0xf4,0xa7,0xf9,0x67,0xf4,0x8e,0xee,0x29,0xf9, +0x63,0xfe,0x64,0xf3,0xfb,0xf2,0xaa,0xfd,0x2b,0xff,0x7c,0xfb, +0x64,0xfd,0xa,0x0,0x98,0xf8,0x31,0xed,0x85,0xed,0x22,0xf3, +0x24,0xf2,0x8b,0xf0,0xbe,0xf2,0x5b,0xf5,0xa5,0xf5,0xce,0xf4, +0xbf,0xf8,0xeb,0xfe,0xe2,0xfe,0xb9,0xfa,0xa4,0xf6,0x44,0xf2, +0x46,0xf0,0x53,0xf2,0x89,0xf4,0xab,0xf4,0x79,0xf4,0xc5,0xf2, +0x33,0xef,0xa1,0xf1,0x5e,0xfb,0xce,0xfe,0x2e,0xf8,0xf9,0xf5, +0x9b,0xfa,0xc4,0xf8,0x27,0xf4,0xc,0xf9,0x9,0xfe,0xd4,0xf8, +0xf4,0xf2,0x1b,0xf4,0xca,0xf5,0x97,0xf1,0xa7,0xf0,0x72,0xfc, +0x78,0x5,0x42,0xfe,0x45,0xf6,0x12,0xf9,0x75,0xfb,0xe3,0xf6, +0x86,0xf6,0x53,0xfc,0x48,0xf8,0x4b,0xef,0x84,0xf3,0x74,0xf8, +0xc6,0xf3,0xf,0xf5,0x2d,0xfc,0xa3,0xff,0x59,0x1,0x92,0xfd, +0x79,0xf5,0xf2,0xf4,0xa8,0xfa,0x17,0xfd,0xb6,0xfa,0x27,0xf8, +0xfb,0xf9,0x14,0xfd,0xd,0xfc,0x96,0xf9,0xa1,0xf8,0xa4,0xf8, +0xd,0xfb,0x67,0xfe,0xa3,0xfe,0x74,0xfc,0xc5,0xfa,0xe8,0xfa, +0xa4,0xfa,0xea,0xf6,0xb9,0xf4,0x56,0xf8,0x1f,0xfb,0x94,0xfa, +0x87,0xfb,0x10,0xfd,0xca,0xfc,0x66,0xfc,0xd5,0xfc,0xc,0xfd, +0x34,0xfc,0x32,0xfb,0xd1,0xf9,0x48,0xf6,0xe7,0xf3,0x66,0xf7, +0x5b,0xfc,0x12,0xfd,0xcc,0xfd,0xa,0x1,0x17,0x1,0x27,0xfe, +0xc,0xfd,0xc1,0xfe,0xed,0x0,0xc4,0xfc,0x70,0xf7,0x4b,0xfd, +0xc3,0x1,0x38,0xfc,0x9b,0xfb,0x74,0xff,0xd,0x2,0x4f,0x3, +0xb7,0xfe,0x5f,0x1,0x88,0x9,0x63,0x0,0xa8,0xfa,0xba,0x7, +0x88,0x9,0xf3,0xff,0xfa,0xff,0x3f,0x5,0xaf,0x4,0xfb,0xfb, +0x7b,0xfb,0xcc,0x8,0xca,0xb,0x49,0x6,0xae,0x8,0xf9,0x8, +0x3f,0x6,0xe3,0x7,0x39,0xa,0x79,0xc,0x2a,0xa,0x32,0x4, +0x65,0x3,0x35,0x3,0x78,0x3,0xee,0x7,0x3f,0x9,0xa8,0xb, +0xa7,0x11,0x7a,0xe,0xd1,0x7,0xdc,0xa,0x35,0x11,0x84,0x11, +0x3f,0xb,0x44,0x6,0x6,0x8,0xf5,0x6,0x60,0x1,0x2b,0x4, +0x67,0xd,0xe0,0x10,0x89,0xc,0x89,0x7,0x34,0xa,0xf9,0xe, +0xf0,0xc,0xc2,0xc,0xd0,0x10,0xa2,0xf,0x5d,0xb,0xc1,0x7, +0x1a,0x7,0x6c,0x9,0x47,0x6,0x77,0x7,0x20,0x13,0xcd,0xf, +0x50,0x1,0x99,0x3,0xf3,0xd,0xdf,0x12,0xfd,0x13,0xa,0x11, +0x4,0x12,0x74,0x14,0x84,0xc,0x0,0x4,0x74,0x3,0xd4,0x5, +0xa5,0xa,0x8e,0xf,0x69,0xf,0xed,0x8,0x14,0x3,0x10,0x8, +0x4b,0xe,0x94,0xb,0x7c,0xc,0x7d,0x11,0xb9,0x10,0xca,0xf, +0x42,0xd,0x8b,0x6,0x58,0x6,0x40,0x9,0xa4,0x8,0x5,0xa, +0x31,0x9,0x85,0x6,0xf7,0x9,0xb8,0x9,0x32,0x6,0x72,0xe, +0x2e,0x17,0xaf,0x11,0x53,0x8,0x67,0x5,0x52,0x7,0xd3,0x6, +0x73,0x3,0x61,0x6,0x3d,0xb,0x78,0x9,0xbc,0x8,0x4b,0x9, +0xee,0x3,0xfe,0x0,0xd5,0x7,0x2f,0xe,0xe0,0x8,0x60,0xff, +0x5f,0x1,0xbb,0xa,0x7,0xb,0x47,0x2,0x4f,0xfd,0x74,0x0, +0x3e,0x3,0x65,0x0,0x2c,0xfe,0xe8,0xff,0xc5,0x1,0x37,0x3, +0x7b,0x6,0xb8,0x9,0xe7,0x7,0x3e,0x4,0x96,0x5,0xda,0x3, +0x95,0xfa,0xfe,0xf7,0xc3,0xfc,0xd,0xfc,0xb7,0xf9,0x2a,0xfd, +0xcb,0x0,0x7c,0xff,0xe4,0xfc,0xea,0xfe,0x16,0x3,0x14,0x3, +0xd8,0x0,0x66,0xfe,0xca,0xfa,0xd3,0xf8,0x19,0xf6,0x97,0xf0, +0xb6,0xf0,0xba,0xf6,0xd6,0xf9,0x77,0xf9,0xc7,0xf9,0x7b,0xfd, +0x51,0x0,0xe3,0xfc,0xef,0xfc,0xa5,0x2,0xf3,0xfc,0xf2,0xef, +0x5f,0xf1,0xd6,0xfb,0xb0,0xfa,0x2,0xf4,0x80,0xfa,0xff,0x2, +0x44,0xfd,0x1a,0xf9,0x47,0xfe,0xcc,0xfd,0x81,0xf8,0xae,0xf8, +0xbf,0xfe,0xe8,0x2,0x0,0xfe,0xa6,0xf9,0xfb,0xfb,0x6b,0xfa, +0xb4,0xf6,0x54,0xf6,0xab,0xf5,0x22,0xf7,0x97,0xf9,0x57,0xfa, +0x20,0xfe,0x19,0x2,0xfa,0x0,0x80,0xfd,0x6c,0xfc,0x3f,0xfc, +0x96,0xf4,0xfc,0xeb,0xe3,0xf0,0x22,0xfa,0xf9,0xf9,0x2c,0xf5, +0x10,0xf6,0xc0,0xfb,0xd7,0xf9,0xb9,0xf3,0x7,0xf5,0xb5,0xf3, +0xdb,0xec,0xe2,0xeb,0x8f,0xef,0x93,0xf5,0x85,0xf9,0xbe,0xf6, +0xb0,0xf6,0x22,0xf8,0xf4,0xf2,0x74,0xed,0x6b,0xea,0x10,0xe9, +0x9a,0xea,0x17,0xed,0x88,0xf0,0xc5,0xf1,0x80,0xf2,0xa1,0xf7, +0x53,0xf6,0x51,0xef,0x31,0xef,0xbd,0xed,0xf,0xea,0x99,0xed, +0xbd,0xee,0x72,0xea,0x24,0xeb,0x6a,0xf1,0x4b,0xf6,0x74,0xf1, +0x3,0xe9,0x38,0xec,0x5a,0xf1,0xe0,0xec,0xb9,0xed,0x79,0xf6, +0x5a,0xf7,0x16,0xf3,0x75,0xf4,0xf2,0xf7,0x9b,0xf5,0x2b,0xed, +0xe4,0xe8,0x30,0xee,0xcf,0xf1,0x92,0xf0,0x39,0xf4,0xe9,0xfa, +0xb7,0xff,0x57,0x2,0x8e,0xfe,0x2c,0xf8,0xda,0xf5,0x23,0xf3, +0xd,0xf0,0xc9,0xf1,0x44,0xf5,0x70,0xf6,0xb7,0xf7,0x20,0xfd, +0x2c,0x3,0xda,0x1,0xad,0xfb,0xd6,0xf8,0x41,0xf9,0xaf,0xf7, +0x84,0xf2,0x58,0xf0,0x11,0xf6,0x72,0xfb,0xc8,0xfa,0xb2,0xfa, +0x9b,0xfb,0x80,0xf7,0x75,0xf3,0x83,0xf5,0x1e,0xf7,0x2,0xf5, +0x4f,0xf5,0x3a,0xf8,0x33,0xf9,0xc8,0xf8,0xcb,0xf8,0x7c,0xf7, +0x56,0xf4,0x53,0xf2,0x2e,0xf0,0x16,0xec,0x82,0xeb,0x29,0xee, +0x9d,0xef,0xc,0xf4,0x57,0xf9,0x17,0xf8,0x27,0xf4,0xcc,0xf1, +0x70,0xf0,0xba,0xee,0x41,0xea,0x56,0xe7,0xf3,0xe9,0xc2,0xed, +0xdc,0xef,0xfc,0xef,0xb1,0xf1,0xcc,0xf6,0x64,0xf6,0x41,0xf1, +0xf7,0xf0,0x24,0xf0,0x26,0xec,0xd1,0xed,0x4c,0xf3,0xc,0xf6, +0x8a,0xf6,0x66,0xf5,0xda,0xf4,0xd2,0xf8,0xed,0xfb,0xe2,0xf7, +0xf5,0xf5,0xe2,0xfa,0x4,0xfb,0x1e,0xf9,0x90,0xff,0x36,0x4, +0xd5,0x1,0x87,0x2,0xc8,0x5,0xa5,0x5,0x6c,0x2,0x13,0xff, +0x3a,0x1,0x2b,0x9,0x1b,0xf,0xec,0xf,0x21,0x10,0xa7,0x12, +0xa1,0x14,0x30,0x14,0x99,0x13,0xd2,0x13,0x16,0x15,0x56,0x16, +0xf2,0x15,0xf2,0x17,0xe2,0x1b,0xc2,0x1c,0x64,0x20,0x3d,0x26, +0x97,0x23,0xcb,0x1f,0xa4,0x23,0x41,0x26,0x49,0x25,0x3a,0x25, +0xe,0x26,0x8b,0x28,0x49,0x29,0x15,0x27,0x50,0x28,0xdb,0x2a, +0xfc,0x29,0x20,0x28,0x55,0x27,0x26,0x2a,0xae,0x2d,0x1,0x2c, +0x6b,0x2b,0x41,0x2e,0x59,0x2d,0x7a,0x2c,0x60,0x2e,0x99,0x2b, +0x3f,0x26,0x1f,0x26,0xd5,0x27,0x14,0x25,0xc2,0x21,0x36,0x23, +0xe3,0x26,0xab,0x29,0x3b,0x29,0xfc,0x24,0x95,0x22,0x1f,0x22, +0xb7,0x1e,0x74,0x1b,0x3c,0x1a,0x4f,0x18,0x54,0x17,0x96,0x19, +0x5f,0x1c,0x62,0x1a,0x56,0x16,0xaf,0x17,0x78,0x18,0x5f,0x11, +0x12,0xa,0xb,0xa,0x2,0xe,0xb0,0xd,0xe8,0x8,0xa7,0x8, +0x38,0xc,0xda,0xc,0xdd,0x9,0x79,0x4,0xa1,0x1,0x54,0x1, +0x1c,0xff,0x11,0x1,0xfd,0x3,0x81,0xfe,0xfe,0xfc,0xf4,0x3, +0x9a,0x3,0xac,0xfc,0x88,0xfb,0x57,0xfe,0xfa,0xfb,0x49,0xf7, +0xd2,0xf9,0x80,0xfe,0xd7,0xfd,0xb,0xfd,0xa1,0xfc,0x82,0xfa, +0xb0,0xfa,0xbe,0xfa,0x45,0xf8,0xa,0xf9,0x2,0xfc,0xfe,0xfa, +0x7a,0xfb,0x96,0x1,0xb3,0x1,0x9,0xfc,0xe3,0xfd,0x7e,0xff, +0x4d,0xfa,0x53,0xfb,0xae,0xfe,0xb1,0xf9,0x14,0xf7,0x6b,0xfe, +0x13,0x5,0xd9,0x0,0xa1,0xfb,0xe9,0x3,0xf,0xa,0x6e,0xfe, +0x8e,0xf6,0xc7,0xfe,0xb6,0x2,0xc7,0xfa,0x73,0xf7,0xe5,0xfe, +0x63,0x3,0x6c,0xff,0x57,0xff,0x30,0x6,0x85,0x7,0x89,0xfe, +0x4c,0xf7,0x98,0xfc,0x61,0x1,0x71,0xf8,0x2a,0xf4,0x4d,0xfd, +0xc2,0xfd,0x2f,0xf6,0x2,0xf8,0x9a,0xfa,0x8c,0xf8,0x8c,0xfa, +0x3b,0xf9,0x3d,0xf2,0x78,0xf3,0x4,0xfa,0xf7,0xf9,0xc7,0xf6, +0x3b,0xf5,0xf0,0xf0,0xba,0xea,0xc7,0xea,0x9b,0xee,0xfd,0xec, +0x20,0xea,0x9a,0xec,0xef,0xf0,0xf3,0xf3,0x67,0xf2,0xe8,0xeb, +0xc9,0xe9,0xe2,0xec,0xc9,0xe8,0x69,0xe0,0xe6,0xe4,0x62,0xec, +0x81,0xe2,0xd0,0xde,0x3a,0xf2,0x53,0xf6,0xf9,0xe3,0xef,0xe2, +0x48,0xef,0xa,0xed,0x81,0xe3,0xec,0xe2,0x54,0xe9,0xfc,0xeb, +0xf0,0xe6,0xf6,0xe0,0xb8,0xe3,0x9a,0xef,0xe3,0xf1,0x89,0xe7, +0xfd,0xea,0xe0,0xf2,0x5,0xe7,0xba,0xe4,0x1e,0xf7,0xdd,0xf7, +0xf2,0xe9,0xc,0xec,0x8,0xf5,0x8a,0xf3,0x80,0xed,0x6b,0xe9, +0x67,0xea,0xc9,0xf4,0xe6,0xfb,0xbb,0xf2,0x4f,0xee,0x71,0xfc, +0x92,0x3,0x59,0xfb,0xb2,0xf8,0x6b,0xfc,0x3a,0xf9,0xfd,0xf1, +0x6d,0xf1,0x2f,0xf7,0x63,0xfa,0x80,0xfa,0x59,0xfd,0x35,0x2, +0xbf,0x4,0xb4,0x1,0xb0,0xfc,0x4f,0x0,0x7f,0x7,0x4d,0x1, +0xd6,0xf6,0xdd,0xfc,0xb7,0x5,0xee,0xfd,0x67,0xf8,0xb2,0x1, +0x23,0x3,0xe9,0xf9,0x27,0xf9,0x90,0xfb,0x75,0xfa,0x6b,0xfc, +0xa6,0xfa,0x2b,0xf8,0x39,0x1,0xc2,0x2,0xd1,0xf4,0xc2,0xf1, +0x42,0xf6,0x3f,0xf0,0xdf,0xec,0x63,0xef,0x68,0xeb,0x81,0xe8, +0x7a,0xed,0x25,0xf3,0x4,0xf5,0x2d,0xf2,0xff,0xed,0x5a,0xec, +0x8c,0xeb,0x1b,0xeb,0x70,0xe9,0xf6,0xe4,0x4a,0xe4,0x85,0xe7, +0x9a,0xe5,0x26,0xe3,0x8d,0xe7,0x5f,0xe8,0x84,0xe2,0x96,0xe2, +0xe,0xe5,0x16,0xe0,0x40,0xdd,0x4,0xe2,0x4b,0xe4,0x41,0xe2, +0xf,0xe2,0xbc,0xe1,0x97,0xde,0x27,0xde,0xa6,0xdd,0x2,0xd6, +0x9e,0xd4,0xc0,0xdd,0xa1,0xdd,0x4a,0xda,0x4a,0xe2,0xd,0xe5, +0x92,0xde,0x1a,0xde,0x3c,0xe0,0x81,0xdc,0x35,0xd5,0x71,0xd1, +0xde,0xd3,0x28,0xd7,0x57,0xdc,0x1c,0xe2,0x46,0xe2,0xa,0xe6, +0xfa,0xea,0x4e,0xe4,0x9e,0xe1,0xb0,0xe6,0xaa,0xe1,0x9c,0xdd, +0x29,0xe3,0x8e,0xe3,0xdc,0xe1,0xc7,0xe5,0x10,0xea,0x6c,0xef, +0x1d,0xf5,0x5c,0xf5,0x7d,0xf2,0x99,0xf1,0x90,0xf3,0x9d,0xf6, +0xcf,0xf8,0xc5,0xf9,0x89,0xf9,0xf8,0xf9,0x6a,0xfc,0x30,0xfd, +0x2d,0xfb,0x9f,0xfb,0x98,0x0,0x12,0x5,0xb4,0x4,0x9f,0x3, +0x53,0x7,0xe,0xc,0xe,0xe,0xf3,0xf,0xcd,0x10,0x52,0xe, +0xae,0xa,0x34,0x7,0x1a,0x6,0x39,0xa,0x60,0xf,0xd5,0x10, +0x54,0x12,0xc6,0x17,0x4b,0x1c,0x20,0x1a,0x16,0x16,0x30,0x17, +0xa1,0x19,0x7d,0x16,0x19,0x10,0x86,0xf,0x70,0x16,0x4a,0x1a, +0x32,0x18,0x5a,0x1a,0x85,0x1f,0x66,0x1d,0xd8,0x17,0xb0,0x17, +0x18,0x1a,0x82,0x19,0xe3,0x18,0xd1,0x1c,0xb,0x20,0x89,0x1c, +0xd1,0x18,0x58,0x19,0xa,0x18,0xf3,0x15,0x2,0x17,0xa5,0x15, +0xd0,0x13,0x3a,0x19,0xb0,0x1e,0x89,0x1d,0x45,0x1d,0x2,0x20, +0x68,0x1e,0x32,0x18,0xef,0x14,0x61,0x15,0x8,0x14,0x18,0x14, +0x1,0x19,0xe0,0x1b,0x60,0x1c,0x54,0x1f,0x32,0x21,0xb9,0x20, +0xad,0x20,0xf2,0x1f,0xc3,0x1d,0x99,0x1b,0xc2,0x1b,0xb9,0x1d, +0x8e,0x1e,0x45,0x1f,0xdb,0x1f,0xef,0x1f,0x79,0x22,0x2b,0x24, +0x2c,0x22,0xa7,0x21,0x7c,0x23,0x8f,0x24,0x4f,0x24,0xfc,0x23, +0x16,0x24,0x9d,0x23,0x5e,0x26,0x9c,0x29,0xa0,0x22,0x32,0x1b, +0x1b,0x1f,0xaf,0x23,0x1d,0x24,0x93,0x22,0x97,0x20,0x76,0x25, +0xa6,0x28,0x99,0x21,0xb4,0x1f,0x2e,0x25,0x3e,0x24,0xb1,0x1d, +0x73,0x1a,0x1f,0x1e,0x7d,0x20,0xbd,0x1b,0x28,0x1b,0x12,0x1f, +0xdd,0x1a,0x3d,0x14,0x72,0x16,0x2b,0x1c,0xde,0x1a,0xb9,0x14, +0x8f,0x14,0xae,0x17,0x11,0x15,0xbe,0x11,0xab,0x10,0xd8,0xc, +0x7e,0xa,0x55,0xd,0x4a,0xf,0x92,0xe,0x4e,0xd,0xd8,0xa, +0xeb,0x9,0xd,0xc,0xe6,0xc,0x67,0xb,0xdb,0x7,0x85,0x3, +0xda,0x3,0x5a,0x4,0xaf,0xff,0x72,0x0,0xe2,0x6,0xf3,0x4, +0x55,0xfe,0xe0,0xff,0x4c,0x4,0x21,0x1,0x4e,0xff,0x5a,0x5, +0x4a,0x2,0xb,0xf7,0xb8,0xf9,0xc6,0x1,0x60,0xfd,0xb1,0xf6, +0xaf,0xf7,0xf,0xfb,0xbb,0xfa,0x74,0xf8,0xef,0xf7,0x8e,0xf6, +0xa1,0xf8,0xdc,0x0,0x52,0x1,0x72,0xfa,0x1d,0xf8,0x1f,0xf6, +0xd2,0xf3,0x84,0xf4,0xda,0xf3,0xd6,0xf3,0xe8,0xf4,0x1,0xf5, +0x29,0xf9,0x2d,0xfd,0xaa,0xfa,0xb3,0xfa,0x6d,0x1,0x24,0x2, +0x40,0xf8,0xc1,0xf3,0x9e,0xf9,0xd9,0xf8,0x3b,0xf2,0x60,0xf4, +0xa2,0xf7,0x43,0xf5,0x5d,0xf8,0x8a,0xfe,0xce,0xfc,0xfc,0xf9, +0x8d,0xfd,0x46,0x0,0xb4,0xfe,0x5e,0xfd,0x9a,0xfc,0x72,0xf9, +0x16,0xf4,0x72,0xf3,0xc4,0xf8,0x1c,0xf7,0xe7,0xf0,0xe6,0xf6, +0xf3,0xff,0xff,0xfc,0xa1,0xf9,0x37,0x1,0x9b,0x9,0x2,0x3, +0x1e,0xf4,0xa,0xf4,0x67,0xfc,0x95,0xf7,0x50,0xf1,0xd1,0xf6, +0x15,0xf9,0x41,0xf5,0x45,0xf9,0xe4,0xfe,0x5d,0xfa,0xd3,0xf6, +0xe9,0xfb,0xfc,0xfd,0xa3,0xf8,0x1c,0xf1,0xac,0xec,0x69,0xf0, +0xee,0xf4,0xdd,0xf1,0xf3,0xee,0xcf,0xf0,0x15,0xf3,0xf,0xf2, +0x9b,0xee,0xdc,0xf1,0x54,0xf8,0xc7,0xf3,0x4a,0xed,0xb,0xf0, +0x60,0xf2,0xeb,0xf0,0x36,0xef,0x4e,0xec,0xbd,0xe9,0x19,0xe7, +0xe6,0xe3,0x19,0xe5,0xa8,0xec,0x86,0xf3,0xf6,0xf0,0x61,0xed, +0xd6,0xf3,0xd9,0xf4,0x88,0xe9,0x80,0xe4,0x62,0xe6,0x6a,0xe6, +0x8b,0xe5,0x6d,0xe1,0x15,0xe4,0xbf,0xf0,0xed,0xef,0x40,0xe7, +0xc4,0xec,0x8c,0xf0,0x7c,0xe9,0xbb,0xe6,0xe4,0xe8,0x51,0xee, +0x25,0xf5,0x48,0xf3,0x71,0xed,0xbd,0xe9,0x68,0xe4,0xbb,0xe5, +0x6b,0xef,0x1c,0xf2,0x9b,0xef,0x26,0xf4,0x5d,0xf9,0x51,0xf6, +0xb0,0xf3,0xbb,0xfa,0x9c,0x0,0x51,0xf7,0x35,0xeb,0xae,0xef, +0xf3,0xf9,0x70,0xf7,0x8b,0xf1,0x70,0xf6,0x55,0xfd,0x92,0xfa, +0xf7,0xf6,0x7b,0xfe,0x8d,0x6,0x43,0x3,0x4c,0x0,0x71,0x3, +0xe0,0x0,0x5,0xfa,0x8a,0xf8,0xe3,0xfa,0x61,0xfc,0x62,0xfc, +0xa6,0x0,0xb8,0x9,0x6,0xa,0x94,0x3,0x34,0x7,0x51,0xc, +0xa4,0x6,0x70,0x3,0xec,0x4,0xe8,0xff,0xf2,0xfd,0xc9,0x4, +0xf8,0x4,0x9f,0xfe,0x10,0xff,0x3a,0x1,0xd4,0xfd,0xd4,0xfe, +0x37,0x6,0xe2,0x5,0xf5,0x1,0x85,0x7,0x5e,0x8,0x6c,0xfe, +0x1c,0xfb,0x9b,0xfb,0x51,0xfd,0x57,0x2,0x74,0xf6,0x80,0xeb, +0xc4,0xfe,0xa2,0x5,0xb2,0xf3,0x43,0xfa,0x5b,0x9,0xbf,0xfd, +0x2d,0xf4,0x13,0xfa,0x32,0xf6,0x1a,0xe9,0xab,0xe8,0x79,0xf0, +0x81,0xec,0x9,0xe6,0xda,0xea,0x4b,0xed,0x47,0xeb,0xd0,0xee, +0xad,0xef,0xe0,0xe9,0x65,0xe5,0xdf,0xe3,0x9b,0xe3,0x58,0xe4, +0xb3,0xe4,0xc8,0xe1,0x2f,0xe0,0xee,0xe6,0x78,0xea,0xad,0xe3, +0x58,0xe2,0x3f,0xe7,0x4e,0xe7,0x18,0xe9,0xc1,0xeb,0xbb,0xe6, +0x25,0xe7,0xda,0xef,0x55,0xec,0xde,0xe4,0x26,0xeb,0xb4,0xe9, +0xef,0xdb,0xb4,0xde,0x71,0xe8,0xf8,0xe3,0xff,0xe2,0x77,0xeb, +0x76,0xed,0x83,0xeb,0xaa,0xea,0xad,0xe6,0x4,0xe5,0xab,0xe8, +0x7b,0xe5,0xe0,0xdb,0x29,0xdd,0x44,0xe5,0x2,0xe4,0xc3,0xe1, +0x10,0xe7,0xd7,0xe8,0xb7,0xe5,0x83,0xe6,0x4c,0xe8,0x7a,0xe5, +0xfe,0xe2,0x18,0xe5,0xb6,0xe7,0xee,0xe8,0x2a,0xe9,0xfe,0xe7, +0xa1,0xea,0xfb,0xef,0xff,0xed,0x94,0xea,0x13,0xf1,0x94,0xf7, +0x81,0xf4,0xcc,0xf3,0xa3,0xfb,0xbd,0xfd,0x54,0xf8,0x7a,0xfa, +0xfb,0xff,0x13,0xfd,0x21,0xfb,0xa1,0xff,0x26,0x0,0xfd,0xfd, +0x83,0x2,0x54,0x8,0xda,0x8,0xb9,0x9,0x7a,0xa,0x3a,0x7, +0x8f,0x7,0x8c,0xb,0xb,0xb,0x2a,0xa,0x18,0xc,0x38,0xd, +0x1b,0xf,0x5a,0x11,0x52,0x11,0x40,0x11,0x86,0x12,0x26,0x13, +0x7d,0x12,0x81,0x13,0x91,0x15,0x2f,0x15,0xd9,0x15,0xf7,0x17, +0x94,0x17,0xc9,0x17,0xdf,0x16,0x9e,0x12,0x76,0x12,0xb8,0x15, +0x8f,0x18,0x6d,0x1b,0xcf,0x19,0x94,0x17,0x7e,0x1a,0xb5,0x1a, +0xc6,0x17,0x3f,0x17,0x19,0x16,0x35,0x14,0xc4,0x12,0xab,0x11, +0x21,0x14,0x79,0x16,0x79,0x13,0xd1,0x10,0x6e,0x13,0xf9,0x16, +0xbc,0x15,0x26,0x11,0x42,0xf,0xb5,0xf,0x1a,0xe,0x3f,0xc, +0xab,0xd,0x58,0x10,0xe,0xf,0x75,0x9,0x48,0x8,0x23,0xe, +0x7b,0xf,0xce,0xa,0x1c,0xb,0xaa,0xd,0x76,0xb,0x3,0xa, +0xb7,0xb,0xd7,0xc,0x6d,0xc,0xc0,0x9,0xe3,0x6,0x7d,0x7, +0x89,0x9,0x5e,0x9,0xdb,0x8,0x8f,0xc,0xfe,0xf,0xdd,0xc, +0x6a,0xb,0xe8,0xd,0x29,0xa,0x4f,0x7,0xd8,0xc,0xed,0xc, +0x70,0x6,0x48,0x7,0x4d,0xc,0x1d,0xd,0x7f,0xd,0xd4,0xe, +0x1f,0xe,0xf7,0xd,0x80,0xd,0xb8,0x8,0xb2,0x6,0xed,0xb, +0x54,0xf,0x5e,0xe,0x1,0xe,0x3,0xd,0x53,0xb,0x55,0xc, +0xff,0xd,0x14,0xd,0x42,0xc,0xb4,0xd,0x9,0xf,0xfd,0x10, +0xbd,0x13,0xe,0x12,0x8a,0xe,0x1,0x10,0x38,0x12,0xab,0xf, +0x2f,0xb,0x19,0xa,0x1b,0xd,0x56,0xf,0x54,0x10,0xd3,0x12, +0x2b,0x14,0x1b,0x14,0xa5,0x13,0xd3,0x10,0x30,0x10,0x9f,0x13, +0x90,0x13,0x4b,0x10,0x2,0x10,0xcc,0x10,0xb3,0xf,0x6b,0xf, +0xee,0x10,0x77,0x11,0xca,0x10,0x61,0x10,0xac,0x10,0xd7,0x11, +0xed,0x10,0x1f,0xe,0xa6,0xf,0x4e,0x12,0xe1,0xf,0x85,0xd, +0xdd,0xc,0x63,0xb,0x83,0xc,0x7c,0xd,0xfb,0x9,0x48,0x7, +0xc8,0x6,0xad,0x6,0x33,0xa,0xb,0xd,0x85,0x8,0xb2,0x5, +0x24,0xb,0x2d,0xc,0xe4,0x4,0xd,0x3,0x56,0x6,0x94,0x4, +0xb9,0x3,0x6c,0x7,0xfe,0x4,0xbf,0xfe,0xf8,0x1,0x26,0xa, +0x6a,0xa,0xbf,0x5,0x45,0x4,0xc7,0x4,0x12,0x6,0x64,0x7, +0x91,0x3,0xaa,0xff,0x73,0x5,0x49,0xa,0xec,0x2,0xdb,0xfd, +0x34,0x4,0xc,0x7,0x9e,0x2,0x4c,0x3,0xac,0x6,0x22,0x5, +0xa0,0x2,0xca,0xfe,0x79,0xfc,0x4a,0x4,0x2,0x7,0x45,0xfc, +0xb,0xfe,0xed,0x8,0xb7,0x0,0xff,0xf5,0x93,0xfd,0x5a,0x4, +0xc8,0xfe,0x2f,0xf6,0x6c,0xf3,0x15,0xfb,0xc1,0x1,0x5,0xfa, +0xf2,0xf1,0xdb,0xf9,0xe,0x2,0x35,0xf9,0xec,0xef,0xa6,0xf6, +0xe6,0xfe,0x5b,0xfd,0xa4,0xf8,0xcd,0xf3,0x76,0xf3,0x38,0xfb, +0xf3,0xfc,0x5e,0xf2,0x3a,0xef,0xd3,0xf9,0x6c,0xfc,0xb1,0xf3, +0x25,0xf4,0xc4,0xfa,0x1c,0xf6,0x80,0xee,0x3f,0xf2,0x81,0xf9, +0xc,0xf7,0xb6,0xec,0x12,0xe9,0x79,0xf2,0x6e,0xf9,0x1a,0xf2, +0xf5,0xeb,0x36,0xf2,0xa4,0xf4,0x75,0xed,0xdb,0xeb,0x82,0xef, +0x66,0xef,0x24,0xef,0x19,0xf0,0xec,0xee,0x2f,0xee,0xa5,0xf1, +0x5f,0xf4,0xc4,0xec,0x48,0xe5,0x93,0xef,0x56,0xf8,0x5a,0xea, +0x84,0xe1,0x61,0xf2,0x3,0xfc,0xc2,0xeb,0x24,0xe4,0x30,0xf3, +0x18,0xf7,0xa5,0xe9,0xa4,0xe7,0x74,0xf1,0x1,0xf4,0xd,0xef, +0xc0,0xec,0xeb,0xee,0xf7,0xee,0x1d,0xed,0xea,0xed,0x48,0xed, +0x1f,0xed,0x4e,0xf2,0x4c,0xf3,0x24,0xee,0xe1,0xee,0x7f,0xf5, +0xdc,0xf6,0x28,0xef,0xb4,0xe9,0x65,0xf0,0xe2,0xf5,0x58,0xee, +0x52,0xe9,0x94,0xf0,0x64,0xf5,0xa2,0xf2,0xc5,0xf3,0x22,0xf7, +0x62,0xf4,0xca,0xf2,0x32,0xf6,0x51,0xf5,0x31,0xf3,0x91,0xf6, +0x3,0xf5,0x87,0xee,0x75,0xf2,0xa6,0xf8,0x48,0xf2,0xd0,0xec, +0xe4,0xf1,0xd6,0xf5,0x2d,0xf5,0x84,0xf4,0xb0,0xf3,0x26,0xf4, +0x51,0xf8,0xef,0xfb,0x32,0xf7,0x6d,0xf0,0x3c,0xf5,0x2d,0xfb, +0x88,0xf4,0xa6,0xed,0x1,0xf0,0xfd,0xf5,0xe2,0xf7,0xec,0xf2, +0xa3,0xf5,0x9b,0x2,0xe1,0x0,0x4c,0xf5,0xfa,0xfa,0x96,0x4, +0x15,0xfb,0xa3,0xee,0x8,0xf3,0x26,0xfa,0x19,0xf3,0x7c,0xeb, +0x60,0xf1,0x6d,0xf8,0xd9,0xf5,0x31,0xf2,0xd4,0xf5,0x95,0xfa, +0x2c,0xf8,0x3,0xf3,0x5f,0xf1,0xf6,0xf2,0xac,0xf6,0x96,0xf6, +0x53,0xf0,0x4d,0xee,0xc4,0xf2,0xe0,0xf3,0x51,0xf0,0x6d,0xee, +0xbd,0xef,0x2b,0xf0,0x60,0xef,0xf,0xf3,0xac,0xf8,0xd2,0xf6, +0xe6,0xf0,0x28,0xf1,0xa6,0xf3,0xe4,0xee,0x3a,0xe8,0x9a,0xe7, +0xa1,0xe7,0x55,0xe7,0x37,0xec,0x3e,0xed,0xe1,0xe5,0x71,0xe6, +0x21,0xef,0x5,0xec,0xdd,0xe0,0x4b,0xe0,0x46,0xe5,0x99,0xe1, +0xc,0xda,0x1a,0xda,0x51,0xde,0xcb,0xdb,0xf7,0xd5,0xbe,0xd7, +0xf2,0xdb,0x89,0xd8,0x6b,0xd4,0x58,0xd8,0x18,0xdd,0x80,0xda, +0x2a,0xd7,0x69,0xda,0x30,0xdd,0x98,0xd9,0xb8,0xd6,0x2b,0xd8, +0xaf,0xd9,0x1d,0xdb,0xaa,0xdc,0xa9,0xdc,0xf2,0xdf,0x68,0xe8, +0x5c,0xec,0xd7,0xe9,0x50,0xeb,0xe9,0xf0,0xc1,0xf1,0x68,0xef, +0x48,0xf0,0x9,0xf3,0xcd,0xf4,0xec,0xf6,0xa0,0xf9,0x43,0xfc, +0xef,0xff,0x99,0x3,0x16,0x7,0x3d,0xb,0x36,0xc,0xb9,0xc, +0x2b,0x13,0x69,0x16,0x30,0x11,0x6,0x10,0x43,0x15,0x82,0x17, +0x47,0x17,0xf0,0x19,0xe5,0x1d,0x8f,0x1f,0x6a,0x21,0x70,0x25, +0xa8,0x28,0xcc,0x2a,0xcc,0x2a,0x35,0x29,0xb4,0x2c,0xb4,0x2f, +0xcc,0x2a,0x19,0x29,0xc3,0x2c,0xbd,0x2b,0x81,0x2a,0x8e,0x2d, +0x19,0x2e,0xe2,0x2b,0xf0,0x2c,0xb1,0x2f,0xeb,0x2d,0x65,0x2a, +0x71,0x2b,0xf8,0x2b,0x59,0x26,0x42,0x21,0x6a,0x22,0x35,0x23, +0x68,0x1e,0x12,0x1b,0x1f,0x1b,0x2e,0x18,0x21,0x16,0x49,0x17, +0xa1,0x15,0xfd,0x14,0xcc,0x16,0xca,0x12,0x23,0xc,0x29,0xa, +0xc9,0x8,0x4c,0x4,0x9,0x1,0xb6,0x0,0x61,0xff,0xad,0xfe, +0xc1,0x0,0x23,0x0,0x64,0xfe,0x4,0x0,0x7d,0xff,0x90,0xfc, +0x89,0xfb,0x99,0xf9,0xb,0xf8,0xbd,0xf9,0x94,0xf9,0x52,0xf7, +0x7d,0xf9,0x3e,0xfc,0xcc,0xf7,0x41,0xf5,0x1f,0xfc,0xb1,0xfe, +0x14,0xfa,0x48,0xfc,0x25,0x1,0x6a,0xff,0x5d,0xff,0xc7,0x3, +0x40,0x4,0xda,0x1,0x19,0x3,0xa2,0x5,0x29,0x5,0xc0,0x4, +0x9d,0x7,0x73,0xb,0x6f,0xd,0xe0,0xe,0x7f,0x12,0x2b,0x15, +0xc9,0x13,0x14,0x14,0xb9,0x17,0xcf,0x17,0x25,0x15,0x3b,0x16, +0x2b,0x19,0x71,0x19,0x7,0x1b,0x72,0x20,0x2b,0x22,0x9d,0x1e, +0x1b,0x1e,0xed,0x21,0xc0,0x24,0x70,0x24,0x5c,0x23,0x41,0x24, +0x11,0x24,0x24,0x21,0x90,0x20,0x26,0x23,0x9e,0x24,0x38,0x23, +0xd7,0x21,0x45,0x23,0x7,0x23,0x62,0x21,0xb3,0x25,0xe2,0x28, +0xb6,0x23,0x7f,0x21,0x2e,0x24,0xc8,0x1f,0xeb,0x17,0xa1,0x18, +0x95,0x1c,0x8a,0x19,0x3b,0x16,0xa0,0x18,0xd,0x19,0xc0,0x16, +0x1f,0x16,0x6c,0x15,0x4f,0x16,0xec,0x16,0x6b,0x10,0x3a,0xa, +0xfa,0xb,0x65,0xc,0xaf,0x7,0x17,0x6,0xf5,0x7,0xdc,0x6, +0x35,0x2,0x8a,0xff,0x19,0x4,0x5,0xb,0x88,0x9,0x96,0x2, +0x24,0x1,0xd9,0x2,0x33,0xff,0x9b,0xf9,0xae,0xfa,0xc,0xfd, +0xfd,0xf7,0x8b,0xf5,0x71,0xfb,0x84,0xfd,0xaa,0xfc,0xa5,0xff, +0x98,0x0,0x86,0x0,0x10,0x1,0x7a,0xfb,0x40,0xf5,0xfe,0xf6, +0x7d,0xfb,0x54,0xfd,0xb6,0xfe,0x97,0xff,0xfc,0xfc,0xe5,0xfc, +0x96,0x3,0xef,0x4,0x0,0xff,0xc3,0xff,0x98,0x4,0xcc,0x1, +0x46,0xfb,0x4a,0xfc,0xae,0x4,0xf7,0x7,0x82,0x3,0xd5,0x0, +0xb9,0x0,0xba,0x0,0xe1,0x1,0x15,0x2,0x98,0x2,0xa9,0x6, +0x94,0xb,0x23,0xb,0xf3,0x4,0x98,0x4,0x66,0xa,0xa7,0x5, +0xb5,0xfc,0xf0,0x0,0x44,0x5,0x2f,0xfe,0xc7,0xfd,0x59,0xb, +0xb0,0x12,0x28,0xb,0xc,0x5,0xe6,0x6,0xbd,0x4,0xa5,0xfd, +0x94,0xfc,0xbc,0xff,0xc4,0xfd,0xa0,0xfb,0x9a,0x0,0x56,0x2, +0x74,0xfd,0xff,0x0,0x12,0x7,0x9c,0xfc,0x75,0xf1,0xcd,0xf9, +0xc7,0xff,0xc5,0xf3,0xcc,0xee,0xda,0xf9,0x53,0xfe,0x28,0xf8, +0x2d,0xf3,0x38,0xef,0x3e,0xec,0xbd,0xed,0x28,0xf0,0x63,0xf0, +0xf0,0xef,0x1,0xef,0xcd,0xed,0x15,0xef,0x8a,0xf1,0xe,0xef, +0x27,0xe8,0xa3,0xe4,0xf8,0xe7,0xd6,0xe9,0xe,0xe2,0x65,0xde, +0x2d,0xeb,0xfe,0xf4,0x4f,0xef,0xfa,0xe8,0x4b,0xe9,0x1f,0xeb, +0xd7,0xe8,0x9a,0xe3,0x32,0xe6,0xb0,0xec,0x86,0xe9,0x69,0xe3, +0x1f,0xe6,0x7,0xee,0x30,0xee,0x74,0xe5,0x7c,0xe7,0x31,0xf4, +0xdc,0xf2,0x73,0xe8,0xa9,0xea,0xa1,0xf2,0xb8,0xf0,0xef,0xe9, +0x41,0xea,0x36,0xec,0x7a,0xe7,0x3d,0xe6,0xf4,0xeb,0xa0,0xee, +0x49,0xf0,0x5b,0xf4,0xb4,0xf4,0xe5,0xf0,0x1d,0xf1,0x61,0xf8, +0x64,0xf8,0xce,0xea,0x56,0xe7,0xa8,0xf3,0x76,0xf3,0x8e,0xe6, +0xa9,0xe8,0xf8,0xf6,0x9e,0xf9,0x35,0xf2,0x37,0xf3,0xa8,0xfa, +0xc7,0xf7,0xe2,0xed,0xff,0xee,0x78,0xf7,0xd1,0xf5,0x48,0xee, +0xf4,0xee,0x9a,0xf4,0x9,0xf6,0xe9,0xf1,0xa4,0xed,0xbf,0xf0, +0x44,0xf7,0x45,0xf4,0x7a,0xea,0x60,0xec,0x91,0xfa,0x91,0xfd, +0x23,0xf3,0xd4,0xf2,0xcb,0xf9,0x17,0xf5,0x62,0xed,0xb2,0xef, +0xea,0xf3,0x4c,0xf2,0xe1,0xf1,0x1c,0xf8,0x7e,0xfb,0x66,0xf8, +0xcb,0xf7,0x5d,0xf7,0x22,0xf4,0x40,0xf4,0xb4,0xf3,0xe2,0xef, +0x5a,0xef,0x5d,0xf2,0x5c,0xf7,0xcf,0xf9,0x9b,0xf5,0xa0,0xf4, +0x8e,0xf8,0xd9,0xf5,0xbc,0xf1,0xb4,0xf6,0x45,0xfb,0xa2,0xf5, +0xb,0xf2,0x4,0xfb,0x7b,0x0,0x6e,0xf8,0xb3,0xf3,0xbf,0xf7, +0x8b,0xf8,0x36,0xf5,0x57,0xf2,0x55,0xf1,0xa3,0xf4,0xb1,0xf9, +0xb7,0xfa,0xc8,0xf7,0x2c,0xf6,0x69,0xf7,0xcc,0xf4,0x6c,0xee, +0x57,0xee,0x70,0xf0,0x29,0xea,0x77,0xe5,0x6b,0xeb,0x6d,0xef, +0xc9,0xea,0x48,0xe7,0x6f,0xe9,0x15,0xec,0x44,0xe9,0xe3,0xe1, +0xd9,0xde,0xfa,0xe0,0x41,0xe0,0x98,0xde,0x8,0xe0,0xcf,0xdf, +0xa5,0xdd,0x1e,0xdd,0xc3,0xdc,0xfb,0xdb,0xab,0xdb,0x45,0xdb, +0xd9,0xda,0x72,0xda,0x11,0xdb,0x7b,0xdd,0xc7,0xde,0x2,0xde, +0x63,0xde,0x56,0xe0,0xef,0xe0,0x52,0xdf,0x75,0xde,0x30,0xe1, +0x44,0xe6,0x33,0xea,0x13,0xeb,0x98,0xea,0x7a,0xeb,0x2c,0xee, +0xf0,0xf2,0xa8,0xf6,0x6a,0xf4,0xb0,0xf3,0xb7,0xfb,0x27,0x0, +0xb3,0xfb,0xac,0xfd,0xa5,0x7,0xb4,0xa,0x56,0x8,0xdd,0xc, +0xc,0x14,0xef,0x13,0xb5,0x11,0x1a,0x14,0xed,0x18,0x3c,0x1e, +0xe2,0x1f,0x1c,0x1d,0x71,0x20,0xf8,0x28,0xe1,0x29,0xfb,0x26, +0x47,0x2a,0xbc,0x2f,0xc6,0x30,0xdc,0x2d,0x30,0x2d,0xc5,0x32, +0xe,0x37,0x34,0x34,0xd5,0x31,0xf2,0x33,0x1f,0x34,0xa4,0x31, +0x26,0x32,0x72,0x34,0xef,0x33,0x9a,0x32,0x25,0x33,0x35,0x33, +0x35,0x32,0x8a,0x31,0x3a,0x2f,0x6e,0x2b,0x0,0x2a,0x58,0x29, +0x47,0x25,0xaa,0x20,0x14,0x20,0x62,0x21,0xa2,0x1f,0x36,0x1b, +0xe0,0x19,0xc8,0x1b,0x8,0x19,0xce,0x11,0x33,0x10,0x54,0x13, +0xd7,0xf,0xa9,0x7,0x66,0x6,0x4f,0x9,0x69,0x6,0xd4,0x0, +0x38,0xff,0x7d,0xff,0xdd,0xfe,0xb9,0xfc,0x47,0xf9,0x5f,0xf9, +0x9e,0xfd,0xc,0xfc,0x8b,0xf4,0xff,0xf4,0xda,0xfa,0x72,0xf7, +0x16,0xf1,0x70,0xf3,0x59,0xf7,0xd7,0xf5,0xf1,0xf1,0x16,0xf1, +0x25,0xf7,0x91,0xfb,0x20,0xf6,0x3b,0xf4,0xfb,0xfd,0xf8,0x1, +0xdb,0xf8,0xe5,0xf5,0x56,0x0,0x89,0x4,0xc9,0xfc,0x77,0xfb, +0x52,0x3,0xd7,0x6,0x59,0x5,0xbd,0x5,0x44,0x9,0xa9,0xd, +0x69,0xf,0x8c,0xd,0x63,0xc,0x62,0x10,0x28,0x15,0x9b,0x13, +0x44,0x12,0x56,0x18,0x44,0x1c,0x33,0x18,0x5b,0x15,0xc0,0x19, +0x94,0x1f,0xb7,0x1e,0x3a,0x1b,0x9b,0x1e,0xf5,0x23,0xc1,0x23, +0x74,0x22,0x50,0x23,0xac,0x24,0xcf,0x24,0xd0,0x21,0x56,0x1f, +0xea,0x21,0x11,0x25,0xb2,0x23,0x4e,0x21,0x92,0x23,0x7b,0x27, +0x6,0x25,0xb6,0x1e,0x45,0x1e,0xb4,0x22,0xd0,0x22,0xc9,0x1d, +0x65,0x1b,0xaf,0x1c,0xf1,0x1a,0x71,0x17,0x68,0x18,0x4,0x1a, +0x9e,0x16,0x1a,0x12,0x1b,0x11,0x9f,0x12,0xd5,0x13,0x59,0x12, +0x23,0xf,0xd9,0xd,0xc,0xd,0xec,0x8,0x11,0x5,0xc3,0x5, +0x6f,0x6,0xb5,0x3,0x1f,0x3,0x98,0x6,0xf1,0x6,0xeb,0x2, +0x88,0x1,0x1a,0x2,0x7f,0xff,0x82,0xfc,0xd4,0xfb,0xb0,0xfa, +0xfd,0xf8,0x21,0xfa,0x64,0xfe,0xee,0xff,0xb3,0xfc,0x9f,0xfc, +0xbe,0xfe,0x62,0xf8,0x1b,0xf1,0x2a,0xf7,0xb0,0xfe,0xa9,0xf8, +0xd,0xf4,0x35,0xfe,0xf4,0x4,0xf5,0xfd,0x60,0xfb,0x4c,0x1, +0x5c,0x0,0x71,0xfa,0x18,0xfb,0x57,0xfe,0x25,0xfd,0x91,0xfd, +0x3a,0x3,0x91,0x4,0x3a,0x1,0x7,0x4,0x12,0x8,0x46,0x4, +0xd2,0x1,0x25,0x7,0xe3,0x8,0x78,0x2,0x5a,0x2,0x5c,0xa, +0x4,0x8,0x66,0x0,0x26,0x6,0xfd,0xc,0x95,0x9,0xc0,0x7, +0xa6,0x7,0xc6,0x5,0x26,0xa,0x43,0x11,0x13,0x11,0x2c,0xe, +0xbc,0xf,0xf,0xe,0x49,0x4,0x7a,0x1,0x97,0x8,0x96,0x6, +0xa0,0xfd,0xd8,0x0,0xea,0xc,0x76,0xf,0xb8,0x5,0x7b,0x2, +0x20,0xc,0xf3,0xc,0xef,0x1,0x23,0xff,0x8b,0xfe,0xd0,0xf4, +0x9c,0xf3,0x2e,0xff,0x9f,0xff,0xdf,0xf5,0x41,0xf9,0x2b,0x1, +0x1f,0xfb,0x9c,0xf7,0x24,0xff,0xdd,0xfa,0x7c,0xeb,0xfd,0xea, +0x1,0xf7,0xa9,0xf6,0xe3,0xea,0x5e,0xeb,0x33,0xf6,0xf8,0xf4, +0x5e,0xec,0x44,0xec,0x15,0xed,0x84,0xe8,0x3,0xe7,0xed,0xea, +0x8b,0xef,0x5e,0xf0,0x31,0xed,0xe8,0xec,0xac,0xf0,0xd,0xf1, +0x3c,0xec,0xf2,0xe5,0x8f,0xe2,0x6,0xe5,0x76,0xe9,0x76,0xec, +0xab,0xf0,0x4c,0xf5,0xaf,0xf6,0x40,0xf4,0xcd,0xef,0x41,0xed, +0x29,0xec,0x62,0xe7,0x3b,0xe3,0xd,0xe9,0x4d,0xf3,0x5a,0xf4, +0x3e,0xef,0xbb,0xf1,0x3e,0xf9,0xc0,0xf8,0xf7,0xef,0x65,0xe9, +0xfb,0xeb,0x6b,0xf0,0xb6,0xec,0xdc,0xeb,0x35,0xf6,0xa,0xf9, +0x0,0xef,0x7d,0xec,0x8b,0xf3,0xb0,0xf3,0x47,0xeb,0xb7,0xe6, +0x67,0xed,0x3d,0xf8,0xa3,0xf7,0x81,0xec,0xdf,0xec,0x24,0xf9, +0x57,0xf6,0x25,0xe8,0x15,0xe9,0xf2,0xef,0xd6,0xe9,0xb0,0xe3, +0xd8,0xea,0x59,0xf5,0xc7,0xf4,0xc0,0xea,0xab,0xe7,0xb8,0xef, +0x16,0xf3,0xf8,0xea,0xd1,0xe3,0x9e,0xe6,0x8,0xec,0x70,0xeb, +0x3,0xe9,0x57,0xeb,0x74,0xef,0xab,0xee,0x34,0xea,0x80,0xeb, +0xb2,0xf2,0x54,0xf2,0xe,0xe9,0xa9,0xe6,0x90,0xef,0xd8,0xf5, +0x9a,0xf0,0xf4,0xe7,0xf8,0xe7,0xa9,0xef,0xd8,0xf2,0xcf,0xed, +0x61,0xec,0xfc,0xf3,0xe7,0xf7,0xd5,0xf2,0xdf,0xf2,0x51,0xfb, +0xc4,0xfb,0x10,0xf2,0xf0,0xee,0xd1,0xf4,0xc4,0xf5,0x67,0xee, +0x9d,0xea,0xe9,0xf1,0x9a,0xfa,0x24,0xfb,0x6c,0xfa,0xe5,0xfb, +0x73,0xf9,0xb3,0xf7,0xba,0xf9,0x5c,0xf5,0xbb,0xec,0xc2,0xec, +0x90,0xf1,0x1,0xf1,0xdc,0xef,0x2a,0xf3,0xfc,0xf3,0xeb,0xf0, +0x3a,0xf1,0x8a,0xf2,0xb5,0xed,0x67,0xe7,0xeb,0xe7,0x85,0xeb, +0x2a,0xea,0x2b,0xe8,0x19,0xeb,0x19,0xea,0xf8,0xe1,0xd4,0xde, +0x3d,0xe3,0x8e,0xe5,0xef,0xe1,0x6a,0xdd,0xb3,0xe0,0x88,0xea, +0xe9,0xeb,0xd2,0xe2,0x5f,0xe0,0x2a,0xe7,0xe9,0xe6,0x4d,0xde, +0x73,0xdc,0x5e,0xe2,0x11,0xe4,0x66,0xe1,0xc9,0xe3,0x1e,0xec, +0xfa,0xf1,0x0,0xef,0x9,0xe9,0x7e,0xed,0x16,0xf9,0xeb,0xf7, +0x7e,0xeb,0x96,0xea,0x6c,0xf5,0x25,0xf9,0x6f,0xf5,0xad,0xf7, +0x6d,0x1,0xe8,0x7,0xfd,0x4,0x72,0x1,0x6,0x7,0x95,0xe, +0xbb,0xc,0x91,0x7,0xc0,0xb,0xb1,0x13,0x61,0x11,0x95,0x9, +0xe9,0xb,0xd,0x18,0x8f,0x1e,0x27,0x19,0xfe,0x15,0x55,0x1f, +0x11,0x27,0xc4,0x22,0x92,0x20,0x25,0x28,0xb4,0x2b,0x8,0x25, +0x44,0x1f,0x80,0x21,0x1f,0x26,0xec,0x25,0x94,0x22,0x55,0x23, +0xa2,0x27,0xae,0x28,0xeb,0x27,0xe1,0x29,0xf9,0x2a,0xe7,0x28, +0x88,0x27,0x98,0x26,0x62,0x22,0x16,0x1d,0x79,0x1b,0x38,0x1b, +0xb0,0x18,0x20,0x18,0xa2,0x1a,0x6e,0x19,0x54,0x15,0xed,0x14, +0x81,0x17,0x7d,0x19,0x67,0x18,0xff,0x12,0xfd,0xe,0x23,0x10, +0x99,0xe,0xea,0x6,0x94,0x1,0x3c,0x2,0xfa,0x3,0x97,0x3, +0x5b,0x1,0x7e,0x0,0xe,0x4,0x68,0x8,0x6d,0x8,0x8e,0x5, +0x4b,0x3,0xe1,0x1,0x40,0xff,0xac,0xfa,0x3d,0xf8,0x92,0xfa, +0xab,0xfb,0x40,0xf8,0x74,0xf8,0x6d,0xff,0x37,0x2,0x0,0xfc, +0x11,0xf9,0x29,0x1,0x31,0x8,0x6a,0x3,0x83,0xfc,0xed,0xfd, +0x2d,0x1,0x41,0xff,0x56,0xfb,0x11,0xfa,0xd7,0xfd,0xd,0x3, +0xd,0x3,0xe9,0x2,0xad,0x9,0xc4,0xe,0xe0,0xb,0x48,0x9, +0x55,0xa,0xde,0x9,0x69,0x8,0xa9,0x9,0xa2,0xc,0x49,0xe, +0x69,0xe,0xc2,0xf,0x38,0x12,0xeb,0x11,0xf4,0xf,0x59,0x11, +0xbd,0x14,0x7,0x17,0xcf,0x1a,0x48,0x1e,0x43,0x1b,0x48,0x17, +0xc,0x1a,0x10,0x1c,0xb,0x18,0x77,0x14,0x3,0x12,0x47,0x10, +0x3f,0x15,0xf4,0x1c,0x54,0x1f,0xf5,0x20,0xf8,0x24,0x11,0x25, +0xbb,0x1f,0xc8,0x18,0x37,0x13,0x37,0x12,0x19,0x14,0x25,0x14, +0x3b,0x15,0xcc,0x18,0xc9,0x18,0xc,0x18,0x5,0x1c,0x69,0x1c, +0xe4,0x15,0x15,0x13,0x84,0x15,0xcd,0x13,0xc0,0xe,0xc2,0xf, +0xb4,0x13,0x2,0x11,0xd2,0xd,0xb6,0x10,0x5e,0x10,0xfa,0x9, +0x59,0x6,0xa5,0x8,0xa1,0xc,0x33,0xb,0x12,0x6,0xf2,0x7, +0x6,0xd,0x1c,0xb,0x38,0x9,0xae,0xc,0xec,0xa,0x98,0x0, +0x18,0xf9,0x8,0xfa,0x5,0xfd,0x2f,0xfe,0xdf,0xff,0x7f,0x3, +0x3c,0x8,0x30,0xa,0xbc,0x6,0xd6,0x2,0x38,0x1,0x7b,0xfd, +0xb0,0xf8,0x26,0xf9,0xab,0xfc,0x1a,0xfc,0x25,0xfb,0x32,0x1, +0x1a,0x8,0xac,0x6,0x43,0xff,0xe8,0xf9,0x10,0xfc,0x2a,0x0, +0x13,0xfd,0xd5,0xfa,0xbb,0x1,0x27,0x6,0xe7,0x2,0x58,0x0, +0xe5,0xfd,0x62,0xfa,0x58,0xfb,0x92,0xfd,0xdc,0xfc,0x59,0xfe, +0x6a,0x1,0x44,0x1,0x2c,0x3,0x73,0x9,0xa6,0x9,0x2d,0x0, +0xe9,0xf8,0xa4,0xfb,0x14,0x0,0xbb,0xfd,0x15,0xfb,0x7a,0xfe, +0xe1,0xff,0x12,0xfd,0x9d,0x0,0x2b,0x6,0x44,0x1,0xf0,0xfc, +0x1e,0x5,0x2a,0xa,0xa4,0x0,0x69,0xf7,0x26,0xfa,0x48,0xfd, +0x4f,0xf6,0x84,0xf3,0x29,0xfe,0xe3,0x2,0x8b,0xfc,0x6d,0xfd, +0xfd,0x2,0xb2,0x2,0x4f,0x2,0x16,0x1,0x72,0xfb,0xb4,0xf8, +0x2f,0xfa,0x77,0xfa,0x7f,0xf8,0xe3,0xf7,0x6a,0xfd,0xa1,0x2, +0x72,0xfd,0xd,0xf8,0xa2,0xfd,0x56,0x1,0x76,0xfa,0x33,0xf6, +0x4,0xfa,0x6c,0xfa,0xcc,0xf3,0x95,0xef,0x1d,0xf3,0x62,0xf8, +0x15,0xf8,0xbf,0xf4,0x7c,0xf4,0xe4,0xf5,0xc3,0xf4,0x0,0xf1, +0xdf,0xed,0xba,0xee,0x42,0xf1,0x12,0xf0,0xdd,0xeb,0xa0,0xe9, +0x62,0xeb,0xbf,0xed,0x90,0xeb,0x34,0xe7,0xf,0xe8,0xde,0xea, +0x9d,0xe6,0xd7,0xe1,0xa4,0xe7,0x29,0xed,0x5b,0xe6,0x1a,0xe1, +0xba,0xe5,0xe9,0xe4,0x5e,0xdd,0x82,0xdd,0x28,0xe2,0xd8,0xe2, +0xd1,0xe2,0x53,0xe2,0x54,0xe1,0xa2,0xe3,0x7f,0xe4,0x30,0xe2, +0xad,0xe3,0x38,0xe6,0x52,0xe5,0x64,0xe4,0x61,0xe2,0xa2,0xdf, +0xb7,0xe0,0xe5,0xe2,0x53,0xe4,0x68,0xe7,0x42,0xea,0x6c,0xec, +0x37,0xef,0x1d,0xf0,0x27,0xee,0x60,0xec,0x49,0xed,0x4f,0xed, +0x54,0xe8,0x4c,0xe7,0xef,0xf0,0x37,0xf7,0xd1,0xf2,0xc9,0xf2, +0x94,0xfb,0x56,0xfd,0xfa,0xf3,0xd8,0xef,0xed,0xf7,0xba,0xfc, +0x76,0xf5,0x61,0xf1,0x43,0xf9,0xac,0xfe,0x2a,0xfa,0x9a,0xf6, +0x2,0xf9,0xb6,0xfb,0xa9,0xfa,0x72,0xf5,0x70,0xf1,0x2c,0xf6, +0xc1,0xfd,0x29,0xfb,0x96,0xf3,0xc2,0xf5,0x81,0xfb,0x89,0xf5, +0xff,0xea,0xdc,0xeb,0x96,0xf2,0x66,0xef,0x18,0xe6,0x1e,0xe7, +0x17,0xf0,0x5e,0xf0,0x8c,0xe9,0x1a,0xea,0xf6,0xee,0x15,0xeb, +0xf,0xe2,0xc3,0xde,0x64,0xde,0xfe,0xdb,0x89,0xdb,0xfb,0xdc, +0xf4,0xdc,0xbb,0xdd,0xa0,0xdf,0xe9,0xdf,0x72,0xdf,0xb9,0xdf, +0x39,0xe0,0x60,0xdf,0x26,0xdd,0x41,0xdc,0xba,0xdd,0x73,0xe0, +0x76,0xe2,0xd8,0xe1,0x6b,0xe1,0x73,0xe3,0x78,0xe4,0x82,0xe4, +0xbe,0xe6,0x55,0xea,0xab,0xed,0x43,0xf0,0x3,0xf3,0x10,0xf7, +0x68,0xf9,0x8d,0xf8,0x44,0xf8,0xcc,0xf9,0xd,0xfb,0xf8,0xfa, +0x4,0xfb,0xd3,0xfe,0x74,0x5,0x70,0xa,0x91,0xf,0x1,0x15, +0x72,0x14,0xfc,0x11,0xb2,0x15,0xcc,0x17,0xbf,0x13,0xc5,0x14, +0x37,0x1b,0xfa,0x1c,0x41,0x1d,0x95,0x21,0x63,0x25,0x52,0x27, +0xcf,0x29,0xd8,0x2a,0xc0,0x29,0x5,0x29,0x73,0x29,0xea,0x29, +0x8a,0x28,0x83,0x27,0x3b,0x2b,0xe4,0x2d,0x82,0x29,0x3a,0x27, +0x5,0x2b,0x49,0x2a,0x62,0x24,0xd4,0x23,0x4f,0x29,0xec,0x2a, +0x1a,0x25,0x9a,0x21,0xf1,0x24,0x9d,0x24,0xf6,0x1c,0x35,0x17, +0x8e,0x17,0x5a,0x19,0x4d,0x16,0x77,0x10,0xbb,0x11,0x6b,0x17, +0x52,0x15,0xdb,0xe,0x92,0xd,0xd,0xd,0xf0,0x8,0xc0,0x6, +0xcb,0x6,0xf4,0x3,0xa5,0x0,0xb4,0x0,0xf6,0x0,0x5b,0xff, +0x65,0xfe,0xfe,0xfd,0x68,0xfb,0xf0,0xf8,0xd6,0xfa,0x3c,0xfc, +0xbb,0xf7,0x4,0xf5,0x14,0xfa,0xb,0xfe,0xda,0xf9,0x2c,0xf4, +0x42,0xf4,0x59,0xf6,0x88,0xf5,0x2a,0xf5,0x16,0xf7,0x67,0xf8, +0x27,0xfa,0xa4,0xfc,0xb5,0xfc,0x66,0xfc,0x24,0xfe,0x7e,0xfe, +0xba,0xfd,0xcb,0xff,0xf0,0x1,0x26,0x0,0xbc,0xfe,0xd6,0x2, +0x6f,0x8,0xd,0x8,0x0,0x4,0x6,0x6,0x8,0xd,0x43,0xe, +0xf6,0xa,0xe7,0xc,0x48,0x11,0x67,0x10,0xd1,0xf,0x29,0x15, +0x1c,0x17,0x2b,0x12,0x90,0x12,0xa4,0x18,0x50,0x19,0x8a,0x18, +0x1a,0x1c,0xc3,0x1c,0xf2,0x1a,0xf,0x1e,0x65,0x21,0x3a,0x1f, +0x11,0x1d,0x66,0x1e,0x58,0x1f,0x18,0x1f,0x2f,0x20,0xc2,0x21, +0xd5,0x20,0x41,0x1d,0x21,0x1c,0x54,0x21,0x2,0x25,0xbd,0x1e, +0x22,0x18,0xe8,0x1c,0x36,0x23,0x8a,0x1e,0xbf,0x17,0x95,0x19, +0x39,0x1d,0xde,0x1a,0x46,0x16,0x45,0x16,0xa9,0x1a,0xc4,0x19, +0x99,0x11,0x94,0x10,0x5e,0x18,0x6c,0x17,0xe5,0xc,0x48,0xa, +0xef,0x12,0xac,0x18,0xd5,0x12,0x27,0xa,0xf1,0xa,0x37,0x11, +0xda,0xf,0xf9,0x6,0xd7,0x2,0x6,0x8,0x15,0xc,0x46,0x5, +0x5a,0xfe,0x24,0x7,0xc5,0x11,0x4f,0x9,0x61,0xff,0xcc,0x8, +0xa2,0xf,0x2,0x1,0x4d,0xf4,0x96,0xfc,0xe4,0x6,0xe1,0x0, +0xa9,0xf8,0x9d,0xfe,0xbb,0x7,0xc8,0x5,0x6,0x0,0xf8,0x0, +0x30,0x3,0x8a,0xfe,0x4,0xfa,0x5e,0xff,0x2e,0x6,0xb9,0x3, +0x22,0x0,0xef,0x0,0x99,0xfe,0xcc,0xfd,0x1c,0x4,0xfc,0x2, +0x58,0xfa,0x25,0xfe,0x9d,0x7,0x73,0x3,0x11,0xfc,0xaa,0x0, +0xa3,0x7,0x12,0x5,0x3a,0x0,0xc3,0x2,0x67,0x4,0x60,0xfe, +0x4f,0xfd,0xc4,0x5,0xf2,0xa,0xe6,0x9,0x9b,0x7,0x2d,0x3, +0x9e,0xff,0x13,0x1,0x2c,0x2,0x41,0x0,0x2e,0x1,0xfa,0x4, +0x89,0x5,0x89,0x3,0xa2,0x4,0xc,0x8,0x92,0x7,0xa5,0x3, +0xbc,0x2,0x13,0x3,0x29,0xff,0x6a,0xfc,0x72,0x0,0xdb,0x4, +0x45,0x4,0x21,0x3,0x5c,0x4,0x43,0x2,0x84,0xfb,0x48,0xfa, +0xe5,0xff,0x89,0x0,0xb3,0xfc,0x8b,0xfd,0x77,0xff,0x6a,0xfe, +0x36,0xfe,0x4b,0xfc,0xe8,0xf7,0x9b,0xf9,0xbf,0xfc,0xfe,0xf3, +0x7f,0xe9,0xec,0xee,0x93,0xf8,0xd9,0xf4,0x7,0xef,0xc,0xf3, +0x52,0xf4,0x1f,0xed,0x4,0xea,0x7d,0xed,0xd2,0xee,0x7e,0xea, +0x88,0xe3,0x37,0xe1,0xfc,0xe4,0xbe,0xe6,0x39,0xe4,0x87,0xe2, +0x10,0xe5,0x4b,0xea,0x1e,0xe9,0x2d,0xdf,0x2b,0xda,0xdc,0xdf, +0x64,0xe4,0x76,0xe0,0xfe,0xdc,0xb8,0xe2,0x5f,0xe7,0x2a,0xe1, +0x9e,0xde,0xab,0xe7,0x87,0xea,0xe3,0xe1,0x2a,0xdd,0xfa,0xde, +0x32,0xdf,0xf9,0xdf,0x64,0xe4,0xe2,0xe7,0xe6,0xe9,0x17,0xec, +0x36,0xeb,0x6a,0xe8,0xb8,0xe8,0x92,0xea,0x10,0xea,0xc9,0xe7, +0xa5,0xe7,0xc8,0xea,0x55,0xec,0xab,0xeb,0x6f,0xee,0xfb,0xf2, +0x6b,0xf3,0x18,0xf0,0xd2,0xeb,0x34,0xea,0xb0,0xed,0x11,0xf1, +0x62,0xf0,0x51,0xf1,0x38,0xf5,0x3,0xf4,0x11,0xee,0xb7,0xec, +0x34,0xef,0xc1,0xee,0xe1,0xec,0xcd,0xeb,0x81,0xea,0x7e,0xeb, +0x8e,0xed,0x70,0xec,0xdf,0xec,0xab,0xf0,0x31,0xee,0x78,0xe4, +0x66,0xdf,0xfa,0xe2,0xc4,0xe5,0x7b,0xe2,0x65,0xe1,0x4f,0xe6, +0xc6,0xe7,0xa9,0xe3,0x4f,0xe2,0x49,0xe5,0x2e,0xe7,0x8f,0xe4, +0x22,0xe1,0x29,0xe2,0x2f,0xe3,0xfd,0xe0,0xa5,0xe1,0xe2,0xe4, +0xdc,0xe6,0x44,0xe9,0x2c,0xe9,0x88,0xe4,0xa,0xe4,0xb6,0xea, +0x2b,0xef,0xd2,0xed,0x5e,0xed,0x3f,0xf0,0x30,0xf2,0x6a,0xf1, +0x85,0xf0,0x7c,0xf3,0x26,0xf9,0xd6,0xf9,0x45,0xf6,0x75,0xf8, +0x12,0x0,0x77,0x3,0xa8,0x1,0x7d,0x3,0x7d,0xa,0x48,0xb, +0x9d,0x3,0x3b,0x1,0x63,0x8,0x6c,0xe,0x41,0xd,0x3,0xb, +0x78,0x10,0x3b,0x18,0x2,0x16,0x68,0x11,0x5e,0x18,0x76,0x21, +0x96,0x1e,0xa,0x17,0x30,0x18,0x1,0x1f,0x7a,0x1f,0x95,0x1b, +0x84,0x1f,0x22,0x27,0xe0,0x24,0xb6,0x1d,0x45,0x1d,0xeb,0x1f, +0x20,0x20,0x5f,0x20,0x1f,0x21,0x3d,0x21,0xce,0x21,0xfa,0x21, +0xf8,0x1f,0x8f,0x1d,0xe7,0x1d,0xd4,0x1e,0xe4,0x1a,0x5c,0x15, +0xa8,0x15,0x35,0x17,0xbe,0x13,0xf6,0x12,0xf2,0x18,0x41,0x1a, +0x7a,0x12,0xd3,0xc,0xba,0xe,0x79,0x10,0x83,0xc,0x9c,0x7, +0x50,0x7,0x3a,0x8,0xa9,0x5,0xd7,0x2,0x8d,0x3,0xe3,0x5, +0x95,0x6,0xf1,0x3,0xe5,0xff,0xaa,0xfe,0xe0,0xfe,0xef,0xfb, +0x91,0xf9,0xf1,0xfd,0xd1,0x2,0x34,0xff,0x59,0xf8,0xe0,0xf7, +0xca,0xfa,0x53,0xf7,0xaf,0xf0,0x19,0xf5,0x33,0x0,0x2d,0xff, +0x1f,0xf7,0x7c,0xf8,0x99,0xfd,0xb1,0xfd,0xed,0xfc,0xe6,0xfc, +0x5,0xfc,0x13,0xfb,0x39,0xfa,0x48,0xfa,0xe8,0xfc,0x72,0x1, +0xc,0x4,0xca,0x2,0xcb,0x2,0xd8,0x6,0x55,0x8,0xf9,0x4, +0xf2,0x4,0x1f,0xb,0x6,0xf,0x86,0xc,0x4a,0xa,0x8c,0xc, +0x93,0xf,0xc9,0xf,0xb8,0xe,0xc4,0x10,0x66,0x15,0x58,0x16, +0xc3,0x13,0xee,0x15,0xea,0x1d,0x82,0x21,0x33,0x1d,0x40,0x1b, +0x94,0x1e,0xcc,0x1d,0x5e,0x19,0x4b,0x19,0x77,0x1c,0xc1,0x1e, +0x6e,0x1e,0x4b,0x1c,0x8f,0x1f,0xdd,0x28,0x6a,0x2b,0x6c,0x24, +0x3d,0x22,0xdb,0x28,0x9,0x29,0x4,0x1d,0x99,0x15,0x15,0x1c, +0xa,0x22,0x41,0x1e,0xfb,0x1b,0x6d,0x22,0x67,0x27,0x1a,0x23, +0x33,0x1e,0x53,0x20,0x82,0x21,0x47,0x1c,0x73,0x17,0x7b,0x16, +0xc9,0x17,0x84,0x19,0x2,0x17,0x96,0x13,0x7e,0x18,0x54,0x1e, +0xb5,0x17,0xc5,0xc,0x3d,0xd,0xc5,0x13,0x89,0x11,0xc3,0xa, +0x3f,0xc,0xdd,0x10,0xa1,0xd,0x30,0x7,0x9c,0x6,0xff,0x8, +0xac,0x6,0x54,0x1,0xeb,0xff,0xd3,0x2,0x5e,0x6,0x3e,0x7, +0xcd,0x3,0x7b,0x1,0x5a,0x4,0xaf,0x3,0xb,0xfa,0x62,0xf3, +0xb,0xf8,0xe6,0xfb,0x94,0xf7,0x42,0xf9,0xd8,0x3,0xe2,0x3, +0xfb,0xf7,0xd9,0xf5,0x51,0x0,0xd8,0x1,0x1f,0xf5,0x69,0xf0, +0xe4,0xfa,0xb6,0xfe,0x2a,0xf6,0xa4,0xf3,0x8d,0xf9,0x79,0xfb, +0x77,0xf8,0xf8,0xf6,0x29,0xf9,0x3,0xfc,0xbf,0xfa,0xf4,0xf7, +0x13,0xfc,0xd5,0x4,0xa,0x5,0x1f,0xfb,0xe0,0xf6,0xb,0xff, +0xa0,0x3,0xdf,0xfa,0x69,0xf5,0x66,0xfe,0xd3,0x4,0x7b,0xfe, +0xa1,0xfc,0x58,0x6,0x10,0x9,0x8e,0xff,0xa2,0xfb,0x65,0x1, +0xc8,0x2,0xba,0xfc,0x4c,0xf8,0xa2,0xf9,0x72,0xfe,0xca,0x1, +0x79,0xff,0xd,0xfa,0x85,0xf8,0x93,0xfb,0x95,0xfb,0x3e,0xf6, +0x69,0xf4,0x40,0xf8,0x9e,0xf7,0xc2,0xf1,0x54,0xf1,0x4a,0xf5, +0x78,0xf2,0x5e,0xea,0xf9,0xe8,0x71,0xee,0x73,0xef,0xb1,0xea, +0x2,0xe9,0x8a,0xea,0x29,0xea,0xdd,0xe9,0xb5,0xe9,0xb4,0xe5, +0x8c,0xe1,0x2,0xe2,0x9b,0xe3,0xd,0xe2,0xd2,0xde,0x1f,0xdf, +0x8d,0xe2,0xcd,0xe2,0x20,0xe2,0x68,0xe4,0x5f,0xe3,0x2a,0xe0, +0x27,0xe2,0x5b,0xe3,0xd2,0xdf,0x66,0xdf,0x55,0xe1,0x83,0xdf, +0xea,0xde,0x23,0xe3,0x44,0xe3,0x7c,0xdc,0x7f,0xdb,0x72,0xe4, +0x40,0xe9,0x29,0xe4,0xb4,0xe0,0x5c,0xe4,0x24,0xe7,0x7d,0xe4, +0x7a,0xe1,0x59,0xe0,0x2d,0xdd,0xbc,0xda,0x17,0xdf,0x11,0xe4, +0x96,0xe3,0xb3,0xe4,0x74,0xe8,0xe5,0xe7,0xb7,0xe6,0xca,0xe7, +0x3,0xe4,0x4,0xdd,0xcd,0xdb,0x24,0xe0,0x1a,0xe3,0x6f,0xe1, +0xd9,0xdf,0xdb,0xe1,0xbc,0xe2,0x86,0xe2,0xae,0xe4,0x7b,0xe3, +0xc1,0xde,0x2,0xe0,0x2f,0xe5,0x6e,0xe5,0xaf,0xe2,0xb0,0xe3, +0x66,0xe7,0x1,0xe7,0x27,0xe3,0x77,0xe2,0xfb,0xe2,0x7e,0xe2, +0x46,0xe6,0x3,0xeb,0x67,0xeb,0x8,0xee,0xf,0xf3,0x2a,0xf3, +0x33,0xf2,0x98,0xf3,0x22,0xf2,0xe9,0xee,0xa1,0xef,0xfc,0xf3, +0x5b,0xf7,0x68,0xf7,0xb6,0xf8,0x3c,0xfe,0xee,0x1,0xdf,0x1, +0xb3,0x3,0xa7,0x6,0xec,0x5,0x25,0x4,0x43,0x6,0x50,0x9, +0x6d,0x8,0xd,0x7,0x6b,0x9,0x1e,0xd,0xa8,0x10,0x99,0x13, +0x5d,0x13,0xf4,0x11,0x77,0x13,0xbe,0x16,0x5d,0x19,0x68,0x1a, +0xa5,0x19,0x60,0x18,0x98,0x17,0xc1,0x18,0x5a,0x1c,0xa5,0x1b, +0x5f,0x13,0x92,0x10,0x57,0x1a,0x6,0x20,0x14,0x18,0x19,0x14, +0xd9,0x1d,0x7b,0x23,0x95,0x1a,0x92,0x12,0xb2,0x14,0xb,0x15, +0xda,0xd,0x84,0xa,0xb3,0x10,0x31,0x15,0xd0,0xe,0x72,0x7, +0x54,0xb,0x88,0x11,0x18,0xd,0xef,0x5,0xfb,0x6,0xdb,0x9, +0xb5,0x6,0x63,0x1,0x0,0xff,0x84,0xff,0xe1,0x1,0x4d,0x3, +0xbd,0xff,0x72,0xfa,0xe7,0xfa,0xee,0xfd,0xcd,0xfb,0xb8,0xf9, +0x18,0xfe,0x52,0x0,0xe8,0xfa,0xdf,0xf7,0xcc,0xfb,0xb9,0xfd, +0xdc,0xf8,0x96,0xf3,0x0,0xf5,0xeb,0xfa,0xea,0xfc,0x60,0xf8, +0x18,0xf4,0x52,0xf8,0x5f,0x2,0x4e,0x3,0x6f,0xf8,0xa5,0xf4, +0x2c,0xfe,0x10,0x3,0xcc,0xfc,0x31,0xfa,0x3a,0x1,0xf1,0x4, +0x55,0xfe,0xb1,0xfa,0x6d,0x3,0xaf,0xa,0xef,0x5,0x9f,0x2, +0x5b,0xa,0x4c,0x11,0xcb,0xd,0x7,0x7,0xfb,0x8,0x9a,0x13, +0x34,0x17,0xef,0xd,0x87,0xa,0xb0,0x14,0xf,0x19,0x31,0x11, +0x73,0xf,0xe,0x1b,0x40,0x24,0x91,0x1f,0xd3,0x17,0xf,0x1a, +0xe9,0x1f,0x97,0x1f,0xf5,0x1b,0xf8,0x1a,0xde,0x1f,0x3e,0x26, +0x58,0x22,0x29,0x19,0x4b,0x1d,0x10,0x29,0xcd,0x27,0x10,0x1e, +0xff,0x1e,0xfc,0x28,0x63,0x2a,0xc8,0x20,0x3,0x1d,0xf3,0x23, +0xc7,0x24,0x39,0x1a,0xbd,0x16,0xfd,0x21,0xa7,0x28,0x5a,0x1e, +0x12,0x15,0xd2,0x1d,0xc6,0x29,0x9e,0x24,0xbb,0x16,0x57,0x13, +0xcc,0x19,0x98,0x1c,0x45,0x17,0xf1,0x12,0x67,0x18,0xa8,0x1e, +0x9f,0x17,0x7e,0xe,0xe,0x14,0xe6,0x19,0xe8,0x10,0x46,0xa, +0xe,0x13,0x4a,0x1b,0xe0,0x15,0x7b,0xc,0xf,0xb,0xa1,0xd, +0x4c,0xc,0xf9,0x8,0x9e,0x5,0x69,0x2,0xab,0x5,0xec,0xc, +0x7c,0xb,0x89,0x6,0x40,0xc,0xff,0x12,0x8e,0xb,0xd3,0x0, +0xd1,0x1,0x60,0x4,0x36,0xfc,0xf2,0xf6,0xc9,0x0,0xf,0x8, +0x1b,0x0,0x48,0xfc,0x61,0x7,0x30,0xe,0x65,0x7,0x63,0x2, +0x10,0x6,0x3a,0x7,0xea,0x2,0x85,0x2,0x74,0x4,0x1f,0x1, +0x6a,0xff,0x7a,0x3,0x18,0x2,0xb1,0xfb,0xdc,0xfd,0x3b,0x6, +0x68,0x8,0x22,0x7,0xf,0xc,0x2c,0x11,0xa1,0xb,0x25,0x4, +0xbd,0x5,0x53,0x5,0x57,0xfc,0x86,0xf9,0xc2,0xfe,0x25,0xfd, +0x8b,0xf9,0x9f,0x2,0xba,0xc,0x55,0x8,0xcf,0x3,0x3b,0x9, +0xe4,0x5,0xb1,0xf8,0x94,0xf8,0x78,0xfe,0x39,0xf5,0x4f,0xec, +0x75,0xf5,0xe3,0xfd,0x17,0xf7,0xca,0xf0,0x66,0xf5,0xd9,0xf8, +0xf8,0xf2,0x91,0xec,0x68,0xec,0x92,0xed,0xbe,0xec,0xdf,0xeb, +0x9f,0xea,0xad,0xe8,0xfc,0xe6,0x52,0xe3,0xf8,0xdd,0x1d,0xdd, +0x1d,0xe1,0x2b,0xe1,0xbf,0xdb,0x73,0xdc,0x1e,0xe6,0xbd,0xe8, +0xf9,0xdd,0x7a,0xd7,0x45,0xde,0x43,0xe1,0x9b,0xd5,0x3,0xcc, +0xd9,0xd2,0xc3,0xdb,0x26,0xd8,0x89,0xd4,0xf7,0xdb,0x72,0xe2, +0xd2,0xde,0x27,0xd9,0x1b,0xdb,0x25,0xe2,0x80,0xe1,0xa1,0xd7, +0xed,0xd4,0xd7,0xdd,0xa2,0xe1,0xd4,0xd9,0x65,0xd6,0xee,0xe1, +0x2c,0xed,0x18,0xe8,0x9a,0xdf,0x70,0xe5,0xbc,0xef,0xbd,0xed, +0xb,0xe6,0xb6,0xe8,0xa4,0xf0,0xd,0xed,0xe4,0xe4,0x4,0xea, +0x12,0xf3,0xee,0xef,0x53,0xea,0x5f,0xed,0xd0,0xf0,0x7a,0xef, +0x2c,0xf0,0x7,0xf4,0x51,0xf6,0x56,0xf8,0x5e,0xfa,0x57,0xf7, +0x8c,0xf1,0xa0,0xef,0x17,0xef,0x81,0xeb,0x88,0xe8,0x93,0xeb, +0x76,0xf2,0x2d,0xf5,0x57,0xf3,0x2e,0xf6,0x47,0xfd,0x8e,0xfc, +0x96,0xf3,0xa0,0xee,0x20,0xef,0x44,0xec,0x9f,0xe8,0x9e,0xec, +0xd5,0xf1,0xfa,0xef,0x8a,0xef,0x59,0xf5,0x70,0xf6,0x77,0xf1, +0xd1,0xf0,0x66,0xf2,0xd7,0xf0,0x5,0xf2,0x12,0xf5,0x7,0xf3, +0xec,0xf1,0x5a,0xf6,0x49,0xf8,0x39,0xf6,0xed,0xf4,0xa6,0xf2, +0x9c,0xf0,0x1f,0xf5,0x70,0xfc,0x4b,0xfd,0x85,0xfb,0x89,0xff, +0xee,0x1,0xcb,0xfb,0x32,0xf9,0xe,0xfe,0x66,0xfc,0x8f,0xf6, +0xa8,0xfb,0x4c,0x5,0xc1,0x5,0xd0,0x4,0xf,0xc,0x5c,0x11, +0xd0,0xd,0xa1,0xb,0xe7,0xd,0x70,0xb,0xaa,0x5,0x58,0x6, +0x65,0xb,0xac,0xb,0x8f,0x9,0xc8,0xd,0xa0,0x13,0x8,0x12, +0x12,0x10,0xd6,0x14,0xba,0x16,0x70,0x11,0xa0,0x10,0xe6,0x16, +0x3c,0x16,0x5a,0xc,0x16,0xa,0x63,0x11,0x5d,0x11,0x3b,0xb, +0x74,0xc,0x1b,0x10,0xf9,0xe,0x7a,0xf,0x73,0x12,0x25,0x12, +0x74,0x10,0x53,0x10,0x30,0xf,0x40,0xc,0x56,0xa,0xe,0x9, +0x2b,0x4,0xef,0xfd,0x90,0xff,0x82,0x6,0x9d,0x5,0xba,0x0, +0xce,0x5,0xf3,0xc,0x46,0x8,0x89,0x1,0xcb,0x3,0xcf,0x4, +0x68,0xfc,0x78,0xf5,0xf2,0xf8,0xf5,0xfd,0xba,0xfb,0x7,0xf8, +0xa9,0xf8,0xaa,0xfb,0x6e,0xff,0xb,0x1,0xfe,0xfd,0xa5,0xfb, +0xcc,0xfd,0xe1,0xfe,0x7a,0xfb,0xa0,0xf9,0x34,0xfd,0x2a,0xfe, +0x6d,0xf8,0x32,0xf8,0x24,0x1,0x78,0x3,0x6a,0xfc,0x6a,0xfc, +0x6a,0x5,0xa8,0x8,0x70,0x3,0xce,0x0,0x27,0x5,0x6,0xa, +0xc,0x9,0xc9,0x4,0xd9,0x4,0x39,0x8,0xee,0x7,0x62,0x6, +0xd7,0x9,0xf9,0xf,0xc3,0x12,0x0,0x11,0x2d,0x11,0xfd,0x16, +0x12,0x18,0x52,0xf,0x32,0xb,0x3f,0x13,0xbf,0x19,0x3a,0x14, +0xa7,0xd,0x16,0x13,0xa4,0x1a,0x46,0x18,0x26,0x17,0xb3,0x1d, +0x19,0x1f,0xc0,0x19,0xcd,0x18,0xf2,0x1c,0x93,0x1e,0x2a,0x1b, +0xfb,0x17,0x71,0x18,0x9d,0x19,0x7e,0x1a,0x5d,0x19,0x28,0x14, +0x32,0x14,0x48,0x1c,0x29,0x1c,0x7,0x14,0x2a,0x18,0x0,0x24, +0x75,0x21,0x35,0x16,0xe5,0x15,0x67,0x1a,0xa8,0x13,0xdd,0x8, +0x30,0xa,0xf2,0x13,0x41,0x17,0xf5,0x13,0x8,0x16,0x59,0x1d, +0xaf,0x1c,0xce,0x11,0x49,0xb,0x4e,0x10,0xd7,0x13,0xc7,0xd, +0xfa,0xa,0x7f,0x11,0xcd,0x14,0xc3,0x10,0xb3,0xd,0xe6,0xe, +0x21,0x11,0x6c,0xe,0x1d,0x6,0xe5,0x2,0x95,0xa,0x57,0x12, +0x8f,0xf,0x3c,0xa,0xb7,0xe,0xc9,0x11,0x62,0x4,0xc7,0xf7, +0x1f,0xfe,0x3a,0x6,0xb6,0x0,0x53,0xfd,0xef,0x9,0x0,0x16, +0xc,0xd,0xf,0xfe,0xfa,0x2,0x75,0xe,0xa9,0x7,0x88,0xfb, +0x56,0xfe,0x95,0x4,0x1a,0xff,0x6e,0xf8,0xb5,0xfd,0x19,0x6, +0x11,0x6,0xe6,0x2,0xa2,0x2,0x3c,0x3,0xbb,0x4,0x98,0x3, +0x48,0xfb,0x35,0xf8,0x25,0x2,0x44,0x4,0x3d,0xf6,0xd3,0xf1, +0x21,0xfe,0x1c,0x2,0x30,0xf8,0xc0,0xf4,0xbc,0xfc,0x7f,0x0, +0x64,0xfb,0x57,0xf9,0x24,0xfc,0x72,0xfb,0xc8,0xf9,0x42,0xf8, +0xd8,0xf0,0x19,0xec,0x8c,0xf0,0x84,0xef,0x31,0xe7,0xe9,0xea, +0x54,0xfa,0xb0,0xfc,0x35,0xec,0x48,0xe6,0xad,0xf7,0xb8,0xfc, +0x9f,0xe5,0x52,0xdb,0x48,0xec,0xb8,0xef,0xac,0xdb,0x10,0xd6, +0x8b,0xe7,0x11,0xf0,0x14,0xe6,0xe5,0xe1,0xbc,0xeb,0x8a,0xf0, +0x1e,0xe8,0x7b,0xdf,0x6c,0xe0,0xdd,0xe5,0xa7,0xe4,0x54,0xdc, +0x63,0xda,0xd0,0xe1,0xf,0xe3,0xcb,0xda,0x82,0xd9,0x70,0xe3, +0xb5,0xe8,0x39,0xe2,0x97,0xdd,0x8e,0xe4,0xd6,0xeb,0x14,0xe8, +0xa4,0xe0,0x22,0xe0,0x57,0xe4,0x82,0xe4,0x47,0xdf,0x38,0xde, +0xa7,0xe5,0xa7,0xeb,0xbc,0xea,0xd9,0xea,0x3c,0xf0,0xf9,0xf2, +0xd1,0xed,0xb8,0xea,0x30,0xf1,0x18,0xf4,0xb3,0xea,0x9f,0xe4, +0x28,0xed,0x23,0xf7,0xb0,0xf3,0xe5,0xeb,0x98,0xf2,0x82,0xfe, +0xdd,0xf8,0x5b,0xed,0x42,0xf2,0xc3,0xfa,0x47,0xf6,0x19,0xf0, +0x1e,0xf3,0x1e,0xf8,0x84,0xf6,0x5,0xf1,0x9e,0xf0,0x8b,0xf5, +0xb7,0xf5,0xa8,0xef,0xd8,0xee,0xd6,0xf6,0xe9,0xfb,0x2b,0xf7, +0x9d,0xf2,0xe,0xf7,0xf8,0xfa,0xc4,0xf3,0xf1,0xea,0xd6,0xec, +0x7d,0xf2,0xf9,0xf0,0xc7,0xec,0x22,0xef,0x79,0xf5,0x72,0xf6, +0xe3,0xf2,0xc5,0xf3,0xc3,0xf7,0x87,0xf6,0x94,0xf1,0x80,0xef, +0xb7,0xf0,0xcd,0xf1,0x8b,0xf0,0x55,0xee,0xa0,0xee,0xc8,0xf1, +0xc3,0xf3,0x8b,0xf1,0xfc,0xef,0x13,0xf5,0x46,0xf9,0xd7,0xf3, +0x6f,0xef,0xb7,0xf5,0xf6,0xf8,0x26,0xf0,0x32,0xec,0x14,0xf6, +0x27,0xfc,0x85,0xf6,0xde,0xf4,0xfb,0xfc,0x8e,0x2,0xb9,0xff, +0x6e,0xfc,0x85,0x1,0x99,0x9,0x4f,0x6,0xaf,0xfc,0x1,0x0, +0xa2,0xa,0xb6,0x7,0x5d,0xfe,0xc8,0x3,0x6f,0x10,0x73,0xf, +0xbe,0x7,0x44,0xc,0x43,0x16,0x68,0x15,0xee,0xe,0x2c,0xf, +0x3a,0x13,0x98,0x12,0x49,0xe,0x22,0xd,0x83,0x10,0x3b,0x13, +0x1f,0x12,0xcb,0x10,0x87,0x13,0x1a,0x17,0x7d,0x15,0x1e,0x11, +0x7c,0x11,0xfe,0x16,0xaf,0x18,0x68,0x10,0x51,0x9,0x84,0x10, +0x8b,0x18,0x4a,0x10,0x2,0x7,0xc6,0xd,0xa3,0x14,0x95,0xc, +0x1d,0x6,0x94,0xe,0x68,0x14,0x14,0xc,0xb0,0x7,0xf1,0xd, +0x2,0xd,0xfc,0x3,0xb0,0x2,0x73,0x7,0x42,0x7,0xd6,0x2, +0x35,0x0,0xc6,0x1,0xdd,0x5,0xcd,0x7,0xf7,0x4,0x1c,0x1, +0xdc,0x1,0xeb,0x4,0x5,0x2,0xc1,0xfa,0x9,0xfa,0x8f,0xff, +0x13,0x0,0xb4,0xfa,0x93,0xf9,0xca,0xfe,0x4b,0x1,0xee,0xfd, +0x7b,0xfd,0x5b,0x2,0x8a,0x2,0xee,0xfc,0x67,0xfc,0x88,0x2, +0xf9,0x6,0xe8,0x5,0x1c,0x2,0xbc,0x0,0x9d,0x2,0xd3,0x2, +0xde,0x1,0xec,0x4,0xa5,0x8,0xbb,0x7,0x11,0x7,0x39,0xb, +0x3b,0xf,0xa4,0xf,0x9b,0xf,0xbc,0xf,0xc9,0xe,0x58,0xf, +0x3a,0xf,0xbc,0x8,0xb1,0x4,0xde,0xd,0x7,0x17,0x84,0x13, +0xa9,0x11,0x44,0x1a,0xd4,0x1d,0x4c,0x16,0x18,0x12,0xdd,0x16, +0x30,0x18,0xee,0x10,0x5,0xe,0x2b,0x14,0x1d,0x17,0xa,0x15, +0x1a,0x18,0x59,0x1f,0x5f,0x21,0x87,0x1b,0x23,0x15,0xd1,0x15, +0x1,0x1a,0x8,0x1b,0x5a,0x19,0x63,0x17,0x7c,0x17,0x5f,0x18, +0xc,0x15,0x3b,0x12,0x0,0x17,0xf5,0x1b,0xb2,0x18,0x8,0x13, +0x49,0x15,0x77,0x1b,0x58,0x17,0x44,0xf,0x61,0x15,0x1a,0x1e, +0x67,0x16,0xad,0xb,0xca,0xc,0xb6,0xe,0xff,0x8,0xb0,0x5, +0x2f,0xc,0x60,0x13,0xd8,0x10,0x3c,0xa,0x30,0xb,0x41,0x11, +0x3a,0x10,0x7e,0x7,0x58,0x3,0x87,0x6,0xc0,0x4,0xc8,0xfa, +0xc0,0xf7,0x6,0x1,0xe8,0x4,0xfb,0xfd,0x85,0xff,0xb9,0xb, +0xbe,0xe,0xf4,0x5,0x4d,0xff,0x83,0xff,0xa3,0xfe,0xff,0xf6, +0xbe,0xf2,0xc5,0xf8,0x93,0xfc,0x5c,0xfb,0xef,0xfe,0x4,0x3, +0xd7,0x1,0xad,0xfd,0x32,0xf8,0x14,0xf8,0x8d,0xfc,0xf2,0xfa, +0x2,0xf8,0x88,0xfa,0x8d,0xfb,0x13,0xf9,0x2f,0xf5,0xf8,0xf2, +0xe6,0xf7,0x89,0xfa,0x4c,0xf2,0x0,0xee,0x2e,0xf6,0x85,0xfe, +0x3,0xfe,0x20,0xf9,0xc0,0xf9,0x2e,0xfe,0x44,0xf9,0x3c,0xee, +0x30,0xed,0x38,0xf3,0x28,0xf2,0x6c,0xec,0x9a,0xed,0x99,0xf4, +0x94,0xf7,0x28,0xf4,0x91,0xf1,0xc6,0xf5,0x92,0xf9,0xa5,0xf1, +0xa7,0xe5,0x66,0xe6,0xe8,0xef,0x74,0xee,0xe5,0xe0,0x94,0xe0, +0x8f,0xf2,0xf4,0xf4,0x57,0xe2,0xd7,0xdf,0x84,0xef,0x46,0xf2, +0xf0,0xe6,0xdf,0xe0,0x1a,0xe5,0xde,0xe8,0xe1,0xe2,0x5c,0xdc, +0xdc,0xe0,0x50,0xe9,0x3c,0xe9,0xd6,0xdf,0x99,0xdc,0x85,0xe8, +0x9d,0xec,0x5e,0xdc,0xe8,0xd5,0xc7,0xe5,0x3c,0xed,0x5b,0xdf, +0x23,0xd7,0xa8,0xe4,0xb5,0xef,0x87,0xe3,0x9e,0xd6,0x81,0xdf, +0xbc,0xe9,0xd5,0xe0,0xad,0xd7,0xad,0xe1,0xfc,0xee,0xf5,0xec, +0x1c,0xe6,0x36,0xe8,0x56,0xec,0xb6,0xe9,0x37,0xe4,0x48,0xe3, +0x27,0xe8,0x24,0xec,0x8b,0xea,0x88,0xe9,0xad,0xee,0x49,0xf3, +0x9e,0xf0,0xf6,0xec,0xbe,0xee,0x35,0xef,0x4d,0xea,0x7d,0xe9, +0x88,0xf0,0x18,0xf6,0xdd,0xf4,0x17,0xf2,0xd2,0xf3,0x3f,0xf7, +0xe4,0xf5,0xad,0xf3,0x5a,0xf6,0xf,0xf7,0x43,0xf2,0x34,0xf1, +0x5e,0xf7,0xcf,0xfc,0x42,0xfb,0x28,0xf7,0xc3,0xfa,0x1a,0x4, +0x67,0x4,0x8,0xfa,0x86,0xf5,0x22,0xfd,0xe7,0x1,0x32,0xfc, +0xdc,0xfa,0x6a,0x4,0x1a,0x8,0x9c,0x0,0xa8,0xff,0xf4,0x8, +0xe9,0x9,0xc4,0xff,0xd3,0xfc,0x2e,0x3,0xc1,0x4,0x15,0x2, +0x35,0x4,0xb1,0x9,0x6a,0xc,0xae,0x9,0xda,0x4,0xf5,0x3, +0x5f,0x6,0x80,0x7,0x7d,0x5,0x91,0x1,0xa9,0xff,0xd9,0x0, +0xe4,0x2,0x75,0x5,0x10,0x7,0xdb,0x7,0xb5,0xa,0xe2,0xb, +0x23,0x9,0xe8,0x7,0x28,0x8,0x54,0x7,0x6e,0x6,0x3e,0x4, +0xe6,0x3,0xcc,0x8,0x42,0x9,0x3c,0x3,0x77,0x6,0x63,0x12, +0x2a,0x13,0xef,0x8,0xcb,0x5,0x3d,0xa,0x80,0x9,0xa1,0x4, +0x82,0x5,0x88,0xa,0xd2,0x9,0xef,0x3,0x2b,0x3,0xf4,0x7, +0x81,0x9,0x4a,0x7,0x4a,0x6,0x22,0x6,0x87,0x5,0x11,0x6, +0xed,0x6,0x45,0x5,0x22,0x4,0x68,0x7,0xbb,0x7,0xfd,0x0, +0x3,0xff,0x86,0x3,0x6e,0x1,0x32,0xfd,0xdf,0x3,0x47,0xc, +0x6d,0x9,0xbd,0x3,0x28,0x6,0xd4,0x9,0x29,0x6,0x19,0x2, +0x32,0x4,0xe4,0x4,0x96,0xff,0x4a,0xfc,0xb6,0x0,0x63,0x7, +0x75,0x7,0xfb,0x1,0xa9,0x1,0x18,0x8,0x2a,0xa,0xe4,0x4, +0xc9,0x2,0xd6,0x7,0x8a,0xa,0x16,0x6,0x12,0x1,0x3d,0x0, +0x6d,0x3,0x71,0x6,0xaf,0x2,0x4e,0xff,0xd1,0x7,0x6,0x10, +0x12,0xb,0x73,0x7,0x9d,0xf,0x73,0x14,0x16,0xc,0xeb,0x4, +0x26,0xa,0x88,0xf,0xbc,0xa,0x71,0x4,0xbd,0x5,0x77,0xe, +0x56,0x16,0x88,0x13,0x55,0xc,0x6e,0xd,0x8e,0x14,0x6d,0x19, +0x90,0x17,0xbe,0x11,0x20,0x12,0xc8,0x16,0xd9,0x13,0x6b,0xd, +0x9f,0xe,0x54,0x13,0x6a,0x11,0xd,0xd,0x13,0x12,0x53,0x1a, +0x9f,0x17,0xef,0x12,0x9d,0x19,0xde,0x1f,0x58,0x19,0xa8,0x10, +0xe3,0xf,0x1c,0x10,0xcd,0xd,0x6e,0xf,0x6e,0x12,0xe6,0xf, +0xe2,0xd,0xad,0x13,0xa6,0x19,0x7d,0x15,0x16,0xf,0xf2,0x13, +0x72,0x1a,0xa1,0x14,0x95,0xd,0x59,0x10,0x3d,0x13,0xd4,0xd, +0x79,0x7,0x87,0xa,0xbf,0x10,0xa3,0xd,0x44,0x8,0x95,0x9, +0x63,0xc,0x96,0x11,0x7,0x17,0x6f,0x11,0x79,0xa,0xaa,0xf, +0xae,0x12,0x97,0x8,0x16,0xff,0xd8,0x0,0x16,0x7,0xb3,0x8, +0xa,0x8,0x3a,0x9,0x45,0x7,0x37,0x4,0x38,0xa,0xe4,0x12, +0x51,0x11,0x8b,0x9,0x4d,0x3,0x8f,0x0,0x81,0x4,0x29,0xb, +0xae,0xa,0xd6,0x3,0xfa,0xfe,0x3f,0x1,0x77,0x8,0x4f,0xa, +0xd0,0x3,0xf5,0x1,0x82,0xa,0x23,0x10,0x93,0x8,0xa8,0xfd, +0x25,0xff,0x8a,0x8,0xb2,0x7,0xde,0xfe,0x5a,0xff,0xa4,0x6, +0x82,0x5,0xe5,0xfc,0xf5,0xfa,0x8a,0x4,0xfd,0xa,0xdf,0x2, +0x3a,0xfc,0x8f,0x4,0x3b,0xa,0xde,0x0,0x7d,0xf7,0x36,0xf9, +0x40,0xff,0x75,0xfe,0xfd,0xf4,0xb8,0xf0,0x48,0xf9,0x98,0xfe, +0x19,0xf8,0x58,0xf6,0x85,0xfe,0xe,0xfe,0xee,0xf1,0x7b,0xef, +0xe0,0xf9,0x75,0xfa,0xb4,0xed,0x1f,0xe8,0x4,0xeb,0x71,0xe8, +0x5,0xe6,0xc4,0xea,0x4d,0xeb,0xa6,0xe7,0xfc,0xeb,0xbc,0xf1, +0xdd,0xed,0x42,0xe7,0x2a,0xe5,0x42,0xe3,0x64,0xdf,0xd1,0xdf, +0x4e,0xe3,0x4f,0xde,0xdf,0xd6,0x5d,0xde,0xe4,0xe9,0x8e,0xe5, +0xb2,0xdc,0xb3,0xe0,0xec,0xe7,0xa3,0xe2,0xa9,0xda,0xe0,0xe1, +0xbf,0xe9,0x2a,0xdd,0xfa,0xd1,0x39,0xde,0x15,0xe8,0xa9,0xdc, +0x7a,0xd5,0x26,0xe1,0x4b,0xe9,0xa8,0xe2,0xaf,0xde,0xcf,0xe4, +0x3,0xe8,0x97,0xe3,0x68,0xe0,0xca,0xe2,0xfd,0xe5,0x41,0xe4, +0xc8,0xde,0xc3,0xdd,0x39,0xe4,0x1,0xe9,0x9f,0xe5,0xed,0xe2, +0x38,0xe9,0x5b,0xf0,0xce,0xed,0xce,0xe6,0x99,0xe8,0x8d,0xf1, +0x62,0xf1,0x4c,0xe8,0xda,0xe8,0xb,0xf1,0xe6,0xed,0x3e,0xe5, +0x92,0xea,0xfe,0xf6,0x1,0xf6,0x64,0xeb,0xfc,0xeb,0x8d,0xf8, +0x77,0xfd,0x55,0xf5,0xbc,0xee,0xa4,0xf1,0x29,0xf6,0xbb,0xf3, +0x1f,0xef,0xaa,0xf2,0xc6,0xf8,0xe9,0xf4,0x18,0xf0,0xb9,0xf8, +0xb3,0x2,0x6f,0xfd,0x3a,0xf4,0xac,0xf8,0x95,0x2,0x17,0x1, +0x79,0xf8,0x72,0xf6,0x38,0xfb,0x39,0xfe,0xf2,0xfb,0x9b,0xfa, +0xba,0xff,0xcb,0x3,0x1f,0x1,0x5a,0x0,0x70,0x5,0xd4,0x8, +0x4d,0x6,0x1c,0x2,0xd5,0x2,0x6d,0x6,0xa3,0x4,0xe1,0xff, +0x7e,0x1,0xde,0x8,0x48,0xb,0x6,0x4,0x6f,0x0,0x28,0x9, +0xd8,0xd,0x44,0x6,0x71,0x2,0x3d,0x8,0xf2,0xb,0xbc,0x6, +0xa0,0xff,0xac,0x2,0xa5,0xa,0xff,0x6,0x6b,0xff,0x96,0x5, +0x6f,0xd,0xdd,0x5,0x26,0xfe,0x95,0x7,0x1c,0x12,0x73,0xa, +0xa5,0xfd,0x2f,0x0,0x5a,0xa,0xd6,0x9,0x9e,0x2,0x91,0x2, +0x8e,0x7,0x79,0x8,0xef,0x4,0xc5,0x2,0xae,0x5,0x7c,0x7, +0xdc,0x2,0xbd,0x1,0x97,0x8,0xde,0xa,0x8,0x5,0xd0,0x0, +0x6d,0x2,0x95,0x5,0xd6,0x3,0x53,0xfe,0x69,0xfd,0x32,0x1, +0x1a,0x3,0xa8,0x2,0x48,0x3,0xa5,0x5,0x42,0x6,0xd7,0x3, +0xb5,0x3,0xe3,0x5,0xb7,0x3,0x45,0xff,0x46,0xfe,0x24,0xff, +0x1d,0x1,0x4d,0x4,0xdc,0x4,0xe1,0x3,0x72,0x4,0x56,0x3, +0x8,0x2,0x97,0x5,0x48,0x8,0x7a,0x5,0x3e,0x4,0xab,0x6, +0xd4,0x6,0x72,0x5,0xb3,0x6,0x1e,0x7,0xd,0x4,0x4c,0x4, +0x64,0x8,0x27,0x7,0x1,0x4,0x87,0x7,0x56,0xb,0xa3,0xb, +0x81,0xd,0x22,0xe,0xe,0xc,0xcc,0xb,0xc9,0xa,0xc5,0x7, +0x20,0x8,0x42,0xb,0x97,0xc,0x33,0xc,0x66,0xd,0xe5,0x10, +0x90,0x12,0x21,0x12,0xf3,0x13,0x49,0x15,0x4b,0x12,0xf0,0xe, +0x84,0xd,0x8a,0xd,0x0,0x10,0xd1,0x12,0xbe,0x14,0xb5,0x16, +0xd,0x15,0xed,0x10,0x58,0x13,0x97,0x19,0x7b,0x18,0x8a,0x13, +0xde,0x14,0x52,0x18,0xed,0x15,0xee,0x12,0x26,0x16,0xb2,0x18, +0xaf,0x13,0x7f,0x10,0xb4,0x16,0x6,0x1a,0xc4,0x12,0x99,0xf, +0xd6,0x18,0xb8,0x1f,0xd6,0x18,0x92,0xf,0xda,0x11,0xb8,0x15, +0x51,0xf,0x2b,0xf,0x10,0x1b,0x1d,0x18,0x53,0x8,0xda,0xc, +0xe1,0x1d,0x45,0x1a,0x79,0xa,0xe1,0xb,0xdd,0x17,0xe,0x15, +0xe,0xa,0x69,0xb,0x1,0x11,0xe8,0xe,0x8f,0xe,0x5e,0x12, +0xe1,0x10,0x26,0xc,0x44,0xb,0xf2,0xa,0x18,0x7,0xa4,0x6, +0x5c,0xc,0x27,0xc,0xbd,0x4,0x58,0x6,0x93,0x10,0x4,0x10, +0x56,0x3,0x8d,0xff,0x2f,0x9,0x72,0xb,0xf,0x2,0xb1,0xff, +0x61,0x4,0xe8,0x1,0x3,0xff,0x17,0x7,0x90,0xd,0xcf,0x6, +0xdd,0x0,0x8a,0x3,0x8a,0x1,0x72,0xfd,0x49,0x3,0x7a,0x6, +0x99,0xfe,0x55,0xfd,0xa8,0x8,0x65,0xe,0xb9,0x5,0x1,0xfd, +0x15,0xff,0xf8,0x2,0x80,0x2,0x32,0x2,0x3,0x2,0xb,0x2, +0xe6,0x3,0xc7,0x4,0x9b,0x4,0x5f,0x2,0x84,0xfd,0xfa,0xfd, +0xd6,0x1,0x53,0x0,0xf3,0x0,0x64,0x6,0xf5,0x3,0x24,0xfc, +0xec,0xfb,0xe1,0xff,0x3,0xfe,0xdf,0xf8,0xaa,0xf8,0x5e,0xfb, +0xb0,0xf9,0xfe,0xf6,0x9d,0xf9,0x6,0xfc,0x7c,0xf8,0xe2,0xf4, +0x10,0xf7,0xc8,0xfa,0x78,0xf7,0xfb,0xed,0x7b,0xec,0x59,0xf5, +0x23,0xf4,0x4f,0xe6,0x4b,0xe4,0xcb,0xed,0x1d,0xec,0x4c,0xe4, +0x46,0xe7,0x70,0xec,0xbe,0xe7,0x9c,0xe0,0x1,0xe0,0x23,0xe3, +0xbd,0xe3,0x41,0xdf,0x10,0xd8,0x66,0xd6,0xf5,0xdd,0x97,0xe1, +0x4f,0xd8,0xa2,0xd2,0x42,0xdb,0xc,0xe1,0x4,0xda,0x9,0xd3, +0x1c,0xd5,0xa7,0xda,0x63,0xda,0xca,0xd4,0x5e,0xd5,0x4e,0xdc, +0x5d,0xdb,0x20,0xd3,0x49,0xd2,0x8a,0xd9,0x61,0xdd,0x11,0xda, +0xc7,0xd5,0x2d,0xd7,0xde,0xdd,0x47,0xe1,0xc7,0xdc,0xa4,0xd9, +0x44,0xde,0x45,0xe1,0x76,0xde,0x6c,0xde,0x8d,0xe1,0x67,0xe2, +0xec,0xe3,0x46,0xe7,0x35,0xe7,0x1a,0xe5,0xe5,0xe6,0xe3,0xe9, +0xf5,0xe8,0x87,0xe9,0x44,0xef,0xa5,0xf0,0xfd,0xeb,0xb7,0xed, +0x5,0xf5,0xc2,0xf5,0xab,0xf1,0x54,0xf0,0x5a,0xf1,0x35,0xf4, +0x58,0xf7,0x10,0xf6,0xd7,0xf3,0x93,0xf8,0x89,0x0,0x7e,0x0, +0x71,0xf9,0x9d,0xf8,0x67,0xfe,0x4b,0xfd,0x1f,0xf7,0x5a,0xf9, +0x4,0x1,0x3,0x2,0xc5,0xfd,0xda,0xff,0xaa,0x8,0x6e,0x9, +0xd8,0xff,0x6f,0xfc,0x9f,0x1,0x44,0x2,0x90,0xfe,0xf0,0xff, +0xbd,0x4,0x2a,0x5,0x95,0x2,0xb7,0x3,0xe1,0x6,0xcc,0x6, +0x92,0x4,0x47,0x3,0xcc,0x3,0x48,0x4,0x1,0x3,0xf8,0x2, +0x6f,0x4,0x91,0x3,0x60,0x3,0x59,0x7,0x3b,0xa,0xd2,0x7, +0x16,0x4,0xbb,0x3,0x6b,0x4,0x23,0x3,0x4f,0x3,0x1b,0x5, +0xd5,0x3,0x27,0x2,0x86,0x5,0xa1,0xa,0x33,0xb,0x76,0x9, +0x61,0xa,0x32,0x9,0xe3,0x2,0x82,0xff,0x4b,0x0,0x83,0x0, +0x3e,0x3,0x57,0x8,0x91,0xa,0xfe,0x9,0x2b,0x8,0x9c,0x7, +0x90,0x9,0xcb,0x8,0xa3,0x4,0xb7,0x2,0xb3,0x3,0x10,0x5, +0x8a,0x5,0x6e,0x5,0x6,0x5,0x5c,0x3,0xb,0x4,0x9b,0x8, +0x4d,0x8,0xf7,0x2,0xde,0x2,0x1a,0x6,0xc7,0x6,0x99,0x7, +0x46,0x7,0x82,0x3,0xf8,0x1,0xb7,0x3,0xc0,0x2,0x8b,0xff, +0xd7,0xff,0x71,0x3,0xd3,0x4,0xfe,0x2,0x6,0x3,0x13,0x7, +0x1e,0xa,0x64,0x7,0xba,0x2,0x6a,0x3,0x50,0x6,0x1e,0x2, +0x47,0xfb,0xfe,0xfd,0xad,0x5,0xb4,0x5,0xce,0x2,0xe2,0x6, +0x2,0xb,0x56,0x7,0x76,0x3,0x8a,0x5,0x6,0x8,0x5e,0x6, +0x64,0x3,0x95,0x3,0x22,0x7,0xcd,0x9,0xc4,0x9,0xd5,0x9, +0xf5,0xa,0x54,0xa,0x29,0x8,0x3b,0x9,0xc7,0xc,0xd7,0xd, +0xf1,0xe,0xcd,0x10,0x54,0xe,0xe6,0xc,0x49,0x10,0x44,0xf, +0x87,0xb,0xd4,0xc,0xd7,0xd,0xc6,0xe,0xf9,0x15,0xe1,0x1a, +0x9c,0x15,0xf2,0x10,0xdb,0x16,0xd6,0x1d,0xbf,0x19,0xfb,0x10, +0xde,0xd,0x8c,0xf,0x48,0x14,0x8,0x19,0xe4,0x18,0xe1,0x18, +0x87,0x1d,0x43,0x20,0xdb,0x1d,0x7d,0x1a,0xef,0x18,0x2d,0x19, +0x7b,0x18,0xf9,0x14,0x79,0x14,0xb9,0x1a,0x19,0x1d,0x9d,0x17, +0xfd,0x19,0x2d,0x24,0x3b,0x21,0x56,0x13,0x48,0x10,0xd7,0x1a, +0xe3,0x21,0x31,0x1b,0x16,0x14,0x51,0x19,0xcd,0x1c,0xe,0x14, +0x68,0xc,0x1b,0xf,0x70,0x16,0xd7,0x17,0xf8,0x11,0xbb,0x11, +0xc4,0x18,0x8e,0x1a,0xbc,0x16,0x3d,0x13,0x16,0x12,0x80,0x13, +0xd1,0xf,0x8c,0x5,0xee,0x2,0x1f,0xc,0x32,0x13,0x6e,0x10, +0x10,0xd,0xea,0xe,0x2d,0xd,0x83,0x8,0x4,0xb,0xa8,0xc, +0x9a,0x5,0x25,0x3,0x8b,0xa,0x54,0xd,0x57,0x5,0xf3,0xff, +0xc2,0x4,0xaa,0x6,0x89,0x0,0xd9,0xff,0xed,0x4,0x63,0x3, +0x46,0xfd,0xa9,0xfe,0x83,0x8,0x37,0xc,0xcd,0x2,0x9a,0xfa, +0x56,0xfc,0xc3,0x0,0xc7,0x1,0x94,0xfb,0x4c,0xf4,0x3a,0xfa, +0xc0,0x4,0x6e,0x0,0x5e,0xf6,0x8f,0xfb,0x47,0xa,0x81,0xa, +0x72,0xfb,0x42,0xf5,0x76,0xfb,0xaa,0xfa,0x80,0xf1,0xb,0xf1, +0xcb,0xfd,0x6a,0x5,0xd0,0xfb,0x84,0xf3,0x2f,0xf9,0x1a,0xfe, +0x97,0xfc,0x92,0xf8,0x34,0xf1,0x7d,0xf0,0xf2,0xf8,0xf5,0xf8, +0x3a,0xef,0x55,0xee,0x1d,0xf9,0xc2,0xfb,0xf8,0xed,0xcb,0xe5, +0x3c,0xed,0x68,0xef,0x2b,0xe9,0xb8,0xec,0x1e,0xf8,0x54,0xfa, +0x9b,0xee,0xed,0xe3,0x2f,0xe9,0x2b,0xf1,0x18,0xe8,0xd5,0xd9, +0x69,0xda,0xa1,0xe2,0xea,0xe3,0x7d,0xe2,0x1c,0xe6,0xdf,0xea, +0x94,0xeb,0xfc,0xe6,0x1e,0xe0,0xbf,0xdd,0x3d,0xdd,0x50,0xd8, +0xa9,0xd6,0x9f,0xdd,0x18,0xe2,0x97,0xdd,0x6e,0xda,0x58,0xdf, +0xd3,0xe0,0x6c,0xda,0xa7,0xda,0x2c,0xe0,0x81,0xdd,0x76,0xda, +0x70,0xdd,0xa7,0xde,0x33,0xe1,0x8c,0xe4,0x13,0xde,0xe4,0xd5, +0x4,0xd8,0x34,0xdc,0x84,0xdb,0x98,0xdc,0x23,0xe3,0x24,0xe9, +0xbe,0xe9,0xc0,0xe7,0x9c,0xe5,0x6e,0xe3,0x19,0xe3,0xba,0xe2, +0xba,0xe0,0x3d,0xe1,0x93,0xe2,0x97,0xe2,0x5e,0xe8,0xae,0xf1, +0xe9,0xf2,0xce,0xed,0xd8,0xeb,0xc3,0xed,0x70,0xee,0xb9,0xeb, +0x54,0xe9,0x88,0xeb,0x24,0xf1,0x1c,0xf4,0xc1,0xf0,0xc8,0xec, +0x2,0xee,0x6c,0xf0,0xb6,0xf1,0xa0,0xf4,0x13,0xf7,0xdd,0xf6, +0xe1,0xf5,0x94,0xf5,0x73,0xf7,0x98,0xfa,0x46,0xfa,0x5f,0xf5, +0x38,0xf1,0x55,0xf2,0xe3,0xf5,0x8a,0xf7,0xf6,0xf8,0x3f,0xfb, +0xb5,0xfc,0xc1,0xfe,0xe1,0xff,0xab,0xfb,0xae,0xf7,0xad,0xfa, +0xc4,0xfc,0x87,0xf8,0x46,0xf8,0x7e,0xfd,0x99,0xfb,0x53,0xf5, +0x33,0xf9,0xa4,0x3,0xd7,0x4,0x6b,0xfc,0xc1,0xf8,0xbc,0xfd, +0x5e,0x1,0xdb,0x0,0xd0,0xff,0xec,0xfc,0x8f,0xfa,0x6d,0xfd, +0x7a,0x0,0x3d,0xfe,0x29,0xfd,0x48,0x4,0xb9,0xa,0xde,0x5, +0xf,0x0,0x6a,0x3,0xc2,0x5,0x2b,0x3,0xf9,0x3,0xca,0x5, +0x4a,0x4,0xfa,0x3,0x14,0x4,0x1,0x2,0x20,0x4,0x5d,0xa, +0xc7,0x9,0x76,0x3,0xfd,0x3,0xa7,0xb,0x88,0xe,0xf8,0x7, +0x70,0x3,0xcb,0xa,0x70,0x10,0x66,0x7,0x60,0xff,0xec,0x4, +0x53,0xa,0x51,0x6,0xf3,0x3,0x68,0xb,0x9a,0x11,0x7d,0xc, +0xa4,0x7,0xb7,0xb,0xef,0xe,0x46,0xd,0xa8,0x9,0xf0,0x4, +0xce,0x5,0x6a,0xb,0x86,0xb,0x8f,0xa,0xb0,0xe,0xb0,0xf, +0xf4,0xb,0xf8,0x9,0x93,0x9,0xa1,0x9,0x69,0xa,0xd5,0xa, +0xb0,0xb,0x8e,0xd,0x79,0xf,0x8c,0xf,0xe7,0xb,0x3,0xa, +0x3f,0xe,0xdd,0xe,0x91,0x7,0xed,0x3,0xe3,0x7,0x95,0xc, +0x5e,0xf,0xd6,0x10,0x53,0x12,0xb6,0x13,0x3e,0x10,0xa1,0x9, +0x92,0x9,0xf2,0xe,0xfa,0xe,0xf2,0x9,0xe0,0x9,0x9d,0x10, +0x19,0x16,0x4e,0x14,0xa2,0xf,0x60,0x12,0xe9,0x19,0xa5,0x16, +0x2a,0xb,0x62,0xb,0xf2,0x14,0x47,0x14,0x12,0xd,0x7b,0x11, +0x5b,0x1c,0x62,0x1b,0xd2,0x12,0x8b,0x12,0x36,0x17,0x4f,0x17, +0x3,0x16,0x55,0x16,0x87,0x17,0xd5,0x19,0x16,0x19,0x6f,0x15, +0x89,0x16,0xf4,0x19,0x5d,0x18,0x17,0x16,0x7f,0x17,0xb,0x18, +0x8a,0x17,0x15,0x1b,0x1,0x20,0x98,0x1f,0xf3,0x1a,0x68,0x17, +0x83,0x16,0xb0,0x15,0x98,0x13,0xaf,0x14,0xd2,0x19,0xa6,0x1a, +0x5f,0x16,0x33,0x16,0x4b,0x1a,0x51,0x1a,0x86,0x15,0x3d,0x13, +0x97,0x14,0x35,0x13,0x12,0x10,0xae,0xf,0x55,0x10,0x88,0x13, +0x3d,0x18,0xc4,0x14,0xc6,0xc,0xbc,0xc,0x6,0x10,0x5e,0xd, +0xeb,0x9,0xa9,0xb,0x2d,0xe,0xbe,0xe,0xcb,0xe,0xe1,0xa, +0xa,0x7,0x91,0xc,0xb5,0xf,0x45,0x6,0x64,0x1,0xa4,0x7, +0x22,0x8,0x96,0xff,0x76,0xfe,0xc5,0xa,0xa5,0x11,0xa4,0x7, +0x62,0xff,0x70,0x2,0x7d,0x3,0xd9,0x0,0x43,0x0,0x3,0xff, +0xe6,0xfd,0x43,0x0,0x4a,0x3,0x88,0x1,0xf6,0xfc,0x14,0xff, +0x3a,0x3,0x50,0xfc,0x28,0xf5,0x1,0xfb,0x54,0xfe,0x13,0xf6, +0x46,0xf4,0x68,0xfe,0x51,0x2,0xa0,0xf9,0x46,0xf1,0xf3,0xf0, +0x91,0xf4,0x4a,0xf7,0xc1,0xf6,0xe7,0xf2,0x3f,0xf1,0x1b,0xf6, +0x35,0xf9,0x72,0xf3,0x94,0xef,0x9d,0xf4,0xaf,0xf6,0x3,0xf0, +0x8e,0xea,0x6b,0xec,0x8f,0xef,0xab,0xec,0x3d,0xe9,0x4,0xef, +0x63,0xf6,0xc1,0xf2,0x1b,0xeb,0x2b,0xec,0x7e,0xf1,0x3d,0xef, +0xca,0xe7,0x3,0xe6,0xb4,0xe7,0x38,0xe5,0x9a,0xe4,0xd2,0xea, +0xca,0xed,0xc,0xe9,0xc8,0xe7,0x71,0xee,0xe2,0xef,0xf5,0xe5, +0x6,0xe2,0x94,0xeb,0x2f,0xec,0xe6,0xdf,0xdc,0xe1,0xef,0xed, +0xd,0xe8,0xf8,0xdc,0x96,0xe5,0x15,0xf1,0xe2,0xea,0x3a,0xe1, +0x39,0xe5,0x82,0xee,0xf4,0xee,0xb6,0xe9,0x7,0xe8,0x7a,0xe8, +0xa1,0xe5,0x34,0xe0,0xfc,0xde,0x6f,0xe5,0xac,0xe9,0x2f,0xe5, +0xe1,0xe4,0x17,0xee,0x7b,0xf1,0x66,0xeb,0xf9,0xe8,0xe7,0xeb, +0x8b,0xeb,0x78,0xe6,0x5c,0xe2,0x59,0xe4,0x83,0xe9,0x8e,0xea, +0x68,0xea,0xc4,0xee,0xf,0xf1,0x11,0xed,0xb4,0xea,0xe1,0xed, +0x13,0xf2,0x6f,0xf2,0x4e,0xee,0xe5,0xed,0x9b,0xf6,0xa9,0xfb, +0x3d,0xf3,0xae,0xeb,0xf2,0xf1,0xce,0xf9,0x65,0xf5,0x8e,0xef, +0xeb,0xf5,0x45,0xfc,0x23,0xf8,0x13,0xfa,0x1b,0x6,0x91,0x6, +0x2f,0xfb,0x2e,0xf8,0xa0,0xfd,0x73,0xfe,0x9e,0xf9,0x93,0xf7, +0x15,0xfc,0x30,0x1,0xd1,0x2,0xd1,0x4,0xa8,0x7,0x37,0x8, +0xea,0x7,0x85,0x8,0x24,0x8,0x81,0x4,0x2a,0xff,0xa4,0xfe, +0x40,0x5,0x19,0xa,0x70,0x7,0x38,0x6,0xd3,0xb,0xad,0xd, +0xa2,0x7,0x25,0x6,0x77,0xc,0x38,0xd,0x17,0x6,0xe2,0x4, +0x11,0xa,0xbe,0x7,0x4b,0x0,0x3a,0x0,0x3a,0x4,0xb2,0x5, +0xf6,0x6,0xe4,0x5,0xf,0x1,0xfb,0x0,0xd4,0x6,0x35,0x7, +0x9b,0x0,0x56,0xff,0x17,0x5,0xd7,0x5,0x51,0x0,0x4e,0xfe, +0x17,0x0,0xb0,0xfe,0x2a,0xfa,0x33,0xf9,0xc,0xfe,0x28,0x1, +0x3,0xfe,0x18,0xfd,0x66,0x2,0xd7,0x3,0x13,0xfd,0x3f,0xf6, +0xc2,0xf4,0x36,0xf6,0x9b,0xf6,0xef,0xf5,0x2c,0xf6,0x98,0xf5, +0xd3,0xf4,0x7b,0xf7,0x8f,0xf9,0x82,0xf7,0x30,0xf5,0xb2,0xf3, +0x76,0xf2,0xb7,0xf0,0x52,0xee,0xc,0xf2,0x67,0xf8,0x40,0xf4, +0xc,0xee,0xf0,0xf1,0xc3,0xf4,0xf4,0xef,0xfc,0xec,0x28,0xef, +0x85,0xf1,0x5a,0xf2,0xf0,0xf3,0x99,0xf4,0xc4,0xf2,0x8f,0xf4, +0x4c,0xf8,0x9b,0xf4,0xa4,0xee,0xa5,0xee,0x8e,0xef,0x78,0xee, +0x9a,0xef,0xe2,0xf2,0xf7,0xf4,0xff,0xf5,0x21,0xf8,0x5e,0xfa, +0xae,0xf9,0xb4,0xf5,0xa3,0xf2,0x41,0xf4,0x52,0xf6,0x8a,0xf4, +0xa,0xf3,0x13,0xf4,0xe6,0xf6,0xfb,0xfb,0xcf,0xfe,0x6e,0xfd, +0x1,0xfc,0x21,0xfa,0x71,0xf9,0xd0,0xfd,0xe6,0x0,0x38,0xfe, +0x1c,0xfd,0x42,0x1,0x88,0x3,0xf4,0xff,0xc7,0xfe,0xb4,0x3, +0x98,0x4,0x35,0x0,0x95,0x0,0x3f,0x5,0x39,0x8,0x56,0x9, +0x70,0x9,0x3d,0xa,0x6e,0xc,0x5d,0xc,0xe4,0x8,0x7e,0x5, +0xc6,0x4,0x6f,0x6,0x6b,0x8,0x6,0xa,0x7e,0xc,0x66,0xf, +0x98,0x10,0x65,0x10,0xd,0x11,0xaf,0x10,0x67,0xc,0xf2,0x8, +0x69,0xa,0x44,0xc,0x92,0xc,0xad,0xd,0x16,0xe,0x2e,0xe, +0x6,0x11,0x72,0x13,0x21,0x11,0x1b,0xe,0x75,0x10,0xd9,0x13, +0x9,0x10,0x14,0xb,0x8d,0xe,0x66,0x12,0xeb,0xe,0xb8,0xd, +0x60,0x12,0x4d,0x12,0x46,0xd,0x23,0xe,0xef,0x13,0x7b,0x14, +0x55,0x10,0xb9,0xf,0x67,0x12,0x90,0x12,0x96,0x11,0xe0,0x13, +0x7a,0x15,0xc,0x12,0xd0,0xf,0xd0,0x12,0x8d,0x13,0xdd,0xe, +0xee,0xd,0x18,0x15,0xb6,0x19,0xe8,0x15,0x87,0x15,0x24,0x1c, +0xb,0x1b,0x3a,0x12,0xd4,0x11,0xa1,0x17,0x44,0x15,0x67,0xe, +0x5c,0x10,0xca,0x18,0xc3,0x1b,0x4f,0x19,0xc7,0x19,0x51,0x1c, +0xfa,0x1a,0xbb,0x18,0xa5,0x19,0x65,0x18,0x6e,0x15,0x61,0x19, +0xc5,0x1d,0x6d,0x18,0x36,0x14,0x42,0x19,0xbe,0x1b,0xf2,0x16, +0x77,0x16,0xaa,0x1d,0x17,0x1f,0x3b,0x17,0xde,0x16,0xde,0x1f, +0xca,0x1f,0xff,0x16,0xd4,0x14,0xb8,0x18,0x9e,0x18,0x63,0x13, +0x1f,0x11,0xd3,0x15,0xc9,0x19,0xdc,0x17,0xa7,0x15,0xac,0x16, +0xd4,0x16,0x2,0x13,0xf7,0xf,0xee,0x12,0xe9,0x15,0xb2,0x11, +0x90,0xb,0x48,0xa,0x16,0xb,0xe7,0x9,0x46,0x9,0x28,0xc, +0x93,0xe,0x0,0xd,0xbb,0xb,0x2d,0xd,0x24,0xc,0xcf,0x6, +0x5,0x3,0x83,0x3,0x77,0x3,0xc2,0x0,0x81,0x0,0x7e,0x3, +0x6c,0x3,0xff,0x0,0x4,0x3,0x5c,0x6,0xc9,0x2,0x3a,0xfb, +0x55,0xf8,0x4f,0xfa,0x5,0xfc,0xcb,0xfb,0xee,0xf9,0x80,0xf8, +0x0,0xfc,0x92,0xff,0x5d,0xf8,0xdf,0xee,0x4c,0xf4,0x1e,0xff, +0x16,0xfa,0xe2,0xed,0x35,0xf4,0x42,0x6,0x1a,0x4,0xa5,0xf0, +0xed,0xed,0x5d,0xfb,0xde,0xf6,0x29,0xe0,0xe8,0xdf,0x12,0xfc, +0x63,0x3,0x79,0xeb,0xbb,0xe9,0x30,0x5,0xc1,0x9,0x56,0xf3, +0x4c,0xeb,0x4b,0xf5,0x4a,0xf6,0x5a,0xeb,0x39,0xe7,0x1e,0xef, +0x2,0xf8,0x9b,0xf9,0xfc,0xf3,0x2f,0xf0,0x8e,0xf5,0x62,0xf9, +0x3,0xf2,0x49,0xeb,0x82,0xef,0x89,0xf6,0x7,0xf6,0x5d,0xf0, +0xfa,0xef,0xa7,0xf5,0xc3,0xf5,0x92,0xee,0x85,0xec,0x1f,0xf1, +0xa8,0xf0,0x10,0xec,0xf1,0xed,0x31,0xf2,0x1e,0xf1,0x18,0xf2, +0xdd,0xf6,0x21,0xf2,0xfd,0xe5,0x10,0xe5,0xb4,0xec,0x3e,0xea, +0x51,0xe3,0x7f,0xe9,0x16,0xf4,0x33,0xf1,0xbe,0xe7,0xf9,0xe8, +0xf9,0xf0,0x4d,0xed,0xb5,0xdf,0xf4,0xdd,0x91,0xe9,0xb7,0xec, +0x52,0xe3,0xf3,0xe0,0xa4,0xea,0xca,0xec,0xf,0xe2,0xa,0xdf, +0xb3,0xe6,0x7e,0xe6,0x4c,0xe0,0x3d,0xe0,0xd5,0xe2,0xcc,0xe5, +0x8f,0xe8,0x69,0xe4,0x4f,0xdf,0x4c,0xe3,0x53,0xe7,0x2f,0xe2, +0xd4,0xdd,0xe8,0xe2,0xc7,0xe6,0x18,0xe1,0xab,0xde,0xb5,0xe6, +0xe,0xeb,0x2b,0xe5,0xf6,0xdf,0x50,0xe2,0xa9,0xe6,0xb4,0xe5, +0xf6,0xe2,0x58,0xe5,0x77,0xe8,0x3,0xe7,0xc0,0xe4,0xf6,0xe4, +0xdf,0xe6,0xad,0xe8,0x1f,0xe9,0x5e,0xe8,0x76,0xe7,0x5,0xea, +0x1a,0xef,0x63,0xed,0xb9,0xe6,0x9f,0xe8,0x88,0xf0,0xd8,0xef, +0x28,0xe8,0x3f,0xe8,0xf6,0xf0,0xe2,0xf2,0xc6,0xeb,0x4d,0xec, +0x43,0xf6,0xb1,0xf7,0x7b,0xef,0x9a,0xef,0xc,0xf9,0xb5,0xfb, +0x56,0xf5,0x1b,0xf2,0x4d,0xf5,0xc4,0xf5,0xf1,0xf1,0xa3,0xf4, +0xab,0xfb,0xa7,0xfa,0xcf,0xf8,0xe3,0xfd,0xe1,0xfd,0x48,0xf9, +0x1e,0xfc,0xf,0xff,0x69,0xf9,0x22,0xf5,0x33,0xfa,0xfc,0xff, +0xcb,0xfd,0x3c,0xfc,0x7d,0x2,0x76,0x5,0xb,0x1,0x9e,0xfe, +0x86,0xfe,0xe3,0xfe,0xd9,0x2,0xe,0x6,0x86,0x4,0x9c,0x3, +0x58,0x6,0xc4,0x8,0xf7,0x6,0xe5,0x3,0x67,0x6,0x69,0xb, +0x97,0x9,0xa7,0x4,0xbb,0x6,0xa4,0xb,0x74,0x9,0xec,0x5, +0x77,0xb,0xe,0x11,0xd,0xb,0xde,0x4,0x41,0x9,0xb4,0xd, +0xf,0xb,0xa6,0x7,0x34,0x7,0x7f,0x7,0x51,0x5,0xae,0x2, +0xf4,0x5,0x11,0xc,0x5a,0xb,0x57,0x5,0xad,0x4,0xb8,0x9, +0x1f,0x8,0xc0,0xff,0xa,0xff,0x6d,0x4,0xab,0x4,0x4e,0x3, +0x2,0x4,0xa3,0x3,0x62,0x2,0x38,0xfe,0x56,0xf9,0x86,0xfc, +0x3f,0x1,0x8c,0xfa,0xeb,0xf1,0xcc,0xf7,0xc,0x3,0x4e,0x0, +0x49,0xf7,0xc,0xfa,0x11,0xfe,0xc0,0xf3,0x87,0xe8,0x32,0xeb, +0x1,0xf2,0xfc,0xf0,0xfc,0xec,0x53,0xef,0x44,0xf5,0xfc,0xf4, +0x7e,0xee,0x10,0xeb,0x12,0xed,0x70,0xed,0xca,0xe8,0xda,0xe4, +0x96,0xe6,0xf5,0xea,0x4d,0xed,0x29,0xed,0x5d,0xec,0x2,0xed, +0x6f,0xed,0x17,0xe9,0xe9,0xe4,0x73,0xe9,0x2b,0xef,0x73,0xec, +0x45,0xea,0xca,0xef,0x9d,0xf3,0x40,0xf1,0x77,0xef,0x16,0xf0, +0x51,0xf1,0x8b,0xf3,0x9c,0xf2,0x42,0xed,0xba,0xed,0x88,0xf6, +0xa1,0xfb,0x78,0xfa,0xf,0xfc,0xf9,0xff,0x9a,0xff,0xb3,0xfc, +0xbb,0xfb,0x0,0xfd,0xe1,0xff,0x36,0x1,0x6,0xff,0x4e,0x0, +0xdb,0x7,0x31,0xc,0x80,0xa,0xc8,0xa,0xe4,0xe,0x58,0x10, +0x35,0xc,0xec,0x8,0x9a,0xc,0x59,0x12,0x7e,0x13,0x69,0x12, +0x5d,0x14,0x8f,0x18,0xd6,0x18,0x16,0x15,0xeb,0x15,0x62,0x1c, +0xab,0x1e,0x9d,0x19,0x8c,0x16,0x30,0x1c,0xfc,0x21,0xba,0x1e, +0x63,0x1b,0xc8,0x20,0xb7,0x24,0x8e,0x1f,0xf6,0x1a,0x5,0x1e, +0xae,0x21,0x8b,0x1f,0x7c,0x1d,0xef,0x21,0x5a,0x26,0xc0,0x23, +0x41,0x21,0xe9,0x24,0x47,0x27,0x4,0x24,0x1f,0x21,0xb4,0x20, +0xe7,0x1f,0x2d,0x1f,0x28,0x1f,0x99,0x1e,0xdb,0x1e,0xd9,0x20, +0x6a,0x21,0xe1,0x20,0x5d,0x23,0xf7,0x25,0x74,0x24,0x35,0x23, +0x21,0x24,0x33,0x22,0x40,0x1d,0x3d,0x1a,0xc7,0x1a,0x4f,0x1b, +0x5b,0x19,0xc6,0x18,0x47,0x1c,0x9d,0x1f,0xea,0x1f,0xf9,0x1f, +0x9b,0x21,0x4c,0x21,0xd2,0x1c,0x81,0x19,0x4c,0x1a,0x9e,0x19, +0xa0,0x15,0x5,0x14,0x71,0x17,0x49,0x1b,0xb,0x1a,0xd,0x16, +0x5d,0x17,0xe1,0x1d,0xcf,0x1f,0x7f,0x1b,0x1d,0x1b,0x57,0x1f, +0xd,0x1e,0xd2,0x18,0x55,0x18,0xd3,0x19,0x43,0x17,0xbf,0x13, +0x99,0x15,0xcd,0x1a,0x1f,0x1b,0x51,0x18,0x5,0x1c,0x2e,0x23, +0x77,0x21,0xf7,0x17,0xfa,0x15,0x3e,0x1e,0x2d,0x1f,0x98,0x15, +0x9c,0x14,0x5c,0x1b,0xc4,0x16,0xe4,0xd,0xc2,0x12,0x4c,0x19, +0x62,0x12,0xc2,0xe,0x39,0x1a,0xa2,0x20,0x5a,0x18,0xe6,0x13, +0x6c,0x19,0xde,0x18,0xc0,0xd,0xc,0x7,0xfa,0xa,0x87,0xc, +0xf3,0x5,0xc,0x4,0xac,0xb,0xa4,0x10,0x20,0xe,0xed,0xc, +0x7f,0xf,0x2,0xf,0xf,0xb,0x36,0x8,0x20,0x5,0xa4,0x1, +0x77,0x1,0xc4,0xff,0xc,0xf8,0xc9,0xf5,0x9f,0xfe,0xe7,0x1, +0x41,0xf9,0xe1,0xf7,0x5c,0x3,0x68,0x6,0xfc,0xfa,0xdc,0xf5, +0xa3,0xfc,0xa4,0xfb,0xed,0xed,0x69,0xe7,0xa4,0xef,0xf3,0xf4, +0x1e,0xee,0xb5,0xe9,0xb7,0xef,0xf2,0xf4,0x8b,0xf4,0xf7,0xf3, +0x1c,0xf2,0xa0,0xed,0x3d,0xed,0xe2,0xf1,0x35,0xf0,0xd4,0xe5, +0xdb,0xe3,0x30,0xee,0x27,0xf0,0x5b,0xe7,0xa7,0xe7,0xa4,0xf0, +0xf0,0xf1,0x95,0xeb,0xcb,0xea,0x3,0xf2,0xcb,0xf3,0x38,0xeb, +0x6a,0xe7,0xf2,0xef,0x7d,0xf6,0xe4,0xef,0x54,0xe7,0x3d,0xeb, +0xa1,0xf2,0xd7,0xed,0xcc,0xe4,0x61,0xe6,0x66,0xee,0xd9,0xf1, +0x99,0xf1,0xe6,0xf4,0xfa,0xf9,0x80,0xf9,0xef,0xf5,0x6c,0xf4, +0x10,0xf1,0xcf,0xea,0x72,0xe7,0x30,0xe6,0xf8,0xe3,0x26,0xe7, +0xbb,0xf2,0xdd,0xfa,0x5e,0xf8,0x1f,0xf6,0xd5,0xfb,0xc7,0xfe, +0xeb,0xf4,0x77,0xe7,0x81,0xe3,0xe7,0xe4,0x96,0xe3,0x50,0xe4, +0x41,0xe9,0xc,0xeb,0x1f,0xeb,0xfb,0xf0,0x5a,0xf6,0xc,0xf0, +0x9e,0xe5,0xac,0xe5,0x47,0xe9,0xa,0xe4,0xbf,0xe0,0xf1,0xe7, +0x9d,0xea,0x38,0xe3,0x3c,0xe0,0x2a,0xe5,0x88,0xe6,0xdf,0xdf, +0xd2,0xda,0xaf,0xdf,0xe4,0xe5,0x3,0xe4,0x7a,0xe1,0xb6,0xe3, +0xf9,0xe4,0x51,0xe4,0x5a,0xe3,0xca,0xdf,0x41,0xdb,0xe5,0xd9, +0x4b,0xdb,0x7b,0xdb,0xa7,0xd9,0x37,0xdc,0x80,0xe4,0x17,0xe7, +0xfb,0xe0,0x76,0xdf,0x64,0xe5,0xe4,0xe5,0x5d,0xde,0xde,0xd9, +0x26,0xdd,0xa7,0xe1,0x59,0xe1,0x88,0xdf,0x5c,0xe2,0xd7,0xe7, +0xd,0xea,0x22,0xe8,0xd3,0xe6,0x9d,0xea,0xd4,0xed,0xa9,0xe9, +0x93,0xe7,0x7a,0xee,0xf2,0xf2,0x50,0xf0,0xc3,0xef,0x1a,0xf4, +0xf5,0xf7,0x6e,0xf7,0xa,0xf5,0xaf,0xf5,0xf9,0xf7,0xd8,0xf9, +0xcc,0xfc,0x5d,0xfe,0xe2,0xfd,0xee,0x0,0x1c,0x6,0xe,0x6, +0xc6,0x2,0xad,0x3,0xc8,0x5,0xe5,0x1,0x6e,0xfe,0xc4,0x3, +0x75,0x8,0xc,0x5,0x3a,0x5,0x63,0xd,0xa0,0x10,0x45,0xc, +0x7c,0xa,0x38,0xc,0xc2,0xa,0x3,0x6,0x7c,0x3,0x2a,0x5, +0xf6,0x6,0x5b,0x6,0xf9,0x6,0x36,0xa,0x25,0xb,0x48,0x8, +0x25,0x7,0x1b,0x9,0xa5,0x7,0x94,0x2,0x67,0x2,0xb0,0x5, +0x45,0x3,0xfa,0xfe,0x90,0x0,0xb4,0x1,0xee,0xfc,0x78,0xf9, +0x34,0xfa,0xf3,0xf8,0x10,0xf6,0x16,0xf7,0x82,0xf9,0x5,0xf8, +0xb2,0xf5,0xb9,0xf6,0xc,0xf7,0x7e,0xf2,0xf9,0xec,0x9,0xeb, +0x6e,0xea,0xb7,0xe7,0xd6,0xe4,0x54,0xe5,0x22,0xe8,0x9b,0xe9, +0xef,0xe8,0x36,0xe8,0x30,0xe8,0xde,0xe6,0xbe,0xe3,0x12,0xe1, +0x92,0xdf,0x94,0xde,0xe2,0xdd,0x16,0xdd,0x9f,0xdd,0x2,0xe0, +0x83,0xe0,0x53,0xdf,0x58,0xe0,0x47,0xe1,0xbd,0xdf,0x12,0xdf, +0xe2,0xdf,0xd4,0xdf,0xa6,0xdf,0x60,0xe0,0x9e,0xe0,0xd5,0xdf, +0xe7,0xdf,0xd3,0xe0,0xf1,0xdf,0x0,0xdf,0xd4,0xe1,0xfa,0xe4, +0xcf,0xe4,0x8f,0xe5,0xd1,0xe8,0x65,0xea,0x4f,0xea,0x79,0xea, +0x53,0xea,0xef,0xea,0xdd,0xeb,0x84,0xea,0xcb,0xe9,0xb,0xed, +0x9d,0xf0,0xe6,0xf1,0x28,0xf4,0xb7,0xf8,0xc9,0xfa,0x7f,0xf8, +0x6e,0xf8,0x2c,0xfc,0x31,0xfc,0xfa,0xf8,0x92,0xf9,0xa6,0xfc, +0x76,0xfe,0x2,0x0,0xa,0x2,0xbb,0x4,0xd1,0x7,0x54,0x9, +0x52,0x9,0x13,0xa,0x10,0xc,0x98,0xd,0xbe,0xd,0xf6,0xd, +0x43,0xf,0x6d,0x10,0x3,0x11,0x64,0x11,0xc8,0x11,0xcc,0x13, +0xc,0x17,0x5f,0x18,0xb5,0x18,0xd0,0x1a,0x86,0x1c,0x2b,0x1c, +0x8e,0x1c,0x55,0x1e,0x84,0x1e,0x92,0x1c,0x45,0x1b,0x11,0x1c, +0x9c,0x1d,0x2f,0x1e,0x1d,0x1e,0x97,0x1f,0x6a,0x22,0x44,0x23, +0x75,0x22,0xa8,0x23,0x11,0x26,0xe3,0x25,0x2d,0x23,0x7c,0x21, +0xf6,0x21,0xb7,0x21,0xf0,0x1f,0x37,0x1f,0xf3,0x1f,0x38,0x21, +0x2b,0x22,0xf4,0x20,0xc9,0x1e,0xfa,0x1d,0x90,0x1c,0x88,0x19, +0xa7,0x17,0xc2,0x17,0x72,0x17,0xdc,0x15,0x45,0x16,0x93,0x19, +0x6d,0x1a,0xdf,0x16,0x55,0x13,0x1a,0x12,0xa8,0x12,0xdb,0x13, +0xe9,0x13,0xf,0x14,0x67,0x16,0xdc,0x17,0x50,0x15,0xee,0x11, +0x65,0x11,0x94,0x11,0xef,0xf,0xf6,0xe,0x62,0x10,0xd3,0x11, +0xb2,0x12,0x44,0x14,0x80,0x15,0x62,0x15,0x29,0x14,0x99,0x11, +0xdf,0xe,0x59,0xe,0x98,0xf,0x59,0x10,0xe1,0x10,0xd9,0x12, +0xe3,0x14,0xe3,0x14,0x4d,0x14,0x5d,0x14,0xac,0x13,0xc,0x12, +0x6b,0x10,0xc0,0xf,0x1d,0x11,0x58,0x12,0x79,0x11,0x3a,0x12, +0x27,0x16,0xbf,0x17,0xbb,0x14,0x3b,0x12,0xab,0x12,0x1f,0x12, +0x6d,0x10,0x6,0x12,0x6,0x15,0xe3,0x14,0xa8,0x13,0xe6,0x13, +0x92,0x14,0x4f,0x14,0xec,0x11,0x8e,0xf,0xd3,0x10,0xd4,0x12, +0x5,0x12,0xd9,0x11,0x8,0x14,0x4f,0x14,0xd6,0x11,0x10,0x11, +0xdb,0x11,0xb7,0xf,0xf6,0xc,0xbf,0xe,0x58,0x11,0x93,0x10, +0x33,0x10,0xfb,0x10,0x8,0xf,0xd6,0xc,0x53,0xe,0x51,0xf, +0x9d,0xc,0x88,0xb,0x88,0xe,0x46,0xf,0xfe,0xa,0x24,0x8, +0x9e,0xa,0xe1,0xc,0xe7,0x9,0x9c,0x6,0x55,0x9,0xc3,0xd, +0xc9,0xb,0xfb,0x5,0xd3,0x5,0xad,0xa,0xdf,0xa,0x92,0x6, +0x60,0x5,0xe1,0x5,0x48,0x5,0x73,0x6,0x8,0x7,0x88,0x4, +0x63,0x3,0xdb,0x3,0x6b,0x3,0xc,0x4,0xb,0x5,0x74,0x3, +0x81,0x1,0x5a,0x2,0x69,0x4,0xe5,0x4,0x9a,0x3,0x77,0x0, +0x55,0xfd,0x7e,0xff,0xb3,0x3,0x4c,0x1,0x1b,0xfe,0x85,0x1, +0xa,0x3,0x23,0x0,0x1b,0x1,0x41,0x2,0x2d,0xfe,0x48,0xfd, +0xc2,0x1,0xf5,0x1,0x5a,0xfe,0xae,0xfe,0x61,0x0,0x50,0xff, +0x1e,0xff,0xce,0xff,0x24,0xfe,0xa9,0xfd,0x97,0xff,0x67,0xfe, +0x5d,0xfc,0x71,0xff,0xf8,0x1,0x9,0xff,0x9e,0xfd,0xe,0x0, +0xb1,0x0,0xa5,0xff,0x8f,0xfe,0xaa,0xfb,0xf,0xfa,0xbe,0xfc, +0x9e,0xfe,0xd8,0xfc,0x57,0xfc,0x84,0xff,0x10,0x2,0x65,0x0, +0x54,0xfd,0x34,0xfd,0xc2,0xfd,0x3b,0xfa,0x51,0xf6,0x7a,0xf9, +0xa6,0xfe,0x53,0xfa,0x72,0xf3,0x11,0xf9,0x9c,0x1,0x17,0xfd, +0x24,0xf6,0x40,0xf9,0x16,0xfd,0xe8,0xf9,0xca,0xf4,0x90,0xf2, +0xd6,0xf3,0x91,0xf5,0x0,0xf4,0x1b,0xf2,0xf3,0xf4,0x7c,0xf8, +0x3c,0xf6,0xaf,0xf2,0xc7,0xf3,0x56,0xf5,0x77,0xf4,0x44,0xf2, +0x1c,0xed,0xf8,0xea,0xfc,0xf2,0x86,0xf8,0xac,0xf0,0x5f,0xeb, +0x46,0xf3,0xf7,0xf5,0xbe,0xea,0x56,0xe6,0xdb,0xef,0xb8,0xf2, +0x9d,0xe9,0xc1,0xe6,0xe3,0xee,0xc7,0xf3,0x31,0xf0,0x62,0xed, +0xc7,0xee,0x86,0xee,0x20,0xec,0x52,0xea,0xf8,0xe6,0xed,0xe3, +0x3f,0xe7,0xf0,0xec,0x3b,0xec,0xf9,0xe8,0xc3,0xec,0xf4,0xf2, +0x84,0xef,0xb2,0xe6,0xc2,0xe6,0x95,0xec,0x74,0xe9,0xa2,0xe0, +0xfc,0xe1,0xad,0xeb,0xa6,0xed,0x53,0xe7,0xf1,0xe6,0xe4,0xec, +0xa2,0xeb,0xe1,0xe3,0xc2,0xe2,0x16,0xe8,0xe3,0xe9,0xab,0xe7, +0xca,0xe7,0x50,0xea,0xe1,0xe9,0x78,0xe7,0xf,0xe8,0x59,0xe8, +0xed,0xe4,0xd1,0xe3,0xb4,0xe6,0x3d,0xe7,0x49,0xe6,0xd8,0xe9, +0xf9,0xed,0xc2,0xeb,0xf3,0xe8,0x19,0xeb,0xa6,0xea,0x1f,0xe6, +0x79,0xe6,0xeb,0xe9,0x46,0xe9,0x76,0xe8,0x89,0xeb,0x23,0xed, +0x7a,0xeb,0x9f,0xec,0x54,0xf0,0xbb,0xf0,0x8a,0xef,0xb7,0xef, +0xe9,0xee,0x95,0xee,0xaf,0xf0,0x30,0xf1,0x14,0xf0,0x15,0xf2, +0x61,0xf5,0xbb,0xf4,0x54,0xf2,0xfe,0xf3,0xd7,0xf8,0x8e,0xfb, +0x3d,0xfa,0xde,0xf7,0xd0,0xf8,0xc9,0xfb,0xc9,0xfa,0xbb,0xf7, +0x61,0xfa,0xc8,0xff,0xc1,0xfe,0x61,0xfa,0x4f,0xfc,0xb7,0x2, +0xb8,0x4,0x1b,0x1,0x70,0xfe,0xf,0x1,0xe8,0x3,0xd9,0x0, +0xd7,0xfd,0xc1,0x1,0x9c,0x5,0xfb,0x2,0xec,0xff,0xeb,0x0, +0xed,0x1,0x63,0x1,0x74,0x1,0x91,0x1,0x9c,0x2,0x94,0x5, +0xff,0x4,0x6c,0x0,0x2,0x0,0x5d,0x2,0x6a,0x0,0x16,0xfe, +0x21,0xff,0x2,0xfe,0x63,0xfb,0xcb,0xfd,0xb3,0x0,0x2e,0xfe, +0x94,0xfd,0x90,0x1,0x31,0x0,0x5d,0xfa,0x42,0xfb,0x26,0x0, +0xc8,0xfe,0xdd,0xfa,0xbb,0xfc,0xb6,0xff,0x18,0xfd,0xc3,0xf9, +0x75,0xfb,0xa3,0xfe,0x37,0xfe,0x43,0xfc,0x55,0xfd,0xac,0xff, +0xa9,0xff,0x4e,0xff,0xf5,0x0,0x98,0x2,0x24,0x1,0x9c,0xfd, +0x3e,0xfd,0x96,0xff,0xca,0xfe,0xb0,0xfc,0x32,0xfe,0xa6,0x0, +0x22,0x0,0xaa,0xfe,0x2d,0x0,0x73,0x2,0xac,0x0,0x90,0xfe, +0x4b,0x0,0x8c,0x0,0x93,0xfc,0x97,0xf9,0x5c,0xfa,0xf2,0xfb, +0x74,0xfb,0x48,0xfa,0x6a,0xfa,0xbc,0xfa,0x94,0xfa,0xbb,0xf9, +0x9c,0xf7,0xb3,0xf6,0x90,0xf7,0x9e,0xf5,0xb0,0xf1,0x28,0xf2, +0xe4,0xf4,0xd3,0xf2,0x40,0xef,0x88,0xf0,0x35,0xf2,0x13,0xef, +0xe0,0xeb,0xb5,0xec,0xb4,0xed,0xbb,0xec,0xc,0xed,0x29,0xee, +0xf9,0xec,0x66,0xeb,0x2,0xeb,0x7,0xea,0x62,0xe9,0xe0,0xe9, +0xfd,0xe8,0x1,0xe7,0xe0,0xe7,0xb4,0xeb,0x76,0xed,0xa7,0xec, +0x23,0xee,0xf7,0xf0,0x34,0xf1,0x8b,0xf0,0xc0,0xf0,0x67,0xf1, +0xf6,0xf2,0x26,0xf4,0x30,0xf4,0xb0,0xf5,0x8,0xf9,0x1d,0xfb, +0x2a,0xfc,0xae,0xff,0x0,0x4,0xd7,0x4,0x1f,0x5,0x2,0x8, +0x99,0x9,0x92,0x9,0xe,0xc,0x7,0xf,0xa9,0xf,0x44,0x11, +0xff,0x14,0x56,0x17,0x1b,0x18,0x2,0x1a,0xea,0x1c,0x15,0x1f, +0xf8,0x1f,0x72,0x20,0xc4,0x21,0xb4,0x23,0x61,0x25,0xc0,0x26, +0xf7,0x27,0x34,0x29,0x1e,0x2a,0x2f,0x2a,0x4b,0x2a,0x6,0x2b, +0xcf,0x2b,0x60,0x2c,0x6e,0x2c,0x55,0x2c,0xc,0x2d,0x3b,0x2e, +0xe6,0x2e,0x4e,0x2e,0xda,0x2c,0x95,0x2c,0x8a,0x2d,0xc,0x2d, +0x60,0x2a,0xc1,0x27,0xe2,0x26,0xab,0x26,0xa9,0x25,0xd,0x25, +0x3b,0x26,0x5f,0x27,0x8d,0x25,0x5d,0x22,0x50,0x22,0xd2,0x23, +0x6b,0x21,0xe1,0x1b,0x0,0x18,0x9b,0x17,0x98,0x18,0x93,0x17, +0xc6,0x15,0xc3,0x16,0x3e,0x18,0xd4,0x16,0x60,0x14,0xc1,0x12, +0x3e,0x11,0xe1,0xe,0x6f,0xb,0xf5,0x8,0x4,0xa,0xbb,0xc, +0xa2,0xc,0x6c,0xa,0x3,0xb,0x43,0xd,0xfe,0xa,0xa0,0x5, +0x2d,0x4,0x60,0x6,0x7c,0x7,0x50,0x7,0x8f,0x7,0x5,0x9, +0x4,0xc,0xac,0xd,0x9f,0xb,0x20,0x9,0x58,0x8,0xbf,0x6, +0x6d,0x4,0x16,0x5,0xc8,0x8,0x40,0xb,0x33,0xb,0xe0,0xb, +0x26,0xe,0x67,0xf,0xb2,0xe,0xa0,0xc,0x4d,0xa,0x43,0xa, +0xa0,0xc,0xaf,0xd,0x83,0xc,0x6d,0xc,0x72,0xe,0x44,0x10, +0x35,0x10,0xec,0xd,0x25,0xc,0xac,0xe,0x59,0x11,0x39,0xe, +0x2d,0xc,0x26,0x12,0x4a,0x16,0xe9,0x10,0xf7,0xc,0x2a,0x11, +0xf2,0x11,0xd9,0xa,0xf9,0x7,0xb2,0xb,0x58,0xb,0x79,0x7, +0x5c,0x9,0x92,0xf,0x94,0x12,0x31,0x12,0x23,0x12,0x83,0x11, +0x68,0xd,0x9d,0x7,0x9a,0x3,0x8c,0x0,0xda,0xfd,0x56,0xff, +0xeb,0x4,0x9a,0x7,0x16,0x6,0x8d,0x7,0xaa,0xc,0xcb,0xc, +0xb3,0x5,0x50,0x0,0x10,0x1,0xce,0xff,0xe0,0xf8,0x6c,0xf6, +0x13,0xfc,0x4d,0xff,0xc0,0xfc,0xab,0xfc,0xaf,0x0,0x74,0x1, +0x7a,0xfd,0x26,0xfb,0x24,0xfb,0xa5,0xf8,0xd5,0xf5,0x40,0xf6, +0xe8,0xf6,0xa7,0xf7,0xc4,0xfa,0x5a,0xfc,0xae,0xf9,0x3b,0xf7, +0xd5,0xf7,0x2a,0xf7,0x54,0xf2,0x40,0xef,0x42,0xf2,0xb,0xf6, +0x79,0xf7,0x66,0xf9,0x24,0xfb,0x16,0xfb,0xae,0xfa,0x10,0xf9, +0x99,0xf5,0x52,0xf3,0x2e,0xf2,0xb6,0xef,0xdb,0xee,0xb8,0xf2, +0x46,0xf7,0x48,0xf9,0x69,0xfb,0x81,0xfd,0xb2,0xfb,0xf8,0xf7, +0x4c,0xf7,0x25,0xf8,0xfd,0xf6,0xe6,0xf4,0xa3,0xf3,0xfd,0xf3, +0xb6,0xf6,0x40,0xf9,0x3,0xf9,0xfe,0xf8,0xe,0xfb,0x1a,0xfb, +0x6a,0xf8,0x51,0xf8,0x93,0xfa,0x51,0xf9,0x7b,0xf6,0xea,0xf7, +0x26,0xf9,0xf0,0xf5,0xab,0xf6,0xdf,0xfc,0x43,0xfc,0xb0,0xf6, +0x8c,0xf9,0xd1,0xfd,0x9,0xf7,0x4b,0xf1,0x9c,0xf7,0x25,0xfc, +0x13,0xf7,0xd5,0xf5,0x7d,0xfb,0xac,0xfb,0x2a,0xf7,0x79,0xf6, +0xb2,0xf6,0x8b,0xf5,0x9c,0xf4,0xd7,0xf0,0xf7,0xec,0x38,0xef, +0xad,0xf4,0xf3,0xf8,0xbe,0xf9,0xc9,0xf5,0xb7,0xf2,0x55,0xf4, +0x47,0xf4,0x42,0xee,0x96,0xe9,0xc,0xed,0xbd,0xef,0x73,0xea, +0x75,0xe9,0xf5,0xf0,0x42,0xf3,0x85,0xef,0x26,0xef,0xd1,0xf0, +0xca,0xef,0xd9,0xec,0xdf,0xeb,0xf8,0xec,0xbd,0xea,0xd0,0xe7, +0xd1,0xeb,0x9a,0xef,0x7c,0xea,0x8b,0xe6,0x43,0xeb,0xb0,0xed, +0x4f,0xe9,0x56,0xe9,0x63,0xef,0x53,0xf0,0x27,0xec,0x5e,0xec, +0x4,0xef,0xa4,0xed,0x43,0xec,0x8c,0xeb,0x69,0xe6,0x33,0xe4, +0xac,0xe9,0xd9,0xeb,0x46,0xea,0x95,0xee,0x76,0xf4,0x54,0xf3, +0x99,0xed,0x2c,0xec,0x4d,0xf2,0xd8,0xf5,0x99,0xef,0x76,0xe9, +0x37,0xec,0x8,0xf1,0x31,0xef,0x8e,0xec,0xbc,0xf1,0x96,0xf5, +0x5d,0xf1,0x64,0xf2,0x24,0xfa,0x79,0xf9,0x7b,0xf3,0x59,0xf4, +0xbf,0xf6,0x82,0xf3,0x9a,0xf1,0x8a,0xf5,0x6,0xf7,0xd7,0xf2, +0x30,0xf3,0x8,0xfa,0x22,0xfb,0x57,0xf5,0x9e,0xf4,0x8b,0xf8, +0x5f,0xf7,0x15,0xf4,0xe3,0xf6,0xd6,0xfb,0x55,0xfb,0x38,0xf8, +0x7b,0xf9,0xb2,0xfc,0x30,0xfa,0x26,0xf4,0x8c,0xf3,0xe1,0xf7, +0x38,0xf8,0xc4,0xf3,0x7d,0xf4,0x5e,0xfc,0xa7,0xff,0x89,0xfb, +0xf5,0xfa,0x72,0xfe,0xd1,0xfc,0xcc,0xf7,0x38,0xf6,0x5b,0xf7, +0x2e,0xf8,0xf,0xf7,0x8b,0xf5,0x46,0xf9,0x32,0x0,0x87,0x0, +0x83,0xfb,0xdc,0xfa,0x39,0xfe,0xac,0xfd,0x15,0xf9,0xfa,0xf7, +0x12,0xfb,0x90,0xfb,0x92,0xf9,0x78,0xfa,0xdf,0xfd,0xf9,0xff, +0x58,0xfe,0xf6,0xfa,0xdb,0xfa,0xa8,0xfc,0x91,0xfb,0x79,0xf9, +0x7,0xfa,0x9a,0xfc,0xcd,0xfe,0xda,0xfe,0x49,0xfd,0x37,0xfc, +0x3d,0xfc,0x5b,0xfb,0x7f,0xf8,0x3d,0xf7,0x43,0xf9,0xf0,0xf9, +0xbe,0xf8,0xd3,0xfa,0xf8,0xfe,0x7b,0xff,0x18,0xfd,0xd9,0xfb, +0x5e,0xfb,0x5d,0xfa,0x61,0xf9,0xf4,0xf7,0x24,0xf7,0xd6,0xf8, +0x7c,0xfa,0x15,0xfa,0x9d,0xfa,0xd0,0xfd,0x9b,0x0,0xb9,0xff, +0x9b,0xfd,0xab,0xfe,0x83,0x0,0x58,0xfe,0x96,0xfa,0xa4,0xfb, +0x2c,0x0,0xc6,0xff,0x51,0xfc,0xfb,0xfe,0x69,0x3,0xdd,0x2, +0xe0,0x2,0xe2,0x4,0x32,0x5,0x59,0x6,0xc8,0x7,0xcf,0x5, +0xb7,0x4,0x18,0x8,0xed,0x9,0xc4,0x6,0x40,0x5,0x35,0x8, +0x27,0x9,0xf9,0x6,0x3f,0x7,0x43,0xa,0x1b,0xc,0xdf,0xa, +0xf8,0x8,0x2b,0xb,0x57,0xf,0x91,0xd,0x4d,0x7,0x15,0x6, +0x7b,0x9,0x27,0x8,0x8f,0x2,0x51,0x1,0x42,0x4,0x4b,0x5, +0x7a,0x4,0x6c,0x5,0xe4,0x7,0x1,0x8,0xc6,0x4,0xa7,0x1, +0x14,0xff,0x8d,0xfb,0x44,0xf9,0xd6,0xf7,0xf4,0xf4,0xef,0xf4, +0xbc,0xf8,0x61,0xf8,0xe0,0xf4,0x32,0xf7,0x8b,0xfa,0x2f,0xf5, +0x2c,0xee,0xe3,0xee,0xae,0xf0,0x60,0xed,0xdc,0xeb,0xfd,0xee, +0x39,0xef,0x1d,0xec,0x1,0xed,0x15,0xf0,0xb4,0xee,0x68,0xeb, +0x4,0xeb,0x66,0xec,0x46,0xee,0x14,0xf1,0x78,0xf3,0xc4,0xf3, +0x87,0xf3,0xcd,0xf5,0x9d,0xf8,0xdb,0xf7,0x90,0xf6,0x6d,0xf8, +0xea,0xf9,0x62,0xfa,0xcc,0xfd,0xc,0x2,0x9b,0x3,0x35,0x5, +0xcc,0x8,0x4,0xc,0xbf,0xd,0x2f,0xf,0xcb,0x10,0xd8,0x11, +0x3f,0x12,0x6b,0x13,0xa,0x16,0x75,0x18,0xd6,0x19,0x58,0x1c, +0x5a,0x20,0x5a,0x22,0x7c,0x22,0xf0,0x24,0xe9,0x27,0xfc,0x26, +0xc4,0x25,0x32,0x28,0xb,0x2a,0xd2,0x28,0x7e,0x28,0xb7,0x2a, +0xad,0x2c,0x3a,0x2c,0x3b,0x2b,0x57,0x2d,0x3,0x30,0x19,0x2d, +0xa2,0x28,0x57,0x2a,0xa2,0x2c,0x31,0x29,0x8e,0x28,0x4c,0x2e, +0x54,0x2e,0x14,0x27,0x74,0x25,0xac,0x28,0x7d,0x25,0x72,0x1e, +0xc2,0x1b,0x30,0x1c,0xb1,0x1c,0x1d,0x1d,0xb,0x1d,0xed,0x1d, +0x82,0x20,0x96,0x20,0xb5,0x1b,0x22,0x16,0x18,0x14,0xf1,0x13, +0x1c,0x11,0xe9,0xa,0x4c,0x7,0xb9,0xa,0x8b,0xf,0x6c,0xf, +0xa6,0xe,0x81,0x11,0xc0,0x12,0x82,0xf,0x3,0xd,0x7c,0xc, +0x9a,0x9,0xcf,0x5,0x61,0x5,0xd3,0x5,0xc9,0x4,0xaf,0x5, +0x98,0x8,0xfc,0x9,0x18,0xb,0x54,0xd,0xe2,0xc,0xfb,0x8, +0xc8,0x7,0x6b,0xb,0xd4,0xc,0xa0,0x8,0x38,0x6,0x2d,0xa, +0xbf,0xd,0x35,0xb,0xe,0x8,0x7c,0xb,0xf8,0x10,0xa6,0xf, +0x68,0xb,0xa6,0xd,0xc6,0x12,0x25,0x12,0x8b,0xe,0xe3,0xe, +0xcc,0x11,0xbd,0x11,0xeb,0xd,0x91,0xb,0x95,0xe,0xc9,0x11, +0xa1,0xe,0xe3,0xa,0x27,0xf,0x94,0x14,0xc,0x11,0x8d,0xb, +0x69,0xe,0xb9,0x13,0xb2,0x11,0xcd,0xa,0xc7,0x7,0x7f,0xb, +0x48,0xe,0x2e,0x8,0x67,0x1,0x6d,0x6,0x81,0xe,0x86,0xa, +0xa,0x2,0x8b,0x3,0x8c,0x9,0x5a,0x8,0x2b,0x3,0x38,0x2, +0xa0,0x4,0x3a,0x5,0x98,0x1,0x7,0xfc,0x99,0xfa,0x2a,0xfd, +0x99,0xfb,0x60,0xf6,0x9d,0xf7,0xea,0xfe,0xcb,0x0,0x61,0xfb, +0x6c,0xf9,0x57,0xfe,0x6c,0xff,0x4c,0xf7,0x78,0xf0,0x2e,0xf3, +0x50,0xf7,0x9a,0xf3,0xfe,0xee,0x26,0xf3,0xd5,0xf8,0x1,0xf6, +0x49,0xf1,0xd8,0xf3,0xfa,0xf7,0x68,0xf5,0x6a,0xf1,0x96,0xf3, +0x1e,0xf6,0x33,0xf3,0xd9,0xf1,0x77,0xf5,0x45,0xf7,0xe1,0xf5, +0x2c,0xf5,0x19,0xf4,0x62,0xf1,0xb2,0xf0,0xdb,0xf2,0x57,0xf3, +0x31,0xf3,0x36,0xf8,0xe3,0xfe,0x6,0x0,0x19,0xff,0xe,0x1, +0x5c,0x1,0x99,0xfc,0x34,0xf8,0x0,0xf8,0xc9,0xf7,0x51,0xf5, +0xa7,0xf5,0x5,0xfb,0xb6,0xff,0xe1,0xff,0x17,0x0,0x66,0x4, +0xec,0x7,0x42,0x5,0xac,0x0,0x8f,0x0,0xeb,0x1,0x1e,0xff, +0xa9,0xfb,0x65,0xfc,0xb1,0xfe,0xae,0x0,0xd6,0x2,0x21,0x3, +0xb,0x2,0xaa,0x1,0x5e,0x1,0xde,0x1,0xbc,0x3,0x61,0x4, +0xa6,0x2,0x65,0x1,0xa4,0x3,0xe4,0x5,0xb4,0x3,0x28,0x1, +0x61,0x0,0x27,0xfe,0xfd,0xfb,0x1b,0xfa,0x11,0xf8,0x1c,0xfb, +0xd2,0x0,0x55,0x2,0xc2,0x2,0x86,0x4,0x63,0x4,0x68,0x1, +0x27,0xfc,0x1d,0xf7,0x9,0xf5,0xb2,0xf4,0xf8,0xf4,0xb9,0xf5, +0x80,0xf6,0x76,0xf8,0xd9,0xfa,0x39,0xfa,0xfa,0xf6,0xbd,0xf5, +0x48,0xf7,0x62,0xf5,0x89,0xef,0x39,0xf0,0x7f,0xf7,0xa,0xf7, +0xde,0xef,0x3,0xf1,0x25,0xf6,0x1a,0xf1,0x1b,0xea,0x4c,0xee, +0xd6,0xf4,0x7,0xf3,0xcc,0xee,0x7c,0xef,0xf3,0xf3,0xe9,0xf7, +0x43,0xf7,0xb0,0xf2,0x5f,0xf1,0x95,0xf4,0x85,0xf2,0x9b,0xea, +0xe5,0xea,0xc1,0xf2,0xe8,0xf1,0x86,0xec,0x9e,0xf3,0x41,0xfe, +0xbb,0xfa,0xaa,0xf3,0x34,0xf7,0xfc,0xf9,0x94,0xf4,0xf,0xf2, +0xfa,0xf2,0x7d,0xf0,0xb5,0xf1,0xe2,0xf8,0xf2,0xf9,0x8d,0xf6, +0x36,0xfb,0x64,0x0,0x72,0xf9,0x32,0xf3,0xae,0xf9,0xd9,0xfc, +0xe8,0xf3,0x37,0xf1,0x7b,0xfa,0x72,0xfd,0xba,0xf5,0x61,0xf2, +0xed,0xf7,0xee,0xfb,0x39,0xf8,0x2d,0xf2,0x81,0xf2,0x56,0xf8, +0x34,0xf9,0x0,0xf4,0xed,0xf3,0x15,0xf9,0xfa,0xf6,0x51,0xee, +0xda,0xec,0x59,0xf2,0x40,0xf1,0x78,0xea,0x61,0xeb,0x2b,0xf2, +0x8,0xf3,0x4f,0xf0,0xf8,0xf1,0x3a,0xf4,0xce,0xf1,0x81,0xee, +0x98,0xed,0x4b,0xec,0xc6,0xe9,0x73,0xe8,0xba,0xe7,0x22,0xe8, +0x86,0xed,0xef,0xf2,0x1e,0xf0,0x50,0xed,0xe,0xf3,0x62,0xf5, +0x50,0xee,0x0,0xeb,0x78,0xed,0x8c,0xeb,0xaf,0xe7,0x6a,0xe9, +0x44,0xee,0xf7,0xf0,0x35,0xf1,0x3c,0xf2,0x87,0xf5,0xae,0xf7, +0xff,0xf5,0x71,0xf3,0x72,0xf3,0x1a,0xf4,0xb4,0xf2,0x8a,0xf1, +0x80,0xf2,0x30,0xf4,0x57,0xf7,0xf9,0xfa,0x9a,0xfa,0x8f,0xf9, +0x1e,0xfe,0x6c,0x2,0x41,0xff,0xc8,0xfa,0x3e,0xfc,0x4f,0xff, +0xf0,0xfd,0x55,0xfb,0xde,0xfd,0xff,0x3,0x93,0x6,0xe8,0x4, +0xa6,0x5,0xfb,0x9,0x76,0xa,0x24,0x5,0x70,0x2,0x4e,0x5, +0x7,0x6,0xf7,0x2,0x74,0x3,0xc4,0x7,0xc3,0x9,0x3a,0x9, +0xbd,0x8,0xe5,0x7,0xb6,0x7,0x7f,0x8,0xd6,0x5,0xe9,0x0, +0x4f,0x1,0xf,0x4,0xf4,0x1,0xfa,0x0,0xa6,0x4,0xa,0x4, +0x50,0xff,0xcc,0xfe,0x26,0x0,0x62,0xfe,0x79,0xfb,0xaf,0xf8, +0x4d,0xf7,0xe8,0xf9,0xab,0xfb,0x1,0xf8,0xed,0xf6,0xbe,0xfb, +0x28,0xfb,0xc0,0xf4,0xdc,0xf4,0x77,0xf8,0xdd,0xf4,0x9f,0xef, +0x9b,0xf1,0xe4,0xf5,0x6f,0xf5,0x19,0xf3,0x62,0xf4,0x1e,0xf8, +0x8b,0xf9,0x43,0xf8,0xf,0xf8,0xcd,0xf9,0xcb,0xfa,0xa7,0xfa, +0xf8,0xf9,0x73,0xf8,0xc3,0xf8,0x9b,0xfb,0x32,0xfc,0x8e,0xfa, +0xd9,0xfb,0x9c,0xff,0xa9,0x1,0x0,0x2,0xa1,0x3,0x89,0x6, +0x59,0x7,0x6,0x5,0xd7,0x2,0xa,0x4,0x43,0x6,0x3,0x5, +0x8,0x4,0xc9,0x7,0xe6,0x9,0xe0,0x7,0xc8,0x8,0x14,0xc, +0xba,0xc,0x46,0xc,0x13,0xc,0x2b,0xb,0x22,0xa,0xee,0x8, +0x3b,0x7,0x48,0x6,0xa3,0x6,0x59,0x6,0x6d,0x4,0x88,0x3, +0xd7,0x3,0xd1,0x1,0x68,0xff,0xa7,0x0,0xb1,0x1,0x18,0xfe, +0xfc,0xf9,0xfe,0xf9,0xe6,0xfa,0x6c,0xf8,0xd7,0xf4,0x4e,0xf3, +0x48,0xf2,0x6b,0xf0,0xb9,0xee,0x59,0xed,0xb1,0xec,0xbf,0xed, +0xec,0xee,0x62,0xee,0x9c,0xed,0xa9,0xed,0x80,0xed,0x9f,0xed, +0xf7,0xed,0x60,0xec,0x45,0xea,0x5,0xeb,0xcc,0xec,0x41,0xed, +0x36,0xef,0x51,0xf3,0x61,0xf5,0x39,0xf5,0x86,0xf6,0xa,0xf9, +0x80,0xfa,0x34,0xfb,0xd6,0xfc,0x6b,0x0,0xcc,0x3,0x63,0x4, +0x83,0x5,0xe5,0x9,0xc9,0xc,0x9d,0xc,0x99,0xe,0xb9,0x12, +0x61,0x14,0xa4,0x14,0xfe,0x16,0x3e,0x1a,0xc9,0x1c,0xe2,0x1f, +0xc7,0x22,0x1e,0x23,0x8d,0x22,0xa6,0x23,0x89,0x25,0x2b,0x27, +0xf0,0x27,0xb6,0x26,0xf1,0x25,0x6f,0x28,0x99,0x2a,0xe7,0x29, +0xc3,0x2a,0x49,0x2e,0x15,0x2f,0xde,0x2b,0xe4,0x28,0xe6,0x27, +0x1c,0x27,0x6b,0x25,0x69,0x23,0x6f,0x22,0xd6,0x23,0xa6,0x26, +0x83,0x27,0x43,0x26,0x22,0x26,0xdf,0x25,0x91,0x21,0x8a,0x1b, +0x68,0x18,0xfd,0x16,0x47,0x14,0xa8,0x11,0x3e,0x12,0xf1,0x14, +0x63,0x15,0xbe,0x13,0x94,0x14,0xd3,0x16,0xcd,0x14,0xf1,0xf, +0xd2,0xd,0x2d,0xc,0xd,0x7,0x59,0x3,0x90,0x4,0xae,0x5, +0x67,0x6,0x65,0xb,0xb4,0xf,0xc3,0xc,0x2a,0x9,0xe1,0xa, +0x26,0xa,0x1a,0x3,0xf1,0xff,0xe5,0x3,0xb4,0x4,0xe9,0x1, +0x44,0x6,0x2c,0x10,0x2f,0x14,0x28,0x12,0xd3,0x11,0x29,0x12, +0xeb,0xd,0xf0,0x8,0x5,0x9,0x66,0xa,0x41,0x9,0x43,0xa, +0x3,0x10,0x67,0x15,0x25,0x17,0xf1,0x17,0x6d,0x19,0xe1,0x18, +0x3a,0x15,0x89,0x11,0xb5,0xf,0xe6,0xe,0x47,0xf,0x59,0x12, +0xf9,0x16,0xf2,0x18,0x48,0x17,0x5e,0x16,0x14,0x17,0x5,0x15, +0xee,0x11,0x2e,0x13,0x9d,0x14,0x39,0x12,0x3b,0x12,0xb8,0x13, +0xd,0xf,0xc3,0xb,0x31,0x11,0x8f,0x11,0x43,0x7,0x5c,0x5, +0x10,0x10,0x22,0x11,0x9f,0x6,0x6d,0x7,0x59,0x10,0xb7,0xb, +0xf4,0x1,0xae,0x4,0x2f,0x9,0xe6,0x2,0xa,0xfb,0xe2,0xfb, +0x60,0x0,0xa9,0xfe,0x24,0xf9,0x2f,0xf9,0x9d,0xfc,0x40,0xfc, +0x90,0xfa,0x3,0xfb,0x51,0xfb,0x79,0xfb,0x72,0xfc,0xb,0xfa, +0xb5,0xf3,0xd5,0xf0,0x2e,0xf2,0x54,0xf1,0x4d,0xf0,0x4a,0xf3, +0xd4,0xf5,0x80,0xf5,0x15,0xf6,0xca,0xf9,0xb7,0xfe,0xf1,0xfd, +0xa9,0xf5,0x4c,0xf2,0xb1,0xf7,0xc9,0xf5,0x6c,0xeb,0xe1,0xec, +0x1e,0xf9,0xfa,0xfa,0x15,0xf5,0xc6,0xf8,0x91,0x0,0xc0,0xff, +0x25,0xfc,0x9c,0xfc,0xb6,0xfc,0xa5,0xf9,0x71,0xf5,0xd3,0xf3, +0x6,0xf8,0xcc,0xfd,0x82,0xfe,0x15,0xfc,0x6b,0xfc,0x58,0x0, +0xb6,0x1,0x9b,0xfc,0xe8,0xf9,0x41,0xff,0xbc,0x0,0x41,0xf9, +0xbe,0xf5,0xce,0xfa,0xba,0xfe,0xa9,0xfd,0x20,0xfc,0x5e,0xfc, +0x4d,0xfe,0xcd,0x0,0x8b,0xff,0xbf,0xfa,0x83,0xf9,0xb3,0xfb, +0x58,0xfa,0xdf,0xf5,0x30,0xf4,0x9a,0xf7,0xb,0xfc,0x38,0xfb, +0xbb,0xf7,0xc2,0xf9,0xe7,0xfd,0xce,0xf9,0xbf,0xf1,0x32,0xf3, +0xf0,0xf8,0x8b,0xf3,0x74,0xeb,0xa3,0xf0,0xb4,0xf8,0x55,0xf6, +0xd4,0xf2,0x3b,0xf7,0x58,0xfc,0xcd,0xf9,0x41,0xf2,0x11,0xee, +0x2e,0xf0,0xed,0xf3,0x4b,0xf3,0x3,0xef,0xab,0xef,0x35,0xf7, +0x44,0xfa,0xe5,0xf4,0x5b,0xf3,0x7f,0xfa,0x35,0xfe,0x78,0xf7, +0xf9,0xef,0x3d,0xf2,0x20,0xf9,0x6a,0xf7,0x76,0xf0,0xbd,0xf4, +0xd3,0xff,0xb5,0xfe,0x7e,0xf6,0x57,0xf9,0xc7,0x3,0xe4,0x5, +0xa6,0xfd,0x31,0xf8,0x82,0xfd,0xb2,0x2,0x33,0xfb,0x25,0xf0, +0xe4,0xf3,0xa5,0x1,0xbc,0x1,0x58,0xf3,0xa1,0xef,0x91,0xfb, +0x59,0x1,0xa9,0xf9,0x1a,0xf5,0xfc,0xfc,0x70,0x4,0xd4,0xfe, +0xb8,0xf5,0x8,0xf9,0x49,0x2,0xbc,0xfc,0x8f,0xea,0x8b,0xe5, +0xe2,0xf0,0x71,0xf3,0xe2,0xe9,0xee,0xea,0x96,0xf8,0x62,0xfe, +0x57,0xf8,0xdd,0xf4,0x55,0xf7,0xd,0xf8,0xa3,0xf5,0xd1,0xef, +0xb,0xe8,0xc4,0xe8,0x27,0xef,0xd,0xeb,0x9e,0xe3,0x81,0xe9, +0x4e,0xf1,0x61,0xeb,0x78,0xe2,0xb7,0xe5,0xf3,0xee,0x6f,0xee, +0x44,0xe5,0x4c,0xe4,0x14,0xee,0x45,0xf0,0xef,0xe4,0x2d,0xdf, +0x7e,0xe6,0x31,0xe7,0x23,0xdc,0x17,0xda,0x78,0xe2,0x4d,0xe3, +0xb9,0xdf,0x7e,0xe4,0x54,0xec,0x85,0xee,0xfb,0xec,0x41,0xeb, +0x5f,0xe9,0xba,0xe7,0x46,0xe7,0xa8,0xe5,0x1f,0xe2,0xdc,0xe1, +0xf5,0xe4,0xae,0xe5,0x39,0xe6,0xb5,0xeb,0x9,0xf2,0x50,0xf3, +0x83,0xf2,0xd8,0xf4,0xd7,0xf6,0xfc,0xf3,0xa1,0xf0,0xed,0xef, +0xb6,0xee,0xcc,0xec,0x23,0xed,0x63,0xf0,0xd3,0xf3,0x98,0xf4, +0x7f,0xf5,0x84,0xf9,0x81,0xfc,0x71,0xfc,0xb3,0xfd,0x49,0x0, +0xe3,0xfe,0xff,0xf9,0xda,0xf8,0x20,0xfc,0x21,0xfb,0xb,0xf5, +0x3f,0xf5,0x54,0xfd,0xed,0xff,0x63,0xfb,0x31,0xfd,0xfd,0x4, +0x96,0x6,0x27,0x3,0x6a,0x2,0x58,0x3,0x13,0x2,0xf6,0xfd, +0xd8,0xf9,0x47,0xf9,0x6e,0xfb,0x7a,0xfc,0x95,0xfa,0x36,0xf9, +0x17,0xfd,0x19,0x2,0xee,0x0,0xa8,0xfd,0xc9,0x0,0xb6,0x5, +0x91,0x0,0x48,0xf7,0x6b,0xfa,0x20,0x2,0xa6,0xfc,0x3d,0xf4, +0xe7,0xf7,0x6a,0xfd,0x17,0xfa,0xd2,0xf5,0x23,0xf9,0x78,0xff, +0x94,0x0,0x4a,0xfd,0xd,0xfc,0xa9,0xfe,0x7a,0x1,0x71,0x1, +0x1c,0x0,0xf0,0xff,0x7e,0xff,0xbb,0xfc,0x46,0xf9,0x1f,0xf9, +0xa,0xfc,0x67,0xfb,0x31,0xf7,0xb,0xf9,0x9,0x1,0x99,0x4, +0xd8,0x2,0xba,0x3,0x73,0x7,0x7c,0x7,0x44,0x2,0xa1,0xfb, +0x53,0xf7,0x5e,0xf6,0x31,0xf5,0xf8,0xf1,0xac,0xf3,0x46,0xfc, +0x53,0x0,0x53,0xfd,0xd5,0xff,0x2f,0x8,0xea,0x8,0x7e,0x1, +0xaf,0xfc,0x28,0xfc,0x48,0xfa,0xbc,0xf5,0xe9,0xf2,0xf5,0xf5, +0x84,0xfb,0xe9,0xfc,0xbd,0xfb,0x8e,0xfe,0xe0,0x4,0x4f,0x7, +0x75,0x3,0x16,0x1,0xf3,0x3,0x71,0x3,0xb7,0xfc,0x97,0xf9, +0x6d,0xfc,0x2d,0xfd,0xc4,0xfa,0x72,0xfa,0xc9,0xfc,0x87,0xff, +0x5d,0x1,0x7e,0x1,0x2f,0x1,0x19,0x2,0xe2,0x2,0x4b,0x1, +0xcf,0xfd,0xfd,0xfb,0xe4,0xfc,0x27,0xfc,0x51,0xf9,0xb,0xfa, +0xd4,0xfd,0x37,0xfe,0xf8,0xfa,0x1,0xfa,0x57,0xfd,0x4d,0x0, +0x6c,0xff,0x48,0xfd,0x8c,0xfd,0xb8,0xff,0x2e,0xff,0xe6,0xfa, +0x8a,0xf9,0x47,0xfc,0xe7,0xfa,0xe6,0xf4,0x77,0xf2,0x57,0xf5, +0x34,0xf8,0xd2,0xf7,0xe4,0xf6,0x13,0xf9,0xc2,0xfb,0x46,0xfa, +0xa2,0xf6,0x0,0xf6,0x98,0xf7,0x5,0xf6,0xc4,0xf0,0xd8,0xed, +0x26,0xf0,0xac,0xf2,0x8f,0xf1,0xfc,0xf0,0x8b,0xf3,0xeb,0xf4, +0x36,0xf5,0x6b,0xf7,0x9a,0xf7,0x8c,0xf5,0xb8,0xf7,0x2e,0xfb, +0xce,0xf9,0x35,0xf9,0xcf,0xfd,0x4c,0x0,0x5a,0xfd,0xa6,0xfc, +0x85,0x1,0xdb,0x5,0x45,0x6,0x5f,0x6,0xb3,0x9,0x84,0xe, +0xcc,0x10,0x46,0x11,0x42,0x13,0xd3,0x15,0x30,0x17,0xb7,0x17, +0x6d,0x17,0xe7,0x17,0xaa,0x1a,0x72,0x1c,0x66,0x1b,0xf6,0x1b, +0x2,0x20,0xd2,0x22,0x0,0x23,0x3,0x25,0x81,0x28,0xe1,0x28, +0xbe,0x27,0x2e,0x28,0x72,0x27,0xea,0x24,0x42,0x24,0xdc,0x24, +0xc,0x24,0xcc,0x23,0x52,0x26,0x79,0x29,0x16,0x2b,0x6b,0x2c, +0x4f,0x2e,0xec,0x2d,0x74,0x29,0x58,0x24,0x93,0x21,0x18,0x1f, +0xcf,0x1b,0x36,0x1b,0x7f,0x1e,0xae,0x21,0x9,0x23,0x1a,0x25, +0xfc,0x27,0x26,0x28,0x9f,0x23,0x2a,0x1d,0x10,0x19,0x8d,0x16, +0x54,0x13,0x47,0x12,0xff,0x13,0xae,0x14,0x8f,0x15,0x3f,0x18, +0xc5,0x19,0xd3,0x1a,0xb0,0x1c,0xb9,0x1b,0x7b,0x18,0x60,0x17, +0x59,0x16,0xb3,0x11,0x32,0xd,0x19,0xd,0x51,0xe,0x4e,0xe, +0x86,0x10,0xd3,0x15,0xc0,0x19,0xfe,0x1a,0xc6,0x1c,0xa7,0x1e, +0xc1,0x1b,0xfc,0x15,0xb5,0x14,0xc,0x15,0x39,0x11,0xad,0x10, +0xe7,0x17,0xa5,0x1c,0x4d,0x1b,0x0,0x1d,0x3f,0x23,0xfa,0x24, +0x6c,0x1f,0xa1,0x1b,0x41,0x1f,0xd2,0x20,0xa4,0x18,0x7d,0x12, +0x89,0x18,0xd2,0x1e,0x9,0x1c,0xd1,0x1a,0x6a,0x1f,0x7,0x20, +0x1,0x1d,0xbc,0x1c,0x15,0x1c,0x58,0x1a,0xe,0x1a,0xe,0x16, +0x3a,0x10,0xaa,0x12,0x8f,0x17,0x80,0x13,0xbe,0xc,0xbc,0xc, +0xa3,0x10,0xaa,0x10,0x58,0x9,0x42,0x3,0x34,0x8,0x93,0xc, +0x60,0x3,0x63,0xfc,0xec,0x4,0x75,0xa,0x19,0x0,0x36,0xf6, +0x96,0xf8,0x66,0xfd,0xf,0xfb,0xbd,0xf4,0xa2,0xf2,0x77,0xf6, +0x66,0xf8,0x6e,0xf4,0xaf,0xf3,0x65,0xfb,0xca,0xff,0xda,0xf8, +0xfc,0xf1,0x80,0xf4,0x59,0xf7,0xae,0xf1,0x3,0xeb,0x7f,0xed, +0xf8,0xf3,0xcc,0xf3,0x27,0xf1,0x9e,0xf5,0x3,0xfd,0x78,0xff, +0x89,0xfe,0x83,0xfd,0x41,0xfd,0x6a,0xfd,0x5a,0xfa,0xe6,0xf3, +0xf1,0xf1,0x7a,0xf7,0xad,0xfc,0x77,0xfc,0x66,0xfb,0x78,0xfe, +0x95,0x3,0xaf,0x4,0x6f,0x1,0x4c,0x1,0xe2,0x5,0x4f,0x6, +0xf5,0x0,0x1e,0x0,0xfd,0x5,0xdd,0x8,0xea,0x5,0xc1,0x3, +0x44,0x4,0x1,0x4,0xf3,0x1,0x8,0xff,0xe1,0xfd,0xc3,0x1, +0x92,0x6,0x99,0x4,0x22,0x0,0xfe,0x3,0xd7,0xc,0x6d,0xd, +0x4,0x4,0x49,0xfc,0x4e,0xfe,0x8a,0x1,0x7f,0xf9,0x87,0xef, +0x8d,0xf3,0xba,0xf9,0x96,0xf2,0xf0,0xeb,0x68,0xf3,0xd2,0xfd, +0x20,0xfe,0xfb,0xf7,0xce,0xf7,0x2e,0xff,0x6f,0x0,0xb7,0xf5, +0xb1,0xea,0x26,0xe8,0x6e,0xe9,0x70,0xe7,0x50,0xe4,0x4f,0xe8, +0x1,0xf2,0x85,0xf6,0x47,0xf5,0xba,0xf7,0x54,0xfd,0x7,0xfd, +0x52,0xf7,0xcb,0xf4,0x40,0xf6,0xc0,0xf5,0x8,0xf4,0x1a,0xf5, +0xa9,0xf5,0xc2,0xf3,0x64,0xf4,0x9,0xf7,0x80,0xf7,0x2,0xf9, +0xfa,0xfd,0x4b,0x2,0xc3,0x4,0x89,0x6,0xd6,0x4,0x5b,0x0, +0xf0,0xfe,0x32,0xfd,0x5a,0xf5,0x5b,0xf2,0xb6,0xfa,0x8d,0xff, +0xb9,0xfc,0xdb,0xfe,0x9c,0x5,0x78,0x8,0x8,0x6,0xdc,0xff, +0x17,0xfc,0xb0,0xfe,0x5e,0xfd,0x6b,0xf3,0xd,0xf1,0xb4,0xfb, +0x5a,0x0,0x63,0xf9,0x70,0xf4,0xae,0xf4,0x71,0xf6,0xb7,0xf3, +0x69,0xe7,0xac,0xe4,0x2,0xf3,0x48,0xf1,0x7e,0xe0,0xdb,0xe7, +0xe1,0xf9,0xe3,0xf2,0xab,0xe4,0xde,0xe7,0x29,0xed,0xe9,0xe5, +0xd1,0xdc,0x2d,0xda,0xb,0xd9,0xd,0xd9,0xc,0xdb,0x9c,0xd9, +0x37,0xda,0xdd,0xe4,0x90,0xec,0x8f,0xe7,0x4a,0xe4,0x5d,0xea, +0x99,0xeb,0x25,0xe1,0x18,0xd7,0xb,0xd5,0xd4,0xd4,0x16,0xd3, +0xaf,0xd2,0xc,0xd5,0x0,0xde,0x77,0xeb,0x55,0xee,0xce,0xe8, +0xb5,0xef,0x8f,0xf9,0x1c,0xef,0xbf,0xe1,0xf,0xe6,0x52,0xe9, +0x31,0xe1,0xc3,0xde,0x3c,0xe4,0x65,0xe7,0x6,0xeb,0x7c,0xf0, +0x85,0xf1,0xdb,0xf1,0xd0,0xf6,0x2b,0xf9,0xe8,0xf5,0x60,0xf5, +0x67,0xf8,0x66,0xf7,0x9f,0xf2,0x83,0xf0,0x65,0xf1,0x5a,0xf1, +0xdc,0xf0,0x9,0xf1,0x95,0xf0,0x8d,0xf2,0x5a,0xf8,0x85,0xfa, +0x7f,0xf6,0xb7,0xf4,0x53,0xf9,0xbe,0xfb,0xa5,0xf4,0x9e,0xee, +0xbe,0xf3,0xc6,0xf5,0xc4,0xeb,0x5b,0xe8,0x90,0xf1,0x4f,0xf3, +0x54,0xea,0x6d,0xe9,0xba,0xf1,0x5c,0xf1,0x45,0xe9,0xef,0xea, +0x4,0xf2,0x6b,0xee,0xea,0xe7,0xba,0xe9,0x1e,0xea,0x29,0xe5, +0x42,0xe4,0x27,0xe6,0x95,0xe4,0x6,0xe3,0x9e,0xe5,0x57,0xe9, +0x97,0xe9,0xf0,0xe7,0xe5,0xe8,0x76,0xea,0x25,0xe9,0xb9,0xe6, +0x54,0xe6,0xb,0xea,0x4d,0xed,0xd,0xea,0x7b,0xe9,0x37,0xf2, +0x70,0xf5,0xad,0xee,0x15,0xef,0xae,0xf7,0x4b,0xf8,0x9a,0xf3, +0x92,0xf7,0x9a,0xfd,0x1b,0xfb,0xdf,0xf9,0x59,0xff,0x8c,0x1, +0x77,0x0,0xbf,0x2,0x14,0x5,0x54,0x4,0xb3,0x3,0x26,0x5, +0x1f,0x7,0xf,0x7,0xe,0x5,0xa4,0x4,0x5a,0x7,0x26,0x9, +0x4a,0x7,0x99,0x6,0x86,0x9,0x54,0xa,0xf8,0x6,0x2e,0x4, +0xc7,0x4,0x13,0x6,0xa4,0x3,0x42,0x0,0x93,0x1,0x3d,0x3, +0x48,0x0,0x20,0xfd,0xff,0xfc,0x14,0xfe,0x80,0xfe,0xc0,0xfd, +0x36,0xfd,0x5,0xfd,0x4f,0xfc,0xc4,0xfc,0x9a,0xfd,0x8b,0xfb, +0xc0,0xf8,0x8b,0xf8,0x13,0xf8,0x56,0xf4,0xce,0xf0,0x49,0xf2, +0xc0,0xf6,0x4c,0xf8,0x48,0xf7,0xce,0xf8,0xeb,0xfb,0x67,0xfb, +0x17,0xf8,0x27,0xf7,0xfe,0xf7,0xc7,0xf4,0xba,0xee,0x8f,0xee, +0x83,0xf3,0x96,0xf4,0x6a,0xf3,0x9a,0xf6,0x3e,0xfb,0xb7,0xfc, +0xb6,0xfb,0x6a,0xfa,0x5e,0xfa,0x8d,0xfa,0x34,0xf9,0x83,0xf7, +0x66,0xf7,0x82,0xf8,0xe2,0xf8,0xc,0xf9,0xa3,0xfb,0xb1,0xfe, +0x64,0xff,0x3d,0x0,0x58,0x2,0xfa,0x3,0x62,0x5,0xd4,0x5, +0x32,0x4,0x3d,0x3,0xdb,0x4,0x67,0x5,0xa5,0x2,0xc4,0x1, +0xf1,0x4,0x61,0x5,0xda,0x1,0x96,0x1,0xc6,0x4,0x1c,0x5, +0x87,0x2,0x7,0x2,0x94,0x3,0xe8,0x2,0x7e,0x0,0x68,0xff, +0xc,0xff,0xf9,0xfe,0xbd,0xfe,0xdf,0xfb,0xf0,0xf8,0xef,0xf9, +0xa1,0xfa,0x78,0xf7,0xe2,0xf5,0xf1,0xf8,0xc,0xfb,0xcf,0xf9, +0xb3,0xfa,0x70,0xfe,0x14,0xff,0x1f,0xfd,0xb4,0xfd,0x89,0xff, +0x41,0xff,0xb5,0xfd,0x95,0xfc,0x46,0xfd,0x91,0xff,0x6a,0x0, +0xed,0x0,0x43,0x5,0xb7,0x9,0xb8,0x9,0xc8,0xa,0xa0,0xf, +0x57,0x11,0x46,0xf,0xb7,0xf,0x37,0x11,0xf3,0xf,0xa1,0xf, +0x11,0x12,0x13,0x14,0x21,0x16,0xb4,0x18,0xe5,0x19,0x47,0x1c, +0x4d,0x20,0xab,0x20,0x4a,0x1f,0x78,0x21,0xa0,0x23,0xc3,0x22, +0x93,0x22,0xb4,0x23,0xdd,0x23,0x1b,0x24,0xa2,0x25,0x54,0x26, +0xa3,0x25,0xa7,0x26,0x29,0x28,0x19,0x26,0xe0,0x24,0x97,0x28, +0x97,0x2a,0xc7,0x28,0xa7,0x29,0x91,0x2c,0x73,0x2c,0xec,0x29, +0x61,0x27,0x3d,0x25,0x7d,0x22,0x53,0x1e,0x96,0x1b,0xd0,0x1d, +0x67,0x22,0x1c,0x24,0xce,0x24,0xb0,0x28,0xb7,0x2a,0x16,0x26, +0x13,0x21,0x4c,0x1f,0xd5,0x1b,0x54,0x16,0x4,0x13,0x27,0x12, +0x36,0x12,0x68,0x14,0x6d,0x19,0xf6,0x1c,0xea,0x1b,0xa5,0x1a, +0xfc,0x1b,0x1a,0x1c,0x9a,0x19,0x97,0x17,0x77,0x16,0x7e,0x14, +0x4a,0x13,0x3c,0x14,0x96,0x14,0xd8,0x13,0xb4,0x13,0x5e,0x13, +0x2,0x15,0x6d,0x1a,0x5c,0x1d,0xda,0x1b,0x34,0x1c,0x2e,0x1e, +0x26,0x1d,0x7b,0x1a,0x60,0x18,0xfb,0x15,0x7a,0x14,0x6f,0x15, +0x74,0x16,0xe3,0x17,0x49,0x1e,0x57,0x25,0x48,0x24,0x1d,0x20, +0x70,0x21,0x11,0x23,0x91,0x1e,0xed,0x17,0x34,0x14,0x6c,0x14, +0x8a,0x16,0x9b,0x15,0x49,0x13,0xac,0x17,0xcb,0x1d,0xc8,0x19, +0x7e,0x13,0x7a,0x17,0xc5,0x1a,0x3c,0x12,0xe2,0xa,0x43,0xd, +0x91,0xc,0x21,0x5,0xb1,0x2,0x90,0x4,0xf2,0x2,0x1e,0x2, +0x51,0x4,0x78,0x3,0xaf,0x1,0x1,0x4,0xb,0x5,0x77,0x0, +0x97,0xfb,0x10,0xf9,0xe5,0xf5,0x65,0xf4,0x51,0xf7,0x9,0xf9, +0x3d,0xf7,0xd9,0xf6,0xc9,0xf7,0xdc,0xf7,0x81,0xf7,0xe,0xf4, +0x1f,0xef,0xb8,0xef,0x7,0xf2,0x6f,0xef,0xf3,0xee,0x4b,0xf5, +0xe9,0xf9,0xc1,0xf8,0xe8,0xf8,0x32,0xfd,0x1b,0xfd,0x99,0xf4, +0x3b,0xef,0xc5,0xf3,0x72,0xf7,0xb6,0xf4,0xa7,0xf2,0x7a,0xf3, +0x6e,0xf6,0x13,0xfd,0xaa,0x1,0x8e,0xff,0x73,0x0,0x78,0x8, +0xfa,0x8,0x73,0xfe,0xc1,0xfa,0x92,0xff,0xf9,0xfa,0xef,0xef, +0x93,0xf0,0xc,0xf9,0x72,0xfc,0xb,0xff,0x5d,0x5,0x21,0x9, +0x5f,0xa,0xeb,0xb,0x74,0x8,0xa,0x0,0x93,0xfa,0x9e,0xf8, +0x8,0xf5,0xa,0xf0,0xcc,0xef,0x79,0xf6,0x4c,0xfc,0x13,0xfd, +0xf4,0xff,0xcd,0x6,0x8,0x8,0xc0,0xff,0x46,0xf8,0x19,0xf9, +0x23,0xf9,0xf5,0xf1,0x55,0xed,0x69,0xef,0x58,0xf0,0x77,0xef, +0xea,0xf0,0xaf,0xf2,0xd5,0xf4,0x21,0xfa,0x80,0xfc,0x47,0xf8, +0x6f,0xf7,0x12,0xfa,0xf,0xf4,0x29,0xec,0x98,0xee,0x5c,0xf0, +0x24,0xe9,0xa0,0xe6,0x6f,0xef,0x92,0xf7,0x49,0xf9,0xb5,0xf9, +0xdf,0xf9,0x84,0xfc,0xeb,0x1,0x5a,0xfc,0x6d,0xf0,0x4e,0xf3, +0xc4,0xf7,0x73,0xee,0x96,0xee,0xcc,0xfc,0xf5,0x1,0xd1,0x0, +0x69,0x3,0x94,0x1,0xa7,0xfd,0x81,0xff,0xbc,0xfb,0x5b,0xef, +0xc5,0xef,0x7a,0xfc,0xd4,0xfa,0x3e,0xf0,0xdd,0xf7,0x80,0x8, +0x66,0x8,0x2,0xfe,0x7a,0xfe,0x25,0x5,0x10,0xff,0x9b,0xf0, +0xed,0xea,0xc2,0xeb,0x56,0xe9,0xe2,0xe5,0xe3,0xe7,0x6d,0xf1, +0xc3,0xfb,0x83,0xfe,0xde,0xfe,0x1d,0x4,0xb6,0x5,0x3a,0xfb, +0x85,0xed,0x17,0xe7,0x2c,0xe4,0xf9,0xdd,0xfa,0xd6,0x6,0xd6, +0xec,0xdc,0x5c,0xe5,0x7d,0xea,0xea,0xef,0xb,0xf6,0x48,0xf7, +0x29,0xf3,0x64,0xec,0x47,0xe6,0x21,0xe5,0x57,0xe3,0xc9,0xd9, +0xc6,0xd5,0x26,0xe1,0xe8,0xe5,0x5f,0xda,0x3d,0xdb,0xe2,0xeb, +0xd1,0xec,0xc,0xe2,0x9a,0xe3,0x45,0xe9,0x8,0xea,0x6f,0xeb, +0x2,0xea,0xd8,0xe9,0x9,0xf2,0xca,0xf2,0xc1,0xe6,0x1d,0xe4, +0x53,0xed,0xbb,0xeb,0xb8,0xdf,0x32,0xdf,0xa6,0xe8,0x1b,0xea, +0xee,0xe7,0x35,0xee,0x95,0xf6,0x18,0xfb,0x56,0xfe,0x86,0xfe, +0x47,0xfc,0xa2,0xfb,0xf7,0xf8,0x3d,0xf1,0xa2,0xea,0x5b,0xea, +0x3a,0xec,0x7e,0xea,0x71,0xea,0xdc,0xf4,0xe7,0x2,0xf0,0x6, +0xe8,0x4,0x1f,0x9,0xc1,0xd,0xb4,0x6,0xf6,0xfb,0x94,0xf8, +0xad,0xf5,0xa9,0xee,0xe,0xeb,0xf8,0xec,0xfe,0xf0,0xc6,0xf6, +0x48,0xfc,0xda,0xfe,0xf0,0x1,0xbf,0x5,0x24,0x1,0x49,0xf7, +0xe7,0xf6,0x59,0xf8,0xcd,0xee,0x25,0xe9,0xf7,0xed,0xa1,0xed, +0xd,0xeb,0x94,0xf0,0xe9,0xf4,0x22,0xf3,0x55,0xf3,0xf4,0xf5, +0xcd,0xf4,0xb9,0xf0,0x20,0xf0,0xa,0xf2,0x36,0xf0,0x84,0xed, +0x40,0xef,0xc6,0xf0,0x7d,0xee,0x3e,0xee,0x73,0xf3,0x7e,0xf7, +0x39,0xf5,0xc4,0xf2,0x3f,0xf5,0x5b,0xf6,0xb6,0xf2,0xc6,0xf1, +0x61,0xf5,0x13,0xf7,0x6,0xf8,0x73,0xfb,0x4b,0xfd,0x1d,0xff, +0xcd,0x2,0x18,0x0,0x2d,0xfb,0x20,0xff,0xba,0xff,0x64,0xf5, +0x10,0xf4,0xfc,0xfe,0xe3,0x0,0xad,0xfb,0xe6,0x0,0x4c,0x8, +0x57,0x6,0xe2,0x7,0x66,0xd,0x61,0x7,0x32,0x1,0xbf,0x6, +0x9e,0x5,0xfb,0xfb,0xb,0xfd,0x35,0x3,0x7d,0x1,0x5d,0xff, +0xd6,0x3,0x5c,0xa,0x1a,0xd,0x8e,0xb,0x1b,0xb,0xe2,0xd, +0x68,0xe,0xda,0x8,0x3c,0x1,0xbf,0xfe,0xbd,0x0,0x38,0xff, +0xda,0xfa,0xc,0xfd,0x17,0x5,0x9c,0x7,0xbf,0x3,0x95,0x5, +0x68,0xc,0xc3,0x9,0x90,0x0,0xbf,0xfe,0x27,0xff,0x49,0xf9, +0x11,0xf5,0x4f,0xf6,0xa8,0xf6,0xf8,0xf6,0x92,0xfa,0xc5,0xfc, +0x92,0xfb,0x48,0xfc,0x18,0xfe,0xd6,0xfa,0x47,0xf6,0xe2,0xf6, +0xb0,0xf6,0xf5,0xf1,0x6d,0xf1,0xd7,0xf5,0xa,0xf7,0x51,0xf7, +0x28,0xfa,0xfa,0xfa,0x18,0xfb,0x70,0xfc,0x98,0xf9,0xf7,0xf5, +0x25,0xf8,0xe7,0xf8,0x93,0xf4,0x7,0xf4,0x60,0xf8,0xb4,0xfa, +0x42,0xfb,0x9f,0xfd,0xb1,0x0,0x4b,0x2,0xe2,0x1,0x72,0xff, +0xfa,0xfc,0x3f,0xfc,0xe1,0xfa,0xef,0xf7,0xf0,0xf6,0x9,0xf9, +0x20,0xfc,0x58,0xfe,0x4d,0xff,0xa7,0x1,0x3d,0x5,0xc5,0x4, +0xa6,0x1,0xc8,0x1,0xca,0x1,0xbe,0xfd,0x64,0xfb,0xf5,0xfc, +0x23,0xfd,0x95,0xfc,0x89,0xff,0xa8,0x2,0x5d,0x2,0x9f,0x3, +0x95,0x8,0xe5,0x9,0xf4,0x5,0x7e,0x5,0xca,0x8,0x39,0x7, +0xc7,0x2,0x6,0x3,0x7b,0x5,0xfc,0x5,0x6d,0x6,0x8,0x8, +0xaa,0xa,0x83,0xd,0x51,0xd,0x1a,0xb,0x1d,0xc,0x81,0xe, +0x8e,0xd,0x4f,0xc,0xa7,0xd,0xe6,0xe,0x9b,0xf,0xa9,0x10, +0x10,0x11,0x39,0x11,0x4c,0x11,0x4,0x11,0xbc,0x11,0xc0,0x12, +0xc1,0x12,0x27,0x13,0xa4,0x14,0x7c,0x16,0x1a,0x18,0x46,0x19, +0x5b,0x1a,0xa9,0x1a,0x2d,0x1a,0xa,0x1a,0xf,0x19,0xa2,0x17, +0x43,0x18,0xfb,0x18,0x28,0x18,0x8e,0x18,0xac,0x1a,0x45,0x1c, +0xbc,0x1c,0x61,0x1d,0x10,0x1f,0x36,0x20,0x3c,0x20,0xde,0x20, +0xae,0x21,0xd,0x21,0xc7,0x1e,0x9e,0x1a,0x34,0x16,0x67,0x15, +0x93,0x17,0x2c,0x18,0xab,0x18,0xa8,0x1d,0x41,0x23,0x1a,0x24, +0xee,0x23,0x14,0x25,0x68,0x22,0x66,0x1b,0x9a,0x15,0x8e,0x11, +0x1b,0xe,0xde,0xf,0xc,0x16,0x7b,0x18,0x67,0x19,0xff,0x1e, +0x41,0x23,0x25,0x22,0xa1,0x20,0x29,0x1f,0xe1,0x1b,0xe2,0x17, +0x85,0x12,0x55,0xc,0xc8,0x9,0x2f,0xc,0x1c,0xf,0x72,0x11, +0xdb,0x17,0x9c,0x20,0x97,0x24,0x84,0x24,0x17,0x24,0x31,0x22, +0x66,0x1d,0x64,0x15,0x2,0xc,0xba,0x5,0xc,0x4,0x63,0x5, +0x74,0x9,0x5d,0x11,0xd5,0x1b,0x34,0x23,0xaf,0x24,0xa1,0x23, +0x37,0x21,0x70,0x1b,0x44,0x12,0x8a,0x8,0x0,0x3,0x90,0x2, +0x59,0x3,0xb1,0x5,0x60,0xc,0x3a,0x14,0xd9,0x18,0x43,0x1b, +0xbe,0x1c,0xd,0x1a,0xa7,0x12,0x7d,0xc,0xb2,0x9,0x52,0x6, +0xa2,0x2,0x36,0x2,0x16,0x4,0xfa,0x5,0xe0,0x8,0x7a,0xc, +0x7f,0xd,0xc,0xc,0xb8,0xb,0x72,0xc,0xe,0xb,0x9b,0x7, +0x70,0x5,0xf3,0x4,0x87,0x3,0xa,0x3,0xf5,0x5,0xd6,0x7, +0x8a,0x7,0x20,0x9,0x29,0x9,0xa3,0x4,0xb,0x1,0x72,0xff, +0x30,0xfd,0x6c,0xfd,0x59,0x1,0xaa,0x4,0x5e,0x6,0x4,0x9, +0x2d,0xc,0x18,0xd,0x8e,0xb,0xe,0x8,0x9c,0x1,0x6b,0xfa, +0x6e,0xf6,0xf2,0xf4,0x27,0xf4,0x5e,0xf6,0x1a,0xfe,0xf9,0x7, +0x28,0xd,0xf2,0xd,0x52,0x10,0x7,0x12,0x58,0xc,0x75,0x2, +0x34,0xfb,0xa9,0xf5,0xbe,0xef,0xe6,0xec,0x26,0xef,0x2a,0xf4, +0x78,0xfb,0x35,0x4,0x17,0x9,0xc0,0x8,0x93,0x8,0x7f,0xa, +0x7e,0x9,0x3e,0x1,0x43,0xf6,0x15,0xf1,0xa3,0xef,0x5e,0xea, +0xe3,0xe5,0x10,0xeb,0xb3,0xf4,0xd4,0xf7,0x34,0xf7,0x11,0xfd, +0x25,0x5,0x63,0x3,0x13,0xfb,0x46,0xf6,0x4a,0xf4,0x4f,0xf0, +0x0,0xe9,0xb0,0xe1,0x62,0xe1,0x90,0xe8,0x62,0xef,0xe3,0xf0, +0x61,0xf0,0x46,0xf5,0x4,0xfd,0xa4,0xfa,0xc3,0xf0,0x7f,0xef, +0xa0,0xf3,0xc4,0xee,0x5a,0xe6,0xd0,0xe7,0xf,0xef,0x8b,0xf0, +0xec,0xed,0xc5,0xef,0x64,0xf5,0xd8,0xf7,0x99,0xf5,0x34,0xf3, +0xe0,0xf3,0xcf,0xf4,0x73,0xf2,0x79,0xef,0xd2,0xef,0x37,0xf2, +0x38,0xf4,0xe,0xf6,0x50,0xf8,0x67,0xfa,0x2a,0xfb,0x20,0xfa, +0xd9,0xf8,0xd1,0xf8,0xb4,0xf8,0xc5,0xf7,0xea,0xf7,0x4c,0xf9, +0x1d,0xfa,0x90,0xfa,0x46,0xfd,0xd9,0x2,0xe4,0x5,0x9f,0x3, +0x5d,0x2,0x62,0x3,0x53,0x0,0xcb,0xfa,0x88,0xf8,0xda,0xf9, +0x19,0xfd,0x7,0xff,0x18,0xff,0xb,0x2,0x8b,0x6,0x6b,0x6, +0x57,0x3,0x93,0x2,0x91,0x2,0xcb,0xfe,0xfe,0xf8,0x94,0xf5, +0xca,0xf4,0x3c,0xf6,0x41,0xf7,0x86,0xf4,0xa3,0xf4,0x51,0xfa, +0xd0,0xfa,0x8d,0xf5,0x35,0xf4,0x99,0xf5,0xe9,0xf3,0x5b,0xef, +0x9d,0xeb,0xfd,0xea,0x4d,0xea,0x82,0xe7,0xc,0xe6,0x4c,0xe6, +0x6f,0xe5,0xea,0xe3,0xa0,0xe3,0x4a,0xe3,0x30,0xe1,0x49,0xe1, +0xd6,0xe4,0x49,0xe4,0x56,0xe0,0xa5,0xe2,0xe8,0xe7,0x3d,0xe5, +0xb0,0xdd,0x17,0xdc,0x1c,0xde,0xec,0xd8,0xeb,0xcf,0x14,0xcf, +0x26,0xd5,0x43,0xd9,0x39,0xda,0x4b,0xdd,0x41,0xe4,0x56,0xe9, +0xed,0xe8,0xf5,0xe5,0x38,0xe3,0x1,0xe3,0xa0,0xe2,0xa8,0xdb, +0x37,0xd5,0xfd,0xd9,0x79,0xe1,0x9b,0xe0,0xa5,0xde,0x4d,0xe6, +0x14,0xf2,0x61,0xf5,0xc1,0xf1,0x33,0xf2,0x8b,0xf7,0x68,0xf8, +0xf4,0xef,0xce,0xe7,0xb3,0xea,0x8e,0xef,0xbb,0xea,0xc0,0xe6, +0xe8,0xee,0x38,0xf9,0xec,0xf9,0x7,0xf7,0x33,0xfa,0xc5,0xfe, +0x80,0xfc,0x16,0xf6,0x9f,0xf1,0x2,0xf0,0x2b,0xee,0x40,0xea, +0x71,0xe8,0x2b,0xec,0xf,0xf1,0x10,0xf2,0x5a,0xf0,0xd0,0xf0, +0xb2,0xf3,0x22,0xf3,0xf6,0xee,0x37,0xed,0x7a,0xed,0x38,0xeb, +0xbd,0xe7,0x92,0xe7,0xfb,0xe9,0x4c,0xea,0xac,0xe9,0xbc,0xeb, +0x16,0xed,0xa0,0xeb,0x7d,0xeb,0x11,0xed,0xf5,0xed,0x45,0xee, +0x34,0xed,0x68,0xeb,0x6,0xed,0xc5,0xf0,0x5c,0xf0,0xf1,0xed, +0x1f,0xf1,0xb4,0xf6,0x11,0xf6,0x45,0xf2,0xc4,0xf3,0xcd,0xf7, +0xe8,0xf5,0x86,0xf0,0x7a,0xf0,0x7e,0xf4,0x9f,0xf5,0xe7,0xf4, +0x4a,0xf7,0x1,0xfd,0xe,0x2,0xd7,0x2,0x8f,0x1,0x18,0x3, +0x25,0x5,0x70,0x1,0xdd,0xfa,0x3a,0xfa,0xe6,0xfd,0x5a,0xfd, +0xba,0xfa,0x63,0xfd,0x1,0x3,0xf6,0x5,0x7,0x7,0xf,0x9, +0x9e,0xb,0xfa,0xc,0x1a,0xd,0x1d,0xb,0xdb,0x6,0xc,0x5, +0xd2,0x5,0xc6,0x2,0xd5,0xfe,0x20,0x1,0xdf,0x4,0x8b,0x4, +0xe5,0x4,0xff,0x8,0x5e,0xc,0xe0,0xb,0xcb,0x9,0xd1,0x8, +0x21,0x8,0xab,0x5,0x45,0x2,0x62,0x0,0xaa,0xff,0xc8,0xfe, +0xb0,0xfe,0x17,0xff,0x13,0xff,0xa6,0x0,0x1e,0x3,0x73,0x3, +0x8,0x4,0x7a,0x6,0xf6,0x6,0xbc,0x5,0xe7,0x5,0x4f,0x5, +0x1e,0x3,0xa,0x3,0xba,0x3,0x75,0x1,0xc3,0xff,0x75,0x1, +0xd8,0x1,0xad,0xff,0xab,0xff,0x42,0x2,0xd7,0x3,0xbc,0x3, +0x32,0x4,0xe,0x6,0xfb,0x6,0xd,0x6,0x77,0x5,0xf7,0x4, +0xe4,0x2,0xe2,0x0,0xca,0xff,0x9d,0xfe,0x49,0xfe,0x9c,0xfe, +0x35,0xfe,0x81,0xfe,0x92,0xff,0x92,0xff,0x1d,0x0,0xc4,0x1, +0xec,0x1,0x71,0x1,0xe1,0x1,0x59,0x1,0x8d,0xff,0x18,0xfe, +0x0,0xfd,0x5f,0xfb,0x19,0xf9,0xe9,0xf7,0xf1,0xf7,0xb0,0xf6, +0x2,0xf6,0xa5,0xf8,0x68,0xfa,0x72,0xf9,0x2f,0xfa,0xff,0xfb, +0x38,0xfb,0xbf,0xf9,0x47,0xf9,0x65,0xf7,0x47,0xf4,0xab,0xf2, +0x96,0xf1,0x7f,0xef,0xea,0xee,0x98,0xf0,0xe4,0xf1,0x4f,0xf3, +0x63,0xf6,0xf,0xf9,0xf2,0xf9,0xa3,0xfa,0xc6,0xfb,0xc1,0xfb, +0x36,0xfa,0x68,0xf9,0xa1,0xf9,0xad,0xf8,0xb0,0xf7,0xd8,0xf8, +0xe3,0xfa,0x75,0xfd,0x29,0x1,0x6d,0x4,0xf6,0x6,0x52,0x9, +0x31,0xa,0xff,0x9,0x4c,0xa,0x54,0xa,0x71,0x9,0x9e,0x8, +0x22,0x9,0xf1,0xa,0xae,0xb,0x5f,0xb,0x54,0xd,0xaa,0x10, +0x66,0x12,0x7,0x14,0x40,0x16,0x9,0x17,0x34,0x17,0x7d,0x17, +0xc,0x16,0xe1,0x13,0x76,0x13,0x67,0x13,0x16,0x12,0x3b,0x11, +0xc1,0x11,0x47,0x12,0x8d,0x12,0x56,0x13,0x87,0x14,0xf3,0x15, +0x4a,0x17,0x79,0x17,0x3c,0x16,0xb5,0x14,0xeb,0x13,0x4e,0x13, +0x2e,0x11,0x4b,0xe,0x79,0xd,0xbb,0xd,0x7d,0xc,0xe6,0xb, +0x72,0xd,0x1d,0xe,0xb9,0xd,0x7c,0xe,0xb,0xf,0x93,0xe, +0x31,0xf,0x55,0x10,0x5c,0xf,0x32,0xd,0xc2,0xc,0xe,0xd, +0x4a,0xb,0x18,0x9,0xab,0x8,0xab,0x7,0x82,0x5,0x6a,0x5, +0x6b,0x7,0x7f,0x9,0xf4,0xb,0x94,0xe,0x98,0x10,0x16,0x13, +0xef,0x14,0xff,0x12,0x42,0xf,0x9e,0xd,0x51,0xc,0x66,0x9, +0x4b,0x7,0xce,0x6,0x68,0x6,0x8a,0x6,0x40,0x8,0x4e,0xb, +0xe3,0xe,0x45,0x12,0x64,0x15,0xaf,0x17,0x6a,0x17,0x8c,0x14, +0x45,0x11,0x40,0xe,0x38,0xa,0xe2,0x5,0x82,0x3,0x67,0x3, +0x14,0x5,0xaa,0x8,0xdf,0xc,0xef,0xf,0x35,0x12,0xc,0x14, +0x5c,0x13,0x66,0xf,0x5e,0xb,0x9d,0x8,0xd0,0x5,0xd5,0x4, +0x45,0x6,0x81,0x6,0x9c,0x5,0xb1,0x5,0x89,0x5,0xca,0x4, +0xfa,0x3,0xd3,0x2,0x3,0x2,0x7b,0x1,0xb2,0x1,0x9c,0x3, +0x34,0x4,0x13,0x2,0x3a,0x1,0x50,0x2,0xb9,0x1,0x66,0xff, +0x38,0xfe,0xa9,0xfd,0xa9,0xfb,0x2b,0xfb,0xda,0xfd,0xc1,0xfd, +0xca,0xf9,0xcd,0xf8,0x24,0xfb,0x58,0xfc,0xa0,0xfd,0x96,0x0, +0xc2,0x1,0x28,0x0,0x59,0x0,0x7c,0x2,0x11,0x1,0xbd,0xfc, +0x93,0xfa,0x6c,0xfa,0x87,0xfa,0x51,0xfb,0x1f,0xfd,0x80,0x0, +0xa9,0x4,0xa,0x7,0xb6,0x6,0x4c,0x4,0x21,0x1,0xac,0xfe, +0x78,0xfd,0x6c,0xfe,0xaf,0x0,0x1b,0x1,0xc2,0x0,0xdc,0x2, +0x60,0x5,0x8e,0x5,0x63,0x4,0xa1,0x2,0x84,0x0,0x40,0xff, +0x1c,0xff,0x90,0xff,0xb9,0x0,0xb3,0x2,0x20,0x4,0x1b,0x3, +0xdc,0x0,0x83,0x0,0x37,0x1,0x59,0x0,0x18,0xff,0x38,0xfe, +0x79,0xfb,0x83,0xf8,0xea,0xf9,0xab,0xfd,0xb,0xff,0x2b,0x0, +0x39,0x3,0x35,0x4,0x94,0x2,0x6b,0x2,0xfd,0x2,0x6c,0x1, +0x9b,0xfe,0xbe,0xfb,0xc4,0xf7,0xdf,0xf2,0x67,0xf1,0x95,0xf5, +0x9d,0xfa,0x6c,0xfe,0xda,0x3,0x44,0x8,0x4a,0x8,0x45,0x7, +0x51,0x7,0xf3,0x5,0x28,0x1,0x75,0xfa,0xf3,0xf5,0x4f,0xf4, +0x48,0xf2,0x19,0xf0,0xb2,0xf2,0x84,0xfc,0xf8,0x6,0x8a,0x9, +0xed,0x6,0x33,0x6,0x8c,0x6,0x3c,0x5,0xc4,0x2,0x89,0xff, +0x74,0xfb,0xda,0xf6,0x8d,0xf3,0x95,0xf3,0x24,0xf7,0xdf,0xfd, +0xf4,0x3,0x21,0x4,0x6a,0x2,0xdf,0x5,0xd2,0x9,0xee,0x5, +0xac,0xfe,0x92,0xfe,0x19,0x2,0xdf,0xfd,0x9f,0xf6,0x5c,0xf8, +0xce,0xfe,0xcc,0xff,0x51,0xfc,0x66,0xfa,0x11,0xfc,0x6e,0xfd, +0x66,0xfa,0xfd,0xf7,0x60,0xfd,0xfd,0x4,0x8e,0x4,0xc6,0xff, +0xb0,0x0,0xb3,0x4,0xd0,0x3,0xa9,0xff,0x31,0xfd,0x14,0xfc, +0x7,0xfa,0xbe,0xf6,0xee,0xf4,0xeb,0xf6,0xa2,0xfa,0x9b,0xfd, +0x79,0x0,0x19,0x4,0xdc,0x7,0x6f,0x9,0xed,0x7,0x69,0x7, +0x95,0x8,0xa9,0x4,0xa5,0xfb,0x56,0xf6,0x81,0xf6,0x83,0xf7, +0xaf,0xf8,0x71,0xfb,0x65,0x0,0xe7,0x6,0x7e,0xb,0x5a,0xd, +0xe6,0x10,0x7b,0x15,0x30,0x13,0xe9,0x9,0xd8,0x4,0xf3,0x6, +0x9d,0x5,0xf9,0xfe,0x89,0xfe,0xc2,0x5,0x21,0x9,0xef,0x6, +0xe,0x9,0xd7,0xf,0xac,0x11,0x7f,0xe,0xad,0xe,0x9c,0x12, +0xc4,0x13,0x2c,0x10,0x4b,0xb,0xbf,0x7,0xd3,0x5,0x62,0x4, +0x46,0x0,0xaa,0xfa,0x9e,0xf9,0xd6,0xfa,0xd,0xfa,0x3b,0xfc, +0x67,0xfe,0x85,0xf9,0xb4,0xf6,0xac,0xf7,0x5d,0xef,0xd9,0xe4, +0xc0,0xe5,0x57,0xe6,0xfc,0xde,0x4c,0xde,0x3c,0xe5,0x93,0xe4, +0x52,0xdf,0x89,0xe0,0x33,0xe2,0xf,0xde,0xdf,0xd8,0x61,0xd5, +0x7f,0xd3,0x3e,0xd2,0x72,0xd1,0x73,0xd4,0xd5,0xd6,0x90,0xd3, +0x12,0xd4,0xd,0xda,0x70,0xda,0xb5,0xd7,0xee,0xd8,0x4c,0xda, +0xb2,0xd9,0xfd,0xd8,0x87,0xd8,0x2f,0xd9,0x7e,0xda,0x77,0xda, +0xa5,0xda,0x39,0xdf,0x7d,0xe5,0x65,0xe6,0x6d,0xe7,0x19,0xef, +0x4f,0xf2,0xa6,0xed,0xe,0xee,0x10,0xf1,0xc4,0xec,0x24,0xe9, +0xd7,0xec,0xeb,0xef,0xe0,0xef,0xf9,0xf2,0x71,0xf8,0x60,0xfb, +0xff,0xfc,0xff,0xfd,0xb,0xfd,0x5e,0xfd,0x2f,0xfe,0xeb,0xfa, +0xe2,0xf7,0xf9,0xf8,0x1d,0xfa,0x1,0xfa,0x9f,0xf9,0x5d,0xf9, +0x49,0xfa,0x6,0xf9,0x75,0xf5,0xc8,0xf6,0x24,0xfa,0xf2,0xf7, +0x5b,0xf6,0x42,0xf9,0x12,0xf8,0xab,0xf3,0x3b,0xf4,0x55,0xf4, +0xaa,0xee,0x14,0xec,0x7c,0xee,0x23,0xed,0xac,0xe9,0x9e,0xea, +0x40,0xed,0xcd,0xed,0x3a,0xed,0x5f,0xed,0x95,0xee,0x26,0xee, +0xa0,0xeb,0x6a,0xeb,0x63,0xed,0x4a,0xed,0x44,0xec,0xb0,0xed, +0xf9,0xef,0xb6,0xef,0x27,0xee,0xfc,0xee,0x9f,0xf0,0x43,0xef, +0x72,0xed,0x31,0xef,0x11,0xf2,0x1c,0xf2,0xe0,0xf1,0xc1,0xf5, +0x89,0xf9,0xaa,0xf7,0x99,0xf6,0xc7,0xfb,0x77,0xfe,0x91,0xfa, +0xe3,0xf9,0x71,0xfe,0xec,0xfe,0x2e,0xfc,0x4c,0xfe,0x2b,0x2, +0x7c,0x2,0x4b,0x3,0x1f,0x6,0x0,0x8,0xb5,0x9,0x30,0xb, +0xe6,0xb,0xac,0xd,0x32,0xe,0x4a,0xc,0x1f,0xc,0x36,0xc, +0x8e,0x9,0x53,0x8,0x61,0x9,0x4b,0x9,0xbc,0x9,0xfd,0xb, +0x71,0xd,0x30,0xe,0x62,0xf,0xac,0xf,0xd8,0xe,0xd4,0xd, +0x54,0xc,0xed,0xa,0xd5,0x9,0x4f,0x7,0xd8,0x4,0xfc,0x4, +0x8,0x5,0xe6,0x3,0xa5,0x4,0xda,0x5,0x30,0x5,0x9,0x5, +0xca,0x5,0x83,0x5,0xb7,0x4,0xd2,0x3,0x97,0x2,0x13,0x2, +0x5f,0x2,0xe3,0x1,0x7a,0x0,0x4a,0x0,0x77,0x1,0x37,0x1, +0xcf,0xff,0x29,0x0,0x9e,0x1,0xc3,0x1,0x8d,0x0,0x8,0x0, +0xb2,0x1,0xd9,0x2,0x92,0x1,0x4e,0x2,0xba,0x5,0x44,0x6, +0x4,0x5,0x39,0x6,0xd2,0x6,0x9a,0x4,0x55,0x3,0xed,0x3, +0x8a,0x3,0x7e,0x2,0x8,0x3,0xb1,0x4,0x3e,0x6,0xc6,0x7, +0x68,0x9,0x44,0xb,0x6f,0xc,0x76,0xb,0x4a,0xa,0x73,0xa, +0x6d,0x9,0x5e,0x7,0xa5,0x6,0xed,0x5,0xde,0x4,0x90,0x5, +0xe4,0x6,0x41,0x7,0x49,0x8,0x48,0xa,0x9f,0xa,0x47,0x9, +0xfe,0x8,0x16,0x9,0x3b,0x7,0xaf,0x4,0xd7,0x2,0x38,0x1, +0xbe,0xff,0xe5,0xfd,0x6c,0xfc,0x4b,0xfd,0xbc,0xfe,0x9a,0xfe, +0xd4,0xfe,0x26,0x0,0xc1,0x0,0x66,0x0,0xb3,0xff,0xa5,0xfe, +0xa7,0xfd,0xdd,0xfc,0x42,0xfb,0x83,0xf9,0xaf,0xf9,0x4b,0xfa, +0xbf,0xf9,0x95,0xfa,0xc9,0xfc,0xb2,0xfd,0x87,0xfe,0x59,0x0, +0xa0,0x1,0x5c,0x2,0x93,0x2,0xe7,0x1,0x8f,0x1,0xcf,0x1, +0xb4,0x1,0x64,0x1,0x86,0x1,0x4a,0x2,0x4a,0x3,0x3a,0x4, +0x6c,0x5,0xdd,0x6,0x3c,0x8,0x6d,0x9,0x69,0xa,0x3e,0xb, +0xb8,0xb,0xf9,0xb,0x9e,0xc,0x7,0xd,0xa0,0xc,0x33,0xc, +0xe2,0xb,0x9b,0xb,0xca,0xb,0xef,0xb,0x1a,0xc,0x58,0xd, +0xdf,0xe,0x53,0xf,0x95,0xf,0xbd,0x10,0xbc,0x11,0x97,0x11, +0x24,0x11,0xda,0x10,0x22,0x10,0x0,0xf,0xe5,0xd,0xfa,0xc, +0x3c,0xc,0xa3,0xb,0x73,0xb,0x92,0xb,0x92,0xb,0xd5,0xb, +0x36,0xc,0x1a,0xc,0x33,0xc,0x74,0xc,0xbe,0xb,0xc9,0xa, +0x4f,0xa,0x5b,0x9,0x5,0x8,0x68,0x7,0x2b,0x7,0x3c,0x6, +0x52,0x5,0xac,0x5,0xcf,0x5,0xb5,0x4,0xf2,0x4,0xda,0x6, +0x99,0x7,0xa7,0x7,0x93,0x8,0xdd,0x8,0x19,0x8,0xa7,0x7, +0x22,0x7,0xe4,0x5,0xb9,0x4,0xef,0x3,0x5f,0x3,0xae,0x3, +0xe1,0x4,0xe,0x6,0x4a,0x7,0x7e,0x8,0xc9,0x8,0xd,0x9, +0xd5,0x9,0x1,0x9,0xc8,0x6,0xea,0x5,0xa7,0x5,0xf8,0x3, +0x51,0x2,0x30,0x2,0x65,0x2,0x2a,0x2,0x5d,0x2,0x1e,0x3, +0x5a,0x3,0xee,0x2,0x95,0x2,0x24,0x2,0xe,0x1,0xce,0xff, +0x2c,0xff,0xda,0xfe,0x36,0xfe,0xd8,0xfd,0x69,0xfe,0xeb,0xfe, +0x74,0xfe,0x95,0xfd,0xc5,0xfc,0xf2,0xfb,0x24,0xfb,0x10,0xfa, +0xe1,0xf8,0xa3,0xf8,0xe,0xf9,0x6,0xf9,0x19,0xf9,0xbe,0xf9, +0xee,0xf9,0x99,0xf9,0x82,0xf9,0x7d,0xf9,0x3f,0xf9,0x6c,0xf8, +0xcb,0xf6,0x85,0xf5,0x4b,0xf5,0xfa,0xf4,0x66,0xf4,0x82,0xf4, +0x0,0xf5,0xb4,0xf5,0x50,0xf7,0xf5,0xf8,0xa5,0xf9,0x33,0xfa, +0x54,0xfa,0xf9,0xf8,0x7b,0xf7,0xbb,0xf6,0x69,0xf5,0x0,0xf4, +0x56,0xf4,0xd9,0xf5,0xfe,0xf6,0x10,0xf8,0xa7,0xf9,0xd3,0xfa, +0x58,0xfb,0x10,0xfc,0xf3,0xfb,0x60,0xfa,0xa1,0xf9,0xee,0xf9, +0xc9,0xf8,0x0,0xf7,0x33,0xf7,0x48,0xf8,0xee,0xf7,0xb6,0xf7, +0xd5,0xf9,0xb4,0xfb,0x3,0xfb,0xdd,0xfa,0x9c,0xfc,0xd3,0xfc, +0x4f,0xfb,0xfd,0xfa,0xb1,0xfa,0x60,0xf8,0xd2,0xf6,0xaa,0xf7, +0xa0,0xf7,0x3c,0xf6,0xc7,0xf6,0x76,0xf8,0x98,0xf8,0xac,0xf8, +0x6e,0xfa,0xf2,0xfb,0x63,0xfb,0x2e,0xfa,0x10,0xfa,0xf5,0xf9, +0xf8,0xf8,0x62,0xf8,0x27,0xf8,0x1a,0xf7,0x33,0xf6,0xad,0xf6, +0xc1,0xf7,0xab,0xf8,0xe5,0xf9,0x6f,0xfb,0x51,0xfc,0x57,0xfc, +0x41,0xfc,0x2a,0xfc,0xa1,0xfb,0x8,0xfb,0x32,0xfb,0xb4,0xfb, +0x8d,0xfb,0x64,0xfb,0x27,0xfc,0x30,0xfd,0x5,0xfe,0x72,0xfe, +0xe1,0xfd,0x3b,0xfd,0xc0,0xfd,0xcc,0xfe,0x78,0xff,0xd9,0xff, +0xad,0x0,0x2e,0x2,0x3b,0x3,0xa6,0x3,0x95,0x4,0x6f,0x5, +0x23,0x5,0x9a,0x4,0x40,0x4,0x2e,0x3,0xfa,0x1,0x29,0x2, +0x42,0x3,0x43,0x4,0xf1,0x5,0x95,0x8,0xc3,0xa,0xe1,0xb, +0x93,0xc,0x10,0xd,0xce,0xc,0x63,0xb,0xcc,0x9,0xf6,0x8, +0xe4,0x7,0x90,0x6,0xd3,0x6,0x1d,0x8,0xb9,0x8,0x6,0xa, +0xfe,0xc,0x29,0xf,0x82,0xf,0xd7,0xf,0xe9,0xf,0xe8,0xd, +0xda,0xa,0xa7,0x8,0x82,0x6,0xc4,0x3,0x5e,0x2,0x6d,0x3, +0xc0,0x5,0xa3,0x8,0xed,0xb,0x6e,0xe,0x3e,0xf,0xc9,0xe, +0xad,0xd,0xc5,0xb,0xed,0x8,0x27,0x6,0x31,0x4,0xd0,0x2, +0xe8,0x2,0x35,0x5,0xf4,0x7,0xfa,0x9,0xf2,0xb,0x4b,0xd, +0xda,0xc,0x3c,0xb,0x5,0x9,0xc9,0x5,0x94,0x2,0xfa,0x0, +0x39,0x0,0xd3,0xff,0x31,0x1,0x96,0x3,0x76,0x5,0x25,0x8, +0x85,0xb,0x71,0xc,0x88,0xa,0x7d,0x8,0x24,0x7,0x21,0x5, +0xe3,0x1,0x9f,0xfe,0x7,0xfd,0xd5,0xfd,0x5b,0x0,0x8a,0x3, +0xdc,0x6,0x9d,0x9,0x11,0xb,0x85,0xb,0x38,0xb,0x23,0x9, +0xbf,0x4,0x1,0x0,0x3e,0xfd,0x46,0xfc,0x88,0xfc,0x32,0xfe, +0xcc,0xff,0x51,0x1,0x68,0x5,0x35,0xa,0x3e,0xb,0x28,0xa, +0x3e,0xa,0xae,0x9,0x9c,0x6,0x70,0x3,0x4a,0x2,0x7b,0x1, +0x71,0xff,0x3c,0xfe,0xba,0xff,0x77,0x2,0x79,0x5,0x35,0xa, +0x28,0x10,0xdc,0x13,0x89,0x14,0x2d,0x14,0x3c,0x12,0x9b,0xd, +0x3f,0x8,0xda,0x3,0x6d,0x0,0xb8,0xfe,0x3c,0x0,0xf0,0x4, +0x4,0xa,0xde,0xd,0x8a,0x12,0x6,0x17,0x56,0x17,0x33,0x15, +0xa8,0x13,0x50,0x10,0x3d,0xb,0x95,0x8,0x61,0x7,0xf5,0x3, +0x0,0x0,0xea,0xfe,0x4d,0xff,0xab,0xfd,0x47,0xfa,0xb,0xf8, +0x2a,0xf7,0x22,0xf6,0x7,0xf6,0xa9,0xf7,0xb1,0xf8,0x1e,0xf8, +0x58,0xf7,0x9b,0xf5,0x6f,0xf1,0x90,0xec,0x9d,0xe8,0x8,0xe4, +0x73,0xde,0xbe,0xda,0xc1,0xd9,0x7e,0xd8,0x93,0xd6,0x41,0xd8, +0xb2,0xdd,0xf1,0xe0,0xa9,0xe1,0x2b,0xe5,0x95,0xe8,0x16,0xe6, +0x53,0xe2,0xf7,0xe0,0xe1,0xdb,0x53,0xd3,0xfd,0xcf,0xdb,0xd0, +0x64,0xcf,0xe1,0xcf,0x44,0xd7,0x87,0xde,0x85,0xe1,0x7a,0xe6, +0x40,0xed,0xab,0xee,0x3a,0xec,0x4b,0xeb,0xaf,0xe9,0x59,0xe5, +0x30,0xe2,0x8d,0xe1,0x54,0xe1,0x1c,0xe3,0x39,0xe8,0xcf,0xec, +0xb8,0xef,0x22,0xf4,0xb8,0xf8,0x82,0xfa,0xd1,0xfb,0xc9,0xfd, +0xaa,0xfd,0x55,0xfc,0xea,0xfb,0x44,0xfa,0x50,0xf8,0x49,0xfa, +0x9a,0xfc,0xda,0xfa,0x1a,0xfb,0x23,0x0,0xf5,0x1,0x66,0xff, +0x42,0x0,0xb9,0x3,0x9b,0x2,0xd4,0xfe,0xa3,0xfe,0xb0,0xff, +0x79,0xfd,0x8,0xfb,0xea,0xfa,0xc2,0xf9,0x18,0xf7,0x5,0xf6, +0x67,0xf5,0x68,0xf3,0x9c,0xf2,0xed,0xf2,0xaa,0xf0,0x56,0xee, +0x15,0xf0,0x5c,0xf1,0xe1,0xee,0xaa,0xed,0x6f,0xee,0xfe,0xec, +0xc6,0xea,0x9e,0xe9,0x6f,0xe7,0x83,0xe5,0xb2,0xe5,0x40,0xe5, +0x61,0xe4,0x2d,0xe6,0x46,0xe8,0x4b,0xe8,0xab,0xe9,0x44,0xed, +0x7a,0xef,0xb5,0xef,0x70,0xef,0xf2,0xee,0xd9,0xee,0xdb,0xee, +0xc4,0xed,0xe,0xed,0x68,0xee,0x4a,0xf0,0xe4,0xf1,0x95,0xf4, +0x45,0xf8,0x95,0xfb,0x17,0xfe,0x2f,0x0,0x1d,0x2,0xd3,0x2, +0xfb,0x1,0xf1,0x1,0xc8,0x2,0x22,0x2,0xf9,0x1,0x1f,0x4, +0xd5,0x4,0x13,0x4,0x6d,0x6,0xd4,0x9,0x38,0xa,0xe5,0xa, +0x72,0xd,0xa5,0xd,0x7f,0xc,0x90,0xd,0xa5,0xd,0x43,0xb, +0x7b,0xa,0x5d,0xa,0x47,0x8,0x7b,0x7,0xbb,0x8,0x4c,0x8, +0x2c,0x7,0x55,0x8,0xe5,0x9,0x3a,0x9,0x99,0x7,0x4c,0x7, +0x72,0x7,0xb4,0x5,0x56,0x3,0xa8,0x2,0x92,0x1,0xe8,0xfe, +0xef,0xfd,0x6b,0xfe,0x7b,0xfd,0x4b,0xfd,0xf9,0xfe,0xd4,0xfe, +0x8e,0xfd,0x65,0xfe,0xe8,0xfe,0x2d,0xfd,0x21,0xfc,0x27,0xfc, +0xfa,0xfa,0x6e,0xf9,0x12,0xf9,0x7b,0xf9,0x6c,0xfa,0x69,0xfb, +0xbe,0xfb,0xbb,0xfc,0xd4,0xfe,0x94,0xff,0xbd,0xfe,0xda,0xfe, +0xb9,0xff,0x81,0xff,0x4f,0xff,0xde,0x0,0xb4,0x2,0x70,0x3, +0xc9,0x4,0x69,0x7,0x78,0x9,0x87,0xa,0x61,0xb,0xfc,0xb, +0xeb,0xb,0xcc,0xa,0x88,0x9,0x75,0x9,0x85,0x9,0x52,0x9, +0xb8,0xa,0xde,0xc,0xe5,0xd,0x75,0xf,0xd8,0x11,0x39,0x12, +0x36,0x11,0x30,0x11,0x75,0x10,0xe9,0xd,0x4d,0xc,0xba,0xb, +0xa6,0x9,0x87,0x7,0xd6,0x7,0x9d,0x8,0x3,0x8,0xc7,0x7, +0xa4,0x8,0xec,0x8,0x9c,0x8,0x84,0x8,0x61,0x7,0x8,0x5, +0x3a,0x3,0x52,0x1,0x13,0xfe,0x64,0xfb,0x3f,0xfa,0xc2,0xf8, +0x19,0xf7,0x21,0xf7,0xcf,0xf7,0x7c,0xf7,0x3c,0xf7,0x8c,0xf7, +0x3,0xf7,0xb5,0xf5,0xb8,0xf4,0xbf,0xf3,0x74,0xf2,0x53,0xf1, +0x9d,0xf0,0x76,0xf0,0xf1,0xf0,0x6c,0xf1,0x93,0xf1,0x7b,0xf2, +0x83,0xf4,0x18,0xf6,0xaf,0xf6,0xbd,0xf7,0x94,0xf9,0xd,0xfb, +0x3,0xfc,0x46,0xfd,0x5,0xff,0x88,0x0,0xaa,0x1,0x65,0x3, +0x8b,0x5,0xbd,0x6,0xca,0x7,0x20,0xa,0x65,0xc,0xf9,0xd, +0x45,0x10,0x31,0x12,0xb6,0x12,0x46,0x14,0xed,0x16,0xec,0x17, +0x19,0x18,0x40,0x19,0xfa,0x19,0x9a,0x19,0x94,0x19,0x36,0x1a, +0xc8,0x1a,0x67,0x1b,0x53,0x1c,0x2e,0x1d,0xe8,0x1d,0x59,0x1e, +0x12,0x1e,0xd2,0x1d,0xe6,0x1d,0xcb,0x1c,0xa7,0x1a,0x73,0x19, +0x27,0x19,0x4b,0x18,0xc9,0x16,0xcb,0x15,0x7f,0x15,0xb4,0x14, +0x8c,0x13,0xf6,0x12,0x47,0x12,0xc,0x11,0xca,0xf,0x72,0xe, +0x1a,0xd,0xbc,0xb,0xfc,0x9,0xbe,0x8,0x6c,0x8,0xa1,0x7, +0x46,0x6,0xa3,0x5,0x78,0x5,0xdb,0x4,0xb,0x4,0x58,0x3, +0xb1,0x2,0xa5,0x2,0x1b,0x3,0xf5,0x2,0xa5,0x2,0x54,0x3, +0x3c,0x4,0x46,0x4,0xdc,0x3,0xdc,0x3,0x58,0x4,0x94,0x4, +0x84,0x4,0x1a,0x5,0x54,0x6,0x90,0x7,0x22,0x9,0x33,0xb, +0x11,0xd,0x6c,0xe,0x5c,0xf,0x29,0x10,0xc2,0x11,0x2,0x14, +0xae,0x14,0x71,0x13,0x36,0x13,0xba,0x14,0x52,0x15,0xc1,0x14, +0xc6,0x15,0x28,0x18,0x38,0x19,0x98,0x19,0x20,0x1b,0x2a,0x1c, +0x84,0x1b,0x7,0x1b,0x24,0x1b,0xd3,0x1a,0x69,0x1a,0x18,0x1a, +0x4b,0x19,0x6c,0x18,0xf,0x18,0x90,0x17,0x12,0x16,0x9,0x14, +0x83,0x12,0x3d,0x11,0x52,0xf,0x77,0xd,0x9f,0xc,0x4,0xc, +0x63,0xb,0x79,0xb,0x56,0xb,0x3e,0xa,0xfa,0x8,0x7b,0x6, +0x5e,0x2,0xe8,0xff,0x73,0xff,0x7e,0xfd,0xb8,0xfa,0x4a,0xfa, +0xaf,0xfa,0x1b,0xf9,0x5b,0xf7,0xd6,0xf7,0x6c,0xf8,0xf3,0xf6, +0xfd,0xf5,0xc8,0xf7,0x34,0xf9,0x84,0xf7,0xb5,0xf5,0xd7,0xf5, +0xcc,0xf4,0xe2,0xf1,0xb,0xf0,0x28,0xef,0x88,0xee,0x2,0xf0, +0xd,0xf3,0xf,0xf5,0xd6,0xf5,0xdb,0xf6,0x8a,0xf8,0x5f,0xf9, +0x8f,0xf8,0x1,0xf8,0x44,0xf8,0x0,0xf7,0x52,0xf4,0xd7,0xf3, +0x44,0xf6,0xc7,0xf7,0xa3,0xf7,0x86,0xf9,0x91,0xfc,0xd6,0xfc, +0x2e,0xfc,0x84,0xfd,0xc9,0xfe,0xc9,0xfe,0xf9,0xfe,0xdf,0xfe, +0x61,0xfd,0x8b,0xfb,0x4e,0xfa,0x4c,0xf9,0xaa,0xf8,0xea,0xf8, +0xb2,0xf9,0x7e,0xfa,0x43,0xfb,0x21,0xfc,0xeb,0xfc,0xed,0xfc, +0xda,0xfb,0x5,0xfa,0xb6,0xf7,0x8a,0xf5,0xc7,0xf3,0xb7,0xf1, +0xc4,0xef,0x7,0xef,0xac,0xee,0xc5,0xed,0x50,0xed,0xc9,0xed, +0xe9,0xed,0x4e,0xed,0xf7,0xec,0x8c,0xec,0xcd,0xea,0x6c,0xe8, +0xd4,0xe6,0xcb,0xe5,0xbc,0xe4,0xcc,0xe3,0xc1,0xe2,0x65,0xe1, +0xaf,0xe0,0x25,0xe1,0xd6,0xe1,0x9c,0xe2,0xc,0xe4,0x42,0xe5, +0x98,0xe5,0xd8,0xe5,0x4,0xe6,0xcb,0xe5,0xfd,0xe5,0xa6,0xe6, +0xcc,0xe6,0x9e,0xe6,0x2c,0xe7,0x55,0xe8,0x17,0xe9,0xdf,0xe9, +0xec,0xeb,0x2c,0xee,0x22,0xef,0x9d,0xf0,0xc0,0xf3,0xcf,0xf5, +0xf,0xf6,0x31,0xf7,0xe0,0xf8,0xc0,0xf8,0xb5,0xf7,0x9f,0xf7, +0x17,0xf8,0x5e,0xf8,0x12,0xf9,0xb9,0xfa,0x70,0xfc,0xbb,0xfd, +0x6a,0xff,0xe1,0x0,0xd4,0x0,0xc6,0x0,0xd0,0x1,0x82,0x1, +0x8c,0xff,0x29,0xff,0xdd,0xff,0xf8,0xfe,0x6e,0xfe,0xaa,0xff, +0xb8,0xff,0xf5,0xfe,0x17,0x0,0xf,0x1,0x43,0x0,0x4f,0x0, +0x16,0x1,0xcd,0xff,0xcf,0xfd,0x4,0xfe,0x8d,0xfe,0x12,0xfd, +0x48,0xfc,0xaf,0xfd,0x3e,0xfe,0xa4,0xfd,0x4f,0xfe,0x35,0xff, +0x77,0xfe,0x75,0xfd,0x8c,0xfd,0xa7,0xfd,0x11,0xfd,0x40,0xfd, +0xb8,0xfe,0xd4,0xff,0x40,0x0,0x21,0x1,0x62,0x2,0x42,0x3, +0xad,0x3,0xf0,0x3,0xe3,0x3,0x29,0x3,0xd9,0x2,0x2a,0x4, +0xe0,0x5,0xe5,0x6,0x44,0x8,0x1f,0xa,0x74,0xb,0x68,0xc, +0x57,0xd,0xd9,0xd,0xfa,0xd,0x1e,0xe,0x5a,0xe,0xa8,0xe, +0xa9,0xe,0x48,0xe,0x68,0xe,0x37,0xf,0xef,0xf,0xb8,0x10, +0xb3,0x11,0x8,0x12,0xea,0x11,0x5f,0x12,0x46,0x13,0xcc,0x13, +0x22,0x13,0xdc,0x10,0xc8,0xd,0x9d,0xb,0x88,0xb,0x14,0xd, +0xb9,0xe,0x95,0xf,0x5e,0xf,0x8,0xe,0xce,0xc,0x8a,0xc, +0x0,0xc,0x9a,0xa,0x1f,0x9,0xb6,0x7,0xbc,0x6,0xd3,0x6, +0x18,0x7,0x7d,0x6,0x7a,0x5,0xc9,0x4,0x54,0x4,0xb3,0x3, +0x4f,0x3,0x14,0x4,0xd0,0x5,0x41,0x7,0x8b,0x7,0xc0,0x6, +0x22,0x5,0xc8,0x2,0xce,0x0,0x7,0x0,0xa2,0xfe,0x0,0xfc, +0x14,0xfb,0xd,0xfd,0x79,0x0,0x7,0x5,0xd9,0x9,0x71,0xc, +0x60,0xc,0x83,0xb,0x69,0xa,0x55,0x8,0x3a,0x6,0x87,0x5, +0xec,0x5,0xe,0x7,0x94,0x8,0x79,0x9,0x2b,0xa,0x1d,0xb, +0x65,0xb,0x98,0xb,0x5d,0xc,0xaf,0xc,0x52,0xd,0x87,0xf, +0xb9,0x11,0x41,0x12,0x3f,0x11,0xe1,0xe,0x75,0xb,0x60,0x8, +0xf0,0x6,0xdd,0x6,0x2e,0x7,0xa1,0x7,0xaf,0x8,0xb0,0xa, +0xa5,0xc,0x38,0xd,0xbe,0xc,0x99,0xb,0x98,0x9,0x94,0x7, +0xe8,0x5,0x40,0x4,0x4f,0x3,0xf4,0x2,0x84,0x2,0xbb,0x2, +0x3d,0x3,0xdf,0x2,0xa7,0x2,0xa1,0x3,0xd3,0x4,0xa4,0x5, +0x4f,0x6,0xc4,0x5,0xef,0x2,0x7d,0xff,0x90,0xfd,0xa6,0xfc, +0x10,0xfc,0xa7,0xfc,0xcf,0xfe,0xe0,0x1,0x93,0x4,0x6c,0x6, +0x70,0x8,0x4f,0x9,0x8f,0x6,0xa5,0x2,0x1f,0x0,0xe8,0xfc, +0x81,0xfa,0x26,0xfd,0xfe,0x1,0x5d,0x5,0xa7,0x9,0x5b,0xe, +0xd1,0xf,0xfb,0xf,0x1e,0x11,0x7e,0x10,0x43,0xd,0xd8,0x9, +0x58,0x7,0x12,0x6,0xb2,0x5,0xd,0x5,0xae,0x4,0x6,0x5, +0xac,0x4,0x88,0x4,0x27,0x7,0x2a,0xb,0xb3,0xd,0x5b,0xf, +0xe7,0x10,0xd0,0xf,0xc,0xb,0x5f,0x5,0x90,0xff,0x22,0xf8, +0x47,0xf1,0xe7,0xed,0xb6,0xec,0xf3,0xec,0x7b,0xf0,0x93,0xf6, +0x78,0xfb,0x26,0xfd,0xed,0xfc,0x4d,0xfb,0xf2,0xf5,0xef,0xed, +0x59,0xe8,0xf4,0xe4,0xda,0xdf,0x23,0xdb,0x64,0xda,0xb3,0xda, +0x95,0xd9,0xc9,0xda,0x2f,0xdf,0x3e,0xe1,0x7c,0xe0,0xf8,0xe1, +0xda,0xe3,0x59,0xe1,0xfc,0xdd,0x49,0xdd,0xc9,0xda,0x2e,0xd5, +0x81,0xd2,0xa3,0xd3,0xcf,0xd3,0x88,0xd4,0xb8,0xd9,0x9b,0xdf, +0x5,0xe2,0x30,0xe3,0xfd,0xe4,0xd0,0xe5,0x72,0xe4,0x74,0xe2, +0x69,0xe2,0xa3,0xe2,0xeb,0xe0,0x6d,0xe2,0xe4,0xe9,0x7f,0xef, +0x5c,0xf0,0x1a,0xf3,0x9d,0xf6,0x67,0xf4,0x31,0xf1,0xa2,0xf3, +0xf9,0xf5,0x10,0xf4,0x35,0xf5,0x39,0xfb,0xde,0xfd,0xac,0xfc, +0x4e,0xff,0x36,0x4,0xe5,0x3,0x9c,0x1,0x96,0x3,0x98,0x3, +0x63,0xfd,0xfa,0xfa,0x4b,0xff,0x35,0xff,0x69,0xfa,0x8d,0xfb, +0x86,0xff,0x2f,0xfd,0x1,0xfc,0x48,0x3,0x76,0x6,0xc8,0xff, +0xb5,0xfd,0x9,0x1,0x8f,0xfb,0x71,0xf3,0xd1,0xf4,0x68,0xf4, +0xc4,0xeb,0x70,0xea,0x82,0xf1,0x9f,0xf1,0x62,0xef,0xe1,0xf5, +0xfc,0xf9,0x82,0xf4,0x5,0xf2,0xd5,0xf3,0x34,0xef,0x9,0xe9, +0x11,0xea,0x57,0xeb,0xbb,0xe7,0x86,0xe6,0x47,0xea,0xfd,0xec, +0x51,0xed,0xa4,0xee,0xa1,0xf0,0xd2,0xf0,0x5,0xf0,0xb2,0xf0, +0x3c,0xf2,0xa,0xf2,0xf6,0xf0,0x2,0xf2,0x4a,0xf4,0xff,0xf4, +0xd8,0xf4,0xac,0xf5,0xe0,0xf6,0x29,0xf8,0xf5,0xfa,0x57,0xfe, +0x57,0xff,0xaf,0xfe,0x48,0xff,0x24,0x1,0x1c,0x3,0x50,0x4, +0x2,0x4,0x5,0x4,0xb3,0x5,0x1a,0x7,0xac,0x8,0x8a,0xb, +0xb6,0xb,0xef,0x8,0xbf,0x9,0xe1,0xc,0x26,0xb,0x35,0x8, +0xa9,0xa,0xd1,0xc,0x6c,0xa,0x36,0xb,0xc2,0xf,0x26,0xe, +0x60,0x9,0xef,0xb,0x8,0xf,0xfe,0x9,0xbb,0x6,0x7b,0x9, +0x6d,0x7,0xda,0x2,0x7f,0x5,0x75,0x7,0xdc,0x1,0x49,0xff, +0x1b,0x3,0x4a,0x3,0x2b,0x0,0xa6,0x1,0xd2,0x3,0x6b,0x0, +0x36,0xfd,0xb4,0xfe,0x9e,0xfe,0x66,0xfa,0x32,0xf8,0x7d,0xf9, +0x5b,0xf9,0xcb,0xf7,0xb7,0xf8,0xe3,0xfa,0x36,0xfb,0x78,0xfb, +0x57,0xfd,0x5d,0xfe,0x15,0xfd,0xa2,0xfb,0xb6,0xfb,0xd9,0xfb, +0xdf,0xfa,0xcc,0xfa,0x3d,0xfc,0xc8,0xfc,0xd3,0xfc,0xa3,0xfe, +0xd5,0x0,0x3b,0x1,0x2b,0x1,0x70,0x2,0xd3,0x3,0xf0,0x3, +0x37,0x4,0xc7,0x5,0xc6,0x6,0x5a,0x6,0xc0,0x6,0x5b,0x8, +0x8c,0x8,0xbb,0x7,0xeb,0x8,0x6,0xb,0x7f,0xb,0x5f,0xb, +0x76,0xb,0x3a,0xb,0x76,0xb,0x5a,0xc,0x56,0xd,0x60,0xe, +0x9a,0xe,0x2c,0xe,0xc0,0xe,0xb6,0xf,0x4b,0xf,0x26,0xe, +0x55,0xd,0x14,0xc,0x56,0xa,0xd2,0x9,0x51,0xa,0xf4,0x9, +0xbe,0x9,0x6,0xb,0x7a,0xb,0x41,0xa,0x33,0xa,0x35,0xb, +0x45,0xa,0x54,0x8,0xdf,0x7,0x13,0x7,0x9e,0x4,0x31,0x3, +0x59,0x3,0xb8,0x2,0x91,0x1,0x99,0x1,0x18,0x2,0xe3,0x1, +0x31,0x2,0xc4,0x3,0x89,0x4,0xf5,0x3,0xbc,0x3,0x41,0x3, +0xdc,0x1,0x23,0x1,0xc7,0x0,0x82,0xff,0x72,0xfe,0xa0,0xfe, +0x6e,0xff,0x5e,0x0,0xbb,0x1,0x77,0x3,0xab,0x4,0x38,0x5, +0xb9,0x5,0xd3,0x5,0x6b,0x5,0x45,0x5,0x82,0x5,0xfe,0x5, +0x82,0x6,0x5c,0x6,0xbc,0x5,0xf2,0x5,0x26,0x7,0x28,0x8, +0xe5,0x8,0xea,0x9,0x92,0xa,0xdb,0xa,0x9d,0xb,0x55,0xc, +0xc0,0xc,0x6f,0xd,0xb1,0xd,0xfa,0xc,0x18,0xc,0x9c,0xb, +0x5a,0xb,0x38,0xb,0xba,0xb,0xab,0xc,0xbf,0xc,0x58,0xc, +0xd0,0xc,0xe1,0xd,0xa8,0xe,0x39,0xe,0xd7,0xc,0xa0,0xc, +0x47,0xd,0xb6,0xc,0x0,0xc,0x2e,0xc,0xac,0xb,0x8f,0xa, +0x68,0xa,0xb0,0xa,0x12,0xa,0x25,0x9,0x1e,0x9,0xab,0x9, +0xd3,0x9,0x78,0x9,0x62,0x9,0x0,0xa,0x54,0xa,0x1f,0xa, +0x70,0xa,0x43,0xa,0x9d,0x8,0xe8,0x7,0xc9,0x8,0x7c,0x8, +0x20,0x7,0x4e,0x7,0x42,0x8,0xb7,0x7,0xe,0x7,0x6d,0x8, +0xf1,0x9,0xa8,0x9,0x80,0x9,0xcd,0xa,0x6c,0xb,0x42,0xa, +0x8e,0x9,0x2c,0xa,0x81,0x9,0x8b,0x7,0x84,0x7,0x94,0x8, +0xaa,0x7,0x5b,0x6,0x1f,0x7,0x54,0x8,0xc2,0x8,0x6a,0xa, +0x52,0xd,0x96,0xe,0x40,0xe,0x57,0xe,0xbf,0xd,0x6a,0xb, +0x60,0x9,0x9d,0x8,0x53,0x8,0x98,0x8,0x5d,0x9,0x59,0xa, +0x37,0xc,0x4e,0xe,0x2a,0xf,0xb,0x10,0x7d,0x11,0x5,0x11, +0x8d,0xf,0x10,0x10,0xc,0x10,0x78,0xd,0x36,0xc,0x63,0xd, +0xfd,0xd,0xdf,0xe,0x73,0x11,0x54,0x12,0x7d,0x10,0x31,0x10, +0x3a,0x12,0x17,0x13,0x6a,0x12,0x92,0x12,0xb6,0x13,0x5a,0x13, +0x24,0x11,0x17,0x11,0xcb,0x12,0x87,0x10,0x75,0xd,0xa3,0xf, +0xec,0x10,0x24,0xe,0x47,0xf,0x2a,0x13,0xe6,0x12,0xb7,0x13, +0xc5,0x18,0x4f,0x19,0x45,0x15,0x1e,0x15,0x25,0x15,0x90,0xf, +0x88,0xb,0x61,0xc,0x43,0xb,0x6,0x8,0x90,0x7,0xb1,0x8, +0x2d,0x9,0xbf,0x9,0xf9,0x9,0x2d,0x9,0xe8,0x7,0x36,0x5, +0x4c,0x0,0x2,0xfc,0xf3,0xf9,0x80,0xf7,0x33,0xf4,0xb1,0xf2, +0x8a,0xf3,0x29,0xf5,0xfe,0xf5,0xfa,0xf5,0x40,0xf5,0x39,0xf2, +0x26,0xee,0xd1,0xeb,0xda,0xe8,0xd2,0xe4,0x15,0xe3,0x1d,0xe1, +0xc6,0xdd,0x30,0xde,0x82,0xe0,0x38,0xe0,0x34,0xe1,0x7e,0xe4, +0x88,0xe5,0xb2,0xe5,0x2,0xe6,0x8c,0xe2,0xc8,0xde,0x31,0xdf, +0x53,0xdd,0x61,0xd8,0x8b,0xd8,0x49,0xda,0xb8,0xd7,0x69,0xd8, +0x8b,0xde,0x95,0xe1,0xca,0xe1,0xa8,0xe4,0xc7,0xe7,0x7a,0xe7, +0xb4,0xe5,0x8b,0xe5,0x9b,0xe6,0xcd,0xe5,0x84,0xe3,0x75,0xe4, +0xd1,0xe7,0x1a,0xe8,0x7b,0xe8,0xb3,0xed,0x8f,0xf0,0x29,0xee, +0x1e,0xf0,0x6b,0xf5,0x82,0xf4,0x9a,0xf2,0x75,0xf6,0xa8,0xf7, +0x7e,0xf3,0x2a,0xf4,0xea,0xf8,0x81,0xf7,0x46,0xf3,0x2b,0xf5, +0x47,0xf8,0xe0,0xf5,0xe8,0xf3,0x1e,0xf7,0x46,0xf9,0x34,0xf7, +0xd5,0xf6,0xc,0xf9,0x7e,0xf7,0xb3,0xf3,0x30,0xf4,0x5a,0xf5, +0x69,0xf2,0xce,0xf0,0x19,0xf2,0x21,0xf0,0xd1,0xec,0x81,0xed, +0x39,0xee,0xf4,0xeb,0xd2,0xea,0x9f,0xeb,0xaa,0xeb,0xb9,0xea, +0x9c,0xe9,0xdc,0xe9,0xcd,0xeb,0x11,0xec,0x68,0xea,0xdf,0xea, +0x2b,0xec,0x55,0xea,0x58,0xe8,0x71,0xe9,0x94,0xe9,0x3b,0xe7, +0x37,0xe7,0x3a,0xe9,0xd0,0xe8,0x34,0xe8,0xe9,0xea,0x82,0xed, +0x4c,0xed,0xdc,0xed,0xe1,0xf0,0x52,0xf2,0x28,0xf1,0x80,0xf1, +0xff,0xf2,0x8,0xf2,0xe6,0xf0,0xb0,0xf2,0xb6,0xf4,0x27,0xf5, +0x6e,0xf6,0x2d,0xf9,0x1d,0xfb,0x13,0xfc,0xd9,0xfd,0xd7,0xff, +0xaa,0x0,0x5d,0x1,0xad,0x2,0x72,0x3,0x1e,0x3,0xc1,0x2, +0x6e,0x3,0xb5,0x4,0xd6,0x5,0xbd,0x6,0x36,0x7,0x1,0x8, +0x30,0x9,0xe5,0x8,0x7f,0x8,0xf,0xa,0x50,0xa,0x45,0x8, +0xc3,0x7,0x45,0x8,0xd1,0x6,0x11,0x5,0x82,0x5,0x9,0x6, +0x35,0x4,0xae,0x2,0xfa,0x2,0x80,0x1,0xa,0xff,0x9d,0xff, +0xa,0x0,0x4c,0xfd,0xde,0xfb,0x18,0xfd,0xb0,0xfc,0xd2,0xfa, +0x1,0xfb,0x3,0xfc,0xa,0xfb,0xa6,0xf9,0xc3,0xf9,0xc0,0xf9, +0x19,0xf8,0x39,0xf6,0xec,0xf5,0xd,0xf6,0x1e,0xf5,0x19,0xf5, +0x7f,0xf6,0xa7,0xf6,0x94,0xf6,0x87,0xf8,0x7d,0xfa,0x2c,0xfb, +0xdd,0xfb,0x96,0xfc,0xa1,0xfc,0x29,0xfc,0x12,0xfc,0xab,0xfc, +0xba,0xfc,0x53,0xfc,0x56,0xfd,0x8c,0xff,0x38,0x1,0x5a,0x2, +0xfe,0x3,0xe6,0x5,0x15,0x7,0xf0,0x7,0x37,0x9,0x3b,0xa, +0x88,0xa,0xbc,0xa,0x4,0xb,0x1d,0xb,0xb,0xb,0x44,0xb, +0x13,0xc,0xce,0xc,0x15,0xd,0xa6,0xd,0x88,0xe,0x23,0xf, +0xd1,0xf,0xd8,0x10,0x61,0x11,0xf8,0x10,0x6b,0x10,0x13,0x10, +0x24,0xf,0xd2,0xd,0x2a,0xd,0xa8,0xc,0x9e,0xb,0xe5,0xa, +0x8d,0xa,0xe7,0x9,0x86,0x9,0x73,0x9,0xcb,0x8,0xf8,0x7, +0x84,0x7,0x1b,0x7,0xbd,0x6,0x2c,0x6,0x5b,0x5,0xd7,0x4, +0xe9,0x3,0x2e,0x2,0x1f,0x1,0x82,0x0,0xe5,0xfe,0x6a,0xfd, +0x51,0xfd,0x65,0xfd,0x33,0xfd,0xde,0xfd,0x36,0xff,0x32,0x0, +0xdf,0x0,0x73,0x1,0xab,0x1,0x2a,0x1,0xde,0xff,0x2,0xff, +0x29,0xff,0xa3,0xfe,0xba,0xfd,0xa8,0xfe,0x48,0x0,0xd9,0x0, +0x2e,0x2,0xf4,0x4,0x9f,0x6,0xe6,0x6,0x1c,0x8,0x72,0x9, +0x8c,0x8,0x4f,0x7,0xbf,0x7,0xe3,0x7,0x4d,0x7,0xbf,0x7, +0xce,0x8,0x77,0x9,0xf0,0x9,0xe1,0xa,0x63,0xc,0x2b,0xd, +0x37,0xd,0xf4,0xd,0x7c,0xe,0xf5,0xd,0x95,0xd,0x38,0xd, +0x37,0xc,0x42,0xb,0xa4,0xa,0x35,0xa,0xe8,0x9,0xae,0x9, +0xc0,0x9,0xe9,0x9,0xd0,0x9,0xc6,0x9,0xd8,0x9,0x86,0x9, +0xd8,0x8,0x6b,0x8,0x3,0x8,0xde,0x6,0x9a,0x5,0xe0,0x4, +0x7,0x4,0x21,0x3,0xa2,0x2,0x15,0x2,0x88,0x1,0x57,0x1, +0x60,0x1,0x8b,0x1,0x73,0x1,0xf4,0x0,0x9d,0x0,0x65,0x0, +0xb8,0xff,0x9a,0xfe,0x5,0xfe,0x3b,0xfe,0xd0,0xfd,0x1c,0xfd, +0xe7,0xfd,0xae,0xfe,0x2d,0xfe,0xcf,0xfe,0x92,0x0,0xda,0x0, +0x59,0x0,0xdb,0x0,0x48,0x1,0x66,0x0,0xaa,0xff,0x86,0x0, +0x8d,0x1,0x7c,0x1,0xc6,0x1,0x27,0x3,0x1a,0x4,0x37,0x4, +0xe3,0x4,0x26,0x6,0x41,0x6,0x50,0x5,0x99,0x5,0xde,0x6, +0xde,0x6,0x6c,0x6,0x61,0x7,0x44,0x8,0xc2,0x7,0xa7,0x7, +0x88,0x8,0x76,0x8,0xb2,0x7,0x38,0x8,0x46,0x9,0x11,0x9, +0x7f,0x8,0xbc,0x8,0xa3,0x8,0x95,0x7,0xef,0x6,0xe6,0x6, +0x38,0x6,0x5a,0x5,0x62,0x5,0x4e,0x5,0x87,0x4,0x60,0x4, +0xa1,0x4,0xa,0x4,0xad,0x3,0x2,0x4,0x15,0x3,0x4a,0x1, +0xcc,0x0,0x79,0x0,0xf8,0xfe,0x50,0xfe,0x4,0xff,0xcf,0xfe, +0x3,0xfe,0x4a,0xfe,0x61,0xfe,0x6b,0xfd,0xd,0xfd,0x4c,0xfd, +0xda,0xfc,0x37,0xfc,0xe9,0xfb,0xc7,0xfb,0x3c,0xfc,0xa7,0xfc, +0x39,0xfc,0x24,0xfc,0xa6,0xfc,0x57,0xfc,0x12,0xfc,0x7,0xfd, +0x5e,0xfd,0xb8,0xfc,0x8f,0xfd,0x7,0xff,0xb7,0xfe,0x6e,0xfe, +0x58,0xff,0x63,0xff,0xfc,0xfe,0x79,0xff,0xd7,0xff,0x1b,0x0, +0x9d,0x0,0xbc,0x0,0x50,0x1,0x3b,0x2,0x41,0x2,0xb2,0x2, +0xd2,0x3,0x8e,0x3,0xd0,0x2,0x26,0x3,0x2c,0x3,0xb5,0x2, +0xf9,0x2,0x2f,0x3,0xca,0x2,0xd6,0x2,0x67,0x3,0xcf,0x3, +0x15,0x4,0x6b,0x4,0xac,0x4,0x59,0x4,0x50,0x3,0x85,0x2, +0x2a,0x2,0x70,0x1,0xce,0x0,0xb5,0x0,0x48,0x0,0xbc,0xff, +0xde,0xff,0x3a,0x0,0x1a,0x0,0x7c,0xff,0x9,0xff,0x16,0xff, +0xa1,0xfe,0x7d,0xfd,0xbe,0xfc,0x5,0xfc,0xe0,0xfa,0x80,0xfa, +0x11,0xfb,0x43,0xfb,0xd6,0xfa,0xc0,0xfa,0x54,0xfb,0xab,0xfb, +0x89,0xfb,0xb6,0xfb,0xa7,0xfb,0xaa,0xfa,0x2c,0xfa,0xbe,0xfa, +0xb9,0xfa,0xfe,0xf9,0xec,0xf9,0x6a,0xfa,0xd0,0xfa,0x30,0xfb, +0x95,0xfb,0x45,0xfc,0x2d,0xfd,0x82,0xfd,0xb2,0xfd,0x72,0xfe, +0x80,0xfe,0xab,0xfd,0xe1,0xfd,0xb3,0xfe,0x6d,0xfe,0x3b,0xfe, +0xe8,0xfe,0xeb,0xfe,0xb2,0xfe,0xa6,0xff,0x94,0x0,0xbb,0x0, +0x45,0x1,0x6,0x2,0x1b,0x2,0xe1,0x1,0xce,0x1,0xb3,0x1, +0x44,0x1,0x97,0x0,0x2f,0x0,0x35,0x0,0x5d,0x0,0xaf,0x0, +0x2f,0x1,0x7e,0x1,0xa7,0x1,0xdf,0x1,0xb8,0x1,0x2e,0x1, +0xa8,0x0,0xd5,0xff,0xce,0xfe,0x32,0xfe,0xb6,0xfd,0x4a,0xfd, +0x6b,0xfd,0xb9,0xfd,0xc0,0xfd,0x94,0xfd,0x60,0xfd,0x44,0xfd, +0xf4,0xfc,0x57,0xfc,0xed,0xfb,0x7d,0xfb,0xab,0xfa,0x2a,0xfa, +0x2b,0xfa,0xdd,0xf9,0x5b,0xf9,0x68,0xf9,0x8d,0xf9,0x43,0xf9, +0x59,0xf9,0xe1,0xf9,0xff,0xf9,0xef,0xf9,0x20,0xfa,0x28,0xfa, +0xf8,0xf9,0xe6,0xf9,0xdc,0xf9,0xbc,0xf9,0xbf,0xf9,0xef,0xf9, +0x3f,0xfa,0xc2,0xfa,0x3d,0xfb,0x8b,0xfb,0x9,0xfc,0x8d,0xfc, +0xd6,0xfc,0x18,0xfd,0x23,0xfd,0x14,0xfd,0x57,0xfd,0x84,0xfd, +0x7f,0xfd,0xb2,0xfd,0xfb,0xfd,0x4d,0xfe,0xb8,0xfe,0x10,0xff, +0x62,0xff,0xb2,0xff,0xe5,0xff,0xa,0x0,0x14,0x0,0x2,0x0, +0xe4,0xff,0xca,0xff,0xd1,0xff,0xe5,0xff,0x0,0x0,0x2f,0x0, +0x4c,0x0,0x62,0x0,0x8a,0x0,0xa6,0x0,0x94,0x0,0x53,0x0, +0x1b,0x0,0xfc,0xff,0xbb,0xff,0x68,0xff,0x2b,0xff,0xf9,0xfe, +0xd5,0xfe,0xc1,0xfe,0xab,0xfe,0x89,0xfe,0x5d,0xfe,0x41,0xfe, +0x20,0xfe,0xec,0xfd,0xb6,0xfd,0x72,0xfd,0x38,0xfd,0x3,0xfd, +0xae,0xfc,0x7e,0xfc,0x7c,0xfc,0x63,0xfc,0x50,0xfc,0x3d,0xfc, +0x1a,0xfc,0x20,0xfc,0x36,0xfc,0x1b,0xfc,0xf5,0xfb,0x16,0xfc, +0x60,0xfc,0x8a,0xfc,0xca,0xfc,0x32,0xfd,0x6c,0xfd,0xaa,0xfd, +0x6,0xfe,0x36,0xfe,0x5f,0xfe,0x8a,0xfe,0xa4,0xfe,0xed,0xfe, +0x43,0xff,0x68,0xff,0xa4,0xff,0x1b,0x0,0x9a,0x0,0x1a,0x1, +0xa1,0x1,0xf3,0x1,0xa,0x2,0x29,0x2,0x49,0x2,0x4c,0x2, +0x3e,0x2,0x20,0x2,0x1b,0x2,0x2d,0x2,0x29,0x2,0x3a,0x2, +0x5d,0x2,0x6b,0x2,0x8c,0x2,0xb1,0x2,0xb7,0x2,0xa0,0x2, +0x67,0x2,0x35,0x2,0xf9,0x1,0x85,0x1,0x2a,0x1,0xfe,0x0, +0xbe,0x0,0x6a,0x0,0x28,0x0,0x19,0x0,0xd,0x0,0xe3,0xff, +0xeb,0xff,0xf,0x0,0xf2,0xff,0xb8,0xff,0x70,0xff,0x2,0xff, +0xa7,0xfe,0x74,0xfe,0x24,0xfe,0xbf,0xfd,0x98,0xfd,0x8e,0xfd, +0x61,0xfd,0x5a,0xfd,0x77,0xfd,0x71,0xfd,0x72,0xfd,0x71,0xfd, +0x4e,0xfd,0x3f,0xfd,0x30,0xfd,0x11,0xfd,0x16,0xfd,0x38,0xfd, +0x63,0xfd,0x94,0xfd,0xcb,0xfd,0x1,0xfe,0x13,0xfe,0x2a,0xfe, +0x53,0xfe,0x2d,0xfe,0xe7,0xfd,0xe4,0xfd,0xfc,0xfd,0x2d,0xfe, +0x7e,0xfe,0xb3,0xfe,0xea,0xfe,0x49,0xff,0xa7,0xff,0xe4,0xff, +0x6,0x0,0x21,0x0,0x38,0x0,0x55,0x0,0x7b,0x0,0x6a,0x0, +0x23,0x0,0xa,0x0,0x1e,0x0,0x27,0x0,0x23,0x0,0x22,0x0, +0x43,0x0,0x87,0x0,0xbb,0x0,0xe2,0x0,0x17,0x1,0x3d,0x1, +0x3c,0x1,0x21,0x1,0xe3,0x0,0x75,0x0,0x13,0x0,0xd8,0xff, +0x8f,0xff,0x50,0xff,0x25,0xff,0xe9,0xfe,0xca,0xfe,0xc2,0xfe, +0xb8,0xfe,0xdb,0xfe,0xe5,0xfe,0xb2,0xfe,0xaa,0xfe,0xa0,0xfe, +0x4b,0xfe,0xee,0xfd,0xb3,0xfd,0x8f,0xfd,0x62,0xfd,0x22,0xfd, +0xf2,0xfc,0xf4,0xfc,0x33,0xfd,0x6a,0xfd,0x79,0xfd,0xc3,0xfd, +0x19,0xfe,0x9,0xfe,0xe7,0xfd,0x9,0xfe,0x48,0xfe,0x75,0xfe, +0x94,0xfe,0xcc,0xfe,0xea,0xfe,0xba,0xfe,0xa3,0xfe,0xfa,0xfe, +0x87,0xff,0xf9,0xff,0x5b,0x0,0xe9,0x0,0x96,0x1,0x22,0x2, +0x6a,0x2,0x96,0x2,0xe8,0x2,0x1a,0x3,0xf5,0x2,0x7,0x3, +0x7e,0x3,0xe3,0x3,0x7,0x4,0x3c,0x4,0xec,0x4,0xc5,0x5, +0x3d,0x6,0xbf,0x6,0x7c,0x7,0xca,0x7,0x84,0x7,0x25,0x7, +0x15,0x7,0x7f,0x7,0xf5,0x7,0xd1,0x7,0x8b,0x7,0x2f,0x8, +0x39,0x9,0xac,0x9,0x2a,0xa,0x5,0xb,0x65,0xb,0x6d,0xb, +0x9b,0xb,0x81,0xb,0x49,0xb,0x51,0xb,0x68,0xa,0x51,0x8, +0x1e,0x8,0x9a,0xb,0x8a,0xf,0xc7,0x10,0x51,0x11,0x80,0x13, +0xf,0x14,0x0,0x10,0xb9,0xa,0x15,0x7,0x3c,0x4,0x72,0x3, +0xf1,0x5,0xd8,0x9,0x47,0xe,0x51,0x13,0xe,0x17,0x30,0x17, +0x4,0x15,0xf0,0x13,0x40,0x12,0xd2,0xc,0x9c,0x7,0x16,0x7, +0x58,0xa,0xea,0xe,0x63,0x11,0xa5,0x10,0x23,0x10,0x1a,0x10, +0xb2,0xc,0x78,0x6,0xe,0x2,0xde,0x0,0xab,0x1,0x4d,0x5, +0x1e,0xb,0xa0,0xf,0x81,0x12,0xc9,0x13,0x5,0x11,0xcd,0xb, +0x87,0x7,0x82,0x3,0xab,0xfe,0xd6,0xfa,0x4d,0xfb,0xc1,0xff, +0x7e,0x2,0x19,0x2,0xb5,0x3,0x4c,0x7,0xe6,0x7,0x82,0x5, +0x55,0x3,0x4d,0x2,0x8d,0x2,0x68,0x3,0x6b,0x2,0xbf,0xff, +0x6d,0xfe,0xb,0xfe,0x15,0xfc,0x7a,0xfa,0x47,0xfc,0x2a,0xff, +0x4a,0x0,0xf5,0x1,0x85,0x5,0xfd,0x7,0x10,0x8,0x82,0x6, +0xa7,0x3,0x6,0x1,0x2,0xff,0x97,0xfb,0xd2,0xf7,0x12,0xf8, +0x7,0xfd,0xfa,0x1,0x7d,0x4,0x16,0x7,0x48,0x9,0xcd,0x7, +0x4b,0x4,0x50,0x2,0xde,0x1,0xc3,0x1,0xf9,0x1,0xd,0x2, +0x71,0x0,0xcb,0xfe,0xb3,0xff,0xd0,0xfe,0x5f,0xfa,0x7b,0xf9, +0x6f,0xfb,0x88,0xf9,0xd,0xf8,0x73,0xfb,0x86,0xfd,0x46,0xfc, +0x32,0xfd,0xe2,0xfd,0x55,0xf7,0xb1,0xed,0xb6,0xe7,0x94,0xe2, +0xdf,0xdd,0x10,0xdd,0x43,0xdc,0x7f,0xda,0x3a,0xde,0xf9,0xe4, +0xf5,0xe5,0xb8,0xe2,0x73,0xe2,0xc6,0xe3,0x2b,0xe1,0xd,0xdd, +0xc3,0xdb,0xce,0xda,0xd6,0xd8,0xe8,0xd8,0x34,0xda,0xc8,0xd9, +0x63,0xd9,0x4,0xdb,0x4,0xdc,0x52,0xdc,0x80,0xe0,0x5f,0xe6, +0x8f,0xe7,0xa2,0xe7,0x88,0xec,0xf7,0xf0,0x6,0xef,0x9c,0xeb, +0x5e,0xeb,0xf1,0xea,0x6e,0xe9,0x3a,0xea,0x89,0xec,0x3c,0xef, +0xba,0xf3,0x2f,0xf8,0x25,0xfb,0xa7,0xfe,0x3a,0x2,0x58,0x3, +0xd1,0x2,0x61,0x3,0x83,0x4,0xf,0x4,0x84,0x3,0x29,0x4, +0x56,0x4,0x8c,0x4,0xe2,0x4,0x2a,0x3,0x7f,0x1,0x22,0x3, +0xd7,0x5,0xaa,0x6,0x13,0x7,0xd7,0x8,0x7c,0x9,0x69,0x7, +0xc6,0x5,0x5,0x5,0x6,0x2,0xd6,0xfd,0xd5,0xfa,0x20,0xf8, +0xfe,0xf5,0xed,0xf5,0x98,0xf6,0x92,0xf6,0x40,0xf7,0xf6,0xf8, +0x75,0xf9,0x30,0xf8,0xa8,0xf6,0x10,0xf5,0xf8,0xf2,0x1d,0xf1, +0xa1,0xef,0x91,0xed,0x87,0xeb,0x9a,0xea,0xcb,0xe9,0xf0,0xe8, +0x96,0xe9,0x26,0xeb,0xea,0xeb,0x79,0xec,0x49,0xee,0x62,0xf0, +0x94,0xf0,0xc,0xf0,0x9c,0xf0,0x55,0xf0,0x9,0xef,0xb9,0xee, +0x1f,0xee,0x30,0xed,0x88,0xee,0x15,0xf1,0x90,0xf2,0xcf,0xf4, +0xc4,0xf9,0x73,0xfe,0xa,0x0,0x76,0x1,0x3,0x4,0x62,0x4, +0x9a,0x3,0x91,0x4,0x66,0x5,0x2f,0x5,0xd0,0x5,0x31,0x7, +0x55,0x8,0xc2,0x9,0xde,0xb,0x71,0xd,0x2d,0xe,0xd5,0xf, +0xc9,0x11,0xf0,0x11,0xb2,0x11,0x62,0x12,0x52,0x12,0xe6,0x10, +0x16,0xf,0x41,0xd,0x9b,0xb,0xa3,0xa,0x12,0xa,0x53,0x9, +0x95,0x9,0x49,0xb,0x9b,0xb,0x24,0xa,0x6,0xa,0xde,0xa, +0x8c,0xa,0xe6,0x9,0x13,0x9,0xa5,0x6,0x20,0x3,0xa,0x0, +0x92,0xfd,0x88,0xfb,0x8e,0xfa,0x85,0xfa,0x3,0xfa,0xd,0xf9, +0x0,0xf9,0x72,0xf9,0x3e,0xf9,0x2a,0xf9,0xe3,0xf9,0x9,0xfa, +0x16,0xf9,0x43,0xf8,0xc5,0xf7,0x85,0xf7,0x45,0xf8,0xc4,0xf9, +0x48,0xfb,0xb0,0xfc,0xe5,0xfd,0x1d,0xff,0x62,0x0,0x7d,0x1, +0x3e,0x2,0x36,0x2,0xf5,0x1,0x63,0x2,0xf,0x3,0xcd,0x3, +0x95,0x4,0xde,0x4,0x10,0x5,0x70,0x5,0xb5,0x5,0xe7,0x5, +0x41,0x6,0x72,0x7,0xf0,0x8,0xc8,0x9,0x4a,0xb,0xa6,0xd, +0x46,0xf,0x53,0x10,0x56,0x11,0xfa,0x11,0xfc,0x10,0xa0,0xd, +0xef,0x9,0xa7,0x6,0x6e,0x3,0x7d,0x2,0x36,0x3,0x71,0x3, +0xaf,0x4,0xb9,0x6,0x2c,0x8,0x1,0xa,0xd2,0xb,0xce,0xc, +0xf8,0xc,0xba,0xb,0xa1,0x9,0x6f,0x7,0x5a,0x5,0x80,0x3, +0x6b,0x1,0x1,0x0,0xe4,0xff,0x41,0x0,0xca,0x1,0x69,0x4, +0x11,0x7,0x60,0x9,0xa1,0x9,0xf9,0x8,0xaf,0x9,0x29,0x9, +0x73,0x7,0xdb,0x6,0x99,0x5,0x26,0x4,0xb2,0x3,0xec,0x2, +0xd3,0x3,0x16,0x7,0xb9,0x9,0x96,0xb,0xd2,0xc,0xbe,0xc, +0xdf,0xc,0xb8,0xd,0xd7,0xd,0x9e,0xc,0x53,0xb,0xbc,0xa, +0x26,0x9,0x2b,0x7,0x8c,0x7,0x34,0x9,0x59,0xa,0x52,0xb, +0x2,0xc,0x95,0xc,0x2,0xd,0x28,0xd,0x4f,0xe,0xbf,0xf, +0x76,0xf,0xff,0xd,0x4e,0xc,0xd9,0xa,0x72,0xa,0xa9,0xa, +0x81,0xa,0xfb,0x9,0x62,0x9,0xe7,0x8,0xab,0x8,0x92,0x8, +0x6c,0x8,0xae,0x8,0x54,0x9,0xbe,0x8,0xf3,0x6,0xf6,0x5, +0x8f,0x5,0x21,0x5,0xa5,0x5,0x2f,0x6,0x54,0x5,0xc,0x4, +0x76,0x3,0xbb,0x3,0x5e,0x4,0x58,0x4,0x80,0x3,0x5a,0x2, +0xac,0x0,0x97,0xfe,0x44,0xfd,0xd1,0xfc,0x64,0xfc,0x93,0xfc, +0x78,0xfd,0xb2,0xfd,0x15,0xfe,0xe6,0xff,0xd4,0x1,0x5c,0x3, +0xa8,0x4,0xe3,0x4,0x70,0x4,0xf5,0x3,0x79,0x3,0x5d,0x3, +0xf1,0x2,0xc4,0x1,0xb0,0x0,0xcb,0xff,0x4c,0xff,0xb4,0xff, +0xc7,0x0,0x6d,0x2,0xba,0x3,0xf6,0x3,0x43,0x4,0xd6,0x4, +0x35,0x5,0xb3,0x5,0x4,0x6,0xd0,0x5,0x1,0x5,0xcc,0x3, +0x3a,0x3,0xdb,0x2,0x24,0x2,0x53,0x2,0xab,0x2,0xb,0x2, +0xec,0x1,0x4e,0x2,0xe4,0x1,0x56,0x1,0x1c,0x1,0x6f,0x0, +0xa,0xff,0x71,0xfd,0x42,0xfc,0xdd,0xfb,0x30,0xfc,0x7f,0xfc, +0x6e,0xfc,0x99,0xfc,0x8,0xfd,0x63,0xfd,0xd7,0xfd,0xc,0xfe, +0xb9,0xfd,0x1d,0xfd,0x22,0xfc,0xa5,0xfa,0xa8,0xf8,0xba,0xf6, +0xd4,0xf5,0x59,0xf5,0x78,0xf4,0x1a,0xf4,0x9f,0xf4,0xa1,0xf5, +0x70,0xf7,0xdd,0xf9,0xd5,0xfb,0xb9,0xfc,0xc4,0xfc,0xfa,0xfb, +0x9,0xfa,0xe5,0xf7,0xc7,0xf6,0x31,0xf6,0xaf,0xf5,0xbc,0xf5, +0x48,0xf6,0x12,0xf7,0x64,0xf8,0x5b,0xfa,0x67,0xfc,0xf9,0xfd, +0x22,0xff,0xc4,0xff,0xcc,0xff,0xeb,0xff,0x16,0x0,0x7f,0xff, +0x5a,0xfe,0x55,0xfd,0x8c,0xfc,0xd2,0xfb,0x93,0xfb,0x77,0xfc, +0xbc,0xfd,0xb5,0xfe,0x1a,0x0,0x50,0x1,0xcd,0x1,0xdf,0x2, +0xee,0x3,0x6f,0x3,0x4e,0x2,0xa,0x1,0x1d,0xff,0x5c,0xfd, +0x46,0xfc,0x5c,0xfb,0x7,0xfb,0xc1,0xfb,0x82,0xfc,0xc3,0xfc, +0xbc,0xfd,0x0,0xff,0xb6,0xfe,0xf8,0xfd,0xe7,0xfd,0x9c,0xfc, +0x23,0xfa,0xd1,0xf8,0x8a,0xf8,0xfe,0xf7,0x54,0xf7,0x20,0xf7, +0x85,0xf7,0x79,0xf8,0x88,0xf9,0xe0,0xf9,0xda,0xf9,0x80,0xfa, +0x11,0xfb,0x89,0xfa,0xc5,0xf9,0x38,0xf9,0x5f,0xf8,0x96,0xf7, +0x38,0xf7,0xe0,0xf6,0xc6,0xf6,0x79,0xf7,0x65,0xf8,0x25,0xf9, +0x96,0xfa,0x75,0xfc,0x8e,0xfd,0x52,0xfe,0x37,0xff,0x9a,0xff, +0x8f,0xff,0x4a,0xff,0x76,0xfe,0x93,0xfd,0x5c,0xfd,0x3b,0xfd, +0xa0,0xfc,0xbb,0xfc,0xec,0xfd,0x89,0xfe,0xc4,0xfe,0xc,0x0, +0x78,0x1,0x29,0x2,0xa3,0x2,0xc8,0x2,0xb5,0x2,0xac,0x2, +0xe2,0x1,0x51,0x0,0x82,0xff,0xdd,0xff,0x87,0xff,0x35,0xfe, +0x3e,0xfe,0x30,0xff,0xd1,0xfe,0x67,0xfe,0x24,0xff,0x6d,0xff, +0xf3,0xfe,0x5c,0xfe,0x44,0xfd,0x13,0xfc,0xcd,0xfb,0xa8,0xfb, +0x4b,0xfa,0xe5,0xf8,0x23,0xf9,0xb0,0xf9,0xe,0xf9,0x17,0xf8, +0x8d,0xf7,0x8c,0xf7,0xe6,0xf7,0x74,0xf7,0x11,0xf6,0x73,0xf5, +0xcf,0xf5,0x3a,0xf5,0x8d,0xf3,0xaf,0xf2,0xab,0xf2,0x2c,0xf2, +0xab,0xf1,0x29,0xf2,0x0,0xf3,0x83,0xf3,0x31,0xf4,0xec,0xf4, +0xe1,0xf4,0xf6,0xf4,0xd4,0xf5,0x8f,0xf5,0x49,0xf4,0x83,0xf4, +0xf4,0xf4,0xa2,0xf3,0xef,0xf2,0x13,0xf4,0xd7,0xf4,0x8,0xf5, +0xfa,0xf5,0xf,0xf7,0xc5,0xf7,0xc1,0xf8,0x93,0xf9,0xdb,0xf9, +0x7f,0xfa,0x37,0xfb,0x16,0xfb,0x96,0xfa,0x25,0xfa,0xdd,0xf9, +0x1a,0xfa,0x1a,0xfa,0x6d,0xf9,0xa4,0xf9,0xf8,0xfa,0x9b,0xfb, +0xbb,0xfb,0xca,0xfc,0xfb,0xfd,0xeb,0xfd,0x41,0xfd,0x8,0xfd, +0xf9,0xfc,0x75,0xfc,0xc6,0xfb,0x8c,0xfb,0x9b,0xfb,0x96,0xfb, +0xa6,0xfb,0xc1,0xfb,0xc9,0xfb,0x1e,0xfc,0xa6,0xfc,0xbf,0xfc, +0x6f,0xfc,0x37,0xfc,0x4b,0xfc,0x5e,0xfc,0x7,0xfc,0x7f,0xfb, +0x56,0xfb,0x84,0xfb,0x92,0xfb,0x6f,0xfb,0x87,0xfb,0xe9,0xfb, +0x20,0xfc,0x52,0xfc,0xeb,0xfc,0x66,0xfd,0x75,0xfd,0xc4,0xfd, +0x54,0xfe,0x7d,0xfe,0x5f,0xfe,0x84,0xfe,0x11,0xff,0xd3,0xff, +0x5e,0x0,0x8f,0x0,0xb9,0x0,0x17,0x1,0x98,0x1,0xfb,0x1, +0x36,0x2,0xba,0x2,0x9f,0x3,0x5a,0x4,0xb4,0x4,0xff,0x4, +0x94,0x5,0x69,0x6,0xf8,0x6,0x49,0x7,0xe,0x8,0x5,0x9, +0x87,0x9,0x13,0xa,0xea,0xa,0x70,0xb,0xc4,0xb,0x65,0xc, +0xf8,0xc,0x34,0xd,0x92,0xd,0x31,0xe,0x96,0xe,0xbe,0xe, +0x2a,0xf,0xe9,0xf,0x86,0x10,0xbe,0x10,0xa,0x11,0xc8,0x11, +0x2d,0x12,0xe1,0x11,0xf8,0x11,0x8a,0x12,0xab,0x12,0xa3,0x12, +0xe1,0x12,0x26,0x13,0x5e,0x13,0x61,0x13,0x5f,0x13,0xe3,0x13, +0x53,0x14,0x43,0x14,0x6c,0x14,0xaa,0x14,0x81,0x14,0x40,0x14, +0xb6,0x13,0xa0,0x12,0x95,0x11,0xc2,0x10,0xc7,0xf,0xdc,0xe, +0x6f,0xe,0x70,0xe,0xad,0xe,0x12,0xf,0x90,0xf,0x43,0x10, +0xfe,0x10,0xe,0x11,0x84,0x10,0x4,0x10,0x2d,0xf,0xc6,0xd, +0x8d,0xc,0x6f,0xb,0x16,0xa,0x25,0x9,0xb9,0x8,0x36,0x8, +0xd5,0x7,0xf2,0x7,0x41,0x8,0x8d,0x8,0xd2,0x8,0xf6,0x8, +0x2f,0x9,0x8c,0x9,0x86,0x9,0x75,0x9,0x16,0xa,0xc0,0xa, +0xf7,0xa,0x45,0xb,0x5b,0xb,0xd9,0xa,0x58,0xa,0xf3,0x9, +0x76,0x9,0x29,0x9,0x5e,0x9,0x22,0xa,0xfe,0xa,0xd9,0xb, +0x4,0xd,0x9f,0xd,0x78,0xd,0xf2,0xd,0x6f,0xe,0xd7,0xd, +0x82,0xd,0xc1,0xd,0x56,0xd,0xb7,0xc,0xbf,0xc,0x12,0xd, +0x52,0xd,0x81,0xd,0xb7,0xd,0xe4,0xd,0xaf,0xd,0x38,0xd, +0x61,0xd,0x4,0xe,0xba,0xd,0x94,0xd,0x58,0xf,0x11,0x10, +0x78,0xe,0xbe,0xe,0xbe,0xf,0xa1,0xd,0x16,0xc,0x5e,0xc, +0xfb,0x9,0xa8,0x6,0x72,0x5,0xcf,0x3,0xb7,0x1,0x45,0x1, +0x8d,0x1,0x34,0x2,0x92,0x3,0xb1,0x4,0xa5,0x5,0x74,0x6, +0x58,0x5,0xb8,0x2,0x83,0x1,0xc,0x0,0x98,0xfa,0x6e,0xf5, +0x44,0xf4,0x63,0xf1,0x8,0xed,0x7e,0xed,0xa7,0xee,0xd9,0xed, +0x2c,0xf1,0xb1,0xf5,0x9b,0xf6,0xb5,0xf8,0x93,0xfa,0x16,0xf8, +0x99,0xf6,0x98,0xf5,0xc7,0xef,0xab,0xea,0xd4,0xe8,0x93,0xe4, +0xfc,0xe0,0xc,0xe2,0x78,0xe2,0x36,0xe2,0x50,0xe5,0xe7,0xe8, +0x9a,0xeb,0x5a,0xee,0xa0,0xee,0x82,0xee,0x44,0xf0,0x55,0xee, +0x97,0xe9,0x3f,0xe8,0x81,0xe6,0x18,0xe2,0x92,0xe0,0xa6,0xe0, +0x42,0xdf,0xa0,0xdf,0x63,0xe1,0x73,0xe2,0xc3,0xe4,0x4b,0xe7, +0x2,0xe8,0xc7,0xe8,0x64,0xe9,0x3f,0xe8,0xe9,0xe6,0xe5,0xe5, +0x5f,0xe4,0xce,0xe3,0x3f,0xe4,0x93,0xe3,0x37,0xe3,0xb9,0xe5, +0x91,0xe8,0x46,0xe9,0x97,0xea,0x3d,0xed,0xb2,0xed,0x36,0xec, +0xdf,0xeb,0xd5,0xeb,0x3a,0xea,0xc6,0xe8,0x52,0xe9,0x43,0xea, +0x67,0xea,0x41,0xec,0xd1,0xef,0x43,0xf1,0x3a,0xf2,0x8f,0xf5, +0xe1,0xf6,0x8a,0xf5,0x2d,0xf6,0xfd,0xf5,0xfa,0xf2,0x2d,0xf2, +0x37,0xf2,0x1d,0xf0,0x8f,0xf0,0x27,0xf3,0x59,0xf3,0x8f,0xf4, +0x7a,0xf8,0x3a,0xfa,0x67,0xfa,0x85,0xfc,0x34,0xfe,0x6b,0xfd, +0xbd,0xfc,0x0,0xfd,0x49,0xfc,0xe3,0xfa,0x17,0xfa,0x6d,0xf9, +0x21,0xf9,0xbe,0xf9,0xfc,0xf9,0xfe,0xf9,0x25,0xfb,0x54,0xfc, +0x97,0xfc,0x36,0xfd,0x16,0xfe,0xca,0xfd,0xf8,0xfc,0xff,0xfc, +0xd6,0xfc,0x9b,0xfb,0x30,0xfb,0x98,0xfb,0xb6,0xfa,0x5f,0xfa, +0xec,0xfb,0x5,0xfc,0x25,0xfb,0x46,0xfc,0x9f,0xfc,0xd3,0xfa, +0x3d,0xfa,0x3d,0xfa,0xe8,0xf8,0x3a,0xf8,0xbe,0xf8,0xf8,0xf8, +0x2b,0xf9,0xd5,0xf9,0xcf,0xfa,0xe7,0xfb,0xab,0xfc,0x43,0xfd, +0xd8,0xfd,0x95,0xfd,0x7e,0xfc,0xbc,0xfb,0x26,0xfb,0xe5,0xf9, +0xe0,0xf8,0xef,0xf8,0x18,0xf9,0x64,0xf9,0x9e,0xfa,0xf6,0xfb, +0x4a,0xfd,0x24,0xff,0x6c,0x0,0xf6,0x0,0x90,0x1,0x87,0x1, +0xbd,0x0,0x4,0x0,0x32,0xff,0x26,0xfe,0x2b,0xfd,0x7b,0xfc, +0x74,0xfc,0xf3,0xfc,0xa4,0xfd,0xbf,0xfe,0x4d,0x0,0xde,0x1, +0x17,0x3,0x24,0x4,0x14,0x5,0x5a,0x5,0xf8,0x4,0x7a,0x4, +0xc6,0x3,0xb3,0x2,0xb8,0x1,0x41,0x1,0xf,0x1,0xf0,0x0, +0x72,0x1,0x5c,0x2,0xa7,0x2,0xdf,0x2,0xa7,0x3,0xf6,0x3, +0xc0,0x3,0xec,0x3,0xc7,0x3,0xcc,0x2,0x3e,0x2,0x59,0x2, +0xde,0x1,0x31,0x1,0x6e,0x1,0xbf,0x1,0x83,0x1,0x76,0x1, +0x9c,0x1,0x88,0x1,0x24,0x1,0xa4,0x0,0x8a,0x0,0x62,0x0, +0xaa,0xff,0x4a,0xff,0x60,0xff,0x44,0xff,0x63,0xff,0xb5,0xff, +0xb1,0xff,0xd6,0xff,0x5c,0x0,0x89,0x0,0x3e,0x0,0xe,0x0, +0xfa,0xff,0x9d,0xff,0x41,0xff,0x2a,0xff,0x14,0xff,0x27,0xff, +0x89,0xff,0x1,0x0,0x9b,0x0,0x45,0x1,0xd7,0x1,0x86,0x2, +0x44,0x3,0xd9,0x3,0x41,0x4,0x6e,0x4,0x72,0x4,0x9c,0x4, +0x1,0x5,0x43,0x5,0x3c,0x5,0x76,0x5,0x19,0x6,0xdb,0x6, +0xe3,0x7,0xa,0x9,0x3,0xa,0x1a,0xb,0x3c,0xc,0x11,0xd, +0x91,0xd,0xe1,0xd,0x3a,0xe,0x3f,0xe,0xdc,0xd,0xf5,0xd, +0x50,0xe,0x4d,0xe,0xc6,0xe,0x0,0x10,0x27,0x11,0x25,0x12, +0x42,0x13,0x35,0x14,0xc1,0x14,0x33,0x15,0x8f,0x15,0x5d,0x15, +0xc9,0x14,0x67,0x14,0x2f,0x14,0xdf,0x13,0xaa,0x13,0xf5,0x13, +0x7f,0x14,0xeb,0x14,0x7d,0x15,0x2c,0x16,0xd3,0x16,0x73,0x17, +0x9e,0x17,0x61,0x17,0x1,0x17,0x60,0x16,0xba,0x15,0xf0,0x14, +0x2,0x14,0x8f,0x13,0x6a,0x13,0x7a,0x13,0xf0,0x13,0x43,0x14, +0x85,0x14,0x6,0x15,0x81,0x15,0xb9,0x15,0x57,0x15,0xb9,0x14, +0x44,0x14,0x7a,0x13,0x84,0x12,0x8e,0x11,0x95,0x10,0x40,0x10, +0x45,0x10,0x60,0x10,0xdb,0x10,0x35,0x11,0xb6,0x11,0x7d,0x12, +0x74,0x12,0xeb,0x11,0x83,0x11,0xf1,0x10,0x39,0x10,0x14,0xf, +0xc7,0xd,0x98,0xd,0x23,0xe,0x8b,0xd,0x49,0xc,0x79,0xc, +0xfa,0xc,0x33,0xc,0xf0,0xb,0xf3,0xb,0x98,0xa,0xb3,0x9, +0xce,0x9,0x5d,0x9,0x50,0x8,0x1b,0x7,0xf,0x7,0x14,0x8, +0xeb,0x7,0x98,0x7,0x92,0x8,0x10,0x9,0xce,0x8,0x15,0x9, +0x3f,0x9,0xdf,0x7,0xd5,0x5,0x6c,0x5,0x8e,0x5,0x3f,0x4, +0x59,0x3,0xb3,0x3,0xe8,0x3,0x98,0x4,0x3b,0x6,0x87,0x7, +0xf3,0x7,0x5b,0x8,0x69,0x9,0xd9,0x9,0xd7,0x8,0x1b,0x8, +0x5,0x8,0xc,0x7,0x11,0x6,0xb8,0x6,0x7a,0x7,0xc3,0x6, +0x9d,0x6,0x82,0x8,0x20,0xa,0xff,0x9,0x22,0xa,0xb9,0xb, +0xe5,0xc,0xa7,0xc,0x98,0xc,0xbe,0xc,0x86,0xb,0xf8,0x9, +0xa1,0x9,0x58,0x9,0x7a,0x8,0x44,0x8,0x52,0x8,0xc7,0x7, +0x59,0x8,0x9c,0x9,0xc1,0x8,0xd8,0x7,0x28,0x9,0x69,0x9, +0x6e,0x7,0x49,0x5,0x5a,0x3,0x91,0x1,0x35,0xff,0x33,0xfc, +0xd0,0xfa,0x9f,0xfa,0x3f,0xf9,0xfb,0xf7,0xe2,0xf8,0xe,0xfa, +0xfe,0xf8,0x25,0xf8,0x5d,0xfa,0xb8,0xfb,0x6,0xf9,0xe2,0xf6, +0xac,0xf7,0x3e,0xf6,0x9b,0xf1,0x9e,0xef,0x20,0xf0,0x66,0xee, +0x99,0xec,0x57,0xed,0xc,0xee,0x7b,0xee,0x39,0xef,0xd3,0xee, +0x6b,0xee,0xef,0xee,0x86,0xed,0x3,0xea,0x6b,0xe9,0xe,0xeb, +0x54,0xe8,0xd3,0xe5,0x1c,0xea,0x3a,0xec,0x8f,0xe9,0x99,0xeb, +0x47,0xef,0xe9,0xee,0x57,0xee,0x25,0xed,0x7e,0xeb,0x58,0xec, +0x95,0xea,0xe5,0xe5,0x87,0xe6,0xa2,0xe9,0xe4,0xe7,0xd9,0xe6, +0xb1,0xeb,0x4a,0xef,0x3f,0xee,0x69,0xef,0x3b,0xf3,0x51,0xf3, +0xd4,0xf0,0x23,0xf0,0x23,0xf0,0x54,0xef,0x6,0xee,0x86,0xec, +0x4e,0xec,0x83,0xed,0xd5,0xed,0x43,0xed,0x54,0xee,0xf5,0xf0, +0xd,0xf2,0x54,0xf1,0x60,0xf2,0xa4,0xf4,0xd5,0xf3,0xd6,0xf1, +0x73,0xf2,0xf3,0xf2,0x4a,0xf1,0xf3,0xef,0xa6,0xef,0x77,0xef, +0xe,0xef,0x2d,0xee,0x2,0xee,0x37,0xef,0xd2,0xef,0x42,0xef, +0xaf,0xef,0x1e,0xf1,0x9,0xf1,0xbd,0xef,0x78,0xef,0x11,0xef, +0x5c,0xed,0x6e,0xec,0xfa,0xeb,0xd1,0xea,0x38,0xeb,0x8e,0xec, +0x40,0xec,0xd5,0xec,0x1f,0xef,0x42,0xef,0x1a,0xee,0xd0,0xee, +0x47,0xef,0x90,0xed,0x2d,0xec,0x36,0xec,0x9d,0xeb,0x62,0xea, +0x61,0xea,0xd2,0xea,0xa5,0xea,0x5f,0xeb,0xb2,0xec,0xd6,0xec, +0x40,0xed,0xef,0xee,0x97,0xef,0x2a,0xef,0xed,0xef,0x6,0xf1, +0x96,0xf0,0x2a,0xf0,0x2b,0xf1,0xae,0xf1,0x15,0xf1,0x4a,0xf1, +0x33,0xf2,0xaa,0xf2,0x27,0xf3,0xc0,0xf3,0x70,0xf4,0xf1,0xf5, +0x73,0xf7,0x23,0xf8,0x4d,0xf9,0x7,0xfb,0xe3,0xfb,0x41,0xfc, +0x2b,0xfd,0xa,0xfe,0x17,0xfe,0xfa,0xfd,0x89,0xfe,0xf7,0xfe, +0xb2,0xfe,0xd1,0xfe,0x2f,0xff,0x7,0xff,0x5a,0xff,0xe2,0xff, +0xa1,0xff,0x2f,0x0,0x72,0x1,0x73,0x1,0xa0,0x1,0xeb,0x2, +0x29,0x3,0x99,0x2,0xe1,0x2,0xfb,0x2,0xfe,0x1,0x12,0x1, +0x9e,0x0,0xa4,0xff,0x52,0xfe,0xaf,0xfd,0x34,0xfd,0x9c,0xfc, +0xba,0xfc,0xed,0xfc,0x98,0xfc,0xdb,0xfc,0xb2,0xfd,0xe8,0xfd, +0xc5,0xfd,0x13,0xfe,0x50,0xfe,0xe5,0xfd,0x65,0xfd,0x5,0xfd, +0x26,0xfc,0x39,0xfb,0xcc,0xfa,0x3d,0xfa,0xc6,0xf9,0x1,0xfa, +0x2d,0xfa,0x34,0xfa,0xfd,0xfa,0x1,0xfc,0x6e,0xfc,0xfa,0xfc, +0xda,0xfd,0x1f,0xfe,0xa,0xfe,0x4a,0xfe,0x4d,0xfe,0xec,0xfd, +0xca,0xfd,0xb5,0xfd,0x77,0xfd,0x90,0xfd,0xf9,0xfd,0x36,0xfe, +0xa0,0xfe,0xb9,0xff,0xb8,0x0,0xf8,0x0,0x81,0x1,0x82,0x2, +0xcc,0x2,0xbb,0x2,0x3e,0x3,0x88,0x3,0x2b,0x3,0x20,0x3, +0x81,0x3,0xa5,0x3,0xcd,0x3,0x3d,0x4,0x8a,0x4,0xe4,0x4, +0x7b,0x5,0xb3,0x5,0xc8,0x5,0x55,0x6,0xa0,0x6,0x51,0x6, +0x44,0x6,0x83,0x6,0x5a,0x6,0xe,0x6,0x29,0x6,0x3e,0x6, +0xf7,0x5,0xc3,0x5,0xb2,0x5,0x94,0x5,0x8d,0x5,0x88,0x5, +0x7e,0x5,0x94,0x5,0xa3,0x5,0x95,0x5,0x83,0x5,0x8b,0x5, +0xba,0x5,0xcd,0x5,0xd1,0x5,0xe8,0x5,0xd1,0x5,0xc6,0x5, +0xf3,0x5,0xee,0x5,0xe0,0x5,0x7,0x6,0x1e,0x6,0x40,0x6, +0x9a,0x6,0x4,0x7,0x55,0x7,0xbb,0x7,0x67,0x8,0xda,0x8, +0xfd,0x8,0x74,0x9,0xdb,0x9,0xdc,0x9,0x2a,0xa,0x94,0xa, +0x9a,0xa,0xb7,0xa,0x21,0xb,0x6e,0xb,0x8b,0xb,0xcf,0xb, +0x46,0xc,0xa0,0xc,0x7,0xd,0x8b,0xd,0xd0,0xd,0x19,0xe, +0xab,0xe,0x1a,0xf,0x5c,0xf,0xd2,0xf,0x69,0x10,0xd6,0x10, +0x22,0x11,0x60,0x11,0x68,0x11,0x6b,0x11,0x83,0x11,0x43,0x11, +0xe2,0x10,0xdc,0x10,0xfa,0x10,0x1e,0x11,0x66,0x11,0xdc,0x11, +0x9b,0x12,0x71,0x13,0xf5,0x13,0xe2,0x13,0xaf,0x13,0x66,0x14, +0x75,0x15,0x30,0x15,0xd4,0x13,0x9e,0x12,0xe6,0x11,0xfb,0x11, +0x17,0x13,0x45,0x14,0x81,0x14,0xa5,0x14,0xec,0x15,0xa6,0x17, +0x7b,0x18,0xa,0x18,0x17,0x17,0xad,0x16,0x18,0x16,0x28,0x14, +0xcb,0x11,0x2b,0x10,0x7a,0xf,0x1b,0x10,0xc5,0x11,0x51,0x13, +0x46,0x14,0xb,0x15,0x1e,0x16,0x56,0x17,0xa4,0x17,0xe4,0x15, +0xb6,0x12,0x5b,0x10,0xf,0xf,0x37,0xd,0x41,0xb,0x9d,0xa, +0x2c,0xb,0x24,0xc,0x58,0xd,0x3c,0xf,0x15,0x11,0x76,0x11, +0x72,0x11,0x3a,0x12,0x20,0x12,0x17,0x10,0x57,0xd,0x4e,0xb, +0x5f,0xa,0x9e,0x9,0x92,0x8,0xc3,0x7,0x60,0x7,0x9b,0x7, +0x81,0x8,0x9c,0x9,0xc3,0xa,0x4b,0xb,0xd8,0xa,0x99,0xa, +0xe3,0xa,0x68,0xa,0x9f,0x8,0xad,0x6,0xd1,0x5,0x8d,0x5, +0xb3,0x4,0x76,0x3,0xdf,0x2,0x22,0x3,0x55,0x3,0x82,0x3, +0x32,0x4,0xbc,0x3,0x11,0x2,0xfe,0x1,0xb6,0x2,0xb,0x2, +0x2d,0x1,0x5e,0x0,0x63,0xff,0xf8,0xff,0x3b,0x1,0x33,0x1, +0x82,0x1,0x9,0x3,0xae,0x3,0x6c,0x3,0xe2,0x3,0xba,0x3, +0xbc,0x1,0x6c,0x0,0xfc,0x0,0x21,0x1,0x51,0x0,0x5a,0x0, +0xb4,0x1,0xb9,0x3,0xf7,0x5,0xf3,0x7,0x29,0x9,0x2d,0x9, +0x3a,0x8,0x3e,0x7,0xa4,0x5,0x3f,0x2,0xf5,0xfe,0x80,0xfd, +0x64,0xfc,0xb6,0xfb,0x5,0xfd,0x55,0xff,0xa1,0x1,0x40,0x4, +0xfe,0x6,0x8,0x9,0x2,0x9,0xb7,0x6,0x3b,0x4,0x52,0x2, +0x29,0xff,0x2b,0xfa,0x1,0xf6,0x5a,0xf4,0x44,0xf3,0x8c,0xf2, +0x11,0xf4,0x17,0xf6,0x1b,0xf7,0xc2,0xf8,0x70,0xfa,0xbb,0xfa, +0x78,0xfa,0x74,0xf9,0x4f,0xf7,0x77,0xf5,0x19,0xf4,0xd9,0xf1, +0xf,0xef,0x69,0xed,0xd1,0xec,0x1e,0xec,0xd2,0xeb,0x37,0xec, +0xa5,0xeb,0xb5,0xea,0xd3,0xeb,0xbe,0xec,0xaf,0xea,0x88,0xe9, +0x51,0xeb,0x6e,0xeb,0x80,0xe9,0xce,0xe9,0xc9,0xeb,0xea,0xeb, +0x61,0xea,0x77,0xea,0x2,0xec,0x3c,0xeb,0x71,0xe9,0x63,0xea, +0x39,0xec,0xd3,0xec,0x68,0xec,0x14,0xeb,0x7b,0xeb,0x51,0xee, +0xd4,0xef,0x2,0xf0,0xd6,0xf1,0xbd,0xf4,0xac,0xf5,0x0,0xf4, +0x86,0xf3,0x2c,0xf5,0x13,0xf4,0x77,0xf0,0xbb,0xef,0x66,0xf1, +0x35,0xf1,0x53,0xef,0xc0,0xef,0x60,0xf3,0x49,0xf6,0xce,0xf6, +0x93,0xf7,0x15,0xfa,0x73,0xfc,0xcc,0xfb,0x5c,0xf9,0x18,0xf9, +0x41,0xf9,0x21,0xf6,0xb8,0xf2,0xa9,0xf2,0x89,0xf3,0x57,0xf2, +0x36,0xf1,0x5e,0xf3,0x7e,0xf6,0x23,0xf7,0x20,0xf7,0x65,0xf8, +0x6c,0xf9,0x43,0xf9,0x3e,0xf8,0xc7,0xf6,0x5a,0xf5,0xb1,0xf3, +0x61,0xf1,0x31,0xef,0x45,0xee,0x33,0xee,0x91,0xed,0xee,0xec, +0xdc,0xed,0x79,0xef,0x3d,0xf0,0xf4,0xf0,0x81,0xf2,0xae,0xf3, +0x8c,0xf3,0x5,0xf3,0x9d,0xf2,0xb2,0xf1,0x42,0xf0,0xbf,0xee, +0x53,0xed,0x4d,0xec,0xdb,0xeb,0xf0,0xeb,0xbb,0xec,0x41,0xee, +0x2,0xf0,0xb3,0xf1,0x96,0xf3,0x66,0xf5,0x45,0xf6,0x8c,0xf6, +0x1b,0xf7,0x49,0xf7,0x86,0xf6,0xbc,0xf5,0x79,0xf5,0x28,0xf5, +0xdf,0xf4,0x93,0xf5,0xf2,0xf6,0xf,0xf8,0x81,0xf9,0x48,0xfb, +0x73,0xfc,0xb4,0xfd,0x1f,0xff,0x4f,0xff,0x13,0xff,0xb1,0xff, +0x8,0x0,0x8d,0xff,0x61,0xff,0xfd,0xff,0xb7,0x0,0x26,0x1, +0xd9,0x1,0xf4,0x2,0x86,0x3,0x91,0x3,0xdf,0x3,0xf8,0x3, +0x7b,0x3,0x29,0x3,0xd1,0x2,0xff,0x1,0xd6,0x1,0x95,0x2, +0xc3,0x2,0xc2,0x2,0x9e,0x3,0x43,0x4,0x37,0x4,0x60,0x4, +0x6a,0x4,0xbb,0x3,0xb2,0x2,0xc5,0x1,0xf4,0x0,0xcf,0xff, +0xb9,0xfe,0x67,0xfe,0x1f,0xfe,0xbd,0xfd,0x41,0xfe,0x15,0xff, +0x53,0xff,0x96,0xff,0x51,0x0,0xdb,0x0,0x8c,0x0,0xf1,0xff, +0xa7,0xff,0xd5,0xfe,0x57,0xfd,0x62,0xfc,0xeb,0xfb,0x42,0xfb, +0xde,0xfa,0x4c,0xfb,0x33,0xfc,0x3,0xfd,0xef,0xfd,0x19,0xff, +0xd7,0xff,0x4b,0x0,0xdc,0x0,0xa9,0x0,0xa8,0xff,0x12,0xff, +0xbe,0xfe,0xe9,0xfd,0x33,0xfd,0x3d,0xfd,0x8c,0xfd,0xd0,0xfd, +0x83,0xfe,0xcc,0xff,0x24,0x1,0x29,0x2,0x1,0x3,0xd2,0x3, +0x47,0x4,0x51,0x4,0x56,0x4,0x8,0x4,0x50,0x3,0x10,0x3, +0xfa,0x2,0x4f,0x2,0x2a,0x2,0xde,0x2,0x27,0x3,0x7c,0x3, +0xa1,0x4,0x80,0x5,0xe0,0x5,0x79,0x6,0xc8,0x6,0xb0,0x6, +0xdb,0x6,0xc3,0x6,0xfe,0x5,0x6b,0x5,0x54,0x5,0x17,0x5, +0x92,0x4,0x46,0x4,0x61,0x4,0x76,0x4,0x58,0x4,0x7b,0x4, +0xfb,0x4,0x50,0x5,0x27,0x5,0xf7,0x4,0x3c,0x5,0x6e,0x5, +0xd4,0x4,0x0,0x4,0xdc,0x3,0xf9,0x3,0x92,0x3,0x26,0x3, +0x48,0x3,0x75,0x3,0x7f,0x3,0xbf,0x3,0xf5,0x3,0xf5,0x3, +0xde,0x3,0x93,0x3,0x4d,0x3,0x51,0x3,0x64,0x3,0x54,0x3, +0x1b,0x3,0x21,0x3,0xaf,0x3,0xfa,0x3,0xcf,0x3,0xe,0x4, +0x61,0x4,0xd,0x4,0xbb,0x3,0xd3,0x3,0xc3,0x3,0x81,0x3, +0x84,0x3,0xc2,0x3,0x8,0x4,0x6f,0x4,0xec,0x4,0x5b,0x5, +0xd1,0x5,0x35,0x6,0x72,0x6,0xac,0x6,0xad,0x6,0x71,0x6, +0x5f,0x6,0x57,0x6,0x5a,0x6,0xba,0x6,0x15,0x7,0x5d,0x7, +0x26,0x8,0xf7,0x8,0x75,0x9,0x35,0xa,0xb2,0xa,0x6c,0xa, +0x84,0xa,0x6,0xb,0xc2,0xa,0x4f,0xa,0x8d,0xa,0xb9,0xa, +0xa5,0xa,0x5,0xb,0x8b,0xb,0xbc,0xb,0xee,0xb,0x35,0xc, +0x4e,0xc,0x59,0xc,0x59,0xc,0x36,0xc,0x45,0xc,0x8d,0xc, +0xb3,0xc,0xbe,0xc,0xb6,0xc,0x71,0xc,0x26,0xc,0x14,0xc, +0x1,0xc,0xc7,0xb,0xae,0xb,0xc9,0xb,0xe0,0xb,0xf8,0xb, +0x1d,0xc,0x22,0xc,0x2b,0xc,0x44,0xc,0x13,0xc,0x95,0xb, +0xec,0xa,0x38,0xa,0xe3,0x9,0xfa,0x9,0x6e,0xa,0x45,0xb, +0xe3,0xb,0x24,0xc,0x9d,0xc,0x0,0xd,0xde,0xc,0x71,0xc, +0xa6,0xb,0x71,0xa,0x1d,0x9,0xde,0x7,0xfb,0x6,0xb5,0x6, +0x1d,0x7,0x13,0x8,0x66,0x9,0xf9,0xa,0x32,0xc,0xa3,0xc, +0x5,0xd,0x4f,0xd,0x49,0xc,0x22,0xa,0xfc,0x7,0xfb,0x5, +0x18,0x4,0xf1,0x2,0x3,0x3,0xe1,0x3,0xe0,0x4,0x52,0x6, +0x8d,0x8,0x9a,0xa,0xb1,0xb,0x42,0xc,0x4a,0xc,0x2c,0xb, +0x61,0x9,0x84,0x7,0x4b,0x5,0x4e,0x3,0x73,0x2,0xfc,0x1, +0xab,0x1,0x6d,0x2,0xb4,0x3,0xa9,0x4,0xf6,0x5,0x9c,0x7, +0x81,0x8,0x90,0x8,0x69,0x8,0xff,0x7,0xf5,0x6,0x8c,0x5, +0x49,0x4,0x2e,0x3,0xc,0x2,0xf,0x1,0x5e,0x0,0xd9,0xff, +0x94,0xff,0xef,0xff,0xaa,0x0,0xc,0x1,0x5a,0x1,0x14,0x2, +0x73,0x2,0x56,0x2,0xbb,0x2,0xc,0x3,0x54,0x2,0xae,0x1, +0x67,0x1,0x45,0x0,0x2,0xff,0xda,0xfe,0x80,0xfe,0x7a,0xfd, +0xaa,0xfd,0xda,0xfe,0x34,0xff,0xab,0xff,0x7e,0x1,0x16,0x3, +0x7c,0x3,0xae,0x3,0xd5,0x3,0x53,0x3,0x12,0x2,0xb6,0x0, +0xef,0xff,0x36,0xff,0x3a,0xfe,0x13,0xfe,0xaf,0xfe,0x44,0xff, +0x81,0x0,0x11,0x2,0xc7,0x2,0x95,0x3,0x81,0x4,0xd0,0x3, +0x72,0x2,0xc3,0x1,0x3b,0x0,0xac,0xfd,0x1d,0xfc,0x81,0xfb, +0x9c,0xfa,0xf1,0xf9,0x99,0xfa,0x2a,0xfc,0x4c,0xfd,0x43,0xfe, +0xfe,0xff,0x13,0x1,0x88,0x0,0xfe,0xff,0x41,0xff,0xda,0xfc, +0x42,0xfa,0x3e,0xf8,0x5f,0xf5,0xe9,0xf2,0x6d,0xf2,0xeb,0xf1, +0x2f,0xf1,0xd2,0xf2,0x78,0xf5,0x4a,0xf6,0x81,0xf7,0xdd,0xfa, +0x8e,0xfc,0x15,0xfb,0x30,0xfa,0xd8,0xf9,0x86,0xf6,0xfd,0xf1, +0x57,0xef,0xa3,0xec,0x5d,0xe9,0x4,0xe8,0xbc,0xe7,0xf0,0xe7, +0xe3,0xea,0xb5,0xee,0xa6,0xf0,0xa5,0xf3,0x22,0xf8,0x28,0xf9, +0x12,0xf7,0x5f,0xf6,0x8b,0xf5,0x62,0xf1,0xa3,0xec,0x41,0xea, +0xbe,0xe8,0x1a,0xe7,0xe1,0xe6,0xfb,0xe8,0x45,0xec,0x90,0xef, +0x4,0xf3,0x45,0xf6,0x88,0xf8,0x42,0xfa,0x91,0xfa,0x51,0xf8, +0x51,0xf6,0xa9,0xf5,0x4,0xf3,0x78,0xef,0x56,0xef,0x0,0xf1, +0x30,0xf1,0xee,0xf1,0x44,0xf5,0xc0,0xf8,0x6c,0xfa,0xbf,0xfb, +0x7f,0xfd,0xc,0xfe,0xf4,0xfc,0xb3,0xfb,0x85,0xfa,0xd1,0xf8, +0x8c,0xf7,0xe7,0xf6,0xd3,0xf5,0xc5,0xf5,0x98,0xf7,0x77,0xf8, +0x71,0xf8,0x38,0xfa,0x7,0xfc,0xac,0xfb,0x45,0xfb,0xc3,0xfb, +0x39,0xfb,0x98,0xf9,0xa8,0xf8,0x31,0xf8,0xde,0xf6,0xa5,0xf5, +0x9f,0xf5,0x81,0xf5,0xfd,0xf4,0x54,0xf5,0xe2,0xf5,0xbc,0xf5, +0xed,0xf5,0x9b,0xf6,0x77,0xf6,0xf5,0xf5,0x1d,0xf6,0xec,0xf5, +0xed,0xf4,0x5c,0xf4,0x2b,0xf4,0x99,0xf3,0xff,0xf2,0xd2,0xf2, +0x1a,0xf3,0x4a,0xf3,0xb,0xf3,0x5b,0xf3,0x42,0xf4,0x59,0xf4, +0xfb,0xf3,0x4a,0xf4,0x9a,0xf4,0x5e,0xf4,0x7d,0xf4,0x34,0xf5, +0xc7,0xf5,0x56,0xf6,0x33,0xf7,0xe7,0xf7,0x97,0xf8,0x7e,0xf9, +0xc4,0xf9,0x75,0xf9,0x87,0xf9,0xb9,0xf9,0x62,0xf9,0xfc,0xf8, +0x40,0xf9,0xfe,0xf9,0xc7,0xfa,0xf1,0xfb,0x99,0xfd,0x43,0xff, +0xd9,0x0,0x3d,0x2,0x29,0x3,0xf5,0x3,0x7f,0x4,0xfa,0x3, +0xb9,0x2,0xed,0x1,0x88,0x1,0xaf,0x0,0x9,0x0,0x7b,0x0, +0x54,0x1,0x51,0x2,0xe8,0x3,0x97,0x5,0x25,0x7,0xac,0x8, +0x78,0x9,0x81,0x9,0x45,0x9,0x95,0x8,0x61,0x7,0x3,0x6, +0xd6,0x4,0xfd,0x3,0x2e,0x3,0x98,0x2,0xd0,0x2,0x7e,0x3, +0x1f,0x4,0xfb,0x4,0xe8,0x5,0x55,0x6,0xa3,0x6,0x3,0x7, +0x9f,0x6,0xb6,0x5,0x3e,0x5,0x9b,0x4,0x4f,0x3,0x58,0x2, +0x16,0x2,0xcd,0x1,0x4c,0x1,0x3a,0x1,0xab,0x1,0xca,0x1, +0xb2,0x1,0xa,0x2,0x40,0x2,0x4,0x2,0xe7,0x1,0xbd,0x1, +0x61,0x1,0x4a,0x1,0x69,0x1,0x53,0x1,0x3,0x1,0xe4,0x0, +0x15,0x1,0xda,0x0,0x2f,0x0,0x11,0x0,0x53,0x0,0x14,0x0, +0xcc,0xff,0x27,0x0,0xab,0x0,0xfa,0x0,0x6f,0x1,0xd,0x2, +0x8e,0x2,0xeb,0x2,0x1d,0x3,0x20,0x3,0xd,0x3,0xf6,0x2, +0xd5,0x2,0x95,0x2,0x7c,0x2,0xb2,0x2,0xb1,0x2,0x8e,0x2, +0xed,0x2,0x72,0x3,0xc0,0x3,0x3c,0x4,0xe0,0x4,0x5c,0x5, +0xc4,0x5,0x45,0x6,0xc6,0x6,0xf0,0x6,0xe5,0x6,0xeb,0x6, +0xa0,0x6,0xe,0x6,0xb6,0x5,0x4e,0x5,0xae,0x4,0x61,0x4, +0x79,0x4,0xb1,0x4,0x25,0x5,0xe7,0x5,0xc9,0x6,0x86,0x7, +0x8,0x8,0x75,0x8,0xb5,0x8,0x6c,0x8,0xa9,0x7,0xc5,0x6, +0xcb,0x5,0xc0,0x4,0xe2,0x3,0x5d,0x3,0x2a,0x3,0x23,0x3, +0x7e,0x3,0x65,0x4,0x28,0x5,0x8c,0x5,0x27,0x6,0x8f,0x6, +0x34,0x6,0xba,0x5,0x3b,0x5,0x52,0x4,0x6f,0x3,0xc7,0x2, +0x1e,0x2,0x9e,0x1,0x6b,0x1,0x66,0x1,0x83,0x1,0xac,0x1, +0xc8,0x1,0xc8,0x1,0xa1,0x1,0x71,0x1,0x3a,0x1,0xde,0x0, +0x90,0x0,0x4a,0x0,0xc2,0xff,0x5e,0xff,0x4e,0xff,0xe2,0xfe, +0x59,0xfe,0x58,0xfe,0x39,0xfe,0xbe,0xfd,0x89,0xfd,0x73,0xfd, +0x27,0xfd,0xec,0xfc,0xdd,0xfc,0xbd,0xfc,0x83,0xfc,0x93,0xfc, +0xe4,0xfc,0xcc,0xfc,0x88,0xfc,0xa5,0xfc,0x9b,0xfc,0x33,0xfc, +0x9,0xfc,0x18,0xfc,0xf0,0xfb,0xc2,0xfb,0xf8,0xfb,0x58,0xfc, +0xa0,0xfc,0x15,0xfd,0x92,0xfd,0xce,0xfd,0x20,0xfe,0x64,0xfe, +0x39,0xfe,0x23,0xfe,0x42,0xfe,0x13,0xfe,0xd4,0xfd,0x1e,0xfe, +0xc0,0xfe,0x3f,0xff,0xcc,0xff,0xb6,0x0,0xab,0x1,0x60,0x2, +0xeb,0x2,0x62,0x3,0xb8,0x3,0x94,0x3,0x27,0x3,0x24,0x3, +0x32,0x3,0xe5,0x2,0x2,0x3,0x8f,0x3,0xe8,0x3,0x90,0x4, +0xd3,0x5,0xd2,0x6,0x6a,0x7,0x4d,0x8,0x14,0x9,0xf8,0x8, +0xa3,0x8,0x9a,0x8,0xe,0x8,0xa,0x7,0x91,0x6,0x6d,0x6, +0xfc,0x5,0xec,0x5,0xc8,0x6,0xa4,0x7,0x10,0x8,0xec,0x8, +0x2,0xa,0x36,0xa,0xeb,0x9,0xc4,0x9,0x33,0x9,0x21,0x8, +0x17,0x7,0x26,0x6,0x4e,0x5,0xbc,0x4,0x8e,0x4,0xd6,0x4, +0x6e,0x5,0x23,0x6,0xe8,0x6,0x89,0x7,0xed,0x7,0x1e,0x8, +0xc5,0x7,0xe9,0x6,0x3a,0x6,0xa0,0x5,0xb1,0x4,0xd,0x4, +0xb,0x4,0x21,0x4,0x41,0x4,0xb6,0x4,0x4f,0x5,0x8a,0x5, +0x3b,0x5,0xe6,0x4,0xb7,0x4,0x2c,0x4,0x7c,0x3,0x4e,0x3, +0x80,0x3,0xcb,0x3,0x5e,0x4,0x45,0x5,0x14,0x6,0x7d,0x6, +0x9c,0x6,0x47,0x6,0x41,0x5,0x2,0x4,0x3,0x3,0x3a,0x2, +0xb8,0x1,0xd2,0x1,0x9b,0x2,0xb7,0x3,0x1b,0x5,0xed,0x6, +0x47,0x8,0x91,0x8,0xa5,0x8,0x52,0x8,0xa0,0x6,0x7e,0x4, +0xc,0x3,0xc7,0x1,0x9d,0x0,0x8b,0x0,0xaf,0x1,0x13,0x3, +0x61,0x4,0x28,0x6,0x14,0x8,0x0,0x9,0xc8,0x8,0xfe,0x7, +0xa1,0x6,0xb8,0x4,0xd3,0x2,0x48,0x1,0x35,0x0,0x2,0x0, +0x9a,0x0,0x85,0x1,0x2,0x3,0xbd,0x4,0x7d,0x5,0x7c,0x5, +0x81,0x5,0xc7,0x4,0xec,0x2,0xfe,0x0,0xb7,0xff,0xfa,0xfe, +0xa1,0xfe,0xf1,0xfe,0x3,0x0,0x3f,0x1,0x64,0x2,0x8d,0x3, +0x38,0x4,0xea,0x3,0x9b,0x2,0x9b,0x0,0xae,0xfe,0x1b,0xfd, +0xc9,0xfb,0x2a,0xfb,0x4d,0xfb,0x21,0xfc,0x9,0xfe,0x4c,0x0, +0xea,0x1,0x2b,0x3,0xff,0x3,0xda,0x3,0x24,0x3,0xe9,0x1, +0x7a,0xff,0x95,0xfc,0xba,0xfa,0xe5,0xf9,0x89,0xf9,0xdf,0xf9, +0xe7,0xfa,0x62,0xfc,0x49,0xfe,0x4d,0x0,0x29,0x2,0x4e,0x3, +0xd4,0x2,0xaa,0x1,0x30,0x1,0x34,0x0,0xf7,0xfd,0xfb,0xfb, +0xd6,0xfa,0x38,0xfa,0x59,0xfa,0xf5,0xfa,0xa4,0xfb,0xa2,0xfc, +0xd7,0xfd,0xe7,0xfe,0x17,0x0,0x43,0x1,0x43,0x1,0x31,0x0, +0xce,0xff,0x3,0x0,0xd1,0xfe,0x84,0xfc,0x3d,0xfb,0x6,0xfb, +0xa7,0xfa,0x71,0xfa,0xb7,0xfa,0xc6,0xfa,0x9,0xfb,0x49,0xfc, +0xed,0xfd,0x79,0xff,0x92,0x0,0x4d,0x0,0x4e,0xff,0xfa,0xfe, +0xc7,0xfe,0xb6,0xfd,0x1a,0xfc,0xc4,0xfa,0xd,0xfa,0x69,0xf9, +0xd2,0xf8,0x52,0xf9,0x7e,0xfa,0x4b,0xfb,0x78,0xfc,0xdd,0xfd, +0x10,0xfe,0xc0,0xfd,0xd4,0xfd,0xc9,0xfd,0xee,0xfd,0xe2,0xfd, +0x8e,0xfc,0x53,0xfb,0x43,0xfb,0x52,0xfb,0xbc,0xfb,0xab,0xfc, +0x94,0xfc,0xa8,0xfb,0x83,0xfb,0x1a,0xfc,0x71,0xfc,0x5d,0xfc, +0x67,0xfc,0xa1,0xfc,0xcd,0xfc,0x32,0xfd,0xcd,0xfd,0x31,0xfe, +0x7f,0xfe,0xc9,0xfe,0xca,0xfe,0x7f,0xfe,0xbd,0xfd,0x4f,0xfc, +0x14,0xfb,0x36,0xfb,0xf3,0xfb,0xd0,0xfb,0x8f,0xfb,0x3b,0xfc, +0xb,0xfd,0xeb,0xfd,0x41,0xff,0x2,0x0,0xb5,0xff,0x17,0xff, +0x4e,0xfe,0x49,0xfd,0x70,0xfc,0xea,0xfb,0x5d,0xfb,0x9,0xfb, +0xcf,0xfb,0xfd,0xfc,0x37,0xfd,0x5e,0xfd,0x7b,0xfe,0x83,0xff, +0xda,0xff,0xff,0xff,0x6c,0xff,0xf0,0xfd,0x22,0xfd,0x5b,0xfd, +0x4b,0xfd,0x4b,0xfd,0xba,0xfd,0x68,0xfd,0x25,0xfd,0x29,0xfe, +0xef,0xfe,0xe1,0xfe,0xfd,0xfe,0x5,0xff,0xc8,0xfe,0xa3,0xfe, +0x6f,0xfe,0x3e,0xfe,0x50,0xfe,0xd1,0xfe,0x7b,0xff,0x5c,0xff, +0xb6,0xfe,0x91,0xfe,0x76,0xfe,0x1f,0xfe,0x5e,0xfe,0x94,0xfe, +0xb3,0xfd,0xde,0xfc,0x5a,0xfd,0x4b,0xfe,0x9f,0xfe,0x9f,0xfe, +0xab,0xfe,0x94,0xfe,0x64,0xfe,0x61,0xfe,0x2e,0xfe,0x6d,0xfd, +0xc,0xfd,0x6b,0xfd,0x48,0xfd,0xee,0xfc,0x70,0xfd,0x7f,0xfd, +0xf1,0xfc,0xa6,0xfd,0x30,0xfe,0x9e,0xfc,0x5f,0xfb,0x9e,0xfb, +0x2d,0xfb,0xa8,0xfa,0xab,0xfb,0x27,0xfc,0x6e,0xfb,0x58,0xfc, +0x60,0xfe,0x62,0xfe,0xa0,0xfd,0x44,0xfe,0xdb,0xfd,0xb6,0xfb, +0x4e,0xfb,0x7c,0xfb,0x16,0xf9,0xdc,0xf7,0x4,0xfa,0xa9,0xfa, +0xeb,0xf9,0x2,0xfc,0xff,0xfd,0x35,0xfd,0xde,0xfd,0x2a,0x0, +0x66,0xff,0x6,0xfd,0xf4,0xfc,0xb2,0xfc,0x45,0xfa,0x66,0xf9, +0x64,0xfa,0xa4,0xf9,0xf0,0xf8,0x9,0xfb,0x7f,0xfc,0xd3,0xfb, +0xe0,0xfc,0x3b,0xff,0x21,0xff,0x7e,0xfe,0xca,0xff,0x7e,0xff, +0xd6,0xfc,0x52,0xfc,0x4b,0xfd,0xe3,0xfb,0x24,0xfa,0xa2,0xfa, +0xd4,0xfa,0xe5,0xf9,0xc8,0xfa,0xe,0xfd,0x88,0xfd,0x84,0xfd, +0x96,0xff,0xc,0x1,0x2,0x0,0xb5,0xff,0x6b,0x0,0xf2,0xfe, +0xc8,0xfc,0x95,0xfc,0x2,0xfc,0xf7,0xf9,0x9a,0xf9,0xb,0xfb, +0x7f,0xfb,0xd3,0xfb,0xb0,0xfd,0xf3,0xfe,0xcd,0xfe,0x96,0xff, +0xa1,0x0,0x72,0xff,0xb3,0xfd,0x66,0xfd,0xaf,0xfc,0x3,0xfb, +0x95,0xfa,0x2,0xfb,0xb6,0xfa,0xdb,0xfa,0x21,0xfc,0xe,0xfd, +0x6c,0xfd,0xed,0xfd,0xc,0xfe,0xc9,0xfd,0xb8,0xfd,0x45,0xfd, +0x59,0xfc,0xf6,0xfb,0xe4,0xfb,0x93,0xfb,0xb9,0xfb,0x5c,0xfc, +0xa0,0xfc,0xdb,0xfc,0x7c,0xfd,0xc4,0xfd,0x9c,0xfd,0xbe,0xfd, +0xbd,0xfd,0x28,0xfd,0xf8,0xfc,0x51,0xfd,0x10,0xfd,0xab,0xfc, +0x4b,0xfd,0xe7,0xfd,0xb5,0xfd,0x1d,0xfe,0x2,0xff,0xc9,0xfe, +0x7d,0xfe,0x35,0xff,0x32,0xff,0x63,0xfe,0x8b,0xfe,0xdd,0xfe, +0x58,0xfe,0x45,0xfe,0x1,0xff,0x60,0xff,0x4a,0xff,0xb2,0xff, +0x76,0x0,0x92,0x0,0x74,0x0,0xd8,0x0,0xd6,0x0,0x5d,0x0, +0x71,0x0,0x87,0x0,0x26,0x0,0xf,0x0,0x45,0x0,0x69,0x0, +0xa9,0x0,0xe,0x1,0x6e,0x1,0xad,0x1,0xe6,0x1,0x31,0x2, +0x3d,0x2,0xfa,0x1,0xbf,0x1,0x97,0x1,0x7e,0x1,0x6e,0x1, +0x31,0x1,0xfb,0x0,0x28,0x1,0x5e,0x1,0x5e,0x1,0x90,0x1, +0xdb,0x1,0xb3,0x1,0x79,0x1,0xb0,0x1,0xd9,0x1,0xb4,0x1, +0xaf,0x1,0xcb,0x1,0xd3,0x1,0xdb,0x1,0xdc,0x1,0xb8,0x1, +0x97,0x1,0x9e,0x1,0x9d,0x1,0x62,0x1,0x2b,0x1,0x31,0x1, +0x3a,0x1,0x1a,0x1,0x15,0x1,0x43,0x1,0x2f,0x1,0xea,0x0, +0x15,0x1,0x6e,0x1,0x5b,0x1,0x3d,0x1,0x67,0x1,0x6e,0x1, +0x5a,0x1,0x9b,0x1,0xeb,0x1,0xd8,0x1,0xd6,0x1,0x1b,0x2, +0x6,0x2,0xc5,0x1,0xd6,0x1,0xa8,0x1,0x43,0x1,0x56,0x1, +0x72,0x1,0x4a,0x1,0x72,0x1,0xe5,0x1,0x44,0x2,0x96,0x2, +0xed,0x2,0x3a,0x3,0x5f,0x3,0x63,0x3,0x69,0x3,0x46,0x3, +0xdb,0x2,0x68,0x2,0x19,0x2,0xd0,0x1,0x8a,0x1,0x69,0x1, +0x6d,0x1,0x9e,0x1,0x16,0x2,0xa8,0x2,0x23,0x3,0x94,0x3, +0xe8,0x3,0x10,0x4,0x20,0x4,0xeb,0x3,0x6e,0x3,0xf3,0x2, +0x78,0x2,0xe8,0x1,0x8e,0x1,0x90,0x1,0xad,0x1,0xca,0x1, +0x39,0x2,0x0,0x3,0x9f,0x3,0xf2,0x3,0x4a,0x4,0x92,0x4, +0x6c,0x4,0xf6,0x3,0x86,0x3,0x9,0x3,0x61,0x2,0xce,0x1, +0x79,0x1,0x5f,0x1,0x73,0x1,0xaf,0x1,0x2f,0x2,0xd4,0x2, +0x50,0x3,0xbc,0x3,0x12,0x4,0x1a,0x4,0xe,0x4,0xe7,0x3, +0x62,0x3,0xd1,0x2,0x56,0x2,0xbe,0x1,0x56,0x1,0x40,0x1, +0x3b,0x1,0x4b,0x1,0x85,0x1,0xd9,0x1,0x39,0x2,0x84,0x2, +0xb5,0x2,0xe4,0x2,0xf2,0x2,0xb5,0x2,0x5f,0x2,0x2b,0x2, +0xe4,0x1,0x65,0x1,0xf,0x1,0xea,0x0,0xaa,0x0,0x79,0x0, +0x80,0x0,0x93,0x0,0xc5,0x0,0x2e,0x1,0x97,0x1,0xcf,0x1, +0xfc,0x1,0x41,0x2,0x66,0x2,0x4b,0x2,0x2c,0x2,0x7,0x2, +0xaf,0x1,0x4e,0x1,0x13,0x1,0xe8,0x0,0xc5,0x0,0xbd,0x0, +0xe3,0x0,0x31,0x1,0x8f,0x1,0xfc,0x1,0x78,0x2,0xdb,0x2, +0x29,0x3,0x76,0x3,0x72,0x3,0xc,0x3,0xc3,0x2,0x98,0x2, +0x37,0x2,0xfe,0x1,0x24,0x2,0x44,0x2,0x6a,0x2,0xe4,0x2, +0x8f,0x3,0x24,0x4,0xa4,0x4,0x40,0x5,0xd5,0x5,0x1a,0x6, +0x51,0x6,0x7e,0x6,0x40,0x6,0xe4,0x5,0xb2,0x5,0x5c,0x5, +0xed,0x4,0x8d,0x4,0x2e,0x4,0xee,0x3,0xcb,0x3,0xc6,0x3, +0xfe,0x3,0x31,0x4,0x3e,0x4,0x65,0x4,0xa5,0x4,0xc1,0x4, +0x99,0x4,0x4d,0x4,0xa,0x4,0xa6,0x3,0x11,0x3,0x89,0x2, +0x23,0x2,0xe3,0x1,0xc1,0x1,0x99,0x1,0x82,0x1,0x87,0x1, +0x85,0x1,0x80,0x1,0x7e,0x1,0x72,0x1,0x46,0x1,0xe9,0x0, +0x8a,0x0,0x45,0x0,0xea,0xff,0x8d,0xff,0x53,0xff,0x21,0xff, +0xea,0xfe,0xb7,0xfe,0x8b,0xfe,0x6b,0xfe,0x2f,0xfe,0xd8,0xfd, +0x9c,0xfd,0x5f,0xfd,0xf9,0xfc,0xa1,0xfc,0x6a,0xfc,0x33,0xfc, +0x14,0xfc,0x1e,0xfc,0x20,0xfc,0x1c,0xfc,0x2a,0xfc,0x24,0xfc, +0xe,0xfc,0x2,0xfc,0xe2,0xfb,0xab,0xfb,0x75,0xfb,0x42,0xfb, +0x1e,0xfb,0xc,0xfb,0x7,0xfb,0x18,0xfb,0x3e,0xfb,0x82,0xfb, +0xd3,0xfb,0xf4,0xfb,0xf,0xfc,0x55,0xfc,0x77,0xfc,0x76,0xfc, +0x92,0xfc,0x98,0xfc,0x7c,0xfc,0x7f,0xfc,0x8a,0xfc,0x89,0xfc, +0x9f,0xfc,0xc7,0xfc,0xf1,0xfc,0x2f,0xfd,0x7e,0xfd,0xb8,0xfd, +0xd9,0xfd,0x13,0xfe,0x6b,0xfe,0x9a,0xfe,0xa1,0xfe,0xc0,0xfe, +0xd9,0xfe,0xc5,0xfe,0xc2,0xfe,0xe5,0xfe,0xed,0xfe,0xcc,0xfe, +0xc5,0xfe,0xe9,0xfe,0xc,0xff,0x1e,0xff,0x45,0xff,0x7e,0xff, +0xb2,0xff,0xf3,0xff,0x34,0x0,0x42,0x0,0x2d,0x0,0x2e,0x0, +0x2a,0x0,0xf4,0xff,0xb8,0xff,0x8d,0xff,0x50,0xff,0x2d,0xff, +0x4b,0xff,0x64,0xff,0x71,0xff,0xaa,0xff,0xe7,0xff,0x8,0x0, +0x31,0x0,0x40,0x0,0x18,0x0,0xef,0xff,0xd5,0xff,0x99,0xff, +0x4f,0xff,0x30,0xff,0x23,0xff,0xfe,0xfe,0xec,0xfe,0x1,0xff, +0xf6,0xfe,0xd1,0xfe,0xd6,0xfe,0xf2,0xfe,0xfd,0xfe,0x6,0xff, +0xf5,0xfe,0xc6,0xfe,0xc2,0xfe,0xe3,0xfe,0xd6,0xfe,0xb3,0xfe, +0xa8,0xfe,0x8a,0xfe,0x5b,0xfe,0x5c,0xfe,0x76,0xfe,0x65,0xfe, +0x39,0xfe,0x31,0xfe,0x50,0xfe,0x58,0xfe,0x51,0xfe,0x6f,0xfe, +0x86,0xfe,0x72,0xfe,0x7e,0xfe,0xa2,0xfe,0x90,0xfe,0x73,0xfe, +0x84,0xfe,0x8a,0xfe,0x6b,0xfe,0x64,0xfe,0x78,0xfe,0x7a,0xfe, +0x8a,0xfe,0xc1,0xfe,0xd6,0xfe,0xc5,0xfe,0xf9,0xfe,0x52,0xff, +0x63,0xff,0x5d,0xff,0x72,0xff,0x59,0xff,0x2b,0xff,0x3b,0xff, +0x42,0xff,0x18,0xff,0x1c,0xff,0x3b,0xff,0x2a,0xff,0x3a,0xff, +0x9e,0xff,0xe4,0xff,0xe4,0xff,0xf8,0xff,0x22,0x0,0x1c,0x0, +0xff,0xff,0xf8,0xff,0xdd,0xff,0xaa,0xff,0x87,0xff,0x64,0xff, +0x48,0xff,0x5d,0xff,0x7c,0xff,0x85,0xff,0xae,0xff,0xfc,0xff, +0x22,0x0,0x1f,0x0,0x35,0x0,0x50,0x0,0x2a,0x0,0xf5,0xff, +0xe9,0xff,0xc2,0xff,0x74,0xff,0x53,0xff,0x55,0xff,0x3a,0xff, +0x2c,0xff,0x57,0xff,0x7d,0xff,0x7d,0xff,0x94,0xff,0xcb,0xff, +0xdf,0xff,0xe3,0xff,0xfb,0xff,0xe0,0xff,0x9a,0xff,0x86,0xff, +0x73,0xff,0x30,0xff,0x25,0xff,0x53,0xff,0x3d,0xff,0x19,0xff, +0x52,0xff,0x88,0xff,0x78,0xff,0x8b,0xff,0xc0,0xff,0xb7,0xff, +0x99,0xff,0xaf,0xff,0xb7,0xff,0x93,0xff,0x92,0xff,0x9e,0xff, +0x71,0xff,0x59,0xff,0x7e,0xff,0x91,0xff,0x9b,0xff,0xc3,0xff, +0xd5,0xff,0xd1,0xff,0xe9,0xff,0x4,0x0,0x6,0x0,0x8,0x0, +0x1b,0x0,0x2b,0x0,0x2f,0x0,0x3d,0x0,0x3f,0x0,0x16,0x0, +0xff,0xff,0x2,0x0,0xe8,0xff,0xd3,0xff,0xd1,0xff,0xc1,0xff, +0xc5,0xff,0xdf,0xff,0xf4,0xff,0x13,0x0,0x2c,0x0,0x3f,0x0, +0x56,0x0,0x3f,0x0,0xd,0x0,0xea,0xff,0xb0,0xff,0x7e,0xff, +0x74,0xff,0x59,0xff,0x3f,0xff,0x50,0xff,0x6d,0xff,0x8f,0xff, +0xb6,0xff,0xd9,0xff,0xf8,0xff,0xff,0xff,0xf7,0xff,0xf1,0xff, +0xc8,0xff,0x9e,0xff,0x90,0xff,0x62,0xff,0x32,0xff,0x43,0xff, +0x64,0xff,0x77,0xff,0xa8,0xff,0xf3,0xff,0x2d,0x0,0x4a,0x0, +0x54,0x0,0x52,0x0,0x43,0x0,0x28,0x0,0xf9,0xff,0xcf,0xff, +0xbf,0xff,0xa3,0xff,0x97,0xff,0xd6,0xff,0x11,0x0,0x17,0x0, +0x3f,0x0,0x88,0x0,0xad,0x0,0xb9,0x0,0xc0,0x0,0xb1,0x0, +0x90,0x0,0x76,0x0,0x5d,0x0,0x38,0x0,0x34,0x0,0x50,0x0, +0x49,0x0,0x41,0x0,0x74,0x0,0x93,0x0,0x7c,0x0,0x8f,0x0, +0xb8,0x0,0x98,0x0,0x6d,0x0,0x7b,0x0,0x74,0x0,0x47,0x0, +0x3a,0x0,0x33,0x0,0x22,0x0,0x36,0x0,0x58,0x0,0x6d,0x0, +0x7d,0x0,0x87,0x0,0x9a,0x0,0xaa,0x0,0xa6,0x0,0xb5,0x0, +0xb2,0x0,0x8b,0x0,0x88,0x0,0x92,0x0,0x83,0x0,0x92,0x0, +0xaa,0x0,0xad,0x0,0xc0,0x0,0xd6,0x0,0xdf,0x0,0xe9,0x0, +0xf4,0x0,0xfa,0x0,0xdd,0x0,0xb3,0x0,0xb8,0x0,0xbc,0x0, +0x9d,0x0,0x9a,0x0,0xac,0x0,0xa4,0x0,0xa8,0x0,0xda,0x0, +0x0,0x1,0x1,0x1,0x1b,0x1,0x39,0x1,0x24,0x1,0x28,0x1, +0x47,0x1,0x23,0x1,0x5,0x1,0x16,0x1,0xfd,0x0,0xe1,0x0, +0xf7,0x0,0xfd,0x0,0xe3,0x0,0xde,0x0,0x3,0x1,0x1f,0x1, +0xe,0x1,0x27,0x1,0x64,0x1,0x58,0x1,0x3f,0x1,0x57,0x1, +0x57,0x1,0x46,0x1,0x39,0x1,0x7,0x1,0xd2,0x0,0xc5,0x0, +0xcd,0x0,0xd5,0x0,0xcf,0x0,0xce,0x0,0xe1,0x0,0xf9,0x0, +0x10,0x1,0x24,0x1,0x30,0x1,0x2c,0x1,0xf,0x1,0xef,0x0, +0xd3,0x0,0xb7,0x0,0xbd,0x0,0xc0,0x0,0x9a,0x0,0x9d,0x0, +0xc7,0x0,0xc4,0x0,0xcc,0x0,0xfd,0x0,0x1a,0x1,0x18,0x1, +0x6,0x1,0xf4,0x0,0xee,0x0,0xda,0x0,0xb5,0x0,0x92,0x0, +0x6f,0x0,0x73,0x0,0x95,0x0,0xa1,0x0,0xc3,0x0,0xf6,0x0, +0xe8,0x0,0xcb,0x0,0xe0,0x0,0xe6,0x0,0xd8,0x0,0xd7,0x0, +0xc0,0x0,0xa6,0x0,0xa5,0x0,0x95,0x0,0x7c,0x0,0x7b,0x0, +0x81,0x0,0x8a,0x0,0x96,0x0,0x9b,0x0,0xb0,0x0,0xc2,0x0, +0xc6,0x0,0xe7,0x0,0x3,0x1,0xe1,0x0,0xc3,0x0,0xd6,0x0, +0xd7,0x0,0xab,0x0,0x86,0x0,0x84,0x0,0x81,0x0,0x77,0x0, +0x90,0x0,0xb1,0x0,0xbc,0x0,0xdd,0x0,0xd,0x1,0x14,0x1, +0x10,0x1,0x19,0x1,0xfe,0x0,0xce,0x0,0xc8,0x0,0xc0,0x0, +0x84,0x0,0x68,0x0,0x8c,0x0,0x86,0x0,0x62,0x0,0x80,0x0, +0x9d,0x0,0x89,0x0,0x9e,0x0,0xc5,0x0,0xb3,0x0,0x9f,0x0, +0x9c,0x0,0x85,0x0,0x73,0x0,0x6f,0x0,0x68,0x0,0x56,0x0, +0x44,0x0,0x4f,0x0,0x63,0x0,0x5b,0x0,0x5c,0x0,0x53,0x0, +0x25,0x0,0x1d,0x0,0x2a,0x0,0xc,0x0,0x3,0x0,0x27,0x0, +0x31,0x0,0x26,0x0,0x28,0x0,0x35,0x0,0x40,0x0,0x3a,0x0, +0x2d,0x0,0x1c,0x0,0xfa,0xff,0xda,0xff,0xc9,0xff,0xb3,0xff, +0xaa,0xff,0xb3,0xff,0xad,0xff,0xa1,0xff,0xc1,0xff,0xf5,0xff, +0x6,0x0,0x10,0x0,0x2d,0x0,0x29,0x0,0x8,0x0,0x4,0x0, +0xf0,0xff,0xae,0xff,0x7c,0xff,0x62,0xff,0x37,0xff,0x17,0xff, +0x22,0xff,0x35,0xff,0x42,0xff,0x71,0xff,0xb0,0xff,0xb8,0xff, +0xa5,0xff,0xa8,0xff,0x8f,0xff,0x52,0xff,0x27,0xff,0xf7,0xfe, +0xb3,0xfe,0x94,0xfe,0x98,0xfe,0x9d,0xfe,0xb2,0xfe,0xce,0xfe, +0xd5,0xfe,0xe6,0xfe,0x4,0xff,0xff,0xfe,0xe0,0xfe,0xbf,0xfe, +0x7f,0xfe,0x32,0xfe,0xfb,0xfd,0xcd,0xfd,0xbc,0xfd,0xdf,0xfd, +0x16,0xfe,0x4b,0xfe,0x84,0xfe,0xbf,0xfe,0xf0,0xfe,0x7,0xff, +0xa,0xff,0xec,0xfe,0x9a,0xfe,0x31,0xfe,0xcb,0xfd,0x6a,0xfd, +0x2b,0xfd,0x21,0xfd,0x30,0xfd,0x4f,0xfd,0x8d,0xfd,0xe1,0xfd, +0x30,0xfe,0x78,0xfe,0xb7,0xfe,0xcf,0xfe,0xc7,0xfe,0xaa,0xfe, +0x6d,0xfe,0x2f,0xfe,0xf0,0xfd,0x9f,0xfd,0x7c,0xfd,0x82,0xfd, +0x81,0xfd,0xa8,0xfd,0xe8,0xfd,0xe,0xfe,0x4a,0xfe,0x8f,0xfe, +0xb0,0xfe,0xc2,0xfe,0xc0,0xfe,0xa4,0xfe,0x83,0xfe,0x60,0xfe, +0x42,0xfe,0x27,0xfe,0x12,0xfe,0x17,0xfe,0x10,0xfe,0xfb,0xfd, +0x10,0xfe,0x3f,0xfe,0x6a,0xfe,0x95,0xfe,0xae,0xfe,0xc0,0xfe, +0xd1,0xfe,0xc0,0xfe,0x94,0xfe,0x78,0xfe,0x6e,0xfe,0x46,0xfe, +0x1,0xfe,0xf4,0xfd,0x9,0xfe,0xf7,0xfd,0x7,0xfe,0x43,0xfe, +0x56,0xfe,0x6d,0xfe,0x7e,0xfe,0x41,0xfe,0x3,0xfe,0xe4,0xfd, +0xaa,0xfd,0x6d,0xfd,0x4d,0xfd,0x42,0xfd,0x44,0xfd,0x47,0xfd, +0x6b,0xfd,0xb9,0xfd,0x7,0xfe,0x45,0xfe,0x6f,0xfe,0x6f,0xfe, +0x48,0xfe,0x12,0xfe,0xda,0xfd,0x97,0xfd,0x67,0xfd,0x66,0xfd, +0x60,0xfd,0x53,0xfd,0x77,0xfd,0xca,0xfd,0x30,0xfe,0x89,0xfe, +0xc4,0xfe,0xfe,0xfe,0x18,0xff,0xf9,0xfe,0xd1,0xfe,0x9e,0xfe, +0x68,0xfe,0x53,0xfe,0x36,0xfe,0x16,0xfe,0x23,0xfe,0x4b,0xfe, +0x79,0xfe,0xb8,0xfe,0x15,0xff,0x73,0xff,0x96,0xff,0x99,0xff, +0x9d,0xff,0x8c,0xff,0x82,0xff,0x76,0xff,0x4c,0xff,0x3c,0xff, +0x46,0xff,0x45,0xff,0x55,0xff,0x75,0xff,0x93,0xff,0xb8,0xff, +0xe9,0xff,0x26,0x0,0x38,0x0,0x20,0x0,0x31,0x0,0x4a,0x0, +0x3b,0x0,0x3c,0x0,0x3a,0x0,0x21,0x0,0x27,0x0,0x3b,0x0, +0x4c,0x0,0x6e,0x0,0x7c,0x0,0x7f,0x0,0xaa,0x0,0xd5,0x0, +0xdb,0x0,0xdb,0x0,0xe5,0x0,0xf8,0x0,0xa,0x1,0x6,0x1, +0xf7,0x0,0xee,0x0,0xe1,0x0,0xce,0x0,0xc5,0x0,0xcd,0x0, +0xda,0x0,0xd8,0x0,0xd9,0x0,0x1,0x1,0x26,0x1,0x2e,0x1, +0x43,0x1,0x60,0x1,0x67,0x1,0x74,0x1,0x81,0x1,0x5f,0x1, +0x3d,0x1,0x50,0x1,0x60,0x1,0x56,0x1,0x60,0x1,0x6b,0x1, +0x71,0x1,0x90,0x1,0xab,0x1,0xbd,0x1,0xda,0x1,0xe1,0x1, +0xdb,0x1,0xea,0x1,0xf0,0x1,0xe1,0x1,0xd3,0x1,0xcb,0x1, +0xd1,0x1,0xe0,0x1,0xe6,0x1,0xdb,0x1,0xd5,0x1,0xec,0x1, +0x7,0x2,0x1,0x2,0xf2,0x1,0xff,0x1,0xd,0x2,0xfe,0x1, +0xe8,0x1,0xd7,0x1,0xc2,0x1,0xbc,0x1,0xc6,0x1,0xc0,0x1, +0xb8,0x1,0xb6,0x1,0xa2,0x1,0x99,0x1,0xad,0x1,0xa3,0x1, +0x80,0x1,0x7e,0x1,0x7b,0x1,0x66,0x1,0x6a,0x1,0x6b,0x1, +0x59,0x1,0x64,0x1,0x6b,0x1,0x60,0x1,0x6d,0x1,0x65,0x1, +0x49,0x1,0x54,0x1,0x55,0x1,0x37,0x1,0x2b,0x1,0x1e,0x1, +0x11,0x1,0x13,0x1,0xe,0x1,0x7,0x1,0xff,0x0,0xf1,0x0, +0xf6,0x0,0xfe,0x0,0xf7,0x0,0xf3,0x0,0xfc,0x0,0x14,0x1, +0x24,0x1,0x19,0x1,0x15,0x1,0x15,0x1,0x1,0x1,0xf0,0x0, +0xea,0x0,0xd9,0x0,0xc6,0x0,0xc5,0x0,0xc3,0x0,0xbb,0x0, +0xcf,0x0,0xe9,0x0,0xf3,0x0,0x12,0x1,0x39,0x1,0x3d,0x1, +0x38,0x1,0x35,0x1,0x32,0x1,0x28,0x1,0xd,0x1,0xf8,0x0, +0xdb,0x0,0xa9,0x0,0xa3,0x0,0xbb,0x0,0xc4,0x0,0xe6,0x0, +0x13,0x1,0x1e,0x1,0x1d,0x1,0x24,0x1,0x20,0x1,0x9,0x1, +0xf0,0x0,0xe7,0x0,0xd2,0x0,0xb2,0x0,0xaf,0x0,0xae,0x0, +0x9b,0x0,0x98,0x0,0xa7,0x0,0xb8,0x0,0xb9,0x0,0xad,0x0, +0xb8,0x0,0xd1,0x0,0xdc,0x0,0xd8,0x0,0xc1,0x0,0xab,0x0, +0xab,0x0,0x9e,0x0,0x87,0x0,0x7f,0x0,0x71,0x0,0x61,0x0, +0x68,0x0,0x75,0x0,0x76,0x0,0x78,0x0,0x84,0x0,0x8a,0x0, +0x7c,0x0,0x70,0x0,0x6f,0x0,0x6b,0x0,0x60,0x0,0x59,0x0, +0x51,0x0,0x3b,0x0,0x2e,0x0,0x3a,0x0,0x3d,0x0,0x37,0x0, +0x49,0x0,0x58,0x0,0x5b,0x0,0x67,0x0,0x6a,0x0,0x66,0x0, +0x65,0x0,0x4e,0x0,0x2d,0x0,0x15,0x0,0x2,0x0,0x5,0x0, +0xf,0x0,0xb,0x0,0x15,0x0,0x2b,0x0,0x35,0x0,0x3b,0x0, +0x42,0x0,0x3f,0x0,0x34,0x0,0x2b,0x0,0x1f,0x0,0x3,0x0, +0xef,0xff,0xea,0xff,0xe4,0xff,0xde,0xff,0xd6,0xff,0xd3,0xff, +0xdf,0xff,0xe7,0xff,0xf0,0xff,0xf9,0xff,0xf3,0xff,0xfa,0xff, +0xb,0x0,0x0,0x0,0xf8,0xff,0xf5,0xff,0xdd,0xff,0xc8,0xff, +0xc1,0xff,0xc0,0xff,0xc0,0xff,0xbe,0xff,0xc2,0xff,0xbd,0xff, +0xbd,0xff,0xde,0xff,0xe2,0xff,0xcd,0xff,0xdb,0xff,0xd1,0xff, +0xb7,0xff,0xcb,0xff,0xd5,0xff,0xc8,0xff,0xdb,0xff,0xf1,0xff, +0xf3,0xff,0xf9,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xf4,0xff, +0xe6,0xff,0xd2,0xff,0xc5,0xff,0xc3,0xff,0xbe,0xff,0xb6,0xff, +0xbf,0xff,0xd4,0xff,0xdc,0xff,0xd8,0xff,0xe1,0xff,0xf8,0xff, +0xfb,0xff,0xe7,0xff,0xd9,0xff,0xcb,0xff,0xa3,0xff,0x88,0xff, +0x85,0xff,0x6a,0xff,0x53,0xff,0x73,0xff,0x98,0xff,0x98,0xff, +0x9b,0xff,0xb1,0xff,0xba,0xff,0xaf,0xff,0xa6,0xff,0x99,0xff, +0x7b,0xff,0x68,0xff,0x5d,0xff,0x41,0xff,0x30,0xff,0x29,0xff, +0x10,0xff,0x7,0xff,0x18,0xff,0x1c,0xff,0x19,0xff,0x27,0xff, +0x3a,0xff,0x46,0xff,0x47,0xff,0x44,0xff,0x45,0xff,0x46,0xff, +0x43,0xff,0x37,0xff,0x27,0xff,0x23,0xff,0x21,0xff,0x1e,0xff, +0x23,0xff,0x29,0xff,0x2b,0xff,0x2d,0xff,0x2c,0xff,0x31,0xff, +0x3d,0xff,0x3d,0xff,0x3c,0xff,0x42,0xff,0x47,0xff,0x4c,0xff, +0x44,0xff,0x33,0xff,0x2c,0xff,0x22,0xff,0x12,0xff,0xe,0xff, +0x18,0xff,0x22,0xff,0x22,0xff,0x26,0xff,0x35,0xff,0x37,0xff, +0x34,0xff,0x37,0xff,0x2d,0xff,0x23,0xff,0x22,0xff,0x22,0xff, +0x2f,0xff,0x39,0xff,0x3a,0xff,0x3c,0xff,0x3a,0xff,0x44,0xff, +0x51,0xff,0x3c,0xff,0x1e,0xff,0x19,0xff,0x1c,0xff,0x16,0xff, +0xf,0xff,0x1a,0xff,0x23,0xff,0x20,0xff,0x2e,0xff,0x3c,0xff, +0x46,0xff,0x61,0xff,0x5e,0xff,0x42,0xff,0x42,0xff,0x3c,0xff, +0x27,0xff,0x20,0xff,0x1a,0xff,0x14,0xff,0x12,0xff,0x12,0xff, +0x19,0xff,0x1a,0xff,0x25,0xff,0x38,0xff,0x39,0xff,0x48,0xff, +0x5b,0xff,0x52,0xff,0x51,0xff,0x4d,0xff,0x2e,0xff,0x20,0xff, +0x1a,0xff,0x2,0xff,0xfb,0xfe,0x10,0xff,0x25,0xff,0x2f,0xff, +0x3b,0xff,0x48,0xff,0x54,0xff,0x69,0xff,0x7a,0xff,0x7b,0xff, +0x7a,0xff,0x79,0xff,0x6e,0xff,0x64,0xff,0x64,0xff,0x6c,0xff, +0x75,0xff,0x81,0xff,0x8b,0xff,0x8c,0xff,0x90,0xff,0x99,0xff, +0xa1,0xff,0xba,0xff,0xcb,0xff,0xbd,0xff,0xbe,0xff,0xcd,0xff, +0xd4,0xff,0xd9,0xff,0xda,0xff,0xe0,0xff,0xe8,0xff,0xe5,0xff, +0xf1,0xff,0x2,0x0,0xfd,0xff,0x1,0x0,0x13,0x0,0x17,0x0, +0x16,0x0,0x1b,0x0,0x18,0x0,0xf,0x0,0x9,0x0,0x6,0x0, +0xe,0x0,0x13,0x0,0xfc,0xff,0xe6,0xff,0xed,0xff,0xf1,0xff, +0xef,0xff,0xf4,0xff,0xeb,0xff,0xe2,0xff,0xe2,0xff,0xd7,0xff, +0xcc,0xff,0xbd,0xff,0x9f,0xff,0x8c,0xff,0x85,0xff,0x7a,0xff, +0x6c,0xff,0x64,0xff,0x62,0xff,0x56,0xff,0x49,0xff,0x48,0xff, +0x42,0xff,0x38,0xff,0x2d,0xff,0x19,0xff,0xf,0xff,0xa,0xff, +0xfa,0xfe,0xf5,0xfe,0xf4,0xfe,0xec,0xfe,0xed,0xfe,0xe7,0xfe, +0xd7,0xfe,0xd3,0xfe,0xd3,0xfe,0xc6,0xfe,0xa9,0xfe,0x90,0xfe, +0x83,0xfe,0x69,0xfe,0x4d,0xfe,0x42,0xfe,0x3b,0xfe,0x3c,0xfe, +0x4b,0xfe,0x56,0xfe,0x5a,0xfe,0x56,0xfe,0x50,0xfe,0x4b,0xfe, +0x36,0xfe,0x1f,0xfe,0x14,0xfe,0x9,0xfe,0x2,0xfe,0x5,0xfe, +0x1,0xfe,0xfa,0xfd,0xfd,0xfd,0x7,0xfe,0x11,0xfe,0x12,0xfe, +0x8,0xfe,0xff,0xfd,0xf2,0xfd,0xe2,0xfd,0xe3,0xfd,0xe9,0xfd, +0xe2,0xfd,0xe3,0xfd,0xe8,0xfd,0xe0,0xfd,0xe3,0xfd,0xf0,0xfd, +0xf6,0xfd,0xf8,0xfd,0xf3,0xfd,0xf5,0xfd,0xd,0xfe,0x23,0xfe, +0x40,0xfe,0x6b,0xfe,0x6f,0xfe,0x62,0xfe,0x7c,0xfe,0x91,0xfe, +0x88,0xfe,0x82,0xfe,0x7d,0xfe,0x7b,0xfe,0x81,0xfe,0x89,0xfe, +0x9f,0xfe,0xc0,0xfe,0xd8,0xfe,0xf3,0xfe,0x14,0xff,0x31,0xff, +0x48,0xff,0x5a,0xff,0x6c,0xff,0x6f,0xff,0x60,0xff,0x59,0xff, +0x55,0xff,0x52,0xff,0x67,0xff,0x79,0xff,0x82,0xff,0xa6,0xff, +0xd2,0xff,0xf4,0xff,0x18,0x0,0x34,0x0,0x4a,0x0,0x5a,0x0, +0x54,0x0,0x4d,0x0,0x51,0x0,0x4c,0x0,0x49,0x0,0x5a,0x0, +0x6a,0x0,0x70,0x0,0x7d,0x0,0x8c,0x0,0x94,0x0,0xa1,0x0, +0xb3,0x0,0xbb,0x0,0xbc,0x0,0xbe,0x0,0xc3,0x0,0xcb,0x0, +0xd2,0x0,0xd7,0x0,0xd8,0x0,0xd8,0x0,0xde,0x0,0xda,0x0, +0xcd,0x0,0xcd,0x0,0xc8,0x0,0xc1,0x0,0xd0,0x0,0xdc,0x0, +0xdc,0x0,0xe5,0x0,0xf2,0x0,0x9,0x1,0x26,0x1,0x2d,0x1, +0x2e,0x1,0x39,0x1,0x3a,0x1,0x39,0x1,0x45,0x1,0x45,0x1, +0x36,0x1,0x38,0x1,0x3b,0x1,0x34,0x1,0x3c,0x1,0x4f,0x1, +0x63,0x1,0x80,0x1,0x94,0x1,0xa1,0x1,0xad,0x1,0xb2,0x1, +0xbe,0x1,0xc7,0x1,0xc8,0x1,0xce,0x1,0xca,0x1,0xc4,0x1, +0xd5,0x1,0xe8,0x1,0x6,0x2,0x2e,0x2,0x3d,0x2,0x45,0x2, +0x59,0x2,0x6b,0x2,0x7d,0x2,0x86,0x2,0x8e,0x2,0xa1,0x2, +0xac,0x2,0xbe,0x2,0xde,0x2,0xf6,0x2,0x6,0x3,0x13,0x3, +0x27,0x3,0x3f,0x3,0x3c,0x3,0x3d,0x3,0x52,0x3,0x59,0x3, +0x65,0x3,0x7c,0x3,0x87,0x3,0x92,0x3,0xa4,0x3,0xb2,0x3, +0xbb,0x3,0xb1,0x3,0xa2,0x3,0xa7,0x3,0xb2,0x3,0xb2,0x3, +0xa5,0x3,0xa1,0x3,0xb9,0x3,0xcf,0x3,0xce,0x3,0xc6,0x3, +0xba,0x3,0xb7,0x3,0xbf,0x3,0xb4,0x3,0x97,0x3,0x83,0x3, +0x75,0x3,0x6c,0x3,0x65,0x3,0x57,0x3,0x4c,0x3,0x47,0x3, +0x39,0x3,0x30,0x3,0x36,0x3,0x35,0x3,0x2f,0x3,0x2d,0x3, +0x27,0x3,0x26,0x3,0x25,0x3,0xa,0x3,0xe7,0x2,0xd1,0x2, +0xbc,0x2,0xae,0x2,0xad,0x2,0xa6,0x2,0x98,0x2,0x98,0x2, +0x9f,0x2,0x9a,0x2,0x8c,0x2,0x77,0x2,0x61,0x2,0x4b,0x2, +0x2e,0x2,0x10,0x2,0xf6,0x1,0xda,0x1,0xc9,0x1,0xcc,0x1, +0xc4,0x1,0xa9,0x1,0x94,0x1,0x83,0x1,0x60,0x1,0x40,0x1, +0x29,0x1,0x4,0x1,0xe5,0x0,0xd4,0x0,0xb8,0x0,0xa2,0x0, +0x91,0x0,0x74,0x0,0x67,0x0,0x61,0x0,0x4f,0x0,0x3b,0x0, +0x14,0x0,0xf5,0xff,0xf8,0xff,0xea,0xff,0xcb,0xff,0xb0,0xff, +0x85,0xff,0x67,0xff,0x61,0xff,0x4d,0xff,0x33,0xff,0x1b,0xff, +0x6,0xff,0xfe,0xfe,0xfd,0xfe,0xfa,0xfe,0xdc,0xfe,0xa5,0xfe, +0x84,0xfe,0x78,0xfe,0x5a,0xfe,0x2b,0xfe,0xa,0xfe,0x6,0xfe, +0x7,0xfe,0x7,0xfe,0x1e,0xfe,0x29,0xfe,0x2a,0xfe,0x3d,0xfe, +0x3c,0xfe,0x27,0xfe,0x1a,0xfe,0x1,0xfe,0xd9,0xfd,0xb6,0xfd, +0xa4,0xfd,0x9c,0xfd,0x81,0xfd,0x6c,0xfd,0x7f,0xfd,0x95,0xfd, +0x94,0xfd,0x94,0xfd,0xac,0xfd,0xc7,0xfd,0xc7,0xfd,0xc8,0xfd, +0xd4,0xfd,0xd3,0xfd,0xcf,0xfd,0xcb,0xfd,0xcc,0xfd,0xda,0xfd, +0xdd,0xfd,0xde,0xfd,0xe9,0xfd,0xf1,0xfd,0xf,0xfe,0x27,0xfe, +0x16,0xfe,0x1f,0xfe,0x3b,0xfe,0x24,0xfe,0xff,0xfd,0xf6,0xfd, +0xf6,0xfd,0xe6,0xfd,0xbc,0xfd,0x9b,0xfd,0x9b,0xfd,0x9b,0xfd, +0x82,0xfd,0x62,0xfd,0x58,0xfd,0x55,0xfd,0x3e,0xfd,0x25,0xfd, +0x9,0xfd,0xdf,0xfc,0xbc,0xfc,0xaa,0xfc,0x9c,0xfc,0x8e,0xfc, +0x7a,0xfc,0x64,0xfc,0x53,0xfc,0x54,0xfc,0x5f,0xfc,0x4f,0xfc, +0x2a,0xfc,0x15,0xfc,0xa,0xfc,0xf8,0xfb,0xd6,0xfb,0xab,0xfb, +0x92,0xfb,0x81,0xfb,0x6b,0xfb,0x62,0xfb,0x5d,0xfb,0x56,0xfb, +0x57,0xfb,0x66,0xfb,0x7c,0xfb,0x82,0xfb,0x74,0xfb,0x6f,0xfb, +0x72,0xfb,0x6e,0xfb,0x62,0xfb,0x4b,0xfb,0x3b,0xfb,0x48,0xfb, +0x67,0xfb,0x80,0xfb,0x92,0xfb,0xa9,0xfb,0xc9,0xfb,0xea,0xfb, +0x1,0xfc,0x17,0xfc,0x39,0xfc,0x52,0xfc,0x63,0xfc,0x8f,0xfc, +0xbc,0xfc,0xda,0xfc,0xff,0xfc,0x1a,0xfd,0x39,0xfd,0x73,0xfd, +0x99,0xfd,0xa5,0xfd,0xc5,0xfd,0xed,0xfd,0x14,0xfe,0x47,0xfe, +0x7e,0xfe,0xb4,0xfe,0xe3,0xfe,0x9,0xff,0x36,0xff,0x60,0xff, +0x7c,0xff,0x91,0xff,0xa4,0xff,0xc3,0xff,0xea,0xff,0xfd,0xff, +0xd,0x0,0x2b,0x0,0x49,0x0,0x64,0x0,0x77,0x0,0x8d,0x0, +0xa9,0x0,0xc0,0x0,0xd6,0x0,0xec,0x0,0xf9,0x0,0xf,0x1, +0x25,0x1,0x21,0x1,0x1b,0x1,0x14,0x1,0xb,0x1,0x8,0x1, +0xf8,0x0,0xe9,0x0,0xf9,0x0,0x2,0x1,0xf8,0x0,0x0,0x1, +0x1d,0x1,0x36,0x1,0x3a,0x1,0x32,0x1,0x31,0x1,0x23,0x1, +0x6,0x1,0xf3,0x0,0xe7,0x0,0xde,0x0,0xd2,0x0,0xc7,0x0, +0xc1,0x0,0xb5,0x0,0xa7,0x0,0xa2,0x0,0x90,0x0,0x79,0x0, +0x72,0x0,0x6c,0x0,0x63,0x0,0x5d,0x0,0x55,0x0,0x51,0x0, +0x50,0x0,0x4f,0x0,0x56,0x0,0x50,0x0,0x37,0x0,0x29,0x0, +0x2a,0x0,0x29,0x0,0x23,0x0,0x18,0x0,0x10,0x0,0x12,0x0, +0x15,0x0,0x1f,0x0,0x2f,0x0,0x35,0x0,0x3f,0x0,0x56,0x0, +0x63,0x0,0x6f,0x0,0x74,0x0,0x5e,0x0,0x51,0x0,0x53,0x0, +0x3b,0x0,0x29,0x0,0x2f,0x0,0x31,0x0,0x36,0x0,0x40,0x0, +0x50,0x0,0x77,0x0,0x97,0x0,0xa6,0x0,0xb9,0x0,0xbc,0x0, +0xb2,0x0,0xae,0x0,0x9c,0x0,0x82,0x0,0x7e,0x0,0x7f,0x0, +0x6d,0x0,0x63,0x0,0x72,0x0,0x85,0x0,0x91,0x0,0x9a,0x0, +0x9b,0x0,0x9c,0x0,0x9f,0x0,0x8e,0x0,0x72,0x0,0x65,0x0, +0x58,0x0,0x39,0x0,0x1f,0x0,0x12,0x0,0x0,0x0,0xf0,0xff, +0xee,0xff,0xee,0xff,0xe7,0xff,0xda,0xff,0xd0,0xff,0xcb,0xff, +0xbe,0xff,0xaa,0xff,0xa4,0xff,0x9d,0xff,0x86,0xff,0x66,0xff, +0x4e,0xff,0x3e,0xff,0x2c,0xff,0x1c,0xff,0x12,0xff,0x5,0xff, +0x2,0xff,0xe,0xff,0x14,0xff,0x1b,0xff,0x26,0xff,0x2d,0xff, +0x2d,0xff,0x24,0xff,0x21,0xff,0x18,0xff,0x2,0xff,0x7,0xff, +0x14,0xff,0x7,0xff,0xf,0xff,0x2d,0xff,0x39,0xff,0x49,0xff, +0x65,0xff,0x76,0xff,0x74,0xff,0x72,0xff,0x82,0xff,0x86,0xff, +0x7d,0xff,0x8d,0xff,0xa5,0xff,0xb9,0xff,0xd7,0xff,0xf3,0xff, +0x7,0x0,0x23,0x0,0x4b,0x0,0x6d,0x0,0x7d,0x0,0x92,0x0, +0xb1,0x0,0xc4,0x0,0xce,0x0,0xdc,0x0,0xe8,0x0,0xf1,0x0, +0x6,0x1,0x1a,0x1,0x1d,0x1,0x2b,0x1,0x4e,0x1,0x6c,0x1, +0x86,0x1,0x9e,0x1,0xaa,0x1,0xbd,0x1,0xcb,0x1,0xcd,0x1, +0xd4,0x1,0xcf,0x1,0xc5,0x1,0xd1,0x1,0xe4,0x1,0xf4,0x1, +0x3,0x2,0x1e,0x2,0x3d,0x2,0x50,0x2,0x68,0x2,0x7e,0x2, +0x7d,0x2,0x86,0x2,0x95,0x2,0x95,0x2,0x95,0x2,0x8e,0x2, +0x8c,0x2,0x99,0x2,0xa3,0x2,0xac,0x2,0xb3,0x2,0xbe,0x2, +0xd3,0x2,0xd3,0x2,0xd8,0x2,0xe9,0x2,0xe8,0x2,0xed,0x2, +0xf6,0x2,0xef,0x2,0xfc,0x2,0x8,0x3,0x0,0x3,0xfa,0x2, +0xf1,0x2,0xf1,0x2,0x5,0x3,0x14,0x3,0x1c,0x3,0x22,0x3, +0x35,0x3,0x4b,0x3,0x48,0x3,0x43,0x3,0x43,0x3,0x32,0x3, +0x1c,0x3,0xa,0x3,0x1,0x3,0xff,0x2,0xfa,0x2,0xa,0x3, +0x28,0x3,0x3c,0x3,0x5a,0x3,0x76,0x3,0x82,0x3,0x90,0x3, +0xa2,0x3,0xaf,0x3,0xa3,0x3,0x89,0x3,0x84,0x3,0x79,0x3, +0x5f,0x3,0x4e,0x3,0x49,0x3,0x4d,0x3,0x4d,0x3,0x48,0x3, +0x62,0x3,0x7b,0x3,0x7a,0x3,0x7f,0x3,0x78,0x3,0x69,0x3, +0x70,0x3,0x77,0x3,0x60,0x3,0x38,0x3,0x20,0x3,0x27,0x3, +0x20,0x3,0xe,0x3,0x16,0x3,0x1e,0x3,0x20,0x3,0x38,0x3, +0x4c,0x3,0x4b,0x3,0x42,0x3,0x2f,0x3,0x21,0x3,0x19,0x3, +0xf2,0x2,0xba,0x2,0x9e,0x2,0x87,0x2,0x6d,0x2,0x60,0x2, +0x41,0x2,0x2d,0x2,0x54,0x2,0x74,0x2,0x5d,0x2,0x3f,0x2, +0x40,0x2,0x5c,0x2,0x5b,0x2,0x1f,0x2,0xd9,0x1,0xaf,0x1, +0x8b,0x1,0x56,0x1,0x15,0x1,0xdf,0x0,0xbf,0x0,0xbd,0x0, +0xc1,0x0,0xb3,0x0,0xb4,0x0,0xc6,0x0,0xcd,0x0,0xd1,0x0, +0xbc,0x0,0x88,0x0,0x57,0x0,0x18,0x0,0xd5,0xff,0x98,0xff, +0x55,0xff,0x2e,0xff,0x1a,0xff,0xe,0xff,0x26,0xff,0x33,0xff, +0x37,0xff,0x46,0xff,0x2c,0xff,0x1a,0xff,0x9,0xff,0xa5,0xfe, +0x50,0xfe,0x2c,0xfe,0xe4,0xfd,0xa0,0xfd,0x66,0xfd,0x35,0xfd, +0x5c,0xfd,0x96,0xfd,0x8d,0xfd,0x94,0xfd,0xd3,0xfd,0x9,0xfe, +0xfc,0xfd,0xca,0xfd,0xa4,0xfd,0x78,0xfd,0x42,0xfd,0xf7,0xfc, +0x97,0xfc,0x7c,0xfc,0x89,0xfc,0x63,0xfc,0x65,0xfc,0xa6,0xfc, +0xcd,0xfc,0xf0,0xfc,0xf,0xfd,0x19,0xfd,0x39,0xfd,0x48,0xfd, +0x21,0xfd,0xea,0xfc,0xb9,0xfc,0x99,0xfc,0x6a,0xfc,0x39,0xfc, +0x50,0xfc,0x6d,0xfc,0x7f,0xfc,0xd2,0xfc,0x9,0xfd,0x18,0xfd, +0x62,0xfd,0x81,0xfd,0x6a,0xfd,0x6e,0xfd,0x2d,0xfd,0xc9,0xfc, +0xa6,0xfc,0x6d,0xfc,0x25,0xfc,0x13,0xfc,0xa,0xfc,0xa,0xfc, +0x1d,0xfc,0x35,0xfc,0x5e,0xfc,0x84,0xfc,0x9c,0xfc,0xa2,0xfc, +0x83,0xfc,0x62,0xfc,0x36,0xfc,0xee,0xfb,0xba,0xfb,0x8b,0xfb, +0x4b,0xfb,0x25,0xfb,0x19,0xfb,0x19,0xfb,0x21,0xfb,0x24,0xfb, +0x36,0xfb,0x4b,0xfb,0x4c,0xfb,0x40,0xfb,0x22,0xfb,0x3,0xfb, +0xea,0xfa,0xbb,0xfa,0x91,0xfa,0x7c,0xfa,0x68,0xfa,0x68,0xfa, +0x7a,0xfa,0x9c,0xfa,0xcc,0xfa,0xe7,0xfa,0x6,0xfb,0x31,0xfb, +0x3d,0xfb,0x3e,0xfb,0x41,0xfb,0x3b,0xfb,0x42,0xfb,0x39,0xfb, +0x24,0xfb,0x32,0xfb,0x4b,0xfb,0x68,0xfb,0x86,0xfb,0x94,0xfb, +0xc0,0xfb,0xe8,0xfb,0xf0,0xfb,0x13,0xfc,0x30,0xfc,0x31,0xfc, +0x51,0xfc,0x68,0xfc,0x74,0xfc,0xaa,0xfc,0xd8,0xfc,0x6,0xfd, +0x57,0xfd,0x93,0xfd,0xbc,0xfd,0xeb,0xfd,0x11,0xfe,0x3c,0xfe, +0x61,0xfe,0x74,0xfe,0x8a,0xfe,0x9f,0xfe,0xb6,0xfe,0xd5,0xfe, +0xef,0xfe,0xe,0xff,0x31,0xff,0x4e,0xff,0x76,0xff,0xa4,0xff, +0xc8,0xff,0xe7,0xff,0x9,0x0,0x2a,0x0,0x39,0x0,0x3d,0x0, +0x50,0x0,0x68,0x0,0x7b,0x0,0x8d,0x0,0xa5,0x0,0xcd,0x0, +0xef,0x0,0xf6,0x0,0xfd,0x0,0xe,0x1,0x11,0x1,0x6,0x1, +0xfb,0x0,0xef,0x0,0xe8,0x0,0xe7,0x0,0xe4,0x0,0xeb,0x0, +0x3,0x1,0x2,0x1,0xed,0x0,0xf2,0x0,0xf9,0x0,0xe4,0x0, +0xda,0x0,0xd3,0x0,0xbc,0x0,0xac,0x0,0x9e,0x0,0x8e,0x0, +0x8c,0x0,0x8b,0x0,0x88,0x0,0x8e,0x0,0x89,0x0,0x77,0x0, +0x6c,0x0,0x61,0x0,0x50,0x0,0x3a,0x0,0x1a,0x0,0xf9,0xff, +0xed,0xff,0xec,0xff,0xe2,0xff,0xdb,0xff,0xe3,0xff,0xf1,0xff, +0xfa,0xff,0x1,0x0,0x8,0x0,0xa,0x0,0xb,0x0,0xd,0x0, +0x1,0x0,0xed,0xff,0xec,0xff,0xeb,0xff,0xde,0xff,0xe5,0xff, +0xfd,0xff,0x9,0x0,0x17,0x0,0x2b,0x0,0x37,0x0,0x36,0x0, +0x2d,0x0,0x28,0x0,0x28,0x0,0x20,0x0,0x23,0x0,0x39,0x0, +0x4d,0x0,0x6a,0x0,0x92,0x0,0xb2,0x0,0xd9,0x0,0xf9,0x0, +0xfd,0x0,0x5,0x1,0x10,0x1,0xe,0x1,0x13,0x1,0x1d,0x1, +0x25,0x1,0x3b,0x1,0x50,0x1,0x60,0x1,0x83,0x1,0x9c,0x1, +0xa9,0x1,0xc4,0x1,0xd7,0x1,0xdd,0x1,0xe2,0x1,0xdb,0x1, +0xd3,0x1,0xd4,0x1,0xd6,0x1,0xdd,0x1,0xdf,0x1,0xd5,0x1, +0xda,0x1,0xf1,0x1,0x9,0x2,0x14,0x2,0x1a,0x2,0x25,0x2, +0x2f,0x2,0x35,0x2,0x3c,0x2,0x30,0x2,0xf,0x2,0xf6,0x1, +0xe9,0x1,0xda,0x1,0xc7,0x1,0xb8,0x1,0xb5,0x1,0xb4,0x1, +0xb7,0x1,0xc5,0x1,0xce,0x1,0xc7,0x1,0xbf,0x1,0xbb,0x1, +0xb3,0x1,0xab,0x1,0xab,0x1,0xa1,0x1,0x86,0x1,0x73,0x1, +0x62,0x1,0x44,0x1,0x2e,0x1,0x23,0x1,0xf,0x1,0xfe,0x0, +0xf9,0x0,0xec,0x0,0xdc,0x0,0xe3,0x0,0xf0,0x0,0xea,0x0, +0xe6,0x0,0xef,0x0,0xed,0x0,0xe0,0x0,0xd0,0x0,0xbe,0x0, +0xb0,0x0,0xa3,0x0,0x94,0x0,0x8d,0x0,0x8b,0x0,0x8b,0x0, +0x8f,0x0,0x9f,0x0,0xb2,0x0,0xb8,0x0,0xc2,0x0,0xd3,0x0, +0xd4,0x0,0xcd,0x0,0xcf,0x0,0xc9,0x0,0xbe,0x0,0xbc,0x0, +0xbd,0x0,0xb7,0x0,0xb4,0x0,0xca,0x0,0xdd,0x0,0xda,0x0, +0xd7,0x0,0xc9,0x0,0xad,0x0,0x9d,0x0,0x85,0x0,0x5a,0x0, +0x25,0x0,0xe8,0xff,0xbf,0xff,0xaf,0xff,0xb2,0xff,0xc5,0xff, +0xc3,0xff,0xcb,0xff,0xb,0x0,0x46,0x0,0x56,0x0,0x4f,0x0, +0x3c,0x0,0x33,0x0,0x1e,0x0,0xdd,0xff,0x85,0xff,0x20,0xff, +0xdd,0xfe,0xd7,0xfe,0xd1,0xfe,0xc7,0xfe,0xce,0xfe,0xd3,0xfe, +0xf2,0xfe,0x18,0xff,0x12,0xff,0xfa,0xfe,0xd3,0xfe,0xa1,0xfe, +0x7e,0xfe,0x54,0xfe,0x25,0xfe,0x6,0xfe,0xfe,0xfd,0x16,0xfe, +0x24,0xfe,0x19,0xfe,0x26,0xfe,0x3a,0xfe,0x41,0xfe,0x3b,0xfe, +0x10,0xfe,0xdb,0xfd,0xba,0xfd,0x97,0xfd,0x77,0xfd,0x68,0xfd, +0x6e,0xfd,0x85,0xfd,0x98,0xfd,0xb5,0xfd,0xe5,0xfd,0xf,0xfe, +0x37,0xfe,0x55,0xfe,0x5a,0xfe,0x59,0xfe,0x56,0xfe,0x4d,0xfe, +0x4b,0xfe,0x58,0xfe,0x6c,0xfe,0x83,0xfe,0xac,0xfe,0xec,0xfe, +0x2e,0xff,0x65,0xff,0x8c,0xff,0xa6,0xff,0xc8,0xff,0xdc,0xff, +0xcb,0xff,0xb5,0xff,0xbf,0xff,0xe8,0xff,0xf,0x0,0x32,0x0, +0x75,0x0,0xce,0x0,0x2c,0x1,0x85,0x1,0xcc,0x1,0xf,0x2, +0x49,0x2,0x57,0x2,0x4f,0x2,0x40,0x2,0x2b,0x2,0x33,0x2, +0x50,0x2,0x61,0x2,0x86,0x2,0xc9,0x2,0x11,0x3,0x56,0x3, +0x9a,0x3,0xcf,0x3,0xe8,0x3,0xf4,0x3,0xf5,0x3,0xd5,0x3, +0xa7,0x3,0x8d,0x3,0x82,0x3,0x7b,0x3,0x7d,0x3,0x91,0x3, +0xb1,0x3,0xcc,0x3,0xe6,0x3,0xf7,0x3,0xeb,0x3,0xce,0x3, +0xa3,0x3,0x67,0x3,0x27,0x3,0xe9,0x2,0xb3,0x2,0x8c,0x2, +0x70,0x2,0x66,0x2,0x6f,0x2,0x77,0x2,0x87,0x2,0xa9,0x2, +0xba,0x2,0xa4,0x2,0x7b,0x2,0x48,0x2,0x1,0x2,0xb3,0x1, +0x72,0x1,0x2b,0x1,0xe4,0x0,0xb9,0x0,0xa5,0x0,0x9b,0x0, +0x9e,0x0,0xaa,0x0,0xb9,0x0,0xcb,0x0,0xd5,0x0,0xd1,0x0, +0xcc,0x0,0xce,0x0,0xc1,0x0,0xa2,0x0,0x7b,0x0,0x4e,0x0, +0x3a,0x0,0x4d,0x0,0x5d,0x0,0x44,0x0,0xd,0x0,0xe7,0xff, +0xff,0xff,0x37,0x0,0x4c,0x0,0x28,0x0,0xd,0x0,0x50,0x0, +0xc8,0x0,0xf6,0x0,0xda,0x0,0xef,0x0,0x76,0x1,0xd,0x2, +0x3,0x2,0x58,0x1,0xf0,0x0,0x4f,0x1,0xe4,0x1,0xbf,0x1, +0xce,0x0,0x1d,0x0,0x83,0x0,0x6d,0x1,0xbc,0x1,0x56,0x1, +0x7,0x1,0x57,0x1,0x11,0x2,0x9a,0x2,0x7d,0x2,0xf1,0x1, +0xad,0x1,0xfe,0x1,0x66,0x2,0x3b,0x2,0x6d,0x1,0xae,0x0, +0xd8,0x0,0xd1,0x1,0x45,0x2,0x69,0x1,0x5d,0x0,0x85,0x0, +0x8f,0x1,0x11,0x2,0x4e,0x1,0x31,0x0,0x2d,0x0,0xff,0x0, +0x27,0x1,0x58,0x0,0xb3,0xff,0xf,0x0,0xd3,0x0,0xcd,0x0, +0x17,0x0,0xd8,0xff,0x62,0x0,0xe2,0x0,0xac,0x0,0x18,0x0, +0xd0,0xff,0xe2,0xff,0xe2,0xff,0x6b,0xff,0xb0,0xfe,0x78,0xfe, +0xce,0xfe,0xfa,0xfe,0x97,0xfe,0xd2,0xfd,0x92,0xfd,0x6d,0xfe, +0x70,0xff,0x80,0xff,0xbd,0xfe,0x27,0xfe,0x98,0xfe,0x88,0xff, +0xc7,0xff,0x31,0xff,0x6f,0xfe,0x1d,0xfe,0x52,0xfe,0x91,0xfe, +0x55,0xfe,0x91,0xfd,0x21,0xfd,0xb6,0xfd,0x59,0xfe,0x1c,0xfe, +0x97,0xfd,0xa5,0xfd,0x9d,0xfe,0xac,0xff,0x82,0xff,0xb4,0xfe, +0xbc,0xfe,0x7e,0xff,0xe1,0xff,0x68,0xff,0xbf,0xfe,0xaf,0xfe, +0xe4,0xfe,0xb2,0xfe,0x1f,0xfe,0xc8,0xfd,0x17,0xfe,0x8e,0xfe, +0x88,0xfe,0x18,0xfe,0xc7,0xfd,0x30,0xfe,0x7,0xff,0x3e,0xff, +0xc6,0xfe,0x74,0xfe,0xbd,0xfe,0x5b,0xff,0x8c,0xff,0x25,0xff, +0xd6,0xfe,0xf0,0xfe,0x26,0xff,0x13,0xff,0xa2,0xfe,0x39,0xfe, +0xb,0xfe,0xf6,0xfd,0x3,0xfe,0x10,0xfe,0xdc,0xfd,0x8c,0xfd, +0x92,0xfd,0x1d,0xfe,0x9b,0xfe,0x79,0xfe,0x31,0xfe,0x6b,0xfe, +0xd8,0xfe,0xe6,0xfe,0x81,0xfe,0xa,0xfe,0x24,0xfe,0xa5,0xfe, +0x72,0xfe,0x6e,0xfd,0xd5,0xfc,0x36,0xfd,0xcc,0xfd,0xa8,0xfd, +0xcb,0xfc,0x40,0xfc,0xb9,0xfc,0x73,0xfd,0x6e,0xfd,0xe3,0xfc, +0xd9,0xfc,0xa2,0xfd,0x5f,0xfe,0x48,0xfe,0xd5,0xfd,0xf0,0xfd, +0x79,0xfe,0xa8,0xfe,0x48,0xfe,0xb1,0xfd,0x4d,0xfd,0x3a,0xfd, +0x23,0xfd,0xec,0xfc,0xc6,0xfc,0x9d,0xfc,0x90,0xfc,0xe5,0xfc, +0x59,0xfd,0xa5,0xfd,0xe3,0xfd,0x19,0xfe,0x54,0xfe,0x9f,0xfe, +0xc0,0xfe,0x9d,0xfe,0x77,0xfe,0x7b,0xfe,0x6b,0xfe,0x24,0xfe, +0xe8,0xfd,0xc8,0xfd,0xc1,0xfd,0xec,0xfd,0x3,0xfe,0xd0,0xfd, +0xb2,0xfd,0xf6,0xfd,0x5f,0xfe,0x7b,0xfe,0x4c,0xfe,0x58,0xfe, +0xcd,0xfe,0x2f,0xff,0x23,0xff,0xe9,0xfe,0xea,0xfe,0x2e,0xff, +0x58,0xff,0x33,0xff,0xe0,0xfe,0xaa,0xfe,0xb1,0xfe,0xaf,0xfe, +0x8e,0xfe,0x94,0xfe,0xa3,0xfe,0x85,0xfe,0x8c,0xfe,0xcc,0xfe, +0xed,0xfe,0xf7,0xfe,0x1f,0xff,0x3c,0xff,0x2f,0xff,0x2e,0xff, +0x45,0xff,0x4a,0xff,0x4b,0xff,0x58,0xff,0x3f,0xff,0x9,0xff, +0xfe,0xfe,0x1e,0xff,0x2e,0xff,0xb,0xff,0xc5,0xfe,0x9b,0xfe, +0xab,0xfe,0xc6,0xfe,0xa0,0xfe,0x4d,0xfe,0x4c,0xfe,0xb3,0xfe, +0xfc,0xfe,0xdc,0xfe,0xab,0xfe,0xd4,0xfe,0x2f,0xff,0x49,0xff, +0x1e,0xff,0xe9,0xfe,0xc4,0xfe,0xc2,0xfe,0xc1,0xfe,0x8d,0xfe, +0x58,0xfe,0x58,0xfe,0x67,0xfe,0x66,0xfe,0x49,0xfe,0x2c,0xfe, +0x4f,0xfe,0x9a,0xfe,0xc0,0xfe,0xb7,0xfe,0xaa,0xfe,0xc9,0xfe, +0x15,0xff,0x3d,0xff,0x25,0xff,0x15,0xff,0x2c,0xff,0x43,0xff, +0x46,0xff,0x34,0xff,0x16,0xff,0x8,0xff,0x1c,0xff,0x38,0xff, +0x39,0xff,0x23,0xff,0x2d,0xff,0x77,0xff,0xca,0xff,0xf6,0xff, +0x9,0x0,0x1d,0x0,0x52,0x0,0xa2,0x0,0xc1,0x0,0xad,0x0, +0xae,0x0,0xc1,0x0,0xc8,0x0,0xd7,0x0,0xe8,0x0,0xf4,0x0, +0x19,0x1,0x53,0x1,0x79,0x1,0x7e,0x1,0x84,0x1,0xaf,0x1, +0xf4,0x1,0x11,0x2,0x3,0x2,0x13,0x2,0x45,0x2,0x5b,0x2, +0x5d,0x2,0x62,0x2,0x60,0x2,0x67,0x2,0x78,0x2,0x5c,0x2, +0x1e,0x2,0x4,0x2,0x8,0x2,0x8,0x2,0xc,0x2,0x0,0x2, +0xd1,0x1,0xbc,0x1,0xdf,0x1,0xf9,0x1,0xe0,0x1,0xa8,0x1, +0x83,0x1,0x88,0x1,0x7d,0x1,0x46,0x1,0x1d,0x1,0x8,0x1, +0xe9,0x0,0xd9,0x0,0xcc,0x0,0x94,0x0,0x60,0x0,0x59,0x0, +0x48,0x0,0x17,0x0,0xe1,0xff,0xb8,0xff,0xae,0xff,0xb8,0xff, +0xab,0xff,0x92,0xff,0x95,0xff,0xa4,0xff,0x95,0xff,0x66,0xff, +0x38,0xff,0x25,0xff,0x15,0xff,0xe1,0xfe,0x9c,0xfe,0x6c,0xfe, +0x58,0xfe,0x5f,0xfe,0x7f,0xfe,0x96,0xfe,0x94,0xfe,0x9c,0xfe, +0xc7,0xfe,0xf6,0xfe,0xb,0xff,0xb,0xff,0x3,0xff,0xd,0xff, +0x25,0xff,0x1f,0xff,0x2,0xff,0x8,0xff,0x31,0xff,0x4f,0xff, +0x5b,0xff,0x61,0xff,0x72,0xff,0x9d,0xff,0xd8,0xff,0xff,0xff, +0x1,0x0,0xf7,0xff,0x1b,0x0,0x5d,0x0,0x76,0x0,0x73,0x0, +0x94,0x0,0xd6,0x0,0x2,0x1,0x8,0x1,0xfd,0x0,0xfb,0x0, +0xd,0x1,0x29,0x1,0x21,0x1,0xf1,0x0,0xd6,0x0,0xe8,0x0, +0xf6,0x0,0xf7,0x0,0xf5,0x0,0xed,0x0,0xec,0x0,0x0,0x1, +0x12,0x1,0x2,0x1,0xde,0x0,0xd2,0x0,0xd5,0x0,0xb9,0x0, +0x85,0x0,0x54,0x0,0x30,0x0,0x19,0x0,0x2,0x0,0xdf,0xff, +0xaf,0xff,0x8b,0xff,0x89,0xff,0x91,0xff,0x7d,0xff,0x58,0xff, +0x3f,0xff,0x42,0xff,0x45,0xff,0x27,0xff,0xff,0xfe,0xe3,0xfe, +0xd4,0xfe,0xcd,0xfe,0xa6,0xfe,0x66,0xfe,0x4e,0xfe,0x57,0xfe, +0x55,0xfe,0x3f,0xfe,0x20,0xfe,0x1c,0xfe,0x31,0xfe,0x3e,0xfe, +0x45,0xfe,0x41,0xfe,0x41,0xfe,0x70,0xfe,0x9e,0xfe,0xa6,0xfe, +0xae,0xfe,0xb3,0xfe,0xc3,0xfe,0xfa,0xfe,0x15,0xff,0xfb,0xfe, +0xf9,0xfe,0x23,0xff,0x4e,0xff,0x6b,0xff,0x84,0xff,0xa7,0xff, +0xd5,0xff,0xd,0x0,0x45,0x0,0x73,0x0,0x9e,0x0,0xd4,0x0, +0x11,0x1,0x46,0x1,0x60,0x1,0x72,0x1,0x91,0x1,0xb8,0x1, +0xdd,0x1,0xf2,0x1,0xff,0x1,0x2a,0x2,0x6f,0x2,0x98,0x2, +0xa4,0x2,0xb7,0x2,0xd9,0x2,0xf7,0x2,0x3,0x3,0xff,0x2, +0xf7,0x2,0x5,0x3,0x31,0x3,0x57,0x3,0x5a,0x3,0x52,0x3, +0x66,0x3,0x95,0x3,0xaf,0x3,0x9d,0x3,0x81,0x3,0x76,0x3, +0x7c,0x3,0x81,0x3,0x6e,0x3,0x51,0x3,0x48,0x3,0x4d,0x3, +0x49,0x3,0x34,0x3,0x1c,0x3,0xd,0x3,0x8,0x3,0x3,0x3, +0xeb,0x2,0xcd,0x2,0xc8,0x2,0xcc,0x2,0xc8,0x2,0xbf,0x2, +0xae,0x2,0xa3,0x2,0x97,0x2,0x6d,0x2,0x3f,0x2,0x1d,0x2, +0xf6,0x1,0xd5,0x1,0xbc,0x1,0x9e,0x1,0x7e,0x1,0x71,0x1, +0x85,0x1,0x9e,0x1,0xa2,0x1,0xab,0x1,0xba,0x1,0xcb,0x1, +0xe4,0x1,0xe0,0x1,0xc0,0x1,0xa3,0x1,0x76,0x1,0x3c,0x1, +0xa,0x1,0xd2,0x0,0xa3,0x0,0xa4,0x0,0xcd,0x0,0xfd,0x0, +0x25,0x1,0x5e,0x1,0xbb,0x1,0x18,0x2,0x50,0x2,0x5f,0x2, +0x56,0x2,0x45,0x2,0x19,0x2,0xc3,0x1,0x6a,0x1,0x1f,0x1, +0xea,0x0,0xd5,0x0,0xdc,0x0,0x9,0x1,0x37,0x1,0x54,0x1, +0xa1,0x1,0xfb,0x1,0x24,0x2,0x5b,0x2,0x86,0x2,0x72,0x2, +0x55,0x2,0x1e,0x2,0xd1,0x1,0xa2,0x1,0x52,0x1,0xe0,0x0, +0xab,0x0,0xaf,0x0,0xbf,0x0,0xb4,0x0,0x9c,0x0,0xc4,0x0, +0x24,0x1,0x72,0x1,0x7d,0x1,0x42,0x1,0x4,0x1,0xe4,0x0, +0xd8,0x0,0xc5,0x0,0x5b,0x0,0xbf,0xff,0x6f,0xff,0x70,0xff, +0x91,0xff,0x7e,0xff,0x14,0xff,0xcc,0xfe,0xd1,0xfe,0xe7,0xfe, +0xf7,0xfe,0xe2,0xfe,0xd4,0xfe,0xe1,0xfe,0xb5,0xfe,0x78,0xfe, +0x63,0xfe,0x4f,0xfe,0x3f,0xfe,0xf,0xfe,0xa8,0xfd,0x50,0xfd, +0x16,0xfd,0x3,0xfd,0x1d,0xfd,0x2d,0xfd,0x39,0xfd,0x3e,0xfd, +0x1e,0xfd,0x21,0xfd,0x67,0xfd,0xb6,0xfd,0xd2,0xfd,0x9a,0xfd, +0x3a,0xfd,0xd,0xfd,0x2e,0xfd,0x61,0xfd,0x56,0xfd,0x2c,0xfd, +0x1a,0xfd,0xff,0xfc,0xf6,0xfc,0x2b,0xfd,0x77,0xfd,0xc1,0xfd, +0xe8,0xfd,0xde,0xfd,0xe1,0xfd,0xfa,0xfd,0x1,0xfe,0xfb,0xfd, +0xf7,0xfd,0x0,0xfe,0x12,0xfe,0x1c,0xfe,0x1d,0xfe,0x18,0xfe, +0x2e,0xfe,0x6f,0xfe,0xbb,0xfe,0x6,0xff,0x2d,0xff,0x1b,0xff, +0x7,0xff,0x3,0xff,0xa,0xff,0x44,0xff,0x91,0xff,0xa8,0xff, +0x7a,0xff,0x24,0xff,0xfa,0xfe,0x42,0xff,0xd8,0xff,0x4d,0x0, +0x28,0x0,0x7d,0xff,0xd,0xff,0x65,0xff,0x22,0x0,0x5f,0x0, +0xe6,0xff,0x69,0xff,0x7e,0xff,0xff,0xff,0x2f,0x0,0xb5,0xff, +0x5b,0xff,0xb5,0xff,0x29,0x0,0xfe,0xff,0x4c,0xff,0xcb,0xfe, +0x8,0xff,0xb8,0xff,0x2c,0x0,0x7,0x0,0x77,0xff,0xd,0xff, +0x36,0xff,0xc3,0xff,0xf,0x0,0xa8,0xff,0xe8,0xfe,0x81,0xfe, +0xa0,0xfe,0xf2,0xfe,0xfd,0xfe,0x9d,0xfe,0x36,0xfe,0x3d,0xfe, +0xc4,0xfe,0x55,0xff,0x74,0xff,0x25,0xff,0xd2,0xfe,0xe5,0xfe, +0x5a,0xff,0xae,0xff,0x8e,0xff,0x15,0xff,0x87,0xfe,0x3b,0xfe, +0x48,0xfe,0x68,0xfe,0x63,0xfe,0x42,0xfe,0x30,0xfe,0x44,0xfe, +0x62,0xfe,0x6d,0xfe,0x8e,0xfe,0x24,0xff,0x5,0x0,0x5c,0x0, +0xcb,0xff,0xfc,0xfe,0xed,0xfe,0xd1,0xff,0xac,0x0,0x99,0x0, +0xbf,0xff,0xb9,0xfe,0x38,0xfe,0x8b,0xfe,0x39,0xff,0xa7,0xff, +0x88,0xff,0x5,0xff,0xa7,0xfe,0xc1,0xfe,0x78,0xff,0x79,0x0, +0xf0,0x0,0xb2,0x0,0x2c,0x0,0xd8,0xff,0x16,0x0,0x82,0x0, +0x87,0x0,0x34,0x0,0xa4,0xff,0x28,0xff,0x30,0xff,0x6a,0xff, +0x6c,0xff,0x3a,0xff,0x6,0xff,0x35,0xff,0xbb,0xff,0xc,0x0, +0xf8,0xff,0xd5,0xff,0x27,0x0,0xd5,0x0,0x18,0x1,0xc6,0x0, +0x5b,0x0,0x34,0x0,0x66,0x0,0x67,0x0,0xb2,0xff,0xc9,0xfe, +0x71,0xfe,0xd4,0xfe,0x6e,0xff,0x76,0xff,0xce,0xfe,0x4a,0xfe, +0xcc,0xfe,0x1c,0x0,0x0,0x1,0xd0,0x0,0x11,0x0,0x84,0xff, +0xb1,0xff,0x76,0x0,0xe7,0x0,0x69,0x0,0x48,0xff,0x7b,0xfe, +0xc0,0xfe,0x6e,0xff,0x6c,0xff,0xe3,0xfe,0x99,0xfe,0x8,0xff, +0xdd,0xff,0xfa,0xff,0x47,0xff,0x2d,0xff,0x22,0x0,0x9,0x1, +0xfb,0x0,0x2f,0x0,0x96,0xff,0xef,0xff,0xb5,0x0,0x9b,0x0, +0x85,0xff,0xaf,0xfe,0xc9,0xfe,0x67,0xff,0xcb,0xff,0x89,0xff, +0x44,0xff,0xd0,0xff,0xa2,0x0,0xe2,0x0,0x9b,0x0,0x54,0x0, +0x85,0x0,0xd1,0x0,0xa7,0x0,0x7a,0x0,0x7a,0x0,0x2d,0x0, +0xe1,0xff,0xfe,0xff,0x36,0x0,0x3f,0x0,0xe6,0xff,0x69,0xff, +0xa3,0xff,0x8d,0x0,0xfe,0x0,0x80,0x0,0x2d,0x0,0xe6,0x0, +0xd5,0x1,0xa3,0x1,0x71,0x0,0xc9,0xff,0x8a,0x0,0x59,0x1, +0xb9,0x0,0x72,0xff,0x18,0xff,0xf1,0xff,0xde,0x0,0xb2,0x0, +0xd,0x0,0x10,0x0,0x52,0x0,0x7a,0x0,0xc8,0x0,0xe7,0x0, +0xda,0x0,0xd4,0x0,0x7f,0x0,0x34,0x0,0x66,0x0,0x5d,0x0, +0xb0,0xff,0x32,0xff,0x9d,0xff,0x31,0x0,0xbc,0xff,0xe0,0xfe, +0x3a,0xff,0xa0,0x0,0x6f,0x1,0xd0,0x0,0xbd,0xff,0xb3,0xff, +0x8a,0x0,0xca,0x0,0xe,0x0,0x85,0xff,0xc8,0xff,0xea,0xff, +0x6c,0xff,0xa,0xff,0x29,0xff,0x83,0xff,0xbb,0xff,0x83,0xff, +0x47,0xff,0xa8,0xff,0x2c,0x0,0x14,0x0,0xd1,0xff,0x2c,0x0, +0xb2,0x0,0x44,0x0,0x20,0xff,0xc5,0xfe,0x7c,0xff,0xda,0xff, +0x2e,0xff,0x7b,0xfe,0x9c,0xfe,0x33,0xff,0x7b,0xff,0x23,0xff, +0xdc,0xfe,0x76,0xff,0x27,0x0,0xda,0xff,0x44,0xff,0x61,0xff, +0xd9,0xff,0xe5,0xff,0x76,0xff,0x29,0xff,0x26,0xff,0xf6,0xfe, +0xa4,0xfe,0x7a,0xfe,0x90,0xfe,0x3,0xff,0x39,0xff,0xaf,0xfe, +0x80,0xfe,0x35,0xff,0x83,0xff,0x22,0xff,0x27,0xff,0x68,0xff, +0x45,0xff,0x23,0xff,0x23,0xff,0xf8,0xfe,0xf1,0xfe,0xf,0xff, +0xe1,0xfe,0x92,0xfe,0x6a,0xfe,0x6a,0xfe,0x8c,0xfe,0xb0,0xfe, +0xf1,0xfe,0x2d,0xff,0xef,0xfe,0xda,0xfe,0x7c,0xff,0xc8,0xff, +0x69,0xff,0x59,0xff,0x9e,0xff,0xa2,0xff,0x53,0xff,0x6,0xff, +0x36,0xff,0x8b,0xff,0x59,0xff,0x10,0xff,0x18,0xff,0x25,0xff, +0x51,0xff,0x7c,0xff,0x65,0xff,0xa4,0xff,0xc,0x0,0xbc,0xff, +0x72,0xff,0xdf,0xff,0xd,0x0,0xc0,0xff,0xc5,0xff,0xf6,0xff, +0xd1,0xff,0x91,0xff,0x8e,0xff,0xa5,0xff,0xae,0xff,0xd2,0xff, +0xe4,0xff,0xaf,0xff,0xae,0xff,0x0,0x0,0x31,0x0,0x5e,0x0, +0x8d,0x0,0x66,0x0,0x49,0x0,0x77,0x0,0x61,0x0,0x1d,0x0, +0x49,0x0,0x96,0x0,0x68,0x0,0x11,0x0,0x19,0x0,0x43,0x0, +0x4f,0x0,0x80,0x0,0xcf,0x0,0xe4,0x0,0xc7,0x0,0xa3,0x0, +0x9f,0x0,0xe8,0x0,0x2e,0x1,0xf8,0x0,0x9c,0x0,0x90,0x0, +0xa4,0x0,0xac,0x0,0xaa,0x0,0x9b,0x0,0xca,0x0,0x1f,0x1, +0xfa,0x0,0x99,0x0,0xb4,0x0,0x6,0x1,0x11,0x1,0x2,0x1, +0xfe,0x0,0xe9,0x0,0xd0,0x0,0xe1,0x0,0x8,0x1,0x6,0x1, +0xee,0x0,0xf6,0x0,0x3,0x1,0xf4,0x0,0xe7,0x0,0xfa,0x0, +0x20,0x1,0x33,0x1,0x1e,0x1,0xe,0x1,0x36,0x1,0x55,0x1, +0x37,0x1,0x3e,0x1,0x80,0x1,0x99,0x1,0x9a,0x1,0x9f,0x1, +0x75,0x1,0x71,0x1,0xbd,0x1,0xc2,0x1,0x87,0x1,0x99,0x1, +0xd1,0x1,0xe2,0x1,0xe1,0x1,0xfd,0x1,0x42,0x2,0x63,0x2, +0x35,0x2,0x2d,0x2,0x61,0x2,0x6c,0x2,0x71,0x2,0x99,0x2, +0x8b,0x2,0x68,0x2,0x87,0x2,0xa4,0x2,0xac,0x2,0xcc,0x2, +0xcd,0x2,0xb8,0x2,0xbb,0x2,0x9f,0x2,0x7a,0x2,0x91,0x2, +0xa5,0x2,0x91,0x2,0x6b,0x2,0x17,0x2,0xef,0x1,0x5b,0x2, +0xc3,0x2,0x92,0x2,0x3c,0x2,0x41,0x2,0x66,0x2,0x4f,0x2, +0x16,0x2,0xfe,0x1,0xdd,0x1,0x8a,0x1,0x50,0x1,0x27,0x1, +0xf1,0x0,0x17,0x1,0x54,0x1,0xf9,0x0,0xbd,0x0,0x2b,0x1, +0x25,0x1,0x8d,0x0,0xa9,0x0,0x10,0x1,0x90,0x0,0xde,0xff, +0xc6,0xff,0xb7,0xff,0x9b,0xff,0xa2,0xff,0x52,0xff,0xfb,0xfe, +0x20,0xff,0x1b,0xff,0xde,0xfe,0xe,0xff,0x39,0xff,0xf2,0xfe, +0xb7,0xfe,0xc1,0xfe,0xdb,0xfe,0xa1,0xfe,0x1,0xfe,0xd9,0xfd, +0x5c,0xfe,0x5b,0xfe,0xb1,0xfd,0x6f,0xfd,0xb0,0xfd,0xf7,0xfd, +0xff,0xfd,0xa4,0xfd,0x80,0xfd,0xee,0xfd,0x9,0xfe,0x9b,0xfd, +0x72,0xfd,0xb0,0xfd,0x19,0xfe,0x26,0xfe,0x92,0xfd,0x87,0xfd, +0xb,0xfe,0xa9,0xfd,0x46,0xfd,0xe8,0xfd,0x1,0xfe,0x88,0xfd, +0xb7,0xfd,0xcf,0xfd,0xd2,0xfd,0x8d,0xfe,0xc9,0xfe,0x48,0xfe, +0x95,0xfe,0x25,0xff,0xe0,0xfe,0x94,0xfe,0xc1,0xfe,0xf4,0xfe, +0xf0,0xfe,0xa1,0xfe,0x67,0xfe,0x84,0xfe,0x91,0xfe,0xaf,0xfe, +0xf9,0xfe,0xd1,0xfe,0x9a,0xfe,0xf7,0xfe,0x46,0xff,0x4e,0xff, +0x80,0xff,0x8d,0xff,0x52,0xff,0x71,0xff,0xbc,0xff,0x81,0xff, +0x19,0xff,0xf7,0xfe,0x1,0xff,0x5c,0xff,0x78,0xff,0xc9,0xfe, +0x93,0xfe,0x2f,0xff,0x72,0xff,0x7e,0xff,0x4d,0xff,0xdc,0xfe, +0x5b,0xff,0xe0,0xff,0x46,0xff,0x19,0xff,0x47,0xff,0xdf,0xfe, +0xda,0xfe,0xf5,0xfe,0xa9,0xfe,0x9c,0xfe,0x5b,0xfe,0x4c,0xfe, +0x3f,0xff,0x84,0xff,0x9c,0xfe,0x62,0xfe,0x1e,0xff,0xbd,0xff, +0x84,0xff,0xbc,0xfe,0x93,0xfe,0xf3,0xfe,0xf0,0xfe,0xc1,0xfe, +0xb3,0xfe,0xa4,0xfe,0x9b,0xfe,0x7d,0xfe,0x9d,0xfe,0x3b,0xff, +0x5f,0xff,0xc3,0xfe,0xc9,0xfe,0xb8,0xff,0x29,0x0,0x7c,0xff, +0xa9,0xfe,0xe5,0xfe,0xc6,0xff,0xa8,0xff,0xb3,0xfe,0x6f,0xfe, +0xd2,0xfe,0x1b,0xff,0x2f,0xff,0x6,0xff,0xf0,0xfe,0x15,0xff, +0x25,0xff,0x4f,0xff,0x74,0xff,0x37,0xff,0xd,0xff,0x3,0xff, +0x5,0xff,0x6e,0xff,0x64,0xff,0x96,0xfe,0x73,0xfe,0xfb,0xfe, +0x20,0xff,0xc,0xff,0xd2,0xfe,0x64,0xfe,0x85,0xfe,0x21,0xff, +0x28,0xff,0xb9,0xfe,0xb2,0xfe,0xcf,0xfe,0xb3,0xfe,0xe6,0xfe, +0x2d,0xff,0xe4,0xfe,0xad,0xfe,0x1,0xff,0x30,0xff,0x0,0xff, +0xe3,0xfe,0xdd,0xfe,0xc1,0xfe,0xd5,0xfe,0x34,0xff,0x2c,0xff, +0x92,0xfe,0x6b,0xfe,0x3,0xff,0x65,0xff,0x2e,0xff,0xe4,0xfe, +0xe9,0xfe,0x44,0xff,0xb7,0xff,0xc2,0xff,0x66,0xff,0x48,0xff, +0x86,0xff,0xbe,0xff,0xdb,0xff,0xd3,0xff,0xb6,0xff,0xb6,0xff, +0xbc,0xff,0xe6,0xff,0x44,0x0,0x43,0x0,0x0,0x0,0x2a,0x0, +0x6e,0x0,0x74,0x0,0x93,0x0,0xbf,0x0,0xbf,0x0,0xcb,0x0, +0x4,0x1,0x21,0x1,0x0,0x1,0xf2,0x0,0x20,0x1,0x59,0x1, +0x87,0x1,0x73,0x1,0x1a,0x1,0x2b,0x1,0xa9,0x1,0xb6,0x1, +0x61,0x1,0x52,0x1,0x85,0x1,0xa3,0x1,0x8e,0x1,0x91,0x1, +0xdd,0x1,0x3,0x2,0xda,0x1,0xbe,0x1,0xd0,0x1,0x1c,0x2, +0x5f,0x2,0xa,0x2,0x8d,0x1,0xb5,0x1,0xf,0x2,0xf9,0x1, +0xb4,0x1,0x8c,0x1,0x81,0x1,0x9c,0x1,0xe6,0x1,0xf3,0x1, +0x72,0x1,0x35,0x1,0xec,0x1,0x94,0x2,0x41,0x2,0x9b,0x1, +0x76,0x1,0xc8,0x1,0x2b,0x2,0x49,0x2,0xd9,0x1,0x22,0x1, +0xf5,0x0,0x4b,0x1,0x81,0x1,0x8f,0x1,0x5a,0x1,0xe4,0x0, +0xff,0x0,0xaf,0x1,0x2,0x2,0xab,0x1,0x1e,0x1,0x4d,0x1, +0x45,0x2,0x71,0x2,0x4e,0x1,0x72,0x0,0x6,0x1,0x51,0x2, +0x90,0x2,0x73,0x1,0x9d,0x0,0xd1,0x0,0x97,0x1,0x6b,0x2, +0x71,0x2,0x95,0x1,0xf1,0x0,0xf8,0x0,0xa6,0x1,0x77,0x2, +0x16,0x2,0xe5,0x0,0xd2,0x0,0xc5,0x1,0x2d,0x2,0x9c,0x1, +0xeb,0x0,0x2f,0x1,0x5a,0x2,0xe3,0x2,0xf6,0x1,0xb2,0x0, +0x91,0x0,0xa8,0x1,0x7d,0x2,0xf7,0x1,0xd9,0x0,0x37,0x0, +0x65,0x0,0x4e,0x1,0xf1,0x1,0x6a,0x1,0x94,0x0,0x6e,0x0, +0x2,0x1,0xd3,0x1,0x9d,0x1,0x57,0x0,0x11,0x0,0x1a,0x1, +0x7f,0x1,0xa8,0x0,0x7c,0xff,0x1,0xff,0xb9,0xff,0xae,0x0, +0x9c,0x0,0xc6,0xff,0x23,0xff,0x44,0xff,0xfd,0xff,0x7a,0x0, +0x58,0x0,0xcf,0xff,0x44,0xff,0x75,0xff,0x8,0x0,0x87,0xff, +0x75,0xfe,0x60,0xfe,0xf7,0xfe,0x64,0xff,0x1e,0xff,0xf2,0xfd, +0x65,0xfd,0x64,0xfe,0x76,0xff,0xa3,0xff,0x18,0xff,0x43,0xfe, +0x32,0xfe,0xf4,0xfe,0x66,0xff,0x40,0xff,0xb9,0xfe,0x36,0xfe, +0x60,0xfe,0xae,0xfe,0x5a,0xfe,0xf5,0xfd,0x15,0xfe,0x83,0xfe, +0xb8,0xfe,0x61,0xfe,0x7,0xfe,0x2f,0xfe,0x7b,0xfe,0xd1,0xfe, +0x46,0xff,0x15,0xff,0x45,0xfe,0x1d,0xfe,0xb1,0xfe,0xc,0xff, +0x1,0xff,0x93,0xfe,0x11,0xfe,0x3b,0xfe,0x9a,0xfe,0x68,0xfe, +0x32,0xfe,0x4e,0xfe,0x7c,0xfe,0xbf,0xfe,0xcf,0xfe,0x9b,0xfe, +0x7b,0xfe,0x87,0xfe,0xf8,0xfe,0x78,0xff,0x21,0xff,0x93,0xfe, +0xb2,0xfe,0xd9,0xfe,0xd0,0xfe,0xe5,0xfe,0xb1,0xfe,0x6a,0xfe, +0x81,0xfe,0x8d,0xfe,0x82,0xfe,0x85,0xfe,0x67,0xfe,0x8a,0xfe, +0xe4,0xfe,0xce,0xfe,0xa6,0xfe,0xbb,0xfe,0xb9,0xfe,0xeb,0xfe, +0x27,0xff,0xe2,0xfe,0x98,0xfe,0x86,0xfe,0x89,0xfe,0xce,0xfe, +0xd5,0xfe,0x7a,0xfe,0x6b,0xfe,0x71,0xfe,0x6a,0xfe,0xc4,0xfe, +0xf8,0xfe,0xc2,0xfe,0xb5,0xfe,0xe5,0xfe,0x18,0xff,0x24,0xff, +0xe8,0xfe,0xd4,0xfe,0x22,0xff,0x4a,0xff,0xf9,0xfe,0x99,0xfe, +0xab,0xfe,0x4,0xff,0x2d,0xff,0x24,0xff,0xe,0xff,0xf4,0xfe, +0x11,0xff,0x6d,0xff,0xad,0xff,0x9f,0xff,0x86,0xff,0x8b,0xff, +0x85,0xff,0x83,0xff,0x96,0xff,0x7e,0xff,0x5e,0xff,0x7f,0xff, +0x91,0xff,0x71,0xff,0x6e,0xff,0x8c,0xff,0xb8,0xff,0xfe,0xff, +0x22,0x0,0xfa,0xff,0xd7,0xff,0xef,0xff,0x13,0x0,0x33,0x0, +0x4e,0x0,0xd,0x0,0x90,0xff,0x89,0xff,0xea,0xff,0xf5,0xff, +0xad,0xff,0xad,0xff,0xd9,0xff,0xca,0xff,0xbd,0xff,0xd5,0xff, +0xda,0xff,0xf2,0xff,0x18,0x0,0xf8,0xff,0xca,0xff,0xb3,0xff, +0x82,0xff,0x76,0xff,0xa8,0xff,0xa2,0xff,0x54,0xff,0x18,0xff, +0xd,0xff,0x23,0xff,0x4b,0xff,0x5a,0xff,0x3b,0xff,0x29,0xff, +0x41,0xff,0x52,0xff,0x50,0xff,0x42,0xff,0x2e,0xff,0x2d,0xff, +0x2d,0xff,0x10,0xff,0xe4,0xfe,0xb2,0xfe,0xa3,0xfe,0xca,0xfe, +0xe9,0xfe,0xec,0xfe,0xcd,0xfe,0xad,0xfe,0xdc,0xfe,0x9,0xff, +0xe2,0xfe,0xe4,0xfe,0x6,0xff,0xd9,0xfe,0xcb,0xfe,0x18,0xff, +0x2e,0xff,0xee,0xfe,0xc8,0xfe,0xe5,0xfe,0x7,0xff,0x12,0xff, +0x13,0xff,0x16,0xff,0x44,0xff,0x8a,0xff,0x88,0xff,0x64,0xff, +0x84,0xff,0xab,0xff,0x9a,0xff,0xa0,0xff,0xd6,0xff,0xe3,0xff, +0xc8,0xff,0xfa,0xff,0x5d,0x0,0x56,0x0,0xf,0x0,0x1f,0x0, +0x68,0x0,0x8a,0x0,0x92,0x0,0x9f,0x0,0xac,0x0,0xc6,0x0, +0xe8,0x0,0x2,0x1,0x2b,0x1,0x4a,0x1,0x27,0x1,0xfc,0x0, +0x1e,0x1,0x65,0x1,0x80,0x1,0x49,0x1,0x2,0x1,0x27,0x1, +0x94,0x1,0xb4,0x1,0xac,0x1,0xdc,0x1,0x3,0x2,0xdc,0x1, +0xa7,0x1,0xba,0x1,0xa,0x2,0x3b,0x2,0x18,0x2,0xce,0x1, +0xa6,0x1,0xbc,0x1,0xf1,0x1,0x2e,0x2,0x65,0x2,0x54,0x2, +0xf4,0x1,0xb0,0x1,0xc0,0x1,0x9,0x2,0x74,0x2,0xad,0x2, +0x58,0x2,0xd9,0x1,0xf4,0x1,0x8c,0x2,0xcb,0x2,0x97,0x2, +0x8c,0x2,0x8f,0x2,0x38,0x2,0xf3,0x1,0xf,0x2,0x2c,0x2, +0x33,0x2,0x3a,0x2,0x11,0x2,0xd0,0x1,0xdd,0x1,0x3a,0x2, +0x96,0x2,0xb9,0x2,0xa1,0x2,0x81,0x2,0x8d,0x2,0xa7,0x2, +0xb7,0x2,0xdd,0x2,0xe5,0x2,0xa6,0x2,0x98,0x2,0xc3,0x2, +0x92,0x2,0x2c,0x2,0x14,0x2,0x35,0x2,0x49,0x2,0x38,0x2, +0x8,0x2,0xf7,0x1,0x30,0x2,0x7a,0x2,0x91,0x2,0x9c,0x2, +0xd0,0x2,0xe2,0x2,0x90,0x2,0x2c,0x2,0x1c,0x2,0x37,0x2, +0x1a,0x2,0xd2,0x1,0x91,0x1,0x2a,0x1,0xc6,0x0,0xe5,0x0, +0x47,0x1,0x74,0x1,0x6f,0x1,0x47,0x1,0x27,0x1,0x30,0x1, +0x3b,0x1,0x42,0x1,0x23,0x1,0xc3,0x0,0x99,0x0,0xa2,0x0, +0x48,0x0,0xd6,0xff,0xe1,0xff,0x20,0x0,0x2a,0x0,0xdd,0xff, +0x5c,0xff,0x46,0xff,0xc8,0xff,0xe,0x0,0xb5,0xff,0x66,0xff, +0x79,0xff,0x95,0xff,0x88,0xff,0x58,0xff,0x26,0xff,0x30,0xff, +0x5a,0xff,0x5b,0xff,0x38,0xff,0xf5,0xfe,0x9f,0xfe,0x89,0xfe, +0xbf,0xfe,0xe5,0xfe,0xa6,0xfe,0x19,0xfe,0xf0,0xfd,0x62,0xfe, +0xb2,0xfe,0xac,0xfe,0xaf,0xfe,0x8e,0xfe,0x6b,0xfe,0xaa,0xfe, +0xc1,0xfe,0x56,0xfe,0x18,0xfe,0x5c,0xfe,0x96,0xfe,0x47,0xfe, +0x9a,0xfd,0x4d,0xfd,0xb6,0xfd,0x41,0xfe,0x52,0xfe,0x3,0xfe, +0xdb,0xfd,0x13,0xfe,0x5a,0xfe,0x78,0xfe,0x7b,0xfe,0x52,0xfe, +0xc,0xfe,0xea,0xfd,0xf2,0xfd,0xe7,0xfd,0xa6,0xfd,0x7a,0xfd, +0xb8,0xfd,0x1,0xfe,0xef,0xfd,0xcc,0xfd,0xc5,0xfd,0xd3,0xfd, +0x2d,0xfe,0x7e,0xfe,0x41,0xfe,0xe5,0xfd,0xd9,0xfd,0xcb,0xfd, +0xa9,0xfd,0x9f,0xfd,0x8a,0xfd,0x6a,0xfd,0x65,0xfd,0x85,0xfd, +0xb2,0xfd,0xae,0xfd,0xae,0xfd,0x1f,0xfe,0x76,0xfe,0x35,0xfe, +0x0,0xfe,0x27,0xfe,0x32,0xfe,0x14,0xfe,0xfb,0xfd,0xdd,0xfd, +0xbe,0xfd,0x9b,0xfd,0x7d,0xfd,0x9e,0xfd,0x1c,0xfe,0x98,0xfe, +0x8b,0xfe,0x4d,0xfe,0xa9,0xfe,0x3b,0xff,0x2b,0xff,0xdc,0xfe, +0xe9,0xfe,0xf7,0xfe,0xb5,0xfe,0x80,0xfe,0x93,0xfe,0x9e,0xfe, +0x84,0xfe,0x9b,0xfe,0xe5,0xfe,0xe,0xff,0x1d,0xff,0x3d,0xff, +0x75,0xff,0xbc,0xff,0xdf,0xff,0xb2,0xff,0x71,0xff,0x69,0xff, +0x93,0xff,0x90,0xff,0x2f,0xff,0x7,0xff,0x68,0xff,0x99,0xff, +0x62,0xff,0x78,0xff,0xc8,0xff,0xb7,0xff,0xa1,0xff,0xfb,0xff, +0x29,0x0,0xd0,0xff,0xa9,0xff,0xec,0xff,0xfc,0xff,0xdd,0xff, +0xec,0xff,0xe2,0xff,0xbd,0xff,0xf7,0xff,0x3e,0x0,0x9,0x0, +0xe1,0xff,0x33,0x0,0x54,0x0,0x13,0x0,0x1e,0x0,0x4d,0x0, +0x12,0x0,0xfe,0xff,0x71,0x0,0x87,0x0,0x19,0x0,0x16,0x0, +0x80,0x0,0x91,0x0,0x62,0x0,0x70,0x0,0x8f,0x0,0x85,0x0, +0x8c,0x0,0xa2,0x0,0x77,0x0,0x34,0x0,0x41,0x0,0x71,0x0, +0x61,0x0,0x4d,0x0,0x73,0x0,0x6e,0x0,0x4f,0x0,0xa4,0x0, +0xfb,0x0,0xb2,0x0,0x7e,0x0,0xdd,0x0,0xf3,0x0,0x9a,0x0, +0xa1,0x0,0xbf,0x0,0x61,0x0,0x3f,0x0,0x8a,0x0,0x61,0x0, +0xfd,0xff,0x3b,0x0,0xa5,0x0,0x82,0x0,0x65,0x0,0xbf,0x0, +0xd9,0x0,0x96,0x0,0xcd,0x0,0x1d,0x1,0xa6,0x0,0x5c,0x0, +0xd3,0x0,0xaf,0x0,0xf8,0xff,0x28,0x0,0x94,0x0,0x10,0x0, +0xd8,0xff,0x80,0x0,0x97,0x0,0x27,0x0,0x73,0x0,0xe0,0x0, +0x8f,0x0,0x72,0x0,0xe1,0x0,0xbc,0x0,0x22,0x0,0x4a,0x0, +0xae,0x0,0x3d,0x0,0xf5,0xff,0x7d,0x0,0x74,0x0,0xdc,0xff, +0x1c,0x0,0x96,0x0,0x51,0x0,0x40,0x0,0xb0,0x0,0x94,0x0, +0x23,0x0,0x6e,0x0,0xea,0x0,0x7e,0x0,0xa,0x0,0x8e,0x0, +0xc4,0x0,0x14,0x0,0xf5,0xff,0x68,0x0,0x47,0x0,0x1b,0x0, +0x69,0x0,0x5a,0x0,0xe,0x0,0x5d,0x0,0xab,0x0,0x3f,0x0, +0x20,0x0,0xc8,0x0,0xb8,0x0,0xed,0xff,0x35,0x0,0xf3,0x0, +0x64,0x0,0xbd,0xff,0x51,0x0,0x9a,0x0,0xfe,0xff,0xf,0x0, +0x89,0x0,0x1,0x0,0x8b,0xff,0x39,0x0,0x70,0x0,0xc7,0xff, +0xe6,0xff,0x68,0x0,0x26,0x0,0x2b,0x0,0xb7,0x0,0x5f,0x0, +0xb1,0xff,0x24,0x0,0x96,0x0,0xcc,0xff,0x5a,0xff,0x9,0x0, +0x4,0x0,0x36,0xff,0x59,0xff,0xcc,0xff,0x6d,0xff,0x7e,0xff, +0x5c,0x0,0x8b,0x0,0x22,0x0,0x42,0x0,0x6e,0x0,0xb,0x0, +0xf5,0xff,0x5f,0x0,0x1c,0x0,0x4c,0xff,0x42,0xff,0xa9,0xff, +0x70,0xff,0x2d,0xff,0x8b,0xff,0xd2,0xff,0xb7,0xff,0xf1,0xff, +0x5c,0x0,0x4b,0x0,0x4b,0x0,0xcb,0x0,0xc2,0x0,0x9,0x0, +0xf2,0xff,0x49,0x0,0xe8,0xff,0x7c,0xff,0xd1,0xff,0xfe,0xff, +0x96,0xff,0x77,0xff,0xd0,0xff,0x7,0x0,0x23,0x0,0x72,0x0, +0x87,0x0,0x3b,0x0,0x73,0x0,0xfd,0x0,0x89,0x0,0xf3,0xff, +0x93,0x0,0xe1,0x0,0x14,0x0,0xff,0xff,0x88,0x0,0x3c,0x0, +0xfb,0xff,0x8b,0x0,0xb7,0x0,0x45,0x0,0x4f,0x0,0xc8,0x0, +0xcc,0x0,0x9a,0x0,0xd8,0x0,0x2,0x1,0xb0,0x0,0x92,0x0, +0xb0,0x0,0x75,0x0,0x4d,0x0,0x88,0x0,0x6d,0x0,0xf7,0xff, +0xf7,0xff,0x2c,0x0,0xde,0xff,0xaa,0xff,0x20,0x0,0x4e,0x0, +0xc5,0xff,0x98,0xff,0xb,0x0,0x2b,0x0,0xd0,0xff,0xa9,0xff, +0xc3,0xff,0x94,0xff,0x3e,0xff,0x46,0xff,0x41,0xff,0xd2,0xfe, +0xc2,0xfe,0x1c,0xff,0xee,0xfe,0x84,0xfe,0xaa,0xfe,0xe7,0xfe, +0xd5,0xfe,0xf4,0xfe,0x2c,0xff,0xee,0xfe,0xba,0xfe,0x1f,0xff, +0x3a,0xff,0xa5,0xfe,0x92,0xfe,0xf3,0xfe,0x9f,0xfe,0x35,0xfe, +0x93,0xfe,0xaf,0xfe,0x1e,0xfe,0x2a,0xfe,0xf2,0xfe,0x13,0xff, +0x90,0xfe,0xac,0xfe,0x35,0xff,0x5e,0xff,0x87,0xff,0xb2,0xff, +0x53,0xff,0x11,0xff,0x6b,0xff,0x9a,0xff,0x49,0xff,0x10,0xff, +0x34,0xff,0x59,0xff,0x40,0xff,0x4d,0xff,0x95,0xff,0xa9,0xff, +0xd6,0xff,0x63,0x0,0x8a,0x0,0x29,0x0,0x30,0x0,0xa4,0x0, +0xb3,0x0,0x77,0x0,0x7e,0x0,0x65,0x0,0xef,0xff,0x6,0x0, +0x9d,0x0,0x69,0x0,0xca,0xff,0x1d,0x0,0xbb,0x0,0x90,0x0, +0x5b,0x0,0xbb,0x0,0xe3,0x0,0xac,0x0,0xd9,0x0,0x4,0x1, +0x7b,0x0,0x3d,0x0,0xce,0x0,0xbf,0x0,0xfd,0xff,0x11,0x0, +0x89,0x0,0x3e,0x0,0x2,0x0,0x45,0x0,0x2b,0x0,0x1b,0x0, +0xa2,0x0,0xa8,0x0,0xf5,0xff,0x0,0x0,0xb7,0x0,0x9b,0x0, +0xf3,0xff,0x5,0x0,0x5c,0x0,0x27,0x0,0x8,0x0,0x46,0x0, +0x21,0x0,0xd7,0xff,0x34,0x0,0x9c,0x0,0x4e,0x0,0xf8,0xff, +0x30,0x0,0x6f,0x0,0x7f,0x0,0x8d,0x0,0x49,0x0,0xde,0xff, +0x23,0x0,0xc4,0x0,0xa6,0x0,0x15,0x0,0x2d,0x0,0xaa,0x0, +0xa7,0x0,0x8c,0x0,0xc9,0x0,0xa0,0x0,0x3c,0x0,0xa3,0x0, +0x24,0x1,0xa5,0x0,0xf7,0xff,0x26,0x0,0xb5,0x0,0xc0,0x0, +0x63,0x0,0x43,0x0,0x69,0x0,0xa5,0x0,0xec,0x0,0xcc,0x0, +0x71,0x0,0xa8,0x0,0xef,0x0,0x9a,0x0,0x6e,0x0,0x90,0x0, +0x2c,0x0,0xcc,0xff,0x48,0x0,0x9b,0x0,0xed,0xff,0x94,0xff, +0x48,0x0,0xa1,0x0,0x4f,0x0,0x6c,0x0,0xab,0x0,0x72,0x0, +0x4a,0x0,0x6d,0x0,0x67,0x0,0xe,0x0,0xc7,0xff,0xd4,0xff, +0xb9,0xff,0x6d,0xff,0x80,0xff,0xa6,0xff,0xa8,0xff,0xf2,0xff, +0x14,0x0,0xe5,0xff,0x16,0x0,0x52,0x0,0x17,0x0,0xe7,0xff, +0x3,0x0,0xf6,0xff,0x76,0xff,0xf,0xff,0x4e,0xff,0x81,0xff, +0x2a,0xff,0x19,0xff,0x8b,0xff,0xbb,0xff,0x8b,0xff,0xaf,0xff, +0x25,0x0,0x2,0x0,0xa3,0xff,0xf1,0xff,0xfd,0xff,0x65,0xff, +0x44,0xff,0x64,0xff,0x58,0xff,0x76,0xff,0x6a,0xff,0x4a,0xff, +0x7b,0xff,0xb4,0xff,0x3,0x0,0x15,0x0,0xcc,0xff,0x1d,0x0, +0x36,0x0,0x64,0xff,0x73,0xff,0xf6,0xff,0x4b,0xff,0xfc,0xfe, +0xb0,0xff,0xbb,0xff,0x37,0xff,0x36,0xff,0xc3,0xff,0x42,0x0, +0x29,0x0,0xed,0xff,0xfe,0xff,0xfb,0xff,0xf8,0xff,0xfe,0xff, +0x9d,0xff,0x38,0xff,0x68,0xff,0xb0,0xff,0x70,0xff,0x3d,0xff, +0xaa,0xff,0xe0,0xff,0xad,0xff,0xf7,0xff,0x40,0x0,0xf4,0xff, +0xda,0xff,0xfc,0xff,0xf5,0xff,0xe5,0xff,0xb1,0xff,0x7c,0xff, +0x6f,0xff,0x7a,0xff,0xed,0xff,0x22,0x0,0x93,0xff,0xa2,0xff, +0x65,0x0,0x61,0x0,0xed,0xff,0xe7,0xff,0x6,0x0,0xeb,0xff, +0xbe,0xff,0xe3,0xff,0xda,0xff,0x4a,0xff,0x6d,0xff,0x2a,0x0, +0x1b,0x0,0xfe,0xff,0x67,0x0,0x69,0x0,0x5a,0x0,0xa7,0x0, +0xa5,0x0,0x4a,0x0,0xf8,0xff,0x8,0x0,0x55,0x0,0xa,0x0, +0x9d,0xff,0xe9,0xff,0x17,0x0,0x8,0x0,0x85,0x0,0xca,0x0, +0x8d,0x0,0xd2,0x0,0x44,0x1,0x1b,0x1,0xf7,0x0,0x2a,0x1, +0xf,0x1,0xa7,0x0,0x88,0x0,0xcf,0x0,0xf7,0x0,0x96,0x0, +0x56,0x0,0xca,0x0,0x1b,0x1,0x0,0x1,0x27,0x1,0x20,0x1, +0xe7,0x0,0x75,0x1,0xca,0x1,0xfd,0x0,0xa0,0x0,0x1a,0x1, +0x12,0x1,0x9a,0x0,0x6a,0x0,0x8b,0x0,0x99,0x0,0x3e,0x0, +0x13,0x0,0x6f,0x0,0x5e,0x0,0xec,0xff,0xf3,0xff,0x8,0x0, +0x4,0x0,0x39,0x0,0xe2,0xff,0x29,0xff,0x6d,0xff,0x9,0x0, +0x9d,0xff,0xf0,0xfe,0xf3,0xfe,0x24,0xff,0x10,0xff,0xc9,0xfe, +0x7c,0xfe,0x65,0xfe,0x65,0xfe,0x4e,0xfe,0x3b,0xfe,0x20,0xfe, +0x13,0xfe,0x3e,0xfe,0x43,0xfe,0x21,0xfe,0x43,0xfe,0x53,0xfe, +0x1a,0xfe,0x1b,0xfe,0x4c,0xfe,0x29,0xfe,0xe0,0xfd,0xd9,0xfd, +0xde,0xfd,0xb3,0xfd,0xb2,0xfd,0xf1,0xfd,0xfa,0xfd,0xf2,0xfd, +0x3f,0xfe,0x95,0xfe,0xaf,0xfe,0xba,0xfe,0xe3,0xfe,0x32,0xff, +0x49,0xff,0x14,0xff,0x16,0xff,0x44,0xff,0x2d,0xff,0x10,0xff, +0x1d,0xff,0x3d,0xff,0x85,0xff,0xb9,0xff,0xb9,0xff,0xf5,0xff, +0x60,0x0,0x88,0x0,0x99,0x0,0xcc,0x0,0xd8,0x0,0xb1,0x0, +0xb3,0x0,0xe5,0x0,0xe4,0x0,0xac,0x0,0xa6,0x0,0xd7,0x0, +0xe0,0x0,0xdc,0x0,0x11,0x1,0x37,0x1,0x2b,0x1,0x42,0x1, +0x5d,0x1,0x38,0x1,0x24,0x1,0x30,0x1,0xb,0x1,0xe6,0x0, +0xf5,0x0,0xe7,0x0,0xa1,0x0,0x92,0x0,0xce,0x0,0xcf,0x0, +0x93,0x0,0x93,0x0,0x98,0x0,0x5c,0x0,0x58,0x0,0x81,0x0, +0x41,0x0,0xd7,0xff,0xd0,0xff,0xec,0xff,0xcc,0xff,0xa6,0xff, +0xa6,0xff,0x95,0xff,0x8c,0xff,0xbe,0xff,0xb8,0xff,0x58,0xff, +0x52,0xff,0x98,0xff,0x78,0xff,0x22,0xff,0xe,0xff,0x12,0xff, +0xfe,0xfe,0xfc,0xfe,0xa,0xff,0x4,0xff,0x7,0xff,0x31,0xff, +0x4b,0xff,0x47,0xff,0x65,0xff,0x96,0xff,0x86,0xff,0x4d,0xff, +0x5b,0xff,0x91,0xff,0x6b,0xff,0x32,0xff,0x63,0xff,0x85,0xff, +0x6c,0xff,0x9a,0xff,0xdb,0xff,0xe3,0xff,0xfc,0xff,0x33,0x0, +0x64,0x0,0x74,0x0,0x56,0x0,0x5f,0x0,0x8f,0x0,0x80,0x0, +0x68,0x0,0x7c,0x0,0x86,0x0,0x90,0x0,0x9e,0x0,0xa6,0x0, +0xd9,0x0,0x7,0x1,0xf7,0x0,0xff,0x0,0x41,0x1,0x5e,0x1, +0x2c,0x1,0x4,0x1,0x34,0x1,0x5b,0x1,0x25,0x1,0xf7,0x0, +0x6,0x1,0xc,0x1,0x5,0x1,0x5,0x1,0x8,0x1,0xb,0x1, +0xf7,0x0,0xe6,0x0,0x0,0x1,0x2,0x1,0xca,0x0,0xae,0x0, +0xba,0x0,0xa4,0x0,0x75,0x0,0x64,0x0,0x5c,0x0,0x44,0x0, +0x3b,0x0,0x37,0x0,0xc,0x0,0xee,0xff,0x7,0x0,0xe,0x0, +0xda,0xff,0xaf,0xff,0xb4,0xff,0xba,0xff,0x9f,0xff,0x86,0xff, +0x80,0xff,0x76,0xff,0x69,0xff,0x66,0xff,0x5c,0xff,0x4c,0xff, +0x49,0xff,0x46,0xff,0x3c,0xff,0x3a,0xff,0x33,0xff,0x26,0xff, +0x35,0xff,0x47,0xff,0x2c,0xff,0x1e,0xff,0x4e,0xff,0x70,0xff, +0x5f,0xff,0x55,0xff,0x5f,0xff,0x68,0xff,0x77,0xff,0x7e,0xff, +0x77,0xff,0x82,0xff,0x8c,0xff,0x7f,0xff,0x90,0xff,0xb8,0xff, +0xb4,0xff,0xb7,0xff,0xf2,0xff,0x16,0x0,0x6,0x0,0x17,0x0, +0x46,0x0,0x54,0x0,0x4f,0x0,0x5a,0x0,0x60,0x0,0x57,0x0, +0x6e,0x0,0x96,0x0,0x83,0x0,0x64,0x0,0x84,0x0,0xa4,0x0, +0x9a,0x0,0xaa,0x0,0xc1,0x0,0xb5,0x0,0xb9,0x0,0xdb,0x0, +0xe0,0x0,0xc2,0x0,0xb5,0x0,0xc7,0x0,0xc6,0x0,0xae,0x0, +0xaa,0x0,0xab,0x0,0x92,0x0,0x8d,0x0,0x92,0x0,0x79,0x0, +0x6e,0x0,0x7b,0x0,0x6c,0x0,0x57,0x0,0x54,0x0,0x47,0x0, +0x37,0x0,0x31,0x0,0x27,0x0,0x1d,0x0,0xc,0x0,0xf6,0xff, +0xf7,0xff,0xf9,0xff,0xe8,0xff,0xdd,0xff,0xd2,0xff,0xbc,0xff, +0xb5,0xff,0xb4,0xff,0x9f,0xff,0x88,0xff,0x8a,0xff,0x94,0xff, +0x82,0xff,0x6b,0xff,0x82,0xff,0x96,0xff,0x7e,0xff,0x7b,0xff, +0x8f,0xff,0x88,0xff,0x86,0xff,0x8f,0xff,0x7d,0xff,0x68,0xff, +0x6c,0xff,0x7a,0xff,0x86,0xff,0x81,0xff,0x71,0xff,0x7b,0xff, +0xa6,0xff,0xc2,0xff,0xba,0xff,0xba,0xff,0xce,0xff,0xd5,0xff, +0xd1,0xff,0xd3,0xff,0xdd,0xff,0xec,0xff,0xe7,0xff,0xd6,0xff, +0xe8,0xff,0x2,0x0,0x8,0x0,0x1b,0x0,0x29,0x0,0x33,0x0, +0x52,0x0,0x52,0x0,0x3d,0x0,0x58,0x0,0x6c,0x0,0x5b,0x0, +0x59,0x0,0x51,0x0,0x3a,0x0,0x47,0x0,0x5f,0x0,0x62,0x0, +0x5f,0x0,0x51,0x0,0x42,0x0,0x62,0x0,0x92,0x0,0x76,0x0, +0x37,0x0,0x49,0x0,0x79,0x0,0x64,0x0,0x42,0x0,0x3b,0x0, +0x30,0x0,0x2d,0x0,0x2c,0x0,0x23,0x0,0x20,0x0,0xc,0x0, +0xfc,0xff,0x17,0x0,0x1b,0x0,0xf8,0xff,0xec,0xff,0xef,0xff, +0xf8,0xff,0xfe,0xff,0xe3,0xff,0xd7,0xff,0xea,0xff,0xe0,0xff, +0xd4,0xff,0xe3,0xff,0xd3,0xff,0xad,0xff,0xac,0xff,0xc1,0xff, +0xbf,0xff,0xa2,0xff,0x90,0xff,0x9f,0xff,0xb4,0xff,0xb7,0xff, +0xb5,0xff,0xbc,0xff,0xbe,0xff,0xb9,0xff,0xc3,0xff,0xd4,0xff, +0xc4,0xff,0xa7,0xff,0xae,0xff,0xbe,0xff,0xb3,0xff,0xa8,0xff, +0xbe,0xff,0xd1,0xff,0xc5,0xff,0xce,0xff,0xf7,0xff,0xf6,0xff, +0xe2,0xff,0xfb,0xff,0x7,0x0,0xee,0xff,0xf3,0xff,0x7,0x0, +0xfe,0xff,0x4,0x0,0x1a,0x0,0x17,0x0,0xe,0x0,0x20,0x0, +0x36,0x0,0x41,0x0,0x47,0x0,0x49,0x0,0x3d,0x0,0x2b,0x0, +0x30,0x0,0x41,0x0,0x32,0x0,0x24,0x0,0x39,0x0,0x3e,0x0, +0x30,0x0,0x4b,0x0,0x67,0x0,0x50,0x0,0x4e,0x0,0x77,0x0, +0x6d,0x0,0x35,0x0,0x37,0x0,0x5c,0x0,0x4a,0x0,0x26,0x0, +0x28,0x0,0x2d,0x0,0x28,0x0,0x32,0x0,0x41,0x0,0x3b,0x0, +0x2b,0x0,0x33,0x0,0x46,0x0,0x35,0x0,0x16,0x0,0x17,0x0, +0x17,0x0,0x7,0x0,0xfd,0xff,0xed,0xff,0xe1,0xff,0xf3,0xff, +0xfe,0xff,0xeb,0xff,0xe2,0xff,0xef,0xff,0xea,0xff,0xd7,0xff, +0xdd,0xff,0xeb,0xff,0xdc,0xff,0xc2,0xff,0xc3,0xff,0xd1,0xff, +0xd4,0xff,0xc5,0xff,0xbf,0xff,0xd4,0xff,0xe1,0xff,0xd2,0xff, +0xc8,0xff,0xd0,0xff,0xd2,0xff,0xc9,0xff,0xca,0xff,0xcf,0xff, +0xc4,0xff,0xba,0xff,0xc5,0xff,0xce,0xff,0xd4,0xff,0xe3,0xff, +0xe5,0xff,0xe4,0xff,0xfa,0xff,0x5,0x0,0xf6,0xff,0xf1,0xff, +0xfb,0xff,0xfc,0xff,0xf1,0xff,0xe8,0xff,0xed,0xff,0xee,0xff, +0xed,0xff,0x8,0x0,0x18,0x0,0xfc,0xff,0x1,0x0,0x34,0x0, +0x3a,0x0,0x1a,0x0,0x21,0x0,0x37,0x0,0x28,0x0,0x15,0x0, +0x19,0x0,0x17,0x0,0x10,0x0,0x21,0x0,0x2a,0x0,0x17,0x0, +0x11,0x0,0x25,0x0,0x30,0x0,0x2e,0x0,0x27,0x0,0x1b,0x0, +0x11,0x0,0xc,0x0,0x10,0x0,0xe,0x0,0xf9,0xff,0xf1,0xff, +0xfc,0xff,0xf8,0xff,0xf5,0xff,0x4,0x0,0xff,0xff,0xf5,0xff, +0xb,0x0,0x9,0x0,0xe4,0xff,0xe1,0xff,0xf3,0xff,0xe3,0xff, +0xcd,0xff,0xd0,0xff,0xd3,0xff,0xcb,0xff,0xcd,0xff,0xda,0xff, +0xe3,0xff,0xdd,0xff,0xd8,0xff,0xe1,0xff,0xe5,0xff,0xdd,0xff, +0xdc,0xff,0xd8,0xff,0xc8,0xff,0xc0,0xff,0xc6,0xff,0xcc,0xff, +0xc9,0xff,0xbc,0xff,0xba,0xff,0xcd,0xff,0xd3,0xff,0xcb,0xff, +0xd8,0xff,0xe4,0xff,0xd8,0xff,0xda,0xff,0xea,0xff,0xeb,0xff, +0xe5,0xff,0xdd,0xff,0xde,0xff,0xed,0xff,0xeb,0xff,0xdc,0xff, +0xde,0xff,0xe2,0xff,0xe5,0xff,0xed,0xff,0xee,0xff,0xed,0xff, +0xee,0xff,0xf0,0xff,0x4,0x0,0xf,0x0,0xf0,0xff,0xe6,0xff, +0x7,0x0,0x12,0x0,0xfb,0xff,0xe9,0xff,0xed,0xff,0xfa,0xff, +0xff,0xff,0xfc,0xff,0xf6,0xff,0xf3,0xff,0xfa,0xff,0xfe,0xff, +0x2,0x0,0xc,0x0,0x4,0x0,0xf6,0xff,0x0,0x0,0x6,0x0, +0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xfa,0xff,0xf3,0xff, +0xee,0xff,0xf5,0xff,0xf8,0xff,0xf8,0xff,0xf5,0xff,0xf1,0xff, +0xf7,0xff,0xf7,0xff,0xec,0xff,0xef,0xff,0xf4,0xff,0xea,0xff, +0xdd,0xff,0xdd,0xff,0xe5,0xff,0xe6,0xff,0xe1,0xff,0xe0,0xff, +0xe0,0xff,0xe5,0xff,0xe9,0xff,0xe4,0xff,0xe1,0xff,0xe1,0xff, +0xd9,0xff,0xdc,0xff,0xe3,0xff,0xda,0xff,0xd5,0xff,0xdd,0xff, +0xe3,0xff,0xe2,0xff,0xe3,0xff,0xea,0xff,0xf2,0xff,0xee,0xff, +0xe9,0xff,0xee,0xff,0xf0,0xff,0xf0,0xff,0xf0,0xff,0xe9,0xff, +0xe7,0xff,0xed,0xff,0xf1,0xff,0xf4,0xff,0xf8,0xff,0xf8,0xff, +0xfa,0xff,0xff,0xff,0x0,0x0,0x5,0x0,0xa,0x0,0x2,0x0, +0x1,0x0,0xa,0x0,0x9,0x0,0x3,0x0,0x7,0x0,0x9,0x0, +0xa,0x0,0x10,0x0,0x10,0x0,0xd,0x0,0x12,0x0,0x1a,0x0, +0x1b,0x0,0x15,0x0,0x16,0x0,0x1a,0x0,0x15,0x0,0x14,0x0, +0x1b,0x0,0x16,0x0,0xe,0x0,0x14,0x0,0x17,0x0,0xf,0x0, +0xb,0x0,0xa,0x0,0x7,0x0,0x7,0x0,0xb,0x0,0x8,0x0, +0xfd,0xff,0xf9,0xff,0x2,0x0,0x0,0x0,0xf5,0xff,0xf7,0xff, +0xfc,0xff,0xf6,0xff,0xf4,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff, +0xf9,0xff,0xf5,0xff,0xf2,0xff,0xf1,0xff,0xed,0xff,0xf0,0xff, +0xf7,0xff,0xee,0xff,0xe5,0xff,0xee,0xff,0xf4,0xff,0xee,0xff, +0xee,0xff,0xf3,0xff,0xf3,0xff,0xf1,0xff,0xf2,0xff,0xf2,0xff, +0xf0,0xff,0xee,0xff,0xed,0xff,0xee,0xff,0xee,0xff,0xeb,0xff, +0xeb,0xff,0xf1,0xff,0xf8,0xff,0xf6,0xff,0xf2,0xff,0xf8,0xff, +0x4,0x0,0x3,0x0,0xfc,0xff,0x0,0x0,0x7,0x0,0x2,0x0, +0x1,0x0,0xa,0x0,0x9,0x0,0x6,0x0,0xe,0x0,0x14,0x0, +0x11,0x0,0x15,0x0,0x1a,0x0,0x16,0x0,0x16,0x0,0x1c,0x0, +0x1f,0x0,0x1f,0x0,0x1b,0x0,0x1a,0x0,0x22,0x0,0x27,0x0, +0x21,0x0,0x24,0x0,0x2c,0x0,0x27,0x0,0x1f,0x0,0x23,0x0, +0x27,0x0,0x24,0x0,0x1d,0x0,0x1c,0x0,0x20,0x0,0x1b,0x0, +0x11,0x0,0x10,0x0,0x15,0x0,0x17,0x0,0x14,0x0,0x10,0x0, +0x13,0x0,0x18,0x0,0x16,0x0,0x14,0x0,0x15,0x0,0x12,0x0, +0x10,0x0,0xb,0x0,0x6,0x0,0x3,0x0,0xfc,0xff,0xf8,0xff, +0xfe,0xff,0xfe,0xff,0xf9,0xff,0x1,0x0,0x7,0x0,0x3,0x0, +0x3,0x0,0x8,0x0,0x9,0x0,0x1,0x0,0xfb,0xff,0xfb,0xff, +0xf9,0xff,0xf4,0xff,0xf2,0xff,0xf1,0xff,0xf3,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xfd,0xff,0x2,0x0,0x6,0x0,0x2,0x0, +0x1,0x0,0x8,0x0,0x6,0x0,0xfe,0xff,0x1,0x0,0x5,0x0, +0x5,0x0,0x6,0x0,0x9,0x0,0xa,0x0,0xa,0x0,0xf,0x0, +0x16,0x0,0x12,0x0,0x11,0x0,0x18,0x0,0x17,0x0,0x13,0x0, +0x16,0x0,0x17,0x0,0x16,0x0,0x16,0x0,0x18,0x0,0x17,0x0, +0x15,0x0,0x16,0x0,0x1b,0x0,0x1d,0x0,0x1b,0x0,0x19,0x0, +0x1c,0x0,0x24,0x0,0x24,0x0,0x1f,0x0,0x1f,0x0,0x21,0x0, +0x21,0x0,0x1e,0x0,0x1b,0x0,0x1e,0x0,0x1f,0x0,0x1d,0x0, +0x1d,0x0,0x1f,0x0,0x22,0x0,0x24,0x0,0x22,0x0,0x23,0x0, +0x24,0x0,0x1f,0x0,0x1c,0x0,0x1a,0x0,0x15,0x0,0x13,0x0, +0x11,0x0,0x10,0x0,0x13,0x0,0x11,0x0,0x11,0x0,0x16,0x0, +0x16,0x0,0x12,0x0,0x13,0x0,0x15,0x0,0x13,0x0,0xe,0x0, +0xd,0x0,0xd,0x0,0x9,0x0,0x9,0x0,0xd,0x0,0x10,0x0, +0x11,0x0,0x11,0x0,0x11,0x0,0x13,0x0,0x10,0x0,0xc,0x0, +0xa,0x0,0x8,0x0,0x3,0x0,0x1,0x0,0x5,0x0,0xd,0x0, +0x13,0x0,0x17,0x0,0x1f,0x0,0x29,0x0,0x30,0x0,0x33,0x0, +0x33,0x0,0x32,0x0,0x30,0x0,0x2d,0x0,0x27,0x0,0x22,0x0, +0x21,0x0,0x23,0x0,0x21,0x0,0x20,0x0,0x24,0x0,0x2e,0x0, +0x30,0x0,0x2c,0x0,0x39,0x0,0x52,0x0,0x51,0x0,0x42,0x0, +0x49,0x0,0x57,0x0,0x57,0x0,0x51,0x0,0x4d,0x0,0x50,0x0, +0x53,0x0,0x4d,0x0,0x48,0x0,0x4c,0x0,0x4e,0x0,0x52,0x0, +0x5c,0x0,0x62,0x0,0x62,0x0,0x65,0x0,0x6b,0x0,0x72,0x0, +0x78,0x0,0x75,0x0,0x68,0x0,0x5d,0x0,0x52,0x0,0x43,0x0, +0x34,0x0,0x22,0x0,0xfd,0xff,0xd2,0xff,0xc3,0xff,0xc0,0xff, +0xa5,0xff,0x88,0xff,0x8c,0xff,0x9c,0xff,0xa0,0xff,0x9f,0xff, +0xaa,0xff,0xc5,0xff,0xd8,0xff,0xd2,0xff,0xcf,0xff,0xce,0xff, +0xb3,0xff,0x8d,0xff,0x7a,0xff,0x69,0xff,0x4e,0xff,0x33,0xff, +0x1f,0xff,0x20,0xff,0x2c,0xff,0x33,0xff,0x41,0xff,0x5a,0xff, +0x67,0xff,0x71,0xff,0x81,0xff,0x82,0xff,0x6e,0xff,0x5d,0xff, +0x56,0xff,0x4e,0xff,0x38,0xff,0x24,0xff,0x21,0xff,0x26,0xff, +0x2a,0xff,0x36,0xff,0x48,0xff,0x57,0xff,0x68,0xff,0x79,0xff, +0x8a,0xff,0x9f,0xff,0xae,0xff,0xb7,0xff,0xc4,0xff,0xd7,0xff, +0xe6,0xff,0xeb,0xff,0xe9,0xff,0xf1,0xff,0xfb,0xff,0xf8,0xff, +0xf0,0xff,0xec,0xff,0xe6,0xff,0xe5,0xff,0xf1,0xff,0x1,0x0, +0xb,0x0,0x19,0x0,0x30,0x0,0x49,0x0,0x56,0x0,0x5d,0x0, +0x64,0x0,0x5f,0x0,0x4f,0x0,0x43,0x0,0x36,0x0,0x1f,0x0, +0x10,0x0,0xc,0x0,0x9,0x0,0xd,0x0,0x17,0x0,0x20,0x0, +0x2a,0x0,0x32,0x0,0x38,0x0,0x3d,0x0,0x35,0x0,0x25,0x0, +0x1e,0x0,0x13,0x0,0x0,0x0,0xf1,0xff,0xea,0xff,0xe4,0xff, +0xda,0xff,0xd1,0xff,0xce,0xff,0xc9,0xff,0xbe,0xff,0xb5,0xff, +0xaf,0xff,0xaa,0xff,0xa5,0xff,0x9f,0xff,0x9f,0xff,0xa1,0xff, +0xa2,0xff,0xaa,0xff,0xb1,0xff,0xae,0xff,0xa7,0xff,0xa4,0xff, +0xa0,0xff,0x97,0xff,0x8e,0xff,0x8a,0xff,0x85,0xff,0x85,0xff, +0x8e,0xff,0x9a,0xff,0xa7,0xff,0xb8,0xff,0xc8,0xff,0xd7,0xff, +0xe3,0xff,0xe7,0xff,0xe6,0xff,0xe7,0xff,0xe9,0xff,0xeb,0xff, +0xeb,0xff,0xeb,0xff,0xf1,0xff,0xfe,0xff,0xc,0x0,0x16,0x0, +0x20,0x0,0x28,0x0,0x2c,0x0,0x34,0x0,0x3e,0x0,0x3c,0x0, +0x37,0x0,0x3a,0x0,0x41,0x0,0x47,0x0,0x50,0x0,0x59,0x0, +0x62,0x0,0x66,0x0,0x6a,0x0,0x6f,0x0,0x6c,0x0,0x63,0x0, +0x5a,0x0,0x54,0x0,0x51,0x0,0x4a,0x0,0x43,0x0,0x48,0x0, +0x4f,0x0,0x53,0x0,0x5a,0x0,0x5e,0x0,0x5b,0x0,0x58,0x0, +0x53,0x0,0x47,0x0,0x38,0x0,0x29,0x0,0x1c,0x0,0x10,0x0, +0x9,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x3,0x0, +0x5,0x0,0xff,0xff,0xf5,0xff,0xf1,0xff,0xe7,0xff,0xda,0xff, +0xd4,0xff,0xce,0xff,0xc5,0xff,0xc4,0xff,0xc7,0xff,0xca,0xff, +0xcd,0xff,0xd1,0xff,0xd5,0xff,0xd5,0xff,0xd1,0xff,0xcf,0xff, +0xcd,0xff,0xcc,0xff,0xcb,0xff,0xcb,0xff,0xd1,0xff,0xd8,0xff, +0xde,0xff,0xe7,0xff,0xef,0xff,0xf5,0xff,0xfa,0xff,0xfa,0xff, +0xf8,0xff,0xf9,0xff,0xf8,0xff,0xf6,0xff,0xf9,0xff,0xfe,0xff, +0x3,0x0,0xb,0x0,0x18,0x0,0x26,0x0,0x2e,0x0,0x33,0x0, +0x39,0x0,0x3b,0x0,0x3a,0x0,0x36,0x0,0x33,0x0,0x30,0x0, +0x2d,0x0,0x2f,0x0,0x35,0x0,0x3b,0x0,0x42,0x0,0x48,0x0, +0x4e,0x0,0x54,0x0,0x57,0x0,0x55,0x0,0x53,0x0,0x4c,0x0, +0x44,0x0,0x3e,0x0,0x39,0x0,0x32,0x0,0x2f,0x0,0x30,0x0, +0x2f,0x0,0x2c,0x0,0x2a,0x0,0x28,0x0,0x25,0x0,0x1f,0x0, +0x16,0x0,0xe,0x0,0x9,0x0,0x1,0x0,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xf7,0xff,0xf8,0xff,0xf7,0xff,0xf5,0xff,0xf2,0xff, +0xec,0xff,0xe6,0xff,0xe1,0xff,0xdb,0xff,0xd5,0xff,0xd1,0xff, +0xd0,0xff,0xd0,0xff,0xd3,0xff,0xd7,0xff,0xdc,0xff,0xde,0xff, +0xe0,0xff,0xe2,0xff,0xe2,0xff,0xde,0xff,0xdb,0xff,0xd8,0xff, +0xd4,0xff,0xd1,0xff,0xd1,0xff,0xd4,0xff,0xd6,0xff,0xda,0xff, +0xe0,0xff,0xe4,0xff,0xe5,0xff,0xe7,0xff,0xec,0xff,0xef,0xff, +0xef,0xff,0xf1,0xff,0xf7,0xff,0xfa,0xff,0xfc,0xff,0x1,0x0, +0x9,0x0,0xc,0x0,0xe,0x0,0x10,0x0,0x11,0x0,0x10,0x0, +0xd,0x0,0xc,0x0,0xd,0x0,0xe,0x0,0xf,0x0,0x12,0x0, +0x15,0x0,0x18,0x0,0x1c,0x0,0x20,0x0,0x1e,0x0,0x1c,0x0, +0x1c,0x0,0x1b,0x0,0x17,0x0,0x13,0x0,0x10,0x0,0xe,0x0, +0xd,0x0,0xc,0x0,0xc,0x0,0xf,0x0,0x10,0x0,0x10,0x0, +0xf,0x0,0xd,0x0,0xc,0x0,0xb,0x0,0x5,0x0,0x1,0x0, +0x2,0x0,0xff,0xff,0xfb,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff, +0xf5,0xff,0xf4,0xff,0xf3,0xff,0xf0,0xff,0xed,0xff,0xed,0xff, +0xec,0xff,0xec,0xff,0xed,0xff,0xee,0xff,0xee,0xff,0xed,0xff, +0xf1,0xff,0xf4,0xff,0xf2,0xff,0xf2,0xff,0xf4,0xff,0xf3,0xff, +0xf2,0xff,0xf2,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf4,0xff, +0xf7,0xff,0xf7,0xff,0xf6,0xff,0xfa,0xff,0xff,0xff,0xfe,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x5,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xf,0x0,0xe,0x0, +0xc,0x0,0xe,0x0,0xd,0x0,0xa,0x0,0x9,0x0,0x5,0x0, +0x3,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x8,0x0,0x8,0x0, +0x7,0x0,0x8,0x0,0xa,0x0,0x8,0x0,0x5,0x0,0x3,0x0, +0x1,0x0,0x0,0x0,0xfd,0xff,0xf9,0xff,0xfa,0xff,0xf8,0xff, +0xf4,0xff,0xf5,0xff,0xf7,0xff,0xf4,0xff,0xf3,0xff,0xf4,0xff, +0xf3,0xff,0xf3,0xff,0xf1,0xff,0xef,0xff,0xf0,0xff,0xf0,0xff, +0xef,0xff,0xee,0xff,0xec,0xff,0xec,0xff,0xec,0xff,0xed,0xff, +0xee,0xff,0xec,0xff,0xeb,0xff,0xed,0xff,0xec,0xff,0xeb,0xff, +0xec,0xff,0xec,0xff,0xed,0xff,0xef,0xff,0xf1,0xff,0xf3,0xff, +0xf6,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff,0xf8,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfe,0xff,0x0,0x0,0xfe,0xff, +0x2,0x0,0x3,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0xfe,0xff,0x0,0x0,0x3,0x0,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff, +0xf6,0xff,0xf6,0xff,0xf9,0xff,0xf8,0xff,0xf5,0xff,0xf7,0xff, +0xf7,0xff,0xf4,0xff,0xf5,0xff,0xf2,0xff,0xec,0xff,0xed,0xff, +0xee,0xff,0xea,0xff,0xea,0xff,0xeb,0xff,0xea,0xff,0xec,0xff, +0xee,0xff,0xef,0xff,0xf0,0xff,0xef,0xff,0xef,0xff,0xf1,0xff, +0xee,0xff,0xea,0xff,0xea,0xff,0xea,0xff,0xe8,0xff,0xe8,0xff, +0xe8,0xff,0xea,0xff,0xeb,0xff,0xed,0xff,0xef,0xff,0xf1,0xff, +0xf1,0xff,0xf1,0xff,0xf1,0xff,0xf1,0xff,0xf2,0xff,0xf1,0xff, +0xf1,0xff,0xf2,0xff,0xf1,0xff,0xf0,0xff,0xf2,0xff,0xf2,0xff, +0xf2,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xff,0xff,0x2,0x0,0x0,0x0,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf6,0xff,0xf7,0xff, +0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf5,0xff, +0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff, +0xf8,0xff,0xf6,0xff,0xf6,0xff,0xf4,0xff,0xf1,0xff,0xf0,0xff, +0xf1,0xff,0xf2,0xff,0xf2,0xff,0xf3,0xff,0xf6,0xff,0xf6,0xff, +0xf6,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf6,0xff, +0xf5,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf6,0xff,0xf5,0xff, +0xf6,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0x1,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x7,0x0, +0x6,0x0,0x5,0x0,0x3,0x0,0x5,0x0,0x7,0x0,0x4,0x0, +0x2,0x0,0x6,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, +0xa,0x0,0xa,0x0,0x8,0x0,0x6,0x0,0x4,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x6,0x0,0x8,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x6,0x0, +0x4,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff, +0xf6,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x7,0x0, +0x8,0x0,0x8,0x0,0xa,0x0,0xc,0x0,0xb,0x0,0xa,0x0, +0xc,0x0,0xd,0x0,0xd,0x0,0xb,0x0,0xb,0x0,0xc,0x0, +0xc,0x0,0xa,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0x8,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0, +0xa,0x0,0xa,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0x7,0x0,0x6,0x0,0x7,0x0,0x9,0x0,0x8,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x7,0x0, +0x7,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0,0x6,0x0, +0x6,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x7,0x0,0x8,0x0, +0x9,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xf8,0xff,0xf5,0xff, +0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff,0xf3,0xff, +0xf4,0xff,0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff, +0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff, +0xf4,0xff,0xf5,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff, +0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff, +0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff, +0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff, +0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf2,0xff,0xf2,0xff,0xf4,0xff, +0xf4,0xff,0xf2,0xff,0xf3,0xff,0xf4,0xff,0xf5,0xff,0xf4,0xff, +0xf3,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf1,0xff,0xf2,0xff, +0xf3,0xff,0xf3,0xff,0xf3,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff, +0xf6,0xff,0xf6,0xff,0xf8,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x5,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x5,0x0,0x5,0x0,0x7,0x0,0x7,0x0,0x5,0x0, +0x6,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xb,0x0, +0xc,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x9,0x0, +0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x7,0x0,0x7,0x0, +0x5,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x6,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x8,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0, +0xa,0x0,0xa,0x0,0x8,0x0,0x9,0x0,0xa,0x0,0x9,0x0, +0x9,0x0,0x9,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0xa,0x0, +0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x9,0x0, +0x9,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x8,0x0, +0x8,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0xa,0x0, +0xa,0x0,0xa,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xa,0x0, +0x9,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x7,0x0, +0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0x9,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x9,0x0, +0x7,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff, +0xf6,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff,0xf1,0xff, +0xf0,0xff,0xef,0xff,0xee,0xff,0xed,0xff,0xeb,0xff,0xea,0xff, +0xe9,0xff,0xe8,0xff,0xe8,0xff,0xe7,0xff,0xe6,0xff,0xe5,0xff, +0xe4,0xff,0xe4,0xff,0xe3,0xff,0xe2,0xff,0xe2,0xff,0xe1,0xff, +0xe1,0xff,0xe1,0xff,0xe1,0xff,0xe0,0xff,0xe1,0xff,0xe1,0xff, +0xe0,0xff,0xe1,0xff,0xe1,0xff,0xe1,0xff,0xe1,0xff,0xe1,0xff, +0xe1,0xff,0xe3,0xff,0xe3,0xff,0xe4,0xff,0xe7,0xff,0xe7,0xff, +0xe7,0xff,0xe8,0xff,0xe9,0xff,0xea,0xff,0xeb,0xff,0xec,0xff, +0xed,0xff,0xef,0xff,0xf0,0xff,0xf1,0xff,0xf2,0xff,0xf4,0xff, +0xf5,0xff,0xf6,0xff,0xf8,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0xa,0x0, +0xb,0x0,0xb,0x0,0xb,0x0,0xd,0x0,0xd,0x0,0xc,0x0, +0xc,0x0,0xd,0x0,0xc,0x0,0xc,0x0,0xe,0x0,0xd,0x0, +0xd,0x0,0xd,0x0,0xd,0x0,0xd,0x0,0xd,0x0,0xc,0x0, +0xd,0x0,0xd,0x0,0xd,0x0,0xd,0x0,0xc,0x0,0xc,0x0, +0xd,0x0,0xb,0x0,0xb,0x0,0xd,0x0,0xb,0x0,0xa,0x0, +0xb,0x0,0xb,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x9,0x0, +0xa,0x0,0xb,0x0,0xa,0x0,0xb,0x0,0xc,0x0,0xb,0x0, +0xc,0x0,0xe,0x0,0xe,0x0,0xd,0x0,0xf,0x0,0xf,0x0, +0xe,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0x10,0x0, +0x10,0x0,0xf,0x0,0xf,0x0,0x12,0x0,0x14,0x0,0x13,0x0, +0x13,0x0,0x14,0x0,0x15,0x0,0x15,0x0,0x15,0x0,0x16,0x0, +0x15,0x0,0x13,0x0,0x14,0x0,0x14,0x0,0x12,0x0,0x11,0x0, +0x12,0x0,0x12,0x0,0x13,0x0,0x12,0x0,0x10,0x0,0x10,0x0, +0x11,0x0,0x11,0x0,0x10,0x0,0xe,0x0,0xe,0x0,0xe,0x0, +0xe,0x0,0xe,0x0,0xe,0x0,0xc,0x0,0xc,0x0,0xe,0x0, +0xe,0x0,0xc,0x0,0xb,0x0,0xb,0x0,0xc,0x0,0xc,0x0, +0xb,0x0,0x9,0x0,0x9,0x0,0xa,0x0,0xa,0x0,0x9,0x0, +0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x6,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x6,0x0,0x4,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff, +0xf8,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff, +0xf3,0xff,0xf2,0xff,0xf0,0xff,0xf1,0xff,0xf2,0xff,0xf0,0xff, +0xee,0xff,0xef,0xff,0xf1,0xff,0xf1,0xff,0xf0,0xff,0xef,0xff, +0xf0,0xff,0xf0,0xff,0xef,0xff,0xef,0xff,0xee,0xff,0xee,0xff, +0xed,0xff,0xed,0xff,0xed,0xff,0xec,0xff,0xeb,0xff,0xeb,0xff, +0xec,0xff,0xed,0xff,0xed,0xff,0xed,0xff,0xed,0xff,0xed,0xff, +0xee,0xff,0xee,0xff,0xed,0xff,0xed,0xff,0xee,0xff,0xee,0xff, +0xef,0xff,0xef,0xff,0xf0,0xff,0xf2,0xff,0xf4,0xff,0xf5,0xff, +0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0, +0x7,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0xa,0x0, +0xb,0x0,0xa,0x0,0xa,0x0,0xb,0x0,0xb,0x0,0xb,0x0, +0xd,0x0,0xd,0x0,0xc,0x0,0xd,0x0,0xd,0x0,0xd,0x0, +0xc,0x0,0xc,0x0,0xb,0x0,0xd,0x0,0xd,0x0,0xc,0x0, +0xc,0x0,0xc,0x0,0xb,0x0,0xc,0x0,0xa,0x0,0x8,0x0, +0x9,0x0,0xa,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x6,0x0,0x6,0x0, +0x7,0x0,0x6,0x0,0x7,0x0,0x6,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x6,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x2,0x0,0x3,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff,0xfd,0xff, +0xff,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x3,0x0, +0x0,0x0,0xfe,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff, +0xfc,0xff,0xfe,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x5,0x0,0x5,0x0,0x6,0x0, +0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0, +0x6,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x7,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0x8,0x0,0x9,0x0,0xa,0x0,0xa,0x0,0x9,0x0,0x8,0x0, +0x8,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x9,0x0, +0x9,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0, +0xa,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, +0x8,0x0,0x7,0x0,0x5,0x0,0x5,0x0,0x6,0x0,0x6,0x0, +0x7,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x7,0x0, +0x7,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x5,0x0, +0x5,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf8,0xff, +0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zombiehurt1.pcm b/src/client/sound/data/zombiehurt1.pcm new file mode 100755 index 0000000..6699b7a --- /dev/null +++ b/src/client/sound/data/zombiehurt1.pcm @@ -0,0 +1,6895 @@ +unsigned char PCM_zombiehurt1[82704] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x80,0xa1,0x0,0x0,0x8b,0xfe,0xbe,0xfd,0x85,0xfe,0x8d,0xfe, +0xbf,0xfd,0x3f,0xfe,0xf0,0xfe,0x67,0xfe,0x4f,0xfe,0x12,0xfe, +0x29,0xfd,0x9a,0xfd,0xfe,0xfd,0xb2,0xfd,0x60,0xfe,0x34,0xfe, +0xa5,0xfd,0x36,0xfe,0x63,0xfd,0xef,0xfc,0xd7,0xfe,0xfe,0xfe, +0x93,0xfd,0xe5,0xfd,0x56,0xfe,0x69,0xfd,0x1e,0xfd,0x48,0xfe, +0xb4,0xfe,0x27,0xfe,0x58,0xfe,0xec,0xfd,0x43,0xfd,0x35,0xfe, +0xe5,0xfd,0x89,0xfc,0x4a,0xfd,0xc8,0xfd,0xf3,0xfc,0xe3,0xfc, +0x2a,0xfd,0x53,0xfd,0x54,0xfd,0x25,0xfd,0x53,0xfd,0x7d,0xfd, +0x80,0xfd,0xee,0xfc,0xf6,0xfb,0x88,0xfc,0x3b,0xfd,0x75,0xfc, +0x61,0xfc,0xa4,0xfc,0x1c,0xfc,0x42,0xfc,0xfc,0xfc,0x3,0xfd, +0x9,0xfc,0x90,0xfb,0xd6,0xfc,0x90,0xfd,0xb1,0xfc,0xf3,0xfb, +0x97,0xfb,0xd3,0xfb,0x21,0xfc,0x85,0xfb,0xa1,0xfb,0x77,0xfc, +0x86,0xfc,0x88,0xfc,0x4d,0xfc,0xb,0xfc,0x32,0xfd,0x8e,0xfd, +0x1,0xfc,0x24,0xfc,0xc4,0xfd,0x65,0xfd,0x78,0xfc,0xd1,0xfc, +0xcc,0xfc,0xef,0xfc,0x7d,0xfd,0xcc,0xfc,0x94,0xfc,0x5a,0xfd, +0xe,0xfd,0xc,0xfd,0x7d,0xfd,0xa2,0xfc,0x3d,0xfc,0x13,0xfd, +0x70,0xfd,0x4f,0xfd,0x73,0xfd,0x91,0xfd,0xf4,0xfc,0x67,0xfc, +0x94,0xfc,0xa9,0xfc,0x2e,0xfd,0xcf,0xfd,0x6b,0xfd,0x32,0xfd, +0xf4,0xfc,0xf6,0xfc,0x22,0xfe,0x9a,0xfd,0x7d,0xfc,0x4c,0xfd, +0xf3,0xfc,0xb7,0xfc,0xbf,0xfd,0x92,0xfc,0xf7,0xfb,0x1e,0xfd, +0x18,0xfd,0xb1,0xfd,0x34,0xfe,0xfe,0xfd,0x8,0xff,0x47,0xfe, +0x2c,0xfd,0x3,0xff,0x28,0xff,0x42,0xfe,0x55,0xff,0xcf,0xfe, +0xba,0xfd,0xaa,0xfe,0x2b,0xff,0xe1,0xfe,0x12,0xff,0x8d,0xff, +0x58,0xff,0xc9,0xfe,0xa2,0xff,0xcb,0xff,0x1c,0xfe,0xf0,0xfd, +0x9d,0xfe,0xe5,0xfe,0xd5,0xff,0x56,0xff,0x6d,0xfe,0xa9,0xff, +0xda,0xff,0x66,0xfe,0x2b,0xfe,0x97,0xfe,0x83,0xfe,0x17,0xfe, +0xcd,0xfd,0x7,0xfe,0x7a,0xfe,0x35,0xff,0x55,0xff,0x64,0xfe, +0x40,0xfe,0x71,0xfe,0x11,0xfe,0xb7,0xfe,0xf,0xff,0x10,0xfe, +0x4f,0xfe,0x29,0xff,0xc5,0xfe,0xc0,0xfe,0x59,0xff,0x2,0xff, +0x2d,0xfe,0xbd,0xfd,0x52,0xfd,0x19,0xfd,0xa0,0xfd,0x5e,0xfe, +0xf8,0xfe,0x3,0xff,0x2a,0xfe,0x2f,0xfe,0xe5,0xfe,0x62,0xfe, +0x51,0xfe,0xa4,0xfe,0x99,0xfd,0xa1,0xfd,0x5d,0xfe,0x2e,0xfd, +0x8,0xfc,0x1,0xfc,0xa8,0xfc,0xaf,0xfd,0x95,0xfd,0x7d,0xfd, +0xe9,0xfd,0x43,0xfd,0x19,0xfd,0x81,0xfd,0x1a,0xfd,0x7d,0xfc, +0x7e,0xfb,0xb9,0xfb,0x59,0xfd,0x5c,0xfd,0x82,0xfd,0x9,0xfe, +0xe3,0xfc,0x39,0xfd,0xa8,0xfd,0xbd,0xfb,0x7d,0xfc,0xbd,0xfe, +0x97,0xfd,0x49,0xfc,0x2c,0xfd,0xbe,0xfd,0x96,0xfd,0x50,0xfe, +0xa8,0xfe,0xa8,0xfc,0xd6,0xfb,0x85,0xfd,0x66,0xfd,0x3,0xfd, +0x66,0xfe,0x66,0xfe,0x70,0xfe,0x29,0xff,0x2a,0xfe,0xb4,0xfe, +0xb3,0x0,0x13,0x0,0x3b,0xff,0x19,0xff,0x3b,0xfe,0xd3,0xfe, +0x21,0xff,0xac,0xfd,0x19,0xfe,0xbf,0xfe,0xbf,0xfd,0x90,0xfe, +0xf4,0xff,0x32,0xff,0xca,0xfd,0x2d,0xfd,0x3c,0xfe,0x5,0xff, +0xd1,0xfd,0xff,0xfd,0x7e,0xff,0x4a,0xff,0x4c,0xfe,0xb0,0xfd, +0x9,0xfe,0x45,0xfe,0x72,0xfd,0x4,0xfe,0x35,0xfe,0x13,0xfd, +0xf1,0xfd,0xa5,0xfd,0xb0,0xfc,0x4b,0xfe,0x1c,0xfd,0xf2,0xfb, +0xea,0xfd,0x46,0xfc,0x0,0xfc,0x8e,0xff,0xef,0xfe,0x3d,0xfe, +0xf7,0xfe,0x53,0xfd,0x5f,0xfe,0x12,0x0,0xfb,0xfe,0x17,0xff, +0xeb,0xfe,0x56,0xfe,0xca,0xfe,0xc,0xfe,0xb1,0xfd,0x7d,0xfd, +0xe8,0xfc,0xb,0xfe,0xc9,0xfd,0x27,0xfd,0xea,0xfe,0x4d,0xfe, +0x93,0xfc,0x95,0xfd,0x40,0xfe,0xa6,0xfd,0x21,0xfd,0x69,0xfd, +0x13,0xfe,0x7d,0xfd,0xcf,0xfd,0x70,0xff,0x22,0xff,0xf9,0xfd, +0x10,0xfe,0x4f,0xff,0xf7,0xff,0x6b,0xfe,0x5c,0xfd,0x9e,0xfd, +0x3c,0xfd,0x57,0xfd,0x90,0xfd,0xb,0xfd,0x4c,0xfc,0xb,0xfb, +0x9c,0xfb,0x77,0xfd,0x34,0xfd,0x1b,0xfd,0xb0,0xfd,0x1,0xfd, +0x2,0xfd,0xc8,0xfd,0x36,0xfe,0x34,0xfe,0x7a,0xfd,0xa7,0xfd, +0xe0,0xfd,0xd9,0xfc,0x54,0xfd,0x8f,0xfe,0x51,0xfe,0x72,0xfe, +0xa,0xff,0x33,0xfe,0xd2,0xfc,0x78,0xfd,0xdb,0xfe,0xfb,0xfd, +0xa7,0xfd,0x62,0xff,0x6f,0xff,0x49,0xfe,0x6,0xfe,0x83,0xfe, +0x5f,0xff,0x9c,0xfe,0x5,0xfe,0xf1,0xff,0x43,0x0,0x71,0xff, +0xb,0x1,0x8a,0x1,0x11,0x0,0xff,0xff,0xff,0xff,0xfd,0xfe, +0xf6,0xfe,0x7b,0xff,0x89,0xff,0x94,0xff,0x62,0xfe,0xd5,0xfc, +0xee,0xfd,0x65,0xfe,0x7d,0xfc,0xc1,0xfc,0x62,0xfd,0x50,0xfc, +0xca,0xfc,0x91,0xfc,0x7f,0xfb,0xd8,0xfc,0x1d,0xfd,0xc7,0xfc, +0x92,0xfe,0xd8,0xfd,0x59,0xfb,0xba,0xfb,0xcd,0xfc,0xf1,0xfc, +0xe7,0xfc,0xb8,0xfc,0xb7,0xfd,0x50,0xff,0x1,0xff,0xa3,0xfd, +0x40,0xfd,0x38,0xfd,0x50,0xfd,0xf6,0xfd,0xb0,0xfd,0x2a,0xfd, +0x7b,0xfe,0xd3,0xff,0x69,0xff,0x27,0xfe,0xe3,0xfd,0xdd,0xfe, +0xe8,0xfd,0xdd,0xfc,0xa6,0xff,0x4e,0x0,0x7a,0xfd,0x9,0xfe, +0x44,0xff,0xf3,0xfd,0xcc,0xfd,0xeb,0xfd,0xbc,0xfc,0xe9,0xfb, +0xdc,0xfb,0x52,0xfc,0x93,0xfc,0xc4,0xfc,0xe7,0xfc,0xa,0xfc, +0xc7,0xfb,0xe1,0xfb,0xea,0xfa,0xae,0xfb,0x4f,0xfd,0xbf,0xfc, +0x9d,0xfc,0x80,0xfd,0xea,0xfd,0xfe,0xfe,0xae,0xfe,0x55,0xfc, +0x8f,0xfc,0x4d,0xfe,0x17,0xfe,0x3e,0xfe,0x15,0xfe,0x25,0xfc, +0x9f,0xfc,0x81,0xfd,0x12,0xfb,0x62,0xfa,0xaf,0xfb,0x8c,0xfb, +0x39,0xfc,0xbe,0xfc,0x7d,0xfc,0x70,0xfe,0x8,0x0,0x33,0xff, +0x55,0xfe,0xbe,0xfe,0x9d,0xff,0xc0,0xfe,0xcc,0xfd,0x8d,0xfe, +0x2c,0xfe,0x68,0xfd,0x62,0xfc,0x4f,0xfa,0xbb,0xfb,0xf3,0xfd, +0xf6,0xfc,0x38,0xfd,0x3c,0xfd,0x60,0xfb,0xe2,0xfa,0xc5,0xfa, +0xd4,0xfb,0x14,0xfd,0x61,0xfc,0x69,0xfd,0x94,0xfd,0x11,0xfc, +0x4d,0xfe,0x35,0xff,0xdb,0xfc,0x47,0xfc,0x14,0xfc,0x48,0xfd, +0xa7,0xfe,0x8c,0xfc,0xcf,0xfb,0xf,0xfc,0xe8,0xfa,0x5,0xfc, +0x40,0xfd,0xbc,0xfd,0xf2,0xfe,0x15,0xfe,0xe5,0xfd,0x92,0xff, +0x3e,0xff,0xd2,0xfe,0x39,0xff,0x13,0xff,0xc6,0xff,0x12,0x1, +0x74,0x1,0x14,0x0,0x55,0xff,0x29,0x1,0x15,0x1,0x66,0xff, +0x9e,0x0,0x2a,0x2,0xed,0x1,0x6c,0x0,0x60,0xfe,0xb1,0xfe, +0xcb,0xff,0x24,0xff,0x70,0xfe,0x6e,0xfd,0x7,0xfd,0xb0,0xfe, +0x6,0xff,0x8e,0xfd,0x46,0xfd,0xe5,0xfc,0xfb,0xfa,0x3,0xfb, +0x86,0xfd,0xe9,0xfd,0x2,0xfd,0x52,0xfd,0x63,0xfc,0xd1,0xfb, +0xf5,0xfc,0x5d,0xfc,0xcc,0xfb,0xce,0xfc,0x92,0xfc,0x9b,0xfb, +0xe8,0xfb,0x5b,0xfd,0x14,0xfd,0xed,0xfb,0x89,0xfe,0xe5,0xff, +0x15,0xfe,0xbb,0x0,0xb8,0x2,0x9c,0xff,0x84,0xff,0xcd,0x1, +0x60,0x2,0xe,0x2,0x32,0x1,0x18,0x2,0xfd,0x1,0xa7,0xfe, +0xcf,0xfd,0xa8,0xfd,0x57,0xfb,0x5b,0xfb,0xa0,0xfc,0x3d,0xfc, +0x95,0xfa,0x56,0xf9,0x1a,0xfb,0xca,0xfc,0x65,0xfc,0x1c,0xfd, +0xb6,0xfd,0xaf,0xfd,0xcb,0xfd,0x1a,0xfc,0x6b,0xfb,0x3,0xfd, +0xf7,0xfc,0x9,0xfc,0x58,0xfc,0xa5,0xfc,0x21,0xfc,0xb0,0xfb, +0x7b,0xfb,0xcf,0xfa,0x9,0xfc,0x94,0xfe,0xc7,0xfd,0xee,0xfc, +0x98,0xfe,0xfd,0xfd,0xe8,0xfc,0x5a,0xfd,0x9,0xfc,0x39,0xfc, +0x91,0xff,0xe2,0xff,0x62,0xfd,0x26,0xfd,0x23,0xfd,0xf6,0xfa, +0x5d,0xfa,0x8b,0xfb,0xe,0xfc,0xf3,0xfc,0xdc,0xfc,0x8d,0xfb, +0x29,0xfb,0x4e,0xfa,0xe2,0xfa,0xee,0xfb,0x79,0xf9,0xec,0xfa, +0xa5,0xfe,0xee,0xfa,0x41,0xf9,0xc9,0xfb,0x72,0xf8,0x8d,0xf7, +0x7f,0xfc,0x17,0xfc,0x42,0xf9,0x26,0xfb,0x81,0xfd,0x50,0xfd, +0xcc,0xfd,0x1e,0xff,0xcd,0xfe,0xac,0xfe,0x68,0xfd,0x26,0xf9, +0x2e,0xf9,0xa0,0xfd,0x80,0xff,0x2e,0xff,0xca,0xfc,0xd6,0xfb, +0xa8,0xff,0x73,0x0,0x6c,0xfe,0x43,0xfe,0x74,0xfc,0x71,0xfc, +0xbe,0xfe,0xd8,0xfc,0xaa,0xfa,0x5c,0xfa,0x90,0xf8,0x8,0xf7, +0xbe,0xf6,0x6e,0xf7,0x2,0xf8,0x20,0xf7,0x53,0xf6,0x22,0xf5, +0xbd,0xf4,0xa0,0xf6,0xaf,0xf7,0xb4,0xf8,0xa9,0xf8,0xaf,0xf5, +0x18,0xf6,0xc7,0xf8,0xb8,0xf8,0x90,0xf9,0x20,0xfb,0x39,0xfb, +0xc2,0xfa,0xe2,0xfa,0x3c,0xfd,0x30,0xfd,0x24,0xfb,0x6f,0xfe, +0x85,0x0,0x7d,0xfd,0x66,0xfd,0x1b,0xff,0x1c,0xff,0xa8,0xfe, +0xf6,0xfe,0x82,0x0,0xf0,0xff,0x8a,0xff,0xc7,0x0,0x56,0xfd, +0xac,0xfa,0x5b,0xfb,0x69,0xf9,0x49,0xfb,0xcc,0xfc,0x9a,0xf7, +0x93,0xf8,0x30,0xfa,0x89,0xf4,0x68,0xf5,0xc8,0xf8,0xb7,0xf7, +0x24,0xfa,0xf6,0xfa,0xc8,0xf8,0x89,0xfa,0x77,0xfa,0x3a,0xf7, +0xc5,0xf6,0xa8,0xf8,0x82,0xfa,0x3a,0xfb,0x9b,0xfc,0xae,0xfd, +0x7f,0xfb,0xeb,0xfa,0x72,0xfc,0xe3,0xfb,0x79,0xfc,0x6d,0xfd, +0x8,0xfc,0x6d,0xfb,0x75,0xfb,0xb8,0xfc,0x2c,0xff,0x73,0xfd, +0xb7,0xfa,0xd0,0xfc,0x61,0xff,0xfd,0xfe,0x66,0xfd,0x44,0xfc, +0xbd,0xfc,0xb9,0xfd,0x53,0xfd,0x30,0xfc,0xfe,0xfb,0x72,0xfc, +0x10,0xfc,0xb2,0xfb,0xb8,0xfc,0xb2,0xfd,0xbb,0xfc,0x89,0xfb, +0x70,0xfd,0x66,0xff,0xef,0xfd,0xa,0xfe,0x63,0xff,0x6a,0xfd, +0xd1,0xfc,0x2a,0xfd,0x74,0xfb,0xa7,0xfe,0x6d,0x2,0x94,0xfe, +0x73,0xfd,0x4d,0x1,0x84,0xff,0xa5,0xfc,0xff,0xfe,0x63,0xff, +0x4a,0xfd,0xb9,0xff,0x35,0x2,0x58,0xff,0x26,0xfe,0x82,0xff, +0x18,0xfe,0x73,0xfe,0x2,0x0,0xdf,0xfd,0xff,0xfd,0xa8,0xff, +0xb,0xfe,0x7b,0xfe,0x33,0xff,0xa0,0xfd,0xc0,0xff,0x56,0x1, +0x6f,0xfe,0x98,0xfd,0xbd,0xfe,0xe8,0xfe,0xf3,0xfe,0x1a,0xff, +0x22,0x0,0x17,0x0,0xa9,0xfe,0xd2,0xff,0xfe,0x0,0xa,0x0, +0x4f,0x0,0x7b,0x0,0x84,0x0,0xec,0x1,0xe3,0x0,0x40,0xff, +0x69,0x1,0xe1,0x3,0xfd,0x4,0xa9,0x4,0x6f,0x1,0xdb,0x0, +0x82,0x3,0x97,0x1,0x92,0xff,0x1d,0x2,0x2d,0x1,0x6e,0xfe, +0xb8,0xff,0x2e,0x0,0x96,0x0,0xca,0x2,0x8a,0x1,0xcb,0xff, +0x39,0x1,0xfb,0x1,0x86,0x1,0x87,0x0,0x8e,0xff,0x73,0xff, +0xac,0xfe,0x6d,0xff,0xb0,0x1,0x92,0x0,0x4a,0xfe,0x77,0xfe, +0xa4,0x0,0x4d,0x2,0xd3,0xfe,0x23,0xfb,0x53,0xfd,0x9a,0xfe, +0xba,0xfd,0x6e,0xfe,0x26,0xfd,0x7a,0xfb,0x4f,0xfc,0xde,0xfb, +0x4a,0xfa,0x60,0xfa,0x84,0xfa,0xb8,0xf8,0xa9,0xf8,0xa8,0xfb, +0x99,0xfa,0xf7,0xf7,0xaa,0xfa,0x16,0xfc,0xcf,0xfb,0x5e,0xfd, +0x8,0xfb,0xed,0xf9,0x1b,0xfd,0xaf,0xfc,0x21,0xfe,0x4e,0x1, +0x17,0xfd,0x6,0xf9,0xb7,0xf8,0xcd,0xf8,0x58,0xfc,0x11,0xfc, +0x2a,0xf5,0x6b,0xf3,0x43,0xf6,0xd8,0xf7,0x9d,0xf8,0xd1,0xf6, +0x48,0xf5,0x4c,0xf7,0x5,0xf8,0x6,0xf6,0x57,0xf5,0xb1,0xf7, +0x42,0xfa,0xd6,0xf9,0xd9,0xf9,0x68,0xfc,0xba,0xfc,0xe6,0xfb, +0x45,0xfd,0xf2,0xfc,0x39,0xfb,0x1,0xfc,0xab,0xfc,0x37,0xfc, +0x99,0xfc,0x4d,0xfc,0x16,0xfc,0x1e,0xfd,0x1a,0xfd,0xfc,0xfc, +0xa4,0xfd,0x4f,0xfd,0x59,0xfd,0x36,0xfe,0x7b,0xfe,0xb7,0xfe, +0x79,0xfe,0xd8,0xfd,0x11,0xfe,0x3c,0xfe,0x45,0xfe,0xcc,0xfe, +0xe2,0xfe,0x35,0xfe,0xa9,0xfd,0xfc,0xfd,0x21,0xfe,0xa3,0xfd, +0xd8,0xfd,0xbe,0xfd,0xb0,0xfd,0x64,0xff,0xfb,0xff,0xc7,0xfe, +0xa4,0xfd,0x41,0xfc,0xa6,0xfc,0xc2,0xfd,0xa3,0xfc,0x71,0xfc, +0xa6,0xfc,0xc9,0xfb,0x54,0xfd,0xa5,0xfe,0xd9,0xfd,0x4f,0xfe, +0xfa,0xfd,0x8a,0xfc,0xf,0xfd,0xa7,0xfd,0x90,0xfd,0x45,0xfe, +0x25,0xff,0x60,0xff,0xc,0xff,0x74,0xff,0xbc,0x0,0x44,0x1, +0x4a,0x1,0xa9,0x1,0xde,0x1,0x32,0x1,0x1,0x1,0x75,0x2, +0x74,0x2,0x59,0x1,0xaa,0x2,0x31,0x3,0xbb,0x1,0x47,0x1, +0xf0,0x0,0x4a,0x1,0xe5,0x1,0x7,0x1,0x93,0x1,0xdc,0x1, +0x3a,0x0,0xdf,0x0,0xad,0x1,0x85,0x0,0xf7,0xff,0x7a,0xff, +0x7e,0xff,0x6,0xff,0x10,0xfd,0x7b,0xfd,0x69,0xfe,0x84,0xfd, +0x92,0xfd,0x8,0xfd,0x8a,0xfc,0x5b,0xfd,0x3f,0xfc,0x7a,0xfb, +0xf6,0xfb,0x77,0xfb,0xd9,0xfc,0x2b,0xfe,0x90,0xfc,0xed,0xfb, +0x26,0xfc,0x62,0xfb,0x5d,0xfb,0x92,0xfc,0x59,0xfd,0x9b,0xfc, +0xf,0xfd,0xa6,0xfe,0x84,0xfd,0xf4,0xfc,0x81,0xfe,0x93,0xfe, +0x39,0xff,0xec,0xff,0x8b,0xff,0x7a,0x1,0xde,0x1,0xad,0xff, +0x20,0x0,0x8d,0x0,0x56,0x0,0xb6,0x1,0xae,0x1,0x33,0x1, +0xc7,0x0,0x7a,0xff,0x2f,0x1,0xca,0x2,0x65,0x0,0xc,0x0, +0xfe,0x1,0x9f,0x1,0xdb,0x0,0xd,0x1,0x23,0x1,0x2c,0x1, +0x28,0x1,0x6c,0x1,0x48,0x1,0x6,0x0,0x8e,0xff,0x1e,0x0, +0xde,0xff,0xc3,0xff,0x7c,0x0,0x2b,0x0,0x90,0xff,0x26,0x0, +0x3a,0x0,0xab,0xff,0x98,0xff,0x49,0xff,0x55,0xff,0xdb,0xff, +0x86,0xff,0x6c,0xff,0xaa,0xff,0x3,0xff,0xc6,0xfe,0x7d,0xff, +0x4c,0x0,0x98,0x0,0xdb,0xff,0xcc,0xff,0x8a,0x0,0xd0,0xff, +0xa9,0xff,0x7,0x1,0xbf,0x0,0x10,0x0,0x91,0x0,0x24,0x0, +0x92,0xff,0xf7,0xff,0xb,0x0,0x11,0x0,0x1b,0x0,0xe9,0xff, +0xf3,0xff,0x5f,0xff,0xb,0xff,0xc,0x0,0x2b,0x0,0xcf,0xff, +0x4f,0x0,0xc8,0xff,0x61,0xff,0x78,0x0,0xd3,0x0,0x8c,0x0, +0x16,0x0,0x6c,0xff,0xf1,0xff,0xd2,0xff,0xdd,0xfe,0xe8,0xff, +0x66,0x0,0x30,0xff,0x6b,0xff,0xeb,0xff,0xb5,0xff,0xfe,0xff, +0xe7,0xff,0xc3,0xff,0xf0,0xff,0xe0,0xff,0x66,0x0,0x7d,0x0, +0xa4,0xff,0xc1,0xff,0x27,0x0,0xe,0x0,0x5d,0x0,0x4c,0x0, +0xd2,0xff,0x8,0x0,0x2e,0x0,0xbb,0xff,0x95,0xff,0xde,0xff, +0xfe,0xff,0xfb,0xff,0x5,0x0,0x28,0x0,0x67,0x0,0x22,0x0, +0x94,0xff,0xe2,0xff,0x40,0x0,0xfd,0xff,0x13,0x0,0x56,0x0, +0x59,0x0,0x5a,0x0,0x11,0x0,0xaf,0xff,0xbb,0xff,0x32,0x0, +0x36,0x0,0x50,0xff,0xfc,0xfe,0x8a,0xff,0xcc,0xff,0xf3,0xff, +0xd3,0xff,0x88,0xff,0x96,0xff,0x35,0xff,0x7a,0xff,0x43,0x0, +0x8b,0xff,0xc1,0xff,0xe1,0x0,0xef,0xff,0xbc,0xff,0xd1,0x0, +0x6d,0x0,0xfa,0xff,0xa7,0xff,0x97,0xff,0xc9,0x0,0x77,0x0, +0x4d,0xff,0xe2,0xff,0x33,0x0,0x1e,0x0,0x3f,0x0,0xc6,0xff, +0xc8,0xff,0x93,0xff,0x15,0xff,0xc7,0xff,0x92,0xff,0x20,0xff, +0x8b,0x0,0x86,0x0,0x7d,0xff,0x3e,0x0,0xd,0x0,0x39,0xff, +0x57,0x0,0x74,0x0,0x26,0xff,0xa6,0xff,0x77,0x0,0xf5,0xff, +0xc3,0xff,0xf2,0xff,0xff,0xff,0xe9,0xff,0x90,0xff,0x13,0x0, +0xa9,0x0,0x16,0x0,0x79,0x0,0x7,0x1,0x6,0x0,0x43,0x0, +0xf5,0x0,0x20,0x0,0x7d,0x0,0xf4,0x0,0xcc,0xff,0xfb,0xff, +0xa6,0x0,0x1f,0x0,0x98,0x0,0x28,0x1,0x56,0x0,0x39,0x0, +0x89,0x0,0xbf,0xff,0xdf,0xff,0xea,0x0,0xf4,0xff,0x3a,0xff, +0xa4,0x0,0x43,0x0,0x49,0xff,0x8a,0x0,0x1f,0x0,0xe5,0xfe, +0x54,0x0,0x1d,0x1,0xc6,0x0,0x46,0x1,0xe9,0x0,0x28,0x0, +0x46,0x0,0x92,0x0,0xdd,0x0,0xa4,0x0,0x48,0x0,0x60,0x0, +0x4b,0x0,0x65,0x0,0x7c,0x0,0x42,0x0,0x34,0x0,0x9b,0xff, +0x7a,0xff,0x6d,0x0,0x57,0x0,0x1d,0x0,0x4b,0x0,0x7e,0xff, +0x91,0xff,0x57,0x0,0x14,0x0,0x45,0x0,0x4e,0x0,0x7a,0xff, +0xa6,0xff,0x13,0x0,0xfc,0xff,0x31,0x0,0x3d,0x0,0x22,0x0, +0x1b,0x0,0xa,0x0,0x49,0x0,0x5e,0x0,0x15,0x0,0xe5,0xff, +0xe5,0xff,0x42,0x0,0x65,0x0,0x2f,0x0,0x54,0x0,0x7,0x0, +0x88,0xff,0xf2,0xff,0xfe,0xff,0x9f,0xff,0x9,0x0,0x1c,0x0, +0xb0,0xff,0xe8,0xff,0x12,0x0,0xd8,0xff,0xe7,0xff,0xfe,0xff, +0xeb,0xff,0x6,0x0,0x2c,0x0,0x16,0x0,0x0,0x0,0xb,0x0, +0x4,0x0,0x0,0x0,0xe,0x0,0xff,0xff,0xf8,0xff,0xb,0x0, +0xff,0xff,0xf6,0xff,0xf,0x0,0x1c,0x0,0x1c,0x0,0xf,0x0, +0xfa,0xff,0x7,0x0,0x10,0x0,0xf7,0xff,0xee,0xff,0xf2,0xff, +0xef,0xff,0xea,0xff,0xe0,0xff,0xe5,0xff,0xf5,0xff,0xf3,0xff, +0xf0,0xff,0xf3,0xff,0xf0,0xff,0xeb,0xff,0xdf,0xff,0xda,0xff, +0xe4,0xff,0xe9,0xff,0xeb,0xff,0xe6,0xff,0xd9,0xff,0xd5,0xff, +0xd4,0xff,0xce,0xff,0xbd,0xff,0x9e,0xff,0x95,0xff,0xa4,0xff, +0xa8,0xff,0xa3,0xff,0x9e,0xff,0xa3,0xff,0xbe,0xff,0xdc,0xff, +0xc4,0xff,0x86,0xff,0x79,0xff,0x8b,0xff,0x64,0xff,0x2c,0xff, +0x13,0xff,0xfe,0xfe,0x13,0xff,0x40,0xff,0x27,0xff,0xf1,0xfe, +0xde,0xfe,0xc4,0xfe,0xc1,0xfe,0xf8,0xfe,0xa,0xff,0x3,0xff, +0x6d,0xff,0xd5,0xff,0x63,0xff,0xd0,0xfe,0xfc,0xfe,0xf1,0xfe, +0x28,0xfe,0x1,0xfe,0xdc,0xfe,0x40,0xff,0xb2,0xfe,0x8f,0xfe, +0x8e,0xff,0x44,0x0,0xce,0xff,0x75,0xff,0xc9,0xff,0xea,0xff, +0xa8,0xff,0x40,0xff,0xe1,0xfe,0x92,0xfe,0x14,0xfe,0x6,0xfe, +0x70,0xfe,0xef,0xfd,0x19,0xfd,0xd3,0xfd,0x6e,0xff,0x6,0x0, +0xe3,0xff,0xbb,0x0,0x5,0x2,0x80,0x1,0x2,0x0,0xef,0xff, +0x4,0x0,0x79,0xfe,0x86,0xfd,0xf3,0xfe,0x7f,0x0,0x7b,0x0, +0x4c,0x0,0xec,0x0,0xdb,0x1,0x56,0x2,0xa1,0x1,0x98,0x0, +0xe5,0x0,0xa5,0x1,0x26,0x1,0x53,0x0,0x50,0x0,0x1c,0x0, +0x63,0xff,0x63,0xff,0xcb,0xff,0x30,0xff,0x46,0xfe,0x76,0xfe, +0x23,0xff,0x77,0xff,0xc5,0xff,0xda,0xff,0x21,0x0,0x86,0x1, +0xdf,0x1,0x33,0x0,0xcd,0xff,0x51,0x0,0xff,0xfe,0xeb,0xfd, +0xaf,0xfe,0x8c,0xff,0xd4,0xff,0x7,0x0,0xf4,0x0,0x43,0x2, +0x6b,0x2,0xef,0x1,0xa2,0x1,0x5a,0x1,0x74,0x1,0xb,0x1, +0x81,0xff,0xae,0xfe,0xa3,0xff,0xe9,0x0,0x6b,0x0,0x10,0xff, +0xa9,0xff,0x4a,0x1,0x57,0x1,0xd3,0xff,0x7e,0xfe,0x55,0xff, +0xdb,0x0,0x3e,0x0,0x84,0xff,0x6e,0x0,0xe9,0x0,0xd1,0x0, +0xa6,0x1,0x32,0x2,0x7a,0x0,0xcd,0xfe,0x36,0x0,0x8a,0x1, +0xcd,0xff,0x29,0xfe,0x5b,0xff,0xf7,0x1,0xef,0x2,0x1,0x2, +0xf8,0x1,0xb0,0x2,0xb1,0x2,0x88,0x2,0x34,0x2,0xba,0x1, +0xc7,0x0,0xc5,0xff,0x9a,0x0,0x42,0x1,0x24,0x0,0x34,0xff, +0x58,0xfe,0x60,0xff,0xe1,0x2,0xc9,0x3,0xb9,0x2,0xd6,0x3, +0xd7,0x6,0x8c,0x9,0x81,0x8,0x7d,0x6,0x6f,0x9,0x28,0xc, +0x55,0x9,0xe9,0x5,0xe,0x7,0xc2,0xa,0x2b,0xa,0xd5,0x6, +0x3,0x9,0xa0,0xd,0x33,0xe,0x9c,0xc,0xa7,0xb,0xa1,0xc, +0x54,0xf,0xbc,0x11,0x4a,0xd,0xbc,0xf9,0xaa,0xe0,0xe5,0xd2, +0x29,0xce,0x99,0xcd,0xe2,0xd3,0x3c,0xdd,0xfe,0xe5,0x6b,0xf3, +0x1a,0xd,0x8,0x2a,0xed,0x29,0xbe,0x1,0xeb,0xdd,0xb7,0xea, +0xbc,0x6,0x4a,0xef,0x0,0xbf,0x68,0xcd,0x34,0x12,0x68,0x36, +0x86,0x1b,0xf2,0xf4,0x21,0x2,0x3,0x30,0x5c,0x29,0x5a,0xf1, +0xbd,0xdd,0x7d,0xf8,0xb7,0xc,0xa7,0x6,0xbe,0xf1,0xe4,0xe9, +0x2e,0xff,0xbb,0x16,0xf6,0x1a,0x19,0x18,0x95,0x15,0x94,0x13, +0x84,0x17,0x30,0x17,0x1,0x0,0x33,0xde,0xbd,0xd3,0x77,0xe4, +0xca,0xf3,0x18,0xf1,0xab,0xe6,0x24,0xec,0x57,0x8,0xfb,0x18, +0xbd,0x4,0xb6,0xed,0x2,0xf7,0x61,0xd,0xe,0xf,0x39,0xfa, +0xd9,0xea,0x62,0xf5,0xd1,0x4,0xe6,0xf9,0x8c,0xe2,0x36,0xe3, +0x6,0xfa,0x3b,0x8,0x49,0x5,0x51,0x1,0x30,0x7,0xc1,0x11, +0x49,0x13,0xf5,0x7,0x4a,0xfd,0xc3,0xfd,0x66,0x5,0x76,0xa, +0x18,0x6,0xd8,0xfe,0x6c,0x2,0x9b,0xe,0x6e,0x12,0x7c,0x6, +0xb6,0xfb,0x50,0x5,0x4f,0x13,0x39,0x9,0xc,0xf0,0x2e,0xe5, +0x8b,0xef,0x5d,0xfb,0x16,0xf5,0x5,0xea,0xc6,0xf5,0xe6,0x10, +0x96,0x1d,0x9d,0x13,0xea,0x3,0xed,0xfe,0x6e,0xff,0x42,0xf8, +0x43,0xec,0x7,0xe6,0xe7,0xe9,0x48,0xf1,0x89,0xf2,0x49,0xf3, +0x5f,0xf8,0x5c,0xf9,0x4c,0xf9,0xb7,0xfe,0x3c,0x5,0xfd,0xb, +0x23,0xe,0x53,0x8,0x46,0x5,0xd3,0x3,0xdd,0xfc,0x23,0xf8, +0x18,0xf8,0x89,0xf9,0x4e,0xfd,0x2d,0x2,0xc4,0x9,0xdb,0xf, +0x25,0xc,0xf6,0x6,0xbb,0x7,0x7,0x9,0xb3,0x7,0x34,0x3, +0x4,0x2,0xd0,0x8,0xd2,0xb,0x2a,0x8,0x6b,0x7,0x6f,0x8, +0x9f,0x8,0x39,0x8,0xf2,0x6,0xc9,0x8,0xd0,0x9,0xc,0x4, +0x19,0xff,0x31,0xfe,0x7e,0xfa,0x31,0xf3,0xa6,0xee,0x43,0xf2, +0x8c,0xf9,0x78,0xfc,0x74,0xfd,0xca,0x0,0x57,0x5,0xde,0x7, +0xfe,0x2,0x39,0xfa,0x8a,0xf7,0xe1,0xf7,0x20,0xf5,0xe0,0xf2, +0xf9,0xf2,0xb3,0xf4,0xe6,0xf7,0xcc,0xf9,0x38,0xfb,0x82,0xff, +0x4b,0x4,0x42,0x6,0x9f,0x6,0xa0,0x8,0xb,0xc,0xc0,0xb, +0x91,0x7,0x79,0x5,0xee,0x5,0x51,0x6,0xb3,0x6,0xdd,0x5, +0xe3,0x3,0x3e,0x3,0x60,0x4,0x3c,0x6,0xd,0x5,0x42,0xff, +0x32,0xfc,0x15,0xff,0xeb,0x0,0xaf,0xfe,0xd7,0xfb,0xa,0xfb, +0xd2,0xfb,0x18,0xfc,0x1c,0xfc,0xc9,0xfb,0x9,0xfa,0x22,0xfa, +0xa9,0xfc,0x14,0xfd,0xcf,0xfb,0x28,0xfb,0x9c,0xfa,0x62,0xfa, +0x8f,0xfa,0x92,0xfb,0x27,0xfd,0x61,0xfd,0x9f,0xfe,0xa1,0x2, +0x19,0x5,0x48,0x5,0x79,0x6,0x29,0x8,0xc5,0x7,0x4f,0x5, +0x68,0x4,0x1e,0x6,0xe1,0x5,0xe1,0x2,0x24,0x1,0x9b,0x1, +0xdf,0x2,0xb1,0x3,0x93,0x3,0xcd,0x3,0xf8,0x4,0x77,0x6, +0x3d,0x7,0x6f,0x5,0xc6,0x1,0xce,0xff,0xc4,0xff,0x14,0xfe, +0x3a,0xfa,0x39,0xf8,0x68,0xf9,0xad,0xfa,0x6b,0xfa,0x6f,0xf9, +0x9e,0xf8,0x0,0xf9,0x9e,0xfa,0xae,0xfb,0xfe,0xfa,0x1b,0xfb, +0x9e,0xfe,0xdb,0x1,0x9f,0x1,0x7a,0x1,0x43,0x3,0xfe,0x4, +0xca,0x5,0x25,0x5,0x71,0x4,0x17,0x5,0x8c,0x4,0x58,0x2, +0xe2,0x0,0x46,0x0,0xce,0xff,0x85,0xfe,0x34,0xfd,0x42,0xfe, +0x4a,0xff,0x66,0xfe,0xd2,0xfe,0x5a,0x0,0xb8,0x0,0x23,0x0, +0x1,0xff,0x5c,0xff,0x9f,0x1,0xa6,0x2,0xb3,0x1,0x5f,0xff, +0xd2,0xfd,0x8b,0xff,0xa4,0xff,0x4f,0xfb,0x9b,0xf8,0x71,0xf9, +0x2c,0xfb,0x26,0xfc,0x44,0xfb,0x73,0xfb,0x9b,0xfd,0x29,0xfe, +0x75,0xfe,0xa7,0xff,0x88,0xff,0x83,0xff,0x9c,0x0,0x37,0x2, +0x11,0x4,0x23,0x4,0x76,0x3,0xe5,0x3,0xf5,0x3,0xce,0x4, +0x68,0x6,0x20,0x6,0xf2,0x5,0xc8,0x6,0x4,0x7,0xaf,0x6, +0x22,0x4,0x6d,0x0,0x62,0xfe,0xb3,0xfb,0xcb,0xf8,0xd,0xf8, +0x9,0xf7,0x27,0xf6,0x7e,0xf7,0x70,0xf9,0xaf,0xfa,0x15,0xfa, +0xec,0xf8,0xad,0xfa,0xb4,0xfc,0x16,0xfc,0xa4,0xfb,0xda,0xfc, +0x1c,0xff,0x2,0x1,0x57,0x1,0x35,0x2,0xe6,0x3,0xba,0x4, +0x9a,0x5,0x65,0x5,0x3a,0x3,0xf0,0x1,0x56,0x1,0xf9,0xff, +0x5e,0xfe,0x61,0xfc,0xae,0xfb,0xf4,0xfc,0xb4,0xfd,0x95,0xfe, +0x54,0x0,0xd9,0x0,0xe9,0x0,0x94,0x1,0xb1,0x1,0x2d,0x1, +0x4e,0x0,0xe0,0xff,0x78,0x0,0x92,0x0,0x6,0x0,0xc6,0xff, +0x80,0xff,0xab,0xff,0x1,0x0,0x9,0xff,0x17,0xfd,0x3c,0xfb, +0xb3,0xfa,0x62,0xfb,0x46,0xfa,0xa9,0xf7,0xb5,0xf7,0x54,0xfa, +0xa,0xfc,0x69,0xfb,0x39,0xfa,0x96,0xfb,0xef,0xfe,0x50,0x0, +0x6,0xff,0xf2,0xfd,0x7e,0xff,0x2d,0x3,0x4a,0x5,0xc6,0x3, +0xa4,0x1,0xda,0x1,0xa,0x3,0x82,0x2,0x60,0x0,0x16,0xff, +0xe5,0xff,0x71,0x1,0xba,0x1,0xcf,0x0,0x90,0x0,0xa8,0x1, +0xf5,0x2,0x50,0x3,0x2d,0x2,0xcb,0x0,0xd4,0x1,0x2e,0x5, +0x67,0x7,0xb6,0x6,0x78,0x5,0x28,0x6,0x3a,0x7,0xb0,0x5, +0x68,0x1,0x22,0xfd,0xd3,0xfb,0xa9,0xfc,0xe2,0xfb,0x79,0xf9, +0xba,0xf8,0xa8,0xfa,0xdf,0xfd,0xf8,0xff,0x9a,0xff,0x98,0xfe, +0xf9,0xfe,0x25,0x1,0x12,0x4,0x9,0x5,0x56,0x4,0x93,0x5, +0xdb,0x8,0x1,0xb,0xb8,0x9,0x44,0x6,0x72,0x5,0x2f,0x7, +0xb3,0x5,0xee,0x0,0x43,0xfe,0x9e,0xff,0x1d,0x2,0x18,0x2, +0x62,0x0,0x2e,0x0,0xf0,0x0,0x36,0x1,0xd9,0x0,0xe3,0xff, +0x25,0x0,0x88,0x1,0xb6,0x1,0xd6,0x1,0x7e,0x2,0xed,0x1, +0x97,0x1,0xc7,0x2,0xa,0x4,0x83,0x4,0xe0,0x3,0xf7,0x2, +0xf6,0x2,0x8a,0x2,0x98,0x0,0x82,0xfe,0xaa,0xfe,0x31,0x1, +0x20,0x2,0xc7,0x0,0xf7,0x1,0xc6,0x5,0x7b,0x8,0xdd,0x9, +0x6d,0xa,0xce,0xa,0x84,0xc,0xfe,0xd,0xf5,0xc,0x9d,0xa, +0xfe,0x8,0x29,0x8,0x13,0x7,0xed,0x4,0x66,0x1,0x8a,0xfd, +0xee,0xfb,0xad,0xfc,0xfc,0xfc,0x93,0xfc,0xa8,0xfc,0x68,0xfc, +0x29,0xfc,0xd1,0xfc,0x22,0xfc,0xfe,0xf9,0x55,0xfa,0x7b,0xfc, +0x48,0xfc,0x2b,0xfb,0x9,0xfc,0xfb,0xfc,0xd9,0xfc,0x46,0xfd, +0xee,0xfd,0xf0,0xfd,0x37,0xfe,0x25,0xfe,0x19,0xfc,0x79,0xf9, +0x6c,0xf8,0x2e,0xf8,0x9b,0xf7,0x3f,0xf7,0x98,0xf7,0xf6,0xf8, +0x89,0xfb,0xfb,0xfd,0x83,0xff,0xb3,0x1,0xf1,0x3,0x80,0x3, +0xe7,0x1,0x93,0x1,0x22,0x0,0xd6,0xfc,0x3d,0xfa,0xa3,0xf7, +0x4b,0xf4,0x8d,0xf2,0xe4,0xf1,0xcd,0xf0,0x4f,0xf1,0x1,0xf3, +0x19,0xf3,0xaf,0xf3,0x97,0xf6,0x6b,0xf8,0xad,0xf8,0x85,0xfa, +0xda,0xfc,0x6,0xfd,0x2b,0xfd,0x6,0x0,0x2f,0x3,0x41,0x4, +0xfa,0x4,0x77,0x4,0x6e,0x0,0x2c,0xfc,0xe3,0xf9,0xb9,0xf7, +0xbc,0xf5,0x93,0xf3,0xff,0xf0,0xbf,0xf0,0x19,0xf3,0x80,0xf6, +0x6f,0xfb,0x24,0x2,0xc7,0x9,0xe4,0xf,0x5e,0x11,0xd5,0xe, +0x6a,0xc,0x52,0xb,0x2,0x6,0x93,0xfa,0x2b,0xf1,0x92,0xec, +0x2c,0xe8,0x4b,0xe5,0x79,0xe5,0x91,0xe6,0x6e,0xe9,0xef,0xee, +0xd2,0xf5,0xf8,0xfb,0x25,0x1,0x25,0x9,0xc0,0x12,0x69,0x19, +0x55,0x1e,0x74,0x21,0xf2,0x21,0xba,0x21,0x54,0x1f,0x96,0x1b, +0x89,0x18,0xad,0x13,0xba,0xf,0x7d,0xe,0xf8,0x9,0x3f,0x3, +0xef,0xff,0xe3,0xfe,0xa2,0xfc,0x62,0xf8,0xe9,0xf5,0x5a,0xf9, +0x54,0x2,0x4,0xd,0xc3,0x12,0x64,0x14,0x93,0x1a,0x6a,0x21, +0xde,0x1e,0x2e,0x15,0x33,0xb,0x7f,0x4,0x8d,0xff,0x59,0xf7, +0xde,0xec,0x7e,0xe4,0x87,0xdf,0x91,0xdc,0xe0,0xd8,0xd0,0xd6, +0x19,0xd9,0x8c,0xdc,0xff,0xe2,0xe3,0xee,0x95,0xfb,0x6e,0x8, +0x63,0x14,0xb2,0x1a,0xa,0x1f,0xc4,0x25,0x1,0x2b,0xc8,0x2a, +0x57,0x24,0xa9,0x1a,0xc3,0x11,0xb3,0x8,0x51,0xfd,0x5d,0xf1, +0xa2,0xe8,0xbe,0xe3,0x1b,0xdf,0x18,0xdb,0x1,0xdc,0x48,0xe1, +0x64,0xe8,0xe6,0xf1,0x76,0xfd,0x62,0x7,0xfc,0xc,0x6e,0x10, +0x72,0x13,0x33,0x14,0xd0,0x12,0x70,0xf,0xa3,0x8,0x14,0x1, +0xaf,0xfa,0x8d,0xf2,0x80,0xe9,0xcf,0xe3,0xe9,0xe1,0x2a,0xe2, +0xc1,0xe3,0xb8,0xe5,0xe3,0xe8,0xee,0xef,0xc0,0xf8,0x8c,0xfe, +0xd3,0x3,0x81,0xc,0x19,0x15,0x3,0x1b,0xe2,0x1e,0x97,0x1e, +0xab,0x1a,0x20,0x17,0xbd,0x12,0xa4,0xa,0x83,0x1,0xf3,0xf9, +0x8b,0xf2,0xb1,0xeb,0x8d,0xe7,0x94,0xe5,0xee,0xe5,0x4e,0xea, +0x1d,0xf1,0xc5,0xf7,0xca,0xfd,0xb,0x3,0xd1,0x7,0xf0,0xb, +0x8c,0xe,0xcc,0xf,0xb0,0xf,0x68,0xe,0x41,0xc,0xed,0x7, +0x25,0x2,0x4e,0xfd,0x58,0xf9,0x64,0xf6,0x62,0xf4,0x16,0xf2, +0xcb,0xf1,0xc7,0xf5,0x50,0xfb,0xe0,0xff,0x36,0x4,0x8f,0x9, +0x42,0xf,0x2c,0x14,0x3b,0x18,0x4,0x1a,0x9e,0x19,0x3a,0x1a, +0xf2,0x19,0x5a,0x15,0x99,0xf,0xb4,0xa,0x3e,0x5,0x87,0xff, +0x41,0xf9,0x2,0xf3,0xd1,0xef,0x3b,0xef,0x96,0xee,0x24,0xef, +0xe1,0xf3,0xba,0xfb,0xed,0x2,0x8b,0x8,0xb9,0xd,0x35,0x12, +0xf4,0x14,0x11,0x15,0x98,0x12,0xe2,0xe,0xcf,0xa,0x26,0x6, +0x67,0x0,0x90,0xf9,0x28,0xf2,0x6d,0xeb,0x27,0xe7,0x2d,0xe5, +0xd,0xe5,0x39,0xe8,0xfe,0xec,0x1c,0xf1,0xb4,0xf6,0xe1,0xfc, +0xb9,0x0,0x2e,0x4,0x94,0x8,0x21,0xd,0xb,0x11,0x3a,0x12, +0x79,0x11,0x1a,0x11,0x5a,0xf,0x6d,0xa,0xf1,0x3,0x19,0xff, +0x5,0xfc,0xea,0xf6,0xcb,0xf0,0x4c,0xed,0xf8,0xea,0xba,0xea, +0x6,0xef,0xfc,0xf3,0xd5,0xf7,0x61,0xfd,0x57,0x3,0x5d,0x6, +0xbd,0x6,0x50,0x7,0x57,0x8,0x14,0x7,0x94,0x4,0xda,0x2, +0x2f,0xff,0x20,0xfa,0x63,0xf7,0xdf,0xf4,0xc2,0xf1,0x4,0xf2, +0x2f,0xf4,0x14,0xf5,0x8a,0xf6,0xf8,0xf7,0xa0,0xf7,0x7e,0xf8, +0xee,0xfa,0xd7,0xfb,0xc0,0xfc,0xb2,0xff,0xa6,0x1,0x18,0x1, +0x71,0x0,0xd5,0xfe,0x5c,0xfa,0xda,0xf6,0x3b,0xf5,0x74,0xf0, +0xaa,0xea,0x21,0xe8,0x43,0xe5,0x5a,0xe2,0x7e,0xe3,0xfa,0xe5, +0x6,0xe8,0x2f,0xeb,0x2c,0xee,0x62,0xf0,0x92,0xf1,0x80,0xf1, +0x5a,0xf3,0x42,0xf6,0xcd,0xf5,0xc2,0xf4,0x82,0xf5,0x56,0xf3, +0xe4,0xee,0xbf,0xed,0xa7,0xed,0x8,0xeb,0x50,0xea,0xaf,0xec, +0xd0,0xec,0x55,0xec,0x51,0xef,0xa0,0xf1,0xdd,0xf2,0x62,0xf8, +0x68,0xfe,0xb7,0xff,0xa8,0x0,0x3,0x3,0xdd,0x2,0x39,0x0, +0x8c,0xfd,0xf0,0xfb,0x46,0xfb,0x5c,0xfa,0x99,0xf9,0x48,0xf9, +0xd8,0xf7,0x4d,0xf7,0xc2,0xf9,0x20,0xfb,0xce,0xfa,0xf0,0xfd, +0x61,0x2,0x4a,0x3,0x82,0x4,0xf3,0x7,0xdf,0x8,0x11,0x9, +0x48,0xc,0x83,0xd,0x13,0xb,0x84,0xa,0x28,0xb,0x9b,0x9, +0xc2,0x8,0x0,0xa,0x63,0xa,0x59,0xa,0xb1,0xb,0x72,0xc, +0x91,0xb,0x53,0xb,0xbd,0xc,0x62,0xe,0xa3,0xe,0x2e,0xe, +0xca,0xe,0xb,0xf,0x94,0xd,0xba,0xc,0xf5,0xc,0xc2,0xc, +0xe9,0xc,0x16,0xd,0x57,0xb,0x49,0x9,0x10,0x9,0x29,0x8, +0xf6,0x5,0x8b,0x6,0xe0,0x8,0x5e,0x9,0x81,0xa,0x51,0xd, +0xc7,0xe,0xd8,0xe,0xd2,0xe,0xc8,0xe,0xbe,0xd,0xb4,0xb, +0x67,0xb,0x61,0xc,0xe3,0xb,0x34,0xb,0x31,0xb,0x3d,0xb, +0xf9,0xb,0x9a,0xc,0x73,0xc,0x10,0xd,0x7a,0xf,0xc,0x12, +0x3a,0x13,0xfe,0x14,0xeb,0x16,0x22,0x16,0x67,0x15,0xc7,0x15, +0x79,0x13,0x44,0x10,0x42,0xf,0x60,0xe,0x6e,0xc,0x85,0xb, +0x88,0xc,0x1,0xd,0x45,0xc,0xdb,0xc,0x7e,0xe,0x4,0xf, +0xf3,0xd,0xf9,0xc,0x3,0xd,0x78,0xa,0xa1,0x5,0x15,0x4, +0xc6,0x4,0x11,0x5,0xf9,0x5,0x75,0x6,0xd5,0x6,0x6f,0x7, +0x66,0x6,0xea,0x4,0x76,0x3,0x2d,0x1,0xe,0x0,0xe1,0x0, +0xb1,0x1,0xfb,0x1,0xa9,0x4,0xb,0x9,0x67,0xa,0x48,0xc, +0x4a,0x10,0x9c,0xf,0xf7,0xe,0x20,0x12,0xa,0x10,0xdc,0xb, +0xa6,0xb,0x55,0x9,0x16,0x7,0x92,0x8,0xe2,0x6,0xe1,0x2, +0x89,0x1,0xc4,0xfd,0x5c,0xf6,0xf1,0xf1,0xee,0xef,0x56,0xef, +0xa5,0xf3,0x29,0xf5,0xcc,0xef,0x51,0xf0,0x2e,0xf5,0x4,0xf4, +0x3d,0xf5,0x24,0xfa,0x4d,0xf8,0x81,0xf6,0xdd,0xfa,0xf1,0xfc, +0xd2,0xfc,0x9d,0x0,0x36,0x6,0xe9,0xa,0x67,0xd,0x44,0xa, +0x4c,0x4,0x54,0x2,0xb2,0x1,0x33,0xfe,0x23,0xfd,0x35,0xfe, +0x69,0xf9,0x3e,0xf4,0x86,0xf6,0x45,0xf7,0x54,0xf6,0x96,0xfe, +0x30,0x5,0x34,0x1,0x1e,0xff,0x38,0xfd,0x53,0xf8,0xd1,0xfb, +0x59,0xff,0x15,0xfd,0x4f,0x3,0x47,0x8,0x4f,0x1,0x32,0xff, +0xcd,0x0,0xa0,0xfc,0x28,0xfe,0x74,0x2,0x8,0xfe,0xd5,0xfb, +0xe2,0xfe,0xb2,0xfd,0xca,0xff,0xe3,0x7,0x85,0x9,0x6,0x6, +0x44,0x4,0x5c,0x2,0x76,0x0,0x2f,0xfe,0xc3,0xfa,0xe0,0xf8, +0x55,0xf8,0xbe,0xf6,0x69,0xf1,0xb6,0xed,0xe0,0xf3,0x8,0xfa, +0x4a,0xfa,0x59,0xfb,0xdd,0xf7,0xd8,0xf3,0xe1,0xf6,0xd2,0xf4, +0x52,0xf2,0xfb,0xf6,0x67,0xf6,0x45,0xf6,0xa,0xfa,0xcf,0xf7, +0x9a,0xf9,0xac,0xff,0xbf,0xff,0x4b,0x1,0x5c,0x4,0x84,0x4, +0xc,0x3,0x9f,0xff,0xea,0x1,0x4e,0x4,0xb0,0xfc,0xfd,0xfb, +0x2d,0x4,0xac,0x4,0xbd,0x0,0xaf,0xfd,0x23,0xfe,0x3f,0x0, +0x40,0xfa,0xa2,0xf8,0xd3,0x1,0xb9,0x1,0xcc,0xfb,0x8b,0xfc, +0x44,0xfc,0x1e,0xf8,0x39,0xf3,0x75,0xf3,0xd5,0xf6,0x1,0xef, +0x96,0xe9,0x4,0xf5,0x32,0xfa,0xa5,0xf6,0x5,0xfa,0xcd,0xfb, +0xe8,0xfa,0x55,0xfb,0xce,0xf9,0x88,0xfd,0x1b,0xff,0xb,0xf7, +0x41,0xf8,0x33,0xfd,0x45,0xf5,0xea,0xf2,0xf6,0xfb,0x88,0xff, +0xcb,0xfd,0x52,0xfc,0x80,0xff,0x64,0x7,0x1f,0x7,0xef,0x2, +0xcc,0x6,0xda,0x5,0x24,0xfe,0xfc,0xfe,0xa7,0x1,0xdc,0xfc, +0xfd,0xf8,0x6e,0xfb,0x15,0x0,0xbf,0xfd,0x98,0xf6,0x15,0xf9, +0x3b,0xfd,0xfe,0xf5,0xfe,0xf2,0x2a,0xf9,0xb4,0xf8,0x60,0xf5, +0xb2,0xfa,0xe2,0x1,0x32,0xfe,0x37,0xf3,0xcf,0xf2,0xf4,0xfa, +0xa7,0xf9,0x83,0xf5,0x8c,0xfb,0x5,0x2,0xd3,0xff,0x15,0xfc, +0x87,0xff,0x97,0x2,0x6f,0xfa,0x1b,0xf4,0x18,0xf7,0x38,0xf4, +0x16,0xf2,0x79,0xfd,0xa8,0x4,0xd8,0x0,0xa9,0x1,0x17,0x7, +0xfc,0x8,0x17,0x9,0x86,0xa,0x6f,0xb,0xad,0x7,0x93,0x1, +0x39,0xff,0x98,0xfd,0xa1,0xf9,0x77,0xf9,0xbc,0xfc,0x49,0xfb, +0xd8,0xf5,0xf6,0xf2,0xa1,0xf5,0xdb,0xfc,0xa,0x2,0x13,0x4, +0x1d,0xa,0x71,0xd,0xa0,0x6,0x19,0x3,0xb0,0x5,0xa9,0x2, +0xb6,0xfe,0x86,0xfe,0x48,0xfc,0x7e,0xfa,0x7,0xfb,0xe0,0xfb, +0x2,0x0,0xbf,0x3,0xfc,0x0,0x99,0xfc,0x79,0xfb,0x1b,0xfa, +0x7a,0xf5,0xfb,0xf1,0x87,0xf1,0xba,0xee,0x8f,0xee,0x8f,0xf6, +0x10,0xfa,0xa4,0xfa,0x1c,0x6,0xf9,0xc,0x7c,0x6,0xb1,0x6, +0x84,0x8,0xf6,0xfe,0x55,0xfb,0xbd,0xff,0xe0,0xfc,0xe8,0xfa, +0x9f,0xff,0x73,0xff,0xad,0xfa,0xec,0xf8,0x85,0xf9,0x63,0xfb, +0x6e,0xff,0x2,0x1,0x99,0xfb,0x25,0xf6,0xe3,0xf5,0xeb,0xf6, +0xc7,0xfb,0xf0,0x1,0x4b,0x0,0x9,0x0,0xf1,0x4,0x66,0x4, +0xad,0x5,0x8d,0xa,0x4a,0x6,0x59,0xff,0x9b,0xfc,0xd7,0xfb, +0xc3,0xff,0x66,0x1,0x9d,0x0,0xfd,0x6,0x52,0x9,0x34,0x5, +0x57,0x9,0x6a,0xd,0x19,0x7,0xcf,0x0,0xcb,0x2,0x4b,0x7, +0x4b,0x4,0x45,0x4,0x28,0x13,0x7d,0x1a,0x52,0x13,0x21,0x14, +0x49,0x13,0x15,0x6,0x93,0x3,0x1b,0xb,0xc3,0x8,0x71,0x4, +0xac,0x7,0x5,0x9,0x90,0x6,0x49,0x4,0x41,0xfd,0x5f,0xf6, +0x4a,0xf8,0x63,0xf6,0x6b,0xef,0x1f,0xf3,0x2d,0xf6,0x20,0xf1, +0x4,0xf4,0xa,0xf6,0x1c,0xec,0xa8,0xe5,0x63,0xe5,0xb5,0xe3, +0xb3,0xe3,0x12,0xe7,0x1b,0xea,0xab,0xe8,0x76,0xe8,0x2e,0xed, +0xa,0xeb,0x9e,0xe8,0xf4,0xf2,0x35,0xf9,0xdf,0xf6,0x55,0xf9, +0x38,0xfb,0x39,0xfb,0x27,0xfc,0x15,0xf7,0x2d,0xf3,0x1,0xf7, +0x1c,0xfa,0x41,0xfc,0xdf,0xfe,0x6e,0xfb,0xeb,0xf4,0xe7,0xf6, +0xfa,0xfc,0x1d,0xfa,0x4a,0xf8,0xe7,0xfc,0x39,0xf7,0x54,0xf1, +0x6b,0xf7,0xa2,0xf6,0xca,0xf3,0x53,0xfb,0xf7,0xff,0x33,0x2, +0xfb,0x3,0xdf,0x2,0x47,0xa,0x2,0x11,0x3b,0xd,0xd7,0xa, +0x60,0x7,0x4d,0x4,0xfb,0x5,0x66,0x4,0xdd,0x9,0xa1,0x10, +0xeb,0x7,0xd2,0x5,0x84,0x9,0x67,0x3,0xa7,0x6,0x67,0x7, +0xf7,0xf8,0xf7,0xf4,0x68,0xf2,0x2f,0xee,0x4,0xfc,0x89,0x0, +0x44,0xf4,0xe2,0xf4,0xa,0xf9,0xd,0xf8,0x82,0xf9,0x85,0xf6, +0x7d,0xf3,0xf2,0xf3,0x49,0xf4,0xa5,0xf9,0xf,0xf9,0x15,0xf1, +0xe6,0xf6,0x2d,0x0,0xc2,0xfd,0xc0,0xfd,0xe0,0xfe,0xf2,0xfa, +0x6e,0xff,0x89,0x6,0x35,0x2,0x7b,0x0,0x5b,0x7,0x2c,0xb, +0xfb,0x10,0x14,0x18,0xa5,0x16,0x6,0x17,0xb9,0x17,0x15,0x11, +0xfd,0x13,0xcf,0x1a,0x8f,0x16,0xcb,0x15,0xa1,0x15,0x77,0x10, +0x99,0x14,0xb1,0x18,0x72,0x17,0xa,0x18,0x12,0xf,0x66,0x3, +0x3a,0xff,0x19,0xf9,0xe5,0xf8,0xf0,0xfd,0x22,0xff,0x5c,0x6, +0xe,0xa,0x5d,0x4,0x1d,0x5,0x2f,0x6,0x25,0x5,0xf2,0x5, +0xe3,0x2,0xfa,0x6,0x3c,0xd,0x36,0xd,0xd1,0x18,0xfb,0x1f, +0xcd,0x16,0x62,0x16,0x1f,0x16,0x77,0x12,0x88,0x17,0x5a,0x14, +0x8a,0x11,0x7c,0x15,0x7a,0xe,0x99,0x12,0x0,0x1e,0x4c,0x14, +0xe3,0xd,0xdf,0xc,0x3,0x4,0xfb,0x7,0x27,0xf,0x80,0xf, +0x31,0x10,0x7e,0x6,0x74,0x3,0xd6,0x8,0x94,0xfb,0xe1,0xf6, +0xa1,0x0,0x45,0xf6,0x72,0xee,0xb1,0xf9,0xc0,0xfe,0xd7,0xfa, +0xf,0xf6,0x64,0xf3,0xa0,0xee,0xda,0xe9,0x64,0xf6,0x38,0x1, +0x83,0xfa,0xae,0xff,0xe,0xb,0x8,0xb,0xf9,0xd,0xee,0x10, +0x23,0x11,0xc1,0xa,0xc4,0xfb,0x85,0x7,0x2d,0x1c,0x25,0x10, +0xe2,0x11,0x9,0x22,0xf2,0x9,0x7b,0xf4,0x61,0x1,0xa3,0x0, +0x5d,0xf0,0xbb,0xf0,0x30,0xfe,0x9a,0xff,0x30,0xf2,0x3,0xf6, +0xab,0x3,0x30,0xf5,0xef,0xe6,0x4d,0xf6,0xc9,0xfc,0xb1,0xee, +0x38,0xf0,0xab,0xff,0x15,0xfc,0x58,0xee,0x6e,0xf4,0x73,0xfd, +0x13,0xf1,0xf8,0xe8,0xf3,0xfa,0xc1,0x9,0x5e,0xff,0xcd,0xfc, +0x46,0xc,0xcb,0x2,0x4d,0xf2,0x9c,0x3,0xfa,0x9,0xec,0xf9, +0x54,0xff,0x3c,0x4,0xe0,0xfb,0xd5,0x0,0x40,0x7,0xc7,0x9, +0xad,0x6,0xe,0xf7,0x93,0xf8,0x83,0xff,0x4c,0xf3,0xe5,0xfa, +0x56,0x7,0xe2,0xf3,0x94,0xeb,0x2b,0xf3,0x10,0xed,0x24,0xf0, +0x82,0xfb,0x14,0xf5,0x3b,0xe7,0x58,0xe7,0x56,0xf5,0x1a,0xf7, +0x7f,0xed,0xf5,0xf3,0x20,0xf3,0xc3,0xe3,0xe3,0xf0,0x41,0x5, +0xa0,0xfd,0xe,0xf9,0xe0,0x3,0x6,0x9,0x77,0x1,0xd1,0xf9, +0x89,0x9,0x0,0x1e,0x59,0x15,0xad,0xc,0xa,0x15,0x55,0xd, +0x9e,0x1,0xd8,0xd,0xc5,0x12,0x85,0x0,0xa6,0xfe,0x61,0xf, +0x65,0xb,0x7a,0xff,0x2b,0x6,0xfe,0x4,0x44,0xf8,0x64,0xfb, +0x1d,0xfe,0x1f,0xf7,0x3,0x0,0x1d,0xf,0x2c,0xe,0xfd,0x7, +0x9e,0x4,0x82,0x1,0xe0,0x2,0x9d,0x6,0x76,0x7,0xd3,0x9, +0x4a,0xe,0x81,0xf,0x25,0x12,0xde,0x17,0xd9,0x17,0xc2,0x16, +0x4a,0x17,0x17,0xd,0xe4,0x4,0xdd,0xc,0x83,0xc,0x92,0x0, +0x9a,0xff,0xbc,0xfb,0xf1,0xee,0x36,0xf3,0x84,0xfc,0x15,0xf4, +0x83,0xee,0xa6,0xf1,0xa9,0xeb,0xd,0xe7,0x4e,0xe9,0xf5,0xe3, +0x55,0xe2,0x94,0xeb,0x2e,0xea,0x58,0xe4,0xdc,0xef,0x97,0xfb, +0x5e,0xf8,0xcf,0xfb,0x5c,0xa,0x97,0xa,0xc5,0xfe,0xd7,0xfe, +0xaf,0x4,0xd3,0x2,0x88,0x3,0x77,0xa,0x2d,0xf,0x31,0xe, +0x41,0x8,0xc7,0x8,0x7b,0xe,0xab,0x3,0xf3,0xf6,0xb9,0x0, +0x79,0x4,0x6b,0xf4,0x4d,0xf0,0x97,0xf7,0x6e,0xf4,0x94,0xf0, +0x4c,0xf6,0xee,0xf9,0x88,0xf5,0xb,0xf3,0xc3,0xf7,0xc0,0xf8, +0xaf,0xf2,0xd7,0xf2,0x51,0xf7,0xa5,0xf3,0x25,0xf0,0xa4,0xf3, +0xfe,0xf2,0x18,0xf1,0x4a,0xf8,0xf7,0xff,0x5a,0x1,0x84,0x0, +0xac,0xfe,0x59,0xfe,0x2e,0x0,0x47,0x4,0x46,0xd,0xd9,0x10, +0x74,0xc,0x7e,0xf,0x67,0x14,0x8c,0x12,0xf3,0x12,0x2e,0xf, +0x95,0x6,0x75,0x6,0x3d,0x3,0x8a,0xfa,0xbd,0xfe,0x8f,0x5, +0x88,0xff,0xc4,0xf7,0x52,0xf9,0x6a,0xfd,0x0,0xf8,0x9c,0xf4, +0x42,0x0,0x12,0x3,0xc4,0xf6,0xf2,0xf7,0x25,0x3,0x89,0x3, +0xe0,0xfc,0x44,0xfb,0xae,0x2,0xbe,0x2,0xb9,0xf2,0x26,0xef, +0x96,0xfd,0x70,0xfe,0x22,0xf5,0x69,0xfc,0xa3,0x9,0x67,0x3, +0x56,0xf7,0xfe,0x0,0xe4,0x10,0x52,0xf,0x6a,0xc,0x5b,0x15, +0x92,0x1b,0xb0,0x16,0x67,0x12,0xb3,0x1a,0x45,0x24,0x5d,0x20, +0x94,0x15,0x9d,0xc,0x53,0xf,0x4c,0x1d,0xb1,0x1c,0xe0,0x11, +0x54,0x13,0x8b,0xd,0x5e,0xfc,0x87,0xfa,0x35,0x2,0x2e,0x1, +0xfa,0xf7,0x7d,0xf5,0x93,0x0,0x9f,0x0,0xea,0xf4,0xb1,0xf3, +0xd,0xeb,0xd7,0xde,0x76,0xe6,0x40,0xe7,0xa6,0xe4,0xe7,0xf3, +0xa9,0xf0,0x3,0xe1,0x4f,0xe9,0xac,0xea,0xf3,0xd7,0x6f,0xd0, +0x81,0xd5,0x80,0xd9,0xaa,0xd6,0xda,0xd5,0x8f,0xe1,0x5c,0xe3, +0xaa,0xd5,0xdb,0xd6,0x3d,0xe2,0x96,0xe2,0xac,0xe4,0xe0,0xf1, +0x13,0xf7,0xb3,0xec,0x8e,0xea,0xde,0xf3,0x90,0xef,0x6f,0xe9, +0x21,0xf3,0x11,0xf5,0x99,0xed,0x7a,0xf1,0x25,0xf7,0xf5,0xf3, +0x93,0xef,0xf,0xf0,0x23,0xf1,0x36,0xeb,0x75,0xea,0x88,0xf6, +0xd8,0xfb,0x70,0xfb,0x8b,0x2,0x9e,0x5,0xea,0x2,0x30,0x4, +0x90,0x7,0xad,0xa,0x56,0x9,0x2f,0x9,0x91,0x13,0x99,0x16, +0x0,0xe,0xc2,0xe,0x32,0x10,0x48,0xa,0x73,0xf,0x96,0x17, +0x13,0x12,0xc0,0xf,0x18,0x18,0x1d,0x17,0x14,0xc,0x50,0xa, +0x9,0xe,0x75,0x8,0x86,0x2,0xe7,0x5,0xbb,0x9,0x23,0xa, +0xbf,0xc,0xc8,0x10,0xec,0xd,0x2e,0x7,0x7d,0xd,0x8,0x19, +0xba,0x14,0x43,0x11,0xb7,0x19,0x25,0x16,0x5e,0xd,0x71,0x13, +0x85,0x15,0x64,0xd,0x8,0xd,0x70,0x10,0xab,0x12,0x66,0x1a, +0x31,0x21,0x28,0x21,0xc,0x1d,0x6a,0x15,0xeb,0x10,0xb4,0x13, +0x37,0x16,0x84,0x17,0xc3,0x17,0x8a,0x10,0xd6,0x9,0xd4,0xb, +0x7a,0x9,0xac,0x0,0xc8,0x0,0xda,0x4,0x43,0xff,0x3a,0xfa, +0xcb,0xfe,0xb8,0xfd,0x8a,0xf1,0xa3,0xea,0x29,0xe9,0x28,0xe2, +0x8a,0xdf,0x2b,0xe5,0x9c,0xe2,0xac,0xd9,0x76,0xd6,0x4a,0xd2, +0x4,0xcb,0xcc,0xc9,0xb4,0xc9,0x9f,0xc4,0x92,0xc4,0x28,0xcd, +0x70,0xd4,0x3f,0xd8,0xc3,0xdb,0x76,0xdc,0x6,0xdb,0x88,0xda, +0x59,0xdb,0xe,0xde,0xaf,0xdd,0x23,0xdb,0xf1,0xe2,0x8b,0xed, +0xd2,0xed,0xdf,0xf1,0xba,0xfb,0x8e,0xfb,0x2a,0xfa,0x94,0xff, +0x92,0x0,0x11,0x0,0x5c,0x5,0x96,0x7,0x94,0x0,0x69,0xf7, +0x61,0xf5,0x70,0xf9,0x77,0xfc,0xd7,0xfd,0x1b,0xff,0xbf,0x0, +0x24,0x2,0xa4,0xff,0xf8,0xfd,0x1d,0x1,0x9f,0xff,0x6d,0xfc, +0x43,0x1,0x39,0x3,0x1,0xfe,0x43,0xfe,0xe6,0x2,0x73,0x4, +0x93,0x6,0xfa,0xb,0xe4,0xf,0x25,0x10,0xd2,0x12,0x1e,0x19, +0x44,0x1b,0xe3,0x1b,0xe2,0x20,0xa7,0x21,0xa1,0x1c,0x50,0x1e, +0x80,0x24,0x72,0x22,0x39,0x1c,0x4d,0x1c,0xe9,0x1d,0x83,0x1a, +0x7f,0x16,0x11,0x15,0x3d,0x15,0x84,0x14,0xeb,0x10,0x21,0x11, +0xb8,0x14,0x43,0xf,0x68,0x7,0x29,0x7,0x23,0x3,0xa9,0xfd, +0xc,0x2,0x27,0x4,0xb8,0xfd,0x2a,0xfa,0xe2,0xfc,0x3e,0x3, +0x62,0x8,0x27,0xa,0x4e,0x10,0xb1,0x1a,0x22,0x22,0xc6,0x26, +0x40,0x27,0x91,0x26,0x20,0x2c,0x18,0x2e,0xb9,0x23,0x3e,0x1a, +0x64,0x1a,0x89,0x1c,0xa5,0x1a,0x63,0x15,0x48,0xf,0x38,0xd, +0x59,0x14,0xa3,0x20,0x15,0x28,0x55,0x29,0xa0,0x25,0x4a,0x19, +0xde,0x8,0x13,0xfe,0x2f,0xf8,0x26,0xf3,0x38,0xf2,0x25,0xf5, +0x90,0xf2,0xa,0xef,0xff,0xfa,0xea,0x8,0xaf,0x2,0xe6,0xfa, +0x1b,0xff,0x62,0xfb,0x1c,0xf1,0xee,0xed,0xc0,0xe6,0xb5,0xd8, +0x45,0xd4,0x48,0xe0,0x8,0xf1,0xba,0xf4,0xd5,0xf0,0xf1,0xf5, +0xae,0xf9,0xec,0xf6,0x7d,0xfa,0x85,0xfa,0x2f,0xf4,0xd0,0xf9, +0xaf,0x1,0xde,0xfd,0xda,0xf5,0x39,0xe8,0xf9,0xdb,0x12,0xde, +0x27,0xde,0xa1,0xd5,0xe0,0xd6,0x3c,0xe0,0xc1,0xe6,0x5,0xea, +0x9d,0xe8,0xc7,0xe4,0x73,0xe0,0x35,0xdb,0xd4,0xdc,0xf1,0xe3, +0x15,0xe5,0xca,0xe1,0x77,0xde,0xf0,0xda,0xf8,0xdb,0x7c,0xe2, +0x42,0xea,0x26,0xf3,0x70,0xfd,0xbc,0x4,0x3a,0x2,0x27,0xf9, +0xea,0xf5,0xa6,0xf7,0x5b,0xf8,0x49,0xfd,0x38,0x3,0xb2,0x2, +0xb7,0x4,0x7d,0xd,0xed,0x13,0x9a,0x16,0x63,0x17,0x25,0x13, +0xeb,0xb,0x14,0x9,0xee,0xc,0x20,0x12,0xb2,0x12,0xe8,0xb, +0x2e,0xff,0xd0,0xf6,0xd6,0xfa,0x73,0x3,0x52,0x9,0xc9,0xd, +0x2b,0xf,0xa,0xe,0x93,0xd,0x74,0xc,0xdd,0xd,0x2c,0x13, +0xa4,0x15,0x7d,0x17,0x29,0x1b,0x64,0x19,0x3c,0x16,0xa2,0x17, +0xdc,0x16,0x87,0x16,0x6,0x1a,0xf,0x16,0x4b,0xe,0xaf,0x11, +0xa1,0x19,0x71,0x1a,0xca,0x16,0x37,0x15,0x53,0x1d,0xf3,0x2d, +0x98,0x36,0x8a,0x31,0x47,0x29,0x78,0x21,0x89,0x1d,0x9a,0x25, +0xaf,0x2f,0xfb,0x2b,0x21,0x21,0x80,0x19,0xa2,0x14,0xaa,0x14, +0xad,0x14,0x9f,0xa,0x93,0x2,0xa3,0xb,0x4a,0x1b,0xcf,0x21, +0x1b,0x19,0x15,0x6,0x31,0xfe,0x23,0xb,0x79,0x19,0x38,0x1e, +0x70,0x22,0x90,0x25,0x3c,0x21,0xf9,0x1b,0x85,0x19,0xb3,0x11, +0x26,0x6,0x73,0x3,0x26,0xd,0x74,0x1e,0x54,0x2a,0xd3,0x1e, +0xfb,0x3,0x7b,0xf5,0xc7,0xf8,0x43,0x2,0x79,0x9,0x92,0xa, +0xe,0xd,0x40,0x13,0xa0,0xf,0xfc,0x5,0x8b,0x7,0xe,0xe, +0x18,0xc,0x50,0x7,0x4c,0x6,0x72,0x2,0xc2,0xf7,0xa7,0xeb, +0x34,0xe3,0x3a,0xe3,0x46,0xe9,0x42,0xe7,0x2,0xe0,0x1e,0xdf, +0x19,0xd9,0x48,0xd0,0x35,0xd8,0x3b,0xe1,0xd1,0xde,0x42,0xe6, +0x46,0xf4,0xde,0xf6,0xc8,0xf8,0x6d,0x2,0xd8,0x7,0xef,0x0, +0x93,0xf7,0xfe,0xfc,0xc0,0xd,0x27,0x16,0xfa,0xc,0xa2,0xf5, +0xf,0xe1,0x6a,0xe2,0x9c,0xf6,0x34,0xb,0xc1,0xd,0x3,0xfd, +0xfb,0xf0,0x7e,0xf3,0x47,0xf5,0x79,0xed,0x1d,0xdc,0xa4,0xd3, +0x41,0xe7,0xc0,0xf7,0x99,0xea,0x29,0xde,0x1,0xe0,0x58,0xe3, +0xab,0xf0,0x73,0xfe,0xf9,0xf0,0x18,0xd8,0xd9,0xd5,0xa9,0xe6, +0xa4,0xf3,0xf3,0xf3,0xfe,0xe4,0x3,0xcb,0xc3,0xc3,0x73,0xe0, +0x36,0x0,0x8b,0x8,0x9,0x6,0xac,0x5,0x43,0x10,0xf9,0x23, +0xd2,0x22,0xee,0x3,0xb9,0xea,0x84,0xed,0x94,0xfb,0xba,0xfb, +0x93,0xeb,0xe8,0xda,0x29,0xd3,0xc1,0xdd,0x75,0xfa,0x6f,0x8, +0x74,0xfd,0xe2,0xf9,0x54,0x0,0x29,0xff,0x1d,0xfa,0xd,0xeb, +0xa,0xd2,0x13,0xcd,0xe0,0xe3,0x4b,0xfe,0x11,0x9,0x37,0x1, +0x89,0xf2,0x5a,0xe7,0x47,0xea,0x75,0x5,0x90,0x1f,0x5,0x20, +0xa6,0x14,0x21,0xf9,0x96,0xd1,0xc5,0xd1,0x31,0xf5,0x6d,0x1, +0xcb,0xf9,0x33,0xfc,0x26,0x2,0x2d,0x3,0x3d,0x0,0xe8,0xfa, +0xa2,0xf9,0x7a,0x2,0x24,0x15,0x57,0x20,0x63,0x13,0x18,0xfe, +0x7e,0xf4,0x63,0xf5,0xcc,0xfc,0xc4,0xfc,0x8e,0xe5,0x4d,0xcf, +0xe2,0xdb,0x4a,0xf9,0xec,0x2,0x3f,0xf9,0xa5,0xe6,0x23,0xd2, +0x7e,0xd8,0x73,0xfa,0xcc,0x9,0x44,0x2,0xfc,0xff,0xa0,0xf4, +0xf1,0xd9,0xe4,0xce,0x44,0xd7,0xdc,0xe3,0xd9,0xf5,0xca,0x5, +0xcf,0x4,0xc6,0xfa,0xda,0xfa,0xbe,0x3,0x8c,0x5,0x27,0x2, +0xcf,0x4,0x77,0x6,0xbb,0x2,0x3f,0x3,0xc2,0x2,0xa,0xfb, +0x6d,0xfa,0xbc,0xff,0x84,0xfa,0x2,0xf6,0x90,0x1,0xd1,0x11, +0x5e,0x1b,0xa2,0x18,0xac,0x5,0xa,0xef,0x30,0xe3,0x93,0xe8, +0x26,0xfe,0xa7,0xb,0x12,0x1,0xd6,0xef,0x67,0xe4,0xb3,0xe4, +0xf0,0xf2,0x56,0xf9,0x4c,0xf8,0xfa,0x6,0x50,0x11,0xd6,0x3, +0xab,0xf7,0xad,0xf6,0xc5,0xf7,0xb1,0xfd,0xdb,0xfd,0xe5,0xeb, +0x21,0xe0,0xa0,0xf1,0x24,0x5,0x6d,0xfe,0x3d,0xf4,0xa9,0xf8, +0xf1,0xfc,0xbe,0x5,0x9d,0x1a,0xf8,0x24,0xf7,0x1a,0x3b,0xb, +0x7b,0x2,0x1c,0x5,0x4,0xb,0x56,0xe,0x7b,0x11,0x65,0x10, +0x1f,0x10,0x59,0x15,0xd9,0xe,0x8c,0xff,0xff,0xfd,0xc,0x4, +0xab,0x5,0x3e,0x5,0x84,0x0,0x3e,0xfb,0x45,0xfa,0x2a,0xf4, +0x6c,0xe7,0x7d,0xde,0xdd,0xdf,0xe4,0xeb,0x10,0xfa,0xef,0x3, +0x73,0x8,0x71,0xfe,0x98,0xec,0x9b,0xeb,0xd,0xf5,0xd2,0xf7, +0xbc,0x0,0x8f,0xd,0x86,0x7,0x7d,0xfa,0x6e,0xfa,0xe7,0xfb, +0x4f,0xfc,0x54,0x8,0xe3,0x12,0x7a,0xe,0x4b,0xf,0xd1,0x1c, +0x41,0x1f,0xb1,0x16,0x4a,0x17,0x70,0x19,0x8b,0x12,0x74,0x11, +0x56,0x1a,0xcb,0x18,0x5,0x7,0x4f,0xfa,0xf5,0xf8,0x4d,0xf4, +0xc1,0xf4,0xe,0x1,0x37,0x1,0x6e,0xf8,0x4b,0xf7,0x7c,0xec, +0x1f,0xe2,0x64,0xf0,0x8f,0xfa,0x8d,0xf6,0xc0,0xfd,0xa4,0x1, +0x22,0xf6,0xe1,0xf2,0x67,0xfc,0x11,0x7,0x95,0xf,0x22,0x15, +0x88,0x17,0x17,0x14,0x72,0x10,0x19,0x14,0x8,0x12,0xca,0x7, +0x8c,0x5,0xed,0x4,0x6c,0xfd,0x84,0xfd,0x6d,0x6,0x34,0x9, +0x17,0x8,0x53,0xd,0x81,0x12,0x78,0x11,0xee,0x11,0xa3,0xf, +0xa9,0x2,0x47,0xfb,0x1e,0x0,0xe,0x0,0xa2,0xfb,0x1d,0xfd, +0x42,0xfd,0x19,0xf9,0x11,0xfc,0xf0,0x6,0x34,0xd,0xe2,0xe, +0x6,0x12,0x65,0xc,0xa4,0xff,0xe4,0xfe,0x61,0x2,0x8b,0xfe, +0xf6,0x2,0xbc,0xc,0x25,0xc,0x0,0x11,0xc3,0x22,0x49,0x28, +0xde,0x1f,0x27,0x20,0x6b,0x21,0x15,0x14,0x7a,0x8,0xa0,0x5, +0x80,0x0,0xf4,0x2,0x57,0xc,0xb,0x9,0xde,0x7,0x6c,0x19, +0x6c,0x26,0x55,0x24,0x6b,0x22,0xf1,0x1f,0xa8,0x13,0xcb,0x5, +0x7c,0x4,0x7a,0x9,0xc7,0x3,0x47,0xf8,0x89,0xf5,0xdc,0xf7, +0x44,0xfa,0xd8,0x1,0x45,0x8,0x27,0x3,0xc4,0xfe,0xb,0x3, +0x4f,0xfc,0x9d,0xee,0x18,0xf6,0xb4,0x4,0xf3,0x2,0x85,0x1, +0x88,0x8,0xc2,0xd,0x3b,0x15,0xfa,0x20,0x60,0x2c,0x78,0x33, +0x18,0x2e,0x81,0x1f,0x40,0x15,0x3a,0x15,0xa5,0x19,0x20,0x12, +0xc2,0x0,0x81,0xfd,0x46,0x4,0xe4,0x4,0x8e,0x8,0xcd,0xc, +0x37,0x4,0x6c,0xf9,0x7b,0xf0,0x77,0xde,0x9d,0xce,0xa9,0xcf, +0xe6,0xd5,0x8a,0xd5,0x1c,0xd5,0x54,0xd8,0x56,0xd8,0xa0,0xd5, +0x4f,0xdb,0x45,0xe9,0xc3,0xee,0xd,0xea,0x41,0xee,0x32,0xf9, +0xc6,0xf8,0x84,0xf5,0x1d,0xfa,0xb7,0xfc,0x89,0x1,0x64,0xf, +0xab,0x17,0xba,0x1a,0x59,0x25,0x7a,0x2c,0x81,0x26,0x8b,0x1d, +0xfa,0x16,0x6d,0x14,0x6e,0x16,0x2,0x14,0x33,0xc,0x6e,0x6, +0x9c,0x1,0x36,0x0,0x29,0x4,0xca,0x1,0xbe,0xf8,0x77,0xf2, +0xca,0xea,0x25,0xe0,0xdc,0xd6,0x1,0xcf,0x2d,0xd0,0x2,0xdb, +0x54,0xe1,0x6f,0xe2,0x3,0xe4,0xb7,0xe2,0x62,0xe1,0x84,0xe4, +0x90,0xe6,0x80,0xe0,0xa5,0xd5,0x3a,0xd3,0x7b,0xdb,0xde,0xe5, +0x5a,0xf2,0xa1,0xfa,0xb4,0xf6,0xbc,0xf6,0xac,0x4,0x7f,0x11, +0x8,0x15,0x1f,0x13,0xae,0xd,0x72,0x2,0xf2,0xf3,0x95,0xf2, +0xc4,0x1,0xdb,0xc,0x73,0xd,0x99,0xb,0xaa,0x6,0x1,0x1, +0x24,0x0,0xcc,0x1,0x38,0x1,0xbe,0xfc,0x26,0xf8,0xe2,0xf2, +0x27,0xe8,0xc6,0xe2,0xb1,0xea,0x47,0xf1,0x2b,0xf0,0x3,0xef, +0x59,0xef,0xb8,0xf1,0x32,0xf2,0x26,0xeb,0x71,0xe4,0x2b,0xdf, +0x4c,0xd6,0xff,0xd8,0xc3,0xe8,0x66,0xed,0xc7,0xea,0xdf,0xf1, +0x9d,0xf8,0xc0,0xfb,0xe3,0x1,0xe,0x1,0xc2,0xfa,0x1,0xfd, +0x95,0x4,0x52,0xa,0x21,0x9,0x5d,0xfe,0x9,0xfc,0x39,0xe, +0x9a,0x1f,0xf0,0x1d,0xe1,0x13,0xaa,0xf,0x49,0xf,0x10,0xe, +0x8e,0xc,0x85,0x6,0xe5,0xfd,0xa0,0xfd,0xd3,0x0,0x89,0xfc, +0xb5,0xf3,0x4,0xed,0x27,0xec,0x9c,0xed,0xa0,0xef,0x87,0xf7, +0x84,0xfa,0x4b,0xf4,0x3c,0xf6,0xb2,0xf9,0x4e,0xf7,0x7f,0xfb, +0xa8,0xfa,0x3,0xf4,0x21,0xf8,0x2e,0xf7,0x6f,0xf1,0xe7,0xf5, +0x5b,0xf8,0xc0,0x1,0x35,0x11,0xfb,0xb,0x4b,0xa,0x6e,0x14, +0x20,0xa,0xe7,0x0,0x3d,0x0,0x6a,0xee,0x34,0xe6,0x5,0xea, +0x82,0xde,0x93,0xdf,0x21,0xef,0xbf,0xed,0xd8,0xed,0x85,0xf6, +0xbd,0xf3,0x4d,0xf1,0xa5,0xf6,0x13,0xf9,0x44,0xfc,0x0,0x0, +0xc9,0xfc,0xa5,0xf9,0xfb,0xfc,0xc4,0x0,0x3e,0x9,0x9,0x1c, +0x48,0x26,0xd5,0x23,0x49,0x29,0xed,0x2d,0x7f,0x25,0xdd,0x1b, +0xfa,0xf,0x46,0xa,0xf5,0x13,0x81,0x11,0xb2,0x7,0xd9,0xe, +0x6d,0xd,0x91,0x0,0x4a,0xfd,0x51,0xf6,0xb7,0xf6,0x91,0x5, +0xa9,0x1,0x5b,0xfb,0xa3,0x6,0xf,0x6,0x17,0x5,0xd9,0xf, +0x35,0xb,0xcc,0x9,0x25,0x17,0x3b,0x10,0x22,0xff,0x89,0xfd, +0x8f,0x3,0x48,0xe,0x7d,0x15,0x29,0x14,0x3c,0x15,0xf7,0xb, +0x67,0xfb,0x63,0x7,0x71,0x25,0xc5,0x31,0x14,0x2a,0x4d,0x14, +0xfd,0xfb,0x1c,0xf3,0x71,0xf3,0xb0,0xf1,0xbc,0xf6,0xa4,0x7, +0x1e,0x17,0x16,0x19,0xa3,0x11,0xa8,0xe,0x20,0x1b,0x1e,0x2b, +0xb8,0x22,0x3a,0x6,0x80,0xec,0x69,0xd7,0xcc,0xd7,0xf3,0xf9, +0x67,0x14,0x71,0xe,0x40,0xf9,0x3e,0xe2,0x94,0xe8,0xc2,0x13, +0x57,0x29,0xd0,0x16,0x70,0x4,0xf2,0xf9,0x23,0xf0,0x20,0xf0, +0xe8,0xf5,0x82,0xf9,0x55,0xff,0xc0,0x5,0x68,0xff,0xa8,0xed, +0xd3,0xe8,0xcb,0xfa,0xf3,0x12,0xd4,0x1e,0xb7,0x13,0xe8,0xf9, +0x75,0xe8,0xa6,0xec,0x15,0x7,0xf5,0x22,0xb4,0x25,0x17,0x19, +0xcd,0xd,0xd9,0x4,0x5b,0x9,0xf4,0x11,0x76,0x7,0x28,0xfd, +0x7a,0x2,0x25,0x1,0x8c,0xf9,0x63,0x1,0xf9,0x12,0xb2,0x1a, +0xd6,0x16,0x22,0xe,0x47,0x1,0xe6,0xf7,0xd3,0xf9,0x77,0xfd, +0x54,0xfd,0x7a,0xfc,0x68,0xf8,0x48,0xf7,0x65,0x0,0xc6,0xe, +0x7d,0x1b,0x82,0x1e,0x45,0x1c,0xb0,0x1d,0x99,0x16,0xf9,0x8, +0x6b,0x2,0x78,0xf7,0x40,0xed,0x67,0xf1,0x52,0xf4,0xc8,0xf9, +0x1,0x9,0x5c,0xc,0x71,0xa,0xc4,0xf,0x90,0xe,0x7,0x12, +0xbe,0x1f,0xf6,0x1a,0xed,0x3,0xec,0xf4,0xbd,0xf7,0x30,0x7, +0x67,0x14,0x1,0x17,0xe4,0x13,0xc7,0xf,0x1a,0x11,0x34,0x18, +0x29,0x1a,0xef,0x11,0xed,0x4,0xd5,0x1,0xba,0xf,0x29,0x1a, +0xff,0x13,0xae,0xf,0x7f,0x1a,0x44,0x28,0x80,0x27,0x9,0x19, +0x73,0x8,0x20,0xf9,0xc,0xf8,0xf2,0xc,0x28,0x16,0x4c,0x5, +0xa7,0xfc,0xcf,0x3,0x40,0xc,0xaf,0x16,0x3c,0x14,0x59,0xff, +0xe0,0xf2,0x7e,0xf1,0x55,0xee,0xcb,0xf0,0xb5,0xf3,0xc7,0xec, +0xa3,0xea,0x19,0xf3,0x89,0xf9,0x1d,0x0,0xb0,0xd,0xf8,0x18, +0x44,0x1f,0x8e,0x2a,0x29,0x31,0x45,0x24,0x7b,0x15,0xce,0x14, +0x66,0x14,0xb9,0xb,0x28,0x2,0x7d,0x1,0x85,0xc,0x60,0x13, +0x74,0x10,0x91,0x13,0x3c,0x19,0xa8,0x18,0xfd,0x17,0xb2,0x11, +0x18,0x5,0xbc,0xfa,0x49,0xeb,0x58,0xdd,0x96,0xdf,0x1d,0xe6, +0x56,0xec,0xb8,0xf5,0xc5,0xf5,0xad,0xf1,0x86,0xf6,0x43,0xf8, +0xd5,0xf1,0x19,0xf1,0x47,0xf7,0xc3,0xf4,0xf3,0xe3,0x57,0xd8, +0x41,0xe1,0x11,0xf2,0x88,0xfc,0xd6,0x1,0xc7,0x4,0x9d,0x2, +0x62,0xfa,0xc5,0xf3,0xb5,0xf5,0x58,0xfd,0xbc,0xfe,0xa2,0xef, +0x2b,0xe3,0xee,0xef,0xfe,0xfe,0xee,0xfe,0xb9,0x0,0x93,0x2, +0xc6,0x1,0x33,0x5,0x24,0xfb,0x99,0xe9,0xbc,0xeb,0xeb,0xef, +0x26,0xea,0x36,0xf0,0x80,0xfd,0xf9,0x1,0xfc,0x2,0xab,0x6, +0xd9,0x9,0x73,0x4,0xa5,0xf8,0x1a,0xf1,0x86,0xe9,0x8c,0xdf, +0x33,0xdd,0x3e,0xdf,0x48,0xe0,0x98,0xe6,0x5e,0xef,0x31,0xf1, +0x26,0xef,0xce,0xf0,0x17,0xf3,0xc4,0xf2,0x41,0xf3,0x37,0xf1, +0x93,0xee,0xca,0xf4,0x67,0xf7,0xe1,0xef,0x55,0xf3,0x9f,0xfe, +0x9c,0xff,0x3f,0xff,0xc6,0x1,0x30,0xff,0xaa,0xfa,0x8,0xf5, +0x0,0xf0,0xce,0xf3,0xa7,0xfb,0x4a,0xfe,0xf2,0xfc,0xdd,0xfa, +0x70,0xf9,0x9f,0xfa,0x2d,0x1,0x9d,0x9,0x1d,0x8,0x6,0xfc, +0xfe,0xf2,0xe5,0xf2,0xe3,0xf6,0xc7,0xf9,0x7a,0xf9,0x3b,0xf9, +0xa6,0xfb,0xf3,0xfa,0x2b,0xf4,0x69,0xf0,0x15,0xf3,0x67,0xf3, +0x2d,0xf2,0x31,0xf5,0x72,0xf5,0x4f,0xf1,0x9f,0xf2,0x8a,0xf9, +0x76,0xfe,0x1e,0xfd,0x45,0xf7,0x85,0xf4,0xab,0xf6,0x80,0xf9, +0xb,0xfb,0x5f,0xf6,0x7e,0xec,0xc3,0xe8,0xb1,0xea,0x6a,0xeb, +0xd0,0xef,0xa7,0xf7,0x50,0xfa,0x7e,0xfb,0x3a,0x1,0xdc,0x2, +0x10,0xfb,0x1d,0xf4,0x2a,0xf4,0xe9,0xf5,0x82,0xf7,0x30,0xfb, +0x5f,0x0,0x1f,0x7,0xc8,0xf,0x30,0x17,0xfd,0x19,0xaa,0x17, +0xfd,0x10,0xea,0x7,0x69,0x0,0x94,0xfc,0x84,0xfa,0x7f,0xf9, +0xaf,0xf9,0xb1,0xf8,0x64,0xf7,0x4d,0xfb,0x6b,0x3,0x2f,0x6, +0xaf,0x1,0x22,0xff,0xd7,0xfe,0xc,0xfa,0x7e,0xf5,0x72,0xf6, +0x17,0xf9,0xea,0xf9,0xa,0xf6,0x40,0xf1,0x57,0xf3,0xcf,0xf6, +0x73,0xf8,0xfe,0xfe,0xc4,0x4,0x5e,0x3,0x84,0x0,0xff,0xfe, +0xdf,0xfe,0x9f,0xfc,0xe2,0xf2,0x79,0xe9,0x45,0xe9,0xcc,0xef, +0xd6,0xf8,0x94,0x1,0xac,0xb,0x40,0x16,0x53,0x18,0xa,0x13, +0x5e,0xb,0xf3,0xfe,0x2e,0xf5,0xb1,0xf3,0xe0,0xf2,0xd5,0xf1, +0xc5,0xf2,0xc3,0xf4,0x43,0xf9,0xde,0xfc,0x2f,0xfe,0x19,0x0, +0xc1,0xff,0x16,0xff,0x70,0x0,0x13,0xfe,0x6e,0xfb,0x4d,0xfc, +0xcf,0xf9,0x8a,0xf6,0xa1,0xf9,0x8f,0xff,0x6b,0x3,0x62,0x3, +0x40,0x2,0xb,0x6,0xb7,0xa,0xfc,0x7,0x1a,0x2,0x60,0xff, +0x64,0xfc,0x31,0xfa,0xf,0xff,0x4f,0x4,0x81,0x1,0x14,0xfe, +0x16,0x1,0x93,0x5,0x92,0x4,0xe7,0xfe,0x80,0xfd,0x60,0x1, +0x29,0x3,0x47,0x6,0xef,0xc,0xa2,0xd,0xc,0x9,0x20,0x7, +0x8c,0x4,0xee,0xfb,0x41,0xf1,0x40,0xeb,0xd0,0xea,0x83,0xee, +0xf3,0xf4,0x19,0xf9,0x16,0xfb,0xe8,0xfe,0xc4,0x0,0xb9,0x0, +0x38,0x2,0x58,0x1,0xa8,0xff,0x3a,0x0,0x69,0x1,0xe1,0x5, +0x53,0x8,0xdb,0x3,0xe4,0x1,0x5a,0x1,0x33,0xff,0x5b,0x2, +0x8e,0x4,0xcc,0x4,0x6d,0xb,0x12,0xe,0x6d,0xa,0xf7,0xa, +0x85,0x8,0x85,0x0,0x2b,0xfe,0x5e,0x2,0x98,0x5,0x95,0x3, +0x72,0x3,0x81,0xa,0x30,0xe,0xd6,0xd,0x89,0x11,0x75,0x13, +0x3a,0x12,0x9f,0x11,0x1c,0xe,0xab,0x9,0xe7,0x5,0xa8,0x1, +0x74,0x1,0x7a,0x3,0xc0,0x5,0x69,0xc,0xe3,0x12,0x85,0x15, +0xed,0x17,0x69,0x19,0xea,0x18,0xdc,0x15,0xfb,0xf,0x44,0xc, +0xc5,0xd,0xd5,0x12,0x68,0x16,0x94,0x14,0x83,0x13,0x6,0x15, +0x7b,0x10,0xc5,0x6,0xcf,0xfe,0x3c,0xfa,0x2a,0xf8,0x34,0xf7, +0xfb,0xfb,0x70,0x7,0xc2,0xe,0x1a,0x11,0x20,0x12,0xa2,0xc, +0x29,0x6,0x59,0x4,0x4a,0xff,0x19,0xfa,0xb3,0xfb,0x53,0xfe, +0xc7,0x0,0x3b,0x6,0xb5,0xd,0x94,0x15,0x4a,0x17,0x46,0x10, +0x79,0x9,0x69,0x4,0x3e,0xfa,0x7f,0xec,0x43,0xe1,0x9c,0xdb, +0x88,0xdc,0xa9,0xe2,0xd4,0xec,0x5a,0xfa,0xf1,0x6,0xf3,0xe, +0x58,0x14,0x65,0x17,0x89,0x13,0xa3,0x8,0x7d,0xfa,0x31,0xea, +0xa7,0xdd,0xc3,0xdd,0x5f,0xe7,0x7d,0xf3,0x12,0x2,0xc5,0x11, +0x4d,0x20,0x4,0x28,0xb1,0x20,0xd2,0x14,0x4,0xf,0x1d,0x2, +0xa5,0xf0,0xc4,0xea,0x1a,0xe8,0xe7,0xe7,0x6f,0xf4,0xd8,0xff, +0x10,0x5,0x23,0xe,0xf6,0x13,0xa7,0x13,0x59,0xf,0xf,0x2, +0xd7,0xf5,0xfe,0xef,0x41,0xe7,0x3,0xe2,0xc6,0xe2,0xf7,0xe1, +0xbc,0xe8,0xfe,0xf7,0xd2,0xff,0xe0,0xff,0xd3,0x0,0xf0,0x0, +0x98,0xfb,0x2f,0xf5,0x65,0xf3,0xda,0xf0,0x80,0xed,0xe2,0xf0, +0xad,0xf5,0xc8,0xf8,0xc3,0xfd,0xbc,0xff,0x7c,0x2,0x71,0x8, +0x80,0x4,0x6e,0xfc,0x38,0xfd,0xcf,0xfd,0x71,0xfb,0xaf,0xfb, +0x1f,0xfb,0x33,0xfb,0x12,0xfe,0x60,0x0,0x25,0x1,0xfc,0xfc, +0x19,0xf6,0x58,0xf5,0xd5,0xf6,0xe5,0xf5,0xce,0xf8,0x35,0xfe, +0x77,0xff,0x89,0xfd,0x7c,0xfb,0xec,0xfb,0x69,0xff,0x59,0x1, +0xfd,0xfe,0x98,0xfa,0x81,0xf6,0x2d,0xf4,0x5,0xf5,0xfa,0xf9, +0xf1,0x0,0x78,0x5,0xf5,0x8,0x85,0xe,0x55,0x11,0xf2,0xf, +0x64,0xe,0xab,0x9,0x41,0x3,0x90,0x2,0x3e,0x3,0x2,0x2, +0x6d,0x3,0x37,0x5,0xa9,0x7,0x37,0xd,0x72,0xf,0xcc,0xe, +0x31,0x10,0x6c,0xf,0x2f,0xb,0x79,0x5,0x27,0xff,0xbc,0xfc, +0xc1,0xfd,0x44,0xfe,0x91,0xfe,0x2f,0xfe,0xb5,0xfe,0xdb,0x1, +0x5c,0x4,0x8a,0x4,0xb0,0x0,0xb,0xfb,0xaf,0xfa,0x50,0xfa, +0x29,0xf5,0xdf,0xf3,0xf,0xf6,0x2f,0xf6,0x6f,0xf6,0x31,0xf7, +0x93,0xf9,0xf,0xfd,0xaf,0xfd,0x56,0xff,0x8,0x2,0x6,0x0, +0x69,0xfd,0x64,0xfd,0x50,0xfe,0x2b,0xff,0xad,0xfc,0xab,0xfb, +0xe2,0xff,0xc5,0xff,0xea,0xfc,0x38,0x0,0x96,0x5,0xa,0xa, +0x8a,0xc,0x54,0x9,0x35,0x3,0xce,0xfb,0x4f,0xf4,0xcf,0xf1, +0x91,0xef,0x7d,0xe7,0xac,0xde,0xd2,0xd9,0x55,0xd8,0x4f,0xd6, +0x4e,0xd2,0x64,0xd2,0x6,0xd7,0x4e,0xd9,0x40,0xd9,0x2d,0xdc, +0x3a,0xe4,0x7b,0xed,0x89,0xf4,0xde,0xfb,0x17,0x0,0x54,0xfd, +0xdd,0xfc,0x21,0x3,0x4c,0xb,0x85,0x15,0x76,0x1f,0x25,0x26, +0x3e,0x2c,0xc7,0x30,0x94,0x34,0x2e,0x39,0x22,0x37,0xb1,0x2d, +0x6e,0x24,0xa3,0x1b,0x17,0x13,0xd,0xd,0x8d,0x9,0x5e,0x9, +0x1f,0xa,0x51,0x9,0x8f,0xa,0x5a,0xd,0x72,0xd,0x7,0xc, +0xce,0x9,0x7d,0x4,0xe4,0xfc,0xf1,0xf5,0xbc,0xf0,0x6b,0xed, +0x32,0xed,0x8,0xef,0xfb,0xef,0x90,0xf1,0x92,0xf5,0x5c,0xf9, +0xa2,0xfb,0x83,0xfc,0x18,0xfc,0xf1,0xfb,0xe0,0xfb,0x94,0xfb, +0xcc,0xfc,0xfd,0xff,0xf2,0x4,0x63,0x9,0xdc,0xa,0x81,0xd, +0x21,0x13,0xda,0x15,0x73,0x14,0x49,0x12,0x9b,0xf,0x7b,0xc, +0x25,0xb,0x7,0xd,0x96,0xe,0x5d,0xb,0x8e,0x6,0x9f,0x3, +0xbf,0xff,0x1b,0xfb,0xab,0xf8,0xef,0xf6,0x60,0xf3,0x75,0xef, +0xd6,0xee,0x6f,0xf0,0x66,0xef,0x27,0xed,0xe9,0xed,0x45,0xf0, +0x5,0xf2,0xab,0xf2,0x1d,0xf1,0xe1,0xed,0x40,0xeb,0x2f,0xea, +0x83,0xea,0xbe,0xec,0x71,0xef,0xe2,0xef,0x44,0xf1,0xd,0xf6, +0x33,0xf9,0x3e,0xfb,0x4c,0xff,0xa8,0x0,0xd8,0xff,0xd4,0x0, +0xac,0x0,0xa4,0x0,0x91,0x2,0x8d,0x1,0x33,0xff,0xf2,0xff, +0x68,0x1,0x9b,0x1,0xf5,0x0,0xf1,0x0,0x8e,0x1,0x36,0xff, +0xe9,0xfb,0xe4,0xfb,0x2a,0xfb,0x9b,0xf7,0xed,0xf4,0x34,0xf3, +0x9c,0xf0,0x7c,0xee,0x9b,0xef,0xf8,0xf2,0x17,0xf4,0xae,0xf2, +0xf4,0xf0,0x88,0xef,0xd1,0xef,0xaf,0xf0,0x5a,0xf1,0xf3,0xf4, +0x8c,0xf7,0x67,0xf4,0x16,0xf2,0xd5,0xf2,0xe9,0xf0,0x3d,0xef, +0xf6,0xf2,0x41,0xf7,0xa7,0xf7,0xb1,0xf8,0xb1,0xfd,0x1f,0x2, +0x7a,0x4,0x3,0x9,0x1e,0xe,0x68,0xf,0xf2,0xe,0x4c,0xf, +0xf,0xf,0x97,0xd,0x88,0xc,0x6d,0xd,0xd1,0xf,0x74,0x12, +0xe2,0x14,0x7,0x16,0x4,0x15,0x52,0x13,0x3f,0x12,0xc9,0x11, +0x9a,0x12,0xef,0x13,0x7e,0x13,0xff,0x12,0xd9,0x14,0x8f,0x15, +0x7b,0x13,0x57,0x12,0xeb,0x11,0xe3,0x10,0xe6,0x11,0x35,0x13, +0x33,0x11,0x4e,0xf,0x7f,0x10,0x8,0x12,0x90,0x11,0xda,0xe, +0x5c,0xb,0x2f,0xa,0x6e,0xc,0xa9,0x10,0xc9,0x14,0xd,0x16, +0x9b,0x12,0xdc,0xa,0x42,0x1,0x91,0xfa,0x6c,0xf9,0xad,0xfb, +0x6f,0x1,0x42,0xb,0xcd,0x12,0x8,0x15,0xe6,0x16,0x10,0x18, +0xb,0x16,0x9d,0x15,0x55,0x17,0x3d,0x14,0xae,0xb,0x81,0x3, +0x5a,0xff,0x5a,0x2,0x75,0xf,0x84,0x21,0x5a,0x2e,0x45,0x32, +0x43,0x2d,0xc8,0x1f,0x2b,0x11,0xc5,0x7,0x83,0x1,0xdf,0xfe, +0x3,0x1,0xcd,0x1,0x85,0xff,0xf1,0xff,0xe6,0x3,0xe3,0x7, +0x2e,0xb,0xc2,0xd,0xe3,0xb,0x75,0x2,0x9b,0xf7,0xbf,0xf3, +0x51,0xf5,0x7f,0xf9,0x3b,0x2,0xbd,0x9,0x8d,0x8,0x64,0x5, +0x74,0x6,0xe8,0x4,0xb2,0xfe,0x29,0xf9,0x80,0xf1,0x4e,0xe5, +0x63,0xdc,0xbf,0xd9,0xdf,0xd6,0x3f,0xd2,0xa7,0xcf,0xd5,0xcc, +0xdc,0xc5,0x7a,0xbf,0xf7,0xbe,0x70,0xc1,0x1a,0xc6,0xcc,0xd0, +0xd8,0xdd,0x67,0xe5,0x77,0xe8,0xb5,0xec,0x49,0xf2,0x78,0xf8, +0x27,0x2,0xee,0xc,0x5c,0x13,0xa,0x19,0x16,0x21,0xe,0x26, +0xd1,0x26,0x37,0x26,0x32,0x24,0x42,0x23,0x69,0x24,0xef,0x23, +0xf4,0x20,0x40,0x1b,0x96,0x13,0xaf,0xd,0xc7,0x6,0xd7,0xfc, +0x47,0xf6,0xb9,0xf0,0x10,0xe7,0xf0,0xe1,0x16,0xe3,0xe4,0xe1, +0xb6,0xe1,0xa6,0xe4,0xef,0xe1,0x64,0xdb,0x2,0xd7,0x60,0xd0, +0x6,0xc9,0xdd,0xc8,0x7a,0xcd,0x9c,0xd2,0x49,0xdb,0xd0,0xe6, +0x1f,0xf0,0xb9,0xf7,0xf,0xff,0x40,0x3,0x2f,0x5,0x4f,0x8, +0x7e,0xb,0x89,0xe,0x4d,0x12,0x31,0x15,0x6b,0x18,0xca,0x1b, +0x39,0x1d,0xc5,0x20,0xb3,0x24,0xc1,0x20,0xec,0x17,0xc8,0xe, +0x7f,0x4,0xf5,0xfd,0x69,0xfc,0x63,0xfa,0x1c,0xf7,0x56,0xf1, +0x89,0xe8,0x3b,0xe2,0xbb,0xdf,0x8e,0xde,0x0,0xdf,0x97,0xdf, +0xaa,0xdd,0x89,0xda,0x90,0xd9,0x6,0xdb,0x23,0xde,0x3a,0xe5, +0x59,0xee,0xd9,0xf3,0x1c,0xf7,0xb4,0xf9,0x6c,0xfa,0x4a,0xfc, +0x33,0xff,0x5f,0x2,0x99,0x9,0x64,0x12,0x32,0x1a,0x91,0x23, +0x3f,0x2a,0x4c,0x2b,0xcb,0x2a,0x57,0x29,0x33,0x27,0x5,0x25, +0xc8,0x21,0xee,0x1f,0x41,0x1f,0xf4,0x1c,0x53,0x1b,0x4a,0x1b, +0x33,0x1b,0x31,0x1a,0xdf,0x15,0x9d,0xd,0x8f,0x1,0x5,0xf3, +0x68,0xe9,0xc5,0xe7,0x81,0xea,0xc1,0xef,0xd1,0xf1,0xf3,0xed, +0xfb,0xeb,0x11,0xee,0x89,0xf2,0x2d,0xfc,0x2c,0x5,0xed,0x5, +0xe2,0x1,0x51,0xfb,0x1a,0xf3,0x68,0xf0,0x11,0xf6,0xb,0xfe, +0x1b,0x2,0xee,0x1,0x20,0x2,0x3e,0x5,0xa0,0xb,0x2c,0x15, +0x4e,0x1b,0x42,0x17,0x1d,0xc,0x80,0x0,0xc9,0xfa,0x1c,0xfe, +0x66,0x5,0xbf,0xc,0xa5,0x12,0xf1,0x12,0x32,0x11,0x5c,0x12, +0x3e,0x12,0x34,0x11,0x81,0x10,0x4e,0xa,0xf7,0xff,0x47,0xf6, +0x5f,0xee,0xac,0xec,0xbf,0xf1,0x15,0xfa,0x56,0x3,0xf5,0x6, +0x3e,0x4,0x5b,0x1,0x8c,0xfe,0x1f,0xfe,0x9d,0x0,0xf,0xfe, +0xc2,0xf6,0x7c,0xee,0x3,0xe6,0x9,0xe6,0x39,0xf1,0x37,0xff, +0xa8,0xb,0xc9,0x11,0x7d,0xf,0x7e,0xb,0xbc,0x9,0x5,0xb, +0xe1,0xd,0x97,0xc,0x35,0x6,0xc0,0xfc,0x66,0xf3,0xab,0xf1, +0x85,0xf8,0x18,0x2,0x3f,0x9,0x52,0x9,0xf0,0x4,0xb3,0x2, +0xec,0x4,0xfe,0xc,0x12,0x14,0x7a,0x10,0x11,0x7,0x66,0xfd, +0xc6,0xf4,0x38,0xf5,0x53,0xfd,0x74,0x1,0x59,0x0,0xc1,0xfd, +0x94,0xfb,0xca,0xfc,0x89,0x0,0x6a,0x4,0x3f,0x7,0xc9,0x5, +0xfc,0xff,0xcb,0xf9,0x86,0xf4,0x62,0xf1,0xf3,0xf2,0x16,0xf7, +0xa5,0xf8,0xa2,0xf6,0xa,0xf3,0xdf,0xef,0x15,0xf0,0xeb,0xf3, +0x25,0xf7,0xfb,0xf6,0x75,0xf3,0xf1,0xed,0x3e,0xeb,0x92,0xef, +0x92,0xf7,0xab,0xfc,0x9f,0xfd,0xd3,0xfc,0xf5,0xfb,0xc6,0xfd, +0xca,0x3,0x7e,0xa,0xaa,0xd,0x9a,0xb,0x55,0x6,0xa2,0x2, +0xc2,0x1,0x62,0x4,0xd8,0xa,0x3c,0xc,0xa8,0x4,0x97,0xfe, +0x46,0xfd,0x6e,0xfd,0x4d,0x2,0x1c,0x9,0x1b,0xa,0xf3,0x5, +0x42,0x1,0xb1,0x0,0xec,0x5,0xaa,0xb,0x69,0xc,0x59,0x5, +0x4,0xf8,0x11,0xed,0x68,0xe9,0x69,0xea,0x70,0xee,0x34,0xf3, +0xd9,0xf5,0xce,0xf7,0x82,0xfa,0x92,0xfd,0xba,0x0,0x4,0x2, +0x44,0x0,0xd7,0xfd,0x58,0xfc,0x15,0xfa,0x1a,0xf6,0xfe,0xf2, +0x33,0xf2,0x1b,0xf2,0x25,0xf4,0xf7,0xf9,0xff,0xfe,0xd3,0x1, +0x42,0x7,0xba,0xd,0x76,0x11,0xf4,0x14,0x95,0x16,0xeb,0x11, +0xfd,0x9,0x4b,0x2,0x3b,0xfc,0xa3,0xf9,0x3f,0xf8,0xe,0xf7, +0xe2,0xf6,0x46,0xf5,0x78,0xf6,0xd9,0xfe,0x7d,0x6,0x62,0xa, +0x84,0xd,0x49,0xb,0xdb,0x4,0x60,0x1,0xd0,0xfd,0xfb,0xf5, +0x2f,0xed,0xf3,0xe5,0xc6,0xe0,0xd6,0xe0,0x1f,0xe8,0xd7,0xf1, +0xf5,0xf9,0xca,0x1,0x7c,0x8,0xc6,0xd,0xe5,0x11,0xaa,0xf, +0x8d,0x8,0x86,0x2,0xe5,0xfa,0x2f,0xf4,0xe5,0xf3,0x72,0xf3, +0x73,0xf1,0xbf,0xf3,0xd4,0xf6,0x2a,0xf9,0xb,0xff,0x89,0x5, +0xa6,0x8,0xdb,0x9,0x4f,0xa,0x59,0xa,0x99,0xa,0xa8,0x9, +0xbb,0x6,0xb1,0x4,0x2b,0x4,0x6f,0x3,0xf0,0x5,0x9b,0xc, +0x76,0x11,0x5f,0x13,0x1,0x12,0x61,0xb,0xf1,0x6,0xf1,0x7, +0x14,0x6,0xd3,0x1,0xa6,0xfe,0x30,0xf8,0xa1,0xf1,0x2,0xf1, +0x54,0xf2,0xd2,0xf2,0xc7,0xf2,0x86,0xef,0xaa,0xea,0xd2,0xe8, +0xd3,0xe9,0x33,0xec,0x91,0xef,0x34,0xf2,0xf0,0xf3,0x54,0xf7, +0x5e,0xfc,0x7b,0x0,0x6a,0x3,0xbd,0x5,0xeb,0x6,0xc3,0x6, +0x5d,0x5,0x53,0x4,0x18,0x4,0x69,0x1,0xe1,0xfd,0x50,0xfe, +0xbb,0xff,0x5b,0x0,0x20,0x5,0x25,0xc,0x21,0x10,0x95,0x14, +0x35,0x1b,0x5b,0x1d,0xab,0x1a,0xc4,0x17,0x2e,0x11,0x16,0x7, +0xc2,0x1,0x7b,0xff,0x2c,0xfc,0x79,0xfb,0x57,0xfa,0x6f,0xf6, +0xa4,0xf6,0x40,0xfa,0x43,0xfd,0x82,0x1,0x6b,0x3,0x39,0xff, +0x93,0xf9,0x60,0xf5,0xf9,0xf0,0x7c,0xec,0xca,0xe9,0x6,0xe9, +0xb8,0xe9,0xa,0xed,0xdd,0xf1,0xaf,0xf6,0x63,0xfd,0xda,0x3, +0xe5,0x6,0x14,0x9,0xf3,0x9,0xd3,0x8,0xd1,0x9,0x7f,0xa, +0x76,0x7,0x76,0x4,0x0,0x2,0xec,0x1,0x29,0x9,0xed,0x11, +0x7a,0x16,0xd7,0x18,0xa,0x16,0x1e,0xf,0x5a,0xc,0x3a,0xc, +0xa9,0xa,0xc0,0x7,0x3b,0x0,0x9f,0xf6,0x50,0xf2,0x12,0xf2, +0xf6,0xf2,0x32,0xf6,0xa5,0xfa,0xdf,0xfb,0xa6,0xf8,0x59,0xf6, +0x8f,0xf6,0xd5,0xf5,0x2a,0xf7,0xac,0xf9,0xf6,0xf5,0xe9,0xf0, +0x2b,0xf2,0x1e,0xf6,0x6,0xfa,0xdc,0xfe,0xb8,0x2,0x87,0x3, +0x2b,0x3,0xfe,0x4,0x3e,0x8,0xad,0xb,0x7,0xf,0xec,0xd, +0xde,0x8,0x1,0x7,0x5f,0x8,0x1a,0x9,0x70,0x9,0xaa,0xa, +0x2d,0xc,0x31,0xb,0x8f,0x8,0x40,0x7,0x8d,0x4,0x43,0x0, +0x31,0xfe,0x1d,0xfd,0x40,0xfd,0x8c,0x0,0xc7,0x3,0x4c,0x5, +0x5e,0x5,0xe2,0x1,0x17,0xfc,0xdb,0xf7,0xce,0xf4,0xfe,0xef, +0xcb,0xea,0x83,0xe9,0xd6,0xea,0x7d,0xec,0x5b,0xf2,0x36,0xfb, +0x5b,0x0,0x5c,0x3,0xf8,0x5,0x81,0x4,0xb1,0x2,0x8e,0x3, +0x15,0x1,0xc5,0xfc,0x55,0xfc,0xae,0xfc,0x2f,0xfd,0x34,0x1, +0x8d,0x6,0x6c,0xa,0x2d,0xc,0x13,0xd,0xbe,0x10,0x53,0x16, +0xbe,0x19,0xfe,0x19,0xb1,0x15,0xa5,0xb,0xfa,0xff,0x41,0xf8, +0xdf,0xf5,0x88,0xf7,0x48,0xfb,0xbf,0xfd,0x36,0xfc,0x61,0xf7, +0xf4,0xf2,0x8f,0xf2,0xa,0xf4,0xe6,0xf2,0x1b,0xef,0xa,0xe9, +0xb0,0xe3,0x12,0xe6,0xc4,0xef,0xed,0xfb,0xb2,0x7,0x3f,0xe, +0xbf,0xe,0x30,0xc,0xd1,0x7,0xfe,0x5,0x77,0x7,0x69,0x6, +0xf7,0x2,0x5b,0x0,0x8,0xff,0x27,0x1,0xb3,0x7,0xe9,0xe, +0xbc,0x12,0x53,0x12,0xfb,0xc,0x1d,0x3,0x15,0xfc,0x3d,0xfc, +0x6f,0xfd,0x6f,0xfc,0xc5,0xfa,0xf9,0xf7,0x7e,0xf6,0xa,0xfa, +0xc,0x1,0x14,0x7,0xe0,0x8,0xc,0x4,0xf6,0xf8,0x86,0xef, +0xfa,0xed,0x2d,0xf1,0x8e,0xf7,0x4c,0xfe,0xfb,0xfd,0xa4,0xfa, +0xdf,0xfc,0x22,0x4,0xe9,0xd,0xd5,0x15,0xbc,0x17,0x64,0x15, +0x5e,0x10,0x56,0xa,0x90,0x6,0xc4,0x5,0x0,0x6,0x15,0x3, +0x31,0xfd,0x4a,0xf9,0x5,0xf8,0x8a,0xfa,0x78,0x1,0xc8,0x5, +0x5f,0x4,0x57,0xff,0x6,0xf7,0x47,0xf1,0xf5,0xf2,0x1a,0xf5, +0xa0,0xf2,0x91,0xef,0x51,0xed,0xe1,0xeb,0xe,0xf0,0xe3,0xf9, +0xa4,0x4,0xcc,0xe,0xf4,0x15,0x60,0x1a,0xfd,0x1e,0x18,0x1f, +0x33,0x19,0xbb,0x11,0x5e,0x7,0x16,0xfd,0xba,0xf7,0xd4,0xf3, +0x26,0xf2,0xf8,0xf3,0x6a,0xf5,0xaf,0xf8,0xf3,0xfd,0xf0,0x0, +0xcd,0x3,0x21,0x6,0xcb,0x4,0x36,0x4,0x8,0x6,0x2e,0x5, +0xf6,0x1,0xa9,0x0,0x12,0x0,0xca,0xfc,0x1b,0xf9,0xbc,0xf8, +0x5e,0xf9,0x53,0xf9,0x6,0xfc,0x69,0xff,0x10,0xff,0xfd,0xfe, +0x53,0x0,0xec,0xff,0x93,0x1,0xed,0x4,0xbe,0x5,0x51,0x7, +0x17,0xa,0x18,0xc,0xfc,0xc,0x89,0x8,0xf4,0x1,0x8a,0xfe, +0x95,0xfa,0x6b,0xf9,0xbc,0xfc,0x0,0xfb,0xca,0xf6,0xc6,0xf7, +0x4f,0xfa,0x99,0xfd,0xc0,0x2,0xef,0x3,0xc9,0xff,0xff,0xfa, +0x98,0xf5,0x4b,0xf1,0x51,0xf3,0x4b,0xf5,0x5e,0xf2,0x2b,0xf3, +0x8d,0xf5,0x47,0xf4,0x2a,0xf7,0x7,0xfd,0x15,0x1,0x86,0x6, +0x2b,0xb,0x46,0xe,0xc0,0xf,0x34,0xc,0x45,0x8,0xe,0x4, +0x16,0xfc,0xf5,0xf5,0x71,0xf1,0x82,0xee,0xd9,0xf1,0xab,0xf5, +0x8,0xf8,0x94,0xfc,0xf2,0x0,0x6e,0x8,0x2d,0x13,0x13,0x19, +0x66,0x1b,0x2d,0x1c,0x5a,0x19,0x3d,0x17,0x1b,0x17,0xd6,0x14, +0xca,0x10,0xfc,0xb,0x81,0x5,0xe3,0xff,0x6e,0xfe,0xc8,0xfe, +0x9c,0xfd,0x2,0xfd,0xf8,0xfe,0xc6,0x0,0x33,0x1,0x63,0x3, +0x99,0x7,0x60,0xa,0x88,0xb,0xac,0xb,0x22,0xa,0x8f,0x7, +0x8d,0x2,0x4a,0xfb,0xb7,0xf4,0xc1,0xed,0xa7,0xe8,0xaa,0xe9, +0xb1,0xec,0xf1,0xef,0x11,0xf7,0xfd,0xff,0x5e,0x5,0x55,0x7, +0xa8,0x9,0x2,0x9,0xdc,0x2,0xea,0xfe,0x6b,0xfb,0xf5,0xf2, +0x7e,0xed,0xcf,0xeb,0x21,0xeb,0x58,0xf0,0x4b,0xf7,0x31,0xfe, +0xc3,0x8,0x70,0x10,0x5,0x14,0x7e,0x16,0xb3,0x14,0xcd,0x11, +0x3f,0xf,0x47,0xa,0x36,0x6,0xb5,0x1,0xd6,0xfa,0x49,0xf7, +0xc4,0xf6,0x32,0xf5,0x95,0xf4,0x5c,0xf6,0x7e,0xf8,0x80,0xfb, +0xf0,0x0,0xc,0x7,0xc6,0xc,0xc2,0x10,0xf0,0xf,0x38,0xd, +0x17,0xb,0xe,0x6,0xcf,0xfe,0xfa,0xf7,0xf4,0xf1,0xff,0xec, +0xe6,0xe8,0x9b,0xe9,0xd2,0xee,0x1,0xf2,0xc5,0xf7,0xc5,0x2, +0x3b,0x9,0x47,0xb,0xba,0xd,0x9,0xc,0xac,0x4,0x71,0xfb, +0x9f,0xf1,0x7,0xe8,0x68,0xe2,0xf9,0xe2,0x47,0xe6,0xee,0xea, +0x3a,0xf3,0x84,0xfb,0x3c,0xff,0x36,0x3,0x77,0xa,0x51,0xb, +0x1f,0x3,0xa5,0xfd,0x93,0xfa,0xf6,0xf4,0x73,0xf5,0xe5,0xf9, +0xb8,0xf8,0x2d,0xf7,0x9,0xf8,0xb5,0xf8,0x71,0xfb,0x77,0xfe, +0xa1,0xff,0x2d,0x0,0x4e,0xff,0x38,0xfd,0xd4,0xfb,0x8e,0xfc, +0x78,0xfd,0xe7,0xfb,0x4c,0xfb,0xcb,0xfb,0xba,0xf9,0x73,0xf9, +0xf8,0xfb,0xd3,0xfa,0x41,0xf8,0x44,0xf8,0xe7,0xf4,0x84,0xef, +0xec,0xf2,0x85,0xfa,0x9,0xff,0xdc,0x6,0xdb,0xb,0xbd,0x7, +0x9d,0x5,0x1a,0x1,0xbc,0xf5,0x80,0xf0,0x4,0xed,0xa7,0xe7, +0xb6,0xec,0xb8,0xf7,0xb3,0xff,0x16,0x6,0x3f,0xb,0x65,0x10, +0x4e,0x15,0x31,0x1a,0x68,0x1d,0xda,0x17,0xcf,0xd,0x5,0x7, +0xd9,0x3,0x66,0x3,0xf3,0xfd,0xad,0xf9,0x5c,0x2,0x42,0x5, +0xde,0x0,0xf0,0x9,0x1a,0xe,0xdb,0x2,0x70,0x1,0x6a,0x5, +0x9f,0xfd,0x32,0xf7,0x16,0xfb,0x81,0xfc,0x68,0xf7,0xcf,0xf8, +0x2d,0x1,0x41,0x3,0x94,0x3,0x60,0xa,0x89,0xf,0x66,0x12, +0x32,0x16,0xb1,0x13,0x62,0xd,0x3d,0xb,0xe3,0x8,0xb8,0x3, +0x5a,0x0,0x92,0xff,0xc0,0xff,0xa5,0x1,0x55,0x6,0x8c,0x9, +0x6a,0x8,0xcb,0x9,0x6b,0xd,0xdb,0xc,0x45,0xc,0x55,0x9, +0xd2,0xff,0xf,0xfc,0x82,0x0,0xe0,0x5,0xd9,0xd,0x57,0x14, +0xe,0x14,0xe6,0xc,0x22,0x2,0x9e,0xfe,0x74,0xfc,0xfa,0xf2, +0x92,0xf2,0xd4,0xf8,0x11,0xf6,0xe8,0xf4,0x41,0xfc,0xdc,0x5, +0x77,0xa,0x15,0x7,0x14,0x6,0xe7,0xfe,0x57,0xea,0x49,0xe7, +0x58,0xf3,0x94,0xf2,0x19,0xf6,0x41,0x4,0xd4,0x8,0x3e,0xa, +0xca,0x10,0x30,0x16,0x98,0x15,0x5f,0xc,0x17,0x3,0xb1,0xfe, +0x6c,0xf7,0xc0,0xf3,0x26,0xfe,0xaa,0xb,0xfc,0xf,0x46,0x11, +0x6a,0x15,0x37,0x15,0x49,0x12,0x8c,0x16,0xb9,0x15,0x84,0x2, +0x88,0xf3,0xa,0xf7,0x3f,0xf5,0x40,0xef,0x4a,0xf8,0x62,0xf6, +0xe6,0xe4,0x69,0xec,0x9c,0xf9,0x46,0xed,0x32,0xeb,0xb3,0xf5, +0xef,0xe8,0x72,0xd8,0x6,0xde,0x8b,0xe9,0xc3,0xed,0x4e,0xf0, +0x8e,0xf9,0xd2,0x1,0xa9,0xfc,0x86,0xfb,0x50,0xc,0x60,0x15, +0x9d,0xc,0x1,0xa,0xa1,0xb,0x1c,0x1,0xa2,0xfe,0x93,0xf, +0xa9,0x16,0xd5,0x11,0x4e,0x17,0xc0,0x14,0x8a,0x2,0xff,0x5, +0x28,0x16,0x5,0xb,0xc1,0xfb,0x58,0xff,0x97,0xf9,0x9c,0xed, +0x99,0xf5,0x59,0x5,0xfc,0xa,0x30,0x6,0xc7,0xfe,0x88,0xfe, +0x57,0xfc,0x6f,0xf0,0xb6,0xe9,0x20,0xe9,0xd8,0xdf,0xbc,0xd3, +0xa9,0xd5,0x25,0xe0,0xd4,0xe3,0xc6,0xe7,0xcd,0xf0,0xa0,0xf1, +0x47,0xf1,0x49,0xf9,0xfa,0xfb,0xd8,0xfb,0x13,0x2,0x25,0x2, +0x19,0xfa,0x4d,0xf8,0x60,0x0,0x2,0xc,0x9d,0x15,0x50,0x1b, +0xd4,0x1d,0xdb,0x1d,0xac,0x1a,0xc7,0x17,0x3e,0x1b,0x37,0x1c, +0x87,0x11,0x22,0x8,0x32,0x7,0x36,0x6,0xc9,0x5,0xec,0xa, +0x86,0x10,0x8e,0xc,0x71,0x3,0x2d,0x4,0xe9,0x8,0x8d,0x6, +0x38,0x3,0x23,0xff,0x69,0xf8,0x64,0xf3,0x3c,0xf0,0xba,0xf2, +0xcf,0xf4,0xa1,0xec,0x3,0xeb,0x59,0xf2,0xd5,0xec,0xe5,0xe8, +0xf,0xf8,0xf0,0xfc,0x5c,0xed,0xf1,0xea,0x73,0xf4,0x9c,0xee, +0x3f,0xed,0xcd,0x1,0x26,0xb,0x37,0x2,0xc5,0x2,0xa3,0x7, +0x6a,0x2,0x32,0x0,0xb6,0x7,0xfe,0xa,0x44,0x7,0x5b,0x8, +0x43,0xa,0x95,0x7,0x2e,0xc,0x17,0x12,0xa0,0xd,0x32,0xa, +0xb9,0x5,0xf6,0xfc,0xd,0x1,0xe7,0x6,0xb4,0x1,0xe0,0x5, +0xc6,0xa,0xaa,0x0,0xad,0x1,0x8b,0xd,0x19,0xc,0x7f,0xa, +0xa5,0xe,0xc7,0x7,0x43,0xfa,0x5f,0xf1,0x1e,0xf2,0x7a,0xfb, +0xb1,0xff,0x29,0xfd,0xbd,0xfc,0x2a,0xfc,0x91,0xfb,0xf9,0xff, +0xe9,0xa,0xa4,0x11,0x7,0x6,0x44,0xfb,0x33,0xff,0x88,0xfa, +0x64,0xf7,0x4b,0x4,0x24,0xfd,0x45,0xe8,0x3b,0xef,0x77,0xfb, +0x81,0xf6,0xe5,0xfc,0x44,0xa,0xec,0xfe,0xc4,0xef,0x52,0xfb, +0x98,0x7,0x51,0xff,0x82,0xf8,0xb,0xfa,0x44,0xf7,0xde,0xf4, +0xd,0xfe,0xd3,0xe,0x7b,0x14,0x4d,0xa,0xa,0x6,0x3b,0x11, +0x2d,0x1a,0x3a,0x16,0xb7,0x13,0x48,0x16,0xe8,0x8,0x1b,0xfa, +0x57,0x2,0x5c,0xff,0x68,0xef,0x9c,0xfc,0x99,0x7,0xd,0xfa, +0xe8,0x0,0x63,0xb,0x23,0xf7,0x66,0xef,0x52,0x1,0x1a,0xff, +0xef,0xec,0xff,0xee,0x1e,0xf6,0x1c,0xed,0x1e,0xef,0x35,0x1, +0x1f,0x1,0x35,0xf4,0x9b,0xf3,0x6f,0xfa,0xab,0x2,0xd7,0x8, +0xc1,0x6,0x10,0x0,0x2d,0xf3,0x7b,0xea,0xe7,0xfc,0xfd,0x13, +0x41,0x11,0x80,0xb,0xc9,0xe,0x44,0xa,0x10,0xc,0xcb,0x1b, +0xe4,0x19,0x9f,0x4,0xe4,0xfa,0x76,0xfb,0x4b,0xf9,0x25,0xff, +0x91,0x8,0x56,0x3,0x27,0xfd,0x74,0x1,0xd9,0xfd,0x66,0xf4, +0x4,0xf6,0x54,0xfb,0xa5,0xfd,0x4e,0x2,0xe4,0x7,0xf6,0xb, +0x40,0x11,0x9f,0x19,0x57,0x1f,0xe3,0x1a,0x23,0xe,0x40,0x0, +0xa4,0xfb,0x1d,0x0,0x78,0xfe,0x7c,0xfb,0x79,0x0,0xde,0x4, +0xec,0x10,0x1a,0x23,0x72,0x25,0x89,0x22,0xbb,0x1e,0x95,0xb, +0xa0,0xfb,0x65,0xf4,0x17,0xe5,0x90,0xda,0xd9,0xdd,0x95,0xe4, +0xae,0xeb,0x1c,0xf3,0x4a,0xfc,0x3c,0x2,0x86,0xff,0x76,0xfb, +0xe3,0xf4,0x53,0xe9,0xa8,0xdf,0xa6,0xd8,0xcd,0xd8,0x6f,0xdc, +0x38,0xd8,0xa2,0xda,0xf5,0xe5,0xc4,0xe7,0xd1,0xed,0x2e,0xfe, +0xe9,0x2,0xb1,0x5,0x7d,0x12,0x26,0x13,0x88,0xa,0xb5,0xf, +0xdf,0x10,0xe9,0xfd,0x1e,0xf3,0x83,0xf6,0x9c,0xf1,0x9b,0xf1, +0x23,0x0,0x90,0x5,0xd4,0x6,0xab,0x11,0x57,0x14,0x3c,0xf, +0xec,0xe,0x11,0x8,0xaa,0xfd,0xdd,0xfb,0x76,0xf6,0x19,0xed, +0x34,0xee,0x61,0xf2,0x29,0xf3,0xa0,0xfa,0xf2,0x4,0x7d,0x5, +0x52,0x4,0xb0,0xa,0xe7,0x9,0x7b,0xff,0x3b,0xfc,0xbb,0xf7, +0x9d,0xed,0x54,0xf1,0x3a,0xf7,0x80,0xf3,0x4a,0xf9,0x5a,0xfe, +0xb8,0xf8,0xda,0xff,0x48,0x8,0x19,0xfe,0x20,0xfa,0xa9,0x3, +0x8a,0x4,0x9,0x0,0xac,0x3,0x65,0x8,0xee,0x6,0x1a,0x3, +0xc9,0xfc,0xde,0xf6,0xc3,0xf7,0x91,0xf5,0xcf,0xed,0x34,0xf0, +0xf1,0xf6,0xb4,0xf6,0x51,0xfa,0xf2,0x1,0xc0,0x3,0x4d,0x3, +0xc0,0x1,0xbc,0xfc,0x33,0xf9,0xb4,0xf6,0x4c,0xf2,0xf,0xf4, +0x31,0xfd,0x37,0xff,0xe0,0xf9,0x68,0xfb,0x26,0x1,0x6a,0x0, +0xc4,0xfc,0x56,0xfd,0xd,0xfe,0x54,0xf7,0x59,0xf0,0xe7,0xf4, +0xa,0xfd,0x6b,0xfc,0xc8,0xf6,0xe5,0xf3,0x99,0xf4,0x30,0xf5, +0x7d,0xf5,0x40,0xfa,0xe5,0x1,0xed,0x3,0xbb,0xfd,0xd6,0xf9, +0x6e,0x0,0x77,0x6,0x37,0x4,0x1a,0x1,0x37,0xfc,0x10,0xf3, +0xf4,0xeb,0x91,0xe9,0x7f,0xee,0xad,0xf6,0xf4,0xf6,0x48,0xf8, +0xde,0x5,0xc7,0xf,0x7a,0xa,0xea,0x2,0xbe,0xff,0xc2,0xf7, +0x7a,0xec,0xcf,0xea,0x92,0xf3,0x5a,0xfe,0x16,0x5,0xcc,0x6, +0x52,0xa,0x85,0xf,0xf0,0xe,0xfa,0xe,0x82,0x12,0x21,0xb, +0xdc,0xf7,0xd8,0xe9,0x5a,0xeb,0x8f,0xf7,0xab,0x0,0x84,0xff, +0xd3,0xfa,0xe8,0xf9,0xd8,0xfd,0xee,0x4,0xd9,0xa,0x57,0xc, +0x6d,0xa,0xc8,0x6,0x99,0x3,0x4c,0x4,0x82,0x9,0xeb,0xf, +0xbd,0x12,0xf8,0xf,0x86,0x9,0x80,0x2,0xea,0x2,0x23,0xf, +0xd8,0x1a,0x79,0x1e,0x1d,0x1f,0xdb,0x1a,0xf9,0x16,0xdf,0x1d, +0x10,0x21,0x24,0x14,0xd3,0x6,0x99,0x4,0xc5,0x6,0x5,0xa, +0xe1,0x14,0xb5,0x23,0x27,0x27,0x4,0x22,0x13,0x22,0x37,0x23, +0x20,0x1d,0xda,0x13,0x4,0x11,0xaa,0x12,0x23,0x7,0x3e,0xf2, +0x2d,0xec,0x5f,0xf0,0xf6,0xf0,0xd6,0xf4,0x9,0xfb,0xe,0xfe, +0xef,0x5,0x5,0x14,0x1c,0x20,0xea,0x24,0x31,0x1e,0x9,0xe, +0x81,0xfe,0xd5,0xf6,0xd1,0xf8,0x2c,0xfe,0x38,0xfe,0x6a,0x1, +0xe1,0xe,0x5d,0x15,0x27,0x12,0xb,0x18,0x91,0x1f,0x1c,0x17, +0x89,0x7,0x5e,0xff,0x8b,0xff,0xa4,0x0,0x9a,0xff,0xa9,0xff, +0xc0,0xfc,0x4a,0xf7,0x4c,0xfa,0x5a,0x4,0xa3,0xd,0x17,0x13, +0xcb,0x13,0xed,0x16,0xfa,0x1a,0x8a,0x15,0xb9,0xb,0x48,0x1, +0x22,0xf7,0xd,0xf7,0xba,0xf6,0x4f,0xeb,0xd,0xe9,0x79,0xf5, +0xd1,0xfc,0xca,0xfa,0x3f,0xf8,0x3a,0xfb,0x83,0x1,0x46,0x4, +0xbc,0x7,0xa4,0xb,0x60,0xff,0xcb,0xe6,0x4e,0xde,0x7b,0xe9, +0xda,0xed,0xad,0xe6,0xaa,0xe9,0x4,0xf3,0xe0,0xf2,0x9,0xf8, +0x92,0x4,0x3a,0x1,0x76,0xf6,0x34,0xf5,0xac,0xf2,0xc3,0xed, +0xea,0xf0,0x4,0xf8,0x60,0xfa,0xdb,0xf8,0x28,0xfc,0xa4,0x1, +0x62,0x1,0x50,0x6,0xe1,0x10,0x2a,0x12,0xb7,0x10,0x9f,0x11, +0xa9,0xf,0x31,0xf,0x61,0xa,0xda,0x0,0x6b,0xff,0xd4,0xfb, +0xa4,0xf2,0x26,0xf1,0x30,0xee,0x86,0xea,0xd9,0xf3,0xde,0xfa, +0xa7,0xf5,0xd7,0xef,0xba,0xec,0xb3,0xee,0x37,0xf6,0xcf,0xfb, +0xc8,0xfd,0xfa,0xf9,0xa5,0xf1,0xed,0xf1,0x5c,0xfb,0x87,0xff, +0xe3,0xfa,0xc0,0xf6,0xf2,0xf9,0x7a,0xff,0x3b,0x0,0x25,0x0, +0xf7,0x2,0x7c,0x3,0xd2,0xfe,0x1b,0xfa,0x7b,0xfb,0x32,0xff, +0x53,0xfe,0xcc,0xfe,0x26,0x4,0xf0,0x4,0xb3,0x2,0x68,0x7, +0xe4,0xd,0xda,0xa,0x8d,0x0,0x8b,0xfb,0x92,0xfd,0xc0,0xfc, +0x3e,0xfb,0x8c,0xfd,0x4b,0xfb,0x74,0xf5,0x10,0xf3,0xe3,0xf1, +0x59,0xf5,0xd4,0xfd,0xd0,0xfe,0xe6,0xf8,0x76,0xf9,0x60,0x0, +0x2a,0x1,0xcf,0xfb,0x90,0xfe,0xc5,0x3,0x73,0xfb,0xab,0xf6, +0x62,0x4,0x6d,0xe,0xb4,0xb,0xb3,0xb,0x47,0x10,0xe3,0x11, +0xb9,0xb,0x24,0x2,0x71,0x4,0x28,0xc,0x78,0x5,0xcd,0xfc, +0x15,0x0,0x42,0x0,0xde,0xf8,0xe8,0xf3,0xab,0xf3,0x86,0xf6, +0x6d,0xf1,0x25,0xe3,0x78,0xe4,0xd0,0xf5,0x31,0xfc,0xe9,0xf9, +0xc,0xfd,0x27,0xfd,0x48,0xf5,0x80,0xee,0x1f,0xef,0x1c,0xf7, +0x89,0xfe,0x1b,0xfc,0xc9,0xf7,0xba,0x0,0x16,0xe,0xcc,0xe, +0xca,0xd,0x65,0x16,0x51,0x16,0x6e,0x7,0x6,0x1,0xaa,0x8, +0x67,0xb,0x68,0x3,0xaa,0xfb,0xd9,0xfc,0xf8,0x3,0x5f,0x5, +0x9b,0x2,0x28,0x9,0xb0,0xe,0x4b,0x2,0xfc,0xf6,0xed,0xfc, +0x99,0xfe,0xa4,0xf3,0xa5,0xf0,0x74,0xf7,0xbe,0xf9,0x55,0xf8, +0x8c,0xf8,0x12,0xfb,0xd3,0xff,0x51,0xff,0x24,0xfa,0xaa,0xfe, +0xf8,0x7,0x3a,0x7,0xbd,0x3,0xf,0x5,0xb7,0x3,0xc,0xfc, +0x74,0xf3,0xf3,0xf1,0x30,0xf5,0xe4,0xf2,0x86,0xf1,0xfd,0xfb, +0x95,0x6,0x47,0x4,0xc,0xfe,0xc7,0xff,0xfb,0x1,0x7f,0xf9, +0xc8,0xf0,0x91,0xf4,0x29,0xfb,0xa8,0xfc,0xb9,0x2,0x90,0xe, +0x74,0x14,0x7c,0x13,0x4,0x12,0x49,0xf,0x62,0xa,0x8f,0x2, +0xbf,0xf6,0x5,0xf0,0x14,0xf3,0x8f,0xf6,0xa5,0xf8,0x6a,0xfc, +0xe0,0xfc,0x4b,0xf9,0x6a,0xf4,0x22,0xec,0xda,0xe1,0x96,0xda, +0xe8,0xd6,0x88,0xd6,0xcd,0xdc,0xd8,0xe7,0x26,0xee,0x55,0xef, +0x8c,0xf3,0x20,0xf8,0x51,0xf6,0xe8,0xf1,0x1,0xef,0x15,0xed, +0x80,0xef,0xe9,0xf5,0xcd,0xf9,0x4c,0xff,0xdd,0x8,0xd3,0x9, +0x79,0x4,0x93,0x5,0x4c,0x6,0xb2,0x2,0x23,0x1,0xbc,0xff, +0x34,0xff,0xa6,0xfd,0x7,0xf8,0xb0,0xfc,0x1c,0xa,0x50,0xc, +0xdb,0xb,0xd3,0x13,0x3c,0x15,0x96,0xe,0xab,0xc,0x3,0xd, +0x99,0xa,0xff,0x7,0x52,0x6,0xfc,0x8,0xcb,0xf,0xed,0x10, +0x2,0xf,0x1a,0x13,0xe6,0x12,0xc2,0x8,0x86,0x0,0xaa,0xfc, +0xd5,0xf9,0x2e,0xf9,0xa2,0xfb,0xfd,0x1,0x23,0x5,0x78,0x1, +0x73,0x0,0xa3,0xff,0x50,0xf9,0xb6,0xf4,0x69,0xf0,0xe6,0xea, +0x9e,0xec,0xd9,0xf2,0x19,0xf8,0x32,0xff,0xbe,0x7,0x99,0xe, +0x9a,0x11,0x2b,0x13,0x4a,0x16,0xf8,0x12,0x7f,0x8,0xd1,0x5, +0xc7,0x9,0x9b,0x8,0xef,0x9,0x73,0x12,0x4,0x15,0x33,0x13, +0x7d,0x17,0x6c,0x1a,0x8,0x18,0xac,0x15,0xe9,0xe,0xf4,0x4, +0x79,0xff,0x96,0xfc,0x3a,0xfd,0xc2,0x0,0xd5,0xff,0x9c,0xff, +0x59,0x4,0x8d,0x6,0x70,0x7,0x38,0x9,0x34,0x6,0xad,0xfe, +0x78,0xf5,0x79,0xed,0x1,0xeb,0x66,0xe9,0x13,0xe6,0xfd,0xe8, +0xff,0xee,0x76,0xee,0xee,0xeb,0xb1,0xeb,0x42,0xe9,0x37,0xe5, +0x53,0xe2,0x7a,0xdf,0x7d,0xdc,0x43,0xdb,0xf4,0xdc,0x19,0xdf, +0x5,0xe2,0xa2,0xe9,0x8c,0xef,0xcb,0xef,0xb3,0xf3,0xc7,0xf7, +0xb8,0xf4,0xd7,0xf5,0x47,0xfc,0x6c,0xfc,0x61,0xfb,0xf2,0xfe, +0x11,0xff,0x87,0xfb,0xc8,0xfc,0x5d,0x2,0x13,0x7,0x13,0xa, +0x57,0xb,0xfd,0xb,0x3,0xc,0x56,0x8,0xfc,0x5,0x5a,0x8, +0x39,0x7,0xc3,0x3,0x17,0x2,0x9b,0xfe,0x31,0xff,0xa,0x3, +0x13,0x2,0x8e,0x6,0x8c,0xf,0x2e,0xe,0x9a,0xa,0x8d,0xc, +0x6d,0xd,0xac,0xd,0xc7,0xc,0xf6,0x9,0xc5,0x9,0x68,0xa, +0x8a,0xb,0x53,0x11,0xb2,0x16,0xa2,0x14,0x80,0x10,0xe4,0x12, +0xb,0x17,0x87,0x15,0xcf,0x13,0xcd,0x15,0x74,0x16,0x13,0x14, +0x5a,0x11,0x71,0xf,0x8b,0xc,0x85,0x9,0x6b,0x9,0x30,0x9, +0xb6,0x8,0xa7,0xb,0x71,0xe,0x3e,0x11,0x91,0x15,0xd9,0x13, +0x8,0xb,0x71,0x2,0xf3,0xfe,0x7d,0xff,0x3b,0xfe,0x33,0xfd, +0xc7,0xff,0x1c,0x3,0x2e,0xb,0x46,0x13,0x1d,0x10,0x1d,0xb, +0xcb,0x9,0x36,0x5,0x2b,0x1,0x39,0xff,0x4e,0xfe,0xda,0x0, +0x3e,0x3,0x74,0x7,0xfb,0xc,0xcf,0xa,0xd0,0x8,0x64,0xd, +0xd2,0xc,0x13,0x6,0xea,0x0,0x1c,0xfe,0x50,0xfd,0x8b,0x0, +0x3,0x9,0x15,0xf,0x56,0xe,0x22,0x10,0x36,0x12,0xc5,0xd, +0x74,0xc,0xb8,0xc,0xc2,0x5,0xf,0x0,0xc4,0xfd,0x3d,0xfa, +0x6c,0xfb,0xb9,0xff,0xf9,0x0,0x0,0x1,0x1b,0xfe,0x16,0xfa, +0x4c,0xfb,0x6c,0xfc,0xfa,0xf9,0x29,0xf9,0x7c,0xf8,0xb2,0xf5, +0x5f,0xf2,0xe3,0xed,0xb5,0xea,0x47,0xed,0xee,0xf4,0x2c,0xfb, +0xfa,0xf9,0x8,0xf6,0x40,0xf5,0x12,0xf4,0x51,0xf2,0xd8,0xf2, +0xe0,0xf2,0x49,0xf0,0x31,0xec,0x66,0xeb,0x95,0xf0,0xc5,0xf4, +0x66,0xf4,0xfd,0xf3,0xf5,0xf4,0x24,0xf4,0xda,0xee,0x3d,0xec, +0x92,0xf2,0x88,0xf6,0x9e,0xf3,0xdb,0xf2,0x47,0xf1,0xbb,0xea, +0x27,0xe4,0xe8,0xe0,0x29,0xe4,0xea,0xe9,0xf9,0xe9,0x57,0xe8, +0x37,0xe9,0x5e,0xe9,0x8a,0xe9,0x64,0xeb,0x37,0xed,0x6a,0xee, +0x9c,0xef,0x49,0xf0,0x9d,0xf1,0x0,0xf7,0xd7,0xfc,0x9d,0xfe, +0xce,0x3,0xbc,0xe,0xc,0x14,0xe3,0xf,0xf4,0x9,0xc5,0x8, +0xc9,0xb,0x42,0xe,0xb,0xf,0x6c,0xf,0x9,0xe,0x95,0xa, +0x22,0x9,0x54,0xc,0x47,0xf,0xc,0xd,0x95,0x6,0x11,0xff, +0x46,0xfd,0x57,0x1,0xfb,0x0,0x25,0xff,0xd0,0x4,0x2d,0xa, +0x28,0x8,0xda,0x3,0x65,0x1,0xc3,0xfe,0xcb,0xfa,0x63,0xfc, +0xe5,0x4,0x74,0xb,0x4a,0xf,0x6a,0x11,0xf,0x10,0x10,0x10, +0xc4,0x10,0x52,0xf,0xc,0xf,0x29,0xc,0x4f,0x4,0xb6,0xff, +0x9f,0x4,0xd,0x10,0x4b,0x17,0x8,0x19,0xd3,0x1b,0xb5,0x19, +0xb3,0x11,0x72,0xb,0xc8,0x4,0xdb,0x1,0x3c,0x7,0x8f,0xc, +0xd0,0x12,0xae,0x1a,0x2a,0x1a,0x48,0x14,0x69,0x12,0x22,0x14, +0x10,0x13,0x97,0xa,0x19,0x3,0x41,0x5,0x6a,0xb,0x78,0x11, +0xd9,0x14,0x87,0xe,0x54,0x2,0x75,0xfb,0x36,0xfe,0xfe,0x8, +0x34,0x15,0xb4,0x1a,0x50,0x17,0x1a,0x10,0xca,0xd,0x99,0x11, +0x4d,0x13,0xea,0x10,0xf1,0xb,0xe6,0x0,0xf2,0xf8,0x8a,0x2, +0x6c,0x16,0xff,0x28,0x9f,0x36,0x37,0x35,0x2b,0x24,0xb,0x13, +0xb1,0xc,0x5e,0x15,0x47,0x25,0x76,0x28,0xeb,0x19,0x71,0x5, +0x89,0xf7,0x5a,0xf9,0x5f,0x6,0xb,0x11,0x37,0x14,0x50,0xe, +0x3e,0x0,0x3d,0xf5,0xf3,0xf4,0xe8,0xf9,0x69,0xfd,0xb7,0xf9, +0xb0,0xeb,0xb8,0xdd,0x98,0xda,0xc8,0xe0,0x2f,0xef,0x67,0xfe, +0x16,0xfe,0x2c,0xf0,0x2b,0xe4,0x22,0xe2,0x91,0xed,0xcf,0x0, +0xe6,0xc,0xef,0x9,0xe0,0xfc,0xf6,0xf1,0xa8,0xf0,0x1,0xfa, +0x21,0xc,0x40,0x18,0x68,0x11,0x13,0x1,0x6d,0xf5,0x6e,0xf6, +0x35,0x5,0x8f,0x14,0x49,0x17,0x8e,0xc,0x7a,0xfb,0xaa,0xef, +0x31,0xf0,0xf2,0xfa,0x12,0x7,0xe5,0xb,0xf8,0x8,0x5d,0xfe, +0x80,0xf1,0xb,0xf1,0x84,0xfa,0x19,0x1,0xa5,0x0,0x57,0xf3, +0x73,0xe0,0xad,0xd9,0x26,0xdf,0x9f,0xed,0xbd,0xfd,0x7f,0xff, +0x46,0xf7,0x21,0xef,0x40,0xe9,0x58,0xef,0x19,0xfb,0x26,0xfc, +0xce,0xf8,0x90,0xf7,0x4c,0xf4,0x7e,0xf1,0x70,0xf3,0x2c,0xfa, +0xe8,0xff,0x3f,0x0,0x2c,0xff,0x4f,0xfd,0x54,0xfc,0x82,0x2, +0xba,0xa,0x22,0xd,0x9,0x7,0xa8,0xf3,0x19,0xda,0x30,0xcf, +0xc3,0xdc,0xb7,0xf6,0xd7,0x8,0x2f,0xb,0xa4,0x1,0xf6,0xf3, +0x6b,0xee,0xcc,0xf3,0x26,0xf9,0xe9,0xf7,0x34,0xef,0xf5,0xe2, +0xf1,0xde,0x82,0xe8,0xa2,0xf7,0x30,0x0,0xe4,0xff,0x1c,0xfe, +0xd1,0xf7,0x34,0xeb,0xd7,0xe8,0xf,0xf2,0x3b,0xf5,0x31,0xf2, +0xcc,0xf1,0xae,0xf3,0x3,0xf5,0x12,0xf5,0xe8,0xf7,0x37,0xfc, +0x7a,0xf9,0x50,0xf4,0x7e,0xf4,0x1f,0xf6,0x34,0xfa,0xf6,0x1, +0x8c,0x4,0xd6,0x0,0xf8,0xfb,0x74,0xf2,0xc3,0xe5,0x9b,0xe4, +0xd6,0xf0,0x27,0xf8,0xe0,0xf5,0x4d,0xf6,0xcf,0xf8,0xb1,0xf9, +0x77,0x2,0x28,0x12,0x8a,0x16,0x70,0x7,0x85,0xf2,0x4d,0xe9, +0x2,0xee,0x47,0xf9,0xc7,0x4,0xc2,0x8,0xab,0x2,0x66,0xfb, +0xc8,0xfa,0xa5,0x1,0xb9,0xc,0x18,0x11,0x55,0x6,0xe2,0xf6, +0x7f,0xee,0xb1,0xe7,0xb9,0xe0,0x4a,0xe1,0x29,0xe6,0x4d,0xe9, +0x97,0xeb,0x29,0xec,0xb8,0xec,0xb6,0xf0,0x92,0xf7,0xeb,0x1, +0xa0,0xb,0x6f,0xc,0x55,0x4,0xe2,0xfa,0xfa,0xfb,0x69,0x8, +0xd7,0xc,0x6e,0x1,0x14,0xf3,0xda,0xea,0x94,0xee,0x71,0xff, +0x3f,0x10,0x16,0x15,0xc6,0xe,0x7a,0x3,0x5a,0xf9,0xf0,0xf5, +0xdb,0xf9,0xad,0xfb,0x3c,0xf6,0x4,0xf3,0x39,0xf5,0xd,0xf6, +0xa4,0xf7,0x71,0xfe,0xcc,0x4,0xf,0x5,0x48,0x3,0xb3,0x3, +0xb7,0x3,0xe2,0x4,0x23,0x8,0x6b,0x5,0xb5,0xfe,0xc9,0xfa, +0x14,0xf3,0x2f,0xea,0xee,0xee,0xbd,0xff,0xa7,0xd,0x5c,0xf, +0x18,0x8,0xa9,0x2,0x90,0x3,0x2a,0x6,0xb8,0x3,0xe4,0xfa, +0x3c,0xf2,0x65,0xee,0xe0,0xf1,0x46,0xfe,0x2c,0x8,0xa9,0x4, +0xe2,0xfc,0xcb,0xfc,0x1d,0x3,0x48,0x7,0x95,0x4,0x15,0x0, +0xeb,0xfd,0x87,0xfa,0x32,0xf5,0x60,0xf2,0xa0,0xf4,0xdc,0xf9, +0x5e,0xfd,0xc9,0xfc,0x81,0xfb,0xb9,0xff,0xde,0x7,0x51,0xc, +0x60,0xe,0xc1,0xe,0x67,0x6,0x5,0xfd,0xba,0xfe,0x8,0x3, +0x88,0x1,0x7e,0xfe,0x37,0xfd,0x9a,0xfe,0x9,0xff,0x6f,0xfc, +0x18,0xff,0xa2,0x5,0xd3,0x4,0xe5,0x0,0x2a,0xff,0x57,0xf9, +0xdc,0xf4,0xe3,0xfa,0x26,0x1,0xcc,0xfe,0x1c,0xfc,0xe,0xfe, +0x72,0x0,0xe2,0x2,0x9c,0x6,0x38,0x7,0xb9,0x2,0x40,0x1, +0xb3,0x6,0x2f,0x9,0xca,0x5,0xe,0x5,0xfb,0x3,0xae,0xfd, +0x97,0xfc,0xb1,0x2,0x83,0x4,0x4c,0x4,0x91,0x9,0x44,0xc, +0xf3,0x5,0xa4,0xff,0x7b,0x0,0x19,0x4,0xe7,0x4,0x87,0x1, +0xfd,0xfb,0x41,0xf9,0x8f,0xfb,0xa1,0xff,0x98,0x2,0xa7,0x3, +0xf2,0x1,0x4a,0xfe,0xb2,0xfb,0x72,0xfb,0x9,0xfb,0x7b,0xf9, +0xdd,0xf9,0xbc,0xfb,0xa2,0xfa,0xaa,0xf7,0x90,0xf8,0x20,0xfe, +0x6b,0x3,0xc8,0x4,0x5e,0x3,0x18,0x3,0xc1,0x5,0xb8,0x7, +0x29,0x7,0x83,0x7,0xc2,0x6,0xbb,0x2,0xae,0x2,0x6a,0x7, +0xfa,0x8,0xe1,0x6,0x48,0x6,0xb6,0x9,0x90,0xb,0xab,0x4, +0x66,0xfc,0x59,0xfc,0x2e,0x1,0x2b,0x4,0x25,0x2,0x47,0x1, +0xde,0x5,0x75,0x5,0x48,0x1,0x6,0x4,0xc,0x7,0x2f,0x5, +0x15,0x1,0x63,0xfd,0xc4,0x0,0xe4,0x3,0x8c,0x0,0xe5,0x2, +0xd2,0x5,0x2,0x1,0x4a,0xfe,0xd1,0xfb,0xb3,0xf9,0xa0,0xfd, +0xda,0xfc,0x12,0xfa,0xe7,0xff,0xab,0x3,0x81,0x0,0x31,0xfd, +0x4f,0xfc,0x9d,0xfe,0xdc,0xff,0x6,0xff,0xe7,0x0,0xcb,0x4, +0xf,0x8,0x15,0x8,0xa6,0x7,0x60,0xb,0xfc,0x9,0x5c,0x2, +0x5,0x1,0x42,0x2,0x6c,0xff,0xf8,0xfc,0x9,0xfd,0x87,0x0, +0x89,0x4,0x4,0x5,0xd8,0x4,0xc0,0x5,0x81,0x8,0xb4,0x9, +0x6a,0x4,0x6b,0x2,0x21,0x6,0xa9,0x2,0x5a,0xfc,0x36,0xfd, +0x99,0x1,0xb8,0x4,0xc1,0x2,0x12,0xff,0xbb,0xff,0x19,0xfe, +0xae,0xfa,0xcc,0xfd,0xc2,0xff,0xcd,0xfb,0x5f,0xf9,0xba,0xf8, +0x3e,0xfb,0x56,0x3,0x97,0x6,0x4d,0x1,0x98,0xfc,0x42,0xf9, +0xf,0xf7,0xcf,0xfa,0x80,0xff,0x82,0xff,0x51,0xff,0x7c,0x2, +0x4b,0x8,0xad,0xc,0x80,0xb,0x4c,0x7,0x6f,0x3,0x22,0x1, +0x78,0x1,0x9,0x2,0xf4,0x1,0xa1,0x2,0x73,0x2,0x1b,0x2, +0x90,0x3,0xd2,0x4,0x65,0x4,0xc2,0x4,0x8d,0x8,0x35,0xb, +0xb,0x9,0x6f,0x8,0xa5,0x9,0x9d,0x7,0xef,0x5,0x4f,0x4, +0x3a,0xff,0x26,0xfb,0x53,0xfb,0xfc,0xfe,0x5e,0x3,0xf9,0x6, +0x9d,0xa,0xf9,0x7,0xa9,0xff,0x39,0xfd,0x9a,0xfe,0x60,0x0, +0xe1,0x3,0x2e,0x0,0xee,0xf8,0x71,0xf9,0x4f,0xfc,0x46,0x1, +0x89,0x9,0xf6,0xa,0x36,0x7,0x81,0x4,0xcd,0x2,0x33,0x5, +0x50,0x7,0x43,0x5,0xe5,0x5,0x37,0x6,0x31,0x2,0xa9,0x2, +0xe2,0x7,0x64,0xa,0xe8,0xa,0xb3,0xa,0x62,0x9,0x3b,0x9, +0x57,0x9,0x36,0x7,0x9d,0x3,0xc3,0xfe,0x6f,0xf9,0x37,0xf7, +0x8f,0xf9,0xd0,0xfe,0x93,0x3,0x3b,0x4,0xb,0x2,0x11,0x0, +0xf8,0xfd,0xf,0xfc,0x79,0xfa,0x10,0xf7,0x41,0xf3,0xd4,0xf2, +0x5,0xf6,0x78,0xfc,0x1a,0x6,0xab,0xe,0x25,0x12,0x63,0x12, +0x88,0x11,0xd2,0xf,0xa,0xf,0x23,0x10,0x27,0x13,0xa8,0x16, +0x75,0x16,0x17,0x13,0x8d,0x10,0xfb,0xf,0x5f,0x12,0x9e,0x14, +0x27,0x13,0xcb,0x12,0xe0,0x13,0xfa,0x11,0xe6,0xf,0x95,0xd, +0xfc,0x7,0xcc,0x1,0xc9,0xfd,0x37,0xff,0xbc,0x4,0x8e,0x4, +0x43,0x0,0x98,0x1,0x34,0x3,0xbb,0xfc,0xf,0xf5,0x1d,0xf3, +0x39,0xf0,0xac,0xe9,0x14,0xea,0xb4,0xf1,0xe,0xf5,0xc8,0xf4, +0x9e,0xf5,0xc0,0xf4,0xe2,0xf1,0xfa,0xed,0xb9,0xea,0xcc,0xeb, +0x37,0xee,0xfe,0xf0,0x61,0xf7,0x36,0xfc,0x65,0xff,0xde,0x6, +0x76,0xb,0xfe,0x7,0xbe,0x2,0xc1,0xfd,0xc3,0xf8,0xd,0xf6, +0x22,0xf8,0x13,0xfd,0x58,0xfe,0xbb,0x0,0x41,0x8,0x9c,0x9, +0x48,0x7,0xa,0x9,0x4b,0x7,0xe4,0x3,0x71,0x1,0x66,0xfd, +0x34,0xff,0x12,0x0,0x13,0xfd,0x2f,0x5,0x20,0xa,0x6,0x2, +0x37,0x2,0x82,0x5,0x6c,0x0,0xc6,0xfe,0x14,0x1,0x54,0x2, +0x9f,0x1,0x51,0xfe,0xb6,0xfc,0x42,0xf9,0x5e,0xf4,0x4c,0xf5, +0x7c,0xf4,0x12,0xef,0x26,0xeb,0x36,0xea,0x1a,0xef,0xf9,0xf2, +0x12,0xf2,0x5f,0xf3,0x70,0xf1,0x77,0xef,0x76,0xf3,0x94,0xf0, +0x8b,0xec,0x84,0xef,0x7c,0xef,0x3b,0xf4,0x81,0xfe,0x2a,0x0, +0x49,0x0,0xee,0x2,0x28,0x3,0xe7,0x3,0x3e,0x3,0x78,0x1, +0xec,0x0,0x6c,0x1,0x18,0x8,0xf4,0xf,0x3f,0x12,0xca,0x13, +0xe2,0x11,0xf6,0xb,0x22,0x9,0xaa,0x7,0x60,0x6,0x13,0x6, +0xf5,0x4,0x7d,0x4,0x49,0x3,0xb5,0xff,0x20,0xfb,0xf8,0xf2, +0x65,0xe6,0xc4,0xda,0xf8,0xd5,0xed,0xd5,0x4f,0xd5,0x3f,0xd7, +0xcd,0xd9,0x76,0xd7,0x6a,0xd7,0x61,0xda,0xb8,0xda,0x7d,0xda, +0xd8,0xd7,0x1f,0xd8,0xc7,0xe3,0x0,0xf1,0x29,0xfc,0xa2,0x9, +0x8a,0x11,0x8a,0x12,0x4b,0x14,0x42,0x18,0x51,0x1b,0x1e,0x1a, +0x7b,0x18,0x63,0x1a,0x95,0x1c,0xd1,0x1f,0x55,0x24,0x88,0x25, +0x5a,0x22,0x80,0x1b,0x2,0x13,0x26,0xb,0x8f,0x6,0x3a,0x7, +0x7,0x6,0x7d,0x1,0x45,0x0,0x1e,0xfd,0x4b,0xf8,0xdf,0xf7, +0xaf,0xf3,0x8c,0xec,0x2,0xe9,0x2a,0xe4,0xf4,0xe1,0xfd,0xe3, +0xa7,0xe1,0x48,0xde,0x55,0xdc,0x2b,0xd9,0x2f,0xd8,0x78,0xd7, +0x23,0xd7,0xa4,0xda,0x21,0xdc,0xf9,0xdc,0x1f,0xe2,0x39,0xe5, +0x64,0xe7,0x93,0xed,0xad,0xf2,0x4a,0xf6,0x65,0xfb,0x7d,0x0, +0xdc,0x5,0x39,0xa,0x44,0xd,0xcf,0x11,0xa9,0x13,0xe6,0x11, +0x6,0x14,0x6b,0x18,0xfc,0x1a,0x2c,0x1f,0xda,0x23,0x93,0x24, +0xb6,0x20,0x58,0x1a,0xc9,0x15,0x13,0x14,0x2f,0x13,0xc1,0x11, +0x4,0xe,0x66,0xa,0x47,0x9,0xc4,0x8,0xfb,0x9,0x83,0x9, +0x96,0x2,0x81,0xfb,0x15,0xf6,0x85,0xf0,0xf6,0xef,0xb9,0xf0, +0x34,0xed,0xbf,0xe9,0x6e,0xe7,0x7c,0xe6,0x23,0xe8,0x66,0xe9, +0x6d,0xe9,0x22,0xe7,0x91,0xe3,0x7e,0xe4,0x72,0xe7,0x6f,0xe9, +0x21,0xee,0x6,0xf3,0x60,0xf5,0x68,0xf8,0x76,0xfd,0x91,0x3, +0x47,0x7,0xb7,0x7,0x2e,0xa,0x1c,0xf,0x2c,0x13,0xa4,0x16, +0x2,0x19,0xeb,0x19,0x1f,0x1b,0x7,0x1d,0x43,0x1f,0xc7,0x20, +0xd,0x20,0x6c,0x1d,0xab,0x1a,0x31,0x19,0x7c,0x18,0x76,0x17, +0xa6,0x15,0xec,0x11,0x72,0xd,0x3,0xb,0xa6,0x9,0x3d,0x8, +0xc,0x7,0x0,0x4,0x11,0xff,0xca,0xfa,0x2d,0xf7,0xee,0xf3, +0x63,0xf1,0x3,0xef,0x86,0xec,0xb6,0xe9,0xdd,0xe7,0x70,0xe8, +0xf8,0xe8,0x2e,0xe8,0x91,0xe8,0x8,0xea,0xe4,0xea,0x31,0xec, +0x1a,0xef,0x8f,0xf2,0xb1,0xf5,0x6d,0xf9,0x76,0xfd,0x7f,0x0, +0x5a,0x3,0x6a,0x6,0x5d,0x9,0xfb,0xc,0x66,0x10,0xbe,0x12, +0xf3,0x14,0xd7,0x16,0xf5,0x17,0x9c,0x18,0x6b,0x19,0x9a,0x1a, +0xba,0x1a,0x40,0x1a,0x9d,0x1a,0x44,0x1a,0x5a,0x19,0xd3,0x18, +0x46,0x17,0x9d,0x15,0xe4,0x13,0x72,0x10,0x48,0xd,0xb1,0xa, +0xfc,0x6,0x6f,0x3,0xe4,0xff,0xd7,0xfb,0x4e,0xf8,0xba,0xf4, +0xdd,0xf1,0x5b,0xf0,0x2f,0xee,0x81,0xeb,0xbd,0xe9,0xcd,0xe8, +0x7f,0xe8,0x94,0xe8,0x77,0xe9,0x2,0xeb,0x3a,0xec,0xdd,0xed, +0x1b,0xf0,0x5b,0xf2,0xe5,0xf4,0x5,0xf7,0x20,0xf9,0x60,0xfc, +0x79,0xff,0x44,0x2,0x94,0x5,0xb4,0x8,0xba,0xb,0x4e,0xe, +0xd4,0xf,0x6c,0x11,0xb5,0x12,0xd8,0x12,0x3b,0x13,0x21,0x14, +0x2,0x15,0x82,0x16,0x17,0x18,0x8f,0x18,0x49,0x18,0x8b,0x17, +0xaf,0x15,0xec,0x12,0x15,0x10,0x8f,0xd,0x9a,0xb,0xb1,0x9, +0xf3,0x6,0xad,0x3,0x77,0x0,0x5f,0xfd,0x66,0xfa,0xb5,0xf7, +0x71,0xf5,0x2b,0xf3,0xc6,0xf0,0xfe,0xee,0xcf,0xed,0xdd,0xec, +0x56,0xec,0x1a,0xec,0x1e,0xec,0x57,0xec,0x9c,0xec,0x80,0xed, +0x66,0xef,0xea,0xf1,0x55,0xf4,0x1c,0xf6,0x9b,0xf7,0x1c,0xf9, +0xaf,0xfa,0xe2,0xfc,0xa0,0xff,0x5f,0x2,0x92,0x4,0xe2,0x5, +0x8c,0x7,0x1c,0xa,0x56,0xc,0x3e,0xe,0x39,0x10,0xa1,0x11, +0x35,0x12,0x5a,0x12,0x8d,0x12,0x7c,0x12,0xcf,0x11,0x2d,0x11, +0x28,0x10,0x75,0xe,0x20,0xd,0xae,0xb,0xbd,0x9,0xef,0x7, +0x52,0x5,0xca,0x1,0xc6,0xfe,0x55,0xfc,0x27,0xfa,0x3b,0xf8, +0x1c,0xf6,0x82,0xf3,0xa8,0xf0,0x47,0xee,0xd6,0xec,0x16,0xec, +0xdf,0xeb,0xf3,0xeb,0x6,0xec,0x22,0xec,0xa2,0xec,0xf8,0xed, +0xb4,0xef,0x1a,0xf1,0x33,0xf2,0xd2,0xf2,0x41,0xf3,0xdd,0xf4, +0xd1,0xf7,0xae,0xfa,0x92,0xfc,0xfe,0xfd,0xa5,0xff,0x46,0x1, +0xfa,0x2,0xee,0x4,0x5e,0x6,0x14,0x7,0x67,0x7,0xb9,0x7, +0x97,0x8,0x96,0x9,0x39,0xa,0x3c,0xa,0x1f,0x9,0xcc,0x7, +0xc8,0x6,0x74,0x5,0x6c,0x4,0xd1,0x3,0xcb,0x2,0x5c,0x1, +0x9d,0xff,0xdd,0xfd,0x92,0xfc,0x8b,0xfb,0x71,0xfa,0x4,0xf9, +0xb0,0xf7,0x13,0xf7,0xbe,0xf6,0x75,0xf6,0x3b,0xf7,0xbe,0xf9, +0x5e,0xfc,0xf5,0xfc,0x7b,0xfb,0x1a,0xf9,0xd7,0xf7,0xf7,0xf8, +0x72,0xfb,0x71,0xfe,0xe7,0x0,0xb8,0x2,0x31,0x5,0x4f,0x6, +0x9,0x6,0x23,0x7,0x3c,0x7,0x49,0x6,0xe6,0x6,0xc8,0x6, +0xaa,0x6,0xab,0x7,0xf3,0x6,0x1f,0x7,0xc5,0x9,0x23,0xa, +0x9e,0x8,0x3,0xa,0xa,0xd,0xe2,0xb,0x67,0x7,0x3,0x7, +0xd7,0xb,0x87,0xf,0x79,0xf,0x9b,0x10,0x42,0x12,0xfe,0xa, +0xd5,0xfe,0x81,0xfa,0xf7,0xfc,0x62,0x2,0xcb,0x8,0x73,0xb, +0xcd,0xb,0xfe,0x8,0xcb,0x1,0xec,0xfe,0xff,0xff,0xf7,0xfd, +0xcb,0xfb,0xed,0xfb,0x74,0xfd,0x6f,0xfe,0x8e,0xfb,0xea,0xf7, +0x3b,0xf8,0xa8,0xfc,0x2e,0x3,0x68,0x6,0xd1,0x2,0x1a,0xfc, +0x82,0xf8,0xac,0xfa,0x74,0x0,0xf1,0x5,0xa,0x6,0x12,0x0, +0xdc,0xfa,0x27,0xfb,0xf8,0x0,0x2e,0x8,0x32,0xc,0xbd,0xd, +0xb3,0xf,0x40,0x1e,0xc7,0x33,0xe9,0x23,0x10,0xf7,0x13,0xee, +0x82,0xfd,0xc5,0xf8,0x4d,0xf8,0x49,0x9,0x55,0xa,0xa,0x0, +0x4b,0xd,0x92,0x21,0x79,0x14,0x62,0x0,0xc7,0x6,0x2a,0x4, +0x8,0xf1,0xbe,0xed,0xa3,0xe9,0x86,0xdd,0x4e,0xe6,0x72,0xf6, +0xb,0xf4,0xfa,0xed,0x50,0xf4,0x83,0xf8,0x62,0xee,0x47,0xed, +0x27,0xfe,0xe4,0xff,0xd6,0xf0,0x80,0xeb,0xed,0xe8,0x69,0xe4, +0x6,0xeb,0x31,0xf5,0x8,0xfc,0x5f,0x3,0xeb,0x4,0x1f,0x5, +0xe3,0xd,0x7,0x14,0x78,0x11,0xe2,0xb,0xae,0x3,0xea,0x1, +0xe1,0x6,0x65,0x2,0x88,0xff,0xb0,0xa,0x97,0xd,0x50,0x8, +0x19,0x11,0x3e,0x16,0x2d,0x8,0x49,0x6,0xad,0x13,0xc6,0xb, +0xe1,0xfb,0x5f,0xfe,0xf2,0xfa,0xec,0xf2,0x2a,0xfb,0x8,0xfa, +0x15,0xef,0x93,0xf5,0x85,0xf9,0xed,0xef,0xc8,0xee,0xac,0xf2, +0x1,0xf0,0xec,0xeb,0x82,0xec,0x3,0xef,0x58,0xea,0x41,0xe3, +0xa1,0xe5,0xa6,0xed,0x49,0xf3,0x94,0xf3,0xbc,0xf3,0x95,0xfa, +0xee,0xfe,0xc2,0xfd,0x63,0x0,0x8b,0x1,0x97,0x0,0xc5,0x4, +0x64,0x5,0xf2,0x3,0xcd,0x9,0x52,0xa,0xfa,0x5,0x8d,0xd, +0x27,0x13,0x34,0xc,0x36,0xe,0x88,0x16,0xaa,0x11,0x2,0xc, +0x3f,0xe,0xa2,0xb,0xb0,0x7,0xa8,0x9,0x63,0x8,0xac,0x2, +0xfc,0x2,0xa2,0x6,0x35,0x2,0x6f,0xfb,0xd9,0xfa,0xa4,0xf6, +0x80,0xef,0xee,0xf0,0xd7,0xf0,0x96,0xe8,0xb0,0xe4,0x12,0xe6, +0x1c,0xe7,0xb5,0xe7,0x6e,0xe5,0x7b,0xe4,0xe,0xe9,0x60,0xeb, +0xd3,0xe9,0xcc,0xe9,0x4,0xeb,0x87,0xee,0x4c,0xf4,0x6,0xf8, +0x47,0xfb,0x24,0x0,0x7c,0x4,0x1,0x9,0xc2,0xd,0x42,0x11, +0xd1,0x13,0x67,0x14,0xa0,0x13,0x26,0x13,0x1d,0x12,0xf1,0x11, +0xd3,0x11,0xab,0xf,0xf8,0x10,0x14,0x15,0x87,0x15,0x50,0x17, +0x24,0x1b,0xaa,0x18,0x10,0x13,0xbf,0xf,0x68,0xc,0x9e,0x7, +0xdd,0x1,0x21,0xff,0x1b,0xfe,0xff,0xf7,0x98,0xf5,0x8a,0xfa, +0x19,0xf8,0x4d,0xf3,0x7c,0xf4,0x53,0xee,0x1b,0xe6,0x96,0xe6, +0xd6,0xdf,0xbf,0xd3,0x44,0xd6,0xb0,0xde,0x9a,0xdf,0xe3,0xe0, +0x32,0xe7,0x82,0xee,0x3a,0xf6,0x1b,0xfd,0x17,0xff,0xbd,0xfe, +0xf6,0x1,0xa8,0x3,0x7a,0x0,0x6c,0x2,0x9d,0x8,0xe,0xb, +0xc9,0x10,0xc7,0x19,0xb0,0x1c,0x2a,0x1f,0x48,0x23,0x91,0x21, +0x35,0x1d,0x69,0x18,0xa1,0x12,0xb0,0x11,0xca,0x11,0xbc,0xd, +0xb1,0xd,0xf2,0x11,0x81,0x12,0x36,0x11,0xca,0xf,0x82,0xb, +0x3f,0x7,0x2f,0x4,0x8a,0xfd,0xd7,0xf4,0xe7,0xef,0x4d,0xec, +0x4e,0xe7,0x96,0xe6,0x1b,0xea,0xaa,0xe9,0x36,0xe6,0xfc,0xe6, +0xec,0xe9,0x48,0xe9,0xe9,0xe7,0xaa,0xea,0xfc,0xee,0x56,0xf2, +0xf3,0xf5,0x74,0xf8,0x34,0xfb,0xbf,0x1,0x33,0x7,0xd4,0x9, +0x8f,0xf,0xe2,0x14,0x4e,0x15,0xa2,0x16,0x6c,0x1a,0xd8,0x1c, +0xaa,0x1d,0x74,0x1d,0xf6,0x1b,0x4e,0x19,0xd4,0x16,0x27,0x14, +0x59,0xf,0x95,0xc,0x60,0xd,0x51,0xb,0x3f,0x8,0x87,0x8, +0x1c,0x8,0xc3,0x5,0x8f,0x2,0xe4,0xfd,0x88,0xf8,0x1,0xf3, +0x92,0xf0,0xcf,0xf1,0xa2,0xf1,0xbc,0xf0,0xb1,0xf0,0x8d,0xf1, +0x45,0xf4,0x3c,0xf2,0x68,0xed,0x8e,0xf0,0xfd,0xf3,0xef,0xf1, +0xee,0xf2,0x47,0xf4,0x82,0xf4,0x89,0xfa,0xc7,0x0,0xd5,0x1, +0x3f,0x4,0xdc,0x9,0x6a,0xd,0x81,0xf,0xb1,0x13,0xcd,0x15, +0xde,0x15,0xe1,0x1a,0xe7,0x1d,0xf0,0x18,0x4a,0x16,0x59,0x16, +0x9d,0x13,0x23,0x13,0x2c,0x12,0x7c,0xb,0xeb,0x7,0xf6,0x9, +0x5d,0x7,0xa7,0x0,0x6c,0xfd,0xad,0xf9,0x2e,0xf3,0xf0,0xef, +0x53,0xed,0x74,0xe9,0x7,0xe9,0x75,0xe9,0x23,0xeb,0xb,0xf0, +0xa7,0xf0,0x2c,0xef,0xac,0xf2,0x19,0xf6,0xeb,0xf6,0xf5,0xf6, +0xf3,0xf7,0xb1,0xfc,0xa6,0x0,0x33,0x2,0x1f,0x6,0xa1,0x9, +0xfc,0xb,0x0,0xf,0xbf,0xe,0x3b,0xe,0x54,0x11,0xb0,0x13, +0x26,0x15,0x7a,0x16,0x23,0x15,0x92,0x12,0xb2,0xf,0xb6,0xb, +0xaf,0x7,0x81,0x3,0x4a,0x0,0x61,0x0,0x0,0x1,0x87,0xff, +0xdb,0xfe,0xe6,0xfe,0x83,0xfc,0x6a,0xf9,0x90,0xf6,0x20,0xf3, +0x3c,0xf2,0xcf,0xf1,0xd1,0xed,0x81,0xed,0xef,0xf3,0xff,0xf7, +0xe2,0xf7,0x91,0xf8,0xb9,0xf8,0xef,0xf7,0xef,0xfa,0xf,0xff, +0x20,0xfe,0xc8,0xfe,0x8d,0x6,0x4f,0xc,0x1e,0xd,0xa2,0xd, +0xcb,0xb,0xa2,0x9,0xa,0xa,0xba,0x7,0x99,0x5,0xc6,0x8, +0x56,0xa,0x79,0x8,0x6,0x8,0xdb,0x6,0x69,0x4,0x4,0x4, +0xf4,0x3,0x7,0x2,0xc5,0xff,0xaf,0xff,0x1c,0x2,0xd9,0x2, +0x9,0x0,0xf0,0xfd,0xc0,0xfd,0x30,0xfd,0x6b,0xfc,0xc4,0xfb, +0xdb,0xfa,0x76,0xf9,0x47,0xf8,0x70,0xf9,0x43,0xfb,0xa,0xfb, +0x81,0xfa,0xab,0xf8,0xe7,0xf3,0xed,0xf0,0xd,0xf3,0x82,0xf8, +0x28,0xfd,0xa3,0xfe,0xf,0x1,0xe3,0x5,0xe8,0x8,0x27,0xa, +0xab,0x9,0x89,0x6,0x14,0x5,0x35,0x6,0xd8,0x5,0x9e,0x2, +0xcc,0xfc,0x86,0xf7,0x5d,0xf7,0x22,0xfa,0xf8,0xfa,0xcd,0xfb, +0x11,0x0,0x2a,0x4,0x31,0x5,0xf0,0x5,0x56,0x5,0xb6,0x1, +0x3f,0xff,0x72,0xfe,0xf5,0xfb,0xc9,0xf7,0x84,0xf4,0x72,0xf5, +0xca,0xf8,0xe7,0xf9,0x5f,0xfb,0x23,0x0,0x2,0x5,0x20,0x7, +0x15,0x6,0x85,0x4,0xd9,0x5,0x27,0x9,0x94,0xb,0xc9,0xa, +0xf1,0x6,0x5,0x3,0x71,0xff,0xbf,0xfb,0x43,0xf9,0xc,0xf8, +0x9e,0xf8,0x5d,0xfb,0xfa,0xfd,0x12,0xff,0xa6,0xff,0xe5,0x0, +0x98,0x1,0xc1,0x0,0x59,0x1,0xa3,0x2,0x64,0x0,0xb3,0xfc, +0xa4,0xf9,0x82,0xf6,0x88,0xf5,0xb7,0xf5,0x44,0xf5,0xdb,0xf7, +0xfe,0xfc,0x4d,0x0,0xf,0x2,0x18,0x4,0x54,0x7,0x5f,0xb, +0x63,0xd,0x49,0xc,0xf8,0x9,0x9,0x7,0x9c,0x2,0xec,0xfd, +0x76,0xfb,0xdd,0xfa,0xf6,0xfa,0x8c,0xfc,0xd1,0xfe,0x79,0x0, +0xda,0x2,0x51,0x5,0x72,0x5,0xd2,0x4,0x90,0x5,0x83,0x5, +0xd4,0x2,0xa9,0xfe,0x6,0xfa,0x38,0xf6,0xe4,0xf5,0x78,0xf8, +0xb9,0xf8,0x27,0xf5,0x24,0xf4,0x1e,0xf9,0xf3,0xfe,0x2,0x3, +0x61,0x7,0x79,0xa,0xeb,0xa,0x64,0xa,0x57,0x7,0xb9,0x1, +0x2e,0xfe,0x2e,0xfc,0x64,0xf8,0xd9,0xf5,0xb0,0xf6,0x79,0xf7, +0xed,0xf8,0x44,0xfe,0xa,0x3,0x6c,0x3,0x49,0x4,0x72,0x6, +0x7a,0x5,0x30,0x4,0x97,0x4,0xd,0x2,0xd5,0xfd,0x50,0xfb, +0x66,0xf8,0x28,0xf6,0x1f,0xf7,0x25,0xfa,0x6f,0xfe,0xb4,0x1, +0xa,0x3,0x44,0x6,0x3f,0xa,0x89,0xb,0xf6,0xb,0x56,0xb, +0x7e,0x8,0xa1,0x5,0x83,0x2,0xb9,0xfe,0x30,0xfc,0x52,0xfa, +0xcd,0xf8,0x83,0xf9,0x4d,0xfb,0x5e,0xfb,0x66,0xfa,0xbb,0xfa, +0x6f,0xfc,0xe4,0xfd,0xcc,0xfd,0x3b,0xfc,0x9d,0xf9,0x66,0xf5, +0xbc,0xf1,0x8f,0xf1,0x1f,0xf2,0x12,0xf2,0x7d,0xf4,0x34,0xf8, +0xd4,0xfb,0x16,0x0,0x4d,0x3,0x89,0x6,0x91,0xa,0x4e,0xc, +0xb8,0xc,0x94,0xc,0x36,0xa,0x77,0x7,0x73,0x4,0x43,0x1, +0xf9,0x0,0xd7,0x1,0x77,0x2,0xec,0x4,0xe4,0x6,0xdd,0x6, +0x68,0x7,0x7a,0x8,0xd8,0x7,0xe4,0x4,0x3b,0x2,0xe9,0x1, +0x3c,0x1,0x9a,0xfe,0x35,0xfc,0x3d,0xfb,0xbd,0xfb,0x5,0xfd, +0x66,0xfd,0xb8,0xfc,0x5e,0xfc,0xe0,0xfc,0x3e,0xfe,0xe7,0x0, +0x4f,0x3,0x2b,0x3,0xdc,0x1,0xfc,0xff,0x24,0xfc,0xb2,0xf8, +0x82,0xf6,0x30,0xf3,0xd6,0xf0,0x24,0xf2,0xe0,0xf5,0xc6,0xf9, +0x64,0xfb,0x2b,0xfc,0x40,0xff,0xf2,0x1,0x16,0x2,0x15,0x2, +0xa0,0x1,0x67,0xff,0x98,0xfc,0xd6,0xf9,0xb1,0xf8,0xb7,0xfa, +0x3e,0xfd,0xf4,0xfe,0xed,0x1,0xfe,0x4,0x25,0x7,0x20,0xa, +0x5e,0xc,0xcb,0xc,0xae,0xd,0x21,0xe,0x99,0xc,0x60,0xa, +0x3d,0x8,0xe4,0x6,0xb5,0x6,0x83,0x6,0xb4,0x5,0x5b,0x4, +0xc1,0x2,0xac,0x1,0x72,0x1,0xd,0x1,0xe8,0xff,0xf1,0xff, +0xed,0xff,0x7,0xfc,0xc1,0xf7,0x10,0xf7,0x69,0xf7,0xd3,0xf7, +0xb9,0xf6,0x16,0xf3,0xcf,0xf1,0xa4,0xf2,0x3a,0xf2,0x1b,0xf3, +0xe8,0xf4,0xdf,0xf5,0xc5,0xf7,0x70,0xf9,0xb5,0xf9,0x10,0xfa, +0x14,0xfb,0x79,0xfc,0xe5,0xfc,0x9c,0xfc,0xb4,0xfd,0x23,0x0, +0x5d,0x3,0x5,0x6,0xa6,0x7,0xd8,0xa,0x56,0xe,0x4e,0xf, +0xe1,0xe,0x8,0xd,0x51,0xa,0x64,0x9,0x5,0xa,0x4b,0xa, +0xf2,0x8,0x8c,0x7,0x37,0x8,0x6,0x8,0x79,0x5,0x21,0x3, +0x46,0x1,0xca,0xff,0x49,0xfe,0x4,0xfc,0xb3,0xfa,0x97,0xf9, +0xe1,0xf6,0xac,0xf4,0x37,0xf4,0xf4,0xf4,0xf2,0xf5,0x69,0xf6, +0x16,0xf8,0x7f,0xfa,0xb4,0xfa,0x82,0xfa,0x8e,0xfc,0xd5,0xfe, +0xa7,0xfe,0xa5,0xfc,0x53,0xfb,0x15,0xfb,0xde,0xfa,0xdd,0xfa, +0x5b,0xfb,0xb7,0xfc,0x3,0xff,0xc3,0x0,0xe9,0x0,0x4f,0x0, +0x4f,0x0,0x5f,0x0,0xd0,0xff,0x1c,0x0,0x4f,0x0,0x6d,0xff, +0x81,0x0,0x43,0x2,0x55,0x2,0xa4,0x3,0xb0,0x4,0x2b,0x4, +0xd4,0x6,0x4e,0xa,0x9e,0xa,0x28,0xb,0x7b,0xa,0x2f,0x6, +0x4f,0x3,0xbc,0x2,0x5b,0x1,0xee,0xff,0x77,0xfe,0x21,0xfd, +0xed,0xfd,0x9f,0xfe,0xc,0xfd,0x54,0xfc,0x94,0xfd,0xe1,0xfd, +0x14,0xfc,0xdb,0xf9,0xa0,0xf8,0x7b,0xf7,0x29,0xf6,0x57,0xf6, +0x66,0xf7,0x40,0xf8,0x8,0xfa,0x9f,0xfc,0x50,0xff,0xa0,0x1, +0x95,0x2,0xd4,0x3,0xe,0x6,0xa3,0x6,0x41,0x6,0xe5,0x6, +0x67,0x7,0x68,0x7,0x68,0x7,0x12,0x7,0x3c,0x6,0x81,0x4, +0x5e,0x2,0x3b,0x1,0x70,0x1,0xae,0x2,0x8e,0x3,0xa4,0x2, +0x75,0x1,0xf0,0x0,0xd6,0xff,0x20,0xff,0x8d,0xfe,0x4e,0xfb, +0x33,0xf8,0xd3,0xf8,0x15,0xfa,0xdb,0xfa,0x28,0xfc,0x66,0xfc, +0xa0,0xfd,0xd7,0x0,0x6f,0x2,0x31,0x3,0xc1,0x3,0x1,0x2, +0xd3,0xff,0xe3,0xfd,0x89,0xfb,0x8e,0xfa,0x9,0xfa,0x69,0xf9, +0x95,0xf9,0xb6,0xf9,0x75,0xfb,0x52,0xff,0x52,0x2,0xe3,0x3, +0xb5,0x3,0x9e,0x2,0xb7,0x2,0xbb,0x1,0x54,0xff,0x49,0xfe, +0x88,0xfd,0xd7,0xfc,0xc0,0xfd,0xb4,0xff,0xe0,0x1,0x2e,0x3, +0xdb,0x3,0x30,0x5,0xf5,0x5,0xb4,0x5,0xfc,0x4,0xb4,0x3, +0x80,0x3,0xfe,0x3,0x4c,0x2,0xe9,0xff,0x51,0x0,0x79,0x2, +0x19,0x3,0xd,0x2,0xd,0x1,0xd1,0xff,0x29,0xfe,0x37,0xfd, +0xbe,0xfc,0xbb,0xfb,0x31,0xfa,0xe7,0xf9,0x1d,0xfc,0x59,0xfe, +0x19,0xfe,0xa3,0xfc,0x5e,0xfc,0x22,0xfd,0x4f,0xfc,0x37,0xfa, +0xe4,0xf9,0xb0,0xfa,0xe6,0xfa,0xaa,0xfb,0x82,0xfe,0x1f,0x3, +0x6a,0x6,0x1a,0x7,0x6d,0x7,0x1e,0x7,0x27,0x6,0x7e,0x6, +0xc6,0x6,0xac,0x5,0x99,0x3,0xc3,0x0,0xff,0xfe,0x89,0xfe, +0xc0,0xfe,0xec,0x0,0xfa,0x2,0x42,0x3,0x93,0x4,0x4d,0x6, +0xc9,0x5,0x17,0x4,0x1a,0x2,0x96,0xff,0x9d,0xfd,0x45,0xfc, +0xab,0xfa,0xe,0xfa,0xe9,0xfa,0x6b,0xfb,0x1c,0xfc,0x50,0xfd, +0xb4,0xfd,0x95,0xfe,0x12,0xff,0xee,0xfc,0x11,0xfb,0xd5,0xfa, +0x34,0xfb,0x85,0xfc,0xd9,0xfc,0x70,0xfc,0x82,0xfd,0xb5,0xfe, +0x25,0x0,0x40,0x2,0x24,0x4,0xb2,0x6,0xb3,0x7,0xf8,0x5, +0xe4,0x4,0x85,0x4,0x6e,0x4,0x86,0x4,0x96,0x2,0x34,0x0, +0x6b,0xfe,0xdb,0xfb,0xa8,0xfa,0x49,0xfb,0x74,0xfc,0xe0,0xfd, +0xb9,0xfe,0x2e,0x1,0xe6,0x4,0xb4,0x5,0x39,0x5,0xc,0x5, +0x7f,0x4,0x5d,0x5,0xcb,0x5,0x47,0x4,0xb1,0x2,0x58,0x0, +0x91,0xff,0xb8,0x1,0x4b,0x1,0x1a,0xff,0xa9,0xff,0x2a,0x0, +0x2b,0xff,0x99,0xff,0x6a,0x1,0xfb,0x1,0x49,0x0,0x60,0xfe, +0xd2,0xfd,0x58,0xfd,0x4c,0xfc,0xa3,0xfb,0x6e,0xfb,0x28,0xfb, +0x6d,0xfb,0x1e,0xfd,0xf1,0xff,0xb7,0x2,0x7e,0x3,0x8c,0x2, +0x5e,0x3,0x1e,0x5,0xe2,0x3,0x52,0x1,0x84,0xff,0x62,0xfd, +0x94,0xfc,0x2b,0xfe,0x15,0xff,0xc,0xfe,0x8f,0xfd,0x1d,0xff, +0x98,0x0,0xa7,0x0,0x33,0x1,0x43,0x2,0x87,0x2,0x45,0x3, +0x4f,0x4,0x8a,0x3,0xd2,0x1,0x2,0x1,0x78,0x0,0xfe,0xfe, +0x93,0xfd,0x57,0xfe,0x5c,0x0,0xb9,0x0,0x50,0x0,0x8e,0x1, +0x1,0x3,0xbb,0x2,0x4a,0x1,0x6f,0xff,0x73,0xfe,0x81,0xfe, +0xac,0xfc,0x60,0xf9,0xb3,0xf8,0xae,0xf9,0xeb,0xf9,0x9d,0xfb, +0x79,0xfe,0xfc,0xff,0xaa,0x2,0xf8,0x6,0xcf,0x7,0x83,0x5, +0x3,0x4,0x34,0x2,0x3d,0xff,0x6c,0xfc,0x2b,0xf9,0x59,0xf6, +0xb9,0xf5,0x76,0xf6,0xe9,0xf7,0x78,0xfa,0x5c,0xfe,0x4c,0x2, +0x22,0x4,0x2d,0x5,0x6b,0x6,0xa6,0x5,0x1b,0x4,0x83,0x3, +0xe1,0x2,0x55,0x3,0xce,0x3,0xdd,0x2,0x9b,0x4,0x46,0x8, +0x14,0x9,0x4,0x9,0x90,0x9,0xcd,0x8,0x83,0x7,0xa3,0x5, +0xb2,0x2,0x24,0x0,0x21,0xfd,0x9d,0xf9,0xbf,0xf8,0x41,0xfa, +0xb,0xfb,0x69,0xfb,0xdd,0xfc,0xe4,0xfd,0x23,0xfd,0xf4,0xfb, +0xa0,0xfa,0x85,0xf8,0x2d,0xf7,0x96,0xf6,0x67,0xf5,0xe1,0xf5, +0xe,0xf8,0x3f,0xf8,0x77,0xf8,0xa5,0xfb,0xb2,0xfe,0x8e,0x0, +0x0,0x2,0xbd,0x1,0x3d,0x1,0xf0,0x0,0x57,0xff,0x65,0xff, +0x5d,0x1,0xc3,0x1,0x62,0x2,0x8d,0x4,0x50,0x6,0x6a,0x7, +0xc8,0x6,0x4e,0x5,0xe2,0x5,0xdb,0x5,0xcc,0x2,0x95,0xff, +0x3a,0xfe,0xb8,0xfe,0xf7,0xff,0x56,0x1,0x85,0x3,0x5,0x5, +0x44,0x5,0x79,0x5,0xd1,0x3,0x52,0x1,0x62,0x1,0x9c,0x1, +0x36,0x0,0xe6,0xfe,0x2,0xfe,0xa2,0xfe,0x9,0x0,0x43,0xff, +0xd1,0xfd,0x18,0xfe,0xc0,0xff,0x47,0x1,0x2f,0x0,0xe8,0xfd, +0x7f,0xfd,0xe9,0xfc,0xab,0xfb,0xfd,0xfb,0x8b,0xfc,0x34,0xfc, +0x31,0xfb,0xc9,0xf9,0xae,0xf9,0xb9,0xf9,0x5d,0xf8,0x9d,0xf8, +0xc7,0xfa,0x4d,0xfc,0x3c,0xfe,0x11,0x1,0xac,0x3,0x5d,0x6, +0x7e,0x7,0xc,0x6,0x3c,0x5,0x17,0x5,0xe6,0x2,0xf6,0x0, +0xf8,0x0,0xc4,0x0,0x50,0x1,0x10,0x3,0x52,0x3,0x31,0x3, +0x37,0x4,0xc4,0x4,0xe1,0x4,0x7c,0x4,0xc4,0x2,0xc4,0x0, +0xde,0xfe,0x4e,0xfd,0xbb,0xfc,0xbf,0xfc,0xab,0xfd,0x18,0xff, +0xab,0xff,0x6b,0xff,0x1e,0xfe,0x67,0xfd,0xae,0xfe,0xc5,0xfd, +0x51,0xfa,0xaf,0xf9,0x42,0xfb,0x7,0xfc,0x8c,0xfc,0x45,0xfd, +0xf0,0xfe,0xfa,0x1,0x20,0x5,0xe,0x7,0x42,0x6,0xc8,0x3, +0x88,0x2,0x12,0x2,0xd8,0x1,0x32,0x2,0x4f,0x1,0x10,0x0, +0xc4,0x0,0xab,0x1,0x87,0x2,0xeb,0x3,0x5a,0x2,0x12,0xff, +0x8f,0xff,0x20,0x1,0x68,0xff,0xfd,0xfd,0x85,0xff,0x84,0x1, +0xcb,0x2,0xd7,0x3,0x4b,0x4,0xd5,0x3,0x93,0x2,0xf1,0xff, +0x8e,0xfc,0x48,0xfb,0xcd,0xfb,0x24,0xfc,0x4,0xfe,0xe3,0xff, +0x7b,0xfe,0x5,0xfe,0x12,0x1,0x8a,0x3,0xb1,0x3,0x5c,0x2, +0x14,0x1,0xdd,0x0,0x8,0x0,0xe5,0xfe,0x1,0xff,0xc8,0xff, +0xcc,0x0,0x48,0x0,0x44,0xfe,0x63,0xfe,0xc8,0xff,0x79,0x0, +0xa4,0x1,0x14,0x2,0x66,0x1,0x2d,0x1,0xef,0x0,0x29,0x0, +0xbf,0xfd,0xc1,0xfa,0xdb,0xfb,0x51,0xff,0x85,0xff,0x8d,0xfd, +0x5e,0xfc,0x6d,0xfb,0xca,0xfa,0x7e,0xfc,0xa0,0xff,0xc9,0x0, +0xc2,0x0,0x2c,0x1,0x36,0x1,0xa0,0x2,0xc8,0x4,0x7c,0x4, +0x5,0x5,0x89,0x7,0x7f,0x6,0xaf,0x2,0x95,0x1,0xe5,0x2, +0xdf,0x2,0xfe,0x0,0x73,0xff,0xda,0xfe,0x0,0xff,0x26,0xff, +0x32,0xfd,0x4d,0xfb,0x2,0xfc,0x40,0xfb,0x79,0xf8,0x56,0xf8, +0xd2,0xf9,0xa8,0xf9,0x9f,0xf8,0x20,0xf9,0xd1,0xfb,0xe2,0xfd, +0xfc,0xfd,0xd2,0xfe,0x1f,0x0,0x5c,0xff,0xca,0xfe,0x5f,0x1, +0x3e,0x4,0xa5,0x3,0x7d,0x1,0x13,0x1,0xb1,0x1,0xa7,0x1, +0x24,0x1,0xd8,0x0,0x1e,0x0,0x6,0xfe,0xd9,0xfc,0x3d,0xff, +0x32,0x2,0x9e,0x1,0x1a,0xff,0x3c,0xfe,0x70,0xfe,0x84,0xfd, +0xc,0xfd,0x2a,0xfe,0xa0,0xfd,0xb0,0xfb,0x6b,0xfc,0x80,0xfe, +0xcf,0xfe,0xb9,0xfe,0x4,0x0,0xa9,0x2,0x9f,0x5,0xfa,0x6, +0xdb,0x6,0xe6,0x6,0x9c,0x6,0xf7,0x4,0xc1,0x2,0x14,0x1, +0xfb,0xff,0xdc,0xfe,0x46,0xfe,0x95,0xff,0x39,0x2,0x5b,0x4, +0x31,0x5,0xf0,0x4,0x67,0x4,0xe8,0x3,0x6b,0x2,0xd,0x0, +0xca,0xfe,0xc0,0xfe,0xa4,0xfd,0x6c,0xfb,0x81,0xfa,0x60,0xfa, +0x42,0xf9,0xb4,0xf9,0x70,0xfd,0x34,0x0,0xf0,0xff,0x32,0x0, +0xb9,0x1,0x89,0x2,0xfb,0x3,0xea,0x5,0xe1,0x4,0xf1,0x1, +0x91,0x0,0x7c,0x0,0xae,0x0,0x64,0x0,0x4d,0xff,0x9e,0xff, +0xbf,0x1,0xa7,0x2,0x2a,0x1,0x6c,0xff,0x2d,0xff,0x7b,0xfe, +0x2a,0xfc,0x54,0xfb,0x1c,0xfc,0xa2,0xfc,0x70,0xfe,0x74,0x0, +0xa,0x0,0x2a,0xff,0xc,0x0,0xb2,0x1,0x4d,0x1,0x9,0xff, +0x1a,0xff,0xf,0x1,0xab,0x2,0x44,0x5,0xe,0x6,0x81,0x3, +0x95,0x2,0xe3,0x2,0x3d,0x1,0xa2,0xff,0x0,0x0,0xe3,0x1, +0xee,0x2,0xef,0x1,0xe0,0x1,0x86,0x3,0x92,0x4,0xfa,0x3, +0xd,0x1,0xf0,0xfc,0xc6,0xf9,0x3a,0xf8,0x61,0xf9,0xa5,0xfc, +0x29,0xff,0xa7,0x0,0x36,0x3,0x6c,0x6,0xe,0x6,0x8e,0x1, +0x8a,0xfe,0x86,0xfd,0x92,0xfa,0xbc,0xf7,0xd4,0xf7,0x5,0xf9, +0x83,0xfa,0xb8,0xfd,0x3,0x2,0xa3,0x4,0x5e,0x5,0xf4,0x5, +0x14,0x5,0x35,0x1,0x47,0xfc,0x5,0xf9,0xbb,0xf8,0x34,0xfa, +0x46,0xfb,0x14,0xfc,0x2d,0xfe,0x60,0x1,0x36,0x3,0x4d,0x3, +0x8b,0x3,0x5b,0x2,0x65,0xfe,0x91,0xfa,0xab,0xf8,0x6a,0xf9, +0x4c,0xfc,0xef,0xfd,0xfd,0xfd,0xa2,0xfe,0xc1,0xff,0xa6,0x0, +0x27,0x0,0xdf,0xfd,0xb9,0xfb,0x6d,0xfb,0x83,0xfd,0x7e,0x0, +0xfb,0x1,0x53,0x1,0x26,0x0,0x35,0x2,0x61,0x6,0xb,0x7, +0x1f,0x6,0x8,0x6,0x96,0x3,0x51,0x1,0x2e,0x1,0xd7,0xff, +0x20,0xff,0x42,0x0,0xe1,0x0,0xb7,0x1,0x40,0x2,0x99,0x1, +0xff,0x0,0x4d,0xff,0x23,0xfc,0xc0,0xf9,0xef,0xf9,0x9d,0xfc, +0xa2,0xfe,0x1b,0xff,0x1f,0x1,0x3a,0x4,0xea,0x5,0x26,0x6, +0xd4,0x4,0xb0,0x1,0x1f,0xfe,0x26,0xfc,0x5c,0xfb,0x1d,0xf9, +0x69,0xf5,0xa6,0xf3,0xda,0xf5,0x3,0xfa,0x6a,0xfd,0x87,0x0, +0x45,0x3,0x88,0x4,0x6f,0x6,0xc4,0x8,0x41,0x8,0x83,0x6, +0x4c,0x6,0xe2,0x6,0x60,0x6,0xc9,0x2,0x44,0xfe,0x86,0xfd, +0x4,0xff,0xd5,0xfe,0xc8,0xfe,0xa1,0x1,0xf4,0x4,0x68,0x5, +0x1,0x4,0x7a,0x2,0x10,0x0,0xbb,0xfc,0xca,0xf9,0x1,0xf8, +0x6,0xf7,0xfb,0xf5,0x6b,0xf5,0xff,0xf5,0xe6,0xf6,0xbe,0xf7, +0xc2,0xf8,0x7d,0xfa,0x6f,0xfc,0xaa,0xfc,0x86,0xfc,0xc2,0xfd, +0xd7,0xfd,0x44,0xfd,0x34,0xfe,0x6c,0xfe,0xe5,0xfe,0x78,0x1, +0x9,0x2,0x59,0x1,0xae,0x3,0xfc,0x5,0xc2,0x6,0x90,0x7, +0x92,0x5,0x15,0x2,0x34,0x1,0xb7,0x0,0xbd,0xff,0x73,0xff, +0xa6,0xfe,0xa6,0xfe,0xa4,0xff,0xb4,0xff,0xb2,0xff,0x62,0xfe, +0x22,0xfc,0x4c,0xfd,0x7c,0xff,0x7c,0xff,0xa9,0xff,0xf0,0xfe, +0x2c,0xfc,0x4,0xfb,0xac,0xfc,0x4c,0xfe,0xb7,0xfd,0xe0,0xfb, +0xa0,0xfa,0x25,0xfb,0xbe,0xfd,0x4c,0xff,0x5e,0xff,0xa1,0x1, +0x6,0x3,0x28,0x1,0x5f,0x0,0x33,0x0,0x55,0xff,0x24,0xff, +0x42,0xfe,0x33,0xfe,0xde,0xff,0xbb,0x0,0x7d,0x2,0xcd,0x4, +0x1d,0x5,0xee,0x4,0xa2,0x3,0x7e,0x2,0xd5,0x4,0x14,0x6, +0x57,0x3,0xf4,0x0,0x7c,0x0,0xfd,0x0,0x72,0x1,0xa3,0x0, +0x8d,0xff,0x9b,0xff,0xe9,0xff,0x48,0xff,0x67,0x0,0x93,0x4, +0xc6,0x5,0x99,0x2,0x3,0x1,0xdc,0x0,0xc5,0xff,0x10,0xff, +0xd3,0xfd,0xe9,0xfb,0x4a,0xfc,0xeb,0xfe,0xb5,0x0,0xaa,0x0, +0x20,0x0,0x6c,0xfe,0xe,0xfc,0xc0,0xfc,0x60,0xfe,0x9c,0xfc, +0xd2,0xfa,0xd9,0xfb,0xb2,0xfd,0x19,0x0,0x4f,0x3,0x7e,0x5, +0x6d,0x5,0xca,0x4,0xb6,0x4,0x46,0x4,0xaf,0x5,0xd1,0x8, +0x4e,0x8,0x7d,0x6,0x8f,0x7,0xdf,0x6,0x51,0x4,0x8,0x4, +0x93,0x3,0x42,0x2,0x1d,0x2,0xab,0x1,0xa0,0x1,0x46,0x3, +0x5c,0x3,0xdf,0x0,0x14,0xff,0x2c,0xff,0x58,0xff,0x93,0xfe, +0x82,0xfd,0x37,0xfc,0xa,0xfb,0xbd,0xfb,0x24,0xfd,0x56,0xfd, +0xa1,0xfe,0x75,0x0,0x82,0x0,0xab,0x1,0xd0,0x2,0x84,0x1, +0xc3,0x2,0x49,0x4,0xb1,0x0,0xd1,0xfd,0x46,0xfc,0x56,0xf8, +0xb1,0xf7,0x4a,0xfa,0x8f,0xfa,0x12,0xfb,0xed,0xfd,0xc4,0x1, +0x95,0x5,0xd8,0x7,0x8d,0x8,0xfd,0x6,0xb3,0x3,0x16,0x2, +0x12,0x1,0x91,0x0,0xd1,0x2,0xc2,0x3,0xff,0x2,0xc4,0x4, +0x66,0x6,0x84,0x6,0x14,0x7,0x98,0x5,0x5c,0x1,0xde,0xfd, +0xf2,0xfc,0x92,0xfd,0x8c,0xfd,0x26,0xfc,0x45,0xfa,0x12,0xfa, +0xde,0xfc,0x54,0xff,0x4,0x0,0xaf,0x0,0xf4,0xfe,0x7f,0xfc, +0x85,0xfe,0xa1,0x0,0xc2,0xff,0xac,0xff,0xbb,0xfe,0x31,0xfd, +0xe5,0xfe,0xd7,0xff,0x40,0xff,0x28,0x2,0x99,0x4,0xa5,0x3, +0x3d,0x5,0xc7,0x8,0x4,0x9,0x1e,0x8,0x4f,0x8,0x2f,0x6, +0xc0,0x1,0xca,0xff,0xf9,0xff,0xe2,0xfe,0x65,0xfe,0x2e,0xff, +0x72,0xfe,0x73,0xfe,0xf4,0x0,0xc6,0x2,0xe7,0x2,0x1b,0x1, +0xf6,0xfd,0x24,0xfd,0x18,0xfd,0x85,0xf9,0x9e,0xf5,0xbb,0xf5, +0x48,0xf7,0xd2,0xf6,0x93,0xf6,0xe1,0xf8,0xd5,0xfa,0x1b,0xfb, +0xce,0xfb,0x1e,0xfd,0xa1,0xfe,0x88,0xff,0x96,0xff,0x18,0x1, +0x3e,0x2,0xce,0xff,0x6c,0xfd,0xdb,0xfd,0xb6,0xfe,0x5f,0xff, +0x95,0x1,0xdd,0x4,0x89,0x6,0x8a,0x7,0x3e,0xa,0x9e,0xb, +0x90,0xa,0x89,0x9,0xf4,0x6,0xa8,0x3,0xa7,0x2,0x5a,0x1, +0x84,0xff,0xbb,0xff,0xe1,0xff,0xce,0xfe,0xc7,0xfd,0xb8,0xfb, +0xaf,0xf8,0x73,0xf7,0x50,0xf8,0x77,0xf8,0x88,0xf7,0x8a,0xf7, +0x6c,0xf8,0x1d,0xf9,0x53,0xf9,0x5f,0xfa,0x39,0xfd,0x35,0xfe, +0x77,0xfd,0xa,0x1,0x1f,0x6,0xab,0x7,0xcc,0x8,0x1e,0x9, +0x29,0x7,0x5,0x6,0xe0,0x3,0xbd,0xff,0xea,0xfd,0x8b,0xfd, +0x18,0xfc,0x83,0xfb,0x58,0xfc,0xc8,0xfc,0x77,0xfc,0x8d,0xfc, +0xfd,0xfc,0x62,0xfc,0xda,0xfa,0x4f,0xf9,0xfc,0xf7,0x37,0xf7, +0x68,0xf7,0xff,0xf8,0x64,0xfb,0x2d,0xfd,0x5f,0xfe,0x51,0xff, +0xe,0x1,0xa1,0x4,0xf2,0x6,0x5a,0x6,0x50,0x6,0x65,0x7, +0x23,0x8,0x96,0x9,0xdb,0xa,0x94,0x9,0x69,0x6,0x99,0x3, +0xd1,0x1,0x69,0xff,0x28,0xfc,0xd3,0xfa,0x73,0xfb,0xa4,0xfb, +0xbe,0xfc,0x9d,0xff,0x8e,0x0,0x58,0xff,0x3f,0xff,0x36,0xfe, +0xca,0xfa,0xb8,0xf8,0x8b,0xf7,0x7d,0xf5,0x8a,0xf5,0x8d,0xf7, +0x43,0xfa,0x60,0xff,0xb4,0x3,0xc5,0x4,0x7c,0x7,0xc5,0xb, +0xa9,0xb,0x8,0x8,0xdb,0x5,0xcc,0x4,0x65,0x2,0xa6,0x0, +0x12,0x2,0xad,0x4,0xc8,0x6,0xf6,0x8,0x59,0xa,0x45,0xa, +0xd8,0x8,0x60,0x5,0x66,0x1,0x15,0xff,0x9d,0xfc,0x6e,0xf8, +0x65,0xf5,0xeb,0xf5,0x36,0xf7,0xc9,0xf5,0x1b,0xf4,0x13,0xf6, +0x70,0xf9,0x6f,0xfa,0x5c,0xf9,0xa8,0xf7,0x35,0xf7,0xef,0xf8, +0xa,0xf9,0xb1,0xf5,0x87,0xf3,0x14,0xf4,0x3d,0xf4,0x6e,0xf4, +0xc0,0xf6,0xa5,0xfa,0x74,0xfe,0xa7,0x0,0x6a,0x1,0x83,0x2, +0x1c,0x4,0x3f,0x4,0x27,0x2,0x2,0x1,0xb8,0x2,0xbf,0x2, +0xc8,0xff,0xd2,0xff,0xb7,0x2,0xcf,0x2,0x5a,0x1,0x2a,0x2, +0x8b,0x4,0xc7,0x6,0xa8,0x7,0x8c,0x6,0xef,0x4,0x30,0x4, +0xf3,0x2,0xa7,0xff,0xd1,0xfb,0x4e,0xf9,0x24,0xf7,0xfa,0xf5, +0x4a,0xf8,0x2a,0xfb,0x8d,0xfa,0x21,0xf9,0x60,0xf9,0x94,0xf9, +0x4b,0xf9,0x11,0xf8,0xa8,0xf5,0xed,0xf4,0x9c,0xf5,0xc5,0xf4, +0x9e,0xf3,0x56,0xf3,0x55,0xf3,0x4a,0xf4,0x8b,0xf5,0xd8,0xf6, +0x2c,0xf9,0xbb,0xfa,0x51,0xfb,0x91,0xfc,0xcb,0xfc,0x3c,0xfc, +0xfe,0xfc,0x87,0xfd,0xce,0xfd,0x15,0xff,0x15,0x0,0x50,0x2, +0xe8,0x6,0xf8,0x9,0xe,0xb,0xa7,0xc,0x74,0xd,0x2f,0xd, +0x2e,0xd,0xd0,0xc,0x88,0xc,0x0,0xc,0x22,0xa,0xd7,0x9, +0x38,0xb,0x2f,0xa,0x9c,0x8,0x47,0x9,0x91,0x9,0x7b,0x9, +0x0,0xb,0x12,0xc,0x7b,0xb,0xa8,0xa,0x6c,0x8,0x13,0x4, +0xa,0x1,0x4d,0xff,0xd,0xfc,0x5,0xfb,0x92,0xfe,0x9c,0x1, +0x9c,0x2,0x3c,0x3,0x53,0x3,0xb9,0x3,0x9f,0x2,0xc0,0xfd, +0x0,0xf8,0x76,0xf3,0x6e,0xf1,0x76,0xf3,0x5,0xf6,0x24,0xf6, +0x8a,0xf5,0xce,0xf5,0xac,0xf7,0xfd,0xf9,0x2,0xfb,0xd9,0xfb, +0xb9,0xfd,0x5f,0x0,0x53,0x2,0x2,0x2,0xf6,0x0,0x39,0x0, +0x1,0xfe,0x13,0xfb,0x82,0xfa,0xd9,0xfc,0x3d,0x0,0x55,0x4, +0x27,0x9,0x5e,0xc,0xc7,0xe,0x19,0x11,0x45,0xe,0xfa,0x8, +0xa0,0x7,0x50,0x4,0xd7,0xfe,0xd,0x1,0xd,0x7,0x97,0x8, +0xaa,0x8,0x5a,0x9,0xf1,0x9,0xc8,0xa,0xb2,0x7,0x4e,0x0, +0xc8,0xfd,0x8f,0x1,0xe4,0x2,0x83,0x1,0xd0,0x2,0xd7,0x4, +0x17,0x4,0xa0,0x0,0xdd,0xfc,0xc2,0xfc,0xef,0xfe,0xce,0xfd, +0xea,0xf9,0x13,0xf9,0x83,0xfc,0x16,0xfd,0x2e,0xf8,0x82,0xf6, +0x52,0xf9,0x2c,0xf9,0x35,0xf8,0x46,0xfa,0x32,0xfc,0x95,0xfc, +0xca,0xfa,0x15,0xf7,0x6f,0xf6,0xa9,0xf9,0x7e,0xfb,0x2f,0xfb, +0x64,0xfc,0x5f,0xfe,0xe5,0xfd,0xae,0xfc,0x9d,0xfe,0x52,0x3, +0xf4,0x5,0x9a,0x3,0x90,0x1,0x5f,0x5,0x22,0xc,0xc2,0xf, +0xb3,0xc,0x39,0x8,0x1a,0xa,0xe,0xb,0x34,0x5,0x1,0x3, +0x4d,0x5,0x6f,0x3,0xc3,0xff,0xd5,0xfd,0x21,0xfe,0xf6,0x1, +0x2b,0x5,0x8c,0x4,0xb7,0x2,0xb3,0x1,0x25,0x2,0xd8,0x3, +0x49,0x7,0x61,0xa,0xa2,0x6,0x2d,0x0,0x81,0x0,0xe1,0x1, +0x72,0xff,0xe6,0xff,0xe0,0x0,0x22,0xfe,0xd6,0xff,0x98,0x6, +0xc7,0x8,0x22,0x7,0x8,0x6,0x81,0x2,0xda,0xfc,0xa8,0xf8, +0xd8,0xf5,0xd9,0xf5,0xe6,0xf8,0xec,0xf9,0xdf,0xf8,0x11,0xfb, +0x34,0x0,0x7,0x3,0x44,0x0,0x81,0xfa,0xf2,0xf7,0xf8,0xf8, +0x3c,0xf9,0xcb,0xf9,0x36,0xfd,0xcc,0x0,0x12,0x1,0xcd,0xfd, +0x7f,0xfb,0xd0,0xfd,0x12,0xff,0x8b,0xfb,0x8,0xfa,0xb6,0xfd, +0x6b,0x2,0xde,0x4,0x5c,0x5,0x71,0x7,0xde,0x8,0xd8,0x4, +0x7e,0x1,0x18,0x2,0xca,0x1,0xb5,0x2,0xc8,0x4,0x23,0x4, +0xdd,0x5,0x9,0xb,0xeb,0xc,0xca,0xa,0x20,0x8,0x69,0x7, +0xfb,0x6,0x2c,0x4,0x9b,0x2,0x4,0x3,0x91,0x1,0xad,0xff, +0x22,0xff,0x72,0x1,0x1d,0x7,0x95,0x8,0x9b,0x3,0x96,0xff, +0x28,0xfd,0x2b,0xfa,0xaa,0xf8,0xd9,0xf6,0xb4,0xf2,0xb7,0xf0, +0xdd,0xf3,0xbd,0xf7,0xa5,0xf8,0x11,0xf9,0xdf,0xf9,0x3b,0xf8, +0x4,0xf6,0xf1,0xf7,0x3a,0xfc,0x56,0xfd,0xbb,0xfb,0x4c,0xfb, +0x6,0xfc,0xc6,0xfd,0x97,0x0,0xb0,0x1,0xa,0x2,0xff,0x2, +0x7b,0x0,0xa3,0xfc,0x62,0xfe,0xd8,0x2,0x9f,0x3,0x6f,0x1, +0x8d,0x0,0x73,0x3,0x77,0x7,0xc0,0x6,0xdc,0x1,0x9b,0xff, +0x48,0x0,0x26,0xfe,0x45,0xfb,0x4d,0xfe,0x8d,0x4,0x47,0x6, +0x87,0x3,0x60,0x2,0x5c,0x4,0x69,0x5,0xc3,0x2,0x83,0xfe, +0x47,0xfe,0x7e,0x2,0xb5,0x3,0xe2,0x1,0xdd,0x3,0x5e,0x5, +0x93,0xff,0x4f,0xf8,0xea,0xf6,0xe0,0xf8,0x49,0xf8,0x30,0xf6, +0x70,0xf6,0xbe,0xf6,0x7c,0xf5,0x44,0xf4,0x82,0xf1,0x23,0xee, +0x13,0xee,0x24,0xf1,0x59,0xf5,0x4f,0xf9,0xda,0xfc,0x18,0xff, +0x4c,0xfd,0xb5,0xfa,0x98,0xfb,0x48,0xfb,0x5d,0xf7,0x6,0xf6, +0x21,0xfb,0x64,0x1,0x6f,0x2,0x22,0x2,0x44,0x4,0xc7,0x3, +0xad,0x0,0x20,0x0,0x83,0x3,0xe3,0x7,0xe5,0x6,0x43,0x4, +0xf,0x8,0x86,0x9,0x98,0x3,0xa0,0xff,0x8a,0xfe,0xe1,0xfc, +0x82,0xf9,0x66,0xf5,0x57,0xf9,0xab,0x1,0x65,0x0,0x73,0xfc, +0x3d,0x0,0x9a,0x4,0xa5,0x2,0xce,0xfb,0xe3,0xf6,0x44,0xf6, +0x29,0xf2,0x8f,0xed,0xfd,0xf2,0x36,0xfb,0x12,0xfd,0x2d,0xfd, +0xa4,0xfd,0x94,0xfd,0x52,0xfe,0x7e,0xfc,0x7d,0xf7,0x1b,0xf5, +0xf2,0xf4,0x47,0xf4,0x42,0xf6,0xf3,0xfa,0x19,0xfd,0x7b,0xfa, +0x65,0xf7,0xe0,0xf9,0x72,0xff,0xfc,0x1,0x9e,0x3,0x62,0x5, +0xcf,0x3,0x8,0x2,0x86,0x1,0x8b,0xfe,0x7f,0xfd,0x32,0x1, +0x34,0x1,0x93,0xfd,0xdd,0xff,0xde,0x5,0xa,0x8,0xe4,0x7, +0x13,0x8,0x5b,0x8,0x1a,0x8,0x30,0x5,0xc2,0x1,0x39,0x1, +0x0,0xff,0x99,0xf8,0x4f,0xf4,0x2f,0xf6,0x64,0xfa,0x18,0xfc, +0x29,0xfe,0xa6,0x3,0x96,0x6,0xc5,0x5,0xb,0x6,0xf4,0x3, +0x5c,0xfe,0x79,0xfb,0x25,0xfa,0x31,0xf8,0x99,0xfa,0x6e,0x0, +0x55,0x2,0xf8,0x0,0x5,0x2,0xcf,0x4,0xfb,0x6,0xf8,0x8, +0x1e,0x9,0x74,0x6,0x26,0x3,0x74,0x1,0xb3,0x1,0xf5,0xff, +0xb,0xfc,0x37,0xfc,0x66,0xfe,0xf4,0xfd,0x8c,0xff,0x4b,0x4, +0x56,0x7,0xeb,0x6,0x58,0x4,0x97,0x3,0x52,0x5,0x22,0x5, +0xeb,0x2,0xe5,0x1,0x2a,0x3,0x27,0x4,0xfe,0x1,0xae,0x1, +0x9a,0x6,0xa9,0x8,0xab,0x4,0x15,0x3,0x11,0x8,0xc6,0xc, +0x81,0xb,0x48,0x9,0x14,0xa,0x39,0x9,0xd8,0x5,0x9,0x4, +0x2f,0x4,0xb2,0x3,0x0,0x1,0x41,0xff,0x3d,0x1,0xeb,0x3, +0xd3,0x6,0x2c,0xa,0xa1,0x9,0x6c,0x7,0x13,0x8,0xd8,0x6, +0x7b,0x2,0xa2,0x0,0x8f,0xff,0x5a,0xfc,0x72,0xfc,0xcc,0x0, +0x65,0x2,0xfa,0xff,0xa8,0xfe,0xed,0xff,0x35,0x0,0x20,0xff, +0x19,0x2,0x8f,0x7,0x3c,0x7,0x48,0x3,0x9a,0x2,0xdf,0x2, +0xbd,0xff,0x62,0xfb,0xbd,0xfb,0x5f,0x0,0xf6,0x1,0xc3,0x1, +0x3f,0x6,0x4,0xc,0xfe,0xb,0x8f,0x5,0xc9,0xff,0x86,0x0, +0x20,0x1,0x18,0xfc,0x3,0xf9,0x2a,0xfc,0x6a,0xff,0x22,0xff, +0x16,0x1,0x42,0x8,0x14,0xb,0xfc,0x5,0xca,0x2,0xd0,0x3, +0x43,0x3,0xf5,0xfe,0xf3,0xf8,0xbb,0xf6,0x43,0xf8,0xdb,0xf7, +0xe4,0xf7,0x7f,0xfc,0xc2,0x1,0xe3,0x3,0x1c,0x4,0xba,0x4, +0x5,0x5,0x53,0x3,0x71,0x0,0x99,0xfc,0x69,0xf8,0xb5,0xf5, +0xd3,0xf3,0x8c,0xf3,0xed,0xf6,0x49,0xfb,0xc5,0xfd,0xa5,0xff, +0x8a,0x2,0x9d,0x4,0x8d,0x2,0x84,0xff,0xbc,0x0,0xe0,0x1, +0x15,0xff,0xe7,0xfe,0x62,0x3,0x27,0x5,0x77,0x3,0xfa,0x3, +0x33,0x6,0xd8,0x6,0xcb,0x5,0x24,0x4,0xd3,0x3,0xa6,0x4, +0x1d,0x4,0x5a,0x2,0xdc,0xff,0x88,0xfc,0xa0,0xf9,0x83,0xf7, +0xeb,0xf6,0x48,0xf7,0x72,0xf6,0x60,0xf7,0xd5,0xfa,0xf6,0xfb, +0x6,0xfd,0xc9,0x0,0xbb,0x1,0xdf,0xfe,0x68,0xfc,0x23,0xfa, +0x9,0xf8,0x80,0xf8,0x7d,0xf9,0xb0,0xf7,0x9e,0xf6,0xd3,0xf9, +0x78,0xfd,0xe7,0xfd,0x4f,0xfc,0xdc,0xfb,0xfc,0xfc,0xb0,0xfa, +0xb3,0xf6,0xf2,0xf9,0x6c,0xff,0x4a,0xfd,0xc,0xfa,0xa0,0xfc, +0x31,0xff,0x54,0xfd,0xcc,0xfb,0x2b,0xff,0x40,0x2,0x52,0x0, +0x64,0x0,0xbf,0x4,0x57,0x5,0xa5,0x2,0x33,0x1,0x5,0xff, +0x44,0xfd,0xe1,0xfc,0xd7,0xfa,0xa3,0xfa,0x89,0xfd,0x9b,0xfe, +0x5a,0x1,0x4f,0x7,0x61,0x8,0xa2,0x4,0xf1,0x1,0xf4,0x0, +0x1a,0x0,0x4,0xfd,0xf2,0xf9,0x27,0xfb,0xf0,0xfc,0x23,0xfd, +0x8e,0xfe,0x7f,0x0,0xe8,0x2,0xc9,0x4,0x9b,0x3,0x88,0x3, +0xf6,0x5,0xa7,0x5,0x8e,0x3,0x46,0x2,0xa7,0xfe,0xc6,0xf8, +0xad,0xf5,0xf1,0xf5,0x15,0xf6,0x5,0xf7,0xe3,0xfa,0xc6,0xfe, +0xfb,0x0,0x77,0x3,0x13,0x6,0x21,0x6,0x7d,0x2,0x61,0xfe, +0x59,0xfc,0xa9,0xfa,0x36,0xfa,0x64,0xfc,0xf6,0xfd,0x45,0xfe, +0xc,0xff,0x5f,0x0,0x81,0x3,0xb,0x7,0xdd,0x6,0x48,0x4, +0xfa,0x2,0xe9,0x1,0x5c,0xff,0xc8,0xfe,0x4f,0x2,0xbc,0x3, +0x3a,0x0,0x62,0xff,0xde,0x3,0x57,0x7,0x1a,0x8,0x3b,0x9, +0xdf,0x9,0xad,0x8,0xe9,0x8,0x46,0xb,0xcf,0xa,0x41,0x7, +0xdc,0x5,0x2d,0x6,0x30,0x4,0x1c,0x2,0xc0,0x3,0x3b,0x6, +0x72,0x5,0x40,0x3,0xca,0x3,0xae,0x6,0xb2,0x6,0x25,0x2, +0xd7,0xfe,0xf9,0xfe,0xbe,0xfd,0x4d,0xfb,0x29,0xfc,0x25,0xff, +0xac,0xfe,0x12,0xf9,0x49,0xf5,0xa8,0xf8,0x8c,0xfb,0x8,0xf9, +0x46,0xf9,0x91,0xfd,0x80,0xfe,0x9f,0xfd,0xf6,0xfe,0xd8,0xff, +0xf3,0xfc,0xad,0xf5,0xce,0xef,0xe9,0xf0,0x6e,0xf3,0x77,0xf5, +0x9c,0xfb,0xfd,0xff,0x6b,0x0,0x7a,0x4,0x69,0x8,0x10,0x6, +0x4,0x1,0x8f,0xfc,0x5e,0xfa,0xdd,0xf8,0xb8,0xf6,0x8d,0xf8, +0x2d,0xfb,0xc9,0xfa,0x32,0xff,0xb0,0x5,0xfc,0x5,0x82,0x6, +0xbf,0x8,0xdf,0x5,0x71,0x1,0xa4,0x0,0x3f,0x1,0x89,0x0, +0x1,0xff,0xd7,0xfe,0x4,0xff,0x79,0xfe,0x9b,0x0,0xb5,0x3, +0x92,0x2,0x17,0x2,0x90,0x6,0x57,0x7,0x75,0x2,0xcb,0x2, +0x1,0x6,0xdb,0x0,0x87,0xf9,0x60,0xf9,0x14,0xfb,0xc8,0xfa, +0x73,0xfa,0x1b,0xf9,0xb9,0xf8,0xb6,0xfc,0xcc,0xff,0x5f,0xfc, +0xcc,0xf8,0x84,0xfa,0x80,0xf7,0x3a,0xeb,0x4c,0xe6,0x0,0xef, +0x45,0xf4,0xf4,0xef,0xc5,0xed,0x87,0xf2,0xd2,0xf8,0x36,0xf9, +0x39,0xf2,0x3,0xee,0x22,0xf1,0x92,0xf0,0x47,0xe9,0xdd,0xe7, +0xfa,0xef,0x73,0xf4,0xe1,0xee,0x5e,0xeb,0x4a,0xf1,0x8e,0xf6, +0xf1,0xf5,0x2,0xf8,0x2a,0xff,0xda,0x1,0xb6,0xfd,0x16,0xfd, +0xb,0x1,0xc8,0xff,0x5b,0xfb,0x49,0xfa,0x15,0xfa,0x4e,0xfc, +0xc,0x4,0xa4,0xa,0x5f,0xa,0x6f,0x7,0x14,0x9,0x78,0xc, +0x55,0x9,0x59,0x5,0xb,0x8,0xe3,0x9,0xfd,0x6,0x2c,0x5, +0xa4,0x6,0x2c,0x9,0x25,0x8,0xa8,0x4,0x57,0x6,0x9c,0xa, +0xe2,0xb,0xb6,0xe,0x2a,0x12,0x63,0x10,0xc4,0xd,0x5c,0xd, +0x83,0xa,0xf6,0x6,0x88,0x7,0x66,0x8,0x7e,0x5,0x6,0x4, +0x89,0x8,0xa9,0xc,0xe3,0x9,0xae,0x5,0x9,0x5,0xe3,0x3, +0x32,0x3,0xda,0x5,0xd9,0x4,0xed,0xfe,0xcd,0xfc,0xe1,0xfd, +0x20,0xfc,0x5b,0xfa,0x1f,0xfe,0xe4,0x4,0x3d,0x7,0x3d,0x6, +0x20,0x9,0xea,0xc,0x8c,0xa,0x5c,0x4,0xa7,0xfe,0x17,0xfb, +0x50,0xfb,0xd1,0xfc,0xa4,0xfc,0x2f,0xfe,0x63,0x3,0x37,0x7, +0x60,0x7,0xfd,0x8,0xf3,0xc,0x3,0xb,0xb6,0x2,0x40,0x1, +0x80,0x8,0x5d,0x9,0x2d,0x2,0xcb,0x0,0x7f,0x5,0x20,0x6, +0x21,0x4,0x71,0x6,0xc9,0xa,0x91,0xb,0x2f,0xa,0x58,0xa, +0x2b,0xc,0x41,0xf,0xb1,0x10,0x41,0xb,0x51,0x3,0xf8,0x1, +0xc4,0x3,0xe3,0x1,0xa0,0x0,0x1f,0x3,0xc2,0x4,0xa9,0x4, +0xa7,0x4,0xf0,0x4,0x47,0x7,0xda,0x8,0x21,0x4,0xd,0xfd, +0xa,0xfb,0xbd,0xfe,0xf,0x1,0xfe,0xfa,0xf3,0xf4,0x55,0xf8, +0x19,0xfb,0x1e,0xf8,0x13,0xf9,0xa5,0xfe,0x97,0x0,0x4a,0xfb, +0x1,0xf7,0xb8,0xfc,0x3a,0x0,0xbc,0xf8,0xf5,0xf4,0x13,0xf8, +0xaa,0xf9,0x93,0xfc,0xf6,0xff,0xe9,0xff,0xe6,0xfd,0x7a,0xf9, +0xb1,0xf6,0x9b,0xf8,0x63,0xfb,0xf8,0x0,0xb5,0x6,0x41,0x5, +0x58,0x3,0xad,0x4,0x78,0x2,0x34,0xfe,0x27,0xfb,0x8d,0xf8, +0x65,0xf7,0xf1,0xf9,0xf0,0x3,0xfd,0xd,0x80,0xb,0x2b,0x7, +0x6c,0xa,0x4c,0x7,0xf,0xff,0x9e,0x0,0xf8,0x4,0xd,0xff, +0xb6,0xf5,0xa1,0xf9,0x64,0x6,0x85,0x6,0x14,0x2,0xf7,0xa, +0x19,0xe,0x5a,0x3,0xe2,0x1,0xad,0x6,0xa0,0xff,0xa3,0xf4, +0x9b,0xf3,0xa4,0xf7,0xc0,0xf5,0xac,0xf6,0x77,0x2,0xc2,0x3, +0xb,0xf8,0x29,0xf8,0x55,0xfa,0xe5,0xf0,0xc9,0xf0,0xa8,0xfa, +0x30,0xfb,0x47,0xf6,0x82,0xf4,0x36,0xf3,0x9e,0xef,0x42,0xec, +0x82,0xed,0xff,0xec,0xa5,0xe7,0x3,0xeb,0x86,0xf5,0xef,0xf8, +0x1b,0xfa,0x22,0xfd,0x2d,0xfa,0x5,0xf3,0xa0,0xed,0x13,0xec, +0x86,0xed,0xd4,0xec,0xd0,0xed,0xef,0xf4,0xce,0xf6,0x5c,0xf2, +0xce,0xf4,0x77,0xfb,0x95,0xfd,0x78,0xfc,0x77,0xf9,0x67,0xf6, +0xf5,0xf6,0x61,0xf9,0xc0,0xf8,0xcd,0xf5,0x71,0xf7,0x4,0xfc, +0x1d,0xfa,0x2f,0xf7,0x65,0xfd,0xb5,0x3,0x7,0x1,0x3b,0xff, +0x96,0x5,0xb0,0x9,0xcf,0x5,0x1a,0x5,0x99,0x9,0x40,0x7, +0xd,0x0,0xf6,0xfe,0xd4,0x1,0x97,0x2,0x3f,0x3,0x87,0x6, +0xec,0x8,0xd,0x8,0x35,0x9,0x92,0xc,0x86,0xa,0x8b,0x4, +0x7e,0x1,0x40,0x1,0xf0,0x1,0x50,0x2,0x9e,0x1,0xd5,0x2, +0x50,0x6,0xff,0x6,0xcd,0x3,0x30,0x1,0xd5,0x1,0xb7,0x4, +0xec,0x6,0xe,0x5,0x8b,0xff,0xcb,0xfb,0xc4,0xfc,0x8e,0xfe, +0xdf,0xfc,0x33,0xfa,0x2e,0xfb,0x99,0xfe,0x70,0x1,0xf4,0x3, +0xc4,0x5,0x41,0x6,0x66,0x6,0x46,0x5,0x3a,0x2,0x91,0xff, +0x17,0xfe,0x82,0xfc,0x23,0xfb,0x9f,0xfb,0x27,0xfe,0xa3,0x1, +0xf7,0x5,0x19,0xa,0x86,0xb,0x56,0xb,0x99,0xb,0x19,0xa, +0xe7,0x6,0x23,0x5,0x20,0x3,0x7e,0x0,0x93,0x2,0xb2,0x8, +0x5c,0xc,0x63,0xc,0x9d,0xb,0x69,0xb,0x45,0xb,0x53,0xb, +0xa5,0xc,0x9a,0xc,0x51,0x9,0x68,0x6,0x61,0x4,0x4d,0x2, +0x15,0x2,0x99,0x1,0x80,0x0,0x92,0x1,0x4,0x2,0x84,0x2, +0x12,0x6,0xfa,0x7,0xc7,0x6,0x67,0x4,0xa,0x0,0x3e,0xfd, +0x57,0xfd,0xc0,0xfc,0x8a,0xfd,0xa8,0x0,0x90,0x1,0x51,0x0, +0xf2,0x1,0xb3,0x6,0xb2,0x6,0xba,0x0,0x79,0xff,0xe6,0x2, +0x12,0x1,0x6a,0xfd,0x3e,0xff,0xcc,0x1,0x96,0x0,0x94,0xff, +0xdd,0x0,0x4f,0x1,0x4c,0x1,0x21,0x3,0xd4,0x3,0xba,0x2, +0x79,0x4,0x9c,0x8,0xa7,0x9,0xd7,0x4,0x24,0xfe,0xa1,0xfc, +0xf0,0xfe,0xdc,0xfe,0x9b,0xfe,0x93,0x1,0x6c,0x4,0xc8,0x4, +0xb,0x4,0xf5,0x3,0xc4,0x2,0x72,0xfd,0x69,0xf9,0xcc,0xfb, +0x95,0xfd,0x97,0xfc,0x21,0xff,0x5c,0x1,0xd3,0xfd,0x32,0xfa, +0x2f,0xfa,0x74,0xf9,0x55,0xf6,0x8a,0xf6,0x8,0xfb,0x8a,0xfa, +0xa3,0xf5,0x3,0xf7,0x49,0xfb,0xea,0xf9,0x9b,0xf5,0x15,0xf2, +0x9c,0xf0,0x5b,0xf1,0xe6,0xf2,0xa8,0xf7,0xaa,0xfd,0x64,0xfc, +0xea,0xf7,0x88,0xfb,0x2a,0x2,0xc7,0xff,0xa8,0xf9,0xad,0xfa, +0x36,0xfc,0x1f,0xf8,0x37,0xf9,0x1f,0x1,0x2a,0x4,0xcc,0x3, +0x96,0x6,0xbd,0x6,0xf7,0x1,0x6,0x1,0xea,0x3,0xe1,0x1, +0x58,0xfe,0x2b,0x1,0xf6,0x4,0x17,0x5,0x7a,0x6,0xbe,0x8, +0x5f,0x6,0x4c,0x1,0xa4,0xff,0xc9,0xff,0x86,0xfc,0xbc,0xfa, +0xe9,0xff,0xa5,0x3,0x2,0x0,0x0,0xfe,0x2d,0x2,0xa6,0x2, +0xcf,0xfb,0x1,0xfa,0x18,0x1,0x9d,0x3,0x68,0xfe,0x9f,0xfc, +0xc1,0xfe,0x2c,0xfd,0x74,0xf9,0x78,0xf8,0x2d,0xf8,0x44,0xf6, +0x43,0xf6,0x6f,0xf9,0xcf,0xfb,0xc6,0xfc,0xba,0xfd,0xb7,0xfc, +0x9d,0xfa,0xdc,0xfa,0xa0,0xfb,0x61,0xfa,0x36,0xf9,0x6,0xf9, +0x1a,0xf8,0x99,0xf6,0x69,0xf6,0x81,0xf8,0x4e,0xfb,0x7f,0xfc, +0xa1,0xfc,0x66,0xfd,0x95,0xfe,0x49,0xff,0xd0,0xff,0xd8,0x0, +0x97,0xff,0xde,0xf9,0x57,0xf6,0xce,0xf8,0xb8,0xf9,0xde,0xf7, +0x7a,0xf9,0x31,0xfc,0x9f,0xfc,0x7a,0xfe,0x41,0x2,0x61,0x3, +0xd8,0x0,0x7,0xff,0x2,0x0,0xe3,0xff,0x23,0xfe,0x25,0xff, +0x78,0x1,0xcc,0x0,0xe7,0xfe,0x84,0xff,0x4e,0x2,0x40,0x3, +0x1d,0x1,0x78,0x1,0xd2,0x4,0xe4,0x3,0x5a,0x1,0x6a,0x3, +0x23,0x3,0xbd,0xfd,0xb7,0xfb,0x11,0xfd,0xfa,0xfc,0xc3,0xfd, +0x4d,0x1,0x36,0x4,0x7f,0x3,0x7f,0x2,0xd,0x4,0x43,0x2, +0x7a,0xfd,0x32,0xfe,0x60,0x0,0x8c,0xfd,0x1a,0xfc,0xc,0xff, +0x9d,0x0,0x67,0xfe,0xb9,0xfb,0x6e,0xfb,0x6a,0xfb,0xcc,0xfa, +0x9a,0xfc,0x7c,0xfe,0x2c,0xfd,0x15,0xfc,0x9,0xfc,0xfc,0xf9, +0x94,0xf7,0x39,0xf7,0x1b,0xf7,0xed,0xf6,0xa2,0xf8,0x7f,0xfa, +0x83,0xfb,0xed,0xfe,0x52,0x2,0xbc,0x0,0xa5,0xff,0x5c,0x3, +0x95,0x3,0xd8,0xfd,0xd5,0xfc,0xde,0x1,0x88,0x2,0xc,0x0, +0xfa,0x2,0xf5,0x6,0x43,0x5,0xc1,0x3,0xf9,0x7,0x55,0xc, +0xd2,0xb,0x6e,0xa,0xe7,0xa,0xe8,0x9,0x19,0x7,0xa4,0x4, +0x1a,0x2,0x89,0xff,0xfd,0xfd,0xe9,0xfe,0x81,0x2,0xd6,0x4, +0xd8,0x4,0xed,0x4,0xd7,0x2,0x5b,0xfe,0xf8,0xfb,0x39,0xfb, +0x3a,0xfa,0xdc,0xfa,0xbe,0xfc,0x15,0xfd,0xe4,0xfb,0xaa,0xfb, +0xbe,0xfc,0x88,0xfc,0xb7,0xfb,0x7,0xfe,0xa9,0x1,0x4c,0x1, +0xf7,0xfd,0x22,0xfd,0x70,0xff,0xd0,0x0,0x2,0x0,0xf1,0xff, +0x16,0x1,0x8a,0x0,0x6b,0xff,0xb,0x1,0xe6,0x2,0xd7,0x1, +0x1f,0x0,0x95,0xff,0x1a,0x0,0xc7,0x2,0xf8,0x6,0x77,0x8, +0xa8,0x5,0xbc,0x3,0xbe,0x4,0x2f,0x2,0xab,0xfc,0x25,0xfd, +0x91,0x0,0xba,0xfd,0xe4,0xf9,0xc7,0xfd,0x72,0x2,0xda,0xff, +0xd,0xff,0x33,0x5,0xc8,0x4,0xb8,0xfc,0xdd,0xfc,0xf7,0x0, +0x30,0xfb,0x9e,0xf4,0x85,0xf7,0xa9,0xfa,0xc4,0xf8,0x85,0xfa, +0xe8,0x2,0xe0,0x9,0x55,0xc,0x44,0xe,0x5e,0xe,0xe0,0xb, +0x27,0xb,0x77,0x7,0xf7,0xfd,0x16,0xfc,0xe3,0x3,0x57,0x6, +0x61,0x4,0xc5,0xa,0x8d,0x15,0xd9,0x15,0xc4,0xc,0x8e,0xa, +0x74,0xe,0xbc,0x9,0xd0,0x2,0x11,0x5,0xf1,0x6,0xc3,0x2, +0x28,0xfe,0x19,0xf9,0x8a,0xf5,0x23,0xf9,0x37,0x0,0x1f,0x2, +0xa9,0x0,0x2e,0x5,0xc9,0x8,0xfa,0xfd,0x9a,0xf3,0xf9,0xf8, +0x63,0xfb,0xa,0xf3,0x2e,0xf4,0x9a,0xfe,0xda,0x1,0xb9,0x1, +0xd,0x6,0x13,0x8,0x38,0x5,0xd1,0x4,0x75,0x6,0x23,0x4, +0xab,0x2,0x8e,0x5,0x7c,0x2,0xdd,0xfa,0x36,0xfd,0x38,0x4, +0x0,0x5,0x54,0x7,0x70,0xd,0x1c,0xf,0x80,0xd,0xcd,0xa, +0x99,0x5,0xae,0x1,0x77,0x1,0x15,0x2,0x83,0x2,0x98,0x5, +0x4f,0xb,0xc6,0xd,0x24,0xb,0x79,0x7,0xce,0x4,0x7d,0x5, +0x4b,0x9,0x7d,0xa,0xa6,0x9,0xb8,0xa,0x94,0xa,0xee,0x6, +0x2d,0x3,0x4d,0x1,0xbd,0xfd,0x71,0xf7,0x6f,0xf7,0x89,0x0, +0xc4,0x6,0x30,0x5,0x39,0x2,0x71,0xff,0xb3,0xfb,0x98,0xf9, +0x8d,0xf9,0x95,0xf8,0x4d,0xf7,0xf7,0xf5,0xe2,0xef,0x9f,0xeb, +0xdf,0xf3,0xba,0xf8,0x44,0xec,0x52,0xe6,0xbd,0xf2,0xd5,0xf6, +0x46,0xed,0x10,0xee,0x6b,0xf3,0xed,0xe8,0x45,0xdf,0xc3,0xe5, +0x5,0xe8,0xe0,0xe3,0xcc,0xeb,0x64,0xf1,0xe7,0xe6,0xb5,0xe4, +0xa4,0xf1,0x6,0xf3,0x19,0xe8,0xf4,0xe8,0xac,0xf0,0xd9,0xeb, +0xe3,0xe6,0x6d,0xf0,0xe,0xf6,0xdf,0xed,0x3a,0xe9,0x65,0xed, +0x8d,0xf1,0xed,0xf5,0x30,0xfb,0x60,0xfb,0xf1,0xf7,0xd0,0xf9, +0x33,0xfe,0x5,0xfc,0xc4,0xfa,0x7e,0x0,0x12,0x1,0x48,0xfd, +0xe1,0x1,0x28,0x8,0xf6,0x7,0xf3,0x8,0xa4,0xb,0x7d,0x9, +0x5c,0x8,0xaa,0xe,0x33,0x12,0xae,0xd,0x7d,0xe,0xd3,0x13, +0x86,0xe,0xca,0x7,0xad,0xd,0x5b,0x14,0xb8,0x11,0x3e,0xc, +0x96,0xb,0x94,0x11,0xb3,0x15,0x47,0x10,0x9f,0x9,0x71,0xa, +0x72,0xd,0xd1,0xc,0x67,0xd,0x2d,0x11,0x9f,0xe,0x96,0x6, +0xaa,0x4,0x13,0x4,0xb9,0xff,0x3,0x2,0xcc,0x6,0x40,0x2, +0xc4,0xfe,0x8b,0x4,0x35,0x6,0x81,0xfe,0x58,0xfb,0xb4,0xff, +0x22,0xfc,0x69,0xf2,0xab,0xf6,0xc6,0x2,0xda,0x0,0x92,0xf8, +0x4b,0xfa,0x2a,0xfe,0x5,0xfc,0x59,0xfc,0x83,0x2,0xf9,0x3, +0x3b,0xfe,0xf9,0xfd,0x98,0x3,0x36,0x1,0x14,0xfb,0x76,0xfd, +0x46,0x1,0xc8,0x0,0xba,0x3,0xca,0x8,0x9c,0x7,0x16,0x3, +0x1b,0x3,0xaf,0x5,0xad,0x4,0xfe,0x1,0xd4,0xff,0x3f,0xfd, +0x8,0xff,0x77,0x3,0x5f,0x1,0x1b,0xff,0x34,0x4,0xec,0x5, +0xb3,0x1,0x5b,0x4,0xa5,0xb,0x86,0x8,0x51,0xff,0x9a,0xfe, +0xca,0xfd,0x44,0xf4,0xe5,0xf5,0xb3,0x6,0xd7,0xa,0x4,0xff, +0xef,0xfb,0xd5,0x3,0xf3,0x4,0xcf,0xff,0xd0,0x1,0xca,0x3, +0xe,0xf9,0x25,0xf2,0x1e,0xfd,0x26,0x5,0xef,0xfd,0x75,0xfa, +0xa4,0x0,0x79,0xfe,0xb9,0xf4,0x56,0xf8,0xc1,0x4,0x43,0x2, +0x9e,0xf5,0xb4,0xf2,0xcc,0xf5,0x7f,0xf5,0x23,0xf8,0x8e,0xff, +0x6e,0x0,0x31,0xf8,0xb6,0xf3,0x8e,0xf8,0xa1,0xfc,0x74,0xfa, +0xad,0xf7,0xa7,0xf7,0xff,0xf7,0x91,0xf6,0xe9,0xf5,0x43,0xfa, +0x6e,0x0,0xbf,0x0,0x3a,0xfb,0x69,0xf7,0xc0,0xf9,0x58,0xfe, +0xf5,0x0,0x9,0x3,0x28,0x3,0x8c,0xfe,0xc8,0xfb,0xf8,0xfe, +0x76,0x0,0xb,0xfe,0x33,0xfe,0xc6,0xff,0xb2,0xfe,0x94,0x0, +0x77,0x7,0x96,0x8,0xb2,0x1,0x33,0xff,0x4f,0x3,0x3,0x5, +0x91,0x4,0x5c,0x6,0x84,0x7,0xd6,0x5,0x1a,0x4,0xbd,0x4, +0x63,0x7,0x7e,0x8,0xe6,0x4,0x7d,0x0,0x7f,0x2,0xaa,0x8, +0xba,0x8,0xd,0x3,0xf0,0x1,0x11,0x3,0xa9,0xfd,0xfc,0xf9, +0x6b,0x0,0x2c,0x4,0x9,0xfe,0xce,0xfb,0x4e,0x1,0xa9,0x0, +0xe2,0xf9,0x3a,0xfb,0x7e,0x0,0x71,0xfa,0xf4,0xf1,0x96,0xf7, +0x10,0x1,0xad,0x0,0xbe,0xfe,0x4d,0x1,0xc4,0x0,0x54,0xfc, +0xee,0xfb,0x83,0x0,0x1c,0x3,0x1,0x1,0x8a,0xfe,0x17,0xff, +0xaa,0x1,0x35,0x3,0xf6,0x2,0x3e,0x4,0x34,0x6,0xe,0x4, +0x3e,0x1,0x10,0x4,0x1c,0x9,0x95,0x9,0x9f,0x5,0x89,0x2, +0xa9,0x2,0xb,0x4,0xe4,0x5,0x8f,0x6,0xc4,0x3,0x5f,0x1, +0x67,0x2,0x19,0x3,0xab,0x2,0x94,0x3,0x8a,0x4,0xf3,0x3, +0x3d,0x3,0xea,0x3,0xcd,0x4,0x26,0x4,0x75,0x3,0xa6,0x3, +0x5a,0x2,0x96,0x0,0xe5,0x1,0xa7,0x4,0xa2,0x5,0xde,0x5, +0xe6,0x6,0xa1,0x7,0x3d,0x7,0xb2,0x6,0x4a,0x6,0x94,0x4, +0x5f,0x1,0x80,0xff,0xa1,0x0,0xfa,0x1,0xb3,0x1,0x61,0x2, +0x9a,0x4,0xdf,0x4,0x3d,0x3,0x40,0x3,0x6e,0x3,0x49,0x0, +0x39,0xfd,0xce,0xfd,0x58,0xfe,0x81,0xfd,0x2d,0xff,0xa4,0x1, +0x6,0x0,0x56,0xfd,0x4e,0xff,0x6,0x3,0x5a,0x2,0xa0,0xff, +0xf9,0xff,0x5b,0x1,0xd2,0x0,0x3a,0x0,0xe4,0x0,0x88,0x1, +0xbd,0x0,0x7d,0xff,0xaa,0x0,0xd4,0x2,0x43,0x2,0x70,0x1, +0x18,0x3,0x4d,0x3,0x7b,0x0,0x48,0xff,0xc2,0x0,0x4d,0x0, +0xce,0xfd,0x62,0xfe,0x3f,0x1,0x14,0x1,0x2f,0xff,0xb1,0xff, +0x77,0x0,0x8f,0xfe,0x17,0xfd,0xfa,0xfe,0x8a,0x0,0xd2,0xfe, +0x37,0xfe,0x73,0x1,0x31,0x3,0x1c,0x0,0x8f,0xfd,0xe8,0xff, +0xd,0x2,0xa0,0xff,0x32,0xfe,0x31,0x0,0x19,0xff,0x3,0xfc, +0x12,0xfe,0x79,0x1,0x8,0x0,0xae,0xfe,0x62,0x1,0x56,0x2, +0x40,0xff,0x64,0xfe,0xdc,0x0,0x4e,0x0,0x64,0xfc,0x2d,0xfb, +0xc7,0xfd,0x28,0x0,0x6e,0x0,0xa0,0x0,0x30,0x2,0x48,0x2, +0xe7,0xfe,0x57,0xfc,0xf6,0xfd,0xf1,0xff,0x17,0xff,0x1a,0xfe, +0x81,0xfe,0x2c,0xfe,0x66,0xfd,0x22,0xfe,0xb0,0xfe,0x3b,0xfd, +0x46,0xfc,0x64,0xfd,0xa9,0xfd,0x2,0xfc,0x4b,0xfc,0x81,0xff, +0x28,0x0,0x7d,0xfc,0x32,0xfb,0x14,0xfe,0x5,0xfe,0xa9,0xfb, +0x38,0xfe,0xf4,0x0,0x11,0xfd,0x92,0xfa,0xc5,0xfe,0x17,0x1, +0x5c,0xfe,0xfc,0xfc,0xe1,0xfd,0x17,0xfd,0x42,0xfb,0x43,0xfb, +0x37,0xfc,0x72,0xfc,0x55,0xfd,0xf6,0xfe,0x2,0xff,0xee,0xfd, +0xba,0xfd,0xf3,0xfd,0x34,0xfd,0x6a,0xfb,0x3f,0xfa,0x9f,0xfa, +0x20,0xfb,0x1d,0xfc,0xb6,0xfe,0xf2,0xff,0x70,0xfe,0xce,0xfd, +0xce,0xfe,0xa7,0xfe,0xc1,0xfd,0x50,0xfe,0x6a,0xff,0xee,0xfe, +0xe3,0xfd,0x67,0xfe,0x80,0xff,0x84,0xff,0x62,0xff,0x61,0x0, +0x77,0x1,0xa9,0x0,0x24,0xff,0xc9,0xff,0xa5,0x0,0xe6,0xfe, +0x79,0xfd,0x2,0xfe,0x42,0xfe,0xcb,0xfe,0xfe,0xff,0xc0,0xff, +0x10,0xff,0x29,0xff,0x9,0xfe,0x57,0xfc,0x61,0xfd,0xf9,0xff, +0xae,0xff,0x0,0xfd,0xaa,0xfc,0xc,0xfe,0x6,0xfd,0xd7,0xfb, +0xe2,0xfd,0xa2,0xff,0x99,0xfe,0x1c,0xfe,0x6b,0xff,0xb5,0xff, +0x27,0xfe,0xae,0xfc,0xe4,0xfb,0xeb,0xfa,0x76,0xfa,0x1d,0xfc, +0xf2,0xfe,0x26,0x0,0x6e,0xff,0x4e,0xff,0xd4,0xff,0x4d,0xfe, +0xbd,0xfb,0xe6,0xfb,0x9b,0xfd,0x7b,0xfd,0x87,0xfd,0x31,0x0, +0x1b,0x2,0x38,0x1,0xb3,0x0,0x1e,0x1,0x34,0x0,0x88,0xff, +0xba,0x0,0x48,0x1,0xa8,0x0,0x63,0x1,0xb2,0x2,0xfc,0x1, +0x6f,0x0,0xf9,0xff,0xae,0xff,0x15,0xff,0x18,0xff,0xdc,0xff, +0x24,0x1,0xce,0x1,0xdd,0x0,0x6,0x0,0x23,0x0,0xb0,0xff, +0x18,0xff,0x31,0xff,0x6a,0xff,0x17,0x0,0x7a,0x0,0x89,0xff, +0x9,0xff,0xae,0xfe,0x49,0xfc,0x60,0xfa,0xbb,0xfb,0xdc,0xfd, +0x9e,0xfe,0x1d,0xff,0xee,0xff,0x9f,0x0,0x17,0x1,0xa2,0x0, +0x23,0xff,0x84,0xfe,0x56,0xfe,0x17,0xfc,0xfc,0xfa,0xdb,0xfe, +0x46,0x2,0x17,0x1,0xb2,0x0,0xab,0x2,0x38,0x2,0xd8,0x0, +0x36,0x2,0x2,0x3,0x2b,0x1,0x32,0x0,0x68,0x0,0x64,0xff, +0xd6,0xfe,0xb,0x0,0x74,0x0,0x49,0x0,0xf9,0x1,0xb1,0x3, +0x60,0x3,0xf0,0x2,0xd5,0x2,0x3f,0x1,0x3c,0xff,0x79,0xff, +0x3b,0x1,0x48,0x1,0x64,0x0,0x48,0x2,0x96,0x4,0xf1,0x2, +0x3,0x1,0x16,0x2,0x2f,0x2,0xd5,0x0,0xab,0x1,0xf8,0x2, +0x4f,0x2,0x6d,0x2,0xf5,0x3,0x8,0x3,0x4,0x0,0x43,0x0, +0x12,0x4,0xec,0x5,0x83,0x4,0xab,0x3,0x75,0x4,0x67,0x4, +0x19,0x3,0xaf,0x2,0x35,0x3,0x9f,0x2,0x7a,0x1,0x1d,0x2, +0xaf,0x3,0x35,0x3,0xda,0x0,0xbb,0xff,0x61,0x0,0x43,0x0, +0x60,0xff,0x5c,0x0,0xc0,0x2,0xf,0x3,0xac,0x0,0x96,0xfe, +0xfd,0xfd,0x4b,0xfd,0xdd,0xfc,0x25,0xfe,0x7d,0xff,0x69,0xff, +0xc1,0xff,0x52,0x1,0x6,0x2,0xf9,0x0,0xc2,0xff,0x82,0xff, +0x75,0xff,0xf1,0xfe,0x6b,0xff,0x91,0x1,0x22,0x2,0xb8,0xff, +0x9e,0xfe,0xf3,0xff,0xb0,0xff,0x86,0xfe,0x9e,0xff,0xe1,0x0, +0x67,0x0,0x1d,0x0,0xbb,0x0,0x47,0x1,0x22,0x1,0x3b,0x0, +0x8c,0xff,0x3c,0xff,0x23,0xfe,0x84,0xfd,0x0,0xff,0xdb,0xff, +0xb8,0xfe,0x50,0xff,0x35,0x1,0x9f,0x0,0xae,0x0,0xa3,0x3, +0xa5,0x3,0x12,0x0,0xe6,0xfe,0x96,0xff,0x7c,0xfe,0x6a,0xfd, +0x23,0xff,0x5a,0x2,0xf3,0x3,0x18,0x3,0x46,0x2,0xa7,0x3, +0xcf,0x4,0x68,0x2,0xf3,0xff,0xc3,0x0,0xc1,0xff,0x64,0xfd, +0x9a,0x0,0xcc,0x3,0x32,0x1,0x53,0x1,0xc1,0x4,0x88,0x3, +0x65,0x2,0x1,0x5,0x4,0x4,0x2e,0x1,0xef,0x2,0xb,0x3, +0x2,0xff,0x8f,0x0,0xf1,0x4,0xac,0x1,0x2d,0xff,0xb7,0x4, +0x51,0x6,0x51,0x3,0xa4,0x6,0xf6,0x9,0xe6,0x6,0x5d,0x6, +0xd9,0x8,0x57,0x7,0x77,0x5,0xf7,0x6,0xcd,0x7,0x1c,0x7, +0xfd,0x6,0x93,0x6,0xf5,0x6,0x4,0xa,0xa5,0xb,0xa0,0xa, +0x69,0xc,0x72,0xe,0xde,0xb,0xb2,0xb,0x95,0xf,0xca,0xf, +0x41,0x11,0x99,0x18,0xb8,0x1b,0xb7,0x1c,0x1d,0x25,0x85,0x27, +0x61,0x1a,0x36,0xf,0xdd,0xa,0xc6,0xfe,0xde,0xf3,0xa9,0xfb, +0xc4,0x6,0xf1,0x5,0x49,0xa,0x7c,0x17,0x62,0x16,0xa0,0x8, +0xc3,0x1,0xcf,0xfb,0x6c,0xed,0x2,0xe3,0x5a,0xe3,0x21,0xe6, +0xea,0xe7,0x78,0xea,0x5f,0xec,0x62,0xed,0x2f,0xef,0x91,0xf0, +0x1a,0xf1,0xc0,0xf1,0x94,0xee,0xbf,0xe6,0xbf,0xe1,0x1b,0xe0, +0x97,0xdc,0xda,0xda,0xf7,0xdd,0x5f,0xe1,0x91,0xe4,0xb2,0xe9, +0x38,0xee,0xc2,0xef,0xfc,0xee,0x48,0xed,0x72,0xeb,0x72,0xe9, +0x37,0xe8,0x93,0xe8,0x84,0xe8,0xe9,0xe6,0x4b,0xe6,0xcd,0xe7, +0xe7,0xe9,0xbc,0xed,0x23,0xf5,0x42,0xfc,0x1d,0xff,0x51,0x0, +0x66,0x1,0x5f,0xff,0x19,0xfb,0x1c,0xf8,0x73,0xf6,0x74,0xf6, +0x43,0xf9,0x2b,0xfd,0xee,0x1,0x15,0x8,0x97,0xb,0xa0,0xb, +0x5b,0xd,0x95,0xf,0x2b,0xe,0xef,0xd,0x4e,0x11,0xba,0x10, +0xd2,0xb,0x49,0xa,0x50,0xa,0xb9,0x7,0x18,0x8,0xc6,0xc, +0x3e,0xf,0x26,0x10,0xd0,0x12,0xf7,0x13,0x1e,0x12,0x1,0xf, +0x8e,0xa,0xcd,0x6,0x70,0x5,0x62,0x3,0xc2,0x0,0x36,0x1, +0x63,0x2,0x9a,0x0,0xdf,0xfe,0x92,0xff,0xc,0x0,0xf8,0xff, +0xf9,0x0,0x17,0x1,0xbf,0xfe,0x4f,0xfb,0xe6,0xf6,0xe,0xf2, +0xec,0xee,0xde,0xec,0x5c,0xeb,0xe,0xed,0xe3,0xf0,0x8d,0xf2, +0xa8,0xf2,0x57,0xf3,0xcb,0xf2,0x90,0xf0,0x1e,0xef,0xa4,0xee, +0x7a,0xee,0xe,0xef,0xa4,0xee,0x4e,0xec,0x33,0xeb,0x8,0xec, +0xc7,0xec,0xdb,0xee,0xb,0xf3,0xdd,0xf6,0x3b,0xfa,0x96,0xfd, +0xd5,0xfe,0xd3,0xfd,0x3c,0xfc,0x63,0xfa,0xf5,0xf8,0x33,0xf9, +0x20,0xfb,0x48,0xfe,0x33,0x2,0x6d,0x5,0x16,0x7,0xd4,0x8, +0xa1,0xb,0x8b,0xd,0x16,0xe,0x47,0xf,0xd5,0x10,0xe2,0x10, +0xbd,0xf,0x5c,0xe,0xb6,0xc,0xa9,0xb,0xc3,0xc,0x78,0xf, +0x1c,0x12,0xc6,0x14,0x74,0x17,0x60,0x18,0x14,0x17,0x6,0x15, +0x8f,0x12,0xa4,0xf,0xe5,0xd,0xbd,0xd,0xd3,0xc,0xc,0xb, +0x6c,0xb,0x66,0xd,0x9,0xd,0xd8,0xa,0xab,0xa,0x8d,0xb, +0x50,0xa,0x9e,0x8,0x3,0x8,0xec,0x5,0xad,0x2,0xcd,0x0, +0x16,0xff,0xfc,0xfc,0xd,0xfc,0x5f,0xfb,0x82,0xfa,0xf9,0xfa, +0xe5,0xfb,0x3e,0xfb,0xb5,0xf9,0x72,0xf9,0x1c,0xfa,0x57,0xf9, +0x67,0xf7,0xe5,0xf5,0x52,0xf4,0xf6,0xf2,0x6e,0xf2,0x38,0xf1, +0x2b,0xf0,0xe7,0xf1,0x96,0xf4,0x72,0xf5,0x4d,0xf6,0x84,0xf8, +0xe5,0xf8,0x4,0xf6,0x0,0xf4,0x2d,0xf5,0x3f,0xf6,0xbd,0xf5, +0xc4,0xf6,0xd9,0xf9,0x3b,0xfb,0x11,0xfa,0x6c,0xfa,0x8e,0xfd, +0x44,0xff,0xc3,0xfe,0x3d,0x0,0x47,0x3,0x9,0x4,0x8a,0x3, +0xa,0x4,0x3d,0x4,0x6f,0x3,0xb,0x3,0xf5,0x3,0xbf,0x5, +0x9d,0x7,0x7c,0x9,0x1e,0xb,0xb5,0xb,0xa1,0xb,0xf1,0xb, +0xb9,0xc,0x26,0xd,0x82,0xc,0x5,0xc,0x5f,0xc,0x43,0xb, +0x73,0x9,0xaf,0xa,0xc4,0xc,0xc,0xc,0x4,0xc,0xc1,0xe, +0x6c,0xf,0xfe,0xc,0xcf,0xb,0x4c,0xb,0x9f,0x8,0x2b,0x6, +0x8e,0x5,0x90,0x4,0xaf,0x3,0xea,0x4,0x94,0x6,0x2d,0x6, +0x6d,0x4,0x68,0x3,0xce,0x2,0x79,0x1,0xc3,0x0,0x36,0x1, +0xa6,0x0,0x9,0xff,0x36,0xfe,0x80,0xfd,0x9e,0xfb,0x3f,0xfa, +0xed,0xfa,0x53,0xfb,0xed,0xf9,0x85,0xf9,0x92,0xfa,0x2,0xfa, +0x91,0xf8,0x7b,0xf8,0xe9,0xf7,0x16,0xf6,0xb,0xf6,0xe1,0xf7, +0x10,0xf8,0xf3,0xf6,0xe1,0xf7,0x39,0xf9,0xb3,0xf7,0x0,0xf6, +0x7,0xf7,0x88,0xf8,0x34,0xf9,0x25,0xfa,0xc7,0xfa,0x78,0xfa, +0xe8,0xf9,0x8f,0xf9,0xff,0xf9,0xb,0xfb,0x87,0xfb,0xb6,0xfb, +0x9c,0xfc,0xd6,0xfd,0xcc,0xfe,0xdc,0xff,0xf8,0x0,0xfc,0x0, +0xa5,0x0,0x2a,0x2,0x78,0x3,0x1e,0x2,0xc4,0x1,0x71,0x3, +0x61,0x2,0x98,0xff,0x60,0x0,0xab,0x3,0x55,0x5,0xce,0x5, +0xd1,0x7,0x10,0xa,0xe9,0x8,0xc2,0x5,0xc5,0x4,0x26,0x5, +0xdd,0x3,0x11,0x2,0x73,0x2,0xcf,0x3,0xb5,0x3,0x98,0x3, +0xfa,0x4,0xba,0x5,0x43,0x5,0x18,0x5,0xd7,0x4,0x76,0x4, +0x7a,0x4,0x2e,0x3,0x53,0x0,0xa0,0xfe,0x98,0xfe,0x62,0xfe, +0xf8,0xfd,0x72,0xfe,0x54,0xff,0x97,0xff,0x41,0xff,0x57,0xfe, +0xbe,0xfc,0x84,0xfb,0x3e,0xfb,0xe6,0xfa,0x9e,0xfa,0x34,0xfb, +0x4f,0xfb,0x16,0xfa,0x38,0xf9,0x57,0xf9,0x32,0xf9,0x92,0xf8, +0x92,0xf8,0x7a,0xf9,0xe,0xfa,0xdc,0xf9,0x2,0xfa,0x78,0xfa, +0x5e,0xfa,0x42,0xfa,0x7e,0xfa,0x63,0xfa,0x2d,0xfa,0x38,0xfa, +0xe,0xfa,0x1e,0xfa,0xf8,0xfa,0xb4,0xfb,0x50,0xfc,0xe2,0xfd, +0x5f,0xff,0x5f,0xff,0x23,0xff,0x7b,0xff,0x25,0xff,0x41,0xfe, +0x65,0xfe,0x86,0xff,0xc7,0x0,0x4f,0x2,0xbd,0x3,0x49,0x4, +0xb2,0x4,0x5a,0x5,0x69,0x5,0x6c,0x5,0x27,0x6,0x9a,0x6, +0x62,0x6,0x8c,0x6,0x43,0x7,0x95,0x7,0xf6,0x7,0x9b,0x9, +0x0,0xb,0xc8,0xa,0xe6,0xa,0x8d,0xb,0xbb,0xa,0x41,0x9, +0xb7,0x8,0xe8,0x8,0x65,0x9,0xd3,0x9,0x36,0xa,0xdb,0xa, +0x71,0xb,0x9c,0xb,0x24,0xb,0x1d,0xa,0x18,0x9,0xa5,0x8, +0xcc,0x9,0x79,0xc,0x25,0xe,0xaf,0xd,0x54,0xc,0xbd,0x9, +0xd4,0x4,0xed,0xff,0xe0,0xfe,0x7f,0x1,0xb9,0x4,0xcc,0x7, +0x40,0xb,0x80,0xd,0xa6,0xc,0x70,0x9,0xd2,0x5,0xdc,0x1, +0x37,0xfd,0x9e,0xf9,0xba,0xf7,0x82,0xf6,0xf4,0xf6,0x3c,0xfa, +0xba,0xfe,0x1a,0x3,0xac,0x7,0xe9,0xa,0xd1,0x9,0x85,0x4, +0x4a,0xfd,0x63,0xf5,0xc,0xef,0xda,0xec,0xc5,0xee,0xbf,0xf3, +0xbc,0xf9,0x4b,0xfe,0x1a,0x2,0x9c,0x5,0x73,0x6,0xf0,0x4, +0x6d,0x3,0xaa,0x0,0x1e,0xfb,0xa4,0xf5,0xa4,0xf2,0xfe,0xf0, +0x7c,0xf1,0x57,0xf6,0x5c,0xfd,0x50,0x3,0xea,0x7,0x5e,0xa, +0x48,0x9,0xb1,0x5,0x9,0x2,0x24,0xff,0xf8,0xfb,0xde,0xf8, +0x7b,0xf7,0xb4,0xf7,0x33,0xf9,0x98,0xfc,0x42,0x1,0xe4,0x5, +0x73,0x9,0xdd,0xa,0x6,0xa,0x83,0x7,0xe2,0x3,0xa,0x0, +0x3a,0xfd,0x91,0xfc,0xd7,0xfd,0xc,0xff,0x6f,0xff,0xae,0x0, +0x2e,0x3,0x60,0x5,0x27,0x7,0xea,0x8,0x63,0x9,0x9e,0x7, +0xe9,0x3,0xb0,0xff,0x20,0xfd,0xd8,0xfb,0x8f,0xfa,0x32,0xfb, +0x46,0xfe,0xb6,0x0,0xb0,0x1,0xb2,0x2,0x80,0x3,0xcf,0x2, +0xb7,0x0,0xb4,0xfe,0x10,0xfd,0xbd,0xfa,0x37,0xf8,0xda,0xf6, +0xb7,0xf6,0xa2,0xf7,0xd9,0xf9,0x94,0xfc,0x5a,0xfe,0x17,0xff, +0x13,0xff,0x3b,0xfd,0x30,0xfa,0x57,0xf8,0x6a,0xf7,0x5e,0xf6, +0x2e,0xf6,0xbf,0xf6,0x48,0xf7,0xb3,0xf8,0x2b,0xfb,0x93,0xfd, +0x81,0xff,0x28,0x0,0xd0,0xfe,0x53,0xfc,0x50,0xf9,0x85,0xf6, +0x8d,0xf5,0x14,0xf6,0x4e,0xf7,0xbd,0xf9,0xf4,0xfb,0xed,0xfc, +0x6c,0xfe,0xf7,0xff,0xff,0xff,0x80,0xff,0x6f,0xfe,0x2,0xfc, +0xab,0xf9,0x8d,0xf8,0x84,0xf8,0x98,0xf9,0x87,0xfb,0xec,0xfd, +0xa5,0x0,0xcd,0x2,0x5d,0x3,0xec,0x2,0x19,0x2,0x81,0x0, +0x13,0xff,0xc6,0xfe,0x53,0xfe,0xa8,0xfd,0x27,0xfe,0xd3,0xfe, +0xec,0xfe,0x32,0x0,0x60,0x2,0xf0,0x2,0x1a,0x2,0xac,0x1, +0x49,0x1,0x92,0x0,0xee,0xff,0xcc,0xfe,0x21,0xfe,0x30,0xff, +0x7,0x0,0x93,0xff,0xa,0xff,0xaa,0xfe,0xbc,0xfe,0x35,0xff, +0x11,0xff,0xe0,0xfe,0x2,0xff,0xb7,0xfe,0x84,0xfe,0x83,0xfe, +0xd9,0xfd,0x1,0xfd,0x89,0xfc,0x16,0xfc,0x92,0xfb,0x1f,0xfb, +0xe6,0xfa,0x55,0xfb,0x65,0xfc,0x4b,0xfd,0xe1,0xfd,0xd3,0xfe, +0xaf,0xff,0x2a,0xff,0x44,0xfd,0x3c,0xfb,0xd7,0xf9,0xbd,0xf8, +0xce,0xf7,0x7f,0xf7,0xf9,0xf7,0xab,0xf9,0x90,0xfc,0x31,0xff, +0xc1,0x0,0x56,0x1,0x8f,0x0,0xb2,0xfe,0x33,0xfc,0x29,0xf9, +0xb0,0xf6,0xd,0xf6,0x4c,0xf7,0x7f,0xf9,0xcb,0xfb,0x35,0xfe, +0x87,0x0,0xc,0x2,0x9a,0x2,0xd9,0x1,0xd0,0xff,0xa5,0xfd, +0xef,0xfb,0xa6,0xfa,0xc,0xfa,0x7d,0xfa,0x33,0xfc,0x9f,0xfe, +0xd8,0x0,0xc0,0x2,0xf,0x4,0xde,0x3,0x2f,0x2,0x50,0x0, +0x1b,0xff,0xa,0xfe,0x46,0xfd,0x80,0xfd,0xe,0xfe,0xff,0xfe, +0x19,0x1,0xf7,0x2,0x86,0x3,0xe2,0x3,0x21,0x4,0x32,0x3, +0x33,0x1,0xd0,0xfe,0x94,0xfc,0x65,0xfb,0x65,0xfb,0xee,0xfb, +0x93,0xfd,0x79,0x0,0x93,0x2,0x56,0x3,0x9,0x4,0x17,0x4, +0xdc,0x2,0x45,0x1,0x5d,0xff,0xfc,0xfc,0x18,0xfb,0x56,0xfa, +0xa9,0xfa,0xb1,0xfb,0x1a,0xfd,0x67,0xff,0x67,0x2,0xf1,0x3, +0x27,0x3,0xf6,0x1,0x1f,0x1,0x77,0xff,0x55,0xfd,0xcd,0xfb, +0xc7,0xfa,0x4e,0xfa,0x63,0xfa,0xc6,0xfa,0x2a,0xfc,0xa1,0xfe, +0x93,0x0,0x5a,0x1,0xe7,0x1,0x68,0x2,0xda,0x1,0x5,0x0, +0xe2,0xfd,0x26,0xfc,0x64,0xfb,0x38,0xfc,0xe9,0xfd,0x70,0xff, +0x3f,0x1,0x56,0x3,0x4e,0x4,0xcc,0x3,0xcf,0x2,0xe9,0x1, +0x4,0x1,0xea,0xff,0xd2,0xfe,0x5e,0xfe,0xbb,0xfe,0xe2,0xff, +0x95,0x1,0xd1,0x2,0x6c,0x3,0xe2,0x3,0x60,0x3,0xc5,0x1, +0x39,0x0,0x8d,0xfe,0xcb,0xfc,0x80,0xfc,0xcb,0xfd,0x69,0xff, +0x25,0x1,0x43,0x3,0x15,0x5,0xc0,0x5,0x95,0x5,0x30,0x5, +0xe,0x4,0xa5,0x1,0xb8,0xfe,0x8c,0xfc,0xd6,0xfb,0x7b,0xfc, +0xfa,0xfd,0x1f,0x0,0xeb,0x2,0xab,0x5,0x3f,0x7,0x59,0x7, +0x40,0x6,0x2,0x4,0x9,0x1,0x37,0xfe,0xfd,0xfb,0x91,0xfa, +0x4f,0xfa,0x48,0xfb,0x5b,0xfd,0x5e,0x0,0xaf,0x3,0x28,0x6, +0xe5,0x6,0xdd,0x5,0xaf,0x3,0x3,0x1,0x31,0xfe,0xb0,0xfb, +0x57,0xfa,0x85,0xfa,0x95,0xfb,0x31,0xfd,0xe8,0xff,0x14,0x3, +0xef,0x4,0x6d,0x5,0x62,0x5,0x14,0x4,0x5b,0x1,0x9e,0xfe, +0x78,0xfc,0x3c,0xfb,0x96,0xfb,0xe3,0xfc,0x25,0xfe,0xa2,0xff, +0xa3,0x1,0x72,0x3,0x43,0x4,0x34,0x4,0xa7,0x3,0x51,0x2, +0x49,0x0,0x85,0xfe,0x62,0xfd,0xf1,0xfc,0xc6,0xfd,0xa0,0xff, +0x76,0x1,0x2e,0x3,0xb3,0x4,0xeb,0x4,0xf4,0x3,0x14,0x3, +0xe6,0x1,0xe4,0xff,0x5d,0xfe,0xb9,0xfd,0x7,0xfd,0xc4,0xfc, +0xc3,0xfd,0x25,0xff,0x22,0x0,0x4b,0x1,0x83,0x2,0xaf,0x2, +0xd3,0x1,0xcd,0x0,0x8a,0xff,0xe,0xfe,0x38,0xfd,0x46,0xfd, +0x93,0xfd,0xc9,0xfd,0x2d,0xfe,0x2e,0xff,0x8c,0x0,0x8c,0x1, +0x51,0x2,0x17,0x3,0xb,0x3,0xd2,0x1,0x57,0x0,0x2c,0xff, +0x45,0xfe,0xf2,0xfd,0x63,0xfe,0x2c,0xff,0x23,0x0,0x46,0x1, +0xe7,0x1,0xc,0x2,0x98,0x2,0xe7,0x2,0x4b,0x2,0xe6,0x1, +0xcf,0x1,0x46,0x1,0xcd,0x0,0x8a,0x0,0x84,0x0,0x37,0x1, +0xdb,0x1,0x26,0x2,0xd1,0x2,0x39,0x3,0xe9,0x2,0x93,0x2, +0x24,0x2,0x69,0x1,0xde,0x0,0xc1,0x0,0xeb,0x0,0xf,0x1, +0x25,0x1,0x91,0x1,0x52,0x2,0x9e,0x2,0x1,0x2,0x5a,0x1, +0x30,0x1,0xa7,0x0,0xdd,0xff,0xd7,0xff,0x2b,0x0,0x22,0x0, +0x51,0x0,0x28,0x1,0xdc,0x1,0xea,0x1,0x2d,0x2,0xb3,0x2, +0x4e,0x2,0x38,0x1,0x6b,0x0,0xb9,0xff,0x4,0xff,0xbf,0xfe, +0xfc,0xfe,0x7c,0xff,0x3a,0x0,0x4f,0x1,0x49,0x2,0xa6,0x2, +0xb0,0x2,0xa2,0x2,0x29,0x2,0x27,0x1,0xdf,0xff,0xb5,0xfe, +0xd5,0xfd,0x79,0xfd,0xfe,0xfd,0xf3,0xfe,0xba,0xff,0xb2,0x0, +0x11,0x2,0x17,0x3,0x3a,0x3,0xd3,0x2,0x34,0x2,0x23,0x1, +0xd7,0xff,0xd5,0xfe,0xfe,0xfd,0x5b,0xfd,0x7d,0xfd,0x83,0xfe, +0xd,0x0,0xdb,0x1,0xa5,0x3,0xb5,0x4,0xc7,0x4,0x5a,0x4, +0x59,0x3,0xd4,0x1,0xb4,0x0,0xd5,0xff,0xb9,0xfe,0xdd,0xfd, +0xa4,0xfd,0x57,0xfe,0xc3,0xff,0xf6,0x0,0x1e,0x2,0x6a,0x3, +0xc5,0x3,0x30,0x3,0x62,0x2,0x3,0x1,0x28,0xff,0xc8,0xfd, +0x11,0xfd,0x6f,0xfc,0xd,0xfc,0x75,0xfc,0x66,0xfd,0x8b,0xfe, +0xc5,0xff,0x8f,0x0,0xca,0x0,0xac,0x0,0xf7,0xff,0xc0,0xfe, +0x8e,0xfd,0xb2,0xfc,0x40,0xfc,0xff,0xfb,0xa1,0xfb,0x48,0xfb, +0x62,0xfb,0x34,0xfc,0x95,0xfd,0x1b,0xff,0x70,0x0,0x5e,0x1, +0xe4,0x1,0xde,0x1,0x2b,0x1,0x3b,0x0,0x63,0xff,0x6b,0xfe, +0x71,0xfd,0xfe,0xfc,0x1a,0xfd,0x97,0xfd,0xb7,0xfe,0x41,0x0, +0x72,0x1,0x50,0x2,0xec,0x2,0xb3,0x2,0xd9,0x1,0xec,0x0, +0xeb,0xff,0xd,0xff,0xa4,0xfe,0xbb,0xfe,0x1d,0xff,0x46,0xff, +0x6f,0xff,0xf9,0xff,0x50,0x0,0x90,0x0,0x4c,0x1,0xb9,0x1, +0xb0,0x1,0x1,0x2,0xf4,0x1,0x2c,0x1,0xe2,0x0,0xc3,0x0, +0xea,0xff,0x16,0xff,0x7a,0xfe,0xea,0xfd,0x31,0xfe,0x1e,0xff, +0x13,0x0,0x51,0x1,0x3e,0x2,0x44,0x2,0xc,0x2,0xa8,0x1, +0x9e,0x0,0x5d,0xff,0x8a,0xfe,0xe6,0xfd,0x21,0xfd,0xf6,0xfc, +0xbf,0xfd,0xa0,0xfe,0x66,0xff,0x5a,0x0,0x24,0x1,0x5e,0x1, +0xc7,0x0,0xfc,0xff,0xd8,0xff,0x9e,0xff,0xb1,0xfe,0xdf,0xfd, +0x7b,0xfd,0x49,0xfd,0x3c,0xfd,0x4f,0xfd,0xc4,0xfd,0x6b,0xfe, +0xc9,0xfe,0x12,0xff,0x4c,0xff,0x3e,0xff,0x4c,0xff,0x6e,0xff, +0x35,0xff,0xe7,0xfe,0xb4,0xfe,0x4b,0xfe,0xcd,0xfd,0x75,0xfd, +0x5c,0xfd,0xe8,0xfd,0xdf,0xfe,0xb9,0xff,0x9f,0x0,0x43,0x1, +0x3c,0x1,0xa,0x1,0xde,0x0,0x9e,0x0,0x6c,0x0,0x4a,0x0, +0x5d,0x0,0x2a,0x0,0x66,0xff,0x4e,0xff,0xa7,0xff,0x28,0xff, +0x1f,0xff,0x4d,0x0,0xf4,0x0,0xf5,0x0,0x78,0x1,0xd,0x2, +0x1,0x2,0xcf,0x1,0xa7,0x1,0xdc,0x0,0xd0,0xff,0x81,0xff, +0x46,0xff,0x83,0xfe,0x27,0xfe,0x72,0xfe,0x3,0xff,0x8,0x0, +0x20,0x1,0xba,0x1,0x26,0x2,0x5a,0x2,0xbf,0x1,0x8c,0x0, +0x62,0xff,0x51,0xfe,0x74,0xfd,0xd,0xfd,0x22,0xfd,0xf1,0xfd, +0x64,0xff,0x5b,0x0,0x9c,0x0,0x10,0x1,0x69,0x1,0xd8,0x0, +0xeb,0xff,0x51,0xff,0xd6,0xfe,0x62,0xfe,0x47,0xfe,0x92,0xfe, +0xd6,0xfe,0xf3,0xfe,0x3b,0xff,0xa2,0xff,0xe0,0xff,0xe6,0xff, +0xb2,0xff,0x79,0xff,0x62,0xff,0x56,0xff,0x88,0xff,0x8,0x0, +0x80,0x0,0xbe,0x0,0xc7,0x0,0xeb,0x0,0xf4,0x0,0x25,0x0, +0x2b,0xff,0xbe,0xfe,0x40,0xfe,0x10,0xfe,0x83,0xfe,0xc6,0xfe, +0x36,0xff,0xe1,0xff,0xd9,0xff,0xc3,0xff,0x29,0x0,0x22,0x0, +0x8e,0xff,0xfa,0xfe,0xa7,0xfe,0x72,0xfe,0x21,0xfe,0x16,0xfe, +0x92,0xfe,0x20,0xff,0x8f,0xff,0xeb,0xff,0x14,0x0,0x16,0x0, +0x3f,0x0,0x9b,0x0,0xb0,0x0,0x70,0x0,0x3e,0x0,0xfe,0xff, +0x74,0xff,0xae,0xfe,0x1b,0xfe,0x38,0xfe,0x90,0xfe,0xb8,0xfe, +0x1d,0xff,0x8b,0xff,0x9b,0xff,0x91,0xff,0x81,0xff,0x79,0xff, +0xbd,0xff,0x5,0x0,0xcb,0xff,0x4b,0xff,0xd,0xff,0xe1,0xfe, +0xaf,0xfe,0xb5,0xfe,0xc5,0xfe,0x29,0xff,0x5,0x0,0x82,0x0, +0xb5,0x0,0xe4,0x0,0x8f,0x0,0x2a,0x0,0x2b,0x0,0x24,0x0, +0xf6,0xff,0xc4,0xff,0xe5,0xff,0x21,0x0,0xe3,0xff,0x10,0x0, +0x4,0x1,0x8c,0x1,0xb6,0x1,0xc,0x2,0x13,0x2,0x8a,0x1, +0xd6,0x0,0x56,0x0,0xd5,0xff,0x98,0xff,0x1c,0x0,0x47,0x0, +0xe3,0xff,0x40,0x0,0xaf,0x0,0xaa,0x0,0x2c,0x1,0xb0,0x1, +0x73,0x1,0xb9,0x0,0xc6,0xff,0x30,0xff,0xb,0xff,0xc9,0xfe, +0xbf,0xfe,0x66,0xff,0xe6,0xff,0x75,0xff,0x6a,0xff,0x8b,0x0, +0xd8,0x0,0x34,0x0,0x9e,0x0,0x26,0x1,0x51,0x0,0x44,0xff, +0x97,0xfe,0x82,0xfd,0x4f,0xfc,0x1b,0xfc,0xac,0xfc,0x20,0xfd, +0xd9,0xfd,0xe3,0xfe,0xbe,0xff,0xc8,0x0,0x6a,0x1,0xe2,0x0, +0x58,0x0,0xd6,0xff,0x27,0xfe,0x5c,0xfc,0xe9,0xfb,0xea,0xfb, +0xb6,0xfb,0xbd,0xfc,0x25,0xff,0xca,0x0,0x88,0x1,0x86,0x2, +0xa8,0x2,0x83,0x1,0x91,0x0,0x7d,0xff,0xb9,0xfd,0xec,0xfc, +0x51,0xfd,0x80,0xfd,0x39,0xfe,0xd8,0xff,0xa2,0x0,0xf7,0x0, +0xdc,0x1,0x2c,0x2,0xf2,0x1,0xc6,0x1,0xf6,0x0,0x45,0x0, +0x2a,0x0,0xc9,0xff,0xfc,0xff,0xd2,0x0,0xf1,0x0,0x22,0x1, +0xd6,0x1,0xd,0x2,0x9,0x2,0xdb,0x1,0x71,0x1,0xbd,0x1, +0x4b,0x2,0x79,0x2,0x27,0x3,0xb2,0x3,0x45,0x3,0xed,0x2, +0xa6,0x2,0x7,0x2,0xe9,0x1,0x15,0x2,0x1,0x2,0x2d,0x2, +0x81,0x2,0x8b,0x2,0x56,0x2,0x22,0x2,0x8,0x2,0x86,0x1, +0xb3,0x0,0x70,0x0,0x62,0x0,0xda,0xff,0x44,0xff,0x8,0xff, +0xed,0xfe,0x8d,0xfe,0x2a,0xfe,0x49,0xfe,0x8e,0xfe,0xe5,0xfe, +0x63,0xff,0x52,0xff,0xb,0xff,0x3f,0xff,0x64,0xff,0x4e,0xff, +0xfe,0xfe,0x75,0xfe,0xa2,0xfe,0x5b,0xff,0xb6,0xff,0x35,0x0, +0xa2,0x0,0x53,0x0,0x73,0x0,0xf4,0x0,0x6a,0x0,0xd2,0xff, +0xbc,0xff,0xb9,0xfe,0xe6,0xfd,0xb3,0xfe,0x96,0xff,0xfc,0xff, +0x8c,0x0,0xe0,0x0,0x25,0x1,0x90,0x1,0x88,0x1,0x1c,0x1, +0x77,0x0,0x89,0xff,0xe1,0xfe,0x1d,0xff,0xb6,0xff,0xd4,0xff, +0x2f,0x0,0x7a,0x1,0x87,0x2,0xed,0x2,0x40,0x3,0x40,0x3, +0xc6,0x2,0xe9,0x1,0xfb,0x0,0x5d,0x0,0x9b,0xff,0x15,0xff, +0x60,0xff,0xf6,0xff,0xea,0x0,0xba,0x1,0xc2,0x1,0x15,0x2, +0x37,0x2,0x56,0x1,0xb2,0x0,0x30,0x0,0x66,0xff,0xfc,0xfe, +0x7e,0xfe,0xd6,0xfd,0x92,0xfd,0xa5,0xfd,0xf7,0xfd,0x27,0xfe, +0x9d,0xfe,0x8d,0xff,0x8b,0xff,0x1,0xff,0xf9,0xfe,0x90,0xfe, +0x41,0xfe,0xa1,0xfe,0x7d,0xfe,0x2,0xfe,0xe5,0xfd,0xcb,0xfd, +0xc2,0xfd,0xe7,0xfd,0xfa,0xfd,0x10,0xfe,0x2f,0xfe,0xf2,0xfd, +0x46,0xfd,0xd3,0xfc,0x9d,0xfc,0x16,0xfc,0xbd,0xfb,0x1a,0xfc, +0xc7,0xfc,0x52,0xfd,0x6f,0xfd,0x78,0xfd,0xce,0xfd,0xc3,0xfd, +0x67,0xfd,0xd9,0xfd,0xb0,0xfe,0xdc,0xfe,0x45,0xff,0xa0,0x0, +0x74,0x1,0x2e,0x1,0xde,0x0,0xb9,0x0,0x71,0x0,0xf9,0xff, +0x99,0xff,0xc2,0xff,0x2,0x0,0x52,0x0,0x6,0x1,0x34,0x1, +0x40,0x1,0xe8,0x1,0xcc,0x1,0x17,0x1,0xd9,0x0,0x8c,0x0, +0x58,0x0,0x22,0x0,0xd3,0xff,0x8f,0x0,0x51,0x1,0x15,0x1, +0x3f,0x1,0x7d,0x1,0xf2,0x0,0x8d,0x0,0x51,0x0,0xd9,0xff, +0xb8,0xff,0x7,0x0,0x27,0x0,0x16,0x0,0x5d,0x0,0x8e,0x0, +0x54,0x0,0x68,0x0,0x96,0x0,0x91,0x0,0xc8,0x0,0xc1,0x0, +0x98,0x0,0x0,0x1,0x45,0x1,0x2a,0x1,0xf8,0x0,0x50,0x0, +0xd4,0xff,0xe3,0xff,0x7b,0xff,0xf5,0xfe,0x8e,0xff,0x4f,0x0, +0xf6,0xff,0xe7,0xff,0xf3,0x0,0x4f,0x1,0xb1,0x0,0x71,0x0, +0x44,0x0,0xa4,0xff,0x0,0xff,0xa7,0xfe,0xa8,0xfe,0xaa,0xfe, +0xd6,0xfe,0xa1,0xff,0x2,0x0,0xcb,0xff,0x2f,0x0,0x6a,0x0, +0xb,0x0,0x29,0x0,0x16,0x0,0x8a,0xff,0x81,0xff,0x13,0xff, +0x68,0xfe,0xd0,0xfe,0x5,0xff,0x16,0xff,0x5d,0x0,0x1,0x1, +0x84,0x0,0x98,0x0,0x5a,0x0,0x94,0xff,0xbb,0xff,0x1c,0x0, +0x3,0x0,0x45,0x0,0xcc,0x0,0xe6,0x0,0xf2,0x0,0x60,0x1, +0x5f,0x1,0xf9,0x0,0x42,0x1,0x7a,0x1,0x20,0x1,0xa,0x1, +0xda,0x0,0xc7,0x0,0x45,0x1,0x37,0x1,0xf6,0x0,0x9,0x1, +0x6f,0x0,0xd3,0xff,0xd9,0xff,0x7a,0xff,0xd1,0xfe,0x7f,0xfe, +0x48,0xfe,0x12,0xfe,0x5d,0xfe,0x6,0xff,0xf8,0xfe,0xae,0xfe, +0x11,0xff,0x1a,0xff,0x12,0xff,0x9c,0xff,0x7a,0xff,0x3c,0xff, +0x89,0xff,0x5f,0xff,0x5c,0xff,0x33,0xff,0x6,0xfe,0xdf,0xfd, +0xb5,0xfe,0xc7,0xfe,0x88,0xff,0xde,0x0,0xbd,0x0,0xa9,0x0, +0x84,0x1,0x11,0x1,0xe4,0xff,0xd6,0xff,0x65,0xff,0xfa,0xfd, +0x9f,0xfd,0x27,0xfe,0x94,0xfe,0x9,0x0,0x35,0x2,0x4c,0x3, +0xf4,0x3,0xd3,0x4,0x6e,0x4,0xd8,0x2,0x42,0x1,0x53,0xff, +0xc1,0xfd,0x76,0xfd,0x33,0xfd,0x65,0xfd,0x26,0xff,0xea,0x0, +0x71,0x2,0x28,0x4,0x83,0x4,0xc9,0x3,0xfe,0x2,0x3e,0x1, +0xdf,0xfe,0x35,0xfd,0x8c,0xfc,0xb0,0xfc,0x48,0xfd,0x7b,0xfe, +0x2d,0x0,0x97,0x1,0x90,0x2,0xd4,0x2,0x4a,0x2,0x86,0x1, +0x67,0x0,0x4d,0xff,0xf4,0xfe,0xb0,0xfe,0x7d,0xfe,0xd4,0xfe, +0x12,0xff,0x25,0xff,0x73,0xff,0xe3,0xff,0x47,0x0,0x77,0x0, +0xac,0x0,0xd8,0x0,0xb7,0x0,0x90,0x0,0x25,0x0,0xb3,0xff, +0xd3,0xff,0x34,0xff,0xf6,0xfd,0x0,0xfe,0x2,0xfe,0xf8,0xfc, +0xec,0xfc,0xb3,0xfd,0xc6,0xfd,0x1,0xfe,0xa,0xff,0xbf,0xff, +0xb7,0xff,0xf0,0xff,0x64,0x0,0xc1,0xff,0x92,0xfe,0x69,0xfe, +0xa5,0xfe,0x8a,0xfe,0x3,0xff,0xf4,0xff,0x91,0x0,0x21,0x1, +0x8e,0x1,0x99,0x1,0xba,0x1,0x9d,0x1,0x4,0x1,0xbd,0x0, +0x69,0x0,0x9a,0xff,0x3a,0xff,0x13,0xff,0xf,0xff,0x16,0x0, +0x2a,0x1,0x7f,0x1,0xea,0x1,0xeb,0x1,0x49,0x1,0xff,0x0, +0xef,0x0,0xce,0x0,0x78,0x0,0xf1,0xff,0x1d,0x0,0x97,0x0, +0x8e,0x0,0xe4,0x0,0x85,0x1,0x8c,0x1,0x52,0x1,0x48,0x1, +0x68,0x1,0x51,0x1,0xee,0x0,0xa6,0x0,0x50,0x0,0x45,0x0, +0x9d,0x0,0x7a,0x0,0xcc,0x0,0x8c,0x1,0xcf,0x0,0x5,0x0, +0x34,0x0,0x73,0xff,0x3b,0xfe,0xa0,0xfd,0x6d,0xfd,0xca,0xfd, +0xff,0xfd,0x3c,0xfe,0x35,0xff,0x91,0xff,0x60,0xff,0xbd,0xff, +0xff,0xff,0xac,0xff,0xb1,0xfe,0x99,0xfd,0x4c,0xfd,0x20,0xfd, +0xf8,0xfc,0x84,0xfd,0x80,0xfe,0xcf,0xff,0xf8,0x0,0xa7,0x1, +0x30,0x2,0xae,0x1,0x4f,0x0,0x54,0xff,0x58,0xfe,0xb2,0xfd, +0x9d,0xfd,0x25,0xfd,0x6b,0xfd,0xea,0xfe,0x26,0x0,0x3a,0x1, +0xd6,0x1,0x2a,0x1,0x77,0x0,0xc6,0xff,0x27,0xfe,0x3c,0xfd, +0xe0,0xfd,0x5f,0xfe,0xaa,0xfe,0xc4,0xff,0xe6,0x0,0x7e,0x1, +0xc2,0x1,0x7a,0x1,0x3d,0x1,0x4a,0x1,0xa3,0x0,0xbd,0xff, +0xca,0xff,0x14,0x0,0x8a,0xff,0x24,0xff,0x3,0x0,0xc5,0x0, +0x89,0x0,0xbc,0x0,0x54,0x1,0x82,0x1,0xa3,0x1,0x68,0x1, +0xd8,0x0,0x30,0x0,0xdd,0xfe,0xc9,0xfd,0xb6,0xfd,0xac,0xfd, +0xdd,0xfd,0xcc,0xfe,0xa4,0xff,0xee,0xff,0xbb,0x0,0x50,0x2, +0x97,0x2,0x62,0x1,0x86,0x0,0xb1,0xff,0x58,0xff,0xca,0xff, +0xdb,0xfe,0xd8,0xfd,0xae,0xfe,0x73,0xff,0x2,0x0,0xe6,0x0, +0x96,0x1,0x6d,0x2,0x3d,0x2,0x7,0x1,0x9e,0x0,0xfb,0xff, +0xb2,0xfe,0xef,0xfd,0x6f,0xfd,0x62,0xfd,0x93,0xfd,0x9c,0xfd, +0x46,0xfe,0xed,0xfe,0x2,0xff,0x30,0xff,0x7c,0xff,0x15,0x0, +0x4a,0x0,0xb7,0xff,0xc8,0xff,0xa3,0xff,0x71,0xfe,0x32,0xfe, +0x62,0xfe,0x91,0xfd,0x69,0xfd,0x6d,0xfe,0xf,0xff,0x7b,0xff, +0x96,0x0,0x58,0x1,0x53,0x1,0xc0,0x1,0xcd,0x1,0xb3,0x0, +0x58,0x0,0x6c,0x0,0x91,0xff,0x63,0xff,0x2d,0x0,0x69,0x0, +0x82,0x0,0x2,0x1,0x29,0x1,0x6,0x1,0x4b,0x1,0xab,0x1, +0x84,0x1,0x33,0x1,0xf0,0x0,0x73,0x0,0x38,0x0,0x50,0x0, +0x2f,0x0,0x72,0x0,0x19,0x1,0x27,0x1,0x92,0x1,0xf3,0x2, +0x2f,0x3,0x34,0x2,0x2d,0x2,0x85,0x2,0xc3,0x1,0x83,0x0, +0xdc,0xff,0xca,0xff,0x58,0xff,0x2d,0xff,0x23,0x0,0x29,0x0, +0xdb,0xff,0x53,0x1,0x7b,0x1,0x29,0x0,0xd9,0x0,0x6f,0x1, +0xa6,0x0,0x9b,0x0,0x82,0x0,0x5b,0x0,0xde,0x0,0xac,0x0, +0x14,0x0,0xe9,0xff,0xe8,0xff,0xf9,0xff,0xee,0xff,0x81,0x0, +0x7d,0x1,0xbb,0x1,0xa,0x2,0xe6,0x1,0x24,0x0,0xd9,0xfe, +0xe9,0xfe,0xab,0xfe,0xcd,0xfd,0xbb,0xfd,0x46,0xff,0x8b,0x0, +0x77,0x0,0x9d,0x0,0xc2,0x0,0x3c,0x0,0xc4,0xff,0xe4,0xfe, +0xb,0xfe,0x1b,0xfe,0x14,0xfe,0x1f,0xfe,0xa0,0xfe,0xaa,0xfe, +0xf4,0xfe,0xe9,0xff,0x5,0x0,0x9a,0xff,0xda,0xff,0xb5,0xff, +0xe1,0xfe,0x99,0xfe,0x66,0xfe,0x41,0xfe,0xd9,0xfe,0xa4,0xfe, +0x18,0xfe,0x19,0xff,0x43,0xff,0x5,0xfe,0x88,0xfe,0xa4,0xff, +0x45,0xff,0x71,0xff,0x70,0x0,0x17,0x0,0x33,0xff,0x6c,0xff, +0x27,0xff,0xec,0xfd,0x35,0xfe,0xa3,0xff,0x64,0x0,0x23,0x1, +0x4d,0x2,0x76,0x3,0xb2,0x3,0x85,0x2,0xea,0x1,0xd0,0x1, +0x56,0x0,0x62,0xff,0xc,0x0,0x74,0x0,0xda,0x0,0x6,0x2, +0xf6,0x2,0xee,0x2,0x4d,0x2,0x79,0x1,0x5f,0x0,0xbc,0xff, +0x98,0xff,0x0,0xff,0x65,0xff,0xf7,0x0,0x58,0x1,0x19,0x1, +0xe2,0x0,0x5,0x0,0x95,0xff,0x3e,0xff,0x8a,0xfe,0xc7,0xfe, +0x2d,0xff,0x2d,0xff,0xc0,0xff,0x5e,0x0,0x99,0x0,0x72,0x0, +0xd6,0xff,0x51,0xff,0xd5,0xfe,0x7e,0xfe,0x84,0xfe,0x41,0xfe, +0x10,0xfe,0x51,0xfe,0x87,0xfe,0xe9,0xfe,0x26,0xff,0xc5,0xfe, +0x78,0xfe,0x68,0xfe,0x3b,0xfe,0xe2,0xfd,0xa0,0xfd,0x1,0xfe, +0x96,0xfe,0xac,0xfe,0x11,0xff,0xf6,0xff,0xcc,0xff,0xc6,0xfe, +0xbe,0xfe,0x17,0xff,0x6,0xff,0xa4,0xff,0xfc,0xff,0x7f,0xff, +0xbb,0xff,0xe0,0xff,0xb,0x0,0x49,0x1,0x18,0x1,0x2c,0x0, +0x19,0x1,0x2e,0x1,0xc5,0xff,0xe9,0xfe,0xda,0xfd,0x15,0xfd, +0x3e,0xfd,0xbf,0xfd,0x53,0xff,0xb2,0x0,0xde,0x0,0xbb,0x1, +0x2e,0x2,0xd0,0x0,0x1c,0x0,0x56,0x0,0x4f,0xff,0x1c,0xfe, +0xd5,0xfe,0xca,0xff,0x6b,0xff,0x10,0x0,0xd7,0x1,0xdf,0x1, +0x4a,0x1,0xf,0x2,0x46,0x2,0x32,0x1,0x69,0x0,0xcb,0xff, +0xc4,0xfe,0xb2,0xfe,0xda,0xff,0x4a,0x0,0x9,0x0,0x20,0x0, +0xb2,0xff,0x1b,0xff,0x2e,0xff,0xd6,0xfe,0x5c,0xfe,0x7f,0xfe, +0x9f,0xfe,0x15,0xff,0xba,0xff,0x99,0xff,0x26,0xff,0xc4,0xfe, +0xb2,0xfe,0x2b,0xff,0xf1,0xfe,0x5,0xfe,0x39,0xfe,0x52,0xff, +0xb3,0xff,0x2,0x0,0x56,0x1,0xbe,0x1,0x5c,0x0,0xfc,0xff, +0x4c,0x0,0x51,0xff,0x21,0xff,0x65,0xff,0x1c,0xfe,0x64,0xfe, +0xe7,0xff,0xb0,0xfe,0x38,0xfe,0x63,0x0,0xda,0xff,0x30,0xfe, +0x1f,0x0,0x56,0x1,0x93,0xff,0x5e,0xff,0xfa,0xff,0xec,0xfe, +0x91,0xfe,0xb3,0xfe,0xd6,0xfd,0x37,0xfe,0x89,0xff,0xc5,0xff, +0x8c,0x0,0x20,0x2,0x4b,0x2,0x7a,0x1,0x11,0x1,0x97,0x0, +0xa2,0xff,0xd6,0xfe,0x8e,0xfe,0xaa,0xfe,0x36,0xff,0xf7,0xff, +0xeb,0x0,0x34,0x2,0xa4,0x2,0x11,0x2,0xe5,0x1,0xfb,0x0, +0xda,0xfe,0x7c,0xfe,0x2f,0xff,0xd,0xfe,0x87,0xfd,0x6f,0xff, +0x7d,0x0,0x6,0x0,0x7f,0x0,0x8c,0x1,0xb9,0x1,0x8f,0x1, +0x9,0x2,0xab,0x2,0xd7,0x1,0x2e,0x0,0x19,0x0,0x94,0x0, +0xd1,0xff,0x17,0xff,0x12,0xff,0x9c,0xff,0xc3,0x0,0x3d,0x1, +0x78,0x1,0xd6,0x2,0x89,0x3,0x7e,0x2,0x85,0x1,0x2f,0x1, +0xff,0xff,0xb6,0xfd,0xc5,0xfc,0xac,0xfd,0x47,0xfe,0xfd,0xfe, +0x15,0x0,0x92,0x0,0xa8,0x1,0x8d,0x2,0x21,0x2,0x40,0x2, +0x7f,0x1,0x8f,0xff,0xd,0x0,0x7b,0x0,0x43,0xfe,0xce,0xfd, +0x2f,0xff,0x86,0xfe,0xad,0xfd,0x35,0xff,0xcc,0x0,0xe6,0x0, +0x90,0x1,0xeb,0x2,0xf9,0x2,0xe5,0x1,0x49,0x0,0xed,0xfe, +0xde,0xfe,0x27,0xfe,0xc9,0xfc,0xf1,0xfd,0xb1,0xff,0xd1,0xff, +0xfc,0x0,0xa5,0x2,0x32,0x2,0x3,0x1,0x24,0x0,0xf5,0xfe, +0x32,0xfe,0x59,0xfe,0xc5,0xfe,0x5c,0xff,0x46,0x0,0x29,0x1, +0xb9,0x1,0xa2,0x1,0xc2,0x0,0x3c,0x0,0x6f,0x0,0xe8,0xff, +0x25,0xff,0xb5,0xff,0x3c,0x0,0x0,0x0,0x98,0x0,0x44,0x1, +0xb2,0x0,0x93,0xff,0x5d,0xfe,0x43,0xfe,0x75,0xff,0x3c,0xff, +0x76,0xfe,0x9a,0xff,0x42,0x0,0xc4,0xff,0x30,0x0,0xf1,0xff, +0x74,0xfe,0x9c,0xfe,0x55,0x0,0xc1,0x0,0x6e,0x0,0x6,0x2, +0x51,0x3,0xde,0x1,0xce,0x0,0xa5,0x0,0x67,0xff,0x42,0xfe, +0x9b,0xfd,0x5a,0xfe,0xff,0xff,0x2b,0xff,0x7a,0xff,0x3a,0x2, +0xe7,0x0,0x3b,0xff,0x4f,0x1,0x80,0x0,0x35,0xfe,0x42,0xff, +0xde,0xff,0x2,0xff,0x50,0xff,0xc1,0x0,0x95,0x1,0x79,0x0, +0xdc,0xff,0xfa,0x0,0xe,0x1,0x5f,0x0,0xb8,0x0,0x67,0x1, +0xd0,0x0,0x22,0xff,0x92,0xff,0x51,0x1,0x86,0x0,0xe9,0xff, +0x85,0x1,0xdc,0x1,0xe6,0x0,0xb5,0x0,0x9e,0x0,0xa0,0xff, +0xb5,0xfe,0x40,0xff,0x5c,0xff,0x5d,0xfe,0x13,0xff,0xf9,0xff, +0x50,0xff,0x21,0x0,0x87,0x1,0x95,0x0,0xa6,0xff,0x4e,0x0, +0x4,0x0,0xf3,0xfe,0x8d,0xff,0xd3,0xff,0xa6,0xfe,0x98,0xff, +0xec,0x0,0x2f,0x0,0x89,0x1,0x51,0x3,0x77,0x1,0xa0,0x0, +0xdb,0x1,0xa2,0x0,0x39,0xfe,0x9c,0xfd,0x2b,0xfe,0x4b,0xfe, +0xd1,0xfd,0x95,0xfe,0x7e,0x0,0x1,0x1,0x75,0x0,0x30,0x1, +0x60,0x2,0x56,0x1,0x15,0xff,0xbc,0xfe,0x7,0xff,0xa7,0xfd, +0x66,0xfd,0xc1,0xff,0xae,0x0,0xd1,0xff,0x25,0x1,0xdf,0x2, +0xf2,0x1,0x17,0x1,0xd8,0x0,0x1e,0xff,0x82,0xfd,0xb5,0xfd, +0xe9,0xfe,0x37,0xff,0xfd,0xfe,0x5d,0x1,0xdd,0x3,0x28,0x3, +0x5a,0x3,0x26,0x4,0xec,0x1,0x5c,0x0,0x9f,0x0,0x7a,0xff, +0x31,0xfe,0xc0,0xfe,0xc6,0xff,0x75,0xff,0xd0,0xff,0xb0,0x2, +0x98,0x3,0xbe,0x1,0xc3,0x1,0x74,0x2,0x1e,0x2,0xbd,0x1, +0xb1,0x0,0xce,0xff,0xa3,0xfe,0x44,0xfd,0x99,0xfe,0x9c,0xff, +0x2b,0xff,0x1,0x2,0x95,0x4,0xa4,0x3,0xd5,0x3,0x55,0x4, +0xdb,0x1,0x9f,0xfe,0xeb,0xfc,0x42,0xfc,0x17,0xfb,0x2e,0xfa, +0xcd,0xfb,0xd5,0xfe,0x6a,0x0,0x67,0x0,0xc5,0x1,0x67,0x4, +0x53,0x3,0x30,0x0,0x20,0x0,0x7a,0xff,0x59,0xfc,0x2b,0xfb, +0x54,0xfb,0x64,0xfa,0x81,0xf9,0x50,0xfa,0xaa,0xfc,0x17,0xfe, +0xfd,0xfe,0x5f,0x1,0x2f,0x2,0xe9,0x0,0x24,0x1,0xca,0x0, +0xf4,0xfd,0x77,0xfc,0xe3,0xfc,0xf5,0xfb,0xbd,0xfa,0x18,0xfc, +0xc2,0xfd,0xa8,0xfd,0xc2,0xfe,0x34,0x1,0x59,0x2,0xfa,0x2, +0xbf,0x2,0x0,0x1,0x6e,0x0,0xa0,0xff,0x64,0xfc,0x34,0xfb, +0xc8,0xfc,0x94,0xfc,0x86,0xfc,0xd1,0xff,0xe0,0x2,0x48,0x3, +0x8c,0x3,0xdf,0x4,0x0,0x5,0xa1,0x2,0xa5,0x0,0x8f,0x0, +0x8c,0xff,0x5e,0xfe,0x78,0xff,0x1f,0x0,0x8b,0xff,0xd2,0xff, +0xe,0x0,0x9c,0x0,0xf6,0x1,0x8f,0x2,0xd5,0x3,0x77,0x5, +0xfa,0x4,0x86,0x4,0xb0,0x4,0x3e,0x3,0x1c,0x1,0x7b,0xff, +0x16,0xff,0x4a,0xff,0x90,0xfe,0xab,0xff,0xc1,0x1,0xb0,0x0, +0xf7,0x0,0x6c,0x3,0x42,0x2,0x86,0x1,0xf6,0x2,0x52,0x0, +0x3,0xfe,0xad,0x0,0xb4,0x0,0x97,0xfc,0xd2,0xfb,0x1c,0xfe, +0x8,0xfd,0x58,0xfa,0x15,0xfd,0xf3,0x1,0x80,0x1,0x90,0xff, +0xcb,0x0,0xb4,0x1,0x24,0x0,0x78,0xfc,0x24,0xf9,0x30,0xfa, +0x34,0xfb,0x17,0xf8,0xf1,0xf8,0xf3,0xfe,0x3c,0x0,0xef,0xfd, +0x18,0xff,0x0,0x1,0xae,0xff,0x3,0xfd,0x78,0xfb,0x6d,0xfb, +0xd9,0xfb,0x31,0xfb,0x46,0xf9,0x30,0xf9,0xde,0xfb,0xe2,0xfb, +0xca,0xf9,0x6f,0xfc,0xb6,0xff,0x47,0xfe,0xfa,0xfd,0x40,0xff, +0xcb,0xfd,0xc8,0xfc,0x18,0xfc,0xdd,0xf8,0xcc,0xf7,0x3b,0xfa, +0x94,0xfa,0x68,0xf9,0xf8,0xfb,0x44,0x0,0xe5,0xff,0x6e,0xfd, +0x8,0xff,0xe0,0xff,0x1d,0xfc,0xa3,0xfa,0xb9,0xfb,0x46,0xfa, +0x3d,0xfa,0x22,0xfd,0xdb,0xfd,0x19,0xfe,0xa7,0x0,0x9b,0x1, +0xe4,0xff,0xde,0xff,0x48,0x2,0xdc,0x1,0x9,0xfe,0x4,0xfe, +0x3,0x0,0x5c,0xfc,0xf1,0xf9,0xde,0xfd,0x38,0xfe,0xf,0xfc, +0xe0,0xff,0xe,0x3,0xc1,0x1,0x9f,0x2,0xc4,0x3,0x81,0x1, +0xff,0xff,0xf9,0xff,0xcf,0xfe,0xa6,0xfd,0xc9,0xfd,0x54,0xfe, +0xc5,0xfe,0x5f,0xff,0xe2,0xff,0x1a,0x0,0x32,0x0,0xb2,0xff, +0x36,0xff,0x81,0xff,0x90,0xfe,0x92,0xfd,0x45,0xff,0x3,0xff, +0x5c,0xfc,0x45,0xfe,0x8f,0x0,0xf4,0xfd,0xf6,0xfd,0xc1,0x0, +0xbb,0xff,0xe2,0xfe,0x5f,0x0,0xae,0xff,0xf0,0xfd,0x49,0xfd, +0x53,0xfd,0x4c,0xfe,0x89,0xfe,0xe1,0xfd,0x89,0xfe,0x98,0xff, +0x47,0x0,0x1e,0x1,0xd4,0x0,0x29,0x0,0x5d,0x1,0x75,0x2, +0xf,0x1,0xff,0xff,0x2c,0x1,0xd0,0x0,0xd8,0xfe,0x35,0x0, +0x51,0x2,0x6a,0x0,0x9e,0xff,0xba,0x2,0x72,0x3,0xce,0x1, +0x3f,0x3,0xec,0x4,0x67,0x3,0xb6,0x2,0x91,0x3,0xe5,0x2, +0x7a,0x2,0x9a,0x3,0x1,0x4,0xe0,0x3,0x51,0x4,0x9d,0x4, +0xdc,0x4,0x7a,0x5,0x70,0x5,0xa4,0x4,0x92,0x4,0x44,0x4, +0xd7,0x2,0xe,0x3,0xb7,0x3,0x74,0x2,0x20,0x3,0x92,0x4, +0x98,0x3,0x23,0x5,0x8e,0x7,0x8c,0x6,0x24,0x7,0x58,0x7, +0x7c,0x4,0x6d,0x5,0xd1,0x5,0x8e,0x1,0xa6,0x2,0x4,0x6, +0xa1,0x3,0xb5,0x3,0x17,0x7,0x95,0x5,0xd0,0x2,0x78,0x2, +0x7e,0x1,0x75,0x1,0xb7,0x3,0x67,0x4,0x25,0x3,0xb4,0x3, +0x12,0x5,0x58,0x3,0x14,0x1,0x93,0x1,0xea,0x0,0x7,0xfe, +0xec,0xfd,0xa8,0x0,0xf5,0x1,0x25,0x1,0x84,0x1,0x1b,0x4, +0x50,0x4,0xad,0x1,0xb2,0x1,0x63,0x2,0xc5,0xff,0xef,0xfd, +0xa5,0xfe,0x1a,0xff,0xfc,0xfe,0x66,0xff,0x86,0x1,0xd3,0x3, +0x7b,0x3,0x58,0x2,0x82,0x2,0x30,0x3,0xf3,0x2,0x57,0x1, +0x8f,0x1,0x9c,0x2,0xc1,0xff,0xca,0xfd,0x26,0xff,0x2d,0xfe, +0xe8,0xfd,0xce,0x0,0xf1,0x1,0xa0,0x2,0x15,0x4,0xae,0x3, +0x7,0x3,0x24,0x3,0x40,0x3,0x35,0x3,0xcc,0x1,0xe0,0xff, +0x7e,0xff,0xc7,0x0,0xe4,0x1,0x3d,0x1,0x97,0x1,0x24,0x3, +0xfa,0x1,0x9,0x1,0x4a,0x2,0x3e,0x1,0xc,0xff,0xfe,0xfe, +0x6d,0xff,0xca,0xfe,0x17,0xfe,0x50,0xff,0xc4,0x0,0x4b,0x0, +0x55,0x1,0xa3,0x3,0x8b,0x2,0x82,0xff,0xd1,0xfe,0x3c,0x0, +0xc7,0xfe,0x34,0xfb,0xab,0xfd,0x30,0x1,0x57,0xfd,0xb2,0xfc, +0x58,0x2,0x3c,0x1,0xfd,0xfc,0x6a,0x0,0xda,0x3,0x7c,0xff, +0xf5,0xfa,0xa0,0xfb,0x9f,0xfc,0xee,0xfb,0xab,0xfb,0xbc,0xfc, +0x29,0xff,0xe6,0xfe,0x73,0xfc,0x98,0xff,0xce,0x2,0xe8,0xfd, +0x73,0xfa,0xdf,0xfc,0x2c,0xfd,0xc5,0xfa,0xcc,0xfa,0xab,0xfe, +0x16,0x1,0xea,0xfe,0x73,0xff,0x67,0x2,0x1a,0x0,0x6d,0xfe, +0xd5,0x0,0xfc,0xfe,0x12,0xfb,0x16,0xfc,0x9c,0xfd,0x11,0xfc, +0xb8,0xfb,0xcf,0xfd,0x5f,0xff,0xa1,0x0,0x67,0x2,0x8a,0x2, +0x95,0x0,0x8d,0xfe,0xc1,0xfe,0x35,0x1,0xe,0x1,0x58,0xfd, +0x84,0xfc,0x94,0xfe,0x92,0xfd,0xcd,0xfb,0x70,0xfe,0xbb,0x0, +0xd5,0xfd,0x4f,0xfc,0xb3,0xff,0xce,0x0,0x68,0xfe,0x8a,0xfe, +0xf0,0x0,0x38,0x1,0x2b,0xff,0x51,0xfe,0x8b,0xff,0xd1,0xff, +0xc2,0xfe,0x7a,0xfe,0xe8,0xff,0xc9,0x1,0x87,0x0,0x14,0xfe, +0xd,0xff,0x8f,0xfe,0x86,0xfa,0xab,0xfa,0xea,0xfd,0x6b,0xfc, +0xf6,0xf8,0xb7,0xfa,0x5f,0xfe,0xd6,0xfd,0x9,0xfe,0xbe,0x1, +0x6e,0x1,0x23,0xfe,0x8d,0xfe,0xcb,0xff,0x4f,0xfe,0x4f,0xfb, +0x9a,0xf9,0x29,0xfb,0x7f,0xfc,0x6c,0xfc,0xd,0xfe,0x5c,0xff, +0x4e,0xff,0x1c,0x0,0xeb,0x0,0x14,0x1,0xeb,0xff,0x29,0xfe, +0x4,0xff,0x2d,0x0,0x69,0xff,0xbc,0xff,0x54,0x0,0x60,0xff, +0x2e,0xfe,0x13,0xfd,0x9e,0xfc,0xc6,0xfc,0x13,0xfd,0xf6,0xfd, +0x16,0xfe,0xa4,0xfd,0x6e,0xfe,0xa4,0xff,0xbf,0x0,0x1d,0x1, +0x19,0x1,0xaa,0x2,0xce,0x2,0x3,0x1,0x79,0x1,0x72,0x0, +0x25,0xfd,0x19,0xfe,0xdc,0xff,0x35,0xff,0x98,0x0,0xb7,0x1, +0x4b,0x1,0x43,0x2,0xea,0x0,0xf6,0xfd,0x11,0xfe,0x26,0xfd, +0xee,0xfa,0xfa,0xfb,0xb0,0xfc,0x3e,0xfc,0x52,0xff,0x55,0x2, +0x68,0x1,0x39,0x1,0x95,0x2,0xb5,0x0,0x29,0xfe,0xa2,0xff, +0xdd,0xff,0xf2,0xfb,0x4,0xfb,0xda,0xfc,0xff,0xfa,0x15,0xf9, +0xb,0xfb,0x41,0xfc,0x67,0xfc,0xb,0xff,0xf4,0x0,0xaa,0xff, +0xad,0xff,0x37,0x1,0xd5,0x0,0x23,0x1,0xd3,0x1,0xa5,0xfe, +0x7,0xfc,0x79,0xfc,0x97,0xfa,0x9d,0xf8,0x6b,0xfa,0xbf,0xfb, +0x96,0xfb,0x72,0xfd,0xce,0x0,0xbc,0x1,0xc2,0xff,0x43,0xff, +0xa1,0xff,0x38,0xfd,0xe8,0xfb,0x9d,0xfd,0x5,0xfe,0x6d,0xfd, +0x4,0xfe,0x28,0xff,0xf6,0xff,0xa5,0xff,0xc2,0xfe,0xcd,0xfd, +0xa5,0xfc,0x7a,0xfc,0x10,0xfd,0xab,0xfd,0x2a,0xfe,0x30,0xfe, +0x7e,0xff,0x13,0x1,0xbd,0x0,0xfa,0x1,0x8c,0x3,0xae,0x1, +0x22,0x1,0x4d,0x2,0xd3,0x0,0x4e,0xff,0x68,0xff,0xb0,0xff, +0x72,0xff,0x4b,0xfe,0x26,0xff,0xaa,0x0,0x2,0xfe,0x9,0xfc, +0xd0,0xfd,0x6,0xfe,0xa7,0xfd,0x8b,0xff,0xd8,0x0,0xc7,0x0, +0x19,0x1,0x75,0x2,0x85,0x3,0xbc,0x1,0xf6,0xfe,0x1f,0xff, +0xd1,0xff,0xd2,0xfd,0x2e,0xfd,0x98,0xff,0xd7,0xfe,0x96,0xfb, +0xde,0xfc,0x4e,0xff,0x24,0xfe,0x68,0xfe,0x48,0x1,0x31,0x2, +0x87,0x1,0x55,0x2,0x7c,0x4,0x88,0x4,0x56,0x2,0x8c,0x2, +0x50,0x3,0xb9,0x0,0x71,0xff,0xf0,0xff,0x1f,0xfd,0x94,0xfa, +0xaf,0xfb,0x3e,0xfc,0xc9,0xfb,0xe8,0xfc,0xc5,0xfe,0x5,0x0, +0xb5,0x0,0xc0,0x1,0x3d,0x3,0x2f,0x3,0x80,0x1,0x26,0x0, +0x28,0xff,0x4d,0xfe,0xe3,0xfd,0xea,0xfc,0xe8,0xfb,0x83,0xfc, +0x3e,0xfd,0x63,0xfd,0x6e,0xff,0xc0,0x1,0x26,0x1,0x5d,0x1, +0x74,0x4,0x14,0x5,0xb7,0x2,0xd6,0x1,0xf1,0x1,0x7b,0x1, +0x12,0x1,0x5b,0x0,0xfb,0xff,0x66,0x0,0x11,0x0,0xbb,0xff, +0x95,0x0,0xb7,0x0,0xb1,0xff,0xaf,0xff,0x3b,0x0,0xd9,0xfe, +0x47,0xfd,0x6,0xff,0x13,0x1,0x59,0x0,0x1e,0x1,0x2f,0x3, +0xab,0x1,0xb8,0x0,0x2,0x3,0x59,0x2,0x22,0x0,0xf6,0x0, +0xb4,0x0,0x35,0xff,0x44,0x0,0x55,0x0,0x33,0xfe,0x5a,0xfe, +0xa1,0xff,0x44,0xfe,0xff,0xfc,0x36,0xff,0xd1,0x0,0xf1,0xff, +0x31,0x2,0x4b,0x5,0x98,0x3,0xa1,0x2,0x56,0x3,0x20,0x0, +0x51,0xfd,0xe7,0xfc,0xc,0xfa,0x96,0xf7,0x2d,0xf9,0xe2,0xfb, +0x46,0xfd,0x14,0xff,0x95,0x2,0x41,0x3,0x2e,0x1,0x93,0x2, +0x11,0x3,0x98,0xff,0x79,0xff,0xcb,0x0,0xe8,0xff,0x35,0x0, +0x60,0xff,0xe5,0xfd,0xc8,0xff,0xb1,0x0,0x91,0xff,0x63,0x0, +0x95,0x1,0xb8,0x0,0x56,0xff,0x8d,0x0,0x50,0x2,0xa6,0x0, +0x71,0x0,0x1c,0x3,0x27,0x2,0x39,0x0,0x1a,0x1,0x17,0x1, +0xc7,0x0,0xd7,0x1,0x90,0x2,0xca,0x2,0x8c,0x1,0x2f,0xff, +0x33,0xff,0x54,0x0,0x12,0xff,0x6b,0xfe,0xb1,0x0,0x91,0x1, +0xfc,0x0,0x96,0x2,0xf,0x4,0x8a,0x4,0x3a,0x5,0x30,0x4, +0x2e,0x3,0x30,0x2,0xf2,0xfe,0x7a,0xfe,0x64,0x0,0xe4,0xff, +0xb,0x0,0x97,0x0,0x3d,0x0,0x9a,0x0,0x15,0xff,0x35,0xff, +0x64,0x2,0x6e,0x1,0x57,0x1,0xe4,0x4,0xb6,0x3,0x4,0x2, +0x4b,0x3,0xe8,0x1,0xf7,0xff,0xdf,0xfe,0x5f,0xfd,0xf1,0xfc, +0x52,0xfc,0xf7,0xfc,0xe6,0xfe,0xe4,0xfe,0xf,0x1,0x46,0x4, +0x7c,0x2,0xe,0x1,0x5d,0x2,0x7f,0x1,0x23,0x0,0x3e,0x0, +0xb2,0xff,0xac,0xfd,0x34,0xfc,0xd9,0xfd,0x30,0xff,0xee,0xfd, +0x6c,0xff,0x40,0x2,0xeb,0x0,0xc7,0xff,0x5c,0x1,0xc2,0x0, +0x3a,0xfe,0x32,0xfd,0x7a,0xfd,0x24,0xfe,0xe8,0xfd,0xde,0xfc, +0xae,0xfd,0xb0,0xff,0xe4,0x0,0xe5,0x1,0x15,0x2,0x19,0x2, +0x5a,0x2,0x95,0xff,0x11,0xfd,0x53,0xfe,0x3d,0xfd,0xe3,0xfa, +0xb7,0xfc,0x34,0xfe,0x76,0xfe,0x4b,0x0,0x46,0x1,0x95,0x2, +0x29,0x4,0x2e,0x2,0x4f,0x0,0x2a,0x1,0x5f,0x0,0xe9,0xfd, +0x3d,0xfd,0x30,0xfe,0x6c,0xfe,0x23,0xfe,0x85,0xff,0xce,0x0, +0xdb,0xff,0x2d,0xff,0x4d,0xff,0x2c,0xff,0xb6,0xff,0x6,0xff, +0x6f,0xfd,0x82,0xff,0x7b,0x1,0x88,0xfe,0xe6,0xfc,0xc6,0xfd, +0xe8,0xfb,0xa6,0xfb,0x9e,0xfe,0xe6,0xfe,0x23,0xff,0xc8,0x0, +0x31,0xff,0x28,0xfe,0xeb,0xff,0x61,0xff,0x43,0xfe,0x63,0xff, +0x77,0xff,0xe5,0xfd,0x31,0xfd,0x93,0xfd,0x6b,0xfd,0x8f,0xfc, +0xca,0xfc,0x8c,0xfe,0xa9,0x0,0x6f,0x1,0xc0,0x0,0xed,0x0, +0xb8,0x0,0xca,0xfe,0xce,0xfe,0x34,0xff,0x15,0xfd,0x44,0xfd, +0x48,0xff,0x90,0xfe,0xb5,0xfe,0xac,0x0,0xd3,0xff,0x27,0xfe, +0x2d,0xff,0x21,0x0,0xe9,0xfe,0x84,0xfe,0x97,0x0,0x4f,0x1, +0x6,0xff,0x6c,0xfe,0xb,0x0,0x70,0xff,0xdd,0xfe,0xdc,0x0, +0xe7,0x0,0x88,0xff,0x27,0x0,0x2c,0x0,0xfa,0xff,0xcc,0x0, +0xce,0x0,0x99,0x2,0x39,0x4,0x91,0x1,0xa1,0x1,0xb3,0x4, +0x14,0x3,0x9b,0x1,0xc5,0x3,0x85,0x3,0xc3,0x1,0x88,0x2, +0x2d,0x4,0x7d,0x4,0x51,0x4,0x7c,0x5,0xd8,0x6,0x7b,0x6, +0x4f,0x5,0x29,0x5,0x32,0x6,0x4d,0x5,0x71,0x3,0xf6,0x5, +0xc2,0x7,0xb3,0x4,0xb5,0x5,0x61,0x9,0x5f,0x7,0xa,0x6, +0xeb,0x8,0x99,0x8,0x33,0x6,0x94,0x7,0x35,0x9,0x10,0x7, +0x22,0x6,0x21,0x8,0x1,0x7,0xd0,0x4,0x65,0x7,0x99,0x9, +0xe0,0x7,0xa8,0x8,0xb1,0xc,0x93,0xc,0xbe,0x8,0xa1,0x8, +0x63,0xa,0x73,0x8,0x4b,0x7,0x7,0xa,0x22,0xb,0x1b,0x9, +0xab,0x8,0x7c,0x9,0x33,0x6,0xe0,0x3,0x45,0x9,0xab,0xa, +0xd1,0x6,0xeb,0xd,0xe,0x13,0xec,0x8,0xf9,0x8,0x5c,0x13, +0x3d,0xb,0x94,0x0,0xbf,0x8,0x83,0x7,0x7b,0xf6,0x59,0xf9, +0x21,0x6,0x61,0xfc,0x28,0xf8,0xd0,0xa,0x57,0xc,0xcf,0x1, +0x82,0xc,0xd5,0xf,0xd1,0xfd,0xb3,0xfb,0xa2,0x2,0x3d,0xf7, +0xd5,0xee,0xd4,0xf6,0xe9,0xf8,0x8d,0xf4,0x81,0xfa,0x73,0x1, +0xf,0xfe,0x3,0xfc,0x37,0xfd,0x91,0xf8,0xaf,0xf4,0x28,0xf3, +0x40,0xed,0x61,0xec,0x8d,0xf1,0x85,0xef,0x43,0xed,0x37,0xf3, +0x2c,0xf6,0xd9,0xf3,0x54,0xf4,0xf4,0xf5,0xb6,0xf3,0xae,0xed, +0xe7,0xe8,0x15,0xe9,0x76,0xe8,0x30,0xe4,0x63,0xe4,0x7e,0xe9, +0x51,0xeb,0x78,0xeb,0x89,0xee,0x5c,0xf0,0x3a,0xef,0xd7,0xee, +0x91,0xee,0x4f,0xed,0xc6,0xec,0xf,0xeb,0x1c,0xe8,0x61,0xe9, +0xac,0xec,0x5d,0xeb,0xda,0xea,0x84,0xef,0xab,0xf0,0x8c,0xee, +0x45,0xf1,0xa4,0xf2,0xb0,0xef,0xbd,0xf1,0x32,0xf5,0x14,0xf4, +0x79,0xf5,0x9e,0xf7,0x21,0xf5,0x71,0xf5,0x1d,0xf9,0x9e,0xf8, +0x29,0xf7,0xc4,0xf8,0x8f,0xf9,0x5e,0xf9,0x32,0xfb,0xdc,0xfc, +0xb0,0xfc,0xa4,0xfd,0x8b,0xff,0x8f,0x0,0xe8,0x1,0xf,0x2, +0x8a,0x0,0x1c,0x1,0xf4,0x1,0x77,0x1,0xe6,0x2,0x6f,0x3, +0x6,0x2,0xb3,0x3,0x8e,0x5,0x66,0x4,0x8b,0x4,0xb7,0x5, +0xec,0x5,0xa,0x7,0x8f,0x7,0x5a,0x6,0x65,0x6,0xf5,0x6, +0x28,0x6,0x3f,0x6,0xe,0x7,0x8a,0x6,0xa,0x7,0xe8,0x8, +0x92,0x8,0x4f,0x7,0x99,0x7,0xef,0x6,0x97,0x4,0x88,0x3, +0x19,0x4,0x45,0x4,0x79,0x4,0xf4,0x5,0x32,0x6,0x3,0x4, +0x66,0x3,0x66,0x4,0x63,0x3,0x79,0x2,0xa8,0x3,0x64,0x3, +0x57,0x1,0x32,0x1,0x45,0x2,0x7b,0x1,0xee,0xff,0x61,0xff, +0xd3,0xfe,0x91,0xfe,0x5f,0xff,0xfc,0xff,0x6,0x0,0xb7,0xff, +0xd,0xff,0xd2,0xfe,0xc9,0xfe,0xc3,0xfe,0xe4,0xfe,0xe,0xfe, +0x48,0xfd,0x4f,0xfd,0x34,0xfc,0x99,0xfb,0xab,0xfc,0x8c,0xfc, +0xf0,0xfc,0xa8,0xff,0xfa,0x0,0xb,0x1,0xeb,0x1,0x12,0x1, +0xf6,0xfe,0x29,0xff,0x28,0x0,0x30,0xff,0x18,0xfe,0xe5,0xfe, +0x24,0x0,0xff,0x0,0xc6,0x2,0xbe,0x4,0x6,0x5,0x96,0x4, +0x15,0x5,0x9c,0x5,0xc6,0x4,0xe7,0x3,0x5e,0x4,0xea,0x3, +0x4b,0x2,0x5d,0x3,0xf,0x6,0xbd,0x6,0x91,0x7,0xa9,0x9, +0x56,0xa,0x84,0xa,0x32,0xb,0x4,0xa,0x7d,0x7,0x97,0x6, +0x16,0x7,0x9f,0x6,0xd0,0x5,0xee,0x6,0x78,0x8,0xcd,0x8, +0x43,0xa,0x42,0xc,0xbd,0xb,0xd6,0xa,0x70,0xb,0x96,0xa, +0x25,0x8,0xd4,0x6,0xe1,0x5,0x9d,0x4,0xc4,0x4,0x72,0x5, +0x2c,0x5,0x2e,0x5,0x1b,0x6,0x7a,0x7,0x23,0x8,0xf3,0x6, +0xff,0x5,0x14,0x6,0x1c,0x5,0x1f,0x4,0x27,0x3,0xe3,0x0, +0x5b,0x0,0x11,0x1,0xb9,0xff,0x38,0xff,0xa9,0x0,0x70,0x1, +0x7b,0x2,0x51,0x3,0xe0,0x1,0xfa,0xff,0x5,0xff,0xe2,0xfd, +0x3,0xfd,0x5f,0xfd,0xc6,0xfc,0xa8,0xfa,0x48,0xfb,0x90,0xfd, +0xd5,0xfc,0xc9,0xfc,0xf9,0xfe,0x5f,0xfe,0x7f,0xfd,0x81,0xfe, +0x44,0xfc,0x3a,0xf9,0x89,0xfa,0x46,0xfc,0x8,0xfc,0x30,0xfc, +0x21,0xfc,0x5d,0xfb,0x6b,0xfb,0x8,0xfc,0xc1,0xfc,0xc6,0xfd, +0xc7,0xfe,0xc,0x0,0x5a,0x0,0x4f,0xfe,0xad,0xfc,0xb3,0xfc, +0x6c,0xfc,0xe4,0xfc,0x98,0xfe,0xc3,0xff,0xe7,0x0,0x11,0x2, +0x73,0x2,0x45,0x2,0x78,0x1,0x79,0x1,0x75,0x2,0x46,0x2, +0x12,0x2,0x64,0x2,0xf,0x2,0xf5,0x2,0xe6,0x3,0xb8,0x2, +0xae,0x2,0xd,0x4,0xae,0x4,0x46,0x5,0x9d,0x4,0x53,0x3, +0xda,0x3,0x41,0x3,0x8b,0x1,0x8d,0x2,0x49,0x3,0xfd,0x1, +0xd9,0x2,0xea,0x4,0xe7,0x4,0x46,0x4,0xaf,0x3,0x23,0x2, +0x1a,0x1,0xe8,0x1,0xfb,0x2,0x87,0x2,0x74,0x1,0x31,0x1, +0xe0,0x0,0xde,0xff,0x3,0xff,0xad,0xfe,0xd5,0xfe,0x30,0xff, +0x72,0xff,0x80,0xff,0x7,0xff,0x52,0xff,0x64,0x0,0xf8,0xfe, +0x79,0xfc,0x5a,0xfc,0x19,0xfc,0x8e,0xfb,0x4a,0xfd,0x95,0xfd, +0xeb,0xfa,0x8b,0xfa,0xc4,0xfc,0xa4,0xfc,0x75,0xfa,0x5a,0xfa, +0xa8,0xfb,0xc9,0xfb,0x25,0xfc,0xc1,0xfc,0x96,0xfb,0x0,0xfa, +0x9f,0xf9,0x52,0xfa,0x4e,0xfb,0x3b,0xfb,0x3e,0xfb,0x84,0xfb, +0xe5,0xf9,0x38,0xf9,0x4c,0xfb,0xab,0xfb,0xe3,0xfa,0xff,0xfc, +0x74,0xff,0x1b,0xff,0x11,0xfe,0xb9,0xfd,0xae,0xfc,0xa3,0xfb, +0x10,0xfc,0xa8,0xfc,0xfa,0xfc,0x93,0xfd,0xbc,0xfd,0x43,0xfe, +0x2f,0xff,0x2e,0xff,0x9b,0xff,0xd5,0xff,0xf6,0xfd,0x8,0xfd, +0xc3,0xfe,0x9f,0x0,0xeb,0x0,0x6a,0xff,0x55,0xfe,0x65,0xff, +0x7,0x0,0xbd,0xff,0x8c,0x0,0x8c,0x0,0x8c,0xfe,0xda,0xfd, +0x2a,0xff,0x41,0xff,0x45,0xfe,0xa7,0xfe,0xa5,0xff,0xb2,0x0, +0xdf,0x1,0xc3,0x0,0x98,0xfe,0x86,0xfe,0xe2,0xfd,0x95,0xfc, +0x2a,0xfe,0x46,0xff,0x45,0xfe,0x96,0xff,0xfe,0x0,0x82,0xff, +0x22,0xff,0x5c,0xff,0x6f,0xfd,0xd7,0xfc,0x11,0xfe,0x36,0xfe, +0x86,0xfe,0x9,0xff,0x68,0xfe,0xed,0xfe,0x9e,0x0,0x7e,0x0, +0x65,0xff,0x89,0xff,0xa6,0xff,0xa1,0xfe,0xf5,0xfd,0x38,0xfd, +0x4a,0xfb,0x12,0xfb,0x6d,0xfd,0xb9,0xfe,0x19,0xff,0x79,0x0, +0xd9,0x1,0x31,0x3,0x4,0x4,0x7d,0x2,0x38,0x0,0x83,0xff, +0x53,0xff,0xb3,0xfe,0x11,0xff,0xdf,0x0,0xe4,0x1,0xae,0x1, +0x12,0x2,0x25,0x2,0x91,0x0,0x2b,0xff,0xc5,0xff,0xbf,0x1, +0xf6,0x2,0xf6,0x2,0xf9,0x2,0x6c,0x2,0xc5,0x1,0xac,0x2, +0xa5,0x3,0x22,0x4,0xe1,0x4,0x82,0x4,0x9b,0x3,0xda,0x2, +0x95,0x1,0x43,0x2,0x20,0x4,0x6b,0x3,0xa9,0x2,0xe9,0x3, +0x1d,0x5,0xbf,0x6,0x63,0x8,0xa1,0x8,0x4f,0x9,0x34,0xa, +0x91,0x8,0x9,0x5,0xd6,0x2,0x40,0x2,0x48,0x0,0x39,0xfe, +0xda,0xff,0x21,0x3,0xaf,0x6,0x69,0xa,0xd8,0x9,0x92,0x8, +0x8e,0xc,0xc3,0xc,0xb1,0x6,0xfc,0x5,0xda,0x7,0x66,0x4, +0x4e,0x2,0x31,0x2,0x8e,0xfd,0xae,0xfb,0xf0,0x1,0x37,0x6, +0x7e,0x6,0xec,0xa,0x36,0xf,0xa6,0xc,0xae,0x9,0x68,0x9, +0x2c,0x7,0x56,0x4,0x83,0x2,0x29,0xfe,0x2c,0xf8,0xd3,0xf4, +0x81,0xf5,0x72,0xfa,0xf0,0x1,0xe2,0x7,0xdd,0xb,0x65,0xf, +0xe6,0xe,0xa0,0x8,0xdc,0x1,0x91,0xfc,0xb7,0xf7,0x59,0xf6, +0x6e,0xf8,0xc7,0xfa,0x28,0xfe,0xd5,0x1,0xae,0x3,0x6,0x7, +0x7d,0xd,0x6e,0x10,0x72,0xb,0x27,0x4,0xe5,0xfd,0x4a,0xf5, +0x5d,0xef,0xe8,0xf1,0x34,0xf5,0xcd,0xf7,0x22,0x0,0x94,0x7, +0x9a,0x9,0xdf,0xb,0x55,0xb,0xfb,0x5,0x31,0x2,0x90,0xfe, +0x20,0xf9,0x5f,0xf5,0x5c,0xf1,0x88,0xee,0x7c,0xf3,0xac,0xfc, +0x58,0x3,0xe8,0x6,0x6,0x7,0xbb,0x4,0x33,0x2,0x86,0xfe, +0x12,0xfa,0xb6,0xf7,0x30,0xf8,0x34,0xf9,0xd5,0xf8,0x7c,0xf8, +0x48,0xf9,0x18,0xfb,0x44,0xff,0x55,0x3,0xf4,0x3,0xe9,0x3, +0x6d,0x2,0xf4,0xfb,0x79,0xf5,0xb9,0xf3,0xd1,0xf4,0xd3,0xf6, +0x8a,0xf8,0x64,0xfa,0x6f,0xfd,0x1a,0xff,0x7a,0xfe,0xe5,0xfe, +0x6a,0x0,0x62,0xff,0xdb,0xfc,0xfa,0xfc,0xc2,0xfc,0xf,0xf8, +0x50,0xf3,0xb4,0xf1,0x53,0xf2,0xec,0xf6,0x80,0xfc,0x61,0xfd, +0xc3,0xfc,0xe4,0xfd,0xd2,0xfd,0x6d,0xfd,0xd1,0xfe,0xb7,0xfd, +0x36,0xf9,0x2b,0xf7,0x69,0xf7,0xca,0xf6,0xef,0xf6,0xd8,0xf5, +0x7,0xf4,0xca,0xf8,0xf1,0xfe,0x5b,0xfe,0xb3,0xfd,0xe9,0xfd, +0x27,0xfa,0x2b,0xf9,0xe3,0xfb,0x49,0xfa,0x16,0xf7,0xb,0xf7, +0x86,0xf7,0x41,0xf8,0xd3,0xf9,0x63,0xfa,0x30,0xfb,0x9e,0xfd, +0xed,0xfe,0x5f,0xfd,0xb3,0xfa,0x27,0xf9,0x5f,0xf9,0xe8,0xf9, +0x8d,0xf9,0x71,0xf9,0xe4,0xfa,0x99,0xfc,0xf7,0xfb,0x38,0xfb, +0xba,0xfe,0x21,0x2,0xd3,0x0,0x4f,0x0,0xb8,0x1,0x6d,0xff, +0xe8,0xfa,0x94,0xf8,0x90,0xf9,0xd7,0xfc,0x37,0xff,0x59,0x1, +0x59,0x4,0x1,0x3,0x4a,0xfe,0x6d,0xfd,0xac,0xfe,0x5e,0xfe, +0xff,0xfd,0x2d,0xfc,0xe,0xfa,0x8f,0xfc,0x1b,0xff,0xfc,0xfc, +0x52,0xfd,0xde,0x1,0x5b,0x4,0x6f,0x5,0xaa,0x5,0xc4,0x2, +0x80,0x0,0x5b,0x0,0xe3,0xfe,0xe0,0xfc,0xc,0xfc,0x32,0xfb, +0x1e,0xfa,0xe1,0xfa,0xc3,0xfd,0x48,0x0,0xdf,0x3,0xbc,0x8, +0x6f,0x8,0xb,0x5,0xf9,0x4,0x73,0x4,0x8a,0x2,0x48,0x1, +0x62,0xfd,0xd6,0xf9,0x8e,0xf9,0x39,0xf9,0xdc,0xfb,0x6e,0x1, +0x9a,0x3,0xb4,0x4,0xbe,0x6,0x4c,0x6,0xd2,0x4,0x52,0x3, +0xbf,0x0,0x65,0xff,0x1,0x0,0xa9,0x1,0x8c,0x3,0x51,0x2, +0xf0,0xfd,0x24,0xfb,0x4a,0xfb,0x9d,0xfc,0x6e,0xfe,0x47,0x0, +0x27,0x1,0x83,0x0,0xa2,0x0,0x63,0x3,0xc5,0x4,0x42,0x3, +0x3a,0x3,0x17,0x4,0xd6,0x3,0x3e,0x3,0xa3,0xff,0xc8,0xfb, +0xf2,0xfd,0x6,0x1,0x7f,0x1,0x20,0x2,0x5d,0xff,0xa9,0xfb, +0x0,0xfe,0xe0,0xff,0x44,0xfe,0x4f,0x1,0x68,0x6,0x37,0x6, +0xa,0x4,0x9f,0x2,0x2b,0x0,0x39,0xfe,0xd3,0xfd,0x7f,0xfe, +0x22,0x1,0x7c,0x2,0x99,0x0,0xdd,0x0,0xfa,0x2,0xad,0x2, +0x94,0x2,0x9f,0x2,0xf0,0x0,0xaf,0x0,0x69,0x0,0xd2,0xfe, +0x92,0x0,0x8d,0x3,0x23,0x3,0x64,0x2,0x9d,0x3,0x1d,0x5, +0xb2,0x6,0xac,0x8,0xc6,0x8,0xfe,0x5,0xd2,0x3,0xd6,0x2, +0xe4,0xff,0xf3,0xfc,0xbf,0xfc,0x2,0xfd,0xbf,0xfc,0xb5,0xfe, +0xee,0x3,0x42,0x7,0x46,0x4,0x70,0x0,0x2e,0x1,0x4,0x3, +0xef,0x1,0x6d,0xfe,0xf0,0xfb,0x84,0xfc,0x7d,0xfd,0x28,0xfd, +0xb9,0xfc,0x1e,0xfd,0x1c,0xff,0x4a,0x1,0xb9,0x2,0x84,0x4, +0xef,0x3,0xaa,0x0,0xb9,0xff,0x19,0x0,0x95,0xff,0xa0,0x0, +0x3b,0x1,0x5,0xff,0xeb,0xfc,0xbf,0xfa,0xf5,0xf7,0x4c,0xfa, +0xed,0x2,0x62,0x8,0x17,0x6,0xef,0x3,0x36,0x5,0x93,0x3, +0x5,0x0,0xa7,0xff,0x23,0xfe,0x4e,0xf9,0x6a,0xf7,0xbb,0xf9, +0x4b,0xfc,0x0,0xfd,0xbd,0xfc,0x73,0xff,0x9,0x5,0x2a,0x8, +0x39,0x6,0xc6,0xff,0x97,0xfb,0xe,0x0,0x37,0x3,0x1b,0xfe, +0x43,0xfb,0x2f,0xfd,0xf5,0xfe,0x3,0x2,0x57,0x2,0x51,0xfe, +0xa5,0xfd,0x75,0xff,0xf8,0xff,0x19,0x1,0x44,0x0,0xf0,0xfc, +0x9e,0xfc,0x2e,0xff,0x57,0x1,0x5c,0x2,0x72,0x1,0xf4,0xff, +0xdc,0x0,0x7d,0x2,0x85,0x1,0xd,0xff,0x3a,0xfc,0xf4,0xf8, +0x23,0xf8,0xdc,0xf9,0x36,0xfa,0xe8,0xf9,0x3,0xfc,0x2a,0x1, +0x16,0x7,0x97,0x8,0xc8,0x5,0x3c,0x3,0x35,0x0,0x58,0xfd, +0xc6,0xfd,0x43,0xfd,0x54,0xf9,0x4e,0xf8,0x56,0xfc,0x81,0xff, +0x32,0x0,0xe2,0x3,0xdf,0x8,0xa8,0x6,0x6e,0x0,0x17,0xff, +0x21,0x0,0x95,0xfe,0x72,0xfb,0xc7,0xf8,0xae,0xf9,0x11,0xff, +0xf3,0x3,0xda,0x4,0xa2,0x4,0x75,0x6,0x63,0x7,0x8b,0x3, +0xa7,0xfe,0x20,0xfd,0x51,0xfc,0xff,0xfa,0x45,0xfc,0x4e,0xff, +0xa4,0x0,0x38,0x0,0x3d,0xff,0x29,0xfe,0x38,0xff,0xb7,0x3, +0x43,0x7,0x4,0x6,0x55,0x3,0xf5,0x2,0x15,0x4,0xdd,0x4, +0x61,0x3,0xdb,0xff,0x8f,0xfd,0xd1,0xfc,0x25,0xfc,0x98,0xfc, +0x97,0xfd,0x87,0xfd,0xfa,0xfd,0xaa,0xff,0x78,0x0,0xba,0xff, +0x3f,0xff,0x36,0x0,0x48,0x2,0xd9,0x4,0xe2,0x5,0x13,0x4, +0x4b,0x2,0xf4,0x1,0xf1,0x1,0x42,0x2,0x20,0x0,0x27,0xfc, +0xa3,0xfc,0x91,0xfe,0xc8,0xfd,0x46,0xff,0xb2,0x0,0x86,0xfe, +0x6c,0xff,0xbb,0x2,0x58,0x3,0xf3,0x3,0xa6,0x4,0x4c,0x4, +0x7,0x5,0xee,0x4,0x21,0x2,0xae,0xfe,0x44,0xfd,0xb0,0xff, +0x9e,0x2,0xe4,0x2,0xd,0x3,0x7,0x2,0x32,0xfe,0x3,0xfd, +0x38,0xff,0xe0,0xfe,0x66,0xfc,0x4,0xfd,0x89,0x0,0x69,0x2, +0x5d,0x2,0x5,0x4,0xbb,0x6,0xbb,0x7,0xc6,0x7,0x8c,0x6, +0x25,0x2,0x4c,0xfd,0x96,0xfb,0x33,0xfb,0xaf,0xfa,0x98,0xfc, +0x2d,0x0,0xec,0x1,0xae,0x2,0xaa,0x3,0xa4,0x3,0xa2,0x3, +0x7b,0x4,0xff,0x4,0xd4,0x5,0xe1,0x6,0x21,0x5,0x0,0x1, +0x69,0x0,0xc1,0x3,0xe6,0x1,0xc5,0xfa,0x8,0xfa,0x5d,0xfe, +0x32,0xfe,0xb6,0xfc,0x93,0xfd,0x70,0xfe,0x73,0x1,0x19,0x5, +0x51,0x4,0x74,0x2,0xe0,0x2,0x7,0x3,0x3f,0x1,0x31,0xfe, +0xc,0xfd,0x9d,0xfe,0x1a,0xfe,0x40,0xfc,0xaf,0xfd,0x25,0xfe, +0xc6,0xfa,0xbc,0xfa,0x18,0xfe,0x74,0xfc,0xf3,0xf8,0x51,0xfb, +0x34,0xff,0x81,0x1,0x26,0x5,0xaa,0x5,0xb1,0x1,0x68,0x0, +0xd9,0xff,0x3a,0xfb,0x2a,0xf7,0xd9,0xf5,0xf3,0xf5,0x56,0xf9, +0x9c,0xfd,0xe2,0xfd,0x28,0xfd,0x55,0x0,0x3a,0x4,0x43,0x4, +0x21,0x2,0xaf,0xff,0x10,0xfd,0x37,0xfc,0x62,0xfc,0x9d,0xfb, +0xf8,0xfa,0x8d,0xfa,0x49,0xfc,0xbb,0x0,0x66,0x0,0x19,0xfc, +0x8a,0xfd,0xf0,0x1,0xd8,0x2,0x53,0x1,0xb7,0xfd,0xe5,0xfb, +0x63,0xff,0x87,0x1,0xbf,0xff,0x4d,0xff,0x7f,0x0,0x9d,0x0, +0x50,0xff,0x98,0xff,0x3c,0x3,0xbb,0x3,0xa1,0xfe,0xc,0xfd, +0xfe,0xff,0xa8,0xfe,0x58,0xfa,0x14,0xfa,0x67,0xfc,0x88,0xfe, +0xa0,0x1,0x4c,0x3,0x5c,0x1,0x30,0xff,0x17,0xfe,0xc0,0xfd, +0xf9,0xff,0xa7,0x2,0x36,0x2,0xc3,0xff,0x8a,0xfe,0x96,0x0, +0xe7,0x2,0xcb,0x0,0x57,0xfc,0x33,0xfa,0x4a,0xfb,0xf6,0xfc, +0x25,0xfd,0x5e,0xff,0x5e,0x3,0x10,0x3,0x38,0x2,0xb2,0x4, +0x10,0x3,0xfb,0xfd,0x7c,0xfd,0x7b,0xff,0x69,0xff,0xfe,0xfe, +0xb6,0xff,0x90,0xff,0xe6,0xfd,0x30,0xfd,0x91,0xfd,0xa6,0xfe, +0x16,0x1,0x85,0x0,0x45,0xfd,0x23,0xff,0x89,0x2,0x52,0x1, +0xa,0x2,0x6f,0x3,0x8,0xfd,0xf4,0xf7,0xdf,0xfc,0x36,0x0, +0xc3,0xfd,0xb0,0xfe,0xdf,0x0,0x32,0x1,0x6c,0x4,0xf0,0x4, +0xcd,0xfe,0x63,0xfc,0xcf,0xff,0xfc,0x1,0x2e,0x2,0xe6,0x0, +0x12,0xfe,0xfa,0xfc,0x25,0xff,0xd5,0x0,0x46,0xff,0x77,0xff, +0x78,0x4,0xcb,0x6,0xcb,0x2,0xb9,0xfe,0xd2,0xfd,0xf2,0xfc, +0x0,0xfa,0x2c,0xf8,0x62,0xfa,0x8a,0xfe,0x86,0x2,0x44,0x4, +0xb5,0x2,0x8d,0x2,0xc2,0x4,0x58,0x4,0x12,0x2,0xc8,0xff, +0x1,0xfc,0xde,0xf9,0xec,0xfb,0x50,0xfd,0x9f,0xfc,0x16,0xff, +0x7f,0x3,0xae,0x4,0x14,0x4,0xc,0x2,0xa6,0xfe,0xe6,0xff, +0x52,0x3,0x8a,0x2,0x6d,0x2,0x92,0x2,0x29,0xfd,0x90,0xf9, +0x8e,0xfc,0x85,0xfd,0x57,0xfb,0x3f,0xfd,0xb5,0xff,0x47,0xfd, +0x6e,0xfe,0xd4,0x4,0x94,0x4,0x2a,0x1,0xea,0x3,0x72,0x5, +0x3a,0x2,0x57,0xff,0x16,0xfc,0xe2,0xf8,0x1e,0xf7,0x55,0xf6, +0x5c,0xf9,0x76,0xfe,0xb5,0x0,0xa3,0x2,0x9d,0x6,0xbc,0x8, +0x5b,0x6,0xe5,0x1,0xe,0xff,0x67,0xfe,0xbd,0xfd,0xd,0xfb, +0xa7,0xf7,0x63,0xf8,0xfe,0xfd,0x9a,0x2,0xf1,0x2,0x46,0x2, +0x63,0x3,0x7e,0x4,0x25,0x4,0x2a,0x2,0x3f,0xfe,0x54,0xfd, +0x80,0x1,0x61,0x2,0x63,0xff,0x2b,0xff,0x51,0xfd,0x7c,0xf8, +0x4d,0xf9,0x3,0xfe,0x6d,0xff,0x73,0xff,0xb2,0x0,0x17,0x3, +0xf3,0x7,0x96,0xb,0xcf,0x7,0x7e,0x0,0x3e,0xfd,0xd2,0xfd, +0x82,0xff,0xe7,0xff,0x46,0xfd,0x42,0xfb,0x16,0xfc,0xf3,0xfd, +0x3e,0x1,0x6b,0x2,0xfc,0xfd,0x51,0xfc,0x47,0x1,0x40,0x3, +0x17,0x1,0xba,0x2,0xef,0x6,0xcd,0xa,0xe9,0xe,0xda,0xb, +0xb1,0xff,0xef,0xf7,0x9f,0xf8,0xef,0xf9,0x23,0xfa,0x6b,0xf9, +0x4f,0xfa,0xb6,0x0,0xc3,0x5,0xc4,0x5,0xfd,0x7,0x74,0xa, +0x6a,0x6,0x4f,0xff,0xd7,0xf8,0xbc,0xf2,0x7c,0xf1,0x31,0xf9, +0xd3,0x3,0xf8,0x9,0x2,0xc,0xbe,0xa,0xd3,0x5,0x12,0x0, +0x1e,0xfc,0x98,0xfb,0x85,0xfc,0x47,0xfa,0x4c,0xf8,0xf2,0xfa, +0x22,0xfe,0x19,0x1,0x30,0x6,0x3d,0x9,0x29,0x7,0xc0,0x3, +0xfb,0x1,0xae,0xff,0x9a,0xfc,0xa7,0xfc,0x62,0xfe,0x64,0xfd, +0x93,0xfb,0x89,0xfb,0x8c,0xfb,0x6b,0xfa,0xa4,0xfa,0x9e,0xfe, +0xb9,0x2,0x8c,0x2,0x10,0x0,0x78,0xff,0xcf,0x2,0x72,0x7, +0x8e,0x8,0x9,0x6,0xaa,0x0,0xe0,0xf9,0x5,0xf7,0x3f,0xf7, +0x3c,0xf6,0xd4,0xf6,0xba,0xfa,0xc8,0xff,0xc0,0x4,0xa4,0x6, +0x2c,0x5,0x3f,0x4,0x6d,0x4,0xce,0x4,0x7b,0x5,0x72,0x4, +0xff,0xff,0x97,0xf9,0x6d,0xf5,0x2d,0xf8,0x42,0xff,0xb3,0x1, +0x87,0xff,0xba,0xff,0x20,0x1,0xb2,0x1,0xee,0x3,0x67,0x4, +0x27,0x1,0xae,0xff,0x63,0x1,0xbb,0x3,0xfe,0x3,0x54,0x0, +0x6,0xfd,0x23,0xfe,0x77,0x1,0x1b,0x2,0x82,0xfc,0xab,0xf7, +0x4f,0xfc,0x82,0x2,0x5c,0x2,0x6f,0x1,0xb,0x2,0xa6,0x1, +0xb3,0x0,0xbb,0xfe,0x1b,0xfc,0x77,0xfc,0x4e,0x0,0xa2,0x2, +0x92,0x0,0xb4,0xfe,0xc5,0x0,0xf2,0x2,0xa,0x2,0xe9,0xff, +0xed,0xfd,0xe1,0xfc,0x55,0xfd,0x7b,0xfc,0xad,0xfa,0x64,0xfc, +0x41,0xfe,0xab,0xfd,0x82,0x1,0x3b,0x6,0x71,0x3,0x98,0x1, +0xc7,0x5,0x7d,0x6,0x5,0x2,0xa7,0xfd,0xb0,0xf9,0x8e,0xf6, +0x7f,0xf7,0xa0,0xfc,0x46,0xff,0x6a,0xfc,0x1f,0xfc,0x11,0x1, +0x52,0x3,0xa3,0x1,0x33,0x1,0x2a,0x2,0xce,0x2,0xe1,0x3, +0x63,0x4,0xc2,0x1,0xb9,0xfd,0x7a,0xfb,0x49,0xfb,0x3a,0xfe, +0xd3,0x1,0x6e,0xfe,0x4e,0xf8,0x19,0xfc,0x7e,0x4,0x10,0x4, +0x62,0x0,0x58,0x1,0xf,0x1,0x6a,0x1,0xfc,0x5,0xe2,0x2, +0x0,0xfa,0x58,0xfb,0xf4,0xff,0x20,0xfd,0xba,0xfc,0x86,0x1, +0x6,0x2,0x85,0xff,0xd9,0x0,0x2b,0x3,0x7a,0x1,0x26,0xff, +0x32,0xff,0xc7,0xff,0x53,0x1,0x85,0x1,0x36,0xfe,0x61,0xfe, +0x3e,0x2,0xf8,0x1,0xa5,0x0,0x5c,0x2,0xb4,0x2,0x3f,0x1, +0xd6,0xff,0x2,0xfd,0x29,0xfb,0xd3,0xfd,0xd5,0x0,0xc9,0x0, +0xe7,0x1,0xa7,0x2,0xa6,0xfe,0x5f,0xfd,0xd,0x1,0x4c,0x0, +0xe1,0xfd,0x22,0x0,0xd3,0x0,0x4c,0xfe,0x19,0xfd,0x3c,0xfc, +0xcb,0xfd,0xee,0x4,0x10,0x9,0x77,0x3,0x73,0xfc,0x60,0xf9, +0xfc,0xf6,0xeb,0xf9,0xb7,0x2,0x29,0x4,0xec,0xff,0xda,0x2, +0xa9,0x5,0x7c,0xff,0x94,0xfa,0x3,0xfb,0xa0,0xf9,0x67,0xfa, +0xe1,0x1,0x68,0x5,0x50,0x2,0xd3,0x2,0x6f,0x3,0xd4,0x0, +0xaa,0x4,0x87,0x5,0x42,0xf9,0x63,0xf5,0x9d,0xfe,0xdd,0xfe, +0x8b,0xfa,0xa,0xfd,0xd6,0xfc,0x44,0xfc,0xcf,0x2,0x31,0x6, +0xa9,0x3,0xc4,0x2,0x9b,0x0,0xbd,0xfc,0xc3,0xfe,0x78,0x3, +0x65,0x2,0x37,0xfe,0xd7,0xfc,0x93,0xfe,0x73,0x1,0x4a,0x1, +0x83,0xfc,0xd4,0xf9,0x3c,0xfd,0x81,0x1,0x2b,0x3,0x39,0x4, +0x55,0x4,0xc7,0x0,0x7e,0xfc,0x6b,0xfc,0x96,0xfd,0xe6,0xfc, +0x32,0xfd,0xf6,0xfd,0x75,0xfe,0x24,0x1,0xda,0x2,0x13,0x1, +0xb7,0xff,0xdc,0xff,0xd4,0x0,0x8,0x2,0x2b,0xff,0x85,0xf8, +0x66,0xf5,0xad,0xf7,0xc3,0xfa,0x9c,0xfd,0x36,0x1,0xbb,0x3, +0x83,0x5,0x71,0x7,0xc7,0x6,0x39,0x5,0x42,0x4,0x23,0xfe, +0xa3,0xf6,0x3d,0xf7,0x25,0xfa,0xc1,0xf8,0xa5,0xf8,0x52,0xfc, +0xaa,0x0,0xe6,0x3,0xe6,0x4,0xf9,0x4,0xd1,0x5,0x5e,0x5, +0xb1,0x2,0xf9,0xfe,0x4c,0xfa,0x7d,0xf8,0xc1,0xfc,0x52,0xff, +0xcf,0xfb,0x7e,0xfa,0xf3,0xfc,0xeb,0xfd,0xa5,0xfe,0xc1,0xff, +0x53,0x1,0x3e,0x5,0x9b,0x7,0xcf,0x7,0xa4,0x9,0xb8,0x7, +0xc1,0xff,0x23,0xfa,0x66,0xf8,0x18,0xf7,0x55,0xf8,0xfa,0xfa, +0x3a,0xfb,0x8e,0xfd,0x5d,0x4,0x77,0x7,0x4c,0x5,0xf,0x5, +0xf4,0x6,0x3,0x8,0x51,0x6,0x2c,0xff,0xdc,0xf8,0xfd,0xfa, +0x97,0xff,0xe2,0xff,0xe0,0xfd,0x7,0xfd,0x8,0xff,0xf,0x2, +0x42,0x2,0x50,0xff,0x1b,0xfd,0x59,0xff,0x70,0x3,0xc5,0x3, +0xd6,0x0,0xf7,0xfe,0xf7,0x0,0x8a,0x5,0x3d,0x7,0x4,0x4, +0xc1,0xfd,0xd3,0xf6,0xd8,0xf5,0x8a,0xfc,0x9f,0x1,0x3c,0x2, +0x4e,0x3,0x4a,0x3,0xea,0x1,0xde,0x3,0x18,0x5,0x77,0x0, +0xb7,0xfc,0x0,0xfd,0x2b,0xfc,0xa9,0xfc,0xec,0x0,0x4f,0x3, +0x4,0x5,0x3b,0x9,0x65,0xa,0x28,0x7,0xc3,0x1,0x55,0xf9, +0x28,0xf4,0x76,0xf7,0xdf,0xfb,0xef,0xfd,0x83,0x1,0x91,0x5, +0x58,0x9,0xc5,0xc,0xf7,0x9,0x97,0x0,0x6e,0xfa,0xc9,0xfb, +0xe0,0xfe,0x7d,0xff,0x72,0xff,0x9f,0x0,0x33,0x2,0xa8,0x2, +0xd3,0x0,0x94,0xfe,0xb1,0xff,0xc,0x2,0xe1,0x0,0x1d,0xff, +0x60,0x1,0x70,0x3,0x6b,0x0,0x42,0xfe,0xc6,0x2,0x4f,0x6, +0xd8,0x1,0xfb,0xfb,0x2d,0xfb,0x79,0xfd,0x5f,0xff,0xb6,0xfe, +0xdf,0xfc,0xdf,0xfd,0x41,0x1,0x7f,0x2,0xb9,0x0,0x23,0x0, +0x94,0x1,0x6,0x1,0xae,0xff,0x5e,0x0,0x74,0x0,0x8f,0x1, +0x74,0x6,0x46,0x8,0x28,0x2,0x18,0xf9,0xf6,0xf4,0x45,0xfa, +0xba,0x1,0x15,0x0,0xac,0xfa,0xa,0xfd,0x89,0x3,0x9c,0x5, +0x90,0x3,0xbc,0xff,0x41,0xfc,0x4e,0xfd,0x95,0x0,0xb9,0xff, +0x58,0xfd,0x39,0xfd,0xee,0xfc,0x34,0xff,0xeb,0x4,0x19,0x3, +0xa4,0xf9,0xd8,0xf7,0x85,0xfe,0x7b,0x2,0x4f,0x3,0x9e,0x2, +0x2a,0xff,0xae,0xfe,0x88,0x0,0x1a,0xfd,0xc7,0xfa,0x40,0xfe, +0xf7,0xfd,0xa2,0xfc,0x35,0x1,0xfb,0x1,0x64,0xff,0xb5,0x3, +0x5e,0x5,0xbd,0xfe,0x1a,0xfd,0x3e,0x0,0x48,0x0,0x79,0x1, +0x66,0x2,0xd2,0xfe,0x7,0xfd,0x4b,0xfd,0xb3,0xfb,0x37,0xfc, +0x0,0xfd,0xc5,0xfa,0xc8,0xfc,0x5a,0x1,0xc5,0xff,0x34,0x0, +0x83,0x7,0x73,0x8,0xe7,0x4,0x22,0x8,0x7d,0x6,0x7d,0xfa, +0x95,0xf4,0x18,0xf6,0xcc,0xf7,0xb5,0xfb,0xac,0xfb,0x76,0xf8, +0xd4,0xfe,0xae,0x5,0x84,0x2,0x55,0x2,0xc6,0x5,0xd3,0x1, +0xe9,0xfd,0x79,0x0,0x9d,0x2,0xbd,0x2,0x62,0x2,0x3b,0x1, +0x93,0x1,0x11,0x0,0x19,0xf8,0x55,0xf1,0x47,0xf2,0xea,0xf6, +0xdd,0xfb,0x24,0xff,0x13,0x1,0x6c,0x5,0x8b,0x8,0xbb,0x6, +0x35,0x5,0x65,0x4,0xfa,0x1,0x60,0x0,0x68,0xfd,0x63,0xf8, +0xc4,0xf6,0x94,0xf7,0x26,0xf9,0xfb,0xfe,0x6d,0x5,0x1c,0x6, +0xef,0x2,0x3f,0xff,0xd,0xfd,0x79,0xfe,0x1e,0x0,0xea,0xff, +0x38,0x2,0xfc,0x2,0x81,0xfc,0x26,0xf9,0x15,0xfe,0xf2,0x0, +0xdf,0x0,0x48,0x2,0x1c,0x1,0x29,0xfe,0xf9,0xfc,0x65,0xfc, +0xb6,0xff,0x5d,0x5,0x98,0x4,0x10,0x3,0x14,0x7,0xf7,0x4, +0x95,0xfc,0x80,0xfc,0xcb,0x1,0xd,0x4,0x1e,0x5,0xf,0x1, +0xf0,0xf7,0x76,0xf6,0xf,0xfd,0xc6,0x0,0x6a,0x0,0x89,0x0, +0x5f,0x2,0xbe,0x4,0xbd,0x5,0x32,0x4,0xc5,0x0,0x8e,0xfe, +0xe3,0xff,0xb9,0x2,0xc9,0x2,0xe5,0xfd,0xa6,0xf9,0x65,0xfd, +0x3b,0x3,0x93,0x2,0x7,0x0,0x93,0xff,0x2,0xfe,0x1c,0xfd, +0x14,0x0,0x8,0x3,0xa5,0x1,0xfb,0xfe,0x46,0x1,0x72,0x6, +0xb3,0x5,0xff,0xff,0xa3,0xfe,0x60,0x1,0xd,0x2,0x18,0x1, +0xe0,0xfe,0x38,0xfa,0x3b,0xf8,0xf1,0xfb,0xc2,0x0,0x23,0x4, +0x4,0x6,0x79,0x4,0x68,0x1,0x47,0x2,0x65,0x4,0xde,0xff, +0xa2,0xf8,0x55,0xf7,0x27,0xf9,0xab,0xfc,0x8e,0x5,0xe3,0xb, +0x9f,0x8,0xbb,0x3,0xf5,0x1,0xac,0xff,0xfe,0xfb,0xf1,0xf6, +0xcd,0xf3,0xd7,0xf8,0xac,0x0,0x3f,0x2,0x9a,0x1,0xf3,0x2, +0x4c,0x5,0x65,0x9,0x20,0x9,0x69,0x2,0x46,0x0,0x57,0x0, +0x8c,0xfa,0x80,0xf8,0x8f,0xfb,0xf5,0xf8,0xf5,0xf5,0x3f,0xfb, +0x63,0x2,0x34,0x4,0xda,0x4,0x62,0x9,0xc9,0xb,0xa5,0x6, +0xf,0x0,0x3d,0xfd,0xa6,0xfc,0xe8,0xfb,0x7d,0xfa,0xa1,0xf9, +0x14,0xf9,0x42,0xf9,0x2f,0xfb,0x1b,0xfd,0x5b,0x1,0xf,0x8, +0x31,0xa,0x76,0xa,0x19,0xc,0xc6,0x7,0x7f,0x1,0x89,0x0, +0x85,0xfc,0x64,0xf4,0x43,0xf4,0x79,0xfa,0x5d,0xfb,0xe,0xf9, +0xb1,0xf9,0xc1,0xf9,0xc3,0xfa,0x5c,0xff,0x45,0x2,0x15,0x8, +0x85,0x12,0xf0,0x12,0x80,0xa,0xa5,0x5,0x9c,0x0,0xc2,0xf7, +0x7e,0xf0,0x46,0xee,0x10,0xf1,0xe7,0xf4,0xae,0xf7,0xc6,0xfb, +0xf5,0x1,0x2d,0x8,0x6c,0xb,0x25,0xe,0x5c,0x11,0xb6,0xb, +0x3f,0x0,0x5d,0xfc,0xbb,0xfb,0xd5,0xf8,0x6b,0xf7,0x94,0xf4, +0x6e,0xf3,0xc8,0xfa,0x6c,0x0,0x9,0xfe,0xc2,0xfe,0x28,0x5, +0x25,0x9,0x94,0xb,0x58,0xd,0x2a,0x8,0xf0,0xff,0x13,0xfc, +0x41,0xf9,0x17,0xf8,0xda,0xf9,0xbe,0xf6,0xd5,0xf2,0xdd,0xf8, +0x20,0x2,0x19,0x5,0x87,0x4,0x9a,0x5,0x75,0x9,0x10,0xb, +0x41,0x5,0x32,0xfe,0x9f,0xfc,0xf0,0xfa,0x20,0xf7,0xe,0xf8, +0x32,0xfb,0x36,0xfb,0x66,0xfb,0x82,0xfb,0x2b,0xfc,0x4a,0x1, +0x82,0x3,0x5b,0x1,0x3d,0x5,0xc5,0x9,0x27,0x7,0x99,0x4, +0x3b,0x1,0xb3,0xf8,0x4c,0xf3,0x96,0xf3,0xd9,0xf3,0x77,0xf5, +0x10,0xfb,0x10,0x3,0xcf,0xa,0x6e,0xc,0xac,0x6,0xff,0x2, +0x3b,0x5,0xc0,0x5,0x96,0x0,0x85,0xf9,0x22,0xf6,0xfe,0xf7, +0x9,0xfb,0x7a,0xfd,0xed,0xfe,0xdf,0xfd,0x63,0x0,0x58,0x8, +0x63,0xa,0x8d,0x5,0x20,0x3,0xbe,0x2,0x31,0x2,0x2e,0x1, +0x60,0xfc,0x18,0xf7,0x3d,0xf7,0x64,0xfa,0x46,0xfd,0xb7,0xfe, +0xc5,0xfd,0x50,0xfe,0x15,0x3,0x13,0x7,0x90,0x6,0x66,0x3, +0x6e,0x0,0x63,0x0,0x8b,0x1,0xe8,0xfe,0x5c,0xfc,0x49,0xff, +0x47,0x0,0x6f,0xfb,0x27,0xfa,0x8b,0xfe,0x1c,0x1,0xa2,0x0, +0xe,0x0,0x35,0x1,0x9a,0x4,0xb1,0x5,0x59,0x2,0x22,0x0, +0x66,0x0,0xec,0x0,0xc4,0x2,0x66,0x2,0x56,0xfd,0xf1,0xfa, +0x12,0xfc,0x0,0xfa,0xed,0xf7,0xfd,0xfa,0x1,0x0,0x6b,0x4, +0xad,0x7,0x6a,0x9,0x28,0xa,0x5c,0x7,0xb2,0x1,0x4a,0xfe, +0xd0,0xf9,0x10,0xf4,0xe9,0xf7,0xf9,0xff,0xb8,0xfd,0x62,0xf8, +0x23,0xf9,0x7e,0xfc,0x6e,0x4,0x1b,0xd,0x38,0xa,0x8,0x2, +0xac,0x1,0x97,0x5,0x3a,0x5,0x6d,0xfe,0xad,0xf6,0x30,0xf6, +0x52,0xfb,0x36,0xff,0x24,0xff,0xba,0xf9,0x60,0xf5,0x6d,0xfc, +0x99,0x7,0x78,0x9,0x80,0x6,0x7c,0x5,0xd1,0x3,0x17,0x4, +0x1f,0x6,0x6d,0x0,0x5b,0xf8,0x4c,0xfa,0xc5,0xfe,0xcb,0xfe, +0x54,0x0,0x5f,0x0,0x18,0xfc,0x68,0xfc,0xef,0x0,0xf2,0x1, +0x81,0x1,0x22,0x4,0xe9,0x8,0x9c,0xb,0x61,0x9,0x58,0x5, +0xee,0x1,0xb4,0xfd,0xc2,0xf9,0xd3,0xf6,0x38,0xf5,0x97,0xf7, +0xae,0xfb,0x5c,0xff,0x7f,0x6,0x47,0xd,0xe8,0xb,0x5f,0x7, +0x67,0x5,0x2a,0x1,0xbf,0xfa,0x68,0xf9,0x2d,0xfc,0x1e,0xfd, +0x2f,0xfc,0xb8,0xfb,0x2b,0xfd,0x73,0x0,0x18,0x2,0xc5,0x1, +0x81,0x3,0x19,0x6,0xbc,0x4,0xc2,0x0,0xee,0xff,0xc4,0x0, +0xca,0xfc,0xd8,0xf8,0x36,0xfb,0xd0,0xfb,0x9,0xf9,0x7c,0xfb, +0x75,0xff,0xf8,0xff,0x1d,0x1,0xc3,0x2,0xbf,0x3,0x67,0x4, +0x3e,0x3,0x26,0x3,0xb6,0x3,0x83,0xff,0xfe,0xfa,0x52,0xfa, +0xa7,0xf7,0xec,0xf3,0xa7,0xf4,0x6a,0xf7,0xa9,0xfc,0xbe,0x5, +0x15,0x9,0x59,0x6,0xa9,0x9,0xcc,0xc,0x98,0x5,0x10,0xff, +0xf2,0xfc,0x7f,0xf8,0x28,0xf8,0x30,0xfb,0x48,0xf8,0x74,0xf7, +0xac,0xfc,0x84,0xfe,0x91,0x0,0xba,0x5,0x6c,0x5,0x20,0x4, +0xd1,0x7,0x67,0x7,0xf2,0x1,0x63,0xfe,0x0,0xfc,0x10,0xfc, +0xb4,0xfd,0x9,0xfa,0x24,0xf6,0xcb,0xf8,0xc1,0xfb,0x90,0xfc, +0xca,0xfd,0xff,0xfe,0xd6,0x3,0x92,0xb,0xc5,0xc,0x5f,0x8, +0xc,0x6,0x55,0x3,0x4f,0xfe,0x3f,0xfc,0x27,0xfb,0xaf,0xf6, +0x30,0xf5,0x18,0xfa,0xaa,0xfe,0xbc,0x0,0x35,0x3,0x7e,0x5, +0xa4,0x6,0x57,0x7,0x5b,0x6,0x77,0x2,0x37,0x0,0xec,0x2, +0xaf,0x3,0x32,0x0,0x7,0xff,0xd2,0xfc,0xb4,0xf6,0xda,0xf5, +0x30,0xf9,0xcb,0xf9,0xfe,0xfd,0x21,0x7,0xfd,0xb,0x3e,0xc, +0xcb,0x9,0x39,0x2,0xb2,0xfc,0xda,0xff,0xd4,0x2,0xa1,0xff, +0x95,0xfa,0x25,0xf6,0x97,0xf6,0xf3,0xfc,0x1a,0x0,0x21,0x0, +0x4f,0x4,0xa1,0x8,0x27,0x8,0xcc,0x2,0x95,0xfa,0xb0,0xf8, +0xc6,0xfe,0xb5,0x1,0xe9,0xff,0x4b,0xff,0xa8,0xfe,0x50,0xfd, +0x4f,0xfe,0xcd,0x0,0x94,0x1,0xc9,0x0,0xea,0x0,0xde,0x1, +0x39,0x1,0x3f,0xff,0xd1,0xfe,0x88,0xff,0x79,0xfe,0x36,0xfd, +0xd7,0xfd,0xe5,0xfd,0xcd,0xfe,0x83,0x3,0x57,0x6,0x4,0x3, +0x89,0xfe,0xc9,0xfd,0x3b,0x1,0xe2,0x4,0x7f,0x3,0x3e,0xff, +0x8b,0xfd,0xca,0xfd,0x21,0xfe,0xd4,0xff,0xad,0x2,0xd7,0x3, +0x55,0x2,0xa,0x1,0x21,0x2,0xfd,0x2,0x2d,0x1,0x92,0xff, +0x97,0x0,0x7d,0x0,0xc8,0xfc,0xd5,0xf9,0x34,0xf9,0x4b,0xf8, +0xf0,0xfa,0x76,0x2,0x1b,0x6,0xd7,0x5,0x69,0x8,0x55,0x9, +0x16,0x6,0xcc,0x2,0x24,0xfd,0x30,0xf8,0xa5,0xf9,0x6a,0xf8, +0xc0,0xf2,0xa0,0xf5,0xf3,0xfe,0xf2,0x3,0xa3,0x5,0x95,0x6, +0x29,0x7,0x29,0x9,0xec,0x8,0x34,0x3,0x67,0xfc,0x2a,0xf7, +0x6a,0xf5,0x69,0xfb,0xea,0x0,0x33,0xfc,0x2a,0xfa,0xd6,0x2, +0xf3,0x6,0x4,0x4,0xa,0x3,0x18,0xff,0x9,0xfa,0x68,0xfc, +0xb6,0xfe,0xcc,0xfd,0x86,0xff,0x72,0xff,0x33,0xfe,0x3d,0x1, +0x62,0x0,0xf3,0xfa,0x9a,0xfc,0x27,0x2,0xa4,0x2,0x57,0x0, +0xed,0xfd,0x6a,0xfc,0x57,0xfe,0x6a,0x1,0x6c,0x2,0x31,0x3, +0x49,0x4,0x61,0x2,0x22,0xfd,0xc2,0xf8,0x3b,0xf7,0xa3,0xf7, +0x7d,0xfb,0x6b,0x2,0x38,0x6,0x38,0x5,0x34,0x5,0x83,0x6, +0xf5,0x3,0xe,0xff,0xc9,0xfc,0x9f,0xfc,0x5d,0xfc,0x2b,0xfb, +0xe0,0xf8,0xff,0xf8,0x98,0xfd,0xae,0x1,0x3b,0x2,0xf3,0x1, +0xeb,0x1,0x46,0x2,0xe2,0x3,0x85,0x4,0x3c,0x2,0x7a,0xfe, +0xe0,0xfa,0x55,0xfa,0xaa,0xfd,0x3e,0xfe,0xf5,0xfa,0x3b,0xfc, +0xc7,0x0,0x97,0x1,0xfb,0x1,0x86,0x3,0x13,0x2,0x66,0x0, +0x98,0x0,0x63,0xff,0xea,0xfd,0xf4,0xfc,0x5c,0xfa,0x92,0xfa, +0xec,0x0,0xe5,0x4,0x83,0x0,0x9d,0xfb,0xea,0xfc,0x63,0x0, +0x5,0x2,0xbd,0x1,0x1c,0x0,0x59,0x0,0xe1,0x2,0x47,0x2, +0x60,0xff,0x11,0x0,0xef,0x1,0xe2,0xff,0xd5,0xfb,0x6a,0xf9, +0x53,0xfa,0xb3,0xfe,0x1f,0x3,0x2,0x4,0xa6,0x2,0x4c,0x2, +0xf6,0x2,0x61,0x2,0xec,0x0,0x79,0x0,0x98,0x0,0xc0,0x0, +0x61,0x0,0x4,0xfe,0x2f,0xfc,0x88,0xfd,0xd7,0xfe,0xea,0xfe, +0x2c,0x0,0x44,0x1,0x2c,0x1,0x12,0x2,0xc8,0x2,0xc6,0x0, +0xe4,0xfd,0x48,0xfb,0x5f,0xf9,0x5f,0xfd,0xdf,0x4,0x2f,0x4, +0xf,0xff,0x3,0x0,0xf2,0x0,0xc9,0xfe,0xbc,0xfe,0x17,0xfd, +0xc3,0xfc,0x5a,0x4,0x2,0x8,0xd9,0x2,0x6c,0x2,0xe9,0x5, +0xd4,0x2,0x96,0xfd,0x81,0xfb,0xb4,0xf8,0xe7,0xf6,0x6f,0xfa, +0xd3,0xff,0x35,0x5,0x1b,0xa,0xd9,0x8,0x18,0x4,0xc9,0x3, +0xab,0x3,0xed,0xff,0x27,0xfd,0x86,0xfb,0x6e,0xfa,0x45,0xfb, +0x36,0xfc,0x23,0xff,0xc8,0x5,0xed,0x8,0xf6,0x5,0xac,0x3, +0x97,0x2,0xcc,0xfe,0xa9,0xfb,0xb0,0xfb,0x7a,0xfb,0xde,0xfc, +0x68,0x2,0xf0,0x5,0x88,0x5,0xc6,0x6,0x49,0x8,0x47,0x5, +0x76,0xff,0xc5,0xfa,0x71,0xf9,0x1a,0xfb,0x88,0xfc,0x53,0xfc, +0xd5,0xfc,0x77,0xff,0xd,0x1,0x12,0xff,0x2d,0xff,0x8,0x5, +0xab,0x7,0x6e,0x3,0x7,0x2,0x5e,0x4,0x68,0x3,0x3a,0x1, +0x29,0xff,0xac,0xfa,0x35,0xf9,0x8d,0xfc,0xa7,0xfd,0x2e,0xfe, +0xb7,0x1,0x6,0x2,0xd1,0xff,0x39,0x2,0xe8,0x4,0xdf,0x3, +0x23,0x4,0x41,0x4,0x11,0x1,0x94,0xfe,0x77,0xfc,0x23,0xf9, +0x66,0xf8,0xb1,0xfa,0x20,0xff,0x4,0x4,0xb4,0x3,0xfc,0x1, +0x6d,0x5,0xdf,0x5,0x81,0x0,0x28,0xff,0x9f,0xff,0xbb,0xfb, +0xc4,0xf9,0x3a,0xfb,0xe2,0xfa,0xa3,0xfb,0xfc,0xfe,0x9e,0x0, +0x55,0x2,0x0,0x5,0x4d,0x3,0x12,0xff,0xa8,0xfe,0x3c,0x1, +0x44,0x3,0x6e,0x4,0x3,0x6,0xe6,0x6,0xd,0x4,0x14,0xff, +0x6f,0xfa,0x7a,0xf4,0xfb,0xf0,0xd8,0xf5,0xa8,0xfe,0xd8,0x4, +0x2,0x7,0xb4,0x5,0xa7,0x6,0xaf,0xc,0x12,0xd,0xff,0x2, +0xc4,0xfa,0xa,0xfa,0x8,0xfa,0x17,0xf9,0xdc,0xf8,0xca,0xf8, +0xab,0xfa,0xa5,0xfd,0xeb,0xfd,0x88,0xfe,0xe2,0x3,0x1c,0x9, +0x5f,0x7,0x64,0x1,0xda,0xfd,0x60,0xfc,0xa8,0xfa,0x87,0xfa, +0xfc,0xfb,0xdb,0xfd,0x21,0x1,0x52,0x3,0x60,0x1,0x86,0xff, +0x8,0x2,0xc4,0x4,0xf3,0x2,0x63,0xfe,0x28,0xfa,0x8a,0xf7, +0xdb,0xf7,0x29,0xfb,0xf,0x0,0x36,0x3,0x2a,0x2,0x58,0x1, +0x63,0x2,0x23,0x0,0xda,0xfd,0x11,0xff,0x9c,0xfc,0x8f,0xf8, +0x53,0xfb,0xc,0xff,0x9e,0xfe,0x15,0xff,0xac,0xff,0x88,0xfe, +0x65,0xff,0xed,0xfe,0xa0,0xfa,0xef,0xfc,0x74,0x6,0xe4,0x7, +0x78,0x0,0x24,0xfd,0x8f,0xfe,0x67,0xfd,0xf8,0xf9,0x55,0xf9, +0xb8,0xfb,0x7c,0xfc,0x69,0xfc,0x43,0x0,0x8d,0x5,0xf0,0x7, +0xca,0x8,0x48,0x9,0xc1,0x6,0xa2,0xff,0x68,0xf9,0xe0,0xf8, +0xb6,0xf8,0x2f,0xf7,0x5d,0xf9,0x93,0xfb,0xe0,0xfb,0x34,0x0, +0x7d,0x4,0x8,0x4,0x31,0x4,0xc5,0x3,0xd3,0x0,0xe,0x2, +0xec,0x4,0xb7,0x1,0x57,0xfd,0x5b,0xfd,0xe0,0xfd,0x1e,0xfc, +0x3f,0xfa,0x2d,0xfa,0x18,0xfb,0x41,0xfb,0xad,0xfb,0xbf,0xfe, +0x1a,0x3,0x86,0x6,0xff,0xa,0x2,0xf,0xc0,0xb,0x6b,0x3, +0x29,0xfc,0xd4,0xf3,0x22,0xee,0x79,0xf2,0xd3,0xf9,0xf,0xfe, +0x64,0x2,0x8e,0x5,0xfd,0x7,0xb5,0xa,0x9b,0x7,0x81,0x1, +0x3a,0x0,0xa9,0xff,0x26,0xfd,0x95,0xfc,0x2d,0xfd,0xf4,0xfd, +0xd,0x0,0xf3,0x2,0xdc,0x5,0x60,0x5,0x3d,0x0,0xe9,0xfd, +0xa3,0x0,0x89,0x0,0x7d,0xfd,0xe4,0xfd,0x13,0x0,0xcc,0x0, +0xf7,0x1,0x0,0x4,0x87,0x5,0x37,0x5,0x64,0x1,0xd7,0xfb, +0x58,0xf9,0xce,0xfb,0x4a,0xff,0x87,0xff,0xec,0xff,0xd3,0x3, +0xda,0x5,0x7f,0x3,0xab,0x0,0xfe,0xfd,0xba,0xfc,0x20,0x0, +0x42,0x4,0xcf,0x3,0x61,0x1,0xc8,0xff,0x1,0xfe,0x79,0xfd, +0xb6,0xfd,0xc2,0xfa,0x3d,0xf9,0x91,0xff,0x24,0x7,0x7,0x9, +0x76,0x7,0x16,0x4,0xdc,0xff,0xd6,0xfc,0x3c,0xfa,0xe,0xf8, +0x53,0xf8,0x9b,0xfb,0xbf,0x0,0xdd,0x3,0x1a,0x2,0xd5,0xff, +0x59,0x2,0x79,0x7,0x89,0x9,0x4,0x6,0xd6,0xff,0x73,0xfd, +0x22,0x0,0x79,0x1,0x40,0xfe,0xb9,0xf9,0x4,0xf7,0x92,0xf7, +0x5f,0xfa,0x34,0xfd,0x15,0x0,0x88,0x2,0x8d,0x5,0x16,0xb, +0x71,0xc,0x30,0x6,0x79,0x3,0x29,0x6,0xca,0x2,0x48,0xfb, +0x18,0xf8,0x0,0xf6,0xda,0xf3,0x66,0xf6,0xdb,0xfa,0x34,0xfe, +0xcd,0x2,0xc1,0x6,0x9a,0x8,0x89,0xa,0x61,0x9,0xd1,0x3, +0x55,0xff,0xe7,0xfb,0xf1,0xf6,0x61,0xf4,0xff,0xf6,0xe3,0xfb, +0x85,0xff,0x86,0x0,0x90,0x0,0x78,0x2,0xc8,0x5,0xb,0x7, +0x42,0x5,0x29,0x2,0x55,0xfe,0xac,0xfb,0x24,0xfc,0x9d,0xfc, +0x97,0xfc,0xb0,0xff,0x34,0x2,0x26,0x0,0xbe,0xfd,0x69,0xfc, +0x5f,0xfb,0x49,0xfd,0x63,0xff,0x11,0xfe,0x99,0xfe,0x97,0x3, +0xd7,0x7,0xff,0x7,0xa6,0x4,0x7e,0x0,0x4d,0xfd,0x20,0xfa, +0x6a,0xf8,0xc1,0xf9,0x54,0xfb,0xa3,0xfb,0xd8,0xfa,0x23,0xf9, +0x78,0xfa,0xf2,0x0,0xe8,0x7,0xa6,0xb,0x84,0xd,0x58,0xd, +0x11,0x7,0xd4,0xfc,0xc6,0xf6,0xde,0xf4,0x73,0xf3,0x1a,0xf4, +0x54,0xf6,0x98,0xf9,0x14,0xff,0x34,0x5,0xa1,0xd,0x6c,0x15, +0x8f,0x11,0x48,0x6,0xfc,0xff,0xdc,0xfc,0x47,0xfa,0xbc,0xf8, +0x8f,0xf4,0x18,0xf3,0xd8,0xf9,0xa3,0xfd,0xe9,0xf9,0x82,0xfa, +0x9,0x2,0x26,0x9,0x9d,0xc,0x43,0xa,0x82,0x5,0x3b,0x6, +0x2a,0x7,0x74,0x0,0x74,0xf8,0xff,0xf3,0x5b,0xf1,0x83,0xf2, +0x4f,0xf6,0xf1,0xf8,0xdb,0xfd,0xef,0x6,0x87,0xd,0xf5,0xd, +0xe2,0xb,0x6d,0x9,0x1c,0x6,0x19,0x2,0xf8,0xfb,0xf2,0xf4, +0x4e,0xf2,0xc8,0xf2,0x2a,0xf2,0xd2,0xf3,0xae,0xfa,0x0,0x3, +0x8d,0x9,0x80,0xe,0x1d,0x11,0x80,0xe,0x6b,0x7,0x43,0x0, +0xd3,0xf9,0x13,0xf4,0xb6,0xf0,0x4,0xef,0xa9,0xf0,0xfe,0xf7, +0x89,0xfe,0x98,0x0,0xb,0x5,0x86,0xb,0xbe,0xb,0x7e,0x6, +0x4d,0x1,0x0,0xfe,0xbe,0xfd,0x56,0xfe,0x5e,0xfd,0xff,0xfd, +0x6e,0xfe,0xb6,0xf9,0x60,0xf5,0x27,0xf7,0x6d,0xfc,0x10,0x3, +0xda,0x7,0x1,0x6,0x37,0x0,0xa,0xfd,0xea,0xfd,0xcb,0xff, +0x83,0x0,0x96,0x0,0xfe,0xff,0xd5,0xfe,0x9f,0xfe,0x86,0xfd, +0xd6,0xf9,0x88,0xf8,0x63,0xfc,0xe0,0x0,0x5f,0x3,0xea,0x3, +0xca,0x1,0x81,0x0,0x88,0x3,0xab,0x5,0x60,0x2,0x3b,0xfe, +0xd5,0xfd,0x41,0x0,0x6e,0x2,0x67,0x1,0x21,0xfe,0xb,0xfd, +0xd7,0xfd,0xa7,0xfd,0x67,0xff,0xe3,0x3,0xcb,0x4,0x80,0x2, +0xfc,0x2,0x7f,0x3,0xc8,0xff,0x20,0xfc,0x80,0xfd,0xe9,0x2, +0x88,0x6,0x21,0x4,0x3,0xff,0x41,0xfc,0xb6,0xfc,0x2,0xff, +0xbd,0x0,0xb9,0x1,0xb6,0x4,0xa8,0x8,0xb1,0xa,0x87,0xb, +0xfb,0x9,0x97,0x3,0x4c,0xfc,0xc0,0xf8,0x36,0xf8,0x98,0xf9, +0xf7,0xfb,0x8e,0xfe,0x25,0x3,0xa9,0x8,0xe4,0xb,0xa1,0xc, +0x53,0xa,0x5,0x7,0x99,0x6,0xfd,0x4,0x7f,0xff,0x4f,0xfc, +0xfe,0xfc,0x3e,0xfe,0x10,0x0,0xef,0x1,0xc1,0x2,0xd,0x4, +0xcd,0x6,0x84,0x9,0xb8,0xa,0xdf,0x9,0xbd,0x6,0xa6,0x3, +0x33,0x2,0x41,0xff,0x85,0xfc,0x27,0xff,0x11,0x3,0xfc,0x3, +0xc6,0x4,0x41,0x6,0xc1,0x7,0x91,0x8,0xc1,0x7,0x95,0x8, +0x2a,0xb,0xc9,0x9,0x13,0x5,0xae,0x2,0xfc,0x2,0x12,0x2, +0xd8,0xfe,0x9,0xfd,0x94,0xfe,0xe6,0x0,0x6f,0x2,0xa4,0x3, +0xe1,0x4,0x24,0x6,0x4c,0x6,0x67,0x4,0xd1,0x1,0x98,0x0, +0x3f,0x0,0x4,0xff,0x7f,0xfd,0xdb,0xfc,0x1f,0xfd,0x98,0xfe, +0xeb,0xff,0xb5,0xff,0x3e,0xff,0x7,0xfe,0xc,0xfc,0xab,0xfc, +0xbf,0xfd,0x10,0xfb,0x50,0xf9,0x64,0xfb,0x3,0xfc,0x91,0xfb, +0x7c,0xfd,0x8b,0xfd,0x35,0xfa,0x35,0xf8,0x6,0xf8,0x9d,0xf8, +0x59,0xfa,0x52,0xfa,0x20,0xf7,0x62,0xf4,0x90,0xf4,0xf,0xf6, +0xd8,0xf6,0xb5,0xf7,0xfd,0xf8,0xc9,0xf8,0x26,0xf8,0x95,0xf8, +0xd7,0xf7,0xd8,0xf5,0xb3,0xf4,0x7a,0xf4,0x58,0xf5,0x20,0xf6, +0x82,0xf4,0x6,0xf3,0x42,0xf5,0xe6,0xf8,0x38,0xfa,0x4d,0xf9, +0xb1,0xf7,0x88,0xf6,0xf1,0xf6,0x36,0xf8,0x1a,0xf8,0xcb,0xf6, +0xd2,0xf5,0xef,0xf4,0xa5,0xf4,0x1e,0xf6,0x8d,0xf7,0x20,0xf8, +0x78,0xfa,0x18,0xfe,0x74,0xff,0x2c,0xfe,0x70,0xfc,0xc0,0xfb, +0x57,0xfb,0x5f,0xf9,0xb9,0xf6,0x73,0xf5,0x6d,0xf6,0xe9,0xf9, +0x6c,0xfd,0xc3,0xfe,0xbb,0xff,0xb7,0x0,0xa9,0x0,0x4d,0x0, +0xa7,0xff,0x22,0xff,0x64,0xff,0x3a,0xff,0xec,0xfe,0x91,0xff, +0xa1,0x0,0xff,0x0,0x33,0xff,0x74,0xfc,0xee,0xfb,0x77,0xfd, +0x6,0x0,0xd8,0x2,0xf9,0x3,0x45,0x4,0xae,0x5,0xbf,0x6, +0xc,0x6,0x4f,0x4,0xba,0x2,0xdd,0x2,0xc0,0x4,0x17,0x5, +0x1,0x2,0xc8,0xfe,0x13,0xfe,0xae,0xfe,0xb0,0xff,0x97,0x0, +0x5a,0x1,0xa,0x4,0xbe,0x8,0xb2,0xc,0xdc,0xd,0x9a,0xb, +0x64,0x7,0xbc,0x3,0x4c,0x1,0x6b,0xff,0x1b,0xfe,0x4f,0xfe, +0xdb,0xff,0x18,0x2,0x85,0x5,0x6c,0x8,0xb5,0x8,0xd4,0x7, +0x36,0x6,0xc9,0x3,0xad,0x2,0xda,0x2,0x31,0x3,0xc3,0x3, +0x57,0x4,0x5,0x5,0xe5,0x4,0xdc,0x3,0xe9,0x3,0xb,0x4, +0xbd,0x3,0xe3,0x4,0xff,0x4,0xd2,0x2,0xc5,0x1,0xa9,0x1, +0x16,0x1,0x2b,0x1,0x9e,0x1,0xf5,0x1,0x23,0x3,0x84,0x5, +0x90,0x7,0xb3,0x6,0xee,0x3,0xfd,0x2,0xc5,0x3,0x1d,0x4, +0x61,0x3,0x23,0x1,0x75,0xff,0x55,0x1,0x6f,0x3,0x83,0x1, +0x71,0xff,0xe7,0x1,0x97,0x6,0xc6,0x9,0xf6,0x9,0xa5,0x6, +0xb0,0x2,0xee,0x1,0x28,0x2,0x81,0xff,0xc8,0xfc,0x9f,0xfd, +0x22,0x0,0x4a,0x2,0xbe,0x3,0xe6,0x3,0x6e,0x4,0x54,0x6, +0x87,0x6,0x20,0x4,0x76,0x1,0x16,0xfe,0x48,0xf9,0xcc,0xf6, +0x91,0xf9,0xc4,0xfe,0x8b,0x2,0x1d,0x4,0x34,0x4,0x37,0x4, +0x2a,0x5,0x99,0x5,0xee,0x3,0x9c,0x1,0x83,0x0,0x74,0xff, +0x12,0xfd,0x5f,0xfa,0xcb,0xf7,0x9b,0xf6,0x58,0xfa,0x59,0x1, +0x44,0x5,0x7,0x5,0x69,0x4,0x86,0x5,0xfd,0x6,0xda,0x5, +0xf3,0x1,0x45,0xfe,0x79,0xfc,0x76,0xfb,0x6d,0xfa,0x93,0xfa, +0xc9,0xfb,0xbf,0xfc,0x47,0xff,0x67,0x3,0x9c,0x4,0xfa,0x2, +0x60,0x2,0x73,0x2,0x81,0x1,0x62,0xff,0x7e,0xfc,0x24,0xfb, +0xfc,0xfb,0x82,0xfc,0x65,0xfd,0x4,0x0,0x42,0x1,0x43,0x1, +0xa5,0x2,0xb5,0x1,0x74,0xfd,0xc6,0xfb,0x5d,0xfc,0x6c,0xfb, +0xdf,0xfa,0xba,0xfb,0x78,0xfc,0x10,0xfe,0x6a,0x0,0x24,0x1, +0xd3,0x0,0x81,0x1,0xa9,0x1,0x4a,0x0,0xea,0xff,0xc2,0xff, +0x6,0xfd,0xc3,0xf9,0xa9,0xf8,0xa,0xfa,0x68,0xfd,0x68,0x0, +0xc5,0x1,0x3b,0x2,0x36,0x2,0xf6,0x2,0x5b,0x3,0xef,0x0, +0xb1,0xfe,0x59,0xfe,0xa8,0xfc,0xc5,0xfa,0x4b,0xfb,0xb8,0xfb, +0xe5,0xfa,0x29,0xfb,0x23,0xfd,0x92,0xff,0x4e,0x1,0x5a,0x2, +0x37,0x4,0xee,0x5,0x98,0x3,0xe7,0xfd,0xcc,0xf9,0x84,0xf8, +0x4d,0xf9,0x21,0xfc,0x4e,0xfe,0x4,0xfe,0x3a,0xfe,0xbc,0x0, +0x12,0x3,0xd7,0x2,0xa4,0x0,0x6b,0xfe,0x8e,0xfc,0xd7,0xfa, +0x5f,0xfa,0x5b,0xfb,0xd3,0xfc,0x6c,0xff,0xd,0x3,0x87,0x4, +0xe8,0x2,0xda,0x0,0x6f,0xff,0xe0,0xfe,0xb4,0xff,0x29,0xff, +0x66,0xfb,0x4d,0xf8,0x20,0xf9,0x81,0xfc,0xf0,0xff,0x4e,0x2, +0xcd,0x4,0xad,0x7,0xc0,0x7,0x80,0x4,0x23,0x1,0x82,0xfe, +0x2b,0xfc,0x42,0xfa,0x5c,0xf8,0xd2,0xf7,0xf0,0xf9,0x3e,0xfd, +0x23,0x1,0xff,0x4,0x9b,0x6,0x60,0x6,0x4b,0x6,0x90,0x6, +0xd6,0x5,0x6,0x2,0x45,0xfc,0x9b,0xf8,0xc2,0xf6,0xea,0xf4, +0xb9,0xf5,0x7a,0xfa,0x5,0x0,0xdc,0x4,0xc3,0x8,0x7a,0x9, +0xee,0x7,0x66,0x7,0xe4,0x5,0xab,0x1,0x1b,0xfe,0xa2,0xfb, +0x57,0xf9,0x45,0xf9,0x14,0xfa,0x3c,0xfa,0xdd,0xfc,0x16,0x1, +0xd6,0x2,0xe1,0x3,0xc8,0x6,0xd,0x9,0xd6,0x8,0x12,0x7, +0x5b,0x3,0xa0,0xfd,0x45,0xf9,0xc8,0xf8,0x4b,0xfa,0xa5,0xfb, +0x29,0xfd,0x1,0xff,0xc4,0x0,0x8c,0x3,0x3b,0x7,0xfd,0x8, +0x80,0x7,0x8e,0x3,0xcd,0xfe,0x4e,0xfc,0xcb,0xfc,0x4c,0xfd, +0xdb,0xfc,0x12,0xfe,0x3c,0x1,0x47,0x2,0x58,0x0,0x7,0x0, +0xe8,0x1,0x40,0x2,0xc1,0x0,0x71,0xff,0xeb,0xff,0xbd,0x1, +0xdb,0x1,0x95,0x0,0x2a,0x1,0xfe,0x1,0x5f,0xff,0x6e,0xfb, +0xc6,0xfa,0x7f,0xfc,0xed,0xfd,0xd7,0xff,0xb8,0x1,0x32,0x2, +0x69,0x1,0xe3,0xfe,0xdb,0xfd,0xa6,0x0,0x56,0x1,0x74,0xfe, +0x70,0xfd,0x9b,0xfe,0xae,0xff,0xcf,0xff,0xfb,0xfe,0x71,0xfe, +0xfb,0xfd,0xec,0xfd,0xf2,0xfe,0x9,0xff,0xab,0xfe,0xc4,0xff, +0xd7,0x1,0xb6,0x3,0x52,0x2,0x92,0xfd,0x64,0xfa,0xca,0xf9, +0x7b,0xfa,0x5d,0xfc,0x5d,0xfe,0x8e,0x0,0xcc,0x1,0xaf,0x0, +0x3d,0x0,0x6e,0x1,0x14,0x1,0x83,0xfd,0x53,0xf9,0xd3,0xf9, +0x75,0xfd,0x6e,0xfe,0xe3,0xfe,0x86,0x0,0x31,0x0,0xf8,0xfe, +0x3,0xfe,0x39,0xfd,0xe3,0xfe,0x54,0x1,0x7d,0x1,0xeb,0x0, +0xcf,0xff,0x95,0xfc,0xc8,0xf9,0x3d,0xfa,0x89,0xfb,0x96,0xfb, +0xa6,0xfc,0xd0,0xfe,0x89,0x0,0x42,0x3,0xf7,0x5,0xe7,0x5, +0x87,0x4,0x1f,0x3,0xdc,0x0,0x3a,0xfe,0xe7,0xfb,0x7d,0xfa, +0x5e,0xfa,0x6a,0xfa,0xd0,0xfa,0x52,0xfd,0x29,0x1,0x8a,0x3, +0x2f,0x4,0xf4,0x4,0xec,0x4,0xf9,0x1,0xa7,0xfe,0xfc,0xfd, +0xc,0xfe,0xd9,0xfd,0x50,0xff,0x7d,0x0,0x67,0xfe,0xad,0xfc, +0x51,0xff,0xa9,0x2,0x75,0x2,0x7e,0x0,0xe1,0xfe,0x48,0xfe, +0x42,0x0,0x28,0x2,0xd4,0xff,0x43,0xfd,0xb1,0xfe,0x17,0x0, +0x2c,0xff,0x69,0xfe,0xf0,0xfd,0x39,0xfe,0x61,0x1,0x21,0x5, +0x4a,0x5,0xd5,0x1,0x87,0xfd,0x82,0xfb,0xdb,0xfc,0xcf,0xfd, +0x9e,0xfb,0xbf,0xf9,0x18,0xfb,0xee,0xfe,0x4e,0x4,0x56,0x8, +0x3e,0x8,0xab,0x5,0xca,0x2,0xb5,0xff,0x55,0xfc,0x42,0xf9, +0xf4,0xf7,0x96,0xf8,0x1b,0xfa,0xaa,0xfc,0x25,0xff,0x24,0x0, +0x41,0x2,0x8d,0x7,0x7c,0xc,0xee,0xb,0xaa,0x5,0xbd,0xfe, +0xc8,0xfa,0xb7,0xf8,0xf0,0xf6,0x38,0xf6,0xcd,0xf7,0x75,0xfa, +0xdd,0xfc,0x0,0x1,0x68,0x6,0x49,0x8,0x85,0x6,0x87,0x5, +0x61,0x6,0x62,0x6,0x66,0x2,0xc4,0xfb,0x18,0xf8,0xc8,0xf7, +0xa2,0xf7,0xf2,0xf8,0xe2,0xfb,0x9a,0xfe,0x33,0x3,0xd0,0x8, +0x6b,0xa,0x5,0x8,0x43,0x4,0xbe,0xff,0xcf,0xfb,0xe,0xfb, +0x8d,0xfd,0x68,0xfe,0xb6,0xfb,0xaf,0xfb,0x50,0x0,0xbc,0x3, +0xda,0x2,0x69,0xff,0x86,0xfe,0x89,0x2,0xd8,0x4,0xb5,0x1, +0x85,0xfd,0x9,0xfb,0x19,0xfc,0xb1,0x1,0xe9,0x6,0x9c,0x6, +0x7a,0x1,0x2a,0xfd,0x38,0xfe,0xdb,0x1,0xae,0x2,0x1a,0xff, +0xad,0xf9,0x9a,0xf7,0x2b,0xfa,0x70,0xfd,0x9b,0xff,0x7,0x2, +0x3a,0x7,0x95,0xe,0xbb,0xf,0x49,0x7,0xd9,0xfe,0xe7,0xfb, +0xcd,0xfa,0xe4,0xfa,0xea,0xfb,0x0,0xfb,0x10,0xfa,0xe5,0xfb, +0xc9,0xfe,0xfa,0x1,0x67,0x5,0xdc,0x6,0x89,0x6,0x19,0x7, +0xa3,0x7,0xb9,0x4,0xd3,0xff,0x1e,0xfd,0xa1,0xfb,0x80,0xfa, +0xd4,0xfc,0xb7,0x0,0x4c,0x1,0x52,0x0,0xea,0x1,0xae,0x4, +0x52,0x4,0x12,0x2,0x44,0x2,0x15,0x3,0x83,0x2,0xb5,0x2, +0x34,0x2,0xdc,0xff,0xb6,0xfd,0x80,0xfb,0x4c,0xfb,0x36,0xff, +0x5e,0x2,0x24,0x3,0x7d,0x5,0x13,0x8,0xf9,0x7,0xac,0x6, +0x60,0x4,0xc9,0x0,0xa8,0xfe,0xf0,0xfc,0x67,0xf9,0xd9,0xf8, +0xdd,0xfb,0xeb,0xfc,0x17,0xff,0x7a,0x5,0xe1,0x9,0xf4,0x9, +0x83,0x8,0x3a,0x6,0xca,0x3,0xc7,0x1,0x46,0xff,0xb,0xfc, +0x30,0xf9,0x50,0xf7,0x8f,0xf6,0x96,0xf8,0xab,0xfc,0x6b,0x0, +0x18,0x6,0x93,0xc,0xe5,0xd,0xa7,0xa,0x60,0x5,0x34,0x0, +0x1d,0x0,0xff,0x1,0xbd,0xff,0x64,0xfd,0xbf,0xfc,0x23,0xf8, +0xf1,0xf1,0x5d,0xf3,0xd1,0xfb,0x1f,0x3,0x5e,0x7,0x2b,0x9, +0xfd,0x7,0x8c,0x7,0x7e,0x7,0x35,0x4,0xd1,0x1,0x7d,0x0, +0x5a,0xfb,0xe2,0xf6,0x90,0xf6,0x58,0xf7,0x4f,0xfa,0x4,0xff, +0xe3,0x0,0x93,0x0,0x1e,0x1,0xd9,0x2,0x4b,0x6,0x9a,0x9, +0x78,0x7,0xc4,0x0,0xa6,0xfb,0x1b,0xf8,0xdb,0xf4,0xd6,0xf4, +0x3a,0xf7,0xd4,0xfa,0x4d,0x1,0xb,0x6,0x82,0x4,0xc2,0x1, +0xd3,0x1,0xe3,0x1,0x38,0x0,0xa,0xfe,0xd,0xfd,0x50,0xff, +0x3b,0x3,0xd2,0x2,0x8b,0xfd,0x48,0xf9,0xbc,0xf7,0xa4,0xf7, +0x3b,0xfa,0xec,0xfd,0x4e,0xff,0x4f,0x0,0x76,0x2,0xa6,0x2, +0x53,0x2,0x8b,0x4,0x85,0x4,0xfc,0x0,0x2b,0xff,0x93,0xfc, +0xe7,0xf7,0x1,0xf8,0xc4,0xfa,0x6d,0xf9,0xf4,0xf6,0x80,0xf7, +0x19,0xfc,0xdb,0x4,0x61,0xc,0xb6,0xc,0xf0,0x7,0x7f,0x4, +0x54,0x4,0x6f,0x2,0x5e,0xfa,0x49,0xf0,0x3e,0xed,0xfa,0xf2, +0xf4,0xf9,0x38,0xfe,0x3e,0x2,0x3e,0x6,0x43,0x9,0xf6,0x9, +0xf1,0x5,0xcf,0x0,0x44,0xff,0x77,0xff,0x58,0x0,0x36,0x0, +0x33,0xf9,0x5f,0xee,0x8e,0xec,0x84,0xf7,0x83,0x4,0xb2,0x9, +0xa,0x8,0x38,0x4,0x54,0x1,0xdb,0x0,0x1,0x0,0x12,0xfd, +0xce,0xfb,0x39,0xfd,0xb3,0xfe,0x89,0xff,0x78,0xff,0xa9,0xfd, +0xd3,0xfa,0x7,0xfa,0x81,0xfc,0xf,0xfe,0x8b,0xfd,0x2c,0x0, +0x21,0x6,0xab,0x8,0x3b,0x4,0x7c,0xfd,0x4a,0xfa,0x3d,0xf9, +0x72,0xf9,0xde,0xfd,0x6e,0x2,0x7,0x2,0x67,0xff,0xf6,0xfd, +0x9e,0xff,0x53,0x2,0xc5,0xff,0x8d,0xf9,0x7f,0xf7,0x80,0xfb, +0x18,0x1,0x8,0x3,0x10,0x2,0x7d,0x2,0x19,0x4,0xcb,0x4, +0x31,0x3,0x7a,0x0,0x1f,0x1,0x1f,0x3,0xfb,0x0,0xa5,0xfc, +0x43,0xf9,0x88,0xf7,0xdc,0xf8,0xe5,0xfc,0xac,0x1,0x38,0x5, +0xce,0x7,0x97,0xa,0xc6,0x9,0x81,0x4,0x89,0x1,0x63,0x1, +0xb1,0xfe,0xf6,0xfa,0x31,0xfb,0xa2,0xfe,0x31,0x1,0x92,0x1, +0x4e,0x0,0xf2,0xfe,0x71,0x0,0x3e,0x4,0xc2,0x7,0x7d,0x9, +0x84,0x6,0x74,0x0,0x0,0xfd,0x5c,0xfb,0xf0,0xf8,0xac,0xf7, +0xf7,0xf9,0x9b,0xff,0xad,0x4,0x12,0x7,0x92,0x7,0x6d,0x4, +0x32,0x0,0x28,0x0,0x46,0x1,0x49,0x0,0xbf,0xff,0xcf,0x0, +0x5b,0x1,0x8b,0xff,0x41,0xfe,0x6b,0xff,0x67,0xfe,0xce,0xfb, +0xbe,0xfc,0x4a,0xfe,0x98,0xfc,0xee,0xfa,0xe5,0xfd,0xf1,0x3, +0x74,0x6,0x7e,0x5,0x9f,0x5,0x3b,0x5,0x39,0x4,0xf,0x4, +0x2,0x0,0xbe,0xf8,0x11,0xf5,0x7b,0xf4,0xcc,0xf4,0xb7,0xf7, +0xbe,0xfc,0x37,0x3,0xda,0xa,0xde,0xe,0x46,0xc,0xc8,0x7, +0x7a,0x5,0xd8,0x2,0xa4,0xfc,0xb,0xf5,0x3c,0xf1,0xd8,0xf2, +0x4,0xf7,0xee,0xfa,0xca,0xfe,0x63,0x3,0xd4,0x5,0x92,0x4, +0x29,0x4,0xfe,0x5,0x1a,0x7,0x94,0x6,0x4,0x1,0x22,0xf6, +0x76,0xef,0x6f,0xf0,0x87,0xf3,0x9e,0xf7,0xb2,0xfc,0x32,0x1, +0x64,0x6,0xa6,0xa,0xf8,0x8,0x88,0x3,0xf8,0x1,0xf8,0x3, +0xd2,0x1,0x44,0xfa,0x6c,0xf4,0x7d,0xf5,0xff,0xf9,0xdf,0xfa, +0x21,0xfa,0xc2,0xfe,0xdf,0x5,0xb1,0x9,0xec,0xa,0x6b,0x9, +0xa3,0x4,0x53,0xff,0x74,0xfa,0x99,0xf6,0x2,0xf6,0xb4,0xf7, +0x3e,0xfa,0xf,0xff,0x87,0x3,0x6b,0x3,0x1a,0x2,0xcb,0x3, +0x5a,0x6,0x7c,0x6,0x7c,0x2,0xba,0xfc,0xb6,0xfa,0x77,0xfc, +0xc8,0xfe,0x9,0x0,0x62,0xfd,0x86,0xf8,0xc4,0xf8,0x4f,0xfe, +0x8f,0x1,0x6d,0x0,0xe2,0x0,0x7b,0x4,0xf5,0x5,0xd1,0x4, +0x41,0x3,0xe0,0x0,0x71,0x0,0x64,0x3,0xfa,0x4,0x43,0x1, +0xe4,0xf9,0x3e,0xf7,0xde,0xfc,0xca,0x0,0x10,0xff,0x43,0xff, +0xc0,0x1,0x24,0x2,0x46,0x1,0x2c,0x1,0x40,0x2,0x91,0x3, +0x8b,0x4,0x3f,0x5,0x66,0x4,0x6a,0x1,0x27,0xfd,0x8b,0xfa, +0x98,0xfc,0x72,0xfe,0x4a,0xfb,0xfc,0xf8,0xea,0xfb,0xb9,0x0, +0xec,0x3,0xd1,0x4,0xb1,0x6,0xd3,0x9,0x69,0x7,0x2f,0xff, +0x21,0xf9,0xe0,0xf8,0x38,0xfc,0x99,0xfe,0xdc,0xfd,0x70,0xfd, +0xe1,0xff,0xe2,0x3,0xee,0x6,0x12,0x6,0xd,0x2,0x7a,0xff, +0x61,0x0,0x3d,0x2,0xf,0x1,0x10,0xfd,0xc0,0xfb,0xe9,0xfe, +0xd4,0x1,0x88,0x1,0x11,0x0,0x98,0xff,0x34,0x0,0x80,0x2, +0x80,0x5,0xfa,0x4,0xd7,0x1,0x4a,0x1,0xbd,0x1,0xe7,0xff, +0x65,0xfd,0x74,0xfa,0x44,0xf8,0xe4,0xfa,0xc1,0xff,0x2f,0x1, +0x34,0x1,0x60,0x3,0x8b,0x5,0x3b,0x6,0x71,0x7,0x7e,0x7, +0x3f,0x2,0x1f,0xfb,0x8,0xf9,0x38,0xfa,0xe9,0xf9,0x86,0xfa, +0x9,0xfe,0x79,0x0,0xf6,0xff,0x80,0xfe,0x1f,0xff,0xcc,0x4, +0xc5,0xb,0xcf,0xc,0x2c,0xa,0xb9,0x7,0xe2,0x0,0x4e,0xf6, +0xbc,0xf0,0xf8,0xf0,0xb2,0xf1,0xce,0xf3,0xb1,0xfa,0xf0,0x3, +0xd0,0x9,0x13,0xb,0xc1,0xb,0x34,0xd,0xf,0xc,0x25,0x7, +0x33,0x1,0x38,0xfc,0x99,0xf6,0xc9,0xef,0x63,0xed,0xec,0xf1, +0xe8,0xf7,0xeb,0xfd,0xc6,0x4,0xfb,0x8,0x74,0xb,0x87,0xd, +0x79,0xb,0xb2,0x6,0xdf,0x2,0x93,0xff,0xd5,0xfb,0x13,0xf6, +0x89,0xf0,0xab,0xf0,0xf0,0xf5,0xe2,0xfc,0x24,0x3,0xe7,0x7, +0x21,0xc,0x2d,0xd,0x51,0xa,0x4b,0x7,0x13,0x3,0xad,0xfd, +0x41,0xf9,0xf8,0xf4,0x3,0xf4,0xc2,0xf6,0x50,0xf9,0x5f,0xfe, +0x6a,0x4,0xf0,0x6,0x5,0x9,0xf5,0x9,0x27,0x7,0xf,0x2, +0xff,0xfb,0xdb,0xf9,0x2b,0xfb,0x4,0xfa,0x13,0xfa,0x62,0xfc, +0x4f,0xfc,0xd9,0xfc,0xc3,0xff,0xf8,0x2,0xa1,0x4,0xa1,0x2, +0x64,0x1,0x8d,0x3,0x81,0x4,0xd2,0x2,0xc1,0xfc,0xd,0xf5, +0xef,0xf5,0x56,0xfc,0xf5,0xfd,0xf8,0xfb,0xb1,0xfb,0x5a,0x0, +0x2a,0x7,0x2,0x9,0x82,0x7,0xa0,0x6,0xca,0x3,0x2e,0xff, +0x42,0xfb,0x50,0xf7,0xf4,0xf3,0xd6,0xf3,0x96,0xf7,0x2d,0xfd, +0xf,0x2,0x7f,0x4,0xa5,0x5,0x72,0x8,0x6a,0xa,0xd0,0x7, +0xdc,0x3,0xe0,0xff,0x3f,0xfa,0x4d,0xf7,0xb8,0xf8,0x4e,0xf9, +0x1a,0xf8,0xd7,0xf8,0xb0,0xfc,0x2f,0x1,0x58,0x4,0xa,0x7, +0xa8,0x8,0x3c,0x7,0x36,0x4,0xef,0x1,0x14,0x1,0x42,0x0, +0x91,0xfc,0x3f,0xf8,0x2,0xf9,0x30,0xfd,0xeb,0xfe,0x26,0xfe, +0xfd,0xfe,0x8c,0x2,0xb5,0x4,0xe5,0x1,0x4f,0xfd,0x3d,0xfd, +0x53,0x2,0x4d,0x6,0xfa,0x4,0x80,0x1,0x83,0xfe,0xb1,0xfb, +0xfb,0xfb,0x11,0x0,0x52,0x1,0xcd,0xfc,0xdc,0xf8,0xce,0xfa, +0xcf,0xff,0x1e,0x3,0x5,0x4,0xaf,0x3,0x71,0x4,0x7b,0x6, +0xe3,0x3,0x59,0xfc,0xb8,0xf8,0x45,0xfa,0x79,0xfb,0xe2,0xfb, +0x1d,0xfc,0x53,0xfc,0x21,0xff,0x28,0x4,0x35,0x7,0x37,0x6, +0x75,0x3,0x1a,0x2,0x27,0x2,0xbd,0x1,0xe3,0xff,0xd2,0xfc, +0xee,0xf9,0xc7,0xf8,0x4a,0xfa,0x8f,0xfd,0x3e,0xff,0x7c,0xfe, +0xa8,0xfe,0xbc,0x1,0xa7,0x5,0x84,0x7,0x61,0x7,0x91,0x5, +0x82,0x0,0x51,0xfb,0x2c,0xfa,0x1,0xf9,0xba,0xf5,0x8d,0xf6, +0x0,0xfd,0x84,0x3,0xcf,0x6,0xac,0x6,0x98,0x3,0x8,0x1, +0x18,0x2,0x88,0x2,0xb3,0xfe,0xe4,0xfa,0xff,0xf8,0xd,0xf8, +0x46,0xfa,0xc3,0xfd,0x58,0xff,0x8c,0x1,0x93,0x5,0xf2,0x9, +0x7b,0xc,0x7e,0x9,0x9d,0x1,0x4b,0xfa,0x13,0xf8,0xbe,0xf9, +0x5d,0xf8,0x52,0xf4,0xe0,0xf5,0x14,0xfd,0x2b,0x4,0xdb,0x7, +0x8f,0x7,0x7c,0x7,0xc1,0x8,0xed,0x6,0xe4,0x2,0x2a,0xff, +0x25,0xfb,0x8f,0xf7,0xd6,0xf4,0xd2,0xf4,0xbe,0xf9,0x97,0xff, +0x24,0x2,0x1b,0x3,0xb3,0x5,0x7b,0x8,0x48,0x6,0x4,0x2, +0xbe,0x2,0x9e,0x4,0xd5,0x1,0x27,0xfc,0xe2,0xf7,0xca,0xf7, +0x80,0xf7,0xd4,0xf5,0xef,0xfb,0x1a,0x6,0x9,0x8,0xe,0x6, +0x38,0x7,0xf7,0x8,0xc0,0x8,0x1b,0x5,0xce,0xfe,0xfc,0xf8, +0x3a,0xf6,0x46,0xf8,0xc1,0xfa,0xbc,0xf9,0x25,0xfa,0x7c,0xfd, +0x35,0x1,0x4d,0x6,0xa5,0x9,0x38,0x7,0xfc,0x2,0x4,0x2, +0x60,0x3,0x16,0x2,0xc4,0xfd,0x67,0xfb,0xc7,0xfa,0x54,0xf9, +0x3a,0xf9,0x3c,0xfb,0xbe,0xfe,0xa8,0x4,0x74,0x9,0xe3,0x7, +0xa0,0x2,0xa6,0x0,0x12,0x2,0x54,0x2,0xc6,0x1,0x97,0x1, +0xca,0xfe,0x61,0xfa,0x48,0xf9,0x57,0xfa,0x34,0xfa,0x6c,0xfc, +0x45,0x3,0x35,0x8,0xcd,0x7,0xe8,0x5,0x92,0x3,0xae,0x1, +0xf2,0x1,0x64,0xff,0x50,0xf9,0x61,0xf8,0xd,0xfc,0x8d,0xfb, +0x80,0xf8,0x1d,0xfb,0x1,0x3,0x0,0x9,0x3f,0xb,0x6d,0xc, +0x51,0xa,0x8d,0x2,0x18,0xfa,0x64,0xf5,0xe,0xf4,0xe8,0xf5, +0xa7,0xf9,0xbb,0xfc,0x88,0x0,0x6c,0x6,0x70,0xa,0x39,0xa, +0x15,0x8,0x58,0x4,0xc6,0xfe,0xd7,0xf9,0x3,0xf6,0xfa,0xf3, +0xed,0xf6,0xa6,0xfb,0xca,0xfc,0xde,0xfe,0x67,0x5,0xa,0xa, +0x8,0xa,0x12,0x9,0x4b,0x7,0x66,0x3,0x84,0xfe,0xd1,0xf8, +0x5a,0xf2,0x53,0xee,0x80,0xf0,0xf3,0xf7,0x37,0x0,0x56,0x7, +0xb2,0xc,0xb0,0xd,0x26,0xb,0x32,0x9,0x50,0x6,0xe3,0xfe, +0x4d,0xf6,0xe5,0xf1,0x6c,0xf2,0x5a,0xf5,0x6c,0xf6,0x3b,0xf5, +0xe7,0xf7,0x5,0x1,0xab,0xb,0x78,0x12,0x52,0x12,0x5f,0xc, +0xe8,0x5,0x81,0x1,0xac,0xfc,0xe6,0xf3,0xc8,0xe9,0x6a,0xe8, +0x37,0xf2,0xea,0xfb,0x50,0xfe,0x0,0xff,0x3c,0x5,0xec,0xe, +0x9c,0x13,0xe9,0x11,0x63,0xe,0xf6,0x8,0xcc,0x1,0xa8,0xfb, +0x75,0xf5,0xd0,0xee,0xd5,0xea,0x71,0xeb,0x37,0xf1,0x71,0xfa, +0x72,0x3,0xed,0xa,0x2e,0x11,0x8e,0x14,0xc3,0x11,0xd6,0x9, +0xe3,0x3,0xb2,0x1,0xad,0xfc,0xe1,0xf3,0xf2,0xee,0x2e,0xf1, +0x78,0xf4,0xd5,0xf4,0x4,0xf9,0xef,0x4,0x29,0xf,0x40,0x10, +0xd2,0xc,0xb8,0xa,0x74,0x9,0x46,0x6,0x18,0x1,0x8b,0xfa, +0x71,0xf2,0x9f,0xed,0xa5,0xf1,0x28,0xf9,0x81,0xfc,0x32,0xff, +0x76,0x6,0xc3,0xd,0xe4,0xe,0xce,0xb,0xdd,0x8,0x44,0x5, +0xa5,0xff,0x52,0xfa,0x69,0xf7,0x96,0xf6,0xb4,0xf6,0xa5,0xf7, +0x70,0xfa,0x81,0xfe,0x1f,0x2,0xad,0x5,0x3d,0x9,0x4c,0xa, +0x4e,0x8,0x1e,0x6,0x23,0x4,0x8e,0xff,0xda,0xf9,0x75,0xf8, +0xe6,0xfa,0x6d,0xfb,0x3d,0xf9,0xa8,0xf8,0xdc,0xfb,0xbf,0x1, +0x9a,0x7,0xa7,0x9,0x49,0x7,0x60,0x5,0xab,0x5,0x4f,0x3, +0xaa,0xfe,0x9f,0xfd,0x96,0xfe,0x5b,0xfd,0xa6,0xfc,0x2d,0xfe, +0x4a,0xff,0x9c,0xfe,0x3c,0xfd,0xb0,0xfe,0x20,0x2,0x4e,0x1, +0x8c,0xff,0xb6,0x2,0x9b,0x3,0x3c,0x0,0x85,0x0,0x5b,0x2, +0xd,0x2,0x98,0x2,0x7f,0x2,0xd3,0x0,0x85,0xff,0xcc,0xfc, +0xd7,0xf9,0xce,0xf9,0xb8,0xfb,0x80,0xfe,0xfd,0x0,0x42,0x2, +0x5d,0x2,0x1f,0x1,0x17,0x2,0xca,0x5,0xc8,0x6,0x25,0x6, +0xbd,0x4,0x9d,0xff,0x55,0xfc,0x90,0xfc,0x53,0xfa,0xaa,0xf8, +0x46,0xfa,0xd8,0xfb,0xd3,0xfe,0x16,0x4,0xe3,0x8,0xc,0xa, +0xd2,0x6,0xad,0x5,0x34,0x7,0x20,0x3,0x95,0xfb,0xf3,0xf6, +0x1,0xf5,0x67,0xf6,0x43,0xfa,0xd5,0xfe,0x34,0x4,0x41,0x6, +0x66,0x4,0x7,0x4,0x10,0x5,0x73,0x4,0x1b,0x1,0x30,0xfc, +0xab,0xf8,0x33,0xf6,0x66,0xf5,0xd5,0xf8,0x58,0xfd,0xca,0x1, +0x9b,0x7,0x6b,0xa,0xb6,0x9,0x86,0x8,0xd0,0x4,0x18,0x0, +0xfb,0xfd,0xc5,0xfb,0xc1,0xf7,0x36,0xf5,0xa5,0xf6,0x44,0xfa, +0x8,0xfe,0x94,0x3,0x91,0x8,0x81,0x7,0xe3,0x3,0xb7,0x3, +0xf1,0x4,0x44,0x3,0xb5,0xfd,0xe0,0xf7,0x7d,0xf7,0x56,0xfc, +0x7,0x0,0x9,0xff,0x1d,0xfd,0x6d,0xfe,0x9c,0x1,0xfa,0x3, +0xf3,0x2,0x83,0xfd,0x75,0xfa,0x8b,0xfe,0x50,0x2,0x7e,0x0, +0xd2,0xfd,0x6e,0xfe,0x5c,0x2,0x6a,0x7,0x2a,0x9,0x44,0x5, +0xfa,0xfe,0xa1,0xfa,0xe8,0xf8,0xbb,0xf8,0x29,0xf9,0xe3,0xf9, +0xae,0xfc,0x86,0x1,0x54,0x5,0x57,0x7,0x77,0x7,0x77,0x5, +0x30,0x4,0x10,0x3,0xc6,0xfe,0xfa,0xf9,0x3b,0xf7,0x2f,0xf5, +0x11,0xf5,0x4e,0xf8,0xde,0xfd,0xf7,0x3,0x51,0x7,0x29,0x8, +0x63,0xa,0xb3,0xb,0xd,0x7,0xfd,0xfe,0x93,0xf9,0x8c,0xf8, +0xc1,0xf7,0xe6,0xf2,0x31,0xef,0x4c,0xf4,0xe2,0xfd,0x1a,0x5, +0xf8,0xa,0x9b,0xe,0xf6,0xc,0x2b,0x8,0xe5,0x2,0x20,0xfe, +0xca,0xfa,0x50,0xf8,0x7b,0xf6,0x2f,0xf6,0x7c,0xf7,0xb2,0xf9, +0xfa,0xfc,0x54,0x3,0xa0,0x9,0x98,0x8,0x59,0x4,0xad,0x4, +0xe5,0x4,0x65,0x1,0x25,0xfe,0xcb,0xfb,0xf2,0xf9,0x33,0xf9, +0x65,0xf9,0x45,0xfb,0x14,0xfd,0xb0,0xfe,0xa9,0x3,0x77,0x8, +0xf7,0x7,0x68,0x5,0xb0,0x3,0x6e,0x2,0x45,0x1,0xfe,0xfd, +0xf1,0xf8,0xa2,0xf6,0x17,0xf8,0x6b,0xfa,0x55,0xfc,0xc1,0xfd, +0x9d,0xfe,0x18,0x1,0x7,0x6,0x75,0x9,0x56,0xa,0x29,0xb, +0x53,0x9,0x38,0x2,0x89,0xfa,0xcb,0xf6,0x4e,0xf5,0xd3,0xf3, +0xf8,0xf4,0x6d,0xfa,0xb2,0x0,0x21,0x6,0x68,0xa,0x21,0xb, +0x54,0xa,0x4d,0xa,0x25,0x8,0xd1,0x4,0x3e,0x2,0xe4,0xfb, +0x22,0xf2,0xd4,0xed,0x29,0xf1,0xe2,0xf4,0xd9,0xf7,0x47,0x0, +0xc4,0xb,0x98,0x11,0x7b,0x10,0x21,0xb,0x4a,0x3,0x55,0xfc, +0xc,0xf9,0x81,0xf8,0xa5,0xf7,0x32,0xf7,0x8c,0xfa,0x8,0xff, +0x6f,0x1,0x4b,0x4,0x64,0x8,0x5,0xc,0x5,0xc,0xe9,0x5, +0x55,0xff,0x3a,0xfb,0x4f,0xf5,0x24,0xf1,0xfb,0xf1,0x8d,0xf3, +0x95,0xf7,0x8f,0x0,0xd1,0xa,0xec,0x12,0xe2,0x14,0x74,0x10, +0x12,0xa,0x34,0x2,0x3d,0xf9,0x59,0xf1,0x82,0xeb,0x7a,0xeb, +0x46,0xf1,0x3e,0xf6,0xb6,0xf9,0x17,0x1,0xc9,0xc,0x9d,0x15, +0x7e,0x15,0x94,0xf,0xdd,0x8,0xc,0x2,0xbe,0xfb,0x16,0xf5, +0x9b,0xee,0x29,0xed,0xf3,0xf0,0x82,0xf7,0xe4,0x0,0x35,0x9, +0xef,0xc,0xc1,0xd,0xba,0xb,0x1c,0x7,0xba,0x2,0x92,0xfe, +0x8b,0xf9,0x30,0xf5,0x50,0xf4,0xf3,0xf7,0x8e,0xfc,0xf6,0xfe, +0x18,0x2,0x4d,0x7,0xd0,0x8,0xd8,0x4,0x89,0x2,0x9,0x4, +0xb2,0x2,0xcb,0xfd,0x23,0xfb,0x9c,0xfa,0x7a,0xf9,0xd7,0xf9, +0x1d,0xfd,0x45,0x1,0xc6,0x4,0xbd,0x6,0x3a,0x7,0xc1,0x7, +0x4,0x7,0xcc,0x1,0x83,0xfa,0xb9,0xf7,0x56,0xfa,0xa6,0xfc, +0xea,0xfc,0x75,0xff,0x1e,0x3,0x43,0x2,0x6d,0xff,0xfc,0xff, +0x50,0x2,0x3a,0x3,0xcd,0x1,0xeb,0xff,0x3a,0x1,0xac,0x3, +0xec,0x2,0x8e,0x0,0x31,0xfe,0xe0,0xfa,0xc0,0xf7,0x0,0xf7, +0xf2,0xf9,0xf6,0xfe,0x33,0x2,0x12,0x4,0xb0,0x7,0xa4,0xb, +0xd1,0xb,0x70,0x7,0x3a,0x1,0x14,0xfb,0x13,0xf6,0x59,0xf3, +0x3a,0xf2,0xb1,0xf3,0xe7,0xf8,0xd7,0xfd,0x6f,0x2,0x3b,0xa, +0x4d,0xf,0x44,0xd,0xe6,0xa,0xc1,0x9,0xba,0x3,0xcf,0xf8, +0x60,0xef,0x8d,0xec,0x41,0xf0,0xd7,0xf6,0xc3,0xfd,0xb3,0x4, +0xe2,0xa,0xf8,0xd,0x4e,0xd,0xa8,0xa,0x4f,0x6,0x92,0x0, +0xaf,0xfb,0x6f,0xf8,0x2b,0xf6,0x40,0xf4,0x78,0xf3,0x8d,0xf6, +0x9f,0xfc,0xd9,0x2,0x86,0x9,0x45,0xe,0xc4,0xd,0xec,0x9, +0x62,0x4,0xd6,0xfe,0xa2,0xfb,0xf5,0xf7,0x6,0xf4,0xdf,0xf5, +0x61,0xfb,0x1a,0xfe,0x71,0x0,0x74,0x6,0x7f,0xb,0xa5,0x9, +0x38,0x4,0x7,0x1,0xeb,0xfe,0xa1,0xfc,0x5b,0xfb,0x4c,0xf9, +0xe8,0xf7,0xc5,0xfb,0x8d,0x1,0xd0,0x3,0x8d,0x4,0xa2,0x6, +0x9e,0x8,0xd1,0x7,0x8e,0x3,0xf3,0xfd,0xd4,0xf8,0x39,0xf5, +0x35,0xf5,0x84,0xf8,0x78,0xfc,0xc3,0x0,0x33,0x5,0xd1,0x7, +0xc0,0x8,0x5,0x8,0x81,0x3,0x88,0xfd,0xe,0xfc,0x8c,0xfe, +0xb6,0xfe,0x94,0xfa,0xc,0xf6,0xdd,0xf4,0xc2,0xf8,0x1c,0x1, +0xde,0x8,0x2b,0xb,0x56,0x9,0xca,0x6,0x50,0x4,0xe7,0x0, +0x99,0xfb,0xd3,0xf6,0x5f,0xf6,0xc7,0xf8,0xe,0xfa,0x55,0xf9, +0x38,0xf9,0xca,0xfd,0xb7,0x5,0x71,0xa,0x8e,0xa,0xd1,0x8, +0x30,0x6,0x80,0x3,0x64,0xff,0x50,0xf8,0x9d,0xf3,0xaf,0xf5, +0x30,0xfa,0xf5,0xfc,0xf8,0xfe,0x9c,0x1,0x5b,0x5,0x9a,0x9, +0xf1,0xa,0xda,0x6,0x46,0x0,0x93,0xfb,0x57,0xf9,0xf7,0xf8, +0xcf,0xfa,0x47,0xfd,0xfa,0xfd,0x7e,0xfe,0xd6,0x1,0x98,0x6, +0x93,0x8,0x47,0x5,0x86,0xff,0x66,0xff,0x3d,0x5,0x27,0x5, +0x18,0xfc,0x16,0xf6,0x59,0xf9,0x77,0xff,0xe7,0x0,0x47,0xfd, +0xc9,0xfa,0xbb,0xfd,0x2a,0x4,0x46,0x9,0x9c,0x8,0x7b,0x3, +0x8b,0x0,0x5e,0x1,0xe,0x1,0xe8,0xfb,0x0,0xf4,0x53,0xf1, +0x54,0xf8,0x49,0x2,0xe3,0x6,0xfa,0x4,0xd2,0x0,0xe,0x1, +0x65,0x6,0x76,0x8,0x2a,0x3,0xbf,0xfb,0x3a,0xf7,0x5f,0xf7, +0x5c,0xfa,0x5b,0xfb,0x10,0xfb,0xbc,0xfe,0x23,0x5,0x85,0x8, +0xaf,0x7,0xda,0x4,0x6c,0x0,0xb2,0xfb,0x39,0xfb,0xfb,0xfd, +0xfc,0xfc,0x1e,0xf9,0x56,0xf9,0x43,0xfe,0x9f,0x3,0x1c,0x6, +0x7c,0x5,0x83,0x3,0x59,0x1,0x73,0x1,0x69,0x3,0x9a,0x0, +0xcb,0xf9,0xe9,0xf7,0x87,0xfb,0x33,0xff,0x9,0x1,0x9b,0x1, +0x92,0x2,0x3a,0x4,0xcc,0x4,0x4,0x3,0x96,0xfe,0xee,0xfa, +0xf5,0xfb,0xbf,0xfe,0xd5,0xff,0x17,0xff,0x13,0xfc,0x7b,0xfa, +0x7a,0xfe,0xb7,0x3,0x8e,0x4,0xfb,0x1,0x48,0x1,0xba,0x4, +0xf,0x6,0x68,0x1,0x4f,0xfc,0xd2,0xf9,0x8a,0xf9,0x52,0xfc, +0xf7,0xfe,0xf1,0xfe,0xa8,0xfe,0x57,0xff,0x25,0x2,0xdd,0x6, +0x2c,0x9,0x20,0x8,0x37,0x5,0xe2,0xff,0x3f,0xfa,0x33,0xf7, +0x39,0xf7,0x57,0xfa,0x3e,0xfe,0x98,0x1,0x43,0x5,0x66,0x5, +0x44,0x1,0x16,0x1,0x59,0x5,0x82,0x5,0xb5,0x0,0xac,0xfb, +0x6,0xf9,0x6b,0xfa,0xab,0xfd,0x32,0xff,0x2e,0x0,0x64,0x1, +0x8,0x2,0x8d,0x3,0x9f,0x4,0xdb,0x2,0x41,0x1,0x26,0x1, +0x19,0xff,0xac,0xfb,0x8d,0xfa,0x78,0xfa,0xeb,0xf8,0x1e,0xf9, +0x32,0xfe,0xb4,0x4,0x92,0x7,0xaf,0x5,0xe8,0x2,0x38,0x3, +0x15,0x3,0xb7,0xfe,0xcb,0xfa,0x4,0xfa,0xf2,0xf9,0x52,0xfb, +0x1,0xfe,0xd8,0xfe,0x7a,0xfe,0xfc,0xff,0xad,0x3,0xc4,0x5, +0x12,0x3,0x50,0xff,0xd6,0xfe,0x5c,0xff,0xc,0xff,0x25,0xff, +0xd3,0xfe,0x3c,0xfe,0xd7,0xff,0xa8,0x2,0x7a,0x3,0xb5,0x1, +0x50,0xff,0x1f,0xff,0x7,0x1,0xc3,0x0,0x51,0xfd,0xe7,0xfb, +0xd1,0xfe,0xf1,0x0,0xe3,0xff,0xd9,0x0,0x8e,0x4,0xac,0x4, +0xe7,0x0,0xd9,0xfd,0x5c,0xfc,0x1a,0xfc,0x50,0xfc,0x1c,0xfc, +0x9a,0xfd,0x8d,0x1,0x46,0x5,0x6c,0x6,0xe9,0x4,0x83,0x3, +0xd0,0x2,0xd4,0xff,0x4e,0xfb,0xb7,0xf8,0x28,0xfa,0x93,0xfe, +0xf7,0xff,0x38,0xfe,0xea,0x0,0xe5,0x5,0xd0,0x5,0x66,0x2, +0x58,0xff,0x9e,0xfd,0xb7,0xfd,0xbd,0xfe,0xa2,0x0,0xa7,0x2, +0x8b,0x2,0xf6,0x0,0xa7,0xfe,0xed,0xfb,0xa7,0xfb,0xbb,0xfd, +0x4b,0xff,0x11,0x0,0x2f,0x0,0xe6,0xff,0x69,0x0,0xb8,0x1, +0x2c,0x3,0x1e,0x3,0x5,0x1,0x19,0x0,0x65,0x0,0xbb,0xfe, +0x11,0xfd,0x89,0xfd,0xf6,0xfd,0xa8,0xfe,0x3c,0x1,0x2c,0x3, +0x6c,0x2,0xb7,0x1,0xa2,0x2,0xb5,0x1,0x5a,0xfe,0xad,0xfc, +0xfb,0xfc,0x58,0xfe,0xad,0x1,0x9b,0x2,0x1c,0xfe,0xcd,0xfb, +0xc9,0x0,0xc8,0x5,0x2a,0x4,0x69,0x0,0x65,0x0,0x12,0x2, +0x2e,0x2,0xc8,0x0,0x10,0xfe,0x6c,0xfb,0x3f,0xfa,0x8f,0xfa, +0xcc,0xfe,0x89,0x5,0x91,0x6,0x29,0x2,0x27,0x1,0x6,0x3, +0x76,0x1,0x8a,0xfe,0x57,0xfe,0x44,0xfe,0x8a,0xfc,0xd,0xfc, +0xbd,0xfd,0xc3,0xff,0xf3,0x1,0x71,0x4,0x6c,0x5,0xd5,0x3, +0x65,0x0,0xca,0xfc,0xae,0xfc,0x13,0x0,0x88,0x0,0x7b,0xfd, +0x9e,0xfc,0x66,0xfd,0x8a,0xfd,0xf0,0xfd,0x50,0xfe,0x8b,0x0, +0x8c,0x5,0x6e,0x8,0x11,0x7,0xca,0x2,0x40,0xfd,0xc,0xfb, +0x7c,0xfc,0xf,0xfc,0xc2,0xf8,0x83,0xf6,0x5c,0xf9,0x1e,0x0, +0xa2,0x3,0x27,0x3,0x5d,0x4,0x60,0x6,0xea,0x5,0x8b,0x3, +0xf6,0xfe,0xe6,0xf9,0xf3,0xf8,0x7b,0xfb,0xf5,0xfc,0xff,0xfb, +0x6,0xfb,0x15,0xfd,0x7a,0x1,0xd5,0x4,0x43,0x6,0x58,0x5, +0x9,0x1,0x6,0xfd,0x5,0xfe,0x76,0x1,0x55,0x1,0xfa,0xfc, +0xde,0xf9,0xa1,0xfc,0xe4,0x2,0xb9,0x5,0x71,0x2,0x1e,0xfe, +0x6b,0xfd,0x72,0xfe,0xb0,0xfe,0x78,0xfe,0x3c,0xfe,0xf9,0xfe, +0xc9,0x0,0xe1,0x1,0x32,0x2,0x13,0x2,0x2,0x1,0x6f,0x0, +0x8c,0x0,0x2,0xff,0x15,0xfd,0xdd,0xfd,0x6a,0xff,0x1,0xff, +0xa4,0xfe,0x25,0xff,0xc5,0xfe,0x91,0xff,0xa8,0x2,0x0,0x4, +0x83,0x2,0x1e,0x1,0x11,0x1,0x69,0x1,0x95,0x0,0xe6,0xfe, +0x5,0xfd,0x65,0xfa,0x12,0xfa,0x9e,0xfd,0xa4,0xff,0x6a,0xff, +0xc2,0x1,0x56,0x5,0xe0,0x6,0x4,0x7,0x9a,0x5,0x7,0x2, +0xa7,0xfd,0x46,0xf9,0x71,0xf5,0x24,0xf5,0xb1,0xf9,0xe,0xfe, +0x55,0xff,0x9c,0x2,0x87,0x8,0x89,0xa,0x72,0x8,0xdc,0x6, +0xc2,0x5,0x1d,0x3,0xa7,0xfd,0x9c,0xf6,0x1f,0xf3,0xde,0xf4, +0x30,0xf8,0x35,0xfb,0x72,0xfe,0x29,0x3,0xd7,0x9,0x94,0xf, +0x39,0x11,0xc7,0xc,0xea,0x1,0x7c,0xf7,0x88,0xf4,0xa6,0xf5, +0x10,0xf6,0x4b,0xf7,0x5f,0xfa,0x9b,0xfe,0xfd,0x3,0x4d,0x8, +0x22,0x9,0xc1,0x8,0x65,0x9,0x7f,0x8,0xd1,0x3,0x83,0xfc, +0x22,0xf5,0x30,0xf1,0xdf,0xf2,0x40,0xf8,0xab,0xfd,0x72,0x2, +0xec,0x7,0x3c,0xb,0x98,0x9,0x13,0x8,0x17,0x9,0x5a,0x6, +0x42,0xfe,0x50,0xf6,0x1b,0xf2,0xd0,0xf1,0x5f,0xf4,0x94,0xf9, +0x35,0x0,0x10,0x5,0xab,0x8,0x5b,0xc,0xb5,0xc,0x32,0x8, +0x95,0x2,0x2a,0xff,0x8e,0xfc,0x5f,0xf7,0xd7,0xf1,0x5f,0xf1, +0x15,0xf6,0x5a,0xfd,0xdd,0x4,0xcd,0x9,0x9a,0xb,0x6c,0xb, +0xe2,0x9,0x64,0x6,0x31,0xff,0x41,0xf7,0x80,0xf4,0xab,0xf5, +0x8d,0xf7,0x43,0xfb,0xc1,0xfe,0xd6,0xff,0x59,0x2,0x25,0x7, +0x8b,0x9,0x57,0x7,0x28,0x2,0x9c,0xfd,0x98,0xfc,0xc6,0xfd, +0xf0,0xfd,0xbd,0xfb,0x1b,0xf9,0x99,0xf9,0xaa,0xfc,0x5,0xff, +0x26,0x1,0x97,0x4,0x86,0x7,0xbe,0x7,0x67,0x5,0x6a,0x1, +0x44,0xfc,0x42,0xf8,0x7d,0xf7,0x6a,0xf8,0xd3,0xfa,0x4,0xff, +0x27,0x1,0xbd,0x1,0xce,0x5,0xa2,0xa,0x9c,0x9,0x3b,0x3, +0x86,0xfd,0xdf,0xfb,0xaa,0xfb,0xa4,0xfa,0xad,0xf9,0x68,0xf9, +0xd4,0xfb,0xf,0x1,0x3d,0x4,0xcc,0x4,0xdc,0x5,0x38,0x6, +0x73,0x5,0xa8,0x5,0x41,0x5,0x62,0x1,0x66,0xfb,0x77,0xf7, +0x22,0xf7,0x2f,0xf8,0x45,0xf9,0x68,0xfb,0x13,0x0,0xff,0x6, +0x24,0xc,0xb5,0xc,0xe7,0xa,0xc3,0x7,0x8f,0x2,0xd4,0xfc, +0x50,0xf7,0x68,0xf3,0x69,0xf4,0xc8,0xf8,0x32,0xfd,0x74,0x1, +0x3,0x4,0xd4,0x4,0xf2,0x5,0xc3,0x5,0x63,0x5,0xcf,0x6, +0xf0,0x3,0x41,0xfc,0x36,0xf9,0x36,0xfb,0x11,0xfb,0xc5,0xf8, +0x9,0xf9,0x28,0xfd,0xa,0x2,0x17,0x5,0x3,0x7,0xb9,0x7, +0xdf,0x5,0xd6,0x2,0x33,0x1,0x14,0x0,0xd1,0xfc,0x96,0xf9, +0x2f,0xfa,0x5a,0xfb,0xd9,0xf9,0xd5,0xf9,0x5e,0xfd,0x34,0x2, +0xf8,0x7,0xd8,0xb,0xb2,0x9,0xff,0x4,0x8d,0x2,0xf6,0xff, +0x18,0xfb,0x2e,0xf7,0x5c,0xf6,0x50,0xf7,0x27,0xfa,0x99,0xff, +0x6e,0x3,0xa3,0x2,0xc1,0x1,0x93,0x2,0x14,0x2,0x9c,0x1, +0xa1,0x1,0x1,0x0,0x12,0xff,0x3f,0xff,0xf4,0xfd,0x23,0xfd, +0x22,0xfe,0x6,0xff,0x30,0xff,0x1,0xff,0x72,0xff,0x2a,0x0, +0x3c,0x0,0x11,0x1,0x70,0x1,0x83,0xff,0xe1,0xfe,0x97,0x0, +0x44,0x1,0xbd,0x0,0x83,0x0,0x4e,0x1,0xb3,0x2,0xe0,0x1, +0xc2,0xfd,0xe8,0xf9,0x4e,0xfa,0x72,0xfe,0x19,0x2,0x9,0x3, +0x6b,0x1,0x1d,0xfe,0xd,0xfd,0x29,0x0,0xf7,0x2,0xd0,0x2, +0x64,0x1,0xbe,0xff,0xdb,0xfe,0xce,0xfe,0xc,0xfe,0xa3,0xfd, +0xa5,0xfe,0xb2,0xfe,0xb2,0xfd,0x8e,0xfe,0x98,0x0,0x8,0x1, +0x14,0x1,0xfb,0x2,0x8b,0x4,0xa1,0x3,0x1c,0x2,0x7a,0x0, +0xbe,0xfd,0xa9,0xfb,0x17,0xfb,0xa,0xfb,0xcc,0xfb,0xbb,0xfd, +0x9,0x1,0x2c,0x4,0xdc,0x3,0xfa,0x1,0xf9,0x2,0x7c,0x5, +0x7d,0x5,0x7f,0x1,0x4,0xfc,0x14,0xf9,0x7d,0xf8,0xc7,0xf8, +0xf7,0xfa,0xfe,0xfd,0xd,0x0,0xff,0x1,0x73,0x4,0xf2,0x6, +0xf1,0x8,0x1f,0x9,0xaa,0x5,0xa3,0xff,0x98,0xfb,0x20,0xfa, +0xe7,0xf7,0x72,0xf6,0x92,0xf8,0xcd,0xfc,0x19,0x1,0x2c,0x4, +0x85,0x6,0x2,0x9,0x65,0x8,0x39,0x4,0x86,0x1,0x32,0x0, +0xe,0xfd,0x2d,0xfa,0xd5,0xf9,0x6e,0xfa,0xbc,0xfa,0x29,0xfc, +0x59,0x0,0x1c,0x5,0xd4,0x5,0xa,0x3,0x58,0x2,0x10,0x5, +0x8c,0x6,0x15,0x4,0xdd,0xff,0x4b,0xfc,0x9c,0xf9,0xe4,0xf7, +0xaf,0xf7,0x37,0xf9,0x24,0xfc,0xa0,0xff,0x84,0x3,0x8c,0x7, +0x2c,0x9,0x70,0x7,0xf9,0x4,0x2b,0x2,0xd7,0xfd,0xbf,0xf9, +0x6e,0xf7,0x3d,0xf7,0x18,0xfa,0xe,0xfe,0x40,0xff,0xfe,0xfe, +0x1,0x2,0xa7,0x6,0xa7,0x6,0x6b,0x2,0xd9,0xff,0x89,0x0, +0xa3,0x1,0xf7,0x0,0x5d,0xff,0xdd,0xfe,0x76,0xff,0x68,0x0, +0xc9,0x0,0x43,0xff,0x73,0xfd,0x8b,0xfd,0x13,0xfe,0x2d,0xfd, +0x99,0xfb,0x38,0xfc,0xb8,0xff,0x5a,0x2,0xd5,0x3,0xfc,0x6, +0x6f,0x8,0xe,0x5,0xa4,0x0,0xa0,0xfd,0x4a,0xfb,0x11,0xfa, +0x8e,0xf9,0x14,0xf9,0xf8,0xfa,0x4f,0x0,0x68,0x4,0xb3,0x3, +0x31,0x2,0x1e,0x4,0x21,0x7,0x38,0x7,0x9b,0x3,0x4a,0xfe, +0x83,0xfa,0xcf,0xf9,0xeb,0xfa,0x5d,0xfc,0x64,0xfd,0x80,0xfe, +0xad,0x1,0xa2,0x5,0x46,0x6,0x2d,0x4,0x60,0x2,0xf3,0x0, +0xcd,0xff,0x7b,0xfe,0xc8,0xfb,0xc1,0xf9,0xdc,0xfa,0xc5,0xfd, +0xc0,0xff,0xe2,0xff,0x2f,0x0,0x11,0x2,0xca,0x3,0x75,0x4, +0x38,0x4,0x25,0x2,0x3b,0xff,0xe5,0xfd,0x6,0xfe,0xdb,0xfd, +0x6d,0xfd,0x27,0xfe,0xf7,0xfe,0x6e,0xfe,0x84,0xff,0x3f,0x3, +0x99,0x4,0x4f,0x2,0xcd,0x0,0x3e,0x1,0x88,0x1,0xdb,0x0, +0xdd,0xff,0x75,0xff,0xea,0xfe,0xbe,0xfd,0xf8,0xfd,0x89,0xfe, +0x11,0xfd,0x69,0xfd,0xf8,0x0,0x17,0x2,0x7,0x0,0x95,0xfe, +0x88,0xfe,0xd4,0xff,0x8e,0x1,0xb,0x2,0x1e,0x2,0xd1,0x2, +0xf0,0x2,0x53,0x0,0x83,0xfb,0x66,0xf9,0x12,0xfc,0x57,0xff, +0x25,0x0,0xfb,0xff,0xa,0x1,0xe3,0x2,0x97,0x3,0xd1,0x2, +0xc,0x1,0x25,0xff,0x2c,0xff,0xf0,0x0,0x52,0x1,0xf3,0xfe, +0x9a,0xfc,0xc2,0xfd,0x3d,0x0,0xaf,0xff,0xe9,0xfd,0xe3,0xfd, +0x8e,0xfe,0xab,0xff,0x18,0x1,0x2e,0x1,0x88,0x0,0x58,0x0, +0x59,0x0,0x2,0x1,0x7,0x2,0xac,0x1,0x6f,0x0,0xc,0x0, +0xfb,0xff,0x74,0xfe,0x60,0xfb,0x4b,0xf9,0xb6,0xfa,0x69,0xfe, +0xdf,0x1,0xac,0x4,0xfc,0x5,0x1c,0x5,0x9e,0x4,0xbf,0x5, +0x18,0x5,0xa,0x1,0x5c,0xfc,0xe1,0xf8,0x2,0xf7,0xe8,0xf7, +0xb4,0xfa,0x17,0xfd,0x42,0xff,0xe,0x2,0x3,0x5,0x11,0x7, +0x14,0x7,0x68,0x5,0x7b,0x2,0xc8,0xfd,0x71,0xf9,0x1f,0xf8, +0xea,0xf8,0x52,0xfa,0xfd,0xfb,0xdd,0xfd,0x48,0x0,0x84,0x3, +0x2,0x7,0x6b,0x8,0x43,0x6,0xcf,0x2,0x3,0x0,0x71,0xfd, +0xa1,0xfa,0xe7,0xf7,0x69,0xf7,0xd1,0xf9,0x78,0xfc,0x6d,0xff, +0x41,0x3,0xae,0x4,0xb1,0x3,0xea,0x3,0x25,0x5,0x56,0x4, +0xb9,0x0,0x17,0xfd,0xbb,0xfb,0x6e,0xfb,0x30,0xfb,0x47,0xfb, +0xf3,0xfb,0x8e,0xfe,0xe3,0x1,0x18,0x2,0x92,0x0,0x60,0x1, +0x27,0x3,0xf1,0x2,0x7e,0x1,0x71,0x0,0x65,0xff,0x82,0xfd, +0xe9,0xfb,0x16,0xfc,0x78,0xfd,0x38,0xff,0x49,0x0,0x18,0xff, +0x93,0xfd,0xcc,0xfe,0x6a,0x1,0xf5,0x2,0x5e,0x2,0xb9,0xff, +0xe5,0xfd,0xab,0xfe,0xec,0xff,0xf2,0xff,0x64,0xff,0xf7,0xff, +0x52,0x1,0x8,0x1,0xd7,0xff,0x9c,0xff,0x59,0xff,0xc1,0xfe, +0xb4,0xfd,0x13,0xfc,0x86,0xfc,0x2f,0xff,0x1a,0x1,0x3c,0x2, +0x32,0x3,0x95,0x3,0x15,0x4,0xc0,0x3,0x9f,0x0,0x84,0xfc, +0xe,0xfb,0x53,0xfc,0x76,0xfd,0xeb,0xfc,0xdd,0xfb,0xad,0xfc, +0x32,0x0,0xe1,0x3,0x9e,0x4,0xf2,0x2,0xef,0x1,0x70,0x2, +0x8,0x2,0xaf,0xff,0x12,0xfd,0xfe,0xfa,0xf,0xfa,0x82,0xfb, +0x6a,0xfe,0x90,0x0,0x4d,0x1,0xab,0x1,0xce,0x2,0x32,0x4, +0x80,0x4,0x1,0x3,0x73,0xff,0x7a,0xfb,0x13,0xfa,0x53,0xfb, +0xa8,0xfc,0x79,0xfd,0x1a,0xff,0xfe,0x0,0x2e,0x2,0xbd,0x3, +0x45,0x5,0xf9,0x4,0xbc,0x3,0xa9,0x2,0xa0,0x0,0x29,0xfd, +0xe0,0xf9,0xa0,0xf8,0x5c,0xf9,0x74,0xfb,0x53,0xff,0xa9,0x3, +0xa7,0x5,0xd,0x5,0xe3,0x3,0xf,0x4,0xd4,0x4,0x4,0x3, +0x8d,0xfe,0xf6,0xfa,0xdd,0xf9,0xfb,0xfa,0xcc,0xfd,0xe6,0xff, +0xe0,0xff,0x8e,0x0,0xbf,0x3,0x6c,0x6,0xbd,0x5,0xd5,0x2, +0xbb,0x0,0xd8,0x0,0x1b,0x1,0xe,0xff,0xe6,0xfb,0xeb,0xfa, +0x71,0xfd,0x60,0x1,0x9e,0x3,0xd1,0x3,0xa0,0x3,0xcc,0x3, +0xe9,0x3,0x6b,0x3,0x54,0x2,0xb,0x1,0x58,0x0,0x54,0x0, +0x27,0xff,0xb1,0xfc,0xf,0xfc,0x35,0xfe,0x4d,0x1,0x9b,0x3, +0x9b,0x3,0x28,0x2,0xc,0x2,0x3c,0x3,0x85,0x3,0x1b,0x2, +0xfc,0xff,0x92,0xfe,0x67,0xfe,0xf6,0xfe,0x39,0xff,0xc,0xff, +0x7f,0xff,0x8,0x0,0x54,0xff,0x1b,0xff,0xf0,0x0,0x7e,0x2, +0x58,0x2,0x51,0x2,0x5c,0x2,0xdd,0x0,0x3e,0xff,0xe6,0xfe, +0x23,0xff,0x84,0x0,0x2f,0x2,0x54,0x1,0x6a,0xff,0x0,0xff, +0xff,0xfe,0x36,0xff,0x2a,0x0,0x28,0x0,0x8,0xff,0x24,0xff, +0x2c,0x1,0x63,0x2,0x72,0x0,0x58,0xfe,0x5b,0xff,0xae,0x0, +0x8d,0x0,0xea,0x0,0x37,0x0,0x21,0xfd,0xe9,0xfa,0xfe,0xfa, +0x46,0xfc,0xd7,0xfd,0x76,0xfe,0x27,0xff,0x98,0x1,0x44,0x4, +0xc,0x5,0x3e,0x3,0x48,0x0,0xca,0xfe,0x2f,0xfe,0xb2,0xfc, +0x9,0xfb,0x4e,0xfa,0x5f,0xfb,0xce,0xfd,0xdf,0xff,0x84,0x1, +0x52,0x2,0xcb,0x1,0xf5,0x1,0xc0,0x2,0x64,0x2,0x24,0x1, +0xc,0xff,0x11,0xfd,0xc5,0xfc,0x7c,0xfc,0x89,0xfb,0xda,0xfb, +0xf7,0xfc,0x87,0xfd,0x27,0xfe,0xe9,0xff,0xa5,0x2,0x29,0x4, +0x97,0x3,0x5f,0x3,0xc6,0x2,0xab,0xfe,0x74,0xfa,0x6f,0xfa, +0x35,0xfb,0x6f,0xfa,0xf8,0xfa,0x51,0xfd,0xa3,0x0,0xb0,0x4, +0x89,0x6,0x8c,0x4,0x8f,0x1,0xb7,0xff,0x31,0xfe,0x51,0xfc, +0x1e,0xfb,0x71,0xfb,0x0,0xfd,0xba,0xfe,0xbf,0xfe,0x8f,0xfd, +0x14,0xfe,0x0,0x0,0x75,0x1,0x83,0x2,0x42,0x2,0x77,0x0, +0x65,0xff,0x7d,0xff,0x46,0xff,0x41,0xfe,0xd3,0xfc,0xa0,0xfb, +0x84,0xfb,0x2a,0xfd,0x7c,0xff,0x5d,0x0,0xfa,0xff,0xf5,0xff, +0xfe,0x0,0x93,0x2,0xa0,0x2,0x1c,0x0,0x8d,0xfd,0x2b,0xfd, +0x2,0xfe,0x52,0xfe,0xb9,0xfd,0x43,0xfd,0xff,0xfd,0x95,0xff, +0xf4,0x0,0xc3,0x1,0xfd,0x1,0x5d,0x1,0x4c,0x0,0x28,0xff, +0x8b,0xfd,0xe9,0xfb,0x40,0xfb,0xf5,0xfb,0x63,0xfe,0x8f,0x1, +0x23,0x3,0x80,0x2,0xa,0x1,0x49,0x0,0xf7,0x0,0x11,0x2, +0x78,0x1,0x44,0xff,0xdd,0xfd,0xb6,0xfd,0x26,0xfe,0xed,0xff, +0x5,0x1,0xbc,0xfe,0x9b,0xfc,0x97,0xfe,0x56,0x2,0xf5,0x3, +0xe7,0x2,0x7c,0x1,0xd8,0x0,0x12,0x0,0x1a,0x0,0x8,0x1, +0x34,0x0,0x9f,0xfe,0x10,0xff,0x5c,0x0,0xf9,0x0,0xed,0x0, +0x87,0x0,0x2a,0x1,0xeb,0x2,0x5f,0x3,0x67,0x1,0xcb,0xfe, +0x46,0xfe,0x66,0x0,0x5b,0x2,0xf1,0x1,0x8f,0x0,0x6a,0x0, +0xcd,0x1,0x46,0x3,0x34,0x3,0xd6,0x1,0xdd,0x0,0xf5,0x0, +0x99,0x1,0xf0,0x1,0x65,0x1,0x64,0x0,0xa8,0xff,0xd3,0xff, +0x7c,0x1,0xb6,0x3,0xe9,0x4,0xfd,0x4,0x50,0x4,0x1b,0x3, +0xf5,0x1,0xe5,0x0,0x3,0x0,0x17,0x0,0xf1,0x0,0xdb,0x1, +0xc3,0x2,0x18,0x3,0x90,0x2,0x86,0x2,0x36,0x3,0xf3,0x2, +0xce,0x1,0x28,0x1,0x8,0x1,0x61,0x1,0x2c,0x2,0xcc,0x2, +0x9b,0x3,0x81,0x4,0x3b,0x4,0x27,0x3,0x43,0x2,0x74,0x1, +0x1d,0x1,0x17,0x1,0x37,0x0,0x48,0xff,0xe0,0xff,0x6e,0x1, +0xea,0x2,0x64,0x4,0x70,0x5,0x14,0x5,0xd3,0x3,0x8,0x3, +0x64,0x2,0x41,0x1,0x62,0x0,0xf6,0xff,0x68,0xff,0xc7,0xfe, +0x7b,0xfe,0x50,0xff,0x1c,0x1,0x18,0x2,0x26,0x2,0x27,0x2, +0x9d,0x1,0xe4,0x0,0x86,0x0,0xae,0xff,0x85,0xfe,0xd1,0xfd, +0xd3,0xfd,0x25,0xfe,0xad,0xfd,0x3d,0xfd,0xf2,0xfd,0x5a,0xfe, +0x78,0xfe,0x1e,0xff,0xef,0xfe,0x21,0xfe,0xc6,0xfd,0x7e,0xfd, +0x85,0xfd,0x15,0xfd,0x3d,0xfb,0x22,0xfa,0x12,0xfb,0x5e,0xfc, +0xbe,0xfc,0x55,0xfc,0xfa,0xfb,0x28,0xfc,0x55,0xfc,0x53,0xfc, +0x52,0xfc,0xe3,0xfb,0xe6,0xfa,0x0,0xfa,0x99,0xf9,0xa6,0xf9, +0xb5,0xf9,0xfc,0xf8,0x6c,0xf8,0xe4,0xf9,0x27,0xfc,0xe3,0xfc, +0x72,0xfc,0xb8,0xfb,0x1c,0xfb,0xd7,0xfa,0x38,0xfa,0x49,0xf9, +0xa,0xf9,0x8f,0xf9,0x19,0xfa,0x4,0xfa,0xff,0xf9,0xee,0xfa, +0xfc,0xfb,0xa2,0xfc,0xd7,0xfc,0x1,0xfc,0x18,0xfb,0x14,0xfb, +0xec,0xfa,0x68,0xfa,0x71,0xfa,0x6a,0xfb,0xef,0xfc,0x2,0xfe, +0x87,0xfe,0xbf,0xfe,0xd6,0xfd,0x6,0xfc,0x14,0xfb,0x83,0xfb, +0x4d,0xfc,0x13,0xfd,0x59,0xfe,0x70,0xff,0x47,0xff,0xd0,0xfe, +0x2f,0xff,0xe4,0xff,0xb,0x0,0x8f,0xff,0x6b,0xff,0x4d,0x0, +0x3a,0x1,0x2,0x1,0xe5,0xff,0x3b,0xff,0x75,0xff,0xa5,0xff, +0xce,0xff,0x69,0x0,0xa3,0x0,0xa0,0x0,0xd2,0x1,0x24,0x4, +0xd2,0x5,0x77,0x5,0xdb,0x3,0x49,0x3,0x7,0x4,0x98,0x3, +0xd3,0x0,0x54,0xfe,0x91,0xfe,0x4a,0x0,0x97,0x1,0x86,0x2, +0x65,0x3,0x9c,0x4,0x6d,0x6,0x5e,0x7,0x5c,0x6,0x74,0x4, +0xce,0x2,0x15,0x2,0x79,0x2,0xcd,0x2,0x50,0x2,0xc5,0x1, +0x81,0x1,0xf8,0x1,0xf3,0x3,0xc3,0x5,0x7e,0x5,0xee,0x4, +0xc2,0x5,0x8a,0x6,0x52,0x6,0x79,0x5,0x7a,0x3,0xe0,0x0, +0x5d,0x0,0x25,0x2,0x27,0x3,0xb2,0x2,0xac,0x2,0x9c,0x3, +0x43,0x5,0xc8,0x6,0xe,0x6,0xa,0x3,0x6b,0x0,0x15,0x0, +0x7b,0x1,0x9d,0x2,0xc0,0x2,0x2f,0x3,0x6e,0x4,0xb1,0x5, +0x10,0x6,0x48,0x5,0x42,0x4,0x14,0x3,0xbd,0x0,0x49,0xfe, +0x62,0xfd,0x77,0xfd,0xe5,0xfd,0x89,0xff,0xde,0x2,0x38,0x6, +0xab,0x7,0x98,0x7,0xcc,0x6,0x45,0x5,0x87,0x3,0x8f,0x1, +0x1e,0xff,0xee,0xfc,0x2c,0xfb,0x77,0xfa,0x3a,0xfc,0xb7,0xff, +0xef,0x2,0x90,0x4,0x61,0x4,0x24,0x4,0x8e,0x4,0xb,0x4, +0x8b,0x2,0x81,0x0,0xb2,0xfd,0xbc,0xfb,0x95,0xfb,0x72,0xfb, +0xfc,0xfa,0x5,0xfc,0x8c,0xfe,0xd8,0x0,0xa1,0x2,0x11,0x4, +0xca,0x3,0x53,0x1,0x1a,0xfe,0x8e,0xfb,0xd4,0xfa,0xb6,0xfb, +0xa3,0xfc,0x7e,0xfd,0x8d,0xfe,0x21,0xff,0xba,0xff,0xc9,0x0, +0xef,0x0,0x3d,0xff,0xe1,0xfc,0xf8,0xfb,0xb2,0xfc,0x8,0xfd, +0x89,0xfc,0x8f,0xfc,0xf,0xfd,0xb3,0xfd,0x3c,0xff,0xcf,0x0, +0x36,0x0,0xe6,0xfd,0x83,0xfc,0xae,0xfc,0xb6,0xfc,0x9d,0xfb, +0x9a,0xfa,0x72,0xfb,0xdc,0xfd,0xb8,0xff,0xc0,0xff,0xdd,0xfe, +0x8f,0xfe,0x5f,0xfe,0x15,0xfd,0x95,0xfb,0x28,0xfb,0xe6,0xfb, +0xa8,0xfd,0x20,0xff,0xfd,0xfe,0x5a,0xfe,0x9f,0xfe,0xc8,0xff, +0xf5,0x0,0xa8,0x0,0xea,0xfe,0x91,0xfd,0x9,0xfd,0xae,0xfc, +0xd8,0xfc,0xbb,0xfd,0x89,0xfe,0xbf,0xfe,0x15,0xff,0x9,0x0, +0x8b,0x0,0x21,0x0,0xc2,0xff,0x5b,0xff,0x6f,0xfe,0x4,0xfe, +0x3d,0xfe,0xc2,0xfd,0x11,0xfd,0xd0,0xfd,0xa3,0xff,0x1e,0x1, +0x9f,0x1,0x2a,0x1,0x2a,0x0,0x38,0xff,0x8e,0xfe,0xbf,0xfd, +0x67,0xfc,0x53,0xfb,0xc1,0xfb,0xd3,0xfd,0xaa,0x0,0x9,0x3, +0x20,0x4,0xd3,0x3,0x53,0x2,0xd5,0x0,0x65,0x0,0xd4,0xff, +0x10,0xfe,0x2,0xfc,0xd3,0xfa,0x62,0xfb,0x72,0xfd,0x53,0xff, +0x7d,0x0,0xda,0x1,0x95,0x3,0xd9,0x4,0x9e,0x4,0xf3,0x2, +0x9,0x1,0x57,0xff,0xb2,0xfd,0x43,0xfc,0x47,0xfb,0xcd,0xfa, +0xb4,0xfa,0xa0,0xfb,0xc6,0xfe,0xa,0x3,0xab,0x5,0xce,0x5, +0x97,0x4,0xc9,0x3,0xdd,0x3,0xb0,0x2,0xfe,0xfe,0xd2,0xfa, +0xb1,0xf8,0xa5,0xf9,0xbe,0xfc,0x3e,0xff,0xf5,0xff,0x32,0x1, +0x81,0x4,0x85,0x7,0xcf,0x7,0xeb,0x5,0xb2,0x2,0xc8,0xfe, +0x30,0xfc,0x36,0xfb,0xfc,0xf9,0x52,0xf9,0xdc,0xfb,0xce,0x0, +0x77,0x4,0x64,0x5,0xdf,0x5,0x67,0x7,0xd9,0x7,0x34,0x5, +0xa3,0x0,0x88,0xfc,0x46,0xfa,0x24,0xfa,0x75,0xfb,0x2a,0xfd, +0xf8,0xfe,0xd,0x1,0x3b,0x3,0xdc,0x5,0xde,0x8,0xc3,0x9, +0xaf,0x6,0x87,0x1,0x52,0xfd,0x6c,0xfb,0x53,0xfb,0xad,0xfb, +0xce,0xfb,0xb7,0xfc,0xff,0xff,0xa9,0x4,0x79,0x7,0x77,0x7, +0xa1,0x5,0xd5,0x2,0xb4,0x0,0x59,0xff,0x3e,0xfd,0x55,0xfb, +0xdc,0xfa,0xc1,0xfb,0xd,0xff,0x85,0x3,0x99,0x5,0x6b,0x5, +0xe0,0x4,0xbc,0x3,0x2a,0x2,0xd3,0x0,0xb8,0xfe,0xb1,0xfb, +0x10,0xfa,0xff,0xfa,0xbb,0xfc,0xe,0xfe,0xb8,0xff,0x24,0x2, +0xea,0x4,0x72,0x7,0x72,0x8,0xbb,0x6,0x9,0x3,0x55,0xff, +0x78,0xfc,0x59,0xfa,0x2e,0xf9,0x6c,0xf9,0xe8,0xfb,0x1c,0x0, +0x1d,0x3,0xe1,0x3,0x34,0x4,0x31,0x5,0x93,0x6,0x22,0x6, +0xf6,0x1,0x3,0xfd,0x75,0xfa,0xc0,0xf9,0xd3,0xfa,0x9,0xfd, +0xdd,0xfd,0xe,0xfe,0x9a,0x0,0xae,0x4,0x58,0x6,0xef,0x4, +0xcc,0x3,0x7,0x3,0x1f,0x0,0xb2,0xfc,0xb3,0xfa,0x58,0xf9, +0x8f,0xf9,0xbb,0xfb,0xee,0xfd,0x39,0x0,0x41,0x3,0x7d,0x5, +0xe3,0x5,0xe3,0x4,0xb1,0x2,0x47,0xff,0x15,0xfc,0xdc,0xfa, +0xdd,0xfa,0x1e,0xfb,0x68,0xfc,0x39,0xfe,0xa2,0xff,0x83,0x1, +0x83,0x3,0x0,0x4,0xe6,0x2,0xb2,0x0,0x1c,0xfe,0xbb,0xfc, +0xcf,0xfc,0xca,0xfc,0xe1,0xfb,0xe7,0xfa,0x22,0xfb,0x24,0xfd, +0x2a,0x0,0xba,0x2,0xa3,0x3,0x9b,0x2,0xbe,0x0,0xc2,0xff, +0xad,0xff,0xe,0xff,0x72,0xfd,0xa1,0xfb,0xc5,0xfa,0xcb,0xfb, +0xcc,0xfd,0xd9,0xfe,0xdf,0xfe,0x51,0xff,0x3e,0x1,0xe0,0x3, +0x7e,0x4,0x2,0x2,0xab,0xfe,0x92,0xfc,0x11,0xfc,0xab,0xfc, +0x59,0xfd,0xad,0xfd,0xce,0xfd,0xfe,0xfd,0x43,0xff,0x9f,0x1, +0x4e,0x3,0x3f,0x3,0xc8,0x1,0x56,0x0,0x1f,0x0,0xbb,0xff, +0x75,0xfd,0x78,0xfa,0xfd,0xf8,0x33,0xfa,0x61,0xfd,0x38,0x0, +0x73,0x1,0x9b,0x1,0x9b,0x1,0xe7,0x1,0x4c,0x2,0x68,0x2, +0x99,0x1,0xae,0xff,0xe,0xfe,0x63,0xfd,0x71,0xfc,0x5f,0xfb, +0xda,0xfb,0x5e,0xfe,0xc1,0x1,0x21,0x4,0x35,0x4,0x99,0x2, +0x49,0x1,0xd9,0x0,0x73,0xff,0xee,0xfc,0x80,0xfb,0x87,0xfb, +0x72,0xfc,0x7e,0xfe,0xaf,0x0,0xae,0x1,0xa8,0x1,0xcc,0x1, +0x8e,0x2,0x3a,0x2,0x25,0x0,0x4e,0xfe,0x60,0xfd,0x3,0xfd, +0x99,0xfd,0x3c,0xfe,0x29,0xfe,0x35,0xfe,0xf3,0xfe,0x30,0x0, +0xf6,0x0,0x12,0x1,0xa5,0x1,0xe6,0x1,0xca,0x0,0xcb,0xff, +0x72,0xff,0x1b,0xff,0x5e,0xff,0x10,0x0,0xf8,0xff,0x40,0xff, +0x15,0xff,0x58,0xff,0x2c,0xff,0x57,0xff,0x7c,0x0,0x5d,0x1, +0xaa,0x1,0xc1,0x1,0x17,0x1,0x67,0x0,0xcb,0x0,0xb5,0x1, +0x52,0x2,0xb9,0x1,0xbc,0xff,0xe8,0xfd,0xbe,0xfc,0xf1,0xfb, +0x60,0xfc,0x8c,0xfd,0x87,0xfe,0xcf,0x0,0xb9,0x3,0xdd,0x3, +0x9,0x2,0x8c,0x1,0x58,0x2,0x15,0x3,0xc2,0x2,0x8f,0x0, +0xeb,0xfd,0x2,0xfc,0x6b,0xfa,0x98,0xfa,0x0,0xfd,0x11,0xff, +0x8d,0x0,0xee,0x2,0x60,0x5,0x8a,0x6,0x9e,0x5,0x35,0x2, +0xea,0xfd,0x62,0xfb,0x4c,0xfb,0x9,0xfc,0xa5,0xfc,0x1b,0xfe, +0x3f,0x0,0xbd,0x1,0x19,0x3,0x7b,0x4,0x9e,0x3,0x13,0x0, +0x83,0xfd,0xba,0xfe,0x29,0x1,0xae,0x0,0xa4,0xfd,0x68,0xfb, +0x20,0xfc,0xa1,0xff,0x66,0x3,0x96,0x4,0xb9,0x2,0x54,0xff, +0xd6,0xfc,0xf5,0xfc,0xaa,0xfe,0xdb,0xff,0x12,0x0,0x71,0x0, +0x14,0x2,0xd1,0x3,0x13,0x3,0x57,0x0,0xa6,0xfe,0xc2,0xfe, +0x2d,0xff,0xeb,0xfe,0x9c,0xfd,0x36,0xfc,0xfa,0xfc,0xb3,0xff, +0x94,0x1,0xb1,0x1,0x9b,0x1,0xab,0x2,0x1f,0x4,0x95,0x3, +0xec,0x0,0xb4,0xfe,0x95,0xfd,0xb6,0xfc,0x12,0xfc,0x31,0xfb, +0xb9,0xfa,0x20,0xfd,0xe9,0x1,0x74,0x5,0xf2,0x5,0xb7,0x4, +0x9d,0x3,0x58,0x2,0xdf,0xff,0x4b,0xfd,0xa5,0xfb,0x68,0xfa, +0x3c,0xfa,0x4f,0xfc,0xc0,0xff,0xbd,0x2,0x58,0x4,0x92,0x4, +0xc7,0x3,0xdb,0x2,0xb4,0x2,0x20,0x2,0x83,0xff,0xb7,0xfc, +0xea,0xfb,0x1c,0xfc,0xe6,0xfc,0xe8,0xfe,0x81,0x0,0xb0,0x0, +0x2b,0x1,0x79,0x2,0xa,0x3,0x65,0x2,0xc7,0x1,0xa1,0x1, +0x86,0x0,0xc,0xfe,0x5e,0xfc,0xed,0xfc,0x7a,0xfe,0x34,0xff, +0xf2,0xfe,0x81,0xff,0x3,0x2,0x90,0x4,0x90,0x4,0xfd,0x1, +0xb5,0xfe,0x74,0xfc,0x2e,0xfc,0xa1,0xfd,0x26,0xff,0x84,0xff, +0xe,0x0,0x93,0x2,0x81,0x5,0x6b,0x5,0xef,0x1,0x4,0xfe, +0x38,0xfc,0xa,0xfd,0xaa,0xfe,0x2c,0xfe,0x1b,0xfc,0x4e,0xfc, +0xa1,0xff,0xa4,0x3,0xa,0x6,0x3e,0x5,0x6a,0x2,0x8f,0x0, +0xdf,0xff,0x10,0xff,0xf1,0xfd,0x87,0xfc,0x98,0xfb,0x36,0xfc, +0x32,0xfe,0x8d,0x0,0xa3,0x1,0x18,0x1,0x16,0x1,0x9d,0x2, +0x3a,0x4,0x7c,0x4,0x11,0x3,0xb6,0x0,0xf8,0xfd,0x79,0xfb, +0x4,0xfb,0x1c,0xfc,0xe,0xfc,0xcc,0xfb,0x66,0xfe,0x27,0x3, +0xc7,0x6,0x65,0x7,0x94,0x5,0x2d,0x3,0x7e,0x1,0x81,0x0, +0x60,0xff,0x25,0xfd,0xc7,0xf9,0x71,0xf7,0xfd,0xf8,0xc9,0xfd, +0xdb,0x1,0xd3,0x2,0x4f,0x2,0x35,0x3,0x1e,0x5,0x29,0x5, +0xa4,0x3,0x8b,0x2,0xc3,0x0,0xfc,0xfc,0x7,0xf9,0xea,0xf7, +0x36,0xfa,0xe6,0xfc,0x0,0xfe,0xbb,0xfe,0x6,0x0,0x71,0x2, +0x81,0x5,0x87,0x6,0xae,0x4,0x24,0x1,0x5e,0xfd,0x40,0xfc, +0xa5,0xfd,0x97,0xfd,0xd3,0xfb,0x42,0xfb,0x15,0xfd,0x45,0x0, +0xf7,0x1,0xbf,0x0,0xb7,0xfe,0x5c,0xfe,0x97,0x0,0xbc,0x3, +0x1d,0x4,0xeb,0x0,0x79,0xfd,0x8b,0xfc,0xe2,0xfd,0xd2,0xff, +0x3c,0x0,0xe,0xfd,0xca,0xf8,0x17,0xfa,0xf3,0x0,0x9a,0x5, +0xfc,0x4,0xb6,0x2,0x6,0x1,0xef,0xff,0xaf,0xff,0x76,0xff, +0xa4,0xfd,0xba,0xfa,0x5f,0xf9,0xef,0xfa,0xe0,0xfd,0xe3,0xff, +0x71,0x0,0xf8,0x0,0xfb,0x2,0xbb,0x5,0x59,0x6,0x8e,0x3, +0x52,0xff,0xa3,0xfb,0x7d,0xf9,0x2f,0xfa,0xf2,0xfc,0x48,0xfe, +0x47,0xfd,0x40,0xfd,0xa,0x0,0x76,0x3,0x2d,0x5,0x34,0x4, +0x8e,0x0,0x4e,0xfd,0xcd,0xfd,0x72,0x0,0xde,0x1,0x46,0x1, +0x43,0xff,0xa,0xfd,0x9a,0xfc,0xe8,0xfe,0x21,0x1,0x47,0xff, +0x54,0xfb,0xbf,0xfa,0xf7,0xfd,0xd7,0x1,0xd2,0x3,0x26,0x2, +0xab,0xfe,0x24,0xfe,0x3d,0x1,0x99,0x3,0xb5,0x2,0xa5,0x0, +0x85,0xff,0x8,0xff,0x9,0xff,0x8d,0xff,0xdb,0xfe,0xf1,0xfb, +0x90,0xf9,0xd4,0xfa,0x87,0xfe,0x98,0x1,0x1d,0x3,0xa1,0x3, +0xfc,0x3,0x9e,0x4,0x44,0x5,0x68,0x5,0x58,0x3,0x99,0xfe, +0x48,0xfa,0x98,0xf8,0x47,0xf9,0x89,0xfb,0x3c,0xfd,0x2f,0xfe, +0xd1,0x0,0xb6,0x4,0xd4,0x7,0x36,0x9,0x88,0x7,0xfb,0x2, +0x19,0xfe,0x65,0xfb,0x6c,0xfb,0xe8,0xfb,0x13,0xfb,0x37,0xfa, +0x23,0xfb,0xc4,0xfe,0x2a,0x4,0xc2,0x7,0xa8,0x7,0x32,0x6, +0x75,0x5,0x39,0x4,0x57,0x1,0xca,0xfd,0x8f,0xfa,0xbc,0xf8, +0xf0,0xf8,0xef,0xf9,0x3a,0xfc,0x44,0x1,0xa0,0x6,0x6a,0x9, +0x2d,0x9,0x43,0x6,0x6f,0x2,0x7b,0xff,0xd8,0xfd,0x48,0xfd, +0x2e,0xfc,0xa1,0xfa,0x56,0xfb,0x1b,0xfe,0x5c,0x0,0x7a,0x1, +0x3b,0x2,0x34,0x3,0x6b,0x4,0x7a,0x5,0xc8,0x4,0xc4,0x0, +0x3c,0xfc,0x10,0xfb,0xfc,0xfb,0x87,0xfc,0xb8,0xfc,0xf2,0xfc, +0xef,0xfd,0xc6,0x0,0xbb,0x4,0x9b,0x6,0x84,0x4,0x57,0x1, +0x2,0x0,0x88,0xff,0x3b,0xff,0x8a,0xff,0x32,0xff,0x6b,0xfd, +0x27,0xfc,0xc6,0xfd,0x6d,0x1,0x92,0x3,0x7f,0x2,0x8e,0xff, +0x30,0xfd,0x5d,0xfd,0x4d,0xff,0xdf,0xff,0x2c,0xfe,0xf1,0xfc, +0x21,0xfe,0x48,0x0,0x1a,0x2,0x66,0x3,0xcf,0x2,0xe0,0x0, +0x7b,0x0,0x1,0x1,0x9c,0xff,0xeb,0xfb,0x9c,0xf7,0xf7,0xf5, +0x1a,0xf9,0x8d,0xfe,0xb9,0x2,0xa5,0x4,0x5,0x5,0x38,0x5, +0x9,0x6,0x27,0x6,0x56,0x3,0x5a,0xfd,0x1a,0xf7,0x30,0xf4, +0xc,0xf6,0xbb,0xfa,0x2,0xfe,0xb7,0xfe,0x4f,0x0,0xca,0x3, +0x71,0x6,0x7d,0x7,0xf1,0x6,0x7,0x4,0x76,0x0,0x22,0xfe, +0x3c,0xfc,0xbf,0xfa,0x52,0xfa,0x9d,0xf9,0x46,0xf8,0xc2,0xf8, +0xac,0xfc,0x39,0x2,0xdb,0x5,0x9b,0x5,0xed,0x2,0xe,0x1, +0x76,0x1,0x61,0x2,0x95,0x1,0xde,0xfe,0xb5,0xfb,0xcb,0xfa, +0x72,0xfd,0x9d,0x0,0x13,0x1,0x7f,0xff,0x6d,0xfd,0x86,0xfc, +0xa5,0xfe,0xcf,0x1,0x38,0x2,0x7c,0x0,0xa1,0xff,0x46,0x0, +0x72,0x1,0x8c,0x2,0xa8,0x2,0xa4,0x0,0x0,0xfe,0x1a,0xfe, +0x4f,0x0,0xe2,0x0,0x5f,0xff,0xfb,0xfc,0xf7,0xf9,0x53,0xf9, +0xf4,0xfd,0x3e,0x4,0xfa,0x6,0xfc,0x5,0xca,0x3,0x98,0x2, +0x10,0x3,0x3f,0x3,0xde,0x0,0xe6,0xfb,0xa5,0xf6,0xcd,0xf4, +0x1d,0xf8,0x22,0xfe,0x77,0x2,0xd7,0x2,0xac,0x2,0xdb,0x6, +0x8e,0xc,0x3b,0xd,0x33,0x8,0x8f,0x0,0xbc,0xf9,0xaf,0xf6, +0xf2,0xf6,0x19,0xf8,0x68,0xf8,0xc2,0xf7,0xff,0xf9,0xe2,0x1, +0xa6,0xa,0x19,0xe,0xf5,0xb,0x2d,0x8,0x8c,0x5,0x20,0x3, +0xde,0xff,0x5b,0xfc,0xe8,0xf7,0x53,0xf3,0xba,0xf2,0x8b,0xf7, +0x6f,0xfe,0x99,0x3,0xc3,0x5,0x4c,0x6,0x17,0x7,0x48,0x8, +0x53,0x8,0xaa,0x5,0x91,0x0,0x39,0xfb,0x56,0xf8,0x59,0xf9, +0x69,0xfc,0x75,0xfd,0xc7,0xfb,0xbc,0xfb,0xc6,0xff,0xa4,0x4, +0x12,0x7,0xd5,0x6,0x92,0x4,0xb8,0x1,0xb1,0xff,0x89,0xfe, +0x6,0xfe,0x4e,0xfd,0xa7,0xfb,0xb6,0xfa,0x36,0xfc,0x61,0xff, +0xf1,0x1,0x6f,0x2,0x2d,0x2,0x7e,0x2,0x3e,0x2,0x91,0x1, +0x67,0x1,0x1b,0x0,0x5d,0xfd,0xe3,0xfb,0xad,0xfc,0x5f,0xfe, +0x87,0xff,0x7c,0xff,0x39,0xff,0xfa,0xff,0x1a,0x1,0xb0,0x1, +0x9c,0x1,0xf,0x0,0x8a,0xfd,0x47,0xfd,0x4,0x0,0xd9,0x1, +0x8f,0x0,0x5c,0xfe,0x90,0xfd,0xbc,0xfe,0xf6,0x0,0x68,0x1, +0x86,0xff,0xe0,0xfe,0xad,0xff,0xb2,0xfe,0x54,0xfd,0x28,0xfe, +0x57,0xff,0x3f,0xff,0x93,0xfe,0x91,0xfe,0x69,0x0,0xac,0x2, +0xc4,0x2,0x90,0x1,0x24,0x1,0x8b,0x1,0xfb,0x1,0x66,0x1, +0xde,0xfe,0x3c,0xfb,0xdd,0xf8,0x3b,0xf9,0xb6,0xfb,0x8a,0xfe, +0x99,0x0,0x59,0x2,0x81,0x4,0x6d,0x6,0xb8,0x6,0x96,0x4, +0xf9,0x0,0x23,0xfe,0xd8,0xfc,0x2c,0xfc,0x5e,0xfb,0xda,0xf9, +0xa5,0xf8,0x63,0xfa,0x31,0xff,0xb0,0x3,0xd8,0x4,0x41,0x3, +0x58,0x2,0xee,0x3,0x5c,0x6,0x7,0x6,0xb8,0x0,0x8,0xfa, +0x5d,0xf7,0xf6,0xf7,0x93,0xf8,0x8e,0xf9,0xe4,0xfc,0xda,0x2, +0xd2,0x7,0xbf,0x7,0x94,0x4,0x6d,0x2,0x80,0x1,0x6c,0x0, +0x47,0xfe,0x68,0xfb,0x1f,0xfa,0xa6,0xfa,0xec,0xfa,0x88,0xfb, +0xba,0xfd,0xfc,0xff,0x7f,0x1,0x4a,0x3,0xfe,0x4,0xdd,0x4, +0x3,0x3,0xc2,0x1,0x4c,0x1,0x12,0xff,0x8e,0xfb,0xe5,0xf9, +0x91,0xfa,0x20,0xfc,0x30,0xfd,0x21,0xfd,0xf4,0xfd,0x7,0x1, +0x24,0x4,0x6f,0x5,0xdf,0x4,0xe1,0x2,0xc4,0x0,0x1c,0xff, +0x51,0xfd,0xc3,0xfb,0x28,0xfb,0xb1,0xfb,0xb2,0xfd,0xa8,0x0, +0xe4,0x2,0x64,0x3,0x97,0x2,0x61,0x1,0x88,0x0,0x77,0x0, +0x2d,0x0,0x15,0xfe,0x34,0xfb,0xab,0xfa,0x30,0xfd,0x60,0x0, +0x2c,0x2,0x39,0x2,0x87,0x1,0xa6,0x1,0x42,0x2,0xe0,0x1, +0xc,0x1,0x72,0x0,0x43,0xff,0x5,0xfe,0x30,0xfe,0x59,0xff, +0x9a,0xff,0x53,0xfe,0x95,0xfd,0xed,0xfe,0xf0,0x0,0x6d,0x2, +0x58,0x3,0xd,0x3,0x6,0x2,0x94,0x1,0x37,0x1,0xd0,0xff, +0x83,0xfd,0x9b,0xfb,0xa5,0xfb,0xb4,0xfd,0x1a,0x0,0xa4,0x1, +0xae,0x2,0x81,0x3,0xa8,0x3,0x43,0x3,0xe8,0x2,0x7b,0x2, +0x86,0x1,0xed,0xff,0x53,0xfe,0x6d,0xfd,0xa8,0xfc,0xdf,0xfb, +0x86,0xfc,0xe,0xfe,0x6d,0xfe,0x60,0xff,0x39,0x3,0x4e,0x7, +0x9e,0x8,0xcb,0x7,0xdf,0x5,0x46,0x3,0x5c,0x0,0x1c,0xfd, +0x4f,0xfa,0x89,0xf8,0xa5,0xf7,0x84,0xf8,0x60,0xfb,0x80,0xff, +0xb1,0x4,0x94,0x8,0xc6,0x8,0x83,0x7,0xd3,0x6,0xe3,0x4, +0xf5,0x0,0x11,0xfd,0x39,0xfa,0x12,0xf8,0x56,0xf8,0x6b,0xfc, +0x10,0x1,0x98,0x3,0xc,0x5,0x21,0x5,0xac,0x3,0xe3,0x2, +0xd2,0x2,0x5,0x2,0x5e,0x0,0xe4,0xfd,0xdd,0xfb,0x2f,0xfc, +0xe2,0xfd,0x4,0xff,0xa4,0xff,0xca,0x0,0xd4,0x2,0x53,0x4, +0x8d,0x3,0x8d,0x1,0x35,0x0,0x9b,0xff,0xc5,0xff,0x71,0x0, +0xff,0xff,0x88,0xfe,0xc1,0xfd,0xa8,0xfd,0xab,0xfd,0x45,0xfe, +0xf4,0xff,0x24,0x2,0xe9,0x2,0xfb,0x1,0xfe,0x1,0xa0,0x3, +0x3f,0x4,0x27,0x2,0xa0,0xfe,0x96,0xfc,0xb5,0xfc,0xb4,0xfc, +0x49,0xfc,0xcb,0xfc,0x8c,0xfd,0xb1,0xfe,0x9f,0x1,0xf2,0x4, +0x51,0x6,0x82,0x5,0x72,0x3,0x70,0x1,0xce,0xff,0x76,0xfd, +0xd8,0xfa,0xda,0xf9,0x9b,0xfa,0x97,0xfb,0x68,0xfc,0x9c,0xfe, +0x83,0x2,0x53,0x5,0x86,0x5,0xc6,0x4,0x27,0x4,0xe7,0x2, +0xd7,0xff,0xb8,0xfb,0xa9,0xf9,0xc0,0xf9,0x29,0xf9,0xcd,0xf8, +0xd1,0xfa,0x3d,0xfe,0xef,0x1,0x16,0x5,0x76,0x6,0xd8,0x5, +0xf7,0x3,0x55,0x2,0x84,0x1,0xaf,0xff,0x51,0xfc,0x46,0xf9, +0xd6,0xf7,0x4e,0xf8,0xcb,0xf9,0xdc,0xfa,0x3c,0xfc,0x13,0xff, +0xe1,0x1,0x43,0x3,0xf7,0x3,0xed,0x3,0x1b,0x2,0x43,0xff, +0xf5,0xfc,0xcf,0xfb,0x9a,0xfb,0xf1,0xfa,0x4e,0xf9,0x6,0xf9, +0xb7,0xfb,0xfb,0xff,0xa3,0x3,0xf5,0x4,0x53,0x3,0x5,0x0, +0xb7,0xfc,0xdb,0xf9,0xdb,0xf7,0x39,0xf8,0xdc,0xfa,0xc,0xfd, +0x2,0xfe,0xb3,0xff,0x9b,0x2,0x18,0x5,0x28,0x5,0x45,0x2, +0xcf,0xfe,0x2c,0xfd,0xad,0xfc,0x8e,0xfb,0xb2,0xf9,0xb3,0xf8, +0xc3,0xf9,0x9,0xfc,0x7a,0xfe,0xf6,0x0,0x71,0x2,0x47,0x2, +0x73,0x2,0x30,0x4,0x49,0x5,0x56,0x3,0xb1,0xfe,0x28,0xfa, +0x7a,0xf8,0x9d,0xf9,0xba,0xfb,0x79,0xfd,0x78,0xfe,0xc2,0xff, +0x2,0x2,0x90,0x3,0xae,0x3,0x31,0x3,0x89,0x1,0x55,0xff, +0x9d,0xff,0x21,0x2,0x12,0x3,0x8,0x1,0xe1,0xfd,0xdb,0xfb, +0x8d,0xfc,0x95,0xff,0x34,0x2,0x88,0x2,0x70,0x1,0xc9,0x0, +0x8d,0x1,0x1,0x3,0x8e,0x3,0xbc,0x2,0x8c,0x1,0xa,0x1, +0x37,0x1,0x90,0x1,0xd9,0x1,0xc3,0x1,0x61,0x1,0x4e,0x1, +0x29,0x1,0x8a,0x0,0x1d,0x0,0x52,0x0,0x7b,0x1,0x64,0x3, +0x81,0x4,0x4e,0x4,0x92,0x3,0x99,0x2,0xf4,0x1,0x30,0x2, +0xb4,0x2,0x8f,0x2,0x89,0x1,0xb1,0x0,0x14,0x1,0x1f,0x2, +0xee,0x2,0x2a,0x3,0xb7,0x2,0x54,0x2,0xc2,0x2,0x7b,0x3, +0xc6,0x3,0x97,0x3,0x8,0x3,0x4f,0x2,0xe0,0x1,0xcc,0x1, +0xec,0x1,0x20,0x2,0xdd,0x1,0x7a,0x1,0xfe,0x1,0x69,0x2, +0xc7,0x1,0x85,0x1,0x8,0x2,0x42,0x2,0x54,0x2,0x77,0x2, +0x85,0x2,0xcb,0x2,0x4c,0x3,0x85,0x3,0x8,0x3,0x33,0x2, +0xde,0x1,0xb8,0x1,0xdb,0x0,0x87,0xff,0x93,0xfe,0x77,0xfe, +0x6,0xff,0xb6,0xff,0x5e,0x0,0x3c,0x1,0x8b,0x2,0xc4,0x3, +0xdd,0x3,0xfd,0x2,0xb6,0x1,0xb4,0xff,0xc4,0xfd,0x5a,0xfd, +0x6a,0xfd,0x79,0xfc,0xb5,0xfb,0x58,0xfc,0xb2,0xfd,0x3c,0xff, +0xf3,0x0,0xe2,0x1,0x47,0x1,0x13,0x0,0x3f,0xff,0x22,0xfe, +0x2c,0xfc,0x38,0xfa,0x4,0xf9,0x99,0xf8,0x36,0xf9,0xb8,0xfa, +0x36,0xfc,0x54,0xfd,0x96,0xfe,0xf1,0xff,0x5b,0x0,0xa3,0xff, +0x9c,0xfe,0x2b,0xfd,0xea,0xfa,0xa9,0xf8,0x73,0xf7,0x81,0xf7, +0x11,0xf8,0x8f,0xf8,0xbe,0xf9,0x2b,0xfc,0x16,0xff,0x33,0x1, +0x64,0x1,0x9,0x0,0x54,0xfe,0x67,0xfc,0x81,0xfa,0x22,0xf9, +0x23,0xf8,0xa0,0xf7,0xb7,0xf7,0x81,0xf8,0x7c,0xfa,0xfc,0xfc, +0xf6,0xfe,0x87,0x0,0x64,0x1,0x1,0x1,0xdf,0xff,0xa0,0xfe, +0x26,0xfd,0x1e,0xfb,0xff,0xf8,0x4d,0xf7,0x37,0xf6,0x23,0xf7, +0x9d,0xfa,0xb1,0xfe,0x36,0x2,0xba,0x4,0xf7,0x4,0x43,0x3, +0x3,0x1,0x77,0xfe,0xb,0xfc,0x91,0xfa,0xeb,0xf9,0x84,0xf9, +0x6d,0xf9,0x3d,0xfa,0x3b,0xfc,0x1b,0xff,0xff,0x1,0xf6,0x3, +0xb,0x5,0x4b,0x5,0xe6,0x3,0x46,0x1,0xe8,0xfe,0x3c,0xfd, +0xa,0xfc,0x64,0xfb,0x83,0xfb,0x2f,0xfc,0x1,0xfd,0xbf,0xfe, +0xaf,0x1,0xde,0x3,0x70,0x4,0xa9,0x4,0xe0,0x4,0x8d,0x4, +0x2c,0x3,0x77,0x0,0xec,0xfd,0x2f,0xfd,0x4f,0xfd,0x16,0xfd, +0x1f,0xfd,0x38,0xfe,0x10,0x0,0xdc,0x1,0xb6,0x3,0xcb,0x5, +0x2,0x7,0xd4,0x6,0xe6,0x5,0x70,0x4,0xb7,0x2,0xd7,0x0, +0xa0,0xfe,0xb,0xfd,0xc6,0xfc,0x73,0xfd,0x49,0xff,0xfb,0x1, +0x7f,0x4,0x79,0x6,0x96,0x7,0xab,0x7,0xf3,0x6,0x84,0x5, +0x1d,0x4,0x1f,0x3,0xa8,0x1,0x88,0xff,0xbe,0xfd,0x5a,0xfd, +0x9e,0xfe,0x9b,0x0,0x4f,0x2,0x9e,0x3,0x2f,0x5,0x45,0x7, +0xae,0x8,0x72,0x8,0x3,0x7,0xfe,0x4,0xe7,0x2,0xcb,0x0, +0x72,0xfe,0xcb,0xfc,0x9f,0xfc,0xb7,0xfd,0xbd,0xff,0xdc,0x1, +0xac,0x3,0x65,0x5,0x9e,0x6,0x6f,0x7,0xe8,0x7,0xc,0x7, +0xee,0x4,0x5e,0x2,0xd4,0xff,0xff,0xfd,0xfb,0xfc,0xc1,0xfc, +0x73,0xfd,0x4d,0xfe,0x3f,0xff,0xfe,0x0,0x9,0x3,0xe6,0x4, +0x4a,0x6,0x3d,0x6,0xdb,0x4,0x33,0x3,0x63,0x1,0x56,0xff, +0x92,0xfd,0x64,0xfc,0xa8,0xfb,0x99,0xfb,0xb0,0xfc,0xb4,0xfe, +0xb1,0x0,0xc9,0x1,0x12,0x2,0x4e,0x2,0x7d,0x2,0x0,0x2, +0xe4,0x0,0x9b,0xff,0x6d,0xfe,0x91,0xfd,0x1,0xfd,0xd2,0xfc, +0x29,0xfd,0xbf,0xfd,0x76,0xfe,0x6d,0xff,0xe,0x0,0xd8,0xff, +0x58,0xff,0x28,0xff,0x33,0xff,0x1e,0xff,0xb0,0xfe,0x19,0xfe, +0xad,0xfd,0x9e,0xfd,0xe3,0xfd,0xc9,0xfd,0xc,0xfd,0xaa,0xfc, +0x64,0xfd,0xeb,0xfe,0xb,0x0,0xcb,0xff,0x26,0xff,0xd3,0xfe, +0xe8,0xfd,0x12,0xfd,0x6b,0xfd,0xc0,0xfd,0x78,0xfd,0x3c,0xfd, +0x19,0xfd,0x48,0xfd,0x9,0xfe,0xd2,0xfe,0xa,0xff,0x92,0xfe, +0xf9,0xfd,0xe3,0xfd,0x6e,0xfe,0x13,0xff,0xb5,0xfe,0x71,0xfd, +0xd9,0xfc,0x42,0xfd,0xbe,0xfd,0x80,0xfd,0x9a,0xfc,0x68,0xfc, +0x8a,0xfd,0xb,0xff,0x43,0x0,0x8b,0x0,0x76,0xff,0x31,0xfe, +0xbd,0xfd,0xe1,0xfd,0x2b,0xfe,0x1e,0xfe,0x7c,0xfd,0xd0,0xfc, +0x2d,0xfd,0xbd,0xfe,0xc8,0xff,0x45,0xff,0xa8,0xfe,0xf2,0xfe, +0x80,0xff,0xee,0xff,0xbc,0xff,0x7f,0xfe,0x71,0xfd,0x9a,0xfd, +0x22,0xfe,0x4d,0xfe,0x52,0xfe,0x69,0xfe,0x97,0xfe,0xc6,0xfe, +0x5f,0xff,0xa4,0x0,0x37,0x1,0x56,0x0,0x50,0xff,0xda,0xfe, +0xca,0xfe,0xb,0xff,0x11,0xff,0x1,0xff,0x58,0xff,0x7d,0xff, +0x5b,0xff,0x98,0xff,0x32,0x0,0xdb,0x0,0x7,0x1,0x5f,0x0, +0xa0,0xff,0x7d,0xff,0xf4,0xff,0x62,0x0,0xaf,0xff,0x38,0xfe, +0xd9,0xfd,0xde,0xfe,0x3,0x0,0x1,0x1,0x2,0x2,0x68,0x2, +0xe4,0x1,0x10,0x1,0xf4,0x0,0xe6,0x1,0x76,0x2,0x5b,0x1, +0xc1,0xff,0x52,0xff,0xe3,0xff,0x12,0x0,0x67,0xff,0x2a,0xff, +0xf1,0xff,0xbd,0x0,0x6b,0x1,0x17,0x2,0x49,0x2,0x74,0x2, +0x81,0x2,0xc0,0x1,0x1c,0x1,0xfd,0x0,0x62,0x0,0x55,0xff, +0x76,0xfe,0x7a,0xfe,0x6,0x0,0xbe,0x1,0x9,0x2,0xbf,0x1, +0x4,0x2,0xa6,0x2,0x1d,0x3,0xf4,0x2,0x6,0x2,0xad,0x0, +0x68,0xff,0x9b,0xfe,0x52,0xfe,0xa6,0xfe,0x5d,0xff,0x7f,0xff, +0x7d,0xff,0x4,0x1,0x5e,0x3,0x81,0x4,0x39,0x4,0xd,0x3, +0x6f,0x1,0x48,0x0,0xd8,0xff,0x77,0xff,0xda,0xfe,0x6a,0xfe, +0x92,0xfe,0x4f,0xff,0xb1,0x0,0x52,0x2,0x0,0x3,0xb3,0x2, +0x59,0x2,0xe9,0x1,0x30,0x1,0x3f,0x0,0x0,0xff,0x1d,0xfe, +0x58,0xfe,0x52,0xff,0x49,0x0,0xb5,0x0,0x89,0x0,0x56,0x0, +0x9a,0x0,0x29,0x1,0x61,0x1,0x2,0x1,0x74,0x0,0x3,0x0, +0xbf,0xff,0xb9,0xff,0xa4,0xff,0x3a,0xff,0xfd,0xfe,0x64,0xff, +0xde,0xff,0xc1,0xff,0x70,0xff,0x8f,0xff,0x1c,0x0,0xa2,0x0, +0xda,0x0,0xff,0x0,0xd0,0x0,0xb5,0xff,0x94,0xfe,0x50,0xfe, +0x4f,0xfe,0x9a,0xfe,0x59,0xff,0x9d,0xff,0x6d,0xff,0x67,0xff, +0x56,0xff,0x8c,0xff,0x71,0x0,0x42,0x1,0x1e,0x1,0x14,0x0, +0x29,0xff,0xfc,0xfe,0xc2,0xfe,0x24,0xfe,0xb5,0xfd,0x6c,0xfd, +0x58,0xfd,0xd9,0xfd,0x8f,0xfe,0x58,0xff,0x59,0x0,0xf7,0x0, +0x26,0x1,0x6e,0x1,0x57,0x1,0x59,0x0,0xb9,0xfe,0x3e,0xfd, +0xc5,0xfc,0xef,0xfc,0xef,0xfc,0x32,0xfd,0xef,0xfd,0xdb,0xfe, +0x24,0x0,0x47,0x1,0x74,0x1,0x2,0x1,0xa1,0x0,0x7e,0x0, +0x49,0x0,0xae,0xff,0xc1,0xfe,0xbd,0xfd,0x4,0xfd,0xc3,0xfc, +0xf2,0xfc,0xe4,0xfd,0x23,0xff,0xba,0xff,0x19,0x0,0x9f,0x0, +0xcd,0x0,0x89,0x0,0xde,0xff,0x1e,0xff,0xb2,0xfe,0x60,0xfe, +0x36,0xfe,0x32,0xfe,0xdd,0xfd,0x88,0xfd,0xb8,0xfd,0x8a,0xfe, +0xd0,0xff,0x9d,0x0,0x91,0x0,0x65,0x0,0x41,0x0,0xd2,0xff, +0x2e,0xff,0xbc,0xfe,0xa1,0xfe,0x66,0xfe,0xf,0xfe,0xf,0xfe, +0x2c,0xfe,0x6d,0xfe,0xd7,0xfe,0xd4,0xfe,0xea,0xfe,0xf6,0xff, +0x1a,0x1,0x57,0x1,0xfa,0x0,0x74,0x0,0xe6,0xff,0x7b,0xff, +0x10,0xff,0x81,0xfe,0x2d,0xfe,0x2,0xfe,0xae,0xfd,0xc2,0xfd, +0x60,0xfe,0x2b,0xff,0x2c,0x0,0xa1,0x0,0x59,0x0,0xad,0x0, +0x57,0x1,0x1c,0x1,0x63,0x0,0x98,0xff,0xb6,0xfe,0xee,0xfd, +0x33,0xfd,0xee,0xfc,0x96,0xfd,0xaa,0xfe,0xba,0xff,0x94,0x0, +0x22,0x1,0x97,0x1,0xb4,0x1,0x84,0x1,0xb7,0x1,0xf6,0x1, +0x5e,0x1,0x1d,0x0,0xa,0xff,0xc2,0xfe,0xec,0xfe,0xb0,0xfe, +0x53,0xfe,0x7a,0xfe,0xf3,0xfe,0x9a,0xff,0x73,0x0,0x1d,0x1, +0x7d,0x1,0xb3,0x1,0xbd,0x1,0xad,0x1,0x6f,0x1,0xf9,0x0, +0x75,0x0,0xca,0xff,0xd,0xff,0xa0,0xfe,0x70,0xfe,0x76,0xfe, +0xd9,0xfe,0x52,0xff,0xe7,0xff,0xcf,0x0,0x7d,0x1,0x9d,0x1, +0xa6,0x1,0xb8,0x1,0x7e,0x1,0xe0,0x0,0xfa,0xff,0x22,0xff, +0xfb,0xfe,0x72,0xff,0x9e,0xff,0x7d,0xff,0xe3,0xff,0xc1,0x0, +0x82,0x1,0xdb,0x1,0x99,0x1,0xc,0x1,0xee,0x0,0x43,0x1, +0x42,0x1,0x90,0x0,0xb2,0xff,0x23,0xff,0xf4,0xfe,0x69,0xff, +0x71,0x0,0xf5,0x0,0x76,0x0,0xf3,0xff,0x26,0x0,0xb0,0x0, +0x21,0x1,0x41,0x1,0xee,0x0,0x94,0x0,0xbc,0x0,0x1d,0x1, +0xee,0x0,0x1e,0x0,0x8a,0xff,0x8c,0xff,0xc0,0xff,0x2f,0x0, +0x8f,0x0,0x35,0x0,0xce,0xff,0x31,0x0,0xd1,0x0,0x3a,0x1, +0x53,0x1,0x3,0x1,0xa6,0x0,0x6b,0x0,0x4d,0x0,0x43,0x0, +0xe5,0xff,0x46,0xff,0xc,0xff,0x58,0xff,0xf5,0xff,0x85,0x0, +0xd6,0x0,0x1,0x1,0xd3,0x0,0x72,0x0,0x4c,0x0,0xfc,0xff, +0x60,0xff,0xe6,0xfe,0x9b,0xfe,0xa3,0xfe,0xf1,0xfe,0x6d,0xff, +0x82,0x0,0xb3,0x1,0x20,0x2,0x1d,0x2,0xc0,0x1,0xb5,0x0, +0x78,0xff,0x7a,0xfe,0xb7,0xfd,0x48,0xfd,0x5f,0xfd,0xff,0xfd, +0xe0,0xfe,0xe4,0xff,0xf8,0x0,0xae,0x1,0xf,0x2,0x27,0x2, +0x86,0x1,0x83,0x0,0xa7,0xff,0x0,0xff,0x97,0xfe,0x4,0xfe, +0x76,0xfd,0xb2,0xfd,0x1d,0xfe,0x63,0xfe,0x53,0xff,0x75,0x0, +0x1d,0x1,0x79,0x1,0x45,0x1,0xa0,0x0,0x10,0x0,0x77,0xff, +0xd8,0xfe,0x57,0xfe,0x7,0xfe,0x1c,0xfe,0x56,0xfe,0x9f,0xfe, +0x4c,0xff,0x24,0x0,0xd0,0x0,0x3b,0x1,0x36,0x1,0xd1,0x0, +0x53,0x0,0xf4,0xff,0xc9,0xff,0x9d,0xff,0x65,0xff,0x3e,0xff, +0x20,0xff,0x2a,0xff,0x3c,0xff,0x15,0xff,0xfd,0xfe,0x32,0xff, +0x9b,0xff,0x1c,0x0,0x68,0x0,0x5e,0x0,0x3b,0x0,0x36,0x0, +0x50,0x0,0x41,0x0,0xfb,0xff,0xc5,0xff,0x5e,0xff,0xb0,0xfe, +0x59,0xfe,0x41,0xfe,0x20,0xfe,0x88,0xfe,0x49,0xff,0xaf,0xff, +0x1c,0x0,0xc0,0x0,0x32,0x1,0x6a,0x1,0x1d,0x1,0x4a,0x0, +0xb3,0xff,0x28,0xff,0x4d,0xfe,0xd8,0xfd,0x6,0xfe,0x8e,0xfe, +0x4a,0xff,0xf5,0xff,0xbe,0x0,0x8d,0x1,0xbf,0x1,0x9b,0x1, +0x4c,0x1,0x7d,0x0,0x95,0xff,0xba,0xfe,0xec,0xfd,0xa3,0xfd, +0xbd,0xfd,0xc,0xfe,0xb7,0xfe,0x8a,0xff,0x7f,0x0,0x33,0x1, +0x25,0x1,0xe6,0x0,0xb8,0x0,0x54,0x0,0xce,0xff,0x10,0xff, +0x86,0xfe,0xaf,0xfe,0xf3,0xfe,0x3e,0xff,0xd6,0xff,0x5f,0x0, +0xbc,0x0,0x9f,0x0,0xf7,0xff,0xbd,0xff,0x2,0x0,0xb,0x0, +0xe8,0xff,0x94,0xff,0x13,0xff,0xfd,0xfe,0x79,0xff,0x6,0x0, +0x37,0x0,0x34,0x0,0x61,0x0,0xa0,0x0,0xc9,0x0,0xd5,0x0, +0x6c,0x0,0x9c,0xff,0x10,0xff,0xd,0xff,0x38,0xff,0x37,0xff, +0x1d,0xff,0x3b,0xff,0x9d,0xff,0x8,0x0,0x4a,0x0,0x67,0x0, +0x48,0x0,0xe8,0xff,0xb2,0xff,0xc4,0xff,0xd8,0xff,0xdd,0xff, +0xbd,0xff,0xa1,0xff,0xc8,0xff,0xda,0xff,0xe8,0xff,0x1b,0x0, +0xe3,0xff,0x95,0xff,0xc2,0xff,0xd8,0xff,0xd0,0xff,0xe1,0xff, +0xab,0xff,0x89,0xff,0xc5,0xff,0x1f,0x0,0xa6,0x0,0xec,0x0, +0x95,0x0,0x20,0x0,0xa8,0xff,0x53,0xff,0x77,0xff,0x7b,0xff, +0x2f,0xff,0xd,0xff,0x15,0xff,0x63,0xff,0xee,0xff,0x34,0x0, +0x55,0x0,0x79,0x0,0x79,0x0,0x77,0x0,0x48,0x0,0xcd,0xff, +0x65,0xff,0xb,0xff,0xc8,0xfe,0xd8,0xfe,0xf4,0xfe,0x18,0xff, +0x73,0xff,0xce,0xff,0x34,0x0,0x9a,0x0,0xa9,0x0,0xa8,0x0, +0xcd,0x0,0xa7,0x0,0xf,0x0,0x4d,0xff,0xcd,0xfe,0xc5,0xfe, +0xef,0xfe,0x33,0xff,0xab,0xff,0x1,0x0,0xfc,0xff,0xe8,0xff, +0x6,0x0,0x3f,0x0,0x66,0x0,0x5a,0x0,0x9,0x0,0x9d,0xff, +0x6f,0xff,0x7b,0xff,0x86,0xff,0x6e,0xff,0x35,0xff,0x3f,0xff, +0xa5,0xff,0x0,0x0,0x53,0x0,0x84,0x0,0x3f,0x0,0xe6,0xff, +0xad,0xff,0x57,0xff,0x1c,0xff,0x7,0xff,0xfa,0xfe,0x3e,0xff, +0xbf,0xff,0x33,0x0,0x87,0x0,0x88,0x0,0x51,0x0,0x2b,0x0, +0x3,0x0,0xbe,0xff,0x7f,0xff,0x5c,0xff,0x51,0xff,0x67,0xff, +0x96,0xff,0xa1,0xff,0xba,0xff,0x49,0x0,0xb8,0x0,0x82,0x0, +0x55,0x0,0x67,0x0,0x7,0x0,0x41,0xff,0xc7,0xfe,0xbf,0xfe, +0xfd,0xfe,0x75,0xff,0xd6,0xff,0xdd,0xff,0xeb,0xff,0x3a,0x0, +0x98,0x0,0xf5,0x0,0xe,0x1,0xb9,0x0,0x59,0x0,0xfc,0xff, +0x81,0xff,0x27,0xff,0x2,0xff,0xf3,0xfe,0x3,0xff,0x62,0xff, +0x1b,0x0,0x9e,0x0,0xc1,0x0,0xe8,0x0,0xd6,0x0,0x7e,0x0, +0x52,0x0,0x1c,0x0,0xd1,0xff,0x9f,0xff,0x3b,0xff,0x1,0xff, +0x73,0xff,0x4,0x0,0x44,0x0,0x4d,0x0,0x4a,0x0,0x76,0x0, +0xa3,0x0,0x7d,0x0,0x1d,0x0,0xbf,0xff,0xa7,0xff,0xdd,0xff, +0xf9,0xff,0x4,0x0,0x56,0x0,0x82,0x0,0x30,0x0,0xee,0xff, +0xf2,0xff,0xcb,0xff,0x8f,0xff,0x71,0xff,0x45,0xff,0x54,0xff, +0xc3,0xff,0x14,0x0,0x5a,0x0,0xbd,0x0,0xba,0x0,0x70,0x0, +0x6c,0x0,0x7c,0x0,0x55,0x0,0xfe,0xff,0x95,0xff,0x5f,0xff, +0x59,0xff,0x43,0xff,0x2a,0xff,0x12,0xff,0x2b,0xff,0xcc,0xff, +0x81,0x0,0xc8,0x0,0xd6,0x0,0xb1,0x0,0x6e,0x0,0x6a,0x0, +0x5f,0x0,0xf8,0xff,0x4b,0xff,0x98,0xfe,0x71,0xfe,0xdc,0xfe, +0x2f,0xff,0x76,0xff,0xc8,0xff,0xdc,0xff,0x2,0x0,0x59,0x0, +0x85,0x0,0x6e,0x0,0xd,0x0,0xa8,0xff,0x88,0xff,0x69,0xff, +0x40,0xff,0x1e,0xff,0xe6,0xfe,0xc7,0xfe,0xcc,0xfe,0xef,0xfe, +0x4b,0xff,0x9d,0xff,0xd6,0xff,0xf1,0xff,0xc1,0xff,0xbd,0xff, +0xe9,0xff,0xc4,0xff,0xa1,0xff,0x9b,0xff,0x78,0xff,0x76,0xff, +0x5c,0xff,0x19,0xff,0x19,0xff,0x3e,0xff,0x8b,0xff,0xcb,0xff, +0x7d,0xff,0x3c,0xff,0x78,0xff,0xbd,0xff,0xfc,0xff,0x17,0x0, +0xf8,0xff,0xe3,0xff,0xa7,0xff,0x60,0xff,0x55,0xff,0x1b,0xff, +0xd8,0xfe,0xfb,0xfe,0x44,0xff,0x8f,0xff,0xd3,0xff,0xfb,0xff, +0x40,0x0,0x79,0x0,0x65,0x0,0x35,0x0,0xed,0xff,0xa3,0xff, +0x8d,0xff,0x7a,0xff,0x5f,0xff,0x51,0xff,0x17,0xff,0xfe,0xfe, +0x6e,0xff,0xdf,0xff,0x2b,0x0,0xa8,0x0,0xd2,0x0,0x84,0x0, +0x4e,0x0,0xf3,0xff,0x6e,0xff,0x4e,0xff,0x47,0xff,0x2b,0xff, +0x3c,0xff,0x45,0xff,0x78,0xff,0x5,0x0,0x6f,0x0,0x96,0x0, +0xa4,0x0,0xb7,0x0,0xde,0x0,0xca,0x0,0x6e,0x0,0xde,0xff, +0x27,0xff,0xe9,0xfe,0x2f,0xff,0x64,0xff,0x9f,0xff,0xd1,0xff, +0xfc,0xff,0x6e,0x0,0x90,0x0,0x55,0x0,0x67,0x0,0x59,0x0, +0x4,0x0,0xf1,0xff,0x2,0x0,0x28,0x0,0x34,0x0,0xde,0xff, +0xb6,0xff,0xe8,0xff,0x8,0x0,0x17,0x0,0x10,0x0,0x2,0x0, +0x7,0x0,0xf0,0xff,0xfe,0xff,0x34,0x0,0x12,0x0,0xc6,0xff, +0xad,0xff,0xb7,0xff,0xcf,0xff,0xdc,0xff,0x9,0x0,0x38,0x0, +0xee,0xff,0xc4,0xff,0x2c,0x0,0x67,0x0,0x53,0x0,0x26,0x0, +0xb8,0xff,0x98,0xff,0xf2,0xff,0xfc,0xff,0xc0,0xff,0x9c,0xff, +0x67,0xff,0x4b,0xff,0x7c,0xff,0xc6,0xff,0x3,0x0,0x25,0x0, +0x19,0x0,0x4,0x0,0x3d,0x0,0xbd,0x0,0xed,0x0,0x82,0x0, +0xee,0xff,0x8b,0xff,0x53,0xff,0x31,0xff,0x17,0xff,0x16,0xff, +0x45,0xff,0x96,0xff,0xf9,0xff,0x5c,0x0,0x89,0x0,0x80,0x0, +0x7c,0x0,0x6b,0x0,0x19,0x0,0xa6,0xff,0x32,0xff,0xc8,0xfe, +0xb2,0xfe,0x5,0xff,0x6d,0xff,0xcd,0xff,0x28,0x0,0x41,0x0, +0x35,0x0,0x5c,0x0,0x82,0x0,0x3e,0x0,0xae,0xff,0x42,0xff, +0xfb,0xfe,0xc4,0xfe,0xd7,0xfe,0x11,0xff,0x2d,0xff,0x7c,0xff, +0x1,0x0,0x5d,0x0,0x89,0x0,0x79,0x0,0x32,0x0,0xf0,0xff, +0x8f,0xff,0x10,0xff,0xc8,0xfe,0x95,0xfe,0x6d,0xfe,0x93,0xfe, +0xf3,0xfe,0x78,0xff,0x12,0x0,0x77,0x0,0x93,0x0,0x7b,0x0, +0x46,0x0,0x10,0x0,0xb2,0xff,0x30,0xff,0xde,0xfe,0xbf,0xfe, +0xb5,0xfe,0xd7,0xfe,0xf1,0xfe,0xe8,0xfe,0x45,0xff,0x17,0x0, +0xa7,0x0,0xc4,0x0,0x96,0x0,0x3b,0x0,0xe,0x0,0xda,0xff, +0x3b,0xff,0xc3,0xfe,0xaf,0xfe,0xa9,0xfe,0xc0,0xfe,0xd1,0xfe, +0xf7,0xfe,0x99,0xff,0x32,0x0,0x75,0x0,0xb9,0x0,0xbf,0x0, +0x7a,0x0,0x2a,0x0,0xac,0xff,0x13,0xff,0x85,0xfe,0x37,0xfe, +0x6e,0xfe,0xc5,0xfe,0x4,0xff,0x69,0xff,0xb1,0xff,0xed,0xff, +0x69,0x0,0xad,0x0,0x89,0x0,0x4e,0x0,0x13,0x0,0xeb,0xff, +0xc5,0xff,0x7c,0xff,0x2d,0xff,0x0,0xff,0xc,0xff,0x38,0xff, +0x61,0xff,0xb9,0xff,0x22,0x0,0x50,0x0,0x76,0x0,0x92,0x0, +0x5c,0x0,0x22,0x0,0x0,0x0,0x96,0xff,0x2f,0xff,0x34,0xff, +0x44,0xff,0x41,0xff,0x69,0xff,0x9d,0xff,0xe0,0xff,0x34,0x0, +0x52,0x0,0x42,0x0,0xe,0x0,0xd2,0xff,0xda,0xff,0xde,0xff, +0xc0,0xff,0xcd,0xff,0xbd,0xff,0x9c,0xff,0xcb,0xff,0xda,0xff, +0xc7,0xff,0xea,0xff,0xe6,0xff,0xa7,0xff,0x83,0xff,0x8f,0xff, +0xc2,0xff,0xd9,0xff,0xd0,0xff,0xed,0xff,0x2a,0x0,0x87,0x0, +0xc6,0x0,0x85,0x0,0x47,0x0,0x49,0x0,0x0,0x0,0x93,0xff, +0x69,0xff,0x71,0xff,0x82,0xff,0x79,0xff,0x91,0xff,0xdb,0xff, +0xf5,0xff,0x7,0x0,0x48,0x0,0x70,0x0,0x80,0x0,0x7b,0x0, +0x3e,0x0,0xe5,0xff,0x8b,0xff,0x61,0xff,0x67,0xff,0x66,0xff, +0x7c,0xff,0x81,0xff,0x7b,0xff,0xda,0xff,0x2d,0x0,0x44,0x0, +0x7b,0x0,0x47,0x0,0xde,0xff,0x14,0x0,0x41,0x0,0xb,0x0, +0xe5,0xff,0xb2,0xff,0x8e,0xff,0x87,0xff,0x88,0xff,0xb8,0xff, +0xc6,0xff,0xcb,0xff,0x2e,0x0,0x64,0x0,0x52,0x0,0x4a,0x0, +0x28,0x0,0x1f,0x0,0xf,0x0,0xb3,0xff,0x7f,0xff,0x69,0xff, +0x4f,0xff,0x80,0xff,0xb9,0xff,0xec,0xff,0x35,0x0,0x3e,0x0, +0x29,0x0,0x21,0x0,0x6,0x0,0x19,0x0,0x41,0x0,0x28,0x0, +0xed,0xff,0xa8,0xff,0x7c,0xff,0x97,0xff,0xb9,0xff,0xae,0xff, +0x9e,0xff,0xa5,0xff,0xaf,0xff,0xd5,0xff,0x1e,0x0,0x3b,0x0, +0x3c,0x0,0x42,0x0,0x1,0x0,0xb7,0xff,0xb0,0xff,0x89,0xff, +0x69,0xff,0xb0,0xff,0xfd,0xff,0x28,0x0,0x4a,0x0,0x39,0x0, +0xf,0x0,0xf4,0xff,0xb5,0xff,0x53,0xff,0x1,0xff,0xe3,0xfe, +0x9,0xff,0x3a,0xff,0x67,0xff,0xee,0xff,0x6c,0x0,0x63,0x0, +0x79,0x0,0xa7,0x0,0x47,0x0,0xdb,0xff,0x8e,0xff,0xf,0xff, +0xd7,0xfe,0xd9,0xfe,0xd5,0xfe,0x30,0xff,0xa7,0xff,0xe6,0xff, +0x2e,0x0,0x61,0x0,0x74,0x0,0x73,0x0,0x2f,0x0,0xc7,0xff, +0x72,0xff,0x39,0xff,0xfd,0xfe,0xb4,0xfe,0xc4,0xfe,0x19,0xff, +0x3a,0xff,0x68,0xff,0xbd,0xff,0xa,0x0,0x64,0x0,0x7e,0x0, +0x4c,0x0,0x20,0x0,0xd3,0xff,0x81,0xff,0x4e,0xff,0xf9,0xfe, +0xd0,0xfe,0x1,0xff,0x1b,0xff,0x2a,0xff,0x6e,0xff,0xc1,0xff, +0x1b,0x0,0x52,0x0,0x3c,0x0,0x15,0x0,0xf5,0xff,0xd3,0xff, +0xd8,0xff,0xcf,0xff,0x75,0xff,0x2a,0xff,0x24,0xff,0x33,0xff, +0x58,0xff,0x82,0xff,0xa4,0xff,0xd7,0xff,0x3,0x0,0x1a,0x0, +0x1e,0x0,0x1,0x0,0xdd,0xff,0xb9,0xff,0xa4,0xff,0xbb,0xff, +0xaa,0xff,0x68,0xff,0x64,0xff,0x7e,0xff,0x93,0xff,0xad,0xff, +0x8f,0xff,0x62,0xff,0x86,0xff,0xe5,0xff,0x50,0x0,0x61,0x0, +0x0,0x0,0xd5,0xff,0xea,0xff,0xba,0xff,0x7c,0xff,0x67,0xff, +0x42,0xff,0x37,0xff,0x70,0xff,0xb0,0xff,0xed,0xff,0x3b,0x0, +0x7c,0x0,0x78,0x0,0x3e,0x0,0x24,0x0,0xa,0x0,0xbe,0xff, +0x8e,0xff,0x6c,0xff,0x40,0xff,0x6f,0xff,0x95,0xff,0x72,0xff, +0xb9,0xff,0x30,0x0,0x45,0x0,0x4c,0x0,0x4d,0x0,0x1d,0x0, +0xe3,0xff,0xbc,0xff,0xc1,0xff,0xbb,0xff,0x7a,0xff,0x66,0xff, +0x9a,0xff,0xcc,0xff,0x5,0x0,0x48,0x0,0x6d,0x0,0x5d,0x0, +0x34,0x0,0x14,0x0,0xe3,0xff,0xa0,0xff,0x89,0xff,0xa7,0xff, +0xd6,0xff,0x3,0x0,0x23,0x0,0x1d,0x0,0x24,0x0,0x81,0x0, +0xbc,0x0,0x85,0x0,0x56,0x0,0x27,0x0,0xd6,0xff,0xbc,0xff, +0xae,0xff,0xa3,0xff,0xc4,0xff,0xd2,0xff,0x3,0x0,0x60,0x0, +0x79,0x0,0x7f,0x0,0x78,0x0,0x2f,0x0,0x18,0x0,0x28,0x0, +0x8,0x0,0xc,0x0,0xb,0x0,0xa8,0xff,0x79,0xff,0xb4,0xff, +0xba,0xff,0xc2,0xff,0x33,0x0,0x77,0x0,0x84,0x0,0xbe,0x0, +0xaf,0x0,0x6d,0x0,0x6a,0x0,0x2f,0x0,0xe0,0xff,0xf9,0xff, +0xf2,0xff,0xd8,0xff,0x17,0x0,0x35,0x0,0x10,0x0,0x18,0x0, +0x33,0x0,0x27,0x0,0x14,0x0,0xfc,0xff,0xe7,0xff,0x5,0x0, +0x39,0x0,0x54,0x0,0x4f,0x0,0x1c,0x0,0xf8,0xff,0xb,0x0, +0xfc,0xff,0xcf,0xff,0xb6,0xff,0xb9,0xff,0xf0,0xff,0xfc,0xff, +0xba,0xff,0xb8,0xff,0xc4,0xff,0xb7,0xff,0xe9,0xff,0xee,0xff, +0xb6,0xff,0xcc,0xff,0xfe,0xff,0xf7,0xff,0xcc,0xff,0xb9,0xff, +0xcf,0xff,0xd3,0xff,0xe8,0xff,0xe,0x0,0xef,0xff,0xdd,0xff, +0xf8,0xff,0xe7,0xff,0xe5,0xff,0xee,0xff,0xc1,0xff,0x89,0xff, +0x69,0xff,0x75,0xff,0x94,0xff,0x95,0xff,0xb0,0xff,0xe3,0xff, +0xfa,0xff,0x1,0x0,0xf5,0xff,0xf5,0xff,0xfb,0xff,0xc8,0xff, +0x98,0xff,0x67,0xff,0xe,0xff,0xef,0xfe,0x8,0xff,0x22,0xff, +0x61,0xff,0x9b,0xff,0xb1,0xff,0xbf,0xff,0xb1,0xff,0x9e,0xff, +0x9c,0xff,0x82,0xff,0x59,0xff,0x3e,0xff,0x34,0xff,0x5a,0xff, +0xae,0xff,0xda,0xff,0xc3,0xff,0xbf,0xff,0xde,0xff,0xd4,0xff, +0xa3,0xff,0x87,0xff,0x82,0xff,0x65,0xff,0x38,0xff,0x22,0xff, +0xf,0xff,0x20,0xff,0x67,0xff,0x5a,0xff,0x1b,0xff,0x43,0xff, +0x7a,0xff,0x8e,0xff,0xc7,0xff,0xdb,0xff,0xdb,0xff,0x27,0x0, +0x35,0x0,0xb6,0xff,0x4e,0xff,0x4b,0xff,0x47,0xff,0x9,0xff, +0xc5,0xfe,0xbd,0xfe,0xfb,0xfe,0x4a,0xff,0x8a,0xff,0xde,0xff, +0x21,0x0,0x18,0x0,0x7,0x0,0xe,0x0,0x9,0x0,0x0,0x0, +0xea,0xff,0xb3,0xff,0x7d,0xff,0x65,0xff,0x52,0xff,0x3f,0xff, +0x5a,0xff,0x8a,0xff,0xa0,0xff,0xdd,0xff,0x2f,0x0,0x38,0x0, +0x2a,0x0,0xb,0x0,0xb8,0xff,0x9f,0xff,0xc9,0xff,0xca,0xff, +0x9f,0xff,0x69,0xff,0x5d,0xff,0x95,0xff,0xce,0xff,0xea,0xff, +0xf2,0xff,0x3,0x0,0x3c,0x0,0x5e,0x0,0x42,0x0,0x27,0x0, +0x5,0x0,0xcc,0xff,0xaf,0xff,0xa9,0xff,0xa8,0xff,0xb4,0xff, +0xc5,0xff,0xce,0xff,0xe0,0xff,0xe,0x0,0x43,0x0,0x59,0x0, +0x3b,0x0,0x5,0x0,0x8,0x0,0x37,0x0,0x26,0x0,0xf0,0xff, +0xde,0xff,0xd6,0xff,0xcd,0xff,0xe3,0xff,0x1a,0x0,0x36,0x0, +0xf2,0xff,0xaa,0xff,0xbd,0xff,0xc3,0xff,0xb6,0xff,0xd4,0xff, +0xe0,0xff,0xe6,0xff,0x3,0x0,0xf7,0xff,0xf3,0xff,0xa,0x0, +0xe1,0xff,0xb6,0xff,0xd2,0xff,0xd6,0xff,0xa5,0xff,0xb3,0xff, +0xfb,0xff,0x17,0x0,0x23,0x0,0x37,0x0,0x24,0x0,0x1d,0x0, +0x11,0x0,0xd3,0xff,0xd9,0xff,0xe9,0xff,0xa0,0xff,0xa1,0xff, +0xd2,0xff,0xc8,0xff,0xee,0xff,0x1a,0x0,0x31,0x0,0x6e,0x0, +0x57,0x0,0x0,0x0,0xdb,0xff,0xab,0xff,0x73,0xff,0x5d,0xff, +0x70,0xff,0xaf,0xff,0xca,0xff,0xe3,0xff,0x38,0x0,0x54,0x0, +0x3b,0x0,0x3d,0x0,0x30,0x0,0x6,0x0,0xcc,0xff,0xb4,0xff, +0xbd,0xff,0x75,0xff,0x28,0xff,0x3b,0xff,0x66,0xff,0xba,0xff, +0xe,0x0,0x14,0x0,0x27,0x0,0x3c,0x0,0x35,0x0,0x41,0x0, +0x1a,0x0,0xe5,0xff,0xe6,0xff,0xbd,0xff,0x74,0xff,0x3e,0xff, +0x1b,0xff,0x53,0xff,0xbe,0xff,0xff,0xff,0x2b,0x0,0x4f,0x0, +0x67,0x0,0x76,0x0,0x7a,0x0,0x85,0x0,0x69,0x0,0x1a,0x0, +0xe0,0xff,0xa4,0xff,0x63,0xff,0x6b,0xff,0x8d,0xff,0x98,0xff, +0xb3,0xff,0xe6,0xff,0x1f,0x0,0x53,0x0,0x66,0x0,0x56,0x0, +0x53,0x0,0x4d,0x0,0xa,0x0,0xdc,0xff,0x8,0x0,0x12,0x0, +0xcb,0xff,0x9f,0xff,0xa5,0xff,0xaa,0xff,0xab,0xff,0xcd,0xff, +0x16,0x0,0x3c,0x0,0x2b,0x0,0x2b,0x0,0x27,0x0,0x7,0x0, +0xfb,0xff,0xe0,0xff,0x9d,0xff,0x79,0xff,0x91,0xff,0xb8,0xff, +0xc7,0xff,0xd9,0xff,0x6,0x0,0x30,0x0,0x5f,0x0,0x95,0x0, +0x7e,0x0,0x2b,0x0,0xf8,0xff,0xcc,0xff,0x86,0xff,0x59,0xff, +0x56,0xff,0x5e,0xff,0x70,0xff,0xa7,0xff,0xdc,0xff,0xda,0xff, +0xd6,0xff,0xf9,0xff,0x23,0x0,0x34,0x0,0x11,0x0,0xd3,0xff, +0xb5,0xff,0x9c,0xff,0x6f,0xff,0x6a,0xff,0x9a,0xff,0xd0,0xff, +0xe0,0xff,0xdc,0xff,0xe8,0xff,0xf2,0xff,0xf0,0xff,0xdc,0xff, +0xa0,0xff,0x76,0xff,0x7c,0xff,0x81,0xff,0x8f,0xff,0xb3,0xff, +0xc6,0xff,0xd0,0xff,0xeb,0xff,0xfd,0xff,0xeb,0xff,0xd7,0xff, +0xc1,0xff,0x94,0xff,0x8b,0xff,0xb4,0xff,0xb3,0xff,0x9c,0xff, +0xa5,0xff,0xb2,0xff,0xac,0xff,0x96,0xff,0xa9,0xff,0xe4,0xff, +0xcd,0xff,0xa6,0xff,0xdf,0xff,0xf4,0xff,0xc5,0xff,0xc2,0xff, +0xc0,0xff,0xc4,0xff,0xfd,0xff,0x7,0x0,0xd8,0xff,0xd6,0xff, +0xe1,0xff,0xd7,0xff,0xe7,0xff,0xf2,0xff,0xe8,0xff,0xff,0xff, +0x16,0x0,0x5,0x0,0xff,0xff,0x17,0x0,0x37,0x0,0x5e,0x0, +0x5b,0x0,0x1d,0x0,0xa,0x0,0x12,0x0,0xc7,0xff,0xa1,0xff, +0xf6,0xff,0x9,0x0,0xe4,0xff,0x5,0x0,0xf9,0xff,0xd8,0xff, +0xff,0xff,0xf,0x0,0x32,0x0,0x63,0x0,0x1a,0x0,0xde,0xff, +0xe4,0xff,0xcc,0xff,0xe4,0xff,0x1,0x0,0xe6,0xff,0xeb,0xff, +0xdf,0xff,0xe1,0xff,0x43,0x0,0x61,0x0,0x20,0x0,0x10,0x0, +0x26,0x0,0x25,0x0,0xf4,0xff,0xb1,0xff,0xac,0xff,0xe5,0xff, +0x32,0x0,0x60,0x0,0x68,0x0,0x68,0x0,0x3e,0x0,0xee,0xff, +0xc9,0xff,0xe2,0xff,0xfc,0xff,0xd3,0xff,0xb5,0xff,0xec,0xff, +0x5,0x0,0xe6,0xff,0xd2,0xff,0xbf,0xff,0xdb,0xff,0x14,0x0, +0x1f,0x0,0xf,0x0,0xd6,0xff,0x99,0xff,0xab,0xff,0xd2,0xff, +0xd0,0xff,0xab,0xff,0x9f,0xff,0xc7,0xff,0xa5,0xff,0x70,0xff, +0xbd,0xff,0x4,0x0,0x7,0x0,0x2,0x0,0xe5,0xff,0xfe,0xff, +0x5,0x0,0x95,0xff,0x56,0xff,0x39,0xff,0xf,0xff,0x68,0xff, +0xbc,0xff,0x96,0xff,0x9f,0xff,0xcd,0xff,0xf3,0xff,0x3b,0x0, +0x4d,0x0,0x23,0x0,0xf9,0xff,0xb4,0xff,0x7e,0xff,0x4d,0xff, +0xf4,0xfe,0xf8,0xfe,0x4f,0xff,0x5f,0xff,0x84,0xff,0xde,0xff, +0xfb,0xff,0x11,0x0,0x18,0x0,0xd0,0xff,0x9a,0xff,0x84,0xff, +0x69,0xff,0x54,0xff,0x11,0xff,0xd9,0xfe,0xf5,0xfe,0x45,0xff, +0xc2,0xff,0x15,0x0,0x26,0x0,0x4c,0x0,0x36,0x0,0xe9,0xff, +0xb9,0xff,0x47,0xff,0xd1,0xfe,0xab,0xfe,0x8f,0xfe,0xba,0xfe, +0x1a,0xff,0x59,0xff,0xbc,0xff,0x27,0x0,0x70,0x0,0x9a,0x0, +0x7c,0x0,0x4e,0x0,0x7,0x0,0x8a,0xff,0x4d,0xff,0x21,0xff, +0xd6,0xfe,0xe5,0xfe,0x14,0xff,0x2b,0xff,0x69,0xff,0x9f,0xff, +0xcb,0xff,0x17,0x0,0x53,0x0,0x5b,0x0,0x42,0x0,0x1d,0x0, +0xd9,0xff,0x8c,0xff,0x6b,0xff,0x53,0xff,0x3a,0xff,0x52,0xff, +0x8a,0xff,0xd3,0xff,0xa,0x0,0x10,0x0,0x2e,0x0,0x52,0x0, +0x4d,0x0,0x40,0x0,0x14,0x0,0xe2,0xff,0xde,0xff,0xca,0xff, +0x95,0xff,0x81,0xff,0x99,0xff,0xb4,0xff,0xbc,0xff,0xdd,0xff, +0x1f,0x0,0x48,0x0,0x4c,0x0,0x4f,0x0,0x7c,0x0,0x93,0x0, +0x3f,0x0,0xe9,0xff,0xce,0xff,0xaa,0xff,0x8f,0xff,0x5f,0xff, +0x2e,0xff,0x69,0xff,0xb1,0xff,0xd0,0xff,0x1c,0x0,0x58,0x0, +0x6f,0x0,0x97,0x0,0xa7,0x0,0x99,0x0,0x65,0x0,0xb,0x0, +0xd2,0xff,0xaa,0xff,0x7b,0xff,0x68,0xff,0x60,0xff,0x79,0xff, +0xb0,0xff,0xd4,0xff,0x27,0x0,0x8b,0x0,0x90,0x0,0x95,0x0, +0xb0,0x0,0x69,0x0,0x1c,0x0,0xfc,0xff,0xad,0xff,0x78,0xff, +0x78,0xff,0x63,0xff,0x77,0xff,0xc1,0xff,0xf1,0xff,0x13,0x0, +0x32,0x0,0x3e,0x0,0x37,0x0,0x16,0x0,0xef,0xff,0xcc,0xff, +0xba,0xff,0xc3,0xff,0xc3,0xff,0xc9,0xff,0xe1,0xff,0xd5,0xff, +0xc4,0xff,0xd6,0xff,0xee,0xff,0xfc,0xff,0xf5,0xff,0xe1,0xff, +0xd6,0xff,0xec,0xff,0x24,0x0,0x2a,0x0,0xff,0xff,0xef,0xff, +0xc6,0xff,0xa1,0xff,0xb5,0xff,0xa7,0xff,0x8d,0xff,0x91,0xff, +0x94,0xff,0xc4,0xff,0xfa,0xff,0x17,0x0,0x32,0x0,0x18,0x0, +0xf5,0xff,0xec,0xff,0xda,0xff,0xf5,0xff,0xf1,0xff,0xa9,0xff, +0x9b,0xff,0x95,0xff,0xa6,0xff,0xfe,0xff,0x10,0x0,0x10,0x0, +0x31,0x0,0x24,0x0,0x38,0x0,0x4a,0x0,0x1f,0x0,0x1c,0x0, +0x5,0x0,0xd5,0xff,0xd1,0xff,0xa3,0xff,0x86,0xff,0xb8,0xff, +0xdf,0xff,0x2,0x0,0x1f,0x0,0x41,0x0,0x7d,0x0,0x8a,0x0, +0x87,0x0,0x7e,0x0,0x3f,0x0,0x24,0x0,0x8,0x0,0x8e,0xff, +0x30,0xff,0x15,0xff,0x1d,0xff,0x55,0xff,0x7f,0xff,0xab,0xff, +0x18,0x0,0x71,0x0,0x8e,0x0,0x96,0x0,0x7d,0x0,0x3c,0x0, +0xe6,0xff,0x87,0xff,0x54,0xff,0x47,0xff,0x28,0xff,0x27,0xff, +0x6a,0xff,0xca,0xff,0x59,0x0,0xd3,0x0,0xd0,0x0,0xb0,0x0, +0xa6,0x0,0x6c,0x0,0x19,0x0,0x9a,0xff,0xee,0xfe,0x91,0xfe, +0x9e,0xfe,0xe8,0xfe,0x5d,0xff,0xcd,0xff,0x2e,0x0,0xa0,0x0, +0x13,0x1,0x33,0x1,0xf0,0x0,0xa3,0x0,0x3e,0x0,0xbb,0xff, +0x77,0xff,0x24,0xff,0x8c,0xfe,0x41,0xfe,0x6b,0xfe,0xed,0xfe, +0x98,0xff,0x10,0x0,0x71,0x0,0xcc,0x0,0xfa,0x0,0x7,0x1, +0xb5,0x0,0xe,0x0,0x90,0xff,0x2c,0xff,0xce,0xfe,0xbf,0xfe, +0xeb,0xfe,0x1e,0xff,0x6d,0xff,0xda,0xff,0x3b,0x0,0x7a,0x0, +0x7f,0x0,0x47,0x0,0x3e,0x0,0x58,0x0,0x0,0x0,0x86,0xff, +0x54,0xff,0x1a,0xff,0xee,0xfe,0x18,0xff,0x59,0xff,0x74,0xff, +0x88,0xff,0xe0,0xff,0x45,0x0,0x54,0x0,0x4b,0x0,0x36,0x0, +0xb,0x0,0x7,0x0,0xe6,0xff,0xa4,0xff,0x98,0xff,0x63,0xff, +0xfc,0xfe,0xe9,0xfe,0x1f,0xff,0x6d,0xff,0xb7,0xff,0xe2,0xff, +0x16,0x0,0x40,0x0,0x38,0x0,0x27,0x0,0xc,0x0,0xd7,0xff, +0xb0,0xff,0x7f,0xff,0x2d,0xff,0x1d,0xff,0x3b,0xff,0x9,0xff, +0xfa,0xfe,0x63,0xff,0xae,0xff,0xdf,0xff,0x16,0x0,0x8,0x0, +0xff,0xff,0x10,0x0,0xef,0xff,0xd6,0xff,0xd4,0xff,0xd2,0xff, +0xb8,0xff,0x55,0xff,0x1a,0xff,0x3e,0xff,0x5f,0xff,0x95,0xff, +0xcc,0xff,0xd6,0xff,0x10,0x0,0x5b,0x0,0x5e,0x0,0x24,0x0, +0xdc,0xff,0xd7,0xff,0xeb,0xff,0xd0,0xff,0xcd,0xff,0xcc,0xff, +0x91,0xff,0x63,0xff,0x55,0xff,0x7e,0xff,0xd3,0xff,0xed,0xff, +0xe7,0xff,0xef,0xff,0xe6,0xff,0x7,0x0,0x4a,0x0,0x45,0x0, +0x25,0x0,0x29,0x0,0x14,0x0,0xef,0xff,0xe4,0xff,0xb4,0xff, +0x69,0xff,0x65,0xff,0x93,0xff,0xbe,0xff,0xf6,0xff,0x20,0x0, +0x1a,0x0,0x20,0x0,0x55,0x0,0x72,0x0,0x58,0x0,0x4e,0x0, +0x36,0x0,0xd4,0xff,0x8a,0xff,0x72,0xff,0x5a,0xff,0x70,0xff, +0x7c,0xff,0x74,0xff,0xd1,0xff,0x3b,0x0,0x5e,0x0,0x8b,0x0, +0x89,0x0,0x42,0x0,0xf5,0xff,0x8a,0xff,0x3e,0xff,0x3c,0xff, +0x27,0xff,0x7,0xff,0x2,0xff,0x2b,0xff,0xab,0xff,0x21,0x0, +0x57,0x0,0x96,0x0,0xbc,0x0,0xad,0x0,0xa8,0x0,0x95,0x0, +0x4c,0x0,0xde,0xff,0x5a,0xff,0xef,0xfe,0xc4,0xfe,0xd0,0xfe, +0xf9,0xfe,0x22,0xff,0x58,0xff,0xbe,0xff,0x5d,0x0,0xf3,0x0, +0x28,0x1,0x15,0x1,0xe8,0x0,0x80,0x0,0xfe,0xff,0x88,0xff, +0x13,0xff,0xc8,0xfe,0xa4,0xfe,0x97,0xfe,0xf1,0xfe,0x81,0xff, +0xe5,0xff,0x48,0x0,0x99,0x0,0xa6,0x0,0x93,0x0,0x59,0x0, +0xf,0x0,0xe2,0xff,0x96,0xff,0x3f,0xff,0x47,0xff,0x81,0xff, +0x8d,0xff,0x9c,0xff,0xd0,0xff,0xe2,0xff,0xe6,0xff,0x24,0x0, +0x59,0x0,0x51,0x0,0x42,0x0,0x3e,0x0,0x42,0x0,0x3b,0x0, +0x5,0x0,0xb7,0xff,0x82,0xff,0x84,0xff,0x86,0xff,0x4e,0xff, +0x52,0xff,0xa9,0xff,0xd3,0xff,0xfc,0xff,0x35,0x0,0x34,0x0, +0x49,0x0,0x64,0x0,0x31,0x0,0xe,0x0,0x14,0x0,0xf1,0xff, +0x9f,0xff,0x43,0xff,0x3,0xff,0xe8,0xfe,0x1,0xff,0x4e,0xff, +0x6d,0xff,0x89,0xff,0x1,0x0,0x51,0x0,0x60,0x0,0x9a,0x0, +0xb7,0x0,0x8f,0x0,0x58,0x0,0xf5,0xff,0x6e,0xff,0x8,0xff, +0xd7,0xfe,0xcc,0xfe,0xe3,0xfe,0x22,0xff,0x70,0xff,0xc2,0xff, +0x44,0x0,0xcd,0x0,0xf4,0x0,0xbf,0x0,0x79,0x0,0x2c,0x0, +0xb2,0xff,0x37,0xff,0x12,0xff,0x12,0xff,0xe1,0xfe,0xc4,0xfe, +0xe,0xff,0x95,0xff,0x12,0x0,0x8e,0x0,0x7,0x1,0x1b,0x1, +0xc7,0x0,0x86,0x0,0x41,0x0,0xa9,0xff,0x24,0xff,0xe9,0xfe, +0x9d,0xfe,0x7f,0xfe,0xe9,0xfe,0x4a,0xff,0x75,0xff,0xdc,0xff, +0x48,0x0,0x98,0x0,0xf3,0x0,0xd,0x1,0xd3,0x0,0x66,0x0, +0xd2,0xff,0x6f,0xff,0x2a,0xff,0xd9,0xfe,0xc9,0xfe,0xbb,0xfe, +0xb3,0xfe,0x2e,0xff,0xc8,0xff,0x43,0x0,0xa0,0x0,0x89,0x0, +0x7b,0x0,0xa4,0x0,0x7b,0x0,0x45,0x0,0xf0,0xff,0x43,0xff, +0xf7,0xfe,0x12,0xff,0x2f,0xff,0x5d,0xff,0x71,0xff,0x97,0xff, +0xea,0xff,0x1c,0x0,0x53,0x0,0x6d,0x0,0x4c,0x0,0x3c,0x0, +0xff,0xff,0xba,0xff,0xbb,0xff,0x84,0xff,0x42,0xff,0x37,0xff, +0x24,0xff,0x53,0xff,0x96,0xff,0x96,0xff,0xd1,0xff,0x23,0x0, +0x42,0x0,0x68,0x0,0x5d,0x0,0x34,0x0,0x3a,0x0,0x15,0x0, +0xb5,0xff,0x74,0xff,0x5a,0xff,0x1e,0xff,0xd4,0xfe,0xf1,0xfe, +0x54,0xff,0x97,0xff,0xfb,0xff,0x81,0x0,0xce,0x0,0xe3,0x0, +0xb8,0x0,0x59,0x0,0x1b,0x0,0x3,0x0,0xd4,0xff,0x8c,0xff, +0x47,0xff,0x14,0xff,0x18,0xff,0x6c,0xff,0xbf,0xff,0xea,0xff, +0xb,0x0,0x19,0x0,0x38,0x0,0x67,0x0,0x5e,0x0,0x40,0x0, +0x11,0x0,0xc3,0xff,0xb5,0xff,0xbe,0xff,0xa0,0xff,0xa6,0xff, +0xcb,0xff,0xe6,0xff,0xb,0x0,0x2a,0x0,0x2d,0x0,0x30,0x0, +0x4a,0x0,0x46,0x0,0x2,0x0,0xc8,0xff,0xa3,0xff,0x85,0xff, +0x97,0xff,0xa9,0xff,0xa2,0xff,0xca,0xff,0x1b,0x0,0x66,0x0, +0x58,0x0,0xfb,0xff,0xd2,0xff,0xc9,0xff,0xb0,0xff,0xa7,0xff, +0x8f,0xff,0x82,0xff,0x9a,0xff,0xa3,0xff,0xc1,0xff,0xee,0xff, +0xff,0xff,0xf,0x0,0xb,0x0,0x3,0x0,0xf5,0xff,0xa7,0xff, +0x5c,0xff,0x29,0xff,0xfd,0xfe,0x32,0xff,0x92,0xff,0xcc,0xff, +0x16,0x0,0x48,0x0,0x4b,0x0,0x57,0x0,0x44,0x0,0x3,0x0, +0xc2,0xff,0x8a,0xff,0x61,0xff,0x4c,0xff,0x2e,0xff,0x10,0xff, +0x35,0xff,0x70,0xff,0x6a,0xff,0x86,0xff,0xd1,0xff,0xe7,0xff, +0x18,0x0,0x56,0x0,0x2b,0x0,0x3,0x0,0x9,0x0,0xd4,0xff, +0x8e,0xff,0x88,0xff,0x88,0xff,0x4b,0xff,0x3c,0xff,0x8c,0xff, +0xa0,0xff,0xa2,0xff,0xe7,0xff,0xe4,0xff,0xd6,0xff,0x13,0x0, +0xc,0x0,0xe0,0xff,0xe6,0xff,0xdd,0xff,0xbe,0xff,0x88,0xff, +0x58,0xff,0x62,0xff,0x6b,0xff,0x7c,0xff,0xb8,0xff,0xd0,0xff, +0xd6,0xff,0x18,0x0,0x57,0x0,0x4d,0x0,0x21,0x0,0xe5,0xff, +0x81,0xff,0x37,0xff,0x3b,0xff,0x58,0xff,0x76,0xff,0x8a,0xff, +0x85,0xff,0xa1,0xff,0xe4,0xff,0x2a,0x0,0x5c,0x0,0x55,0x0, +0x35,0x0,0x3,0x0,0xb6,0xff,0xbb,0xff,0xf4,0xff,0xdb,0xff, +0xc3,0xff,0xe0,0xff,0xcb,0xff,0x98,0xff,0x94,0xff,0xc0,0xff, +0x0,0x0,0x2f,0x0,0x2a,0x0,0xeb,0xff,0xa0,0xff,0x84,0xff, +0x97,0xff,0xb8,0xff,0xcf,0xff,0xd5,0xff,0xc5,0xff,0xc4,0xff, +0xfd,0xff,0x26,0x0,0xfd,0xff,0xa6,0xff,0x59,0xff,0x52,0xff, +0x7f,0xff,0x9c,0xff,0xb7,0xff,0xba,0xff,0x9d,0xff,0xdb,0xff, +0x57,0x0,0x8e,0x0,0x87,0x0,0x49,0x0,0xef,0xff,0xc2,0xff, +0xaf,0xff,0xb0,0xff,0xbc,0xff,0xae,0xff,0xa8,0xff,0xaa,0xff, +0xb5,0xff,0x7,0x0,0x31,0x0,0xda,0xff,0xa8,0xff,0xc4,0xff, +0xcd,0xff,0xff,0xff,0x43,0x0,0x1b,0x0,0xe0,0xff,0xe0,0xff, +0xcc,0xff,0xaf,0xff,0xbc,0xff,0xe4,0xff,0x4,0x0,0xd,0x0, +0x1e,0x0,0xfe,0xff,0x8d,0xff,0x6c,0xff,0x8e,0xff,0x6d,0xff, +0x7b,0xff,0xcd,0xff,0xf5,0xff,0x2c,0x0,0x71,0x0,0x74,0x0, +0x43,0x0,0xfe,0xff,0xb7,0xff,0x72,0xff,0x70,0xff,0xdc,0xff, +0x17,0x0,0xeb,0xff,0xf8,0xff,0x34,0x0,0x2d,0x0,0xf6,0xff, +0xc4,0xff,0x91,0xff,0x71,0xff,0x96,0xff,0xaf,0xff,0x86,0xff, +0x9d,0xff,0xe2,0xff,0x2,0x0,0x35,0x0,0x48,0x0,0x25,0x0, +0x19,0x0,0xe6,0xff,0x9a,0xff,0x93,0xff,0x99,0xff,0x93,0xff, +0x90,0xff,0x90,0xff,0xbe,0xff,0xe9,0xff,0xe8,0xff,0xfa,0xff, +0x22,0x0,0x30,0x0,0x28,0x0,0x14,0x0,0xed,0xff,0xc8,0xff, +0xb7,0xff,0xa3,0xff,0x9b,0xff,0x92,0xff,0x7a,0xff,0xbe,0xff, +0x1c,0x0,0x2,0x0,0x14,0x0,0x59,0x0,0x1f,0x0,0xc8,0xff, +0x9e,0xff,0x8d,0xff,0xac,0xff,0x9c,0xff,0x6c,0xff,0x72,0xff, +0x8f,0xff,0xfa,0xff,0x84,0x0,0x9f,0x0,0x8e,0x0,0x68,0x0, +0x24,0x0,0x13,0x0,0xfd,0xff,0xc0,0xff,0x92,0xff,0x63,0xff, +0x4e,0xff,0x78,0xff,0xba,0xff,0xee,0xff,0x8,0x0,0x25,0x0, +0x31,0x0,0x1e,0x0,0x29,0x0,0x2d,0x0,0xf9,0xff,0xc7,0xff, +0xb1,0xff,0xc1,0xff,0xf2,0xff,0x2e,0x0,0x59,0x0,0x2d,0x0, +0xde,0xff,0xce,0xff,0xbc,0xff,0x72,0xff,0x19,0xff,0xf6,0xfe, +0x31,0xff,0x61,0xff,0x72,0xff,0xb1,0xff,0xeb,0xff,0x3a,0x0, +0xa1,0x0,0xa3,0x0,0x8a,0x0,0x88,0x0,0x33,0x0,0xb0,0xff, +0x33,0xff,0xd5,0xfe,0xb2,0xfe,0xaf,0xfe,0xe3,0xfe,0x30,0xff, +0x6e,0xff,0x2,0x0,0x93,0x0,0xc1,0x0,0xfe,0x0,0xf3,0x0, +0x6b,0x0,0x4,0x0,0x90,0xff,0x9,0xff,0xcb,0xfe,0x7f,0xfe, +0x51,0xfe,0xa9,0xfe,0x1a,0xff,0x90,0xff,0x1f,0x0,0x7e,0x0, +0xcb,0x0,0x0,0x1,0xb3,0x0,0x1f,0x0,0xc4,0xff,0x89,0xff, +0x37,0xff,0xee,0xfe,0xc3,0xfe,0x9d,0xfe,0xb0,0xfe,0x29,0xff, +0xa7,0xff,0xf4,0xff,0x47,0x0,0x81,0x0,0x84,0x0,0x89,0x0, +0x75,0x0,0x1f,0x0,0xdc,0xff,0xb6,0xff,0x5c,0xff,0x16,0xff, +0x7,0xff,0xdd,0xfe,0xf6,0xfe,0x63,0xff,0x87,0xff,0xbf,0xff, +0x19,0x0,0xff,0xff,0x2a,0x0,0xab,0x0,0x95,0x0,0x67,0x0, +0x50,0x0,0xd7,0xff,0xaa,0xff,0xb9,0xff,0x62,0xff,0x21,0xff, +0x14,0xff,0x31,0xff,0xba,0xff,0x7,0x0,0xe7,0xff,0x2,0x0, +0x3d,0x0,0x4f,0x0,0x64,0x0,0x75,0x0,0x4d,0x0,0xb,0x0, +0xfb,0xff,0xef,0xff,0xbb,0xff,0x8e,0xff,0x63,0xff,0x5a,0xff, +0x94,0xff,0xc8,0xff,0x6,0x0,0x43,0x0,0x37,0x0,0x3e,0x0, +0x70,0x0,0x81,0x0,0x79,0x0,0x35,0x0,0xc6,0xff,0x84,0xff, +0x63,0xff,0x5e,0xff,0x5c,0xff,0x3f,0xff,0x4f,0xff,0x88,0xff, +0xec,0xff,0x88,0x0,0xd8,0x0,0xc6,0x0,0x9f,0x0,0x4f,0x0, +0x29,0x0,0x45,0x0,0x15,0x0,0xb3,0xff,0x7b,0xff,0x48,0xff, +0x33,0xff,0x5b,0xff,0x7d,0xff,0x95,0xff,0xce,0xff,0x21,0x0, +0x7a,0x0,0xb6,0x0,0xba,0x0,0xad,0x0,0x83,0x0,0x26,0x0, +0xe0,0xff,0xbe,0xff,0x8a,0xff,0x5c,0xff,0x4b,0xff,0x4f,0xff, +0x51,0xff,0x49,0xff,0x77,0xff,0xd8,0xff,0x2f,0x0,0x76,0x0, +0x91,0x0,0x95,0x0,0x94,0x0,0x4a,0x0,0xe8,0xff,0xc3,0xff, +0xa0,0xff,0x64,0xff,0x13,0xff,0xd7,0xfe,0xfd,0xfe,0x54,0xff, +0xb5,0xff,0x2a,0x0,0x53,0x0,0x44,0x0,0x62,0x0,0x66,0x0, +0x27,0x0,0xf1,0xff,0xd0,0xff,0xb2,0xff,0xa1,0xff,0x6c,0xff, +0x11,0xff,0xf2,0xfe,0xf8,0xfe,0xf1,0xfe,0x32,0xff,0x84,0xff, +0xb4,0xff,0x28,0x0,0x6b,0x0,0x4a,0x0,0x66,0x0,0x6b,0x0, +0x2d,0x0,0xf,0x0,0xbf,0xff,0x5c,0xff,0x2e,0xff,0xf6,0xfe, +0xf4,0xfe,0x18,0xff,0x2b,0xff,0x97,0xff,0xe9,0xff,0xce,0xff, +0xfa,0xff,0x48,0x0,0x60,0x0,0x89,0x0,0x76,0x0,0xe,0x0, +0xb4,0xff,0x50,0xff,0x6,0xff,0x36,0xff,0x6b,0xff,0x3a,0xff, +0x37,0xff,0xa1,0xff,0xd9,0xff,0xd4,0xff,0x1b,0x0,0x7f,0x0, +0x81,0x0,0x45,0x0,0x22,0x0,0x2,0x0,0xbe,0xff,0x81,0xff, +0x5b,0xff,0x43,0xff,0x58,0xff,0x79,0xff,0x70,0xff,0x7f,0xff, +0xbf,0xff,0xe6,0xff,0x6,0x0,0x4c,0x0,0x5c,0x0,0x38,0x0, +0x37,0x0,0x11,0x0,0xb9,0xff,0xa1,0xff,0x97,0xff,0x72,0xff, +0x66,0xff,0x61,0xff,0x90,0xff,0xe5,0xff,0xec,0xff,0xf3,0xff, +0x2a,0x0,0x36,0x0,0x36,0x0,0x3d,0x0,0x1b,0x0,0xcf,0xff, +0x70,0xff,0x3f,0xff,0x28,0xff,0xf,0xff,0x54,0xff,0xb5,0xff, +0xc4,0xff,0xe8,0xff,0x2a,0x0,0x46,0x0,0x66,0x0,0x71,0x0, +0x45,0x0,0x1c,0x0,0xe5,0xff,0x83,0xff,0x3f,0xff,0x2f,0xff, +0x30,0xff,0x61,0xff,0xa2,0xff,0xb6,0xff,0xe2,0xff,0x1e,0x0, +0x25,0x0,0x2f,0x0,0x1c,0x0,0xc6,0xff,0x94,0xff,0x7f,0xff, +0x53,0xff,0x1f,0xff,0xe6,0xfe,0x3,0xff,0x68,0xff,0xb5,0xff, +0x10,0x0,0x44,0x0,0x3a,0x0,0x5d,0x0,0x58,0x0,0x1c,0x0, +0x16,0x0,0xdd,0xff,0x67,0xff,0x2a,0xff,0x13,0xff,0x2d,0xff, +0x6d,0xff,0x90,0xff,0xbe,0xff,0xfd,0xff,0x16,0x0,0x1,0x0, +0xdb,0xff,0xbf,0xff,0x98,0xff,0x92,0xff,0xef,0xff,0x1e,0x0, +0xeb,0xff,0xeb,0xff,0xf1,0xff,0xcf,0xff,0x3,0x0,0x26,0x0, +0xd6,0xff,0xa6,0xff,0x91,0xff,0x52,0xff,0x46,0xff,0x4a,0xff, +0x44,0xff,0x8f,0xff,0xcf,0xff,0xd9,0xff,0x1a,0x0,0x70,0x0, +0x95,0x0,0x64,0x0,0xeb,0xff,0xba,0xff,0xa8,0xff,0x5f,0xff, +0x69,0xff,0x95,0xff,0x82,0xff,0xb2,0xff,0xff,0xff,0x1e,0x0, +0x48,0x0,0x50,0x0,0x3b,0x0,0x37,0x0,0x12,0x0,0xf3,0xff, +0xef,0xff,0xbb,0xff,0x8b,0xff,0x99,0xff,0x93,0xff,0x72,0xff, +0x7f,0xff,0xaa,0xff,0xdd,0xff,0x20,0x0,0x33,0x0,0x2a,0x0, +0x4c,0x0,0x45,0x0,0x7,0x0,0xf9,0xff,0xee,0xff,0xc1,0xff, +0x9a,0xff,0x73,0xff,0x72,0xff,0xa7,0xff,0xe9,0xff,0x12,0x0, +0x10,0x0,0x29,0x0,0x53,0x0,0x2a,0x0,0x1,0x0,0x18,0x0, +0xf,0x0,0xe9,0xff,0xc9,0xff,0xc9,0xff,0xf0,0xff,0xe5,0xff, +0xd4,0xff,0x1b,0x0,0x58,0x0,0x37,0x0,0x7,0x0,0x1b,0x0, +0x32,0x0,0xc,0x0,0xf2,0xff,0xdc,0xff,0xa3,0xff,0xa3,0xff, +0xc0,0xff,0xc2,0xff,0xda,0xff,0xef,0xff,0x11,0x0,0x3a,0x0, +0x23,0x0,0x26,0x0,0x33,0x0,0xdc,0xff,0xb4,0xff,0xdc,0xff, +0xd5,0xff,0xce,0xff,0xe1,0xff,0xed,0xff,0x1b,0x0,0x4b,0x0, +0x37,0x0,0x9,0x0,0x8,0x0,0x0,0x0,0xe0,0xff,0xec,0xff, +0xd4,0xff,0x8d,0xff,0x93,0xff,0x98,0xff,0x8c,0xff,0xc6,0xff, +0xc9,0xff,0xb9,0xff,0x1b,0x0,0x58,0x0,0x42,0x0,0x2c,0x0, +0x15,0x0,0x14,0x0,0xf7,0xff,0xbb,0xff,0xb4,0xff,0x96,0xff, +0x6b,0xff,0x8c,0xff,0x8b,0xff,0x69,0xff,0x7e,0xff,0xa1,0xff, +0xd2,0xff,0x1,0x0,0x14,0x0,0x25,0x0,0xc,0x0,0x9,0x0, +0x5e,0x0,0x7a,0x0,0x4c,0x0,0x1a,0x0,0xb5,0xff,0x70,0xff, +0x7e,0xff,0x74,0xff,0x75,0xff,0xad,0xff,0xd6,0xff,0xe2,0xff, +0xd7,0xff,0xdc,0xff,0x5,0x0,0x4,0x0,0xd7,0xff,0xb0,0xff, +0x8e,0xff,0x9a,0xff,0xb9,0xff,0xb4,0xff,0xc7,0xff,0xe5,0xff, +0xcf,0xff,0xc0,0xff,0xc4,0xff,0xc3,0xff,0xdf,0xff,0xfe,0xff, +0x2,0x0,0x9,0x0,0xc,0x0,0xf8,0xff,0xda,0xff,0xb6,0xff, +0x8b,0xff,0x5f,0xff,0x47,0xff,0x35,0xff,0x3b,0xff,0x75,0xff, +0xae,0xff,0xe8,0xff,0x3a,0x0,0x4c,0x0,0x49,0x0,0x6b,0x0, +0x32,0x0,0xe2,0xff,0xf9,0xff,0xf1,0xff,0xb8,0xff,0x90,0xff, +0x3c,0xff,0x1a,0xff,0x5f,0xff,0x83,0xff,0x9a,0xff,0xbe,0xff, +0xaa,0xff,0xad,0xff,0xe1,0xff,0xeb,0xff,0xf6,0xff,0x14,0x0, +0xfb,0xff,0xd1,0xff,0xc5,0xff,0xc0,0xff,0xe3,0xff,0x15,0x0, +0xf0,0xff,0xa7,0xff,0xaa,0xff,0xd7,0xff,0xef,0xff,0xdd,0xff, +0xad,0xff,0x8b,0xff,0x7a,0xff,0x81,0xff,0x92,0xff,0x77,0xff, +0x74,0xff,0xb6,0xff,0xdd,0xff,0xee,0xff,0x9,0x0,0xf,0x0, +0x1e,0x0,0x17,0x0,0xeb,0xff,0xeb,0xff,0xdb,0xff,0x8f,0xff, +0x5d,0xff,0x39,0xff,0x23,0xff,0x5c,0xff,0xae,0xff,0xc8,0xff, +0xb6,0xff,0xc0,0xff,0xe3,0xff,0xe6,0xff,0xf4,0xff,0xfb,0xff, +0xb0,0xff,0x82,0xff,0x9e,0xff,0xb0,0xff,0xc1,0xff,0xbb,0xff, +0xa2,0xff,0xc7,0xff,0xfe,0xff,0x23,0x0,0x45,0x0,0x24,0x0, +0xda,0xff,0xb4,0xff,0xad,0xff,0xb0,0xff,0x9a,0xff,0x72,0xff, +0x6d,0xff,0x7b,0xff,0x98,0xff,0xb3,0xff,0xb9,0xff,0xdf,0xff, +0xf3,0xff,0xc3,0xff,0xe1,0xff,0x32,0x0,0x21,0x0,0x11,0x0, +0x2c,0x0,0xef,0xff,0xa7,0xff,0xaf,0xff,0xa5,0xff,0x81,0xff, +0x6b,0xff,0x46,0xff,0x2a,0xff,0x30,0xff,0x4f,0xff,0x93,0xff, +0xca,0xff,0xd6,0xff,0xf3,0xff,0x2a,0x0,0x48,0x0,0x3e,0x0, +0x31,0x0,0x31,0x0,0xfb,0xff,0xa6,0xff,0x8b,0xff,0x89,0xff, +0x86,0xff,0x8e,0xff,0x78,0xff,0x6b,0xff,0x9d,0xff,0xdb,0xff, +0xf8,0xff,0xf1,0xff,0xe0,0xff,0xe8,0xff,0x2,0x0,0x19,0x0, +0x10,0x0,0xfe,0xff,0xff,0xff,0xc0,0xff,0x72,0xff,0x90,0xff, +0xb3,0xff,0x9a,0xff,0x90,0xff,0xa9,0xff,0xd5,0xff,0xde,0xff, +0xca,0xff,0xd0,0xff,0xc8,0xff,0xc7,0xff,0xd9,0xff,0xb6,0xff, +0xa5,0xff,0xc4,0xff,0xd1,0xff,0xf5,0xff,0xfc,0xff,0xbe,0xff, +0x9f,0xff,0x9d,0xff,0xad,0xff,0xce,0xff,0xde,0xff,0xb,0x0, +0x26,0x0,0x3,0x0,0x8,0x0,0x2,0x0,0xc5,0xff,0xb2,0xff, +0xa8,0xff,0x96,0xff,0xb2,0xff,0xc7,0xff,0xba,0xff,0xa3,0xff, +0xb6,0xff,0x6,0x0,0x20,0x0,0x0,0x0,0x15,0x0,0x34,0x0, +0x2d,0x0,0x21,0x0,0xa,0x0,0xfc,0xff,0xe2,0xff,0x95,0xff, +0x61,0xff,0x87,0xff,0xcc,0xff,0xe5,0xff,0xd8,0xff,0xe2,0xff, +0xe,0x0,0x27,0x0,0x23,0x0,0x9,0x0,0xe7,0xff,0xf4,0xff, +0x17,0x0,0xfa,0xff,0xcc,0xff,0xb6,0xff,0x92,0xff,0x90,0xff, +0xc9,0xff,0xf,0x0,0x59,0x0,0x6d,0x0,0x30,0x0,0xe,0x0, +0x10,0x0,0x1,0x0,0xf1,0xff,0xce,0xff,0x9d,0xff,0x98,0xff, +0xa5,0xff,0x9a,0xff,0xa5,0xff,0xcf,0xff,0xd9,0xff,0xed,0xff, +0x36,0x0,0x4e,0x0,0x30,0x0,0x2d,0x0,0x10,0x0,0xf0,0xff, +0xf3,0xff,0xbd,0xff,0x7a,0xff,0x70,0xff,0x73,0xff,0x8a,0xff, +0xb3,0xff,0xdb,0xff,0xc,0x0,0x27,0x0,0x38,0x0,0x44,0x0, +0x34,0x0,0x28,0x0,0xf4,0xff,0x93,0xff,0x69,0xff,0x74,0xff, +0x92,0xff,0x9f,0xff,0x8f,0xff,0xc4,0xff,0x1,0x0,0xfe,0xff, +0x30,0x0,0x67,0x0,0x55,0x0,0x46,0x0,0x18,0x0,0xdc,0xff, +0xd4,0xff,0xa5,0xff,0x5b,0xff,0x49,0xff,0x4c,0xff,0x5c,0xff, +0x87,0xff,0xb3,0xff,0xda,0xff,0xf9,0xff,0xa,0x0,0x12,0x0, +0x17,0x0,0x1d,0x0,0x18,0x0,0xf7,0xff,0xbb,0xff,0xa2,0xff, +0xae,0xff,0x85,0xff,0x5b,0xff,0x6e,0xff,0x6e,0xff,0x77,0xff, +0x9d,0xff,0xa0,0xff,0xc7,0xff,0xb,0x0,0x2a,0x0,0x5e,0x0, +0x73,0x0,0x2e,0x0,0xfc,0xff,0xdb,0xff,0xa3,0xff,0x80,0xff, +0x50,0xff,0x13,0xff,0x30,0xff,0x8f,0xff,0xbb,0xff,0xc2,0xff, +0xe4,0xff,0x1a,0x0,0x56,0x0,0x83,0x0,0x87,0x0,0x5a,0x0, +0xe9,0xff,0x7c,0xff,0x5a,0xff,0x36,0xff,0x19,0xff,0x36,0xff, +0x47,0xff,0x65,0xff,0x98,0xff,0xb5,0xff,0x17,0x0,0x7b,0x0, +0x5e,0x0,0x42,0x0,0x42,0x0,0x21,0x0,0x0,0x0,0x9f,0xff, +0x2a,0xff,0x22,0xff,0x25,0xff,0x27,0xff,0x75,0xff,0x9e,0xff, +0xa3,0xff,0xec,0xff,0x37,0x0,0x5a,0x0,0x79,0x0,0x7c,0x0, +0x5b,0x0,0x20,0x0,0xcd,0xff,0x99,0xff,0x86,0xff,0x5e,0xff, +0x43,0xff,0x54,0xff,0x6f,0xff,0x84,0xff,0xac,0xff,0xec,0xff, +0x1e,0x0,0x3d,0x0,0x60,0x0,0x48,0x0,0xff,0xff,0xeb,0xff, +0xbe,0xff,0x58,0xff,0x4d,0xff,0x6b,0xff,0x5d,0xff,0x63,0xff, +0x7c,0xff,0x9a,0xff,0xca,0xff,0xf8,0xff,0x29,0x0,0x31,0x0, +0x12,0x0,0xc,0x0,0xf7,0xff,0xbf,0xff,0x89,0xff,0x56,0xff, +0x52,0xff,0x65,0xff,0x59,0xff,0x63,0xff,0x93,0xff,0xc7,0xff, +0xe0,0xff,0xef,0xff,0x3e,0x0,0x71,0x0,0x4e,0x0,0x41,0x0, +0x12,0x0,0xc6,0xff,0xc8,0xff,0x94,0xff,0x3c,0xff,0x47,0xff, +0x40,0xff,0x35,0xff,0x78,0xff,0xa2,0xff,0xbb,0xff,0xf2,0xff, +0x17,0x0,0x30,0x0,0x41,0x0,0x3a,0x0,0x4,0x0,0xbe,0xff, +0xc3,0xff,0xc0,0xff,0x7b,0xff,0x68,0xff,0x78,0xff,0x8b,0xff, +0xb9,0xff,0xbb,0xff,0xb5,0xff,0xd9,0xff,0xe1,0xff,0xf4,0xff, +0x22,0x0,0x1f,0x0,0x0,0x0,0xd1,0xff,0x91,0xff,0x6b,0xff, +0x56,0xff,0x50,0xff,0x50,0xff,0x55,0xff,0x93,0xff,0xd5,0xff, +0xfe,0xff,0x3d,0x0,0x4f,0x0,0x1d,0x0,0xfa,0xff,0xd9,0xff, +0xc5,0xff,0xc5,0xff,0x9c,0xff,0x63,0xff,0x4c,0xff,0x4a,0xff, +0x56,0xff,0x5c,0xff,0x81,0xff,0xdf,0xff,0x24,0x0,0x3c,0x0, +0x48,0x0,0x3d,0x0,0x33,0x0,0x19,0x0,0xc9,0xff,0x96,0xff, +0x99,0xff,0x84,0xff,0x61,0xff,0x6b,0xff,0x9b,0xff,0xaf,0xff, +0xa0,0xff,0xb8,0xff,0xe0,0xff,0xe2,0xff,0xf2,0xff,0x9,0x0, +0xa,0x0,0x15,0x0,0xf2,0xff,0x99,0xff,0x74,0xff,0x60,0xff, +0x40,0xff,0x76,0xff,0xb3,0xff,0xab,0xff,0xd1,0xff,0xa,0x0, +0xf9,0xff,0xf5,0xff,0x7,0x0,0xe1,0xff,0xc3,0xff,0xc6,0xff, +0xb6,0xff,0xaf,0xff,0xbc,0xff,0xb6,0xff,0xbb,0xff,0xd0,0xff, +0xbf,0xff,0xaf,0xff,0xd2,0xff,0xe1,0xff,0xd7,0xff,0xf8,0xff, +0x4,0x0,0xe5,0xff,0xfa,0xff,0x19,0x0,0xfc,0xff,0xd6,0xff, +0xb5,0xff,0x91,0xff,0x92,0xff,0xb4,0xff,0xd3,0xff,0xe1,0xff, +0xe5,0xff,0xf1,0xff,0xf9,0xff,0xf3,0xff,0xf3,0xff,0xff,0xff, +0xee,0xff,0xad,0xff,0x8d,0xff,0xa5,0xff,0x99,0xff,0x8a,0xff, +0xb5,0xff,0xdd,0xff,0xfd,0xff,0x6,0x0,0xce,0xff,0xc5,0xff, +0xf9,0xff,0xf5,0xff,0xe9,0xff,0xf3,0xff,0xcf,0xff,0xa5,0xff, +0x95,0xff,0x83,0xff,0x88,0xff,0xaa,0xff,0xcd,0xff,0xec,0xff, +0xff,0xff,0x0,0x0,0xfa,0xff,0xe5,0xff,0xbd,0xff,0xa4,0xff, +0xa8,0xff,0xa7,0xff,0x93,0xff,0x81,0xff,0x94,0xff,0xc2,0xff, +0xdf,0xff,0xed,0xff,0xf0,0xff,0xe1,0xff,0xda,0xff,0xd4,0xff, +0xd1,0xff,0xec,0xff,0xff,0xff,0xf8,0xff,0xfb,0xff,0xf9,0xff, +0xeb,0xff,0xd8,0xff,0xd6,0xff,0xe4,0xff,0xd3,0xff,0xd9,0xff, +0x14,0x0,0x3,0x0,0xd3,0xff,0xec,0xff,0xed,0xff,0xdd,0xff, +0x0,0x0,0x8,0x0,0xf7,0xff,0xb,0x0,0x1e,0x0,0x15,0x0, +0x1b,0x0,0x2a,0x0,0x16,0x0,0x2,0x0,0xff,0xff,0xd3,0xff, +0xa5,0xff,0x9d,0xff,0x9e,0xff,0xc0,0xff,0xeb,0xff,0x3,0x0, +0x1c,0x0,0x3,0x0,0xfc,0xff,0x27,0x0,0xf6,0xff,0xc0,0xff, +0xea,0xff,0xf0,0xff,0xe9,0xff,0xfb,0xff,0xdb,0xff,0xc0,0xff, +0xcd,0xff,0xda,0xff,0xe4,0xff,0xe1,0xff,0xfa,0xff,0x22,0x0, +0x14,0x0,0xfe,0xff,0xf5,0xff,0xd9,0xff,0xc0,0xff,0xbb,0xff, +0xcf,0xff,0xd8,0xff,0xc2,0xff,0xc2,0xff,0xc9,0xff,0xc3,0xff, +0xd5,0xff,0xe2,0xff,0xd4,0xff,0xd3,0xff,0xe2,0xff,0xdf,0xff, +0xbf,0xff,0xb8,0xff,0xd1,0xff,0xd2,0xff,0xcb,0xff,0xb5,0xff, +0x99,0xff,0xb7,0xff,0xd4,0xff,0xd6,0xff,0xe7,0xff,0xcf,0xff, +0xa7,0xff,0xaa,0xff,0xb1,0xff,0xb1,0xff,0xa6,0xff,0xb0,0xff, +0xe4,0xff,0xe4,0xff,0xc7,0xff,0xce,0xff,0xbe,0xff,0xc2,0xff, +0xe0,0xff,0xc8,0xff,0xc7,0xff,0xf2,0xff,0xef,0xff,0xe6,0xff, +0xf8,0xff,0xe2,0xff,0xad,0xff,0xc9,0xff,0xd,0x0,0xe5,0xff, +0x9a,0xff,0xa0,0xff,0xbb,0xff,0xcd,0xff,0xc2,0xff,0x9f,0xff, +0xa7,0xff,0xaa,0xff,0xbd,0xff,0x5,0x0,0xf9,0xff,0xc4,0xff, +0xca,0xff,0xb4,0xff,0xa2,0xff,0xa8,0xff,0x7b,0xff,0x57,0xff, +0x55,0xff,0x5a,0xff,0x7a,0xff,0x95,0xff,0xbc,0xff,0xfe,0xff, +0x8,0x0,0xe6,0xff,0xdc,0xff,0xe4,0xff,0xe2,0xff,0xca,0xff, +0xb3,0xff,0x98,0xff,0x6e,0xff,0x68,0xff,0x72,0xff,0x64,0xff, +0x74,0xff,0x99,0xff,0xc4,0xff,0xa,0x0,0x27,0x0,0xc,0x0, +0x2,0x0,0xe9,0xff,0xb6,0xff,0xb4,0xff,0xba,0xff,0x8a,0xff, +0x5e,0xff,0x4e,0xff,0x61,0xff,0xa4,0xff,0xbf,0xff,0xac,0xff, +0xcc,0xff,0xd6,0xff,0xaa,0xff,0xb4,0xff,0xd6,0xff,0xcb,0xff, +0xb5,0xff,0x9e,0xff,0x79,0xff,0x63,0xff,0x78,0xff,0x8f,0xff, +0x8c,0xff,0xb2,0xff,0xf4,0xff,0xf3,0xff,0xd1,0xff,0xd8,0xff, +0xfb,0xff,0xb,0x0,0xf3,0xff,0xd2,0xff,0xb9,0xff,0xb9,0xff, +0xd4,0xff,0xb4,0xff,0x8a,0xff,0xb2,0xff,0xb8,0xff,0x9c,0xff, +0xb9,0xff,0xc0,0xff,0xaf,0xff,0xbc,0xff,0xbd,0xff,0xc0,0xff, +0xca,0xff,0xbd,0xff,0xba,0xff,0xc1,0xff,0xb3,0xff,0xa3,0xff, +0xaf,0xff,0xbb,0xff,0x96,0xff,0x97,0xff,0xd5,0xff,0xc5,0xff, +0xa5,0xff,0xc8,0xff,0xc1,0xff,0xbe,0xff,0xe3,0xff,0xc3,0xff, +0xa8,0xff,0xcf,0xff,0xc9,0xff,0xb0,0xff,0xc7,0xff,0xd9,0xff, +0xdb,0xff,0xee,0xff,0xed,0xff,0xb6,0xff,0xa3,0xff,0xeb,0xff, +0xd,0x0,0xe5,0xff,0xe1,0xff,0xe9,0xff,0xca,0xff,0xc3,0xff, +0xd3,0xff,0xc1,0xff,0xb3,0xff,0xc5,0xff,0xcc,0xff,0xc5,0xff, +0xc0,0xff,0xad,0xff,0xae,0xff,0xd5,0xff,0xda,0xff,0xbd,0xff, +0xc0,0xff,0xd8,0xff,0xe5,0xff,0xe3,0xff,0xcd,0xff,0xc9,0xff, +0xec,0xff,0xf9,0xff,0xdd,0xff,0xd9,0xff,0xfd,0xff,0xc,0x0, +0xe9,0xff,0xd2,0xff,0xdf,0xff,0xcf,0xff,0xbe,0xff,0xd9,0xff, +0xda,0xff,0xc9,0xff,0xdf,0xff,0xf3,0xff,0x4,0x0,0x12,0x0, +0xff,0xff,0xfe,0xff,0xfb,0xff,0xe7,0xff,0x8,0x0,0xff,0xff, +0xb2,0xff,0xbe,0xff,0xdb,0xff,0xc0,0xff,0xe5,0xff,0x15,0x0, +0xf,0x0,0x20,0x0,0x30,0x0,0x31,0x0,0x37,0x0,0x2c,0x0, +0x2b,0x0,0x23,0x0,0xfa,0xff,0xf7,0xff,0xfa,0xff,0xd5,0xff, +0xd0,0xff,0xd4,0xff,0xca,0xff,0xf9,0xff,0x11,0x0,0xee,0xff, +0xd,0x0,0x33,0x0,0xa,0x0,0x3,0x0,0xd,0x0,0xe5,0xff, +0xc6,0xff,0xad,0xff,0x99,0xff,0xac,0xff,0xb1,0xff,0xa4,0xff, +0xa5,0xff,0xad,0xff,0xcd,0xff,0xde,0xff,0xd1,0xff,0xe2,0xff, +0xf3,0xff,0xf7,0xff,0xfc,0xff,0xd0,0xff,0xb5,0xff,0xd4,0xff, +0xcb,0xff,0xb5,0xff,0xca,0xff,0xc2,0xff,0xb4,0xff,0xcf,0xff, +0xd3,0xff,0xd0,0xff,0xf4,0xff,0x7,0x0,0x8,0x0,0x14,0x0, +0xf4,0xff,0xdf,0xff,0x8,0x0,0xef,0xff,0x9d,0xff,0x98,0xff, +0xb1,0xff,0x9e,0xff,0x87,0xff,0x9f,0xff,0xd5,0xff,0xd7,0xff, +0xcd,0xff,0xff,0xff,0xb,0x0,0xf1,0xff,0xf2,0xff,0xe8,0xff, +0xe1,0xff,0xc1,0xff,0x79,0xff,0x80,0xff,0xaf,0xff,0xba,0xff, +0xdb,0xff,0xed,0xff,0xd6,0xff,0xd3,0xff,0xdf,0xff,0xf5,0xff, +0xfd,0xff,0xf2,0xff,0x2,0x0,0xc,0x0,0x3,0x0,0xec,0xff, +0xc2,0xff,0xc6,0xff,0xd8,0xff,0xb6,0xff,0xa9,0xff,0xab,0xff, +0xad,0xff,0xd3,0xff,0xcb,0xff,0xa0,0xff,0xc9,0xff,0xc,0x0, +0x0,0x0,0xd1,0xff,0xc7,0xff,0xd3,0xff,0xe2,0xff,0xdb,0xff, +0x9c,0xff,0x78,0xff,0x93,0xff,0x7f,0xff,0x78,0xff,0xaf,0xff, +0xb9,0xff,0xd5,0xff,0x8,0x0,0xee,0xff,0xf6,0xff,0x21,0x0, +0xf1,0xff,0xb7,0xff,0xaa,0xff,0xa5,0xff,0xac,0xff,0xa2,0xff, +0x93,0xff,0xa5,0xff,0xc1,0xff,0xd2,0xff,0xd3,0xff,0xdc,0xff, +0xdb,0xff,0xbb,0xff,0xbf,0xff,0xdd,0xff,0xd4,0xff,0xc1,0xff, +0xaa,0xff,0x90,0xff,0xa1,0xff,0xd3,0xff,0xd7,0xff,0x95,0xff, +0x87,0xff,0xbd,0xff,0xb0,0xff,0xa7,0xff,0xe0,0xff,0xe1,0xff, +0xce,0xff,0xcd,0xff,0xb8,0xff,0xcf,0xff,0xde,0xff,0xc7,0xff, +0xdd,0xff,0xcf,0xff,0x9c,0xff,0xb4,0xff,0xbf,0xff,0xa2,0xff, +0xa8,0xff,0xb1,0xff,0xbe,0xff,0xe1,0xff,0xf7,0xff,0xfc,0xff, +0xfa,0xff,0xf2,0xff,0xdd,0xff,0xb1,0xff,0x8d,0xff,0x88,0xff, +0x9f,0xff,0xac,0xff,0x9e,0xff,0xa8,0xff,0xcb,0xff,0xda,0xff, +0xec,0xff,0xa,0x0,0x5,0x0,0xe1,0xff,0xd9,0xff,0xe4,0xff, +0xc9,0xff,0xb0,0xff,0xb4,0xff,0xa7,0xff,0xb2,0xff,0xc3,0xff, +0x92,0xff,0x90,0xff,0xc9,0xff,0xd4,0xff,0x3,0x0,0x40,0x0, +0x10,0x0,0xe5,0xff,0xff,0xff,0xf2,0xff,0xcc,0xff,0xb5,0xff, +0x98,0xff,0x9d,0xff,0xc6,0xff,0xcf,0xff,0xce,0xff,0xe8,0xff, +0xe3,0xff,0xc2,0xff,0xd5,0xff,0xfd,0xff,0xf5,0xff,0xd9,0xff, +0xcc,0xff,0xcd,0xff,0xe6,0xff,0x8,0x0,0x0,0x0,0xe0,0xff, +0xd7,0xff,0xd6,0xff,0xe8,0xff,0x9,0x0,0xb,0x0,0x12,0x0, +0x1a,0x0,0xed,0xff,0xda,0xff,0xf3,0xff,0xee,0xff,0xed,0xff, +0xe9,0xff,0xd6,0xff,0xf3,0xff,0x10,0x0,0x3,0x0,0xe5,0xff, +0xc2,0xff,0xd0,0xff,0xea,0xff,0xe1,0xff,0xf1,0xff,0xf9,0xff, +0xfd,0xff,0x14,0x0,0xeb,0xff,0xd8,0xff,0xfa,0xff,0xd4,0xff, +0xd5,0xff,0x16,0x0,0xe,0x0,0xa,0x0,0x12,0x0,0xf6,0xff, +0x11,0x0,0x1e,0x0,0xea,0xff,0xd4,0xff,0xd2,0xff,0xbe,0xff, +0xb4,0xff,0xbd,0xff,0xcb,0xff,0xc8,0xff,0xde,0xff,0xf3,0xff, +0xd1,0xff,0xdf,0xff,0xf,0x0,0xf5,0xff,0xe3,0xff,0xf4,0xff, +0xe5,0xff,0xc2,0xff,0x87,0xff,0x6b,0xff,0x99,0xff,0xb4,0xff, +0xab,0xff,0xa1,0xff,0x9c,0xff,0xb0,0xff,0xd1,0xff,0xde,0xff, +0xc6,0xff,0xb0,0xff,0xd9,0xff,0xe5,0xff,0xad,0xff,0xb3,0xff, +0xd9,0xff,0xd7,0xff,0xd7,0xff,0xcf,0xff,0xd2,0xff,0xfd,0xff, +0xff,0xff,0xd7,0xff,0xcb,0xff,0xd0,0xff,0xc2,0xff,0xab,0xff, +0xc7,0xff,0xef,0xff,0xd0,0xff,0xc0,0xff,0xdc,0xff,0xd5,0xff, +0xd6,0xff,0xe5,0xff,0xcb,0xff,0xcc,0xff,0xe2,0xff,0xc6,0xff, +0xbb,0xff,0xcb,0xff,0xb8,0xff,0xaf,0xff,0xb6,0xff,0xa6,0xff, +0xb4,0xff,0xd4,0xff,0xcb,0xff,0xcd,0xff,0xde,0xff,0xc6,0xff, +0xb7,0xff,0xd1,0xff,0xdb,0xff,0xdb,0xff,0xe9,0xff,0xfb,0xff, +0xfb,0xff,0xe2,0xff,0xdc,0xff,0xee,0xff,0xe7,0xff,0xe9,0xff, +0xfa,0xff,0xea,0xff,0xee,0xff,0xfa,0xff,0xca,0xff,0xbc,0xff, +0xf5,0xff,0x5,0x0,0xe5,0xff,0xbf,0xff,0xb1,0xff,0xe0,0xff, +0xfb,0xff,0xd8,0xff,0xdb,0xff,0xf7,0xff,0xf1,0xff,0xfd,0xff, +0x1,0x0,0xd9,0xff,0xc8,0xff,0xda,0xff,0xde,0xff,0xd0,0xff, +0xd3,0xff,0x5,0x0,0x27,0x0,0x1,0x0,0xd6,0xff,0xc8,0xff, +0xbc,0xff,0xc2,0xff,0xcb,0xff,0xb3,0xff,0xa4,0xff,0xb1,0xff, +0xbc,0xff,0xd0,0xff,0xea,0xff,0xee,0xff,0xec,0xff,0xe1,0xff, +0xce,0xff,0xdf,0xff,0xe3,0xff,0xba,0xff,0xb8,0xff,0xcd,0xff, +0xbd,0xff,0xaa,0xff,0x9e,0xff,0xa5,0xff,0xc6,0xff,0xb8,0xff, +0xa1,0xff,0xc4,0xff,0xe6,0xff,0xf4,0xff,0xf1,0xff,0xd0,0xff, +0xc2,0xff,0xc3,0xff,0xab,0xff,0x9a,0xff,0x9d,0xff,0xa0,0xff, +0xa7,0xff,0xb4,0xff,0xc3,0xff,0xd1,0xff,0xd5,0xff,0xcb,0xff, +0xbe,0xff,0xba,0xff,0xc8,0xff,0xd5,0xff,0xb4,0xff,0x91,0xff, +0x99,0xff,0x93,0xff,0x91,0xff,0xb5,0xff,0xc0,0xff,0xd5,0xff, +0xf7,0xff,0xd8,0xff,0xb3,0xff,0xaa,0xff,0xa4,0xff,0xc0,0xff, +0xc5,0xff,0xb0,0xff,0xbf,0xff,0xbc,0xff,0x9b,0xff,0x84,0xff, +0x87,0xff,0xb9,0xff,0xcd,0xff,0xab,0xff,0xa4,0xff,0xa8,0xff, +0xb0,0xff,0xb9,0xff,0xaa,0xff,0xcc,0xff,0xf2,0xff,0xcb,0xff, +0xb8,0xff,0xca,0xff,0xcc,0xff,0xd1,0xff,0xcd,0xff,0xbf,0xff, +0xa7,0xff,0x84,0xff,0x97,0xff,0xc6,0xff,0xe1,0xff,0xf5,0xff, +0xeb,0xff,0xe2,0xff,0xf9,0xff,0xf7,0xff,0xda,0xff,0xd3,0xff, +0xdd,0xff,0xec,0xff,0xfd,0xff,0xfa,0xff,0xda,0xff,0xc2,0xff, +0xcd,0xff,0xe3,0xff,0xe5,0xff,0xce,0xff,0xce,0xff,0xef,0xff, +0xe8,0xff,0xdb,0xff,0xe2,0xff,0xc9,0xff,0xd5,0xff,0xfe,0xff, +0xdd,0xff,0xd0,0xff,0xea,0xff,0xd9,0xff,0xd7,0xff,0xe5,0xff, +0xe5,0xff,0xf7,0xff,0x0,0x0,0xf9,0xff,0xe4,0xff,0xd2,0xff, +0xf1,0xff,0xf2,0xff,0xc2,0xff,0xc8,0xff,0xd7,0xff,0xda,0xff, +0x2,0x0,0x2,0x0,0xcb,0xff,0xbf,0xff,0xe0,0xff,0xf6,0xff, +0xf9,0xff,0xf9,0xff,0xe1,0xff,0xd1,0xff,0xea,0xff,0xd8,0xff, +0xab,0xff,0xc6,0xff,0xed,0xff,0xef,0xff,0xed,0xff,0xeb,0xff, +0xee,0xff,0xde,0xff,0xb1,0xff,0x9a,0xff,0x98,0xff,0xa6,0xff, +0xb7,0xff,0xb7,0xff,0xc8,0xff,0xd1,0xff,0xc2,0xff,0xcc,0xff, +0xcc,0xff,0xb6,0xff,0xc4,0xff,0xca,0xff,0xaf,0xff,0xad,0xff, +0xb3,0xff,0x9b,0xff,0x88,0xff,0x8e,0xff,0x95,0xff,0xa8,0xff, +0xc2,0xff,0xc0,0xff,0xcc,0xff,0xf6,0xff,0xf6,0xff,0xd5,0xff, +0xbd,0xff,0xb7,0xff,0xc8,0xff,0xbe,0xff,0xa5,0xff,0xbe,0xff, +0xe3,0xff,0xdb,0xff,0xc4,0xff,0xc9,0xff,0xe1,0xff,0xd8,0xff, +0xc8,0xff,0xcf,0xff,0xbc,0xff,0xb0,0xff,0xd4,0xff,0xe1,0xff, +0xd9,0xff,0xe0,0xff,0xec,0xff,0x3,0x0,0xff,0xff,0xe0,0xff, +0xf9,0xff,0x1b,0x0,0xf4,0xff,0xc1,0xff,0xaf,0xff,0xb4,0xff, +0xd6,0xff,0xf4,0xff,0xe8,0xff,0xdf,0xff,0xf2,0xff,0xfa,0xff, +0xfc,0xff,0x4,0x0,0xf6,0xff,0xde,0xff,0xd0,0xff,0xc9,0xff, +0xd1,0xff,0xe0,0xff,0xf7,0xff,0x2,0x0,0xd1,0xff,0xb1,0xff, +0xdd,0xff,0xea,0xff,0xe6,0xff,0xfb,0xff,0xcd,0xff,0xab,0xff, +0xe1,0xff,0x0,0x0,0x0,0x0,0xf0,0xff,0xca,0xff,0xde,0xff, +0xf1,0xff,0xc6,0xff,0xc8,0xff,0xe7,0xff,0xea,0xff,0xed,0xff, +0xda,0xff,0xd9,0xff,0xfa,0xff,0xf6,0xff,0xea,0xff,0xde,0xff, +0xcf,0xff,0x6,0x0,0x12,0x0,0xc5,0xff,0xcd,0xff,0xea,0xff, +0xc2,0xff,0xba,0xff,0x9e,0xff,0x67,0xff,0x86,0xff,0xac,0xff, +0xa8,0xff,0xba,0xff,0xc4,0xff,0xd1,0xff,0x5,0x0,0x1e,0x0, +0xfc,0xff,0xca,0xff,0xc1,0xff,0xd0,0xff,0xca,0xff,0xcf,0xff, +0xdc,0xff,0xd0,0xff,0xe1,0xff,0xf7,0xff,0xdc,0xff,0xd4,0xff, +0xfb,0xff,0x22,0x0,0x1c,0x0,0xdc,0xff,0xb4,0xff,0x90,0xff, +0xd9,0xfe,0x49,0xfe,0x5a,0xff,0x4d,0x1,0x32,0x2,0xf0,0x1, +0xe3,0x0,0x1d,0xff,0x57,0xfe,0x5a,0xff,0x6,0x0,0xae,0xff, +0x35,0xff,0x47,0xfe,0xb4,0xfd,0xc3,0xfe,0xe3,0xff,0x1c,0x0, +0x8a,0x0,0xd7,0x0,0x98,0x0,0xc5,0x0,0xf2,0x0,0x2f,0x0, +0x6a,0xff,0x72,0xff,0x61,0xff,0xb5,0xfe,0x79,0xfe,0x0,0xff, +0x30,0xff,0x22,0xff,0xb7,0xff,0x6b,0x0,0xcc,0x0,0xf8,0x0, +0xad,0x0,0x3f,0x0,0xd,0x0,0xa0,0xff,0x12,0xff,0xf7,0xfe, +0x31,0xff,0x3e,0xff,0xb,0xff,0xa,0xff,0x4f,0xff,0xa8,0xff, +0x38,0x0,0xd1,0x0,0xf4,0x0,0xa9,0x0,0x52,0x0,0xf,0x0, +0xa2,0xff,0x30,0xff,0x1d,0xff,0x35,0xff,0x49,0xff,0x51,0xff, +0x46,0xff,0x98,0xff,0xf,0x0,0x31,0x0,0x7b,0x0,0xae,0x0, +0x52,0x0,0x13,0x0,0xfa,0xff,0xd6,0xff,0xde,0xff,0xb2,0xff, +0x61,0xff,0x4c,0xff,0x5a,0xff,0xa0,0xff,0xe1,0xff,0xeb,0xff, +0xa,0x0,0x19,0x0,0x20,0x0,0x47,0x0,0x43,0x0,0x3d,0x0, +0x29,0x0,0xc5,0xff,0x8d,0xff,0x8e,0xff,0x79,0xff,0x7b,0xff, +0x87,0xff,0x93,0xff,0xc4,0xff,0xef,0xff,0x4,0x0,0x9,0x0, +0xfa,0xff,0xf2,0xff,0x6,0x0,0x14,0x0,0xe1,0xff,0xae,0xff, +0xb1,0xff,0x94,0xff,0x75,0xff,0x86,0xff,0x99,0xff,0xbf,0xff, +0xc5,0xff,0xba,0xff,0xfb,0xff,0xff,0xff,0xc9,0xff,0xf1,0xff, +0xf6,0xff,0xd2,0xff,0xee,0xff,0xd5,0xff,0x99,0xff,0x97,0xff, +0x98,0xff,0xa3,0xff,0xb1,0xff,0xb1,0xff,0xca,0xff,0xe2,0xff, +0xe4,0xff,0xd2,0xff,0xaf,0xff,0xb9,0xff,0xe2,0xff,0xd7,0xff, +0xa9,0xff,0x96,0xff,0xa2,0xff,0xa6,0xff,0x99,0xff,0x95,0xff, +0x98,0xff,0x98,0xff,0x8d,0xff,0x89,0xff,0xa8,0xff,0xcc,0xff, +0xd3,0xff,0xc4,0xff,0xb8,0xff,0xb9,0xff,0x9a,0xff,0x71,0xff, +0x7d,0xff,0x8b,0xff,0x8d,0xff,0x9a,0xff,0x9b,0xff,0xb3,0xff, +0xd9,0xff,0xd9,0xff,0xd3,0xff,0xce,0xff,0xce,0xff,0xdc,0xff, +0xdd,0xff,0xe1,0xff,0xd1,0xff,0xa9,0xff,0xb5,0xff,0xbc,0xff, +0xa4,0xff,0xc4,0xff,0xd5,0xff,0xb7,0xff,0xd0,0xff,0x6,0x0, +0x25,0x0,0x32,0x0,0x17,0x0,0xe3,0xff,0xd2,0xff,0xec,0xff, +0xf0,0xff,0xc7,0xff,0xae,0xff,0xa3,0xff,0x8d,0xff,0x9f,0xff, +0xc0,0xff,0xc0,0xff,0xc1,0xff,0xc8,0xff,0xce,0xff,0xe6,0xff, +0x9,0x0,0x15,0x0,0xff,0xff,0xec,0xff,0xe9,0xff,0xd8,0xff, +0xd4,0xff,0xe9,0xff,0xf4,0xff,0xf7,0xff,0xe9,0xff,0xd8,0xff, +0xe1,0xff,0xe0,0xff,0xe8,0xff,0xfb,0xff,0xde,0xff,0xd7,0xff, +0xc,0x0,0x1a,0x0,0xf,0x0,0xe,0x0,0xfc,0xff,0xf4,0xff, +0xff,0xff,0xe,0x0,0x15,0x0,0x4,0x0,0x2,0x0,0xb,0x0, +0xf8,0xff,0xf3,0xff,0xf4,0xff,0xd4,0xff,0xc1,0xff,0xbb,0xff, +0xba,0xff,0xdb,0xff,0xf5,0xff,0xf5,0xff,0x1,0x0,0x5,0x0, +0xf6,0xff,0xed,0xff,0xe1,0xff,0xd4,0xff,0xe4,0xff,0xf4,0xff, +0xd8,0xff,0xca,0xff,0xea,0xff,0xfc,0xff,0x1,0x0,0xc,0x0, +0xfa,0xff,0xe3,0xff,0xe6,0xff,0xf1,0xff,0xfd,0xff,0xf7,0xff, +0xe6,0xff,0xee,0xff,0xe9,0xff,0xdf,0xff,0xff,0xff,0x5,0x0, +0xf3,0xff,0x5,0x0,0xf3,0xff,0xd1,0xff,0xff,0xff,0x29,0x0, +0x14,0x0,0xff,0xff,0xf4,0xff,0xe9,0xff,0xe5,0xff,0xe2,0xff, +0xe5,0xff,0xcf,0xff,0xa9,0xff,0xc1,0xff,0xef,0xff,0xe9,0xff, +0xf5,0xff,0xd,0x0,0xea,0xff,0xd8,0xff,0xe2,0xff,0xc6,0xff, +0xba,0xff,0xb6,0xff,0x99,0xff,0xb1,0xff,0xd6,0xff,0xcd,0xff, +0xe6,0xff,0x9,0x0,0xed,0xff,0xca,0xff,0xd0,0xff,0xe3,0xff, +0xd9,0xff,0xc1,0xff,0xc3,0xff,0xbf,0xff,0xbb,0xff,0xcf,0xff, +0xcb,0xff,0xc7,0xff,0xe9,0xff,0xf4,0xff,0xec,0xff,0xea,0xff, +0xe0,0xff,0xe6,0xff,0xec,0xff,0xe0,0xff,0xeb,0xff,0x0,0x0, +0x8,0x0,0x13,0x0,0x11,0x0,0xf2,0xff,0xda,0xff,0xe0,0xff, +0xdd,0xff,0xdb,0xff,0xf7,0xff,0xf2,0xff,0xce,0xff,0xbc,0xff, +0xa5,0xff,0xac,0xff,0xd5,0xff,0xd2,0xff,0xcc,0xff,0xd6,0xff, +0xc8,0xff,0xd3,0xff,0xf8,0xff,0x9,0x0,0xf8,0xff,0xc1,0xff, +0xa4,0xff,0xb4,0xff,0xae,0xff,0xa0,0xff,0x9d,0xff,0x9c,0xff, +0xaf,0xff,0xbb,0xff,0xbd,0xff,0xcf,0xff,0xe4,0xff,0xe6,0xff, +0xbd,0xff,0x9f,0xff,0xc0,0xff,0xcd,0xff,0xc4,0xff,0xe2,0xff, +0xe0,0xff,0xc6,0xff,0xca,0xff,0xc0,0xff,0xa7,0xff,0xa6,0xff, +0xbc,0xff,0xcc,0xff,0xbe,0xff,0xad,0xff,0xbd,0xff,0xda,0xff, +0xd1,0xff,0xa6,0xff,0xa9,0xff,0xba,0xff,0xa6,0xff,0xbc,0xff, +0xd9,0xff,0xbb,0xff,0xbb,0xff,0xd3,0xff,0xc8,0xff,0xc0,0xff, +0xc1,0xff,0xbf,0xff,0xb0,0xff,0xa9,0xff,0xc9,0xff,0xc6,0xff, +0xa5,0xff,0xb5,0xff,0xb7,0xff,0xae,0xff,0xe2,0xff,0x1,0x0, +0xe6,0xff,0xd4,0xff,0xcb,0xff,0xb4,0xff,0xac,0xff,0xbb,0xff, +0xb3,0xff,0xa7,0xff,0xc8,0xff,0xd5,0xff,0xc8,0xff,0xd5,0xff, +0xd7,0xff,0xcc,0xff,0xc3,0xff,0xb5,0xff,0xba,0xff,0x9d,0xff, +0x6e,0xff,0x8f,0xff,0xae,0xff,0xa6,0xff,0xc8,0xff,0xdc,0xff, +0xcb,0xff,0xd1,0xff,0xe0,0xff,0xed,0xff,0xe8,0xff,0xce,0xff, +0xd0,0xff,0xda,0xff,0xcd,0xff,0xb5,0xff,0x93,0xff,0x95,0xff, +0xb6,0xff,0xa9,0xff,0x99,0xff,0xbf,0xff,0xd2,0xff,0xca,0xff, +0xe3,0xff,0x3,0x0,0x2,0x0,0xe7,0xff,0xb6,0xff,0x99,0xff, +0xbf,0xff,0xe4,0xff,0xd1,0xff,0xc1,0xff,0xd4,0xff,0xed,0xff, +0xfa,0xff,0xe5,0xff,0xc1,0xff,0xb7,0xff,0xca,0xff,0xe5,0xff, +0xe2,0xff,0xce,0xff,0xda,0xff,0xd2,0xff,0xb5,0xff,0xcc,0xff, +0xcf,0xff,0xa0,0xff,0x8d,0xff,0x96,0xff,0xe3,0xff,0x8c,0x0, +0xdd,0x0,0x8d,0x0,0x7,0x0,0x74,0xff,0x15,0xff,0x34,0xff, +0xa1,0xff,0xf5,0xff,0xd5,0xff,0x6e,0xff,0x67,0xff,0xe2,0xff, +0x6b,0x0,0xa1,0x0,0x7f,0x0,0x45,0x0,0xe,0x0,0xe4,0xff, +0xd3,0xff,0xb2,0xff,0x86,0xff,0x6f,0xff,0x69,0xff,0x96,0xff, +0xeb,0xff,0x2a,0x0,0x46,0x0,0x37,0x0,0x2e,0x0,0x5c,0x0, +0x7a,0x0,0x69,0x0,0x29,0x0,0xae,0xff,0x58,0xff,0x57,0xff, +0x7b,0xff,0xb4,0xff,0xe4,0xff,0xf7,0xff,0x16,0x0,0x41,0x0, +0x53,0x0,0x40,0x0,0x37,0x0,0x23,0x0,0xcc,0xff,0xab,0xff, +0xd8,0xff,0xb8,0xff,0x78,0xff,0x7e,0xff,0xaa,0xff,0xdc,0xff, +0xea,0xff,0xf8,0xff,0x17,0x0,0x6,0x0,0xff,0xff,0xf8,0xff, +0xc0,0xff,0xca,0xff,0xd7,0xff,0x99,0xff,0x8a,0xff,0x99,0xff, +0xa4,0xff,0xba,0xff,0xa5,0xff,0xab,0xff,0xe1,0xff,0xe9,0xff, +0xee,0xff,0xf6,0xff,0xe0,0xff,0xcb,0xff,0xbe,0xff,0xcc,0xff, +0xdb,0xff,0xcc,0xff,0xc8,0xff,0xa5,0xff,0x7a,0xff,0xa6,0xff, +0xd9,0xff,0xd5,0xff,0xcb,0xff,0xc9,0xff,0xc9,0xff,0xbc,0xff, +0xca,0xff,0xec,0xff,0xca,0xff,0xa8,0xff,0xa2,0xff,0x77,0xff, +0x7f,0xff,0xa5,0xff,0x97,0xff,0xa7,0xff,0xc4,0xff,0xc8,0xff, +0xe7,0xff,0xe8,0xff,0xcc,0xff,0xd4,0xff,0xc1,0xff,0x93,0xff, +0x86,0xff,0x8c,0xff,0x96,0xff,0x9e,0xff,0xa2,0xff,0xaf,0xff, +0xc5,0xff,0xd7,0xff,0xe4,0xff,0xe8,0xff,0xd9,0xff,0xd3,0xff, +0xf0,0xff,0xff,0xff,0xec,0xff,0xcd,0xff,0xaa,0xff,0xad,0xff, +0xd1,0xff,0xe9,0xff,0xf2,0xff,0xe3,0xff,0xe9,0xff,0x15,0x0, +0x10,0x0,0xfa,0xff,0xfe,0xff,0xf3,0xff,0xed,0xff,0xca,0xff, +0x92,0xff,0xb8,0xff,0xe6,0xff,0xd9,0xff,0xf8,0xff,0x13,0x0, +0x3,0x0,0x1,0x0,0x4,0x0,0x13,0x0,0xb,0x0,0xdd,0xff, +0xde,0xff,0xe0,0xff,0xc9,0xff,0xd9,0xff,0xc9,0xff,0xab,0xff, +0xd9,0xff,0xf2,0xff,0xde,0xff,0xf2,0xff,0xe,0x0,0x7,0x0, +0xe8,0xff,0xd4,0xff,0xe0,0xff,0xdb,0xff,0xc3,0xff,0xba,0xff, +0xaf,0xff,0xba,0xff,0xe9,0xff,0xfb,0xff,0xea,0xff,0xe2,0xff, +0xfc,0xff,0x1c,0x0,0x19,0x0,0x10,0x0,0x14,0x0,0x5,0x0, +0xf5,0xff,0xe0,0xff,0xb9,0xff,0xb2,0xff,0xb8,0xff,0xbd,0xff, +0xd1,0xff,0xbe,0xff,0xaf,0xff,0xde,0xff,0xe7,0xff,0xda,0xff, +0xef,0xff,0xe4,0xff,0xd8,0xff,0xf2,0xff,0xe7,0xff,0xc8,0xff, +0xb3,0xff,0xab,0xff,0xbb,0xff,0xb8,0xff,0xad,0xff,0xc3,0xff, +0xd1,0xff,0xcc,0xff,0xc5,0xff,0xb2,0xff,0xb2,0xff,0xc1,0xff, +0xba,0xff,0xa7,0xff,0xa9,0xff,0xcb,0xff,0xde,0xff,0xbc,0xff, +0x97,0xff,0x87,0xff,0x8b,0xff,0xb6,0xff,0xe1,0xff,0xef,0xff, +0xf0,0xff,0xdc,0xff,0xbe,0xff,0xb3,0xff,0xb8,0xff,0xaf,0xff, +0x86,0xff,0x64,0xff,0x5c,0xff,0x4c,0xff,0x66,0xff,0xc1,0xff, +0xe7,0xff,0xba,0xff,0xae,0xff,0xdd,0xff,0xfa,0xff,0xe7,0xff, +0xb3,0xff,0x77,0xff,0x60,0xff,0x61,0xff,0x45,0xff,0x31,0xff, +0x49,0xff,0x6a,0xff,0xa0,0xff,0xe6,0xff,0xc,0x0,0x23,0x0, +0x14,0x0,0xdd,0xff,0xce,0xff,0xad,0xff,0x59,0xff,0x43,0xff, +0x52,0xff,0x53,0xff,0x93,0xff,0xf5,0xff,0x29,0x0,0x3f,0x0, +0x4d,0x0,0x4e,0x0,0x3c,0x0,0x19,0x0,0xed,0xff,0x9f,0xff, +0x5e,0xff,0x65,0xff,0x84,0xff,0x8b,0xff,0x93,0xff,0xb8,0xff, +0xfc,0xff,0x29,0x0,0x32,0x0,0x41,0x0,0x3d,0x0,0x1d,0x0, +0x20,0x0,0x2e,0x0,0x17,0x0,0xea,0xff,0xad,0xff,0x6f,0xff, +0x5b,0xff,0x8b,0xff,0xe3,0xff,0x14,0x0,0x17,0x0,0x28,0x0, +0x28,0x0,0x5,0x0,0x2,0x0,0x1,0x0,0xd7,0xff,0xb9,0xff, +0xb9,0xff,0xd0,0xff,0xe9,0xff,0xc5,0xff,0xa0,0xff,0xba,0xff, +0xc2,0xff,0xbd,0xff,0xc9,0xff,0x9e,0xff,0x84,0xff,0xd6,0xff, +0x1e,0x0,0x16,0x0,0x5,0x0,0x1c,0x0,0x46,0x0,0x45,0x0, +0x1a,0x0,0x3,0x0,0xfb,0xff,0xd9,0xff,0x9a,0xff,0x7a,0xff, +0xbb,0xff,0x27,0x0,0x78,0x0,0xae,0x0,0xab,0x0,0x66,0x0, +0xf4,0xff,0x70,0xff,0x25,0xff,0xa,0xff,0xe5,0xfe,0xf7,0xfe, +0x4d,0xff,0x8d,0xff,0xb8,0xff,0xdb,0xff,0xe4,0xff,0xe3,0xff, +0xd6,0xff,0xc5,0xff,0xb8,0xff,0x9f,0xff,0x99,0xff,0xb7,0xff, +0xb8,0xff,0x9a,0xff,0x8d,0xff,0x9b,0xff,0xc3,0xff,0x5,0x0, +0x4c,0x0,0x64,0x0,0x1f,0x0,0xa4,0xff,0x44,0xff,0x37,0xff, +0x5e,0xff,0x77,0xff,0xac,0xff,0x11,0x0,0x57,0x0,0x93,0x0, +0xcd,0x0,0xb2,0x0,0x8a,0x0,0x96,0x0,0x7a,0x0,0x3e,0x0, +0x7,0x0,0xb0,0xff,0x76,0xff,0x81,0xff,0x8f,0xff,0x82,0xff, +0x67,0xff,0x6d,0xff,0x8b,0xff,0x76,0xff,0x61,0xff,0x98,0xff, +0xdd,0xff,0x18,0x0,0x46,0x0,0x46,0x0,0x3a,0x0,0x33,0x0, +0x8,0x0,0xcc,0xff,0xa6,0xff,0x9a,0xff,0x88,0xff,0x5c,0xff, +0x4b,0xff,0x6a,0xff,0x9f,0xff,0xfe,0xff,0x75,0x0,0xbc,0x0, +0xc4,0x0,0xa1,0x0,0x63,0x0,0x14,0x0,0xba,0xff,0x79,0xff, +0x59,0xff,0x46,0xff,0x56,0xff,0x9a,0xff,0xf7,0xff,0x5b,0x0, +0x95,0x0,0x93,0x0,0x9a,0x0,0xa6,0x0,0x9b,0x0,0x8e,0x0, +0x6e,0x0,0x33,0x0,0xe4,0xff,0x7c,0xff,0x42,0xff,0x3c,0xff, +0x1a,0xff,0x1a,0xff,0x61,0xff,0x97,0xff,0xc5,0xff,0xf9,0xff, +0x1e,0x0,0x56,0x0,0x74,0x0,0x54,0x0,0x38,0x0,0x1a,0x0, +0xdc,0xff,0x97,0xff,0x6b,0xff,0x5f,0xff,0x49,0xff,0x3c,0xff, +0x62,0xff,0x6f,0xff,0x6a,0xff,0xb3,0xff,0xee,0xff,0xcd,0xff, +0xae,0xff,0xa2,0xff,0x88,0xff,0x83,0xff,0x75,0xff,0x2f,0xff, +0xfb,0xfe,0x8,0xff,0x32,0xff,0x5e,0xff,0x6f,0xff,0x7b,0xff, +0xaf,0xff,0xcc,0xff,0xc1,0xff,0xdd,0xff,0x9,0x0,0x1c,0x0, +0x27,0x0,0x24,0x0,0x1f,0x0,0x19,0x0,0xf0,0xff,0xc1,0xff, +0xa3,0xff,0x9e,0xff,0xa4,0xff,0x96,0xff,0x98,0xff,0xa1,0xff, +0x89,0xff,0x9f,0xff,0xce,0xff,0xbd,0xff,0xc9,0xff,0x3,0x0, +0x5,0x0,0xf2,0xff,0xf2,0xff,0xe0,0xff,0xcb,0xff,0xc3,0xff, +0xb9,0xff,0xa8,0xff,0x92,0xff,0x7f,0xff,0x6d,0xff,0x4a,0xff, +0x2f,0xff,0x49,0xff,0x6a,0xff,0x56,0xff,0x4d,0xff,0x7e,0xff, +0xb9,0xff,0x5,0x0,0x53,0x0,0x62,0x0,0x33,0x0,0xdf,0xff, +0x97,0xff,0x88,0xff,0x85,0xff,0x79,0xff,0x7b,0xff,0x7f,0xff, +0x96,0xff,0xb8,0xff,0xc8,0xff,0x1,0x0,0x62,0x0,0x8a,0x0, +0x79,0x0,0x64,0x0,0x4f,0x0,0x48,0x0,0x55,0x0,0x43,0x0, +0xf,0x0,0xee,0xff,0xec,0xff,0xf0,0xff,0xf5,0xff,0xe,0x0, +0x2b,0x0,0xb,0x0,0xcc,0xff,0xe5,0xff,0x27,0x0,0xf,0x0, +0xdb,0xff,0xf6,0xff,0x14,0x0,0xef,0xff,0xd5,0xff,0xf8,0xff, +0x20,0x0,0x28,0x0,0x8,0x0,0xc6,0xff,0x9e,0xff,0x82,0xff, +0x57,0xff,0x72,0xff,0xb9,0xff,0xbf,0xff,0xad,0xff,0xa3,0xff, +0x8b,0xff,0x7b,0xff,0x68,0xff,0x57,0xff,0x6b,0xff,0x86,0xff, +0xb0,0xff,0x0,0x0,0x3b,0x0,0x48,0x0,0x4a,0x0,0x61,0x0, +0x79,0x0,0x63,0x0,0x36,0x0,0x12,0x0,0xeb,0xff,0xd6,0xff, +0xcc,0xff,0xa9,0xff,0x90,0xff,0x8c,0xff,0x7f,0xff,0x8f,0xff, +0xc5,0xff,0xec,0xff,0x0,0x0,0x1,0x0,0xd4,0xff,0xa2,0xff, +0x9a,0xff,0x9c,0xff,0x91,0xff,0x83,0xff,0x7d,0xff,0x92,0xff, +0xb8,0xff,0xcf,0xff,0xc4,0xff,0x9c,0xff,0x7f,0xff,0x73,0xff, +0x62,0xff,0x58,0xff,0x5a,0xff,0x67,0xff,0x8c,0xff,0xb0,0xff, +0xc9,0xff,0xd3,0xff,0xbe,0xff,0xb0,0xff,0xbb,0xff,0xdd,0xff, +0x1c,0x0,0x2e,0x0,0xa,0x0,0x1,0x0,0xfc,0xff,0xe,0x0, +0x41,0x0,0x36,0x0,0x13,0x0,0xfe,0xff,0xc9,0xff,0xbe,0xff, +0xd1,0xff,0xb9,0xff,0xb5,0xff,0xc2,0xff,0xba,0xff,0xd1,0xff, +0xf6,0xff,0x3,0x0,0x1f,0x0,0x57,0x0,0x61,0x0,0xe,0x0, +0xce,0xff,0xe4,0xff,0xef,0xff,0xdf,0xff,0xe0,0xff,0xf7,0xff, +0x22,0x0,0x28,0x0,0xfe,0xff,0x0,0x0,0x23,0x0,0x22,0x0, +0x5,0x0,0xeb,0xff,0xcc,0xff,0xa8,0xff,0xa8,0xff,0xcf,0xff, +0xfa,0xff,0x3d,0x0,0x70,0x0,0x59,0x0,0x33,0x0,0x36,0x0, +0x4a,0x0,0x29,0x0,0xcf,0xff,0xb2,0xff,0xcc,0xff,0xae,0xff, +0x90,0xff,0xa5,0xff,0xcc,0xff,0xa,0x0,0x40,0x0,0x5c,0x0, +0x7d,0x0,0x8b,0x0,0x6d,0x0,0x3d,0x0,0x1d,0x0,0xf2,0xff, +0xac,0xff,0x95,0xff,0x87,0xff,0x47,0xff,0x46,0xff,0x81,0xff, +0x98,0xff,0xbb,0xff,0xeb,0xff,0x8,0x0,0x2b,0x0,0x3c,0x0, +0x4a,0x0,0x58,0x0,0x3b,0x0,0x11,0x0,0xc4,0xff,0x5f,0xff, +0x60,0xff,0x91,0xff,0x78,0xff,0x5e,0xff,0x82,0xff,0xa9,0xff, +0xa6,0xff,0x9f,0xff,0xc0,0xff,0xfd,0xff,0x22,0x0,0x11,0x0, +0xf8,0xff,0xfb,0xff,0xde,0xff,0xc1,0xff,0xd0,0xff,0xca,0xff, +0xd2,0xff,0x1,0x0,0x8,0x0,0x7,0x0,0xf,0x0,0xd,0x0, +0x1b,0x0,0xa,0x0,0xe7,0xff,0xe6,0xff,0xcb,0xff,0xb5,0xff, +0xbb,0xff,0x8f,0xff,0x6b,0xff,0x77,0xff,0x7b,0xff,0x7f,0xff, +0x75,0xff,0x56,0xff,0x69,0xff,0xa4,0xff,0xc4,0xff,0xc4,0xff, +0xc7,0xff,0xc0,0xff,0xa6,0xff,0x98,0xff,0x7d,0xff,0x6d,0xff, +0xa0,0xff,0xab,0xff,0x84,0xff,0xb1,0xff,0xee,0xff,0xf0,0xff, +0xe7,0xff,0xe0,0xff,0xe1,0xff,0xc2,0xff,0x85,0xff,0x84,0xff, +0x9d,0xff,0xad,0xff,0xda,0xff,0xf,0x0,0x5f,0x0,0xa1,0x0, +0x75,0x0,0x45,0x0,0x49,0x0,0x22,0x0,0xf0,0xff,0xd8,0xff, +0xc3,0xff,0xb7,0xff,0xa6,0xff,0x9e,0xff,0xc4,0xff,0xf2,0xff, +0xfe,0xff,0xb,0x0,0x40,0x0,0x59,0x0,0x25,0x0,0xe0,0xff, +0x9b,0xff,0x73,0xff,0x94,0xff,0x9e,0xff,0x61,0xff,0x3d,0xff, +0x48,0xff,0x6b,0xff,0xaa,0xff,0xf3,0xff,0x20,0x0,0x18,0x0, +0xfc,0xff,0xf1,0xff,0xe0,0xff,0xd1,0xff,0xd2,0xff,0xbe,0xff, +0x8a,0xff,0x5c,0xff,0x4c,0xff,0x45,0xff,0x4c,0xff,0x7b,0xff, +0xab,0xff,0xd0,0xff,0x2,0x0,0x3,0x0,0xd4,0xff,0xcd,0xff, +0xeb,0xff,0x4,0x0,0x11,0x0,0x1c,0x0,0x19,0x0,0xf5,0xff, +0xcf,0xff,0xae,0xff,0x7d,0xff,0x67,0xff,0x6b,0xff,0x66,0xff, +0x72,0xff,0x93,0xff,0xbe,0xff,0xc1,0xff,0x87,0xff,0x89,0xff, +0xb6,0xff,0x9b,0xff,0x84,0xff,0x7f,0xff,0x4f,0xff,0x45,0xff, +0x56,0xff,0x42,0xff,0x3e,0xff,0x61,0xff,0x79,0xff,0x6b,0xff, +0x65,0xff,0x9b,0xff,0xae,0xff,0x78,0xff,0x67,0xff,0x83,0xff, +0x9f,0xff,0x9e,0xff,0x4d,0xff,0x6,0xff,0x26,0xff,0x48,0xff, +0x3a,0xff,0x4c,0xff,0x82,0xff,0xa9,0xff,0xbd,0xff,0xc3,0xff, +0xc7,0xff,0xcd,0xff,0xc5,0xff,0xcf,0xff,0xf7,0xff,0x4,0x0, +0x2,0x0,0x5,0x0,0xf2,0xff,0xe7,0xff,0xdd,0xff,0xb6,0xff, +0xb0,0xff,0xab,0xff,0x88,0xff,0x8d,0xff,0x8a,0xff,0x76,0xff, +0x9d,0xff,0xb9,0xff,0xb8,0xff,0xce,0xff,0xc0,0xff,0xb1,0xff, +0xe1,0xff,0xf2,0xff,0xec,0xff,0x23,0x0,0x4d,0x0,0x3a,0x0, +0x39,0x0,0x44,0x0,0x2c,0x0,0x1a,0x0,0xf9,0xff,0xa7,0xff, +0x84,0xff,0x9e,0xff,0xb0,0xff,0xc1,0xff,0xb4,0xff,0x8a,0xff, +0xa5,0xff,0xec,0xff,0x2,0x0,0xfa,0xff,0x2,0x0,0xd,0x0, +0xfc,0xff,0x6,0x0,0x39,0x0,0x35,0x0,0x1d,0x0,0x34,0x0, +0x26,0x0,0xfc,0xff,0xff,0xff,0xf4,0xff,0xcd,0xff,0xcb,0xff, +0xdb,0xff,0xcc,0xff,0xbd,0xff,0xc5,0xff,0xc5,0xff,0xc9,0xff, +0xd7,0xff,0xd3,0xff,0xe2,0xff,0xff,0xff,0xff,0xff,0x3,0x0, +0x1b,0x0,0x49,0x0,0x87,0x0,0x8f,0x0,0x8c,0x0,0x8d,0x0, +0x47,0x0,0x24,0x0,0x31,0x0,0xfb,0xff,0xe4,0xff,0xfd,0xff, +0xe7,0xff,0xe8,0xff,0xed,0xff,0xc4,0xff,0xb7,0xff,0xba,0xff, +0xba,0xff,0xd0,0xff,0xea,0xff,0xfe,0xff,0xeb,0xff,0xc6,0xff, +0xce,0xff,0xce,0xff,0xb9,0xff,0xd7,0xff,0x8,0x0,0x1e,0x0, +0x24,0x0,0x13,0x0,0xed,0xff,0xd2,0xff,0xd9,0xff,0xd9,0xff, +0xb6,0xff,0xae,0xff,0xc6,0xff,0xc6,0xff,0xb5,0xff,0xac,0xff, +0xb4,0xff,0xc6,0xff,0xe8,0xff,0x15,0x0,0x17,0x0,0xc,0x0, +0x38,0x0,0x42,0x0,0x14,0x0,0x6,0x0,0x6,0x0,0xff,0xff, +0x10,0x0,0x17,0x0,0x8,0x0,0xfd,0xff,0xea,0xff,0xb5,0xff, +0x80,0xff,0x81,0xff,0x91,0xff,0x95,0xff,0xad,0xff,0xc1,0xff, +0xbd,0xff,0xc8,0xff,0xf3,0xff,0x2f,0x0,0x49,0x0,0x3f,0x0, +0x47,0x0,0x41,0x0,0x10,0x0,0xed,0xff,0xe4,0xff,0xd2,0xff, +0xb4,0xff,0xaf,0xff,0xd4,0xff,0x2,0x0,0x22,0x0,0xf,0x0, +0xd4,0xff,0xe0,0xff,0x12,0x0,0x2,0x0,0xdf,0xff,0xb3,0xff, +0x77,0xff,0x5d,0xff,0x5a,0xff,0x78,0xff,0xb0,0xff,0xc6,0xff, +0xda,0xff,0xee,0xff,0x0,0x0,0x39,0x0,0x43,0x0,0x19,0x0, +0x15,0x0,0x5,0x0,0xe6,0xff,0xda,0xff,0xa2,0xff,0x61,0xff, +0x4b,0xff,0x4c,0xff,0x6f,0xff,0x90,0xff,0xa8,0xff,0xd3,0xff, +0xe8,0xff,0xf6,0xff,0x17,0x0,0x21,0x0,0x1e,0x0,0x27,0x0, +0x23,0x0,0xfd,0xff,0xd7,0xff,0xe0,0xff,0xd0,0xff,0xa0,0xff, +0xb6,0xff,0xbf,0xff,0x89,0xff,0x79,0xff,0x77,0xff,0x7c,0xff, +0xa4,0xff,0x93,0xff,0x89,0xff,0xd5,0xff,0xeb,0xff,0xd3,0xff, +0xf0,0xff,0x2,0x0,0xee,0xff,0xd7,0xff,0xbb,0xff,0xa6,0xff, +0x8e,0xff,0x65,0xff,0x50,0xff,0x5b,0xff,0x6c,0xff,0x76,0xff, +0x76,0xff,0x7f,0xff,0x9a,0xff,0x9e,0xff,0x8e,0xff,0x9c,0xff, +0xb2,0xff,0xb7,0xff,0xcb,0xff,0xca,0xff,0xa1,0xff,0xa0,0xff, +0xba,0xff,0x9f,0xff,0x83,0xff,0x9a,0xff,0x9f,0xff,0x7c,0xff, +0x6e,0xff,0x74,0xff,0x80,0xff,0xb2,0xff,0xeb,0xff,0x5,0x0, +0x20,0x0,0x2f,0x0,0x10,0x0,0xe5,0xff,0xc1,0xff,0xad,0xff, +0xa2,0xff,0x86,0xff,0x70,0xff,0x7a,0xff,0x85,0xff,0x88,0xff, +0xa6,0xff,0xd4,0xff,0xde,0xff,0xe4,0xff,0xd,0x0,0x3,0x0, +0xcd,0xff,0xdf,0xff,0xf5,0xff,0xd3,0xff,0xcd,0xff,0xc7,0xff, +0xa0,0xff,0x93,0xff,0x97,0xff,0xa1,0xff,0xbf,0xff,0xda,0xff, +0xeb,0xff,0xf5,0xff,0x5,0x0,0xd,0x0,0xeb,0xff,0xdc,0xff, +0xeb,0xff,0xd0,0xff,0xae,0xff,0x9e,0xff,0x9e,0xff,0xdb,0xff, +0x8,0x0,0xf0,0xff,0xf5,0xff,0x19,0x0,0x24,0x0,0x24,0x0, +0x12,0x0,0xfb,0xff,0xe2,0xff,0xb6,0xff,0x97,0xff,0x80,0xff, +0x64,0xff,0x79,0xff,0xa1,0xff,0xab,0xff,0xb4,0xff,0xc8,0xff, +0xed,0xff,0x1a,0x0,0x35,0x0,0x3d,0x0,0x20,0x0,0xfd,0xff, +0x2,0x0,0xf9,0xff,0xf7,0xff,0x1f,0x0,0x15,0x0,0x5,0x0, +0x2d,0x0,0x23,0x0,0x3,0x0,0x1,0x0,0xe9,0xff,0xed,0xff, +0xfc,0xff,0xd2,0xff,0xca,0xff,0xdf,0xff,0xd0,0xff,0xd9,0xff, +0xec,0xff,0xea,0xff,0xf8,0xff,0xff,0xff,0x2,0x0,0x5,0x0, +0xe5,0xff,0xda,0xff,0xf9,0xff,0xf7,0xff,0xd5,0xff,0xc1,0xff, +0xd9,0xff,0xf1,0xff,0xc8,0xff,0xa6,0xff,0xc8,0xff,0xcf,0xff, +0xb6,0xff,0xc7,0xff,0xf1,0xff,0x9,0x0,0x8,0x0,0x9,0x0, +0x12,0x0,0x7,0x0,0x12,0x0,0x46,0x0,0x4b,0x0,0x31,0x0, +0x2e,0x0,0x10,0x0,0xdb,0xff,0xcf,0xff,0xd3,0xff,0xc8,0xff, +0xbd,0xff,0xbe,0xff,0xcc,0xff,0xc3,0xff,0xab,0xff,0xc6,0xff, +0xfb,0xff,0x11,0x0,0x12,0x0,0x7,0x0,0x1,0x0,0xb,0x0, +0xf9,0xff,0xe1,0xff,0xe8,0xff,0xd9,0xff,0xb9,0xff,0xbf,0xff, +0xd7,0xff,0xe1,0xff,0xf0,0xff,0x0,0x0,0x2,0x0,0x8,0x0, +0x17,0x0,0x2,0x0,0xe3,0xff,0x1,0x0,0x20,0x0,0xfa,0xff, +0xc4,0xff,0xbd,0xff,0xd7,0xff,0xd7,0xff,0xd1,0xff,0xe,0x0, +0x35,0x0,0xfb,0xff,0xd5,0xff,0xc9,0xff,0xa3,0xff,0xaa,0xff, +0xb3,0xff,0x90,0xff,0xaf,0xff,0xdc,0xff,0xb8,0xff,0xae,0xff, +0xd7,0xff,0xd4,0xff,0xbe,0xff,0xb8,0xff,0xbd,0xff,0xc4,0xff, +0xb7,0xff,0xac,0xff,0xc7,0xff,0xef,0xff,0xf,0x0,0x1a,0x0, +0xb,0x0,0x7,0x0,0x5,0x0,0xfc,0xff,0xb,0x0,0xd,0x0, +0xfc,0xff,0x9,0x0,0xff,0xff,0xbe,0xff,0x96,0xff,0x91,0xff, +0x82,0xff,0x7d,0xff,0x8f,0xff,0xa2,0xff,0xa6,0xff,0x9b,0xff, +0xa0,0xff,0xd2,0xff,0x0,0x0,0xfe,0xff,0xfd,0xff,0x2,0x0, +0xd0,0xff,0x98,0xff,0x92,0xff,0x78,0xff,0x47,0xff,0x4b,0xff, +0x69,0xff,0x73,0xff,0x7e,0xff,0x94,0xff,0xaf,0xff,0xcd,0xff, +0xd8,0xff,0xc3,0xff,0xbc,0xff,0xd1,0xff,0xd3,0xff,0xd1,0xff, +0xd8,0xff,0xaf,0xff,0x75,0xff,0x6b,0xff,0x70,0xff,0x77,0xff, +0x8c,0xff,0x9a,0xff,0xa0,0xff,0xa2,0xff,0xb6,0xff,0xf1,0xff, +0x6,0x0,0xd4,0xff,0xbc,0xff,0xca,0xff,0xc4,0xff,0xbf,0xff, +0xbc,0xff,0xb5,0xff,0xca,0xff,0xc1,0xff,0x84,0xff,0x7d,0xff, +0xb2,0xff,0xe2,0xff,0xfb,0xff,0xe0,0xff,0xc3,0xff,0xd2,0xff, +0xc6,0xff,0xac,0xff,0xb2,0xff,0xc4,0xff,0xf1,0xff,0xf6,0xff, +0xbb,0xff,0xb3,0xff,0xaf,0xff,0x84,0xff,0xa8,0xff,0xe1,0xff, +0xe6,0xff,0xf2,0xff,0xed,0xff,0xda,0xff,0xda,0xff,0xd2,0xff, +0xd1,0xff,0xd3,0xff,0xc0,0xff,0xac,0xff,0x88,0xff,0x6b,0xff, +0x6c,0xff,0x62,0xff,0x6c,0xff,0x98,0xff,0xb7,0xff,0xd7,0xff, +0xee,0xff,0xfd,0xff,0x1a,0x0,0x2d,0x0,0x46,0x0,0x59,0x0, +0x3b,0x0,0x17,0x0,0xf2,0xff,0xbc,0xff,0xa9,0xff,0xb1,0xff, +0xae,0xff,0x9f,0xff,0x87,0xff,0x8d,0xff,0x92,0xff,0x82,0xff, +0xb0,0xff,0xf2,0xff,0x0,0x0,0x1c,0x0,0x3d,0x0,0x44,0x0, +0x4c,0x0,0x33,0x0,0xb,0x0,0xf8,0xff,0xc8,0xff,0x96,0xff, +0x8a,0xff,0x7c,0xff,0x88,0xff,0xb1,0xff,0xb7,0xff,0xbc,0xff, +0xd0,0xff,0xcd,0xff,0xd9,0xff,0xd8,0xff,0xb1,0xff,0xaf,0xff, +0xbd,0xff,0xb6,0xff,0xc7,0xff,0xbe,0xff,0x96,0xff,0xa1,0xff, +0xbd,0xff,0xc1,0xff,0xc4,0xff,0xc5,0xff,0xcf,0xff,0xca,0xff, +0xae,0xff,0xb0,0xff,0xb1,0xff,0x9c,0xff,0x89,0xff,0x74,0xff, +0x8d,0xff,0xcc,0xff,0xc9,0xff,0xb2,0xff,0xd1,0xff,0xe8,0xff, +0xcf,0xff,0xad,0xff,0xab,0xff,0xbd,0xff,0xce,0xff,0xdf,0xff, +0xcd,0xff,0xb0,0xff,0xc8,0xff,0xe4,0xff,0xf0,0xff,0x2,0x0, +0xf0,0xff,0xeb,0xff,0x1f,0x0,0x35,0x0,0x19,0x0,0xf4,0xff, +0xe0,0xff,0xe5,0xff,0xe1,0xff,0xe1,0xff,0xf2,0xff,0xf2,0xff, +0x3,0x0,0x12,0x0,0xea,0xff,0xd8,0xff,0xe1,0xff,0xc1,0xff, +0xa2,0xff,0x9d,0xff,0xa2,0xff,0x9f,0xff,0x86,0xff,0x7e,0xff, +0x8b,0xff,0x94,0xff,0xc0,0xff,0xf0,0xff,0xf9,0xff,0xb,0x0, +0xe,0x0,0xf4,0xff,0xe9,0xff,0xd4,0xff,0xb2,0xff,0xa0,0xff, +0x9e,0xff,0xbb,0xff,0xd9,0xff,0xd3,0xff,0xda,0xff,0xed,0xff, +0xec,0xff,0xf7,0xff,0x2,0x0,0xe9,0xff,0xd6,0xff,0xe3,0xff, +0xe1,0xff,0xc7,0xff,0xcb,0xff,0xd9,0xff,0xc0,0xff,0xbb,0xff, +0xdf,0xff,0xe2,0xff,0xe1,0xff,0xf6,0xff,0xed,0xff,0xde,0xff, +0xde,0xff,0xd6,0xff,0xdc,0xff,0xd5,0xff,0xb3,0xff,0xac,0xff, +0xa3,0xff,0x8b,0xff,0x9f,0xff,0xc2,0xff,0xc5,0xff,0xbb,0xff, +0xb1,0xff,0xad,0xff,0xac,0xff,0xb3,0xff,0xc6,0xff,0xbf,0xff, +0xa9,0xff,0xc5,0xff,0xee,0xff,0xf0,0xff,0xed,0xff,0xe4,0xff, +0xc9,0xff,0xc1,0xff,0xbb,0xff,0x9d,0xff,0x8a,0xff,0x8f,0xff, +0xa6,0xff,0xd3,0xff,0xf8,0xff,0x6,0x0,0x9,0x0,0x3,0x0, +0xf8,0xff,0xde,0xff,0xc8,0xff,0xd3,0xff,0xcd,0xff,0xac,0xff, +0xa8,0xff,0xb2,0xff,0xbb,0xff,0xcf,0xff,0xd3,0xff,0xe1,0xff, +0xfa,0xff,0xf6,0xff,0xf5,0xff,0xf6,0xff,0xe9,0xff,0xde,0xff, +0xb9,0xff,0x99,0xff,0xaf,0xff,0xc6,0xff,0xbf,0xff,0xc2,0xff, +0xe3,0xff,0xfe,0xff,0xf0,0xff,0xf5,0xff,0x11,0x0,0xfb,0xff, +0xe8,0xff,0xeb,0xff,0xca,0xff,0xba,0xff,0xbc,0xff,0xad,0xff, +0xae,0xff,0xac,0xff,0xb6,0xff,0xe4,0xff,0xf0,0xff,0xf2,0xff, +0x0,0x0,0xf4,0xff,0xef,0xff,0xeb,0xff,0xd7,0xff,0xe0,0xff, +0xe4,0xff,0xd1,0xff,0xca,0xff,0xc1,0xff,0xcf,0xff,0xf4,0xff, +0x1,0x0,0x7,0x0,0x12,0x0,0x1e,0x0,0x21,0x0,0xf4,0xff, +0xbd,0xff,0xb7,0xff,0xc4,0xff,0xd9,0xff,0xf5,0xff,0x7,0x0, +0x27,0x0,0x50,0x0,0x4f,0x0,0x33,0x0,0x30,0x0,0x3a,0x0, +0x2e,0x0,0x1a,0x0,0x8,0x0,0xfa,0xff,0xfb,0xff,0xf8,0xff, +0xfb,0xff,0x1e,0x0,0x2a,0x0,0x10,0x0,0x2,0x0,0xfe,0xff, +0x1,0x0,0x5,0x0,0xdf,0xff,0xae,0xff,0xab,0xff,0xb9,0xff, +0xc6,0xff,0xdd,0xff,0x0,0x0,0x21,0x0,0x1e,0x0,0x8,0x0, +0x11,0x0,0x2e,0x0,0x37,0x0,0x24,0x0,0xfd,0xff,0xdf,0xff, +0xdf,0xff,0xea,0xff,0xe9,0xff,0xdf,0xff,0xdc,0xff,0xdd,0xff, +0xc6,0xff,0xb5,0xff,0xd1,0xff,0xde,0xff,0xb9,0xff,0x94,0xff, +0x89,0xff,0x9e,0xff,0xc9,0xff,0xe3,0xff,0xf3,0xff,0x8,0x0, +0x14,0x0,0x22,0x0,0x28,0x0,0x10,0x0,0xea,0xff,0xc2,0xff, +0xa4,0xff,0x9c,0xff,0x94,0xff,0x8a,0xff,0x96,0xff,0xa3,0xff, +0x93,0xff,0x84,0xff,0xa3,0xff,0xcf,0xff,0xda,0xff,0xda,0xff, +0xcb,0xff,0xa7,0xff,0x9d,0xff,0xaa,0xff,0xae,0xff,0xbe,0xff, +0xdb,0xff,0xe3,0xff,0xd3,0xff,0xc9,0xff,0xde,0xff,0xe8,0xff, +0xce,0xff,0xc8,0xff,0xcf,0xff,0xb0,0xff,0x9a,0xff,0xab,0xff, +0xa2,0xff,0x80,0xff,0x84,0xff,0x95,0xff,0x8a,0xff,0x8b,0xff, +0xa9,0xff,0xbd,0xff,0xc6,0xff,0xd2,0xff,0xd3,0xff,0xd2,0xff, +0xdd,0xff,0xe0,0xff,0xcf,0xff,0xb9,0xff,0xa2,0xff,0x8d,0xff, +0x83,0xff,0x7c,0xff,0x7f,0xff,0x94,0xff,0x97,0xff,0x95,0xff, +0xb7,0xff,0xdc,0xff,0xeb,0xff,0xf6,0xff,0xf7,0xff,0xef,0xff, +0xed,0xff,0xf6,0xff,0xf4,0xff,0xd5,0xff,0xc0,0xff,0xc3,0xff, +0xab,0xff,0x8e,0xff,0x9b,0xff,0xb2,0xff,0xbb,0xff,0xb4,0xff, +0xb1,0xff,0xd6,0xff,0xf2,0xff,0xde,0xff,0xd6,0xff,0xe5,0xff, +0xde,0xff,0xda,0xff,0xe4,0xff,0xd6,0xff,0xc0,0xff,0xc3,0xff, +0xc9,0xff,0xc7,0xff,0xbb,0xff,0xac,0xff,0xb7,0xff,0xc4,0xff, +0xb4,0xff,0xb0,0xff,0xb6,0xff,0xb9,0xff,0xcf,0xff,0xd6,0xff, +0xc8,0xff,0xdb,0xff,0xfc,0xff,0xf,0x0,0xc,0x0,0xec,0xff, +0xe1,0xff,0xe1,0xff,0xc8,0xff,0xc3,0xff,0xc8,0xff,0xc5,0xff, +0xe8,0xff,0xfd,0xff,0xe9,0xff,0xfe,0xff,0x1a,0x0,0xf1,0xff, +0xc6,0xff,0xbe,0xff,0xa6,0xff,0x95,0xff,0xaf,0xff,0xbe,0xff, +0xb5,0xff,0xc4,0xff,0xde,0xff,0xed,0xff,0x8,0x0,0x2a,0x0, +0x2d,0x0,0x10,0x0,0xf5,0xff,0xe7,0xff,0xc6,0xff,0xa4,0xff, +0xb2,0xff,0xcd,0xff,0xbb,0xff,0xb1,0xff,0xd3,0xff,0xe5,0xff, +0xe3,0xff,0xf2,0xff,0xee,0xff,0xd7,0xff,0xd5,0xff,0xcf,0xff, +0xcd,0xff,0xe0,0xff,0xe0,0xff,0xd5,0xff,0xd9,0xff,0xd6,0xff, +0xd1,0xff,0xc6,0xff,0xad,0xff,0xa4,0xff,0xac,0xff,0xb0,0xff, +0xb8,0xff,0xc8,0xff,0xdc,0xff,0xda,0xff,0xc9,0xff,0xd0,0xff, +0xe6,0xff,0xf1,0xff,0xea,0xff,0xca,0xff,0xb1,0xff,0xab,0xff, +0xa6,0xff,0xb8,0xff,0xdb,0xff,0xe0,0xff,0xd6,0xff,0xd3,0xff, +0xce,0xff,0xd1,0xff,0xde,0xff,0xe0,0xff,0xe7,0xff,0xec,0xff, +0xc9,0xff,0xbe,0xff,0xea,0xff,0xf0,0xff,0xea,0xff,0xa,0x0, +0x0,0x0,0xed,0xff,0x5,0x0,0x3,0x0,0xf4,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfb,0xff,0xf6,0xff,0xf7,0xff,0xe1,0xff, +0xcf,0xff,0xda,0xff,0xd5,0xff,0xbb,0xff,0xac,0xff,0xbc,0xff, +0xe3,0xff,0xf8,0xff,0x2,0x0,0xa,0x0,0xc,0x0,0x1c,0x0, +0x19,0x0,0xf5,0xff,0xe1,0xff,0xd7,0xff,0xdb,0xff,0xfb,0xff, +0x6,0x0,0xf7,0xff,0xec,0xff,0xe1,0xff,0xe2,0xff,0xf8,0xff, +0x1a,0x0,0x22,0x0,0xfd,0xff,0xe9,0xff,0xef,0xff,0xe5,0xff, +0xd6,0xff,0xbe,0xff,0xa8,0xff,0xb8,0xff,0xdc,0xff,0xfa,0xff, +0x10,0x0,0x20,0x0,0x23,0x0,0x10,0x0,0x15,0x0,0x2a,0x0, +0x12,0x0,0x5,0x0,0xff,0xff,0xbe,0xff,0xa5,0xff,0xc8,0xff, +0xc3,0xff,0xbd,0xff,0xe8,0xff,0x4,0x0,0xf7,0xff,0xf8,0xff, +0x12,0x0,0x8,0x0,0xee,0xff,0xf1,0xff,0xdd,0xff,0xd0,0xff, +0xde,0xff,0xbf,0xff,0xb6,0xff,0xdd,0xff,0xd6,0xff,0xd2,0xff, +0xe6,0xff,0xe3,0xff,0xf6,0xff,0x2,0x0,0xf5,0xff,0xfd,0xff, +0xe5,0xff,0xc2,0xff,0xd3,0xff,0xd4,0xff,0xbd,0xff,0xc3,0xff, +0xcb,0xff,0xc4,0xff,0xb3,0xff,0xad,0xff,0xc4,0xff,0xd9,0xff, +0xf1,0xff,0xd,0x0,0x5,0x0,0x1,0x0,0xff,0xff,0xdc,0xff, +0xca,0xff,0xcf,0xff,0xce,0xff,0xd6,0xff,0xd2,0xff,0xd6,0xff, +0xfb,0xff,0x1,0x0,0xf1,0xff,0xfe,0xff,0xd,0x0,0x0,0x0, +0xd7,0xff,0xb3,0xff,0xba,0xff,0xc0,0xff,0xaf,0xff,0xb1,0xff, +0xc0,0xff,0xcb,0xff,0xd6,0xff,0xe2,0xff,0xee,0xff,0xef,0xff, +0xf3,0xff,0x3,0x0,0xef,0xff,0xa8,0xff,0x6b,0xff,0x63,0xff, +0x73,0xff,0x73,0xff,0x81,0xff,0xab,0xff,0xd4,0xff,0xf6,0xff, +0xfe,0xff,0xfc,0xff,0xe,0x0,0xf7,0xff,0xb3,0xff,0x87,0xff, +0x6f,0xff,0x62,0xff,0x55,0xff,0x44,0xff,0x67,0xff,0x9f,0xff, +0xbc,0xff,0xe4,0xff,0xd,0x0,0x2e,0x0,0x44,0x0,0x1c,0x0, +0xe9,0xff,0xd0,0xff,0x9a,0xff,0x69,0xff,0x62,0xff,0x6e,0xff, +0x8e,0xff,0xae,0xff,0xd7,0xff,0x23,0x0,0x52,0x0,0x57,0x0, +0x5b,0x0,0x3e,0x0,0xfc,0xff,0xcb,0xff,0xac,0xff,0x7e,0xff, +0x63,0xff,0x80,0xff,0xa5,0xff,0xb9,0xff,0xd8,0xff,0xf8,0xff, +0xe,0x0,0x1f,0x0,0x2b,0x0,0x2f,0x0,0xc,0x0,0xde,0xff, +0xca,0xff,0x94,0xff,0x5f,0xff,0x74,0xff,0x9b,0xff,0xb9,0xff, +0xd1,0xff,0xdb,0xff,0xff,0xff,0x25,0x0,0x1e,0x0,0x2,0x0, +0xe8,0xff,0xe1,0xff,0xda,0xff,0xae,0xff,0x91,0xff,0x96,0xff, +0x9a,0xff,0x9d,0xff,0xa1,0xff,0xc8,0xff,0x1,0x0,0xfe,0xff, +0xf4,0xff,0x8,0x0,0xfc,0xff,0xd7,0xff,0xb8,0xff,0xa9,0xff, +0xac,0xff,0xa9,0xff,0xb6,0xff,0xc4,0xff,0xad,0xff,0xbd,0xff, +0xec,0xff,0xf1,0xff,0x3,0x0,0x23,0x0,0xd,0x0,0xee,0xff, +0xe2,0xff,0xcc,0xff,0xbc,0xff,0xc0,0xff,0xcd,0xff,0xcb,0xff, +0xc3,0xff,0xdb,0xff,0xfe,0xff,0x9,0x0,0x7,0x0,0xfe,0xff, +0xfe,0xff,0x7,0x0,0xf6,0xff,0xe7,0xff,0xee,0xff,0xdd,0xff, +0xc3,0xff,0xc9,0xff,0xd5,0xff,0xe2,0xff,0xf3,0xff,0xf9,0xff, +0xf7,0xff,0xe7,0xff,0xe6,0xff,0x4,0x0,0xed,0xff,0xb8,0xff, +0xcc,0xff,0xeb,0xff,0xdc,0xff,0xd6,0xff,0xd9,0xff,0xd6,0xff, +0xca,0xff,0xb4,0xff,0xc0,0xff,0xd6,0xff,0xd5,0xff,0xe3,0xff, +0xda,0xff,0xb6,0xff,0xc4,0xff,0xdc,0xff,0xde,0xff,0xeb,0xff, +0xf8,0xff,0xd,0x0,0x21,0x0,0xb,0x0,0xfa,0xff,0xf9,0xff, +0xd4,0xff,0xb9,0xff,0xcf,0xff,0xdb,0xff,0xd0,0xff,0xc5,0xff, +0xb1,0xff,0xa5,0xff,0xba,0xff,0xd3,0xff,0xe3,0xff,0xf4,0xff, +0xf3,0xff,0xe6,0xff,0xe1,0xff,0xd4,0xff,0xcb,0xff,0xd6,0xff, +0xdc,0xff,0xd3,0xff,0xbd,0xff,0xae,0xff,0xb0,0xff,0xa3,0xff, +0x99,0xff,0xb2,0xff,0xb8,0xff,0xb2,0xff,0xc9,0xff,0xc7,0xff, +0xb3,0xff,0xca,0xff,0xe2,0xff,0xe0,0xff,0xe0,0xff,0xda,0xff, +0xdf,0xff,0xe9,0xff,0xc9,0xff,0xad,0xff,0xad,0xff,0x9d,0xff, +0xa7,0xff,0xcc,0xff,0xcb,0xff,0xd8,0xff,0x1,0x0,0xf3,0xff, +0xd5,0xff,0xec,0xff,0xff,0xff,0xe8,0xff,0xd6,0xff,0xde,0xff, +0xdc,0xff,0xcc,0xff,0xcc,0xff,0xd3,0xff,0xe3,0xff,0xfd,0xff, +0xfe,0xff,0xf1,0xff,0xe6,0xff,0xd9,0xff,0xdc,0xff,0xd6,0xff, +0xc0,0xff,0xc1,0xff,0xc7,0xff,0xca,0xff,0xd0,0xff,0xc3,0xff, +0xb9,0xff,0xc1,0xff,0xc4,0xff,0xcf,0xff,0xd3,0xff,0xce,0xff, +0xe0,0xff,0xe0,0xff,0xd0,0xff,0xdd,0xff,0xdc,0xff,0xc9,0xff, +0xb5,0xff,0x9f,0xff,0xb6,0xff,0xcd,0xff,0xa0,0xff,0x85,0xff, +0x8c,0xff,0x83,0xff,0x9d,0xff,0xbc,0xff,0xaf,0xff,0xc1,0xff, +0xe9,0xff,0xe4,0xff,0xda,0xff,0xdf,0xff,0xdc,0xff,0xdf,0xff, +0xd1,0xff,0xab,0xff,0xa2,0xff,0xb3,0xff,0xb3,0xff,0xa3,0xff, +0xa1,0xff,0xb5,0xff,0xc8,0xff,0xc9,0xff,0xc5,0xff,0xc1,0xff, +0xc3,0xff,0xc9,0xff,0xc0,0xff,0xb7,0xff,0xc5,0xff,0xce,0xff, +0xc4,0xff,0xc7,0xff,0xda,0xff,0xe3,0xff,0xdf,0xff,0xd5,0xff, +0xc0,0xff,0xb7,0xff,0xb9,0xff,0xa7,0xff,0x9e,0xff,0xac,0xff, +0xa8,0xff,0x9a,0xff,0x9b,0xff,0x9b,0xff,0xaa,0xff,0xc9,0xff, +0xd3,0xff,0xcf,0xff,0xce,0xff,0xd1,0xff,0xd2,0xff,0xca,0xff, +0xc2,0xff,0xba,0xff,0xb8,0xff,0xca,0xff,0xd0,0xff,0xb6,0xff, +0xb1,0xff,0xcb,0xff,0xd1,0xff,0xc6,0xff,0xc4,0xff,0xc7,0xff, +0xcc,0xff,0xc9,0xff,0xb7,0xff,0xb3,0xff,0xb5,0xff,0xb3,0xff, +0xc4,0xff,0xc8,0xff,0xb5,0xff,0xd0,0xff,0xf5,0xff,0xe7,0xff, +0xdb,0xff,0xd4,0xff,0xc7,0xff,0xd8,0xff,0xdd,0xff,0xbd,0xff, +0xaf,0xff,0xb0,0xff,0xab,0xff,0xae,0xff,0xc1,0xff,0xd4,0xff, +0xd6,0xff,0xd8,0xff,0xe9,0xff,0xed,0xff,0xe7,0xff,0xec,0xff, +0xf1,0xff,0xea,0xff,0xe9,0xff,0xf2,0xff,0xd4,0xff,0xae,0xff, +0xca,0xff,0xe4,0xff,0xd6,0xff,0xe2,0xff,0xed,0xff,0xdb,0xff, +0xdc,0xff,0xe1,0xff,0xe4,0xff,0xef,0xff,0xea,0xff,0xe3,0xff, +0xda,0xff,0xdb,0xff,0xed,0xff,0xe3,0xff,0xd3,0xff,0xd4,0xff, +0xc5,0xff,0xc0,0xff,0xc2,0xff,0xbb,0xff,0xd2,0xff,0xea,0xff, +0xe8,0xff,0xea,0xff,0xe1,0xff,0xe7,0xff,0xf7,0xff,0xf0,0xff, +0x11,0x0,0x33,0x0,0x10,0x0,0x4,0x0,0x8,0x0,0xdf,0xff, +0xdf,0xff,0xfb,0xff,0xea,0xff,0xce,0xff,0xca,0xff,0xe2,0xff, +0x4,0x0,0x9,0x0,0x5,0x0,0x18,0x0,0x28,0x0,0x21,0x0, +0xe,0x0,0x13,0x0,0x28,0x0,0x1f,0x0,0xe,0x0,0x7,0x0, +0xfa,0xff,0x8,0x0,0x1d,0x0,0x5,0x0,0xf0,0xff,0xf1,0xff, +0xe2,0xff,0xe9,0xff,0xfc,0xff,0xec,0xff,0xe8,0xff,0xf4,0xff, +0xe1,0xff,0xd9,0xff,0xe6,0xff,0xe0,0xff,0xe6,0xff,0xf9,0xff, +0xf7,0xff,0xfa,0xff,0x5,0x0,0xf7,0xff,0xeb,0xff,0xf6,0xff, +0xf4,0xff,0xe0,0xff,0xe1,0xff,0xf8,0xff,0xf2,0xff,0xcd,0xff, +0xc9,0xff,0xd8,0xff,0xc4,0xff,0xc3,0xff,0xe9,0xff,0xf0,0xff, +0xf6,0xff,0xc,0x0,0xf2,0xff,0xe4,0xff,0x2,0x0,0x1,0x0, +0x3,0x0,0x11,0x0,0xed,0xff,0xd2,0xff,0xe1,0xff,0xd8,0xff, +0xd1,0xff,0xeb,0xff,0xee,0xff,0xdb,0xff,0xe4,0xff,0xed,0xff, +0xdb,0xff,0xdd,0xff,0xf8,0xff,0xfa,0xff,0xe9,0xff,0xde,0xff, +0xdb,0xff,0xe2,0xff,0xed,0xff,0xf8,0xff,0x5,0x0,0xd,0x0, +0x0,0x0,0xe7,0xff,0xdf,0xff,0xec,0xff,0xed,0xff,0xe6,0xff, +0xd7,0xff,0xb9,0xff,0xba,0xff,0xd6,0xff,0xda,0xff,0xd4,0xff, +0xd4,0xff,0xd8,0xff,0xdf,0xff,0xdb,0xff,0xd2,0xff,0xd3,0xff, +0xd7,0xff,0xdd,0xff,0xd8,0xff,0xd3,0xff,0xe1,0xff,0xed,0xff, +0xec,0xff,0xee,0xff,0xf3,0xff,0xf2,0xff,0xe1,0xff,0xd1,0xff, +0xc9,0xff,0xc1,0xff,0xcc,0xff,0xd0,0xff,0xb5,0xff,0xbb,0xff, +0xdc,0xff,0xe8,0xff,0xf0,0xff,0xeb,0xff,0xe1,0xff,0xf0,0xff, +0xf4,0xff,0xea,0xff,0xea,0xff,0xdd,0xff,0xce,0xff,0xd6,0xff, +0xdc,0xff,0xdd,0xff,0xe4,0xff,0xe4,0xff,0xe2,0xff,0xe5,0xff, +0xe1,0xff,0xe4,0xff,0xf4,0xff,0xe9,0xff,0xd5,0xff,0xd9,0xff, +0xd5,0xff,0xcc,0xff,0xce,0xff,0xce,0xff,0xd7,0xff,0xda,0xff, +0xca,0xff,0xdb,0xff,0xe9,0xff,0xd1,0xff,0xd1,0xff,0xe1,0xff, +0xdb,0xff,0xde,0xff,0xea,0xff,0xea,0xff,0xe5,0xff,0xf5,0xff, +0x4,0x0,0xf4,0xff,0xf8,0xff,0xc,0x0,0xfb,0xff,0xe6,0xff, +0xd9,0xff,0xc8,0xff,0xd0,0xff,0xdd,0xff,0xdd,0xff,0xdb,0xff, +0xd3,0xff,0xd7,0xff,0xd5,0xff,0xc5,0xff,0xd0,0xff,0xd3,0xff, +0xc4,0xff,0xc3,0xff,0xbd,0xff,0xc1,0xff,0xcd,0xff,0xbf,0xff, +0xb2,0xff,0xab,0xff,0xb2,0xff,0xd1,0xff,0xd1,0xff,0xc3,0xff, +0xc8,0xff,0xc4,0xff,0xc9,0xff,0xc5,0xff,0xb9,0xff,0xcf,0xff, +0xca,0xff,0xb1,0xff,0xc4,0xff,0xd3,0xff,0xd8,0xff,0xe9,0xff, +0xe1,0xff,0xd4,0xff,0xd9,0xff,0xf2,0xff,0xf,0x0,0xfa,0xff, +0xd9,0xff,0xdb,0xff,0xd5,0xff,0xd1,0xff,0xd8,0xff,0xcd,0xff, +0xc5,0xff,0xbf,0xff,0xb4,0xff,0xb9,0xff,0xc3,0xff,0xc6,0xff, +0xc0,0xff,0xbc,0xff,0xc7,0xff,0xd1,0xff,0xde,0xff,0xed,0xff, +0xe0,0xff,0xce,0xff,0xd4,0xff,0xe7,0xff,0xf3,0xff,0xe8,0xff, +0xda,0xff,0xd3,0xff,0xb8,0xff,0xa9,0xff,0xb1,0xff,0xaf,0xff, +0xb5,0xff,0xc8,0xff,0xd4,0xff,0xdf,0xff,0xe4,0xff,0xda,0xff, +0xd0,0xff,0xd4,0xff,0xd9,0xff,0xd6,0xff,0xd7,0xff,0xd4,0xff, +0xc4,0xff,0xbe,0xff,0xc1,0xff,0xc1,0xff,0xc3,0xff,0xbf,0xff, +0xc2,0xff,0xcc,0xff,0xc0,0xff,0xb4,0xff,0xb9,0xff,0xb2,0xff, +0xa8,0xff,0x9c,0xff,0x97,0xff,0xb0,0xff,0xb5,0xff,0x9f,0xff, +0xb0,0xff,0xca,0xff,0xc3,0xff,0xc5,0xff,0xd0,0xff,0xd0,0xff, +0xde,0xff,0xe2,0xff,0xc5,0xff,0xb7,0xff,0xc5,0xff,0xc5,0xff, +0xbc,0xff,0xbb,0xff,0xbb,0xff,0xbc,0xff,0xbd,0xff,0xbb,0xff, +0xc9,0xff,0xe4,0xff,0xe5,0xff,0xd7,0xff,0xdd,0xff,0xe3,0xff, +0xe1,0xff,0xe6,0xff,0xda,0xff,0xc9,0xff,0xd8,0xff,0xdf,0xff, +0xcd,0xff,0xc2,0xff,0xbb,0xff,0xc4,0xff,0xd8,0xff,0xd6,0xff, +0xca,0xff,0xc9,0xff,0xd4,0xff,0xde,0xff,0xcf,0xff,0xd0,0xff, +0xed,0xff,0xee,0xff,0xe2,0xff,0xda,0xff,0xc5,0xff,0xce,0xff, +0xe0,0xff,0xd0,0xff,0xcb,0xff,0xd7,0xff,0xe2,0xff,0xe6,0xff, +0xd5,0xff,0xd9,0xff,0xf1,0xff,0xea,0xff,0xde,0xff,0xdb,0xff, +0xdb,0xff,0xf0,0xff,0xf2,0xff,0xd4,0xff,0xce,0xff,0xd4,0xff, +0xc6,0xff,0xc6,0xff,0xd6,0xff,0xd9,0xff,0xcf,0xff,0xcc,0xff, +0xd3,0xff,0xdc,0xff,0xe3,0xff,0xe1,0xff,0xd8,0xff,0xd2,0xff, +0xbf,0xff,0xaa,0xff,0xb4,0xff,0xc4,0xff,0xbe,0xff,0xc9,0xff, +0xe4,0xff,0xe3,0xff,0xd7,0xff,0xe4,0xff,0xf5,0xff,0xec,0xff, +0xd9,0xff,0xde,0xff,0xf0,0xff,0xf4,0xff,0xe7,0xff,0xda,0xff, +0xda,0xff,0xe0,0xff,0xdc,0xff,0xd1,0xff,0xc7,0xff,0xc6,0xff, +0xd9,0xff,0xe4,0xff,0xeb,0xff,0xa,0x0,0xc,0x0,0xfc,0xff, +0xd,0x0,0xa,0x0,0xf2,0xff,0xf7,0xff,0xf1,0xff,0xdc,0xff, +0xd0,0xff,0xc1,0xff,0xbf,0xff,0xc2,0xff,0xc6,0xff,0xd7,0xff, +0xdd,0xff,0xe9,0xff,0xfd,0xff,0xe5,0xff,0xcc,0xff,0xca,0xff, +0xcf,0xff,0xe7,0xff,0xe9,0xff,0xe1,0xff,0xf9,0xff,0xf4,0xff, +0xe5,0xff,0xec,0xff,0xdf,0xff,0xe0,0xff,0xf2,0xff,0xf8,0xff, +0xe,0x0,0xa,0x0,0xeb,0xff,0xeb,0xff,0xe7,0xff,0xe3,0xff, +0xe7,0xff,0xd1,0xff,0xd7,0xff,0xf0,0xff,0xe1,0xff,0xc7,0xff, +0xbc,0xff,0xcc,0xff,0xe8,0xff,0xdf,0xff,0xd8,0xff,0xdc,0xff, +0xc3,0xff,0xb4,0xff,0xb7,0xff,0xbb,0xff,0xc5,0xff,0xba,0xff, +0xb2,0xff,0xbd,0xff,0xb3,0xff,0xb2,0xff,0xcf,0xff,0xd4,0xff, +0xc0,0xff,0xbf,0xff,0xdb,0xff,0xe6,0xff,0xda,0xff,0xe2,0xff, +0xf0,0xff,0xec,0xff,0xef,0xff,0xea,0xff,0xd0,0xff,0xcd,0xff, +0xe7,0xff,0xf4,0xff,0xe3,0xff,0xd6,0xff,0xd7,0xff,0xc9,0xff, +0xc3,0xff,0xdc,0xff,0xec,0xff,0xdf,0xff,0xd1,0xff,0xd6,0xff, +0xdb,0xff,0xd0,0xff,0xcb,0xff,0xd9,0xff,0xdb,0xff,0xcb,0xff, +0xd0,0xff,0xeb,0xff,0xe3,0xff,0xcf,0xff,0xdf,0xff,0xdd,0xff, +0xc5,0xff,0xc9,0xff,0xc0,0xff,0xb3,0xff,0xc3,0xff,0xca,0xff, +0xcd,0xff,0xdf,0xff,0xe9,0xff,0xe8,0xff,0xd9,0xff,0xd4,0xff, +0xdf,0xff,0xd0,0xff,0xc2,0xff,0xce,0xff,0xd7,0xff,0xe7,0xff, +0xe3,0xff,0xce,0xff,0xdc,0xff,0xdd,0xff,0xce,0xff,0xd8,0xff, +0xce,0xff,0xc3,0xff,0xd4,0xff,0xcb,0xff,0xbb,0xff,0xbe,0xff, +0xbe,0xff,0xc6,0xff,0xc8,0xff,0xc5,0xff,0xd6,0xff,0xdc,0xff, +0xd5,0xff,0xde,0xff,0xe3,0xff,0xe7,0xff,0xf8,0xff,0xf8,0xff, +0xe2,0xff,0xd8,0xff,0xde,0xff,0xdc,0xff,0xcf,0xff,0xcb,0xff, +0xd9,0xff,0xdb,0xff,0xc8,0xff,0xc4,0xff,0xcd,0xff,0xd2,0xff, +0xe4,0xff,0xe4,0xff,0xce,0xff,0xdc,0xff,0xe9,0xff,0xd5,0xff, +0xd2,0xff,0xcd,0xff,0xc9,0xff,0xd8,0xff,0xc9,0xff,0xba,0xff, +0xc9,0xff,0xbd,0xff,0xb4,0xff,0xc3,0xff,0xc3,0xff,0xc7,0xff, +0xd1,0xff,0xc7,0xff,0xba,0xff,0xbf,0xff,0xd6,0xff,0xde,0xff, +0xd4,0xff,0xe1,0xff,0xf3,0xff,0xef,0xff,0xe8,0xff,0xdb,0xff, +0xd5,0xff,0xe0,0xff,0xe2,0xff,0xdc,0xff,0xd2,0xff,0xcb,0xff, +0xd1,0xff,0xd9,0xff,0xe5,0xff,0xf5,0xff,0xfd,0xff,0x3,0x0, +0xf5,0xff,0xe6,0xff,0xf0,0xff,0xeb,0xff,0xdb,0xff,0xdb,0xff, +0xd3,0xff,0xd8,0xff,0xe3,0xff,0xd8,0xff,0xdb,0xff,0xe8,0xff, +0xe5,0xff,0xe3,0xff,0xd4,0xff,0xbe,0xff,0xba,0xff,0xb9,0xff, +0xba,0xff,0xbf,0xff,0xbd,0xff,0xbe,0xff,0xc6,0xff,0xcd,0xff, +0xd3,0xff,0xd6,0xff,0xe3,0xff,0xfa,0xff,0x0,0x0,0xea,0xff, +0xde,0xff,0xee,0xff,0xe7,0xff,0xcc,0xff,0xd6,0xff,0xdb,0xff, +0xd4,0xff,0xed,0xff,0xf1,0xff,0xe5,0xff,0xff,0xff,0x5,0x0, +0xf2,0xff,0xfa,0xff,0xfb,0xff,0xee,0xff,0xec,0xff,0xea,0xff, +0xeb,0xff,0xf2,0xff,0xef,0xff,0xdf,0xff,0xd9,0xff,0xe5,0xff, +0xde,0xff,0xd0,0xff,0xdd,0xff,0xe4,0xff,0xdf,0xff,0xe1,0xff, +0xdf,0xff,0xdf,0xff,0xe0,0xff,0xe1,0xff,0xed,0xff,0xee,0xff, +0xe6,0xff,0xe1,0xff,0xd4,0xff,0xd7,0xff,0xe8,0xff,0xeb,0xff, +0xfc,0xff,0x1,0x0,0xe3,0xff,0xe8,0xff,0x1,0x0,0xfc,0xff, +0xf4,0xff,0xf8,0xff,0xfa,0xff,0xeb,0xff,0xdd,0xff,0xec,0xff, +0xff,0xff,0xa,0x0,0x14,0x0,0xb,0x0,0x0,0x0,0x5,0x0, +0x2,0x0,0x6,0x0,0xb,0x0,0xfc,0xff,0xf6,0xff,0xfb,0xff, +0xf1,0xff,0xe6,0xff,0xd9,0xff,0xcf,0xff,0xda,0xff,0xe6,0xff, +0xe4,0xff,0xe5,0xff,0xeb,0xff,0xee,0xff,0xf7,0xff,0xfe,0xff, +0xf6,0xff,0xf2,0xff,0xf9,0xff,0xf3,0xff,0xe5,0xff,0xe1,0xff, +0xd4,0xff,0xc7,0xff,0xd6,0xff,0xf5,0xff,0x2,0x0,0xf6,0xff, +0xf3,0xff,0x8,0x0,0x16,0x0,0x13,0x0,0xd,0x0,0xfe,0xff, +0xed,0xff,0xf6,0xff,0x7,0x0,0xf4,0xff,0xe7,0xff,0xf8,0xff, +0xfa,0xff,0xf0,0xff,0xf3,0xff,0xe8,0xff,0xe1,0xff,0xef,0xff, +0xef,0xff,0xe5,0xff,0xeb,0xff,0xf7,0xff,0xeb,0xff,0xd9,0xff, +0xee,0xff,0xf9,0xff,0xdf,0xff,0xe2,0xff,0xef,0xff,0xe7,0xff, +0xf1,0xff,0xed,0xff,0xe4,0xff,0xff,0xff,0x2,0x0,0xf8,0xff, +0xa,0x0,0x8,0x0,0xfc,0xff,0x3,0x0,0xb,0x0,0x12,0x0, +0x5,0x0,0xec,0xff,0xee,0xff,0xf5,0xff,0xe7,0xff,0xdb,0xff, +0xeb,0xff,0xf7,0xff,0xe3,0xff,0xe6,0xff,0xfc,0xff,0xf0,0xff, +0xeb,0xff,0xf6,0xff,0xf1,0xff,0xf9,0xff,0xf1,0xff,0xd5,0xff, +0xde,0xff,0xea,0xff,0xe3,0xff,0xe3,0xff,0xd8,0xff,0xd4,0xff, +0xe1,0xff,0xe5,0xff,0xe9,0xff,0xed,0xff,0xe7,0xff,0xe2,0xff, +0xe5,0xff,0xe5,0xff,0xd6,0xff,0xd4,0xff,0xed,0xff,0xee,0xff, +0xe5,0xff,0xf3,0xff,0xfd,0xff,0xfb,0xff,0xe3,0xff,0xcd,0xff, +0xe5,0xff,0xf0,0xff,0xdd,0xff,0xe2,0xff,0xf3,0xff,0xff,0xff, +0x1,0x0,0xf3,0xff,0xef,0xff,0xf2,0xff,0xf1,0xff,0xeb,0xff, +0xce,0xff,0xc1,0xff,0xca,0xff,0xbe,0xff,0xb7,0xff,0xb8,0xff, +0xb7,0xff,0xcf,0xff,0xdd,0xff,0xc9,0xff,0xc2,0xff,0xdb,0xff, +0xfb,0xff,0xfa,0xff,0xe3,0xff,0xdf,0xff,0xdd,0xff,0xd9,0xff, +0xd4,0xff,0xc8,0xff,0xce,0xff,0xd5,0xff,0xcf,0xff,0xdd,0xff, +0xe5,0xff,0xdc,0xff,0xd8,0xff,0xd2,0xff,0xe8,0xff,0xf6,0xff, +0xd6,0xff,0xcf,0xff,0xd6,0xff,0xc4,0xff,0xc4,0xff,0xc7,0xff, +0xbe,0xff,0xc9,0xff,0xd1,0xff,0xd5,0xff,0xd7,0xff,0xbd,0xff, +0xbb,0xff,0xd7,0xff,0xd5,0xff,0xc9,0xff,0xce,0xff,0xc7,0xff, +0xba,0xff,0xbf,0xff,0xc6,0xff,0xc6,0xff,0xcc,0xff,0xcd,0xff, +0xc0,0xff,0xbc,0xff,0xc6,0xff,0xc7,0xff,0xbf,0xff,0xca,0xff, +0xe2,0xff,0xe5,0xff,0xe6,0xff,0xe8,0xff,0xd3,0xff,0xd5,0xff, +0xec,0xff,0xe2,0xff,0xd9,0xff,0xd6,0xff,0xcc,0xff,0xd5,0xff, +0xd0,0xff,0xc0,0xff,0xcd,0xff,0xd4,0xff,0xe4,0xff,0xfb,0xff, +0xf1,0xff,0xf8,0xff,0x7,0x0,0xf4,0xff,0xed,0xff,0xea,0xff, +0xde,0xff,0xe2,0xff,0xce,0xff,0xb6,0xff,0xc4,0xff,0xce,0xff, +0xcb,0xff,0xd1,0xff,0xe5,0xff,0xfe,0xff,0xfd,0xff,0xf4,0xff, +0xf7,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff,0xe5,0xff,0xd5,0xff, +0xd4,0xff,0xee,0xff,0xfc,0xff,0xe7,0xff,0xe3,0xff,0xf3,0xff, +0xf6,0xff,0xfc,0xff,0x1,0x0,0x2,0x0,0x9,0x0,0x6,0x0, +0x0,0x0,0xfd,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff,0xf8,0xff, +0xfc,0xff,0xf4,0xff,0xea,0xff,0xe7,0xff,0xef,0xff,0xf5,0xff, +0xf4,0xff,0x2,0x0,0x9,0x0,0xfc,0xff,0xff,0xff,0xf9,0xff, +0xf2,0xff,0x0,0x0,0xeb,0xff,0xd7,0xff,0xf3,0xff,0xf6,0xff, +0xec,0xff,0xf3,0xff,0xf3,0xff,0x6,0x0,0x17,0x0,0x5,0x0, +0x0,0x0,0x7,0x0,0x0,0x0,0xfb,0xff,0x2,0x0,0xa,0x0, +0x4,0x0,0xfb,0xff,0xf9,0xff,0xee,0xff,0xf1,0xff,0xfa,0xff, +0xe8,0xff,0xeb,0xff,0x1,0x0,0xfa,0xff,0xf3,0xff,0xf0,0xff, +0xe6,0xff,0xef,0xff,0xf7,0xff,0xef,0xff,0xf2,0xff,0xf9,0xff, +0xf8,0xff,0xf9,0xff,0xfb,0xff,0xf5,0xff,0xf3,0xff,0xfd,0xff, +0xf5,0xff,0xe4,0xff,0xe4,0xff,0xde,0xff,0xd2,0xff,0xd9,0xff, +0xe6,0xff,0xef,0xff,0xf9,0xff,0xfe,0xff,0x5,0x0,0xc,0x0, +0x9,0x0,0xf8,0xff,0xe6,0xff,0xde,0xff,0xdd,0xff,0xdf,0xff, +0xdb,0xff,0xd3,0xff,0xda,0xff,0xdf,0xff,0xd7,0xff,0xdb,0xff, +0xe0,0xff,0xdf,0xff,0xe2,0xff,0xe0,0xff,0xdd,0xff,0xde,0xff, +0xda,0xff,0xd2,0xff,0xc1,0xff,0xc7,0xff,0xe0,0xff,0xdd,0xff, +0xe2,0xff,0xed,0xff,0xdb,0xff,0xe1,0xff,0xeb,0xff,0xdd,0xff, +0xe8,0xff,0xe2,0xff,0xd2,0xff,0xe8,0xff,0xe0,0xff,0xcc,0xff, +0xde,0xff,0xd5,0xff,0xc4,0xff,0xcd,0xff,0xd3,0xff,0xea,0xff, +0x2,0x0,0xfc,0xff,0xfa,0xff,0x2,0x0,0x4,0x0,0xfe,0xff, +0xf6,0xff,0xf2,0xff,0xe8,0xff,0xe6,0xff,0xea,0xff,0xd8,0xff, +0xd2,0xff,0xd8,0xff,0xc6,0xff,0xc1,0xff,0xca,0xff,0xcd,0xff, +0xda,0xff,0xdb,0xff,0xcd,0xff,0xd2,0xff,0xcf,0xff,0xc4,0xff, +0xc7,0xff,0xc6,0xff,0xc3,0xff,0xce,0xff,0xd7,0xff,0xce,0xff, +0xc9,0xff,0xd3,0xff,0xd4,0xff,0xc7,0xff,0xc2,0xff,0xc4,0xff, +0xca,0xff,0xd6,0xff,0xdc,0xff,0xda,0xff,0xd5,0xff,0xce,0xff, +0xce,0xff,0xd7,0xff,0xde,0xff,0xe1,0xff,0xe5,0xff,0xe4,0xff, +0xde,0xff,0xe0,0xff,0xea,0xff,0xeb,0xff,0xe9,0xff,0xe5,0xff, +0xe1,0xff,0xee,0xff,0xec,0xff,0xdb,0xff,0xe6,0xff,0xef,0xff, +0xd6,0xff,0xc8,0xff,0xd2,0xff,0xd4,0xff,0xd1,0xff,0xd7,0xff, +0xe2,0xff,0xe8,0xff,0xe1,0xff,0xd7,0xff,0xd8,0xff,0xde,0xff, +0xda,0xff,0xd6,0xff,0xd2,0xff,0xcf,0xff,0xd5,0xff,0xd9,0xff, +0xd0,0xff,0xd3,0xff,0xe2,0xff,0xe3,0xff,0xd7,0xff,0xc9,0xff, +0xc6,0xff,0xd5,0xff,0xe3,0xff,0xdb,0xff,0xca,0xff,0xcb,0xff, +0xce,0xff,0xc4,0xff,0xc7,0xff,0xce,0xff,0xcb,0xff,0xd1,0xff, +0xc9,0xff,0xbb,0xff,0xcc,0xff,0xd8,0xff,0xd6,0xff,0xe0,0xff, +0xd4,0xff,0xc6,0xff,0xd9,0xff,0xdc,0xff,0xcc,0xff,0xcc,0xff, +0xca,0xff,0xc5,0xff,0xce,0xff,0xd8,0xff,0xe2,0xff,0xe8,0xff, +0xe0,0xff,0xd8,0xff,0xdc,0xff,0xe2,0xff,0xe5,0xff,0xe6,0xff, +0xdf,0xff,0xdd,0xff,0xe2,0xff,0xe1,0xff,0xdc,0xff,0xe7,0xff, +0xf2,0xff,0xec,0xff,0xe8,0xff,0xef,0xff,0xeb,0xff,0xe2,0xff, +0xec,0xff,0xe8,0xff,0xc8,0xff,0xc4,0xff,0xe7,0xff,0xf1,0xff, +0xda,0xff,0xd3,0xff,0xdf,0xff,0xe1,0xff,0xe3,0xff,0xe8,0xff, +0xe5,0xff,0xef,0xff,0xf3,0xff,0xe0,0xff,0xe0,0xff,0xea,0xff, +0xe2,0xff,0xe4,0xff,0xec,0xff,0xeb,0xff,0xe8,0xff,0xe4,0xff, +0xe7,0xff,0xed,0xff,0xeb,0xff,0xf4,0xff,0xfa,0xff,0xf0,0xff, +0xe7,0xff,0xe4,0xff,0xe5,0xff,0xe1,0xff,0xda,0xff,0xe0,0xff, +0xe1,0xff,0xd8,0xff,0xdc,0xff,0xd9,0xff,0xd8,0xff,0xe0,0xff, +0xdd,0xff,0xe9,0xff,0xfc,0xff,0xf7,0xff,0xf5,0xff,0xea,0xff, +0xda,0xff,0xec,0xff,0xef,0xff,0xdd,0xff,0xe5,0xff,0xea,0xff, +0xe7,0xff,0xe9,0xff,0xe7,0xff,0xee,0xff,0xf1,0xff,0xec,0xff, +0xf6,0xff,0x1,0x0,0x9,0x0,0x5,0x0,0xf4,0xff,0xf5,0xff, +0xfc,0xff,0xfb,0xff,0x4,0x0,0x8,0x0,0x4,0x0,0x2,0x0, +0xf7,0xff,0xef,0xff,0xea,0xff,0xe5,0xff,0xea,0xff,0xe3,0xff, +0xd4,0xff,0xd6,0xff,0xd6,0xff,0xdc,0xff,0xe5,0xff,0xdc,0xff, +0xde,0xff,0xe2,0xff,0xde,0xff,0xed,0xff,0xf3,0xff,0xe2,0xff, +0xe6,0xff,0xed,0xff,0xe2,0xff,0xdf,0xff,0xe3,0xff,0xdf,0xff, +0xdf,0xff,0xe9,0xff,0xe9,0xff,0xe4,0xff,0xe9,0xff,0xe4,0xff, +0xdb,0xff,0xeb,0xff,0xf1,0xff,0xe9,0xff,0xee,0xff,0xec,0xff, +0xe0,0xff,0xe0,0xff,0xe1,0xff,0xe3,0xff,0xe7,0xff,0xeb,0xff, +0xf1,0xff,0xf7,0xff,0xfd,0xff,0xfc,0xff,0xee,0xff,0xe3,0xff, +0xe5,0xff,0xe1,0xff,0xde,0xff,0xe1,0xff,0xe3,0xff,0xde,0xff, +0xdb,0xff,0xe1,0xff,0xe2,0xff,0xda,0xff,0xdd,0xff,0xe9,0xff, +0xf1,0xff,0xef,0xff,0xed,0xff,0xf4,0xff,0xf3,0xff,0xe0,0xff, +0xd3,0xff,0xdd,0xff,0xea,0xff,0xdc,0xff,0xc6,0xff,0xd8,0xff, +0xeb,0xff,0xdf,0xff,0xe4,0xff,0xf3,0xff,0xe8,0xff,0xe3,0xff, +0xe6,0xff,0xda,0xff,0xd8,0xff,0xeb,0xff,0xf6,0xff,0xed,0xff, +0xe3,0xff,0xe4,0xff,0xea,0xff,0xe9,0xff,0xea,0xff,0xf0,0xff, +0xfa,0xff,0xfe,0xff,0xf6,0xff,0xf0,0xff,0xf2,0xff,0xf1,0xff, +0xf2,0xff,0xf8,0xff,0xf7,0xff,0xf4,0xff,0xf8,0xff,0xf8,0xff, +0xef,0xff,0xe6,0xff,0xea,0xff,0xf3,0xff,0xf6,0xff,0xf9,0xff, +0xfb,0xff,0xf7,0xff,0xee,0xff,0xec,0xff,0xfa,0xff,0xb,0x0, +0xa,0x0,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xf6,0xff,0x1,0x0, +0x10,0x0,0xc,0x0,0x4,0x0,0x0,0x0,0x1,0x0,0x4,0x0, +0x3,0x0,0x4,0x0,0x7,0x0,0xfb,0xff,0xee,0xff,0xeb,0xff, +0xeb,0xff,0xf0,0xff,0xf5,0xff,0xf3,0xff,0xf8,0xff,0xfc,0xff, +0xf2,0xff,0xee,0xff,0xf4,0xff,0xf6,0xff,0xf1,0xff,0xee,0xff, +0xef,0xff,0xec,0xff,0xed,0xff,0xf3,0xff,0xea,0xff,0xdf,0xff, +0xe1,0xff,0xdb,0xff,0xdc,0xff,0xf2,0xff,0xf1,0xff,0xe5,0xff, +0xeb,0xff,0xe3,0xff,0xdd,0xff,0xf0,0xff,0xf3,0xff,0xe9,0xff, +0xed,0xff,0xe9,0xff,0xdf,0xff,0xdc,0xff,0xd1,0xff,0xd4,0xff, +0xe8,0xff,0xee,0xff,0xf0,0xff,0xf4,0xff,0xef,0xff,0xed,0xff, +0xe8,0xff,0xdb,0xff,0xd8,0xff,0xd8,0xff,0xce,0xff,0xc6,0xff, +0xc8,0xff,0xd0,0xff,0xd8,0xff,0xd9,0xff,0xd8,0xff,0xe6,0xff, +0xfa,0xff,0xf6,0xff,0xe4,0xff,0xe4,0xff,0xea,0xff,0xe8,0xff, +0xe5,0xff,0xdc,0xff,0xd6,0xff,0xdc,0xff,0xe1,0xff,0xdd,0xff, +0xdf,0xff,0xe6,0xff,0xea,0xff,0xec,0xff,0xf4,0xff,0xf3,0xff, +0xe1,0xff,0xda,0xff,0xe7,0xff,0xe6,0xff,0xd8,0xff,0xdb,0xff, +0xea,0xff,0xee,0xff,0xe8,0xff,0xe8,0xff,0xe7,0xff,0xdf,0xff, +0xda,0xff,0xe3,0xff,0xec,0xff,0xe5,0xff,0xd7,0xff,0xd5,0xff, +0xdb,0xff,0xde,0xff,0xda,0xff,0xd7,0xff,0xdb,0xff,0xe0,0xff, +0xda,0xff,0xcd,0xff,0xc9,0xff,0xd4,0xff,0xe7,0xff,0xf1,0xff, +0xef,0xff,0xeb,0xff,0xef,0xff,0xf6,0xff,0xf4,0xff,0xf1,0xff, +0xed,0xff,0xe0,0xff,0xdf,0xff,0xe5,0xff,0xd9,0xff,0xd8,0xff, +0xef,0xff,0xf4,0xff,0xe7,0xff,0xe7,0xff,0xef,0xff,0xf2,0xff, +0xe9,0xff,0xd7,0xff,0xcf,0xff,0xd8,0xff,0xdc,0xff,0xcc,0xff, +0xc8,0xff,0xd5,0xff,0xd9,0xff,0xdf,0xff,0xeb,0xff,0xe9,0xff, +0xe6,0xff,0xea,0xff,0xe4,0xff,0xdf,0xff,0xe4,0xff,0xea,0xff, +0xe8,0xff,0xe7,0xff,0xf1,0xff,0xf4,0xff,0xe7,0xff,0xe1,0xff, +0xe5,0xff,0xed,0xff,0xf8,0xff,0xf3,0xff,0xe8,0xff,0xe8,0xff, +0xe7,0xff,0xea,0xff,0xea,0xff,0xdb,0xff,0xdd,0xff,0xed,0xff, +0xe9,0xff,0xe7,0xff,0xf2,0xff,0xe8,0xff,0xd8,0xff,0xde,0xff, +0xe1,0xff,0xd7,0xff,0xdc,0xff,0xee,0xff,0xf0,0xff,0xe7,0xff, +0xe6,0xff,0xea,0xff,0xe6,0xff,0xe6,0xff,0xf0,0xff,0xf0,0xff, +0xe3,0xff,0xe6,0xff,0xe9,0xff,0xdd,0xff,0xeb,0xff,0x0,0x0, +0xf8,0xff,0xfd,0xff,0x6,0x0,0xee,0xff,0xe7,0xff,0xf7,0xff, +0xea,0xff,0xe7,0xff,0xf5,0xff,0xe6,0xff,0xd3,0xff,0xdb,0xff, +0xe5,0xff,0xee,0xff,0xf8,0xff,0xf7,0xff,0xf2,0xff,0xed,0xff, +0xe7,0xff,0xe8,0xff,0xeb,0xff,0xe2,0xff,0xda,0xff,0xe4,0xff, +0xf3,0xff,0xfc,0xff,0x7,0x0,0xc,0x0,0x8,0x0,0x4,0x0, +0x4,0x0,0x2,0x0,0xfa,0xff,0xf7,0xff,0x7,0x0,0xf,0x0, +0x6,0x0,0x6,0x0,0xc,0x0,0x10,0x0,0x17,0x0,0x18,0x0, +0x13,0x0,0xa,0x0,0xff,0xff,0xf8,0xff,0xf0,0xff,0xe5,0xff, +0xe7,0xff,0xf2,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0x6,0x0, +0x8,0x0,0x0,0x0,0xd,0x0,0x13,0x0,0x9,0x0,0x5,0x0, +0xf6,0xff,0xeb,0xff,0xf2,0xff,0xef,0xff,0xf1,0xff,0xfc,0xff, +0xfe,0xff,0x8,0x0,0x7,0x0,0xf5,0xff,0xfc,0xff,0x6,0x0, +0x4,0x0,0x5,0x0,0xfd,0xff,0xf1,0xff,0xf0,0xff,0xef,0xff, +0xef,0xff,0xec,0xff,0xe9,0xff,0xf4,0xff,0xf3,0xff,0xe5,0xff, +0xea,0xff,0xfa,0xff,0xfe,0xff,0xf8,0xff,0xf9,0xff,0xfd,0xff, +0xf0,0xff,0xe4,0xff,0xec,0xff,0xf2,0xff,0xf0,0xff,0xf1,0xff, +0xf2,0xff,0xf6,0xff,0xf9,0xff,0xf3,0xff,0xec,0xff,0xf1,0xff, +0xf2,0xff,0xea,0xff,0xef,0xff,0xf5,0xff,0xee,0xff,0xf1,0xff, +0xef,0xff,0xdd,0xff,0xe3,0xff,0xf0,0xff,0xeb,0xff,0xee,0xff, +0xee,0xff,0xe8,0xff,0xe9,0xff,0xe1,0xff,0xe4,0xff,0xe8,0xff, +0xd0,0xff,0xd0,0xff,0xe2,0xff,0xda,0xff,0xd8,0xff,0xe2,0xff, +0xe0,0xff,0xe2,0xff,0xe6,0xff,0xe4,0xff,0xdd,0xff,0xdd,0xff, +0xe3,0xff,0xd4,0xff,0xc0,0xff,0xcd,0xff,0xd9,0xff,0xd9,0xff, +0xe5,0xff,0xf1,0xff,0xfa,0xff,0xf9,0xff,0xea,0xff,0xe8,0xff, +0xee,0xff,0xea,0xff,0xe4,0xff,0xda,0xff,0xd7,0xff,0xdd,0xff, +0xd3,0xff,0xcc,0xff,0xd2,0xff,0xd6,0xff,0xe0,0xff,0xe7,0xff, +0xdd,0xff,0xd7,0xff,0xde,0xff,0xeb,0xff,0xea,0xff,0xdb,0xff, +0xd7,0xff,0xd7,0xff,0xd7,0xff,0xd8,0xff,0xd2,0xff,0xdd,0xff, +0xef,0xff,0xe5,0xff,0xe1,0xff,0xed,0xff,0xeb,0xff,0xe9,0xff, +0xe7,0xff,0xe1,0xff,0xe8,0xff,0xe8,0xff,0xdf,0xff,0xe0,0xff, +0xdd,0xff,0xd8,0xff,0xd5,0xff,0xd1,0xff,0xdc,0xff,0xea,0xff, +0xef,0xff,0xf4,0xff,0xeb,0xff,0xe2,0xff,0xe8,0xff,0xea,0xff, +0xe5,0xff,0xdc,0xff,0xd8,0xff,0xd9,0xff,0xcf,0xff,0xcd,0xff, +0xdc,0xff,0xd7,0xff,0xd0,0xff,0xd7,0xff,0xd6,0xff,0xe1,0xff, +0xf2,0xff,0xf0,0xff,0xed,0xff,0xf5,0xff,0xf8,0xff,0xf1,0xff, +0xeb,0xff,0xf5,0xff,0xf6,0xff,0xe5,0xff,0xe2,0xff,0xe5,0xff, +0xe5,0xff,0xee,0xff,0xed,0xff,0xe6,0xff,0xeb,0xff,0xe5,0xff, +0xd7,0xff,0xda,0xff,0xdf,0xff,0xdf,0xff,0xdc,0xff,0xd8,0xff, +0xda,0xff,0xe1,0xff,0xdc,0xff,0xd8,0xff,0xe0,0xff,0xe7,0xff, +0xe5,0xff,0xe8,0xff,0xeb,0xff,0xe4,0xff,0xe2,0xff,0xef,0xff, +0xf0,0xff,0xe4,0xff,0xe7,0xff,0xeb,0xff,0xe2,0xff,0xe9,0xff, +0xef,0xff,0xe5,0xff,0xeb,0xff,0xf3,0xff,0xec,0xff,0xf9,0xff, +0x6,0x0,0xff,0xff,0x3,0x0,0x9,0x0,0xfd,0xff,0xf4,0xff, +0xee,0xff,0xef,0xff,0xf5,0xff,0xe9,0xff,0xe4,0xff,0xf0,0xff, +0xf0,0xff,0xf1,0xff,0xfe,0xff,0xfa,0xff,0xe8,0xff,0xe8,0xff, +0xec,0xff,0xe8,0xff,0xe6,0xff,0xe2,0xff,0xdb,0xff,0xe4,0xff, +0xf2,0xff,0xf3,0xff,0xec,0xff,0xe9,0xff,0xf2,0xff,0xfe,0xff, +0xff,0xff,0xfc,0xff,0xf4,0xff,0xec,0xff,0xe5,0xff,0xdd,0xff, +0xe6,0xff,0xf0,0xff,0xe2,0xff,0xea,0xff,0xfd,0xff,0xf0,0xff, +0xee,0xff,0xf5,0xff,0xed,0xff,0xf1,0xff,0xec,0xff,0xdf,0xff, +0xeb,0xff,0xe8,0xff,0xda,0xff,0xe0,0xff,0xe9,0xff,0xf0,0xff, +0xf3,0xff,0xee,0xff,0xef,0xff,0xe5,0xff,0xe6,0xff,0xfe,0xff, +0xfa,0xff,0xec,0xff,0xf7,0xff,0xf6,0xff,0xef,0xff,0xee,0xff, +0xf4,0xff,0x2,0x0,0xfc,0xff,0xee,0xff,0xee,0xff,0xe9,0xff, +0xeb,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xef,0xff,0xe9,0xff, +0xf4,0xff,0xf7,0xff,0xee,0xff,0xf0,0xff,0xf6,0xff,0xf8,0xff, +0xec,0xff,0xdf,0xff,0xe7,0xff,0xe7,0xff,0xe5,0xff,0xf2,0xff, +0xed,0xff,0xe9,0xff,0xf8,0xff,0xf3,0xff,0xe4,0xff,0xeb,0xff, +0xf4,0xff,0xf4,0xff,0xf6,0xff,0xfc,0xff,0xfa,0xff,0xf3,0xff, +0xf7,0xff,0xfa,0xff,0xf6,0xff,0xfa,0xff,0x1,0x0,0x1,0x0, +0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff, +0xef,0xff,0xea,0xff,0xef,0xff,0xf3,0xff,0xf6,0xff,0xec,0xff, +0xdc,0xff,0xe0,0xff,0xe9,0xff,0xe7,0xff,0xe9,0xff,0xeb,0xff, +0xef,0xff,0xf7,0xff,0xe9,0xff,0xd9,0xff,0xe0,0xff,0xda,0xff, +0xd9,0xff,0xf1,0xff,0xed,0xff,0xe0,0xff,0xf5,0xff,0xf3,0xff, +0xe6,0xff,0xfa,0xff,0xfc,0xff,0xec,0xff,0xee,0xff,0xea,0xff, +0xe4,0xff,0xe5,0xff,0xdf,0xff,0xe5,0xff,0xed,0xff,0xeb,0xff, +0xf9,0xff,0x5,0x0,0xfb,0xff,0xf9,0xff,0x0,0x0,0xff,0xff, +0xf8,0xff,0xef,0xff,0xec,0xff,0xe7,0xff,0xdb,0xff,0xdf,0xff, +0xef,0xff,0xf5,0xff,0xf1,0xff,0xe9,0xff,0xe6,0xff,0xee,0xff, +0xf1,0xff,0xef,0xff,0xf3,0xff,0xf0,0xff,0xe8,0xff,0xed,0xff, +0xe6,0xff,0xda,0xff,0xef,0xff,0xfd,0xff,0xec,0xff,0xed,0xff, +0xfc,0xff,0xf3,0xff,0xe9,0xff,0xeb,0xff,0xf0,0xff,0xed,0xff, +0xdf,0xff,0xdd,0xff,0xe1,0xff,0xe2,0xff,0xf0,0xff,0xf4,0xff, +0xec,0xff,0xf1,0xff,0xf2,0xff,0xe9,0xff,0xed,0xff,0xf1,0xff, +0xee,0xff,0xf0,0xff,0xf0,0xff,0xe7,0xff,0xe7,0xff,0xed,0xff, +0xe8,0xff,0xdf,0xff,0xdd,0xff,0xdb,0xff,0xda,0xff,0xe1,0xff, +0xe7,0xff,0xef,0xff,0xf3,0xff,0xef,0xff,0xf2,0xff,0xfa,0xff, +0xfb,0xff,0xee,0xff,0xe0,0xff,0xe7,0xff,0xef,0xff,0xea,0xff, +0xe8,0xff,0xde,0xff,0xd7,0xff,0xe7,0xff,0xf1,0xff,0xec,0xff, +0xed,0xff,0xf1,0xff,0xf9,0xff,0xfb,0xff,0xeb,0xff,0xe2,0xff, +0xe2,0xff,0xdc,0xff,0xdd,0xff,0xde,0xff,0xda,0xff,0xdf,0xff, +0xe1,0xff,0xde,0xff,0xe8,0xff,0xf4,0xff,0xfa,0xff,0x5,0x0, +0x0,0x0,0xeb,0xff,0xec,0xff,0xf0,0xff,0xe8,0xff,0xee,0xff, +0xf2,0xff,0xea,0xff,0xe7,0xff,0xdf,0xff,0xe2,0xff,0xf6,0xff, +0xf3,0xff,0xee,0xff,0xf9,0xff,0xf5,0xff,0xed,0xff,0xe8,0xff, +0xe0,0xff,0xe4,0xff,0xe4,0xff,0xe4,0xff,0xf1,0xff,0xf4,0xff, +0xed,0xff,0xe9,0xff,0xe3,0xff,0xe5,0xff,0xe9,0xff,0xe6,0xff, +0xe9,0xff,0xeb,0xff,0xe2,0xff,0xe0,0xff,0xe0,0xff,0xd8,0xff, +0xd3,0xff,0xdb,0xff,0xe5,0xff,0xe9,0xff,0xe8,0xff,0xe4,0xff, +0xed,0xff,0xfa,0xff,0xf3,0xff,0xed,0xff,0xf2,0xff,0xf1,0xff, +0xec,0xff,0xe6,0xff,0xe2,0xff,0xe4,0xff,0xe2,0xff,0xec,0xff, +0xf8,0xff,0xf1,0xff,0xf2,0xff,0xf9,0xff,0xef,0xff,0xe9,0xff, +0xe9,0xff,0xe7,0xff,0xeb,0xff,0xea,0xff,0xe4,0xff,0xe4,0xff, +0xec,0xff,0xf5,0xff,0xf3,0xff,0xf7,0xff,0xff,0xff,0xf7,0xff, +0xef,0xff,0xf0,0xff,0xee,0xff,0xef,0xff,0xf2,0xff,0xef,0xff, +0xeb,0xff,0xe9,0xff,0xf0,0xff,0xf3,0xff,0xf4,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x8,0x0,0xf9,0xff,0xef,0xff,0xf0,0xff, +0xe2,0xff,0xea,0xff,0xfc,0xff,0xf0,0xff,0xea,0xff,0xed,0xff, +0xed,0xff,0xf2,0xff,0xed,0xff,0xeb,0xff,0xf1,0xff,0xec,0xff, +0xec,0xff,0xe9,0xff,0xdc,0xff,0xe5,0xff,0xeb,0xff,0xe8,0xff, +0xf7,0xff,0x5,0x0,0xfd,0xff,0xf0,0xff,0xf1,0xff,0xf4,0xff, +0xee,0xff,0xf4,0xff,0xfe,0xff,0xf3,0xff,0xec,0xff,0xf0,0xff, +0xf4,0xff,0xff,0xff,0x4,0x0,0xfb,0xff,0xf5,0xff,0xf7,0xff, +0xfd,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xfa,0xff,0xf0,0xff, +0xf0,0xff,0xed,0xff,0xed,0xff,0xf5,0xff,0xef,0xff,0xe7,0xff, +0xf0,0xff,0xf1,0xff,0xea,0xff,0xf5,0xff,0x5,0x0,0x9,0x0, +0xb,0x0,0x5,0x0,0xf7,0xff,0xf6,0xff,0xf7,0xff,0xf0,0xff, +0xf2,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf2,0xff,0xf1,0xff, +0xf8,0xff,0xfb,0xff,0xfe,0xff,0xfe,0xff,0xf9,0xff,0xfd,0xff, +0xff,0xff,0xf9,0xff,0xf2,0xff,0xf0,0xff,0xf0,0xff,0xee,0xff, +0xee,0xff,0xf6,0xff,0xfd,0xff,0xff,0xff,0xfa,0xff,0xf5,0xff, +0x2,0x0,0x8,0x0,0xf6,0xff,0xee,0xff,0xec,0xff,0xe4,0xff, +0xe2,0xff,0xe1,0xff,0xe6,0xff,0xf6,0xff,0xf8,0xff,0xf1,0xff, +0xee,0xff,0xe9,0xff,0xed,0xff,0xfa,0xff,0xfd,0xff,0xfb,0xff, +0xfb,0xff,0xf3,0xff,0xea,0xff,0xe8,0xff,0xe3,0xff,0xe5,0xff, +0xed,0xff,0xea,0xff,0xe9,0xff,0xf2,0xff,0xf3,0xff,0xf9,0xff, +0x2,0x0,0xfa,0xff,0xf9,0xff,0x1,0x0,0xf9,0xff,0xf3,0xff, +0xf4,0xff,0xec,0xff,0xea,0xff,0xee,0xff,0xeb,0xff,0xf1,0xff, +0x3,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0xfe,0xff,0xf2,0xff,0xe7,0xff,0xeb,0xff,0xf5,0xff, +0xec,0xff,0xe0,0xff,0xed,0xff,0xf6,0xff,0xeb,0xff,0xef,0xff, +0xfc,0xff,0x3,0x0,0x3,0x0,0xf5,0xff,0xf1,0xff,0xf7,0xff, +0xe8,0xff,0xe3,0xff,0xf5,0xff,0xf8,0xff,0xfa,0xff,0x4,0x0, +0xff,0xff,0xf5,0xff,0xf9,0xff,0x4,0x0,0xb,0x0,0x9,0x0, +0x5,0x0,0xff,0xff,0xfa,0xff,0xf7,0xff,0xec,0xff,0xe6,0xff, +0xf0,0xff,0xea,0xff,0xe1,0xff,0xec,0xff,0xf2,0xff,0xee,0xff, +0xf1,0xff,0xf7,0xff,0xf3,0xff,0xef,0xff,0xee,0xff,0xe9,0xff, +0xe1,0xff,0xe3,0xff,0xe5,0xff,0xe2,0xff,0xe3,0xff,0xe4,0xff, +0xe1,0xff,0xe0,0xff,0xdc,0xff,0xdc,0xff,0xe3,0xff,0xe7,0xff, +0xea,0xff,0xe6,0xff,0xe1,0xff,0xe1,0xff,0xde,0xff,0xdb,0xff, +0xe2,0xff,0xe6,0xff,0xe9,0xff,0xec,0xff,0xe7,0xff,0xe3,0xff, +0xe1,0xff,0xde,0xff,0xea,0xff,0xef,0xff,0xe0,0xff,0xdc,0xff, +0xe0,0xff,0xdb,0xff,0xd9,0xff,0xd9,0xff,0xd5,0xff,0xd7,0xff, +0xda,0xff,0xdb,0xff,0xe3,0xff,0xe7,0xff,0xe1,0xff,0xe1,0xff, +0xe4,0xff,0xdd,0xff,0xdc,0xff,0xdf,0xff,0xd9,0xff,0xdb,0xff, +0xdd,0xff,0xd2,0xff,0xdc,0xff,0xec,0xff,0xe4,0xff,0xe2,0xff, +0xf0,0xff,0xf3,0xff,0xed,0xff,0xe9,0xff,0xe9,0xff,0xe8,0xff, +0xe4,0xff,0xe4,0xff,0xe9,0xff,0xeb,0xff,0xf1,0xff,0xf6,0xff, +0xef,0xff,0xe9,0xff,0xe9,0xff,0xec,0xff,0xf3,0xff,0xf7,0xff, +0xf3,0xff,0xf0,0xff,0xf3,0xff,0xf0,0xff,0xe5,0xff,0xdd,0xff, +0xe3,0xff,0xf2,0xff,0xfd,0xff,0xfb,0xff,0xf5,0xff,0xf4,0xff, +0xf7,0xff,0xef,0xff,0xea,0xff,0xf5,0xff,0xf8,0xff,0xec,0xff, +0xeb,0xff,0xf2,0xff,0xf8,0xff,0xfd,0xff,0xfc,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfb,0xff,0xfa,0xff,0xf5,0xff, +0xf4,0xff,0xf3,0xff,0xf1,0xff,0xf4,0xff,0xf6,0xff,0xf3,0xff, +0xea,0xff,0xe4,0xff,0xeb,0xff,0xf6,0xff,0xf1,0xff,0xeb,0xff, +0xed,0xff,0xec,0xff,0xf2,0xff,0xf7,0xff,0xf2,0xff,0xf7,0xff, +0xfb,0xff,0xef,0xff,0xe4,0xff,0xdf,0xff,0xe6,0xff,0xf2,0xff, +0xed,0xff,0xe7,0xff,0xf1,0xff,0xfb,0xff,0xfd,0xff,0xf9,0xff, +0xf6,0xff,0xfa,0xff,0xf9,0xff,0xf0,0xff,0xed,0xff,0xf2,0xff, +0xf9,0xff,0xf9,0xff,0xf6,0xff,0xee,0xff,0xe1,0xff,0xea,0xff, +0xf8,0xff,0xf1,0xff,0xf5,0xff,0x2,0x0,0xf8,0xff,0xeb,0xff, +0xe6,0xff,0xe5,0xff,0xee,0xff,0xf0,0xff,0xeb,0xff,0xec,0xff, +0xec,0xff,0xea,0xff,0xf1,0xff,0xfe,0xff,0x0,0x0,0xf9,0xff, +0xf8,0xff,0xf4,0xff,0xe8,0xff,0xe9,0xff,0xf0,0xff,0xef,0xff, +0xed,0xff,0xf1,0xff,0xf5,0xff,0xf2,0xff,0xf2,0xff,0xf6,0xff, +0xf1,0xff,0xf3,0xff,0xfc,0xff,0xf5,0xff,0xf3,0xff,0xf5,0xff, +0xe4,0xff,0xd9,0xff,0xde,0xff,0xe7,0xff,0xf2,0xff,0xf2,0xff, +0xed,0xff,0xef,0xff,0xed,0xff,0xf2,0xff,0xfe,0xff,0xfd,0xff, +0xf1,0xff,0xe7,0xff,0xe9,0xff,0xec,0xff,0xea,0xff,0xf7,0xff, +0xfc,0xff,0xf0,0xff,0xf7,0xff,0xff,0xff,0xf8,0xff,0xfd,0xff, +0x1,0x0,0xf7,0xff,0xf5,0xff,0xf6,0xff,0xf3,0xff,0xf1,0xff, +0xf5,0xff,0xfe,0xff,0xff,0xff,0xf7,0xff,0xf7,0xff,0xff,0xff, +0xfa,0xff,0xec,0xff,0xef,0xff,0xfd,0xff,0xfc,0xff,0xf6,0xff, +0xf7,0xff,0xf6,0xff,0xf6,0xff,0xf2,0xff,0xec,0xff,0xed,0xff, +0xef,0xff,0xf2,0xff,0xf7,0xff,0xf0,0xff,0xeb,0xff,0xf2,0xff, +0xf6,0xff,0xf9,0xff,0xf8,0xff,0xf0,0xff,0xef,0xff,0xf4,0xff, +0xf3,0xff,0xf2,0xff,0xf5,0xff,0xf3,0xff,0xee,0xff,0xf0,0xff, +0xf5,0xff,0xf2,0xff,0xed,0xff,0xef,0xff,0xf3,0xff,0xee,0xff, +0xec,0xff,0xf0,0xff,0xec,0xff,0xeb,0xff,0xf1,0xff,0xef,0xff, +0xed,0xff,0xe9,0xff,0xe6,0xff,0xf0,0xff,0xf8,0xff,0xf3,0xff, +0xed,0xff,0xee,0xff,0xf6,0xff,0xf3,0xff,0xea,0xff,0xf3,0xff, +0xf5,0xff,0xec,0xff,0xf2,0xff,0xf2,0xff,0xe9,0xff,0xed,0xff, +0xe9,0xff,0xe9,0xff,0xf3,0xff,0xe9,0xff,0xe3,0xff,0xed,0xff, +0xe6,0xff,0xd8,0xff,0xda,0xff,0xe0,0xff,0xe4,0xff,0xe6,0xff, +0xe5,0xff,0xe0,0xff,0xdc,0xff,0xe0,0xff,0xe9,0xff,0xed,0xff, +0xe6,0xff,0xdd,0xff,0xd9,0xff,0xd9,0xff,0xdc,0xff,0xe1,0xff, +0xe0,0xff,0xea,0xff,0xf3,0xff,0xe6,0xff,0xe3,0xff,0xed,0xff, +0xec,0xff,0xee,0xff,0xeb,0xff,0xe1,0xff,0xe3,0xff,0xe3,0xff, +0xe1,0xff,0xeb,0xff,0xf0,0xff,0xea,0xff,0xe6,0xff,0xe7,0xff, +0xe8,0xff,0xe4,0xff,0xe4,0xff,0xeb,0xff,0xe8,0xff,0xdf,0xff, +0xe1,0xff,0xe3,0xff,0xe2,0xff,0xe8,0xff,0xeb,0xff,0xe5,0xff, +0xe7,0xff,0xea,0xff,0xe1,0xff,0xe1,0xff,0xeb,0xff,0xe7,0xff, +0xe1,0xff,0xe2,0xff,0xe4,0xff,0xe8,0xff,0xec,0xff,0xf0,0xff, +0xf4,0xff,0xed,0xff,0xe5,0xff,0xea,0xff,0xf0,0xff,0xee,0xff, +0xeb,0xff,0xe8,0xff,0xe3,0xff,0xe0,0xff,0xe4,0xff,0xe8,0xff, +0xe5,0xff,0xeb,0xff,0xf7,0xff,0xf5,0xff,0xf3,0xff,0xfc,0xff, +0xfc,0xff,0xf6,0xff,0xf5,0xff,0xea,0xff,0xe5,0xff,0xf3,0xff, +0xf4,0xff,0xea,0xff,0xf0,0xff,0xf8,0xff,0xf6,0xff,0xf8,0xff, +0xf4,0xff,0xef,0xff,0xfa,0xff,0x3,0x0,0xfc,0xff,0xf7,0xff, +0xf4,0xff,0xed,0xff,0xf0,0xff,0xf8,0xff,0xf9,0xff,0xf5,0xff, +0xf4,0xff,0xf5,0xff,0xf3,0xff,0xf5,0xff,0x4,0x0,0x8,0x0, +0xfa,0xff,0xf7,0xff,0xf4,0xff,0xe9,0xff,0xee,0xff,0xf6,0xff, +0xf3,0xff,0xf7,0xff,0xf5,0xff,0xef,0xff,0xf2,0xff,0xf3,0xff, +0xf3,0xff,0xf3,0xff,0xef,0xff,0xef,0xff,0xf1,0xff,0xeb,0xff, +0xe9,0xff,0xee,0xff,0xec,0xff,0xe9,0xff,0xec,0xff,0xf4,0xff, +0xf7,0xff,0xfa,0xff,0xfc,0xff,0xf5,0xff,0xf2,0xff,0xfb,0xff, +0x0,0x0,0xfd,0xff,0xf6,0xff,0xf0,0xff,0xf5,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf4,0xff,0xf3,0xff,0xf7,0xff,0xf2,0xff, +0xf1,0xff,0xf9,0xff,0xfb,0xff,0xf3,0xff,0xed,0xff,0xf4,0xff, +0xf8,0xff,0xf0,0xff,0xf0,0xff,0xf1,0xff,0xec,0xff,0xec,0xff, +0xf2,0xff,0xf3,0xff,0xed,0xff,0xed,0xff,0xf5,0xff,0xf5,0xff, +0xf1,0xff,0xf8,0xff,0xfa,0xff,0xf3,0xff,0xf6,0xff,0xf4,0xff, +0xef,0xff,0xf4,0xff,0xf5,0xff,0xee,0xff,0xeb,0xff,0xed,0xff, +0xf4,0xff,0xf8,0xff,0xf2,0xff,0xf1,0xff,0xf7,0xff,0xf2,0xff, +0xec,0xff,0xf0,0xff,0xef,0xff,0xee,0xff,0xed,0xff,0xeb,0xff, +0xef,0xff,0xee,0xff,0xec,0xff,0xf5,0xff,0xf5,0xff,0xf1,0xff, +0xf7,0xff,0xf5,0xff,0xf1,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff, +0xf3,0xff,0xf4,0xff,0xfc,0xff,0xfe,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xfe,0xff,0x2,0x0,0xfb,0xff,0xf4,0xff,0xf8,0xff, +0x1,0x0,0xfe,0xff,0xec,0xff,0xe5,0xff,0xf2,0xff,0xff,0xff, +0x0,0x0,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xf9,0xff,0xed,0xff,0xf0,0xff,0xf5,0xff,0xf1,0xff,0xf3,0xff, +0xf9,0xff,0x0,0x0,0x3,0x0,0xfb,0xff,0xf9,0xff,0xfd,0xff, +0xfc,0xff,0xf7,0xff,0xf1,0xff,0xf0,0xff,0xf1,0xff,0xef,0xff, +0xf0,0xff,0xec,0xff,0xe5,0xff,0xec,0xff,0xf2,0xff,0xeb,0xff, +0xea,0xff,0xf3,0xff,0xf3,0xff,0xe9,0xff,0xe9,0xff,0xee,0xff, +0xec,0xff,0xed,0xff,0xef,0xff,0xf0,0xff,0xf2,0xff,0xe7,0xff, +0xdf,0xff,0xe8,0xff,0xe5,0xff,0xde,0xff,0xe7,0xff,0xeb,0xff, +0xea,0xff,0xec,0xff,0xea,0xff,0xe6,0xff,0xe6,0xff,0xf0,0xff, +0xf6,0xff,0xec,0xff,0xe5,0xff,0xe3,0xff,0xe1,0xff,0xe8,0xff, +0xea,0xff,0xe4,0xff,0xe4,0xff,0xeb,0xff,0xf1,0xff,0xef,0xff, +0xec,0xff,0xed,0xff,0xe7,0xff,0xe5,0xff,0xec,0xff,0xea,0xff, +0xea,0xff,0xec,0xff,0xe5,0xff,0xe4,0xff,0xe7,0xff,0xe9,0xff, +0xeb,0xff,0xe3,0xff,0xe3,0xff,0xf0,0xff,0xea,0xff,0xe4,0xff, +0xef,0xff,0xf3,0xff,0xf0,0xff,0xef,0xff,0xe9,0xff,0xe7,0xff, +0xec,0xff,0xed,0xff,0xef,0xff,0xf2,0xff,0xf1,0xff,0xed,0xff, +0xf0,0xff,0xf5,0xff,0xf2,0xff,0xf2,0xff,0xf5,0xff,0xf0,0xff, +0xec,0xff,0xf2,0xff,0xf6,0xff,0xf2,0xff,0xf0,0xff,0xf2,0xff, +0xf2,0xff,0xf6,0xff,0xfc,0xff,0xf7,0xff,0xf4,0xff,0xf7,0xff, +0xf4,0xff,0xf0,0xff,0xef,0xff,0xf0,0xff,0xee,0xff,0xec,0xff, +0xf0,0xff,0xf5,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff,0xfe,0xff, +0x2,0x0,0xf9,0xff,0xfb,0xff,0x8,0x0,0x5,0x0,0xfb,0xff, +0xf5,0xff,0xf1,0xff,0xf4,0xff,0xf7,0xff,0xf4,0xff,0xf7,0xff, +0xfa,0xff,0xf4,0xff,0xf4,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xff,0xff,0x1,0x0,0xfa,0xff,0xf8,0xff,0xfa,0xff,0xf3,0xff, +0xf1,0xff,0xf6,0xff,0xf8,0xff,0xf7,0xff,0xfc,0xff,0xff,0xff, +0xfa,0xff,0xfb,0xff,0x3,0x0,0x0,0x0,0xfc,0xff,0xff,0xff, +0xfd,0xff,0xfb,0xff,0xf9,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff, +0xf5,0xff,0xf6,0xff,0xfb,0xff,0xf8,0xff,0xf2,0xff,0xf8,0xff, +0xfe,0xff,0xf8,0xff,0xf3,0xff,0xf7,0xff,0xf6,0xff,0xf3,0xff, +0xf5,0xff,0xf5,0xff,0xf8,0xff,0xfa,0xff,0xf5,0xff,0xf2,0xff, +0xf0,0xff,0xee,0xff,0xf4,0xff,0xfd,0xff,0xf9,0xff,0xef,0xff, +0xf1,0xff,0xf9,0xff,0xf9,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xf4,0xff,0xf0,0xff,0xf4,0xff,0xf6,0xff,0xfa,0xff, +0xfa,0xff,0xf3,0xff,0xf0,0xff,0xed,0xff,0xe8,0xff,0xeb,0xff, +0xf1,0xff,0xf4,0xff,0xf5,0xff,0xf8,0xff,0xfc,0xff,0xf9,0xff, +0xf6,0xff,0xfa,0xff,0xfb,0xff,0xf3,0xff,0xf0,0xff,0xf2,0xff, +0xeb,0xff,0xe4,0xff,0xeb,0xff,0xf3,0xff,0xf5,0xff,0xf7,0xff, +0xf9,0xff,0xf7,0xff,0xf6,0xff,0xfa,0xff,0xfe,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xf3,0xff,0xf1,0xff,0xf1,0xff,0xea,0xff, +0xf0,0xff,0xfc,0xff,0xf8,0xff,0xf3,0xff,0xf8,0xff,0xfd,0xff, +0xfd,0xff,0xf7,0xff,0xf2,0xff,0xf1,0xff,0xf0,0xff,0xef,0xff, +0xeb,0xff,0xec,0xff,0xf3,0xff,0xea,0xff,0xe1,0xff,0xf0,0xff, +0xf4,0xff,0xee,0xff,0xf6,0xff,0xf9,0xff,0xf4,0xff,0xf9,0xff, +0xfb,0xff,0xf6,0xff,0xf8,0xff,0xf7,0xff,0xee,0xff,0xed,0xff, +0xf4,0xff,0xf4,0xff,0xed,0xff,0xe7,0xff,0xe8,0xff,0xed,0xff, +0xf1,0xff,0xf4,0xff,0xf6,0xff,0xf8,0xff,0xf9,0xff,0xf5,0xff, +0xf2,0xff,0xf4,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf0,0xff, +0xf1,0xff,0xf0,0xff,0xf0,0xff,0xef,0xff,0xeb,0xff,0xee,0xff, +0xf4,0xff,0xf7,0xff,0x1,0x0,0x6,0x0,0xfc,0xff,0xf4,0xff, +0xf3,0xff,0xf5,0xff,0xf8,0xff,0xf4,0xff,0xf2,0xff,0xf6,0xff, +0xf6,0xff,0xf7,0xff,0xf5,0xff,0xf6,0xff,0xfa,0xff,0xf4,0xff, +0xf2,0xff,0xfe,0xff,0x1,0x0,0xf7,0xff,0xf3,0xff,0xf3,0xff, +0xf1,0xff,0xed,0xff,0xf0,0xff,0xf5,0xff,0xf3,0xff,0xf5,0xff, +0xf8,0xff,0xf1,0xff,0xec,0xff,0xee,0xff,0xf4,0xff,0xfa,0xff, +0xf6,0xff,0xf2,0xff,0xf6,0xff,0xf8,0xff,0xf5,0xff,0xf5,0xff, +0xfa,0xff,0xfb,0xff,0xf5,0xff,0xf7,0xff,0xfe,0xff,0xf9,0xff, +0xf2,0xff,0xf6,0xff,0xf4,0xff,0xee,0xff,0xf3,0xff,0xf7,0xff, +0xf5,0xff,0xff,0xff,0x8,0x0,0x6,0x0,0x6,0x0,0x7,0x0, +0x1,0x0,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xf7,0xff,0xf2,0xff, +0xf6,0xff,0xf4,0xff,0xf1,0xff,0xf6,0xff,0xf3,0xff,0xf4,0xff, +0x1,0x0,0x0,0x0,0xfd,0xff,0x5,0x0,0x3,0x0,0xfd,0xff, +0xf8,0xff,0xf4,0xff,0xf7,0xff,0xf1,0xff,0xe7,0xff,0xeb,0xff, +0xee,0xff,0xf0,0xff,0xef,0xff,0xe9,0xff,0xf0,0xff,0xfa,0xff, +0xfd,0xff,0xfd,0xff,0xf1,0xff,0xe9,0xff,0xf3,0xff,0xf2,0xff, +0xe9,0xff,0xe7,0xff,0xe7,0xff,0xeb,0xff,0xef,0xff,0xe9,0xff, +0xe3,0xff,0xe7,0xff,0xeb,0xff,0xe8,0xff,0xe5,0xff,0xe8,0xff, +0xe9,0xff,0xe8,0xff,0xe2,0xff,0xe0,0xff,0xe7,0xff,0xe7,0xff, +0xdd,0xff,0xe3,0xff,0xee,0xff,0xea,0xff,0xe5,0xff,0xe5,0xff, +0xe4,0xff,0xe8,0xff,0xeb,0xff,0xe3,0xff,0xdd,0xff,0xe2,0xff, +0xe0,0xff,0xdf,0xff,0xe9,0xff,0xe9,0xff,0xe5,0xff,0xe6,0xff, +0xe2,0xff,0xe2,0xff,0xe1,0xff,0xda,0xff,0xd9,0xff,0xdb,0xff, +0xda,0xff,0xdc,0xff,0xdc,0xff,0xdc,0xff,0xe0,0xff,0xe0,0xff, +0xe0,0xff,0xdf,0xff,0xe2,0xff,0xe6,0xff,0xe3,0xff,0xe3,0xff, +0xe5,0xff,0xde,0xff,0xdb,0xff,0xe0,0xff,0xe3,0xff,0xe1,0xff, +0xdd,0xff,0xe2,0xff,0xe8,0xff,0xe3,0xff,0xe8,0xff,0xee,0xff, +0xea,0xff,0xee,0xff,0xee,0xff,0xe8,0xff,0xeb,0xff,0xee,0xff, +0xec,0xff,0xed,0xff,0xeb,0xff,0xe7,0xff,0xe0,0xff,0xe3,0xff, +0xee,0xff,0xec,0xff,0xe5,0xff,0xe7,0xff,0xe9,0xff,0xec,0xff, +0xee,0xff,0xec,0xff,0xe9,0xff,0xe8,0xff,0xec,0xff,0xec,0xff, +0xe9,0xff,0xeb,0xff,0xea,0xff,0xe7,0xff,0xe7,0xff,0xe4,0xff, +0xe4,0xff,0xe8,0xff,0xed,0xff,0xf6,0xff,0xf6,0xff,0xe9,0xff, +0xe6,0xff,0xec,0xff,0xf0,0xff,0xf0,0xff,0xf2,0xff,0xf6,0xff, +0xf2,0xff,0xed,0xff,0xef,0xff,0xf2,0xff,0xf6,0xff,0xf7,0xff, +0xf5,0xff,0xfd,0xff,0xfd,0xff,0xf6,0xff,0xfa,0xff,0xfa,0xff, +0xf6,0xff,0xf8,0xff,0xf6,0xff,0xf2,0xff,0xf2,0xff,0xf6,0xff, +0xff,0xff,0xfe,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0x1,0x0, +0x6,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0xf8,0xff,0xf4,0xff, +0xf7,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0x4,0x0,0x4,0x0, +0x3,0x0,0x6,0x0,0x0,0x0,0xfd,0xff,0x2,0x0,0x3,0x0, +0x1,0x0,0xfe,0xff,0xfc,0xff,0xfe,0xff,0x1,0x0,0x6,0x0, +0x9,0x0,0x3,0x0,0x2,0x0,0x6,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x3,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfb,0xff,0xff,0xff,0x0,0x0,0xfe,0xff,0x7,0x0,0x8,0x0, +0xfc,0xff,0xf9,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff, +0xf8,0xff,0xf8,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff, +0x0,0x0,0xff,0xff,0xfc,0xff,0xf8,0xff,0xf8,0xff,0xfc,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfb,0xff,0xf8,0xff,0xfd,0xff, +0x1,0x0,0xfe,0xff,0x2,0x0,0xb,0x0,0x8,0x0,0xfe,0xff, +0xfe,0xff,0x0,0x0,0xfc,0xff,0xfa,0xff,0xff,0xff,0xfd,0xff, +0xf6,0xff,0xf5,0xff,0xfc,0xff,0xff,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xf7,0xff,0xf6,0xff,0xfd,0xff,0xfa,0xff,0xf3,0xff, +0xf5,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xfa,0xff,0xfd,0xff, +0xf6,0xff,0xf6,0xff,0xfd,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff, +0xf4,0xff,0xf4,0xff,0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfb,0xff, +0xfb,0xff,0xf9,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0xfb,0xff, +0xfb,0xff,0xf9,0xff,0xf9,0xff,0xff,0xff,0xfc,0xff,0xf6,0xff, +0xf6,0xff,0xf2,0xff,0xf2,0xff,0xfa,0xff,0xfc,0xff,0xf4,0xff, +0xf6,0xff,0xff,0xff,0xfe,0xff,0xfa,0xff,0xfe,0xff,0xfd,0xff, +0xf8,0xff,0xf6,0xff,0xf1,0xff,0xf2,0xff,0xf7,0xff,0xf6,0xff, +0xf4,0xff,0xf2,0xff,0xef,0xff,0xf2,0xff,0xf6,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf6,0xff,0xed,0xff,0xea,0xff,0xef,0xff, +0xf0,0xff,0xf5,0xff,0xf9,0xff,0xf7,0xff,0xf8,0xff,0xf5,0xff, +0xf1,0xff,0xf4,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf2,0xff, +0xf1,0xff,0xf0,0xff,0xef,0xff,0xee,0xff,0xed,0xff,0xf3,0xff, +0xf6,0xff,0xf4,0xff,0xf4,0xff,0xf1,0xff,0xf0,0xff,0xf6,0xff, +0xf1,0xff,0xef,0xff,0xf3,0xff,0xf2,0xff,0xf4,0xff,0xf4,0xff, +0xf1,0xff,0xf8,0xff,0xf9,0xff,0xf5,0xff,0xf9,0xff,0xf2,0xff, +0xec,0xff,0xf2,0xff,0xf4,0xff,0xf3,0xff,0xf2,0xff,0xef,0xff, +0xf2,0xff,0xf3,0xff,0xf2,0xff,0xf8,0xff,0xfa,0xff,0xf5,0xff, +0xf1,0xff,0xed,0xff,0xee,0xff,0xf3,0xff,0xf2,0xff,0xee,0xff, +0xf1,0xff,0xf8,0xff,0xfb,0xff,0xf2,0xff,0xea,0xff,0xee,0xff, +0xef,0xff,0xea,0xff,0xef,0xff,0xf3,0xff,0xee,0xff,0xef,0xff, +0xf0,0xff,0xec,0xff,0xf0,0xff,0xf4,0xff,0xf2,0xff,0xf2,0xff, +0xf0,0xff,0xf1,0xff,0xf2,0xff,0xed,0xff,0xeb,0xff,0xec,0xff, +0xeb,0xff,0xe8,0xff,0xec,0xff,0xf3,0xff,0xef,0xff,0xe9,0xff, +0xf3,0xff,0xf5,0xff,0xef,0xff,0xef,0xff,0xf2,0xff,0xf5,0xff, +0xf2,0xff,0xe9,0xff,0xed,0xff,0xed,0xff,0xe9,0xff,0xf4,0xff, +0xf4,0xff,0xe7,0xff,0xf0,0xff,0xf6,0xff,0xf1,0xff,0xf3,0xff, +0xf2,0xff,0xf3,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xf8,0xff,0xf8,0xff,0xfa,0xff,0xfd,0xff,0x0,0x0,0xfc,0xff, +0xf9,0xff,0xfc,0xff,0xfc,0xff,0xf8,0xff,0xfb,0xff,0x0,0x0, +0xff,0xff,0xfb,0xff,0xf9,0xff,0xfd,0xff,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xfd,0xff,0xf9,0xff,0xf6,0xff,0xf9,0xff,0xfa,0xff, +0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff,0xf5,0xff, +0xf5,0xff,0xf3,0xff,0xf2,0xff,0xf1,0xff,0xef,0xff,0xf0,0xff, +0xf0,0xff,0xf0,0xff,0xee,0xff,0xe9,0xff,0xe8,0xff,0xe7,0xff, +0xe5,0xff,0xe6,0xff,0xe7,0xff,0xe8,0xff,0xeb,0xff,0xec,0xff, +0xec,0xff,0xe8,0xff,0xe8,0xff,0xf0,0xff,0xed,0xff,0xe4,0xff, +0xe6,0xff,0xe4,0xff,0xe1,0xff,0xe2,0xff,0xdf,0xff,0xde,0xff, +0xe2,0xff,0xe6,0xff,0xe9,0xff,0xe9,0xff,0xea,0xff,0xf0,0xff, +0xf3,0xff,0xf1,0xff,0xea,0xff,0xe5,0xff,0xea,0xff,0xe8,0xff, +0xe0,0xff,0xe3,0xff,0xe7,0xff,0xe5,0xff,0xe7,0xff,0xec,0xff, +0xec,0xff,0xec,0xff,0xef,0xff,0xef,0xff,0xee,0xff,0xf0,0xff, +0xf3,0xff,0xf0,0xff,0xed,0xff,0xee,0xff,0xeb,0xff,0xe8,0xff, +0xee,0xff,0xf3,0xff,0xf0,0xff,0xf0,0xff,0xf2,0xff,0xf6,0xff, +0xf9,0xff,0xf1,0xff,0xed,0xff,0xf2,0xff,0xf0,0xff,0xf2,0xff, +0xf3,0xff,0xed,0xff,0xef,0xff,0xf2,0xff,0xee,0xff,0xf1,0xff, +0xf1,0xff,0xf1,0xff,0xf4,0xff,0xf1,0xff,0xf2,0xff,0xfa,0xff, +0xfa,0xff,0xf3,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf2,0xff, +0xf3,0xff,0xf1,0xff,0xef,0xff,0xf4,0xff,0xf6,0xff,0xf6,0xff, +0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf4,0xff,0xf2,0xff,0xf5,0xff, +0xf4,0xff,0xf8,0xff,0xfa,0xff,0xf3,0xff,0xf4,0xff,0xf8,0xff, +0xf8,0xff,0xfd,0xff,0xf9,0xff,0xf2,0xff,0xf6,0xff,0xf3,0xff, +0xf0,0xff,0xf5,0xff,0xf5,0xff,0xf8,0xff,0xf6,0xff,0xf0,0xff, +0xf6,0xff,0xf7,0xff,0xf0,0xff,0xf7,0xff,0xf8,0xff,0xef,0xff, +0xf0,0xff,0xef,0xff,0xef,0xff,0xf3,0xff,0xf0,0xff,0xef,0xff, +0xf4,0xff,0xf2,0xff,0xed,0xff,0xef,0xff,0xf3,0xff,0xf0,0xff, +0xed,0xff,0xeb,0xff,0xed,0xff,0xf2,0xff,0xee,0xff,0xea,0xff, +0xee,0xff,0xec,0xff,0xea,0xff,0xec,0xff,0xeb,0xff,0xef,0xff, +0xf0,0xff,0xeb,0xff,0xed,0xff,0xec,0xff,0xe6,0xff,0xe8,0xff, +0xeb,0xff,0xed,0xff,0xec,0xff,0xe5,0xff,0xe7,0xff,0xec,0xff, +0xeb,0xff,0xe8,0xff,0xe8,0xff,0xe9,0xff,0xe9,0xff,0xe7,0xff, +0xe9,0xff,0xee,0xff,0xee,0xff,0xe9,0xff,0xe5,0xff,0xe6,0xff, +0xec,0xff,0xec,0xff,0xe9,0xff,0xe8,0xff,0xed,0xff,0xf0,0xff, +0xec,0xff,0xee,0xff,0xf2,0xff,0xee,0xff,0xef,0xff,0xf2,0xff, +0xed,0xff,0xed,0xff,0xf1,0xff,0xf0,0xff,0xf1,0xff,0xf3,0xff, +0xf0,0xff,0xef,0xff,0xf4,0xff,0xf8,0xff,0xf6,0xff,0xf0,0xff, +0xee,0xff,0xf0,0xff,0xf4,0xff,0xf5,0xff,0xf1,0xff,0xee,0xff, +0xed,0xff,0xf0,0xff,0xf2,0xff,0xef,0xff,0xed,0xff,0xf1,0xff, +0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf2,0xff,0xf6,0xff,0xfa,0xff, +0xf5,0xff,0xf2,0xff,0xf7,0xff,0xf9,0xff,0xf7,0xff,0xf4,0xff, +0xf2,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf6,0xff,0xf7,0xff, +0xf9,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0x2,0x0,0xfd,0xff, +0xf7,0xff,0xf8,0xff,0xfb,0xff,0xf9,0xff,0xf4,0xff,0xf6,0xff, +0xfe,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff,0xfc,0xff, +0xfe,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xf8,0xff,0xf4,0xff, +0xf5,0xff,0xf8,0xff,0xf7,0xff,0xf5,0xff,0xf6,0xff,0xf6,0xff, +0xf7,0xff,0xf4,0xff,0xf1,0xff,0xf3,0xff,0xef,0xff,0xed,0xff, +0xf4,0xff,0xf1,0xff,0xef,0xff,0xf3,0xff,0xef,0xff,0xee,0xff, +0xf1,0xff,0xf0,0xff,0xf1,0xff,0xf4,0xff,0xf4,0xff,0xf0,0xff, +0xeb,0xff,0xee,0xff,0xf3,0xff,0xee,0xff,0xeb,0xff,0xef,0xff, +0xee,0xff,0xeb,0xff,0xea,0xff,0xeb,0xff,0xee,0xff,0xf1,0xff, +0xf1,0xff,0xeb,0xff,0xe6,0xff,0xea,0xff,0xec,0xff,0xe9,0xff, +0xea,0xff,0xeb,0xff,0xed,0xff,0xef,0xff,0xec,0xff,0xea,0xff, +0xf2,0xff,0xf7,0xff,0xf4,0xff,0xf3,0xff,0xf2,0xff,0xef,0xff, +0xee,0xff,0xed,0xff,0xeb,0xff,0xeb,0xff,0xe9,0xff,0xe9,0xff, +0xeb,0xff,0xe8,0xff,0xeb,0xff,0xf1,0xff,0xf0,0xff,0xf0,0xff, +0xf2,0xff,0xf1,0xff,0xf2,0xff,0xed,0xff,0xec,0xff,0xf4,0xff, +0xf3,0xff,0xef,0xff,0xf1,0xff,0xf0,0xff,0xf4,0xff,0xf6,0xff, +0xf4,0xff,0xfb,0xff,0xf9,0xff,0xf2,0xff,0xf5,0xff,0xf3,0xff, +0xf2,0xff,0xf6,0xff,0xf4,0xff,0xf4,0xff,0xfa,0xff,0xfb,0xff, +0xfe,0xff,0x0,0x0,0xff,0xff,0x1,0x0,0xff,0xff,0xfb,0xff, +0xf9,0xff,0xf5,0xff,0xf8,0xff,0xfb,0xff,0xf7,0xff,0xf5,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0x0,0x0,0x0,0x0,0xfc,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff, +0xfa,0xff,0xf9,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff,0xfa,0xff, +0xff,0xff,0x4,0x0,0x1,0x0,0xfa,0xff,0xf8,0xff,0xf9,0xff, +0xf9,0xff,0xf9,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xfc,0xff,0xfc,0xff,0xf9,0xff,0xfb,0xff,0x2,0x0, +0x0,0x0,0xfd,0xff,0xff,0xff,0xfa,0xff,0xf3,0xff,0xf8,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff, +0xf7,0xff,0xf9,0xff,0xf9,0xff,0xfa,0xff,0x1,0x0,0xfd,0xff, +0xfa,0xff,0xfd,0xff,0xf7,0xff,0xf8,0xff,0xfd,0xff,0xf8,0xff, +0xf9,0xff,0xfc,0xff,0xf6,0xff,0xf7,0xff,0xfc,0xff,0xf8,0xff, +0xf8,0xff,0xfa,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf7,0xff, +0xf9,0xff,0xf6,0xff,0xf3,0xff,0xf5,0xff,0xf4,0xff,0xf3,0xff, +0xf5,0xff,0xf6,0xff,0xf3,0xff,0xf5,0xff,0xf9,0xff,0xf8,0xff, +0xf5,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf2,0xff,0xf2,0xff, +0xf4,0xff,0xf5,0xff,0xf3,0xff,0xef,0xff,0xef,0xff,0xf3,0xff, +0xf5,0xff,0xf3,0xff,0xf5,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xf3,0xff,0xf2,0xff,0xf5,0xff,0xf6,0xff,0xf8,0xff,0xf7,0xff, +0xf4,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xfa,0xff,0xf5,0xff, +0xf1,0xff,0xf9,0xff,0xf8,0xff,0xf0,0xff,0xf3,0xff,0xf6,0xff, +0xf6,0xff,0xf5,0xff,0xf2,0xff,0xf4,0xff,0xf8,0xff,0xf8,0xff, +0xf9,0xff,0xf8,0xff,0xf6,0xff,0xf7,0xff,0xf9,0xff,0xf7,0xff, +0xf8,0xff,0xf8,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff,0xf7,0xff, +0xf9,0xff,0xfa,0xff,0xf6,0xff,0xf6,0xff,0xf9,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf5,0xff,0xf7,0xff, +0xf6,0xff,0xee,0xff,0xf0,0xff,0xf7,0xff,0xf8,0xff,0xf8,0xff, +0xf7,0xff,0xf4,0xff,0xf4,0xff,0xf6,0xff,0xf9,0xff,0xf7,0xff, +0xf2,0xff,0xf3,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf3,0xff, +0xf1,0xff,0xf5,0xff,0xfa,0xff,0xf8,0xff,0xf4,0xff,0xf7,0xff, +0xfb,0xff,0xf7,0xff,0xf5,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff, +0xf6,0xff,0xf0,0xff,0xf4,0xff,0xf7,0xff,0xf5,0xff,0xf5,0xff, +0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf3,0xff, +0xf3,0xff,0xf4,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff,0xf1,0xff, +0xf4,0xff,0xf5,0xff,0xf2,0xff,0xf3,0xff,0xf8,0xff,0xf7,0xff, +0xf2,0xff,0xef,0xff,0xf1,0xff,0xf4,0xff,0xf1,0xff,0xf3,0xff, +0xf5,0xff,0xf4,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff, +0xf4,0xff,0xf5,0xff,0xf9,0xff,0xf7,0xff,0xf4,0xff,0xf2,0xff, +0xf0,0xff,0xf4,0xff,0xf6,0xff,0xf2,0xff,0xf4,0xff,0xf8,0xff, +0xf7,0xff,0xf8,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xf7,0xff,0xf6,0xff,0xfa,0xff,0xfa,0xff,0xf4,0xff, +0xf4,0xff,0xf8,0xff,0xf6,0xff,0xf6,0xff,0xf9,0xff,0xf9,0xff, +0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf9,0xff,0xf9,0xff,0xf5,0xff, +0xf9,0xff,0xfc,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf3,0xff, +0xf8,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xfb,0xff,0x0,0x0, +0xfc,0xff,0xf9,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xff,0xff, +0xfd,0xff,0xfd,0xff,0x0,0x0,0xfe,0xff,0xf9,0xff,0xf9,0xff, +0xfd,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xf9,0xff, +0xf8,0xff,0xfa,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf8,0xff,0xfe,0xff,0x0,0x0, +0xfe,0xff,0xff,0xff,0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0x1,0x0,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xf7,0xff,0xf7,0xff,0xfb,0xff,0xfb,0xff,0xf8,0xff,0xfc,0xff, +0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xf9,0xff,0xf9,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfa,0xff,0xf7,0xff, +0xf8,0xff,0xf9,0xff,0xfb,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xf8,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfa,0xff,0xf9,0xff,0xfb,0xff,0xfc,0xff,0x0,0x0,0x0,0x0, +0xfe,0xff,0x1,0x0,0xfe,0xff,0xfd,0xff,0x3,0x0,0x2,0x0, +0xfd,0xff,0xfa,0xff,0xf7,0xff,0xfa,0xff,0xfe,0xff,0xfc,0xff, +0xfa,0xff,0xfd,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xfd,0xff,0xfb,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfa,0xff, +0xf9,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xf8,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfd,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xf7,0xff,0xf7,0xff, +0xf8,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf3,0xff,0xf3,0xff, +0xf1,0xff,0xf3,0xff,0xf6,0xff,0xf5,0xff,0xf5,0xff,0xf9,0xff, +0xf8,0xff,0xf7,0xff,0xf8,0xff,0xf8,0xff,0xf6,0xff,0xf4,0xff, +0xf5,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xf8,0xff, +0xf8,0xff,0xf8,0xff,0xf9,0xff,0xf6,0xff,0xf7,0xff,0xfd,0xff, +0xfb,0xff,0xf8,0xff,0xfa,0xff,0xfa,0xff,0xf7,0xff,0xf5,0xff, +0xf7,0xff,0xf7,0xff,0xf5,0xff,0xf7,0xff,0xf7,0xff,0xf5,0xff, +0xf7,0xff,0xf7,0xff,0xf5,0xff,0xf7,0xff,0xf7,0xff,0xf6,0xff, +0xf7,0xff,0xf7,0xff,0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff, +0xf5,0xff,0xf5,0xff,0xf9,0xff,0xf9,0xff,0xf7,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff, +0xfa,0xff,0xf8,0xff,0xf9,0xff,0xfd,0xff,0xfc,0xff,0xf9,0xff, +0xfa,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff, +0xfb,0xff,0xfd,0xff,0x1,0x0,0xfe,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff, +0xfa,0xff,0xf9,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0x2,0x0,0x0,0x0,0xf9,0xff,0xfb,0xff,0x0,0x0, +0xfd,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xfb,0xff, +0xfa,0xff,0xf7,0xff,0xf6,0xff,0xf8,0xff,0xfe,0xff,0xfe,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xf8,0xff,0xf9,0xff,0xfb,0xff, +0xf9,0xff,0xfa,0xff,0xfa,0xff,0xf8,0xff,0xf7,0xff,0xfa,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfb,0xff,0xfa,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xfc,0xff,0xfb,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xfe,0xff,0x1,0x0,0x2,0x0,0x2,0x0,0x5,0x0,0x6,0x0, +0x4,0x0,0x1,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0xfe,0xff, +0x1,0x0,0x0,0x0,0xfa,0xff,0xfc,0xff,0x3,0x0,0x3,0x0, +0x3,0x0,0x1,0x0,0x0,0x0,0x4,0x0,0x3,0x0,0xfe,0xff, +0x0,0x0,0xff,0xff,0xfd,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x2,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0, +0xfc,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x1,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff, +0xfd,0xff,0x0,0x0,0xfe,0xff,0xff,0xff,0x0,0x0,0xfc,0xff, +0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xf9,0xff, +0xf9,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xf7,0xff,0xfd,0xff,0xff,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf5,0xff, +0xf6,0xff,0xf9,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0xfc,0xff, +0xfb,0xff,0xf7,0xff,0xf6,0xff,0xf9,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xfb,0xff,0xf8,0xff,0xf8,0xff,0xfa,0xff,0xf8,0xff, +0xf9,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff, +0xfb,0xff,0xf9,0xff,0xf8,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xf9,0xff, +0xf9,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xfa,0xff,0xfe,0xff,0x1,0x0,0xfa,0xff,0xfe,0xff, +0x4,0x0,0xfd,0xff,0xfc,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfe,0xff,0x0,0x0, +0xfc,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff, +0xfd,0xff,0xfc,0xff,0xf9,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xf9,0xff,0xfb,0xff, +0xfd,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf9,0xff,0xfe,0xff, +0xff,0xff,0xfa,0xff,0xf9,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfc,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0xfe,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff, +0xfb,0xff,0xf9,0xff,0xfd,0xff,0xfe,0xff,0xfa,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xff,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfa,0xff,0xf8,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xf9,0xff,0xf9,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff, +0xf8,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfb,0xff,0xf8,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff, +0xfb,0xff,0xfe,0xff,0xfc,0xff,0xf7,0xff,0xfc,0xff,0xfe,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff,0xfc,0xff,0xfb,0xff, +0xf8,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff,0xf8,0xff,0xf9,0xff, +0xfb,0xff,0xfa,0xff,0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xf9,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xf8,0xff,0xfa,0xff, +0xfc,0xff,0xf8,0xff,0xf7,0xff,0xf9,0xff,0xf7,0xff,0xf9,0xff, +0xfa,0xff,0xf9,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfd,0xff,0xfb,0xff,0xf8,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfa,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfb,0xff,0xfc,0xff,0x1,0x0,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfb,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0x0,0x0,0xfe,0xff, +0xfa,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff,0xf9,0xff,0xfc,0xff, +0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff, +0xfe,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfb,0xff,0xfc,0xff, +0xfe,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xff,0xff,0xfe,0xff, +0xfb,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0x0,0x0,0xfe,0xff,0xfb,0xff,0xfe,0xff,0xfd,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xf9,0xff,0xfb,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xf9,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0x0,0x0,0xfd,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff, +0xfa,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfd,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfe,0xff, +0xff,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xf9,0xff, +0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xf9,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff, +0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfa,0xff, +0xf9,0xff,0xfb,0xff,0xfa,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xf9,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfc,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff, +0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff, +0xfc,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + +}; \ No newline at end of file diff --git a/src/client/sound/data/zombiehurt2.pcm b/src/client/sound/data/zombiehurt2.pcm new file mode 100755 index 0000000..5808b6e --- /dev/null +++ b/src/client/sound/data/zombiehurt2.pcm @@ -0,0 +1,7354 @@ +unsigned char PCM_zombiehurt2[88216] = { +0x1,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x44,0xac,0x0,0x0, +0x44,0xac,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff, +0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfc,0xff,0xfc,0xff, +0xfb,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xf9,0xff, +0xfa,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xf7,0xff, +0xf6,0xff,0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff,0xf9,0xff, +0xfa,0xff,0xfc,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xf8,0xff,0xf8,0xff,0xfe,0xff,0xfc,0xff, +0xf8,0xff,0xf9,0xff,0xf9,0xff,0xfc,0xff,0xfb,0xff,0xf8,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0xfe,0xff,0xfa,0xff,0xfa,0xff, +0xf7,0xff,0xf7,0xff,0xf6,0xff,0xef,0xff,0xef,0xff,0xf0,0xff, +0xf0,0xff,0xf2,0xff,0xed,0xff,0xed,0xff,0xf3,0xff,0xec,0xff, +0xec,0xff,0xf7,0xff,0xf6,0xff,0xf4,0xff,0xf6,0xff,0xf7,0xff, +0xfa,0xff,0xfa,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff,0xf8,0xff, +0xf7,0xff,0xef,0xff,0xf1,0xff,0xf2,0xff,0xed,0xff,0xf0,0xff, +0xf0,0xff,0xef,0xff,0xf5,0xff,0xf9,0xff,0xfe,0xff,0x6,0x0, +0xb,0x0,0x10,0x0,0xc,0x0,0x8,0x0,0xc,0x0,0xc,0x0, +0x7,0x0,0x5,0x0,0xfe,0xff,0xf8,0xff,0xfb,0xff,0xfa,0xff, +0xef,0xff,0xec,0xff,0xf2,0xff,0xf2,0xff,0xf1,0xff,0xf0,0xff, +0xed,0xff,0xec,0xff,0xed,0xff,0xea,0xff,0xe7,0xff,0xe8,0xff, +0xec,0xff,0xeb,0xff,0xe5,0xff,0xe7,0xff,0xed,0xff,0xec,0xff, +0xe6,0xff,0xdd,0xff,0xd9,0xff,0xe7,0xff,0xea,0xff,0xd9,0xff, +0xe0,0xff,0xed,0xff,0xea,0xff,0xf2,0xff,0xf3,0xff,0xe1,0xff, +0xe7,0xff,0xf5,0xff,0xf2,0xff,0xec,0xff,0xe0,0xff,0xd9,0xff, +0xde,0xff,0xe3,0xff,0xe2,0xff,0xdb,0xff,0xd9,0xff,0xda,0xff, +0xd7,0xff,0xe8,0xff,0xf0,0xff,0xe0,0xff,0xf0,0xff,0xc,0x0, +0x7,0x0,0xf2,0xff,0xe5,0xff,0xef,0xff,0xea,0xff,0xcf,0xff, +0xcc,0xff,0xb7,0xff,0x99,0xff,0xa1,0xff,0x82,0xff,0x5e,0xff, +0x63,0xff,0x49,0xff,0x3d,0xff,0x48,0xff,0x27,0xff,0x17,0xff, +0x28,0xff,0x2f,0xff,0x38,0xff,0x3f,0xff,0x5e,0xff,0x73,0xff, +0x5f,0xff,0x6f,0xff,0x8d,0xff,0xa3,0xff,0xbc,0xff,0x9a,0xff, +0x92,0xff,0xaf,0xff,0x76,0xff,0x65,0xff,0x8d,0xff,0x67,0xff, +0x5a,0xff,0x84,0xff,0xa6,0xff,0xd6,0xff,0xd6,0xff,0xb6,0xff, +0xc1,0xff,0xdb,0xff,0xa,0x0,0x1,0x0,0x9a,0xff,0x83,0xff, +0xc9,0xff,0xd0,0xff,0x95,0xff,0x96,0xff,0xd5,0xff,0xb5,0xff, +0x69,0xff,0x8e,0xff,0xb9,0xff,0xac,0xff,0xa1,0xff,0x8f,0xff, +0x8f,0xff,0x84,0xff,0x6f,0xff,0x9b,0xff,0x92,0xff,0x52,0xff, +0x62,0xff,0x4b,0xff,0x3,0xff,0x20,0xff,0x3e,0xff,0x8,0xff, +0xed,0xfe,0x15,0xff,0xd,0xff,0xe5,0xfe,0x15,0xff,0xf6,0xfe, +0x7e,0xfe,0xcf,0xfe,0x18,0xff,0x9b,0xfe,0x80,0xfe,0x88,0xfe, +0x4d,0xfe,0x93,0xfe,0xc3,0xfe,0x77,0xfe,0x5f,0xfe,0x50,0xfe, +0x2d,0xfe,0x3f,0xfe,0x85,0xfe,0xc9,0xfe,0xa0,0xfe,0x74,0xfe, +0xd6,0xfe,0x13,0xff,0xf7,0xfe,0x11,0xff,0x38,0xff,0x36,0xff, +0x4d,0xff,0x7e,0xff,0x71,0xff,0x66,0xff,0xe2,0xff,0x2a,0x0, +0xd3,0xff,0xcc,0xff,0x6,0x0,0xf0,0xff,0xca,0xff,0x96,0xff, +0x74,0xff,0x7a,0xff,0x4a,0xff,0x23,0xff,0x44,0xff,0x44,0xff, +0xef,0xfe,0x9b,0xfe,0xad,0xfe,0xae,0xfe,0x48,0xfe,0x17,0xfe, +0x4,0xfe,0xfe,0xfd,0x66,0xfe,0x56,0xfe,0xdb,0xfd,0x15,0xfe, +0x4c,0xfe,0x1b,0xfe,0x25,0xfe,0x29,0xfe,0x51,0xfe,0xbd,0xfe, +0xe3,0xfe,0x12,0xff,0x4f,0xff,0x4e,0xff,0x84,0xff,0xae,0xff, +0x8b,0xff,0xa3,0xff,0xae,0xff,0x81,0xff,0xa6,0xff,0xd0,0xff, +0xc1,0xff,0xdb,0xff,0xf6,0xff,0xe6,0xff,0xd3,0xff,0xcd,0xff, +0xfb,0xff,0x33,0x0,0x2c,0x0,0x1a,0x0,0x13,0x0,0x15,0x0, +0x3a,0x0,0x17,0x0,0xd0,0xff,0xec,0xff,0xdc,0xff,0x97,0xff, +0xbe,0xff,0xcb,0xff,0x9e,0xff,0xb4,0xff,0xb4,0xff,0xaa,0xff, +0xbf,0xff,0xa6,0xff,0xb0,0xff,0xca,0xff,0x93,0xff,0x98,0xff, +0xcb,0xff,0xb1,0xff,0xa3,0xff,0xa4,0xff,0x8c,0xff,0x8e,0xff, +0x79,0xff,0x60,0xff,0x78,0xff,0x6f,0xff,0x44,0xff,0x47,0xff, +0x52,0xff,0x3e,0xff,0x3c,0xff,0x6a,0xff,0x84,0xff,0x64,0xff, +0x4e,0xff,0x5d,0xff,0x76,0xff,0x91,0xff,0x93,0xff,0xa1,0xff, +0xc4,0xff,0x9b,0xff,0x7f,0xff,0xd9,0xff,0xf5,0xff,0xad,0xff, +0xc4,0xff,0xb,0x0,0xe5,0xff,0xac,0xff,0xd0,0xff,0xf3,0xff, +0xd2,0xff,0xc1,0xff,0xc9,0xff,0xd1,0xff,0xef,0xff,0xdf,0xff, +0xad,0xff,0xb3,0xff,0xb3,0xff,0xa1,0xff,0xb3,0xff,0xb2,0xff, +0xaf,0xff,0xb5,0xff,0x9c,0xff,0xb6,0xff,0xda,0xff,0xb2,0xff, +0xbb,0xff,0xc6,0xff,0x85,0xff,0x98,0xff,0xc6,0xff,0x94,0xff, +0x97,0xff,0xbb,0xff,0x7f,0xff,0x6c,0xff,0xd4,0xff,0x13,0x0, +0xde,0xff,0xbb,0xff,0xe0,0xff,0xef,0xff,0xf7,0xff,0xc,0x0, +0xcb,0xff,0x9b,0xff,0xdf,0xff,0xef,0xff,0xca,0xff,0xcd,0xff, +0xa8,0xff,0x94,0xff,0xb5,0xff,0x97,0xff,0x9d,0xff,0xe0,0xff, +0xc0,0xff,0x97,0xff,0xa6,0xff,0xaa,0xff,0xda,0xff,0xe0,0xff, +0x9a,0xff,0xbf,0xff,0xfb,0xff,0xf4,0xff,0x1d,0x0,0x1f,0x0, +0xfc,0xff,0x1b,0x0,0x1e,0x0,0x2b,0x0,0x42,0x0,0x15,0x0, +0x2c,0x0,0x28,0x0,0xc8,0xff,0x16,0x0,0x55,0x0,0xe3,0xff, +0xdb,0xff,0xd4,0xff,0xa5,0xff,0x3,0x0,0xfd,0xff,0x8b,0xff, +0x85,0xff,0x8c,0xff,0xb4,0xff,0xa5,0xff,0xf8,0xfe,0xd8,0xfe, +0x1e,0xff,0x1f,0xff,0x47,0xff,0xc,0xff,0xba,0xfe,0x16,0xff, +0x34,0xff,0x64,0xff,0xd7,0xff,0x84,0xff,0x67,0xff,0xb7,0xff, +0x92,0xff,0xe1,0xff,0x9,0x0,0x7f,0xff,0xc9,0xff,0xef,0xff, +0x51,0xff,0x8b,0xff,0xbc,0xff,0x5c,0xff,0xa5,0xff,0xc4,0xff, +0x55,0xff,0x31,0xff,0x1b,0xff,0xb,0xff,0x9,0xff,0xe0,0xfe, +0xeb,0xfe,0xee,0xfe,0xb3,0xfe,0x98,0xfe,0x9a,0xfe,0xcf,0xfe, +0x19,0xff,0x36,0xff,0x54,0xff,0x37,0xff,0xe1,0xfe,0xba,0xfe, +0x9d,0xfe,0xa3,0xfe,0x7a,0xfe,0xee,0xfd,0x28,0xfe,0xb3,0xfe, +0x61,0xfe,0xf6,0xfd,0xa4,0xfd,0x7c,0xfd,0xee,0xfd,0xe7,0xfd, +0xad,0xfd,0x19,0xfe,0x5,0xfe,0x22,0xfe,0xef,0xfe,0xa5,0xfe, +0x61,0xfe,0x1d,0xff,0x2e,0xff,0x67,0xff,0x5,0x0,0x8a,0xff, +0x62,0xff,0xba,0xff,0x2f,0xff,0x2a,0xff,0x92,0xff,0x29,0xff, +0x1,0xff,0xf0,0xfe,0xc6,0xfe,0x3d,0xff,0x2a,0xff,0xd4,0xfe, +0x57,0xff,0x75,0xff,0x86,0xff,0x3c,0x0,0x3e,0x0,0xf3,0xff, +0x2b,0x0,0x54,0x0,0x52,0x0,0xdc,0xff,0x66,0xff,0x97,0xff, +0x6a,0xff,0xb7,0xfe,0xfd,0xfd,0x5e,0xfd,0x82,0xfd,0x62,0xfd, +0x40,0xfc,0xb5,0xfb,0xce,0xfb,0xd7,0xfb,0xe3,0xfb,0x9b,0xfb, +0xaa,0xfb,0x2a,0xfc,0x56,0xfc,0xb2,0xfc,0xe6,0xfc,0x31,0xfd, +0xa0,0xfe,0x37,0xff,0xab,0xfe,0x12,0xff,0xc4,0xff,0x81,0x0, +0x29,0x1,0x53,0x0,0xd5,0xff,0xe4,0x0,0x34,0x1,0x7d,0x0, +0xd2,0xff,0x18,0xff,0x50,0xfe,0x96,0xfd,0x7,0xfd,0x79,0xfc, +0xe7,0xfb,0x99,0xfb,0x5b,0xfb,0x88,0xfb,0xcb,0xfb,0x2c,0xfb, +0x1c,0xfb,0xbb,0xfb,0x54,0xfb,0x4c,0xfb,0x48,0xfc,0xf1,0xfc, +0x93,0xfd,0xb,0xfe,0x59,0xfe,0xff,0xfe,0x32,0xff,0xa3,0xff, +0x91,0x0,0x9a,0x0,0xb1,0x0,0xf1,0x0,0x42,0x0,0x0,0x0, +0x41,0x0,0xed,0xff,0x6d,0xff,0xc4,0xfe,0x2c,0xfe,0xd3,0xfd, +0x84,0xfd,0x53,0xfd,0x44,0xfc,0x20,0xfb,0x43,0xfb,0x8c,0xfa, +0x2f,0xf9,0x18,0xf9,0xef,0xf8,0xe5,0xf8,0xfa,0xf8,0xc,0xf8, +0x5e,0xf8,0x47,0xf9,0x97,0xf8,0xf0,0xf8,0x50,0xfa,0xf0,0xfa, +0xcb,0xfb,0x23,0xfc,0x58,0xfc,0xe0,0xfd,0x23,0xff,0xd3,0xff, +0x44,0x0,0x95,0x0,0x65,0x2,0xf2,0x3,0xf,0x4,0x4c,0x5, +0x89,0x6,0x9c,0x6,0x42,0x7,0xc5,0x7,0xd0,0x7,0x5,0x8, +0x1f,0x8,0x65,0x8,0xb6,0x7,0x98,0x6,0xfa,0x6,0x51,0x6, +0x70,0x4,0xe,0x4,0x63,0x3,0x70,0x2,0x43,0x2,0x6e,0x0, +0x8b,0xfe,0xa8,0xfe,0x40,0xfe,0x35,0xfd,0xf6,0xfc,0x66,0xfd, +0x29,0xfe,0x80,0xfe,0x2f,0xff,0x5a,0x0,0x6d,0x0,0x65,0x0, +0xea,0x0,0x77,0x1,0x5c,0x2,0x9,0x2,0x88,0x1,0xa,0x3, +0xd8,0x2,0xab,0x0,0x44,0x0,0xe8,0xff,0x12,0xff,0xb3,0xfe, +0xf5,0xfc,0xa0,0xfb,0x80,0xfb,0x60,0xfa,0xb4,0xf9,0xb5,0xf8, +0x6f,0xf6,0xac,0xf6,0x92,0xf7,0x2e,0xf6,0x2b,0xf6,0xfb,0xf6, +0xf8,0xf5,0xfb,0xf5,0xb3,0xf7,0xa6,0xf8,0xea,0xf8,0xf9,0xf9, +0x8a,0xfb,0xe9,0xfb,0xe4,0xfb,0x56,0xfd,0xb2,0xfe,0x53,0xff, +0x55,0x0,0x57,0x0,0xd7,0xff,0x9a,0x1,0xc5,0x3,0xc8,0x2, +0xf3,0x0,0xe7,0x2,0x8f,0x6,0xc5,0x6,0x70,0x5,0xbc,0x6, +0x23,0x9,0xf1,0x9,0x4a,0x9,0xd0,0x8,0x95,0x9,0x33,0xa, +0xf,0x9,0xb9,0x6,0x4b,0x4,0x9a,0x1,0x6c,0xfd,0x53,0xf8, +0x27,0xf4,0xd2,0xef,0xb4,0xe9,0x80,0xe2,0x87,0xdb,0x2b,0xd6, +0xda,0xd1,0xf9,0xcc,0x7b,0xc8,0xd1,0xc4,0x1a,0xc2,0x15,0xc2, +0x4c,0xc3,0xa7,0xc3,0xc8,0xc5,0x93,0xcb,0x61,0xd2,0x37,0xd8, +0x88,0xdf,0x0,0xe9,0x4b,0xf0,0x93,0xf6,0xdd,0xff,0x65,0x8, +0x16,0xf,0xf1,0x16,0xf4,0x1c,0xf6,0x20,0x6c,0x25,0x6,0x28, +0x1,0x2a,0xde,0x2b,0x59,0x2a,0x2e,0x28,0xbc,0x25,0x25,0x20, +0x6f,0x1b,0xd,0x18,0x45,0x12,0xec,0xb,0xf1,0x5,0xf4,0xff, +0x2a,0xfb,0x1c,0xf7,0xe6,0xf3,0x78,0xf0,0x69,0xeb,0x38,0xe8, +0xe2,0xe7,0x40,0xe7,0x46,0xe6,0x3c,0xe5,0x95,0xe4,0xba,0xe6, +0x9c,0xea,0x10,0xed,0x74,0xee,0x12,0xf1,0x66,0xf5,0x2a,0xfa, +0x53,0xfe,0x24,0x1,0x7a,0x3,0xf,0x8,0x3c,0xd,0x4b,0xf, +0x1a,0x11,0x12,0x15,0xe9,0x17,0x81,0x19,0x47,0x1b,0x46,0x1b, +0xa3,0x1a,0xc0,0x1b,0x20,0x1c,0x1e,0x1a,0x71,0x17,0x71,0x14, +0xac,0x10,0x96,0xc,0xbc,0x7,0x5b,0x2,0x38,0xff,0xe0,0xfd, +0xf7,0xf9,0x22,0xf5,0x33,0xf4,0xdc,0xf4,0x8a,0xf3,0x7,0xf2, +0x46,0xf2,0x38,0xf3,0x60,0xf4,0x48,0xf8,0x87,0xfe,0xbf,0x2, +0xa3,0x5,0x64,0xa,0xcf,0x10,0xac,0x17,0x8d,0x1c,0x44,0x1f, +0x21,0x22,0x51,0x25,0xb3,0x29,0xc7,0x2b,0x46,0x27,0xbf,0x23, +0x44,0x23,0xfb,0x1e,0x79,0x1a,0x23,0x17,0x3,0x11,0x14,0xb, +0x56,0x4,0x42,0xfc,0x92,0xf7,0xd3,0xf2,0xa3,0xec,0x90,0xe8, +0xc4,0xe3,0xea,0xdf,0x6,0xe1,0x8c,0xe2,0xae,0xe2,0x75,0xe4, +0x3d,0xe7,0x42,0xe9,0xb0,0xeb,0x6d,0xf0,0xc2,0xf5,0x3a,0xf9, +0xbc,0xfc,0xf3,0x1,0xb3,0x7,0x1f,0xd,0xda,0x10,0x64,0x11, +0xed,0x10,0x3c,0x12,0x97,0x12,0xc2,0xf,0xf8,0xc,0x3e,0xa, +0x98,0x5,0xd0,0x1,0xa0,0xff,0x70,0xfd,0x1f,0xfc,0x5c,0xfa, +0xbf,0xf6,0xd1,0xf3,0x4a,0xf2,0x43,0xf0,0xea,0xed,0x31,0xec, +0x70,0xeb,0x8c,0xed,0x72,0xf1,0xb,0xf2,0x72,0xf0,0xda,0xf0, +0x28,0xf2,0x51,0xf3,0x56,0xf3,0x96,0xf1,0x52,0xf2,0xfd,0xf6, +0xd8,0xfb,0x3d,0xfd,0x4d,0xfb,0xad,0xfa,0x93,0xfa,0x3f,0xf8, +0x25,0xf7,0x5f,0xf6,0x67,0xf5,0xd,0xf7,0x7a,0xf9,0xe2,0xfe, +0xd6,0x2,0xde,0xfb,0x28,0xf6,0x22,0xfa,0xe4,0xfc,0x7b,0xfb, +0xe,0xf8,0x2e,0xf6,0xfc,0xf7,0x29,0xf7,0xf0,0xf6,0x1f,0xf9, +0x3b,0xf7,0x78,0xf7,0x5f,0xf7,0x3f,0xf0,0xd6,0xef,0x55,0xf5, +0x8b,0xf2,0x81,0xec,0x91,0xec,0xae,0xf5,0x2f,0x0,0x79,0xfd, +0x66,0xf3,0x99,0xef,0x99,0xed,0xa9,0xe9,0x67,0xeb,0x9d,0xf3, +0xbf,0xfa,0xd3,0xfd,0x5c,0xfb,0x9e,0xf5,0x80,0xf7,0xbc,0xfd, +0x18,0xfc,0x6e,0xf8,0x40,0xf7,0x83,0xf4,0x1b,0xf4,0xe6,0xf7, +0xc8,0xfe,0xe0,0x3,0xb,0xfd,0x6e,0xf0,0x15,0xeb,0x4c,0xf0, +0x8f,0xff,0xd8,0x7,0x94,0xf8,0x99,0xe2,0x32,0xdd,0xca,0xea, +0xb4,0xfd,0x24,0x1,0xda,0xf0,0xdd,0xde,0xba,0xdb,0x68,0xeb, +0xe6,0x1,0x54,0x7,0x7f,0xf3,0x58,0xdb,0xf5,0xd8,0x61,0xf1, +0xd1,0xe,0xff,0x12,0xe9,0xfa,0x2c,0xe3,0x13,0xe5,0xf4,0x0, +0x81,0x1c,0x5,0x17,0x6a,0xf3,0xd6,0xda,0xda,0xec,0xe0,0x16, +0x50,0x24,0x6b,0x6,0x46,0xe9,0xb5,0xee,0xf3,0x7,0xd2,0x13, +0xe0,0x5,0x10,0xf4,0x80,0xf5,0x23,0x1,0xae,0x1,0xb2,0xf6, +0xd4,0xf3,0x58,0xfe,0xf,0x0,0x3e,0xf0,0x3b,0xe4,0x85,0xeb, +0x6f,0xfc,0xa1,0x0,0xe5,0xf1,0xe8,0xe6,0xff,0xed,0x69,0xf8, +0x50,0xfb,0x79,0xfb,0xfc,0xfb,0x23,0xfc,0x28,0xfa,0x12,0xf9, +0xf2,0x1,0x96,0xe,0x96,0xd,0xed,0x3,0x7f,0x2,0x87,0x7, +0x1f,0xa,0xb,0xa,0xef,0x8,0xa0,0x8,0x36,0xb,0xb8,0xb, +0xd4,0x4,0xa5,0xff,0xaa,0x5,0xb5,0xc,0x9d,0x7,0x19,0xfa, +0xa0,0xf3,0x49,0xfd,0xeb,0x8,0x3e,0x4,0x3c,0xf5,0x17,0xec, +0x61,0xf1,0xa8,0xff,0xbd,0x4,0x17,0xfd,0x77,0xf5,0xc7,0xf3, +0x56,0xfa,0xf6,0x3,0xc,0x3,0xd0,0xf8,0xad,0xf3,0xa7,0xfa, +0x29,0x3,0xec,0xff,0xa7,0xf9,0x37,0xfb,0xf9,0xfd,0x70,0xfd, +0x74,0xfa,0x8b,0xf8,0x6,0xfc,0x25,0xff,0x51,0xff,0x31,0xfe, +0x6a,0xf9,0x9,0xf9,0x25,0xff,0xeb,0xff,0x8f,0xfd,0x82,0xfc, +0x60,0xfa,0x2b,0xfe,0x25,0x7,0xa2,0x7,0x35,0xff,0x18,0xfc, +0xa1,0x2,0x8c,0x6,0xdc,0x3,0xa4,0x1,0xdc,0xff,0x6f,0x0, +0x94,0x3,0x39,0x1,0x9c,0xfd,0xc2,0xfd,0xbc,0xfc,0xff,0xfc, +0x2b,0xfd,0x88,0xf9,0x22,0xf9,0xa3,0xfa,0x2d,0xfa,0x2d,0xfb, +0xc6,0xf9,0x13,0xf7,0xe2,0xf8,0x9c,0xfa,0x20,0xfc,0xf2,0xfd, +0x51,0xfa,0x52,0xf6,0xf6,0xf7,0xb3,0xfb,0xb4,0xfd,0x1e,0xfa, +0x73,0xf4,0xe6,0xf4,0xa9,0xf8,0xfd,0xf8,0x64,0xf3,0xac,0xed, +0x59,0xf2,0x10,0xfa,0xd1,0xf8,0x58,0xf5,0xd,0xf4,0x87,0xf3, +0xc,0xf6,0xc7,0xf6,0x77,0xf4,0x5a,0xf4,0xd5,0xf3,0xd3,0xf3, +0xd2,0xf7,0xc0,0xfa,0x34,0xfa,0xf,0xf8,0x9b,0xf6,0xc8,0xf7, +0xce,0xf8,0x5b,0xfa,0xa7,0xfd,0x7f,0xfd,0xef,0xfb,0x85,0xfc, +0xd,0xfd,0xf0,0xff,0xe3,0x1,0x95,0xfe,0x47,0xfe,0xfc,0xff, +0x32,0xfd,0x95,0xfb,0x2f,0xfb,0x6d,0xf9,0xc3,0xf9,0xe0,0xf7, +0x55,0xf4,0x3d,0xf7,0xd1,0xfa,0x70,0xf8,0xb1,0xf4,0xb5,0xf2, +0xb8,0xf4,0xc2,0xf9,0x89,0xfa,0x91,0xf7,0x4e,0xf7,0x53,0xf9, +0xb4,0xfb,0x21,0xfe,0x35,0xfe,0x7f,0xfc,0x4e,0xfc,0x98,0xfd, +0x4f,0xff,0x78,0x0,0xdf,0xff,0x66,0xff,0x59,0xff,0xd4,0xfc, +0xe7,0xf9,0x95,0xf9,0xb4,0xf9,0x4c,0xf8,0xb,0xf5,0x5b,0xf1, +0x40,0xf0,0x45,0xf1,0xf6,0xf1,0xa0,0xf0,0xf2,0xec,0x6,0xeb, +0x64,0xec,0xed,0xec,0xf1,0xec,0x63,0xee,0x3c,0xef,0x1c,0xf0, +0x4,0xf3,0x83,0xf6,0x4e,0xf9,0x18,0xfc,0xed,0xfd,0xc1,0xfc, +0x44,0xfd,0xfb,0x3,0x86,0x7,0x6f,0x2,0xd3,0xff,0x16,0x3, +0x5a,0x4,0xfe,0x1,0xf0,0xfc,0x23,0xf7,0x5d,0xf6,0xff,0xf9, +0xe2,0xfa,0x42,0xf6,0xee,0xf0,0x99,0xf0,0xfc,0xf2,0x5a,0xf3, +0xcd,0xf2,0x34,0xf2,0xf3,0xf1,0x3d,0xf4,0xc0,0xf6,0xe5,0xf7, +0xe9,0xfa,0x17,0xfe,0x8b,0xfd,0xe9,0xfb,0x6e,0xfd,0x6a,0x1, +0x80,0x3,0x43,0x3,0x6e,0x3,0x5,0x1,0xeb,0xfc,0x79,0xff, +0xa2,0x3,0x78,0xff,0x4,0xfa,0xb4,0xf8,0x33,0xf6,0x65,0xf4, +0x77,0xf5,0xe4,0xf3,0x3c,0xf0,0xa1,0xee,0x9b,0xed,0xc8,0xec, +0xd9,0xed,0xf0,0xee,0x4a,0xee,0x9c,0xee,0x5d,0xf2,0x2,0xf6, +0x1b,0xf6,0x1e,0xf7,0x16,0xfc,0x5c,0x0,0x6c,0x2,0xcf,0x3, +0x7b,0x3,0xb0,0x4,0x77,0x9,0xa0,0xb,0x4e,0xa,0x7f,0x9, +0x4f,0x8,0xd,0x8,0x10,0x9,0xa0,0x6,0xff,0x2,0x45,0x2, +0x59,0x1,0x61,0xff,0x30,0xfe,0x31,0xfd,0xa4,0xfc,0x2e,0xfd, +0xa2,0xfd,0x3f,0xfd,0x20,0xfe,0x5d,0x0,0xe5,0xff,0xe0,0xfe, +0xb8,0x0,0x58,0x0,0xfa,0xfe,0x66,0x1,0x33,0x2,0x59,0x0, +0xd4,0xff,0x11,0x0,0xd6,0x2,0x3e,0x5,0x86,0x2,0x2d,0x1, +0xd7,0x2,0x10,0x3,0xaa,0x3,0xbc,0x2,0x11,0x0,0x2a,0x1, +0x4f,0x2,0x4c,0x0,0x5d,0xff,0xe5,0xfe,0x6,0xfe,0x5d,0xfe, +0x49,0xfe,0x9f,0xfd,0x5,0xfe,0x88,0xfe,0xc8,0xfd,0x21,0xfd, +0xdc,0xfd,0x7e,0xfd,0xdb,0xfb,0xfc,0xfb,0x7b,0xfc,0x69,0xfc, +0xca,0xfc,0x52,0xfc,0x8b,0xfd,0x2c,0x1,0x5e,0x1,0xc2,0xff, +0xd,0x1,0x2a,0x2,0xa1,0x1,0xf3,0x0,0xa0,0xff,0x7,0xff, +0xe5,0x0,0xe2,0x2,0xd2,0x0,0xc4,0xfb,0x1c,0xfb,0x38,0xff, +0x55,0xff,0x68,0xfb,0x80,0xfa,0x73,0xfa,0x11,0xf8,0x14,0xf8, +0xf3,0xf9,0xa0,0xf9,0x44,0xfa,0xa3,0xfb,0x85,0xfa,0x28,0xfb, +0xb3,0xfd,0x2c,0xfe,0xad,0xff,0x3d,0x1,0x6e,0xfe,0x69,0xfc, +0x2,0xff,0xa1,0x1,0xcc,0x0,0xb8,0xfc,0x43,0xf9,0x9,0xfb, +0x28,0xff,0xdf,0xfe,0xae,0xfa,0x70,0xf7,0x76,0xf5,0x31,0xf5, +0xa5,0xf8,0x11,0xfb,0x0,0xf9,0x76,0xf6,0xfd,0xf3,0x55,0xf2, +0x55,0xf5,0xd6,0xf8,0x43,0xf8,0xda,0xf5,0xf0,0xf3,0x7d,0xf6, +0x75,0xfc,0xa0,0xfc,0xbc,0xf8,0x5c,0xf9,0x86,0xfb,0xab,0xfb, +0x5,0xfd,0x1e,0xff,0xf,0x0,0x7,0x1,0x2d,0x1,0x2f,0xff, +0x3,0xfe,0xcc,0xff,0x94,0x1,0x1c,0x1,0x25,0xff,0xf5,0xfb, +0x38,0xfa,0x4f,0xfc,0xef,0xfc,0x91,0xf9,0xfd,0xf7,0x5d,0xf8, +0xa,0xf8,0x3b,0xf9,0x7b,0xf9,0xc0,0xf6,0x47,0xf6,0xf8,0xf7, +0xad,0xf8,0x8a,0xf9,0x2b,0xf9,0x65,0xf7,0xf,0xf7,0x39,0xf7, +0xf8,0xf7,0x50,0xfa,0xd8,0xfb,0xfd,0xfb,0x86,0xfc,0x3b,0xfe, +0xee,0xfe,0x2d,0xfd,0x2a,0xfe,0x20,0x1,0xa5,0xff,0xca,0xff, +0x4b,0x3,0x45,0x1,0x8a,0xff,0xf6,0x2,0xa6,0x2,0x91,0x0, +0xfe,0x0,0x66,0xff,0x40,0xfe,0x89,0xff,0xdd,0xff,0x85,0x0, +0xb9,0xff,0x9b,0xfb,0xfc,0xf9,0xa4,0xfa,0x53,0xf9,0xbc,0xf8, +0x17,0xf9,0x81,0xf7,0xc5,0xf5,0x9c,0xf4,0x1a,0xf3,0x1f,0xf3, +0x9f,0xf4,0xc4,0xf4,0x45,0xf3,0x1d,0xf3,0x5e,0xf5,0x20,0xf6, +0x5d,0xf4,0x17,0xf4,0x34,0xf5,0x6b,0xf6,0x76,0xf7,0x1e,0xf5, +0x67,0xf2,0x5f,0xf4,0x77,0xf6,0x57,0xf6,0xc,0xf6,0xf0,0xf5, +0x1f,0xf8,0x9a,0xf9,0x3d,0xf8,0xe3,0xf9,0x64,0xfb,0x10,0xf9, +0x62,0xf9,0x27,0xfb,0x9f,0xfb,0xb1,0xfc,0xd9,0xfb,0x59,0xfb, +0x36,0xfd,0x7c,0xfd,0x5e,0xfe,0x4b,0xff,0x4b,0xfd,0xe,0xfd, +0x76,0xfe,0x42,0xff,0x32,0x0,0x51,0xff,0x63,0xff,0xaf,0x0, +0xff,0xfe,0x53,0xfe,0xc7,0xfd,0x81,0xfa,0x5c,0xfa,0xbd,0xf9, +0xe3,0xf5,0x62,0xf6,0x26,0xf7,0x93,0xf3,0x24,0xf1,0xcb,0xef, +0x6e,0xee,0x0,0xee,0xb5,0xed,0xd8,0xee,0x6d,0xf0,0xb9,0xf0, +0x79,0xf0,0xd,0xef,0x29,0xef,0xd4,0xf2,0x3c,0xf5,0xfb,0xf3, +0x93,0xf1,0xc6,0xf1,0x86,0xf5,0x9b,0xf8,0x9b,0xf9,0xad,0xf9, +0xe9,0xf8,0xb7,0xf9,0x99,0xfb,0x15,0xfd,0x35,0xff,0x72,0xfe, +0xa,0xfc,0x60,0xfe,0x18,0x1,0x9e,0x0,0x3a,0x1,0x62,0x1, +0xcc,0xfe,0xbb,0xfd,0xfe,0x0,0x7c,0x3,0x2,0x0,0x50,0xfd, +0xde,0xfe,0x9d,0xfc,0x73,0xfa,0xb9,0xfd,0x8b,0xfc,0xa,0xf8, +0x69,0xf8,0xac,0xf8,0x90,0xf7,0x2d,0xf7,0x82,0xf4,0xff,0xf2, +0x39,0xf4,0x8d,0xf4,0xbb,0xf5,0x21,0xf6,0x42,0xf4,0x5c,0xf5, +0x0,0xf7,0xe0,0xf5,0x8,0xf6,0xce,0xf6,0x40,0xf8,0x5,0xfc, +0x81,0xfc,0xc2,0xf9,0x55,0xfa,0x36,0xfd,0xc8,0xfe,0xc9,0xfe, +0xeb,0xfd,0x7,0xfd,0x34,0xfd,0xeb,0xfe,0xa7,0xfe,0xf,0xfc, +0x2b,0xfc,0x11,0xfb,0x6b,0xf6,0x88,0xf5,0x3f,0xf5,0xc2,0xf2, +0x23,0xf4,0x16,0xf4,0x30,0xf0,0xda,0xef,0x97,0xf0,0x36,0xf1, +0xe5,0xf3,0xb2,0xf3,0x42,0xf2,0xf1,0xf3,0x83,0xf6,0xd4,0xf8, +0xf3,0xf9,0x55,0xfb,0xc3,0xfd,0x61,0xfc,0x4d,0xfa,0xac,0xfb, +0x29,0xfc,0x16,0xfd,0x1f,0xfe,0x8,0xfb,0x65,0xf9,0xaa,0xfa, +0x1c,0xfa,0xc0,0xfa,0x96,0xfc,0x69,0xfb,0x61,0xf9,0x43,0xf9, +0x5a,0xfa,0xd8,0xfa,0x3d,0xfa,0x3f,0xfa,0xd3,0xfa,0xc1,0xfa, +0xe4,0xfa,0x73,0xfc,0x1a,0xfe,0x91,0xfd,0x98,0xfc,0x3c,0xfd, +0x57,0xfe,0x4d,0x0,0xce,0x0,0x7b,0xfd,0xb,0xfd,0xe5,0x0, +0xd7,0x1,0xf9,0x0,0xd7,0x1,0xf0,0x2,0xa1,0x3,0xbc,0x2, +0x5f,0x0,0x72,0xff,0xc4,0xff,0x69,0xff,0x61,0xfd,0xe4,0xf9, +0xbe,0xf7,0xc9,0xf7,0xbb,0xf6,0xeb,0xf3,0x96,0xf2,0xa9,0xf2, +0xf3,0xf1,0xa5,0xf1,0x71,0xf1,0x9a,0xf0,0x7f,0xf2,0x6a,0xf5, +0xe,0xf5,0x37,0xf4,0xb5,0xf5,0xfd,0xf9,0x76,0xfe,0x3,0xfe, +0x93,0xfd,0x19,0x1,0x4e,0x1,0x6e,0x0,0xfb,0x3,0xfb,0x5, +0x5f,0x5,0xfa,0x4,0xcc,0x2,0x60,0x1,0x68,0x3,0xcd,0x4, +0xad,0x2,0x2b,0x0,0xa0,0x0,0x34,0x1,0x69,0x0,0x4f,0x1, +0xec,0x0,0x89,0xfc,0x63,0xf9,0xdc,0xf9,0x49,0xfb,0x6f,0xfb, +0x2d,0xfa,0x1c,0xf9,0x2f,0xf8,0x1a,0xf8,0x21,0xf9,0x4a,0xf7, +0xa6,0xf4,0xa8,0xf6,0xf5,0xf8,0x8e,0xf7,0xb4,0xf5,0xc3,0xf4, +0x83,0xf4,0x9f,0xf5,0xf6,0xf6,0xf0,0xf6,0x80,0xf6,0xb7,0xf7, +0x2e,0xf9,0x7c,0xf8,0xfa,0xf7,0x33,0xfa,0x90,0xfc,0x56,0xfc, +0x46,0xfb,0x39,0xfb,0xaf,0xfb,0x3c,0xfd,0x3,0xff,0xa5,0xfe, +0xd2,0xfd,0xd0,0xfd,0xf0,0xfd,0xe8,0xfe,0xc7,0xfe,0x10,0xfd, +0x20,0xfc,0xd4,0xfa,0x97,0xfa,0x1f,0xfc,0x93,0xfa,0x9a,0xf8, +0x72,0xf9,0xbb,0xf8,0xd5,0xf8,0xe5,0xfb,0x25,0xfb,0x6d,0xf7, +0x97,0xf8,0xbf,0xfc,0x85,0xfc,0xe6,0xfa,0x30,0xfd,0xf0,0xfd, +0x5c,0xfc,0x31,0xfd,0xc2,0xfc,0x24,0xfd,0x5b,0x1,0xa8,0x0, +0x73,0xfd,0x59,0xfe,0x6c,0xfd,0xf8,0xfc,0x3d,0x0,0xcb,0xff, +0xd6,0xfc,0x33,0xfc,0x58,0xfd,0x11,0x0,0x51,0x0,0xf1,0xfc, +0x65,0xfb,0x90,0xfc,0x10,0xfe,0x64,0xfd,0xb,0xfb,0xf0,0xfb, +0xba,0xfd,0x1b,0xfc,0x8a,0xfb,0x56,0xfd,0x4e,0xfd,0x99,0xfb, +0x70,0xfb,0xb4,0xfc,0xf6,0xfb,0xb8,0xfb,0xaa,0xfe,0xa5,0xfd, +0x8e,0xfa,0xbd,0xfd,0x7d,0xff,0xfc,0xfc,0xc3,0xfd,0x14,0xfd, +0xb9,0xfa,0x73,0xfc,0x9a,0xfb,0xc5,0xf9,0x63,0xfd,0xb2,0xfe, +0xa9,0xfc,0xc2,0xfb,0x48,0xfa,0x92,0xfa,0x3,0xf9,0x17,0xf4, +0xe6,0xf6,0x1a,0xfa,0x8b,0xf3,0xeb,0xf0,0xad,0xf3,0x36,0xf3, +0xad,0xf4,0x71,0xf6,0x2,0xf5,0x7a,0xf5,0x9d,0xf6,0x62,0xf7, +0x9,0xf9,0xac,0xf9,0x58,0xfb,0xf5,0xfd,0x3a,0xfe,0xcd,0xfc, +0xa6,0xfb,0x22,0xfd,0x5c,0xfe,0xb6,0xfc,0xf7,0xfc,0x1b,0xfc, +0x71,0xf9,0x22,0xfc,0x94,0xfc,0xe0,0xf8,0x42,0xfa,0x61,0xf9, +0x4c,0xf5,0xe8,0xf5,0x93,0xf4,0x66,0xf2,0x36,0xf4,0xb,0xf4, +0xa4,0xf3,0xae,0xf3,0xc4,0xf1,0xfc,0xf2,0xd7,0xf3,0x2c,0xf1, +0x17,0xf1,0x5c,0xf2,0x7c,0xf3,0x48,0xf4,0x9f,0xf1,0x28,0xf1, +0x90,0xf5,0x63,0xf7,0xb2,0xf5,0x3,0xf5,0xb,0xf6,0xb6,0xf5, +0x6e,0xf4,0x8d,0xf5,0x68,0xf5,0x41,0xf4,0x88,0xf6,0x75,0xf6, +0xc9,0xf5,0x73,0xfa,0x16,0xfb,0x68,0xf7,0xd4,0xf8,0x99,0xfc, +0x6b,0xff,0xc2,0xff,0x44,0xfd,0x7d,0xfe,0x5a,0x2,0xb5,0x2, +0x2f,0x0,0x36,0xfe,0xd7,0x0,0xf8,0x2,0xf1,0xfd,0x78,0xfb, +0xf9,0xfe,0xb,0xff,0x21,0xfd,0x92,0xfd,0xa7,0xfe,0xda,0xfe, +0x32,0xfd,0xc5,0xfc,0x2b,0xfe,0xe3,0xfd,0xa0,0xfe,0xf4,0xff, +0x7b,0xff,0xb7,0x1,0x57,0x3,0xd7,0x0,0x58,0x1,0x2b,0x2, +0xbf,0xfe,0xaa,0xfe,0x9b,0x0,0x92,0xfd,0x26,0xfa,0xb2,0xfa, +0x89,0xfc,0x10,0xfb,0xce,0xf5,0x67,0xf5,0x4d,0xfb,0xde,0xfc, +0xf2,0xf9,0x9e,0xf9,0x72,0xfb,0xd8,0xfc,0xb8,0xfb,0x1c,0xfa, +0xd9,0xfa,0xc3,0xf8,0x90,0xf5,0x41,0xf6,0xe1,0xf3,0xfe,0xf0, +0xa9,0xf4,0x43,0xf6,0x17,0xf5,0x54,0xf6,0xb,0xf5,0x5c,0xf4, +0xac,0xf7,0x7,0xf9,0xa3,0xfa,0x75,0xfe,0x55,0x0,0xe5,0x1, +0x74,0x4,0x66,0x6,0xf4,0x7,0xa5,0x9,0xd,0xc,0xc8,0xd, +0x1c,0xe,0x57,0xe,0x14,0xd,0x6b,0xa,0xfa,0x7,0x14,0x6, +0x24,0x6,0xf8,0x4,0x95,0x0,0x3c,0xff,0xd7,0xff,0x2b,0xfd, +0x91,0xfa,0xbc,0xf8,0xe0,0xf5,0xf1,0xf4,0x26,0xf5,0xcd,0xf3, +0xfe,0xf2,0x7e,0xf3,0x44,0xf3,0x62,0xf2,0x1c,0xf1,0x7b,0xee, +0x6c,0xec,0xf9,0xec,0x98,0xed,0x44,0xec,0xcf,0xea,0x8e,0xeb, +0x50,0xee,0xf6,0xf0,0x6,0xf3,0x55,0xf4,0xe5,0xf5,0x1b,0xfb, +0xf0,0xff,0x74,0xff,0x87,0x0,0x32,0x5,0xf1,0x6,0x63,0x7, +0x9a,0x9,0x35,0xa,0x2,0x8,0x3e,0x7,0x8b,0x9,0x23,0x9, +0xc4,0x5,0xb4,0x5,0x90,0x6,0x7b,0x5,0xe7,0x3,0xe5,0x0, +0xcd,0x0,0xfe,0x3,0x86,0x2,0x35,0xff,0x8f,0xfe,0xb1,0xfd, +0x42,0xfd,0x3,0xfd,0xb6,0xfc,0xe8,0xfd,0x81,0xfd,0x3e,0xfc, +0x1e,0xfd,0x0,0xfe,0xf2,0xfd,0x69,0xfc,0xf2,0xfa,0xa0,0xfb, +0x57,0xfa,0x23,0xf8,0xfb,0xf8,0x9d,0xf9,0xee,0xf8,0x4c,0xf7, +0x1,0xf6,0xb8,0xf7,0x11,0xf8,0xed,0xf7,0x30,0xfa,0x65,0xf7, +0x8f,0xf4,0x5f,0xf9,0x81,0xfb,0xb,0xf9,0x1f,0xf7,0xe5,0xf4, +0xde,0xf6,0xa1,0xfa,0x9,0xfa,0x13,0xfa,0x18,0xfa,0x66,0xf8, +0xa1,0xf9,0x8d,0xfa,0x80,0xfa,0x38,0xfc,0xa6,0xfb,0x67,0xfb, +0x8a,0xfe,0x51,0xff,0xa2,0xfe,0x8,0x0,0x48,0x1,0x82,0x2, +0x87,0x3,0xdd,0x1,0x5a,0x0,0xb0,0x1,0x98,0x0,0xbe,0xfc, +0x29,0xfd,0xef,0xfc,0x73,0xf7,0xdc,0xf6,0xd1,0xf8,0xf1,0xf3, +0xe,0xf0,0x30,0xf0,0xe2,0xef,0xff,0xf1,0x47,0xf3,0xc5,0xf1, +0xa7,0xf3,0xff,0xf5,0xbc,0xf4,0x45,0xf3,0xdc,0xf3,0x4b,0xf6, +0xc8,0xf6,0xf7,0xf4,0x4c,0xf5,0x9a,0xf5,0x9d,0xf5,0x97,0xf8, +0x17,0xfa,0x11,0xf9,0xf8,0xf9,0xac,0xfc,0x88,0xff,0x47,0x0, +0xc8,0xff,0xd0,0x1,0xb0,0x3,0xa6,0x3,0xb2,0x3,0x5a,0x3, +0x71,0x4,0xb9,0x5,0x4d,0x3,0xe,0x2,0x0,0x3,0xf7,0x0, +0x5a,0xff,0x2,0x0,0x44,0xff,0x30,0xfe,0xf9,0xfc,0x39,0xfb, +0x6f,0xfb,0xce,0xfb,0x9f,0xfa,0xb0,0xf9,0x3c,0xf8,0x1e,0xf7, +0xad,0xf7,0xc5,0xf6,0xb8,0xf4,0xa,0xf4,0xb8,0xf3,0x24,0xf4, +0x9e,0xf4,0x93,0xf3,0xc5,0xf3,0x13,0xf5,0xe1,0xf5,0xfb,0xf7, +0x95,0xf9,0xed,0xf9,0xb6,0xfb,0x28,0xfd,0x79,0xfd,0x2e,0xfe, +0xe1,0xfe,0xfb,0x0,0x6c,0x3,0x8d,0x3,0xec,0x3,0x9a,0x5, +0x16,0x7,0x40,0x8,0x45,0x8,0xab,0x7,0x15,0x7,0x78,0x6, +0x59,0x7,0x1c,0x8,0xdc,0x6,0xd1,0x5,0x2f,0x5,0xf0,0x3, +0x39,0x3,0xb2,0x3,0xee,0x3,0x13,0x2,0x3d,0x0,0x3c,0x0, +0x31,0xff,0x9a,0xfd,0xa4,0xfd,0x97,0xfd,0x8,0xfd,0x83,0xfc, +0xf1,0xfb,0x96,0xfb,0x24,0xfb,0x71,0xfb,0xc4,0xfb,0xc6,0xfa, +0xd7,0xf9,0x4e,0xf8,0xf,0xf8,0xa7,0xfb,0x2a,0xfd,0xfa,0xfb, +0xe0,0xfc,0x40,0xfd,0xa4,0xfd,0x5,0xff,0x65,0xfd,0x5e,0xfc, +0x37,0xfe,0x4b,0xfe,0x62,0xfd,0x27,0xfd,0x84,0xfd,0xc1,0xfe, +0x51,0xfe,0x25,0xfd,0xc8,0xfd,0xda,0xfd,0x54,0xfd,0x45,0xfe, +0x31,0xff,0x93,0xfe,0x9d,0xfd,0x47,0xfe,0x21,0xff,0x3b,0xfe, +0xbf,0xfd,0x73,0xfd,0xd0,0xfb,0x33,0xfc,0x32,0xfe,0xe5,0xfd, +0x3a,0xfe,0x24,0x1,0x1d,0x2,0x52,0x1,0x70,0x2,0x5,0x4, +0x39,0x4,0x60,0x3,0xa2,0x1,0x20,0x1,0x5d,0x2,0xe9,0x2, +0xc7,0x2,0x6b,0x2,0xe0,0x1,0x82,0x1,0x40,0x0,0x29,0x0, +0xf1,0x1,0xef,0x0,0xd8,0xfe,0x9a,0xfe,0x65,0xfd,0x7b,0xfd, +0x8e,0xfe,0x7a,0xfb,0xd0,0xf8,0x13,0xf8,0xb3,0xf3,0x80,0xf0, +0x69,0xf1,0x9a,0xf0,0xb3,0xef,0x78,0xf0,0xc6,0xef,0xb7,0xf0, +0x13,0xf4,0x8d,0xf5,0x27,0xf7,0x7,0xfa,0xba,0xfb,0xef,0xfd, +0x24,0x0,0xf,0x1,0x5d,0x3,0x70,0x4,0x71,0x2,0xd6,0x2, +0xca,0x4,0xf4,0x3,0x5a,0x2,0x97,0x1,0x9c,0x1,0x99,0x2, +0x69,0x2,0x9c,0x0,0x50,0xff,0xd4,0xfe,0xab,0xfe,0x19,0xff, +0x1d,0xff,0x18,0xfd,0x6d,0xfb,0x33,0xfd,0x1a,0xff,0x19,0xfe, +0xd3,0xfc,0x4f,0xfc,0xf1,0xfa,0x13,0xf9,0x3f,0xf8,0x48,0xf8, +0x62,0xf7,0x6c,0xf5,0x2,0xf3,0xa2,0xf0,0x81,0xf0,0x66,0xf1, +0xe8,0xf0,0xb6,0xf1,0xeb,0xf2,0x1a,0xf2,0x66,0xf3,0xae,0xf6, +0xb5,0xf8,0x66,0xfb,0x10,0xfe,0x8c,0xff,0x43,0x1,0xff,0x0, +0x90,0xff,0x62,0xff,0x51,0xfd,0x51,0xfb,0xb9,0xfc,0x28,0xfc, +0xb,0xf9,0x6a,0xf8,0x8,0xf9,0x69,0xf9,0xd1,0xf9,0xbd,0xf8, +0x15,0xf8,0xc6,0xf9,0x5d,0xfb,0x24,0xfc,0xf3,0xfc,0x45,0xfd, +0x3,0xfe,0x29,0x0,0x8a,0x1,0x6a,0x0,0x68,0xff,0xd7,0x0, +0x2e,0x2,0x7e,0x0,0xbf,0xfc,0x36,0xfa,0x9f,0xf9,0x68,0xf8, +0xbf,0xf6,0xd8,0xf5,0x97,0xf4,0xef,0xf4,0xe1,0xf6,0xe8,0xf6, +0x62,0xf7,0x9d,0xf9,0x79,0xfb,0xe8,0xfd,0xd2,0xfe,0xfc,0xfe, +0xea,0x1,0x5e,0x1,0xb0,0xfd,0xdd,0xfe,0xcd,0xff,0x46,0xfd, +0x32,0xfc,0x7d,0xfb,0x74,0xfb,0xf1,0xfc,0x3f,0xfd,0xb4,0xfd, +0xad,0xfd,0x74,0xfb,0x28,0xfa,0x39,0xf9,0xcc,0xf7,0x1f,0xf8, +0xac,0xf7,0xe3,0xf5,0x4a,0xf6,0x8f,0xf6,0xcc,0xf4,0x99,0xf4, +0x17,0xf5,0xde,0xf3,0x4a,0xf4,0x1d,0xf6,0x46,0xf6,0x61,0xf7, +0x55,0xf9,0x5c,0xfa,0xc0,0xfc,0xc0,0xfd,0x3c,0xfc,0x7a,0xfd, +0xd6,0xff,0x8b,0x1,0xb1,0x4,0xda,0x5,0xf6,0x4,0xba,0x5, +0x6f,0x6,0x6d,0x6,0x73,0x6,0x8,0x5,0x1f,0x2,0xeb,0xfe, +0xcb,0xfc,0xa6,0xfb,0xbe,0xfa,0x11,0xfb,0xf9,0xfb,0xd6,0xfc, +0xdf,0xfd,0x3e,0xfd,0x93,0xfc,0x17,0xfe,0xd4,0xfe,0xaf,0xfd, +0xfe,0xfb,0xc7,0xfa,0x7f,0xfb,0x71,0xfd,0x87,0xff,0xfe,0x0, +0x79,0x1,0x54,0x3,0xd5,0x5,0x23,0x7,0xf,0x9,0x32,0xa, +0xe1,0x9,0x76,0xa,0x14,0xa,0xa7,0x9,0x36,0xb,0x40,0xa, +0xb6,0x7,0xb0,0x8,0xbd,0x9,0x4c,0x7,0xe0,0x4,0x1c,0x5, +0xd4,0x5,0x8e,0x5,0xe4,0x5,0x9c,0x5,0x73,0x3,0xa5,0x3, +0x16,0x6,0x86,0x6,0x91,0x7,0xfa,0x9,0xe4,0x8,0x3b,0x7, +0x1a,0x9,0x84,0x9,0xe1,0x6,0xcb,0x4,0x64,0x2,0x16,0x0, +0x65,0x0,0x72,0x0,0x3d,0xfe,0x91,0xfc,0x87,0xfc,0xf6,0xfc, +0xc3,0xfc,0xe1,0xfb,0xcf,0xfb,0x94,0xfb,0xa,0xf9,0xc,0xf7, +0xd0,0xf7,0xe4,0xf7,0xb2,0xf6,0x90,0xf6,0x24,0xf7,0xd1,0xf9, +0x88,0xfd,0xe9,0xfc,0xf5,0xfa,0x75,0xfb,0xbb,0xfa,0x3d,0xfa, +0x8c,0xfa,0x85,0xf8,0x95,0xf8,0x1f,0xf9,0x23,0xf5,0xcc,0xf4, +0xa9,0xf8,0xbb,0xf8,0x7d,0xf8,0x2f,0xf8,0xc5,0xf4,0xe5,0xf4, +0xe7,0xf7,0x6f,0xf7,0x5,0xf7,0x98,0xf8,0x1,0xf9,0x1,0xf9, +0x63,0xf9,0xba,0xf9,0xad,0xfa,0xc6,0xfb,0xcc,0xfc,0xf3,0xfd, +0xba,0xfe,0x8b,0xff,0xe5,0xff,0x1e,0xff,0xf8,0xfe,0x7a,0xff, +0xd3,0xff,0xa4,0x0,0x97,0x0,0x37,0x0,0xe,0x1,0x8b,0x0, +0x3a,0xff,0x53,0xfe,0xad,0xfa,0x50,0xf6,0x70,0xf3,0xaf,0xee, +0x51,0xe8,0xbf,0xe1,0x4c,0xdb,0x1,0xd6,0xc1,0xcf,0x87,0xc8, +0xbb,0xc1,0x81,0xba,0x5,0xb6,0x7a,0xb3,0x2d,0xad,0x66,0xa6, +0xe3,0xa3,0xf5,0xa4,0xb4,0xa7,0x3f,0xa9,0x9c,0xab,0xb0,0xb1, +0x8a,0xba,0x63,0xc9,0x8f,0xdc,0x83,0xeb,0x3a,0xf6,0xfc,0xfd, +0xd1,0x0,0xf5,0x1,0x75,0x3,0x37,0x4,0x88,0x4,0x17,0x4, +0x35,0x3,0x80,0x2,0xe1,0x1,0x1b,0x2,0x47,0x2,0xa5,0x1, +0xb2,0x1,0xe4,0x1,0x29,0x1,0xb3,0x0,0xf8,0x0,0x69,0x1, +0x56,0x2,0xbf,0x3,0xa8,0x4,0xfa,0x4,0x31,0x5,0x20,0x5, +0x59,0x5,0xdc,0x5,0x15,0x5,0xe,0x3,0x16,0x1,0x96,0xff, +0x2a,0xfe,0x5e,0xfc,0xd2,0xfa,0x89,0xf9,0x26,0xf8,0x16,0xf8, +0xab,0xf8,0x57,0xf8,0x2d,0xf9,0xfb,0xfa,0x3e,0xfb,0x97,0xfb, +0x1c,0xfd,0xca,0xfd,0xf4,0xfd,0x59,0xff,0x5f,0x1,0x28,0x2, +0xf2,0x1,0x31,0x3,0x90,0x5,0x8,0x6,0x98,0x5,0x78,0x6, +0xa7,0x6,0xc2,0x5,0x73,0x5,0x50,0x4,0xae,0x2,0x3e,0x2, +0x93,0x1,0xe8,0x0,0x9e,0x0,0x84,0xff,0x83,0xff,0x75,0x0, +0x3e,0x0,0xa9,0x0,0x70,0x1,0x63,0x1,0xfa,0x1,0xa0,0x1, +0x6d,0x0,0x66,0x1,0xc6,0x1,0x2f,0xff,0x11,0xfd,0xd7,0xfc, +0xb0,0xfc,0xe0,0xfb,0x4a,0xfb,0x81,0xfb,0xcd,0xfb,0x49,0xfc, +0xd1,0xfd,0xa5,0xff,0x19,0x1,0xe4,0x2,0x66,0x4,0x9f,0x4, +0xd2,0x4,0xa,0x5,0xb9,0x3,0x2d,0x2,0x63,0x1,0xf3,0xff, +0x2f,0xfe,0xf3,0xfc,0xf7,0xfb,0x37,0xfb,0x29,0xfb,0x56,0xfc, +0xf4,0xfd,0xdb,0xff,0x2e,0x2,0xb8,0x2,0x3a,0x3,0x15,0x6, +0xf3,0x6,0xba,0x5,0x6c,0x5,0xf,0x4,0xe4,0x2,0x67,0x2, +0x0,0x0,0x9f,0xfe,0xe,0xfe,0x92,0xfb,0x80,0xfa,0xd3,0xfa, +0xbe,0xfa,0xc1,0xfb,0x80,0xfc,0xc,0xfd,0x1c,0xff,0xd5,0x0, +0xa5,0x1,0xc0,0x2,0x35,0x4,0xf2,0x4,0x52,0x4,0x73,0x4, +0xdb,0x4,0xe3,0x2,0xd5,0x0,0x95,0xff,0xd2,0xfc,0x50,0xfa, +0xd3,0xf9,0xeb,0xf9,0xd0,0xf9,0x14,0xfa,0xe,0xfb,0xe,0xfc, +0x63,0xfd,0x96,0xff,0xe1,0x0,0xe6,0x0,0x49,0x1,0x39,0x2, +0xfe,0x2,0x30,0x3,0x9d,0x3,0x33,0x4,0xe,0x3,0x87,0x1, +0x79,0x1,0xa4,0x0,0xf4,0xfe,0xe3,0xfe,0xba,0xff,0xe2,0xff, +0x45,0x0,0x99,0x1,0x47,0x2,0xbf,0x1,0x68,0x1,0x68,0x1, +0x78,0x1,0x1d,0x1,0xb7,0xff,0x1b,0xff,0x34,0xff,0xd4,0xfd, +0xf1,0xfc,0x76,0xfd,0x7d,0xfd,0x34,0xfe,0x51,0xff,0x1c,0xff, +0xc3,0xff,0x40,0x1,0x22,0x1,0xf9,0x0,0x60,0x1,0x8a,0x0, +0xa4,0xff,0x42,0xff,0x3e,0xfe,0xaf,0xfd,0x88,0xfd,0xfd,0xfc, +0x83,0xfd,0xd0,0xfd,0xa8,0xfc,0x39,0xfd,0x4a,0xff,0x14,0x0, +0xc7,0x0,0xc9,0x1,0xda,0x1,0x11,0x2,0xbd,0x2,0x24,0x2, +0xcf,0x0,0xcf,0x0,0xf,0x1,0x18,0x0,0x8b,0xff,0x8a,0xff, +0x1c,0xff,0xf3,0xfe,0x8b,0xfe,0x5b,0xfe,0x83,0xff,0x91,0xff, +0x2d,0xfe,0x96,0xfd,0x2e,0xfd,0xec,0xfc,0x48,0xfd,0x4f,0xfd, +0x84,0xfd,0xaf,0xfd,0xb3,0xfc,0xf3,0xfb,0x7f,0xfc,0x3c,0xfd, +0x3e,0xfd,0xe8,0xfc,0x50,0xfd,0x6a,0xfe,0x35,0xff,0x82,0xff, +0x28,0xff,0xc4,0xfd,0xe9,0xfc,0x89,0xfd,0xf6,0xfc,0x7b,0xfb, +0x63,0xfc,0xf7,0xfc,0x59,0xfb,0xc1,0xfb,0x76,0xfd,0x99,0xfd, +0x2b,0xfe,0xeb,0xfe,0x4e,0xfe,0x3b,0xfe,0x4f,0xff,0xb2,0xff, +0x7,0xff,0x9f,0xfe,0xc2,0xfe,0x5c,0xff,0x2e,0x0,0xe7,0xfe, +0xb3,0xfc,0xd3,0xfc,0x37,0xfc,0xfa,0xf9,0x91,0xf9,0x4f,0xf9, +0xdb,0xf8,0xc1,0xf9,0xd8,0xf9,0x66,0xfa,0xaf,0xfc,0x41,0xfe, +0x9f,0xff,0x81,0x0,0x28,0x0,0xd3,0x0,0x6b,0x1,0x69,0x0, +0xb5,0xff,0x72,0xff,0xdc,0xfe,0x36,0xfe,0xb5,0xfd,0x5f,0xfd, +0xb9,0xfc,0x50,0xfc,0xa3,0xfc,0xdf,0xfc,0xe8,0xfc,0x80,0xfc, +0x37,0xfc,0x9a,0xfd,0xed,0xfe,0x8c,0xfe,0x36,0xfe,0x8b,0xfe, +0x27,0xff,0xc4,0xff,0x11,0xff,0xe9,0xfd,0x66,0xfe,0xe3,0xfe, +0x7f,0xfd,0xdd,0xfb,0x96,0xfa,0x75,0xf9,0xfe,0xf9,0x23,0xfb, +0x2,0xfb,0x2f,0xfb,0x39,0xfc,0x75,0xfd,0xaf,0xfe,0xee,0xfe, +0xc7,0xff,0x1b,0x2,0xa7,0x2,0x28,0x2,0x3,0x3,0xa8,0x2, +0x15,0x1,0xd0,0x0,0x1,0x0,0x2,0xfe,0xd0,0xfd,0x8a,0xfe, +0xaf,0xfd,0x26,0xfd,0xe0,0xfd,0x4a,0xfe,0x43,0xff,0xb8,0x0, +0x8c,0x1,0xfe,0x2,0xe6,0x3,0x2c,0x3,0x41,0x3,0x90,0x3, +0xcf,0x2,0x4f,0x2,0x85,0x1,0xd5,0x0,0xaf,0x1,0x1,0x2, +0xcb,0x0,0x30,0x0,0x83,0x0,0x68,0x0,0x32,0x0,0xde,0x0, +0x8d,0x1,0xd0,0x1,0xce,0x2,0x1e,0x4,0xce,0x4,0x55,0x5, +0xad,0x5,0x64,0x5,0xdd,0x4,0xd5,0x4,0x1f,0x5,0xda,0x4, +0x1c,0x4,0x4b,0x3,0xbf,0x2,0x40,0x3,0xb9,0x3,0x39,0x2, +0xd6,0xff,0x52,0xff,0x66,0x0,0x30,0x0,0x3d,0xff,0x21,0x0, +0x7c,0x1,0x2e,0x2,0x79,0x3,0x2e,0x5,0xef,0x6,0x33,0x8, +0xb9,0x8,0xad,0x9,0xca,0x9,0x59,0x8,0x7e,0x7,0xd5,0x6, +0xbd,0x5,0xaf,0x4,0xea,0x2,0xac,0x1,0xe4,0x1,0x6e,0x1, +0xd7,0xff,0x48,0xff,0x91,0x0,0xbf,0x0,0xec,0xfe,0x77,0xff, +0xf3,0x1,0xed,0x1,0xd5,0x0,0x52,0x1,0xc9,0x2,0xee,0x3, +0xe1,0x3,0x80,0x3,0x12,0x3,0x67,0x2,0x6c,0x2,0x7f,0x1, +0x67,0xff,0x36,0xff,0xad,0xff,0xcc,0xfe,0x5f,0xfe,0x97,0xfe, +0x6e,0xfe,0x7c,0xfe,0x45,0xff,0x63,0x0,0x65,0x1,0x4b,0x2, +0xed,0x2,0x67,0x3,0xf4,0x3,0x44,0x4,0x8b,0x4,0x13,0x4, +0xaa,0x2,0xaa,0x2,0xd2,0x2,0xae,0x0,0xee,0xfe,0x1d,0xfe, +0x19,0xfc,0x13,0xfa,0xb3,0xf8,0x61,0xf7,0xcb,0xf5,0xb2,0xf2, +0xa3,0xed,0x44,0xe6,0xe6,0xdc,0xfb,0xd3,0x93,0xcb,0x92,0xc2, +0x58,0xba,0x98,0xb3,0x74,0xaf,0x22,0xb1,0xc1,0xb8,0x91,0xc4, +0x4e,0xd5,0x65,0xe8,0x30,0xf9,0x64,0xc,0x89,0x25,0x67,0x39, +0x8e,0x41,0x5b,0x46,0xb4,0x4a,0xcd,0x47,0x53,0x3b,0xe5,0x2b, +0x52,0x1f,0x7c,0x10,0x66,0xfb,0xbc,0xe9,0x7,0xe2,0xa4,0xdd, +0xb3,0xd7,0x23,0xd5,0xfe,0xdb,0xd3,0xe7,0x5d,0xef,0xa8,0xf6, +0x1d,0x7,0x97,0x19,0x3d,0x21,0xac,0x20,0x29,0x1f,0x48,0x18, +0x6c,0x8,0x72,0xf8,0xe0,0xec,0xc6,0xde,0x80,0xce,0x4,0xc4, +0x15,0xbf,0x91,0xbb,0x70,0xba,0x3e,0xc0,0xf5,0xcf,0xe6,0xe2, +0x3a,0xf1,0x40,0x0,0x7e,0x12,0x88,0x1e,0x8d,0x23,0xb5,0x29, +0x92,0x30,0xe0,0x30,0xe0,0x29,0x8f,0x24,0xb2,0x24,0x8f,0x22, +0x32,0x1c,0x3,0x17,0x4,0x12,0x8d,0x9,0xac,0xfd,0x1d,0xf2, +0x2,0xec,0xdd,0xe8,0x62,0xe3,0x72,0xe0,0x56,0xe4,0xa0,0xe9, +0x76,0xef,0x87,0xfa,0x79,0x7,0x1a,0x11,0x9e,0x19,0x2,0x22, +0x32,0x27,0x90,0x28,0x31,0x27,0xca,0x23,0x62,0x1e,0xce,0x15, +0x18,0xc,0x44,0x7,0x73,0x8,0xe4,0x9,0xd2,0x9,0x3b,0xd, +0x85,0x15,0x94,0x1e,0x43,0x25,0xe3,0x28,0xe7,0x2a,0xe8,0x2b, +0x63,0x2a,0x7,0x27,0xfd,0x22,0xcb,0x1d,0x80,0x17,0x43,0xf, +0xc8,0x5,0xcd,0xfd,0x22,0xf7,0xc9,0xf1,0x11,0xef,0x19,0xef, +0x29,0xf2,0x88,0xf6,0x9d,0xfb,0x98,0x2,0x67,0x7,0x88,0x9, +0x14,0xe,0x8,0x12,0x88,0x11,0x46,0x10,0x20,0x10,0x9c,0xe, +0xbe,0x9,0x7c,0x4,0x44,0x2,0x95,0xfe,0x17,0xf7,0xd5,0xf0, +0x18,0xed,0x8b,0xeb,0x14,0xed,0xe6,0xee,0x1,0xf1,0x0,0xf6, +0x97,0xfa,0x5a,0xfd,0x42,0x3,0xab,0xb,0xd,0x11,0xa1,0x13, +0xaa,0x15,0x2b,0x16,0x78,0x13,0xf1,0xc,0x8f,0x5,0xcf,0xff, +0x47,0xf8,0x56,0xef,0x60,0xea,0xd6,0xe7,0x5a,0xe4,0xba,0xe3, +0x43,0xe8,0xbc,0xeb,0x20,0xeb,0x94,0xee,0x12,0xf8,0x64,0xfe, +0x34,0x2,0x6b,0x9,0x8,0xf,0xc2,0x10,0xca,0x13,0x79,0x15, +0xa8,0x10,0xb1,0x9,0xc9,0x4,0x4,0xff,0x49,0xf8,0xf9,0xf3, +0x13,0xf2,0x30,0xf2,0x72,0xf2,0xc0,0xef,0x3d,0xee,0x4e,0xf1, +0x67,0xf3,0xbb,0xf3,0x33,0xf8,0x89,0xfe,0x95,0x1,0xd0,0x5, +0x6c,0xb,0x40,0xa,0x74,0x7,0x4a,0xa,0x31,0xa,0x5f,0x6, +0x9d,0x5,0x76,0x2,0x4a,0xfd,0x4a,0xff,0x8f,0x2,0x8b,0xfb, +0x3e,0xf3,0xab,0xf8,0x82,0xfe,0xfe,0xf6,0x23,0xf7,0x9d,0x2, +0x91,0x0,0xb,0xfa,0x80,0xfe,0xbb,0xfb,0xa2,0xf0,0xa8,0xef, +0x40,0xf1,0x61,0xe9,0xcb,0xe2,0x5c,0xe5,0x68,0xea,0xa3,0xf0, +0xcc,0xf9,0x9a,0xff,0x5f,0x2,0x59,0x9,0x16,0x12,0xb6,0x17, +0xa5,0x1c,0x2e,0x23,0x17,0x27,0x8,0x23,0xf0,0x19,0x5a,0x11, +0xc1,0x8,0x17,0xfd,0x59,0xee,0xbd,0xe2,0x8d,0xda,0xa2,0xce, +0x5c,0xc9,0x7d,0xd3,0x93,0xda,0x10,0xdc,0x9e,0xec,0x6d,0x6, +0x1a,0x14,0x9e,0x19,0xd0,0x24,0xac,0x2e,0xd9,0x2d,0x89,0x2a, +0xe1,0x23,0x4,0x14,0x8e,0x9,0x24,0x6,0xeb,0xfa,0xb0,0xf1, +0xb3,0xf3,0xb0,0xf3,0x43,0xf1,0x60,0xf6,0xf7,0xfb,0x4c,0xf8, +0x4f,0xf3,0xad,0xf5,0x7c,0xf7,0x71,0xf5,0x83,0xf8,0x83,0xfe, +0x58,0x1,0xe9,0x3,0xc3,0x3,0x95,0xfe,0xdb,0xfa,0xcc,0xf8, +0x5,0xf5,0x3a,0xf3,0x26,0xf4,0x22,0xf5,0x13,0xf9,0x80,0xff, +0xab,0x3,0x10,0x9,0x26,0x10,0xc3,0xf,0x9b,0xa,0x25,0x9, +0x21,0x5,0x32,0xfc,0x28,0xf7,0x3d,0xf3,0x50,0xeb,0x2d,0xe8, +0x7b,0xec,0x0,0xf0,0xbc,0xf3,0x78,0xfb,0x31,0x2,0x2c,0x6, +0x97,0x9,0xb,0xa,0xee,0x7,0x7,0x6,0xa9,0x1,0x80,0xfb, +0x2b,0xf9,0xd7,0xf8,0x2c,0xf7,0x9e,0xf8,0x7f,0xfd,0x18,0x0, +0xab,0x1,0xa6,0x3,0xa1,0x0,0x69,0xfa,0xb6,0xf7,0x3b,0xf6, +0x60,0xf4,0x30,0xf5,0x34,0xf4,0x27,0xf0,0x52,0xf2,0x34,0xf9, +0x68,0xfb,0x13,0xfd,0x8d,0x2,0x7e,0x5,0x56,0x6,0xc4,0x8, +0xc1,0x6,0xd5,0xff,0xa2,0xfd,0x56,0xff,0xe5,0xfd,0x28,0xfe, +0x59,0x4,0xfa,0x8,0xd0,0x7,0x7e,0x4,0xdd,0x2,0x22,0x3, +0x42,0x1,0xf6,0xfd,0x7b,0xfc,0x62,0xfa,0x8b,0xfb,0x30,0x2, +0xd0,0x2,0x94,0xfc,0xec,0xf7,0xf2,0xf4,0x55,0xf5,0x7e,0xf5, +0x99,0xee,0xf2,0xe8,0x91,0xe7,0xb8,0xe4,0x88,0xe5,0x3c,0xea, +0x36,0xee,0x68,0xf7,0x93,0x4,0xaf,0xa,0x8a,0xb,0x81,0x11, +0x7b,0x19,0xe0,0x1a,0x61,0x1a,0x1b,0x17,0xc4,0x7,0xac,0xf9, +0x3f,0xfa,0xbc,0xfa,0x88,0xf3,0x69,0xef,0xa4,0xef,0xc5,0xed, +0x33,0xec,0x47,0xf0,0xe8,0xf2,0xcb,0xee,0x27,0xef,0x6b,0xf4, +0x7d,0xf4,0x8e,0xf6,0x7a,0xfd,0x92,0xff,0x78,0x2,0xea,0xa, +0x9e,0xd,0xa2,0xa,0xd9,0xc,0xbf,0x10,0x79,0xd,0x2,0x9, +0x3b,0xa,0xfb,0x9,0xd1,0x5,0x33,0x5,0x69,0x6,0x45,0x4, +0x60,0x1,0xfa,0xfe,0xab,0xfd,0xbc,0x0,0xcd,0x4,0x2d,0x4, +0xd2,0x1,0x36,0x1,0x26,0xff,0x6b,0xfb,0xbc,0xfa,0xe3,0xfb, +0x14,0xfa,0xac,0xf8,0xdc,0xfc,0xc6,0xff,0x53,0xf9,0xc0,0xf2, +0xc4,0xf6,0xc2,0xfb,0x91,0xf9,0x79,0xf9,0x52,0xfc,0x85,0xfb, +0x49,0xff,0x23,0x9,0x5c,0xa,0x69,0x4,0xfc,0x4,0xb9,0x8, +0x52,0x5,0x66,0xff,0xa,0xff,0xc7,0xfc,0xc2,0xf3,0x84,0xf1, +0x80,0xf6,0x7e,0xf3,0xa,0xef,0xb6,0xf3,0x9f,0xf6,0x1f,0xf5, +0x19,0xf7,0xb7,0xf6,0x72,0xf2,0x94,0xf5,0x27,0xfd,0xde,0xfe, +0xa0,0x0,0xf3,0x5,0xa3,0x5,0x3c,0x2,0x9e,0x4,0xc5,0x6, +0x79,0x2,0x3f,0xfe,0x99,0xfd,0x6d,0xfa,0xe6,0xf3,0xc1,0xef, +0x96,0xec,0x13,0xeb,0x43,0xf2,0x3b,0xfa,0xcd,0xf8,0xb,0xf8, +0x9b,0xff,0xe9,0x8,0x90,0x10,0x85,0x16,0x36,0x16,0x27,0x10, +0x3d,0xe,0x76,0xe,0x79,0x6,0x2e,0xff,0x11,0xfe,0xcd,0xf7, +0x1c,0xf1,0xeb,0xef,0x77,0xeb,0x4e,0xe7,0x9d,0xe9,0x83,0xee, +0xf1,0xf4,0x6a,0xfb,0x4,0x0,0xdf,0x1,0x96,0x2,0x4,0x8, +0xa6,0xb,0xbf,0x5,0x61,0xfe,0x8d,0xf9,0xed,0xf8,0x7a,0xfd, +0x73,0xfe,0xbc,0xfe,0xf6,0x3,0x28,0x6,0x42,0x5,0x7e,0x3, +0xd0,0xfe,0x51,0xfa,0x79,0xf6,0xbc,0xf7,0xd5,0xfe,0x7,0xfe, +0xfd,0xf8,0xb8,0xfd,0x45,0x6,0xd2,0xa,0xc4,0xa,0xa0,0x6, +0xee,0x2,0x54,0x3,0x42,0x9,0xe6,0xf,0x52,0xf,0x84,0xb, +0x1e,0xa,0x96,0x8,0xb8,0x6,0x21,0x7,0xf0,0x8,0x9b,0x7, +0x35,0x6,0xb8,0xb,0xd5,0xe,0x6c,0xa,0xd6,0x9,0xf5,0x9, +0x94,0x4,0xda,0x1,0xb6,0x0,0xfb,0xfc,0x71,0xfe,0xc0,0x7, +0xcb,0xd,0x63,0xa,0x58,0xa,0xcd,0xf,0xe5,0x8,0xaf,0xfe, +0x3a,0x2,0xdd,0x0,0x93,0xf5,0x66,0xf6,0x9c,0xfe,0xab,0x0, +0x5c,0x5,0x44,0xe,0xba,0x11,0xe9,0x14,0x1,0x1e,0xcc,0x21, +0xda,0x1d,0x1d,0x1f,0x32,0x20,0x95,0x15,0x4a,0xb,0x38,0x7, +0xb8,0xfb,0xa9,0xea,0x2f,0xe3,0xb0,0xe4,0xfa,0xe4,0x8e,0xe4, +0x75,0xea,0x4,0xf4,0xbf,0xfb,0xdd,0x6,0x88,0x15,0x8b,0x1d, +0x8e,0x1f,0xff,0x21,0x52,0x23,0x7a,0x23,0x53,0x23,0xd1,0x20, +0x59,0x1d,0xf4,0x17,0x6c,0xd,0x9f,0x1,0x59,0xf8,0xa5,0xef, +0xff,0xe5,0x6f,0xdd,0x8e,0xd8,0xdf,0xd5,0xd4,0xd5,0x1b,0xdd, +0xec,0xe6,0x55,0xec,0xbf,0xf2,0xf1,0xfb,0x38,0x2,0xca,0x8, +0xb6,0x11,0x8a,0x15,0x1c,0x15,0x2e,0x17,0x42,0x18,0xa3,0x16, +0xff,0x18,0x4a,0x1c,0x7,0x1a,0xdd,0x17,0xaf,0x17,0x3c,0x12, +0xa5,0x9,0xf0,0x4,0x55,0x0,0xbe,0xf5,0xf0,0xe9,0x8e,0xe3, +0xc8,0xdf,0xcc,0xdb,0x8e,0xdc,0x33,0xe4,0x5e,0xed,0xc5,0xf4, +0x85,0xfb,0xde,0xff,0x8f,0x0,0x11,0x2,0xe5,0x3,0x82,0x1, +0xa0,0xff,0xaa,0x1,0xde,0x1,0xf5,0x0,0xed,0x4,0xd0,0x9, +0x31,0x8,0x35,0x4,0xe,0x4,0x28,0x1,0x83,0xf9,0x9,0xf8, +0x2b,0xfb,0x39,0xf9,0x69,0xf6,0xf4,0xf7,0x89,0xfa,0xe8,0xfc, +0x78,0x0,0x45,0x4,0xd2,0x7,0x4b,0xe,0x1c,0x14,0x4,0x10, +0xb7,0x8,0xc5,0x6,0x9a,0x0,0x90,0xf5,0xd1,0xef,0xd,0xec, +0x5f,0xe7,0xf,0xe8,0xd6,0xef,0xf6,0xf8,0x63,0xfd,0xe8,0x1, +0x7e,0xa,0x81,0xd,0xf7,0xb,0xf4,0xd,0xb9,0xb,0xe,0x5, +0x80,0x3,0xb2,0x2,0x93,0xff,0x47,0xfd,0x54,0xfa,0x74,0xfa, +0x17,0xff,0x11,0x0,0xe7,0xfc,0xbe,0xfa,0xa7,0xf9,0x3b,0xf8, +0x9a,0xf5,0x98,0xf4,0xd6,0xf7,0xc8,0xfa,0xd0,0xfc,0x52,0x3, +0x94,0xb,0xe,0xf,0xe0,0xf,0x62,0x13,0x49,0x16,0xae,0x11, +0xb6,0x8,0x94,0x2,0xb9,0xfe,0x20,0xfa,0xd8,0xf4,0x1d,0xf1, +0xa2,0xef,0x66,0xec,0x1d,0xe7,0xd3,0xe4,0xe3,0xe6,0xf6,0xec, +0xf,0xf4,0xa8,0xf6,0x1b,0xf8,0x68,0xfb,0xa4,0xf8,0x5f,0xf0, +0xe3,0xed,0x31,0xf0,0x43,0xf0,0x98,0xf4,0xcb,0x0,0x74,0x7, +0x36,0x4,0x3e,0x2,0xbf,0x3,0x6,0x4,0xde,0x0,0xfe,0xf9, +0xae,0xf8,0x67,0x1,0xf6,0x7,0x9e,0x9,0x91,0xe,0x34,0x14, +0x2b,0x15,0xd3,0x10,0x1,0x8,0x1f,0xff,0x66,0xf6,0x5f,0xeb, +0xd9,0xe3,0xa3,0xe1,0x38,0xe0,0x71,0xe5,0x2a,0xf4,0xac,0x1, +0xc3,0xb,0x93,0x15,0xd9,0x18,0xd6,0x15,0x83,0x12,0x7,0xc, +0xe0,0x1,0xae,0xf8,0x56,0xf2,0x88,0xf1,0xae,0xf5,0x5a,0xfb, +0x65,0x2,0x19,0x7,0x4f,0x7,0x29,0x8,0x3d,0x8,0x3f,0x3, +0x48,0xfc,0x76,0xf5,0x5b,0xf0,0xda,0xee,0xa6,0xec,0xe0,0xe9, +0x5e,0xec,0x64,0xf1,0x8c,0xf6,0x2f,0xff,0x37,0x7,0xdc,0xa, +0xae,0xe,0x6f,0x12,0x76,0x11,0x5b,0xc,0xf5,0x5,0x9b,0xfe, +0xd1,0xf7,0xf7,0xf6,0x39,0xf9,0xb0,0xf6,0xc9,0xf8,0xc2,0x5, +0x7e,0xc,0xf6,0x9,0xf7,0xb,0xfb,0xd,0x27,0x8,0xff,0x2, +0xd4,0x4,0xfd,0x5,0xf,0x0,0xff,0xfb,0x88,0xfe,0xda,0xfd, +0xa5,0xfa,0x2b,0xfa,0x90,0xf5,0xc1,0xec,0x6a,0xe7,0xf6,0xe6, +0xa0,0xeb,0xf7,0xf4,0xc2,0xff,0x21,0xb,0xcb,0x18,0xfd,0x25, +0x11,0x2c,0x71,0x2d,0x1d,0x2d,0x79,0x24,0xb9,0x16,0x0,0x9, +0x98,0xf5,0x96,0xe4,0x52,0xdf,0x73,0xdc,0xf5,0xdb,0x6e,0xe4, +0xcf,0xee,0x77,0xf7,0x22,0x3,0x20,0x10,0x7e,0x16,0xff,0x14, +0x77,0x15,0x15,0x1b,0xa,0x1d,0x1e,0x1a,0x63,0x19,0x14,0x1a, +0x1f,0x17,0xd9,0x14,0x1e,0x17,0x3,0x15,0xac,0xc,0x28,0x6, +0x57,0xfd,0x31,0xf0,0x25,0xe7,0x9c,0xde,0x88,0xd3,0xd8,0xd0, +0x5a,0xd8,0x65,0xe3,0x80,0xf2,0xf,0x5,0x4a,0x17,0xfa,0x27, +0x32,0x32,0xfb,0x31,0xdb,0x2c,0xc1,0x24,0x38,0x15,0xd4,0x2, +0x23,0xf5,0x67,0xe9,0x4,0xdc,0xee,0xd3,0xe2,0xd6,0xd0,0xdb, +0xa8,0xde,0x26,0xe8,0x67,0xf2,0xe8,0xf6,0xfc,0xff,0x4e,0x8, +0x17,0x8,0x89,0xc,0x17,0x13,0x28,0x11,0xbb,0x10,0x5d,0x14, +0x7c,0x14,0xb0,0x13,0x9c,0x13,0x89,0x11,0x7,0xd,0x6a,0x6, +0x4,0xfc,0x7c,0xec,0x5b,0xe1,0x1e,0xe1,0xd0,0xdf,0xbd,0xdc, +0x98,0xe4,0x96,0xf1,0xef,0xfc,0xc8,0xc,0x43,0x1b,0x72,0x1f, +0xe2,0x1e,0x1a,0x1e,0x54,0x1b,0xa1,0x14,0x2c,0xa,0x5d,0x2, +0xc6,0xff,0xfb,0xfc,0xa5,0xf8,0xca,0xf2,0x98,0xed,0xd3,0xec, +0x27,0xe8,0x58,0xe0,0x3,0xe4,0xb,0xeb,0x4f,0xec,0x72,0xf3, +0xf3,0xfd,0xfe,0x4,0xba,0xd,0x43,0x14,0xfa,0x15,0x2d,0x15, +0x91,0xe,0x65,0x5,0x22,0xfb,0xc4,0xec,0x18,0xe0,0xb4,0xd7, +0xad,0xd4,0xc9,0xd8,0xfd,0xdb,0x2f,0xe1,0x99,0xf1,0xa1,0x2, +0xf4,0xc,0x8f,0x16,0xeb,0x1d,0x2b,0x1e,0x4d,0x18,0xa7,0x11, +0x59,0xc,0x69,0x4,0x62,0xfc,0x0,0xf9,0xb7,0xf7,0x67,0xf7, +0x2a,0xf6,0x37,0xf4,0xe1,0xf6,0xc2,0xf6,0x41,0xee,0xd5,0xe9, +0x4a,0xeb,0x91,0xeb,0x4b,0xee,0xf6,0xf2,0x6a,0xf8,0xd9,0x2, +0x71,0xb,0x36,0xd,0x2e,0xf,0x24,0x13,0x8d,0x16,0xe1,0x15, +0x4a,0xe,0x64,0x7,0x36,0x4,0x21,0xfe,0x92,0xf8,0x58,0xf6, +0x5b,0xf2,0x92,0xef,0xb1,0xef,0x4c,0xef,0x47,0xf2,0x3f,0xf9, +0x57,0xfe,0x67,0x0,0x8b,0x0,0x13,0x1,0xee,0x2,0x42,0x2, +0x9f,0x0,0x9d,0x2,0xb,0x6,0x2a,0x9,0xf,0xc,0x7a,0xd, +0xb,0xe,0x91,0xb,0xd0,0x3,0x37,0xfc,0xa9,0xf7,0x85,0xf3, +0xe7,0xf0,0xa,0xf3,0xa3,0xfa,0x5a,0x2,0x1a,0x4,0xcd,0x4, +0x1,0x8,0xe4,0x8,0xe8,0x9,0x4b,0xc,0xbb,0xa,0x98,0x9, +0xb2,0xc,0xa1,0xf,0x53,0x11,0x82,0xf,0x39,0x9,0x4d,0x3, +0x13,0xfd,0x1e,0xf6,0x54,0xf3,0x99,0xf4,0xb1,0xf7,0xba,0xfd, +0x89,0x6,0x48,0xc,0x1f,0xc,0x73,0xf,0x92,0x17,0xaa,0x18, +0xcc,0x14,0xc8,0x11,0x59,0xa,0x17,0x0,0xef,0xf7,0xb8,0xf0, +0x3b,0xe9,0x60,0xe1,0x1b,0xde,0x33,0xe2,0x7b,0xe8,0x87,0xf1, +0xea,0xfd,0xf8,0x7,0x17,0xf,0x20,0x14,0x15,0x16,0x19,0x14, +0x36,0xf,0x3c,0xd,0x21,0xb,0xbb,0x4,0x13,0x4,0xc5,0x7, +0x31,0x8,0x32,0xc,0x3d,0x10,0x52,0xd,0x46,0xa,0x97,0x7, +0x44,0x5,0xd0,0x5,0xbc,0x4,0x43,0x4,0xb,0x4,0x17,0x0, +0x5d,0x0,0x83,0x1,0xe9,0xfc,0x76,0xfd,0xd,0x0,0x53,0xfd, +0x4f,0x0,0xd3,0x6,0x41,0x7,0x5f,0x6,0xe4,0x5,0x94,0x3, +0x1c,0xff,0xa0,0xf9,0xd1,0xf9,0x56,0xfd,0xbc,0xfb,0x49,0xf9, +0x5a,0xf9,0x4,0xfa,0x28,0xfd,0x81,0xfe,0x1c,0xfc,0x17,0xfe, +0x26,0x1,0x17,0xfd,0xc6,0xf8,0x37,0xf8,0xc7,0xf4,0x9e,0xef, +0x6a,0xed,0x1c,0xee,0xf6,0xf1,0x47,0xf4,0xa1,0xf3,0xb,0xf9, +0xb8,0x0,0x98,0x3,0xc7,0xa,0x56,0x13,0x3f,0x13,0xdf,0x10, +0xe2,0xd,0x42,0x9,0x23,0x6,0x39,0xfe,0xb6,0xf4,0x5,0xf1, +0xf4,0xec,0xab,0xec,0x53,0xf3,0xb9,0xf8,0xb3,0x0,0x33,0x7, +0xe7,0x4,0x29,0x6,0x6c,0x8,0xd9,0x3,0xfe,0x2,0xe7,0x1, +0xae,0xfc,0x96,0xfd,0xc2,0xfd,0x5b,0xfa,0x9f,0xfe,0x88,0x4, +0xd2,0x2,0xaa,0xfc,0xea,0xf7,0xb5,0xf8,0x3c,0xf8,0x86,0xf0, +0xc2,0xe9,0x3f,0xe6,0x86,0xe3,0x73,0xe7,0x85,0xf1,0x1f,0xfc, +0xce,0x8,0x73,0x15,0xf6,0x1a,0xb2,0x1a,0xd2,0x19,0xb4,0x14, +0xc5,0x4,0x84,0xf0,0x91,0xe6,0xad,0xe6,0xf9,0xe4,0x7a,0xe3, +0x4c,0xec,0x1f,0xf9,0x96,0xfc,0xb2,0xf8,0x3c,0xf6,0xf3,0xf4, +0x20,0xf2,0x3d,0xef,0xf6,0xef,0xe,0xf9,0x60,0x5,0x4a,0xa, +0x70,0xf,0xc,0x1b,0x2e,0x1e,0x2d,0x18,0x45,0x15,0xb2,0x10, +0x10,0x9,0x3a,0x3,0x8,0xf9,0x6c,0xed,0xf1,0xe8,0x90,0xe4, +0x78,0xdc,0xe7,0xd9,0x52,0xe1,0xaa,0xeb,0x74,0xf0,0xc9,0xf2, +0x25,0xf9,0x53,0xfd,0x75,0xfa,0x43,0xf9,0x1b,0xfd,0x5c,0x0, +0x6f,0x5,0xef,0xd,0x3a,0x13,0xa7,0x17,0xb8,0x1d,0xef,0x1d, +0x5d,0x1a,0xe5,0x14,0xf5,0x6,0x1a,0xf9,0x10,0xf3,0x87,0xed, +0x48,0xea,0x68,0xec,0x1,0xf2,0xc6,0xff,0xb9,0xd,0x0,0x11, +0x70,0x14,0x24,0x17,0x21,0x9,0x40,0xf4,0x69,0xe9,0xe8,0xe3, +0xf5,0xde,0x6e,0xde,0x80,0xe5,0xd0,0xf3,0x38,0xff,0x64,0x3, +0xa,0xc,0xdd,0x15,0xa2,0x12,0x71,0x9,0x28,0x6,0x6a,0x7, +0x70,0x6,0xca,0x0,0x2a,0x3,0x7b,0x10,0x32,0x15,0x96,0x11, +0x56,0x12,0xf8,0x11,0xfd,0xd,0xc9,0x5,0x7,0xf8,0x4,0xf4, +0xcd,0xfb,0x3c,0xfe,0x0,0xfc,0x15,0xfc,0x54,0xfb,0x61,0xf7, +0x94,0xef,0x8b,0xe9,0x6b,0xea,0x49,0xea,0x42,0xe9,0xd7,0xf1, +0x57,0xfd,0xd1,0x1,0x4f,0x5,0xd5,0x8,0x76,0x9,0xb,0xb, +0xf0,0x6,0x3f,0xfc,0xae,0xfa,0x6c,0xfd,0x84,0xfc,0x94,0x3, +0x22,0xc,0x33,0xf,0xf3,0x17,0x1f,0x1d,0x25,0x18,0x94,0x14, +0x51,0xe,0x30,0x6,0xa7,0x1,0x74,0xf8,0x44,0xf4,0x97,0xfb, +0xe7,0xfe,0x89,0x1,0x60,0x7,0xca,0x8,0xa3,0xc,0x4f,0xe, +0xbf,0x6,0x8c,0x5,0xa3,0x7,0x64,0x1,0xde,0xff,0xab,0x5, +0x67,0x8,0x50,0xa,0x47,0xc,0x6c,0xb,0xb6,0x9,0xc,0x7, +0xd7,0x3,0xe0,0x3,0x36,0x3,0x57,0xf9,0xb4,0xef,0xea,0xf4, +0x2c,0xfc,0x19,0xf9,0xd5,0xf8,0x16,0xff,0x1f,0x2,0x9a,0xff, +0xb3,0xf9,0x4a,0xf7,0xde,0xf6,0x44,0xf1,0x3e,0xf1,0x26,0xf8, +0x17,0xfa,0xaf,0xff,0xb7,0xb,0x31,0x15,0x99,0x1e,0x51,0x20, +0x7c,0x17,0x5a,0x14,0xc0,0x12,0x47,0x6,0xb,0xf6,0xa2,0xed, +0x15,0xf1,0xd3,0xf4,0x26,0xf3,0x7d,0xf7,0x4d,0xfb,0x7e,0xf9, +0xda,0xfc,0x93,0xf9,0xae,0xec,0x93,0xe9,0x56,0xe9,0x8,0xe4, +0x93,0xe3,0x34,0xe6,0xfc,0xea,0x3d,0xf0,0xd4,0xee,0x8e,0xf2, +0xf0,0x1,0xa8,0xd,0x53,0x11,0xd,0x13,0xa0,0x15,0xf9,0x1a, +0x9e,0x1c,0xfb,0x12,0x84,0x5,0x89,0xfd,0xb9,0xf8,0x3e,0xf6, +0x2a,0xf9,0xd2,0xfd,0xcf,0x2,0x7f,0x7,0xa3,0x4,0x16,0xff, +0x75,0xfb,0xd2,0xee,0x2a,0xe1,0xa4,0xe0,0x65,0xe3,0x92,0xe7, +0x72,0xf0,0xa4,0xf6,0xac,0x1,0xcc,0x10,0x98,0x10,0x19,0x9, +0xc1,0x8,0xad,0x5,0x5c,0xff,0x15,0xfc,0xd9,0xf5,0xcf,0xef, +0x9,0xf1,0xa8,0xf2,0xcd,0xf1,0xbd,0xf3,0xce,0xf8,0x49,0x0, +0x1d,0x7,0xc9,0xa,0xca,0x11,0x88,0x17,0xe3,0x10,0xa9,0x9, +0x10,0xa,0x1,0x7,0xbd,0xff,0x5d,0xf7,0xf0,0xf2,0x5f,0xfd, +0x78,0x6,0xda,0xfe,0xdf,0xfc,0xc,0x4,0x68,0xfe,0xfc,0xf3, +0x8e,0xf4,0x86,0xf7,0x37,0xf6,0xcd,0xf7,0xad,0xff,0xfe,0x8, +0x7b,0x10,0x2f,0x13,0xf1,0xf,0x3a,0xe,0x5f,0xc,0xfb,0x2, +0x76,0xff,0xce,0x7,0x2b,0x8,0x89,0xfc,0x84,0xf4,0xba,0xf2, +0xe9,0xec,0x2a,0xe2,0x3c,0xe1,0x75,0xeb,0xcf,0xee,0x65,0xed, +0x48,0xf4,0xa9,0xfb,0xc3,0xff,0xef,0x6,0x16,0x9,0x24,0x4, +0x67,0x5,0x76,0x9,0xe3,0x7,0xba,0xc,0xd5,0x18,0x1d,0x1a, +0x9d,0x12,0xd6,0xe,0xec,0xa,0xae,0x2,0x10,0xfb,0x88,0xf9, +0x38,0xfe,0x97,0x3,0xef,0x8,0xfe,0xe,0xed,0x13,0xc3,0x1c, +0xa8,0x23,0xda,0x1b,0xb0,0x13,0x29,0x15,0x76,0xf,0x9c,0x5, +0xed,0x4,0xf9,0x0,0xb5,0xf5,0xad,0xf3,0xcf,0xf9,0x3b,0xfb, +0xda,0xfb,0xf3,0x1,0x97,0x4,0xf1,0xfd,0x7c,0xf6,0x8b,0xf4, +0xd5,0xf3,0xdb,0xf1,0xb2,0xf4,0x16,0xfd,0x26,0x3,0xee,0x8, +0x26,0x13,0x2e,0x18,0x8,0x14,0xc8,0xf,0xf2,0xb,0x2,0x4, +0xb0,0xf9,0x36,0xef,0x86,0xe9,0x84,0xee,0x1c,0xf8,0xc3,0xfc, +0x5e,0xfe,0xb6,0xff,0xb6,0xfe,0xf,0xfe,0x1d,0xfe,0xf2,0xfa, +0xd1,0xf9,0xd8,0xfd,0xab,0xff,0xee,0xff,0x6,0x3,0x79,0x4, +0xd,0x4,0xf1,0x3,0x31,0xfe,0x8f,0xf5,0x68,0xf4,0xad,0xf4, +0xb2,0xef,0xf9,0xee,0x4d,0xf2,0x4f,0xf3,0xdd,0xf9,0x43,0x5, +0xa1,0xb,0xcd,0x10,0xca,0x16,0x48,0x17,0x15,0xf,0x9,0xfe, +0xf5,0xef,0x6f,0xef,0x95,0xf1,0xb7,0xf0,0x4c,0xf4,0xb0,0xf9, +0x67,0xfd,0x49,0x2,0xc4,0x7,0x29,0xe,0xeb,0x11,0xed,0xa, +0xb3,0x1,0x58,0x2,0xd0,0x1,0xab,0xfa,0xe7,0xfb,0x19,0x4, +0x1e,0x7,0x16,0x7,0xfd,0x7,0xa0,0xd,0x28,0x13,0x22,0xb, +0x11,0x1,0xcb,0xfd,0xfd,0xf4,0xa,0xf3,0x4a,0xfa,0xed,0xf3, +0xd4,0xef,0x45,0xf9,0xd0,0xf9,0x8f,0xf9,0xb3,0x3,0x8a,0x8, +0x5b,0x6,0x38,0x3,0x96,0x0,0x60,0xfd,0xa,0xf4,0xe6,0xec, +0x59,0xef,0xfc,0xf0,0xc6,0xeb,0x44,0xe5,0x8,0xeb,0xa6,0xfa, +0xd9,0xfd,0xa8,0xfb,0xe0,0x1,0x48,0x3,0xaa,0x3,0x3e,0xa, +0xc3,0xc,0xd,0xe,0x30,0xc,0xdf,0x4,0xe7,0x5,0xe6,0x6, +0x47,0xfd,0x99,0xf7,0xbe,0xf8,0x91,0xf7,0x7b,0xf0,0x15,0xea, +0xad,0xf0,0x86,0xf8,0x5f,0xf4,0xe4,0xf4,0x99,0xff,0x57,0x8, +0x41,0xd,0x16,0xf,0x29,0x11,0xad,0x15,0xca,0x14,0x7c,0xe, +0x73,0xa,0x9b,0x5,0x5f,0xfa,0x78,0xf2,0xcc,0xf6,0x91,0xf7, +0xd,0xec,0xb9,0xe7,0x7b,0xef,0x57,0xf4,0xf3,0xf2,0x25,0xf2, +0x11,0xf9,0xd1,0x1,0xc2,0x0,0x17,0xff,0x4e,0x3,0xb8,0x4, +0x33,0x8,0xaa,0xf,0x6c,0x10,0xb4,0xd,0x13,0xb,0xc5,0x2, +0xac,0xfa,0x5b,0xf9,0x6e,0xf6,0xd7,0xed,0x5a,0xe9,0xef,0xec, +0x6a,0xf1,0x6f,0xf5,0xa5,0xfd,0xfc,0x8,0xf3,0xf,0xfe,0xd, +0xb8,0xd,0xeb,0x17,0xb2,0x1c,0xe7,0x14,0xe0,0x13,0x63,0x18, +0x91,0xe,0x24,0xff,0x10,0xfb,0xa8,0xf9,0xe3,0xef,0xa6,0xe0, +0x2d,0xd6,0x71,0xd9,0xc5,0xdf,0x39,0xde,0x1,0xe5,0xdd,0xf7, +0xdf,0x3,0x28,0x9,0x8d,0xe,0xc6,0x12,0x8b,0x16,0x37,0x13, +0x50,0xc,0x23,0xe,0x31,0xc,0x21,0x0,0x3d,0xf8,0x73,0xf4, +0x24,0xf2,0xe6,0xf0,0x7f,0xec,0xf7,0xed,0xf1,0xf2,0xf7,0xed, +0xd6,0xec,0x53,0xf7,0x9b,0xfc,0xd,0xfd,0x9c,0x2,0x7b,0x9, +0xb,0xe,0xb,0x10,0xfa,0xd,0xc7,0xb,0xc0,0xb,0x7a,0x5, +0x9a,0xfc,0x6b,0x0,0xeb,0x4,0x70,0xfd,0xf4,0xfc,0x9e,0x2, +0xe4,0xfd,0x9c,0xf9,0x43,0xf8,0x99,0xf3,0x8c,0xf7,0xd4,0xfe, +0xe3,0xfd,0xf2,0x0,0x48,0x9,0x65,0xc,0x58,0xc,0x18,0xc, +0xb0,0xc,0xfe,0xa,0xa1,0x0,0xf5,0xf6,0xc4,0xf6,0x85,0xf6, +0x40,0xf3,0xae,0xf3,0xab,0xf4,0x5d,0xf0,0x40,0xee,0xa5,0xf9, +0xe1,0x6,0xd7,0x5,0xce,0x8,0x97,0x18,0x4c,0x18,0xef,0x9, +0x1f,0x9,0xcd,0xe,0x91,0x10,0x1e,0x10,0x40,0x7,0x99,0x0, +0x0,0x3,0xca,0xfc,0x80,0xf3,0x9c,0xf3,0xd8,0xee,0x84,0xe5, +0xfb,0xe6,0x6e,0xef,0x7c,0xf5,0x79,0xfa,0x28,0x4,0xe3,0xf, +0x70,0x14,0xa5,0x13,0x7c,0x12,0xf5,0xd,0x26,0x7,0xde,0x1, +0x0,0xfe,0x7,0xfc,0x9c,0xfd,0x9d,0x2,0xed,0x7,0xcf,0xb, +0xf,0xd,0x99,0x9,0xe2,0x6,0x0,0x6,0xe1,0xfe,0xf8,0xf7, +0x4f,0xfa,0x97,0xff,0xc5,0x2,0xd0,0x3,0x81,0x8,0x99,0x13, +0xd7,0x13,0xff,0x5,0xf8,0xfe,0x2f,0xfe,0xa5,0xf8,0x57,0xf5, +0x30,0xf5,0x31,0xf0,0xbc,0xee,0x4c,0xfa,0xa6,0x3,0x12,0x2, +0x9b,0x5,0xb6,0xc,0xc0,0xc,0x4a,0xf,0xc5,0x11,0xa9,0xc, +0x61,0x9,0xa6,0x7,0x34,0x7,0x34,0xb,0x49,0xa,0x67,0x9, +0x90,0xd,0x31,0xb,0xe0,0x9,0x7,0xf,0xcc,0xc,0xbc,0x3, +0x83,0xf8,0x6b,0xed,0xd8,0xe8,0xb4,0xe5,0x6a,0xe4,0xbc,0xee, +0x4b,0xff,0x20,0xb,0x8c,0xd,0x3,0xc,0xbd,0xd,0x43,0x8, +0x47,0xfa,0x97,0xf3,0x12,0xef,0xf8,0xe6,0x8c,0xe9,0x91,0xf4, +0x78,0xf9,0x27,0xfa,0xdb,0xfa,0xf6,0xf7,0x4b,0xf2,0x5c,0xeb, +0x5,0xe4,0xec,0xe7,0xbf,0xf8,0x3d,0x4,0xd1,0xa,0xed,0x18, +0xd4,0x26,0xe9,0x2c,0x3b,0x29,0x8d,0x19,0xa3,0xb,0x18,0x8, +0xa6,0x3,0x8e,0xfb,0x9a,0xf8,0x59,0xfd,0xc2,0x1,0xaa,0x1, +0x8a,0x3,0x4d,0x0,0x99,0xf2,0x25,0xef,0x54,0xf4,0x4,0xec, +0x82,0xe5,0x96,0xf1,0xac,0xfc,0xe3,0xfe,0xa4,0x4,0xaf,0x8, +0xb5,0x4,0x8c,0x8,0x78,0x13,0x55,0xf,0xd3,0x5,0xb0,0x9, +0x51,0x9,0x3f,0xfe,0x80,0xfc,0x63,0x0,0xd9,0xfb,0xfe,0xf7, +0xa8,0xfc,0x16,0xfe,0x63,0xf7,0x3,0xf7,0x9b,0xfe,0xc3,0xfc, +0x99,0xf2,0xad,0xef,0x79,0xf3,0x9e,0xf8,0xd3,0x0,0x0,0x7, +0xa2,0x4,0x40,0x2,0x88,0x6,0xbd,0x5,0xbb,0xfb,0xd2,0xf5, +0x95,0xf5,0xe4,0xf1,0x94,0xed,0x79,0xef,0xfd,0xf3,0x7b,0xf6, +0xea,0xfa,0xf6,0x0,0xbf,0x1,0x7c,0x2,0x16,0x8,0x60,0x9, +0xb2,0x6,0xb1,0x6,0xa9,0x4,0x4e,0x1,0x18,0x2,0x1e,0x3, +0x4e,0x4,0x85,0x9,0x9b,0xb,0x6e,0x5,0xc0,0x0,0xe9,0x1, +0x5,0x0,0x92,0xf8,0x2e,0xef,0x6f,0xe9,0x12,0xef,0x2f,0xf6, +0xe7,0xf6,0xfe,0x1,0xad,0xf,0x44,0xb,0xd8,0xa,0x8c,0x17, +0x54,0x16,0x69,0xb,0xd,0x7,0x6d,0x1,0xa0,0xfd,0x4f,0x2, +0xb7,0x2,0xf1,0xfb,0x65,0xfc,0xfe,0x5,0xe0,0x9,0x7,0x4, +0x26,0x0,0xc9,0xfd,0x72,0xf7,0x49,0xf7,0x32,0xf9,0x5,0xee, +0x40,0xe8,0xa7,0xf5,0x68,0xfb,0x39,0xf4,0x3e,0xf6,0xe1,0xfb, +0xc5,0xf9,0x46,0xf7,0x99,0xf7,0xb5,0xfa,0x60,0xfe,0x44,0xfe, +0x59,0x0,0x8f,0x3,0x8b,0xff,0xb8,0xfc,0x53,0xff,0x9e,0xfb, +0xbc,0xf3,0x85,0xf5,0x9f,0xfe,0xfb,0x2,0xa2,0x5,0x97,0xb, +0x74,0xb,0x3e,0x7,0xd9,0x4,0x29,0xf9,0xe,0xee,0x7f,0xf4, +0x14,0xf9,0x4e,0xf7,0x44,0x2,0xe1,0xa,0x9f,0x4,0x8d,0x4, +0xaa,0xb,0xd8,0x7,0x3b,0xfa,0xf3,0xed,0x87,0xec,0x1,0xf5, +0xa7,0xf4,0x27,0xeb,0xa,0xf1,0xae,0xff,0xa5,0xfd,0xb6,0xf6, +0xfc,0xfb,0xe8,0x1,0x93,0x0,0x5f,0xfc,0xf3,0xf9,0xf8,0xfc, +0xee,0xff,0xf6,0xfd,0xa1,0xfb,0x6b,0xf8,0x78,0xf3,0xa,0xf5, +0xdc,0xff,0x17,0x9,0xec,0x4,0x33,0xf6,0x72,0xed,0x2,0xf4, +0x45,0xfb,0xc1,0xf0,0x37,0xe2,0xa0,0xe6,0x6c,0xf4,0xe7,0xfe, +0x58,0xb,0xa0,0x14,0xf7,0x12,0xeb,0xc,0x84,0x9,0x29,0x8, +0x4c,0x2,0x9a,0xf8,0xeb,0xf5,0xb,0xfc,0xcf,0x5,0x91,0xb, +0x6c,0x7,0x93,0x7,0xd8,0xf,0x4c,0x6,0x70,0xec,0x8b,0xe0, +0x7b,0xe3,0xe8,0xe4,0xa5,0xe7,0x2,0xf2,0x14,0xfe,0x8,0xa, +0x24,0x17,0xfc,0x1b,0xf1,0x17,0xb1,0x13,0xb5,0xa,0x53,0x0, +0xf5,0xfd,0x5,0xf8,0x2c,0xee,0x5,0xf1,0x8b,0xfa,0xab,0xfc, +0xf7,0xf7,0xa,0xf4,0x87,0xf6,0x41,0xf7,0x63,0xef,0xb1,0xea, +0xc4,0xee,0x4b,0xf2,0x95,0xf2,0xee,0xf6,0xb3,0xff,0xf3,0x1, +0xb7,0xff,0x59,0x6,0x5b,0xe,0x27,0xc,0x3,0xa,0x93,0xf, +0x55,0x15,0x96,0x15,0xd4,0x13,0x59,0x16,0x7,0x1c,0x16,0x1d, +0xfb,0x12,0xb6,0x0,0x30,0xf5,0x13,0xf6,0x8b,0xf8,0x9,0xf8, +0xfa,0xf9,0xc,0x4,0xe3,0x12,0xc3,0x18,0xea,0x17,0xa2,0x1a, +0xbe,0x16,0x8f,0xc,0x9d,0x7,0x73,0xfb,0x5c,0xea,0xe0,0xeb, +0x6b,0xf6,0xb5,0xf9,0x41,0xfd,0x95,0x1,0xb2,0x5,0xb0,0xd, +0x7a,0x13,0xcc,0x15,0x56,0x14,0x6d,0xb,0xc,0x9,0x33,0xf, +0x21,0xb,0xbd,0x5,0x81,0xa,0xf7,0x8,0xfe,0x0,0xa,0xfe, +0xd0,0xfc,0x6e,0x1,0x47,0xc,0x66,0xe,0xc4,0x9,0xe,0xb, +0x9b,0x11,0x7,0x18,0x4f,0x18,0xba,0x11,0x18,0xf,0xfa,0x10, +0xda,0xb,0xe6,0x3,0x63,0x4,0x8b,0x8,0xe7,0x7,0x13,0x1, +0x66,0xf8,0xf,0xf9,0x71,0x1,0xde,0x2,0xb0,0x0,0xc0,0x0, +0x75,0xfa,0xce,0xf2,0x47,0xf0,0x92,0xeb,0x64,0xeb,0x9,0xf5, +0x6a,0xfb,0xc2,0xfd,0x68,0x2,0x7a,0x5,0x68,0x7,0x7e,0xb, +0xb9,0xe,0x43,0xb,0xff,0x2,0x5c,0x3,0x79,0x9,0x78,0x4, +0x2f,0xfe,0xfd,0x2,0xe7,0x6,0xd9,0x7,0x3f,0x6,0xb5,0xf9, +0x70,0xf2,0xba,0xfc,0x7a,0x2,0x86,0xfd,0x1d,0xfe,0xf2,0x3, +0xd0,0xa,0x9a,0x13,0xfd,0x15,0xe3,0xe,0x33,0x8,0x7f,0x4, +0xda,0xfb,0x3f,0xee,0x9c,0xe4,0x36,0xdf,0xe,0xdc,0xa4,0xe3, +0x6f,0xf1,0x9f,0xf4,0xbb,0xf6,0xfc,0x6,0x9a,0x12,0xea,0xa, +0xec,0x1,0x6b,0xff,0x97,0xf7,0x8,0xee,0x59,0xe9,0xea,0xe1, +0xa2,0xe0,0x1a,0xf5,0xde,0xc,0xe8,0x15,0xd4,0x1e,0xd,0x29, +0xc0,0x22,0x7f,0x12,0x24,0x7,0xfe,0xfa,0x51,0xea,0x35,0xdf, +0x7c,0xdf,0x96,0xe6,0x81,0xf0,0x52,0x1,0x32,0x16,0x97,0x1d, +0xdb,0x16,0xc2,0x13,0x6f,0xf,0x4d,0xfe,0x6e,0xee,0x88,0xe7, +0x9b,0xe0,0x8f,0xdd,0x6c,0xe5,0x7e,0xf3,0x6,0x0,0xba,0x4, +0x8d,0x8,0x2e,0x16,0xe0,0x1d,0x20,0xf,0x7d,0xfa,0x6a,0xf1, +0x78,0xf1,0x11,0xf7,0x73,0xfd,0x8f,0x0,0x5b,0x5,0xe2,0x9, +0x7f,0x7,0x19,0x3,0x8d,0xff,0x8d,0xfa,0xa5,0xf4,0x99,0xeb, +0xa5,0xe6,0xb3,0xef,0xa5,0xfa,0xe9,0xff,0xce,0x5,0x90,0x7, +0x9e,0x7,0x50,0xb,0x2b,0x5,0x45,0xf7,0x2f,0xf3,0x6e,0xf8, +0xc7,0x0,0xa8,0x5,0xc3,0x2,0x63,0x2,0x5b,0x6,0xea,0x5, +0x5f,0x5,0x31,0x8,0x8,0x8,0x28,0x3,0x7f,0xfe,0x3a,0xfe, +0x71,0x0,0x1b,0x4,0x93,0x9,0xed,0xa,0xde,0xa,0x4b,0x11, +0xaa,0x15,0x0,0x13,0x10,0x13,0x1f,0x15,0x60,0xe,0x30,0xfe, +0xf1,0xef,0x85,0xe9,0x69,0xe4,0xa3,0xdf,0xf8,0xdf,0x4,0xe5, +0x23,0xef,0x8d,0xfa,0x78,0x3,0x89,0xf,0xb9,0x17,0xfb,0x12, +0xe8,0xf,0x3e,0x11,0x0,0x9,0x40,0x0,0x96,0x0,0xa9,0xfd, +0x59,0xf7,0x21,0xfa,0xea,0x1,0x1a,0x5,0xf6,0x3,0xb2,0xfc, +0xdd,0xed,0x6b,0xe2,0x63,0xe2,0x87,0xe6,0xeb,0xe7,0xdc,0xea, +0x17,0xf5,0x23,0xff,0x92,0xfe,0xbf,0xff,0x23,0xf,0x3b,0x1a, +0x4f,0x16,0x4f,0x14,0x41,0x16,0x48,0x10,0x6c,0x4,0xf1,0xf7, +0x97,0xee,0x32,0xec,0x96,0xeb,0x12,0xe8,0x75,0xe4,0x20,0xe6, +0x35,0xef,0xee,0xf2,0x28,0xec,0x73,0xef,0x5d,0xfa,0x10,0xf3, +0x48,0xe5,0xe7,0xe9,0xe,0xf5,0x58,0xf4,0x74,0xee,0x27,0xf2, +0x2e,0xfd,0x20,0x1,0x3e,0xfc,0x0,0xf6,0xd6,0xf1,0x69,0xf0, +0x70,0xea,0x65,0xde,0xa0,0xdc,0x19,0xe9,0xca,0xf7,0x8c,0x6, +0xd7,0x12,0xd7,0x13,0xf4,0xc,0xd4,0x8,0x43,0x7,0x60,0x0, +0xbd,0xf5,0xbb,0xf2,0x6f,0xfa,0x81,0x3,0x75,0x5,0x5f,0x1, +0x5f,0xfd,0xbc,0xfb,0xd6,0xf9,0xf,0xf2,0x78,0xe5,0xde,0xe2, +0xb7,0xec,0x8d,0xf2,0x95,0xf4,0x11,0xfc,0x9,0x3,0x76,0x7, +0x5d,0xb,0x2b,0x9,0xc,0x5,0x29,0x7,0x45,0xa,0x1f,0x9, +0x86,0x7,0x91,0x9,0xd4,0xc,0x1e,0xb,0xa2,0x4,0x79,0xfd, +0x72,0xf5,0x40,0xef,0x36,0xf0,0x49,0xf3,0xa3,0xf0,0xf,0xee, +0x64,0xf4,0x8e,0xfe,0xc1,0x2,0x9b,0x1,0x5b,0x2,0xc4,0x4, +0xea,0xfd,0x3d,0xed,0x82,0xe5,0xd3,0xea,0x3d,0xeb,0x20,0xe8, +0xc2,0xef,0xa,0xf9,0xf7,0xfa,0xfa,0xfe,0x14,0x3,0xff,0xfc, +0xb8,0xf1,0x91,0xed,0xf3,0xf7,0xe2,0x7,0xde,0xb,0x64,0xc, +0xe,0x17,0x6d,0x19,0xa5,0xb,0x65,0x3,0x98,0x3,0xf4,0x0, +0x2b,0xff,0xd9,0xff,0x3f,0x1,0x8d,0x9,0x71,0x12,0xa8,0xe, +0x4d,0x7,0xeb,0x6,0xb5,0x4,0x34,0x1,0xcb,0x6,0x7b,0xf, +0x58,0x13,0x1a,0x18,0xb2,0x20,0x66,0x22,0xbf,0x15,0x44,0xb, +0xfa,0xe,0x68,0xd,0xfe,0x1,0xee,0x2,0xbb,0xe,0x70,0x15, +0x8b,0x16,0xb0,0x15,0x4f,0x15,0xd3,0x13,0xcb,0xb,0xe2,0xfd, +0xde,0xef,0x9c,0xec,0xeb,0xf4,0x9a,0xf7,0x49,0xf6,0x9b,0xff, +0xec,0x9,0xe6,0xc,0x5a,0x11,0x8e,0x17,0x6c,0x18,0x96,0x13, +0xe8,0xf,0x5a,0xd,0xce,0x3,0x2d,0xfc,0x7b,0x0,0x75,0x4, +0x78,0x5,0x4d,0xa,0xee,0xa,0x22,0x7,0x20,0x8,0x41,0xa, +0x4c,0x7,0xe0,0x1,0x40,0x1,0xea,0x6,0xc2,0x9,0x21,0x6, +0xfd,0x2,0xd4,0x3,0xb7,0x4,0x27,0xff,0xcc,0xf5,0x68,0xf6, +0x25,0x2,0xf9,0x9,0x6d,0xd,0xb3,0x1b,0x9c,0x2d,0x49,0x2a, +0x47,0x19,0xb2,0x15,0x41,0x17,0xb0,0x8,0x76,0xf7,0xdd,0xf9, +0x8a,0x6,0x60,0x7,0x9e,0x2,0x55,0xb,0xb5,0x12,0xf,0x3, +0x98,0xf0,0xfb,0xf0,0xbb,0xf2,0x8b,0xe6,0x9e,0xdc,0x62,0xe5, +0x67,0xf6,0x71,0xfe,0x1b,0x2,0x97,0xb,0x10,0x16,0x58,0x1d, +0x5d,0x21,0x36,0x21,0xa4,0x21,0x47,0x1d,0xe1,0xd,0xb3,0x8, +0x85,0x10,0xbc,0x6,0xe8,0xf4,0xa1,0xf9,0xb1,0x3,0x2b,0xfe, +0x8e,0xf6,0xd1,0xf5,0x9d,0xf6,0x6a,0xf4,0x77,0xee,0xe,0xec, +0xda,0xf1,0x63,0xf4,0x2a,0xec,0xfe,0xec,0x83,0x2,0xcc,0xa, +0x67,0xf6,0x5f,0xf2,0xfa,0xa,0x92,0x11,0x5e,0x0,0x55,0xfd, +0xcd,0xa,0xe,0xc,0xf7,0xfb,0x20,0xf5,0x52,0x1,0x9b,0x3, +0x70,0xf5,0x56,0xfa,0x9d,0x13,0x40,0x1a,0xa5,0xc,0x2,0xa, +0x18,0x13,0x99,0xe,0x35,0xf6,0xbe,0xe4,0x4a,0xf4,0x94,0xa, +0x20,0xfe,0xc0,0xf1,0x5d,0x17,0xa1,0x3b,0xcb,0x22,0x4c,0xfd, +0x1b,0xfe,0x2c,0xfe,0xb5,0xdf,0x67,0xcd,0xb6,0xe0,0xf1,0xf6, +0xa4,0x0,0x2a,0x12,0x2b,0x25,0x22,0x2a,0x69,0x27,0xb7,0x1a, +0xf5,0x6,0x71,0xfd,0x5,0xf4,0xf9,0xe0,0x3d,0xdc,0xb5,0xeb, +0xab,0xf3,0x83,0xe7,0xd8,0xdf,0x3b,0xf2,0x7b,0x2,0x7e,0xf6, +0x26,0xef,0x30,0xff,0x37,0x3,0xc2,0xed,0x9e,0xdd,0x2e,0xe6, +0xed,0xf4,0x24,0xf5,0x76,0xf5,0x9d,0x6,0x83,0x18,0x66,0x19, +0x9c,0xc,0xa,0xfd,0xdb,0xe9,0xa3,0xcb,0xea,0xb5,0xde,0xbc, +0x45,0xca,0x15,0xd4,0x4,0xee,0x63,0xd,0x7f,0x22,0x8b,0x36, +0xbf,0x39,0x34,0x19,0xe7,0xf4,0x4e,0xe9,0x57,0xe3,0xa4,0xd5, +0x2d,0xd1,0xed,0xe1,0x9b,0x1,0x45,0x1f,0x5a,0x2c,0x98,0x2b, +0x42,0x20,0x9a,0x5,0x71,0xe7,0xa4,0xd5,0x8e,0xcd,0x17,0xce, +0xc8,0xda,0xc2,0xed,0xc3,0x0,0xb1,0x11,0xe9,0x1e,0xc,0x25, +0xe9,0x1c,0x65,0x7,0x4e,0xf1,0x28,0xe3,0x20,0xdb,0x81,0xd5, +0x5,0xd7,0x9d,0xe5,0x17,0xf6,0x4d,0xfe,0x4b,0x9,0xc,0x16, +0x5e,0xe,0xe4,0xf5,0xdc,0xe7,0x36,0xe3,0xcf,0xd3,0x8e,0xc4, +0xcb,0xce,0xe0,0xe8,0x1e,0xfb,0xc8,0x9,0xd5,0x1c,0xb7,0x29, +0xe8,0x2b,0xd9,0x21,0x55,0x5,0xf9,0xe7,0xea,0xdc,0xc5,0xd2, +0x9e,0xc3,0x54,0xc9,0x88,0xe0,0xe9,0xeb,0x26,0xee,0x44,0xfd, +0x9a,0x10,0xc5,0xe,0xe1,0x1,0x9c,0x1,0x62,0xff,0xf3,0xef, +0x81,0xe9,0xf6,0xeb,0x74,0xe7,0xad,0xe7,0x84,0xf3,0x62,0xff, +0xa8,0xa,0x10,0x17,0xc1,0x1d,0x76,0x1c,0x3c,0x17,0x51,0xe, +0xa0,0xfd,0x83,0xee,0xfe,0xee,0x5,0xf2,0x78,0xec,0xa1,0xf2, +0xd4,0x7,0x2f,0x15,0x5b,0x19,0x4b,0x1c,0x77,0x15,0x34,0x4, +0xa8,0xf5,0xe6,0xec,0xc2,0xe3,0x41,0xdd,0xd1,0xe3,0x12,0xf5, +0x10,0xff,0x74,0xfb,0xc2,0xfc,0x18,0xc,0x9e,0x14,0x82,0xd, +0x7a,0x8,0x23,0x7,0xbd,0x0,0x12,0xfe,0xb8,0x2,0x5a,0x8, +0x49,0xf,0x1c,0x14,0x50,0x14,0xf7,0x14,0x6d,0x13,0x96,0xd, +0xc7,0x9,0x4,0x5,0xbe,0xf6,0xd,0xe7,0x5d,0xe6,0x12,0xef, +0x19,0xf2,0x71,0xf8,0xcf,0x6,0x0,0xc,0xa9,0xa,0xdb,0xb, +0xd6,0x2,0x19,0xf3,0xba,0xee,0xb4,0xf2,0x93,0xf8,0x34,0x3, +0x0,0x11,0x15,0x1e,0xb1,0x28,0xe2,0x2d,0x40,0x2b,0xce,0x24, +0xfa,0x1a,0xce,0x6,0xcb,0xf6,0x16,0xfb,0xd4,0xfb,0xfd,0xf0, +0x9b,0xf7,0x71,0x9,0x5,0x10,0xb3,0x14,0x9c,0x1a,0x5b,0x19, +0x8a,0x11,0xb,0x2,0x71,0xf2,0xcc,0xed,0x32,0xee,0xcc,0xef, +0xdc,0xf6,0x65,0x3,0xf0,0x12,0xf1,0x1a,0xe9,0x14,0x69,0xe, +0xe6,0xb,0xe4,0xfe,0xdf,0xeb,0x1f,0xe8,0x6c,0xee,0xc5,0xeb, +0xa9,0xee,0x5d,0xa,0xbb,0x26,0x89,0x29,0x8b,0x1f,0x99,0x1b, +0x67,0x1a,0x1e,0xd,0x97,0xf4,0x2,0xe7,0xb4,0xe9,0xc7,0xeb, +0x11,0xed,0x7d,0xf5,0xa8,0xfd,0x5d,0x4,0x22,0x11,0x2e,0x1a, +0xee,0x12,0x29,0x7,0xb1,0x5,0xa,0xc,0x94,0x13,0xa3,0x13, +0xfd,0xc,0x41,0x14,0x7d,0x24,0xbf,0x20,0x1b,0x15,0x5,0x18, +0x93,0x16,0x90,0x8,0x3d,0x4,0x47,0xa,0x19,0x7,0xc7,0xf9, +0xab,0xf1,0x79,0xf4,0xcb,0xf9,0x4d,0xfa,0x34,0xfb,0x99,0x6, +0xb8,0x13,0x79,0x11,0x81,0xc,0xa9,0x15,0x84,0x19,0xdd,0xa, +0x1d,0x1,0x5c,0x9,0x14,0x13,0x3f,0x15,0x49,0x16,0xc2,0x15, +0x50,0x11,0x66,0x8,0x5b,0xf8,0x29,0xef,0xed,0xf4,0xd7,0xf2, +0x2b,0xea,0x54,0xf3,0x21,0x2,0x50,0x5,0xfd,0x6,0x23,0xf, +0x7f,0x1a,0xce,0x1e,0x1a,0x17,0xe8,0xa,0x9f,0x0,0x9f,0xfd, +0x28,0xfd,0x38,0xf7,0xe9,0xf6,0x9a,0xfb,0x73,0xff,0xec,0xd, +0xae,0x17,0x81,0x12,0x37,0x16,0x96,0x18,0x76,0xb,0xce,0x2, +0xc5,0xfe,0xb7,0xf9,0x9b,0xf6,0x97,0xf1,0x70,0xf6,0xf2,0x4, +0xe2,0x9,0xae,0xb,0xce,0x10,0xe0,0xc,0xd6,0xfe,0xb2,0xf4, +0x0,0xf3,0x6c,0xe7,0x94,0xd7,0xe1,0xe0,0xb1,0xee,0xd6,0xe9, +0xcf,0xef,0xa2,0x8,0x54,0x19,0xda,0x15,0x89,0xc,0x47,0xf, +0x83,0xf,0x8e,0x3,0x59,0xfc,0x1f,0xf4,0x4d,0xec,0x4d,0xef, +0x3b,0xe7,0x5b,0xde,0x8e,0xef,0x23,0x0,0x3d,0x0,0x1e,0x4, +0x5c,0x15,0x88,0x26,0x52,0x1d,0xd3,0x4,0x2c,0xfd,0xe5,0xf9, +0xe3,0xeb,0xe3,0xdb,0x45,0xd1,0x5b,0xd6,0x14,0xe1,0x8b,0xe5, +0xe9,0xf5,0xb2,0x8,0xa8,0x2,0xa8,0xf3,0x90,0xef,0x4c,0xea, +0x22,0xd9,0x7a,0xce,0xd4,0xdc,0x85,0xf0,0x1,0xf7,0xc3,0xfc, +0x59,0x6,0xee,0xd,0x81,0x14,0xc2,0x14,0xed,0x6,0xed,0xf3, +0xb7,0xed,0xe2,0xef,0x83,0xec,0x3d,0xef,0x4f,0xfc,0xa4,0x2, +0x48,0x1,0x7b,0xfa,0xd,0xee,0xaa,0xeb,0x96,0xf6,0x94,0xfc, +0x23,0xf6,0xb7,0xf2,0x26,0xfe,0xdd,0x9,0x85,0x11,0xad,0x1e, +0x4b,0x19,0x94,0xf6,0xb4,0xdd,0xfc,0xdb,0x6,0xdb,0xc3,0xd8, +0xff,0xdc,0xda,0xe4,0xa7,0xef,0xc,0xfb,0x6d,0xfe,0xf,0x2, +0xa,0x13,0x9f,0x1d,0x7e,0x10,0xf1,0xff,0xdd,0xfd,0x55,0x5, +0x3a,0x9,0x45,0x8,0x26,0xe,0xfd,0xc,0xca,0xf9,0x16,0xf3, +0x66,0xf9,0x35,0xef,0xf0,0xdf,0x24,0xdc,0xf4,0xdd,0xe8,0xe3, +0xb8,0xea,0x66,0xef,0xd6,0xf6,0x4a,0x5,0x8b,0x12,0x27,0xb, +0x29,0xf9,0x64,0xf8,0x46,0xfe,0x23,0xfc,0xa5,0xfb,0x95,0xfa, +0x33,0xf4,0x21,0xf2,0x2f,0xfc,0xd1,0xd,0x7,0x17,0x45,0x11, +0xc2,0x4,0x1f,0xf8,0x40,0xef,0x7,0xe8,0xa5,0xe3,0x9d,0xeb, +0x70,0xf8,0x11,0xff,0xfc,0x5,0x94,0xf,0xe6,0x16,0x87,0x16, +0x7d,0xa,0x21,0xf9,0x99,0xec,0x25,0xed,0x50,0xf8,0xa1,0x0, +0x40,0x6,0x1b,0xc,0x7d,0xd,0x56,0xc,0xf,0x2,0xae,0xef, +0xc0,0xe6,0xe9,0xe1,0xfd,0xe0,0x51,0xef,0xf8,0xf6,0x20,0xf4, +0xa0,0x1,0xc1,0x15,0x1a,0x19,0x83,0xa,0xdb,0xf4,0x73,0xe9, +0xb7,0xe7,0xc,0xe3,0x6f,0xe2,0x75,0xee,0x8,0xfc,0x73,0xff, +0x3,0x2,0xcd,0xa,0x39,0xa,0xe3,0x1,0x60,0x0,0x86,0xf9, +0x9,0xeb,0x8f,0xe9,0x8a,0xf5,0xf1,0xfd,0x72,0xfd,0x43,0x0, +0x8c,0x3,0x0,0xfa,0x8c,0xfe,0x5,0x1a,0xa0,0x1e,0x22,0x10, +0xbc,0x12,0xe,0x17,0x2e,0x12,0xb6,0x13,0x2,0x17,0x49,0x12, +0x6a,0x10,0x8d,0x1e,0x72,0x2b,0xba,0x23,0x14,0x19,0x15,0xf, +0x24,0xf8,0xe,0xe8,0xe8,0xe4,0x39,0xdc,0xf1,0xda,0x1e,0xed, +0x32,0x1,0x9c,0xf,0x75,0x1f,0xaf,0x2c,0x97,0x29,0x9d,0x14, +0xdc,0xfb,0xba,0xec,0x83,0xe7,0x45,0xe1,0x7b,0xdd,0xca,0xeb, +0x91,0x0,0xd2,0x6,0x63,0x4,0xd8,0x6,0x3c,0xe,0xfb,0xa, +0x31,0xf6,0xc4,0xe9,0x1b,0xf6,0xb6,0x3,0xc8,0x2,0x60,0x8, +0x4d,0x21,0xf9,0x30,0x6e,0x27,0xa,0x1f,0x86,0x1e,0x62,0x10, +0xe8,0xf5,0x12,0xe7,0xe4,0xf0,0x7,0x0,0xa0,0xff,0x66,0xfb, +0x68,0xfe,0x10,0x6,0x6d,0xc,0x69,0x6,0x5b,0x2,0x66,0xe, +0x9d,0xe,0xb5,0xfc,0x24,0xfa,0x9a,0xd,0x9c,0x19,0xd0,0xb, +0xa6,0xfd,0xd0,0x7,0xf9,0x16,0x40,0x17,0x20,0x8,0x28,0xf4, +0x27,0xec,0x68,0xe8,0xb1,0xe3,0xa8,0xea,0x54,0xef,0x8e,0xec, +0x1c,0xf8,0x3b,0x10,0x8a,0x24,0xe7,0x2b,0xc3,0x2d,0x18,0x33, +0xcd,0x28,0xde,0x12,0xb0,0xa,0x89,0x6,0x77,0x7,0xd2,0xf, +0x9a,0x8,0x8d,0x6,0x1f,0x1b,0x52,0x23,0x23,0x19,0xa7,0x9, +0x32,0xf1,0xcb,0xdc,0x42,0xd8,0xbd,0xde,0xe9,0xec,0x53,0xff, +0xfd,0x12,0xe,0x24,0x77,0x2d,0xcb,0x2b,0xfa,0x1e,0xd7,0xf, +0x90,0x0,0xaf,0xef,0x88,0xe7,0x65,0xe6,0xed,0xe7,0x56,0xf2, +0xf8,0xf9,0xcb,0xfd,0x2,0xe,0xe4,0x17,0x47,0xd,0x24,0x8, +0x6f,0xb,0x13,0x0,0x28,0xf0,0xb2,0xf5,0x79,0x1,0x69,0xf6, +0x7f,0xe8,0x99,0xf2,0x15,0x0,0x8c,0x5,0xf5,0x11,0x5f,0x15, +0xa1,0xfe,0xe8,0xe6,0xdf,0xe1,0xb3,0xe6,0xca,0xe8,0xe4,0xe4, +0xcf,0xef,0x61,0x13,0x3b,0x28,0x65,0x22,0xda,0x2b,0x1a,0x3b, +0xf3,0x1f,0x1b,0xf4,0x21,0xec,0xfd,0xf3,0xe0,0xef,0x79,0xf9, +0x92,0x13,0xd,0x23,0xa,0x2d,0xe,0x30,0x15,0x1c,0xe6,0x3, +0xae,0xf4,0xea,0xe1,0x57,0xce,0x45,0xca,0x42,0xde,0x9f,0xf4, +0xf5,0xf9,0xb4,0xc,0x54,0x2c,0xb3,0x26,0x37,0xc,0x60,0xa, +0x5b,0x9,0xf4,0xef,0xd5,0xdd,0x3,0xe7,0xdc,0xee,0xfa,0xe6, +0x9c,0xe6,0x91,0xf5,0xf8,0x4,0x17,0x5,0x16,0xf4,0x3b,0xec, +0x65,0xf2,0xb8,0xe9,0x4d,0xd9,0x5a,0xdc,0xb5,0xf1,0x70,0x8, +0xd3,0x10,0xa0,0x11,0x73,0x15,0xad,0xe,0x5e,0xfc,0xb6,0xe9, +0x55,0xd9,0x16,0xd5,0x3,0xdb,0xa1,0xde,0xeb,0xe1,0x96,0xea, +0x70,0xff,0xdc,0x13,0x79,0xd,0x94,0xfe,0x9e,0xff,0xad,0xfc, +0x5f,0xef,0x92,0xec,0x46,0xf5,0xaf,0xf8,0xd7,0xf6,0x68,0x0, +0xa1,0xe,0xf,0xe,0x31,0x5,0x87,0xfc,0x7d,0xf4,0x42,0xf1, +0x91,0xec,0xb9,0xe7,0xbe,0xed,0xd7,0xf3,0xf5,0xf0,0x7d,0xf0, +0xd5,0xf7,0x73,0x0,0xbe,0x3,0xab,0x4,0xb3,0x7,0xc,0x6, +0x3a,0xff,0xbc,0xf9,0x8f,0xf0,0xdf,0xe4,0x8e,0xe2,0xfe,0xe4, +0x25,0xe1,0x4b,0xe2,0x19,0xf6,0xf0,0xb,0xd,0x10,0x18,0xd, +0x61,0xd,0x82,0x6,0x9d,0xf5,0x29,0xe6,0x9e,0xe1,0xd0,0xe4, +0x71,0xe5,0xa,0xec,0x6b,0x3,0x76,0x13,0xcb,0xa,0x7e,0x1, +0xcf,0x5,0x41,0x3,0xbb,0xeb,0xe,0xd6,0x52,0xdd,0x67,0xef, +0x62,0xf3,0x9e,0xf5,0xf9,0xf8,0x2d,0xf5,0x79,0xf6,0xb9,0xf8, +0x6,0xf0,0xd4,0xeb,0x57,0xf2,0xf8,0xf9,0x68,0x3,0xbc,0xe, +0xcc,0x18,0x1,0x1f,0xf8,0x1d,0x5d,0x18,0x93,0xf,0xa0,0x2, +0xea,0xf7,0xf4,0xf3,0x2d,0xf4,0x9a,0xf5,0x51,0xf6,0xa1,0xfa, +0x31,0xa,0xd2,0x19,0xb0,0x16,0xc3,0x10,0x5b,0x1c,0xef,0x22, +0xf4,0x19,0xb5,0x17,0xe4,0x17,0x2,0xd,0x10,0x1,0xd8,0xf6, +0xd9,0xe9,0xa4,0xe0,0x9b,0xe2,0xfb,0xea,0x11,0xf0,0x30,0xf7, +0x75,0x2,0xfa,0x3,0xc6,0x1,0xf8,0x7,0x56,0xc,0x4d,0xe, +0x69,0x16,0x5d,0x1f,0x0,0x24,0x8,0x22,0xc6,0x1a,0xb4,0x19, +0x39,0x1d,0x61,0x14,0xfc,0x5,0x54,0x6,0x6c,0xb,0x5e,0x9, +0x3d,0xa,0xb6,0x7,0xf7,0xfc,0x0,0xfb,0x27,0xfe,0x95,0xfc, +0x80,0xfc,0xd6,0xfc,0x5c,0x1,0xe1,0xe,0x38,0x19,0x60,0x17, +0x74,0xb,0xd2,0x4,0x3e,0xa,0xc8,0x4,0xa0,0xf7,0x19,0xfd, +0xaf,0x5,0x36,0x1,0xce,0x2,0x7f,0xb,0x1a,0x5,0xd8,0xf6, +0xc,0xfc,0x5d,0x6,0x4,0xfd,0x66,0xf8,0xf9,0x3,0xb0,0xb, +0x20,0x18,0xf5,0x28,0x5b,0x24,0x52,0x13,0xd7,0xb,0xe5,0x5, +0xb6,0xfb,0x9,0xfb,0x30,0x0,0x68,0xfe,0x45,0x6,0xa7,0x16, +0x33,0x12,0xe8,0x6,0x31,0x6,0xaf,0xfc,0x5e,0xf1,0xa1,0xf2, +0x39,0xf2,0xb9,0xee,0xfa,0xf4,0xa0,0x5,0x1a,0x11,0xef,0xa, +0x1a,0xff,0x2f,0xfb,0x45,0xfc,0x1c,0xf3,0x23,0xd9,0x8e,0xd1, +0x5a,0xea,0x9c,0xf2,0x94,0xe5,0x35,0xf0,0xa3,0x8,0xae,0xc, +0x2c,0x8,0xc9,0x10,0x9e,0x18,0x15,0x13,0xd8,0xf,0x4f,0xd, +0xa5,0x3,0x9f,0x6,0x8,0x12,0x67,0xd,0x67,0x1,0x54,0xfb, +0x73,0xf2,0x75,0xdd,0xd9,0xc5,0xf3,0xbe,0xdf,0xc6,0xbe,0xd0, +0xf7,0xd9,0xe6,0xe3,0x12,0xf7,0xf1,0xc,0xc4,0xc,0xc,0xfe, +0xf4,0xf9,0x90,0xfd,0x21,0xf9,0xb9,0xef,0x35,0xf7,0xcf,0xc, +0x2c,0x16,0x5c,0x18,0xf9,0x1d,0x67,0x19,0xb8,0x9,0x75,0xf2, +0xa2,0xd7,0x2e,0xce,0x87,0xd0,0x32,0xc7,0xe2,0xc6,0x28,0xe4, +0x8,0xfc,0x9,0xfa,0xd9,0xff,0xfe,0x14,0x95,0x18,0x5a,0xd, +0xa9,0xe,0xd7,0x15,0xc4,0xd,0xae,0xfd,0x92,0xfc,0x18,0x9, +0xf1,0xc,0x98,0x3,0xb5,0xfe,0xac,0x6,0xff,0x9,0xe2,0xfb, +0xe7,0xee,0x5f,0xf1,0x9d,0xf8,0x9a,0xfa,0xaa,0xf9,0x8a,0x4, +0xa1,0x1a,0x1,0x1f,0x7b,0x11,0x76,0xe,0xed,0x13,0x60,0x12, +0xe8,0xe,0x5e,0x12,0x7d,0x16,0x1d,0x15,0x6b,0x18,0xa9,0x1b, +0x51,0x10,0x26,0x8,0xe9,0xa,0xb2,0x4,0xad,0xfd,0xd1,0x2, +0x11,0x2,0x6e,0xf4,0x7f,0xef,0xec,0xfa,0x53,0xfe,0x1c,0xf4, +0xbd,0xf7,0x2,0xb,0xfa,0x15,0x6a,0x11,0xe3,0xb,0x9c,0x12, +0x44,0x11,0x1c,0xfb,0x96,0xf1,0xde,0xf7,0x5d,0xf1,0xcf,0xea, +0x7b,0xf6,0x5b,0x9,0xe0,0x12,0x61,0xf,0x4e,0x13,0xb6,0x1f, +0x84,0x19,0x99,0xd,0x66,0x13,0xd4,0x16,0x53,0xe,0x73,0xf, +0x37,0x1f,0x24,0x29,0xaf,0x1f,0xac,0x11,0x21,0xf,0x7d,0xa, +0xd8,0xf8,0xbc,0xea,0x44,0xe8,0xfa,0xe8,0x82,0xea,0x2b,0xe7, +0xe0,0xe1,0x85,0xec,0xdb,0xf8,0xf2,0xf4,0xca,0xfa,0x79,0xd, +0x31,0xf,0x7b,0x4,0x37,0xff,0x60,0x1,0x78,0x8,0x6b,0x9, +0x92,0x2,0x56,0x1,0x55,0x3,0x8f,0x0,0x4b,0x3,0x4c,0xe, +0x35,0xf,0x23,0x2,0xc5,0xf1,0x54,0xe0,0x5,0xdb,0x19,0xe4, +0xc8,0xe1,0x1,0xdd,0xb,0xe4,0xf1,0xdc,0x21,0xd7,0x2b,0xef, +0xfd,0xfa,0xab,0xea,0xfe,0xf0,0x7e,0xc,0x76,0x9,0xe0,0xf7, +0xba,0xa,0x6c,0x20,0x1b,0xa,0x97,0xf2,0x1d,0xf6,0x8,0xf0, +0x7b,0xda,0xce,0xd2,0x2e,0xe1,0x8a,0xee,0x2e,0xeb,0xe,0xf0, +0xc6,0x3,0x1b,0x8,0x53,0xfe,0x30,0xf7,0x6,0xf7,0xfb,0x2, +0xf6,0xc,0x7e,0xd,0x46,0x12,0xa6,0x11,0xcd,0x4,0x54,0xf8, +0x96,0xe8,0x1a,0xd6,0xaf,0xca,0x8a,0xc5,0x8e,0xcb,0x3a,0xdb, +0x1b,0xe7,0xfe,0xf1,0xab,0xfb,0xdc,0xf4,0x6b,0xe5,0x41,0xe4, +0xb3,0xeb,0x5c,0xea,0x55,0xe9,0x89,0xf8,0x42,0x13,0xed,0x29, +0x97,0x30,0x8e,0x2d,0xfb,0x2b,0x6c,0x1e,0x77,0x4,0xfa,0xf9, +0x31,0xfb,0x1,0xf8,0xed,0xfa,0x25,0xfe,0xcf,0xf9,0x4,0xfb, +0x63,0xf4,0x1e,0xde,0x8c,0xd5,0xaf,0xd6,0x73,0xcd,0x38,0xd4, +0xad,0xf6,0xcd,0x12,0xa5,0x21,0x29,0x36,0x8e,0x41,0x52,0x35, +0xf6,0x29,0x8e,0x23,0xf,0xd,0x55,0xf7,0x3c,0xf7,0xe0,0xfb, +0xee,0xfb,0xde,0x0,0xa5,0x8,0x3a,0x8,0xa4,0x2,0x94,0x8, +0x23,0x11,0xe1,0x2,0x92,0xee,0xd5,0xf1,0x2a,0xfc,0xf4,0xf5, +0x95,0xf3,0xfe,0xd,0x2f,0x28,0x55,0x21,0x85,0x16,0xd9,0x1c, +0xe,0x18,0xa1,0x5,0x80,0xfd,0x67,0xfc,0xc6,0xf5,0xb4,0xf0, +0x58,0xfd,0xa,0x18,0xa8,0x27,0x17,0x24,0x43,0x1b,0xb3,0x12, +0xd9,0xa,0x8,0x9,0xfc,0x3,0x1,0xf3,0xb,0xf1,0x55,0x8, +0x1f,0x13,0x88,0xf,0x87,0x18,0x9,0x1e,0x48,0x14,0xaf,0x6, +0x6a,0xf4,0xd7,0xe7,0x23,0xe8,0x7e,0xea,0x7a,0xf1,0x8b,0xfc, +0xd3,0x9,0x89,0x1e,0xe6,0x28,0x80,0x23,0x3f,0x20,0x74,0x17, +0x29,0x8,0xd5,0x2,0x9b,0xfb,0xab,0xec,0x98,0xe6,0x1e,0xe3, +0xb9,0xde,0xcc,0xec,0x2f,0xff,0xa5,0xfa,0x50,0xf5,0x93,0xfe, +0x59,0xfd,0x61,0xf1,0x55,0xed,0xf,0xf4,0x92,0x1,0x8b,0x5, +0xdc,0x2,0x17,0x11,0x28,0x1e,0x2b,0x1a,0xbc,0x1a,0x33,0x1a, +0x4a,0x10,0x83,0xd,0xd2,0x9,0x25,0xfe,0xed,0xf6,0xde,0xee, +0x58,0xe8,0x94,0xf2,0x57,0xfa,0xa5,0xea,0x2f,0xde,0x82,0xea, +0x8c,0xf6,0x3e,0xf1,0x2c,0xec,0x23,0xf4,0x11,0x1,0xe2,0x6, +0xf0,0xb,0x1f,0x1a,0xf,0x1c,0x51,0x9,0xa2,0x0,0x57,0x0, +0xd8,0xee,0x31,0xdc,0x95,0xdc,0xee,0xe1,0x5,0xe1,0x39,0xe6, +0xf9,0xfa,0x79,0xf,0x4a,0x13,0x6a,0xd,0x43,0x4,0xdd,0xf3, +0x21,0xe4,0xe2,0xe0,0xe3,0xe2,0xd4,0xe4,0xe,0xf4,0x0,0x9, +0xef,0xd,0x41,0x12,0x25,0x1f,0x57,0x18,0xf,0x0,0xe3,0xf0, +0xa6,0xe6,0x78,0xd8,0x89,0xd2,0x78,0xe1,0xc8,0xf8,0x5d,0x0, +0x22,0x7,0xc,0x23,0x8d,0x34,0xf7,0x26,0x5c,0x18,0x36,0x14, +0x8c,0xb,0x5d,0xff,0x43,0xf8,0x21,0xf5,0xe8,0xf0,0x6c,0xee, +0xe3,0xf0,0xe2,0xee,0x16,0xeb,0x3a,0xf4,0x18,0xfb,0x54,0xf2, +0xe4,0xf5,0x8a,0x5,0xd0,0xfa,0x76,0xe9,0x1b,0xfb,0x6e,0xf, +0x91,0x9,0xdd,0xc,0x28,0x23,0x32,0x30,0xc4,0x2e,0x40,0x23, +0xa5,0xf,0xd2,0xfc,0x40,0xef,0x57,0xe7,0x8c,0xdd,0x9e,0xd0, +0x1b,0xd5,0x68,0xe4,0x1b,0xe6,0x30,0xeb,0xf1,0xf9,0x2c,0xfa, +0x52,0xf8,0x77,0x1,0x2f,0xfe,0xad,0xf1,0xc9,0xf2,0xe5,0xf6, +0x4,0xf3,0x17,0xf8,0x61,0x9,0x65,0x13,0x73,0x14,0x53,0x1a, +0xe3,0x21,0xab,0x1a,0xcc,0x2,0x29,0xf1,0xce,0xf0,0x84,0xeb, +0xd3,0xda,0x28,0xd5,0xcf,0xe3,0xcf,0xfa,0x2c,0x3,0xc6,0xfd, +0x59,0xb,0x5c,0x1d,0xde,0xa,0x52,0xf4,0x63,0xff,0xc7,0x7, +0x21,0xf6,0x6a,0xec,0xbc,0xf8,0xc1,0xfa,0x0,0xe7,0xbe,0xdb, +0xf,0xe4,0x12,0xeb,0xe1,0xe7,0x81,0xe6,0x70,0xf1,0x28,0x2, +0x13,0xb,0x72,0x7,0x2a,0x3,0x19,0x11,0xda,0x17,0xd,0xf6, +0x3c,0xe2,0x49,0xfc,0xe0,0xf8,0x75,0xd2,0x9b,0xd4,0x9c,0xed, +0xd9,0xe5,0x84,0xd6,0xa8,0xe7,0xc9,0x0,0x5d,0xf7,0x7,0xdd, +0x98,0xdb,0xac,0xee,0x9,0xfa,0xfc,0xeb,0xc5,0xd6,0xe6,0xe7, +0x44,0xd,0x26,0xa,0x49,0xf3,0xa6,0x0,0x86,0x1a,0xbf,0x12, +0x68,0x7,0xdd,0x20,0xc4,0x36,0x13,0x25,0xab,0x12,0xa0,0x16, +0xf2,0x17,0x2f,0xb,0xc3,0xfa,0x5,0xf4,0x14,0xfa,0x83,0x2, +0xc8,0x8,0x8c,0x14,0x8b,0x2a,0x9a,0x39,0x34,0x33,0xf6,0x2f, +0x53,0x35,0x55,0x23,0x45,0xd,0xb3,0x15,0x81,0x1b,0x78,0x6, +0xcf,0xfb,0x1c,0x10,0x6c,0x1f,0xb5,0xe,0x68,0xfd,0xd2,0xff, +0x57,0xf8,0xb1,0xed,0x12,0xff,0x22,0xe,0xa9,0x4,0x20,0xa, +0x67,0x21,0xbb,0x21,0xf5,0x13,0x48,0x14,0xed,0xc,0x81,0xef, +0x59,0xe3,0xe7,0xf7,0xe,0x5,0xcf,0x1,0x97,0x11,0xbc,0x2d, +0x86,0x33,0x80,0x2d,0x1c,0x2a,0xee,0x17,0xd9,0x1,0x46,0x1, +0x25,0x2,0x95,0xf5,0xf0,0xf9,0x87,0x14,0xd3,0x1d,0xb2,0xf, +0xbd,0xe,0x2f,0x20,0x5e,0x27,0xc1,0x1a,0x29,0x8,0x9,0x2, +0x51,0x8,0xc2,0x3,0x66,0xf9,0xf3,0x6,0x3c,0x1b,0x62,0x12, +0x66,0x0,0x0,0x7,0xc6,0x12,0x6e,0x8,0xc1,0xfa,0x3d,0xfb, +0x51,0xff,0xb1,0x8,0x25,0x17,0x46,0x1a,0xfd,0x17,0xc2,0x1a, +0x3c,0x16,0x85,0x8,0x42,0x3,0x2f,0xb,0x1e,0xb,0x6b,0xfb, +0x53,0xf7,0x87,0x2,0xc4,0x4,0x4d,0x1,0x62,0xfe,0x90,0xf5, +0x65,0xef,0xe7,0xf0,0xd5,0xf5,0x58,0xf8,0xd1,0xf3,0xa,0xf8, +0x9,0x2,0x31,0xf6,0x65,0xec,0x8a,0xff,0xa4,0x6,0xef,0xf0, +0x91,0xe9,0xe,0xfb,0x74,0x5,0x77,0x0,0xcf,0xfc,0x73,0xfe, +0xf4,0x0,0x95,0x2,0xbc,0xfe,0x9a,0xfa,0xa5,0xff,0xf3,0x6, +0x81,0x4,0x79,0xf7,0xe5,0xf3,0xfd,0x4,0x76,0x5,0xeb,0xe8, +0x92,0xe2,0x8a,0xf7,0xd0,0xfc,0xd3,0xf6,0xb,0xfc,0x37,0x5, +0xcb,0x0,0x39,0xe8,0xd4,0xd6,0xeb,0xe3,0x80,0xea,0x3,0xd3, +0xfe,0xcd,0x6f,0xf2,0x3f,0x11,0x3b,0x10,0xa4,0x6,0xb8,0x3, +0xdb,0xff,0x76,0xf2,0x95,0xde,0x4e,0xd2,0x3f,0xd3,0x7e,0xd8, +0x1b,0xde,0x1c,0xea,0x1d,0xfe,0x61,0xb,0x45,0x4,0x82,0xf7, +0xfd,0xf2,0x23,0xe9,0x30,0xda,0x8c,0xd6,0x8a,0xd8,0x3c,0xdb, +0x55,0xe4,0xab,0xeb,0x2,0xf6,0xd3,0xe,0xb,0x1d,0x6e,0x13, +0x95,0xa,0xd5,0x3,0xb3,0xf6,0x5,0xf0,0xfa,0xee,0xc1,0xf1, +0x35,0xff,0x85,0x7,0xb2,0x9,0x54,0x1a,0xba,0x25,0xe5,0x17, +0x41,0xf,0x96,0x14,0xe7,0x5,0xd7,0xe7,0xb6,0xe2,0xca,0xf3, +0xd,0xfa,0x5b,0xf8,0x22,0x4,0xf0,0x13,0xc1,0x14,0x87,0xe, +0x72,0xb,0x7c,0x1,0x34,0xf3,0x82,0xef,0xb1,0xed,0xac,0xea, +0x43,0xf9,0x60,0xd,0x23,0xf,0x9f,0x12,0x7c,0x24,0xd5,0x21, +0x50,0x4,0xfe,0xf6,0x5c,0xfc,0xf2,0xf4,0xd6,0xf1,0xcc,0x5, +0x44,0x14,0x41,0x18,0x85,0x22,0xbe,0x22,0x4a,0x12,0x7,0x4, +0xea,0xf2,0x34,0xd7,0x22,0xc8,0x29,0xd0,0x5e,0xde,0x3d,0xf1, +0xfa,0x7,0x20,0xe,0xb3,0x7,0x5f,0x6,0x96,0x0,0x48,0xf1, +0x37,0xe2,0x2a,0xd6,0xa5,0xd4,0xcb,0xe6,0x2f,0x7,0x17,0x20, +0xad,0x1e,0x0,0x13,0x72,0x10,0xf0,0x7,0x76,0xf3,0x9b,0xe5, +0x49,0xe4,0xb7,0xe3,0x12,0xde,0x56,0xe0,0xe,0xee,0x83,0xf7, +0x9d,0xfe,0xa6,0x7,0x48,0x6,0x2,0xff,0xbc,0xfe,0x7c,0x4, +0x96,0x9,0x89,0x8,0x1f,0x8,0xeb,0xa,0xd1,0x5,0x58,0x1, +0xcf,0xa,0xf5,0x17,0x42,0x1c,0xd6,0x18,0x9,0x1b,0x4e,0x1f, +0xcb,0xf,0xd4,0xfa,0x45,0xf3,0x84,0xea,0x61,0xed,0x6c,0x6, +0x54,0xf,0x84,0x5,0xeb,0x8,0x5,0x10,0xde,0xe,0x63,0xd, +0x8a,0x0,0x94,0xe8,0x19,0xdf,0xb9,0xe5,0x47,0xf1,0x11,0x2, +0x5f,0xa,0xab,0x5,0x4a,0x9,0x64,0xf,0xb5,0x6,0x7b,0xfb, +0x29,0xf1,0x72,0xe2,0x60,0xdb,0x71,0xdf,0xae,0xea,0x7d,0xf9, +0xc7,0x0,0x11,0x6,0x2,0xc,0xf0,0xfa,0x3b,0xe0,0x83,0xe1, +0x30,0xe5,0x36,0xce,0x7a,0xc6,0xe0,0xdf,0xe2,0xeb,0x36,0xe2, +0x78,0xea,0x4,0x5,0x99,0xb,0xb,0xfb,0xff,0xfb,0x43,0x13, +0x9f,0x13,0x69,0xfc,0xcb,0xfa,0x5,0xf,0x3e,0x18,0x5,0x11, +0xd6,0xb,0x20,0x14,0x68,0x1b,0x54,0x12,0x97,0x6,0xd2,0x6, +0xbc,0xa,0x1,0x5,0x97,0xf8,0x43,0xf9,0xa5,0x8,0x86,0xf, +0xd7,0xd,0xdb,0x15,0xf9,0x1e,0x65,0x19,0x30,0x10,0x61,0xf, +0xef,0xe,0x49,0xb,0xd0,0x5,0x29,0xf9,0xfe,0xf4,0xba,0xa, +0xa9,0x1f,0xc6,0x1f,0x84,0x20,0x58,0x27,0x97,0x24,0x36,0x1e, +0x5a,0x21,0x4f,0x21,0x9c,0xd,0x90,0xfa,0x2f,0xfd,0xa3,0xff, +0x21,0xf8,0x8e,0xfc,0xcf,0x8,0x9f,0x9,0xa6,0x1,0x63,0xfd, +0xcb,0x3,0x12,0x8,0x35,0xfb,0xf9,0xee,0xd2,0xf1,0x90,0xf2, +0x79,0xf0,0x7d,0xfc,0x1,0x8,0x4c,0x0,0x99,0xfa,0x9a,0x3, +0x4b,0x2,0x6a,0xf2,0x9e,0xeb,0x89,0xee,0x19,0xed,0xf4,0xec, +0x9a,0xf9,0xe7,0x3,0xc7,0xfc,0xee,0xfb,0x37,0x4,0xf3,0xf5, +0x97,0xe7,0x39,0xf2,0x84,0xee,0xce,0xe0,0x30,0xf2,0x11,0x7, +0x6,0x7,0xa1,0xe,0xa6,0x1e,0xeb,0x20,0xa1,0x1a,0x39,0x17, +0xdb,0x17,0x41,0x1d,0xc,0x1c,0xaa,0x4,0x47,0xec,0xf8,0xef, +0xa4,0xf7,0x12,0xe7,0x61,0xd7,0xd,0xe0,0xe6,0xed,0x7b,0xef, +0x1a,0xf2,0x82,0xff,0x47,0xd,0xa0,0x15,0xee,0x10,0xa7,0x0, +0xb3,0x9,0x6b,0x27,0xd,0x1e,0xdd,0x0,0x96,0x11,0xd1,0x2a, +0x8b,0xe,0x9c,0xec,0x81,0xfb,0x60,0x8,0xb9,0xec,0x4f,0xdf, +0xd2,0xf4,0x94,0xfd,0x66,0xf5,0x3d,0xf7,0xbe,0xfb,0x1f,0xfd, +0x1,0x6,0xa5,0xa,0xdd,0xfc,0x3e,0xf5,0x3c,0x4,0xaa,0x9, +0xf3,0xfd,0xfb,0x2,0xa0,0xf,0x8f,0x7,0x7d,0x0,0xb2,0xe, +0x31,0x18,0x23,0x9,0xf4,0xf5,0x6d,0xf1,0x0,0xed,0xa8,0xdc, +0xf8,0xd1,0xf3,0xdc,0xf4,0xef,0x56,0xf6,0xaa,0xf9,0xbc,0xa, +0xee,0x19,0xcb,0x19,0xb0,0x19,0x15,0x20,0x5b,0x1f,0x9d,0x12, +0xcc,0xb,0x89,0x18,0xac,0x23,0x22,0x1c,0xba,0x16,0x49,0x1b, +0x5b,0x12,0x51,0xfc,0xba,0xf3,0x30,0xf5,0xb,0xe9,0xd1,0xd9, +0x13,0xdb,0x16,0xe4,0xd,0xf1,0xcb,0x4,0x93,0x15,0x21,0x24, +0x42,0x31,0x0,0x31,0x5e,0x28,0xa2,0x20,0x48,0x12,0x6d,0xfe, +0x89,0xee,0x75,0xe3,0xeb,0xe2,0xe4,0xf0,0x28,0xfe,0x42,0x6, +0xf4,0x13,0xc8,0x18,0xff,0x9,0xf,0xfd,0xa5,0xf2,0x16,0xde, +0x5d,0xce,0xea,0xca,0xe1,0xcd,0x9e,0xda,0x61,0xec,0x48,0xfb, +0xb4,0x2,0x5b,0xfc,0x41,0xf3,0xcd,0xf0,0x25,0xe6,0x76,0xd3, +0x18,0xce,0x1,0xd5,0xd9,0xd8,0xf8,0xdd,0x8a,0xe7,0x58,0xeb, +0x4e,0xf2,0x99,0xff,0x8d,0xfb,0xb5,0xef,0x26,0xf2,0x52,0xef, +0x3f,0xe8,0xbb,0xf4,0x15,0x3,0x44,0x5,0xba,0xb,0x11,0x16, +0xb9,0x1a,0xd4,0x1a,0xaf,0x18,0xc5,0x12,0xb8,0x0,0x57,0xe9, +0x5a,0xe4,0xc5,0xe8,0xb9,0xde,0xe9,0xd9,0xa2,0xed,0x60,0xfd, +0x50,0xf7,0x1c,0xf4,0x4a,0x2,0x75,0xe,0x40,0xa,0x15,0x7, +0xd9,0xf,0xe5,0xc,0xf3,0xfd,0x4f,0x5,0x1f,0x17,0x9b,0xe, +0x51,0x0,0x1a,0x5,0x6a,0xfc,0x45,0xd9,0x75,0xc9,0xd0,0xd7, +0x33,0xd7,0xb0,0xc5,0x66,0xc9,0xf9,0xda,0xaf,0xe0,0xae,0xe4, +0x82,0xf1,0xe,0xf9,0x4d,0xf4,0x88,0xf0,0xd7,0xf0,0xfd,0xea, +0xf7,0xe6,0xe7,0xe9,0xa5,0xe5,0x74,0xe2,0x94,0xec,0x7b,0xf3, +0xb1,0xf5,0xf2,0x0,0x2c,0xa,0xa,0x5,0x10,0xfd,0x6f,0xfe, +0xe4,0x1,0xcb,0xfe,0xf3,0xfc,0xf3,0xfe,0xc0,0xfe,0x60,0xff, +0x88,0x0,0xc3,0x2,0x93,0xc,0x7d,0x12,0xc0,0xc,0x85,0xa, +0x77,0xc,0xe1,0x6,0xde,0xff,0x3e,0x1,0x69,0x8,0xb4,0x10, +0x44,0x18,0xc0,0x18,0x63,0x11,0x81,0x10,0xd8,0x15,0xf5,0xf, +0xdd,0x3,0x5b,0xff,0xbf,0xfd,0x8a,0xfd,0xa5,0x3,0xd1,0xc, +0xa1,0x13,0xa2,0x13,0xd,0xf,0xdc,0xd,0x5d,0xb,0x30,0x1, +0xbf,0xf9,0xad,0xfb,0xc6,0xff,0x94,0x0,0x62,0xff,0x39,0x5, +0xc7,0x13,0x7,0x19,0xe,0x15,0x18,0x1b,0xc2,0x1e,0xaa,0x13, +0x2c,0x11,0xb3,0x18,0x15,0x15,0x27,0xf,0x4a,0x14,0xa0,0x19, +0x7d,0x15,0x7,0x10,0x23,0x14,0x12,0x19,0x8c,0x13,0xaa,0xd, +0xde,0xc,0x4b,0xa,0xc2,0x8,0xc9,0xb,0xfa,0x10,0x1b,0x14, +0x29,0xe,0xb9,0x4,0xd,0x5,0x7e,0x9,0x61,0x7,0x59,0x9, +0x12,0x19,0x33,0x22,0x5f,0x14,0x92,0x6,0x88,0xc,0x6,0x16, +0xa9,0x10,0xec,0x2,0xd9,0x2,0x3f,0x10,0x63,0x10,0xde,0xa, +0xdf,0x18,0x60,0x20,0xb,0xf,0xb0,0x9,0x51,0x18,0x3a,0x1a, +0xbe,0x10,0x4b,0xf,0xd9,0xc,0x92,0x3,0x22,0x4,0x68,0xa, +0x96,0xfe,0x5f,0xeb,0x21,0xef,0x17,0xfd,0xc6,0xf2,0x2e,0xe1, +0x59,0xf2,0x92,0x10,0x1e,0xb,0xfc,0xf7,0x3b,0x1,0x98,0x10, +0xe3,0x6,0xb3,0xf3,0xd1,0xec,0xf7,0xeb,0x82,0xe0,0xe8,0xd2, +0xc,0xdb,0x27,0xed,0x69,0xef,0xca,0xf0,0xd8,0x1,0xfe,0x11, +0x9c,0x19,0xfa,0x1e,0x7f,0x1e,0xed,0x1a,0x9c,0x1d,0xb8,0x1d, +0x56,0xd,0x35,0xf9,0x3f,0xf5,0xd5,0xf3,0xe3,0xe6,0x5a,0xe2, +0x3,0xe5,0x7f,0xd7,0xb0,0xcd,0xee,0xda,0x75,0xe1,0xb7,0xd7, +0xea,0xda,0x66,0xec,0xa1,0xf2,0x85,0xf1,0x9e,0x1,0x5c,0x18, +0x49,0x1b,0xe2,0x15,0xa3,0x19,0xe4,0x1b,0x38,0x15,0xcb,0xa, +0xd6,0x2,0xd3,0xff,0x99,0xf8,0x77,0xed,0xa4,0xee,0x32,0xf9, +0xa9,0xfc,0x45,0xf7,0xea,0xf0,0xf,0xf2,0xb9,0xf7,0x36,0xf3, +0xdb,0xe9,0x15,0xef,0x62,0xfc,0xa7,0x0,0x3b,0x3,0x67,0x12, +0x11,0x26,0x50,0x28,0x5f,0x18,0x8,0x11,0x18,0x17,0xdb,0xc, +0x3d,0xf1,0xd1,0xe3,0xb3,0xe2,0x41,0xd4,0x72,0xc1,0x95,0xc1, +0xb9,0xc9,0x36,0xc9,0xbb,0xce,0xc0,0xe2,0x3e,0xf5,0x79,0x2, +0xb1,0xf,0xa3,0x18,0x9f,0x1b,0x25,0x19,0xe4,0x12,0x20,0xd, +0x26,0x7,0x12,0x4,0x7d,0x4,0x7,0xff,0xd0,0xf8,0x1b,0xfb, +0x77,0xfc,0x34,0xf5,0x42,0xeb,0xb,0xeb,0x94,0xf4,0x47,0xf5, +0x6f,0xf3,0xad,0x6,0xd,0x1e,0x67,0x21,0x8,0x21,0x12,0x2c, +0x5d,0x30,0xb9,0x1f,0x2c,0x11,0xda,0x16,0xe2,0x18,0x42,0xd, +0x4,0xd,0x9c,0x17,0xa5,0x14,0x23,0x7,0x55,0x5,0xac,0xb, +0xc6,0x2,0xb1,0xf0,0xc,0xe9,0xdb,0xe5,0xc1,0xe7,0x5d,0xf3, +0x4e,0xf7,0xb1,0xfb,0x80,0x12,0xf5,0x1f,0xa4,0x18,0x6,0x19, +0x15,0x1c,0xa2,0xd,0xd7,0xfc,0x74,0xf8,0x36,0xf9,0x52,0xfa, +0x9,0xff,0x21,0x8,0x4f,0x10,0xa0,0x17,0x95,0x21,0x31,0x1e, +0x5d,0x6,0xbd,0xf9,0x64,0xfd,0x5e,0xee,0x7a,0xdb,0xcf,0xed, +0x44,0xb,0x33,0xa,0x79,0x0,0xe,0x9,0x24,0xd,0x27,0xfe, +0xab,0xf0,0xf5,0xe6,0xbb,0xd7,0x5,0xd3,0x81,0xde,0x76,0xe7, +0x88,0xe9,0xc3,0xf0,0x76,0xfd,0x70,0xfc,0x8d,0xee,0x9f,0xf4, +0x61,0x6,0xfc,0xfd,0x66,0xf0,0xc7,0xfc,0xa8,0xc,0x6e,0x8, +0xf5,0xf4,0xb8,0xe8,0x38,0xef,0x8d,0xec,0xe8,0xd9,0x42,0xd9, +0xca,0xe3,0x79,0xe0,0x3b,0xde,0x99,0xe2,0x27,0xe4,0x46,0xec, +0xbf,0xf1,0xa5,0xe2,0xf0,0xd7,0x3d,0xe7,0xed,0xf7,0x61,0xf7, +0x72,0xf2,0x39,0xf4,0xbe,0xf5,0xd9,0xeb,0x47,0xe1,0x18,0xe9, +0xa7,0xf2,0x78,0xe9,0x2c,0xe4,0x9a,0xf1,0x97,0xfd,0x6,0x3, +0xc7,0x7,0xe3,0x2,0x6d,0xfa,0xef,0xfc,0x88,0x0,0x69,0x1, +0x4a,0x8,0x14,0x8,0xc6,0xfe,0xa6,0x1,0x4d,0x9,0xa1,0x8, +0x8c,0xb,0x70,0xc,0x9a,0x0,0x31,0xf9,0x12,0xfe,0x75,0x1, +0x2f,0xfe,0x5d,0xfd,0xd4,0x2,0xe1,0x0,0x97,0xf5,0xf8,0xf5, +0xb7,0xfe,0xa3,0xfa,0x92,0xf3,0x1e,0xf8,0xa7,0xfa,0xa2,0xf3, +0xec,0xf1,0x2f,0xf9,0x44,0xfa,0x27,0xf3,0xf4,0xf2,0xc3,0xfa, +0xd4,0xfa,0xb6,0xf4,0x11,0xfc,0x68,0x9,0x9e,0x4,0x1,0xfc, +0xf0,0x2,0xfc,0x5,0x6c,0xfe,0x53,0x0,0x59,0xd,0xf6,0x18, +0xa1,0x1a,0xe5,0x12,0x31,0xd,0xd,0xa,0xb6,0x1,0x1a,0xf9, +0x2e,0xf4,0xd8,0xf2,0x92,0xf7,0xbf,0xfa,0x38,0xfb,0x5e,0x8, +0x37,0x18,0x34,0x10,0xbb,0x0,0xe8,0x4,0xd4,0x8,0x5d,0xff, +0x46,0x1,0x91,0xc,0xb1,0x9,0xd7,0x1,0x40,0x5,0xb2,0xc, +0xd2,0xc,0x6b,0x4,0x76,0xfc,0xe2,0xfc,0x67,0x1,0xe8,0x3, +0xd7,0x7,0x9b,0x12,0x19,0x1c,0x80,0x18,0xb0,0x12,0x32,0x19, +0xe2,0x1f,0x7d,0x1b,0x84,0x17,0xb7,0x1b,0x11,0x21,0x82,0x23, +0xb2,0x26,0xc1,0x2a,0xa6,0x29,0xfc,0x20,0x62,0x16,0x66,0x11, +0x40,0x11,0xf9,0xb,0x92,0x1,0xd,0x0,0x41,0x7,0x75,0x7, +0x93,0x1,0xa0,0x3,0xe3,0xa,0x13,0xb,0xd6,0x7,0x3a,0xe, +0xf9,0x1b,0x48,0x21,0x5a,0x1c,0xff,0x1b,0x3e,0x23,0x46,0x25, +0x35,0x1b,0x2f,0xd,0x35,0x9,0xb3,0xd,0xd,0xc,0x42,0x9, +0x85,0x11,0x12,0x17,0x99,0xe,0x8a,0x6,0xb8,0x7,0xc2,0x9, +0x98,0x6,0x27,0xfe,0xb,0xf2,0x4d,0xeb,0x4a,0xf2,0x30,0xfa, +0xec,0xf6,0xda,0xf8,0x2,0x4,0x83,0x1,0xdc,0xf5,0x82,0xf5, +0x2,0xf7,0x53,0xf2,0xab,0xf1,0x9d,0xf3,0x6c,0xf6,0x2a,0x0, +0x22,0xa,0x76,0xc,0xbd,0x8,0x70,0x4,0xb8,0x8,0xb2,0xc, +0xc5,0x1,0x4a,0xfb,0xfd,0x2,0xdf,0x1,0x92,0xfe,0x50,0xd, +0x55,0x1f,0x7c,0x28,0xc4,0x2d,0xa8,0x2a,0x9d,0x1e,0x75,0x18, +0x3b,0x1b,0x20,0x13,0x6c,0xfe,0x62,0xf8,0x1c,0x1,0xee,0x1, +0xa7,0x0,0x9a,0xa,0xee,0x17,0x93,0x18,0x65,0x9,0x29,0xff, +0xb9,0xff,0x19,0xf7,0x6a,0xeb,0xb3,0xe9,0xe6,0xe6,0xb0,0xe6, +0xe,0xf0,0x94,0xf4,0xf,0xf4,0xe0,0xfa,0xac,0x1,0xed,0xfb, +0xf4,0xf2,0x6a,0xf5,0x1a,0xfa,0x81,0xf6,0x92,0xf6,0x73,0xfe, +0xd,0x0,0x6b,0xf7,0xce,0xf1,0xb3,0xf6,0x8e,0xf9,0x0,0xf5, +0xb5,0xf4,0x29,0xf6,0x93,0xf4,0xd2,0xf7,0x1f,0xf8,0xd4,0xee, +0x5d,0xed,0xe4,0xf4,0xf2,0xef,0x6c,0xe4,0x4b,0xeb,0xb4,0xf8, +0xa4,0xf5,0x41,0xf4,0xd8,0xff,0x95,0x1,0xe2,0xf8,0xd2,0xf8, +0x12,0x1,0xfa,0x4,0xd2,0xfe,0xda,0xf8,0x61,0xf9,0x67,0xfa, +0x21,0xff,0xf9,0x1,0x16,0xfa,0xca,0xf8,0xaa,0xfd,0x87,0xf9, +0xe7,0xfd,0xb7,0xb,0xa7,0x8,0x5,0xfe,0x7a,0xff,0xbd,0xff, +0xf9,0xf3,0x95,0xeb,0x8c,0xed,0x79,0xec,0x46,0xea,0x9b,0xef, +0x49,0xf3,0x69,0xf8,0xb,0x6,0xc2,0x9,0xb9,0xfd,0xc2,0xf4, +0xbf,0xf4,0x20,0xf3,0x96,0xed,0xdf,0xf0,0x9e,0xfb,0x4e,0xff, +0x13,0x6,0x6c,0x16,0x34,0x1d,0xc9,0x19,0x76,0x13,0xb6,0x3, +0xa5,0xf2,0x7a,0xea,0xc4,0xe5,0x41,0xe4,0x73,0xe8,0x7,0xef, +0x1b,0xf7,0x64,0x2,0xaa,0xd,0x93,0xe,0xa0,0x5,0x8,0x3, +0xad,0x4,0x9,0xfa,0x37,0xf1,0xbc,0xfe,0xd3,0xc,0xa9,0xa, +0x28,0x11,0x84,0x22,0xb8,0x25,0x4f,0x21,0x8,0x1d,0x5f,0x11, +0x98,0xf,0x4d,0x19,0x94,0x12,0x71,0x6,0x31,0xb,0xe0,0xd, +0xc2,0x7,0x8a,0xd,0x63,0x17,0xd6,0x11,0x88,0xc,0x7,0x13, +0x3b,0xe,0x91,0xfc,0x64,0xf8,0xc6,0xfd,0xb9,0xfb,0x41,0xfa, +0xb7,0x3,0x6f,0x14,0x93,0x1f,0x1,0x20,0xe3,0x20,0x2d,0x1e, +0x5b,0xf,0xe6,0x2,0x1c,0xf6,0x65,0xe4,0x27,0xe6,0xad,0xee, +0x4d,0xe6,0xf5,0xee,0x72,0x9,0xb6,0x5,0x7d,0xf5,0x6a,0xfe, +0xb3,0xff,0xe9,0xe6,0x22,0xdf,0xf4,0xe8,0x5b,0xde,0x21,0xd9, +0x76,0xea,0x80,0xe4,0x8a,0xdb,0xc8,0xf6,0xe5,0xfd,0x6,0xe7, +0x8b,0xed,0x71,0xfb,0xaf,0xec,0xd8,0xdd,0x3d,0xdf,0x6c,0xe6, +0xfe,0xe6,0x24,0xe1,0x7,0xe4,0xe7,0xe6,0x28,0xe8,0x52,0xfd, +0x38,0x6,0xad,0xea,0x8d,0xe6,0x98,0xfc,0x86,0xe4,0x9,0xbe, +0x6c,0xcf,0x35,0xe6,0xce,0xda,0x35,0xde,0x55,0xe9,0x21,0xe1, +0x4a,0xea,0xb5,0xf7,0xd,0xe3,0xe2,0xd8,0x82,0xeb,0x6d,0xe8, +0x33,0xd7,0xe9,0xe3,0xee,0xfb,0x26,0x1,0x58,0x5,0xa9,0xe, +0x73,0x9,0x52,0x2,0x7e,0x8,0xd1,0x5,0x92,0xf4,0x19,0xf1, +0x0,0x0,0xef,0x0,0x79,0xf3,0x11,0xfd,0xa8,0xa,0x37,0xf9, +0x8f,0xee,0x2b,0xf4,0x93,0xe5,0xf1,0xd9,0x26,0xe3,0xee,0xe5, +0x3c,0xe7,0x28,0xf5,0x42,0x5,0x12,0xa,0xc0,0x4,0x5a,0xb, +0x15,0x16,0xc0,0x9,0xd9,0xfb,0x5f,0xfb,0xa3,0xf7,0xd7,0xf8, +0xe,0x0,0x4,0x1,0x82,0x8,0x89,0x14,0xb8,0xe,0x1f,0x0, +0xa4,0x0,0x57,0x4,0xb0,0xf5,0x6b,0xe6,0xb1,0xe5,0x90,0xe7, +0x26,0xee,0xa6,0xf7,0xc,0x0,0x2f,0x14,0xe3,0x1b,0xae,0x6, +0x4,0xff,0x3,0x5,0x70,0xfa,0x3d,0xf2,0xb0,0xf1,0xe5,0xeb, +0xe4,0xf1,0xe3,0x3,0xd1,0xd,0x33,0x12,0xf2,0x17,0xd6,0x17, +0xbc,0xe,0x58,0x6,0xa8,0x3,0x84,0x1,0xa6,0xff,0xc8,0x2, +0x2a,0xe,0x92,0x1a,0xa5,0x1c,0x20,0x1f,0x5,0x27,0xb0,0x20, +0x4c,0x11,0x56,0xa,0x8e,0x7,0xc,0xa,0x6a,0xe,0x96,0x9, +0xf5,0xa,0x5f,0x1b,0xb3,0x23,0xae,0x1a,0x46,0x13,0xe1,0x14, +0xd6,0xd,0x8,0xfe,0x27,0xfd,0xda,0x7,0x8b,0x9,0xae,0x4, +0x29,0x8,0x2c,0x1a,0xcb,0x27,0x3c,0x1c,0x75,0xe,0xfc,0x16, +0xc9,0x1d,0x36,0xc,0xb6,0xf9,0x34,0x1,0xfd,0xd,0xe2,0x5, +0x94,0xfd,0x7a,0x5,0x1d,0xe,0x7b,0xf,0xc4,0x7,0x74,0xfd, +0x74,0xfe,0xfc,0x0,0x60,0xfb,0x92,0xf5,0xa5,0xf3,0xe5,0xfc, +0xfa,0x9,0x90,0x6,0xf3,0x1,0x39,0xb,0xf6,0xe,0xf5,0xb, +0x17,0x10,0xd7,0x12,0xb1,0xe,0x55,0xf,0x78,0x16,0x91,0x1a, +0x8e,0x1c,0x65,0x1d,0xcc,0x13,0x7e,0x5,0x4a,0xff,0x94,0xfb, +0xbd,0xf7,0xf6,0xf9,0xc6,0xfb,0x36,0xf5,0xc,0xf1,0xca,0xfe, +0x89,0xf,0xfd,0x9,0x6e,0x3,0xca,0x14,0xaf,0x20,0xb2,0x16, +0x42,0x15,0xbb,0x22,0xd1,0x23,0x5e,0x14,0xc2,0x9,0x61,0xa, +0xf5,0xc,0x39,0x10,0xee,0x12,0x5a,0x12,0xb5,0x13,0x1d,0x12, +0x3,0xa,0x5,0xb,0xa1,0x10,0xff,0x7,0x82,0xfe,0x2c,0x1, +0xe0,0x0,0x66,0xfe,0x3b,0xb,0xa4,0x1a,0xf2,0x12,0xee,0x2, +0xb5,0x4,0x2d,0x6,0x8f,0xf8,0x70,0xf7,0xdb,0x6,0xca,0x9, +0x38,0x1,0x34,0x1,0x9d,0xa,0x52,0x11,0x99,0xb,0x54,0x0, +0xae,0xfc,0x83,0xfc,0x2a,0xf9,0x4,0xf8,0x71,0xfe,0x13,0xa, +0xd,0x11,0x63,0x11,0x78,0x14,0x17,0x17,0x14,0x12,0xc2,0xa, +0xba,0x1,0x41,0xf9,0xf4,0xfa,0x22,0xfe,0xc,0xf9,0xd5,0xfa, +0xcf,0x8,0x2c,0xf,0xc,0x8,0xc8,0x2,0x36,0x2,0x12,0xfc, +0xd7,0xf3,0x28,0xf3,0xe4,0xf7,0xc9,0xfe,0xc2,0x3,0xe6,0x0, +0x46,0x3,0x36,0x12,0x95,0x11,0x4b,0xfc,0xd7,0xf4,0x96,0xf7, +0xe2,0xe9,0xd4,0xdc,0xcb,0xdf,0x8b,0xdf,0x92,0xdc,0x53,0xe6, +0xae,0xec,0xad,0xe1,0x31,0xe1,0x4a,0xf6,0x21,0xf8,0x99,0xe0, +0x67,0xe0,0xf9,0xf5,0x9e,0xf6,0x8a,0xed,0x47,0xf7,0x91,0x4, +0xa0,0x5,0x12,0x4,0xac,0x4,0x44,0x5,0xb4,0x9,0xad,0xd, +0x75,0x6,0xb5,0xfe,0xc5,0x3,0xed,0x3,0x17,0xf5,0x9,0xf0, +0xc6,0xfb,0xa0,0xff,0x23,0xf7,0xeb,0xf4,0x8e,0xfa,0xc8,0xf9, +0x4e,0xf2,0x66,0xf2,0x37,0xfb,0x48,0xfe,0x47,0xf9,0x8f,0xf7, +0xa2,0xfc,0xfe,0x0,0xbb,0xfc,0x6,0xf5,0x76,0xf5,0xa9,0xf9, +0x25,0xfa,0xa7,0xf9,0x7f,0xf7,0x1a,0xf9,0x42,0x4,0x1,0x9, +0xea,0x0,0x2c,0xfe,0xa2,0x5,0x28,0x6,0x85,0xf6,0xca,0xe9, +0x5e,0xee,0xb3,0xee,0x43,0xe4,0x98,0xe7,0x8d,0xf5,0xf8,0xf9, +0x56,0xf9,0x55,0xff,0x3,0x8,0x64,0x6,0xc3,0xfe,0xbc,0x1, +0x96,0x7,0x9d,0x3,0x2e,0x0,0x50,0x2,0x1a,0x3,0x22,0x4, +0xd2,0x5,0xe9,0xfc,0xad,0xe9,0x4e,0xe0,0xa1,0xe2,0x93,0xdf, +0xb9,0xdb,0xac,0xe2,0x8,0xf1,0xf4,0xfe,0x16,0x3,0x2e,0x5, +0x67,0x12,0xa4,0x15,0x25,0x1,0x2d,0xf0,0x82,0xef,0xed,0xeb, +0x56,0xe0,0xcd,0xe0,0xdc,0xf0,0xdc,0xfa,0xfb,0xfe,0x26,0xd, +0x7,0x1b,0x79,0x1b,0x84,0x17,0x4f,0x16,0xf7,0xe,0x3b,0xfe, +0xd3,0xf4,0x1d,0xf4,0x30,0xea,0x70,0xe2,0xc8,0xea,0x74,0xef, +0x38,0xec,0xe7,0xf1,0x21,0xfc,0x7d,0xfe,0xa8,0xfd,0x28,0x3, +0xdd,0x8,0x54,0x6,0x66,0x6,0x1f,0xf,0x6c,0x14,0x95,0x11, +0x46,0xa,0x53,0x1,0x73,0xfb,0xb3,0xf8,0xbe,0xf3,0xde,0xec, +0xa,0xed,0xa8,0xf6,0x91,0xfc,0xde,0xfa,0xa6,0x0,0x7a,0x10, +0x26,0x18,0xc4,0x11,0x6a,0xe,0x71,0x12,0xa8,0xf,0xe,0xb, +0x25,0xd,0x47,0x8,0xa6,0xfd,0x4,0xfa,0x7,0xf3,0xdc,0xe5, +0xd4,0xe3,0xcb,0xe9,0x9c,0xe6,0xee,0xe1,0x30,0xeb,0xda,0xf4, +0x4a,0xf2,0x7,0xf5,0xfa,0xff,0x51,0x0,0x20,0xfb,0x36,0xfb, +0xa9,0xfa,0x47,0xfd,0x7,0x6,0x4a,0x9,0x4b,0xa,0x1,0x14, +0x97,0x1b,0xaf,0x14,0xa,0xb,0x8,0xf,0x88,0x17,0x57,0x10, +0xe5,0x3,0x51,0x9,0x79,0x15,0xfb,0x15,0x8c,0x11,0x6,0xe, +0x43,0xc,0x31,0xd,0x41,0x5,0x19,0xf8,0x37,0xfe,0x80,0xf, +0x66,0xf,0xf8,0x9,0xdb,0x18,0xf0,0x29,0x38,0x23,0x7e,0x12, +0x76,0x9,0xc3,0x1,0xaa,0xf3,0xff,0xdf,0xf9,0xd4,0xf,0xe1, +0x4d,0xf0,0x4e,0xed,0x73,0xee,0xa8,0x4,0x65,0x14,0x11,0xa, +0xa0,0xff,0x2f,0xa,0x34,0x10,0x28,0x1,0x7,0xf9,0xca,0x1, +0xca,0x3,0xd1,0xfc,0xfc,0xfb,0xb8,0xfe,0x47,0xfc,0x47,0xf7, +0xb2,0xf2,0x1f,0xea,0xc1,0xe1,0x84,0xe6,0x37,0xef,0x80,0xe7, +0xd7,0xde,0x1e,0xec,0x97,0xf8,0x10,0xf1,0x83,0xee,0x43,0xf9, +0x63,0xfd,0xe1,0xfa,0xad,0xf6,0x96,0xee,0x30,0xec,0xae,0xee, +0xbb,0xe9,0xad,0xe4,0x5e,0xeb,0x5a,0xf8,0x75,0xfe,0x3d,0xf9, +0x77,0xf5,0xf5,0xf7,0x85,0xf0,0x3d,0xe2,0x79,0xe1,0xa4,0xe7, +0x41,0xea,0x26,0xf5,0x97,0x5,0xd8,0xf,0xc9,0x1d,0xba,0x2a, +0xbe,0x22,0x19,0x14,0x5d,0xc,0x50,0xfb,0x6c,0xe8,0x3b,0xe5, +0x14,0xe2,0xc3,0xda,0xab,0xe1,0xc4,0xee,0xe1,0xee,0xa7,0xe8, +0x4a,0xe8,0xb1,0xe6,0xd4,0xdb,0x6c,0xd3,0x74,0xd6,0x45,0xdb, +0x60,0xe1,0x92,0xf1,0xfc,0x1,0x83,0x7,0xc2,0xa,0xd6,0xf, +0x69,0xd,0xce,0x2,0x6b,0xf9,0x3f,0xf7,0x78,0xfc,0x48,0x2, +0x57,0x4,0x6f,0xd,0xc0,0x1f,0xc4,0x27,0x4c,0x23,0xb4,0x23, +0x62,0x24,0xde,0x1a,0x3c,0x13,0xf1,0x10,0xb0,0x9,0xb6,0x8, +0x51,0x16,0xef,0x19,0x6a,0xf,0x95,0x16,0x4c,0x28,0xe2,0x1d, +0x7e,0x7,0x8e,0xb,0x7b,0x12,0xcb,0xfe,0x4f,0xf1,0xca,0xff, +0xb0,0xb,0x24,0x9,0x68,0x9,0xf0,0xe,0x51,0x14,0xe2,0x13, +0x67,0x8,0xd8,0xfb,0x43,0xf8,0x10,0xf9,0xd4,0xf7,0xc4,0xf6, +0x9a,0xff,0x94,0xc,0x1d,0xc,0x43,0x8,0x9f,0xd,0xb5,0xa, +0x5e,0xfd,0x82,0xf9,0xb,0xfc,0xbd,0xf8,0xdb,0xf8,0x2b,0x3, +0x25,0x9,0x76,0x5,0x45,0x4,0xfc,0x7,0x91,0xd,0xc5,0xf, +0xbc,0x5,0x69,0xfe,0x11,0x7,0xd5,0xb,0xd8,0x8,0x7d,0xb, +0xd8,0xa,0x34,0x4,0x5,0x2,0xde,0x0,0xf4,0xfe,0xa4,0x0, +0x3d,0x0,0xcd,0xfc,0x13,0x1,0x5e,0xa,0x8a,0xd,0x19,0x10, +0xcf,0x14,0xa0,0x13,0xe3,0xf,0x4a,0xb,0x6,0x7,0x3b,0xb, +0x7b,0xb,0x2c,0x2,0xa3,0x2,0x37,0x6,0xd7,0xff,0x5,0xfe, +0x47,0x4,0x16,0x8,0xf1,0x8,0xeb,0xc,0x97,0x16,0x43,0x1d, +0x9c,0x1b,0x92,0x16,0x69,0x11,0x64,0x10,0xb3,0x10,0x4e,0xc, +0xa9,0x8,0xa5,0x5,0xa4,0x2,0x9c,0x2,0xb4,0xfc,0x68,0xf6, +0x84,0xf9,0xa5,0xf6,0xbb,0xee,0x7a,0xf3,0xa1,0xfc,0xd8,0xfb, +0xbd,0xfa,0x21,0x9,0x1e,0x16,0x4f,0x9,0x33,0xfc,0xca,0x5, +0xa9,0xa,0x7c,0xfe,0xde,0xf6,0x5a,0xfc,0xd6,0xff,0xb9,0xf7, +0xac,0xf6,0xef,0x3,0xa6,0x7,0xad,0x0,0xde,0x0,0x6a,0x4, +0xe9,0x2,0x64,0x0,0xb9,0x2,0x2e,0x6,0x1c,0x6,0x8a,0x7, +0xfd,0x7,0xd9,0x5,0xb5,0x9,0x43,0x9,0x3,0xfe,0x2a,0xfc, +0x46,0x5,0x58,0x7,0x5d,0x3,0x9,0x7,0xd1,0x10,0x2e,0xf, +0x89,0x5,0x9,0xa,0x48,0x15,0xa4,0x10,0x10,0x0,0x22,0xf6, +0x7f,0xf7,0xe2,0xf7,0xf6,0xf3,0x6f,0xf5,0xd1,0xfa,0x9c,0x0, +0x72,0x8,0x1,0xd,0xa5,0xf,0x2e,0x16,0xf7,0x18,0xe1,0x11, +0x25,0xa,0x85,0xa,0xea,0xa,0x8c,0x3,0xc4,0xfe,0x54,0x0, +0x34,0xff,0x43,0xfc,0x72,0xfb,0x2,0xfc,0xf9,0xfc,0x14,0xfe, +0xf,0x3,0xeb,0x9,0x23,0x10,0x4b,0x1b,0x26,0x20,0x2f,0x16, +0x6d,0x13,0x90,0x17,0x7c,0x7,0x8b,0xed,0xbc,0xe6,0xfd,0xec, +0x11,0xec,0x8,0xe9,0x30,0xf3,0x7,0x2,0xc2,0x5,0x30,0x6, +0x8f,0xb,0xf2,0xa,0xc8,0x1,0xb0,0xfa,0xe,0xf7,0xbc,0xf5, +0x20,0xfa,0x8b,0x0,0x68,0x6,0x51,0xe,0xc7,0x11,0x51,0xc, +0x81,0x5,0xdd,0xff,0x35,0xf8,0x7f,0xf0,0x7a,0xec,0x50,0xee, +0x9d,0xf5,0xc,0xfe,0xb3,0x3,0x2e,0x7,0xac,0x7,0x4c,0x0, +0x47,0xf4,0x46,0xeb,0x63,0xe3,0x33,0xdd,0x1c,0xde,0xd0,0xe4, +0x85,0xf1,0x7c,0x0,0x63,0x7,0x7c,0x9,0xb,0xb,0xd7,0x5, +0x41,0xfb,0xaf,0xf0,0xde,0xeb,0xf4,0xf0,0x34,0xf6,0xd1,0xfa, +0x9d,0x8,0xb6,0x11,0x1b,0xd,0x6f,0xc,0x7b,0xe,0xe4,0x5, +0x44,0xfd,0xe2,0xfa,0xea,0xf4,0xf4,0xef,0x2c,0xf3,0xab,0xf4, +0xe2,0xf2,0x29,0xf8,0x39,0xfe,0x89,0xf9,0x4b,0xf3,0x79,0xf5, +0xe0,0xf4,0x95,0xe9,0xeb,0xe0,0xe5,0xe0,0x6,0xe0,0xb8,0xe2, +0x72,0xee,0xb0,0xf4,0x3d,0xf5,0x64,0xff,0xa0,0x8,0x8b,0x2, +0xd6,0xfc,0xa1,0x0,0x89,0xfb,0x5a,0xec,0x3e,0xea,0xda,0xf1, +0xee,0xef,0x34,0xf0,0x2a,0xfc,0x67,0x1,0xac,0xff,0x9e,0x5, +0x6a,0xb,0x2a,0x8,0x8,0x4,0xc2,0x2,0xee,0xfe,0xb2,0xf9, +0xdc,0xf8,0x1e,0xfa,0xbe,0xfb,0x50,0x1,0x67,0x6,0xf2,0x7, +0xa2,0x8,0xcf,0x2,0xdb,0xf7,0x2d,0xf3,0x87,0xf2,0x20,0xef, +0xc4,0xeb,0xef,0xee,0xa9,0xf9,0x8a,0xff,0x7,0xfc,0xdd,0xfd, +0x6a,0x4,0xcd,0x0,0x11,0xf7,0x84,0xf3,0xaa,0xf5,0xf9,0xf7, +0x6e,0xf9,0x1f,0xfa,0x7f,0xfb,0x50,0x2,0x72,0x9,0x65,0x7, +0x85,0x3,0xc,0x5,0xea,0x4,0xa2,0x0,0x7d,0xfd,0xd7,0xff, +0xc7,0x4,0x19,0x6,0x8b,0x9,0xb1,0x10,0x29,0xf,0x8e,0x7, +0x6,0x4,0x18,0xff,0xc6,0xf3,0xeb,0xe7,0xc8,0xe3,0xf8,0xe6, +0x11,0xe7,0x29,0xe3,0xd8,0xe4,0x83,0xed,0xf4,0xf6,0x6a,0xfb, +0x84,0xfc,0xe0,0x2,0xbc,0xd,0x7c,0x13,0xcf,0x13,0xe5,0x14, +0xc7,0x15,0xab,0x13,0x20,0x10,0xbb,0x8,0x88,0xff,0xe7,0x0, +0x31,0x8,0xb5,0x6,0x2e,0x6,0x3f,0xf,0xea,0x11,0x2e,0xb, +0x7a,0xa,0x83,0xa,0xd6,0xfd,0x71,0xf1,0xe0,0xef,0xa,0xec, +0xa5,0xe6,0xde,0xeb,0x86,0xf4,0x86,0xf7,0x73,0xf8,0xd0,0xfd, +0xd,0x6,0x6b,0x4,0x56,0xfe,0xbc,0x4,0xe3,0x7,0x5e,0xfd, +0x88,0xfd,0x1,0x8,0x8e,0x6,0xad,0xff,0xb9,0xff,0xc4,0xff, +0x26,0xfc,0x6e,0xfc,0x10,0x2,0xc9,0x4,0xca,0x3,0x47,0x6, +0x1a,0x9,0xb8,0x5,0xe5,0x2,0x7b,0x5,0x25,0x4,0x77,0xfc, +0x64,0xf9,0xc5,0xfc,0xd4,0xfe,0x2,0xff,0x77,0xff,0x9,0xff, +0x2f,0x1,0xe1,0x6,0xc8,0x4,0x71,0xfb,0xd2,0xfe,0xd8,0xb, +0xe,0xc,0x51,0x8,0x61,0x14,0xb9,0x21,0xb4,0x1c,0x8a,0x12, +0x5e,0x15,0x6b,0x16,0x87,0x7,0xef,0xfc,0x47,0xfc,0xca,0xf2, +0x56,0xe8,0x85,0xe9,0xf8,0xed,0x49,0xf3,0xa7,0xf7,0x66,0xf9, +0x64,0xfe,0x6b,0xfe,0xf4,0xf6,0xc2,0xf7,0x8d,0xfb,0x6e,0xf6, +0x21,0xf2,0xe9,0xf1,0x4e,0xf1,0x6f,0xf5,0xdc,0xf9,0x3a,0xf4, +0xa0,0xee,0x8e,0xf3,0x89,0xf6,0xaf,0xf1,0x38,0xf2,0x92,0xf6, +0x3e,0xf1,0x4b,0xea,0x21,0xf0,0x98,0xf9,0x91,0xf9,0x12,0xf7, +0xbb,0xfa,0xa9,0xfd,0xd2,0xfa,0xf1,0xfa,0x69,0x1,0x85,0x3, +0xe9,0x0,0xd2,0x3,0x51,0x5,0xaa,0xff,0x92,0x0,0xd0,0x5, +0x85,0x2,0xc2,0x0,0x78,0x6,0x2f,0x6,0x69,0xff,0xa7,0xfe, +0x76,0x2,0xa4,0xfe,0x23,0xf6,0x16,0xf7,0x4a,0x0,0xb9,0x8, +0x7f,0xd,0xb,0xe,0xb,0x12,0xe5,0x19,0xf2,0x14,0xe7,0x7, +0xe2,0x5,0xfc,0x5,0xc9,0xfc,0xda,0xf6,0x18,0xfb,0xcb,0xfe, +0x53,0xfa,0x86,0xf5,0xe7,0xfb,0x6f,0x5,0x2e,0x2,0x28,0xfb, +0xce,0xff,0x64,0x5,0xeb,0x0,0xa6,0xfc,0x8d,0xfd,0x99,0xfc, +0xcb,0xf9,0x31,0xf9,0xf8,0xf8,0x6c,0xf7,0x3a,0xf6,0xe4,0xf3, +0xe,0xf2,0x18,0xf8,0x35,0xfe,0x6,0xf9,0xd7,0xf6,0x49,0x1, +0xb1,0x6,0xd5,0x0,0xf,0x1,0x91,0xc,0x97,0x10,0x3c,0x8, +0xdf,0x8,0xda,0x10,0x9c,0xc,0xee,0x7,0x65,0xc,0x20,0xb, +0x2,0x9,0xbb,0x10,0xa,0x16,0x7b,0x14,0x6b,0x18,0xcb,0x1f, +0x1f,0x19,0xf7,0xb,0x49,0x10,0x69,0x13,0xab,0xff,0x8f,0xf9, +0x84,0xd,0xa0,0xe,0xdc,0xfe,0x2b,0x5,0xfa,0x11,0x48,0xb, +0xc2,0x6,0xd7,0xf,0xf9,0x11,0xa5,0xe,0xbd,0x13,0xbb,0x15, +0xfb,0xe,0x26,0xe,0x24,0x11,0xc2,0xc,0xed,0x5,0x87,0x0, +0x80,0xfc,0xe9,0xfe,0x97,0x2,0x16,0x0,0x1f,0xff,0x70,0x5, +0x2b,0xd,0x7d,0xd,0x54,0x5,0xce,0x0,0x23,0x2,0x84,0x2, +0xab,0x8,0x26,0xd,0x41,0x8,0xd2,0x14,0xd1,0x24,0xd0,0xa, +0xf8,0xee,0x8,0xfb,0x1d,0xf5,0xb8,0xcd,0x72,0xca,0x9c,0xea, +0x7,0xf6,0xa1,0xf9,0x92,0x13,0x6a,0x2a,0xb9,0x2f,0x84,0x32, +0x5a,0x29,0x5a,0x13,0x5d,0xe,0xc3,0x11,0x47,0xfb,0x74,0xe3, +0x99,0xf4,0x6c,0xf,0xe6,0x7,0x6a,0x0,0x85,0x14,0xf0,0x11, +0x2a,0xf0,0xde,0xea,0xfc,0xf7,0x95,0xea,0x66,0xe2,0x60,0xf1, +0xb,0xf2,0xc0,0xf3,0xaa,0xd,0x59,0x12,0x87,0xfb,0x66,0xf9, +0x52,0xfd,0xec,0xe6,0x84,0xda,0xf7,0xee,0xb0,0xf9,0xfc,0xea, +0xd6,0xea,0x8a,0xfd,0xa6,0xfc,0xf3,0xed,0x59,0xed,0x35,0xe7, +0x8c,0xcd,0x82,0xc0,0xd7,0xca,0x8,0xd5,0xc1,0xdb,0x41,0xe7, +0x39,0xee,0x5c,0xee,0x26,0xf5,0x54,0xfe,0x49,0xfc,0xe7,0xfa, +0xc9,0x2,0xe7,0xff,0xde,0xf5,0xe1,0x1,0xad,0x13,0x34,0xb, +0x9e,0x0,0xab,0xa,0x4f,0xb,0xab,0xf8,0xe5,0xf4,0xdf,0x2, +0x95,0x0,0x4e,0xf0,0x39,0xf5,0x7c,0xa,0xd9,0xe,0xa1,0x8, +0xfd,0xf,0x77,0x19,0x3f,0x13,0xfb,0xa,0x2e,0xc,0x64,0x7, +0x25,0xfc,0xd8,0xfd,0x73,0x1,0x8,0xf9,0x8e,0xf9,0x4e,0x1, +0xff,0xf8,0x1,0xf2,0xbf,0xfd,0x69,0x5,0x14,0xff,0x3f,0xfd, +0x5a,0x6,0x6a,0xd,0xf3,0x9,0xcb,0x4,0xa7,0x9,0xed,0x10, +0xfe,0x8,0xe3,0xf7,0xd4,0xf4,0xf5,0xfc,0x6e,0xfd,0x25,0xfa, +0xa1,0xfa,0xd9,0xf8,0x5e,0xf8,0x49,0xfe,0x76,0x0,0xe7,0xfc, +0xdf,0xfe,0x50,0x3,0x99,0xfe,0x85,0xf8,0x92,0xfe,0x96,0x7, +0x7d,0x4,0xe0,0xfc,0xf1,0xfe,0x3b,0x2,0x75,0xfb,0x6e,0xf8, +0x3,0x1,0xcb,0x5,0xa2,0x5,0xd0,0x8,0x5b,0x8,0x18,0x9, +0x97,0x15,0xfb,0x1a,0x24,0xe,0xcf,0x7,0xc3,0xe,0xb8,0xb, +0xd8,0x1,0x76,0x6,0xdc,0xd,0xe6,0x6,0x3b,0x3,0xae,0xf, +0x2e,0x18,0x96,0x10,0x3d,0x8,0xbc,0x6,0xb9,0x0,0x8b,0xf6, +0xf0,0xf3,0xef,0xf5,0xb9,0xf4,0xcd,0xf4,0x1c,0xfa,0x87,0xfe, +0xb8,0xfe,0x70,0x1,0x47,0x5,0x85,0x0,0xfa,0xfc,0x21,0x5, +0x37,0xa,0x58,0x8,0x71,0xa,0x95,0x9,0x66,0x3,0xb0,0x4, +0x5b,0x8,0x19,0x2,0x5,0xfb,0x4d,0xfb,0x96,0xf5,0x81,0xea, +0x1d,0xf2,0x10,0x3,0xf2,0xfd,0x43,0xf2,0xda,0xf9,0x1c,0x2, +0xe0,0xfe,0xd9,0x2,0xe9,0xc,0xfb,0x6,0xdc,0xf7,0xcd,0xf9, +0xb6,0x3,0x72,0xff,0xac,0xfd,0x5f,0x8,0x59,0x4,0xaa,0xf2, +0xb8,0xf3,0xc5,0x3,0xa5,0x5,0x51,0xfa,0x80,0xf6,0x83,0xfa, +0x9a,0xfc,0xc9,0xfd,0xa9,0xfd,0xfa,0xfe,0xf6,0x5,0xb7,0x0, +0xfe,0xed,0x72,0xf0,0x8b,0x2,0x67,0xfe,0x36,0xf1,0x5a,0xf6, +0xb8,0xfc,0x1f,0xf9,0x1e,0xfe,0xf7,0x7,0xcd,0x0,0x50,0xf6, +0x79,0xff,0xdb,0x5,0x15,0xf7,0xdb,0xf2,0x3e,0x3,0xdb,0x2, +0xb5,0xf2,0xe5,0xf9,0xcb,0xc,0xe3,0x8,0xbd,0x2,0x32,0xe, +0x6,0xc,0xbd,0xf9,0x84,0xfd,0x7b,0xc,0x86,0x1,0xaf,0xef, +0x73,0xf8,0x20,0x8,0x5f,0x3,0xb0,0xfb,0x5,0x3,0x38,0x8, +0x3a,0x1,0xc9,0xfb,0xd,0xfe,0xd8,0x3,0xd7,0x8,0x22,0x8, +0x2e,0x5,0x24,0x9,0xcb,0x12,0x4c,0x15,0x87,0x7,0xf7,0xf5, +0x31,0xf3,0x57,0xf6,0x42,0xf0,0xb3,0xed,0xc9,0xf8,0xae,0xff, +0x7c,0xf9,0xdf,0xf7,0x98,0x1,0xf7,0x5,0x94,0xfd,0xc1,0xf2, +0xc8,0xee,0x6f,0xf3,0x67,0xf9,0x58,0xfa,0x0,0xff,0xf6,0x9, +0x65,0xa,0x9c,0xff,0xe2,0x1,0x48,0x11,0x7a,0xe,0x47,0xfb, +0x6a,0xfb,0xfc,0x7,0x7e,0x3,0x2f,0xff,0x6,0xb,0x3b,0xe, +0xa9,0x4,0x60,0x4,0xfd,0x9,0x2a,0x7,0x6f,0x4,0x32,0x8, +0x5f,0x3,0x99,0xf9,0x9b,0x1,0x5a,0xd,0x6d,0x7,0x3e,0x4, +0xa1,0x9,0xcb,0x1,0xfd,0xf8,0x16,0x0,0xbc,0x1,0x4f,0xf7, +0x98,0xf7,0x12,0x0,0xa4,0xff,0x19,0x1,0x6d,0xc,0xfa,0xf, +0xe2,0x8,0x6b,0x7,0x20,0xd,0x2a,0x10,0x5b,0xf,0x84,0x12, +0xa8,0x1a,0x99,0x1d,0xec,0x19,0xe4,0x15,0x8f,0xf,0x7f,0x6, +0xd1,0xfe,0x20,0xfa,0xd9,0xf9,0xf,0xfa,0xf7,0xf8,0x4a,0xfd, +0x3d,0xff,0xda,0xf5,0x8d,0xf3,0x7b,0xfc,0x7c,0xf8,0xa,0xf0, +0xe2,0xf9,0x3d,0x0,0x50,0xf7,0xa7,0xfc,0x4a,0xc,0xec,0x8, +0x1b,0xfe,0xd9,0xfe,0xfd,0xfe,0x5c,0xf5,0xd4,0xee,0x5c,0xf3, +0x20,0xf5,0x59,0xef,0xe3,0xf1,0xc3,0xf9,0xe8,0xfa,0xe,0xfd, +0x7d,0xfd,0x53,0xf4,0xc6,0xf0,0xa5,0xf5,0xbb,0xf3,0xad,0xf1, +0xbc,0xf8,0xda,0xfa,0x55,0xf5,0xfc,0xf8,0xbc,0x0,0x9,0xfc, +0x92,0xf5,0x79,0xf7,0x1f,0xf5,0xa4,0xee,0x6a,0xf1,0x99,0xf8, +0xb1,0xf6,0x8a,0xf0,0xfe,0xf4,0xbf,0xfc,0xdc,0xf6,0x76,0xf0, +0x6d,0xf8,0xc0,0xfc,0xfd,0xf4,0x76,0xf3,0x38,0xfb,0x8d,0xfe, +0x62,0xfd,0x6a,0xff,0xf1,0x0,0x4e,0xfd,0xaf,0xfb,0x6,0xff, +0x76,0xff,0x25,0xfe,0x7a,0x1,0xa2,0x2,0x4,0xff,0x89,0x2, +0x44,0x8,0x2b,0x0,0x5e,0xf6,0xd8,0xf9,0x83,0xfa,0x93,0xf1, +0x2a,0xf2,0xda,0xfb,0xc8,0xfc,0x90,0xfa,0x61,0x1,0x17,0x5, +0x4c,0xfe,0x48,0xfa,0xc4,0xf7,0x2f,0xee,0x75,0xea,0x80,0xef, +0xab,0xed,0xb8,0xeb,0xa6,0xf5,0x7e,0xfc,0xc,0xf9,0xb2,0xfa, +0x98,0x0,0xb8,0xfc,0x2a,0xf7,0xb,0xfb,0xf7,0xfb,0xe1,0xf7, +0x2b,0xff,0x39,0x7,0x52,0xfd,0xdd,0xf5,0x65,0x0,0xb1,0x4, +0x33,0xfb,0x2e,0xfa,0x11,0x1,0xdb,0xff,0xd3,0xfc,0x4d,0x1, +0x62,0x5,0x30,0x5,0x93,0x6,0x8f,0x7,0xf2,0x3,0xff,0x2, +0x1b,0x9,0x2d,0xb,0x10,0x4,0x8e,0x2,0xcd,0xa,0xa8,0x9, +0x92,0xff,0x22,0x2,0xf3,0x8,0xf3,0x1,0xdb,0xfd,0x91,0x6, +0xcd,0x8,0x50,0x4,0x3a,0x9,0x65,0xf,0x93,0x8,0x54,0x0, +0x88,0x2,0x64,0xff,0x7b,0xf0,0xdd,0xef,0xba,0xff,0xca,0xff, +0xd6,0xf5,0x8,0x2,0x41,0x11,0xec,0x3,0x78,0xf4,0x16,0xfa, +0xe5,0xf8,0xd0,0xe9,0x32,0xe9,0x64,0xf6,0x66,0xff,0x50,0x7, +0xfe,0xf,0x77,0xf,0x91,0x7,0x8b,0x2,0xea,0xfb,0x1b,0xed, +0xd5,0xe4,0x58,0xeb,0x64,0xef,0xc1,0xee,0x6,0xfc,0x26,0x11, +0x55,0x15,0x94,0xc,0xed,0xd,0xe,0x11,0x2,0x2,0x45,0xf3, +0x59,0xf6,0x71,0xf6,0x15,0xed,0x8c,0xf0,0xf,0x0,0x64,0x5, +0xae,0x3,0x29,0xe,0x8f,0x17,0xf1,0xb,0x94,0x2,0x91,0x8, +0xaf,0x1,0x49,0xf1,0x29,0xf4,0x38,0xfb,0x6c,0xf2,0xf5,0xef, +0x1e,0xfd,0x6f,0x0,0x16,0xf9,0x18,0xfc,0x56,0xfe,0x1b,0xf3, +0x7,0xf0,0x89,0xf9,0x6,0xfa,0x34,0xf6,0x1d,0xff,0xb8,0x9, +0x93,0x5,0xfd,0xfe,0xb1,0x5,0x8b,0x8,0x68,0xfa,0xfe,0xf2, +0x2c,0xf8,0xcb,0xf2,0xfe,0xeb,0xe8,0xf5,0x11,0xfd,0xaa,0xfb, +0x68,0x6,0xe4,0x11,0xc4,0xc,0xe6,0xb,0xa0,0x14,0x55,0xe, +0xd6,0xff,0x4e,0x0,0xde,0x3,0x2d,0xfb,0x79,0xf7,0x35,0x5, +0xbf,0xe,0xd4,0x6,0x9d,0x5,0xff,0x11,0xa0,0xd,0xaa,0xfd, +0x5f,0x4,0xc6,0xe,0x8d,0x0,0x64,0xf9,0xc5,0x8,0xd7,0xa, +0xc0,0xfe,0xa7,0x1,0x77,0x9,0x9e,0x5,0x80,0x2,0xc,0x3, +0xaa,0x0,0x1f,0x4,0xa4,0xa,0x79,0x3,0x85,0xfa,0x39,0x4, +0x62,0xd,0x6d,0x0,0x31,0xf5,0x37,0x1,0xfe,0xb,0x7f,0x4, +0x0,0x1,0xa7,0x8,0x4a,0x9,0x46,0x1,0xc5,0xf6,0x18,0xef, +0x17,0xf5,0x35,0xfc,0xb3,0xf3,0xf9,0xf0,0xfb,0x2,0xe3,0x13, +0xa4,0x13,0xae,0xc,0x17,0x11,0x8b,0x19,0x42,0xc,0xf5,0xf5, +0x6b,0xf7,0xac,0x1,0x90,0xf8,0xcb,0xed,0x89,0xf8,0x9a,0x8, +0x0,0xc,0x12,0xb,0xd1,0xa,0x2d,0x9,0xb2,0xa,0x91,0xa, +0xd7,0x1,0xc1,0xf7,0xff,0xf3,0x7d,0xf5,0xf5,0xf2,0x95,0xee, +0x96,0xf9,0x4a,0x5,0xbf,0xfa,0x52,0xf4,0xb5,0x0,0xdf,0x2, +0x9a,0xfa,0x69,0xfd,0x8c,0xff,0x13,0xf6,0xa1,0xf5,0xcf,0xfe, +0xc3,0xf9,0x3,0xf6,0x91,0x3,0xf,0x0,0xe,0xef,0x4c,0xf8, +0x3b,0x1,0x2f,0xf1,0x23,0xf2,0xfe,0x5,0xf8,0xff,0xd6,0xf0, +0x3d,0x0,0x97,0xf,0x45,0x0,0x7e,0xf8,0x28,0x6,0xc7,0x2, +0x24,0xf2,0x80,0xf4,0xde,0xfe,0x9d,0xf7,0xc6,0xec,0x3d,0xfa, +0x89,0x7,0x3,0xf8,0x4f,0xf7,0x9e,0x11,0x69,0xd,0x58,0xf7, +0xdc,0xfe,0x82,0x7,0xe3,0xfb,0xe5,0xf8,0xfb,0x1,0x5c,0x2, +0x2c,0xfc,0x7c,0x0,0x94,0xb,0xed,0xa,0x31,0x1,0x5e,0xfd, +0x1,0xff,0xd0,0xfb,0xaf,0xf5,0x9e,0xfc,0x5b,0xb,0xf9,0xc, +0x25,0xb,0x4c,0x11,0xdb,0x12,0xcd,0xf,0xe,0xb,0x56,0x1, +0x8f,0xfd,0xc1,0x0,0xc1,0x0,0xac,0x3,0x7e,0x10,0x34,0x1f, +0xdb,0x21,0xca,0x19,0xea,0x16,0xa3,0x13,0xbc,0x5,0x81,0xfc, +0x0,0xfb,0x1a,0xf8,0xb4,0xfa,0xd3,0x1,0x80,0x7,0xb3,0x10, +0x54,0x18,0x8e,0x16,0xf3,0x10,0x2e,0xd,0x10,0xc,0x8b,0xb, +0xa6,0x7,0x17,0x2,0xee,0x1,0x62,0x5,0xe2,0x1,0xe7,0xfd, +0x3,0x5,0x76,0x6,0xd3,0xfb,0xae,0xfc,0xa6,0x5,0x55,0x3, +0x82,0x1,0x7d,0xa,0x47,0xf,0xd0,0x8,0xdb,0x5,0x4e,0xd, +0x3b,0xd,0x4f,0x1,0xaf,0xff,0xec,0x6,0x6a,0x1,0x5c,0xf6, +0xd2,0xf9,0x69,0x3,0xdb,0x0,0xf1,0xfc,0x9b,0x5,0xe8,0x9, +0xf3,0x4,0x7a,0x8,0xa9,0xc,0xb7,0x6,0x6f,0x3,0xd2,0x3, +0x2a,0x1,0xab,0xfe,0xfa,0xfb,0x43,0xfc,0x92,0x4,0xf6,0xa, +0x5c,0x9,0xe,0xa,0x6c,0xd,0xf,0x7,0x37,0xfe,0xc5,0x1, +0xe3,0x1,0xc2,0xf2,0xcc,0xec,0xb2,0xf6,0xa1,0xf9,0xf3,0xf6, +0x8f,0xfe,0x2f,0x7,0x17,0x2,0x70,0xf9,0x68,0xfb,0xc7,0xfe, +0x20,0xfb,0xe4,0xfb,0x42,0x1,0x37,0xfe,0x24,0xfa,0xc3,0xff, +0x86,0x0,0xb,0xf4,0x52,0xec,0x82,0xed,0xf1,0xe6,0x61,0xdf, +0xa4,0xe7,0x81,0xf0,0x69,0xed,0xbb,0xf1,0x7f,0xff,0xe7,0x0, +0x62,0xfc,0xea,0x2,0x4a,0x7,0xee,0xff,0x56,0xfc,0x8,0x3, +0x6e,0x8,0xc0,0x4,0xe0,0xff,0xc9,0x3,0x87,0x8,0xd7,0x6, +0xed,0x6,0xe2,0x7,0xb4,0x5,0xc1,0x6,0x35,0x6,0x58,0xff, +0x85,0xfd,0xe9,0x0,0x34,0xff,0xc,0xfa,0xa5,0xf8,0xa9,0xfe, +0xeb,0x5,0x99,0x1,0xb6,0xf7,0xf6,0xf9,0xe5,0xff,0x1,0xf8, +0xe7,0xef,0x5b,0xf7,0xbb,0xfe,0xd1,0xfa,0x45,0xf8,0xba,0xfb, +0xbe,0xfb,0x1f,0xf7,0x5b,0xf7,0x44,0xfc,0x2d,0xf9,0x60,0xf2, +0x92,0xf5,0x2a,0xf7,0x7a,0xf1,0x5e,0xf8,0x2a,0x5,0x74,0x1, +0xbd,0xfb,0xf0,0x2,0x73,0x6,0x42,0x2,0x1b,0x2,0x65,0xff, +0x8e,0xf4,0x5,0xed,0x95,0xeb,0xab,0xeb,0xf9,0xef,0x7,0xf7, +0xba,0xfb,0x4b,0xff,0xf0,0x2,0x8d,0x5,0xb8,0x6,0xfd,0x5, +0x4d,0x3,0xed,0xfd,0xf5,0xf7,0x12,0xf7,0x3e,0xf9,0x7,0xf8, +0x96,0xf6,0x6a,0xf9,0x32,0xfb,0x51,0xfa,0xc2,0xff,0x7f,0xa, +0x83,0xe,0xd2,0xe,0xa5,0x13,0x8e,0x14,0x80,0xe,0x44,0xa, +0xb6,0x4,0xd8,0xfb,0xaf,0xf9,0x8a,0xfb,0x58,0xf9,0x8d,0xfa, +0xfe,0x1,0x9e,0x4,0x4e,0x0,0x34,0xfe,0xde,0xff,0x5a,0xfb, +0x2c,0xee,0x54,0xe7,0xa4,0xec,0x41,0xee,0x49,0xe8,0x7c,0xe9, +0x8c,0xf2,0x95,0xf6,0xdc,0xf2,0x58,0xf0,0x66,0xf4,0xc1,0xf5, +0x93,0xed,0x21,0xe9,0x51,0xef,0xa0,0xf3,0x24,0xf4,0xba,0xf8, +0xb4,0xfe,0x89,0x2,0xd,0x3,0x39,0xff,0xbe,0xfe,0x3b,0x2, +0xc6,0xfd,0xf6,0xf5,0x86,0xf7,0xff,0xfb,0xd3,0xfc,0x56,0x0, +0x1e,0x6,0x3c,0x7,0xe0,0x3,0x5d,0x2,0xef,0x6,0xa8,0xa, +0x73,0x6,0x3a,0x6,0x2a,0xf,0xdf,0xd,0xa4,0x4,0x98,0xa, +0x82,0x12,0xea,0x8,0x5f,0x2,0x87,0x9,0x79,0xc,0x3d,0xa, +0x8b,0xc,0x1,0xf,0x58,0xd,0x21,0xc,0x92,0xd,0xac,0xd, +0x24,0xd,0x5f,0xf,0xe1,0xd,0x1e,0x8,0xab,0x7,0x4c,0x7, +0x52,0x0,0xcc,0xfa,0x1b,0xf8,0x51,0xf5,0xf,0xf5,0x4c,0xf6, +0x52,0xfa,0xbd,0x0,0x90,0x0,0x9f,0xfd,0x76,0x2,0x24,0x7, +0x5c,0x2,0xa6,0xfa,0xb8,0xf6,0xa4,0xf4,0xb2,0xf1,0xa5,0xf1, +0xaa,0xf9,0x34,0x2,0x20,0x0,0xd1,0xfd,0x76,0x7,0x1a,0xc, +0xcb,0x2,0x68,0x0,0xa8,0x3,0x79,0xfa,0xcf,0xf3,0x84,0xfc, +0x54,0x2,0xe4,0xfe,0x7f,0xfd,0xc3,0x0,0x26,0x4,0x6c,0x3, +0x9e,0x1,0x40,0x3,0x41,0x3,0xac,0x1,0x97,0x3,0xda,0x4, +0x7e,0x5,0x47,0x9,0x46,0xa,0xbe,0x6,0x4a,0x5,0x37,0x7, +0x17,0x7,0xc3,0xff,0x7,0xf7,0x16,0xf9,0xa8,0x1,0xb1,0x0, +0x53,0xf9,0xae,0xfd,0xc4,0x8,0xfe,0x6,0x3d,0x1,0x3c,0x7, +0x63,0xa,0x92,0xff,0x9c,0xf5,0x7a,0xf5,0xb1,0xf5,0xed,0xf0, +0x44,0xf1,0xf4,0xf7,0x21,0xf9,0x65,0xfc,0x48,0x9,0x99,0xb, +0x64,0x0,0x18,0xfe,0x81,0x3,0x13,0xff,0x85,0xf4,0x7,0xf4, +0x3e,0xfa,0xaf,0xfa,0x8a,0xfc,0xe5,0x2,0x46,0x3,0xbd,0x4, +0x61,0x9,0x3d,0x3,0x87,0xfc,0xde,0x1,0x48,0x3,0x6a,0xf9, +0xbf,0xf4,0xe2,0xfc,0xd0,0x3,0x78,0x1,0xac,0x0,0xd5,0x2, +0x6b,0x0,0x70,0xff,0x91,0x1,0x62,0xff,0x57,0xfe,0xfd,0x2, +0x9,0x1,0xc9,0xf7,0xe7,0xfb,0x89,0x8,0x91,0x2,0xde,0xf7, +0x43,0xff,0xa1,0x2,0xdd,0xf8,0xa5,0xf6,0x39,0xfb,0x33,0xfe, +0x33,0xff,0x44,0xfc,0x7,0xfc,0x3c,0x1,0x4e,0x4,0x51,0x3, +0xe9,0xfd,0xa1,0xfa,0x7c,0x1,0x8b,0x3,0xe9,0xf9,0xa7,0xfb, +0x4f,0x9,0xb4,0x7,0xfb,0xfb,0xd9,0xff,0xc,0xb,0xf7,0x8, +0xb,0xff,0x1a,0xfc,0x75,0x3,0x91,0x8,0x94,0x2,0x65,0x1, +0xd,0x8,0x12,0x4,0xf6,0xfd,0x8b,0x0,0x20,0xff,0xb,0xfe, +0x16,0x2,0x98,0xfd,0xd3,0xf7,0x28,0xfd,0xa1,0x1,0x9e,0xfd, +0x6f,0xf9,0xa4,0xfb,0xd2,0xff,0xb2,0xfc,0x6b,0xf6,0xd4,0xf8, +0x50,0xff,0xab,0xfe,0x9c,0xfb,0x59,0xfc,0x57,0xfa,0x29,0xf6, +0x98,0xf6,0xa5,0xf7,0x2d,0xf9,0x5c,0xfc,0x73,0xfa,0x3,0xfb, +0x9a,0x1,0xed,0xfe,0x84,0xfa,0x55,0x1,0xa9,0x3,0x59,0xfd, +0x4d,0xfc,0x5,0x0,0x3b,0x1,0xbd,0xfd,0x60,0xfa,0x78,0xfc, +0xe,0xfd,0xa0,0xf9,0xa1,0xfa,0xcc,0xfc,0x43,0xfb,0x7c,0xfe, +0xf3,0x4,0x80,0x1,0x2b,0xfa,0xd3,0xfe,0xa,0x7,0x47,0x3, +0x62,0xfd,0x99,0x3,0x30,0xa,0x2,0x1,0xcf,0xf6,0xea,0xfd, +0xbd,0x3,0xd2,0xfc,0x4,0x0,0x60,0xa,0xbe,0x4,0xec,0xfd, +0xa1,0x7,0x88,0xe,0x9b,0x4,0xea,0xf9,0x5b,0xfa,0x68,0xfa, +0xc7,0xf2,0xa,0xf0,0xf5,0xf8,0x5f,0x1,0x96,0xfe,0x1c,0xf8, +0xfc,0xfa,0x4e,0x4,0xe7,0x7,0x75,0x1,0xf0,0xf8,0x68,0xfa, +0xbf,0xff,0x10,0xfd,0xaf,0xfd,0xe1,0x5,0x31,0x7,0xe0,0x3, +0x2e,0x2,0x9a,0xff,0x62,0x2,0x56,0x9,0x77,0x9,0x18,0x6, +0x54,0x6,0x6c,0x7,0xe,0x7,0xd9,0x6,0x63,0x7,0xa0,0x8, +0x1e,0x9,0x93,0x5,0x17,0x4,0x93,0xb,0xec,0xf,0x65,0xc, +0x16,0xe,0xd6,0xf,0x40,0x8,0xab,0x3,0xf0,0x6,0x3a,0x6, +0x18,0x0,0x2b,0x1,0xce,0x9,0x6a,0x9,0x50,0x2,0xc9,0x5, +0x9e,0xd,0x59,0xd,0xed,0x9,0x3e,0x8,0x83,0x6,0x1b,0x3, +0x5,0xff,0xfb,0xfb,0x4e,0xfc,0x58,0x3,0x84,0x7,0x2b,0x0, +0xb1,0xfe,0x19,0x8,0xba,0x6,0x88,0xfc,0x7,0xfc,0x20,0xff, +0xc9,0xf8,0xf5,0xf3,0x66,0xff,0xf6,0xb,0x31,0x9,0xdc,0x5, +0xff,0x8,0xb7,0x6,0x6e,0x3,0xe,0x5,0x16,0x3,0xc,0xfd, +0xbe,0xf9,0xdf,0xfa,0xe5,0xff,0x8c,0x5,0xb5,0x7,0x45,0x7, +0xd6,0x4,0x2f,0x0,0xa7,0xff,0xec,0x2,0xb4,0xff,0xe3,0xfb, +0xc3,0x0,0xf4,0x1,0xc3,0xfc,0x2d,0x0,0x4d,0x7,0xcb,0x3, +0xa,0xfd,0x9c,0xfd,0x93,0xfe,0x8a,0xfc,0x81,0xff,0xd3,0x2, +0x64,0xfe,0x3f,0xfb,0x6f,0xfe,0x16,0x1,0x43,0x1,0x92,0x0, +0x35,0x0,0xc8,0xff,0xc,0xff,0x18,0x1,0x9b,0x2,0x13,0x1, +0xf,0x2,0xeb,0x0,0xd5,0xfb,0x4e,0xff,0xe6,0x5,0x76,0x2, +0x94,0xff,0xcb,0x4,0x57,0x7,0x6e,0x6,0x65,0x9,0xc,0xb, +0x7a,0x6,0xca,0x1,0xbc,0xff,0xc3,0xfe,0x8d,0xfd,0x7,0xf9, +0xb9,0xf6,0x68,0xfb,0x12,0xfd,0x17,0xfe,0xbf,0x8,0x29,0xc, +0x68,0xff,0x55,0xfb,0x69,0x3,0x15,0x1,0xce,0xf8,0x90,0xfa, +0x4d,0xfe,0x39,0xfb,0xab,0xf8,0x41,0xfc,0xb,0x1,0xb2,0x0, +0x6c,0xfd,0xc1,0xfa,0x49,0xf7,0xbd,0xf8,0x72,0x1,0xc3,0x1, +0xd4,0xf7,0x13,0xf8,0x6f,0xff,0x2e,0xf8,0xd7,0xed,0x5d,0xf7, +0xa,0x4,0xbf,0xff,0x86,0xf9,0x7a,0xff,0xb5,0xa,0x6b,0xd, +0x51,0x2,0xde,0xfa,0x94,0x0,0x9f,0xfe,0x23,0xf2,0xaa,0xf4, +0x39,0x5,0x80,0x7,0x89,0xfe,0xa1,0x3,0x5b,0x7,0x5a,0xfd, +0xbc,0x5,0x22,0x12,0x6b,0xff,0xb8,0xf6,0x40,0x9,0x11,0x6, +0xc9,0xf3,0x84,0xf9,0x77,0x4,0x75,0xf9,0xde,0xf0,0x5f,0x1, +0xfa,0xb,0x88,0x2,0x84,0x6,0xa3,0xf,0x4e,0x1,0x90,0xf8, +0xb0,0x7,0x91,0x8,0xd5,0xf2,0xc8,0xf3,0xe0,0x9,0x58,0x0, +0x49,0xea,0x9c,0xf7,0xd3,0x2,0xa0,0xf2,0xb6,0xee,0x2e,0xf9, +0x9a,0xf9,0xdd,0xf5,0xc0,0xf6,0xb2,0xf3,0xd9,0xe8,0x22,0xe8, +0x58,0xee,0x4e,0xe3,0x13,0xe3,0x2e,0x1,0xdf,0x8,0x4e,0xf2, +0x22,0xf4,0x4d,0x9,0xd7,0x2,0x36,0xec,0xf6,0xf1,0xb2,0x5, +0xd2,0xfd,0x83,0xee,0x38,0xfc,0x9a,0x12,0x3c,0xf,0xdc,0xfd, +0x12,0xfd,0x74,0x1,0xe,0xf9,0x70,0xf8,0x89,0xfe,0xcb,0xfb, +0xf4,0xff,0x2f,0x3,0x39,0xf6,0x27,0xf2,0xd4,0xfc,0xdc,0x0, +0xb4,0xf7,0x24,0xed,0x9d,0xf6,0xd2,0x4,0x50,0xf8,0x53,0xf1, +0xb3,0x7,0x68,0x9,0x68,0xec,0x33,0xe7,0x8b,0xf8,0xcd,0xf4, +0xf5,0xe8,0x95,0xf0,0x1e,0xf9,0xb7,0xf5,0xda,0xf2,0xff,0xf7, +0xc2,0x1,0x4d,0xff,0xf0,0xf0,0xaa,0xed,0xc5,0xee,0xbc,0xea, +0xb,0xf0,0xe9,0xf3,0xe6,0xee,0xf1,0xf6,0x51,0x2,0xaf,0xfb, +0x38,0xf6,0xf4,0xfe,0x86,0x1,0x98,0xf7,0x68,0xf4,0xf1,0xfd, +0xfd,0x5,0x14,0x5,0x8e,0x3,0x5c,0xa,0x20,0x10,0xb,0x9, +0x52,0x2,0x46,0x5,0xda,0x4,0xe1,0x0,0x1b,0x3,0xdd,0x6, +0x14,0x6,0xd4,0x4,0x89,0x8,0xda,0xa,0x1c,0x6,0x56,0x7, +0xfd,0xe,0x24,0xc,0x3e,0x7,0x9f,0xb,0xa7,0xb,0xe,0x7, +0x32,0x9,0x4e,0xb,0xd4,0x7,0x81,0x4,0x23,0x5,0xca,0xb, +0xc,0xf,0x4e,0x4,0x8c,0x0,0x3e,0x10,0xb2,0x10,0xb6,0xfb, +0x27,0xfd,0x42,0x11,0xba,0xb,0x9c,0xf9,0x38,0x2,0xc7,0x11, +0x9f,0x8,0x3f,0xff,0x3,0x8,0x17,0x5,0x26,0xf4,0xf,0xf5, +0x6d,0xfd,0x51,0xf3,0x5e,0xec,0xb9,0xfc,0xf1,0x6,0x5c,0xfb, +0x79,0xfa,0x79,0x9,0xc0,0x6,0xe5,0xf8,0xcc,0xfa,0x65,0xfe, +0xf,0xf9,0x19,0xfb,0x45,0xfc,0xda,0xef,0xad,0xf1,0x20,0xa, +0x3e,0xe,0x79,0xfa,0xb3,0xff,0xfc,0x1b,0x34,0x1f,0x7a,0x8, +0x1d,0x0,0xfe,0xc,0x9b,0xb,0xc6,0xf2,0x81,0xea,0x64,0x0, +0x55,0xf,0xb7,0x7,0x6f,0x3,0xe2,0x11,0x81,0x1f,0x9b,0x17, +0x60,0x8,0xf0,0x5,0x21,0x7,0x8b,0x1,0x9d,0xfa,0xd4,0xf6, +0x4f,0xfa,0x76,0x1,0x19,0xfe,0xca,0xf7,0xfd,0x1,0x3c,0xc, +0x6,0x2,0x13,0xfc,0xc7,0x6,0x1c,0x3,0xf9,0xf3,0xd8,0xf9, +0xf9,0x4,0x13,0xfb,0x65,0xf0,0xc5,0xf8,0xc9,0x4,0x4e,0x2, +0x50,0xfb,0x26,0x2,0x66,0xa,0xeb,0x2,0xf4,0xf9,0x58,0xfa, +0xe9,0xfd,0x51,0x0,0x55,0xf9,0x34,0xf0,0x51,0xf9,0x4,0x5, +0x6c,0xfd,0x6c,0xf7,0xed,0x1,0x3c,0x7,0x51,0xfe,0x89,0xfa, +0x29,0xff,0x57,0xfb,0xde,0xf4,0xb9,0xf8,0x88,0xf9,0xdd,0xf4, +0x66,0xfb,0xff,0x3,0x93,0xff,0x63,0xfc,0xef,0x3,0x54,0x6, +0x66,0xff,0x1,0xff,0x0,0x4,0x81,0x2,0xec,0x0,0xdf,0x2, +0xcb,0x1,0x0,0x3,0x82,0x6,0xf0,0x0,0xf3,0xf8,0x1d,0xfd, +0x6d,0x4,0xcb,0xff,0xae,0xfc,0x2a,0x8,0xf4,0xb,0xe4,0x1, +0xee,0x3,0xd0,0xa,0xd5,0x2,0xfa,0xfc,0xe3,0xfe,0x9d,0xf8, +0x68,0xf4,0x6d,0xfd,0xf7,0xff,0x9d,0xf5,0xce,0xf5,0x4a,0x1, +0x9a,0xff,0xd2,0xf6,0x8d,0xfc,0x76,0x3,0xb6,0xfa,0x48,0xf4, +0x11,0xfd,0xae,0x1,0x60,0xf9,0x71,0xf6,0xc5,0xfa,0xe1,0xf8, +0x1f,0xf6,0xb4,0xf6,0xe4,0xf3,0x7e,0xf4,0x49,0xfc,0x4d,0x1, +0x34,0x3,0x9f,0x4,0x3b,0x2,0x2d,0xff,0xb5,0xfe,0x9a,0xfd, +0xea,0xfa,0x8,0xfa,0x73,0xfd,0x5e,0x0,0x6,0x0,0xc,0x6, +0x29,0xf,0x4e,0xa,0xd6,0x1,0x31,0x4,0x3f,0xff,0x2f,0xf2, +0x57,0xf6,0x20,0x3,0x42,0x2,0xaa,0xfc,0x58,0xff,0x4,0x6, +0xe8,0x5,0x67,0xfc,0x6f,0xf7,0xb7,0xf9,0x1e,0xf3,0x45,0xec, +0x35,0xf8,0x30,0x4,0xfe,0xfd,0x8e,0xf9,0xc5,0x0,0xc6,0x2, +0x12,0xfd,0x61,0xf9,0xcd,0xf8,0x94,0xfa,0xcf,0xfa,0x67,0xf7, +0x4d,0xf9,0x59,0xff,0xf9,0xfd,0xd1,0xf7,0xd9,0xf4,0x20,0xf6, +0x4e,0xf8,0xa3,0xf4,0xef,0xf1,0x6a,0xfc,0x96,0x3,0x2,0xf8, +0x2a,0xf0,0xbd,0xf7,0xed,0xf7,0xd7,0xec,0xa7,0xe9,0xdc,0xee, +0xda,0xf2,0xb8,0xf4,0xe4,0xf4,0xac,0xf6,0x8a,0xfb,0x38,0xfb, +0x2d,0xf3,0xf2,0xeb,0xb,0xec,0xad,0xf1,0x81,0xf4,0x5e,0xf4, +0xef,0xfa,0x85,0x3,0xb,0x2,0xe8,0xfd,0xa7,0x1,0x51,0x5, +0xcd,0x1,0x2d,0xff,0x77,0x2,0x48,0x5,0x61,0x6,0x8d,0xa, +0x5a,0xd,0x38,0xa,0x48,0x9,0x3d,0xc,0xf,0x8,0x6f,0x1, +0xd9,0x7,0xd6,0x11,0x46,0xe,0xce,0x7,0x10,0xb,0x83,0xd, +0x5f,0x8,0x4f,0x4,0x3a,0x5,0xc8,0x6,0xd9,0x6,0xb3,0x7, +0x13,0xb,0x3c,0xe,0xe8,0xe,0x29,0xd,0x22,0x7,0x47,0x2, +0xbb,0x6,0xf3,0x7,0xf0,0xfd,0xa6,0xfe,0xfd,0xa,0x42,0x7, +0x89,0xfc,0xb5,0x2,0x4e,0x8,0x57,0x0,0xa5,0xff,0xda,0x7, +0x53,0x5,0x83,0xfe,0x4d,0x5,0x8d,0xd,0xd2,0x3,0xc8,0xf8, +0x7e,0x2,0x36,0xb,0x30,0xfe,0xdd,0xf7,0x3f,0x8,0x3a,0xf, +0x51,0x2,0xb7,0xfe,0x65,0xa,0x9d,0xd,0x75,0x3,0xf4,0xfc, +0xd6,0xfc,0xb1,0xfa,0xec,0xfa,0x98,0xfc,0xff,0xf6,0x28,0xf7, +0xac,0x3,0xe0,0x4,0xdc,0xf9,0x62,0xff,0x30,0x11,0x28,0xf, +0x35,0xfe,0x3c,0x0,0x4c,0x10,0x2f,0xe,0xcf,0x0,0xba,0x2, +0x51,0xb,0xe4,0x7,0x61,0x3,0xbb,0xa,0x4b,0xf,0x73,0x8, +0x84,0x7,0x44,0xf,0x51,0x10,0x91,0xc,0xd5,0xb,0x8f,0x9, +0xf7,0x2,0xa3,0xfe,0x60,0x2,0xfd,0x5,0x90,0x0,0x8c,0xfb, +0xb2,0xfd,0x7f,0x0,0xc6,0x1,0xeb,0x1,0x37,0x3,0xf7,0x7, +0x1d,0x7,0xa2,0x0,0xe4,0x2,0x8a,0x7,0xa,0x0,0x89,0xf8, +0xa2,0xfa,0xcf,0xf8,0x3,0xf4,0xb4,0xf8,0x4a,0xfe,0xc9,0xff, +0x46,0x5,0x39,0x7,0x13,0x2,0x7b,0x1,0x7a,0x2,0x58,0xfc, +0x4f,0xf2,0xe8,0xec,0xc,0xf3,0x81,0xfa,0xb1,0xf6,0x34,0xf6, +0xd,0x3,0xa6,0xb,0x1a,0x7,0xe1,0x0,0x26,0x1,0x71,0x2, +0xe5,0xfb,0x91,0xf2,0x99,0xf3,0xc3,0xfc,0x65,0x0,0xf7,0xfb, +0x8c,0xf9,0x44,0x0,0x23,0xa,0x3a,0xb,0x73,0x5,0x14,0x5, +0x7b,0x8,0x4,0x7,0xeb,0x2,0x4c,0x0,0x1a,0x1,0x3,0x3, +0x51,0xfb,0x15,0xee,0x8,0xef,0x7e,0xfc,0xf9,0x3,0x1f,0x3, +0x6f,0x4,0xc2,0xa,0x4a,0xe,0xe2,0x8,0xc4,0x0,0x87,0xff, +0xb6,0xff,0x71,0xf6,0xc4,0xec,0x5b,0xf0,0x2d,0xfa,0xd4,0x0, +0x7f,0x5,0x46,0x8,0x99,0x8,0x3e,0x7,0x55,0x5,0x1f,0x2, +0xa4,0xf9,0x28,0xf3,0xe3,0xf6,0x2c,0xf8,0x3b,0xf3,0x84,0xf6, +0x3e,0xfd,0x6f,0xfb,0xd7,0xf8,0x2f,0xfb,0x1a,0xfc,0x58,0xfb, +0x1b,0xfd,0x2d,0xfe,0x80,0xfd,0x33,0x1,0xab,0x5,0x8d,0x2, +0xd1,0xfc,0x99,0xf9,0x4b,0xf6,0xf9,0xf6,0x20,0xff,0xc6,0x3, +0xbd,0xff,0x47,0x3,0xb0,0xe,0xa,0x7,0x2d,0xf6,0x36,0x1, +0x6d,0x11,0xd4,0xff,0xf4,0xef,0x69,0x5,0x20,0x17,0x64,0x9, +0xa3,0x3,0x87,0x11,0x44,0xc,0x10,0xf9,0xdf,0xf8,0x69,0xfb, +0xb8,0xf3,0x95,0xf8,0x4f,0x0,0xf9,0xf7,0x12,0xf9,0x88,0xb, +0x1,0xf,0x4c,0x1,0x39,0xfd,0x3e,0x2,0x3e,0xff,0x9,0xf8, +0x12,0xf9,0xa0,0xfe,0x23,0xfe,0x92,0xf9,0x4,0xfc,0x7,0x3, +0xcb,0xff,0x74,0xf8,0xbe,0xfc,0xa6,0xff,0x37,0xf9,0x8a,0xfd, +0x8,0x7,0xc2,0xfe,0xb,0xf4,0xf,0xfa,0x10,0xff,0x75,0xf6, +0xd1,0xf0,0xa,0xf6,0xf9,0xf8,0x13,0xf8,0xc3,0xfc,0xba,0x0, +0xa6,0xfe,0x6e,0xff,0x59,0xff,0x5c,0xf5,0xfd,0xef,0xa9,0xfa, +0x88,0xff,0x6b,0xf3,0xfb,0xf4,0xf6,0x9,0x6b,0xa,0x44,0xfb, +0x61,0x5,0x61,0x12,0x5f,0xfe,0xfa,0xee,0x13,0x1,0x39,0xa, +0xcb,0xf8,0xab,0xf5,0x94,0x6,0x7c,0x8,0x20,0xfd,0xed,0xfd, +0xe6,0x6,0x48,0x5,0xb2,0xfa,0x5,0xf9,0x13,0x1,0xb3,0x0, +0x3c,0xf8,0x29,0xf7,0xad,0xfb,0xee,0xfc,0x8,0xfe,0xf7,0x0, +0x8,0x0,0xfc,0x0,0x1b,0xb,0x77,0xb,0x88,0xfe,0x47,0x3, +0x4f,0xe,0xb9,0xfc,0x74,0xeb,0xc7,0xf7,0x66,0x0,0x9f,0xf5, +0x97,0xf3,0x81,0x0,0xa0,0x6,0xe0,0xff,0xc0,0xfb,0x21,0x2, +0x85,0x6,0xce,0xfc,0x66,0xef,0x84,0xf0,0x51,0xf8,0x5f,0xf2, +0x25,0xe7,0xa5,0xeb,0xe1,0xf7,0x60,0xf7,0x1e,0xf2,0x3d,0xfc, +0x93,0x9,0xd9,0x4,0x1c,0xf9,0x5f,0xf4,0x53,0xf5,0x7f,0xfb, +0xd1,0xfa,0x32,0xf0,0xd4,0xf6,0x29,0xb,0x4,0xa,0xd2,0x0, +0xd5,0xe,0xa1,0x19,0x89,0x6,0x1e,0xf9,0x5f,0x7,0xb2,0xc, +0x10,0x0,0x46,0x1,0xa5,0x7,0x87,0x0,0xd6,0x2,0x51,0xd, +0x3b,0x5,0x69,0xfe,0x65,0xa,0x53,0xa,0xd5,0xfe,0x9d,0x9, +0x41,0x17,0xce,0x9,0x22,0xff,0xe0,0x8,0xc1,0x7,0x91,0xfd, +0xe9,0x6,0x92,0x11,0xf3,0x7,0x77,0x4,0xe5,0x12,0x2b,0x18, +0xa5,0x11,0x45,0x13,0x24,0x13,0x41,0x6,0x3,0x3,0x9f,0xa, +0x76,0x5,0x4f,0x1,0xee,0x8,0x5c,0x2,0xbd,0xf9,0x6c,0x8, +0xc8,0xd,0xeb,0xfc,0x74,0xfb,0x48,0x6,0x44,0x0,0x2a,0xf7, +0x6c,0xfd,0xf4,0x1,0x34,0xfa,0x76,0xf6,0x1e,0xf9,0xb0,0xf6, +0x4f,0xf7,0xea,0xfb,0xd3,0xf4,0xa9,0xee,0x8b,0xf7,0xfb,0xfa, +0x8f,0xf6,0x32,0xfd,0xa5,0x2,0x77,0xfb,0x3d,0xfb,0xa3,0x2, +0xc8,0xff,0x2a,0xfa,0x3b,0xfa,0xd5,0xf5,0x5b,0xef,0xb6,0xf0, +0x2a,0xf7,0x79,0xfc,0xbf,0xfc,0x2d,0xfc,0xea,0x0,0xe6,0x3, +0xcf,0x2,0xa2,0x2,0xa6,0xff,0x30,0xff,0xe7,0x3,0xd5,0xfd, +0xb1,0xf7,0x9,0x6,0x57,0xe,0x4c,0xff,0xee,0xf9,0x13,0x7, +0x3a,0x9,0xdf,0xff,0xc0,0x0,0x4b,0x8,0xc6,0x8,0xd8,0x4, +0x9d,0x3,0x49,0x5,0x67,0x4,0xdc,0xfc,0xe5,0xf5,0xf0,0xf7, +0x95,0xfd,0xff,0xfe,0xd5,0xfe,0x81,0x1,0x39,0x4,0x17,0x4, +0x41,0x3,0x1b,0x1,0x8e,0xfc,0x57,0xf9,0x61,0xf6,0x5e,0xf2, +0xc2,0xf3,0xb1,0xf8,0x75,0xf9,0xf1,0xf9,0xd2,0xfc,0x23,0xfc, +0xac,0xf9,0x7c,0xfb,0xd9,0xfd,0x10,0xfb,0x34,0xf6,0x3e,0xf4, +0x81,0xf3,0x48,0xf1,0xcc,0xf0,0xe8,0xf2,0xbc,0xf1,0x93,0xf0, +0xe,0xf8,0x42,0xfe,0xaa,0xfa,0xd9,0xfc,0x3f,0x6,0xab,0x1, +0x28,0xf5,0xea,0xf7,0xb5,0xfe,0xc5,0xf4,0xce,0xeb,0xec,0xf5, +0xc6,0xfd,0x91,0xf9,0x19,0xfe,0x70,0x8,0x20,0x9,0x2e,0x9, +0x80,0xb,0xb3,0x6,0x31,0x1,0x4,0x3,0xb,0x5,0x50,0x0, +0x79,0xfe,0x89,0x9,0xd3,0xf,0xd4,0x4,0x85,0x1,0x5a,0xd, +0xc1,0xc,0x54,0x0,0xf4,0xff,0x9a,0x6,0xf8,0x4,0xbc,0x1, +0xd3,0x4,0xbe,0x8,0xd6,0x8,0x3b,0x5,0xb4,0x0,0x1e,0x0, +0xac,0x1,0x5d,0x0,0xa4,0xfe,0x26,0x0,0x8,0x3,0x74,0x3, +0x78,0x2,0xcc,0x4,0x13,0x6,0xea,0x0,0x69,0xfd,0x3b,0xff, +0x48,0xff,0xa2,0xfd,0x67,0xff,0xef,0x5,0x3d,0xc,0x76,0xa, +0xec,0x5,0x9e,0x8,0xa2,0xa,0x14,0x3,0x86,0xfa,0x26,0xfa, +0xde,0xfe,0x7b,0x0,0x23,0xfe,0x58,0x1,0xf2,0xb,0xb7,0xf, +0x69,0x8,0xec,0x3,0x2b,0x4,0xf0,0xfe,0x2a,0xf9,0xec,0xf9, +0xe3,0xf9,0x12,0xfa,0x35,0x2,0xcb,0x7,0x9,0x4,0xaf,0x6, +0x6d,0xf,0x97,0x9,0x40,0xfc,0x2b,0xfd,0xc6,0x2,0xf7,0xfd, +0xab,0xfb,0xd5,0x4,0xac,0x8,0x12,0x1,0x71,0x0,0x83,0x6, +0x48,0x1,0x65,0xfc,0xa,0x6,0x4d,0xa,0x50,0x4,0x74,0x8, +0x7a,0x11,0xda,0xd,0x9e,0x4,0x34,0x2,0x20,0x1,0xb8,0xfb, +0xa4,0xfb,0x7a,0x1,0xd8,0x1,0x31,0x4,0x5f,0xe,0xf8,0xf, +0x98,0x8,0x64,0x6,0x47,0x6,0x2d,0x3,0xa3,0x0,0x7c,0x0, +0x73,0x3,0x4b,0x6,0x6b,0x4,0xa7,0x1,0xa3,0x3,0x29,0x6, +0xd8,0x1,0x38,0xfe,0xe4,0x5,0x36,0xe,0x2e,0xe,0xdc,0xe, +0xfb,0x10,0x22,0xe,0xd4,0x6,0xea,0xfc,0x36,0xf7,0xe0,0xf8, +0x28,0xfa,0x8e,0xfc,0x9b,0x4,0x8a,0xb,0xaf,0xe,0x38,0xf, +0x84,0xb,0xa9,0x5,0xce,0xfd,0xce,0xf4,0x7c,0xf3,0x99,0xf9, +0x73,0xfc,0x97,0xfd,0xfa,0x3,0xd7,0x7,0x50,0x2,0x91,0xfa, +0x5a,0xf3,0xfc,0xec,0x64,0xee,0xbe,0xf3,0x18,0xf8,0x5b,0x2, +0xe5,0xa,0x93,0x6,0x5a,0x1,0xcf,0xff,0x53,0xf6,0x69,0xe9, +0xc5,0xe5,0xe2,0xe7,0x3f,0xe9,0x9f,0xf0,0xd9,0xfe,0xc2,0x5, +0x71,0x5,0x8f,0x8,0xca,0x7,0x1c,0xff,0x3b,0xfa,0x5c,0xf9, +0x48,0xf6,0x4e,0xf4,0x69,0xf5,0xd6,0xf6,0x3a,0xf7,0xfc,0xf7, +0x63,0xf9,0x3a,0xf7,0x4f,0xf3,0xd9,0xf6,0x8a,0xff,0x5e,0x2, +0x70,0x1,0xc0,0x4,0xa,0x6,0xf1,0xfe,0x67,0xf8,0x3f,0xf6, +0x7f,0xf3,0xbd,0xf2,0x27,0xf3,0x1a,0xf3,0xa3,0xfb,0x57,0x5, +0xf5,0x0,0x67,0xfe,0xca,0x8,0xc3,0x9,0x78,0xfe,0x71,0xfd, +0x59,0x1,0xfb,0xf9,0xca,0xf4,0x72,0xf9,0xb7,0xf7,0xdb,0xf4, +0xb4,0xfd,0xca,0xff,0x30,0xf8,0x5a,0x0,0x5e,0xe,0xbb,0x7, +0x26,0xfc,0xdf,0x1,0x0,0x9,0xcc,0xfe,0x8e,0xf4,0xd7,0xfc, +0x75,0x3,0x38,0xfa,0xe9,0xf6,0x63,0xfc,0xbd,0xf9,0x51,0xf8, +0xfe,0xfb,0xc2,0xf5,0x61,0xf2,0x9f,0xfe,0x55,0x1,0x94,0xf5, +0xbb,0xf7,0x73,0x1,0xc0,0xf9,0x20,0xef,0x38,0xf3,0xe4,0xf6, +0xbd,0xf1,0xed,0xf1,0x70,0xfd,0x6e,0x8,0x3b,0xb,0x18,0xb, +0x1b,0x8,0xbe,0x0,0xcb,0xfc,0x42,0xf9,0x23,0xf1,0xaf,0xee, +0x77,0xf0,0xa9,0xf2,0x8d,0xff,0xe2,0xc,0x90,0xd,0x94,0xd, +0xfa,0xa,0xd6,0xff,0x3b,0xfc,0x9d,0xfc,0xc7,0xf1,0xd7,0xeb, +0x2f,0xf8,0x21,0x3,0xa4,0xfe,0xd3,0xfb,0xb8,0x4,0xb9,0x2, +0xc1,0xf3,0x41,0xf7,0x62,0x4,0xe1,0xfd,0x7d,0xf9,0x96,0x6, +0x71,0xa,0xbb,0x6,0x58,0xa,0x32,0x2,0x4e,0xf0,0xc6,0xf2, +0xc9,0xfd,0x62,0xf6,0xcd,0xf2,0x95,0x7,0xf,0x15,0x1a,0xb, +0xa4,0x7,0x2f,0xf,0x16,0x9,0x7b,0xfa,0xb4,0xf5,0x75,0xf5, +0x65,0xf3,0xd0,0xf8,0x39,0x3,0xfd,0x2,0xab,0x1,0x80,0xc, +0x27,0xd,0xf0,0xfe,0x5,0xff,0x2a,0x8,0xba,0x3,0x25,0xfc, +0xaf,0xfd,0x40,0x1,0x19,0x0,0x4f,0xfc,0x62,0xfa,0xe3,0xf8, +0x25,0xf9,0x63,0xfe,0x12,0x1,0xba,0x0,0x72,0x5,0xfc,0xa, +0xe1,0xb,0xd6,0x7,0xf2,0x1,0xa9,0x2,0xfa,0x2,0xc4,0xf9, +0x97,0xf7,0x5c,0x1,0x3c,0x5,0xa2,0x5,0x76,0xc,0x64,0xe, +0x28,0x8,0xd5,0x8,0x30,0xb,0x78,0xff,0xf3,0xf6,0xf,0x0, +0xbf,0x2,0x4f,0xfa,0x4d,0xff,0x3b,0xb,0x57,0x8,0x7d,0xfe, +0x55,0xfe,0x15,0x3,0x15,0x0,0x83,0xfc,0x15,0x2,0x7a,0x4, +0xdc,0x1,0xba,0x6,0x6d,0x9,0x30,0x2,0xf8,0xfd,0xbd,0xfe, +0xd2,0xfd,0x72,0xfc,0x96,0xfe,0xdb,0x5,0xc0,0xb,0x56,0xb, +0xe1,0x9,0xbb,0xa,0xcd,0xc,0x9d,0x8,0x11,0xfc,0x9e,0xfa, +0xa5,0x5,0x0,0x6,0xdb,0x1,0xdd,0x6,0x4,0x9,0xb,0x7, +0x6d,0x8,0xb4,0x6,0xe8,0x2,0x12,0x5,0xae,0x4,0x2a,0xfb, +0x87,0xfa,0x1e,0x6,0x30,0x3,0xec,0xf7,0x48,0xff,0x6f,0x5, +0x84,0xf9,0x9f,0xf7,0x37,0x5,0x45,0x6,0x61,0xfa,0x9e,0xfc, +0xc4,0xa,0x89,0x7,0xed,0xfc,0x3e,0x6,0x6d,0xd,0xd1,0x0, +0x2,0xfb,0x6a,0x1,0x60,0x0,0x72,0xfb,0x26,0xfe,0x87,0x1, +0x32,0x0,0xe,0x5,0x0,0xe,0x2,0xb,0x37,0x7,0xf9,0xf, +0xa3,0x10,0x84,0x3,0x2a,0xff,0x1b,0x3,0xb9,0x0,0x2e,0xfd, +0x8b,0xff,0x33,0x2,0xd5,0x2,0x8c,0x3,0xca,0x1,0xa8,0xfe, +0x30,0xfe,0x56,0xfc,0x17,0xf8,0x37,0xf8,0xae,0xfc,0x8a,0x1, +0xbf,0x5,0x6c,0x8,0x26,0xc,0xab,0x10,0x76,0xe,0xcd,0x7, +0xab,0x6,0x57,0x7,0x17,0x2,0x4f,0xfe,0xcb,0x2,0xc0,0x5, +0x60,0x1,0x66,0x0,0x6f,0x4,0x5a,0x1,0x25,0xf9,0x75,0xf6, +0xbc,0xf7,0xbb,0xf7,0x32,0xf5,0x78,0xf4,0x91,0xfb,0x15,0x1, +0xcb,0xfb,0x1,0xf8,0x48,0xfb,0x5c,0xfa,0x31,0xf3,0x8,0xee, +0xc9,0xf0,0x12,0xf8,0xc8,0xfb,0x23,0xfe,0x8e,0x3,0x70,0x7, +0x64,0x6,0xca,0x1,0xc2,0xfd,0x3e,0xfc,0x38,0xfa,0xfd,0xf9, +0xfa,0xfb,0xf2,0xfa,0xb7,0xfd,0x7e,0x6,0x1b,0x7,0xfa,0x0, +0xe9,0x0,0x7d,0x3,0xcb,0x1,0x47,0xff,0x22,0x1,0x29,0x6, +0x96,0x7,0x9e,0x4,0x71,0x4,0x58,0x7,0xe9,0x5,0xa6,0x0, +0x51,0x0,0x5e,0x5,0x23,0x7,0x94,0x5,0xde,0x6,0x80,0x7, +0xa9,0x4,0x2f,0x3,0x92,0x1,0xfe,0x0,0x1d,0x6,0xb5,0x4, +0x26,0xfd,0xce,0x5,0x86,0x10,0xbc,0x3,0x71,0xfa,0x2a,0x8, +0xcf,0xc,0xed,0xfe,0x3,0xff,0xaa,0xf,0xf7,0xf,0x9a,0xff, +0xe1,0xfc,0x6d,0x4,0x92,0xfe,0x64,0xf3,0x9e,0xf3,0x99,0xf7, +0x4,0xf6,0xec,0xf4,0x2f,0xf8,0x12,0xfa,0x39,0xf9,0x8d,0xf6, +0x1,0xf0,0xd6,0xed,0x4a,0xf6,0x4,0xfb,0x55,0xf5,0xce,0xf4, +0x4c,0xfb,0x83,0xf4,0xa7,0xe3,0xe3,0xe5,0x48,0xf3,0xf8,0xec, +0x9,0xe6,0xfa,0xf6,0xc9,0x2,0x6a,0xfa,0x57,0xf7,0x16,0xfc, +0xa,0xf6,0xbf,0xe8,0x83,0xe4,0x15,0xea,0x1a,0xed,0xb9,0xeb, +0x4,0xef,0x3,0xf6,0x79,0xfa,0x2e,0xfb,0xd9,0xf4,0xa1,0xec, +0x7a,0xee,0x6b,0xf1,0x79,0xec,0x1d,0xf0,0xc8,0xfc,0x7c,0xfc, +0x14,0xf4,0xfe,0xf6,0x85,0xfd,0xa8,0xf7,0x34,0xee,0x12,0xf1, +0x4f,0xf8,0x15,0xf8,0xfc,0xfa,0x50,0x6,0xc2,0xc,0x37,0xb, +0x50,0x7,0xb7,0x0,0xee,0xfb,0x2c,0xfc,0x97,0xf8,0x6d,0xf4, +0x53,0xfd,0xed,0x7,0x3a,0x7,0x77,0xb,0x2b,0x17,0x56,0x16, +0xca,0xb,0x71,0x6,0x15,0x5,0x7d,0x1,0x12,0xfe,0x30,0x3, +0x52,0xb,0x78,0x9,0x54,0x7,0x5c,0xe,0xe1,0x11,0xb6,0xc, +0x81,0x5,0x99,0x2,0x0,0x7,0xf1,0x7,0xc1,0x2,0x89,0x7, +0x45,0x10,0x34,0xa,0x92,0x0,0x51,0x2,0xe6,0x5,0x5d,0x3, +0x25,0xfe,0x5c,0xfa,0x6b,0xfe,0x99,0x6,0xb,0x4,0xc1,0xfc, +0x35,0x1,0x6b,0x6,0x64,0xfe,0x1,0xf8,0xca,0xfe,0xa3,0x2, +0xe,0xfb,0x5f,0xf9,0x1a,0x1,0xb7,0x0,0x9e,0xfb,0x44,0xff, +0xa7,0x1,0xe0,0xfc,0x30,0xfe,0x64,0x4,0x3b,0x3,0xb0,0xff, +0x85,0x0,0x3e,0xff,0xb1,0xfc,0xa7,0xfe,0xb9,0xff,0x45,0xfe, +0x18,0xff,0xb,0xff,0xe0,0xfb,0x5c,0xfa,0x58,0xfd,0x1,0x0, +0x2a,0xfc,0x3,0xfb,0x23,0x4,0x59,0x7,0xf7,0x1,0xa0,0x5, +0xb0,0xa,0xd8,0x4,0x7a,0x0,0x40,0x0,0xfd,0xfd,0x43,0x0, +0x85,0x2,0x8e,0xfc,0xe8,0xfc,0x17,0x8,0xf8,0xa,0x61,0x4, +0xc4,0x4,0x25,0x9,0xa5,0x2,0x67,0xf8,0x9b,0xfb,0x6d,0x2, +0x30,0xfd,0x47,0xf8,0x7f,0xfd,0x3f,0x3,0xe0,0x4,0xb4,0x2, +0xdd,0x0,0x95,0x3,0x78,0x0,0x40,0xf7,0x6a,0xf8,0xe2,0xfe, +0xf0,0xfb,0x87,0xf6,0x91,0xf8,0x93,0xfd,0x98,0xfe,0xd5,0xfc, +0xe5,0xfc,0x4d,0xfe,0xd8,0xfc,0xde,0xf7,0x4e,0xf6,0xb,0xfb, +0x5a,0xfb,0x8a,0xf4,0x8c,0xf3,0xfb,0xf9,0xdb,0xfb,0xc5,0xf6, +0x88,0xf4,0xc3,0xf7,0xe7,0xf6,0xc7,0xf1,0x59,0xf2,0x79,0xf7, +0x4d,0xf9,0xbd,0xf6,0x36,0xf6,0xb4,0xfb,0xa4,0xfd,0x9b,0xf7, +0xd0,0xf4,0xf9,0xf5,0xc,0xf4,0x85,0xf2,0xf9,0xf4,0x30,0xfb, +0x1,0x2,0x7,0x2,0x7c,0xfe,0x46,0x0,0x73,0x1,0x18,0xfc, +0x3e,0xf9,0x2b,0xfb,0xd2,0xf9,0xf3,0xf8,0x54,0xff,0x85,0x7, +0xee,0xb,0x1,0xb,0x40,0x7,0xce,0x8,0x8a,0xc,0x6b,0x8, +0x4e,0x3,0x98,0x7,0x9d,0xd,0xe4,0xa,0xac,0x7,0xfd,0xe, +0x70,0x14,0x84,0xc,0x8e,0x6,0xd4,0xa,0xfa,0xb,0x84,0x8, +0x74,0xa,0x96,0xe,0xd7,0xd,0x7,0xd,0x76,0x10,0xad,0x12, +0x8d,0x10,0x24,0xd,0x6c,0xa,0x4b,0x9,0x2e,0xa,0xcc,0xb, +0xeb,0xc,0x8c,0xd,0xb9,0xd,0xbb,0xc,0x72,0xc,0x7,0xe, +0x81,0xc,0xf3,0x7,0x4,0x6,0xb2,0x4,0x61,0x3,0x4,0x6, +0xfc,0x7,0xe3,0x6,0x1e,0x9,0xfc,0xb,0x89,0x8,0xb6,0x5, +0x79,0x9,0xe3,0x9,0x31,0x3,0xbc,0xff,0xac,0x1,0x6d,0x4, +0x46,0x7,0xc6,0x6,0xa0,0x3,0x5e,0x5,0x6e,0x8,0xcd,0x3, +0xc5,0xfd,0x48,0x0,0xca,0x3,0x4c,0xff,0x8e,0xfc,0x47,0x3, +0x1b,0x9,0x5f,0x6,0x51,0x2,0x6,0x4,0xfa,0x5,0x55,0x2, +0xa8,0xfe,0x96,0xfe,0xe7,0x1,0x10,0x9,0x52,0xa,0xa2,0x4, +0xb4,0x8,0x4e,0x10,0x41,0x9,0xfb,0xff,0x41,0x2,0x3f,0x5, +0xa0,0x2,0x7a,0x0,0x4b,0x2,0x8b,0x7,0xf9,0xa,0x44,0x8, +0x80,0x6,0x4b,0x9,0x47,0x6,0xf4,0xfd,0xf8,0xfe,0xb2,0x6, +0x47,0x5,0x9c,0xfe,0x7,0x1,0x5b,0x4,0xee,0xfb,0x8a,0xf5, +0x4b,0xf9,0xa1,0xf6,0x26,0xee,0xef,0xef,0x2f,0xf6,0xc6,0xf6, +0xd3,0xf8,0x3e,0xfe,0x64,0xfe,0x4,0xfc,0xd,0xfc,0xb5,0xf6, +0x4a,0xf0,0x1f,0xf3,0xd7,0xf2,0xd6,0xed,0x5e,0xf3,0xd,0xf8, +0x73,0xf2,0xfc,0xf3,0xd3,0xfb,0x5a,0xf9,0x5e,0xf2,0xec,0xf4, +0x28,0xfa,0xc2,0xf5,0x76,0xf2,0xef,0xf9,0x91,0xfc,0xaf,0xf5, +0x53,0xf4,0x8e,0xf8,0xa3,0xf8,0xe1,0xf5,0x4,0xf6,0x99,0xf8, +0x88,0xfa,0x6b,0xfc,0xc3,0xfd,0xb3,0xfd,0x3a,0xff,0x3a,0x0, +0xf0,0xfc,0xfe,0xf9,0xa6,0xfa,0x14,0xfa,0x59,0xf5,0x80,0xf4, +0x9c,0xfb,0x7c,0xfe,0x16,0xfc,0xb2,0xff,0xb4,0x3,0x7a,0x4, +0x72,0x7,0x33,0x5,0x90,0xff,0x5e,0x0,0x8a,0xfc,0x53,0xf2, +0xbd,0xf4,0xd3,0xff,0xf1,0xff,0x93,0xfa,0x8d,0xff,0xe3,0x7, +0x58,0x5,0x81,0xfc,0x90,0xfa,0x9e,0x0,0x4a,0xff,0x34,0xf2, +0x17,0xf3,0x2a,0x4,0x7e,0x1,0x48,0xf2,0x25,0xf9,0xa7,0x2, +0xcd,0xf8,0xe1,0xf3,0x27,0xfc,0x44,0x0,0x1c,0xff,0x44,0xff, +0xcb,0x1,0xfd,0x3,0x13,0xff,0x8,0xf6,0xc6,0xf4,0xd3,0xf7, +0x8d,0xf2,0x42,0xed,0x3b,0xf7,0xf5,0x3,0xf,0x2,0x69,0xfc, +0xe1,0x1,0x3a,0xb,0x22,0x7,0xa6,0xf8,0x4c,0xf8,0x84,0x2, +0x16,0xfe,0x3b,0xf6,0x61,0xfc,0xf5,0x2,0x75,0x0,0xee,0xf8, +0x4d,0xf7,0x59,0x1,0xd2,0x3,0x46,0xfb,0x1f,0xfe,0x7b,0x6, +0x6f,0x4,0x13,0x1,0xf2,0x2,0xfa,0x0,0xd5,0xf7,0x87,0xf3, +0x37,0xf4,0x7b,0xef,0x9b,0xf5,0x3,0x7,0x56,0x3,0xd7,0xf9, +0xba,0x6,0x2e,0xd,0x71,0x0,0x72,0xfc,0xd3,0xff,0x1c,0xf7, +0xa3,0xef,0xd1,0xfa,0xe9,0x3,0x64,0xfe,0x48,0xff,0xa0,0x2, +0x3b,0xfb,0xca,0xf8,0x4c,0xfb,0xef,0xf9,0xd5,0xfb,0xc,0xfd, +0x5c,0xfd,0xfd,0x1,0x6c,0x2,0x48,0x0,0x63,0xfc,0xca,0xf1, +0x56,0xef,0x96,0xf6,0xc9,0xf8,0x58,0xfc,0x45,0x5,0x86,0xb, +0xbb,0xd,0x8e,0xa,0xb8,0x5,0x70,0x4,0x44,0xff,0xba,0xf3, +0xc7,0xef,0x65,0xfc,0xf9,0x7,0xdb,0x2,0x77,0x3,0xa4,0x10, +0xb5,0xa,0x4f,0xfa,0xb6,0xfc,0xf,0xfe,0x4b,0xf3,0x53,0xf4, +0x7b,0xfd,0x1e,0x0,0xf1,0x6,0x46,0x10,0x4f,0xb,0xe6,0x4, +0x93,0xa,0x89,0x2,0x19,0xef,0xb7,0xf8,0x9e,0x8,0xe4,0xf8, +0x9d,0xf4,0xa,0xe,0xde,0x12,0x67,0x4,0x23,0x6,0xce,0xa, +0xf0,0x1,0x3f,0xfa,0x8f,0xfc,0xa9,0x0,0xed,0xff,0xa3,0xfe, +0x5d,0x2,0x3b,0x8,0x83,0xa,0x90,0x8,0xa1,0x6,0x3a,0x7, +0xf5,0x8,0xe7,0x8,0x89,0x6,0x12,0x9,0xc5,0xe,0x5d,0xa, +0x28,0x6,0x4d,0xe,0x1a,0xe,0x6a,0x4,0x71,0x8,0x1a,0xd, +0xec,0x2,0xf0,0xff,0x89,0x8,0xb6,0x6,0x86,0x0,0x14,0x7, +0x79,0xc,0x60,0x6,0x29,0x5,0xc8,0xa,0xe3,0x8,0x58,0x1, +0x76,0xfd,0x98,0xfe,0xa6,0xff,0xd7,0xfb,0xa0,0xfa,0x39,0x1, +0x4a,0x3,0x1f,0xfe,0xb5,0xfe,0x65,0x2,0xbe,0xfe,0xe7,0xfa, +0x1a,0xfd,0xc0,0xfd,0x4f,0xfc,0x75,0xfd,0xb4,0xfe,0xc7,0xfe, +0xc,0xfd,0x75,0xf9,0xa9,0xf8,0x2,0xf9,0xc0,0xf7,0xa3,0xf8, +0xcd,0xfa,0xf,0xfe,0x8e,0x1,0xe6,0xfd,0x24,0xfa,0x30,0xfe, +0x9,0xfb,0x5e,0xef,0xea,0xef,0x8c,0xf9,0x46,0xf8,0xba,0xf2, +0x2c,0xfb,0xf6,0x7,0x86,0x8,0xb1,0x4,0x55,0x4,0x8d,0x2, +0xcc,0xff,0x27,0xfd,0x75,0xf9,0xbf,0xf7,0xbb,0xf8,0x28,0xfc, +0x69,0x0,0x54,0x1,0x4b,0x3,0x28,0x8,0x5d,0x7,0x25,0x3, +0xf7,0x2,0x67,0x4,0xa4,0x5,0x1b,0x5,0x11,0x2,0x36,0x3, +0x2a,0x5,0x69,0xfe,0x11,0xfa,0x9b,0x2,0x60,0x7,0xb3,0xff, +0x69,0x0,0x99,0xd,0x75,0xe,0x87,0x4,0xc0,0x4,0x8,0x5, +0x9,0xfc,0xde,0xf8,0x3a,0xfa,0xf8,0xf9,0x4e,0x0,0xce,0x5, +0x4a,0x3,0xfe,0x5,0x92,0xd,0xf,0xc,0x73,0x3,0xe7,0xff, +0x17,0x3,0xf3,0x1,0x66,0xf9,0xaf,0xf6,0x12,0xfe,0xc5,0x0, +0xd8,0xf9,0x90,0xfb,0x30,0x9,0x36,0xa,0xa,0x0,0xce,0x2, +0x64,0x9,0x92,0x4,0xae,0xff,0x9c,0xff,0xf6,0xff,0x87,0xff, +0xcf,0xfb,0x3c,0xfb,0x39,0x2,0x2b,0x6,0x37,0x3,0x6b,0x1, +0xa1,0x7,0x19,0x11,0x47,0xe,0x8d,0x4,0x2d,0xa,0x45,0x13, +0x50,0x7,0xa8,0xfa,0x93,0x6,0x45,0x11,0xfa,0x3,0x1d,0xfd, +0xa0,0xd,0x9b,0x15,0x8a,0xc,0x12,0xc,0x58,0x12,0x37,0xf, +0x34,0xa,0x8e,0xa,0xec,0x9,0xc,0xa,0xc0,0xe,0x8c,0xe, +0xf1,0x9,0xf,0xf,0xd6,0x12,0x79,0x6,0xfa,0x0,0xf8,0x9, +0x82,0x5,0x42,0xfa,0x2a,0x2,0x48,0xd,0x99,0x7,0x34,0x1, +0x6f,0x8,0x71,0xc,0x5e,0x1,0x61,0xfc,0x89,0x1,0xd2,0xf7, +0x9d,0xe9,0xe,0xeb,0x8a,0xe8,0xce,0xde,0x5d,0xe0,0xba,0xe2, +0xb1,0xde,0x7a,0xe2,0x13,0xeb,0xd4,0xec,0x7c,0xeb,0xd5,0xea, +0x84,0xe5,0xb,0xdd,0x9f,0xd9,0x33,0xd9,0x3e,0xd7,0x74,0xd5, +0xcc,0xd4,0x9e,0xda,0xbe,0xe4,0xff,0xe4,0x89,0xe2,0xff,0xe8, +0x38,0xea,0xa3,0xe3,0x8d,0xe4,0x1f,0xeb,0x87,0xec,0xf5,0xe8, +0x54,0xea,0x84,0xf0,0xa5,0xed,0x9e,0xe8,0xfe,0xee,0xc9,0xf1, +0x20,0xee,0xbb,0xf4,0x1f,0xfd,0xe9,0xfe,0x19,0x5,0x3e,0xb, +0xb4,0x8,0x46,0x6,0xa8,0x7,0x4f,0x6,0xe8,0x2,0x5b,0x3, +0x2d,0x7,0xe9,0x9,0x4f,0xc,0xb,0x11,0xd9,0x15,0x4f,0x17, +0xe9,0x15,0x71,0x15,0xdf,0x16,0x49,0x16,0x11,0x14,0x45,0x14, +0x17,0x15,0xa9,0x13,0xfb,0x11,0xff,0x11,0x31,0x12,0xeb,0xf, +0x37,0xd,0xb8,0xd,0x8d,0xe,0x0,0xe,0xf,0xf,0x76,0xe, +0x1,0x9,0xc7,0x5,0x88,0x7,0x7b,0x4,0x13,0xfc,0x89,0xfc, +0xb6,0x2,0x47,0xfd,0x98,0xf6,0x6b,0xfe,0xfc,0x2,0xd8,0xfa, +0x4f,0xf8,0xe7,0xfb,0xe5,0xf9,0xe0,0xf7,0x9,0xf9,0xa6,0xf7, +0xfc,0xf6,0x7,0xf9,0x62,0xf7,0x35,0xf4,0x8c,0xf6,0xf0,0xf9, +0x2a,0xf8,0xed,0xf5,0x99,0xf8,0xe7,0xfb,0xb8,0xfa,0x36,0xfa, +0xf9,0xfd,0xc0,0xfe,0x28,0xfe,0xde,0x2,0xcd,0x3,0x8f,0x0, +0x92,0x4,0xf4,0x5,0x7,0x0,0x58,0x3,0x1c,0x9,0xcf,0x3, +0xe1,0x1,0x84,0x7,0x50,0x8,0x82,0x8,0x3e,0xc,0xd5,0xb, +0x16,0x9,0x3c,0x9,0xa4,0x8,0xb1,0x6,0x69,0x8,0x1c,0xd, +0xe7,0xe,0xd8,0xc,0xdb,0xb,0x12,0xe,0x8c,0xe,0x2f,0x9, +0x3,0x5,0x98,0x8,0xbf,0x9,0xf6,0x3,0x62,0x6,0x78,0x10, +0xe0,0x10,0x6c,0xb,0xde,0xa,0x2a,0x8,0xb3,0x0,0xbf,0xfd, +0x35,0x0,0xa,0x1,0x40,0x0,0x64,0x4,0x86,0xb,0xd0,0xb, +0xb3,0x5,0x9f,0x2,0xa7,0x2,0xf5,0xfc,0xe9,0xf3,0x1d,0xf5, +0x3f,0xfd,0xba,0xfe,0xb,0x0,0xf,0x6,0xc4,0x5,0x7e,0x1, +0xd4,0xfd,0xa3,0xf5,0x2d,0xf1,0x4a,0xf4,0xf,0xf4,0xc1,0xf4, +0xa0,0xfc,0x60,0x3,0x69,0x6,0xbc,0x6,0xc2,0x3,0xa5,0x0, +0x33,0xfb,0xb3,0xf3,0x1b,0xf3,0xee,0xf6,0xc9,0xf7,0xfe,0xfa, +0x55,0x1,0xc2,0x1,0xe6,0xfe,0x43,0x0,0x65,0xff,0xde,0xf9, +0x28,0xfb,0xd4,0x1,0xa8,0x2,0x17,0x1,0xac,0x2,0xa5,0x4, +0x18,0x5,0x21,0x1,0xc5,0xfa,0xdc,0xf9,0xdf,0xfb,0x6c,0xfd, +0xe8,0x3,0xcd,0xb,0xcd,0xc,0x4,0xb,0x3e,0xc,0x8b,0xb, +0x82,0x4,0xaa,0xfe,0x3f,0x0,0x27,0x2,0x9a,0x0,0x54,0x3, +0xf2,0xb,0x3a,0x11,0x64,0xe,0x68,0xb,0xec,0xd,0x8a,0xc, +0x59,0x4,0xf,0x2,0x1,0x6,0xed,0x4,0x4c,0x1,0xef,0x2, +0x9e,0x5,0xd5,0x2,0xee,0xff,0x82,0x4,0x14,0xa,0xce,0x8, +0xf6,0x6,0x83,0x8,0x6f,0x7,0xe6,0x2,0x68,0xfd,0xd8,0xf6, +0xed,0xf4,0xbd,0xf9,0x82,0xfa,0x4c,0xf9,0xdb,0x3,0x28,0xf, +0xde,0xb,0x45,0x6,0x1c,0x6,0xa8,0x4,0xfa,0x0,0x9a,0xf8, +0x32,0xf3,0x48,0xfc,0x62,0xff,0xaf,0xf4,0x55,0xf8,0x42,0x2, +0x2f,0xfa,0xd7,0xf4,0xfc,0xfc,0x43,0xfe,0x7b,0xf9,0x13,0xf9, +0xee,0xfb,0xb2,0x0,0xc4,0xff,0xb3,0xf8,0x52,0xfa,0xcc,0xfe, +0xa8,0xf6,0xc6,0xef,0xcf,0xf5,0xf2,0xf9,0x41,0xf7,0x51,0xf6, +0xe3,0xf7,0x4a,0xfc,0xd,0xff,0x79,0xf8,0x8c,0xf5,0xf3,0xfe, +0x8a,0x1,0x22,0xf9,0x90,0xf6,0x59,0xfa,0x9d,0xfc,0x36,0xfb, +0xe0,0xf7,0x11,0xfa,0xd6,0xfd,0x88,0xfa,0xd3,0xfa,0xd0,0x0, +0x13,0x1,0x3b,0x3,0xb6,0x8,0xdd,0x3,0x95,0xfe,0xef,0x3, +0x8,0x6,0xfe,0xfe,0x3a,0xfa,0xdb,0xff,0xb1,0x6,0x57,0xff, +0xd,0xf9,0x2c,0x7,0x84,0xf,0x5d,0x2,0x1c,0xfd,0x4e,0x6, +0x6e,0x7,0xfe,0xff,0xb9,0xfe,0x97,0x6,0x70,0xa,0xc0,0x1, +0x2b,0xfe,0x70,0x9,0xec,0xb,0x2a,0xfe,0x84,0xf9,0xa8,0x1, +0xd4,0x1,0xe9,0xfc,0xaf,0xff,0xe7,0x2,0xd4,0x5,0x68,0xb, +0x3d,0x6,0xc7,0xfd,0x6d,0x2,0x5b,0x1,0xe3,0xf4,0x1e,0xf4, +0x11,0xfc,0xa3,0xff,0x42,0x0,0xb,0xfe,0xa8,0xfd,0xbf,0xfe, +0x6c,0xf9,0xd8,0xf5,0x64,0xf7,0x82,0xf5,0x2e,0xf6,0x49,0xfc, +0xc6,0x0,0x58,0x6,0x7d,0x9,0xd6,0xfe,0x65,0xf0,0x6d,0xf1, +0xd8,0xf4,0x6,0xe6,0xbd,0xe1,0xba,0xfb,0x9b,0x5,0x67,0xf6, +0xc7,0xff,0x74,0x14,0x99,0x9,0xac,0xf6,0xaf,0xf7,0x20,0xfa, +0x59,0xf0,0xce,0xe9,0xb7,0xf2,0x3d,0xfe,0xb2,0xff,0x97,0xfd, +0x53,0xfe,0x8a,0x2,0x6e,0x5,0xda,0xfd,0xe,0xf7,0xf9,0x0, +0xa9,0x9,0x6c,0xfe,0xca,0xf3,0x92,0xfd,0xb4,0x4,0x8d,0xf5, +0xcb,0xec,0x5f,0xf9,0xfe,0xfb,0xb5,0xf1,0xed,0xf7,0xbd,0x8, +0xac,0xb,0xda,0x4,0x73,0x4,0x4c,0x5,0xcc,0xfa,0xf5,0xf0, +0xc,0xf3,0x7c,0xf3,0x28,0xf1,0xd9,0xf5,0x6,0xf9,0xbc,0xf8, +0x5,0xfe,0x76,0x2,0x1b,0xfd,0x2,0xf4,0xd8,0xf2,0x2d,0xf8, +0x27,0xf6,0x4a,0xf0,0xcb,0xf5,0x48,0xfd,0xd9,0xf7,0x45,0xf1, +0xc3,0xf5,0x2,0xfa,0x7d,0xf5,0xeb,0xf1,0x25,0xf4,0xc8,0xf7, +0x20,0xfb,0xf5,0xfa,0xdd,0xf9,0x9d,0xfc,0x48,0xfa,0xfb,0xf4, +0xe0,0xf7,0xee,0xf7,0xf4,0xf2,0xe3,0xf5,0xef,0xf8,0xfa,0xf8, +0x76,0xfd,0xbb,0xfd,0xbf,0xfa,0xcb,0xfc,0x5f,0xfc,0x79,0xfb, +0x8e,0xff,0xcc,0xff,0x8a,0xfd,0xf5,0xfe,0xf1,0xfe,0xbd,0xfd, +0x3f,0xff,0x72,0xff,0xed,0xfc,0x41,0xfd,0xa4,0x0,0x2a,0x2, +0x83,0x4,0x45,0x8,0x79,0x5,0xa5,0x0,0x5,0x2,0x44,0x2, +0x33,0xff,0x87,0xff,0x9a,0x2,0x9b,0x4,0xe8,0x2,0xca,0x2, +0x34,0x9,0xff,0x7,0xe7,0xfd,0xde,0xff,0x2f,0x6,0xab,0xff, +0x31,0xfd,0xcd,0x6,0xd8,0x8,0x2a,0x2,0x95,0x3,0x5e,0xa, +0x65,0x7,0x7b,0xff,0x16,0x1,0x14,0x5,0x3a,0x1,0x48,0x1, +0x6e,0x9,0xaa,0x9,0x7,0x2,0xb,0x3,0x5e,0x9,0x4a,0x6, +0xb4,0x1,0xcc,0x7,0x2a,0xa,0xa4,0x1,0x32,0x3,0xec,0xb, +0xac,0x4,0x5b,0xfd,0x48,0x6,0xc1,0x6,0xa5,0xfd,0xca,0x2, +0x54,0x9,0x61,0x3,0xc5,0x1,0x1a,0x7,0x59,0x7,0xe0,0x3, +0x51,0x1,0xb8,0xff,0x63,0xff,0x9c,0x0,0xcf,0x0,0x29,0xfe, +0xe5,0xfe,0x59,0x4,0xf7,0x5,0x71,0x6,0xcb,0xa,0xaa,0xb, +0x9e,0x8,0xd3,0x7,0xc3,0x8,0xc,0x9,0xbd,0x5,0x16,0x0, +0xbe,0xfd,0x4,0xfe,0xe8,0xfe,0xa8,0xff,0xaa,0x0,0xe8,0x7, +0x47,0x10,0x7f,0xf,0xc,0xf,0x44,0x13,0x6d,0xd,0x9f,0xff, +0xf4,0xfd,0x72,0x6,0xe8,0x0,0x11,0xf4,0x16,0xff,0x6f,0x10, +0x9a,0xa,0xc6,0x8,0x49,0x16,0x56,0x16,0x68,0xe,0x30,0xd, +0x2e,0xb,0xa8,0xd,0xaf,0x14,0x3c,0x13,0xd3,0xe,0x9a,0x10, +0x2a,0x15,0xa7,0x14,0x69,0xc,0xb4,0x9,0x9a,0xf,0x10,0xc, +0x50,0x6,0x3f,0x12,0xf3,0x1b,0x63,0x11,0xb6,0xc,0x59,0x15, +0x3b,0xe,0xcf,0xfd,0x28,0xfe,0x9f,0x1,0x7d,0xfc,0x1,0xfd, +0xe9,0x4,0x72,0xe,0xd9,0x11,0xc9,0x7,0x84,0x1,0x2d,0x5, +0x26,0xfd,0xa3,0xef,0xd0,0xee,0x8e,0xf1,0x21,0xf2,0x51,0xf3, +0xef,0xf3,0xde,0xf8,0xbc,0xfb,0xda,0xef,0xd4,0xe3,0xf5,0xe5, +0xae,0xe7,0xf9,0xe1,0xd8,0xe0,0x40,0xe6,0x45,0xeb,0x8e,0xeb, +0xa9,0xe7,0xb5,0xe9,0x67,0xee,0x66,0xe3,0x59,0xd6,0xa5,0xdc, +0x1d,0xe1,0x97,0xd8,0xdc,0xd9,0xd3,0xe4,0x45,0xe9,0x1b,0xe7, +0x57,0xe4,0xc1,0xe8,0xaa,0xef,0x9e,0xe9,0x8b,0xe1,0x6f,0xe6, +0xc2,0xe9,0x15,0xe7,0xb9,0xea,0x9d,0xee,0x4f,0xee,0x75,0xf2, +0x91,0xf3,0x5f,0xec,0xa0,0xed,0x49,0xf5,0x3e,0xf1,0xe9,0xec, +0xf9,0xf4,0x6c,0xfa,0xc7,0xf9,0xfe,0xfb,0x9e,0xfd,0x7c,0xfe, +0xd,0xff,0xb4,0xfa,0xf0,0xf8,0x5,0xfc,0xc8,0xfa,0x3d,0xfa, +0x2e,0xff,0xb3,0x2,0x59,0x5,0x67,0x7,0x40,0x5,0xc2,0x5, +0x2c,0xb,0xc3,0xa,0xca,0x4,0x85,0x4,0x5f,0x8,0x5e,0x7, +0x87,0x4,0x83,0x6,0xd8,0x9,0xe9,0x7,0xf9,0x2,0xa0,0x4, +0x4f,0xb,0xb5,0xa,0xac,0x7,0x5b,0xd,0x7,0x11,0x93,0xb, +0xe4,0x8,0xbb,0xa,0x84,0x9,0x4e,0x6,0x4f,0x3,0xb0,0x1, +0xb5,0x3,0x96,0x5,0x39,0x5,0xf4,0x6,0x3d,0x8,0xe7,0x6, +0x7f,0x9,0xa2,0xc,0x68,0x9,0x1b,0x7,0xe4,0x8,0xd8,0x9, +0xd9,0x9,0xf,0x7,0x4f,0x4,0x16,0x8,0x57,0x9,0x24,0x3, +0xcf,0x2,0xd,0xa,0x65,0xc,0xa,0x9,0x75,0x9,0xb4,0xd, +0x78,0xd,0x86,0xa,0x5b,0xa,0x4a,0x8,0xd1,0x4,0x82,0x6, +0x1e,0x9,0x1a,0x8,0x37,0x8,0x55,0xb,0xf,0xd,0x59,0xc, +0x72,0xd,0x8d,0xe,0xfa,0x9,0x35,0x5,0x4e,0x7,0xb1,0xb, +0x6d,0xc,0x74,0xa,0xed,0xa,0x3c,0xd,0x27,0xb,0xf7,0x9, +0xba,0xd,0xb7,0xa,0xdc,0x3,0x63,0x6,0x7f,0x9,0x68,0x7, +0x15,0x9,0x93,0xa,0x1,0x9,0x67,0xc,0x87,0xf,0x9e,0xb, +0x24,0x9,0x84,0xb,0xbc,0xa,0xc0,0x3,0x6,0xff,0xa0,0x4, +0xaa,0xb,0x64,0x7,0xf7,0x0,0x6,0x5,0x2f,0x9,0x7f,0x5, +0xdf,0x5,0x18,0xa,0xa0,0x5,0xf2,0x0,0x31,0x6,0xf4,0x8, +0x1d,0x4,0x37,0x1,0x4c,0x0,0x2e,0xfd,0x8a,0xf9,0x7f,0xf8, +0x19,0xfc,0x67,0x0,0x3f,0x1,0x2c,0x3,0xa2,0x6,0xc1,0x5, +0x4f,0x3,0x8e,0x2,0xa4,0xfd,0xa1,0xf5,0xdb,0xf3,0xef,0xf6, +0x30,0xf7,0xa2,0xf8,0x99,0x1,0xfd,0x7,0x59,0x3,0x36,0x2, +0x87,0x9,0xcc,0x6,0xbc,0xfd,0x1a,0xff,0xa2,0x0,0xff,0xfc, +0xbb,0xfe,0xcc,0x0,0x36,0x0,0xa8,0x3,0xca,0x6,0x21,0x5, +0x76,0x0,0x5c,0xfd,0x52,0x1,0x5f,0x5,0x49,0x2,0x6b,0xff, +0x15,0x1,0x8b,0x2,0x48,0x0,0xdf,0xfd,0x69,0xfe,0xd0,0xfc, +0x31,0xfd,0x22,0x3,0x74,0x1,0xb5,0xfe,0xc7,0x7,0x34,0xa, +0x70,0x2,0x93,0x1,0x9b,0x1,0xe3,0xfc,0x6c,0xfa,0x13,0xfa, +0xf6,0xfb,0xd6,0xfe,0x33,0xff,0x94,0xff,0xfa,0x0,0x8e,0x2, +0x73,0x2,0x3b,0x0,0x8b,0x0,0xe8,0xfc,0x13,0xf3,0x3a,0xf5, +0xe9,0xfd,0x94,0xf9,0x52,0xf7,0xd,0x0,0xcc,0x0,0xd0,0xfb, +0xaf,0xfd,0x86,0xff,0xe0,0xfd,0x3e,0xfc,0x7a,0xf8,0x96,0xf4, +0xbd,0xf4,0x30,0xf8,0x5b,0xfc,0xb4,0xfa,0xd7,0xf5,0x2e,0xfc, +0x62,0x3,0x8a,0xf7,0x8f,0xef,0x8c,0xfe,0x9f,0x3,0xeb,0xf4, +0x15,0xf6,0x45,0x2,0x5b,0xfa,0xb9,0xf1,0x64,0xfd,0xc8,0xfe, +0xa2,0xed,0x75,0xee,0x8b,0xff,0x79,0x1,0xd0,0xfb,0x9b,0x0, +0x12,0x7,0xc9,0x4,0xc2,0xfa,0x98,0xf2,0xfc,0xf1,0x80,0xf1, +0x3,0xf3,0xe8,0xf8,0xa0,0xf8,0x79,0xfb,0x4a,0x7,0x56,0x4, +0x6a,0xf8,0xc8,0xfd,0x4a,0x3,0x98,0xf4,0x4a,0xeb,0x8e,0xfa, +0x63,0x5,0x27,0xfc,0x96,0xfc,0xcf,0x5,0x74,0xfd,0x1e,0xf5, +0xb1,0xf8,0x46,0xf7,0xde,0xf6,0x75,0xfb,0xfa,0xff,0xff,0x6, +0xc4,0x1,0x6c,0xf8,0x84,0x4,0x45,0x5,0x11,0xeb,0x8d,0xe8, +0x4c,0xfc,0xfc,0xf9,0x69,0xf2,0xbb,0x0,0x2d,0xd,0xcd,0x7, +0xbe,0x1,0x44,0x2,0x16,0x2,0x89,0xfc,0xa,0xf3,0x34,0xf3, +0xc8,0xfd,0xc8,0xfb,0x36,0xf4,0xaa,0x0,0xd,0xd,0x67,0x3, +0x83,0xfb,0x2d,0x1,0xd5,0x2,0xbe,0xfe,0xd7,0xfc,0xfa,0xfc, +0xd0,0x0,0xf8,0x1,0xa,0xfa,0x7f,0xf8,0xb9,0xfe,0xca,0xf8, +0x45,0xf0,0x8,0xf6,0x23,0xfe,0x32,0x0,0x9f,0xfe,0xf0,0xfe, +0x99,0x8,0xf6,0x9,0xe6,0xf6,0x8d,0xee,0xe8,0xf9,0xaf,0xf6, +0xeb,0xe5,0xa6,0xed,0xd0,0x6,0x5f,0x4,0xf8,0xf2,0x3d,0x1, +0xbf,0x13,0x19,0x1,0x54,0xee,0x2e,0xf7,0x23,0xfe,0xf7,0xf6, +0x28,0xf1,0xc6,0xf4,0x4,0xfb,0x58,0xfb,0x2f,0xfc,0xa5,0xfc, +0x8,0xf5,0x8b,0xf4,0x67,0xfb,0x30,0xf7,0xfc,0xf5,0x12,0x1, +0xda,0x3,0xf2,0xfc,0x79,0xf9,0x2,0xfb,0x68,0xfc,0x32,0xf9, +0xdd,0xf7,0xa1,0xfb,0xe6,0xfb,0xe6,0xf9,0xa7,0xfb,0x51,0x2, +0x23,0x8,0x56,0x0,0xef,0xf4,0x78,0xf7,0xfd,0xfb,0xbf,0xfc, +0x27,0x0,0x6c,0xff,0x2,0xff,0xd4,0x3,0x91,0x2,0xa9,0xff, +0xe3,0x1,0x85,0xfe,0xee,0xf5,0x4f,0xf4,0xce,0xfa,0xbc,0xff, +0xd9,0xfd,0xaa,0xfc,0x7d,0x1,0x5a,0x3,0xd7,0xfb,0xf,0xf7, +0x4b,0xfe,0xb9,0x0,0xe7,0xf6,0xaf,0xf6,0x8,0x1,0x3d,0x2, +0x43,0xff,0xd0,0x0,0xd9,0xfe,0x35,0xf9,0x83,0xf7,0x89,0xfa, +0x92,0xfd,0x92,0xfb,0xb0,0xf8,0x7c,0xff,0x3b,0x9,0xf1,0x4, +0x4f,0xfc,0xf,0x0,0x2b,0x1,0x6f,0xf7,0x50,0xf6,0x11,0xfe, +0x60,0x0,0x3c,0xff,0xec,0xfe,0x5c,0x0,0x55,0x3,0x8d,0x3, +0xc,0x1,0xba,0xfc,0x69,0xfa,0x64,0xff,0xd6,0xff,0x4c,0xfb, +0x4d,0x5,0x0,0xd,0x1b,0xfe,0x28,0xf8,0x4b,0x6,0x7d,0x8, +0x6c,0x0,0xa1,0x3,0x97,0x8,0x79,0x4,0xaa,0x3,0x3f,0xc, +0xf7,0xd,0x3b,0x3,0x5c,0xff,0xbf,0x4,0xb5,0x4,0x54,0x6, +0xc7,0xe,0x3e,0xf,0x65,0xa,0xdf,0xd,0x4b,0xf,0xfe,0x4, +0x22,0x2,0x8c,0xb,0xdd,0x7,0x58,0xff,0xfb,0x9,0x4e,0xe, +0x97,0x2,0x91,0x6,0xec,0xd,0xe9,0x2,0x2a,0xfe,0x9d,0x6, +0x77,0xa,0xe5,0x9,0xa5,0x9,0x65,0xb,0x55,0xd,0x32,0xa, +0x95,0x5,0xd6,0xff,0x82,0xf9,0xe1,0xfc,0xb2,0x1,0x56,0xfe, +0xb5,0x3,0xd2,0xe,0x4d,0x9,0x29,0x1,0xea,0x8,0x7,0xc, +0xcf,0xfe,0xfe,0xf6,0x82,0xfa,0x76,0xf8,0x68,0xf5,0x9b,0xfd, +0x5d,0x1,0x62,0xfa,0x0,0xfc,0x9f,0x0,0x2c,0xfa,0x15,0xf9, +0xd7,0xfe,0x50,0xf8,0x93,0xf0,0x10,0xf6,0x63,0xf9,0xf4,0xf4, +0x22,0xf7,0x60,0xfb,0x10,0xf3,0x6d,0xed,0x71,0xf9,0x74,0xfe, +0x6b,0xf2,0xe6,0xf0,0x3d,0xfa,0xea,0xf8,0x62,0xf3,0xd8,0xf4, +0x12,0xf7,0x4e,0xf6,0xeb,0xf4,0x13,0xf4,0xb5,0xf5,0xd,0xfb, +0x14,0xff,0xd2,0xfc,0xe6,0xf9,0xb6,0xfc,0x73,0x0,0xb4,0xff, +0xed,0xfe,0xf8,0x0,0x36,0xff,0xea,0xfb,0x9e,0x0,0x91,0x3, +0xde,0xfc,0x46,0xfc,0x74,0x3,0x1d,0x4,0x44,0x4,0x1d,0xc, +0xbf,0xf,0x2d,0xa,0xd5,0x7,0x99,0x9,0xc8,0x5,0x75,0x3, +0xcc,0x7,0x7d,0x8,0xae,0x9,0x19,0x11,0x88,0x14,0xf6,0x15, +0xbe,0x18,0xe,0x14,0xfe,0xc,0x3e,0xb,0xec,0xa,0x22,0xc, +0x60,0xe,0x7c,0xf,0x43,0x10,0x58,0x10,0xcf,0x14,0x29,0x1a, +0x2e,0x12,0x49,0x9,0x20,0xf,0x3e,0x11,0x4c,0xb,0x58,0x10, +0xb1,0x17,0xda,0x12,0x11,0xd,0x80,0xd,0x84,0xf,0xec,0xe, +0x57,0x7,0x7c,0x0,0xd8,0x5,0xfd,0xd,0xc4,0xd,0x79,0xc, +0x45,0x10,0xe7,0x13,0x5c,0x10,0x85,0x5,0x1a,0x0,0xa8,0x6, +0xbc,0x5,0xca,0xf6,0x12,0xf6,0x81,0x5,0x8d,0x6,0x3c,0xff, +0xde,0x5,0x6b,0xd,0x35,0xa,0x4a,0x6,0xad,0x4,0x52,0x2, +0x4b,0xfe,0x5,0xf9,0xfa,0xf6,0xf8,0xf5,0x1,0xf2,0x73,0xf4, +0x47,0xfd,0xd0,0xfc,0xbf,0xf8,0xac,0xff,0x9d,0x3,0xc5,0xfa, +0x1c,0xf7,0x90,0xfb,0x8c,0xf7,0x60,0xed,0x23,0xeb,0xc,0xed, +0x24,0xe8,0xcb,0xe4,0xd0,0xeb,0xfa,0xee,0x17,0xeb,0x5d,0xef, +0xff,0xf5,0x51,0xf4,0xc9,0xf2,0x77,0xf2,0x8d,0xec,0x45,0xe6, +0xa0,0xe5,0x19,0xe5,0x8a,0xe0,0x3d,0xe1,0x2a,0xea,0x81,0xec, +0x3,0xe7,0xf6,0xe9,0xf1,0xf2,0x37,0xf1,0xa2,0xe8,0xc5,0xe8, +0x59,0xeb,0xe4,0xe5,0xe2,0xe3,0x38,0xe8,0x29,0xe8,0x3,0xe9, +0xbe,0xec,0x84,0xea,0x3b,0xe9,0x9b,0xef,0xcd,0xf3,0x20,0xf1, +0x2d,0xf0,0x15,0xf5,0xc7,0xf6,0x2,0xf3,0x28,0xf3,0x4c,0xf5, +0x52,0xf4,0x40,0xf4,0x42,0xf5,0xcf,0xf8,0x20,0x1,0x89,0x6, +0xff,0x6,0xca,0x8,0x30,0xc,0x17,0xc,0xfa,0x4,0x96,0xfe, +0x32,0x1,0x9,0x3,0x8e,0xff,0xe,0x2,0xc6,0x9,0xbe,0xe, +0xa1,0x12,0xc1,0x15,0xa0,0x15,0xf0,0x13,0xa7,0x12,0xcc,0x10, +0x6c,0xd,0xc7,0xc,0x54,0x10,0xf6,0xf,0xf,0xd,0x48,0x11, +0x49,0x16,0x13,0x14,0xb2,0x11,0x24,0x13,0xfd,0x14,0xd3,0x14, +0x80,0x12,0x48,0x12,0xaa,0x14,0xac,0x13,0x4b,0xf,0x52,0xc, +0x1b,0xc,0x19,0xc,0xd0,0xa,0x3a,0xc,0xe6,0xf,0xc1,0xf, +0xe9,0xe,0x5e,0x12,0xe0,0x14,0x42,0x11,0x22,0xc,0xc3,0xc, +0x57,0xe,0xce,0x8,0x9c,0x4,0xb9,0x8,0xef,0xa,0x45,0x7, +0xba,0x6,0xf2,0xa,0xf,0xc,0xa4,0x9,0xd6,0xa,0x70,0xd, +0x20,0xb,0x7a,0x7,0x94,0x7,0x49,0x9,0xa3,0x7,0x78,0x5, +0x22,0x9,0x42,0xa,0xff,0x4,0xae,0x7,0x91,0xe,0x1b,0xb, +0x2b,0x5,0x5c,0x5,0x5e,0x8,0xba,0xa,0x61,0x8,0xbe,0x4, +0xad,0x6,0x1f,0xa,0x27,0x9,0xfd,0x3,0x39,0x0,0x94,0x2, +0x98,0x4,0x42,0x2,0xf0,0x3,0x86,0x9,0x35,0x8,0xdd,0x1, +0xc0,0x2,0x2a,0x8,0x32,0x5,0xe4,0xfe,0x8d,0x1,0xf,0x6, +0xa9,0x3,0x5a,0x3,0x18,0xa,0xa7,0xd,0x51,0xa,0x24,0x7, +0x8b,0x4,0x69,0x0,0x54,0xff,0x27,0x2,0x31,0x4,0x2f,0x3, +0x2a,0xff,0xcb,0xfc,0x49,0x1,0x6d,0x5,0x5,0x0,0x5,0xf9, +0x24,0xf9,0x42,0xf9,0x63,0xf8,0x25,0xfe,0x5,0x3,0x76,0x0, +0x60,0xff,0x60,0xff,0x4c,0xfa,0x8,0xf6,0x84,0xf4,0x5,0xf0, +0xce,0xeb,0xae,0xee,0xde,0xf5,0xd7,0xf9,0xe7,0xf9,0x75,0xfb, +0x4,0xfe,0x1c,0xfb,0x50,0xf5,0x68,0xf5,0x54,0xf6,0x3e,0xef, +0xa2,0xea,0xfb,0xf1,0xed,0xf7,0x9b,0xf2,0x23,0xee,0x96,0xf3, +0x8b,0xf8,0xe4,0xf3,0xf3,0xed,0x34,0xf2,0x7a,0xfd,0xad,0xff, +0xb6,0xf5,0x3a,0xf4,0x21,0xfc,0xa0,0xf4,0xd0,0xe6,0xe5,0xea, +0x8,0xf1,0xd6,0xec,0x62,0xf0,0x3e,0xfb,0xc0,0xfe,0xb9,0xff, +0x0,0x2,0xb8,0xfd,0x97,0xf5,0xe8,0xf1,0x99,0xf1,0x49,0xf2, +0x29,0xf3,0xc8,0xf4,0x30,0xfc,0xd5,0x5,0x10,0x8,0xeb,0x5, +0xfa,0x3,0x7,0x0,0xd1,0xfa,0x25,0xf3,0x6,0xec,0x19,0xf1, +0x1d,0xfc,0x4e,0xfc,0x5c,0xf9,0x70,0x1,0xee,0xb,0xab,0xb, +0x9d,0x2,0xaa,0xfb,0x67,0xfc,0x41,0xfd,0xc0,0xf9,0x5c,0xfa, +0x11,0xfe,0xf1,0xfd,0x34,0x1,0xbe,0x6,0x20,0x1,0xaf,0xf8, +0xfe,0xfc,0x16,0x0,0x19,0xf3,0x0,0xee,0xec,0x0,0x1a,0x9, +0x17,0xf9,0xae,0xf8,0xad,0xa,0xb4,0x7,0x3,0xf5,0xd9,0xf4, +0xa2,0xff,0xc2,0xf8,0xdb,0xed,0x4f,0xfa,0xff,0x6,0x9d,0xfd, +0x8a,0xfb,0xe,0x8,0x0,0x3,0xf0,0xf1,0xf3,0xf2,0xc8,0xfb, +0x17,0xf5,0xc7,0xec,0x2c,0xf2,0x90,0xf7,0xb3,0xfa,0xef,0xff, +0x11,0xfb,0xb4,0xf6,0x18,0x0,0xa1,0xff,0x28,0xf3,0x1c,0xf3, +0xcb,0xf7,0xab,0xf3,0xdb,0xf0,0x8b,0xf5,0x40,0xfb,0xe5,0xf9, +0x2a,0xf6,0x98,0xfc,0xbb,0x2,0x89,0xf8,0x5d,0xf0,0xdd,0xfb, +0x7b,0x4,0x59,0xf9,0x62,0xf2,0x37,0xff,0x38,0x8,0x72,0xfd, +0xda,0xf4,0x3c,0x0,0xe5,0x9,0x79,0xfd,0xd,0xf3,0x5e,0x0, +0x79,0xc,0x16,0x4,0xb6,0xfb,0xdd,0x1,0xe7,0x9,0xd9,0x5, +0x2b,0xfa,0xfe,0xf6,0x3f,0xfc,0x52,0xfe,0x2,0x0,0x34,0x2, +0x3,0x2,0xb0,0x9,0xc,0x11,0x1f,0x6,0xa1,0xfd,0xb6,0x6, +0x55,0x6,0xf1,0xf7,0xe8,0xf7,0x79,0x3,0x32,0x4,0xef,0x1, +0x3a,0x7,0x3e,0x7,0xbb,0x2,0xac,0x2,0xc1,0xff,0x8f,0xfd, +0x88,0x0,0x27,0xfe,0x11,0xfe,0x1b,0x4,0xa3,0x1,0x2,0x0, +0xa3,0x3,0xe8,0xfa,0xb7,0xf2,0xdd,0xf9,0x3d,0xfc,0xd9,0xf7, +0x6a,0xff,0x2f,0x8,0x51,0x2,0xf4,0xfe,0x53,0x5,0x11,0xff, +0xaa,0xf1,0xda,0xf3,0x6d,0xf8,0x7c,0xf6,0xc4,0xfc,0x5c,0x3, +0x4c,0x1,0xf7,0x3,0xff,0x8,0x5b,0x4,0x4f,0xfc,0x1c,0xf9, +0x70,0xfa,0x90,0xfc,0x0,0xfb,0x6a,0xfc,0x83,0x7,0xac,0xb, +0x2d,0x1,0x5f,0xff,0x2b,0x7,0xfc,0xff,0x28,0xf5,0xef,0xfb, +0xd1,0x0,0xc6,0xf7,0x77,0xf7,0xe7,0x2,0x8,0x6,0xec,0x1, +0x1f,0x0,0x95,0xfe,0xcd,0xff,0x6b,0x2,0xb,0xff,0x1a,0xff, +0xa0,0x5,0xb6,0x3,0xf5,0xfe,0xd2,0x2,0xd1,0x4,0xb9,0x1, +0x42,0x0,0x1a,0xff,0xf5,0x0,0x6e,0x5,0xe1,0x2,0xa7,0xfe, +0x5d,0x3,0x42,0x7,0x78,0x1,0xda,0xfd,0xeb,0x3,0xdd,0x6, +0xa3,0x0,0x24,0xff,0xf9,0x4,0xd9,0x4,0xb0,0x2,0xdb,0x6, +0xec,0x5,0xb2,0xff,0xfa,0x2,0xf4,0x7,0x54,0x3,0x3f,0x2, +0xb,0x9,0xc6,0x9,0xf0,0x5,0x1d,0x7,0xf5,0x7,0x33,0x5, +0xcb,0x4,0xc4,0x5,0x0,0x6,0xa6,0x8,0xde,0xc,0x1d,0xf, +0x33,0xe,0xa2,0xc,0x87,0xc,0x74,0x9,0x24,0x5,0x2,0x7, +0x86,0x8,0x92,0x5,0x4,0x8,0x8d,0xe,0x13,0x10,0xf9,0xe, +0x8,0x10,0x80,0x10,0xde,0xc,0x53,0x9,0x93,0x9,0xdf,0x7, +0x38,0x3,0xcc,0x2,0xfc,0x5,0xf,0x7,0xf7,0x7,0xc3,0xb, +0xf0,0xb,0x73,0x8,0x7b,0xb,0x40,0xc,0x1f,0x3,0xd5,0x1, +0xe8,0x4,0x85,0xfd,0xab,0xfa,0xca,0xfc,0x7f,0xf8,0x1f,0xfc, +0x7a,0x2,0xcd,0xfc,0x70,0xfe,0x4d,0x6,0x3c,0xfe,0xb9,0xf7, +0x6a,0xfe,0x51,0xf8,0x16,0xe9,0x10,0xeb,0xe4,0xf0,0xb8,0xe9, +0x78,0xe8,0xd7,0xf2,0xd9,0xf5,0x4b,0xf1,0x5b,0xf2,0xdc,0xf7, +0x70,0xf7,0x96,0xf0,0x16,0xee,0xb6,0xee,0xf3,0xe8,0x4c,0xe6, +0xf1,0xeb,0xc1,0xea,0x2e,0xe7,0x96,0xef,0x9,0xf6,0x91,0xf1, +0x68,0xf2,0x70,0xf8,0x99,0xf3,0xf6,0xe9,0xb9,0xeb,0xc1,0xf1, +0xab,0xed,0x36,0xe9,0x4e,0xf0,0x26,0xf6,0xde,0xf3,0xb6,0xf6, +0xe,0xfd,0x21,0xf9,0xc3,0xf1,0x71,0xf4,0xa7,0xf9,0x84,0xf7, +0x51,0xf6,0x2,0xfa,0x7c,0xfa,0x6e,0xf9,0xd8,0xfa,0xb0,0xfb, +0x7c,0xfc,0x67,0xfb,0x51,0xf8,0x33,0xfa,0x27,0xfd,0xdb,0xfc, +0x1d,0xff,0x9b,0xff,0xa0,0xf9,0xb6,0xf6,0x1d,0xfb,0x20,0xfd, +0x41,0xf7,0xc6,0xf4,0x2f,0xfa,0xc,0xfa,0x47,0xf7,0x97,0xfb, +0x43,0xfc,0x91,0xf9,0x37,0xfd,0x29,0xfe,0xde,0xf9,0xd3,0xf9, +0xd8,0xfc,0xbc,0xfe,0x1a,0xfe,0xea,0xfa,0xc4,0xfa,0x1a,0xff, +0x68,0x0,0x8a,0xfe,0x25,0x2,0x6a,0x6,0x58,0x1,0x9a,0xfe, +0x0,0x7,0x9,0xb,0x95,0x5,0xb0,0x3,0xd1,0x6,0xe9,0x7, +0xcc,0x9,0x75,0xf,0xa6,0xf,0x86,0x8,0x96,0x7,0xad,0xd, +0xfe,0xf,0x84,0xf,0xe8,0x11,0x85,0x15,0x53,0x14,0x6c,0x11, +0x28,0x18,0x6a,0x1e,0xc9,0x15,0x30,0x10,0x62,0x15,0xfe,0x11, +0x7f,0xc,0x1,0x15,0xaf,0x1a,0xd5,0x12,0xfc,0x10,0x12,0x19, +0xb1,0x18,0x49,0x13,0xbb,0x16,0x70,0x17,0xfc,0xd,0xcc,0xa, +0xc3,0xf,0xde,0xe,0x54,0xa,0x2c,0xa,0x51,0xa,0xfb,0x8, +0xe0,0xa,0xc8,0xb,0x42,0x6,0xf3,0x2,0xe5,0x5,0xe1,0x3, +0xf4,0xfc,0xf2,0xfc,0xc5,0xff,0xeb,0xfb,0xec,0xf7,0x77,0xfa, +0xd7,0xfd,0x9,0xfc,0x29,0xf7,0xeb,0xf5,0xed,0xf7,0x28,0xf6, +0x46,0xf2,0x28,0xf1,0x93,0xf0,0x98,0xef,0x7,0xee,0xa9,0xec, +0xbb,0xf0,0x8b,0xf5,0x50,0xf2,0x50,0xed,0x47,0xec,0x41,0xeb, +0xba,0xeb,0xb9,0xee,0xf3,0xec,0x7a,0xe7,0xd7,0xe8,0x57,0xef, +0x21,0xf1,0x8e,0xef,0xa4,0xee,0x81,0xec,0xa,0xea,0xe5,0xe8, +0xcf,0xe9,0x6f,0xee,0x58,0xf2,0xdb,0xf0,0x54,0xee,0xe9,0xef, +0xb9,0xf3,0x12,0xf4,0x13,0xf1,0x3f,0xf0,0x81,0xf0,0x9b,0xef, +0x74,0xf2,0xcd,0xf8,0x15,0xfb,0x53,0xf8,0xe9,0xf6,0x15,0xf8, +0x47,0xf7,0x25,0xf6,0xba,0xf7,0xf5,0xf7,0xd8,0xf7,0xb4,0xfb, +0x16,0xff,0xbe,0x0,0x4,0x4,0xf2,0x3,0xca,0xff,0x5e,0x0, +0xdc,0x3,0x72,0x2,0xcb,0x0,0x41,0x3,0x32,0x4,0x6a,0x3, +0xb6,0x4,0x42,0x6,0xc8,0x7,0x28,0x9,0xa,0x7,0x8a,0x4, +0x15,0x7,0x4a,0xb,0x99,0xc,0x3c,0xd,0x82,0xe,0x29,0xd, +0x11,0xb,0xfe,0xc,0x7,0xf,0xd0,0xc,0xf,0xa,0x20,0xa, +0xd2,0xc,0x95,0xf,0x73,0xf,0xd0,0xe,0x6b,0x10,0x6f,0x11, +0xab,0xf,0x57,0xd,0x4,0xd,0x84,0xd,0x14,0xd,0x97,0xc, +0xff,0xa,0xc1,0x8,0x70,0xa,0xf5,0xd,0x6d,0xe,0x9f,0xe, +0x77,0x10,0x1d,0x10,0x9a,0xc,0xac,0xb,0xe1,0xf,0xd,0x11, +0xc2,0xc,0x97,0xd,0xb7,0x14,0x88,0x17,0x77,0x13,0xa7,0xf, +0x78,0x10,0x7,0x10,0xf2,0xa,0x93,0x9,0x71,0xc,0x7c,0xd, +0xbe,0x10,0x13,0x14,0x21,0x11,0x9e,0xf,0xe0,0xf,0xa7,0x8, +0x44,0x1,0xbf,0x2,0xfe,0x6,0xde,0x8,0xf4,0x9,0x62,0xb, +0x86,0xc,0x61,0xc,0x5d,0xa,0x4a,0x6,0xab,0x1,0xe3,0xfd, +0x34,0xfb,0x9,0xfc,0x2c,0x0,0xa0,0x4,0x78,0x9,0x68,0xa, +0xb8,0x5,0x80,0x6,0x8f,0xb,0x74,0x6,0xc2,0xfd,0x58,0x0, +0xa,0x6,0x9,0x2,0x80,0xfc,0xb,0x2,0xda,0x9,0x8e,0x5, +0xbe,0xfd,0x74,0xfe,0xd5,0xff,0xd6,0xfc,0x23,0xfc,0x47,0xfc, +0xc9,0xf9,0xdd,0xfa,0xeb,0x0,0xd1,0x2,0x88,0xfd,0x31,0xfb, +0x95,0x0,0x3b,0x2,0x35,0xfb,0xb8,0xf6,0x7,0xf7,0xa1,0xf4, +0x8a,0xf2,0xa1,0xf5,0x1,0xf9,0x3b,0xfa,0xa5,0xfc,0x76,0xfd, +0xec,0xf9,0x60,0xfa,0xe2,0xfe,0x4f,0xfa,0x9e,0xf1,0xb5,0xf2, +0x9b,0xf6,0xcb,0xf5,0xa4,0xf6,0x22,0xfb,0x57,0xfe,0xca,0xfc, +0xd,0xfa,0xed,0xfa,0x5f,0xfa,0xb3,0xf7,0xd9,0xf9,0xbd,0xfb, +0xa5,0xf9,0x87,0xfc,0x6,0x1,0x5a,0xfc,0x21,0xf7,0xde,0xf9, +0xb2,0xf8,0x5d,0xf2,0x8c,0xf3,0x1c,0xf6,0xbb,0xf5,0x83,0xfc, +0x1e,0x1,0xd9,0xfa,0x4,0xf6,0x85,0xf3,0x59,0xf0,0x7a,0xf0, +0xe8,0xee,0xfb,0xee,0xe1,0xf7,0xae,0xff,0x23,0x2,0xe0,0x3, +0xd5,0x3,0x17,0x3,0x3,0x0,0x7f,0xf7,0x84,0xf1,0x71,0xf3, +0xb8,0xf6,0xc6,0xf8,0x38,0xff,0x1c,0x6,0x3b,0x4,0xec,0x3, +0x46,0xc,0xa5,0xa,0xc3,0xfd,0x19,0xfa,0xb,0xfd,0x28,0xfa, +0x98,0xf5,0x15,0xf7,0x35,0xfe,0x64,0x1,0x4d,0xfd,0xe5,0xfd, +0x90,0x4,0x11,0x5,0x79,0xff,0x40,0xfc,0xe6,0xfd,0x4,0x0, +0xea,0xfb,0x98,0xf5,0x4e,0xf6,0x89,0xfa,0x99,0xfb,0x1a,0xfa, +0x28,0xf9,0xfb,0xfd,0xab,0x4,0xdf,0x1,0x42,0xfd,0x62,0x1, +0xed,0x0,0xbf,0xf7,0x6e,0xf6,0xbd,0xf9,0x26,0xf4,0xd3,0xf1, +0x1,0xfc,0xe9,0x0,0x13,0xfb,0x6f,0xf9,0x9e,0xfc,0x65,0xfd, +0xb8,0xfb,0x1f,0xf8,0xb8,0xf8,0xcc,0xfc,0x2b,0xf8,0x57,0xf3, +0xf4,0xf8,0x66,0xfa,0x84,0xf6,0xb2,0xf6,0x4,0xf3,0x86,0xf1, +0x2d,0xfb,0x75,0xfc,0x70,0xf4,0x16,0xf9,0xe8,0x0,0x60,0xfb, +0xdf,0xf3,0x90,0xf2,0x84,0xf2,0xd5,0xf0,0x8f,0xed,0x45,0xf0, +0x15,0xfa,0xa5,0xfb,0x3b,0xf7,0x64,0xfd,0x4b,0x4,0x23,0x0, +0x80,0xfe,0xe9,0x0,0xe6,0xfa,0xbe,0xf5,0xe8,0xf9,0x10,0xfa, +0x59,0xf6,0xf,0xfa,0xbc,0xfd,0x35,0xfc,0xb,0xfc,0xb3,0xfd, +0xc9,0x2,0xfe,0x6,0xde,0x1,0xbb,0x0,0xeb,0x5,0x4a,0xfe, +0x35,0xf7,0x1b,0x0,0x2c,0x1,0x1d,0xf7,0x6b,0xf9,0xc8,0x1, +0x7c,0x1,0x8,0x2,0x1d,0x7,0x9a,0x6,0xb0,0x3,0x80,0x4, +0xcb,0x2,0xa0,0xff,0x94,0xff,0x7c,0xfe,0x51,0xfe,0xc2,0xfe, +0x52,0xfc,0x41,0x0,0xa9,0x5,0xd1,0x1,0x3e,0x4,0x57,0xa, +0x29,0x2,0xf,0xff,0x4d,0x7,0x1a,0x0,0xda,0xf4,0xe0,0xfc, +0x79,0x4,0xcb,0xfe,0xf8,0xfb,0xfc,0xff,0x18,0x4,0x5d,0x6, +0x27,0x4,0x2b,0x0,0x57,0xff,0x38,0xfe,0xac,0xfc,0xaa,0xff, +0xa8,0x3,0xc8,0x1,0x9b,0xfc,0x9b,0xfc,0x48,0xff,0xdc,0xfb, +0xbb,0xf9,0x47,0xfe,0x63,0xfd,0xe5,0xfa,0xfe,0x2,0x39,0x8, +0xcc,0x1,0xc2,0xff,0x2a,0x4,0xd7,0xfe,0x40,0xf5,0x9b,0xf9, +0xf6,0x0,0x2d,0xfc,0xbe,0xfb,0x11,0x6,0xeb,0x8,0x5c,0x5, +0x68,0x7,0xb0,0x8,0x1d,0x1,0xfc,0xf9,0xcd,0xfd,0xb9,0x0, +0x83,0xfa,0x9c,0xfc,0x6c,0x5,0x75,0x3,0x70,0x3,0xa1,0xa, +0xb2,0x4,0x57,0xfa,0x2a,0x1,0x61,0xa,0x1,0x4,0xd6,0xfe, +0xc6,0x6,0xd9,0x7,0x14,0xff,0xc0,0xff,0x43,0x1,0x16,0xfb, +0x9c,0xfe,0xd9,0x5,0xbc,0x1,0x75,0x1,0x15,0xb,0x7d,0xe, +0x91,0x7,0x75,0x0,0xaf,0x1,0xb0,0x4,0x3,0xfe,0xbb,0xf8, +0x19,0x1,0x10,0x9,0x73,0x6,0xbd,0x2,0x2d,0x4,0x22,0x8, +0xf5,0x8,0xd4,0x3,0x15,0x0,0xfd,0x3,0x4d,0x9,0x9e,0x7, +0xb2,0x0,0x5b,0x0,0xd6,0x8,0x92,0x8,0x91,0xfc,0x39,0xfb, +0x8e,0x6,0x29,0xa,0x8a,0x6,0x70,0x9,0x48,0x10,0x2b,0x11, +0x17,0x9,0x12,0xfe,0x5d,0xfc,0x84,0x3,0xcf,0x4,0x51,0xff, +0x46,0xfe,0x19,0x6,0x8,0x15,0x8b,0x1b,0x4,0xf,0x8e,0x7, +0x96,0xc,0xf7,0x2,0x84,0xf6,0xbc,0x0,0x9d,0x9,0x50,0x3, +0xbd,0x3,0x85,0xb,0x2a,0xc,0x35,0x6,0x25,0x0,0x9,0xfd, +0xaa,0xfb,0xf3,0xfd,0xad,0x5,0x54,0x8,0x9,0x4,0xf0,0x6, +0xdc,0xc,0xa0,0x5,0x3f,0xf9,0xbd,0xf7,0x43,0xfa,0x56,0xf7, +0x5f,0xfa,0xef,0x8,0x87,0x12,0xca,0x11,0x9,0x12,0x6a,0xf, +0x1e,0x3,0x89,0xfb,0x6f,0xfd,0x4d,0xf8,0x3a,0xf1,0x9b,0xfa, +0x3e,0x7,0x23,0x8,0xd6,0xb,0x70,0x14,0xa9,0x10,0x0,0x3, +0x5b,0xfb,0x70,0xfe,0x53,0x1,0xd9,0xf9,0x90,0xf7,0xa0,0x4, +0x9,0x9,0xca,0x1,0x34,0x4,0x5,0x7,0x45,0x3,0x98,0x6, +0x3,0x7,0xc6,0xff,0x38,0x4,0x47,0xd,0x6c,0x9,0xb4,0x2, +0xae,0x3,0xff,0x6,0xf6,0x4,0x30,0x0,0xfb,0x4,0x34,0xe, +0xe,0xa,0xdc,0x2,0x39,0x9,0x2d,0xc,0x6e,0x1,0x76,0xfd, +0x64,0x2,0xb1,0x2,0x9d,0x6,0x57,0xc,0x60,0x4,0x7a,0xfd, +0x4a,0x3,0xbc,0x3,0x61,0xfd,0xa3,0xfc,0x99,0xff,0x90,0x3, +0xd3,0x6,0x31,0x7,0xd,0x8,0x3f,0x8,0xdc,0x4,0x12,0x0, +0x30,0xfc,0xfe,0xfc,0x82,0x1,0xd,0x4,0x73,0x7,0x55,0xc, +0xb2,0xa,0xd9,0x4,0x2f,0x4,0xad,0x5,0x80,0x0,0x28,0xf9, +0xe4,0xfa,0x48,0x2,0xcc,0x5,0xc4,0x8,0x98,0xc,0x4d,0x9, +0xe5,0x3,0xff,0x4,0x57,0x1,0x62,0xf6,0x1e,0xf7,0x71,0x0, +0xbf,0x0,0x8b,0x0,0x9d,0x6,0xf4,0x5,0xf4,0xff,0xa1,0xfd, +0xb,0xfb,0x96,0xf7,0x2a,0xf6,0xa,0xf5,0xe6,0xf7,0x3d,0xff, +0x8c,0x0,0x73,0xfb,0x1a,0xf9,0x23,0xf8,0xe6,0xf4,0x94,0xef, +0x3d,0xe8,0xb0,0xe8,0x69,0xf2,0xb4,0xf1,0x4b,0xe8,0x69,0xea, +0xe4,0xef,0xd0,0xe9,0xf0,0xe0,0xfb,0xdf,0x95,0xe3,0x1,0xe1, +0xfb,0xd9,0x48,0xdc,0x9f,0xe1,0x3e,0xdc,0xea,0xd6,0x9f,0xd9, +0x62,0xd9,0x7b,0xd5,0xb1,0xd5,0xaa,0xd6,0x52,0xd6,0x7a,0xd9, +0xff,0xda,0xab,0xd5,0x5a,0xd3,0x7c,0xd7,0xbf,0xd8,0x18,0xd6, +0x8c,0xd5,0x2f,0xd9,0xea,0xdc,0xf0,0xdb,0x6c,0xdb,0x85,0xdf, +0xb7,0xe2,0x21,0xe4,0x48,0xe4,0xe7,0xe2,0x2e,0xe7,0x7b,0xee, +0x63,0xed,0x4b,0xea,0xb8,0xef,0x4b,0xf5,0x99,0xf3,0x68,0xf4, +0xe5,0xfb,0xcb,0xff,0x6,0x0,0x59,0x3,0x36,0x6,0x4f,0x8, +0xd6,0xa,0x32,0x8,0xe,0x6,0xa7,0xb,0x10,0x10,0x16,0xf, +0x5c,0x10,0xf7,0x16,0xa2,0x1d,0xf,0x1e,0x23,0x1b,0x17,0x1c, +0x85,0x1e,0xf,0x1d,0x1c,0x1a,0x8d,0x1a,0xa2,0x1d,0x4c,0x1f, +0xb0,0x1f,0xd5,0x1f,0x58,0x1f,0xb,0x20,0xcb,0x1e,0x3c,0x19, +0x94,0x18,0x6,0x1d,0x27,0x1b,0xc7,0x16,0x20,0x19,0x80,0x1c, +0x16,0x1a,0x90,0x15,0xec,0x14,0xde,0x15,0xb6,0x11,0xc9,0xc, +0xbf,0xd,0x70,0xd,0xde,0x8,0x52,0x8,0x96,0x9,0x56,0x6, +0xda,0x3,0x22,0x5,0x68,0x5,0x38,0x4,0x4b,0x4,0x0,0x4, +0x67,0x1,0xd3,0x0,0xd,0x3,0x77,0x0,0x3d,0xfc,0x4d,0xff, +0xc5,0x1,0x11,0xff,0x11,0x2,0x58,0x8,0xfa,0x5,0x14,0xff, +0x33,0xfe,0x5e,0x2,0x7a,0x3,0x7,0x1,0x2b,0x1,0x4b,0x3, +0x5b,0x5,0xdb,0x8,0x4,0xa,0x7c,0x9,0x22,0xe,0xeb,0xf, +0xe1,0x5,0xf6,0xfe,0xa9,0x6,0xc3,0xd,0xe3,0x9,0xc2,0x7, +0x70,0xe,0xdb,0x13,0xe8,0x11,0xe,0xe,0x6f,0xf,0x39,0x14, +0x3c,0x12,0x8a,0x9,0x56,0x7,0x19,0xf,0x4d,0x16,0x93,0x14, +0x5d,0xe,0x41,0x10,0x23,0x17,0x0,0x12,0x76,0x6,0xe9,0x6, +0xf8,0xd,0x73,0xf,0xab,0xc,0xf7,0xa,0xdb,0x11,0x8e,0x1c, +0xea,0x17,0x2,0xa,0xa8,0x9,0x70,0x10,0xa,0xc,0xa4,0x0, +0xfc,0xfd,0x91,0x7,0x2d,0xe,0x89,0x9,0xd9,0x7,0x42,0xd, +0x71,0xb,0xad,0x1,0x72,0xfb,0xd1,0xfb,0x62,0xfe,0x87,0xfd, +0x55,0xfa,0x43,0xff,0x7d,0xc,0x7b,0xf,0xfb,0x1,0xe9,0xf8, +0x15,0xfe,0xf5,0xfd,0xb6,0xf1,0x54,0xef,0xad,0xfb,0x47,0x0, +0x81,0xfb,0x47,0xff,0xfe,0x5,0xad,0x1,0x13,0xf7,0x7e,0xee, +0x4e,0xee,0x88,0xf5,0xf4,0xf6,0x44,0xf6,0xf0,0x1,0xaf,0xe, +0x85,0xc,0x54,0x3,0x54,0x2,0xb3,0x8,0xf0,0x2,0x74,0xee, +0x68,0xe9,0xe3,0xf9,0x21,0x1,0x32,0xfd,0xde,0x3,0xe3,0xa, +0xb5,0x4,0xba,0x0,0x68,0x1,0x10,0xfc,0x94,0xf8,0x23,0xf9, +0xd,0xf9,0xc9,0xff,0x88,0x6,0xc2,0x4,0xac,0x8,0x87,0xf, +0x1d,0x8,0x27,0xfb,0x4b,0xf8,0x8,0xfc,0x19,0xf9,0x1b,0xf0, +0x6c,0xf3,0x4,0x1,0xc8,0x2,0x54,0xfe,0xb5,0x6,0x4a,0x12, +0xd2,0xd,0xea,0x0,0xb8,0xff,0xe8,0x2,0x69,0xf8,0xf1,0xeb, +0x20,0xeb,0x66,0xee,0xf4,0xf3,0x16,0xf8,0xa,0xf3,0xe3,0xf5, +0xde,0x6,0x19,0x9,0x2a,0xfc,0xb3,0xfa,0xcf,0xfc,0xc2,0xf5, +0x50,0xf1,0x16,0xef,0xeb,0xec,0x45,0xf1,0x88,0xf0,0xe,0xea, +0x60,0xee,0xce,0xf3,0xd4,0xf2,0xab,0xf6,0x8a,0xf7,0x80,0xf4, +0xda,0xfa,0x2,0xfc,0x23,0xf3,0x37,0xf5,0x1,0xf6,0x2b,0xe8, +0xfe,0xe5,0xaf,0xf0,0xd1,0xf2,0x2b,0xf6,0xa0,0xfb,0x75,0xf7, +0x31,0xfb,0x68,0x3,0xf5,0xf6,0x3e,0xeb,0xcf,0xf1,0xad,0xf1, +0xa,0xeb,0x19,0xee,0xd1,0xf2,0x3f,0xf8,0xf1,0x0,0xa4,0x1, +0x3b,0xfd,0x17,0xfe,0x79,0xfe,0x7a,0xf9,0x64,0xf4,0xa6,0xf3, +0xf3,0xf6,0x58,0xf8,0xf,0xf5,0xc,0xf6,0x8,0xfc,0x8e,0xf9, +0xd9,0xf3,0x10,0xfb,0xbd,0x2,0x9f,0xfc,0x14,0xf9,0xa2,0xff, +0x1,0x2,0x3e,0x0,0xb2,0xff,0x45,0xfa,0x27,0xf5,0xdd,0xf7, +0x8e,0xf7,0x4f,0xf4,0xa3,0xfb,0xf1,0x3,0xca,0x0,0xe0,0xfe, +0x3b,0x3,0xed,0x1,0x5e,0xfd,0x8a,0xfe,0x81,0xfe,0x6a,0xf9, +0x61,0xfa,0x48,0x0,0xc7,0xff,0x2e,0xff,0x48,0x2,0xa6,0xfd, +0xe4,0xf7,0x13,0xfd,0x9b,0x1,0xd4,0xfe,0xf1,0xfe,0x68,0x3, +0xe0,0x4,0x88,0x1,0x79,0xfe,0xd7,0xfd,0xf6,0xfa,0x31,0xf7, +0x14,0xf8,0x8,0xfb,0x92,0xfd,0x69,0x2,0x80,0x8,0x9e,0x9, +0x7,0x4,0x16,0x0,0x36,0x0,0xce,0xfc,0x77,0xf9,0x3,0xfa, +0xa4,0xf7,0x83,0xf9,0xfc,0x3,0xff,0x5,0xef,0x0,0xe6,0x3, +0xf2,0x6,0x9e,0x3,0xd9,0x1,0x44,0x1,0xb0,0x0,0x5f,0x1, +0xf3,0xfd,0x88,0xfa,0x5a,0x0,0x81,0x4,0x37,0xfd,0xac,0xfa, +0x4f,0x3,0x35,0x5,0x16,0x2,0x67,0x7,0x10,0x9,0xd9,0x2, +0x9e,0x2,0x8b,0x1,0x4a,0xfc,0xfe,0xff,0xaa,0x2,0xa2,0xfb, +0x3f,0xfc,0xfa,0x4,0x68,0x6,0xd8,0x2,0xf1,0x1,0x4c,0x2, +0xd3,0x1,0xac,0x0,0x89,0xfe,0xab,0xfd,0x60,0x1,0x6f,0x3, +0x33,0xff,0x58,0xfe,0x5b,0x1,0x5b,0xfe,0x1f,0xfa,0xc1,0xfa, +0x81,0xfc,0x26,0xff,0xc6,0x2,0xbc,0x4,0x28,0x3,0x76,0xfe, +0x65,0xfd,0xb8,0xfe,0x33,0xf8,0xfb,0xf1,0x2,0xf8,0x5a,0xfd, +0xb2,0xf8,0x84,0xf9,0x77,0x5,0x1c,0x9,0x12,0xff,0x1c,0xfb, +0x1c,0xff,0x45,0xfc,0x77,0xf9,0x6a,0xfd,0x4f,0xfc,0xd0,0xfb, +0xcb,0x4,0x3a,0x5,0x92,0xfd,0x85,0x4,0x4,0xd,0xf8,0x3, +0xf2,0xfd,0x5e,0x4,0x3a,0x5,0x29,0x2,0xd0,0x3,0xcb,0x2, +0x3,0x1,0x2c,0x5,0x9f,0x8,0xe,0xb,0x7e,0xf,0xfd,0xc, +0xd,0x8,0x5,0xc,0xb3,0xb,0x43,0x4,0x53,0x7,0x9f,0xb, +0xca,0x6,0x8d,0x8,0x5f,0xe,0xbb,0xf,0x6c,0x15,0xa8,0x15, +0x51,0xa,0xd6,0x9,0x58,0x12,0x2b,0xf,0x1,0x9,0x9,0xc, +0x44,0x11,0x9,0x14,0x58,0x11,0x1a,0x9,0x8c,0x8,0x30,0xd, +0x61,0x3,0x93,0xf7,0x8a,0xfe,0x1f,0x5,0x75,0xfe,0x18,0xfb, +0x3e,0xff,0x3a,0x4,0x7e,0x3,0xe6,0xf9,0x33,0xf6,0x1c,0xfb, +0x50,0xf8,0x22,0xf4,0xd5,0xf7,0xf2,0xf9,0x55,0xf9,0x65,0xf7, +0x4b,0xf3,0x60,0xf3,0x92,0xf4,0x81,0xf2,0x82,0xf2,0x4a,0xf2, +0x82,0xf2,0x41,0xf9,0xa0,0xfd,0x72,0xfb,0x88,0xfb,0x98,0xfa, +0xf3,0xf5,0x73,0xf5,0x52,0xf5,0xf7,0xf2,0xf1,0xf7,0xab,0xfd, +0x8f,0xfb,0x9d,0xff,0x9c,0x8,0x3d,0x5,0xd4,0xfe,0x15,0xff, +0xd5,0xfb,0x40,0xfa,0xb0,0xff,0x19,0x1,0xe4,0x4,0xb9,0x10, +0xe,0x13,0x57,0xe,0xf4,0x13,0xa6,0x19,0xca,0x11,0x25,0x7, +0x5c,0x6,0xca,0xa,0x49,0xa,0x27,0xa,0x41,0x12,0x69,0x18, +0x69,0x1a,0xeb,0x21,0x9c,0x24,0xab,0x1c,0xe6,0x1a,0x98,0x1c, +0xa9,0x13,0x1e,0xd,0x8d,0x13,0xe5,0x16,0x34,0x11,0x99,0x11, +0x72,0x18,0x96,0x17,0xbc,0x11,0xc3,0x10,0xf4,0x10,0x26,0xf, +0x49,0xf,0x7d,0x10,0x2f,0xe,0x12,0xb,0xf9,0xd,0x81,0xe, +0x80,0x3,0x75,0xff,0xcf,0x8,0x1d,0x7,0x2d,0xfe,0x50,0x2, +0xaf,0x6,0x14,0x3,0x8e,0x2,0x17,0x0,0x95,0xf9,0x57,0xf9, +0xa9,0xf8,0x26,0xf1,0x3e,0xf0,0xb3,0xf7,0x20,0xf8,0xf6,0xf1, +0xb8,0xf1,0x51,0xf6,0x54,0xf7,0xb8,0xf2,0x57,0xed,0xd,0xee, +0xe5,0xef,0x12,0xea,0x16,0xe6,0xcc,0xea,0x30,0xec,0x31,0xe8, +0x4a,0xe7,0x38,0xe8,0x5a,0xea,0x5d,0xee,0x3e,0xed,0x37,0xe8, +0xb0,0xe8,0x6d,0xea,0x78,0xe5,0x59,0xe1,0x5d,0xe3,0xff,0xe2, +0x48,0xdf,0x2b,0xe0,0xc3,0xe4,0xc6,0xe7,0x38,0xe7,0x21,0xe5, +0x8a,0xe6,0xcc,0xe7,0xb8,0xe3,0xa6,0xe1,0x9c,0xe2,0x77,0xe0, +0x2b,0xe0,0x12,0xe2,0x69,0xe1,0xba,0xe3,0xd9,0xe6,0x6b,0xe4, +0xe3,0xe4,0x8,0xea,0xed,0xea,0x85,0xe9,0x21,0xea,0xf9,0xea, +0xa1,0xeb,0xf7,0xea,0x73,0xe8,0xe1,0xe7,0x35,0xea,0x34,0xec, +0x0,0xee,0xa2,0xf1,0xfc,0xf5,0xbe,0xfa,0xe7,0xfe,0x3b,0xfe, +0xcb,0xfb,0x37,0xfc,0x44,0xfa,0x7f,0xf6,0x0,0xf7,0xaa,0xf8, +0xf7,0xfa,0x1e,0x0,0x5b,0x3,0xbc,0x5,0xda,0xa,0x6e,0xd, +0x70,0xb,0xbf,0x9,0x3e,0xa,0x13,0xa,0xe,0x8,0xed,0x7, +0xaa,0x9,0x8f,0xa,0x31,0xd,0x61,0x10,0xfe,0x10,0xe,0x12, +0x67,0x13,0x47,0x14,0x9d,0x15,0xa2,0x13,0xaf,0x11,0x68,0x14, +0xfd,0x13,0x98,0x10,0x36,0x12,0xa0,0x14,0xd5,0x13,0xe6,0x12, +0xb4,0x12,0xd7,0x13,0xd2,0x14,0x6d,0x13,0x2a,0x13,0x9,0x15, +0xe6,0x14,0xa8,0x12,0xd8,0x10,0x8e,0xf,0x22,0xe,0xad,0xc, +0x5e,0xb,0xe2,0xa,0xa5,0xc,0xaf,0xf,0xd9,0x10,0x7c,0x10, +0xea,0x10,0x4f,0x10,0xe0,0xb,0x2c,0x7,0xf8,0x7,0x23,0xb, +0x49,0xa,0xcd,0x9,0xe,0xf,0xdd,0x12,0xb0,0xf,0x33,0xc, +0xf0,0xc,0x85,0xd,0x9a,0xb,0xab,0x9,0xc7,0x8,0x99,0xa, +0x2e,0x10,0x9e,0x11,0xf2,0xb,0x6e,0xd,0x7b,0x17,0xb1,0x15, +0x4a,0x9,0xfa,0x8,0x34,0x13,0xf4,0x15,0xb7,0x10,0xcf,0xc, +0xb7,0xe,0xd4,0x14,0x89,0x15,0xac,0xe,0xcd,0xe,0x46,0x17, +0x3c,0x16,0x81,0xd,0xd2,0xe,0xbf,0x16,0x8e,0x17,0x55,0x10, +0xdc,0x7,0x21,0x8,0xaa,0xf,0xc2,0xc,0xb0,0x2,0xf4,0x7, +0xc3,0x15,0x3a,0x15,0x9b,0xa,0x53,0x8,0x6d,0x11,0x98,0x16, +0x1c,0xb,0xbc,0xfd,0xbf,0x1,0x46,0x9,0x47,0x4,0xe3,0xff, +0x85,0x2,0x7f,0x3,0x48,0x6,0x49,0x9,0x43,0x5,0xa1,0x7, +0xd6,0x10,0xb9,0xa,0x79,0xff,0x83,0x4,0x7f,0x8,0x9f,0xfd, +0x52,0xf5,0x83,0xf7,0x3,0xfb,0x9b,0xfc,0x5d,0xfd,0x49,0xfe, +0x3c,0x3,0x56,0x9,0xcc,0x7,0x64,0x3,0xeb,0x4,0xd5,0x4, +0x88,0xfe,0xa1,0xf9,0x10,0xf8,0x5,0xfa,0xb0,0xfd,0x97,0xfa, +0x92,0xf5,0x59,0xf8,0x9f,0xfb,0x62,0xfb,0x2a,0xfe,0x7a,0x2, +0x60,0x3,0x45,0x2,0x1f,0x4,0x6,0x8,0x8,0x4,0xa5,0xf9, +0x77,0xf6,0x7e,0xf7,0x30,0xf3,0x18,0xf1,0xd7,0xf6,0x45,0xfc, +0x3d,0xfd,0x1,0xfd,0xa0,0xfc,0x8e,0xfb,0x30,0xfa,0x15,0xf8, +0x1a,0xf5,0x5f,0xf3,0x42,0xf5,0x51,0xf9,0x46,0xfb,0xb3,0xfc, +0xac,0x0,0x98,0xfe,0x2b,0xf5,0x26,0xf5,0xd3,0xfb,0x94,0xf6, +0x82,0xed,0xb5,0xed,0x3a,0xef,0xca,0xef,0xe0,0xf2,0xbf,0xf3, +0xbb,0xf3,0xc8,0xf7,0xbe,0xfc,0xcc,0xfe,0xd0,0xfe,0xdf,0xfe, +0xfa,0xfc,0x24,0xf7,0xd0,0xf2,0x4a,0xf2,0x75,0xf1,0xfc,0xef, +0x22,0xee,0xfa,0xee,0x87,0xf6,0x9d,0xfb,0x50,0xfa,0x72,0xfd, +0xf2,0x0,0x50,0xfc,0x85,0xf9,0x92,0xfb,0x6a,0xfa,0xe9,0xf7, +0x84,0xf5,0xfd,0xf1,0x7d,0xf3,0x2d,0xf8,0xee,0xf6,0x3f,0xf4, +0x25,0xf6,0x72,0xf7,0xe6,0xf7,0xc5,0xf9,0xdd,0xf9,0x3d,0xfc, +0x37,0x1,0xdb,0xfd,0x9,0xf9,0x6d,0xfe,0x67,0xff,0x56,0xf6, +0x45,0xf4,0x8c,0xf6,0x27,0xf1,0x4a,0xed,0x42,0xf1,0x97,0xf4, +0x87,0xf5,0xb7,0xf7,0xa2,0xf9,0x92,0xfa,0x45,0xfc,0xeb,0xfc, +0xe4,0xf8,0x4e,0xf2,0xfa,0xf0,0x37,0xf5,0x2,0xf4,0x3,0xee, +0xf4,0xf1,0x9b,0xfa,0x51,0xf8,0xc7,0xf4,0xec,0xf7,0x48,0xf5, +0x2,0xf0,0xa9,0xf0,0x75,0xef,0x19,0xf1,0xb2,0xfa,0x3e,0xfc, +0xf2,0xf7,0x37,0xfc,0x45,0xfe,0xe,0xf8,0x6f,0xf4,0xfd,0xf2, +0xf4,0xf1,0x17,0xf3,0xc,0xf3,0x12,0xf7,0xc,0x0,0x94,0x0, +0x74,0xfb,0xfd,0xfa,0xd9,0xf9,0xb4,0xf7,0xf7,0xf6,0xfe,0xf2, +0xba,0xf4,0xca,0xfe,0x40,0xff,0x4,0xfc,0x85,0x3,0x5d,0x3, +0xde,0xf8,0x2f,0xfb,0x12,0xff,0x6e,0xf5,0x68,0xf3,0x3a,0xfc, +0xf7,0xfd,0xad,0xfd,0x1d,0x0,0x31,0xff,0x9f,0xff,0x7f,0x0, +0xd5,0xfc,0xd7,0xfb,0xcb,0xfd,0x2b,0xfe,0x7d,0xfe,0x64,0xfb, +0xe2,0xf9,0x9,0x0,0x27,0xfe,0xd7,0xf5,0xda,0xfb,0xd6,0x2, +0xf3,0xfc,0x76,0xfd,0xae,0x4,0x8b,0x3,0x7e,0x1,0x75,0x1, +0x34,0xfe,0x22,0xff,0x9,0x1,0xe3,0xfb,0xf2,0xfb,0xfc,0x2, +0x95,0x2,0x2f,0xff,0x5,0x0,0xa9,0xff,0xa4,0x0,0xe8,0x1, +0x9b,0xfd,0xb0,0xfe,0x9b,0x5,0x7,0x4,0xb1,0x1,0x2f,0x4, +0xcb,0x0,0xad,0xfe,0x4b,0x1,0x46,0xfc,0xae,0xf8,0x6f,0xfe, +0xb2,0xff,0x3b,0xff,0x2f,0x6,0x11,0x9,0x11,0x4,0x13,0x2, +0xb1,0x3,0xfa,0x2,0xf9,0xff,0x4d,0xfd,0x95,0xfd,0xa5,0x1, +0xd6,0x4,0x8e,0x4,0xc1,0x4,0x5f,0x5,0x31,0x5,0x92,0x5, +0xcb,0x0,0x56,0xfa,0xf4,0xfe,0xcf,0x2,0x24,0xfc,0xb9,0xfc, +0x33,0x3,0x59,0x2,0x28,0x3,0x6,0x5,0xe9,0x1,0xdc,0x3, +0x96,0x6,0xe7,0x2,0x18,0x2,0x9f,0x1,0x2,0xff,0x5b,0x1, +0xc0,0x0,0x8,0xfe,0xdf,0x3,0xc,0x4,0x4d,0xfd,0xb,0x4, +0x29,0xa,0xdb,0x1,0x62,0x0,0xf9,0x2,0xb8,0xfd,0xde,0x1, +0x76,0x6,0xd6,0xfc,0x93,0x1,0xbc,0xf,0x96,0x7,0xfa,0x0, +0x88,0x9,0xb4,0x8,0x5c,0x7,0x8d,0xa,0xa8,0x3,0x19,0x3, +0x24,0xb,0x6d,0xa,0xd1,0xc,0x5a,0x11,0xb3,0xc,0xf4,0xd, +0xc1,0x11,0xc,0xe,0xc4,0xf,0x77,0xf,0x6c,0x8,0x92,0xd, +0xf9,0x12,0x4b,0xb,0x3e,0xb,0xd6,0x11,0x16,0x10,0xb8,0xe, +0x36,0xf,0x21,0xc,0xa1,0xc,0xc2,0xd,0xa2,0x9,0xdf,0x6, +0x90,0x3,0x8f,0xfd,0xb3,0xfc,0x69,0xfc,0xb7,0xf9,0x7f,0xfc, +0xd6,0xfd,0x4e,0xfd,0xac,0x5,0x88,0x7,0x43,0xfe,0x78,0xff, +0x31,0x1,0xc,0xf8,0x75,0xf6,0x9a,0xf6,0xd7,0xef,0xe2,0xf3, +0x7d,0xfb,0x3f,0xf8,0xf8,0xf7,0x9e,0xfd,0xe5,0xff,0x3e,0xfe, +0xfe,0xf8,0xc4,0xf7,0xa7,0xfc,0x1c,0xfa,0xd8,0xf2,0x17,0xf2, +0x7a,0xf2,0x8a,0xf2,0x17,0xf6,0x57,0xf8,0xfd,0xf9,0x49,0xfe, +0x91,0xff,0xd7,0xfd,0x9c,0xfe,0x66,0xfe,0xfa,0xf9,0xee,0xf5, +0xd9,0xf6,0xe,0xfe,0xc9,0x3,0x1b,0x1,0x59,0x4,0x9c,0x11, +0xc0,0x11,0xf0,0x8,0xac,0xc,0x67,0xf,0xe6,0x9,0xba,0xb, +0xe,0xd,0xd2,0x8,0x7f,0xc,0xe0,0x10,0x9b,0xf,0xee,0x12, +0x83,0x16,0xab,0x16,0xce,0x1a,0x60,0x1e,0xee,0x1d,0xf6,0x1d, +0x83,0x1b,0xa9,0x17,0x3,0x17,0x50,0x13,0xdb,0xc,0xb6,0xd, +0x26,0x12,0xdb,0x12,0x99,0x15,0xac,0x1a,0x9,0x1b,0xdc,0x19, +0xe4,0x18,0xf6,0x12,0xc7,0xc,0x4,0xb,0xbd,0x7,0x54,0x3, +0xbd,0x3,0x12,0x7,0x89,0x9,0x9a,0xa,0x6c,0x9,0x9,0x6, +0xcf,0x2,0xe5,0xff,0x55,0xfa,0xd0,0xf4,0x87,0xf4,0x1,0xf4, +0x1b,0xef,0xe8,0xed,0x18,0xf1,0x6e,0xef,0x96,0xe9,0x60,0xe7, +0x9a,0xe9,0x82,0xea,0x9,0xe7,0x40,0xe3,0xde,0xe2,0xad,0xe3, +0xfa,0xe1,0xbf,0xdc,0x8,0xd8,0x50,0xd8,0x8,0xda,0xd9,0xd8, +0xe,0xd8,0x94,0xda,0x6a,0xde,0xf7,0xdf,0x20,0xdd,0xf8,0xd9, +0x44,0xdb,0x7a,0xdc,0x9f,0xd9,0x35,0xd8,0x79,0xda,0x9b,0xdc, +0x5d,0xdf,0xae,0xe2,0xf5,0xe2,0x79,0xe3,0xbc,0xe6,0xa1,0xe6, +0x2f,0xe4,0x38,0xe7,0xee,0xeb,0x1b,0xeb,0xdd,0xe9,0x92,0xed, +0x44,0xf1,0xfe,0xf1,0x3d,0xf3,0x8f,0xf5,0x5b,0xf8,0x3a,0xfc, +0x28,0xfe,0x4e,0xfe,0xd,0x1,0x47,0x4,0x96,0x5,0x90,0x6, +0xda,0x5,0x51,0x6,0x41,0xb,0xa1,0xd,0xe3,0xc,0x8d,0xf, +0x60,0x12,0xfb,0x14,0xc1,0x19,0xcd,0x18,0xfe,0x14,0x24,0x19, +0x39,0x1c,0xb3,0x17,0x25,0x17,0x7d,0x1a,0x80,0x19,0x4,0x18, +0x11,0x18,0x21,0x17,0xa2,0x17,0x6d,0x17,0xd3,0x13,0x19,0x13, +0x2d,0x15,0x6b,0x13,0x78,0x10,0x5c,0x10,0x56,0x10,0xb9,0xd, +0x7,0x9,0x9d,0x6,0x38,0x7,0xb0,0x4,0x62,0x1,0x90,0x2, +0x41,0x2,0xbb,0xff,0x0,0x0,0xe,0xff,0x2d,0xfc,0x6e,0xfa, +0x53,0xf7,0x7b,0xf5,0xde,0xf6,0x70,0xf5,0x9c,0xf2,0x25,0xf4, +0xd3,0xf7,0xd4,0xf8,0x12,0xf6,0xf0,0xf3,0xf4,0xf4,0xb5,0xf4, +0x19,0xf3,0x3d,0xf3,0x8e,0xf3,0xb6,0xf4,0xd0,0xf7,0x14,0xfa, +0x51,0xfa,0x8e,0xf9,0xe3,0xfa,0x35,0xfe,0xb6,0xfd,0x1,0xfc, +0x14,0xff,0x2f,0x2,0xa8,0x2,0x60,0x3,0x1d,0x4,0xfa,0x5, +0x5a,0x7,0xff,0x4,0xa1,0x5,0x23,0xc,0xbc,0xe,0x88,0xb, +0xa7,0xb,0xa0,0x11,0x61,0x16,0x2a,0x14,0x75,0xf,0x12,0x11, +0xfc,0x15,0xe2,0x14,0x25,0x12,0x1a,0x15,0x3a,0x18,0xe8,0x18, +0x4e,0x1a,0xe0,0x1a,0x3a,0x1c,0x9d,0x1d,0xf,0x1a,0x69,0x18, +0x34,0x1a,0x9e,0x16,0x59,0x14,0xd9,0x16,0xba,0x15,0xb4,0x16, +0x45,0x1a,0xd2,0x17,0xb2,0x18,0x64,0x1e,0x39,0x1c,0xda,0x17, +0xf8,0x16,0x29,0x13,0x38,0x10,0x5b,0x10,0x5a,0xd,0x5d,0xb, +0xfc,0xe,0x61,0x11,0x68,0xf,0x26,0xd,0xd5,0xb,0x57,0xa, +0xd0,0x7,0x60,0x4,0xa2,0x3,0x15,0x5,0xfb,0x1,0x92,0xfe, +0x7c,0x4,0x3a,0xb,0x76,0x7,0x1f,0x1,0x66,0x1,0x72,0x3, +0xd3,0x0,0xb0,0xfb,0x35,0xfa,0x70,0xfd,0x5,0xff,0x17,0xfb, +0xa7,0xf8,0xd0,0xfd,0x91,0x3,0x99,0x4,0x88,0x5,0x27,0x5, +0xfe,0x0,0x5b,0xff,0xb0,0xff,0x1,0xfd,0x36,0xfb,0x15,0xfa, +0xe8,0xf6,0x3f,0xf9,0x28,0x1,0xdb,0x3,0x2a,0x3,0x5f,0x6, +0xcb,0x8,0xe5,0x5,0x92,0x1,0x79,0xfe,0x7c,0xfb,0x36,0xf8, +0x15,0xf7,0xfd,0xf8,0x5d,0xf8,0x24,0xf5,0x70,0xf9,0xa0,0x2, +0xe8,0x3,0x1e,0x2,0x6b,0x6,0x9c,0x9,0x67,0x7,0xe,0x5, +0x6d,0x2,0x17,0xfe,0x77,0xfa,0x25,0xf8,0xe0,0xf5,0x76,0xf2, +0x70,0xf0,0xe6,0xf4,0xd0,0xfc,0x57,0x1,0x7d,0x2,0xfb,0x1, +0x2e,0x2,0xc1,0x4,0x65,0x1,0xbf,0xf3,0xb9,0xe9,0x59,0xec, +0x75,0xf0,0x73,0xed,0xf,0xed,0x6b,0xf8,0xb1,0x4,0xc6,0x3, +0xa8,0xfc,0xf2,0xfc,0xfa,0xfe,0x92,0xf6,0x91,0xeb,0xa3,0xec, +0x35,0xf3,0x32,0xf2,0xc5,0xee,0x7e,0xf2,0x1e,0xfb,0x27,0xff, +0x62,0xf8,0x8c,0xf0,0x21,0xf5,0xae,0xfc,0xcf,0xf7,0x1a,0xf0, +0xcc,0xf5,0x7a,0x0,0x9,0xff,0x54,0xf7,0x5f,0xf7,0x88,0xfb, +0x24,0xfc,0xbf,0xf8,0xa4,0xf4,0x7e,0xf7,0xa2,0xfd,0x56,0xfa, +0x8,0xf4,0x4f,0xf5,0xd2,0xf6,0xe9,0xf3,0xf6,0xf1,0x8b,0xf3, +0x96,0xf7,0x2b,0xfc,0xe5,0x0,0x1a,0x4,0xd0,0x1,0xb2,0xfc, +0xab,0xf9,0x64,0xf5,0x2a,0xed,0x3e,0xe8,0xc3,0xeb,0x9f,0xef, +0x9c,0xf0,0xb7,0xf7,0xbd,0xff,0x24,0xfe,0x83,0xfb,0x64,0xfa, +0x36,0xf3,0x10,0xee,0x75,0xef,0x1e,0xee,0xaf,0xed,0xdc,0xf6, +0x2c,0xff,0x1f,0xfb,0x42,0xf6,0x7d,0xf9,0xbe,0xf6,0x40,0xec, +0xeb,0xe8,0x6d,0xeb,0xa1,0xef,0xdd,0xf5,0x99,0xf7,0xbe,0xfa, +0x24,0x3,0x1c,0x2,0x7f,0xfb,0x9a,0xfa,0xc4,0xf7,0x58,0xf5, +0xb0,0xf7,0x39,0xf6,0x98,0xf7,0x56,0xff,0xde,0xfd,0xd3,0xf7, +0xd0,0xfa,0x54,0xfc,0xbf,0xf6,0x3e,0xf5,0x7e,0xf8,0x39,0xfc, +0x6b,0x1,0xfe,0x2,0x88,0x1,0x24,0x6,0xb,0x9,0xec,0x1, +0x63,0xfd,0xe4,0xfe,0xbb,0xfe,0xe1,0xfe,0xbc,0xfc,0xdb,0xf8, +0x13,0xfe,0x5b,0x3,0x14,0xff,0xa0,0xff,0xc0,0x5,0x65,0x6, +0xfb,0x6,0x77,0x8,0x49,0x6,0xab,0x5,0xb9,0x4,0x3d,0xff, +0x88,0xfc,0x58,0xfe,0x9f,0xfe,0x83,0xfd,0x76,0xff,0x6a,0x5, +0x29,0x9,0xe,0x6,0xe,0x3,0x42,0x5,0xba,0x4,0xf5,0xfd, +0xf4,0xfa,0xb1,0xfe,0xe8,0x0,0x60,0x2,0x6a,0x5,0x1e,0x4, +0x90,0x3,0xdd,0x7,0xbe,0x4,0xe3,0xfc,0x80,0xfd,0x3,0x0, +0x6,0xfe,0xce,0xfc,0x1e,0xfe,0x2c,0x1,0x53,0x2,0x92,0xff, +0x36,0xfe,0xc5,0xff,0x12,0x2,0xfa,0x1,0x6f,0xfe,0xdd,0x0, +0x80,0x7,0x44,0x4,0xca,0xfe,0xb5,0x0,0xd7,0x0,0x5b,0xfd, +0x2d,0xfa,0x16,0xfa,0x49,0x1,0x82,0x4,0x53,0xfd,0x1f,0xfd, +0x8b,0x5,0x44,0x6,0x2,0x0,0x95,0xfb,0xde,0xfc,0x18,0x3, +0x38,0x2,0xd7,0xf9,0x11,0xfe,0x40,0x8,0xcb,0x1,0x1d,0xfb, +0xb4,0x1,0x8f,0x1,0x8c,0xfd,0x34,0xff,0xd2,0xfb,0x84,0xfe, +0xf4,0x6,0x64,0xfe,0xd5,0xfa,0x34,0x8,0xaf,0x5,0x6c,0xfc, +0x4d,0x1,0x6d,0x4,0x91,0x5,0x73,0x5,0x8c,0xff,0xf9,0x4, +0x8f,0x9,0xf1,0xfd,0x7,0xfe,0x31,0x3,0x2b,0xf9,0x61,0xfa, +0xe3,0x0,0x3d,0xf9,0xf1,0xff,0xc7,0xa,0xab,0xfe,0xcd,0xff, +0xd9,0xf,0xb5,0x7,0xe7,0xfd,0xaf,0x4,0x7e,0x3,0x3f,0xff, +0x99,0xfe,0xc5,0xfb,0x45,0x2,0x23,0x4,0xb8,0xf9,0xf0,0x0, +0x8d,0x7,0xb0,0xf9,0x16,0xff,0x4b,0xa,0x45,0xfc,0xf0,0xfe, +0x94,0xd,0x36,0x2,0xf4,0x0,0x3e,0xc,0x60,0x0,0x98,0xfc, +0x3b,0x5,0x47,0xfa,0xef,0xf7,0x89,0x2,0x51,0xfd,0x4b,0xfe, +0xec,0x5,0xd5,0x1,0x9f,0x8,0x38,0xc,0x6e,0xfd,0x5f,0x4, +0xf3,0xe,0xdb,0xfc,0xab,0xfb,0xce,0xa,0x69,0x3,0x5e,0x0, +0x57,0x6,0x0,0x0,0xf1,0x5,0xe3,0xc,0xf2,0xfc,0x7b,0xfe, +0x17,0xe,0xcd,0x4,0x7c,0x1,0x80,0xe,0x87,0xc,0xdf,0xc, +0x2d,0x12,0xf3,0x8,0xe6,0x9,0xe3,0xe,0x75,0x0,0x98,0xff, +0xf2,0xa,0xde,0x5,0x93,0x8,0xfa,0x11,0xb0,0xd,0xb3,0x11, +0xe9,0x15,0x46,0x9,0xeb,0x6,0xd2,0x9,0x3,0x1,0x7,0x2, +0xb8,0x8,0xf1,0x6,0x23,0xd,0x3f,0x16,0x63,0x12,0x6d,0xd, +0x6,0xd,0x99,0x9,0xa,0x4,0x8d,0xfe,0xc9,0xfb,0xaa,0xfe, +0x49,0x1,0x4d,0x1,0x5c,0x4,0xc6,0x6,0x89,0x3,0xf,0x0, +0x65,0xfd,0x77,0xfa,0x71,0xfa,0x33,0xfa,0x62,0xfa,0x4,0xff, +0x82,0xff,0x72,0xfa,0x6e,0xf8,0x5e,0xf6,0xe5,0xf1,0x8e,0xed, +0xb5,0xea,0xa9,0xef,0xcf,0xf6,0xaf,0xf6,0x30,0xfa,0x6d,0x1, +0x1a,0xfe,0x47,0xf7,0x72,0xf5,0xc5,0xf1,0x40,0xec,0x24,0xea, +0x41,0xed,0xfe,0xf3,0xea,0xf7,0x2c,0xf9,0xac,0xfd,0xe0,0x0, +0x79,0xfd,0xad,0xf9,0xae,0xf8,0xd8,0xf6,0x40,0xf6,0x7c,0xf8, +0x61,0xfa,0x97,0xfe,0xd2,0x4,0xd,0x6,0x3e,0x5,0xd6,0x6, +0x40,0x7,0x16,0x7,0x8c,0x7,0x9b,0x8,0x63,0xb,0x6d,0xa, +0x68,0x8,0xe6,0xd,0x92,0x10,0x1b,0xd,0x15,0x10,0x3f,0x13, +0xbb,0x11,0x76,0x15,0x36,0x18,0xd3,0x15,0xcf,0x16,0xd4,0x15, +0xcd,0x11,0x8a,0x11,0xfe,0xd,0x4e,0xa,0x9a,0xe,0x62,0xe, +0x30,0xa,0x2a,0xe,0x8a,0x10,0xb4,0xd,0x5f,0xe,0xe1,0xc, +0x92,0x8,0xad,0x7,0xa4,0x4,0x29,0x0,0x16,0xff,0x7,0xfc, +0x81,0xf8,0x11,0xf9,0xbe,0xf8,0xc6,0xf7,0x98,0xf8,0x8,0xf7, +0x9a,0xf5,0x64,0xf7,0x7b,0xf4,0x9b,0xec,0x4f,0xe9,0x76,0xe8, +0xd8,0xe4,0xe1,0xe2,0xb1,0xe2,0xf3,0xe1,0xe7,0xe3,0x2d,0xe6, +0x58,0xe5,0x91,0xe4,0x95,0xe3,0x73,0xe1,0x50,0xdf,0xbd,0xdb, +0xd5,0xd9,0xbe,0xdb,0xe5,0xdb,0x22,0xdb,0xc3,0xdd,0x41,0xe0, +0xa2,0xe0,0x5d,0xe1,0x74,0xe2,0x93,0xe3,0x90,0xe5,0xc5,0xe6, +0x35,0xe6,0xc8,0xe7,0xba,0xea,0xb7,0xe9,0x23,0xe9,0x34,0xec, +0x53,0xed,0xe2,0xee,0xdc,0xf2,0xbc,0xf4,0x8e,0xf8,0x25,0xfe, +0xb2,0xfe,0xe0,0xfe,0x22,0x1,0xaf,0x0,0x84,0xff,0xa3,0xff, +0xb9,0x0,0x44,0x3,0xe7,0x5,0x92,0x9,0xc4,0xd,0x88,0xf, +0x76,0x10,0x34,0x11,0x2d,0x11,0xcf,0x10,0x4c,0xf,0xba,0xf, +0x64,0x11,0x33,0x10,0x4b,0x12,0x6e,0x16,0x67,0x14,0xaa,0x13, +0x28,0x16,0xc9,0x14,0xf1,0x14,0xd2,0x15,0xb7,0x12,0xe3,0x13, +0xeb,0x15,0x78,0x10,0x97,0xd,0xd7,0xf,0xff,0xd,0x61,0xb, +0x2f,0xc,0xff,0xb,0x9c,0xb,0xdc,0xc,0x56,0xb,0xb2,0x7, +0x5c,0x7,0xd1,0x7,0x7a,0x4,0x3f,0x1,0x25,0x2,0x42,0x3, +0x7d,0x0,0xdc,0xfd,0x79,0xff,0xb,0x0,0x1d,0xfd,0x36,0xfd, +0x78,0xff,0x17,0xfe,0xb0,0xfc,0x9a,0xfe,0xe6,0xfe,0xe0,0xfb, +0x98,0xfb,0x40,0xfe,0xb6,0xfb,0x18,0xf9,0x7,0x0,0xf,0x3, +0x66,0xfc,0x88,0xfe,0xa9,0x5,0x15,0x2,0x6d,0xfe,0xba,0x0, +0x70,0x0,0x88,0x0,0x56,0x2,0x36,0x2,0x6d,0x4,0x1c,0x8, +0xf8,0x8,0x87,0x9,0x2c,0xa,0xd7,0x9,0xb4,0x8,0xfe,0x5, +0xa8,0x5,0x7b,0x9,0xb3,0xb,0xaf,0xb,0xae,0xc,0x76,0xc, +0xb6,0x9,0x98,0x8,0x5d,0xb,0x4a,0xd,0x96,0xb,0xbc,0xb, +0xc7,0xe,0xf7,0xe,0xbe,0xd,0x10,0xf,0xf2,0xf,0x5b,0xe, +0x92,0xc,0x7c,0xc,0xcf,0xe,0x26,0x11,0xda,0xf,0x20,0xe, +0xf8,0xf,0x5e,0xe,0xc4,0x6,0xd2,0x5,0x1d,0xc,0x84,0xb, +0xee,0x6,0xfd,0x9,0x61,0x11,0xab,0x14,0x9c,0x10,0xde,0xa, +0xfa,0xc,0xfd,0xe,0x59,0x5,0x29,0xfd,0x23,0x1,0x5c,0x4, +0x5b,0x1,0xef,0x1,0xda,0x6,0xde,0x9,0xc1,0xa,0x14,0xa, +0x3e,0x8,0x45,0x9,0xce,0xb,0xf1,0x9,0xc7,0x6,0x41,0x7, +0xcb,0x7,0x36,0x6,0x42,0x4,0xf0,0x1,0xad,0xff,0xb3,0xfc, +0xfe,0xf8,0x52,0xfa,0x7c,0x0,0xcd,0x3,0xa2,0x5,0x73,0x9, +0x59,0xa,0x70,0x9,0x56,0xa,0x23,0x6,0x24,0xfe,0xd9,0xfd, +0xdc,0xff,0xab,0xfa,0x69,0xf8,0x6e,0xff,0xbb,0x4,0x3a,0x3, +0x2e,0x1,0x4a,0x3,0xc,0x7,0x7d,0x4,0x75,0xfc,0xf2,0xfa, +0x4f,0xff,0xf4,0xfd,0xe6,0xfa,0xe5,0xff,0x25,0x5,0xa4,0x1, +0xba,0xfd,0xbc,0xff,0x8f,0xff,0x12,0xfb,0xfa,0xf7,0xd3,0xf4, +0xcf,0xf4,0x15,0xfc,0x9e,0xfd,0x15,0xf8,0x1e,0xfb,0x19,0x0, +0xa4,0xfd,0x7b,0xfc,0x52,0xfa,0x3,0xf6,0x4a,0xf7,0x9c,0xf5, +0xac,0xf2,0x96,0xfa,0xcd,0xfd,0xaa,0xf8,0xd,0xfe,0x7b,0x0, +0x85,0xf4,0x7a,0xf0,0x49,0xf2,0x97,0xea,0x32,0xe7,0xfa,0xea, +0xdd,0xeb,0x71,0xf3,0x71,0xfd,0x2f,0xfd,0x91,0x1,0x84,0x8, +0xbc,0xff,0x91,0xf8,0xdc,0xf9,0xf2,0xf0,0x50,0xeb,0x60,0xf0, +0xc0,0xeb,0x58,0xe9,0xc9,0xf4,0x33,0xf7,0x9a,0xf2,0x84,0xf7, +0xe3,0xf9,0xe6,0xf4,0x4b,0xf4,0x30,0xf6,0x20,0xf6,0x91,0xf6, +0x49,0xf6,0x64,0xf7,0xad,0xfb,0x9c,0xf9,0xde,0xf2,0x95,0xf4, +0x7b,0xf6,0x86,0xf1,0xbb,0xf4,0x63,0xfa,0xca,0xf3,0x47,0xf1, +0xa0,0xf8,0xd6,0xf7,0x15,0xf3,0x32,0xf5,0x4a,0xf6,0x21,0xf5, +0x7d,0xf7,0x87,0xf9,0xfb,0xf9,0x4c,0xfb,0x23,0xfa,0x6f,0xf8, +0xe,0xfa,0xec,0xf7,0x6e,0xf3,0x33,0xf6,0xa0,0xf7,0x77,0xf1, +0x37,0xef,0x84,0xf0,0x3e,0xef,0x5d,0xf1,0x6,0xf6,0xb2,0xf6, +0x23,0xf8,0xd4,0xfe,0x75,0x1,0x84,0xf9,0x31,0xf4,0x29,0xf7, +0x88,0xf3,0x9e,0xec,0x16,0xf0,0x95,0xf4,0xca,0xf4,0x9d,0xf7, +0xfd,0xfa,0xf6,0xfd,0x78,0xfc,0x60,0xf3,0xe7,0xf2,0x6c,0xf9, +0x81,0xf3,0x31,0xf0,0xa3,0xfa,0xce,0xfc,0x19,0xfb,0xfd,0x1, +0x82,0xfe,0x6e,0xf6,0x57,0xfc,0x4b,0xfb,0xb9,0xf1,0xc4,0xf7, +0x98,0xfe,0xa5,0xfb,0xfb,0xfe,0x8e,0x0,0x11,0xfd,0x94,0xff, +0x15,0xfc,0x1b,0xf6,0xb1,0xfd,0xee,0x1,0x8f,0xff,0xea,0x6, +0x66,0xa,0x19,0x5,0x2b,0x8,0x26,0x9,0x41,0xfe,0xe3,0xf9, +0x5c,0xfc,0x57,0xf9,0xc2,0xfa,0xd6,0x2,0x57,0x5,0xd6,0x7, +0x44,0xd,0xf,0xc,0x4e,0xa,0x9a,0xb,0xf9,0x7,0x21,0x5, +0x8d,0x5,0xff,0x2,0xe7,0x2,0xbc,0x4,0x5c,0x2,0xc9,0x2, +0xaf,0x6,0x10,0x7,0xc4,0x7,0xe7,0xa,0x0,0xb,0xf3,0x8, +0x60,0x9,0x71,0x9,0x8e,0x5,0xd3,0x2,0xf3,0x2,0xd2,0x0, +0xa5,0xff,0x35,0x3,0x3f,0x6,0x8e,0x7,0x1d,0x9,0x85,0x8, +0xdc,0x6,0xe3,0x6,0xeb,0x3,0xe4,0xfc,0x76,0xfb,0xdb,0xfe, +0xd,0xfd,0x30,0xfc,0xae,0x1,0x3c,0x4,0x22,0x4,0x71,0x3, +0x26,0xff,0x56,0xff,0xf5,0x1,0x2a,0xfd,0x54,0xfb,0x9d,0xff, +0x8d,0xff,0xf5,0xfe,0x60,0x0,0x45,0x1,0x86,0x4,0x2b,0x3, +0x52,0xfc,0xa1,0xfe,0x8a,0x3,0x24,0xfd,0xdf,0xf9,0x3e,0x0, +0x4e,0xff,0x5a,0xfb,0xfc,0xff,0x6a,0x1,0xbd,0x0,0xf3,0x6, +0x37,0x6,0x9d,0x1,0xd7,0x7,0x19,0xa,0x7a,0x4,0xb6,0x3, +0x7b,0x1,0xe3,0xff,0x6a,0x3,0x92,0xff,0x55,0xfd,0x1a,0x5, +0x6f,0x6,0x4,0x8,0xda,0x10,0x71,0xe,0x37,0xa,0xd3,0xe, +0xee,0x6,0x23,0xfd,0x95,0x4,0x17,0x5,0xc9,0xfe,0x25,0x7, +0x2,0xd,0xad,0xc,0x4a,0x13,0x6,0x10,0xed,0x7,0x8a,0xb, +0xf5,0x5,0x64,0xfc,0xbc,0x3,0xcd,0x7,0x18,0x7,0xdb,0xe, +0x2e,0xf,0x89,0xd,0x57,0x12,0x78,0xa,0x4d,0x2,0x70,0x7, +0x2a,0x4,0xe2,0xfe,0xbf,0x5,0xc7,0x8,0x51,0xa,0x4b,0xf, +0xfd,0x9,0x5f,0x6,0x4,0xc,0x17,0x6,0x3b,0xfd,0x6d,0x2, +0xaa,0x5,0x5a,0x4,0x13,0x8,0x14,0x8,0x4e,0x7,0x90,0xb, +0xe,0x8,0x39,0x0,0x8c,0x0,0xbd,0x2,0x9e,0x1,0x7a,0xfe, +0xa8,0xfd,0x92,0x5,0xf8,0x9,0x7,0x2,0x1d,0x0,0xd2,0x5, +0x56,0x2,0x99,0xfd,0x49,0x0,0x64,0xff,0x17,0xfd,0x13,0x1, +0x8c,0x1,0xa3,0xfd,0xc1,0x0,0x71,0x4,0xe1,0xff,0x19,0xfd, +0xda,0x0,0x95,0x2,0x4e,0x0,0x7e,0xff,0x5f,0x1,0x96,0x0, +0x80,0xfc,0x15,0xfd,0xa1,0x0,0xb4,0xfe,0x10,0xfd,0x92,0x0, +0x90,0x0,0xbc,0xfd,0x73,0x0,0xf5,0x2,0x66,0xff,0xc7,0xfe, +0x3f,0x3,0xcf,0x2,0x40,0xff,0x9d,0x0,0x9d,0x2,0x2e,0x1, +0x17,0x0,0x35,0x0,0x48,0x1,0x40,0x3,0xad,0x2,0x4f,0x1, +0xed,0x3,0xc5,0x5,0x6,0x3,0xc0,0x0,0x9a,0xff,0x71,0x0, +0x56,0x6,0xd0,0x6,0x8,0x1,0x3d,0x6,0x90,0xd,0xe0,0x6, +0xf3,0x0,0xe0,0x1,0x9e,0x0,0xc3,0xff,0x6b,0xfd,0x77,0xfc, +0x4a,0x5,0x12,0xa,0x7b,0x7,0x5e,0xa,0x2,0x9,0xba,0x1, +0xd8,0xff,0x75,0xf9,0x11,0xf3,0x4f,0xfb,0x6,0xff,0xf2,0xf8, +0xed,0xff,0xe,0xa,0xfa,0x4,0xf4,0xfe,0x73,0xff,0x74,0xfd, +0xc2,0xf8,0xb6,0xf3,0x47,0xf3,0x45,0xf9,0xe6,0xf9,0xc4,0xf8, +0xe7,0xff,0xf3,0xff,0xe9,0xf8,0x7d,0xfb,0x5,0xfb,0xec,0xf3, +0xc8,0xf6,0x30,0xf8,0x91,0xf1,0x8,0xf4,0x28,0xf9,0xb0,0xf4, +0xf9,0xf1,0xaf,0xf5,0x98,0xf6,0xc9,0xf3,0x89,0xf3,0x76,0xf6, +0x29,0xf8,0x6e,0xf7,0xc1,0xf6,0x9,0xf7,0xb0,0xf4,0x90,0xf0, +0x9,0xf3,0x40,0xf6,0x6a,0xf0,0xb5,0xef,0xc4,0xf7,0xef,0xf6, +0xb4,0xf2,0xbf,0xf5,0xcb,0xf6,0xe2,0xf4,0xf9,0xf3,0xd7,0xf1, +0x9f,0xf2,0x27,0xf6,0xb,0xf5,0x91,0xf1,0xea,0xf2,0x8a,0xf6, +0x5f,0xf4,0xff,0xef,0xce,0xf1,0x9c,0xf4,0xda,0xf3,0xf6,0xf2, +0x1,0xf2,0x9c,0xf3,0x22,0xf6,0xb9,0xf1,0x60,0xee,0x23,0xf3, +0x5,0xf5,0xb2,0xf2,0x52,0xf3,0x5a,0xf4,0x7b,0xf5,0x28,0xf7, +0x36,0xf4,0x92,0xf1,0x47,0xf5,0x1,0xf6,0xca,0xf2,0x87,0xf6, +0x57,0xfb,0x3e,0xfa,0x62,0xfa,0x49,0xf9,0x7e,0xf5,0x23,0xf7, +0x23,0xf7,0x61,0xf2,0xf,0xf5,0x82,0xfa,0xed,0xfa,0x4,0xfd, +0xa0,0xff,0x68,0xff,0x51,0x0,0xe2,0xff,0x68,0xfc,0x6d,0xfc, +0x4d,0x0,0x29,0x1,0x8b,0x0,0x7a,0x4,0xaf,0x7,0xcd,0x5, +0xf1,0x4,0x1d,0x5,0x77,0x4,0xa6,0x5,0x18,0x5,0x5d,0x4, +0x6d,0x9,0x7d,0xd,0x90,0xd,0x8b,0xf,0x2,0x11,0x23,0x10, +0x8e,0xf,0x55,0xd,0x3a,0xb,0x3e,0xd,0xd1,0xd,0x7a,0x9, +0x72,0x9,0x1,0x10,0xb,0x12,0xa1,0xf,0x51,0x11,0x1b,0x14, +0xda,0x13,0xa8,0x11,0x85,0xe,0xf,0xf,0x28,0x11,0xef,0xc, +0xda,0x8,0x69,0xc,0xce,0xf,0xf4,0xd,0xfc,0xc,0x9,0x10, +0x23,0x11,0xc7,0xc,0x91,0x9,0xe8,0xc,0xec,0x10,0xd3,0xc, +0xea,0x5,0x6e,0x9,0x9a,0x10,0xca,0xc,0xfa,0x5,0x34,0x7, +0xb4,0xb,0x4e,0xc,0x23,0x7,0x59,0x4,0xcf,0xa,0x7b,0x10, +0x91,0xd,0x34,0x8,0xf8,0x7,0x4b,0xc,0x59,0xa,0x79,0x2, +0x36,0x2,0x1f,0x6,0x9e,0x6,0x95,0x7,0xd2,0x7,0x3,0x9, +0xa4,0xc,0x39,0xa,0xea,0x5,0xf,0x6,0x76,0x4,0xe8,0x4, +0xdc,0x8,0xf2,0x5,0x64,0x3,0x61,0xc,0x7c,0x13,0x5c,0xd, +0x18,0x8,0xfa,0xd,0x16,0x11,0x1e,0x8,0x1d,0xff,0x24,0x1, +0xec,0x7,0xfa,0x5,0x13,0x1,0x75,0x8,0xe4,0x10,0x67,0x10, +0xe1,0x11,0xb5,0xf,0x44,0xa,0xd,0x12,0x7c,0x14,0x24,0x5, +0xc0,0x2,0x44,0xf,0x3b,0x10,0x75,0xa,0x3d,0xc,0x59,0xf, +0xb9,0xb,0x20,0x8,0xf2,0xc,0x5a,0x10,0x8f,0xa,0x30,0xa, +0x7d,0x13,0xe4,0x13,0xba,0xa,0x91,0xb,0x61,0x12,0x7d,0xc, +0x81,0x1,0x64,0xff,0xfc,0x0,0xb9,0x1,0xe9,0x0,0x98,0xfe, +0x6a,0x1,0x80,0x7,0x35,0x8,0xcb,0x4,0xf9,0x3,0xae,0x9, +0xd1,0xc,0xc1,0x2,0xcf,0xf8,0x1d,0xfc,0x70,0x1,0x43,0xfa, +0x18,0xeb,0xdb,0xeb,0x71,0xfb,0x52,0xf8,0x79,0xec,0x54,0xf7, +0xee,0x2,0x84,0xfe,0x49,0xfd,0x4e,0xfd,0x6c,0xf8,0xb5,0xf7, +0x99,0xf6,0x58,0xef,0x80,0xe9,0xad,0xeb,0x44,0xf1,0x43,0xed, +0xaa,0xe5,0xdd,0xed,0x87,0xf7,0xa7,0xed,0xed,0xe7,0x63,0xf5, +0x7a,0xf8,0x71,0xee,0xa8,0xf2,0x33,0xf9,0xad,0xf1,0x60,0xee, +0x29,0xef,0xea,0xe8,0xdc,0xe7,0x78,0xeb,0xe4,0xe9,0xa4,0xea, +0x9e,0xf0,0x6f,0xf7,0x0,0xfb,0xa8,0xf7,0xd5,0xf6,0x98,0xf9, +0x33,0xf1,0x97,0xe6,0x16,0xe9,0x98,0xec,0x46,0xeb,0x79,0xef, +0xff,0xf5,0x82,0xf9,0x39,0xfe,0xed,0xff,0x79,0xfb,0x68,0xf7, +0xd0,0xf1,0xf4,0xeb,0xe9,0xed,0xc1,0xee,0x69,0xec,0x46,0xf4, +0xdb,0xfd,0xb3,0xfe,0x86,0xfe,0xde,0xfd,0xa,0xfd,0x6,0xfc, +0x30,0xf4,0xca,0xef,0x11,0xf5,0xe0,0xf6,0x84,0xf6,0x95,0xf8, +0xf9,0xf8,0x8a,0xfd,0x48,0x2,0x58,0xfb,0x4c,0xf4,0xbd,0xf8, +0xe,0xfd,0x44,0xf9,0x8e,0xf7,0x52,0xfe,0xe,0x3,0xf1,0xfd, +0x67,0xf8,0xb,0xfb,0x75,0xfc,0x85,0xf4,0x42,0xf0,0xe5,0xf4, +0x6e,0xf5,0xb6,0xf6,0xbe,0xfe,0x6b,0x0,0x33,0x0,0x4a,0x5, +0x10,0x3,0x15,0xfc,0xac,0xf9,0x1b,0xf8,0xab,0xf6,0x43,0xf5, +0x83,0xf7,0x60,0xfe,0xef,0xfd,0x23,0xfe,0xb,0x8,0xa0,0x5, +0x2d,0xf9,0xc8,0xfa,0x9,0xfe,0x87,0xf5,0x62,0xf1,0x96,0xf6, +0xa6,0xf9,0xf0,0xfa,0x49,0x0,0x43,0x3,0x4f,0x0,0xf2,0xff, +0x9,0x2,0x83,0xff,0xdd,0xfa,0xfd,0xfa,0x14,0xff,0x5d,0xfe, +0x6,0xfc,0x83,0x1,0x2b,0x4,0x80,0x1,0xaa,0x4,0x17,0x2, +0x20,0xf9,0x2d,0xfd,0xf9,0x3,0x40,0xfe,0x3a,0xf8,0x63,0xfe, +0xf4,0x7,0xc5,0x3,0x18,0xfe,0xfc,0x6,0xbc,0x7,0x11,0xff, +0x57,0x2,0xd5,0x2,0x44,0xfe,0x37,0x2,0x11,0x1,0x33,0xfe, +0xf7,0x2,0xf7,0x1,0xc4,0xff,0x15,0x1,0xd0,0xff,0x9b,0x3, +0x1c,0x4,0xe1,0xfb,0x5f,0x0,0xc4,0x7,0x44,0xfd,0x66,0xf8, +0x7,0x4,0x33,0x6,0xfa,0xff,0xc8,0x3,0xc5,0x6,0xa0,0x3, +0x10,0x5,0xa7,0x1,0x36,0xfb,0xe7,0xfe,0x7,0xfc,0xa7,0xf4, +0xe8,0xfc,0x98,0x3,0xe8,0x2,0x95,0x6,0xf1,0x3,0xce,0x1, +0x1b,0x7,0xdf,0x0,0x83,0xf7,0xd8,0xf9,0x2c,0xfd,0x7a,0xfe, +0x8c,0xfe,0xbf,0xff,0xd0,0x7,0xae,0xa,0x55,0x3,0xda,0xfe, +0x94,0xfd,0xa3,0xf9,0x54,0xf7,0x55,0xfc,0x2c,0x1,0x4a,0xfd, +0xf,0x0,0x74,0xd,0xc6,0xc,0x61,0x2,0x33,0x3,0xff,0x3, +0xb8,0xfc,0x66,0xfa,0x13,0xfc,0x3,0xfa,0xd0,0xfc,0x7a,0x4, +0xa2,0x1,0x74,0xfe,0x1a,0x7,0xf5,0x5,0x89,0xfc,0xc4,0xff, +0xa4,0x3,0xfa,0x2,0x19,0x3,0x55,0xff,0x45,0x4,0xda,0x9, +0x52,0xfe,0x78,0xfe,0x8,0xa,0xf6,0x3,0x7f,0x0,0xd9,0x4, +0xb6,0x0,0xc9,0x3,0xef,0x5,0x57,0xfb,0xb2,0xfd,0xfd,0x4, +0x3d,0xfe,0x58,0x0,0xe1,0xb,0xdf,0xa,0xcf,0x7,0x92,0xb, +0xe4,0x8,0xa8,0x2,0x6e,0x2,0x7a,0x0,0x40,0xfd,0x35,0x2, +0x4e,0x9,0xd7,0xc,0x1f,0xe,0x2a,0xd,0x6,0xf,0x46,0xe, +0x9f,0x4,0xfe,0x0,0xd6,0x2,0x13,0x0,0xb2,0x4,0x50,0xb, +0x2d,0x8,0xa2,0xc,0x1f,0x16,0xcc,0xf,0xe4,0x4,0x62,0x6, +0xee,0xc,0x75,0xb,0x99,0x4,0x91,0x7,0xa0,0x12,0x64,0x14, +0xd,0xd,0x81,0x9,0x7e,0xb,0x46,0xb,0xce,0x5,0x55,0x1, +0x9f,0x4,0xde,0xd,0x3,0x12,0xc3,0xd,0x97,0xd,0x72,0x10, +0xb9,0xa,0x59,0x4,0x1b,0x3,0xf7,0x2,0x41,0x7,0x2c,0x9, +0x61,0x6,0xb9,0xc,0xc2,0x12,0x89,0xb,0x58,0x4,0x2d,0x2, +0xfe,0x0,0xca,0x1,0x60,0x0,0xc1,0xff,0x38,0x4,0x80,0x5, +0x20,0x3,0x3b,0x1,0x18,0xfc,0x30,0xf6,0x1b,0xf4,0x17,0xf3, +0xc0,0xf3,0x22,0xf9,0xc7,0xfd,0x76,0xfc,0xee,0xfb,0xeb,0xfd, +0x85,0xf7,0xe3,0xeb,0x22,0xe8,0xca,0xe8,0x58,0xe7,0x14,0xe8, +0x12,0xee,0x9e,0xf6,0x79,0xfb,0x64,0xfa,0xf,0xf8,0x5,0xf5, +0xbf,0xef,0xb7,0xea,0xaf,0xe6,0xef,0xe5,0xf5,0xea,0xa4,0xef, +0xce,0xf0,0x2d,0xf5,0x43,0xfc,0x34,0xfc,0xea,0xf5,0x9c,0xf4, +0xa1,0xf7,0x5c,0xf5,0x1b,0xf1,0x92,0xf3,0x93,0xf7,0xbe,0xf6, +0x16,0xf7,0x7a,0xfa,0x90,0xfb,0xcc,0xfd,0xbe,0x1,0xc0,0xff, +0x9d,0xfe,0x68,0x5,0xe,0x8,0xb5,0x3,0xca,0x2,0x39,0x5, +0x41,0x7,0xe5,0x7,0xf7,0x6,0xe3,0x8,0xc8,0xc,0x4c,0xd, +0xb2,0xc,0xde,0xc,0x9,0xd,0x17,0xe,0x6a,0xc,0x23,0x8, +0xac,0x9,0xc,0xf,0x7f,0xe,0x79,0xb,0x58,0xd,0xc6,0xe, +0x19,0xc,0x5,0xa,0x8e,0x7,0x31,0x5,0x62,0x7,0xd8,0x6, +0xe9,0x0,0x78,0x0,0xcb,0x2,0x7f,0xff,0x16,0xfc,0xd3,0xfa, +0xf9,0xf8,0x0,0xf9,0xb,0xfa,0xd5,0xf9,0x42,0xf9,0xc0,0xf7, +0x32,0xf6,0xe0,0xf3,0x8e,0xed,0xea,0xe8,0x59,0xea,0xc1,0xe9, +0x3a,0xe6,0x36,0xe7,0xca,0xe9,0xfa,0xe9,0x67,0xe9,0x82,0xe6, +0x8a,0xe3,0x2d,0xe3,0x9d,0xe0,0xb5,0xdd,0xf1,0xdd,0xb4,0xdd, +0xed,0xdf,0xb7,0xe3,0x98,0xe1,0x21,0xe0,0x8e,0xe2,0x38,0xe1, +0xbb,0xdf,0x8b,0xe0,0x41,0xe0,0x6,0xe2,0x41,0xe3,0xa1,0xe2, +0x98,0xe6,0xed,0xe9,0xa1,0xe8,0x1b,0xe9,0xcd,0xe9,0x75,0xea, +0x96,0xee,0x6,0xf0,0x5d,0xee,0xa5,0xf1,0x37,0xf7,0x3a,0xf8, +0x5e,0xf7,0xeb,0xf9,0x4b,0xfd,0x66,0xfd,0x65,0xfd,0xfd,0xfe, +0x28,0x0,0x7c,0x2,0xf4,0x4,0x14,0x5,0x7a,0x6,0x9b,0x9, +0x58,0xa,0x3f,0xa,0x71,0xc,0xd2,0xe,0xdb,0xe,0x4a,0xe, +0xf2,0xe,0xbb,0xf,0xc1,0x10,0x7a,0x12,0x4e,0x13,0xf9,0x12, +0x94,0x13,0x2e,0x17,0xad,0x19,0xc1,0x14,0x65,0x10,0xa,0x14, +0xff,0x13,0xf9,0xd,0xeb,0xd,0x92,0x10,0x6c,0x10,0xf3,0x11, +0xc7,0x12,0xd6,0x11,0xcd,0x12,0xe5,0x10,0x95,0xb,0xc4,0x9, +0x3a,0xa,0x6,0xa,0x7d,0x9,0xed,0x7,0xef,0x8,0x6f,0xc, +0x8c,0xa,0x4e,0x6,0xdd,0x6,0x32,0x6,0x14,0x2,0x9b,0x0, +0x80,0x0,0x85,0x0,0x7e,0x2,0xcb,0x3,0x64,0x4,0x3d,0x4, +0xf7,0x0,0x78,0xff,0x15,0x1,0x17,0x0,0x3a,0xfe,0x91,0xfd, +0xd4,0xfd,0x42,0x1,0x8,0x3,0xc4,0x1,0x60,0x3,0x71,0x2, +0xa3,0xfe,0x64,0x1,0xfd,0x2,0x11,0xff,0x45,0x1,0x58,0x5, +0x66,0x3,0x29,0x3,0xf5,0x5,0xc9,0x7,0x87,0x9,0xa4,0x9, +0xa0,0x9,0xa0,0xb,0xc0,0xb,0xf,0xb,0x62,0xb,0xf3,0x9, +0x5c,0xa,0x48,0xd,0x2e,0xb,0x4f,0x8,0xe9,0xe,0x1c,0x18, +0x4b,0x17,0x65,0x11,0x27,0x12,0x2f,0x16,0x5,0x15,0xa2,0xf, +0xa4,0x9,0xd0,0x8,0x30,0xf,0xc0,0x10,0xcd,0xb,0x10,0xf, +0x32,0x18,0xe2,0x1a,0x99,0x17,0x2,0x12,0x6f,0x10,0x38,0x15, +0x9,0x12,0xb3,0x5,0x4,0x5,0x61,0x10,0xeb,0x13,0xcb,0xd, +0x51,0xc,0x8c,0x13,0xe3,0x18,0x2f,0x13,0x68,0x9,0xa,0xa, +0x7e,0x11,0xe7,0xe,0xa4,0x5,0x6,0x6,0x4e,0xd,0x6,0x10, +0xf6,0xb,0x54,0x5,0x34,0x6,0x85,0xd,0x28,0xa,0x14,0xff, +0xa9,0xff,0xf0,0x7,0x5a,0x9,0x8,0x5,0x76,0x1,0xd7,0x2, +0xdf,0x7,0x53,0x6,0x79,0xff,0x63,0x1,0x50,0x6,0x9e,0x2, +0xa7,0x1,0x76,0x4,0x29,0xff,0xfe,0xfe,0x47,0x7,0x6e,0x2, +0xf1,0xf9,0x9a,0xff,0xc2,0x3,0xf1,0x0,0x4e,0x2,0x5a,0x4, +0x38,0x5,0xd7,0x5,0x0,0x1,0x3e,0xfe,0x6a,0x3,0x70,0x4, +0x24,0x0,0x38,0xff,0xc0,0xfe,0x48,0x0,0xa1,0x5,0xc8,0x2, +0xb1,0xfd,0x97,0x3,0x9a,0x3,0x6b,0xfa,0x18,0xfc,0xd3,0xff, +0xe6,0xfc,0x6e,0xfd,0x90,0xf9,0xdd,0xf4,0x80,0xfd,0xe1,0x0, +0xf1,0xf9,0x75,0xfc,0xfb,0x0,0x4c,0xff,0x9c,0xff,0x69,0xfd, +0x47,0xf7,0x65,0xf5,0xda,0xf6,0x6e,0xf5,0x64,0xee,0x90,0xeb, +0x81,0xf4,0xb2,0xf9,0x80,0xf5,0x9b,0xf8,0x91,0x1,0x84,0x0, +0x32,0xf8,0xec,0xf5,0x5d,0xf8,0x3e,0xf4,0x9f,0xec,0x9f,0xeb, +0x25,0xee,0xf0,0xef,0xbe,0xf1,0xb4,0xf1,0x47,0xf2,0x15,0xf6, +0x27,0xf7,0xf4,0xf0,0xc7,0xe8,0x6e,0xe8,0x61,0xed,0x73,0xeb, +0xf3,0xe7,0x54,0xee,0x54,0xf6,0xf4,0xf7,0xe6,0xf7,0xe6,0xf7, +0x8d,0xf5,0x3a,0xef,0x9,0xe8,0x39,0xe6,0x8e,0xe6,0x16,0xe6, +0x9f,0xec,0x7d,0xf5,0xfb,0xf4,0x41,0xf6,0x8f,0xff,0x8b,0xfd, +0x23,0xf3,0x12,0xf6,0x9,0xfa,0x39,0xf1,0x93,0xee,0x69,0xf5, +0x95,0xf5,0xa1,0xf0,0x39,0xee,0xe3,0xf0,0xef,0xf3,0xd6,0xed, +0x79,0xea,0xc4,0xf4,0x2a,0xfa,0xfc,0xf6,0x2b,0xf8,0x64,0xf8, +0xf7,0xf7,0x8,0xfa,0x3b,0xf3,0x57,0xec,0x49,0xf4,0x2a,0xfa, +0xa0,0xf2,0x90,0xef,0x23,0xfa,0x59,0x2,0xe6,0xfb,0x8d,0xf3, +0xa5,0xf6,0x8,0xfa,0xbb,0xf2,0x23,0xec,0xad,0xf0,0x62,0xf6, +0xe7,0xf3,0x78,0xf2,0xc9,0xf8,0x67,0xfe,0x13,0xff,0xe9,0xfe, +0x1b,0xff,0xad,0xfe,0x84,0xfd,0xe2,0xfa,0xe2,0xf5,0x68,0xf3, +0x38,0xf6,0x6f,0xf4,0x97,0xf0,0xb4,0xf7,0xfe,0xfc,0x4a,0xfa, +0xcb,0x0,0x87,0x6,0xb2,0x0,0x31,0x0,0xd8,0x0,0xb2,0xfa, +0x82,0xf9,0x53,0xf8,0xe5,0xf5,0xf6,0xfa,0x9,0xfc,0xd2,0xfb, +0xee,0x2,0xad,0xff,0x70,0xfa,0x2c,0x4,0xaf,0x2,0x2b,0xf5, +0xb2,0xf8,0x11,0xfe,0xf9,0xf7,0xbe,0xf9,0x74,0xfd,0xaa,0xfb, +0xdf,0x2,0xa8,0x7,0x1f,0x0,0xb7,0x0,0xd9,0x6,0x74,0x3, +0x9b,0xfe,0x5e,0xfa,0x6e,0xf8,0x1d,0xff,0x3e,0xfe,0xfe,0xf6, +0x85,0xff,0x77,0x6,0xd1,0xfd,0x65,0xfe,0x33,0x6,0x59,0x2, +0xd7,0xfc,0xc6,0xfc,0x85,0xfd,0x49,0xff,0x93,0xfe,0x24,0xfd, +0x36,0x0,0xb5,0x1,0xc2,0x0,0xd,0x1,0x4d,0xfd,0xac,0xf9, +0x3e,0xfe,0xbe,0xff,0x60,0xf9,0xec,0xfa,0x17,0x4,0xae,0x5, +0xd3,0x2,0x2e,0x4,0xa,0x6,0xaf,0x4,0xba,0xff,0x31,0xfb, +0x5f,0xfc,0x4d,0xfe,0xbb,0xfe,0x9f,0x0,0xbe,0x0,0x4f,0x4, +0x11,0xb,0x44,0x4,0xb0,0xfa,0xea,0x1,0xbf,0x6,0x73,0xfc, +0x6c,0xf6,0xda,0xfd,0x2c,0x7,0x29,0x7,0x1c,0x3,0xef,0x4, +0xe9,0x6,0x8,0x5,0xd6,0x1,0x22,0xfc,0x7,0xfc,0x85,0x2, +0xb,0x2,0xf2,0xff,0x5c,0x6,0x67,0xd,0x97,0xd,0xfd,0x6, +0x13,0x3,0x57,0x6,0x7f,0x2,0x98,0xfa,0xc3,0xfd,0x92,0x0, +0x3d,0xff,0xed,0x5,0x95,0x9,0x5f,0x6,0xc2,0xb,0xb5,0xd, +0x5f,0x1,0xee,0xfd,0x3a,0x4,0xff,0xff,0xeb,0xfb,0x8e,0x0, +0x24,0x3,0x9b,0x6,0x4,0x8,0x16,0x4,0x9e,0x8,0xdc,0x9, +0x55,0xfe,0x41,0xfd,0xb9,0x0,0x79,0xfd,0x8a,0x2,0xda,0x2, +0x6b,0xfd,0xd7,0xa,0xf2,0xf,0x5b,0xff,0x1b,0x2,0xbf,0xd, +0x72,0x3,0xd0,0xfb,0x10,0x0,0x1d,0xff,0xf8,0x1,0x70,0x6, +0x73,0xff,0x85,0xff,0x35,0x9,0x6e,0x6,0x5f,0x2,0x1d,0x6, +0xa5,0x3,0xed,0x4,0x53,0xa,0xa4,0x4,0x52,0x5,0x97,0xb, +0xe7,0x4,0xef,0x5,0xaa,0xc,0x5,0x4,0xa,0x3,0x93,0x9, +0xc0,0x1,0xef,0x0,0xf0,0x9,0xf3,0x6,0xa,0x4,0x3b,0x7, +0xbb,0x6,0x31,0x8,0x67,0x8,0x4f,0x2,0xde,0x1,0xab,0x6, +0xed,0x5,0x90,0x3,0x95,0x6,0xc2,0xa,0x5c,0xa,0xbe,0x7, +0x8f,0x6,0x63,0x5,0xc8,0x2,0xb,0x0,0x87,0xff,0x9f,0x0, +0xb4,0xff,0xb1,0xff,0x13,0x5,0x2f,0xa,0x90,0x9,0x81,0x5, +0x22,0x3,0x39,0x6,0xa5,0x7,0x75,0xff,0xb5,0xf9,0x3e,0x0, +0x6f,0x5,0xf5,0x0,0x91,0xfe,0x5a,0x4,0xb0,0x8,0x95,0x5, +0x1a,0x2,0xd5,0x2,0x18,0x3,0x7b,0x2,0xee,0x2,0xc8,0x0, +0x1f,0xff,0xf6,0x2,0x74,0x3,0xf,0xff,0xe,0x1,0x42,0x3, +0xe4,0xfd,0xfe,0xfd,0xf1,0x3,0x51,0x4,0x8c,0x5,0x69,0x9, +0x9a,0x8,0x2b,0x8,0x3f,0x7,0x9f,0x2,0x94,0x2,0xc0,0x1, +0x90,0xfc,0x98,0x1,0xcb,0x9,0x72,0x8,0xa6,0xa,0xf7,0xf, +0x30,0xd,0x5c,0xb,0xb7,0x9,0x5b,0x0,0x65,0xfd,0x37,0x2, +0x72,0xfe,0x8a,0xfb,0x32,0x5,0x1d,0xd,0x7,0xe,0xd5,0xd, +0x8,0xb,0xf1,0xa,0xf5,0xb,0xba,0x2,0x8b,0xfb,0xef,0xfe, +0x12,0xfe,0x71,0xfd,0xb,0x4,0x41,0x5,0x2b,0x6,0x97,0xb, +0x37,0x6,0x1a,0xfd,0xb,0xfe,0xb8,0xfc,0x65,0xf6,0xe5,0xf5, +0xd,0xf7,0xb0,0xf7,0x23,0xfc,0xda,0xfc,0x94,0xf8,0x82,0xf8, +0xc4,0xf7,0xe1,0xf2,0x2f,0xf2,0xd4,0xf2,0x43,0xf3,0xb1,0xf8, +0x7,0xf8,0x40,0xf0,0x29,0xf3,0x7e,0xf8,0xea,0xef,0x4f,0xe6, +0x0,0xe7,0x4,0xeb,0xaa,0xec,0xb,0xeb,0x41,0xeb,0x9d,0xf2, +0xc7,0xf6,0x70,0xef,0x2c,0xe9,0x7a,0xe9,0x66,0xe6,0xfe,0xe1, +0xf,0xe1,0x93,0xe0,0x32,0xe6,0x6f,0xef,0x5d,0xef,0x99,0xee, +0xa5,0xf4,0x27,0xf3,0xc4,0xea,0x43,0xe9,0x8a,0xea,0x47,0xe6, +0x55,0xe2,0x6c,0xe6,0xee,0xed,0x9f,0xf0,0x9,0xf1,0xb5,0xf3, +0x4,0xf5,0x8d,0xf3,0x9d,0xf3,0xef,0xf3,0x9b,0xf0,0xb,0xef, +0x1b,0xf2,0x54,0xf2,0xbe,0xf1,0xe3,0xf5,0x57,0xf7,0xd6,0xf4, +0xf9,0xf5,0xaa,0xf9,0x11,0xfb,0x96,0xf9,0x32,0xfa,0xf9,0xfd, +0xf6,0xfc,0x38,0xfa,0xe,0xfc,0x7,0xfb,0xab,0xf8,0xea,0xfa, +0x36,0xfb,0xc6,0xf9,0x17,0xfc,0x6d,0x1,0x44,0x6,0xfc,0x4, +0x1d,0x3,0xb6,0x7,0x34,0x8,0x4,0x3,0x82,0x1,0xbd,0x0, +0xeb,0xff,0xd5,0x1,0x1e,0x3,0xaf,0x3,0x6d,0x4,0x75,0x6, +0x5b,0x9,0xf9,0x7,0x82,0x7,0xa7,0xb,0x7,0xa,0xb6,0x5, +0xa1,0x7,0x7a,0x9,0x5d,0x9,0x51,0x9,0xca,0x6,0x9b,0x6, +0x81,0x9,0x45,0x8,0xaa,0x6,0xa6,0x9,0x7f,0xc,0x3a,0xd, +0x6b,0xb,0x4b,0x7,0x72,0x8,0x3a,0xd,0x16,0x9,0x92,0x1, +0x48,0x3,0xa4,0x6,0x2a,0x6,0xbd,0x8,0x14,0xb,0x7b,0x9, +0x3,0xa,0x97,0xa,0x78,0x7,0x57,0x6,0x9c,0x6,0x19,0x3, +0xca,0xff,0x48,0x1,0x9b,0x5,0xbf,0x8,0x3c,0x8,0xb,0x7, +0xa6,0x7,0x17,0x6,0xf3,0x1,0xc0,0xff,0x8f,0x0,0xe7,0x2, +0x52,0x4,0x73,0x4,0x90,0x5,0xa5,0x6,0x57,0x7,0x2b,0x6, +0x7e,0xfe,0x85,0xf8,0x39,0xfc,0x4f,0xfe,0x88,0xfc,0xa7,0x0, +0xb6,0x5,0x1a,0x7,0xe8,0x8,0xcf,0x7,0xad,0x2,0x23,0xfe, +0xa9,0xf8,0x3c,0xf3,0x10,0xf5,0xd9,0xfc,0x19,0x2,0x84,0x3, +0xfe,0x5,0x74,0xa,0xf1,0xc,0x48,0x9,0x28,0x0,0x1a,0xf8, +0x6d,0xf5,0x8f,0xf5,0xa2,0xf4,0x5f,0xf5,0x66,0xfd,0x11,0x6, +0x34,0x5,0xe1,0x1,0x28,0x4,0xdf,0x6,0x5c,0x6,0xdf,0x1, +0x46,0xfb,0x97,0xf9,0x8b,0xfb,0xce,0xfb,0x27,0xfc,0x40,0xfc, +0x96,0xfa,0x2,0xf9,0xca,0xf8,0x3f,0xfd,0x6b,0x3,0xa1,0x0, +0x3c,0xfa,0xb2,0xfd,0xbc,0x2,0xa7,0xfd,0x20,0xf9,0xd1,0xfc, +0xa3,0xfd,0x66,0xfa,0x4,0xfd,0xd9,0x0,0x20,0x0,0x18,0x1, +0x20,0x2,0x32,0xff,0x2f,0xff,0x88,0x0,0x2d,0xfb,0x27,0xf6, +0x48,0xfa,0x60,0x1,0xad,0x1,0xa9,0xfd,0x29,0x2,0xf7,0xc, +0xab,0xc,0xb0,0x5,0x21,0x7,0x1f,0xa,0x73,0x8,0xde,0x5, +0x92,0x0,0x52,0xfe,0x93,0x4,0x3f,0x9,0x7f,0x8,0x66,0x7, +0x27,0x8,0x7e,0xc,0x55,0xf,0x54,0xc,0x5b,0xa,0x1e,0xb, +0xae,0x9,0x12,0x7,0x96,0x7,0x34,0xc,0x80,0xf,0x58,0xe, +0x69,0xe,0x6c,0x11,0x6a,0x12,0x5f,0xf,0x82,0xb,0xe8,0xa, +0xd6,0xa,0xe5,0x8,0x8d,0x9,0xfa,0xa,0x7,0xb,0x96,0xf, +0xc8,0x14,0xff,0x12,0x95,0xf,0xdf,0xe,0x29,0xd,0x34,0x9, +0xe6,0x5,0xe8,0x5,0xba,0x7,0x20,0x8,0xd5,0x8,0xad,0xb, +0xbf,0xb,0x8d,0x8,0x9c,0x9,0x62,0xb,0x79,0x5,0x37,0x0, +0x21,0x3,0x1a,0x7,0x9b,0x7,0x4c,0x6,0x97,0x6,0xaa,0x8, +0x19,0x7,0x85,0x5,0x1f,0x8,0xe0,0x6,0x9f,0x4,0xc6,0x8, +0x27,0xa,0xc1,0x5,0x61,0x3,0xab,0x1,0xd1,0xfd,0xe6,0xfa, +0x92,0xfa,0x90,0xfb,0x10,0xfc,0xc9,0xfd,0x57,0x3,0x4,0x7, +0xdc,0x3,0xee,0x2,0x68,0x6,0x3b,0x1,0x50,0xf9,0x45,0xfb, +0x72,0xfa,0xeb,0xf4,0xf9,0xf5,0xb3,0xf3,0x7a,0xee,0xc3,0xf1, +0x55,0xf4,0x1d,0xf6,0xdf,0xfc,0xe9,0xfd,0x4f,0xfd,0xa9,0x2, +0x43,0x2,0x54,0xfc,0xde,0xfa,0x3f,0xf9,0x61,0xf2,0xd3,0xed, +0x64,0xf0,0xa7,0xf2,0x1b,0xf3,0x7f,0xf6,0xe9,0xf9,0x23,0xfe, +0xf4,0xfe,0x9,0xf5,0xaf,0xf1,0x9c,0xf6,0x6e,0xee,0x41,0xe6, +0xcf,0xe8,0x31,0xe9,0xd3,0xef,0x4,0xf8,0xa7,0xf3,0xea,0xf6, +0x62,0x0,0x5e,0xfa,0xa7,0xf2,0x99,0xf3,0xe5,0xf3,0x0,0xf0, +0x8e,0xe7,0x92,0xe6,0x42,0xee,0x87,0xea,0x17,0xe6,0x80,0xf0, +0xa4,0xf5,0x15,0xf3,0x1c,0xf6,0x1a,0xf7,0x5d,0xf7,0xa2,0xfa, +0x62,0xf5,0xf0,0xee,0xf9,0xf1,0x8f,0xf1,0xff,0xeb,0x7,0xec, +0x7a,0xef,0xaa,0xf4,0x32,0xf8,0x41,0xf2,0x5d,0xef,0x16,0xf7, +0x7d,0xf5,0xd9,0xed,0xea,0xf3,0x96,0xf7,0x8,0xf0,0xff,0xf1, +0x21,0xf7,0x5,0xf2,0xaa,0xef,0x22,0xf0,0x90,0xec,0x69,0xec, +0x80,0xee,0x8d,0xf1,0x7f,0xf7,0x5a,0xf8,0xc9,0xf8,0xe0,0xfd, +0x17,0xfa,0x3f,0xf1,0xf8,0xf0,0xda,0xf1,0xd7,0xee,0xed,0xed, +0x1d,0xf1,0x6,0xf7,0xe7,0xfb,0xac,0xfe,0x52,0x0,0x23,0xff, +0x54,0xfe,0x3,0xfe,0x2a,0xf8,0x44,0xf3,0x24,0xf6,0x27,0xf8, +0x74,0xf6,0xe2,0xf8,0x14,0xff,0xdc,0x1,0xad,0xff,0xe8,0xfd, +0x27,0x1,0xc9,0x3,0xaa,0xfd,0x98,0xf7,0xd0,0xfb,0xf5,0xfe, +0xb0,0xfb,0x42,0xfd,0xe6,0x0,0x65,0x0,0x7e,0x0,0xfe,0xff, +0x2b,0x0,0xd8,0x3,0x4f,0x3,0x75,0x1,0xd3,0x2,0x53,0xff, +0x66,0xfe,0x22,0x4,0x7a,0x0,0x5e,0xfc,0x14,0x4,0x66,0x4, +0xe6,0xff,0xb9,0x6,0x4d,0x7,0xbb,0xff,0xe,0x4,0xe,0x8, +0xf2,0x2,0xe9,0x3,0xb8,0x6,0x14,0x5,0x41,0x5,0x8d,0x3, +0xfa,0x1,0x38,0x3,0x80,0xfe,0xd4,0xfc,0x8,0x4,0x18,0x3, +0x10,0x0,0xec,0x7,0x12,0xa,0x41,0x4,0x5d,0x5,0x8d,0x5, +0x10,0x1,0x46,0x2,0xff,0x0,0x98,0xf9,0xfc,0xfb,0xf,0x4, +0xe2,0x2,0xd2,0xff,0x77,0x4,0xc3,0xa,0x5d,0x9,0x7,0x3, +0xde,0x3,0x7f,0x6,0xd1,0xfe,0xe6,0xf7,0xd1,0xf8,0xc5,0xf9, +0x4b,0xfc,0xc1,0xff,0x8c,0x1,0x88,0x6,0xbc,0x9,0xc9,0x6, +0x1,0x4,0xfa,0x2,0xa7,0x2,0x42,0xff,0x16,0xf9,0x53,0xfc, +0xea,0x4,0x54,0x4,0x66,0x2,0x5a,0x8,0x68,0xd,0xbd,0x9, +0x24,0x3,0x1c,0x3,0x13,0x5,0xeb,0x1,0x34,0xff,0xe8,0xff, +0x32,0x3,0x8a,0x6,0xae,0x3,0x70,0x2,0x95,0x7,0xce,0x5, +0xed,0x1,0xd9,0x5,0x6a,0x6,0xb0,0x6,0x45,0xd,0xc,0xa, +0x6a,0x2,0xb5,0x8,0x37,0xb,0xba,0x0,0x2a,0xff,0x99,0x2, +0x18,0xff,0x3e,0x2,0xb0,0x8,0x6c,0x8,0xb,0xb,0xc0,0xb, +0x44,0x9,0x62,0xe,0x4d,0xb,0x25,0x1,0x34,0x6,0xde,0x7, +0xc4,0xff,0x81,0x6,0xb2,0xc,0x9b,0x7,0x1b,0xd,0xc1,0x11, +0xde,0x9,0x7d,0x9,0x6d,0xb,0x7b,0x3,0x2,0x0,0x43,0x1, +0x3,0xff,0x3e,0x1,0xaa,0x5,0x66,0x7,0x6c,0xd,0x4d,0xf, +0x6b,0x7,0x31,0x5,0x57,0x5,0x89,0xfe,0xaf,0xfc,0x58,0xfe, +0x6d,0xfd,0xe4,0x3,0xa8,0x9,0x7f,0x6,0x8a,0x8,0x3f,0x9, +0xab,0xfe,0xe8,0xfa,0x2e,0xfd,0xf6,0xf8,0xab,0xfb,0x7b,0x3, +0xc2,0x2,0xf0,0x7,0xae,0x10,0x74,0x9,0xca,0x2,0x7a,0x4, +0x47,0xfd,0x7b,0xf9,0x9c,0xfe,0x6,0xfb,0xac,0xfb,0x78,0x6, +0xc7,0x6,0x4c,0x4,0x49,0x6,0xbd,0x1,0x83,0x0,0x54,0x1, +0xcc,0xf8,0x4b,0xfa,0x10,0x5,0x57,0x2,0x8b,0x0,0xd5,0x7, +0x78,0x7,0xba,0x7,0x9,0xb,0x7d,0x2,0x3,0xfe,0xf1,0x7, +0xcb,0x8,0x2e,0x0,0x11,0x2,0x32,0xa,0xed,0xc,0xd0,0xa, +0x74,0x7,0xfb,0x7,0xf9,0xa,0x8b,0x6,0xa9,0xff,0x7,0x2, +0x20,0x5,0xd3,0x3,0x7e,0x6,0x35,0x8,0xbe,0x9,0xd2,0x11, +0x68,0xf,0x4e,0x5,0xcd,0x9,0x8d,0xa,0x5,0xfe,0x1e,0xfc, +0x82,0xfe,0xb5,0xfc,0x8d,0x1,0x66,0x2,0x1e,0x0,0xaf,0x8, +0x96,0xb,0x1a,0x4,0xf8,0x2,0x3,0x2,0xf7,0xfb,0x32,0xf9, +0x9a,0xf6,0xa,0xf3,0x6b,0xf3,0x92,0xf3,0xcf,0xf2,0x99,0xf5, +0x8c,0xf6,0xd9,0xf2,0x95,0xf2,0x8b,0xf5,0x21,0xf5,0x53,0xf3, +0xf,0xf2,0x7f,0xf0,0xc6,0xef,0x2,0xed,0x26,0xe8,0x66,0xe7, +0x12,0xea,0xdf,0xeb,0x6e,0xed,0xef,0xef,0xba,0xf2,0xbf,0xf4, +0x11,0xf6,0x40,0xf5,0x39,0xf0,0x2b,0xec,0xde,0xeb,0xea,0xe8, +0x23,0xe6,0x92,0xeb,0x91,0xf2,0xa6,0xf3,0x81,0xf4,0x5d,0xf8, +0x8a,0xfa,0xae,0xf9,0x75,0xf7,0x18,0xf5,0x39,0xf5,0x53,0xf7, +0xc4,0xf7,0xc8,0xf6,0xc4,0xf7,0xb0,0xfc,0x39,0x0,0x7f,0xfc, +0x29,0xfa,0x64,0xff,0x6d,0x2,0xf9,0x0,0xd9,0x0,0x7f,0x1, +0x9b,0x2,0xfe,0x2,0xf5,0x0,0x61,0xff,0xa4,0xfe,0x5c,0xff, +0x49,0x2,0xd6,0x2,0x33,0x2,0x3f,0x4,0xf2,0x5,0xc0,0x5, +0xff,0x3,0xb3,0x1,0x15,0x1,0xb8,0xff,0x84,0xfd,0x27,0xfd, +0x47,0xfc,0x73,0xfc,0x30,0xff,0x16,0xfe,0x82,0xfa,0x2b,0xfb, +0x8a,0xfc,0x7a,0xfb,0x28,0xfb,0x37,0xfa,0xa8,0xf7,0x5e,0xf7, +0xec,0xf6,0xce,0xf2,0x2c,0xf0,0xa,0xf1,0xf0,0xf1,0x68,0xf1, +0x5d,0xef,0x3e,0xf0,0xbe,0xf4,0xe9,0xf4,0xbe,0xf2,0xb5,0xf3, +0x11,0xf3,0x82,0xf0,0xf6,0xee,0xfc,0xed,0x7f,0xee,0x21,0xee, +0x94,0xed,0xb0,0xf0,0x2b,0xf3,0x4,0xf5,0xa1,0xf8,0x3,0xf9, +0x4f,0xf9,0x7e,0xfc,0xc8,0xfb,0x63,0xf9,0xb0,0xf9,0x9b,0xf9, +0xee,0xf9,0x3f,0xfb,0x5a,0xfb,0x63,0xfc,0xca,0x0,0xb5,0x5, +0xf8,0x6,0x0,0x8,0x9e,0xc,0xe8,0xd,0x54,0xa,0xb1,0x9, +0x63,0xb,0xbe,0xb,0x93,0xb,0x62,0xb,0xfd,0xc,0x73,0x10, +0x86,0x13,0x42,0x16,0xe7,0x17,0x52,0x19,0x94,0x1b,0x39,0x1a, +0x10,0x16,0x75,0x15,0x58,0x16,0x3,0x14,0xd9,0x11,0x94,0x14, +0x93,0x17,0x4e,0x15,0x72,0x16,0xd3,0x1f,0xa7,0x22,0x7f,0x1a, +0xbc,0x16,0x28,0x1a,0x90,0x18,0x5c,0x10,0x6f,0xc,0x7c,0x10, +0xc,0x13,0xc1,0xf,0x8c,0xe,0x91,0x13,0x37,0x18,0x3e,0x14, +0x34,0xa,0x93,0x6,0x85,0xb,0x83,0xe,0x72,0xa,0xc8,0x4, +0xe7,0x7,0x60,0x10,0x24,0xb,0xb1,0xfc,0xa9,0xfa,0x1d,0x0, +0xf1,0xff,0x36,0xfc,0x4f,0xfa,0xf2,0x1,0x50,0xd,0x28,0xa, +0x67,0xff,0x69,0xfd,0xdc,0xfe,0x3,0xfb,0xd8,0xf1,0x2f,0xec, +0xbe,0xf2,0xe3,0xfa,0xde,0xf9,0x1d,0xf8,0xd9,0xfc,0x41,0x2, +0x71,0xfe,0xe2,0xf4,0x8,0xf3,0x3,0xf5,0x26,0xf2,0x90,0xef, +0x3f,0xf0,0x65,0xf7,0x58,0x0,0x7,0xf9,0xc,0xee,0xc9,0xf6, +0x38,0xfe,0x25,0xf4,0xc5,0xed,0x9b,0xf2,0x59,0xf8,0xe4,0xfa, +0xd8,0xf7,0x9c,0xf5,0x9b,0xfc,0x3b,0x1,0x81,0xf9,0xcb,0xf1, +0xd7,0xf3,0x1,0xfb,0x76,0xff,0x2a,0xfb,0x67,0xf6,0xa0,0xfd, +0x27,0x4,0x40,0xfe,0xaf,0xfa,0x54,0xff,0x9c,0x1,0xb5,0xfe, +0x2d,0xf9,0xcb,0xf8,0x71,0x2,0x14,0x7,0x24,0xfe,0x39,0xf9, +0x7c,0x1,0x40,0x7,0x8a,0x1,0x8e,0xfd,0xd6,0x3,0x3f,0x9, +0xef,0x5,0x71,0x0,0xc6,0xfe,0x85,0x0,0x3c,0x2,0x6b,0x0, +0x5f,0xfe,0x1d,0x3,0x16,0xa,0x95,0x8,0xac,0x4,0xb8,0x9, +0xd4,0xd,0xb4,0x6,0x1e,0x1,0xa9,0x5,0x9c,0x8,0x61,0x4, +0xa0,0x2,0x85,0x7,0x7f,0xc,0xf8,0xb,0xdc,0x5,0xbd,0x0, +0xb7,0x3,0x3b,0x9,0x7b,0x7,0x82,0x2,0xa2,0x3,0xc8,0x8, +0xa3,0xa,0x4b,0xa,0xa7,0xb,0x2c,0xc,0xc3,0x9,0xea,0x5, +0x5a,0x3,0xd5,0x4,0x7e,0x6,0x95,0x6,0x61,0x9,0xa6,0x8, +0xe9,0x2,0x32,0x3,0x62,0x5,0xd2,0x4,0xd4,0x7,0x9a,0x7, +0x66,0x3,0x9d,0x7,0x86,0xd,0xe5,0xa,0x69,0x7,0xfb,0x8, +0x59,0x9,0x19,0x2,0xd1,0xfa,0xe6,0xfd,0x93,0x4,0x1e,0x4, +0x27,0xfe,0xbc,0xfc,0xcc,0x3,0x82,0x7,0xb3,0x3,0xd0,0x2, +0xa4,0x4,0x2b,0x7,0x70,0xa,0x97,0x5,0x8,0xff,0x1f,0x4, +0x5,0xa,0xd4,0x4,0x67,0xfb,0x1c,0xfa,0xb4,0x1,0x16,0x2, +0x7e,0xf8,0x9f,0xf6,0xc9,0xfd,0xfd,0x1,0x50,0xff,0x41,0xf8, +0x80,0xf6,0x8c,0xfc,0xde,0xff,0x52,0xff,0xb6,0xfd,0xf2,0xfa, +0xd,0xff,0x50,0x5,0xf,0x0,0xb3,0xfb,0xee,0x0,0x67,0xfe, +0x7f,0xf6,0x9c,0xf8,0xd9,0xfa,0xa8,0xf7,0x63,0xfa,0x4a,0xfe, +0x14,0xfa,0x27,0xf6,0x30,0xf9,0x18,0xfc,0x1d,0xf9,0xba,0xf6, +0xf0,0xfb,0x99,0x0,0xbd,0xfb,0xa6,0xf6,0xa0,0xf9,0xed,0xf9, +0xc8,0xf1,0x90,0xec,0x14,0xed,0x9d,0xed,0x4e,0xf1,0x60,0xf5, +0x7,0xf4,0x61,0xf6,0x1b,0xfc,0x3b,0xf9,0x47,0xf4,0x9e,0xf4, +0x8e,0xf3,0xe4,0xf1,0xb5,0xf1,0x81,0xef,0x3d,0xef,0xba,0xf1, +0x5,0xf2,0xd3,0xf3,0xa6,0xf7,0xa,0xf7,0x83,0xf5,0x86,0xf6, +0xdf,0xf3,0x44,0xef,0xe4,0xef,0x94,0xf1,0xd0,0xee,0x1,0xec, +0x33,0xed,0x54,0xf0,0x12,0xf3,0xac,0xf4,0x1a,0xf5,0xf0,0xf4, +0xfc,0xf3,0xa0,0xf3,0x7a,0xf5,0xa8,0xf4,0xb8,0xef,0x71,0xef, +0x2,0xf4,0xa1,0xf4,0x79,0xf1,0xc8,0xef,0x71,0xf3,0x87,0xf9, +0x97,0xf6,0xf8,0xee,0x18,0xf2,0xc,0xf8,0x53,0xf4,0x3b,0xf0, +0xc4,0xf2,0x9d,0xf5,0x6a,0xf5,0x2d,0xf4,0x19,0xf5,0xd8,0xfa, +0x17,0x1,0x59,0xff,0xd5,0xf9,0xc8,0xfb,0x7a,0xff,0x71,0xfa, +0xa5,0xf3,0xd,0xf4,0xa9,0xf7,0x1a,0xf7,0x3f,0xf4,0x80,0xf6, +0x74,0xfa,0x9a,0xfa,0xee,0xfc,0x47,0x1,0xad,0x1,0xdc,0x1, +0x9b,0x4,0x5e,0x7,0x70,0x8,0xb5,0x6,0x80,0x3,0xd8,0xff, +0xb4,0xfd,0xa2,0xfd,0x6a,0xf9,0x4a,0xf6,0x99,0xfc,0xac,0x0, +0x4,0x1,0x59,0x7,0x9d,0xa,0x7f,0x9,0xeb,0xa,0xe2,0x5, +0x8d,0xfe,0x1e,0xff,0x1a,0xfc,0xdc,0xf5,0x54,0xf9,0x4e,0x0, +0xf1,0x4,0x3f,0xb,0xcb,0xe,0x9d,0xd,0x8e,0xe,0x7b,0xe, +0xf2,0x4,0xa8,0xf7,0xfa,0xf0,0x92,0xf0,0x65,0xf2,0x12,0xf5, +0x3d,0xfa,0x3b,0x5,0x31,0x11,0x8c,0x15,0xca,0x13,0xbc,0xf, +0x2,0xa,0x84,0x4,0xc,0xfd,0x2,0xf4,0x53,0xf3,0xd6,0xf9, +0x8,0xfc,0x95,0xfd,0xa,0x5,0xbf,0x9,0x6c,0x7,0x69,0x3, +0x1c,0xff,0xd4,0xfc,0xde,0xfd,0x52,0xfd,0x97,0xfc,0x1e,0x1, +0xcf,0x7,0x20,0xa,0x4f,0x7,0xf5,0x4,0xab,0x3,0xe4,0xfd, +0x43,0xf9,0x5c,0xfc,0x8e,0xff,0x44,0x1,0xda,0x6,0xe8,0xb, +0xc2,0xc,0xdc,0xb,0xa6,0x9,0x4e,0x5,0x7c,0xff,0xb1,0xfb, +0x7e,0xfb,0xcd,0xfc,0xd1,0x0,0xeb,0x6,0xc4,0xa,0x18,0xd, +0xff,0xe,0xe6,0xd,0xd5,0x8,0x6b,0x2,0x10,0xff,0x72,0xfd, +0x65,0xfa,0x87,0xfa,0xe5,0xfe,0xbf,0x2,0xe6,0x6,0xed,0xa, +0xea,0xb,0xd1,0xb,0xf8,0xa,0x33,0x8,0xfe,0x5,0x3e,0x4, +0x92,0x0,0x64,0xfd,0x63,0xfd,0xb2,0xfe,0x17,0x0,0x3e,0x1, +0x2a,0x2,0xd9,0x5,0xc9,0x9,0xe9,0x8,0xa9,0x7,0xfb,0x6, +0xbb,0x3,0xe9,0x2,0xa7,0x2,0x21,0x0,0x29,0x3,0x3a,0x6, +0x8c,0x2,0x9a,0x3,0x3e,0x8,0x9c,0x5,0x7f,0x1,0x58,0x1, +0xa1,0x1,0x3e,0x2,0xe,0x5,0x9a,0x8,0x42,0x9,0x41,0x9, +0xfd,0xa,0x7e,0x6,0x8d,0xfd,0xf,0xfc,0x42,0xfc,0x0,0xf9, +0xc2,0xfc,0xcc,0x4,0x96,0x7,0x56,0xa,0x3,0x10,0x5,0x11, +0xd9,0x8,0x41,0xff,0xfc,0xfd,0x17,0xfb,0x64,0xef,0xe1,0xee, +0xaf,0xfb,0x38,0x0,0x6f,0x2,0xe,0xc,0x43,0xe,0xa9,0xa, +0x0,0xd,0xef,0x9,0x3d,0xfe,0x6e,0xfa,0x48,0xfc,0x5,0xf8, +0x81,0xf6,0x2c,0xfc,0xcc,0xfd,0x44,0xfd,0xe5,0xff,0xfc,0xff, +0x87,0xfd,0x43,0xfb,0x21,0xfc,0xe,0x2,0xf,0x2,0x51,0xfd, +0x27,0x1,0x59,0x3,0x3c,0xfe,0xfb,0xfc,0x93,0xf9,0x17,0xf4, +0x40,0xf8,0xa7,0xfa,0xe5,0xf5,0xd8,0xfa,0xe0,0x4,0xed,0x2, +0xb7,0xfd,0x46,0xff,0x8a,0xfd,0xa6,0xf7,0x12,0xf6,0xa8,0xf5, +0x20,0xf5,0xd7,0xf7,0xa1,0xfc,0xd4,0x1,0x14,0x3,0xe3,0x2, +0xa2,0x5,0x2e,0x1,0xa8,0xf9,0x8d,0xfb,0xe,0xfb,0x7b,0xf5, +0x3,0xf6,0x1c,0xf9,0xcf,0xfb,0x37,0xfd,0x88,0xfd,0xeb,0x0, +0x2f,0x1,0x88,0x1,0x66,0x7,0x18,0x4,0xb1,0xfe,0x2,0x5, +0x81,0x4,0x4f,0xfb,0xed,0xf9,0x24,0xfb,0xa5,0xf9,0x42,0xf9, +0x40,0xfb,0xb0,0x0,0xd,0x6,0xa6,0x7,0x59,0x7,0xd2,0x6, +0x77,0x5,0xd4,0x1,0x52,0xfc,0xec,0xf6,0x6b,0xf6,0xfe,0xfa, +0x63,0xf9,0x30,0xf6,0x5f,0xff,0x3a,0x7,0x50,0x4,0xd4,0x2, +0xe5,0x2,0x35,0x2,0x67,0x1,0xf3,0xfc,0xe0,0xfb,0xab,0xfe, +0x9d,0xfc,0x29,0xfa,0x88,0xfa,0xdf,0xfc,0xe9,0x0,0xc4,0x0, +0xa,0x1,0x61,0x7,0xab,0xb,0x15,0xd,0xe8,0xd,0xd2,0xb, +0x7b,0x9,0x48,0x4,0x1b,0xfb,0x9a,0xf7,0x81,0xf9,0x1d,0xf9, +0x4c,0xf8,0xc3,0xfc,0x1d,0x6,0xc7,0xc,0xdc,0xc,0x97,0xb, +0x19,0xb,0x3e,0x8,0xe4,0x3,0x45,0x1,0x7a,0xff,0x77,0xfd, +0xa3,0xfe,0xc,0x1,0x64,0x0,0xa5,0x3,0xb6,0xa,0xf5,0x9, +0xc9,0x7,0x9b,0xd,0xbf,0x10,0x22,0xe,0xbe,0xd,0x41,0xc, +0x7,0x6,0x96,0x0,0xea,0xff,0x4b,0x0,0xe,0xff,0xe5,0x4, +0xa2,0x10,0xf3,0x12,0xf8,0x12,0xd3,0x1a,0x62,0x1a,0xa0,0xf, +0x87,0x7,0x33,0xff,0x51,0xf7,0xcd,0xf5,0x8d,0xf8,0x4b,0xfe, +0xc6,0x4,0x69,0xd,0xad,0x17,0xeb,0x16,0xf,0x10,0x33,0xf, +0xbe,0x7,0xb2,0xf9,0xe1,0xf5,0x19,0xf6,0x67,0xf4,0xd5,0xfa, +0x41,0x4,0xee,0x5,0xdf,0x7,0xb0,0xd,0x51,0xc,0x7c,0x6, +0x11,0x5,0x1b,0x3,0x72,0x1,0x74,0x4,0xcc,0x5,0xba,0x3, +0x71,0x1,0x15,0x2,0xb3,0x4,0x35,0xff,0x31,0xf8,0x43,0xfc, +0xe8,0xfe,0xae,0xfd,0x7d,0x3,0x8c,0x7,0xc6,0x6,0x5a,0x9, +0x3b,0xa,0x4c,0x4,0xc8,0xfd,0xf1,0xfc,0x1b,0xfc,0xa1,0xf6, +0xfd,0xf6,0x15,0xfc,0xaf,0xfc,0x8b,0x0,0x92,0x6,0x2d,0x6, +0xb2,0x4,0xca,0x2,0x44,0x0,0xe2,0xff,0x5f,0xfd,0x69,0xfd, +0xdf,0x0,0xd,0xff,0x30,0x0,0x9,0x5,0x1f,0x1,0xe,0xfe, +0x62,0x1,0xe3,0xfe,0xc9,0xfa,0x9d,0xfb,0xd6,0xfa,0x78,0xf9, +0xfc,0xf9,0xfe,0xf9,0x82,0xfb,0x5c,0xfb,0x1d,0xf8,0x52,0xfa, +0x6f,0xfc,0x1b,0xf9,0xf,0xfd,0xf6,0xff,0x85,0xf5,0xab,0xf2, +0x9e,0xf8,0x70,0xf2,0xe7,0xeb,0xc1,0xef,0x9f,0xf1,0xef,0xf1, +0xdd,0xf3,0x92,0xf4,0x7,0xf6,0xbc,0xf3,0x2f,0xef,0xf9,0xef, +0x99,0xeb,0x2a,0xe4,0x99,0xea,0x7f,0xef,0x6e,0xea,0x94,0xf1, +0x1d,0xf9,0xb4,0xef,0xde,0xed,0x7e,0xf3,0x89,0xea,0x24,0xe2, +0xb8,0xe4,0x49,0xe5,0xad,0xe5,0x22,0xe9,0x7c,0xec,0xea,0xf0, +0x60,0xf1,0x4,0xee,0x7b,0xee,0x53,0xed,0x52,0xe9,0xac,0xeb, +0x27,0xed,0x1c,0xe9,0xb0,0xed,0xfa,0xf4,0xa8,0xf0,0x44,0xef, +0xb3,0xf3,0x19,0xee,0xec,0xe9,0x85,0xee,0x8b,0xed,0xc8,0xec, +0x54,0xf2,0x68,0xf5,0xe3,0xf8,0xb8,0xfb,0x14,0xf9,0x7c,0xf8, +0x85,0xf8,0x74,0xf5,0x7b,0xf5,0x93,0xf5,0x25,0xf3,0xff,0xf4, +0x1a,0xf9,0xc3,0xf9,0xe6,0xf9,0x8e,0xfb,0x3d,0xfb,0xc9,0xfa, +0x77,0xfe,0x78,0xff,0x0,0xfc,0x24,0xff,0x27,0x5,0x82,0x3, +0x64,0x0,0x7c,0x0,0xcf,0x0,0x69,0x1,0xe3,0x0,0x99,0x0, +0xee,0x2,0xe0,0x3,0xef,0x4,0xa5,0x8,0x2f,0x9,0x27,0x8, +0x76,0x9,0x37,0x7,0xdd,0x3,0xc2,0x6,0x90,0x8,0x4a,0x5, +0x60,0x6,0x0,0xb,0x18,0xb,0xb2,0xa,0x16,0xd,0xa5,0xd, +0x5e,0xe,0xe2,0x10,0x2d,0x10,0x53,0xd,0xeb,0xa,0xec,0x8, +0x8d,0xa,0x69,0xd,0x21,0xd,0xb8,0xb,0xf6,0x9,0xf7,0xb, +0x7d,0x12,0x6b,0x12,0x43,0xe,0x80,0xf,0xb8,0xf,0x50,0xe, +0xd6,0xf,0xb9,0xe,0xc8,0xb,0x91,0xb,0xb9,0xb,0x75,0xa, +0x17,0x8,0xa0,0x8,0x18,0xd,0x33,0xf,0x2c,0xf,0xf,0x10, +0xf6,0xe,0x23,0xb,0x8,0x9,0xb6,0xc,0xf,0xf,0x1d,0x8, +0x42,0x2,0x55,0x5,0xba,0xa,0xa1,0xc,0x53,0x8,0x75,0x5, +0xf2,0xa,0xa9,0xe,0xcb,0xc,0x82,0x7,0xeb,0xff,0x7b,0x2, +0x1d,0xa,0x10,0x6,0x22,0x2,0x34,0x6,0xdf,0x6,0x78,0x5, +0x5d,0x7,0xdd,0xa,0xf3,0xa,0xb9,0x2,0xfe,0xfa,0x3c,0xfc, +0x51,0xfe,0x29,0xfc,0x75,0xfa,0xdd,0xfb,0x8c,0xff,0xfb,0x2, +0x34,0x3,0x3b,0x2,0x31,0x5,0x2d,0x7,0x17,0x3,0x16,0x1, +0x96,0xff,0xc3,0xf8,0x59,0xf8,0x5f,0xfe,0xb6,0xfe,0x3d,0xfd, +0xa7,0xfc,0x2,0xfc,0xd,0x0,0x53,0x3,0xeb,0xff,0xf3,0xfa, +0x5,0xf9,0x30,0xfb,0x80,0xfb,0xc2,0xf5,0x97,0xf4,0x48,0xfc, +0x7a,0x0,0xa,0xfd,0x5b,0xfb,0xd8,0xfd,0x93,0xfe,0x3c,0xfe, +0xfa,0xfd,0x27,0xfa,0x94,0xf7,0x74,0xf9,0xdf,0xf7,0xcf,0xf3, +0x44,0xf4,0x57,0xf7,0x65,0xfa,0x9f,0xfa,0x52,0xf6,0xb8,0xf5, +0x90,0xfb,0xf7,0xfe,0xd2,0xfe,0x98,0xfd,0xf4,0xf9,0x5b,0xf9, +0x5b,0xfb,0xeb,0xf6,0x8,0xf2,0xde,0xf1,0x84,0xee,0x2b,0xed, +0x8c,0xf3,0xac,0xf7,0xa5,0xf9,0xd2,0x0,0x4f,0x8,0x55,0x8, +0x35,0x1,0x8,0xfb,0x68,0xf9,0x19,0xf6,0x45,0xf1,0xd2,0xf0, +0x88,0xf3,0x61,0xf8,0x2f,0x1,0xba,0x7,0xda,0x5,0xd,0x5, +0x1c,0x9,0xad,0x1,0xf3,0xf1,0xef,0xf0,0x8f,0xf9,0x8d,0xfb, +0xb9,0xfb,0xda,0xff,0x16,0x6,0xcc,0xc,0x54,0xf,0x5,0x9, +0x43,0xfe,0xc9,0xfa,0xaf,0xfe,0x58,0xfd,0xab,0xf7,0xfb,0xf9, +0xd0,0x4,0x49,0xc,0x8a,0x9,0x16,0x5,0xad,0x5,0x2b,0x7, +0xb6,0x7,0xe3,0x3,0x99,0xfd,0x60,0x1,0x77,0x9,0x91,0x9, +0x0,0x8,0xda,0x6,0x2e,0x4,0x62,0x4,0xb7,0x3,0xae,0xff, +0xa1,0xfd,0xee,0xfe,0x1a,0x3,0x35,0x7,0x88,0x6,0x27,0x4, +0x74,0x6,0x52,0xb,0x6b,0xa,0x61,0x4,0x8a,0x1,0x56,0x3, +0xdb,0x6,0xcd,0x6,0x21,0x0,0x5f,0xfd,0xb4,0x2,0x27,0x4, +0xf3,0xfe,0xd8,0xfa,0xf6,0xfc,0x26,0x3,0xed,0x3,0xcb,0x0, +0x6b,0x4,0xdd,0x9,0x61,0x8,0x39,0x5,0xff,0x3,0x8e,0x1, +0xd1,0xff,0xa,0xff,0x77,0xfa,0xd8,0xf7,0x42,0xfd,0x3e,0x1, +0x71,0x0,0xad,0x1,0x41,0x3,0xf1,0x2,0x23,0x2,0x66,0x0, +0x68,0xff,0xb1,0xfe,0xd2,0xfd,0xa5,0xff,0xf0,0x0,0xd7,0xff, +0x80,0x0,0xe1,0x1,0xba,0x1,0x19,0x0,0x2b,0xfc,0x5d,0xf9, +0x74,0xfb,0xfa,0xfd,0xfe,0xfb,0x41,0xfa,0x4d,0xfe,0xb6,0x3, +0xfd,0x5,0xf8,0x5,0x7e,0x3,0x31,0x1,0xb4,0x1,0x4d,0x0, +0x1b,0xfb,0x76,0xf8,0x21,0xfb,0x75,0xfc,0xa6,0xf9,0xe1,0xfa, +0x51,0x0,0x4f,0x0,0xd,0xfd,0x4b,0xfd,0x8b,0xfd,0x31,0xfb, +0xf1,0xf9,0x6d,0xfa,0xc6,0xf9,0xe9,0xf9,0xf4,0xfc,0x5e,0xfd, +0xb1,0xfa,0x9a,0xfb,0xb0,0xfd,0x43,0xfb,0x7a,0xf7,0xbf,0xf7, +0x72,0xfa,0xb3,0xf9,0xd2,0xf7,0xbf,0xf9,0x2,0xfb,0x90,0xfa, +0x2e,0xfc,0x6c,0xfc,0xa2,0xf9,0x56,0xf7,0x63,0xf6,0xc,0xf6, +0x4a,0xf6,0xf8,0xf7,0x93,0xf9,0x24,0xf9,0xb,0xfa,0xd2,0xfc, +0x2f,0xfd,0x13,0xfa,0x7b,0xf5,0xd5,0xf3,0x63,0xf5,0xce,0xf4, +0x12,0xf4,0x16,0xf7,0x31,0xfb,0xed,0xfd,0x89,0xfd,0x59,0xfb, +0xb9,0xfa,0xa0,0xf9,0xba,0xf6,0xa1,0xf3,0x4,0xf2,0x3e,0xf4, +0x8b,0xf7,0x55,0xf8,0xf4,0xf8,0x33,0xfb,0xc4,0xfd,0x70,0xfd, +0x7,0xfb,0x40,0xfb,0x2a,0xfb,0x93,0xf9,0x55,0xfb,0xd4,0xfc, +0xea,0xfb,0xb2,0xfb,0x24,0xfa,0xf4,0xf8,0x51,0xfa,0x8e,0xfa, +0x60,0xf9,0x96,0xf7,0x57,0xf7,0x8e,0xfa,0xb1,0xfb,0x58,0xfb, +0x84,0xfe,0x22,0x0,0x60,0xfe,0x31,0xfd,0xc1,0xfb,0xd2,0xfa, +0xc5,0xfb,0xd7,0xfb,0x53,0xfa,0x72,0xf9,0x78,0xfa,0x2e,0xfc, +0x9c,0xfc,0x25,0xfc,0x2,0xfc,0xa,0xfc,0x4e,0xfc,0x3e,0xfd, +0x2f,0xfd,0x28,0xfc,0x14,0xfe,0xf7,0xff,0xd6,0xfc,0x57,0xfb, +0x62,0xfd,0xa9,0xfc,0x3,0xfd,0xc0,0xff,0xa,0xff,0xa4,0xfe, +0xc4,0x0,0x26,0x1,0xea,0x0,0x81,0x0,0x87,0xff,0xbf,0xff, +0x3d,0xff,0x38,0xff,0xbd,0x1,0x7f,0x1,0x91,0xff,0x13,0x2, +0x97,0x4,0x14,0x3,0x8b,0x1,0x9e,0x0,0x38,0xff,0x49,0xff, +0xe9,0xff,0xc,0xff,0x93,0xfe,0x53,0x0,0x55,0x3,0x28,0x6, +0x5b,0x7,0xb2,0x6,0x12,0x7,0xd6,0x8,0xe7,0x6,0x37,0x1, +0xc7,0xfd,0xd1,0xfc,0xf4,0xfb,0xf5,0xfc,0x0,0x0,0xd9,0x3, +0x5b,0x8,0x46,0xb,0xfd,0xb,0x8b,0xc,0x2d,0xb,0xf,0x6, +0xdf,0x0,0xc6,0xfe,0xac,0xfe,0xb3,0xfe,0xba,0xfd,0xf9,0xfd, +0x12,0x3,0x50,0x8,0x53,0x7,0x3f,0x4,0x4e,0x3,0xfa,0x2, +0x72,0x2,0xc8,0x0,0xdd,0x0,0x74,0x5,0x36,0x8,0xca,0x7, +0xba,0x8,0xd7,0x7,0x80,0x4,0x84,0x1,0xfd,0xfc,0x4b,0xf9, +0x21,0xf9,0xd0,0xf9,0xfd,0xfb,0x1a,0x1,0x59,0x7,0xe1,0xb, +0xff,0xb,0xf2,0x9,0x7e,0x8,0x44,0x5,0xc5,0x0,0x8c,0xfe, +0xee,0xfd,0xc9,0xfd,0x48,0x0,0x26,0x4,0xa3,0x4,0x7d,0x4, +0x99,0x7,0x29,0x8,0x85,0x4,0x51,0x2,0x79,0x1,0x4a,0x1, +0xdc,0x2,0x71,0x3,0x50,0x2,0xb1,0x1,0x14,0x2,0x94,0x2, +0x0,0x2,0xa3,0x0,0x2b,0x0,0xe,0x2,0xa0,0x4,0x75,0x4, +0x9f,0x4,0xd8,0x6,0xb2,0x5,0xaf,0x3,0x69,0x4,0xba,0x2, +0x5d,0x0,0x22,0x1,0xd,0x2,0x11,0x3,0x3a,0x3,0x2d,0x2, +0x19,0x4,0x93,0x4,0xa7,0x0,0xc3,0x0,0x64,0x3,0x60,0x1, +0x50,0x0,0xd8,0x2,0xf7,0x2,0xce,0x2,0xf6,0x4,0xc3,0x3, +0xdf,0x0,0xda,0x1,0x8a,0x2,0xd8,0x0,0x76,0x0,0xd1,0x1, +0xa5,0x4,0xd8,0x5,0xa2,0x2,0xd5,0x0,0x3d,0x2,0x87,0x2, +0xa0,0x2,0x6,0x3,0xbf,0x3,0x31,0x6,0x44,0x7,0xa6,0x6, +0xc0,0x5,0x83,0x2,0x54,0x0,0x51,0x0,0x9b,0xfd,0xeb,0xfb, +0xad,0xfe,0xff,0x1,0xb,0x5,0x6b,0x6,0x11,0x6,0xa8,0x7, +0x57,0x8,0xa9,0x6,0x27,0x6,0xde,0x4,0x16,0x4,0x34,0x7, +0xb3,0x7,0xc0,0x3,0xf1,0x2,0xbc,0x4,0x1d,0x4,0xfb,0x2, +0x1a,0x3,0x33,0x3,0x5f,0x5,0x3c,0x9,0xe0,0x9,0xa6,0x9, +0xeb,0xb,0x4c,0xc,0x98,0x9,0x10,0x6,0x56,0x4,0x39,0x7, +0xe5,0x8,0x2f,0x7,0x2a,0x9,0x58,0xb,0x2d,0xa,0x6e,0xa, +0x1e,0xa,0x43,0x9,0xde,0xa,0x53,0xc,0x15,0xe,0x5e,0xf, +0x6,0xf,0xe6,0xf,0xcf,0xe,0x79,0xc,0x39,0xc,0x7c,0x8, +0x19,0x5,0x44,0x8,0xaf,0xa,0xef,0x9,0x11,0x9,0x4e,0x9, +0xc8,0xa,0xdf,0x8,0x74,0x5,0xfc,0x4,0x2f,0x3,0x42,0x0, +0xe2,0xfe,0x61,0xfe,0x63,0xff,0xb,0xff,0x9e,0xfc,0xc0,0xfa, +0x4e,0xfa,0xa,0xfc,0x22,0xfa,0xfd,0xf5,0x16,0xf9,0xb7,0xfa, +0x52,0xf7,0x19,0xf8,0x97,0xf6,0xca,0xf1,0x8c,0xef,0x1a,0xec, +0x3b,0xeb,0x9d,0xeb,0x55,0xe8,0x29,0xea,0x35,0xee,0xa1,0xee, +0x9c,0xf0,0x7,0xf0,0x72,0xed,0xc1,0xed,0xbf,0xea,0xda,0xe4, +0xfb,0xe0,0x51,0xe0,0x19,0xe2,0xbf,0xe1,0xed,0xe2,0x5c,0xe7, +0xce,0xe8,0x32,0xeb,0x38,0xed,0x58,0xea,0xbb,0xe9,0xbc,0xe8, +0x35,0xe5,0x8b,0xe5,0xaf,0xe5,0x92,0xe6,0xee,0xea,0xf4,0xeb, +0x63,0xec,0x17,0xef,0xc5,0xf0,0x1a,0xf2,0xf8,0xf0,0xa8,0xef, +0x7,0xf2,0x1e,0xf4,0x96,0xf5,0xd3,0xf5,0x39,0xf6,0x11,0xfb, +0x4b,0xfc,0xbe,0xf9,0x3a,0xfc,0x9e,0xfd,0xbd,0xfc,0x19,0xfe, +0x4f,0xfe,0x1c,0x0,0xa2,0x2,0xb9,0x1,0xe2,0x2,0x8f,0x4, +0xae,0x3,0x6a,0x4,0xcd,0x4,0xa4,0x4,0x2c,0x6,0xd3,0x6, +0x4a,0x7,0xfd,0x7,0x2c,0x8,0x80,0x8,0xc3,0x6,0x53,0x5, +0xb9,0x6,0x6c,0x6,0x30,0x5,0x15,0x6,0x87,0x7,0x3,0x9, +0x22,0x9,0xff,0x7,0x36,0x8,0x42,0x8,0xf5,0x6,0x9d,0x5, +0x90,0x4,0x5e,0x4,0xeb,0x4,0xcf,0x5,0xeb,0x5,0x9e,0x4, +0x5b,0x5,0xdd,0x6,0x25,0x4,0x93,0x1,0xa3,0x2,0x57,0x2, +0x1e,0x0,0xf0,0xff,0xbb,0x1,0xb,0x2,0x91,0x0,0xe8,0x0, +0xbe,0x1,0x18,0x0,0xb0,0xfe,0xa1,0xfd,0x20,0xfc,0x1a,0xfd, +0x63,0xfe,0xd,0xfe,0x50,0xff,0x1b,0x1,0x22,0x1,0xd4,0xff, +0x3a,0xfe,0x97,0xfe,0x3c,0xfe,0x39,0xfa,0xf4,0xf8,0x7f,0xfc, +0xf7,0xfd,0x59,0xfc,0x46,0xfc,0xb8,0xfe,0x7b,0x0,0x60,0xff, +0xb6,0xfc,0xec,0xfa,0xf4,0xfb,0x6e,0xfd,0xd5,0xfb,0x1a,0xfb, +0x9,0xfd,0xda,0xfd,0xc,0xff,0x5,0x0,0xeb,0xfd,0x3,0xfd, +0x89,0xfd,0xa,0xfc,0x29,0xfb,0xf0,0xfb,0x16,0xfd,0xd3,0xfe, +0xfa,0xff,0xcd,0xff,0xa1,0xff,0x93,0x1,0x7e,0x3,0xa6,0x0, +0xeb,0xfc,0x23,0xfd,0x61,0xfe,0xe3,0xfe,0x67,0xfd,0x2f,0xfb, +0xe1,0xfd,0xdb,0x1,0x3c,0x1,0xe6,0xff,0xdd,0x0,0x29,0x3, +0xce,0x4,0xfa,0x3,0xe3,0x2,0x73,0x3,0xdb,0x4,0xb5,0x4, +0x27,0x1,0xb2,0xfe,0xc8,0xff,0x32,0x0,0xe7,0xff,0x47,0x0, +0x99,0x1,0x3f,0x5,0xb3,0x7,0x77,0x7,0x42,0x8,0x99,0x8, +0xb3,0x6,0xbc,0x4,0xe9,0x2,0x8b,0x1,0x6,0x2,0xb3,0x2, +0x1,0x2,0x78,0x3,0x72,0x7,0x1d,0x8,0x54,0x8,0x3d,0xc, +0x42,0xc,0xc7,0x8,0x75,0x9,0xba,0xa,0x84,0x9,0xa1,0x7, +0xda,0x4,0x73,0x4,0xcf,0x7,0x89,0x9,0x54,0x7,0x57,0x6, +0x75,0xa,0x19,0xe,0xd5,0xc,0x0,0xb,0xac,0xb,0x49,0xe, +0xfc,0xd,0x1e,0x8,0x1a,0x6,0x53,0x9,0xa1,0x8,0x32,0x6, +0x3c,0x5,0xc3,0x5,0xb3,0x9,0x7a,0xb,0x2c,0xb,0x51,0xe, +0x72,0xf,0xce,0xd,0x16,0xd,0xc,0xb,0x35,0xa,0xa,0xa, +0xe9,0x6,0x45,0x6,0xd0,0x9,0x65,0xc,0x8d,0xa,0x10,0x6, +0xef,0x6,0x46,0xa,0xed,0x6,0x80,0x4,0x75,0x9,0x18,0xe, +0x2e,0xe,0x16,0xc,0x4,0xb,0xc8,0xa,0x72,0x8,0x7e,0x3, +0x55,0xfc,0x62,0xf9,0xf0,0xff,0x24,0x5,0x28,0x4,0xc2,0x6, +0xdd,0xc,0x1f,0x10,0xa9,0xd,0x55,0x6,0x3e,0x1,0x87,0xfd, +0x37,0xf6,0x10,0xf2,0x2,0xf4,0xb1,0xf7,0x9e,0xfc,0xbb,0x1, +0x10,0x7,0x73,0xb,0xef,0xa,0x1b,0x7,0x99,0x0,0xaf,0xf9, +0x3f,0xf8,0xa3,0xf5,0x68,0xef,0xea,0xf0,0x18,0xf8,0xc1,0xfc, +0x7f,0xfe,0x41,0xfd,0x17,0xfe,0x5a,0x0,0xbc,0xfb,0x49,0xf7, +0xf6,0xf8,0x2d,0xf8,0xb9,0xf5,0xfa,0xf6,0xf0,0xf7,0x2b,0xf7, +0xeb,0xf6,0x14,0xf5,0x3b,0xf2,0x9d,0xf4,0x94,0xf9,0x4b,0xf9, +0x5,0xf9,0x3d,0xfd,0x73,0x0,0x69,0x1,0xf3,0xfd,0x32,0xf7, +0xc9,0xf5,0xc7,0xf3,0xd2,0xec,0xb,0xed,0xce,0xf1,0x15,0xf3, +0xdc,0xf7,0x44,0xff,0x36,0x2,0x7b,0x2,0xae,0x1,0x6e,0xff, +0x4b,0xfc,0x7c,0xf8,0xfd,0xf4,0xbd,0xf2,0xf6,0xf2,0x7d,0xf5, +0x7e,0xf7,0x3b,0xf8,0x1b,0xfa,0xbd,0xfd,0xa7,0xfe,0xe9,0xfa, +0x5e,0xf9,0x3b,0xfc,0xa8,0xfc,0xb2,0xf9,0x39,0xf8,0xeb,0xf8, +0x48,0xfa,0x60,0xfc,0x74,0xfc,0x6d,0xf8,0x4b,0xf7,0xc9,0xfa, +0x2f,0xfa,0xfc,0xf7,0xb2,0xf9,0xbf,0xfa,0x31,0xfc,0xd,0xff, +0xb0,0xfe,0x57,0xfd,0x98,0xfc,0x62,0xfb,0xe2,0xf9,0x50,0xf5, +0xdb,0xf1,0xc4,0xf3,0x21,0xf4,0xe3,0xf3,0x7d,0xf8,0x30,0xfc, +0xb5,0xfc,0xec,0xfe,0x3f,0x1,0x3b,0xff,0x49,0xfc,0x7d,0xfc, +0xc8,0xfa,0xef,0xf5,0x9a,0xf4,0x22,0xf6,0xfc,0xf6,0x2e,0xf8, +0x11,0xfa,0x70,0xfc,0x8b,0xfe,0xce,0x0,0x2b,0x3,0x5,0x1, +0xe0,0xfc,0x7e,0xfd,0xaa,0xfd,0x73,0xf8,0x87,0xf4,0x13,0xf6, +0xf7,0xf7,0xbf,0xf8,0xca,0xfc,0x5c,0x0,0x2c,0x1,0xa5,0x4, +0xa1,0x4,0x24,0xff,0xe3,0xfe,0x71,0xfe,0x4d,0xf9,0xfc,0xf8, +0xa7,0xfa,0x6,0xfb,0x28,0xfe,0x4e,0x0,0xde,0x0,0xbd,0x1, +0xa4,0x0,0x48,0xff,0x1,0xfe,0xb0,0xfc,0x43,0xfe,0xe9,0xff, +0xf1,0xfe,0xdb,0xff,0x3,0x4,0xec,0x3,0x80,0xfe,0xc,0xfe, +0x40,0xff,0x9c,0xf9,0x60,0xf8,0x36,0xfe,0x56,0xff,0xf7,0xff, +0x3c,0x5,0x1d,0x7,0x9f,0x3,0x49,0x2,0xbc,0x3,0xa9,0xfe, +0x9b,0xf7,0x1a,0xfa,0xc,0xfd,0x60,0xfc,0x70,0x0,0xb0,0x4, +0xfe,0x6,0x81,0x7,0xc8,0x3,0xa6,0x3,0xeb,0x1,0x1b,0xfa, +0xe5,0xfb,0x4,0xff,0xcf,0xf9,0xb2,0xfe,0x1b,0x7,0xc1,0x3, +0x11,0x2,0x78,0x5,0x43,0x4,0xe3,0xff,0xa9,0xfd,0x38,0xff, +0x70,0x0,0xda,0x0,0x19,0x4,0x89,0x5,0x57,0x4,0x1,0x5, +0xfa,0x4,0xb0,0x2,0x93,0xff,0x6a,0xff,0xe4,0x3,0x14,0x4, +0x5d,0x1,0xaf,0x5,0xdc,0x8,0xc5,0x5,0xbe,0x4,0xd6,0x3, +0xdc,0x0,0x37,0x1,0xd8,0x2,0xd5,0x1,0xb0,0x1,0x9e,0x4, +0xa7,0x5,0xbe,0x3,0x5f,0x4,0xca,0x4,0x2d,0x2,0x83,0x2, +0xf6,0x3,0x17,0x4,0xc7,0x6,0xb9,0x6,0x6d,0x3,0xb5,0x4, +0x7e,0x4,0xc1,0xfe,0x26,0xfc,0x6c,0xfd,0x7f,0xfe,0x77,0xff, +0x6b,0x0,0xa7,0x2,0xd1,0x6,0xe9,0x9,0xef,0x8,0x90,0x5, +0x67,0x3,0xf1,0x0,0x17,0xfe,0x3f,0xfd,0xce,0xfa,0xba,0xf8, +0xe4,0xfb,0x16,0xfe,0x44,0xff,0xfd,0x2,0xb8,0x2,0x78,0x2, +0x60,0x7,0xba,0x6,0xb1,0x1,0x2c,0x1,0xd8,0xff,0xb5,0xfc, +0xd8,0xfb,0x97,0xf9,0xcd,0xf8,0x2b,0xfe,0xe2,0x0,0xfb,0xfd, +0xa3,0xff,0xe9,0x4,0x61,0x5,0xd7,0x3,0xe7,0x2,0xe8,0x0, +0xff,0x0,0xff,0x0,0xc3,0xfc,0x90,0xfa,0x89,0xfc,0x28,0xfd, +0x7f,0xfc,0x38,0xfc,0xfb,0xfc,0x36,0x0,0x7,0x2,0x17,0x0, +0x33,0x0,0x6c,0x2,0x7a,0x1,0xb3,0x0,0x6e,0x1,0xbc,0xfe, +0xba,0xfc,0x1e,0xfd,0xcd,0xf9,0x4b,0xf8,0xa7,0xfb,0x17,0xfc, +0x90,0xfd,0x54,0x3,0xec,0x5,0x86,0x6,0xfa,0x6,0x74,0x4, +0xf2,0x1,0x5c,0xff,0x6d,0xfb,0x27,0xfa,0x67,0xfa,0x14,0xfa, +0xa2,0xfb,0x4c,0xfe,0xf8,0xff,0xf3,0x0,0x67,0x1,0x6a,0x1, +0x15,0x2,0x5c,0x3,0x3a,0x2,0xc5,0xff,0xf9,0x0,0xa2,0x2, +0x16,0x0,0xeb,0xfc,0xda,0xfb,0x1f,0xfd,0xb3,0xff,0x5f,0xff, +0x20,0xfe,0x21,0x1,0xa7,0x4,0xdf,0x4,0xcf,0x3,0x34,0x2, +0x65,0x1,0x22,0x3,0xae,0x3,0xe6,0x0,0x6d,0xff,0x86,0x0, +0xc6,0x0,0xd1,0x0,0xa7,0x1,0x5f,0x1,0xcc,0x1,0x8e,0x4, +0x1,0x6,0xce,0x5,0x7a,0x6,0x60,0x6,0x53,0x5,0x5c,0x4, +0xa5,0x0,0xbd,0xfc,0xa8,0xfd,0x5e,0xfe,0x80,0xfc,0x26,0xfe, +0x63,0x2,0x57,0x5,0xc1,0x7,0x3c,0x8,0x0,0x7,0xb2,0x6, +0xf5,0x4,0x4,0x1,0xa9,0xfe,0xc,0xfe,0xee,0xfd,0x3d,0xff, +0x79,0x0,0xa6,0x0,0xa3,0x2,0x70,0x4,0x2a,0x2,0x4,0x1, +0xe1,0x2,0xfd,0x1,0x5f,0x1,0xc2,0x3,0x20,0x3,0x63,0x1, +0x36,0x2,0x39,0x1,0x62,0xff,0x70,0xff,0xb7,0xfe,0x8f,0xfe, +0x6c,0x0,0x22,0x1,0xb4,0x1,0xd2,0x3,0xd5,0x3,0xab,0x1, +0x4e,0x1,0xf4,0x0,0xc3,0xfe,0x65,0xfe,0x57,0xff,0x1,0xff, +0xfc,0xff,0xf4,0x1,0xae,0x2,0xdb,0x3,0x20,0x4,0x7a,0x2, +0x6f,0x2,0xa9,0x2,0x14,0x1,0x70,0x0,0xd2,0xff,0xc5,0xfe, +0x3a,0x0,0xcd,0x0,0xed,0xfe,0xc,0x0,0x1e,0x2,0xc,0x1, +0x7d,0x0,0x64,0x1,0x9c,0x2,0x65,0x4,0xc4,0x3,0xac,0x1, +0xe,0x1,0xa6,0xff,0x9e,0xfe,0xed,0xfe,0x86,0xfd,0x22,0xfe, +0x34,0x2,0xb0,0x3,0x6a,0x3,0x4,0x4,0xf0,0x2,0x74,0x0, +0xd8,0xfd,0xb4,0xfa,0x1a,0xf9,0xb0,0xfa,0xde,0xfc,0x62,0xfe, +0x38,0x2,0xca,0x6,0xb8,0x7,0xbb,0x6,0xf7,0x3,0x7d,0xff, +0xa7,0xfd,0x43,0xfa,0x4c,0xf5,0xe9,0xf8,0x24,0xfe,0x67,0xfe, +0x8f,0x3,0xd7,0x7,0x59,0x5,0x3d,0x6,0x36,0x4,0x24,0xfc, +0xcf,0xfb,0x9a,0xfb,0xb0,0xf5,0xd2,0xf8,0x4c,0xff,0x55,0x0, +0x32,0x5,0xbf,0x8,0x7b,0x6,0x29,0x7,0xf2,0x3,0x80,0xfb, +0x6d,0xfa,0xe,0xfa,0x9c,0xf6,0x8,0xfa,0x49,0xfd,0xe0,0xfd, +0x54,0x5,0xa2,0x9,0x18,0x6,0xb0,0x6,0x79,0x5,0xf5,0xfd, +0xc0,0xfb,0x15,0xfb,0x79,0xf7,0x4f,0xfa,0xac,0xfe,0x1b,0xfe, +0xd0,0x0,0x9f,0x4,0xa8,0x3,0x1a,0x3,0x28,0x2,0xaa,0xfe, +0xd1,0xfd,0x1b,0xfe,0x76,0xfc,0xf0,0xfc,0x1,0xff,0x79,0xfe, +0x98,0xfd,0x3d,0xfe,0xf7,0xfc,0x29,0xfb,0x68,0xfc,0xc9,0xfd, +0x6e,0xff,0xee,0x1,0x6e,0x0,0x64,0x0,0x20,0x4,0x2b,0x0, +0x50,0xfa,0xb1,0xfa,0x89,0xf7,0x2,0xf6,0xb7,0xfa,0x71,0xf9, +0x41,0xfa,0x73,0x2,0xf5,0x1,0x7b,0xfe,0x3,0x1,0xa7,0xfe, +0x45,0xfa,0x3c,0xfa,0x26,0xf9,0xa7,0xf9,0xd6,0xfb,0xf4,0xfa, +0x57,0xfc,0xcf,0xfe,0xfb,0xfc,0x7b,0xfd,0xdc,0xfe,0xb8,0xf9, +0x57,0xf7,0xb6,0xfb,0x19,0xfc,0xe4,0xfa,0xd0,0xfd,0xc6,0xfd, +0x15,0xfc,0x79,0xfe,0x11,0xfe,0xcb,0xf9,0x94,0xf9,0x20,0xfb, +0x69,0xf9,0x6d,0xf7,0xbd,0xf7,0xf6,0xf9,0x94,0xfc,0x63,0xfc, +0x9d,0xfb,0xb3,0xfe,0x93,0xff,0xd4,0xfb,0x97,0xfc,0x12,0xfe, +0x6d,0xf9,0xc9,0xf8,0x9b,0xfb,0xcb,0xf8,0x6f,0xf8,0x69,0xfc, +0xd8,0xfc,0xc4,0xfd,0xa9,0xff,0x18,0xff,0xc3,0xff,0x42,0xff, +0xd3,0xfc,0x13,0xfd,0x77,0xfb,0xe,0xf9,0x2a,0xfc,0x4b,0xfd, +0xd2,0xfa,0xe9,0xfd,0xf1,0x1,0x80,0x0,0xa0,0xff,0x83,0x0, +0x20,0xff,0xd4,0xfd,0x57,0xfe,0x45,0xfe,0x7d,0xfd,0x60,0xfd, +0x90,0xfe,0xa7,0xff,0x7d,0xfe,0xf2,0xfd,0x35,0x0,0x6,0x1, +0x13,0x0,0x93,0x0,0x84,0x1,0x58,0x2,0x86,0x2,0xc7,0x0, +0x91,0xff,0xcf,0xff,0xec,0xff,0x9c,0xff,0x5b,0xfe,0x81,0xfe, +0x26,0x1,0x79,0x1,0xa4,0xff,0xc6,0xff,0xde,0x0,0x1e,0x1, +0x6c,0x0,0xbd,0xff,0x4a,0x0,0xf0,0x0,0x6c,0x1,0xba,0x1, +0xb2,0x0,0x31,0x0,0x94,0x0,0x93,0xff,0x5a,0xfe,0x31,0xfe, +0x60,0xfe,0xe7,0xfe,0x74,0x0,0xb0,0x2,0x9f,0x2,0x4f,0x1, +0x2c,0x3,0x53,0x4,0x29,0x1,0x2b,0xfe,0xcb,0xfc,0x3a,0xfc, +0xd4,0xfc,0x5d,0xfd,0x43,0xfe,0xf1,0xff,0x17,0x2,0x35,0x4, +0xcf,0x2,0x4d,0x0,0xdb,0x1,0xb1,0x1,0xb,0xfd,0x98,0xfb, +0xf6,0xfd,0x3c,0xfe,0xc4,0xfc,0xb5,0xfd,0x46,0x0,0x2c,0x1, +0x28,0x1,0xbf,0x0,0x65,0xff,0x27,0xff,0x3a,0xff,0xef,0xfd, +0x23,0xfd,0x7e,0xfd,0xb4,0xfe,0xc,0xff,0x9d,0xfd,0xe4,0xfe, +0xc2,0x1,0xc7,0x0,0x6e,0xff,0x1b,0x0,0x64,0xff,0x23,0xfe, +0x55,0xfe,0xe4,0xfe,0xa0,0xfe,0x8e,0xfe,0x95,0xff,0x7a,0xff, +0x15,0xff,0xbf,0x0,0x87,0x1,0x2e,0x1,0x55,0x1,0x9e,0x0, +0xfa,0x0,0x23,0x2,0x58,0x1,0xcc,0x0,0x1a,0x0,0x25,0xff, +0x1c,0x1,0x83,0x2,0x46,0x2,0xc,0x4,0x73,0x4,0x0,0x3, +0xda,0x3,0x4,0x4,0x8,0x1,0x78,0xfe,0xcc,0xfe,0xdd,0x0, +0xc1,0x1,0x92,0x1,0x5a,0x3,0xd8,0x6,0xd8,0x8,0x38,0x8, +0xed,0x6,0xb7,0x6,0xbc,0x6,0x31,0x5,0x14,0x2,0xbd,0x0, +0xfb,0x2,0x3a,0x4,0x35,0x2,0x84,0x1,0x89,0x4,0x52,0x8, +0x63,0x9,0xae,0x8,0xe8,0x9,0x49,0xb,0x6a,0x9,0xad,0x6, +0x60,0x5,0x27,0x5,0xbe,0x5,0x14,0x6,0xb5,0x5,0xca,0x5, +0x1c,0x7,0x30,0x8,0xf2,0x6,0x2e,0x5,0x18,0x5,0xbd,0x5, +0x9c,0x7,0x48,0xa,0xfe,0xa,0x4a,0xa,0xbd,0x9,0x9c,0x9, +0x21,0x9,0xf1,0x5,0x3e,0x2,0x27,0x2,0xb9,0x3,0xfb,0x4, +0x37,0x6,0xd,0x7,0xe8,0x8,0x17,0xb,0x87,0xa,0xfe,0x7, +0x1f,0x5,0xd,0x3,0xf1,0x3,0xd8,0x6,0x6,0x9,0xe3,0x9, +0xc1,0x9,0x1a,0x9,0xb8,0x7,0xf7,0x4,0x8b,0x1,0x53,0xfe, +0x2,0xfc,0x4c,0xfc,0x62,0xff,0x6b,0x3,0x6,0x8,0xfc,0xb, +0x26,0xc,0x8a,0xa,0x1a,0xa,0x64,0x6,0x8d,0xfe,0x2a,0xf9, +0x74,0xf7,0x38,0xf7,0x5,0xf9,0xfb,0xfb,0x78,0xff,0xb1,0x4, +0xd6,0x9,0x8f,0xb,0xec,0x9,0x6b,0x6,0xb3,0x0,0x4b,0xfa, +0xb1,0xf6,0x28,0xf5,0x42,0xf4,0xbc,0xf5,0x6f,0xfa,0xe5,0x1, +0x20,0x8,0xfa,0x8,0x4e,0x8,0xfd,0x6,0x66,0x0,0x99,0xf8, +0x28,0xf3,0x6b,0xed,0xa2,0xeb,0x7f,0xf0,0x2b,0xf6,0x5b,0xfc, +0x8c,0x4,0x53,0x8,0x44,0x6,0x49,0x4,0x8d,0x0,0x3c,0xf8, +0x8e,0xf1,0x80,0xee,0x36,0xed,0x90,0xf0,0x96,0xf6,0x49,0xfc, +0x16,0x3,0x6f,0x6,0xcd,0x4,0x96,0x3,0x0,0x0,0xb,0xf8, +0x1b,0xf2,0xa1,0xef,0x14,0xef,0xd5,0xf1,0x18,0xf6,0x56,0xf9, +0xc6,0xfd,0x5e,0x2,0x3b,0x1,0x3c,0xfd,0x7d,0xfb,0x5,0xf8, +0xca,0xf4,0x8e,0xf5,0x5b,0xf4,0xbc,0xf3,0xba,0xf7,0x13,0xf9, +0x49,0xf9,0x77,0xfb,0x22,0xfa,0x8d,0xf8,0x5c,0xf9,0x2b,0xf8, +0xda,0xf7,0x9f,0xf9,0xdb,0xf9,0x5b,0xfa,0x60,0xfb,0x9,0xfa, +0xbf,0xf7,0x74,0xf6,0xb7,0xf4,0x85,0xf2,0x3d,0xf3,0xa3,0xf6, +0x6b,0xf9,0x3,0xfc,0xdf,0xfe,0x81,0x0,0x68,0x0,0xc7,0xfd, +0x86,0xf9,0xb9,0xf5,0xcc,0xf2,0x9d,0xf1,0xeb,0xf1,0xa,0xf3, +0x42,0xf6,0x9b,0xfa,0xb,0xfe,0xee,0xff,0xdd,0xff,0x1e,0xff, +0xa1,0xfd,0xda,0xf9,0x3b,0xf6,0xbd,0xf4,0xa7,0xf3,0xa8,0xf3, +0xb9,0xf6,0x81,0xfa,0xf6,0xfc,0xde,0xff,0x93,0x1,0x6,0x0, +0xb0,0xfe,0x14,0xfd,0xa5,0xf9,0x54,0xf8,0xb8,0xf7,0xb2,0xf6, +0x61,0xf9,0x53,0xfc,0xf9,0xfc,0xb0,0xfe,0xbb,0xff,0xd1,0xff, +0x80,0x0,0xa7,0xfe,0x51,0xfb,0xb1,0xfa,0xcd,0xfb,0x8f,0xfb, +0xe3,0xfa,0x96,0xfc,0x1a,0xfe,0xa,0xfe,0x8c,0xff,0x1c,0x0, +0x19,0xff,0xda,0xff,0xdc,0xfe,0xa2,0xfc,0xe3,0xfc,0xd4,0xfb, +0x53,0xfa,0x8d,0xfb,0xac,0xfc,0x61,0xfe,0x8c,0x1,0x4,0x3, +0x35,0x3,0x13,0x4,0xc8,0x3,0x46,0x0,0xfa,0xfc,0xaf,0xfc, +0xde,0xfb,0xb9,0xfa,0xcd,0xfb,0x51,0xfd,0xa8,0xff,0x47,0x2, +0x68,0x3,0xc4,0x4,0x13,0x4,0x48,0x1,0xfc,0x0,0xdd,0xff, +0xec,0xfc,0x65,0xfd,0x29,0xff,0xb0,0xfe,0xa9,0xfe,0x1a,0x2, +0x13,0x5,0x46,0x2,0x71,0x0,0x2e,0x3,0x1d,0x2,0xdc,0xff, +0x6d,0x1,0x0,0x1,0x38,0x0,0x3d,0x2,0x89,0x2,0x91,0x1, +0x62,0x1,0x4a,0x1,0xfd,0x0,0x8c,0xff,0xc0,0xff,0x18,0x3, +0x5a,0x4,0x40,0x3,0x22,0x4,0x83,0x5,0x26,0x4,0x9c,0x1, +0x56,0x0,0x18,0xff,0xdd,0xfd,0x10,0xff,0xe8,0x0,0x44,0x2, +0x9e,0x5,0x8f,0x8,0x89,0x8,0xfe,0x7,0x3c,0x6,0x2c,0x2, +0x5f,0xff,0xe7,0xfd,0x96,0xfb,0x95,0xfb,0xe,0xff,0xdd,0x1, +0x43,0x4,0x14,0x8,0x3f,0xa,0xf8,0x9,0x1,0x9,0x3e,0x6, +0xe,0x2,0xcf,0xfe,0xb8,0xfc,0x6c,0xfb,0xa7,0xfb,0x8,0xfe, +0x10,0x1,0x97,0x2,0x6a,0x4,0x17,0x8,0xc8,0x9,0xee,0x7, +0x44,0x6,0xe0,0x4,0xe7,0x0,0x9f,0xfc,0x3b,0xfb,0x3b,0xfb, +0x66,0xfb,0x97,0xfc,0xe2,0xfe,0x12,0x2,0xa7,0x5,0x2c,0x8, +0x1f,0x8,0x89,0x6,0x68,0x6,0xab,0x5,0x91,0x0,0x94,0xfb, +0xb8,0xfa,0x9d,0xfa,0x3c,0xfa,0x60,0xfb,0xae,0xfd,0xc,0x1, +0xc2,0x4,0xd0,0x6,0x2f,0x7,0xb8,0x6,0x34,0x5,0x6c,0x3, +0x76,0x2,0x93,0x0,0x71,0xfd,0x5a,0xfc,0xd,0xfd,0xc7,0xfd, +0xd7,0xff,0xdb,0x1,0x56,0x2,0x73,0x3,0xaa,0x4,0x91,0x4, +0xa,0x4,0x46,0x3,0xfa,0x2,0x56,0x3,0xf,0x3,0xbc,0x2, +0x7,0x3,0x23,0x3,0x59,0x2,0x93,0x0,0x22,0xff,0x93,0xfe, +0x6b,0xfe,0x22,0xff,0xcd,0xff,0x75,0x0,0x52,0x3,0x67,0x6, +0xf1,0x6,0xea,0x6,0x63,0x7,0x25,0x7,0x83,0x5,0x7,0x2, +0xae,0xfe,0x3d,0xfe,0xc1,0xfe,0x31,0xfe,0x10,0xff,0xf0,0x1, +0xd4,0x4,0xf3,0x7,0x13,0xa,0xa6,0x9,0x5a,0x9,0xc5,0x9, +0x20,0x8,0x5,0x5,0xed,0x2,0x62,0x2,0x6e,0x2,0x38,0x2, +0xf7,0x1,0x54,0x2,0x34,0x4,0x56,0x6,0xe6,0x5,0xf1,0x4, +0x0,0x6,0xfe,0x6,0x59,0x7,0xc5,0x6,0x2,0x5,0x5a,0x5, +0x86,0x6,0xf0,0x4,0x4e,0x3,0xb2,0x2,0x83,0x1,0xa4,0x0, +0xb6,0xff,0x40,0xff,0xb8,0x0,0x17,0x2,0x23,0x3,0x30,0x5, +0x3a,0x6,0xc3,0x5,0xfc,0x4,0xb5,0x2,0x43,0xff,0x12,0xfd, +0x33,0xfc,0xd3,0xfb,0x3c,0xfc,0x36,0xfd,0x9c,0xfe,0xdf,0x0, +0x40,0x3,0xfa,0x3,0x2c,0x2,0x95,0xff,0x4f,0xfe,0xa6,0xfc, +0x88,0xf9,0x5,0xf8,0xc6,0xf8,0xf6,0xf9,0xf5,0xfb,0x8f,0xfe, +0x19,0x0,0x4d,0x0,0x4,0x0,0x6c,0xff,0x1e,0xfe,0xd2,0xfc, +0xf0,0xfb,0x24,0xfb,0x90,0xfb,0x55,0xfc,0xf6,0xfb,0xb2,0xfc, +0xf6,0xfd,0x72,0xfd,0xea,0xfc,0x5d,0xfc,0xe,0xfc,0x36,0xfe, +0x5f,0xff,0x49,0xfe,0xcd,0xff,0x58,0x2,0x8,0x2,0xe9,0x0, +0x47,0x0,0xa6,0xff,0x76,0xff,0x90,0xfe,0xcb,0xfc,0xad,0xfc, +0x26,0xfe,0x6b,0xff,0xff,0x0,0x4b,0x2,0x37,0x2,0x82,0x2, +0x8f,0x2,0xeb,0x0,0x62,0x0,0xa0,0x0,0xbc,0xfe,0x54,0xfd, +0xc9,0xfd,0xe5,0xfc,0x84,0xfb,0x7e,0xfc,0x75,0xfd,0x28,0xfc, +0x6a,0xfb,0x6a,0xfc,0x3f,0xfd,0xfe,0xfd,0x19,0xfe,0xf,0xfd, +0xb,0xfd,0xc4,0xfc,0x74,0xfa,0x92,0xf8,0x3,0xf7,0xe6,0xf5, +0x43,0xf7,0xb7,0xf7,0x26,0xf6,0xc,0xf7,0x49,0xf9,0xc2,0xf9, +0xab,0xf9,0x48,0xf9,0xe,0xf8,0x1f,0xf7,0xa5,0xf6,0x86,0xf5, +0xf8,0xf3,0x4b,0xf3,0x96,0xf3,0x20,0xf4,0x9f,0xf4,0x1c,0xf5, +0x8f,0xf6,0xab,0xf8,0x5d,0xf9,0x1f,0xf9,0xf3,0xf8,0xc2,0xf7, +0x67,0xf6,0xdc,0xf5,0xbf,0xf4,0x14,0xf4,0x8c,0xf5,0x2e,0xf7, +0x26,0xf8,0x1a,0xfa,0x16,0xfc,0xc7,0xfc,0x4a,0xfd,0x31,0xfd, +0xea,0xfb,0x42,0xfb,0x2b,0xfb,0x96,0xfa,0xaf,0xfa,0x2b,0xfc, +0x4c,0xfe,0xaf,0xff,0xed,0xff,0xd6,0x0,0x2c,0x2,0x16,0x2, +0x65,0x1,0x84,0x0,0x84,0xff,0x30,0x0,0xbe,0x1,0x34,0x2, +0x5f,0x2,0x40,0x3,0x53,0x4,0xab,0x4,0x98,0x4,0xc5,0x4, +0x7b,0x4,0x3c,0x4,0xd9,0x4,0xf1,0x4,0x90,0x4,0x67,0x4, +0xfb,0x3,0xe3,0x3,0xa3,0x3,0xac,0x2,0x64,0x2,0x70,0x2, +0xe4,0x2,0x89,0x4,0x1b,0x5,0xc5,0x4,0x44,0x5,0xbe,0x4, +0xb3,0x3,0x79,0x3,0xe4,0x1,0xb7,0xff,0xf1,0xfe,0x81,0xfe, +0xd7,0xfe,0x55,0x0,0xf,0x1,0x65,0x1,0xa0,0x2,0x5f,0x3, +0x94,0x2,0x5,0x1,0x47,0xff,0xd3,0xfd,0x37,0xfd,0x26,0xfd, +0x60,0xfd,0xf8,0xfd,0xbd,0xfe,0xe6,0xff,0x4,0x1,0x27,0x1, +0xf8,0x0,0xbe,0x0,0xb3,0xff,0x6b,0xfe,0xb9,0xfd,0xa3,0xfd, +0x26,0xfe,0xc,0xff,0xe7,0xff,0x20,0x0,0x39,0x0,0x5,0x1, +0x34,0x1,0x8c,0x0,0x69,0x0,0x53,0x0,0x53,0x0,0x72,0x0, +0xea,0xff,0x51,0x0,0xa9,0x1,0x5,0x2,0x2e,0x2,0x47,0x2, +0x51,0x2,0x61,0x3,0xb2,0x3,0xbc,0x2,0x17,0x2,0xc,0x1, +0xfb,0xff,0xe2,0xff,0xcb,0xff,0xb,0x0,0x18,0x1,0x7a,0x2, +0x24,0x4,0x96,0x5,0x84,0x6,0x86,0x6,0x3c,0x5,0x70,0x3, +0x74,0x1,0xf9,0xff,0x89,0xff,0x20,0xff,0xb5,0xff,0x1,0x2, +0xfe,0x3,0x50,0x5,0xd,0x6,0xb2,0x5,0x1e,0x5,0x26,0x4, +0x63,0x2,0xbb,0x0,0xfa,0xff,0x92,0x0,0x94,0x1,0xa7,0x2, +0x8a,0x4,0xfd,0x5,0x49,0x6,0x81,0x5,0xb5,0x3,0xdf,0x2, +0x7,0x2,0xad,0xff,0x46,0xff,0xb,0x1,0x78,0x2,0xb,0x4, +0x29,0x5,0xac,0x5,0x13,0x6,0x3b,0x5,0x28,0x4,0x7d,0x3, +0xb6,0x2,0x95,0x2,0x25,0x2,0xd3,0x1,0x6c,0x2,0xcd,0x1, +0x36,0x1,0x4c,0x1,0x97,0x0,0x33,0x2,0xe7,0x4,0xfc,0x4, +0xeb,0x5,0xb7,0x7,0xa0,0x7,0x61,0x7,0xe2,0x5,0x8d,0x2, +0xf7,0xff,0xa6,0xfd,0x64,0xfc,0xa3,0xfd,0x79,0xff,0xd3,0x1, +0x1c,0x5,0xdc,0x7,0xea,0x9,0x88,0xb,0xca,0xb,0xf1,0x8, +0xa7,0x3,0xf4,0xff,0x12,0xfe,0xf6,0xfb,0x87,0xfb,0x1,0xfd, +0xe1,0xfe,0x2c,0x2,0x40,0x5,0x78,0x6,0x47,0x8,0x4c,0x9, +0xd,0x7,0xc,0x5,0x47,0x4,0x2e,0x2,0x31,0x0,0xf,0xff, +0xf8,0xfd,0x4a,0xff,0xbd,0x1,0x32,0x1,0x7d,0x0,0x7c,0x2, +0x8,0x4,0x13,0x4,0x5e,0x3,0xf0,0x1,0x5c,0x2,0xc6,0x3, +0xda,0x1,0xa1,0xff,0xdc,0x0,0xbc,0x1,0x89,0x0,0x46,0xff, +0xb6,0xfe,0xfa,0xff,0x2,0x1,0xf0,0xfe,0xf1,0xfd,0x85,0x0, +0x1c,0x2,0x78,0x1,0x54,0x1,0xde,0x1,0x94,0x2,0x70,0x3, +0x0,0x2,0xe5,0xfd,0x77,0xfc,0xa5,0xfd,0x1b,0xfb,0xc9,0xf7, +0x5f,0xf9,0x32,0xfc,0xd6,0xfd,0x81,0xff,0xf4,0x0,0x9,0x3, +0xad,0x3,0x70,0x1,0x5d,0x0,0xb,0xff,0x36,0xfb,0x6b,0xf9, +0xaa,0xf8,0x5c,0xf6,0xdd,0xf6,0xbd,0xf9,0x1b,0xfb,0xc1,0xfc, +0x85,0xff,0x37,0x1,0x89,0x1,0x23,0x1,0xb1,0x0,0xf7,0xff, +0x94,0xfd,0xfc,0xfa,0xb4,0xfa,0x94,0xfa,0xa9,0xf8,0xe2,0xf7, +0x21,0xf9,0x29,0xfa,0x79,0xfb,0xc7,0xfd,0x71,0xff,0x27,0x0, +0xfd,0x0,0xa8,0x1,0x72,0x0,0x74,0xfd,0x3d,0xfb,0xc6,0xf9, +0xee,0xf6,0x57,0xf4,0x70,0xf4,0xf6,0xf5,0xc9,0xf7,0x87,0xfa, +0x60,0xfd,0x43,0xff,0xed,0x0,0x21,0x2,0x1a,0x1,0xd1,0xfd, +0x17,0xfa,0x34,0xf7,0x19,0xf5,0xc1,0xf3,0x21,0xf4,0x30,0xf6, +0xaf,0xf8,0x26,0xfb,0x57,0xfd,0xda,0xfe,0x83,0xff,0x2c,0xff, +0x27,0xfe,0x73,0xfc,0x87,0xfa,0xe9,0xf9,0xb0,0xf9,0x64,0xf8, +0x7b,0xf7,0xd7,0xf7,0xe2,0xf8,0xbf,0xf9,0xdd,0xf9,0x90,0xfa, +0xa2,0xfb,0x93,0xfb,0xaa,0xfb,0xe7,0xfb,0x6d,0xfb,0xb0,0xfb, +0xc,0xfc,0x4b,0xfb,0x7a,0xfa,0xe0,0xf9,0x93,0xf9,0x65,0xf9, +0xf0,0xf8,0x46,0xf9,0x14,0xfa,0xcc,0xfa,0x59,0xfc,0xbd,0xfd, +0x55,0xfe,0x4b,0xff,0x37,0x0,0xf9,0xff,0x2c,0xfe,0xe0,0xfb, +0xa7,0xfa,0xef,0xf9,0x12,0xf9,0x95,0xf8,0x5c,0xf9,0x5e,0xfc, +0x6d,0xff,0x95,0x0,0x90,0x1,0xc5,0x1,0x60,0x0,0x20,0xff, +0xb6,0xfc,0x38,0xf9,0x25,0xf8,0xd1,0xf8,0xb2,0xf9,0x92,0xfb, +0xc0,0xfd,0xd1,0xff,0x87,0x1,0x7e,0x1,0x5a,0x0,0xeb,0xfe, +0x73,0xfc,0x42,0xfa,0xad,0xf9,0x98,0xf9,0x5e,0xfa,0xaf,0xfc, +0x55,0xfe,0xbc,0xfe,0x83,0xff,0xe9,0xff,0x1f,0xff,0xe6,0xfd, +0x47,0xfc,0xe8,0xfa,0xa2,0xfa,0x17,0xfb,0x14,0xfc,0x31,0xfd, +0xa5,0xfe,0xf4,0x0,0x12,0x2,0x7,0x1,0xc0,0xff,0xae,0xfe, +0xb7,0xfd,0x0,0xfd,0xed,0xfb,0x94,0xfb,0x78,0xfc,0x48,0xfd, +0x7c,0xfe,0xb7,0xff,0x8,0x0,0x6d,0x1,0x29,0x3,0x90,0x2, +0xe4,0x1,0x62,0x2,0x9c,0x1,0x55,0x0,0x24,0x0,0xa4,0xff, +0x5e,0xfe,0xee,0xfd,0x69,0xff,0x67,0x1,0xd1,0x1,0xf,0x2, +0xd7,0x3,0x6,0x5,0x7f,0x4,0xd1,0x3,0x27,0x3,0x40,0x2, +0xd7,0x1,0x97,0x1,0x16,0x1,0x86,0x1,0x23,0x3,0xea,0x3, +0x5f,0x3,0x78,0x3,0xd,0x4,0xde,0x2,0x93,0x0,0x5,0x0, +0x3d,0x1,0x48,0x2,0xdb,0x2,0xc3,0x3,0x65,0x5,0xcc,0x6, +0xf4,0x5,0xa9,0x3,0x2d,0x2,0x9c,0x0,0x73,0xfe,0x20,0xfd, +0xd0,0xfc,0x42,0xfe,0x6d,0x1,0xd8,0x3,0x2b,0x5,0x3a,0x6, +0x91,0x6,0xa,0x6,0x34,0x4,0xd9,0x1,0x5f,0x0,0xde,0xfe, +0x9,0xfe,0x35,0xff,0x65,0x0,0x23,0x1,0xa1,0x2,0xa9,0x3, +0x76,0x3,0x33,0x3,0xab,0x3,0x26,0x4,0xe9,0x3,0xe3,0x3, +0x67,0x4,0xa0,0x4,0x52,0x4,0xfb,0x2,0xd0,0x0,0x36,0xff, +0x98,0xfe,0xce,0xfe,0x6b,0xff,0x7f,0x0,0x93,0x2,0x95,0x4, +0x18,0x6,0xe7,0x6,0x26,0x5,0x6c,0x2,0x3a,0x1,0x21,0x0, +0x6e,0xff,0x2d,0x0,0x9,0x1,0xad,0x2,0x40,0x5,0x67,0x6, +0xcc,0x5,0x83,0x4,0x13,0x3,0x79,0x1,0x63,0xff,0x28,0xfe, +0xd3,0xfe,0xd0,0xff,0xd4,0x0,0x2,0x3,0xfc,0x4,0x7c,0x5, +0x8d,0x5,0xb1,0x4,0xc,0x2,0x8f,0xff,0x14,0xfe,0x16,0xfd, +0x74,0xfd,0x92,0xfe,0xad,0xff,0xa,0x2,0xc1,0x4,0xb1,0x5, +0xca,0x4,0x21,0x3,0xe9,0x1,0xa6,0x0,0xa7,0xfe,0x4b,0xfd, +0xfa,0xfc,0x99,0xfd,0x55,0xff,0x6b,0x0,0x99,0x0,0x61,0x1, +0xfe,0x1,0xa8,0x1,0xfd,0x0,0x9d,0x0,0x91,0x0,0x13,0x0, +0xeb,0xff,0xe4,0x0,0x37,0x1,0xfc,0x0,0x4f,0x1,0xd0,0x0, +0xf5,0xff,0x40,0x0,0x49,0x0,0x5c,0xff,0x9e,0xfe,0x25,0xfe, +0xcc,0xfd,0x1,0xfe,0xcd,0xfe,0x97,0xff,0xdb,0xff,0x75,0x0, +0x28,0x2,0x1,0x3,0xe4,0x1,0xea,0x0,0x6e,0x0,0x61,0xff, +0x5a,0xfe,0xd3,0xfc,0x2b,0xfb,0xd1,0xfb,0xb0,0xfd,0x1d,0xff, +0xff,0x0,0xc5,0x2,0xf4,0x3,0x52,0x4,0x7a,0x2,0xeb,0xff, +0xfc,0xfd,0xa7,0xfb,0x96,0xfa,0xdb,0xfb,0xa6,0xfd,0xd4,0xff, +0x5e,0x2,0x1b,0x4,0xcc,0x4,0xf3,0x3,0x74,0x1,0xe5,0xfe, +0x9b,0xfd,0x53,0xfd,0x79,0xfd,0x98,0xfe,0xda,0x0,0xf0,0x2, +0xfc,0x3,0xc7,0x3,0x77,0x2,0xd,0x1,0x7f,0xff,0x94,0xfd, +0x14,0xfd,0x6e,0xfe,0x8,0x0,0x2e,0x2,0xfd,0x4,0x21,0x6, +0x35,0x5,0x77,0x3,0xd7,0x0,0x8b,0xfe,0x78,0xfd,0x5e,0xfc, +0x6f,0xfc,0xb3,0xfe,0x32,0x1,0xcd,0x3,0xec,0x5,0x61,0x5, +0xaf,0x3,0x1f,0x2,0xce,0xff,0x9,0xfe,0x37,0xfd,0x7e,0xfc, +0x65,0xfd,0x9,0x0,0xed,0x1,0x63,0x2,0xb0,0x2,0x2c,0x3, +0xc6,0x2,0x19,0x1,0x33,0xff,0x27,0xfe,0x4c,0xfe,0xec,0xfe, +0x83,0xff,0x59,0x0,0xb8,0x0,0x1b,0x0,0x41,0xff,0xe,0xfe, +0xdb,0xfc,0xd5,0xfc,0x48,0xfd,0xd2,0xfd,0x8c,0xff,0xb4,0x1, +0xa5,0x2,0x69,0x2,0x94,0x1,0x48,0x0,0x59,0xfe,0x17,0xfc, +0x7e,0xfa,0xe4,0xf9,0x62,0xfa,0x40,0xfc,0x9a,0xfe,0x88,0x0, +0xf4,0x1,0xa8,0x2,0xff,0x2,0x94,0x2,0x4a,0x0,0xfd,0xfd, +0x50,0xfd,0xae,0xfc,0x29,0xfc,0xe2,0xfc,0xb,0xfe,0x15,0xff, +0x89,0xff,0x48,0xff,0x4d,0xff,0x3f,0xff,0xdd,0xfe,0x34,0xff, +0xf8,0xff,0xa8,0x0,0x5b,0x1,0x3c,0x1,0x69,0x0,0xf0,0xff, +0x54,0xff,0xf1,0xfd,0xc6,0xfc,0x8f,0xfc,0xef,0xfc,0xef,0xfd, +0x5d,0xff,0x9b,0x0,0xc4,0x1,0x56,0x2,0xd7,0x1,0xee,0x0, +0xa5,0xff,0x69,0xfe,0x7c,0xfd,0x59,0xfc,0xbd,0xfc,0x69,0xfe, +0x68,0xfe,0x3c,0xfe,0xb,0xff,0xd,0xff,0x88,0xff,0x2d,0x0, +0x32,0xff,0xff,0xfe,0x76,0x0,0xc8,0x1,0xf6,0x1,0x4c,0x0, +0xa1,0xfe,0x25,0xfe,0xb4,0xfc,0xd1,0xfa,0xf4,0xf9,0xb3,0xf9, +0x1b,0xfb,0xdb,0xfd,0x3,0x0,0x3d,0x2,0x69,0x4,0xd6,0x4, +0x42,0x4,0x66,0x3,0x2d,0x1,0xc9,0xfd,0xd6,0xfa,0xe4,0xf9, +0xca,0xfa,0x36,0xfb,0x8d,0xfb,0xcf,0xfd,0xe2,0xff,0xb,0x1, +0xae,0x2,0x10,0x2,0xe0,0xff,0x37,0x0,0xa5,0x0,0x87,0xff, +0x2b,0xff,0xcd,0xfe,0x6a,0xfe,0xa2,0xfe,0x23,0xfe,0x6a,0xfd, +0x67,0xfc,0x58,0xfb,0x8a,0xfc,0x4c,0xfe,0x94,0xfe,0x40,0xff, +0x76,0x0,0x57,0x1,0xc8,0x1,0x7,0x1,0xb8,0xff,0xb4,0xfe, +0x8a,0xfd,0x41,0xfc,0x2d,0xfb,0x35,0xfb,0x88,0xfc,0x1e,0xfd, +0xbd,0xfc,0x6a,0xfd,0xd9,0xfe,0xae,0xff,0xf2,0xff,0x7a,0xff, +0x2e,0xff,0x67,0x0,0x8b,0x0,0x85,0xfe,0x24,0xfe,0xb5,0xfe, +0x4f,0xfd,0x8,0xfc,0x84,0xfb,0x36,0xfb,0x60,0xfc,0x97,0xfd, +0x96,0xfe,0xb1,0x0,0x4,0x2,0x87,0x2,0xf2,0x2,0x86,0x1, +0x96,0xff,0x89,0xfe,0xa,0xfd,0x26,0xfc,0xe1,0xfc,0xb6,0xfd, +0x6b,0xfe,0x35,0x0,0x71,0x2,0xd6,0x2,0xe9,0x1,0xa3,0x1, +0x24,0x1,0x68,0x0,0x66,0x0,0x1,0x0,0x23,0x0,0xdb,0x1, +0xca,0x2,0x73,0x2,0x1f,0x2,0xa0,0x1,0x2a,0x1,0x66,0x0, +0xc6,0xfe,0x30,0xfe,0x99,0xff,0x47,0x1,0xe4,0x2,0xe1,0x4, +0xdc,0x5,0x8c,0x5,0xb2,0x4,0x7a,0x2,0xf3,0xff,0x2a,0xff, +0x5c,0xfe,0xfe,0xfc,0xb8,0xfd,0x26,0x0,0x13,0x2,0x2a,0x3, +0xed,0x3,0xef,0x4,0x68,0x5,0x1a,0x4,0x5a,0x2,0xdb,0x1, +0xe1,0x1,0x64,0x1,0xd3,0x0,0xb5,0x0,0x9b,0x0,0x60,0x0, +0x59,0x0,0x5d,0x0,0xa7,0x0,0x6b,0x1,0xe8,0x1,0x5e,0x2, +0xa2,0x3,0xb4,0x4,0x80,0x4,0x76,0x3,0x1c,0x2,0xf0,0x0, +0x24,0x0,0x18,0xff,0x66,0xfe,0x5a,0xff,0x4,0x1,0xf1,0x1, +0x49,0x2,0xcc,0x2,0xa3,0x3,0x9a,0x3,0x12,0x2,0x9b,0x0, +0xeb,0xff,0x9f,0xff,0xf0,0xff,0x7e,0x0,0x2d,0x1,0x24,0x2, +0x30,0x2,0x6d,0x1,0xf9,0x0,0x38,0x0,0x49,0xff,0x4,0xff, +0xc,0xff,0xc5,0xff,0x2a,0x1,0x90,0x1,0x63,0x1,0xd0,0x1, +0x28,0x1,0xef,0xfe,0x51,0xfd,0x67,0xfc,0x99,0xfb,0xd2,0xfb, +0xf2,0xfc,0xb5,0xfe,0xe0,0x0,0xaa,0x1,0x1d,0x1,0xa3,0x0, +0x5c,0xff,0xb7,0xfc,0xff,0xf9,0x48,0xf8,0xa6,0xf7,0xb6,0xf7, +0xce,0xf8,0x25,0xfb,0xd4,0xfd,0xcb,0xff,0x34,0x0,0xbc,0xff, +0x26,0xff,0x38,0xfd,0xe2,0xfa,0xd1,0xf9,0x6f,0xf8,0x69,0xf7, +0xa7,0xf8,0xf,0xfa,0xaf,0xfa,0xae,0xfb,0x7e,0xfc,0xca,0xfc, +0xa7,0xfc,0x87,0xfb,0xe7,0xf9,0x49,0xf9,0xe9,0xf9,0x46,0xfa, +0x27,0xfa,0xb7,0xfa,0xa7,0xfb,0x4a,0xfc,0x70,0xfc,0xf6,0xfb, +0x81,0xfb,0xe7,0xfa,0x24,0xfa,0x72,0xfa,0x19,0xfb,0x20,0xfb, +0x97,0xfb,0x87,0xfc,0x38,0xfd,0x9c,0xfd,0x7f,0xfd,0xfb,0xfc, +0x96,0xfc,0x81,0xfc,0x31,0xfc,0xdc,0xfb,0x9d,0xfc,0x7a,0xfd, +0x67,0xfd,0xb0,0xfd,0x4b,0xfe,0x44,0xfe,0x11,0xfe,0x6,0xfe, +0x38,0xfe,0x45,0xfe,0xfc,0xfd,0x1a,0xfe,0x3c,0xfe,0x17,0xfe, +0x27,0xfe,0xf2,0xfd,0xc3,0xfd,0xea,0xfd,0xe2,0xfd,0x43,0xfe, +0xb7,0xfe,0x9f,0xfe,0xe6,0xfe,0x23,0xff,0xdf,0xfe,0xaa,0xfe, +0x21,0xfe,0x85,0xfd,0x49,0xfd,0x47,0xfd,0xbf,0xfd,0x14,0xfe, +0x31,0xfe,0xf3,0xfe,0x80,0xff,0x6d,0xff,0x9c,0xff,0xba,0xff, +0x22,0xff,0x32,0xfe,0xd1,0xfd,0xe4,0xfd,0x91,0xfd,0x8f,0xfd, +0x48,0xfe,0x97,0xfe,0x8e,0xfe,0xde,0xfe,0x6c,0xff,0xd7,0xff, +0xd2,0xff,0xc4,0xff,0xa6,0xff,0x22,0xff,0xd5,0xfe,0x8d,0xfe, +0xe0,0xfd,0x95,0xfd,0xb8,0xfd,0xe9,0xfd,0x64,0xfe,0x13,0xff, +0xa9,0xff,0x24,0x0,0xad,0x0,0xb3,0x0,0xd4,0xff,0x34,0xff, +0xb7,0xfe,0x6b,0xfd,0xd4,0xfc,0x94,0xfd,0x34,0xfe,0xb0,0xfe, +0xad,0xff,0xe9,0x0,0xad,0x1,0x69,0x1,0xa3,0x0,0xc4,0xff, +0xab,0xfe,0xd7,0xfd,0xc1,0xfd,0x59,0xfe,0x4c,0xff,0x4e,0x0, +0x3f,0x1,0x90,0x1,0x68,0x1,0x6a,0x1,0xd5,0x0,0xae,0xff, +0x10,0xff,0xa7,0xfe,0x63,0xfe,0xec,0xfe,0xda,0xff,0xc4,0x0, +0x80,0x1,0xa5,0x1,0x79,0x1,0x59,0x1,0xde,0x0,0xe2,0xff, +0x2e,0xff,0x46,0xff,0xc9,0xff,0x8e,0x0,0x79,0x1,0x11,0x2, +0x58,0x2,0x56,0x2,0xe7,0x1,0x4a,0x1,0x5f,0x0,0x35,0xff, +0xd5,0xfe,0x77,0xff,0x2d,0x0,0xeb,0x0,0x26,0x2,0x65,0x3, +0x3f,0x4,0xc6,0x4,0xae,0x4,0x18,0x4,0x66,0x3,0x83,0x2, +0xde,0x1,0x99,0x1,0x58,0x1,0xa9,0x1,0x4b,0x2,0x7f,0x2, +0xe2,0x2,0x55,0x3,0x3d,0x3,0x22,0x3,0x35,0x3,0x8b,0x3, +0x4b,0x4,0xe3,0x4,0x34,0x5,0x59,0x5,0x22,0x5,0xb9,0x4, +0x5,0x4,0xcf,0x2,0x92,0x1,0x1f,0x1,0xb4,0x1,0x58,0x2, +0x93,0x2,0x49,0x3,0x95,0x4,0x87,0x5,0x9e,0x5,0xff,0x4, +0x39,0x4,0xd2,0x3,0xa4,0x3,0x30,0x3,0xd4,0x2,0x48,0x3, +0xf4,0x3,0x55,0x4,0x9c,0x4,0x73,0x4,0x51,0x4,0xb5,0x4, +0xc1,0x4,0x55,0x4,0x92,0x3,0xa6,0x2,0xb8,0x2,0xb,0x3, +0x90,0x2,0xb0,0x2,0x8f,0x3,0xd2,0x3,0x7e,0x3,0x45,0x3, +0xf0,0x3,0x6e,0x5,0x33,0x6,0x6c,0x5,0x2,0x4,0xf8,0x2, +0xdd,0x1,0x7c,0x0,0x45,0x0,0x54,0x1,0x4f,0x2,0xff,0x2, +0xc5,0x3,0xa1,0x4,0xe7,0x4,0x52,0x4,0xe9,0x3,0x67,0x3, +0x17,0x2,0x27,0x1,0x46,0x1,0x4b,0x2,0x82,0x3,0xa8,0x3, +0x81,0x3,0xd2,0x3,0x85,0x3,0xa8,0x2,0xcd,0x1,0x51,0x1, +0xb1,0x1,0x2,0x2,0x12,0x2,0x5,0x3,0x4c,0x4,0xf8,0x4, +0x4a,0x5,0x8f,0x5,0x80,0x5,0x5f,0x4,0x7c,0x2,0x12,0x1, +0x78,0x0,0x83,0x0,0xca,0x0,0xe4,0x0,0x68,0x1,0xac,0x2, +0xbd,0x3,0x31,0x4,0x7d,0x4,0x2c,0x4,0x28,0x3,0xf5,0x2, +0xe0,0x2,0xf0,0x0,0x3,0xff,0x5c,0xff,0xf5,0x0,0x93,0x1, +0x37,0x0,0xde,0xff,0x7b,0x2,0xe8,0x3,0x2,0x3,0x42,0x3, +0x29,0x4,0x2,0x4,0x1,0x3,0x2a,0x1,0xdf,0xff,0xd5,0xff, +0x3e,0xff,0xc4,0xfd,0x71,0xfd,0x21,0xff,0x8d,0x0,0x31,0x0, +0x24,0x0,0xde,0x0,0x88,0x0,0xad,0xff,0x7e,0xff,0xdd,0xff, +0x7e,0x0,0x47,0x0,0xca,0xfe,0xc5,0xfd,0x42,0xfe,0xab,0xfe, +0x7a,0xfd,0xe5,0xfb,0xde,0xfb,0xce,0xfc,0x8,0xfd,0x3b,0xfd, +0xc5,0xfe,0xef,0xff,0x7b,0xff,0x67,0xff,0x39,0xff,0x1f,0xfd, +0x3f,0xfb,0x75,0xfa,0xd2,0xf8,0x65,0xf7,0x14,0xf8,0xfd,0xf9, +0xba,0xfb,0x39,0xfd,0xa,0xff,0x9b,0x0,0xe2,0x0,0x17,0x0, +0xa4,0xfe,0xc,0xfd,0xe3,0xfb,0x59,0xfa,0x4b,0xf8,0x67,0xf7, +0x12,0xf8,0xe9,0xf8,0x30,0xf9,0x96,0xf9,0xd2,0xfa,0x32,0xfc, +0x80,0xfc,0x7,0xfc,0xfe,0xfb,0xf3,0xfb,0xb2,0xfa,0x40,0xf9, +0x1b,0xf9,0xe8,0xf9,0x9f,0xfa,0xb0,0xfa,0x1a,0xfb,0xad,0xfc, +0x3b,0xfd,0x90,0xfb,0xfa,0xf9,0x82,0xf9,0x0,0xf9,0x10,0xf8, +0x72,0xf7,0x3d,0xf8,0x76,0xfa,0x94,0xfc,0x64,0xfd,0x51,0xfd, +0x51,0xfd,0xf9,0xfc,0x56,0xfb,0x2f,0xf9,0x8c,0xf7,0x8b,0xf6, +0xe3,0xf6,0x98,0xf8,0x5d,0xfa,0x3a,0xfc,0x80,0xfe,0xf7,0xff, +0xe6,0xff,0x4c,0xfe,0x87,0xfb,0x58,0xf9,0x18,0xf8,0x55,0xf6, +0x5,0xf5,0xba,0xf5,0xf5,0xf7,0x1c,0xfb,0xe7,0xfd,0x1c,0xff, +0x90,0xff,0x7b,0xff,0x83,0xfe,0x36,0xfd,0x70,0xfb,0x8c,0xf9, +0x5a,0xf8,0xb6,0xf7,0x63,0xf8,0x27,0xfa,0xfc,0xfa,0x55,0xfb, +0x79,0xfc,0x8f,0xfd,0xf1,0xfd,0x81,0xfd,0xdf,0xfc,0x76,0xfd, +0x5c,0xfe,0xc9,0xfd,0xcf,0xfc,0x9e,0xfc,0x7a,0xfc,0x5b,0xfc, +0x8e,0xfc,0x69,0xfc,0x30,0xfc,0x84,0xfc,0xcc,0xfc,0xb,0xfd, +0xb8,0xfd,0x38,0xfe,0x3b,0xfe,0x24,0xfe,0x60,0xfe,0x1c,0xff, +0x6a,0xff,0xcf,0xfe,0x68,0xfe,0x7f,0xfe,0x2c,0xfe,0x49,0xfd, +0x84,0xfc,0x34,0xfc,0x48,0xfc,0x10,0xfd,0x73,0xfe,0xa8,0xff, +0xe5,0x0,0x7d,0x2,0x9d,0x3,0xdf,0x3,0x2f,0x3,0x2b,0x1, +0x63,0xfe,0x1c,0xfc,0xd,0xfb,0x3f,0xfb,0x28,0xfc,0x10,0xfd, +0x23,0xfe,0xe,0x0,0x1d,0x2,0x5c,0x3,0xc,0x4,0xf4,0x3, +0xfe,0x2,0xf9,0x1,0xa2,0x0,0x2d,0xff,0xb5,0xfe,0x9b,0xfe, +0x60,0xfe,0x3e,0xfe,0xf7,0xfd,0x7f,0xfe,0xbf,0xff,0xdb,0xff, +0xbd,0xff,0x6,0x1,0x99,0x2,0x72,0x3,0x74,0x3,0xc4,0x2, +0x34,0x2,0x9b,0x1,0x47,0x0,0xe3,0xfe,0xff,0xfd,0x87,0xfd, +0xda,0xfd,0xa7,0xfe,0x3f,0xff,0x44,0x0,0xff,0x1,0x99,0x3, +0x97,0x4,0xa0,0x4,0xdc,0x3,0x2f,0x3,0x70,0x2,0x5f,0x1, +0x99,0x0,0x10,0x0,0xbc,0xff,0xdb,0xff,0xdb,0xff,0xab,0xff, +0xf1,0xff,0xb1,0x0,0x53,0x1,0x8d,0x1,0xa6,0x1,0x96,0x1, +0x92,0x1,0x4e,0x2,0xac,0x2,0xaf,0x1,0x4,0x1,0x29,0x1, +0xec,0x0,0x60,0x0,0x9d,0xff,0xbb,0xfe,0xa8,0xfe,0x5c,0xff, +0xdf,0xff,0xb7,0xff,0x8a,0xff,0x32,0x0,0x8,0x1,0x5f,0x1, +0xed,0x1,0xa5,0x2,0xc2,0x2,0x93,0x2,0xe1,0x2,0x6f,0x3, +0x1f,0x3,0xfe,0x1,0x63,0x1,0x4f,0x1,0xc6,0x0,0xf3,0xff, +0x5e,0xff,0x2c,0xff,0x9c,0xff,0x77,0x0,0x61,0x1,0x8c,0x2, +0x89,0x3,0xb9,0x3,0xca,0x3,0xf,0x4,0xc0,0x3,0xd4,0x2, +0xb7,0x1,0x78,0x0,0x5c,0xff,0xbe,0xfe,0xc1,0xfe,0xe3,0xfe, +0xb4,0xfe,0xe2,0xfe,0x9b,0xff,0x3b,0x0,0xf0,0x0,0xa4,0x1, +0xf7,0x1,0x49,0x2,0x89,0x2,0x8b,0x2,0xb6,0x2,0x13,0x3, +0x9a,0x3,0xeb,0x3,0x34,0x3,0x1e,0x2,0x91,0x1,0xae,0x0, +0x2f,0xff,0x40,0xfe,0xe2,0xfd,0x63,0xfd,0x82,0xfd,0x22,0xff, +0x9a,0x1,0xde,0x3,0x67,0x5,0x17,0x6,0xc,0x6,0xc,0x5, +0xd,0x3,0xaf,0x0,0x4c,0xfe,0x34,0xfc,0x51,0xfb,0x9,0xfc, +0xa5,0xfd,0x2e,0xff,0x5f,0x0,0x95,0x1,0x81,0x2,0x1c,0x2, +0xb4,0x0,0xe3,0xff,0x4,0x0,0x21,0x0,0x22,0x0,0xb3,0x0, +0xdd,0x1,0x2,0x3,0xd0,0x3,0x35,0x4,0x88,0x3,0x9c,0x1, +0xb8,0xff,0x5a,0xfe,0x3b,0xfd,0xc,0xfd,0x90,0xfd,0x2c,0xfe, +0xd0,0xff,0x26,0x2,0xc6,0x3,0xee,0x4,0x8a,0x5,0x3,0x5, +0xf,0x4,0xd4,0x2,0xcc,0x0,0xc4,0xfe,0xcd,0xfd,0xb1,0xfd, +0x9f,0xfd,0x75,0xfd,0xe4,0xfd,0x24,0xff,0x98,0x0,0xcd,0x1, +0xbb,0x2,0x3a,0x3,0x3a,0x3,0xf8,0x2,0x85,0x2,0xce,0x1, +0x2,0x1,0x2e,0x0,0x4b,0xff,0xf1,0xfe,0x6f,0xff,0xa8,0xff, +0x61,0xff,0x68,0x0,0x8d,0x2,0x2b,0x3,0x58,0x2,0x21,0x2, +0x58,0x2,0x1e,0x2,0xad,0x1,0x6b,0x1,0xb4,0x1,0x30,0x2, +0x37,0x2,0x35,0x2,0x80,0x2,0x71,0x2,0xbb,0x1,0xb1,0x0, +0xb0,0xff,0xfb,0xfe,0x44,0xfe,0x7f,0xfd,0xcb,0xfd,0x1a,0xff, +0xbf,0xff,0x30,0x0,0xb7,0x1,0xf0,0x2,0x1a,0x3,0x51,0x3, +0x39,0x3,0x49,0x2,0x3d,0x1,0x5f,0x0,0x9e,0xff,0xdd,0xfe, +0x4b,0xfe,0xac,0xfe,0x92,0xff,0x4d,0x0,0x57,0x1,0xec,0x1, +0x62,0x1,0x48,0x1,0xc3,0x1,0x68,0x1,0xd1,0x0,0xa5,0x0, +0x3a,0x0,0xb8,0xff,0xbf,0xff,0x73,0x0,0x3f,0x1,0x6,0x1, +0x71,0x0,0xd1,0x0,0x12,0x1,0x99,0x0,0x8d,0x0,0x83,0x0, +0xb5,0xff,0x15,0xff,0xa,0xff,0x91,0xfe,0xa2,0xfd,0xb1,0xfd, +0xaf,0xfe,0xfd,0xfe,0x11,0xff,0x36,0x0,0x85,0x1,0xc5,0x1, +0x19,0x1,0x8e,0x0,0xa0,0x0,0x11,0x0,0x86,0xfe,0x65,0xfd, +0xd7,0xfc,0x6b,0xfc,0xa8,0xfc,0xad,0xfd,0xc7,0xfe,0x5c,0xff, +0x95,0xff,0x7,0x0,0x9b,0x0,0xb1,0x0,0xd3,0xff,0x51,0xfe, +0x4b,0xfd,0x33,0xfd,0x74,0xfd,0x7f,0xfd,0x7e,0xfd,0x21,0xfe, +0xf9,0xfe,0xac,0xfe,0xa0,0xfd,0x5b,0xfd,0xb2,0xfd,0x7e,0xfd, +0x68,0xfd,0xa6,0xfe,0xa4,0xff,0xb1,0xfe,0xc3,0xfd,0x5e,0xfe, +0x87,0xfe,0x38,0xfd,0x75,0xfc,0xc,0xfd,0x70,0xfd,0xd3,0xfd, +0x3c,0xff,0x52,0x0,0xae,0x0,0x68,0x1,0xa0,0x1,0xc3,0x0, +0xad,0xff,0x88,0xfe,0x90,0xfd,0xa3,0xfc,0x75,0xfb,0xed,0xfa, +0x34,0xfb,0xf7,0xfb,0x75,0xfd,0xbb,0xfe,0x36,0xff,0xba,0xff, +0x2f,0x0,0x41,0x0,0x15,0x0,0x63,0xff,0x9c,0xfe,0x8a,0xfe, +0xdc,0xfe,0xe8,0xfe,0x52,0xfe,0x90,0xfd,0xa3,0xfd,0xca,0xfd, +0xe3,0xfc,0x5d,0xfc,0x36,0xfd,0xef,0xfd,0x19,0xfe,0x75,0xfe, +0xbc,0xfe,0xdf,0xfe,0x34,0xff,0x9f,0xff,0xff,0xff,0xe0,0xff, +0xd,0xff,0x27,0xfe,0x43,0xfd,0x10,0xfc,0x4a,0xfb,0xb4,0xfb, +0x5a,0xfc,0x22,0xfc,0x52,0xfc,0x1,0xfe,0x96,0xff,0xf,0x0, +0x38,0x0,0x7f,0x0,0x8e,0x0,0xc0,0xff,0x1a,0xfe,0x50,0xfc, +0xb9,0xfa,0x43,0xfa,0x52,0xfb,0x77,0xfc,0x94,0xfd,0x87,0xff, +0x65,0x1,0x46,0x2,0x46,0x2,0x41,0x1,0x89,0xff,0xce,0xfd, +0x74,0xfc,0x14,0xfc,0x32,0xfc,0x7f,0xfb,0x68,0xfb,0x91,0xfd, +0x60,0xff,0x96,0xff,0x7e,0x0,0x84,0x1,0x31,0x1,0x94,0x0, +0x27,0x0,0x2b,0x0,0x64,0x0,0xe1,0xff,0xf8,0xff,0x6e,0x0, +0x11,0xff,0xc4,0xfd,0xd0,0xfd,0x21,0xfd,0x6b,0xfc,0xb0,0xfc, +0x89,0xfc,0x53,0xfc,0x74,0xfd,0xbb,0xff,0xcc,0x1,0x9d,0x2, +0x6,0x3,0x9e,0x3,0x14,0x3,0xaf,0x1,0xf3,0x0,0xf9,0xff, +0xd5,0xfd,0x54,0xfc,0xc2,0xfc,0xfc,0xfd,0xbc,0xfe,0x48,0xff, +0xaa,0x0,0x4f,0x2,0x2a,0x2,0x5c,0x0,0x5e,0xff,0x8,0x0, +0x87,0x0,0x9f,0xff,0xfa,0xfe,0xd2,0xff,0xcc,0x0,0xac,0x1, +0xd0,0x2,0x16,0x3,0x1e,0x3,0x63,0x3,0x9a,0x1,0x64,0xfe, +0xb,0xfd,0x28,0xfd,0xae,0xfc,0x52,0xfc,0xeb,0xfd,0xed,0x0, +0xf2,0x2,0xa4,0x3,0x78,0x4,0x39,0x5,0xfd,0x4,0x68,0x3, +0x72,0x0,0x29,0xfe,0x26,0xfe,0x14,0xfe,0x1b,0xfd,0xd3,0xfd, +0xca,0xff,0x9d,0x0,0xb8,0x0,0x15,0x1,0x5f,0x1,0xe7,0x0, +0xff,0xff,0xfa,0xff,0xfe,0xff,0x71,0xff,0xec,0x0,0xb4,0x3, +0x7b,0x4,0x8f,0x4,0x66,0x5,0xfb,0x4,0x6a,0x2,0x50,0xff, +0x5c,0xfd,0xe4,0xfb,0x31,0xfa,0x1e,0xfa,0x81,0xfb,0xdf,0xfc, +0xbe,0xff,0xc2,0x3,0x2a,0x6,0xd5,0x6,0x2a,0x6,0x87,0x4, +0x57,0x3,0xae,0x1,0x53,0xfe,0xa0,0xfb,0x22,0xfb,0x80,0xfb, +0x8d,0xfc,0x66,0xfe,0xc9,0xff,0x5f,0x1,0xd4,0x3,0xfd,0x4, +0x56,0x4,0x69,0x3,0x9b,0x2,0x22,0x2,0x49,0x1,0x66,0xff, +0x69,0xfe,0x9,0xff,0x9a,0xff,0xbb,0xff,0xf8,0xff,0x75,0x0, +0xa9,0x0,0x1d,0x0,0x7,0x0,0x1c,0x1,0xf9,0x1,0xb5,0x1, +0x7,0x1,0x72,0x1,0xcf,0x2,0x1f,0x3,0xcb,0x2,0x4b,0x3, +0x19,0x3,0x6b,0x1,0x20,0x0,0x64,0xff,0x1,0xfe,0x19,0xfd, +0x4d,0xfe,0xf,0x0,0x63,0x0,0xac,0x0,0x62,0x2,0xe1,0x3, +0x6,0x4,0x11,0x4,0xf6,0x3,0x5f,0x2,0x74,0x0,0xd4,0xff, +0x8,0xff,0x59,0xfd,0x47,0xfd,0x28,0xff,0x1e,0x0,0x2f,0x0, +0xd5,0x1,0x1b,0x4,0x23,0x4,0xac,0x2,0x6c,0x2,0xa1,0x2, +0xa3,0x0,0x2e,0xfe,0xa0,0xfe,0xd7,0xff,0x8f,0xff,0x6f,0x0, +0xd1,0x2,0xbe,0x3,0xd0,0x2,0xc2,0x1,0xb9,0x1,0xf8,0x0, +0xad,0xfd,0xd6,0xfb,0xe9,0xfd,0x75,0xff,0x9e,0xff,0x47,0x1, +0x2d,0x3,0x55,0x4,0x65,0x5,0xaf,0x4,0x81,0x2,0x6f,0x1, +0x3,0x1,0x16,0x0,0xfc,0xfe,0xf6,0xfd,0x83,0xfe,0xf0,0x0, +0x80,0x2,0x4b,0x3,0xce,0x4,0x17,0x5,0x19,0x4,0x47,0x3, +0x51,0x1,0x47,0xff,0x69,0xff,0x32,0x0,0xc2,0x0,0x82,0x1, +0xea,0x1,0x7c,0x2,0x7,0x3,0x1b,0x2,0x76,0x0,0xd2,0xff, +0x9,0x0,0xa5,0xff,0xdc,0xfe,0xe0,0xff,0x2e,0x2,0xc7,0x2, +0xff,0x1,0x94,0x2,0x1e,0x4,0x9a,0x3,0x1c,0x1,0xcd,0xff, +0xbc,0xff,0xca,0xfe,0x79,0xfd,0xea,0xfc,0xfb,0xfc,0x7b,0xfd, +0x27,0xfe,0x3,0xff,0xf9,0xff,0x6a,0x0,0x71,0x0,0x46,0x0, +0x30,0x0,0xa7,0x0,0x28,0x0,0xeb,0xfd,0xd9,0xfc,0xaa,0xfd, +0x1c,0xfd,0x52,0xfb,0xaa,0xfb,0x89,0xfd,0x2,0xfe,0xf0,0xfd, +0x25,0xff,0x10,0x0,0x5e,0xff,0x39,0xfe,0x1d,0xfd,0xa0,0xfb, +0x25,0xfa,0x4c,0xf9,0xa8,0xf9,0x19,0xfb,0x53,0xfc,0xfb,0xfc, +0xd2,0xfd,0xaa,0xfe,0x6,0xff,0xda,0xfe,0x2c,0xfe,0x6a,0xfd, +0xa5,0xfc,0x70,0xfb,0x2a,0xfa,0x96,0xf9,0xcf,0xf9,0x50,0xfa, +0x6c,0xfa,0x91,0xfa,0xee,0xfb,0xc0,0xfd,0xcf,0xfd,0xf3,0xfc, +0xe,0xfe,0x5f,0xff,0x8b,0xfd,0x5c,0xfb,0x99,0xfb,0x60,0xfb, +0xc3,0xf9,0x4f,0xf9,0x3f,0xfa,0x6a,0xfb,0x84,0xfc,0xbf,0xfd, +0x29,0xff,0xdb,0xff,0x69,0xff,0x86,0xfe,0x6e,0xfd,0x7b,0xfc, +0xf9,0xfb,0x5a,0xfb,0x3e,0xfb,0x89,0xfc,0xeb,0xfd,0x6d,0xfe, +0x28,0xff,0x3a,0x0,0x38,0x0,0x5,0xff,0x8,0xfe,0xd6,0xfd, +0x6c,0xfd,0x10,0xfc,0x30,0xfb,0xd,0xfc,0x49,0xfd,0xe4,0xfd, +0x76,0xfe,0xb,0xff,0xe7,0xff,0xee,0x0,0xad,0x0,0x7e,0xff, +0x17,0xff,0x4d,0xff,0x29,0xff,0x84,0xfe,0x28,0xfe,0x73,0xfe, +0x44,0xfe,0xa5,0xfd,0xd2,0xfd,0x3f,0xfe,0x38,0xfe,0x5d,0xfe, +0x1,0xff,0xc9,0xff,0xb,0x0,0xfc,0xff,0x2a,0x0,0x7,0x0, +0x2,0x0,0xc1,0x0,0x96,0x0,0x77,0xff,0x6c,0xff,0xc8,0xff, +0x36,0xff,0x85,0xfe,0x4a,0xfe,0x37,0xfe,0x59,0xfe,0xe4,0xfe, +0x99,0xff,0x2c,0x0,0xfa,0x0,0xdd,0x1,0x1e,0x2,0x24,0x2, +0x54,0x2,0xb,0x2,0x25,0x1,0xf3,0xff,0x1,0xff,0xf3,0xfe, +0x24,0xff,0xc7,0xfe,0x8f,0xfe,0x27,0xff,0x0,0x0,0x7c,0x0, +0xc0,0x0,0x19,0x1,0x6b,0x1,0xbd,0x1,0x20,0x2,0x25,0x2, +0xb1,0x1,0xfd,0x0,0x2f,0x0,0xcd,0xff,0xcc,0xff,0x65,0xff, +0xc9,0xfe,0xb0,0xfe,0xc,0xff,0x5e,0xff,0x7f,0xff,0xe4,0xff, +0x69,0x0,0x3b,0x0,0xe5,0xff,0x13,0x0,0x17,0x0,0x20,0x0, +0xbf,0x0,0x53,0x1,0x76,0x1,0x38,0x1,0x4,0x1,0x39,0x1, +0xbb,0x0,0x78,0xff,0x41,0xff,0x93,0xff,0x26,0xff,0x30,0xff, +0x32,0x0,0xd0,0x0,0x91,0x0,0x51,0x0,0xb3,0x0,0xf8,0x0, +0x78,0x0,0x3f,0x0,0x21,0x1,0x47,0x2,0x93,0x2,0x3,0x2, +0x6c,0x1,0xe,0x1,0xa8,0x0,0x6f,0x0,0x79,0x0,0x7e,0x0, +0x73,0x0,0xa1,0x0,0x89,0x1,0xf5,0x2,0xe1,0x3,0xb,0x4, +0xff,0x3,0xd8,0x3,0x1f,0x3,0xbe,0x1,0x5c,0x0,0x80,0xff, +0x2f,0xff,0x29,0xff,0x8f,0xff,0x28,0x1,0x89,0x3,0x8,0x5, +0x8c,0x5,0xfe,0x5,0x4c,0x6,0xd7,0x5,0x5f,0x4,0xa1,0x2, +0x0,0x1,0x4f,0xff,0x91,0xfe,0xa2,0xfe,0xfa,0xfd,0x15,0xfe, +0x8b,0x0,0x6f,0x3,0x51,0x5,0xcd,0x6,0xb4,0x7,0xd1,0x6, +0x6c,0x4,0x84,0x2,0x41,0x1,0xa9,0xff,0x91,0xfe,0x41,0xfe, +0x89,0xfe,0x7b,0x0,0x44,0x3,0xa5,0x4,0x4e,0x4,0x4f,0x3, +0xd0,0x2,0x97,0x2,0x79,0x1,0x11,0x0,0xad,0xff,0x68,0x0, +0x99,0x1,0x88,0x2,0xc4,0x3,0x40,0x5,0x2,0x5,0x39,0x4, +0x89,0x5,0xb8,0x5,0xc5,0x1,0x74,0xfe,0x94,0xff,0x5b,0x1, +0x5a,0x0,0x1e,0xff,0xa4,0x0,0x28,0x3,0xef,0x3,0xc5,0x3, +0x9c,0x3,0x45,0x2,0xab,0x0,0x4e,0x1,0x62,0x3,0x15,0x4, +0xde,0x2,0x9d,0x1,0xb5,0x1,0xc1,0x2,0x47,0x3,0xdc,0x1, +0xa9,0xff,0xc7,0xff,0xc5,0x1,0x45,0x2,0xb8,0x0,0xc2,0xff, +0xd7,0x1,0xfa,0x5,0x62,0x8,0xd7,0x7,0x9a,0x6,0x53,0x6, +0xf4,0x5,0x40,0x3,0xce,0xfe,0x4d,0xfb,0x3d,0xf9,0x91,0xf8, +0xc2,0xf9,0x95,0xfb,0x72,0xfd,0x7f,0x0,0xf0,0x4,0xd4,0x9, +0x30,0xd,0x94,0xc,0x48,0x8,0x7e,0x3,0xf6,0xff,0xa9,0xfc, +0x28,0xf9,0xf8,0xf6,0xbd,0xf7,0x68,0xfb,0x5a,0xff,0xb5,0x1, +0x97,0x3,0x2d,0x5,0x76,0x5,0x2a,0x5,0xf9,0x3,0x9e,0x0, +0xdd,0xfc,0x3b,0xfb,0x20,0xfb,0x7b,0xfb,0x6,0xfd,0xd,0xff, +0x37,0x0,0xa,0x2,0x51,0x4,0x3,0x4,0xda,0x1,0xef,0xff, +0xda,0xfd,0x8,0xfc,0xcd,0xfa,0x82,0xf9,0x9,0xf9,0x3f,0xfa, +0x97,0xfc,0xda,0xfe,0x42,0x0,0x75,0x1,0x2c,0x2,0xb5,0x1, +0x91,0x1,0x37,0x1,0x28,0xfe,0x9a,0xfa,0xda,0xf9,0x25,0xfa, +0xa8,0xf9,0x4,0xfa,0xa2,0xfb,0x2b,0xfd,0xdf,0xfe,0x16,0x1, +0x17,0x2,0x89,0x0,0x14,0xfe,0x25,0xfd,0xe3,0xfc,0xa1,0xfb, +0xcd,0xfa,0x32,0xfb,0xad,0xfb,0xb6,0xfc,0x58,0xfe,0xed,0xfe, +0x79,0xfe,0x5b,0xfe,0xd6,0xfe,0x9e,0xfe,0xc5,0xfc,0xf7,0xfa, +0xf1,0xfa,0x9a,0xfb,0x81,0xfb,0x32,0xfb,0xc4,0xfb,0xb8,0xfc, +0xf3,0xfc,0x49,0xfd,0xff,0xfe,0xd7,0x0,0x2c,0x1,0xa5,0x0, +0x6,0x0,0xa5,0xfe,0xcf,0xfc,0xbd,0xfb,0x48,0xfb,0xab,0xfa, +0xd2,0xf9,0xbf,0xf9,0x41,0xfb,0xbf,0xfc,0x42,0xfd,0xa0,0xfe, +0xd0,0x0,0xc9,0x1,0x40,0x1,0x17,0x0,0xec,0xfe,0x8c,0xfd, +0xf5,0xfb,0x34,0xfb,0x2,0xfb,0x8c,0xfa,0xdc,0xfa,0x71,0xfc, +0x5d,0xfe,0xab,0xff,0xaf,0xff,0x1,0xff,0x2d,0xff,0x4a,0x0, +0xb,0x0,0x6e,0xfd,0xae,0xfb,0x45,0xfc,0x35,0xfc,0x72,0xfb, +0x9c,0xfc,0xc6,0xfe,0xf1,0xff,0x8e,0x0,0x46,0x1,0x1d,0x1, +0x4f,0xff,0x5,0xfd,0xab,0xfb,0x74,0xfb,0x9a,0xfb,0x2a,0xfb, +0xcd,0xfa,0x99,0xfb,0x1d,0xfd,0xe9,0xfe,0xbb,0x0,0x8,0x2, +0xe0,0x2,0x8,0x3,0x2f,0x2,0x9c,0x0,0x8a,0xfe,0x6b,0xfc, +0x6b,0xfa,0xdf,0xf8,0x5,0xf9,0x91,0xfa,0x2f,0xfc,0xe0,0xfd, +0xce,0xff,0x2a,0x2,0x42,0x4,0xa,0x4,0x7a,0x2,0x52,0x2, +0x2f,0x2,0xc3,0xff,0xd4,0xfc,0x36,0xfb,0x9e,0xf9,0xf2,0xf7, +0xa6,0xf8,0x12,0xfc,0xf4,0xff,0xc9,0x2,0x6d,0x4,0x3a,0x5, +0x3a,0x5,0x34,0x4,0x74,0x2,0x74,0x0,0xa5,0xfe,0x1c,0xfd, +0x64,0xfb,0x69,0xfa,0xe7,0xfb,0x1,0xff,0xa5,0x1,0xcf,0x3, +0xd0,0x5,0x7a,0x6,0x79,0x5,0xa4,0x3,0xfb,0x0,0x79,0xfe, +0xa5,0xfd,0x12,0xfd,0xd2,0xfb,0xed,0xfb,0x92,0xfd,0x21,0xff, +0xfe,0x0,0xc7,0x3,0xc2,0x5,0x7f,0x5,0xe5,0x4,0x67,0x5, +0x6,0x5,0xe,0x3,0xf,0x1,0x46,0xff,0x26,0xfe,0x63,0xfe, +0x65,0xfe,0x74,0xfd,0x99,0xfd,0x88,0xff,0x8a,0x1,0xc6,0x2, +0x87,0x3,0xcb,0x3,0x3b,0x4,0x7c,0x5,0xfd,0x5,0x6a,0x4, +0x57,0x2,0x35,0x1,0xf,0x0,0x80,0xfe,0xc5,0xfd,0xe,0xfe, +0xf5,0xfe,0xd8,0x0,0x32,0x3,0x3,0x5,0xf8,0x5,0xbe,0x5, +0xaf,0x4,0x58,0x3,0x71,0x1,0x2a,0xff,0x20,0xfd,0x34,0xfc, +0xb,0xfd,0xcf,0xfe,0x5c,0x1,0x3,0x5,0x5b,0x8,0xa,0xb, +0x17,0xd,0x38,0xc,0x2c,0x8,0x7f,0x3,0x9,0xff,0x9b,0xfa, +0x71,0xf7,0xfd,0xf6,0xef,0xf8,0x21,0xfc,0x70,0x0,0x8f,0x5, +0x8e,0x9,0xad,0xa,0xaa,0x9,0x3,0x8,0x1e,0x5,0xdd,0x0, +0x53,0xfd,0x76,0xfb,0x52,0xfb,0x2b,0xfd,0xc,0x0,0xc9,0x2, +0xc5,0x4,0xe4,0x5,0x4e,0x6,0x3,0x5,0x2a,0x2,0x4a,0xff, +0x2c,0xfc,0xc3,0xf9,0x2,0xfa,0xc7,0xfb,0x3b,0xfe,0xc0,0x1, +0xe6,0x4,0x86,0x6,0xf7,0x6,0xb8,0x6,0x89,0x5,0x9c,0x2, +0x3,0xff,0x9c,0xfc,0x47,0xfb,0x8f,0xfa,0x78,0xfa,0x49,0xfb, +0x6c,0xfd,0xcf,0xff,0x33,0x1,0x2b,0x2,0x10,0x3,0xda,0x2, +0x1,0x1,0xe9,0xfe,0x2,0xfe,0xaf,0xfd,0x27,0xfd,0xe7,0xfc, +0x6a,0xfd,0x64,0xfe,0x2d,0xff,0xff,0xff,0x6d,0x1,0x8e,0x2, +0xf5,0x1,0xed,0xff,0xab,0xfe,0x12,0xff,0xdc,0xfe,0x8a,0xfd, +0xde,0xfd,0x1f,0x0,0xd,0x2,0xd6,0x2,0xe2,0x2,0x55,0x2, +0xf3,0x0,0x26,0xff,0x84,0xfd,0x1a,0xfc,0xbc,0xfb,0xb1,0xfc, +0xc4,0xfd,0x16,0xff,0x19,0x1,0x9d,0x2,0x9a,0x2,0x42,0x1, +0xbd,0xff,0x90,0xfe,0x34,0xfd,0x84,0xfc,0x9a,0xfd,0xc6,0xff, +0x1c,0x2,0xf2,0x3,0x62,0x5,0xe3,0x6,0x29,0x7,0xec,0x4, +0xb5,0x0,0xdf,0xfb,0x43,0xf8,0x8e,0xf6,0xc5,0xf5,0x16,0xf6, +0x93,0xf8,0xf1,0xfc,0xfb,0x1,0xaf,0x6,0xd,0xa,0x14,0xb, +0x38,0xa,0xb6,0x8,0xe5,0x5,0xe3,0x0,0xc2,0xfb,0x2,0xf9, +0x58,0xf8,0x92,0xf8,0x7,0xfa,0x29,0xfd,0xcb,0x0,0x43,0x3, +0x35,0x4,0x31,0x4,0x52,0x3,0x94,0x1,0x59,0xff,0xbd,0xfc, +0x98,0xfa,0x20,0xfa,0xda,0xfa,0x88,0xfc,0x70,0xff,0xd9,0x1, +0xe6,0x2,0xff,0x3,0x12,0x5,0xaa,0x4,0x88,0x2,0x25,0x0, +0x1,0xff,0xcb,0xfe,0xec,0xfe,0x6e,0xff,0x1a,0x0,0xeb,0x0, +0x6b,0x1,0x5a,0x1,0x61,0x1,0x6d,0x0,0x27,0xfe,0x1a,0xfd, +0x68,0xfd,0x78,0xfd,0x16,0xfe,0xfc,0xff,0x89,0x2,0xad,0x4, +0x89,0x5,0x25,0x6,0x24,0x7,0x89,0x6,0x96,0x3,0x24,0x0, +0x16,0xfd,0x34,0xfa,0x48,0xf8,0xf,0xf8,0x37,0xf9,0xba,0xfb, +0x29,0xff,0x1b,0x2,0x23,0x4,0x31,0x5,0xcd,0x4,0xa6,0x3, +0x1e,0x2,0x71,0xff,0x7c,0xfc,0xeb,0xfa,0xe7,0xfa,0x7a,0xfc, +0x56,0xff,0xcb,0x1,0x62,0x3,0xac,0x4,0x88,0x4,0x3b,0x2, +0xc1,0xfe,0x1f,0xfb,0xe2,0xf8,0x55,0xf8,0xbd,0xf7,0xce,0xf7, +0x62,0xfa,0xbc,0xfe,0x63,0x3,0x88,0x6,0x38,0x7,0x9b,0x6, +0x6a,0x4,0x32,0x0,0xfe,0xfb,0x98,0xf8,0xf2,0xf5,0x94,0xf5, +0x9c,0xf7,0x48,0xfa,0xd4,0xfc,0xde,0xff,0x5d,0x3,0x79,0x5, +0x6,0x5,0xbd,0x2,0x40,0xff,0x20,0xfb,0x83,0xf7,0x86,0xf5, +0xda,0xf5,0xff,0xf7,0xe2,0xfa,0x66,0xfe,0x6c,0x2,0xc0,0x5, +0x73,0x7,0xbc,0x7,0xa2,0x6,0xcd,0x3,0xa8,0xff,0xb,0xfb, +0x43,0xf7,0xdc,0xf5,0x85,0xf6,0x62,0xf8,0x9e,0xfb,0x4f,0xff, +0x3f,0x2,0x2d,0x4,0x2,0x4,0x77,0x1,0xf,0xfe,0x81,0xfa, +0x65,0xf7,0x5,0xf6,0x5c,0xf6,0xba,0xf7,0x7e,0xfa,0x6,0xff, +0x24,0x4,0xa5,0x7,0x77,0x8,0xbb,0x7,0x5c,0x6,0x34,0x3, +0x25,0xfe,0xbe,0xf9,0x3e,0xf7,0xec,0xf5,0xe4,0xf5,0xa,0xf7, +0xab,0xf8,0xd3,0xfa,0x21,0xfd,0xe6,0xfe,0x79,0x0,0xc8,0x1, +0x23,0x2,0x7,0x2,0x1d,0x2,0xc9,0x1,0x32,0x1,0x6e,0x1, +0xb4,0x1,0x23,0x1,0xfd,0x0,0xf9,0x0,0x1b,0xff,0xf8,0xfb, +0x8b,0xf9,0x3f,0xf8,0x91,0xf7,0x74,0xf7,0x97,0xf8,0x2d,0xfb, +0x6b,0xfe,0xc7,0x1,0xbf,0x4,0x7a,0x6,0x12,0x7,0x41,0x7, +0xce,0x6,0x17,0x5,0x91,0x2,0x4a,0x0,0x6e,0xfe,0xde,0xfc, +0xe9,0xfb,0x6c,0xfb,0xdd,0xfa,0x69,0xfa,0xb1,0xfa,0xf4,0xfb, +0xc9,0xfd,0x63,0xff,0x71,0x0,0x9d,0x1,0x52,0x3,0xb8,0x4, +0x36,0x5,0xaa,0x5,0xa8,0x6,0x1d,0x7,0xa,0x6,0x17,0x4, +0x24,0x2,0x40,0x0,0xe3,0xfe,0x56,0xfe,0xca,0xfd,0x12,0xfd, +0x6b,0xfc,0x74,0xfb,0xce,0xfa,0x58,0xfb,0x76,0xfc,0x97,0xfd, +0xed,0xfe,0xe8,0x0,0xa7,0x3,0x20,0x6,0xce,0x7,0x52,0x9, +0xe7,0x9,0xcd,0x8,0xee,0x6,0x43,0x4,0xcf,0x0,0x54,0xfe, +0xe,0xfd,0xee,0xfb,0x9a,0xfb,0x47,0xfc,0xba,0xfc,0x2b,0xfd, +0x5a,0xfe,0x62,0xff,0xc0,0xff,0x6b,0x0,0x9d,0x1,0x6d,0x2, +0xac,0x2,0x37,0x3,0x5f,0x4,0x1e,0x5,0xe5,0x4,0x77,0x4, +0xc4,0x3,0x4,0x2,0xfa,0xff,0x8c,0xfe,0x93,0xfd,0xfa,0xfc, +0x57,0xfc,0xbd,0xfb,0x5b,0xfc,0x78,0xfd,0xbd,0xfd,0xba,0xfe, +0x6f,0x1,0xf9,0x3,0x30,0x5,0x73,0x5,0x46,0x5,0x32,0x5, +0xd4,0x4,0x88,0x3,0xf5,0x1,0x57,0x0,0x41,0xfe,0x56,0xfc, +0xc4,0xfa,0x47,0xf9,0x75,0xf9,0xb7,0xfb,0xfa,0xfd,0x1d,0x0, +0xc6,0x2,0x7b,0x4,0x9e,0x4,0x7e,0x4,0x13,0x5,0xd1,0x5, +0x1f,0x5,0x44,0x3,0xf5,0x1,0xa5,0x0,0x62,0xfe,0x1,0xfc, +0x36,0xfa,0x98,0xf9,0x7f,0xfa,0xb2,0xfb,0x43,0xfc,0x2d,0xfd, +0x60,0xff,0x35,0x2,0x8,0x5,0xc4,0x7,0x77,0x9,0x6c,0x9, +0xfb,0x7,0x20,0x5,0xae,0x1,0x6d,0xff,0x34,0xfe,0xd9,0xfc, +0xb5,0xfb,0x9c,0xfb,0x3a,0xfc,0xdb,0xfc,0xda,0xfd,0xa9,0xff, +0x87,0x1,0x4b,0x2,0xef,0x1,0xc8,0x1,0xf2,0x1,0x31,0x1, +0x9f,0x0,0x72,0x1,0x29,0x2,0x9e,0x2,0x93,0x3,0x31,0x4, +0x4e,0x4,0xfa,0x3,0x31,0x3,0x87,0x2,0x58,0x1,0x7f,0xff, +0xb7,0xfd,0x49,0xfb,0x50,0xf9,0x1c,0xfa,0xba,0xfc,0xb4,0xff, +0x76,0x2,0x25,0x4,0xb8,0x5,0xe3,0x7,0xc2,0x8,0xb8,0x7, +0xe,0x6,0xe3,0x3,0x22,0x1,0x95,0xfe,0x3b,0xfc,0x5c,0xfa, +0xb7,0xfa,0x25,0xfd,0x7c,0xff,0x2f,0x1,0x60,0x2,0xdb,0x2, +0x76,0x3,0x81,0x4,0x60,0x5,0xf8,0x5,0x6c,0x5,0x19,0x3, +0xfd,0x0,0x6c,0x0,0xd7,0xff,0x9c,0xfe,0x1c,0xfe,0xe3,0xfe, +0x43,0x0,0x0,0x1,0x8d,0x0,0x42,0x0,0xac,0x0,0xe5,0x0, +0x41,0x1,0x9f,0x1,0x5d,0x1,0xe8,0x1,0x48,0x3,0xe7,0x3, +0xaa,0x4,0xb5,0x5,0x7,0x5,0x38,0x3,0xdb,0x1,0x36,0x0, +0xf1,0xfd,0x29,0xfc,0x19,0xfb,0x90,0xfa,0x47,0xfb,0x3,0xfd, +0xa,0xfe,0x51,0xfe,0x87,0xff,0x9a,0x1,0xcf,0x2,0xb4,0x2, +0x5a,0x2,0x5a,0x2,0x90,0x2,0xbe,0x2,0x46,0x2,0x48,0x1, +0x11,0x1,0xc4,0x0,0x26,0xfe,0xed,0xfa,0xc5,0xf9,0xa1,0xf8, +0xf4,0xf5,0xfe,0xf4,0xfa,0xf6,0xf7,0xf8,0x85,0xfa,0xad,0xfd, +0x8f,0x1,0xb1,0x3,0x37,0x4,0xb6,0x4,0x12,0x5,0x1f,0x4, +0xbb,0x1,0xc8,0xfe,0x67,0xfc,0xd2,0xfa,0x20,0xf9,0x67,0xf7, +0xf1,0xf6,0xcb,0xf7,0x70,0xf8,0x2c,0xf8,0x5c,0xf8,0xd8,0xf9, +0x78,0xfb,0xa6,0xfc,0x84,0xfd,0xa,0xfe,0xfb,0xfe,0x0,0x0, +0xe3,0xff,0xae,0xff,0x1f,0x0,0xdc,0xff,0xb1,0xfe,0xa5,0xfd, +0x2,0xfd,0x63,0xfc,0xa6,0xfb,0x42,0xfb,0x1a,0xfb,0x8f,0xfa, +0xcf,0xf9,0x4f,0xf9,0x39,0xf9,0xc3,0xf9,0x52,0xfb,0xb3,0xfd, +0xc6,0xff,0x8d,0x1,0x85,0x3,0x63,0x4,0x1b,0x4,0x12,0x4, +0x38,0x3,0xaf,0x0,0xf8,0xfd,0xc9,0xfb,0xeb,0xf9,0xa8,0xf8, +0x6c,0xf8,0x27,0xf9,0x82,0xfa,0xcf,0xfc,0xca,0xff,0xb7,0x1, +0x3c,0x2,0xd2,0x2,0xe2,0x3,0x58,0x4,0xa1,0x3,0xe3,0x2, +0xd6,0x2,0x2b,0x2,0x68,0x0,0xea,0xfe,0x1e,0xfe,0xe5,0xfc, +0x2c,0xfb,0x8f,0xfa,0x80,0xfb,0xbe,0xfc,0xdf,0xfd,0x16,0xff, +0x99,0x0,0xda,0x2,0xdf,0x4,0x40,0x5,0xc4,0x4,0xbe,0x4, +0xb2,0x4,0x79,0x3,0x88,0x1,0xf5,0xff,0x6a,0xfe,0x27,0xfd, +0x2a,0xfd,0x72,0xfd,0x57,0xfd,0xd0,0xfd,0x49,0xfe,0x27,0xfe, +0x89,0xfe,0x69,0xff,0x9a,0xff,0x69,0xff,0xe8,0xff,0xdb,0x0, +0x3d,0x1,0x3a,0x1,0xb1,0x1,0x23,0x2,0xc5,0x1,0xb9,0x1, +0x86,0x2,0x13,0x2,0x2c,0x0,0x57,0xff,0x33,0xff,0xbf,0xfd, +0x5,0xfc,0x96,0xfb,0xde,0xfb,0x25,0xfc,0xea,0xfc,0x8a,0xfe, +0xb,0x0,0xf9,0x0,0x32,0x2,0x5f,0x3,0xa6,0x3,0x39,0x3, +0xf3,0x1,0xf0,0xff,0x28,0xfe,0xe4,0xfc,0xcc,0xfb,0xb5,0xfa, +0x34,0xfa,0xe6,0xfa,0xc6,0xfb,0x44,0xfc,0x30,0xfd,0x1b,0xfe, +0xd3,0xfe,0xda,0xff,0x19,0x0,0xab,0xff,0xda,0xff,0x98,0xff, +0xb2,0xfe,0xd9,0xfe,0x43,0xff,0x69,0xfe,0x5b,0xfd,0x5b,0xfd, +0x6d,0xfd,0x4b,0xfc,0x6c,0xfb,0x74,0xfc,0x74,0xfd,0xf1,0xfc, +0xdc,0xfc,0x10,0xfe,0xbc,0xfe,0x1d,0xfe,0xbb,0xfd,0x32,0xfe, +0x1,0xfe,0x2d,0xfd,0x2e,0xfd,0x3d,0xfd,0xf4,0xfc,0xc1,0xfd, +0x9d,0xfe,0x6,0xfe,0x86,0xfd,0xdc,0xfd,0x82,0xfd,0x58,0xfc, +0xc0,0xfb,0xf0,0xfb,0xb,0xfc,0x12,0xfc,0xb7,0xfc,0xf8,0xfd, +0x49,0xff,0x6,0x0,0xcd,0xff,0x73,0xff,0xeb,0xff,0x2f,0x0, +0xdb,0xfe,0xc,0xfd,0xec,0xfc,0xa4,0xfd,0xd6,0xfc,0xc8,0xfb, +0xe3,0xfc,0x31,0xfe,0x97,0xfd,0x34,0xfd,0x76,0xfe,0xa8,0xff, +0xa8,0xff,0x26,0xff,0x18,0xff,0x1f,0xff,0x6b,0xfe,0xc9,0xfd, +0xd3,0xfd,0xe3,0xfd,0x3e,0xfe,0xff,0xfe,0x66,0xff,0xbe,0xff, +0x2e,0x0,0xfe,0xff,0x59,0xff,0xfd,0xfe,0x25,0xff,0x25,0xff, +0x99,0xfe,0xbe,0xfe,0x33,0x0,0xda,0x1,0xc8,0x2,0xc3,0x2, +0x8c,0x2,0xa,0x3,0x4d,0x3,0x5a,0x2,0xfa,0x0,0x33,0x0, +0xfb,0xff,0x77,0xff,0x16,0xff,0x30,0x0,0x92,0x1,0xb7,0x1, +0x35,0x2,0xf4,0x3,0x2b,0x5,0xbe,0x4,0xa6,0x3,0x38,0x3, +0x20,0x3,0x40,0x2,0x3e,0x1,0x3d,0x1,0xb6,0x1,0xf1,0x1, +0x19,0x2,0x7d,0x2,0x27,0x3,0x87,0x3,0x22,0x3,0xa4,0x2, +0x96,0x2,0x71,0x2,0xd8,0x1,0x46,0x1,0xf7,0x1,0x40,0x4, +0xf4,0x5,0xb6,0x5,0x6f,0x5,0x3b,0x6,0x64,0x6,0x38,0x5, +0x97,0x4,0x52,0x5,0x74,0x5,0xfe,0x3,0x60,0x2,0x3c,0x1, +0xbb,0xff,0xd3,0xfd,0xe,0xfd,0x4a,0xfe,0xa7,0xff,0x52,0x0, +0x5f,0x2,0xb3,0x5,0x54,0x8,0x19,0xa,0x3,0xb,0xc8,0xa, +0xe8,0x9,0xbe,0x8,0x9,0x7,0xf2,0x3,0x54,0x0,0xf9,0xfe, +0x33,0xff,0x17,0xfe,0xc4,0xfc,0xa0,0xfd,0xe8,0xff,0xf2,0x1, +0xa5,0x3,0x96,0x5,0x73,0x7,0x72,0x8,0xcd,0x8,0x73,0x9, +0x35,0xa,0x2f,0x9,0x68,0x6,0xe9,0x4,0xa4,0x4,0xff,0x2, +0x86,0x1,0x34,0x2,0x9c,0x2,0x76,0x1,0x64,0x0,0x79,0xff, +0x67,0xfe,0x30,0xfe,0x81,0xfe,0x8e,0xfe,0xfb,0xfe,0x83,0x0, +0xd5,0x3,0xeb,0x7,0x65,0x9,0xed,0x8,0x4,0xa,0x74,0xa, +0xf6,0x6,0x47,0x2,0x7d,0xff,0x76,0xfd,0x4f,0xfa,0x52,0xf7, +0x2c,0xf7,0x81,0xf8,0x61,0xf8,0xc4,0xf8,0x23,0xfc,0xb2,0xff, +0x72,0x0,0x53,0x0,0x1f,0x2,0x88,0x4,0xe2,0x4,0xec,0x3, +0x83,0x3,0xd9,0x2,0x2a,0x1,0xf9,0xff,0x1a,0xff,0x7e,0xfc, +0x9a,0xf9,0x2b,0xf9,0x56,0xf9,0xd9,0xf7,0xcf,0xf6,0xcb,0xf7, +0xa,0xf9,0xd5,0xf9,0x37,0xfb,0x20,0xfc,0x79,0xfb,0x29,0xfc, +0xd3,0xff,0x9b,0x2,0x82,0x2,0xca,0x2,0x70,0x4,0x55,0x4, +0xcf,0x1,0x8f,0xff,0x71,0xfe,0xad,0xfc,0xf3,0xf9,0x7c,0xf8, +0x17,0xf9,0x5d,0xf9,0x4c,0xf8,0x7c,0xf8,0xb1,0xfa,0x99,0xfb, +0xfc,0xf9,0x61,0xf9,0xec,0xfb,0xa2,0xfe,0xf8,0xfe,0x35,0xff, +0x99,0x1,0xe,0x4,0x24,0x4,0xc0,0x2,0x82,0x1,0x46,0x0, +0x90,0xfe,0x66,0xfc,0xeb,0xf9,0xf5,0xf7,0x45,0xf7,0x53,0xf7, +0xb7,0xf7,0xb2,0xf8,0x38,0xfa,0xcb,0xfb,0x9d,0xfc,0xd4,0xfc, +0xdd,0xfd,0x35,0xff,0xc5,0xfe,0x7e,0xfd,0xe4,0xfd,0xc,0xff, +0xcb,0xfe,0xe6,0xfd,0x7d,0xfd,0xee,0xfc,0x4e,0xfc,0xda,0xfb, +0x1b,0xfb,0xdd,0xfa,0x7e,0xfb,0x91,0xfb,0xfb,0xfa,0x14,0xfb, +0x33,0xfc,0x7c,0xfd,0x2d,0xfe,0xad,0xfe,0x76,0xff,0x42,0x0, +0x31,0x1,0x21,0x2,0x5a,0x2,0xed,0x1,0x4b,0x1,0x57,0x0, +0xa0,0xfe,0x4f,0xfc,0x86,0xfa,0xc7,0xf9,0xe1,0xf9,0x1f,0xfb, +0x1c,0xfd,0x36,0xff,0x59,0x1,0xb5,0x2,0x22,0x3,0xac,0x3, +0x4a,0x4,0x5b,0x4,0x83,0x3,0xd6,0x1,0x7c,0x0,0xa9,0xff, +0x50,0xfe,0x8,0xfd,0xfa,0xfc,0x91,0xfd,0x9f,0xfd,0x24,0xfd, +0x33,0xfd,0xa7,0xfd,0xe,0xfd,0xdf,0xfb,0xf9,0xfb,0x89,0xfd, +0x47,0xff,0x5c,0x0,0x30,0x1,0xa0,0x2,0x2c,0x4,0x91,0x4, +0xef,0x3,0x18,0x3,0xba,0x1,0xb2,0xff,0x9,0xfe,0x9f,0xfc, +0xcf,0xfa,0xdb,0xf9,0x35,0xfa,0x66,0xfa,0x60,0xfa,0xc1,0xfa, +0x33,0xfb,0xc5,0xfb,0x2,0xfd,0x46,0xff,0xb3,0x1,0xa9,0x2, +0x14,0x3,0x46,0x4,0x62,0x4,0xe2,0x2,0xe7,0x1,0x34,0x1, +0xd6,0xff,0x1d,0xff,0xf4,0xfe,0x90,0xfd,0xe2,0xfb,0xf2,0xfb, +0x9e,0xfc,0x9b,0xfc,0xfb,0xfc,0xfe,0xfd,0xe6,0xfe,0xfc,0xff, +0x62,0x1,0x98,0x2,0x73,0x3,0x31,0x4,0xda,0x4,0xc6,0x4, +0xe9,0x3,0xcc,0x2,0xf7,0x0,0x83,0xfe,0xd9,0xfc,0x3d,0xfc, +0xb0,0xfb,0xc3,0xfa,0x6a,0xfa,0x44,0xfb,0xf4,0xfb,0x13,0xfc, +0xc,0xfd,0xba,0xfe,0x0,0x0,0xae,0x0,0x39,0x1,0x48,0x2, +0x13,0x3,0xb4,0x2,0xea,0x2,0x40,0x4,0xe,0x4,0x6,0x2, +0xca,0x0,0x37,0x0,0x1f,0xfe,0xa0,0xfb,0x0,0xfb,0xf9,0xfa, +0xc3,0xf9,0x5b,0xf8,0x3d,0xf8,0x9a,0xf9,0x8b,0xfb,0x87,0xfd, +0x22,0x0,0xf7,0x2,0xc6,0x4,0x3,0x5,0x81,0x3,0x8f,0x1, +0xa,0x1,0x78,0x0,0x84,0xfe,0x65,0xfe,0xf5,0x0,0x6e,0x1, +0x74,0xff,0x99,0xff,0x90,0x0,0xcc,0xfe,0xd7,0xfc,0xdf,0xfc, +0x77,0xfd,0x9c,0xfe,0xf7,0xff,0x78,0x0,0xd4,0x1,0x41,0x4, +0xb5,0x4,0xcc,0x3,0x8c,0x4,0x33,0x5,0x5a,0x3,0xd3,0x1, +0x99,0x2,0xb1,0x2,0x6b,0x0,0x89,0xfe,0x19,0xff,0xda,0xff, +0xd,0xff,0x23,0xff,0x8e,0x0,0x95,0x0,0x61,0x0,0x6e,0x1, +0x19,0x1,0xde,0xff,0x81,0x0,0xd,0x1,0x47,0x0,0x21,0x1, +0x2d,0x3,0x34,0x3,0x38,0x2,0x9d,0x2,0x21,0x3,0xf6,0x1, +0xf8,0xff,0xf9,0xfe,0x2,0xff,0x73,0xfe,0x7a,0xfd,0xbf,0xfd, +0xd9,0xfe,0xcc,0xff,0xbc,0x0,0x76,0x1,0x35,0x2,0x5a,0x3, +0xd8,0x3,0x71,0x3,0x72,0x3,0xbc,0x3,0xc,0x3,0xc1,0x1, +0x44,0x1,0x66,0x1,0xf6,0x0,0x16,0x0,0xe9,0xff,0xad,0x0, +0x3d,0x1,0x1b,0x1,0x52,0x1,0xd2,0x1,0xa6,0x1,0x6c,0x1, +0x6f,0x1,0x52,0x1,0xae,0x1,0x7,0x2,0xb3,0x1,0x3a,0x2, +0xbe,0x3,0x7,0x4,0xe3,0x2,0x24,0x2,0x16,0x2,0xa7,0x1, +0xc3,0x0,0x17,0x0,0xcb,0xff,0xd3,0xff,0xb1,0xff,0xf5,0xfe, +0xba,0xfe,0x86,0xff,0xb,0x0,0x3b,0x0,0x22,0x1,0x17,0x2, +0xf8,0x1,0x68,0x1,0x58,0x1,0x1f,0x1,0x2b,0x0,0x6d,0xff, +0x22,0xff,0x93,0xfe,0x3b,0xfe,0xa0,0xfe,0x8,0xff,0x14,0xff, +0x2b,0xff,0xb2,0xff,0x78,0x0,0xb9,0x0,0x86,0x0,0x81,0x0, +0x53,0x0,0x18,0x0,0x70,0x0,0x70,0x0,0x84,0xff,0x48,0xff, +0x52,0x0,0xea,0x0,0x37,0x0,0x50,0xff,0xef,0xfe,0x8c,0xfe, +0xcf,0xfd,0x3e,0xfd,0x49,0xfd,0x83,0xfd,0x76,0xfd,0xb6,0xfd, +0x8e,0xfe,0x2a,0xff,0xb2,0xff,0xea,0x0,0xf,0x2,0x8c,0x2, +0x2d,0x3,0x0,0x4,0x1d,0x4,0x8d,0x3,0x31,0x3,0xe2,0x2, +0xb5,0x1,0x1a,0x0,0x25,0xff,0x9d,0xfe,0xf0,0xfd,0x36,0xfd, +0xbb,0xfc,0x88,0xfc,0x79,0xfc,0x9a,0xfc,0xb9,0xfc,0xb2,0xfc, +0x7,0xfd,0x9f,0xfd,0x17,0xfe,0xc5,0xfe,0x77,0xff,0xdb,0xff, +0x17,0x0,0xd6,0xff,0x59,0xff,0x8,0xff,0x3e,0xfe,0x67,0xfd, +0x50,0xfd,0x3c,0xfd,0x11,0xfd,0x52,0xfd,0x64,0xfd,0x35,0xfd, +0xe6,0xfd,0x67,0xff,0x51,0x0,0xb2,0x0,0xcc,0x1,0x0,0x3, +0x34,0x3,0x65,0x3,0x1a,0x4,0xa,0x4,0x10,0x3,0x89,0x2, +0x64,0x2,0x8c,0x1,0x8c,0x0,0x12,0x0,0x49,0xff,0x53,0xfe, +0x14,0xfe,0xf1,0xfd,0x9f,0xfd,0x9,0xfe,0x3d,0xff,0x24,0x0, +0x79,0x0,0x42,0x1,0x7e,0x2,0x4,0x3,0x2d,0x3,0x89,0x3, +0x56,0x3,0xca,0x2,0x6b,0x2,0xaa,0x1,0xf4,0x0,0xe0,0x0, +0x65,0x0,0x81,0xff,0x88,0xff,0xd6,0xff,0x74,0xff,0x97,0xff, +0x49,0x0,0x19,0x0,0xe6,0xff,0x92,0x0,0xad,0x0,0x28,0x0, +0x40,0x0,0x4c,0x0,0x7f,0xff,0xc6,0xfe,0x85,0xfe,0xe8,0xfd, +0x22,0xfd,0x0,0xfd,0xe0,0xfc,0x36,0xfc,0xc1,0xfb,0xb7,0xfb, +0x6f,0xfb,0xdc,0xfa,0xf1,0xfa,0xf7,0xfb,0x6c,0xfc,0x32,0xfc, +0x1f,0xfd,0x8e,0xfe,0xf9,0xfe,0x77,0xff,0x49,0x0,0x31,0x0, +0xd4,0xff,0xc,0x0,0xb,0x0,0x6b,0xff,0xb3,0xfe,0x52,0xfe, +0x78,0xfe,0xb6,0xfe,0x7f,0xfe,0x65,0xfe,0xf4,0xfe,0x62,0xff, +0x2c,0xff,0xb,0xff,0x8f,0xff,0xfc,0xff,0x9a,0xff,0x86,0xff, +0x90,0x0,0x2b,0x1,0xa8,0x0,0x90,0x0,0x6a,0x1,0xfe,0x1, +0x7d,0x1,0xcd,0x0,0xb1,0x0,0x62,0x0,0xe,0x0,0x4d,0x0, +0x10,0x0,0xa5,0xff,0x29,0x0,0x70,0x0,0x48,0x0,0xd3,0x0, +0x25,0x1,0x77,0x0,0x31,0x0,0xe2,0x0,0x14,0x1,0x64,0x0, +0x3c,0x0,0x84,0x0,0x56,0x0,0x91,0x0,0x25,0x1,0xa1,0x0, +0xc8,0xff,0x35,0x0,0xec,0x0,0x76,0x0,0xfb,0xff,0x46,0x0, +0xc8,0xff,0x41,0xff,0x4e,0x0,0x7a,0x0,0x11,0xff,0x1c,0xff, +0xf,0x0,0xf4,0xff,0x4,0x0,0x87,0x0,0x75,0x0,0x9d,0x0, +0x52,0x1,0x3a,0x1,0xab,0x0,0xdb,0x0,0xcf,0x0,0x23,0x0, +0x60,0x0,0x30,0x1,0x2b,0x1,0x97,0x0,0xce,0x0,0x84,0x2, +0x4b,0x3,0x81,0x1,0x1c,0x1,0xb,0x3,0xc6,0x2,0x68,0x1, +0x2a,0x2,0x28,0x2,0xfc,0x0,0x0,0x2,0xbb,0x2,0xe9,0x0, +0x84,0x0,0xca,0x1,0x57,0x1,0xbc,0x0,0x53,0x1,0x99,0x1, +0x24,0x2,0x8a,0x2,0xa,0x2,0xe0,0x2,0xfc,0x3,0xff,0x2, +0x79,0x2,0x40,0x3,0x15,0x3,0x73,0x2,0xce,0x1,0xc8,0x0, +0xe2,0x0,0xae,0x1,0xd8,0x0,0xb3,0xff,0x50,0x0,0xbf,0x0, +0xb5,0xff,0xdd,0xfe,0xa6,0xfe,0xc7,0xfe,0x1f,0xff,0xa1,0xfe, +0x60,0xfe,0xa5,0xff,0x44,0x0,0x13,0x0,0xc0,0x0,0xaa,0x0, +0xba,0xff,0x26,0x0,0x42,0x0,0xae,0xfe,0xfe,0xfd,0x6f,0xfe, +0xe3,0xfd,0xff,0xfc,0xc1,0xfc,0x87,0xfc,0x52,0xfc,0xf7,0xfb, +0x7d,0xfb,0xa,0xfc,0x9c,0xfc,0xf,0xfc,0x3e,0xfc,0x3c,0xfd, +0x6b,0xfd,0x75,0xfd,0x91,0xfd,0x3b,0xfd,0x45,0xfd,0x70,0xfd, +0xe6,0xfc,0x50,0xfc,0x5,0xfc,0xa5,0xfb,0x6c,0xfb,0x58,0xfb, +0xd5,0xfa,0x49,0xfa,0x9d,0xfa,0x31,0xfb,0xff,0xfa,0x6b,0xfa, +0x5c,0xfa,0xf7,0xfa,0x2b,0xfb,0xa0,0xfa,0xf3,0xfa,0xf5,0xfb, +0xfe,0xfb,0xee,0xfb,0x96,0xfc,0x2,0xfd,0x31,0xfd,0x22,0xfd, +0x69,0xfc,0x3,0xfc,0x71,0xfc,0x3e,0xfc,0x2,0xfb,0x8e,0xfa, +0x3d,0xfb,0x4d,0xfb,0xea,0xfa,0x65,0xfb,0x1d,0xfc,0x60,0xfc, +0xa8,0xfc,0x37,0xfd,0xd9,0xfd,0x51,0xfe,0xe9,0xfe,0x78,0xff, +0x2a,0xff,0xf6,0xfe,0xc0,0xff,0xc3,0xff,0xa8,0xfe,0x83,0xfe, +0x39,0xff,0x43,0xff,0xf6,0xfe,0x13,0xff,0x63,0xff,0xdf,0xff, +0x6b,0x0,0x8e,0x0,0xc1,0x0,0x46,0x1,0x63,0x1,0x54,0x1, +0x7f,0x1,0x93,0x1,0xe8,0x1,0x63,0x2,0x72,0x2,0xb1,0x2, +0x61,0x3,0xaa,0x3,0x53,0x3,0xe,0x3,0x3,0x3,0x74,0x2, +0xab,0x1,0x8c,0x1,0x46,0x1,0xae,0x0,0xf2,0x0,0x68,0x1, +0x5b,0x1,0xc5,0x1,0x89,0x2,0xb7,0x2,0x8a,0x2,0x8e,0x2, +0x9a,0x2,0x69,0x2,0x48,0x2,0x35,0x2,0xd1,0x1,0x9d,0x1, +0xcc,0x1,0xb6,0x1,0x9d,0x1,0xe0,0x1,0xd8,0x1,0x66,0x1, +0x42,0x1,0x6f,0x1,0x47,0x1,0xc1,0x0,0x46,0x0,0xfc,0xff, +0xfd,0xff,0x20,0x0,0x26,0x0,0x57,0x0,0xad,0x0,0xd2,0x0, +0xf8,0x0,0x26,0x1,0x34,0x1,0x27,0x1,0xd8,0x0,0xab,0x0, +0xe6,0x0,0xd2,0x0,0x5b,0x0,0x5d,0x0,0xd1,0x0,0xf5,0x0, +0xde,0x0,0x15,0x1,0x1f,0x1,0xbc,0x0,0xb1,0x0,0xa6,0x0, +0x0,0x0,0x8f,0xff,0x81,0xff,0x4f,0xff,0x48,0xff,0x6f,0xff, +0x4e,0xff,0xf,0xff,0x2a,0xff,0x69,0xff,0x2b,0xff,0xce,0xfe, +0x6,0xff,0x56,0xff,0x33,0xff,0xbf,0xfe,0x3f,0xfe,0x2,0xfe, +0xcf,0xfd,0x49,0xfd,0xbc,0xfc,0x7d,0xfc,0xa7,0xfc,0xb5,0xfc, +0x24,0xfc,0xee,0xfb,0x68,0xfc,0x3f,0xfc,0x9f,0xfb,0x9d,0xfb, +0xa7,0xfb,0x37,0xfb,0xf9,0xfa,0x2a,0xfb,0x44,0xfb,0x31,0xfb, +0x3d,0xfb,0x39,0xfb,0xc,0xfb,0x9,0xfb,0x1,0xfb,0xb9,0xfa, +0x7e,0xfa,0x6b,0xfa,0x85,0xfa,0xc3,0xfa,0xcc,0xfa,0xa2,0xfa, +0xbd,0xfa,0x2c,0xfb,0x7c,0xfb,0x88,0xfb,0xa3,0xfb,0xe5,0xfb, +0x39,0xfc,0x92,0xfc,0xac,0xfc,0x91,0xfc,0x9e,0xfc,0xf1,0xfc, +0x5b,0xfd,0x34,0xfd,0x83,0xfc,0x7d,0xfc,0x4,0xfd,0xf3,0xfc, +0xd1,0xfc,0x50,0xfd,0xb7,0xfd,0xdf,0xfd,0x70,0xfe,0x35,0xff, +0x99,0xff,0xeb,0xff,0x59,0x0,0x40,0x0,0xe,0x0,0x79,0x0, +0x76,0x0,0xb2,0xff,0x96,0xff,0x2d,0x0,0x69,0x0,0x44,0x0, +0x62,0x0,0xd3,0x0,0xde,0x0,0x8b,0x0,0xb1,0x0,0xac,0x0, +0xde,0xff,0xc0,0xff,0x81,0x0,0x74,0x0,0x1a,0x0,0xee,0x0, +0xe9,0x1,0xda,0x1,0xd8,0x1,0x82,0x2,0xc3,0x2,0x71,0x2, +0x62,0x2,0x9d,0x2,0x9d,0x2,0x32,0x2,0xe8,0x1,0x43,0x2, +0x85,0x2,0x57,0x2,0x82,0x2,0x7f,0x2,0xe9,0x1,0x34,0x2, +0xef,0x2,0x24,0x2,0x2a,0x1,0x4,0x2,0x2a,0x3,0xfb,0x2, +0xa4,0x2,0x61,0x3,0x5a,0x4,0x3a,0x4,0xc8,0x3,0x96,0x4, +0x8b,0x5,0x17,0x5,0x89,0x4,0xd4,0x4,0xfd,0x4,0x12,0x5, +0x3c,0x5,0xa2,0x4,0x43,0x4,0x4c,0x5,0xf5,0x5,0x4e,0x5, +0x3f,0x5,0x21,0x6,0x6b,0x6,0x4,0x6,0xa8,0x5,0xd0,0x5, +0xa0,0x6,0xee,0x6,0x23,0x6,0xc4,0x5,0x51,0x6,0xc4,0x6, +0xca,0x6,0x43,0x6,0xa7,0x5,0x5b,0x6,0xb4,0x7,0xa8,0x7, +0xc8,0x6,0xf7,0x6,0xf4,0x7,0x13,0x8,0xf0,0x6,0x11,0x6, +0x85,0x6,0xd3,0x6,0xb9,0x5,0xe5,0x4,0x8b,0x5,0x7,0x6, +0x67,0x5,0xac,0x4,0x78,0x4,0x9b,0x4,0x94,0x4,0xe8,0x3, +0xed,0x2,0xca,0x2,0x19,0x4,0x13,0x5,0x9d,0x3,0x37,0x2, +0x3b,0x4,0x79,0x6,0x23,0x5,0x79,0x3,0x8b,0x4,0xaf,0x5, +0x28,0x5,0x32,0x4,0x42,0x3,0xff,0x2,0x86,0x3,0xe0,0x2, +0x91,0x1,0xc9,0x1,0x58,0x2,0xd2,0x1,0x20,0x1,0x14,0x1, +0xeb,0x1,0x22,0x2,0x4f,0x0,0x41,0xff,0xa2,0x0,0x3,0x1, +0x72,0xff,0xff,0xfe,0x90,0xff,0x2a,0xff,0x3d,0xff,0x7f,0x0, +0x24,0x0,0xd3,0xfe,0x1b,0x0,0x45,0x2,0xce,0x1,0x60,0x0, +0xda,0x0,0x33,0x2,0x89,0x1,0x6f,0xff,0x1a,0xff,0x9e,0xff, +0x21,0xfe,0x6d,0xfc,0xa5,0xfc,0x41,0xfd,0x0,0xfd,0x37,0xfc, +0xb9,0xfb,0x89,0xfc,0x97,0xfd,0x7a,0xfc,0x4e,0xfa,0x58,0xfa, +0xb5,0xfb,0x5b,0xfb,0x21,0xfa,0x31,0xfa,0xf7,0xfa,0x4c,0xfb, +0x66,0xfb,0xbb,0xfb,0xcf,0xfb,0x36,0xfb,0xb1,0xfa,0x51,0xfa, +0x6a,0xf9,0xb0,0xf8,0x6f,0xf8,0xbc,0xf7,0xf2,0xf6,0x1b,0xf7, +0x7,0xf8,0x70,0xf8,0xb8,0xf7,0x8c,0xf7,0x3b,0xf9,0xc8,0xfa, +0x4c,0xfa,0x5b,0xf9,0xfd,0xf9,0x16,0xfb,0xd9,0xfa,0xe7,0xf9, +0x64,0xf9,0x73,0xf9,0xfa,0xf9,0x9,0xfa,0x2b,0xf9,0xcf,0xf8, +0x84,0xf9,0xd9,0xf9,0x6,0xf9,0x3f,0xf8,0xdd,0xf8,0xb6,0xf9, +0xe2,0xf8,0xec,0xf7,0x20,0xf9,0xc5,0xfa,0x6f,0xfa,0x8a,0xf9, +0x50,0xfa,0x3,0xfc,0xf0,0xfc,0xa,0xfd,0x5,0xfd,0x4d,0xfd, +0xbc,0xfd,0x85,0xfd,0x70,0xfc,0x86,0xfb,0x51,0xfb,0xe2,0xfa, +0xbc,0xf9,0x1a,0xf9,0xa0,0xf9,0x1,0xfa,0xb3,0xf9,0xb8,0xf9, +0xe,0xfa,0x34,0xfa,0xb5,0xfa,0x22,0xfb,0x63,0xfa,0xca,0xf9, +0xdd,0xfa,0xf6,0xfb,0x81,0xfb,0xb,0xfb,0x46,0xfc,0xd9,0xfd, +0xc2,0xfd,0x13,0xfd,0x84,0xfd,0x2,0xfe,0x7a,0xfd,0x85,0xfc, +0x9b,0xfb,0x23,0xfb,0x1b,0xfb,0xd4,0xfa,0x9a,0xfa,0xeb,0xfa, +0x93,0xfb,0x63,0xfc,0xa1,0xfc,0x2c,0xfc,0xae,0xfc,0x34,0xfe, +0x58,0xfe,0x4,0xfd,0x16,0xfd,0xdd,0xfe,0x61,0xff,0x49,0xfe, +0x33,0xfe,0x7b,0xff,0x3d,0x0,0xda,0xff,0x65,0xff,0x98,0xff, +0xb8,0xff,0x1c,0xff,0x60,0xfe,0x5,0xfe,0xd8,0xfd,0xae,0xfd, +0x83,0xfd,0x54,0xfd,0x63,0xfd,0xb,0xfe,0xc2,0xfe,0x0,0xff, +0x80,0xff,0x77,0x0,0x27,0x1,0x70,0x1,0x40,0x1,0x8,0x1, +0x96,0x1,0xf3,0x1,0x3e,0x1,0xb0,0x0,0x26,0x1,0xe5,0x1, +0xdf,0x1,0x2f,0x1,0x0,0x1,0x5e,0x1,0x5b,0x1,0xae,0x0, +0xb6,0xff,0x5e,0xff,0xa4,0xff,0x38,0xff,0x76,0xfe,0xbf,0xfe, +0xa2,0xff,0x55,0x0,0x1,0x1,0x6e,0x1,0x92,0x1,0x4c,0x2, +0x29,0x3,0x70,0x2,0x17,0x1,0x34,0x1,0xa3,0x1,0xee,0x0, +0x11,0x0,0xfa,0xff,0x94,0x0,0xf2,0x0,0x58,0x0,0x11,0x0, +0xdd,0x0,0x2d,0x1,0x72,0x0,0xb,0x0,0x7b,0x0,0xaf,0x0, +0x27,0x0,0xdf,0xff,0xf0,0xff,0xb7,0xff,0x4,0x0,0xdf,0x0, +0xd9,0x0,0x92,0x0,0x67,0x1,0x47,0x2,0x5,0x2,0x71,0x1, +0x67,0x1,0x74,0x1,0x4,0x1,0x5a,0x0,0xcf,0xff,0x57,0xff, +0x3a,0xff,0x8b,0xff,0xa2,0xff,0x9a,0xff,0x44,0x0,0x2f,0x1, +0x5d,0x1,0x14,0x1,0x35,0x1,0xa1,0x1,0x5b,0x1,0x94,0x0, +0x97,0x0,0x4c,0x1,0xc0,0x1,0xde,0x1,0x12,0x2,0x2,0x3, +0x46,0x4,0x64,0x4,0xe5,0x3,0x20,0x4,0x49,0x4,0x97,0x3, +0x87,0x2,0x99,0x1,0x41,0x1,0x45,0x1,0xd8,0x0,0x4b,0x0, +0x6d,0x0,0xde,0x0,0xd0,0x0,0xa5,0x0,0x15,0x1,0x92,0x1, +0x74,0x1,0x32,0x1,0x57,0x1,0x9f,0x1,0x8f,0x1,0x53,0x1, +0x53,0x1,0x7c,0x1,0xc4,0x1,0xfb,0x1,0xc2,0x1,0xaa,0x1, +0x34,0x2,0xb2,0x2,0x81,0x2,0xeb,0x1,0xbf,0x1,0xdc,0x1, +0x22,0x1,0x24,0x0,0x2e,0x0,0x72,0x0,0x28,0x0,0x38,0x0, +0xe3,0x0,0x67,0x1,0xe2,0x1,0x85,0x2,0x7a,0x2,0x10,0x2, +0x5e,0x2,0x1e,0x2,0x91,0x0,0xce,0xff,0x30,0x0,0x10,0x0, +0xa7,0xff,0xfa,0xff,0x98,0x0,0xc3,0x0,0xda,0x0,0x21,0x1, +0xdf,0x0,0x6f,0x0,0x91,0x0,0x53,0x0,0x9c,0xff,0xab,0xff, +0x1b,0x0,0xf9,0xff,0xcb,0xff,0x71,0x0,0x72,0x1,0x9e,0x1, +0x51,0x1,0x6b,0x1,0x95,0x1,0xc8,0x1,0xf2,0x1,0x72,0x1, +0x3,0x1,0x66,0x1,0xad,0x1,0x50,0x1,0xf9,0x0,0xe,0x1, +0x25,0x1,0xfb,0x0,0xec,0x0,0xe6,0x0,0xd9,0x0,0x31,0x1, +0x93,0x1,0x96,0x1,0xde,0x1,0x81,0x2,0xd8,0x2,0xf9,0x2, +0x6f,0x3,0xfc,0x3,0x32,0x4,0x80,0x4,0xeb,0x4,0xd6,0x4, +0xdd,0x4,0x75,0x5,0x6d,0x5,0x8a,0x4,0x36,0x4,0x72,0x4, +0xce,0x3,0x94,0x2,0x3d,0x2,0x3d,0x2,0x90,0x1,0x25,0x1, +0x49,0x1,0x0,0x1,0x82,0x0,0x69,0x0,0x56,0x0,0xdf,0xff, +0x5f,0xff,0x6a,0xff,0x84,0xff,0x1a,0xff,0x28,0xff,0xef,0xff, +0xa,0x0,0xc4,0xff,0x88,0x0,0x76,0x1,0x3b,0x1,0xae,0x0, +0xab,0x0,0x99,0x0,0x10,0x0,0x63,0xff,0xe2,0xfe,0x92,0xfe, +0x46,0xfe,0x21,0xfe,0x5c,0xfe,0x8a,0xfe,0x5e,0xfe,0x66,0xfe, +0xe3,0xfe,0x1,0xff,0x71,0xfe,0x4b,0xfe,0xce,0xfe,0xc2,0xfe, +0x28,0xfe,0x27,0xfe,0xbd,0xfe,0xfb,0xfe,0x96,0xfe,0x4e,0xfe, +0xa1,0xfe,0xd8,0xfe,0x9f,0xfe,0x80,0xfe,0x9d,0xfe,0xe,0xff, +0xaf,0xff,0xd1,0xff,0xc5,0xff,0x79,0x0,0x7e,0x1,0xe0,0x1, +0xe8,0x1,0x7c,0x2,0x4c,0x3,0x78,0x3,0x87,0x3,0x36,0x4, +0x8c,0x4,0x3,0x4,0xc8,0x3,0xd8,0x3,0xe3,0x2,0x9f,0x1, +0x1e,0x1,0x4b,0x0,0x1e,0xff,0xde,0xfe,0xbd,0xfe,0xa,0xfe, +0xe8,0xfd,0x54,0xfe,0x6b,0xfe,0x47,0xfe,0x46,0xfe,0x8e,0xfe, +0xcb,0xfe,0xad,0xfe,0xec,0xfe,0xb2,0xff,0xf9,0xff,0xde,0xff, +0x4c,0x0,0xd7,0x0,0xcd,0x0,0xa8,0x0,0xb0,0x0,0x65,0x0, +0xe7,0xff,0xce,0xff,0xde,0xff,0x93,0xff,0x31,0xff,0x29,0xff, +0x49,0xff,0x31,0xff,0xfb,0xfe,0xe8,0xfe,0xf5,0xfe,0xe5,0xfe, +0x86,0xfe,0x46,0xfe,0xa0,0xfe,0xf9,0xfe,0xf1,0xfe,0x1e,0xff, +0x51,0xff,0x12,0xff,0x4,0xff,0x2d,0xff,0xaa,0xfe,0xe4,0xfd, +0xc7,0xfd,0xe4,0xfd,0xbd,0xfd,0xd2,0xfd,0x83,0xfe,0x4e,0xff, +0x86,0xff,0x99,0xff,0x3f,0x0,0x8d,0x0,0xee,0xff,0xae,0xff, +0xca,0xff,0x36,0xff,0xfb,0xfe,0xa9,0xff,0xde,0xff,0xc6,0xff, +0x89,0x0,0x79,0x1,0xb4,0x1,0xa5,0x1,0xcf,0x1,0xcd,0x1, +0x16,0x1,0x28,0x0,0xbe,0xff,0x96,0xff,0x5b,0xff,0x29,0xff, +0xf,0xff,0x23,0xff,0x5f,0xff,0x7e,0xff,0x78,0xff,0x6c,0xff, +0x57,0xff,0x3d,0xff,0x5b,0xff,0xca,0xff,0xfd,0xff,0xea,0xff, +0x84,0x0,0x6e,0x1,0x73,0x1,0x2f,0x1,0x8b,0x1,0xe1,0x1, +0x90,0x1,0x3,0x1,0xe9,0x0,0x12,0x1,0xd9,0x0,0x91,0x0, +0x88,0x0,0x6f,0x0,0x7c,0x0,0x64,0x0,0x94,0xff,0x24,0xff, +0xa2,0xff,0x90,0xff,0xba,0xfe,0xd9,0xfe,0xf9,0xff,0x72,0x0, +0x72,0x0,0x47,0x1,0x21,0x2,0xff,0x1,0xe6,0x1,0x22,0x2, +0xab,0x1,0xe3,0x0,0xf7,0x0,0x53,0x1,0x8b,0x0,0x8a,0xff, +0x30,0x0,0x1d,0x1,0x3e,0x0,0x22,0xff,0x4d,0xff,0x71,0xff, +0x23,0xff,0x2b,0xff,0x25,0xff,0x38,0xff,0x4a,0x0,0x63,0x1, +0x5b,0x1,0x68,0x1,0x8d,0x2,0x42,0x3,0x52,0x2,0x5f,0x1, +0xe3,0x1,0x3f,0x2,0x3b,0x1,0x93,0x0,0x8,0x1,0x18,0x1, +0x68,0x0,0xfd,0xff,0xc,0x0,0xb8,0xff,0xd3,0xfe,0x69,0xfe, +0x92,0xfe,0x7f,0xfe,0xa7,0xfe,0x82,0xff,0x5a,0x0,0xf,0x1, +0xe3,0x1,0x6a,0x2,0x88,0x2,0x99,0x2,0x78,0x2,0xd6,0x1, +0x2,0x1,0x95,0x0,0xa9,0x0,0x84,0x0,0xaf,0xff,0x73,0xff, +0x7a,0x0,0x97,0x0,0x38,0xff,0xc7,0xfe,0x46,0xff,0xcd,0xfe, +0xda,0xfd,0xb4,0xfd,0x29,0xfe,0x7f,0xfe,0x98,0xfe,0xf4,0xfe, +0x8a,0xff,0xd,0x0,0xb5,0x0,0xf7,0x0,0x4e,0x0,0xec,0xff, +0x5e,0x0,0x43,0x0,0x6c,0xff,0x3d,0xff,0x91,0xff,0x57,0xff, +0x19,0xff,0x45,0xff,0xfa,0xfe,0x58,0xfe,0x31,0xfe,0x1d,0xfe, +0x8f,0xfd,0x1e,0xfd,0x68,0xfd,0xc6,0xfd,0x85,0xfd,0x70,0xfd, +0xf7,0xfd,0x39,0xfe,0x1e,0xfe,0x26,0xfe,0x20,0xfe,0x13,0xfe, +0x47,0xfe,0x5c,0xfe,0x20,0xfe,0x2c,0xfe,0x8f,0xfe,0x65,0xfe, +0xc0,0xfd,0xa0,0xfd,0xaf,0xfd,0x4,0xfd,0x51,0xfc,0x76,0xfc, +0xac,0xfc,0x57,0xfc,0x47,0xfc,0xb1,0xfc,0xe5,0xfc,0xe,0xfd, +0x5e,0xfd,0x78,0xfd,0x94,0xfd,0xdb,0xfd,0xf7,0xfd,0x7,0xfe, +0x64,0xfe,0xfa,0xfe,0x3f,0xff,0x35,0xff,0xaa,0xff,0x26,0x0, +0xad,0xff,0x52,0xff,0xbb,0xff,0x91,0xff,0xc2,0xfe,0xa5,0xfe, +0x28,0xff,0x2f,0xff,0xe2,0xfe,0x47,0xff,0x6,0x0,0x26,0x0, +0x1b,0x0,0x7f,0x0,0xdd,0x0,0xf2,0x0,0xe,0x1,0x3a,0x1, +0x49,0x1,0x8d,0x1,0x30,0x2,0x69,0x2,0x21,0x2,0x49,0x2, +0xb5,0x2,0x9a,0x2,0x4c,0x2,0x3b,0x2,0x0,0x2,0x7f,0x1, +0x4d,0x1,0x63,0x1,0x41,0x1,0x2a,0x1,0x5f,0x1,0x7a,0x1, +0x8a,0x1,0xcc,0x1,0xa,0x2,0x13,0x2,0x1,0x2,0x34,0x2, +0xa1,0x2,0xaf,0x2,0x92,0x2,0xbf,0x2,0xcb,0x2,0x8c,0x2, +0x57,0x2,0x19,0x2,0xb5,0x1,0x52,0x1,0xfd,0x0,0xa9,0x0, +0x7d,0x0,0x83,0x0,0x71,0x0,0x64,0x0,0x96,0x0,0xa9,0x0, +0x73,0x0,0x53,0x0,0x7e,0x0,0xa3,0x0,0x50,0x0,0xfc,0xff, +0x4c,0x0,0x69,0x0,0x4,0x0,0x3c,0x0,0xa4,0x0,0x36,0x0, +0xc2,0xff,0xc8,0xff,0x8d,0xff,0x13,0xff,0xa3,0xfe,0x31,0xfe, +0xf9,0xfd,0xe7,0xfd,0xaa,0xfd,0x94,0xfd,0xad,0xfd,0xaf,0xfd, +0xd3,0xfd,0xc9,0xfd,0x6c,0xfd,0x99,0xfd,0xee,0xfd,0x84,0xfd, +0x46,0xfd,0xb7,0xfd,0xf3,0xfd,0xd9,0xfd,0xf2,0xfd,0x39,0xfe, +0x44,0xfe,0x1f,0xfe,0x30,0xfe,0x1c,0xfe,0x8d,0xfd,0x29,0xfd, +0x2b,0xfd,0x1b,0xfd,0xe7,0xfc,0xc8,0xfc,0xf5,0xfc,0x29,0xfd, +0x16,0xfd,0x38,0xfd,0x99,0xfd,0x92,0xfd,0x6c,0xfd,0xc7,0xfd, +0x3a,0xfe,0x2e,0xfe,0x0,0xfe,0x60,0xfe,0xe3,0xfe,0xce,0xfe, +0x97,0xfe,0xc5,0xfe,0x3,0xff,0xe,0xff,0xe8,0xfe,0xbd,0xfe, +0xb6,0xfe,0xb5,0xfe,0xae,0xfe,0xa1,0xfe,0x66,0xfe,0x4d,0xfe, +0x91,0xfe,0xb3,0xfe,0x9c,0xfe,0xa7,0xfe,0xcc,0xfe,0xf,0xff, +0x5a,0xff,0x51,0xff,0x2e,0xff,0x49,0xff,0x57,0xff,0x2a,0xff, +0xe7,0xfe,0xc8,0xfe,0xe6,0xfe,0xd3,0xfe,0x86,0xfe,0xa0,0xfe, +0xdf,0xfe,0xb8,0xfe,0xa6,0xfe,0xed,0xfe,0x1b,0xff,0xc,0xff, +0xf7,0xfe,0xf4,0xfe,0xfa,0xfe,0x1a,0xff,0x4d,0xff,0x41,0xff, +0x18,0xff,0x46,0xff,0x8f,0xff,0x89,0xff,0x4f,0xff,0x32,0xff, +0x6d,0xff,0xa1,0xff,0x64,0xff,0x43,0xff,0x9e,0xff,0xeb,0xff, +0xf5,0xff,0xa,0x0,0x55,0x0,0xbf,0x0,0x8,0x1,0x1c,0x1, +0x22,0x1,0x2a,0x1,0x38,0x1,0x59,0x1,0x7a,0x1,0x80,0x1, +0x78,0x1,0x92,0x1,0xc9,0x1,0xe0,0x1,0xf9,0x1,0x4f,0x2, +0x94,0x2,0x89,0x2,0x85,0x2,0xb3,0x2,0xce,0x2,0xc9,0x2, +0xec,0x2,0x27,0x3,0x2d,0x3,0x2e,0x3,0x80,0x3,0xd9,0x3, +0xdb,0x3,0xc3,0x3,0xf7,0x3,0x45,0x4,0x2d,0x4,0x4,0x4, +0x5c,0x4,0x8d,0x4,0x3a,0x4,0x4f,0x4,0xbe,0x4,0xac,0x4, +0x74,0x4,0xb2,0x4,0xfd,0x4,0xed,0x4,0xc3,0x4,0xdf,0x4, +0x10,0x5,0xff,0x4,0xd3,0x4,0xc1,0x4,0xab,0x4,0x83,0x4, +0x67,0x4,0x55,0x4,0x2d,0x4,0x1a,0x4,0x45,0x4,0x3e,0x4, +0x16,0x4,0x7a,0x4,0xd5,0x4,0x63,0x4,0x17,0x4,0x90,0x4, +0xc6,0x4,0x46,0x4,0xd,0x4,0x7d,0x4,0xde,0x4,0xc7,0x4, +0x77,0x4,0x65,0x4,0xce,0x4,0x6,0x5,0x89,0x4,0x43,0x4, +0x98,0x4,0x93,0x4,0x3b,0x4,0x38,0x4,0x49,0x4,0x72,0x4, +0xb6,0x4,0x50,0x4,0xdb,0x3,0x76,0x4,0xf6,0x4,0x96,0x4, +0x73,0x4,0xa6,0x4,0x1,0x5,0xc2,0x5,0xac,0x5,0xbd,0x4, +0x33,0x5,0x72,0x6,0xf2,0x5,0x92,0x4,0x6f,0x4,0xa,0x5, +0x1a,0x5,0x93,0x4,0x49,0x4,0x8,0x5,0xec,0x5,0x81,0x5, +0x42,0x5,0x77,0x6,0xa8,0x6,0x67,0x5,0x7d,0x5,0x12,0x6, +0x1f,0x5,0x5d,0x4,0xdd,0x4,0x2f,0x5,0xd4,0x4,0x53,0x4, +0x52,0x4,0xfe,0x4,0xfd,0x4,0xd1,0x3,0x57,0x3,0xe4,0x3, +0x70,0x3,0xe,0x2,0xa6,0x1,0x12,0x2,0x1c,0x2,0xa7,0x1, +0x1d,0x1,0x43,0x1,0x29,0x2,0x50,0x2,0x79,0x1,0x1f,0x1, +0x50,0x1,0x1a,0x1,0xa7,0x0,0x33,0x0,0xa3,0xff,0x6c,0xff, +0x81,0xff,0x2c,0xff,0xbf,0xfe,0xa8,0xfe,0x7b,0xfe,0x59,0xfe, +0x57,0xfe,0xed,0xfd,0x77,0xfd,0x33,0xfd,0xbf,0xfc,0xa8,0xfc, +0xe8,0xfc,0x74,0xfc,0xb4,0xfb,0x98,0xfb,0xe1,0xfb,0x19,0xfc, +0xe0,0xfb,0x12,0xfb,0xa2,0xfa,0x1b,0xfb,0x62,0xfb,0xe8,0xfa, +0x96,0xfa,0xab,0xfa,0xf1,0xfa,0x67,0xfb,0x4d,0xfb,0xe0,0xfa, +0x5a,0xfb,0xb2,0xfb,0xf,0xfb,0xc,0xfb,0x67,0xfb,0x9b,0xfa, +0xef,0xf9,0x59,0xfa,0x7b,0xfa,0x1,0xfa,0x7f,0xf9,0x1,0xf9, +0x3c,0xf9,0x1,0xfa,0xa4,0xf9,0xc6,0xf8,0x23,0xf9,0xb3,0xf9, +0x98,0xf9,0xca,0xf9,0xfa,0xf9,0xae,0xf9,0xed,0xf9,0xab,0xfa, +0xf3,0xfa,0x29,0xfb,0x9e,0xfb,0xa0,0xfb,0x8d,0xfb,0x20,0xfc, +0x57,0xfc,0xbc,0xfb,0x5f,0xfb,0x35,0xfb,0xb,0xfb,0x2a,0xfb, +0xb1,0xfa,0xff,0xf9,0x8c,0xfa,0x21,0xfb,0xb8,0xfa,0xca,0xfa, +0x66,0xfb,0x59,0xfb,0x1c,0xfb,0x4a,0xfb,0x5f,0xfb,0x4e,0xfb, +0x5f,0xfb,0x42,0xfb,0x66,0xfb,0x72,0xfc,0x5,0xfd,0x72,0xfc, +0x8a,0xfc,0x7e,0xfd,0xa8,0xfd,0x34,0xfd,0xf8,0xfc,0xc3,0xfc, +0xa2,0xfc,0xcc,0xfc,0xc8,0xfc,0x58,0xfc,0x31,0xfc,0xa9,0xfc, +0x16,0xfd,0x0,0xfd,0xc2,0xfc,0xf6,0xfc,0x91,0xfd,0xb7,0xfd, +0x85,0xfd,0xe6,0xfd,0x47,0xfe,0xe5,0xfd,0xc1,0xfd,0x76,0xfe, +0xce,0xfe,0x1f,0xfe,0x95,0xfd,0xff,0xfd,0x95,0xfe,0x8a,0xfe, +0x2,0xfe,0xb6,0xfd,0x2e,0xfe,0x9a,0xfe,0x18,0xfe,0x93,0xfd, +0xe4,0xfd,0x22,0xfe,0xb1,0xfd,0xb4,0xfd,0x97,0xfe,0xe3,0xfe, +0x9a,0xfe,0x27,0xff,0xe2,0xff,0x11,0x0,0x63,0x0,0x76,0x0, +0x1d,0x0,0x53,0x0,0xb6,0x0,0x69,0x0,0xdc,0xff,0xbd,0xff, +0x1d,0x0,0x47,0x0,0xc6,0xff,0x57,0xff,0x82,0xff,0xa9,0xff, +0x34,0xff,0x89,0xfe,0x43,0xfe,0x41,0xfe,0x4c,0xfe,0x65,0xfe, +0x73,0xfe,0xaa,0xfe,0x5,0xff,0x2d,0xff,0x8b,0xff,0x2d,0x0, +0x31,0x0,0xbc,0xff,0xb9,0xff,0xf,0x0,0xf6,0xff,0x8b,0xff, +0x84,0xff,0x99,0xff,0x60,0xff,0x74,0xff,0xb9,0xff,0x69,0xff, +0x12,0xff,0x61,0xff,0xb1,0xff,0x5e,0xff,0x2,0xff,0x63,0xff, +0xfa,0xff,0xf1,0xff,0xb6,0xff,0xed,0xff,0x61,0x0,0x7c,0x0, +0x20,0x0,0x1d,0x0,0xa8,0x0,0xa6,0x0,0x2c,0x0,0x87,0x0, +0x27,0x1,0xb9,0x0,0x12,0x0,0x32,0x0,0x54,0x0,0xfc,0xff, +0x95,0xff,0x53,0xff,0x60,0xff,0x98,0xff,0xac,0xff,0x7,0x0, +0x9e,0x0,0xc2,0x0,0xf9,0x0,0xc0,0x1,0x10,0x2,0xa0,0x1, +0x7d,0x1,0xb2,0x1,0x9a,0x1,0x87,0x1,0xac,0x1,0xbf,0x1, +0xf,0x2,0x82,0x2,0x80,0x2,0x8a,0x2,0xbe,0x2,0x43,0x2, +0x6f,0x1,0xf4,0x0,0x8a,0x0,0xfe,0xff,0x58,0xff,0xd6,0xfe, +0xef,0xfe,0x7c,0xff,0xdc,0xff,0xcd,0xff,0xf2,0xff,0xed,0x0, +0x92,0x1,0xf6,0x0,0x8f,0x0,0xda,0x0,0xa8,0x0,0x51,0x0, +0x75,0x0,0x7d,0x0,0x7e,0x0,0xd8,0x0,0x2d,0x1,0x65,0x1, +0xa9,0x1,0xc0,0x1,0x7f,0x1,0x7,0x1,0xaf,0x0,0x76,0x0, +0xe1,0xff,0x1e,0xff,0xea,0xfe,0x3a,0xff,0x83,0xff,0x8e,0xff, +0xc4,0xff,0xa4,0x0,0x96,0x1,0xc2,0x1,0xa5,0x1,0xe3,0x1, +0x48,0x2,0x46,0x2,0x80,0x1,0xb6,0x0,0xcf,0x0,0xfe,0x0, +0x6f,0x0,0xec,0xff,0x25,0x0,0xa3,0x0,0xa6,0x0,0x43,0x0, +0x3e,0x0,0x7e,0x0,0x44,0x0,0xd0,0xff,0xb6,0xff,0xc5,0xff, +0xbe,0xff,0xca,0xff,0xf,0x0,0x98,0x0,0x36,0x1,0x9c,0x1, +0xca,0x1,0xf6,0x1,0x18,0x2,0x13,0x2,0xb6,0x1,0x3,0x1, +0xbe,0x0,0xf1,0x0,0x93,0x0,0xf,0x0,0x74,0x0,0xef,0x0, +0xf2,0x0,0x59,0x1,0xcb,0x1,0x84,0x1,0x58,0x1,0xa1,0x1, +0x5d,0x1,0x8f,0x0,0x31,0x0,0x26,0x0,0xe4,0xff,0xce,0xff, +0x3a,0x0,0xb9,0x0,0x0,0x1,0x30,0x1,0x70,0x1,0xb4,0x1, +0x9c,0x1,0x1,0x1,0x6b,0x0,0x31,0x0,0x0,0x0,0xa9,0xff, +0x7c,0xff,0xc6,0xff,0x6d,0x0,0xf7,0x0,0x2d,0x1,0x7f,0x1, +0x25,0x2,0x72,0x2,0x10,0x2,0xd5,0x1,0xfc,0x1,0xb3,0x1, +0x49,0x1,0x82,0x1,0xb5,0x1,0x9f,0x1,0xe7,0x1,0x23,0x2, +0x6,0x2,0x2c,0x2,0x2f,0x2,0x8c,0x1,0x5,0x1,0xcc,0x0, +0x45,0x0,0xa9,0xff,0x8c,0xff,0xab,0xff,0xa1,0xff,0xa6,0xff, +0xf8,0xff,0x78,0x0,0xbd,0x0,0x9c,0x0,0xa5,0x0,0x10,0x1, +0x30,0x1,0xfa,0x0,0xe6,0x0,0xda,0x0,0xeb,0x0,0x1f,0x1, +0xe0,0x0,0x73,0x0,0xae,0x0,0xf9,0x0,0x7f,0x0,0x1b,0x0, +0x5f,0x0,0x51,0x0,0xd3,0xff,0x97,0xff,0x51,0xff,0x4,0xff, +0xfe,0xfe,0x95,0xfe,0x20,0xfe,0x81,0xfe,0xe2,0xfe,0xc1,0xfe, +0xea,0xfe,0x6f,0xff,0xdb,0xff,0xf8,0xff,0xdb,0xff,0xd6,0xff, +0xd5,0xff,0x8f,0xff,0x2f,0xff,0xe8,0xfe,0xce,0xfe,0xf0,0xfe, +0x27,0xff,0x5e,0xff,0xa4,0xff,0xce,0xff,0xbd,0xff,0xa0,0xff, +0x92,0xff,0x53,0xff,0xd3,0xfe,0x70,0xfe,0x79,0xfe,0xcf,0xfe, +0x2c,0xff,0xac,0xff,0x6a,0x0,0xc,0x1,0x88,0x1,0xf,0x2, +0x3e,0x2,0x5,0x2,0xd2,0x1,0xa0,0x1,0x56,0x1,0xf,0x1, +0xe3,0x0,0xf3,0x0,0xa,0x1,0xea,0x0,0xbc,0x0,0x8f,0x0, +0x5a,0x0,0x12,0x0,0x92,0xff,0xf9,0xfe,0x8f,0xfe,0x77,0xfe, +0x94,0xfe,0x9c,0xfe,0xa5,0xfe,0xef,0xfe,0x4f,0xff,0xa3,0xff, +0xf5,0xff,0x47,0x0,0xa4,0x0,0xd5,0x0,0xd9,0x0,0xb,0x1, +0x3a,0x1,0x1a,0x1,0xe0,0x0,0xb4,0x0,0x5c,0x0,0x9d,0xff, +0xf8,0xfe,0xcb,0xfe,0x5c,0xfe,0xac,0xfd,0xb5,0xfd,0x24,0xfe, +0x46,0xfe,0x80,0xfe,0xe8,0xfe,0x19,0xff,0x34,0xff,0x52,0xff, +0x2a,0xff,0x10,0xff,0xa6,0xff,0x11,0x0,0xba,0xff,0x45,0x0, +0xc1,0x1,0xb,0x2,0xc3,0x1,0x8b,0x2,0xf1,0x2,0x3,0x2, +0x53,0x1,0x31,0x1,0x5d,0x0,0x2d,0xff,0xef,0xfe,0x12,0xff, +0x8f,0xfe,0x69,0xfe,0x48,0xff,0xe2,0xff,0xea,0xff,0x49,0x0, +0xb9,0x0,0xa0,0x0,0x8d,0x0,0xf1,0x0,0x21,0x1,0xde,0x0, +0x27,0x1,0xf9,0x1,0x1e,0x2,0x16,0x2,0xc2,0x2,0xe8,0x2, +0x12,0x2,0xad,0x1,0xbd,0x1,0x10,0x1,0xe5,0xff,0x58,0xff, +0x50,0xff,0xef,0xfe,0x70,0xfe,0x5b,0xfe,0x4b,0xfe,0x38,0xfe, +0x6c,0xfe,0x7f,0xfe,0x86,0xfe,0xc9,0xfe,0xca,0xfe,0xbc,0xfe, +0x3b,0xff,0xc6,0xff,0xe0,0xff,0xd4,0xff,0xe8,0xff,0x17,0x0, +0x41,0x0,0x18,0x0,0x79,0xff,0x1f,0xff,0x92,0xff,0xcf,0xff, +0x44,0xff,0xfc,0xfe,0x41,0xff,0x3c,0xff,0xca,0xfe,0x5d,0xfe, +0x24,0xfe,0xf3,0xfd,0xa9,0xfd,0xac,0xfd,0x2a,0xfe,0x8d,0xfe, +0xbf,0xfe,0x55,0xff,0xf2,0xff,0xd5,0xff,0x86,0xff,0x8e,0xff, +0x35,0xff,0x67,0xfe,0x1f,0xfe,0x34,0xfe,0x2,0xfe,0x2a,0xfe, +0xeb,0xfe,0x47,0xff,0x65,0xff,0x25,0x0,0x95,0x0,0xf6,0xff, +0x8a,0xff,0xb9,0xff,0x8c,0xff,0xf,0xff,0xb,0xff,0x78,0xff, +0xb2,0xff,0xc3,0xff,0x60,0x0,0x14,0x1,0xe5,0x0,0x69,0x0, +0x60,0x0,0x4f,0x0,0xf9,0xff,0xbc,0xff,0xa2,0xff,0x89,0xff, +0xae,0xff,0x19,0x0,0x42,0x0,0x3f,0x0,0x68,0x0,0x44,0x0, +0x18,0x0,0x89,0x0,0xbb,0x0,0x68,0x0,0x9c,0x0,0x27,0x1, +0x4f,0x1,0x6c,0x1,0xb3,0x1,0x98,0x1,0xf,0x1,0xd3,0x0, +0xe4,0x0,0x83,0x0,0x6,0x0,0x12,0x0,0x32,0x0,0x1a,0x0, +0x28,0x0,0x2b,0x0,0xb8,0xff,0x51,0xff,0x5b,0xff,0xe0,0xfe, +0xb8,0xfd,0x5c,0xfd,0x96,0xfd,0x3b,0xfd,0x13,0xfd,0x92,0xfd, +0xb4,0xfd,0x8d,0xfd,0xc1,0xfd,0xe7,0xfd,0x83,0xfd,0xe7,0xfc, +0xa3,0xfc,0x91,0xfc,0x38,0xfc,0x0,0xfc,0x45,0xfc,0x49,0xfc, +0xf0,0xfb,0x31,0xfc,0xa7,0xfc,0x1f,0xfc,0x71,0xfb,0xa5,0xfb, +0x8c,0xfb,0xdc,0xfa,0x2,0xfb,0x82,0xfb,0x42,0xfb,0x4e,0xfb, +0x1d,0xfc,0x78,0xfc,0x6c,0xfc,0xc3,0xfc,0xa,0xfd,0xea,0xfc, +0xf6,0xfc,0x40,0xfd,0x65,0xfd,0x74,0xfd,0xb9,0xfd,0x2f,0xfe, +0x73,0xfe,0x78,0xfe,0xc1,0xfe,0x24,0xff,0xfa,0xfe,0xaf,0xfe, +0xdc,0xfe,0x15,0xff,0x6,0xff,0x5,0xff,0x46,0xff,0x9b,0xff, +0xd8,0xff,0x5,0x0,0x31,0x0,0x64,0x0,0xa0,0x0,0xa7,0x0, +0x78,0x0,0xa1,0x0,0x18,0x1,0x38,0x1,0x26,0x1,0x55,0x1, +0x71,0x1,0x33,0x1,0xf0,0x0,0xd4,0x0,0xb0,0x0,0x58,0x0, +0xdb,0xff,0x8e,0xff,0xa5,0xff,0xbe,0xff,0x7d,0xff,0x4d,0xff, +0x81,0xff,0x92,0xff,0x44,0xff,0x21,0xff,0x30,0xff,0xf9,0xfe, +0xac,0xfe,0xb0,0xfe,0xc7,0xfe,0xb6,0xfe,0xcd,0xfe,0x25,0xff, +0x31,0xff,0xe4,0xfe,0xe8,0xfe,0x1c,0xff,0xd5,0xfe,0x5d,0xfe, +0x31,0xfe,0x12,0xfe,0xfc,0xfd,0x1d,0xfe,0x25,0xfe,0x14,0xfe, +0x49,0xfe,0x98,0xfe,0xbd,0xfe,0xcf,0xfe,0xc7,0xfe,0xb3,0xfe, +0xe2,0xfe,0x25,0xff,0x27,0xff,0x4f,0xff,0xe9,0xff,0x51,0x0, +0x3a,0x0,0x60,0x0,0xf5,0x0,0x2d,0x1,0xe4,0x0,0xcd,0x0, +0x7,0x1,0x2a,0x1,0x24,0x1,0x28,0x1,0x48,0x1,0x70,0x1, +0x73,0x1,0x4c,0x1,0x51,0x1,0x81,0x1,0x5e,0x1,0x2a,0x1, +0x76,0x1,0xc1,0x1,0xac,0x1,0xd6,0x1,0x4b,0x2,0x8d,0x2, +0xac,0x2,0xc8,0x2,0xca,0x2,0xc8,0x2,0xcf,0x2,0xbf,0x2, +0x8b,0x2,0x65,0x2,0x60,0x2,0x40,0x2,0xfc,0x1,0xd2,0x1, +0xb2,0x1,0x73,0x1,0x3b,0x1,0x1c,0x1,0xd3,0x0,0x6b,0x0, +0x65,0x0,0x98,0x0,0x72,0x0,0x38,0x0,0x5d,0x0,0x9a,0x0, +0xbc,0x0,0xc0,0x0,0x91,0x0,0x74,0x0,0xa2,0x0,0xc9,0x0, +0xa8,0x0,0x78,0x0,0x67,0x0,0x66,0x0,0x6e,0x0,0x68,0x0, +0x31,0x0,0xfe,0xff,0xfe,0xff,0xed,0xff,0xaa,0xff,0x94,0xff, +0xe6,0xff,0x21,0x0,0xe0,0xff,0xd7,0xff,0x79,0x0,0xdd,0x0, +0xad,0x0,0xa6,0x0,0xe3,0x0,0x12,0x1,0x41,0x1,0x5f,0x1, +0x41,0x1,0x25,0x1,0x5c,0x1,0xa4,0x1,0x8d,0x1,0x51,0x1, +0x63,0x1,0x88,0x1,0x5d,0x1,0x22,0x1,0x2d,0x1,0x45,0x1, +0x1f,0x1,0xed,0x0,0xfe,0x0,0x49,0x1,0x7c,0x1,0x6e,0x1, +0x53,0x1,0x74,0x1,0xd2,0x1,0x20,0x2,0x1b,0x2,0xfa,0x1, +0x28,0x2,0x7a,0x2,0x80,0x2,0x52,0x2,0x21,0x2,0xed,0x1, +0xcd,0x1,0xbc,0x1,0x81,0x1,0x2c,0x1,0x19,0x1,0x3f,0x1, +0x4b,0x1,0x4c,0x1,0x7b,0x1,0xa9,0x1,0xa8,0x1,0xaa,0x1, +0xce,0x1,0xf0,0x1,0xf4,0x1,0xee,0x1,0x1c,0x2,0x71,0x2, +0x90,0x2,0x80,0x2,0x7b,0x2,0x6b,0x2,0x60,0x2,0x62,0x2, +0x2e,0x2,0xeb,0x1,0xdc,0x1,0xc8,0x1,0x9d,0x1,0x88,0x1, +0x8e,0x1,0x84,0x1,0x55,0x1,0x60,0x1,0xd5,0x1,0x14,0x2, +0xe9,0x1,0xe0,0x1,0x25,0x2,0x94,0x2,0xfa,0x2,0xf6,0x2, +0xb3,0x2,0xb2,0x2,0xdd,0x2,0x4,0x3,0x15,0x3,0xb2,0x2, +0x44,0x2,0x6e,0x2,0x64,0x2,0xeb,0x1,0x1c,0x2,0x70,0x2, +0xd3,0x1,0x50,0x1,0xbb,0x1,0x2d,0x2,0x12,0x2,0xce,0x1, +0xb1,0x1,0xc0,0x1,0x9,0x2,0x43,0x2,0x31,0x2,0x5a,0x2, +0xa4,0x2,0x8c,0x2,0xd2,0x2,0x4b,0x3,0x6,0x3,0xe8,0x2, +0x1e,0x3,0xf5,0x2,0x4c,0x3,0xbf,0x3,0x9,0x3,0x8b,0x2, +0x7e,0x3,0x78,0x4,0x9,0x4,0xec,0x2,0x1d,0x3,0x70,0x4, +0x93,0x4,0x20,0x3,0x65,0x2,0x95,0x3,0x45,0x4,0xb2,0x2, +0xc3,0x1,0xf9,0x2,0x57,0x3,0x5f,0x2,0x4a,0x2,0xb2,0x2, +0x81,0x2,0x70,0x2,0xa0,0x2,0x50,0x2,0x3a,0x2,0xf3,0x2, +0xb6,0x2,0x69,0x1,0x80,0x1,0xc6,0x2,0x23,0x3,0x35,0x2, +0xc,0x1,0x72,0x1,0x3,0x3,0xdb,0x2,0x4c,0x1,0xf5,0x0, +0x48,0x1,0xd2,0x0,0x73,0x0,0x88,0x0,0xde,0xff,0xef,0xfe, +0x55,0xff,0x4,0x0,0xa5,0xff,0x67,0xff,0xda,0xff,0x7,0x0, +0x7d,0xff,0xb8,0xfe,0xf3,0xfe,0xa3,0xff,0xa4,0xfe,0x2b,0xfd, +0x94,0xfd,0x4d,0xfe,0xaa,0xfd,0x1,0xfd,0xf7,0xfc,0xe3,0xfc, +0xe9,0xfc,0xbb,0xfc,0xd8,0xfb,0x7d,0xfb,0xef,0xfb,0xa9,0xfb, +0xb,0xfb,0xf9,0xfa,0xfc,0xfa,0x74,0xfb,0x22,0xfc,0xc1,0xfb, +0x60,0xfb,0x59,0xfc,0x3e,0xfd,0xd0,0xfc,0x6a,0xfc,0xf9,0xfc, +0x2,0xfd,0x88,0xfc,0x20,0xfd,0x88,0xfd,0xcf,0xfc,0xd7,0xfc, +0x95,0xfd,0xb5,0xfd,0x7f,0xfd,0x51,0xfd,0x59,0xfd,0x51,0xfd, +0xa3,0xfc,0xb,0xfc,0xfd,0xfb,0xd5,0xfb,0x52,0xfb,0xae,0xfa, +0xa4,0xfa,0x47,0xfb,0x6b,0xfb,0x2a,0xfb,0x44,0xfb,0x92,0xfb, +0xec,0xfb,0xdd,0xfb,0x75,0xfb,0x96,0xfb,0xca,0xfb,0x80,0xfb, +0x71,0xfb,0xad,0xfb,0xfd,0xfb,0x96,0xfc,0x11,0xfd,0x16,0xfd, +0xc,0xfd,0x4d,0xfd,0xa4,0xfd,0xa3,0xfd,0x1c,0xfd,0x5b,0xfc, +0x1d,0xfc,0x4b,0xfc,0xe4,0xfb,0x7c,0xfb,0x1b,0xfc,0x7c,0xfc, +0x6,0xfc,0x12,0xfc,0xa1,0xfc,0xd2,0xfc,0xb7,0xfc,0x7a,0xfc, +0x25,0xfc,0x2,0xfc,0x58,0xfc,0xf1,0xfc,0xf,0xfd,0xc2,0xfc, +0x1d,0xfd,0xc,0xfe,0x68,0xfe,0x34,0xfe,0x5d,0xfe,0xe5,0xfe, +0x1b,0xff,0xef,0xfe,0xd9,0xfe,0x5,0xff,0x48,0xff,0x45,0xff, +0xf1,0xfe,0xfd,0xfe,0x70,0xff,0x78,0xff,0x46,0xff,0x6a,0xff, +0x77,0xff,0x65,0xff,0x8c,0xff,0x8d,0xff,0x57,0xff,0x35,0xff, +0xf,0xff,0x15,0xff,0x25,0xff,0xca,0xfe,0xb5,0xfe,0x40,0xff, +0x6a,0xff,0x2e,0xff,0x61,0xff,0xd5,0xff,0xf,0x0,0xe,0x0, +0xff,0xff,0xa,0x0,0xfe,0xff,0xd1,0xff,0xed,0xff,0x7,0x0, +0x90,0xff,0x50,0xff,0xc6,0xff,0xd3,0xff,0x54,0xff,0x52,0xff, +0x69,0xff,0x7,0xff,0xea,0xfe,0x20,0xff,0xd,0xff,0x7,0xff, +0x47,0xff,0x53,0xff,0x56,0xff,0xb3,0xff,0xb,0x0,0x1b,0x0, +0xa,0x0,0xeb,0xff,0x1,0x0,0x2d,0x0,0xff,0xff,0xff,0xff, +0x62,0x0,0x48,0x0,0x5,0x0,0x65,0x0,0xaa,0x0,0x5c,0x0, +0x10,0x0,0xde,0xff,0x98,0xff,0x5d,0xff,0x34,0xff,0xfa,0xfe, +0xc0,0xfe,0xce,0xfe,0x1c,0xff,0x5e,0xff,0x7f,0xff,0x9f,0xff, +0xc1,0xff,0x9f,0xff,0x3b,0xff,0x27,0xff,0x64,0xff,0x5e,0xff, +0x8,0xff,0xd4,0xfe,0x34,0xff,0xe0,0xff,0x5,0x0,0xc1,0xff, +0xad,0xff,0xc0,0xff,0xbf,0xff,0x7c,0xff,0x15,0xff,0xd6,0xfe, +0xa0,0xfe,0x86,0xfe,0x95,0xfe,0x80,0xfe,0x96,0xfe,0xe2,0xfe, +0xae,0xfe,0x3e,0xfe,0x58,0xfe,0xc6,0xfe,0xd8,0xfe,0x6d,0xfe, +0x4e,0xfe,0xe0,0xfe,0x6a,0xff,0x6d,0xff,0x3b,0xff,0x74,0xff, +0x6,0x0,0x6,0x0,0xb0,0xff,0xed,0xff,0x39,0x0,0x4d,0x0, +0x9d,0x0,0xb9,0x0,0x87,0x0,0xbd,0x0,0x14,0x1,0xbf,0x0, +0xfd,0xff,0xa3,0xff,0xaa,0xff,0x7a,0xff,0x22,0xff,0x7,0xff, +0x2e,0xff,0x70,0xff,0x94,0xff,0xaa,0xff,0xdc,0xff,0xf7,0xff, +0xdc,0xff,0x9e,0xff,0x56,0xff,0x52,0xff,0x75,0xff,0x53,0xff, +0x47,0xff,0xa1,0xff,0xe5,0xff,0xfb,0xff,0x2c,0x0,0x12,0x0, +0x9b,0xff,0x78,0xff,0x6b,0xff,0xe8,0xfe,0x88,0xfe,0x8c,0xfe, +0x77,0xfe,0x59,0xfe,0x66,0xfe,0x92,0xfe,0xc4,0xfe,0xec,0xfe, +0x36,0xff,0x7c,0xff,0x77,0xff,0x8e,0xff,0xfa,0xff,0x5a,0x0, +0x76,0x0,0x54,0x0,0x3e,0x0,0x4f,0x0,0x41,0x0,0x1f,0x0, +0xe4,0xff,0xaf,0xff,0xe1,0xff,0xa,0x0,0xf9,0xff,0x4e,0x0, +0xb5,0x0,0xbf,0x0,0xbf,0x0,0xcb,0x0,0xf3,0x0,0x1b,0x1, +0xf2,0x0,0xdf,0x0,0x30,0x1,0xa3,0x1,0x12,0x2,0x6c,0x2, +0xbe,0x2,0xf9,0x2,0xe9,0x2,0xd0,0x2,0xad,0x2,0x23,0x2, +0x91,0x1,0x55,0x1,0x18,0x1,0xbf,0x0,0xcc,0x0,0x52,0x1, +0x76,0x1,0x1a,0x1,0x34,0x1,0xad,0x1,0x94,0x1,0x9,0x1, +0xc4,0x0,0xd6,0x0,0xc3,0x0,0x7b,0x0,0x8a,0x0,0xdf,0x0, +0x1,0x1,0x19,0x1,0x3a,0x1,0x29,0x1,0xc,0x1,0xf,0x1, +0xfb,0x0,0xaf,0x0,0x80,0x0,0x98,0x0,0x99,0x0,0x85,0x0, +0xb3,0x0,0xf2,0x0,0x0,0x1,0x5,0x1,0x31,0x1,0x88,0x1, +0xc2,0x1,0xaf,0x1,0x9f,0x1,0xc0,0x1,0xd8,0x1,0xb7,0x1, +0x62,0x1,0xc,0x1,0xe6,0x0,0xd5,0x0,0x93,0x0,0x45,0x0, +0x50,0x0,0x8e,0x0,0xb5,0x0,0xe8,0x0,0x11,0x1,0x21,0x1, +0x5e,0x1,0x96,0x1,0x89,0x1,0x7a,0x1,0xa1,0x1,0xe1,0x1, +0x0,0x2,0x1d,0x2,0x81,0x2,0xce,0x2,0xd5,0x2,0xf6,0x2, +0x7,0x3,0xdd,0x2,0xa6,0x2,0x49,0x2,0xf1,0x1,0xca,0x1, +0x81,0x1,0x41,0x1,0x3e,0x1,0x28,0x1,0x17,0x1,0x48,0x1, +0x6c,0x1,0x3d,0x1,0x6,0x1,0x41,0x1,0x91,0x1,0x84,0x1, +0xa3,0x1,0x1,0x2,0x9,0x2,0x9,0x2,0x58,0x2,0x89,0x2, +0x72,0x2,0x4d,0x2,0x51,0x2,0x79,0x2,0x7a,0x2,0x71,0x2, +0x8a,0x2,0x6a,0x2,0x27,0x2,0x2c,0x2,0x32,0x2,0xe1,0x1, +0x96,0x1,0x87,0x1,0x6e,0x1,0x4d,0x1,0x6b,0x1,0x95,0x1, +0x91,0x1,0x99,0x1,0xbf,0x1,0xc2,0x1,0xa8,0x1,0xa5,0x1, +0x85,0x1,0x3a,0x1,0x3b,0x1,0x81,0x1,0x86,0x1,0x65,0x1, +0x6f,0x1,0x7a,0x1,0x76,0x1,0x6b,0x1,0x3c,0x1,0x6,0x1, +0xeb,0x0,0xcb,0x0,0xb6,0x0,0xde,0x0,0xf4,0x0,0xae,0x0, +0xa1,0x0,0x17,0x1,0x42,0x1,0x17,0x1,0x4d,0x1,0x95,0x1, +0x96,0x1,0xc5,0x1,0xa,0x2,0x10,0x2,0x5,0x2,0xb,0x2, +0xd,0x2,0xec,0x1,0xb5,0x1,0xab,0x1,0xb5,0x1,0x96,0x1, +0x80,0x1,0x84,0x1,0x72,0x1,0x59,0x1,0x3e,0x1,0xeb,0x0, +0x79,0x0,0x43,0x0,0x2e,0x0,0x0,0x0,0xea,0xff,0x7,0x0, +0x3e,0x0,0x9c,0x0,0x1,0x1,0x39,0x1,0x67,0x1,0x99,0x1, +0xa0,0x1,0x89,0x1,0x79,0x1,0x5b,0x1,0x31,0x1,0x20,0x1, +0x15,0x1,0xf8,0x0,0xd9,0x0,0xa6,0x0,0x5e,0x0,0x2e,0x0, +0xf,0x0,0xe3,0xff,0xb1,0xff,0x9c,0xff,0xc5,0xff,0xa,0x0, +0x47,0x0,0x94,0x0,0xbe,0x0,0xaa,0x0,0xbc,0x0,0xe6,0x0, +0xd0,0x0,0x90,0x0,0x45,0x0,0x24,0x0,0x7b,0x0,0xd7,0x0, +0xbd,0x0,0xb2,0x0,0xec,0x0,0xce,0x0,0x88,0x0,0x92,0x0, +0x6b,0x0,0xfe,0xff,0xe7,0xff,0xa,0x0,0x3a,0x0,0x89,0x0, +0xac,0x0,0xbf,0x0,0x1b,0x1,0x66,0x1,0x59,0x1,0x40,0x1, +0x4b,0x1,0x4d,0x1,0x32,0x1,0x20,0x1,0x18,0x1,0x18,0x1, +0x16,0x1,0xbf,0x0,0x4f,0x0,0x52,0x0,0x5d,0x0,0x17,0x0, +0xdc,0xff,0xd2,0xff,0xa,0x0,0x6e,0x0,0x9a,0x0,0x92,0x0, +0x7b,0x0,0x5c,0x0,0x62,0x0,0x5c,0x0,0x13,0x0,0xca,0xff, +0xc7,0xff,0xc,0x0,0x51,0x0,0x77,0x0,0xa8,0x0,0xe2,0x0, +0x1f,0x1,0x2e,0x1,0xd3,0x0,0x98,0x0,0xa6,0x0,0x50,0x0, +0xe7,0xff,0xf5,0xff,0x13,0x0,0x2e,0x0,0x5e,0x0,0x60,0x0, +0x63,0x0,0xa9,0x0,0xcd,0x0,0x89,0x0,0x3a,0x0,0x26,0x0, +0x16,0x0,0xec,0xff,0xae,0xff,0x63,0xff,0x57,0xff,0x72,0xff, +0x3a,0xff,0xde,0xfe,0x9a,0xfe,0x57,0xfe,0x3c,0xfe,0xb,0xfe, +0x8e,0xfd,0x51,0xfd,0x52,0xfd,0x30,0xfd,0x19,0xfd,0xf5,0xfc, +0xa2,0xfc,0x89,0xfc,0x8d,0xfc,0x41,0xfc,0xf1,0xfb,0xf6,0xfb, +0x1a,0xfc,0x1d,0xfc,0x3,0xfc,0xf9,0xfb,0xa,0xfc,0x20,0xfc, +0x17,0xfc,0xc8,0xfb,0x6f,0xfb,0x62,0xfb,0x56,0xfb,0x25,0xfb, +0x2a,0xfb,0x42,0xfb,0x39,0xfb,0x66,0xfb,0xc3,0xfb,0xf4,0xfb, +0x3,0xfc,0xe,0xfc,0xf,0xfc,0x26,0xfc,0x60,0xfc,0x72,0xfc, +0x52,0xfc,0x79,0xfc,0xf0,0xfc,0x1b,0xfd,0x8,0xfd,0x3e,0xfd, +0x96,0xfd,0xa8,0xfd,0x9b,0xfd,0xaf,0xfd,0xcc,0xfd,0xd4,0xfd, +0xdd,0xfd,0xe0,0xfd,0xca,0xfd,0xd2,0xfd,0x1,0xfe,0x20,0xfe, +0x2e,0xfe,0x48,0xfe,0x66,0xfe,0x7d,0xfe,0x90,0xfe,0x9f,0xfe, +0xa7,0xfe,0xa6,0xfe,0x91,0xfe,0x62,0xfe,0x3d,0xfe,0x3a,0xfe, +0x35,0xfe,0x11,0xfe,0xe7,0xfd,0xe1,0xfd,0xef,0xfd,0xe5,0xfd, +0xc9,0xfd,0xb2,0xfd,0x91,0xfd,0x7a,0xfd,0x6d,0xfd,0x38,0xfd, +0x6,0xfd,0x8,0xfd,0xff,0xfc,0xdd,0xfc,0xf0,0xfc,0x2d,0xfd, +0x4c,0xfd,0x67,0xfd,0x9d,0xfd,0xbf,0xfd,0xcf,0xfd,0xef,0xfd, +0xf8,0xfd,0xfb,0xfd,0x22,0xfe,0x3a,0xfe,0x4b,0xfe,0x8c,0xfe, +0xcf,0xfe,0xef,0xfe,0x1c,0xff,0x5d,0xff,0x7d,0xff,0x8f,0xff, +0xca,0xff,0xf3,0xff,0xec,0xff,0x29,0x0,0x91,0x0,0x9a,0x0, +0x8d,0x0,0xe7,0x0,0x3f,0x1,0x35,0x1,0x35,0x1,0x7a,0x1, +0xa3,0x1,0x9f,0x1,0xbc,0x1,0xea,0x1,0xf6,0x1,0xeb,0x1, +0xf7,0x1,0x2c,0x2,0x31,0x2,0xf2,0x1,0xfd,0x1,0x39,0x2, +0xa,0x2,0xcd,0x1,0xf9,0x1,0xc,0x2,0xca,0x1,0xac,0x1, +0xbe,0x1,0xb4,0x1,0x87,0x1,0x5f,0x1,0x61,0x1,0x5f,0x1, +0x1a,0x1,0xfc,0x0,0x16,0x1,0xcd,0x0,0x74,0x0,0x83,0x0, +0x5d,0x0,0x3,0x0,0xfb,0xff,0xe3,0xff,0x9e,0xff,0x87,0xff, +0x5f,0xff,0x1a,0xff,0xe,0xff,0x24,0xff,0x1a,0xff,0xf3,0xfe, +0xdb,0xfe,0xf0,0xfe,0x0,0xff,0xda,0xfe,0xac,0xfe,0xaa,0xfe, +0xb9,0xfe,0x97,0xfe,0x5a,0xfe,0x67,0xfe,0xa2,0xfe,0x9f,0xfe, +0x87,0xfe,0xa5,0xfe,0xca,0xfe,0xd1,0xfe,0xe3,0xfe,0xff,0xfe, +0xb,0xff,0x18,0xff,0x27,0xff,0x29,0xff,0x32,0xff,0x56,0xff, +0x79,0xff,0x8b,0xff,0xa6,0xff,0xc7,0xff,0xe4,0xff,0x6,0x0, +0x19,0x0,0xc,0x0,0x8,0x0,0x25,0x0,0x46,0x0,0x43,0x0, +0x2d,0x0,0x3f,0x0,0x65,0x0,0x69,0x0,0x68,0x0,0x75,0x0, +0x83,0x0,0xa2,0x0,0xb3,0x0,0x9a,0x0,0x8f,0x0,0xa5,0x0, +0xad,0x0,0x89,0x0,0x58,0x0,0x57,0x0,0x6e,0x0,0x41,0x0, +0x1,0x0,0x1b,0x0,0x3c,0x0,0xd,0x0,0xec,0xff,0x9,0x0, +0x17,0x0,0xf7,0xff,0xd8,0xff,0xdb,0xff,0xd6,0xff,0xa6,0xff, +0x8e,0xff,0x9f,0xff,0x9c,0xff,0x9a,0xff,0xb0,0xff,0xc7,0xff, +0xdd,0xff,0xd0,0xff,0xbc,0xff,0xdf,0xff,0xde,0xff,0x8d,0xff, +0x69,0xff,0x7d,0xff,0x74,0xff,0x50,0xff,0x38,0xff,0x34,0xff, +0x43,0xff,0x60,0xff,0x67,0xff,0x60,0xff,0x8a,0xff,0xb8,0xff, +0xb9,0xff,0xd8,0xff,0xfe,0xff,0xef,0xff,0xea,0xff,0x4,0x0, +0x17,0x0,0x7,0x0,0xe9,0xff,0x12,0x0,0x4a,0x0,0x34,0x0, +0x45,0x0,0x91,0x0,0x9a,0x0,0x7b,0x0,0x86,0x0,0xac,0x0, +0xb6,0x0,0x95,0x0,0x8d,0x0,0xaa,0x0,0xb9,0x0,0xc7,0x0, +0xdc,0x0,0xef,0x0,0xc,0x1,0x1a,0x1,0x22,0x1,0x2f,0x1, +0x19,0x1,0xfa,0x0,0x4,0x1,0x9,0x1,0xe6,0x0,0xd3,0x0, +0xf5,0x0,0xe,0x1,0xef,0x0,0xeb,0x0,0x29,0x1,0x44,0x1, +0x1a,0x1,0x13,0x1,0x54,0x1,0x68,0x1,0x34,0x1,0x3c,0x1, +0x75,0x1,0x7d,0x1,0x78,0x1,0x7a,0x1,0x78,0x1,0x86,0x1, +0x87,0x1,0x80,0x1,0x9c,0x1,0x9f,0x1,0x6c,0x1,0x68,0x1, +0x98,0x1,0x90,0x1,0x69,0x1,0x7b,0x1,0x8e,0x1,0x67,0x1, +0x41,0x1,0x31,0x1,0x25,0x1,0x1f,0x1,0x1b,0x1,0x23,0x1, +0x17,0x1,0xf0,0x0,0xfa,0x0,0x2f,0x1,0x44,0x1,0x3d,0x1, +0x2c,0x1,0x26,0x1,0x41,0x1,0x6d,0x1,0x81,0x1,0x50,0x1, +0x1d,0x1,0x6f,0x1,0xd8,0x1,0xa5,0x1,0x4f,0x1,0x85,0x1, +0xf3,0x1,0xeb,0x1,0x8c,0x1,0x68,0x1,0x8a,0x1,0xb5,0x1, +0xb8,0x1,0x75,0x1,0x59,0x1,0x97,0x1,0x91,0x1,0x64,0x1, +0x94,0x1,0x8c,0x1,0x30,0x1,0x6b,0x1,0xd4,0x1,0x5a,0x1, +0xc8,0x0,0x2c,0x1,0x8f,0x1,0x14,0x1,0x92,0x0,0x75,0x0, +0x7e,0x0,0xe2,0x0,0xed,0x0,0x9,0x0,0x4,0x0,0x47,0x1, +0x58,0x1,0x68,0x0,0x98,0x0,0x29,0x1,0xb,0x1,0xf2,0x0, +0xd2,0x0,0x7f,0x0,0x94,0x0,0xf8,0x0,0x30,0x1,0xc,0x1, +0x9b,0x0,0x7c,0x0,0x27,0x1,0xd6,0x1,0x21,0x1,0xa3,0xff, +0xc9,0xff,0xfb,0x0,0x78,0x0,0x9,0xff,0xf6,0xfe,0x98,0xff, +0x84,0xff,0x6,0xff,0x25,0xff,0x9a,0xff,0x69,0xff,0x66,0xff, +0x4,0x0,0xb4,0xff,0x3,0xff,0x98,0xff,0x39,0x0,0xbd,0xff, +0x1d,0xff,0x1c,0xff,0xa0,0xff,0xfb,0xff,0x91,0xff,0xf7,0xfe, +0x1b,0xff,0xb3,0xff,0x9d,0xff,0xc,0xff,0x18,0xff,0x2b,0xff, +0xb7,0xfe,0xbd,0xfe,0xcb,0xfe,0xff,0xfd,0x96,0xfd,0xb,0xfe, +0x1a,0xfe,0x7d,0xfd,0x3a,0xfd,0xc0,0xfd,0x1c,0xfe,0xe6,0xfd, +0xfc,0xfd,0x2d,0xfe,0x1,0xfe,0x2b,0xfe,0x45,0xfe,0xd4,0xfd, +0xd8,0xfd,0xe8,0xfd,0x2c,0xfd,0xf7,0xfc,0x94,0xfd,0x7c,0xfd, +0xf8,0xfc,0x50,0xfd,0xc8,0xfd,0x92,0xfd,0xaf,0xfd,0x2f,0xfe, +0xf7,0xfd,0xab,0xfd,0x5,0xfe,0xf,0xfe,0xc1,0xfd,0xd3,0xfd, +0xfc,0xfd,0x2a,0xfe,0x8d,0xfe,0xbf,0xfe,0xa6,0xfe,0xc0,0xfe, +0x40,0xff,0x71,0xff,0xf5,0xfe,0xb7,0xfe,0xe6,0xfe,0xc4,0xfe, +0x95,0xfe,0x9b,0xfe,0x77,0xfe,0x6a,0xfe,0x87,0xfe,0x81,0xfe, +0x89,0xfe,0x8f,0xfe,0x64,0xfe,0x51,0xfe,0x61,0xfe,0x62,0xfe, +0x3e,0xfe,0x15,0xfe,0x2a,0xfe,0x40,0xfe,0x10,0xfe,0xc,0xfe, +0x3f,0xfe,0x2f,0xfe,0x1b,0xfe,0x5c,0xfe,0x8c,0xfe,0x6e,0xfe, +0x5f,0xfe,0x8c,0xfe,0xb1,0xfe,0xac,0xfe,0x9a,0xfe,0x75,0xfe, +0x38,0xfe,0x23,0xfe,0x3b,0xfe,0x2e,0xfe,0x0,0xfe,0xf9,0xfd, +0xc,0xfe,0x17,0xfe,0x17,0xfe,0x10,0xfe,0xf9,0xfd,0xc8,0xfd, +0xaf,0xfd,0xd2,0xfd,0xda,0xfd,0xbe,0xfd,0xec,0xfd,0x47,0xfe, +0x7f,0xfe,0xb5,0xfe,0xda,0xfe,0xf1,0xfe,0x41,0xff,0x83,0xff, +0x5b,0xff,0x22,0xff,0x2d,0xff,0x46,0xff,0x45,0xff,0x44,0xff, +0x3d,0xff,0x1d,0xff,0x1b,0xff,0x4f,0xff,0x69,0xff,0x45,0xff, +0x1a,0xff,0x3b,0xff,0xad,0xff,0xeb,0xff,0xbd,0xff,0xcb,0xff, +0x39,0x0,0x56,0x0,0x24,0x0,0x14,0x0,0xf1,0xff,0xb5,0xff, +0x9b,0xff,0x86,0xff,0x79,0xff,0x80,0xff,0x8c,0xff,0xd2,0xff, +0x24,0x0,0xc,0x0,0xf7,0xff,0x37,0x0,0x49,0x0,0x11,0x0, +0xe7,0xff,0xcc,0xff,0xba,0xff,0xe3,0xff,0x31,0x0,0x45,0x0, +0x41,0x0,0xa8,0x0,0x1f,0x1,0x16,0x1,0xf0,0x0,0x1,0x1, +0xe8,0x0,0x9b,0x0,0x66,0x0,0x58,0x0,0x47,0x0,0x1b,0x0, +0x11,0x0,0x48,0x0,0x6f,0x0,0x6e,0x0,0x75,0x0,0x82,0x0, +0x8b,0x0,0x6c,0x0,0x2a,0x0,0x39,0x0,0x68,0x0,0x24,0x0, +0xe9,0xff,0x1f,0x0,0x3d,0x0,0x37,0x0,0x3f,0x0,0x26,0x0, +0xd,0x0,0xff,0xff,0xda,0xff,0xcf,0xff,0xcd,0xff,0x93,0xff, +0x66,0xff,0x7c,0xff,0x9b,0xff,0x8e,0xff,0x6e,0xff,0x77,0xff, +0x9d,0xff,0x99,0xff,0x6b,0xff,0x5d,0xff,0x7e,0xff,0x7e,0xff, +0x6d,0xff,0xa5,0xff,0xd6,0xff,0xc9,0xff,0xf5,0xff,0x30,0x0, +0x13,0x0,0xf2,0xff,0xf2,0xff,0xec,0xff,0xde,0xff,0xb6,0xff, +0x96,0xff,0xba,0xff,0xe6,0xff,0xfa,0xff,0x2b,0x0,0x66,0x0, +0x8a,0x0,0xc0,0x0,0xf8,0x0,0xee,0x0,0xbf,0x0,0xb1,0x0, +0xb8,0x0,0xa4,0x0,0x7e,0x0,0x7f,0x0,0xb8,0x0,0xe5,0x0, +0xe5,0x0,0xf5,0x0,0x20,0x1,0x25,0x1,0xf6,0x0,0xd1,0x0, +0xc3,0x0,0x95,0x0,0x68,0x0,0x7c,0x0,0x7d,0x0,0x48,0x0, +0x5b,0x0,0xae,0x0,0xb4,0x0,0x81,0x0,0x80,0x0,0x95,0x0, +0x7a,0x0,0x3d,0x0,0xa,0x0,0x6,0x0,0x18,0x0,0x1,0x0, +0xfb,0xff,0x2e,0x0,0x21,0x0,0xdb,0xff,0xe2,0xff,0xe5,0xff, +0x7c,0xff,0x29,0xff,0x46,0xff,0x61,0xff,0x37,0xff,0x16,0xff, +0x32,0xff,0x73,0xff,0xa6,0xff,0xa6,0xff,0xa3,0xff,0xcf,0xff, +0xe4,0xff,0xcd,0xff,0xc8,0xff,0xce,0xff,0xd2,0xff,0xf5,0xff, +0x26,0x0,0x3c,0x0,0x3a,0x0,0x51,0x0,0x87,0x0,0x9d,0x0, +0x8c,0x0,0x74,0x0,0x68,0x0,0x75,0x0,0x6a,0x0,0x47,0x0, +0x59,0x0,0x83,0x0,0x97,0x0,0xc2,0x0,0xfc,0x0,0x19,0x1, +0x1f,0x1,0x33,0x1,0x49,0x1,0x29,0x1,0xf2,0x0,0xe4,0x0, +0xe2,0x0,0xdf,0x0,0xdf,0x0,0xc4,0x0,0xbf,0x0,0xed,0x0, +0x10,0x1,0x5,0x1,0xdc,0x0,0xcd,0x0,0xec,0x0,0xeb,0x0, +0xbe,0x0,0xb4,0x0,0xc0,0x0,0xbd,0x0,0xd9,0x0,0x12,0x1, +0x1d,0x1,0xfe,0x0,0xb,0x1,0x3b,0x1,0x29,0x1,0xd1,0x0, +0x9c,0x0,0xa2,0x0,0x92,0x0,0x59,0x0,0x2e,0x0,0x1e,0x0, +0x10,0x0,0xf1,0xff,0xca,0xff,0xbe,0xff,0xb5,0xff,0x9a,0xff, +0x99,0xff,0xad,0xff,0xbc,0xff,0xdb,0xff,0x8,0x0,0x39,0x0, +0x6c,0x0,0x8f,0x0,0xa9,0x0,0xb0,0x0,0xa6,0x0,0x9f,0x0, +0x7b,0x0,0x52,0x0,0x5c,0x0,0x4f,0x0,0x15,0x0,0xe,0x0, +0x37,0x0,0x49,0x0,0x44,0x0,0x49,0x0,0x6c,0x0,0x92,0x0, +0xa0,0x0,0x99,0x0,0x8a,0x0,0xa8,0x0,0xe1,0x0,0xd6,0x0, +0xae,0x0,0xc4,0x0,0xe0,0x0,0xda,0x0,0xe8,0x0,0xf,0x1, +0x15,0x1,0xf6,0x0,0xf8,0x0,0x22,0x1,0x14,0x1,0xd0,0x0, +0xbe,0x0,0xcf,0x0,0xc7,0x0,0xc3,0x0,0xd2,0x0,0xe1,0x0, +0xf0,0x0,0x0,0x1,0x16,0x1,0x1a,0x1,0x2,0x1,0xf7,0x0, +0xf2,0x0,0xc5,0x0,0x9a,0x0,0x9b,0x0,0xa3,0x0,0x84,0x0, +0x5e,0x0,0x73,0x0,0x93,0x0,0x72,0x0,0x5a,0x0,0x7e,0x0, +0x7f,0x0,0x48,0x0,0x51,0x0,0x93,0x0,0x7a,0x0,0x36,0x0, +0x62,0x0,0x9e,0x0,0x73,0x0,0x41,0x0,0x3e,0x0,0x29,0x0, +0xe2,0xff,0xa7,0xff,0xbe,0xff,0xcf,0xff,0x8a,0xff,0x67,0xff, +0x8b,0xff,0x9c,0xff,0xa5,0xff,0xbf,0xff,0xc3,0xff,0xb4,0xff, +0xbb,0xff,0xe0,0xff,0xf9,0xff,0xf2,0xff,0xe4,0xff,0xe4,0xff, +0xeb,0xff,0xe6,0xff,0xdc,0xff,0xe2,0xff,0xd5,0xff,0xae,0xff, +0xa4,0xff,0xae,0xff,0x9b,0xff,0x78,0xff,0x70,0xff,0x84,0xff, +0x85,0xff,0x78,0xff,0x7e,0xff,0x87,0xff,0x8b,0xff,0x86,0xff, +0x6f,0xff,0x67,0xff,0x69,0xff,0x63,0xff,0x6a,0xff,0x75,0xff, +0x72,0xff,0x66,0xff,0x51,0xff,0x43,0xff,0x39,0xff,0x2a,0xff, +0x1b,0xff,0x5,0xff,0xf,0xff,0x39,0xff,0x34,0xff,0x21,0xff, +0x46,0xff,0x71,0xff,0x75,0xff,0x65,0xff,0x59,0xff,0x5b,0xff, +0x4f,0xff,0x3d,0xff,0x33,0xff,0x20,0xff,0x1,0xff,0xe4,0xfe, +0xee,0xfe,0x14,0xff,0x9,0xff,0xed,0xfe,0x7,0xff,0x13,0xff, +0x2,0xff,0x6,0xff,0x1d,0xff,0x38,0xff,0x37,0xff,0x27,0xff, +0x40,0xff,0x59,0xff,0x3c,0xff,0x14,0xff,0xb,0xff,0x11,0xff, +0x8,0xff,0xfb,0xfe,0x0,0xff,0xf,0xff,0x37,0xff,0x6c,0xff, +0x80,0xff,0x88,0xff,0x89,0xff,0x7d,0xff,0x9b,0xff,0xba,0xff, +0x8e,0xff,0x68,0xff,0x85,0xff,0xae,0xff,0xc0,0xff,0xb7,0xff, +0x9a,0xff,0x95,0xff,0xa5,0xff,0x8b,0xff,0x48,0xff,0x1c,0xff, +0x1c,0xff,0x2c,0xff,0x37,0xff,0x49,0xff,0x75,0xff,0xae,0xff, +0xe4,0xff,0x12,0x0,0x1c,0x0,0x16,0x0,0x1e,0x0,0x1c,0x0, +0x9,0x0,0xf4,0xff,0xef,0xff,0x5,0x0,0x9,0x0,0xd,0x0, +0x36,0x0,0x38,0x0,0x23,0x0,0x38,0x0,0x22,0x0,0xee,0xff, +0xe4,0xff,0xd2,0xff,0xd1,0xff,0xf9,0xff,0xf6,0xff,0xf5,0xff, +0x31,0x0,0x4e,0x0,0x47,0x0,0x67,0x0,0x87,0x0,0x7c,0x0, +0x74,0x0,0x7d,0x0,0x7f,0x0,0x99,0x0,0xba,0x0,0xb6,0x0, +0xe0,0x0,0x25,0x1,0x2,0x1,0xdd,0x0,0xa,0x1,0xfa,0x0, +0xae,0x0,0x8e,0x0,0x86,0x0,0x90,0x0,0xb3,0x0,0xc5,0x0, +0xdc,0x0,0xfe,0x0,0xb,0x1,0x1a,0x1,0x21,0x1,0xfe,0x0, +0xdc,0x0,0xdc,0x0,0xe2,0x0,0xdb,0x0,0xc4,0x0,0xbb,0x0, +0xc7,0x0,0xcc,0x0,0xca,0x0,0xb9,0x0,0x93,0x0,0x9f,0x0, +0xcc,0x0,0xb4,0x0,0x75,0x0,0x64,0x0,0x82,0x0,0xa2,0x0, +0x7c,0x0,0x31,0x0,0x2b,0x0,0x41,0x0,0x37,0x0,0x29,0x0, +0x9,0x0,0xe5,0xff,0xf7,0xff,0x1c,0x0,0x2f,0x0,0x25,0x0, +0x4,0x0,0xe,0x0,0x3d,0x0,0x2b,0x0,0xd3,0xff,0x97,0xff, +0x9d,0xff,0x97,0xff,0x65,0xff,0x54,0xff,0x61,0xff,0x6f,0xff, +0x9e,0xff,0xbd,0xff,0xa8,0xff,0xa8,0xff,0xc5,0xff,0xe0,0xff, +0xe7,0xff,0xba,0xff,0x9f,0xff,0xc4,0xff,0xca,0xff,0xb0,0xff, +0xae,0xff,0x9c,0xff,0x95,0xff,0xc1,0xff,0xcc,0xff,0xa1,0xff, +0x96,0xff,0xb7,0xff,0xcc,0xff,0xb8,0xff,0x99,0xff,0x9f,0xff, +0xb2,0xff,0xa2,0xff,0x8c,0xff,0x8e,0xff,0x87,0xff,0x77,0xff, +0x81,0xff,0x98,0xff,0x9b,0xff,0x8e,0xff,0x95,0xff,0xae,0xff, +0xac,0xff,0x8f,0xff,0x80,0xff,0x80,0xff,0x81,0xff,0x7d,0xff, +0x70,0xff,0x6d,0xff,0x6e,0xff,0x5a,0xff,0x48,0xff,0x4d,0xff, +0x52,0xff,0x49,0xff,0x44,0xff,0x44,0xff,0x41,0xff,0x47,0xff, +0x51,0xff,0x54,0xff,0x57,0xff,0x5d,0xff,0x5c,0xff,0x4f,0xff, +0x37,0xff,0x3c,0xff,0x55,0xff,0x42,0xff,0x1f,0xff,0x2b,0xff, +0x47,0xff,0x3e,0xff,0x32,0xff,0x53,0xff,0x72,0xff,0x5e,0xff, +0x54,0xff,0x76,0xff,0x7a,0xff,0x5e,0xff,0x60,0xff,0x76,0xff, +0x80,0xff,0x7b,0xff,0x80,0xff,0xa1,0xff,0xba,0xff,0xae,0xff, +0xac,0xff,0xc7,0xff,0xd3,0xff,0xc4,0xff,0xbd,0xff,0xc6,0xff, +0xcf,0xff,0xce,0xff,0xcf,0xff,0xdd,0xff,0xe7,0xff,0xeb,0xff, +0x0,0x0,0xc,0x0,0x2,0x0,0xd,0x0,0x26,0x0,0x2f,0x0, +0x2c,0x0,0x2e,0x0,0x34,0x0,0x32,0x0,0x28,0x0,0x2a,0x0, +0x1f,0x0,0x6,0x0,0x7,0x0,0x1b,0x0,0x1f,0x0,0x14,0x0, +0x5,0x0,0xb,0x0,0x1c,0x0,0x1f,0x0,0x1f,0x0,0x1b,0x0, +0x15,0x0,0x10,0x0,0x0,0x0,0xec,0xff,0xea,0xff,0xed,0xff, +0xe8,0xff,0xe5,0xff,0xf0,0xff,0xf5,0xff,0xeb,0xff,0xf6,0xff, +0x8,0x0,0xf9,0xff,0xe5,0xff,0xe5,0xff,0xe4,0xff,0xd8,0xff, +0xc4,0xff,0xbd,0xff,0xc7,0xff,0xcd,0xff,0xd0,0xff,0xd9,0xff, +0xd8,0xff,0xc7,0xff,0xc7,0xff,0xda,0xff,0xcc,0xff,0xaa,0xff, +0xb8,0xff,0xcc,0xff,0xa9,0xff,0x92,0xff,0xa8,0xff,0xae,0xff, +0x9f,0xff,0xa6,0xff,0xb7,0xff,0xae,0xff,0xa1,0xff,0xb2,0xff, +0xc9,0xff,0xcd,0xff,0xc5,0xff,0xc4,0xff,0xd4,0xff,0xdd,0xff, +0xd1,0xff,0xba,0xff,0xa8,0xff,0xa9,0xff,0xa5,0xff,0x8d,0xff, +0x8f,0xff,0xa3,0xff,0xa6,0xff,0xb8,0xff,0xce,0xff,0xcf,0xff, +0xce,0xff,0xc1,0xff,0xaf,0xff,0xb3,0xff,0xb3,0xff,0x9c,0xff, +0x89,0xff,0x85,0xff,0x83,0xff,0x7d,0xff,0x89,0xff,0xa7,0xff, +0xb8,0xff,0xbf,0xff,0xcc,0xff,0xd2,0xff,0xd6,0xff,0xde,0xff, +0xd4,0xff,0xc4,0xff,0xc6,0xff,0xbe,0xff,0xab,0xff,0xb6,0xff, +0xc3,0xff,0xb8,0xff,0xc3,0xff,0xe1,0xff,0xf1,0xff,0xfa,0xff, +0xa,0x0,0x29,0x0,0x3f,0x0,0x30,0x0,0x34,0x0,0x49,0x0, +0x37,0x0,0x27,0x0,0x37,0x0,0x37,0x0,0x20,0x0,0x19,0x0, +0x2e,0x0,0x3d,0x0,0x29,0x0,0x24,0x0,0x45,0x0,0x5c,0x0, +0x6a,0x0,0x86,0x0,0xa0,0x0,0xac,0x0,0xb0,0x0,0xb9,0x0, +0xc9,0x0,0xc8,0x0,0xb6,0x0,0xaa,0x0,0xa0,0x0,0x88,0x0, +0x6f,0x0,0x6e,0x0,0x70,0x0,0x56,0x0,0x42,0x0,0x5b,0x0, +0x76,0x0,0x6d,0x0,0x6c,0x0,0x88,0x0,0x98,0x0,0x8e,0x0, +0x8e,0x0,0xa4,0x0,0xb0,0x0,0x9c,0x0,0x9c,0x0,0xbc,0x0, +0xae,0x0,0x7a,0x0,0x85,0x0,0xa5,0x0,0x78,0x0,0x3d,0x0, +0x48,0x0,0x54,0x0,0x2d,0x0,0x1e,0x0,0x37,0x0,0x2b,0x0, +0x14,0x0,0x3b,0x0,0x6c,0x0,0x64,0x0,0x5a,0x0,0x8f,0x0, +0xc5,0x0,0xbb,0x0,0xad,0x0,0xb7,0x0,0xba,0x0,0xba,0x0, +0xb3,0x0,0xa2,0x0,0x93,0x0,0x7e,0x0,0x7d,0x0,0x95,0x0, +0x8f,0x0,0x7b,0x0,0x7a,0x0,0x7f,0x0,0x9d,0x0,0xba,0x0, +0xa3,0x0,0x99,0x0,0xc1,0x0,0xcb,0x0,0xb5,0x0,0xb9,0x0, +0xc1,0x0,0xb4,0x0,0xb4,0x0,0xbb,0x0,0xb3,0x0,0xb1,0x0, +0xb6,0x0,0xb6,0x0,0xb4,0x0,0xaa,0x0,0x9e,0x0,0x99,0x0, +0x97,0x0,0x8f,0x0,0x79,0x0,0x6a,0x0,0x79,0x0,0x83,0x0, +0x77,0x0,0x6a,0x0,0x5f,0x0,0x5d,0x0,0x5e,0x0,0x54,0x0, +0x32,0x0,0xfa,0xff,0xe9,0xff,0x3,0x0,0xf2,0xff,0xc9,0xff, +0xc6,0xff,0xcd,0xff,0xde,0xff,0xf4,0xff,0xdd,0xff,0xbc,0xff, +0xc5,0xff,0xe3,0xff,0xeb,0xff,0xc9,0xff,0xa3,0xff,0xa6,0xff, +0xba,0xff,0xb2,0xff,0x9a,0xff,0x99,0xff,0xa8,0xff,0xb7,0xff, +0xc5,0xff,0xc3,0xff,0xba,0xff,0xc5,0xff,0xda,0xff,0xe5,0xff, +0xce,0xff,0x97,0xff,0x8d,0xff,0xca,0xff,0xe0,0xff,0x95,0xff, +0x59,0xff,0x8d,0xff,0xc9,0xff,0xa4,0xff,0x7a,0xff,0x86,0xff, +0x9c,0xff,0xb4,0xff,0xb1,0xff,0x88,0xff,0x84,0xff,0xa9,0xff, +0xb8,0xff,0xa7,0xff,0x9c,0xff,0xa6,0xff,0x9d,0xff,0x8b,0xff, +0xa6,0xff,0xa4,0xff,0x52,0xff,0x35,0xff,0x7a,0xff,0x84,0xff, +0x23,0xff,0xeb,0xfe,0x21,0xff,0x58,0xff,0x2c,0xff,0xe4,0xfe, +0xff,0xfe,0x4e,0xff,0x4b,0xff,0x1f,0xff,0x31,0xff,0x50,0xff, +0x3e,0xff,0x2a,0xff,0x39,0xff,0x36,0xff,0x0,0xff,0xe3,0xfe, +0xa,0xff,0x12,0xff,0xdc,0xfe,0xbd,0xfe,0xd1,0xfe,0xeb,0xfe, +0xeb,0xfe,0xe5,0xfe,0xf9,0xfe,0xb,0xff,0x18,0xff,0x4e,0xff, +0x6a,0xff,0x3a,0xff,0x2f,0xff,0x69,0xff,0x6f,0xff,0x33,0xff, +0x26,0xff,0x3d,0xff,0x1c,0xff,0xe2,0xfe,0xe0,0xfe,0xf7,0xfe, +0xdc,0xfe,0xb3,0xfe,0xd8,0xfe,0x1f,0xff,0x10,0xff,0xe1,0xfe, +0x10,0xff,0x66,0xff,0x71,0xff,0x4e,0xff,0x4f,0xff,0x77,0xff, +0x91,0xff,0x87,0xff,0x7f,0xff,0x87,0xff,0x73,0xff,0x4f,0xff, +0x59,0xff,0x69,0xff,0x44,0xff,0x24,0xff,0x35,0xff,0x4d,0xff, +0x56,0xff,0x57,0xff,0x66,0xff,0x9a,0xff,0xca,0xff,0xd9,0xff, +0xd7,0xff,0xce,0xff,0xda,0xff,0xfc,0xff,0xef,0xff,0xbe,0xff, +0xb4,0xff,0xb8,0xff,0xad,0xff,0xaa,0xff,0xa0,0xff,0x88,0xff, +0x80,0xff,0x7e,0xff,0x85,0xff,0x97,0xff,0x8d,0xff,0x7f,0xff, +0xa8,0xff,0xde,0xff,0xe4,0xff,0xda,0xff,0xf5,0xff,0x23,0x0, +0x32,0x0,0x1f,0x0,0x17,0x0,0x2d,0x0,0x47,0x0,0x46,0x0, +0x3c,0x0,0x3e,0x0,0x2f,0x0,0x10,0x0,0x18,0x0,0x25,0x0, +0xff,0xff,0xdd,0xff,0xec,0xff,0xfe,0xff,0xf5,0xff,0xe7,0xff, +0xeb,0xff,0x6,0x0,0x24,0x0,0x2f,0x0,0x2e,0x0,0x3a,0x0, +0x52,0x0,0x5d,0x0,0x54,0x0,0x43,0x0,0x30,0x0,0x2a,0x0, +0x30,0x0,0x26,0x0,0xb,0x0,0xf6,0xff,0xf8,0xff,0x14,0x0, +0x2c,0x0,0x28,0x0,0x2c,0x0,0x4e,0x0,0x78,0x0,0xa0,0x0, +0xbc,0x0,0xc1,0x0,0xc6,0x0,0xe0,0x0,0xfc,0x0,0xf8,0x0, +0xd5,0x0,0xbe,0x0,0xbb,0x0,0xa6,0x0,0x7c,0x0,0x5d,0x0, +0x48,0x0,0x34,0x0,0x33,0x0,0x46,0x0,0x51,0x0,0x51,0x0, +0x65,0x0,0x8b,0x0,0xa6,0x0,0xaf,0x0,0xb3,0x0,0xc0,0x0, +0xce,0x0,0xc7,0x0,0xb6,0x0,0xb3,0x0,0xb2,0x0,0xa1,0x0, +0x99,0x0,0x9d,0x0,0x8c,0x0,0x74,0x0,0x76,0x0,0x7b,0x0, +0x6d,0x0,0x62,0x0,0x65,0x0,0x67,0x0,0x6a,0x0,0x7d,0x0, +0x95,0x0,0x99,0x0,0x9d,0x0,0xb4,0x0,0xc3,0x0,0xbf,0x0, +0xbe,0x0,0xc3,0x0,0xbe,0x0,0xad,0x0,0xa5,0x0,0xa6,0x0, +0x9a,0x0,0x8f,0x0,0x93,0x0,0x94,0x0,0x8b,0x0,0x84,0x0, +0x84,0x0,0x82,0x0,0x7e,0x0,0x85,0x0,0x8d,0x0,0x97,0x0, +0xb0,0x0,0xb2,0x0,0xae,0x0,0xd3,0x0,0xe4,0x0,0xc8,0x0, +0xc1,0x0,0xce,0x0,0xca,0x0,0xbb,0x0,0xb0,0x0,0xad,0x0, +0xaf,0x0,0xb3,0x0,0xba,0x0,0xb7,0x0,0xb0,0x0,0xb7,0x0, +0xc6,0x0,0xce,0x0,0xcc,0x0,0xcf,0x0,0xcf,0x0,0xcb,0x0, +0xcc,0x0,0xc6,0x0,0xbc,0x0,0xbd,0x0,0xad,0x0,0x92,0x0, +0x89,0x0,0x7c,0x0,0x6e,0x0,0x6f,0x0,0x69,0x0,0x60,0x0, +0x65,0x0,0x6f,0x0,0x76,0x0,0x74,0x0,0x70,0x0,0x78,0x0, +0x87,0x0,0x8f,0x0,0x87,0x0,0x7f,0x0,0x80,0x0,0x74,0x0, +0x66,0x0,0x63,0x0,0x59,0x0,0x50,0x0,0x51,0x0,0x4c,0x0, +0x47,0x0,0x51,0x0,0x66,0x0,0x70,0x0,0x71,0x0,0x83,0x0, +0x93,0x0,0x87,0x0,0x7e,0x0,0x80,0x0,0x76,0x0,0x66,0x0, +0x61,0x0,0x66,0x0,0x5e,0x0,0x52,0x0,0x5b,0x0,0x5d,0x0, +0x4a,0x0,0x45,0x0,0x57,0x0,0x64,0x0,0x56,0x0,0x4e,0x0, +0x67,0x0,0x75,0x0,0x70,0x0,0x70,0x0,0x68,0x0,0x65,0x0, +0x68,0x0,0x5b,0x0,0x60,0x0,0x69,0x0,0x4c,0x0,0x42,0x0, +0x58,0x0,0x57,0x0,0x4a,0x0,0x51,0x0,0x64,0x0,0x69,0x0, +0x5e,0x0,0x5f,0x0,0x65,0x0,0x64,0x0,0x63,0x0,0x60,0x0, +0x60,0x0,0x64,0x0,0x60,0x0,0x5b,0x0,0x5c,0x0,0x5c,0x0, +0x5a,0x0,0x4b,0x0,0x3c,0x0,0x3a,0x0,0x32,0x0,0x25,0x0, +0x22,0x0,0x25,0x0,0x1f,0x0,0x1b,0x0,0x2b,0x0,0x34,0x0, +0x27,0x0,0x33,0x0,0x55,0x0,0x55,0x0,0x3d,0x0,0x3f,0x0, +0x4a,0x0,0x3c,0x0,0x29,0x0,0x32,0x0,0x35,0x0,0x21,0x0, +0x21,0x0,0x2c,0x0,0x25,0x0,0x21,0x0,0x2d,0x0,0x32,0x0, +0x24,0x0,0x17,0x0,0x18,0x0,0x1d,0x0,0x23,0x0,0x25,0x0, +0x18,0x0,0x11,0x0,0x19,0x0,0x1a,0x0,0x15,0x0,0x8,0x0, +0xf4,0xff,0xeb,0xff,0xea,0xff,0xde,0xff,0xd1,0xff,0xcf,0xff, +0xd5,0xff,0xda,0xff,0xd8,0xff,0xdf,0xff,0xf1,0xff,0xf5,0xff, +0xed,0xff,0xef,0xff,0xf1,0xff,0xe7,0xff,0xe4,0xff,0xe7,0xff, +0xe0,0xff,0xd8,0xff,0xd3,0xff,0xcf,0xff,0xd7,0xff,0xd9,0xff, +0xc6,0xff,0xbc,0xff,0xc2,0xff,0xbc,0xff,0xab,0xff,0xa5,0xff, +0xa2,0xff,0x9d,0xff,0x9b,0xff,0x91,0xff,0x88,0xff,0x95,0xff, +0xa2,0xff,0x9a,0xff,0x98,0xff,0xa3,0xff,0xa0,0xff,0x94,0xff, +0x95,0xff,0x9c,0xff,0x93,0xff,0x82,0xff,0x82,0xff,0x91,0xff, +0x95,0xff,0x88,0xff,0x83,0xff,0x8c,0xff,0x90,0xff,0x85,0xff, +0x7f,0xff,0x85,0xff,0x88,0xff,0x83,0xff,0x86,0xff,0x8c,0xff, +0x8c,0xff,0x8d,0xff,0x8f,0xff,0x8b,0xff,0x8b,0xff,0x88,0xff, +0x80,0xff,0x80,0xff,0x80,0xff,0x82,0xff,0x8b,0xff,0x8e,0xff, +0x8e,0xff,0x9a,0xff,0xa6,0xff,0xb0,0xff,0xb9,0xff,0xbc,0xff, +0xc1,0xff,0xc7,0xff,0xc1,0xff,0xb8,0xff,0xb9,0xff,0xc0,0xff, +0xba,0xff,0xb2,0xff,0xbc,0xff,0xc2,0xff,0xb6,0xff,0xb2,0xff, +0xb9,0xff,0xb6,0xff,0xac,0xff,0xab,0xff,0xb1,0xff,0xb9,0xff, +0xba,0xff,0xb7,0xff,0xbe,0xff,0xca,0xff,0xcd,0xff,0xcf,0xff, +0xcf,0xff,0xca,0xff,0xcd,0xff,0xcd,0xff,0xc0,0xff,0xbe,0xff, +0xbd,0xff,0xb6,0xff,0xb6,0xff,0xba,0xff,0xbe,0xff,0xc3,0xff, +0xc0,0xff,0xbe,0xff,0xc6,0xff,0xc6,0xff,0xbd,0xff,0xb3,0xff, +0xa7,0xff,0xa0,0xff,0xa0,0xff,0x99,0xff,0x94,0xff,0x9c,0xff, +0xa3,0xff,0x9f,0xff,0x9e,0xff,0xa5,0xff,0xad,0xff,0xb6,0xff, +0xb2,0xff,0xad,0xff,0xbb,0xff,0xc5,0xff,0xc6,0xff,0xca,0xff, +0xc5,0xff,0xc6,0xff,0xcd,0xff,0xc4,0xff,0xc0,0xff,0xcc,0xff, +0xca,0xff,0xbc,0xff,0xc2,0xff,0xd2,0xff,0xcf,0xff,0xca,0xff, +0xdb,0xff,0xea,0xff,0xe6,0xff,0xe7,0xff,0xee,0xff,0xed,0xff, +0xe3,0xff,0xd9,0xff,0xd7,0xff,0xd2,0xff,0xc8,0xff,0xc9,0xff, +0xcd,0xff,0xc6,0xff,0xc4,0xff,0xcc,0xff,0xce,0xff,0xc4,0xff, +0xc0,0xff,0xcf,0xff,0xd5,0xff,0xc8,0xff,0xc0,0xff,0xc4,0xff, +0xc3,0xff,0xbc,0xff,0xb9,0xff,0xbc,0xff,0xbd,0xff,0xb9,0xff, +0xb3,0xff,0xb1,0xff,0xba,0xff,0xbc,0xff,0xb1,0xff,0xb0,0xff, +0xb7,0xff,0xb3,0xff,0xa5,0xff,0xa4,0xff,0xae,0xff,0xae,0xff, +0xa9,0xff,0xa7,0xff,0xa3,0xff,0xa8,0xff,0xb1,0xff,0xb0,0xff, +0xb2,0xff,0xb6,0xff,0xad,0xff,0xaf,0xff,0xb5,0xff,0xa6,0xff, +0x9c,0xff,0xa5,0xff,0xa8,0xff,0xa4,0xff,0xa4,0xff,0xa4,0xff, +0xa7,0xff,0xaa,0xff,0xaa,0xff,0xb1,0xff,0xb4,0xff,0xad,0xff, +0xb2,0xff,0xbb,0xff,0xb3,0xff,0xac,0xff,0xad,0xff,0xa7,0xff, +0x9e,0xff,0x98,0xff,0x94,0xff,0x8e,0xff,0x8a,0xff,0x8e,0xff, +0x96,0xff,0x9a,0xff,0xa1,0xff,0xab,0xff,0xb4,0xff,0xbe,0xff, +0xc4,0xff,0xc5,0xff,0xc1,0xff,0xb7,0xff,0xaf,0xff,0xb1,0xff, +0xb1,0xff,0xa6,0xff,0x9a,0xff,0x9c,0xff,0x9d,0xff,0x9a,0xff, +0x9f,0xff,0x9b,0xff,0x98,0xff,0xa8,0xff,0xa6,0xff,0x9c,0xff, +0xb0,0xff,0xb6,0xff,0xae,0xff,0xc0,0xff,0xcd,0xff,0xc9,0xff, +0xc7,0xff,0xc4,0xff,0xc3,0xff,0xbf,0xff,0xb6,0xff,0xaf,0xff, +0xa6,0xff,0xa2,0xff,0xb0,0xff,0xb7,0xff,0xb6,0xff,0xbd,0xff, +0xbf,0xff,0xbb,0xff,0xbe,0xff,0xc7,0xff,0xce,0xff,0xd6,0xff, +0xe1,0xff,0xde,0xff,0xd5,0xff,0xdf,0xff,0xeb,0xff,0xe8,0xff, +0xe3,0xff,0xe0,0xff,0xde,0xff,0xd8,0xff,0xcd,0xff,0xcc,0xff, +0xd0,0xff,0xce,0xff,0xd0,0xff,0xd5,0xff,0xda,0xff,0xe8,0xff, +0xf5,0xff,0xf8,0xff,0x0,0x0,0x7,0x0,0xfd,0xff,0xf6,0xff, +0x3,0x0,0xd,0x0,0x9,0x0,0xa,0x0,0xd,0x0,0x6,0x0, +0x3,0x0,0x9,0x0,0x9,0x0,0xfd,0xff,0xf7,0xff,0x5,0x0, +0x13,0x0,0x15,0x0,0x1a,0x0,0x28,0x0,0x39,0x0,0x44,0x0, +0x4b,0x0,0x59,0x0,0x5f,0x0,0x59,0x0,0x55,0x0,0x52,0x0, +0x52,0x0,0x51,0x0,0x45,0x0,0x42,0x0,0x44,0x0,0x33,0x0, +0x2b,0x0,0x34,0x0,0x33,0x0,0x32,0x0,0x38,0x0,0x40,0x0, +0x47,0x0,0x4f,0x0,0x5e,0x0,0x66,0x0,0x60,0x0,0x5e,0x0, +0x63,0x0,0x5f,0x0,0x5e,0x0,0x5d,0x0,0x52,0x0,0x4b,0x0, +0x4c,0x0,0x4d,0x0,0x44,0x0,0x37,0x0,0x36,0x0,0x38,0x0, +0x30,0x0,0x29,0x0,0x2b,0x0,0x2f,0x0,0x2f,0x0,0x29,0x0, +0x2a,0x0,0x31,0x0,0x35,0x0,0x38,0x0,0x35,0x0,0x2a,0x0, +0x2a,0x0,0x2b,0x0,0x25,0x0,0x26,0x0,0x27,0x0,0x22,0x0, +0x20,0x0,0x1d,0x0,0x1c,0x0,0x1c,0x0,0x16,0x0,0x1a,0x0, +0x20,0x0,0x1b,0x0,0x1f,0x0,0x22,0x0,0x19,0x0,0x1d,0x0, +0x21,0x0,0x1a,0x0,0x19,0x0,0x1c,0x0,0x1c,0x0,0x1a,0x0, +0x11,0x0,0x12,0x0,0x18,0x0,0x16,0x0,0x1b,0x0,0x1f,0x0, +0x1b,0x0,0x1c,0x0,0x21,0x0,0x24,0x0,0x2b,0x0,0x2e,0x0, +0x32,0x0,0x3d,0x0,0x3d,0x0,0x34,0x0,0x36,0x0,0x3e,0x0, +0x3e,0x0,0x3c,0x0,0x3b,0x0,0x37,0x0,0x2d,0x0,0x24,0x0, +0x22,0x0,0x22,0x0,0x1f,0x0,0x22,0x0,0x27,0x0,0x27,0x0, +0x2c,0x0,0x38,0x0,0x3f,0x0,0x3f,0x0,0x43,0x0,0x4c,0x0, +0x4d,0x0,0x49,0x0,0x4c,0x0,0x4e,0x0,0x49,0x0,0x40,0x0, +0x39,0x0,0x38,0x0,0x36,0x0,0x33,0x0,0x3a,0x0,0x40,0x0, +0x42,0x0,0x49,0x0,0x4d,0x0,0x52,0x0,0x55,0x0,0x4c,0x0, +0x51,0x0,0x60,0x0,0x5f,0x0,0x5e,0x0,0x56,0x0,0x45,0x0, +0x48,0x0,0x47,0x0,0x37,0x0,0x38,0x0,0x39,0x0,0x35,0x0, +0x3b,0x0,0x3b,0x0,0x3e,0x0,0x44,0x0,0x3f,0x0,0x42,0x0, +0x4e,0x0,0x4d,0x0,0x46,0x0,0x42,0x0,0x3d,0x0,0x3a,0x0, +0x38,0x0,0x37,0x0,0x30,0x0,0x27,0x0,0x22,0x0,0x19,0x0, +0x12,0x0,0x12,0x0,0x11,0x0,0x12,0x0,0x16,0x0,0x19,0x0, +0x1b,0x0,0x19,0x0,0x1d,0x0,0x24,0x0,0x28,0x0,0x27,0x0, +0x1f,0x0,0x1f,0x0,0x25,0x0,0x1e,0x0,0x16,0x0,0x13,0x0, +0xd,0x0,0x9,0x0,0x9,0x0,0xa,0x0,0xa,0x0,0x5,0x0, +0x2,0x0,0x3,0x0,0xfd,0xff,0xf9,0xff,0xff,0xff,0x1,0x0, +0xff,0xff,0x0,0x0,0x3,0x0,0x5,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xfa,0xff,0xef,0xff,0xef,0xff,0xf2,0xff, +0xe5,0xff,0xe0,0xff,0xea,0xff,0xea,0xff,0xeb,0xff,0xf4,0xff, +0xf8,0xff,0xf8,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff,0xfb,0xff, +0xf8,0xff,0xf7,0xff,0xf5,0xff,0xf6,0xff,0xf1,0xff,0xeb,0xff, +0xef,0xff,0xf1,0xff,0xec,0xff,0xe7,0xff,0xe8,0xff,0xee,0xff, +0xf3,0xff,0xf2,0xff,0xf5,0xff,0xf7,0xff,0xf5,0xff,0xf4,0xff, +0xf2,0xff,0xef,0xff,0xf0,0xff,0xf4,0xff,0xf2,0xff,0xf4,0xff, +0xf7,0xff,0xed,0xff,0xe4,0xff,0xea,0xff,0xea,0xff,0xe1,0xff, +0xe2,0xff,0xe7,0xff,0xe7,0xff,0xeb,0xff,0xf3,0xff,0xf4,0xff, +0xf6,0xff,0xfc,0xff,0xfc,0xff,0xf8,0xff,0xfa,0xff,0xfb,0xff, +0xf7,0xff,0xf4,0xff,0xf3,0xff,0xf0,0xff,0xe7,0xff,0xde,0xff, +0xe2,0xff,0xe7,0xff,0xe8,0xff,0xeb,0xff,0xf0,0xff,0xf3,0xff, +0xf2,0xff,0xee,0xff,0xed,0xff,0xee,0xff,0xee,0xff,0xea,0xff, +0xe4,0xff,0xe4,0xff,0xe6,0xff,0xe9,0xff,0xe9,0xff,0xe5,0xff, +0xe6,0xff,0xe9,0xff,0xe5,0xff,0xea,0xff,0xf0,0xff,0xea,0xff, +0xe9,0xff,0xef,0xff,0xf4,0xff,0xf5,0xff,0xf0,0xff,0xf1,0xff, +0xf8,0xff,0xf4,0xff,0xf0,0xff,0xf3,0xff,0xf4,0xff,0xf4,0xff, +0xeb,0xff,0xe1,0xff,0xe0,0xff,0xd9,0xff,0xd7,0xff,0xdc,0xff, +0xd7,0xff,0xd2,0xff,0xd3,0xff,0xcd,0xff,0xc9,0xff,0xce,0xff, +0xce,0xff,0xcf,0xff,0xd4,0xff,0xd7,0xff,0xd6,0xff,0xd6,0xff, +0xd6,0xff,0xd4,0xff,0xda,0xff,0xdf,0xff,0xdb,0xff,0xdb,0xff, +0xe1,0xff,0xda,0xff,0xd2,0xff,0xd1,0xff,0xd2,0xff,0xd1,0xff, +0xce,0xff,0xcf,0xff,0xd3,0xff,0xd3,0xff,0xd3,0xff,0xd6,0xff, +0xd4,0xff,0xd1,0xff,0xd3,0xff,0xd8,0xff,0xd9,0xff,0xd5,0xff, +0xd1,0xff,0xd1,0xff,0xce,0xff,0xc6,0xff,0xc2,0xff,0xc8,0xff, +0xca,0xff,0xc6,0xff,0xc6,0xff,0xc9,0xff,0xcb,0xff,0xca,0xff, +0xc8,0xff,0xc9,0xff,0xcc,0xff,0xcb,0xff,0xca,0xff,0xc9,0xff, +0xc7,0xff,0xc8,0xff,0xc9,0xff,0xc6,0xff,0xcc,0xff,0xd2,0xff, +0xce,0xff,0xcd,0xff,0xd0,0xff,0xd4,0xff,0xd7,0xff,0xd3,0xff, +0xcd,0xff,0xd1,0xff,0xd3,0xff,0xd1,0xff,0xcd,0xff,0xc5,0xff, +0xc3,0xff,0xc8,0xff,0xc9,0xff,0xc8,0xff,0xc4,0xff,0xbf,0xff, +0xc1,0xff,0xc5,0xff,0xca,0xff,0xcd,0xff,0xca,0xff,0xce,0xff, +0xda,0xff,0xdc,0xff,0xd6,0xff,0xd4,0xff,0xd6,0xff,0xd5,0xff, +0xd3,0xff,0xde,0xff,0xe4,0xff,0xdb,0xff,0xdc,0xff,0xe0,0xff, +0xd8,0xff,0xd8,0xff,0xdb,0xff,0xd8,0xff,0xd5,0xff,0xd0,0xff, +0xcb,0xff,0xc2,0xff,0xb9,0xff,0xba,0xff,0xbe,0xff,0xc1,0xff, +0xc7,0xff,0xbf,0xff,0xad,0xff,0xb4,0xff,0xc3,0xff,0xc6,0xff, +0xc7,0xff,0xc7,0xff,0xc6,0xff,0xc7,0xff,0xc0,0xff,0xb3,0xff, +0xb2,0xff,0xad,0xff,0x9b,0xff,0x90,0xff,0x8b,0xff,0x88,0xff, +0x8f,0xff,0x95,0xff,0x97,0xff,0x98,0xff,0x94,0xff,0x9a,0xff, +0xa7,0xff,0xa6,0xff,0xaa,0xff,0xb6,0xff,0xb7,0xff,0xb3,0xff, +0xb2,0xff,0xb6,0xff,0xbc,0xff,0xbb,0xff,0xbf,0xff,0xc7,0xff, +0xc7,0xff,0xc8,0xff,0xc5,0xff,0xc4,0xff,0xc9,0xff,0xca,0xff, +0xcc,0xff,0xd7,0xff,0xdd,0xff,0xdf,0xff,0xde,0xff,0xd8,0xff, +0xd9,0xff,0xdb,0xff,0xdf,0xff,0xe9,0xff,0xed,0xff,0xf4,0xff, +0x2,0x0,0xc,0x0,0x19,0x0,0x27,0x0,0x2f,0x0,0x38,0x0, +0x3c,0x0,0x3b,0x0,0x3b,0x0,0x3a,0x0,0x3f,0x0,0x4b,0x0, +0x4d,0x0,0x51,0x0,0x5f,0x0,0x66,0x0,0x63,0x0,0x69,0x0, +0x74,0x0,0x77,0x0,0x77,0x0,0x7d,0x0,0x7e,0x0,0x81,0x0, +0x86,0x0,0x86,0x0,0x80,0x0,0x7f,0x0,0x84,0x0,0x82,0x0, +0x77,0x0,0x75,0x0,0x75,0x0,0x72,0x0,0x72,0x0,0x72,0x0, +0x76,0x0,0x7d,0x0,0x78,0x0,0x75,0x0,0x75,0x0,0x70,0x0, +0x72,0x0,0x72,0x0,0x6c,0x0,0x6f,0x0,0x72,0x0,0x73,0x0, +0x78,0x0,0x71,0x0,0x6f,0x0,0x74,0x0,0x72,0x0,0x75,0x0, +0x75,0x0,0x6d,0x0,0x6c,0x0,0x68,0x0,0x64,0x0,0x69,0x0, +0x64,0x0,0x5e,0x0,0x5e,0x0,0x59,0x0,0x59,0x0,0x5d,0x0, +0x5b,0x0,0x5c,0x0,0x60,0x0,0x5f,0x0,0x57,0x0,0x4b,0x0, +0x4d,0x0,0x56,0x0,0x55,0x0,0x55,0x0,0x53,0x0,0x4e,0x0, +0x53,0x0,0x58,0x0,0x53,0x0,0x53,0x0,0x5a,0x0,0x5e,0x0, +0x62,0x0,0x61,0x0,0x5e,0x0,0x63,0x0,0x65,0x0,0x61,0x0, +0x61,0x0,0x5d,0x0,0x56,0x0,0x58,0x0,0x56,0x0,0x4d,0x0, +0x50,0x0,0x53,0x0,0x4b,0x0,0x45,0x0,0x46,0x0,0x44,0x0, +0x42,0x0,0x43,0x0,0x3d,0x0,0x35,0x0,0x37,0x0,0x38,0x0, +0x31,0x0,0x2d,0x0,0x2e,0x0,0x2f,0x0,0x2f,0x0,0x2a,0x0, +0x25,0x0,0x22,0x0,0x1d,0x0,0x18,0x0,0x16,0x0,0x13,0x0, +0xc,0x0,0x8,0x0,0x9,0x0,0x2,0x0,0xf6,0xff,0xf2,0xff, +0xf1,0xff,0xeb,0xff,0xe6,0xff,0xe6,0xff,0xe6,0xff,0xe1,0xff, +0xde,0xff,0xe2,0xff,0xe0,0xff,0xd9,0xff,0xd9,0xff,0xdb,0xff, +0xd8,0xff,0xd7,0xff,0xd6,0xff,0xd0,0xff,0xcc,0xff,0xcf,0xff, +0xce,0xff,0xcb,0xff,0xd0,0xff,0xd1,0xff,0xcd,0xff,0xd2,0xff, +0xd3,0xff,0xcd,0xff,0xd2,0xff,0xd5,0xff,0xd4,0xff,0xd9,0xff, +0xda,0xff,0xd8,0xff,0xd7,0xff,0xd7,0xff,0xdd,0xff,0xd9,0xff, +0xce,0xff,0xcf,0xff,0xd0,0xff,0xcc,0xff,0xcc,0xff,0xc9,0xff, +0xca,0xff,0xcf,0xff,0xc8,0xff,0xc4,0xff,0xc4,0xff,0xbf,0xff, +0xc1,0xff,0xc7,0xff,0xc1,0xff,0xba,0xff,0xb8,0xff,0xb6,0xff, +0xb5,0xff,0xb3,0xff,0xb2,0xff,0xb3,0xff,0xaf,0xff,0xac,0xff, +0xb1,0xff,0xad,0xff,0xa4,0xff,0xa8,0xff,0xae,0xff,0xb0,0xff, +0xb7,0xff,0xbc,0xff,0xbd,0xff,0xc2,0xff,0xc5,0xff,0xc2,0xff, +0xc0,0xff,0xbf,0xff,0xbe,0xff,0xc1,0xff,0xc9,0xff,0xcb,0xff, +0xcd,0xff,0xd3,0xff,0xd3,0xff,0xd0,0xff,0xd5,0xff,0xd8,0xff, +0xd7,0xff,0xdc,0xff,0xe0,0xff,0xdd,0xff,0xdb,0xff,0xda,0xff, +0xd9,0xff,0xdb,0xff,0xdd,0xff,0xdb,0xff,0xd7,0xff,0xd5,0xff, +0xd9,0xff,0xdc,0xff,0xda,0xff,0xdd,0xff,0xe9,0xff,0xef,0xff, +0xf1,0xff,0xf5,0xff,0xee,0xff,0xe8,0xff,0xee,0xff,0xf0,0xff, +0xe6,0xff,0xde,0xff,0xda,0xff,0xd8,0xff,0xd9,0xff,0xda,0xff, +0xd6,0xff,0xd2,0xff,0xd0,0xff,0xc8,0xff,0xc5,0xff,0xca,0xff, +0xcc,0xff,0xce,0xff,0xd0,0xff,0xcd,0xff,0xd0,0xff,0xcf,0xff, +0xc6,0xff,0xc7,0xff,0xc7,0xff,0xc3,0xff,0xc8,0xff,0xc8,0xff, +0xc5,0xff,0xc7,0xff,0xc3,0xff,0xc8,0xff,0xd0,0xff,0xc9,0xff, +0xc6,0xff,0xcb,0xff,0xcf,0xff,0xd1,0xff,0xce,0xff,0xcd,0xff, +0xd2,0xff,0xd0,0xff,0xd1,0xff,0xd4,0xff,0xce,0xff,0xcf,0xff, +0xd5,0xff,0xd3,0xff,0xd1,0xff,0xd6,0xff,0xd9,0xff,0xd8,0xff, +0xd9,0xff,0xdb,0xff,0xdb,0xff,0xe3,0xff,0xea,0xff,0xe7,0xff, +0xec,0xff,0xed,0xff,0xe8,0xff,0xed,0xff,0xee,0xff,0xe6,0xff, +0xe8,0xff,0xe7,0xff,0xdf,0xff,0xe0,0xff,0xe4,0xff,0xe6,0xff, +0xe5,0xff,0xe5,0xff,0xe5,0xff,0xe6,0xff,0xea,0xff,0xe9,0xff, +0xe2,0xff,0xe6,0xff,0xee,0xff,0xe9,0xff,0xea,0xff,0xf1,0xff, +0xec,0xff,0xe8,0xff,0xee,0xff,0xeb,0xff,0xe3,0xff,0xe4,0xff, +0xe6,0xff,0xe6,0xff,0xe7,0xff,0xe5,0xff,0xe2,0xff,0xe3,0xff, +0xe2,0xff,0xdf,0xff,0xdf,0xff,0xe3,0xff,0xe5,0xff,0xe2,0xff, +0xe3,0xff,0xe9,0xff,0xe7,0xff,0xe7,0xff,0xea,0xff,0xe5,0xff, +0xe2,0xff,0xe4,0xff,0xdf,0xff,0xda,0xff,0xdb,0xff,0xdd,0xff, +0xdb,0xff,0xd4,0xff,0xd1,0xff,0xd6,0xff,0xd5,0xff,0xd3,0xff, +0xd8,0xff,0xde,0xff,0xe0,0xff,0xe4,0xff,0xe8,0xff,0xe8,0xff, +0xe6,0xff,0xe5,0xff,0xe8,0xff,0xe9,0xff,0xea,0xff,0xef,0xff, +0xef,0xff,0xec,0xff,0xee,0xff,0xf1,0xff,0xf0,0xff,0xef,0xff, +0xef,0xff,0xf2,0xff,0xf7,0xff,0xfa,0xff,0xfd,0xff,0x2,0x0, +0x1,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x3,0x0, +0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd,0xff,0xfa,0xff, +0xf8,0xff,0xf7,0xff,0xf7,0xff,0xf7,0xff,0xf4,0xff,0xef,0xff, +0xed,0xff,0xf1,0xff,0xf5,0xff,0xf3,0xff,0xf0,0xff,0xef,0xff, +0xed,0xff,0xeb,0xff,0xec,0xff,0xea,0xff,0xe6,0xff,0xe3,0xff, +0xe1,0xff,0xe0,0xff,0xe0,0xff,0xe2,0xff,0xe2,0xff,0xe0,0xff, +0xe0,0xff,0xe0,0xff,0xde,0xff,0xdc,0xff,0xdc,0xff,0xdb,0xff, +0xda,0xff,0xd8,0xff,0xd3,0xff,0xd1,0xff,0xd3,0xff,0xd4,0xff, +0xd3,0xff,0xd4,0xff,0xd7,0xff,0xd5,0xff,0xd1,0xff,0xd3,0xff, +0xd8,0xff,0xdb,0xff,0xda,0xff,0xd7,0xff,0xd7,0xff,0xd7,0xff, +0xd5,0xff,0xd6,0xff,0xd3,0xff,0xd4,0xff,0xdb,0xff,0xda,0xff, +0xd8,0xff,0xde,0xff,0xe4,0xff,0xe8,0xff,0xe6,0xff,0xe1,0xff, +0xe4,0xff,0xe6,0xff,0xe6,0xff,0xe6,0xff,0xe4,0xff,0xe9,0xff, +0xef,0xff,0xec,0xff,0xed,0xff,0xf1,0xff,0xef,0xff,0xf0,0xff, +0xed,0xff,0xe8,0xff,0xeb,0xff,0xea,0xff,0xea,0xff,0xf0,0xff, +0xef,0xff,0xf1,0xff,0xf6,0xff,0xf6,0xff,0xf7,0xff,0xfb,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0x1,0x0,0x3,0x0,0xff,0xff, +0x3,0x0,0x7,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x7,0x0,0x6,0x0,0x6,0x0,0xd,0x0,0xb,0x0,0x5,0x0, +0x7,0x0,0x6,0x0,0x2,0x0,0x3,0x0,0x6,0x0,0x8,0x0, +0xb,0x0,0x10,0x0,0xe,0x0,0xa,0x0,0x11,0x0,0x13,0x0, +0xb,0x0,0xd,0x0,0xf,0x0,0xc,0x0,0x10,0x0,0x14,0x0, +0x14,0x0,0x15,0x0,0x13,0x0,0x15,0x0,0x17,0x0,0x13,0x0, +0xe,0x0,0xc,0x0,0xb,0x0,0xc,0x0,0xa,0x0,0x9,0x0, +0xa,0x0,0x7,0x0,0x7,0x0,0x7,0x0,0x5,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x3,0x0,0x5,0x0,0x6,0x0,0x4,0x0,0x6,0x0,0x7,0x0, +0x5,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x2,0x0,0x2,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff, +0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff, +0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x3,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfb,0xff, +0xfb,0xff,0xfb,0xff,0xfa,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfb,0xff,0xfa,0xff,0xfb,0xff,0xf9,0xff,0xfa,0xff,0xfc,0xff, +0xfc,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff,0xf9,0xff,0xf5,0xff, +0xef,0xff,0xe7,0xff,0xdd,0xff,0xd3,0xff,0xc9,0xff,0xc1,0xff, +0xb9,0xff,0xae,0xff,0xa5,0xff,0x9d,0xff,0x90,0xff,0x7e,0xff, +0x6f,0xff,0x68,0xff,0x68,0xff,0x6b,0xff,0x74,0xff,0x7d,0xff, +0x82,0xff,0x8c,0xff,0x93,0xff,0x97,0xff,0xad,0xff,0xd8,0xff, +0x5,0x0,0x22,0x0,0x27,0x0,0x22,0x0,0x19,0x0,0xa,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x5,0x0,0xa,0x0,0x10,0x0, +0x21,0x0,0x3d,0x0,0x5f,0x0,0x81,0x0,0x9a,0x0,0xaa,0x0, +0xb9,0x0,0xc1,0x0,0xb4,0x0,0x8f,0x0,0x60,0x0,0x3b,0x0, +0x23,0x0,0xd,0x0,0xf8,0xff,0xed,0xff,0xea,0xff,0xf3,0xff, +0x8,0x0,0x20,0x0,0x37,0x0,0x4b,0x0,0x58,0x0,0x59,0x0, +0x4f,0x0,0x40,0x0,0x32,0x0,0x24,0x0,0x20,0x0,0x2a,0x0, +0x39,0x0,0x46,0x0,0x51,0x0,0x5a,0x0,0x62,0x0,0x6a,0x0, +0x6d,0x0,0x69,0x0,0x61,0x0,0x59,0x0,0x52,0x0,0x4f,0x0, +0x50,0x0,0x4e,0x0,0x45,0x0,0x3e,0x0,0x3a,0x0,0x37,0x0, +0x33,0x0,0x2c,0x0,0x1d,0x0,0x9,0x0,0xf9,0xff,0xef,0xff, +0xe6,0xff,0xdd,0xff,0xd8,0xff,0xd8,0xff,0xdc,0xff,0xe1,0xff, +0xe6,0xff,0xeb,0xff,0xf0,0xff,0xf5,0xff,0xf6,0xff,0xf2,0xff, +0xec,0xff,0xe8,0xff,0xe7,0xff,0xe7,0xff,0xeb,0xff,0xf2,0xff, +0xfb,0xff,0x4,0x0,0xc,0x0,0x12,0x0,0x15,0x0,0x13,0x0, +0x10,0x0,0xd,0x0,0x6,0x0,0xff,0xff,0xfa,0xff,0xf5,0xff, +0xef,0xff,0xe8,0xff,0xe1,0xff,0xda,0xff,0xd3,0xff,0xcd,0xff, +0xc5,0xff,0xbf,0xff,0xbc,0xff,0xbd,0xff,0xc3,0xff,0xcc,0xff, +0xd6,0xff,0xde,0xff,0xe4,0xff,0xe8,0xff,0xe9,0xff,0xea,0xff, +0xe9,0xff,0xe5,0xff,0xe3,0xff,0xe5,0xff,0xe7,0xff,0xea,0xff, +0xec,0xff,0xea,0xff,0xe9,0xff,0xed,0xff,0xf2,0xff,0xf5,0xff, +0xf6,0xff,0xf6,0xff,0xf3,0xff,0xf0,0xff,0xee,0xff,0xec,0xff, +0xe7,0xff,0xe2,0xff,0xe1,0xff,0xe0,0xff,0xe0,0xff,0xe1,0xff, +0xe0,0xff,0xde,0xff,0xdd,0xff,0xde,0xff,0xdf,0xff,0xe3,0xff, +0xe6,0xff,0xea,0xff,0xf0,0xff,0xf4,0xff,0xf7,0xff,0xfa,0xff, +0xfd,0xff,0x0,0x0,0x4,0x0,0x7,0x0,0x9,0x0,0xb,0x0, +0xe,0x0,0x11,0x0,0x14,0x0,0x14,0x0,0x14,0x0,0x17,0x0, +0x1f,0x0,0x29,0x0,0x30,0x0,0x32,0x0,0x30,0x0,0x29,0x0, +0x20,0x0,0x1a,0x0,0x15,0x0,0xe,0x0,0x6,0x0,0x0,0x0, +0xfa,0xff,0xf7,0xff,0xf7,0xff,0xfa,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0xfe,0xff,0xf9,0xff,0xf5,0xff,0xf4,0xff,0xf3,0xff, +0xf2,0xff,0xf3,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf9,0xff, +0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff,0xf7,0xff,0xf3,0xff, +0xf1,0xff,0xee,0xff,0xea,0xff,0xe5,0xff,0xe2,0xff,0xdf,0xff, +0xdb,0xff,0xd9,0xff,0xda,0xff,0xda,0xff,0xda,0xff,0xd9,0xff, +0xd6,0xff,0xd2,0xff,0xd1,0xff,0xcf,0xff,0xcc,0xff,0xca,0xff, +0xc9,0xff,0xc9,0xff,0xcc,0xff,0xcf,0xff,0xd1,0xff,0xd4,0xff, +0xd9,0xff,0xde,0xff,0xe3,0xff,0xe8,0xff,0xef,0xff,0xf5,0xff, +0xfa,0xff,0x0,0x0,0x6,0x0,0xc,0x0,0x13,0x0,0x1a,0x0, +0x1e,0x0,0x23,0x0,0x27,0x0,0x28,0x0,0x2b,0x0,0x2e,0x0, +0x2f,0x0,0x30,0x0,0x30,0x0,0x2f,0x0,0x2e,0x0,0x2e,0x0, +0x2f,0x0,0x30,0x0,0x31,0x0,0x31,0x0,0x2f,0x0,0x2e,0x0, +0x2b,0x0,0x28,0x0,0x25,0x0,0x22,0x0,0x1f,0x0,0x1d,0x0, +0x1d,0x0,0x1c,0x0,0x19,0x0,0x17,0x0,0x15,0x0,0x13,0x0, +0x10,0x0,0xc,0x0,0x7,0x0,0x3,0x0,0xff,0xff,0xfc,0xff, +0xf9,0xff,0xf6,0xff,0xf5,0xff,0xf3,0xff,0xf2,0xff,0xef,0xff, +0xec,0xff,0xea,0xff,0xe9,0xff,0xe6,0xff,0xe4,0xff,0xe3,0xff, +0xe1,0xff,0xde,0xff,0xda,0xff,0xd8,0xff,0xd8,0xff,0xd8,0xff, +0xd9,0xff,0xdb,0xff,0xdd,0xff,0xdf,0xff,0xe2,0xff,0xe7,0xff, +0xe9,0xff,0xed,0xff,0xf2,0xff,0xf5,0xff,0xf8,0xff,0xfb,0xff, +0xfb,0xff,0xfc,0xff,0xff,0xff,0x0,0x0,0x2,0x0,0x4,0x0, +0x5,0x0,0x7,0x0,0xa,0x0,0xb,0x0,0xc,0x0,0xe,0x0, +0xe,0x0,0xf,0x0,0xf,0x0,0xe,0x0,0xc,0x0,0xb,0x0, +0xb,0x0,0xa,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x5,0x0, +0x7,0x0,0x6,0x0,0x7,0x0,0x8,0x0,0x7,0x0,0x7,0x0, +0x7,0x0,0x6,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x8,0x0,0x9,0x0,0x9,0x0,0xa,0x0,0xb,0x0, +0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0xc,0x0, +0xd,0x0,0xe,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0xf,0x0, +0xe,0x0,0xd,0x0,0xc,0x0,0xa,0x0,0x8,0x0,0x7,0x0, +0x5,0x0,0x5,0x0,0x4,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xf8,0xff,0xf6,0xff, +0xf4,0xff,0xf3,0xff,0xf0,0xff,0xef,0xff,0xee,0xff,0xeb,0xff, +0xeb,0xff,0xec,0xff,0xeb,0xff,0xe9,0xff,0xeb,0xff,0xea,0xff, +0xe8,0xff,0xe8,0xff,0xe8,0xff,0xe7,0xff,0xe7,0xff,0xe6,0xff, +0xe6,0xff,0xe6,0xff,0xe7,0xff,0xe7,0xff,0xe8,0xff,0xea,0xff, +0xec,0xff,0xef,0xff,0xf1,0xff,0xf2,0xff,0xf3,0xff,0xf5,0xff, +0xf6,0xff,0xf5,0xff,0xf7,0xff,0xfa,0xff,0xfa,0xff,0xfc,0xff, +0xff,0xff,0x1,0x0,0x3,0x0,0x5,0x0,0x7,0x0,0x9,0x0, +0xb,0x0,0xc,0x0,0xd,0x0,0xe,0x0,0xf,0x0,0x11,0x0, +0x11,0x0,0x11,0x0,0x12,0x0,0x14,0x0,0x14,0x0,0x15,0x0, +0x15,0x0,0x15,0x0,0x16,0x0,0x16,0x0,0x16,0x0,0x15,0x0, +0x15,0x0,0x15,0x0,0x14,0x0,0x12,0x0,0x12,0x0,0x13,0x0, +0x11,0x0,0x10,0x0,0xf,0x0,0xf,0x0,0xf,0x0,0xe,0x0, +0xb,0x0,0xa,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x5,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff, +0xfa,0xff,0xf9,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff,0xf6,0xff, +0xf6,0xff,0xf5,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff, +0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff, +0xf7,0xff,0xf7,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfc,0xff,0xfd,0xff, +0xfe,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x4,0x0,0x5,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, +0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x7,0x0,0x7,0x0, +0x6,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0x9,0x0,0xa,0x0,0xa,0x0,0xa,0x0,0x8,0x0,0x8,0x0, +0x8,0x0,0x8,0x0,0x7,0x0,0x8,0x0,0x9,0x0,0x9,0x0, +0xa,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0, +0x9,0x0,0x9,0x0,0x9,0x0,0xa,0x0,0x9,0x0,0x8,0x0, +0x7,0x0,0x6,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfb,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfa,0xff,0xf8,0xff,0xf7,0xff,0xf6,0xff, +0xf5,0xff,0xf5,0xff,0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff, +0xf5,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff,0xf6,0xff,0xf6,0xff, +0xf5,0xff,0xf4,0xff,0xf4,0xff,0xf5,0xff,0xf5,0xff,0xf5,0xff, +0xf6,0xff,0xf7,0xff,0xf7,0xff,0xf9,0xff,0xfa,0xff,0xf9,0xff, +0xfa,0xff,0xfb,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, +0x6,0x0,0x8,0x0,0x9,0x0,0x8,0x0,0x8,0x0,0x7,0x0, +0x7,0x0,0x8,0x0,0x9,0x0,0x7,0x0,0x6,0x0,0x7,0x0, +0x7,0x0,0x6,0x0,0x5,0x0,0x4,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xf9,0xff, +0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf9,0xff,0xfa,0xff,0xfa,0xff, +0xf9,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfa,0xff,0xfa,0xff,0xfb,0xff,0xfb,0xff, +0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x4,0x0,0x5,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3,0x0,0x3,0x0, +0x3,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x3,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0, +0x4,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfc,0xff,0xfa,0xff,0xfb,0xff,0xfc,0xff,0xfb,0xff, +0xfb,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfc,0xff,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfc,0xff,0xfc,0xff, +0xfc,0xff,0xfb,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff,0xfa,0xff, +0xfb,0xff,0xfc,0xff,0xfc,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfc,0xff,0xfd,0xff,0xfe,0xff, +0xfd,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfd,0xff,0xfe,0xff,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xfe,0xff,0xfd,0xff,0xfe,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfe,0xff, +0xfe,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x3,0x0,0x2,0x0,0x3,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x3,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0, +0x3,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xfe,0xff, +0xfc,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff,0xfd,0xff, +0xfe,0xff,0x0,0x0,0xfe,0xff,0xfc,0xff,0xfd,0xff,0xfd,0xff, +0xfd,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xfc,0xff,0xfe,0xff, +0xfd,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff, +0xfe,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x1,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0,0x2,0x0, +0x3,0x0,0x4,0x0,0x3,0x0,0x4,0x0,0x4,0x0,0x3,0x0, +0x3,0x0,0x3,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, +0x4,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x3,0x0,0x3,0x0, +0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xfe,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, +0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xfe,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x2,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x1,0x0,0xff,0xff,0xfe,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xfe,0xff,0xff,0xff,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xfe,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x2,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0xff,0xff,0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0xff,0xff, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0xff,0xff,0x1,0x0, +0x0,0x0,0xfe,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x1,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x1,0x0,0x1,0x0,0xff,0xff,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0, +0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0x0,0x0,0x0,0x0,0xff,0xff,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0xff,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpig1.pcm b/src/client/sound/data/zpig1.pcm new file mode 100755 index 0000000..42dc5ac --- /dev/null +++ b/src/client/sound/data/zpig1.pcm @@ -0,0 +1,3479 @@ +unsigned char PCM_zpig1[111258] = { +1,0,0,0,2,0,0,0,68,172,0,0,69,217,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,254,255,253,255,252,255,252,255,251,255,251,255,252,255,253,255,254,255,254,255,254,255,252,255,250,255,248,255, +245,255,243,255,243,255,246,255,248,255,252,255,0,0,0,0,253,255,247,255,241,255,237,255,235,255,236,255,238,255,241,255, +245,255,250,255,0,0,255,255,251,255,246,255,241,255,236,255,233,255,233,255,234,255,237,255,240,255,238,255,235,255,233,255, +227,255,218,255,216,255,216,255,211,255,206,255,214,255,231,255,238,255,230,255,222,255,224,255,228,255,228,255,220,255,210,255, +213,255,231,255,238,255,232,255,236,255,247,255,247,255,247,255,252,255,243,255,232,255,235,255,237,255,241,255,4,0,15,0, +5,0,9,0,28,0,26,0,13,0,4,0,238,255,215,255,222,255,244,255,5,0,22,0,30,0,23,0,26,0,37,0, +22,0,240,255,208,255,193,255,192,255,203,255,222,255,248,255,6,0,1,0,7,0,38,0,49,0,14,0,224,255,193,255, +189,255,210,255,226,255,227,255,246,255,20,0,24,0,8,0,250,255,233,255,236,255,12,0,33,0,35,0,53,0,79,0, +76,0,41,0,242,255,198,255,210,255,250,255,1,0,249,255,13,0,50,0,79,0,96,0,96,0,75,0,28,0,224,255, +198,255,215,255,220,255,207,255,219,255,248,255,23,0,66,0,81,0,37,0,248,255,230,255,201,255,196,255,234,255,244,255, +222,255,246,255,35,0,44,0,51,0,61,0,36,0,13,0,22,0,24,0,27,0,60,0,71,0,53,0,79,0,141,0, +155,0,124,0,102,0,104,0,122,0,132,0,102,0,71,0,105,0,183,0,222,0,205,0,189,0,200,0,194,0,153,0, +123,0,115,0,97,0,85,0,111,0,142,0,150,0,154,0,145,0,108,0,70,0,38,0,250,255,238,255,37,0,105,0, +144,0,181,0,229,0,3,1,250,0,197,0,115,0,30,0,228,255,236,255,60,0,154,0,227,0,38,1,75,1,32,1, +213,0,161,0,103,0,24,0,243,255,26,0,112,0,210,0,25,1,49,1,52,1,48,1,6,1,184,0,120,0,113,0, +158,0,227,0,42,1,109,1,138,1,86,1,0,1,227,0,241,0,231,0,212,0,225,0,249,0,18,1,52,1,54,1, +2,1,214,0,207,0,179,0,132,0,136,0,190,0,237,0,22,1,57,1,38,1,233,0,203,0,208,0,189,0,149,0, +124,0,116,0,126,0,154,0,169,0,159,0,151,0,150,0,134,0,103,0,86,0,95,0,105,0,87,0,61,0,87,0, +151,0,179,0,159,0,146,0,162,0,194,0,208,0,171,0,111,0,103,0,140,0,142,0,102,0,85,0,112,0,139,0, +122,0,65,0,27,0,47,0,85,0,72,0,21,0,254,255,11,0,1,0,210,255,184,255,196,255,202,255,195,255,204,255, +228,255,242,255,232,255,192,255,148,255,135,255,132,255,115,255,114,255,121,255,89,255,60,255,89,255,114,255,71,255,9,255, +245,254,20,255,79,255,109,255,92,255,88,255,114,255,113,255,79,255,45,255,9,255,240,254,249,254,10,255,20,255,40,255, +45,255,18,255,0,255,252,254,225,254,192,254,173,254,154,254,160,254,203,254,223,254,200,254,179,254,165,254,148,254,142,254, +134,254,114,254,124,254,170,254,206,254,220,254,211,254,182,254,169,254,165,254,115,254,55,254,69,254,118,254,135,254,157,254, +219,254,20,255,47,255,37,255,235,254,162,254,133,254,159,254,215,254,30,255,104,255,148,255,134,255,84,255,51,255,23,255, +230,254,208,254,229,254,228,254,233,254,77,255,196,255,205,255,139,255,70,255,0,255,202,254,163,254,99,254,63,254,129,254, +237,254,53,255,99,255,97,255,29,255,222,254,193,254,168,254,170,254,208,254,228,254,248,254,62,255,116,255,102,255,68,255, +30,255,242,254,246,254,43,255,75,255,89,255,134,255,183,255,185,255,148,255,118,255,115,255,109,255,87,255,97,255,152,255, +198,255,231,255,9,0,250,255,184,255,153,255,158,255,130,255,91,255,85,255,91,255,102,255,136,255,168,255,193,255,224,255, +218,255,143,255,66,255,44,255,50,255,45,255,33,255,38,255,68,255,99,255,108,255,106,255,98,255,82,255,73,255,67,255, +42,255,18,255,21,255,31,255,51,255,96,255,132,255,134,255,122,255,115,255,126,255,148,255,119,255,32,255,255,254,54,255, +105,255,128,255,163,255,180,255,166,255,176,255,187,255,148,255,108,255,102,255,101,255,132,255,217,255,23,0,37,0,72,0, +104,0,52,0,218,255,178,255,175,255,171,255,188,255,246,255,65,0,120,0,134,0,98,0,38,0,238,255,188,255,137,255, +119,255,171,255,8,0,77,0,108,0,123,0,121,0,77,0,251,255,169,255,125,255,133,255,176,255,242,255,55,0,90,0, +75,0,28,0,218,255,136,255,67,255,32,255,26,255,47,255,109,255,191,255,237,255,213,255,146,255,84,255,51,255,44,255, +46,255,39,255,31,255,64,255,137,255,172,255,131,255,81,255,69,255,66,255,54,255,51,255,60,255,79,255,105,255,113,255, +80,255,38,255,23,255,29,255,39,255,50,255,49,255,41,255,65,255,137,255,198,255,190,255,144,255,120,255,130,255,144,255, +150,255,157,255,181,255,201,255,178,255,130,255,110,255,114,255,107,255,102,255,109,255,127,255,187,255,16,0,30,0,220,255, +168,255,153,255,124,255,95,255,88,255,100,255,158,255,4,0,74,0,76,0,44,0,255,255,210,255,172,255,108,255,30,255, +22,255,99,255,184,255,237,255,1,0,246,255,228,255,211,255,159,255,96,255,91,255,143,255,201,255,254,255,39,0,63,0, +80,0,77,0,30,0,228,255,200,255,200,255,227,255,26,0,89,0,141,0,169,0,159,0,120,0,77,0,42,0,32,0, +40,0,34,0,27,0,72,0,135,0,150,0,116,0,67,0,24,0,2,0,244,255,220,255,231,255,32,0,67,0,73,0, +83,0,60,0,249,255,208,255,214,255,224,255,223,255,196,255,149,255,153,255,220,255,6,0,1,0,250,255,225,255,173,255, +142,255,126,255,104,255,105,255,127,255,138,255,163,255,216,255,246,255,230,255,183,255,135,255,127,255,136,255,111,255,96,255, +137,255,148,255,101,255,103,255,154,255,154,255,122,255,122,255,125,255,117,255,122,255,128,255,136,255,168,255,175,255,120,255, +75,255,95,255,133,255,138,255,113,255,98,255,122,255,162,255,173,255,151,255,110,255,76,255,79,255,117,255,151,255,181,255, +220,255,239,255,224,255,187,255,130,255,65,255,16,255,247,254,26,255,140,255,248,255,28,0,51,0,81,0,56,0,242,255, +176,255,102,255,53,255,89,255,156,255,213,255,51,0,155,0,184,0,157,0,120,0,54,0,243,255,226,255,237,255,13,0, +106,0,229,0,52,1,80,1,63,1,0,1,183,0,135,0,108,0,119,0,196,0,61,1,158,1,184,1,146,1,94,1, +57,1,20,1,240,0,207,0,180,0,219,0,87,1,186,1,183,1,172,1,204,1,195,1,105,1,10,1,222,0,244,0, +76,1,183,1,244,1,2,2,243,1,193,1,111,1,21,1,201,0,154,0,156,0,205,0,16,1,75,1,116,1,117,1, +65,1,6,1,238,0,209,0,153,0,133,0,176,0,228,0,16,1,75,1,129,1,132,1,69,1,216,0,118,0,79,0, +50,0,238,255,197,255,231,255,11,0,9,0,8,0,254,255,200,255,143,255,121,255,108,255,95,255,112,255,159,255,210,255, +228,255,189,255,131,255,118,255,135,255,113,255,62,255,41,255,63,255,104,255,139,255,111,255,4,255,164,254,139,254,114,254, +45,254,7,254,35,254,78,254,115,254,158,254,180,254,163,254,125,254,80,254,40,254,32,254,54,254,78,254,108,254,161,254, +225,254,20,255,35,255,255,254,165,254,48,254,209,253,169,253,153,253,127,253,117,253,135,253,128,253,82,253,36,253,3,253, +240,252,9,253,58,253,90,253,126,253,179,253,197,253,185,253,185,253,182,253,165,253,188,253,1,254,58,254,94,254,135,254, +162,254,154,254,126,254,92,254,39,254,225,253,181,253,193,253,237,253,24,254,75,254,129,254,159,254,163,254,149,254,107,254, +71,254,93,254,151,254,211,254,43,255,153,255,209,255,186,255,140,255,123,255,122,255,74,255,244,254,222,254,21,255,53,255, +35,255,4,255,210,254,172,254,198,254,204,254,110,254,38,254,82,254,152,254,193,254,242,254,34,255,67,255,121,255,177,255, +193,255,195,255,212,255,238,255,15,0,30,0,23,0,56,0,136,0,171,0,135,0,91,0,77,0,91,0,102,0,56,0, +244,255,1,0,71,0,104,0,103,0,129,0,186,0,254,0,39,1,26,1,11,1,62,1,150,1,192,1,167,1,124,1, +136,1,200,1,226,1,180,1,130,1,111,1,98,1,70,1,9,1,175,0,106,0,76,0,72,0,98,0,137,0,153,0, +175,0,217,0,212,0,156,0,128,0,125,0,109,0,118,0,155,0,182,0,219,0,17,1,17,1,210,0,147,0,98,0, +43,0,232,255,169,255,164,255,231,255,14,0,223,255,172,255,160,255,122,255,35,255,198,254,155,254,203,254,46,255,106,255, +142,255,208,255,4,0,11,0,5,0,226,255,156,255,128,255,143,255,131,255,125,255,179,255,206,255,150,255,91,255,84,255, +94,255,87,255,47,255,237,254,190,254,192,254,219,254,238,254,243,254,244,254,4,255,36,255,72,255,100,255,117,255,143,255, +199,255,252,255,249,255,215,255,215,255,247,255,252,255,211,255,163,255,153,255,172,255,175,255,178,255,222,255,15,0,18,0, +253,255,207,255,123,255,72,255,82,255,65,255,28,255,93,255,230,255,49,0,74,0,125,0,175,0,183,0,168,0,136,0, +96,0,85,0,108,0,134,0,148,0,164,0,194,0,220,0,209,0,153,0,84,0,36,0,35,0,91,0,159,0,171,0, +136,0,124,0,151,0,169,0,145,0,89,0,37,0,8,0,18,0,82,0,188,0,26,1,80,1,107,1,95,1,17,1, +179,0,133,0,106,0,68,0,79,0,175,0,26,1,76,1,89,1,80,1,56,1,46,1,37,1,234,0,176,0,223,0, +89,1,203,1,53,2,139,2,145,2,111,2,122,2,135,2,94,2,76,2,133,2,205,2,2,3,60,3,110,3,116,3, +85,3,28,3,196,2,99,2,49,2,83,2,157,2,178,2,124,2,80,2,102,2,136,2,106,2,22,2,193,1,135,1, +110,1,114,1,130,1,136,1,143,1,168,1,191,1,183,1,142,1,99,1,93,1,116,1,96,1,30,1,31,1,104,1, +119,1,73,1,89,1,152,1,176,1,204,1,13,2,56,2,100,2,207,2,40,3,15,3,201,2,195,2,247,2,41,3, +72,3,110,3,172,3,0,4,97,4,151,4,73,4,147,3,253,2,178,2,119,2,84,2,98,2,135,2,211,2,65,3, +72,3,195,2,84,2,55,2,249,1,146,1,112,1,164,1,245,1,62,2,94,2,66,2,0,2,202,1,192,1,195,1, +150,1,101,1,149,1,243,1,2,2,192,1,122,1,70,1,27,1,231,0,155,0,108,0,165,0,25,1,80,1,56,1, +48,1,106,1,146,1,92,1,25,1,60,1,159,1,236,1,20,2,17,2,254,1,41,2,119,2,121,2,71,2,70,2, +109,2,140,2,146,2,100,2,13,2,202,1,155,1,110,1,116,1,180,1,250,1,60,2,101,2,61,2,235,1,179,1, +92,1,200,0,81,0,28,0,2,0,238,255,200,255,141,255,105,255,68,255,201,254,18,254,130,253,46,253,8,253,0,253, +227,252,176,252,173,252,220,252,251,252,216,252,109,252,244,251,219,251,38,252,123,252,219,252,121,253,25,254,79,254,21,254, +194,253,173,253,222,253,30,254,95,254,201,254,89,255,233,255,76,0,81,0,7,0,199,255,169,255,116,255,58,255,67,255, +156,255,17,0,90,0,67,0,243,255,165,255,59,255,165,254,56,254,58,254,153,254,45,255,180,255,224,255,173,255,72,255, +185,254,247,253,27,253,118,252,95,252,182,252,254,252,30,253,63,253,42,253,171,252,21,252,167,251,65,251,240,250,217,250, +231,250,30,251,166,251,59,252,99,252,29,252,212,251,210,251,242,251,223,251,176,251,213,251,79,252,184,252,229,252,242,252, +239,252,246,252,17,253,14,253,247,252,34,253,120,253,148,253,141,253,178,253,212,253,180,253,146,253,160,253,177,253,203,253, +30,254,105,254,88,254,59,254,117,254,190,254,203,254,217,254,254,254,241,254,177,254,133,254,96,254,34,254,238,253,203,253, +142,253,77,253,77,253,125,253,135,253,94,253,78,253,109,253,108,253,27,253,191,252,150,252,130,252,117,252,176,252,65,253, +211,253,13,254,228,253,133,253,55,253,14,253,215,252,117,252,31,252,13,252,51,252,127,252,228,252,28,253,232,252,142,252, +112,252,100,252,37,252,242,251,31,252,137,252,237,252,67,253,137,253,179,253,191,253,163,253,105,253,80,253,131,253,198,253, +217,253,254,253,126,254,5,255,27,255,221,254,156,254,67,254,197,253,103,253,50,253,4,253,17,253,120,253,231,253,70,254, +181,254,247,254,208,254,143,254,93,254,15,254,196,253,187,253,208,253,222,253,2,254,61,254,122,254,185,254,227,254,215,254, +174,254,141,254,128,254,127,254,98,254,21,254,217,253,219,253,217,253,163,253,111,253,119,253,192,253,46,254,155,254,232,254, +28,255,81,255,118,255,88,255,16,255,27,255,145,255,228,255,244,255,82,0,251,0,64,1,14,1,220,0,184,0,144,0, +158,0,223,0,248,0,209,0,170,0,190,0,12,1,65,1,29,1,222,0,216,0,255,0,20,1,250,0,207,0,218,0, +33,1,73,1,57,1,53,1,94,1,172,1,20,2,94,2,114,2,145,2,193,2,156,2,27,2,183,1,198,1,59,2, +190,2,16,3,95,3,223,3,80,4,136,4,159,4,129,4,71,4,114,4,248,4,76,5,140,5,49,6,9,7,162,7, +226,7,200,7,135,7,136,7,188,7,195,7,187,7,6,8,175,8,139,9,73,10,149,10,137,10,142,10,156,10,111,10, +51,10,99,10,34,11,31,12,246,12,124,13,169,13,144,13,111,13,93,13,25,13,168,12,144,12,21,13,251,13,240,14, +150,15,173,15,142,15,138,15,46,15,44,14,56,13,5,13,84,13,157,13,219,13,91,14,254,14,54,15,201,14,27,14, +134,13,32,13,3,13,34,13,89,13,245,13,22,15,10,16,71,16,17,16,173,15,43,15,229,14,238,14,229,14,230,14, +97,15,33,16,187,16,47,17,105,17,49,17,185,16,87,16,5,16,181,15,135,15,137,15,186,15,14,16,72,16,26,16, +138,15,229,14,76,14,140,13,141,12,181,11,104,11,124,11,144,11,112,11,18,11,153,10,49,10,152,9,98,8,229,6, +243,5,173,5,127,5,35,5,206,4,156,4,127,4,100,4,4,4,14,3,224,1,42,1,200,0,23,0,86,255,54,255, +103,255,30,255,120,254,2,254,171,253,4,253,250,251,224,250,34,250,204,249,87,249,98,248,63,247,80,246,114,245,106,244, +93,243,138,242,217,241,20,241,88,240,230,239,122,239,123,238,231,236,84,235,39,234,101,233,252,232,182,232,97,232,19,232, +222,231,112,231,146,230,138,229,170,228,18,228,214,227,221,227,221,227,218,227,0,228,251,227,87,227,92,226,158,225,34,225, +163,224,34,224,207,223,232,223,119,224,235,224,165,224,232,223,100,223,23,223,166,222,76,222,130,222,54,223,251,223,152,224, +15,225,83,225,91,225,66,225,27,225,240,224,39,225,34,226,99,227,3,228,27,228,116,228,45,229,207,229,40,230,85,230, +148,230,66,231,85,232,41,233,95,233,90,233,142,233,228,233,43,234,167,234,165,235,237,236,27,238,43,239,26,240,155,240, +198,240,29,241,161,241,240,241,49,242,214,242,203,243,191,244,172,245,154,246,120,247,65,248,231,248,62,249,104,249,7,250, +119,251,48,253,122,254,76,255,6,0,223,0,233,1,18,3,29,4,24,5,87,6,210,7,49,9,84,10,67,11,22,12, +240,12,162,13,234,13,59,14,19,15,20,16,241,16,245,17,249,18,160,19,70,20,17,21,98,21,68,21,131,21,31,22, +171,22,81,23,41,24,227,24,149,25,129,26,94,27,217,27,9,28,24,28,32,28,68,28,133,28,211,28,56,29,196,29, +111,30,28,31,151,31,185,31,162,31,134,31,119,31,101,31,86,31,137,31,41,32,237,32,120,33,249,33,171,34,44,35, +2,35,109,34,5,34,5,34,80,34,206,34,97,35,195,35,235,35,35,36,65,36,183,35,181,34,255,33,149,33,35,33, +235,32,244,32,177,32,54,32,252,31,176,31,222,30,223,29,12,29,91,28,235,27,189,27,111,27,231,26,85,26,168,25, +201,24,213,23,206,22,195,21,255,20,177,20,174,20,135,20,227,19,254,18,77,18,140,17,84,16,20,15,57,14,115,13, +207,12,204,12,17,13,252,12,220,12,249,12,179,12,194,11,189,10,10,10,147,9,74,9,243,8,76,8,218,7,92,8, +92,9,196,9,138,9,81,9,252,8,15,8,184,6,144,5,253,4,255,4,1,5,113,4,200,3,209,3,39,4,218,3, +232,2,205,1,205,0,35,0,187,255,12,255,53,254,17,254,159,254,168,254,116,253,159,251,65,250,216,249,233,249,145,249, +153,248,190,247,168,247,227,247,93,247,24,246,80,245,128,245,165,245,15,245,59,244,149,243,2,243,122,242,214,241,239,240, +97,240,205,240,127,241,127,241,29,241,249,240,191,240,245,239,197,238,138,237,163,236,143,236,28,237,98,237,56,237,98,237, +206,237,103,237,252,235,127,234,80,233,6,232,225,230,154,230,14,231,128,231,178,231,167,231,7,231,167,229,11,228,183,226, +205,225,110,225,170,225,28,226,69,226,17,226,124,225,95,224,225,222,95,221,254,219,244,218,159,218,202,218,196,218,113,218, +89,218,147,218,129,218,161,217,38,216,223,214,146,214,31,215,166,215,183,215,247,215,11,217,105,218,241,218,147,218,82,218, +174,218,20,219,18,219,1,219,105,219,114,220,220,221,46,223,56,224,73,225,132,226,107,227,155,227,95,227,38,227,33,227, +124,227,55,228,253,228,213,229,51,231,240,232,70,234,235,234,24,235,219,234,109,234,70,234,76,234,58,234,179,234,73,236, +67,238,159,239,85,240,194,240,252,240,253,240,226,240,250,240,160,241,197,242,45,244,227,245,216,247,158,249,247,250,225,251, +82,252,183,252,189,253,55,255,170,0,117,2,239,4,101,7,56,9,165,10,228,11,251,12,48,14,126,15,109,16,45,17, +156,18,197,20,166,22,186,23,163,24,237,25,44,27,188,27,196,27,3,28,244,28,95,30,154,31,51,32,114,32,253,32, +254,33,230,34,55,35,66,35,169,35,90,36,190,36,179,36,176,36,36,37,19,38,224,38,215,38,83,38,103,38,15,39, +84,39,8,39,199,38,236,38,136,39,75,40,113,40,238,39,187,39,22,40,40,40,159,39,9,39,213,38,36,39,218,39, +130,40,178,40,100,40,202,39,64,39,254,38,178,38,27,38,157,37,147,37,210,37,23,38,236,37,222,36,128,35,180,34, +14,34,191,32,83,31,161,30,106,30,90,30,122,30,57,30,1,29,137,27,163,26,191,25,77,24,36,23,5,23,102,23, +125,23,232,22,116,21,170,19,135,18,194,17,35,16,12,14,53,13,217,13,106,14,217,13,146,12,137,11,255,10,41,10, +94,8,89,6,84,5,87,5,102,5,245,4,100,4,66,4,96,4,240,3,157,2,234,0,128,255,216,254,223,254,148,254, +84,253,64,252,101,252,172,252,166,251,209,249,88,248,120,247,252,246,142,246,155,245,64,244,115,243,105,243,29,243,228,241, +75,240,30,239,142,238,69,238,192,237,195,236,160,235,186,234,231,233,202,232,120,231,86,230,160,229,52,229,127,228,248,226, +4,225,138,223,115,222,216,220,167,218,181,216,128,215,248,214,215,214,130,214,144,213,181,212,198,212,8,213,32,212,126,210, +5,210,75,211,248,212,237,213,124,214,109,215,219,216,247,217,198,217,155,216,54,216,79,217,111,218,159,218,29,219,253,220, +69,223,151,224,195,224,72,224,203,223,226,223,95,224,155,224,219,224,238,225,128,227,114,228,143,228,88,228,200,227,224,226, +96,226,151,226,164,226,10,226,143,225,227,225,156,226,246,226,163,226,210,225,22,225,204,224,133,224,231,223,185,223,202,224, +112,226,101,227,163,227,53,228,186,229,225,231,240,233,114,235,166,236,41,238,32,240,22,242,180,243,25,245,192,246,11,249, +153,251,98,253,35,254,227,254,95,0,250,1,224,2,58,3,186,3,197,4,62,6,188,7,244,8,243,9,216,10,118,11, +130,11,42,11,46,11,5,12,62,13,66,14,38,15,40,16,4,17,116,17,159,17,177,17,149,17,86,17,72,17,195,17, +199,18,246,19,18,21,93,22,234,23,8,25,33,25,209,24,51,25,125,26,6,28,76,29,99,30,189,31,162,33,156,35, +233,36,180,37,224,38,107,40,69,41,17,41,194,40,79,41,158,42,181,43,234,43,187,43,240,43,81,44,82,44,32,44, +235,43,115,43,241,42,209,42,162,42,1,42,168,41,11,42,113,42,69,42,200,41,54,41,133,40,202,39,53,39,246,38, +2,39,230,38,78,38,142,37,6,37,150,36,5,36,62,35,52,34,40,33,132,32,49,32,175,31,239,30,93,30,40,30, +250,29,102,29,119,28,181,27,99,27,21,27,115,26,188,25,46,25,162,24,28,24,194,23,86,23,176,22,42,22,188,21, +211,20,127,19,80,18,35,17,191,15,160,14,220,13,221,12,221,11,136,11,103,11,196,10,244,9,44,9,219,7,18,6, +162,4,202,3,49,3,155,2,3,2,150,1,106,1,5,1,1,0,191,254,177,253,180,252,163,251,137,250,106,249,124,248, +227,247,25,247,200,245,148,244,239,243,86,243,122,242,199,241,99,241,2,241,134,240,255,239,118,239,13,239,230,238,250,238, +68,239,165,239,203,239,199,239,5,240,79,240,6,240,104,239,58,239,116,239,170,239,4,240,131,240,163,240,99,240,59,240, +240,239,4,239,231,237,99,237,145,237,33,238,204,238,96,239,215,239,51,240,20,240,12,239,106,237,32,236,191,235,209,235, +155,235,103,235,15,236,63,237,194,237,93,237,152,236,133,235,90,234,218,233,254,233,0,234,28,234,25,235,117,236,16,237, +241,236,221,236,37,237,177,237,76,238,187,238,40,239,42,240,213,241,106,243,78,244,211,244,152,245,157,246,101,247,216,247, +105,248,64,249,1,250,116,250,211,250,92,251,9,252,185,252,100,253,18,254,175,254,230,254,160,254,121,254,4,255,233,255, +136,0,1,1,188,1,162,2,89,3,173,3,132,3,8,3,151,2,66,2,0,2,46,2,2,3,20,4,5,5,214,5, +85,6,70,6,222,5,72,5,154,4,123,4,126,5,7,7,71,8,125,9,241,10,13,12,145,12,255,12,86,13,79,13, +171,13,44,15,239,16,250,17,5,19,197,20,57,22,113,22,19,22,235,21,227,21,7,22,180,22,173,23,106,24,226,24, +37,25,23,25,222,24,141,24,221,23,18,23,253,22,119,23,137,23,73,23,156,23,87,24,131,24,230,23,252,22,49,22, +203,21,174,21,87,21,216,20,232,20,116,21,137,21,255,20,170,20,202,20,173,20,225,19,218,18,80,18,121,18,245,18, +60,19,32,19,236,18,1,19,62,19,6,19,23,18,247,16,88,16,105,16,184,16,160,16,23,16,248,15,182,16,86,17, +209,16,165,15,244,14,236,14,240,14,131,14,195,13,101,13,215,13,96,14,21,14,77,13,237,12,232,12,162,12,254,11, +57,11,140,10,15,10,151,9,22,9,247,8,81,9,123,9,74,9,59,9,17,9,49,8,38,7,175,6,74,6,113,5, +161,4,27,4,167,3,130,3,182,3,126,3,173,2,232,1,2,1,80,255,77,253,0,252,104,251,233,250,96,250,4,250, +237,249,208,249,52,249,14,248,192,246,125,245,81,244,100,243,179,242,56,242,78,242,229,242,253,242,54,242,134,241,91,241, +202,240,87,239,241,237,135,237,208,237,225,237,149,237,193,237,158,238,13,239,85,238,56,237,105,236,155,235,197,234,76,234, +9,234,212,233,37,234,212,234,239,234,113,234,11,234,131,233,90,232,249,230,201,229,150,228,167,227,111,227,111,227,5,227, +132,226,73,226,233,225,231,224,97,223,2,222,111,221,106,221,19,221,111,220,113,220,58,221,195,221,99,221,127,220,191,219, +50,219,88,218,42,217,154,216,37,217,0,218,133,218,10,219,160,219,196,219,91,219,145,218,128,217,182,216,185,216,0,217, +21,217,172,217,11,219,36,220,72,220,209,219,5,219,14,218,128,217,139,217,179,217,233,217,128,218,88,219,44,220,249,220, +107,221,38,221,167,220,164,220,228,220,220,220,208,220,111,221,195,222,255,223,117,224,120,224,189,224,63,225,147,225,226,225, +93,226,186,226,8,227,205,227,221,228,141,229,232,229,79,230,159,230,187,230,244,230,92,231,204,231,131,232,187,233,9,235, +234,235,104,236,207,236,75,237,228,237,143,238,35,239,152,239,57,240,110,241,23,243,173,244,255,245,59,247,50,248,167,248, +9,249,206,249,181,250,170,251,80,253,199,255,59,2,22,4,112,5,104,6,39,7,225,7,107,8,187,8,155,9,153,11, +239,13,214,15,197,17,31,20,236,21,31,22,57,21,174,20,27,21,215,21,63,22,216,22,131,24,245,26,222,28,119,29, +58,29,5,29,21,29,224,28,7,28,66,27,197,27,138,29,65,31,37,32,188,32,120,33,241,33,193,33,15,33,55,32, +187,31,22,32,254,32,181,33,97,34,159,35,233,36,63,37,218,36,88,36,96,35,210,33,171,32,111,32,126,32,129,32, +156,32,118,32,204,31,245,30,207,29,200,27,79,25,82,23,175,21,230,19,60,18,0,17,251,15,22,15,71,14,32,13, +131,11,198,9,204,7,111,5,114,3,135,2,40,2,186,1,159,1,37,2,185,2,210,2,159,2,111,2,53,2,188,1, +8,1,133,0,195,0,201,1,235,2,179,3,113,4,75,5,124,5,113,4,223,2,169,1,184,0,235,255,176,255,243,255, +24,0,39,0,61,0,157,255,232,253,205,251,128,249,180,246,52,244,14,243,192,242,116,242,101,242,127,242,202,241,32,240, +59,238,58,236,248,233,10,232,11,231,235,230,84,231,250,231,181,232,149,233,89,234,95,234,203,233,131,233,200,233,87,234, +112,235,65,237,49,239,210,240,77,242,130,243,40,244,121,244,229,244,160,245,170,246,169,247,66,248,225,248,242,249,210,250, +221,250,135,250,64,250,214,249,113,249,113,249,139,249,124,249,160,249,224,249,140,249,171,248,237,247,133,247,28,247,162,246, +117,246,228,246,178,247,63,248,79,248,44,248,247,247,186,247,182,247,206,247,154,247,165,247,217,248,183,250,249,251,127,252, +247,252,165,253,125,254,84,255,200,255,22,0,37,1,255,2,157,4,145,5,94,6,97,7,123,8,87,9,177,9,215,9, +77,10,228,10,75,11,254,11,64,13,55,14,126,14,223,14,179,15,62,16,27,16,204,15,238,15,168,16,143,17,252,17, +10,18,137,18,180,19,220,20,117,21,164,21,242,21,155,22,32,23,6,23,233,22,129,23,74,24,174,24,36,25,217,25, +37,26,21,26,73,26,130,26,118,26,207,26,173,27,31,28,34,28,177,28,203,29,158,30,21,31,119,31,168,31,189,31, +5,32,92,32,149,32,248,32,150,33,10,34,56,34,93,34,116,34,89,34,64,34,105,34,163,34,152,34,90,34,62,34, +81,34,95,34,98,34,100,34,47,34,201,33,159,33,176,33,85,33,117,32,208,31,186,31,167,31,34,31,81,30,154,29, +39,29,150,28,84,27,138,25,8,24,26,23,64,22,39,21,21,20,80,19,179,18,220,17,160,16,79,15,80,14,132,13, +135,12,105,11,153,10,55,10,219,9,33,9,66,8,217,7,240,7,213,7,60,7,168,6,96,6,25,6,190,5,102,5, +205,4,216,3,1,3,131,2,17,2,179,1,165,1,139,1,247,0,46,0,105,255,86,254,5,253,27,252,166,251,247,250, +224,249,228,248,69,248,179,247,196,246,67,245,112,243,228,241,176,240,46,239,73,237,228,235,95,235,241,234,254,233,175,232, +47,231,181,229,198,228,80,228,130,227,69,226,107,225,44,225,245,224,132,224,14,224,213,223,31,224,197,224,7,225,187,224, +160,224,226,224,239,224,201,224,214,224,251,224,74,225,66,226,138,227,54,228,122,228,13,229,151,229,115,229,230,228,110,228, +44,228,99,228,58,229,41,230,168,230,218,230,245,230,204,230,70,230,133,229,157,228,185,227,60,227,98,227,224,227,59,228, +91,228,106,228,67,228,148,227,158,226,255,225,224,225,246,225,14,226,52,226,191,226,255,227,108,229,2,230,206,229,231,229, +156,230,45,231,66,231,103,231,75,232,32,234,73,236,192,237,107,238,54,239,156,240,44,242,101,243,32,244,160,244,137,245, +255,246,84,248,117,249,14,251,210,252,224,253,148,254,147,255,48,0,248,255,214,255,79,0,207,0,61,1,12,2,88,3, +27,5,243,6,175,7,245,6,79,6,191,6,74,7,73,7,206,7,193,9,145,12,252,14,74,16,3,17,50,18,134,19, +151,19,159,18,200,18,12,21,250,23,38,26,11,28,219,30,62,34,46,36,138,35,246,33,245,33,216,35,231,37,23,39, +69,40,184,42,220,45,136,47,9,47,76,46,156,46,189,46,240,45,177,45,219,46,62,48,33,49,16,50,246,50,9,51, +68,50,63,49,102,48,29,48,147,48,65,49,132,49,121,49,123,49,61,49,78,48,81,47,108,47,72,48,91,48,152,47, +141,47,114,48,195,48,246,47,230,46,244,45,31,45,204,44,211,44,146,44,73,44,96,44,245,43,61,42,253,39,62,38, +51,37,191,36,127,36,220,35,8,35,124,34,156,33,164,31,49,29,45,27,146,25,53,24,30,23,4,22,234,20,94,20, +22,20,235,18,167,16,36,14,226,11,231,9,97,8,103,7,209,6,151,6,112,6,172,5,26,4,71,2,100,0,30,254, +188,251,16,250,31,249,9,248,135,246,33,245,231,243,72,242,66,240,78,238,83,236,23,234,20,232,144,230,236,228,249,226, +98,225,253,223,210,221,37,219,55,217,15,216,159,214,141,212,72,210,28,208,50,206,152,204,239,202,30,201,228,199,157,199, +75,199,40,198,254,196,172,196,107,196,35,195,99,193,122,192,105,192,84,192,29,192,68,192,226,192,139,193,122,193,20,192, +4,190,232,188,6,189,5,189,136,188,204,188,52,190,151,191,44,192,33,192,172,191,3,191,124,190,222,189,191,188,197,187, +250,187,43,189,83,190,40,191,229,191,103,192,123,192,66,192,210,191,67,191,37,191,238,191,47,193,57,194,10,195,219,195, +149,196,77,197,52,198,14,199,163,199,106,200,184,201,27,203,84,204,217,205,205,207,156,209,243,210,15,212,65,213,173,214, +44,216,91,217,62,218,107,219,44,221,14,223,145,224,175,225,192,226,20,228,121,229,110,230,250,230,192,231,15,233,174,234, +83,236,187,237,238,238,124,240,131,242,41,244,5,245,196,245,176,246,123,247,117,248,236,249,54,251,57,252,249,253,83,0, +206,1,91,2,85,3,211,4,179,5,216,5,29,6,254,6,94,8,213,9,246,10,253,11,147,13,92,15,16,16,141,15, +61,15,233,15,172,16,192,16,240,16,57,18,33,20,130,21,254,21,229,21,158,21,143,21,197,21,237,21,61,22,76,23, +234,24,150,26,125,28,109,30,95,31,85,31,153,31,100,32,243,32,162,33,73,35,162,37,17,40,68,42,137,43,141,43, +55,43,11,43,118,42,167,41,156,41,85,42,51,43,45,44,216,44,66,44,171,42,27,41,137,39,119,37,125,35,150,34, +207,34,107,35,139,35,226,34,223,33,198,32,65,31,84,29,162,27,166,26,159,26,133,27,129,28,216,28,41,29,208,29, +151,29,11,28,196,26,182,26,249,26,41,27,254,27,109,29,155,30,80,31,221,31,76,32,117,32,50,32,168,31,99,31, +137,31,102,31,182,30,84,30,202,30,84,31,6,31,244,29,211,28,240,27,206,26,224,24,138,22,191,20,167,19,115,18, +195,16,92,15,26,15,123,15,252,14,25,13,194,10,172,8,180,6,4,5,17,4,169,3,177,3,163,4,15,6,128,6, +196,5,250,4,103,4,138,3,141,2,228,1,198,1,179,2,172,4,106,6,20,7,65,7,39,7,21,6,74,4,245,2, +119,2,133,2,252,2,123,3,140,3,118,3,133,3,22,3,165,1,182,255,242,253,147,252,203,251,163,251,159,251,135,251, +178,251,11,252,180,251,71,250,161,248,206,247,208,247,230,247,192,247,188,247,47,248,247,248,162,249,211,249,147,249,79,249, +82,249,91,249,13,249,141,248,114,248,30,249,40,250,181,250,112,250,215,249,124,249,121,249,155,249,126,249,232,248,99,248, +161,248,53,249,41,249,165,248,131,248,186,248,177,248,104,248,51,248,21,248,5,248,24,248,92,248,204,248,68,249,114,249, +84,249,113,249,27,250,253,250,196,251,134,252,92,253,68,254,86,255,144,0,149,1,19,2,64,2,180,2,192,3,17,5, +50,6,46,7,85,8,152,9,117,10,149,10,51,10,228,9,228,9,235,9,219,9,12,10,138,10,208,10,179,10,172,10, +217,10,188,10,46,10,207,9,39,10,235,10,113,11,187,11,110,12,165,13,130,14,135,14,109,14,8,15,27,16,10,17, +223,17,243,18,34,20,1,21,153,21,54,22,206,22,53,23,180,23,168,24,228,25,254,26,170,27,155,27,249,26,151,26, +191,26,160,26,242,25,149,25,236,25,83,26,86,26,205,25,114,24,158,22,33,21,228,19,112,18,57,17,184,16,127,16, +76,16,52,16,164,15,48,14,117,12,194,10,173,8,181,6,223,5,226,5,214,5,182,5,175,5,133,5,55,5,172,4, +111,3,246,1,116,1,181,1,102,1,125,0,6,0,34,0,27,0,192,255,81,255,233,254,133,254,37,254,176,253,18,253, +96,252,189,251,14,251,28,250,10,249,77,248,238,247,143,247,29,247,130,246,80,245,180,243,157,242,30,242,102,241,115,240, +219,239,128,239,30,239,217,238,84,238,39,237,21,236,213,235,177,235,7,235,110,234,117,234,253,234,178,235,241,235,77,235, +126,234,64,234,18,234,164,233,202,233,207,234,197,235,249,235,115,235,165,234,89,234,154,234,86,234,118,233,69,233,194,233, +159,233,16,233,49,233,153,233,147,233,155,233,195,233,108,233,50,233,238,233,218,234,94,235,93,236,188,237,251,237,76,237, +126,237,175,238,117,239,202,239,195,240,51,242,252,242,254,242,13,243,172,243,199,244,236,245,109,246,39,246,35,246,49,247, +81,248,45,248,122,247,221,247,46,249,0,250,12,250,60,250,246,250,194,251,13,252,174,251,240,250,77,250,23,250,126,250, +111,251,83,252,163,252,164,252,209,252,17,253,10,253,191,252,143,252,14,253,77,254,94,255,184,255,106,0,64,2,239,3, +17,4,107,3,144,3,189,4,41,6,58,7,24,8,114,9,57,11,36,12,141,11,172,10,163,10,251,10,23,11,63,11, +157,11,252,11,129,12,50,13,116,13,6,13,105,12,225,11,66,11,189,10,153,10,144,10,117,10,209,10,170,11,221,11, +220,10,217,9,230,9,92,10,66,10,227,9,234,9,66,10,138,10,130,10,35,10,246,9,143,10,131,11,35,12,165,12, +62,13,102,13,52,13,144,13,76,14,109,14,66,14,188,14,144,15,17,16,120,16,199,16,95,16,116,15,231,14,172,14, +45,14,149,13,100,13,136,13,179,13,164,13,227,12,95,11,238,9,27,9,40,8,122,6,248,4,180,4,24,5,215,4, +201,3,171,2,213,1,5,1,216,255,49,254,147,252,157,251,250,250,237,249,182,248,240,247,83,247,126,246,180,245,193,244, +29,243,142,241,36,241,250,240,150,239,143,237,59,236,93,235,55,234,6,233,31,232,69,231,118,230,178,229,99,228,122,226, +23,225,171,224,6,224,129,222,38,221,160,220,18,220,2,219,60,218,26,218,220,217,10,217,0,216,66,215,61,215,190,215, +166,215,142,214,196,213,252,213,231,213,205,212,248,211,85,212,59,213,242,213,45,214,170,213,212,212,113,212,97,212,62,212, +81,212,140,212,79,212,199,211,143,211,81,211,134,210,108,209,72,208,108,207,102,207,173,207,7,207,49,206,238,206,101,208, +43,208,10,206,187,203,120,202,119,202,217,202,102,202,16,202,43,204,209,207,98,209,133,208,160,208,228,210,192,212,115,212, +109,211,37,212,110,215,191,219,235,222,190,224,216,226,176,229,186,231,26,232,35,232,67,233,21,235,149,236,254,237,21,240, +140,242,144,244,32,246,108,247,230,247,12,247,136,245,213,244,219,245,191,247,207,248,68,249,16,251,238,253,249,254,123,253, +12,252,45,252,220,252,60,253,52,253,4,253,56,254,253,1,58,6,27,8,83,8,7,9,39,10,223,10,136,11,116,12, +222,13,185,16,234,20,157,24,29,27,146,29,74,32,94,34,189,35,14,37,125,38,13,40,194,41,82,43,225,44,45,47, +217,49,107,51,169,51,241,51,234,52,217,53,55,54,70,54,90,54,171,54,94,55,53,56,225,56,164,57,176,58,84,59, +15,59,169,58,241,58,131,59,228,59,64,60,138,60,194,60,211,61,253,63,155,65,158,65,82,65,214,65,83,66,247,65, +61,65,225,64,135,65,151,67,27,70,94,71,80,71,59,71,77,71,199,70,218,69,54,69,177,68,250,67,165,67,50,68, +254,68,34,69,154,68,165,67,226,65,40,63,137,60,22,59,105,58,130,57,60,56,27,55,143,54,100,54,102,53,176,50, +148,47,38,46,27,46,153,45,76,44,42,43,125,42,53,42,78,42,220,41,228,39,64,37,150,35,5,35,134,34,132,33, +8,32,93,30,233,28,177,27,82,26,182,24,47,23,205,21,51,20,15,18,114,15,221,12,178,10,170,8,94,6,10,4, +62,2,47,1,140,0,151,255,188,253,65,251,223,248,180,246,100,244,201,241,2,239,192,236,70,236,150,237,98,238,179,236, +139,233,45,231,26,230,64,229,224,227,61,226,63,225,166,225,251,226,202,227,68,227,253,225,206,224,223,223,254,222,41,222, +145,221,138,221,63,222,31,223,41,223,36,222,181,220,5,219,189,216,113,214,87,213,116,213,204,213,238,213,187,213,212,212, +151,211,227,210,80,210,199,208,216,206,18,206,187,206,11,208,110,209,61,210,237,209,29,209,214,208,255,208,248,208,255,208, +181,209,21,211,189,212,109,214,203,215,100,216,67,216,247,215,223,215,255,215,137,216,197,217,108,219,25,221,244,222,247,224, +107,226,250,226,12,227,191,226,59,226,146,226,76,228,32,230,244,230,103,231,86,232,176,233,254,234,138,235,227,234,240,233, +243,233,176,234,86,235,237,235,100,236,93,236,132,236,170,237,16,239,192,239,37,240,218,240,234,241,109,243,254,244,161,245, +143,245,64,246,18,248,15,250,151,251,159,252,96,253,108,254,218,255,239,0,140,1,97,2,122,3,132,4,225,5,175,7, +73,9,169,10,47,12,77,13,146,13,202,13,159,14,214,15,102,17,87,19,22,21,136,22,82,24,67,26,91,27,102,27, +22,27,20,27,222,27,98,29,186,30,116,31,82,32,206,33,46,35,183,35,114,35,192,34,48,34,117,34,161,35,224,36, +109,37,131,37,217,37,93,38,59,38,83,37,131,36,55,36,246,35,163,35,159,35,199,35,157,35,2,35,3,34,193,32, +182,31,50,31,208,30,42,30,127,29,45,29,62,29,90,29,253,28,46,28,195,27,41,28,196,28,18,29,53,29,53,29, +4,29,12,29,107,29,114,29,180,28,197,27,111,27,220,27,96,28,12,28,233,26,6,26,157,25,142,24,113,22,123,20, +146,19,22,19,37,18,193,16,87,15,22,14,232,12,125,11,119,9,0,7,230,4,136,3,48,2,65,0,60,254,178,252, +68,251,146,249,214,247,31,246,73,244,148,242,34,241,174,239,118,238,223,237,60,237,212,235,95,234,170,233,64,233,179,232, +71,232,254,231,179,231,190,231,14,232,234,231,110,231,156,231,196,232,46,234,0,235,221,234,31,234,143,233,97,233,37,233, +185,232,65,232,215,231,205,231,59,232,57,232,54,231,62,230,99,230,34,231,93,231,145,230,20,229,4,228,3,228,227,227, +169,226,191,225,162,226,52,228,198,228,108,228,235,227,185,227,48,228,149,228,121,227,158,225,124,225,41,227,112,228,12,229, +187,230,121,233,94,235,164,235,11,235,60,234,181,233,24,234,104,235,37,237,92,239,66,242,6,245,160,246,45,247,47,247, +134,246,140,245,143,245,222,246,92,248,185,249,235,251,253,254,130,1,85,2,140,1,53,0,141,255,168,255,122,255,50,255, +173,0,75,4,213,7,144,9,12,10,65,10,59,10,211,9,37,9,107,8,41,8,188,8,176,9,81,10,166,10,15,11, +116,11,145,11,137,11,112,11,227,10,175,9,80,8,69,7,124,6,231,5,207,5,79,6,53,7,57,8,210,8,148,8, +230,7,69,7,86,6,5,5,62,4,59,4,68,4,181,4,133,6,240,8,131,10,81,11,179,11,12,11,118,9,17,8, +45,7,181,6,111,7,171,9,61,12,26,14,9,15,203,14,131,13,6,12,146,10,188,8,244,6,69,6,186,6,109,7, +171,7,75,7,97,6,223,4,117,2,45,255,140,251,252,247,221,244,225,242,12,242,71,241,11,240,240,238,19,238,166,236, +69,234,72,231,75,228,15,226,183,224,125,223,49,222,188,221,93,222,31,223,65,223,197,222,31,222,253,221,60,222,183,221, +134,220,118,220,252,221,112,223,30,224,253,224,90,226,110,227,227,227,244,227,2,228,98,228,219,228,18,229,129,229,133,230, +39,231,219,230,202,230,138,231,236,231,44,231,250,229,249,228,41,228,62,227,150,225,29,223,70,221,45,221,137,221,115,220, +42,218,83,216,159,215,65,215,21,214,246,211,45,210,245,209,164,210,166,210,12,210,81,210,222,211,163,213,223,214,145,215, +177,215,148,215,40,216,166,217,85,219,22,221,100,223,251,225,101,228,203,230,163,232,225,232,155,232,63,234,106,237,93,239, +125,239,205,239,125,241,184,243,239,244,80,244,32,243,183,243,215,245,144,246,19,245,47,244,181,245,225,247,90,248,27,247, +219,245,231,245,200,246,39,247,5,247,182,247,112,249,212,250,45,251,54,251,152,251,68,252,55,253,135,254,231,255,24,1, +138,2,171,4,251,6,128,8,245,8,250,8,141,9,77,11,128,13,170,14,29,15,21,17,199,20,77,23,28,23,38,22, +67,22,34,23,7,24,146,24,185,24,182,25,139,28,110,31,21,32,113,31,133,31,244,31,182,31,48,31,230,30,39,31, +174,32,29,35,158,36,219,36,101,37,187,38,221,39,100,40,134,40,141,40,66,41,254,42,149,44,47,45,222,45,136,47, +66,49,230,49,166,49,108,49,167,49,240,49,207,49,207,49,194,50,15,52,77,52,130,51,250,50,87,51,252,51,228,51, +146,50,217,48,95,48,123,49,141,50,113,50,23,50,195,50,8,52,177,52,136,52,26,52,164,51,61,51,103,51,96,52, +135,53,64,54,242,54,81,56,26,58,32,59,177,58,170,57,125,57,20,58,4,58,35,57,12,57,98,58,154,59,57,59, +167,57,112,56,83,56,50,56,80,54,14,51,225,48,174,48,109,48,107,46,143,43,120,41,74,40,249,38,190,36,238,33, +132,31,175,29,172,27,96,25,154,23,138,22,104,21,230,19,148,18,201,17,33,17,48,16,27,15,54,14,93,13,90,12, +174,11,213,11,43,12,198,11,233,10,132,10,198,10,248,10,96,10,249,8,143,7,211,6,163,6,98,6,128,5,195,3, +229,1,55,1,133,1,231,0,121,254,106,251,255,248,127,247,120,246,211,244,9,242,102,239,15,238,235,236,185,234,33,232, +239,229,238,227,42,226,168,224,179,222,99,220,194,218,176,217,97,216,78,215,249,214,157,214,23,214,37,214,23,214,215,212, +145,211,231,211,233,212,190,212,142,211,240,210,185,211,29,213,121,213,58,212,184,210,66,210,101,210,242,209,178,208,96,207, +221,206,91,207,9,208,23,208,179,207,83,207,225,206,84,206,234,205,140,205,45,205,97,205,99,206,97,207,217,207,125,208, +220,209,15,211,227,210,224,209,230,209,145,211,67,213,138,213,43,213,234,213,19,216,41,218,165,218,192,217,51,217,14,218, +153,219,227,220,6,222,61,223,37,224,159,224,8,225,113,225,161,225,181,225,25,226,18,227,111,228,135,229,246,229,61,230, +242,230,166,231,168,231,75,231,139,231,177,232,23,234,74,235,188,236,206,238,193,240,173,241,0,242,221,242,131,244,123,246, +147,248,215,250,69,253,208,255,51,2,27,4,169,5,16,7,33,8,8,9,133,10,211,12,101,15,220,17,15,20,157,21, +119,22,33,23,218,23,96,24,154,24,232,24,236,25,216,27,208,29,200,30,3,31,123,31,57,32,178,32,212,32,203,32, +192,32,46,33,73,34,143,35,166,36,146,37,29,38,87,38,228,38,215,39,150,40,33,41,206,41,133,42,133,43,51,45, +228,46,255,47,115,49,183,51,114,53,247,53,90,54,10,55,132,55,41,56,148,57,27,59,255,59,138,60,16,61,90,61, +47,61,146,60,198,59,25,59,75,58,39,57,131,56,4,57,149,57,11,57,251,55,79,55,174,54,96,53,105,51,127,49, +171,48,25,49,118,49,195,48,231,47,214,47,196,47,169,46,235,44,119,43,161,42,59,42,211,41,3,41,13,40,116,39, +16,39,69,38,249,36,146,35,79,34,75,33,163,32,8,32,172,30,124,28,170,26,0,26,103,25,121,23,188,20,222,18, +83,18,222,17,25,16,245,12,223,9,0,8,146,6,45,4,44,1,35,255,116,254,254,253,174,252,104,250,220,247,203,245, +17,244,237,241,115,239,168,237,17,237,233,236,9,236,47,234,85,232,104,231,182,230,199,228,205,225,165,223,49,223,51,223, +8,222,161,219,83,217,12,216,33,215,83,213,121,210,149,207,172,205,228,204,89,204,14,203,63,201,202,199,127,198,148,196, +48,194,228,191,221,189,160,188,173,188,238,188,255,187,125,186,179,185,63,185,19,184,76,182,202,180,56,180,186,180,125,181, +104,181,176,180,148,180,98,181,253,181,86,181,208,179,231,178,97,179,88,180,210,180,57,181,58,182,124,183,79,184,83,184, +139,183,187,182,190,182,51,183,123,183,55,184,204,185,49,187,211,187,92,188,246,188,81,189,171,189,202,189,33,189,198,188, +43,190,62,192,82,193,36,194,178,195,9,197,138,197,31,198,10,199,174,199,72,200,104,201,226,202,127,204,53,206,145,207, +124,208,180,209,107,211,238,212,41,214,180,215,137,217,61,219,232,220,166,222,21,224,45,225,148,226,146,228,158,230,93,232, +61,234,161,236,47,239,94,241,13,243,117,244,243,245,217,247,5,250,27,252,73,254,13,1,39,4,218,6,19,9,88,11, +191,13,200,15,65,17,207,18,67,21,99,24,67,27,233,29,31,33,154,36,24,39,91,40,100,41,253,42,48,45,123,47, +89,49,82,51,94,54,175,57,122,59,53,60,173,61,82,63,107,63,224,62,201,63,181,65,231,66,101,67,60,68,134,69, +155,70,215,70,233,69,133,68,7,68,122,68,81,68,252,66,13,66,167,66,152,67,71,67,212,65,50,64,219,62,9,62, +146,61,165,60,53,59,120,58,186,58,158,58,117,57,208,55,237,53,21,52,36,51,171,50,30,49,212,46,148,45,55,45, +92,44,47,43,106,42,170,41,176,40,219,39,218,38,71,37,228,35,98,35,69,35,211,34,201,33,112,32,167,31,155,31, +226,30,168,28,87,26,56,25,101,24,106,22,83,19,126,16,68,15,58,15,37,14,241,10,74,7,155,4,244,1,97,254, +170,250,219,247,33,246,26,245,249,243,28,242,213,239,140,237,2,235,82,232,229,229,85,227,140,224,18,223,156,223,35,224, +243,222,81,221,245,220,43,221,10,220,19,217,221,213,182,212,41,214,0,216,20,216,102,215,69,216,61,218,185,218,29,217, +102,215,251,214,115,215,58,216,49,217,252,217,59,218,15,218,177,217,57,217,188,216,3,216,244,214,103,214,5,215,178,215, +40,215,58,214,26,214,247,213,130,212,89,210,42,209,149,209,168,210,241,210,102,210,173,210,87,212,82,213,14,212,35,210, +210,209,10,211,127,212,163,213,187,214,72,216,96,218,4,220,34,220,108,219,138,219,201,220,29,222,41,223,177,224,53,227, +51,230,181,232,49,234,224,234,117,235,94,236,102,237,83,238,136,239,142,241,75,244,76,247,11,250,180,251,230,251,183,251, +84,252,50,253,109,253,136,253,66,254,135,255,109,1,212,3,113,5,170,5,253,5,106,7,228,8,156,9,48,10,60,11, +198,12,154,14,58,16,195,17,40,20,4,23,157,24,52,25,176,26,246,28,131,30,125,31,182,32,250,33,113,35,143,37, +82,39,246,39,221,40,204,42,76,44,177,44,41,45,27,46,233,46,177,47,197,48,226,49,14,51,111,52,100,53,161,53, +236,53,145,54,209,54,144,54,169,54,86,55,213,55,194,55,157,55,234,55,94,56,56,56,99,55,179,54,225,54,166,55, +25,56,231,55,194,55,89,56,61,57,138,57,46,57,214,56,18,57,247,57,12,59,159,59,149,59,93,59,249,58,77,58, +214,57,164,57,209,56,92,55,148,54,199,54,179,54,164,53,2,52,63,50,154,48,8,47,19,45,240,42,198,41,154,41, +231,40,71,39,247,37,49,37,209,35,155,33,132,31,0,30,194,28,141,27,77,26,8,25,12,24,111,23,129,22,166,20, +102,18,138,16,205,14,196,12,20,11,85,10,206,9,202,8,156,7,83,6,105,4,55,2,157,0,89,255,188,253,250,251, +119,250,57,249,107,248,190,247,36,246,169,243,185,241,142,240,218,238,66,236,173,233,174,231,77,230,83,229,4,228,242,225, +216,223,81,222,194,220,175,218,180,216,101,215,99,214,48,213,48,212,20,212,118,212,26,212,212,210,162,209,198,208,198,207, +232,206,123,206,251,205,166,205,141,206,252,207,24,208,28,207,114,206,222,205,192,204,199,203,52,203,108,202,250,201,179,202, +186,203,4,204,247,203,227,203,79,203,106,202,167,201,177,200,191,199,245,199,54,201,234,201,151,201,89,201,191,201,33,202, +217,201,254,200,38,200,248,199,166,200,194,201,180,202,76,203,232,203,223,204,223,205,94,206,139,206,26,207,70,208,225,209, +217,211,246,213,184,215,20,217,136,218,61,220,235,221,102,223,166,224,170,225,190,226,80,228,57,230,217,231,241,232,235,233, +60,235,231,236,135,238,162,239,49,240,228,240,93,242,41,244,72,245,223,245,22,247,36,249,251,250,35,252,107,253,94,255, +82,1,139,2,98,3,219,4,75,7,215,9,155,11,225,12,143,14,217,16,99,19,232,21,48,24,51,26,116,28,53,31, +204,33,195,35,170,37,11,40,156,42,247,44,243,46,132,48,13,50,60,52,3,55,141,57,87,59,160,60,231,61,68,63, +50,64,68,64,41,64,3,65,183,66,5,68,88,68,80,68,172,68,102,69,208,69,81,69,46,68,115,67,223,67,31,69, +31,70,43,70,211,69,42,70,39,71,178,71,51,71,30,70,98,69,198,69,21,71,18,72,51,72,70,72,150,72,133,72, +60,72,28,72,103,71,225,69,225,68,235,68,248,68,147,68,224,67,158,66,79,65,207,64,241,63,57,61,41,58,178,56, +198,55,237,53,200,51,216,49,183,47,204,45,54,44,168,41,0,38,16,35,78,33,52,31,50,28,24,25,70,22,182,19, +123,17,21,15,241,11,177,8,114,6,10,5,57,3,84,0,247,252,47,250,72,248,133,246,19,244,54,241,18,239,4,238, +228,236,155,234,181,231,56,229,16,227,182,224,16,222,16,219,237,215,111,213,155,211,113,209,241,206,29,205,174,203,158,201, +17,199,85,196,241,192,134,189,152,187,148,186,123,184,132,181,185,179,148,179,149,179,92,178,222,175,73,173,217,171,76,171, +40,170,3,168,105,166,223,166,207,168,36,170,240,169,76,169,72,169,107,169,17,169,154,168,107,168,125,168,37,169,231,170, +98,173,128,175,158,176,27,177,209,177,187,178,166,178,25,177,209,175,211,176,172,179,20,182,245,182,123,183,234,184,119,186, +110,186,206,184,58,183,218,182,164,183,245,184,13,186,13,187,246,188,128,191,210,192,171,192,182,192,44,193,29,193,102,193, +52,195,102,197,248,198,10,201,55,204,78,207,151,209,71,211,124,212,205,213,233,215,25,218,179,219,222,221,85,225,162,228, +170,230,80,232,111,234,192,236,230,238,216,240,182,242,212,244,62,247,107,249,30,251,153,252,248,253,74,255,202,0,79,2, +124,3,176,4,102,6,48,8,109,9,26,10,95,10,103,10,193,10,185,11,201,12,143,13,109,14,197,15,120,17,8,19, +201,19,148,19,83,19,216,19,189,20,110,21,77,22,191,23,139,25,183,27,51,30,204,31,166,31,33,31,18,32,16,34, +133,35,39,36,247,36,238,38,24,42,25,45,46,46,156,45,159,45,21,47,87,48,250,47,213,46,184,46,109,48,232,50, +18,52,41,51,243,49,44,50,232,50,73,50,113,48,251,46,174,46,7,47,11,47,24,46,201,44,140,44,136,45,15,46, +3,45,64,43,17,42,185,41,192,41,98,41,29,40,184,38,191,38,49,40,42,41,109,40,232,38,53,38,156,38,207,38, +120,37,62,35,93,34,128,35,141,36,204,35,103,34,79,34,85,35,209,35,221,34,242,32,81,31,251,30,101,31,210,30, +232,28,164,27,56,28,224,28,153,27,11,25,17,23,81,22,107,22,119,22,32,21,130,18,194,16,217,16,241,16,144,15, +137,13,10,12,126,11,232,11,31,12,136,10,217,7,91,6,83,6,28,6,245,4,65,3,192,1,130,1,111,2,104,2, +49,0,122,253,30,252,168,251,162,250,131,248,62,246,124,245,100,246,204,246,52,245,233,242,169,241,65,241,123,240,169,238, +72,236,254,234,237,235,203,237,104,238,151,237,211,236,226,236,57,237,242,236,211,235,199,234,255,234,119,236,9,238,239,238, +107,239,43,240,87,241,49,242,229,241,214,240,104,240,76,241,146,242,239,242,170,242,61,243,162,244,230,244,78,243,145,241, +23,241,119,241,218,241,160,241,133,240,159,239,53,240,24,241,36,240,205,237,62,236,50,236,212,236,10,237,47,236,66,235, +22,236,44,238,13,239,65,238,169,237,59,238,94,239,106,240,231,240,2,241,17,242,190,244,118,247,135,248,138,248,72,249, +83,251,134,253,122,254,119,254,83,255,229,1,155,4,141,5,9,5,28,5,236,6,82,9,104,10,15,10,246,9,79,11, +92,13,98,14,204,13,42,13,66,14,67,16,230,16,27,16,7,16,152,17,144,19,112,20,214,19,214,18,73,19,117,21, +80,23,124,23,48,23,20,24,10,26,190,27,52,28,180,27,159,27,230,28,228,30,64,32,105,32,20,32,173,32,142,34, +22,36,222,35,214,34,159,34,67,35,212,35,154,35,137,34,192,33,109,34,142,35,31,35,74,33,211,31,123,31,240,31, +86,32,93,31,62,29,96,28,144,29,99,30,110,29,102,28,181,28,178,29,136,30,209,30,55,30,100,29,153,29,141,30, +228,30,144,30,149,30,38,31,175,31,237,31,227,31,141,31,5,31,102,30,162,29,195,28,2,28,118,27,7,27,139,26, +185,25,97,24,186,22,15,21,72,19,69,17,53,15,85,13,231,11,39,11,114,10,126,8,110,5,33,3,71,2,62,1, +234,254,83,252,194,250,49,250,194,249,130,248,96,246,172,244,85,244,45,244,182,242,165,240,205,239,106,240,8,241,120,240, +36,239,109,238,194,238,15,239,101,238,53,237,98,236,67,236,154,236,146,236,108,235,228,233,132,233,34,234,222,233,233,231, +131,229,15,228,126,227,196,226,26,225,199,222,221,220,248,219,106,219,41,218,84,216,250,214,94,214,127,213,188,211,224,209, +244,208,236,208,6,209,227,208,206,208,41,209,205,209,34,210,241,209,173,209,231,209,249,210,234,212,250,214,253,215,247,215, +136,216,168,218,235,220,97,221,154,220,32,221,248,223,64,227,208,228,253,228,231,229,103,232,155,234,97,234,209,232,39,233, +227,235,48,238,169,238,17,239,179,240,153,242,109,243,202,242,117,241,66,241,220,242,120,244,2,245,2,246,63,248,67,250, +61,251,127,251,222,250,244,249,133,250,117,252,31,254,228,255,239,2,41,6,61,8,142,9,23,10,128,9,113,9,70,11, +62,13,4,14,148,15,119,19,204,23,42,26,119,26,43,26,199,26,117,28,139,29,0,29,205,28,107,31,200,35,146,38, +178,38,3,38,93,38,227,39,117,41,185,41,198,40,225,40,139,43,199,46,186,47,168,46,218,45,109,46,223,47,226,48, +128,48,252,47,168,49,174,52,162,53,230,51,60,50,59,50,15,51,105,51,92,50,122,48,55,48,63,50,120,51,155,49, +136,46,171,44,187,43,99,42,34,40,143,37,65,36,10,37,3,38,172,36,88,33,41,30,219,27,139,25,183,22,3,20, +89,18,238,17,24,18,202,17,56,16,160,13,74,11,205,9,1,8,254,4,195,1,194,255,45,255,82,255,19,255,157,253, +194,251,229,250,41,250,108,247,22,243,187,239,80,238,105,237,166,235,36,233,223,230,116,229,104,228,174,226,201,223,50,220, +179,216,152,213,161,210,250,207,68,206,17,205,22,203,121,200,130,198,208,196,238,193,67,190,111,187,154,185,169,183,47,181, +241,178,45,178,243,178,51,179,46,177,70,174,207,172,121,172,99,171,79,169,202,167,38,168,237,169,249,170,10,170,188,168, +19,169,37,170,190,169,240,167,187,166,22,167,20,168,111,168,25,168,27,168,13,169,62,170,167,170,30,170,100,169,93,169, +35,170,223,170,217,170,66,170,216,169,120,170,150,172,48,175,78,176,200,175,251,175,110,178,53,181,84,181,12,179,76,178, +227,181,63,187,102,189,19,188,88,188,13,193,56,198,123,198,171,194,215,192,62,196,91,201,92,203,252,202,252,204,224,210, +140,216,172,217,28,215,134,213,137,215,44,219,83,221,210,221,254,222,123,226,94,231,27,235,34,236,142,235,190,235,177,237, +108,240,98,242,22,243,42,244,5,248,19,254,55,2,20,2,203,0,228,2,30,8,224,11,190,11,32,11,159,14,32,21, +41,25,216,24,46,24,239,26,9,32,202,35,108,36,34,36,161,38,255,43,240,47,215,47,145,46,246,47,229,51,172,55, +159,57,54,58,104,59,159,62,107,66,233,67,242,66,134,66,146,68,177,71,187,73,141,74,169,75,40,78,98,81,142,83, +231,83,173,83,76,84,126,85,113,86,98,87,205,88,146,90,202,92,116,95,100,97,183,97,129,97,19,98,17,99,165,99, +188,99,179,99,57,100,162,101,164,102,249,101,228,100,52,101,244,101,64,101,123,99,91,98,97,98,127,98,94,97,45,95, +239,93,128,94,164,94,124,92,186,89,230,88,156,89,133,89,158,87,105,85,238,84,165,85,221,84,9,82,225,79,218,79, +238,79,102,78,116,76,174,75,180,75,53,75,169,73,133,71,148,69,36,68,190,66,232,64,7,63,211,61,248,60,97,59, +254,56,205,54,247,52,187,50,27,48,167,45,65,43,197,40,172,38,226,36,190,34,47,32,102,29,97,26,176,23,153,21, +201,18,155,14,255,10,98,9,66,8,232,5,181,2,204,255,245,253,63,253,29,252,239,248,13,245,36,243,193,242,7,241, +122,237,170,234,49,234,164,234,219,233,157,231,84,229,5,228,57,227,142,225,73,222,153,218,128,216,13,216,66,215,12,213, +102,210,124,208,125,207,173,206,176,204,68,201,115,198,190,197,128,197,147,195,149,192,116,190,243,189,101,190,63,190,138,188, +159,186,129,186,135,187,91,187,193,185,166,184,44,185,99,186,132,186,9,185,191,183,191,184,124,187,111,189,127,189,227,188, +227,188,85,189,95,189,199,188,29,188,53,188,162,189,252,191,153,193,76,193,65,192,76,192,29,193,32,193,254,191,169,190, +88,190,216,191,68,194,118,195,64,195,181,195,68,197,3,198,92,197,207,196,86,197,197,198,167,200,82,202,147,203,109,205, +125,208,141,211,79,213,67,214,185,215,245,217,37,220,181,221,44,223,121,225,159,228,163,231,179,233,29,235,28,237,60,240, +29,243,51,244,100,244,175,245,244,247,149,249,82,250,80,251,68,253,246,255,119,2,167,3,174,3,56,4,52,6,125,8, +133,9,113,9,207,9,174,11,125,14,237,16,160,18,72,20,120,22,231,24,201,26,163,27,245,27,227,28,33,31,86,34, +104,37,109,39,228,40,45,43,51,46,44,48,100,48,48,48,182,48,227,49,60,51,38,52,121,52,82,53,93,55,254,56, +134,56,209,54,168,53,100,53,75,53,154,52,72,51,159,50,174,51,42,53,5,53,112,51,21,50,157,49,141,49,72,49, +158,48,80,48,104,49,91,51,94,52,238,51,55,51,3,51,248,50,205,50,205,50,37,51,181,51,138,52,147,53,12,54, +85,53,31,52,131,51,109,51,21,51,92,50,143,49,238,48,200,48,209,48,214,47,87,45,143,42,217,40,8,40,246,38, +249,36,162,34,32,33,128,32,48,31,250,27,185,23,81,20,138,18,70,17,20,15,87,12,180,10,61,10,64,9,254,6, +60,4,130,1,10,255,83,253,58,252,238,250,103,249,64,248,146,247,24,247,111,246,251,244,213,242,18,241,244,239,152,238, +212,236,99,235,128,234,224,233,15,233,89,231,214,228,222,226,194,225,4,224,50,221,11,219,113,218,245,217,97,216,121,214, +89,213,204,212,232,211,98,210,181,208,125,207,236,206,149,206,6,206,211,205,249,206,206,208,127,209,243,208,173,208,227,208, +164,208,76,208,242,208,64,210,50,211,204,211,195,212,69,214,103,215,253,214,185,213,46,214,7,217,100,219,13,219,197,217, +75,218,98,220,126,221,71,220,86,218,73,218,101,220,62,222,71,222,10,222,138,223,210,225,14,226,206,223,242,221,146,222, +61,224,15,225,213,225,22,228,73,231,192,233,160,234,98,234,93,234,37,235,205,235,89,236,209,238,118,243,110,247,123,249, +162,251,131,254,4,0,112,255,186,254,190,255,183,2,97,6,17,9,4,11,34,14,13,18,189,19,113,18,30,17,189,17, +17,19,200,19,141,20,120,22,128,25,118,28,185,29,212,28,116,27,59,27,77,27,67,26,65,25,19,26,248,27,76,29, +31,30,162,30,17,30,232,28,180,28,94,29,241,29,202,30,20,32,196,32,15,33,120,34,149,36,142,37,85,37,59,37, +152,37,0,38,61,38,50,38,22,38,133,38,126,39,20,40,129,39,250,37,123,36,188,35,38,35,184,33,205,31,111,30, +125,29,40,28,83,26,78,24,83,22,153,20,11,19,85,17,115,15,87,13,165,10,232,7,62,6,32,5,242,2,246,255, +237,253,4,253,176,251,24,249,10,246,190,243,98,242,209,240,55,238,120,235,238,233,83,233,106,232,250,230,175,229,155,228, +42,227,109,225,57,224,191,223,35,223,217,221,130,220,19,220,170,220,61,221,144,220,200,218,58,217,36,216,117,214,90,212, +58,211,18,211,185,210,65,210,69,210,50,210,62,209,128,207,82,205,53,203,176,201,53,200,8,198,77,196,127,196,130,197, +38,197,121,195,42,194,200,193,45,193,57,191,169,188,150,187,175,188,6,190,184,189,89,188,175,187,32,188,100,188,108,187, +9,186,186,185,89,186,155,186,112,186,166,186,38,187,162,187,121,188,142,189,35,190,93,190,1,191,251,191,205,192,101,193, +229,193,200,194,233,196,34,200,206,202,232,203,108,204,198,205,226,207,110,209,186,209,220,209,135,211,184,214,125,217,131,218, +18,219,96,221,35,225,137,227,51,227,33,226,157,226,96,228,239,229,211,230,166,231,53,233,179,235,39,238,87,239,76,239, +249,238,47,239,111,240,112,242,228,243,47,244,154,244,113,246,28,249,234,250,2,251,139,250,181,251,181,254,20,1,147,1, +89,2,67,5,240,8,44,11,208,11,111,12,138,14,4,18,34,21,209,22,17,24,45,26,6,29,214,31,35,34,236,35, +227,37,144,40,75,43,84,45,20,47,248,48,184,50,103,52,61,54,147,55,52,56,116,57,36,60,0,63,157,64,81,65, +71,66,182,67,193,68,190,68,68,68,156,68,24,70,148,71,2,72,244,71,215,72,221,74,148,76,188,76,178,75,218,74, +63,75,152,76,127,77,84,77,114,77,63,79,215,81,35,83,109,82,2,81,234,80,192,82,132,84,79,84,133,83,143,84, +216,86,34,88,223,87,169,86,39,85,132,84,250,84,193,84,34,83,37,82,253,82,11,84,151,83,153,81,248,78,36,77, +243,76,236,76,14,75,55,72,13,71,253,71,181,72,87,71,150,68,148,66,28,66,178,65,199,63,250,60,73,59,106,59, +246,59,49,59,4,57,189,54,40,53,212,51,251,49,112,47,3,45,7,44,121,44,103,44,128,42,216,39,233,37,157,36, +38,35,244,32,237,29,50,27,103,26,0,27,80,26,68,23,217,19,49,18,193,17,77,16,246,12,111,9,190,7,141,7, +193,6,54,4,227,0,154,254,254,253,155,253,142,251,15,248,62,245,112,244,176,244,11,244,227,241,157,239,174,238,133,238, +156,237,187,235,204,233,134,232,28,232,236,231,192,230,146,228,191,226,185,225,188,224,143,223,29,222,206,219,77,217,71,216, +24,216,96,214,42,211,220,208,92,208,71,208,35,207,188,204,76,202,94,201,166,201,49,201,77,199,112,197,210,196,206,196, +51,196,12,195,107,194,159,194,171,194,236,193,11,193,188,192,220,192,43,193,145,193,207,193,237,193,83,194,235,194,23,195, +198,194,140,194,197,194,88,195,35,196,42,197,83,198,86,199,33,200,223,200,102,201,93,201,35,201,102,201,239,201,35,202, +49,202,162,202,125,203,98,204,194,204,80,204,207,203,34,204,202,204,244,204,254,204,103,205,247,205,214,206,80,208,139,209, +218,209,30,210,16,211,28,212,234,212,10,214,201,215,214,217,174,219,231,220,202,221,15,223,160,224,209,225,202,226,79,228, +131,230,2,233,76,235,251,236,79,238,248,239,221,241,94,243,190,244,168,246,6,249,114,251,210,253,220,255,101,1,17,3, +116,5,12,8,235,9,3,11,71,12,150,14,137,17,215,19,42,21,178,22,84,25,44,28,164,29,181,29,37,30,52,32, +233,34,168,36,134,37,185,38,153,40,98,42,74,43,106,43,203,43,21,45,80,46,82,46,196,45,21,46,66,47,47,48, +83,48,26,48,79,48,25,49,128,49,205,48,228,47,217,47,89,48,165,48,161,48,89,48,26,48,179,48,55,50,87,51, +12,51,16,50,250,49,78,51,174,52,129,52,121,51,206,51,227,53,169,55,140,55,58,54,140,53,108,54,182,55,128,55, +237,53,20,53,228,53,6,55,223,54,34,53,217,50,172,49,248,49,255,49,87,48,29,46,70,45,251,45,109,46,169,44, +178,40,7,37,213,35,249,35,152,34,72,31,149,28,105,28,108,29,166,28,108,25,67,22,12,21,44,20,70,17,51,13, +249,10,164,11,21,13,2,13,174,11,231,10,237,10,252,9,17,7,178,3,10,2,26,2,51,2,235,1,145,2,45,4, +143,4,175,2,66,0,135,254,122,252,122,249,240,246,55,246,178,246,160,246,70,245,225,243,162,243,66,243,193,240,238,236, +70,234,77,233,153,232,77,231,239,229,185,229,247,230,161,231,193,229,240,226,246,225,7,226,155,224,42,222,9,221,161,221, +145,222,185,222,1,222,104,221,206,221,59,222,64,221,187,219,143,219,89,220,59,220,0,219,35,218,90,218,232,218,249,218, +129,218,12,218,68,218,70,219,42,220,230,219,195,218,231,217,173,217,176,217,177,217,110,217,212,216,193,216,203,217,170,218, +27,218,11,217,195,216,217,216,130,216,218,215,67,215,40,215,3,216,110,217,80,218,102,218,84,218,126,218,212,218,62,219, +118,219,67,219,237,218,21,219,247,219,249,220,93,221,136,221,123,222,223,223,78,224,145,223,170,222,56,222,110,222,85,223, +22,224,244,223,198,223,106,224,242,224,94,224,103,223,12,223,27,223,239,222,134,222,111,222,224,222,29,223,189,222,202,222, +235,223,214,224,139,224,39,224,194,224,211,225,154,226,0,227,52,227,217,227,131,229,111,231,120,232,1,233,21,234,155,235, +1,237,120,238,77,240,27,242,98,243,73,244,63,245,57,246,220,246,86,247,71,248,201,249,98,251,172,252,132,253,11,254, +142,254,246,254,215,254,100,254,57,254,76,254,74,254,132,254,102,255,182,0,224,1,80,2,230,1,85,1,36,1,216,0, +75,0,91,0,94,1,182,2,21,4,113,5,140,6,161,7,251,8,222,9,215,9,219,9,145,10,170,11,97,13,242,15, +111,18,103,20,164,22,9,25,119,26,226,26,16,27,103,27,88,28,14,30,146,31,112,32,168,33,98,35,109,36,164,36, +230,36,221,36,204,35,122,34,13,34,71,34,43,34,104,33,135,32,37,32,20,32,160,31,193,30,16,30,129,29,102,28, +173,26,251,24,210,23,33,23,134,22,188,21,18,21,12,21,82,21,207,20,90,19,73,18,85,18,42,18,114,16,37,14, +6,13,31,13,74,13,225,12,239,11,255,10,173,10,119,10,17,9,152,6,122,4,49,3,45,2,64,1,117,0,188,255, +80,255,21,255,69,254,172,252,184,250,89,248,237,245,180,244,96,244,14,243,217,240,253,239,248,240,228,241,35,241,170,238, +248,235,10,235,145,235,209,234,1,232,225,229,121,230,94,232,19,233,227,231,64,230,4,230,213,230,106,230,66,228,164,226, +206,226,55,227,135,226,141,225,139,225,91,226,179,226,185,225,26,224,8,223,107,222,113,221,70,220,166,219,99,219,230,218, +105,218,106,218,162,218,129,218,31,218,21,218,134,218,230,218,203,218,152,218,20,219,98,220,173,221,48,222,98,222,87,223, +16,225,115,226,19,227,194,227,54,229,31,231,184,232,191,233,198,234,122,236,188,238,209,240,71,242,50,243,17,244,116,245, +69,247,197,248,177,249,121,250,62,251,253,251,17,253,96,254,85,255,32,0,58,1,18,2,84,2,204,2,122,3,99,3, +16,3,2,4,201,5,218,6,46,7,184,7,229,8,178,10,128,12,57,13,43,13,250,13,249,15,224,17,70,19,245,20, +67,23,210,25,46,28,235,29,60,31,238,32,26,35,33,37,67,39,20,42,204,44,122,46,2,48,99,50,145,52,127,53, +76,54,63,56,161,58,66,60,43,61,225,61,181,62,195,63,103,64,200,63,143,62,51,62,136,62,106,62,249,61,228,61, +227,61,133,61,176,60,23,59,248,56,130,55,235,54,47,54,111,53,195,53,187,54,245,54,90,54,171,53,44,53,225,52, +187,52,100,52,11,52,127,52,221,53,87,55,101,56,43,57,216,57,61,58,0,58,65,57,216,56,53,57,206,57,95,58, +79,59,83,60,124,60,208,59,14,59,82,58,118,57,182,56,237,55,161,54,61,53,152,52,78,52,73,51,139,49,238,47, +146,46,252,44,23,43,7,41,197,38,160,36,17,35,173,33,165,31,51,29,18,27,63,25,121,23,205,21,245,19,172,17, +142,15,2,14,71,12,247,9,233,7,154,6,139,5,97,4,41,3,239,1,188,0,118,255,238,253,115,252,71,251,210,249, +217,247,81,246,158,245,207,244,117,243,27,242,224,240,98,239,117,237,33,235,211,232,45,231,220,229,14,228,52,226,37,225, +88,224,255,222,82,221,160,219,16,218,22,217,74,216,153,214,148,212,216,211,7,212,142,211,103,210,108,209,162,208,237,207, +89,207,91,206,203,204,182,203,155,203,84,203,234,201,12,200,234,198,162,198,87,198,89,197,222,195,137,194,135,193,134,192, +91,191,83,190,222,189,224,189,183,189,11,189,19,188,4,187,42,186,15,186,144,186,188,186,86,186,39,186,167,186,139,187, +96,188,187,188,203,188,130,189,31,191,121,192,244,192,152,193,112,195,61,198,215,200,49,202,154,202,152,203,167,205,131,207, +146,208,233,209,49,212,178,214,130,216,125,217,96,218,213,219,15,221,246,220,160,220,198,221,166,223,168,224,57,225,69,226, +94,227,38,228,206,228,245,228,155,228,230,228,57,230,134,231,99,232,134,233,70,235,62,237,224,238,195,239,85,240,195,241, +99,244,38,247,57,249,27,251,182,253,21,1,59,4,91,6,255,7,109,10,240,13,135,17,84,20,179,22,165,25,54,29, +55,32,1,34,82,35,245,36,244,38,39,41,33,43,82,44,49,45,175,46,45,48,93,48,138,47,203,46,100,46,103,46, +194,46,152,46,165,45,8,45,34,45,23,45,170,44,29,44,54,43,94,42,94,42,135,42,7,42,255,41,85,43,220,44, +174,45,62,46,160,46,194,46,93,47,129,48,84,49,250,49,33,51,112,52,149,53,240,54,30,56,103,56,129,56,68,57, +244,57,173,57,201,56,236,55,137,55,249,55,162,56,71,56,239,54,207,53,37,53,29,52,100,50,97,48,141,46,99,45, +254,44,120,44,218,42,134,40,159,38,122,37,134,36,38,35,63,33,109,31,161,30,206,30,176,30,122,29,206,27,173,26, +98,26,89,26,114,25,88,23,164,21,222,21,251,22,231,22,119,21,236,19,249,18,82,18,5,17,155,14,134,12,91,12, +204,12,147,11,58,9,123,7,11,6,19,4,224,1,155,255,77,253,201,251,231,250,38,249,185,246,109,245,1,245,140,243, +244,240,171,238,111,237,19,237,214,236,210,235,113,234,238,233,0,234,127,233,155,232,9,232,156,231,68,231,90,231,126,231, +53,231,179,230,11,230,81,229,56,229,110,229,127,228,209,226,87,226,192,226,27,226,144,224,81,223,15,222,113,220,228,218, +241,216,98,214,221,212,202,212,194,211,23,209,47,207,173,206,130,205,38,203,232,200,51,199,1,198,149,197,25,197,169,195, +130,194,227,194,177,195,191,195,140,195,119,195,95,195,210,195,209,196,57,197,42,197,21,198,224,199,52,201,232,201,154,202, +110,203,157,204,12,206,147,206,216,205,107,205,52,206,56,207,192,207,23,208,77,208,123,208,40,209,1,210,234,209,212,208, +184,207,53,207,98,207,241,207,25,208,185,207,252,207,104,209,164,210,95,210,17,209,46,208,160,208,254,209,253,210,74,211, +53,212,99,214,127,216,169,217,217,218,169,220,84,222,165,223,96,225,176,227,39,230,145,232,194,234,0,237,75,240,120,244, +131,247,163,248,199,249,107,252,174,255,76,2,37,4,245,5,226,8,227,12,195,15,27,16,236,15,137,17,90,20,201,22, +94,24,41,25,248,25,62,28,100,31,228,32,119,32,115,32,201,33,112,35,219,36,243,37,151,38,163,39,244,41,100,44, +104,45,116,45,191,45,135,46,150,47,179,48,152,49,188,50,231,52,129,55,27,57,143,57,246,57,244,58,73,60,92,61, +220,61,88,62,207,63,43,66,6,68,134,68,120,68,253,68,231,69,51,70,168,69,4,69,223,68,68,69,12,70,165,70, +21,70,84,68,214,66,149,66,127,66,2,65,127,62,212,60,189,60,236,60,208,59,49,57,24,54,254,51,91,51,163,50, +35,48,226,44,50,43,209,42,104,41,25,38,24,34,217,30,13,29,221,27,130,25,9,22,141,19,146,18,45,17,61,14, +107,10,171,6,227,3,72,2,98,0,77,253,149,250,83,249,67,248,121,246,89,244,216,241,40,239,99,237,39,236,212,233, +252,230,107,229,185,228,153,227,41,226,127,224,20,222,105,219,21,217,82,214,16,211,5,209,195,208,134,208,214,206,22,204, +139,201,227,199,101,198,212,195,148,192,150,190,140,190,218,190,206,189,167,187,19,186,255,185,35,186,130,184,70,181,154,178, +199,177,15,178,48,178,158,177,181,176,129,176,96,177,202,177,11,176,4,173,101,171,54,172,234,173,177,174,94,174,78,174, +18,176,38,179,148,180,216,178,208,176,176,177,42,180,79,181,116,181,165,182,45,185,62,188,246,190,15,192,114,191,53,191, +156,192,99,194,103,195,52,196,175,197,104,200,42,204,56,207,43,208,98,208,248,209,148,212,137,214,117,215,114,216,227,218, +227,222,115,226,222,227,108,228,124,230,19,234,92,237,41,239,234,239,70,241,90,244,232,247,253,249,243,250,140,252,99,255, +250,2,107,6,103,8,234,8,42,10,144,13,152,17,71,20,166,21,7,23,162,25,107,29,164,32,4,34,14,35,249,37, +62,42,127,45,231,46,242,47,70,50,177,53,168,56,158,58,171,60,134,63,137,66,9,69,10,71,185,72,155,74,67,77, +25,80,225,81,187,82,238,83,235,85,236,87,53,89,232,89,208,90,101,92,226,93,45,94,129,93,36,93,144,93,248,93, +138,93,159,92,94,92,74,93,111,94,134,94,141,93,179,92,191,92,18,93,125,92,11,91,36,90,167,90,198,91,78,92, +2,92,100,91,44,91,177,91,36,92,107,91,19,90,180,89,93,90,159,90,233,89,1,89,132,88,98,88,69,88,178,87, +101,86,211,84,194,83,88,83,219,82,135,81,124,79,167,77,144,76,139,75,144,73,156,70,213,67,34,66,229,64,163,62, +252,58,81,55,20,53,231,51,255,49,94,46,20,42,244,38,44,37,45,35,231,31,42,28,121,25,57,24,50,23,198,20, +253,16,169,13,243,11,226,10,26,9,164,6,75,4,161,2,176,1,146,0,52,254,29,251,9,249,77,248,84,247,208,244, +84,241,201,238,79,238,126,238,220,236,105,233,139,230,77,229,31,228,121,225,176,221,90,218,198,216,135,216,187,215,136,213, +2,211,36,209,182,207,53,206,66,204,203,201,152,199,75,198,36,197,136,195,57,194,109,193,76,192,44,191,23,191,60,191, +18,190,10,188,146,186,255,185,236,185,224,185,72,185,91,184,30,184,156,184,175,184,229,183,252,182,149,182,124,182,254,181, +230,180,19,180,52,180,128,180,44,180,219,179,240,179,144,179,143,178,233,177,227,177,1,178,71,178,176,178,220,178,41,179, +45,180,71,181,186,181,41,182,43,183,49,184,235,184,232,185,89,187,231,188,131,190,35,192,136,193,223,194,148,196,102,198, +222,199,85,201,79,203,86,205,167,206,117,207,119,208,231,209,153,211,101,213,4,215,90,216,225,217,211,219,119,221,88,222, +36,223,98,224,156,225,160,226,254,227,186,229,43,231,95,232,14,234,71,236,94,238,5,240,127,241,248,242,144,244,166,246, +76,249,218,251,235,253,31,0,251,2,242,5,126,8,244,10,161,13,106,16,107,19,175,22,194,25,128,28,36,31,132,33, +158,35,39,38,255,40,244,42,12,44,138,45,125,47,240,48,234,49,246,50,15,52,81,53,189,54,82,55,141,54,204,53, +80,54,122,55,59,56,130,56,198,56,111,57,134,58,114,59,151,59,53,59,36,59,243,59,98,61,120,62,186,62,19,63, +122,64,104,66,174,67,209,67,40,67,213,66,3,68,0,70,202,70,50,70,65,70,10,72,78,74,29,75,176,73,74,71, +75,70,44,71,186,71,107,70,145,68,24,68,246,68,78,69,103,67,189,63,206,60,204,59,3,59,199,56,220,53,193,51, +175,50,198,49,243,47,252,44,51,42,221,40,77,40,19,39,39,37,139,35,175,34,15,34,224,32,253,30,57,29,82,28, +232,27,81,27,139,26,197,25,224,24,203,23,129,22,211,20,177,18,132,16,243,14,68,14,184,13,54,12,249,9,69,8, +22,7,223,4,28,1,55,253,138,250,0,249,170,247,202,245,111,243,66,241,107,239,38,237,233,233,71,230,52,227,12,225, +151,223,148,222,196,221,184,220,55,219,185,217,209,216,35,216,217,214,12,213,197,211,187,211,139,212,42,213,21,213,232,212, +43,213,53,213,87,212,55,211,204,210,249,210,34,211,14,211,212,210,158,210,18,210,79,208,148,205,192,203,146,203,82,203, +188,201,198,199,152,198,250,197,19,197,18,195,248,191,85,189,149,188,192,188,250,187,82,186,54,185,52,185,141,185,44,185, +162,183,226,181,112,181,119,182,154,183,210,183,183,183,163,184,193,186,146,188,4,189,1,189,229,189,144,191,18,193,12,194, +201,194,4,196,72,198,221,200,124,202,27,203,133,203,234,203,92,204,72,205,83,206,169,206,175,206,86,207,57,208,100,208, +247,207,181,207,227,207,71,208,128,208,113,208,114,208,219,208,134,209,42,210,192,210,96,211,56,212,113,213,217,214,60,216, +190,217,125,219,82,221,34,223,216,224,98,226,28,228,85,230,158,232,173,234,14,237,232,239,147,242,233,244,68,247,120,249, +98,251,123,253,207,255,239,1,23,4,172,6,74,9,154,11,197,13,157,15,234,16,55,18,208,19,26,21,223,21,169,22, +180,23,255,24,201,26,217,28,129,30,182,31,233,32,249,33,129,34,198,34,137,35,54,37,107,39,97,41,244,42,205,44, +13,47,220,48,225,49,218,50,114,52,120,54,55,56,33,57,159,57,247,58,131,61,219,63,200,64,252,64,192,65,45,67, +117,68,250,68,185,68,99,68,8,69,211,70,116,72,167,72,221,71,131,71,29,72,224,72,182,72,84,71,191,69,144,69, +233,70,229,71,20,71,87,69,68,68,20,68,223,67,199,66,191,64,221,62,65,62,103,62,180,61,168,59,85,57,229,55, +82,55,79,54,203,51,156,48,117,46,74,45,152,43,227,40,251,37,122,35,75,33,232,30,197,27,53,24,30,21,136,18, +235,15,95,13,211,10,157,7,21,4,63,1,174,254,103,251,248,247,63,245,226,242,154,240,148,238,100,236,225,233,244,231, +191,230,23,229,182,226,107,224,131,222,244,220,225,219,196,218,252,216,22,215,199,213,159,212,7,211,22,209,11,207,87,205, +135,204,13,204,133,202,210,199,88,197,237,195,216,194,224,192,249,189,156,187,226,186,199,186,137,185,32,183,228,180,145,179, +187,178,107,177,29,175,148,172,10,171,96,170,145,169,135,168,229,167,187,167,199,167,237,167,177,167,133,166,6,165,132,164, +83,165,133,166,96,167,72,168,249,169,50,172,227,173,144,174,213,174,134,175,238,176,181,178,77,180,209,181,12,184,26,187, +240,189,224,191,68,193,102,194,50,195,10,196,138,197,143,199,131,201,90,203,152,205,118,208,92,211,132,213,254,214,110,216, +0,218,107,219,193,220,107,222,160,224,82,227,35,230,147,232,184,234,39,237,203,239,214,241,32,243,129,244,193,246,188,249, +88,252,152,253,56,254,80,0,97,4,53,8,233,9,154,10,165,12,88,16,214,19,154,21,54,22,151,23,246,26,72,31, +27,34,183,34,150,35,28,39,254,43,36,47,5,48,193,48,12,51,188,54,80,58,77,60,56,61,83,63,68,67,243,70, +196,72,149,73,12,75,230,77,133,81,45,84,248,84,114,85,103,87,36,90,198,91,191,91,40,91,207,91,80,94,136,96, +3,96,221,93,20,93,242,93,93,94,57,93,47,91,204,89,99,90,9,92,14,92,205,89,170,87,96,87,243,87,111,87, +255,84,14,82,79,81,48,83,215,84,43,84,104,82,180,81,168,82,26,84,188,83,173,80,193,77,24,78,109,80,72,81, +237,79,71,78,32,78,195,79,62,81,238,79,129,76,178,74,183,75,215,76,196,75,254,72,116,70,219,69,192,70,9,70, +33,66,8,62,213,60,248,60,51,59,65,55,9,51,2,48,108,46,219,44,60,41,10,36,90,32,65,31,31,30,185,26, +43,22,223,18,135,17,168,16,61,14,28,10,112,6,228,4,99,4,251,2,129,0,41,254,201,252,46,252,58,251,247,248, +22,246,71,244,213,243,110,243,254,241,170,239,140,237,203,236,208,236,131,235,123,232,232,229,19,229,139,228,154,226,80,223, +69,220,66,219,229,219,48,219,209,215,133,212,159,211,155,211,52,210,81,207,19,204,23,202,67,202,129,202,28,200,172,196, +198,195,0,197,92,197,32,196,71,194,117,192,125,191,149,191,31,191,59,189,136,187,107,187,70,188,245,188,175,188,91,187, +76,186,148,186,220,186,125,185,71,183,249,181,14,182,2,183,149,183,173,182,98,181,220,181,111,183,113,183,164,181,67,180, +149,180,3,182,76,183,119,183,10,183,217,183,49,186,249,187,235,187,96,187,28,188,77,190,226,192,137,194,250,194,181,195, +64,198,153,201,89,203,47,203,80,203,120,205,7,209,27,212,102,213,79,213,206,213,83,216,154,219,19,221,141,220,175,220, +78,223,254,226,249,228,150,228,9,228,143,229,143,232,131,234,75,234,86,233,212,233,114,236,141,239,3,241,30,241,48,242, +197,244,18,247,62,248,36,249,104,250,124,252,206,255,74,3,132,5,132,7,229,10,168,14,106,17,252,19,27,23,21,26, +225,28,22,32,68,35,238,37,134,40,48,43,193,45,143,48,74,51,244,52,22,54,15,56,79,58,104,59,152,59,222,59, +135,60,184,61,26,63,136,63,1,63,11,63,252,63,109,64,204,63,255,62,187,62,28,63,219,63,67,64,27,64,51,64, +230,64,95,65,42,65,207,64,184,64,253,64,207,65,216,66,89,67,147,67,115,68,188,69,87,70,68,70,107,70,1,71, +151,71,242,71,3,72,213,71,209,71,25,72,25,72,116,71,150,70,212,69,11,69,42,68,26,67,148,65,184,63,225,61, +247,59,254,57,136,56,112,55,209,53,173,51,167,49,109,47,157,44,239,41,204,39,168,37,161,35,79,34,49,33,158,31, +20,30,255,28,3,28,235,26,98,25,217,22,24,20,203,18,187,18,81,18,127,17,64,17,100,17,245,16,91,15,152,12, +174,9,209,7,154,6,17,5,217,3,152,3,5,3,57,1,77,255,217,253,227,251,232,248,114,245,50,242,237,239,159,238, +238,236,69,234,4,232,232,230,220,229,7,228,115,225,85,222,171,219,142,218,15,218,144,216,157,214,144,213,67,213,64,213, +130,213,62,213,226,211,181,210,195,210,253,210,67,210,27,209,132,208,245,208,62,210,92,211,116,211,17,211,28,211,77,211, +225,210,221,209,192,208,225,207,95,207,253,206,110,206,222,205,158,205,145,205,66,205,74,204,157,202,198,200,97,199,75,198, +32,197,40,196,211,195,220,195,208,195,173,195,99,195,205,194,76,194,71,194,89,194,22,194,8,194,177,194,169,195,171,196, +245,197,36,199,141,199,205,199,214,200,43,202,250,202,183,203,225,204,18,206,13,207,222,207,42,208,40,208,228,208,103,210, +143,211,21,212,139,212,246,212,47,213,128,213,230,213,18,214,28,214,58,214,124,214,243,214,52,215,184,214,78,214,36,215, +127,216,217,216,94,216,42,216,157,216,167,217,250,218,249,219,185,220,15,222,6,224,225,225,75,227,53,228,233,228,123,230, +55,233,162,235,224,236,28,238,75,240,255,242,175,245,248,247,135,249,16,251,112,253,242,255,142,1,177,2,5,4,130,5, +94,7,138,9,13,11,214,11,66,13,162,15,187,17,236,18,111,19,113,19,154,19,197,20,92,22,30,23,87,23,72,24, +37,26,31,28,92,29,119,29,10,29,94,29,171,30,201,31,24,32,86,32,99,33,65,35,59,37,119,38,211,38,52,39, +66,40,126,41,71,42,215,42,182,43,253,44,107,46,138,47,39,48,204,48,231,49,215,50,10,51,41,51,233,51,219,52, +96,53,155,53,217,53,59,54,220,54,104,55,80,55,194,54,116,54,133,54,178,54,247,54,35,55,208,54,50,54,191,53, +83,53,183,52,51,52,212,51,96,51,5,51,173,50,156,49,211,47,69,46,254,44,82,43,168,41,140,40,29,39,200,36, +176,34,132,33,69,32,31,30,77,27,98,24,26,22,157,20,143,18,32,15,247,11,94,10,230,8,62,6,80,3,251,0, +215,254,180,252,175,250,118,248,21,246,15,244,58,242,53,240,51,238,65,236,38,234,56,232,210,230,162,229,110,228,47,227, +128,225,126,223,6,222,44,221,19,220,142,218,35,217,25,216,147,215,99,215,200,214,154,213,169,212,49,212,152,211,146,210, +23,209,82,207,71,206,125,206,143,206,76,205,152,203,129,202,178,201,165,200,42,199,56,197,140,195,220,194,77,194,216,192, +65,191,164,190,141,190,20,190,20,189,190,187,90,186,96,185,252,184,225,184,188,184,122,184,78,184,114,184,226,184,156,185, +167,186,155,187,27,188,155,188,108,189,250,189,58,190,28,191,217,192,234,194,61,197,151,199,54,201,86,202,3,204,37,206, +243,207,88,209,125,210,152,211,116,213,68,216,211,218,124,220,7,222,222,223,162,225,53,227,108,228,249,228,132,229,31,231, +149,233,209,235,89,237,124,238,234,239,237,241,168,243,68,244,180,244,85,246,156,248,55,250,62,251,162,252,190,254,81,1, +173,3,11,5,183,5,244,6,43,9,75,11,110,12,42,13,230,14,56,18,254,21,116,24,122,25,222,26,209,29,48,33, +80,35,76,36,144,37,5,40,133,43,47,47,238,49,164,51,165,53,13,57,243,60,113,63,6,64,55,64,231,65,87,69, +180,72,65,74,183,74,86,76,139,79,60,82,159,82,89,81,143,80,158,81,209,83,31,85,154,84,176,83,70,84,253,85, +155,86,251,84,110,82,22,81,113,81,248,81,22,81,45,79,248,77,42,78,137,78,131,77,27,75,245,72,106,72,192,72, +52,72,162,70,157,69,212,69,79,70,9,70,215,68,101,67,20,67,54,68,243,68,236,67,134,66,117,66,67,67,195,67, +108,67,250,65,58,64,220,63,182,64,155,64,237,62,89,61,243,60,1,61,18,60,70,57,156,53,98,51,22,51,157,50, +104,48,60,45,170,42,67,41,228,39,216,36,116,32,1,29,26,27,237,24,166,21,93,18,224,15,10,14,89,12,213,9, +9,6,27,2,75,255,83,253,102,251,55,249,226,246,1,245,10,244,15,243,221,240,255,237,251,235,64,235,5,235,83,234, +182,232,207,230,193,229,154,229,23,229,91,227,16,225,169,223,153,223,139,223,233,221,20,219,1,217,163,216,164,216,38,215, +68,212,6,210,142,209,124,209,12,208,153,205,208,203,103,203,98,203,55,202,189,199,163,197,73,197,227,197,210,197,165,196, +17,195,51,194,148,194,248,194,134,193,233,190,214,189,15,191,109,192,6,192,83,190,58,189,209,189,5,191,197,190,196,188, +21,187,163,187,235,189,146,191,30,191,200,189,222,189,148,191,220,192,94,192,18,191,238,190,197,192,88,195,170,196,111,196, +57,196,48,197,231,198,64,200,137,200,58,200,214,200,50,203,41,206,18,208,190,208,100,209,23,211,142,213,116,215,72,216, +45,217,55,219,10,222,152,224,43,226,234,226,242,227,2,230,56,232,137,233,104,234,178,235,121,237,122,239,35,241,194,241, +20,242,163,243,238,245,1,247,233,246,127,247,96,249,151,251,53,253,247,253,118,254,205,255,27,2,45,4,67,5,5,6, +121,7,255,9,25,13,158,15,206,16,91,17,174,18,52,21,6,24,56,26,18,28,188,30,149,34,96,38,175,40,166,41, +159,42,102,44,177,46,229,48,171,50,38,52,12,54,181,56,18,59,230,59,160,59,134,59,238,59,120,60,192,60,67,60, +83,59,111,59,190,60,46,61,221,59,123,58,6,58,146,57,187,56,7,56,116,55,17,55,118,55,52,56,16,56,47,55, +194,54,224,54,174,54,6,54,144,53,196,53,143,54,153,55,128,56,249,56,251,56,224,56,245,56,227,56,58,56,117,55, +119,55,39,56,128,56,3,56,69,55,249,54,234,54,68,54,160,52,141,50,2,49,73,48,164,47,72,46,95,44,95,42, +54,40,211,37,113,35,221,32,3,30,195,27,128,26,49,25,56,23,2,21,176,18,128,16,40,15,194,13,163,10,39,7, +245,5,31,6,14,5,27,3,24,2,95,2,100,3,219,3,15,2,210,254,16,253,23,253,164,252,59,251,57,250,61,250, +38,251,31,252,118,251,10,249,23,247,157,246,29,246,112,244,0,242,204,239,225,238,28,239,185,238,225,236,241,234,230,233, +4,233,116,231,8,229,57,226,67,224,192,223,146,223,170,222,90,221,76,220,220,219,242,219,94,219,68,217,60,215,30,215, +225,215,180,215,28,215,131,215,231,216,123,218,173,219,255,219,111,219,228,218,63,219,28,220,77,220,180,219,171,219,254,220, +188,222,201,223,18,224,229,223,156,223,165,223,175,223,214,222,67,221,9,220,198,219,121,220,138,221,208,221,61,221,120,221, +232,222,115,223,250,221,36,220,169,219,116,220,138,221,254,221,194,221,45,222,36,224,62,226,176,226,237,225,166,225,97,226, +109,227,27,228,101,228,243,228,80,230,247,231,229,232,38,233,160,233,138,234,50,235,90,235,143,235,31,236,188,236,40,237, +183,237,198,238,230,239,15,240,11,239,237,237,132,237,93,237,254,236,172,236,163,236,207,236,30,237,53,237,182,236,35,236, +9,236,231,235,103,235,58,235,160,235,6,236,94,236,249,236,153,237,46,238,16,239,17,240,221,240,204,241,250,242,228,243, +158,244,191,245,8,247,208,247,84,248,100,249,24,251,149,252,50,253,101,253,250,253,206,254,64,255,94,255,175,255,144,0, +13,2,94,3,121,3,201,2,198,2,130,3,191,3,8,3,20,2,208,1,162,2,202,3,64,4,124,4,85,5,230,5, +27,5,160,3,94,2,114,1,61,1,237,1,233,2,67,4,83,6,220,7,195,7,46,7,86,7,194,7,223,7,161,7, +40,7,142,7,195,9,72,12,75,13,133,13,23,14,115,14,44,14,173,13,41,13,75,13,224,14,189,16,40,17,197,16, +221,16,208,16,4,16,115,15,176,15,32,16,93,16,106,16,107,16,232,16,5,18,196,18,125,18,254,17,27,18,103,18, +58,18,189,17,127,17,194,17,105,18,251,18,244,18,148,18,193,18,117,19,139,19,218,18,145,18,232,18,224,18,102,18, +43,18,245,17,71,17,146,16,67,16,14,16,202,15,133,15,3,15,10,14,167,12,245,10,67,9,253,7,15,7,250,5, +122,4,180,2,41,1,60,0,115,255,40,254,184,252,148,251,53,250,107,248,242,246,212,245,81,244,137,242,24,241,165,239, +148,237,80,235,225,233,219,233,203,234,125,235,40,235,61,234,155,233,119,233,95,233,199,232,210,231,99,231,224,231,144,232, +243,232,205,233,237,235,185,238,116,240,11,240,102,238,51,237,167,236,224,235,0,235,235,234,182,235,171,236,244,236,10,236, +114,234,60,233,57,232,104,230,2,228,45,226,129,225,240,225,201,226,247,226,108,226,223,225,239,224,14,223,70,221,111,220, +240,219,223,219,252,220,117,222,50,223,181,223,67,224,50,224,254,223,114,224,181,224,82,224,187,224,152,226,203,228,201,230, +233,232,2,235,226,236,192,238,105,240,154,241,191,242,5,244,224,244,90,245,96,246,62,248,10,250,237,250,79,251,62,252, +251,253,166,255,100,0,80,0,48,0,115,0,167,0,71,0,188,255,221,255,196,0,10,2,109,3,144,4,77,5,51,6, +128,7,110,8,187,8,63,9,69,10,73,11,80,12,186,13,71,15,119,16,51,17,209,17,237,18,193,20,142,22,177,23, +173,24,4,26,70,27,66,28,165,29,176,31,192,33,120,35,49,37,22,39,199,40,29,42,102,43,194,44,36,46,170,47, +43,49,31,50,228,50,120,52,119,54,116,55,72,55,209,54,110,54,77,54,131,54,113,54,22,54,173,54,50,56,240,56, +148,56,89,56,57,56,90,55,243,53,148,52,113,51,254,50,47,51,10,51,114,50,107,50,2,51,25,51,11,50,37,48, +89,46,138,45,103,45,222,44,231,43,103,43,170,43,35,44,3,44,236,42,186,41,160,41,66,42,132,42,100,42,94,42, +114,42,181,42,238,42,60,42,204,40,2,40,244,39,111,39,82,38,106,37,237,36,164,36,33,36,207,34,245,32,130,31, +110,30,12,29,106,27,234,25,196,24,42,24,143,23,230,21,141,19,217,17,185,16,75,15,147,13,243,11,154,10,193,9, +224,8,245,6,128,4,171,2,240,0,93,254,173,251,209,249,136,248,136,247,227,246,80,246,166,245,250,244,241,243,57,242, +63,240,143,238,136,237,72,237,10,237,7,236,13,235,29,235,81,235,119,234,22,233,253,231,231,230,139,229,8,228,114,226, +52,225,228,224,8,225,151,224,151,223,167,222,154,221,42,220,2,219,207,218,65,219,196,219,62,220,138,220,118,220,66,220, +49,220,227,219,13,219,21,218,102,217,7,217,238,216,13,217,66,217,141,217,149,217,167,216,9,215,205,213,255,212,216,211, +162,210,65,210,146,210,218,210,192,210,90,210,47,210,162,210,2,211,141,210,216,209,202,209,84,210,26,211,165,211,108,211, +21,211,229,211,61,213,113,213,226,212,64,213,197,214,114,216,156,217,91,218,121,219,120,221,91,223,20,224,122,224,210,225, +219,227,188,229,56,231,141,232,75,234,164,236,158,238,110,239,224,239,248,240,105,242,102,243,163,243,119,243,200,243,250,244, +35,246,83,246,240,245,251,245,205,246,189,247,224,247,129,247,216,247,210,248,98,249,227,249,31,251,80,252,24,253,155,254, +155,0,143,1,251,1,116,3,153,5,125,7,104,9,89,11,13,13,57,15,240,17,213,19,193,20,65,22,240,24,219,27, +255,29,12,31,224,31,2,34,64,37,136,39,58,40,33,41,67,43,87,45,249,45,159,45,157,45,74,46,212,46,160,46, +240,45,95,45,110,45,28,46,137,46,3,46,14,45,65,44,73,43,4,42,242,40,61,40,221,39,13,40,133,40,190,40, +247,40,82,41,20,41,88,40,58,40,164,40,141,40,47,40,132,40,145,41,197,42,167,43,232,43,242,43,141,44,51,45, +187,44,162,43,83,43,214,43,66,44,73,44,227,43,18,43,148,42,225,42,173,42,196,40,107,38,76,37,163,36,245,34, +164,32,176,30,42,29,237,27,189,26,248,24,213,22,69,21,238,19,224,17,170,15,210,13,132,11,247,8,152,7,16,7, +33,6,93,5,73,5,193,4,171,3,65,3,4,3,146,1,144,255,95,254,254,253,241,253,247,253,183,253,74,253,27,253, +194,252,154,251,247,249,179,248,49,248,14,248,98,247,244,245,158,244,191,243,206,242,195,241,177,240,19,239,96,237,221,236, +211,236,170,235,14,234,76,233,169,232,84,231,195,229,17,228,106,226,5,226,212,226,251,226,24,226,150,225,193,225,201,225, +137,225,39,225,167,224,147,224,75,225,70,226,244,226,115,227,9,228,246,228,49,230,248,230,141,230,111,229,251,228,236,229, +150,231,156,232,127,232,46,232,162,232,121,233,119,233,31,232,114,230,191,229,220,229,163,229,248,228,196,228,73,229,39,230, +249,230,16,231,52,230,142,229,223,229,47,230,223,229,154,229,147,229,169,229,144,230,74,232,148,233,80,234,157,235,51,237, +221,237,158,237,22,237,124,236,95,236,58,237,80,238,0,239,250,239,182,241,86,243,19,244,15,244,154,243,18,243,39,243, +234,243,74,244,179,243,42,243,167,243,136,244,192,244,63,244,132,243,4,243,2,243,243,242,238,241,102,240,201,239,52,240, +107,240,200,239,176,238,229,237,250,237,147,238,179,238,94,238,102,238,188,238,213,238,248,238,103,239,181,239,210,239,42,240, +191,240,97,241,15,242,149,242,175,242,134,242,115,242,142,242,135,242,243,241,84,241,202,241,28,243,228,243,251,243,44,244, +59,244,191,243,36,243,89,242,25,241,119,240,66,241,137,242,152,243,194,244,187,245,14,246,26,246,183,245,91,244,244,242, +175,242,20,243,104,243,185,243,15,244,190,244,87,246,222,247,226,247,6,247,146,246,89,246,56,246,163,246,40,247,120,247, +127,248,57,250,33,251,200,250,15,250,139,249,179,249,149,250,227,250,247,249,114,249,126,250,219,251,27,252,48,251,188,249, +226,248,98,249,5,250,78,249,73,248,239,248,212,250,17,252,3,252,110,251,48,251,216,251,81,253,158,254,250,254,238,254, +116,255,138,0,138,1,50,2,174,2,106,3,213,4,115,6,5,7,142,6,165,6,240,7,95,9,2,10,200,9,45,9, +65,9,108,10,75,11,240,10,181,10,165,11,142,12,92,12,148,11,199,10,23,10,196,9,114,9,54,8,60,6,177,4, +22,4,209,3,27,3,214,1,165,0,240,255,22,255,96,253,50,251,101,249,66,248,140,247,201,246,179,245,144,244,143,243, +25,242,184,239,61,237,240,235,250,235,81,236,75,236,150,236,209,237,245,238,136,238,180,236,249,234,127,234,45,235,191,235, +134,235,60,236,222,239,220,244,184,247,189,247,240,246,138,246,18,246,181,244,152,242,119,241,53,243,20,247,25,250,133,250, +74,249,44,248,117,247,228,245,248,242,83,240,152,239,91,240,119,241,100,242,189,242,146,242,92,242,101,241,197,238,198,235, +15,234,87,233,137,233,79,235,72,237,166,237,136,237,35,238,9,238,158,236,80,235,113,234,227,233,10,235,221,237,240,239, +185,240,32,242,130,244,140,246,156,247,196,247,187,247,240,248,71,251,158,252,120,252,231,252,237,254,57,1,153,2,50,3, +222,3,87,5,91,7,175,8,183,8,72,8,71,8,146,8,199,8,38,9,251,9,228,10,153,11,164,12,102,14,40,16, +7,17,20,17,249,16,86,17,26,18,77,18,151,17,149,17,141,19,244,21,171,22,42,22,42,22,3,23,255,23,153,24, +166,24,150,24,96,25,26,27,151,28,49,29,180,29,221,30,85,32,182,33,8,35,4,36,121,36,69,37,11,39,216,40, +180,41,46,42,12,43,83,44,214,45,233,46,183,46,55,46,50,47,7,49,140,49,160,48,217,47,72,48,28,50,46,52, +119,52,64,51,42,51,132,52,180,52,214,50,177,48,201,47,104,48,146,49,48,49,4,47,228,45,20,47,203,47,228,45, +237,42,12,41,100,40,13,40,41,39,130,37,38,36,50,36,248,36,213,36,152,35,141,34,99,34,124,34,78,34,10,34, +212,33,153,33,115,33,64,33,172,32,255,31,131,31,183,30,188,29,168,29,48,30,234,29,14,29,153,28,253,27,184,26, +155,25,207,24,217,23,102,23,219,23,249,23,50,23,101,22,169,21,114,20,244,18,89,17,130,15,1,14,39,13,57,12, +241,10,154,9,199,7,70,5,231,2,210,0,99,254,213,251,197,249,11,248,149,246,137,245,153,244,182,243,31,243,34,242, +3,240,143,237,197,235,162,234,40,234,50,234,184,233,128,232,163,231,49,231,40,230,179,228,137,227,87,226,251,224,2,224, +23,223,186,221,227,220,73,221,173,221,253,220,246,219,69,219,161,218,73,218,254,218,90,220,71,221,168,221,255,221,77,222, +114,222,155,222,153,222,9,222,82,221,69,221,232,221,88,222,242,221,52,221,36,221,137,221,240,220,29,219,152,217,10,217, +164,216,52,216,22,216,250,215,224,215,95,216,249,216,196,216,46,216,194,215,36,215,185,214,48,215,155,215,64,215,70,215, +29,216,120,216,23,216,231,215,250,215,43,216,237,216,229,217,81,218,197,218,36,220,16,222,190,223,244,224,250,225,120,227, +167,229,166,231,227,232,35,234,57,236,252,238,138,241,238,242,85,243,101,244,193,246,197,248,84,249,110,249,10,250,24,251, +118,252,163,253,209,253,115,253,223,253,30,255,28,0,113,0,172,0,99,1,156,2,217,3,188,4,46,5,29,5,2,5, +231,5,175,7,255,8,177,9,235,10,210,12,146,14,201,15,107,16,200,16,196,17,95,19,118,20,50,21,29,23,63,26, +46,29,102,31,72,33,4,35,165,36,243,37,147,38,41,39,216,40,101,43,156,45,15,47,36,48,67,49,126,50,80,51, +22,51,46,50,157,49,178,49,251,49,33,50,76,50,209,50,103,51,50,51,40,50,48,49,109,48,105,47,183,46,248,46, +118,47,156,47,193,47,175,47,248,46,80,46,36,46,155,45,150,44,3,44,235,43,226,43,95,44,58,45,34,45,2,44, +37,43,193,42,48,42,173,41,123,41,28,41,205,40,81,41,199,41,178,40,188,38,161,37,89,37,205,36,204,35,155,34, +112,33,184,32,72,32,31,31,40,29,66,27,121,25,142,23,45,22,105,21,93,20,83,19,250,18,56,18,58,16,64,14, +208,12,237,10,10,9,107,8,111,8,17,8,155,7,12,7,15,6,33,5,7,4,191,1,67,255,75,254,223,253,132,252, +81,251,94,251,138,251,165,250,186,248,55,246,242,243,150,242,109,241,175,239,19,238,124,237,145,237,86,237,251,235,172,233, +202,231,251,230,17,230,44,228,43,226,18,225,255,224,136,225,198,225,9,225,202,223,185,222,225,221,119,221,159,221,132,221, +232,220,36,221,188,222,38,224,86,224,29,224,126,224,75,225,168,225,78,225,8,225,140,225,91,226,208,226,60,227,230,227, +89,228,78,228,251,227,111,227,175,226,13,226,193,225,141,225,24,225,146,224,139,224,207,224,112,224,126,223,246,222,204,222, +95,222,42,222,119,222,86,222,194,221,236,221,158,222,209,222,233,222,67,223,41,223,27,223,105,224,52,226,217,226,255,226, +249,227,115,229,168,230,103,231,143,231,178,231,4,233,57,235,148,236,184,236,27,237,161,238,153,240,228,241,57,242,89,242, +49,243,151,244,96,245,2,245,102,244,165,244,112,245,176,245,75,245,66,245,18,246,249,246,235,246,222,245,237,244,243,244, +72,245,200,244,159,243,232,242,25,243,198,243,68,244,67,244,44,244,123,244,200,244,143,244,35,244,190,243,77,243,135,243, +245,244,74,246,45,246,107,245,79,245,193,245,40,246,74,246,15,246,196,245,9,246,237,246,215,247,71,248,88,248,168,248, +56,249,239,248,141,247,174,246,64,247,90,248,134,249,255,250,252,251,249,251,245,251,73,252,42,252,221,251,9,252,37,252, +20,252,159,252,111,253,208,253,127,254,183,255,35,0,95,255,136,254,41,254,74,254,0,255,191,255,43,0,241,0,231,1, +189,1,155,0,212,255,89,255,150,254,41,254,112,254,190,254,241,254,111,255,248,255,40,0,217,255,168,254,176,252,42,251, +207,250,248,250,53,251,232,251,30,253,95,254,105,255,250,255,167,255,183,254,30,254,75,254,6,255,54,0,187,1,25,3, +65,4,167,5,9,7,157,7,150,7,194,7,45,8,165,8,80,9,240,9,90,10,77,11,225,12,175,13,51,13,172,12, +187,12,185,12,101,12,255,11,178,11,224,11,109,12,72,12,55,11,112,10,67,10,168,9,86,8,251,6,234,5,49,5, +197,4,4,4,117,2,196,0,215,255,146,255,46,255,26,254,158,252,183,251,167,251,55,251,119,249,37,247,98,245,34,244, +193,242,41,241,221,239,119,239,48,240,86,241,148,241,103,240,203,238,147,237,92,236,23,235,194,234,131,235,118,236,150,237, +42,239,90,240,224,240,187,241,174,242,96,242,75,241,228,240,19,241,135,241,207,242,116,244,53,245,63,245,72,245,213,244, +127,243,237,241,232,240,196,240,26,241,223,240,254,239,185,239,109,240,252,240,122,240,210,238,198,236,199,235,197,235,247,234, +159,233,245,233,87,235,45,235,220,233,78,233,54,233,9,233,86,233,110,233,104,232,155,231,19,232,194,232,74,233,91,234, +126,235,71,236,154,237,104,239,141,240,67,241,94,242,103,243,214,243,22,244,148,244,165,245,141,247,169,249,37,251,59,252, +88,253,104,254,148,255,209,0,97,1,110,1,44,2,144,3,115,4,221,4,156,5,148,6,109,7,104,8,129,9,101,10, +80,11,137,12,132,13,182,13,136,13,177,13,89,14,68,15,35,16,185,16,39,17,228,17,216,18,82,19,81,19,198,19, +231,20,193,21,238,21,62,22,90,23,245,24,118,26,155,27,141,28,142,29,148,30,88,31,205,31,72,32,70,33,231,34, +141,36,159,37,140,38,218,39,236,40,37,41,30,41,109,41,217,41,88,42,35,43,245,43,191,44,223,45,18,47,177,47, +213,47,198,47,107,47,18,47,13,47,221,46,89,46,75,46,195,46,198,46,33,46,102,45,153,44,157,43,204,42,36,42, +56,41,62,40,151,39,227,38,194,37,153,36,200,35,12,35,60,34,140,33,248,32,113,32,76,32,137,32,128,32,8,32, +139,31,183,30,4,29,94,27,237,26,39,27,29,27,11,27,24,27,166,26,139,25,32,24,155,22,107,21,202,20,8,20, +246,18,148,18,20,19,105,19,57,19,208,18,234,17,121,16,250,14,126,13,38,12,140,11,127,11,57,11,217,10,118,10, +60,9,53,7,71,5,74,3,2,1,108,255,145,254,19,253,7,251,202,249,74,249,178,248,10,248,51,247,176,245,221,243, +40,242,90,240,204,238,54,238,32,238,154,237,158,236,97,235,242,233,174,232,173,231,115,230,248,228,129,227,190,225,156,223, +225,221,243,220,131,220,148,220,251,220,182,220,94,219,4,218,95,217,219,216,57,216,45,216,0,217,27,218,36,219,54,220, +52,221,217,221,251,221,134,221,203,220,120,220,123,220,56,220,38,220,48,221,160,222,40,223,245,222,163,222,239,221,238,220, +38,220,89,219,125,218,134,218,122,219,54,220,136,220,198,220,147,220,33,220,44,220,6,220,209,218,172,217,154,217,175,217, +90,217,91,217,178,217,186,217,168,217,207,217,213,217,144,217,80,217,129,217,140,218,30,220,75,221,16,222,54,223,201,224, +105,226,52,228,11,230,160,231,108,233,147,235,66,237,106,238,230,239,180,241,120,243,128,245,92,247,16,248,114,248,18,250, +48,252,20,253,0,253,61,253,16,254,20,255,23,0,10,1,4,2,65,3,180,4,209,5,18,6,219,5,89,6,224,7, +60,9,161,9,209,9,154,10,223,11,91,13,198,14,191,15,140,16,191,17,232,18,96,19,165,19,108,20,164,21,74,23, +156,25,39,28,50,30,235,31,226,33,250,35,182,37,11,39,71,40,121,41,146,42,208,43,103,45,10,47,120,48,227,49, +38,51,180,51,167,51,134,51,67,51,206,50,188,50,34,51,74,51,41,51,84,51,151,51,114,51,74,51,133,51,157,51, +43,51,144,50,39,50,237,49,225,49,0,50,25,50,29,50,48,50,80,50,63,50,223,49,107,49,35,49,234,48,127,48, +6,48,208,47,187,47,130,47,100,47,160,47,190,47,61,47,96,46,155,45,220,44,236,43,241,42,73,42,51,42,72,42, +156,41,22,40,214,38,58,38,51,37,75,35,64,33,95,31,150,29,92,28,133,27,45,26,197,24,95,24,31,24,200,22, +31,21,4,20,12,19,90,18,96,18,6,18,144,16,85,15,20,15,201,14,30,14,155,13,8,13,70,12,199,11,34,11, +162,9,223,7,148,6,119,5,76,4,14,3,114,1,208,255,242,254,100,254,33,253,74,251,98,249,94,247,108,245,208,243, +37,242,64,240,186,238,201,237,225,236,131,235,152,233,181,231,165,230,10,230,208,228,47,227,53,226,171,225,202,224,209,223, +44,223,136,222,212,221,170,221,45,222,153,222,72,222,177,221,200,221,100,222,132,222,26,222,216,221,205,221,236,221,123,222, +221,222,91,222,226,221,21,222,99,221,250,218,138,216,73,215,153,214,25,214,172,213,170,212,101,211,10,211,29,211,251,209, +179,207,160,205,46,204,214,202,76,201,6,200,219,199,217,200,210,201,221,201,63,201,90,200,72,199,109,198,6,198,202,197, +198,197,77,198,39,199,9,200,64,201,206,202,249,203,93,204,104,204,150,204,1,205,155,205,143,206,29,208,4,210,135,211, +117,212,91,213,124,214,100,215,192,215,213,215,19,216,161,216,73,217,220,217,113,218,3,219,87,219,125,219,169,219,154,219, +55,219,23,219,124,219,200,219,208,219,80,220,146,221,228,222,193,223,90,224,24,225,32,226,84,227,132,228,174,229,246,230, +103,232,224,233,44,235,71,236,145,237,91,239,106,241,75,243,228,244,75,246,169,247,99,249,159,251,203,253,71,255,70,0, +98,1,210,2,119,4,59,6,27,8,49,10,156,12,20,15,245,16,18,18,39,19,200,20,93,22,5,23,50,23,38,24, +39,26,93,28,57,30,254,31,252,33,231,35,2,37,5,37,171,36,243,36,254,37,79,39,179,40,44,42,180,43,108,45, +61,47,91,48,98,48,74,48,237,48,168,49,216,49,32,50,249,50,196,51,68,52,5,53,215,53,239,53,107,53,247,52, +176,52,137,52,162,52,189,52,188,52,53,53,50,54,160,54,14,54,84,53,4,53,222,52,168,52,72,52,181,51,89,51, +141,51,236,51,239,51,148,51,6,51,125,50,34,50,145,49,94,48,1,47,248,45,238,44,185,43,162,42,88,41,146,39, +12,38,56,37,27,36,246,33,82,31,215,28,146,26,85,24,180,21,105,18,45,15,236,12,61,11,0,9,24,6,85,3, +8,1,177,254,215,251,123,248,230,244,144,241,230,238,163,236,32,234,154,231,237,229,215,228,54,227,224,224,152,222,160,220, +178,218,193,216,246,214,154,213,202,212,254,211,162,210,18,209,221,207,187,206,36,205,68,203,210,201,110,201,206,201,168,201, +118,200,62,199,142,198,128,197,168,195,205,193,144,192,13,192,46,192,78,192,244,191,153,191,99,191,137,190,0,189,172,187, +190,186,224,185,43,185,161,184,52,184,79,184,201,184,151,184,173,183,22,183,245,182,155,182,226,181,36,181,4,181,57,182, +52,184,94,185,127,185,183,185,87,186,4,187,172,187,26,188,124,188,247,189,145,192,135,194,117,195,238,196,58,199,21,201, +64,202,48,203,227,203,198,204,130,206,138,208,49,210,42,212,229,214,115,217,77,219,56,221,175,223,7,226,147,227,161,228, +229,229,113,231,9,233,16,235,225,237,213,240,106,243,31,246,226,248,161,250,122,251,181,252,125,254,32,0,209,1,226,3, +207,5,133,7,145,9,195,11,168,13,142,15,117,17,186,18,165,19,37,21,252,22,104,24,207,25,195,27,181,29,38,31, +145,32,62,34,202,35,66,37,33,39,62,41,0,43,91,44,196,45,132,47,137,49,141,51,108,53,106,55,200,57,25,60, +215,61,114,63,168,65,35,68,6,70,104,71,0,73,4,75,57,77,128,79,181,81,150,83,23,85,83,86,57,87,133,87, +28,87,160,86,28,87,134,88,148,89,228,89,141,90,155,91,138,91,249,89,55,88,235,86,167,85,106,84,101,83,115,82, +211,81,208,81,196,81,13,81,254,79,212,78,80,77,185,75,93,74,226,72,128,71,43,71,181,71,230,71,122,71,2,71, +140,70,247,69,130,69,64,69,6,69,198,68,117,68,51,68,91,68,177,68,109,68,134,67,193,66,100,66,8,66,87,65, +78,64,45,63,51,62,39,61,160,59,157,57,84,55,32,53,153,51,119,50,99,48,60,45,138,42,168,40,74,38,33,35, +24,32,123,29,49,27,77,25,89,23,211,20,74,18,58,16,27,14,153,11,209,8,175,5,169,2,175,0,109,255,200,253, +228,251,111,250,25,249,144,247,17,246,88,244,8,242,178,239,198,237,239,235,72,234,32,233,219,231,9,230,117,228,120,227, +12,226,165,223,28,221,22,219,73,217,117,215,188,213,9,212,41,210,77,208,191,206,74,205,148,203,186,201,244,199,47,198, +152,196,163,195,44,195,117,194,68,193,20,192,66,191,197,190,81,190,141,189,145,188,0,188,42,188,129,188,86,188,209,187, +175,187,30,188,77,188,150,187,142,186,17,186,0,186,230,185,189,185,133,185,61,185,56,185,97,185,20,185,84,184,203,183, +145,183,104,183,125,183,160,183,85,183,13,183,113,183,246,183,231,183,174,183,208,183,79,184,70,185,171,186,240,187,250,188, +59,190,203,191,122,193,68,195,230,196,53,198,196,199,252,201,95,204,156,206,242,208,84,211,159,213,31,216,205,218,56,221, +104,223,141,225,109,227,32,229,19,231,7,233,145,234,20,236,215,237,100,239,157,240,223,241,36,243,76,244,160,245,8,247, +245,247,98,248,204,248,97,249,10,250,213,250,238,251,100,253,248,254,53,0,35,1,106,2,97,4,148,6,97,8,136,9, +133,10,72,12,231,14,116,17,205,19,210,22,83,26,32,29,59,31,131,33,7,36,168,38,169,41,152,44,181,46,155,48, +55,51,13,54,78,56,30,58,182,59,6,61,69,62,119,63,28,64,73,64,201,64,198,65,164,66,14,67,38,67,16,67, +211,66,79,66,101,65,75,64,83,63,131,62,236,61,213,61,20,62,4,62,90,61,105,60,161,59,53,59,236,58,66,58, +37,57,102,56,196,56,215,57,160,58,214,58,239,58,46,59,121,59,173,59,158,59,79,59,86,59,28,60,227,60,233,60, +170,60,195,60,202,60,101,60,210,59,2,59,250,57,92,57,23,57,48,56,189,54,180,53,180,52,220,50,198,48,62,47, +180,45,196,43,22,42,0,41,43,40,68,39,211,37,136,35,48,33,175,31,125,30,168,28,130,26,21,25,150,24,31,24, +178,22,130,20,179,18,172,17,151,16,166,14,252,11,131,9,68,8,23,8,116,7,155,5,169,3,115,2,52,1,26,255, +73,252,136,249,217,247,67,247,28,246,112,243,223,240,210,239,19,239,58,237,189,234,107,232,103,230,204,228,118,227,237,225, +100,224,113,223,218,222,8,222,252,220,204,219,88,218,221,216,1,216,249,215,29,216,147,215,129,214,252,213,83,214,139,214, +5,214,31,213,53,212,163,211,195,211,183,211,62,210,71,208,208,207,119,208,40,208,102,206,93,204,6,203,157,202,115,202, +54,201,212,198,222,196,24,196,102,195,196,193,158,191,252,189,117,189,174,189,121,189,20,188,25,186,179,184,88,184,125,184, +40,184,13,183,22,182,81,182,148,183,222,184,146,185,214,185,54,186,16,187,22,188,172,188,241,188,200,189,192,191,84,194, +88,196,36,197,107,197,140,198,215,200,16,203,23,204,91,204,17,205,139,206,14,208,9,209,176,209,104,210,77,211,35,212, +120,212,48,212,243,211,75,212,218,212,74,213,219,213,95,214,117,214,199,214,218,215,156,216,85,216,51,216,36,217,128,218, +189,219,230,220,182,221,103,222,254,223,100,226,115,228,23,230,245,231,211,233,93,235,3,237,239,238,237,240,58,243,217,245, +24,248,222,249,250,251,209,254,1,2,237,4,15,7,116,8,216,9,147,11,58,13,193,14,178,16,55,19,219,21,27,24, +203,25,67,27,243,28,152,30,167,31,67,32,226,32,156,33,141,34,7,36,12,38,77,40,72,42,104,43,205,43,99,44, +77,45,201,45,247,45,198,46,69,48,239,49,176,51,78,53,90,54,60,55,96,56,36,57,26,57,247,56,85,57,53,58, +134,59,205,60,124,61,37,62,130,63,179,64,158,64,220,63,138,63,185,63,1,64,52,64,77,64,150,64,92,65,68,66, +191,66,184,66,44,66,42,65,64,64,206,63,74,63,90,62,150,61,125,61,188,61,201,61,85,61,91,60,28,59,194,57, +46,56,125,54,11,53,188,51,38,50,96,48,207,46,75,45,96,43,26,41,205,38,96,36,123,33,83,30,104,27,177,24, +195,21,155,18,121,15,80,12,12,9,208,5,172,2,157,255,196,252,21,250,81,247,124,244,171,241,156,238,86,235,111,232, +47,230,67,228,117,226,220,224,154,223,197,222,253,221,112,220,16,218,213,215,81,214,57,213,66,212,87,211,103,210,171,209, +46,209,67,208,169,206,36,205,29,204,28,203,232,201,166,200,76,199,253,197,233,196,166,195,226,193,30,192,181,190,99,189, +22,188,186,186,240,184,13,183,225,181,1,181,108,179,110,177,216,175,155,174,152,173,18,173,182,172,223,171,179,170,185,169, +21,169,176,168,71,168,174,167,96,167,246,167,30,169,39,170,242,170,167,171,87,172,17,173,175,173,16,174,171,174,3,176, +235,177,32,180,167,182,21,185,247,186,161,188,88,190,173,191,135,192,153,193,66,195,75,197,117,199,186,201,71,204,44,207, +213,209,190,211,103,213,92,215,64,217,218,218,137,220,51,222,161,223,124,225,20,228,161,230,229,232,108,235,255,237,12,240, +236,241,220,243,100,245,169,246,85,248,49,250,238,251,60,254,89,1,58,4,67,6,250,7,185,9,94,11,18,13,248,14, +186,16,66,18,17,20,93,22,179,24,197,26,196,28,208,30,192,32,129,34,40,36,197,37,137,39,179,41,51,44,237,46, +253,49,31,53,145,55,73,57,41,59,146,61,16,64,107,66,206,68,74,71,8,74,15,77,196,79,204,81,191,83,2,86, +32,88,187,89,244,90,248,91,18,93,133,94,232,95,184,96,47,97,153,97,206,97,233,97,41,98,92,98,89,98,64,98, +184,97,92,96,170,94,72,93,53,92,79,91,96,90,231,88,22,87,229,85,81,85,93,84,254,82,214,81,167,80,236,78, +6,77,161,75,227,74,145,74,93,74,54,74,84,74,159,74,161,74,95,74,47,74,255,73,187,73,158,73,144,73,77,73, +28,73,69,73,136,73,173,73,128,73,146,72,38,71,37,70,119,69,39,68,54,66,92,64,173,62,250,60,85,59,132,57, +71,55,216,52,60,50,42,47,239,43,247,40,252,37,218,34,246,31,74,29,129,26,197,23,57,21,145,18,182,15,173,12, +40,9,73,5,240,1,115,255,91,253,83,251,81,249,76,247,102,245,167,243,176,241,130,239,172,237,49,236,127,234,121,232, +106,230,145,228,71,227,180,226,59,226,35,225,126,223,183,221,252,219,79,218,154,216,204,214,29,213,187,211,113,210,34,209, +232,207,140,206,207,204,17,203,176,201,81,200,160,198,250,196,192,195,218,194,28,194,106,193,133,192,93,191,81,190,146,189, +174,188,100,187,72,186,213,185,162,185,53,185,176,184,36,184,144,183,108,183,195,183,145,183,101,182,64,181,184,180,70,180, +197,179,136,179,106,179,93,179,177,179,6,180,193,179,91,179,108,179,162,179,202,179,12,180,5,180,164,179,218,179,252,180, +40,182,19,183,43,184,94,185,162,186,97,188,65,190,132,191,167,192,130,194,161,196,85,198,251,199,25,202,131,204,231,206, +62,209,142,211,203,213,220,215,223,217,32,220,117,222,118,224,87,226,117,228,104,230,206,231,16,233,107,234,169,235,4,237, +201,238,130,240,204,241,215,242,166,243,69,244,73,245,203,246,9,248,194,248,102,249,15,250,155,250,53,251,252,251,29,253, +228,254,7,1,226,2,151,4,142,6,140,8,134,10,210,12,253,14,133,16,58,18,218,20,212,23,190,26,0,30,138,33, +221,36,248,39,214,42,92,45,254,47,237,50,102,53,40,55,245,56,1,59,237,60,1,63,123,65,197,67,148,69,44,71, +65,72,124,72,142,72,14,73,113,73,68,73,3,73,24,73,80,73,104,73,76,73,239,72,108,72,243,71,102,71,132,70, +118,69,188,68,117,68,61,68,227,67,143,67,41,67,141,66,12,66,200,65,46,65,40,64,163,63,23,64,226,64,147,65, +82,66,250,66,36,67,224,66,109,66,206,65,49,65,247,64,35,65,97,65,136,65,175,65,231,65,37,66,50,66,155,65, +9,64,246,61,119,60,208,59,15,59,196,57,174,56,10,56,252,54,65,53,142,51,42,50,254,48,70,48,200,47,153,46, +141,44,104,42,139,40,213,38,78,37,208,35,253,33,255,31,88,30,28,29,13,28,237,26,94,25,47,23,148,20,188,17, +186,14,219,11,121,9,189,7,145,6,97,5,112,3,253,0,231,254,13,253,159,250,190,247,44,245,17,243,54,241,137,239, +225,237,42,236,142,234,216,232,159,230,69,228,136,226,97,225,96,224,115,223,155,222,157,221,94,220,11,219,225,217,252,216, +46,216,64,215,88,214,194,213,143,213,161,213,152,213,233,212,165,211,132,210,194,209,21,209,136,208,26,208,53,207,185,205, +56,204,175,202,212,200,59,199,88,198,94,197,190,195,31,194,251,192,236,191,143,190,196,188,138,186,71,184,84,182,110,180, +152,178,175,177,255,177,129,178,40,178,248,176,161,175,190,174,110,174,83,174,36,174,7,174,33,174,98,174,232,174,241,175, +61,177,59,178,210,178,114,179,83,180,74,181,116,182,71,184,164,186,144,188,98,189,169,189,111,190,252,191,184,193,45,195, +153,196,76,198,249,199,76,201,103,202,68,203,172,203,6,204,193,204,77,205,75,205,162,205,227,206,69,208,77,209,80,210, +29,211,113,211,235,211,207,212,133,213,38,214,64,215,75,216,205,216,200,217,223,219,5,222,111,223,182,224,118,226,141,228, +152,230,68,232,146,233,21,235,54,237,174,239,15,242,55,244,75,246,152,248,41,251,126,253,109,255,131,1,252,3,89,6, +93,8,107,10,197,12,76,15,191,17,248,19,33,22,113,24,171,26,121,28,9,30,179,31,144,33,158,35,152,37,26,39, +130,40,124,42,158,44,10,46,10,47,98,48,246,49,90,51,127,52,71,53,207,53,172,54,3,56,69,57,75,58,96,59, +109,60,57,61,215,61,70,62,110,62,107,62,85,62,65,62,118,62,240,62,76,63,179,63,162,64,203,65,112,66,105,66, +197,65,153,64,181,63,243,63,209,64,74,65,111,65,250,65,19,67,39,68,104,68,162,67,172,66,79,66,21,66,62,65, +19,64,67,63,248,62,35,63,121,63,45,63,218,61,64,60,246,58,108,57,28,55,139,52,83,50,92,48,139,46,255,44, +121,43,148,41,93,39,225,36,206,33,63,30,197,26,92,23,179,19,54,16,77,13,93,10,235,6,164,3,53,1,90,255, +102,253,191,250,84,247,8,244,161,241,117,239,182,236,6,234,112,232,217,231,126,231,211,230,221,229,62,229,58,229,217,228, +29,227,124,224,11,222,101,220,171,219,74,219,92,218,41,217,193,216,194,216,209,215,214,213,170,211,176,209,229,207,233,205, +37,203,62,200,199,198,157,198,24,198,228,196,198,195,126,194,160,192,206,190,50,189,233,186,8,184,252,181,121,181,160,181, +93,181,153,180,1,180,251,179,49,180,242,179,177,178,180,176,121,175,30,176,158,177,105,178,231,178,97,180,227,182,158,185, +130,187,133,187,97,186,103,186,227,187,229,188,62,189,150,190,21,193,220,195,205,198,60,201,12,202,254,201,119,202,236,202, +166,202,118,202,236,202,252,203,83,206,211,209,178,212,66,214,174,215,85,217,159,218,165,219,117,220,174,220,250,220,116,222, +200,224,22,227,124,229,77,232,103,235,133,238,244,240,0,242,95,242,112,243,66,245,13,247,177,248,122,250,164,252,138,255, +20,3,80,6,154,8,100,10,62,12,231,13,236,14,171,15,8,17,54,19,127,21,130,23,127,25,103,27,4,29,178,30, +119,32,140,33,238,33,187,34,98,36,101,38,132,40,174,42,182,44,227,46,70,49,10,51,253,51,101,53,230,55,153,58, +216,60,234,62,2,65,59,67,189,69,32,72,228,73,113,75,75,77,23,79,100,80,94,81,56,82,237,82,185,83,219,84, +13,86,192,86,240,86,75,87,47,88,251,88,239,88,53,88,77,87,80,86,87,85,127,84,114,83,39,82,105,81,131,81, +135,81,186,80,114,79,52,78,253,76,129,75,145,73,116,71,197,69,220,68,174,68,254,68,72,69,59,69,86,69,235,69, +52,70,173,69,252,68,134,68,2,68,203,67,82,68,213,68,176,68,155,68,20,69,68,69,111,68,241,66,124,65,96,64, +85,63,179,61,72,59,165,56,90,54,152,52,70,51,192,49,98,47,136,44,215,41,9,39,176,35,81,32,134,29,27,27, +159,24,239,21,34,19,117,16,246,13,92,11,158,8,246,5,54,3,15,0,227,252,80,250,98,248,201,246,52,245,127,243, +236,241,163,240,41,239,84,237,201,235,162,234,23,233,33,231,142,229,135,228,185,227,26,227,78,226,191,224,197,222,26,221, +143,219,182,217,174,215,126,213,17,211,205,208,226,206,217,204,213,202,136,201,142,200,228,198,185,196,229,194,96,193,213,191, +115,190,43,189,176,187,111,186,7,186,14,186,227,185,198,185,188,185,230,184,59,183,12,182,222,181,206,181,139,181,169,181, +14,182,32,182,248,181,214,181,137,181,51,181,40,181,250,180,64,180,163,179,203,179,121,180,92,181,72,182,160,182,61,182, +4,182,95,182,134,182,23,182,188,181,235,181,120,182,31,183,195,183,127,184,178,185,100,187,243,188,228,189,138,190,149,191, +64,193,33,195,208,196,152,198,237,200,137,203,249,205,121,208,74,211,26,214,181,216,79,219,195,221,189,223,114,225,75,227, +89,229,128,231,167,233,163,235,112,237,40,239,179,240,252,241,46,243,117,244,208,245,24,247,25,248,253,248,80,250,18,252, +144,253,166,254,216,255,29,1,53,2,137,3,57,5,182,6,19,8,234,9,247,11,205,13,221,15,80,18,168,20,13,23, +184,25,223,27,87,29,91,31,68,34,33,37,225,39,21,43,92,46,90,49,133,52,164,55,235,57,149,59,74,61,230,62, +95,64,3,66,134,67,188,68,94,70,114,72,226,73,124,74,247,74,56,75,236,74,144,74,49,74,46,73,252,71,167,71, +235,71,244,71,224,71,226,71,123,71,135,70,120,69,115,68,102,67,129,66,222,65,81,65,200,64,86,64,3,64,210,63, +186,63,161,63,133,63,97,63,14,63,133,62,239,61,101,61,29,61,87,61,190,61,195,61,146,61,162,61,194,61,139,61, +220,60,120,59,109,57,146,55,88,54,56,53,24,52,113,51,5,51,61,50,22,49,89,47,129,44,24,41,16,38,65,35, +129,32,152,30,158,29,196,28,29,28,0,28,106,27,151,25,89,23,63,21,209,18,46,16,247,13,54,12,41,11,112,11, +119,12,211,12,40,12,240,10,60,9,3,7,130,4,251,1,233,255,202,254,70,254,158,253,201,252,21,252,97,251,92,250, +153,248,200,245,154,242,43,240,87,238,113,236,216,234,244,233,23,233,215,231,131,230,207,228,58,226,110,223,30,221,213,218, +67,216,28,214,238,212,153,212,214,212,55,213,21,213,29,212,133,210,212,208,129,207,127,206,147,205,33,205,193,205,59,207, +214,208,39,210,225,210,242,210,214,210,172,210,193,209,11,208,161,206,27,206,40,206,145,206,5,207,229,206,94,206,57,206, +51,206,36,205,226,202,112,200,182,198,201,197,20,197,255,195,196,194,44,194,65,194,30,194,23,193,109,191,232,189,8,189, +158,188,44,188,140,187,8,187,30,187,3,188,15,189,69,189,212,188,230,188,176,189,104,190,6,191,46,192,198,193,102,195, +50,197,49,199,245,200,123,202,29,204,173,205,190,206,106,207,13,208,240,208,103,210,130,212,174,214,67,216,77,217,58,218, +7,219,85,219,53,219,42,219,86,219,141,219,232,219,129,220,30,221,228,221,69,223,213,224,178,225,253,225,88,226,181,226, +233,226,51,227,151,227,33,228,84,229,35,231,201,232,73,234,44,236,16,238,114,239,186,240,2,242,245,242,54,244,114,246, +191,248,83,250,9,252,136,254,45,1,156,3,252,5,255,7,135,9,60,11,113,13,193,15,228,17,191,19,91,21,57,23, +172,25,42,28,75,30,77,32,22,34,62,35,34,36,72,37,110,38,136,39,75,41,199,43,232,45,11,47,172,47,97,48, +51,49,13,50,218,50,75,51,52,51,32,51,190,51,218,52,205,53,123,54,15,55,89,55,62,55,247,54,144,54,27,54, +12,54,104,54,137,54,122,54,234,54,183,55,81,56,225,56,117,57,100,57,187,56,100,56,136,56,182,56,2,57,116,57, +158,57,159,57,3,58,159,58,19,59,124,59,152,59,211,58,162,57,233,56,101,56,144,55,239,54,224,54,189,54,44,54, +142,53,203,52,105,51,150,49,151,47,36,45,88,42,229,39,220,37,217,35,27,34,179,32,167,30,128,27,32,24,247,20, +131,17,245,13,204,10,80,7,8,3,44,255,151,252,113,250,25,248,229,245,185,243,47,241,122,238,171,235,160,232,247,229, +53,228,189,226,39,225,217,223,194,222,176,221,60,221,87,221,186,220,49,219,204,217,182,216,118,215,112,214,219,213,18,213, +247,211,245,210,233,209,223,208,114,208,88,208,168,207,110,206,243,204,209,202,63,200,96,198,95,197,113,196,114,195,168,194, +187,193,77,192,170,190,60,189,251,187,137,186,190,184,1,183,183,181,206,180,84,180,136,180,0,181,1,181,150,180,249,179, +26,179,111,178,118,178,157,178,165,178,138,179,128,181,105,183,14,185,221,186,54,188,184,188,71,189,26,190,161,190,114,191, +48,193,33,195,4,197,141,199,63,202,35,204,213,205,241,207,149,209,102,210,47,211,27,212,24,213,178,214,218,216,229,218, +253,220,98,223,131,225,105,227,151,229,91,231,255,231,105,232,76,233,39,234,33,235,10,237,163,239,92,242,55,245,171,247, +15,249,37,250,200,251,114,253,189,254,42,0,210,1,146,3,206,5,128,8,19,11,161,13,101,16,165,18,234,19,211,20, +210,21,7,23,225,24,48,27,18,29,170,30,215,32,54,35,187,36,151,37,154,38,221,39,39,41,110,42,172,43,28,45, +56,47,226,49,76,52,253,53,87,55,249,56,239,58,211,60,147,62,99,64,8,66,72,67,178,68,175,70,175,72,100,74, +66,76,47,78,167,79,245,80,94,82,56,83,115,83,255,83,219,84,65,85,139,85,129,86,212,87,255,88,244,89,66,90, +166,89,248,88,167,88,225,87,123,86,108,85,238,84,113,84,251,83,181,83,48,83,72,82,82,81,250,79,201,77,102,75, +181,73,133,72,95,71,136,70,40,70,189,69,255,68,77,68,201,67,16,67,251,65,196,64,146,63,142,62,12,62,249,61, +213,61,155,61,152,61,119,61,191,60,211,59,39,59,77,58,231,56,75,55,178,53,3,52,140,50,159,49,233,48,254,47, +212,46,82,45,84,43,251,40,106,38,167,35,245,32,137,30,38,28,165,25,86,23,86,21,98,19,84,17,37,15,160,12, +149,9,35,6,167,2,128,255,191,252,63,250,16,248,72,246,126,244,102,242,107,240,184,238,184,236,78,234,22,232,15,230, +191,227,127,225,3,224,34,223,79,222,90,221,39,220,168,218,28,217,134,215,135,213,45,211,2,209,80,207,9,206,23,205, +70,204,92,203,112,202,156,201,144,200,240,198,215,196,208,194,96,193,135,192,229,191,113,191,105,191,165,191,207,191,232,191, +208,191,9,191,162,189,65,188,49,187,94,186,237,185,216,185,232,185,83,186,29,187,104,187,199,186,27,186,217,185,65,185, +17,184,8,183,129,182,81,182,140,182,21,183,103,183,148,183,35,184,222,184,6,185,156,184,61,184,68,184,163,184,20,185, +87,185,179,185,202,186,141,188,42,190,83,191,155,192,85,194,25,196,143,197,222,198,81,200,32,202,115,204,37,207,191,209, +22,212,138,214,75,217,3,220,105,222,178,224,4,227,46,229,39,231,65,233,131,235,114,237,251,238,202,240,48,243,130,245, +51,247,149,248,245,249,4,251,186,251,169,252,13,254,137,255,7,1,224,2,4,5,223,6,28,8,11,9,24,10,49,11, +13,12,191,12,165,13,247,14,197,16,3,19,97,21,167,23,20,26,155,28,133,30,148,31,137,32,232,33,154,35,178,37, +51,40,202,42,166,45,42,49,149,52,229,54,139,56,84,58,238,59,0,61,254,61,27,63,65,64,203,65,219,67,226,69, +118,71,114,72,167,72,130,72,181,72,243,72,165,72,79,72,115,72,130,72,43,72,205,71,109,71,0,71,229,70,197,70, +197,69,29,68,165,66,129,65,197,64,149,64,27,64,156,62,229,60,192,59,170,58,90,57,61,56,65,55,58,54,120,53, +181,52,101,51,57,50,241,49,197,49,238,48,232,47,18,47,59,46,144,45,26,45,77,44,42,43,74,42,182,41,20,41, +88,40,133,39,179,38,27,38,73,37,125,35,62,33,179,31,208,30,191,29,53,28,90,26,124,24,26,23,32,22,243,20, +136,19,76,18,48,17,5,16,198,14,37,13,28,11,61,9,142,7,197,5,141,4,66,4,178,3,94,2,107,1,222,0, +100,255,31,253,46,251,137,249,1,248,236,246,170,245,157,243,2,242,181,241,90,241,234,239,44,238,150,236,244,234,139,233, +57,232,88,230,130,228,188,227,55,227,191,225,244,223,197,222,221,221,204,220,185,219,166,218,156,217,241,216,142,216,16,216, +150,215,97,215,44,215,167,214,242,213,93,213,46,213,136,213,77,214,82,215,113,216,85,217,178,217,162,217,125,217,107,217, +92,217,52,217,16,217,58,217,146,217,153,217,105,217,140,217,225,217,222,217,103,217,100,216,188,214,43,213,111,212,247,211, +34,211,138,210,92,210,144,209,239,207,131,206,168,205,234,204,73,204,227,203,98,203,193,202,85,202,5,202,147,201,30,201, +206,200,178,200,242,200,128,201,40,202,20,203,107,204,192,205,188,206,167,207,180,208,174,209,143,210,163,211,18,213,204,214, +157,216,72,218,201,219,70,221,195,222,28,224,37,225,201,225,83,226,41,227,12,228,97,228,83,228,153,228,76,229,245,229, +79,230,73,230,233,229,115,229,25,229,218,228,228,228,91,229,222,229,1,230,228,229,184,229,100,229,235,228,151,228,212,228, +209,229,234,230,65,231,82,231,115,232,142,234,79,236,66,237,223,237,85,238,215,238,230,239,87,241,172,242,62,244,146,246, +72,249,195,251,230,253,216,255,230,1,46,4,10,6,234,6,125,7,194,8,180,10,248,12,154,15,126,18,62,21,137,23, +14,25,229,25,214,26,43,28,5,29,250,28,255,28,220,29,82,31,223,32,59,34,105,35,189,36,243,37,254,37,227,36, +39,36,91,36,128,36,80,36,150,36,83,37,236,37,131,38,75,39,210,39,245,39,9,40,233,39,93,39,253,38,66,39, +196,39,51,40,228,40,232,41,235,42,218,43,157,44,183,44,66,44,56,44,212,44,32,45,209,44,254,44,65,46,212,47, +244,48,159,49,235,49,221,49,178,49,113,49,203,48,209,47,7,47,163,46,150,46,231,46,71,47,24,47,54,46,255,44, +127,43,138,41,77,39,255,36,167,34,149,32,18,31,151,29,134,27,97,25,255,23,6,23,79,21,74,18,59,14,233,9, +62,6,117,3,211,0,240,253,93,251,97,249,99,247,16,245,179,242,89,240,236,237,131,235,202,232,93,229,247,225,177,223, +121,222,208,221,184,221,165,221,163,220,35,219,82,218,21,218,178,217,27,217,31,216,113,214,244,212,162,212,231,212,1,213, +58,213,165,213,192,213,117,213,191,212,98,211,235,209,222,208,112,207,80,205,210,203,94,203,213,202,73,202,145,202,181,202, +117,201,129,199,135,197,21,195,165,192,52,191,18,190,91,188,27,187,78,187,28,188,119,188,47,188,7,187,1,185,1,183, +186,181,223,180,64,180,125,180,26,182,154,184,254,186,205,188,49,190,56,191,201,191,20,192,79,192,149,192,123,193,190,195, +51,199,41,203,15,207,17,210,206,211,113,213,194,215,102,217,128,217,156,217,248,218,3,221,120,223,121,226,61,229,123,231, +3,234,114,236,124,237,157,237,16,238,136,238,189,238,127,239,231,240,87,242,28,244,95,246,85,248,239,249,187,251,27,253, +120,253,201,253,192,254,216,255,19,1,227,2,218,4,196,6,85,9,89,12,189,14,130,16,101,18,79,20,232,21,95,23, +209,24,74,26,39,28,130,30,238,32,38,35,33,37,200,38,43,40,118,41,170,42,227,43,78,45,178,46,217,47,11,49, +103,50,198,51,96,53,94,55,74,57,221,58,77,60,121,61,53,62,15,63,102,64,193,65,247,66,135,68,116,70,67,72, +230,73,146,75,42,77,87,78,194,78,127,78,91,78,245,78,246,79,223,80,204,81,236,82,50,84,122,85,67,86,17,86, +66,85,96,84,41,83,125,81,27,80,128,79,100,79,144,79,200,79,137,79,187,78,143,77,178,75,12,73,112,70,73,68, +35,66,26,64,229,62,110,62,30,62,214,61,124,61,158,60,53,59,181,57,99,56,94,55,188,54,64,54,152,53,239,52, +208,52,119,53,126,54,39,55,12,55,112,54,164,53,174,52,139,51,70,50,3,49,58,48,11,48,175,47,162,46,123,45, +151,44,102,43,175,41,156,39,211,36,125,33,215,30,52,29,104,27,254,24,146,22,44,20,125,17,223,14,99,12,120,9, +15,6,144,2,17,255,190,251,255,248,171,246,119,244,163,242,29,241,31,239,121,236,207,233,148,231,214,229,114,228,229,226, +237,224,43,223,65,222,247,221,227,221,207,221,94,221,83,220,222,218,60,217,145,215,25,214,240,212,5,212,87,211,211,210, +86,210,15,210,250,209,77,209,158,207,162,205,218,203,5,202,80,200,77,199,242,198,5,199,120,199,161,199,202,198,123,197, +103,196,44,195,121,193,215,191,142,190,149,189,70,189,145,189,173,189,122,189,134,189,165,189,67,189,130,188,155,187,139,186, +197,185,184,185,253,185,91,186,78,187,164,188,116,189,190,189,28,190,77,190,244,189,198,189,123,190,170,191,152,192,47,193, +187,193,139,194,182,195,216,196,138,197,29,198,51,199,188,200,54,202,135,203,214,204,19,206,84,207,239,208,199,210,96,212, +205,213,150,215,188,217,209,219,189,221,148,223,67,225,241,226,236,228,255,230,197,232,119,234,120,236,137,238,74,240,217,241, +101,243,239,244,168,246,170,248,143,250,17,252,153,253,118,255,63,1,157,2,223,3,69,5,133,6,113,7,63,8,14,9, +236,9,37,11,214,12,133,14,211,15,252,16,67,18,156,19,241,20,45,22,51,23,54,24,132,25,246,26,78,28,207,29, +211,31,92,34,56,37,221,39,187,41,53,43,17,45,3,47,99,48,138,49,211,50,241,51,76,53,161,55,45,58,240,59, +153,61,164,63,247,64,64,65,146,65,9,66,19,66,72,66,10,67,98,67,39,67,99,67,252,67,254,67,160,67,103,67, +220,66,166,65,29,64,97,62,169,60,158,59,59,59,168,58,163,57,141,56,120,55,79,54,39,53,226,51,129,50,149,49, +124,49,190,49,178,49,63,49,217,48,231,48,42,49,16,49,143,48,255,47,136,47,92,47,168,47,243,47,199,47,161,47, +204,47,142,47,158,46,158,45,191,44,196,43,214,42,225,41,115,40,222,38,176,37,166,36,208,35,195,35,169,35,14,34, +169,31,24,30,238,28,2,27,188,24,226,22,97,21,45,20,72,19,56,18,224,16,163,15,86,14,156,12,189,10,237,8, +241,6,255,4,133,3,71,2,247,0,206,255,202,254,144,253,42,252,225,250,156,249,15,248,47,246,101,244,86,243,1,243, +120,242,33,241,95,239,184,237,102,236,139,235,194,234,75,233,82,231,187,229,189,228,17,228,178,227,100,227,187,226,8,226, +165,225,253,224,173,223,126,222,22,222,43,222,71,222,39,222,181,221,106,221,210,221,152,222,2,223,187,222,173,221,34,220, +29,219,35,219,82,219,203,218,239,217,111,217,60,217,236,216,47,216,247,214,170,213,181,212,235,211,206,210,88,209,21,208, +119,207,85,207,21,207,74,206,2,205,153,203,135,202,240,201,99,201,162,200,58,200,104,200,143,200,167,200,75,201,10,202, +224,201,54,201,9,201,46,201,81,201,229,201,250,202,58,204,234,205,3,208,136,209,63,210,8,211,0,212,135,212,181,212, +237,212,64,213,10,214,117,215,180,216,105,217,82,218,132,219,30,220,44,220,84,220,74,220,183,219,56,219,39,219,35,219, +72,219,247,219,191,220,29,221,115,221,15,222,84,222,197,221,8,221,33,221,13,222,213,222,248,222,251,222,127,223,146,224, +228,225,251,226,131,227,204,227,114,228,132,229,217,230,131,232,72,234,191,235,63,237,43,239,215,240,182,241,133,242,33,244, +116,246,230,248,199,250,204,251,241,252,83,255,79,2,161,4,89,6,217,7,229,8,247,9,220,11,225,13,15,15,56,16, +72,18,124,20,28,22,147,23,45,25,222,26,220,28,204,30,193,31,240,31,131,32,187,33,5,35,64,36,109,37,74,38, +254,38,3,40,78,41,130,42,106,43,201,43,145,43,84,43,181,43,150,44,89,45,168,45,207,45,94,46,73,47,244,47, +91,48,25,49,18,50,156,50,217,50,76,51,171,51,201,51,104,52,175,53,141,54,142,54,122,54,192,54,51,55,2,56, +59,57,13,58,224,57,65,57,251,56,18,57,10,57,122,56,121,55,155,54,48,54,202,53,246,52,7,52,118,51,254,50, +218,49,173,47,227,44,52,42,9,40,90,38,206,36,205,34,15,32,41,29,235,26,24,25,181,22,113,19,197,15,38,12, +219,8,249,5,55,3,111,0,11,254,80,252,213,250,33,249,235,246,27,244,81,241,124,239,59,238,73,236,212,233,96,232, +105,232,5,233,75,233,190,232,75,231,151,229,76,228,47,227,203,225,92,224,99,223,18,223,29,223,200,222,186,221,159,220, +255,219,52,219,164,217,185,215,207,213,203,211,251,209,202,208,233,207,197,206,70,205,185,203,137,202,180,201,102,200,39,198, +212,195,40,194,158,192,235,190,160,189,212,188,54,188,2,188,52,188,10,188,111,187,246,186,112,186,164,185,83,185,201,185, +53,186,134,186,157,187,126,189,112,191,64,193,181,194,77,195,85,195,174,195,99,196,15,197,1,198,176,199,228,201,64,204, +169,206,215,208,82,210,16,211,150,211,68,212,232,212,79,213,246,213,143,215,7,218,170,220,232,222,149,224,213,225,6,227, +75,228,92,229,18,230,153,230,66,231,125,232,123,234,176,236,143,238,126,240,231,242,75,245,30,247,112,248,114,249,147,250, +140,252,23,255,4,1,63,2,216,3,29,6,124,8,192,10,204,12,98,14,231,15,213,17,167,19,186,20,118,21,88,22, +77,23,109,24,251,25,173,27,40,29,156,30,27,32,60,33,220,33,109,34,104,35,235,36,187,38,133,40,49,42,243,43, +229,45,198,47,82,49,182,50,87,52,33,54,202,55,137,57,171,59,178,61,38,63,159,64,141,66,47,68,14,69,241,69, +88,71,195,72,205,73,124,74,228,74,91,75,42,76,241,76,102,77,230,77,111,78,120,78,19,78,155,77,204,76,156,75, +168,74,241,73,224,72,162,71,189,70,0,70,30,69,48,68,51,67,27,66,19,65,237,63,78,62,127,60,254,58,214,57, +45,57,42,57,84,57,83,57,112,57,152,57,80,57,206,56,105,56,192,55,227,54,164,54,231,54,198,54,78,54,43,54, +90,54,113,54,30,54,26,53,172,51,150,50,207,49,145,48,181,46,187,44,32,43,67,42,196,41,94,40,208,37,138,35, +63,34,224,32,155,30,198,27,228,24,113,22,182,20,12,19,155,16,176,13,28,11,27,9,109,7,127,5,193,2,198,255, +184,253,88,252,108,250,225,247,141,245,187,243,96,242,108,241,99,240,223,238,53,237,186,235,84,234,253,232,149,231,231,229, +123,228,240,227,140,227,60,226,91,224,206,222,150,221,84,220,216,218,16,217,98,215,81,214,101,213,237,211,108,210,140,209, +196,208,146,207,98,206,106,205,75,204,19,203,34,202,95,201,132,200,163,199,234,198,109,198,35,198,231,197,152,197,39,197, +120,196,142,195,152,194,162,193,193,192,117,192,196,192,179,192,214,191,37,191,71,191,150,191,131,191,55,191,180,190,235,189, +61,189,215,188,116,188,61,188,149,188,36,189,79,189,53,189,55,189,76,189,90,189,107,189,80,189,248,188,227,188,122,189, +121,190,118,191,124,192,161,193,202,194,226,195,219,196,158,197,121,198,247,199,234,201,147,203,229,204,132,206,137,208,153,210, +159,212,119,214,175,215,121,216,183,217,172,219,214,221,209,223,135,225,12,227,197,228,207,230,126,232,122,233,118,234,216,235, +30,237,19,238,57,239,202,240,170,242,201,244,203,246,23,248,189,248,118,249,177,250,58,252,164,253,180,254,158,255,192,0, +42,2,176,3,58,5,197,6,108,8,82,10,56,12,176,13,247,14,173,16,195,18,184,20,144,22,141,24,156,26,155,28, +161,30,245,32,213,35,228,38,51,41,177,42,108,44,199,46,6,49,232,50,202,52,159,54,104,56,143,58,217,60,137,62, +186,63,237,64,17,66,28,67,53,68,248,68,61,69,211,69,12,71,13,72,93,72,61,72,187,71,10,71,176,70,117,70, +205,69,44,69,43,69,124,69,209,69,27,70,174,69,64,68,206,66,231,65,248,64,251,63,123,63,57,63,26,63,206,63, +245,64,10,65,5,64,71,63,19,63,166,62,247,61,91,61,194,60,87,60,139,60,13,61,250,60,11,60,194,58,170,57, +228,56,89,56,231,55,52,55,236,53,113,52,117,51,177,50,64,49,26,47,5,45,112,43,103,42,174,41,139,40,195,38, +62,37,107,36,93,35,116,33,28,31,152,28,4,26,15,24,229,22,156,21,200,19,236,17,64,16,178,14,104,13,252,11, +179,9,241,6,189,4,25,3,112,1,176,255,220,253,240,251,115,250,151,249,103,248,57,246,238,243,129,242,151,241,85,240, +142,238,156,236,214,234,117,233,109,232,70,231,130,229,85,227,155,225,188,224,24,224,247,222,123,221,65,220,171,219,163,219, +137,219,179,218,77,217,27,216,78,215,100,214,43,213,24,212,152,211,171,211,1,212,42,212,207,211,255,210,34,210,109,209, +131,208,243,206,0,205,98,203,103,202,230,201,183,201,152,201,37,201,87,200,94,199,34,198,181,196,156,195,229,194,246,193, +183,192,171,191,253,190,138,190,90,190,74,190,1,190,136,189,29,189,182,188,100,188,84,188,83,188,42,188,33,188,79,188, +89,188,85,188,212,188,247,189,91,191,133,192,15,193,57,193,251,193,126,195,163,196,218,196,15,197,42,198,242,199,175,201, +210,202,62,203,98,203,189,203,82,204,224,204,78,205,192,205,164,206,37,208,154,209,72,210,107,210,149,210,221,210,67,211, +186,211,206,211,120,211,165,211,229,212,151,214,253,215,241,216,148,217,41,218,225,218,132,219,253,219,161,220,89,221,206,221, +135,222,45,224,69,226,52,228,63,230,88,232,234,233,28,235,136,236,27,238,172,239,115,241,86,243,62,245,147,247,59,250, +127,252,138,254,12,1,201,3,51,6,97,8,56,10,126,11,216,12,225,14,25,17,33,19,97,21,218,23,85,26,12,29, +154,31,8,33,188,33,255,34,182,36,41,38,197,39,237,41,18,44,14,46,48,48,0,50,18,51,234,51,192,52,35,53, +108,53,83,54,123,55,81,56,85,57,11,59,237,60,72,62,244,62,19,63,250,62,17,63,78,63,70,63,24,63,141,63, +5,65,220,66,80,68,108,69,101,70,208,70,101,70,159,69,235,68,75,68,6,68,87,68,194,68,15,69,178,69,88,70, +24,70,53,69,116,68,115,67,201,65,17,64,121,62,170,60,82,59,3,59,132,58,228,56,252,54,42,53,155,50,135,47, +213,44,45,42,28,39,95,36,39,34,165,31,211,28,47,26,75,23,240,19,1,17,170,14,10,12,13,9,119,6,74,4, +4,2,146,255,36,253,17,251,187,249,180,248,16,247,253,244,101,243,52,242,177,240,222,238,239,236,194,234,212,232,5,232, +219,231,253,230,88,229,219,227,158,226,9,225,20,223,249,220,166,218,88,216,143,214,12,213,54,211,104,209,97,208,221,207, +23,207,205,205,204,203,194,200,60,197,87,194,71,192,157,190,112,189,234,188,174,188,143,188,156,188,63,188,231,186,47,185, +204,183,114,182,13,181,128,180,51,181,91,182,67,183,13,184,28,185,134,186,210,187,56,188,172,187,42,187,92,187,247,187, +187,188,247,189,196,191,209,193,211,195,110,197,71,198,156,198,16,199,172,199,24,200,136,200,118,201,221,202,171,204,23,207, +189,209,119,211,228,211,241,211,112,212,85,213,117,214,208,215,58,217,174,218,130,220,188,222,243,224,246,226,218,228,126,230, +184,231,152,232,76,233,73,234,56,236,24,239,54,242,40,245,237,247,75,250,49,252,4,254,205,255,75,1,206,2,158,4, +47,6,89,7,251,8,98,11,202,13,216,15,190,17,103,19,226,20,137,22,253,23,157,24,232,24,189,25,9,27,115,28, +45,30,54,32,58,34,37,36,243,37,129,39,238,40,82,42,101,43,67,44,164,45,187,47,254,49,253,51,139,53,193,54, +86,56,209,58,113,61,67,63,146,64,13,66,154,67,211,68,190,69,173,70,0,72,220,73,227,75,158,77,3,79,3,80, +105,80,110,80,173,80,91,81,33,82,150,82,190,82,0,83,105,83,92,83,141,82,157,81,250,80,79,80,133,79,199,78, +206,77,147,76,191,75,96,75,187,74,227,73,117,73,13,73,239,71,89,70,224,68,171,67,216,66,75,66,146,65,209,64, +184,64,61,65,167,65,140,65,189,64,67,63,216,61,2,61,53,60,20,59,65,58,14,58,243,57,145,57,213,56,198,55, +231,54,154,54,23,54,155,52,137,50,86,48,253,45,27,44,80,43,204,42,123,41,169,39,245,37,68,36,95,34,17,32, +23,29,251,25,189,23,13,22,192,19,225,16,79,14,26,12,233,9,214,7,202,5,81,3,165,0,114,254,181,252,226,250, +222,248,238,246,35,245,118,243,1,242,175,240,28,239,37,237,38,235,115,233,235,231,97,230,221,228,123,227,97,226,126,225, +63,224,58,222,16,220,103,218,193,216,169,214,208,212,152,211,77,210,201,208,170,207,167,206,12,205,120,203,201,202,84,202, +18,201,48,199,65,197,105,195,237,193,7,193,107,192,221,191,153,191,162,191,153,191,60,191,71,190,141,188,187,186,236,185, +20,186,32,186,179,185,108,185,137,185,162,185,136,185,89,185,253,184,106,184,5,184,19,184,65,184,37,184,203,183,131,183, +134,183,195,183,226,183,188,183,169,183,238,183,70,184,130,184,201,184,3,185,15,185,114,185,156,186,253,187,230,188,130,189, +37,190,200,190,149,191,214,192,72,194,152,195,6,197,225,198,238,200,185,202,13,204,55,205,233,206,82,209,159,211,29,213, +63,214,219,215,7,218,67,220,63,222,42,224,93,226,201,228,12,231,4,233,179,234,238,235,234,236,87,238,52,240,201,241, +33,243,244,244,37,247,250,248,112,250,216,251,30,253,56,254,97,255,151,0,179,1,207,2,15,4,139,5,89,7,44,9, +159,10,23,12,49,14,160,16,156,18,253,19,34,21,139,22,151,24,251,26,2,29,203,30,45,33,76,36,105,39,214,41, +115,43,219,44,229,46,93,49,65,51,161,52,140,54,22,57,127,59,176,61,218,63,188,65,82,67,192,68,147,69,168,69, +215,69,152,70,125,71,112,72,160,73,141,74,219,74,244,74,239,74,76,74,49,73,69,72,171,71,70,71,43,71,61,71, +51,71,6,71,190,70,77,70,172,69,201,68,166,67,192,66,129,66,136,66,84,66,6,66,241,65,43,66,147,66,184,66, +77,66,225,65,238,65,204,65,238,64,247,63,122,63,77,63,108,63,207,63,223,63,129,63,87,63,39,63,7,62,57,60, +188,58,159,57,137,56,169,55,4,55,47,54,12,53,197,51,121,50,93,49,93,48,193,46,71,44,183,41,177,39,7,38, +133,36,31,35,146,33,209,31,60,30,250,28,163,27,199,25,99,23,248,20,27,19,175,17,22,16,52,14,111,12,239,10, +184,9,187,8,77,7,211,4,35,2,159,0,33,0,81,255,147,253,99,251,112,249,9,248,230,246,97,245,65,243,12,241, +94,239,69,238,55,237,135,235,44,233,9,231,213,229,55,229,79,228,185,226,187,224,236,222,180,221,207,220,150,219,234,217, +95,216,116,215,252,214,90,214,25,213,99,211,230,209,19,209,152,208,188,207,67,206,186,204,175,203,254,202,55,202,53,201, +226,199,40,198,134,196,168,195,72,195,154,194,175,193,254,192,58,192,244,190,135,189,66,188,204,186,15,185,159,183,218,182, +147,182,133,182,124,182,70,182,235,181,124,181,176,180,66,179,136,177,45,176,136,175,150,175,73,176,113,177,175,178,176,179, +67,180,62,180,199,179,126,179,213,179,125,180,27,181,247,181,73,183,182,184,247,185,28,187,20,188,194,188,77,189,200,189, +57,190,240,190,242,191,218,192,232,193,205,195,235,197,233,198,237,198,38,199,219,199,187,200,186,201,105,202,116,202,217,202, +149,204,204,206,39,208,176,208,0,209,96,209,33,210,74,211,58,212,188,212,138,213,45,215,91,217,98,219,185,220,161,221, +35,223,147,225,242,227,147,229,234,230,109,232,51,234,124,236,40,239,132,241,144,243,27,246,54,249,12,252,64,254,28,0, +244,1,39,4,13,7,86,10,36,13,32,15,239,16,55,19,167,21,176,23,184,25,111,28,117,31,4,34,64,36,146,38, +213,40,238,42,226,44,84,46,86,47,208,48,234,50,211,52,132,54,124,56,66,58,93,59,114,60,177,61,71,62,82,62, +236,62,64,64,176,65,237,66,193,67,66,68,65,69,249,70,62,72,63,72,155,71,40,71,102,71,148,72,17,74,231,74, +100,75,76,76,26,77,0,77,84,76,148,75,187,74,47,74,88,74,173,74,152,74,64,74,186,73,233,72,51,72,207,71, +16,71,97,69,48,67,56,65,182,63,79,62,101,60,240,57,174,55,253,53,74,52,25,50,149,47,221,44,196,41,68,38, +167,34,103,31,236,28,242,26,172,24,231,21,69,19,40,17,41,15,212,12,100,10,117,8,6,7,84,5,40,3,80,1, +48,0,26,255,169,253,57,252,195,250,252,248,48,247,156,245,225,243,255,241,91,240,180,238,168,236,205,234,182,233,232,232, +162,231,109,229,6,226,20,222,47,219,215,217,171,216,125,214,171,211,2,209,181,206,153,204,122,202,65,200,255,197,161,195, +8,193,117,190,61,188,48,186,41,184,197,182,133,182,199,182,108,182,76,181,122,180,248,180,82,182,207,182,111,181,116,179, +60,179,157,181,235,184,224,186,246,186,148,186,39,187,181,188,71,190,27,191,70,191,123,191,85,192,184,193,228,194,61,195, +19,195,111,195,184,196,221,197,149,197,64,196,165,195,202,196,225,198,84,200,117,200,244,199,254,199,12,201,122,202,22,203, +74,202,2,201,15,201,251,202,78,205,222,206,92,208,158,210,251,212,111,214,28,215,5,216,11,218,35,221,58,224,144,226, +172,228,78,231,101,234,207,237,124,241,198,244,60,247,140,249,43,252,142,254,139,0,156,2,164,4,108,6,129,8,245,10, +215,12,9,14,134,15,109,17,219,18,164,19,122,20,197,21,92,23,243,24,83,26,138,27,178,28,158,29,58,30,237,30, +47,32,24,34,82,36,60,38,147,39,231,40,207,42,15,45,27,47,187,48,248,49,80,51,115,53,0,56,206,57,13,59, +40,61,127,64,242,67,133,70,45,72,167,73,218,75,143,78,124,80,77,81,30,82,158,83,125,85,108,87,3,89,162,89, +135,89,177,89,113,90,74,91,201,91,179,91,49,91,211,90,145,90,172,89,44,88,14,87,197,86,243,86,31,87,175,86, +110,85,66,84,246,83,244,83,110,83,104,82,8,81,159,79,227,78,184,78,37,78,53,77,185,76,90,76,96,75,86,74, +228,73,169,73,58,73,116,72,241,70,247,68,182,67,74,67,139,66,78,65,125,64,13,64,5,63,50,61,79,59,252,57, +36,57,33,56,105,54,54,52,10,50,244,47,191,45,112,43,63,41,80,39,94,37,215,34,192,31,223,28,145,26,113,24, +83,22,70,20,240,17,47,15,168,12,185,10,220,8,158,6,15,4,109,1,42,255,147,253,54,252,136,250,171,248,217,246, +248,244,16,243,2,241,87,238,104,235,91,233,35,232,107,230,202,227,17,225,218,222,88,221,106,220,17,219,115,216,112,213, +73,211,157,209,107,207,213,204,117,202,114,200,217,198,161,197,95,196,237,194,166,193,125,192,231,190,235,188,18,187,133,185, +52,184,83,183,227,182,94,182,124,181,165,180,78,180,125,180,220,180,222,180,19,180,203,178,249,177,28,178,208,178,117,179, +193,179,178,179,135,179,121,179,110,179,59,179,4,179,229,178,194,178,162,178,153,178,118,178,69,178,129,178,25,179,60,179, +159,178,220,177,142,177,4,178,44,179,57,180,100,180,46,180,158,180,188,181,243,182,251,183,209,184,185,185,50,187,247,188, +40,190,248,190,130,192,215,194,48,197,96,199,91,201,201,202,53,204,180,206,226,209,99,212,33,214,9,216,105,218,6,221, +176,223,253,225,187,227,159,229,71,232,54,235,170,237,175,239,150,241,95,243,2,245,151,246,10,248,70,249,125,250,238,251, +140,253,61,255,6,1,180,2,232,3,202,4,241,5,110,7,193,8,215,9,9,11,79,12,140,13,30,15,56,17,98,19, +65,21,5,23,223,24,199,26,154,28,13,30,16,31,64,32,68,34,213,36,47,39,27,41,7,43,100,45,255,47,20,50, +86,51,124,52,42,54,34,56,247,57,158,59,4,61,67,62,206,63,150,65,234,66,179,67,129,68,93,69,224,69,30,70, +80,70,105,70,140,70,254,70,129,71,161,71,90,71,238,70,139,70,64,70,232,69,101,69,249,68,225,68,243,68,26,69, +109,69,146,69,57,69,202,68,164,68,101,68,213,67,125,67,183,67,62,68,168,68,165,68,65,68,24,68,131,68,211,68, +75,68,81,67,194,66,197,66,218,66,148,66,15,66,189,65,169,65,54,65,28,64,240,62,48,62,151,61,198,60,228,59, +73,59,218,58,244,57,47,56,7,54,65,52,228,50,123,49,221,47,46,46,184,44,237,43,150,43,151,42,120,40,14,38, +8,36,56,34,136,32,7,31,96,29,159,27,101,26,180,25,230,24,214,23,139,22,167,20,120,18,226,16,146,15,99,13, +163,10,152,8,106,7,112,6,70,5,133,3,15,1,212,254,120,253,233,251,42,249,44,246,44,244,228,242,116,241,152,239, +116,237,75,235,103,233,173,231,195,229,178,227,179,225,169,223,152,221,208,219,48,218,68,216,72,214,214,212,201,211,132,210, +228,208,18,207,21,205,31,203,117,201,224,199,36,198,165,196,201,195,86,195,249,194,123,194,108,193,166,191,202,189,65,188, +157,186,199,184,105,183,161,182,212,181,255,180,158,180,139,180,76,180,180,179,122,178,128,176,168,174,179,173,236,172,156,171, +143,170,146,170,255,170,22,171,35,171,100,171,136,171,91,171,206,170,211,169,242,168,239,168,145,169,31,170,177,170,174,171, +183,172,104,173,18,174,224,174,115,175,203,175,82,176,4,177,172,177,148,178,19,180,9,182,36,184,248,185,232,186,2,187, +112,187,254,188,251,190,100,192,67,193,60,194,205,195,43,198,235,200,240,202,198,203,91,204,138,205,222,206,151,207,248,207, +234,208,233,210,141,213,233,215,163,217,113,219,250,221,175,224,148,226,119,227,234,227,171,228,65,230,140,232,241,234,84,237, +3,240,208,242,108,245,24,248,205,250,186,252,201,253,28,255,58,1,118,3,121,5,184,7,101,10,89,13,122,16,90,19, +135,21,132,23,57,26,103,29,6,32,225,33,178,35,245,37,137,40,34,43,140,45,167,47,139,49,145,51,238,53,112,56, +211,58,15,61,24,63,178,64,223,65,3,67,93,68,193,69,11,71,93,72,213,73,51,75,9,76,117,76,66,77,167,78, +187,79,247,79,37,80,217,80,125,81,181,81,223,81,253,81,214,81,214,81,45,82,21,82,60,81,124,80,116,80,222,80, +67,81,66,81,169,80,238,79,138,79,27,79,22,78,156,76,240,74,51,73,193,71,203,70,5,70,83,69,202,68,245,67, +96,66,78,64,6,62,102,59,150,56,232,53,49,51,64,48,63,45,61,42,106,39,70,37,164,35,181,33,144,31,213,29, +224,27,150,24,106,20,176,16,201,13,69,11,244,8,59,7,153,6,190,6,121,6,68,5,188,3,10,2,165,255,217,252, +102,250,39,248,249,245,135,244,211,243,11,243,38,242,116,241,39,240,151,237,137,234,187,231,37,229,248,226,50,225,238,222, +12,220,211,217,165,216,66,215,214,212,147,209,185,205,217,201,237,198,229,196,173,194,38,192,92,190,172,189,33,189,150,187, +194,184,157,181,179,179,84,179,247,178,73,177,34,175,138,174,81,176,18,179,163,180,117,180,41,180,82,181,48,183,204,183, +175,182,84,181,81,181,251,182,123,185,154,187,219,188,222,189,97,191,69,193,189,194,17,195,62,194,76,193,96,193,41,194, +77,194,168,193,153,193,242,194,252,196,156,198,91,199,103,199,45,199,217,198,119,198,67,198,53,198,210,197,108,197,59,198, +87,200,121,202,40,204,235,205,120,207,62,208,244,208,157,210,9,213,136,215,199,217,189,219,219,221,173,224,197,227,90,230, +207,232,250,235,174,239,11,243,115,245,245,246,137,248,44,251,92,254,250,0,62,3,185,5,220,7,76,9,184,10,65,12, +110,13,150,14,52,16,241,17,204,19,37,22,92,24,191,25,234,26,59,28,233,28,255,28,153,29,205,30,234,31,42,33, +22,35,92,37,127,39,111,41,46,43,239,44,239,46,191,48,205,49,108,50,60,51,102,52,49,54,250,56,46,60,212,62, +23,65,226,67,10,71,59,73,241,73,78,74,116,75,12,77,79,78,61,79,33,80,26,81,121,82,50,84,93,85,149,85, +157,85,205,85,170,85,57,85,180,84,170,83,86,82,234,81,93,82,92,82,166,81,243,80,99,80,238,79,195,79,99,79, +119,78,232,77,253,77,116,77,3,76,246,74,170,74,73,74,172,73,21,73,56,72,54,71,197,70,211,70,165,70,26,70, +113,69,173,68,227,67,38,67,27,66,120,64,188,62,161,61,254,60,215,59,231,57,82,56,231,55,180,55,141,54,154,52, +80,50,178,47,48,45,72,43,106,41,248,38,71,36,161,33,22,31,59,29,14,28,95,26,246,23,254,21,146,20,164,18, +8,16,47,13,52,10,179,7,75,6,32,5,76,3,145,1,132,0,104,255,252,253,142,252,138,250,182,247,77,245,202,243, +18,242,196,239,148,237,133,235,70,233,73,231,190,229,8,228,238,225,184,223,93,221,244,218,233,216,24,215,237,212,132,210, +138,208,10,207,97,205,47,203,201,200,200,198,81,197,10,196,194,194,174,193,219,192,15,192,37,191,49,190,66,189,65,188, +244,186,101,185,47,184,227,183,70,184,157,184,144,184,103,184,161,184,67,185,161,185,73,185,189,184,136,184,79,184,176,183, +6,183,174,182,163,182,252,182,191,183,113,184,167,184,93,184,159,183,185,182,84,182,127,182,111,182,194,181,17,181,3,181, +189,181,232,182,187,183,184,183,163,183,149,184,49,186,30,187,34,187,102,187,174,188,120,190,253,191,39,193,81,194,188,195, +136,197,150,199,120,201,253,202,139,204,132,206,209,208,37,211,56,213,222,214,100,216,86,218,156,220,173,222,94,224,224,225, +101,227,75,229,165,231,197,233,71,235,196,236,129,238,0,240,74,241,229,242,149,244,213,245,218,246,226,247,199,248,214,249, +145,251,160,253,95,255,226,0,133,2,61,4,215,5,75,7,203,8,151,10,117,12,238,13,38,15,161,16,114,18,137,20, +3,23,133,25,154,27,168,29,9,32,0,34,26,35,40,36,188,37,105,39,251,40,203,42,206,44,173,46,94,48,3,50, +162,51,21,53,44,54,9,55,9,56,35,57,9,58,204,58,147,59,88,60,78,61,123,62,56,63,95,63,188,63,113,64, +215,64,14,65,104,65,90,65,245,64,94,65,146,66,101,67,179,67,253,67,6,68,204,67,190,67,140,67,31,67,131,67, +207,68,167,69,212,69,37,70,73,70,239,69,236,69,54,70,175,69,157,68,253,67,151,67,69,67,159,67,51,68,32,68, +247,67,54,68,219,67,117,66,234,64,170,63,172,62,39,62,157,61,99,60,75,59,37,59,11,59,74,58,109,57,81,56, +101,54,98,52,3,51,163,49,2,48,208,46,221,45,131,44,18,43,219,41,129,40,22,39,221,37,89,36,102,34,193,32, +143,31,90,30,70,29,105,28,48,27,164,25,94,24,13,23,34,21,20,19,71,17,105,15,166,13,126,12,87,11,113,9, +77,7,146,5,227,3,218,1,156,255,62,253,234,250,248,248,48,247,254,244,163,242,224,240,178,239,149,238,70,237,118,235, +217,232,3,230,217,227,33,226,12,224,175,221,169,219,6,218,130,216,15,215,144,213,246,211,124,210,22,209,81,207,79,205, +159,203,29,202,103,200,195,198,93,197,187,195,251,193,249,192,189,192,111,192,178,191,184,190,158,189,124,188,68,187,167,185, +195,183,40,182,241,180,254,179,133,179,85,179,212,178,56,178,254,177,138,177,90,176,39,175,59,174,240,172,173,171,113,171, +187,171,169,171,201,171,130,172,246,172,203,172,120,172,216,171,242,170,202,170,150,171,52,172,82,172,179,172,109,173,28,174, +211,174,105,175,84,175,252,174,71,175,9,176,141,176,0,177,252,177,159,179,154,181,123,183,183,184,58,185,131,185,4,186, +188,186,127,187,43,188,221,188,54,190,191,192,240,195,121,198,185,199,77,200,34,201,93,202,103,203,217,203,68,204,166,205, +6,208,123,210,174,212,22,215,165,217,229,219,45,222,204,224,201,226,106,227,206,227,59,229,102,231,142,233,152,235,164,237, +254,239,255,242,11,246,10,248,35,249,77,250,175,251,0,253,99,254,229,255,142,1,212,3,164,6,22,9,255,10,25,13, +117,15,206,17,120,20,62,23,41,25,107,26,90,28,77,31,100,34,254,36,18,39,26,41,180,43,128,46,122,48,240,49, +21,52,216,54,82,57,111,59,121,61,111,63,110,65,94,67,185,68,183,69,6,71,52,72,195,72,174,73,126,75,17,77, +245,77,251,78,6,80,104,80,178,80,58,81,242,80,167,79,174,78,116,78,57,78,255,77,52,78,114,78,78,78,18,78, +196,77,247,76,194,75,179,74,252,73,102,73,167,72,146,71,92,70,138,69,70,69,10,69,52,68,206,66,124,65,174,64, +30,64,1,63,183,60,159,57,239,54,44,53,116,51,5,49,91,46,254,43,180,41,80,39,185,36,160,33,149,30,209,28, +209,27,172,25,43,22,130,18,214,14,25,11,118,8,46,7,206,5,219,3,77,2,94,1,161,0,253,255,192,254,8,252, +182,248,57,246,78,244,83,242,219,240,39,240,142,239,242,238,107,238,73,237,91,235,157,233,120,232,38,231,6,229,22,226, +211,222,111,220,177,219,164,219,171,218,89,216,73,213,62,210,197,207,162,205,10,203,249,199,86,197,159,195,115,194,33,193, +11,191,85,188,39,186,20,185,6,184,1,182,208,179,242,178,217,179,150,181,127,182,207,181,242,180,202,181,213,183,6,185, +207,184,70,184,80,184,103,185,197,187,182,190,33,193,7,195,17,197,40,199,197,200,203,201,76,202,165,202,163,203,69,205, +62,206,45,206,167,206,220,208,222,211,20,214,215,214,156,214,129,214,59,215,14,216,243,215,50,215,164,214,125,214,211,214, +192,215,202,216,188,217,50,219,5,221,249,221,216,221,211,221,190,222,197,224,172,227,63,230,134,231,140,232,155,234,41,237, +178,239,243,242,171,246,120,249,129,251,231,253,119,0,182,2,54,5,12,8,121,10,150,12,226,14,245,16,167,18,185,20, +61,23,112,25,50,27,220,28,125,30,88,32,170,34,219,36,53,38,219,38,38,39,76,39,224,39,50,41,176,42,223,43, +8,45,97,46,158,47,157,48,135,49,139,50,176,51,170,52,20,53,29,53,112,53,122,54,70,56,164,58,15,61,26,63, +10,65,88,67,197,69,161,71,161,72,55,73,38,74,164,75,44,77,96,78,148,79,252,80,49,82,220,82,32,83,96,83, +242,83,163,84,195,84,30,84,69,83,120,82,149,81,237,80,198,80,148,80,248,79,74,79,154,78,163,77,197,76,124,76, +118,76,47,76,124,75,65,74,205,72,233,71,157,71,40,71,95,70,166,69,237,68,31,68,162,67,161,67,198,67,194,67, +53,67,218,65,65,64,60,63,186,62,59,62,156,61,169,60,18,59,31,57,106,55,59,54,158,53,68,53,94,52,120,50, +5,48,122,45,238,42,158,40,163,38,138,36,247,33,9,31,16,28,158,25,30,24,250,22,78,21,68,19,69,17,221,14, +227,11,56,9,82,7,158,5,176,3,156,1,139,255,240,253,54,253,230,252,14,252,90,250,25,248,206,245,243,243,130,242, +234,240,3,239,45,237,122,235,168,233,201,231,20,230,113,228,190,226,2,225,35,223,225,220,75,218,214,215,220,213,8,212, +205,209,83,207,52,205,112,203,176,201,4,200,115,198,175,196,226,194,116,193,49,192,241,190,40,190,179,189,194,188,128,187, +182,186,38,186,113,185,56,185,160,185,184,185,86,185,57,185,110,185,199,185,172,186,218,187,70,188,252,187,235,187,250,187, +137,187,240,186,231,186,101,187,4,188,110,188,121,188,129,188,0,189,145,189,126,189,225,188,51,188,135,187,246,186,204,186, +246,186,56,187,161,187,29,188,75,188,70,188,162,188,114,189,88,190,53,191,3,192,143,192,245,192,174,193,235,194,135,196, +107,198,101,200,32,202,195,203,206,205,63,208,155,210,186,212,200,214,215,216,218,218,195,220,148,222,165,224,54,227,174,229, +106,231,245,232,20,235,106,237,81,239,225,240,76,242,154,243,36,245,226,246,19,248,194,248,229,249,128,251,203,252,236,253, +102,255,224,0,32,2,153,3,70,5,203,6,76,8,196,9,218,10,16,12,7,14,3,16,58,17,86,18,29,20,93,22, +194,24,247,26,148,28,17,30,68,32,199,34,214,36,173,38,121,40,225,41,110,43,196,45,240,47,27,49,62,50,35,52, +24,54,174,55,46,57,122,58,127,59,182,60,12,62,214,62,26,63,71,63,121,63,213,63,104,64,192,64,218,64,102,65, +96,66,5,67,54,67,55,67,245,66,145,66,111,66,85,66,241,65,161,65,171,65,203,65,235,65,26,66,47,66,65,66, +127,66,126,66,2,66,176,65,209,65,192,65,62,65,197,64,139,64,120,64,123,64,86,64,255,63,245,63,57,64,23,64, +107,63,167,62,196,61,188,60,44,60,30,60,179,59,168,58,157,57,204,56,242,55,19,55,70,54,90,53,55,52,6,51, +225,49,188,48,131,47,56,46,237,44,153,43,44,42,207,40,131,39,246,37,74,36,13,35,18,34,173,32,18,31,205,29, +164,28,89,27,55,26,245,24,226,22,107,20,131,18,30,17,207,15,172,14,166,13,132,12,133,11,167,10,42,9,226,6, +159,4,198,2,248,0,3,255,254,252,25,251,205,249,38,249,45,248,58,246,253,243,74,242,221,240,33,239,254,236,174,234, +127,232,216,230,195,229,186,228,48,227,45,225,52,223,173,221,104,220,195,218,115,216,11,214,119,212,199,211,248,210,82,209, +92,207,224,205,198,204,134,203,231,201,238,199,228,197,102,196,154,195,207,194,134,193,36,192,40,191,133,190,193,189,85,188, +53,186,35,184,219,182,53,182,160,181,216,180,215,179,231,178,140,178,164,178,68,178,8,177,156,175,168,174,14,174,112,173, +179,172,18,172,231,171,39,172,87,172,47,172,246,171,12,172,122,172,226,172,202,172,36,172,111,171,28,171,77,171,15,172, +51,173,55,174,243,174,199,175,183,176,79,177,137,177,216,177,100,178,235,178,61,179,159,179,169,180,142,182,143,184,207,185, +100,186,2,187,18,188,113,189,179,190,127,191,24,192,30,193,167,194,93,196,50,198,33,200,214,201,58,203,162,204,30,206, +107,207,123,208,147,209,45,211,151,213,64,216,49,218,143,219,110,221,248,223,64,226,224,227,68,229,192,230,121,232,175,234, +76,237,195,239,183,241,119,243,153,245,55,248,192,250,179,252,70,254,6,0,43,2,105,4,77,6,231,7,219,9,102,12, +254,14,100,17,226,19,62,22,19,24,247,25,114,28,194,30,96,32,51,34,219,36,201,39,159,42,102,45,212,47,243,49, +83,52,193,54,127,56,177,57,0,59,141,60,84,62,95,64,99,66,52,68,0,70,154,71,183,72,190,73,238,74,192,75, +27,76,152,76,65,77,198,77,67,78,186,78,254,78,117,79,84,80,220,80,195,80,174,80,170,80,48,80,127,79,248,78, +70,78,99,77,227,76,189,76,125,76,38,76,192,75,23,75,59,74,41,73,166,71,11,70,233,68,239,67,167,66,111,65, +142,64,166,63,127,62,250,60,214,58,94,56,12,54,162,51,6,49,205,46,178,44,210,41,154,38,224,35,13,33,163,29, +81,26,17,23,43,19,99,15,241,12,69,11,87,9,43,7,171,4,164,1,185,254,59,252,139,249,251,246,135,245,165,244, +87,243,39,242,140,241,159,240,47,239,39,238,80,237,153,235,56,233,48,231,207,229,24,229,251,228,168,228,51,227,229,224, +194,222,65,221,8,220,111,218,48,216,200,213,230,211,138,210,49,209,131,207,95,205,175,202,156,199,143,196,206,193,81,191, +228,188,148,186,223,184,6,184,52,183,85,181,190,178,238,176,110,176,10,176,135,174,75,172,0,171,220,171,80,174,109,176, +221,176,124,176,89,177,8,180,216,182,244,183,149,183,127,183,213,184,40,187,133,189,154,191,133,193,132,195,1,198,218,200, +190,202,223,202,190,202,57,204,177,206,29,208,233,207,48,207,119,207,182,209,9,213,235,214,122,214,188,213,71,214,81,215, +238,215,65,216,85,216,75,216,230,216,35,218,249,218,99,219,112,220,75,222,44,224,149,225,131,226,130,227,140,229,171,232, +154,235,199,237,243,239,127,242,25,245,203,247,181,250,118,253,232,255,102,2,250,4,111,7,243,9,183,12,144,15,100,18, +51,21,165,23,80,25,71,26,39,27,140,28,98,30,11,32,121,33,85,35,200,37,17,40,184,41,5,43,52,44,32,45, +188,45,69,46,1,47,247,47,241,48,236,49,72,51,62,53,114,55,73,57,119,58,68,59,76,60,172,61,208,62,152,63, +171,64,86,66,75,68,98,70,109,72,8,74,146,75,211,77,63,80,162,81,64,82,36,83,103,84,191,85,32,87,8,88, +14,88,223,87,34,88,109,88,103,88,62,88,224,87,75,87,248,86,202,86,246,85,119,84,45,83,143,82,76,82,186,81, +82,80,116,78,32,77,145,76,61,76,238,75,148,75,234,74,37,74,176,73,53,73,99,72,164,71,237,70,185,69,124,68, +228,67,89,67,83,66,145,65,126,65,100,65,234,64,61,64,19,63,71,61,117,59,5,58,186,56,69,55,117,53,79,51, +74,49,195,47,117,46,2,45,49,43,199,40,253,37,93,35,203,32,219,29,234,26,71,24,107,21,48,18,66,15,178,12, +7,10,111,7,65,5,54,3,19,1,209,254,48,252,96,249,22,247,83,245,122,243,140,241,200,239,251,237,80,236,53,235, +48,234,154,232,225,230,136,229,45,228,121,226,153,224,158,222,173,220,49,219,26,218,213,216,41,215,62,213,67,211,122,209, +226,207,16,206,13,204,100,202,3,201,106,199,176,197,17,196,99,194,192,192,103,191,235,189,246,187,33,186,240,184,23,184, +91,183,227,182,145,182,41,182,152,181,187,180,184,179,51,179,67,179,43,179,147,178,254,177,252,177,209,178,98,180,221,181, +143,182,226,182,112,183,243,183,22,184,22,184,15,184,254,183,92,184,111,185,157,186,99,187,5,188,207,188,176,189,137,190, +32,191,40,191,217,190,209,190,57,191,192,191,93,192,86,193,178,194,19,196,27,197,199,197,117,198,98,199,66,200,205,200, +108,201,204,202,214,204,199,206,74,208,218,209,240,211,84,214,108,216,222,217,228,218,42,220,62,222,237,224,125,227,159,229, +188,231,32,234,125,236,123,238,58,240,224,241,95,243,231,244,202,246,184,248,40,250,133,251,153,253,1,0,184,1,186,2, +161,3,127,4,99,5,190,6,68,8,28,9,158,9,248,10,21,13,215,14,5,16,77,17,253,18,213,20,112,22,129,23, +37,24,246,24,107,26,113,28,180,30,243,32,18,35,14,37,213,38,107,40,20,42,224,43,120,45,221,46,129,48,109,50, +78,52,51,54,38,56,209,57,51,59,155,60,205,61,140,62,70,63,49,64,232,64,154,65,187,66,215,67,102,68,215,68, +107,69,167,69,114,69,13,69,86,68,141,67,114,67,220,67,255,67,249,67,43,68,38,68,165,67,3,67,43,66,3,65, +70,64,79,64,100,64,29,64,209,63,163,63,172,63,25,64,53,64,75,63,70,62,69,62,167,62,135,62,43,62,202,61, +66,61,57,61,5,62,118,62,165,61,95,60,136,59,26,59,227,58,142,58,160,57,137,56,39,56,255,55,0,55,110,53, +26,52,222,50,121,49,65,48,20,47,109,45,151,43,54,42,36,41,250,39,180,38,54,37,101,35,180,33,99,32,239,30, +22,29,86,27,225,25,102,24,243,22,219,21,246,20,234,19,178,18,84,17,196,15,47,14,224,12,218,11,210,10,118,9, +212,7,97,6,61,5,237,3,101,2,64,1,106,0,25,255,77,253,148,251,193,249,162,247,210,245,99,244,131,242,84,240, +232,238,54,238,54,237,140,235,138,233,123,231,171,229,27,228,110,226,175,224,19,223,51,221,22,219,197,217,45,217,199,215, +129,213,231,211,49,211,61,210,193,208,19,207,87,205,44,204,226,203,71,203,155,201,23,200,117,199,192,198,176,197,229,196, +247,195,104,194,43,193,197,192,57,192,32,191,41,190,80,189,45,188,42,187,125,186,159,185,161,184,247,183,52,183,238,181, +227,180,140,180,54,180,135,179,245,178,127,178,202,177,45,177,1,177,207,176,86,176,32,176,89,176,131,176,150,176,232,176, +49,177,27,177,49,177,220,177,140,178,225,178,95,179,87,180,98,181,60,182,7,183,220,183,221,184,31,186,64,187,241,187, +182,188,9,190,104,191,43,192,164,192,138,193,245,194,120,196,207,197,12,199,57,200,35,201,216,201,221,202,91,204,194,205, +212,206,27,208,215,209,162,211,67,213,214,214,79,216,184,217,98,219,80,221,33,223,175,224,58,226,36,228,122,230,176,232, +74,234,196,235,220,237,89,240,144,242,118,244,61,246,227,247,165,249,198,251,18,254,95,0,184,2,232,4,200,6,163,8, +115,10,246,11,192,13,100,16,15,19,0,21,5,23,188,25,97,28,119,30,74,32,188,33,185,34,10,36,34,38,131,40, +5,43,220,45,142,48,150,50,85,52,34,54,201,55,72,57,185,58,195,59,103,60,123,61,106,63,151,65,112,67,6,69, +123,70,191,71,214,72,190,73,57,74,68,74,106,74,15,75,176,75,156,75,53,75,136,75,227,76,138,78,139,79,123,79, +211,78,105,78,95,78,35,78,136,77,217,76,53,76,200,75,213,75,250,75,177,75,78,75,13,75,43,74,111,72,221,70, +242,69,28,69,23,68,230,66,75,65,151,63,107,62,107,61,237,59,39,58,65,56,221,53,76,51,2,49,141,46,220,43, +201,41,26,40,174,37,159,34,145,31,72,28,252,24,99,22,157,19,163,15,16,12,166,10,60,10,17,9,56,7,250,4, +46,2,111,255,41,253,189,250,80,248,220,246,27,246,45,245,102,244,255,243,52,243,29,242,138,241,205,240,167,238,129,235, +144,232,90,230,43,229,178,228,125,227,254,224,191,222,215,221,97,221,82,220,98,218,86,215,155,211,143,208,158,206,190,204, +112,202,58,200,88,198,181,196,91,195,205,193,96,191,159,188,159,186,92,185,40,184,185,182,19,181,166,179,86,179,244,179, +214,179,83,178,218,176,190,176,210,177,75,179,58,180,7,180,147,179,116,180,135,182,27,184,95,184,27,184,96,184,141,185, +7,187,240,187,110,188,93,189,231,190,173,192,110,194,134,195,143,195,214,195,127,197,6,199,155,198,65,197,242,196,16,198, +59,200,211,202,112,204,168,204,255,204,58,206,60,207,128,207,178,207,4,208,126,208,167,209,52,211,96,212,180,213,13,216, +183,218,168,220,15,222,126,223,70,225,157,227,29,230,42,232,67,234,21,237,224,239,210,241,159,243,36,246,24,249,247,251, +129,254,122,0,10,2,216,3,43,6,159,8,204,10,125,12,210,13,65,15,4,17,226,18,183,20,129,22,60,24,37,26, +100,28,112,30,227,31,68,33,232,34,86,36,115,37,186,38,62,40,213,41,167,43,179,45,193,47,197,49,119,51,119,52, +95,53,19,55,53,57,245,58,122,60,19,62,167,63,108,65,122,67,31,69,18,70,25,71,195,72,248,74,88,77,7,79, +128,79,236,79,126,81,55,83,171,83,85,83,96,83,6,84,254,84,154,85,23,85,28,84,45,84,59,85,239,85,206,85, +5,85,146,83,21,82,124,81,105,81,208,80,194,79,15,79,13,79,112,79,135,79,209,78,167,77,169,76,205,75,213,74, +190,73,115,72,45,71,185,70,24,71,42,71,111,70,103,69,46,68,178,66,110,65,122,64,64,63,196,61,120,60,47,59, +169,57,76,56,78,55,79,54,225,52,175,50,207,47,21,45,4,43,23,41,6,39,42,37,59,35,172,32,227,29,112,27, +4,25,99,22,189,19,244,16,230,13,221,10,227,7,1,5,228,2,155,1,242,255,85,253,155,250,63,248,244,245,195,243, +193,241,154,239,108,237,165,235,0,234,41,232,129,230,50,229,203,227,26,226,44,224,225,221,129,219,154,217,251,215,23,214, +20,212,84,210,199,208,70,207,199,205,23,204,26,202,237,199,154,197,39,195,199,192,147,190,167,188,62,187,26,186,172,184, +19,183,192,181,102,180,161,178,197,176,12,175,84,173,0,172,135,171,120,171,63,171,244,170,192,170,168,170,210,170,243,170, +119,170,195,169,193,169,89,170,29,171,69,172,180,173,182,174,122,175,203,176,100,178,88,179,141,179,135,179,207,179,237,180, +207,182,127,184,108,185,31,186,62,187,200,188,73,190,44,191,53,191,8,191,129,191,167,192,224,193,207,194,168,195,228,196, +149,198,23,200,201,200,240,200,73,201,61,202,217,203,203,205,104,207,106,208,116,209,62,211,190,213,76,216,78,218,200,219, +95,221,110,223,145,225,134,227,161,229,253,231,107,234,9,237,202,239,40,242,44,244,136,246,48,249,103,251,13,253,135,254, +251,255,175,1,252,3,128,6,137,8,29,10,145,11,251,12,130,14,57,16,188,17,221,18,15,20,113,21,151,22,138,23, +203,24,100,26,4,28,151,29,29,31,121,32,177,33,210,34,213,35,229,36,82,38,30,40,247,41,140,43,184,44,190,45, +46,47,30,49,227,50,10,52,244,52,47,54,201,55,123,57,242,58,249,59,192,60,179,61,242,62,54,64,70,65,41,66, +236,66,160,67,105,68,55,69,163,69,157,69,182,69,60,70,189,70,251,70,74,71,157,71,121,71,17,71,248,70,249,70, +147,70,3,70,163,69,84,69,43,69,100,69,140,69,42,69,173,68,131,68,78,68,183,67,213,66,185,65,193,64,153,64, +17,65,81,65,77,65,107,65,75,65,149,64,191,63,245,62,210,61,161,60,231,59,42,59,11,58,70,57,48,57,246,56, +59,56,111,55,117,54,208,52,217,50,44,49,192,47,89,46,252,44,171,43,104,42,83,41,75,40,3,39,133,37,233,35, +6,34,254,31,87,30,35,29,218,27,84,26,255,24,14,24,45,23,249,21,95,20,146,18,246,16,238,15,108,15,203,14, +131,13,227,11,144,10,133,9,73,8,226,6,158,5,101,4,254,2,132,1,3,0,93,254,188,252,95,251,29,250,183,248, +52,247,122,245,84,243,255,240,231,238,15,237,79,235,167,233,237,231,13,230,101,228,30,227,177,225,208,223,222,221,17,220, +76,218,179,216,112,215,51,214,197,212,77,211,194,209,27,208,199,206,241,205,16,205,255,203,47,203,132,202,103,201,12,200, +7,199,15,198,167,196,61,195,101,194,213,193,14,193,26,192,46,191,88,190,172,189,54,189,192,188,16,188,39,187,14,186, +183,184,70,183,46,182,179,181,152,181,139,181,101,181,247,180,56,180,148,179,75,179,240,178,64,178,182,177,149,177,134,177, +134,177,199,177,251,177,12,178,151,178,142,179,4,180,0,180,87,180,234,180,71,181,239,181,2,183,153,183,172,183,70,184, +122,185,156,186,171,187,148,188,215,188,255,188,3,190,93,191,32,192,184,192,149,193,100,194,109,195,5,197,51,198,120,198, +32,199,200,200,100,202,151,203,226,204,248,205,190,206,97,208,17,211,85,213,178,214,50,216,33,218,245,219,158,221,47,223, +155,224,105,226,8,229,193,231,222,233,168,235,130,237,122,239,191,241,23,244,173,245,134,246,189,247,181,249,184,251,90,253, +195,254,24,0,150,1,129,3,120,5,202,6,150,7,154,8,52,10,43,12,14,14,112,15,98,16,155,17,165,19,10,22, +255,23,137,25,65,27,98,29,193,31,46,34,86,36,2,38,170,39,229,41,78,44,43,46,196,47,193,49,250,51,19,54, +53,56,92,58,45,60,169,61,19,63,94,64,164,65,49,67,203,68,2,70,15,71,43,72,229,72,30,73,115,73,16,74, +133,74,204,74,51,75,158,75,213,75,221,75,179,75,105,75,52,75,232,74,44,74,91,73,251,72,182,72,27,72,135,71, +58,71,209,70,69,70,237,69,135,69,199,68,56,68,19,68,120,67,249,65,89,64,31,63,34,62,137,61,85,61,161,60, +7,59,112,57,67,56,183,54,171,52,223,50,31,49,150,46,98,43,24,40,209,36,217,33,124,31,58,29,232,26,88,25, +62,24,235,21,47,18,122,14,28,11,152,7,144,4,132,2,179,0,254,254,66,254,45,254,158,253,123,252,231,250,153,248, +52,246,197,244,190,243,11,242,43,240,15,239,144,238,54,238,172,237,134,236,244,234,168,233,95,232,65,230,129,227,219,224, +134,222,218,220,68,220,247,219,137,218,230,215,17,213,137,210,0,208,14,205,190,201,183,198,166,196,150,195,26,195,123,194, +231,192,137,190,172,188,182,187,97,186,223,183,43,181,212,179,132,180,85,182,88,183,10,183,86,183,150,185,74,188,102,189, +160,188,222,186,170,185,143,186,63,189,214,191,163,193,93,195,111,197,31,200,107,203,171,205,128,205,158,204,9,205,193,205, +116,205,20,205,168,205,57,207,1,210,51,213,158,214,24,214,212,213,82,214,45,214,88,213,139,212,149,211,254,210,49,212, +212,214,67,217,18,219,128,220,61,221,128,221,40,222,100,223,18,225,101,227,0,230,57,232,115,234,83,237,108,240,95,243, +157,246,26,250,247,252,228,254,131,0,136,2,50,5,53,8,40,11,25,14,58,17,50,20,173,22,217,24,175,26,191,27, +22,28,122,28,183,29,24,32,10,35,129,37,42,39,162,40,28,42,8,43,46,43,21,43,116,43,137,44,172,45,27,46, +104,46,184,47,179,49,103,51,44,53,82,55,229,56,153,57,96,58,50,59,83,59,124,59,192,60,170,62,188,64,113,67, +156,70,111,73,229,75,224,77,105,78,188,77,138,77,90,78,87,79,76,80,92,81,3,82,83,82,47,83,94,84,171,84, +245,83,11,83,29,82,232,80,104,79,168,77,251,75,53,75,122,75,165,75,255,74,39,74,137,73,147,72,10,71,115,69, +7,68,156,66,97,65,150,64,38,64,41,64,197,64,60,65,162,64,73,63,22,62,14,61,219,59,176,58,195,57,255,56, +146,56,157,56,173,56,94,56,165,55,64,54,39,52,241,49,194,47,23,45,80,42,128,40,128,39,69,38,140,36,124,34, +229,31,3,29,94,26,167,23,93,20,227,16,147,13,59,10,17,7,133,4,92,2,85,0,185,254,69,253,48,251,125,248, +191,245,249,242,55,240,13,238,167,236,132,235,107,234,143,233,0,233,141,232,207,231,76,230,51,228,113,226,135,225,7,225, +80,224,23,223,127,221,245,219,186,218,159,217,126,216,92,215,12,214,96,212,102,210,13,208,79,205,181,202,169,200,204,198, +230,196,92,195,20,194,87,192,20,190,208,187,149,185,52,183,249,180,62,179,1,178,52,177,219,176,210,176,191,176,48,176, +39,175,105,174,138,174,16,175,73,175,44,175,251,174,38,175,106,176,173,178,171,180,224,181,22,183,138,184,183,185,182,186, +195,187,114,188,232,188,10,190,172,191,231,192,250,193,141,195,53,197,125,198,161,199,115,200,138,200,127,200,0,201,154,201, +202,201,227,201,47,202,164,202,120,203,170,204,163,205,31,206,138,206,42,207,229,207,169,208,95,209,254,209,228,210,116,212, +107,214,73,216,15,218,41,220,193,222,126,225,228,227,223,229,182,231,167,233,205,235,70,238,246,240,140,243,18,246,222,248, +191,251,20,254,192,255,50,1,192,2,135,4,141,6,157,8,117,10,30,12,186,13,60,15,129,16,123,17,69,18,49,19, +99,20,126,21,77,22,76,23,211,24,120,26,231,27,71,29,120,30,54,31,245,31,45,33,81,34,212,34,83,35,153,36, +120,38,116,40,94,42,252,43,62,45,154,46,67,48,182,49,162,50,84,51,23,52,20,53,124,54,3,56,6,57,180,57, +205,58,53,60,52,61,188,61,23,62,49,62,28,62,29,62,235,61,69,61,236,60,131,61,103,62,219,62,16,63,57,63, +24,63,224,62,219,62,164,62,3,62,165,61,221,61,249,61,164,61,126,61,213,61,60,62,125,62,165,62,107,62,171,61, +245,60,190,60,170,60,78,60,214,59,133,59,76,59,29,59,241,58,157,58,19,58,118,57,176,56,168,55,185,54,45,54, +172,53,223,52,249,51,15,51,226,49,121,48,22,47,176,45,67,44,22,43,40,42,18,41,171,39,45,38,205,36,171,35, +182,34,161,33,88,32,37,31,17,30,234,28,204,27,218,26,232,25,255,24,90,24,195,23,252,22,87,22,211,21,211,20, +96,19,45,18,53,17,14,16,1,15,76,14,117,13,100,12,158,11,13,11,35,10,236,8,174,7,64,6,143,4,220,2, +69,1,216,255,176,254,158,253,86,252,216,250,52,249,114,247,228,245,133,244,147,242,218,239,99,237,216,235,144,234,246,232, +86,231,238,229,133,228,16,227,175,225,64,224,147,222,205,220,60,219,238,217,162,216,28,215,148,213,141,212,45,212,234,211, +2,211,73,209,80,207,164,205,90,204,95,203,149,202,135,201,26,200,21,199,187,198,246,197,59,196,147,194,164,193,223,192, +11,192,78,191,52,190,176,188,157,187,240,186,205,185,125,184,193,183,36,183,55,182,110,181,145,180,255,178,129,177,3,177, +203,176,59,176,217,175,151,175,245,174,128,174,130,174,244,173,200,172,107,172,14,173,154,173,234,173,88,174,123,174,61,174, +48,174,59,174,33,174,111,174,61,175,185,175,228,175,117,176,29,177,39,177,10,177,119,177,65,178,42,179,59,180,20,181, +85,181,111,181,253,181,239,182,222,183,177,184,180,185,63,187,44,189,209,190,229,191,242,192,121,194,67,196,221,197,64,199, +154,200,241,201,96,203,70,205,171,207,250,209,225,211,219,213,61,216,157,218,159,220,92,222,226,223,87,225,41,227,83,229, +89,231,106,233,30,236,30,239,140,241,78,243,209,244,93,246,36,248,5,250,149,251,254,252,215,254,226,0,151,2,129,4, +29,7,134,9,246,10,31,12,186,13,150,15,152,17,231,19,41,22,245,23,180,25,5,28,215,30,159,33,251,35,26,38, +127,40,57,43,204,45,25,48,127,50,255,52,64,55,82,57,140,59,206,61,204,63,200,65,53,68,206,70,190,72,188,73, +126,74,223,75,1,78,61,80,185,81,63,82,162,82,152,83,156,84,244,84,15,85,129,85,240,85,23,86,71,86,107,86, +54,86,16,86,43,86,227,85,29,85,128,84,12,84,116,83,28,83,222,82,185,81,235,79,223,78,196,78,188,78,144,78, +53,78,67,77,15,76,29,75,223,73,247,71,80,70,74,69,45,68,231,66,230,65,194,64,34,63,153,61,46,60,29,58, +100,55,188,52,58,50,121,47,75,44,189,40,51,37,50,34,169,31,96,29,174,27,116,26,107,24,205,20,102,16,71,12, +166,8,93,5,132,2,111,0,67,255,140,254,164,253,119,252,43,251,126,249,75,247,209,244,51,242,166,239,188,237,136,236, +161,235,20,235,191,234,184,233,243,231,169,230,209,229,1,228,21,225,6,222,3,219,75,216,219,214,141,214,17,214,246,212, +86,211,219,208,212,205,1,203,227,199,1,196,156,192,171,190,127,189,178,188,77,188,96,187,135,185,3,184,235,182,158,180, +25,177,59,174,245,172,49,173,178,174,18,176,251,175,207,175,156,177,81,180,93,181,56,180,59,178,5,177,191,177,244,179, +227,181,30,183,233,184,171,187,122,190,187,192,39,194,117,194,90,194,236,194,164,195,45,195,13,194,75,194,209,196,154,200, +222,203,117,205,151,205,115,205,186,205,238,205,117,205,167,204,112,204,77,205,27,207,121,209,222,211,196,213,34,215,89,216, +120,217,90,218,102,219,48,221,149,223,17,226,131,228,243,230,97,233,32,236,109,239,245,242,102,246,130,249,154,251,123,252, +125,253,235,255,74,3,166,6,241,9,33,13,218,15,81,18,165,20,30,22,154,22,61,23,158,24,71,26,66,28,233,30, +160,33,202,35,214,37,211,39,216,40,228,40,66,41,115,42,174,43,107,44,222,44,104,45,138,46,153,48,26,51,85,53, +71,55,4,57,40,58,173,58,18,59,100,59,176,59,202,60,0,63,56,65,240,66,55,69,119,72,125,75,112,77,105,78, +116,78,250,77,27,78,12,79,229,79,144,80,168,81,206,82,87,83,157,83,232,83,211,83,107,83,254,82,19,82,126,80, +40,79,127,78,244,77,98,77,241,76,58,76,58,75,188,74,180,74,42,74,5,73,226,71,189,70,95,69,30,68,69,67, +234,66,50,67,180,67,115,67,35,66,102,64,197,62,147,61,5,61,194,60,74,60,225,59,220,59,190,59,244,58,151,57, +236,55,38,54,123,52,197,50,217,48,58,47,66,46,43,45,87,43,88,41,168,39,217,37,182,35,147,33,87,31,150,28, +83,25,220,21,130,18,174,15,152,13,5,12,174,10,92,9,181,7,145,5,39,3,137,0,172,253,227,250,139,248,147,246, +223,244,110,243,2,242,131,240,75,239,84,238,237,236,4,235,97,233,64,232,13,231,112,229,117,227,24,225,173,222,243,220, +45,220,200,219,65,219,146,218,189,217,134,216,180,214,80,212,185,209,108,207,156,205,18,204,151,202,77,201,118,200,235,199, +15,199,123,197,133,195,193,193,83,192,3,191,188,189,173,188,6,188,171,187,50,187,118,186,236,185,221,185,211,185,124,185, +30,185,201,184,78,184,58,184,49,185,137,186,52,187,99,187,202,187,81,188,156,188,178,188,144,188,82,188,142,188,139,189, +213,190,26,192,122,193,217,194,237,195,150,196,156,196,1,196,135,195,205,195,122,196,37,197,3,198,41,199,122,200,4,202, +109,203,248,203,203,203,190,203,245,203,60,204,229,204,244,205,232,206,245,207,177,209,190,211,120,213,17,215,215,216,175,218, +147,220,49,222,6,223,187,223,122,225,227,227,241,229,253,231,146,234,36,237,139,239,44,242,99,244,130,245,144,246,124,248, +137,250,59,252,42,254,73,0,254,1,135,3,61,5,179,6,223,7,106,9,119,11,137,13,74,15,155,16,160,17,200,18, +26,20,54,21,54,22,97,23,143,24,204,25,119,27,61,29,156,30,255,31,191,33,72,35,101,36,164,37,0,39,26,40, +46,41,110,42,166,43,19,45,249,46,192,48,13,50,102,51,231,52,6,54,206,54,138,55,12,56,151,56,226,57,146,59, +155,60,247,60,90,61,233,61,106,62,193,62,230,62,24,63,169,63,115,64,48,65,216,65,44,66,240,65,167,65,179,65, +127,65,224,64,162,64,243,64,68,65,174,65,98,66,184,66,122,66,80,66,43,66,107,65,102,64,200,63,75,63,160,62, +35,62,249,61,252,61,68,62,171,62,139,62,185,61,181,60,189,59,162,58,67,57,183,55,108,54,218,53,200,53,126,53, +193,52,195,51,152,50,102,49,75,48,247,46,45,45,94,43,0,42,241,40,234,39,199,38,139,37,150,36,38,36,161,35, +94,34,173,32,20,31,137,29,248,27,140,26,85,25,123,24,36,24,210,23,229,22,165,21,154,20,142,19,46,18,171,16, +62,15,247,13,250,12,71,12,171,11,7,11,62,10,63,9,82,8,134,7,71,6,118,4,198,2,100,1,218,255,70,254, +2,253,211,251,186,250,21,250,83,249,154,247,95,245,112,243,150,241,153,239,219,237,70,236,141,234,20,233,6,232,210,230, +120,229,118,228,110,227,209,225,255,223,78,222,123,220,166,218,66,217,35,216,32,215,148,214,92,214,161,213,38,212,130,210, +16,209,160,207,253,205,105,204,123,203,60,203,227,202,9,202,34,201,88,200,83,199,63,198,84,197,247,195,241,193,54,192, +68,191,143,190,245,189,189,189,124,189,211,188,40,188,135,187,85,186,146,184,226,182,125,181,109,180,246,179,1,180,47,180, +123,180,205,180,145,180,156,179,144,178,227,177,133,177,93,177,82,177,44,177,241,176,228,176,31,177,157,177,66,178,192,178, +239,178,36,179,152,179,1,180,37,180,66,180,142,180,6,181,181,181,162,182,144,183,87,184,30,185,3,186,213,186,110,187, +250,187,205,188,25,190,152,191,159,192,209,192,200,192,124,193,242,194,78,196,38,197,227,197,224,198,8,200,81,201,202,202, +79,204,176,205,247,206,61,208,145,209,1,211,141,212,43,214,240,215,214,217,163,219,99,221,128,223,24,226,176,228,199,230, +86,232,196,233,145,235,184,237,182,239,130,241,167,243,44,246,102,248,52,250,38,252,85,254,98,0,58,2,254,3,161,5, +61,7,26,9,53,11,83,13,95,15,61,17,205,18,62,20,222,21,190,23,223,25,47,28,74,30,3,32,222,33,53,36, +140,38,112,40,38,42,241,43,199,45,211,47,55,50,148,52,170,54,210,56,50,59,118,61,127,63,109,65,39,67,198,68, +183,70,215,72,125,74,172,75,246,76,75,78,98,79,122,80,131,81,245,81,42,82,11,83,40,84,120,84,109,84,239,84, +98,85,247,84,69,84,219,83,88,83,188,82,143,82,166,82,137,82,81,82,4,82,94,81,163,80,27,80,55,79,155,77, +5,76,16,75,127,74,43,74,10,74,149,73,138,72,107,71,104,70,252,68,18,67,50,65,151,63,50,62,19,61,2,60, +126,58,145,56,203,54,57,53,38,51,42,48,194,44,160,41,223,38,44,36,97,33,134,30,171,27,0,25,199,22,241,20, +22,19,166,16,53,13,29,9,133,5,246,2,194,0,159,254,78,253,206,252,28,252,18,251,51,250,254,248,202,246,91,244, +121,242,146,240,65,238,32,236,142,234,145,233,112,233,175,233,225,232,200,230,170,228,255,226,3,225,92,222,64,219,210,215, +200,212,47,211,203,210,67,210,244,208,31,207,231,204,70,202,53,199,103,195,15,191,142,187,242,185,118,185,169,184,48,183, +146,181,81,180,146,179,194,178,215,176,211,173,49,171,36,170,118,170,112,171,131,172,71,173,10,174,160,175,166,177,131,178, +223,177,27,177,20,177,171,177,233,178,164,180,36,182,184,183,138,186,22,190,102,192,252,192,249,192,1,193,28,193,76,193, +36,193,143,192,229,192,49,195,83,198,214,200,177,202,231,203,244,203,74,203,234,202,168,202,4,202,171,201,115,202,35,204, +63,206,157,208,248,210,1,213,186,214,38,216,23,217,174,217,115,218,250,219,128,222,161,225,175,228,126,231,126,234,250,237, +185,241,53,245,224,247,141,249,182,250,32,252,82,254,95,1,220,4,65,8,143,11,250,14,251,17,227,19,239,20,203,21, +178,22,238,23,223,25,32,28,28,30,42,32,184,34,66,37,44,39,116,40,50,41,170,41,119,42,152,43,109,44,23,45, +58,46,190,47,91,49,110,51,249,53,41,56,168,57,218,58,220,59,155,60,63,61,187,61,10,62,222,62,229,64,236,67, +89,71,116,74,110,76,81,77,26,78,253,78,79,79,49,79,95,79,200,79,79,80,104,81,172,82,37,83,79,83,42,84, +11,85,206,84,186,83,85,82,165,80,94,79,75,79,164,79,97,79,239,78,221,78,198,78,122,78,16,78,20,77,105,75, +252,73,37,73,58,72,66,71,239,70,13,71,244,70,170,70,31,70,165,68,66,66,6,64,146,62,147,61,150,60,126,59, +105,58,152,57,20,57,133,56,142,55,16,54,239,51,64,49,127,46,24,44,8,42,65,40,220,38,176,37,95,36,199,34, +227,32,135,30,210,27,67,25,200,22,167,19,207,15,58,12,146,9,153,7,42,6,82,5,109,4,204,2,210,0,252,254, +185,252,153,249,87,246,178,243,200,241,199,240,136,240,2,240,158,238,19,237,212,235,105,234,176,232,251,230,42,229,73,227, +223,225,180,224,4,223,47,221,31,220,141,219,166,218,53,217,50,215,208,212,16,211,95,210,123,209,117,207,58,205,203,203, +235,202,49,202,110,201,48,200,72,198,77,196,166,194,34,193,195,191,230,190,144,190,102,190,255,189,32,189,255,187,54,187, +38,187,134,187,157,187,240,186,201,185,238,184,195,184,52,185,52,186,131,187,146,188,82,189,20,190,131,190,65,190,236,189, +243,189,193,189,103,189,213,189,243,190,251,191,73,193,47,195,181,196,133,197,118,198,59,199,193,198,180,197,120,197,240,197, +178,198,45,200,58,202,19,204,210,205,162,207,197,208,11,209,66,209,144,209,149,209,204,209,204,210,99,212,117,214,0,217, +95,219,28,221,151,222,222,223,162,224,91,225,163,226,44,228,184,229,165,231,202,233,184,235,225,237,150,240,7,243,169,244, +235,245,4,247,219,247,246,248,208,250,11,253,67,255,141,1,200,3,165,5,56,7,168,8,208,9,174,10,145,11,169,12, +238,13,90,15,3,17,12,19,89,21,131,23,88,25,243,26,37,28,136,28,82,28,63,28,208,28,56,30,105,32,209,34, +218,36,142,38,29,40,85,41,56,42,9,43,171,43,233,43,29,44,180,44,161,45,211,46,94,48,16,50,165,51,31,53, +81,54,225,54,251,54,47,55,150,55,221,55,234,55,235,55,21,56,180,56,253,57,149,59,182,60,240,60,161,60,112,60, +140,60,194,60,253,60,65,61,116,61,148,61,170,61,146,61,115,61,228,61,241,62,216,63,56,64,82,64,51,64,215,63, +158,63,135,63,39,63,211,62,41,63,163,63,154,63,153,63,250,63,7,64,130,63,246,62,52,62,243,60,22,60,51,60, +102,60,11,60,174,59,102,59,121,58,198,56,217,54,248,52,57,51,213,49,215,48,16,48,84,47,150,46,237,45,61,45, +233,43,176,41,104,39,195,37,75,36,153,34,35,33,48,32,145,31,92,31,132,31,107,31,214,30,35,30,62,29,197,27, +235,25,16,24,116,22,164,21,198,21,223,21,93,21,20,21,105,21,98,21,67,20,91,18,48,16,87,14,74,13,150,12, +119,11,43,10,60,9,76,8,218,6,17,5,47,3,106,1,11,0,200,254,227,252,99,250,230,247,165,245,202,243,154,242, +110,241,74,239,159,236,134,234,237,232,53,231,113,229,193,227,252,225,118,224,134,223,175,222,127,221,53,220,216,218,15,217, +0,215,19,213,87,211,0,210,105,209,45,209,123,208,61,207,216,205,87,204,184,202,47,201,174,199,250,197,70,196,249,194, +8,194,25,193,245,191,175,190,137,189,156,188,147,187,21,186,106,184,64,183,172,182,10,182,219,180,92,179,5,178,10,177, +116,176,22,176,99,175,22,174,236,172,181,172,249,172,190,172,18,172,165,171,153,171,175,171,185,171,97,171,143,170,4,170, +113,170,92,171,243,171,54,172,141,172,8,173,135,173,247,173,60,174,97,174,173,174,67,175,218,175,31,176,47,176,126,176, +52,177,238,177,109,178,238,178,162,179,138,180,207,181,99,183,158,184,39,185,141,185,54,186,231,186,175,187,218,188,53,190, +157,191,117,193,142,195,19,197,30,198,152,199,136,201,60,203,146,204,199,205,254,206,164,208,9,211,174,213,245,215,242,217, +222,219,184,221,178,223,226,225,236,227,175,229,147,231,198,233,18,236,102,238,191,240,243,242,225,244,125,246,201,247,10,249, +119,250,245,251,170,253,248,255,119,2,111,4,61,6,132,8,174,10,5,12,13,13,96,14,222,15,143,17,174,19,242,21, +44,24,167,26,69,29,179,31,70,34,65,37,37,40,154,42,148,44,188,45,90,46,173,47,22,50,182,52,113,55,174,58, +186,61,4,64,128,66,147,69,252,71,66,73,89,74,150,75,164,76,217,77,132,79,64,81,4,83,16,85,224,86,228,87, +140,88,104,89,125,90,179,91,139,92,19,92,127,90,100,89,145,89,93,90,28,91,140,91,112,91,14,91,252,90,223,90, +227,89,72,88,7,87,99,86,22,86,223,85,81,85,46,84,40,83,236,82,200,82,135,81,36,79,172,76,241,74,13,74, +124,73,120,72,214,70,77,69,62,68,235,66,170,64,222,61,232,58,146,55,32,52,48,49,69,46,174,42,151,39,174,38, +78,39,71,39,127,37,10,34,75,29,50,24,154,19,87,15,110,11,1,9,135,8,231,8,95,9,236,9,170,9,152,7, +131,4,146,1,68,254,252,249,236,245,175,243,113,243,46,244,156,244,238,243,162,242,223,241,162,241,133,240,119,237,210,232, +221,227,16,224,48,222,152,221,212,220,91,219,249,217,44,217,254,215,4,213,11,208,80,202,113,197,93,194,190,192,114,191, +245,189,215,188,96,188,181,187,189,185,20,182,100,177,151,173,107,172,7,173,214,172,94,171,192,170,95,172,104,175,29,178, +185,178,139,176,91,173,188,171,235,171,137,172,84,173,226,174,77,177,151,180,94,184,60,187,141,188,144,189,213,190,248,190, +25,189,74,186,62,184,145,184,4,188,251,192,178,196,105,198,53,199,158,199,147,199,6,199,79,197,76,194,234,191,237,191, +129,193,71,195,108,197,5,200,16,202,10,203,40,203,156,202,66,202,94,203,199,205,56,208,75,210,51,212,209,213,177,215, +251,218,104,223,71,227,206,229,128,231,241,232,144,234,219,236,192,239,210,242,46,246,18,250,240,253,214,0,146,2,161,3, +115,4,86,5,209,6,82,9,120,12,139,15,136,18,176,21,79,24,109,25,114,25,160,25,119,26,177,27,6,29,50,30, +33,31,82,32,28,34,26,36,14,38,77,40,167,42,62,44,202,44,241,44,70,45,198,45,75,46,1,47,101,48,186,50, +177,53,207,56,216,59,102,62,242,63,147,64,243,64,101,65,235,65,208,66,91,68,55,70,191,71,140,72,205,72,94,73, +243,74,7,77,69,78,10,78,229,76,235,75,227,75,162,76,34,77,195,76,1,76,127,75,67,75,55,75,128,75,18,76, +155,76,207,76,73,76,194,74,198,72,149,71,203,71,186,72,49,73,156,72,65,71,209,69,244,68,222,68,8,69,153,68, +96,67,244,65,236,64,88,64,236,63,33,63,147,61,136,59,141,57,181,55,249,53,172,52,185,51,133,50,247,48,69,47, +48,45,242,42,148,41,229,40,45,39,254,35,139,32,41,29,135,25,134,22,5,21,77,20,162,19,37,19,105,18,176,16, +81,14,190,11,163,8,90,5,233,2,60,1,197,255,244,254,241,254,171,254,160,253,112,252,79,251,4,250,188,248,98,247, +130,245,103,243,152,241,204,239,227,237,150,236,18,236,174,235,9,235,238,233,0,232,167,229,173,227,179,225,13,223,114,220, +206,218,188,217,179,216,187,215,103,214,55,212,215,209,29,208,159,206,201,204,17,203,13,202,135,201,252,200,18,200,155,198, +224,196,137,195,238,194,188,194,100,194,181,193,2,193,175,192,209,192,97,193,102,194,163,195,140,196,204,196,107,196,177,195, +24,195,230,194,212,194,209,194,94,195,128,196,138,197,107,198,151,199,179,200,28,201,10,201,173,200,166,199,113,198,76,198, +55,199,28,200,160,200,7,201,74,201,169,201,177,202,25,204,18,205,118,205,117,205,27,205,214,204,49,205,228,205,119,206, +59,207,116,208,163,209,165,210,27,212,50,214,74,216,231,217,242,218,85,219,84,219,181,219,250,220,225,222,10,225,76,227, +92,229,255,230,171,232,216,234,254,236,92,238,65,239,96,240,174,241,247,242,118,244,16,246,99,247,211,248,225,250,227,252, +11,254,229,254,80,0,10,2,106,3,99,4,81,5,173,6,206,8,71,11,33,13,0,14,80,14,147,14,30,15,26,16, +110,17,32,19,108,21,13,24,86,26,21,28,92,29,0,30,60,30,196,30,127,31,205,31,21,32,60,33,252,34,123,36, +172,37,233,38,85,40,249,41,133,43,92,44,120,44,71,44,200,43,29,43,31,43,24,44,95,45,206,46,203,48,206,50, +228,51,50,52,110,52,191,52,241,52,239,52,219,52,35,53,254,53,246,54,204,55,245,56,109,58,137,59,63,60,240,60, +115,61,198,61,106,62,43,63,85,63,69,63,159,63,6,64,71,64,3,65,2,66,58,66,213,65,203,65,20,66,57,66, +76,66,67,66,235,65,158,65,115,65,187,64,92,63,16,62,3,61,3,60,113,59,69,59,151,58,86,57,154,56,173,56, +170,56,233,55,105,54,121,52,200,50,214,49,44,49,45,48,25,47,97,46,232,45,119,45,25,45,206,44,153,44,169,44, +231,44,188,44,167,43,226,41,55,40,50,39,183,38,119,38,72,38,254,37,170,37,190,37,32,38,203,37,80,36,145,34, +36,33,133,31,121,29,131,27,219,25,109,24,89,23,84,22,156,20,95,18,168,16,163,15,92,14,59,12,129,9,151,6, +224,3,182,1,233,255,215,253,68,251,175,248,176,246,78,245,6,244,85,242,74,240,113,238,8,237,126,235,40,233,66,230, +169,227,179,225,238,223,245,221,234,219,38,218,232,216,48,216,141,215,71,214,33,212,166,209,113,207,131,205,130,203,80,201, +35,199,75,197,212,195,102,194,180,192,228,190,44,189,95,187,60,185,228,182,214,180,125,179,169,178,162,177,9,176,47,174, +51,172,232,169,202,167,139,166,201,165,224,164,33,164,197,163,51,163,96,162,246,161,192,161,6,161,230,159,168,158,30,157, +171,155,15,155,20,155,51,155,159,155,110,156,51,157,223,157,114,158,106,158,183,157,246,156,46,156,43,155,163,154,66,155, +160,156,76,158,35,160,115,161,200,161,237,161,148,162,57,163,113,163,155,163,232,163,76,164,40,165,183,166,159,168,159,170, +179,172,142,174,246,175,56,177,153,178,32,180,249,181,39,184,63,186,57,188,157,190,101,193,243,195,36,198,24,200,158,201, +234,202,207,204,134,207,136,210,158,213,180,216,93,219,128,221,120,223,52,225,152,226,54,228,83,230,107,232,120,234,30,237, +101,240,202,243,8,247,191,249,131,251,191,252,51,254,220,255,133,1,138,3,28,6,200,8,35,11,85,13,213,15,199,18, +184,21,45,24,41,26,204,27,61,29,45,31,5,34,228,36,13,39,53,41,255,43,243,46,207,49,185,52,62,55,70,57, +186,59,186,62,52,65,21,67,72,69,178,71,163,73,92,75,70,77,42,79,37,81,182,83,145,86,253,88,228,90,104,92, +87,93,224,93,157,94,157,95,133,96,127,97,223,98,85,100,123,101,123,102,98,103,179,103,60,103,124,102,243,101,209,101, +27,102,116,102,97,102,253,101,184,101,93,101,113,100,16,99,149,97,32,96,236,94,56,94,178,93,247,92,81,92,232,91, +13,91,74,89,44,87,22,85,168,82,247,79,203,77,67,76,212,74,129,73,117,72,41,71,88,69,113,67,69,65,246,61, +132,57,177,52,6,48,47,44,211,41,149,40,229,39,226,39,198,39,203,37,212,33,75,29,151,24,201,19,255,15,128,13, +82,11,198,9,209,9,92,10,230,9,171,8,190,6,96,3,72,255,218,251,190,248,102,245,210,242,145,241,227,240,114,240, +46,240,91,239,206,237,13,236,97,233,157,228,198,222,43,218,147,215,115,214,103,214,182,214,249,213,144,211,60,208,154,204, +55,200,226,194,194,189,39,186,49,184,116,183,170,183,255,183,82,183,176,181,199,179,51,177,110,173,147,169,11,167,223,165, +169,165,101,166,182,167,84,169,186,171,149,174,3,176,250,174,125,172,222,169,8,168,230,167,74,169,226,170,148,172,112,175, +34,179,61,182,92,184,134,185,87,185,66,184,52,183,226,181,55,180,242,179,37,182,123,185,132,188,241,190,83,192,129,192, +87,192,27,192,13,191,100,189,59,188,223,187,100,188,88,190,70,193,161,195,230,196,211,197,187,198,129,199,124,200,26,202, +76,204,187,206,13,209,35,211,98,213,77,216,222,219,167,223,80,227,127,230,188,232,244,233,243,234,201,236,187,239,93,243, +112,247,196,251,144,255,24,2,154,3,156,4,68,5,248,5,87,7,111,9,6,12,53,15,180,18,195,21,38,24,236,25, +205,26,38,27,25,28,185,29,8,31,222,31,186,32,114,33,37,34,178,35,16,38,116,40,11,43,246,45,245,47,116,48, +173,48,55,49,120,49,188,49,224,50,182,52,3,55,41,58,160,61,57,64,18,66,207,67,25,69,187,69,95,70,67,71, +29,72,11,73,10,74,164,74,8,75,250,75,153,77,115,79,29,81,2,82,194,81,214,80,6,80,192,79,28,80,147,80, +56,80,63,79,251,78,201,79,180,80,51,81,100,81,5,81,214,79,96,78,91,77,242,76,241,76,35,77,93,77,84,77, +145,76,243,74,44,73,28,72,206,71,172,71,50,71,39,70,220,68,26,68,10,68,176,67,61,66,9,64,197,61,200,59, +67,58,28,57,205,55,26,54,72,52,99,50,96,48,174,46,142,45,145,44,125,43,51,42,195,39,182,35,132,31,160,28, +167,26,31,25,127,24,107,24,198,23,167,22,150,21,245,19,81,17,110,14,231,11,188,9,38,8,39,7,37,6,236,4, +183,3,110,2,33,1,61,0,108,255,229,253,211,251,188,249,97,247,144,244,215,241,180,239,52,238,82,237,175,236,119,235, +67,233,143,230,233,227,66,225,102,222,165,219,116,217,172,215,248,213,125,212,31,211,7,209,251,205,242,202,163,200,231,198, +134,197,90,196,39,195,241,193,182,192,21,191,35,189,185,187,59,187,34,187,211,186,242,185,136,184,89,183,25,183,121,183, +250,183,172,184,98,185,175,185,206,185,10,186,238,185,70,185,196,184,202,184,210,184,150,184,160,184,96,185,161,186,243,187, +238,188,29,189,109,188,144,187,45,187,30,187,16,187,27,187,67,187,134,187,62,188,98,189,36,190,97,190,212,190,114,191, +122,191,31,191,63,191,8,192,26,193,7,194,136,194,12,195,85,196,53,198,236,199,94,201,186,202,236,203,13,205,60,206, +68,207,75,208,226,209,25,212,155,214,40,217,55,219,121,220,138,221,220,222,27,224,127,225,167,227,56,230,150,232,230,234, +234,236,4,238,210,238,88,240,86,242,69,244,94,246,143,248,108,250,43,252,6,254,194,255,157,1,26,4,197,6,225,8, +142,10,27,12,105,13,134,14,193,15,34,17,169,18,179,20,97,23,40,26,106,28,21,30,61,31,212,31,63,32,71,33, +234,34,103,36,179,37,88,39,29,41,116,42,153,43,233,44,45,46,67,47,110,48,166,49,150,50,29,51,130,51,64,52, +128,53,221,54,21,56,70,57,65,58,210,58,124,59,140,60,126,61,65,62,132,63,61,65,166,66,132,67,22,68,163,68, +143,69,194,70,161,71,81,72,169,73,144,75,50,77,70,78,249,78,107,79,209,79,30,80,18,80,2,80,82,80,161,80, +201,80,83,81,13,82,30,82,162,81,72,81,244,80,49,80,15,79,233,77,36,77,210,76,101,76,109,75,63,74,34,73, +234,71,183,70,198,69,196,68,105,67,17,66,44,65,171,64,0,64,168,62,244,60,183,59,243,58,7,58,222,56,153,55, +18,54,173,52,13,52,188,51,23,51,179,50,236,50,220,50,239,49,110,48,73,46,164,43,205,41,135,41,164,41,232,40, +183,39,232,38,114,38,192,37,93,36,39,34,125,31,29,29,88,27,186,25,191,23,150,21,190,19,69,18,209,16,20,15, +26,13,53,11,133,9,167,7,42,5,56,2,80,255,184,252,151,250,252,248,154,247,12,246,57,244,40,242,212,239,87,237, +0,235,14,233,101,231,149,229,117,227,107,225,161,223,157,221,54,219,202,216,106,214,12,212,4,210,74,208,94,206,117,204, +8,203,132,201,61,199,152,196,246,193,49,191,156,188,152,186,138,184,7,182,177,179,217,177,3,176,9,174,38,172,54,170, +66,168,168,166,51,165,84,163,69,161,163,159,77,158,211,156,106,155,110,154,172,153,224,152,61,152,207,151,49,151,109,150, +15,150,1,150,151,149,223,148,87,148,178,147,139,146,122,145,40,145,94,145,213,145,137,146,22,147,43,147,70,147,193,147, +3,148,135,147,162,146,243,145,233,145,162,146,191,147,191,148,153,149,132,150,118,151,96,152,76,153,44,154,27,155,93,156, +157,157,59,158,140,158,134,159,94,161,178,163,113,166,94,169,198,171,142,173,109,175,197,177,77,180,190,182,2,185,61,187, +198,189,179,192,182,195,161,198,131,201,56,204,164,206,239,208,36,211,78,213,199,215,183,218,187,221,132,224,18,227,92,229, +122,231,186,233,36,236,125,238,165,240,154,242,149,244,30,247,41,250,5,253,144,255,63,2,244,4,112,7,249,9,99,12, +30,14,173,15,227,17,69,20,92,22,243,24,93,28,200,31,243,34,54,38,40,41,89,43,77,45,103,47,101,49,116,51, +17,54,19,57,30,60,75,63,126,66,49,69,91,71,134,73,224,75,30,78,57,80,92,82,82,84,220,85,55,87,195,88, +136,90,107,92,87,94,25,96,150,97,229,98,237,99,134,100,19,101,29,102,121,103,163,104,143,105,98,106,236,106,246,106, +194,106,197,106,252,106,20,107,26,107,90,107,162,107,138,107,39,107,181,106,15,106,36,105,27,104,253,102,227,101,239,100, +226,99,153,98,135,97,158,96,47,95,103,93,255,91,183,90,12,89,46,87,241,84,227,81,192,78,122,76,168,74,170,72, +117,70,165,67,249,63,88,60,119,57,241,54,78,52,127,49,170,46,72,44,74,42,170,39,62,36,22,33,84,30,92,27, +157,24,132,22,142,20,250,18,109,18,233,17,77,16,49,14,248,11,29,9,39,6,245,3,220,1,54,255,205,252,58,251, +58,250,126,249,90,248,253,245,230,242,45,240,185,237,253,234,20,232,7,229,171,225,132,222,67,220,154,218,164,216,250,213, +248,210,20,208,50,205,222,201,17,198,68,194,3,191,195,188,104,187,238,185,168,183,85,181,212,179,170,178,206,176,16,174, +67,171,152,169,201,169,88,171,179,172,171,172,169,171,29,171,169,171,120,172,133,172,206,171,60,171,223,171,221,173,0,176, +68,177,44,178,160,179,136,181,82,183,94,184,56,184,155,183,234,183,226,184,57,185,33,185,164,185,229,186,213,188,83,191, +255,192,192,192,141,191,192,190,122,190,131,190,136,190,9,190,155,189,109,190,38,192,152,193,162,194,133,195,53,196,19,197, +105,198,187,199,214,200,36,202,198,203,215,205,101,208,191,210,152,212,247,214,63,218,120,221,88,224,53,227,149,229,126,231, +38,234,164,237,194,240,61,243,166,245,21,248,179,250,195,253,174,0,235,2,246,4,77,7,223,9,146,12,26,15,13,17, +172,18,110,20,42,22,168,23,4,25,57,26,103,27,224,28,113,30,198,31,25,33,102,34,58,35,28,36,249,37,51,40, +123,41,243,41,152,42,169,43,206,44,219,45,202,46,216,47,129,49,219,51,93,54,129,56,60,58,168,59,190,60,157,61, +136,62,89,63,204,63,98,64,195,65,141,67,223,68,149,69,45,70,41,71,173,72,4,74,81,74,238,73,187,73,148,73, +48,73,19,73,90,73,131,73,212,73,202,74,198,75,29,76,12,76,188,75,35,75,164,74,83,74,183,73,244,72,192,72, +61,73,7,74,154,74,94,74,100,73,145,72,81,72,56,72,3,72,164,71,226,70,234,69,69,69,240,68,104,68,114,67, +62,66,52,65,120,64,126,63,203,61,223,59,113,58,113,57,112,56,3,55,221,52,133,50,216,48,134,47,143,45,252,42, +121,40,29,38,244,35,103,34,94,33,85,32,34,31,190,29,2,28,14,26,22,24,12,22,8,20,104,18,44,17,24,16, +53,15,141,14,225,13,8,13,44,12,88,11,56,10,150,8,207,6,114,5,130,4,156,3,143,2,76,1,213,255,140,254, +185,253,192,252,217,250,65,248,204,245,212,243,20,242,242,239,29,237,46,234,3,232,93,230,82,228,175,225,218,222,7,220, +123,217,117,215,125,213,234,210,24,208,229,205,86,204,185,202,172,200,101,198,90,196,232,194,254,193,14,193,190,191,135,190, +253,189,220,189,136,189,20,189,229,188,202,188,100,188,254,187,251,187,27,188,25,188,99,188,82,189,117,190,72,191,218,191, +78,192,147,192,200,192,33,193,108,193,116,193,129,193,221,193,103,194,236,194,90,195,162,195,209,195,248,195,231,195,144,195, +94,195,159,195,4,196,57,196,50,196,250,195,202,195,13,196,186,196,109,197,9,198,169,198,54,199,172,199,66,200,22,201, +24,202,46,203,48,204,24,205,27,206,68,207,127,208,254,209,213,211,149,213,251,214,100,216,38,218,33,220,21,222,218,223, +126,225,56,227,246,228,112,230,216,231,191,233,30,236,113,238,129,240,96,242,22,244,210,245,182,247,119,249,235,250,127,252, +103,254,36,0,109,1,181,2,99,4,80,6,53,8,218,9,23,11,57,12,216,13,224,15,173,17,17,19,49,20,17,21, +30,22,220,23,138,25,35,26,116,26,225,27,0,30,158,31,166,32,147,33,163,34,17,36,153,37,121,38,185,38,42,39, +246,39,210,40,202,41,209,42,168,43,140,44,195,45,8,47,11,48,185,48,8,49,88,49,29,50,18,51,180,51,16,52, +100,52,6,53,104,54,70,56,192,57,212,58,247,59,212,60,63,61,217,61,167,62,41,63,198,63,232,64,251,65,203,66, +198,67,162,68,10,69,133,69,30,70,35,70,197,69,181,69,236,69,81,70,217,70,200,70,208,69,2,69,235,68,157,68, +167,67,175,66,240,65,24,65,79,64,228,63,148,63,230,62,228,61,231,60,236,59,152,58,2,57,157,55,84,54,233,52, +200,51,91,51,49,51,221,50,127,50,17,50,96,49,138,48,168,47,128,46,20,45,222,43,48,43,229,42,167,42,126,42, +180,42,24,43,15,43,111,42,91,41,198,39,250,37,172,36,227,35,25,35,57,34,73,33,29,32,247,30,9,30,207,28, +23,27,100,25,157,23,87,21,12,19,36,17,31,15,239,12,5,11,19,9,180,6,74,4,12,2,178,255,74,253,247,250, +158,248,91,246,54,244,239,241,195,239,249,237,237,235,71,233,187,230,118,228,6,226,195,223,22,222,136,220,222,218,64,217, +73,215,250,212,22,211,111,209,52,207,211,204,234,202,209,200,38,198,168,195,180,193,14,192,173,190,77,189,129,187,121,185, +108,183,16,181,148,178,133,176,163,174,95,172,10,170,68,168,4,167,180,165,214,163,162,161,220,159,203,158,229,157,165,156, +235,154,248,152,114,151,139,150,117,149,183,147,29,146,116,145,156,145,1,146,5,146,102,145,172,144,98,144,70,144,236,143, +80,143,174,142,152,142,150,143,255,144,169,145,157,145,205,145,178,146,20,148,55,149,114,149,73,149,246,149,146,151,58,153, +108,154,44,155,239,155,144,157,226,159,128,161,22,162,223,162,117,164,104,166,112,168,45,170,49,171,57,172,107,174,96,177, +166,179,187,180,110,181,200,182,254,184,81,187,55,189,0,191,31,193,211,195,29,199,31,202,201,203,191,204,118,206,230,208, +74,211,197,213,123,216,31,219,25,222,198,225,55,229,170,231,200,233,52,236,191,238,88,241,246,243,69,246,139,248,161,251, +116,255,5,3,241,5,196,8,233,11,34,15,239,17,14,20,194,21,191,23,110,26,117,29,80,32,36,35,42,38,10,41, +163,43,85,46,226,48,174,50,60,52,111,54,239,56,28,59,56,61,106,63,115,65,154,67,35,70,137,72,147,74,184,76, +247,78,232,80,143,82,250,83,55,85,198,86,219,88,213,90,100,92,245,93,168,95,90,97,41,99,229,100,252,101,113,102, +208,102,127,103,150,104,227,105,7,107,241,107,182,108,22,109,247,108,183,108,136,108,107,108,152,108,211,108,117,108,179,107, +71,107,0,107,107,106,177,105,166,104,195,102,117,100,126,98,175,96,181,94,163,92,59,90,150,87,215,85,79,85,176,84, +18,83,138,80,234,76,98,72,36,68,191,64,181,61,90,59,88,58,229,57,248,56,192,55,18,54,7,51,38,47,235,43, +63,41,41,38,241,34,115,32,233,30,75,30,2,30,191,28,90,26,75,24,12,23,92,21,133,18,247,14,20,11,127,7, +74,5,112,4,172,3,83,2,174,0,182,254,13,252,167,248,162,244,36,240,233,235,245,232,75,231,153,229,236,226,9,224, +232,221,214,219,161,216,96,212,183,207,51,203,252,199,164,198,164,197,149,195,106,193,41,192,35,191,179,189,207,187,211,184, +205,180,142,177,14,176,51,175,99,174,56,174,194,174,137,175,72,176,47,176,163,174,195,172,224,171,125,171,204,170,24,170, +169,169,158,169,190,170,31,173,66,175,58,176,153,176,146,176,202,175,213,174,120,174,104,174,113,174,38,175,141,176,253,177, +61,179,78,180,234,180,13,181,15,181,51,181,204,181,13,183,113,184,136,185,178,186,6,188,11,189,236,189,54,191,219,192, +215,194,71,197,88,199,57,200,199,200,63,202,169,204,129,207,57,210,58,212,237,213,43,216,87,218,129,219,134,220,124,222, +29,225,69,228,9,232,85,235,111,237,84,239,162,241,193,243,164,245,162,247,161,249,10,252,83,255,114,2,79,4,110,5, +148,6,39,8,228,10,146,14,134,17,74,19,250,20,204,22,70,24,183,25,50,27,108,28,34,30,241,32,204,35,228,37, +209,39,216,41,191,43,216,45,1,48,75,49,243,49,63,51,73,53,44,55,138,56,88,57,187,57,163,58,210,60,116,63, +42,65,183,65,201,65,253,65,125,66,13,67,96,67,169,67,99,68,122,69,80,70,169,70,235,70,118,71,68,72,254,72, +33,73,137,72,221,71,254,71,13,73,119,74,103,75,79,75,134,74,6,74,28,74,94,74,170,74,236,74,215,74,205,74, +131,75,119,76,198,76,167,76,131,76,39,76,198,75,177,75,99,75,171,74,54,74,21,74,198,73,81,73,177,72,192,71, +50,71,69,71,162,70,179,68,110,66,24,64,149,61,222,59,17,59,202,57,6,56,216,54,168,53,150,51,104,49,124,47, +15,45,108,42,113,40,201,38,251,36,32,35,254,32,159,30,191,28,92,27,217,25,110,24,61,23,182,21,7,20,181,18, +42,17,5,15,69,13,132,12,50,12,230,11,78,11,226,9,237,7,94,6,94,5,139,4,178,3,168,2,165,1,69,1, +15,1,152,255,212,252,57,250,130,248,55,247,207,245,13,244,12,242,98,240,79,239,32,238,20,236,112,233,12,231,95,229, +59,228,249,226,237,224,255,221,239,218,153,216,11,215,213,213,193,212,197,211,192,210,152,209,9,208,182,205,7,203,226,200, +102,199,45,198,85,197,216,196,34,196,62,195,198,194,134,194,238,193,32,193,99,192,217,191,219,191,61,192,47,192,166,191, +82,191,73,191,94,191,178,191,20,192,61,192,152,192,63,193,137,193,87,193,31,193,255,192,44,193,242,193,188,194,239,194, +10,195,107,195,203,195,91,196,55,197,163,197,159,197,73,198,171,199,186,200,65,201,177,201,46,202,231,202,201,203,35,204, +250,203,70,204,58,205,72,206,85,207,97,208,17,209,115,209,238,209,144,210,96,211,94,212,47,213,212,213,226,214,65,216, +69,217,10,218,45,219,176,220,98,222,90,224,80,226,193,227,193,228,200,229,241,230,11,232,43,233,179,234,209,236,65,239, +171,241,221,243,164,245,11,247,152,248,145,250,150,252,108,254,59,0,1,2,191,3,168,5,138,7,18,9,178,10,249,12, +123,15,128,17,237,18,248,19,192,20,89,21,218,21,150,22,250,23,190,25,52,27,85,28,102,29,25,30,62,30,73,30, +156,30,85,31,162,32,57,34,96,35,215,35,236,35,245,35,77,36,35,37,43,38,46,39,76,40,103,41,111,42,172,43, +224,44,111,45,211,45,250,46,136,48,188,49,210,50,30,52,106,53,208,54,119,56,249,57,80,59,21,61,57,63,6,65, +57,66,238,66,65,67,157,67,85,68,48,69,38,70,148,71,36,73,255,73,66,74,154,74,227,74,151,74,231,73,70,73, +189,72,109,72,169,72,32,73,15,73,94,72,135,71,162,70,128,69,82,68,91,67,153,66,22,66,219,65,136,65,197,64, +195,63,190,62,182,61,187,60,190,59,133,58,106,57,37,57,107,57,48,57,81,56,149,55,91,55,122,55,186,55,155,55, +136,54,205,52,83,51,122,50,2,50,204,49,219,49,14,50,74,50,125,50,33,50,160,48,77,46,24,44,74,42,150,40, +6,39,194,37,157,36,154,35,226,34,212,33,189,31,50,29,3,27,197,24,36,22,200,19,142,17,141,14,92,11,73,9, +200,7,185,5,132,3,123,1,199,254,122,251,147,248,201,245,115,242,104,239,80,237,78,235,1,233,253,230,248,228,66,226, +73,223,140,220,197,217,14,215,207,212,172,210,94,208,111,206,246,204,67,203,32,201,239,198,173,196,31,194,93,191,157,188, +247,185,138,183,139,181,8,180,141,178,159,176,145,174,242,172,96,171,59,169,182,166,23,164,76,161,210,158,41,157,187,155, +20,154,198,152,228,151,232,150,5,150,71,149,193,147,117,145,153,143,68,142,211,140,183,139,69,139,198,138,63,138,112,138, +194,138,51,138,98,137,83,137,197,137,38,138,115,138,188,138,9,139,139,139,84,140,64,141,63,142,75,143,118,144,240,145, +182,147,112,149,197,150,164,151,110,152,193,153,183,155,192,157,112,159,235,160,107,162,254,163,131,165,202,166,254,167,155,169, +190,171,1,174,254,175,149,177,26,179,30,181,155,183,217,185,149,187,50,189,243,190,33,193,7,196,9,199,70,201,49,203, +204,205,8,209,94,212,168,215,179,218,115,221,101,224,174,227,200,230,130,233,47,236,10,239,62,242,204,245,81,249,153,252, +229,255,96,3,237,6,73,10,4,13,31,15,66,17,183,19,68,22,7,25,253,27,157,30,253,32,172,35,69,38,99,40, +182,42,71,45,44,47,195,48,24,51,179,53,196,55,150,57,71,59,171,60,124,62,27,65,169,67,206,69,15,72,77,74, +43,76,235,77,159,79,23,81,161,82,101,84,23,86,186,87,106,89,231,90,102,92,75,94,2,96,7,97,243,97,43,99, +68,100,39,101,1,102,148,102,204,102,240,102,5,103,35,103,125,103,176,103,71,103,137,102,163,101,104,100,28,99,241,97, +140,96,26,95,73,94,217,93,247,92,100,91,16,89,23,86,87,83,102,81,181,79,225,77,75,76,26,75,67,74,208,73, +23,73,37,71,77,68,180,65,166,63,173,61,109,59,253,56,12,55,62,54,13,54,64,53,137,51,164,49,33,48,212,46, +33,45,114,42,200,38,3,35,105,32,122,31,79,31,142,30,203,28,109,26,228,23,131,21,23,19,172,15,30,11,25,7, +222,4,126,3,173,1,94,255,239,252,139,250,73,248,168,245,234,241,164,237,113,234,203,232,141,231,134,229,177,226,3,224, +118,222,16,222,166,221,161,219,174,215,157,211,127,209,30,209,163,208,50,207,109,205,73,204,77,204,200,204,50,204,73,202, +102,200,37,199,222,197,83,196,197,194,128,193,94,193,199,194,48,196,240,195,121,194,246,192,188,191,245,190,142,190,187,189, +64,188,35,187,44,187,11,188,231,188,236,188,253,187,238,186,92,186,44,186,115,186,68,187,252,187,78,188,210,188,146,189, +250,189,68,190,39,191,172,192,137,194,104,196,139,197,173,197,202,197,233,198,231,200,21,203,247,204,124,206,28,208,39,210, +11,212,9,213,88,213,232,213,116,215,245,217,152,220,148,222,22,224,182,225,100,227,173,228,162,229,171,230,31,232,57,234, +207,236,29,239,112,240,218,240,5,241,184,241,98,243,182,245,228,247,138,249,10,251,199,252,153,254,22,0,248,0,100,1, +5,2,112,3,134,5,190,7,190,9,85,11,179,12,138,14,241,16,207,18,159,19,123,20,74,22,111,24,236,25,109,26, +85,26,213,26,5,29,58,32,160,34,130,35,192,35,109,36,222,37,110,39,17,40,219,39,20,40,94,41,16,43,96,44, +23,45,123,45,59,46,138,47,116,48,49,48,124,47,163,47,43,49,138,51,97,53,145,53,159,52,24,52,142,52,95,53, +245,53,57,54,113,54,17,55,48,56,82,57,19,58,111,58,131,58,169,58,33,59,114,59,34,59,174,58,190,58,32,59, +120,59,179,59,171,59,125,59,216,59,217,60,111,61,205,60,75,59,157,57,69,56,154,55,131,55,154,55,187,55,208,55, +130,55,175,54,158,53,116,52,67,51,88,50,205,49,82,49,194,48,13,48,217,46,36,45,147,43,120,42,138,41,194,40, +83,40,2,40,118,39,158,38,89,37,131,35,106,33,175,31,184,30,87,30,206,29,174,28,116,27,139,26,146,25,85,24, +35,23,237,21,162,20,218,19,118,19,32,18,142,15,24,13,115,11,45,10,9,9,235,7,128,6,52,5,175,4,43,4, +71,2,54,255,104,252,180,250,234,249,118,249,196,248,131,247,206,245,244,243,41,242,99,240,169,238,70,237,103,236,182,235, +210,234,145,233,195,231,144,229,166,227,64,226,195,224,243,222,73,221,23,220,92,219,239,218,35,218,86,216,4,214,37,212, +235,210,12,210,65,209,5,208,18,206,18,204,144,202,38,201,145,199,114,198,28,198,241,197,103,197,126,196,46,195,135,193, +31,192,104,191,239,190,62,190,173,189,168,189,253,189,103,190,203,190,229,190,189,190,211,190,67,191,183,191,65,192,253,192, +111,193,104,193,106,193,161,193,224,193,111,194,117,195,108,196,56,197,56,198,28,199,45,199,162,198,78,198,146,198,88,199, +86,200,42,201,176,201,55,202,21,203,22,204,155,204,128,204,163,204,204,205,136,207,232,208,165,209,9,210,155,210,196,211, +17,213,208,213,130,214,27,216,100,218,155,220,115,222,178,223,150,224,55,226,204,228,36,231,230,232,212,234,215,236,138,238, +110,240,122,242,224,243,27,245,111,247,152,250,153,253,60,0,60,2,53,3,214,3,255,4,78,6,66,7,86,8,1,10, +2,12,237,13,110,15,70,16,159,16,32,17,85,18,31,20,201,21,216,22,151,23,129,24,153,25,154,26,70,27,174,27, +147,28,169,30,102,33,171,35,53,37,93,38,112,39,207,40,116,42,166,43,101,44,219,45,75,48,121,50,191,51,189,52, +13,54,214,55,18,58,41,60,113,61,86,62,163,63,238,64,60,65,189,64,149,64,113,65,36,67,13,69,119,70,26,71, +104,71,211,71,4,72,112,71,100,70,198,69,28,70,40,71,47,72,146,72,104,72,84,72,123,72,71,72,97,71,84,70, +245,69,120,70,66,71,131,71,253,70,45,70,177,69,187,69,242,69,187,69,215,68,168,67,182,66,30,66,180,65,97,65, +64,65,114,65,209,65,248,65,164,65,196,64,85,63,163,61,49,60,10,59,244,57,61,57,67,57,168,57,230,57,186,57, +163,56,94,54,213,51,19,50,234,48,182,47,103,46,42,45,25,44,109,43,6,43,39,42,109,40,110,38,213,36,99,35, +113,33,17,31,246,28,98,27,247,25,154,24,118,23,68,22,184,20,17,19,78,17,191,14,56,11,178,7,39,5,125,3, +252,1,62,0,95,254,131,252,134,250,70,248,178,245,151,242,0,239,163,235,36,233,79,231,150,229,180,227,142,225,26,223, +125,220,224,217,62,215,118,212,146,209,230,206,165,204,97,202,175,199,242,196,169,194,172,192,214,190,46,189,37,187,71,184, +76,181,4,179,12,177,215,174,141,172,102,170,121,168,10,167,235,165,51,164,121,161,137,158,97,156,246,154,120,153,167,151, +24,150,23,149,55,148,34,147,198,145,232,143,174,141,237,139,46,139,33,139,42,139,207,138,65,138,73,138,232,138,254,138, +75,138,222,137,49,138,4,139,72,140,124,141,217,141,8,142,59,143,9,145,114,146,119,147,84,148,47,149,168,150,186,152, +97,154,98,155,136,156,41,158,75,160,200,162,162,164,69,165,226,165,128,167,122,169,33,171,140,172,232,173,197,175,194,178, +1,182,27,184,51,185,46,186,104,187,42,189,125,191,181,193,191,195,137,198,62,202,223,205,167,208,149,210,81,212,222,214, +111,218,19,222,37,225,204,227,111,230,220,233,129,238,43,243,137,246,76,249,178,252,154,0,93,4,161,7,42,10,140,12, +1,16,139,20,239,24,119,28,53,31,141,33,72,36,155,39,85,42,195,43,30,45,187,47,85,51,218,54,121,57,10,59, +62,60,245,61,43,64,41,66,119,67,71,68,74,69,252,70,0,73,153,74,142,75,71,76,114,77,104,79,137,81,195,82, +5,83,40,83,166,83,106,84,83,85,26,86,128,86,240,86,235,87,252,88,61,89,181,88,124,88,99,89,234,90,235,91, +224,91,255,90,200,89,11,89,86,89,254,89,236,89,80,89,50,89,232,89,230,90,82,91,163,90,99,89,172,88,140,88, +1,88,149,86,215,84,151,83,63,83,72,83,153,82,11,81,137,79,144,78,209,77,196,76,173,74,95,71,54,68,137,66, +208,65,184,64,202,62,56,60,145,57,131,55,196,53,89,51,76,48,105,45,239,42,250,40,163,39,252,37,33,35,245,31, +155,29,166,27,83,25,153,22,133,19,155,16,216,14,229,13,77,12,22,10,147,8,222,7,249,6,101,5,211,2,31,255, +108,251,106,249,48,249,67,249,126,248,0,247,182,245,66,245,26,245,18,244,229,241,110,239,108,237,195,235,232,233,182,231, +177,229,131,228,84,228,177,228,173,228,100,227,248,224,149,222,199,220,212,218,55,216,130,213,128,211,124,210,79,210,73,210, +135,209,221,207,210,205,234,203,99,202,65,201,73,200,112,199,232,198,141,198,4,198,71,197,101,196,124,195,73,195,39,196, +224,196,77,196,36,195,150,194,214,194,193,195,33,197,61,198,217,198,165,199,177,200,37,201,195,200,45,200,14,200,242,200, +218,202,227,204,125,206,253,207,103,209,89,210,2,211,141,211,160,211,154,211,127,212,49,214,151,215,91,216,249,216,213,217, +41,219,228,220,120,222,97,223,174,223,233,223,140,224,114,225,18,226,121,226,20,227,214,227,214,228,179,230,14,233,127,234, +231,234,140,235,218,236,39,238,33,239,227,239,183,240,19,242,224,243,84,245,43,246,239,246,53,248,96,250,39,253,64,255, +7,0,166,0,34,2,12,4,206,5,73,7,71,8,38,9,218,10,79,13,113,15,246,16,131,18,106,20,79,22,150,23, +40,24,218,24,105,26,142,28,175,30,132,32,159,33,234,33,67,34,82,35,180,36,234,37,223,38,179,39,196,40,55,42, +141,43,127,44,79,45,221,45,18,46,146,46,116,47,233,47,29,48,240,48,15,50,209,50,159,51,165,52,83,53,238,53, +22,55,16,56,196,55,149,54,181,53,179,53,95,54,77,55,46,56,232,56,144,57,84,58,226,58,101,58,1,57,29,56, +42,56,46,56,210,55,130,55,60,55,44,55,150,55,149,55,137,54,162,53,125,53,56,53,205,52,127,52,49,51,11,49, +35,48,65,48,102,47,52,46,30,46,252,45,244,44,39,44,120,43,243,41,139,40,255,39,50,39,242,37,63,37,206,36, +216,35,151,34,27,33,80,31,221,29,232,28,215,27,218,26,55,26,80,25,5,24,199,22,42,21,249,18,45,17,11,16, +212,14,92,13,171,11,156,9,220,7,242,6,251,5,122,4,24,3,197,1,18,0,117,254,218,252,136,250,18,248,77,246, +148,244,199,242,241,241,190,241,243,240,189,239,140,238,249,236,52,235,184,233,8,232,40,230,34,229,222,228,65,228,55,227, +65,226,93,225,147,224,224,223,198,222,73,221,25,220,69,219,81,218,46,217,7,216,245,214,39,214,136,213,202,212,212,211, +136,210,240,208,202,207,100,207,189,206,83,205,47,204,243,203,8,204,218,203,46,203,242,201,169,200,193,199,209,198,171,197, +253,196,39,197,210,197,146,198,237,198,162,198,46,198,29,198,53,198,24,198,210,197,170,197,254,197,222,198,227,199,219,200, +225,201,200,202,157,203,192,204,183,205,230,205,22,206,230,206,124,207,173,207,111,208,132,209,71,210,123,211,55,213,31,214, +79,214,247,214,161,215,168,215,8,216,24,217,252,217,221,218,68,220,142,221,106,222,68,223,233,223,67,224,27,225,114,226, +154,227,220,228,138,230,12,232,113,233,93,235,100,237,238,238,70,240,112,241,53,242,60,243,225,244,137,246,64,248,144,250, +240,252,216,254,229,0,71,3,83,5,226,6,16,8,167,8,24,9,46,10,191,11,79,13,16,15,15,17,0,19,9,21, +40,23,148,24,239,24,245,24,86,25,11,26,215,26,166,27,164,28,27,30,4,32,220,33,50,35,24,36,2,37,57,38, +109,39,41,40,143,40,7,41,181,41,192,42,69,44,206,45,225,46,207,47,3,49,67,50,77,51,29,52,153,52,226,52, +124,53,140,54,183,55,223,56,255,57,204,58,37,59,54,59,21,59,12,59,170,59,193,60,130,61,199,61,249,61,4,62, +198,61,160,61,152,61,60,61,155,60,1,60,52,59,54,58,183,57,196,57,144,57,254,56,178,56,179,56,132,56,0,56, +42,55,245,53,163,52,126,51,106,50,109,49,219,48,155,48,62,48,191,47,74,47,158,46,123,45,50,44,15,43,195,41, +239,39,223,37,41,36,226,34,210,33,242,32,40,32,27,31,218,29,197,28,156,27,204,25,103,23,225,20,126,18,135,16, +1,15,121,13,226,11,167,10,122,9,177,7,146,5,142,3,84,1,199,254,58,252,146,249,208,246,134,244,180,242,247,240, +158,239,154,238,205,236,252,233,70,231,246,228,124,226,3,224,210,221,159,219,141,217,7,216,189,214,55,213,105,211,44,209, +158,206,91,204,90,202,232,199,35,197,178,194,165,192,238,190,175,189,113,188,149,186,97,184,95,182,105,180,20,178,88,175, +150,172,58,170,83,168,195,166,151,165,145,164,34,163,107,161,222,159,19,158,158,155,51,153,133,151,64,150,37,149,103,148, +238,147,125,147,33,147,222,146,165,146,106,146,252,145,88,145,214,144,171,144,222,144,152,145,179,146,241,147,147,149,129,151, +228,152,195,153,175,154,23,155,184,154,3,155,137,156,43,158,215,159,53,162,149,164,143,166,167,168,35,170,96,170,230,170, +75,172,232,172,236,172,36,174,32,176,219,177,52,180,13,183,214,184,232,185,108,187,219,188,231,189,43,191,35,192,151,192, +27,194,49,197,117,200,114,203,114,206,11,209,90,211,225,213,236,215,54,217,52,219,141,222,87,226,30,230,225,233,96,237, +223,240,160,244,21,248,40,251,68,254,16,1,145,3,206,6,171,10,23,14,107,17,70,21,242,24,36,28,68,31,190,33, +71,35,5,37,123,39,24,42,235,44,243,47,149,50,45,53,85,56,28,59,196,60,17,62,73,63,40,64,110,65,115,67, +52,69,130,70,41,72,8,74,190,75,155,77,74,79,31,80,180,80,224,81,38,83,217,83,71,84,33,85,188,86,205,88, +170,90,25,92,64,93,18,94,191,94,180,95,172,96,64,97,244,97,38,99,61,100,217,100,55,101,136,101,251,101,154,102, +246,102,14,103,103,103,184,103,102,103,202,102,64,102,161,101,98,101,204,101,226,101,57,101,134,100,183,99,119,98,118,97, +189,96,135,95,106,94,14,94,62,93,115,91,227,89,183,88,68,87,2,86,230,84,224,82,135,80,10,79,144,77,77,75, +36,73,66,71,54,69,184,67,212,66,28,65,158,62,149,60,166,58,17,56,88,53,186,50,32,48,81,46,93,45,228,43, +112,41,207,38,86,36,47,34,144,32,205,30,83,28,193,25,115,23,30,21,43,19,212,17,74,16,119,14,47,13,32,12, +107,10,80,8,33,6,174,3,133,1,76,0,79,255,197,253,12,252,150,250,65,249,248,247,137,246,120,244,214,241,124,239, +252,237,191,236,190,234,6,232,205,229,159,228,199,227,142,226,197,224,119,222,60,220,180,218,67,217,4,215,122,212,167,210, +170,209,61,209,204,208,112,207,87,205,227,203,87,203,164,202,112,201,37,200,252,198,111,198,211,198,55,199,181,198,27,198, +97,198,27,199,154,199,216,199,229,199,229,199,66,200,251,200,154,201,45,202,44,203,125,204,141,205,32,206,100,206,116,206, +111,206,184,206,128,207,118,208,69,209,233,209,97,210,183,210,59,211,230,211,23,212,177,211,98,211,130,211,212,211,69,212, +204,212,52,213,185,213,178,214,178,215,50,216,127,216,238,216,79,217,167,217,53,218,190,218,34,219,6,220,207,221,208,223, +67,225,55,226,54,227,167,228,158,230,170,232,37,234,41,235,146,236,177,238,241,240,238,242,209,244,163,246,86,248,50,250, +71,252,52,254,237,255,168,1,52,3,117,4,214,5,112,7,201,8,198,9,182,10,185,11,224,12,60,14,138,15,150,16, +141,17,134,18,102,19,25,20,99,20,74,20,147,20,143,21,94,22,136,22,183,22,43,23,151,23,50,24,240,24,13,25, +175,24,220,24,120,25,181,25,181,25,205,25,205,25,15,26,19,27,30,28,104,28,157,28,109,29,63,30,159,30,253,30, +142,31,44,32,4,33,37,34,16,35,151,35,17,36,129,36,201,36,59,37,200,37,234,37,243,37,172,38,143,39,180,39, +157,39,233,39,3,40,200,39,244,39,66,40,228,39,55,39,194,38,53,38,161,37,93,37,235,36,29,36,168,35,122,35, +197,34,151,33,65,32,167,30,44,29,37,28,220,26,54,25,41,24,155,23,174,22,132,21,51,20,79,18,163,16,16,16, +135,15,47,14,238,12,9,12,232,10,4,10,163,9,192,8,89,7,125,6,234,5,242,4,10,4,86,3,116,2,221,1, +203,1,104,1,170,0,57,0,184,255,217,254,50,254,139,253,65,252,27,251,212,250,183,250,133,250,197,250,251,250,107,250, +124,249,134,248,69,247,246,245,239,244,229,243,182,242,187,241,9,241,139,240,29,240,92,239,49,238,243,236,162,235,48,234, +7,233,29,232,229,230,136,229,110,228,60,227,224,225,244,224,79,224,81,223,61,222,134,221,215,220,222,219,161,218,46,217, +230,215,43,215,126,214,88,213,33,212,46,211,56,210,112,209,70,209,91,209,57,209,85,209,3,210,141,210,86,210,200,209, +86,209,207,208,99,208,220,208,40,210,117,211,218,212,188,214,66,216,202,216,25,217,122,217,102,217,129,217,119,218,54,219, +48,219,129,219,84,220,253,220,250,221,97,223,3,224,14,224,150,224,244,224,156,224,152,224,194,224,51,224,37,224,116,225, +90,226,78,226,207,226,112,227,255,226,171,226,42,227,47,227,26,227,136,228,163,230,202,231,74,232,167,232,0,233,57,234, +78,236,190,237,135,238,33,240,149,242,21,245,167,247,34,250,16,252,237,253,61,0,113,2,28,4,142,5,50,7,92,9, +252,11,99,14,103,16,156,18,43,21,229,23,158,26,120,28,210,28,247,28,62,30,234,31,13,33,20,34,72,35,157,36, +169,38,86,41,40,43,132,43,117,43,185,43,23,44,67,44,17,44,165,43,190,43,217,44,100,46,118,47,219,47,29,48, +199,48,220,49,5,51,223,51,27,52,255,51,121,52,197,53,22,55,52,56,162,57,48,59,159,60,97,62,242,63,25,64, +147,63,18,64,41,65,186,65,92,66,124,67,57,68,145,68,48,69,128,69,215,68,9,68,208,67,217,67,238,67,1,68, +169,67,228,66,60,66,188,65,253,64,250,63,246,62,12,62,32,61,251,59,126,58,190,56,250,54,147,53,196,52,40,52, +45,51,185,49,231,47,223,45,250,43,25,42,192,39,125,37,83,36,194,35,191,34,153,33,154,32,24,31,60,29,208,27, +75,26,3,24,183,21,185,19,95,17,14,15,125,13,220,11,151,9,162,7,79,6,204,4,5,3,44,1,158,254,91,251, +132,248,95,246,49,244,247,241,42,240,163,238,49,237,225,235,57,234,171,231,191,228,100,226,136,224,129,222,43,220,225,217, +227,215,78,214,248,212,63,211,204,208,52,206,34,204,124,202,229,200,28,199,227,196,142,194,15,193,97,192,52,191,2,189, +190,186,17,185,150,183,217,181,189,179,93,177,57,175,194,173,177,172,118,171,209,169,212,167,191,165,201,163,192,161,119,159, +68,157,115,155,3,154,78,153,134,153,188,153,25,153,42,152,159,151,80,151,69,151,185,151,19,152,16,152,186,152,85,154, +127,155,235,155,234,156,145,158,196,159,176,160,255,161,27,163,223,163,118,165,224,167,185,169,173,170,99,171,45,172,124,173, +99,175,150,176,160,176,66,177,71,179,77,181,187,182,24,184,47,185,7,186,82,187,67,188,178,187,222,186,99,187,200,188, +107,190,73,192,146,193,45,194,165,195,16,198,173,199,51,200,184,200,155,201,51,203,214,205,160,208,15,211,245,213,73,217, +59,220,37,223,30,226,73,228,81,230,128,233,238,236,179,239,236,242,205,246,63,250,162,253,124,1,183,4,56,7,26,10, +245,12,55,15,223,17,15,21,204,23,155,26,46,30,134,33,43,36,147,38,29,40,170,40,211,41,184,43,238,44,241,45, +249,47,59,50,234,51,136,53,223,54,105,55,5,56,69,57,95,58,242,58,99,59,2,60,76,61,108,63,124,65,245,66, +106,68,36,70,232,71,156,73,193,74,25,75,185,75,51,77,120,78,71,79,170,80,131,82,255,83,96,85,158,86,219,86, +131,86,252,86,65,88,132,89,160,90,110,91,208,91,112,92,131,93,34,94,53,94,182,94,129,95,145,95,48,95,76,95, +128,95,39,95,247,94,111,95,152,95,236,94,49,94,118,93,247,91,47,90,29,89,64,88,238,86,194,85,33,85,167,84, +66,84,162,83,8,82,240,79,100,78,9,77,97,75,226,73,84,72,81,70,227,68,76,68,235,66,153,64,187,62,1,61, +165,58,141,56,169,54,187,51,152,48,166,46,224,44,120,42,114,40,206,38,203,36,249,34,96,33,8,31,169,28,85,27, +235,25,197,23,17,22,177,20,166,18,190,16,139,15,223,13,170,11,17,10,177,8,208,6,40,5,255,3,129,2,164,0, +239,254,75,253,124,251,109,249,36,247,47,245,229,243,180,242,106,241,98,240,2,239,182,236,104,234,185,232,236,230,195,228, +177,226,136,224,69,222,112,220,176,218,90,216,232,213,2,212,120,210,3,209,90,207,34,205,210,202,44,201,231,199,141,198, +78,197,32,196,237,194,79,194,94,194,53,194,142,193,243,192,139,192,93,192,159,192,11,193,66,193,111,193,160,193,178,193, +203,193,239,193,5,194,170,194,76,196,39,198,123,199,75,200,162,200,190,200,89,201,102,202,29,203,123,203,252,203,175,204, +172,205,232,206,198,207,57,208,247,208,232,209,99,210,138,210,148,210,82,210,49,210,181,210,77,211,150,211,31,212,56,213, +174,214,82,216,153,217,27,218,114,218,22,219,184,219,143,220,11,222,157,223,240,224,168,226,184,228,120,230,32,232,234,233, +104,235,199,236,140,238,92,240,12,242,4,244,242,245,132,247,116,249,206,251,150,253,21,255,55,1,90,3,213,4,105,6, +95,8,20,10,197,11,244,13,10,16,119,17,129,18,96,19,56,20,78,21,82,22,212,22,86,23,141,24,81,26,38,28, +183,29,192,30,110,31,57,32,232,32,219,32,85,32,89,32,76,33,171,34,241,35,25,37,44,38,10,39,207,39,161,40, +30,41,234,40,89,40,197,39,63,39,41,39,186,39,77,40,138,40,13,41,253,41,187,42,253,42,187,42,242,41,64,41, +38,41,7,41,120,40,58,40,167,40,59,41,212,41,102,42,93,42,163,41,218,40,67,40,201,39,118,39,7,39,89,38, +249,37,8,38,202,37,242,36,244,35,24,35,112,34,227,33,232,32,127,31,117,30,245,29,94,29,159,28,240,27,4,27, +219,25,205,24,118,23,109,21,86,19,207,17,148,16,76,15,245,13,175,12,198,11,44,11,50,10,132,8,153,6,193,4, +248,2,76,1,172,255,36,254,33,253,138,252,176,251,157,250,211,249,24,249,37,248,57,247,24,246,88,244,149,242,94,241, +53,240,228,238,226,237,28,237,89,236,225,235,114,235,100,234,22,233,34,232,22,231,184,229,154,228,182,227,156,226,176,225, +53,225,132,224,114,223,161,222,34,222,137,221,191,220,162,219,22,218,172,216,211,215,250,214,201,213,193,212,8,212,37,211, +10,210,244,208,216,207,190,206,205,205,214,204,212,203,37,203,181,202,34,202,169,201,135,201,81,201,232,200,173,200,100,200, +189,199,84,199,137,199,193,199,208,199,50,200,232,200,205,201,15,203,73,204,221,204,30,205,150,205,27,206,155,206,71,207, +13,208,51,209,27,211,15,213,75,214,99,215,191,216,204,217,159,218,173,219,104,220,152,220,30,221,14,222,209,222,200,223, +71,225,173,226,225,227,28,229,225,229,74,230,35,231,17,232,153,232,157,233,46,235,50,236,56,237,82,239,98,241,141,242, +6,244,29,246,218,247,115,249,68,251,174,252,36,254,142,0,250,2,145,4,83,6,153,8,150,10,142,12,250,14,45,17, +250,18,240,20,243,22,7,25,152,27,250,29,131,31,43,33,137,35,189,37,132,39,75,41,227,42,97,44,44,46,172,47, +141,48,170,49,25,51,73,52,216,53,227,55,254,56,61,57,59,58,167,59,70,60,162,60,72,61,191,61,144,62,98,64, +250,65,137,66,52,67,120,68,140,69,87,70,6,71,60,71,85,71,10,72,218,72,30,73,114,73,117,74,229,75,85,77, +66,78,32,78,84,77,238,76,35,77,82,77,51,77,2,77,236,76,252,76,72,77,185,77,210,77,50,77,57,76,112,75, +159,74,88,73,227,71,214,70,75,70,242,69,75,69,10,68,151,66,123,65,131,64,45,63,116,61,135,59,145,57,236,55, +199,54,216,53,217,52,173,51,39,50,82,48,139,46,222,44,10,43,37,41,117,39,205,37,212,35,178,33,225,31,92,30, +174,28,208,26,13,25,15,23,106,20,179,17,109,15,17,13,131,10,113,8,154,6,58,4,193,1,168,255,80,253,162,250, +66,248,209,245,219,242,86,240,185,238,222,236,55,234,115,231,236,228,180,226,253,224,60,223,190,220,5,218,208,215,225,213, +199,211,115,209,236,206,151,204,15,203,2,202,111,200,29,198,203,195,26,194,196,192,248,190,117,188,225,185,204,183,62,182, +15,181,178,179,139,177,29,175,93,173,240,171,253,169,165,167,53,165,175,162,149,160,15,159,15,157,82,154,46,152,38,151, +48,150,157,148,150,146,103,144,175,142,223,141,38,141,139,139,148,137,104,136,23,136,1,136,247,135,9,136,11,136,15,136, +130,136,40,137,58,137,250,136,132,137,241,138,139,140,36,142,128,143,51,144,239,144,146,146,118,148,250,149,183,151,163,153, +57,155,42,157,148,159,246,160,87,161,123,162,82,164,181,165,31,167,251,168,95,170,88,171,177,172,1,174,236,174,24,176, +132,177,208,178,84,180,228,181,198,182,88,183,75,184,139,185,76,187,163,189,199,191,212,193,160,196,69,199,210,200,143,202, +33,205,108,207,192,209,34,213,149,216,104,219,143,222,195,225,49,228,11,231,243,234,140,238,215,241,233,245,3,250,95,253, +196,0,39,4,230,6,200,9,61,13,130,16,204,19,129,23,189,26,135,29,242,32,87,36,184,38,241,40,107,43,108,45, +104,47,204,49,120,51,101,52,246,53,24,56,20,58,56,60,58,62,151,63,76,65,154,67,235,68,51,69,248,69,40,71, +42,72,186,73,199,75,97,77,249,78,19,81,187,82,155,83,102,84,15,85,166,85,14,87,10,89,115,90,74,91,21,92, +198,92,128,93,85,94,196,94,11,95,21,96,165,97,213,98,159,99,41,100,60,100,26,100,66,100,170,100,13,101,35,101, +201,100,128,100,168,100,167,100,250,99,39,99,216,98,44,99,181,99,144,99,105,98,233,96,64,95,62,93,207,91,135,91, +42,91,55,90,199,89,174,89,173,88,1,87,62,85,9,83,233,80,208,79,240,78,66,77,78,75,128,73,165,71,238,69, +36,68,198,65,155,63,98,62,43,61,78,59,41,57,120,54,80,51,0,49,133,47,151,45,132,43,10,42,90,40,69,38, +168,36,232,34,47,32,167,29,30,28,195,26,64,25,148,23,57,21,230,18,179,17,99,16,155,13,177,10,245,8,234,7, +65,7,158,6,199,4,1,2,12,0,226,254,90,253,162,251,239,249,179,247,132,245,57,244,223,242,154,240,69,238,137,236, +27,235,201,233,48,232,223,229,109,227,142,225,191,223,101,221,176,218,226,215,130,213,96,212,32,212,116,211,237,209,232,207, +165,205,153,203,31,202,181,200,21,199,231,197,93,197,220,196,30,196,34,195,223,193,229,192,186,192,200,192,134,192,79,192, +58,192,12,192,55,192,209,192,221,192,78,192,121,192,179,193,11,195,33,196,247,196,70,197,116,197,101,198,211,199,241,200, +234,201,16,203,27,204,2,205,215,205,24,206,219,205,74,206,185,207,36,209,40,210,69,211,121,212,79,213,181,213,217,213, +251,213,131,214,137,215,211,216,72,218,177,219,170,220,85,221,32,222,237,222,184,223,25,225,2,227,142,228,169,229,5,231, +131,232,175,233,235,234,152,236,58,238,145,239,34,241,30,243,16,245,217,246,229,248,62,251,98,253,38,255,236,0,225,2, +229,4,251,6,248,8,77,10,34,11,138,12,245,14,165,17,246,19,212,21,80,23,153,24,202,25,162,26,44,27,17,28, +142,29,58,31,239,32,139,34,167,35,116,36,158,37,252,38,237,39,126,40,250,40,101,41,18,42,81,43,152,44,62,45, +105,45,147,45,240,45,116,46,221,46,15,47,41,47,32,47,245,46,33,47,172,47,198,47,94,47,108,47,0,48,54,48, +244,47,155,47,21,47,174,46,8,47,151,47,99,47,255,46,100,47,5,48,233,47,55,47,112,46,201,45,144,45,190,45, +145,45,198,44,43,44,55,44,87,44,16,44,129,43,209,42,47,42,221,41,152,41,223,40,226,39,33,39,140,38,218,37, +250,36,217,35,162,34,242,33,206,33,66,33,182,31,170,29,219,27,128,26,66,25,189,23,41,22,4,21,12,20,179,18, +9,17,79,15,144,13,45,12,75,11,50,10,155,8,35,7,237,5,165,4,101,3,27,2,136,0,65,255,151,254,148,253, +254,251,191,250,167,249,20,248,199,246,13,246,234,244,150,243,6,243,93,242,201,240,94,239,117,238,20,237,139,235,207,234, +103,234,206,233,71,233,124,232,16,231,149,229,77,228,245,226,209,225,238,224,219,223,192,222,177,221,9,220,42,218,14,217, +25,216,148,214,85,213,114,212,242,210,68,209,37,208,216,206,65,205,75,204,138,203,110,202,174,201,241,200,51,199,172,197, +119,197,37,197,61,196,26,196,47,196,93,195,245,194,115,195,250,194,167,193,127,193,47,194,116,194,252,194,38,196,248,196, +151,197,203,198,247,199,130,200,255,200,185,201,112,202,63,203,72,204,103,205,156,206,215,207,255,208,85,210,222,211,1,213, +110,213,135,213,197,213,118,214,123,215,97,216,43,217,56,218,96,219,103,220,115,221,67,222,153,222,46,223,91,224,71,225, +220,225,252,226,130,228,229,229,158,231,172,233,43,235,94,236,18,238,164,239,126,240,137,241,106,243,202,245,177,248,3,252, +195,254,149,0,89,2,111,4,93,6,8,8,211,9,242,11,121,14,104,17,74,20,144,22,133,24,7,27,251,29,50,32, +79,33,78,34,182,35,48,37,185,38,80,40,133,41,188,42,247,44,185,47,148,49,99,50,188,50,184,50,201,50,141,51, +127,52,31,53,72,54,115,56,113,58,62,59,56,59,62,59,228,59,48,61,117,62,17,63,90,63,50,64,217,65,149,67, +145,68,210,68,6,69,182,69,250,70,77,72,161,72,236,71,193,71,225,72,23,74,168,74,35,75,144,75,167,75,220,75, +202,75,68,74,48,72,206,71,9,73,235,73,164,73,164,72,146,71,44,71,88,71,217,70,29,69,1,67,111,65,174,64, +94,64,138,63,220,61,96,60,212,59,100,59,26,58,16,56,237,53,72,52,51,51,5,50,29,48,186,45,180,43,179,42, +87,42,85,41,23,39,125,36,85,34,154,32,78,31,42,30,88,28,239,25,248,23,89,22,65,20,5,18,35,16,34,14, +218,11,167,9,57,7,102,4,248,1,46,0,99,254,110,252,105,250,5,248,101,245,248,242,127,240,201,237,97,235,97,233, +81,231,78,229,161,227,243,225,255,223,217,221,93,219,172,216,130,214,5,213,125,211,149,209,134,207,65,205,204,202,202,200, +146,199,128,198,240,196,6,195,4,193,220,190,147,188,72,186,11,184,57,182,17,181,188,179,71,177,89,174,29,172,108,170, +159,168,116,166,138,163,70,160,90,158,255,157,247,156,36,154,220,150,45,148,52,146,27,145,57,144,123,142,164,140,4,140, +213,139,191,138,250,136,111,135,245,134,1,136,100,137,49,137,163,135,164,134,69,135,76,137,133,139,86,140,241,139,104,140, +106,142,141,144,190,145,0,146,35,146,171,147,171,150,2,153,239,153,7,155,199,156,85,158,191,159,224,160,253,160,81,161, +157,163,184,166,159,168,126,169,17,170,184,170,66,172,113,174,181,175,239,175,88,176,55,177,172,178,10,181,61,183,87,184, +155,185,243,187,82,190,36,192,167,193,170,194,216,195,112,198,178,201,62,204,183,206,222,209,57,213,204,216,125,220,249,222, +92,224,174,226,104,230,72,234,210,237,253,240,220,243,149,247,141,252,2,1,253,3,149,6,90,9,26,12,45,15,85,18, +232,20,195,23,210,27,4,32,70,35,198,37,141,39,6,41,104,43,88,46,37,48,20,49,185,50,37,53,174,55,41,58, +28,60,116,61,53,63,114,65,244,66,181,67,137,68,80,69,12,70,144,71,171,73,126,75,68,77,104,79,77,81,136,82, +90,83,200,83,215,83,20,84,240,84,129,86,141,88,78,90,46,91,175,91,105,92,58,93,11,94,234,94,133,95,225,95, +134,96,74,97,163,97,214,97,90,98,45,99,91,100,155,101,1,102,119,101,231,100,132,100,233,99,75,99,222,98,154,98, +246,98,222,99,247,99,206,98,111,97,41,96,150,94,33,93,15,92,249,90,40,90,230,89,58,89,191,87,87,86,9,85, +94,83,0,82,24,81,121,79,48,77,93,75,211,73,11,72,125,70,24,69,110,67,32,66,68,65,162,63,53,61,249,58, +162,56,236,53,231,51,166,50,28,49,128,47,80,46,225,44,42,43,210,41,49,40,181,37,116,35,246,33,132,32,14,31, +165,29,169,27,124,25,26,24,222,22,203,20,142,18,222,16,106,15,19,14,175,12,154,10,21,8,18,6,141,4,240,2, +19,1,243,254,255,252,227,251,248,250,255,248,71,246,185,243,98,241,122,239,53,238,154,236,68,234,95,232,17,231,46,229, +199,226,141,224,48,222,235,219,161,218,175,217,232,215,191,213,245,211,76,210,188,208,101,207,217,205,74,204,134,203,41,203, +29,202,99,200,154,198,24,197,47,196,253,195,19,196,23,196,242,195,151,195,20,195,97,194,82,193,91,192,65,192,208,192, +108,193,47,194,21,195,121,195,100,195,137,195,244,195,62,196,115,196,225,196,187,197,235,198,224,199,29,200,236,199,240,199, +152,200,219,201,14,203,163,203,255,203,128,204,209,204,14,205,152,205,248,205,34,206,40,207,0,209,84,210,230,210,44,211, +14,211,40,211,113,212,13,214,231,214,212,215,91,217,179,218,239,219,88,221,7,222,38,222,90,223,147,225,115,227,254,228, +162,230,36,232,225,233,249,235,92,237,6,238,91,239,147,241,18,244,192,246,232,248,228,249,0,251,68,253,134,255,49,1, +23,3,15,5,183,6,191,8,214,10,205,11,107,12,24,14,72,16,56,18,28,20,150,21,139,22,17,24,29,26,58,27, +101,27,208,27,203,28,102,30,170,32,110,34,223,34,31,35,35,36,53,37,205,37,71,38,196,38,107,39,158,40,12,42, +225,42,10,43,38,43,170,43,154,44,146,45,41,46,118,46,212,46,106,47,32,48,140,48,102,48,56,48,209,48,8,50, +11,51,111,51,54,51,180,50,147,50,9,51,110,51,70,51,242,50,14,51,186,51,114,52,111,52,140,51,147,50,44,50, +25,50,205,49,60,49,212,48,221,48,37,49,56,49,175,48,104,47,5,46,127,45,160,45,51,45,251,43,201,42,211,41, +221,40,1,40,254,38,148,37,137,36,60,36,155,35,44,34,184,32,84,31,153,29,3,28,217,26,164,25,140,24,213,23, +222,22,132,21,89,20,18,19,86,17,234,15,231,14,139,13,60,12,125,11,92,10,133,8,253,6,199,5,67,4,250,2, +29,2,247,0,228,255,113,255,114,254,54,252,10,250,184,248,213,247,98,247,5,247,156,245,141,243,132,242,95,242,133,241, +166,239,206,237,208,236,146,236,14,236,87,234,237,231,20,230,53,229,188,228,209,227,252,225,226,223,163,222,23,222,16,221, +54,219,45,217,132,215,112,214,198,213,233,212,135,211,16,210,244,208,18,208,7,207,164,205,39,204,3,203,78,202,174,201, +224,200,250,199,78,199,21,199,24,199,239,198,146,198,45,198,188,197,81,197,38,197,65,197,163,197,114,198,126,199,119,200, +119,201,128,202,40,203,120,203,229,203,107,204,214,204,84,205,240,205,148,206,147,207,12,209,131,210,170,211,128,212,247,212, +71,213,167,213,179,213,90,213,112,213,99,214,230,215,213,217,185,219,208,220,142,221,217,222,239,223,255,223,40,224,85,225, +189,226,252,227,167,229,195,231,11,234,140,236,207,238,71,240,117,241,212,242,0,244,227,244,33,246,31,248,212,250,227,253, +156,0,211,2,21,5,123,7,129,9,210,10,107,11,212,11,59,13,242,15,208,18,38,21,77,23,86,25,83,27,156,29, +103,31,167,31,134,31,172,32,113,34,191,35,3,37,156,38,136,40,96,43,157,46,39,48,219,47,228,47,251,48,37,50, +28,51,255,51,210,52,160,54,235,57,193,60,178,61,35,62,60,63,44,64,193,64,171,65,114,66,194,66,214,67,5,70, +188,71,112,72,81,73,193,74,234,75,74,76,219,75,236,74,104,74,214,74,121,75,168,75,197,75,50,76,170,76,224,76, +151,76,134,75,226,73,98,72,105,71,178,70,234,69,52,69,212,68,150,68,27,68,104,67,116,66,242,64,82,63,116,62, +207,61,79,60,151,58,171,57,2,57,49,56,196,55,53,55,157,53,237,51,245,50,167,49,182,47,45,46,209,44,239,42, +95,41,120,40,45,39,129,37,35,36,88,34,182,31,69,29,38,27,165,24,80,22,140,20,99,18,185,15,128,13,149,11, +80,9,179,6,155,3,32,0,75,253,63,251,222,248,29,246,182,243,105,241,18,239,26,237,239,234,9,232,116,229,165,227, +141,225,251,222,125,220,213,217,71,215,208,213,231,212,80,211,101,209,174,207,191,205,183,203,203,201,72,199,124,196,181,194, +137,193,206,191,246,189,74,188,31,186,28,184,254,182,78,181,78,178,197,175,63,174,81,172,5,170,25,168,205,165,19,163, +76,161,42,160,45,158,176,155,172,153,190,151,183,149,4,148,60,146,45,144,226,142,164,142,81,142,74,141,197,139,33,138, +62,137,153,137,1,138,120,137,250,136,140,137,188,138,231,139,204,140,28,141,55,141,251,141,51,143,246,143,52,144,136,144, +114,145,41,147,42,149,162,150,184,151,251,152,44,154,47,155,84,156,249,156,167,156,240,156,243,158,62,161,177,162,253,163, +83,165,119,166,47,168,128,170,247,171,130,172,112,173,208,174,46,176,247,177,28,180,1,182,18,184,177,186,44,189,71,191, +75,193,250,194,185,196,155,199,21,203,211,205,56,208,23,211,40,214,94,217,170,220,8,223,156,224,51,227,9,231,164,234, +185,237,182,240,115,243,78,246,208,249,27,253,148,255,13,2,209,4,102,7,4,10,149,12,115,14,116,16,241,19,16,24, +72,27,172,29,172,31,93,33,59,35,83,37,243,38,112,40,200,42,173,45,62,48,106,50,80,52,3,54,252,55,88,58, +151,60,139,62,74,64,178,65,249,66,150,68,113,70,76,72,48,74,11,76,230,77,24,80,114,82,72,84,94,85,229,85, +91,86,154,87,170,89,81,91,251,91,75,92,164,92,49,93,69,94,70,95,85,95,57,95,27,96,109,97,24,98,206,97, +207,96,46,96,246,96,34,98,254,97,13,97,160,96,181,96,12,97,98,97,192,96,77,95,210,94,144,95,231,95,53,95, +233,93,76,92,37,91,250,90,182,90,142,89,92,88,168,87,26,87,184,86,39,86,179,84,41,83,174,82,102,82,26,81, +38,79,35,77,73,75,34,74,142,73,137,72,206,70,220,68,2,67,159,65,145,64,191,62,6,60,159,57,185,55,170,53, +181,51,201,49,19,47,97,44,33,43,86,42,139,40,110,38,172,36,182,34,196,32,51,31,248,28,202,25,66,23,31,22, +68,21,195,19,153,17,35,15,10,13,147,11,48,10,108,8,102,6,92,4,147,2,17,1,48,255,162,252,58,250,179,248, +205,247,237,246,127,245,62,243,200,240,221,238,69,237,140,235,191,233,231,231,21,230,155,228,48,227,34,225,203,222,232,220, +22,219,247,216,84,215,136,214,161,213,30,212,136,210,47,209,227,207,160,206,112,205,49,204,13,203,111,202,20,202,45,201, +209,199,15,199,52,199,101,199,50,199,215,198,64,198,115,197,248,196,199,196,69,196,176,195,155,195,200,195,22,196,229,196, +177,197,192,197,175,197,43,198,150,198,149,198,182,198,14,199,113,199,45,200,15,201,124,201,231,201,255,202,61,204,0,205, +138,205,5,206,99,206,234,206,153,207,42,208,240,208,27,210,23,211,210,211,255,212,141,214,228,215,30,217,94,218,76,219, +19,220,45,221,90,222,91,223,177,224,148,226,125,228,7,230,44,231,34,232,96,233,6,235,130,236,136,237,135,238,215,239, +135,241,156,243,152,245,225,246,226,247,81,249,222,250,24,252,100,253,245,254,108,0,219,1,136,3,25,5,104,6,2,8, +255,9,180,11,204,12,157,13,124,14,134,15,170,16,213,17,75,19,64,21,59,23,189,24,254,25,43,27,251,27,142,28, +100,29,84,30,233,30,96,31,92,32,253,33,199,35,8,37,139,37,225,37,125,38,253,38,20,39,28,39,73,39,103,39, +139,39,221,39,44,40,116,40,247,40,150,41,231,41,208,41,122,41,20,41,215,40,197,40,180,40,187,40,227,40,235,40, +243,40,93,41,201,41,155,41,38,41,234,40,159,40,49,40,21,40,47,40,1,40,194,39,212,39,207,39,90,39,202,38, +105,38,42,38,8,38,205,37,36,37,85,36,240,35,201,35,80,35,153,34,237,33,33,33,39,32,80,31,142,30,133,29, +89,28,81,27,45,26,231,24,248,23,71,23,43,22,183,20,115,19,30,18,76,16,120,14,39,13,12,12,208,10,149,9, +98,8,11,7,186,5,167,4,165,3,87,2,190,0,47,255,223,253,183,252,181,251,237,250,20,250,205,248,95,247,73,246, +129,245,205,244,21,244,30,243,231,241,220,240,2,240,237,238,209,237,24,237,104,236,122,235,179,234,255,233,236,232,212,231, +44,231,135,230,170,229,211,228,170,227,7,226,220,224,120,224,184,223,55,222,235,220,49,220,162,219,69,219,10,219,76,218, +16,217,48,216,194,215,1,215,213,213,15,213,53,213,246,213,149,214,142,214,1,214,153,213,206,213,58,214,39,214,151,213, +61,213,125,213,53,214,37,215,248,215,113,216,232,216,203,217,174,218,233,218,183,218,213,218,129,219,115,220,60,221,189,221, +114,222,193,223,42,225,253,225,103,226,192,226,236,226,36,227,223,227,198,228,77,229,243,229,65,231,152,232,109,233,66,234, +65,235,209,235,10,236,182,236,224,237,24,239,136,240,69,242,203,243,18,245,167,246,88,248,116,249,54,250,97,251,17,253, +229,254,156,0,37,2,185,3,180,5,231,7,184,9,251,10,242,11,255,12,141,14,160,16,118,18,129,19,80,20,195,21, +228,23,251,25,132,27,166,28,200,29,237,30,219,31,143,32,48,33,253,33,68,35,205,36,223,37,111,38,44,39,53,40, +45,41,44,42,50,43,213,43,86,44,106,45,204,46,169,47,224,47,215,47,50,48,133,49,82,51,118,52,23,53,27,54, +89,55,75,56,29,57,175,57,186,57,249,57,0,59,5,60,110,60,191,60,96,61,59,62,31,63,150,63,93,63,0,63, +252,62,49,63,89,63,253,62,198,61,162,60,171,60,46,61,245,60,32,60,25,59,231,57,241,56,65,56,25,55,160,53, +201,52,78,52,78,51,219,49,52,48,111,46,37,45,80,44,250,42,46,41,208,39,179,38,128,37,182,36,25,36,198,34, +11,33,115,31,141,29,113,27,221,25,140,24,11,23,206,21,194,20,71,19,194,17,161,16,32,15,248,12,219,10,182,8, +38,6,195,3,242,1,48,0,76,254,105,252,55,250,180,247,109,245,118,243,100,241,5,239,76,236,83,233,136,230,42,228, +254,225,205,223,129,221,20,219,182,216,115,214,245,211,56,209,174,206,121,204,121,202,170,200,201,198,146,196,94,194,110,192, +83,190,221,187,104,185,18,183,249,180,156,179,214,178,163,177,144,175,35,173,246,170,82,169,29,168,180,166,143,164,14,162, +244,159,117,158,48,157,224,155,159,154,165,153,1,153,148,152,214,151,54,150,81,148,137,147,177,147,53,147,243,145,93,145, +4,146,107,147,38,149,96,150,96,150,12,150,196,150,67,152,155,153,159,154,93,155,16,156,104,157,81,159,227,160,60,162, +50,164,140,166,105,168,138,169,41,170,204,170,21,172,225,173,125,175,209,176,29,178,116,179,41,181,67,183,200,184,51,185, +106,185,52,186,126,187,18,189,137,190,149,191,225,192,250,194,1,197,83,198,157,199,38,201,127,202,244,203,211,205,133,207, +16,209,101,211,151,214,228,217,239,220,124,223,107,225,105,227,1,230,174,232,18,235,141,237,71,240,73,243,216,246,154,250, +204,253,173,0,205,3,167,6,163,8,56,10,5,12,33,14,143,16,14,19,29,21,12,23,187,25,2,29,202,31,127,33, +104,34,28,35,24,36,68,37,58,38,77,39,29,41,72,43,245,44,28,46,6,47,201,47,242,48,220,50,128,52,241,52, +6,53,212,53,38,55,133,56,246,57,84,59,160,60,65,62,29,64,147,65,143,66,98,67,31,68,251,68,44,70,128,71, +235,72,181,74,145,76,234,77,198,78,102,79,248,79,221,80,18,82,12,83,211,83,170,84,13,85,229,84,41,85,0,86, +169,86,47,87,145,87,250,86,207,85,126,85,145,85,189,84,173,83,102,83,107,83,99,83,118,83,19,83,251,81,235,80, +214,79,40,78,115,76,108,75,207,74,124,74,72,74,78,73,161,71,173,70,171,70,101,70,86,69,186,67,191,65,224,63, +112,62,27,61,222,59,31,59,164,58,248,57,13,57,182,55,1,54,135,52,41,51,79,49,109,47,254,45,98,44,176,42, +197,41,8,41,124,39,242,37,244,36,104,35,28,33,41,31,178,29,31,28,101,26,116,24,111,22,35,21,139,20,134,19, +196,17,202,15,182,13,210,11,155,10,116,9,153,7,181,5,147,4,184,3,93,2,93,0,49,254,179,252,12,252,66,251, +151,249,55,247,162,244,165,242,201,241,5,241,43,239,248,236,117,235,45,234,175,232,18,231,195,228,179,225,82,223,72,222, +112,221,240,219,247,217,3,216,168,214,218,213,157,212,212,210,126,209,187,208,251,207,61,207,22,206,223,203,227,201,235,201, +27,203,142,203,51,203,212,202,173,202,234,202,80,203,12,203,54,202,237,201,166,202,207,203,165,204,192,204,154,204,39,205, +94,206,84,207,166,207,125,207,60,207,164,207,206,208,110,209,204,208,2,208,53,208,87,209,201,210,171,211,104,211,178,210, +154,210,10,211,106,211,148,211,152,211,229,211,36,213,194,214,101,215,49,215,95,215,48,216,78,217,166,218,182,219,243,219, +46,220,128,221,129,223,53,225,111,226,112,227,134,228,29,230,10,232,100,233,253,233,223,234,198,236,40,239,24,241,90,242, +104,243,236,244,17,247,52,249,148,250,83,251,41,252,90,253,167,254,240,255,28,1,2,2,243,2,106,4,11,6,5,7, +110,7,4,8,228,8,151,9,16,10,167,10,118,11,76,12,28,13,230,13,121,14,194,14,26,15,213,15,216,16,224,17, +181,18,45,19,121,19,3,20,168,20,0,21,76,21,254,21,226,22,190,23,175,24,100,25,129,25,123,25,222,25,140,26, +110,27,104,28,229,28,220,28,39,29,242,29,148,30,7,31,180,31,125,32,70,33,31,34,141,34,61,34,216,33,243,33, +94,34,228,34,136,35,17,36,101,36,176,36,225,36,184,36,72,36,221,35,164,35,134,35,79,35,16,35,247,34,222,34, +165,34,136,34,101,34,197,33,225,32,48,32,112,31,146,30,21,30,180,29,205,28,225,27,138,27,68,27,172,26,7,26, +36,25,202,23,125,22,127,21,146,20,218,19,119,19,8,19,139,18,34,18,106,17,107,16,205,15,93,15,97,14,42,13, +83,12,177,11,52,11,37,11,76,11,53,11,178,10,181,9,126,8,110,7,114,6,141,5,51,5,40,5,182,4,20,4, +160,3,250,2,84,2,81,2,47,2,23,1,229,255,35,255,25,254,232,252,76,252,208,251,15,251,173,250,152,250,48,250, +177,249,25,249,195,247,39,246,60,245,156,244,203,243,59,243,212,242,22,242,114,241,34,241,106,240,54,239,63,238,184,237, +113,237,39,237,83,236,13,235,55,234,205,233,37,233,129,232,59,232,194,231,244,230,86,230,181,229,179,228,199,227,69,227, +3,227,6,227,19,227,154,226,211,225,83,225,219,224,31,224,133,223,57,223,18,223,60,223,182,223,23,224,90,224,175,224, +1,225,109,225,7,226,60,226,208,225,155,225,47,226,46,227,95,228,218,229,107,231,208,232,13,234,38,235,30,236,237,236, +98,237,163,237,77,238,138,239,195,240,165,241,165,242,49,244,0,246,71,247,166,247,155,247,225,247,175,248,158,249,6,250, +197,249,208,249,5,251,215,252,44,254,168,254,99,254,228,253,57,254,107,255,43,0,56,0,213,0,118,2,127,4,106,6, +108,7,30,7,0,7,124,8,105,10,57,11,119,11,73,12,4,14,141,16,21,19,127,20,41,21,108,22,102,24,10,26, +167,26,130,26,190,26,106,28,27,31,152,33,123,35,251,36,106,38,50,40,232,41,95,42,233,41,25,42,29,43,25,44, +244,44,154,45,247,45,5,47,8,49,55,50,211,49,74,49,42,49,211,48,159,48,191,48,96,48,200,47,5,48,183,48, +28,49,126,49,174,49,18,49,71,48,244,47,150,47,25,47,15,47,38,47,237,46,192,46,127,46,162,45,190,44,136,44, +112,44,228,43,41,43,83,42,39,41,242,39,64,39,48,39,70,39,187,38,135,37,117,36,180,35,170,34,92,33,50,32, +238,30,158,29,233,28,112,28,37,27,75,25,217,23,173,22,50,21,123,19,175,17,215,15,44,14,186,12,76,11,224,9, +81,8,88,6,110,4,78,3,141,2,58,1,71,255,34,253,9,251,88,249,19,248,101,246,255,243,226,241,162,240,136,239, +5,238,69,236,94,234,82,232,112,230,163,228,89,226,141,223,223,220,171,218,224,216,55,215,66,213,13,211,76,209,19,208, +113,206,245,203,32,201,69,198,131,195,58,193,32,191,52,188,176,184,64,182,141,181,78,181,56,180,71,178,244,175,91,173, +151,170,0,168,177,165,176,163,164,162,23,163,31,164,128,164,104,164,104,164,64,164,251,163,1,164,175,163,124,162,170,161, +106,162,22,164,183,165,8,167,0,168,76,169,156,171,168,173,203,173,204,172,26,172,170,171,193,171,51,173,52,175,172,176, +111,178,244,180,179,182,168,182,100,181,148,179,14,178,251,177,58,179,142,180,164,181,40,183,87,185,123,187,115,188,217,187, +160,186,234,185,253,185,174,186,132,187,13,188,36,189,15,192,31,196,199,199,159,202,58,204,58,204,53,204,131,205,179,206, +21,207,215,208,223,212,165,217,98,222,172,226,110,229,136,231,182,234,119,237,120,237,54,236,123,236,220,238,254,242,254,247, +253,251,148,254,80,1,110,4,166,6,144,7,112,7,211,6,75,7,149,9,21,12,145,13,19,15,201,17,89,21,96,24, +97,25,129,24,246,23,70,25,159,27,125,29,33,30,30,30,101,31,205,34,92,38,97,40,176,41,234,42,126,43,177,43, +234,43,196,43,51,44,227,46,219,50,242,53,254,55,102,57,236,57,88,58,108,59,6,60,143,59,146,59,255,60,65,63, +210,65,233,67,153,68,200,68,6,70,185,71,134,72,191,72,254,72,220,72,67,72,218,71,228,71,119,72,252,73,101,76, +147,78,76,79,144,78,115,77,173,76,7,76,58,75,102,74,192,73,201,73,252,74,193,76,202,77,169,77,233,76,20,76, +131,75,39,75,144,74,216,73,126,73,3,73,165,71,14,70,84,69,111,69,236,69,100,70,218,69,212,67,121,65,217,63, +132,62,9,61,229,59,70,59,156,58,153,57,119,56,94,55,93,54,150,53,165,52,176,50,229,47,227,45,157,45,19,46, +29,46,159,45,137,44,226,42,154,41,21,41,67,40,197,38,174,37,58,37,134,36,106,35,71,34,73,33,242,32,75,33, +1,33,114,31,212,29,218,28,222,27,178,26,121,25,169,23,106,21,1,20,183,19,158,19,63,19,109,18,157,16,243,13, +99,11,32,9,177,6,79,4,178,2,223,1,33,1,217,255,252,253,251,251,74,250,253,248,198,247,53,246,65,244,108,242, +14,241,225,239,136,238,5,237,163,235,0,235,152,235,184,236,242,236,211,235,33,234,166,232,189,231,98,231,25,231,214,230, +135,231,70,233,71,234,98,233,233,231,90,231,102,231,85,231,22,231,137,230,212,229,221,229,197,230,66,231,159,230,143,229, +173,228,48,228,95,228,187,228,34,228,162,226,63,225,52,224,80,223,233,222,249,222,0,223,24,223,65,223,151,222,221,220, +26,219,241,217,95,217,150,217,67,218,116,218,45,218,58,218,142,218,167,218,145,218,82,218,206,217,133,217,249,217,215,218, +133,219,220,219,37,220,193,220,138,221,236,221,252,221,89,222,243,222,98,223,169,223,157,223,1,223,135,222,231,222,198,223, +182,224,155,225,244,225,189,225,226,225,70,226,238,225,90,225,152,225,40,226,137,226,96,227,132,228,13,229,91,229,19,230, +146,230,121,230,128,230,241,230,134,231,89,232,119,233,120,234,30,235,143,235,39,236,68,237,162,238,125,239,215,239,107,240, +90,241,48,242,162,242,185,242,239,242,224,243,98,245,188,246,172,247,54,248,81,248,83,248,117,248,89,248,57,248,226,248, +7,250,215,250,133,251,31,252,235,251,57,251,55,251,193,251,24,252,131,252,68,253,225,253,89,254,251,254,149,255,12,0, +155,0,27,1,126,1,59,2,88,3,56,4,140,4,133,4,148,4,51,5,74,6,87,7,101,8,151,9,84,10,70,10, +244,9,180,9,152,9,15,10,11,11,189,11,248,11,47,12,78,12,40,12,249,11,181,11,76,11,59,11,125,11,85,11, +182,10,53,10,236,9,189,9,162,9,83,9,233,8,20,9,186,9,222,9,74,9,141,8,4,8,244,7,90,8,123,8, +45,8,102,8,98,9,24,10,8,10,167,9,105,9,179,9,154,10,77,11,52,11,11,11,158,11,155,12,83,13,129,13, +71,13,64,13,232,13,176,14,203,14,136,14,186,14,115,15,49,16,156,16,183,16,203,16,46,17,205,17,29,18,193,17, +14,17,193,16,31,17,160,17,178,17,103,17,73,17,189,17,157,18,49,19,217,18,223,17,24,17,195,16,119,16,33,16, +32,16,133,16,245,16,52,17,52,17,246,16,164,16,103,16,31,16,184,15,134,15,145,15,84,15,207,14,182,14,19,15, +65,15,48,15,47,15,35,15,25,15,82,15,84,15,168,14,11,14,37,14,103,14,121,14,224,14,137,15,196,15,135,15, +41,15,179,14,89,14,112,14,176,14,177,14,160,14,202,14,7,15,13,15,186,14,50,14,187,13,103,13,20,13,198,12, +111,12,214,11,57,11,52,11,157,11,149,11,214,10,3,10,165,9,125,9,216,8,124,7,11,6,77,5,86,5,159,5, +133,5,213,4,55,4,103,4,234,4,182,4,200,3,225,2,82,2,26,2,58,2,97,2,54,2,255,1,81,2,57,3, +6,4,244,3,58,3,243,2,119,3,216,3,110,3,183,2,111,2,232,2,227,3,121,4,19,4,124,3,181,3,119,4, +222,4,145,4,174,3,178,2,99,2,224,2,80,3,236,2,224,1,47,1,166,1,153,2,89,2,138,0,198,254,123,254, +61,255,131,255,105,254,195,252,61,252,34,253,250,253,163,253,98,252,29,251,172,250,45,251,107,251,98,250,10,249,235,248, +245,249,26,251,159,251,48,251,79,250,48,250,222,250,222,250,138,249,9,248,149,247,81,248,136,249,30,250,144,249,217,248, +55,249,49,250,22,250,76,248,18,246,218,244,177,244,177,244,109,244,32,244,1,244,33,244,101,244,39,244,196,242,184,240, +21,239,19,238,54,237,57,236,47,235,111,234,122,234,21,235,20,235,218,233,27,232,176,230,181,229,211,228,149,227,230,225, +169,224,159,224,27,225,18,225,162,224,47,224,124,223,104,222,29,221,129,219,219,217,29,217,92,217,178,217,218,217,3,218, +194,217,250,216,97,216,231,215,181,214,16,213,14,212,201,211,193,211,233,211,70,212,163,212,234,212,2,213,181,212,24,212, +125,211,20,211,224,210,183,210,130,210,185,210,183,211,210,212,86,213,154,213,236,213,249,213,202,213,174,213,125,213,67,213, +136,213,54,214,204,214,92,215,238,215,54,216,133,216,49,217,132,217,33,217,231,216,64,217,177,217,46,218,213,218,58,219, +130,219,94,220,110,221,201,221,188,221,19,222,198,222,144,223,98,224,4,225,114,225,19,226,2,227,238,227,195,228,146,229, +95,230,109,231,237,232,103,234,81,235,228,235,182,236,6,238,154,239,14,241,63,242,132,243,57,245,23,247,119,248,59,249, +19,250,152,251,115,253,209,254,134,255,51,0,124,1,110,3,116,5,211,6,155,7,158,8,31,10,109,11,42,12,194,12, +109,13,31,14,31,15,138,16,208,17,170,18,157,19,236,20,11,22,103,22,27,22,208,21,58,22,85,23,76,24,158,24, +226,24,194,25,244,26,189,27,232,27,221,27,50,28,1,29,158,29,113,29,246,28,33,29,56,30,179,31,205,32,21,33, +237,32,50,33,255,33,127,34,60,34,164,33,89,33,169,33,109,34,1,35,0,35,243,34,124,35,54,36,55,36,99,35, +135,34,88,34,179,34,3,35,253,34,178,34,95,34,106,34,230,34,22,35,127,34,203,33,135,33,47,33,109,32,187,31, +81,31,10,31,248,30,250,30,149,30,210,29,31,29,145,28,4,28,58,27,229,25,111,24,202,23,201,23,100,23,137,22, +210,21,48,21,108,20,159,19,159,18,88,17,57,16,74,15,48,14,49,13,174,12,94,12,22,12,218,11,40,11,215,9, +180,8,13,8,89,7,148,6,28,6,178,5,34,5,191,4,166,4,172,4,188,4,151,4,7,4,62,3,104,2,177,1, +139,1,202,1,148,1,241,0,145,0,82,0,3,0,50,0,141,0,4,0,248,254,129,254,72,254,189,253,104,253,121,253, +104,253,36,253,186,252,239,251,38,251,218,250,160,250,80,250,91,250,59,250,50,249,44,248,46,248,125,248,98,248,54,248, +243,247,98,247,52,247,183,247,4,248,208,247,222,247,91,248,210,248,50,249,121,249,137,249,203,249,152,250,90,251,149,251, +196,251,96,252,66,253,57,254,11,255,65,255,3,255,49,255,18,0,9,1,169,1,12,2,88,2,182,2,59,3,165,3, +201,3,2,4,164,4,132,5,87,6,242,6,104,7,15,8,247,8,135,9,123,9,107,9,211,9,149,10,141,11,124,12, +235,12,15,13,174,13,236,14,59,16,66,17,226,17,49,18,152,18,63,19,232,19,181,20,213,21,230,22,208,23,250,24, +9,26,114,26,214,26,192,27,132,28,216,28,71,29,164,29,144,29,212,29,248,30,35,32,144,32,79,32,183,31,115,31, +253,31,154,32,124,32,25,32,254,31,244,31,244,31,23,32,239,31,119,31,74,31,79,31,239,30,97,30,30,30,10,30, +11,30,42,30,18,30,131,29,215,28,110,28,70,28,36,28,186,27,17,27,152,26,106,26,69,26,41,26,23,26,194,25, +77,25,25,25,190,24,188,23,158,22,243,21,118,21,0,21,172,20,19,20,14,19,66,18,200,17,249,16,223,15,250,14, +21,14,245,12,8,12,71,11,21,10,148,8,121,7,182,6,219,5,243,4,20,4,23,3,19,2,50,1,53,0,252,254, +203,253,197,252,225,251,66,251,192,250,218,249,173,248,219,247,87,247,145,246,129,245,121,244,134,243,179,242,19,242,100,241, +103,240,62,239,22,238,7,237,40,236,96,235,126,234,147,233,153,232,77,231,215,229,165,228,146,227,95,226,88,225,137,224, +129,223,35,222,169,220,29,219,191,217,204,216,213,215,132,214,103,213,203,212,56,212,142,211,240,210,253,209,151,208,104,207, +181,206,36,206,178,205,130,205,100,205,81,205,99,205,64,205,181,204,78,204,107,204,151,204,107,204,36,204,2,204,238,203, +220,203,25,204,195,204,105,205,175,205,208,205,250,205,247,205,218,205,242,205,16,206,7,206,55,206,200,206,105,207,15,208, +190,208,20,209,5,209,22,209,80,209,102,209,140,209,15,210,202,210,152,211,120,212,57,213,206,213,112,214,44,215,251,215, +220,216,144,217,23,218,17,219,163,220,31,222,88,223,201,224,92,226,182,227,35,229,208,230,56,232,51,233,100,234,33,236, +254,237,160,239,76,241,112,243,222,245,234,247,104,249,193,250,42,252,156,253,67,255,37,1,228,2,115,4,75,6,160,8, +13,11,16,13,136,14,199,15,46,17,196,18,100,20,8,22,175,23,74,25,236,26,161,28,84,30,12,32,227,33,189,35, +123,37,3,39,34,40,252,40,48,42,234,43,175,45,76,47,1,49,220,50,186,52,126,54,223,55,194,56,139,57,137,58, +170,59,232,60,69,62,161,63,3,65,121,66,172,67,104,68,4,69,198,69,167,70,138,71,57,72,161,72,45,73,6,74, +175,74,21,75,194,75,167,76,55,77,124,77,173,77,148,77,62,77,22,77,21,77,251,76,238,76,40,77,162,77,26,78, +31,78,128,77,172,76,1,76,82,75,157,74,35,74,193,73,65,73,230,72,215,72,165,72,238,71,194,70,128,69,147,68, +222,67,176,66,234,64,85,63,106,62,185,61,201,60,142,59,39,58,182,56,81,55,225,53,68,52,93,50,41,48,7,46, +97,44,12,43,149,41,252,39,113,38,229,36,60,35,84,33,7,31,150,28,116,26,139,24,140,22,156,20,215,18,4,17, +54,15,148,13,191,11,117,9,28,7,234,4,179,2,176,0,3,255,47,253,31,251,105,249,238,247,245,245,165,243,155,241, +164,239,104,237,39,235,239,232,130,230,57,228,112,226,184,224,174,222,141,220,115,218,61,216,0,214,159,211,201,208,219,205, +121,203,115,201,93,199,122,197,232,195,38,194,12,192,242,189,214,187,149,185,111,183,133,181,162,179,192,177,236,175,7,174, +51,172,196,170,132,169,239,167,44,166,194,164,145,163,9,162,44,160,115,158,7,157,194,155,170,154,185,153,167,152,132,151, +189,150,34,150,0,149,108,147,49,146,146,145,56,145,228,144,87,144,114,143,163,142,76,142,11,142,104,141,184,140,168,140, +95,141,76,142,181,142,148,142,163,142,112,143,212,144,61,146,14,147,77,147,244,147,169,149,177,151,42,153,86,154,218,155, +232,157,94,160,189,162,132,164,251,165,201,167,245,169,30,172,250,173,113,175,246,176,51,179,208,181,242,183,173,185,119,187, +88,189,153,191,79,194,120,196,162,197,3,199,50,201,69,203,255,204,223,206,182,208,109,210,142,212,215,214,146,216,54,218, +123,220,25,223,169,225,20,228,26,230,243,231,66,234,220,236,48,239,115,241,254,243,207,246,35,250,223,253,28,1,155,3, +42,6,39,9,76,12,129,15,136,18,21,21,154,23,143,26,142,29,77,32,32,35,20,38,8,41,46,44,84,47,220,49, +199,51,174,53,224,55,64,58,118,60,53,62,204,63,190,65,223,67,188,69,94,71,213,72,31,74,146,75,56,77,119,78, +53,79,6,80,242,80,158,81,63,82,23,83,236,83,160,84,93,85,30,86,219,86,149,87,18,88,85,88,230,88,218,89, +142,90,201,90,215,90,201,90,176,90,221,90,45,91,33,91,239,90,34,91,120,91,93,91,229,90,85,90,183,89,80,89, +65,89,218,88,158,87,46,86,49,85,124,84,221,83,71,83,95,82,63,81,151,80,42,80,242,78,12,77,105,75,23,74, +188,72,103,71,226,69,250,67,100,66,121,65,90,64,166,62,248,60,100,59,175,57,58,56,231,54,231,52,99,50,77,48, +180,46,20,45,76,43,84,41,69,39,145,37,32,36,47,34,158,31,23,29,15,27,132,25,3,24,220,21,23,19,125,16, +57,14,232,11,175,9,184,7,153,5,78,3,84,1,149,255,172,253,144,251,52,249,173,246,152,244,25,243,110,241,88,239, +100,237,176,235,21,234,177,232,60,231,94,229,173,227,172,226,164,225,14,224,107,222,245,220,112,219,51,218,127,217,173,216, +80,215,221,213,180,212,203,211,16,211,39,210,180,208,71,207,150,206,39,206,67,205,53,204,98,203,105,202,35,201,0,200, +14,199,13,198,56,197,225,196,190,196,94,196,189,195,9,195,123,194,67,194,46,194,182,193,193,192,226,191,189,191,101,192, +67,193,176,193,171,193,190,193,65,194,241,194,87,195,113,195,200,195,171,196,185,197,135,198,53,199,245,199,213,200,9,202, +138,203,178,204,58,205,191,205,196,206,42,208,168,209,222,210,166,211,161,212,105,214,100,216,202,217,183,218,124,219,68,220, +111,221,233,222,8,224,242,224,126,226,134,228,57,230,114,231,97,232,28,233,18,234,145,235,31,237,94,238,142,239,215,240, +66,242,254,243,202,245,36,247,66,248,180,249,111,251,25,253,148,254,214,255,243,0,56,2,221,3,235,5,37,8,251,9, +77,11,198,12,171,14,92,16,153,17,220,18,100,20,52,22,97,24,135,26,2,28,252,28,66,30,33,32,46,34,222,35, +30,37,107,38,34,40,5,42,185,43,10,45,231,45,187,46,40,48,214,49,243,50,178,51,171,52,184,53,161,54,147,55, +107,56,22,57,8,58,85,59,113,60,29,61,105,61,123,61,241,61,13,63,240,63,28,64,66,64,198,64,103,65,37,66, +190,66,161,66,80,66,167,66,49,67,66,67,41,67,7,67,191,66,213,66,64,67,253,66,3,66,91,65,39,65,238,64, +188,64,112,64,175,63,226,62,123,62,13,62,56,61,41,60,1,59,12,58,179,57,141,57,216,56,159,55,85,54,50,53, +95,52,156,51,73,50,167,48,150,47,234,46,206,45,76,44,227,42,153,41,97,40,90,39,89,38,23,37,152,35,6,34, +123,32,232,30,24,29,35,27,125,25,71,24,41,23,207,21,10,20,228,17,195,15,225,13,247,11,244,9,45,8,138,6, +170,4,156,2,157,0,155,254,121,252,70,250,21,248,15,246,69,244,113,242,98,240,78,238,111,236,195,234,36,233,93,231, +110,229,170,227,21,226,80,224,99,222,175,220,46,219,174,217,84,216,50,215,12,214,198,212,94,211,204,209,56,208,202,206, +109,205,44,204,43,203,61,202,38,201,15,200,12,199,244,197,206,196,160,195,46,194,150,192,80,191,91,190,95,189,90,188, +103,187,110,186,114,185,145,184,168,183,156,182,166,181,249,180,109,180,192,179,254,178,97,178,1,178,202,177,185,177,199,177, +201,177,199,177,9,178,130,178,233,178,86,179,246,179,155,180,72,181,82,182,159,183,212,184,253,185,17,187,215,187,177,188, +44,190,1,192,192,193,145,195,95,197,198,198,15,200,167,201,52,203,139,204,55,206,42,208,203,209,77,211,36,213,240,214, +94,216,203,217,69,219,158,220,75,222,143,224,152,226,255,227,141,229,141,231,68,233,140,234,29,236,46,238,97,240,149,242, +198,244,187,246,128,248,127,250,232,252,130,255,225,1,191,3,117,5,164,7,68,10,185,12,230,14,47,17,161,19,32,22, +204,24,131,27,207,29,196,31,255,33,119,36,123,38,8,40,239,41,115,44,14,47,131,49,220,51,180,53,254,54,160,56, +230,58,204,60,233,61,14,63,154,64,64,66,21,68,254,69,100,71,121,72,234,73,88,75,45,76,244,76,44,78,118,79, +184,80,37,82,92,83,33,84,235,84,3,86,54,87,63,88,197,88,192,88,213,88,92,89,230,89,75,90,211,90,87,91, +161,91,229,91,20,92,231,91,122,91,238,90,66,90,161,89,253,88,42,88,178,87,240,87,242,87,9,87,214,85,203,84, +209,83,21,83,74,82,184,80,234,78,184,77,133,76,4,75,13,74,72,73,195,71,79,70,127,69,0,68,159,65,221,63, +159,62,186,60,165,58,17,57,135,55,26,54,32,53,198,51,143,49,48,47,202,44,23,42,181,39,220,37,208,35,166,33, +216,31,192,29,229,26,25,24,206,21,113,19,159,16,98,13,229,9,165,6,245,3,149,1,75,255,236,252,33,250,33,247, +146,244,63,242,100,239,247,235,118,232,59,229,121,226,6,224,131,221,57,219,145,217,2,216,206,213,1,211,228,207,178,204, +235,201,163,199,88,197,241,194,192,192,189,190,235,188,116,187,209,185,92,183,126,180,222,177,93,175,204,172,102,170,43,168, +246,165,249,163,57,162,66,160,201,157,26,155,179,152,173,150,162,148,73,146,236,143,26,142,249,140,47,140,34,139,137,137, +195,135,92,134,89,133,117,132,128,131,100,130,95,129,16,129,146,129,48,130,100,130,121,130,226,130,119,131,130,131,207,130, +86,130,5,131,96,132,141,133,172,134,239,135,16,137,71,138,251,139,148,141,113,142,26,143,70,144,250,145,248,147,240,149, +157,151,77,153,73,155,46,157,198,158,103,160,31,162,241,163,49,166,122,168,242,169,20,171,42,173,49,176,52,179,185,181, +164,183,32,185,238,186,121,189,83,192,48,195,47,198,63,201,90,204,126,207,57,210,108,212,219,214,209,217,170,220,82,223, +77,226,127,229,186,232,84,236,11,240,13,243,123,245,31,248,22,251,19,254,243,0,142,3,11,6,240,8,34,12,254,14, +168,17,176,20,226,23,203,26,96,29,119,31,15,33,7,35,243,37,18,41,150,43,168,45,166,47,210,49,109,52,4,55, +194,56,7,58,242,59,133,62,236,64,241,66,203,68,180,70,7,73,150,75,104,77,82,78,103,79,49,81,25,83,158,84, +190,85,170,86,241,87,234,89,228,91,252,92,72,93,133,93,48,94,61,95,52,96,206,96,116,97,115,98,77,99,145,99, +141,99,172,99,18,100,189,100,85,101,54,101,81,100,104,99,45,99,129,99,166,99,31,99,79,98,219,97,188,97,121,97, +218,96,230,95,205,94,219,93,12,93,34,92,55,91,151,90,47,90,172,89,189,88,59,87,158,85,185,84,131,84,12,84, +196,82,228,80,228,78,50,77,217,75,123,74,252,72,139,71,242,69,254,67,11,66,56,64,39,62,248,59,29,58,110,56, +127,54,71,52,9,50,39,48,175,46,244,44,154,42,67,40,68,38,37,36,252,33,40,32,39,30,146,27,22,25,24,23, +51,21,64,19,92,17,100,15,81,13,46,11,225,8,167,6,221,4,73,3,162,1,238,255,246,253,215,251,78,250,35,249, +80,247,24,245,82,243,159,241,194,239,82,238,246,236,1,235,54,233,4,232,94,230,28,228,54,226,160,224,226,222,71,221, +177,219,182,217,228,215,145,214,56,213,252,211,23,211,185,209,218,207,158,206,223,205,186,204,171,203,248,202,177,201,254,199, +244,198,73,198,109,197,243,196,188,196,213,195,126,194,153,193,18,193,153,192,54,192,201,191,93,191,19,191,166,190,54,190, +95,190,190,190,163,190,171,190,55,191,92,191,37,191,170,191,154,192,237,192,255,192,97,193,193,193,55,194,42,195,54,196, +252,196,188,197,97,198,186,198,58,199,17,200,223,200,186,201,219,202,222,203,156,204,161,205,255,206,44,208,15,209,251,209, +3,211,26,212,65,213,111,214,162,215,243,216,81,218,133,219,147,220,205,221,72,223,161,224,173,225,206,226,38,228,108,229, +203,230,155,232,106,234,212,235,109,237,131,239,113,241,242,242,115,244,6,246,137,247,49,249,239,250,137,252,82,254,133,0, +148,2,42,4,165,5,61,7,226,8,155,10,71,12,178,13,14,15,149,16,50,18,228,19,174,21,76,23,178,24,71,26, +12,28,124,29,118,30,124,31,237,32,140,34,240,35,33,37,98,38,157,39,167,40,216,41,72,43,78,44,194,44,122,45, +195,46,247,47,214,48,185,49,169,50,131,51,91,52,50,53,242,53,171,54,92,55,250,55,178,56,129,57,17,58,111,58, +246,58,153,59,36,60,168,60,4,61,252,60,220,60,7,61,58,61,42,61,14,61,19,61,31,61,41,61,33,61,240,60, +179,60,124,60,25,60,138,59,4,59,116,58,203,57,84,57,7,57,111,56,141,55,199,54,21,54,66,53,86,52,60,51, +236,49,212,48,11,48,239,46,97,45,8,44,250,42,197,41,130,40,98,39,31,38,181,36,106,35,19,34,133,32,10,31, +167,29,29,28,155,26,64,25,182,23,15,22,164,20,40,19,92,17,182,15,71,14,135,12,132,10,174,8,237,6,30,5, +98,3,156,1,181,255,242,253,90,252,181,250,13,249,88,247,123,245,208,243,107,242,183,240,189,238,26,237,152,235,209,233, +49,232,189,230,231,228,29,227,16,226,19,225,135,223,239,221,134,220,249,218,149,217,137,216,75,215,194,213,109,212,94,211, +96,210,90,209,24,208,210,206,15,206,118,205,103,204,68,203,94,202,55,201,217,199,205,198,203,197,118,196,71,195,115,194, +183,193,17,193,97,192,119,191,179,190,40,190,56,189,29,188,121,187,215,186,235,185,115,185,86,185,223,184,156,184,244,184, +242,184,143,184,189,184,4,185,182,184,179,184,73,185,118,185,77,185,140,185,230,185,79,186,93,187,145,188,41,189,179,189, +178,190,219,191,37,193,96,194,249,194,123,195,214,196,134,198,207,199,254,200,16,202,214,202,7,204,201,205,14,207,215,207, +33,209,197,210,43,212,124,213,154,214,54,215,231,215,42,217,148,218,239,219,74,221,102,222,144,223,118,225,179,227,130,229, +20,231,185,232,93,234,73,236,123,238,56,240,111,241,247,242,16,245,104,247,219,249,59,252,122,254,254,0,179,3,17,6, +54,8,85,10,27,12,212,13,68,16,230,18,221,20,190,22,83,25,65,28,12,31,140,33,128,35,56,37,114,39,232,41, +173,43,200,44,219,45,45,47,236,48,25,51,23,53,109,54,125,55,216,56,142,58,29,60,212,60,217,60,84,61,194,62, +52,64,246,64,155,65,182,66,6,68,46,69,28,70,179,70,240,70,100,71,168,72,92,74,117,75,194,75,52,76,90,77, +180,78,174,79,72,80,184,80,31,81,151,81,35,82,165,82,247,82,32,83,133,83,126,84,166,85,39,86,201,85,29,85, +193,84,185,84,96,84,68,83,36,82,19,82,194,82,5,83,151,82,219,81,204,80,123,79,89,78,62,77,144,75,135,73, +255,71,33,71,55,70,199,68,28,67,189,65,158,64,77,63,143,61,87,59,168,56,7,54,34,52,170,50,205,48,172,46, +236,44,111,43,204,41,248,39,198,37,19,35,107,32,40,30,177,27,208,24,105,22,206,20,52,19,41,17,236,14,119,12, +203,9,72,7,230,4,40,2,30,255,64,252,185,249,178,247,40,246,72,244,147,241,230,238,199,236,86,234,73,231,142,228, +70,226,190,223,10,221,134,218,231,215,73,213,54,211,77,209,233,206,98,204,21,202,154,199,230,196,110,194,55,192,250,189, +178,187,118,185,114,183,183,181,201,179,98,177,27,175,72,173,96,171,77,169,137,167,251,165,72,164,130,162,148,160,86,158, +86,156,25,155,66,154,100,153,117,152,94,151,65,150,134,149,247,148,10,148,20,147,191,146,246,146,67,147,110,147,110,147, +137,147,9,148,173,148,19,149,99,149,195,149,41,150,212,150,216,151,159,152,14,153,0,154,187,155,100,157,87,158,212,158, +80,159,8,160,243,160,211,161,172,162,244,163,250,165,126,168,3,171,4,173,28,174,159,174,124,175,227,176,251,177,125,178, +99,179,94,181,7,184,220,186,152,189,231,191,236,193,31,196,27,198,49,199,254,199,125,201,132,203,213,205,188,208,225,211, +178,214,155,217,217,220,138,223,76,225,198,226,82,228,254,229,21,232,130,234,11,237,248,239,88,243,149,246,119,249,17,252, +59,254,42,0,46,2,243,3,144,5,215,7,189,10,176,13,2,17,133,20,10,23,179,24,124,26,255,27,11,29,207,30, +37,33,236,34,246,36,8,40,162,42,96,44,174,46,13,49,38,50,24,51,205,52,18,54,251,54,232,56,55,59,227,60, +228,62,148,65,175,67,254,68,46,70,37,71,217,71,146,72,255,72,60,73,47,74,208,75,110,77,250,78,16,80,27,80, +10,80,217,80,171,81,220,81,39,82,126,82,87,82,111,82,53,83,175,83,150,83,186,83,45,84,140,84,193,84,116,84, +176,83,114,83,188,83,107,83,158,82,83,82,85,82,58,82,117,82,182,82,13,82,245,80,117,80,59,80,183,79,57,79, +187,78,215,77,238,76,117,76,6,76,99,75,242,74,160,74,208,73,134,72,44,71,181,69,252,67,87,66,7,65,206,63, +128,62,44,61,211,59,110,58,244,56,46,55,1,53,156,50,4,48,72,45,20,43,205,41,156,40,207,38,253,36,152,35, +16,34,23,32,233,29,122,27,242,24,214,22,4,21,254,18,44,17,13,16,37,15,7,14,225,12,118,11,125,9,140,7, +39,6,233,4,99,3,176,1,4,0,171,254,220,253,54,253,49,252,224,250,141,249,32,248,118,246,162,244,214,242,85,241, +56,240,70,239,68,238,14,237,137,235,240,233,143,232,20,231,32,229,49,227,176,225,78,224,20,223,102,222,184,221,80,220, +188,218,171,217,199,216,220,215,18,215,235,213,56,212,5,211,185,210,80,210,143,209,84,209,126,209,84,209,41,209,76,209, +252,208,0,208,37,207,186,206,115,206,94,206,130,206,183,206,48,207,249,207,126,208,143,208,138,208,101,208,37,208,70,208, +135,208,35,208,132,207,138,207,246,207,122,208,125,209,176,210,87,211,205,211,129,212,214,212,158,212,144,212,199,212,8,213, +193,213,12,215,84,216,134,217,228,218,52,220,67,221,34,222,173,222,16,223,237,223,51,225,87,226,121,227,208,228,5,230, +16,231,57,232,90,233,89,234,107,235,109,236,74,237,73,238,56,239,214,239,208,240,112,242,211,243,195,244,198,245,105,246, +105,246,226,246,14,248,214,248,99,249,147,250,219,251,218,252,104,254,71,0,40,1,69,1,160,1,38,2,197,2,244,3, +96,5,146,6,34,8,86,10,86,12,183,13,229,14,11,16,38,17,92,18,91,19,178,19,235,19,8,21,246,22,189,24, +19,26,133,27,41,29,140,30,193,31,234,32,93,33,245,32,216,32,112,33,232,33,83,34,116,35,187,36,111,37,34,38, +225,38,203,38,72,38,87,38,97,38,171,37,235,36,167,36,141,36,211,36,151,37,250,37,163,37,86,37,94,37,85,37, +42,37,251,36,190,36,147,36,170,36,245,36,104,37,255,37,151,38,21,39,79,39,15,39,170,38,163,38,207,38,234,38, +66,39,226,39,75,40,106,40,125,40,96,40,254,39,124,39,173,38,147,37,192,36,90,36,16,36,2,36,48,36,244,35, +29,35,30,34,227,32,57,31,158,29,50,28,126,26,199,24,172,23,205,22,165,21,143,20,189,19,192,18,125,17,17,16, +58,14,240,11,170,9,175,7,26,6,41,5,166,4,229,3,229,2,56,2,191,1,187,0,21,255,105,253,15,252,230,250, +199,249,194,248,2,248,159,247,84,247,175,246,184,245,224,244,54,244,103,243,118,242,169,241,213,240,153,239,36,238,20,237, +174,236,149,236,64,236,132,235,160,234,190,233,193,232,145,231,67,230,3,229,12,228,121,227,4,227,70,226,62,225,59,224, +79,223,72,222,48,221,91,220,191,219,221,218,179,217,225,216,105,216,155,215,159,214,71,214,88,214,238,213,12,213,37,212, +69,211,167,210,149,210,139,210,47,210,35,210,172,210,34,211,80,211,129,211,123,211,32,211,4,211,85,211,171,211,9,212, +194,212,206,213,248,214,12,216,205,216,103,217,91,218,171,219,203,220,105,221,161,221,230,221,194,222,90,224,82,226,66,228, +242,229,83,231,140,232,174,233,148,234,81,235,27,236,236,236,232,237,114,239,57,241,136,242,153,243,34,245,12,247,207,248, +23,250,179,250,249,250,202,251,60,253,132,254,104,255,91,0,157,1,72,3,53,5,174,6,105,7,32,8,76,9,145,10, +182,11,204,12,201,13,240,14,141,16,56,18,87,19,15,20,238,20,79,22,22,24,154,25,108,26,38,27,139,28,130,30, +129,32,7,34,210,34,126,35,223,36,116,38,45,39,68,39,184,39,248,40,247,42,27,45,86,46,167,46,52,47,67,48, +6,49,45,49,252,48,184,48,246,48,248,49,218,50,223,50,152,50,190,50,87,51,21,52,109,52,239,51,247,50,21,50, +58,49,80,48,132,47,184,46,252,45,219,45,15,46,119,45,246,43,149,42,205,41,53,41,109,40,83,39,250,37,185,36, +181,35,171,34,98,33,249,31,197,30,1,30,116,29,182,28,222,27,54,27,133,26,135,25,76,24,193,22,216,20,50,19, +77,18,148,17,80,16,185,14,91,13,76,12,102,11,121,10,68,9,188,7,13,6,64,4,54,2,29,0,83,254,213,252, +62,251,82,249,45,247,248,244,219,242,230,240,220,238,127,236,29,234,4,232,209,229,31,227,69,224,163,221,249,218,251,215, +205,212,176,209,168,206,162,203,244,200,56,199,70,198,18,197,31,195,227,192,117,190,107,187,227,183,127,180,237,177,182,176, +106,176,234,175,91,175,191,175,111,176,234,175,139,174,97,173,51,172,203,170,191,169,34,169,210,168,73,169,92,170,55,171, +17,172,106,173,146,174,228,174,150,174,150,173,249,171,221,170,238,170,176,171,223,172,90,174,70,175,46,175,141,174,142,173, +1,172,91,170,84,169,91,169,128,170,248,171,216,172,125,173,110,174,201,174,236,173,200,172,64,172,94,172,50,173,120,174, +185,175,143,177,170,180,29,184,243,186,96,189,254,190,247,190,55,190,91,190,135,191,130,193,173,196,194,200,40,205,252,209, +181,214,246,217,241,219,248,221,192,223,78,224,156,224,85,226,138,229,112,233,153,237,164,241,67,245,131,248,61,251,25,253, +66,254,29,255,180,255,73,0,154,1,0,4,25,7,79,10,41,13,103,15,22,17,51,18,199,18,143,19,107,21,32,24, +201,26,17,29,254,30,186,32,208,34,70,37,49,39,91,40,181,41,103,43,179,44,222,45,201,47,93,50,38,53,7,56, +156,58,151,60,68,62,125,63,176,63,106,63,202,63,237,64,171,66,88,69,161,72,111,75,58,77,35,78,120,78,184,78, +18,79,68,79,144,79,99,80,26,81,18,81,240,80,116,81,141,82,35,84,225,85,233,86,41,87,93,87,82,87,123,86, +119,85,240,84,143,84,77,84,189,84,180,85,140,86,44,87,112,87,253,86,39,86,157,85,83,85,226,84,43,84,236,82, +226,80,147,78,248,76,89,76,67,76,53,76,204,75,206,74,102,73,208,71,210,69,82,67,255,64,97,63,237,61,17,60, +20,58,97,56,255,54,215,53,130,52,147,50,81,48,30,46,207,43,151,41,16,40,202,38,247,36,6,35,151,33,77,32, +230,30,121,29,173,27,161,25,56,24,88,23,50,22,13,21,115,20,241,19,42,19,4,18,17,16,180,13,247,11,141,10, +165,8,185,6,9,5,0,3,75,1,202,0,81,0,211,254,20,253,63,251,150,248,105,245,40,242,155,238,162,235,66,234, +121,233,80,232,82,231,74,230,132,228,180,226,17,225,121,222,72,219,245,216,60,215,141,213,124,212,150,211,10,210,9,209, +94,209,161,209,70,209,11,209,78,208,138,206,45,205,200,204,95,204,50,204,6,205,15,206,184,206,136,207,28,208,197,207, +47,207,228,206,122,206,39,206,85,206,132,206,158,206,75,207,45,208,61,208,129,207,158,206,9,206,32,206,160,206,172,206, +57,206,245,205,22,206,172,206,194,207,141,208,118,208,96,208,228,208,22,209,153,208,90,208,180,208,118,209,230,210,197,212, +254,213,155,214,189,215,106,217,178,218,106,219,233,219,65,220,243,220,185,222,53,225,97,227,19,229,195,230,155,232,136,234, +87,236,141,237,53,238,69,239,42,241,252,242,243,243,149,244,189,245,133,247,100,249,205,250,171,251,98,252,85,253,150,254, +243,255,250,0,98,1,184,1,208,2,138,4,13,6,15,7,220,7,187,8,212,9,251,10,188,11,35,12,232,12,85,14, +247,15,80,17,51,18,200,18,166,19,26,21,140,22,100,23,244,23,195,24,230,25,84,27,219,28,252,29,168,30,125,31, +199,32,28,34,60,35,67,36,11,37,106,37,185,37,62,38,194,38,73,39,53,40,94,41,52,42,190,42,66,43,140,43, +139,43,164,43,225,43,246,43,248,43,14,44,43,44,144,44,91,45,228,45,210,45,185,45,213,45,195,45,142,45,100,45, +20,45,197,44,183,44,106,44,163,43,48,43,109,43,178,43,147,43,3,43,249,41,254,40,163,40,137,40,43,40,167,39, +3,39,89,38,26,38,228,37,210,36,102,35,161,34,27,34,56,33,82,32,102,31,51,30,89,29,8,29,54,28,154,26, +0,25,179,23,152,22,166,21,91,20,155,18,98,17,246,16,99,16,100,15,75,14,236,12,149,11,227,10,254,9,1,8, +10,6,38,5,132,4,125,3,108,2,76,1,18,0,77,255,198,254,127,253,116,251,124,249,253,247,230,246,231,245,118,244, +176,242,102,241,226,240,136,240,176,239,40,238,74,236,165,234,73,233,246,231,177,230,121,229,32,228,240,226,38,226,48,225, +172,223,71,222,129,221,225,220,218,219,79,218,137,216,37,215,91,214,165,213,179,212,215,211,51,211,164,210,24,210,76,209, +30,208,25,207,162,206,71,206,169,205,249,204,112,204,54,204,56,204,227,203,1,203,83,202,89,202,179,202,18,203,81,203, +35,203,194,202,228,202,122,203,217,203,252,203,92,204,31,205,17,206,204,206,15,207,63,207,235,207,8,209,44,210,10,211, +138,211,19,212,18,213,14,214,116,214,185,214,101,215,69,216,87,217,169,218,131,219,167,219,42,220,138,221,5,223,96,224, +255,225,133,227,154,228,183,229,222,230,117,231,233,231,62,233,71,235,49,237,9,239,70,241,188,243,250,245,229,247,149,249, +43,251,186,252,26,254,65,255,195,0,19,3,169,5,247,7,118,10,138,13,152,16,39,19,74,21,141,22,179,22,241,22, +69,24,253,25,137,27,139,29,32,32,159,34,255,36,64,39,158,40,245,40,73,41,29,42,245,42,131,43,10,44,248,44, +172,46,8,49,69,51,172,52,84,53,248,53,10,55,241,55,227,55,77,55,101,55,163,56,182,58,238,60,67,62,111,62, +144,62,80,63,237,63,244,63,206,63,191,63,64,64,241,65,245,67,194,68,188,68,48,69,243,69,78,70,34,70,34,69, +135,67,201,66,104,67,9,68,17,68,81,68,253,68,152,69,223,69,57,69,29,67,128,64,196,62,233,61,64,61,152,60, +1,60,208,59,109,60,42,61,161,60,191,58,175,56,11,55,142,53,225,51,189,49,70,47,115,45,227,44,182,44,210,43, +137,42,164,41,217,40,80,39,206,36,170,33,105,30,195,27,21,26,209,24,66,23,132,21,241,19,100,18,166,16,217,14, +220,12,79,10,118,7,7,5,248,2,159,0,250,253,157,251,138,249,98,247,67,245,84,243,66,241,6,239,233,236,160,234, +254,231,204,229,78,228,134,226,56,224,84,222,216,220,230,218,136,216,60,214,249,211,241,209,120,208,25,207,110,205,193,203, +247,201,203,199,204,197,48,196,32,194,154,191,145,189,227,187,214,185,192,183,50,182,226,180,161,179,139,178,58,177,82,175, +67,173,142,171,36,170,145,168,134,166,107,164,249,162,12,162,233,160,135,159,77,158,62,157,101,156,235,155,138,155,230,154, +34,154,116,153,228,152,98,152,156,151,149,150,63,150,64,151,220,152,20,154,191,154,76,155,120,156,128,158,54,160,138,160, +80,160,191,160,174,161,164,162,178,163,224,164,116,166,254,168,0,172,79,174,198,175,235,176,208,177,131,178,31,179,120,179, +242,179,143,181,94,184,102,187,251,189,237,191,93,193,232,194,180,196,229,197,38,198,111,198,151,199,109,201,103,203,84,205, +126,207,26,210,191,212,240,214,155,216,146,217,11,218,62,219,136,221,157,223,85,225,36,228,240,231,72,235,28,238,174,240, +63,242,46,243,221,244,254,246,174,248,191,250,235,253,113,1,221,4,39,8,186,10,191,12,46,15,156,17,209,18,56,19, +53,20,70,22,37,25,92,28,121,31,121,34,113,37,0,40,216,41,244,42,91,43,164,43,179,44,85,46,193,47,49,49, +52,51,176,53,121,56,6,59,41,60,12,60,94,60,134,61,121,62,247,62,64,63,113,63,138,64,65,67,246,69,31,71, +171,71,163,72,108,73,135,73,22,73,48,72,182,71,207,72,196,74,217,75,230,75,221,75,78,76,75,77,55,78,248,77, +180,76,224,75,39,76,233,76,108,77,69,77,195,76,11,77,98,78,83,79,209,78,158,77,190,76,66,76,205,75,9,75, +14,74,152,73,24,74,236,74,35,75,76,74,159,72,3,71,57,70,168,69,69,68,99,66,7,65,98,64,28,64,202,63, +197,62,25,61,225,59,87,59,45,58,209,55,57,53,14,51,65,49,213,47,143,46,247,44,86,43,46,42,16,41,101,39, +86,37,22,35,171,32,120,30,179,28,28,27,171,25,83,24,177,22,10,21,13,20,43,19,131,17,198,15,174,14,96,13, +86,11,104,9,230,7,91,6,241,4,236,3,225,2,151,1,48,0,143,254,206,252,80,251,240,249,104,248,247,246,163,245, +25,244,140,242,57,241,200,239,63,238,5,237,214,235,86,234,226,232,148,231,16,230,118,228,5,227,138,225,39,224,34,223, +7,222,155,220,96,219,62,218,150,216,207,214,163,213,192,212,196,211,0,211,113,210,194,209,44,209,211,208,70,208,101,207, +146,206,251,205,155,205,112,205,60,205,206,204,128,204,196,204,131,205,79,206,213,206,243,206,189,206,129,206,141,206,195,206, +214,206,6,207,7,208,201,209,89,211,60,212,237,212,214,213,207,214,130,215,210,215,16,216,176,216,179,217,221,218,40,220, +105,221,94,222,86,223,149,224,132,225,199,225,254,225,147,226,68,227,8,228,242,228,215,229,216,230,40,232,95,233,51,234, +217,234,56,235,82,235,219,235,1,237,27,238,39,239,167,240,99,242,245,243,58,245,210,245,226,245,120,246,181,247,190,248, +185,249,53,251,206,252,124,254,205,0,25,3,105,4,94,5,143,6,108,7,253,7,234,8,7,10,72,11,83,13,213,15, +224,17,157,19,93,21,183,22,182,23,151,24,197,24,91,24,179,24,26,26,137,27,197,28,60,30,187,31,251,32,254,33, +115,34,86,34,81,34,161,34,227,34,21,35,119,35,6,36,229,36,53,38,119,39,38,40,108,40,158,40,208,40,255,40, +8,41,204,40,182,40,105,41,200,42,241,43,85,44,96,44,209,44,140,45,188,45,40,45,139,44,112,44,182,44,34,45, +131,45,151,45,120,45,155,45,233,45,169,45,190,44,204,43,6,43,23,42,62,41,229,40,150,40,235,39,132,39,138,39, +12,39,206,37,129,36,44,35,155,33,81,32,78,31,253,29,216,28,128,28,17,28,253,26,49,26,204,25,199,24,54,23, +190,21,32,20,96,18,27,17,5,16,177,14,195,13,101,13,214,12,33,12,150,11,113,10,98,8,95,6,192,4,4,3, +89,1,55,0,87,255,87,254,52,253,3,252,241,250,252,249,186,248,254,246,251,244,182,242,119,240,221,238,179,237,89,236, +20,235,76,234,156,233,206,232,239,231,117,230,105,228,203,226,147,225,228,223,48,222,60,221,133,220,212,219,192,219,175,219, +151,218,31,217,50,216,100,215,94,214,92,213,12,212,87,210,77,209,105,209,172,209,75,209,134,208,207,207,75,207,202,206, +229,205,144,204,84,203,151,202,58,202,245,201,161,201,66,201,236,200,145,200,18,200,100,199,119,198,109,197,189,196,133,196, +72,196,235,195,251,195,150,196,43,197,122,197,175,197,201,197,178,197,187,197,85,198,114,199,149,200,155,201,249,202,196,204, +79,206,110,207,211,208,155,210,15,212,23,213,85,214,213,215,59,217,188,218,184,220,248,222,29,225,42,227,47,229,14,231, +186,232,65,234,144,235,181,236,254,237,131,239,23,241,218,242,7,245,22,247,93,248,89,249,217,250,157,252,22,254,114,255, +220,0,4,2,219,2,182,3,198,4,49,6,247,7,191,9,112,11,100,13,115,15,253,16,12,18,40,19,117,20,244,21, +186,23,113,25,186,26,245,27,184,29,233,31,2,34,198,35,104,37,53,39,34,41,210,42,2,44,209,44,202,45,136,47, +216,49,207,51,52,53,165,54,63,56,151,57,182,58,157,59,238,59,36,60,70,61,2,63,62,64,236,64,139,65,22,66, +142,66,23,67,95,67,76,67,116,67,12,68,144,68,201,68,233,68,15,69,117,69,87,70,76,71,106,71,98,70,248,68, +62,68,93,68,118,68,10,68,151,67,128,67,123,67,81,67,9,67,107,66,86,65,56,64,108,63,184,62,196,61,145,60, +100,59,132,58,246,57,117,57,170,56,125,55,52,54,23,53,241,51,83,50,86,48,127,46,44,45,82,44,111,43,227,41, +185,39,149,37,172,35,217,33,63,32,219,30,88,29,237,27,235,26,192,25,235,23,229,21,1,20,14,18,67,16,214,14, +60,13,65,11,108,9,225,7,84,6,192,4,26,3,83,1,195,255,114,254,175,252,26,250,6,247,231,243,92,241,183,239, +100,238,217,236,84,235,178,233,131,231,44,229,253,226,89,224,123,221,111,219,204,217,105,215,163,212,66,210,22,208,39,206, +180,204,22,203,199,200,87,198,30,196,253,193,39,192,108,190,43,188,184,185,218,183,102,182,255,180,164,179,229,177,133,175, +54,173,59,171,45,169,144,167,19,167,253,166,123,166,150,165,17,164,224,161,5,160,210,158,64,157,66,155,230,153,67,153, +1,153,162,153,14,155,254,155,240,155,116,155,205,154,244,153,26,153,51,152,48,151,171,150,44,151,110,152,19,154,2,156, +228,157,57,159,211,159,188,159,2,159,6,158,111,157,159,157,70,158,249,158,250,159,225,161,134,164,29,167,20,169,246,169, +108,169,91,168,113,168,224,169,130,171,43,173,145,175,107,178,235,180,25,183,30,185,202,186,95,188,9,190,63,191,51,192, +70,194,212,197,201,201,120,205,169,208,192,210,255,211,203,213,109,216,204,218,162,220,164,222,51,225,142,228,205,232,30,237, +200,240,102,244,72,248,29,251,4,252,41,252,18,253,21,255,248,1,137,5,80,9,237,12,184,16,238,20,173,24,233,26, +238,27,158,28,46,29,255,29,246,31,225,34,183,37,169,40,98,44,255,47,129,50,134,52,168,54,123,56,247,57,83,59, +46,60,219,60,150,62,115,65,75,68,178,70,255,72,86,75,163,77,137,79,150,80,35,81,225,81,202,82,213,83,113,85, +83,87,213,88,69,90,224,91,221,92,244,92,237,92,98,93,111,94,218,95,182,96,143,96,94,96,240,96,197,97,67,98, +55,98,141,97,221,96,200,96,208,96,142,96,143,96,211,96,202,96,189,96,204,96,98,96,250,95,88,96,83,96,225,94, +25,93,202,91,131,90,171,89,200,89,216,89,64,89,203,88,133,88,190,87,147,86,39,85,81,83,149,81,50,80,114,78, +119,76,59,75,146,74,205,73,246,72,186,71,156,69,113,67,249,65,94,64,253,61,84,59,161,56,235,53,174,51,226,49, +4,48,58,46,203,44,84,43,139,41,90,39,124,36,60,33,92,30,236,27,164,25,180,23,26,22,123,20,1,19,180,17, +229,15,112,13,12,11,236,8,221,6,251,4,39,3,14,1,4,255,96,253,166,251,151,249,189,247,71,246,160,244,122,242, +54,240,72,238,162,236,253,234,101,233,4,232,142,230,208,228,51,227,220,225,66,224,56,222,8,220,203,217,189,215,68,214, +40,213,238,211,197,210,201,209,111,208,137,206,148,204,236,202,157,201,134,200,87,199,19,198,37,197,164,196,94,196,75,196, +34,196,122,195,152,194,227,193,45,193,145,192,140,192,219,192,254,192,49,193,152,193,227,193,60,194,207,194,53,195,117,195, +227,195,20,196,225,195,51,196,51,197,8,198,189,198,220,199,20,201,36,202,66,203,1,204,43,204,176,204,229,205,226,206, +147,207,186,208,35,210,38,211,219,211,129,212,30,213,219,213,192,214,160,215,152,216,177,217,186,218,218,219,46,221,62,222, +237,222,208,223,14,225,88,226,185,227,26,229,31,230,23,231,130,232,11,234,103,235,253,236,220,238,140,240,241,241,33,243, +36,244,79,245,225,246,137,248,34,250,236,251,203,253,138,255,87,1,30,3,124,4,165,5,14,7,152,8,14,10,142,11, +16,13,124,14,21,16,248,17,205,19,87,21,180,22,22,24,142,25,237,26,229,27,156,28,144,29,210,30,13,32,33,33, +13,34,200,34,142,35,185,36,32,38,57,39,200,39,1,40,61,40,164,40,27,41,119,41,174,41,220,41,54,42,190,42, +17,43,240,42,177,42,168,42,160,42,115,42,89,42,87,42,78,42,112,42,187,42,176,42,45,42,173,41,112,41,81,41, +61,41,31,41,220,40,165,40,157,40,111,40,2,40,207,39,241,39,225,39,89,39,147,38,217,37,91,37,3,37,115,36, +197,35,127,35,117,35,245,34,36,34,155,33,9,33,212,31,83,30,27,29,1,28,203,26,186,25,220,24,204,23,125,22, +107,21,190,20,226,19,107,18,165,16,209,14,196,12,185,10,46,9,208,7,20,6,113,4,100,3,72,2,183,0,65,255, +255,253,123,252,220,250,92,249,140,247,106,245,162,243,89,242,55,241,20,240,180,238,17,237,187,235,193,234,119,233,222,231, +110,230,222,228,29,227,240,225,64,225,45,224,239,222,42,222,98,221,36,220,217,218,168,217,104,216,109,215,196,214,225,213, +181,212,178,211,247,210,123,210,31,210,126,209,116,208,83,207,73,206,118,205,241,204,82,204,126,203,54,203,137,203,120,203, +252,202,201,202,110,202,129,201,220,200,180,200,73,200,244,199,118,200,46,201,120,201,187,201,13,202,39,202,73,202,114,202, +71,202,36,202,91,202,115,202,149,202,127,203,203,204,191,205,148,206,90,207,183,207,37,208,40,209,42,210,210,210,146,211, +103,212,39,213,70,214,238,215,148,217,230,218,203,219,84,220,30,221,128,222,226,223,18,225,132,226,14,228,82,229,187,230, +121,232,29,234,179,235,105,237,192,238,184,239,18,241,239,242,5,245,101,247,178,249,64,251,137,252,103,254,128,0,56,2, +206,3,141,5,123,7,192,9,64,12,132,14,135,16,137,18,107,20,10,22,121,23,205,24,84,26,132,28,51,31,169,33, +129,35,237,36,125,38,172,40,18,43,146,44,243,44,53,45,50,46,228,47,208,49,98,51,94,52,54,53,94,54,190,55, +8,57,250,57,97,58,127,58,255,58,243,59,188,60,79,61,100,62,41,64,196,65,118,66,99,66,45,66,87,66,15,67, +9,68,170,68,222,68,68,69,57,70,111,71,135,72,66,73,113,73,95,73,147,73,216,73,182,73,149,73,20,74,239,74, +139,75,170,75,63,75,165,74,124,74,152,74,3,74,129,72,249,70,49,70,27,70,44,70,237,69,66,69,79,68,35,67, +183,65,2,64,25,62,75,60,206,58,91,57,192,55,79,54,33,53,238,51,195,50,168,49,19,48,222,45,150,43,111,41, +102,39,200,37,79,36,78,34,80,32,41,31,20,30,74,28,125,26,232,24,171,22,226,19,147,17,221,15,97,14,6,13, +98,11,19,9,169,6,183,4,240,2,249,0,209,254,108,252,192,249,239,246,62,244,9,242,79,240,103,238,7,236,151,233, +35,231,101,228,180,225,104,223,57,221,230,218,96,216,161,213,53,211,157,209,13,208,157,205,177,202,194,199,209,196,111,194, +228,192,49,191,243,188,254,186,48,185,194,182,74,180,130,178,206,176,215,174,8,173,28,171,195,168,179,166,80,165,12,164, +171,162,53,161,91,159,94,157,251,155,249,154,141,153,213,151,141,150,212,149,44,149,64,148,86,147,231,146,175,146,255,145, +248,144,68,144,5,144,18,144,120,144,255,144,89,145,199,145,176,146,254,147,99,149,146,150,108,151,67,152,118,153,216,154, +54,156,195,157,117,159,38,161,31,163,90,165,28,167,69,168,168,169,142,171,103,173,19,175,229,176,197,178,121,180,62,182, +43,184,212,185,18,187,102,188,13,190,169,191,23,193,187,194,162,196,117,198,43,200,241,201,190,203,160,205,186,207,205,209, +148,211,62,213,7,215,14,217,151,219,124,222,42,225,161,227,79,230,255,232,110,235,252,237,189,240,76,243,224,245,205,248, +161,251,35,254,224,0,6,4,75,7,148,10,160,13,40,16,168,18,131,21,45,24,92,26,138,28,209,30,241,32,16,35, +77,37,146,39,252,41,86,44,34,46,169,47,123,49,74,51,214,52,117,54,207,55,84,56,196,56,239,57,68,59,73,60, +114,61,226,62,76,64,182,65,246,66,187,67,92,68,52,69,255,69,180,70,134,71,57,72,213,72,221,73,36,75,52,76, +100,77,189,78,115,79,158,79,25,80,164,80,197,80,35,81,23,82,233,82,102,83,246,83,122,84,195,84,231,84,164,84, +248,83,155,83,163,83,97,83,246,82,219,82,168,82,26,82,154,81,244,80,175,79,90,78,114,77,114,76,35,75,230,73, +168,72,123,71,3,71,235,70,255,69,55,68,116,66,212,64,23,63,87,61,134,59,175,57,117,56,16,56,206,55,40,55, +25,54,185,52,94,51,36,50,115,48,40,46,41,44,232,42,238,41,237,40,190,39,71,38,43,37,219,36,68,36,103,34, +218,31,92,29,23,27,124,25,133,24,42,23,69,21,214,19,222,18,122,17,128,15,49,13,197,10,211,8,96,7,133,5, +78,3,195,1,218,0,210,255,162,254,35,253,251,250,223,248,135,247,62,246,120,244,207,242,115,241,14,240,244,238,72,238, +100,237,30,236,240,234,226,233,175,232,62,231,124,229,197,227,207,226,121,226,236,225,232,224,178,223,119,222,106,221,112,220, +11,219,100,217,41,216,64,215,49,214,37,213,58,212,59,211,95,210,194,209,216,208,151,207,162,206,250,205,64,205,189,204, +174,204,187,204,165,204,107,204,17,204,201,203,173,203,151,203,186,203,79,204,220,204,44,205,0,206,129,207,191,208,80,209, +168,209,29,210,212,210,205,211,154,212,22,213,205,213,11,215,123,216,200,217,185,218,85,219,15,220,8,221,211,221,117,222, +45,223,178,223,11,224,217,224,228,225,112,226,208,226,151,227,90,228,179,228,227,228,15,229,94,229,30,230,19,231,244,231, +10,233,51,234,216,234,58,235,224,235,128,236,17,237,24,238,86,239,94,240,158,241,74,243,253,244,221,246,240,248,115,250, +101,251,159,252,7,254,60,255,211,0,233,2,177,4,66,6,75,8,125,10,97,12,64,14,41,16,200,17,7,19,218,19, +103,20,103,21,15,23,184,24,51,26,207,27,56,29,32,30,242,30,217,31,134,32,16,33,176,33,58,34,153,34,225,34, +43,35,220,35,17,37,255,37,49,38,89,38,249,38,199,39,153,40,72,41,131,41,173,41,115,42,131,43,65,44,238,44, +201,45,120,46,246,46,146,47,42,48,139,48,237,48,136,49,90,50,84,51,55,52,210,52,105,53,41,54,161,54,114,54, +251,53,199,53,210,53,233,53,18,54,68,54,64,54,255,53,200,53,142,53,12,53,88,52,141,51,88,50,217,48,207,47, +78,47,165,46,173,45,176,44,156,43,113,42,120,41,136,40,75,39,13,38,8,37,205,35,40,34,159,32,172,31,71,31, +13,31,151,30,191,29,143,28,22,27,174,25,214,24,82,24,111,23,41,22,5,21,48,20,143,19,234,18,211,17,65,16, +194,14,140,13,85,12,16,11,239,9,6,9,89,8,168,7,114,6,206,4,63,3,203,1,80,0,248,254,114,253,85,251, +95,249,82,248,120,247,29,246,189,244,132,243,247,241,82,240,18,239,209,237,49,236,164,234,106,233,54,232,3,231,26,230, +126,229,234,228,12,228,221,226,193,225,0,225,111,224,211,223,26,223,56,222,99,221,222,220,102,220,152,219,170,218,231,217, +12,217,236,215,238,214,107,214,66,214,26,214,179,213,234,212,202,211,165,210,255,209,239,209,203,209,17,209,51,208,207,207, +207,207,207,207,167,207,85,207,27,207,90,207,212,207,199,207,25,207,147,206,208,206,158,207,96,208,174,208,187,208,66,209, +172,210,109,212,127,213,152,213,148,213,112,214,29,216,196,217,195,218,30,219,105,219,99,220,12,222,121,223,8,224,82,224, +102,225,116,227,144,229,162,230,154,230,139,230,91,231,192,232,189,233,212,233,179,233,153,234,173,236,136,238,39,239,61,239, +212,239,234,240,14,242,2,243,140,243,210,243,142,244,26,246,232,247,76,249,47,250,3,251,80,252,6,254,98,255,242,255, +105,0,204,1,11,4,24,6,79,7,41,8,104,9,58,11,82,13,43,15,50,16,140,16,59,17,204,18,160,20,18,22, +63,23,106,24,170,25,253,26,12,28,113,28,95,28,99,28,200,28,136,29,75,30,180,30,33,31,59,32,161,33,68,34, +235,33,33,33,111,32,77,32,203,32,54,33,26,33,252,32,83,33,229,33,116,34,230,34,218,34,55,34,146,33,119,33, +178,33,182,33,96,33,31,33,66,33,133,33,152,33,136,33,93,33,5,33,160,32,39,32,87,31,107,30,251,29,13,30, +58,30,80,30,243,29,194,28,79,27,142,26,70,26,136,25,28,24,129,22,58,21,148,20,65,20,103,19,203,17,35,16, +233,14,212,13,157,12,68,11,211,9,129,8,108,7,43,6,84,4,68,2,125,0,251,254,172,253,123,252,223,250,152,248, +107,246,245,244,171,243,229,241,169,239,48,237,182,234,137,232,110,230,239,227,97,225,95,223,198,221,47,220,103,218,45,216, +151,213,78,211,97,209,29,207,113,204,15,202,115,200,172,199,82,199,148,198,75,197,53,196,125,195,175,194,188,193,151,192, +25,191,18,190,55,190,171,190,169,190,210,190,107,191,242,191,113,192,180,192,0,192,23,191,138,191,234,192,210,193,53,194, +116,194,177,194,138,195,236,196,120,197,216,196,31,196,184,195,160,195,36,196,195,196,211,196,10,197,224,197,118,198,150,198, +206,198,211,198,144,198,153,198,80,198,12,197,82,196,116,197,108,199,64,201,228,202,184,203,149,203,176,203,94,204,200,204, +229,204,43,205,189,205,46,207,142,209,169,211,68,213,130,215,43,218,28,220,127,221,176,222,119,223,176,224,46,227,175,229, +53,231,255,232,1,236,149,239,30,243,22,246,210,247,200,248,26,250,208,251,99,253,223,254,98,0,253,1,254,3,78,6, +117,8,100,10,10,12,54,13,79,14,145,15,82,16,173,16,207,17,170,19,42,21,104,22,253,23,125,25,161,26,197,27, +177,28,253,28,32,29,141,29,44,30,40,31,182,32,101,34,199,35,230,36,175,37,25,38,137,38,64,39,19,40,225,40, +158,41,59,42,11,43,146,44,172,46,177,48,94,50,197,51,161,52,161,52,80,52,156,52,143,53,162,54,216,55,71,57, +114,58,76,59,141,60,17,62,214,62,191,62,113,62,11,62,172,61,215,61,101,62,192,62,45,63,41,64,63,65,221,65, +41,66,89,66,79,66,233,65,7,65,177,63,95,62,185,61,255,61,201,62,61,63,226,62,22,62,98,61,189,60,236,59, +205,58,95,57,13,56,81,55,214,54,28,54,122,53,56,53,220,52,46,52,109,51,124,50,66,49,18,48,234,46,152,45, +138,44,243,43,86,43,203,42,173,42,54,42,167,40,197,38,99,37,73,36,91,35,174,34,209,33,169,32,207,31,74,31, +184,30,65,30,221,29,226,28,92,27,9,26,232,24,139,23,72,22,150,21,60,21,220,20,96,20,169,19,140,18,9,17, +86,15,183,13,47,12,137,10,219,8,140,7,195,6,88,6,235,5,238,4,55,3,99,1,229,255,109,254,199,252,41,251, +128,249,183,247,54,246,31,245,11,244,238,242,15,242,45,241,221,239,42,238,56,236,49,234,156,232,201,231,81,231,191,230, +246,229,246,228,243,227,56,227,139,226,138,225,150,224,42,224,221,223,50,223,129,222,50,222,30,222,23,222,24,222,228,221, +88,221,202,220,112,220,11,220,126,219,13,219,229,218,237,218,28,219,106,219,136,219,37,219,101,218,174,217,41,217,185,216, +89,216,37,216,38,216,73,216,103,216,83,216,252,215,125,215,227,214,63,214,202,213,142,213,57,213,180,212,106,212,135,212, +183,212,212,212,255,212,50,213,91,213,148,213,192,213,170,213,122,213,136,213,252,213,228,214,23,216,4,217,103,217,184,217, +88,218,38,219,15,220,23,221,250,221,175,222,158,223,218,224,1,226,7,227,67,228,200,229,62,231,84,232,9,233,180,233, +175,234,1,236,119,237,218,238,24,240,94,241,199,242,11,244,10,245,4,246,234,246,113,247,237,247,210,248,219,249,216,250, +45,252,170,253,153,254,9,255,146,255,84,0,72,1,99,2,40,3,92,3,179,3,186,4,3,6,14,7,231,7,223,8, +50,10,172,11,188,12,62,13,149,13,29,14,24,15,135,16,175,17,35,18,202,18,93,20,32,22,85,23,46,24,222,24, +143,25,182,26,30,28,238,28,47,29,177,29,197,30,42,32,102,33,253,33,53,34,233,34,26,36,2,37,106,37,152,37, +197,37,95,38,122,39,56,40,19,40,197,39,2,40,169,40,74,41,124,41,37,41,221,40,50,41,211,41,35,42,235,41, +106,41,46,41,104,41,102,41,196,40,34,40,217,39,141,39,56,39,210,38,231,37,216,36,170,36,2,37,150,36,95,35, +49,34,65,33,137,32,15,32,93,31,34,30,222,28,15,28,135,27,217,26,217,25,191,24,6,24,176,23,17,23,191,21, +24,20,185,18,241,17,125,17,183,16,103,15,21,14,65,13,224,12,153,12,255,11,237,10,188,9,181,8,183,7,164,6, +124,5,44,4,235,2,28,2,133,1,197,0,11,0,119,255,184,254,226,253,46,253,38,252,116,250,194,248,173,247,233,246, +23,246,79,245,156,244,197,243,191,242,210,241,42,241,111,240,73,239,227,237,144,236,96,235,103,234,176,233,254,232,64,232, +168,231,9,231,24,230,16,229,28,228,13,227,49,226,222,225,150,225,255,224,139,224,82,224,242,223,130,223,20,223,56,222, +52,221,226,220,35,221,41,221,206,220,125,220,131,220,216,220,13,221,208,220,132,220,123,220,119,220,103,220,107,220,104,220, +153,220,134,221,224,222,215,223,87,224,171,224,251,224,141,225,54,226,81,226,35,226,180,226,30,228,194,229,70,231,60,232, +115,232,205,232,242,233,60,235,23,236,193,236,120,237,124,238,5,240,122,241,74,242,16,243,86,244,184,245,226,246,191,247, +53,248,222,248,132,250,144,252,25,254,92,255,148,0,120,1,84,2,100,3,243,3,215,3,24,4,80,5,36,7,0,9, +82,10,34,11,69,12,204,13,177,14,199,14,252,14,195,15,249,16,106,18,158,19,110,20,126,21,27,23,195,24,11,26, +180,26,173,26,203,26,205,27,8,29,198,29,128,30,149,31,214,32,109,34,50,36,56,37,88,37,107,37,186,37,34,38, +222,38,242,39,15,41,67,42,110,43,242,43,234,43,38,44,187,44,31,45,52,45,13,45,169,44,96,44,177,44,157,45, +155,46,14,47,186,46,254,45,75,45,151,44,195,43,246,42,60,42,142,41,31,41,231,40,123,40,227,39,143,39,82,39, +129,38,19,37,156,35,106,34,92,33,82,32,53,31,209,29,7,28,25,26,135,24,177,23,108,23,0,23,205,21,235,19, +215,17,221,15,18,14,109,12,161,10,131,8,123,6,237,4,183,3,157,2,130,1,27,0,57,254,23,252,210,249,92,247, +6,245,31,243,102,241,157,239,239,237,111,236,11,235,196,233,84,232,64,230,144,227,185,224,27,222,2,220,120,218,12,217, +126,215,30,214,229,212,51,211,218,208,106,206,67,204,23,202,89,199,35,196,130,193,93,192,106,192,177,192,111,192,1,191, +67,188,37,185,163,182,157,180,160,178,226,176,194,175,112,175,49,176,189,177,254,178,69,179,215,178,213,177,3,176,202,173, +33,172,152,171,59,172,161,173,216,174,105,175,52,176,11,178,40,180,68,181,254,180,144,179,185,177,235,176,217,177,138,179, +12,181,142,182,30,184,81,185,26,186,101,186,204,185,211,184,172,184,76,185,203,185,68,186,138,187,178,189,6,192,170,193, +48,194,238,193,176,193,21,194,85,195,6,197,118,198,203,199,225,201,199,204,212,207,141,210,81,212,184,212,210,212,210,213, +75,215,214,216,70,219,184,222,78,226,214,229,27,233,92,235,11,237,59,239,98,241,164,242,145,243,159,244,228,245,111,248, +129,252,66,0,185,2,215,4,225,6,142,8,128,10,138,12,84,13,60,13,6,14,213,15,201,17,225,19,54,22,94,24, +68,26,215,27,174,28,25,29,31,30,59,32,7,35,146,37,244,38,106,39,37,40,178,41,197,43,2,46,214,47,202,48, +137,49,12,51,54,53,108,55,98,57,229,58,32,60,136,61,215,62,177,63,209,64,133,66,205,67,120,68,103,69,133,70, +139,71,98,73,252,75,106,77,36,77,188,76,221,76,20,77,161,77,136,78,204,78,93,78,81,78,205,78,63,79,215,79, +170,80,244,80,137,80,42,80,248,79,124,79,252,78,227,78,175,78,246,77,101,77,131,77,206,77,229,77,19,78,59,78, +209,77,2,77,93,76,189,75,218,74,254,73,42,73,230,71,118,70,142,69,15,69,162,68,122,68,54,68,230,66,226,64, +115,63,157,62,122,61,11,60,183,58,63,57,117,55,159,53,212,51,42,50,255,48,18,48,127,46,44,44,233,41,26,40, +139,38,42,37,209,35,255,33,151,31,80,29,181,27,91,26,181,24,230,22,49,21,134,19,16,18,8,17,3,16,158,14, +69,13,21,12,85,10,242,7,184,5,250,3,164,2,203,1,224,0,8,255,206,252,78,251,96,250,104,249,88,248,202,246, +83,244,193,241,230,239,68,238,86,236,129,234,9,233,211,231,216,230,206,229,92,228,192,226,45,225,99,223,104,221,125,219, +139,217,173,215,85,214,78,213,8,212,165,210,127,209,135,208,182,207,22,207,100,206,111,205,79,204,29,203,50,202,218,201, +146,201,211,200,30,200,234,199,204,199,147,199,130,199,93,199,237,198,174,198,193,198,157,198,52,198,234,197,195,197,197,197, +31,198,116,198,61,198,203,197,192,197,22,198,92,198,108,198,123,198,224,198,174,199,151,200,69,201,170,201,230,201,5,202, +17,202,33,202,100,202,249,202,198,203,153,204,100,205,43,206,236,206,185,207,176,208,177,209,127,210,28,211,181,211,56,212, +146,212,60,213,179,214,157,216,101,218,51,220,48,222,203,223,197,224,155,225,105,226,233,226,118,227,139,228,254,229,197,231, +4,234,50,236,194,237,38,239,199,240,65,242,101,243,100,244,38,245,223,245,86,247,128,249,87,251,160,252,51,254,76,0, +61,2,171,3,226,4,252,5,195,6,133,7,231,8,195,10,106,12,243,13,201,15,136,17,195,18,218,19,3,21,239,21, +197,22,213,23,224,24,249,25,181,27,202,29,79,31,91,32,137,33,174,34,113,35,251,35,86,36,125,36,241,36,13,38, +75,39,47,40,31,41,99,42,97,43,157,43,129,43,111,43,85,43,118,43,28,44,168,44,157,44,186,44,119,45,35,46, +132,46,253,46,32,47,139,46,9,46,248,45,172,45,54,45,50,45,81,45,81,45,194,45,109,46,115,46,36,46,67,46, +93,46,202,45,222,44,40,44,213,43,241,43,79,44,133,44,65,44,142,43,234,42,187,42,143,42,205,41,189,40,193,39, +181,38,194,37,44,37,124,36,112,35,143,34,188,33,94,32,222,30,185,29,104,28,183,26,28,25,140,23,255,21,248,20, +16,20,104,18,168,16,161,15,114,14,108,12,107,10,214,8,53,7,196,5,208,4,172,3,13,2,171,0,198,255,248,254, +29,254,30,253,170,251,249,249,178,248,232,247,63,247,200,246,158,246,50,246,6,245,173,243,229,242,107,242,177,241,202,240, +192,239,99,238,65,237,19,237,65,237,183,236,150,235,121,234,66,233,236,231,242,230,60,230,44,229,204,227,152,226,124,225, +65,224,57,223,165,222,41,222,101,221,84,220,227,218,31,217,163,215,224,214,108,214,216,213,62,213,158,212,246,211,189,211, +220,211,81,211,6,210,30,209,211,208,105,208,243,207,212,207,198,207,220,207,143,208,64,209,8,209,132,208,149,208,204,208, +151,208,47,208,194,207,104,207,181,207,219,208,11,210,147,210,172,210,185,210,174,210,124,210,71,210,17,210,205,209,216,209, +147,210,185,211,205,212,210,213,211,214,135,215,235,215,78,216,169,216,209,216,12,217,183,217,251,218,211,220,243,222,25,225, +121,227,248,229,163,231,6,232,246,231,72,232,35,233,183,234,41,237,25,240,37,243,70,246,73,249,164,251,7,253,180,253, +78,254,64,255,122,0,220,1,98,3,41,5,183,7,67,11,143,14,57,16,192,16,73,17,192,17,223,17,238,17,222,17, +245,17,108,19,116,22,186,25,126,28,125,30,255,30,128,30,140,30,222,30,74,30,209,29,246,30,61,33,239,35,19,39, +210,41,77,43,72,44,113,45,3,46,160,45,49,45,139,45,222,46,247,48,72,51,103,53,124,55,202,57,22,60,125,61, +33,61,136,59,82,58,74,58,60,59,29,61,129,63,89,65,144,66,193,67,92,68,191,67,171,66,153,65,34,64,219,62, +150,62,155,62,110,62,11,63,104,64,14,65,172,64,227,63,98,62,3,60,223,57,134,56,86,55,38,54,118,53,58,53, +66,53,205,53,112,54,202,53,99,51,102,48,226,45,216,43,72,42,112,41,240,40,60,40,140,39,3,39,11,38,130,36, +254,34,113,33,77,31,187,28,45,26,174,23,158,21,155,20,50,20,76,19,189,17,6,16,65,14,79,12,33,10,105,7, +32,4,53,1,104,255,38,254,171,252,42,251,187,249,186,247,26,245,138,242,238,239,217,236,29,234,128,232,254,230,148,228, +9,226,82,224,52,223,61,222,228,220,40,218,22,214,110,210,49,208,124,206,127,204,120,202,157,200,0,199,246,197,52,197, +154,195,202,192,170,189,215,186,16,184,89,181,45,179,201,177,64,177,90,177,229,176,232,174,82,172,131,170,46,169,188,167, +136,166,71,165,78,163,223,161,147,162,50,164,187,164,91,164,210,163,209,162,152,161,246,160,158,160,41,160,112,160,222,161, +105,163,103,164,64,165,21,166,141,166,208,166,34,167,4,167,52,166,6,166,237,167,46,171,255,173,240,175,65,177,183,177, +172,177,244,177,4,178,51,177,200,176,228,177,215,179,90,182,211,185,40,189,44,191,147,192,141,193,12,193,220,191,246,191, +24,193,65,194,57,196,118,199,217,202,7,206,121,209,90,212,153,213,177,213,139,213,126,213,64,214,159,216,37,220,190,223, +66,227,7,231,156,234,90,237,131,239,116,241,150,242,181,242,48,243,70,245,199,248,78,253,121,2,1,7,239,9,251,11, +221,13,46,15,238,15,184,16,115,17,72,18,114,20,60,24,88,28,27,32,190,35,130,38,75,39,144,38,152,37,31,37, +201,37,11,40,32,43,212,45,84,48,109,51,186,54,50,57,134,58,185,58,201,57,142,56,59,56,229,56,39,58,82,60, +119,63,166,66,54,69,47,71,115,72,7,73,92,73,75,73,79,72,52,71,119,71,84,73,34,76,104,79,113,82,84,84, +32,85,128,85,127,85,10,85,161,84,145,84,145,84,208,84,253,85,231,87,140,89,148,90,59,91,36,91,233,89,66,88, +34,87,122,86,6,86,244,85,24,86,19,86,88,86,60,87,231,87,128,87,69,86,153,84,149,82,184,80,155,79,42,79, +9,79,3,79,198,78,12,78,41,77,133,76,227,75,175,74,185,72,34,70,70,67,17,65,104,64,219,64,45,65,16,65, +199,64,212,63,237,61,240,59,69,58,59,56,217,53,196,51,202,49,234,47,34,47,89,47,8,47,178,45,246,43,214,41, +86,39,23,37,252,34,81,32,104,29,248,26,233,24,8,23,153,21,169,20,222,19,191,18,213,16,48,14,80,11,119,8, +216,5,225,3,128,2,47,1,236,255,204,254,100,253,176,251,19,250,87,248,58,246,33,244,26,242,224,239,9,238,29,237, +115,236,128,235,132,234,109,233,5,232,166,230,84,229,144,227,137,225,197,223,68,222,48,221,217,220,163,220,189,219,102,218, +19,217,154,215,224,213,15,212,44,210,97,208,20,207,61,206,128,205,205,204,77,204,246,203,123,203,109,202,187,200,0,199, +196,197,221,196,249,195,61,195,5,195,106,195,32,196,185,196,236,196,174,196,18,196,83,195,181,194,64,194,249,193,56,194, +41,195,86,196,34,197,122,197,188,197,62,198,250,198,169,199,46,200,167,200,29,201,147,201,78,202,122,203,210,204,238,205, +174,206,66,207,204,207,35,208,55,208,119,208,59,209,46,210,16,211,41,212,106,213,82,214,226,214,100,215,187,215,233,215, +109,216,102,217,124,218,181,219,58,221,176,222,199,223,193,224,208,225,172,226,68,227,23,228,131,229,58,231,203,232,50,234, +165,235,73,237,64,239,103,241,46,243,89,244,93,245,140,246,199,247,39,249,235,250,223,252,176,254,120,0,90,2,47,4, +201,5,248,6,165,7,47,8,55,9,227,10,169,12,3,14,9,15,23,16,32,17,246,17,210,18,193,19,95,20,194,20, +119,21,92,22,20,23,3,24,69,25,34,26,135,26,254,26,102,27,154,27,43,28,253,28,88,29,131,29,18,30,172,30, +52,31,39,32,36,33,136,33,201,33,72,34,133,34,137,34,13,35,12,36,241,36,158,37,67,38,242,38,148,39,5,40, +102,40,246,40,89,41,43,41,233,40,23,41,122,41,21,42,10,43,188,43,190,43,151,43,119,43,12,43,167,42,146,42, +68,42,162,41,66,41,36,41,254,40,6,41,20,41,155,40,219,39,80,39,180,38,222,37,51,37,162,36,208,35,236,34, +42,34,92,33,151,32,4,32,86,31,96,30,89,29,38,28,134,26,236,24,253,23,132,23,213,22,223,21,254,20,38,20, +3,19,173,17,102,16,11,15,124,13,22,12,14,11,49,10,122,9,238,8,21,8,153,6,211,4,42,3,159,1,70,0, +56,255,77,254,86,253,93,252,121,251,193,250,43,250,96,249,28,248,150,246,37,245,214,243,173,242,199,241,14,241,57,240, +68,239,151,238,80,238,231,237,255,236,239,235,235,234,165,233,50,232,11,231,12,230,238,228,33,228,228,227,151,227,225,226, +16,226,26,225,194,223,121,222,180,221,41,221,122,220,197,219,39,219,128,218,194,217,249,216,36,216,85,215,168,214,31,214, +167,213,70,213,252,212,145,212,223,211,22,211,102,210,198,209,92,209,113,209,206,209,245,209,223,209,184,209,112,209,35,209, +23,209,61,209,97,209,104,209,54,209,4,209,80,209,240,209,77,210,121,210,184,210,181,210,105,210,99,210,152,210,178,210, +3,211,183,211,91,212,235,212,180,213,85,214,118,214,106,214,87,214,42,214,76,214,24,215,94,216,248,217,207,219,116,221, +164,222,146,223,107,224,63,225,11,226,173,226,91,227,126,228,240,229,170,231,110,234,37,238,87,241,92,243,202,244,192,245, +67,246,15,247,76,248,147,249,110,251,98,254,150,1,109,4,51,7,115,9,134,10,32,11,218,11,49,12,86,12,81,13, +23,15,253,16,14,19,29,21,99,22,45,23,156,24,102,26,12,27,57,26,36,25,202,24,87,25,223,26,45,29,64,31, +115,32,105,33,150,34,46,35,197,34,53,34,50,34,183,34,247,35,10,38,77,40,94,42,117,44,80,46,66,47,109,47, +121,47,195,47,127,48,191,49,8,51,242,51,247,52,197,54,78,57,245,59,252,61,164,62,209,61,124,60,176,59,138,59, +237,59,17,61,141,62,108,63,225,63,214,64,215,65,179,65,151,64,77,63,172,61,191,59,121,58,49,58,69,58,88,58, +68,58,190,57,20,57,212,56,134,56,113,55,212,53,249,51,138,49,234,46,115,45,156,45,111,46,236,46,178,46,156,45, +217,43,254,41,112,40,19,39,200,37,124,36,9,35,146,33,145,32,253,31,69,31,73,30,40,29,118,27,5,25,177,22, +3,21,116,19,190,17,47,16,154,14,213,12,142,11,254,10,10,10,200,7,154,4,60,1,14,254,113,251,192,249,213,248, +10,248,187,246,159,244,233,241,68,239,103,237,31,236,65,234,62,231,215,227,222,224,160,222,108,221,238,220,230,219,246,217, +254,215,63,214,82,212,103,210,97,208,126,205,53,202,203,199,33,198,162,196,196,195,117,195,109,194,67,192,178,189,43,187, +31,185,21,184,125,183,56,182,34,180,185,177,126,175,34,174,233,173,39,174,63,174,11,174,72,173,10,172,12,171,153,170, +98,170,83,170,65,170,173,169,220,168,208,168,203,169,6,171,170,171,134,171,69,171,190,171,229,172,6,174,193,174,252,174, +208,174,245,174,13,176,152,177,221,178,236,179,234,180,140,181,174,181,128,181,106,181,17,182,151,183,53,185,62,186,206,186, +52,187,184,187,166,188,154,189,197,189,111,189,187,189,242,190,116,192,231,193,76,195,170,196,73,198,102,200,113,202,180,203, +110,204,49,205,229,205,141,206,237,207,93,210,93,213,223,216,9,221,186,224,162,226,115,227,180,228,144,230,164,232,24,235, +180,237,236,239,62,242,126,245,73,249,210,252,254,255,180,2,156,4,240,5,87,7,249,8,171,10,111,12,68,14,30,16, +72,18,0,21,197,23,212,25,20,27,200,27,12,28,83,28,130,29,185,31,30,34,56,36,39,38,188,39,215,40,240,41, +22,43,198,43,64,44,65,45,147,46,182,47,32,49,47,51,61,53,232,54,150,56,59,58,60,59,156,59,231,59,67,60, +180,60,180,61,151,63,254,65,144,68,57,71,99,73,92,74,127,74,133,74,118,74,111,74,252,74,227,75,119,76,12,77, +32,78,74,79,90,80,132,81,9,82,70,81,37,80,99,79,115,78,82,77,180,76,124,76,70,76,98,76,211,76,40,77, +83,77,15,77,189,75,183,73,254,71,188,70,181,69,27,69,224,68,143,68,240,67,245,66,162,65,55,64,202,62,69,61, +230,59,189,58,104,57,22,56,74,55,187,54,14,54,128,53,190,52,59,51,129,49,247,47,241,45,165,43,55,42,122,41, +163,40,3,40,159,39,129,38,197,36,69,35,151,33,29,31,132,28,100,26,114,24,183,22,123,21,112,20,78,19,82,18, +119,17,97,16,231,14,2,13,169,10,31,8,248,5,126,4,81,3,244,1,138,0,138,255,238,254,80,254,94,253,200,251, +127,249,26,247,45,245,160,243,86,242,120,241,171,240,95,239,209,237,154,236,201,235,38,235,147,234,199,233,117,232,195,230, +38,229,224,227,214,226,218,225,248,224,60,224,115,223,121,222,105,221,76,220,47,219,53,218,54,217,246,215,233,214,162,214, +186,214,128,214,254,213,109,213,182,212,7,212,184,211,167,211,122,211,44,211,246,210,8,211,104,211,230,211,97,212,214,212, +42,213,77,213,114,213,177,213,220,213,255,213,79,214,185,214,34,215,188,215,167,216,184,217,214,218,242,219,200,220,28,221, +41,221,101,221,237,221,127,222,234,222,48,223,114,223,10,224,55,225,137,226,90,227,184,227,239,227,217,227,132,227,120,227, +219,227,120,228,75,229,33,230,148,230,246,230,228,231,44,233,91,234,139,235,190,236,168,237,61,238,161,238,11,239,250,239, +165,241,126,243,13,245,108,246,201,247,73,249,252,250,122,252,108,253,29,254,235,254,6,0,189,1,221,3,164,5,20,7, +183,8,51,10,34,11,9,12,10,13,170,13,69,14,91,15,81,16,208,16,154,17,231,18,42,20,69,21,38,22,85,22, +220,21,72,21,206,20,139,20,170,20,254,20,120,21,107,22,147,23,62,24,109,24,108,24,38,24,192,23,146,23,77,23, +179,22,109,22,4,23,19,24,28,25,7,26,201,26,66,27,76,27,196,26,241,25,118,25,132,25,209,25,64,26,229,26, +169,27,111,28,35,29,143,29,122,29,252,28,115,28,42,28,36,28,50,28,45,28,24,28,9,28,4,28,251,27,207,27, +107,27,215,26,41,26,103,25,134,24,161,23,2,23,190,22,135,22,49,22,233,21,143,21,191,20,147,19,114,18,81,17, +38,16,85,15,253,14,195,14,132,14,52,14,127,13,117,12,158,11,250,10,27,10,12,9,11,8,251,6,220,5,235,4, +27,4,84,3,209,2,146,2,38,2,93,1,114,0,133,255,130,254,97,253,57,252,51,251,98,250,164,249,221,248,35,248, +142,247,36,247,223,246,128,246,190,245,197,244,252,243,96,243,169,242,216,241,4,241,55,240,181,239,204,239,43,240,64,240, +1,240,169,239,38,239,108,238,198,237,77,237,198,236,79,236,64,236,106,236,103,236,69,236,27,236,180,235,54,235,4,235, +220,234,62,234,108,233,247,232,210,232,191,232,186,232,167,232,76,232,196,231,86,231,13,231,179,230,46,230,193,229,199,229, +21,230,36,230,243,229,241,229,25,230,14,230,201,229,141,229,128,229,160,229,206,229,5,230,126,230,58,231,230,231,145,232, +120,233,46,234,73,234,103,234,21,235,217,235,96,236,7,237,223,237,175,238,163,239,206,240,220,241,186,242,121,243,233,243, +68,244,28,245,58,246,236,246,58,247,168,247,86,248,25,249,191,249,56,250,187,250,110,251,22,252,146,252,12,253,112,253, +161,253,228,253,81,254,167,254,7,255,182,255,99,0,191,0,26,1,169,1,47,2,166,2,71,3,9,4,184,4,65,5, +215,5,201,6,252,7,239,8,158,9,128,10,147,11,137,12,172,13,57,15,186,16,228,17,11,19,68,20,87,21,121,22, +221,23,44,25,57,26,106,27,233,28,95,30,138,31,124,32,108,33,151,34,241,35,9,37,167,37,60,38,24,39,228,39, +95,40,194,40,38,41,127,41,26,42,17,43,204,43,222,43,143,43,32,43,148,42,55,42,57,42,64,42,23,42,18,42, +96,42,174,42,167,42,63,42,168,41,10,41,98,40,199,39,128,39,149,39,189,39,222,39,5,40,31,40,41,40,51,40, +21,40,181,39,47,39,125,38,178,37,83,37,139,37,217,37,14,38,105,38,168,38,93,38,185,37,253,36,18,36,28,35, +107,34,220,33,39,33,117,32,28,32,24,32,251,31,78,31,251,29,59,28,65,26,55,24,95,22,223,20,177,19,173,18, +134,17,49,16,247,14,187,13,245,11,173,9,67,7,149,4,175,1,81,255,230,253,5,253,28,252,181,250,195,248,232,246, +113,245,198,243,179,241,152,239,50,237,80,234,230,231,155,230,227,229,84,229,215,228,224,227,65,226,140,224,188,222,96,220, +212,217,181,215,6,214,190,212,237,211,121,211,75,211,34,211,94,210,206,208,210,206,124,204,6,202,49,200,17,199,238,197, +187,196,225,195,48,195,140,194,33,194,115,193,227,191,194,189,144,187,112,185,189,183,200,182,81,182,31,182,27,182,222,181, +63,181,153,180,211,179,149,178,73,177,115,176,195,175,255,174,195,174,119,175,158,176,132,177,252,177,56,178,65,178,4,178, +181,177,158,177,154,177,171,177,94,178,220,179,156,181,102,183,80,185,221,186,147,187,203,187,10,188,118,188,82,189,216,190, +171,192,92,194,8,196,223,197,195,199,139,201,36,203,94,204,58,205,23,206,65,207,160,208,41,210,17,212,68,214,83,216, +33,218,228,219,160,221,62,223,188,224,221,225,131,226,99,227,77,229,251,231,140,234,175,236,141,238,29,240,64,241,68,242, +175,243,144,245,118,247,43,249,251,250,4,253,16,255,28,1,62,3,70,5,249,6,84,8,147,9,45,11,79,13,112,15, +68,17,74,19,135,21,75,23,205,24,219,26,15,29,132,30,118,31,140,32,216,33,108,35,106,37,106,39,3,41,99,42, +160,43,138,44,91,45,137,46,238,47,7,49,221,49,222,50,248,51,191,52,102,53,93,54,64,55,121,55,91,55,73,55, +25,55,5,55,134,55,48,56,114,56,154,56,203,56,171,56,134,56,174,56,97,56,42,55,236,53,94,53,94,53,205,53, +121,54,199,54,150,54,81,54,1,54,102,53,146,52,187,51,235,50,35,50,97,49,178,48,56,48,22,48,100,48,225,48, +185,48,124,47,237,45,209,44,253,43,58,43,151,42,180,41,139,40,254,39,57,40,76,40,219,39,14,39,112,37,25,35, +73,33,99,32,118,31,77,30,111,29,156,28,101,27,43,26,23,25,159,23,192,21,2,20,77,18,55,16,38,14,211,12, +28,12,98,11,117,10,86,9,209,7,245,5,29,4,72,2,70,0,70,254,112,252,163,250,45,249,148,248,119,248,0,248, +28,247,251,245,74,244,13,242,7,240,156,238,132,237,151,236,205,235,6,235,138,234,203,234,81,235,34,235,24,234,176,232, +35,231,177,229,226,228,177,228,123,228,49,228,73,228,158,228,165,228,104,228,37,228,177,227,248,226,64,226,141,225,197,224, +91,224,201,224,160,225,8,226,202,225,58,225,160,224,78,224,137,224,229,224,141,224,150,223,244,222,16,223,143,223,55,224, +203,224,192,224,35,224,205,223,251,223,30,224,32,224,104,224,249,224,174,225,143,226,98,227,235,227,132,228,110,229,56,230, +143,230,176,230,235,230,131,231,216,232,185,234,59,236,218,236,53,237,38,238,184,239,101,241,189,242,138,243,244,243,151,244, +239,245,177,247,66,249,131,250,174,251,221,252,38,254,144,255,228,0,252,1,252,2,255,3,238,4,202,5,166,6,139,7, +146,8,199,9,243,10,197,11,55,12,177,12,164,13,228,14,199,15,46,16,143,16,19,17,161,17,120,18,152,19,108,20, +208,20,58,21,194,21,75,22,41,23,87,24,25,25,42,25,4,25,241,24,16,25,185,25,219,26,202,27,55,28,135,28, +3,29,143,29,22,30,148,30,224,30,233,30,248,30,97,31,15,32,190,32,103,33,254,33,55,34,4,34,210,33,226,33, +23,34,96,34,170,34,167,34,48,34,163,33,121,33,193,33,30,34,24,34,138,33,191,32,21,32,161,31,76,31,3,31, +165,30,14,30,88,29,197,28,87,28,200,27,28,27,138,26,216,25,169,24,78,23,89,22,187,21,30,21,134,20,235,19, +0,19,201,17,173,16,219,15,47,15,102,14,70,13,247,11,249,10,114,10,10,10,142,9,9,9,82,8,51,7,236,5, +241,4,53,4,90,3,96,2,130,1,177,0,202,255,2,255,121,254,240,253,77,253,158,252,171,251,91,250,40,249,98,248, +183,247,232,246,16,246,74,245,189,244,109,244,238,243,250,242,240,241,11,241,251,239,192,238,201,237,42,237,162,236,25,236, +122,235,167,234,196,233,12,233,106,232,155,231,180,230,250,229,105,229,191,228,16,228,167,227,89,227,210,226,68,226,236,225, +142,225,25,225,207,224,131,224,227,223,49,223,187,222,102,222,47,222,37,222,18,222,225,221,195,221,172,221,111,221,37,221, +237,220,214,220,253,220,78,221,145,221,215,221,45,222,107,222,166,222,242,222,3,223,232,222,49,223,214,223,84,224,209,224, +149,225,81,226,222,226,109,227,234,227,89,228,8,229,195,229,55,230,206,230,210,231,207,232,163,233,176,234,215,235,194,236, +138,237,70,238,243,238,194,239,176,240,119,241,53,242,37,243,22,244,1,245,32,246,54,247,224,247,108,248,66,249,50,250, +243,250,146,251,46,252,242,252,13,254,95,255,132,0,95,1,49,2,40,3,38,4,17,5,250,5,241,6,235,7,243,8, +27,10,68,11,81,12,87,13,99,14,113,15,148,16,201,17,241,18,31,20,110,21,178,22,221,23,27,25,81,26,67,27, +57,28,145,29,0,31,2,32,172,32,122,33,164,34,245,35,44,37,61,38,29,39,168,39,9,40,164,40,93,41,191,41, +219,41,51,42,234,42,192,43,128,44,15,45,114,45,213,45,48,46,62,46,13,46,10,46,87,46,173,46,237,46,54,47, +115,47,123,47,137,47,228,47,67,48,58,48,253,47,234,47,248,47,14,48,63,48,107,48,113,48,119,48,137,48,130,48, +119,48,142,48,168,48,173,48,183,48,182,48,136,48,57,48,234,47,183,47,164,47,112,47,229,46,45,46,129,45,238,44, +130,44,33,44,114,43,124,42,149,41,189,40,221,39,33,39,91,38,37,37,183,35,125,34,80,33,16,32,249,30,252,29, +223,28,181,27,138,26,66,25,254,23,205,22,119,21,1,20,139,18,240,16,71,15,250,13,254,12,232,11,164,10,100,9, +69,8,78,7,66,6,230,4,120,3,44,2,200,0,88,255,51,254,41,253,249,251,235,250,9,250,237,248,164,247,111,246, +19,245,141,243,63,242,2,241,123,239,249,237,205,236,182,235,154,234,144,233,86,232,208,230,98,229,47,228,230,226,105,225, +224,223,103,222,29,221,13,220,1,219,232,217,241,216,11,216,198,214,15,213,103,211,32,210,7,209,244,207,25,207,116,206, +178,205,198,204,243,203,72,203,150,202,192,201,180,200,128,199,121,198,208,197,89,197,252,196,208,196,175,196,68,196,142,195, +221,194,84,194,201,193,7,193,42,192,132,191,40,191,236,190,203,190,211,190,241,190,4,191,215,190,58,190,129,189,88,189, +184,189,250,189,239,189,225,189,223,189,252,189,135,190,96,191,231,191,245,191,10,192,116,192,11,193,156,193,35,194,186,194, +150,195,194,196,232,197,197,198,135,199,109,200,96,201,71,202,48,203,20,204,250,204,38,206,175,207,79,209,204,210,34,212, +96,213,178,214,34,216,90,217,53,218,18,219,26,220,31,221,65,222,173,223,47,225,193,226,132,228,15,230,11,231,236,231, +13,233,52,234,91,235,158,236,180,237,168,238,3,240,194,241,97,243,205,244,25,246,54,247,92,248,184,249,232,250,191,251, +171,252,215,253,251,254,26,0,122,1,16,3,145,4,216,5,255,6,16,8,209,8,83,9,44,10,125,11,174,12,139,13, +113,14,99,15,74,16,104,17,144,18,50,19,119,19,225,19,89,20,201,20,124,21,74,22,209,22,84,23,38,24,243,24, +107,25,180,25,229,25,254,25,54,26,176,26,70,27,234,27,198,28,227,29,235,30,133,31,190,31,217,31,236,31,4,32, +65,32,126,32,153,32,237,32,191,33,183,34,146,35,99,36,225,36,191,36,100,36,81,36,85,36,51,36,29,36,58,36, +138,36,2,37,111,37,156,37,173,37,183,37,108,37,189,36,28,36,183,35,65,35,200,34,179,34,205,34,105,34,177,33, +90,33,66,33,183,32,221,31,48,31,132,30,167,29,246,28,140,28,62,28,55,28,94,28,249,27,243,26,24,26,156,25, +7,25,102,24,244,23,110,23,214,22,175,22,216,22,169,22,23,22,123,21,182,20,173,19,192,18,31,18,152,17,49,17, +252,16,172,16,37,16,201,15,133,15,193,14,135,13,102,12,102,11,84,10,118,9,237,8,80,8,130,7,223,6,100,6, +175,5,164,4,116,3,66,2,25,1,251,255,237,254,247,253,45,253,179,252,116,252,249,251,11,251,33,250,126,249,205,248, +0,248,92,247,191,246,23,246,204,245,203,245,162,245,138,245,175,245,101,245,160,244,67,244,90,244,49,244,248,243,43,244, +115,244,144,244,193,244,233,244,222,244,4,245,110,245,148,245,78,245,6,245,10,245,101,245,241,245,96,246,155,246,199,246, +228,246,228,246,230,246,247,246,232,246,174,246,123,246,129,246,191,246,20,247,137,247,49,248,197,248,231,248,197,248,179,248, +167,248,165,248,242,248,118,249,247,249,154,250,109,251,39,252,192,252,107,253,248,253,39,254,42,254,96,254,249,254,231,255, +218,0,156,1,90,2,69,3,55,4,5,5,164,5,20,6,113,6,218,6,83,7,236,7,178,8,126,9,74,10,75,11, +82,12,244,12,84,13,211,13,70,14,112,14,135,14,198,14,49,15,218,15,182,16,127,17,34,18,186,18,63,19,150,19, +195,19,214,19,227,19,20,20,125,20,16,21,193,21,132,22,60,23,199,23,20,24,48,24,53,24,27,24,227,23,209,23, +23,24,125,24,209,24,42,25,132,25,172,25,162,25,130,25,58,25,191,24,63,24,204,23,89,23,20,23,57,23,144,23, +171,23,128,23,61,23,199,22,8,22,61,21,129,20,168,19,214,18,119,18,143,18,178,18,142,18,28,18,125,17,220,16, +53,16,98,15,111,14,141,13,216,12,100,12,55,12,46,12,19,12,184,11,33,11,158,10,71,10,143,9,70,8,45,7, +159,6,4,6,67,5,218,4,150,4,8,4,135,3,55,3,140,2,107,1,59,0,21,255,7,254,52,253,83,252,58,251, +101,250,249,249,111,249,169,248,221,247,212,246,117,245,47,244,24,243,230,241,184,240,224,239,65,239,149,238,203,237,243,236, +20,236,37,235,29,234,30,233,69,232,139,231,244,230,140,230,37,230,147,229,238,228,84,228,228,227,184,227,129,227,210,226, +236,225,97,225,42,225,237,224,175,224,153,224,150,224,132,224,89,224,36,224,236,223,141,223,246,222,101,222,16,222,208,221, +121,221,34,221,10,221,93,221,198,221,163,221,6,221,156,220,119,220,37,220,180,219,78,219,198,218,84,218,113,218,214,218, +19,219,103,219,223,219,255,219,193,219,140,219,83,219,6,219,0,219,95,219,235,219,161,220,111,221,31,222,229,222,21,224, +71,225,219,225,239,225,13,226,104,226,4,227,4,228,96,229,182,230,202,231,214,232,18,234,69,235,45,236,223,236,116,237, +247,237,188,238,0,240,96,241,110,242,108,243,166,244,197,245,128,246,35,247,220,247,103,248,214,248,157,249,166,250,132,251, +93,252,150,253,243,254,14,0,236,0,151,1,244,1,58,2,183,2,97,3,48,4,71,5,151,6,250,7,137,9,37,11, +82,12,237,12,90,13,223,13,106,14,12,15,2,16,75,17,173,18,39,20,218,21,112,23,120,24,62,25,57,26,5,27, +69,27,146,27,105,28,121,29,181,30,80,32,207,33,194,34,133,35,89,36,6,37,138,37,245,37,33,38,101,38,71,39, +102,40,38,41,204,41,179,42,141,43,26,44,109,44,121,44,73,44,88,44,0,45,230,45,126,46,202,46,66,47,254,47, +159,48,0,49,41,49,234,48,101,48,83,48,213,48,70,49,134,49,5,50,166,50,4,51,50,51,73,51,31,51,204,50, +129,50,45,50,223,49,218,49,4,50,20,50,34,50,90,50,118,50,24,50,99,49,196,48,65,48,147,47,200,46,40,46, +184,45,112,45,101,45,76,45,214,44,67,44,175,43,174,42,105,41,130,40,193,39,185,38,248,37,207,37,131,37,203,36, +25,36,79,35,37,34,250,32,225,31,126,30,42,29,92,28,152,27,128,26,152,25,246,24,237,23,84,22,177,20,52,19, +169,17,16,16,133,14,4,13,142,11,65,10,21,9,209,7,90,6,198,4,7,3,236,0,170,254,177,252,247,250,51,249, +140,247,49,246,202,244,42,243,169,241,70,240,136,238,112,236,122,234,178,232,219,230,22,229,134,227,3,226,177,224,212,223, +241,222,96,221,103,219,157,217,245,215,62,214,152,212,254,210,117,209,95,208,164,207,154,206,54,205,252,203,190,202,251,200, +252,198,70,197,200,195,88,194,28,193,34,192,58,191,73,190,68,189,25,188,185,186,42,185,138,183,244,181,112,180,12,179, +219,177,232,176,79,176,16,176,162,175,146,174,60,173,22,172,253,170,230,169,41,169,185,168,79,168,49,168,157,168,40,169, +98,169,82,169,39,169,2,169,3,169,31,169,67,169,128,169,253,169,228,170,53,172,159,173,222,174,1,176,255,176,178,177, +89,178,70,179,81,180,90,181,181,182,129,184,120,186,88,188,5,190,145,191,58,193,224,194,16,196,228,196,247,197,122,199, +48,201,6,203,237,204,201,206,166,208,117,210,0,212,77,213,131,214,157,215,173,216,242,217,129,219,67,221,44,223,45,225, +56,227,45,229,193,230,226,231,238,232,32,234,122,235,45,237,69,239,82,241,47,243,43,245,67,247,70,249,58,251,236,252, +45,254,125,255,58,1,248,2,163,4,202,6,85,9,165,11,192,13,210,15,137,17,225,18,86,20,241,21,91,23,146,24, +229,25,142,27,147,29,153,31,51,33,110,34,162,35,219,36,255,37,9,39,234,39,166,40,130,41,180,42,11,44,53,45, +43,46,41,47,79,48,104,49,46,50,165,50,18,51,165,51,113,52,103,53,61,54,190,54,59,55,23,56,254,56,98,57, +106,57,139,57,196,57,6,58,136,58,31,59,94,59,125,59,249,59,142,60,202,60,202,60,174,60,109,60,62,60,49,60, +231,59,120,59,111,59,184,59,204,59,153,59,50,59,142,58,246,57,156,57,15,57,33,56,102,55,33,55,231,54,137,54, +54,54,217,53,72,53,176,52,51,52,142,51,148,50,134,49,179,48,14,48,106,47,192,46,13,46,95,45,213,44,81,44, +141,43,159,42,173,41,122,40,23,39,32,38,128,37,116,36,20,35,13,34,55,33,34,32,28,31,71,30,22,29,114,27, +249,25,219,24,188,23,117,22,54,21,17,20,231,18,162,17,83,16,249,14,141,13,40,12,196,10,53,9,187,7,193,6, +254,5,10,5,58,4,160,3,128,2,219,0,141,255,149,254,101,253,56,252,84,251,92,250,108,249,246,248,151,248,213,247, +1,247,49,246,12,245,204,243,229,242,21,242,35,241,117,240,51,240,247,239,141,239,28,239,158,238,242,237,60,237,173,236, +10,236,20,235,55,234,240,233,235,233,187,233,161,233,168,233,85,233,196,232,123,232,59,232,163,231,30,231,229,230,156,230, +105,230,175,230,12,231,20,231,19,231,49,231,48,231,43,231,68,231,32,231,204,230,249,230,188,231,102,232,200,232,73,233, +237,233,99,234,164,234,204,234,214,234,233,234,85,235,27,236,246,236,199,237,148,238,97,239,71,240,71,241,25,242,142,242, +218,242,54,243,184,243,131,244,152,245,181,246,186,247,194,248,193,249,135,250,41,251,226,251,166,252,49,253,128,253,249,253, +237,254,43,0,97,1,131,2,121,3,23,4,151,4,63,5,216,5,71,6,229,6,193,7,125,8,25,9,213,9,168,10, +148,11,178,12,170,13,43,14,132,14,0,15,111,15,217,15,148,16,125,17,46,18,200,18,170,19,174,20,111,21,247,21, +144,22,44,23,152,23,242,23,120,24,31,25,202,25,125,26,59,27,1,28,185,28,41,29,91,29,177,29,36,30,66,30, +33,30,48,30,97,30,156,30,40,31,229,31,63,32,35,32,221,31,149,31,117,31,135,31,100,31,236,30,140,30,101,30, +70,30,61,30,37,30,164,29,246,28,131,28,26,28,146,27,29,27,136,26,156,25,222,24,166,24,127,24,10,24,102,23, +175,22,255,21,100,21,145,20,96,19,66,18,143,17,29,17,186,16,52,16,96,15,110,14,187,13,66,13,192,12,246,11, +192,10,99,9,84,8,134,7,173,6,221,5,39,5,80,4,106,3,193,2,27,2,24,1,213,255,141,254,72,253,52,252, +118,251,192,250,188,249,161,248,208,247,48,247,76,246,4,245,177,243,151,242,168,241,205,240,235,239,199,238,122,237,123,236, +246,235,127,235,176,234,139,233,87,232,92,231,157,230,207,229,206,228,214,227,23,227,114,226,193,225,8,225,85,224,157,223, +217,222,42,222,153,221,242,220,33,220,103,219,233,218,114,218,202,217,2,217,101,216,49,216,47,216,230,215,72,215,156,214, +231,213,51,213,210,212,197,212,161,212,76,212,13,212,252,211,254,211,236,211,168,211,79,211,21,211,227,210,159,210,114,210, +119,210,167,210,8,211,111,211,151,211,169,211,246,211,104,212,178,212,198,212,202,212,0,213,130,213,30,214,204,214,171,215, +148,216,92,217,53,218,23,219,168,219,13,220,178,220,147,221,152,222,186,223,190,224,157,225,186,226,19,228,79,229,120,230, +152,231,116,232,57,233,76,234,142,235,182,236,201,237,248,238,125,240,78,242,240,243,44,245,81,246,92,247,35,248,252,248, +13,250,35,251,144,252,149,254,114,0,193,1,18,3,134,4,197,5,245,6,27,8,234,8,206,9,80,11,13,13,157,14, +50,16,176,17,226,18,32,20,144,21,222,22,0,24,32,25,41,26,57,27,150,28,34,30,162,31,63,33,22,35,207,36, +253,37,168,38,62,39,10,40,16,41,101,42,244,43,85,45,125,46,206,47,62,49,140,50,205,51,199,52,15,53,56,53, +12,54,25,55,193,55,104,56,112,57,161,58,179,59,99,60,182,60,49,61,214,61,0,62,205,61,223,61,14,62,31,62, +149,62,130,63,46,64,72,64,248,63,91,63,176,62,65,62,16,62,2,62,226,61,92,61,165,60,95,60,159,60,210,60, +108,60,83,59,252,57,246,56,50,56,97,55,153,54,219,53,8,53,106,52,5,52,68,51,36,50,40,49,25,48,145,46, +204,44,5,43,102,41,118,40,18,40,82,39,25,38,232,36,152,35,7,34,150,32,32,31,50,29,16,27,9,25,17,23, +134,21,181,20,16,20,253,18,134,17,177,15,107,13,255,10,205,8,204,6,173,4,110,2,151,0,98,255,33,254,104,252, +173,250,254,248,211,246,85,244,7,242,211,239,194,237,37,236,179,234,250,232,12,231,235,228,167,226,213,224,119,223,176,221, +90,219,254,216,175,214,146,212,47,211,67,210,254,208,58,207,64,205,59,203,102,201,188,199,232,197,244,195,48,194,157,192, +60,191,45,190,63,189,60,188,41,187,209,185,11,184,46,182,149,180,75,179,66,178,44,177,191,175,95,174,112,173,180,172, +26,172,184,171,252,170,126,169,224,167,159,166,135,165,151,164,0,164,173,163,134,163,105,163,29,163,207,162,170,162,70,162, +130,161,225,160,118,160,29,160,69,160,22,161,2,162,214,162,160,163,29,164,113,164,31,165,254,165,154,166,25,167,191,167, +167,168,23,170,10,172,246,173,175,175,111,177,31,179,117,180,105,181,63,182,88,183,227,184,187,186,218,188,52,191,92,193, +65,195,105,197,168,199,50,201,253,201,158,202,110,203,208,204,243,206,76,209,124,211,200,213,17,216,5,218,218,219,130,221, +111,222,221,222,157,223,221,224,133,226,198,228,116,231,29,234,169,236,251,238,182,240,234,241,23,243,143,244,71,246,31,248, +33,250,119,252,24,255,217,1,193,4,158,7,252,9,233,11,191,13,92,15,202,16,170,18,6,21,69,23,138,25,84,28, +91,31,30,34,134,36,98,38,147,39,126,40,123,41,159,42,39,44,39,46,66,48,89,50,151,52,176,54,21,56,216,56, +147,57,139,58,100,59,190,59,246,59,178,60,250,61,91,63,168,64,244,65,54,67,41,68,121,68,57,68,247,67,246,67, +15,68,124,68,129,69,149,70,90,71,93,72,177,73,94,74,32,74,196,73,165,73,144,73,174,73,52,74,209,74,77,75, +229,75,161,76,37,77,82,77,70,77,240,76,77,76,190,75,111,75,2,75,129,74,154,74,84,75,197,75,141,75,21,75, +92,74,12,73,150,71,182,70,61,70,126,69,131,68,241,67,237,67,209,67,2,67,171,65,89,64,44,63,223,61,86,60, +180,58,40,57,226,55,254,54,80,54,139,53,143,52,112,51,64,50,235,48,69,47,75,45,59,43,103,41,254,39,252,38, +56,38,116,37,125,36,62,35,183,33,252,31,46,30,106,28,166,26,215,24,43,23,215,21,179,20,111,19,2,18,158,16, +63,15,182,13,249,11,28,10,46,8,82,6,197,4,152,3,129,2,52,1,201,255,145,254,137,253,68,252,134,250,161,248, +255,246,163,245,97,244,59,243,80,242,158,241,248,240,28,240,232,238,145,237,86,236,25,235,179,233,99,232,109,231,162,230, +224,229,113,229,85,229,251,228,38,228,57,227,85,226,50,225,227,223,211,222,10,222,87,221,220,220,174,220,131,220,52,220, +225,219,125,219,218,218,14,218,71,217,144,216,11,216,219,215,215,215,217,215,1,216,72,216,113,216,147,216,241,216,65,217, +41,217,4,217,63,217,161,217,247,217,145,218,134,219,112,220,43,221,237,221,166,222,42,223,163,223,59,224,219,224,131,225, +99,226,127,227,165,228,174,229,123,230,25,231,203,231,173,232,113,233,250,233,174,234,189,235,185,236,91,237,243,237,203,238, +174,239,110,240,52,241,6,242,157,242,247,242,116,243,69,244,39,245,228,245,160,246,129,247,114,248,86,249,40,250,231,250, +158,251,100,252,57,253,29,254,49,255,112,0,143,1,108,2,86,3,132,4,168,5,139,6,131,7,208,8,24,10,6,11, +229,11,7,13,40,14,22,15,49,16,152,17,181,18,76,19,254,19,30,21,44,22,233,22,176,23,142,24,53,25,189,25, +119,26,68,27,224,27,83,28,180,28,21,29,151,29,27,30,70,30,44,30,70,30,156,30,213,30,236,30,19,31,88,31, +185,31,6,32,206,31,20,31,144,30,158,30,209,30,211,30,193,30,150,30,67,30,9,30,252,29,215,29,152,29,110,29, +53,29,196,28,83,28,236,27,85,27,191,26,151,26,163,26,108,26,16,26,217,25,143,25,246,24,63,24,147,23,219,22, +37,22,172,21,124,21,78,21,221,20,31,20,53,19,65,18,112,17,235,16,125,16,178,15,151,14,185,13,54,13,134,12, +135,11,177,10,36,10,113,9,104,8,74,7,53,6,17,5,246,3,33,3,141,2,222,1,224,0,215,255,5,255,47,254, +18,253,226,251,211,250,172,249,94,248,77,247,147,246,209,245,229,244,8,244,84,243,183,242,254,241,226,240,124,239,83,238, +121,237,115,236,80,235,166,234,96,234,236,233,80,233,197,232,2,232,226,230,217,229,13,229,52,228,112,227,25,227,238,226, +129,226,235,225,108,225,6,225,168,224,59,224,154,223,229,222,104,222,35,222,229,221,176,221,133,221,70,221,11,221,2,221, +254,220,190,220,99,220,32,220,229,219,166,219,121,219,87,219,53,219,58,219,129,219,216,219,254,219,233,219,203,219,203,219, +211,219,204,219,215,219,14,220,63,220,97,220,201,220,134,221,37,222,113,222,185,222,50,223,178,223,29,224,128,224,224,224, +81,225,253,225,232,226,235,227,223,228,180,229,109,230,33,231,216,231,150,232,109,233,86,234,49,235,16,236,27,237,54,238, +54,239,46,240,46,241,30,242,23,243,47,244,23,245,173,245,109,246,156,247,210,248,205,249,190,250,178,251,150,252,147,253, +159,254,101,255,252,255,195,0,170,1,126,2,112,3,140,4,130,5,73,6,18,7,199,7,118,8,116,9,146,10,73,11, +206,11,182,12,212,13,190,14,176,15,224,16,242,17,194,18,170,19,179,20,149,21,94,22,76,23,96,24,144,25,221,26, +21,28,19,29,33,30,122,31,183,32,112,33,243,33,197,34,211,35,201,36,202,37,11,39,67,40,50,41,32,42,46,43, +250,43,101,44,211,44,97,45,226,45,122,46,76,47,1,48,120,48,21,49,221,49,85,50,114,50,140,50,172,50,182,50, +200,50,230,50,2,51,64,51,172,51,0,52,45,52,84,52,72,52,242,51,173,51,151,51,100,51,51,51,100,51,188,51, +227,51,16,52,72,52,13,52,110,51,3,51,203,50,106,50,20,50,252,49,200,49,109,49,112,49,186,49,151,49,241,48, +90,48,239,47,78,47,94,46,114,45,193,44,71,44,246,43,180,43,72,43,135,42,139,41,147,40,166,39,143,38,51,37, +188,35,102,34,77,33,85,32,86,31,75,30,60,29,252,27,105,26,185,24,29,23,123,21,211,19,93,18,6,17,155,15, +53,14,237,12,130,11,230,9,88,8,177,6,165,4,134,2,207,0,88,255,212,253,75,252,192,250,47,249,203,247,114,246, +150,244,64,242,27,240,65,238,81,236,123,234,12,233,168,231,6,230,127,228,37,227,135,225,150,223,171,221,202,219,202,217, +212,215,22,214,121,212,232,210,96,209,214,207,77,206,205,204,62,203,140,201,201,199,9,198,97,196,237,194,135,193,238,191, +86,190,34,189,21,188,167,186,241,184,104,183,30,182,234,180,225,179,7,179,25,178,1,177,244,175,255,174,235,173,171,172, +149,171,232,170,114,170,235,169,124,169,92,169,61,169,198,168,62,168,6,168,247,167,217,167,207,167,228,167,240,167,8,168, +99,168,226,168,91,169,242,169,186,170,133,171,58,172,224,172,129,173,71,174,96,175,173,176,251,177,72,179,136,180,159,181, +182,182,9,184,114,185,186,186,19,188,192,189,177,191,174,193,143,195,72,197,229,198,89,200,139,201,189,202,86,204,46,206, +222,207,150,209,163,211,173,213,99,215,40,217,56,219,42,221,187,222,26,224,107,225,204,226,125,228,128,230,150,232,168,234, +188,236,202,238,225,240,252,242,221,244,135,246,79,248,53,250,12,252,27,254,162,0,54,3,141,5,245,7,122,10,188,12, +196,14,233,16,31,19,67,21,112,23,174,25,249,27,134,30,67,33,177,35,179,37,176,39,193,41,178,43,164,45,203,47, +1,50,33,52,69,54,107,56,94,58,0,60,117,61,237,62,103,64,172,65,183,66,204,67,248,68,19,70,56,71,146,72, +229,73,1,75,18,76,18,77,171,77,241,77,50,78,100,78,142,78,240,78,118,79,227,79,121,80,89,81,254,81,46,82, +85,82,135,82,124,82,102,82,152,82,216,82,240,82,244,82,191,82,49,82,195,81,220,81,19,82,235,81,130,81,46,81, +5,81,225,80,150,80,37,80,160,79,234,78,10,78,116,77,64,77,195,76,171,75,137,74,189,73,243,72,236,71,178,70, +76,69,223,67,158,66,109,65,37,64,242,62,223,61,158,60,38,59,171,57,19,56,50,54,50,52,61,50,98,48,181,46, +19,45,61,43,105,41,223,39,77,38,85,36,49,34,15,32,208,29,164,27,206,25,255,23,241,21,241,19,14,18,228,15, +122,13,43,11,227,8,110,6,0,4,192,1,131,255,60,253,36,251,83,249,154,247,169,245,67,243,109,240,95,237,105,234, +247,231,24,230,20,228,77,225,50,222,116,219,254,216,123,214,253,211,139,209,245,206,68,204,140,201,181,198,194,195,207,192, +22,190,52,188,108,187,191,186,54,185,91,183,199,181,190,179,235,176,79,174,135,172,107,171,88,171,101,172,104,173,224,173, +181,174,200,175,186,175,135,174,84,173,39,172,188,170,2,170,131,170,111,171,136,172,151,174,100,177,182,179,22,181,151,181, +202,180,187,178,165,176,154,175,166,175,199,176,36,179,14,182,72,184,106,185,186,185,6,185,35,183,6,181,2,180,85,180, +135,181,76,183,65,185,229,186,84,188,201,189,190,190,197,190,101,190,52,190,77,190,252,190,131,192,175,194,201,197,72,202, +235,206,169,209,161,210,73,211,188,211,199,211,160,212,12,215,80,218,89,222,175,227,70,233,133,237,148,240,6,243,91,244, +168,244,16,245,248,245,97,247,60,250,219,254,211,3,12,8,212,11,40,15,110,17,171,18,18,19,109,18,63,17,198,16, +106,17,8,19,30,22,175,26,38,31,7,34,117,35,8,36,218,35,77,35,36,35,148,35,123,36,40,38,194,40,178,43, +114,46,23,49,91,51,108,52,60,52,188,51,143,51,204,51,222,52,242,54,90,57,194,59,195,62,28,66,71,68,179,68, +52,68,78,67,86,66,112,66,45,68,139,70,208,72,75,75,157,77,203,78,6,79,14,79,189,78,221,77,221,76,211,75, +189,74,131,74,179,75,79,77,109,78,61,79,145,79,175,78,230,76,48,75,178,73,57,72,44,71,201,70,211,70,89,71, +116,72,126,73,183,73,11,73,146,71,71,69,158,66,112,64,39,63,138,62,18,62,83,61,92,60,130,59,191,58,202,57, +166,56,95,55,148,53,29,51,170,48,254,46,11,46,94,45,208,44,65,44,67,43,134,41,82,39,33,37,250,34,168,32, +89,30,104,28,223,26,179,25,244,24,72,24,252,22,229,20,120,18,22,16,234,13,34,12,136,10,172,8,206,6,157,5, +23,5,144,4,188,3,179,2,115,1,246,255,70,254,94,252,107,250,216,248,174,247,158,246,151,245,152,244,96,243,250,241, +201,240,158,239,226,237,182,235,168,233,204,231,33,230,2,229,101,228,173,227,137,226,35,225,157,223,53,222,47,221,52,220, +160,218,142,216,129,214,143,212,184,210,101,209,189,208,57,208,86,207,16,206,168,204,106,203,123,202,181,201,238,200,52,200, +144,199,234,198,103,198,75,198,131,198,167,198,135,198,93,198,116,198,197,198,17,199,79,199,179,199,53,200,153,200,246,200, +153,201,113,202,43,203,169,203,246,203,30,204,75,204,172,204,71,205,32,206,46,207,50,208,6,209,225,209,222,210,164,211, +3,212,66,212,184,212,109,213,46,214,176,214,255,214,149,215,149,216,122,217,250,217,104,218,250,218,159,219,89,220,9,221, +115,221,223,221,220,222,85,224,233,225,161,227,86,229,123,230,37,231,12,232,90,233,197,234,79,236,223,237,14,239,30,240, +194,241,215,243,177,245,79,247,4,249,168,250,18,252,133,253,22,255,136,0,221,1,97,3,29,5,191,6,25,8,103,9, +227,10,101,12,181,13,224,14,252,15,6,17,29,18,89,19,136,20,132,21,113,22,57,23,158,23,212,23,68,24,224,24, +109,25,8,26,196,26,109,27,243,27,141,28,84,29,56,30,23,31,192,31,37,32,122,32,229,32,83,33,205,33,128,34, +87,35,2,36,122,36,237,36,93,37,185,37,22,38,134,38,2,39,133,39,23,40,204,40,165,41,84,42,135,42,142,42, +239,42,98,43,88,43,41,43,111,43,232,43,32,44,79,44,168,44,224,44,201,44,116,44,244,43,139,43,124,43,110,43, +246,42,108,42,75,42,84,42,10,42,114,41,217,40,80,40,187,39,26,39,126,38,209,37,3,37,104,36,83,36,111,36, +25,36,69,35,89,34,108,33,88,32,54,31,52,30,60,29,43,28,37,27,108,26,243,25,101,25,145,24,139,23,87,22, +230,20,108,19,73,18,138,17,217,16,10,16,66,15,118,14,98,13,28,12,7,11,27,10,242,8,139,7,59,6,43,5, +92,4,186,3,7,3,42,2,78,1,108,0,109,255,133,254,197,253,231,252,241,251,36,251,105,250,184,249,56,249,153,248, +154,247,217,246,133,246,189,245,93,244,100,243,246,242,92,242,153,241,246,240,18,240,217,238,231,237,92,237,170,236,128,235, +29,234,1,233,109,232,2,232,73,231,88,230,110,229,144,228,191,227,224,226,181,225,136,224,215,223,98,223,181,222,251,221, +77,221,133,220,223,219,126,219,220,218,206,217,218,216,46,216,183,215,183,215,36,216,106,216,106,216,127,216,171,216,193,216, +194,216,165,216,133,216,200,216,111,217,23,218,191,218,161,219,140,220,81,221,38,222,26,223,225,223,115,224,32,225,10,226, +0,227,233,227,231,228,7,230,57,231,151,232,57,234,194,235,203,236,138,237,78,238,239,238,81,239,215,239,230,240,108,242, +0,244,59,245,16,246,205,246,149,247,66,248,203,248,56,249,132,249,254,249,3,251,61,252,11,253,144,253,88,254,111,255, +144,0,163,1,165,2,133,3,80,4,47,5,33,6,237,6,148,7,151,8,85,10,68,12,145,13,73,14,12,15,9,16, +15,17,22,18,29,19,16,20,44,21,225,22,21,25,16,27,96,28,74,29,55,30,62,31,76,32,80,33,26,34,159,34, +68,35,104,36,204,37,1,39,249,39,210,40,124,41,237,41,67,42,110,42,41,42,150,41,92,41,193,41,82,42,181,42, +5,43,73,43,122,43,187,43,192,43,234,42,143,41,154,40,19,40,136,39,31,39,219,38,105,38,60,38,197,38,7,39, +3,38,89,36,229,34,154,33,91,32,68,31,44,30,37,29,143,28,71,28,229,27,98,27,164,26,115,25,14,24,183,22, +40,21,79,19,169,17,114,16,110,15,130,14,187,13,222,12,123,11,118,9,87,7,140,5,173,3,94,1,62,255,210,253, +190,252,186,251,196,250,94,249,70,247,35,245,34,243,171,240,238,237,175,235,204,233,225,231,70,230,33,229,244,227,141,226, +241,224,196,222,238,219,248,216,39,214,72,211,127,208,53,206,145,204,159,203,80,203,237,202,115,201,215,198,6,196,114,193, +237,190,201,188,132,187,173,186,211,185,131,185,208,185,169,185,199,184,11,184,119,183,75,182,201,180,162,179,191,178,52,178, +141,178,122,179,40,180,169,180,106,181,33,182,117,182,112,182,233,181,211,180,25,180,204,180,186,182,197,184,61,186,49,187, +192,187,221,187,157,187,40,187,147,186,52,186,163,186,18,188,29,190,68,192,5,194,251,194,90,195,170,195,224,195,179,195, +127,195,219,195,219,196,114,198,157,200,0,203,86,205,222,207,127,210,78,212,198,212,133,212,95,212,220,212,131,214,69,217, +66,220,44,223,154,226,78,230,18,233,191,234,57,236,154,237,131,238,134,239,98,241,5,244,76,247,54,251,27,255,80,2, +251,4,69,7,242,8,49,10,114,11,174,12,245,13,194,15,53,18,250,20,230,23,216,26,78,29,212,30,114,31,173,31, +55,32,95,33,247,34,216,36,250,38,52,41,117,43,164,45,76,47,37,48,135,48,183,48,184,48,16,49,59,50,227,51, +166,53,153,55,117,57,230,58,87,60,236,61,206,62,163,62,30,62,208,61,234,61,205,62,151,64,198,66,220,68,167,70, +9,72,244,72,92,73,58,73,222,72,197,72,234,72,250,72,5,73,108,73,104,74,193,75,222,76,52,77,201,76,13,76, +93,75,218,74,103,74,222,73,72,73,188,72,79,72,75,72,189,72,1,73,177,72,62,72,185,71,133,70,213,68,164,67, +15,67,123,66,202,65,15,65,7,64,186,62,161,61,242,60,113,60,177,59,97,58,171,56,30,55,10,54,79,53,153,52, +133,51,24,50,211,48,212,47,151,46,230,44,35,43,136,41,11,40,178,38,119,37,94,36,130,35,153,34,30,33,39,31, +44,29,57,27,61,25,125,23,255,21,117,20,221,18,119,17,82,16,102,15,152,14,130,13,244,11,66,10,166,8,232,6, +6,5,76,3,190,1,68,0,21,255,68,254,117,253,122,252,128,251,97,250,191,248,179,246,171,244,225,242,143,241,219,240, +90,240,113,239,37,238,215,236,164,235,156,234,202,233,234,232,183,231,92,230,9,229,187,227,131,226,133,225,173,224,196,223, +149,222,39,221,217,219,248,218,93,218,206,217,70,217,165,216,203,215,232,214,40,214,141,213,33,213,152,212,132,211,108,210, +56,210,158,210,208,210,13,211,160,211,220,211,128,211,61,211,64,211,24,211,220,210,209,210,201,210,192,210,36,211,13,212, +10,213,198,213,78,214,216,214,107,215,212,215,4,216,46,216,136,216,31,217,230,217,162,218,63,219,5,220,11,221,238,221, +95,222,123,222,158,222,56,223,79,224,77,225,216,225,75,226,208,226,56,227,191,227,179,228,203,229,192,230,175,231,126,232, +21,233,221,233,16,235,59,236,21,237,216,237,168,238,122,239,89,240,89,241,133,242,208,243,9,245,22,246,11,247,2,248, +44,249,184,250,67,252,72,253,12,254,5,255,13,0,35,1,153,2,44,4,100,5,127,6,174,7,177,8,194,9,69,11, +188,12,179,13,163,14,186,15,112,16,204,16,80,17,242,17,138,18,93,19,104,20,70,21,246,21,208,22,223,23,233,24, +164,25,208,25,162,25,170,25,19,26,136,26,234,26,133,27,118,28,97,29,242,29,74,30,166,30,236,30,225,30,158,30, +105,30,90,30,106,30,174,30,46,31,184,31,30,32,99,32,138,32,120,32,58,32,4,32,219,31,160,31,103,31,97,31, +139,31,182,31,176,31,98,31,249,30,179,30,115,30,2,30,118,29,253,28,145,28,29,28,142,27,225,26,98,26,43,26, +174,25,174,24,202,23,76,23,184,22,29,22,248,21,244,21,114,21,181,20,39,20,136,19,169,18,187,17,207,16,238,15, +69,15,211,14,114,14,18,14,146,13,203,12,222,11,254,10,16,10,250,8,238,7,60,7,236,6,167,6,9,6,27,5, +51,4,110,3,158,2,145,1,89,0,81,255,170,254,12,254,49,253,98,252,197,251,15,251,70,250,145,249,141,248,11,247, +170,245,209,244,56,244,188,243,106,243,19,243,168,242,63,242,145,241,138,240,171,239,20,239,69,238,57,237,145,236,139,236, +196,236,222,236,208,236,166,236,59,236,114,235,143,234,216,233,30,233,86,232,221,231,188,231,191,231,12,232,124,232,115,232, +16,232,217,231,104,231,100,230,146,229,82,229,254,228,143,228,144,228,177,228,151,228,176,228,243,228,175,228,11,228,160,227, +67,227,199,226,149,226,173,226,156,226,139,226,221,226,77,227,139,227,216,227,88,228,165,228,133,228,92,228,148,228,29,229, +183,229,90,230,254,230,143,231,39,232,232,232,179,233,104,234,32,235,212,235,78,236,162,236,20,237,182,237,133,238,134,239, +139,240,102,241,56,242,19,243,190,243,63,244,251,244,227,245,118,246,185,246,51,247,250,247,205,248,182,249,167,250,37,251, +62,251,162,251,83,252,168,252,182,252,4,253,104,253,178,253,92,254,119,255,113,0,62,1,42,2,223,2,15,3,36,3, +93,3,131,3,199,3,142,4,163,5,162,6,141,7,104,8,251,8,88,9,211,9,89,10,130,10,102,10,151,10,68,11, +5,12,154,12,43,13,204,13,114,14,23,15,130,15,138,15,133,15,189,15,232,15,225,15,8,16,118,16,222,16,57,17, +178,17,28,18,47,18,231,17,125,17,72,17,110,17,179,17,216,17,207,17,159,17,126,17,172,17,237,17,195,17,65,17, +225,16,229,16,78,17,197,17,184,17,53,17,216,16,167,16,57,16,181,15,93,15,252,14,141,14,80,14,42,14,238,13, +163,13,28,13,88,12,213,11,146,11,230,10,220,9,40,9,218,8,155,8,84,8,223,7,45,7,162,6,88,6,216,5, +248,4,251,3,14,3,120,2,111,2,135,2,68,2,225,1,163,1,84,1,196,0,230,255,206,254,3,254,249,253,63,254, +81,254,103,254,159,254,155,254,87,254,26,254,196,253,57,253,200,252,140,252,83,252,61,252,134,252,242,252,39,253,59,253, +82,253,67,253,237,252,117,252,232,251,52,251,168,250,188,250,67,251,175,251,5,252,122,252,172,252,55,252,144,251,73,251, +55,251,241,250,154,250,160,250,36,251,205,251,36,252,27,252,3,252,251,251,214,251,152,251,157,251,15,252,140,252,199,252, +8,253,144,253,25,254,111,254,209,254,60,255,72,255,6,255,3,255,103,255,4,0,209,0,188,1,141,2,47,3,135,3, +121,3,91,3,161,3,12,4,36,4,42,4,170,4,142,5,96,6,238,6,77,7,157,7,224,7,238,7,175,7,109,7, +137,7,240,7,84,8,184,8,50,9,127,9,145,9,213,9,55,10,3,10,74,9,234,8,3,9,23,9,74,9,202,9, +9,10,197,9,133,9,116,9,74,9,11,9,203,8,109,8,30,8,19,8,13,8,253,7,29,8,41,8,188,7,32,7, +185,6,84,6,186,5,19,5,134,4,4,4,115,3,247,2,229,2,29,3,236,2,15,2,247,0,221,255,205,254,36,254, +204,253,24,253,8,252,47,251,141,250,251,249,171,249,93,249,147,248,151,247,201,246,225,245,194,244,175,243,144,242,123,241, +237,240,161,240,226,239,11,239,205,238,186,238,39,238,48,237,5,236,187,234,198,233,70,233,159,232,160,231,227,230,162,230, +96,230,235,229,134,229,33,229,91,228,58,227,31,226,21,225,251,223,5,223,120,222,47,222,246,221,183,221,43,221,74,220, +143,219,11,219,45,218,249,216,8,216,84,215,161,214,95,214,192,214,249,214,149,214,18,214,175,213,19,213,73,212,188,211, +80,211,186,210,82,210,151,210,86,211,13,212,161,212,10,213,251,212,107,212,216,211,154,211,173,211,9,212,140,212,21,213, +227,213,27,215,61,216,252,216,196,217,153,218,217,218,133,218,73,218,83,218,136,218,64,219,155,220,25,222,109,223,171,224, +163,225,50,226,170,226,15,227,237,226,142,226,235,226,31,228,97,229,128,230,226,231,97,233,148,234,139,235,89,236,226,236, +96,237,26,238,207,238,113,239,110,240,180,241,227,242,81,244,79,246,28,248,22,249,185,249,123,250,37,251,200,251,218,252, +95,254,231,255,61,1,155,2,62,4,241,5,50,7,202,7,18,8,156,8,203,9,83,11,110,12,28,13,70,14,24,16, +193,17,243,18,228,19,119,20,214,20,142,21,89,22,167,22,12,23,59,24,202,25,75,27,219,28,36,30,194,30,40,31, +184,31,50,32,151,32,46,33,215,33,131,34,138,35,246,36,98,38,137,39,94,40,255,40,160,41,38,42,76,42,62,42, +102,42,217,42,150,43,154,44,141,45,25,46,120,46,11,47,179,47,246,47,140,47,217,46,180,46,93,47,44,48,145,48, +160,48,132,48,88,48,78,48,88,48,44,48,190,47,80,47,23,47,32,47,73,47,82,47,45,47,249,46,189,46,96,46, +208,45,22,45,102,44,241,43,153,43,61,43,20,43,46,43,71,43,65,43,15,43,87,42,27,41,249,39,46,39,118,38, +239,37,234,37,18,38,229,37,117,37,2,37,147,36,26,36,112,35,93,34,245,32,179,31,250,30,167,30,71,30,179,29, +50,29,231,28,133,28,200,27,193,26,144,25,84,24,57,23,54,22,47,21,96,20,9,20,216,19,92,19,136,18,104,17, +245,15,110,14,41,13,24,12,44,11,161,10,84,10,175,9,178,8,235,7,63,7,42,6,224,4,205,3,172,2,94,1, +110,0,229,255,45,255,103,254,26,254,252,253,124,253,161,252,144,251,64,250,234,248,192,247,177,246,220,245,120,245,77,245, +41,245,30,245,245,244,81,244,74,243,28,242,206,240,165,239,250,238,172,238,101,238,15,238,204,237,194,237,213,237,153,237, +238,236,61,236,174,235,25,235,149,234,40,234,159,233,68,233,131,233,233,233,229,233,190,233,180,233,127,233,41,233,222,232, +90,232,187,231,163,231,6,232,83,232,131,232,166,232,108,232,0,232,243,231,26,232,229,231,123,231,93,231,132,231,178,231, +254,231,132,232,240,232,238,232,190,232,180,232,159,232,82,232,53,232,130,232,234,232,82,233,227,233,101,234,153,234,184,234, +248,234,81,235,171,235,215,235,203,235,1,236,199,236,155,237,36,238,183,238,122,239,38,240,189,240,88,241,197,241,9,242, +124,242,63,243,37,244,3,245,189,245,104,246,47,247,253,247,164,248,44,249,153,249,245,249,143,250,135,251,130,252,91,253, +79,254,56,255,187,255,16,0,149,0,52,1,195,1,95,2,37,3,20,4,5,5,206,5,151,6,160,7,161,8,47,9, +127,9,209,9,229,9,219,9,116,10,199,11,3,13,222,13,208,14,245,15,233,16,114,17,159,17,157,17,207,17,122,18, +79,19,243,19,139,20,76,21,43,22,42,23,54,24,228,24,21,25,62,25,144,25,182,25,172,25,206,25,56,26,213,26, +158,27,93,28,214,28,24,29,70,29,93,29,77,29,248,28,110,28,69,28,223,28,178,29,42,30,121,30,210,30,244,30, +205,30,155,30,119,30,88,30,56,30,8,30,237,29,20,30,82,30,139,30,224,30,41,31,19,31,195,30,96,30,178,29, +230,28,134,28,123,28,109,28,141,28,219,28,230,28,182,28,163,28,104,28,176,27,203,26,4,26,46,25,64,24,129,23, +24,23,247,22,252,22,250,22,214,22,119,22,188,21,162,20,85,19,7,18,216,16,209,15,8,15,169,14,140,14,41,14, +114,13,224,12,93,12,101,11,45,10,42,9,17,8,172,6,128,5,209,4,63,4,170,3,56,3,205,2,68,2,158,1, +190,0,158,255,104,254,45,253,244,251,227,250,11,250,107,249,13,249,189,248,40,248,85,247,93,246,26,245,185,243,155,242, +166,241,165,240,214,239,54,239,98,238,127,237,223,236,64,236,88,235,77,234,34,233,209,231,161,230,163,229,180,228,17,228, +212,227,102,227,131,226,152,225,181,224,155,223,155,222,238,221,12,221,191,219,162,218,6,218,154,217,61,217,251,216,166,216, +37,216,165,215,12,215,8,214,187,212,163,211,223,210,48,210,164,209,128,209,166,209,162,209,75,209,204,208,59,208,126,207, +162,206,232,205,100,205,242,204,135,204,64,204,29,204,21,204,49,204,79,204,63,204,43,204,63,204,36,204,156,203,5,203, +166,202,105,202,105,202,205,202,86,203,207,203,72,204,151,204,150,204,134,204,132,204,104,204,117,204,251,204,143,205,197,205, +235,205,85,206,246,206,193,207,139,208,13,209,124,209,53,210,241,210,89,211,204,211,172,212,190,213,175,214,119,215,38,216, +215,216,179,217,197,218,237,219,3,221,252,221,6,223,74,224,184,225,42,227,125,228,128,229,58,230,21,231,86,232,204,233, +42,235,84,236,109,237,182,238,49,240,162,241,26,243,192,244,46,246,21,247,0,248,91,249,191,250,217,251,245,252,65,254, +153,255,247,0,106,2,217,3,51,5,126,6,206,7,21,9,34,10,10,11,55,12,169,13,244,14,24,16,86,17,127,18, +162,19,75,21,81,23,211,24,176,25,140,26,178,27,9,29,72,30,24,31,190,31,244,32,155,34,14,36,108,37,243,38, +77,40,127,41,219,42,233,43,59,44,141,44,105,45,92,46,87,47,193,48,50,50,32,51,247,51,8,53,195,53,241,53, +39,54,165,54,25,55,127,55,31,56,226,56,95,57,116,57,90,57,56,57,11,57,201,56,84,56,158,55,1,55,226,54, +249,54,187,54,62,54,204,53,35,53,246,51,123,50,213,48,237,46,2,45,118,43,57,42,64,41,196,40,120,40,125,39, +157,37,80,35,174,32,173,29,220,26,149,24,151,22,13,21,125,20,118,20,31,20,121,19,125,18,136,16,202,13,68,11, +4,9,196,6,107,5,132,5,231,5,199,5,205,5,40,6,18,6,96,5,60,4,59,2,125,255,77,253,106,252,55,252, +47,252,117,252,229,252,1,253,176,252,255,251,123,250,218,247,186,244,8,242,68,240,151,239,189,239,242,239,200,239,109,239, +131,238,62,236,238,232,169,229,166,226,207,223,218,221,20,221,182,220,120,220,184,220,221,220,217,219,194,217,37,215,5,212, +218,208,195,206,225,205,94,205,83,205,140,206,153,208,37,210,195,210,141,210,48,209,238,206,17,205,31,204,176,203,56,204, +104,206,79,209,204,211,35,214,48,216,214,216,89,216,247,215,125,215,106,214,226,213,205,214,147,216,234,218,246,221,180,224, +28,226,160,226,195,226,61,226,71,225,149,224,42,224,246,223,154,224,104,226,187,228,211,230,86,232,244,232,131,232,116,231, +128,230,0,230,9,230,219,230,111,232,28,234,148,235,58,237,226,238,190,239,232,239,3,240,218,239,98,239,188,239,103,241, +109,243,114,245,6,248,193,250,201,252,84,254,150,255,13,0,18,0,193,0,251,1,22,3,174,4,113,7,148,10,62,13, +154,15,151,17,177,18,53,19,203,19,83,20,181,20,142,21,22,23,225,24,1,27,167,29,22,32,167,33,180,34,115,35, +142,35,98,35,187,35,133,36,105,37,196,38,156,40,25,42,15,43,63,44,179,45,175,46,34,47,134,47,191,47,164,47, +226,47,235,48,5,50,126,50,192,50,77,51,222,51,80,52,214,52,20,53,141,52,214,51,207,51,85,52,224,52,105,53, +234,53,18,54,196,53,25,53,47,52,88,51,228,50,176,50,144,50,163,50,226,50,18,51,46,51,42,51,171,50,174,49, +179,48,231,47,12,47,67,46,237,45,228,45,205,45,208,45,30,46,78,46,26,46,204,45,83,45,47,44,170,42,156,41, +0,41,80,40,194,39,165,39,140,39,48,39,206,38,61,38,11,37,91,35,155,33,237,31,101,30,18,29,202,27,128,26, +91,25,68,24,249,22,105,21,155,19,169,17,209,15,18,14,57,12,82,10,121,8,164,6,2,5,183,3,57,2,21,0, +185,253,156,251,182,249,37,248,24,247,44,246,251,244,162,243,81,242,18,241,1,240,251,238,176,237,53,236,225,234,202,233, +246,232,115,232,30,232,223,231,199,231,160,231,20,231,52,230,70,229,101,228,162,227,231,226,252,225,23,225,182,224,170,224, +90,224,194,223,43,223,110,222,107,221,101,220,129,219,147,218,137,217,113,216,96,215,130,214,223,213,31,213,7,212,227,210, +6,210,96,209,200,208,32,208,58,207,24,206,34,205,147,204,12,204,76,203,170,202,122,202,146,202,181,202,229,202,60,203, +204,203,118,204,218,204,210,204,205,204,22,205,109,205,191,205,105,206,149,207,254,208,118,210,237,211,55,213,67,214,49,215, +2,216,166,216,68,217,25,218,37,219,84,220,170,221,17,223,68,224,57,225,44,226,20,227,172,227,33,228,212,228,136,229, +232,229,102,230,122,231,178,232,146,233,75,234,252,234,93,235,124,235,165,235,212,235,16,236,192,236,253,237,85,239,128,240, +154,241,157,242,92,243,221,243,59,244,136,244,10,245,40,246,220,247,177,249,94,251,229,252,71,254,164,255,40,1,133,2, +62,3,146,3,56,4,85,5,186,6,105,8,70,10,20,12,230,13,184,15,17,17,214,17,121,18,15,19,104,19,206,19, +139,20,105,21,105,22,221,23,141,25,210,26,120,27,209,27,36,28,120,28,180,28,222,28,41,29,170,29,76,30,7,31, +199,31,91,32,210,32,97,33,235,33,38,34,14,34,206,33,167,33,224,33,121,34,39,35,198,35,61,36,89,36,64,36, +74,36,56,36,198,35,122,35,171,35,197,35,133,35,118,35,178,35,193,35,158,35,139,35,79,35,183,34,24,34,180,33, +85,33,203,32,52,32,197,31,153,31,164,31,176,31,124,31,232,30,16,30,51,29,125,28,241,27,138,27,53,27,212,26, +124,26,93,26,106,26,75,26,202,25,255,24,28,24,85,23,202,22,96,22,214,21,47,21,184,20,152,20,140,20,65,20, +176,19,251,18,46,18,67,17,53,16,20,15,24,14,121,13,20,13,152,12,230,11,9,11,3,10,244,8,14,8,39,7, +227,5,85,4,1,3,27,2,88,1,127,0,163,255,184,254,139,253,72,252,65,251,63,250,225,248,109,247,122,246,234,245, +58,245,99,244,172,243,17,243,93,242,134,241,153,240,164,239,192,238,22,238,206,237,220,237,244,237,222,237,152,237,23,237, +102,236,222,235,177,235,121,235,244,234,142,234,163,234,231,234,20,235,58,235,49,235,178,234,13,234,197,233,159,233,19,233, +91,232,10,232,17,232,40,232,90,232,136,232,92,232,253,231,173,231,29,231,39,230,108,229,64,229,63,229,92,229,207,229, +48,230,19,230,240,229,38,230,64,230,236,229,133,229,84,229,95,229,217,229,205,230,192,231,96,232,246,232,196,233,126,234, +217,234,251,234,27,235,82,235,237,235,43,237,146,238,145,239,88,240,61,241,13,242,162,242,52,243,175,243,237,243,81,244, +40,245,46,246,62,247,106,248,108,249,12,250,152,250,37,251,106,251,147,251,249,251,112,252,221,252,163,253,182,254,153,255, +94,0,83,1,28,2,85,2,82,2,117,2,172,2,7,3,189,3,175,4,162,5,186,6,249,7,254,8,164,9,42,10, +121,10,88,10,65,10,219,10,203,11,94,12,205,12,165,13,168,14,94,15,216,15,45,16,58,16,60,16,147,16,3,17, +39,17,42,17,72,17,99,17,143,17,250,17,80,18,42,18,209,17,157,17,89,17,255,16,245,16,35,17,10,17,196,16, +173,16,118,16,213,15,55,15,215,14,77,14,142,13,16,13,217,12,159,12,128,12,147,12,127,12,22,12,142,11,246,10, +55,10,127,9,248,8,122,8,240,7,146,7,125,7,129,7,85,7,223,6,72,6,189,5,31,5,57,4,56,3,117,2, +239,1,106,1,244,0,186,0,127,0,233,255,35,255,133,254,230,253,254,252,6,252,59,251,112,250,156,249,31,249,254,248, +182,248,9,248,55,247,99,246,127,245,154,244,193,243,223,242,13,242,146,241,89,241,13,241,180,240,120,240,10,240,6,239, +194,237,224,236,113,236,40,236,235,235,195,235,183,235,203,235,213,235,143,235,1,235,93,234,149,233,171,232,251,231,180,231, +156,231,167,231,242,231,79,232,135,232,165,232,164,232,92,232,219,231,54,231,90,230,146,229,136,229,95,230,114,231,39,232, +122,232,160,232,156,232,91,232,1,232,194,231,158,231,149,231,230,231,153,232,78,233,237,233,177,234,106,235,172,235,156,235, +146,235,115,235,66,235,132,235,100,236,106,237,76,238,46,239,19,240,217,240,107,241,184,241,189,241,168,241,176,241,251,241, +179,242,210,243,0,245,252,245,202,246,87,247,126,247,114,247,147,247,243,247,96,248,201,248,83,249,55,250,133,251,238,252, +250,253,138,254,215,254,7,255,48,255,147,255,84,0,56,1,13,2,240,2,247,3,15,5,56,6,114,7,113,8,245,8, +60,9,182,9,127,10,123,11,174,12,4,14,25,15,186,15,86,16,87,17,129,18,123,19,92,20,46,21,194,21,80,22, +68,23,109,24,81,25,249,25,151,26,5,27,69,27,159,27,17,28,124,28,29,29,254,29,174,30,8,31,105,31,218,31, +23,32,57,32,124,32,186,32,211,32,19,33,177,33,115,34,2,35,55,35,37,35,9,35,21,35,82,35,200,35,119,36, +28,37,116,37,167,37,245,37,66,38,110,38,182,38,56,39,154,39,156,39,140,39,211,39,105,40,249,40,85,41,147,41, +207,41,244,41,233,41,202,41,188,41,162,41,95,41,29,41,28,41,87,41,131,41,91,41,219,40,43,40,120,39,229,38, +116,38,250,37,94,37,198,36,71,36,183,35,37,35,194,34,56,34,16,33,182,31,207,30,40,30,94,29,177,28,45,28, +78,27,26,26,22,25,51,24,25,23,21,22,107,21,181,20,167,19,138,18,141,17,150,16,182,15,246,14,20,14,239,12, +195,11,197,10,219,9,225,8,229,7,244,6,227,5,133,4,3,3,170,1,120,0,63,255,10,254,217,252,124,251,253,249, +162,248,97,247,235,245,79,244,192,242,16,241,3,239,224,236,31,235,201,233,139,232,29,231,131,229,246,227,130,226,242,224, +38,223,61,221,79,219,110,217,202,215,121,214,76,213,16,212,178,210,19,209,67,207,155,205,56,204,224,202,142,201,119,200, +114,199,46,198,220,196,203,195,214,194,185,193,117,192,40,191,245,189,24,189,163,188,65,188,176,187,24,187,182,186,113,186, +0,186,82,185,156,184,13,184,174,183,137,183,172,183,16,184,177,184,144,185,110,186,245,186,42,187,67,187,68,187,87,187, +241,187,19,189,56,190,70,191,146,192,4,194,72,195,93,196,74,197,235,197,143,198,176,199,22,201,83,202,172,203,135,205, +156,207,116,209,212,210,156,211,22,212,248,212,102,214,203,215,7,217,161,218,189,220,5,223,93,225,143,227,43,229,61,230, +78,231,104,232,79,233,105,234,67,236,169,238,57,241,16,244,31,247,183,249,118,251,204,252,42,254,136,255,238,0,173,2, +231,4,128,7,101,10,110,13,72,16,218,18,69,21,84,23,195,24,224,25,44,27,177,28,126,30,239,32,225,35,158,38, +233,40,2,43,217,44,74,46,133,47,140,48,44,49,200,49,232,50,99,52,253,53,224,55,204,57,42,59,28,60,5,61, +138,61,119,61,130,61,23,62,216,62,187,63,248,64,23,66,178,66,73,67,15,68,85,68,240,67,155,67,168,67,222,67, +74,68,236,68,101,69,187,69,90,70,10,71,60,71,29,71,25,71,245,70,108,70,233,69,189,69,159,69,112,69,131,69, +226,69,36,70,18,70,170,69,236,68,16,68,93,67,135,66,48,65,211,63,27,63,188,62,22,62,60,61,82,60,4,59, +111,57,48,56,34,55,152,53,190,51,49,50,190,48,3,47,79,45,225,43,117,42,244,40,124,39,222,37,20,36,94,34, +149,32,95,30,12,28,24,26,88,24,163,22,77,21,75,20,34,19,183,17,35,16,52,14,10,12,48,10,180,8,49,7, +173,5,76,4,220,2,101,1,55,0,24,255,144,253,218,251,89,250,207,248,18,247,117,245,252,243,82,242,169,240,104,239, +73,238,239,236,152,235,108,234,246,232,13,231,37,229,97,227,124,225,171,223,114,222,144,221,83,220,186,218,68,217,248,215, +145,214,10,213,88,211,91,209,103,207,255,205,249,204,213,203,144,202,88,201,10,200,149,198,45,197,232,195,198,194,232,193, +43,193,33,192,206,190,165,189,213,188,61,188,195,187,38,187,49,186,40,185,96,184,185,183,27,183,180,182,108,182,7,182, +199,181,230,181,20,182,45,182,88,182,64,182,150,181,251,180,251,180,24,181,19,181,167,181,248,182,35,184,221,184,174,185, +165,186,101,187,9,188,195,188,100,189,250,189,235,190,66,192,176,193,40,195,180,196,40,198,132,199,7,201,177,202,70,204, +186,205,25,207,67,208,86,209,210,210,228,212,19,215,0,217,197,218,112,220,208,221,248,222,53,224,154,225,45,227,32,229, +98,231,134,233,110,235,82,237,32,239,150,240,197,241,211,242,233,243,120,245,184,247,24,250,27,252,22,254,57,0,22,2, +169,3,93,5,251,6,18,8,8,9,125,10,95,12,140,14,23,17,173,19,236,21,8,24,29,26,198,27,6,29,91,30, +193,31,238,32,62,34,37,36,113,38,224,40,96,43,139,45,10,47,60,48,131,49,150,50,84,51,71,52,176,53,43,55, +133,56,240,57,111,59,211,60,7,62,234,62,65,63,59,63,93,63,207,63,103,64,63,65,107,66,112,67,216,67,245,67, +53,68,82,68,255,67,147,67,87,67,33,67,250,66,48,67,149,67,191,67,177,67,141,67,53,67,191,66,104,66,246,65, +53,65,138,64,45,64,167,63,221,62,104,62,139,62,210,62,197,62,36,62,232,60,153,59,204,58,79,58,160,57,210,56, +44,56,139,55,212,54,51,54,139,53,141,52,82,51,50,50,69,49,116,48,167,47,162,46,57,45,160,43,60,42,41,41, +62,40,75,39,49,38,223,36,95,35,216,33,86,32,181,30,4,29,158,27,131,26,32,25,59,23,103,21,1,20,164,18, +233,16,238,14,226,12,233,10,49,9,170,7,8,6,80,4,189,2,56,1,146,255,217,253,255,251,215,249,139,247,98,245, +72,243,50,241,104,239,245,237,140,236,22,235,129,233,125,231,23,229,228,226,5,225,255,222,199,220,212,218,54,217,161,215, +13,214,140,212,236,210,41,209,143,207,24,206,101,204,134,202,240,200,168,199,77,198,220,196,142,195,59,194,199,192,147,191, +179,190,130,189,202,187,70,186,141,185,149,185,53,186,225,186,130,186,237,184,92,183,136,182,232,181,81,181,66,181,163,181, +35,182,59,183,4,185,96,186,156,186,90,186,31,186,172,185,239,184,52,184,183,183,244,183,84,185,48,187,141,188,122,189, +151,190,201,191,138,192,130,192,142,191,38,190,139,189,135,190,112,192,57,194,155,195,178,196,136,197,57,198,181,198,157,198, +13,198,223,197,178,198,90,200,120,202,176,204,142,206,6,208,150,209,44,211,233,211,182,211,200,211,237,212,204,214,43,217, +65,220,172,223,217,226,239,229,223,232,162,234,204,234,112,234,150,234,141,235,210,237,128,241,129,245,251,248,106,252,239,255, +138,2,219,3,145,4,241,4,6,5,149,5,40,7,83,9,0,12,155,15,151,19,174,22,137,24,147,25,5,26,52,26, +127,26,152,26,71,26,133,26,70,28,34,31,67,34,77,37,161,39,107,40,1,40,158,39,209,39,108,40,127,41,32,43, +238,44,166,46,128,48,113,50,233,51,145,52,162,52,124,52,111,52,203,52,175,53,4,55,180,56,138,58,5,60,236,60, +163,61,76,62,94,62,165,61,194,60,65,60,59,60,243,60,151,62,130,64,226,65,137,66,130,66,192,65,152,64,117,63, +71,62,17,61,68,60,223,59,122,59,101,59,22,60,227,60,217,60,251,59,134,58,93,56,252,53,83,52,83,51,89,50, +153,49,141,49,197,49,159,49,46,49,150,48,144,47,246,45,237,43,167,41,155,39,123,38,71,38,12,38,246,36,55,35, +156,33,166,32,34,32,111,31,28,30,68,28,87,26,154,24,9,23,186,21,226,20,76,20,90,19,208,17,16,16,104,14, +198,12,25,11,100,9,162,7,21,6,32,5,146,4,196,3,119,2,196,0,165,254,57,252,21,250,172,248,220,247,68,247, +133,246,109,245,60,244,86,243,161,242,197,241,186,240,138,239,27,238,150,236,89,235,101,234,120,233,155,232,244,231,109,231, +227,230,95,230,208,229,254,228,201,227,68,226,182,224,113,223,159,222,54,222,3,222,197,221,95,221,232,220,95,220,154,219, +201,218,95,218,72,218,235,217,5,217,226,215,1,215,222,214,147,215,100,216,133,216,38,216,1,216,88,216,2,217,218,217, +144,218,222,218,0,219,109,219,70,220,113,221,214,222,100,224,28,226,237,227,119,229,123,230,96,231,147,232,215,233,217,234, +221,235,56,237,238,238,4,241,100,243,124,245,205,246,143,247,67,248,20,249,22,250,95,251,164,252,118,253,17,254,46,255, +245,0,192,2,2,4,197,4,66,5,176,5,81,6,10,7,82,7,58,7,187,7,94,9,100,11,237,12,235,13,152,14, +11,15,119,15,232,15,34,16,89,16,92,17,118,19,7,22,96,24,57,26,111,27,40,28,210,28,148,29,56,30,193,30, +139,31,213,32,148,34,131,36,85,38,254,39,154,41,238,42,134,43,104,43,16,43,196,42,153,42,225,42,226,43,82,45, +162,46,151,47,79,48,199,48,176,48,189,47,27,46,103,44,41,43,132,42,83,42,92,42,93,42,62,42,20,42,209,41, +27,41,166,39,168,37,168,35,244,33,130,32,90,31,168,30,83,30,0,30,149,29,52,29,164,28,118,27,177,25,203,23, +38,22,251,20,81,20,198,19,246,18,4,18,57,17,118,16,136,15,126,14,59,13,138,11,180,9,43,8,226,6,165,5, +160,4,223,3,8,3,247,1,211,0,110,255,137,253,108,251,125,249,148,247,121,245,124,243,11,242,20,241,33,240,203,238, +2,237,14,235,53,233,86,231,42,229,193,226,131,224,169,222,27,221,201,219,196,218,236,217,233,216,146,215,5,214,87,212, +131,210,159,208,201,206,5,205,111,203,65,202,138,201,32,201,199,200,40,200,5,199,145,197,27,196,114,194,90,192,79,190, +14,189,153,188,92,188,249,187,147,187,109,187,115,187,37,187,42,186,191,184,65,183,209,181,178,180,54,180,52,180,94,180, +198,180,81,181,92,181,199,180,77,180,54,180,235,179,54,179,164,178,149,178,252,178,214,179,5,181,21,182,178,182,5,183, +79,183,164,183,13,184,156,184,65,185,230,185,178,186,239,187,152,189,79,191,200,192,224,193,127,194,206,194,77,195,63,196, +110,197,190,198,107,200,102,202,71,204,222,205,82,207,196,208,48,210,103,211,61,212,241,212,19,214,216,215,1,218,93,220, +176,222,156,224,43,226,189,227,69,229,118,230,141,231,237,232,146,234,125,236,211,238,62,241,79,243,100,245,240,247,117,250, +83,252,194,253,67,255,248,0,240,2,47,5,109,7,115,9,124,11,206,13,87,16,206,18,231,20,127,22,208,23,62,25, +240,26,215,28,240,30,34,33,39,35,239,36,186,38,151,40,49,42,103,43,148,44,251,45,113,47,215,48,71,50,186,51, +35,53,165,54,42,56,50,57,177,57,73,58,78,59,95,60,46,61,218,61,151,62,158,63,2,65,91,66,76,67,34,68, +27,69,225,69,100,70,17,71,225,71,127,72,61,73,115,74,174,75,143,76,111,77,84,78,195,78,206,78,228,78,234,78, +183,78,176,78,14,79,145,79,44,80,240,80,115,81,86,81,228,80,113,80,217,79,15,79,72,78,134,77,190,76,56,76, +26,76,2,76,155,75,247,74,21,74,188,72,10,71,115,69,38,68,230,66,127,65,15,64,223,62,15,62,85,61,66,60, +224,58,140,57,44,56,108,54,143,52,20,51,214,49,144,48,151,47,13,47,82,46,11,45,152,43,23,42,49,40,10,38, +34,36,126,34,246,32,186,31,201,30,182,29,81,28,187,26,248,24,32,23,99,21,142,19,87,17,54,15,197,13,177,12, +90,11,216,9,106,8,205,6,229,4,241,2,222,0,126,254,61,252,127,250,225,248,17,247,112,245,29,244,153,242,213,240, +73,239,217,237,253,235,202,233,188,231,233,229,87,228,81,227,181,226,219,225,147,224,78,223,51,222,243,220,113,219,229,217, +104,216,251,214,191,213,210,212,22,212,79,211,107,210,153,209,238,208,27,208,203,206,88,205,104,204,249,203,125,203,204,202, +56,202,216,201,140,201,97,201,96,201,74,201,10,201,196,200,106,200,242,199,179,199,201,199,178,199,100,199,157,199,114,200, +247,200,234,200,6,201,135,201,252,201,96,202,217,202,38,203,112,203,113,204,20,206,88,207,233,207,78,208,212,208,111,209, +60,210,43,211,246,211,182,212,189,213,255,214,62,216,104,217,105,218,50,219,5,220,10,221,243,221,121,222,232,222,177,223, +230,224,81,226,200,227,66,229,188,230,47,232,122,233,104,234,219,234,25,235,174,235,211,236,57,238,155,239,23,241,197,242, +116,244,232,245,19,247,255,247,193,248,109,249,23,250,255,250,101,252,41,254,249,255,188,1,122,3,39,5,172,6,223,7, +158,8,55,9,60,10,163,11,228,12,251,13,79,15,234,16,140,18,25,20,84,21,240,21,37,22,126,22,25,23,184,23, +103,24,117,25,232,26,79,28,63,29,213,29,92,30,166,30,115,30,42,30,60,30,104,30,128,30,5,31,37,32,73,33, +3,34,112,34,155,34,119,34,24,34,136,33,234,32,161,32,207,32,46,33,184,33,133,34,55,35,128,35,181,35,234,35, +165,35,242,34,110,34,53,34,2,34,252,33,96,34,250,34,144,35,7,36,13,36,134,35,209,34,29,34,55,33,65,32, +168,31,110,31,76,31,68,31,103,31,100,31,253,30,109,30,224,29,13,29,199,27,118,26,126,25,187,24,17,24,180,23, +128,23,252,22,51,22,141,21,233,20,211,19,97,18,251,16,207,15,239,14,84,14,195,13,59,13,250,12,195,12,9,12, +216,10,153,9,95,8,54,7,101,6,190,5,223,4,11,4,171,3,111,3,251,2,122,2,225,1,192,0,59,255,241,253, +239,252,216,251,179,250,209,249,73,249,254,248,177,248,16,248,17,247,4,246,22,245,37,244,7,243,197,241,144,240,181,239, +76,239,5,239,131,238,204,237,21,237,88,236,109,235,113,234,147,233,192,232,225,231,54,231,239,230,179,230,44,230,147,229, +52,229,228,228,106,228,217,227,66,227,157,226,30,226,239,225,219,225,167,225,106,225,49,225,225,224,154,224,130,224,85,224, +216,223,82,223,25,223,20,223,4,223,209,222,121,222,42,222,50,222,106,222,78,222,231,221,179,221,182,221,144,221,100,221, +134,221,189,221,182,221,182,221,2,222,80,222,89,222,79,222,123,222,229,222,98,223,193,223,244,223,31,224,92,224,166,224, +25,225,211,225,160,226,78,227,11,228,245,228,208,229,114,230,3,231,155,231,41,232,178,232,88,233,39,234,13,235,222,235, +146,236,98,237,108,238,95,239,6,240,163,240,100,241,24,242,187,242,130,243,90,244,4,245,169,245,156,246,189,247,163,248, +64,249,227,249,183,250,143,251,77,252,25,253,254,253,201,254,123,255,89,0,102,1,84,2,13,3,189,3,132,4,100,5, +70,6,2,7,164,7,111,8,115,9,134,10,136,11,88,12,233,12,144,13,153,14,168,15,92,16,244,16,177,17,103,18, +12,19,192,19,77,20,156,20,4,21,161,21,54,22,202,22,106,23,205,23,245,23,63,24,142,24,155,24,184,24,24,25, +85,25,106,25,195,25,50,26,64,26,46,26,77,26,97,26,106,26,167,26,197,26,116,26,51,26,92,26,125,26,84,26, +55,26,62,26,56,26,49,26,49,26,254,25,144,25,56,25,25,25,16,25,10,25,6,25,241,24,184,24,115,24,77,24, +50,24,231,23,116,23,17,23,165,22,15,22,149,21,92,21,10,21,130,20,23,20,185,19,21,19,98,18,235,17,90,17, +126,16,197,15,101,15,1,15,108,14,211,13,84,13,241,12,135,12,213,11,236,10,44,10,151,9,224,8,23,8,87,7, +115,6,157,5,91,5,118,5,42,5,92,4,125,3,169,2,201,1,252,0,73,0,158,255,40,255,15,255,21,255,241,254, +165,254,70,254,215,253,95,253,230,252,112,252,1,252,150,251,47,251,239,250,1,251,94,251,191,251,193,251,95,251,21,251, +29,251,6,251,136,250,30,250,43,250,112,250,187,250,31,251,105,251,108,251,126,251,188,251,179,251,67,251,236,250,225,250, +242,250,35,251,122,251,160,251,119,251,69,251,29,251,210,250,113,250,21,250,171,249,94,249,136,249,6,250,94,250,122,250, +125,250,70,250,194,249,77,249,35,249,20,249,251,248,5,249,89,249,230,249,122,250,206,250,197,250,165,250,168,250,161,250, +92,250,3,250,216,249,247,249,117,250,54,251,209,251,22,252,93,252,217,252,44,253,248,252,83,252,157,251,71,251,157,251, +109,252,35,253,103,253,71,253,227,252,87,252,190,251,29,251,101,250,164,249,9,249,166,248,108,248,50,248,201,247,37,247, +116,246,201,245,247,244,223,243,196,242,253,241,131,241,21,241,175,240,109,240,52,240,243,239,195,239,103,239,91,238,200,236, +143,235,20,235,2,235,53,235,181,235,40,236,76,236,111,236,170,236,151,236,16,236,120,235,20,235,229,234,239,234,51,235, +181,235,132,236,113,237,20,238,86,238,121,238,151,238,133,238,43,238,162,237,58,237,49,237,103,237,175,237,48,238,233,238, +75,239,13,239,148,238,35,238,153,237,27,237,228,236,190,236,107,236,38,236,48,236,127,236,224,236,12,237,200,236,51,236, +126,235,193,234,68,234,80,234,159,234,186,234,175,234,199,234,10,235,109,235,202,235,213,235,164,235,159,235,186,235,180,235, +214,235,98,236,7,237,172,237,130,238,47,239,97,239,172,239,113,240,1,241,245,240,233,240,60,241,188,241,139,242,204,243, +243,244,136,245,209,245,37,246,118,246,189,246,12,247,87,247,163,247,34,248,222,248,160,249,72,250,246,250,192,251,104,252, +175,252,195,252,245,252,58,253,99,253,149,253,242,253,101,254,240,254,195,255,202,0,190,1,104,2,176,2,162,2,137,2, +165,2,12,3,199,3,162,4,48,5,123,5,14,6,245,6,179,7,58,8,197,8,34,9,55,9,94,9,185,9,28,10, +178,10,143,11,57,12,140,12,17,13,226,13,137,14,245,14,91,15,147,15,166,15,20,16,229,16,154,17,48,18,0,19, +219,19,84,20,140,20,224,20,88,21,205,21,50,22,118,22,151,22,207,22,87,23,15,24,165,24,245,24,19,25,30,25, +57,25,118,25,168,25,153,25,139,25,238,25,149,26,230,26,207,26,196,26,217,26,194,26,119,26,43,26,229,25,160,25, +132,25,155,25,161,25,100,25,15,25,225,24,206,24,147,24,18,24,116,23,232,22,115,22,22,22,241,21,14,22,57,22, +53,22,11,22,209,21,114,21,231,20,101,20,11,20,187,19,116,19,90,19,85,19,59,19,42,19,47,19,255,18,123,18, +235,17,117,17,16,17,210,16,170,16,78,16,216,15,176,15,180,15,113,15,5,15,198,14,134,14,245,13,53,13,122,12, +211,11,98,11,52,11,11,11,169,10,7,10,46,9,50,8,78,7,148,6,213,5,9,5,95,4,225,3,97,3,203,2, +54,2,173,1,28,1,119,0,194,255,238,254,1,254,71,253,251,252,202,252,68,252,156,251,67,251,41,251,1,251,186,250, +66,250,133,249,190,248,62,248,11,248,9,248,30,248,34,248,31,248,77,248,138,248,126,248,67,248,34,248,250,247,178,247, +136,247,129,247,100,247,98,247,195,247,68,248,119,248,85,248,22,248,244,247,251,247,203,247,39,247,130,246,89,246,117,246, +132,246,151,246,175,246,170,246,177,246,215,246,208,246,140,246,83,246,46,246,10,246,16,246,69,246,121,246,202,246,89,247, +213,247,249,247,249,247,253,247,246,247,17,248,135,248,56,249,243,249,168,250,72,251,218,251,126,252,16,253,97,253,171,253, +49,254,200,254,82,255,3,0,230,0,198,1,156,2,116,3,51,4,204,4,86,5,209,5,52,6,138,6,217,6,43,7, +177,7,159,8,219,9,1,11,184,11,10,12,70,12,133,12,163,12,194,12,64,13,31,14,16,15,245,15,188,16,53,17, +136,17,26,18,201,18,24,19,16,19,55,19,197,19,127,20,26,21,133,21,235,21,108,22,223,22,35,23,102,23,185,23, +228,23,229,23,8,24,91,24,173,24,12,25,168,25,97,26,200,26,160,26,34,26,205,25,211,25,3,26,66,26,177,26, +47,27,111,27,138,27,193,27,233,27,173,27,41,27,181,26,120,26,126,26,201,26,44,27,113,27,155,27,202,27,255,27, +19,28,220,27,100,27,226,26,114,26,0,26,143,25,95,25,141,25,221,25,0,26,196,25,17,25,4,24,251,22,54,22, +130,21,150,20,132,19,156,18,0,18,145,17,6,17,19,16,188,14,88,13,8,12,151,10,18,9,202,7,177,6,113,5, +36,4,19,3,26,2,247,0,188,255,114,254,232,252,8,251,5,249,50,247,235,245,68,245,213,244,44,244,60,243,30,242, +216,240,149,239,109,238,58,237,235,235,181,234,185,233,246,232,109,232,247,231,86,231,155,230,255,229,91,229,113,228,93,227, +80,226,77,225,100,224,154,223,213,222,41,222,212,221,187,221,109,221,168,220,122,219,36,218,238,216,235,215,245,214,21,214, +110,213,214,212,18,212,78,211,183,210,16,210,22,209,236,207,224,206,14,206,69,205,86,204,109,203,221,202,143,202,37,202, +165,201,85,201,38,201,219,200,121,200,32,200,203,199,118,199,78,199,153,199,75,200,216,200,235,200,251,200,128,201,39,202, +150,202,22,203,191,203,55,204,160,204,117,205,154,206,176,207,208,208,9,210,27,211,255,211,210,212,131,213,61,214,86,215, +136,216,92,217,41,218,101,219,189,220,214,221,238,222,35,224,44,225,1,226,221,226,211,227,209,228,196,229,163,230,137,231, +151,232,184,233,233,234,85,236,189,237,157,238,33,239,251,239,54,241,75,242,44,243,70,244,187,245,56,247,115,248,125,249, +155,250,224,251,31,253,79,254,134,255,182,0,218,1,37,3,160,4,9,6,86,7,188,8,53,10,156,11,255,12,92,14, +139,15,146,16,156,17,197,18,46,20,215,21,106,23,164,24,190,25,226,26,218,27,170,28,177,29,233,30,232,31,180,32, +178,33,227,34,239,35,201,36,168,37,147,38,99,39,17,40,158,40,255,40,83,41,227,41,151,42,7,43,57,43,179,43, +146,44,79,45,146,45,130,45,102,45,114,45,181,45,241,45,238,45,226,45,12,46,64,46,80,46,92,46,97,46,43,46, +199,45,108,45,27,45,209,44,167,44,138,44,87,44,32,44,248,43,185,43,84,43,238,42,133,42,247,41,95,41,232,40, +131,40,28,40,214,39,195,39,171,39,99,39,247,38,113,38,201,37,5,37,52,36,88,35,147,34,13,34,172,33,72,33, +254,32,211,32,107,32,148,31,146,30,144,29,95,28,21,27,14,26,86,25,178,24,254,23,51,23,90,22,141,21,183,20, +150,19,56,18,232,16,163,15,53,14,196,12,139,11,131,10,156,9,198,8,193,7,115,6,34,5,238,3,144,2,236,0, +82,255,34,254,94,253,167,252,168,251,141,250,155,249,142,248,40,247,206,245,199,244,169,243,57,242,236,240,0,240,54,239, +109,238,165,237,168,236,114,235,59,234,248,232,126,231,2,230,189,228,157,227,155,226,185,225,195,224,149,223,103,222,64,221, +220,219,50,218,134,216,231,214,66,213,187,211,127,210,91,209,248,207,102,206,12,205,0,204,234,202,194,201,216,200,12,200, +234,198,141,197,112,196,158,195,242,194,138,194,96,194,53,194,16,194,17,194,37,194,94,194,238,194,146,195,240,195,65,196, +180,196,6,197,65,197,217,197,207,198,192,199,173,200,222,201,103,203,22,205,116,206,23,207,91,207,255,207,1,209,232,209, +206,210,242,211,19,213,15,214,53,215,112,216,65,217,175,217,45,218,203,218,82,219,220,219,171,220,184,221,186,222,141,223, +95,224,78,225,40,226,206,226,111,227,38,228,223,228,166,229,164,230,245,231,188,233,219,235,186,237,14,239,62,240,123,241, +122,242,136,243,69,245,91,247,42,249,37,251,219,253,179,0,2,3,12,5,18,7,214,8,96,10,239,11,104,13,219,14, +205,16,89,19,230,21,24,24,23,26,240,27,146,29,19,31,94,32,46,33,176,33,121,34,176,35,5,37,93,38,214,39, +67,41,91,42,42,43,207,43,71,44,180,44,76,45,250,45,146,46,48,47,235,47,154,48,53,49,200,49,31,50,47,50, +96,50,211,50,51,51,135,51,24,52,184,52,38,53,175,53,106,54,215,54,218,54,229,54,237,54,169,54,135,54,247,54, +127,55,186,55,22,56,192,56,45,57,31,57,232,56,135,56,214,55,38,55,188,54,81,54,199,53,130,53,141,53,119,53, +24,53,150,52,222,51,224,50,234,49,26,49,36,48,16,47,51,46,116,45,138,44,169,43,2,43,75,42,106,41,148,40, +144,39,14,38,120,36,73,35,56,34,248,32,208,31,216,30,192,29,131,28,102,27,97,26,42,25,157,23,219,21,66,20, +28,19,68,18,105,17,119,16,91,15,217,13,9,12,87,10,224,8,96,7,193,5,57,4,229,2,173,1,125,0,95,255, +81,254,33,253,177,251,45,250,175,248,8,247,68,245,195,243,146,242,105,241,89,240,171,239,63,239,201,238,44,238,71,237, +6,236,170,234,86,233,251,231,237,230,149,230,123,230,3,230,118,229,58,229,233,228,48,228,80,227,110,226,128,225,186,224, +44,224,156,223,21,223,220,222,193,222,110,222,244,221,112,221,201,220,17,220,117,219,209,218,254,217,56,217,196,216,149,216, +124,216,85,216,252,215,102,215,178,214,16,214,156,213,79,213,30,213,16,213,31,213,51,213,105,213,228,213,96,214,129,214, +101,214,86,214,101,214,171,214,86,215,67,216,50,217,31,218,9,219,234,219,219,220,213,221,156,222,74,223,26,224,230,224, +151,225,141,226,227,227,50,229,103,230,176,231,226,232,221,233,246,234,49,236,33,237,214,237,194,238,210,239,192,240,181,241, +212,242,249,243,39,245,90,246,45,247,157,247,72,248,92,249,91,250,44,251,41,252,70,253,71,254,69,255,82,0,72,1, +56,2,80,3,108,4,93,5,64,6,68,7,99,8,133,9,171,10,221,11,22,13,71,14,108,15,133,16,131,17,92,18, +42,19,14,20,15,21,37,22,73,23,107,24,112,25,64,26,229,26,141,27,75,28,253,28,132,29,0,30,148,30,85,31, +76,32,73,33,224,33,251,33,16,34,97,34,165,34,173,34,166,34,154,34,136,34,195,34,106,35,242,35,3,36,12,36, +95,36,131,36,17,36,102,35,254,34,218,34,208,34,230,34,26,35,68,35,84,35,92,35,89,35,39,35,157,34,186,33, +209,32,73,32,12,32,175,31,41,31,205,30,145,30,53,30,191,29,42,29,47,28,222,26,200,25,45,25,180,24,1,24, +29,23,75,22,185,21,55,21,100,20,42,19,219,17,178,16,166,15,167,14,169,13,146,12,118,11,156,10,246,9,18,9, +186,7,61,6,237,4,210,3,214,2,194,1,97,0,227,254,185,253,253,252,83,252,93,251,15,250,150,248,31,247,187,245, +90,244,219,242,50,241,165,239,116,238,70,237,171,235,229,233,89,232,224,230,80,229,186,227,239,225,212,223,226,221,89,220, +193,218,209,216,198,214,202,212,42,211,102,210,33,210,62,209,133,207,196,205,81,204,226,202,115,201,44,200,5,199,34,198, +194,197,198,197,228,197,9,198,23,198,255,197,4,198,24,198,182,197,255,196,211,196,78,197,197,197,41,198,235,198,239,199, +241,200,23,202,66,203,203,203,132,203,19,203,31,203,214,203,17,205,99,206,91,207,244,207,132,208,36,209,135,209,122,209, +27,209,182,208,173,208,68,209,64,210,28,211,212,211,200,212,219,213,130,214,165,214,146,214,105,214,94,214,223,214,212,215, +183,216,171,217,91,219,181,221,247,223,162,225,114,226,112,226,130,226,157,227,121,229,104,231,117,233,200,235,56,238,240,240, +247,243,134,246,58,248,193,249,124,251,20,253,165,254,156,0,217,2,48,5,231,7,222,10,91,13,28,15,153,16,29,18, +131,19,182,20,194,21,151,22,117,23,7,25,123,27,232,29,87,31,223,31,70,32,3,33,4,34,0,35,207,35,156,36, +183,37,44,39,153,40,159,41,74,42,217,42,100,43,221,43,48,44,61,44,64,44,217,44,30,46,95,47,70,48,28,49, +231,49,132,50,53,51,242,51,32,52,198,51,188,51,100,52,101,53,113,54,89,55,6,56,177,56,130,57,15,58,17,58, +237,57,226,57,153,57,11,57,199,56,238,56,18,57,51,57,147,57,200,57,71,57,112,56,245,55,207,55,158,55,66,55, +169,54,235,53,110,53,81,53,55,53,233,52,124,52,209,51,237,50,49,50,152,49,149,48,55,47,58,46,161,45,185,44, +104,43,54,42,104,41,224,40,70,40,11,39,20,37,37,35,232,33,52,33,154,32,229,31,225,30,141,29,65,28,39,27, +227,25,30,24,19,22,86,20,18,19,215,17,70,16,147,14,35,13,14,12,42,11,27,10,130,8,133,6,199,4,160,3, +173,2,75,1,96,255,163,253,232,252,1,253,235,252,33,252,14,251,14,250,15,249,13,248,23,247,234,245,114,244,91,243, +30,243,38,243,170,242,172,241,158,240,215,239,90,239,175,238,132,237,86,236,178,235,70,235,174,234,253,233,35,233,40,232, +167,231,184,231,119,231,106,230,7,229,190,227,190,226,29,226,130,225,134,224,115,223,196,222,104,222,9,222,104,221,114,220, +118,219,230,218,168,218,69,218,179,217,85,217,108,217,223,217,89,218,130,218,84,218,44,218,114,218,31,219,188,219,242,219, +240,219,54,220,0,221,21,222,25,223,231,223,146,224,78,225,54,226,14,227,128,227,175,227,41,228,39,229,89,230,92,231, +27,232,230,232,33,234,172,235,222,236,78,237,64,237,67,237,191,237,163,238,86,239,142,239,211,239,164,240,177,241,113,242, +193,242,197,242,218,242,100,243,65,244,222,244,18,245,78,245,238,245,234,246,8,248,255,248,156,249,28,250,232,250,245,251, +210,252,72,253,164,253,96,254,161,255,25,1,101,2,106,3,52,4,235,4,227,5,6,7,187,7,12,8,209,8,53,10, +136,11,149,12,154,13,111,14,3,15,185,15,165,16,101,17,213,17,50,18,199,18,162,19,86,20,125,20,105,20,159,20, +19,21,137,21,225,21,213,21,96,21,19,21,70,21,147,21,147,21,105,21,87,21,101,21,133,21,169,21,169,21,100,21, +7,21,227,20,233,20,219,20,196,20,178,20,147,20,131,20,149,20,115,20,5,20,187,19,195,19,199,19,179,19,187,19, +189,19,134,19,77,19,60,19,12,19,164,18,115,18,157,18,171,18,109,18,53,18,7,18,165,17,75,17,48,17,243,16, +101,16,236,15,172,15,94,15,237,14,98,14,172,13,244,12,105,12,241,11,133,11,66,11,239,10,66,10,121,9,235,8, +122,8,235,7,97,7,5,7,174,6,30,6,89,5,157,4,5,4,117,3,217,2,66,2,183,1,42,1,154,0,15,0, +114,255,174,254,225,253,59,253,201,252,101,252,211,251,18,251,100,250,214,249,28,249,59,248,135,247,234,246,37,246,127,245, +42,245,180,244,225,243,13,243,109,242,227,241,92,241,201,240,34,240,148,239,48,239,213,238,128,238,44,238,185,237,75,237, +32,237,12,237,215,236,154,236,92,236,10,236,216,235,233,235,254,235,235,235,214,235,218,235,233,235,233,235,203,235,156,235, +137,235,153,235,148,235,86,235,20,235,9,235,40,235,82,235,130,235,122,235,4,235,141,234,141,234,183,234,160,234,103,234, +46,234,241,233,213,233,210,233,163,233,80,233,19,233,244,232,251,232,35,233,43,233,9,233,9,233,44,233,83,233,152,233, +224,233,244,233,51,234,240,234,169,235,224,235,242,235,93,236,20,237,194,237,53,238,142,238,38,239,16,240,238,240,127,241, +232,241,102,242,7,243,184,243,100,244,1,245,135,245,6,246,151,246,51,247,198,247,89,248,246,248,131,249,247,249,116,250, +252,250,76,251,71,251,70,251,156,251,20,252,71,252,87,252,176,252,66,253,156,253,156,253,131,253,134,253,162,253,195,253, +233,253,39,254,132,254,240,254,88,255,180,255,9,0,83,0,122,0,141,0,205,0,55,1,128,1,165,1,237,1,99,2, +210,2,47,3,152,3,9,4,90,4,141,4,222,4,73,5,124,5,140,5,237,5,147,6,13,7,92,7,183,7,18,8, +103,8,192,8,237,8,224,8,230,8,30,9,97,9,170,9,0,10,54,10,52,10,41,10,62,10,85,10,60,10,14,10, +12,10,48,10,83,10,109,10,103,10,61,10,63,10,125,10,135,10,78,10,60,10,91,10,105,10,95,10,54,10,231,9, +182,9,187,9,183,9,163,9,147,9,98,9,34,9,29,9,56,9,40,9,252,8,218,8,190,8,155,8,107,8,67,8, +71,8,70,8,7,8,217,7,254,7,24,8,226,7,168,7,146,7,95,7,8,7,205,6,190,6,181,6,166,6,156,6, +145,6,122,6,94,6,57,6,8,6,237,5,239,5,212,5,143,5,115,5,155,5,198,5,214,5,214,5,189,5,151,5, +124,5,82,5,1,5,181,4,141,4,111,4,94,4,114,4,134,4,89,4,252,3,183,3,154,3,102,3,251,2,142,2, +73,2,28,2,251,1,232,1,203,1,139,1,89,1,96,1,75,1,193,0,33,0,230,255,189,255,79,255,8,255,31,255, +23,255,208,254,172,254,177,254,178,254,191,254,177,254,93,254,37,254,76,254,103,254,66,254,71,254,156,254,230,254,249,254, +6,255,38,255,73,255,110,255,151,255,179,255,190,255,207,255,231,255,250,255,29,0,72,0,72,0,46,0,46,0,38,0, +15,0,42,0,63,0,254,255,212,255,20,0,56,0,3,0,216,255,179,255,87,255,12,255,251,254,221,254,145,254,52,254, +245,253,3,254,38,254,234,253,129,253,102,253,107,253,69,253,38,253,23,253,223,252,171,252,185,252,204,252,185,252,190,252, +241,252,31,253,60,253,96,253,125,253,129,253,152,253,220,253,19,254,36,254,68,254,116,254,137,254,169,254,236,254,17,255, +28,255,103,255,215,255,18,0,36,0,37,0,252,255,213,255,233,255,254,255,226,255,207,255,225,255,237,255,245,255,15,0, +5,0,176,255,86,255,52,255,15,255,182,254,96,254,49,254,254,253,193,253,161,253,150,253,131,253,116,253,85,253,253,252, +138,252,57,252,6,252,217,251,188,251,187,251,188,251,160,251,124,251,120,251,128,251,79,251,233,250,170,250,195,250,251,250, +30,251,64,251,104,251,99,251,73,251,103,251,147,251,107,251,42,251,43,251,52,251,35,251,71,251,135,251,146,251,165,251, +235,251,5,252,220,251,175,251,127,251,88,251,95,251,89,251,30,251,18,251,95,251,168,251,192,251,179,251,135,251,101,251, +103,251,92,251,57,251,44,251,53,251,69,251,100,251,128,251,133,251,130,251,123,251,110,251,109,251,103,251,72,251,69,251, +122,251,179,251,217,251,255,251,22,252,23,252,37,252,70,252,87,252,82,252,103,252,189,252,24,253,40,253,40,253,109,253, +180,253,190,253,222,253,51,254,97,254,107,254,153,254,208,254,228,254,10,255,110,255,231,255,56,0,95,0,132,0,183,0, +230,0,29,1,110,1,175,1,217,1,48,2,169,2,242,2,7,3,26,3,51,3,89,3,139,3,178,3,224,3,49,4, +100,4,80,4,70,4,111,4,133,4,124,4,134,4,132,4,85,4,79,4,153,4,204,4,183,4,166,4,184,4,174,4, +117,4,67,4,56,4,68,4,65,4,29,4,3,4,10,4,5,4,255,3,42,4,68,4,13,4,232,3,16,4,36,4, +23,4,68,4,121,4,95,4,63,4,111,4,203,4,20,5,43,5,15,5,248,4,25,5,77,5,92,5,90,5,143,5, +1,6,61,6,249,5,168,5,179,5,207,5,194,5,197,5,221,5,205,5,167,5,154,5,158,5,156,5,112,5,9,5, +173,4,162,4,190,4,183,4,132,4,66,4,254,3,178,3,103,3,65,3,44,3,225,2,119,2,63,2,33,2,230,1, +176,1,147,1,112,1,85,1,64,1,6,1,195,0,180,0,197,0,196,0,166,0,122,0,100,0,116,0,131,0,140,0, +158,0,122,0,44,0,46,0,111,0,103,0,68,0,100,0,124,0,104,0,127,0,155,0,91,0,3,0,231,255,229,255, +228,255,241,255,232,255,205,255,206,255,198,255,127,255,45,255,253,254,190,254,109,254,66,254,37,254,225,253,160,253,131,253, +79,253,1,253,224,252,205,252,133,252,54,252,4,252,175,251,78,251,73,251,120,251,105,251,51,251,35,251,39,251,28,251, +14,251,255,250,225,250,200,250,197,250,202,250,207,250,235,250,22,251,49,251,74,251,112,251,123,251,105,251,137,251,211,251, +233,251,217,251,240,251,19,252,40,252,99,252,171,252,180,252,162,252,195,252,253,252,18,253,255,252,240,252,8,253,52,253, +79,253,95,253,105,253,91,253,74,253,85,253,92,253,67,253,39,253,14,253,241,252,243,252,37,253,96,253,118,253,98,253, +96,253,146,253,168,253,113,253,74,253,109,253,143,253,143,253,142,253,157,253,219,253,56,254,78,254,40,254,58,254,97,254, +75,254,71,254,125,254,150,254,173,254,248,254,32,255,39,255,126,255,226,255,222,255,214,255,26,0,71,0,64,0,93,0, +153,0,200,0,12,1,108,1,167,1,170,1,169,1,195,1,229,1,254,1,12,2,5,2,253,1,44,2,144,2,204,2, +182,2,139,2,136,2,172,2,198,2,177,2,150,2,171,2,202,2,194,2,181,2,177,2,155,2,145,2,174,2,175,2, +112,2,52,2,28,2,5,2,239,1,232,1,199,1,122,1,74,1,110,1,157,1,121,1,34,1,248,0,9,1,34,1, +42,1,27,1,243,0,205,0,212,0,255,0,17,1,235,0,190,0,208,0,12,1,30,1,238,0,184,0,190,0,247,0, +28,1,9,1,235,0,219,0,202,0,211,0,11,1,34,1,246,0,210,0,203,0,173,0,147,0,173,0,199,0,175,0, +137,0,131,0,127,0,72,0,248,255,215,255,203,255,137,255,66,255,46,255,16,255,231,254,245,254,237,254,137,254,63,254, +62,254,23,254,210,253,192,253,172,253,115,253,101,253,126,253,129,253,119,253,104,253,68,253,45,253,45,253,27,253,250,252, +223,252,190,252,171,252,197,252,230,252,245,252,1,253,1,253,238,252,240,252,11,253,21,253,250,252,214,252,208,252,231,252, +245,252,250,252,13,253,1,253,179,252,126,252,174,252,237,252,216,252,144,252,103,252,93,252,64,252,32,252,55,252,77,252, +12,252,194,251,213,251,233,251,167,251,113,251,129,251,140,251,128,251,123,251,98,251,54,251,48,251,57,251,20,251,214,250, +182,250,191,250,238,250,35,251,34,251,238,250,208,250,235,250,28,251,58,251,50,251,7,251,247,250,49,251,113,251,94,251, +43,251,69,251,160,251,225,251,245,251,5,252,23,252,23,252,22,252,62,252,115,252,99,252,49,252,100,252,241,252,58,253, +39,253,32,253,64,253,88,253,106,253,142,253,195,253,240,253,5,254,33,254,85,254,118,254,117,254,133,254,166,254,187,254, +217,254,241,254,233,254,20,255,131,255,161,255,87,255,75,255,158,255,225,255,7,0,39,0,31,0,3,0,19,0,76,0, +139,0,197,0,0,1,67,1,128,1,146,1,144,1,167,1,191,1,199,1,230,1,40,2,126,2,240,2,85,3,132,3, +168,3,245,3,64,4,91,4,100,4,145,4,231,4,52,5,103,5,181,5,38,6,137,6,228,6,68,7,114,7,108,7, +111,7,124,7,152,7,243,7,82,8,109,8,161,8,27,9,94,9,79,9,82,9,83,9,29,9,252,8,29,9,53,9, +39,9,51,9,125,9,229,9,41,10,32,10,231,9,178,9,141,9,105,9,53,9,237,8,200,8,14,9,163,9,17,10, +5,10,160,9,75,9,75,9,96,9,38,9,182,8,128,8,156,8,223,8,69,9,186,9,220,9,150,9,103,9,128,9, +114,9,12,9,164,8,124,8,162,8,17,9,122,9,130,9,81,9,66,9,81,9,54,9,199,8,41,8,179,7,152,7, +196,7,7,8,29,8,229,7,190,7,249,7,27,8,146,7,165,6,233,5,142,5,131,5,148,5,115,5,35,5,253,4, +35,5,78,5,15,5,61,4,53,3,126,2,66,2,55,2,246,1,117,1,49,1,109,1,173,1,135,1,27,1,123,0, +185,255,79,255,82,255,34,255,140,254,30,254,46,254,119,254,150,254,84,254,211,253,104,253,40,253,231,252,126,252,247,251, +166,251,199,251,2,252,3,252,241,251,205,251,117,251,58,251,63,251,239,250,42,250,172,249,203,249,18,250,34,250,254,249, +206,249,175,249,137,249,70,249,247,248,136,248,243,247,162,247,182,247,162,247,70,247,38,247,67,247,48,247,235,246,148,246, +16,246,146,245,100,245,74,245,246,244,167,244,165,244,192,244,189,244,160,244,103,244,15,244,194,243,148,243,93,243,24,243, +229,242,201,242,209,242,17,243,80,243,66,243,26,243,37,243,68,243,58,243,6,243,191,242,163,242,243,242,112,243,173,243, +174,243,180,243,205,243,254,243,64,244,94,244,67,244,61,244,125,244,210,244,13,245,48,245,64,245,77,245,145,245,250,245, +31,246,1,246,36,246,140,246,190,246,185,246,215,246,16,247,70,247,138,247,193,247,208,247,227,247,250,247,251,247,48,248, +187,248,33,249,39,249,57,249,156,249,20,250,84,250,94,250,119,250,207,250,54,251,126,251,187,251,247,251,50,252,144,252, +26,253,160,253,240,253,12,254,56,254,176,254,47,255,107,255,178,255,45,0,127,0,180,0,33,1,124,1,152,1,251,1, +186,2,83,3,204,3,78,4,119,4,65,4,49,4,104,4,188,4,57,5,195,5,45,6,149,6,5,7,75,7,117,7, +170,7,205,7,219,7,2,8,56,8,81,8,104,8,164,8,238,8,44,9,120,9,224,9,66,10,132,10,162,10,127,10, +40,10,250,9,32,10,120,10,250,10,136,11,170,11,77,11,2,11,8,11,25,11,7,11,200,10,116,10,130,10,43,11, +208,11,223,11,143,11,61,11,8,11,1,11,252,10,165,10,48,10,29,10,99,10,157,10,182,10,188,10,153,10,128,10, +164,10,135,10,166,9,148,8,61,8,140,8,221,8,241,8,197,8,112,8,75,8,126,8,139,8,250,7,252,6,34,6, +199,5,195,5,152,5,25,5,178,4,204,4,35,5,7,5,63,4,64,3,121,2,237,1,146,1,51,1,100,0,98,255, +30,255,164,255,224,255,62,255,32,254,3,253,75,252,12,252,201,251,30,251,77,250,189,249,143,249,147,249,76,249,147,248, +235,247,147,247,45,247,151,246,237,245,36,245,143,244,157,244,221,244,145,244,236,243,137,243,107,243,50,243,166,242,217,241, +17,241,140,240,90,240,104,240,117,240,62,240,217,239,150,239,129,239,78,239,179,238,210,237,46,237,248,236,204,236,110,236, +33,236,19,236,52,236,91,236,58,236,174,235,250,234,101,234,10,234,251,233,248,233,163,233,65,233,83,233,172,233,220,233, +218,233,181,233,125,233,107,233,104,233,37,233,217,232,7,233,154,233,12,234,56,234,98,234,192,234,61,235,178,235,1,236, +6,236,200,235,187,235,74,236,57,237,252,237,99,238,156,238,227,238,100,239,247,239,62,240,66,240,140,240,78,241,37,242, +197,242,63,243,160,243,4,244,183,244,160,245,42,246,49,246,64,246,187,246,133,247,71,248,177,248,252,248,188,249,208,250, +129,251,191,251,247,251,58,252,151,252,73,253,250,253,65,254,152,254,138,255,181,0,127,1,234,1,65,2,173,2,73,3, +23,4,214,4,56,5,117,5,31,6,56,7,50,8,216,8,74,9,142,9,234,9,190,10,174,11,24,12,50,12,152,12, +93,13,56,14,227,14,78,15,196,15,115,16,19,17,108,17,182,17,43,18,197,18,91,19,214,19,68,20,169,20,247,20, +102,21,24,22,129,22,78,22,38,22,137,22,18,23,119,23,215,23,22,24,42,24,111,24,236,24,42,25,0,25,216,24, +6,25,75,25,78,25,64,25,100,25,118,25,99,25,157,25,6,26,245,25,132,25,62,25,22,25,231,24,228,24,234,24, +176,24,120,24,125,24,124,24,75,24,16,24,221,23,173,23,121,23,27,23,156,22,77,22,62,22,45,22,12,22,239,21, +173,21,58,21,225,20,167,20,56,20,161,19,51,19,218,18,118,18,64,18,39,18,195,17,45,17,213,16,164,16,72,16, +189,15,24,15,112,14,251,13,181,13,93,13,245,12,149,12,20,12,110,11,223,10,102,10,187,9,221,8,28,8,159,7, +53,7,177,6,24,6,113,5,204,4,73,4,201,3,21,3,86,2,184,1,254,0,50,0,194,255,140,255,2,255,63,254, +183,253,85,253,211,252,69,252,207,251,91,251,178,250,228,249,88,249,47,249,8,249,177,248,86,248,238,247,97,247,219,246, +111,246,27,246,255,245,249,245,168,245,39,245,211,244,171,244,146,244,140,244,110,244,14,244,159,243,101,243,90,243,66,243, +248,242,176,242,156,242,139,242,93,242,57,242,16,242,203,241,178,241,185,241,122,241,53,241,74,241,58,241,222,240,236,240, +74,241,15,241,122,240,121,240,216,240,234,240,212,240,223,240,209,240,158,240,161,240,223,240,9,241,21,241,38,241,49,241, +47,241,88,241,182,241,2,242,40,242,90,242,149,242,181,242,223,242,75,243,210,243,32,244,51,244,91,244,194,244,64,245, +176,245,25,246,116,246,184,246,5,247,98,247,172,247,242,247,92,248,195,248,245,248,39,249,165,249,80,250,201,250,244,250, +15,251,83,251,185,251,40,252,157,252,8,253,72,253,110,253,169,253,5,254,90,254,159,254,245,254,95,255,177,255,223,255, +2,0,35,0,82,0,172,0,18,1,94,1,169,1,244,1,23,2,65,2,183,2,44,3,84,3,122,3,213,3,44,4, +97,4,136,4,185,4,30,5,167,5,237,5,223,5,240,5,82,6,185,6,224,6,230,6,15,7,92,7,156,7,230,7, +73,8,107,8,64,8,96,8,218,8,16,9,2,9,40,9,97,9,94,9,87,9,125,9,171,9,189,9,186,9,205,9, +3,10,10,10,174,9,93,9,98,9,109,9,83,9,76,9,88,9,84,9,71,9,40,9,239,8,206,8,197,8,143,8, +54,8,19,8,35,8,9,8,184,7,136,7,151,7,136,7,34,7,189,6,159,6,129,6,33,6,184,5,139,5,120,5, +65,5,247,4,210,4,193,4,132,4,48,4,255,3,216,3,149,3,82,3,26,3,226,2,193,2,178,2,136,2,99,2, +102,2,71,2,228,1,150,1,109,1,25,1,176,0,130,0,118,0,88,0,56,0,19,0,205,255,124,255,59,255,248,254, +190,254,166,254,132,254,45,254,218,253,194,253,171,253,103,253,32,253,246,252,204,252,133,252,55,252,252,251,200,251,118,251, +22,251,227,250,212,250,159,250,76,250,20,250,236,249,191,249,158,249,118,249,43,249,228,248,208,248,228,248,240,248,200,248, +138,248,134,248,172,248,168,248,141,248,130,248,90,248,41,248,70,248,119,248,87,248,44,248,78,248,128,248,130,248,119,248, +129,248,154,248,172,248,181,248,191,248,185,248,153,248,160,248,233,248,43,249,62,249,64,249,28,249,227,248,0,249,96,249, +107,249,24,249,239,248,23,249,69,249,66,249,23,249,245,248,11,249,64,249,83,249,58,249,51,249,89,249,94,249,34,249, +19,249,106,249,171,249,164,249,188,249,245,249,8,250,20,250,53,250,67,250,102,250,205,250,26,251,27,251,30,251,59,251, +91,251,156,251,5,252,90,252,145,252,190,252,231,252,39,253,125,253,183,253,216,253,29,254,116,254,175,254,229,254,48,255, +116,255,175,255,3,0,96,0,144,0,157,0,193,0,252,0,31,1,63,1,138,1,219,1,252,1,19,2,90,2,173,2, +204,2,203,2,229,2,15,3,41,3,76,3,140,3,197,3,245,3,55,4,94,4,82,4,98,4,166,4,213,4,228,4, +249,4,5,5,18,5,63,5,100,5,117,5,173,5,242,5,251,5,239,5,2,6,27,6,58,6,113,6,146,6,142,6, +165,6,234,6,39,7,65,7,71,7,77,7,84,7,88,7,97,7,118,7,151,7,189,7,202,7,183,7,205,7,30,8, +52,8,250,7,243,7,33,8,18,8,238,7,7,8,34,8,20,8,10,8,254,7,221,7,206,7,214,7,215,7,207,7, +178,7,127,7,88,7,55,7,1,7,209,6,175,6,124,6,82,6,64,6,20,6,218,5,192,5,151,5,62,5,244,4, +193,4,126,4,75,4,61,4,32,4,220,3,159,3,132,3,108,3,50,3,233,2,192,2,156,2,88,2,53,2,70,2, +39,2,226,1,235,1,9,2,178,1,60,1,56,1,88,1,56,1,30,1,41,1,253,0,182,0,212,0,22,1,229,0, +141,0,142,0,142,0,58,0,0,0,25,0,18,0,200,255,144,255,132,255,122,255,99,255,61,255,0,255,178,254,106,254, +62,254,29,254,231,253,189,253,187,253,159,253,70,253,252,252,208,252,133,252,61,252,56,252,51,252,237,251,175,251,169,251, +151,251,88,251,39,251,17,251,228,250,188,250,201,250,207,250,148,250,98,250,103,250,112,250,113,250,118,250,86,250,49,250, +79,250,107,250,68,250,62,250,110,250,111,250,100,250,152,250,167,250,93,250,55,250,93,250,115,250,120,250,154,250,178,250, +151,250,122,250,147,250,184,250,156,250,93,250,100,250,159,250,150,250,83,250,64,250,110,250,164,250,184,250,155,250,112,250, +118,250,155,250,167,250,152,250,133,250,128,250,149,250,183,250,198,250,199,250,200,250,199,250,215,250,248,250,5,251,1,251, +12,251,36,251,72,251,141,251,201,251,202,251,198,251,250,251,55,252,83,252,108,252,134,252,150,252,207,252,64,253,127,253, +99,253,97,253,183,253,6,254,39,254,101,254,180,254,204,254,212,254,2,255,54,255,98,255,165,255,230,255,14,0,73,0, +142,0,164,0,187,0,24,1,119,1,142,1,159,1,224,1,19,2,44,2,103,2,178,2,207,2,221,2,21,3,91,3, +133,3,153,3,157,3,170,3,228,3,44,4,87,4,118,4,149,4,164,4,195,4,7,5,55,5,60,5,70,5,89,5, +95,5,123,5,179,5,205,5,211,5,248,5,33,6,41,6,58,6,105,6,131,6,119,6,117,6,153,6,198,6,228,6, +1,7,34,7,50,7,64,7,94,7,116,7,131,7,174,7,213,7,193,7,174,7,219,7,254,7,225,7,212,7,1,8, +44,8,61,8,70,8,52,8,1,8,226,7,237,7,254,7,240,7,204,7,178,7,178,7,182,7,158,7,105,7,54,7, +27,7,5,7,206,6,133,6,85,6,59,6,22,6,227,5,163,5,85,5,29,5,28,5,34,5,243,4,155,4,64,4, +5,4,253,3,247,3,182,3,96,3,55,3,30,3,236,2,197,2,182,2,134,2,56,2,17,2,23,2,8,2,212,1, +173,1,161,1,128,1,74,1,47,1,32,1,244,0,197,0,181,0,159,0,116,0,84,0,51,0,252,255,218,255,225,255, +205,255,124,255,43,255,17,255,7,255,207,254,130,254,94,254,75,254,17,254,206,253,182,253,158,253,87,253,9,253,221,252, +192,252,161,252,128,252,85,252,31,252,238,251,203,251,169,251,127,251,86,251,57,251,44,251,30,251,6,251,246,250,255,250, +11,251,241,250,189,250,160,250,168,250,179,250,176,250,172,250,179,250,190,250,198,250,199,250,199,250,202,250,215,250,233,250, +235,250,228,250,251,250,27,251,9,251,235,250,20,251,80,251,83,251,68,251,84,251,94,251,93,251,116,251,146,251,142,251, +117,251,103,251,119,251,163,251,207,251,215,251,179,251,143,251,157,251,212,251,246,251,252,251,2,252,2,252,2,252,33,252, +55,252,25,252,11,252,57,252,101,252,127,252,178,252,221,252,207,252,182,252,204,252,4,253,52,253,67,253,68,253,104,253, +168,253,204,253,212,253,222,253,244,253,28,254,84,254,129,254,150,254,168,254,224,254,59,255,131,255,146,255,141,255,159,255, +204,255,21,0,84,0,80,0,75,0,166,0,19,1,46,1,57,1,97,1,108,1,121,1,206,1,26,2,23,2,27,2, +81,2,127,2,164,2,224,2,14,3,33,3,80,3,139,3,153,3,161,3,216,3,250,3,219,3,227,3,60,4,124,4, +122,4,131,4,153,4,143,4,139,4,171,4,195,4,202,4,218,4,234,4,248,4,22,5,43,5,33,5,23,5,41,5, +58,5,47,5,28,5,35,5,62,5,74,5,82,5,110,5,127,5,114,5,101,5,96,5,87,5,99,5,126,5,123,5, +113,5,136,5,149,5,129,5,127,5,149,5,134,5,85,5,70,5,105,5,129,5,103,5,77,5,81,5,77,5,54,5, +53,5,60,5,36,5,253,4,212,4,160,4,129,4,118,4,71,4,4,4,232,3,222,3,191,3,167,3,146,3,88,3, +0,3,187,2,151,2,121,2,64,2,245,1,183,1,137,1,103,1,82,1,32,1,205,0,165,0,163,0,106,0,24,0, +9,0,0,0,170,255,85,255,62,255,42,255,253,254,226,254,223,254,208,254,160,254,99,254,69,254,74,254,62,254,7,254, +219,253,219,253,217,253,169,253,110,253,90,253,89,253,70,253,41,253,25,253,10,253,236,252,188,252,134,252,92,252,64,252, +38,252,19,252,3,252,210,251,147,251,117,251,103,251,69,251,41,251,13,251,208,250,155,250,151,250,141,250,93,250,55,250, +29,250,247,249,225,249,225,249,207,249,164,249,125,249,100,249,89,249,98,249,106,249,89,249,65,249,60,249,63,249,54,249, +51,249,60,249,59,249,68,249,110,249,137,249,126,249,139,249,178,249,186,249,191,249,228,249,234,249,213,249,3,250,80,250, +80,250,53,250,104,250,186,250,204,250,186,250,205,250,253,250,26,251,44,251,83,251,125,251,149,251,189,251,245,251,9,252, +9,252,37,252,69,252,86,252,132,252,205,252,250,252,11,253,37,253,77,253,132,253,193,253,234,253,6,254,43,254,80,254, +103,254,130,254,176,254,243,254,63,255,118,255,146,255,187,255,3,0,57,0,72,0,107,0,203,0,41,1,82,1,110,1, +157,1,205,1,9,2,105,2,188,2,224,2,3,3,49,3,77,3,113,3,189,3,13,4,77,4,147,4,212,4,252,4, +21,5,49,5,88,5,147,5,217,5,17,6,57,6,92,6,126,6,163,6,206,6,245,6,18,7,46,7,89,7,129,7, +135,7,125,7,151,7,210,7,240,7,224,7,212,7,237,7,20,8,36,8,38,8,47,8,49,8,37,8,33,8,30,8, +8,8,2,8,26,8,32,8,16,8,24,8,26,8,241,7,209,7,207,7,188,7,156,7,142,7,116,7,78,7,76,7, +87,7,70,7,66,7,91,7,76,7,3,7,202,6,188,6,174,6,153,6,155,6,161,6,136,6,96,6,64,6,32,6, +3,6,240,5,196,5,131,5,110,5,124,5,93,5,25,5,242,4,217,4,155,4,84,4,53,4,41,4,2,4,193,3, +136,3,98,3,64,3,25,3,235,2,173,2,97,2,30,2,237,1,188,1,124,1,49,1,243,0,202,0,162,0,112,0, +72,0,42,0,255,255,196,255,123,255,52,255,24,255,26,255,238,254,165,254,160,254,198,254,168,254,93,254,65,254,56,254, +11,254,227,253,219,253,197,253,174,253,193,253,191,253,125,253,95,253,139,253,130,253,51,253,36,253,75,253,45,253,246,252, +251,252,251,252,200,252,180,252,192,252,164,252,119,252,114,252,120,252,91,252,34,252,235,251,216,251,232,251,235,251,198,251, +167,251,172,251,171,251,122,251,58,251,35,251,35,251,9,251,226,250,222,250,243,250,246,250,227,250,220,250,235,250,240,250, +217,250,204,250,222,250,231,250,218,250,222,250,250,250,15,251,32,251,51,251,53,251,43,251,47,251,67,251,86,251,93,251, +89,251,96,251,128,251,159,251,169,251,171,251,180,251,202,251,235,251,252,251,238,251,229,251,245,251,8,252,21,252,43,252, +63,252,68,252,68,252,82,252,115,252,152,252,157,252,117,252,81,252,104,252,161,252,171,252,144,252,176,252,12,253,52,253, +18,253,1,253,25,253,46,253,57,253,77,253,109,253,160,253,213,253,233,253,242,253,26,254,64,254,59,254,53,254,102,254, +166,254,177,254,162,254,182,254,217,254,223,254,241,254,43,255,89,255,110,255,136,255,149,255,141,255,154,255,181,255,189,255, +223,255,33,0,48,0,21,0,44,0,99,0,112,0,118,0,158,0,171,0,146,0,163,0,217,0,220,0,192,0,229,0, +45,1,66,1,54,1,53,1,32,1,10,1,54,1,125,1,135,1,122,1,152,1,185,1,167,1,137,1,155,1,211,1, +240,1,214,1,185,1,189,1,202,1,218,1,241,1,236,1,219,1,247,1,29,2,4,2,226,1,244,1,252,1,224,1, +237,1,25,2,5,2,205,1,208,1,242,1,229,1,205,1,212,1,210,1,196,1,218,1,228,1,171,1,130,1,159,1, +168,1,139,1,157,1,195,1,164,1,120,1,137,1,162,1,139,1,110,1,111,1,120,1,118,1,103,1,80,1,69,1, +79,1,87,1,64,1,27,1,12,1,9,1,250,0,250,0,13,1,248,0,194,0,195,0,239,0,233,0,181,0,159,0, +174,0,183,0,170,0,153,0,143,0,133,0,120,0,112,0,110,0,109,0,115,0,118,0,100,0,76,0,76,0,81,0, +74,0,71,0,73,0,68,0,65,0,76,0,80,0,61,0,43,0,53,0,73,0,72,0,66,0,80,0,76,0,34,0, +17,0,44,0,54,0,41,0,50,0,70,0,71,0,61,0,44,0,21,0,20,0,41,0,53,0,51,0,46,0,44,0, +60,0,92,0,95,0,62,0,40,0,47,0,48,0,41,0,58,0,95,0,112,0,109,0,120,0,132,0,112,0,87,0, +100,0,131,0,149,0,159,0,178,0,205,0,220,0,205,0,181,0,179,0,188,0,209,0,253,0,27,1,11,1,3,1, +22,1,20,1,9,1,23,1,17,1,242,0,0,1,36,1,14,1,241,0,23,1,53,1,17,1,249,0,25,1,30,1, +246,0,245,0,25,1,10,1,215,0,218,0,10,1,33,1,26,1,13,1,2,1,11,1,32,1,24,1,250,0,239,0, +251,0,18,1,43,1,47,1,32,1,28,1,30,1,21,1,25,1,38,1,19,1,246,0,255,0,24,1,34,1,42,1, +54,1,36,1,247,0,220,0,223,0,223,0,207,0,197,0,186,0,165,0,166,0,178,0,141,0,86,0,87,0,98,0, +48,0,247,255,232,255,208,255,169,255,173,255,198,255,181,255,131,255,93,255,68,255,49,255,40,255,33,255,16,255,248,254, +215,254,171,254,149,254,168,254,171,254,123,254,92,254,102,254,73,254,0,254,233,253,253,253,243,253,224,253,230,253,221,253, +192,253,180,253,171,253,142,253,120,253,113,253,95,253,72,253,61,253,50,253,28,253,255,252,230,252,212,252,188,252,151,252, +122,252,113,252,107,252,89,252,72,252,62,252,38,252,248,251,209,251,207,251,216,251,214,251,212,251,201,251,156,251,102,251, +82,251,94,251,113,251,122,251,112,251,94,251,83,251,70,251,54,251,38,251,16,251,5,251,35,251,64,251,49,251,43,251, +75,251,76,251,39,251,41,251,81,251,102,251,115,251,142,251,158,251,159,251,172,251,195,251,214,251,238,251,5,252,5,252, +0,252,30,252,79,252,104,252,117,252,140,252,152,252,160,252,202,252,246,252,255,252,19,253,66,253,85,253,78,253,91,253, +120,253,154,253,212,253,4,254,252,253,236,253,7,254,50,254,83,254,119,254,153,254,170,254,187,254,217,254,233,254,236,254, +12,255,58,255,69,255,82,255,159,255,216,255,179,255,165,255,5,0,83,0,71,0,84,0,159,0,191,0,176,0,199,0, +253,0,27,1,43,1,78,1,122,1,158,1,191,1,217,1,238,1,20,2,79,2,119,2,125,2,136,2,172,2,212,2, +243,2,9,3,29,3,74,3,130,3,151,3,146,3,163,3,194,3,217,3,246,3,20,4,33,4,46,4,60,4,66,4, +83,4,115,4,128,4,133,4,158,4,171,4,160,4,176,4,219,4,235,4,225,4,233,4,2,5,16,5,15,5,8,5, +11,5,37,5,65,5,59,5,36,5,44,5,69,5,55,5,26,5,45,5,78,5,70,5,53,5,62,5,73,5,61,5, +25,5,244,4,2,5,58,5,64,5,17,5,8,5,36,5,30,5,11,5,23,5,21,5,226,4,184,4,193,4,211,4, +192,4,158,4,152,4,156,4,134,4,107,4,102,4,90,4,51,4,15,4,8,4,13,4,3,4,233,3,208,3,186,3, +160,3,136,3,123,3,103,3,70,3,48,3,42,3,22,3,235,2,190,2,171,2,177,2,167,2,123,2,78,2,43,2, +254,1,224,1,235,1,227,1,164,1,107,1,96,1,92,1,69,1,43,1,15,1,227,0,186,0,178,0,178,0,138,0, +82,0,63,0,57,0,25,0,254,255,240,255,200,255,154,255,149,255,146,255,100,255,41,255,8,255,4,255,21,255,30,255, +249,254,191,254,165,254,160,254,140,254,119,254,117,254,98,254,44,254,10,254,27,254,42,254,19,254,244,253,216,253,192,253, +190,253,190,253,159,253,125,253,125,253,125,253,100,253,73,253,53,253,45,253,51,253,42,253,7,253,252,252,10,253,253,252, +226,252,221,252,216,252,199,252,200,252,209,252,188,252,157,252,154,252,169,252,177,252,175,252,173,252,163,252,146,252,133,252, +134,252,150,252,166,252,168,252,163,252,175,252,189,252,178,252,167,252,178,252,176,252,173,252,219,252,2,253,228,252,210,252, +3,253,29,253,3,253,17,253,62,253,56,253,32,253,67,253,120,253,124,253,106,253,116,253,135,253,136,253,148,253,185,253, +207,253,202,253,211,253,242,253,2,254,3,254,7,254,16,254,32,254,57,254,72,254,83,254,105,254,121,254,123,254,138,254, +179,254,218,254,230,254,224,254,228,254,249,254,3,255,5,255,28,255,71,255,99,255,108,255,119,255,139,255,167,255,201,255, +227,255,233,255,223,255,228,255,23,0,78,0,81,0,66,0,85,0,108,0,113,0,142,0,192,0,216,0,215,0,217,0, +224,0,248,0,37,1,70,1,68,1,55,1,65,1,105,1,141,1,136,1,107,1,107,1,143,1,174,1,182,1,191,1, +213,1,225,1,214,1,213,1,240,1,10,2,14,2,8,2,252,1,242,1,254,1,20,2,25,2,22,2,29,2,46,2, +56,2,51,2,39,2,34,2,22,2,4,2,20,2,48,2,25,2,253,1,37,2,73,2,36,2,5,2,26,2,35,2, +22,2,33,2,37,2,6,2,253,1,30,2,38,2,10,2,10,2,42,2,46,2,23,2,18,2,20,2,4,2,242,1, +237,1,239,1,249,1,250,1,232,1,236,1,7,2,239,1,172,1,170,1,222,1,221,1,173,1,155,1,163,1,161,1, +152,1,135,1,107,1,95,1,101,1,92,1,63,1,50,1,62,1,66,1,52,1,41,1,21,1,229,0,199,0,224,0, +243,0,216,0,199,0,211,0,204,0,179,0,182,0,197,0,188,0,162,0,149,0,153,0,163,0,168,0,169,0,170,0, +171,0,178,0,186,0,181,0,167,0,164,0,171,0,172,0,168,0,177,0,209,0,234,0,220,0,196,0,201,0,209,0, +198,0,215,0,255,0,1,1,230,0,226,0,229,0,217,0,218,0,227,0,222,0,217,0,225,0,222,0,202,0,199,0, +234,0,8,1,244,0,206,0,209,0,229,0,212,0,191,0,207,0,211,0,177,0,162,0,191,0,207,0,180,0,157,0, +159,0,165,0,172,0,190,0,190,0,165,0,166,0,185,0,160,0,120,0,141,0,189,0,196,0,177,0,164,0,154,0, +155,0,156,0,133,0,124,0,157,0,185,0,175,0,163,0,157,0,149,0,156,0,170,0,157,0,132,0,139,0,163,0, +164,0,147,0,144,0,151,0,147,0,143,0,158,0,163,0,133,0,105,0,111,0,125,0,119,0,105,0,100,0,96,0, +78,0,62,0,70,0,77,0,55,0,36,0,50,0,57,0,43,0,32,0,22,0,13,0,32,0,54,0,29,0,244,255, +237,255,236,255,228,255,247,255,26,0,23,0,241,255,225,255,241,255,246,255,228,255,224,255,237,255,234,255,225,255,238,255, +249,255,232,255,213,255,215,255,227,255,240,255,238,255,215,255,206,255,236,255,4,0,248,255,228,255,228,255,236,255,234,255, +224,255,214,255,208,255,215,255,234,255,239,255,214,255,197,255,212,255,225,255,220,255,214,255,206,255,203,255,223,255,230,255, +197,255,177,255,197,255,206,255,194,255,204,255,225,255,214,255,192,255,190,255,192,255,178,255,168,255,186,255,209,255,192,255, +168,255,186,255,210,255,189,255,164,255,177,255,185,255,165,255,153,255,160,255,156,255,151,255,172,255,191,255,170,255,146,255, +163,255,186,255,173,255,158,255,164,255,165,255,160,255,165,255,161,255,149,255,158,255,171,255,166,255,167,255,173,255,164,255, +159,255,174,255,175,255,160,255,159,255,170,255,176,255,177,255,179,255,183,255,191,255,196,255,185,255,162,255,156,255,181,255, +213,255,209,255,181,255,174,255,193,255,198,255,183,255,171,255,173,255,186,255,194,255,187,255,183,255,193,255,205,255,209,255, +201,255,181,255,164,255,169,255,190,255,205,255,198,255,176,255,168,255,179,255,181,255,172,255,175,255,183,255,185,255,193,255, +200,255,189,255,182,255,190,255,188,255,183,255,195,255,207,255,201,255,191,255,189,255,198,255,216,255,225,255,217,255,218,255, +226,255,222,255,214,255,223,255,240,255,235,255,217,255,219,255,246,255,0,0,236,255,224,255,234,255,245,255,248,255,251,255, +253,255,255,255,255,255,246,255,238,255,240,255,248,255,255,255,250,255,229,255,218,255,236,255,252,255,254,255,3,0,0,0, +225,255,199,255,205,255,226,255,244,255,248,255,233,255,223,255,229,255,223,255,211,255,229,255,249,255,231,255,214,255,231,255, +244,255,232,255,226,255,233,255,230,255,225,255,238,255,249,255,236,255,228,255,242,255,253,255,250,255,255,255,3,0,253,255, +0,0,8,0,2,0,254,255,6,0,3,0,255,255,18,0,29,0,15,0,10,0,18,0,15,0,9,0,12,0,4,0, +247,255,2,0,28,0,36,0,17,0,254,255,0,0,5,0,2,0,9,0,29,0,34,0,19,0,11,0,14,0,19,0, +23,0,22,0,18,0,27,0,43,0,43,0,30,0,25,0,33,0,45,0,55,0,57,0,52,0,46,0,52,0,64,0, +59,0,48,0,64,0,86,0,72,0,50,0,61,0,83,0,84,0,79,0,74,0,72,0,85,0,96,0,82,0,70,0, +84,0,95,0,82,0,75,0,88,0,100,0,93,0,82,0,85,0,90,0,82,0,75,0,82,0,90,0,94,0,93,0, +79,0,65,0,73,0,87,0,82,0,71,0,67,0,59,0,48,0,50,0,60,0,61,0,55,0,52,0,53,0,48,0, +44,0,48,0,45,0,32,0,36,0,51,0,41,0,17,0,19,0,35,0,37,0,28,0,22,0,29,0,47,0,50,0, +33,0,29,0,35,0,22,0,10,0,28,0,52,0,50,0,39,0,38,0,42,0,39,0,33,0,34,0,38,0,34,0, +28,0,31,0,31,0,23,0,24,0,38,0,40,0,23,0,7,0,0,0,1,0,5,0,10,0,9,0,0,0,251,255, +251,255,243,255,237,255,249,255,253,255,226,255,201,255,199,255,194,255,184,255,197,255,217,255,214,255,198,255,185,255,184,255, +196,255,204,255,193,255,182,255,179,255,169,255,158,255,163,255,175,255,182,255,181,255,173,255,169,255,177,255,184,255,175,255, +166,255,168,255,171,255,171,255,173,255,173,255,171,255,175,255,184,255,186,255,174,255,165,255,167,255,166,255,160,255,161,255, +164,255,165,255,163,255,152,255,139,255,146,255,158,255,138,255,116,255,128,255,140,255,129,255,129,255,138,255,124,255,111,255, +124,255,129,255,108,255,97,255,105,255,107,255,95,255,93,255,105,255,105,255,94,255,96,255,104,255,96,255,82,255,89,255, +104,255,105,255,95,255,92,255,96,255,102,255,103,255,102,255,104,255,108,255,110,255,107,255,100,255,102,255,112,255,111,255, +109,255,124,255,134,255,117,255,102,255,112,255,124,255,127,255,127,255,117,255,111,255,128,255,139,255,120,255,110,255,128,255, +139,255,127,255,117,255,118,255,123,255,128,255,127,255,118,255,116,255,129,255,140,255,133,255,119,255,118,255,128,255,131,255, +126,255,120,255,116,255,123,255,138,255,137,255,126,255,129,255,139,255,136,255,132,255,146,255,159,255,152,255,139,255,140,255, +152,255,159,255,162,255,172,255,179,255,178,255,182,255,188,255,182,255,176,255,182,255,188,255,188,255,192,255,194,255,193,255, +204,255,218,255,215,255,209,255,214,255,215,255,212,255,223,255,239,255,239,255,231,255,234,255,244,255,251,255,255,255,4,0, +0,0,247,255,252,255,14,0,20,0,15,0,17,0,22,0,27,0,38,0,46,0,38,0,25,0,25,0,36,0,48,0, +55,0,55,0,58,0,64,0,61,0,53,0,56,0,66,0,68,0,62,0,61,0,67,0,68,0,62,0,62,0,72,0, +75,0,68,0,67,0,67,0,64,0,71,0,83,0,78,0,65,0,67,0,77,0,79,0,77,0,78,0,85,0,92,0, +90,0,82,0,80,0,86,0,87,0,82,0,82,0,93,0,101,0,98,0,89,0,87,0,90,0,97,0,105,0,106,0, +104,0,106,0,103,0,92,0,93,0,107,0,107,0,99,0,100,0,110,0,113,0,110,0,101,0,93,0,94,0,98,0, +102,0,104,0,99,0,88,0,88,0,93,0,86,0,74,0,74,0,77,0,79,0,83,0,82,0,75,0,80,0,87,0, +71,0,49,0,54,0,73,0,76,0,67,0,63,0,59,0,55,0,55,0,53,0,45,0,44,0,50,0,47,0,44,0, +50,0,48,0,37,0,41,0,54,0,47,0,34,0,35,0,41,0,43,0,44,0,39,0,33,0,39,0,42,0,28,0, +21,0,30,0,33,0,26,0,27,0,31,0,23,0,16,0,22,0,27,0,18,0,11,0,18,0,22,0,13,0,10,0, +19,0,20,0,10,0,6,0,12,0,13,0,1,0,248,255,255,255,6,0,254,255,245,255,244,255,239,255,231,255,235,255, +243,255,239,255,232,255,233,255,231,255,226,255,226,255,222,255,217,255,222,255,227,255,220,255,213,255,214,255,212,255,209,255, +215,255,220,255,211,255,206,255,216,255,221,255,209,255,200,255,206,255,212,255,212,255,213,255,209,255,203,255,210,255,224,255, +224,255,215,255,217,255,223,255,220,255,218,255,222,255,223,255,220,255,225,255,237,255,242,255,234,255,226,255,226,255,225,255, +227,255,234,255,238,255,236,255,237,255,238,255,234,255,234,255,240,255,240,255,236,255,239,255,242,255,239,255,237,255,242,255, +245,255,243,255,244,255,249,255,250,255,245,255,244,255,252,255,4,0,1,0,253,255,254,255,254,255,254,255,6,0,14,0, +9,0,3,0,8,0,17,0,15,0,13,0,17,0,22,0,25,0,28,0,29,0,25,0,25,0,31,0,38,0,40,0, +37,0,33,0,38,0,51,0,54,0,41,0,35,0,44,0,49,0,42,0,39,0,48,0,55,0,50,0,38,0,34,0, +42,0,51,0,52,0,44,0,35,0,34,0,42,0,47,0,42,0,39,0,40,0,39,0,39,0,44,0,47,0,41,0, +37,0,41,0,43,0,40,0,39,0,43,0,45,0,44,0,43,0,43,0,45,0,51,0,55,0,52,0,49,0,52,0, +53,0,50,0,49,0,55,0,59,0,55,0,48,0,46,0,50,0,54,0,53,0,54,0,57,0,56,0,52,0,50,0, +50,0,49,0,49,0,50,0,45,0,39,0,42,0,48,0,48,0,43,0,42,0,43,0,40,0,38,0,41,0,43,0, +37,0,33,0,37,0,44,0,46,0,44,0,42,0,42,0,42,0,46,0,49,0,42,0,37,0,42,0,49,0,48,0, +48,0,53,0,51,0,49,0,56,0,53,0,39,0,43,0,62,0,64,0,50,0,50,0,59,0,56,0,50,0,52,0, +52,0,49,0,52,0,57,0,56,0,53,0,49,0,47,0,52,0,55,0,47,0,41,0,45,0,50,0,47,0,44,0, +42,0,38,0,38,0,44,0,43,0,37,0,37,0,40,0,38,0,36,0,37,0,36,0,34,0,36,0,40,0,38,0, +35,0,35,0,35,0,33,0,32,0,32,0,31,0,29,0,32,0,36,0,33,0,26,0,24,0,28,0,31,0,30,0, +27,0,25,0,26,0,26,0,25,0,24,0,25,0,25,0,22,0,18,0,15,0,17,0,22,0,22,0,18,0,15,0, +15,0,15,0,15,0,14,0,10,0,7,0,8,0,10,0,11,0,12,0,13,0,9,0,3,0,1,0,5,0,7,0, +5,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,254,255,251,255,249,255,251,255,0,0,5,0,1,0, +251,255,250,255,253,255,253,255,253,255,255,255,255,255,251,255,248,255,249,255,253,255,255,255,255,255,253,255,253,255,1,0, +3,0,0,0,252,255,254,255,1,0,1,0,1,0,1,0,255,255,1,0,4,0,2,0,254,255,1,0,5,0,3,0, +2,0,4,0,1,0,253,255,0,0,5,0,2,0,254,255,0,0,2,0,4,0,5,0,2,0,254,255,255,255,2,0, +2,0,1,0,3,0,3,0,3,0,3,0,2,0,255,255,255,255,3,0,3,0,0,0,0,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,2,0,5,0,4,0,0,0,0,0,3,0,255,255,253,255,4,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpig2.pcm b/src/client/sound/data/zpig2.pcm new file mode 100755 index 0000000..c8ed8a1 --- /dev/null +++ b/src/client/sound/data/zpig2.pcm @@ -0,0 +1,4638 @@ +unsigned char PCM_zpig2[148338] = { +1,0,0,0,2,0,0,0,68,172,0,0,177,33,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255, +0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,1,0,2,0,2,0,1,0,0,0, +1,0,2,0,0,0,253,255,254,255,0,0,255,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255,252,255,251,255, +252,255,253,255,252,255,251,255,252,255,254,255,253,255,253,255,254,255,254,255,254,255,253,255,252,255,251,255,252,255,254,255, +254,255,254,255,255,255,253,255,253,255,255,255,1,0,255,255,252,255,251,255,251,255,254,255,1,0,254,255,253,255,1,0, +4,0,2,0,255,255,253,255,251,255,250,255,253,255,255,255,0,0,2,0,4,0,4,0,2,0,0,0,252,255,249,255, +252,255,1,0,0,0,254,255,255,255,3,0,5,0,3,0,255,255,252,255,255,255,3,0,2,0,255,255,0,0,1,0, +1,0,5,0,6,0,4,0,2,0,3,0,3,0,2,0,3,0,3,0,2,0,6,0,9,0,7,0,5,0,7,0, +10,0,7,0,0,0,251,255,254,255,4,0,5,0,2,0,2,0,255,255,254,255,3,0,5,0,253,255,247,255,251,255, +255,255,251,255,247,255,248,255,0,0,5,0,3,0,255,255,255,255,0,0,254,255,254,255,255,255,252,255,250,255,254,255, +0,0,255,255,1,0,3,0,0,0,251,255,251,255,252,255,252,255,254,255,1,0,2,0,2,0,3,0,4,0,2,0, +254,255,255,255,2,0,1,0,0,0,5,0,9,0,6,0,5,0,7,0,5,0,0,0,1,0,255,255,251,255,253,255, +5,0,8,0,8,0,5,0,0,0,0,0,4,0,3,0,254,255,253,255,1,0,2,0,5,0,7,0,6,0,6,0, +7,0,1,0,251,255,255,255,8,0,7,0,4,0,4,0,5,0,6,0,6,0,6,0,5,0,5,0,4,0,3,0, +2,0,2,0,3,0,7,0,9,0,4,0,1,0,5,0,8,0,3,0,255,255,1,0,6,0,7,0,8,0,7,0, +2,0,255,255,3,0,9,0,5,0,255,255,2,0,7,0,6,0,4,0,7,0,10,0,7,0,5,0,6,0,4,0, +255,255,254,255,1,0,0,0,255,255,2,0,4,0,2,0,2,0,5,0,0,0,251,255,0,0,3,0,249,255,246,255, +0,0,6,0,2,0,3,0,7,0,4,0,255,255,1,0,4,0,2,0,255,255,0,0,8,0,15,0,14,0,7,0, +3,0,4,0,8,0,11,0,6,0,255,255,254,255,5,0,8,0,8,0,8,0,6,0,3,0,2,0,4,0,4,0, +3,0,2,0,4,0,6,0,8,0,5,0,4,0,4,0,3,0,255,255,252,255,253,255,4,0,9,0,7,0,2,0, +0,0,255,255,1,0,5,0,3,0,250,255,252,255,7,0,9,0,2,0,2,0,5,0,2,0,2,0,4,0,255,255, +249,255,255,255,6,0,4,0,0,0,1,0,2,0,2,0,2,0,255,255,251,255,252,255,1,0,2,0,251,255,246,255, +251,255,4,0,4,0,1,0,2,0,0,0,251,255,1,0,6,0,255,255,248,255,254,255,2,0,253,255,255,255,6,0, +5,0,1,0,5,0,7,0,0,0,250,255,252,255,1,0,3,0,4,0,3,0,255,255,254,255,2,0,6,0,6,0, +1,0,255,255,2,0,4,0,1,0,0,0,2,0,4,0,4,0,1,0,252,255,251,255,0,0,2,0,251,255,246,255, +252,255,5,0,7,0,3,0,253,255,249,255,250,255,1,0,2,0,252,255,254,255,4,0,4,0,3,0,7,0,6,0, +0,0,0,0,7,0,5,0,254,255,1,0,5,0,1,0,252,255,254,255,3,0,2,0,254,255,250,255,250,255,252,255, +1,0,3,0,255,255,252,255,254,255,255,255,255,255,4,0,10,0,6,0,255,255,2,0,4,0,255,255,254,255,2,0, +2,0,255,255,3,0,7,0,2,0,250,255,247,255,250,255,251,255,250,255,249,255,249,255,252,255,255,255,255,255,254,255, +254,255,1,0,3,0,1,0,1,0,6,0,6,0,4,0,7,0,11,0,11,0,9,0,7,0,2,0,255,255,5,0, +9,0,6,0,3,0,3,0,2,0,1,0,0,0,255,255,252,255,250,255,248,255,250,255,254,255,253,255,253,255,1,0, +0,0,250,255,248,255,248,255,243,255,244,255,250,255,247,255,241,255,248,255,252,255,242,255,235,255,237,255,236,255,231,255, +234,255,236,255,231,255,229,255,235,255,239,255,236,255,233,255,230,255,227,255,225,255,227,255,229,255,229,255,230,255,232,255, +229,255,225,255,227,255,234,255,236,255,231,255,227,255,229,255,231,255,233,255,235,255,233,255,228,255,230,255,239,255,243,255, +238,255,231,255,231,255,236,255,238,255,238,255,237,255,236,255,233,255,233,255,236,255,237,255,233,255,228,255,232,255,239,255, +237,255,232,255,234,255,241,255,242,255,241,255,246,255,248,255,241,255,237,255,242,255,248,255,248,255,245,255,247,255,252,255, +255,255,253,255,249,255,247,255,248,255,250,255,249,255,246,255,246,255,0,0,5,0,253,255,247,255,252,255,2,0,255,255, +251,255,250,255,249,255,250,255,1,0,2,0,251,255,248,255,253,255,2,0,255,255,250,255,247,255,247,255,248,255,251,255, +250,255,245,255,245,255,251,255,250,255,243,255,243,255,248,255,248,255,247,255,247,255,244,255,239,255,242,255,245,255,243,255, +241,255,239,255,235,255,237,255,243,255,243,255,238,255,233,255,228,255,226,255,232,255,236,255,233,255,233,255,236,255,237,255, +235,255,235,255,233,255,230,255,232,255,236,255,237,255,236,255,237,255,241,255,247,255,248,255,241,255,239,255,244,255,244,255, +240,255,240,255,242,255,243,255,248,255,250,255,244,255,240,255,244,255,248,255,245,255,242,255,241,255,243,255,245,255,246,255, +244,255,246,255,249,255,249,255,249,255,251,255,251,255,251,255,254,255,255,255,252,255,252,255,253,255,250,255,249,255,254,255, +1,0,253,255,252,255,1,0,3,0,1,0,0,0,255,255,254,255,255,255,3,0,4,0,3,0,7,0,12,0,9,0, +4,0,5,0,10,0,11,0,11,0,13,0,11,0,7,0,5,0,7,0,11,0,14,0,9,0,1,0,0,0,3,0, +3,0,255,255,252,255,249,255,247,255,250,255,252,255,248,255,242,255,241,255,243,255,242,255,237,255,233,255,233,255,234,255, +231,255,229,255,230,255,228,255,224,255,222,255,224,255,225,255,220,255,214,255,214,255,215,255,210,255,204,255,207,255,214,255, +214,255,209,255,205,255,202,255,199,255,196,255,195,255,197,255,201,255,202,255,197,255,193,255,192,255,194,255,195,255,193,255, +189,255,191,255,196,255,197,255,195,255,196,255,195,255,192,255,192,255,194,255,194,255,193,255,194,255,195,255,198,255,203,255, +207,255,208,255,204,255,194,255,190,255,199,255,204,255,197,255,193,255,201,255,207,255,208,255,208,255,204,255,199,255,204,255, +211,255,207,255,202,255,205,255,211,255,217,255,221,255,219,255,217,255,220,255,221,255,218,255,221,255,226,255,222,255,216,255, +221,255,229,255,228,255,225,255,225,255,224,255,222,255,220,255,220,255,223,255,226,255,224,255,222,255,226,255,232,255,233,255, +229,255,229,255,235,255,238,255,235,255,232,255,235,255,238,255,237,255,237,255,239,255,240,255,240,255,241,255,237,255,232,255, +234,255,238,255,235,255,230,255,229,255,232,255,233,255,229,255,226,255,226,255,228,255,224,255,217,255,213,255,216,255,223,255, +224,255,218,255,214,255,216,255,219,255,216,255,212,255,208,255,202,255,198,255,199,255,204,255,207,255,205,255,200,255,196,255, +197,255,197,255,195,255,192,255,192,255,192,255,193,255,195,255,195,255,194,255,194,255,194,255,195,255,198,255,199,255,196,255, +196,255,201,255,205,255,205,255,205,255,205,255,205,255,205,255,209,255,210,255,206,255,204,255,206,255,208,255,208,255,208,255, +207,255,205,255,208,255,214,255,211,255,207,255,213,255,217,255,210,255,205,255,208,255,210,255,211,255,216,255,220,255,217,255, +215,255,214,255,211,255,210,255,211,255,210,255,212,255,218,255,218,255,210,255,207,255,208,255,209,255,214,255,217,255,212,255, +205,255,206,255,211,255,214,255,217,255,222,255,226,255,225,255,221,255,220,255,226,255,230,255,228,255,228,255,233,255,235,255, +238,255,247,255,247,255,236,255,231,255,234,255,232,255,228,255,231,255,234,255,232,255,231,255,236,255,239,255,233,255,222,255, +219,255,227,255,236,255,235,255,232,255,229,255,224,255,227,255,237,255,235,255,223,255,221,255,234,255,237,255,226,255,218,255, +219,255,221,255,217,255,213,255,210,255,208,255,206,255,210,255,213,255,210,255,204,255,203,255,207,255,210,255,209,255,203,255, +202,255,208,255,212,255,208,255,206,255,214,255,223,255,226,255,225,255,224,255,224,255,224,255,222,255,220,255,223,255,227,255, +227,255,229,255,235,255,234,255,227,255,226,255,230,255,227,255,221,255,222,255,224,255,219,255,216,255,219,255,219,255,214,255, +213,255,220,255,221,255,212,255,204,255,204,255,208,255,211,255,209,255,204,255,204,255,213,255,224,255,224,255,212,255,199,255, +196,255,202,255,210,255,214,255,210,255,205,255,207,255,220,255,225,255,214,255,203,255,208,255,218,255,216,255,213,255,216,255, +221,255,220,255,217,255,219,255,222,255,222,255,219,255,219,255,223,255,222,255,220,255,223,255,225,255,219,255,216,255,221,255, +221,255,217,255,216,255,214,255,209,255,211,255,219,255,223,255,221,255,216,255,213,255,214,255,216,255,211,255,206,255,211,255, +218,255,218,255,218,255,217,255,213,255,211,255,214,255,212,255,204,255,204,255,210,255,212,255,216,255,222,255,217,255,205,255, +205,255,213,255,214,255,209,255,212,255,222,255,225,255,218,255,217,255,223,255,227,255,227,255,234,255,241,255,237,255,230,255, +233,255,241,255,245,255,242,255,237,255,238,255,244,255,247,255,244,255,243,255,241,255,234,255,230,255,232,255,234,255,233,255, +235,255,236,255,232,255,228,255,226,255,224,255,221,255,219,255,221,255,227,255,229,255,224,255,219,255,216,255,213,255,216,255, +225,255,227,255,216,255,208,255,211,255,214,255,213,255,213,255,211,255,209,255,211,255,216,255,214,255,205,255,201,255,207,255, +208,255,200,255,194,255,201,255,211,255,209,255,200,255,195,255,193,255,192,255,193,255,193,255,192,255,193,255,196,255,192,255, +185,255,183,255,183,255,179,255,177,255,183,255,187,255,183,255,180,255,183,255,182,255,179,255,181,255,181,255,176,255,176,255, +182,255,182,255,179,255,181,255,184,255,181,255,178,255,176,255,174,255,174,255,176,255,172,255,168,255,169,255,169,255,165,255, +166,255,169,255,171,255,179,255,189,255,190,255,182,255,178,255,184,255,193,255,201,255,202,255,198,255,199,255,208,255,220,255, +224,255,217,255,210,255,218,255,234,255,233,255,218,255,213,255,220,255,225,255,231,255,236,255,234,255,228,255,230,255,236,255, +233,255,226,255,227,255,236,255,241,255,239,255,240,255,248,255,251,255,246,255,248,255,251,255,243,255,236,255,242,255,249,255, +245,255,241,255,244,255,244,255,239,255,236,255,236,255,234,255,233,255,235,255,236,255,233,255,231,255,233,255,236,255,235,255, +230,255,228,255,229,255,234,255,240,255,238,255,225,255,221,255,232,255,239,255,231,255,218,255,215,255,220,255,223,255,219,255, +214,255,214,255,213,255,210,255,215,255,219,255,208,255,192,255,195,255,208,255,208,255,199,255,195,255,199,255,205,255,211,255, +207,255,196,255,191,255,195,255,198,255,196,255,190,255,184,255,184,255,188,255,187,255,182,255,180,255,183,255,184,255,183,255, +183,255,181,255,176,255,173,255,175,255,179,255,181,255,183,255,187,255,189,255,186,255,181,255,178,255,183,255,190,255,190,255, +185,255,186,255,196,255,205,255,204,255,196,255,193,255,202,255,212,255,215,255,215,255,217,255,218,255,218,255,221,255,222,255, +219,255,219,255,227,255,232,255,228,255,222,255,217,255,218,255,223,255,227,255,224,255,219,255,216,255,214,255,218,255,226,255, +227,255,222,255,221,255,225,255,228,255,228,255,222,255,216,255,221,255,228,255,228,255,227,255,229,255,228,255,228,255,234,255, +234,255,220,255,215,255,225,255,227,255,219,255,221,255,235,255,241,255,233,255,222,255,217,255,219,255,220,255,218,255,219,255, +224,255,228,255,229,255,228,255,229,255,228,255,222,255,217,255,218,255,219,255,211,255,208,255,217,255,221,255,216,255,216,255, +222,255,221,255,216,255,213,255,205,255,194,255,195,255,207,255,211,255,205,255,204,255,208,255,208,255,200,255,196,255,198,255, +198,255,194,255,193,255,193,255,186,255,182,255,189,255,196,255,193,255,194,255,198,255,189,255,176,255,181,255,193,255,192,255, +186,255,189,255,196,255,198,255,199,255,200,255,197,255,193,255,194,255,195,255,191,255,186,255,189,255,195,255,195,255,193,255, +196,255,197,255,189,255,180,255,182,255,190,255,193,255,191,255,183,255,176,255,178,255,185,255,188,255,187,255,188,255,187,255, +183,255,185,255,191,255,188,255,182,255,187,255,192,255,187,255,182,255,182,255,181,255,180,255,188,255,194,255,187,255,183,255, +191,255,197,255,194,255,191,255,190,255,188,255,192,255,202,255,204,255,198,255,200,255,213,255,221,255,216,255,212,255,215,255, +220,255,221,255,225,255,233,255,234,255,226,255,225,255,231,255,233,255,234,255,239,255,240,255,233,255,234,255,243,255,242,255, +237,255,238,255,241,255,238,255,239,255,248,255,254,255,254,255,254,255,1,0,4,0,5,0,1,0,248,255,243,255,253,255, +13,0,13,0,253,255,248,255,3,0,8,0,2,0,1,0,254,255,241,255,234,255,244,255,254,255,255,255,253,255,251,255, +250,255,0,0,8,0,6,0,250,255,248,255,6,0,15,0,5,0,241,255,237,255,249,255,2,0,2,0,255,255,252,255, +250,255,245,255,237,255,236,255,248,255,0,0,247,255,240,255,242,255,242,255,239,255,245,255,250,255,245,255,239,255,238,255, +233,255,228,255,227,255,227,255,223,255,224,255,228,255,228,255,223,255,220,255,222,255,224,255,218,255,209,255,210,255,218,255, +218,255,217,255,223,255,228,255,225,255,226,255,232,255,229,255,222,255,226,255,235,255,235,255,233,255,236,255,239,255,239,255, +243,255,248,255,247,255,241,255,238,255,240,255,246,255,250,255,245,255,233,255,230,255,240,255,250,255,248,255,240,255,238,255, +244,255,251,255,250,255,242,255,237,255,244,255,252,255,249,255,238,255,234,255,237,255,236,255,231,255,233,255,238,255,234,255, +225,255,225,255,230,255,231,255,227,255,223,255,214,255,205,255,205,255,210,255,211,255,214,255,220,255,219,255,210,255,204,255, +206,255,209,255,207,255,200,255,201,255,212,255,222,255,221,255,216,255,215,255,215,255,213,255,210,255,207,255,206,255,210,255, +211,255,212,255,224,255,236,255,234,255,224,255,223,255,227,255,225,255,219,255,218,255,220,255,222,255,224,255,230,255,237,255, +241,255,241,255,234,255,222,255,218,255,228,255,237,255,234,255,231,255,239,255,247,255,251,255,249,255,239,255,227,255,226,255, +232,255,231,255,231,255,236,255,237,255,234,255,240,255,249,255,242,255,224,255,214,255,222,255,236,255,238,255,229,255,228,255, +235,255,238,255,238,255,242,255,241,255,234,255,232,255,237,255,234,255,228,255,229,255,233,255,232,255,234,255,241,255,243,255, +237,255,225,255,221,255,232,255,245,255,247,255,242,255,242,255,246,255,247,255,247,255,246,255,244,255,241,255,235,255,232,255, +237,255,243,255,241,255,236,255,239,255,241,255,238,255,234,255,233,255,235,255,239,255,240,255,239,255,239,255,241,255,241,255, +241,255,247,255,249,255,237,255,227,255,234,255,245,255,241,255,235,255,241,255,246,255,240,255,230,255,222,255,211,255,202,255, +207,255,220,255,224,255,217,255,209,255,208,255,213,255,215,255,209,255,203,255,203,255,204,255,202,255,207,255,218,255,224,255, +221,255,216,255,218,255,223,255,218,255,205,255,197,255,198,255,203,255,209,255,214,255,207,255,192,255,192,255,204,255,204,255, +185,255,172,255,176,255,178,255,171,255,170,255,175,255,171,255,162,255,166,255,179,255,176,255,156,255,143,255,142,255,146,255, +151,255,154,255,148,255,139,255,137,255,137,255,133,255,132,255,136,255,136,255,134,255,139,255,146,255,144,255,130,255,118,255, +123,255,136,255,143,255,147,255,154,255,151,255,137,255,129,255,132,255,137,255,140,255,146,255,153,255,158,255,163,255,166,255, +162,255,155,255,154,255,169,255,190,255,192,255,176,255,174,255,190,255,197,255,194,255,199,255,210,255,212,255,209,255,208,255, +210,255,213,255,218,255,222,255,229,255,237,255,237,255,231,255,234,255,244,255,250,255,247,255,243,255,242,255,249,255,1,0, +254,255,250,255,6,0,17,0,10,0,250,255,245,255,247,255,248,255,255,255,6,0,5,0,2,0,10,0,22,0,19,0, +4,0,253,255,1,0,4,0,5,0,12,0,18,0,15,0,13,0,19,0,23,0,17,0,10,0,11,0,14,0,12,0, +5,0,253,255,249,255,252,255,4,0,8,0,5,0,7,0,14,0,11,0,252,255,243,255,245,255,247,255,246,255,246,255, +245,255,241,255,239,255,243,255,244,255,239,255,231,255,226,255,220,255,214,255,214,255,217,255,216,255,216,255,223,255,231,255, +230,255,228,255,236,255,247,255,250,255,246,255,244,255,249,255,7,0,19,0,20,0,29,0,69,0,128,0,173,0,187,0, +186,0,190,0,202,0,215,0,223,0,235,0,8,1,50,1,85,1,100,1,93,1,68,1,38,1,26,1,40,1,57,1, +54,1,45,1,46,1,50,1,57,1,81,1,100,1,96,1,96,1,121,1,138,1,123,1,109,1,127,1,163,1,202,1, +254,1,53,2,72,2,40,2,251,1,235,1,239,1,233,1,220,1,216,1,216,1,219,1,224,1,210,1,159,1,99,1, +65,1,54,1,58,1,72,1,76,1,55,1,44,1,74,1,117,1,123,1,87,1,43,1,20,1,20,1,27,1,22,1, +254,0,230,0,231,0,251,0,244,0,189,0,116,0,52,0,254,255,215,255,197,255,179,255,142,255,97,255,68,255,65,255, +63,255,31,255,226,254,174,254,156,254,152,254,149,254,160,254,171,254,156,254,128,254,116,254,103,254,53,254,236,253,172,253, +133,253,122,253,135,253,131,253,75,253,6,253,233,252,231,252,204,252,150,252,94,252,50,252,38,252,76,252,127,252,134,252, +103,252,84,252,88,252,94,252,88,252,70,252,48,252,48,252,89,252,142,252,152,252,113,252,76,252,68,252,58,252,24,252, +246,251,231,251,225,251,224,251,243,251,28,252,61,252,74,252,84,252,92,252,89,252,89,252,122,252,177,252,224,252,11,253, +71,253,136,253,182,253,202,253,198,253,182,253,178,253,204,253,244,253,22,254,49,254,75,254,107,254,153,254,200,254,219,254, +213,254,222,254,7,255,52,255,87,255,128,255,187,255,2,0,75,0,132,0,158,0,165,0,179,0,201,0,229,0,21,1, +86,1,136,1,159,1,173,1,184,1,183,1,177,1,176,1,179,1,194,1,234,1,18,2,31,2,43,2,82,2,125,2, +149,2,174,2,206,2,211,2,187,2,180,2,211,2,253,2,31,3,63,3,95,3,111,3,106,3,87,3,64,3,41,3, +24,3,23,3,40,3,61,3,72,3,70,3,59,3,39,3,16,3,6,3,12,3,17,3,3,3,240,2,234,2,242,2, +248,2,247,2,237,2,219,2,197,2,180,2,170,2,154,2,124,2,88,2,60,2,43,2,28,2,5,2,224,1,169,1, +113,1,80,1,69,1,50,1,13,1,236,0,227,0,226,0,210,0,177,0,141,0,108,0,78,0,52,0,31,0,14,0, +252,255,236,255,225,255,213,255,187,255,145,255,102,255,73,255,55,255,31,255,248,254,211,254,194,254,192,254,180,254,154,254, +133,254,125,254,121,254,120,254,122,254,113,254,87,254,66,254,59,254,48,254,29,254,23,254,28,254,18,254,249,253,233,253, +225,253,211,253,194,253,178,253,153,253,129,253,125,253,133,253,129,253,119,253,121,253,128,253,133,253,141,253,148,253,138,253, +118,253,109,253,125,253,160,253,197,253,215,253,217,253,216,253,217,253,212,253,211,253,222,253,234,253,238,253,243,253,251,253, +1,254,8,254,14,254,16,254,27,254,61,254,96,254,104,254,100,254,112,254,136,254,165,254,211,254,11,255,51,255,58,255, +45,255,32,255,35,255,57,255,89,255,125,255,164,255,194,255,204,255,204,255,200,255,182,255,155,255,154,255,194,255,246,255, +15,0,13,0,8,0,19,0,47,0,72,0,87,0,97,0,108,0,116,0,126,0,153,0,191,0,216,0,227,0,251,0, +26,1,28,1,0,1,242,0,251,0,253,0,250,0,11,1,33,1,38,1,45,1,59,1,53,1,38,1,51,1,82,1, +90,1,87,1,98,1,115,1,128,1,144,1,159,1,166,1,170,1,161,1,131,1,116,1,147,1,188,1,198,1,193,1, +193,1,185,1,172,1,166,1,160,1,139,1,119,1,118,1,137,1,163,1,176,1,163,1,135,1,119,1,128,1,151,1, +162,1,148,1,136,1,148,1,162,1,151,1,137,1,141,1,135,1,106,1,84,1,83,1,82,1,71,1,56,1,40,1, +29,1,22,1,13,1,8,1,12,1,9,1,247,0,238,0,239,0,227,0,217,0,236,0,1,1,241,0,209,0,194,0, +183,0,165,0,156,0,155,0,144,0,133,0,138,0,150,0,147,0,114,0,61,0,25,0,28,0,49,0,59,0,62,0, +64,0,61,0,61,0,75,0,92,0,93,0,77,0,56,0,36,0,24,0,21,0,22,0,22,0,19,0,17,0,29,0, +49,0,40,0,246,255,196,255,182,255,198,255,225,255,241,255,229,255,202,255,195,255,205,255,207,255,198,255,189,255,183,255, +197,255,234,255,254,255,227,255,183,255,159,255,159,255,182,255,210,255,203,255,158,255,125,255,130,255,148,255,168,255,186,255, +181,255,149,255,124,255,127,255,144,255,147,255,117,255,79,255,95,255,180,255,253,255,240,255,172,255,119,255,107,255,131,255, +178,255,216,255,214,255,183,255,168,255,189,255,214,255,191,255,132,255,99,255,120,255,156,255,165,255,146,255,111,255,79,255, +73,255,94,255,116,255,120,255,103,255,75,255,61,255,70,255,80,255,66,255,37,255,8,255,254,254,24,255,58,255,43,255, +242,254,219,254,253,254,33,255,24,255,225,254,149,254,96,254,100,254,136,254,156,254,146,254,117,254,99,254,126,254,187,254, +201,254,131,254,39,254,0,254,16,254,49,254,64,254,46,254,17,254,13,254,39,254,73,254,89,254,60,254,236,253,168,253, +179,253,251,253,47,254,37,254,242,253,202,253,206,253,241,253,4,254,242,253,209,253,205,253,254,253,71,254,99,254,62,254, +14,254,5,254,27,254,63,254,94,254,99,254,82,254,82,254,106,254,129,254,146,254,160,254,160,254,160,254,189,254,227,254, +230,254,205,254,185,254,179,254,203,254,20,255,101,255,137,255,139,255,142,255,147,255,162,255,215,255,23,0,38,0,27,0, +61,0,134,0,177,0,179,0,196,0,247,0,42,1,80,1,126,1,179,1,196,1,162,1,124,1,136,1,206,1,48,2, +139,2,191,2,189,2,165,2,177,2,240,2,46,3,64,3,64,3,91,3,140,3,179,3,205,3,221,3,220,3,216,3, +244,3,49,4,96,4,92,4,52,4,27,4,45,4,100,4,167,4,223,4,243,4,210,4,151,4,129,4,168,4,218,4, +236,4,232,4,240,4,22,5,79,5,112,5,83,5,14,5,225,4,235,4,19,5,39,5,3,5,186,4,153,4,212,4, +48,5,67,5,248,4,151,4,94,4,74,4,65,4,60,4,62,4,65,4,76,4,110,4,139,4,95,4,221,3,104,3, +84,3,131,3,154,3,112,3,24,3,196,2,162,2,184,2,210,2,183,2,98,2,254,1,187,1,161,1,135,1,65,1, +224,0,161,0,165,0,215,0,254,0,218,0,93,0,205,255,127,255,116,255,119,255,96,255,40,255,219,254,158,254,139,254, +137,254,114,254,53,254,215,253,106,253,26,253,240,252,191,252,117,252,69,252,77,252,102,252,112,252,104,252,45,252,175,251, +49,251,244,250,221,250,184,250,139,250,120,250,140,250,185,250,208,250,149,250,19,250,161,249,107,249,78,249,42,249,254,248, +211,248,188,248,209,248,254,248,8,249,212,248,127,248,47,248,2,248,8,248,48,248,72,248,56,248,31,248,37,248,68,248, +82,248,53,248,13,248,10,248,40,248,66,248,77,248,84,248,90,248,95,248,108,248,120,248,110,248,83,248,71,248,98,248, +156,248,213,248,242,248,252,248,24,249,76,249,129,249,173,249,198,249,186,249,159,249,189,249,37,250,142,250,184,250,189,250, +206,250,243,250,33,251,85,251,130,251,149,251,145,251,158,251,216,251,43,252,104,252,132,252,149,252,170,252,213,252,46,253, +158,253,228,253,249,253,21,254,80,254,141,254,186,254,218,254,243,254,31,255,110,255,195,255,0,0,56,0,119,0,163,0, +198,0,5,1,63,1,56,1,24,1,54,1,140,1,217,1,7,2,45,2,100,2,180,2,5,3,61,3,105,3,146,3, +162,3,160,3,204,3,36,4,91,4,105,4,153,4,239,4,38,5,50,5,61,5,84,5,103,5,111,5,115,5,137,5, +192,5,1,6,43,6,63,6,77,6,87,6,102,6,145,6,201,6,245,6,28,7,66,7,79,7,76,7,90,7,112,7, +120,7,135,7,172,7,193,7,178,7,168,7,199,7,10,8,77,8,101,8,69,8,26,8,19,8,25,8,11,8,247,7, +240,7,242,7,10,8,74,8,148,8,175,8,142,8,78,8,30,8,30,8,55,8,56,8,28,8,9,8,1,8,247,7, +243,7,242,7,211,7,159,7,124,7,66,7,160,6,224,5,227,5,233,6,223,7,151,7,118,6,22,6,21,7,15,8, +94,7,72,5,201,3,61,4,191,5,68,6,44,5,7,4,95,4,147,5,221,5,208,4,172,3,121,3,205,3,157,3, +179,2,10,2,119,2,98,3,130,3,172,2,231,1,234,1,84,2,95,2,186,1,221,0,163,0,64,1,225,1,204,1, +78,1,7,1,251,0,219,0,133,0,17,0,195,255,202,255,214,255,136,255,70,255,157,255,13,0,175,255,179,254,14,254, +11,254,36,254,245,253,168,253,159,253,0,254,104,254,79,254,188,253,52,253,255,252,232,252,178,252,106,252,68,252,93,252, +133,252,101,252,255,251,181,251,161,251,112,251,3,251,172,250,150,250,133,250,83,250,38,250,26,250,23,250,4,250,225,249, +162,249,50,249,166,248,56,248,2,248,247,247,10,248,37,248,31,248,230,247,164,247,106,247,24,247,171,246,74,246,249,245, +196,245,226,245,62,246,102,246,51,246,245,245,213,245,174,245,124,245,89,245,57,245,18,245,6,245,44,245,116,245,184,245, +212,245,186,245,135,245,101,245,93,245,109,245,145,245,147,245,88,245,62,245,168,245,59,246,93,246,52,246,62,246,116,246, +149,246,177,246,209,246,186,246,135,246,181,246,95,247,19,248,109,248,116,248,108,248,143,248,211,248,254,248,253,248,251,248, +42,249,137,249,240,249,54,250,83,250,91,250,91,250,96,250,138,250,249,250,134,251,209,251,202,251,221,251,81,252,241,252, +92,253,101,253,42,253,29,253,143,253,50,254,144,254,174,254,217,254,50,255,175,255,50,0,134,0,142,0,92,0,43,0, +73,0,186,0,22,1,51,1,104,1,216,1,71,2,174,2,24,3,68,3,22,3,234,2,20,3,123,3,222,3,31,4, +91,4,186,4,44,5,133,5,184,5,188,5,145,5,115,5,163,5,19,6,125,6,171,6,166,6,176,6,235,6,41,7, +70,7,89,7,119,7,171,7,250,7,55,8,52,8,33,8,67,8,146,8,238,8,62,9,100,9,112,9,140,9,168,9, +173,9,197,9,2,10,47,10,66,10,105,10,154,10,152,10,98,10,49,10,43,10,81,10,140,10,180,10,182,10,184,10, +218,10,244,10,229,10,213,10,215,10,205,10,199,10,223,10,241,10,236,10,240,10,234,10,195,10,180,10,203,10,183,10, +100,10,10,10,193,9,159,9,181,9,199,9,172,9,142,9,108,9,32,9,215,8,176,8,122,8,51,8,18,8,10,8, +1,8,8,8,18,8,0,8,231,7,208,7,159,7,98,7,59,7,24,7,223,6,160,6,107,6,51,6,227,5,152,5, +130,5,133,5,85,5,1,5,213,4,201,4,194,4,212,4,216,4,122,4,226,3,128,3,113,3,147,3,187,3,174,3, +106,3,61,3,63,3,41,3,202,2,57,2,172,1,93,1,79,1,68,1,15,1,201,0,155,0,124,0,67,0,236,255, +150,255,75,255,241,254,144,254,86,254,84,254,115,254,146,254,135,254,62,254,198,253,58,253,195,252,132,252,103,252,55,252, +252,251,228,251,234,251,225,251,152,251,15,251,113,250,217,249,77,249,254,248,12,249,50,249,56,249,51,249,27,249,214,248, +161,248,138,248,59,248,164,247,28,247,202,246,182,246,238,246,47,247,38,247,241,246,184,246,112,246,32,246,208,245,93,245, +208,244,100,244,52,244,80,244,172,244,232,244,195,244,116,244,47,244,237,243,198,243,198,243,175,243,120,243,115,243,186,243, +18,244,73,244,83,244,53,244,2,244,213,243,183,243,168,243,161,243,160,243,178,243,214,243,8,244,59,244,95,244,120,244, +148,244,145,244,87,244,47,244,90,244,178,244,22,245,157,245,49,246,145,246,198,246,244,246,21,247,38,247,49,247,52,247, +48,247,70,247,159,247,56,248,222,248,69,249,89,249,73,249,86,249,141,249,201,249,222,249,220,249,239,249,57,250,215,250, +191,251,135,252,227,252,3,253,44,253,97,253,167,253,245,253,33,254,77,254,182,254,51,255,144,255,241,255,89,0,146,0, +175,0,221,0,11,1,50,1,91,1,127,1,192,1,66,2,207,2,51,3,140,3,226,3,35,4,115,4,213,4,16,5, +50,5,115,5,193,5,17,6,133,6,3,7,64,7,64,7,64,7,89,7,132,7,165,7,171,7,184,7,247,7,86,8, +168,8,211,8,225,8,245,8,32,9,70,9,100,9,145,9,197,9,235,9,32,10,119,10,202,10,249,10,23,11,59,11, +81,11,61,11,11,11,219,10,192,10,215,10,51,11,161,11,207,11,183,11,126,11,50,11,238,10,199,10,159,10,117,10, +126,10,199,10,45,11,156,11,224,11,176,11,57,11,237,10,223,10,224,10,217,10,179,10,111,10,72,10,95,10,125,10, +102,10,32,10,211,9,144,9,71,9,250,8,199,8,156,8,84,8,16,8,237,7,193,7,134,7,82,7,2,7,149,6, +93,6,99,6,106,6,120,6,149,6,134,6,62,6,224,5,83,5,154,4,11,4,194,3,154,3,156,3,187,3,179,3, +116,3,33,3,181,2,39,2,139,1,247,0,142,0,111,0,125,0,143,0,168,0,185,0,153,0,87,0,20,0,192,255, +85,255,250,254,182,254,106,254,44,254,37,254,55,254,26,254,207,253,141,253,97,253,57,253,8,253,168,252,8,252,133,251, +120,251,170,251,180,251,143,251,78,251,249,250,184,250,160,250,137,250,97,250,62,250,43,250,41,250,50,250,40,250,244,249, +160,249,44,249,175,248,98,248,84,248,102,248,135,248,148,248,95,248,2,248,174,247,107,247,69,247,70,247,59,247,8,247, +218,246,193,246,164,246,146,246,156,246,181,246,217,246,235,246,192,246,129,246,104,246,83,246,27,246,235,245,228,245,2,246, +66,246,123,246,109,246,22,246,169,245,89,245,98,245,210,245,97,246,189,246,195,246,131,246,88,246,144,246,232,246,246,246, +215,246,236,246,77,247,213,247,73,248,133,248,160,248,189,248,214,248,241,248,32,249,62,249,58,249,86,249,182,249,37,250, +128,250,212,250,38,251,112,251,175,251,186,251,123,251,68,251,136,251,71,252,28,253,202,253,82,254,171,254,232,254,57,255, +123,255,106,255,50,255,38,255,75,255,178,255,129,0,95,1,212,1,248,1,7,2,4,2,22,2,93,2,148,2,150,2, +169,2,240,2,86,3,230,3,147,4,19,5,65,5,61,5,54,5,86,5,151,5,213,5,19,6,92,6,152,6,212,6, +42,7,93,7,68,7,41,7,53,7,50,7,38,7,82,7,180,7,33,8,129,8,190,8,206,8,195,8,182,8,190,8, +214,8,216,8,194,8,196,8,245,8,74,9,185,9,8,10,0,10,213,9,192,9,158,9,96,9,53,9,32,9,20,9, +56,9,130,9,159,9,119,9,65,9,24,9,245,8,213,8,181,8,137,8,85,8,63,8,100,8,172,8,221,8,215,8, +158,8,74,8,248,7,165,7,50,7,171,6,78,6,59,6,99,6,162,6,181,6,104,6,212,5,54,5,169,4,64,4, +7,4,238,3,226,3,203,3,158,3,109,3,65,3,252,2,164,2,87,2,248,1,127,1,54,1,34,1,252,0,204,0, +177,0,121,0,31,0,216,255,124,255,209,254,29,254,164,253,89,253,66,253,99,253,128,253,106,253,37,253,174,252,29,252, +161,251,64,251,6,251,22,251,86,251,128,251,144,251,133,251,61,251,205,250,108,250,3,250,115,249,230,248,140,248,123,248, +172,248,235,248,236,248,171,248,92,248,24,248,187,247,45,247,131,246,215,245,67,245,4,245,69,245,179,245,226,245,208,245, +150,245,30,245,149,244,64,244,240,243,99,243,213,242,127,242,60,242,20,242,61,242,128,242,113,242,23,242,206,241,168,241, +105,241,245,240,110,240,24,240,61,240,232,240,160,241,223,241,172,241,90,241,14,241,240,240,40,241,103,241,77,241,13,241, +21,241,116,241,252,241,92,242,75,242,252,241,242,241,64,242,140,242,151,242,79,242,230,241,211,241,89,242,74,243,83,244, +16,245,50,245,243,244,214,244,4,245,101,245,229,245,93,246,208,246,116,247,41,248,153,248,211,248,4,249,23,249,44,249, +146,249,51,250,191,250,34,251,90,251,107,251,157,251,32,252,179,252,24,253,111,253,233,253,120,254,239,254,60,255,132,255, +1,0,200,0,179,1,114,2,199,2,221,2,24,3,150,3,49,4,193,4,37,5,79,5,120,5,242,5,183,6,89,7, +115,7,42,7,18,7,132,7,86,8,39,9,166,9,190,9,183,9,237,9,113,10,19,11,151,11,198,11,198,11,21,12, +217,12,177,13,56,14,76,14,6,14,223,13,58,14,216,14,71,15,115,15,120,15,104,15,102,15,149,15,237,15,75,16, +132,16,145,16,152,16,172,16,181,16,180,16,185,16,209,16,20,17,127,17,213,17,2,18,28,18,13,18,203,17,143,17, +95,17,24,17,241,16,5,17,1,17,210,16,177,16,129,16,38,16,233,15,205,15,116,15,244,14,167,14,120,14,61,14, +9,14,201,13,87,13,228,12,166,12,128,12,67,12,235,11,135,11,23,11,159,10,50,10,219,9,128,9,254,8,93,8, +190,7,56,7,211,6,129,6,31,6,159,5,24,5,173,4,107,4,51,4,207,3,49,3,133,2,2,2,206,1,216,1, +213,1,156,1,76,1,249,0,143,0,30,0,183,255,73,255,219,254,135,254,75,254,35,254,20,254,242,253,149,253,15,253, +125,252,253,251,182,251,152,251,115,251,79,251,57,251,23,251,243,250,236,250,211,250,127,250,28,250,217,249,194,249,212,249, +228,249,190,249,116,249,40,249,207,248,122,248,57,248,237,247,154,247,108,247,92,247,69,247,47,247,31,247,8,247,239,246, +208,246,148,246,72,246,7,246,233,245,13,246,92,246,133,246,134,246,159,246,203,246,224,246,217,246,154,246,20,246,179,245, +216,245,80,246,188,246,240,246,214,246,140,246,98,246,121,246,171,246,219,246,251,246,2,247,20,247,100,247,225,247,68,248, +116,248,148,248,198,248,8,249,86,249,175,249,250,249,40,250,83,250,149,250,233,250,65,251,129,251,142,251,128,251,135,251, +183,251,23,252,150,252,255,252,71,253,146,253,208,253,247,253,57,254,140,254,187,254,249,254,135,255,20,0,101,0,188,0, +32,1,91,1,141,1,214,1,7,2,33,2,95,2,172,2,215,2,248,2,43,3,104,3,170,3,247,3,74,4,141,4, +161,4,151,4,170,4,243,4,96,5,232,5,111,6,199,6,239,6,243,6,216,6,224,6,51,7,131,7,147,7,173,7, +3,8,95,8,145,8,137,8,67,8,241,7,209,7,220,7,7,8,92,8,165,8,161,8,121,8,127,8,192,8,23,9, +89,9,92,9,23,9,193,8,166,8,213,8,22,9,64,9,98,9,128,9,128,9,104,9,68,9,238,8,96,8,236,7, +204,7,224,7,245,7,251,7,249,7,239,7,196,7,110,7,12,7,209,6,213,6,0,7,17,7,234,6,166,6,94,6, +27,6,250,5,247,5,212,5,145,5,100,5,63,5,12,5,239,4,200,4,79,4,173,3,42,3,187,2,99,2,61,2, +17,2,197,1,177,1,228,1,3,2,239,1,183,1,67,1,169,0,51,0,243,255,218,255,221,255,221,255,193,255,158,255, +118,255,60,255,9,255,217,254,127,254,1,254,162,253,135,253,164,253,193,253,160,253,67,253,220,252,130,252,65,252,40,252, +39,252,45,252,97,252,213,252,66,253,95,253,48,253,229,252,139,252,20,252,156,251,99,251,109,251,146,251,208,251,38,252, +88,252,78,252,47,252,241,251,113,251,215,250,99,250,33,250,31,250,100,250,185,250,242,250,46,251,119,251,133,251,43,251, +164,250,65,250,16,250,7,250,40,250,85,250,97,250,96,250,115,250,108,250,54,250,8,250,225,249,148,249,71,249,36,249, +8,249,229,248,216,248,219,248,231,248,248,248,216,248,126,248,73,248,88,248,95,248,82,248,92,248,107,248,112,248,107,248, +64,248,238,247,162,247,82,247,250,246,228,246,43,247,108,247,87,247,255,246,159,246,106,246,92,246,73,246,58,246,77,246, +89,246,65,246,65,246,117,246,172,246,193,246,171,246,113,246,78,246,106,246,145,246,151,246,154,246,184,246,247,246,83,247, +171,247,192,247,128,247,14,247,164,246,130,246,196,246,47,247,100,247,97,247,140,247,11,248,125,248,154,248,135,248,98,248, +50,248,60,248,166,248,41,249,144,249,238,249,63,250,125,250,202,250,21,251,29,251,243,250,214,250,214,250,247,250,84,251, +215,251,70,252,137,252,182,252,227,252,9,253,26,253,35,253,59,253,118,253,247,253,179,254,80,255,158,255,215,255,22,0, +72,0,137,0,220,0,254,0,11,1,110,1,9,2,107,2,141,2,161,2,198,2,22,3,134,3,216,3,241,3,231,3, +221,3,11,4,126,4,240,4,60,5,124,5,172,5,220,5,86,6,249,6,82,7,113,7,171,7,246,7,62,8,159,8, +227,8,183,8,87,8,60,8,135,8,30,9,215,9,80,10,71,10,0,10,238,9,9,10,252,9,202,9,183,9,203,9, +247,9,97,10,14,11,167,11,221,11,178,11,88,11,36,11,74,11,148,11,166,11,121,11,75,11,79,11,136,11,201,11, +225,11,191,11,102,11,243,10,161,10,114,10,44,10,210,9,165,9,183,9,240,9,50,10,64,10,3,10,188,9,132,9, +39,9,167,8,67,8,20,8,25,8,61,8,77,8,45,8,231,7,119,7,226,6,81,6,222,5,116,5,251,4,103,4, +229,3,199,3,232,3,194,3,76,3,214,2,93,2,213,1,116,1,45,1,181,0,45,0,239,255,244,255,241,255,171,255, +9,255,35,254,54,253,111,252,218,251,94,251,213,250,61,250,169,249,33,249,200,248,177,248,128,248,214,247,226,246,227,245, +238,244,89,244,115,244,224,244,49,245,130,245,210,245,183,245,40,245,120,244,176,243,213,242,93,242,134,242,216,242,249,242, +27,243,45,243,180,242,190,241,230,240,116,240,88,240,131,240,132,240,235,239,69,239,129,239,120,240,107,241,36,242,142,242, +105,242,245,241,214,241,30,242,82,242,73,242,109,242,39,243,85,244,95,245,180,245,40,245,13,244,37,243,234,242,36,243, +137,243,32,244,185,244,9,245,74,245,178,245,238,245,225,245,241,245,58,246,146,246,18,247,195,247,100,248,244,248,188,249, +170,250,84,251,147,251,174,251,215,251,234,251,202,251,166,251,162,251,191,251,42,252,2,253,230,253,104,254,115,254,6,254, +96,253,44,253,186,253,154,254,107,255,52,0,232,0,152,1,156,2,198,3,83,4,14,4,171,3,211,3,146,4,169,5, +182,6,47,7,228,6,117,6,169,6,105,7,251,7,248,7,137,7,29,7,64,7,16,8,253,8,144,9,4,10,173,10, +107,11,8,12,122,12,184,12,199,12,234,12,111,13,79,14,50,15,213,15,47,16,63,16,18,16,229,15,204,15,153,15, +100,15,106,15,129,15,118,15,118,15,146,15,139,15,97,15,71,15,68,15,101,15,167,15,193,15,162,15,176,15,24,16, +138,16,179,16,131,16,32,16,196,15,122,15,49,15,0,15,220,14,123,14,243,13,157,13,83,13,186,12,246,11,68,11, +163,10,52,10,31,10,34,10,240,9,180,9,175,9,198,9,194,9,164,9,116,9,41,9,226,8,217,8,235,8,178,8, +46,8,182,7,99,7,47,7,24,7,199,6,232,5,228,4,83,4,14,4,187,3,113,3,67,3,5,3,193,2,162,2, +144,2,92,2,12,2,192,1,137,1,129,1,184,1,255,1,7,2,189,1,72,1,193,0,62,0,238,255,193,255,95,255, +176,254,247,253,100,253,15,253,252,252,225,252,115,252,223,251,121,251,62,251,6,251,191,250,98,250,1,250,222,249,32,250, +163,250,9,251,2,251,162,250,40,250,173,249,71,249,28,249,8,249,223,248,206,248,216,248,156,248,24,248,174,247,104,247, +27,247,220,246,171,246,110,246,94,246,173,246,31,247,107,247,141,247,154,247,182,247,2,248,87,248,117,248,97,248,69,248, +70,248,120,248,207,248,31,249,66,249,37,249,207,248,109,248,37,248,0,248,19,248,96,248,160,248,158,248,127,248,130,248, +182,248,251,248,24,249,7,249,26,249,155,249,112,250,60,251,169,251,173,251,134,251,107,251,104,251,124,251,140,251,115,251, +85,251,126,251,231,251,59,252,76,252,42,252,10,252,19,252,41,252,37,252,30,252,61,252,142,252,37,253,248,253,182,254, +50,255,139,255,194,255,197,255,201,255,6,0,93,0,168,0,6,1,142,1,10,2,61,2,72,2,90,2,82,2,26,2, +251,1,36,2,112,2,218,2,87,3,159,3,192,3,36,4,185,4,22,5,76,5,137,5,175,5,225,5,102,6,5,7, +103,7,172,7,240,7,20,8,27,8,25,8,253,7,209,7,187,7,191,7,208,7,242,7,30,8,80,8,141,8,195,8, +195,8,130,8,53,8,36,8,96,8,181,8,252,8,54,9,89,9,98,9,114,9,138,9,130,9,89,9,49,9,10,9, +228,8,208,8,185,8,125,8,45,8,225,7,152,7,84,7,37,7,23,7,27,7,6,7,189,6,110,6,94,6,145,6, +202,6,198,6,116,6,27,6,254,5,1,6,225,5,150,5,75,5,45,5,54,5,35,5,210,4,100,4,238,3,107,3, +3,3,207,2,160,2,90,2,31,2,243,1,185,1,117,1,55,1,5,1,242,0,2,1,30,1,49,1,32,1,225,0, +147,0,75,0,251,255,175,255,129,255,89,255,46,255,23,255,11,255,235,254,160,254,252,253,13,253,81,252,8,252,232,251, +207,251,236,251,39,252,60,252,37,252,226,251,120,251,24,251,213,250,110,250,210,249,83,249,59,249,120,249,176,249,165,249, +111,249,62,249,8,249,173,248,25,248,61,247,67,246,149,245,114,245,196,245,81,246,201,246,208,246,99,246,207,245,67,245, +189,244,85,244,58,244,120,244,234,244,97,245,179,245,182,245,92,245,201,244,48,244,164,243,66,243,33,243,20,243,248,242, +250,242,51,243,106,243,124,243,113,243,65,243,245,242,181,242,132,242,74,242,33,242,53,242,139,242,255,242,107,243,186,243, +213,243,153,243,25,243,175,242,147,242,172,242,226,242,40,243,88,243,116,243,150,243,162,243,131,243,99,243,71,243,23,243, +10,243,76,243,170,243,249,243,70,244,137,244,196,244,26,245,115,245,162,245,192,245,246,245,45,246,93,246,154,246,227,246, +45,247,108,247,152,247,198,247,29,248,149,248,5,249,86,249,143,249,210,249,51,250,154,250,232,250,50,251,140,251,251,251, +142,252,62,253,209,253,56,254,160,254,37,255,188,255,81,0,195,0,252,0,25,1,71,1,156,1,26,2,167,2,19,3, +100,3,200,3,80,4,231,4,117,5,220,5,22,6,75,6,171,6,53,7,204,7,100,8,241,8,96,9,195,9,69,10, +207,10,29,11,71,11,149,11,240,11,44,12,109,12,183,12,219,12,235,12,22,13,70,13,128,13,241,13,100,14,136,14, +134,14,164,14,215,14,9,15,42,15,43,15,62,15,150,15,2,16,64,16,101,16,135,16,155,16,158,16,129,16,51,16, +210,15,129,15,56,15,243,14,181,14,116,14,68,14,76,14,97,14,48,14,188,13,65,13,230,12,175,12,118,12,25,12, +169,11,81,11,23,11,249,10,238,10,212,10,144,10,42,10,176,9,39,9,156,8,31,8,179,7,64,7,168,6,253,5, +110,5,232,4,77,4,202,3,122,3,34,3,168,2,59,2,225,1,124,1,42,1,249,0,164,0,16,0,152,255,113,255, +89,255,8,255,113,254,138,253,100,252,113,251,15,251,253,250,206,250,103,250,204,249,8,249,105,248,20,248,165,247,186,246, +134,245,122,244,210,243,152,243,185,243,1,244,34,244,227,243,95,243,228,242,118,242,225,241,51,241,154,240,51,240,57,240, +183,240,46,241,65,241,14,241,135,240,143,239,170,238,70,238,20,238,216,237,169,237,98,237,31,237,151,237,218,238,232,239, +49,240,0,240,132,239,214,238,122,238,204,238,128,239,71,240,30,241,231,241,116,242,212,242,12,243,223,242,81,242,227,241, +235,241,58,242,171,242,69,243,198,243,223,243,190,243,200,243,22,244,160,244,80,245,220,245,27,246,92,246,237,246,165,247, +58,248,175,248,40,249,158,249,238,249,28,250,80,250,151,250,223,250,29,251,94,251,183,251,42,252,126,252,97,252,213,251, +76,251,44,251,130,251,45,252,3,253,218,253,145,254,40,255,165,255,246,255,28,0,85,0,199,0,71,1,212,1,175,2, +187,3,149,4,56,5,185,5,213,5,143,5,108,5,151,5,223,5,61,6,142,6,151,6,176,6,87,7,76,8,12,9, +144,9,226,9,251,9,34,10,149,10,65,11,24,12,253,12,161,13,25,14,213,14,176,15,20,16,229,15,131,15,82,15, +159,15,97,16,27,17,119,17,149,17,124,17,14,17,130,16,63,16,66,16,72,16,79,16,139,16,17,17,193,17,84,18, +140,18,124,18,117,18,135,18,123,18,83,18,61,18,41,18,244,17,209,17,242,17,43,18,37,18,183,17,231,16,244,15, +73,15,10,15,225,14,128,14,18,14,235,13,251,13,238,13,171,13,54,13,129,12,202,11,157,11,18,12,166,12,247,12, +245,12,159,12,15,12,130,11,243,10,43,10,61,9,140,8,75,8,64,8,23,8,199,7,106,7,236,6,51,6,105,5, +188,4,40,4,164,3,42,3,200,2,201,2,66,3,180,3,191,3,160,3,124,3,31,3,131,2,196,1,230,0,54,0, +251,255,218,255,123,255,29,255,215,254,93,254,208,253,117,253,7,253,82,252,169,251,57,251,229,250,192,250,178,250,74,250, +156,249,81,249,140,249,213,249,245,249,255,249,229,249,158,249,79,249,4,249,165,248,43,248,146,247,228,246,96,246,35,246, +231,245,137,245,81,245,100,245,124,245,109,245,74,245,12,245,169,244,75,244,21,244,5,244,33,244,108,244,184,244,225,244, +13,245,116,245,229,245,239,245,137,245,43,245,35,245,78,245,114,245,108,245,63,245,51,245,138,245,250,245,48,246,88,246, +133,246,104,246,18,246,11,246,116,246,250,246,132,247,35,248,185,248,45,249,148,249,240,249,41,250,64,250,91,250,134,250, +177,250,234,250,78,251,162,251,160,251,131,251,159,251,200,251,219,251,25,252,136,252,233,252,83,253,211,253,26,254,71,254, +205,254,89,255,86,255,46,255,148,255,72,0,194,0,20,1,116,1,225,1,100,2,230,2,26,3,249,2,219,2,224,2, +232,2,4,3,95,3,228,3,91,4,179,4,248,4,58,5,128,5,196,5,5,6,95,6,242,6,172,7,79,8,190,8, +39,9,177,9,43,10,77,10,59,10,74,10,124,10,195,10,68,11,234,11,91,12,123,12,123,12,125,12,164,12,240,12, +244,12,126,12,40,12,129,12,67,13,252,13,149,14,0,15,31,15,17,15,13,15,33,15,63,15,63,15,3,15,172,14, +134,14,198,14,73,15,147,15,78,15,209,14,147,14,101,14,241,13,102,13,255,12,157,12,74,12,78,12,170,12,9,13, +27,13,188,12,13,12,101,11,249,10,166,10,70,10,239,9,203,9,218,9,218,9,148,9,11,9,81,8,120,7,176,6, +32,6,180,5,80,5,248,4,151,4,36,4,209,3,153,3,20,3,48,2,114,1,33,1,248,0,195,0,146,0,119,0, +150,0,249,0,35,1,146,0,134,255,142,254,193,253,14,253,172,252,165,252,185,252,212,252,12,253,72,253,94,253,40,253, +98,252,1,251,154,249,228,248,248,248,94,249,167,249,178,249,129,249,33,249,191,248,118,248,9,248,65,247,130,246,70,246, +110,246,163,246,208,246,223,246,182,246,106,246,191,245,74,244,124,242,112,241,122,241,236,241,46,242,26,242,230,241,14,242, +188,242,86,243,65,243,125,242,80,241,2,240,11,239,208,238,70,239,15,240,186,240,243,240,198,240,154,240,186,240,255,240, +226,240,1,240,190,238,0,238,52,238,243,238,155,239,196,239,90,239,190,238,138,238,230,238,108,239,190,239,196,239,137,239, +59,239,35,239,92,239,199,239,44,240,77,240,20,240,198,239,193,239,6,240,80,240,117,240,125,240,134,240,166,240,207,240, +207,240,162,240,125,240,126,240,144,240,176,240,2,241,140,241,15,242,83,242,123,242,199,242,49,243,136,243,190,243,214,243, +219,243,247,243,50,244,91,244,122,244,203,244,50,245,103,245,147,245,246,245,116,246,229,246,82,247,183,247,0,248,55,248, +115,248,196,248,50,249,157,249,249,249,136,250,113,251,124,252,109,253,39,254,132,254,162,254,238,254,110,255,201,255,12,0, +130,0,28,1,179,1,95,2,27,3,193,3,82,4,208,4,34,5,107,5,238,5,147,6,31,7,165,7,68,8,243,8, +156,9,45,10,159,10,20,11,168,11,52,12,162,12,17,13,137,13,241,13,83,14,185,14,5,15,51,15,103,15,152,15, +176,15,213,15,44,16,153,16,252,16,70,17,99,17,102,17,132,17,208,17,50,18,145,18,190,18,150,18,99,18,139,18, +235,18,21,19,247,18,190,18,116,18,43,18,22,18,52,18,59,18,5,18,182,17,111,17,41,17,237,16,196,16,122,16, +245,15,112,15,18,15,177,14,75,14,7,14,202,13,113,13,29,13,210,12,101,12,252,11,176,11,21,11,248,9,224,8, +39,8,130,7,210,6,86,6,15,6,202,5,130,5,46,5,145,4,153,3,123,2,104,1,116,0,165,255,1,255,126,254, +14,254,200,253,195,253,182,253,37,253,31,252,28,251,61,250,101,249,195,248,113,248,55,248,17,248,13,248,190,247,224,246, +236,245,38,245,50,244,60,243,243,242,58,243,115,243,150,243,181,243,111,243,200,242,59,242,195,241,13,241,80,240,208,239, +115,239,89,239,189,239,65,240,102,240,89,240,92,240,61,240,227,239,118,239,247,238,126,238,134,238,73,239,56,240,176,240, +175,240,118,240,36,240,219,239,178,239,120,239,19,239,254,238,179,239,205,240,141,241,197,241,155,241,27,241,133,240,82,240, +144,240,249,240,138,241,99,242,82,243,255,243,91,244,132,244,126,244,81,244,52,244,96,244,200,244,60,245,174,245,31,246, +130,246,249,246,170,247,68,248,79,248,226,247,115,247,64,247,117,247,50,248,51,249,26,250,253,250,1,252,228,252,99,253, +125,253,60,253,216,252,222,252,139,253,152,254,214,255,51,1,82,2,222,2,239,2,199,2,152,2,150,2,195,2,255,2, +110,3,57,4,30,5,212,5,115,6,21,7,162,7,23,8,112,8,164,8,233,8,122,9,47,10,239,10,225,11,221,12, +143,13,22,14,154,14,200,14,134,14,69,14,59,14,95,14,241,14,253,15,242,16,119,17,192,17,197,17,88,17,214,16, +190,16,249,16,77,17,226,17,197,18,163,19,71,20,180,20,202,20,126,20,41,20,30,20,59,20,85,20,142,20,227,20, +14,21,6,21,255,20,229,20,137,20,8,20,132,19,233,18,83,18,13,18,32,18,94,18,195,18,50,19,81,19,249,18, +99,18,197,17,38,17,164,16,110,16,124,16,156,16,187,16,216,16,193,16,47,16,51,15,31,14,23,13,47,12,177,11, +163,11,128,11,16,11,185,10,152,10,76,10,187,9,30,9,111,8,173,7,17,7,158,6,63,6,31,6,60,6,53,6, +246,5,191,5,114,5,201,4,233,3,240,2,203,1,203,0,82,0,34,0,221,255,156,255,99,255,244,254,89,254,198,253, +42,253,122,252,231,251,139,251,95,251,85,251,48,251,181,250,33,250,213,249,199,249,189,249,161,249,95,249,233,248,98,248, +228,247,101,247,232,246,114,246,229,245,72,245,202,244,103,244,3,244,199,243,211,243,241,243,251,243,26,244,70,244,43,244, +198,243,97,243,9,243,161,242,87,242,102,242,152,242,171,242,205,242,33,243,71,243,240,242,93,242,241,241,192,241,179,241, +171,241,130,241,68,241,46,241,80,241,135,241,187,241,226,241,239,241,247,241,34,242,111,242,210,242,72,243,184,243,5,244, +54,244,87,244,98,244,99,244,109,244,123,244,146,244,201,244,29,245,122,245,209,245,0,246,255,245,3,246,37,246,61,246, +94,246,200,246,109,247,16,248,161,248,5,249,56,249,153,249,88,250,253,250,44,251,43,251,65,251,123,251,6,252,206,252, +99,253,176,253,12,254,105,254,130,254,133,254,157,254,155,254,149,254,229,254,139,255,79,0,39,1,228,1,69,2,119,2, +206,2,33,3,55,3,77,3,179,3,92,4,22,5,198,5,81,6,181,6,4,7,66,7,108,7,149,7,205,7,2,8, +32,8,70,8,159,8,43,9,197,9,92,10,226,10,50,11,53,11,32,11,39,11,84,11,173,11,67,12,255,12,192,13, +118,14,252,14,20,15,187,14,51,14,189,13,133,13,164,13,12,14,140,14,4,15,110,15,190,15,220,15,180,15,80,15, +201,14,76,14,19,14,52,14,128,14,193,14,3,15,68,15,85,15,62,15,53,15,9,15,122,14,221,13,134,13,54,13, +222,12,230,12,43,13,9,13,130,12,2,12,120,11,185,10,13,10,140,9,246,8,110,8,69,8,74,8,49,8,22,8, +247,7,137,7,199,6,15,6,152,5,72,5,241,4,130,4,24,4,211,3,169,3,111,3,10,3,133,2,14,2,184,1, +86,1,192,0,18,0,109,255,231,254,174,254,184,254,144,254,3,254,119,253,26,253,174,252,45,252,188,251,31,251,73,250, +180,249,162,249,195,249,227,249,227,249,85,249,24,248,213,246,19,246,149,245,0,245,86,244,185,243,122,243,12,244,68,245, +32,246,229,245,224,244,151,243,53,242,6,241,127,240,135,240,175,240,5,241,176,241,84,242,177,242,2,243,17,243,50,242, +146,240,50,239,126,238,42,238,18,238,59,238,132,238,245,238,163,239,42,240,9,240,64,239,23,238,227,236,51,236,114,236, +73,237,2,238,85,238,104,238,120,238,180,238,14,239,17,239,87,238,62,237,180,236,39,237,29,238,223,238,32,239,217,238, +62,238,224,237,12,238,81,238,43,238,197,237,139,237,169,237,50,238,17,239,216,239,59,240,81,240,41,240,211,239,181,239, +20,240,162,240,252,240,33,241,44,241,84,241,227,241,177,242,44,243,48,243,40,243,78,243,135,243,195,243,6,244,72,244, +141,244,220,244,34,245,103,245,215,245,125,246,67,247,18,248,213,248,111,249,206,249,249,249,18,250,58,250,109,250,163,250, +0,251,162,251,111,252,47,253,192,253,19,254,73,254,141,254,219,254,15,255,57,255,122,255,213,255,72,0,216,0,129,1, +79,2,51,3,211,3,2,4,32,4,130,4,247,4,83,5,196,5,96,6,15,7,213,7,141,8,228,8,231,8,237,8, +251,8,251,8,57,9,231,9,183,10,94,11,239,11,116,12,201,12,3,13,96,13,223,13,63,14,116,14,188,14,58,15, +212,15,109,16,247,16,75,17,98,17,115,17,140,17,130,17,97,17,116,17,178,17,216,17,231,17,23,18,123,18,226,18, +251,18,159,18,32,18,232,17,233,17,228,17,234,17,32,18,103,18,158,18,192,18,173,18,94,18,11,18,209,17,133,17, +19,17,166,16,106,16,81,16,45,16,225,15,135,15,55,15,219,14,107,14,2,14,168,13,82,13,9,13,200,12,119,12, +35,12,226,11,156,11,68,11,255,10,206,10,139,10,59,10,236,9,132,9,9,9,170,8,105,8,30,8,191,7,79,7, +219,6,137,6,93,6,20,6,134,5,225,4,109,4,78,4,100,4,91,4,25,4,219,3,168,3,66,3,201,2,145,2, +125,2,74,2,9,2,195,1,83,1,217,0,146,0,92,0,3,0,170,255,98,255,9,255,169,254,96,254,10,254,139,253, +20,253,197,252,131,252,69,252,26,252,238,251,171,251,106,251,62,251,14,251,204,250,147,250,95,250,5,250,145,249,54,249, +224,248,108,248,34,248,67,248,114,248,68,248,239,247,206,247,208,247,183,247,101,247,225,246,110,246,105,246,204,246,61,247, +131,247,150,247,138,247,138,247,159,247,144,247,84,247,51,247,77,247,124,247,184,247,11,248,81,248,103,248,104,248,121,248, +145,248,139,248,98,248,77,248,131,248,231,248,76,249,170,249,233,249,245,249,15,250,116,250,227,250,17,251,23,251,252,250, +177,250,125,250,165,250,238,250,28,251,72,251,117,251,152,251,221,251,72,252,134,252,137,252,143,252,142,252,111,252,105,252, +164,252,236,252,31,253,74,253,127,253,224,253,115,254,241,254,45,255,86,255,137,255,178,255,234,255,83,0,189,0,1,1, +72,1,160,1,227,1,34,2,132,2,240,2,69,3,165,3,52,4,221,4,129,5,34,6,179,6,23,7,71,7,100,7, +123,7,148,7,216,7,105,8,40,9,215,9,94,10,186,10,237,10,22,11,78,11,126,11,146,11,171,11,225,11,48,12, +137,12,217,12,7,13,34,13,77,13,134,13,202,13,26,14,78,14,56,14,250,13,215,13,207,13,187,13,146,13,109,13, +95,13,103,13,112,13,108,13,82,13,19,13,202,12,175,12,173,12,114,12,4,12,173,11,113,11,66,11,52,11,44,11, +232,10,146,10,105,10,53,10,187,9,50,9,205,8,135,8,107,8,92,8,10,8,142,7,64,7,237,6,66,6,144,5, +53,5,241,4,161,4,145,4,186,4,175,4,89,4,242,3,118,3,216,2,73,2,232,1,157,1,91,1,40,1,242,0, +158,0,57,0,214,255,108,255,237,254,115,254,22,254,200,253,101,253,235,252,114,252,22,252,216,251,136,251,248,250,77,250, +215,249,148,249,64,249,227,248,197,248,236,248,8,249,216,248,94,248,187,247,22,247,125,246,227,245,62,245,188,244,159,244, +227,244,39,245,20,245,167,244,15,244,138,243,86,243,116,243,146,243,104,243,240,242,95,242,25,242,97,242,211,242,211,242, +139,242,144,242,207,242,226,242,226,242,243,242,221,242,163,242,130,242,79,242,239,241,212,241,39,242,84,242,30,242,239,241, +245,241,10,242,55,242,136,242,186,242,166,242,118,242,91,242,117,242,187,242,233,242,231,242,238,242,14,243,22,243,6,243, +19,243,63,243,105,243,128,243,126,243,138,243,222,243,78,244,109,244,48,244,237,243,221,243,14,244,98,244,141,244,132,244, +159,244,245,244,49,245,68,245,111,245,164,245,182,245,197,245,229,245,255,245,64,246,201,246,60,247,82,247,75,247,97,247, +132,247,204,247,82,248,212,248,33,249,95,249,151,249,167,249,193,249,42,250,165,250,220,250,249,250,71,251,192,251,70,252, +209,252,51,253,69,253,72,253,150,253,35,254,166,254,1,255,72,255,153,255,9,0,132,0,227,0,51,1,161,1,29,2, +115,2,165,2,219,2,36,3,127,3,234,3,87,4,196,4,71,5,208,5,39,6,62,6,69,6,108,6,199,6,65,7, +179,7,33,8,172,8,62,9,150,9,174,9,166,9,159,9,209,9,105,10,35,11,153,11,195,11,209,11,227,11,22,12, +107,12,176,12,191,12,192,12,228,12,58,13,179,13,23,14,57,14,62,14,93,14,142,14,191,14,229,14,215,14,147,14, +113,14,144,14,174,14,200,14,8,15,47,15,247,14,158,14,101,14,37,14,205,13,145,13,126,13,129,13,143,13,125,13, +45,13,204,12,129,12,38,12,169,11,46,11,202,10,135,10,118,10,109,10,20,10,115,9,230,8,140,8,59,8,241,7, +190,7,116,7,235,6,84,6,245,5,188,5,105,5,236,4,94,4,218,3,127,3,86,3,40,3,190,2,35,2,114,1, +206,0,128,0,154,0,157,0,26,0,53,255,59,254,61,253,69,252,90,251,101,250,112,249,181,248,63,248,220,247,119,247, +51,247,69,247,165,247,222,247,111,247,86,246,177,244,134,242,123,240,169,239,49,240,43,241,26,242,24,243,251,243,119,244, +120,244,186,243,7,242,2,240,169,238,50,238,46,238,58,238,60,238,111,238,40,239,45,240,205,240,187,240,57,240,135,239, +212,238,108,238,133,238,7,239,196,239,152,240,92,241,229,241,38,242,47,242,229,241,16,241,7,240,199,239,200,240,100,242, +188,243,96,244,26,244,34,243,68,242,205,241,56,241,126,240,94,240,17,241,37,242,103,243,176,244,123,245,155,245,106,245, +3,245,101,244,7,244,41,244,84,244,76,244,130,244,35,245,206,245,107,246,25,247,123,247,40,247,105,246,176,245,6,245, +158,244,243,244,223,245,176,246,95,247,79,248,56,249,166,249,209,249,237,249,197,249,179,249,109,250,188,251,224,252,194,253, +117,254,167,254,126,254,164,254,38,255,165,255,47,0,195,0,247,0,230,0,67,1,36,2,240,2,107,3,199,3,32,4, +148,4,83,5,54,6,209,6,44,7,217,7,24,9,118,10,113,11,253,11,47,12,1,12,171,11,150,11,224,11,111,12, +54,13,9,14,164,14,28,15,144,15,176,15,70,15,190,14,133,14,158,14,2,15,158,15,44,16,174,16,122,17,116,18, +24,19,84,19,121,19,141,19,106,19,47,19,12,19,2,19,25,19,101,19,195,19,240,19,233,19,224,19,205,19,125,19, +252,18,138,18,61,18,34,18,92,18,200,18,246,18,214,18,179,18,158,18,138,18,166,18,7,19,100,19,135,19,118,19, +53,19,218,18,135,18,41,18,170,17,39,17,188,16,111,16,87,16,84,16,0,16,86,15,183,14,58,14,197,13,130,13, +110,13,32,13,136,12,3,12,190,11,195,11,30,12,117,12,69,12,170,11,17,11,136,10,245,9,97,9,207,8,59,8, +196,7,108,7,12,7,149,6,252,5,46,5,87,4,191,3,103,3,64,3,66,3,47,3,200,2,58,2,198,1,101,1, +17,1,209,0,130,0,30,0,216,255,178,255,120,255,37,255,186,254,40,254,160,253,76,253,209,252,234,251,254,250,90,250, +197,249,61,249,13,249,21,249,250,248,189,248,124,248,22,248,145,247,39,247,216,246,131,246,67,246,60,246,84,246,100,246, +100,246,63,246,227,245,86,245,174,244,2,244,145,243,135,243,172,243,162,243,116,243,106,243,121,243,95,243,28,243,216,242, +157,242,105,242,89,242,132,242,214,242,55,243,163,243,8,244,59,244,43,244,0,244,227,243,196,243,154,243,132,243,150,243, +188,243,2,244,123,244,246,244,40,245,1,245,149,244,14,244,195,243,233,243,84,244,205,244,76,245,190,245,30,246,148,246, +15,247,49,247,240,246,173,246,155,246,188,246,44,247,207,247,70,248,115,248,137,248,157,248,161,248,154,248,132,248,101,248, +109,248,179,248,38,249,187,249,92,250,197,250,240,250,46,251,160,251,11,252,72,252,103,252,132,252,219,252,149,253,123,254, +41,255,128,255,174,255,232,255,54,0,124,0,179,0,2,1,116,1,242,1,139,2,81,3,252,3,77,4,119,4,186,4, +8,5,112,5,25,6,224,6,137,7,36,8,202,8,105,9,237,9,73,10,98,10,95,10,150,10,5,11,108,11,202,11, +55,12,141,12,187,12,236,12,23,13,25,13,21,13,53,13,96,13,159,13,38,14,200,14,25,15,29,15,24,15,2,15, +202,14,180,14,219,14,253,14,9,15,48,15,117,15,174,15,206,15,194,15,95,15,184,14,21,14,149,13,61,13,52,13, +132,13,225,13,16,14,32,14,31,14,230,13,98,13,187,12,28,12,157,11,93,11,118,11,206,11,43,12,100,12,77,12, +199,11,0,11,79,10,190,9,30,9,124,8,19,8,237,7,243,7,14,8,9,8,173,7,25,7,141,6,22,6,159,5, +31,5,148,4,17,4,193,3,171,3,163,3,141,3,87,3,229,2,63,2,171,1,81,1,22,1,218,0,137,0,5,0, +89,255,188,254,58,254,156,253,207,252,7,252,110,251,18,251,253,250,24,251,27,251,205,250,59,250,147,249,12,249,204,248, +171,248,50,248,45,247,233,245,201,244,16,244,237,243,40,244,31,244,166,243,62,243,84,243,226,243,189,244,87,245,231,244, +122,243,253,241,250,240,83,240,6,240,6,240,1,240,29,240,238,240,77,242,95,243,169,243,49,243,27,242,237,240,74,240, +32,240,235,239,171,239,171,239,221,239,42,240,176,240,63,241,87,241,202,240,227,239,6,239,132,238,147,238,14,239,126,239, +167,239,227,239,126,240,29,241,40,241,127,240,117,239,135,238,58,238,171,238,78,239,172,239,241,239,84,240,151,240,142,240, +78,240,205,239,23,239,155,238,164,238,244,238,99,239,11,240,187,240,19,241,36,241,60,241,86,241,76,241,41,241,235,240, +150,240,137,240,26,241,5,242,227,242,184,243,125,244,223,244,208,244,159,244,89,244,245,243,205,243,37,244,199,244,147,245, +176,246,219,247,152,248,231,248,16,249,26,249,25,249,72,249,159,249,0,250,148,250,110,251,65,252,217,252,71,253,150,253, +214,253,42,254,151,254,250,254,75,255,148,255,226,255,71,0,208,0,121,1,48,2,197,2,5,3,5,3,0,3,30,3, +135,3,78,4,23,5,135,5,222,5,104,6,228,6,34,7,72,7,64,7,252,6,250,6,145,7,93,8,12,9,155,9, +214,9,171,9,151,9,218,9,33,10,81,10,150,10,204,10,219,10,12,11,105,11,165,11,194,11,243,11,19,12,15,12, +40,12,99,12,109,12,56,12,2,12,210,11,162,11,170,11,253,11,52,12,16,12,233,11,250,11,230,11,121,11,17,11, +224,10,170,10,122,10,126,10,117,10,47,10,249,9,245,9,227,9,210,9,233,9,210,9,96,9,243,8,168,8,57,8, +205,7,168,7,127,7,35,7,241,6,253,6,224,6,143,6,65,6,225,5,100,5,25,5,13,5,250,4,216,4,208,4, +187,4,106,4,4,4,187,3,126,3,62,3,25,3,14,3,248,2,218,2,205,2,179,2,108,2,33,2,237,1,164,1, +72,1,15,1,226,0,137,0,52,0,33,0,25,0,238,255,212,255,215,255,184,255,114,255,36,255,191,254,83,254,38,254, +49,254,40,254,7,254,1,254,11,254,245,253,182,253,85,253,212,252,95,252,40,252,40,252,53,252,64,252,65,252,41,252, +15,252,11,252,246,251,171,251,94,251,59,251,29,251,254,250,14,251,50,251,54,251,81,251,163,251,208,251,183,251,173,251, +178,251,133,251,89,251,103,251,115,251,111,251,149,251,203,251,210,251,212,251,228,251,211,251,194,251,234,251,26,252,60,252, +145,252,246,252,15,253,3,253,21,253,31,253,27,253,63,253,109,253,121,253,143,253,200,253,243,253,17,254,61,254,107,254, +158,254,223,254,252,254,220,254,187,254,177,254,172,254,207,254,36,255,97,255,109,255,132,255,169,255,198,255,241,255,38,0, +60,0,87,0,160,0,219,0,226,0,237,0,18,1,40,1,50,1,92,1,169,1,255,1,67,2,89,2,81,2,99,2, +153,2,228,2,61,3,158,3,248,3,75,4,149,4,212,4,43,5,173,5,36,6,115,6,198,6,39,7,102,7,135,7, +182,7,238,7,42,8,150,8,50,9,200,9,81,10,222,10,64,11,87,11,88,11,100,11,96,11,109,11,188,11,24,12, +71,12,133,12,245,12,83,13,152,13,239,13,29,14,236,13,193,13,216,13,205,13,135,13,114,13,132,13,101,13,71,13, +104,13,112,13,43,13,229,12,172,12,77,12,238,11,191,11,153,11,110,11,100,11,94,11,32,11,189,10,84,10,236,9, +166,9,157,9,168,9,138,9,71,9,0,9,195,8,127,8,27,8,164,7,65,7,245,6,178,6,125,6,70,6,233,5, +130,5,61,5,253,4,171,4,109,4,76,4,34,4,235,3,173,3,93,3,25,3,10,3,0,3,206,2,150,2,106,2, +29,2,177,1,70,1,212,0,93,0,21,0,0,0,222,255,157,255,99,255,52,255,239,254,139,254,32,254,201,253,134,253, +60,253,226,252,139,252,64,252,251,251,191,251,146,251,100,251,38,251,223,250,143,250,38,250,158,249,19,249,156,248,43,248, +190,247,133,247,148,247,182,247,185,247,157,247,84,247,224,246,139,246,132,246,135,246,72,246,207,245,66,245,218,244,231,244, +98,245,229,245,67,246,162,246,3,247,70,247,110,247,121,247,65,247,206,246,89,246,25,246,44,246,140,246,3,247,97,247, +171,247,244,247,70,248,154,248,216,248,241,248,243,248,222,248,192,248,218,248,80,249,209,249,18,250,43,250,48,250,24,250, +12,250,41,250,64,250,73,250,132,250,231,250,52,251,124,251,194,251,174,251,55,251,201,250,134,250,72,250,70,250,180,250, +62,251,152,251,246,251,107,252,175,252,172,252,151,252,102,252,3,252,178,251,175,251,210,251,247,251,71,252,194,252,39,253, +97,253,131,253,130,253,100,253,80,253,70,253,47,253,52,253,125,253,214,253,7,254,45,254,103,254,163,254,209,254,243,254, +3,255,14,255,57,255,141,255,227,255,16,0,15,0,3,0,4,0,12,0,29,0,64,0,98,0,135,0,208,0,28,1, +24,1,213,0,171,0,168,0,182,0,234,0,33,1,33,1,30,1,93,1,174,1,237,1,62,2,124,2,96,2,33,2, +15,2,7,2,241,1,234,1,224,1,203,1,244,1,105,2,212,2,20,3,45,3,0,3,178,2,157,2,186,2,203,2, +216,2,218,2,176,2,150,2,209,2,34,3,74,3,113,3,161,3,183,3,213,3,22,4,49,4,2,4,188,3,120,3, +59,3,46,3,81,3,98,3,82,3,87,3,131,3,185,3,215,3,193,3,127,3,61,3,13,3,227,2,196,2,176,2, +134,2,74,2,42,2,52,2,62,2,29,2,192,1,56,1,175,0,61,0,230,255,178,255,154,255,111,255,23,255,181,254, +95,254,2,254,151,253,18,253,75,252,89,251,183,250,167,250,204,250,192,250,129,250,30,250,146,249,9,249,175,248,101,248, +7,248,168,247,80,247,251,246,215,246,238,246,208,246,60,246,143,245,44,245,12,245,24,245,54,245,40,245,210,244,87,244, +230,243,182,243,245,243,94,244,97,244,238,243,127,243,106,243,171,243,20,244,114,244,168,244,192,244,194,244,184,244,200,244, +238,244,236,244,187,244,167,244,230,244,118,245,31,246,129,246,104,246,23,246,218,245,187,245,201,245,17,246,84,246,102,246, +116,246,158,246,216,246,40,247,110,247,94,247,20,247,6,247,71,247,145,247,206,247,241,247,219,247,178,247,187,247,246,247, +78,248,179,248,224,248,167,248,83,248,62,248,105,248,186,248,23,249,81,249,106,249,154,249,217,249,240,249,242,249,15,250, +63,250,119,250,224,250,140,251,80,252,239,252,74,253,111,253,145,253,219,253,83,254,219,254,83,255,184,255,22,0,110,0, +194,0,55,1,207,1,83,2,184,2,39,3,154,3,236,3,54,4,155,4,0,5,98,5,223,5,95,6,188,6,16,7, +103,7,153,7,182,7,5,8,141,8,33,9,163,9,249,9,30,10,65,10,106,10,89,10,21,10,6,10,73,10,143,10, +195,10,22,11,105,11,105,11,38,11,246,10,244,10,13,11,59,11,106,11,133,11,181,11,50,12,203,12,39,13,62,13, +52,13,31,13,28,13,64,13,107,13,130,13,163,13,219,13,38,14,155,14,39,15,113,15,98,15,66,15,49,15,30,15, +47,15,134,15,237,15,43,16,82,16,129,16,185,16,242,16,22,17,255,16,194,16,174,16,237,16,74,17,109,17,69,17, +11,17,225,16,179,16,117,16,43,16,214,15,133,15,74,15,14,15,200,14,152,14,105,14,254,13,126,13,42,13,213,12, +76,12,190,11,69,11,198,10,108,10,91,10,64,10,227,9,120,9,15,9,133,8,241,7,111,7,223,6,84,6,0,6, +199,5,121,5,43,5,215,4,91,4,214,3,112,3,10,3,151,2,65,2,251,1,155,1,71,1,46,1,54,1,60,1, +51,1,13,1,201,0,126,0,51,0,233,255,163,255,87,255,248,254,168,254,128,254,85,254,2,254,159,253,65,253,228,252, +146,252,93,252,59,252,13,252,201,251,122,251,32,251,180,250,73,250,243,249,170,249,103,249,69,249,57,249,10,249,176,248, +92,248,20,248,182,247,80,247,245,246,146,246,49,246,241,245,189,245,118,245,56,245,28,245,250,244,179,244,91,244,13,244, +211,243,178,243,153,243,129,243,132,243,183,243,253,243,43,244,53,244,33,244,248,243,215,243,227,243,21,244,60,244,74,244, +92,244,113,244,107,244,102,244,145,244,198,244,217,244,241,244,46,245,119,245,201,245,57,246,153,246,191,246,212,246,255,246, +47,247,104,247,190,247,23,248,97,248,164,248,217,248,253,248,57,249,142,249,196,249,205,249,206,249,202,249,197,249,229,249, +47,250,123,250,189,250,0,251,46,251,67,251,94,251,134,251,168,251,209,251,24,252,113,252,197,252,25,253,112,253,173,253, +205,253,240,253,30,254,57,254,64,254,79,254,100,254,130,254,200,254,34,255,91,255,139,255,239,255,89,0,141,0,178,0, +227,0,251,0,25,1,135,1,31,2,160,2,42,3,194,3,38,4,87,4,136,4,177,4,204,4,6,5,99,5,199,5, +74,6,236,6,104,7,159,7,194,7,238,7,25,8,72,8,126,8,181,8,251,8,102,9,1,10,187,10,105,11,232,11, +63,12,104,12,77,12,31,12,34,12,59,12,70,12,131,12,8,13,128,13,211,13,40,14,64,14,229,13,119,13,73,13, +45,13,9,13,11,13,43,13,72,13,112,13,150,13,135,13,80,13,37,13,8,13,238,12,220,12,195,12,158,12,133,12, +115,12,59,12,222,11,133,11,57,11,232,10,134,10,11,10,143,9,68,9,61,9,86,9,88,9,18,9,137,8,10,8, +191,7,121,7,28,7,217,6,195,6,184,6,197,6,249,6,255,6,151,6,15,6,158,5,17,5,112,4,16,4,225,3, +139,3,38,3,238,2,194,2,131,2,65,2,218,1,50,1,151,0,61,0,220,255,103,255,39,255,17,255,240,254,227,254, +225,254,132,254,207,253,41,253,160,252,21,252,181,251,128,251,35,251,167,250,92,250,57,250,0,250,148,249,232,248,24,248, +128,247,67,247,35,247,255,246,208,246,119,246,16,246,3,246,80,246,107,246,227,245,207,244,196,243,113,243,231,243,119,244, +127,244,252,243,71,243,211,242,225,242,51,243,82,243,21,243,146,242,251,241,194,241,30,242,154,242,183,242,144,242,86,242, +20,242,3,242,58,242,98,242,80,242,60,242,47,242,45,242,119,242,232,242,234,242,128,242,50,242,23,242,9,242,29,242, +37,242,194,241,59,241,14,241,10,241,226,240,216,240,20,241,68,241,101,241,170,241,217,241,181,241,137,241,134,241,98,241, +14,241,215,240,187,240,138,240,119,240,193,240,49,241,124,241,169,241,186,241,147,241,85,241,61,241,60,241,52,241,61,241, +101,241,151,241,212,241,35,242,99,242,138,242,197,242,18,243,49,243,28,243,32,243,111,243,233,243,90,244,156,244,154,244, +120,244,130,244,208,244,27,245,47,245,61,245,117,245,188,245,11,246,134,246,11,247,85,247,121,247,164,247,190,247,207,247, +39,248,187,248,39,249,102,249,188,249,45,250,165,250,28,251,105,251,110,251,100,251,113,251,134,251,187,251,56,252,212,252, +102,253,3,254,160,254,6,255,73,255,161,255,0,0,63,0,106,0,165,0,31,1,229,1,197,2,137,3,50,4,194,4, +30,5,80,5,134,5,195,5,245,5,38,6,94,6,172,6,53,7,248,7,169,8,11,9,48,9,82,9,158,9,12,10, +96,10,134,10,185,10,45,11,197,11,82,12,185,12,233,12,229,12,209,12,204,12,221,12,253,12,39,13,85,13,127,13, +160,13,190,13,213,13,204,13,150,13,83,13,34,13,10,13,23,13,70,13,113,13,129,13,154,13,208,13,8,14,34,14, +15,14,210,13,154,13,140,13,127,13,90,13,70,13,79,13,74,13,56,13,44,13,9,13,204,12,173,12,170,12,146,12, +112,12,93,12,55,12,251,11,238,11,23,12,51,12,35,12,0,12,213,11,170,11,158,11,174,11,167,11,111,11,43,11, +255,10,220,10,165,10,86,10,255,9,170,9,102,9,52,9,251,8,178,8,110,8,39,8,198,7,104,7,50,7,6,7, +194,6,120,6,48,6,218,5,141,5,96,5,35,5,179,4,67,4,245,3,166,3,71,3,231,2,123,2,252,1,149,1, +86,1,27,1,214,0,156,0,88,0,227,255,100,255,28,255,246,254,199,254,164,254,165,254,169,254,154,254,134,254,89,254, +7,254,199,253,189,253,189,253,164,253,131,253,97,253,70,253,77,253,96,253,76,253,40,253,38,253,45,253,31,253,21,253, +21,253,10,253,4,253,16,253,22,253,26,253,60,253,119,253,171,253,195,253,176,253,129,253,118,253,157,253,185,253,171,253, +140,253,115,253,110,253,126,253,128,253,107,253,104,253,118,253,104,253,80,253,87,253,99,253,97,253,104,253,117,253,127,253, +169,253,237,253,10,254,0,254,1,254,250,253,216,253,206,253,247,253,40,254,87,254,141,254,166,254,146,254,125,254,122,254, +118,254,121,254,146,254,187,254,248,254,88,255,195,255,17,0,56,0,74,0,105,0,167,0,242,0,42,1,78,1,118,1, +179,1,12,2,115,2,209,2,26,3,69,3,86,3,119,3,195,3,17,4,68,4,121,4,188,4,231,4,15,5,110,5, +226,5,38,6,75,6,134,6,202,6,15,7,111,7,209,7,244,7,221,7,209,7,237,7,27,8,67,8,83,8,77,8, +95,8,169,8,255,8,39,9,20,9,208,8,120,8,85,8,134,8,197,8,222,8,241,8,8,9,248,8,207,8,184,8, +144,8,62,8,250,7,229,7,213,7,193,7,185,7,174,7,153,7,147,7,122,7,40,7,194,6,109,6,4,6,142,5, +72,5,50,5,28,5,10,5,12,5,9,5,243,4,203,4,125,4,12,4,166,3,96,3,36,3,244,2,228,2,228,2, +192,2,97,2,236,1,150,1,114,1,114,1,118,1,86,1,14,1,201,0,152,0,93,0,27,0,243,255,198,255,116,255, +48,255,7,255,188,254,109,254,114,254,158,254,141,254,85,254,23,254,182,253,80,253,19,253,174,252,236,251,76,251,42,251, +67,251,89,251,102,251,67,251,234,250,148,250,70,250,221,249,122,249,70,249,26,249,216,248,160,248,117,248,60,248,5,248, +233,247,216,247,182,247,125,247,45,247,212,246,133,246,69,246,16,246,231,245,205,245,204,245,224,245,233,245,197,245,129,245, +59,245,9,245,250,244,7,245,19,245,23,245,44,245,87,245,125,245,146,245,146,245,127,245,114,245,134,245,171,245,190,245, +190,245,205,245,2,246,73,246,130,246,190,246,29,247,132,247,178,247,164,247,140,247,132,247,149,247,211,247,58,248,171,248, +32,249,166,249,19,250,39,250,234,249,148,249,67,249,29,249,94,249,247,249,120,250,175,250,211,250,252,250,28,251,72,251, +123,251,112,251,49,251,34,251,87,251,160,251,0,252,116,252,193,252,249,252,90,253,168,253,136,253,55,253,11,253,248,252, +13,253,128,253,34,254,170,254,33,255,125,255,143,255,118,255,119,255,140,255,168,255,237,255,91,0,207,0,71,1,198,1, +47,2,100,2,104,2,102,2,163,2,19,3,100,3,142,3,211,3,48,4,112,4,163,4,199,4,183,4,157,4,195,4, +2,5,41,5,103,5,194,5,251,5,43,6,133,6,207,6,196,6,151,6,124,6,100,6,88,6,124,6,181,6,216,6, +234,6,242,6,231,6,195,6,144,6,78,6,15,6,248,5,27,6,76,6,81,6,44,6,4,6,218,5,159,5,103,5, +64,5,21,5,252,4,31,5,85,5,93,5,87,5,104,5,95,5,15,5,156,4,41,4,192,3,133,3,129,3,132,3, +117,3,123,3,154,3,156,3,109,3,34,3,188,2,66,2,230,1,190,1,159,1,134,1,156,1,181,1,110,1,213,0, +64,0,174,255,254,254,78,254,165,253,233,252,73,252,10,252,5,252,249,251,233,251,184,251,47,251,108,250,165,249,215,248, +24,248,148,247,21,247,118,246,15,246,12,246,21,246,15,246,41,246,58,246,243,245,95,245,140,244,121,243,134,242,18,242, +224,241,143,241,63,241,30,241,29,241,63,241,138,241,181,241,126,241,24,241,218,240,201,240,191,240,179,240,189,240,247,240, +124,241,74,242,34,243,181,243,229,243,175,243,32,243,149,242,146,242,20,243,172,243,40,244,147,244,231,244,60,245,176,245, +233,245,132,245,223,244,150,244,178,244,26,245,233,245,225,246,130,247,227,247,115,248,24,249,93,249,39,249,156,248,216,247, +33,247,237,246,99,247,50,248,254,248,150,249,218,249,209,249,175,249,113,249,218,248,6,248,123,247,110,247,198,247,139,248, +160,249,133,250,7,251,102,251,153,251,113,251,76,251,130,251,186,251,198,251,255,251,123,252,255,252,155,253,72,254,171,254, +208,254,32,255,128,255,174,255,235,255,95,0,191,0,12,1,146,1,70,2,250,2,195,3,140,4,20,5,114,5,232,5, +109,6,248,6,169,7,97,8,204,8,232,8,10,9,80,9,133,9,126,9,100,9,132,9,235,9,105,10,206,10,4,11, +5,11,232,10,209,10,217,10,24,11,147,11,12,12,69,12,77,12,76,12,84,12,129,12,219,12,37,13,64,13,92,13, +118,13,76,13,244,12,189,12,151,12,82,12,38,12,85,12,172,12,239,12,33,13,53,13,27,13,23,13,110,13,227,13, +36,14,82,14,152,14,211,14,251,14,75,15,194,15,50,16,162,16,14,17,58,17,53,17,66,17,70,17,12,17,209,16, +195,16,187,16,196,16,15,17,87,17,73,17,22,17,251,16,241,16,6,17,66,17,94,17,71,17,61,17,58,17,1,17, +178,16,127,16,74,16,9,16,220,15,183,15,126,15,53,15,197,14,35,14,124,13,225,12,52,12,139,11,2,11,118,10, +233,9,138,9,52,9,193,8,122,8,123,8,83,8,212,7,78,7,220,6,95,6,227,5,120,5,6,5,161,4,111,4, +75,4,254,3,128,3,221,2,47,2,152,1,26,1,162,0,62,0,0,0,206,255,141,255,62,255,243,254,186,254,147,254, +101,254,54,254,31,254,26,254,18,254,7,254,228,253,139,253,36,253,230,252,180,252,94,252,242,251,140,251,32,251,182,250, +103,250,41,250,237,249,176,249,92,249,230,248,111,248,23,248,202,247,108,247,14,247,218,246,216,246,231,246,219,246,155,246, +59,246,241,245,201,245,142,245,32,245,191,244,152,244,115,244,28,244,171,243,69,243,250,242,223,242,229,242,217,242,178,242, +132,242,73,242,10,242,244,241,2,242,22,242,69,242,144,242,199,242,244,242,55,243,100,243,90,243,81,243,82,243,50,243, +30,243,74,243,119,243,127,243,168,243,245,243,37,244,79,244,144,244,169,244,137,244,133,244,187,244,251,244,65,245,163,245, +18,246,134,246,255,246,104,247,187,247,5,248,48,248,46,248,62,248,148,248,2,249,73,249,125,249,198,249,2,250,7,250, +245,249,254,249,30,250,85,250,180,250,30,251,98,251,159,251,244,251,42,252,44,252,77,252,165,252,229,252,6,253,65,253, +149,253,235,253,66,254,126,254,140,254,165,254,221,254,253,254,2,255,26,255,55,255,77,255,123,255,172,255,178,255,198,255, +41,0,145,0,185,0,216,0,34,1,130,1,239,1,111,2,220,2,20,3,54,3,105,3,158,3,183,3,208,3,29,4, +158,4,53,5,211,5,95,6,165,6,167,6,149,6,123,6,104,6,152,6,19,7,147,7,22,8,194,8,114,9,2,10, +137,10,213,10,161,10,91,10,138,10,231,10,15,11,64,11,155,11,219,11,2,12,76,12,148,12,164,12,136,12,60,12, +184,11,77,11,61,11,102,11,157,11,214,11,234,11,208,11,194,11,200,11,140,11,0,11,147,10,134,10,175,10,224,10, +10,11,16,11,217,10,126,10,25,10,145,9,229,8,94,8,48,8,55,8,55,8,29,8,236,7,185,7,136,7,56,7, +196,6,87,6,6,6,191,5,149,5,149,5,154,5,162,5,199,5,213,5,150,5,71,5,13,5,155,4,236,3,116,3, +83,3,81,3,105,3,152,3,151,3,73,3,215,2,69,2,146,1,246,0,159,0,128,0,131,0,150,0,164,0,169,0, +157,0,97,0,247,255,131,255,12,255,148,254,55,254,2,254,223,253,202,253,196,253,187,253,150,253,55,253,158,252,24,252, +212,251,124,251,218,250,92,250,90,250,149,250,213,250,15,251,0,251,135,250,8,250,202,249,149,249,75,249,28,249,14,249, +254,248,252,248,34,249,80,249,84,249,36,249,218,248,138,248,56,248,244,247,196,247,145,247,86,247,67,247,108,247,166,247, +207,247,239,247,252,247,252,247,30,248,92,248,119,248,118,248,127,248,96,248,2,248,191,247,184,247,143,247,46,247,250,246, +34,247,115,247,212,247,53,248,66,248,205,247,43,247,185,246,96,246,246,245,163,245,128,245,117,245,159,245,54,246,247,246, +120,247,187,247,196,247,104,247,225,246,159,246,125,246,45,246,243,245,255,245,27,246,104,246,37,247,200,247,179,247,57,247, +200,246,67,246,213,245,243,245,90,246,139,246,188,246,64,247,198,247,249,247,2,248,254,247,213,247,163,247,177,247,20,248, +145,248,229,248,0,249,9,249,30,249,59,249,71,249,42,249,235,248,183,248,174,248,199,248,11,249,132,249,9,250,98,250, +152,250,190,250,194,250,160,250,110,250,58,250,49,250,140,250,60,251,236,251,113,252,204,252,228,252,173,252,89,252,25,252, +235,251,200,251,213,251,47,252,167,252,246,252,26,253,61,253,98,253,134,253,193,253,5,254,42,254,69,254,135,254,226,254, +53,255,138,255,224,255,31,0,87,0,151,0,194,0,213,0,245,0,44,1,98,1,147,1,193,1,229,1,251,1,245,1, +214,1,191,1,199,1,227,1,39,2,168,2,59,3,183,3,30,4,73,4,8,4,163,3,128,3,150,3,189,3,246,3, +38,4,51,4,78,4,145,4,193,4,181,4,120,4,14,4,148,3,85,3,100,3,152,3,210,3,253,3,6,4,8,4, +44,4,94,4,121,4,113,4,80,4,71,4,136,4,232,4,28,5,44,5,58,5,49,5,27,5,33,5,34,5,240,4, +187,4,176,4,195,4,255,4,98,5,158,5,134,5,89,5,48,5,236,4,194,4,241,4,51,5,71,5,131,5,31,6, +172,6,206,6,172,6,107,6,246,5,120,5,56,5,29,5,246,4,236,4,29,5,70,5,72,5,78,5,65,5,238,4, +127,4,43,4,214,3,138,3,126,3,145,3,139,3,148,3,199,3,230,3,227,3,225,3,185,3,78,3,245,2,214,2, +168,2,90,2,45,2,35,2,12,2,224,1,166,1,89,1,16,1,224,0,204,0,222,0,17,1,56,1,51,1,21,1, +253,0,240,0,218,0,170,0,133,0,165,0,249,0,70,1,130,1,180,1,180,1,129,1,72,1,8,1,182,0,120,0, +100,0,91,0,95,0,137,0,199,0,251,0,35,1,49,1,29,1,7,1,246,0,216,0,198,0,229,0,29,1,92,1, +174,1,253,1,37,2,36,2,250,1,164,1,86,1,59,1,50,1,24,1,25,1,81,1,142,1,163,1,138,1,80,1, +14,1,226,0,229,0,32,1,122,1,196,1,233,1,11,2,60,2,89,2,72,2,39,2,31,2,52,2,76,2,96,2, +124,2,164,2,222,2,37,3,72,3,39,3,235,2,199,2,174,2,151,2,180,2,15,3,125,3,241,3,98,4,161,4, +175,4,181,4,167,4,124,4,113,4,160,4,227,4,70,5,220,5,93,6,146,6,163,6,157,6,100,6,35,6,2,6, +227,5,219,5,35,6,148,6,229,6,45,7,122,7,144,7,122,7,121,7,118,7,67,7,14,7,15,7,58,7,128,7, +218,7,33,8,45,8,10,8,209,7,141,7,69,7,255,6,206,6,195,6,211,6,233,6,253,6,1,7,224,6,155,6, +74,6,9,6,230,5,220,5,209,5,197,5,200,5,203,5,184,5,162,5,146,5,105,5,32,5,208,4,132,4,67,4, +30,4,8,4,228,3,182,3,148,3,119,3,75,3,8,3,180,2,115,2,97,2,99,2,76,2,35,2,0,2,230,1, +203,1,165,1,104,1,34,1,231,0,179,0,133,0,103,0,78,0,37,0,241,255,181,255,100,255,11,255,198,254,151,254, +108,254,58,254,4,254,220,253,190,253,133,253,43,253,214,252,152,252,112,252,117,252,140,252,102,252,12,252,209,251,167,251, +90,251,11,251,214,250,139,250,57,250,20,250,246,249,179,249,126,249,107,249,68,249,22,249,9,249,241,248,174,248,102,248, +30,248,206,247,182,247,227,247,251,247,229,247,221,247,212,247,149,247,61,247,253,246,201,246,158,246,153,246,162,246,146,246, +126,246,124,246,110,246,59,246,6,246,231,245,201,245,168,245,157,245,169,245,171,245,174,245,205,245,242,245,254,245,17,246, +68,246,111,246,106,246,52,246,224,245,152,245,148,245,207,245,30,246,113,246,183,246,214,246,235,246,30,247,66,247,44,247, +26,247,66,247,122,247,165,247,235,247,92,248,219,248,96,249,234,249,97,250,174,250,216,250,249,250,30,251,64,251,103,251, +176,251,27,252,145,252,20,253,163,253,23,254,99,254,165,254,213,254,232,254,14,255,92,255,168,255,254,255,142,0,61,1, +221,1,112,2,219,2,245,2,254,2,56,3,121,3,171,3,14,4,157,4,7,5,84,5,178,5,6,6,51,6,79,6, +94,6,89,6,104,6,161,6,231,6,43,7,117,7,203,7,53,8,189,8,61,9,134,9,152,9,142,9,128,9,142,9, +209,9,66,10,197,10,59,11,152,11,223,11,6,12,2,12,234,11,221,11,202,11,163,11,157,11,211,11,26,12,82,12, +150,12,233,12,25,13,18,13,247,12,230,12,210,12,176,12,161,12,184,12,216,12,246,12,53,13,128,13,124,13,25,13, +163,12,67,12,218,11,91,11,227,10,147,10,114,10,104,10,87,10,56,10,250,9,127,9,221,8,62,8,156,7,245,6, +128,6,75,6,43,6,30,6,48,6,37,6,200,5,56,5,159,4,7,4,117,3,219,2,48,2,172,1,119,1,90,1, +25,1,185,0,55,0,156,255,45,255,252,254,187,254,90,254,12,254,195,253,100,253,35,253,27,253,5,253,187,252,93,252, +0,252,170,251,125,251,132,251,126,251,40,251,139,250,247,249,156,249,72,249,184,248,248,247,60,247,176,246,143,246,220,246, +22,247,183,246,209,245,207,244,254,243,129,243,81,243,57,243,43,243,75,243,147,243,206,243,228,243,177,243,241,242,183,241, +132,240,156,239,221,238,90,238,107,238,255,238,153,239,244,239,14,240,173,239,168,238,93,237,51,236,40,235,92,234,52,234, +164,234,68,235,15,236,3,237,145,237,84,237,158,236,178,235,149,234,167,233,85,233,120,233,216,233,137,234,85,235,230,235, +92,236,193,236,137,236,130,235,96,234,191,233,176,233,78,234,164,235,32,237,26,238,164,238,21,239,65,239,225,238,78,238, +14,238,44,238,145,238,99,239,129,240,114,241,32,242,180,242,215,242,58,242,112,241,40,241,75,241,148,241,18,242,197,242, +156,243,184,244,224,245,124,246,120,246,69,246,255,245,169,245,165,245,32,246,221,246,205,247,252,248,3,250,141,250,205,250, +209,250,69,250,82,249,198,248,14,249,205,249,149,250,89,251,33,252,206,252,73,253,151,253,184,253,186,253,227,253,114,254, +80,255,60,0,43,1,46,2,44,3,228,3,69,4,130,4,211,4,63,5,169,5,0,6,73,6,176,6,108,7,93,8, +8,9,73,9,135,9,250,9,108,10,195,10,31,11,151,11,84,12,102,13,100,14,249,14,120,15,37,16,168,16,221,16, +36,17,144,17,247,17,126,18,32,19,107,19,83,19,57,19,22,19,170,18,72,18,102,18,227,18,100,19,200,19,251,19, +245,19,227,19,232,19,223,19,178,19,165,19,249,19,125,20,207,20,223,20,238,20,27,21,75,21,76,21,240,20,69,20, +177,19,107,19,41,19,187,18,111,18,111,18,123,18,117,18,101,18,26,18,129,17,227,16,111,16,26,16,19,16,131,16, +20,17,87,17,74,17,35,17,237,16,155,16,46,16,175,15,48,15,199,14,132,14,83,14,252,13,110,13,237,12,159,12, +65,12,166,11,16,11,162,10,45,10,169,9,76,9,41,9,32,9,37,9,37,9,248,8,158,8,69,8,249,7,153,7, +21,7,138,6,30,6,221,5,168,5,49,5,86,4,109,3,215,2,103,2,204,1,51,1,206,0,86,0,193,255,106,255, +47,255,172,254,46,254,29,254,26,254,223,253,196,253,185,253,74,253,187,252,145,252,128,252,33,252,182,251,88,251,198,250, +52,250,232,249,135,249,211,248,50,248,224,247,167,247,115,247,70,247,229,246,89,246,19,246,44,246,72,246,68,246,82,246, +122,246,143,246,135,246,120,246,106,246,93,246,90,246,91,246,81,246,64,246,56,246,25,246,196,245,101,245,53,245,36,245, +24,245,28,245,38,245,34,245,50,245,121,245,215,245,29,246,74,246,114,246,174,246,15,247,118,247,172,247,171,247,157,247, +186,247,44,248,209,248,65,249,77,249,44,249,7,249,225,248,197,248,186,248,172,248,180,248,0,249,113,249,211,249,42,250, +120,250,159,250,188,250,9,251,105,251,147,251,150,251,190,251,25,252,136,252,3,253,119,253,177,253,177,253,194,253,247,253, +3,254,211,253,168,253,155,253,172,253,8,254,166,254,26,255,78,255,135,255,186,255,198,255,3,0,148,0,19,1,104,1, +225,1,106,2,202,2,51,3,167,3,200,3,173,3,201,3,18,4,79,4,154,4,235,4,22,5,97,5,255,5,121,6, +121,6,97,6,120,6,148,6,185,6,27,7,151,7,0,8,128,8,43,9,185,9,1,10,43,10,75,10,71,10,35,10, +21,10,60,10,120,10,154,10,148,10,136,10,154,10,184,10,168,10,93,10,16,10,233,9,231,9,254,9,26,10,32,10, +34,10,78,10,126,10,107,10,42,10,239,9,181,9,112,9,67,9,54,9,46,9,30,9,250,8,179,8,96,8,20,8, +183,7,72,7,231,6,153,6,92,6,79,6,97,6,83,6,33,6,245,5,212,5,176,5,138,5,90,5,28,5,245,4, +238,4,220,4,176,4,134,4,101,4,48,4,215,3,98,3,244,2,166,2,99,2,10,2,164,1,78,1,28,1,22,1, +20,1,218,0,120,0,38,0,230,255,163,255,109,255,57,255,235,254,148,254,76,254,253,253,172,253,116,253,54,253,207,252, +105,252,20,252,166,251,45,251,200,250,78,250,171,249,29,249,189,248,104,248,30,248,229,247,154,247,66,247,13,247,237,246, +191,246,142,246,87,246,246,245,142,245,100,245,91,245,47,245,220,244,122,244,15,244,182,243,136,243,88,243,252,242,170,242, +170,242,216,242,234,242,211,242,155,242,58,242,217,241,166,241,146,241,147,241,214,241,81,242,182,242,1,243,97,243,178,243, +202,243,207,243,198,243,141,243,97,243,118,243,126,243,101,243,167,243,87,244,247,244,121,245,28,246,161,246,174,246,113,246, +45,246,245,245,10,246,162,246,126,247,82,248,20,249,179,249,23,250,89,250,149,250,197,250,249,250,76,251,172,251,246,251, +51,252,124,252,215,252,66,253,187,253,57,254,171,254,3,255,73,255,111,255,93,255,64,255,129,255,54,0,21,1,245,1, +189,2,41,3,54,3,62,3,91,3,99,3,143,3,41,4,236,4,117,5,225,5,76,6,138,6,153,6,175,6,217,6, +27,7,132,7,240,7,41,8,91,8,210,8,107,9,224,9,61,10,174,10,33,11,111,11,148,11,155,11,155,11,202,11, +68,12,228,12,130,13,41,14,187,14,231,14,161,14,44,14,179,13,77,13,57,13,140,13,8,14,123,14,214,14,245,14, +224,14,212,14,203,14,136,14,37,14,226,13,176,13,114,13,74,13,56,13,19,13,226,12,201,12,199,12,203,12,184,12, +93,12,175,11,219,10,5,10,69,9,180,8,80,8,248,7,165,7,86,7,243,6,131,6,44,6,229,5,140,5,34,5, +175,4,46,4,157,3,231,2,9,2,83,1,22,1,53,1,97,1,108,1,33,1,101,0,121,255,164,254,227,253,62,253, +197,252,79,252,213,251,177,251,235,251,1,252,161,251,240,250,10,250,22,249,116,248,65,248,23,248,178,247,60,247,191,246, +34,246,142,245,67,245,6,245,96,244,62,243,235,241,199,240,53,240,92,240,197,240,198,240,61,240,103,239,102,238,100,237, +161,236,4,236,98,235,22,235,133,235,94,236,32,237,176,237,239,237,141,237,168,236,191,235,10,235,128,234,43,234,16,234, +37,234,127,234,46,235,247,235,127,236,162,236,111,236,245,235,69,235,139,234,18,234,9,234,125,234,113,235,177,236,200,237, +112,238,185,238,157,238,37,238,220,237,64,238,5,239,179,239,90,240,20,241,172,241,10,242,46,242,240,241,122,241,98,241, +216,241,117,242,10,243,183,243,110,244,16,245,172,245,52,246,122,246,118,246,64,246,253,245,250,245,132,246,131,247,152,248, +159,249,191,250,237,251,187,252,202,252,45,252,58,251,93,250,38,250,235,250,84,252,197,253,11,255,20,0,161,0,180,0, +167,0,151,0,108,0,102,0,220,0,169,1,145,2,167,3,216,4,189,5,61,6,186,6,101,7,250,7,50,8,25,8, +235,7,247,7,127,8,97,9,47,10,205,10,118,11,17,12,72,12,49,12,51,12,109,12,225,12,164,13,134,14,55,15, +193,15,45,16,45,16,204,15,162,15,233,15,78,16,191,16,106,17,45,18,189,18,247,18,193,18,35,18,126,17,56,17, +90,17,171,17,234,17,250,17,247,17,12,18,53,18,96,18,140,18,177,18,199,18,206,18,181,18,122,18,82,18,77,18, +63,18,40,18,67,18,124,18,136,18,94,18,8,18,123,17,252,16,243,16,50,17,52,17,237,16,164,16,74,16,175,15, +1,15,141,14,103,14,137,14,248,14,133,15,206,15,175,15,73,15,151,14,145,13,155,12,45,12,35,12,20,12,246,11, +232,11,208,11,159,11,92,11,228,10,32,10,86,9,193,8,65,8,181,7,44,7,178,6,95,6,90,6,140,6,148,6, +65,6,185,5,27,5,94,4,148,3,251,2,175,2,139,2,111,2,83,2,29,2,163,1,234,0,8,0,16,255,72,254, +255,253,21,254,34,254,9,254,207,253,84,253,167,252,16,252,148,251,6,251,133,250,62,250,21,250,251,249,3,250,12,250, +235,249,171,249,98,249,252,248,111,248,189,247,240,246,66,246,254,245,29,246,88,246,125,246,120,246,67,246,243,245,141,245, +253,244,83,244,194,243,113,243,122,243,215,243,67,244,118,244,105,244,58,244,248,243,198,243,175,243,131,243,39,243,218,242, +212,242,0,243,47,243,78,243,80,243,51,243,17,243,15,243,44,243,74,243,83,243,88,243,116,243,178,243,8,244,90,244, +127,244,117,244,112,244,151,244,235,244,104,245,244,245,88,246,145,246,210,246,30,247,69,247,67,247,58,247,57,247,87,247, +187,247,76,248,199,248,22,249,88,249,165,249,250,249,67,250,119,250,159,250,209,250,37,251,167,251,52,252,153,252,222,252, +45,253,127,253,189,253,242,253,34,254,73,254,139,254,1,255,120,255,206,255,30,0,100,0,124,0,134,0,175,0,224,0, +10,1,83,1,190,1,48,2,166,2,25,3,96,3,115,3,127,3,155,3,200,3,15,4,109,4,200,4,18,5,88,5, +167,5,237,5,16,6,24,6,32,6,45,6,70,6,142,6,246,6,48,7,55,7,97,7,190,7,8,8,46,8,88,8, +137,8,185,8,253,8,71,9,111,9,139,9,200,9,16,10,57,10,66,10,68,10,76,10,100,10,150,10,218,10,13,11, +25,11,22,11,22,11,250,10,180,10,116,10,95,10,101,10,137,10,222,10,60,11,100,11,87,11,47,11,240,10,174,10, +135,10,116,10,84,10,48,10,40,10,59,10,76,10,63,10,20,10,212,9,133,9,49,9,221,8,126,8,26,8,210,7, +166,7,120,7,77,7,63,7,44,7,238,6,158,6,94,6,34,6,229,5,161,5,61,5,218,4,180,4,171,4,106,4, +244,3,130,3,34,3,216,2,170,2,110,2,9,2,164,1,88,1,255,0,136,0,2,0,105,255,201,254,97,254,80,254, +100,254,97,254,52,254,240,253,177,253,120,253,53,253,215,252,92,252,208,251,88,251,13,251,220,250,162,250,86,250,2,250, +192,249,165,249,151,249,94,249,238,248,103,248,234,247,152,247,113,247,73,247,7,247,218,246,217,246,220,246,206,246,198,246, +178,246,108,246,9,246,185,245,143,245,125,245,86,245,241,244,116,244,41,244,22,244,8,244,234,243,196,243,161,243,145,243, +151,243,138,243,63,243,208,242,136,242,148,242,221,242,43,243,92,243,108,243,116,243,150,243,197,243,203,243,167,243,155,243, +207,243,41,244,136,244,220,244,11,245,17,245,25,245,78,245,196,245,97,246,224,246,25,247,79,247,199,247,100,248,250,248, +128,249,233,249,60,250,173,250,70,251,199,251,28,252,118,252,240,252,150,253,127,254,135,255,78,0,168,0,169,0,127,0, +119,0,199,0,75,1,201,1,91,2,48,3,40,4,245,4,101,5,118,5,85,5,68,5,111,5,214,5,77,6,168,6, +236,6,65,7,172,7,24,8,128,8,215,8,254,8,1,9,9,9,23,9,27,9,42,9,89,9,158,9,252,9,122,10, +243,10,49,11,49,11,33,11,56,11,135,11,239,11,73,12,159,12,2,13,97,13,150,13,150,13,112,13,87,13,132,13, +248,13,123,14,221,14,21,15,32,15,247,14,183,14,140,14,126,14,113,14,110,14,152,14,221,14,21,15,54,15,51,15, +234,14,126,14,68,14,50,14,0,14,172,13,78,13,212,12,95,12,58,12,52,12,233,11,125,11,56,11,223,10,55,10, +110,9,166,8,214,7,39,7,193,6,117,6,11,6,145,5,13,5,102,4,178,3,41,3,204,2,109,2,244,1,107,1, +219,0,71,0,179,255,18,255,73,254,114,253,208,252,103,252,254,251,146,251,59,251,206,250,50,250,175,249,91,249,235,248, +97,248,245,247,113,247,154,246,188,245,20,245,110,244,213,243,170,243,211,243,224,243,188,243,120,243,232,242,11,242,55,241, +132,240,202,239,36,239,206,238,180,238,174,238,187,238,179,238,83,238,187,237,52,237,170,236,231,235,38,235,188,234,151,234, +136,234,158,234,222,234,51,235,149,235,232,235,226,235,124,235,253,234,134,234,38,234,29,234,143,234,58,235,222,235,104,236, +188,236,195,236,156,236,98,236,36,236,21,236,84,236,180,236,18,237,122,237,219,237,14,238,36,238,69,238,130,238,234,238, +113,239,230,239,54,240,141,240,9,241,151,241,20,242,104,242,149,242,186,242,227,242,6,243,48,243,125,243,224,243,76,244, +217,244,124,245,0,246,85,246,129,246,139,246,146,246,206,246,70,247,219,247,127,248,35,249,181,249,51,250,169,250,26,251, +138,251,8,252,157,252,79,253,7,254,141,254,213,254,23,255,114,255,201,255,30,0,157,0,70,1,251,1,184,2,106,3, +245,3,107,4,234,4,72,5,103,5,135,5,246,5,154,6,70,7,5,8,211,8,128,9,2,10,133,10,255,10,63,11, +77,11,74,11,61,11,75,11,180,11,105,12,26,13,187,13,87,14,191,14,215,14,201,14,169,14,115,14,95,14,154,14, +254,14,109,15,249,15,132,16,199,16,197,16,179,16,170,16,169,16,169,16,163,16,167,16,198,16,245,16,44,17,93,17, +88,17,17,17,213,16,206,16,201,16,173,16,158,16,161,16,182,16,253,16,97,17,149,17,138,17,86,17,232,16,86,16, +250,15,235,15,244,15,13,16,64,16,107,16,121,16,115,16,50,16,154,15,246,14,147,14,84,14,15,14,227,13,224,13, +211,13,169,13,129,13,88,13,0,13,128,12,2,12,140,11,15,11,167,10,115,10,81,10,32,10,233,9,174,9,77,9, +191,8,32,8,129,7,245,6,155,6,110,6,55,6,215,5,110,5,26,5,197,4,70,4,156,3,245,2,125,2,68,2, +58,2,50,2,4,2,181,1,88,1,234,0,111,0,1,0,156,255,35,255,168,254,81,254,33,254,22,254,41,254,19,254, +172,253,50,253,223,252,140,252,26,252,153,251,23,251,183,250,186,250,250,250,5,251,191,250,91,250,235,249,125,249,60,249, +25,249,229,248,174,248,132,248,72,248,255,247,220,247,196,247,119,247,7,247,179,246,143,246,142,246,140,246,92,246,0,246, +174,245,133,245,119,245,105,245,60,245,240,244,177,244,143,244,109,244,74,244,79,244,123,244,165,244,188,244,178,244,123,244, +60,244,36,244,37,244,29,244,44,244,106,244,164,244,188,244,217,244,8,245,23,245,9,245,19,245,57,245,89,245,136,245, +216,245,12,246,9,246,27,246,114,246,225,246,75,247,181,247,4,248,35,248,53,248,92,248,146,248,218,248,54,249,141,249, +218,249,62,250,184,250,30,251,86,251,109,251,143,251,225,251,84,252,181,252,237,252,21,253,81,253,173,253,16,254,86,254, +145,254,229,254,63,255,142,255,243,255,95,0,136,0,138,0,199,0,47,1,119,1,173,1,228,1,248,1,2,2,67,2, +157,2,218,2,21,3,89,3,128,3,162,3,236,3,44,4,52,4,52,4,78,4,106,4,154,4,243,4,72,5,109,5, +125,5,144,5,159,5,186,5,236,5,18,6,24,6,32,6,64,6,101,6,125,6,141,6,155,6,173,6,213,6,23,7, +85,7,113,7,119,7,128,7,144,7,157,7,165,7,182,7,222,7,25,8,82,8,132,8,187,8,233,8,248,8,247,8, +2,9,8,9,241,8,207,8,189,8,205,8,3,9,75,9,121,9,134,9,145,9,170,9,189,9,170,9,92,9,245,8, +177,8,157,8,172,8,220,8,10,9,250,8,189,8,153,8,132,8,83,8,31,8,247,7,178,7,90,7,32,7,242,6, +187,6,162,6,157,6,90,6,231,5,157,5,129,5,87,5,14,5,179,4,84,4,20,4,246,3,206,3,128,3,33,3, +190,2,92,2,2,2,188,1,155,1,166,1,168,1,102,1,253,0,162,0,75,0,232,255,148,255,84,255,20,255,228,254, +215,254,215,254,206,254,184,254,135,254,60,254,254,253,214,253,151,253,56,253,223,252,148,252,89,252,86,252,151,252,208,252, +198,252,146,252,85,252,15,252,201,251,143,251,66,251,218,250,148,250,139,250,144,250,127,250,92,250,25,250,186,249,107,249, +59,249,18,249,248,248,223,248,130,248,239,247,141,247,101,247,35,247,211,246,181,246,177,246,167,246,166,246,148,246,66,246, +228,245,185,245,149,245,73,245,3,245,224,244,190,244,150,244,136,244,159,244,193,244,220,244,235,244,246,244,255,244,9,245, +21,245,21,245,251,244,225,244,248,244,66,245,169,245,47,246,184,246,18,247,77,247,154,247,239,247,77,248,215,248,105,249, +180,249,203,249,235,249,8,250,53,250,193,250,155,251,99,252,32,253,247,253,157,254,215,254,234,254,251,254,221,254,183,254, +247,254,165,255,125,0,109,1,91,2,248,2,60,3,123,3,197,3,231,3,233,3,252,3,25,4,57,4,143,4,32,5, +170,5,25,6,127,6,201,6,221,6,223,6,224,6,201,6,185,6,242,6,121,7,31,8,188,8,38,9,66,9,41,9, +5,9,241,8,255,8,68,9,196,9,130,10,81,11,209,11,212,11,145,11,56,11,200,10,111,10,112,10,206,10,110,11, +60,12,240,12,71,13,96,13,101,13,57,13,217,12,124,12,48,12,242,11,243,11,78,12,201,12,56,13,164,13,253,13, +22,14,211,13,65,13,136,12,217,11,68,11,210,10,169,10,211,10,26,11,69,11,60,11,233,10,73,10,140,9,226,8, +99,8,23,8,236,7,176,7,76,7,205,6,65,6,178,5,36,5,136,4,230,3,119,3,66,3,250,2,124,2,245,1, +107,1,198,0,34,0,143,255,211,254,231,253,40,253,177,252,57,252,189,251,123,251,93,251,21,251,174,250,78,250,209,249, +39,249,122,248,185,247,197,246,250,245,173,245,148,245,98,245,59,245,24,245,178,244,39,244,172,243,3,243,14,242,48,241, +127,240,190,239,49,239,66,239,164,239,209,239,193,239,136,239,19,239,142,238,37,238,143,237,161,236,206,235,122,235,122,235, +152,235,235,235,115,236,234,236,18,237,238,236,153,236,37,236,179,235,106,235,83,235,113,235,223,235,147,236,55,237,144,237, +184,237,191,237,170,237,177,237,240,237,40,238,76,238,171,238,52,239,131,239,150,239,162,239,142,239,88,239,81,239,136,239, +185,239,248,239,135,240,46,241,164,241,17,242,146,242,220,242,206,242,185,242,211,242,16,243,102,243,206,243,56,244,189,244, +142,245,120,246,9,247,41,247,28,247,16,247,22,247,75,247,176,247,39,248,169,248,64,249,214,249,101,250,253,250,135,251, +226,251,46,252,153,252,35,253,201,253,135,254,34,255,119,255,199,255,85,0,12,1,205,1,140,2,44,3,167,3,34,4, +158,4,236,4,2,5,17,5,79,5,205,5,105,6,246,6,132,7,53,8,232,8,112,9,229,9,85,10,165,10,220,10, +6,11,7,11,248,10,51,11,184,11,58,12,178,12,77,13,240,13,96,14,131,14,86,14,0,14,218,13,253,13,37,14, +53,14,87,14,154,14,226,14,37,15,100,15,138,15,150,15,162,15,196,15,235,15,0,16,4,16,10,16,18,16,15,16, +23,16,60,16,92,16,79,16,48,16,30,16,18,16,10,16,21,16,26,16,0,16,248,15,39,16,72,16,18,16,179,15, +126,15,117,15,119,15,132,15,140,15,111,15,72,15,61,15,39,15,220,14,134,14,71,14,254,13,169,13,118,13,97,13, +58,13,245,12,144,12,23,12,196,11,170,11,120,11,255,10,125,10,22,10,178,9,102,9,73,9,40,9,216,8,130,8, +67,8,4,8,183,7,94,7,231,6,90,6,224,5,148,5,97,5,17,5,131,4,222,3,99,3,30,3,0,3,249,2, +211,2,94,2,210,1,124,1,56,1,206,0,84,0,227,255,121,255,60,255,63,255,65,255,23,255,236,254,199,254,120,254, +21,254,201,253,125,253,16,253,159,252,62,252,227,251,170,251,173,251,189,251,166,251,113,251,50,251,219,250,110,250,20,250, +217,249,171,249,145,249,142,249,134,249,99,249,59,249,26,249,247,248,217,248,191,248,129,248,32,248,225,247,218,247,208,247, +163,247,111,247,70,247,45,247,45,247,57,247,44,247,253,246,194,246,150,246,146,246,175,246,187,246,160,246,140,246,165,246, +211,246,247,246,12,247,26,247,34,247,31,247,29,247,53,247,81,247,70,247,34,247,32,247,64,247,112,247,181,247,235,247, +221,247,206,247,22,248,128,248,181,248,215,248,4,249,23,249,51,249,162,249,53,250,143,250,190,250,229,250,247,250,10,251, +80,251,185,251,17,252,75,252,113,252,154,252,231,252,67,253,116,253,110,253,96,253,110,253,173,253,21,254,115,254,168,254, +223,254,62,255,162,255,240,255,53,0,105,0,124,0,136,0,169,0,210,0,249,0,46,1,108,1,166,1,231,1,47,2, +79,2,50,2,2,2,223,1,198,1,207,1,14,2,86,2,131,2,185,2,255,2,25,3,7,3,7,3,23,3,22,3, +35,3,102,3,183,3,238,3,23,4,51,4,50,4,33,4,25,4,22,4,26,4,46,4,81,4,120,4,160,4,202,4, +248,4,40,5,79,5,96,5,90,5,79,5,97,5,169,5,8,6,87,6,165,6,254,6,60,7,87,7,104,7,83,7, +5,7,207,6,231,6,19,7,67,7,162,7,255,7,12,8,247,7,242,7,208,7,137,7,92,7,76,7,63,7,93,7, +170,7,212,7,198,7,184,7,168,7,117,7,62,7,38,7,6,7,191,6,106,6,45,6,13,6,245,5,198,5,119,5, +36,5,229,4,177,4,120,4,56,4,242,3,167,3,105,3,67,3,36,3,239,2,166,2,107,2,76,2,51,2,11,2, +205,1,125,1,55,1,21,1,248,0,184,0,96,0,28,0,237,255,198,255,172,255,155,255,123,255,62,255,247,254,189,254, +146,254,110,254,85,254,84,254,103,254,125,254,148,254,167,254,151,254,91,254,11,254,184,253,109,253,65,253,44,253,14,253, +241,252,239,252,239,252,207,252,149,252,64,252,196,251,71,251,248,250,197,250,147,250,114,250,94,250,56,250,5,250,228,249, +217,249,193,249,127,249,20,249,161,248,60,248,228,247,150,247,79,247,7,247,213,246,219,246,230,246,167,246,64,246,3,246, +209,245,101,245,237,244,173,244,155,244,170,244,237,244,62,245,95,245,98,245,128,245,165,245,163,245,128,245,93,245,60,245, +37,245,58,245,136,245,241,245,88,246,183,246,5,247,57,247,83,247,73,247,28,247,251,246,28,247,124,247,0,248,165,248, +80,249,207,249,30,250,90,250,123,250,124,250,138,250,207,250,67,251,212,251,129,252,57,253,221,253,87,254,153,254,169,254, +172,254,205,254,31,255,137,255,229,255,61,0,204,0,150,1,85,2,225,2,76,3,150,3,183,3,201,3,223,3,0,4, +84,4,243,4,166,5,66,6,219,6,111,7,206,7,237,7,237,7,232,7,248,7,60,8,173,8,37,9,142,9,226,9, +39,10,106,10,173,10,243,10,64,11,126,11,157,11,192,11,13,12,106,12,187,12,13,13,92,13,148,13,204,13,12,14, +35,14,11,14,0,14,6,14,14,14,68,14,178,14,245,14,228,14,205,14,204,14,168,14,97,14,60,14,63,14,70,14, +86,14,122,14,139,14,119,14,96,14,70,14,254,13,142,13,40,13,205,12,95,12,1,12,230,11,234,11,213,11,169,11, +110,11,8,11,114,10,196,9,9,9,88,8,222,7,163,7,131,7,112,7,91,7,27,7,156,6,255,5,91,5,177,4, +23,4,146,3,4,3,113,2,10,2,207,1,131,1,12,1,138,0,3,0,93,255,165,254,253,253,97,253,196,252,70,252, +4,252,202,251,94,251,210,250,68,250,163,249,240,248,87,248,227,247,122,247,26,247,214,246,168,246,115,246,21,246,121,245, +175,244,231,243,70,243,207,242,115,242,24,242,160,241,1,241,81,240,188,239,81,239,242,238,139,238,63,238,26,238,239,237, +167,237,73,237,180,236,221,235,38,235,215,234,187,234,167,234,183,234,205,234,168,234,117,234,117,234,99,234,238,233,88,233, +254,232,211,232,188,232,218,232,60,233,176,233,24,234,126,234,203,234,211,234,162,234,79,234,194,233,40,233,35,233,0,234, +61,235,86,236,56,237,198,237,212,237,146,237,55,237,176,236,50,236,70,236,242,236,213,237,231,238,31,240,244,240,36,241, +19,241,249,240,200,240,188,240,4,241,91,241,194,241,177,242,19,244,59,245,239,245,110,246,185,246,178,246,151,246,161,246, +184,246,246,246,192,247,29,249,139,250,177,251,141,252,5,253,235,252,126,252,56,252,74,252,177,252,130,253,160,254,180,255, +171,0,167,1,101,2,127,2,45,2,10,2,72,2,193,2,104,3,51,4,0,5,200,5,144,6,47,7,136,7,205,7, +40,8,117,8,153,8,194,8,27,9,157,9,66,10,249,10,152,11,20,12,143,12,237,12,233,12,175,12,190,12,54,13, +201,13,79,14,215,14,90,15,197,15,17,16,40,16,11,16,3,16,90,16,251,16,138,17,218,17,8,18,49,18,67,18, +55,18,54,18,90,18,135,18,174,18,222,18,1,19,1,19,0,19,20,19,20,19,238,18,216,18,246,18,43,19,62,19, +6,19,163,18,121,18,163,18,210,18,216,18,202,18,158,18,71,18,247,17,199,17,133,17,49,17,4,17,234,16,173,16, +105,16,56,16,214,15,31,15,104,14,4,14,224,13,195,13,147,13,72,13,227,12,124,12,45,12,228,11,109,11,208,10, +83,10,11,10,204,9,125,9,34,9,176,8,43,8,186,7,109,7,29,7,176,6,35,6,115,5,191,4,67,4,9,4, +222,3,152,3,66,3,244,2,175,2,93,2,227,1,76,1,199,0,119,0,81,0,53,0,8,0,208,255,143,255,56,255, +195,254,69,254,203,253,93,253,19,253,242,252,204,252,138,252,73,252,1,252,148,251,33,251,220,250,169,250,84,250,243,249, +176,249,143,249,146,249,175,249,175,249,106,249,17,249,212,248,146,248,34,248,167,247,86,247,49,247,35,247,49,247,76,247, +66,247,249,246,134,246,11,246,178,245,162,245,191,245,189,245,147,245,123,245,136,245,151,245,156,245,151,245,114,245,68,245, +70,245,115,245,148,245,153,245,146,245,134,245,138,245,177,245,216,245,212,245,188,245,183,245,188,245,208,245,23,246,129,246, +201,246,225,246,9,247,88,247,157,247,179,247,178,247,199,247,11,248,122,248,244,248,86,249,147,249,188,249,225,249,11,250, +53,250,93,250,148,250,223,250,30,251,71,251,133,251,219,251,17,252,36,252,77,252,147,252,213,252,36,253,136,253,211,253, +1,254,77,254,179,254,249,254,29,255,66,255,96,255,120,255,168,255,231,255,15,0,46,0,105,0,178,0,231,0,15,1, +54,1,72,1,61,1,54,1,88,1,149,1,216,1,53,2,185,2,53,3,128,3,160,3,165,3,171,3,223,3,50,4, +94,4,98,4,130,4,198,4,14,5,103,5,195,5,222,5,193,5,185,5,204,5,216,5,242,5,35,6,77,6,135,6, +238,6,77,7,121,7,157,7,193,7,190,7,176,7,220,7,54,8,150,8,246,8,64,9,79,9,51,9,16,9,236,8, +208,8,202,8,201,8,174,8,144,8,155,8,212,8,14,9,28,9,252,8,214,8,188,8,164,8,146,8,145,8,144,8, +136,8,145,8,182,8,221,8,240,8,220,8,149,8,64,8,5,8,217,7,172,7,156,7,163,7,134,7,59,7,245,6, +183,6,100,6,20,6,231,5,203,5,188,5,201,5,219,5,204,5,175,5,145,5,81,5,242,4,163,4,108,4,55,4, +14,4,242,3,201,3,146,3,97,3,36,3,209,2,133,2,58,2,206,1,81,1,242,0,178,0,135,0,110,0,73,0, +6,0,214,255,215,255,213,255,156,255,63,255,230,254,169,254,146,254,131,254,84,254,6,254,181,253,111,253,60,253,17,253, +208,252,119,252,33,252,200,251,95,251,4,251,202,250,152,250,98,250,55,250,7,250,204,249,161,249,128,249,71,249,6,249, +220,248,186,248,134,248,59,248,204,247,85,247,15,247,221,246,123,246,6,246,192,245,150,245,94,245,38,245,229,244,140,244, +78,244,62,244,30,244,230,243,209,243,201,243,141,243,79,243,104,243,193,243,22,244,74,244,77,244,41,244,21,244,42,244, +57,244,30,244,240,243,206,243,208,243,4,244,84,244,141,244,158,244,161,244,182,244,244,244,82,245,171,245,236,245,25,246, +57,246,99,246,191,246,76,247,206,247,28,248,80,248,144,248,227,248,56,249,116,249,134,249,138,249,174,249,238,249,28,250, +54,250,94,250,147,250,182,250,215,250,36,251,151,251,3,252,96,252,193,252,47,253,181,253,81,254,206,254,253,254,16,255, +87,255,207,255,78,0,218,0,119,1,254,1,110,2,249,2,137,3,211,3,225,3,246,3,15,4,26,4,81,4,228,4, +167,5,117,6,89,7,56,8,229,8,111,9,217,9,242,9,211,9,241,9,111,10,15,11,186,11,129,12,67,13,222,13, +79,14,124,14,80,14,22,14,24,14,42,14,30,14,45,14,135,14,249,14,98,15,212,15,57,16,99,16,97,16,84,16, +55,16,23,16,41,16,109,16,173,16,221,16,19,17,55,17,23,17,185,16,56,16,171,15,65,15,38,15,71,15,98,15, +88,15,47,15,243,14,175,14,85,14,203,13,42,13,180,12,138,12,151,12,197,12,246,12,5,13,237,12,192,12,120,12, +15,12,155,11,29,11,117,10,178,9,28,9,224,8,223,8,206,8,111,8,219,7,93,7,0,7,134,6,224,5,58,5, +166,4,29,4,180,3,129,3,106,3,58,3,213,2,67,2,164,1,28,1,177,0,83,0,227,255,76,255,162,254,253,253, +82,253,146,252,206,251,10,251,64,250,158,249,84,249,40,249,190,248,31,248,138,247,11,247,145,246,17,246,123,245,218,244, +90,244,3,244,186,243,124,243,79,243,17,243,158,242,250,241,59,241,129,240,221,239,51,239,115,238,213,237,127,237,63,237, +234,236,148,236,61,236,205,235,95,235,19,235,211,234,155,234,139,234,147,234,132,234,98,234,70,234,51,234,46,234,60,234, +57,234,15,234,222,233,189,233,164,233,157,233,166,233,151,233,105,233,65,233,36,233,12,233,34,233,128,233,245,233,97,234, +210,234,64,235,135,235,168,235,177,235,170,235,191,235,43,236,222,236,144,237,33,238,156,238,6,239,92,239,148,239,168,239, +170,239,186,239,229,239,60,240,209,240,142,241,53,242,174,242,13,243,111,243,244,243,162,244,81,245,215,245,75,246,220,246, +170,247,164,248,131,249,15,250,99,250,178,250,245,250,44,251,133,251,249,251,88,252,189,252,97,253,26,254,170,254,33,255, +121,255,142,255,157,255,22,0,241,0,204,1,121,2,17,3,182,3,126,4,77,5,229,5,53,6,104,6,173,6,28,7, +173,7,51,8,143,8,222,8,57,9,154,9,13,10,146,10,247,10,39,11,87,11,170,11,7,12,103,12,213,12,89,13, +251,13,189,14,126,15,42,16,207,16,92,17,196,17,47,18,165,18,217,18,189,18,176,18,216,18,7,19,57,19,122,19, +165,19,195,19,18,20,108,20,106,20,19,20,200,19,170,19,173,19,220,19,44,20,108,20,148,20,189,20,234,20,9,21, +15,21,236,20,156,20,65,20,254,19,204,19,141,19,39,19,159,18,21,18,171,17,95,17,19,17,171,16,28,16,127,15, +1,15,180,14,125,14,55,14,216,13,127,13,81,13,59,13,4,13,164,12,61,12,218,11,122,11,50,11,242,10,130,10, +241,9,125,9,21,9,138,8,251,7,126,7,221,6,25,6,130,5,37,5,208,4,128,4,75,4,25,4,241,3,237,3, +215,3,112,3,236,2,148,2,83,2,15,2,221,1,169,1,90,1,20,1,237,0,172,0,52,0,169,255,18,255,86,254, +152,253,3,253,139,252,27,252,206,251,170,251,133,251,67,251,249,250,176,250,75,250,199,249,96,249,56,249,34,249,242,248, +189,248,141,248,60,248,202,247,91,247,232,246,80,246,188,245,88,245,7,245,169,244,93,244,39,244,213,243,100,243,20,243, +251,242,232,242,193,242,162,242,165,242,192,242,230,242,16,243,48,243,68,243,104,243,161,243,207,243,222,243,212,243,187,243, +163,243,177,243,227,243,11,244,27,244,55,244,91,244,104,244,119,244,167,244,220,244,5,245,76,245,189,245,50,246,172,246, +52,247,156,247,211,247,29,248,148,248,242,248,33,249,86,249,146,249,178,249,209,249,24,250,97,250,139,250,187,250,244,250, +3,251,244,250,11,251,61,251,78,251,86,251,147,251,254,251,116,252,241,252,99,253,159,253,185,253,240,253,61,254,120,254, +173,254,239,254,27,255,44,255,78,255,136,255,178,255,192,255,193,255,182,255,175,255,209,255,20,0,83,0,132,0,180,0, +231,0,39,1,133,1,242,1,79,2,154,2,229,2,63,3,168,3,16,4,88,4,129,4,167,4,218,4,23,5,87,5, +145,5,198,5,4,6,72,6,128,6,173,6,212,6,224,6,218,6,252,6,81,7,168,7,244,7,91,8,213,8,53,9, +118,9,167,9,197,9,215,9,245,9,31,10,72,10,108,10,131,10,137,10,139,10,140,10,119,10,73,10,11,10,198,9, +149,9,153,9,190,9,208,9,207,9,219,9,238,9,242,9,222,9,172,9,94,9,15,9,214,8,186,8,192,8,217,8, +223,8,195,8,138,8,52,8,206,7,118,7,24,7,149,6,21,6,205,5,164,5,129,5,122,5,122,5,74,5,1,5, +219,4,201,4,161,4,112,4,65,4,9,4,218,3,198,3,174,3,119,3,51,3,240,2,171,2,102,2,39,2,234,1, +171,1,95,1,3,1,178,0,119,0,52,0,230,255,173,255,137,255,102,255,78,255,65,255,37,255,7,255,249,254,209,254, +128,254,70,254,42,254,226,253,124,253,70,253,35,253,214,252,118,252,38,252,201,251,96,251,1,251,149,250,29,250,210,249, +178,249,129,249,71,249,49,249,28,249,221,248,141,248,67,248,244,247,175,247,128,247,81,247,31,247,254,246,218,246,139,246, +24,246,154,245,29,245,174,244,84,244,2,244,186,243,147,243,144,243,166,243,194,243,184,243,108,243,3,243,179,242,139,242, +141,242,178,242,227,242,27,243,109,243,199,243,4,244,32,244,38,244,8,244,208,243,166,243,146,243,138,243,153,243,185,243, +222,243,40,244,176,244,65,245,158,245,201,245,219,245,235,245,31,246,118,246,209,246,62,247,222,247,147,248,47,249,186,249, +40,250,79,250,77,250,104,250,170,250,7,251,126,251,222,251,253,251,29,252,127,252,237,252,52,253,133,253,241,253,65,254, +119,254,201,254,60,255,182,255,66,0,245,0,202,1,158,2,48,3,85,3,57,3,45,3,77,3,143,3,252,3,154,4, +92,5,47,6,221,6,49,7,51,7,18,7,230,6,203,6,246,6,109,7,252,7,154,8,100,9,87,10,72,11,24,12, +163,12,214,12,206,12,184,12,163,12,164,12,234,12,125,13,39,14,199,14,99,15,225,15,251,15,166,15,45,15,214,14, +167,14,170,14,1,15,155,15,54,16,181,16,12,17,29,17,243,16,212,16,209,16,190,16,183,16,240,16,56,17,78,17, +93,17,134,17,130,17,34,17,159,16,19,16,113,15,227,14,152,14,115,14,89,14,85,14,85,14,50,14,247,13,169,13, +35,13,116,12,234,11,159,11,111,11,93,11,118,11,140,11,119,11,59,11,213,10,44,10,88,9,144,8,230,7,88,7, +242,6,169,6,65,6,167,5,253,4,97,4,209,3,91,3,1,3,159,2,34,2,178,1,106,1,36,1,197,0,98,0, +7,0,156,255,30,255,162,254,41,254,169,253,38,253,167,252,45,252,198,251,112,251,247,250,41,250,32,249,45,248,132,247, +22,247,193,246,138,246,128,246,138,246,115,246,34,246,154,245,223,244,12,244,93,243,252,242,204,242,144,242,52,242,217,241, +163,241,124,241,33,241,115,240,143,239,160,238,195,237,21,237,177,236,141,236,126,236,84,236,253,235,159,235,94,235,29,235, +170,234,39,234,242,233,33,234,121,234,205,234,29,235,100,235,132,235,94,235,235,234,78,234,184,233,77,233,34,233,55,233, +114,233,193,233,41,234,158,234,241,234,5,235,229,234,173,234,130,234,145,234,236,234,138,235,86,236,39,237,202,237,48,238, +121,238,199,238,39,239,138,239,211,239,15,240,126,240,43,241,198,241,30,242,86,242,136,242,174,242,224,242,52,243,151,243, +2,244,153,244,101,245,63,246,14,247,196,247,77,248,164,248,225,248,42,249,179,249,141,250,119,251,37,252,157,252,8,253, +115,253,215,253,32,254,45,254,29,254,69,254,173,254,23,255,140,255,50,0,201,0,12,1,51,1,142,1,23,2,174,2, +68,3,190,3,34,4,172,4,112,5,50,6,188,6,13,7,65,7,119,7,193,7,26,8,130,8,253,8,118,9,224,9, +68,10,151,10,205,10,3,11,74,11,129,11,180,11,47,12,253,12,216,13,165,14,106,15,10,16,117,16,198,16,11,17, +57,17,109,17,186,17,0,18,52,18,126,18,224,18,47,19,79,19,68,19,37,19,27,19,49,19,53,19,4,19,191,18, +152,18,164,18,213,18,10,19,33,19,26,19,13,19,11,19,12,19,247,18,192,18,138,18,107,18,50,18,197,17,95,17, +7,17,108,16,143,15,214,14,93,14,240,13,140,13,50,13,185,12,60,12,253,11,199,11,73,11,178,10,66,10,215,9, +101,9,31,9,246,8,194,8,160,8,152,8,109,8,27,8,204,7,100,7,188,6,7,6,110,5,223,4,104,4,36,4, +232,3,135,3,42,3,233,2,155,2,49,2,211,1,147,1,97,1,52,1,11,1,223,0,177,0,143,0,121,0,86,0, +16,0,176,255,91,255,14,255,176,254,64,254,215,253,115,253,12,253,171,252,72,252,206,251,71,251,205,250,101,250,16,250, +208,249,152,249,93,249,41,249,251,248,197,248,152,248,127,248,85,248,10,248,201,247,164,247,127,247,83,247,35,247,216,246, +117,246,37,246,237,245,183,245,150,245,141,245,107,245,36,245,240,244,228,244,225,244,229,244,250,244,25,245,73,245,158,245, +2,246,85,246,149,246,197,246,227,246,255,246,26,247,40,247,69,247,138,247,209,247,0,248,64,248,142,248,183,248,201,248, +255,248,68,249,103,249,133,249,192,249,4,250,88,250,219,250,106,251,204,251,23,252,122,252,236,252,73,253,146,253,200,253, +229,253,6,254,81,254,176,254,238,254,5,255,21,255,41,255,63,255,95,255,132,255,154,255,177,255,227,255,31,0,82,0, +139,0,206,0,246,0,251,0,14,1,75,1,155,1,240,1,69,2,132,2,175,2,234,2,53,3,82,3,52,3,25,3, +33,3,45,3,48,3,63,3,86,3,103,3,130,3,185,3,252,3,55,4,112,4,172,4,216,4,247,4,34,5,104,5, +175,5,218,5,244,5,23,6,72,6,121,6,160,6,185,6,208,6,246,6,35,7,56,7,52,7,54,7,66,7,64,7, +51,7,42,7,43,7,61,7,106,7,171,7,230,7,19,8,59,8,87,8,81,8,40,8,244,7,215,7,216,7,235,7, +249,7,240,7,214,7,196,7,188,7,157,7,99,7,38,7,231,6,158,6,106,6,93,6,91,6,76,6,52,6,11,6, +218,5,200,5,207,5,180,5,112,5,56,5,29,5,7,5,239,4,213,4,169,4,99,4,12,4,177,3,94,3,31,3, +245,2,210,2,164,2,105,2,60,2,44,2,20,2,211,1,140,1,107,1,86,1,52,1,27,1,17,1,251,0,221,0, +205,0,175,0,104,0,36,0,251,255,191,255,90,255,244,254,169,254,117,254,85,254,66,254,35,254,237,253,170,253,104,253, +61,253,48,253,30,253,235,252,170,252,117,252,83,252,82,252,94,252,53,252,209,251,133,251,121,251,134,251,132,251,77,251, +193,250,34,250,209,249,189,249,142,249,63,249,251,248,198,248,165,248,170,248,179,248,142,248,62,248,224,247,145,247,103,247, +97,247,95,247,71,247,26,247,237,246,218,246,207,246,153,246,54,246,220,245,145,245,57,245,233,244,189,244,164,244,158,244, +192,244,234,244,241,244,234,244,218,244,159,244,83,244,54,244,61,244,66,244,111,244,229,244,112,245,224,245,44,246,61,246, +12,246,205,245,165,245,137,245,127,245,150,245,199,245,28,246,173,246,73,247,158,247,182,247,205,247,242,247,42,248,127,248, +210,248,21,249,125,249,37,250,220,250,135,251,34,252,116,252,99,252,71,252,104,252,180,252,12,253,107,253,190,253,12,254, +128,254,255,254,50,255,251,254,164,254,142,254,215,254,71,255,174,255,29,0,162,0,35,1,159,1,38,2,137,2,167,2, +185,2,227,2,14,3,81,3,214,3,98,4,178,4,242,4,74,5,158,5,231,5,46,6,75,6,70,6,126,6,12,7, +165,7,24,8,103,8,152,8,205,8,60,9,223,9,138,10,56,11,236,11,136,12,255,12,97,13,164,13,182,13,167,13, +152,13,172,13,9,14,166,14,68,15,183,15,3,16,50,16,72,16,69,16,18,16,179,15,124,15,162,15,238,15,55,16, +160,16,33,17,120,17,163,17,172,17,90,17,189,16,75,16,32,16,236,15,179,15,174,15,179,15,139,15,87,15,29,15, +166,14,238,13,51,13,154,12,45,12,255,11,0,12,251,11,212,11,165,11,127,11,65,11,207,10,69,10,205,9,105,9, +31,9,9,9,10,9,234,8,179,8,120,8,12,8,105,7,204,6,55,6,123,5,194,4,79,4,8,4,211,3,191,3, +165,3,79,3,235,2,164,2,72,2,201,1,102,1,24,1,166,0,53,0,252,255,205,255,118,255,26,255,185,254,22,254, +70,253,152,252,12,252,111,251,208,250,77,250,197,249,46,249,177,248,78,248,208,247,45,247,139,246,250,245,122,245,28,245, +229,244,185,244,108,244,242,243,96,243,205,242,51,242,141,241,226,240,63,240,189,239,114,239,60,239,209,238,46,238,133,237, +227,236,58,236,141,235,217,234,37,234,181,233,179,233,211,233,208,233,188,233,148,233,51,233,192,232,133,232,117,232,89,232, +72,232,109,232,165,232,194,232,209,232,230,232,221,232,160,232,87,232,25,232,209,231,162,231,220,231,115,232,19,233,161,233, +27,234,81,234,85,234,131,234,214,234,249,234,9,235,98,235,2,236,182,236,120,237,40,238,139,238,178,238,225,238,29,239, +81,239,144,239,234,239,77,240,184,240,69,241,231,241,113,242,209,242,27,243,103,243,205,243,97,244,14,245,173,245,57,246, +210,246,134,247,64,248,223,248,75,249,142,249,212,249,60,250,183,250,51,251,175,251,37,252,132,252,206,252,33,253,147,253, +24,254,137,254,219,254,45,255,157,255,47,0,210,0,94,1,207,1,103,2,67,3,9,4,115,4,203,4,96,5,19,6, +173,6,38,7,127,7,199,7,45,8,182,8,51,9,146,9,250,9,131,10,25,11,163,11,38,12,170,12,26,13,112,13, +209,13,98,14,22,15,217,15,150,16,39,17,147,17,28,18,199,18,73,19,153,19,222,19,9,20,29,20,87,20,170,20, +205,20,227,20,56,21,152,21,173,21,154,21,154,21,161,21,155,21,145,21,135,21,141,21,191,21,5,22,37,22,21,22, +245,21,216,21,187,21,142,21,68,21,249,20,212,20,183,20,92,20,205,19,87,19,16,19,196,18,81,18,179,17,251,16, +96,16,3,16,186,15,97,15,24,15,236,14,176,14,104,14,43,14,199,13,22,13,94,12,219,11,128,11,71,11,43,11, +240,10,110,10,209,9,70,9,200,8,65,8,156,7,210,6,19,6,151,5,85,5,24,5,191,4,85,4,2,4,207,3, +147,3,51,3,191,2,61,2,175,1,47,1,203,0,126,0,80,0,41,0,200,255,47,255,164,254,44,254,152,253,239,252, +66,252,129,251,203,250,90,250,4,250,146,249,35,249,207,248,105,248,240,247,150,247,77,247,224,246,85,246,214,245,113,245, +46,245,3,245,198,244,90,244,212,243,85,243,227,242,122,242,11,242,139,241,22,241,218,240,196,240,157,240,98,240,49,240, +254,239,188,239,138,239,117,239,111,239,135,239,183,239,204,239,202,239,250,239,98,240,181,240,208,240,200,240,192,240,219,240, +29,241,90,241,126,241,168,241,214,241,250,241,48,242,137,242,228,242,47,243,106,243,160,243,247,243,140,244,35,245,139,245, +235,245,93,246,197,246,44,247,171,247,36,248,132,248,238,248,96,249,181,249,254,249,87,250,164,250,212,250,2,251,60,251, +128,251,221,251,89,252,218,252,64,253,130,253,173,253,218,253,37,254,139,254,240,254,68,255,164,255,44,0,187,0,33,1, +106,1,185,1,6,2,61,2,120,2,195,2,254,2,34,3,84,3,156,3,223,3,25,4,97,4,167,4,215,4,6,5, +82,5,168,5,248,5,96,6,224,6,63,7,132,7,237,7,107,8,197,8,250,8,34,9,57,9,92,9,178,9,27,10, +106,10,173,10,237,10,24,11,59,11,104,11,134,11,134,11,127,11,128,11,149,11,201,11,12,12,73,12,135,12,195,12, +243,12,32,13,64,13,63,13,50,13,59,13,66,13,43,13,19,13,16,13,17,13,16,13,255,12,200,12,128,12,77,12, +28,12,217,11,167,11,149,11,135,11,126,11,141,11,136,11,62,11,211,10,136,10,101,10,74,10,39,10,236,9,149,9, +76,9,52,9,45,9,253,8,168,8,63,8,194,7,81,7,9,7,198,6,108,6,34,6,242,5,176,5,111,5,85,5, +47,5,207,4,115,4,76,4,56,4,35,4,20,4,241,3,168,3,92,3,33,3,225,2,152,2,89,2,34,2,219,1, +130,1,54,1,3,1,198,0,108,0,34,0,252,255,206,255,126,255,37,255,203,254,119,254,76,254,64,254,27,254,216,253, +160,253,121,253,82,253,37,253,235,252,155,252,68,252,247,251,187,251,141,251,80,251,227,250,93,250,253,249,213,249,194,249, +159,249,94,249,20,249,225,248,201,248,180,248,144,248,91,248,28,248,233,247,212,247,213,247,208,247,179,247,133,247,94,247, +63,247,30,247,254,246,218,246,158,246,75,246,253,245,181,245,117,245,95,245,110,245,98,245,58,245,59,245,102,245,127,245, +117,245,102,245,98,245,107,245,132,245,169,245,205,245,228,245,240,245,5,246,38,246,75,246,130,246,195,246,208,246,182,246, +200,246,233,246,198,246,166,246,248,246,117,247,198,247,48,248,196,248,19,249,34,249,105,249,214,249,1,250,31,250,145,250, +28,251,110,251,199,251,89,252,212,252,12,253,89,253,229,253,82,254,111,254,119,254,145,254,183,254,10,255,153,255,40,0, +151,0,8,1,119,1,177,1,187,1,208,1,11,2,106,2,226,2,103,3,235,3,101,4,204,4,27,5,76,5,93,5, +108,5,149,5,191,5,215,5,248,5,53,6,121,6,189,6,253,6,38,7,71,7,129,7,189,7,210,7,210,7,236,7, +40,8,122,8,217,8,60,9,150,9,218,9,2,10,20,10,27,10,28,10,45,10,87,10,121,10,137,10,170,10,209,10, +209,10,191,10,194,10,192,10,181,10,197,10,222,10,216,10,223,10,27,11,83,11,86,11,66,11,61,11,76,11,96,11, +87,11,39,11,243,10,221,10,221,10,222,10,195,10,121,10,28,10,218,9,161,9,68,9,215,8,136,8,73,8,253,7, +190,7,165,7,138,7,63,7,221,6,126,6,17,6,168,5,113,5,73,5,242,4,142,4,78,4,7,4,149,3,42,3, +216,2,121,2,9,2,166,1,76,1,232,0,117,0,255,255,150,255,55,255,209,254,121,254,80,254,41,254,201,253,86,253, +8,253,207,252,145,252,93,252,52,252,3,252,197,251,113,251,247,250,113,250,17,250,213,249,135,249,8,249,127,248,29,248, +218,247,139,247,35,247,160,246,7,246,130,245,26,245,147,244,223,243,52,243,138,242,199,241,85,241,140,241,236,241,216,241, +86,241,135,240,98,239,51,238,83,237,159,236,252,235,199,235,39,236,174,236,251,236,17,237,223,236,61,236,92,235,170,234, +59,234,218,233,135,233,110,233,140,233,225,233,147,234,125,235,17,236,6,236,161,235,38,235,173,234,104,234,129,234,225,234, +120,235,111,236,186,237,201,238,27,239,212,238,104,238,4,238,209,237,56,238,72,239,105,240,52,241,214,241,104,242,189,242, +217,242,210,242,163,242,132,242,213,242,137,243,75,244,255,244,177,245,92,246,6,247,161,247,245,247,231,247,153,247,54,247, +245,246,40,247,241,247,14,249,29,250,227,250,93,251,154,251,146,251,66,251,219,250,156,250,168,250,30,251,0,252,10,253, +233,253,138,254,233,254,11,255,31,255,82,255,163,255,17,0,163,0,72,1,241,1,161,2,77,3,236,3,137,4,19,5, +121,5,224,5,90,6,178,6,242,6,127,7,83,8,253,8,103,9,226,9,120,10,245,10,88,11,168,11,211,11,21,12, +221,12,7,14,246,14,126,15,226,15,17,16,230,15,193,15,0,16,108,16,204,16,74,17,226,17,81,18,153,18,187,18, +119,18,212,17,94,17,104,17,190,17,13,18,37,18,255,17,201,17,191,17,243,17,52,18,55,18,236,17,150,17,100,17, +53,17,1,17,230,16,212,16,179,16,163,16,163,16,124,16,49,16,217,15,83,15,179,14,116,14,175,14,231,14,201,14, +103,14,231,13,122,13,65,13,9,13,162,12,86,12,128,12,228,12,2,13,201,12,127,12,44,12,181,11,74,11,35,11, +16,11,206,10,121,10,49,10,221,9,143,9,122,9,102,9,255,8,112,8,15,8,203,7,116,7,18,7,177,6,83,6, +23,6,8,6,231,5,134,5,12,5,165,4,61,4,200,3,105,3,26,3,175,2,55,2,220,1,121,1,236,0,98,0, +243,255,106,255,208,254,103,254,32,254,193,253,75,253,221,252,122,252,32,252,200,251,92,251,235,250,142,250,58,250,240,249, +191,249,141,249,81,249,51,249,27,249,202,248,89,248,247,247,120,247,216,246,119,246,104,246,90,246,63,246,50,246,23,246, +228,245,197,245,182,245,140,245,82,245,48,245,28,245,4,245,251,244,25,245,74,245,102,245,108,245,118,245,119,245,84,245, +40,245,24,245,14,245,246,244,252,244,57,245,115,245,122,245,96,245,72,245,50,245,31,245,46,245,110,245,196,245,19,246, +81,246,114,246,111,246,112,246,141,246,166,246,171,246,197,246,7,247,89,247,165,247,223,247,251,247,14,248,43,248,62,248, +69,248,102,248,162,248,207,248,236,248,34,249,131,249,253,249,112,250,201,250,15,251,76,251,127,251,179,251,243,251,62,252, +169,252,55,253,167,253,225,253,47,254,156,254,211,254,220,254,15,255,96,255,151,255,221,255,83,0,188,0,246,0,39,1, +105,1,191,1,42,2,150,2,241,2,67,3,143,3,214,3,37,4,109,4,146,4,185,4,7,5,81,5,134,5,219,5, +67,6,100,6,65,6,62,6,112,6,155,6,175,6,189,6,189,6,189,6,228,6,33,7,58,7,74,7,148,7,236,7, +250,7,221,7,223,7,233,7,209,7,188,7,205,7,245,7,43,8,88,8,78,8,17,8,228,7,223,7,220,7,195,7, +157,7,142,7,175,7,223,7,242,7,235,7,216,7,180,7,150,7,160,7,187,7,195,7,199,7,228,7,20,8,65,8, +89,8,99,8,111,8,89,8,253,7,155,7,133,7,156,7,167,7,185,7,225,7,3,8,24,8,23,8,223,7,130,7, +61,7,26,7,254,6,239,6,255,6,53,7,125,7,160,7,117,7,36,7,233,6,182,6,100,6,255,5,174,5,136,5, +126,5,103,5,50,5,246,4,177,4,74,4,211,3,112,3,27,3,203,2,147,2,112,2,71,2,30,2,253,1,200,1, +110,1,14,1,184,0,88,0,253,255,211,255,195,255,141,255,52,255,223,254,124,254,252,253,146,253,65,253,217,252,119,252, +82,252,60,252,7,252,237,251,240,251,187,251,96,251,43,251,252,250,176,250,138,250,161,250,170,250,153,250,156,250,155,250, +121,250,90,250,75,250,30,250,200,249,115,249,57,249,20,249,3,249,11,249,25,249,11,249,224,248,189,248,155,248,92,248, +25,248,246,247,216,247,182,247,189,247,221,247,217,247,200,247,209,247,198,247,129,247,40,247,215,246,132,246,57,246,9,246, +229,245,190,245,164,245,160,245,165,245,156,245,121,245,69,245,22,245,250,244,245,244,243,244,224,244,213,244,2,245,89,245, +154,245,169,245,153,245,133,245,123,245,129,245,153,245,208,245,28,246,92,246,124,246,152,246,200,246,3,247,55,247,99,247, +146,247,207,247,35,248,153,248,36,249,146,249,224,249,82,250,238,250,103,251,185,251,33,252,133,252,187,252,255,252,117,253, +226,253,58,254,179,254,56,255,166,255,24,0,136,0,197,0,227,0,25,1,106,1,226,1,138,2,31,3,110,3,184,3, +56,4,200,4,58,5,136,5,187,5,238,5,76,6,198,6,39,7,107,7,185,7,33,8,140,8,236,8,69,9,143,9, +186,9,211,9,250,9,55,10,138,10,249,10,115,11,215,11,46,12,132,12,185,12,193,12,210,12,2,13,50,13,101,13, +190,13,44,14,120,14,151,14,163,14,165,14,155,14,148,14,168,14,206,14,235,14,253,14,15,15,19,15,8,15,13,15, +31,15,34,15,30,15,33,15,21,15,239,14,201,14,171,14,150,14,146,14,139,14,97,14,37,14,248,13,204,13,131,13, +25,13,178,12,130,12,125,12,86,12,251,11,159,11,63,11,192,10,88,10,36,10,224,9,122,9,43,9,224,8,88,8, +184,7,63,7,221,6,120,6,24,6,178,5,55,5,178,4,38,4,144,3,245,2,81,2,173,1,37,1,182,0,66,0, +211,255,119,255,247,254,53,254,132,253,31,253,189,252,19,252,76,251,175,250,57,250,222,249,163,249,98,249,230,248,87,248, +240,247,126,247,188,246,228,245,73,245,212,244,93,244,242,243,155,243,64,243,216,242,95,242,202,241,28,241,102,240,185,239, +43,239,181,238,62,238,226,237,202,237,203,237,152,237,45,237,164,236,247,235,47,235,108,234,199,233,98,233,103,233,202,233, +64,234,116,234,86,234,33,234,252,233,175,233,23,233,145,232,105,232,116,232,138,232,204,232,56,233,153,233,213,233,232,233, +213,233,184,233,167,233,156,233,131,233,112,233,181,233,157,234,205,235,119,236,110,236,69,236,55,236,27,236,37,236,126,236, +208,236,35,237,31,238,161,239,137,240,136,240,108,240,136,240,112,240,68,240,157,240,74,241,188,241,50,242,29,243,22,244, +180,244,82,245,3,246,16,246,124,245,107,245,77,246,54,247,154,247,15,248,19,249,79,250,96,251,44,252,121,252,42,252, +206,251,7,252,161,252,54,253,17,254,80,255,58,0,127,0,221,0,176,1,85,2,115,2,111,2,147,2,5,3,249,3, +44,5,248,5,81,6,199,6,148,7,104,8,242,8,29,9,41,9,116,9,19,10,199,10,106,11,8,12,161,12,25,13, +100,13,148,13,192,13,241,13,56,14,150,14,231,14,54,15,214,15,184,16,59,17,51,17,61,17,148,17,189,17,163,17, +197,17,47,18,144,18,237,18,75,19,87,19,19,19,18,19,116,19,153,19,55,19,231,18,21,19,69,19,12,19,209,18, +239,18,3,19,189,18,124,18,128,18,132,18,120,18,145,18,140,18,13,18,143,17,185,17,22,18,185,17,218,16,103,16, +109,16,103,16,104,16,139,16,71,16,146,15,55,15,60,15,191,14,198,13,48,13,5,13,186,12,141,12,233,12,71,13, +237,12,17,12,87,11,230,10,149,10,89,10,20,10,130,9,209,8,175,8,38,9,76,9,169,8,217,7,81,7,211,6, +71,6,214,5,92,5,190,4,73,4,27,4,243,3,202,3,179,3,89,3,109,2,81,1,168,0,145,0,160,0,99,0, +201,255,49,255,10,255,51,255,16,255,79,254,81,253,150,252,59,252,34,252,22,252,204,251,66,251,214,250,161,250,90,250, +2,250,212,249,132,249,189,248,247,247,196,247,218,247,178,247,104,247,57,247,15,247,233,246,240,246,224,246,87,246,170,245, +122,245,159,245,122,245,36,245,24,245,52,245,22,245,229,244,208,244,152,244,57,244,21,244,52,244,67,244,53,244,49,244, +49,244,30,244,11,244,31,244,93,244,134,244,99,244,46,244,70,244,157,244,239,244,44,245,70,245,46,245,32,245,80,245, +126,245,107,245,69,245,72,245,125,245,237,245,134,246,247,246,8,247,224,246,204,246,251,246,101,247,209,247,12,248,33,248, +83,248,220,248,169,249,77,250,115,250,76,250,86,250,177,250,19,251,77,251,119,251,174,251,246,251,97,252,242,252,114,253, +168,253,180,253,202,253,236,253,38,254,157,254,46,255,141,255,205,255,50,0,182,0,37,1,105,1,136,1,164,1,230,1, +81,2,195,2,29,3,82,3,120,3,185,3,17,4,85,4,141,4,214,4,9,5,18,5,42,5,122,5,221,5,57,6, +128,6,160,6,175,6,228,6,59,7,128,7,158,7,185,7,255,7,109,8,197,8,228,8,240,8,12,9,48,9,88,9, +116,9,107,9,107,9,174,9,253,9,6,10,248,9,29,10,88,10,128,10,157,10,165,10,145,10,137,10,159,10,180,10, +195,10,222,10,244,10,235,10,215,10,218,10,248,10,15,11,248,10,186,10,139,10,137,10,155,10,153,10,123,10,83,10, +45,10,17,10,254,9,226,9,182,9,162,9,172,9,143,9,57,9,252,8,248,8,230,8,170,8,111,8,64,8,23,8, +7,8,253,7,197,7,108,7,29,7,219,6,166,6,129,6,73,6,244,5,172,5,111,5,39,5,249,4,248,4,219,4, +122,4,17,4,204,3,164,3,134,3,90,3,18,3,197,2,135,2,83,2,27,2,212,1,127,1,58,1,7,1,201,0, +151,0,152,0,143,0,50,0,170,255,56,255,221,254,164,254,144,254,96,254,255,253,204,253,238,253,8,254,211,253,114,253, +18,253,188,252,122,252,84,252,42,252,221,251,138,251,113,251,134,251,132,251,90,251,40,251,227,250,131,250,65,250,62,250, +60,250,14,250,208,249,151,249,101,249,73,249,75,249,66,249,16,249,221,248,218,248,249,248,2,249,225,248,168,248,111,248, +69,248,36,248,241,247,193,247,200,247,237,247,232,247,220,247,6,248,42,248,254,247,166,247,66,247,216,246,178,246,251,246, +85,247,124,247,169,247,226,247,233,247,200,247,163,247,102,247,26,247,8,247,60,247,129,247,200,247,28,248,110,248,164,248, +181,248,178,248,168,248,144,248,109,248,99,248,126,248,172,248,8,249,176,249,91,250,191,250,246,250,28,251,9,251,207,250, +197,250,12,251,129,251,11,252,156,252,32,253,152,253,6,254,80,254,93,254,78,254,101,254,175,254,247,254,41,255,119,255, +254,255,135,0,222,0,23,1,87,1,151,1,186,1,193,1,205,1,255,1,77,2,160,2,244,2,67,3,134,3,196,3, +246,3,0,4,238,3,239,3,8,4,31,4,68,4,140,4,211,4,229,4,210,4,204,4,228,4,0,5,21,5,44,5, +53,5,50,5,83,5,159,5,197,5,169,5,140,5,134,5,132,5,167,5,242,5,5,6,220,5,229,5,36,6,52,6, +24,6,14,6,252,5,213,5,214,5,0,6,20,6,22,6,30,6,254,5,177,5,146,5,191,5,225,5,194,5,139,5, +111,5,119,5,156,5,189,5,163,5,70,5,221,4,144,4,80,4,19,4,225,3,169,3,90,3,28,3,15,3,9,3, +223,2,154,2,62,2,185,1,29,1,167,0,91,0,250,255,121,255,30,255,5,255,235,254,168,254,81,254,229,253,87,253, +203,252,80,252,170,251,206,250,13,250,141,249,24,249,152,248,59,248,31,248,31,248,255,247,156,247,247,246,33,246,62,245, +136,244,23,244,203,243,165,243,193,243,247,243,251,243,213,243,154,243,30,243,89,242,154,241,8,241,151,240,85,240,71,240, +57,240,30,240,49,240,119,240,156,240,103,240,249,239,148,239,85,239,61,239,87,239,165,239,13,240,128,240,10,241,136,241, +182,241,160,241,131,241,96,241,54,241,96,241,17,242,210,242,46,243,68,243,95,243,122,243,126,243,112,243,80,243,50,243, +92,243,221,243,109,244,235,244,122,245,251,245,55,246,103,246,193,246,2,247,255,246,0,247,36,247,84,247,174,247,61,248, +165,248,195,248,224,248,5,249,251,248,208,248,184,248,173,248,178,248,245,248,120,249,6,250,123,250,220,250,63,251,153,251, +209,251,253,251,75,252,186,252,61,253,227,253,144,254,255,254,72,255,179,255,50,0,158,0,19,1,155,1,5,2,72,2, +139,2,234,2,110,3,251,3,96,4,175,4,43,5,217,5,130,6,23,7,162,7,37,8,188,8,119,9,51,10,208,10, +63,11,110,11,119,11,174,11,43,12,175,12,30,13,132,13,212,13,4,14,47,14,76,14,48,14,245,13,222,13,244,13, +29,14,103,14,202,14,5,15,2,15,3,15,40,15,76,15,96,15,111,15,98,15,67,15,82,15,124,15,113,15,77,15, +87,15,92,15,27,15,201,14,149,14,91,14,29,14,17,14,42,14,52,14,38,14,20,14,254,13,214,13,160,13,133,13, +143,13,150,13,156,13,218,13,48,14,65,14,34,14,21,14,241,13,160,13,117,13,114,13,65,13,247,12,223,12,217,12, +179,12,142,12,108,12,33,12,195,11,133,11,77,11,247,10,160,10,111,10,89,10,70,10,61,10,62,10,15,10,143,9, +14,9,206,8,141,8,30,8,189,7,106,7,225,6,80,6,1,6,181,5,48,5,183,4,88,4,201,3,46,3,221,2, +159,2,31,2,146,1,54,1,232,0,150,0,99,0,59,0,227,255,115,255,36,255,235,254,169,254,108,254,56,254,237,253, +135,253,45,253,233,252,157,252,66,252,235,251,161,251,110,251,91,251,88,251,67,251,8,251,181,250,116,250,91,250,85,250, +78,250,72,250,43,250,238,249,209,249,244,249,12,250,238,249,202,249,167,249,91,249,16,249,5,249,11,249,234,248,193,248, +172,248,144,248,109,248,93,248,82,248,39,248,229,247,188,247,196,247,222,247,243,247,15,248,36,248,12,248,226,247,222,247, +221,247,165,247,105,247,102,247,112,247,96,247,94,247,121,247,133,247,112,247,72,247,24,247,247,246,251,246,14,247,10,247, +243,246,236,246,14,247,67,247,104,247,122,247,142,247,159,247,169,247,197,247,232,247,243,247,250,247,26,248,48,248,43,248, +71,248,141,248,181,248,189,248,230,248,48,249,112,249,173,249,235,249,4,250,11,250,62,250,144,250,205,250,12,251,111,251, +210,251,40,252,140,252,231,252,18,253,61,253,140,253,193,253,195,253,230,253,75,254,162,254,200,254,251,254,87,255,186,255, +19,0,97,0,147,0,167,0,192,0,244,0,55,1,131,1,220,1,49,2,105,2,136,2,168,2,204,2,231,2,250,2, +11,3,28,3,53,3,87,3,104,3,94,3,80,3,80,3,86,3,96,3,115,3,127,3,125,3,119,3,116,3,116,3, +135,3,175,3,213,3,226,3,207,3,172,3,147,3,146,3,162,3,182,3,197,3,208,3,230,3,3,4,254,3,199,3, +145,3,125,3,118,3,119,3,158,3,231,3,36,4,75,4,107,4,131,4,152,4,194,4,241,4,251,4,239,4,13,5, +79,5,116,5,127,5,163,5,214,5,231,5,220,5,211,5,195,5,174,5,167,5,161,5,139,5,133,5,168,5,204,5, +206,5,186,5,157,5,125,5,103,5,100,5,103,5,102,5,101,5,102,5,95,5,70,5,28,5,239,4,189,4,114,4, +23,4,203,3,166,3,169,3,177,3,135,3,40,3,213,2,166,2,119,2,65,2,16,2,214,1,154,1,134,1,148,1, +149,1,138,1,133,1,119,1,89,1,65,1,54,1,26,1,223,0,158,0,128,0,133,0,144,0,144,0,133,0,98,0, +62,0,67,0,76,0,25,0,210,255,190,255,199,255,205,255,231,255,13,0,17,0,6,0,13,0,15,0,4,0,6,0, +6,0,235,255,203,255,173,255,125,255,84,255,72,255,52,255,6,255,237,254,242,254,236,254,205,254,169,254,124,254,54,254, +238,253,203,253,210,253,234,253,4,254,29,254,28,254,242,253,190,253,154,253,116,253,74,253,54,253,45,253,18,253,245,252, +228,252,200,252,160,252,131,252,117,252,102,252,84,252,71,252,61,252,31,252,223,251,171,251,191,251,255,251,30,252,19,252, +253,251,213,251,162,251,139,251,143,251,131,251,107,251,113,251,153,251,176,251,144,251,66,251,237,250,170,250,137,250,174,250, +32,251,150,251,188,251,145,251,80,251,55,251,93,251,158,251,214,251,10,252,69,252,133,252,201,252,7,253,32,253,40,253, +84,253,166,253,251,253,87,254,175,254,212,254,203,254,212,254,16,255,135,255,42,0,172,0,217,0,235,0,41,1,132,1, +214,1,28,2,90,2,165,2,25,3,150,3,221,3,230,3,216,3,222,3,27,4,134,4,235,4,44,5,77,5,64,5, +8,5,220,4,221,4,255,4,56,5,129,5,190,5,222,5,238,5,238,5,206,5,152,5,117,5,126,5,170,5,209,5, +215,5,202,5,195,5,196,5,190,5,178,5,184,5,214,5,230,5,195,5,140,5,116,5,118,5,128,5,151,5,176,5, +189,5,212,5,2,6,35,6,44,6,62,6,86,6,96,6,118,6,161,6,180,6,167,6,157,6,145,6,113,6,103,6, +145,6,198,6,218,6,193,6,119,6,18,6,214,5,210,5,192,5,122,5,47,5,12,5,3,5,248,4,209,4,115,4, +239,3,133,3,72,3,18,3,212,2,147,2,34,2,109,1,188,0,70,0,225,255,101,255,217,254,61,254,163,253,58,253, +239,252,108,252,169,251,237,250,77,250,186,249,64,249,199,248,28,248,100,247,247,246,208,246,179,246,149,246,99,246,218,245, +254,244,46,244,159,243,59,243,252,242,227,242,196,242,147,242,124,242,123,242,72,242,214,241,100,241,19,241,213,240,176,240, +158,240,125,240,85,240,77,240,90,240,95,240,111,240,144,240,140,240,90,240,47,240,21,240,245,239,245,239,55,240,138,240, +188,240,212,240,209,240,163,240,108,240,92,240,118,240,165,240,244,240,104,241,227,241,46,242,48,242,8,242,236,241,249,241, +54,242,145,242,224,242,14,243,58,243,134,243,242,243,119,244,247,244,51,245,43,245,44,245,76,245,93,245,116,245,194,245, +36,246,130,246,27,247,248,247,165,248,224,248,225,248,218,248,219,248,8,249,117,249,248,249,110,250,237,250,124,251,249,251, +93,252,202,252,58,253,122,253,154,253,231,253,109,254,232,254,61,255,142,255,232,255,88,0,246,0,160,1,27,2,110,2, +196,2,28,3,128,3,13,4,168,4,33,5,138,5,248,5,84,6,168,6,22,7,127,7,205,7,48,8,196,8,90,9, +219,9,85,10,178,10,216,10,235,10,18,11,76,11,154,11,9,12,123,12,210,12,28,13,102,13,159,13,200,13,247,13, +37,14,62,14,83,14,117,14,151,14,174,14,194,14,209,14,223,14,4,15,57,15,82,15,72,15,49,15,15,15,238,14, +240,14,18,15,39,15,28,15,248,14,190,14,135,14,117,14,128,14,137,14,135,14,119,14,92,14,74,14,61,14,18,14, +203,13,135,13,76,13,42,13,54,13,83,13,73,13,24,13,229,12,188,12,156,12,127,12,77,12,254,11,169,11,105,11, +72,11,60,11,35,11,245,10,204,10,164,10,108,10,55,10,252,9,136,9,245,8,150,8,101,8,47,8,10,8,243,7, +164,7,41,7,207,6,136,6,38,6,205,5,130,5,15,5,131,4,39,4,239,3,171,3,80,3,224,2,93,2,238,1, +171,1,111,1,25,1,174,0,65,0,225,255,154,255,96,255,31,255,204,254,94,254,225,253,119,253,41,253,226,252,156,252, +93,252,34,252,252,251,250,251,235,251,154,251,37,251,200,250,132,250,68,250,11,250,220,249,178,249,150,249,140,249,128,249, +106,249,74,249,25,249,221,248,175,248,141,248,92,248,39,248,16,248,7,248,237,247,223,247,241,247,241,247,192,247,139,247, +108,247,72,247,26,247,247,246,223,246,214,246,235,246,4,247,250,246,215,246,186,246,167,246,159,246,160,246,149,246,124,246, +108,246,113,246,138,246,176,246,201,246,196,246,184,246,192,246,217,246,251,246,21,247,11,247,236,246,236,246,14,247,57,247, +103,247,135,247,137,247,153,247,219,247,33,248,62,248,74,248,82,248,84,248,119,248,198,248,14,249,62,249,116,249,170,249, +215,249,23,250,104,250,162,250,194,250,227,250,18,251,90,251,173,251,224,251,245,251,31,252,105,252,183,252,9,253,84,253, +124,253,147,253,191,253,253,253,72,254,170,254,1,255,43,255,77,255,140,255,216,255,35,0,106,0,144,0,166,0,235,0, +91,1,179,1,233,1,27,2,65,2,90,2,140,2,216,2,17,3,45,3,77,3,129,3,189,3,246,3,28,4,53,4, +85,4,133,4,181,4,225,4,8,5,32,5,38,5,48,5,83,5,131,5,172,5,201,5,213,5,211,5,216,5,237,5, +253,5,246,5,234,5,242,5,11,6,36,6,45,6,36,6,26,6,27,6,33,6,36,6,41,6,44,6,35,6,21,6, +14,6,15,6,19,6,25,6,27,6,23,6,20,6,22,6,25,6,22,6,4,6,231,5,203,5,184,5,170,5,156,5, +126,5,85,5,79,5,111,5,122,5,91,5,65,5,57,5,34,5,3,5,239,4,209,4,164,4,138,4,127,4,104,4, +84,4,75,4,46,4,254,3,216,3,187,3,159,3,132,3,88,3,16,3,200,2,150,2,112,2,85,2,51,2,230,1, +142,1,105,1,88,1,32,1,225,0,188,0,136,0,63,0,16,0,231,255,154,255,65,255,3,255,213,254,184,254,185,254, +177,254,113,254,18,254,201,253,158,253,122,253,73,253,11,253,210,252,185,252,197,252,212,252,183,252,111,252,33,252,225,251, +188,251,193,251,214,251,193,251,137,251,113,251,129,251,137,251,121,251,83,251,23,251,223,250,202,250,201,250,190,250,180,250, +179,250,175,250,170,250,171,250,156,250,113,250,52,250,248,249,212,249,228,249,17,250,42,250,42,250,45,250,49,250,37,250, +15,250,236,249,183,249,143,249,163,249,226,249,24,250,58,250,80,250,74,250,42,250,35,250,59,250,65,250,58,250,86,250, +137,250,173,250,212,250,15,251,54,251,55,251,57,251,72,251,91,251,121,251,157,251,181,251,223,251,58,252,155,252,200,252, +205,252,204,252,210,252,232,252,13,253,51,253,95,253,161,253,238,253,51,254,102,254,129,254,141,254,158,254,177,254,193,254, +233,254,50,255,103,255,110,255,122,255,183,255,12,0,76,0,110,0,126,0,132,0,146,0,189,0,2,1,60,1,99,1, +153,1,231,1,46,2,107,2,165,2,205,2,228,2,17,3,89,3,162,3,230,3,34,4,72,4,124,4,236,4,118,5, +214,5,18,6,68,6,101,6,127,6,176,6,235,6,20,7,68,7,167,7,62,8,223,8,93,9,162,9,179,9,168,9, +163,9,179,9,204,9,240,9,60,10,169,10,4,11,74,11,155,11,219,11,208,11,149,11,106,11,84,11,66,11,70,11, +95,11,123,11,164,11,226,11,17,12,16,12,236,11,184,11,114,11,32,11,235,10,232,10,252,10,13,11,39,11,66,11, +54,11,0,11,186,10,89,10,227,9,147,9,125,9,116,9,115,9,139,9,140,9,80,9,7,9,202,8,106,8,245,7, +180,7,160,7,138,7,118,7,104,7,56,7,236,6,185,6,147,6,64,6,204,5,111,5,39,5,205,4,108,4,43,4, +253,3,187,3,100,3,14,3,174,2,49,2,164,1,22,1,135,0,19,0,212,255,165,255,81,255,221,254,105,254,248,253, +122,253,251,252,131,252,8,252,132,251,17,251,187,250,94,250,222,249,76,249,185,248,34,248,164,247,94,247,36,247,181,246, +36,246,172,245,79,245,246,244,165,244,80,244,216,243,71,243,205,242,116,242,37,242,216,241,143,241,68,241,243,240,178,240, +127,240,52,240,197,239,81,239,224,238,98,238,252,237,201,237,145,237,50,237,242,236,237,236,216,236,167,236,148,236,123,236, +37,236,211,235,205,235,215,235,195,235,184,235,188,235,180,235,191,235,3,236,80,236,106,236,96,236,88,236,99,236,130,236, +185,236,240,236,251,236,233,236,4,237,106,237,228,237,77,238,178,238,4,239,56,239,116,239,198,239,5,240,69,240,180,240, +51,241,163,241,46,242,206,242,54,243,114,243,208,243,66,244,157,244,239,244,64,245,122,245,198,245,77,246,224,246,91,247, +232,247,135,248,0,249,76,249,148,249,219,249,23,250,99,250,220,250,131,251,68,252,254,252,142,253,248,253,95,254,202,254, +29,255,79,255,137,255,239,255,123,0,19,1,163,1,28,2,116,2,197,2,46,3,171,3,34,4,133,4,216,4,41,5, +149,5,54,6,248,6,159,7,9,8,80,8,170,8,37,9,164,9,13,10,94,10,166,10,6,11,145,11,50,12,176,12, +229,12,227,12,232,12,34,13,129,13,214,13,14,14,62,14,133,14,238,14,97,15,187,15,243,15,5,16,238,15,216,15, +9,16,117,16,202,16,230,16,227,16,225,16,253,16,53,17,74,17,23,17,213,16,178,16,157,16,150,16,161,16,146,16, +92,16,55,16,54,16,54,16,45,16,25,16,220,15,130,15,66,15,46,15,47,15,42,15,5,15,197,14,156,14,134,14, +80,14,2,14,184,13,93,13,250,12,205,12,199,12,145,12,39,12,188,11,96,11,11,11,190,10,110,10,34,10,239,9, +194,9,126,9,55,9,9,9,224,8,168,8,101,8,10,8,146,7,25,7,175,6,85,6,14,6,209,5,134,5,46,5, +216,4,122,4,17,4,172,3,69,3,194,2,44,2,176,1,102,1,52,1,248,0,170,0,92,0,20,0,202,255,128,255, +57,255,223,254,116,254,28,254,230,253,175,253,104,253,22,253,172,252,43,252,189,251,118,251,63,251,9,251,199,250,104,250, +8,250,218,249,193,249,126,249,27,249,197,248,118,248,52,248,37,248,45,248,6,248,191,247,151,247,135,247,113,247,105,247, +88,247,250,246,113,246,32,246,15,246,9,246,14,246,18,246,229,245,165,245,158,245,185,245,180,245,154,245,131,245,102,245, +97,245,158,245,239,245,14,246,5,246,251,245,255,245,38,246,113,246,173,246,183,246,174,246,192,246,244,246,56,247,110,247, +135,247,138,247,157,247,227,247,64,248,107,248,101,248,132,248,216,248,40,249,120,249,231,249,66,250,97,250,134,250,208,250, +20,251,84,251,171,251,246,251,33,252,90,252,174,252,235,252,9,253,42,253,99,253,178,253,7,254,72,254,117,254,162,254, +213,254,7,255,51,255,87,255,138,255,233,255,94,0,190,0,10,1,77,1,126,1,176,1,3,2,87,2,131,2,162,2, +204,2,231,2,1,3,67,3,159,3,230,3,34,4,103,4,163,4,214,4,9,5,37,5,30,5,40,5,120,5,249,5, +122,6,213,6,6,7,37,7,77,7,130,7,187,7,250,7,56,8,102,8,139,8,183,8,225,8,247,8,255,8,4,9, +14,9,44,9,102,9,167,9,206,9,220,9,231,9,252,9,28,10,63,10,79,10,67,10,48,10,42,10,36,10,28,10, +46,10,85,10,106,10,100,10,87,10,57,10,246,9,154,9,61,9,234,8,178,8,169,8,196,8,217,8,191,8,121,8, +40,8,219,7,137,7,61,7,5,7,212,6,165,6,134,6,105,6,59,6,3,6,192,5,95,5,249,4,180,4,124,4, +53,4,233,3,151,3,60,3,233,2,165,2,98,2,35,2,229,1,148,1,55,1,239,0,182,0,126,0,92,0,78,0, +44,0,237,255,161,255,73,255,232,254,136,254,46,254,233,253,205,253,192,253,150,253,77,253,241,252,140,252,53,252,238,251, +157,251,73,251,16,251,236,250,197,250,157,250,114,250,54,250,245,249,189,249,131,249,67,249,17,249,239,248,201,248,147,248, +84,248,17,248,206,247,135,247,63,247,6,247,211,246,143,246,61,246,247,245,195,245,156,245,135,245,124,245,101,245,64,245, +38,245,27,245,16,245,255,244,231,244,205,244,200,244,233,244,18,245,29,245,11,245,241,244,216,244,202,244,207,244,219,244, +224,244,228,244,242,244,2,245,18,245,55,245,120,245,182,245,228,245,29,246,116,246,205,246,23,247,90,247,141,247,191,247, +29,248,160,248,4,249,61,249,127,249,204,249,3,250,49,250,109,250,171,250,232,250,54,251,136,251,191,251,225,251,10,252, +70,252,141,252,217,252,49,253,151,253,254,253,91,254,167,254,228,254,42,255,142,255,244,255,65,0,141,0,223,0,29,1, +90,1,177,1,240,1,1,2,36,2,98,2,122,2,130,2,211,2,95,3,213,3,44,4,126,4,208,4,28,5,90,5, +125,5,148,5,202,5,63,6,227,6,136,7,22,8,163,8,48,9,139,9,168,9,187,9,216,9,236,9,4,10,50,10, +104,10,178,10,52,11,203,11,45,12,92,12,130,12,155,12,150,12,151,12,190,12,239,12,38,13,145,13,38,14,137,14, +163,14,171,14,164,14,115,14,72,14,80,14,98,14,108,14,144,14,158,14,88,14,9,14,243,13,188,13,51,13,213,12, +213,12,204,12,163,12,172,12,210,12,196,12,167,12,164,12,117,12,10,12,186,11,139,11,48,11,191,10,134,10,119,10, +102,10,89,10,58,10,209,9,53,9,173,8,55,8,179,7,57,7,231,6,165,6,97,6,50,6,19,6,209,5,99,5, +246,4,157,4,80,4,27,4,253,3,200,3,95,3,218,2,96,2,7,2,190,1,85,1,197,0,62,0,215,255,122,255, +30,255,176,254,17,254,102,253,246,252,170,252,66,252,203,251,85,251,205,250,76,250,7,250,231,249,181,249,105,249,10,249, +149,248,33,248,181,247,56,247,152,246,241,245,120,245,76,245,62,245,2,245,135,244,238,243,83,243,204,242,99,242,245,241, +114,241,1,241,175,240,83,240,238,239,168,239,126,239,88,239,48,239,7,239,211,238,145,238,62,238,222,237,124,237,34,237, +206,236,129,236,45,236,202,235,116,235,54,235,246,234,180,234,154,234,169,234,196,234,222,234,227,234,181,234,99,234,34,234, +15,234,35,234,87,234,163,234,246,234,72,235,150,235,213,235,243,235,250,235,8,236,30,236,36,236,39,236,89,236,189,236, +30,237,102,237,185,237,45,238,165,238,245,238,26,239,58,239,131,239,2,240,168,240,91,241,19,242,207,242,123,243,253,243, +90,244,178,244,18,245,107,245,191,245,52,246,224,246,158,247,54,248,163,248,244,248,48,249,107,249,194,249,44,250,147,250, +250,250,105,251,231,251,143,252,79,253,213,253,18,254,80,254,162,254,232,254,54,255,164,255,13,0,112,0,253,0,162,1, +29,2,107,2,152,2,143,2,103,2,129,2,254,2,134,3,214,3,37,4,168,4,58,5,179,5,36,6,120,6,148,6, +190,6,53,7,194,7,56,8,192,8,85,9,202,9,62,10,210,10,83,11,163,11,230,11,37,12,100,12,192,12,44,13, +126,13,204,13,54,14,160,14,237,14,56,15,145,15,225,15,32,16,104,16,204,16,52,17,119,17,159,17,201,17,242,17, +15,18,48,18,83,18,105,18,125,18,144,18,138,18,106,18,63,18,6,18,196,17,143,17,100,17,61,17,32,17,250,16, +186,16,130,16,111,16,84,16,9,16,168,15,76,15,248,14,174,14,115,14,68,14,23,14,227,13,159,13,78,13,245,12, +143,12,26,12,166,11,72,11,8,11,221,10,177,10,119,10,48,10,226,9,143,9,59,9,237,8,159,8,89,8,47,8, +27,8,255,7,216,7,180,7,129,7,55,7,239,6,167,6,62,6,200,5,110,5,32,5,215,4,188,4,191,4,156,4, +82,4,243,3,109,3,222,2,126,2,37,2,168,1,69,1,34,1,12,1,234,0,198,0,116,0,225,255,78,255,221,254, +117,254,16,254,185,253,88,253,226,252,119,252,39,252,222,251,136,251,43,251,197,250,75,250,210,249,122,249,39,249,180,248, +78,248,37,248,16,248,226,247,168,247,95,247,247,246,150,246,89,246,34,246,234,245,199,245,167,245,112,245,59,245,28,245, +252,244,204,244,155,244,121,244,111,244,122,244,140,244,142,244,103,244,50,244,52,244,113,244,172,244,212,244,251,244,20,245, +37,245,77,245,123,245,133,245,131,245,158,245,215,245,38,246,118,246,168,246,189,246,214,246,255,246,56,247,129,247,183,247, +205,247,241,247,55,248,138,248,243,248,107,249,182,249,221,249,37,250,131,250,178,250,185,250,200,250,230,250,25,251,114,251, +210,251,23,252,83,252,151,252,209,252,247,252,10,253,14,253,31,253,88,253,169,253,1,254,106,254,205,254,7,255,58,255, +149,255,243,255,42,0,88,0,139,0,176,0,229,0,69,1,165,1,229,1,32,2,91,2,143,2,209,2,21,3,55,3, +78,3,131,3,206,3,41,4,149,4,242,4,57,5,142,5,230,5,32,6,91,6,167,6,230,6,45,7,150,7,238,7, +38,8,105,8,170,8,197,8,226,8,30,9,65,9,53,9,48,9,72,9,109,9,152,9,189,9,216,9,246,9,27,10, +56,10,62,10,40,10,12,10,17,10,58,10,102,10,135,10,163,10,173,10,159,10,143,10,133,10,109,10,66,10,33,10, +18,10,243,9,191,9,153,9,133,9,105,9,92,9,106,9,83,9,8,9,216,8,202,8,159,8,120,8,133,8,137,8, +102,8,92,8,102,8,75,8,29,8,247,7,189,7,131,7,120,7,117,7,73,7,12,7,217,6,155,6,74,6,245,5, +175,5,134,5,103,5,60,5,10,5,219,4,169,4,133,4,114,4,82,4,27,4,226,3,161,3,75,3,6,3,219,2, +168,2,107,2,64,2,20,2,208,1,133,1,53,1,207,0,96,0,254,255,155,255,55,255,236,254,182,254,129,254,83,254, +42,254,240,253,176,253,124,253,62,253,241,252,184,252,133,252,53,252,236,251,205,251,169,251,107,251,63,251,15,251,191,250, +133,250,109,250,43,250,190,249,109,249,50,249,241,248,203,248,185,248,133,248,65,248,24,248,2,248,247,247,252,247,231,247, +165,247,90,247,36,247,15,247,18,247,252,246,186,246,132,246,121,246,119,246,118,246,120,246,78,246,250,245,195,245,192,245, +187,245,151,245,103,245,77,245,102,245,157,245,190,245,186,245,174,245,172,245,179,245,195,245,220,245,238,245,245,245,7,246, +61,246,132,246,193,246,246,246,18,247,247,246,217,246,8,247,98,247,166,247,236,247,78,248,166,248,245,248,64,249,92,249, +88,249,146,249,3,250,99,250,193,250,67,251,194,251,45,252,164,252,17,253,87,253,159,253,5,254,92,254,132,254,175,254, +14,255,151,255,38,0,187,0,89,1,222,1,44,2,84,2,102,2,117,2,181,2,60,3,213,3,89,4,224,4,116,5, +248,5,93,6,146,6,141,6,132,6,194,6,67,7,205,7,62,8,143,8,195,8,239,8,32,9,91,9,167,9,0,10, +61,10,70,10,73,10,135,10,246,10,87,11,145,11,185,11,236,11,40,12,74,12,47,12,0,12,253,11,40,12,106,12, +197,12,31,13,66,13,55,13,26,13,230,12,175,12,166,12,191,12,198,12,200,12,225,12,5,13,36,13,53,13,33,13, +226,12,153,12,111,12,110,12,111,12,68,12,0,12,203,11,157,11,109,11,71,11,25,11,205,10,130,10,65,10,231,9, +141,9,80,9,2,9,145,8,65,8,22,8,211,7,111,7,252,6,113,6,223,5,112,5,46,5,4,5,206,4,106,4, +230,3,93,3,198,2,45,2,187,1,92,1,229,0,119,0,45,0,228,255,149,255,73,255,212,254,29,254,99,253,211,252, +98,252,4,252,175,251,84,251,252,250,190,250,150,250,112,250,45,250,178,249,9,249,89,248,196,247,100,247,66,247,51,247, +11,247,204,246,125,246,19,246,144,245,252,244,80,244,150,243,247,242,152,242,123,242,129,242,118,242,60,242,222,241,122,241, +15,241,127,240,175,239,164,238,137,237,186,236,148,236,250,236,102,237,134,237,95,237,225,236,21,236,88,235,205,234,59,234, +194,233,198,233,47,234,152,234,221,234,234,234,168,234,85,234,53,234,23,234,203,233,133,233,95,233,59,233,64,233,185,233, +127,234,41,235,143,235,180,235,144,235,64,235,240,234,165,234,126,234,241,234,38,236,146,237,157,238,50,239,113,239,110,239, +60,239,248,238,219,238,53,239,10,240,13,241,12,242,233,242,112,243,173,243,239,243,72,244,153,244,225,244,6,245,249,244, +17,245,157,245,121,246,120,247,123,248,53,249,138,249,217,249,65,250,118,250,87,250,27,250,45,250,9,251,159,252,9,254, +138,254,92,254,36,254,54,254,135,254,218,254,25,255,118,255,15,0,203,0,154,1,93,2,204,2,215,2,187,2,207,2, +107,3,146,4,165,5,27,6,67,6,185,6,157,7,161,8,91,9,148,9,164,9,7,10,156,10,254,10,60,11,151,11, +26,12,215,12,207,13,159,14,242,14,255,14,8,15,2,15,17,15,141,15,95,16,29,17,181,17,55,18,121,18,129,18, +155,18,186,18,178,18,219,18,124,19,37,20,104,20,90,20,23,20,187,19,158,19,178,19,123,19,12,19,247,18,59,19, +85,19,38,19,230,18,184,18,173,18,178,18,137,18,41,18,208,17,138,17,50,17,237,16,8,17,95,17,128,17,58,17, +180,16,28,16,159,15,69,15,209,14,44,14,195,13,221,13,29,14,21,14,199,13,59,13,118,12,218,11,173,11,163,11, +102,11,28,11,236,10,190,10,154,10,163,10,165,10,68,10,156,9,14,9,163,8,76,8,65,8,92,8,8,8,94,7, +18,7,27,7,214,6,63,6,145,5,181,4,243,3,217,3,30,4,36,4,251,3,200,3,88,3,220,2,168,2,109,2, +212,1,39,1,164,0,75,0,59,0,104,0,90,0,220,255,64,255,210,254,133,254,44,254,164,253,237,252,60,252,208,251, +182,251,184,251,148,251,65,251,218,250,114,250,25,250,210,249,128,249,29,249,225,248,221,248,235,248,250,248,241,248,145,248, +2,248,172,247,135,247,79,247,25,247,4,247,224,246,174,246,162,246,163,246,116,246,49,246,5,246,235,245,227,245,253,245, +6,246,214,245,166,245,193,245,13,246,76,246,107,246,98,246,47,246,15,246,50,246,91,246,80,246,60,246,73,246,105,246, +153,246,195,246,165,246,58,246,237,245,8,246,111,246,221,246,25,247,9,247,215,246,206,246,11,247,94,247,130,247,100,247, +72,247,125,247,2,248,141,248,219,248,217,248,170,248,154,248,231,248,108,249,180,249,130,249,50,249,62,249,174,249,69,250, +203,250,7,251,253,250,13,251,101,251,189,251,243,251,37,252,77,252,113,252,209,252,113,253,255,253,71,254,85,254,75,254, +109,254,221,254,87,255,148,255,165,255,196,255,12,0,113,0,197,0,238,0,15,1,61,1,122,1,210,1,50,2,102,2, +117,2,165,2,3,3,97,3,149,3,165,3,180,3,220,3,18,4,74,4,130,4,167,4,184,4,224,4,33,5,77,5, +99,5,105,5,73,5,41,5,84,5,175,5,226,5,229,5,223,5,231,5,10,6,45,6,30,6,243,5,236,5,27,6, +99,6,153,6,152,6,126,6,126,6,132,6,111,6,103,6,109,6,74,6,23,6,18,6,40,6,58,6,97,6,133,6, +119,6,91,6,94,6,88,6,42,6,248,5,213,5,193,5,209,5,6,6,53,6,74,6,76,6,43,6,226,5,160,5, +134,5,118,5,83,5,44,5,13,5,247,4,251,4,20,5,25,5,241,4,171,4,108,4,85,4,85,4,51,4,235,3, +171,3,135,3,120,3,135,3,155,3,127,3,56,3,229,2,133,2,49,2,19,2,7,2,209,1,134,1,85,1,63,1, +52,1,25,1,206,0,113,0,56,0,24,0,238,255,195,255,156,255,114,255,80,255,51,255,17,255,251,254,238,254,199,254, +140,254,88,254,40,254,241,253,188,253,133,253,81,253,60,253,63,253,47,253,3,253,213,252,186,252,179,252,168,252,128,252, +78,252,49,252,42,252,51,252,58,252,31,252,242,251,233,251,6,252,21,252,3,252,226,251,194,251,164,251,133,251,109,251, +103,251,93,251,64,251,56,251,76,251,80,251,76,251,89,251,78,251,30,251,14,251,38,251,41,251,25,251,15,251,0,251, +6,251,47,251,68,251,48,251,39,251,35,251,5,251,243,250,253,250,244,250,227,250,236,250,240,250,233,250,9,251,66,251, +90,251,85,251,72,251,55,251,74,251,142,251,193,251,191,251,190,251,229,251,37,252,111,252,170,252,175,252,133,252,104,252, +111,252,137,252,168,252,190,252,197,252,206,252,231,252,9,253,47,253,84,253,86,253,45,253,24,253,56,253,94,253,122,253, +166,253,208,253,228,253,12,254,76,254,106,254,96,254,83,254,61,254,26,254,23,254,49,254,71,254,100,254,145,254,172,254, +167,254,153,254,145,254,149,254,161,254,169,254,179,254,213,254,6,255,52,255,99,255,141,255,174,255,217,255,8,0,39,0, +71,0,123,0,175,0,214,0,251,0,42,1,120,1,212,1,1,2,234,1,203,1,208,1,250,1,78,2,187,2,22,3, +92,3,161,3,219,3,5,4,35,4,50,4,66,4,125,4,223,4,73,5,175,5,3,6,60,6,113,6,179,6,237,6, +28,7,55,7,41,7,6,7,1,7,37,7,109,7,203,7,19,8,56,8,100,8,154,8,166,8,136,8,102,8,86,8, +106,8,179,8,28,9,131,9,204,9,208,9,152,9,99,9,91,9,122,9,169,9,180,9,139,9,114,9,137,9,152,9, +140,9,128,9,98,9,44,9,23,9,33,9,7,9,209,8,176,8,160,8,166,8,229,8,47,9,49,9,248,8,187,8, +114,8,24,8,227,7,228,7,224,7,195,7,175,7,151,7,85,7,4,7,200,6,132,6,38,6,218,5,176,5,130,5, +77,5,37,5,238,4,141,4,27,4,189,3,139,3,119,3,82,3,250,2,136,2,26,2,174,1,66,1,231,0,148,0, +41,0,168,255,52,255,205,254,94,254,241,253,151,253,45,253,170,252,65,252,231,251,82,251,141,250,222,249,76,249,217,248, +166,248,140,248,65,248,216,247,109,247,221,246,54,246,179,245,55,245,145,244,242,243,144,243,92,243,54,243,6,243,178,242, +55,242,173,241,50,241,219,240,133,240,255,239,115,239,37,239,10,239,8,239,31,239,31,239,223,238,151,238,103,238,36,238, +213,237,166,237,129,237,85,237,76,237,109,237,154,237,196,237,199,237,128,237,43,237,28,237,65,237,94,237,107,237,120,237, +161,237,5,238,149,238,16,239,88,239,125,239,132,239,113,239,109,239,166,239,19,240,137,240,254,240,112,241,198,241,0,242, +59,242,105,242,116,242,145,242,227,242,55,243,118,243,197,243,35,244,140,244,25,245,166,245,242,245,47,246,165,246,40,247, +117,247,167,247,240,247,104,248,35,249,2,250,168,250,242,250,22,251,78,251,163,251,2,252,100,252,214,252,91,253,235,253, +136,254,42,255,168,255,235,255,14,0,67,0,178,0,109,1,79,2,9,3,113,3,194,3,71,4,248,4,139,5,223,5, +23,6,91,6,186,6,40,7,134,7,205,7,37,8,168,8,59,9,183,9,15,10,67,10,76,10,49,10,42,10,126,10, +30,11,185,11,48,12,146,12,213,12,7,13,81,13,137,13,120,13,109,13,170,13,245,13,60,14,161,14,230,14,216,14, +204,14,229,14,215,14,176,14,185,14,202,14,183,14,166,14,172,14,195,14,2,15,79,15,112,15,125,15,146,15,134,15, +96,15,78,15,68,15,57,15,81,15,128,15,151,15,164,15,189,15,185,15,125,15,48,15,4,15,7,15,30,15,21,15, +227,14,175,14,143,14,125,14,113,14,109,14,111,14,112,14,105,14,94,14,80,14,56,14,30,14,9,14,228,13,179,13, +157,13,166,13,163,13,135,13,88,13,11,13,169,12,81,12,255,11,184,11,135,11,73,11,225,10,136,10,103,10,81,10, +34,10,236,9,177,9,111,9,53,9,250,8,167,8,75,8,252,7,197,7,176,7,173,7,135,7,35,7,155,6,23,6, +172,5,91,5,9,5,168,4,80,4,14,4,212,3,145,3,64,3,226,2,122,2,17,2,189,1,143,1,118,1,68,1, +237,0,146,0,77,0,17,0,194,255,92,255,235,254,114,254,250,253,149,253,63,253,233,252,139,252,19,252,119,251,231,250, +135,250,40,250,160,249,15,249,153,248,61,248,252,247,187,247,85,247,213,246,84,246,190,245,38,245,185,244,91,244,227,243, +116,243,28,243,185,242,86,242,246,241,97,241,147,240,201,239,25,239,127,238,23,238,230,237,211,237,209,237,196,237,136,237, +40,237,184,236,70,236,241,235,199,235,172,235,171,235,222,235,18,236,40,236,75,236,125,236,142,236,138,236,133,236,97,236, +47,236,38,236,63,236,106,236,198,236,86,237,244,237,131,238,235,238,17,239,9,239,15,239,75,239,194,239,93,240,4,241, +175,241,73,242,185,242,0,243,54,243,101,243,163,243,5,244,115,244,216,244,65,245,157,245,209,245,2,246,91,246,195,246, +22,247,81,247,118,247,159,247,235,247,75,248,156,248,254,248,153,249,78,250,232,250,89,251,160,251,192,251,211,251,8,252, +114,252,248,252,122,253,243,253,96,254,179,254,243,254,67,255,179,255,46,0,162,0,33,1,192,1,98,2,229,2,86,3, +202,3,57,4,185,4,115,5,80,6,25,7,209,7,127,8,255,8,96,9,227,9,128,10,0,11,101,11,197,11,35,12, +144,12,12,13,114,13,195,13,42,14,174,14,40,15,137,15,210,15,255,15,25,16,64,16,147,16,9,17,122,17,208,17, +16,18,62,18,82,18,73,18,46,18,17,18,5,18,10,18,25,18,48,18,44,18,236,17,148,17,87,17,45,17,19,17, +22,17,12,17,221,16,198,16,206,16,176,16,124,16,104,16,80,16,26,16,250,15,236,15,198,15,161,15,139,15,91,15, +35,15,16,15,255,14,189,14,92,14,244,13,134,13,38,13,234,12,200,12,172,12,140,12,108,12,71,12,3,12,164,11, +91,11,39,11,219,10,140,10,95,10,40,10,218,9,175,9,135,9,20,9,128,8,10,8,140,7,251,6,143,6,54,6, +184,5,56,5,229,4,151,4,47,4,189,3,62,3,168,2,31,2,178,1,65,1,206,0,121,0,45,0,205,255,118,255, +48,255,207,254,72,254,190,253,53,253,166,252,39,252,177,251,46,251,185,250,107,250,22,250,164,249,63,249,247,248,174,248, +94,248,1,248,132,247,250,246,155,246,102,246,42,246,211,245,118,245,43,245,241,244,183,244,108,244,5,244,126,243,249,242, +137,242,7,242,79,241,143,240,244,239,127,239,58,239,42,239,34,239,253,238,183,238,74,238,194,237,79,237,248,236,146,236, +48,236,30,236,99,236,195,236,14,237,32,237,228,236,128,236,55,236,4,236,179,235,74,235,240,234,175,234,168,234,14,235, +171,235,27,236,102,236,163,236,138,236,34,236,243,235,11,236,18,236,69,236,7,237,16,238,0,239,216,239,98,240,98,240, +53,240,54,240,61,240,63,240,131,240,9,241,160,241,72,242,243,242,110,243,179,243,220,243,235,243,218,243,195,243,206,243, +28,244,184,244,162,245,199,246,225,247,171,248,46,249,138,249,161,249,112,249,70,249,97,249,186,249,89,250,67,251,56,252, +242,252,114,253,193,253,217,253,210,253,212,253,226,253,0,254,83,254,245,254,193,255,145,0,101,1,53,2,215,2,75,3, +183,3,33,4,122,4,212,4,75,5,223,5,138,6,67,7,229,7,84,8,157,8,221,8,22,9,66,9,119,9,220,9, +99,10,218,10,67,11,186,11,44,12,125,12,186,12,237,12,22,13,107,13,9,14,171,14,18,15,79,15,142,15,216,15, +25,16,50,16,38,16,29,16,24,16,254,15,235,15,251,15,17,16,23,16,18,16,246,15,197,15,179,15,197,15,183,15, +118,15,60,15,54,15,84,15,122,15,142,15,118,15,64,15,29,15,28,15,19,15,254,14,253,14,243,14,166,14,63,14, +241,13,155,13,43,13,207,12,128,12,42,12,18,12,73,12,94,12,31,12,206,11,140,11,79,11,33,11,234,10,140,10, +54,10,27,10,32,10,28,10,20,10,6,10,219,9,135,9,20,9,145,8,6,8,127,7,23,7,208,6,137,6,79,6, +49,6,242,5,104,5,215,4,115,4,30,4,205,3,140,3,75,3,22,3,22,3,32,3,231,2,117,2,253,1,142,1, +42,1,202,0,97,0,3,0,204,255,170,255,129,255,75,255,2,255,159,254,33,254,142,253,8,253,184,252,139,252,88,252, +55,252,82,252,144,252,185,252,160,252,67,252,211,251,131,251,83,251,52,251,30,251,251,250,213,250,222,250,19,251,40,251, +246,250,152,250,50,250,237,249,225,249,234,249,205,249,145,249,114,249,144,249,214,249,29,250,68,250,66,250,38,250,18,250, +29,250,60,250,85,250,82,250,58,250,58,250,104,250,153,250,164,250,153,250,141,250,131,250,144,250,168,250,160,250,136,250, +146,250,159,250,144,250,151,250,190,250,214,250,237,250,36,251,81,251,93,251,107,251,109,251,78,251,66,251,100,251,122,251, +118,251,132,251,156,251,151,251,130,251,125,251,128,251,119,251,102,251,86,251,74,251,76,251,104,251,144,251,169,251,205,251, +9,252,45,252,37,252,35,252,53,252,68,252,99,252,153,252,187,252,207,252,251,252,32,253,35,253,48,253,83,253,93,253, +87,253,114,253,158,253,185,253,208,253,252,253,55,254,113,254,161,254,205,254,252,254,52,255,119,255,182,255,222,255,2,0, +59,0,105,0,124,0,160,0,211,0,234,0,240,0,0,1,2,1,255,0,26,1,42,1,26,1,37,1,64,1,39,1, +17,1,69,1,133,1,161,1,196,1,224,1,200,1,176,1,195,1,204,1,187,1,187,1,198,1,197,1,207,1,242,1, +8,2,247,1,211,1,176,1,133,1,73,1,18,1,249,0,247,0,7,1,57,1,123,1,165,1,196,1,237,1,247,1, +209,1,194,1,236,1,18,2,23,2,44,2,89,2,126,2,163,2,211,2,234,2,226,2,231,2,241,2,230,2,234,2, +13,3,24,3,14,3,54,3,135,3,183,3,204,3,242,3,18,4,32,4,58,4,92,4,107,4,118,4,146,4,174,4, +194,4,207,4,190,4,141,4,106,4,109,4,128,4,132,4,103,4,38,4,216,3,157,3,127,3,108,3,82,3,61,3, +58,3,62,3,52,3,29,3,0,3,215,2,156,2,100,2,80,2,90,2,76,2,25,2,244,1,237,1,212,1,157,1, +106,1,54,1,242,0,189,0,156,0,108,0,64,0,59,0,65,0,51,0,47,0,57,0,41,0,253,255,213,255,190,255, +181,255,185,255,188,255,182,255,181,255,188,255,186,255,156,255,100,255,44,255,2,255,222,254,191,254,174,254,152,254,107,254, +64,254,34,254,254,253,221,253,204,253,183,253,149,253,125,253,98,253,49,253,10,253,5,253,0,253,230,252,199,252,168,252, +134,252,100,252,52,252,252,251,218,251,188,251,110,251,12,251,212,250,188,250,161,250,140,250,120,250,91,250,81,250,93,250, +69,250,3,250,203,249,164,249,123,249,100,249,101,249,103,249,116,249,151,249,159,249,116,249,68,249,31,249,232,248,166,248, +129,248,111,248,92,248,92,248,128,248,165,248,171,248,170,248,185,248,190,248,164,248,141,248,147,248,156,248,175,248,238,248, +67,249,125,249,169,249,199,249,176,249,126,249,124,249,157,249,168,249,171,249,198,249,238,249,38,250,117,250,180,250,198,250, +200,250,211,250,226,250,249,250,40,251,113,251,196,251,24,252,112,252,193,252,240,252,4,253,21,253,25,253,8,253,23,253, +92,253,160,253,204,253,253,253,36,254,46,254,65,254,88,254,59,254,16,254,37,254,102,254,154,254,206,254,17,255,73,255, +126,255,195,255,248,255,4,0,3,0,3,0,5,0,30,0,86,0,145,0,197,0,9,1,81,1,107,1,98,1,102,1, +126,1,141,1,159,1,213,1,31,2,105,2,182,2,10,3,86,3,148,3,192,3,223,3,12,4,86,4,169,4,243,4, +60,5,131,5,197,5,22,6,119,6,194,6,230,6,4,7,47,7,88,7,122,7,159,7,194,7,221,7,13,8,99,8, +199,8,26,9,89,9,129,9,140,9,138,9,138,9,142,9,162,9,204,9,249,9,33,10,84,10,145,10,196,10,216,10, +187,10,129,10,93,10,91,10,79,10,49,10,36,10,37,10,43,10,65,10,85,10,79,10,64,10,43,10,251,9,191,9, +152,9,135,9,138,9,173,9,213,9,230,9,229,9,206,9,146,9,68,9,2,9,214,8,194,8,187,8,184,8,190,8, +183,8,132,8,69,8,24,8,213,7,120,7,65,7,44,7,7,7,230,6,221,6,199,6,167,6,144,6,83,6,230,5, +148,5,98,5,23,5,185,4,108,4,36,4,231,3,189,3,128,3,27,3,168,2,44,2,152,1,10,1,165,0,91,0, +9,0,157,255,37,255,196,254,127,254,50,254,203,253,79,253,206,252,94,252,12,252,181,251,57,251,169,250,39,250,190,249, +101,249,13,249,174,248,70,248,204,247,70,247,213,246,132,246,38,246,175,245,74,245,6,245,192,244,116,244,61,244,10,244, +181,243,82,243,17,243,234,242,175,242,99,242,34,242,236,241,195,241,178,241,160,241,112,241,60,241,12,241,193,240,110,240, +70,240,48,240,11,240,0,240,24,240,26,240,13,240,34,240,58,240,36,240,10,240,24,240,42,240,47,240,77,240,133,240, +177,240,210,240,249,240,15,241,16,241,43,241,96,241,122,241,126,241,150,241,176,241,182,241,208,241,8,242,49,242,86,242, +150,242,204,242,234,242,36,243,122,243,186,243,230,243,19,244,52,244,93,244,170,244,243,244,31,245,91,245,186,245,19,246, +88,246,133,246,147,246,152,246,189,246,249,246,57,247,129,247,209,247,35,248,132,248,0,249,134,249,231,249,15,250,38,250, +96,250,192,250,58,251,195,251,56,252,154,252,34,253,211,253,101,254,204,254,42,255,103,255,134,255,207,255,69,0,166,0, +2,1,138,1,32,2,176,2,75,3,211,3,36,4,95,4,163,4,238,4,84,5,225,5,105,6,219,6,80,7,203,7, +57,8,153,8,224,8,6,9,43,9,107,9,174,9,226,9,29,10,104,10,177,10,238,10,37,11,83,11,112,11,131,11, +147,11,165,11,191,11,234,11,25,12,69,12,130,12,207,12,6,13,22,13,18,13,255,12,234,12,0,13,66,13,120,13, +154,13,210,13,20,14,48,14,35,14,6,14,223,13,198,13,222,13,18,14,61,14,104,14,161,14,210,14,229,14,234,14, +238,14,232,14,221,14,214,14,209,14,216,14,3,15,64,15,95,15,96,15,106,15,124,15,121,15,84,15,21,15,203,14, +142,14,113,14,111,14,110,14,93,14,62,14,29,14,236,13,154,13,65,13,253,12,185,12,102,12,43,12,23,12,254,11, +200,11,119,11,9,11,152,10,75,10,15,10,188,9,99,9,30,9,213,8,119,8,18,8,164,7,45,7,206,6,145,6, +79,6,239,5,136,5,52,5,237,4,161,4,80,4,1,4,180,3,107,3,41,3,225,2,143,2,70,2,10,2,201,1, +137,1,87,1,23,1,191,0,110,0,37,0,204,255,124,255,68,255,253,254,157,254,78,254,28,254,230,253,159,253,67,253, +220,252,143,252,105,252,71,252,22,252,218,251,133,251,20,251,180,250,114,250,50,250,232,249,154,249,72,249,249,248,188,248, +126,248,42,248,209,247,133,247,59,247,232,246,154,246,86,246,15,246,198,245,153,245,136,245,109,245,64,245,29,245,6,245, +228,244,199,244,183,244,148,244,95,244,61,244,46,244,34,244,46,244,72,244,68,244,46,244,46,244,56,244,53,244,64,244, +93,244,110,244,124,244,160,244,198,244,220,244,255,244,60,245,118,245,173,245,247,245,71,246,133,246,179,246,224,246,17,247, +79,247,158,247,226,247,13,248,65,248,145,248,220,248,13,249,65,249,132,249,204,249,37,250,141,250,213,250,237,250,6,251, +63,251,133,251,206,251,42,252,146,252,243,252,78,253,168,253,239,253,27,254,64,254,102,254,139,254,198,254,44,255,149,255, +219,255,10,0,62,0,120,0,187,0,6,1,64,1,104,1,156,1,217,1,15,2,72,2,141,2,204,2,21,3,124,3, +228,3,52,4,118,4,166,4,187,4,216,4,25,5,104,5,172,5,229,5,18,6,62,6,112,6,154,6,186,6,225,6, +18,7,68,7,129,7,203,7,1,8,19,8,24,8,44,8,82,8,126,8,176,8,235,8,34,9,67,9,82,9,86,9, +79,9,82,9,104,9,113,9,108,9,131,9,159,9,135,9,82,9,51,9,32,9,22,9,46,9,69,9,45,9,14,9, +1,9,225,8,178,8,161,8,150,8,110,8,75,8,61,8,34,8,244,7,200,7,151,7,98,7,63,7,40,7,243,6, +149,6,52,6,243,5,198,5,154,5,107,5,60,5,12,5,227,4,194,4,148,4,87,4,18,4,195,3,119,3,77,3, +55,3,14,3,215,2,167,2,107,2,33,2,233,1,182,1,104,1,23,1,224,0,174,0,115,0,65,0,14,0,198,255, +118,255,52,255,254,254,206,254,154,254,89,254,34,254,15,254,7,254,229,253,173,253,112,253,35,253,207,252,153,252,125,252, +74,252,255,251,199,251,170,251,149,251,137,251,124,251,80,251,11,251,203,250,141,250,80,250,42,250,26,250,13,250,5,250, +13,250,21,250,16,250,252,249,215,249,168,249,136,249,128,249,126,249,114,249,90,249,75,249,84,249,101,249,103,249,95,249, +86,249,70,249,55,249,53,249,46,249,22,249,2,249,6,249,31,249,75,249,120,249,147,249,151,249,144,249,141,249,153,249, +174,249,191,249,202,249,206,249,205,249,221,249,254,249,1,250,222,249,207,249,238,249,24,250,49,250,48,250,26,250,27,250, +64,250,87,250,81,250,95,250,138,250,177,250,213,250,246,250,252,250,250,250,13,251,28,251,36,251,89,251,180,251,238,251, +248,251,249,251,3,252,27,252,70,252,116,252,148,252,176,252,215,252,7,253,54,253,91,253,120,253,157,253,215,253,33,254, +103,254,151,254,189,254,227,254,255,254,21,255,67,255,129,255,175,255,212,255,251,255,13,0,24,0,66,0,103,0,89,0, +75,0,109,0,145,0,151,0,151,0,144,0,124,0,126,0,159,0,179,0,176,0,177,0,172,0,143,0,113,0,96,0, +73,0,42,0,15,0,236,255,190,255,159,255,144,255,100,255,8,255,170,254,108,254,53,254,243,253,179,253,128,253,87,253, +50,253,8,253,200,252,110,252,15,252,202,251,177,251,183,251,188,251,191,251,194,251,177,251,123,251,54,251,247,250,186,250, +134,250,110,250,118,250,134,250,133,250,105,250,75,250,67,250,70,250,59,250,30,250,254,249,227,249,207,249,212,249,255,249, +72,250,158,250,251,250,76,251,110,251,101,251,87,251,67,251,38,251,50,251,136,251,245,251,76,252,138,252,154,252,113,252, +74,252,72,252,73,252,80,252,129,252,197,252,243,252,28,253,74,253,98,253,100,253,116,253,154,253,195,253,231,253,6,254, +32,254,51,254,81,254,145,254,225,254,17,255,20,255,252,254,207,254,161,254,147,254,159,254,174,254,220,254,53,255,138,255, +190,255,213,255,196,255,152,255,146,255,190,255,254,255,81,0,190,0,26,1,76,1,110,1,149,1,198,1,251,1,37,2, +67,2,111,2,167,2,204,2,218,2,238,2,30,3,113,3,204,3,9,4,37,4,54,4,74,4,104,4,153,4,212,4, +18,5,94,5,182,5,1,6,51,6,73,6,69,6,63,6,86,6,133,6,192,6,248,6,23,7,25,7,17,7,255,6, +225,6,207,6,206,6,202,6,206,6,241,6,6,7,231,6,192,6,191,6,210,6,227,6,252,6,6,7,230,6,183,6, +162,6,152,6,133,6,131,6,152,6,158,6,140,6,125,6,111,6,76,6,30,6,249,5,218,5,208,5,233,5,255,5, +233,5,194,5,174,5,160,5,151,5,166,5,193,5,205,5,209,5,227,5,242,5,225,5,188,5,159,5,143,5,137,5, +143,5,152,5,149,5,139,5,132,5,117,5,89,5,65,5,35,5,237,4,185,4,166,4,166,4,165,4,169,4,170,4, +152,4,131,4,119,4,93,4,39,4,231,3,187,3,171,3,163,3,144,3,126,3,108,3,69,3,15,3,230,2,183,2, +114,2,56,2,22,2,240,1,205,1,193,1,178,1,142,1,110,1,81,1,44,1,11,1,238,0,192,0,152,0,161,0, +205,0,228,0,207,0,156,0,106,0,74,0,45,0,9,0,237,255,223,255,222,255,237,255,252,255,235,255,196,255,160,255, +130,255,104,255,88,255,80,255,76,255,83,255,93,255,97,255,105,255,115,255,114,255,105,255,91,255,64,255,39,255,28,255, +7,255,231,254,220,254,232,254,239,254,241,254,233,254,201,254,159,254,130,254,100,254,66,254,52,254,59,254,63,254,64,254, +65,254,55,254,51,254,64,254,70,254,55,254,41,254,38,254,27,254,0,254,230,253,220,253,227,253,245,253,6,254,15,254, +10,254,250,253,234,253,221,253,211,253,212,253,230,253,251,253,9,254,20,254,32,254,43,254,48,254,57,254,73,254,90,254, +103,254,123,254,148,254,156,254,142,254,137,254,147,254,151,254,151,254,163,254,172,254,169,254,172,254,185,254,183,254,171,254, +179,254,197,254,203,254,201,254,199,254,180,254,156,254,167,254,210,254,242,254,251,254,1,255,243,254,200,254,161,254,135,254, +97,254,66,254,73,254,81,254,59,254,46,254,55,254,44,254,9,254,238,253,218,253,209,253,225,253,238,253,216,253,184,253, +174,253,178,253,182,253,180,253,171,253,170,253,181,253,183,253,165,253,145,253,122,253,88,253,56,253,47,253,63,253,84,253, +80,253,53,253,48,253,75,253,103,253,115,253,113,253,91,253,68,253,73,253,104,253,140,253,168,253,185,253,200,253,234,253, +10,254,6,254,233,253,204,253,177,253,175,253,208,253,232,253,232,253,251,253,30,254,32,254,17,254,24,254,38,254,35,254, +35,254,56,254,90,254,130,254,160,254,173,254,181,254,204,254,234,254,245,254,223,254,192,254,194,254,231,254,10,255,33,255, +51,255,49,255,29,255,19,255,15,255,0,255,249,254,12,255,42,255,84,255,146,255,194,255,193,255,174,255,178,255,194,255, +205,255,226,255,3,0,28,0,48,0,86,0,125,0,129,0,113,0,114,0,126,0,138,0,165,0,199,0,207,0,196,0, +204,0,235,0,25,1,81,1,121,1,123,1,115,1,135,1,171,1,208,1,255,1,43,2,61,2,79,2,123,2,160,2, +151,2,126,2,120,2,122,2,130,2,172,2,230,2,251,2,233,2,218,2,224,2,237,2,245,2,240,2,226,2,231,2, +13,3,55,3,77,3,87,3,95,3,111,3,136,3,154,3,151,3,127,3,81,3,26,3,249,2,250,2,3,3,12,3, +28,3,38,3,27,3,13,3,249,2,209,2,165,2,139,2,127,2,128,2,148,2,177,2,203,2,235,2,13,3,31,3, +28,3,15,3,249,2,218,2,187,2,167,2,160,2,162,2,178,2,210,2,231,2,217,2,193,2,183,2,172,2,162,2, +179,2,207,2,225,2,252,2,29,3,38,3,49,3,82,3,91,3,66,3,67,3,105,3,139,3,163,3,179,3,165,3, +139,3,136,3,128,3,90,3,52,3,41,3,40,3,34,3,31,3,48,3,83,3,111,3,109,3,88,3,58,3,27,3, +15,3,18,3,10,3,0,3,16,3,47,3,60,3,51,3,24,3,237,2,191,2,144,2,100,2,74,2,57,2,27,2, +254,1,245,1,236,1,213,1,192,1,164,1,113,1,73,1,76,1,99,1,110,1,97,1,65,1,33,1,12,1,238,0, +188,0,144,0,112,0,79,0,50,0,37,0,23,0,245,255,198,255,140,255,62,255,230,254,158,254,111,254,65,254,14,254, +228,253,207,253,196,253,188,253,169,253,121,253,44,253,215,252,138,252,72,252,13,252,210,251,152,251,104,251,73,251,50,251, +17,251,214,250,134,250,49,250,213,249,118,249,53,249,21,249,238,248,185,248,149,248,127,248,92,248,59,248,35,248,5,248, +238,247,239,247,241,247,219,247,184,247,143,247,94,247,53,247,35,247,34,247,28,247,13,247,8,247,22,247,26,247,6,247, +243,246,234,246,217,246,195,246,187,246,181,246,180,246,205,246,237,246,250,246,11,247,51,247,88,247,104,247,106,247,89,247, +58,247,42,247,48,247,65,247,91,247,121,247,133,247,128,247,118,247,107,247,105,247,119,247,132,247,139,247,156,247,185,247, +212,247,228,247,225,247,219,247,247,247,45,248,80,248,101,248,140,248,182,248,211,248,250,248,36,249,47,249,42,249,58,249, +83,249,106,249,144,249,207,249,31,250,118,250,192,250,238,250,15,251,46,251,78,251,122,251,187,251,1,252,76,252,177,252, +44,253,159,253,252,253,65,254,113,254,157,254,209,254,10,255,69,255,134,255,206,255,28,0,114,0,217,0,72,1,160,1, +207,1,240,1,35,2,96,2,159,2,231,2,49,3,126,3,234,3,111,4,219,4,27,5,70,5,98,5,123,5,178,5, +14,6,103,6,170,6,228,6,29,7,77,7,119,7,166,7,212,7,235,7,246,7,21,8,79,8,150,8,224,8,30,9, +73,9,118,9,185,9,246,9,13,10,5,10,246,9,235,9,245,9,30,10,93,10,150,10,185,10,196,10,186,10,157,10, +124,10,100,10,63,10,0,10,217,9,239,9,19,10,25,10,18,10,4,10,231,9,213,9,208,9,171,9,101,9,37,9, +239,8,187,8,157,8,148,8,122,8,75,8,29,8,237,7,162,7,67,7,246,6,185,6,121,6,75,6,70,6,53,6, +237,5,161,5,119,5,73,5,17,5,241,4,214,4,167,4,135,4,115,4,56,4,222,3,147,3,88,3,37,3,255,2, +210,2,140,2,73,2,29,2,245,1,197,1,145,1,97,1,44,1,226,0,132,0,62,0,36,0,17,0,229,255,178,255, +142,255,114,255,71,255,253,254,151,254,43,254,210,253,147,253,99,253,54,253,17,253,243,252,193,252,113,252,28,252,204,251, +113,251,23,251,210,250,155,250,132,250,167,250,202,250,169,250,106,250,74,250,45,250,254,249,215,249,164,249,80,249,26,249, +42,249,75,249,92,249,118,249,136,249,113,249,83,249,76,249,58,249,22,249,9,249,19,249,40,249,110,249,237,249,88,250, +128,250,141,250,165,250,194,250,221,250,241,250,247,250,6,251,76,251,188,251,21,252,59,252,76,252,98,252,120,252,137,252, +160,252,182,252,189,252,199,252,243,252,72,253,172,253,249,253,36,254,58,254,75,254,93,254,120,254,156,254,187,254,211,254, +254,254,64,255,117,255,137,255,140,255,138,255,134,255,141,255,162,255,179,255,189,255,203,255,225,255,253,255,37,0,85,0, +125,0,155,0,187,0,228,0,23,1,83,1,133,1,164,1,206,1,25,2,106,2,155,2,177,2,193,2,230,2,48,3, +138,3,196,3,222,3,246,3,18,4,48,4,89,4,138,4,184,4,228,4,21,5,81,5,169,5,6,6,54,6,57,6, +60,6,93,6,157,6,229,6,6,7,2,7,21,7,80,7,133,7,153,7,133,7,81,7,37,7,35,7,50,7,56,7, +57,7,42,7,11,7,246,6,244,6,244,6,231,6,185,6,114,6,84,6,123,6,162,6,157,6,122,6,65,6,6,6, +249,5,9,6,238,5,157,5,75,5,28,5,19,5,20,5,250,4,195,4,144,4,101,4,61,4,24,4,237,3,180,3, +136,3,122,3,121,3,120,3,119,3,105,3,62,3,2,3,213,2,193,2,176,2,141,2,98,2,72,2,63,2,53,2, +15,2,202,1,132,1,88,1,51,1,0,1,204,0,160,0,123,0,92,0,59,0,19,0,242,255,217,255,175,255,121,255, +86,255,71,255,43,255,243,254,179,254,127,254,91,254,60,254,18,254,219,253,162,253,119,253,93,253,53,253,237,252,156,252, +98,252,70,252,66,252,56,252,14,252,212,251,166,251,122,251,81,251,66,251,58,251,21,251,233,250,215,250,217,250,219,250, +207,250,165,250,104,250,65,250,57,250,49,250,20,250,223,249,166,249,146,249,173,249,208,249,212,249,193,249,168,249,140,249, +114,249,100,249,97,249,96,249,95,249,108,249,142,249,187,249,225,249,234,249,195,249,133,249,108,249,139,249,176,249,175,249, +154,249,149,249,167,249,204,249,239,249,238,249,205,249,192,249,213,249,232,249,244,249,12,250,44,250,71,250,106,250,147,250, +175,250,197,250,215,250,211,250,199,250,220,250,15,251,57,251,88,251,115,251,132,251,146,251,170,251,185,251,183,251,198,251, +248,251,47,252,88,252,136,252,194,252,237,252,12,253,47,253,75,253,97,253,135,253,183,253,211,253,238,253,38,254,96,254, +137,254,180,254,219,254,246,254,30,255,72,255,71,255,61,255,105,255,173,255,212,255,0,0,73,0,145,0,204,0,5,1, +39,1,40,1,54,1,115,1,198,1,12,2,75,2,141,2,198,2,238,2,27,3,82,3,121,3,147,3,179,3,210,3, +252,3,76,4,166,4,223,4,22,5,116,5,218,5,35,6,82,6,103,6,99,6,110,6,164,6,238,6,57,7,142,7, +239,7,72,8,128,8,157,8,176,8,182,8,171,8,170,8,191,8,225,8,22,9,86,9,116,9,113,9,144,9,217,9, +13,10,24,10,23,10,17,10,4,10,11,10,47,10,71,10,67,10,71,10,101,10,116,10,95,10,71,10,56,10,27,10, +249,9,233,9,228,9,226,9,227,9,205,9,144,9,84,9,53,9,34,9,13,9,251,8,230,8,203,8,179,8,157,8, +133,8,109,8,77,8,34,8,236,7,167,7,101,7,58,7,11,7,193,6,131,6,100,6,68,6,22,6,233,5,172,5, +86,5,249,4,159,4,73,4,13,4,232,3,193,3,144,3,83,3,12,3,214,2,178,2,117,2,15,2,165,1,72,1, +245,0,178,0,112,0,14,0,157,255,66,255,250,254,184,254,116,254,19,254,132,253,248,252,153,252,81,252,7,252,194,251, +122,251,30,251,198,250,142,250,81,250,230,249,108,249,11,249,187,248,104,248,16,248,167,247,34,247,151,246,35,246,200,245, +115,245,23,245,178,244,65,244,197,243,84,243,5,243,193,242,105,242,10,242,190,241,122,241,57,241,0,241,182,240,70,240, +205,239,109,239,23,239,185,238,102,238,61,238,50,238,46,238,49,238,48,238,10,238,196,237,135,237,66,237,211,236,112,236, +87,236,103,236,133,236,210,236,51,237,96,237,95,237,93,237,72,237,32,237,15,237,11,237,241,236,230,236,28,237,120,237, +222,237,90,238,210,238,7,239,3,239,251,238,244,238,231,238,7,239,109,239,236,239,116,240,35,241,210,241,49,242,71,242, +87,242,116,242,155,242,232,242,91,243,207,243,55,244,183,244,80,245,207,245,27,246,89,246,156,246,214,246,22,247,105,247, +169,247,217,247,64,248,239,248,169,249,83,250,228,250,53,251,75,251,103,251,158,251,224,251,61,252,184,252,54,253,190,253, +93,254,232,254,58,255,105,255,146,255,207,255,49,0,170,0,29,1,140,1,4,2,128,2,248,2,116,3,247,3,112,4, +204,4,20,5,100,5,189,5,25,6,129,6,242,6,95,7,220,7,109,8,227,8,40,9,84,9,123,9,166,9,245,9, +99,10,203,10,42,11,151,11,0,12,82,12,162,12,253,12,74,13,123,13,170,13,229,13,27,14,73,14,136,14,199,14, +220,14,223,14,15,15,93,15,146,15,163,15,150,15,113,15,96,15,125,15,150,15,138,15,127,15,133,15,127,15,118,15, +135,15,156,15,150,15,139,15,147,15,142,15,102,15,62,15,35,15,236,14,157,14,116,14,103,14,60,14,4,14,238,13, +211,13,143,13,70,13,7,13,195,12,147,12,139,12,121,12,61,12,254,11,210,11,173,11,142,11,116,11,68,11,248,10, +179,10,132,10,82,10,15,10,206,9,149,9,88,9,27,9,234,8,179,8,103,8,19,8,192,7,108,7,38,7,250,6, +214,6,159,6,81,6,5,6,206,5,165,5,115,5,46,5,216,4,129,4,67,4,28,4,228,3,145,3,54,3,217,2, +121,2,43,2,232,1,148,1,49,1,205,0,103,0,18,0,226,255,185,255,115,255,23,255,189,254,111,254,49,254,241,253, +149,253,54,253,241,252,188,252,141,252,117,252,93,252,30,252,199,251,128,251,71,251,2,251,178,250,95,250,12,250,212,249, +213,249,242,249,243,249,215,249,188,249,163,249,132,249,105,249,74,249,26,249,253,248,17,249,68,249,110,249,130,249,134,249, +137,249,151,249,164,249,156,249,127,249,97,249,94,249,125,249,169,249,206,249,239,249,12,250,42,250,82,250,116,250,129,250, +142,250,164,250,183,250,223,250,56,251,147,251,187,251,200,251,227,251,4,252,24,252,38,252,64,252,105,252,149,252,190,252, +239,252,34,253,63,253,76,253,92,253,108,253,125,253,160,253,199,253,230,253,22,254,91,254,157,254,215,254,9,255,39,255, +57,255,85,255,111,255,128,255,156,255,197,255,233,255,23,0,88,0,145,0,178,0,197,0,209,0,223,0,255,0,43,1, +82,1,118,1,166,1,225,1,28,2,84,2,141,2,189,2,227,2,3,3,31,3,59,3,106,3,167,3,217,3,1,4, +48,4,85,4,100,4,117,4,136,4,135,4,129,4,140,4,164,4,195,4,222,4,231,4,248,4,39,5,76,5,63,5, +40,5,49,5,79,5,111,5,133,5,135,5,133,5,145,5,156,5,144,5,108,5,63,5,30,5,16,5,251,4,214,4, +183,4,166,4,148,4,130,4,114,4,88,4,49,4,1,4,200,3,155,3,143,3,143,3,124,3,94,3,71,3,56,3, +47,3,34,3,254,2,191,2,136,2,116,2,110,2,83,2,34,2,232,1,168,1,107,1,67,1,37,1,3,1,239,0, +231,0,209,0,180,0,175,0,179,0,159,0,122,0,81,0,41,0,18,0,22,0,19,0,247,255,228,255,244,255,5,0, +236,255,184,255,135,255,79,255,14,255,229,254,219,254,203,254,175,254,156,254,135,254,100,254,69,254,48,254,25,254,2,254, +227,253,186,253,169,253,178,253,161,253,108,253,65,253,40,253,8,253,241,252,229,252,195,252,133,252,76,252,43,252,23,252, +254,251,211,251,151,251,85,251,27,251,242,250,215,250,198,250,189,250,195,250,211,250,223,250,218,250,187,250,146,250,120,250, +110,250,100,250,97,250,109,250,127,250,142,250,155,250,164,250,157,250,132,250,100,250,69,250,50,250,53,250,75,250,88,250, +91,250,114,250,147,250,152,250,150,250,184,250,220,250,225,250,234,250,0,251,254,250,255,250,37,251,73,251,84,251,108,251, +134,251,122,251,94,251,94,251,106,251,116,251,129,251,137,251,132,251,134,251,158,251,186,251,190,251,178,251,180,251,215,251, +19,252,83,252,128,252,141,252,141,252,158,252,185,252,208,252,234,252,10,253,36,253,62,253,108,253,168,253,221,253,250,253, +253,253,0,254,31,254,94,254,168,254,233,254,26,255,86,255,176,255,17,0,81,0,111,0,134,0,171,0,228,0,47,1, +142,1,254,1,104,2,180,2,227,2,11,3,60,3,112,3,143,3,148,3,169,3,244,3,92,4,191,4,34,5,135,5, +230,5,71,6,149,6,159,6,112,6,85,6,120,6,204,6,58,7,178,7,42,8,142,8,198,8,198,8,158,8,109,8, +90,8,111,8,143,8,180,8,4,9,108,9,168,9,189,9,217,9,240,9,239,9,235,9,227,9,195,9,182,9,225,9, +32,10,77,10,122,10,170,10,193,10,180,10,136,10,65,10,246,9,203,9,205,9,235,9,30,10,86,10,101,10,50,10, +218,9,138,9,78,9,45,9,35,9,31,9,29,9,42,9,57,9,51,9,20,9,217,8,133,8,51,8,238,7,164,7, +87,7,30,7,246,6,208,6,167,6,114,6,50,6,244,5,159,5,22,5,127,4,14,4,189,3,127,3,90,3,68,3, +33,3,221,2,126,2,26,2,185,1,76,1,211,0,103,0,15,0,195,255,134,255,61,255,198,254,63,254,220,253,137,253, +31,253,174,252,71,252,215,251,88,251,229,250,137,250,56,250,240,249,179,249,112,249,36,249,236,248,200,248,141,248,44,248, +203,247,117,247,18,247,158,246,25,246,124,245,226,244,115,244,35,244,217,243,160,243,116,243,57,243,239,242,160,242,48,242, +143,241,237,240,121,240,35,240,204,239,125,239,75,239,32,239,238,238,200,238,170,238,120,238,59,238,251,237,163,237,62,237, +250,236,208,236,159,236,126,236,128,236,133,236,109,236,61,236,9,236,242,235,7,236,40,236,55,236,65,236,84,236,111,236, +146,236,184,236,222,236,12,237,61,237,102,237,149,237,212,237,17,238,79,238,150,238,217,238,25,239,111,239,214,239,49,240, +134,240,232,240,79,241,176,241,12,242,108,242,211,242,72,243,200,243,71,244,199,244,73,245,194,245,60,246,217,246,140,247, +19,248,86,248,134,248,199,248,20,249,128,249,24,250,174,250,30,251,124,251,226,251,84,252,203,252,41,253,90,253,131,253, +211,253,69,254,202,254,90,255,214,255,44,0,115,0,194,0,18,1,85,1,141,1,202,1,24,2,117,2,220,2,80,3, +183,3,241,3,24,4,84,4,156,4,218,4,20,5,71,5,122,5,208,5,81,6,210,6,57,7,144,7,219,7,30,8, +105,8,179,8,233,8,34,9,141,9,33,10,163,10,253,10,75,11,146,11,199,11,253,11,58,12,92,12,115,12,196,12, +66,13,158,13,206,13,245,13,15,14,23,14,54,14,114,14,164,14,187,14,203,14,230,14,13,15,65,15,104,15,90,15, +34,15,247,14,239,14,247,14,0,15,244,14,187,14,134,14,153,14,193,14,152,14,53,14,219,13,130,13,33,13,231,12, +209,12,176,12,132,12,102,12,73,12,34,12,253,11,202,11,103,11,219,10,102,10,49,10,34,10,9,10,228,9,192,9, +153,9,123,9,102,9,41,9,189,8,93,8,34,8,237,7,188,7,156,7,121,7,82,7,64,7,47,7,252,6,190,6, +146,6,98,6,42,6,12,6,10,6,250,5,215,5,183,5,146,5,105,5,81,5,58,5,247,4,150,4,87,4,64,4, +50,4,27,4,235,3,150,3,64,3,251,2,169,2,72,2,248,1,180,1,104,1,44,1,16,1,246,0,186,0,87,0, +234,255,158,255,111,255,40,255,186,254,75,254,252,253,205,253,171,253,115,253,22,253,172,252,85,252,28,252,240,251,171,251, +73,251,242,250,185,250,139,250,103,250,74,250,23,250,209,249,160,249,145,249,142,249,138,249,128,249,109,249,97,249,105,249, +114,249,94,249,47,249,255,248,240,248,10,249,57,249,94,249,95,249,75,249,76,249,104,249,125,249,128,249,133,249,144,249, +159,249,184,249,216,249,244,249,15,250,40,250,57,250,80,250,124,250,176,250,207,250,213,250,223,250,1,251,40,251,56,251, +48,251,40,251,46,251,70,251,99,251,118,251,132,251,153,251,183,251,219,251,7,252,39,252,48,252,57,252,74,252,85,252, +110,252,168,252,240,252,55,253,124,253,160,253,159,253,163,253,182,253,190,253,207,253,251,253,40,254,85,254,151,254,216,254, +1,255,44,255,99,255,131,255,138,255,156,255,190,255,228,255,30,0,114,0,192,0,243,0,38,1,112,1,183,1,229,1, +3,2,13,2,255,1,0,2,55,2,129,2,174,2,202,2,243,2,36,3,74,3,99,3,117,3,121,3,115,3,125,3, +161,3,201,3,227,3,244,3,1,4,27,4,81,4,127,4,121,4,94,4,85,4,79,4,75,4,101,4,129,4,124,4, +110,4,112,4,114,4,114,4,113,4,88,4,46,4,27,4,35,4,41,4,39,4,35,4,29,4,27,4,32,4,38,4, +35,4,15,4,241,3,217,3,203,3,186,3,172,3,166,3,154,3,131,3,113,3,105,3,91,3,58,3,20,3,6,3, +16,3,17,3,1,3,248,2,241,2,219,2,203,2,207,2,202,2,176,2,156,2,148,2,139,2,129,2,122,2,114,2, +109,2,107,2,96,2,72,2,43,2,23,2,254,1,204,1,141,1,102,1,92,1,95,1,93,1,77,1,59,1,71,1, +95,1,76,1,14,1,207,0,159,0,121,0,91,0,60,0,20,0,248,255,240,255,242,255,246,255,229,255,170,255,88,255, +13,255,213,254,177,254,153,254,122,254,86,254,66,254,64,254,68,254,63,254,23,254,209,253,155,253,135,253,116,253,93,253, +77,253,55,253,31,253,31,253,43,253,29,253,244,252,197,252,154,252,130,252,131,252,133,252,122,252,114,252,116,252,113,252, +116,252,134,252,137,252,106,252,80,252,94,252,116,252,118,252,120,252,127,252,123,252,124,252,140,252,131,252,86,252,50,252, +32,252,15,252,10,252,24,252,26,252,9,252,254,251,251,251,235,251,211,251,192,251,170,251,143,251,131,251,146,251,154,251, +129,251,104,251,109,251,116,251,107,251,109,251,115,251,95,251,73,251,72,251,52,251,5,251,241,250,254,250,3,251,7,251, +41,251,89,251,108,251,92,251,66,251,65,251,109,251,189,251,7,252,40,252,42,252,58,252,107,252,182,252,15,253,96,253, +150,253,200,253,16,254,81,254,114,254,150,254,200,254,239,254,33,255,140,255,18,0,110,0,157,0,199,0,247,0,39,1, +102,1,193,1,34,2,115,2,194,2,35,3,135,3,213,3,10,4,57,4,117,4,191,4,9,5,77,5,131,5,161,5, +179,5,222,5,38,6,121,6,203,6,3,7,7,7,243,6,251,6,32,7,83,7,147,7,217,7,37,8,126,8,202,8, +227,8,223,8,228,8,233,8,238,8,18,9,85,9,154,9,204,9,228,9,231,9,236,9,249,9,247,9,235,9,232,9, +234,9,239,9,4,10,39,10,69,10,90,10,107,10,116,10,125,10,138,10,137,10,108,10,66,10,40,10,47,10,80,10, +111,10,107,10,74,10,41,10,1,10,187,9,115,9,70,9,31,9,240,8,214,8,200,8,156,8,84,8,17,8,214,7, +158,7,104,7,41,7,227,6,170,6,121,6,56,6,237,5,166,5,90,5,12,5,191,4,105,4,9,4,169,3,69,3, +211,2,99,2,8,2,184,1,97,1,1,1,157,0,60,0,222,255,126,255,24,255,174,254,81,254,11,254,195,253,99,253, +249,252,147,252,44,252,211,251,145,251,72,251,224,250,114,250,30,250,219,249,152,249,66,249,199,248,47,248,170,247,74,247, +241,246,131,246,11,246,154,245,56,245,1,245,14,245,51,245,20,245,156,244,250,243,84,243,187,242,60,242,203,241,81,241, +224,240,170,240,185,240,224,240,245,240,219,240,138,240,27,240,189,239,119,239,32,239,182,238,102,238,60,238,58,238,121,238, +223,238,8,239,225,238,185,238,156,238,106,238,66,238,54,238,13,238,211,237,222,237,42,238,101,238,121,238,118,238,85,238, +44,238,52,238,110,238,159,238,184,238,217,238,14,239,85,239,181,239,36,240,125,240,193,240,13,241,87,241,138,241,198,241, +32,242,109,242,159,242,221,242,42,243,108,243,172,243,244,243,46,244,93,244,175,244,46,245,166,245,251,245,68,246,147,246, +229,246,63,247,167,247,20,248,141,248,36,249,184,249,20,250,81,250,164,250,6,251,99,251,192,251,16,252,66,252,125,252, +221,252,61,253,129,253,185,253,236,253,28,254,91,254,181,254,40,255,170,255,32,0,130,0,244,0,137,1,33,2,145,2, +212,2,8,3,67,3,137,3,218,3,60,4,173,4,49,5,214,5,119,6,210,6,237,6,0,7,19,7,25,7,49,7, +115,7,207,7,75,8,222,8,91,9,195,9,58,10,173,10,234,10,251,10,13,11,50,11,116,11,205,11,34,12,108,12, +191,12,24,13,80,13,80,13,56,13,29,13,249,12,210,12,193,12,204,12,239,12,42,13,97,13,109,13,95,13,92,13, +84,13,46,13,253,12,231,12,253,12,50,13,86,13,90,13,87,13,83,13,53,13,248,12,161,12,60,12,244,11,210,11, +174,11,134,11,127,11,127,11,87,11,20,11,200,10,116,10,54,10,30,10,5,10,228,9,229,9,11,10,43,10,46,10, +19,10,240,9,219,9,195,9,135,9,57,9,3,9,230,8,199,8,148,8,85,8,38,8,19,8,4,8,220,7,155,7, +86,7,32,7,249,6,213,6,183,6,162,6,142,6,115,6,81,6,35,6,254,5,238,5,212,5,146,5,75,5,30,5, +236,4,151,4,38,4,173,3,78,3,25,3,242,2,177,2,86,2,247,1,169,1,101,1,13,1,169,0,97,0,52,0, +3,0,215,255,191,255,176,255,154,255,99,255,254,254,150,254,91,254,43,254,225,253,155,253,100,253,40,253,245,252,208,252, +149,252,75,252,30,252,255,251,192,251,108,251,52,251,33,251,29,251,23,251,20,251,27,251,32,251,23,251,12,251,2,251, +244,250,233,250,228,250,227,250,227,250,224,250,209,250,188,250,162,250,126,250,97,250,89,250,77,250,46,250,24,250,36,250, +67,250,87,250,75,250,50,250,59,250,91,250,95,250,73,250,63,250,70,250,89,250,118,250,131,250,124,250,137,250,177,250, +181,250,125,250,63,250,49,250,69,250,87,250,89,250,83,250,78,250,91,250,130,250,160,250,167,250,194,250,248,250,13,251, +10,251,49,251,112,251,151,251,186,251,243,251,45,252,107,252,184,252,231,252,225,252,221,252,5,253,67,253,115,253,143,253, +168,253,207,253,7,254,71,254,126,254,164,254,207,254,22,255,96,255,147,255,197,255,7,0,66,0,117,0,165,0,206,0, +254,0,70,1,125,1,137,1,154,1,204,1,245,1,1,2,7,2,18,2,28,2,51,2,82,2,95,2,92,2,110,2, +150,2,176,2,185,2,211,2,254,2,22,3,28,3,39,3,56,3,80,3,116,3,132,3,107,3,82,3,84,3,86,3, +83,3,98,3,111,3,98,3,83,3,82,3,78,3,69,3,66,3,64,3,47,3,24,3,17,3,29,3,37,3,38,3, +43,3,57,3,70,3,77,3,72,3,50,3,35,3,33,3,19,3,245,2,219,2,196,2,182,2,197,2,207,2,169,2, +121,2,111,2,109,2,84,2,63,2,57,2,53,2,55,2,60,2,42,2,2,2,230,1,226,1,230,1,224,1,207,1, +190,1,172,1,143,1,110,1,87,1,67,1,38,1,10,1,243,0,215,0,187,0,162,0,128,0,88,0,68,0,72,0, +76,0,70,0,58,0,33,0,249,255,226,255,223,255,208,255,176,255,165,255,168,255,151,255,122,255,102,255,73,255,30,255, +2,255,246,254,221,254,184,254,158,254,146,254,138,254,127,254,119,254,113,254,100,254,72,254,51,254,48,254,45,254,42,254, +53,254,57,254,42,254,48,254,72,254,64,254,31,254,20,254,12,254,233,253,208,253,211,253,212,253,222,253,0,254,12,254, +243,253,231,253,244,253,240,253,225,253,233,253,248,253,254,253,17,254,47,254,57,254,56,254,72,254,81,254,60,254,35,254, +27,254,27,254,29,254,41,254,53,254,54,254,53,254,47,254,25,254,2,254,247,253,235,253,217,253,217,253,245,253,14,254, +26,254,46,254,77,254,82,254,48,254,9,254,251,253,238,253,210,253,197,253,212,253,219,253,207,253,200,253,197,253,185,253, +179,253,178,253,150,253,103,253,82,253,84,253,87,253,98,253,121,253,129,253,125,253,137,253,156,253,158,253,156,253,160,253, +143,253,116,253,123,253,160,253,175,253,168,253,172,253,178,253,168,253,162,253,172,253,172,253,169,253,188,253,212,253,229,253, +10,254,58,254,73,254,76,254,116,254,159,254,176,254,210,254,22,255,75,255,105,255,142,255,166,255,163,255,181,255,241,255, +41,0,67,0,87,0,114,0,138,0,169,0,220,0,16,1,56,1,110,1,178,1,219,1,226,1,235,1,4,2,43,2, +112,2,206,2,28,3,81,3,130,3,169,3,178,3,171,3,182,3,216,3,3,4,48,4,90,4,116,4,125,4,155,4, +228,4,36,5,56,5,79,5,136,5,187,5,208,5,232,5,4,6,21,6,63,6,143,6,219,6,12,7,51,7,74,7, +78,7,99,7,149,7,179,7,176,7,189,7,229,7,0,8,15,8,41,8,52,8,29,8,35,8,98,8,150,8,158,8, +160,8,162,8,144,8,142,8,174,8,195,8,190,8,191,8,196,8,184,8,173,8,170,8,154,8,124,8,101,8,78,8, +38,8,241,7,198,7,169,7,132,7,84,7,47,7,20,7,233,6,181,6,135,6,80,6,13,6,208,5,151,5,95,5, +59,5,24,5,205,4,114,4,41,4,217,3,120,3,35,3,219,2,132,2,42,2,212,1,111,1,1,1,170,0,95,0, +1,0,151,255,54,255,214,254,108,254,4,254,161,253,65,253,251,252,210,252,146,252,28,252,153,251,33,251,166,250,57,250, +227,249,129,249,22,249,205,248,149,248,57,248,196,247,85,247,221,246,84,246,207,245,90,245,242,244,140,244,18,244,145,243, +42,243,220,242,152,242,87,242,251,241,119,241,247,240,140,240,15,240,137,239,50,239,4,239,221,238,199,238,189,238,149,238, +79,238,21,238,236,237,187,237,138,237,121,237,122,237,104,237,77,237,76,237,102,237,143,237,201,237,241,237,225,237,193,237, +201,237,227,237,247,237,40,238,126,238,219,238,55,239,148,239,222,239,17,240,64,240,104,240,123,240,152,240,241,240,122,241, +2,242,133,242,27,243,169,243,251,243,41,244,95,244,149,244,198,244,16,245,109,245,205,245,80,246,2,247,175,247,53,248, +154,248,229,248,38,249,115,249,186,249,233,249,45,250,182,250,126,251,78,252,239,252,90,253,175,253,242,253,27,254,72,254, +140,254,213,254,54,255,204,255,118,0,14,1,173,1,73,2,161,2,190,2,234,2,58,3,146,3,250,3,133,4,27,5, +171,5,75,6,242,6,110,7,184,7,3,8,83,8,139,8,194,8,36,9,153,9,4,10,115,10,233,10,81,11,178,11, +2,12,39,12,48,12,77,12,142,12,237,12,84,13,172,13,249,13,80,14,163,14,227,14,12,15,17,15,251,14,0,15, +44,15,77,15,93,15,124,15,158,15,166,15,163,15,160,15,142,15,104,15,53,15,250,14,195,14,158,14,134,14,102,14, +65,14,51,14,68,14,70,14,22,14,204,13,140,13,82,13,12,13,193,12,128,12,76,12,34,12,247,11,199,11,141,11, +69,11,255,10,198,10,122,10,19,10,195,9,154,9,110,9,53,9,7,9,214,8,161,8,129,8,102,8,40,8,219,7, +167,7,134,7,105,7,84,7,68,7,36,7,233,6,162,6,95,6,27,6,210,5,141,5,73,5,251,4,193,4,191,4, +201,4,161,4,87,4,18,4,207,3,145,3,92,3,21,3,185,2,121,2,106,2,104,2,89,2,58,2,8,2,193,1, +118,1,53,1,239,0,147,0,52,0,230,255,164,255,121,255,117,255,117,255,75,255,12,255,229,254,199,254,155,254,99,254, +35,254,231,253,212,253,236,253,1,254,250,253,231,253,208,253,179,253,160,253,162,253,157,253,115,253,64,253,50,253,66,253, +73,253,77,253,86,253,75,253,64,253,94,253,129,253,116,253,86,253,85,253,101,253,142,253,212,253,5,254,2,254,254,253, +21,254,35,254,28,254,20,254,20,254,30,254,52,254,68,254,71,254,62,254,39,254,12,254,5,254,8,254,249,253,220,253, +204,253,200,253,194,253,194,253,205,253,207,253,187,253,159,253,140,253,124,253,104,253,76,253,30,253,237,252,224,252,231,252, +200,252,134,252,76,252,28,252,233,251,194,251,167,251,127,251,77,251,42,251,20,251,250,250,218,250,189,250,162,250,131,250, +109,250,112,250,115,250,85,250,52,250,52,250,56,250,48,250,50,250,45,250,251,249,195,249,182,249,190,249,192,249,192,249, +178,249,152,249,161,249,215,249,10,250,30,250,28,250,16,250,19,250,53,250,94,250,115,250,129,250,148,250,175,250,219,250, +26,251,81,251,101,251,99,251,97,251,102,251,114,251,129,251,122,251,98,251,108,251,164,251,224,251,14,252,57,252,77,252, +73,252,94,252,143,252,168,252,174,252,197,252,220,252,238,252,34,253,107,253,142,253,153,253,178,253,204,253,221,253,248,253, +8,254,245,253,228,253,251,253,41,254,84,254,117,254,139,254,158,254,194,254,255,254,60,255,97,255,119,255,152,255,197,255, +242,255,33,0,88,0,146,0,212,0,24,1,82,1,137,1,201,1,247,1,7,2,39,2,112,2,201,2,25,3,91,3, +145,3,200,3,11,4,82,4,145,4,199,4,250,4,62,5,171,5,34,6,114,6,156,6,197,6,252,6,58,7,119,7, +177,7,226,7,5,8,37,8,86,8,151,8,212,8,255,8,25,9,39,9,57,9,84,9,98,9,91,9,91,9,125,9, +197,9,32,10,92,10,85,10,45,10,11,10,244,9,237,9,248,9,248,9,240,9,255,9,28,10,35,10,31,10,11,10, +203,9,128,9,93,9,80,9,56,9,42,9,40,9,19,9,252,8,249,8,235,8,184,8,125,8,84,8,44,8,2,8, +231,7,209,7,178,7,158,7,148,7,106,7,30,7,219,6,155,6,65,6,242,5,214,5,201,5,170,5,135,5,93,5, +25,5,205,4,139,4,65,4,234,3,148,3,72,3,18,3,245,2,216,2,165,2,98,2,25,2,210,1,135,1,36,1, +179,0,89,0,20,0,209,255,158,255,123,255,75,255,11,255,200,254,107,254,247,253,154,253,83,253,248,252,155,252,97,252, +57,252,254,251,185,251,115,251,33,251,186,250,84,250,243,249,131,249,4,249,148,248,66,248,250,247,178,247,106,247,18,247, +165,246,57,246,204,245,82,245,214,244,105,244,7,244,174,243,103,243,40,243,219,242,119,242,6,242,139,241,5,241,128,240, +17,240,177,239,82,239,28,239,44,239,71,239,42,239,218,238,107,238,237,237,136,237,68,237,254,236,205,236,222,236,10,237, +31,237,48,237,52,237,253,236,168,236,112,236,60,236,234,235,160,235,130,235,138,235,200,235,68,236,193,236,5,237,29,237, +39,237,29,237,10,237,14,237,29,237,41,237,119,237,47,238,243,238,113,239,215,239,67,240,124,240,130,240,141,240,156,240, +170,240,244,240,136,241,23,242,117,242,196,242,17,243,79,243,144,243,229,243,57,244,120,244,187,244,29,245,149,245,35,246, +201,246,97,247,194,247,18,248,122,248,223,248,39,249,108,249,188,249,28,250,168,250,82,251,208,251,12,252,53,252,108,252, +182,252,7,253,71,253,128,253,223,253,119,254,48,255,248,255,186,0,83,1,177,1,230,1,33,2,153,2,80,3,0,4, +126,4,235,4,128,5,68,6,18,7,173,7,9,8,85,8,175,8,7,9,83,9,164,9,254,9,101,10,243,10,176,11, +116,12,16,13,131,13,223,13,50,14,146,14,18,15,145,15,233,15,55,16,165,16,32,17,146,17,251,17,64,18,83,18, +105,18,166,18,218,18,228,18,225,18,224,18,225,18,234,18,242,18,251,18,25,19,67,19,87,19,87,19,88,19,94,19, +112,19,137,19,132,19,95,19,70,19,64,19,42,19,1,19,215,18,177,18,143,18,102,18,31,18,202,17,142,17,94,17, +13,17,166,16,87,16,43,16,15,16,241,15,202,15,146,15,83,15,30,15,241,14,188,14,142,14,112,14,78,14,36,14, +252,13,199,13,123,13,41,13,196,12,51,12,169,11,91,11,31,11,190,10,77,10,227,9,122,9,32,9,208,8,96,8, +208,7,83,7,247,6,160,6,64,6,228,5,147,5,69,5,243,4,166,4,82,4,218,3,66,3,169,2,14,2,108,1, +224,0,117,0,5,0,139,255,34,255,195,254,81,254,200,253,59,253,183,252,64,252,213,251,123,251,51,251,240,250,172,250, +104,250,23,250,190,249,122,249,77,249,16,249,185,248,98,248,20,248,200,247,131,247,64,247,242,246,166,246,114,246,74,246, +19,246,206,245,147,245,115,245,100,245,92,245,88,245,80,245,71,245,84,245,111,245,115,245,98,245,92,245,92,245,94,245, +114,245,149,245,171,245,174,245,162,245,144,245,138,245,138,245,123,245,108,245,123,245,159,245,200,245,246,245,14,246,9,246, +27,246,89,246,156,246,204,246,246,246,25,247,63,247,125,247,200,247,255,247,29,248,52,248,82,248,127,248,176,248,211,248, +227,248,238,248,3,249,38,249,82,249,130,249,179,249,232,249,33,250,94,250,148,250,197,250,6,251,92,251,180,251,3,252, +76,252,135,252,185,252,238,252,37,253,96,253,172,253,250,253,50,254,96,254,143,254,182,254,223,254,19,255,62,255,95,255, +150,255,227,255,49,0,132,0,219,0,44,1,126,1,210,1,29,2,101,2,178,2,251,2,62,3,134,3,209,3,25,4, +97,4,157,4,196,4,229,4,5,5,29,5,63,5,115,5,161,5,198,5,238,5,16,6,38,6,71,6,118,6,154,6, +185,6,228,6,16,7,44,7,70,7,97,7,108,7,111,7,137,7,171,7,171,7,147,7,135,7,125,7,107,7,106,7, +109,7,79,7,42,7,28,7,9,7,225,6,200,6,189,6,173,6,172,6,186,6,183,6,176,6,176,6,149,6,103,6, +97,6,116,6,100,6,54,6,18,6,254,5,247,5,248,5,226,5,171,5,128,5,117,5,100,5,58,5,15,5,244,4, +225,4,211,4,201,4,173,4,122,4,85,4,75,4,65,4,48,4,40,4,15,4,223,3,195,3,184,3,142,3,77,3, +31,3,238,2,168,2,121,2,103,2,64,2,249,1,180,1,125,1,81,1,49,1,14,1,209,0,135,0,83,0,50,0, +6,0,203,255,146,255,89,255,29,255,242,254,212,254,155,254,76,254,10,254,207,253,139,253,82,253,35,253,226,252,145,252, +72,252,18,252,242,251,221,251,181,251,121,251,77,251,54,251,31,251,250,250,194,250,134,250,99,250,77,250,40,250,10,250, +7,250,252,249,222,249,204,249,190,249,149,249,95,249,50,249,6,249,225,248,218,248,230,248,223,248,196,248,178,248,179,248, +183,248,178,248,164,248,142,248,126,248,127,248,131,248,121,248,107,248,96,248,89,248,98,248,119,248,114,248,85,248,74,248, +79,248,69,248,59,248,66,248,78,248,94,248,118,248,129,248,134,248,162,248,195,248,209,248,228,248,12,249,51,249,82,249, +113,249,135,249,155,249,194,249,243,249,17,250,31,250,53,250,103,250,171,250,224,250,250,250,19,251,57,251,101,251,152,251, +211,251,13,252,71,252,136,252,200,252,254,252,50,253,107,253,168,253,228,253,34,254,96,254,152,254,199,254,250,254,55,255, +110,255,155,255,201,255,244,255,21,0,64,0,131,0,199,0,252,0,43,1,98,1,166,1,234,1,22,2,52,2,93,2, +136,2,175,2,222,2,19,3,74,3,147,3,229,3,23,4,41,4,62,4,88,4,108,4,135,4,167,4,202,4,246,4, +38,5,77,5,122,5,175,5,210,5,229,5,252,5,19,6,40,6,72,6,114,6,149,6,180,6,216,6,255,6,38,7, +62,7,64,7,66,7,91,7,124,7,135,7,125,7,127,7,159,7,190,7,195,7,188,7,187,7,183,7,170,7,160,7, +151,7,146,7,162,7,187,7,194,7,180,7,164,7,155,7,144,7,123,7,96,7,75,7,55,7,24,7,253,6,241,6, +227,6,201,6,176,6,148,6,105,6,66,6,55,6,58,6,53,6,27,6,244,5,208,5,184,5,164,5,151,5,136,5, +109,5,85,5,67,5,32,5,254,4,253,4,251,4,208,4,172,4,171,4,145,4,79,4,30,4,11,4,0,4,5,4, +20,4,8,4,229,3,200,3,167,3,119,3,78,3,50,3,17,3,242,2,236,2,237,2,214,2,175,2,140,2,89,2, +13,2,206,1,180,1,160,1,126,1,89,1,47,1,250,0,201,0,159,0,109,0,52,0,244,255,172,255,106,255,57,255, +12,255,220,254,179,254,136,254,79,254,9,254,186,253,102,253,8,253,158,252,72,252,48,252,50,252,13,252,199,251,125,251, +44,251,220,250,157,250,77,250,227,249,155,249,131,249,103,249,67,249,47,249,8,249,181,248,99,248,37,248,212,247,102,247, +6,247,195,246,147,246,115,246,89,246,38,246,226,245,184,245,161,245,114,245,42,245,229,244,153,244,73,244,22,244,255,243, +227,243,201,243,184,243,157,243,126,243,108,243,79,243,25,243,232,242,196,242,163,242,144,242,136,242,115,242,89,242,73,242, +58,242,50,242,71,242,99,242,100,242,91,242,94,242,100,242,102,242,109,242,123,242,146,242,178,242,220,242,5,243,32,243, +43,243,51,243,62,243,77,243,109,243,160,243,200,243,220,243,247,243,37,244,82,244,115,244,147,244,189,244,245,244,50,245, +106,245,156,245,197,245,232,245,32,246,120,246,203,246,0,247,50,247,117,247,188,247,249,247,51,248,113,248,179,248,249,248, +65,249,135,249,195,249,244,249,37,250,101,250,197,250,60,251,154,251,208,251,26,252,152,252,12,253,87,253,159,253,234,253, +43,254,132,254,254,254,112,255,209,255,56,0,150,0,229,0,69,1,178,1,14,2,99,2,189,2,14,3,88,3,183,3, +37,4,143,4,238,4,70,5,171,5,39,6,164,6,16,7,112,7,206,7,41,8,139,8,246,8,91,9,177,9,2,10, +92,10,193,10,44,11,146,11,225,11,30,12,90,12,155,12,223,12,43,13,125,13,193,13,249,13,71,14,169,14,239,14, +22,15,58,15,94,15,128,15,184,15,248,15,36,16,76,16,131,16,175,16,198,16,218,16,237,16,243,16,242,16,240,16, +240,16,253,16,14,17,28,17,49,17,68,17,62,17,43,17,22,17,240,16,192,16,162,16,142,16,123,16,117,16,125,16, +119,16,94,16,50,16,241,15,167,15,103,15,37,15,223,14,175,14,154,14,129,14,81,14,11,14,184,13,99,13,23,13, +207,12,127,12,35,12,207,11,145,11,91,11,22,11,194,10,106,10,23,10,199,9,110,9,8,9,161,8,57,8,211,7, +133,7,75,7,254,6,153,6,60,6,224,5,112,5,1,5,153,4,31,4,158,3,63,3,247,2,170,2,87,2,244,1, +116,1,231,0,102,0,236,255,115,255,3,255,164,254,80,254,1,254,176,253,81,253,227,252,111,252,254,251,140,251,20,251, +161,250,56,250,215,249,127,249,54,249,238,248,156,248,69,248,237,247,145,247,43,247,182,246,71,246,248,245,185,245,110,245, +43,245,251,244,181,244,90,244,28,244,242,243,185,243,133,243,99,243,46,243,234,242,197,242,185,242,167,242,155,242,151,242, +127,242,93,242,92,242,120,242,125,242,97,242,74,242,73,242,79,242,93,242,118,242,136,242,153,242,197,242,6,243,56,243, +94,243,129,243,148,243,165,243,220,243,38,244,99,244,163,244,4,245,120,245,236,245,89,246,161,246,183,246,183,246,206,246, +15,247,116,247,243,247,129,248,12,249,130,249,223,249,46,250,107,250,150,250,191,250,254,250,87,251,199,251,74,252,217,252, +102,253,224,253,84,254,210,254,66,255,129,255,166,255,220,255,35,0,129,0,5,1,155,1,33,2,152,2,8,3,91,3, +146,3,198,3,251,3,48,4,120,4,232,4,120,5,254,5,91,6,158,6,224,6,21,7,60,7,112,7,172,7,227,7, +49,8,163,8,11,9,78,9,122,9,149,9,171,9,217,9,7,10,12,10,7,10,47,10,117,10,183,10,0,11,79,11, +130,11,150,11,159,11,158,11,138,11,120,11,131,11,163,11,201,11,246,11,34,12,49,12,30,12,1,12,229,11,202,11, +172,11,138,11,104,11,82,11,68,11,46,11,20,11,255,10,229,10,193,10,155,10,118,10,70,10,7,10,199,9,150,9, +113,9,70,9,19,9,228,8,168,8,88,8,18,8,224,7,160,7,77,7,2,7,190,6,116,6,40,6,220,5,128,5, +23,5,184,4,122,4,92,4,57,4,246,3,169,3,101,3,21,3,183,2,97,2,13,2,172,1,81,1,4,1,182,0, +112,0,57,0,242,255,146,255,55,255,233,254,149,254,47,254,190,253,85,253,10,253,221,252,179,252,113,252,7,252,134,251, +20,251,194,250,111,250,5,250,152,249,54,249,215,248,128,248,57,248,229,247,96,247,193,246,38,246,131,245,208,244,41,244, +138,243,219,242,73,242,11,242,3,242,242,241,192,241,88,241,178,240,9,240,145,239,51,239,226,238,195,238,218,238,247,238, +6,239,15,239,248,238,167,238,60,238,241,237,198,237,150,237,102,237,85,237,90,237,90,237,120,237,203,237,23,238,40,238, +17,238,235,237,197,237,206,237,18,238,96,238,172,238,36,239,197,239,88,240,197,240,23,241,66,241,65,241,63,241,117,241, +234,241,120,242,247,242,77,243,118,243,151,243,210,243,16,244,46,244,63,244,103,244,180,244,37,245,167,245,18,246,91,246, +156,246,229,246,49,247,128,247,207,247,18,248,71,248,129,248,224,248,112,249,5,250,102,250,144,250,167,250,187,250,215,250, +254,250,23,251,26,251,56,251,162,251,67,252,230,252,103,253,186,253,243,253,52,254,129,254,204,254,38,255,152,255,16,0, +135,0,21,1,191,1,101,2,245,2,100,3,165,3,209,3,34,4,147,4,231,4,23,5,92,5,201,5,70,6,200,6, +62,7,155,7,240,7,73,8,160,8,4,9,129,9,243,9,74,10,168,10,10,11,92,11,186,11,35,12,100,12,140,12, +215,12,52,13,108,13,136,13,146,13,124,13,100,13,107,13,108,13,78,13,60,13,77,13,95,13,98,13,110,13,136,13, +161,13,175,13,179,13,167,13,147,13,141,13,152,13,152,13,125,13,95,13,80,13,64,13,25,13,239,12,220,12,208,12, +167,12,98,12,38,12,4,12,230,11,174,11,95,11,23,11,242,10,246,10,6,11,0,11,227,10,214,10,234,10,1,11, +250,10,215,10,162,10,93,10,36,10,22,10,27,10,21,10,10,10,240,9,173,9,96,9,49,9,245,8,138,8,31,8, +214,7,161,7,139,7,145,7,112,7,31,7,232,6,221,6,195,6,135,6,68,6,3,6,201,5,155,5,103,5,26,5, +194,4,114,4,40,4,221,3,140,3,47,3,203,2,100,2,253,1,158,1,81,1,20,1,210,0,119,0,7,0,159,255, +79,255,11,255,196,254,138,254,115,254,112,254,96,254,64,254,31,254,242,253,164,253,57,253,206,252,116,252,56,252,23,252, +248,251,207,251,186,251,189,251,169,251,107,251,39,251,247,250,207,250,172,250,145,250,114,250,82,250,82,250,127,250,174,250, +187,250,182,250,177,250,162,250,137,250,115,250,85,250,38,250,3,250,255,249,8,250,17,250,23,250,7,250,215,249,168,249, +147,249,140,249,121,249,86,249,54,249,51,249,89,249,145,249,177,249,164,249,135,249,139,249,176,249,199,249,192,249,179,249, +169,249,158,249,163,249,186,249,199,249,191,249,180,249,180,249,193,249,221,249,243,249,245,249,246,249,15,250,66,250,129,250, +183,250,219,250,244,250,12,251,47,251,100,251,155,251,192,251,234,251,53,252,136,252,195,252,246,252,32,253,39,253,29,253, +54,253,110,253,161,253,214,253,21,254,69,254,105,254,155,254,213,254,3,255,54,255,116,255,169,255,215,255,19,0,74,0, +116,0,169,0,228,0,2,1,17,1,56,1,106,1,143,1,179,1,214,1,233,1,255,1,35,2,56,2,63,2,88,2, +124,2,146,2,170,2,212,2,1,3,37,3,70,3,99,3,117,3,131,3,153,3,184,3,215,3,238,3,8,4,51,4, +99,4,132,4,141,4,131,4,114,4,111,4,123,4,135,4,153,4,185,4,216,4,237,4,8,5,47,5,77,5,81,5, +71,5,74,5,103,5,140,5,161,5,162,5,162,5,170,5,188,5,210,5,229,5,238,5,229,5,201,5,179,5,181,5, +197,5,202,5,190,5,165,5,144,5,147,5,161,5,148,5,106,5,79,5,82,5,90,5,92,5,90,5,64,5,13,5, +232,4,221,4,200,4,158,4,123,4,91,4,44,4,2,4,234,3,194,3,133,3,90,3,65,3,19,3,217,2,181,2, +154,2,110,2,65,2,39,2,14,2,232,1,192,1,163,1,129,1,84,1,40,1,251,0,195,0,146,0,123,0,96,0, +41,0,249,255,223,255,187,255,130,255,80,255,41,255,8,255,246,254,233,254,200,254,156,254,112,254,59,254,10,254,238,253, +214,253,186,253,182,253,191,253,177,253,148,253,119,253,70,253,1,253,203,252,162,252,109,252,62,252,46,252,36,252,14,252, +243,251,206,251,157,251,119,251,102,251,81,251,42,251,251,250,205,250,172,250,168,250,177,250,163,250,123,250,81,250,47,250, +18,250,248,249,217,249,182,249,158,249,147,249,131,249,103,249,71,249,38,249,254,248,210,248,174,248,159,248,152,248,135,248, +115,248,109,248,112,248,118,248,123,248,112,248,82,248,67,248,80,248,86,248,77,248,80,248,86,248,77,248,77,248,100,248, +120,248,131,248,147,248,160,248,167,248,186,248,210,248,210,248,205,248,231,248,15,249,44,249,70,249,111,249,159,249,200,249, +237,249,22,250,63,250,96,250,127,250,164,250,205,250,241,250,23,251,71,251,120,251,165,251,209,251,249,251,21,252,49,252, +86,252,124,252,158,252,194,252,230,252,5,253,42,253,94,253,153,253,205,253,251,253,30,254,56,254,91,254,144,254,193,254, +227,254,10,255,60,255,106,255,149,255,199,255,240,255,7,0,27,0,55,0,82,0,112,0,157,0,204,0,238,0,17,1, +60,1,95,1,126,1,165,1,202,1,224,1,5,2,69,2,130,2,175,2,226,2,18,3,47,3,76,3,118,3,149,3, +172,3,214,3,8,4,54,4,108,4,161,4,183,4,190,4,218,4,2,5,36,5,75,5,116,5,144,5,162,5,195,5, +241,5,23,6,41,6,47,6,60,6,79,6,88,6,97,6,123,6,151,6,166,6,187,6,222,6,244,6,237,6,215,6, +189,6,167,6,156,6,151,6,145,6,143,6,148,6,152,6,149,6,137,6,121,6,119,6,139,6,148,6,132,6,110,6, +92,6,69,6,56,6,64,6,68,6,60,6,70,6,96,6,105,6,94,6,81,6,56,6,21,6,255,5,250,5,253,5, +6,6,13,6,16,6,31,6,52,6,49,6,32,6,35,6,44,6,33,6,21,6,21,6,7,6,240,5,232,5,234,5, +240,5,252,5,253,5,223,5,178,5,135,5,94,5,63,5,53,5,46,5,23,5,2,5,244,4,221,4,181,4,128,4, +72,4,32,4,16,4,2,4,227,3,183,3,131,3,75,3,27,3,239,2,187,2,134,2,87,2,28,2,203,1,128,1, +76,1,27,1,230,0,189,0,155,0,96,0,9,0,175,255,91,255,11,255,204,254,169,254,143,254,112,254,77,254,36,254, +225,253,131,253,32,253,196,252,110,252,35,252,229,251,173,251,118,251,66,251,11,251,201,250,121,250,25,250,182,249,96,249, +17,249,180,248,87,248,23,248,237,247,185,247,121,247,46,247,210,246,109,246,16,246,181,245,89,245,15,245,218,244,155,244, +80,244,20,244,230,243,169,243,90,243,25,243,237,242,190,242,133,242,87,242,57,242,34,242,17,242,9,242,251,241,226,241, +215,241,224,241,225,241,212,241,214,241,242,241,22,242,47,242,50,242,44,242,52,242,75,242,95,242,117,242,158,242,203,242, +245,242,40,243,93,243,126,243,149,243,194,243,4,244,76,244,149,244,218,244,27,245,88,245,139,245,183,245,246,245,66,246, +120,246,161,246,224,246,44,247,113,247,180,247,236,247,12,248,53,248,133,248,216,248,19,249,74,249,131,249,182,249,249,249, +93,250,193,250,23,251,112,251,195,251,0,252,58,252,124,252,186,252,254,252,92,253,199,253,46,254,154,254,255,254,67,255, +117,255,190,255,26,0,108,0,180,0,15,1,132,1,254,1,110,2,224,2,87,3,191,3,25,4,120,4,220,4,56,5, +156,5,20,6,135,6,233,6,79,7,191,7,35,8,118,8,188,8,242,8,42,9,120,9,211,9,45,10,141,10,243,10, +76,11,143,11,198,11,247,11,37,12,92,12,153,12,214,12,26,13,109,13,194,13,247,13,3,14,1,14,14,14,37,14, +51,14,65,14,93,14,122,14,138,14,152,14,169,14,174,14,173,14,177,14,178,14,170,14,164,14,163,14,157,14,150,14, +155,14,165,14,171,14,174,14,167,14,138,14,91,14,50,14,21,14,250,13,218,13,185,13,154,13,118,13,66,13,6,13, +206,12,157,12,110,12,68,12,35,12,0,12,204,11,140,11,77,11,9,11,195,10,145,10,120,10,83,10,15,10,204,9, +146,9,76,9,252,8,183,8,109,8,12,8,173,7,100,7,28,7,196,6,98,6,251,5,158,5,88,5,19,5,188,4, +102,4,25,4,190,3,102,3,42,3,233,2,136,2,40,2,224,1,152,1,70,1,242,0,140,0,24,0,192,255,128,255, +38,255,176,254,68,254,237,253,154,253,70,253,240,252,149,252,54,252,213,251,117,251,36,251,236,250,187,250,129,250,65,250, +2,250,198,249,133,249,60,249,247,248,189,248,123,248,47,248,244,247,206,247,161,247,101,247,38,247,231,246,173,246,137,246, +111,246,70,246,22,246,242,245,211,245,181,245,163,245,160,245,174,245,206,245,233,245,241,245,250,245,1,246,233,245,201,245, +219,245,17,246,63,246,107,246,162,246,191,246,190,246,200,246,231,246,3,247,31,247,75,247,119,247,160,247,218,247,40,248, +115,248,178,248,246,248,67,249,134,249,181,249,227,249,26,250,74,250,124,250,214,250,93,251,232,251,90,252,169,252,204,252, +215,252,246,252,36,253,71,253,123,253,225,253,93,254,205,254,64,255,170,255,231,255,253,255,25,0,66,0,119,0,196,0, +32,1,109,1,184,1,31,2,142,2,231,2,52,3,122,3,160,3,179,3,223,3,37,4,97,4,154,4,225,4,36,5, +92,5,161,5,227,5,250,5,0,6,43,6,104,6,151,6,213,6,44,7,106,7,131,7,172,7,239,7,33,8,49,8, +49,8,53,8,78,8,128,8,173,8,191,8,205,8,225,8,234,8,234,8,240,8,242,8,226,8,205,8,189,8,175,8, +165,8,169,8,182,8,180,8,151,8,118,8,108,8,112,8,95,8,53,8,9,8,235,7,207,7,170,7,127,7,88,7, +50,7,1,7,203,6,155,6,106,6,46,6,244,5,195,5,139,5,79,5,32,5,235,4,158,4,88,4,45,4,1,4, +208,3,166,3,105,3,15,3,198,2,156,2,98,2,17,2,204,1,139,1,62,1,250,0,193,0,118,0,33,0,221,255, +152,255,68,255,250,254,187,254,104,254,2,254,174,253,113,253,61,253,12,253,219,252,157,252,73,252,233,251,145,251,63,251, +227,250,134,250,64,250,252,249,156,249,47,249,201,248,86,248,208,247,81,247,211,246,73,246,200,245,85,245,207,244,65,244, +227,243,179,243,129,243,61,243,224,242,99,242,229,241,133,241,44,241,203,240,130,240,95,240,64,240,36,240,31,240,22,240, +231,239,158,239,82,239,3,239,182,238,117,238,64,238,33,238,52,238,130,238,230,238,55,239,94,239,80,239,25,239,242,238, +1,239,55,239,124,239,227,239,109,240,237,240,76,241,154,241,218,241,253,241,18,242,46,242,80,242,128,242,215,242,63,243, +142,243,209,243,34,244,119,244,190,244,244,244,9,245,0,245,9,245,77,245,199,245,113,246,52,247,210,247,42,248,100,248, +155,248,176,248,161,248,168,248,228,248,67,249,194,249,90,250,206,250,242,250,238,250,246,250,9,251,37,251,93,251,150,251, +180,251,233,251,106,252,13,253,152,253,18,254,119,254,171,254,208,254,35,255,150,255,247,255,86,0,205,0,82,1,228,1, +138,2,21,3,86,3,103,3,130,3,190,3,20,4,119,4,220,4,63,5,166,5,26,6,154,6,22,7,119,7,191,7, +14,8,117,8,242,8,131,9,25,10,146,10,239,10,65,11,139,11,203,11,8,12,53,12,69,12,88,12,141,12,214,12, +26,13,80,13,94,13,64,13,31,13,23,13,20,13,10,13,7,13,10,13,28,13,78,13,143,13,180,13,176,13,148,13, +107,13,73,13,67,13,71,13,59,13,35,13,2,13,206,12,147,12,94,12,32,12,211,11,140,11,86,11,46,11,18,11, +252,10,222,10,193,10,170,10,142,10,104,10,82,10,83,10,87,10,75,10,52,10,36,10,42,10,73,10,97,10,69,10, +237,9,139,9,87,9,74,9,60,9,34,9,5,9,215,8,164,8,146,8,139,8,77,8,227,7,143,7,96,7,79,7, +111,7,155,7,135,7,68,7,37,7,39,7,14,7,220,6,159,6,67,6,224,5,170,5,145,5,89,5,253,4,154,4, +56,4,230,3,170,3,103,3,2,3,152,2,69,2,0,2,201,1,173,1,139,1,54,1,203,0,134,0,102,0,70,0, +22,0,217,255,141,255,65,255,14,255,236,254,192,254,130,254,54,254,221,253,130,253,53,253,242,252,182,252,135,252,101,252, +66,252,37,252,25,252,19,252,255,251,220,251,188,251,179,251,195,251,207,251,199,251,195,251,206,251,204,251,178,251,148,251, +125,251,103,251,83,251,73,251,67,251,57,251,42,251,30,251,28,251,24,251,0,251,227,250,220,250,225,250,227,250,236,250, +251,250,253,250,1,251,30,251,66,251,80,251,75,251,51,251,17,251,13,251,51,251,80,251,65,251,30,251,1,251,245,250, +4,251,19,251,250,250,204,250,190,250,216,250,4,251,60,251,107,251,122,251,117,251,133,251,179,251,227,251,240,251,215,251, +192,251,212,251,24,252,106,252,155,252,151,252,127,252,134,252,175,252,219,252,254,252,10,253,248,252,244,252,43,253,124,253, +176,253,202,253,224,253,243,253,26,254,95,254,152,254,172,254,190,254,226,254,10,255,64,255,128,255,155,255,139,255,133,255, +155,255,170,255,168,255,169,255,179,255,196,255,226,255,10,0,50,0,80,0,91,0,92,0,102,0,113,0,107,0,105,0, +129,0,160,0,184,0,216,0,247,0,246,0,229,0,223,0,205,0,163,0,142,0,162,0,183,0,185,0,191,0,198,0, +184,0,158,0,151,0,160,0,162,0,158,0,164,0,174,0,183,0,201,0,234,0,9,1,26,1,32,1,29,1,20,1, +18,1,26,1,26,1,4,1,232,0,224,0,250,0,41,1,72,1,58,1,24,1,13,1,32,1,56,1,74,1,84,1, +80,1,73,1,91,1,130,1,158,1,159,1,142,1,128,1,133,1,153,1,160,1,129,1,77,1,45,1,50,1,70,1, +82,1,74,1,51,1,23,1,8,1,10,1,10,1,246,0,218,0,206,0,220,0,252,0,29,1,44,1,40,1,29,1, +28,1,31,1,31,1,23,1,11,1,0,1,0,1,17,1,39,1,38,1,19,1,8,1,13,1,19,1,30,1,50,1, +57,1,50,1,60,1,91,1,101,1,89,1,90,1,100,1,98,1,100,1,118,1,126,1,114,1,105,1,107,1,111,1, +109,1,96,1,77,1,65,1,60,1,44,1,17,1,243,0,213,0,198,0,211,0,225,0,219,0,207,0,191,0,159,0, +135,0,140,0,141,0,119,0,96,0,77,0,51,0,36,0,32,0,7,0,225,255,204,255,183,255,151,255,134,255,131,255, +109,255,78,255,63,255,48,255,27,255,14,255,250,254,207,254,176,254,186,254,203,254,203,254,195,254,182,254,162,254,152,254, +160,254,160,254,131,254,82,254,44,254,32,254,29,254,17,254,5,254,253,253,242,253,230,253,229,253,235,253,228,253,204,253, +179,253,171,253,181,253,190,253,184,253,169,253,150,253,121,253,106,253,125,253,149,253,143,253,130,253,129,253,122,253,101,253, +82,253,62,253,38,253,36,253,55,253,62,253,60,253,71,253,81,253,69,253,55,253,54,253,51,253,42,253,41,253,45,253, +48,253,53,253,63,253,70,253,77,253,95,253,107,253,97,253,82,253,85,253,99,253,109,253,125,253,148,253,156,253,158,253, +181,253,213,253,227,253,242,253,22,254,52,254,60,254,74,254,98,254,106,254,103,254,113,254,126,254,132,254,150,254,181,254, +196,254,197,254,208,254,235,254,6,255,28,255,43,255,43,255,32,255,35,255,58,255,81,255,92,255,102,255,121,255,136,255, +146,255,164,255,188,255,197,255,195,255,202,255,217,255,227,255,235,255,242,255,235,255,227,255,242,255,26,0,61,0,70,0, +63,0,61,0,75,0,95,0,110,0,119,0,133,0,150,0,163,0,172,0,184,0,196,0,206,0,214,0,222,0,230,0, +240,0,243,0,243,0,254,0,23,1,43,1,59,1,85,1,114,1,124,1,124,1,138,1,159,1,167,1,168,1,180,1, +203,1,228,1,0,2,29,2,51,2,70,2,102,2,137,2,154,2,159,2,172,2,179,2,172,2,176,2,214,2,5,3, +40,3,72,3,108,3,136,3,147,3,143,3,131,3,140,3,177,3,211,3,229,3,2,4,38,4,49,4,54,4,81,4, +96,4,77,4,65,4,74,4,64,4,52,4,80,4,117,4,120,4,119,4,137,4,136,4,102,4,68,4,44,4,15,4, +248,3,245,3,252,3,7,4,26,4,31,4,0,4,211,3,181,3,148,3,85,3,15,3,230,2,208,2,189,2,187,2, +191,2,162,2,113,2,79,2,44,2,237,1,169,1,119,1,71,1,30,1,26,1,35,1,22,1,247,0,209,0,152,0, +82,0,22,0,219,255,157,255,109,255,82,255,56,255,26,255,249,254,197,254,128,254,64,254,8,254,193,253,111,253,46,253, +2,253,212,252,163,252,124,252,77,252,251,251,149,251,48,251,192,250,85,250,28,250,12,250,234,249,171,249,99,249,8,249, +147,248,28,248,172,247,68,247,0,247,230,246,208,246,185,246,173,246,142,246,69,246,246,245,176,245,83,245,238,244,171,244, +128,244,91,244,83,244,106,244,121,244,114,244,100,244,76,244,29,244,231,243,187,243,168,243,182,243,239,243,73,244,165,244, +227,244,7,245,33,245,38,245,21,245,24,245,67,245,130,245,211,245,54,246,136,246,189,246,245,246,44,247,62,247,71,247, +116,247,169,247,205,247,7,248,98,248,185,248,9,249,95,249,167,249,215,249,8,250,53,250,75,250,99,250,162,250,1,251, +114,251,237,251,76,252,119,252,146,252,187,252,222,252,237,252,9,253,70,253,146,253,229,253,62,254,140,254,200,254,4,255, +71,255,134,255,188,255,237,255,32,0,95,0,176,0,10,1,106,1,213,1,58,2,130,2,192,2,17,3,96,3,150,3, +204,3,29,4,125,4,223,4,66,5,152,5,217,5,23,6,95,6,159,6,225,6,66,7,188,7,37,8,114,8,186,8, +1,9,48,9,73,9,111,9,170,9,233,9,39,10,103,10,160,10,203,10,246,10,33,11,59,11,72,11,84,11,87,11, +74,11,65,11,73,11,80,11,85,11,106,11,141,11,164,11,163,11,150,11,134,11,111,11,83,11,58,11,40,11,29,11, +23,11,9,11,226,10,183,10,166,10,156,10,116,10,59,10,25,10,9,10,244,9,219,9,190,9,152,9,112,9,76,9, +36,9,1,9,244,8,230,8,190,8,154,8,149,8,141,8,106,8,70,8,42,8,5,8,219,7,187,7,146,7,89,7, +47,7,25,7,248,6,205,6,173,6,129,6,61,6,7,6,235,5,190,5,123,5,73,5,32,5,232,4,190,4,178,4, +154,4,102,4,48,4,245,3,168,3,98,3,42,3,233,2,169,2,133,2,102,2,45,2,232,1,168,1,102,1,40,1, +244,0,185,0,120,0,72,0,40,0,255,255,192,255,117,255,49,255,7,255,241,254,217,254,183,254,138,254,90,254,46,254, +9,254,226,253,183,253,140,253,95,253,58,253,42,253,20,253,233,252,199,252,187,252,164,252,129,252,117,252,117,252,98,252, +74,252,59,252,43,252,36,252,47,252,41,252,12,252,2,252,5,252,240,251,211,251,204,251,209,251,211,251,216,251,217,251, +219,251,235,251,237,251,204,251,173,251,179,251,192,251,200,251,225,251,252,251,254,251,253,251,24,252,58,252,72,252,65,252, +51,252,45,252,54,252,71,252,89,252,106,252,113,252,110,252,116,252,134,252,145,252,144,252,147,252,152,252,150,252,159,252, +193,252,226,252,233,252,224,252,228,252,248,252,10,253,21,253,32,253,41,253,42,253,41,253,51,253,72,253,83,253,75,253, +63,253,64,253,76,253,87,253,89,253,78,253,63,253,66,253,92,253,110,253,114,253,128,253,151,253,161,253,165,253,182,253, +194,253,196,253,209,253,240,253,17,254,50,254,75,254,74,254,61,254,68,254,79,254,79,254,93,254,125,254,147,254,162,254, +197,254,233,254,245,254,253,254,12,255,19,255,30,255,71,255,123,255,149,255,154,255,171,255,209,255,250,255,25,0,50,0, +77,0,105,0,120,0,117,0,105,0,108,0,133,0,162,0,175,0,184,0,202,0,219,0,225,0,228,0,233,0,242,0, +1,1,22,1,38,1,46,1,51,1,58,1,65,1,68,1,71,1,86,1,111,1,123,1,120,1,119,1,116,1,98,1, +75,1,61,1,49,1,51,1,81,1,115,1,126,1,133,1,152,1,157,1,139,1,128,1,131,1,129,1,123,1,126,1, +141,1,172,1,219,1,5,2,21,2,21,2,18,2,12,2,7,2,1,2,232,1,199,1,192,1,220,1,254,1,25,2, +55,2,77,2,81,2,80,2,73,2,37,2,250,1,239,1,246,1,246,1,4,2,47,2,78,2,75,2,58,2,40,2, +16,2,249,1,231,1,201,1,170,1,163,1,170,1,170,1,162,1,154,1,145,1,138,1,130,1,114,1,91,1,68,1, +51,1,46,1,49,1,46,1,35,1,25,1,13,1,255,0,247,0,234,0,205,0,184,0,178,0,165,0,148,0,153,0, +156,0,122,0,81,0,69,0,70,0,65,0,63,0,62,0,58,0,57,0,62,0,65,0,65,0,55,0,29,0,255,255, +237,255,227,255,220,255,218,255,210,255,195,255,194,255,199,255,183,255,144,255,106,255,77,255,62,255,57,255,49,255,38,255, +41,255,53,255,50,255,33,255,15,255,248,254,223,254,213,254,208,254,197,254,185,254,183,254,179,254,166,254,148,254,137,254, +133,254,123,254,98,254,69,254,42,254,16,254,0,254,4,254,7,254,246,253,234,253,241,253,246,253,235,253,230,253,235,253, +238,253,235,253,239,253,245,253,234,253,212,253,200,253,198,253,197,253,199,253,213,253,224,253,221,253,223,253,234,253,233,253, +216,253,194,253,167,253,148,253,163,253,201,253,231,253,252,253,13,254,15,254,12,254,22,254,23,254,252,253,230,253,239,253, +255,253,8,254,21,254,29,254,8,254,235,253,221,253,214,253,205,253,197,253,189,253,183,253,189,253,205,253,204,253,189,253, +190,253,214,253,225,253,217,253,225,253,253,253,13,254,14,254,20,254,30,254,35,254,50,254,75,254,85,254,86,254,94,254, +100,254,108,254,136,254,171,254,187,254,198,254,217,254,226,254,227,254,249,254,39,255,85,255,124,255,164,255,205,255,0,0, +53,0,80,0,76,0,72,0,99,0,155,0,219,0,24,1,86,1,139,1,163,1,166,1,176,1,187,1,181,1,188,1, +232,1,30,2,86,2,167,2,247,2,27,3,36,3,59,3,80,3,86,3,101,3,125,3,143,3,173,3,234,3,52,4, +120,4,183,4,222,4,227,4,220,4,210,4,179,4,143,4,144,4,181,4,229,4,33,5,101,5,137,5,127,5,105,5, +93,5,76,5,56,5,54,5,70,5,93,5,131,5,174,5,193,5,201,5,217,5,220,5,181,5,127,5,97,5,89,5, +87,5,94,5,118,5,151,5,177,5,179,5,146,5,85,5,15,5,223,4,200,4,177,4,156,4,162,4,190,4,203,4, +196,4,180,4,134,4,61,4,252,3,204,3,154,3,117,3,102,3,75,3,31,3,10,3,2,3,214,2,135,2,58,2, +238,1,156,1,83,1,20,1,215,0,158,0,110,0,65,0,17,0,218,255,144,255,52,255,222,254,148,254,71,254,234,253, +140,253,60,253,234,252,133,252,32,252,202,251,111,251,2,251,151,250,57,250,213,249,94,249,218,248,81,248,203,247,64,247, +165,246,28,246,207,245,176,245,149,245,121,245,70,245,209,244,46,244,150,243,16,243,150,242,79,242,60,242,48,242,45,242, +63,242,44,242,204,241,86,241,243,240,138,240,28,240,202,239,139,239,86,239,85,239,147,239,211,239,248,239,29,240,54,240, +22,240,206,239,140,239,89,239,72,239,146,239,44,240,201,240,75,241,193,241,0,242,223,241,154,241,121,241,107,241,115,241, +203,241,98,242,231,242,86,243,206,243,36,244,49,244,44,244,67,244,97,244,132,244,205,244,62,245,195,245,93,246,250,246, +119,247,218,247,52,248,98,248,86,248,79,248,129,248,213,248,62,249,216,249,133,250,4,251,94,251,173,251,207,251,191,251, +196,251,244,251,47,252,141,252,44,253,207,253,74,254,201,254,77,255,166,255,231,255,54,0,116,0,156,0,241,0,118,1, +235,1,88,2,228,2,102,3,193,3,24,4,113,4,171,4,219,4,52,5,166,5,14,6,116,6,225,6,68,7,159,7, +8,8,113,8,184,8,249,8,108,9,247,9,97,10,180,10,21,11,98,11,132,11,161,11,213,11,10,12,67,12,132,12, +174,12,203,12,16,13,91,13,100,13,80,13,99,13,126,13,125,13,139,13,170,13,161,13,131,13,144,13,178,13,184,13, +185,13,199,13,185,13,136,13,95,13,75,13,52,13,26,13,252,12,204,12,149,12,110,12,75,12,16,12,203,11,146,11, +99,11,69,11,62,11,45,11,253,10,199,10,146,10,65,10,231,9,176,9,144,9,104,9,73,9,67,9,51,9,14,9, +233,8,186,8,110,8,27,8,210,7,136,7,64,7,15,7,241,6,213,6,180,6,134,6,76,6,19,6,215,5,136,5, +52,5,245,4,192,4,130,4,70,4,22,4,226,3,162,3,103,3,54,3,244,2,156,2,70,2,250,1,166,1,80,1, +19,1,233,0,178,0,111,0,37,0,199,255,93,255,6,255,190,254,120,254,71,254,47,254,15,254,220,253,167,253,101,253, +7,253,167,252,94,252,40,252,3,252,241,251,229,251,202,251,159,251,115,251,76,251,31,251,233,250,191,250,162,250,127,250, +91,250,82,250,87,250,77,250,72,250,89,250,101,250,101,250,110,250,101,250,62,250,45,250,74,250,94,250,89,250,104,250, +133,250,140,250,139,250,149,250,148,250,138,250,150,250,175,250,194,250,219,250,254,250,13,251,9,251,23,251,48,251,50,251, +38,251,46,251,79,251,115,251,152,251,189,251,216,251,227,251,233,251,238,251,242,251,252,251,18,252,34,252,40,252,54,252, +89,252,132,252,165,252,184,252,198,252,220,252,247,252,15,253,38,253,58,253,75,253,98,253,142,253,198,253,250,253,41,254, +84,254,119,254,153,254,187,254,212,254,230,254,254,254,33,255,76,255,130,255,191,255,247,255,43,0,87,0,119,0,149,0, +179,0,201,0,224,0,16,1,75,1,126,1,178,1,230,1,6,2,32,2,71,2,107,2,126,2,144,2,165,2,177,2, +193,2,221,2,246,2,8,3,25,3,35,3,35,3,42,3,49,3,43,3,24,3,8,3,4,3,18,3,35,3,25,3, +3,3,251,2,237,2,193,2,144,2,115,2,92,2,76,2,79,2,83,2,61,2,27,2,253,1,217,1,167,1,122,1, +91,1,64,1,34,1,11,1,254,0,238,0,215,0,192,0,168,0,137,0,106,0,79,0,42,0,255,255,234,255,230,255, +222,255,215,255,216,255,209,255,189,255,177,255,169,255,145,255,115,255,90,255,57,255,28,255,39,255,71,255,79,255,65,255, +65,255,68,255,49,255,29,255,19,255,250,254,207,254,190,254,208,254,212,254,192,254,185,254,191,254,184,254,176,254,184,254, +179,254,150,254,127,254,116,254,99,254,86,254,93,254,97,254,84,254,70,254,64,254,66,254,81,254,93,254,75,254,43,254, +31,254,36,254,33,254,29,254,33,254,38,254,39,254,47,254,62,254,68,254,66,254,71,254,76,254,79,254,90,254,113,254, +127,254,137,254,165,254,199,254,211,254,221,254,254,254,32,255,49,255,68,255,88,255,88,255,89,255,110,255,137,255,166,255, +212,255,254,255,19,0,42,0,72,0,88,0,100,0,127,0,151,0,169,0,209,0,0,1,22,1,38,1,64,1,86,1, +111,1,152,1,179,1,183,1,201,1,229,1,226,1,211,1,224,1,244,1,245,1,251,1,17,2,35,2,44,2,52,2, +57,2,54,2,53,2,51,2,43,2,38,2,43,2,46,2,45,2,52,2,68,2,78,2,76,2,68,2,58,2,36,2, +8,2,245,1,232,1,215,1,198,1,189,1,183,1,177,1,179,1,183,1,166,1,132,1,108,1,98,1,85,1,61,1, +39,1,30,1,31,1,39,1,45,1,30,1,253,0,233,0,227,0,206,0,174,0,158,0,147,0,122,0,100,0,91,0, +73,0,45,0,27,0,14,0,251,255,237,255,220,255,181,255,142,255,129,255,126,255,110,255,91,255,77,255,59,255,36,255, +12,255,235,254,195,254,155,254,120,254,91,254,66,254,45,254,27,254,6,254,227,253,182,253,144,253,109,253,65,253,12,253, +217,252,177,252,155,252,148,252,138,252,123,252,112,252,94,252,65,252,37,252,11,252,231,251,197,251,180,251,163,251,141,251, +130,251,133,251,134,251,126,251,110,251,95,251,88,251,86,251,76,251,66,251,68,251,75,251,78,251,77,251,73,251,71,251, +84,251,103,251,119,251,151,251,199,251,225,251,228,251,246,251,20,252,36,252,45,252,62,252,75,252,94,252,145,252,209,252, +255,252,39,253,92,253,141,253,177,253,225,253,30,254,79,254,114,254,154,254,205,254,0,255,59,255,141,255,224,255,24,0, +70,0,133,0,202,0,254,0,41,1,90,1,145,1,204,1,2,2,41,2,76,2,128,2,192,2,11,3,112,3,232,3, +71,4,132,4,178,4,217,4,243,4,15,5,60,5,108,5,158,5,233,5,76,6,156,6,204,6,253,6,53,7,84,7, +91,7,110,7,137,7,154,7,179,7,223,7,11,8,51,8,103,8,149,8,173,8,190,8,210,8,221,8,230,8,243,8, +248,8,253,8,20,9,36,9,24,9,9,9,255,8,220,8,175,8,169,8,189,8,192,8,185,8,186,8,174,8,133,8, +78,8,25,8,229,7,183,7,149,7,129,7,116,7,103,7,95,7,83,7,43,7,237,6,174,6,99,6,1,6,169,5, +109,5,48,5,240,4,198,4,157,4,92,4,34,4,243,3,163,3,53,3,217,2,133,2,30,2,191,1,119,1,37,1, +201,0,138,0,88,0,8,0,155,255,40,255,178,254,63,254,213,253,100,253,226,252,98,252,237,251,120,251,4,251,150,250, +30,250,146,249,12,249,150,248,24,248,137,247,251,246,111,246,235,245,142,245,82,245,250,244,117,244,239,243,111,243,230,242, +110,242,22,242,194,241,111,241,55,241,10,241,207,240,143,240,69,240,219,239,107,239,14,239,165,238,50,238,233,237,200,237, +156,237,118,237,133,237,171,237,173,237,153,237,129,237,79,237,9,237,227,236,238,236,14,237,73,237,180,237,43,238,128,238, +196,238,16,239,66,239,75,239,91,239,138,239,201,239,28,240,128,240,202,240,250,240,76,241,197,241,51,242,134,242,206,242, +4,243,57,243,140,243,242,243,79,244,183,244,53,245,171,245,13,246,110,246,206,246,27,247,92,247,172,247,19,248,135,248, +248,248,96,249,183,249,247,249,48,250,131,250,233,250,63,251,131,251,210,251,46,252,143,252,0,253,122,253,235,253,82,254, +173,254,249,254,86,255,214,255,81,0,173,0,15,1,143,1,21,2,155,2,29,3,126,3,191,3,13,4,113,4,207,4, +45,5,149,5,245,5,69,6,157,6,9,7,127,7,241,7,90,8,189,8,40,9,160,9,19,10,109,10,179,10,247,10, +71,11,163,11,251,11,64,12,122,12,187,12,3,13,67,13,119,13,164,13,198,13,221,13,241,13,248,13,227,13,205,13, +215,13,245,13,7,14,21,14,43,14,67,14,86,14,95,14,78,14,39,14,2,14,231,13,213,13,216,13,227,13,207,13, +151,13,90,13,40,13,255,12,215,12,155,12,72,12,1,12,217,11,190,11,159,11,117,11,53,11,233,10,179,10,154,10, +129,10,82,10,19,10,220,9,188,9,169,9,151,9,129,9,92,9,27,9,211,8,155,8,98,8,25,8,209,7,149,7, +94,7,53,7,18,7,211,6,124,6,42,6,216,5,130,5,69,5,30,5,235,4,177,4,131,4,76,4,4,4,200,3, +144,3,66,3,239,2,168,2,89,2,2,2,184,1,111,1,25,1,203,0,136,0,50,0,198,255,102,255,18,255,181,254, +85,254,8,254,203,253,135,253,50,253,223,252,153,252,84,252,8,252,191,251,127,251,70,251,23,251,235,250,175,250,97,250, +27,250,230,249,177,249,112,249,43,249,244,248,197,248,148,248,105,248,73,248,32,248,237,247,212,247,213,247,199,247,167,247, +145,247,125,247,98,247,96,247,122,247,126,247,101,247,85,247,83,247,77,247,81,247,101,247,104,247,87,247,83,247,100,247, +116,247,119,247,111,247,90,247,79,247,99,247,136,247,156,247,159,247,172,247,199,247,235,247,30,248,74,248,85,248,79,248, +103,248,148,248,182,248,205,248,232,248,255,248,21,249,58,249,103,249,136,249,161,249,186,249,213,249,249,249,36,250,78,250, +120,250,164,250,199,250,241,250,53,251,124,251,175,251,227,251,27,252,70,252,117,252,191,252,7,253,61,253,122,253,189,253, +239,253,33,254,100,254,156,254,194,254,244,254,50,255,104,255,159,255,220,255,19,0,72,0,128,0,180,0,230,0,37,1, +107,1,171,1,233,1,33,2,80,2,127,2,172,2,210,2,5,3,70,3,111,3,126,3,160,3,215,3,255,3,29,4, +68,4,99,4,118,4,149,4,197,4,232,4,244,4,253,4,15,5,46,5,86,5,121,5,138,5,141,5,142,5,152,5, +169,5,193,5,219,5,234,5,236,5,238,5,244,5,241,5,226,5,208,5,187,5,172,5,175,5,185,5,180,5,169,5, +164,5,152,5,131,5,118,5,113,5,99,5,80,5,63,5,40,5,22,5,16,5,1,5,224,4,197,4,187,4,172,4, +138,4,97,4,64,4,41,4,21,4,253,3,228,3,206,3,179,3,139,3,97,3,64,3,37,3,9,3,232,2,200,2, +173,2,145,2,110,2,77,2,45,2,7,2,226,1,199,1,166,1,114,1,58,1,5,1,210,0,171,0,137,0,84,0, +16,0,220,255,182,255,142,255,104,255,67,255,11,255,200,254,150,254,118,254,80,254,25,254,220,253,173,253,147,253,125,253, +90,253,37,253,231,252,169,252,121,252,87,252,49,252,7,252,224,251,188,251,156,251,131,251,98,251,45,251,251,250,225,250, +207,250,184,250,162,250,143,250,124,250,111,250,102,250,95,250,95,250,100,250,99,250,93,250,87,250,83,250,81,250,80,250, +75,250,71,250,82,250,103,250,117,250,120,250,115,250,120,250,147,250,182,250,196,250,204,250,221,250,231,250,230,250,251,250, +39,251,71,251,97,251,140,251,184,251,209,251,237,251,18,252,40,252,52,252,75,252,110,252,146,252,186,252,227,252,7,253, +40,253,76,253,111,253,136,253,157,253,183,253,219,253,3,254,43,254,91,254,146,254,193,254,225,254,2,255,42,255,81,255, +114,255,153,255,205,255,2,0,41,0,81,0,128,0,160,0,178,0,208,0,254,0,39,1,80,1,135,1,192,1,245,1, +42,2,80,2,100,2,138,2,190,2,217,2,237,2,37,3,101,3,137,3,183,3,1,4,56,4,83,4,116,4,150,4, +165,4,175,4,194,4,216,4,245,4,31,5,76,5,116,5,154,5,177,5,182,5,188,5,201,5,216,5,234,5,254,5, +4,6,5,6,14,6,25,6,33,6,45,6,47,6,25,6,3,6,4,6,9,6,253,5,226,5,197,5,174,5,160,5, +146,5,120,5,92,5,77,5,58,5,20,5,238,4,216,4,187,4,135,4,88,4,64,4,36,4,250,3,220,3,201,3, +158,3,96,3,57,3,32,3,237,2,166,2,104,2,58,2,20,2,250,1,229,1,193,1,143,1,98,1,61,1,20,1, +236,0,210,0,192,0,167,0,134,0,98,0,60,0,23,0,0,0,230,255,189,255,160,255,163,255,158,255,119,255,83,255, +70,255,62,255,49,255,42,255,25,255,241,254,199,254,177,254,174,254,190,254,215,254,227,254,224,254,233,254,254,254,4,255, +239,254,206,254,177,254,160,254,158,254,174,254,200,254,222,254,235,254,245,254,244,254,233,254,232,254,237,254,229,254,219,254, +221,254,216,254,202,254,216,254,254,254,16,255,19,255,42,255,65,255,65,255,66,255,70,255,51,255,23,255,34,255,80,255, +120,255,143,255,156,255,162,255,164,255,163,255,166,255,175,255,179,255,170,255,166,255,187,255,221,255,248,255,9,0,10,0, +1,0,255,255,10,0,26,0,37,0,42,0,42,0,48,0,65,0,77,0,84,0,90,0,77,0,39,0,12,0,13,0, +14,0,6,0,0,0,242,255,217,255,207,255,208,255,179,255,122,255,72,255,41,255,22,255,12,255,252,254,220,254,184,254, +139,254,72,254,3,254,213,253,167,253,101,253,43,253,2,253,205,252,138,252,80,252,14,252,174,251,65,251,218,250,105,250, +248,249,177,249,151,249,141,249,127,249,98,249,29,249,175,248,59,248,205,247,90,247,240,246,177,246,160,246,171,246,195,246, +210,246,182,246,114,246,41,246,232,245,147,245,40,245,203,244,146,244,115,244,121,244,186,244,17,245,63,245,65,245,51,245, +19,245,221,244,169,244,136,244,125,244,163,244,1,245,100,245,179,245,254,245,47,246,33,246,246,245,228,245,225,245,231,245, +22,246,93,246,148,246,202,246,24,247,92,247,134,247,171,247,192,247,178,247,178,247,239,247,73,248,154,248,245,248,103,249, +216,249,52,250,112,250,122,250,98,250,88,250,125,250,202,250,48,251,162,251,1,252,61,252,114,252,180,252,236,252,7,253, +25,253,52,253,94,253,172,253,37,254,155,254,246,254,93,255,213,255,49,0,112,0,179,0,232,0,5,1,57,1,154,1, +9,2,133,2,23,3,146,3,217,3,12,4,61,4,96,4,138,4,210,4,39,5,122,5,227,5,96,6,206,6,33,7, +104,7,170,7,238,7,65,8,157,8,237,8,45,9,102,9,156,9,209,9,18,10,90,10,142,10,161,10,178,10,218,10, +0,11,17,11,39,11,74,11,92,11,96,11,115,11,133,11,117,11,86,11,75,11,84,11,102,11,129,11,149,11,149,11, +145,11,138,11,101,11,43,11,3,11,238,10,213,10,184,10,157,10,121,10,70,10,11,10,206,9,148,9,98,9,52,9, +2,9,217,8,192,8,166,8,125,8,76,8,29,8,238,7,185,7,127,7,67,7,12,7,225,6,193,6,174,6,163,6, +134,6,71,6,244,5,164,5,88,5,7,5,182,4,107,4,53,4,26,4,5,4,221,3,169,3,114,3,44,3,217,2, +150,2,95,2,27,2,213,1,169,1,137,1,96,1,58,1,24,1,224,0,145,0,64,0,237,255,144,255,48,255,221,254, +153,254,99,254,54,254,19,254,243,253,195,253,120,253,34,253,220,252,162,252,110,252,64,252,15,252,215,251,169,251,143,251, +116,251,71,251,23,251,244,250,212,250,174,250,131,250,81,250,22,250,223,249,183,249,154,249,123,249,93,249,68,249,37,249, +1,249,234,248,233,248,237,248,242,248,254,248,8,249,7,249,1,249,251,248,238,248,226,248,228,248,231,248,231,248,246,248, +14,249,24,249,29,249,43,249,57,249,59,249,64,249,79,249,88,249,94,249,117,249,156,249,191,249,217,249,246,249,27,250, +62,250,97,250,144,250,187,250,208,250,235,250,35,251,87,251,114,251,144,251,187,251,212,251,228,251,12,252,56,252,83,252, +122,252,181,252,227,252,3,253,46,253,83,253,107,253,152,253,216,253,4,254,43,254,111,254,191,254,252,254,48,255,101,255, +135,255,159,255,201,255,2,0,53,0,94,0,137,0,188,0,249,0,60,1,118,1,157,1,178,1,196,1,222,1,3,2, +47,2,89,2,126,2,172,2,234,2,39,3,81,3,109,3,137,3,164,3,195,3,234,3,20,4,49,4,68,4,83,4, +97,4,114,4,137,4,158,4,168,4,176,4,191,4,211,4,227,4,233,4,236,4,248,4,6,5,4,5,244,4,242,4, +2,5,16,5,21,5,27,5,34,5,31,5,20,5,13,5,5,5,246,4,228,4,213,4,202,4,198,4,201,4,193,4, +165,4,134,4,114,4,90,4,58,4,32,4,18,4,8,4,1,4,249,3,223,3,187,3,161,3,137,3,100,3,60,3, +30,3,2,3,234,2,222,2,205,2,170,2,132,2,105,2,76,2,32,2,239,1,196,1,155,1,121,1,102,1,87,1, +64,1,33,1,4,1,232,0,200,0,166,0,130,0,88,0,49,0,25,0,9,0,241,255,205,255,163,255,122,255,90,255, +59,255,23,255,246,254,225,254,197,254,155,254,116,254,80,254,34,254,252,253,235,253,213,253,176,253,147,253,129,253,104,253, +81,253,59,253,28,253,250,252,222,252,184,252,138,252,110,252,90,252,64,252,52,252,59,252,44,252,3,252,227,251,208,251, +183,251,161,251,154,251,143,251,126,251,117,251,118,251,125,251,135,251,133,251,115,251,101,251,104,251,114,251,123,251,126,251, +126,251,135,251,164,251,199,251,227,251,244,251,245,251,239,251,253,251,30,252,57,252,82,252,120,252,157,252,184,252,221,252, +14,253,51,253,72,253,98,253,130,253,166,253,211,253,4,254,36,254,64,254,113,254,178,254,232,254,14,255,51,255,87,255, +114,255,140,255,182,255,239,255,43,0,90,0,120,0,150,0,189,0,223,0,243,0,13,1,60,1,109,1,144,1,182,1, +225,1,0,2,31,2,75,2,111,2,129,2,151,2,183,2,198,2,198,2,213,2,253,2,42,3,78,3,98,3,109,3, +129,3,155,3,168,3,164,3,163,3,175,3,196,3,218,3,242,3,10,4,35,4,59,4,73,4,85,4,104,4,122,4, +126,4,130,4,147,4,156,4,146,4,146,4,172,4,198,4,213,4,247,4,38,5,55,5,37,5,11,5,244,4,232,4, +247,4,26,5,64,5,107,5,148,5,169,5,173,5,173,5,159,5,129,5,117,5,124,5,121,5,107,5,109,5,127,5, +152,5,181,5,198,5,187,5,157,5,117,5,68,5,22,5,251,4,244,4,249,4,5,5,26,5,51,5,59,5,26,5, +216,4,143,4,77,4,29,4,13,4,21,4,26,4,26,4,26,4,1,4,203,3,143,3,81,3,9,3,205,2,171,2, +146,2,126,2,120,2,109,2,78,2,44,2,14,2,224,1,162,1,90,1,16,1,226,0,221,0,224,0,219,0,222,0, +214,0,163,0,94,0,39,0,233,255,159,255,112,255,98,255,84,255,76,255,89,255,91,255,62,255,29,255,0,255,207,254, +137,254,80,254,51,254,40,254,36,254,28,254,8,254,245,253,240,253,229,253,187,253,128,253,76,253,18,253,212,252,181,252, +180,252,157,252,105,252,64,252,39,252,9,252,231,251,195,251,134,251,69,251,39,251,25,251,242,250,187,250,143,250,98,250, +47,250,16,250,252,249,202,249,129,249,73,249,34,249,243,248,192,248,147,248,84,248,250,247,175,247,135,247,94,247,32,247, +227,246,175,246,124,246,86,246,66,246,39,246,1,246,230,245,204,245,157,245,109,245,80,245,42,245,243,244,207,244,202,244, +205,244,204,244,200,244,176,244,137,244,120,244,131,244,132,244,112,244,98,244,95,244,87,244,78,244,85,244,106,244,130,244, +162,244,199,244,239,244,31,245,72,245,78,245,68,245,80,245,109,245,136,245,170,245,211,245,237,245,8,246,61,246,114,246, +149,246,191,246,234,246,252,246,18,247,61,247,86,247,92,247,143,247,236,247,65,248,144,248,236,248,53,249,105,249,167,249, +224,249,254,249,33,250,94,250,149,250,208,250,53,251,159,251,219,251,8,252,82,252,149,252,179,252,207,252,8,253,81,253, +161,253,8,254,130,254,240,254,77,255,164,255,240,255,45,0,113,0,190,0,255,0,72,1,184,1,42,2,117,2,194,2, +49,3,143,3,196,3,253,3,62,4,103,4,147,4,229,4,57,5,125,5,215,5,71,6,160,6,217,6,19,7,76,7, +117,7,159,7,220,7,39,8,120,8,211,8,40,9,97,9,132,9,164,9,186,9,179,9,169,9,191,9,238,9,20,10, +51,10,85,10,117,10,147,10,173,10,174,10,148,10,129,10,135,10,149,10,162,10,177,10,190,10,206,10,239,10,18,11, +24,11,0,11,222,10,180,10,128,10,90,10,80,10,78,10,61,10,37,10,27,10,22,10,251,9,198,9,138,9,77,9, +17,9,231,8,213,8,199,8,180,8,163,8,142,8,109,8,73,8,40,8,248,7,171,7,97,7,52,7,17,7,225,6, +175,6,133,6,80,6,6,6,188,5,123,5,51,5,228,4,164,4,114,4,64,4,13,4,216,3,152,3,83,3,20,3, +220,2,166,2,115,2,61,2,2,2,197,1,144,1,96,1,41,1,227,0,152,0,83,0,12,0,195,255,135,255,79,255, +9,255,200,254,165,254,130,254,72,254,15,254,224,253,174,253,131,253,101,253,60,253,13,253,253,252,251,252,228,252,197,252, +170,252,119,252,56,252,28,252,21,252,1,252,247,251,0,252,245,251,205,251,174,251,154,251,125,251,98,251,95,251,112,251, +134,251,152,251,160,251,158,251,151,251,155,251,184,251,219,251,228,251,226,251,245,251,20,252,40,252,59,252,87,252,110,252, +125,252,145,252,165,252,180,252,197,252,214,252,227,252,0,253,63,253,141,253,199,253,232,253,0,254,29,254,66,254,109,254, +154,254,204,254,2,255,56,255,107,255,155,255,208,255,7,0,51,0,89,0,140,0,190,0,213,0,231,0,12,1,53,1, +93,1,157,1,233,1,33,2,77,2,133,2,180,2,206,2,242,2,33,3,69,3,104,3,156,3,205,3,240,3,26,4, +77,4,123,4,166,4,210,4,239,4,247,4,248,4,253,4,9,5,36,5,70,5,103,5,141,5,184,5,212,5,214,5, +202,5,194,5,192,5,197,5,211,5,233,5,254,5,9,6,4,6,239,5,219,5,204,5,187,5,164,5,142,5,115,5, +77,5,47,5,31,5,10,5,233,4,202,4,170,4,121,4,70,4,26,4,230,3,169,3,117,3,78,3,39,3,252,2, +205,2,148,2,88,2,26,2,205,1,118,1,44,1,241,0,177,0,105,0,36,0,226,255,149,255,61,255,236,254,167,254, +91,254,0,254,174,253,107,253,36,253,219,252,158,252,96,252,25,252,223,251,178,251,111,251,29,251,213,250,136,250,47,250, +237,249,196,249,140,249,76,249,30,249,249,248,202,248,158,248,111,248,42,248,224,247,164,247,107,247,53,247,20,247,11,247, +3,247,249,246,245,246,242,246,216,246,163,246,109,246,76,246,54,246,33,246,28,246,37,246,42,246,45,246,56,246,52,246, +28,246,12,246,3,246,237,245,221,245,237,245,8,246,27,246,49,246,80,246,111,246,141,246,169,246,182,246,183,246,196,246, +227,246,12,247,55,247,102,247,157,247,216,247,13,248,56,248,90,248,110,248,129,248,166,248,226,248,41,249,118,249,192,249, +252,249,50,250,112,250,164,250,202,250,255,250,79,251,153,251,221,251,49,252,138,252,209,252,21,253,102,253,183,253,249,253, +49,254,108,254,173,254,243,254,61,255,146,255,238,255,64,0,133,0,203,0,16,1,76,1,135,1,195,1,245,1,45,2, +132,2,228,2,45,3,111,3,191,3,11,4,63,4,113,4,176,4,239,4,43,5,110,5,172,5,221,5,16,6,76,6, +132,6,192,6,8,7,65,7,97,7,137,7,194,7,232,7,248,7,27,8,87,8,143,8,192,8,243,8,30,9,64,9, +99,9,129,9,162,9,214,9,13,10,43,10,59,10,84,10,108,10,127,10,158,10,196,10,224,10,243,10,3,11,16,11, +29,11,36,11,26,11,15,11,26,11,55,11,90,11,126,11,140,11,118,11,94,11,88,11,83,11,79,11,95,11,109,11, +91,11,66,11,67,11,74,11,50,11,3,11,220,10,194,10,176,10,158,10,128,10,77,10,23,10,252,9,243,9,223,9, +190,9,160,9,115,9,46,9,244,8,208,8,163,8,103,8,66,8,54,8,32,8,248,7,191,7,117,7,39,7,229,6, +167,6,107,6,60,6,21,6,226,5,169,5,114,5,49,5,228,4,147,4,73,4,9,4,213,3,163,3,108,3,54,3, +3,3,212,2,168,2,116,2,50,2,236,1,163,1,80,1,2,1,199,0,139,0,70,0,19,0,237,255,172,255,87,255, +16,255,203,254,116,254,31,254,225,253,171,253,112,253,46,253,234,252,167,252,110,252,62,252,9,252,202,251,133,251,59,251, +237,250,149,250,61,250,243,249,183,249,122,249,60,249,3,249,204,248,139,248,65,248,240,247,153,247,71,247,3,247,191,246, +111,246,34,246,230,245,177,245,118,245,53,245,235,244,143,244,41,244,208,243,127,243,33,243,188,242,109,242,56,242,3,242, +192,241,109,241,6,241,138,240,14,240,168,239,92,239,30,239,240,238,223,238,223,238,208,238,162,238,86,238,247,237,159,237, +103,237,66,237,34,237,24,237,46,237,82,237,131,237,189,237,205,237,158,237,97,237,54,237,18,237,6,237,46,237,110,237, +173,237,11,238,135,238,234,238,35,239,74,239,91,239,95,239,139,239,239,239,92,240,191,240,56,241,204,241,97,242,235,242, +101,243,187,243,226,243,254,243,64,244,174,244,45,245,179,245,65,246,205,246,78,247,198,247,42,248,113,248,180,248,13,249, +110,249,224,249,133,250,67,251,213,251,56,252,148,252,236,252,54,253,133,253,224,253,64,254,166,254,25,255,144,255,254,255, +98,0,190,0,9,1,63,1,119,1,205,1,50,2,141,2,236,2,89,3,201,3,59,4,187,4,38,5,99,5,154,5, +239,5,70,6,152,6,7,7,140,7,4,8,116,8,230,8,65,9,134,9,201,9,3,10,56,10,135,10,240,10,79,11, +176,11,36,12,138,12,209,12,25,13,104,13,172,13,242,13,72,14,150,14,210,14,12,15,77,15,144,15,203,15,228,15, +221,15,225,15,16,16,72,16,100,16,107,16,107,16,102,16,92,16,75,16,33,16,220,15,161,15,137,15,140,15,156,15, +172,15,157,15,105,15,55,15,20,15,222,14,144,14,75,14,18,14,215,13,167,13,141,13,110,13,55,13,246,12,185,12, +126,12,63,12,248,11,154,11,47,11,223,10,195,10,188,10,168,10,140,10,107,10,53,10,232,9,157,9,90,9,22,9, +231,8,227,8,242,8,235,8,207,8,171,8,116,8,41,8,224,7,164,7,112,7,75,7,54,7,31,7,0,7,226,6, +189,6,143,6,94,6,45,6,243,5,183,5,128,5,85,5,58,5,40,5,15,5,234,4,193,4,152,4,107,4,39,4, +202,3,120,3,81,3,56,3,11,3,214,2,164,2,103,2,42,2,250,1,197,1,130,1,69,1,17,1,220,0,182,0, +167,0,140,0,81,0,19,0,237,255,210,255,170,255,122,255,90,255,76,255,60,255,37,255,12,255,230,254,169,254,105,254, +58,254,14,254,223,253,198,253,200,253,205,253,198,253,175,253,127,253,68,253,16,253,217,252,158,252,121,252,102,252,88,252, +86,252,83,252,39,252,224,251,168,251,116,251,51,251,249,250,193,250,115,250,36,250,239,249,191,249,127,249,64,249,0,249, +174,248,87,248,12,248,194,247,110,247,34,247,232,246,175,246,100,246,19,246,202,245,127,245,47,245,236,244,181,244,119,244, +53,244,6,244,224,243,166,243,89,243,9,243,192,242,138,242,116,242,109,242,92,242,71,242,67,242,74,242,77,242,67,242, +34,242,237,241,194,241,180,241,188,241,221,241,25,242,81,242,121,242,171,242,229,242,251,242,236,242,225,242,235,242,6,243, +70,243,178,243,18,244,64,244,102,244,167,244,228,244,17,245,77,245,145,245,193,245,252,245,86,246,165,246,218,246,31,247, +108,247,158,247,206,247,19,248,83,248,138,248,213,248,43,249,108,249,176,249,18,250,114,250,172,250,204,250,232,250,2,251, +43,251,125,251,229,251,70,252,164,252,11,253,105,253,185,253,249,253,21,254,22,254,54,254,140,254,240,254,81,255,196,255, +53,0,131,0,196,0,24,1,111,1,174,1,224,1,26,2,100,2,205,2,71,3,176,3,9,4,108,4,200,4,15,5, +95,5,189,5,6,6,61,6,131,6,214,6,43,7,143,7,243,7,57,8,103,8,151,8,208,8,17,9,86,9,147,9, +197,9,249,9,63,10,142,10,205,10,241,10,5,11,16,11,22,11,39,11,80,11,128,11,165,11,204,11,243,11,16,12, +39,12,48,12,14,12,210,11,176,11,174,11,174,11,177,11,195,11,207,11,193,11,175,11,167,11,145,11,103,11,62,11, +26,11,240,10,199,10,170,10,149,10,130,10,108,10,77,10,38,10,1,10,216,9,157,9,88,9,25,9,231,8,185,8, +135,8,87,8,45,8,253,7,192,7,130,7,73,7,21,7,235,6,200,6,151,6,93,6,41,6,253,5,210,5,161,5, +96,5,22,5,216,4,168,4,127,4,89,4,45,4,239,3,174,3,125,3,79,3,16,3,194,2,123,2,74,2,42,2, +10,2,235,1,205,1,158,1,98,1,49,1,8,1,215,0,167,0,128,0,88,0,49,0,18,0,235,255,181,255,132,255, +100,255,65,255,22,255,250,254,234,254,202,254,145,254,85,254,38,254,11,254,250,253,227,253,201,253,179,253,159,253,137,253, +131,253,133,253,119,253,95,253,78,253,54,253,20,253,250,252,230,252,201,252,176,252,167,252,163,252,157,252,147,252,124,252, +88,252,49,252,19,252,9,252,7,252,248,251,230,251,227,251,227,251,215,251,199,251,182,251,157,251,131,251,108,251,81,251, +54,251,31,251,3,251,227,250,206,250,191,250,167,250,139,250,112,250,77,250,27,250,228,249,187,249,162,249,136,249,94,249, +47,249,2,249,212,248,175,248,167,248,177,248,173,248,142,248,87,248,5,248,168,247,102,247,55,247,3,247,231,246,252,246, +11,247,239,246,201,246,161,246,95,246,31,246,253,245,216,245,157,245,113,245,84,245,55,245,53,245,93,245,129,245,134,245, +135,245,142,245,126,245,81,245,47,245,41,245,59,245,103,245,175,245,243,245,23,246,38,246,42,246,30,246,15,246,16,246, +40,246,88,246,153,246,213,246,11,247,72,247,132,247,170,247,194,247,227,247,18,248,70,248,128,248,195,248,15,249,98,249, +192,249,36,250,122,250,177,250,210,250,229,250,238,250,10,251,76,251,157,251,228,251,50,252,146,252,235,252,37,253,78,253, +110,253,124,253,141,253,197,253,27,254,102,254,175,254,17,255,129,255,228,255,54,0,113,0,144,0,168,0,204,0,250,0, +42,1,99,1,172,1,2,2,84,2,158,2,233,2,40,3,68,3,86,3,128,3,189,3,0,4,85,4,173,4,246,4, +72,5,171,5,1,6,66,6,130,6,193,6,250,6,61,7,143,7,216,7,11,8,56,8,112,8,170,8,214,8,251,8, +34,9,68,9,101,9,149,9,203,9,242,9,22,10,74,10,117,10,134,10,153,10,186,10,204,10,211,10,242,10,27,11, +47,11,56,11,64,11,48,11,19,11,8,11,243,10,190,10,148,10,137,10,121,10,100,10,89,10,56,10,248,9,195,9, +157,9,108,9,61,9,31,9,0,9,220,8,195,8,183,8,170,8,135,8,71,8,254,7,198,7,153,7,104,7,48,7, +237,6,171,6,124,6,85,6,29,6,217,5,153,5,90,5,31,5,240,4,198,4,153,4,110,4,72,4,24,4,233,3, +211,3,194,3,144,3,81,3,42,3,14,3,228,2,185,2,148,2,104,2,57,2,11,2,209,1,136,1,71,1,16,1, +215,0,161,0,120,0,85,0,45,0,254,255,211,255,175,255,143,255,117,255,91,255,55,255,22,255,4,255,238,254,192,254, +145,254,102,254,43,254,241,253,217,253,206,253,175,253,136,253,99,253,57,253,15,253,235,252,191,252,136,252,88,252,65,252, +64,252,64,252,55,252,48,252,51,252,60,252,67,252,70,252,66,252,49,252,29,252,23,252,31,252,31,252,16,252,11,252, +26,252,37,252,37,252,40,252,35,252,23,252,25,252,45,252,59,252,72,252,96,252,123,252,149,252,183,252,222,252,252,252, +22,253,57,253,97,253,133,253,161,253,191,253,221,253,244,253,254,253,8,254,31,254,60,254,76,254,87,254,119,254,160,254, +181,254,193,254,214,254,232,254,248,254,24,255,57,255,79,255,117,255,167,255,199,255,224,255,3,0,33,0,45,0,61,0, +80,0,90,0,94,0,99,0,107,0,117,0,127,0,138,0,159,0,177,0,177,0,176,0,191,0,206,0,211,0,220,0, +240,0,3,1,18,1,38,1,69,1,99,1,112,1,109,1,103,1,106,1,127,1,152,1,158,1,143,1,133,1,141,1, +151,1,150,1,147,1,142,1,132,1,127,1,143,1,165,1,173,1,174,1,178,1,181,1,193,1,221,1,233,1,219,1, +216,1,234,1,249,1,6,2,28,2,33,2,16,2,2,2,248,1,234,1,218,1,201,1,187,1,191,1,207,1,212,1, +209,1,205,1,200,1,202,1,206,1,191,1,163,1,152,1,154,1,153,1,155,1,166,1,168,1,158,1,151,1,143,1, +123,1,93,1,63,1,36,1,7,1,243,0,239,0,239,0,227,0,202,0,175,0,158,0,151,0,137,0,118,0,112,0, +122,0,127,0,121,0,113,0,101,0,80,0,51,0,31,0,30,0,35,0,28,0,16,0,2,0,240,255,230,255,226,255, +204,255,171,255,159,255,154,255,132,255,118,255,126,255,129,255,117,255,116,255,128,255,136,255,125,255,98,255,74,255,62,255, +49,255,27,255,8,255,1,255,252,254,233,254,197,254,169,254,159,254,134,254,85,254,52,254,50,254,40,254,12,254,253,253, +248,253,227,253,198,253,186,253,186,253,176,253,157,253,146,253,141,253,135,253,120,253,89,253,53,253,34,253,27,253,7,253, +242,252,243,252,246,252,232,252,219,252,214,252,195,252,175,252,179,252,193,252,197,252,195,252,200,252,205,252,207,252,224,252, +1,253,19,253,15,253,17,253,34,253,44,253,47,253,53,253,56,253,54,253,58,253,70,253,89,253,116,253,130,253,127,253, +135,253,161,253,182,253,197,253,222,253,245,253,255,253,8,254,26,254,46,254,66,254,89,254,114,254,138,254,154,254,167,254, +181,254,183,254,176,254,175,254,181,254,191,254,209,254,229,254,241,254,253,254,14,255,23,255,28,255,45,255,64,255,70,255, +72,255,86,255,110,255,132,255,150,255,167,255,181,255,198,255,216,255,231,255,242,255,253,255,5,0,9,0,20,0,40,0, +50,0,51,0,58,0,70,0,81,0,100,0,124,0,142,0,161,0,186,0,214,0,238,0,253,0,2,1,14,1,30,1, +36,1,47,1,78,1,101,1,102,1,106,1,123,1,135,1,135,1,121,1,109,1,119,1,137,1,132,1,119,1,119,1, +117,1,114,1,132,1,155,1,159,1,160,1,167,1,160,1,143,1,146,1,160,1,165,1,167,1,174,1,167,1,141,1, +121,1,110,1,93,1,83,1,88,1,86,1,71,1,66,1,61,1,34,1,6,1,7,1,18,1,11,1,250,0,249,0, +5,1,4,1,246,0,242,0,247,0,243,0,234,0,230,0,222,0,208,0,188,0,157,0,136,0,145,0,155,0,143,0, +133,0,128,0,106,0,82,0,76,0,66,0,50,0,53,0,59,0,45,0,38,0,51,0,56,0,40,0,26,0,18,0, +5,0,244,255,238,255,237,255,224,255,201,255,187,255,182,255,168,255,143,255,121,255,111,255,103,255,87,255,73,255,68,255, +59,255,42,255,29,255,17,255,5,255,1,255,1,255,246,254,232,254,230,254,229,254,223,254,231,254,238,254,219,254,191,254, +179,254,173,254,159,254,144,254,136,254,135,254,140,254,155,254,176,254,185,254,179,254,184,254,206,254,227,254,247,254,12,255, +19,255,16,255,29,255,53,255,74,255,100,255,133,255,164,255,191,255,222,255,251,255,14,0,23,0,33,0,59,0,98,0, +127,0,138,0,149,0,185,0,0,1,78,1,134,1,180,1,222,1,239,1,233,1,245,1,21,2,49,2,84,2,142,2, +203,2,250,2,38,3,75,3,91,3,90,3,96,3,113,3,128,3,145,3,175,3,202,3,222,3,4,4,58,4,106,4, +146,4,185,4,198,4,185,4,189,4,223,4,255,4,21,5,53,5,92,5,113,5,120,5,128,5,126,5,106,5,100,5, +128,5,159,5,179,5,200,5,210,5,197,5,190,5,196,5,194,5,190,5,192,5,180,5,169,5,190,5,213,5,207,5, +205,5,212,5,190,5,152,5,132,5,109,5,57,5,3,5,226,4,203,4,189,4,187,4,175,4,134,4,79,4,33,4, +247,3,198,3,154,3,120,3,82,3,36,3,247,2,204,2,158,2,115,2,78,2,31,2,224,1,161,1,111,1,57,1, +233,0,147,0,80,0,28,0,232,255,175,255,104,255,18,255,186,254,107,254,36,254,232,253,169,253,87,253,5,253,193,252, +121,252,49,252,247,251,178,251,87,251,6,251,195,250,113,250,22,250,194,249,113,249,28,249,201,248,118,248,46,248,241,247, +168,247,77,247,242,246,159,246,81,246,8,246,192,245,107,245,8,245,166,244,86,244,32,244,243,243,184,243,108,243,33,243, +221,242,164,242,117,242,70,242,9,242,198,241,146,241,106,241,64,241,24,241,249,240,219,240,194,240,194,240,203,240,195,240, +173,240,146,240,119,240,117,240,144,240,167,240,182,240,217,240,8,241,46,241,100,241,178,241,252,241,56,242,122,242,198,242, +15,243,81,243,143,243,207,243,20,244,98,244,194,244,50,245,164,245,5,246,79,246,142,246,216,246,44,247,120,247,203,247, +49,248,141,248,212,248,49,249,181,249,51,250,155,250,5,251,114,251,210,251,39,252,119,252,196,252,21,253,109,253,195,253, +21,254,113,254,217,254,50,255,106,255,154,255,225,255,55,0,137,0,213,0,27,1,95,1,168,1,239,1,51,2,128,2, +207,2,19,3,92,3,191,3,45,4,143,4,228,4,52,5,130,5,200,5,4,6,67,6,133,6,185,6,224,6,18,7, +89,7,177,7,14,8,100,8,173,8,231,8,17,9,58,9,112,9,165,9,207,9,1,10,69,10,151,10,237,10,51,11, +91,11,118,11,150,11,176,11,200,11,234,11,4,12,9,12,6,12,3,12,254,11,1,12,7,12,2,12,254,11,255,11, +240,11,204,11,172,11,152,11,135,11,121,11,105,11,79,11,46,11,12,11,228,10,181,10,139,10,112,10,88,10,51,10, +0,10,193,9,120,9,48,9,237,8,172,8,111,8,57,8,7,8,213,7,158,7,94,7,35,7,244,6,184,6,110,6, +52,6,13,6,223,5,171,5,119,5,64,5,21,5,253,4,219,4,159,4,91,4,22,4,201,3,124,3,57,3,253,2, +196,2,138,2,81,2,28,2,228,1,167,1,118,1,76,1,20,1,221,0,185,0,142,0,85,0,35,0,250,255,202,255, +158,255,121,255,73,255,21,255,234,254,184,254,113,254,50,254,12,254,231,253,178,253,122,253,67,253,11,253,225,252,191,252, +146,252,102,252,80,252,67,252,52,252,50,252,45,252,12,252,229,251,209,251,195,251,184,251,178,251,160,251,129,251,116,251, +122,251,121,251,108,251,93,251,77,251,62,251,53,251,54,251,56,251,48,251,45,251,71,251,106,251,119,251,133,251,173,251, +207,251,219,251,245,251,27,252,40,252,36,252,56,252,100,252,133,252,153,252,179,252,215,252,244,252,11,253,38,253,69,253, +100,253,138,253,174,253,197,253,223,253,15,254,74,254,124,254,167,254,216,254,16,255,76,255,137,255,193,255,234,255,1,0, +25,0,64,0,109,0,151,0,192,0,231,0,14,1,54,1,85,1,110,1,138,1,160,1,181,1,222,1,17,2,51,2, +77,2,111,2,144,2,174,2,211,2,240,2,254,2,23,3,63,3,92,3,105,3,123,3,146,3,155,3,151,3,160,3, +179,3,179,3,164,3,163,3,178,3,194,3,214,3,232,3,235,3,237,3,251,3,7,4,8,4,5,4,6,4,18,4, +41,4,57,4,57,4,52,4,46,4,35,4,27,4,22,4,9,4,244,3,227,3,219,3,214,3,210,3,204,3,193,3, +174,3,154,3,134,3,114,3,95,3,79,3,67,3,61,3,58,3,41,3,8,3,231,2,209,2,182,2,146,2,108,2, +72,2,42,2,21,2,249,1,205,1,150,1,94,1,45,1,5,1,219,0,179,0,155,0,135,0,94,0,49,0,16,0, +231,255,180,255,136,255,97,255,54,255,15,255,232,254,183,254,139,254,109,254,81,254,46,254,1,254,206,253,157,253,112,253, +66,253,24,253,243,252,206,252,180,252,165,252,144,252,112,252,85,252,58,252,23,252,252,251,240,251,224,251,209,251,204,251, +192,251,152,251,111,251,97,251,91,251,70,251,47,251,26,251,5,251,252,250,251,250,236,250,217,250,217,250,213,250,191,250, +185,250,198,250,200,250,194,250,200,250,203,250,205,250,219,250,227,250,217,250,218,250,231,250,235,250,239,250,0,251,15,251, +15,251,16,251,32,251,52,251,63,251,72,251,93,251,117,251,136,251,167,251,211,251,236,251,245,251,16,252,59,252,91,252, +120,252,158,252,189,252,210,252,242,252,28,253,65,253,94,253,131,253,172,253,209,253,245,253,21,254,40,254,61,254,108,254, +171,254,219,254,253,254,36,255,84,255,131,255,163,255,190,255,228,255,20,0,63,0,106,0,153,0,194,0,236,0,29,1, +65,1,83,1,110,1,154,1,192,1,222,1,255,1,33,2,63,2,92,2,126,2,176,2,226,2,252,2,14,3,46,3, +81,3,111,3,146,3,179,3,197,3,216,3,0,4,45,4,71,4,82,4,96,4,117,4,138,4,156,4,171,4,183,4, +198,4,216,4,229,4,232,4,233,4,231,4,224,4,230,4,254,4,20,5,27,5,22,5,11,5,1,5,1,5,255,4, +238,4,221,4,217,4,225,4,233,4,230,4,211,4,190,4,174,4,151,4,119,4,91,4,73,4,56,4,35,4,22,4, +14,4,252,3,224,3,208,3,197,3,175,3,151,3,124,3,86,3,55,3,50,3,43,3,14,3,244,2,227,2,200,2, +169,2,147,2,121,2,82,2,42,2,13,2,251,1,232,1,203,1,171,1,140,1,106,1,77,1,55,1,23,1,240,0, +216,0,208,0,196,0,172,0,139,0,101,0,61,0,11,0,216,255,185,255,166,255,134,255,93,255,63,255,30,255,240,254, +198,254,162,254,119,254,77,254,45,254,2,254,202,253,165,253,142,253,100,253,47,253,22,253,11,253,238,252,207,252,184,252, +138,252,76,252,39,252,23,252,246,251,201,251,169,251,149,251,125,251,87,251,46,251,21,251,8,251,245,250,222,250,196,250, +159,250,126,250,117,250,112,250,104,250,105,250,106,250,99,250,100,250,102,250,88,250,78,250,81,250,76,250,68,250,78,250, +89,250,87,250,93,250,113,250,125,250,139,250,174,250,209,250,228,250,251,250,29,251,51,251,57,251,75,251,115,251,166,251, +225,251,31,252,83,252,136,252,199,252,250,252,25,253,65,253,122,253,165,253,187,253,218,253,17,254,76,254,135,254,213,254, +54,255,143,255,217,255,31,0,79,0,96,0,119,0,173,0,235,0,52,1,150,1,241,1,57,2,138,2,214,2,252,2, +23,3,72,3,125,3,178,3,248,3,55,4,91,4,124,4,171,4,224,4,24,5,83,5,129,5,157,5,187,5,222,5, +3,6,45,6,94,6,134,6,166,6,208,6,252,6,8,7,246,6,234,6,248,6,26,7,73,7,118,7,140,7,147,7, +150,7,146,7,132,7,119,7,111,7,110,7,118,7,136,7,154,7,168,7,174,7,173,7,160,7,143,7,136,7,134,7, +111,7,76,7,48,7,19,7,240,6,225,6,227,6,208,6,171,6,137,6,93,6,33,6,241,5,211,5,173,5,120,5, +65,5,6,5,196,4,135,4,80,4,18,4,210,3,167,3,133,3,70,3,236,2,148,2,49,2,187,1,89,1,19,1, +198,0,105,0,18,0,191,255,100,255,4,255,152,254,28,254,159,253,41,253,174,252,45,252,170,251,42,251,186,250,109,250, +53,250,228,249,110,249,243,248,121,248,230,247,78,247,220,246,133,246,53,246,6,246,249,245,203,245,103,245,255,244,157,244, +50,244,211,243,146,243,75,243,244,242,191,242,184,242,166,242,120,242,91,242,81,242,57,242,20,242,238,241,178,241,108,241, +79,241,102,241,148,241,205,241,0,242,27,242,48,242,67,242,62,242,40,242,45,242,88,242,158,242,238,242,46,243,84,243, +123,243,171,243,211,243,246,243,34,244,84,244,136,244,200,244,22,245,106,245,187,245,5,246,85,246,172,246,242,246,19,247, +33,247,63,247,127,247,220,247,71,248,179,248,25,249,114,249,181,249,224,249,247,249,6,250,25,250,69,250,153,250,4,251, +97,251,169,251,245,251,84,252,180,252,253,252,47,253,97,253,168,253,254,253,87,254,173,254,248,254,69,255,187,255,69,0, +169,0,231,0,40,1,105,1,170,1,14,2,136,2,232,2,50,3,133,3,224,3,51,4,120,4,173,4,229,4,66,5, +201,5,92,6,216,6,50,7,123,7,190,7,247,7,46,8,105,8,157,8,209,8,36,9,145,9,231,9,33,10,94,10, +148,10,171,10,182,10,196,10,185,10,159,10,170,10,220,10,2,11,27,11,69,11,108,11,119,11,119,11,108,11,71,11, +32,11,14,11,1,11,246,10,252,10,252,10,222,10,193,10,183,10,156,10,97,10,33,10,240,9,202,9,169,9,142,9, +101,9,43,9,255,8,235,8,193,8,117,8,55,8,27,8,1,8,229,7,212,7,185,7,142,7,114,7,89,7,30,7, +212,6,155,6,109,6,74,6,56,6,34,6,239,5,174,5,123,5,89,5,54,5,1,5,187,4,119,4,74,4,46,4, +15,4,228,3,181,3,143,3,117,3,98,3,64,3,1,3,188,2,134,2,86,2,42,2,5,2,219,1,161,1,104,1, +52,1,252,0,188,0,119,0,48,0,251,255,219,255,182,255,126,255,70,255,26,255,240,254,191,254,140,254,95,254,56,254, +27,254,11,254,244,253,198,253,154,253,129,253,92,253,33,253,239,252,203,252,166,252,139,252,128,252,118,252,103,252,90,252, +73,252,57,252,54,252,49,252,29,252,7,252,3,252,12,252,24,252,37,252,61,252,97,252,129,252,143,252,145,252,145,252, +143,252,148,252,161,252,172,252,181,252,197,252,222,252,245,252,7,253,29,253,54,253,74,253,99,253,141,253,183,253,209,253, +226,253,240,253,1,254,33,254,72,254,87,254,91,254,125,254,174,254,206,254,226,254,251,254,12,255,14,255,18,255,29,255, +39,255,45,255,61,255,85,255,106,255,128,255,166,255,204,255,219,255,224,255,236,255,247,255,1,0,24,0,45,0,59,0, +80,0,105,0,118,0,130,0,148,0,157,0,160,0,172,0,180,0,181,0,199,0,229,0,241,0,239,0,0,1,25,1, +36,1,42,1,68,1,100,1,120,1,137,1,161,1,182,1,196,1,206,1,213,1,222,1,234,1,245,1,251,1,5,2, +18,2,32,2,47,2,58,2,56,2,48,2,40,2,33,2,33,2,33,2,22,2,17,2,35,2,54,2,51,2,37,2, +30,2,25,2,16,2,1,2,232,1,204,1,179,1,159,1,136,1,103,1,66,1,41,1,24,1,2,1,233,0,204,0, +166,0,122,0,81,0,46,0,18,0,248,255,209,255,169,255,150,255,141,255,114,255,80,255,56,255,29,255,248,254,220,254, +205,254,179,254,140,254,109,254,91,254,68,254,39,254,20,254,255,253,225,253,211,253,221,253,225,253,210,253,196,253,192,253, +186,253,174,253,161,253,153,253,153,253,159,253,167,253,171,253,174,253,181,253,190,253,194,253,193,253,191,253,185,253,173,253, +162,253,160,253,167,253,184,253,207,253,222,253,227,253,235,253,252,253,8,254,3,254,249,253,3,254,26,254,45,254,68,254, +95,254,106,254,101,254,108,254,122,254,131,254,146,254,165,254,172,254,173,254,183,254,191,254,194,254,200,254,199,254,195,254, +213,254,247,254,13,255,28,255,54,255,82,255,98,255,109,255,118,255,121,255,124,255,139,255,157,255,166,255,179,255,205,255, +227,255,236,255,249,255,15,0,28,0,27,0,25,0,24,0,19,0,22,0,52,0,95,0,115,0,117,0,131,0,157,0, +170,0,173,0,178,0,178,0,181,0,204,0,235,0,251,0,252,0,244,0,242,0,255,0,12,1,8,1,255,0,249,0, +239,0,234,0,241,0,244,0,244,0,255,0,4,1,250,0,254,0,18,1,19,1,5,1,8,1,20,1,23,1,26,1, +41,1,56,1,60,1,58,1,56,1,54,1,51,1,48,1,46,1,44,1,37,1,29,1,30,1,36,1,36,1,30,1, +20,1,10,1,18,1,40,1,48,1,37,1,42,1,64,1,68,1,57,1,55,1,53,1,40,1,32,1,30,1,26,1, +24,1,19,1,254,0,237,0,238,0,231,0,204,0,183,0,175,0,169,0,167,0,173,0,170,0,155,0,144,0,149,0, +156,0,150,0,138,0,132,0,129,0,119,0,117,0,130,0,135,0,129,0,121,0,99,0,59,0,31,0,28,0,22,0, +11,0,14,0,21,0,14,0,3,0,254,255,244,255,232,255,223,255,206,255,187,255,193,255,208,255,200,255,186,255,195,255, +202,255,187,255,169,255,148,255,111,255,77,255,63,255,49,255,27,255,20,255,22,255,8,255,235,254,208,254,188,254,173,254, +155,254,135,254,123,254,124,254,125,254,120,254,115,254,110,254,102,254,87,254,68,254,52,254,38,254,18,254,4,254,2,254, +251,253,235,253,225,253,222,253,214,253,198,253,176,253,152,253,140,253,144,253,147,253,146,253,159,253,183,253,194,253,193,253, +198,253,197,253,184,253,186,253,205,253,204,253,184,253,186,253,211,253,231,253,250,253,14,254,8,254,245,253,248,253,9,254, +10,254,7,254,13,254,17,254,29,254,67,254,114,254,143,254,162,254,197,254,238,254,8,255,24,255,44,255,59,255,61,255, +75,255,117,255,169,255,210,255,248,255,29,0,58,0,83,0,110,0,133,0,149,0,180,0,234,0,34,1,68,1,95,1, +138,1,196,1,4,2,66,2,122,2,173,2,217,2,250,2,27,3,79,3,136,3,179,3,218,3,12,4,54,4,79,4, +107,4,148,4,195,4,249,4,53,5,104,5,139,5,169,5,198,5,219,5,228,5,243,5,22,6,71,6,118,6,164,6, +200,6,224,6,250,6,24,7,32,7,15,7,1,7,2,7,8,7,25,7,50,7,58,7,56,7,74,7,97,7,84,7, +47,7,23,7,7,7,237,6,220,6,223,6,225,6,214,6,202,6,187,6,162,6,124,6,74,6,22,6,245,5,225,5, +196,5,164,5,132,5,81,5,16,5,227,4,197,4,145,4,70,4,0,4,209,3,177,3,144,3,97,3,39,3,232,2, +157,2,67,2,233,1,156,1,93,1,39,1,241,0,184,0,125,0,60,0,238,255,150,255,54,255,207,254,107,254,16,254, +185,253,97,253,8,253,171,252,76,252,244,251,161,251,73,251,229,250,123,250,12,250,151,249,34,249,177,248,64,248,203,247, +89,247,238,246,127,246,3,246,140,245,59,245,9,245,200,244,100,244,239,243,107,243,207,242,61,242,216,241,139,241,68,241, +26,241,11,241,249,240,216,240,151,240,40,240,173,239,92,239,36,239,218,238,136,238,76,238,45,238,49,238,81,238,109,238, +103,238,67,238,21,238,230,237,187,237,158,237,157,237,202,237,43,238,165,238,20,239,106,239,166,239,197,239,205,239,212,239, +248,239,62,240,152,240,244,240,84,241,188,241,37,242,140,242,245,242,83,243,142,243,172,243,214,243,39,244,140,244,242,244, +97,245,229,245,113,246,251,246,126,247,221,247,5,248,32,248,109,248,236,248,127,249,16,250,137,250,221,250,47,251,160,251, +23,252,115,252,180,252,224,252,14,253,105,253,238,253,100,254,191,254,33,255,148,255,16,0,143,0,244,0,44,1,94,1, +187,1,51,2,163,2,24,3,161,3,44,4,172,4,33,5,129,5,206,5,33,6,133,6,225,6,48,7,137,7,242,7, +99,8,220,8,85,9,195,9,39,10,149,10,11,11,112,11,189,11,7,12,91,12,181,12,32,13,157,13,7,14,70,14, +129,14,216,14,52,15,107,15,134,15,158,15,190,15,221,15,251,15,27,16,56,16,76,16,101,16,133,16,150,16,144,16, +140,16,141,16,128,16,110,16,105,16,99,16,78,16,62,16,54,16,30,16,247,15,204,15,151,15,94,15,51,15,3,15, +176,14,88,14,42,14,12,14,208,13,122,13,31,13,198,12,130,12,91,12,42,12,213,11,123,11,61,11,19,11,235,10, +187,10,124,10,47,10,227,9,160,9,94,9,27,9,214,8,139,8,59,8,248,7,192,7,122,7,29,7,189,6,104,6, +27,6,217,5,160,5,94,5,20,5,214,4,155,4,72,4,240,3,180,3,133,3,73,3,8,3,195,2,114,2,33,2, +222,1,143,1,47,1,225,0,166,0,93,0,0,0,170,255,88,255,251,254,166,254,101,254,34,254,207,253,118,253,36,253, +226,252,180,252,137,252,74,252,6,252,210,251,168,251,119,251,60,251,246,250,173,250,119,250,87,250,52,250,5,250,216,249, +176,249,132,249,84,249,41,249,255,248,212,248,190,248,191,248,185,248,162,248,150,248,149,248,135,248,118,248,124,248,137,248, +133,248,129,248,138,248,150,248,164,248,184,248,192,248,191,248,209,248,235,248,235,248,217,248,216,248,233,248,2,249,37,249, +70,249,82,249,92,249,118,249,153,249,192,249,239,249,24,250,54,250,92,250,138,250,172,250,203,250,246,250,31,251,59,251, +96,251,143,251,176,251,194,251,221,251,10,252,56,252,88,252,107,252,134,252,188,252,252,252,38,253,64,253,106,253,165,253, +214,253,253,253,46,254,99,254,142,254,189,254,245,254,38,255,77,255,125,255,173,255,200,255,227,255,16,0,52,0,68,0, +96,0,140,0,170,0,196,0,241,0,33,1,73,1,120,1,169,1,200,1,231,1,24,2,66,2,89,2,123,2,168,2, +201,2,227,2,3,3,33,3,60,3,100,3,139,3,156,3,163,3,172,3,178,3,176,3,176,3,189,3,213,3,236,3, +252,3,14,4,48,4,81,4,93,4,89,4,82,4,78,4,83,4,92,4,94,4,89,4,94,4,110,4,121,4,116,4, +96,4,70,4,45,4,23,4,2,4,238,3,222,3,202,3,172,3,139,3,122,3,118,3,107,3,83,3,62,3,49,3, +31,3,4,3,235,2,214,2,187,2,159,2,137,2,114,2,89,2,64,2,32,2,248,1,221,1,205,1,173,1,134,1, +115,1,97,1,53,1,9,1,240,0,213,0,188,0,184,0,185,0,166,0,148,0,135,0,104,0,66,0,55,0,57,0, +37,0,8,0,247,255,228,255,194,255,162,255,143,255,123,255,94,255,68,255,53,255,34,255,6,255,238,254,223,254,204,254, +177,254,153,254,132,254,111,254,97,254,89,254,76,254,54,254,35,254,21,254,5,254,239,253,213,253,194,253,184,253,165,253, +131,253,103,253,93,253,79,253,54,253,36,253,23,253,8,253,4,253,8,253,245,252,210,252,194,252,198,252,194,252,187,252, +190,252,189,252,183,252,187,252,198,252,196,252,184,252,177,252,173,252,169,252,170,252,174,252,172,252,165,252,167,252,182,252, +201,252,216,252,227,252,232,252,235,252,245,252,2,253,6,253,10,253,32,253,64,253,86,253,99,253,113,253,127,253,145,253, +170,253,185,253,186,253,199,253,224,253,238,253,249,253,16,254,35,254,40,254,49,254,68,254,87,254,107,254,133,254,152,254, +169,254,200,254,226,254,234,254,242,254,7,255,24,255,38,255,61,255,78,255,79,255,85,255,110,255,138,255,156,255,169,255, +178,255,187,255,204,255,226,255,240,255,245,255,247,255,253,255,12,0,34,0,55,0,71,0,86,0,100,0,112,0,130,0, +150,0,157,0,149,0,147,0,162,0,177,0,183,0,199,0,226,0,239,0,237,0,244,0,2,1,3,1,2,1,13,1, +17,1,12,1,19,1,35,1,41,1,51,1,71,1,80,1,79,1,94,1,110,1,99,1,81,1,81,1,83,1,82,1, +90,1,102,1,104,1,112,1,129,1,134,1,126,1,121,1,116,1,102,1,87,1,82,1,84,1,88,1,90,1,86,1, +86,1,96,1,108,1,114,1,111,1,105,1,103,1,108,1,100,1,73,1,52,1,63,1,91,1,113,1,120,1,107,1, +86,1,73,1,71,1,62,1,55,1,67,1,87,1,92,1,86,1,78,1,60,1,34,1,27,1,44,1,58,1,57,1, +58,1,64,1,66,1,66,1,69,1,57,1,30,1,19,1,23,1,10,1,241,0,237,0,240,0,225,0,210,0,217,0, +223,0,211,0,187,0,154,0,120,0,100,0,88,0,67,0,51,0,49,0,47,0,40,0,38,0,27,0,254,255,234,255, +230,255,211,255,180,255,168,255,167,255,145,255,114,255,103,255,104,255,98,255,89,255,83,255,75,255,63,255,53,255,48,255, +31,255,3,255,244,254,1,255,14,255,7,255,5,255,32,255,71,255,96,255,105,255,104,255,102,255,110,255,130,255,153,255, +176,255,197,255,213,255,231,255,1,0,25,0,40,0,61,0,96,0,130,0,161,0,201,0,241,0,5,1,13,1,39,1, +90,1,138,1,173,1,208,1,248,1,28,2,59,2,95,2,134,2,165,2,192,2,220,2,243,2,252,2,254,2,7,3, +30,3,58,3,78,3,105,3,145,3,168,3,159,3,157,3,178,3,192,3,198,3,224,3,249,3,243,3,239,3,7,4, +21,4,15,4,21,4,28,4,10,4,255,3,17,4,24,4,1,4,237,3,229,3,223,3,231,3,244,3,226,3,192,3, +185,3,199,3,198,3,195,3,204,3,206,3,198,3,189,3,171,3,132,3,96,3,77,3,65,3,58,3,53,3,32,3, +250,2,213,2,178,2,129,2,71,2,22,2,236,1,195,1,161,1,122,1,61,1,255,0,217,0,179,0,118,0,56,0, +253,255,168,255,66,255,240,254,171,254,90,254,11,254,195,253,97,253,234,252,124,252,7,252,120,251,235,250,117,250,13,250, +190,249,133,249,50,249,182,248,50,248,167,247,7,247,119,246,22,246,200,245,135,245,110,245,87,245,16,245,192,244,129,244, +28,244,139,243,24,243,205,242,119,242,29,242,229,241,199,241,183,241,193,241,213,241,202,241,160,241,98,241,16,241,197,240, +171,240,193,240,241,240,63,241,170,241,13,242,82,242,125,242,129,242,93,242,72,242,105,242,168,242,237,242,71,243,176,243, +1,244,59,244,124,244,194,244,247,244,27,245,61,245,104,245,174,245,16,246,129,246,1,247,137,247,249,247,76,248,156,248, +223,248,254,248,29,249,105,249,196,249,26,250,136,250,1,251,77,251,113,251,150,251,185,251,219,251,26,252,101,252,148,252, +200,252,32,253,124,253,206,253,50,254,141,254,188,254,236,254,66,255,151,255,221,255,56,0,159,0,245,0,92,1,227,1, +72,2,112,2,149,2,206,2,7,3,74,3,170,3,8,4,83,4,166,4,7,5,92,5,172,5,9,6,97,6,180,6, +31,7,159,7,12,8,100,8,188,8,13,9,89,9,185,9,30,10,100,10,156,10,235,10,58,11,115,11,174,11,234,11, +13,12,33,12,58,12,67,12,65,12,91,12,137,12,161,12,181,12,228,12,15,13,38,13,65,13,82,13,53,13,12,13, +5,13,2,13,232,12,208,12,199,12,183,12,153,12,112,12,54,12,245,11,188,11,120,11,32,11,211,10,165,10,126,10, +82,10,38,10,250,9,202,9,150,9,91,9,24,9,219,8,174,8,139,8,105,8,68,8,19,8,213,7,152,7,98,7, +37,7,217,6,150,6,101,6,44,6,217,5,131,5,65,5,7,5,206,4,157,4,111,4,52,4,249,3,208,3,176,3, +138,3,93,3,42,3,243,2,192,2,144,2,86,2,13,2,188,1,116,1,61,1,5,1,183,0,99,0,34,0,224,255, +136,255,49,255,232,254,146,254,50,254,240,253,199,253,147,253,88,253,29,253,214,252,137,252,85,252,50,252,6,252,210,251, +161,251,109,251,58,251,8,251,198,250,110,250,27,250,224,249,175,249,123,249,77,249,41,249,4,249,216,248,175,248,145,248, +123,248,101,248,85,248,74,248,65,248,63,248,68,248,65,248,52,248,51,248,68,248,84,248,86,248,86,248,91,248,95,248, +99,248,109,248,123,248,135,248,140,248,138,248,142,248,160,248,182,248,197,248,209,248,231,248,17,249,74,249,125,249,163,249, +203,249,252,249,37,250,70,250,109,250,151,250,182,250,208,250,239,250,19,251,57,251,91,251,117,251,147,251,188,251,223,251, +247,251,25,252,72,252,114,252,152,252,196,252,243,252,33,253,88,253,147,253,198,253,248,253,55,254,121,254,170,254,208,254, +246,254,29,255,68,255,122,255,189,255,246,255,21,0,45,0,82,0,122,0,159,0,206,0,7,1,61,1,110,1,168,1, +222,1,10,2,61,2,124,2,186,2,246,2,54,3,108,3,151,3,210,3,16,4,52,4,73,4,114,4,165,4,205,4, +243,4,36,5,89,5,137,5,177,5,206,5,229,5,2,6,37,6,73,6,110,6,154,6,199,6,234,6,10,7,51,7, +94,7,120,7,132,7,142,7,155,7,173,7,196,7,214,7,220,7,234,7,1,8,6,8,245,7,236,7,237,7,223,7, +194,7,179,7,181,7,184,7,185,7,195,7,205,7,200,7,179,7,151,7,123,7,96,7,65,7,34,7,13,7,249,6, +219,6,186,6,153,6,109,6,55,6,14,6,239,5,198,5,149,5,110,5,79,5,32,5,222,4,164,4,124,4,82,4, +35,4,253,3,223,3,182,3,140,3,102,3,53,3,252,2,203,2,150,2,79,2,21,2,242,1,193,1,121,1,63,1, +30,1,253,0,212,0,163,0,100,0,37,0,252,255,222,255,180,255,128,255,77,255,25,255,232,254,195,254,162,254,116,254, +67,254,29,254,248,253,197,253,140,253,85,253,28,253,228,252,183,252,146,252,100,252,35,252,231,251,194,251,167,251,128,251, +81,251,36,251,251,250,205,250,149,250,86,250,35,250,0,250,220,249,178,249,143,249,113,249,76,249,36,249,247,248,189,248, +131,248,90,248,57,248,26,248,1,248,229,247,188,247,147,247,125,247,115,247,106,247,98,247,94,247,88,247,75,247,57,247, +42,247,34,247,24,247,17,247,25,247,46,247,69,247,90,247,112,247,130,247,149,247,174,247,195,247,208,247,229,247,9,248, +45,248,78,248,125,248,179,248,222,248,12,249,78,249,149,249,206,249,7,250,72,250,127,250,164,250,205,250,12,251,86,251, +148,251,204,251,18,252,89,252,141,252,192,252,8,253,82,253,147,253,213,253,20,254,68,254,117,254,178,254,236,254,35,255, +99,255,165,255,228,255,39,0,104,0,153,0,197,0,247,0,37,1,73,1,113,1,161,1,210,1,1,2,50,2,100,2, +141,2,175,2,206,2,237,2,14,3,55,3,100,3,134,3,159,3,198,3,252,3,39,4,67,4,96,4,121,4,130,4, +145,4,187,4,227,4,244,4,6,5,39,5,68,5,90,5,117,5,138,5,147,5,164,5,186,5,201,5,222,5,252,5, +15,6,31,6,65,6,97,6,101,6,100,6,111,6,118,6,113,6,117,6,133,6,147,6,155,6,165,6,172,6,166,6, +153,6,143,6,126,6,95,6,70,6,62,6,57,6,45,6,37,6,31,6,15,6,244,5,216,5,188,5,161,5,135,5, +105,5,68,5,31,5,0,5,222,4,179,4,135,4,93,4,48,4,4,4,219,3,170,3,111,3,61,3,17,3,215,2, +152,2,109,2,76,2,26,2,222,1,174,1,139,1,100,1,53,1,5,1,211,0,158,0,108,0,63,0,14,0,216,255, +169,255,135,255,103,255,65,255,15,255,211,254,160,254,114,254,54,254,255,253,232,253,216,253,179,253,140,253,121,253,102,253, +75,253,53,253,24,253,232,252,186,252,163,252,163,252,171,252,177,252,175,252,168,252,154,252,125,252,86,252,58,252,52,252, +60,252,74,252,94,252,112,252,119,252,127,252,139,252,141,252,134,252,140,252,163,252,184,252,196,252,212,252,244,252,37,253, +89,253,131,253,162,253,185,253,202,253,222,253,249,253,19,254,43,254,85,254,139,254,188,254,229,254,12,255,36,255,45,255, +62,255,105,255,155,255,192,255,229,255,19,0,53,0,70,0,101,0,148,0,179,0,197,0,225,0,3,1,31,1,60,1, +86,1,98,1,116,1,145,1,164,1,174,1,195,1,217,1,225,1,242,1,18,2,44,2,58,2,73,2,82,2,80,2, +85,2,101,2,115,2,136,2,171,2,196,2,201,2,208,2,221,2,218,2,206,2,208,2,212,2,208,2,211,2,213,2, +199,2,193,2,212,2,224,2,215,2,203,2,186,2,144,2,94,2,61,2,33,2,253,1,228,1,227,1,228,1,203,1, +151,1,85,1,10,1,190,0,120,0,44,0,209,255,118,255,41,255,231,254,179,254,140,254,91,254,16,254,166,253,24,253, +126,252,250,251,131,251,12,251,197,250,188,250,167,250,105,250,41,250,225,249,103,249,219,248,99,248,228,247,92,247,252,246, +187,246,109,246,55,246,55,246,44,246,242,245,191,245,134,245,13,245,136,244,71,244,38,244,4,244,22,244,87,244,129,244, +150,244,175,244,159,244,98,244,66,244,86,244,113,244,145,244,202,244,2,245,34,245,60,245,86,245,105,245,134,245,179,245, +212,245,223,245,252,245,57,246,130,246,214,246,53,247,128,247,180,247,240,247,32,248,28,248,18,248,72,248,163,248,240,248, +72,249,182,249,5,250,32,250,41,250,51,250,67,250,103,250,150,250,186,250,217,250,16,251,86,251,146,251,195,251,245,251, +39,252,91,252,147,252,194,252,236,252,32,253,86,253,138,253,217,253,72,254,171,254,237,254,33,255,76,255,119,255,192,255, +24,0,87,0,140,0,215,0,35,1,92,1,154,1,233,1,59,2,148,2,3,3,126,3,241,3,83,4,159,4,221,4, +33,5,122,5,223,5,65,6,157,6,246,6,76,7,163,7,253,7,77,8,138,8,188,8,236,8,17,9,41,9,68,9, +98,9,135,9,188,9,254,9,59,10,108,10,146,10,174,10,192,10,198,10,199,10,207,10,232,10,11,11,33,11,28,11, +9,11,252,10,241,10,219,10,189,10,156,10,118,10,81,10,53,10,21,10,229,9,178,9,135,9,96,9,57,9,21,9, +245,8,211,8,172,8,138,8,123,8,112,8,79,8,38,8,2,8,212,7,155,7,113,7,86,7,49,7,3,7,221,6, +184,6,132,6,65,6,255,5,194,5,132,5,73,5,24,5,242,4,211,4,184,4,160,4,135,4,106,4,69,4,33,4, +6,4,229,3,173,3,116,3,84,3,61,3,27,3,247,2,206,2,149,2,86,2,26,2,219,1,158,1,110,1,56,1, +248,0,205,0,176,0,119,0,41,0,245,255,220,255,185,255,149,255,133,255,108,255,54,255,6,255,229,254,185,254,132,254, +82,254,20,254,207,253,167,253,140,253,87,253,24,253,232,252,187,252,145,252,110,252,63,252,253,251,201,251,170,251,145,251, +129,251,122,251,106,251,87,251,78,251,61,251,25,251,253,250,246,250,235,250,214,250,206,250,212,250,205,250,182,250,160,250, +146,250,132,250,119,250,105,250,90,250,93,250,116,250,137,250,149,250,165,250,189,250,222,250,3,251,25,251,30,251,52,251, +95,251,125,251,146,251,197,251,9,252,49,252,59,252,79,252,106,252,115,252,126,252,167,252,208,252,227,252,6,253,69,253, +114,253,139,253,184,253,231,253,255,253,30,254,80,254,115,254,138,254,173,254,208,254,238,254,38,255,109,255,146,255,154,255, +173,255,199,255,212,255,222,255,240,255,255,255,13,0,41,0,79,0,104,0,120,0,144,0,170,0,192,0,222,0,8,1, +44,1,69,1,94,1,123,1,155,1,188,1,213,1,232,1,1,2,32,2,60,2,82,2,100,2,118,2,137,2,156,2, +178,2,208,2,239,2,11,3,34,3,51,3,75,3,119,3,164,3,194,3,227,3,16,4,51,4,72,4,99,4,129,4, +157,4,188,4,209,4,212,4,230,4,9,5,21,5,12,5,14,5,23,5,21,5,18,5,21,5,24,5,32,5,47,5, +49,5,41,5,50,5,73,5,75,5,57,5,50,5,56,5,52,5,39,5,19,5,243,4,218,4,218,4,216,4,187,4, +155,4,132,4,100,4,66,4,42,4,10,4,219,3,178,3,155,3,136,3,118,3,100,3,80,3,57,3,35,3,17,3, +255,2,231,2,200,2,172,2,144,2,118,2,100,2,79,2,40,2,255,1,227,1,195,1,156,1,122,1,85,1,39,1, +2,1,234,0,207,0,178,0,163,0,151,0,122,0,88,0,63,0,33,0,246,255,217,255,209,255,187,255,142,255,103,255, +75,255,39,255,255,254,221,254,183,254,138,254,98,254,61,254,20,254,233,253,182,253,129,253,94,253,69,253,26,253,240,252, +216,252,187,252,140,252,105,252,87,252,60,252,21,252,244,251,209,251,157,251,106,251,72,251,41,251,4,251,233,250,212,250, +178,250,140,250,112,250,79,250,37,250,10,250,247,249,215,249,185,249,173,249,157,249,131,249,115,249,111,249,108,249,100,249, +89,249,71,249,52,249,37,249,27,249,28,249,33,249,33,249,30,249,31,249,38,249,44,249,42,249,41,249,48,249,57,249, +65,249,85,249,115,249,139,249,161,249,193,249,227,249,3,250,32,250,53,250,68,250,97,250,133,250,163,250,199,250,249,250, +36,251,69,251,122,251,192,251,240,251,3,252,34,252,89,252,140,252,178,252,228,252,36,253,97,253,154,253,211,253,5,254, +61,254,126,254,177,254,212,254,7,255,73,255,127,255,173,255,225,255,17,0,61,0,123,0,190,0,234,0,7,1,55,1, +119,1,171,1,212,1,8,2,63,2,99,2,133,2,179,2,219,2,251,2,42,3,87,3,115,3,156,3,213,3,244,3, +3,4,43,4,91,4,114,4,135,4,178,4,215,4,234,4,9,5,59,5,101,5,134,5,176,5,224,5,4,6,33,6, +64,6,91,6,118,6,151,6,185,6,225,6,15,7,48,7,62,7,87,7,129,7,165,7,193,7,219,7,233,7,245,7, +15,8,38,8,53,8,80,8,119,8,148,8,169,8,184,8,191,8,199,8,211,8,212,8,207,8,216,8,234,8,235,8, +221,8,209,8,198,8,174,8,136,8,104,8,84,8,61,8,31,8,8,8,250,7,229,7,194,7,151,7,105,7,61,7, +20,7,235,6,192,6,148,6,106,6,65,6,15,6,219,5,178,5,138,5,87,5,31,5,228,4,162,4,102,4,55,4, +3,4,200,3,154,3,113,3,61,3,8,3,212,2,157,2,120,2,113,2,108,2,94,2,76,2,38,2,225,1,157,1, +113,1,75,1,39,1,32,1,50,1,61,1,52,1,36,1,12,1,223,0,164,0,110,0,61,0,16,0,246,255,239,255, +237,255,244,255,8,0,25,0,27,0,9,0,221,255,158,255,98,255,46,255,2,255,239,254,248,254,10,255,12,255,248,254, +214,254,168,254,102,254,27,254,222,253,183,253,154,253,135,253,118,253,89,253,54,253,23,253,248,252,211,252,169,252,116,252, +62,252,28,252,11,252,246,251,212,251,171,251,132,251,98,251,58,251,4,251,196,250,135,250,86,250,62,250,60,250,54,250, +30,250,250,249,209,249,163,249,116,249,70,249,30,249,5,249,246,248,238,248,235,248,226,248,196,248,154,248,125,248,108,248, +80,248,32,248,250,247,235,247,217,247,180,247,150,247,132,247,106,247,76,247,59,247,38,247,249,246,198,246,165,246,150,246, +148,246,144,246,128,246,104,246,76,246,41,246,4,246,227,245,199,245,181,245,178,245,173,245,150,245,115,245,84,245,65,245, +51,245,28,245,3,245,244,244,229,244,208,244,202,244,218,244,232,244,237,244,249,244,12,245,24,245,27,245,35,245,44,245, +51,245,79,245,127,245,160,245,171,245,193,245,226,245,251,245,31,246,92,246,136,246,156,246,198,246,0,247,30,247,54,247, +113,247,194,247,17,248,92,248,163,248,229,248,40,249,106,249,170,249,245,249,77,250,160,250,231,250,36,251,94,251,153,251, +218,251,40,252,138,252,242,252,72,253,129,253,178,253,236,253,38,254,95,254,172,254,24,255,132,255,217,255,35,0,103,0, +155,0,215,0,40,1,122,1,199,1,27,2,102,2,155,2,208,2,16,3,78,3,137,3,205,3,16,4,69,4,108,4, +147,4,199,4,4,5,67,5,139,5,216,5,19,6,64,6,107,6,143,6,173,6,219,6,30,7,97,7,160,7,223,7, +16,8,48,8,69,8,88,8,106,8,128,8,156,8,189,8,226,8,6,9,33,9,48,9,65,9,91,9,112,9,121,9, +132,9,143,9,138,9,141,9,176,9,215,9,230,9,240,9,246,9,233,9,218,9,215,9,201,9,173,9,160,9,167,9, +169,9,155,9,129,9,96,9,59,9,22,9,247,8,217,8,182,8,150,8,130,8,113,8,90,8,59,8,16,8,223,7, +179,7,134,7,82,7,38,7,0,7,204,6,150,6,113,6,72,6,8,6,199,5,145,5,78,5,250,4,174,4,115,4, +54,4,241,3,180,3,129,3,73,3,8,3,193,2,117,2,44,2,241,1,188,1,129,1,73,1,21,1,216,0,146,0, +78,0,1,0,175,255,105,255,47,255,241,254,178,254,122,254,71,254,19,254,213,253,144,253,84,253,30,253,229,252,182,252, +147,252,106,252,62,252,31,252,5,252,230,251,202,251,176,251,139,251,98,251,66,251,39,251,14,251,246,250,224,250,205,250, +195,250,194,250,192,250,174,250,146,250,124,250,114,250,110,250,114,250,126,250,143,250,158,250,171,250,182,250,195,250,197,250, +187,250,190,250,219,250,247,250,5,251,26,251,52,251,68,251,82,251,102,251,119,251,140,251,166,251,185,251,206,251,237,251, +6,252,22,252,54,252,103,252,147,252,187,252,223,252,247,252,9,253,41,253,83,253,123,253,167,253,220,253,9,254,47,254, +98,254,152,254,182,254,203,254,247,254,45,255,85,255,128,255,187,255,243,255,34,0,84,0,133,0,180,0,240,0,52,1, +108,1,152,1,201,1,1,2,57,2,103,2,143,2,194,2,254,2,54,3,106,3,162,3,213,3,3,4,48,4,81,4, +107,4,153,4,209,4,248,4,23,5,64,5,103,5,132,5,170,5,215,5,247,5,8,6,35,6,69,6,87,6,93,6, +115,6,148,6,172,6,193,6,220,6,233,6,223,6,214,6,221,6,232,6,232,6,225,6,220,6,222,6,222,6,219,6, +221,6,219,6,205,6,191,6,184,6,176,6,165,6,154,6,137,6,124,6,122,6,119,6,105,6,85,6,60,6,28,6, +4,6,242,5,219,5,197,5,182,5,164,5,139,5,115,5,95,5,65,5,24,5,243,4,219,4,195,4,160,4,125,4, +100,4,78,4,59,4,42,4,11,4,220,3,178,3,140,3,91,3,40,3,253,2,214,2,172,2,136,2,105,2,73,2, +36,2,250,1,205,1,155,1,99,1,45,1,251,0,207,0,170,0,137,0,104,0,75,0,41,0,239,255,170,255,118,255, +82,255,50,255,23,255,246,254,203,254,169,254,137,254,81,254,19,254,239,253,213,253,174,253,140,253,117,253,81,253,34,253, +2,253,246,252,233,252,210,252,178,252,136,252,89,252,52,252,30,252,10,252,246,251,239,251,238,251,223,251,195,251,165,251, +132,251,98,251,73,251,59,251,45,251,28,251,16,251,13,251,1,251,225,250,194,250,182,250,171,250,155,250,151,250,152,250, +139,250,120,250,103,250,82,250,70,250,72,250,65,250,39,250,17,250,14,250,22,250,28,250,21,250,9,250,7,250,4,250, +242,249,231,249,238,249,241,249,237,249,243,249,2,250,12,250,27,250,50,250,60,250,49,250,49,250,72,250,94,250,100,250, +106,250,118,250,135,250,168,250,212,250,239,250,251,250,9,251,26,251,50,251,87,251,116,251,127,251,145,251,178,251,205,251, +238,251,34,252,69,252,73,252,92,252,142,252,189,252,215,252,238,252,7,253,34,253,71,253,118,253,157,253,176,253,189,253, +218,253,0,254,33,254,61,254,78,254,86,254,108,254,155,254,201,254,235,254,11,255,33,255,35,255,37,255,57,255,80,255, +92,255,102,255,129,255,168,255,208,255,249,255,25,0,28,0,17,0,23,0,41,0,50,0,57,0,69,0,80,0,100,0, +125,0,137,0,139,0,153,0,167,0,170,0,180,0,202,0,211,0,211,0,227,0,254,0,18,1,30,1,44,1,58,1, +61,1,59,1,61,1,71,1,87,1,115,1,142,1,152,1,154,1,158,1,155,1,145,1,153,1,174,1,184,1,188,1, +203,1,224,1,238,1,241,1,241,1,245,1,254,1,4,2,11,2,23,2,31,2,32,2,35,2,44,2,53,2,57,2, +56,2,51,2,42,2,34,2,41,2,54,2,55,2,55,2,69,2,76,2,63,2,53,2,55,2,56,2,64,2,80,2, +83,2,78,2,88,2,94,2,75,2,56,2,63,2,78,2,80,2,75,2,71,2,66,2,56,2,50,2,55,2,58,2, +47,2,36,2,37,2,40,2,30,2,10,2,248,1,246,1,253,1,4,2,7,2,3,2,243,1,223,1,207,1,186,1, +159,1,131,1,105,1,75,1,47,1,22,1,254,0,228,0,190,0,145,0,107,0,69,0,10,0,201,255,143,255,74,255, +252,254,195,254,165,254,139,254,101,254,38,254,207,253,128,253,60,253,229,252,127,252,39,252,232,251,192,251,172,251,146,251, +84,251,245,250,145,250,56,250,237,249,174,249,102,249,12,249,189,248,162,248,167,248,155,248,120,248,73,248,15,248,219,247, +189,247,152,247,88,247,39,247,34,247,63,247,115,247,173,247,198,247,176,247,151,247,159,247,185,247,196,247,194,247,211,247, +9,248,78,248,146,248,212,248,5,249,34,249,75,249,133,249,176,249,208,249,5,250,77,250,147,250,223,250,56,251,139,251, +197,251,237,251,14,252,42,252,76,252,136,252,210,252,16,253,67,253,127,253,186,253,231,253,9,254,35,254,53,254,71,254, +102,254,150,254,212,254,10,255,40,255,59,255,88,255,125,255,158,255,180,255,181,255,175,255,197,255,246,255,41,0,82,0, +114,0,145,0,180,0,209,0,223,0,234,0,3,1,41,1,95,1,161,1,222,1,20,2,82,2,149,2,206,2,249,2, +30,3,76,3,139,3,216,3,44,4,122,4,191,4,2,5,68,5,124,5,178,5,249,5,68,6,133,6,209,6,51,7, +139,7,197,7,252,7,65,8,127,8,169,8,204,8,251,8,45,9,88,9,140,9,206,9,3,10,38,10,76,10,109,10, +115,10,103,10,92,10,92,10,107,10,124,10,128,10,128,10,131,10,123,10,103,10,81,10,51,10,10,10,229,9,202,9, +178,9,156,9,121,9,69,9,22,9,247,8,206,8,140,8,69,8,16,8,233,7,197,7,157,7,111,7,62,7,13,7, +222,6,175,6,116,6,48,6,250,5,222,5,203,5,173,5,140,5,118,5,90,5,39,5,242,4,200,4,153,4,110,4, +96,4,86,4,48,4,12,4,0,4,242,3,211,3,183,3,153,3,107,3,62,3,31,3,7,3,241,2,220,2,207,2, +202,2,193,2,167,2,136,2,103,2,59,2,18,2,254,1,239,1,204,1,170,1,154,1,142,1,114,1,77,1,40,1, +249,0,196,0,164,0,143,0,101,0,47,0,12,0,246,255,214,255,175,255,137,255,103,255,73,255,41,255,0,255,214,254, +179,254,147,254,118,254,93,254,63,254,28,254,250,253,215,253,182,253,162,253,134,253,86,253,44,253,23,253,1,253,224,252, +197,252,173,252,144,252,123,252,117,252,105,252,73,252,50,252,55,252,62,252,43,252,14,252,2,252,251,251,240,251,233,251, +231,251,225,251,225,251,242,251,5,252,255,251,229,251,213,251,223,251,237,251,240,251,240,251,241,251,244,251,7,252,36,252, +54,252,61,252,70,252,80,252,95,252,122,252,145,252,151,252,153,252,163,252,181,252,204,252,224,252,230,252,232,252,246,252, +12,253,25,253,30,253,35,253,44,253,59,253,77,253,90,253,91,253,82,253,84,253,101,253,113,253,114,253,120,253,127,253, +129,253,135,253,141,253,127,253,103,253,99,253,112,253,118,253,107,253,95,253,93,253,91,253,81,253,69,253,60,253,50,253, +46,253,59,253,79,253,86,253,79,253,71,253,69,253,74,253,79,253,82,253,80,253,79,253,97,253,132,253,155,253,158,253, +167,253,189,253,201,253,206,253,221,253,240,253,251,253,18,254,64,254,112,254,153,254,186,254,208,254,223,254,244,254,18,255, +42,255,58,255,86,255,134,255,183,255,220,255,250,255,17,0,33,0,49,0,66,0,74,0,84,0,111,0,142,0,167,0, +192,0,221,0,243,0,0,1,5,1,3,1,4,1,9,1,17,1,29,1,45,1,58,1,71,1,81,1,72,1,51,1, +37,1,31,1,23,1,17,1,16,1,16,1,15,1,12,1,14,1,26,1,24,1,248,0,221,0,229,0,244,0,238,0, +236,0,252,0,2,1,254,0,2,1,8,1,5,1,7,1,16,1,18,1,19,1,36,1,54,1,61,1,68,1,78,1, +81,1,92,1,110,1,113,1,108,1,129,1,163,1,176,1,181,1,201,1,225,1,246,1,5,2,4,2,251,1,6,2, +30,2,44,2,48,2,56,2,63,2,68,2,72,2,69,2,58,2,46,2,37,2,35,2,41,2,45,2,36,2,22,2, +13,2,10,2,10,2,5,2,254,1,247,1,236,1,214,1,191,1,180,1,176,1,171,1,168,1,162,1,142,1,118,1, +102,1,87,1,59,1,30,1,18,1,7,1,243,0,232,0,230,0,214,0,191,0,186,0,186,0,168,0,153,0,151,0, +143,0,128,0,123,0,124,0,118,0,112,0,107,0,94,0,85,0,92,0,94,0,68,0,36,0,34,0,48,0,48,0, +36,0,32,0,28,0,13,0,1,0,7,0,15,0,7,0,245,255,237,255,245,255,249,255,236,255,224,255,232,255,243,255, +238,255,222,255,209,255,198,255,180,255,159,255,142,255,132,255,128,255,125,255,120,255,118,255,120,255,120,255,106,255,81,255, +50,255,19,255,1,255,255,254,251,254,245,254,0,255,18,255,14,255,253,254,243,254,223,254,185,254,154,254,134,254,111,254, +98,254,108,254,120,254,119,254,111,254,95,254,77,254,67,254,56,254,31,254,8,254,2,254,5,254,7,254,11,254,17,254, +17,254,6,254,248,253,238,253,231,253,223,253,222,253,234,253,255,253,16,254,26,254,19,254,249,253,229,253,229,253,237,253, +249,253,21,254,64,254,98,254,116,254,125,254,126,254,118,254,118,254,132,254,148,254,163,254,182,254,208,254,247,254,46,255, +96,255,126,255,143,255,153,255,153,255,158,255,179,255,201,255,224,255,18,0,87,0,137,0,165,0,184,0,193,0,198,0, +216,0,246,0,21,1,60,1,111,1,154,1,173,1,185,1,203,1,217,1,228,1,2,2,37,2,46,2,48,2,80,2, +122,2,142,2,155,2,169,2,170,2,161,2,159,2,162,2,168,2,185,2,205,2,222,2,248,2,17,3,15,3,242,2, +213,2,205,2,217,2,229,2,229,2,230,2,242,2,1,3,3,3,246,2,229,2,217,2,208,2,198,2,195,2,195,2, +187,2,177,2,181,2,191,2,186,2,166,2,144,2,128,2,119,2,114,2,106,2,92,2,79,2,72,2,63,2,48,2, +29,2,255,1,214,1,184,1,179,1,170,1,143,1,118,1,95,1,57,1,19,1,244,0,192,0,125,0,76,0,44,0, +11,0,237,255,210,255,166,255,106,255,49,255,253,254,200,254,139,254,67,254,254,253,198,253,147,253,91,253,31,253,227,252, +167,252,115,252,64,252,1,252,170,251,76,251,3,251,206,250,149,250,82,250,18,250,207,249,129,249,61,249,11,249,219,248, +166,248,115,248,68,248,24,248,234,247,176,247,110,247,52,247,9,247,230,246,199,246,165,246,129,246,102,246,85,246,66,246, +44,246,17,246,242,245,214,245,191,245,170,245,159,245,164,245,177,245,192,245,215,245,246,245,8,246,255,245,232,245,230,245, +252,245,19,246,33,246,54,246,85,246,125,246,174,246,215,246,239,246,9,247,48,247,80,247,103,247,132,247,166,247,194,247, +227,247,26,248,95,248,148,248,180,248,216,248,5,249,50,249,100,249,158,249,210,249,251,249,35,250,72,250,112,250,160,250, +206,250,249,250,51,251,120,251,182,251,239,251,38,252,79,252,120,252,179,252,238,252,32,253,83,253,129,253,170,253,238,253, +73,254,151,254,218,254,34,255,98,255,145,255,191,255,247,255,59,0,134,0,199,0,1,1,71,1,155,1,226,1,24,2, +79,2,144,2,214,2,37,3,118,3,188,3,249,3,61,4,131,4,187,4,241,4,57,5,133,5,194,5,246,5,51,6, +128,6,202,6,245,6,19,7,76,7,137,7,167,7,193,7,242,7,31,8,68,8,125,8,188,8,230,8,7,9,40,9, +62,9,70,9,82,9,100,9,124,9,146,9,166,9,189,9,218,9,244,9,6,10,11,10,5,10,3,10,0,10,239,9, +228,9,243,9,249,9,225,9,211,9,221,9,220,9,203,9,194,9,185,9,166,9,151,9,145,9,129,9,100,9,76,9, +59,9,27,9,241,8,222,8,222,8,207,8,168,8,131,8,106,8,87,8,65,8,30,8,241,7,201,7,168,7,129,7, +91,7,57,7,28,7,255,6,226,6,196,6,165,6,133,6,94,6,46,6,246,5,195,5,156,5,117,5,68,5,25,5, +244,4,197,4,145,4,108,4,60,4,243,3,182,3,142,3,89,3,20,3,216,2,164,2,112,2,66,2,29,2,242,1, +183,1,122,1,65,1,3,1,189,0,128,0,76,0,19,0,219,255,172,255,116,255,56,255,15,255,234,254,170,254,96,254, +39,254,250,253,208,253,159,253,97,253,41,253,12,253,246,252,210,252,168,252,132,252,93,252,50,252,8,252,234,251,217,251, +193,251,147,251,98,251,68,251,55,251,39,251,10,251,236,250,220,250,212,250,199,250,184,250,170,250,149,250,124,250,109,250, +100,250,98,250,100,250,94,250,83,250,84,250,94,250,92,250,82,250,86,250,101,250,110,250,113,250,116,250,121,250,123,250, +131,250,149,250,168,250,190,250,219,250,239,250,243,250,251,250,18,251,43,251,71,251,98,251,108,251,125,251,173,251,218,251, +234,251,0,252,48,252,96,252,135,252,170,252,198,252,221,252,251,252,29,253,65,253,108,253,162,253,222,253,24,254,71,254, +114,254,154,254,188,254,224,254,13,255,57,255,97,255,147,255,202,255,251,255,48,0,103,0,148,0,192,0,239,0,19,1, +54,1,106,1,153,1,179,1,217,1,26,2,82,2,112,2,140,2,177,2,212,2,247,2,40,3,93,3,131,3,156,3, +186,3,227,3,12,4,38,4,51,4,71,4,106,4,142,4,169,4,197,4,228,4,5,5,42,5,70,5,82,5,100,5, +125,5,130,5,126,5,142,5,168,5,191,5,216,5,231,5,225,5,225,5,236,5,241,5,244,5,250,5,244,5,232,5, +232,5,240,5,238,5,224,5,201,5,183,5,181,5,180,5,164,5,143,5,119,5,90,5,67,5,50,5,22,5,239,4, +206,4,183,4,154,4,115,4,75,4,41,4,4,4,216,3,178,3,148,3,105,3,44,3,246,2,210,2,175,2,123,2, +63,2,13,2,226,1,180,1,128,1,72,1,7,1,194,0,144,0,112,0,77,0,22,0,211,255,151,255,105,255,52,255, +240,254,183,254,144,254,99,254,44,254,251,253,203,253,148,253,95,253,46,253,253,252,211,252,169,252,119,252,69,252,24,252, +237,251,193,251,146,251,102,251,63,251,22,251,229,250,184,250,147,250,106,250,70,250,51,250,29,250,247,249,214,249,192,249, +160,249,118,249,85,249,65,249,48,249,32,249,21,249,3,249,229,248,207,248,200,248,182,248,150,248,136,248,145,248,145,248, +132,248,126,248,126,248,130,248,138,248,138,248,131,248,135,248,143,248,149,248,169,248,203,248,223,248,234,248,6,249,42,249, +68,249,89,249,109,249,125,249,147,249,185,249,224,249,252,249,29,250,75,250,116,250,153,250,205,250,252,250,18,251,46,251, +103,251,166,251,219,251,20,252,79,252,125,252,170,252,226,252,26,253,76,253,131,253,197,253,4,254,54,254,102,254,158,254, +213,254,3,255,54,255,116,255,169,255,214,255,14,0,85,0,158,0,218,0,10,1,65,1,136,1,196,1,237,1,36,2, +107,2,166,2,227,2,45,3,108,3,160,3,231,3,44,4,84,4,122,4,183,4,243,4,42,5,115,5,193,5,248,5, +36,6,95,6,162,6,215,6,3,7,57,7,121,7,185,7,249,7,57,8,114,8,164,8,213,8,1,9,33,9,63,9, +103,9,147,9,184,9,224,9,21,10,72,10,106,10,130,10,148,10,154,10,160,10,173,10,177,10,179,10,207,10,245,10, +8,11,14,11,24,11,30,11,22,11,1,11,228,10,200,10,183,10,171,10,159,10,146,10,125,10,102,10,81,10,51,10, +5,10,206,9,147,9,91,9,44,9,247,8,188,8,148,8,123,8,76,8,18,8,228,7,168,7,82,7,7,7,211,6, +149,6,72,6,5,6,200,5,135,5,75,5,20,5,206,4,127,4,63,4,1,4,173,3,82,3,7,3,193,2,113,2, +36,2,228,1,164,1,88,1,6,1,183,0,112,0,45,0,227,255,151,255,78,255,5,255,186,254,112,254,38,254,216,253, +134,253,54,253,241,252,170,252,76,252,229,251,146,251,75,251,249,250,163,250,84,250,2,250,176,249,101,249,20,249,189,248, +111,248,40,248,219,247,138,247,61,247,237,246,148,246,64,246,252,245,190,245,111,245,24,245,200,244,118,244,31,244,208,243, +139,243,63,243,246,242,182,242,111,242,36,242,233,241,176,241,101,241,24,241,220,240,165,240,98,240,29,240,232,239,188,239, +139,239,86,239,41,239,4,239,224,238,189,238,149,238,105,238,76,238,73,238,83,238,93,238,90,238,72,238,55,238,51,238, +52,238,49,238,53,238,65,238,85,238,122,238,177,238,233,238,23,239,67,239,124,239,199,239,21,240,75,240,110,240,159,240, +242,240,85,241,174,241,6,242,106,242,199,242,29,243,127,243,233,243,65,244,144,244,241,244,95,245,209,245,62,246,159,246, +253,246,103,247,219,247,86,248,223,248,98,249,206,249,57,250,184,250,61,251,183,251,40,252,152,252,17,253,143,253,4,254, +118,254,239,254,95,255,195,255,47,0,160,0,2,1,99,1,206,1,44,2,122,2,215,2,81,3,210,3,72,4,174,4, +2,5,77,5,157,5,252,5,101,6,200,6,30,7,111,7,197,7,31,8,111,8,178,8,241,8,51,9,122,9,201,9, +19,10,74,10,115,10,166,10,236,10,52,11,119,11,181,11,241,11,38,12,86,12,140,12,205,12,10,13,61,13,120,13, +182,13,235,13,32,14,74,14,93,14,114,14,157,14,194,14,215,14,249,14,27,15,37,15,50,15,79,15,94,15,97,15, +118,15,143,15,153,15,154,15,150,15,138,15,130,15,135,15,137,15,134,15,135,15,139,15,142,15,136,15,114,15,81,15, +44,15,6,15,217,14,172,14,136,14,103,14,57,14,4,14,213,13,160,13,97,13,46,13,4,13,206,12,140,12,87,12, +37,12,224,11,146,11,85,11,33,11,236,10,183,10,129,10,57,10,226,9,145,9,72,9,246,8,162,8,90,8,15,8, +179,7,86,7,246,6,146,6,60,6,252,5,192,5,133,5,78,5,6,5,173,4,89,4,13,4,193,3,126,3,66,3, +251,2,177,2,115,2,54,2,239,1,164,1,93,1,30,1,231,0,170,0,92,0,2,0,173,255,104,255,46,255,248,254, +198,254,147,254,85,254,22,254,225,253,175,253,115,253,53,253,255,252,213,252,177,252,121,252,39,252,224,251,178,251,129,251, +60,251,246,250,180,250,111,250,40,250,222,249,145,249,75,249,13,249,205,248,135,248,67,248,253,247,168,247,74,247,250,246, +192,246,134,246,66,246,255,245,188,245,116,245,44,245,227,244,135,244,33,244,209,243,154,243,100,243,30,243,208,242,138,242, +81,242,43,242,16,242,236,241,181,241,129,241,95,241,68,241,46,241,31,241,13,241,252,240,1,241,22,241,35,241,41,241, +42,241,38,241,44,241,73,241,114,241,156,241,200,241,240,241,26,242,82,242,141,242,194,242,3,243,84,243,165,243,246,243, +79,244,168,244,245,244,58,245,140,245,249,245,107,246,195,246,16,247,111,247,208,247,34,248,120,248,218,248,57,249,149,249, +243,249,75,250,155,250,237,250,64,251,143,251,228,251,69,252,166,252,251,252,71,253,151,253,237,253,66,254,136,254,197,254, +9,255,83,255,146,255,201,255,9,0,77,0,141,0,206,0,8,1,57,1,110,1,165,1,207,1,5,2,83,2,145,2, +192,2,15,3,114,3,181,3,238,3,58,4,123,4,169,4,245,4,97,5,186,5,245,5,60,6,158,6,253,6,66,7, +127,7,197,7,13,8,85,8,156,8,225,8,53,9,163,9,14,10,96,10,178,10,13,11,77,11,122,11,186,11,7,12, +71,12,142,12,225,12,46,13,119,13,195,13,247,13,7,14,25,14,60,14,85,14,93,14,105,14,120,14,133,14,158,14, +180,14,174,14,153,14,148,14,147,14,133,14,125,14,117,14,87,14,58,14,52,14,44,14,13,14,224,13,173,13,117,13, +67,13,24,13,226,12,157,12,89,12,38,12,248,11,185,11,107,11,30,11,212,10,143,10,88,10,35,10,218,9,140,9, +80,9,27,9,220,8,156,8,93,8,28,8,220,7,163,7,113,7,63,7,0,7,179,6,101,6,24,6,197,5,110,5, +19,5,188,4,120,4,70,4,18,4,213,3,154,3,97,3,32,3,213,2,134,2,62,2,254,1,188,1,123,1,74,1, +32,1,236,0,176,0,122,0,70,0,5,0,174,255,79,255,254,254,184,254,111,254,34,254,219,253,160,253,114,253,70,253, +12,253,204,252,147,252,86,252,15,252,205,251,156,251,116,251,74,251,26,251,235,250,197,250,163,250,119,250,62,250,254,249, +191,249,138,249,95,249,53,249,11,249,224,248,186,248,148,248,98,248,42,248,0,248,220,247,173,247,129,247,102,247,75,247, +42,247,9,247,220,246,155,246,94,246,39,246,238,245,189,245,152,245,109,245,57,245,11,245,226,244,177,244,114,244,33,244, +197,243,105,243,10,243,174,242,107,242,65,242,40,242,31,242,15,242,217,241,141,241,70,241,250,240,162,240,90,240,51,240, +33,240,24,240,29,240,34,240,16,240,233,239,193,239,158,239,122,239,91,239,67,239,46,239,30,239,36,239,75,239,135,239, +194,239,244,239,34,240,79,240,120,240,159,240,199,240,243,240,57,241,165,241,29,242,125,242,197,242,3,243,69,243,150,243, +242,243,79,244,175,244,9,245,83,245,165,245,11,246,104,246,192,246,59,247,204,247,76,248,195,248,61,249,166,249,0,250, +100,250,209,250,65,251,179,251,19,252,93,252,177,252,37,253,169,253,44,254,161,254,249,254,52,255,104,255,161,255,216,255, +6,0,65,0,163,0,29,1,140,1,229,1,52,2,118,2,170,2,230,2,57,3,149,3,222,3,22,4,80,4,147,4, +221,4,41,5,118,5,187,5,250,5,46,6,87,6,123,6,160,6,201,6,4,7,91,7,182,7,0,8,59,8,100,8, +124,8,163,8,233,8,58,9,141,9,230,9,56,10,117,10,159,10,193,10,234,10,32,11,83,11,119,11,145,11,172,11, +205,11,243,11,20,12,47,12,72,12,91,12,106,12,122,12,122,12,94,12,78,12,98,12,124,12,134,12,148,12,163,12, +159,12,145,12,133,12,111,12,76,12,50,12,26,12,234,11,170,11,117,11,70,11,13,11,215,10,173,10,119,10,53,10, +1,10,205,9,128,9,53,9,255,8,191,8,110,8,51,8,12,8,208,7,128,7,60,7,15,7,234,6,185,6,116,6, +29,6,193,5,103,5,17,5,198,4,130,4,53,4,227,3,163,3,118,3,59,3,230,2,145,2,73,2,13,2,221,1, +176,1,118,1,59,1,15,1,227,0,179,0,144,0,111,0,60,0,3,0,207,255,156,255,106,255,61,255,19,255,235,254, +193,254,145,254,98,254,63,254,28,254,243,253,203,253,174,253,157,253,148,253,137,253,122,253,103,253,77,253,53,253,44,253, +38,253,24,253,11,253,253,252,239,252,237,252,244,252,229,252,200,252,180,252,156,252,119,252,98,252,93,252,77,252,59,252, +63,252,74,252,72,252,70,252,74,252,67,252,56,252,59,252,64,252,54,252,43,252,45,252,47,252,44,252,45,252,46,252, +42,252,38,252,30,252,14,252,5,252,4,252,251,251,238,251,238,251,250,251,12,252,34,252,54,252,62,252,64,252,75,252, +100,252,127,252,142,252,159,252,192,252,218,252,230,252,7,253,54,253,74,253,79,253,103,253,130,253,145,253,173,253,207,253, +224,253,245,253,38,254,94,254,138,254,176,254,225,254,27,255,77,255,110,255,143,255,189,255,234,255,15,0,56,0,100,0, +139,0,181,0,223,0,2,1,34,1,77,1,121,1,148,1,170,1,202,1,231,1,244,1,1,2,29,2,63,2,89,2, +117,2,153,2,188,2,214,2,236,2,0,3,19,3,33,3,41,3,40,3,33,3,36,3,52,3,57,3,46,3,50,3, +61,3,46,3,23,3,27,3,36,3,26,3,16,3,9,3,251,2,242,2,245,2,245,2,240,2,235,2,227,2,226,2, +231,2,224,2,204,2,199,2,199,2,180,2,161,2,158,2,147,2,122,2,109,2,113,2,101,2,78,2,76,2,90,2, +84,2,63,2,57,2,56,2,45,2,43,2,52,2,48,2,37,2,41,2,44,2,34,2,27,2,18,2,250,1,232,1, +231,1,222,1,196,1,176,1,165,1,148,1,127,1,115,1,108,1,86,1,50,1,14,1,251,0,0,1,5,1,239,0, +200,0,182,0,177,0,153,0,118,0,91,0,56,0,13,0,245,255,225,255,181,255,132,255,104,255,85,255,54,255,19,255, +239,254,193,254,146,254,112,254,84,254,51,254,23,254,6,254,241,253,213,253,196,253,176,253,132,253,88,253,58,253,25,253, +248,252,229,252,201,252,160,252,139,252,133,252,109,252,78,252,54,252,19,252,239,251,226,251,219,251,199,251,177,251,166,251, +159,251,157,251,155,251,145,251,130,251,127,251,136,251,137,251,120,251,105,251,110,251,115,251,103,251,94,251,101,251,100,251, +91,251,98,251,114,251,113,251,110,251,131,251,159,251,172,251,186,251,210,251,220,251,217,251,233,251,15,252,48,252,72,252, +93,252,114,252,136,252,159,252,179,252,201,252,229,252,252,252,20,253,57,253,96,253,123,253,143,253,163,253,191,253,238,253, +33,254,61,254,88,254,139,254,197,254,237,254,17,255,57,255,100,255,143,255,178,255,211,255,253,255,38,0,69,0,111,0, +163,0,200,0,230,0,16,1,54,1,79,1,117,1,168,1,212,1,252,1,41,2,80,2,120,2,173,2,224,2,3,3, +38,3,83,3,123,3,147,3,173,3,214,3,2,4,35,4,62,4,87,4,112,4,141,4,177,4,208,4,232,4,254,4, +18,5,38,5,59,5,79,5,93,5,104,5,123,5,150,5,173,5,185,5,195,5,203,5,204,5,206,5,209,5,202,5, +185,5,173,5,167,5,161,5,159,5,151,5,128,5,106,5,92,5,71,5,46,5,26,5,1,5,229,4,212,4,200,4, +181,4,156,4,126,4,89,4,62,4,43,4,14,4,231,3,199,3,165,3,123,3,79,3,38,3,255,2,218,2,179,2, +141,2,114,2,82,2,33,2,238,1,204,1,172,1,132,1,92,1,58,1,19,1,231,0,194,0,164,0,129,0,93,0, +64,0,28,0,232,255,184,255,147,255,96,255,40,255,8,255,241,254,200,254,152,254,117,254,78,254,27,254,244,253,218,253, +185,253,143,253,114,253,92,253,59,253,21,253,245,252,212,252,176,252,145,252,111,252,73,252,43,252,20,252,240,251,201,251, +176,251,152,251,114,251,72,251,38,251,11,251,244,250,224,250,202,250,184,250,172,250,164,250,150,250,123,250,98,250,86,250, +80,250,71,250,67,250,65,250,55,250,48,250,47,250,37,250,29,250,34,250,34,250,17,250,10,250,19,250,25,250,28,250, +37,250,47,250,58,250,75,250,96,250,116,250,134,250,151,250,170,250,195,250,224,250,1,251,34,251,63,251,94,251,133,251, +162,251,180,251,214,251,3,252,34,252,61,252,107,252,154,252,187,252,225,252,22,253,69,253,108,253,157,253,214,253,14,254, +72,254,131,254,184,254,240,254,47,255,100,255,155,255,225,255,32,0,79,0,136,0,198,0,239,0,30,1,111,1,186,1, +240,1,51,2,131,2,183,2,215,2,6,3,65,3,123,3,182,3,246,3,68,4,150,4,214,4,5,5,56,5,112,5, +169,5,231,5,37,6,93,6,144,6,194,6,245,6,47,7,104,7,149,7,193,7,246,7,38,8,71,8,97,8,118,8, +145,8,196,8,4,9,56,9,89,9,111,9,127,9,147,9,176,9,210,9,241,9,11,10,30,10,43,10,54,10,59,10, +47,10,28,10,23,10,33,10,42,10,43,10,34,10,8,10,229,9,205,9,193,9,177,9,151,9,119,9,85,9,59,9, +33,9,255,8,225,8,207,8,183,8,139,8,86,8,27,8,219,7,161,7,107,7,41,7,234,6,185,6,129,6,51,6, +230,5,168,5,97,5,11,5,193,4,141,4,82,4,255,3,169,3,90,3,3,3,168,2,98,2,37,2,217,1,130,1, +48,1,226,0,146,0,60,0,222,255,123,255,27,255,195,254,115,254,30,254,189,253,98,253,20,253,196,252,104,252,11,252, +170,251,74,251,246,250,172,250,98,250,32,250,229,249,155,249,64,249,233,248,150,248,64,248,233,247,152,247,78,247,13,247, +206,246,129,246,51,246,244,245,183,245,109,245,32,245,218,244,144,244,72,244,21,244,239,243,195,243,145,243,94,243,37,243, +235,242,180,242,120,242,61,242,22,242,251,241,221,241,191,241,160,241,113,241,60,241,15,241,227,240,184,240,161,240,160,240, +156,240,140,240,124,240,112,240,98,240,75,240,45,240,22,240,18,240,46,240,90,240,119,240,128,240,143,240,168,240,189,240, +205,240,216,240,213,240,214,240,242,240,32,241,90,241,169,241,247,241,47,242,106,242,174,242,214,242,229,242,14,243,83,243, +153,243,238,243,97,244,207,244,37,245,122,245,211,245,35,246,110,246,189,246,1,247,70,247,178,247,57,248,163,248,240,248, +80,249,195,249,41,250,128,250,216,250,50,251,151,251,16,252,137,252,240,252,89,253,209,253,69,254,172,254,21,255,129,255, +226,255,71,0,191,0,51,1,142,1,227,1,62,2,148,2,236,2,80,3,176,3,3,4,95,4,201,4,49,5,143,5, +231,5,58,6,140,6,218,6,31,7,106,7,197,7,33,8,114,8,190,8,14,9,94,9,163,9,204,9,227,9,9,10, +70,10,128,10,179,10,237,10,40,11,86,11,120,11,155,11,191,11,218,11,240,11,18,12,57,12,88,12,122,12,169,12, +204,12,214,12,221,12,235,12,240,12,230,12,215,12,199,12,189,12,194,12,205,12,198,12,175,12,154,12,134,12,104,12, +70,12,36,12,255,11,230,11,223,11,205,11,159,11,115,11,94,11,74,11,45,11,11,11,221,10,160,10,105,10,61,10, +13,10,214,9,150,9,81,9,20,9,225,8,166,8,100,8,47,8,8,8,214,7,151,7,93,7,39,7,228,6,152,6, +89,6,35,6,238,5,192,5,153,5,102,5,37,5,237,4,186,4,114,4,21,4,191,3,122,3,50,3,228,2,168,2, +124,2,66,2,250,1,192,1,143,1,84,1,24,1,223,0,152,0,76,0,24,0,236,255,181,255,135,255,99,255,42,255, +229,254,182,254,144,254,80,254,3,254,196,253,150,253,101,253,41,253,228,252,164,252,120,252,88,252,49,252,1,252,213,251, +180,251,148,251,112,251,74,251,30,251,236,250,193,250,158,250,126,250,99,250,83,250,66,250,40,250,15,250,253,249,228,249, +191,249,159,249,132,249,99,249,67,249,51,249,42,249,31,249,30,249,41,249,48,249,53,249,63,249,67,249,62,249,61,249, +67,249,76,249,86,249,97,249,118,249,152,249,176,249,181,249,193,249,222,249,242,249,254,249,18,250,43,250,67,250,106,250, +153,250,181,250,202,250,245,250,46,251,102,251,162,251,217,251,3,252,45,252,97,252,151,252,204,252,8,253,65,253,113,253, +173,253,251,253,55,254,87,254,127,254,188,254,251,254,55,255,123,255,181,255,219,255,6,0,78,0,164,0,237,0,33,1, +83,1,148,1,220,1,25,2,77,2,125,2,171,2,224,2,41,3,113,3,158,3,187,3,228,3,26,4,69,4,98,4, +124,4,153,4,183,4,225,4,25,5,68,5,84,5,99,5,139,5,186,5,211,5,224,5,244,5,17,6,46,6,78,6, +103,6,105,6,98,6,107,6,126,6,139,6,151,6,157,6,147,6,137,6,144,6,148,6,133,6,118,6,114,6,114,6, +120,6,123,6,109,6,86,6,79,6,89,6,96,6,88,6,67,6,44,6,20,6,255,5,242,5,226,5,194,5,164,5, +161,5,166,5,144,5,98,5,55,5,20,5,247,4,229,4,217,4,197,4,162,4,127,4,108,4,100,4,82,4,44,4, +250,3,200,3,159,3,134,3,120,3,94,3,45,3,250,2,213,2,175,2,125,2,73,2,25,2,232,1,184,1,140,1, +99,1,61,1,20,1,226,0,175,0,139,0,107,0,64,0,9,0,210,255,156,255,103,255,54,255,9,255,227,254,191,254, +150,254,106,254,58,254,6,254,215,253,177,253,131,253,75,253,33,253,6,253,218,252,158,252,111,252,85,252,55,252,24,252, +6,252,247,251,218,251,179,251,139,251,98,251,59,251,23,251,241,250,202,250,182,250,174,250,152,250,114,250,83,250,58,250, +28,250,2,250,238,249,211,249,186,249,176,249,165,249,142,249,123,249,114,249,104,249,93,249,86,249,74,249,55,249,35,249, +20,249,13,249,12,249,2,249,245,248,251,248,6,249,249,248,224,248,224,248,237,248,237,248,236,248,246,248,252,248,255,248, +18,249,44,249,65,249,84,249,102,249,116,249,137,249,171,249,201,249,222,249,242,249,10,250,41,250,80,250,118,250,145,250, +173,250,216,250,10,251,55,251,95,251,135,251,175,251,217,251,12,252,71,252,117,252,149,252,195,252,8,253,72,253,117,253, +166,253,223,253,20,254,77,254,146,254,209,254,255,254,44,255,99,255,149,255,188,255,230,255,31,0,98,0,164,0,223,0, +15,1,55,1,101,1,161,1,215,1,252,1,31,2,74,2,121,2,172,2,231,2,31,3,75,3,118,3,165,3,206,3, +245,3,32,4,66,4,82,4,101,4,137,4,175,4,206,4,232,4,3,5,35,5,77,5,117,5,138,5,147,5,159,5, +171,5,186,5,217,5,248,5,2,6,4,6,29,6,62,6,76,6,85,6,102,6,110,6,107,6,107,6,99,6,76,6, +66,6,81,6,88,6,83,6,96,6,110,6,94,6,73,6,81,6,93,6,78,6,54,6,39,6,33,6,40,6,51,6, +41,6,15,6,252,5,243,5,236,5,224,5,202,5,167,5,134,5,121,5,126,5,122,5,87,5,36,5,3,5,244,4, +224,4,197,4,166,4,129,4,102,4,101,4,91,4,46,4,255,3,233,3,213,3,175,3,134,3,96,3,55,3,22,3, +249,2,207,2,150,2,95,2,47,2,2,2,218,1,183,1,142,1,86,1,29,1,249,0,230,0,194,0,135,0,78,0, +34,0,244,255,199,255,160,255,114,255,61,255,28,255,10,255,230,254,178,254,124,254,63,254,5,254,224,253,195,253,147,253, +95,253,66,253,48,253,15,253,228,252,193,252,165,252,143,252,128,252,119,252,106,252,90,252,76,252,64,252,53,252,43,252, +28,252,12,252,8,252,14,252,11,252,253,251,250,251,7,252,23,252,36,252,45,252,51,252,56,252,61,252,62,252,70,252, +98,252,131,252,149,252,166,252,199,252,238,252,17,253,48,253,68,253,79,253,103,253,146,253,179,253,184,253,178,253,187,253, +214,253,250,253,30,254,57,254,71,254,83,254,106,254,135,254,158,254,171,254,177,254,180,254,193,254,220,254,244,254,250,254, +0,255,26,255,55,255,70,255,75,255,75,255,64,255,49,255,40,255,39,255,34,255,19,255,13,255,26,255,37,255,24,255, +4,255,2,255,4,255,3,255,9,255,5,255,236,254,225,254,241,254,250,254,237,254,222,254,200,254,171,254,172,254,201,254, +202,254,162,254,131,254,130,254,134,254,123,254,99,254,77,254,65,254,56,254,41,254,26,254,13,254,2,254,3,254,19,254, +28,254,18,254,1,254,240,253,219,253,204,253,187,253,148,253,106,253,95,253,100,253,87,253,60,253,38,253,16,253,248,252, +231,252,213,252,188,252,167,252,156,252,140,252,113,252,88,252,67,252,44,252,34,252,42,252,40,252,12,252,235,251,216,251, +200,251,184,251,172,251,159,251,143,251,138,251,139,251,124,251,99,251,82,251,77,251,87,251,115,251,134,251,124,251,112,251, +125,251,143,251,147,251,149,251,160,251,172,251,189,251,219,251,251,251,12,252,22,252,48,252,88,252,122,252,139,252,148,252, +160,252,183,252,216,252,255,252,32,253,63,253,105,253,161,253,217,253,1,254,21,254,40,254,79,254,124,254,154,254,181,254, +224,254,18,255,62,255,108,255,159,255,206,255,246,255,14,0,20,0,32,0,68,0,103,0,124,0,157,0,211,0,1,1, +28,1,56,1,93,1,128,1,150,1,165,1,182,1,207,1,230,1,247,1,13,2,46,2,81,2,108,2,125,2,138,2, +151,2,156,2,145,2,137,2,150,2,172,2,194,2,225,2,254,2,9,3,14,3,25,3,34,3,41,3,57,3,66,3, +58,3,54,3,67,3,84,3,96,3,107,3,114,3,118,3,127,3,135,3,132,3,120,3,105,3,97,3,114,3,143,3, +147,3,126,3,117,3,129,3,138,3,138,3,134,3,125,3,118,3,128,3,140,3,129,3,107,3,97,3,98,3,90,3, +76,3,66,3,47,3,9,3,236,2,231,2,227,2,204,2,181,2,165,2,142,2,112,2,95,2,76,2,38,2,4,2, +249,1,231,1,184,1,137,1,111,1,78,1,30,1,254,0,236,0,198,0,145,0,111,0,86,0,43,0,252,255,212,255, +172,255,140,255,122,255,88,255,27,255,236,254,219,254,201,254,178,254,159,254,131,254,93,254,70,254,61,254,39,254,6,254, +239,253,224,253,209,253,193,253,170,253,145,253,135,253,133,253,124,253,117,253,122,253,127,253,124,253,118,253,117,253,118,253, +122,253,131,253,144,253,161,253,176,253,186,253,196,253,211,253,234,253,6,254,31,254,45,254,54,254,67,254,88,254,117,254, +143,254,155,254,163,254,184,254,211,254,237,254,14,255,47,255,68,255,90,255,133,255,180,255,208,255,224,255,247,255,24,0, +58,0,78,0,89,0,116,0,159,0,195,0,219,0,246,0,14,1,30,1,54,1,86,1,106,1,124,1,157,1,187,1, +206,1,235,1,23,2,56,2,79,2,108,2,141,2,172,2,203,2,231,2,254,2,22,3,51,3,74,3,95,3,121,3, +147,3,164,3,182,3,215,3,251,3,19,4,37,4,61,4,87,4,106,4,118,4,129,4,143,4,166,4,199,4,230,4, +248,4,6,5,27,5,47,5,54,5,53,5,61,5,72,5,73,5,68,5,74,5,80,5,79,5,79,5,81,5,69,5, +51,5,48,5,42,5,14,5,244,4,240,4,243,4,235,4,214,4,179,4,142,4,118,4,96,4,63,4,36,4,20,4, +248,3,208,3,180,3,156,3,116,3,69,3,25,3,230,2,169,2,115,2,76,2,40,2,254,1,216,1,183,1,140,1, +82,1,32,1,253,0,204,0,136,0,84,0,55,0,18,0,225,255,184,255,147,255,104,255,60,255,9,255,205,254,153,254, +116,254,76,254,29,254,244,253,204,253,160,253,119,253,82,253,42,253,3,253,224,252,188,252,148,252,117,252,95,252,73,252, +40,252,255,251,222,251,203,251,181,251,140,251,93,251,61,251,43,251,23,251,246,250,211,250,188,250,171,250,143,250,111,250, +89,250,71,250,47,250,29,250,23,250,14,250,255,249,244,249,236,249,222,249,210,249,205,249,194,249,178,249,173,249,183,249, +190,249,181,249,175,249,185,249,196,249,194,249,193,249,206,249,222,249,230,249,239,249,250,249,8,250,28,250,54,250,79,250, +105,250,140,250,178,250,216,250,253,250,30,251,59,251,92,251,131,251,170,251,215,251,14,252,58,252,85,252,125,252,196,252, +15,253,71,253,130,253,203,253,8,254,56,254,118,254,179,254,215,254,4,255,96,255,201,255,28,0,106,0,188,0,3,1, +73,1,151,1,213,1,1,2,57,2,130,2,202,2,23,3,96,3,153,3,217,3,57,4,154,4,220,4,16,5,62,5, +98,5,146,5,223,5,43,6,90,6,129,6,183,6,247,6,54,7,102,7,131,7,147,7,166,7,202,7,2,8,57,8, +78,8,82,8,107,8,146,8,167,8,164,8,160,8,169,8,194,8,224,8,244,8,248,8,240,8,223,8,210,8,209,8, +205,8,183,8,162,8,160,8,164,8,158,8,139,8,114,8,88,8,71,8,58,8,31,8,245,7,203,7,170,7,144,7, +129,7,121,7,105,7,65,7,15,7,232,6,195,6,145,6,88,6,39,6,253,5,219,5,192,5,153,5,98,5,55,5, +22,5,227,4,156,4,87,4,22,4,211,3,157,3,121,3,79,3,22,3,221,2,168,2,116,2,57,2,245,1,173,1, +112,1,64,1,14,1,200,0,117,0,46,0,250,255,201,255,139,255,73,255,13,255,211,254,144,254,70,254,2,254,205,253, +157,253,103,253,49,253,1,253,212,252,163,252,104,252,36,252,228,251,178,251,130,251,74,251,28,251,252,250,214,250,166,250, +120,250,76,250,31,250,252,249,220,249,172,249,115,249,74,249,38,249,247,248,201,248,163,248,124,248,83,248,43,248,2,248, +215,247,165,247,92,247,14,247,215,246,175,246,128,246,82,246,49,246,22,246,2,246,244,245,211,245,141,245,60,245,247,244, +182,244,105,244,23,244,209,243,142,243,72,243,39,243,74,243,114,243,83,243,253,242,172,242,95,242,9,242,184,241,103,241, +29,241,15,241,74,241,135,241,153,241,151,241,139,241,106,241,67,241,32,241,232,240,158,240,112,240,121,240,171,240,241,240, +57,241,113,241,165,241,228,241,18,242,11,242,236,241,239,241,36,242,120,242,226,242,85,243,188,243,28,244,138,244,246,244, +67,245,125,245,194,245,27,246,135,246,4,247,124,247,215,247,44,248,162,248,53,249,190,249,39,250,128,250,226,250,90,251, +228,251,107,252,227,252,88,253,224,253,112,254,234,254,65,255,136,255,225,255,99,0,1,1,139,1,234,1,60,2,158,2, +254,2,69,3,132,3,195,3,10,4,113,4,241,4,79,5,121,5,160,5,228,5,54,6,151,6,3,7,76,7,103,7, +141,7,222,7,42,8,85,8,126,8,184,8,238,8,25,9,64,9,88,9,96,9,123,9,192,9,10,10,57,10,89,10, +108,10,104,10,112,10,158,10,209,10,238,10,22,11,88,11,150,11,192,11,214,11,218,11,227,11,8,12,47,12,61,12, +65,12,75,12,84,12,100,12,133,12,162,12,169,12,157,12,136,12,122,12,121,12,117,12,99,12,92,12,109,12,134,12, +153,12,150,12,115,12,73,12,51,12,39,12,22,12,6,12,234,11,174,11,109,11,78,11,59,11,16,11,208,10,139,10, +67,10,7,10,220,9,159,9,65,9,233,8,180,8,140,8,92,8,27,8,186,7,69,7,236,6,190,6,141,6,58,6, +223,5,144,5,65,5,240,4,156,4,52,4,184,3,80,3,6,3,181,2,79,2,235,1,144,1,54,1,233,0,170,0, +96,0,0,0,161,255,83,255,16,255,206,254,129,254,44,254,232,253,195,253,162,253,103,253,26,253,212,252,156,252,103,252, +46,252,245,251,190,251,136,251,91,251,61,251,37,251,11,251,243,250,222,250,210,250,209,250,202,250,173,250,146,250,148,250, +160,250,162,250,168,250,183,250,194,250,212,250,236,250,243,250,228,250,225,250,246,250,11,251,14,251,6,251,7,251,27,251, +59,251,95,251,129,251,153,251,170,251,197,251,227,251,241,251,255,251,33,252,67,252,89,252,119,252,159,252,184,252,195,252, +217,252,252,252,29,253,55,253,70,253,79,253,101,253,135,253,161,253,178,253,204,253,238,253,7,254,31,254,69,254,110,254, +136,254,161,254,206,254,3,255,42,255,71,255,104,255,136,255,169,255,216,255,14,0,51,0,79,0,124,0,175,0,204,0, +230,0,20,1,66,1,102,1,149,1,208,1,0,2,46,2,103,2,159,2,208,2,10,3,66,3,102,3,132,3,175,3, +222,3,7,4,47,4,86,4,124,4,158,4,189,4,219,4,246,4,14,5,38,5,65,5,88,5,100,5,108,5,116,5, +130,5,150,5,167,5,170,5,169,5,176,5,181,5,181,5,190,5,203,5,194,5,165,5,142,5,130,5,107,5,72,5, +41,5,13,5,241,4,220,4,199,4,164,4,138,4,132,4,113,4,65,4,24,4,1,4,224,3,181,3,148,3,120,3, +96,3,79,3,58,3,27,3,2,3,235,2,195,2,155,2,129,2,92,2,39,2,4,2,246,1,221,1,185,1,160,1, +141,1,118,1,101,1,86,1,51,1,8,1,243,0,237,0,218,0,191,0,176,0,163,0,139,0,118,0,103,0,81,0, +51,0,27,0,255,255,223,255,200,255,182,255,144,255,97,255,71,255,67,255,58,255,30,255,248,254,214,254,197,254,192,254, +173,254,132,254,93,254,73,254,60,254,38,254,11,254,244,253,220,253,195,253,172,253,154,253,135,253,99,253,50,253,12,253, +244,252,211,252,173,252,147,252,129,252,103,252,76,252,53,252,24,252,254,251,237,251,214,251,183,251,162,251,154,251,143,251, +124,251,100,251,70,251,43,251,25,251,8,251,244,250,225,250,208,250,189,250,166,250,143,250,130,250,124,250,104,250,71,250, +50,250,56,250,68,250,65,250,52,250,46,250,50,250,55,250,58,250,57,250,45,250,35,250,45,250,55,250,47,250,41,250, +52,250,62,250,64,250,74,250,78,250,65,250,58,250,71,250,84,250,88,250,103,250,131,250,163,250,193,250,221,250,243,250, +7,251,23,251,39,251,65,251,103,251,137,251,158,251,170,251,188,251,221,251,2,252,25,252,34,252,53,252,94,252,138,252, +169,252,196,252,231,252,12,253,55,253,109,253,161,253,194,253,221,253,8,254,64,254,116,254,167,254,221,254,17,255,58,255, +95,255,138,255,179,255,211,255,244,255,34,0,81,0,120,0,158,0,197,0,236,0,28,1,81,1,123,1,158,1,204,1, +252,1,31,2,64,2,105,2,147,2,188,2,232,2,17,3,50,3,74,3,90,3,116,3,160,3,197,3,207,3,212,3, +237,3,7,4,13,4,17,4,39,4,65,4,83,4,103,4,131,4,151,4,158,4,171,4,189,4,197,4,198,4,198,4, +197,4,201,4,216,4,231,4,233,4,225,4,216,4,211,4,209,4,199,4,179,4,156,4,139,4,134,4,135,4,125,4, +104,4,95,4,100,4,93,4,72,4,51,4,24,4,250,3,236,3,235,3,226,3,203,3,172,3,143,3,125,3,105,3, +66,3,19,3,236,2,203,2,178,2,169,2,151,2,104,2,56,2,30,2,12,2,235,1,188,1,142,1,107,1,83,1, +62,1,40,1,2,1,206,0,167,0,151,0,125,0,69,0,13,0,230,255,191,255,156,255,140,255,117,255,71,255,33,255, +16,255,249,254,210,254,171,254,128,254,84,254,63,254,64,254,51,254,24,254,6,254,243,253,216,253,199,253,190,253,167,253, +143,253,148,253,165,253,163,253,142,253,120,253,112,253,120,253,126,253,119,253,115,253,127,253,161,253,212,253,253,253,0,254, +250,253,10,254,32,254,41,254,44,254,48,254,59,254,97,254,163,254,227,254,12,255,40,255,72,255,107,255,136,255,151,255, +155,255,151,255,157,255,205,255,30,0,95,0,128,0,155,0,191,0,232,0,12,1,24,1,10,1,13,1,47,1,85,1, +116,1,154,1,181,1,188,1,203,1,235,1,2,2,3,2,251,1,245,1,0,2,27,2,43,2,37,2,25,2,18,2, +19,2,27,2,26,2,4,2,239,1,245,1,5,2,253,1,231,1,220,1,209,1,181,1,150,1,130,1,108,1,78,1, +58,1,49,1,30,1,255,0,229,0,206,0,170,0,131,0,105,0,81,0,45,0,2,0,218,255,178,255,147,255,125,255, +87,255,18,255,209,254,171,254,138,254,90,254,36,254,240,253,200,253,174,253,132,253,57,253,235,252,181,252,138,252,89,252, +31,252,221,251,150,251,82,251,28,251,250,250,221,250,160,250,75,250,8,250,217,249,156,249,82,249,10,249,192,248,133,248, +109,248,98,248,67,248,10,248,197,247,140,247,113,247,87,247,28,247,208,246,150,246,123,246,120,246,116,246,82,246,38,246, +26,246,38,246,33,246,5,246,224,245,185,245,157,245,151,245,162,245,170,245,173,245,186,245,219,245,254,245,16,246,18,246, +21,246,37,246,68,246,101,246,123,246,136,246,156,246,203,246,15,247,72,247,100,247,132,247,197,247,19,248,71,248,99,248, +123,248,156,248,212,248,38,249,115,249,166,249,204,249,6,250,96,250,206,250,45,251,98,251,124,251,165,251,246,251,85,252, +165,252,234,252,55,253,141,253,236,253,85,254,172,254,219,254,251,254,61,255,163,255,12,0,97,0,166,0,234,0,64,1, +171,1,23,2,102,2,153,2,210,2,36,3,124,3,199,3,12,4,85,4,170,4,16,5,114,5,185,5,228,5,6,6, +53,6,120,6,194,6,7,7,77,7,143,7,196,7,250,7,53,8,90,8,106,8,146,8,208,8,1,9,42,9,89,9, +116,9,129,9,172,9,244,9,39,10,50,10,41,10,41,10,62,10,94,10,119,10,135,10,149,10,168,10,196,10,216,10, +211,10,190,10,170,10,160,10,172,10,196,10,189,10,156,10,143,10,147,10,134,10,112,10,103,10,91,10,66,10,36,10, +2,10,217,9,185,9,165,9,136,9,93,9,48,9,4,9,210,8,153,8,94,8,36,8,247,7,210,7,166,7,107,7, +46,7,244,6,186,6,130,6,75,6,15,6,205,5,142,5,79,5,8,5,192,4,123,4,57,4,248,3,179,3,111,3, +54,3,250,2,167,2,76,2,7,2,219,1,171,1,96,1,255,0,171,0,124,0,81,0,9,0,183,255,110,255,52,255, +15,255,241,254,172,254,68,254,247,253,209,253,169,253,108,253,39,253,232,252,180,252,138,252,104,252,68,252,12,252,196,251, +141,251,107,251,69,251,30,251,0,251,217,250,174,250,156,250,138,250,89,250,37,250,11,250,248,249,225,249,209,249,190,249, +159,249,137,249,130,249,117,249,84,249,48,249,31,249,40,249,46,249,24,249,247,248,234,248,241,248,0,249,11,249,3,249, +235,248,223,248,240,248,11,249,30,249,39,249,45,249,59,249,87,249,115,249,130,249,132,249,136,249,155,249,194,249,244,249, +29,250,61,250,100,250,147,250,193,250,246,250,44,251,79,251,111,251,180,251,10,252,71,252,119,252,184,252,1,253,72,253, +146,253,213,253,14,254,82,254,163,254,237,254,48,255,126,255,212,255,32,0,94,0,159,0,239,0,62,1,134,1,221,1, +56,2,125,2,188,2,12,3,81,3,135,3,209,3,34,4,89,4,144,4,224,4,39,5,86,5,140,5,203,5,249,5, +22,6,52,6,90,6,139,6,186,6,223,6,10,7,64,7,109,7,135,7,157,7,179,7,195,7,210,7,230,7,255,7, +21,8,38,8,55,8,74,8,86,8,87,8,84,8,88,8,95,8,96,8,92,8,94,8,105,8,109,8,101,8,90,8, +80,8,71,8,65,8,55,8,38,8,20,8,9,8,1,8,244,7,221,7,194,7,178,7,171,7,151,7,114,7,84,7, +64,7,35,7,253,6,221,6,198,6,169,6,123,6,70,6,28,6,255,5,224,5,193,5,159,5,114,5,68,5,34,5, +255,4,202,4,139,4,78,4,33,4,7,4,227,3,158,3,89,3,55,3,32,3,239,2,162,2,80,2,12,2,221,1, +179,1,115,1,38,1,229,0,186,0,147,0,93,0,23,0,208,255,139,255,78,255,30,255,239,254,176,254,106,254,43,254, +241,253,191,253,141,253,67,253,231,252,161,252,121,252,84,252,26,252,203,251,126,251,82,251,69,251,45,251,236,250,150,250, +84,250,48,250,21,250,242,249,197,249,141,249,87,249,62,249,59,249,28,249,210,248,144,248,115,248,104,248,85,248,55,248, +13,248,231,247,212,247,206,247,195,247,174,247,140,247,98,247,71,247,71,247,80,247,67,247,36,247,26,247,48,247,66,247, +55,247,34,247,21,247,15,247,21,247,36,247,46,247,52,247,62,247,72,247,81,247,103,247,136,247,160,247,169,247,183,247, +214,247,0,248,35,248,60,248,84,248,111,248,146,248,199,248,2,249,57,249,105,249,154,249,207,249,13,250,74,250,117,250, +156,250,210,250,14,251,74,251,139,251,211,251,29,252,105,252,174,252,234,252,46,253,118,253,169,253,211,253,21,254,108,254, +197,254,19,255,86,255,153,255,230,255,51,0,120,0,186,0,251,0,54,1,119,1,194,1,11,2,83,2,161,2,234,2, +41,3,102,3,164,3,223,3,26,4,82,4,136,4,196,4,9,5,83,5,154,5,209,5,251,5,47,6,116,6,182,6, +241,6,49,7,109,7,158,7,209,7,6,8,49,8,93,8,150,8,205,8,254,8,56,9,119,9,167,9,203,9,245,9, +27,10,51,10,73,10,101,10,132,10,168,10,215,10,2,11,38,11,87,11,135,11,156,11,157,11,155,11,148,11,145,11, +154,11,160,11,160,11,176,11,195,11,191,11,175,11,162,11,140,11,103,11,69,11,42,11,11,11,227,10,187,10,160,10, +135,10,96,10,55,10,23,10,237,9,180,9,122,9,57,9,238,8,182,8,143,8,83,8,8,8,198,7,126,7,44,7, +231,6,170,6,91,6,6,6,193,5,136,5,88,5,38,5,225,4,137,4,49,4,226,3,163,3,109,3,38,3,201,2, +118,2,59,2,8,2,209,1,139,1,46,1,210,0,146,0,89,0,7,0,170,255,96,255,33,255,224,254,163,254,105,254, +34,254,207,253,128,253,53,253,229,252,154,252,86,252,9,252,174,251,87,251,18,251,208,250,127,250,38,250,213,249,137,249, +54,249,231,248,161,248,75,248,230,247,144,247,79,247,5,247,175,246,89,246,15,246,213,245,156,245,76,245,243,244,172,244, +107,244,21,244,184,243,102,243,37,243,238,242,180,242,110,242,47,242,251,241,185,241,107,241,34,241,216,240,140,240,73,240, +11,240,204,239,161,239,135,239,94,239,34,239,224,238,160,238,105,238,54,238,247,237,185,237,150,237,142,237,144,237,149,237, +143,237,125,237,118,237,114,237,78,237,20,237,248,236,1,237,13,237,21,237,39,237,72,237,112,237,161,237,218,237,9,238, +40,238,75,238,132,238,201,238,14,239,85,239,158,239,237,239,75,240,185,240,39,241,137,241,226,241,61,242,167,242,30,243, +149,243,1,244,96,244,198,244,76,245,229,245,111,246,222,246,79,247,217,247,117,248,8,249,133,249,250,249,126,250,9,251, +149,251,31,252,159,252,23,253,150,253,31,254,163,254,36,255,165,255,23,0,131,0,244,0,98,1,202,1,64,2,187,2, +40,3,152,3,24,4,141,4,228,4,45,5,128,5,230,5,80,6,164,6,238,6,76,7,182,7,15,8,85,8,149,8, +216,8,33,9,105,9,163,9,205,9,249,9,55,10,124,10,182,10,239,10,55,11,126,11,176,11,215,11,254,11,34,12, +80,12,149,12,209,12,244,12,30,13,89,13,130,13,151,13,182,13,221,13,250,13,13,14,29,14,45,14,70,14,110,14, +151,14,172,14,184,14,212,14,252,14,23,15,29,15,26,15,23,15,36,15,65,15,81,15,66,15,57,15,70,15,77,15, +69,15,63,15,54,15,23,15,239,14,213,14,196,14,171,14,132,14,88,14,57,14,36,14,17,14,244,13,197,13,135,13, +78,13,39,13,255,12,196,12,121,12,49,12,250,11,210,11,165,11,100,11,19,11,198,10,131,10,57,10,216,9,112,9, +26,9,213,8,146,8,78,8,0,8,169,7,83,7,254,6,164,6,76,6,244,5,150,5,66,5,10,5,215,4,146,4, +61,4,226,3,142,3,76,3,11,3,178,2,79,2,250,1,182,1,130,1,83,1,15,1,185,0,108,0,53,0,4,0, +199,255,122,255,52,255,10,255,235,254,190,254,137,254,84,254,30,254,237,253,187,253,120,253,56,253,15,253,224,252,157,252, +104,252,73,252,26,252,208,251,134,251,71,251,14,251,212,250,148,250,80,250,14,250,209,249,153,249,97,249,27,249,204,248, +132,248,64,248,242,247,156,247,77,247,8,247,197,246,127,246,48,246,214,245,121,245,39,245,228,244,164,244,88,244,4,244, +186,243,132,243,72,243,243,242,163,242,115,242,76,242,29,242,255,241,248,241,232,241,204,241,184,241,165,241,151,241,154,241, +156,241,137,241,129,241,156,241,200,241,241,241,23,242,53,242,86,242,141,242,210,242,9,243,45,243,91,243,178,243,36,244, +139,244,232,244,83,245,191,245,33,246,137,246,241,246,68,247,159,247,25,248,145,248,250,248,111,249,237,249,90,250,190,250, +29,251,113,251,203,251,54,252,159,252,253,252,95,253,196,253,41,254,150,254,6,255,106,255,193,255,4,0,51,0,108,0, +198,0,38,1,103,1,145,1,201,1,22,2,98,2,149,2,174,2,186,2,201,2,236,2,41,3,103,3,129,3,126,3, +145,3,210,3,23,4,51,4,56,4,73,4,107,4,147,4,179,4,200,4,217,4,235,4,250,4,12,5,47,5,83,5, +90,5,79,5,89,5,135,5,188,5,214,5,218,5,233,5,8,6,38,6,75,6,122,6,157,6,191,6,245,6,39,7, +61,7,85,7,131,7,181,7,228,7,16,8,48,8,78,8,114,8,137,8,144,8,163,8,193,8,214,8,239,8,20,9, +49,9,71,9,100,9,126,9,148,9,177,9,209,9,224,9,218,9,201,9,189,9,201,9,231,9,250,9,241,9,218,9, +205,9,199,9,177,9,133,9,89,9,52,9,16,9,246,8,233,8,203,8,148,8,100,8,71,8,36,8,246,7,206,7, +168,7,116,7,64,7,30,7,5,7,219,6,161,6,98,6,34,6,233,5,186,5,139,5,82,5,32,5,0,5,229,4, +188,4,130,4,61,4,0,4,209,3,167,3,130,3,110,3,101,3,86,3,60,3,29,3,0,3,234,2,210,2,183,2, +154,2,113,2,66,2,46,2,54,2,47,2,15,2,245,1,230,1,206,1,174,1,140,1,102,1,70,1,54,1,51,1, +51,1,35,1,247,0,198,0,172,0,161,0,144,0,114,0,78,0,47,0,23,0,247,255,201,255,149,255,100,255,53,255, +11,255,231,254,194,254,149,254,92,254,32,254,244,253,221,253,191,253,140,253,75,253,12,253,227,252,209,252,182,252,131,252, +83,252,51,252,17,252,234,251,195,251,145,251,81,251,24,251,241,250,206,250,159,250,108,250,71,250,40,250,250,249,194,249, +148,249,103,249,41,249,227,248,164,248,115,248,79,248,46,248,7,248,224,247,189,247,150,247,98,247,29,247,205,246,123,246, +39,246,195,245,87,245,2,245,199,244,147,244,98,244,44,244,227,243,140,243,52,243,204,242,71,242,194,241,107,241,72,241, +64,241,52,241,25,241,243,240,203,240,164,240,111,240,28,240,187,239,98,239,31,239,250,238,243,238,252,238,13,239,33,239, +49,239,58,239,69,239,64,239,40,239,35,239,71,239,125,239,191,239,28,240,126,240,204,240,21,241,102,241,173,241,232,241, +55,242,161,242,17,243,110,243,190,243,28,244,148,244,25,245,147,245,242,245,68,246,188,246,100,247,2,248,122,248,236,248, +103,249,233,249,130,250,31,251,146,251,226,251,70,252,210,252,126,253,52,254,202,254,49,255,142,255,6,0,144,0,10,1, +90,1,148,1,244,1,148,2,61,3,184,3,11,4,81,4,166,4,31,5,179,5,45,6,115,6,173,6,13,7,139,7, +251,7,69,8,126,8,197,8,36,9,131,9,195,9,228,9,6,10,73,10,169,10,5,11,65,11,94,11,115,11,146,11, +196,11,2,12,54,12,96,12,160,12,254,12,85,13,132,13,137,13,120,13,122,13,167,13,229,13,13,14,19,14,6,14, +10,14,58,14,119,14,138,14,114,14,93,14,100,14,127,14,127,14,72,14,7,14,253,13,38,14,85,14,109,14,92,14, +42,14,9,14,9,14,4,14,231,13,186,13,121,13,55,13,20,13,248,12,183,12,100,12,37,12,254,11,228,11,192,11, +118,11,8,11,157,10,81,10,32,10,234,9,148,9,41,9,208,8,141,8,75,8,254,7,161,7,60,7,239,6,186,6, +103,6,222,5,73,5,215,4,134,4,60,4,221,3,93,3,210,2,106,2,41,2,222,1,109,1,240,0,141,0,74,0, +14,0,187,255,72,255,209,254,121,254,70,254,28,254,222,253,128,253,24,253,202,252,156,252,117,252,52,252,212,251,117,251, +59,251,32,251,254,250,190,250,104,250,39,250,32,250,53,250,38,250,239,249,187,249,157,249,150,249,161,249,158,249,121,249, +92,249,92,249,95,249,93,249,99,249,91,249,69,249,71,249,90,249,85,249,54,249,33,249,37,249,57,249,82,249,101,249, +115,249,135,249,163,249,197,249,230,249,245,249,251,249,19,250,62,250,100,250,121,250,131,250,151,250,199,250,3,251,43,251, +59,251,68,251,86,251,124,251,169,251,195,251,208,251,235,251,22,252,67,252,118,252,170,252,209,252,251,252,58,253,129,253, +182,253,216,253,245,253,25,254,66,254,111,254,156,254,201,254,243,254,28,255,69,255,110,255,154,255,194,255,223,255,251,255, +36,0,83,0,119,0,148,0,187,0,246,0,58,1,109,1,145,1,188,1,242,1,33,2,71,2,106,2,140,2,176,2, +218,2,0,3,30,3,57,3,84,3,111,3,146,3,186,3,222,3,249,3,17,4,45,4,75,4,98,4,119,4,150,4, +181,4,198,4,211,4,243,4,27,5,55,5,74,5,97,5,127,5,145,5,133,5,104,5,90,5,89,5,81,5,69,5, +63,5,56,5,46,5,36,5,27,5,21,5,9,5,243,4,220,4,209,4,191,4,154,4,118,4,93,4,76,4,58,4, +29,4,245,3,213,3,188,3,153,3,110,3,73,3,31,3,232,2,180,2,134,2,81,2,27,2,240,1,219,1,209,1, +190,1,154,1,120,1,91,1,58,1,25,1,255,0,219,0,176,0,151,0,141,0,121,0,93,0,68,0,43,0,15,0, +245,255,214,255,166,255,109,255,71,255,55,255,41,255,18,255,2,255,254,254,250,254,239,254,225,254,206,254,184,254,165,254, +145,254,121,254,106,254,108,254,106,254,84,254,58,254,49,254,42,254,22,254,0,254,239,253,206,253,159,253,129,253,122,253, +116,253,105,253,95,253,81,253,74,253,78,253,81,253,75,253,62,253,34,253,6,253,1,253,8,253,1,253,236,252,215,252, +202,252,209,252,225,252,219,252,186,252,154,252,140,252,138,252,134,252,116,252,95,252,90,252,99,252,112,252,122,252,116,252, +93,252,86,252,103,252,109,252,101,252,104,252,108,252,97,252,85,252,79,252,70,252,64,252,62,252,55,252,49,252,57,252, +62,252,52,252,41,252,40,252,39,252,34,252,26,252,15,252,8,252,23,252,53,252,67,252,59,252,53,252,64,252,78,252, +80,252,69,252,53,252,47,252,60,252,78,252,87,252,92,252,101,252,112,252,120,252,129,252,138,252,147,252,153,252,161,252, +177,252,201,252,232,252,20,253,66,253,99,253,123,253,152,253,187,253,225,253,7,254,29,254,43,254,73,254,118,254,157,254, +190,254,224,254,255,254,36,255,79,255,111,255,140,255,190,255,244,255,27,0,73,0,133,0,183,0,224,0,10,1,46,1, +85,1,146,1,209,1,249,1,25,2,61,2,93,2,130,2,176,2,212,2,227,2,237,2,253,2,25,3,61,3,95,3, +117,3,136,3,169,3,213,3,253,3,25,4,41,4,48,4,52,4,68,4,100,4,122,4,116,4,107,4,117,4,133,4, +138,4,141,4,142,4,130,4,109,4,96,4,88,4,71,4,47,4,31,4,23,4,16,4,7,4,244,3,220,3,206,3, +202,3,186,3,157,3,136,3,119,3,98,3,71,3,28,3,228,2,186,2,164,2,140,2,105,2,68,2,34,2,5,2, +228,1,184,1,142,1,105,1,57,1,12,1,250,0,230,0,183,0,148,0,143,0,138,0,119,0,90,0,43,0,247,255, +225,255,215,255,181,255,134,255,95,255,68,255,55,255,53,255,37,255,5,255,229,254,203,254,179,254,164,254,145,254,109,254, +83,254,90,254,108,254,103,254,78,254,56,254,43,254,33,254,28,254,26,254,9,254,235,253,217,253,218,253,216,253,204,253, +190,253,169,253,147,253,144,253,157,253,147,253,117,253,103,253,114,253,129,253,144,253,158,253,151,253,126,253,119,253,132,253, +140,253,141,253,144,253,144,253,143,253,145,253,139,253,121,253,117,253,130,253,136,253,136,253,149,253,165,253,163,253,149,253, +148,253,175,253,211,253,232,253,249,253,18,254,36,254,49,254,82,254,118,254,128,254,142,254,189,254,236,254,7,255,34,255, +65,255,93,255,129,255,168,255,190,255,216,255,11,0,66,0,109,0,161,0,230,0,50,1,124,1,186,1,223,1,246,1, +28,2,91,2,162,2,227,2,39,3,117,3,188,3,255,3,69,4,118,4,130,4,140,4,183,4,236,4,23,5,71,5, +122,5,165,5,222,5,39,6,91,6,106,6,108,6,113,6,129,6,166,6,208,6,226,6,233,6,2,7,39,7,63,7, +67,7,49,7,15,7,245,6,248,6,2,7,244,6,218,6,204,6,197,6,179,6,151,6,119,6,88,6,63,6,45,6, +37,6,30,6,12,6,239,5,208,5,180,5,144,5,96,5,42,5,4,5,242,4,222,4,182,4,139,4,104,4,62,4, +9,4,214,3,160,3,100,3,50,3,13,3,230,2,188,2,143,2,93,2,44,2,2,2,208,1,138,1,63,1,249,0, +181,0,115,0,54,0,253,255,194,255,121,255,32,255,192,254,89,254,233,253,131,253,38,253,196,252,95,252,253,251,144,251, +27,251,184,250,105,250,22,250,181,249,69,249,204,248,82,248,212,247,72,247,194,246,94,246,21,246,212,245,139,245,47,245, +199,244,104,244,6,244,139,243,7,243,152,242,63,242,241,241,175,241,124,241,83,241,45,241,9,241,237,240,214,240,173,240, +101,240,22,240,228,239,218,239,228,239,239,239,248,239,0,240,7,240,22,240,43,240,47,240,25,240,8,240,31,240,84,240, +136,240,175,240,204,240,236,240,45,241,144,241,234,241,31,242,79,242,150,242,230,242,49,243,122,243,181,243,225,243,36,244, +143,244,248,244,74,245,159,245,1,246,95,246,191,246,47,247,155,247,230,247,32,248,117,248,241,248,113,249,222,249,71,250, +190,250,62,251,190,251,47,252,130,252,207,252,60,253,191,253,54,254,163,254,19,255,133,255,251,255,114,0,211,0,38,1, +133,1,237,1,79,2,179,2,26,3,122,3,222,3,82,4,195,4,31,5,108,5,189,5,21,6,112,6,202,6,35,7, +122,7,201,7,16,8,92,8,169,8,234,8,32,9,88,9,150,9,219,9,30,10,83,10,126,10,175,10,230,10,24,11, +61,11,90,11,127,11,183,11,239,11,16,12,40,12,77,12,118,12,150,12,174,12,189,12,188,12,185,12,206,12,248,12, +21,13,11,13,235,12,218,12,223,12,222,12,200,12,173,12,156,12,145,12,132,12,117,12,95,12,60,12,18,12,237,11, +209,11,178,11,129,11,57,11,247,10,211,10,186,10,142,10,75,10,0,10,186,9,122,9,52,9,218,8,120,8,35,8, +219,7,150,7,85,7,18,7,197,6,120,6,48,6,226,5,143,5,58,5,226,4,132,4,47,4,233,3,160,3,79,3, +4,3,196,2,125,2,39,2,211,1,132,1,48,1,219,0,143,0,71,0,2,0,201,255,148,255,82,255,9,255,197,254, +135,254,80,254,28,254,216,253,143,253,95,253,65,253,22,253,221,252,162,252,101,252,50,252,15,252,233,251,175,251,117,251, +74,251,43,251,18,251,247,250,202,250,144,250,107,250,100,250,88,250,50,250,11,250,246,249,230,249,210,249,198,249,191,249, +176,249,161,249,151,249,139,249,131,249,136,249,129,249,101,249,90,249,108,249,122,249,117,249,115,249,124,249,135,249,151,249, +173,249,194,249,211,249,229,249,245,249,10,250,45,250,82,250,105,250,123,250,159,250,207,250,244,250,7,251,29,251,66,251, +108,251,145,251,182,251,214,251,236,251,17,252,81,252,142,252,179,252,220,252,21,253,68,253,106,253,156,253,196,253,216,253, +0,254,73,254,137,254,180,254,228,254,25,255,75,255,136,255,204,255,250,255,19,0,52,0,98,0,151,0,207,0,3,1, +47,1,95,1,161,1,233,1,27,2,63,2,113,2,168,2,206,2,240,2,32,3,77,3,115,3,173,3,239,3,25,4, +56,4,100,4,145,4,181,4,213,4,232,4,242,4,18,5,67,5,97,5,116,5,143,5,169,5,194,5,228,5,253,5, +3,6,13,6,33,6,42,6,41,6,44,6,46,6,53,6,69,6,80,6,79,6,75,6,68,6,48,6,25,6,13,6, +6,6,248,5,222,5,191,5,172,5,173,5,175,5,164,5,135,5,97,5,67,5,52,5,31,5,245,4,205,4,184,4, +163,4,133,4,110,4,91,4,57,4,8,4,215,3,176,3,146,3,116,3,79,3,46,3,24,3,252,2,212,2,173,2, +140,2,104,2,66,2,33,2,5,2,238,1,213,1,178,1,141,1,110,1,76,1,34,1,252,0,215,0,173,0,140,0, +114,0,78,0,41,0,19,0,252,255,219,255,187,255,154,255,121,255,97,255,72,255,33,255,254,254,235,254,213,254,180,254, +149,254,120,254,91,254,68,254,47,254,20,254,249,253,224,253,194,253,166,253,146,253,123,253,89,253,50,253,15,253,251,252, +247,252,236,252,203,252,176,252,166,252,153,252,129,252,110,252,92,252,64,252,32,252,11,252,4,252,254,251,239,251,219,251, +204,251,188,251,165,251,145,251,133,251,116,251,95,251,86,251,80,251,67,251,57,251,57,251,48,251,22,251,1,251,2,251, +13,251,18,251,14,251,3,251,251,250,252,250,5,251,10,251,2,251,244,250,244,250,1,251,13,251,20,251,23,251,27,251, +46,251,79,251,97,251,89,251,88,251,114,251,150,251,183,251,218,251,246,251,11,252,40,252,73,252,100,252,128,252,161,252, +189,252,222,252,12,253,52,253,80,253,123,253,181,253,227,253,2,254,39,254,81,254,117,254,157,254,207,254,4,255,51,255, +99,255,155,255,213,255,4,0,44,0,90,0,143,0,187,0,225,0,16,1,69,1,108,1,135,1,170,1,218,1,6,2, +38,2,66,2,95,2,123,2,163,2,213,2,254,2,24,3,53,3,89,3,118,3,142,3,164,3,179,3,195,3,225,3, +3,4,28,4,48,4,65,4,67,4,72,4,95,4,115,4,115,4,113,4,120,4,122,4,124,4,141,4,153,4,144,4, +134,4,141,4,144,4,131,4,126,4,138,4,143,4,128,4,107,4,92,4,78,4,61,4,41,4,16,4,244,3,228,3, +228,3,222,3,190,3,146,3,119,3,107,3,91,3,62,3,21,3,229,2,195,2,189,2,186,2,157,2,114,2,88,2, +78,2,62,2,28,2,233,1,178,1,142,1,129,1,115,1,82,1,43,1,14,1,255,0,239,0,202,0,141,0,91,0, +73,0,59,0,24,0,239,255,209,255,185,255,167,255,156,255,131,255,80,255,33,255,11,255,247,254,213,254,179,254,143,254, +102,254,78,254,83,254,72,254,13,254,200,253,171,253,175,253,168,253,132,253,81,253,42,253,34,253,36,253,19,253,244,252, +219,252,200,252,186,252,184,252,185,252,167,252,140,252,125,252,119,252,123,252,139,252,152,252,150,252,155,252,182,252,206,252, +209,252,206,252,213,252,232,252,255,252,26,253,57,253,93,253,134,253,181,253,229,253,9,254,36,254,60,254,86,254,117,254, +162,254,214,254,5,255,51,255,107,255,160,255,210,255,8,0,49,0,60,0,75,0,124,0,180,0,214,0,246,0,43,1, +103,1,147,1,171,1,186,1,206,1,238,1,20,2,54,2,80,2,97,2,113,2,141,2,181,2,218,2,232,2,217,2, +208,2,232,2,10,3,11,3,249,2,250,2,20,3,50,3,65,3,56,3,32,3,17,3,19,3,28,3,36,3,42,3, +42,3,41,3,42,3,40,3,31,3,17,3,253,2,233,2,228,2,236,2,235,2,218,2,195,2,177,2,175,2,178,2, +156,2,112,2,77,2,58,2,40,2,18,2,243,1,200,1,170,1,157,1,128,1,73,1,25,1,250,0,207,0,147,0, +85,0,25,0,220,255,153,255,73,255,249,254,186,254,132,254,71,254,10,254,205,253,126,253,27,253,177,252,79,252,247,251, +156,251,42,251,175,250,84,250,29,250,224,249,133,249,21,249,163,248,52,248,195,247,77,247,211,246,89,246,236,245,158,245, +111,245,66,245,254,244,163,244,61,244,222,243,136,243,38,243,183,242,96,242,42,242,253,241,220,241,207,241,181,241,134,241, +103,241,89,241,47,241,244,240,206,240,184,240,164,240,170,240,210,240,6,241,58,241,95,241,101,241,100,241,125,241,171,241, +220,241,11,242,56,242,108,242,184,242,15,243,93,243,163,243,233,243,49,244,141,244,4,245,118,245,195,245,2,246,90,246, +214,246,92,247,201,247,18,248,87,248,192,248,70,249,201,249,52,250,154,250,19,251,152,251,6,252,86,252,161,252,0,253, +116,253,245,253,115,254,231,254,83,255,183,255,13,0,99,0,189,0,22,1,124,1,252,1,115,2,206,2,45,3,155,3, +254,3,93,4,200,4,34,5,89,5,149,5,236,5,77,6,179,6,31,7,126,7,214,7,54,8,142,8,197,8,239,8, +38,9,111,9,203,9,47,10,134,10,208,10,25,11,94,11,154,11,214,11,15,12,61,12,105,12,158,12,217,12,21,13, +82,13,144,13,205,13,255,13,38,14,71,14,98,14,112,14,124,14,147,14,181,14,221,14,6,15,31,15,32,15,34,15, +52,15,65,15,61,15,49,15,39,15,30,15,19,15,252,14,214,14,183,14,170,14,161,14,137,14,94,14,40,14,250,13, +220,13,183,13,123,13,51,13,235,12,167,12,106,12,40,12,210,11,122,11,59,11,11,11,213,10,143,10,43,10,167,9, +47,9,224,8,153,8,53,8,189,7,70,7,223,6,143,6,70,6,229,5,106,5,246,4,149,4,57,4,206,3,83,3, +212,2,97,2,4,2,187,1,110,1,10,1,154,0,49,0,204,255,110,255,30,255,205,254,102,254,254,253,180,253,117,253, +32,253,185,252,87,252,5,252,198,251,138,251,55,251,211,250,129,250,80,250,45,250,5,250,203,249,125,249,45,249,239,248, +190,248,134,248,76,248,36,248,13,248,244,247,207,247,161,247,108,247,56,247,22,247,3,247,229,246,182,246,142,246,118,246, +105,246,100,246,94,246,67,246,33,246,21,246,32,246,32,246,11,246,243,245,234,245,248,245,23,246,54,246,66,246,62,246, +67,246,99,246,143,246,168,246,177,246,199,246,235,246,11,247,43,247,87,247,134,247,178,247,235,247,46,248,101,248,147,248, +206,248,14,249,68,249,121,249,189,249,13,250,95,250,172,250,242,250,59,251,150,251,245,251,68,252,136,252,212,252,42,253, +128,253,215,253,44,254,123,254,207,254,46,255,137,255,218,255,44,0,127,0,204,0,31,1,122,1,204,1,22,2,107,2, +191,2,1,3,66,3,148,3,229,3,41,4,108,4,179,4,241,4,40,5,100,5,164,5,222,5,10,6,44,6,90,6, +156,6,216,6,244,6,4,7,38,7,89,7,137,7,175,7,198,7,200,7,205,7,234,7,11,8,23,8,24,8,33,8, +46,8,53,8,59,8,58,8,51,8,49,8,53,8,52,8,45,8,38,8,22,8,254,7,245,7,246,7,229,7,202,7, +181,7,161,7,140,7,127,7,113,7,88,7,63,7,44,7,17,7,239,6,207,6,174,6,138,6,106,6,72,6,33,6, +2,6,230,5,192,5,150,5,116,5,81,5,45,5,15,5,234,4,177,4,120,4,80,4,47,4,6,4,219,3,177,3, +133,3,90,3,48,3,250,2,182,2,122,2,84,2,47,2,250,1,191,1,140,1,91,1,41,1,247,0,190,0,125,0, +66,0,16,0,219,255,167,255,119,255,68,255,14,255,222,254,169,254,104,254,49,254,5,254,207,253,152,253,114,253,77,253, +27,253,231,252,176,252,116,252,72,252,37,252,234,251,166,251,129,251,111,251,79,251,38,251,0,251,213,250,171,250,141,250, +109,250,69,250,34,250,7,250,235,249,213,249,202,249,185,249,154,249,123,249,103,249,86,249,64,249,45,249,36,249,27,249, +16,249,10,249,5,249,245,248,233,248,243,248,254,248,251,248,254,248,12,249,20,249,24,249,33,249,41,249,48,249,71,249, +96,249,106,249,113,249,132,249,157,249,184,249,213,249,234,249,249,249,20,250,55,250,84,250,104,250,127,250,157,250,187,250, +220,250,6,251,46,251,62,251,69,251,112,251,183,251,226,251,241,251,19,252,69,252,106,252,142,252,191,252,230,252,253,252, +30,253,75,253,115,253,154,253,198,253,242,253,36,254,92,254,144,254,183,254,214,254,249,254,37,255,83,255,123,255,166,255, +220,255,17,0,60,0,106,0,153,0,196,0,245,0,45,1,93,1,135,1,183,1,226,1,6,2,50,2,99,2,142,2, +187,2,234,2,10,3,41,3,97,3,156,3,193,3,221,3,247,3,11,4,36,4,73,4,99,4,110,4,140,4,198,4, +246,4,4,5,8,5,32,5,70,5,96,5,104,5,102,5,98,5,104,5,130,5,164,5,179,5,178,5,178,5,186,5, +205,5,220,5,206,5,174,5,162,5,169,5,173,5,176,5,175,5,161,5,149,5,158,5,162,5,140,5,118,5,108,5, +93,5,79,5,72,5,50,5,13,5,251,4,247,4,229,4,199,4,172,4,146,4,123,4,103,4,70,4,27,4,247,3, +213,3,173,3,142,3,121,3,88,3,48,3,22,3,0,3,214,2,162,2,129,2,112,2,78,2,16,2,210,1,171,1, +145,1,111,1,69,1,24,1,236,0,194,0,154,0,107,0,51,0,254,255,217,255,195,255,169,255,125,255,74,255,28,255, +243,254,206,254,177,254,140,254,92,254,55,254,38,254,9,254,212,253,156,253,112,253,77,253,54,253,26,253,229,252,176,252, +155,252,143,252,107,252,60,252,25,252,254,251,234,251,221,251,204,251,176,251,150,251,139,251,136,251,122,251,85,251,43,251, +28,251,35,251,36,251,26,251,28,251,43,251,58,251,71,251,77,251,64,251,42,251,43,251,74,251,115,251,148,251,179,251, +219,251,11,252,64,252,112,252,149,252,186,252,229,252,22,253,83,253,157,253,223,253,12,254,66,254,145,254,220,254,16,255, +72,255,144,255,218,255,44,0,141,0,218,0,10,1,65,1,136,1,194,1,246,1,57,2,123,2,185,2,16,3,122,3, +208,3,15,4,77,4,125,4,150,4,172,4,197,4,212,4,236,4,34,5,99,5,155,5,208,5,2,6,25,6,23,6, +21,6,34,6,47,6,47,6,47,6,66,6,101,6,129,6,138,6,133,6,126,6,121,6,126,6,131,6,118,6,86,6, +61,6,60,6,67,6,66,6,56,6,40,6,20,6,254,5,231,5,206,5,189,5,188,5,189,5,177,5,153,5,131,5, +109,5,74,5,37,5,16,5,4,5,237,4,199,4,154,4,107,4,63,4,19,4,218,3,150,3,88,3,34,3,224,2, +150,2,85,2,24,2,210,1,137,1,63,1,230,0,126,0,23,0,181,255,78,255,220,254,108,254,14,254,192,253,102,253, +234,252,89,252,205,251,76,251,202,250,58,250,149,249,232,248,76,248,212,247,114,247,254,246,104,246,200,245,59,245,175,244, +9,244,80,243,161,242,27,242,199,241,132,241,42,241,188,240,89,240,252,239,145,239,32,239,170,238,36,238,169,237,91,237, +44,237,2,237,221,236,186,236,147,236,128,236,130,236,99,236,12,236,192,235,193,235,254,235,55,236,86,236,115,236,162,236, +216,236,12,237,64,237,113,237,161,237,226,237,69,238,180,238,17,239,88,239,152,239,236,239,96,240,219,240,68,241,180,241, +62,242,204,242,83,243,226,243,115,244,234,244,78,245,184,245,37,246,150,246,31,247,182,247,65,248,205,248,116,249,33,250, +171,250,11,251,78,251,138,251,236,251,136,252,45,253,166,253,18,254,152,254,35,255,160,255,29,0,140,0,210,0,28,1, +154,1,39,2,155,2,8,3,117,3,214,3,63,4,184,4,17,5,64,5,120,5,205,5,41,6,148,6,8,7,102,7, +181,7,20,8,109,8,159,8,202,8,15,9,94,9,172,9,12,10,120,10,210,10,21,11,86,11,147,11,196,11,247,11, +53,12,108,12,152,12,210,12,26,13,83,13,136,13,206,13,8,14,26,14,40,14,79,14,118,14,148,14,189,14,229,14, +249,14,16,15,55,15,83,15,92,15,101,15,117,15,130,15,136,15,132,15,123,15,117,15,102,15,70,15,36,15,11,15, +244,14,215,14,178,14,132,14,96,14,76,14,39,14,224,13,153,13,95,13,23,13,196,12,123,12,54,12,235,11,167,11, +105,11,28,11,198,10,116,10,31,10,190,9,88,9,239,8,129,8,19,8,174,7,84,7,248,6,147,6,41,6,204,5, +123,5,42,5,206,4,104,4,3,4,169,3,93,3,17,3,186,2,95,2,8,2,193,1,136,1,75,1,2,1,179,0, +99,0,30,0,241,255,199,255,126,255,34,255,224,254,185,254,152,254,122,254,84,254,25,254,228,253,208,253,193,253,159,253, +118,253,74,253,14,253,219,252,210,252,215,252,188,252,132,252,86,252,71,252,77,252,67,252,14,252,197,251,151,251,151,251, +165,251,149,251,101,251,54,251,32,251,27,251,17,251,254,250,229,250,203,250,184,250,180,250,175,250,147,250,103,250,69,250, +59,250,64,250,72,250,65,250,30,250,249,249,243,249,2,250,10,250,6,250,251,249,232,249,225,249,243,249,3,250,1,250, +11,250,42,250,63,250,72,250,93,250,115,250,127,250,148,250,176,250,188,250,194,250,222,250,252,250,15,251,47,251,101,251, +149,251,181,251,210,251,236,251,1,252,29,252,69,252,100,252,126,252,175,252,245,252,44,253,74,253,101,253,138,253,174,253, +210,253,250,253,30,254,61,254,104,254,153,254,190,254,225,254,16,255,61,255,96,255,130,255,156,255,173,255,200,255,239,255, +19,0,54,0,96,0,122,0,137,0,180,0,237,0,3,1,1,1,15,1,41,1,66,1,102,1,140,1,152,1,150,1, +168,1,198,1,218,1,227,1,234,1,242,1,7,2,39,2,56,2,54,2,59,2,71,2,73,2,74,2,86,2,101,2, +107,2,113,2,127,2,150,2,170,2,172,2,163,2,161,2,165,2,170,2,182,2,196,2,191,2,183,2,202,2,235,2, +246,2,241,2,238,2,232,2,231,2,0,3,31,3,44,3,49,3,58,3,62,3,69,3,84,3,83,3,68,3,74,3, +96,3,101,3,99,3,117,3,129,3,113,3,90,3,82,3,81,3,86,3,87,3,67,3,41,3,38,3,49,3,46,3, +39,3,37,3,8,3,205,2,162,2,152,2,140,2,119,2,107,2,92,2,60,2,41,2,39,2,5,2,196,1,157,1, +152,1,135,1,99,1,62,1,14,1,222,0,205,0,203,0,177,0,138,0,102,0,63,0,27,0,9,0,245,255,205,255, +166,255,137,255,111,255,91,255,78,255,55,255,20,255,243,254,218,254,204,254,198,254,175,254,128,254,82,254,56,254,38,254, +25,254,11,254,238,253,200,253,184,253,185,253,177,253,161,253,147,253,125,253,92,253,62,253,44,253,38,253,35,253,27,253, +11,253,253,252,242,252,236,252,237,252,235,252,221,252,209,252,208,252,205,252,193,252,184,252,177,252,165,252,163,252,187,252, +215,252,215,252,196,252,190,252,204,252,223,252,233,252,227,252,209,252,205,252,232,252,12,253,25,253,28,253,40,253,49,253, +50,253,56,253,69,253,79,253,89,253,101,253,116,253,147,253,190,253,208,253,197,253,196,253,215,253,235,253,255,253,28,254, +47,254,58,254,86,254,123,254,147,254,168,254,199,254,224,254,226,254,226,254,250,254,32,255,59,255,82,255,116,255,152,255, +182,255,218,255,253,255,9,0,11,0,34,0,70,0,100,0,128,0,156,0,176,0,198,0,223,0,246,0,25,1,69,1, +77,1,59,1,84,1,143,1,167,1,163,1,177,1,194,1,206,1,239,1,15,2,0,2,229,1,245,1,31,2,66,2, +89,2,83,2,48,2,27,2,51,2,90,2,97,2,66,2,41,2,53,2,80,2,89,2,78,2,55,2,33,2,42,2, +77,2,76,2,31,2,2,2,2,2,249,1,237,1,230,1,201,1,168,1,178,1,203,1,185,1,145,1,122,1,105,1, +86,1,82,1,72,1,39,1,11,1,8,1,250,0,216,0,196,0,195,0,181,0,155,0,142,0,133,0,110,0,93,0, +95,0,78,0,31,0,2,0,16,0,32,0,17,0,237,255,204,255,188,255,193,255,204,255,205,255,199,255,175,255,136,255, +126,255,156,255,159,255,113,255,86,255,108,255,135,255,139,255,123,255,92,255,71,255,98,255,147,255,154,255,114,255,80,255, +87,255,121,255,151,255,161,255,157,255,147,255,145,255,169,255,211,255,231,255,225,255,236,255,23,0,67,0,98,0,113,0, +104,0,96,0,129,0,186,0,222,0,252,0,48,1,93,1,109,1,139,1,203,1,247,1,249,1,1,2,36,2,71,2, +109,2,170,2,229,2,15,3,74,3,147,3,179,3,182,3,203,3,227,3,242,3,30,4,96,4,126,4,141,4,197,4, +4,5,28,5,45,5,74,5,80,5,64,5,65,5,83,5,101,5,121,5,134,5,132,5,135,5,160,5,181,5,164,5, +113,5,77,5,86,5,105,5,96,5,79,5,76,5,59,5,24,5,1,5,236,4,192,4,155,4,143,4,124,4,90,4, +57,4,22,4,243,3,225,3,201,3,136,3,67,3,34,3,3,3,201,2,145,2,110,2,80,2,45,2,253,1,183,1, +107,1,53,1,15,1,221,0,151,0,78,0,18,0,219,255,155,255,85,255,16,255,201,254,125,254,48,254,234,253,173,253, +102,253,248,252,113,252,9,252,203,251,130,251,24,251,167,250,63,250,231,249,169,249,99,249,222,248,50,248,166,247,50,247, +169,246,33,246,194,245,124,245,45,245,207,244,88,244,195,243,52,243,180,242,23,242,100,241,236,240,195,240,158,240,87,240, +20,240,221,239,154,239,83,239,8,239,142,238,240,237,125,237,85,237,71,237,56,237,54,237,61,237,65,237,74,237,83,237, +56,237,241,236,178,236,171,236,213,236,6,237,60,237,135,237,222,237,54,238,146,238,224,238,6,239,44,239,134,239,241,239, +64,240,152,240,22,241,149,241,12,242,144,242,2,243,77,243,181,243,104,244,36,245,162,245,242,245,69,246,192,246,112,247, +41,248,163,248,222,248,51,249,230,249,207,250,152,251,22,252,104,252,203,252,100,253,15,254,127,254,172,254,237,254,138,255, +108,0,70,1,212,1,10,2,54,2,179,2,105,3,248,3,75,4,145,4,237,4,117,5,39,6,194,6,18,7,68,7, +155,7,19,8,139,8,240,8,46,9,87,9,166,9,45,10,187,10,33,11,87,11,108,11,132,11,199,11,40,12,117,12, +166,12,241,12,110,13,229,13,32,14,54,14,78,14,112,14,165,14,237,14,27,15,25,15,43,15,123,15,203,15,237,15, +3,16,24,16,27,16,29,16,39,16,26,16,5,16,23,16,60,16,72,16,87,16,119,16,109,16,41,16,250,15,6,16, +28,16,23,16,0,16,228,15,201,15,181,15,143,15,66,15,234,14,176,14,137,14,88,14,26,14,209,13,122,13,48,13, +8,13,222,12,132,12,15,12,163,11,58,11,203,10,104,10,22,10,200,9,120,9,43,9,216,8,111,8,239,7,108,7, +245,6,125,6,253,5,133,5,30,5,181,4,64,4,206,3,103,3,255,2,145,2,33,2,183,1,75,1,206,0,77,0, +234,255,167,255,105,255,37,255,209,254,82,254,200,253,129,253,101,253,29,253,175,252,85,252,13,252,206,251,168,251,112,251, +0,251,167,250,155,250,141,250,66,250,245,249,209,249,190,249,184,249,185,249,156,249,97,249,51,249,28,249,10,249,3,249, +6,249,252,248,235,248,241,248,10,249,16,249,245,248,207,248,189,248,196,248,210,248,214,248,207,248,211,248,243,248,29,249, +43,249,30,249,37,249,73,249,113,249,133,249,126,249,108,249,124,249,188,249,248,249,5,250,254,249,10,250,41,250,82,250, +112,250,112,250,106,250,131,250,176,250,210,250,237,250,5,251,18,251,42,251,99,251,159,251,184,251,192,251,220,251,7,252, +46,252,80,252,114,252,142,252,176,252,237,252,48,253,74,253,75,253,110,253,177,253,225,253,247,253,20,254,56,254,90,254, +134,254,195,254,252,254,44,255,98,255,161,255,214,255,253,255,30,0,70,0,122,0,177,0,228,0,22,1,75,1,122,1, +157,1,186,1,231,1,35,2,80,2,100,2,123,2,166,2,206,2,229,2,247,2,11,3,36,3,75,3,120,3,149,3, +160,3,171,3,193,3,228,3,13,4,36,4,25,4,2,4,250,3,3,4,20,4,42,4,57,4,43,4,4,4,234,3, +240,3,246,3,219,3,183,3,174,3,176,3,165,3,143,3,117,3,90,3,75,3,74,3,67,3,47,3,29,3,13,3, +247,2,224,2,204,2,183,2,161,2,137,2,114,2,98,2,88,2,68,2,34,2,252,1,218,1,200,1,201,1,194,1, +165,1,136,1,117,1,101,1,99,1,108,1,98,1,69,1,50,1,26,1,245,0,234,0,249,0,244,0,218,0,202,0, +183,0,159,0,154,0,149,0,107,0,63,0,48,0,32,0,11,0,11,0,3,0,216,255,188,255,197,255,192,255,157,255, +121,255,78,255,29,255,19,255,44,255,36,255,237,254,184,254,161,254,152,254,138,254,109,254,63,254,22,254,4,254,0,254, +245,253,215,253,170,253,131,253,117,253,119,253,111,253,83,253,47,253,23,253,15,253,18,253,19,253,7,253,234,252,195,252, +169,252,176,252,208,252,227,252,214,252,198,252,209,252,230,252,237,252,231,252,221,252,215,252,233,252,24,253,71,253,97,253, +114,253,135,253,159,253,186,253,214,253,240,253,6,254,27,254,53,254,91,254,138,254,178,254,211,254,249,254,29,255,55,255, +75,255,95,255,118,255,158,255,217,255,8,0,31,0,50,0,84,0,127,0,172,0,209,0,230,0,246,0,19,1,56,1, +81,1,87,1,98,1,134,1,174,1,184,1,174,1,184,1,213,1,239,1,6,2,25,2,24,2,10,2,10,2,31,2, +54,2,69,2,79,2,88,2,91,2,89,2,99,2,131,2,149,2,126,2,95,2,91,2,94,2,98,2,113,2,113,2, +84,2,69,2,84,2,88,2,73,2,64,2,53,2,35,2,38,2,57,2,51,2,25,2,13,2,10,2,4,2,9,2, +14,2,249,1,221,1,220,1,227,1,215,1,193,1,173,1,150,1,122,1,105,1,95,1,78,1,56,1,46,1,36,1, +14,1,0,1,0,1,237,0,190,0,155,0,144,0,134,0,123,0,117,0,95,0,59,0,33,0,16,0,246,255,218,255, +183,255,134,255,94,255,82,255,67,255,21,255,214,254,154,254,112,254,103,254,102,254,68,254,12,254,231,253,206,253,173,253, +139,253,107,253,65,253,26,253,1,253,224,252,173,252,132,252,109,252,81,252,38,252,246,251,211,251,194,251,174,251,131,251, +84,251,66,251,60,251,32,251,247,250,225,250,220,250,209,250,195,250,189,250,189,250,189,250,188,250,188,250,195,250,199,250, +178,250,150,250,156,250,194,250,229,250,249,250,1,251,247,250,251,250,43,251,90,251,85,251,77,251,116,251,164,251,192,251, +233,251,24,252,53,252,97,252,170,252,209,252,208,252,236,252,51,253,120,253,171,253,217,253,1,254,49,254,110,254,163,254, +204,254,254,254,48,255,85,255,130,255,193,255,3,0,71,0,139,0,191,0,235,0,32,1,75,1,101,1,159,1,1,2, +78,2,109,2,142,2,206,2,28,3,99,3,157,3,195,3,228,3,26,4,108,4,188,4,238,4,13,5,57,5,125,5, +204,5,20,6,64,6,87,6,131,6,221,6,54,7,98,7,111,7,122,7,141,7,179,7,238,7,36,8,77,8,122,8, +174,8,218,8,251,8,18,9,22,9,7,9,251,8,10,9,48,9,77,9,84,9,102,9,137,9,160,9,162,9,163,9, +144,9,88,9,39,9,26,9,15,9,241,8,219,8,203,8,170,8,131,8,103,8,72,8,27,8,229,7,154,7,69,7, +18,7,12,7,249,6,179,6,88,6,23,6,247,5,224,5,177,5,88,5,235,4,151,4,107,4,71,4,10,4,176,3, +75,3,250,2,205,2,163,2,79,2,220,1,124,1,65,1,16,1,204,0,109,0,12,0,209,255,181,255,131,255,39,255, +186,254,78,254,242,253,183,253,139,253,67,253,219,252,119,252,38,252,229,251,167,251,80,251,215,250,99,250,19,250,207,249, +118,249,16,249,180,248,105,248,41,248,224,247,117,247,235,246,115,246,37,246,225,245,132,245,34,245,210,244,136,244,48,244, +205,243,87,243,203,242,63,242,198,241,96,241,14,241,204,240,130,240,31,240,179,239,68,239,206,238,88,238,233,237,138,237, +76,237,43,237,9,237,234,236,217,236,194,236,149,236,98,236,27,236,179,235,108,235,117,235,160,235,186,235,204,235,213,235, +209,235,235,235,34,236,36,236,226,235,190,235,5,236,164,236,79,237,180,237,203,237,242,237,125,238,69,239,220,239,255,239, +238,239,72,240,79,241,131,242,76,243,173,243,245,243,91,244,254,244,199,245,86,246,140,246,206,246,132,247,162,248,215,249, +180,250,251,250,11,251,143,251,141,252,101,253,183,253,208,253,43,254,13,255,85,0,119,1,246,1,1,2,52,2,203,2, +126,3,255,3,74,4,140,4,4,5,194,5,127,6,243,6,50,7,109,7,175,7,251,7,104,8,232,8,83,9,164,9, +239,9,62,10,150,10,235,10,32,11,54,11,82,11,131,11,193,11,16,12,115,12,210,12,21,13,52,13,47,13,26,13, +26,13,67,13,121,13,165,13,220,13,56,14,158,14,215,14,204,14,150,14,104,14,125,14,218,14,45,15,33,15,230,14, +234,14,65,15,160,15,194,15,150,15,63,15,2,15,4,15,36,15,57,15,60,15,57,15,63,15,91,15,123,15,114,15, +39,15,188,14,121,14,142,14,216,14,253,14,209,14,123,14,61,14,42,14,21,14,199,13,71,13,215,12,155,12,129,12, +97,12,22,12,161,11,66,11,37,11,11,11,165,10,11,10,117,9,248,8,161,8,116,8,71,8,235,7,117,7,18,7, +200,6,117,6,242,5,66,5,163,4,72,4,30,4,218,3,69,3,125,2,224,1,167,1,154,1,94,1,220,0,63,0, +191,255,137,255,127,255,68,255,183,254,38,254,223,253,217,253,205,253,128,253,255,252,149,252,125,252,163,252,180,252,103,252, +202,251,70,251,47,251,97,251,121,251,69,251,227,250,158,250,171,250,228,250,244,250,203,250,154,250,128,250,129,250,155,250, +168,250,137,250,90,250,70,250,80,250,114,250,164,250,185,250,146,250,96,250,87,250,103,250,104,250,83,250,51,250,30,250, +42,250,74,250,96,250,100,250,93,250,85,250,93,250,118,250,117,250,77,250,47,250,56,250,76,250,87,250,107,250,126,250, +117,250,96,250,96,250,110,250,118,250,117,250,103,250,78,250,77,250,107,250,125,250,124,250,149,250,198,250,223,250,215,250, +213,250,241,250,39,251,92,251,110,251,104,251,118,251,161,251,207,251,245,251,9,252,5,252,12,252,63,252,120,252,135,252, +134,252,161,252,216,252,18,253,55,253,65,253,80,253,128,253,185,253,216,253,227,253,246,253,36,254,98,254,146,254,172,254, +200,254,241,254,26,255,68,255,104,255,104,255,79,255,87,255,138,255,187,255,219,255,240,255,254,255,36,0,119,0,195,0, +205,0,173,0,152,0,168,0,229,0,54,1,92,1,82,1,90,1,148,1,214,1,249,1,251,1,231,1,219,1,251,1, +50,2,71,2,50,2,36,2,60,2,109,2,157,2,186,2,176,2,142,2,138,2,186,2,240,2,12,3,16,3,255,2, +238,2,14,3,78,3,93,3,57,3,47,3,69,3,78,3,83,3,106,3,110,3,81,3,72,3,89,3,89,3,70,3, +72,3,93,3,112,3,129,3,134,3,118,3,108,3,132,3,158,3,150,3,132,3,136,3,147,3,151,3,160,3,168,3, +154,3,134,3,134,3,133,3,113,3,105,3,115,3,108,3,85,3,77,3,75,3,55,3,33,3,22,3,4,3,239,2, +235,2,230,2,206,2,196,2,209,2,201,2,162,2,136,2,126,2,95,2,50,2,26,2,18,2,12,2,6,2,242,1, +199,1,169,1,182,1,187,1,141,1,74,1,31,1,13,1,18,1,33,1,21,1,238,0,215,0,207,0,179,0,145,0, +139,0,141,0,115,0,81,0,67,0,69,0,70,0,52,0,16,0,247,255,0,0,20,0,19,0,246,255,209,255,190,255, +201,255,216,255,206,255,185,255,171,255,155,255,137,255,135,255,150,255,159,255,143,255,104,255,76,255,83,255,104,255,104,255, +83,255,58,255,39,255,40,255,57,255,58,255,42,255,34,255,27,255,6,255,254,254,16,255,22,255,255,254,229,254,216,254, +216,254,224,254,220,254,193,254,167,254,161,254,166,254,170,254,160,254,114,254,68,254,76,254,116,254,123,254,96,254,65,254, +29,254,6,254,31,254,78,254,82,254,47,254,22,254,18,254,28,254,44,254,44,254,16,254,246,253,255,253,23,254,31,254, +33,254,44,254,46,254,34,254,31,254,48,254,62,254,66,254,77,254,92,254,100,254,110,254,133,254,159,254,180,254,202,254, +222,254,236,254,255,254,26,255,44,255,43,255,46,255,64,255,77,255,79,255,92,255,116,255,127,255,135,255,166,255,197,255, +196,255,188,255,194,255,197,255,193,255,211,255,231,255,221,255,205,255,211,255,224,255,234,255,253,255,1,0,234,255,217,255, +218,255,205,255,177,255,157,255,137,255,115,255,116,255,130,255,128,255,116,255,110,255,95,255,74,255,70,255,72,255,59,255, +40,255,33,255,32,255,26,255,22,255,23,255,25,255,29,255,36,255,38,255,31,255,25,255,35,255,48,255,47,255,43,255, +59,255,95,255,128,255,147,255,151,255,160,255,197,255,3,0,68,0,123,0,161,0,179,0,203,0,255,0,59,1,101,1, +135,1,164,1,190,1,238,1,53,2,116,2,172,2,241,2,48,3,85,3,116,3,149,3,174,3,214,3,20,4,69,4, +105,4,165,4,232,4,15,5,50,5,96,5,128,5,142,5,155,5,152,5,140,5,169,5,231,5,11,6,10,6,14,6, +26,6,27,6,22,6,23,6,24,6,10,6,246,5,235,5,231,5,223,5,219,5,217,5,194,5,159,5,147,5,145,5, +123,5,101,5,98,5,80,5,29,5,237,4,200,4,161,4,140,4,132,4,88,4,22,4,8,4,33,4,21,4,225,3, +174,3,122,3,60,3,18,3,252,2,215,2,164,2,134,2,121,2,94,2,51,2,1,2,186,1,103,1,42,1,10,1, +223,0,152,0,77,0,18,0,226,255,180,255,118,255,27,255,185,254,108,254,45,254,230,253,153,253,76,253,251,252,168,252, +86,252,246,251,130,251,12,251,165,250,78,250,3,250,180,249,76,249,210,248,103,248,10,248,145,247,241,246,75,246,185,245, +61,245,224,244,155,244,64,244,188,243,60,243,215,242,102,242,203,241,31,241,124,240,245,239,157,239,104,239,55,239,0,239, +194,238,111,238,20,238,206,237,130,237,9,237,128,236,36,236,4,236,13,236,34,236,32,236,2,236,227,235,214,235,242,235, +57,236,96,236,9,236,113,235,68,235,201,235,155,236,38,237,42,237,254,236,80,237,67,238,47,239,126,239,91,239,77,239, +168,239,122,240,116,241,20,242,62,242,121,242,58,243,101,244,124,245,16,246,19,246,15,246,178,246,249,247,33,249,150,249, +144,249,187,249,151,250,5,252,63,253,156,253,109,253,159,253,144,254,193,255,159,0,4,1,40,1,115,1,48,2,41,3, +232,3,70,4,118,4,176,4,39,5,248,5,226,6,103,7,117,7,136,7,254,7,170,8,46,9,100,9,107,9,135,9, +238,9,144,10,26,11,89,11,120,11,177,11,2,12,77,12,133,12,163,12,175,12,214,12,45,13,146,13,234,13,58,14, +115,14,120,14,110,14,149,14,235,14,65,15,118,15,118,15,76,15,65,15,131,15,215,15,242,15,233,15,229,15,231,15, +250,15,43,16,70,16,43,16,13,16,19,16,32,16,41,16,44,16,4,16,186,15,166,15,222,15,10,16,252,15,204,15, +133,15,64,15,40,15,24,15,193,14,74,14,19,14,12,14,225,13,136,13,40,13,213,12,161,12,135,12,69,12,179,11, +22,11,192,10,150,10,76,10,215,9,97,9,249,8,164,8,107,8,35,8,137,7,183,6,25,6,227,5,217,5,157,5, +239,4,241,3,42,3,235,2,221,2,128,2,203,1,5,1,112,0,47,0,25,0,204,255,40,255,119,254,3,254,209,253, +176,253,81,253,144,252,195,251,107,251,150,251,197,251,124,251,196,250,19,250,196,249,199,249,193,249,115,249,224,248,86,248, +45,248,83,248,103,248,66,248,6,248,200,247,148,247,138,247,163,247,154,247,89,247,22,247,1,247,35,247,104,247,150,247, +129,247,78,247,66,247,96,247,128,247,141,247,134,247,113,247,103,247,131,247,187,247,240,247,15,248,29,248,41,248,82,248, +152,248,204,248,210,248,212,248,1,249,71,249,138,249,202,249,249,249,11,250,39,250,112,250,206,250,26,251,81,251,114,251, +131,251,165,251,230,251,38,252,92,252,154,252,216,252,6,253,60,253,141,253,229,253,49,254,110,254,159,254,211,254,24,255, +107,255,187,255,248,255,31,0,77,0,160,0,4,1,78,1,118,1,152,1,205,1,30,2,110,2,147,2,161,2,207,2, +22,3,76,3,116,3,162,3,201,3,241,3,53,4,127,4,164,4,179,4,205,4,237,4,11,5,45,5,69,5,71,5, +77,5,121,5,176,5,190,5,171,5,174,5,214,5,2,6,17,6,247,5,194,5,170,5,210,5,8,6,4,6,214,5, +183,5,182,5,208,5,240,5,223,5,139,5,56,5,37,5,59,5,69,5,30,5,197,4,122,4,129,4,175,4,162,4, +78,4,243,3,191,3,183,3,194,3,173,3,97,3,13,3,225,2,216,2,206,2,168,2,98,2,27,2,238,1,223,1, +212,1,165,1,75,1,244,0,201,0,182,0,149,0,97,0,28,0,214,255,169,255,150,255,122,255,83,255,54,255,16,255, +212,254,162,254,132,254,93,254,53,254,28,254,253,253,209,253,190,253,185,253,149,253,95,253,67,253,52,253,17,253,239,252, +223,252,203,252,169,252,143,252,130,252,115,252,101,252,91,252,74,252,50,252,43,252,53,252,50,252,27,252,8,252,251,251, +229,251,212,251,211,251,202,251,178,251,171,251,187,251,195,251,195,251,194,251,174,251,137,251,119,251,120,251,117,251,121,251, +142,251,151,251,142,251,150,251,179,251,196,251,198,251,201,251,198,251,190,251,201,251,228,251,252,251,15,252,36,252,50,252, +58,252,77,252,107,252,128,252,137,252,144,252,165,252,209,252,12,253,52,253,64,253,79,253,116,253,169,253,227,253,18,254, +42,254,60,254,110,254,187,254,250,254,31,255,59,255,83,255,114,255,174,255,245,255,31,0,46,0,73,0,125,0,198,0, +23,1,79,1,86,1,84,1,127,1,206,1,18,2,56,2,72,2,93,2,144,2,210,2,4,3,32,3,53,3,74,3, +107,3,158,3,192,3,184,3,175,3,193,3,214,3,225,3,253,3,27,4,27,4,23,4,48,4,67,4,57,4,54,4, +68,4,62,4,35,4,22,4,26,4,31,4,38,4,40,4,20,4,252,3,3,4,24,4,16,4,232,3,188,3,161,3, +151,3,148,3,129,3,94,3,70,3,68,3,69,3,60,3,45,3,17,3,232,2,206,2,196,2,165,2,106,2,58,2, +39,2,32,2,19,2,250,1,201,1,153,1,137,1,131,1,85,1,9,1,214,0,193,0,164,0,112,0,62,0,40,0, +38,0,21,0,234,255,184,255,135,255,80,255,36,255,22,255,13,255,231,254,172,254,117,254,77,254,48,254,17,254,224,253, +159,253,104,253,78,253,72,253,62,253,31,253,242,252,203,252,177,252,151,252,119,252,78,252,40,252,18,252,10,252,3,252, +255,251,253,251,227,251,176,251,138,251,125,251,101,251,54,251,14,251,254,250,4,251,22,251,24,251,247,250,211,250,206,250, +218,250,209,250,173,250,126,250,103,250,124,250,171,250,200,250,195,250,179,250,173,250,179,250,174,250,152,250,135,250,142,250, +167,250,196,250,215,250,212,250,204,250,223,250,10,251,40,251,45,251,43,251,51,251,82,251,134,251,183,251,218,251,251,251, +29,252,67,252,128,252,198,252,243,252,23,253,81,253,145,253,195,253,4,254,80,254,130,254,172,254,245,254,81,255,167,255, +1,0,90,0,158,0,218,0,36,1,106,1,169,1,248,1,79,2,153,2,233,2,87,3,196,3,18,4,83,4,151,4, +210,4,2,5,60,5,125,5,179,5,238,5,71,6,172,6,249,6,50,7,101,7,148,7,192,7,238,7,14,8,36,8, +72,8,121,8,161,8,209,8,19,9,68,9,81,9,84,9,87,9,84,9,97,9,134,9,152,9,134,9,118,9,128,9, +149,9,165,9,163,9,140,9,121,9,118,9,114,9,92,9,61,9,31,9,3,9,242,8,235,8,222,8,197,8,161,8, +114,8,60,8,12,8,224,7,168,7,95,7,30,7,245,6,205,6,139,6,61,6,248,5,184,5,114,5,41,5,200,4, +80,4,238,3,177,3,105,3,5,3,168,2,85,2,240,1,133,1,31,1,161,0,16,0,155,255,68,255,220,254,84,254, +194,253,56,253,188,252,67,252,172,251,244,250,75,250,201,249,86,249,216,248,73,248,168,247,255,246,95,246,194,245,18,245, +88,244,187,243,68,243,218,242,120,242,31,242,181,241,38,241,151,240,30,240,157,239,8,239,128,238,23,238,198,237,149,237, +112,237,43,237,217,236,172,236,138,236,62,236,225,235,161,235,123,235,116,235,148,235,182,235,195,235,226,235,22,236,44,236, +40,236,59,236,97,236,125,236,160,236,224,236,57,237,169,237,40,238,134,238,190,238,11,239,135,239,0,240,89,240,180,240, +44,241,185,241,93,242,19,243,180,243,35,244,135,244,13,245,166,245,51,246,177,246,31,247,142,247,47,248,1,249,174,249, +14,250,101,250,245,250,175,251,99,252,240,252,75,253,159,253,39,254,225,254,143,255,14,0,118,0,235,0,126,1,28,2, +160,2,3,3,94,3,192,3,55,4,193,4,64,5,150,5,224,5,75,6,214,6,92,7,196,7,19,8,109,8,228,8, +90,9,173,9,234,9,44,10,130,10,240,10,100,11,187,11,249,11,72,12,164,12,236,12,41,13,116,13,186,13,231,13, +12,14,53,14,99,14,159,14,233,14,48,15,110,15,166,15,202,15,215,15,239,15,34,16,77,16,89,16,95,16,120,16, +153,16,171,16,173,16,162,16,154,16,162,16,174,16,157,16,110,16,68,16,38,16,12,16,244,15,216,15,163,15,99,15, +59,15,30,15,233,14,165,14,99,14,24,14,210,13,167,13,120,13,21,13,148,12,37,12,212,11,146,11,69,11,211,10, +73,10,207,9,110,9,8,9,151,8,37,8,172,7,48,7,191,6,83,6,219,5,92,5,222,4,96,4,235,3,129,3, +17,3,146,2,16,2,160,1,76,1,8,1,172,0,37,0,154,255,49,255,226,254,139,254,37,254,184,253,81,253,0,253, +203,252,149,252,60,252,208,251,128,251,83,251,32,251,215,250,143,250,87,250,43,250,13,250,249,249,216,249,169,249,128,249, +98,249,73,249,53,249,35,249,12,249,251,248,247,248,236,248,210,248,186,248,171,248,159,248,158,248,172,248,187,248,189,248, +187,248,195,248,214,248,227,248,221,248,225,248,6,249,45,249,49,249,49,249,89,249,158,249,209,249,217,249,197,249,196,249, +245,249,57,250,92,250,96,250,110,250,153,250,216,250,20,251,52,251,63,251,84,251,133,251,197,251,255,251,39,252,59,252, +86,252,139,252,210,252,16,253,60,253,87,253,113,253,156,253,221,253,33,254,79,254,101,254,126,254,184,254,6,255,62,255, +89,255,115,255,160,255,225,255,45,0,114,0,159,0,188,0,221,0,5,1,53,1,108,1,152,1,174,1,197,1,249,1, +66,2,130,2,161,2,172,2,188,2,215,2,242,2,14,3,49,3,73,3,87,3,117,3,169,3,206,3,216,3,222,3, +240,3,9,4,31,4,49,4,60,4,61,4,52,4,54,4,82,4,106,4,94,4,68,4,59,4,57,4,48,4,39,4, +21,4,241,3,217,3,221,3,220,3,196,3,166,3,142,3,117,3,106,3,112,3,99,3,49,3,247,2,215,2,204,2, +190,2,154,2,102,2,57,2,37,2,35,2,21,2,233,1,175,1,136,1,121,1,106,1,75,1,26,1,231,0,204,0, +203,0,194,0,156,0,113,0,83,0,59,0,33,0,8,0,231,255,189,255,149,255,121,255,105,255,95,255,80,255,48,255, +4,255,219,254,188,254,171,254,160,254,144,254,119,254,97,254,88,254,90,254,89,254,68,254,33,254,7,254,243,253,217,253, +202,253,209,253,205,253,176,253,157,253,163,253,166,253,154,253,135,253,104,253,68,253,50,253,48,253,44,253,41,253,42,253, +42,253,43,253,54,253,62,253,56,253,41,253,33,253,39,253,55,253,59,253,41,253,28,253,36,253,52,253,69,253,89,253, +100,253,86,253,65,253,64,253,87,253,118,253,138,253,133,253,119,253,127,253,162,253,198,253,212,253,214,253,224,253,249,253, +22,254,44,254,64,254,87,254,109,254,124,254,134,254,150,254,174,254,196,254,206,254,220,254,247,254,22,255,51,255,77,255, +93,255,114,255,158,255,199,255,204,255,204,255,244,255,41,0,69,0,87,0,108,0,127,0,164,0,219,0,246,0,247,0, +11,1,44,1,59,1,79,1,113,1,125,1,132,1,184,1,243,1,245,1,229,1,246,1,16,2,35,2,76,2,117,2, +112,2,95,2,121,2,166,2,189,2,194,2,195,2,188,2,200,2,244,2,23,3,21,3,15,3,29,3,33,3,26,3, +36,3,46,3,38,3,46,3,82,3,99,3,94,3,109,3,135,3,138,3,138,3,150,3,144,3,129,3,145,3,170,3, +159,3,145,3,166,3,187,3,184,3,180,3,171,3,143,3,122,3,118,3,106,3,86,3,75,3,64,3,42,3,32,3, +35,3,26,3,4,3,239,2,216,2,190,2,181,2,179,2,150,2,93,2,48,2,35,2,32,2,11,2,227,1,181,1, +150,1,142,1,133,1,91,1,38,1,5,1,228,0,178,0,145,0,142,0,122,0,70,0,39,0,44,0,43,0,21,0, +241,255,186,255,132,255,111,255,102,255,63,255,16,255,253,254,244,254,223,254,200,254,186,254,169,254,142,254,105,254,57,254, +6,254,231,253,217,253,196,253,165,253,145,253,138,253,127,253,104,253,76,253,43,253,6,253,229,252,197,252,154,252,116,252, +101,252,94,252,72,252,47,252,26,252,2,252,244,251,239,251,207,251,148,251,114,251,108,251,87,251,54,251,40,251,32,251, +20,251,24,251,35,251,15,251,236,250,230,250,245,250,253,250,252,250,247,250,233,250,221,250,233,250,16,251,64,251,97,251, +105,251,109,251,145,251,209,251,4,252,25,252,41,252,76,252,123,252,179,252,248,252,56,253,96,253,138,253,213,253,37,254, +90,254,141,254,216,254,32,255,88,255,157,255,240,255,51,0,107,0,176,0,250,0,63,1,136,1,206,1,1,2,52,2, +128,2,219,2,40,3,96,3,145,3,199,3,6,4,74,4,133,4,171,4,203,4,254,4,58,5,94,5,114,5,157,5, +211,5,238,5,247,5,11,6,42,6,71,6,97,6,108,6,99,6,102,6,126,6,146,6,157,6,171,6,181,6,181,6, +188,6,198,6,189,6,170,6,158,6,142,6,113,6,90,6,79,6,61,6,36,6,20,6,18,6,14,6,250,5,208,5, +155,5,105,5,65,5,33,5,252,4,206,4,164,4,137,4,116,4,92,4,56,4,253,3,176,3,104,3,41,3,227,2, +155,2,94,2,31,2,212,1,145,1,87,1,13,1,169,0,59,0,209,255,113,255,28,255,197,254,92,254,237,253,135,253, +43,253,197,252,73,252,183,251,25,251,120,250,231,249,120,249,34,249,193,248,60,248,151,247,244,246,112,246,249,245,84,245, +135,244,231,243,148,243,81,243,251,242,167,242,76,242,214,241,99,241,2,241,146,240,12,240,140,239,26,239,196,238,172,238, +183,238,153,238,84,238,36,238,13,238,236,237,187,237,126,237,61,237,32,237,65,237,115,237,143,237,174,237,230,237,20,238, +34,238,49,238,107,238,209,238,59,239,120,239,130,239,160,239,35,240,228,240,107,241,142,241,164,241,12,242,209,242,173,243, +76,244,150,244,204,244,55,245,216,245,129,246,5,247,79,247,139,247,25,248,13,249,0,250,156,250,232,250,30,251,133,251, +75,252,38,253,139,253,135,253,188,253,129,254,142,255,108,0,211,0,221,0,3,1,151,1,89,2,224,2,32,3,83,3, +165,3,40,4,206,4,100,5,192,5,236,5,18,6,89,6,206,6,82,7,173,7,211,7,247,7,75,8,190,8,25,9, +67,9,79,9,97,9,155,9,251,9,89,10,146,10,189,10,250,10,65,11,123,11,163,11,182,11,184,11,202,11,0,12, +73,12,139,12,197,12,237,12,245,12,238,12,253,12,42,13,83,13,84,13,56,13,49,13,85,13,133,13,169,13,188,13, +186,13,170,13,164,13,164,13,156,13,155,13,172,13,177,13,156,13,132,13,119,13,107,13,84,13,38,13,235,12,202,12, +198,12,171,12,108,12,55,12,23,12,237,11,172,11,92,11,8,11,192,10,132,10,57,10,227,9,159,9,105,9,36,9, +212,8,135,8,41,8,186,7,86,7,1,7,156,6,35,6,182,5,94,5,6,5,172,4,89,4,249,3,115,3,238,2, +157,2,103,2,10,2,130,1,246,0,135,0,66,0,25,0,214,255,94,255,220,254,130,254,75,254,27,254,216,253,117,253, +15,253,206,252,164,252,110,252,48,252,241,251,169,251,106,251,82,251,82,251,55,251,251,250,193,250,168,250,169,250,167,250, +144,250,107,250,73,250,56,250,65,250,92,250,121,250,137,250,128,250,97,250,93,250,149,250,219,250,237,250,213,250,198,250, +226,250,47,251,139,251,185,251,177,251,183,251,241,251,64,252,124,252,155,252,170,252,203,252,12,253,79,253,125,253,154,253, +173,253,200,253,11,254,100,254,148,254,146,254,154,254,201,254,7,255,66,255,111,255,136,255,150,255,173,255,209,255,252,255, +39,0,75,0,102,0,128,0,156,0,185,0,215,0,242,0,1,1,1,1,253,0,11,1,51,1,96,1,119,1,123,1, +121,1,118,1,133,1,176,1,210,1,200,1,179,1,195,1,230,1,248,1,239,1,227,1,241,1,27,2,54,2,39,2, +10,2,7,2,30,2,66,2,90,2,77,2,42,2,26,2,34,2,44,2,60,2,79,2,72,2,44,2,35,2,58,2, +80,2,78,2,54,2,30,2,29,2,39,2,32,2,3,2,235,1,230,1,237,1,235,1,212,1,179,1,157,1,147,1, +137,1,118,1,87,1,50,1,28,1,26,1,23,1,9,1,243,0,209,0,162,0,125,0,115,0,117,0,107,0,73,0, +30,0,3,0,252,255,246,255,222,255,183,255,140,255,105,255,79,255,53,255,35,255,29,255,12,255,227,254,189,254,173,254, +155,254,124,254,98,254,77,254,53,254,43,254,34,254,253,253,211,253,194,253,183,253,160,253,148,253,137,253,96,253,53,253, +52,253,63,253,43,253,11,253,241,252,213,252,195,252,206,252,213,252,185,252,146,252,131,252,140,252,157,252,166,252,157,252, +127,252,98,252,95,252,115,252,127,252,114,252,95,252,96,252,114,252,135,252,144,252,126,252,100,252,108,252,154,252,181,252, +164,252,146,252,165,252,202,252,224,252,224,252,219,252,222,252,237,252,11,253,51,253,81,253,86,253,81,253,93,253,130,253, +166,253,175,253,165,253,172,253,208,253,3,254,43,254,56,254,56,254,82,254,141,254,185,254,178,254,166,254,197,254,251,254, +39,255,79,255,109,255,119,255,139,255,196,255,251,255,12,0,16,0,40,0,80,0,127,0,172,0,202,0,226,0,4,1, +37,1,69,1,113,1,154,1,161,1,161,1,201,1,8,2,50,2,73,2,93,2,112,2,134,2,165,2,190,2,203,2, +217,2,243,2,23,3,68,3,105,3,111,3,92,3,87,3,112,3,137,3,141,3,140,3,147,3,156,3,172,3,209,3, +241,3,226,3,187,3,174,3,190,3,201,3,192,3,168,3,148,3,161,3,204,3,230,3,213,3,177,3,146,3,134,3, +140,3,135,3,105,3,81,3,85,3,94,3,97,3,99,3,75,3,29,3,12,3,27,3,18,3,234,2,202,2,189,2, +184,2,187,2,179,2,135,2,85,2,65,2,52,2,21,2,242,1,215,1,190,1,170,1,157,1,136,1,98,1,62,1, +39,1,20,1,250,0,221,0,196,0,169,0,137,0,110,0,90,0,60,0,16,0,228,255,199,255,190,255,183,255,146,255, +85,255,50,255,47,255,22,255,227,254,190,254,166,254,131,254,104,254,90,254,62,254,26,254,4,254,237,253,186,253,133,253, +104,253,86,253,58,253,21,253,245,252,227,252,210,252,173,252,114,252,61,252,26,252,255,251,225,251,196,251,180,251,172,251, +151,251,118,251,89,251,60,251,18,251,232,250,195,250,157,250,141,250,158,250,160,250,127,250,111,250,129,250,132,250,107,250, +80,250,47,250,13,250,8,250,24,250,30,250,42,250,66,250,75,250,74,250,96,250,127,250,143,250,163,250,197,250,222,250, +241,250,21,251,67,251,106,251,143,251,190,251,248,251,55,252,109,252,158,252,212,252,15,253,81,253,168,253,252,253,43,254, +74,254,139,254,235,254,74,255,164,255,249,255,66,0,142,0,240,0,86,1,169,1,237,1,53,2,132,2,218,2,56,3, +146,3,225,3,45,4,133,4,224,4,37,5,89,5,149,5,212,5,15,6,91,6,183,6,252,6,42,7,95,7,150,7, +185,7,220,7,9,8,43,8,73,8,114,8,153,8,184,8,226,8,6,9,7,9,255,8,16,9,36,9,38,9,36,9, +34,9,26,9,35,9,72,9,99,9,83,9,40,9,9,9,255,8,250,8,235,8,212,8,190,8,174,8,166,8,159,8, +136,8,100,8,69,8,38,8,254,7,213,7,174,7,131,7,94,7,70,7,41,7,252,6,199,6,133,6,59,6,4,6, +221,5,165,5,98,5,43,5,246,4,173,4,87,4,0,4,170,3,97,3,29,3,194,2,84,2,248,1,173,1,90,1, +253,0,150,0,22,0,138,255,24,255,189,254,82,254,210,253,83,253,214,252,78,252,193,251,58,251,161,250,230,249,46,249, +172,248,76,248,217,247,63,247,143,246,217,245,47,245,152,244,2,244,95,243,198,242,69,242,208,241,104,241,22,241,197,240, +82,240,190,239,30,239,129,238,254,237,160,237,69,237,223,236,151,236,132,236,125,236,100,236,53,236,227,235,121,235,60,235, +66,235,63,235,13,235,230,234,245,234,48,235,145,235,245,235,21,236,240,235,231,235,46,236,152,236,254,236,78,237,118,237, +146,237,244,237,162,238,78,239,200,239,28,240,99,240,203,240,122,241,64,242,200,242,26,243,124,243,1,244,159,244,86,245, +8,246,132,246,232,246,123,247,62,248,7,249,188,249,61,250,125,250,207,250,141,251,131,252,58,253,154,253,234,253,106,254, +57,255,43,0,201,0,223,0,228,0,98,1,76,2,40,3,172,3,228,3,16,4,119,4,37,5,208,5,44,6,64,6, +78,6,139,6,13,7,193,7,88,8,153,8,179,8,251,8,106,9,194,9,241,9,10,10,33,10,98,10,220,10,75,11, +132,11,179,11,252,11,63,12,119,12,174,12,193,12,169,12,173,12,239,12,67,13,146,13,219,13,248,13,237,13,253,13, +59,14,111,14,128,14,128,14,113,14,100,14,135,14,207,14,240,14,217,14,204,14,236,14,11,15,4,15,238,14,216,14, +196,14,195,14,209,14,186,14,118,14,69,14,68,14,72,14,55,14,13,14,193,13,122,13,113,13,131,13,88,13,240,12, +128,12,19,12,191,11,172,11,163,11,73,11,188,10,100,10,69,10,28,10,203,9,77,9,169,8,27,8,212,7,164,7, +61,7,179,6,75,6,4,6,185,5,97,5,243,4,90,4,194,3,99,3,33,3,190,2,74,2,225,1,113,1,0,1, +179,0,105,0,240,255,109,255,5,255,159,254,59,254,251,253,204,253,132,253,43,253,200,252,92,252,18,252,6,252,238,251, +142,251,27,251,224,250,219,250,221,250,195,250,130,250,52,250,7,250,7,250,17,250,3,250,223,249,191,249,178,249,188,249, +215,249,228,249,199,249,160,249,168,249,212,249,246,249,4,250,9,250,18,250,61,250,132,250,169,250,155,250,157,250,194,250, +232,250,18,251,80,251,117,251,122,251,156,251,222,251,11,252,34,252,67,252,97,252,118,252,159,252,214,252,0,253,34,253, +75,253,102,253,121,253,162,253,211,253,226,253,236,253,35,254,110,254,146,254,148,254,158,254,184,254,227,254,30,255,68,255, +54,255,34,255,68,255,138,255,197,255,229,255,226,255,203,255,218,255,35,0,97,0,99,0,83,0,97,0,137,0,179,0, +213,0,224,0,220,0,228,0,1,1,36,1,65,1,81,1,84,1,86,1,98,1,123,1,148,1,155,1,144,1,145,1, +173,1,203,1,213,1,206,1,199,1,203,1,222,1,244,1,254,1,5,2,9,2,0,2,242,1,251,1,21,2,36,2, +36,2,26,2,2,2,235,1,240,1,9,2,16,2,245,1,206,1,189,1,200,1,213,1,205,1,184,1,165,1,153,1, +149,1,145,1,134,1,110,1,84,1,66,1,58,1,52,1,38,1,9,1,236,0,226,0,228,0,224,0,204,0,176,0, +148,0,133,0,133,0,125,0,93,0,60,0,55,0,61,0,50,0,29,0,18,0,16,0,13,0,6,0,241,255,210,255, +197,255,207,255,201,255,165,255,127,255,117,255,127,255,138,255,132,255,106,255,79,255,71,255,76,255,72,255,46,255,6,255, +231,254,222,254,227,254,229,254,215,254,189,254,174,254,184,254,189,254,164,254,129,254,104,254,90,254,89,254,87,254,61,254, +31,254,37,254,60,254,46,254,14,254,4,254,0,254,237,253,227,253,228,253,220,253,214,253,223,253,223,253,207,253,207,253, +224,253,226,253,213,253,212,253,219,253,218,253,216,253,228,253,243,253,247,253,239,253,233,253,243,253,18,254,46,254,39,254, +15,254,29,254,79,254,114,254,113,254,99,254,94,254,106,254,141,254,167,254,159,254,145,254,157,254,186,254,219,254,0,255, +14,255,241,254,215,254,238,254,26,255,48,255,41,255,20,255,11,255,44,255,110,255,156,255,143,255,99,255,91,255,143,255, +207,255,232,255,217,255,190,255,183,255,217,255,13,0,33,0,24,0,19,0,25,0,44,0,90,0,124,0,102,0,68,0, +82,0,112,0,125,0,141,0,151,0,132,0,130,0,175,0,213,0,214,0,214,0,214,0,197,0,193,0,222,0,242,0, +231,0,219,0,218,0,227,0,1,1,42,1,41,1,248,0,208,0,214,0,237,0,247,0,253,0,255,0,239,0,232,0, +6,1,30,1,1,1,219,0,222,0,231,0,215,0,205,0,211,0,209,0,212,0,237,0,248,0,230,0,214,0,207,0, +191,0,176,0,170,0,157,0,144,0,151,0,161,0,152,0,143,0,153,0,159,0,142,0,120,0,105,0,85,0,61,0, +57,0,68,0,65,0,48,0,39,0,31,0,19,0,19,0,23,0,251,255,211,255,199,255,197,255,179,255,171,255,174,255, +159,255,137,255,134,255,126,255,98,255,77,255,64,255,40,255,23,255,25,255,21,255,1,255,241,254,222,254,193,254,170,254, +150,254,120,254,95,254,85,254,68,254,42,254,23,254,4,254,225,253,189,253,165,253,144,253,120,253,100,253,88,253,72,253, +43,253,11,253,248,252,236,252,215,252,184,252,151,252,120,252,108,252,119,252,121,252,94,252,66,252,51,252,36,252,26,252, +26,252,13,252,239,251,232,251,252,251,6,252,7,252,18,252,29,252,33,252,45,252,58,252,52,252,47,252,73,252,112,252, +143,252,181,252,229,252,8,253,31,253,66,253,115,253,164,253,208,253,242,253,10,254,55,254,145,254,243,254,53,255,103,255, +167,255,242,255,63,0,141,0,202,0,245,0,57,1,158,1,243,1,38,2,104,2,208,2,68,3,173,3,255,3,54,4, +99,4,157,4,228,4,34,5,87,5,146,5,217,5,44,6,131,6,218,6,45,7,111,7,149,7,180,7,229,7,23,8, +43,8,51,8,92,8,168,8,232,8,254,8,4,9,35,9,92,9,139,9,152,9,137,9,124,9,136,9,167,9,190,9, +187,9,168,9,156,9,161,9,177,9,188,9,183,9,167,9,154,9,139,9,116,9,90,9,65,9,33,9,249,8,219,8, +203,8,191,8,166,8,126,8,72,8,19,8,242,7,217,7,163,7,87,7,24,7,241,6,207,6,166,6,102,6,11,6, +184,5,130,5,76,5,4,5,189,4,115,4,20,4,188,3,129,3,61,3,216,2,110,2,7,2,147,1,42,1,220,0, +135,0,19,0,145,255,17,255,154,254,56,254,217,253,96,253,214,252,92,252,240,251,125,251,251,250,113,250,229,249,87,249, +191,248,27,248,122,247,233,246,103,246,236,245,105,245,217,244,71,244,183,243,27,243,114,242,207,241,67,241,211,240,112,240, +7,240,162,239,88,239,12,239,150,238,14,238,158,237,53,237,195,236,99,236,32,236,240,235,225,235,231,235,204,235,133,235, +77,235,59,235,46,235,18,235,244,234,223,234,226,234,13,235,83,235,161,235,235,235,31,236,43,236,56,236,148,236,59,237, +191,237,219,237,212,237,30,238,212,238,178,239,73,240,100,240,111,240,8,241,22,242,243,242,104,243,185,243,12,244,127,244, +64,245,20,246,139,246,184,246,18,247,201,247,199,248,208,249,114,250,137,250,168,250,95,251,107,252,39,253,92,253,93,253, +164,253,117,254,149,255,110,0,182,0,193,0,10,1,164,1,79,2,217,2,57,3,116,3,177,3,45,4,217,4,95,5, +163,5,205,5,250,5,71,6,208,6,83,7,123,7,133,7,225,7,121,8,237,8,37,9,49,9,45,9,88,9,186,9, +5,10,47,10,118,10,207,10,4,11,50,11,131,11,197,11,205,11,198,11,215,11,248,11,38,12,103,12,162,12,193,12, +220,12,10,13,52,13,68,13,78,13,97,13,112,13,122,13,141,13,157,13,167,13,202,13,0,14,19,14,254,13,242,13, +249,13,6,14,30,14,51,14,36,14,0,14,232,13,214,13,201,13,212,13,220,13,183,13,128,13,107,13,115,13,112,13, +77,13,5,13,174,12,115,12,96,12,64,12,237,11,137,11,79,11,58,11,26,11,223,10,146,10,43,10,182,9,96,9, +41,9,222,8,116,8,5,8,145,7,43,7,253,6,229,6,134,6,218,5,57,5,211,4,161,4,124,4,30,4,118,3, +220,2,145,2,100,2,31,2,198,1,87,1,209,0,105,0,60,0,16,0,176,255,53,255,209,254,150,254,116,254,68,254, +228,253,102,253,12,253,242,252,239,252,205,252,133,252,57,252,2,252,227,251,210,251,186,251,147,251,110,251,83,251,47,251, +12,251,10,251,24,251,5,251,216,250,195,250,207,250,224,250,233,250,230,250,206,250,177,250,178,250,198,250,198,250,179,250, +166,250,163,250,172,250,212,250,8,251,23,251,249,250,226,250,244,250,21,251,33,251,12,251,236,250,235,250,22,251,70,251, +83,251,68,251,57,251,66,251,95,251,119,251,110,251,73,251,51,251,65,251,98,251,127,251,143,251,144,251,144,251,156,251, +177,251,186,251,176,251,164,251,170,251,197,251,225,251,243,251,255,251,9,252,23,252,51,252,85,252,102,252,99,252,103,252, +129,252,162,252,190,252,218,252,248,252,22,253,58,253,104,253,143,253,161,253,174,253,200,253,238,253,25,254,71,254,119,254, +165,254,214,254,4,255,35,255,58,255,91,255,137,255,184,255,227,255,14,0,57,0,95,0,127,0,165,0,216,0,14,1, +54,1,82,1,106,1,127,1,162,1,220,1,11,2,25,2,41,2,87,2,140,2,176,2,187,2,180,2,193,2,254,2, +65,3,78,3,58,3,53,3,73,3,112,3,159,3,180,3,165,3,165,3,206,3,253,3,22,4,22,4,0,4,240,3, +5,4,42,4,56,4,46,4,37,4,48,4,84,4,127,4,141,4,116,4,86,4,79,4,91,4,97,4,83,4,72,4, +87,4,112,4,123,4,125,4,122,4,110,4,106,4,112,4,95,4,55,4,41,4,64,4,84,4,82,4,67,4,53,4, +49,4,48,4,30,4,252,3,222,3,201,3,192,3,205,3,212,3,180,3,130,3,110,3,115,3,106,3,74,3,37,3, +4,3,230,2,207,2,195,2,182,2,155,2,125,2,101,2,73,2,46,2,28,2,249,1,179,1,116,1,97,1,92,1, +72,1,46,1,8,1,214,0,185,0,168,0,118,0,52,0,13,0,236,255,191,255,164,255,153,255,119,255,75,255,47,255, +17,255,231,254,193,254,149,254,83,254,23,254,247,253,229,253,207,253,182,253,150,253,114,253,86,253,63,253,31,253,233,252, +170,252,134,252,128,252,109,252,66,252,34,252,17,252,249,251,227,251,205,251,157,251,107,251,96,251,90,251,54,251,19,251, +1,251,223,250,189,250,191,250,192,250,154,250,115,250,100,250,85,250,74,250,84,250,89,250,69,250,46,250,37,250,32,250, +24,250,15,250,1,250,247,249,1,250,24,250,33,250,19,250,4,250,7,250,19,250,26,250,33,250,44,250,51,250,54,250, +59,250,76,250,118,250,178,250,206,250,191,250,195,250,251,250,62,251,100,251,115,251,126,251,159,251,233,251,62,252,109,252, +127,252,157,252,211,252,23,253,87,253,130,253,154,253,187,253,248,253,68,254,139,254,194,254,240,254,46,255,121,255,186,255, +234,255,25,0,80,0,138,0,201,0,16,1,86,1,143,1,185,1,234,1,48,2,117,2,165,2,214,2,18,3,59,3, +86,3,135,3,204,3,2,4,45,4,85,4,107,4,128,4,179,4,241,4,24,5,54,5,91,5,121,5,145,5,173,5, +184,5,182,5,206,5,254,5,21,6,12,6,6,6,13,6,25,6,48,6,70,6,63,6,32,6,17,6,31,6,50,6, +52,6,41,6,25,6,9,6,255,5,248,5,229,5,197,5,163,5,138,5,125,5,125,5,119,5,90,5,49,5,22,5, +3,5,228,4,187,4,150,4,119,4,89,4,70,4,56,4,27,4,237,3,198,3,173,3,145,3,118,3,100,3,69,3, +12,3,217,2,201,2,196,2,173,2,131,2,77,2,23,2,247,1,241,1,236,1,216,1,183,1,139,1,100,1,85,1, +83,1,59,1,9,1,215,0,192,0,197,0,204,0,186,0,153,0,139,0,147,0,153,0,138,0,103,0,52,0,12,0, +13,0,40,0,43,0,13,0,248,255,2,0,20,0,16,0,246,255,216,255,198,255,198,255,205,255,200,255,184,255,174,255, +180,255,191,255,197,255,186,255,159,255,137,255,136,255,144,255,139,255,123,255,111,255,114,255,129,255,129,255,102,255,74,255, +73,255,87,255,89,255,74,255,57,255,48,255,49,255,48,255,42,255,38,255,30,255,11,255,0,255,6,255,5,255,249,254, +250,254,249,254,221,254,188,254,169,254,150,254,136,254,139,254,132,254,104,254,87,254,85,254,70,254,47,254,27,254,245,253, +194,253,161,253,155,253,148,253,127,253,92,253,49,253,9,253,231,252,195,252,152,252,97,252,39,252,250,251,211,251,158,251, +105,251,73,251,35,251,227,250,165,250,110,250,36,250,214,249,159,249,97,249,7,249,181,248,123,248,58,248,227,247,134,247, +51,247,241,246,185,246,113,246,22,246,195,245,125,245,39,245,198,244,121,244,54,244,215,243,105,243,55,243,95,243,151,243, +127,243,254,242,80,242,221,241,230,241,41,242,20,242,153,241,64,241,99,241,211,241,65,242,116,242,79,242,2,242,231,241, +8,242,52,242,80,242,87,242,97,242,184,242,129,243,90,244,185,244,144,244,94,244,177,244,135,245,64,246,87,246,11,246, +19,246,218,246,17,248,1,249,70,249,59,249,111,249,6,250,208,250,133,251,220,251,224,251,2,252,153,252,127,253,81,254, +187,254,190,254,217,254,129,255,117,0,26,1,75,1,87,1,145,1,23,2,187,2,36,3,71,3,122,3,242,3,135,4, +6,5,83,5,120,5,163,5,249,5,103,6,197,6,251,6,5,7,4,7,59,7,192,7,85,8,182,8,212,8,206,8, +208,8,234,8,20,9,68,9,125,9,176,9,206,9,233,9,15,10,57,10,94,10,123,10,138,10,137,10,124,10,105,10, +98,10,135,10,205,10,254,10,249,10,208,10,174,10,183,10,221,10,234,10,196,10,141,10,117,10,129,10,149,10,156,10, +148,10,123,10,85,10,53,10,36,10,6,10,205,9,156,9,136,9,122,9,99,9,73,9,36,9,252,8,238,8,240,8, +206,8,127,8,36,8,215,7,166,7,152,7,149,7,122,7,60,7,235,6,169,6,144,6,138,6,105,6,19,6,153,5, +37,5,217,4,179,4,141,4,81,4,9,4,187,3,115,3,71,3,42,3,233,2,118,2,241,1,123,1,41,1,254,0, +204,0,105,0,254,255,196,255,164,255,101,255,15,255,183,254,87,254,247,253,175,253,112,253,25,253,180,252,98,252,47,252, +30,252,21,252,222,251,105,251,246,250,194,250,192,250,196,250,164,250,75,250,214,249,146,249,168,249,223,249,229,249,175,249, +105,249,65,249,76,249,122,249,144,249,108,249,57,249,55,249,104,249,154,249,171,249,161,249,155,249,188,249,5,250,72,250, +87,250,64,250,56,250,93,250,166,250,250,250,52,251,62,251,59,251,105,251,202,251,43,252,99,252,102,252,88,252,129,252, +239,252,87,253,123,253,123,253,140,253,195,253,27,254,118,254,171,254,190,254,211,254,244,254,31,255,93,255,166,255,218,255, +241,255,13,0,73,0,145,0,188,0,201,0,221,0,11,1,71,1,126,1,163,1,180,1,197,1,238,1,37,2,88,2, +125,2,138,2,137,2,155,2,197,2,244,2,27,3,52,3,60,3,73,3,114,3,161,3,182,3,189,3,199,3,205,3, +214,3,244,3,24,4,43,4,52,4,62,4,74,4,88,4,108,4,126,4,136,4,141,4,141,4,142,4,151,4,175,4, +203,4,219,4,219,4,219,4,223,4,223,4,221,4,236,4,0,5,1,5,0,5,13,5,13,5,249,4,248,4,14,5, +19,5,7,5,251,4,239,4,238,4,2,5,6,5,231,4,211,4,219,4,213,4,182,4,146,4,113,4,93,4,98,4, +103,4,75,4,26,4,235,3,202,3,188,3,179,3,144,3,82,3,21,3,239,2,228,2,217,2,173,2,106,2,52,2, +17,2,245,1,214,1,161,1,87,1,30,1,8,1,243,0,200,0,147,0,94,0,41,0,2,0,234,255,204,255,154,255, +90,255,32,255,253,254,237,254,216,254,179,254,134,254,96,254,74,254,61,254,42,254,10,254,226,253,191,253,169,253,160,253, +146,253,121,253,100,253,85,253,58,253,27,253,17,253,16,253,4,253,247,252,233,252,205,252,180,252,179,252,180,252,167,252, +160,252,154,252,135,252,125,252,139,252,142,252,119,252,98,252,89,252,83,252,87,252,82,252,53,252,27,252,34,252,47,252, +46,252,38,252,24,252,10,252,10,252,11,252,253,251,236,251,222,251,202,251,194,251,213,251,235,251,239,251,231,251,210,251, +184,251,176,251,179,251,177,251,178,251,187,251,184,251,174,251,182,251,204,251,217,251,213,251,199,251,186,251,192,251,208,251, +215,251,217,251,229,251,246,251,11,252,38,252,59,252,61,252,62,252,88,252,126,252,154,252,185,252,233,252,25,253,62,253, +112,253,179,253,235,253,14,254,49,254,96,254,152,254,223,254,42,255,97,255,130,255,168,255,232,255,63,0,158,0,240,0, +46,1,104,1,172,1,243,1,56,2,136,2,218,2,18,3,57,3,120,3,217,3,58,4,133,4,194,4,251,4,51,5, +108,5,161,5,199,5,232,5,14,6,60,6,110,6,171,6,238,6,30,7,55,7,85,7,136,7,183,7,199,7,194,7, +189,7,195,7,231,7,33,8,68,8,61,8,45,8,47,8,65,8,87,8,89,8,62,8,34,8,32,8,43,8,52,8, +50,8,28,8,255,7,255,7,24,8,37,8,27,8,2,8,224,7,195,7,183,7,175,7,154,7,128,7,102,7,70,7, +41,7,36,7,36,7,253,6,181,6,135,6,122,6,95,6,36,6,228,5,173,5,126,5,88,5,50,5,2,5,206,4, +155,4,90,4,14,4,198,3,127,3,52,3,231,2,153,2,79,2,19,2,216,1,136,1,44,1,218,0,148,0,73,0, +231,255,120,255,20,255,199,254,137,254,78,254,6,254,165,253,65,253,248,252,186,252,105,252,17,252,190,251,103,251,27,251, +237,250,188,250,101,250,12,250,210,249,155,249,81,249,9,249,195,248,119,248,62,248,24,248,216,247,120,247,42,247,250,246, +201,246,141,246,78,246,9,246,203,245,154,245,100,245,39,245,242,244,178,244,79,244,231,243,148,243,52,243,188,242,99,242, +76,242,59,242,231,241,88,241,201,240,99,240,36,240,227,239,107,239,201,238,100,238,98,238,117,238,98,238,62,238,11,238, +189,237,118,237,68,237,254,236,172,236,127,236,119,236,140,236,201,236,1,237,249,236,213,236,214,236,238,236,254,236,1,237, +241,236,221,236,6,237,144,237,56,238,174,238,244,238,56,239,144,239,8,240,154,240,21,241,76,241,126,241,9,242,224,242, +181,243,106,244,249,244,94,245,214,245,148,246,82,247,203,247,62,248,233,248,151,249,40,250,203,250,122,251,255,251,132,252, +74,253,25,254,163,254,13,255,144,255,42,0,223,0,173,1,72,2,148,2,242,2,159,3,92,4,249,4,140,5,15,6, +115,6,224,6,111,7,233,7,54,8,141,8,255,8,101,9,203,9,77,10,192,10,0,11,71,11,179,11,4,12,42,12, +84,12,126,12,160,12,245,12,123,13,206,13,226,13,11,14,78,14,126,14,172,14,220,14,219,14,185,14,195,14,8,15, +84,15,137,15,159,15,141,15,113,15,117,15,138,15,127,15,82,15,55,15,55,15,53,15,55,15,73,15,75,15,47,15, +21,15,11,15,246,14,212,14,164,14,105,14,77,14,108,14,131,14,90,14,38,14,21,14,251,13,201,13,164,13,132,13, +67,13,251,12,208,12,171,12,123,12,84,12,42,12,219,11,134,11,90,11,60,11,7,11,201,10,141,10,69,10,251,9, +193,9,127,9,40,9,215,8,143,8,53,8,208,7,130,7,68,7,243,6,144,6,47,6,211,5,106,5,243,4,121,4, +8,4,172,3,100,3,12,3,138,2,5,2,177,1,116,1,27,1,162,0,30,0,165,255,77,255,15,255,195,254,90,254, +238,253,139,253,45,253,220,252,142,252,40,252,183,251,102,251,50,251,239,250,157,250,89,250,26,250,211,249,156,249,125,249, +78,249,17,249,233,248,213,248,186,248,166,248,156,248,130,248,95,248,79,248,81,248,88,248,92,248,78,248,58,248,69,248, +102,248,114,248,109,248,119,248,137,248,156,248,190,248,235,248,18,249,50,249,81,249,119,249,173,249,237,249,27,250,54,250, +96,250,170,250,250,250,47,251,86,251,138,251,207,251,19,252,73,252,111,252,146,252,207,252,31,253,95,253,134,253,175,253, +233,253,41,254,102,254,155,254,199,254,243,254,35,255,84,255,138,255,197,255,247,255,30,0,78,0,140,0,193,0,216,0, +226,0,251,0,33,1,64,1,90,1,121,1,146,1,167,1,197,1,222,1,224,1,226,1,255,1,32,2,38,2,35,2, +50,2,74,2,91,2,111,2,138,2,153,2,153,2,162,2,178,2,187,2,196,2,212,2,219,2,213,2,211,2,220,2, +229,2,234,2,234,2,236,2,249,2,14,3,35,3,49,3,46,3,30,3,35,3,63,3,84,3,89,3,92,3,95,3, +101,3,124,3,142,3,130,3,112,3,114,3,120,3,111,3,92,3,78,3,82,3,89,3,80,3,67,3,68,3,63,3, +42,3,25,3,13,3,251,2,233,2,220,2,203,2,190,2,184,2,165,2,131,2,105,2,83,2,47,2,9,2,231,1, +190,1,153,1,136,1,115,1,66,1,16,1,246,0,219,0,178,0,139,0,99,0,46,0,10,0,11,0,6,0,214,255, +152,255,110,255,79,255,48,255,19,255,233,254,174,254,125,254,104,254,89,254,51,254,252,253,206,253,176,253,151,253,123,253, +92,253,54,253,9,253,230,252,216,252,207,252,181,252,136,252,102,252,99,252,103,252,86,252,58,252,35,252,16,252,3,252, +2,252,247,251,214,251,188,251,190,251,204,251,215,251,216,251,207,251,198,251,201,251,213,251,222,251,225,251,230,251,244,251, +7,252,25,252,50,252,78,252,84,252,79,252,106,252,163,252,204,252,215,252,218,252,230,252,6,253,54,253,89,253,103,253, +119,253,152,253,193,253,232,253,7,254,32,254,63,254,99,254,129,254,155,254,182,254,211,254,245,254,32,255,75,255,105,255, +118,255,121,255,144,255,196,255,241,255,252,255,248,255,5,0,39,0,85,0,119,0,124,0,120,0,142,0,177,0,196,0, +206,0,228,0,252,0,6,1,14,1,34,1,55,1,67,1,79,1,95,1,110,1,121,1,131,1,142,1,161,1,180,1, +191,1,204,1,221,1,220,1,206,1,218,1,1,2,29,2,43,2,53,2,51,2,46,2,66,2,102,2,117,2,107,2, +94,2,97,2,123,2,155,2,170,2,172,2,179,2,196,2,213,2,220,2,216,2,210,2,210,2,223,2,239,2,241,2, +232,2,233,2,249,2,1,3,253,2,245,2,238,2,233,2,232,2,230,2,224,2,218,2,203,2,173,2,159,2,170,2, +170,2,144,2,118,2,108,2,102,2,87,2,62,2,41,2,26,2,2,2,225,1,204,1,188,1,159,1,129,1,109,1, +84,1,53,1,33,1,3,1,209,0,169,0,151,0,129,0,93,0,55,0,17,0,232,255,197,255,170,255,147,255,119,255, +81,255,40,255,5,255,236,254,218,254,189,254,143,254,98,254,66,254,33,254,251,253,227,253,214,253,184,253,133,253,87,253, +51,253,18,253,251,252,237,252,211,252,171,252,145,252,135,252,115,252,84,252,66,252,53,252,33,252,25,252,34,252,30,252, +3,252,235,251,229,251,237,251,250,251,249,251,230,251,218,251,230,251,246,251,251,251,247,251,243,251,246,251,5,252,24,252, +41,252,51,252,51,252,57,252,80,252,107,252,127,252,145,252,157,252,160,252,179,252,221,252,255,252,9,253,13,253,36,253, +72,253,99,253,114,253,133,253,153,253,163,253,173,253,198,253,235,253,13,254,38,254,52,254,65,254,91,254,119,254,140,254, +161,254,178,254,185,254,209,254,255,254,25,255,27,255,42,255,76,255,112,255,146,255,169,255,172,255,188,255,230,255,4,0, +10,0,20,0,45,0,77,0,124,0,175,0,196,0,196,0,222,0,23,1,70,1,88,1,104,1,129,1,156,1,187,1, +228,1,11,2,46,2,82,2,112,2,129,2,151,2,192,2,235,2,0,3,9,3,31,3,69,3,106,3,135,3,164,3, +189,3,207,3,227,3,254,3,24,4,55,4,91,4,118,4,140,4,169,4,198,4,213,4,227,4,246,4,3,5,19,5, +45,5,62,5,62,5,70,5,96,5,125,5,140,5,143,5,146,5,158,5,168,5,169,5,172,5,181,5,192,5,204,5, +209,5,205,5,212,5,235,5,246,5,231,5,210,5,199,5,199,5,204,5,200,5,180,5,160,5,150,5,143,5,137,5, +125,5,97,5,66,5,49,5,38,5,19,5,249,4,221,4,193,4,166,4,139,4,115,4,93,4,64,4,25,4,243,3, +206,3,171,3,141,3,105,3,60,3,20,3,238,2,184,2,128,2,96,2,64,2,9,2,210,1,173,1,140,1,102,1, +58,1,1,1,196,0,151,0,116,0,76,0,35,0,250,255,200,255,150,255,119,255,94,255,54,255,6,255,209,254,145,254, +89,254,66,254,45,254,246,253,184,253,142,253,104,253,60,253,23,253,239,252,186,252,140,252,108,252,73,252,32,252,250,251, +213,251,168,251,113,251,63,251,28,251,248,250,196,250,144,250,111,250,82,250,44,250,3,250,214,249,164,249,120,249,83,249, +43,249,3,249,222,248,179,248,145,248,128,248,103,248,51,248,252,247,217,247,190,247,154,247,110,247,71,247,42,247,15,247, +243,246,218,246,187,246,150,246,122,246,103,246,76,246,48,246,34,246,26,246,10,246,248,245,229,245,213,245,218,245,240,245, +254,245,249,245,230,245,209,245,200,245,209,245,224,245,236,245,241,245,241,245,255,245,33,246,58,246,61,246,66,246,91,246, +124,246,158,246,193,246,221,246,246,246,28,247,80,247,128,247,165,247,208,247,6,248,53,248,91,248,140,248,199,248,243,248, +21,249,79,249,157,249,226,249,26,250,78,250,123,250,165,250,226,250,52,251,127,251,181,251,229,251,32,252,111,252,208,252, +41,253,98,253,140,253,198,253,9,254,78,254,156,254,218,254,246,254,32,255,118,255,202,255,3,0,63,0,128,0,179,0, +235,0,47,1,111,1,167,1,221,1,7,2,53,2,125,2,199,2,251,2,42,3,98,3,147,3,185,3,230,3,27,4, +72,4,102,4,138,4,192,4,255,4,53,5,91,5,108,5,117,5,154,5,214,5,255,5,13,6,27,6,46,6,72,6, +122,6,177,6,201,6,207,6,233,6,14,7,34,7,46,7,65,7,84,7,94,7,111,7,141,7,162,7,169,7,176,7, +179,7,171,7,175,7,200,7,198,7,161,7,146,7,166,7,172,7,158,7,154,7,152,7,139,7,134,7,137,7,122,7, +95,7,76,7,55,7,24,7,7,7,4,7,240,6,208,6,190,6,175,6,139,6,98,6,66,6,27,6,240,5,214,5, +186,5,136,5,93,5,74,5,45,5,247,4,203,4,176,4,135,4,80,4,35,4,2,4,211,3,146,3,86,3,44,3, +17,3,249,2,203,2,123,2,48,2,10,2,235,1,181,1,120,1,61,1,0,1,214,0,191,0,147,0,84,0,42,0, +7,0,205,255,150,255,115,255,70,255,14,255,224,254,183,254,141,254,108,254,72,254,19,254,222,253,185,253,148,253,102,253, +60,253,29,253,254,252,216,252,183,252,159,252,132,252,97,252,68,252,49,252,26,252,252,251,223,251,201,251,184,251,172,251, +163,251,158,251,149,251,123,251,88,251,72,251,76,251,74,251,52,251,29,251,20,251,26,251,39,251,49,251,48,251,36,251, +30,251,43,251,64,251,76,251,79,251,80,251,79,251,87,251,108,251,121,251,122,251,142,251,184,251,210,251,218,251,243,251, +25,252,44,252,53,252,80,252,120,252,155,252,187,252,217,252,248,252,44,253,119,253,172,253,186,253,203,253,244,253,31,254, +80,254,141,254,184,254,206,254,248,254,60,255,123,255,176,255,218,255,240,255,12,0,78,0,157,0,201,0,221,0,1,1, +66,1,136,1,190,1,232,1,15,2,54,2,99,2,152,2,194,2,221,2,3,3,54,3,96,3,138,3,190,3,231,3, +250,3,13,4,41,4,74,4,108,4,125,4,124,4,141,4,185,4,220,4,228,4,234,4,248,4,14,5,42,5,65,5, +69,5,68,5,76,5,86,5,92,5,105,5,114,5,103,5,87,5,96,5,124,5,129,5,100,5,69,5,54,5,53,5, +62,5,72,5,63,5,33,5,9,5,5,5,10,5,5,5,236,4,195,4,155,4,134,4,134,4,126,4,93,4,58,4, +41,4,28,4,3,4,229,3,194,3,151,3,118,3,105,3,86,3,48,3,13,3,248,2,228,2,204,2,182,2,154,2, +113,2,64,2,20,2,240,1,214,1,194,1,162,1,117,1,85,1,71,1,39,1,241,0,205,0,188,0,155,0,113,0, +88,0,69,0,44,0,21,0,252,255,219,255,188,255,166,255,149,255,135,255,107,255,59,255,26,255,19,255,9,255,241,254, +216,254,188,254,157,254,133,254,108,254,77,254,55,254,39,254,10,254,240,253,237,253,233,253,207,253,174,253,151,253,138,253, +130,253,123,253,109,253,90,253,72,253,67,253,71,253,66,253,45,253,24,253,15,253,8,253,251,252,232,252,212,252,201,252, +202,252,206,252,206,252,200,252,189,252,176,252,176,252,192,252,201,252,183,252,155,252,153,252,180,252,209,252,212,252,186,252, +160,252,169,252,209,252,241,252,234,252,201,252,173,252,174,252,205,252,233,252,228,252,208,252,204,252,218,252,237,252,246,252, +235,252,214,252,205,252,211,252,224,252,240,252,243,252,220,252,198,252,206,252,234,252,247,252,225,252,187,252,173,252,200,252, +238,252,250,252,229,252,201,252,199,252,233,252,27,253,59,253,51,253,17,253,10,253,55,253,106,253,117,253,104,253,97,253, +111,253,155,253,211,253,235,253,227,253,231,253,7,254,51,254,95,254,118,254,112,254,115,254,163,254,238,254,43,255,69,255, +74,255,94,255,145,255,208,255,255,255,18,0,24,0,46,0,104,0,167,0,200,0,214,0,230,0,0,1,44,1,108,1, +154,1,156,1,145,1,160,1,199,1,243,1,21,2,32,2,32,2,51,2,93,2,123,2,128,2,133,2,143,2,153,2, +179,2,223,2,246,2,234,2,221,2,229,2,246,2,11,3,25,3,17,3,2,3,12,3,42,3,58,3,47,3,30,3, +23,3,23,3,24,3,23,3,25,3,29,3,33,3,33,3,29,3,27,3,30,3,27,3,21,3,20,3,17,3,6,3, +255,2,255,2,246,2,238,2,244,2,242,2,221,2,205,2,205,2,196,2,179,2,173,2,176,2,172,2,164,2,163,2, +161,2,146,2,125,2,112,2,101,2,92,2,94,2,98,2,88,2,81,2,90,2,84,2,60,2,55,2,71,2,66,2, +42,2,30,2,30,2,31,2,32,2,25,2,9,2,1,2,14,2,29,2,24,2,253,1,225,1,217,1,221,1,214,1, +197,1,186,1,186,1,194,1,199,1,193,1,185,1,183,1,172,1,153,1,148,1,149,1,126,1,92,1,84,1,95,1, +98,1,99,1,102,1,90,1,68,1,64,1,70,1,60,1,41,1,28,1,15,1,10,1,32,1,61,1,63,1,43,1, +34,1,44,1,57,1,58,1,49,1,51,1,67,1,78,1,86,1,104,1,118,1,118,1,121,1,131,1,132,1,132,1, +143,1,155,1,165,1,185,1,201,1,193,1,183,1,202,1,230,1,235,1,218,1,201,1,199,1,214,1,239,1,254,1, +239,1,210,1,198,1,202,1,203,1,196,1,176,1,149,1,134,1,137,1,129,1,101,1,71,1,40,1,9,1,251,0, +241,0,207,0,164,0,142,0,123,0,92,0,63,0,36,0,249,255,196,255,158,255,136,255,112,255,75,255,29,255,232,254, +180,254,149,254,139,254,110,254,45,254,231,253,186,253,155,253,117,253,70,253,16,253,223,252,188,252,149,252,95,252,40,252, +247,251,190,251,132,251,85,251,38,251,241,250,193,250,143,250,79,250,22,250,244,249,203,249,137,249,77,249,46,249,15,249, +226,248,184,248,149,248,107,248,60,248,18,248,240,247,215,247,193,247,162,247,127,247,105,247,103,247,103,247,88,247,58,247, +36,247,42,247,58,247,62,247,62,247,65,247,68,247,79,247,103,247,125,247,143,247,167,247,192,247,217,247,4,248,50,248, +73,248,95,248,143,248,195,248,240,248,27,249,55,249,70,249,112,249,188,249,249,249,29,250,70,250,113,250,144,250,189,250, +3,251,51,251,54,251,64,251,117,251,183,251,234,251,17,252,43,252,60,252,99,252,157,252,186,252,189,252,216,252,4,253, +26,253,39,253,70,253,102,253,120,253,137,253,166,253,198,253,222,253,234,253,244,253,18,254,61,254,86,254,88,254,95,254, +125,254,167,254,208,254,243,254,5,255,7,255,22,255,68,255,122,255,154,255,172,255,193,255,218,255,251,255,40,0,86,0, +117,0,137,0,160,0,201,0,4,1,56,1,77,1,87,1,122,1,185,1,246,1,34,2,71,2,112,2,157,2,205,2, +2,3,54,3,97,3,140,3,197,3,9,4,72,4,113,4,127,4,142,4,187,4,0,5,65,5,119,5,160,5,188,5, +218,5,17,6,89,6,147,6,173,6,188,6,210,6,243,6,32,7,90,7,140,7,161,7,171,7,201,7,242,7,17,8, +34,8,33,8,18,8,27,8,70,8,102,8,94,8,80,8,80,8,82,8,84,8,96,8,100,8,73,8,40,8,29,8, +27,8,10,8,244,7,224,7,191,7,149,7,124,7,105,7,69,7,26,7,241,6,199,6,162,6,141,6,113,6,64,6, +9,6,216,5,173,5,146,5,128,5,88,5,23,5,214,4,173,4,150,4,118,4,68,4,16,4,236,3,202,3,161,3, +122,3,85,3,42,3,254,2,211,2,169,2,139,2,115,2,72,2,20,2,243,1,222,1,187,1,146,1,108,1,66,1, +31,1,21,1,6,1,213,0,167,0,154,0,140,0,99,0,60,0,36,0,252,255,199,255,161,255,136,255,105,255,75,255, +51,255,20,255,238,254,205,254,182,254,163,254,137,254,92,254,38,254,255,253,237,253,226,253,212,253,196,253,173,253,146,253, +117,253,94,253,74,253,51,253,25,253,5,253,243,252,225,252,215,252,207,252,187,252,165,252,159,252,156,252,140,252,116,252, +100,252,97,252,107,252,113,252,99,252,70,252,53,252,60,252,78,252,86,252,72,252,54,252,48,252,53,252,72,252,93,252, +93,252,73,252,65,252,74,252,85,252,98,252,109,252,104,252,88,252,94,252,123,252,149,252,155,252,144,252,139,252,147,252, +164,252,180,252,188,252,179,252,172,252,193,252,225,252,233,252,220,252,214,252,224,252,241,252,4,253,18,253,25,253,26,253, +24,253,35,253,61,253,75,253,64,253,65,253,97,253,125,253,131,253,136,253,145,253,147,253,150,253,163,253,167,253,161,253, +167,253,185,253,201,253,220,253,245,253,253,253,244,253,245,253,9,254,26,254,31,254,28,254,27,254,49,254,86,254,109,254, +120,254,137,254,159,254,182,254,215,254,245,254,254,254,3,255,20,255,45,255,82,255,124,255,142,255,148,255,181,255,229,255, +7,0,34,0,63,0,83,0,105,0,147,0,193,0,225,0,250,0,21,1,56,1,104,1,160,1,211,1,251,1,21,2, +42,2,78,2,132,2,188,2,230,2,5,3,39,3,87,3,141,3,180,3,208,3,238,3,19,4,65,4,117,4,164,4, +197,4,220,4,246,4,28,5,76,5,118,5,150,5,180,5,210,5,236,5,10,6,40,6,54,6,61,6,88,6,131,6, +162,6,173,6,182,6,197,6,212,6,236,6,13,7,26,7,12,7,8,7,32,7,46,7,37,7,38,7,51,7,43,7, +29,7,43,7,66,7,58,7,23,7,251,6,247,6,254,6,1,7,242,6,211,6,179,6,165,6,168,6,162,6,134,6, +102,6,79,6,62,6,49,6,29,6,252,5,212,5,178,5,153,5,135,5,111,5,67,5,14,5,231,4,213,4,195,4, +157,4,103,4,50,4,4,4,216,3,179,3,144,3,93,3,33,3,245,2,208,2,161,2,114,2,68,2,3,2,195,1, +154,1,115,1,64,1,13,1,212,0,138,0,75,0,41,0,5,0,197,255,128,255,75,255,32,255,238,254,181,254,123,254, +61,254,253,253,203,253,165,253,114,253,47,253,242,252,192,252,150,252,116,252,78,252,30,252,239,251,201,251,164,251,127,251, +91,251,47,251,255,250,218,250,186,250,150,250,119,250,93,250,67,250,43,250,23,250,254,249,225,249,196,249,171,249,148,249, +123,249,93,249,64,249,44,249,28,249,16,249,9,249,0,249,234,248,205,248,187,248,181,248,173,248,160,248,143,248,123,248, +108,248,105,248,100,248,77,248,53,248,45,248,42,248,31,248,18,248,255,247,230,247,215,247,203,247,175,247,145,247,135,247, +128,247,111,247,91,247,74,247,55,247,32,247,0,247,225,246,206,246,186,246,154,246,125,246,108,246,98,246,100,246,109,246, +105,246,90,246,79,246,63,246,39,246,26,246,20,246,13,246,14,246,23,246,30,246,37,246,50,246,68,246,88,246,99,246, +93,246,89,246,106,246,134,246,165,246,203,246,239,246,15,247,61,247,119,247,172,247,220,247,9,248,51,248,97,248,157,248, +232,248,50,249,107,249,143,249,191,249,17,250,102,250,159,250,212,250,39,251,136,251,217,251,19,252,68,252,122,252,197,252, +41,253,133,253,191,253,238,253,54,254,144,254,229,254,60,255,146,255,208,255,255,255,58,0,131,0,198,0,2,1,64,1, +124,1,187,1,1,2,55,2,82,2,119,2,191,2,0,3,29,3,63,3,118,3,156,3,187,3,248,3,48,4,66,4, +87,4,131,4,158,4,177,4,222,4,10,5,27,5,50,5,93,5,130,5,156,5,179,5,195,5,210,5,235,5,1,6, +10,6,20,6,46,6,83,6,112,6,124,6,137,6,154,6,163,6,175,6,201,6,213,6,205,6,219,6,254,6,16,7, +25,7,42,7,47,7,41,7,58,7,82,7,86,7,90,7,104,7,108,7,111,7,134,7,152,7,154,7,162,7,175,7, +171,7,169,7,188,7,200,7,189,7,184,7,190,7,185,7,178,7,185,7,195,7,196,7,194,7,184,7,166,7,160,7, +165,7,155,7,133,7,120,7,111,7,91,7,65,7,37,7,11,7,249,6,235,6,215,6,188,6,152,6,110,6,78,6, +47,6,254,5,201,5,163,5,123,5,73,5,26,5,241,4,197,4,151,4,98,4,40,4,242,3,189,3,131,3,78,3, +30,3,222,2,150,2,92,2,41,2,244,1,194,1,139,1,72,1,11,1,215,0,157,0,99,0,49,0,250,255,188,255, +136,255,101,255,65,255,14,255,214,254,173,254,144,254,105,254,59,254,17,254,228,253,179,253,148,253,125,253,84,253,36,253, +12,253,5,253,244,252,210,252,173,252,138,252,105,252,82,252,70,252,56,252,29,252,253,251,229,251,221,251,223,251,214,251, +186,251,167,251,174,251,171,251,144,251,125,251,119,251,104,251,91,251,97,251,96,251,72,251,56,251,65,251,78,251,82,251, +83,251,76,251,64,251,64,251,82,251,99,251,107,251,113,251,118,251,124,251,146,251,176,251,187,251,190,251,212,251,239,251, +247,251,3,252,34,252,58,252,75,252,102,252,131,252,155,252,183,252,215,252,246,252,24,253,57,253,84,253,114,253,153,253, +188,253,222,253,8,254,50,254,84,254,118,254,162,254,209,254,246,254,17,255,51,255,94,255,136,255,181,255,228,255,1,0, +18,0,56,0,105,0,143,0,179,0,222,0,254,0,26,1,67,1,109,1,144,1,186,1,231,1,8,2,36,2,65,2, +88,2,113,2,152,2,197,2,239,2,14,3,32,3,44,3,66,3,100,3,129,3,143,3,158,3,185,3,216,3,239,3, +6,4,33,4,54,4,70,4,88,4,100,4,105,4,122,4,145,4,154,4,157,4,170,4,183,4,187,4,196,4,211,4, +212,4,199,4,196,4,207,4,210,4,201,4,198,4,195,4,181,4,173,4,181,4,179,4,156,4,139,4,134,4,131,4, +127,4,114,4,89,4,70,4,65,4,51,4,25,4,5,4,245,3,218,3,186,3,167,3,159,3,143,3,113,3,86,3, +71,3,54,3,26,3,0,3,233,2,205,2,178,2,157,2,133,2,103,2,78,2,63,2,51,2,30,2,253,1,223,1, +200,1,171,1,139,1,122,1,105,1,72,1,43,1,24,1,255,0,229,0,212,0,189,0,160,0,141,0,126,0,99,0, +63,0,34,0,15,0,254,255,227,255,197,255,181,255,168,255,141,255,116,255,101,255,75,255,36,255,9,255,0,255,240,254, +214,254,185,254,154,254,123,254,107,254,101,254,81,254,48,254,23,254,4,254,235,253,212,253,198,253,177,253,143,253,117,253, +105,253,95,253,80,253,63,253,41,253,16,253,252,252,235,252,214,252,191,252,180,252,180,252,173,252,152,252,129,252,109,252, +95,252,95,252,95,252,79,252,62,252,61,252,55,252,43,252,42,252,34,252,7,252,4,252,29,252,32,252,13,252,6,252, +255,251,241,251,250,251,19,252,23,252,17,252,20,252,17,252,19,252,43,252,69,252,78,252,84,252,93,252,101,252,118,252, +138,252,147,252,158,252,187,252,216,252,231,252,244,252,4,253,18,253,37,253,68,253,96,253,117,253,136,253,156,253,178,253, +208,253,247,253,18,254,33,254,58,254,96,254,126,254,143,254,164,254,192,254,212,254,226,254,249,254,25,255,54,255,82,255, +113,255,138,255,152,255,165,255,182,255,195,255,207,255,227,255,242,255,252,255,17,0,47,0,64,0,71,0,78,0,90,0, +115,0,146,0,151,0,137,0,145,0,166,0,171,0,181,0,204,0,211,0,207,0,220,0,235,0,230,0,228,0,239,0, +247,0,250,0,255,0,5,1,9,1,14,1,24,1,38,1,41,1,31,1,33,1,57,1,70,1,64,1,65,1,81,1, +87,1,79,1,75,1,80,1,86,1,94,1,103,1,106,1,106,1,112,1,122,1,125,1,122,1,121,1,119,1,115,1, +126,1,149,1,157,1,145,1,133,1,128,1,129,1,137,1,146,1,140,1,131,1,139,1,152,1,148,1,132,1,124,1, +123,1,116,1,109,1,108,1,104,1,92,1,83,1,83,1,85,1,82,1,68,1,49,1,44,1,54,1,53,1,34,1, +14,1,3,1,254,0,250,0,241,0,227,0,215,0,208,0,203,0,202,0,201,0,185,0,160,0,139,0,126,0,123,0, +123,0,113,0,99,0,94,0,97,0,102,0,109,0,108,0,95,0,89,0,99,0,108,0,111,0,114,0,116,0,122,0, +133,0,138,0,138,0,145,0,157,0,165,0,177,0,200,0,223,0,238,0,247,0,0,1,18,1,43,1,64,1,79,1, +96,1,114,1,137,1,164,1,186,1,197,1,211,1,237,1,8,2,30,2,44,2,50,2,55,2,68,2,87,2,103,2, +115,2,125,2,133,2,143,2,158,2,173,2,175,2,169,2,169,2,176,2,177,2,169,2,159,2,153,2,154,2,154,2, +143,2,131,2,121,2,106,2,91,2,83,2,72,2,48,2,26,2,5,2,238,1,220,1,206,1,179,1,142,1,113,1, +87,1,59,1,34,1,7,1,224,0,184,0,147,0,113,0,85,0,54,0,5,0,211,255,172,255,135,255,95,255,64,255, +29,255,229,254,169,254,125,254,89,254,44,254,248,253,197,253,150,253,107,253,63,253,13,253,211,252,154,252,104,252,56,252, +7,252,215,251,164,251,107,251,52,251,1,251,202,250,147,250,95,250,41,250,244,249,202,249,161,249,109,249,54,249,6,249, +221,248,191,248,168,248,136,248,85,248,33,248,1,248,248,247,237,247,207,247,166,247,131,247,108,247,98,247,95,247,80,247, +50,247,26,247,19,247,19,247,14,247,3,247,253,246,7,247,17,247,14,247,11,247,12,247,1,247,251,246,19,247,46,247, +41,247,31,247,47,247,73,247,90,247,107,247,123,247,131,247,143,247,167,247,190,247,208,247,228,247,251,247,26,248,73,248, +117,248,129,248,134,248,173,248,223,248,247,248,9,249,46,249,80,249,108,249,155,249,212,249,247,249,14,250,55,250,115,250, +175,250,221,250,1,251,39,251,81,251,126,251,189,251,10,252,70,252,109,252,159,252,233,252,55,253,117,253,156,253,190,253, +251,253,77,254,151,254,221,254,36,255,91,255,138,255,211,255,46,0,116,0,160,0,204,0,10,1,90,1,172,1,236,1, +31,2,83,2,148,2,225,2,49,3,115,3,163,3,212,3,19,4,91,4,159,4,215,4,1,5,44,5,104,5,177,5, +244,5,33,6,62,6,99,6,156,6,222,6,20,7,59,7,92,7,129,7,176,7,235,7,34,8,65,8,81,8,109,8, +152,8,195,8,230,8,249,8,5,9,35,9,80,9,110,9,123,9,136,9,147,9,158,9,176,9,195,9,207,9,218,9, +222,9,214,9,213,9,223,9,223,9,215,9,211,9,203,9,194,9,189,9,171,9,137,9,124,9,127,9,104,9,59,9, +29,9,10,9,237,8,202,8,168,8,128,8,85,8,51,8,19,8,232,7,186,7,153,7,113,7,45,7,233,6,196,6, +163,6,108,6,53,6,13,6,221,5,159,5,101,5,50,5,251,4,193,4,139,4,89,4,35,4,229,3,170,3,126,3, +86,3,32,3,226,2,169,2,118,2,67,2,18,2,223,1,160,1,94,1,42,1,2,1,217,0,171,0,126,0,75,0, +21,0,226,255,171,255,108,255,54,255,13,255,233,254,196,254,150,254,92,254,40,254,4,254,223,253,173,253,122,253,70,253, +18,253,233,252,203,252,167,252,122,252,79,252,40,252,5,252,226,251,183,251,138,251,101,251,71,251,44,251,19,251,243,250, +205,250,172,250,145,250,123,250,110,250,93,250,64,250,44,250,34,250,10,250,241,249,242,249,247,249,233,249,223,249,228,249, +227,249,220,249,221,249,232,249,246,249,255,249,253,249,0,250,19,250,42,250,62,250,93,250,127,250,143,250,152,250,174,250, +204,250,233,250,9,251,41,251,68,251,101,251,144,251,187,251,220,251,254,251,44,252,95,252,137,252,167,252,198,252,242,252, +37,253,83,253,128,253,179,253,228,253,18,254,65,254,107,254,151,254,213,254,19,255,53,255,86,255,145,255,200,255,234,255, +23,0,82,0,135,0,185,0,239,0,30,1,68,1,110,1,154,1,201,1,253,1,40,2,74,2,116,2,162,2,204,2, +249,2,37,3,64,3,90,3,134,3,186,3,231,3,6,4,25,4,47,4,86,4,129,4,162,4,185,4,200,4,217,4, +252,4,39,5,64,5,73,5,80,5,93,5,123,5,163,5,179,5,168,5,170,5,201,5,229,5,239,5,249,5,5,6, +7,6,8,6,28,6,54,6,62,6,51,6,40,6,45,6,65,6,82,6,74,6,53,6,47,6,58,6,65,6,61,6, +53,6,44,6,36,6,32,6,29,6,27,6,20,6,8,6,1,6,252,5,241,5,229,5,225,5,216,5,195,5,177,5, +163,5,137,5,112,5,99,5,88,5,68,5,42,5,15,5,251,4,238,4,218,4,180,4,142,4,116,4,100,4,77,4, +37,4,243,3,211,3,196,3,170,3,127,3,85,3,47,3,3,3,217,2,186,2,150,2,98,2,48,2,16,2,240,1, +196,1,152,1,110,1,57,1,7,1,230,0,198,0,154,0,110,0,64,0,13,0,234,255,210,255,163,255,106,255,67,255, +32,255,241,254,203,254,180,254,143,254,94,254,57,254,26,254,243,253,208,253,179,253,138,253,87,253,54,253,41,253,18,253, +234,252,198,252,173,252,150,252,128,252,103,252,67,252,36,252,24,252,10,252,239,251,214,251,189,251,158,251,140,251,139,251, +122,251,86,251,65,251,64,251,54,251,31,251,12,251,255,250,239,250,227,250,220,250,207,250,188,250,173,250,165,250,162,250, +163,250,161,250,151,250,142,250,137,250,129,250,119,250,112,250,97,250,82,250,88,250,105,250,106,250,100,250,99,250,94,250, +91,250,99,250,104,250,95,250,89,250,91,250,88,250,90,250,100,250,104,250,101,250,110,250,126,250,135,250,141,250,147,250, +146,250,142,250,152,250,169,250,179,250,183,250,197,250,219,250,236,250,249,250,9,251,20,251,33,251,62,251,91,251,102,251, +110,251,128,251,147,251,172,251,209,251,237,251,249,251,16,252,53,252,80,252,97,252,119,252,145,252,167,252,194,252,231,252, +15,253,46,253,71,253,98,253,132,253,166,253,196,253,227,253,8,254,47,254,80,254,107,254,140,254,184,254,229,254,11,255, +42,255,68,255,101,255,142,255,180,255,207,255,235,255,15,0,51,0,84,0,120,0,155,0,183,0,208,0,236,0,13,1, +49,1,84,1,112,1,133,1,156,1,195,1,237,1,8,2,24,2,42,2,63,2,94,2,134,2,157,2,158,2,174,2, +209,2,233,2,250,2,19,3,39,3,46,3,58,3,82,3,107,3,130,3,140,3,138,3,146,3,168,3,188,3,203,3, +215,3,221,3,229,3,241,3,245,3,246,3,251,3,253,3,255,3,15,4,34,4,39,4,39,4,37,4,28,4,25,4, +36,4,43,4,40,4,38,4,31,4,24,4,31,4,41,4,33,4,15,4,2,4,245,3,238,3,239,3,227,3,200,3, +182,3,178,3,165,3,148,3,142,3,135,3,111,3,89,3,80,3,66,3,42,3,20,3,246,2,201,2,165,2,151,2, +138,2,111,2,79,2,49,2,19,2,243,1,211,1,175,1,129,1,77,1,36,1,9,1,240,0,212,0,181,0,130,0, +71,0,45,0,32,0,226,255,134,255,78,255,49,255,3,255,202,254,149,254,88,254,12,254,191,253,125,253,79,253,30,253, +204,252,106,252,37,252,249,251,202,251,147,251,81,251,254,250,173,250,119,250,82,250,32,250,212,249,131,249,70,249,28,249, +248,248,209,248,150,248,71,248,13,248,254,247,244,247,204,247,148,247,91,247,43,247,29,247,47,247,38,247,247,246,219,246, +228,246,243,246,0,247,14,247,1,247,224,246,231,246,29,247,74,247,89,247,97,247,116,247,157,247,222,247,18,248,39,248, +65,248,117,248,169,248,224,248,34,249,85,249,110,249,156,249,234,249,51,250,108,250,167,250,226,250,24,251,89,251,166,251, +229,251,18,252,63,252,121,252,188,252,4,253,70,253,114,253,151,253,210,253,26,254,81,254,129,254,191,254,247,254,38,255, +96,255,154,255,191,255,234,255,41,0,89,0,115,0,153,0,199,0,241,0,33,1,78,1,104,1,135,1,189,1,235,1, +7,2,51,2,104,2,126,2,137,2,180,2,239,2,18,3,43,3,81,3,121,3,159,3,204,3,242,3,2,4,25,4, +70,4,107,4,132,4,174,4,221,4,240,4,252,4,34,5,77,5,101,5,128,5,163,5,189,5,209,5,242,5,23,6, +44,6,60,6,86,6,117,6,144,6,173,6,199,6,213,6,224,6,245,6,13,7,32,7,48,7,58,7,63,7,76,7, +100,7,120,7,133,7,141,7,144,7,146,7,155,7,167,7,174,7,177,7,179,7,175,7,167,7,164,7,172,7,174,7, +157,7,140,7,145,7,148,7,133,7,115,7,96,7,58,7,23,7,18,7,20,7,255,6,219,6,186,6,160,6,139,6, +112,6,70,6,29,6,255,5,221,5,178,5,135,5,94,5,46,5,254,4,220,4,191,4,146,4,86,4,31,4,241,3, +195,3,151,3,112,3,66,3,12,3,219,2,180,2,141,2,99,2,47,2,250,1,212,1,182,1,143,1,102,1,68,1, +29,1,245,0,217,0,191,0,150,0,109,0,80,0,54,0,29,0,14,0,1,0,225,255,184,255,165,255,166,255,154,255, +125,255,100,255,79,255,57,255,50,255,50,255,29,255,5,255,6,255,10,255,249,254,234,254,227,254,213,254,200,254,203,254, +207,254,193,254,171,254,157,254,154,254,154,254,148,254,139,254,130,254,118,254,105,254,96,254,86,254,70,254,58,254,52,254, +46,254,39,254,31,254,23,254,19,254,13,254,252,253,235,253,231,253,228,253,210,253,186,253,172,253,168,253,163,253,149,253, +131,253,123,253,120,253,113,253,105,253,96,253,81,253,64,253,55,253,51,253,47,253,35,253,16,253,9,253,17,253,20,253, +11,253,0,253,241,252,229,252,235,252,245,252,233,252,214,252,209,252,214,252,226,252,238,252,229,252,207,252,205,252,220,252, +223,252,217,252,214,252,209,252,203,252,212,252,225,252,222,252,210,252,208,252,218,252,230,252,236,252,229,252,219,252,221,252, +238,252,252,252,249,252,240,252,241,252,252,252,8,253,23,253,38,253,42,253,37,253,40,253,52,253,63,253,76,253,92,253, +100,253,106,253,125,253,146,253,148,253,144,253,157,253,177,253,186,253,187,253,189,253,201,253,224,253,241,253,244,253,248,253, +0,254,4,254,14,254,38,254,57,254,66,254,79,254,89,254,93,254,109,254,130,254,132,254,131,254,153,254,175,254,178,254, +182,254,196,254,208,254,216,254,230,254,244,254,252,254,1,255,4,255,14,255,30,255,39,255,46,255,65,255,86,255,88,255, +84,255,97,255,113,255,113,255,122,255,153,255,173,255,171,255,180,255,211,255,229,255,228,255,235,255,251,255,5,0,15,0, +38,0,61,0,70,0,81,0,105,0,126,0,134,0,142,0,155,0,161,0,169,0,196,0,223,0,230,0,233,0,250,0, +15,1,30,1,43,1,53,1,62,1,76,1,91,1,102,1,119,1,135,1,138,1,142,1,160,1,180,1,191,1,195,1, +197,1,207,1,225,1,231,1,226,1,235,1,252,1,0,2,1,2,12,2,21,2,20,2,25,2,35,2,36,2,33,2, +39,2,50,2,51,2,43,2,40,2,48,2,58,2,61,2,62,2,61,2,58,2,62,2,68,2,68,2,61,2,52,2, +43,2,37,2,39,2,42,2,40,2,34,2,35,2,39,2,37,2,21,2,2,2,248,1,250,1,253,1,250,1,244,1, +240,1,235,1,227,1,224,1,229,1,227,1,211,1,199,1,200,1,200,1,195,1,191,1,182,1,168,1,162,1,166,1, +165,1,155,1,151,1,155,1,152,1,142,1,136,1,127,1,107,1,95,1,99,1,101,1,97,1,101,1,101,1,87,1, +84,1,96,1,89,1,68,1,61,1,64,1,65,1,70,1,70,1,56,1,49,1,58,1,65,1,65,1,62,1,49,1, +32,1,25,1,18,1,2,1,244,0,241,0,241,0,235,0,224,0,219,0,219,0,207,0,184,0,170,0,160,0,142,0, +133,0,137,0,120,0,83,0,61,0,54,0,43,0,26,0,3,0,232,255,211,255,193,255,170,255,154,255,144,255,115,255, +79,255,69,255,73,255,52,255,16,255,246,254,227,254,205,254,192,254,182,254,159,254,126,254,104,254,94,254,81,254,65,254, +53,254,35,254,9,254,245,253,235,253,231,253,230,253,218,253,192,253,177,253,186,253,193,253,188,253,179,253,165,253,149,253, +150,253,165,253,170,253,168,253,168,253,164,253,162,253,178,253,204,253,210,253,197,253,191,253,209,253,238,253,0,254,5,254, +12,254,24,254,44,254,74,254,104,254,121,254,131,254,138,254,145,254,172,254,220,254,247,254,248,254,6,255,40,255,69,255, +97,255,131,255,149,255,158,255,190,255,233,255,252,255,5,0,28,0,58,0,89,0,123,0,150,0,166,0,186,0,220,0, +4,1,37,1,57,1,62,1,66,1,92,1,133,1,164,1,178,1,196,1,231,1,10,2,32,2,52,2,71,2,81,2, +90,2,111,2,133,2,143,2,151,2,167,2,189,2,214,2,238,2,249,2,244,2,242,2,250,2,6,3,14,3,18,3, +23,3,29,3,40,3,52,3,59,3,60,3,59,3,53,3,44,3,47,3,59,3,61,3,49,3,42,3,42,3,41,3, +42,3,43,3,30,3,12,3,9,3,5,3,246,2,235,2,225,2,204,2,186,2,182,2,172,2,147,2,122,2,106,2, +99,2,92,2,63,2,17,2,248,1,248,1,235,1,202,1,174,1,148,1,109,1,67,1,44,1,30,1,248,0,191,0, +149,0,124,0,91,0,52,0,20,0,235,255,178,255,139,255,121,255,86,255,27,255,228,254,181,254,133,254,88,254,42,254, +246,253,200,253,160,253,110,253,55,253,9,253,210,252,140,252,87,252,55,252,15,252,217,251,170,251,127,251,78,251,42,251, +15,251,222,250,150,250,93,250,60,250,28,250,249,249,214,249,167,249,119,249,89,249,63,249,24,249,241,248,206,248,169,248, +146,248,139,248,113,248,65,248,43,248,54,248,51,248,30,248,24,248,26,248,3,248,228,247,226,247,236,247,225,247,203,247, +202,247,217,247,228,247,234,247,239,247,247,247,4,248,14,248,15,248,18,248,32,248,50,248,73,248,107,248,134,248,145,248, +168,248,217,248,7,249,32,249,56,249,89,249,119,249,148,249,189,249,233,249,11,250,44,250,88,250,133,250,173,250,218,250, +5,251,38,251,74,251,127,251,183,251,227,251,8,252,50,252,104,252,170,252,227,252,10,253,50,253,101,253,153,253,207,253, +12,254,63,254,98,254,140,254,196,254,2,255,65,255,123,255,163,255,195,255,237,255,28,0,75,0,125,0,176,0,220,0, +0,1,39,1,90,1,140,1,179,1,218,1,2,2,31,2,57,2,100,2,156,2,205,2,245,2,22,3,47,3,77,3, +127,3,176,3,199,3,209,3,232,3,12,4,47,4,80,4,109,4,127,4,144,4,180,4,223,4,247,4,3,5,21,5, +38,5,56,5,86,5,109,5,110,5,121,5,155,5,177,5,186,5,214,5,246,5,253,5,2,6,26,6,41,6,35,6, +35,6,56,6,81,6,89,6,81,6,79,6,89,6,96,6,104,6,119,6,116,6,93,6,85,6,103,6,111,6,100,6, +89,6,83,6,78,6,79,6,77,6,64,6,49,6,38,6,33,6,27,6,10,6,242,5,231,5,225,5,208,5,184,5, +162,5,133,5,106,5,96,5,89,5,70,5,47,5,20,5,237,4,213,4,212,4,196,4,153,4,116,4,99,4,83,4, +62,4,44,4,17,4,234,3,201,3,185,3,171,3,140,3,96,3,58,3,33,3,7,3,230,2,196,2,169,2,146,2, +117,2,85,2,60,2,38,2,5,2,221,1,189,1,165,1,140,1,109,1,73,1,41,1,18,1,252,0,218,0,180,0, +150,0,127,0,109,0,86,0,48,0,7,0,243,255,234,255,210,255,170,255,128,255,95,255,77,255,64,255,41,255,13,255, +247,254,222,254,197,254,183,254,169,254,141,254,115,254,96,254,70,254,40,254,17,254,253,253,230,253,215,253,213,253,206,253, +181,253,150,253,135,253,133,253,117,253,87,253,67,253,58,253,46,253,38,253,35,253,20,253,253,252,248,252,253,252,243,252, +222,252,209,252,202,252,190,252,177,252,175,252,175,252,165,252,157,252,167,252,178,252,172,252,166,252,174,252,178,252,168,252, +167,252,181,252,189,252,187,252,192,252,206,252,219,252,230,252,245,252,253,252,249,252,249,252,16,253,40,253,44,253,45,253, +67,253,98,253,121,253,140,253,156,253,169,253,188,253,217,253,250,253,20,254,31,254,39,254,64,254,101,254,135,254,166,254, +193,254,205,254,217,254,252,254,36,255,58,255,75,255,98,255,112,255,127,255,155,255,184,255,210,255,240,255,10,0,23,0, +38,0,66,0,92,0,113,0,136,0,158,0,173,0,191,0,216,0,235,0,250,0,20,1,53,1,73,1,81,1,90,1, +103,1,117,1,134,1,146,1,147,1,145,1,154,1,175,1,195,1,210,1,222,1,234,1,249,1,4,2,3,2,248,1, +242,1,0,2,20,2,25,2,17,2,21,2,43,2,58,2,57,2,54,2,56,2,55,2,52,2,59,2,66,2,57,2, +43,2,51,2,69,2,69,2,57,2,55,2,50,2,39,2,41,2,51,2,38,2,12,2,11,2,26,2,30,2,22,2, +14,2,5,2,4,2,15,2,17,2,253,1,232,1,227,1,222,1,212,1,208,1,208,1,199,1,189,1,190,1,192,1, +184,1,173,1,159,1,140,1,128,1,128,1,122,1,98,1,76,1,67,1,66,1,65,1,57,1,39,1,21,1,6,1, +249,0,234,0,212,0,182,0,161,0,157,0,152,0,138,0,117,0,85,0,51,0,45,0,54,0,36,0,248,255,216,255, +204,255,194,255,177,255,145,255,107,255,83,255,78,255,72,255,51,255,20,255,245,254,222,254,204,254,186,254,164,254,137,254, +105,254,87,254,88,254,85,254,61,254,34,254,19,254,5,254,247,253,234,253,216,253,192,253,173,253,165,253,161,253,154,253, +139,253,127,253,128,253,133,253,127,253,114,253,102,253,94,253,88,253,80,253,72,253,64,253,56,253,51,253,61,253,79,253, +88,253,91,253,100,253,106,253,102,253,107,253,125,253,136,253,136,253,142,253,161,253,176,253,181,253,191,253,215,253,235,253, +241,253,248,253,6,254,11,254,24,254,61,254,92,254,96,254,99,254,127,254,163,254,188,254,200,254,211,254,237,254,17,255, +42,255,59,255,81,255,95,255,108,255,144,255,188,255,206,255,210,255,232,255,7,0,31,0,49,0,67,0,90,0,120,0, +147,0,170,0,195,0,214,0,221,0,238,0,22,1,62,1,81,1,85,1,93,1,114,1,145,1,176,1,195,1,204,1, +214,1,235,1,10,2,34,2,47,2,60,2,80,2,102,2,125,2,144,2,159,2,173,2,186,2,194,2,210,2,237,2, +252,2,0,3,20,3,57,3,81,3,83,3,80,3,92,3,126,3,162,3,175,3,171,3,171,3,185,3,214,3,247,3, +7,4,3,4,2,4,20,4,53,4,83,4,92,4,80,4,75,4,99,4,136,4,151,4,131,4,108,4,120,4,154,4, +170,4,166,4,162,4,152,4,145,4,160,4,179,4,171,4,154,4,146,4,129,4,109,4,114,4,122,4,98,4,60,4, +43,4,41,4,28,4,250,3,204,3,171,3,159,3,150,3,124,3,84,3,40,3,0,3,223,2,200,2,180,2,148,2, +95,2,38,2,254,1,231,1,201,1,152,1,96,1,47,1,13,1,242,0,207,0,156,0,100,0,59,0,31,0,250,255, +198,255,151,255,122,255,97,255,65,255,17,255,206,254,139,254,110,254,110,254,81,254,7,254,187,253,150,253,150,253,168,253, +173,253,135,253,54,253,231,252,191,252,175,252,148,252,104,252,54,252,253,251,210,251,214,251,247,251,247,251,188,251,106,251, +34,251,245,250,227,250,204,250,146,250,82,250,52,250,44,250,26,250,255,249,223,249,170,249,99,249,42,249,6,249,218,248, +149,248,83,248,44,248,19,248,237,247,177,247,108,247,50,247,14,247,246,246,209,246,149,246,82,246,28,246,254,245,244,245, +230,245,198,245,157,245,127,245,113,245,105,245,93,245,72,245,46,245,22,245,254,244,225,244,214,244,237,244,4,245,250,244, +240,244,3,245,25,245,32,245,49,245,86,245,125,245,165,245,207,245,240,245,17,246,76,246,159,246,238,246,45,247,97,247, +149,247,217,247,47,248,131,248,194,248,242,248,37,249,113,249,214,249,58,250,131,250,187,250,254,250,83,251,175,251,10,252, +86,252,140,252,194,252,23,253,130,253,225,253,47,254,124,254,198,254,16,255,103,255,192,255,253,255,40,0,93,0,160,0, +233,0,48,1,100,1,134,1,181,1,251,1,56,2,95,2,129,2,167,2,198,2,231,2,30,3,92,3,125,3,132,3, +155,3,209,3,15,4,65,4,86,4,78,4,83,4,134,4,193,4,214,4,220,4,246,4,23,5,46,5,67,5,91,5, +118,5,138,5,144,5,152,5,178,5,197,5,194,5,199,5,228,5,251,5,8,6,35,6,72,6,94,6,107,6,118,6, +122,6,122,6,128,6,147,6,169,6,187,6,201,6,214,6,223,6,233,6,253,6,14,7,7,7,248,6,250,6,1,7, +253,6,253,6,5,7,7,7,5,7,9,7,13,7,9,7,2,7,255,6,249,6,237,6,222,6,213,6,206,6,192,6, +176,6,169,6,169,6,164,6,145,6,114,6,88,6,67,6,34,6,248,5,223,5,211,5,187,5,156,5,127,5,94,5, +63,5,46,5,21,5,232,4,195,4,171,4,133,4,82,4,39,4,12,4,245,3,217,3,175,3,129,3,90,3,53,3, +13,3,234,2,195,2,145,2,102,2,71,2,40,2,0,2,216,1,178,1,144,1,115,1,91,1,67,1,38,1,3,1, +229,0,205,0,174,0,142,0,125,0,111,0,81,0,58,0,49,0,27,0,253,255,242,255,239,255,220,255,201,255,192,255, +174,255,149,255,134,255,127,255,121,255,118,255,114,255,105,255,104,255,116,255,121,255,109,255,96,255,94,255,90,255,80,255, +82,255,85,255,73,255,62,255,76,255,96,255,101,255,102,255,106,255,101,255,91,255,87,255,82,255,75,255,68,255,66,255, +77,255,101,255,115,255,115,255,123,255,142,255,146,255,136,255,136,255,147,255,154,255,151,255,148,255,163,255,193,255,220,255, +231,255,237,255,244,255,255,255,19,0,31,0,24,0,18,0,32,0,54,0,70,0,84,0,96,0,105,0,124,0,157,0, +184,0,188,0,178,0,175,0,191,0,215,0,233,0,239,0,241,0,242,0,250,0,11,1,27,1,35,1,38,1,41,1, +42,1,42,1,37,1,29,1,26,1,36,1,50,1,53,1,42,1,27,1,17,1,11,1,7,1,4,1,253,0,231,0, +204,0,193,0,196,0,191,0,166,0,139,0,122,0,109,0,92,0,77,0,60,0,25,0,237,255,213,255,215,255,215,255, +191,255,151,255,118,255,103,255,94,255,70,255,38,255,14,255,248,254,220,254,197,254,177,254,150,254,127,254,119,254,105,254, +75,254,42,254,14,254,243,253,227,253,219,253,197,253,160,253,137,253,131,253,122,253,104,253,85,253,61,253,34,253,17,253, +12,253,253,252,228,252,207,252,198,252,193,252,190,252,186,252,173,252,148,252,121,252,105,252,99,252,98,252,98,252,99,252, +101,252,100,252,96,252,87,252,65,252,41,252,30,252,30,252,28,252,26,252,28,252,38,252,56,252,75,252,88,252,94,252, +95,252,80,252,51,252,32,252,31,252,32,252,33,252,47,252,75,252,106,252,129,252,139,252,137,252,134,252,134,252,132,252, +123,252,112,252,109,252,124,252,143,252,152,252,160,252,177,252,196,252,206,252,209,252,211,252,212,252,206,252,196,252,197,252, +213,252,225,252,229,252,244,252,11,253,24,253,32,253,50,253,62,253,52,253,45,253,62,253,80,253,78,253,78,253,102,253, +131,253,143,253,147,253,158,253,170,253,175,253,182,253,199,253,210,253,208,253,206,253,222,253,250,253,14,254,23,254,38,254, +57,254,66,254,78,254,104,254,121,254,118,254,123,254,143,254,159,254,176,254,202,254,218,254,225,254,250,254,30,255,49,255, +52,255,54,255,58,255,75,255,105,255,132,255,147,255,166,255,193,255,224,255,255,255,24,0,34,0,34,0,44,0,76,0, +113,0,134,0,151,0,179,0,210,0,240,0,29,1,74,1,88,1,90,1,119,1,163,1,189,1,200,1,221,1,255,1, +40,2,73,2,89,2,103,2,123,2,150,2,188,2,233,2,5,3,12,3,23,3,48,3,71,3,90,3,118,3,151,3, +175,3,190,3,208,3,224,3,235,3,253,3,25,4,40,4,38,4,47,4,66,4,71,4,71,4,86,4,97,4,91,4, +95,4,110,4,114,4,108,4,106,4,103,4,95,4,95,4,100,4,102,4,97,4,88,4,80,4,79,4,81,4,77,4, +63,4,40,4,25,4,26,4,26,4,12,4,1,4,0,4,243,3,220,3,214,3,215,3,200,3,171,3,146,3,134,3, +130,3,123,3,106,3,88,3,78,3,62,3,38,3,14,3,249,2,239,2,241,2,231,2,197,2,167,2,162,2,162,2, +145,2,119,2,92,2,65,2,48,2,47,2,39,2,5,2,228,1,218,1,212,1,185,1,156,1,140,1,119,1,91,1, +73,1,55,1,24,1,251,0,232,0,208,0,183,0,169,0,156,0,132,0,106,0,86,0,64,0,44,0,28,0,8,0, +239,255,212,255,183,255,154,255,136,255,130,255,118,255,88,255,57,255,43,255,34,255,14,255,244,254,219,254,191,254,172,254, +165,254,152,254,129,254,111,254,96,254,73,254,59,254,53,254,30,254,2,254,3,254,10,254,238,253,206,253,207,253,213,253, +191,253,166,253,163,253,163,253,151,253,142,253,144,253,142,253,128,253,113,253,112,253,117,253,116,253,113,253,117,253,116,253, +102,253,97,253,120,253,148,253,148,253,138,253,143,253,155,253,159,253,167,253,177,253,179,253,181,253,204,253,234,253,250,253, +255,253,11,254,31,254,48,254,59,254,76,254,103,254,125,254,134,254,145,254,166,254,185,254,196,254,219,254,5,255,40,255, +49,255,48,255,69,255,105,255,125,255,133,255,152,255,182,255,211,255,245,255,27,0,55,0,73,0,92,0,113,0,137,0, +169,0,200,0,223,0,248,0,28,1,61,1,81,1,99,1,129,1,165,1,197,1,223,1,244,1,7,2,30,2,61,2, +92,2,117,2,140,2,165,2,187,2,213,2,251,2,35,3,54,3,54,3,64,3,95,3,133,3,157,3,171,3,186,3, +200,3,217,3,240,3,0,4,4,4,11,4,31,4,50,4,55,4,53,4,51,4,59,4,74,4,83,4,83,4,81,4, +76,4,68,4,72,4,78,4,68,4,52,4,47,4,39,4,17,4,252,3,233,3,220,3,222,3,218,3,182,3,140,3, +119,3,101,3,76,3,61,3,44,3,10,3,239,2,236,2,222,2,173,2,123,2,97,2,77,2,48,2,26,2,12,2, +238,1,192,1,166,1,157,1,128,1,78,1,44,1,31,1,10,1,230,0,198,0,168,0,123,0,76,0,60,0,76,0, +78,0,36,0,228,255,171,255,136,255,133,255,149,255,134,255,66,255,253,254,230,254,242,254,253,254,237,254,190,254,127,254, +77,254,66,254,81,254,74,254,15,254,194,253,143,253,126,253,125,253,117,253,94,253,60,253,26,253,248,252,224,252,213,252, +187,252,133,252,78,252,43,252,18,252,255,251,244,251,222,251,192,251,178,251,172,251,150,251,112,251,65,251,14,251,233,250, +219,250,199,250,159,250,124,250,114,250,128,250,150,250,148,250,113,250,75,250,61,250,61,250,56,250,28,250,236,249,205,249, +207,249,216,249,209,249,198,249,191,249,188,249,202,249,221,249,211,249,175,249,160,249,183,249,208,249,211,249,204,249,196,249, +192,249,217,249,22,250,63,250,48,250,17,250,24,250,61,250,94,250,107,250,102,250,89,250,93,250,123,250,170,250,212,250, +228,250,221,250,231,250,22,251,72,251,91,251,87,251,85,251,103,251,146,251,194,251,220,251,223,251,231,251,12,252,68,252, +112,252,126,252,130,252,143,252,173,252,218,252,7,253,26,253,30,253,57,253,109,253,156,253,184,253,197,253,208,253,235,253, +30,254,74,254,92,254,97,254,115,254,155,254,204,254,240,254,3,255,27,255,61,255,95,255,124,255,147,255,163,255,189,255, +233,255,13,0,25,0,32,0,55,0,92,0,140,0,183,0,197,0,190,0,196,0,227,0,12,1,48,1,72,1,81,1, +90,1,114,1,154,1,188,1,202,1,207,1,225,1,254,1,21,2,36,2,57,2,81,2,97,2,121,2,160,2,186,2, +187,2,199,2,241,2,18,3,20,3,22,3,41,3,60,3,84,3,123,3,156,3,164,3,167,3,187,3,220,3,249,3, +8,4,7,4,7,4,23,4,50,4,71,4,82,4,92,4,105,4,127,4,149,4,159,4,156,4,152,4,160,4,180,4, +196,4,195,4,190,4,197,4,209,4,213,4,215,4,223,4,224,4,210,4,200,4,207,4,213,4,206,4,198,4,199,4, +193,4,177,4,170,4,173,4,168,4,157,4,152,4,139,4,110,4,88,4,87,4,78,4,52,4,33,4,29,4,17,4, +249,3,230,3,212,3,182,3,153,3,137,3,122,3,99,3,74,3,52,3,24,3,246,2,218,2,205,2,192,2,155,2, +99,2,55,2,33,2,12,2,235,1,195,1,150,1,109,1,76,1,37,1,242,0,196,0,161,0,125,0,87,0,52,0, +11,0,216,255,171,255,136,255,104,255,69,255,32,255,254,254,225,254,189,254,141,254,96,254,68,254,43,254,3,254,212,253, +172,253,139,253,107,253,76,253,53,253,31,253,251,252,212,252,188,252,173,252,149,252,120,252,97,252,79,252,67,252,59,252, +41,252,17,252,6,252,9,252,4,252,244,251,232,251,233,251,235,251,226,251,219,251,220,251,219,251,213,251,215,251,220,251, +216,251,212,251,219,251,225,251,231,251,243,251,0,252,12,252,27,252,36,252,35,252,44,252,67,252,78,252,77,252,89,252, +112,252,130,252,150,252,177,252,194,252,199,252,214,252,250,252,24,253,29,253,31,253,55,253,85,253,103,253,118,253,132,253, +141,253,164,253,207,253,239,253,249,253,8,254,32,254,54,254,78,254,105,254,124,254,140,254,165,254,197,254,229,254,1,255, +22,255,46,255,78,255,109,255,136,255,166,255,190,255,202,255,222,255,252,255,22,0,47,0,81,0,114,0,143,0,176,0, +204,0,225,0,244,0,13,1,40,1,70,1,103,1,136,1,163,1,174,1,188,1,230,1,23,2,44,2,54,2,81,2, +108,2,125,2,148,2,179,2,200,2,213,2,236,2,9,3,38,3,55,3,65,3,81,3,111,3,142,3,164,3,179,3, +191,3,201,3,211,3,224,3,246,3,17,4,31,4,35,4,55,4,85,4,99,4,104,4,111,4,114,4,114,4,122,4, +132,4,135,4,136,4,137,4,142,4,156,4,172,4,179,4,178,4,172,4,166,4,174,4,185,4,174,4,153,4,149,4, +159,4,160,4,150,4,145,4,148,4,147,4,133,4,119,4,111,4,94,4,70,4,62,4,61,4,39,4,12,4,4,4, +255,3,237,3,221,3,210,3,193,3,170,3,146,3,123,3,111,3,107,3,90,3,58,3,26,3,3,3,250,2,245,2, +223,2,187,2,161,2,144,2,119,2,97,2,85,2,66,2,36,2,10,2,243,1,221,1,205,1,183,1,152,1,125,1, +115,1,107,1,88,1,60,1,34,1,10,1,244,0,225,0,208,0,189,0,169,0,153,0,133,0,100,0,73,0,66,0, +62,0,45,0,24,0,6,0,242,255,218,255,194,255,173,255,158,255,143,255,118,255,94,255,88,255,86,255,72,255,52,255, +36,255,20,255,255,254,237,254,229,254,219,254,201,254,184,254,178,254,169,254,152,254,142,254,142,254,134,254,120,254,108,254, +93,254,73,254,60,254,49,254,35,254,26,254,26,254,21,254,12,254,7,254,1,254,245,253,234,253,231,253,227,253,214,253, +197,253,191,253,196,253,199,253,197,253,198,253,194,253,183,253,178,253,184,253,183,253,177,253,174,253,164,253,147,253,142,253, +150,253,155,253,160,253,168,253,166,253,156,253,159,253,171,253,175,253,170,253,165,253,161,253,162,253,169,253,170,253,165,253, +173,253,191,253,199,253,199,253,206,253,213,253,213,253,214,253,220,253,229,253,237,253,239,253,238,253,242,253,4,254,25,254, +41,254,54,254,62,254,67,254,77,254,91,254,99,254,104,254,124,254,148,254,162,254,169,254,183,254,197,254,207,254,223,254, +249,254,13,255,18,255,24,255,43,255,69,255,91,255,108,255,119,255,130,255,149,255,174,255,190,255,199,255,211,255,230,255, +254,255,26,0,46,0,52,0,55,0,72,0,93,0,107,0,121,0,141,0,159,0,171,0,188,0,205,0,208,0,206,0, +220,0,246,0,4,1,5,1,11,1,26,1,39,1,45,1,46,1,50,1,59,1,70,1,84,1,97,1,97,1,86,1, +80,1,89,1,105,1,112,1,106,1,98,1,101,1,110,1,108,1,104,1,109,1,105,1,89,1,89,1,100,1,98,1, +89,1,89,1,87,1,79,1,78,1,72,1,58,1,52,1,56,1,50,1,40,1,40,1,40,1,33,1,29,1,25,1, +11,1,253,0,249,0,249,0,247,0,233,0,205,0,177,0,165,0,166,0,171,0,177,0,179,0,172,0,154,0,125,0, +100,0,89,0,76,0,46,0,13,0,253,255,250,255,251,255,252,255,246,255,226,255,194,255,168,255,158,255,145,255,105,255, +49,255,2,255,228,254,215,254,212,254,197,254,167,254,143,254,136,254,127,254,99,254,54,254,4,254,216,253,181,253,149,253, +116,253,82,253,39,253,251,252,226,252,212,252,181,252,123,252,58,252,4,252,217,251,171,251,120,251,72,251,25,251,239,250, +215,250,195,250,158,250,125,250,120,250,114,250,77,250,30,250,241,249,193,249,155,249,132,249,103,249,65,249,30,249,3,249, +247,248,250,248,250,248,233,248,207,248,175,248,141,248,119,248,106,248,83,248,64,248,68,248,81,248,87,248,91,248,100,248, +118,248,152,248,179,248,177,248,164,248,163,248,177,248,202,248,231,248,248,248,4,249,37,249,90,249,136,249,163,249,183,249, +206,249,237,249,14,250,50,250,88,250,123,250,158,250,206,250,8,251,56,251,97,251,152,251,221,251,32,252,81,252,117,252, +151,252,189,252,229,252,31,253,101,253,152,253,181,253,230,253,50,254,111,254,143,254,169,254,206,254,2,255,61,255,106,255, +133,255,163,255,206,255,2,0,58,0,104,0,134,0,162,0,204,0,0,1,46,1,76,1,94,1,115,1,152,1,200,1, +248,1,25,2,40,2,62,2,106,2,147,2,169,2,191,2,224,2,0,3,32,3,66,3,87,3,104,3,136,3,171,3, +204,3,245,3,28,4,51,4,76,4,113,4,144,4,169,4,204,4,239,4,6,5,31,5,66,5,101,5,132,5,167,5, +205,5,235,5,250,5,10,6,43,6,84,6,114,6,141,6,166,6,180,6,197,6,232,6,11,7,29,7,46,7,76,7, +108,7,131,7,148,7,160,7,168,7,180,7,200,7,224,7,242,7,249,7,244,7,240,7,253,7,22,8,29,8,14,8, +7,8,13,8,9,8,254,7,255,7,253,7,233,7,221,7,226,7,222,7,193,7,164,7,150,7,140,7,123,7,94,7, +64,7,43,7,27,7,7,7,235,6,193,6,142,6,104,6,85,6,61,6,18,6,225,5,185,5,150,5,113,5,76,5, +42,5,2,5,206,4,154,4,112,4,70,4,21,4,232,3,195,3,155,3,114,3,77,3,35,3,242,2,194,2,141,2, +83,2,33,2,246,1,200,1,156,1,121,1,87,1,50,1,16,1,239,0,201,0,160,0,116,0,64,0,17,0,237,255, +202,255,164,255,131,255,106,255,84,255,64,255,38,255,3,255,223,254,194,254,165,254,132,254,100,254,71,254,40,254,8,254, +241,253,224,253,210,253,196,253,179,253,153,253,124,253,98,253,75,253,54,253,37,253,22,253,4,253,239,252,218,252,203,252, +195,252,186,252,167,252,144,252,124,252,107,252,94,252,82,252,59,252,35,252,25,252,21,252,6,252,245,251,237,251,227,251, +209,251,193,251,181,251,171,251,167,251,173,251,171,251,154,251,140,251,141,251,145,251,145,251,149,251,158,251,155,251,139,251, +130,251,136,251,141,251,139,251,147,251,167,251,179,251,174,251,170,251,181,251,202,251,219,251,228,251,236,251,249,251,14,252, +37,252,60,252,82,252,101,252,118,252,140,252,171,252,199,252,216,252,233,252,1,253,26,253,47,253,76,253,117,253,154,253, +176,253,196,253,230,253,12,254,45,254,80,254,113,254,132,254,158,254,206,254,251,254,16,255,41,255,86,255,130,255,166,255, +205,255,240,255,8,0,39,0,76,0,105,0,134,0,165,0,191,0,216,0,248,0,25,1,58,1,92,1,118,1,138,1, +169,1,205,1,227,1,241,1,9,2,38,2,60,2,81,2,109,2,136,2,150,2,155,2,163,2,177,2,196,2,222,2, +245,2,246,2,240,2,254,2,23,3,33,3,32,3,36,3,41,3,49,3,66,3,79,3,77,3,69,3,69,3,73,3, +69,3,68,3,79,3,87,3,78,3,69,3,71,3,65,3,47,3,37,3,35,3,26,3,18,3,17,3,10,3,252,2, +247,2,246,2,238,2,226,2,219,2,213,2,203,2,190,2,179,2,169,2,153,2,133,2,127,2,130,2,118,2,95,2, +78,2,66,2,54,2,39,2,17,2,249,1,233,1,224,1,211,1,197,1,182,1,162,1,143,1,127,1,111,1,102,1, +95,1,72,1,46,1,37,1,21,1,240,0,220,0,218,0,198,0,165,0,147,0,135,0,108,0,79,0,57,0,34,0, +13,0,250,255,225,255,197,255,177,255,164,255,150,255,133,255,113,255,91,255,67,255,45,255,27,255,6,255,232,254,204,254, +188,254,174,254,152,254,129,254,107,254,86,254,67,254,52,254,39,254,25,254,2,254,225,253,201,253,190,253,175,253,154,253, +140,253,130,253,112,253,93,253,83,253,79,253,73,253,59,253,38,253,21,253,9,253,3,253,8,253,7,253,243,252,219,252, +212,252,209,252,202,252,200,252,199,252,189,252,184,252,187,252,188,252,184,252,185,252,188,252,192,252,197,252,199,252,201,252, +209,252,219,252,224,252,229,252,234,252,237,252,247,252,2,253,6,253,8,253,11,253,16,253,29,253,43,253,47,253,56,253, +81,253,92,253,83,253,93,253,125,253,142,253,140,253,146,253,159,253,169,253,181,253,194,253,203,253,212,253,226,253,244,253, +2,254,9,254,15,254,28,254,41,254,48,254,61,254,83,254,94,254,95,254,109,254,133,254,145,254,146,254,155,254,170,254, +182,254,197,254,217,254,233,254,241,254,252,254,10,255,21,255,30,255,41,255,53,255,66,255,87,255,102,255,100,255,105,255, +132,255,155,255,157,255,163,255,181,255,198,255,211,255,226,255,238,255,246,255,0,0,19,0,47,0,69,0,72,0,65,0, +71,0,93,0,117,0,140,0,156,0,159,0,162,0,176,0,196,0,213,0,225,0,235,0,244,0,0,1,14,1,28,1, +37,1,45,1,65,1,90,1,97,1,92,1,107,1,132,1,138,1,136,1,150,1,161,1,156,1,160,1,182,1,198,1, +197,1,194,1,198,1,204,1,208,1,213,1,219,1,218,1,212,1,214,1,220,1,215,1,207,1,216,1,234,1,233,1, +217,1,208,1,206,1,204,1,204,1,202,1,191,1,177,1,174,1,171,1,161,1,153,1,153,1,148,1,129,1,109,1, +101,1,96,1,80,1,59,1,51,1,54,1,45,1,25,1,10,1,1,1,248,0,240,0,232,0,212,0,189,0,183,0, +181,0,166,0,151,0,143,0,127,0,112,0,112,0,108,0,79,0,53,0,52,0,51,0,35,0,21,0,16,0,6,0, +250,255,248,255,250,255,242,255,224,255,209,255,198,255,195,255,196,255,190,255,176,255,165,255,163,255,165,255,164,255,158,255, +144,255,133,255,131,255,133,255,125,255,115,255,111,255,108,255,103,255,102,255,103,255,93,255,81,255,86,255,99,255,96,255, +82,255,79,255,85,255,82,255,79,255,86,255,92,255,87,255,80,255,79,255,81,255,78,255,66,255,58,255,68,255,82,255, +78,255,69,255,75,255,88,255,89,255,88,255,93,255,97,255,94,255,87,255,88,255,100,255,110,255,110,255,116,255,126,255, +127,255,125,255,138,255,151,255,150,255,150,255,158,255,164,255,172,255,186,255,196,255,197,255,198,255,204,255,218,255,237,255, +247,255,249,255,3,0,22,0,32,0,35,0,48,0,64,0,75,0,84,0,94,0,100,0,107,0,126,0,150,0,162,0, +162,0,172,0,197,0,214,0,215,0,223,0,240,0,251,0,0,1,15,1,36,1,42,1,37,1,49,1,81,1,99,1, +93,1,96,1,119,1,130,1,124,1,130,1,143,1,142,1,143,1,159,1,175,1,181,1,186,1,194,1,196,1,195,1, +195,1,200,1,206,1,208,1,205,1,201,1,197,1,194,1,196,1,195,1,191,1,194,1,194,1,179,1,162,1,157,1, +156,1,151,1,146,1,138,1,128,1,126,1,126,1,118,1,111,1,103,1,89,1,73,1,61,1,47,1,41,1,41,1, +31,1,15,1,13,1,8,1,238,0,217,0,216,0,210,0,193,0,182,0,177,0,167,0,154,0,142,0,131,0,120,0, +102,0,84,0,77,0,73,0,57,0,39,0,31,0,28,0,18,0,2,0,243,255,237,255,236,255,226,255,203,255,182,255, +172,255,167,255,155,255,135,255,120,255,119,255,115,255,99,255,81,255,69,255,58,255,50,255,49,255,42,255,24,255,5,255, +249,254,238,254,227,254,219,254,217,254,211,254,194,254,178,254,176,254,172,254,157,254,148,254,143,254,129,254,119,254,123,254, +118,254,102,254,100,254,104,254,91,254,79,254,83,254,83,254,70,254,66,254,75,254,80,254,69,254,58,254,65,254,82,254, +87,254,82,254,81,254,82,254,84,254,94,254,105,254,105,254,99,254,95,254,101,254,118,254,131,254,127,254,127,254,148,254, +161,254,161,254,176,254,204,254,216,254,218,254,228,254,233,254,234,254,247,254,9,255,18,255,33,255,56,255,66,255,67,255, +81,255,104,255,116,255,120,255,132,255,150,255,160,255,163,255,175,255,196,255,212,255,220,255,229,255,244,255,4,0,17,0, +28,0,35,0,41,0,51,0,67,0,85,0,92,0,90,0,92,0,104,0,118,0,127,0,125,0,115,0,117,0,138,0, +157,0,154,0,143,0,142,0,153,0,163,0,162,0,158,0,158,0,159,0,156,0,158,0,164,0,164,0,161,0,161,0, +157,0,153,0,157,0,160,0,149,0,140,0,142,0,141,0,138,0,142,0,142,0,130,0,122,0,126,0,131,0,130,0, +124,0,116,0,110,0,108,0,110,0,117,0,123,0,119,0,107,0,99,0,99,0,103,0,103,0,99,0,95,0,91,0, +87,0,85,0,91,0,96,0,91,0,86,0,92,0,97,0,88,0,75,0,65,0,61,0,63,0,65,0,58,0,53,0, +55,0,51,0,35,0,27,0,29,0,23,0,9,0,2,0,255,255,246,255,240,255,243,255,241,255,226,255,215,255,211,255, +206,255,198,255,192,255,186,255,175,255,158,255,147,255,143,255,137,255,123,255,109,255,100,255,93,255,88,255,84,255,74,255, +57,255,47,255,43,255,34,255,22,255,23,255,28,255,17,255,255,254,249,254,252,254,245,254,234,254,234,254,242,254,239,254, +226,254,222,254,231,254,234,254,221,254,208,254,214,254,222,254,217,254,217,254,231,254,236,254,223,254,222,254,243,254,2,255, +4,255,8,255,16,255,15,255,15,255,30,255,45,255,46,255,44,255,54,255,67,255,71,255,79,255,97,255,109,255,112,255, +124,255,140,255,144,255,140,255,147,255,168,255,192,255,205,255,204,255,204,255,222,255,241,255,244,255,242,255,250,255,4,0, +13,0,27,0,43,0,51,0,51,0,53,0,65,0,80,0,83,0,80,0,86,0,91,0,88,0,94,0,113,0,120,0, +114,0,115,0,124,0,130,0,131,0,132,0,136,0,144,0,151,0,150,0,148,0,149,0,146,0,146,0,155,0,159,0, +154,0,155,0,159,0,148,0,132,0,138,0,159,0,165,0,157,0,156,0,167,0,173,0,172,0,170,0,164,0,150,0, +148,0,161,0,170,0,167,0,167,0,169,0,165,0,166,0,178,0,190,0,186,0,171,0,161,0,166,0,180,0,188,0, +192,0,194,0,194,0,196,0,205,0,216,0,223,0,223,0,215,0,207,0,213,0,225,0,229,0,232,0,244,0,253,0, +250,0,246,0,0,1,16,1,13,1,253,0,2,1,30,1,38,1,22,1,21,1,34,1,33,1,35,1,54,1,64,1, +57,1,58,1,69,1,70,1,67,1,71,1,74,1,75,1,79,1,86,1,83,1,68,1,56,1,68,1,93,1,96,1, +83,1,81,1,86,1,85,1,84,1,87,1,84,1,84,1,92,1,90,1,75,1,68,1,73,1,82,1,90,1,93,1, +87,1,78,1,72,1,67,1,65,1,71,1,77,1,67,1,50,1,45,1,52,1,56,1,51,1,45,1,44,1,52,1, +63,1,61,1,44,1,31,1,31,1,31,1,25,1,18,1,15,1,14,1,18,1,17,1,9,1,5,1,3,1,249,0, +240,0,245,0,245,0,224,0,203,0,198,0,198,0,197,0,197,0,195,0,192,0,187,0,180,0,173,0,170,0,164,0, +150,0,135,0,127,0,129,0,129,0,118,0,99,0,87,0,79,0,71,0,69,0,67,0,54,0,34,0,25,0,22,0, +16,0,10,0,2,0,250,255,247,255,241,255,230,255,222,255,217,255,205,255,194,255,194,255,190,255,174,255,162,255,158,255, +150,255,144,255,145,255,139,255,121,255,106,255,100,255,97,255,93,255,88,255,78,255,68,255,65,255,59,255,43,255,32,255, +37,255,43,255,38,255,33,255,24,255,0,255,233,254,240,254,9,255,14,255,250,254,230,254,224,254,225,254,226,254,225,254, +214,254,197,254,191,254,200,254,205,254,196,254,183,254,176,254,174,254,178,254,186,254,185,254,171,254,159,254,160,254,165,254, +164,254,160,254,154,254,146,254,139,254,135,254,132,254,130,254,129,254,124,254,118,254,118,254,119,254,111,254,104,254,109,254, +116,254,109,254,95,254,88,254,85,254,83,254,83,254,83,254,78,254,70,254,59,254,49,254,49,254,54,254,53,254,40,254, +23,254,7,254,253,253,255,253,1,254,247,253,237,253,237,253,235,253,219,253,202,253,202,253,207,253,200,253,186,253,174,253, +167,253,163,253,162,253,159,253,153,253,142,253,126,253,114,253,117,253,123,253,111,253,96,253,95,253,96,253,90,253,87,253, +82,253,67,253,61,253,66,253,61,253,52,253,58,253,65,253,58,253,52,253,53,253,41,253,30,253,42,253,59,253,53,253, +38,253,37,253,44,253,45,253,50,253,66,253,80,253,75,253,63,253,69,253,85,253,96,253,107,253,119,253,125,253,128,253, +141,253,157,253,167,253,174,253,188,253,208,253,228,253,238,253,243,253,254,253,20,254,43,254,60,254,71,254,83,254,106,254, +133,254,154,254,171,254,187,254,202,254,221,254,253,254,31,255,52,255,65,255,80,255,98,255,121,255,150,255,177,255,200,255, +219,255,237,255,5,0,33,0,55,0,67,0,83,0,109,0,134,0,151,0,162,0,180,0,212,0,245,0,8,1,19,1, +35,1,55,1,77,1,96,1,113,1,130,1,144,1,154,1,171,1,198,1,212,1,217,1,236,1,5,2,17,2,33,2, +52,2,52,2,48,2,77,2,112,2,121,2,120,2,129,2,141,2,156,2,180,2,196,2,196,2,194,2,203,2,226,2, +251,2,4,3,0,3,0,3,8,3,19,3,33,3,38,3,28,3,29,3,50,3,62,3,57,3,60,3,71,3,75,3, +74,3,77,3,77,3,68,3,64,3,72,3,77,3,74,3,79,3,95,3,98,3,81,3,66,3,61,3,56,3,51,3, +46,3,36,3,26,3,19,3,12,3,10,3,10,3,253,2,235,2,232,2,228,2,204,2,184,2,185,2,184,2,171,2, +154,2,129,2,103,2,98,2,99,2,86,2,69,2,55,2,32,2,3,2,238,1,221,1,204,1,186,1,165,1,144,1, +131,1,125,1,109,1,73,1,36,1,23,1,25,1,11,1,239,0,215,0,191,0,163,0,154,0,161,0,148,0,116,0, +96,0,83,0,65,0,48,0,37,0,23,0,8,0,247,255,228,255,214,255,207,255,199,255,187,255,175,255,166,255,164,255, +166,255,157,255,139,255,125,255,113,255,102,255,102,255,113,255,118,255,115,255,113,255,115,255,116,255,116,255,109,255,99,255, +97,255,100,255,102,255,105,255,111,255,117,255,124,255,133,255,145,255,151,255,146,255,146,255,159,255,167,255,166,255,173,255, +184,255,181,255,181,255,202,255,221,255,218,255,217,255,226,255,232,255,237,255,249,255,254,255,255,255,10,0,22,0,20,0, +19,0,36,0,59,0,69,0,62,0,55,0,58,0,67,0,71,0,71,0,76,0,83,0,88,0,91,0,92,0,97,0, +103,0,105,0,103,0,101,0,99,0,97,0,102,0,112,0,118,0,114,0,103,0,99,0,111,0,124,0,117,0,98,0, +86,0,88,0,101,0,113,0,110,0,94,0,85,0,89,0,96,0,98,0,91,0,74,0,60,0,54,0,54,0,64,0, +82,0,84,0,70,0,62,0,59,0,47,0,38,0,46,0,54,0,52,0,51,0,45,0,32,0,24,0,27,0,29,0, +24,0,16,0,255,255,237,255,238,255,252,255,249,255,231,255,219,255,215,255,211,255,215,255,220,255,207,255,177,255,158,255, +156,255,160,255,161,255,153,255,136,255,127,255,131,255,125,255,103,255,84,255,74,255,66,255,61,255,52,255,34,255,22,255, +24,255,25,255,14,255,0,255,243,254,225,254,209,254,201,254,196,254,183,254,163,254,148,254,144,254,149,254,150,254,136,254, +115,254,103,254,99,254,85,254,68,254,62,254,63,254,55,254,41,254,31,254,23,254,16,254,16,254,19,254,11,254,255,253, +246,253,238,253,236,253,246,253,252,253,239,253,227,253,235,253,246,253,243,253,235,253,237,253,240,253,238,253,243,253,251,253, +250,253,250,253,6,254,19,254,22,254,25,254,33,254,42,254,47,254,51,254,57,254,67,254,80,254,91,254,105,254,122,254, +135,254,141,254,151,254,168,254,190,254,209,254,216,254,214,254,215,254,225,254,244,254,18,255,49,255,57,255,54,255,68,255, +97,255,115,255,121,255,126,255,137,255,154,255,171,255,181,255,190,255,204,255,220,255,237,255,1,0,10,0,11,0,26,0, +52,0,66,0,67,0,75,0,87,0,94,0,107,0,127,0,136,0,132,0,143,0,173,0,191,0,187,0,187,0,204,0, +222,0,231,0,234,0,232,0,235,0,248,0,2,1,7,1,19,1,33,1,35,1,33,1,39,1,47,1,56,1,70,1, +80,1,79,1,77,1,83,1,96,1,113,1,122,1,115,1,108,1,112,1,119,1,129,1,143,1,147,1,141,1,143,1, +155,1,164,1,170,1,174,1,169,1,161,1,162,1,168,1,173,1,177,1,184,1,192,1,198,1,200,1,197,1,195,1, +195,1,196,1,196,1,194,1,198,1,208,1,213,1,210,1,205,1,200,1,197,1,205,1,216,1,213,1,208,1,219,1, +225,1,213,1,207,1,217,1,220,1,213,1,212,1,215,1,209,1,200,1,201,1,214,1,227,1,226,1,218,1,217,1, +224,1,229,1,228,1,211,1,189,1,185,1,202,1,213,1,208,1,198,1,191,1,190,1,189,1,186,1,186,1,190,1, +177,1,152,1,145,1,156,1,157,1,146,1,142,1,144,1,146,1,146,1,137,1,121,1,116,1,118,1,115,1,104,1, +87,1,64,1,47,1,46,1,52,1,51,1,36,1,17,1,15,1,28,1,29,1,8,1,235,0,215,0,208,0,209,0, +202,0,185,0,173,0,172,0,166,0,156,0,149,0,142,0,132,0,120,0,107,0,92,0,72,0,47,0,33,0,38,0, +44,0,34,0,17,0,6,0,254,255,247,255,239,255,222,255,205,255,198,255,191,255,176,255,161,255,150,255,143,255,141,255, +132,255,117,255,109,255,102,255,85,255,67,255,56,255,43,255,30,255,23,255,13,255,253,254,243,254,231,254,210,254,199,254, +200,254,186,254,157,254,135,254,121,254,111,254,104,254,88,254,63,254,47,254,40,254,24,254,255,253,238,253,227,253,208,253, +181,253,160,253,145,253,125,253,99,253,78,253,64,253,52,253,41,253,26,253,0,253,223,252,198,252,183,252,171,252,157,252, +133,252,104,252,92,252,91,252,81,252,63,252,45,252,25,252,3,252,246,251,234,251,212,251,193,251,189,251,190,251,182,251, +164,251,146,251,137,251,130,251,125,251,128,251,127,251,107,251,86,251,88,251,99,251,99,251,97,251,96,251,86,251,74,251, +73,251,81,251,93,251,105,251,111,251,108,251,106,251,111,251,123,251,142,251,154,251,156,251,161,251,169,251,171,251,178,251, +204,251,231,251,240,251,245,251,7,252,31,252,44,252,52,252,76,252,118,252,146,252,147,252,149,252,170,252,197,252,221,252, +246,252,12,253,28,253,48,253,86,253,129,253,155,253,166,253,184,253,214,253,246,253,22,254,56,254,81,254,99,254,125,254, +162,254,198,254,230,254,3,255,27,255,51,255,76,255,97,255,125,255,167,255,202,255,220,255,242,255,25,0,59,0,82,0, +109,0,138,0,162,0,184,0,207,0,228,0,2,1,42,1,79,1,103,1,119,1,141,1,172,1,204,1,226,1,237,1, +245,1,8,2,45,2,83,2,102,2,114,2,141,2,173,2,193,2,208,2,228,2,246,2,6,3,21,3,34,3,48,3, +69,3,90,3,104,3,124,3,154,3,176,3,186,3,200,3,219,3,228,3,227,3,232,3,248,3,9,4,22,4,35,4, +47,4,57,4,64,4,65,4,65,4,76,4,89,4,87,4,77,4,79,4,83,4,82,4,85,4,90,4,79,4,62,4, +62,4,67,4,53,4,35,4,31,4,34,4,25,4,7,4,252,3,245,3,226,3,197,3,173,3,156,3,139,3,123,3, +110,3,93,3,69,3,48,3,27,3,255,2,228,2,212,2,195,2,162,2,120,2,89,2,76,2,67,2,44,2,11,2, +236,1,210,1,192,1,180,1,155,1,106,1,60,1,42,1,33,1,9,1,233,0,208,0,187,0,166,0,153,0,140,0, +113,0,79,0,54,0,36,0,14,0,241,255,216,255,204,255,201,255,193,255,174,255,156,255,144,255,129,255,113,255,100,255, +78,255,45,255,24,255,24,255,24,255,16,255,8,255,254,254,237,254,223,254,218,254,216,254,208,254,192,254,170,254,155,254, +155,254,160,254,158,254,153,254,150,254,147,254,144,254,141,254,124,254,100,254,93,254,107,254,116,254,110,254,102,254,101,254, +100,254,103,254,108,254,109,254,105,254,97,254,88,254,85,254,94,254,110,254,118,254,120,254,121,254,125,254,133,254,141,254, +143,254,149,254,163,254,173,254,174,254,176,254,186,254,194,254,198,254,206,254,226,254,250,254,9,255,18,255,33,255,52,255, +57,255,55,255,68,255,91,255,105,255,110,255,125,255,149,255,170,255,187,255,203,255,219,255,230,255,239,255,255,255,17,0, +29,0,40,0,57,0,77,0,99,0,119,0,130,0,138,0,162,0,196,0,216,0,220,0,223,0,235,0,255,0,30,1, +62,1,79,1,82,1,88,1,105,1,126,1,146,1,165,1,173,1,171,1,183,1,214,1,233,1,230,1,232,1,253,1, +14,2,24,2,39,2,51,2,46,2,42,2,56,2,76,2,82,2,75,2,74,2,82,2,89,2,91,2,98,2,107,2, +103,2,95,2,95,2,91,2,78,2,73,2,83,2,87,2,73,2,53,2,42,2,43,2,42,2,37,2,38,2,37,2, +17,2,249,1,246,1,245,1,227,1,212,1,210,1,202,1,184,1,171,1,158,1,141,1,131,1,125,1,109,1,93,1, +86,1,75,1,53,1,36,1,30,1,22,1,6,1,245,0,226,0,199,0,178,0,172,0,169,0,159,0,151,0,140,0, +123,0,112,0,104,0,85,0,65,0,55,0,34,0,255,255,238,255,238,255,226,255,209,255,205,255,204,255,193,255,183,255, +173,255,155,255,135,255,119,255,100,255,81,255,67,255,57,255,53,255,51,255,40,255,27,255,22,255,18,255,8,255,251,254, +235,254,216,254,205,254,197,254,186,254,177,254,168,254,151,254,134,254,136,254,147,254,147,254,141,254,142,254,142,254,126,254, +105,254,99,254,106,254,102,254,88,254,83,254,82,254,79,254,86,254,105,254,115,254,113,254,111,254,106,254,99,254,97,254, +104,254,114,254,122,254,122,254,117,254,124,254,141,254,157,254,170,254,182,254,191,254,202,254,214,254,216,254,215,254,225,254, +243,254,4,255,25,255,47,255,54,255,59,255,82,255,118,255,149,255,163,255,169,255,183,255,203,255,218,255,230,255,250,255, +17,0,38,0,65,0,94,0,120,0,148,0,171,0,180,0,193,0,221,0,245,0,254,0,6,1,22,1,43,1,64,1, +83,1,102,1,125,1,143,1,150,1,160,1,179,1,196,1,208,1,209,1,196,1,186,1,203,1,229,1,239,1,244,1, +255,1,2,2,252,1,253,1,3,2,0,2,247,1,238,1,232,1,225,1,215,1,209,1,211,1,217,1,220,1,211,1, +194,1,178,1,170,1,166,1,161,1,149,1,121,1,92,1,89,1,97,1,88,1,76,1,83,1,86,1,71,1,53,1, +39,1,22,1,8,1,255,0,246,0,243,0,243,0,235,0,229,0,234,0,230,0,211,0,200,0,193,0,178,0,173,0, +179,0,170,0,145,0,127,0,119,0,114,0,119,0,124,0,113,0,98,0,91,0,81,0,62,0,49,0,46,0,30,0, +252,255,225,255,213,255,210,255,213,255,217,255,199,255,162,255,141,255,140,255,127,255,98,255,71,255,42,255,9,255,251,254, +8,255,15,255,245,254,198,254,161,254,156,254,173,254,176,254,150,254,108,254,67,254,44,254,47,254,53,254,40,254,10,254, +228,253,193,253,184,253,201,253,214,253,206,253,180,253,147,253,122,253,115,253,117,253,112,253,92,253,54,253,7,253,240,252, +255,252,27,253,38,253,20,253,238,252,212,252,214,252,219,252,203,252,176,252,158,252,147,252,135,252,119,252,101,252,85,252, +78,252,84,252,90,252,77,252,46,252,20,252,9,252,4,252,2,252,249,251,219,251,180,251,162,251,160,251,160,251,165,251, +172,251,161,251,136,251,121,251,117,251,114,251,110,251,99,251,75,251,55,251,56,251,64,251,63,251,62,251,67,251,64,251, +49,251,45,251,60,251,75,251,73,251,65,251,60,251,59,251,70,251,92,251,107,251,113,251,118,251,119,251,116,251,128,251, +152,251,165,251,167,251,172,251,186,251,206,251,228,251,249,251,15,252,30,252,32,252,36,252,63,252,97,252,112,252,122,252, +141,252,162,252,186,252,224,252,1,253,17,253,33,253,58,253,79,253,99,253,131,253,164,253,186,253,205,253,230,253,6,254, +43,254,82,254,113,254,140,254,176,254,215,254,241,254,2,255,28,255,59,255,93,255,137,255,176,255,198,255,220,255,10,0, +69,0,117,0,147,0,163,0,181,0,221,0,19,1,54,1,68,1,84,1,115,1,160,1,213,1,2,2,27,2,50,2, +82,2,115,2,147,2,186,2,221,2,243,2,10,3,42,3,73,3,105,3,144,3,177,3,192,3,203,3,228,3,2,4, +21,4,33,4,51,4,79,4,108,4,129,4,141,4,151,4,169,4,199,4,226,4,239,4,245,4,4,5,20,5,25,5, +28,5,40,5,49,5,47,5,49,5,67,5,85,5,94,5,98,5,100,5,97,5,91,5,85,5,81,5,79,5,79,5, +73,5,64,5,64,5,66,5,57,5,43,5,39,5,40,5,26,5,0,5,233,4,216,4,203,4,195,4,191,4,174,4, +140,4,111,4,106,4,109,4,96,4,69,4,48,4,33,4,10,4,232,3,202,3,178,3,158,3,147,3,145,3,141,3, +123,3,98,3,78,3,64,3,57,3,44,3,7,3,205,2,159,2,142,2,147,2,158,2,161,2,148,2,136,2,144,2, +146,2,115,2,74,2,53,2,34,2,252,1,219,1,212,1,216,1,221,1,239,1,3,2,252,1,226,1,217,1,220,1, +207,1,167,1,120,1,94,1,97,1,107,1,98,1,86,1,90,1,99,1,102,1,104,1,89,1,45,1,8,1,2,1, +5,1,252,0,232,0,204,0,179,0,177,0,192,0,200,0,196,0,189,0,175,0,148,0,121,0,103,0,91,0,77,0, +54,0,29,0,14,0,10,0,13,0,16,0,13,0,250,255,222,255,204,255,206,255,207,255,189,255,160,255,129,255,100,255, +88,255,103,255,120,255,106,255,67,255,39,255,35,255,44,255,49,255,37,255,10,255,234,254,212,254,213,254,226,254,218,254, +190,254,173,254,169,254,156,254,142,254,139,254,131,254,113,254,104,254,96,254,74,254,58,254,65,254,74,254,69,254,59,254, +41,254,8,254,239,253,239,253,250,253,244,253,221,253,201,253,198,253,203,253,204,253,199,253,191,253,187,253,191,253,192,253, +174,253,151,253,143,253,145,253,145,253,146,253,148,253,137,253,117,253,113,253,133,253,156,253,159,253,145,253,128,253,118,253, +117,253,121,253,118,253,107,253,103,253,117,253,134,253,147,253,155,253,155,253,147,253,141,253,144,253,150,253,158,253,160,253, +154,253,158,253,179,253,194,253,186,253,175,253,175,253,187,253,211,253,234,253,237,253,223,253,212,253,215,253,228,253,241,253, +244,253,237,253,232,253,243,253,13,254,37,254,43,254,39,254,41,254,48,254,56,254,60,254,51,254,33,254,32,254,53,254, +73,254,86,254,100,254,107,254,107,254,117,254,134,254,143,254,149,254,149,254,136,254,123,254,133,254,147,254,149,254,150,254, +165,254,183,254,197,254,211,254,225,254,231,254,229,254,228,254,231,254,231,254,219,254,205,254,207,254,230,254,4,255,24,255, +34,255,45,255,54,255,55,255,57,255,65,255,62,255,51,255,51,255,61,255,65,255,74,255,101,255,128,255,136,255,136,255, +145,255,165,255,179,255,176,255,165,255,161,255,161,255,167,255,193,255,217,255,220,255,225,255,250,255,17,0,26,0,37,0, +48,0,45,0,41,0,46,0,55,0,64,0,77,0,96,0,119,0,139,0,151,0,161,0,173,0,181,0,186,0,199,0, +204,0,198,0,205,0,230,0,250,0,255,0,5,1,20,1,35,1,46,1,53,1,59,1,72,1,87,1,97,1,97,1, +97,1,108,1,126,1,141,1,156,1,168,1,164,1,149,1,148,1,163,1,176,1,189,1,203,1,210,1,214,1,224,1, +234,1,240,1,243,1,234,1,215,1,211,1,226,1,245,1,10,2,32,2,35,2,25,2,30,2,49,2,57,2,51,2, +39,2,34,2,54,2,100,2,151,2,184,2,181,2,148,2,125,2,153,2,210,2,237,2,202,2,127,2,69,2,78,2, +148,2,230,2,20,3,8,3,211,2,163,2,154,2,177,2,205,2,206,2,167,2,116,2,88,2,90,2,110,2,137,2, +158,2,163,2,154,2,137,2,113,2,97,2,99,2,105,2,98,2,74,2,40,2,20,2,28,2,57,2,93,2,120,2, +113,2,65,2,2,2,216,1,211,1,243,1,27,2,21,2,202,1,104,1,66,1,120,1,215,1,13,2,247,1,175,1, +100,1,68,1,90,1,121,1,115,1,68,1,11,1,240,0,9,1,56,1,73,1,58,1,46,1,39,1,23,1,1,1, +223,0,176,0,144,0,153,0,177,0,181,0,160,0,132,0,110,0,113,0,136,0,148,0,119,0,64,0,25,0,27,0, +55,0,78,0,70,0,27,0,233,255,218,255,243,255,12,0,3,0,224,255,193,255,180,255,181,255,183,255,175,255,147,255, +105,255,77,255,77,255,89,255,86,255,64,255,34,255,9,255,252,254,252,254,253,254,240,254,210,254,173,254,147,254,138,254, +140,254,145,254,140,254,114,254,85,254,75,254,71,254,54,254,40,254,41,254,35,254,11,254,239,253,215,253,194,253,186,253, +189,253,185,253,172,253,159,253,144,253,133,253,138,253,150,253,145,253,115,253,77,253,52,253,45,253,54,253,66,253,65,253, +49,253,34,253,32,253,34,253,30,253,19,253,10,253,8,253,7,253,1,253,242,252,229,252,229,252,238,252,246,252,238,252, +217,252,204,252,208,252,219,252,231,252,245,252,254,252,248,252,232,252,221,252,222,252,232,252,243,252,247,252,246,252,246,252, +254,252,11,253,26,253,38,253,45,253,46,253,41,253,35,253,43,253,64,253,84,253,95,253,100,253,100,253,106,253,125,253, +150,253,164,253,164,253,163,253,173,253,191,253,206,253,216,253,230,253,250,253,9,254,13,254,17,254,32,254,53,254,72,254, +86,254,98,254,113,254,133,254,150,254,159,254,169,254,186,254,201,254,209,254,216,254,225,254,238,254,4,255,29,255,45,255, +55,255,65,255,74,255,81,255,90,255,103,255,118,255,135,255,151,255,157,255,153,255,156,255,176,255,203,255,225,255,235,255, +237,255,240,255,254,255,17,0,29,0,28,0,25,0,32,0,47,0,61,0,76,0,93,0,104,0,109,0,114,0,124,0, +133,0,139,0,146,0,156,0,163,0,169,0,180,0,192,0,199,0,207,0,224,0,243,0,252,0,0,1,6,1,9,1, +9,1,12,1,18,1,26,1,36,1,47,1,61,1,80,1,102,1,121,1,133,1,139,1,135,1,125,1,115,1,116,1, +128,1,144,1,153,1,160,1,176,1,197,1,214,1,226,1,227,1,219,1,216,1,225,1,233,1,227,1,218,1,219,1, +229,1,243,1,250,1,254,1,8,2,24,2,38,2,46,2,47,2,32,2,9,2,0,2,8,2,18,2,25,2,33,2, +37,2,35,2,34,2,41,2,50,2,54,2,54,2,55,2,53,2,44,2,33,2,23,2,14,2,15,2,27,2,40,2, +44,2,43,2,39,2,36,2,35,2,26,2,6,2,253,1,11,2,26,2,23,2,15,2,15,2,15,2,8,2,254,1, +245,1,239,1,238,1,243,1,245,1,236,1,224,1,219,1,217,1,214,1,209,1,203,1,188,1,171,1,162,1,161,1, +166,1,175,1,174,1,160,1,155,1,163,1,157,1,126,1,95,1,79,1,77,1,83,1,83,1,69,1,55,1,56,1, +67,1,76,1,75,1,55,1,19,1,241,0,224,0,216,0,210,0,206,0,205,0,208,0,211,0,210,0,200,0,185,0, +169,0,155,0,146,0,138,0,121,0,91,0,61,0,48,0,55,0,67,0,66,0,52,0,36,0,30,0,34,0,34,0, +16,0,240,255,209,255,185,255,166,255,155,255,157,255,168,255,173,255,159,255,136,255,124,255,122,255,123,255,123,255,117,255, +99,255,78,255,62,255,40,255,16,255,9,255,18,255,15,255,0,255,251,254,3,255,16,255,25,255,22,255,3,255,237,254, +223,254,210,254,188,254,167,254,161,254,171,254,184,254,189,254,189,254,190,254,193,254,195,254,196,254,194,254,182,254,158,254, +131,254,114,254,116,254,131,254,147,254,149,254,137,254,133,254,155,254,182,254,186,254,165,254,141,254,126,254,123,254,120,254, +106,254,90,254,95,254,121,254,143,254,147,254,138,254,131,254,132,254,145,254,159,254,159,254,135,254,101,254,85,254,96,254, +115,254,122,254,120,254,117,254,125,254,152,254,182,254,182,254,151,254,123,254,126,254,145,254,156,254,150,254,132,254,114,254, +120,254,153,254,182,254,186,254,179,254,181,254,188,254,194,254,204,254,200,254,174,254,150,254,154,254,176,254,194,254,201,254, +201,254,208,254,231,254,2,255,18,255,14,255,251,254,230,254,228,254,241,254,242,254,229,254,221,254,227,254,246,254,19,255, +51,255,61,255,46,255,29,255,32,255,51,255,60,255,48,255,23,255,7,255,15,255,42,255,68,255,80,255,81,255,86,255, +104,255,131,255,146,255,136,255,118,255,107,255,102,255,101,255,112,255,121,255,120,255,125,255,147,255,171,255,191,255,208,255, +211,255,198,255,183,255,177,255,177,255,181,255,183,255,179,255,178,255,192,255,213,255,233,255,249,255,255,255,253,255,251,255, +251,255,250,255,250,255,250,255,247,255,244,255,249,255,8,0,25,0,36,0,43,0,44,0,37,0,29,0,33,0,47,0, +56,0,57,0,49,0,36,0,37,0,63,0,86,0,82,0,68,0,67,0,71,0,73,0,77,0,80,0,80,0,79,0, +76,0,73,0,77,0,83,0,81,0,77,0,77,0,82,0,88,0,92,0,89,0,88,0,91,0,94,0,93,0,93,0, +90,0,82,0,78,0,84,0,96,0,106,0,110,0,102,0,91,0,90,0,101,0,112,0,113,0,109,0,105,0,99,0, +92,0,95,0,105,0,112,0,112,0,109,0,104,0,102,0,113,0,133,0,146,0,140,0,123,0,106,0,103,0,112,0, +120,0,118,0,113,0,107,0,104,0,113,0,129,0,138,0,140,0,138,0,131,0,123,0,123,0,123,0,116,0,108,0, +111,0,119,0,125,0,129,0,134,0,140,0,148,0,157,0,158,0,148,0,136,0,132,0,133,0,134,0,134,0,137,0, +147,0,159,0,166,0,166,0,164,0,163,0,168,0,174,0,173,0,161,0,148,0,148,0,159,0,172,0,179,0,176,0, +167,0,166,0,175,0,186,0,190,0,185,0,174,0,166,0,168,0,176,0,179,0,177,0,176,0,176,0,179,0,184,0, +186,0,181,0,181,0,191,0,201,0,199,0,191,0,183,0,178,0,177,0,189,0,203,0,204,0,193,0,185,0,187,0, +195,0,205,0,206,0,196,0,189,0,192,0,196,0,199,0,200,0,200,0,199,0,200,0,199,0,196,0,199,0,206,0, +207,0,200,0,194,0,192,0,190,0,186,0,187,0,190,0,192,0,191,0,186,0,179,0,172,0,173,0,180,0,182,0, +172,0,162,0,156,0,153,0,155,0,158,0,158,0,155,0,153,0,147,0,140,0,136,0,136,0,139,0,142,0,138,0, +126,0,119,0,117,0,118,0,119,0,118,0,110,0,104,0,104,0,105,0,101,0,98,0,97,0,96,0,93,0,89,0, +85,0,85,0,86,0,78,0,63,0,55,0,55,0,58,0,59,0,55,0,44,0,33,0,33,0,41,0,44,0,36,0, +25,0,15,0,12,0,14,0,11,0,1,0,248,255,244,255,242,255,243,255,252,255,5,0,2,0,243,255,223,255,205,255, +203,255,219,255,235,255,229,255,210,255,199,255,201,255,205,255,208,255,207,255,202,255,196,255,191,255,189,255,187,255,187,255, +189,255,193,255,193,255,184,255,170,255,165,255,172,255,182,255,181,255,170,255,161,255,159,255,164,255,171,255,172,255,164,255, +154,255,148,255,148,255,154,255,158,255,155,255,148,255,144,255,143,255,142,255,142,255,137,255,129,255,124,255,126,255,132,255, +140,255,141,255,130,255,120,255,122,255,134,255,140,255,130,255,108,255,92,255,96,255,115,255,128,255,126,255,117,255,116,255, +123,255,127,255,126,255,123,255,118,255,109,255,105,255,110,255,115,255,116,255,115,255,111,255,108,255,117,255,133,255,139,255, +130,255,115,255,105,255,108,255,120,255,128,255,126,255,122,255,123,255,127,255,135,255,141,255,137,255,125,255,120,255,125,255, +130,255,132,255,136,255,144,255,149,255,149,255,146,255,143,255,142,255,147,255,155,255,157,255,155,255,156,255,157,255,156,255, +156,255,158,255,165,255,176,255,184,255,179,255,171,255,172,255,181,255,188,255,186,255,175,255,165,255,171,255,187,255,196,255, +192,255,189,255,194,255,202,255,208,255,203,255,195,255,198,255,211,255,216,255,207,255,197,255,197,255,206,255,215,255,215,255, +211,255,213,255,222,255,224,255,218,255,216,255,221,255,227,255,230,255,226,255,216,255,211,255,219,255,232,255,233,255,228,255, +230,255,240,255,246,255,243,255,235,255,232,255,238,255,246,255,243,255,235,255,234,255,241,255,248,255,251,255,254,255,254,255, +253,255,254,255,1,0,2,0,254,255,249,255,244,255,239,255,243,255,252,255,1,0,2,0,4,0,8,0,12,0,14,0, +12,0,5,0,254,255,248,255,246,255,248,255,253,255,253,255,251,255,255,255,8,0,18,0,24,0,22,0,9,0,252,255, +248,255,251,255,255,255,1,0,4,0,7,0,12,0,16,0,19,0,18,0,17,0,17,0,18,0,15,0,9,0,6,0, +6,0,8,0,13,0,19,0,20,0,21,0,22,0,23,0,26,0,32,0,34,0,31,0,24,0,15,0,14,0,24,0, +29,0,18,0,8,0,11,0,20,0,31,0,38,0,34,0,24,0,23,0,27,0,23,0,15,0,12,0,15,0,19,0, +21,0,20,0,17,0,18,0,19,0,15,0,13,0,19,0,28,0,34,0,36,0,35,0,27,0,18,0,16,0,20,0, +20,0,15,0,12,0,14,0,18,0,25,0,35,0,42,0,43,0,35,0,22,0,17,0,21,0,25,0,25,0,22,0, +17,0,17,0,28,0,43,0,47,0,43,0,40,0,39,0,37,0,37,0,34,0,28,0,28,0,36,0,44,0,47,0, +46,0,43,0,41,0,45,0,50,0,49,0,41,0,32,0,27,0,33,0,44,0,50,0,46,0,41,0,41,0,43,0, +46,0,47,0,44,0,40,0,41,0,43,0,39,0,33,0,33,0,35,0,38,0,41,0,40,0,34,0,31,0,38,0, +46,0,50,0,45,0,33,0,22,0,20,0,26,0,32,0,34,0,31,0,27,0,31,0,41,0,48,0,48,0,39,0, +30,0,28,0,31,0,34,0,31,0,27,0,26,0,30,0,39,0,46,0,48,0,43,0,37,0,34,0,32,0,29,0, +25,0,22,0,20,0,21,0,29,0,39,0,38,0,32,0,28,0,27,0,25,0,24,0,20,0,11,0,7,0,12,0, +21,0,25,0,24,0,25,0,32,0,38,0,31,0,17,0,11,0,13,0,18,0,18,0,13,0,9,0,15,0,28,0, +36,0,35,0,33,0,31,0,28,0,25,0,24,0,23,0,21,0,17,0,16,0,19,0,20,0,22,0,27,0,33,0, +32,0,29,0,26,0,22,0,18,0,18,0,18,0,17,0,17,0,12,0,2,0,254,255,4,0,11,0,14,0,13,0, +8,0,5,0,8,0,11,0,8,0,2,0,253,255,248,255,243,255,242,255,245,255,251,255,2,0,5,0,4,0,4,0, +5,0,3,0,2,0,4,0,3,0,249,255,239,255,239,255,243,255,246,255,249,255,253,255,253,255,0,0,7,0,10,0, +4,0,253,255,247,255,242,255,241,255,247,255,250,255,245,255,239,255,240,255,251,255,9,0,12,0,4,0,250,255,247,255, +249,255,252,255,250,255,241,255,231,255,231,255,239,255,247,255,252,255,1,0,4,0,2,0,0,0,253,255,248,255,245,255, +247,255,242,255,231,255,227,255,234,255,242,255,250,255,3,0,5,0,0,0,252,255,247,255,239,255,233,255,229,255,224,255, +223,255,230,255,240,255,248,255,252,255,250,255,246,255,246,255,249,255,244,255,233,255,224,255,220,255,223,255,228,255,231,255, +232,255,235,255,239,255,244,255,248,255,247,255,240,255,232,255,226,255,226,255,228,255,230,255,227,255,223,255,220,255,225,255, +240,255,254,255,254,255,244,255,236,255,231,255,227,255,227,255,229,255,227,255,224,255,226,255,232,255,238,255,242,255,245,255, +245,255,241,255,232,255,224,255,223,255,225,255,229,255,231,255,225,255,217,255,219,255,235,255,250,255,255,255,249,255,238,255, +230,255,227,255,223,255,217,255,212,255,215,255,225,255,236,255,239,255,239,255,244,255,250,255,250,255,244,255,235,255,224,255, +216,255,214,255,214,255,220,255,233,255,244,255,241,255,237,255,239,255,243,255,243,255,241,255,236,255,227,255,220,255,220,255, +220,255,219,255,218,255,221,255,227,255,234,255,237,255,235,255,233,255,236,255,240,255,240,255,234,255,223,255,213,255,211,255, +216,255,222,255,224,255,225,255,223,255,222,255,231,255,243,255,246,255,238,255,228,255,222,255,218,255,215,255,215,255,216,255, +218,255,222,255,227,255,229,255,233,255,241,255,247,255,244,255,236,255,230,255,225,255,215,255,206,255,206,255,215,255,228,255, +237,255,240,255,240,255,242,255,247,255,249,255,242,255,230,255,225,255,229,255,232,255,232,255,233,255,236,255,241,255,246,255, +251,255,253,255,255,255,1,0,255,255,247,255,243,255,244,255,244,255,241,255,237,255,235,255,238,255,245,255,252,255,0,0, +4,0,6,0,8,0,5,0,252,255,240,255,232,255,232,255,241,255,252,255,252,255,246,255,252,255,11,0,12,0,255,255, +243,255,238,255,240,255,246,255,246,255,240,255,239,255,244,255,246,255,246,255,245,255,243,255,243,255,246,255,247,255,247,255, +248,255,250,255,248,255,247,255,249,255,252,255,253,255,252,255,247,255,238,255,235,255,245,255,5,0,11,0,6,0,1,0, +3,0,8,0,11,0,8,0,254,255,245,255,246,255,251,255,253,255,252,255,253,255,2,0,12,0,21,0,22,0,14,0, +5,0,1,0,1,0,1,0,253,255,250,255,251,255,254,255,0,0,6,0,12,0,13,0,12,0,13,0,11,0,8,0, +11,0,15,0,11,0,3,0,0,0,0,0,4,0,13,0,20,0,20,0,20,0,28,0,33,0,27,0,14,0,8,0, +11,0,20,0,24,0,23,0,23,0,30,0,39,0,39,0,36,0,36,0,37,0,35,0,30,0,26,0,30,0,39,0, +43,0,40,0,37,0,40,0,45,0,47,0,44,0,40,0,40,0,42,0,45,0,44,0,41,0,41,0,45,0,48,0, +45,0,43,0,44,0,45,0,42,0,39,0,39,0,39,0,40,0,42,0,43,0,42,0,43,0,47,0,50,0,48,0, +42,0,36,0,31,0,32,0,37,0,41,0,40,0,41,0,50,0,56,0,52,0,44,0,39,0,36,0,36,0,40,0, +43,0,45,0,47,0,43,0,37,0,41,0,51,0,56,0,54,0,49,0,43,0,38,0,36,0,37,0,38,0,37,0, +35,0,37,0,42,0,48,0,52,0,54,0,50,0,42,0,38,0,33,0,22,0,15,0,21,0,31,0,34,0,33,0, +30,0,30,0,35,0,41,0,41,0,33,0,21,0,11,0,10,0,18,0,24,0,25,0,23,0,22,0,24,0,26,0, +23,0,15,0,11,0,13,0,17,0,17,0,12,0,6,0,6,0,11,0,15,0,15,0,13,0,10,0,6,0,2,0, +0,0,0,0,5,0,11,0,9,0,2,0,255,255,0,0,253,255,247,255,245,255,250,255,3,0,6,0,1,0,249,255, +248,255,4,0,12,0,2,0,241,255,234,255,235,255,239,255,248,255,2,0,1,0,248,255,242,255,242,255,246,255,252,255, +253,255,246,255,236,255,231,255,232,255,235,255,239,255,243,255,245,255,245,255,245,255,241,255,239,255,241,255,243,255,240,255, +235,255,228,255,224,255,227,255,233,255,236,255,236,255,240,255,246,255,250,255,251,255,246,255,236,255,232,255,234,255,233,255, +225,255,218,255,218,255,223,255,234,255,245,255,248,255,248,255,245,255,240,255,236,255,236,255,233,255,225,255,221,255,223,255, +226,255,229,255,233,255,233,255,233,255,238,255,245,255,244,255,235,255,229,255,225,255,222,255,221,255,225,255,228,255,228,255, +228,255,228,255,227,255,228,255,233,255,236,255,233,255,231,255,230,255,223,255,217,255,216,255,221,255,228,255,229,255,217,255, +205,255,213,255,235,255,250,255,249,255,235,255,219,255,212,255,218,255,227,255,227,255,218,255,208,255,206,255,217,255,235,255, +248,255,251,255,243,255,232,255,230,255,232,255,228,255,218,255,213,255,215,255,224,255,234,255,237,255,232,255,227,255,232,255, +243,255,249,255,244,255,233,255,225,255,223,255,225,255,229,255,230,255,227,255,226,255,230,255,232,255,233,255,237,255,241,255, +238,255,232,255,229,255,228,255,228,255,227,255,226,255,225,255,228,255,232,255,232,255,231,255,235,255,241,255,245,255,243,255, +237,255,232,255,234,255,240,255,243,255,242,255,241,255,241,255,240,255,242,255,248,255,253,255,1,0,5,0,6,0,255,255, +251,255,254,255,1,0,254,255,252,255,253,255,255,255,0,0,4,0,10,0,13,0,13,0,10,0,6,0,5,0,9,0, +13,0,12,0,6,0,1,0,1,0,5,0,8,0,6,0,3,0,3,0,8,0,13,0,13,0,10,0,8,0,8,0, +8,0,4,0,0,0,255,255,1,0,4,0,10,0,14,0,15,0,16,0,18,0,15,0,8,0,5,0,5,0,9,0, +13,0,12,0,7,0,7,0,12,0,17,0,20,0,18,0,10,0,1,0,0,0,5,0,10,0,14,0,16,0,14,0, +10,0,9,0,11,0,11,0,8,0,5,0,4,0,3,0,3,0,6,0,14,0,16,0,11,0,8,0,10,0,11,0, +9,0,4,0,254,255,254,255,5,0,11,0,11,0,8,0,9,0,14,0,19,0,18,0,10,0,4,0,1,0,255,255, +255,255,1,0,7,0,12,0,13,0,11,0,10,0,9,0,10,0,12,0,13,0,6,0,253,255,251,255,253,255,0,0, +4,0,8,0,7,0,7,0,10,0,9,0,7,0,11,0,11,0,5,0,0,0,2,0,3,0,2,0,3,0,7,0, +11,0,15,0,18,0,19,0,18,0,14,0,8,0,4,0,3,0,4,0,7,0,12,0,15,0,16,0,17,0,19,0, +21,0,24,0,24,0,18,0,8,0,2,0,5,0,12,0,16,0,15,0,13,0,13,0,19,0,26,0,27,0,20,0, +10,0,3,0,1,0,4,0,7,0,10,0,15,0,17,0,15,0,14,0,17,0,21,0,21,0,16,0,10,0,6,0, +7,0,9,0,8,0,5,0,5,0,13,0,20,0,22,0,20,0,20,0,20,0,20,0,20,0,15,0,9,0,7,0, +9,0,8,0,7,0,7,0,10,0,16,0,24,0,28,0,25,0,19,0,13,0,10,0,9,0,8,0,4,0,1,0, +2,0,6,0,12,0,17,0,17,0,16,0,15,0,15,0,13,0,8,0,2,0,1,0,5,0,5,0,4,0,6,0, +8,0,8,0,9,0,9,0,8,0,10,0,15,0,13,0,6,0,3,0,6,0,9,0,6,0,255,255,250,255,252,255, +3,0,8,0,9,0,9,0,8,0,9,0,9,0,3,0,251,255,248,255,251,255,251,255,249,255,248,255,249,255,252,255, +0,0,4,0,6,0,2,0,251,255,245,255,245,255,246,255,248,255,248,255,247,255,246,255,246,255,246,255,247,255,245,255, +241,255,237,255,241,255,247,255,248,255,244,255,238,255,235,255,237,255,239,255,236,255,231,255,228,255,229,255,233,255,240,255, +246,255,244,255,237,255,233,255,231,255,234,255,238,255,239,255,233,255,228,255,228,255,232,255,237,255,240,255,238,255,236,255, +236,255,239,255,241,255,241,255,238,255,233,255,229,255,229,255,228,255,227,255,230,255,237,255,241,255,240,255,238,255,238,255, +239,255,241,255,241,255,237,255,229,255,225,255,228,255,235,255,239,255,238,255,235,255,236,255,238,255,241,255,246,255,247,255, +242,255,237,255,234,255,233,255,235,255,240,255,242,255,240,255,240,255,244,255,248,255,251,255,251,255,250,255,250,255,252,255, +252,255,250,255,248,255,248,255,249,255,249,255,249,255,248,255,248,255,251,255,254,255,2,0,5,0,8,0,7,0,3,0, +254,255,249,255,246,255,248,255,253,255,254,255,251,255,252,255,2,0,6,0,8,0,9,0,9,0,7,0,6,0,5,0, +2,0,2,0,4,0,6,0,6,0,5,0,5,0,8,0,12,0,13,0,11,0,10,0,11,0,12,0,11,0,9,0, +6,0,7,0,10,0,10,0,7,0,7,0,11,0,14,0,15,0,12,0,9,0,9,0,10,0,10,0,8,0,7,0, +6,0,7,0,10,0,11,0,9,0,8,0,10,0,12,0,14,0,14,0,11,0,8,0,6,0,6,0,9,0,11,0, +9,0,7,0,7,0,8,0,10,0,12,0,12,0,10,0,11,0,13,0,12,0,8,0,7,0,8,0,7,0,5,0, +6,0,7,0,9,0,9,0,9,0,9,0,9,0,10,0,10,0,9,0,8,0,6,0,4,0,1,0,1,0,4,0, +9,0,13,0,12,0,7,0,4,0,5,0,8,0,9,0,8,0,1,0,253,255,0,0,6,0,8,0,6,0,5,0, +5,0,6,0,7,0,8,0,6,0,4,0,1,0,254,255,252,255,254,255,1,0,1,0,1,0,4,0,6,0,6,0, +4,0,2,0,2,0,2,0,0,0,253,255,252,255,253,255,254,255,255,255,1,0,3,0,3,0,3,0,3,0,1,0, +255,255,252,255,249,255,250,255,255,255,5,0,5,0,2,0,0,0,255,255,0,0,4,0,4,0,0,0,253,255,253,255, +0,0,3,0,3,0,3,0,4,0,4,0,1,0,254,255,254,255,1,0,2,0,0,0,255,255,1,0,4,0,5,0, +5,0,3,0,1,0,1,0,3,0,2,0,0,0,255,255,1,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0, +7,0,7,0,5,0,3,0,2,0,0,0,0,0,3,0,7,0,7,0,5,0,4,0,3,0,3,0,5,0,8,0, +8,0,7,0,5,0,5,0,7,0,9,0,9,0,7,0,6,0,4,0,2,0,0,0,0,0,3,0,8,0,11,0, +10,0,9,0,10,0,11,0,10,0,6,0,2,0,2,0,5,0,8,0,7,0,5,0,6,0,10,0,13,0,12,0, +9,0,4,0,3,0,6,0,9,0,10,0,9,0,6,0,4,0,5,0,5,0,4,0,4,0,4,0,1,0,0,0, +3,0,6,0,5,0,2,0,1,0,0,0,0,0,0,0,1,0,255,255,255,255,1,0,1,0,254,255,251,255,251,255, +252,255,254,255,0,0,255,255,252,255,251,255,252,255,253,255,254,255,255,255,253,255,250,255,249,255,251,255,254,255,255,255, +253,255,250,255,249,255,252,255,254,255,253,255,250,255,250,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255, +250,255,248,255,247,255,249,255,251,255,251,255,249,255,248,255,247,255,250,255,252,255,250,255,249,255,249,255,250,255,249,255, +247,255,245,255,244,255,246,255,249,255,253,255,255,255,253,255,250,255,248,255,248,255,251,255,253,255,249,255,242,255,239,255, +244,255,250,255,253,255,255,255,254,255,252,255,250,255,251,255,251,255,251,255,248,255,243,255,240,255,242,255,247,255,251,255, +252,255,250,255,248,255,248,255,249,255,249,255,245,255,244,255,245,255,247,255,246,255,245,255,245,255,244,255,245,255,248,255, +248,255,245,255,245,255,246,255,246,255,245,255,245,255,246,255,246,255,247,255,248,255,247,255,245,255,245,255,246,255,247,255, +248,255,249,255,247,255,247,255,247,255,247,255,246,255,247,255,248,255,248,255,247,255,248,255,249,255,248,255,248,255,248,255, +248,255,247,255,245,255,245,255,246,255,246,255,246,255,247,255,249,255,250,255,250,255,248,255,245,255,245,255,248,255,250,255, +247,255,244,255,243,255,244,255,246,255,250,255,251,255,250,255,249,255,248,255,247,255,248,255,250,255,251,255,247,255,245,255, +245,255,246,255,249,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,253,255,254,255,252,255,249,255,248,255,249,255, +252,255,252,255,252,255,252,255,254,255,0,0,0,0,255,255,254,255,255,255,0,0,0,0,254,255,251,255,252,255,254,255, +0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,3,0,3,0, +2,0,3,0,5,0,4,0,3,0,2,0,1,0,1,0,2,0,5,0,6,0,6,0,6,0,6,0,6,0,8,0, +8,0,6,0,3,0,3,0,5,0,7,0,7,0,7,0,7,0,8,0,9,0,10,0,10,0,9,0,8,0,7,0, +5,0,5,0,7,0,7,0,7,0,9,0,12,0,13,0,11,0,9,0,8,0,8,0,8,0,7,0,6,0,6,0, +7,0,9,0,11,0,12,0,11,0,10,0,9,0,9,0,10,0,10,0,9,0,8,0,8,0,8,0,9,0,9,0, +9,0,10,0,10,0,10,0,11,0,11,0,10,0,9,0,8,0,9,0,10,0,10,0,8,0,5,0,7,0,10,0, +11,0,10,0,8,0,8,0,8,0,8,0,9,0,10,0,8,0,7,0,7,0,7,0,8,0,8,0,8,0,6,0, +5,0,8,0,12,0,11,0,8,0,6,0,6,0,7,0,6,0,5,0,3,0,3,0,5,0,8,0,10,0,10,0, +8,0,7,0,7,0,7,0,7,0,6,0,3,0,2,0,2,0,4,0,6,0,6,0,5,0,5,0,6,0,7,0, +8,0,8,0,7,0,5,0,3,0,3,0,4,0,4,0,3,0,1,0,1,0,4,0,6,0,7,0,7,0,5,0, +5,0,5,0,6,0,4,0,0,0,254,255,0,0,2,0,4,0,3,0,3,0,3,0,5,0,7,0,7,0,2,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,3,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,255,255,254,255,254,255,0,0,1,0,2,0,2,0,1,0,255,255, +255,255,0,0,0,0,254,255,253,255,253,255,255,255,255,255,255,255,254,255,255,255,0,0,1,0,1,0,255,255,254,255, +254,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255,253,255,253,255,255,255,0,0,255,255, +253,255,252,255,252,255,253,255,253,255,252,255,251,255,252,255,253,255,254,255,254,255,253,255,252,255,252,255,253,255,254,255, +253,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,252,255,253,255,254,255,253,255,250,255, +249,255,250,255,251,255,251,255,251,255,251,255,251,255,251,255,253,255,254,255,253,255,252,255,252,255,252,255,252,255,251,255, +250,255,249,255,250,255,252,255,253,255,252,255,252,255,253,255,254,255,254,255,254,255,252,255,252,255,252,255,252,255,251,255, +251,255,252,255,253,255,253,255,252,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,253,255,252,255, +253,255,253,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255, +253,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,253,255, +253,255,254,255,253,255,252,255,253,255,0,0,1,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255, +254,255,254,255,254,255,0,0,1,0,0,0,1,0,2,0,3,0,1,0,255,255,254,255,255,255,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,2,0,2,0,0,0,1,0, +2,0,2,0,2,0,1,0,1,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,255,255,255,255,0,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0, +1,0,1,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,1,0,255,255,0,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0, +1,0,2,0,3,0,2,0,2,0,2,0,2,0,1,0,255,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,2,0,0,0,0,0,1,0,2,0,1,0,0,0,1,0,2,0,1,0,1,0,2,0, +2,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +1,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0, +3,0,2,0,2,0,3,0,2,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,253,255,252,255,254,255,255,255, +255,255,255,255,254,255,254,255,254,255,254,255,253,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255, +0,0,254,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,253,255,255,255,0,0,255,255,254,255,254,255,255,255, +255,255,254,255,253,255,252,255,253,255,254,255,0,0,255,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255, +254,255,253,255,254,255,254,255,253,255,252,255,252,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255, +253,255,253,255,253,255,253,255,254,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,254,255,253,255,253,255,254,255, +254,255,254,255,254,255,254,255,255,255,0,0,1,0,0,0,254,255,254,255,0,0,1,0,255,255,253,255,253,255,254,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,0,0,255,255,254,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,254,255,255,255,0,0,1,0,1,0,255,255,255,255,0,0,2,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0, +1,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0, +2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,0,0,0,0,0,0, +0,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,1,0, +1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,2,0, +3,0,3,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +3,0,3,0,2,0,1,0,2,0,3,0,2,0,1,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0, +1,0,1,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0, +0,0,255,255,0,0,1,0,2,0,1,0,255,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,1,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,254,255,253,255,254,255,255,255, +254,255,253,255,252,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,255,255,253,255,253,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255, +255,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +254,255,253,255,254,255,255,255,0,0,254,255,253,255,253,255,253,255,253,255,254,255,255,255,254,255,255,255,255,255,255,255, +254,255,254,255,255,255,254,255,254,255,255,255,254,255,253,255,253,255,254,255,255,255,255,255,0,0,255,255,254,255,254,255, +255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,255,255,254,255,253,255,254,255,255,255, +255,255,253,255,253,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0,1,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0, +0,0,1,0,2,0,2,0,0,0,0,0,2,0,3,0,3,0,3,0,4,0,4,0,2,0,2,0,2,0,3,0, +2,0,2,0,2,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0, +3,0,2,0,1,0,2,0,3,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,2,0,2,0,3,0,2,0, +1,0,1,0,2,0,3,0,2,0,3,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0, +2,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0, +2,0,2,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,3,0,3,0,2,0, +2,0,2,0,3,0,2,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,253,255,254,255,254,255,255,255,254,255,253,255,253,255,253,255,255,255,255,255, +255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255, +253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,253,255, +253,255,253,255,254,255,253,255,253,255,253,255,255,255,255,255,255,255,255,255,254,255,253,255,254,255,254,255,253,255,253,255, +253,255,253,255,253,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255, +253,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255, +255,255,255,255,254,255,253,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,1,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,1,0,1,0, +1,0,2,0,2,0,2,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0, +2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0, +1,0,1,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,2,0,1,0,2,0,2,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,0,1,0,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,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0, +1,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,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,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,1,0,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,1,0,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,1,0,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,1,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +1,0,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,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,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,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,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,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,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, +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,1,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,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,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,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,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,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,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,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,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, +1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,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,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,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,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,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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, +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,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,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,1,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,0,0,0,0,0,0, +255,255,0,0,0,0,1,0,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,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,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,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,1,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,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,1,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,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, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpig3.pcm b/src/client/sound/data/zpig3.pcm new file mode 100755 index 0000000..e0d6a3a --- /dev/null +++ b/src/client/sound/data/zpig3.pcm @@ -0,0 +1,1452 @@ +unsigned char PCM_zpig3[46368] = { +1,0,0,0,2,0,0,0,68,172,0,0,136,90,0,0,0,0,0,0,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0, +2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0, +0,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,0,0,254,255,255,255,3,0,4,0,0,0,255,255, +0,0,1,0,3,0,2,0,254,255,254,255,4,0,4,0,254,255,255,255,3,0,1,0,0,0,3,0,4,0,1,0, +0,0,254,255,254,255,1,0,3,0,255,255,252,255,254,255,2,0,4,0,0,0,253,255,255,255,3,0,2,0,1,0, +255,255,252,255,253,255,0,0,253,255,252,255,2,0,2,0,251,255,251,255,2,0,2,0,253,255,253,255,254,255,0,0, +3,0,1,0,250,255,251,255,1,0,3,0,254,255,253,255,255,255,254,255,252,255,253,255,254,255,252,255,253,255,1,0, +2,0,253,255,251,255,252,255,251,255,251,255,254,255,255,255,253,255,252,255,253,255,253,255,253,255,253,255,250,255,250,255, +254,255,0,0,255,255,252,255,250,255,252,255,254,255,251,255,249,255,254,255,2,0,254,255,250,255,251,255,255,255,254,255, +252,255,0,0,3,0,253,255,246,255,250,255,1,0,254,255,249,255,252,255,3,0,1,0,253,255,253,255,0,0,1,0, +255,255,253,255,254,255,0,0,255,255,252,255,252,255,252,255,253,255,1,0,4,0,0,0,249,255,252,255,1,0,253,255, +248,255,250,255,254,255,252,255,252,255,254,255,255,255,1,0,255,255,248,255,247,255,0,0,4,0,255,255,251,255,253,255, +254,255,252,255,251,255,253,255,255,255,251,255,247,255,252,255,3,0,0,0,251,255,252,255,251,255,251,255,254,255,254,255, +251,255,253,255,0,0,253,255,252,255,251,255,248,255,251,255,3,0,3,0,252,255,250,255,253,255,1,0,3,0,253,255, +247,255,249,255,253,255,252,255,253,255,2,0,1,0,248,255,247,255,253,255,255,255,253,255,252,255,253,255,252,255,251,255, +255,255,255,255,248,255,249,255,1,0,1,0,251,255,252,255,255,255,252,255,252,255,1,0,251,255,245,255,252,255,3,0, +253,255,248,255,253,255,0,0,253,255,252,255,0,0,0,0,252,255,250,255,251,255,249,255,248,255,0,0,3,0,251,255, +249,255,1,0,0,0,247,255,248,255,255,255,0,0,253,255,250,255,249,255,251,255,254,255,252,255,252,255,255,255,252,255, +247,255,251,255,2,0,0,0,250,255,250,255,253,255,0,0,0,0,253,255,249,255,250,255,254,255,255,255,253,255,251,255, +251,255,251,255,251,255,250,255,250,255,253,255,0,0,253,255,249,255,251,255,254,255,254,255,254,255,0,0,255,255,252,255, +249,255,249,255,252,255,254,255,253,255,251,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,251,255,245,255,248,255, +2,0,4,0,254,255,252,255,254,255,255,255,252,255,249,255,250,255,0,0,2,0,251,255,248,255,253,255,1,0,255,255, +252,255,251,255,253,255,1,0,254,255,249,255,250,255,255,255,2,0,1,0,253,255,251,255,253,255,255,255,254,255,250,255, +248,255,250,255,254,255,0,0,254,255,0,0,1,0,250,255,245,255,250,255,1,0,0,0,252,255,250,255,251,255,0,0, +1,0,252,255,251,255,255,255,255,255,252,255,250,255,253,255,0,0,254,255,250,255,253,255,2,0,251,255,243,255,249,255, +2,0,0,0,252,255,250,255,248,255,252,255,0,0,250,255,246,255,254,255,2,0,251,255,247,255,249,255,252,255,255,255, +2,0,0,0,252,255,249,255,247,255,251,255,2,0,254,255,246,255,248,255,254,255,252,255,249,255,252,255,251,255,244,255, +244,255,252,255,255,255,249,255,249,255,255,255,252,255,243,255,246,255,255,255,253,255,246,255,247,255,250,255,247,255,245,255, +246,255,247,255,248,255,252,255,250,255,242,255,242,255,249,255,249,255,243,255,241,255,245,255,245,255,245,255,249,255,248,255, +241,255,240,255,246,255,246,255,242,255,243,255,246,255,244,255,243,255,243,255,243,255,243,255,243,255,242,255,242,255,243,255, +246,255,248,255,245,255,240,255,240,255,244,255,245,255,245,255,247,255,246,255,240,255,238,255,243,255,246,255,244,255,243,255, +244,255,242,255,239,255,240,255,244,255,244,255,243,255,246,255,246,255,242,255,239,255,237,255,235,255,240,255,248,255,249,255, +247,255,244,255,241,255,241,255,244,255,246,255,245,255,244,255,241,255,238,255,243,255,247,255,244,255,243,255,246,255,246,255, +242,255,243,255,245,255,249,255,253,255,248,255,240,255,243,255,250,255,248,255,244,255,245,255,246,255,248,255,249,255,246,255, +245,255,250,255,251,255,247,255,248,255,253,255,252,255,249,255,247,255,248,255,252,255,255,255,0,0,2,0,0,0,250,255, +249,255,254,255,255,255,252,255,254,255,0,0,0,0,0,0,3,0,3,0,0,0,254,255,1,0,5,0,3,0,254,255, +1,0,9,0,8,0,0,0,255,255,5,0,7,0,3,0,2,0,5,0,7,0,6,0,7,0,10,0,10,0,8,0, +9,0,11,0,11,0,12,0,10,0,6,0,7,0,11,0,13,0,16,0,18,0,15,0,10,0,14,0,19,0,16,0, +13,0,13,0,13,0,13,0,17,0,17,0,14,0,15,0,15,0,12,0,12,0,17,0,19,0,16,0,19,0,23,0, +21,0,17,0,18,0,19,0,18,0,15,0,13,0,14,0,19,0,23,0,21,0,19,0,21,0,21,0,16,0,13,0, +15,0,19,0,21,0,22,0,23,0,22,0,19,0,16,0,19,0,23,0,22,0,22,0,23,0,20,0,16,0,20,0, +23,0,22,0,23,0,26,0,26,0,24,0,23,0,22,0,23,0,26,0,26,0,25,0,24,0,22,0,22,0,26,0, +28,0,24,0,25,0,26,0,24,0,26,0,29,0,24,0,18,0,23,0,27,0,24,0,22,0,22,0,21,0,21,0, +23,0,24,0,22,0,18,0,18,0,23,0,26,0,22,0,20,0,21,0,20,0,18,0,18,0,20,0,22,0,24,0, +23,0,21,0,20,0,21,0,22,0,21,0,18,0,17,0,20,0,21,0,17,0,17,0,20,0,17,0,10,0,11,0, +18,0,22,0,18,0,9,0,7,0,14,0,17,0,14,0,17,0,18,0,9,0,6,0,14,0,16,0,11,0,11,0, +10,0,5,0,5,0,10,0,11,0,10,0,10,0,8,0,7,0,6,0,4,0,0,0,1,0,4,0,6,0,5,0, +3,0,2,0,2,0,255,255,253,255,0,0,2,0,254,255,252,255,254,255,255,255,255,255,0,0,0,0,253,255,250,255, +250,255,250,255,248,255,246,255,246,255,250,255,252,255,253,255,254,255,253,255,248,255,246,255,249,255,250,255,247,255,245,255, +248,255,248,255,245,255,247,255,248,255,244,255,243,255,249,255,247,255,242,255,247,255,253,255,246,255,240,255,245,255,247,255, +239,255,238,255,245,255,247,255,245,255,243,255,243,255,244,255,245,255,243,255,241,255,242,255,245,255,245,255,243,255,242,255, +243,255,243,255,239,255,238,255,241,255,245,255,246,255,244,255,242,255,240,255,240,255,241,255,243,255,246,255,246,255,246,255, +247,255,246,255,242,255,246,255,251,255,247,255,241,255,244,255,250,255,251,255,250,255,247,255,247,255,248,255,246,255,246,255, +252,255,1,0,253,255,250,255,252,255,251,255,250,255,251,255,253,255,253,255,251,255,250,255,255,255,7,0,2,0,249,255, +253,255,8,0,6,0,2,0,5,0,7,0,5,0,6,0,9,0,10,0,10,0,9,0,9,0,11,0,12,0,10,0, +9,0,11,0,13,0,17,0,20,0,17,0,16,0,19,0,19,0,18,0,22,0,22,0,17,0,18,0,25,0,25,0, +21,0,21,0,24,0,26,0,28,0,27,0,26,0,28,0,30,0,28,0,26,0,28,0,28,0,24,0,23,0,28,0, +30,0,27,0,27,0,32,0,35,0,33,0,29,0,25,0,25,0,32,0,35,0,33,0,31,0,32,0,29,0,31,0, +37,0,36,0,32,0,34,0,35,0,27,0,23,0,30,0,36,0,33,0,30,0,30,0,29,0,29,0,30,0,31,0, +28,0,28,0,31,0,33,0,32,0,30,0,30,0,29,0,28,0,28,0,26,0,25,0,26,0,27,0,27,0,25,0, +23,0,25,0,27,0,21,0,17,0,22,0,26,0,19,0,11,0,14,0,20,0,20,0,18,0,21,0,22,0,18,0, +15,0,15,0,12,0,10,0,15,0,19,0,11,0,6,0,11,0,9,0,2,0,5,0,11,0,3,0,1,0,11,0, +12,0,2,0,255,255,1,0,254,255,252,255,254,255,255,255,253,255,247,255,244,255,246,255,249,255,245,255,244,255,249,255, +252,255,247,255,240,255,235,255,234,255,239,255,240,255,238,255,238,255,239,255,234,255,232,255,236,255,236,255,230,255,226,255, +227,255,228,255,227,255,229,255,230,255,226,255,220,255,220,255,225,255,222,255,211,255,208,255,214,255,216,255,213,255,210,255, +212,255,216,255,215,255,210,255,208,255,210,255,208,255,206,255,207,255,206,255,205,255,209,255,207,255,200,255,197,255,202,255, +205,255,208,255,210,255,203,255,194,255,198,255,205,255,201,255,194,255,196,255,203,255,204,255,199,255,195,255,195,255,195,255, +194,255,195,255,197,255,200,255,202,255,202,255,200,255,200,255,201,255,196,255,195,255,201,255,201,255,195,255,198,255,207,255, +205,255,198,255,200,255,202,255,198,255,198,255,204,255,206,255,204,255,203,255,202,255,202,255,207,255,210,255,207,255,205,255, +210,255,213,255,211,255,212,255,214,255,212,255,211,255,212,255,213,255,216,255,219,255,216,255,216,255,223,255,226,255,221,255, +220,255,221,255,222,255,227,255,233,255,229,255,225,255,234,255,243,255,241,255,237,255,238,255,240,255,240,255,239,255,240,255, +243,255,244,255,242,255,242,255,245,255,248,255,251,255,252,255,251,255,251,255,255,255,3,0,5,0,3,0,255,255,0,0, +5,0,6,0,5,0,10,0,14,0,11,0,8,0,12,0,13,0,12,0,14,0,17,0,16,0,17,0,21,0,25,0, +24,0,19,0,16,0,20,0,26,0,27,0,25,0,23,0,24,0,30,0,28,0,22,0,25,0,34,0,33,0,27,0, +28,0,30,0,31,0,34,0,35,0,29,0,26,0,31,0,36,0,38,0,37,0,34,0,33,0,33,0,33,0,36,0, +36,0,29,0,27,0,32,0,33,0,29,0,33,0,37,0,32,0,32,0,37,0,33,0,25,0,32,0,41,0,36,0, +27,0,25,0,29,0,33,0,33,0,25,0,20,0,23,0,23,0,16,0,15,0,24,0,29,0,24,0,19,0,19,0, +20,0,19,0,18,0,16,0,16,0,20,0,20,0,13,0,9,0,14,0,14,0,9,0,10,0,14,0,12,0,7,0, +6,0,4,0,0,0,254,255,255,255,255,255,0,0,0,0,253,255,249,255,248,255,249,255,248,255,246,255,247,255,248,255, +241,255,233,255,232,255,235,255,239,255,242,255,238,255,234,255,234,255,236,255,234,255,233,255,235,255,236,255,234,255,234,255, +233,255,230,255,231,255,233,255,228,255,223,255,229,255,239,255,239,255,231,255,226,255,225,255,221,255,217,255,223,255,236,255, +241,255,230,255,214,255,206,255,209,255,217,255,224,255,230,255,230,255,221,255,211,255,208,255,209,255,214,255,220,255,225,255, +229,255,230,255,223,255,213,255,215,255,226,255,232,255,236,255,238,255,228,255,219,255,226,255,234,255,233,255,235,255,242,255, +243,255,237,255,232,255,229,255,229,255,235,255,242,255,240,255,230,255,223,255,225,255,229,255,228,255,227,255,232,255,234,255, +233,255,238,255,244,255,241,255,238,255,245,255,1,0,6,0,3,0,255,255,1,0,7,0,9,0,6,0,5,0,10,0, +17,0,22,0,24,0,23,0,16,0,3,0,251,255,7,0,29,0,41,0,40,0,32,0,16,0,255,255,250,255,9,0, +33,0,53,0,54,0,32,0,6,0,254,255,10,0,24,0,33,0,41,0,44,0,29,0,11,0,9,0,19,0,30,0, +43,0,52,0,49,0,45,0,45,0,40,0,37,0,54,0,70,0,69,0,67,0,70,0,66,0,63,0,75,0,90,0, +92,0,90,0,83,0,73,0,70,0,82,0,98,0,107,0,104,0,90,0,77,0,73,0,75,0,80,0,89,0,95,0, +83,0,57,0,43,0,55,0,79,0,91,0,88,0,76,0,62,0,56,0,67,0,90,0,107,0,109,0,99,0,87,0, +80,0,85,0,99,0,115,0,122,0,117,0,103,0,94,0,101,0,116,0,117,0,104,0,94,0,88,0,82,0,82,0, +89,0,82,0,64,0,55,0,55,0,53,0,55,0,67,0,74,0,65,0,48,0,36,0,33,0,40,0,60,0,82,0, +90,0,76,0,49,0,28,0,26,0,50,0,85,0,98,0,81,0,55,0,39,0,34,0,46,0,74,0,93,0,82,0, +48,0,24,0,30,0,57,0,80,0,78,0,59,0,42,0,32,0,27,0,36,0,57,0,68,0,61,0,50,0,38,0, +16,0,7,0,22,0,36,0,41,0,47,0,39,0,3,0,231,255,234,255,246,255,3,0,27,0,37,0,14,0,240,255, +228,255,235,255,6,0,39,0,50,0,34,0,14,0,9,0,19,0,32,0,34,0,24,0,18,0,31,0,58,0,77,0, +66,0,33,0,7,0,253,255,4,0,34,0,73,0,81,0,50,0,14,0,247,255,236,255,240,255,6,0,24,0,14,0, +242,255,226,255,224,255,221,255,220,255,223,255,214,255,198,255,204,255,232,255,250,255,247,255,234,255,219,255,217,255,242,255, +25,0,52,0,60,0,52,0,36,0,24,0,29,0,51,0,78,0,96,0,98,0,89,0,77,0,68,0,61,0,53,0, +52,0,69,0,92,0,91,0,70,0,55,0,45,0,28,0,21,0,35,0,47,0,41,0,26,0,7,0,247,255,243,255, +253,255,11,0,21,0,17,0,252,255,240,255,4,0,37,0,54,0,52,0,48,0,45,0,47,0,58,0,82,0,109,0, +128,0,137,0,142,0,146,0,138,0,135,0,161,0,200,0,210,0,195,0,183,0,175,0,161,0,154,0,164,0,174,0, +173,0,167,0,165,0,153,0,121,0,84,0,81,0,116,0,149,0,146,0,107,0,52,0,16,0,21,0,50,0,68,0, +67,0,60,0,49,0,33,0,26,0,43,0,66,0,72,0,68,0,75,0,84,0,86,0,95,0,102,0,85,0,64,0, +71,0,87,0,85,0,71,0,51,0,33,0,55,0,120,0,161,0,140,0,85,0,34,0,18,0,66,0,150,0,202,0, +182,0,97,0,244,255,187,255,228,255,67,0,124,0,83,0,219,255,104,255,69,255,108,255,165,255,202,255,202,255,156,255, +87,255,33,255,23,255,65,255,128,255,168,255,171,255,154,255,138,255,133,255,139,255,152,255,180,255,227,255,16,0,39,0, +45,0,33,0,2,0,232,255,237,255,14,0,55,0,73,0,36,0,209,255,132,255,96,255,105,255,143,255,171,255,154,255, +98,255,34,255,241,254,236,254,26,255,88,255,123,255,114,255,79,255,46,255,33,255,44,255,79,255,122,255,138,255,120,255, +93,255,78,255,92,255,137,255,170,255,136,255,65,255,35,255,65,255,122,255,167,255,161,255,109,255,67,255,71,255,104,255, +154,255,213,255,243,255,227,255,188,255,142,255,125,255,176,255,1,0,11,0,196,255,126,255,95,255,85,255,87,255,103,255, +124,255,128,255,106,255,76,255,64,255,63,255,49,255,37,255,51,255,83,255,121,255,151,255,138,255,74,255,25,255,46,255, +116,255,182,255,208,255,185,255,159,255,175,255,217,255,243,255,7,0,38,0,63,0,69,0,64,0,47,0,21,0,8,0, +29,0,61,0,65,0,31,0,241,255,212,255,202,255,196,255,184,255,180,255,200,255,223,255,223,255,207,255,188,255,168,255, +167,255,201,255,234,255,232,255,225,255,224,255,200,255,177,255,195,255,225,255,245,255,24,0,58,0,41,0,3,0,5,0, +48,0,100,0,136,0,141,0,131,0,127,0,119,0,96,0,90,0,118,0,150,0,164,0,157,0,131,0,92,0,52,0, +41,0,75,0,117,0,122,0,119,0,137,0,130,0,92,0,86,0,119,0,146,0,161,0,165,0,134,0,94,0,77,0, +58,0,37,0,55,0,82,0,60,0,14,0,238,255,208,255,184,255,213,255,28,0,73,0,50,0,232,255,178,255,211,255, +69,0,186,0,233,0,188,0,94,0,42,0,94,0,214,0,51,1,60,1,254,0,167,0,95,0,68,0,108,0,187,0, +223,0,161,0,24,0,144,255,79,255,112,255,199,255,3,0,245,255,160,255,44,255,221,254,234,254,77,255,189,255,218,255, +140,255,39,255,11,255,61,255,149,255,243,255,41,0,28,0,232,255,179,255,152,255,195,255,38,0,98,0,79,0,41,0, +8,0,224,255,215,255,244,255,247,255,220,255,220,255,236,255,224,255,190,255,145,255,99,255,91,255,141,255,199,255,231,255, +230,255,181,255,102,255,65,255,105,255,195,255,13,0,9,0,175,255,70,255,15,255,24,255,90,255,175,255,208,255,167,255, +93,255,23,255,255,254,59,255,179,255,13,0,13,0,188,255,97,255,86,255,171,255,25,0,97,0,113,0,87,0,45,0, +11,0,6,0,64,0,184,0,26,1,31,1,230,0,162,0,109,0,100,0,138,0,183,0,206,0,205,0,163,0,81,0, +254,255,207,255,214,255,8,0,39,0,12,0,225,255,209,255,195,255,159,255,117,255,96,255,119,255,192,255,28,0,72,0, +24,0,184,255,158,255,246,255,107,0,187,0,245,0,12,1,246,0,246,0,29,1,27,1,243,0,14,1,107,1,168,1, +140,1,37,1,178,0,134,0,151,0,144,0,111,0,117,0,151,0,152,0,99,0,9,0,208,255,246,255,71,0,92,0, +59,0,38,0,43,0,53,0,39,0,217,255,113,255,100,255,211,255,96,0,169,0,136,0,22,0,170,255,161,255,8,0, +171,0,58,1,101,1,29,1,181,0,135,0,161,0,218,0,26,1,81,1,100,1,61,1,233,0,135,0,58,0,48,0, +120,0,193,0,181,0,97,0,5,0,188,255,155,255,169,255,188,255,186,255,191,255,208,255,210,255,202,255,203,255,208,255, +222,255,249,255,18,0,45,0,89,0,116,0,103,0,81,0,66,0,54,0,75,0,125,0,147,0,127,0,79,0,2,0, +197,255,220,255,24,0,30,0,251,255,226,255,211,255,206,255,218,255,224,255,207,255,176,255,146,255,156,255,216,255,237,255, +167,255,81,255,42,255,30,255,43,255,90,255,121,255,108,255,78,255,57,255,52,255,76,255,117,255,151,255,176,255,199,255, +220,255,244,255,251,255,235,255,232,255,247,255,242,255,238,255,16,0,41,0,8,0,191,255,83,255,222,254,204,254,56,255, +149,255,125,255,26,255,170,254,77,254,47,254,90,254,153,254,209,254,10,255,40,255,243,254,131,254,65,254,114,254,0,255, +174,255,40,0,24,0,149,255,34,255,29,255,127,255,24,0,136,0,105,0,241,255,168,255,167,255,177,255,177,255,150,255, +112,255,147,255,255,255,40,0,214,255,107,255,50,255,53,255,99,255,123,255,94,255,85,255,106,255,49,255,149,254,13,254, +248,253,85,254,199,254,222,254,172,254,167,254,209,254,214,254,200,254,232,254,50,255,162,255,53,0,148,0,117,0,23,0, +232,255,22,0,142,0,254,0,22,1,231,0,177,0,144,0,135,0,124,0,71,0,16,0,49,0,137,0,161,0,95,0, +249,255,141,255,50,255,26,255,82,255,168,255,218,255,202,255,131,255,32,255,212,254,234,254,115,255,16,0,96,0,90,0, +36,0,226,255,189,255,215,255,67,0,236,0,100,1,65,1,178,0,70,0,79,0,206,0,133,1,241,1,200,1,75,1, +221,0,176,0,237,0,122,1,228,1,222,1,123,1,230,0,98,0,82,0,206,0,105,1,163,1,91,1,227,0,152,0, +147,0,198,0,36,1,108,1,89,1,10,1,193,0,139,0,130,0,169,0,167,0,109,0,109,0,165,0,160,0,102,0, +53,0,242,255,193,255,12,0,168,0,252,0,229,0,151,0,73,0,64,0,143,0,4,1,134,1,239,1,208,1,36,1, +159,0,205,0,124,1,32,2,58,2,179,1,245,0,119,0,98,0,184,0,65,1,114,1,245,0,16,0,64,255,227,254, +26,255,157,255,228,255,178,255,44,255,148,254,44,254,60,254,216,254,154,255,231,255,145,255,4,255,197,254,10,255,192,255, +126,0,183,0,95,0,243,255,216,255,22,0,130,0,203,0,193,0,131,0,52,0,227,255,201,255,242,255,8,0,228,255, +187,255,145,255,78,255,37,255,43,255,57,255,89,255,140,255,140,255,89,255,73,255,86,255,79,255,92,255,148,255,183,255, +166,255,117,255,46,255,237,254,221,254,246,254,33,255,76,255,88,255,74,255,75,255,72,255,29,255,5,255,76,255,203,255, +35,0,31,0,216,255,178,255,230,255,55,0,111,0,157,0,174,0,137,0,92,0,74,0,59,0,73,0,153,0,232,0, +235,0,185,0,134,0,104,0,109,0,145,0,186,0,198,0,157,0,88,0,53,0,32,0,208,255,119,255,125,255,192,255, +206,255,156,255,91,255,49,255,53,255,102,255,151,255,184,255,228,255,47,0,131,0,174,0,152,0,112,0,132,0,251,0, +156,1,223,1,123,1,230,0,195,0,9,1,94,1,162,1,193,1,167,1,134,1,122,1,73,1,240,0,190,0,212,0, +15,1,59,1,40,1,225,0,136,0,3,0,117,255,131,255,58,0,181,0,127,0,10,0,177,255,148,255,221,255,104,0, +221,0,36,1,35,1,185,0,64,0,61,0,166,0,39,1,103,1,21,1,111,0,55,0,144,0,219,0,221,0,205,0, +165,0,116,0,153,0,14,1,96,1,99,1,61,1,252,0,175,0,160,0,4,1,161,1,252,1,223,1,101,1,188,0, +39,0,253,255,66,0,154,0,168,0,66,0,116,255,166,254,83,254,122,254,200,254,10,255,26,255,222,254,145,254,123,254, +149,254,216,254,82,255,232,255,92,0,144,0,138,0,95,0,37,0,249,255,23,0,176,0,119,1,224,1,183,1,21,1, +60,0,166,255,177,255,55,0,229,0,92,1,253,0,156,255,37,254,179,253,111,254,154,255,33,0,102,255,241,253,235,252, +224,252,141,253,120,254,15,255,232,254,47,254,120,253,82,253,230,253,180,254,0,255,190,254,104,254,66,254,87,254,152,254, +178,254,120,254,59,254,58,254,87,254,126,254,153,254,123,254,98,254,168,254,14,255,55,255,66,255,59,255,242,254,152,254, +148,254,243,254,113,255,164,255,44,255,66,254,161,253,169,253,29,254,142,254,139,254,254,253,117,253,105,253,136,253,96,253, +41,253,67,253,122,253,117,253,66,253,10,253,195,252,140,252,196,252,83,253,167,253,152,253,130,253,136,253,148,253,186,253, +13,254,118,254,232,254,60,255,66,255,21,255,253,254,22,255,113,255,251,255,61,0,253,255,163,255,141,255,175,255,247,255, +54,0,28,0,184,255,88,255,7,255,227,254,35,255,121,255,103,255,16,255,188,254,89,254,7,254,20,254,103,254,165,254, +165,254,113,254,65,254,60,254,40,254,223,253,200,253,34,254,158,254,243,254,17,255,231,254,151,254,129,254,196,254,62,255, +211,255,77,0,101,0,36,0,221,255,224,255,67,0,172,0,170,0,94,0,63,0,87,0,111,0,129,0,119,0,21,0, +126,255,57,255,139,255,24,0,75,0,246,255,92,255,182,254,52,254,68,254,250,254,172,255,204,255,130,255,14,255,140,254, +83,254,172,254,67,255,148,255,142,255,123,255,152,255,209,255,217,255,143,255,56,255,54,255,173,255,107,0,1,1,23,1, +175,0,19,0,182,255,229,255,113,0,238,0,43,1,10,1,131,0,245,255,196,255,209,255,248,255,65,0,108,0,69,0, +28,0,5,0,167,255,63,255,99,255,234,255,82,0,127,0,93,0,211,255,81,255,91,255,221,255,116,0,178,0,82,0, +175,255,117,255,202,255,89,0,209,0,209,0,56,0,140,255,98,255,197,255,127,0,50,1,90,1,218,0,49,0,216,255, +255,255,154,0,64,1,132,1,111,1,52,1,208,0,102,0,84,0,165,0,11,1,65,1,28,1,150,0,4,0,210,255, +6,0,60,0,47,0,239,255,146,255,42,255,5,255,87,255,171,255,128,255,20,255,225,254,248,254,74,255,202,255,34,0, +4,0,156,255,82,255,117,255,24,0,233,0,100,1,68,1,145,0,181,255,134,255,79,0,51,1,79,1,189,0,250,255, +95,255,58,255,145,255,252,255,30,0,218,255,50,255,134,254,91,254,186,254,69,255,163,255,138,255,247,254,96,254,69,254, +184,254,92,255,172,255,116,255,19,255,220,254,193,254,231,254,132,255,34,0,50,0,231,255,162,255,99,255,62,255,113,255, +250,255,153,0,231,0,136,0,176,255,1,255,196,254,252,254,198,255,187,0,240,0,25,0,229,254,27,254,43,254,10,255, +21,0,134,0,39,0,76,255,122,254,43,254,117,254,0,255,113,255,145,255,77,255,216,254,134,254,114,254,135,254,186,254, +244,254,8,255,244,254,237,254,15,255,33,255,234,254,168,254,198,254,58,255,171,255,245,255,13,0,237,255,212,255,250,255, +58,0,104,0,141,0,167,0,168,0,143,0,78,0,251,255,220,255,221,255,179,255,123,255,115,255,111,255,70,255,19,255, +228,254,213,254,30,255,137,255,197,255,248,255,21,0,183,255,51,255,82,255,0,0,156,0,242,0,215,0,33,0,98,255, +94,255,6,0,215,0,120,1,152,1,20,1,70,0,179,255,177,255,81,0,66,1,245,1,250,1,68,1,52,0,113,255, +104,255,7,0,242,0,163,1,146,1,210,0,5,0,165,255,209,255,116,0,43,1,118,1,64,1,209,0,120,0,99,0, +130,0,164,0,208,0,31,1,93,1,96,1,93,1,106,1,71,1,251,0,249,0,125,1,24,2,48,2,188,1,57,1, +246,0,228,0,0,1,62,1,84,1,35,1,229,0,184,0,151,0,157,0,191,0,197,0,183,0,183,0,178,0,156,0, +140,0,127,0,106,0,93,0,81,0,54,0,14,0,226,255,193,255,189,255,179,255,144,255,148,255,193,255,169,255,73,255, +15,255,244,254,179,254,121,254,130,254,170,254,168,254,39,254,25,253,31,252,186,251,146,251,87,251,55,251,250,250,35,250, +247,248,45,248,255,247,42,248,61,248,240,247,144,247,137,247,162,247,135,247,110,247,135,247,160,247,203,247,64,248,198,248, +242,248,183,248,83,248,27,248,69,248,183,248,37,249,65,249,203,248,216,247,7,247,237,246,80,247,111,247,254,246,73,246, +154,245,255,244,187,244,8,245,100,245,7,245,2,244,7,243,144,242,200,242,145,243,73,244,78,244,174,243,238,242,150,242, +22,243,77,244,102,245,200,245,162,245,119,245,154,245,15,246,162,246,64,247,218,247,19,248,209,247,188,247,55,248,181,248, +197,248,177,248,208,248,34,249,132,249,200,249,250,249,90,250,203,250,243,250,235,250,10,251,82,251,170,251,5,252,48,252, +27,252,0,252,3,252,32,252,89,252,133,252,128,252,151,252,3,253,114,253,163,253,212,253,64,254,220,254,129,255,5,0, +125,0,50,1,22,2,197,2,26,3,66,3,119,3,240,3,182,4,126,5,18,6,110,6,145,6,164,6,238,6,88,7, +155,7,220,7,77,8,190,8,247,8,234,8,140,8,32,8,57,8,227,8,115,9,109,9,255,8,148,8,117,8,180,8, +15,9,42,9,3,9,251,8,74,9,187,9,39,10,153,10,226,10,198,10,168,10,11,11,202,11,104,12,170,12,151,12, +131,12,221,12,121,13,215,13,28,14,146,14,207,14,109,14,220,13,188,13,33,14,158,14,150,14,246,13,94,13,37,13, +238,12,157,12,115,12,92,12,45,12,9,12,232,11,160,11,107,11,160,11,63,12,252,12,60,13,151,12,145,11,9,11, +31,11,135,11,24,12,99,12,240,11,7,11,74,10,248,9,44,10,240,10,193,11,240,11,109,11,186,10,91,10,128,10, +255,10,162,11,77,12,183,12,116,12,121,11,90,10,225,9,116,10,173,11,162,12,161,12,152,11,6,10,210,8,182,8, +161,9,227,10,169,11,90,11,252,9,85,8,88,7,153,7,254,8,122,10,170,10,84,9,155,7,176,6,246,6,27,8, +74,9,159,9,236,8,220,7,99,7,235,7,220,8,84,9,63,9,14,9,237,8,248,8,114,9,48,10,139,10,51,10, +122,9,245,8,9,9,151,9,45,10,122,10,75,10,133,9,133,8,230,7,231,7,86,8,185,8,121,8,154,7,196,6, +62,6,232,5,0,6,151,6,239,6,153,6,13,6,161,5,65,5,15,5,65,5,182,5,52,6,96,6,233,5,56,5, +12,5,91,5,143,5,135,5,124,5,126,5,115,5,71,5,1,5,188,4,116,4,48,4,64,4,166,4,171,4,222,3, +230,2,151,2,222,2,23,3,238,2,152,2,106,2,86,2,2,2,72,1,125,0,21,0,57,0,159,0,214,0,149,0, +215,255,221,254,39,254,22,254,149,254,73,255,187,255,116,255,116,254,94,253,243,252,127,253,157,254,81,255,240,254,237,253, +21,253,151,252,144,252,57,253,10,254,3,254,14,253,243,251,90,251,112,251,223,251,12,252,220,251,149,251,19,251,62,250, +185,249,254,249,150,250,239,250,237,250,160,250,59,250,6,250,247,249,239,249,32,250,164,250,33,251,44,251,171,250,237,249, +118,249,141,249,20,250,187,250,28,251,223,250,32,250,97,249,10,249,81,249,43,250,5,251,64,251,228,250,73,250,175,249, +137,249,43,250,25,251,133,251,70,251,189,250,79,250,78,250,198,250,95,251,166,251,130,251,67,251,55,251,60,251,30,251, +44,251,202,251,173,252,41,253,249,252,93,252,230,251,33,252,19,253,50,254,249,254,55,255,253,254,158,254,146,254,46,255, +98,0,153,1,43,2,31,2,10,2,46,2,111,2,200,2,76,3,236,3,131,4,215,4,207,4,162,4,120,4,67,4, +45,4,128,4,25,5,166,5,243,5,174,5,207,4,20,4,68,4,84,5,164,6,106,7,63,7,186,6,179,6,32,7, +191,7,214,8,50,10,209,10,85,10,141,9,98,9,238,9,119,10,72,10,174,9,88,9,11,9,77,8,161,7,171,7, +19,8,62,8,39,8,11,8,252,7,234,7,192,7,176,7,15,8,174,8,231,8,106,8,134,7,172,6,36,6,14,6, +75,6,106,6,251,5,10,5,246,3,5,3,132,2,199,2,110,3,101,3,72,2,221,0,15,0,15,0,91,0,56,0, +144,255,253,254,161,254,222,253,161,252,211,251,29,252,251,252,59,253,57,252,154,250,117,249,16,249,20,249,88,249,159,249, +84,249,31,248,84,246,216,244,170,244,221,245,24,247,168,246,21,244,178,240,224,238,229,239,87,242,178,243,63,243,24,242, +6,241,10,240,98,239,184,239,39,241,152,242,103,242,26,240,35,237,147,235,43,236,205,237,149,238,142,237,106,235,107,233, +44,232,171,231,201,231,81,232,3,233,126,233,25,233,123,231,141,229,233,228,15,230,168,231,235,231,151,230,69,229,120,229, +232,230,70,232,11,233,130,233,190,233,154,233,82,233,122,233,145,234,107,236,225,237,173,237,9,236,176,234,241,234,118,236, +250,237,122,238,230,237,22,237,199,236,250,236,159,237,233,238,108,240,18,241,129,240,160,239,150,239,224,240,18,243,244,244, +118,245,207,244,65,244,204,244,88,246,225,247,121,248,80,248,87,248,224,248,100,249,206,249,213,250,164,252,30,254,23,254, +223,252,242,251,105,252,1,254,177,255,191,0,21,1,12,1,54,1,204,1,85,2,125,2,190,2,127,3,90,4,3,5, +185,5,127,6,3,7,33,7,164,6,138,5,197,4,64,5,90,6,166,6,153,5,191,3,25,2,120,1,201,1,60,2, +9,2,206,0,190,254,163,252,254,250,158,249,128,248,169,247,86,246,41,244,179,242,190,243,147,246,77,248,230,246,161,243, +33,242,190,244,122,250,164,0,190,4,240,4,43,1,85,252,155,250,253,253,124,4,76,9,102,8,193,1,34,249,65,243, +245,242,104,247,44,252,116,252,33,247,117,239,14,234,87,233,100,236,63,240,193,241,86,239,172,234,222,231,63,233,217,236, +53,239,63,239,60,238,117,237,105,237,124,238,244,240,231,243,103,245,120,244,50,242,197,240,199,241,220,244,183,247,96,248, +61,247,223,245,253,244,136,244,153,244,140,245,149,247,208,249,111,250,27,249,187,247,216,247,75,249,133,251,224,253,79,255, +86,255,74,254,166,252,118,251,5,252,235,253,67,255,18,255,190,253,11,252,214,250,183,250,132,251,197,252,9,254,186,254, +189,254,198,254,131,255,26,1,77,3,79,5,74,6,117,6,140,6,204,6,129,7,61,9,179,11,168,13,122,14,185,14, +57,15,44,16,59,17,69,18,169,19,107,21,166,22,121,22,74,21,124,20,215,20,198,21,97,22,91,22,169,21,85,20, +236,18,43,18,43,18,158,18,58,19,123,19,219,18,128,17,61,16,239,15,208,16,14,18,153,18,109,18,49,18,3,18, +234,17,120,18,0,20,212,21,0,23,33,23,188,22,220,22,10,24,191,25,53,27,9,28,18,28,112,27,194,26,159,26, +252,26,85,27,46,27,134,26,193,25,255,24,6,24,224,22,244,21,127,21,118,21,136,21,49,21,63,20,52,19,136,18, +39,18,252,17,18,18,5,18,49,17,151,15,2,14,88,13,219,13,227,14,92,15,167,14,3,13,119,11,79,11,219,12, +221,14,198,15,46,15,170,13,49,12,214,11,17,13,54,15,220,16,218,16,47,15,78,13,197,12,162,13,4,15,92,16, +22,17,102,16,124,14,170,12,252,11,82,12,151,12,176,11,187,9,250,7,9,7,73,6,30,5,150,3,14,2,235,0, +106,0,101,0,126,0,88,0,203,255,52,255,13,255,80,255,205,255,137,0,85,1,232,1,92,2,198,2,236,2,211,2, +182,2,156,2,175,2,85,3,118,4,75,5,238,4,59,3,97,1,233,0,0,2,146,3,159,4,129,4,9,3,247,0, +88,255,186,254,88,255,213,0,213,1,60,1,91,255,86,253,78,252,191,252,238,253,186,254,226,254,129,254,135,253,89,252, +191,251,13,252,13,253,234,253,162,253,120,252,175,251,140,251,153,251,251,251,206,252,154,253,27,254,51,254,215,253,206,253, +191,254,241,255,146,0,208,0,234,0,4,1,95,1,163,1,101,1,49,1,112,1,173,1,167,1,89,1,124,0,112,255, +225,254,113,254,177,253,46,253,11,253,158,252,172,251,97,250,250,248,31,248,7,248,245,247,136,247,23,247,180,246,77,246, +247,245,137,245,40,245,128,245,104,246,220,246,185,246,191,246,67,247,211,247,224,247,161,247,222,247,121,248,145,248,85,248, +122,248,146,248,14,248,81,247,167,246,27,246,7,246,57,246,234,245,9,245,239,243,207,242,65,242,146,242,228,242,125,242, +138,241,66,240,36,239,247,238,109,239,186,239,247,239,252,239,246,238,109,237,11,237,77,238,68,240,152,241,75,241,221,239, +213,238,188,238,85,239,234,240,58,243,192,244,104,244,184,242,85,241,226,241,70,244,156,246,186,247,13,248,237,247,80,247, +186,246,6,247,150,248,192,250,239,251,105,251,74,250,180,249,181,249,94,250,159,251,160,252,222,252,154,252,221,251,4,251, +68,251,245,252,214,254,149,255,247,254,250,253,235,253,209,254,193,255,187,0,33,2,55,3,58,3,162,2,72,2,209,2, +121,4,87,6,85,7,205,7,113,8,228,8,235,8,55,9,69,10,210,11,51,13,178,13,81,13,240,12,29,13,123,13, +148,13,126,13,158,13,30,14,136,14,83,14,168,13,14,13,197,12,197,12,244,12,73,13,220,13,85,14,232,13,165,12, +186,11,222,11,164,12,96,13,189,13,186,13,139,13,63,13,223,12,212,12,85,13,236,13,56,14,70,14,20,14,172,13, +81,13,20,13,234,12,237,12,222,12,79,12,154,11,128,11,251,11,71,12,161,11,251,9,115,8,102,8,177,9,202,10, +131,10,211,8,144,6,221,4,83,4,192,4,205,5,206,6,79,6,159,3,87,0,175,254,27,255,130,0,150,1,82,1, +131,255,31,253,90,251,174,250,248,250,161,251,193,251,248,250,169,249,81,248,90,247,33,247,80,247,36,247,180,246,138,246, +85,246,154,245,191,244,62,244,230,243,142,243,85,243,42,243,186,242,178,241,58,240,48,239,55,239,183,239,160,239,135,238, +176,236,7,235,185,234,192,235,191,236,166,236,97,235,77,233,84,231,186,230,194,231,81,233,22,234,78,233,4,231,90,228, +250,226,181,227,216,229,218,231,88,232,236,230,166,228,93,227,242,227,164,229,101,231,194,232,107,233,19,233,243,231,200,230, +178,230,134,232,49,235,91,236,138,235,111,234,234,233,166,233,202,233,158,234,178,235,151,236,11,237,201,236,58,236,11,236, +34,236,94,236,54,237,163,238,5,240,227,240,219,240,16,240,191,239,185,240,72,242,176,243,0,245,58,246,47,247,163,247, +117,247,138,247,58,249,11,252,48,254,43,255,193,255,97,0,28,1,251,1,248,2,73,4,213,5,205,6,250,6,57,7, +245,7,180,8,38,9,98,9,162,9,28,10,159,10,255,10,172,11,194,12,147,13,190,13,150,13,136,13,36,14,187,15, +176,17,46,19,226,19,169,19,230,18,166,18,89,19,154,20,30,22,85,23,80,23,64,22,94,21,62,21,172,21,113,22, +70,23,250,23,105,24,86,24,5,24,36,24,177,24,89,25,68,26,39,27,74,27,10,27,55,27,158,27,207,27,214,27, +166,27,55,27,157,26,162,25,181,24,221,24,167,25,108,25,200,23,158,21,211,19,35,19,116,19,211,19,249,19,216,19, +116,18,238,15,111,14,229,14,246,15,133,16,101,16,157,15,138,14,93,13,1,12,67,11,222,11,172,12,79,12,9,11, +115,9,198,7,132,6,228,5,136,5,78,5,254,4,231,3,240,1,245,255,197,254,122,254,95,254,212,253,61,253,178,252, +8,251,68,248,158,246,24,247,7,248,211,247,118,246,110,244,71,242,160,240,229,239,14,240,119,240,60,240,22,239,121,237, +42,236,196,235,205,235,60,235,136,234,209,234,55,235,74,234,187,232,216,231,175,231,224,231,227,231,32,231,34,230,155,229, +18,229,141,228,220,228,86,229,201,228,198,227,39,227,208,226,21,227,63,228,111,229,0,230,4,230,100,229,168,228,8,229, +143,230,67,232,147,233,22,234,178,233,49,233,26,233,87,233,34,234,68,235,237,235,185,236,176,238,120,240,140,240,98,240, +179,241,118,243,103,244,154,245,135,248,50,252,255,253,20,253,114,251,34,251,52,252,56,254,45,1,64,4,175,5,189,4, +214,2,66,2,4,4,143,7,233,11,165,15,227,16,140,15,243,13,15,14,11,16,108,19,24,23,107,25,181,25,108,24, +181,22,185,22,195,25,202,29,249,31,80,32,55,32,73,32,7,33,11,35,31,38,39,41,123,42,103,41,10,40,5,41, +182,43,183,45,114,46,135,46,74,46,45,46,84,46,63,46,9,46,115,46,100,47,5,48,237,47,133,47,152,47,22,48, +201,47,143,46,27,46,246,46,114,47,159,46,117,45,186,44,41,44,128,43,239,42,166,42,122,42,3,42,29,41,55,40, +238,39,104,40,241,40,136,40,40,39,237,37,169,37,8,38,24,38,20,37,28,35,35,33,173,31,108,30,82,29,195,28, +134,28,182,27,184,25,226,22,118,20,107,19,42,19,130,18,107,17,116,16,97,15,174,13,129,11,94,9,149,7,62,6, +89,5,164,4,129,3,162,1,149,255,226,253,36,252,27,250,147,248,252,247,112,247,25,246,91,244,236,242,189,241,82,240, +204,238,227,237,169,237,68,237,33,236,135,234,251,232,242,231,174,231,201,231,129,231,173,230,164,229,127,228,46,227,251,225, +78,225,35,225,236,224,219,223,161,221,4,219,104,217,63,217,102,217,158,216,7,215,111,213,249,211,111,210,98,209,208,209, +122,211,106,212,9,211,80,208,187,206,104,207,79,209,181,210,197,210,40,210,1,210,77,210,109,210,207,210,60,212,9,214, +164,214,172,213,138,212,234,212,133,214,179,215,60,216,1,217,41,217,147,215,253,213,192,214,76,217,183,219,52,221,161,221, +40,221,116,220,57,220,47,221,205,223,4,227,5,229,106,229,218,228,232,227,193,227,151,229,189,232,78,235,73,236,252,235, +122,235,191,235,215,236,88,238,41,240,220,241,149,242,111,242,178,242,79,244,204,246,209,248,220,249,223,250,138,252,115,254, +132,0,8,3,79,5,141,6,89,7,121,8,159,9,88,10,9,11,108,12,72,14,96,15,80,15,30,15,20,15,166,14, +173,14,96,16,226,18,142,20,200,20,163,19,75,18,143,18,110,20,153,22,201,24,131,26,141,26,157,25,180,25,2,27, +173,28,72,30,28,31,45,31,195,31,168,32,97,32,140,31,202,31,192,32,86,33,130,33,126,33,109,33,57,33,106,32, +113,31,135,31,96,32,146,32,214,31,194,30,206,29,99,29,42,29,97,28,116,27,6,27,124,26,192,25,217,25,136,26, +69,26,170,24,187,22,167,21,238,21,240,22,159,23,68,23,51,21,168,17,196,14,80,14,146,15,166,16,13,16,31,13, +4,9,242,5,219,4,101,5,134,6,76,6,182,3,88,0,238,253,166,252,149,252,114,253,212,253,255,252,96,251,54,249, +64,247,166,246,17,247,112,247,141,247,192,246,30,244,185,240,135,238,18,238,195,238,66,239,10,238,104,235,213,232,142,230, +169,228,86,228,125,229,41,230,15,229,100,226,101,223,197,221,204,221,10,222,180,221,236,220,123,219,149,217,19,216,254,214, +16,214,117,213,232,212,47,212,213,211,153,211,157,210,143,209,105,209,126,209,29,209,153,208,40,208,7,208,105,208,100,208, +65,207,9,206,175,205,206,205,15,206,134,206,249,206,251,206,30,206,176,204,93,204,17,206,42,208,215,208,47,208,199,206, +254,204,199,203,24,204,252,205,71,208,157,208,158,205,75,201,13,199,30,200,111,203,33,207,45,209,139,208,59,206,158,204, +208,205,228,209,186,214,86,218,59,220,67,220,230,218,83,218,88,220,252,223,219,226,199,227,138,227,188,227,131,228,161,228, +82,228,75,229,139,231,132,233,160,234,8,235,254,234,112,235,234,236,154,238,199,239,126,240,227,240,138,241,249,242,100,244, +40,245,28,246,108,247,25,248,130,248,6,250,110,252,121,254,161,255,46,0,193,0,199,1,206,2,141,3,183,4,98,6, +74,7,18,7,46,7,180,8,223,10,96,12,25,13,12,14,221,15,34,18,71,20,62,22,48,24,53,26,83,28,31,30, +235,30,218,30,51,31,185,32,122,34,29,35,164,34,244,33,129,33,52,33,236,32,213,32,133,33,234,34,146,35,184,34, +230,33,140,34,224,35,198,36,71,37,134,37,143,37,221,37,117,38,201,38,220,38,255,38,34,39,126,39,120,40,154,41, +83,42,0,43,221,43,105,44,192,44,180,45,36,47,220,47,74,47,82,46,69,46,77,47,14,48,37,47,226,44,224,42, +26,42,86,42,246,42,120,43,93,43,97,42,207,40,117,39,26,39,149,39,195,39,40,39,145,38,127,38,68,38,16,37, +191,34,29,32,200,30,111,31,185,32,95,33,153,33,82,33,212,31,210,29,13,29,55,30,166,32,224,34,98,35,49,34, +154,32,20,31,108,29,49,28,247,27,91,28,162,28,253,27,187,25,82,22,26,19,4,17,105,16,34,17,50,18,86,18, +230,16,222,13,71,10,30,8,131,8,126,10,246,11,81,11,192,8,30,6,231,4,13,5,244,5,214,6,165,6,66,5, +225,3,120,3,15,4,37,5,190,5,29,5,155,3,4,2,8,1,45,1,14,2,115,2,213,1,117,0,151,254,247,252, +107,252,157,252,204,252,210,252,120,252,135,251,100,250,56,249,219,247,0,247,99,247,96,248,182,248,189,247,199,245,42,244, +193,243,214,243,244,243,152,244,79,245,12,245,17,244,39,243,131,242,109,242,8,243,234,243,226,244,116,245,151,244,181,242, +137,241,144,241,50,242,40,243,205,243,113,243,136,242,136,241,112,240,9,240,227,240,7,242,139,242,63,242,226,240,238,238, +145,237,7,237,23,237,210,237,46,238,23,237,197,235,198,235,191,236,243,237,18,239,165,239,55,240,227,241,56,244,109,246, +232,248,10,251,241,250,225,248,125,247,121,248,11,251,6,253,226,252,225,250,242,247,224,244,16,243,169,243,238,245,54,248, +101,249,189,248,97,246,251,243,114,243,138,245,119,249,1,253,134,254,124,254,147,253,221,251,219,250,136,252,47,0,75,3, +110,4,201,3,138,2,164,1,16,1,83,1,117,3,14,6,84,6,148,4,104,3,219,3,95,5,241,6,123,7,75,7, +124,7,225,7,86,8,215,9,229,11,216,12,249,12,254,12,70,12,138,11,184,12,66,15,198,16,57,16,33,14,254,11, +80,11,195,11,72,12,64,13,196,14,61,15,22,14,156,12,222,11,93,12,101,14,38,17,38,19,190,19,29,19,242,17, +65,17,164,17,2,19,170,20,64,21,245,19,248,17,29,17,159,17,106,18,140,18,63,18,147,18,116,19,133,19,228,18, +45,19,70,20,172,20,87,20,109,20,13,21,41,21,233,19,38,18,187,17,168,18,242,18,249,17,226,16,58,16,231,15, +230,15,235,15,234,15,36,16,204,15,77,14,36,13,114,13,32,14,65,14,1,14,53,13,255,11,51,11,211,10,132,10, +174,10,19,11,210,10,99,10,172,10,1,11,108,10,67,9,98,8,58,8,147,8,181,8,78,8,129,7,232,5,70,3, +205,0,22,0,72,1,215,2,189,2,142,0,14,254,205,252,145,252,7,253,148,254,179,0,193,1,208,0,119,254,65,252, +154,251,188,252,153,254,203,255,102,255,117,253,245,250,33,249,224,248,95,250,107,252,9,253,137,251,9,249,250,246,54,246, +229,246,65,248,5,249,89,248,54,246,151,243,81,242,119,243,250,245,164,247,89,247,3,246,79,245,196,245,162,246,116,247, +144,248,5,250,29,251,240,250,55,249,240,246,204,245,127,246,42,248,95,249,60,249,212,247,4,246,158,244,15,244,212,244, +20,247,146,249,78,250,171,248,57,246,36,245,16,246,211,247,9,249,65,249,137,248,13,247,89,245,60,244,73,244,131,245, +252,246,53,247,201,245,52,244,245,243,215,244,212,245,138,246,30,247,122,247,100,247,211,246,40,246,16,246,130,246,91,246, +51,245,98,244,150,244,111,244,53,243,78,242,159,242,19,243,108,242,245,240,52,240,54,241,178,242,89,242,58,240,105,238, +186,237,102,237,250,236,162,236,151,236,140,236,89,235,139,232,12,230,253,229,11,232,93,234,130,235,3,235,154,233,76,232, +68,231,236,230,91,232,8,235,147,236,208,235,142,233,21,231,171,229,50,230,56,232,100,234,92,235,79,234,41,232,82,231, +196,232,216,234,205,235,146,235,214,234,8,234,123,233,156,233,81,234,165,234,209,233,83,232,103,231,15,232,89,234,183,236, +66,237,71,236,245,235,217,237,16,242,46,247,79,250,211,249,139,247,126,246,67,248,166,252,77,1,5,3,22,1,79,253, +158,249,53,248,26,251,36,1,38,6,170,6,95,2,229,252,231,251,118,1,213,9,33,16,56,18,165,16,49,14,252,13, +171,16,14,21,185,25,156,28,149,28,127,27,165,27,51,29,146,31,220,33,139,34,201,33,227,33,10,36,81,39,65,42, +83,43,238,41,168,39,226,38,162,40,62,44,174,47,224,48,163,47,109,45,229,43,117,44,115,47,88,51,29,54,200,54, +139,53,4,52,90,52,246,54,95,58,215,60,19,61,68,59,139,57,132,57,188,58,59,60,255,60,232,59,137,57,218,55, +147,55,120,56,156,58,250,60,113,61,63,59,222,55,36,54,79,56,231,60,144,63,90,62,30,59,237,55,199,53,64,53, +5,54,18,55,29,55,141,52,186,47,4,44,163,43,9,45,217,45,242,44,16,42,100,38,239,35,66,35,158,35,233,35, +172,34,156,31,97,28,12,26,83,24,91,23,6,23,15,22,38,20,55,18,115,16,141,14,200,12,116,11,176,10,251,9, +232,7,35,4,110,0,225,253,239,251,101,250,18,249,200,246,251,242,119,238,97,234,23,232,12,232,76,232,195,230,177,227, +228,223,156,219,240,215,72,214,158,214,77,215,199,213,117,208,226,200,66,194,27,190,66,188,251,187,139,187,189,184,170,178, +97,170,238,162,192,159,74,161,123,164,35,166,248,164,34,161,26,156,133,152,238,152,238,157,157,164,60,168,198,166,93,162, +92,158,85,157,53,160,239,164,221,167,24,167,26,163,219,157,67,154,211,153,74,155,200,156,225,156,46,154,67,149,68,145, +39,144,35,145,248,146,179,148,131,149,132,149,37,149,142,148,236,148,186,151,52,156,35,160,67,162,155,162,58,162,143,162, +204,163,134,165,42,168,72,171,198,172,7,172,4,171,153,171,50,174,244,177,249,180,111,182,237,183,153,186,120,189,16,192, +93,195,113,199,240,202,51,205,0,207,113,209,25,213,203,217,133,222,236,225,150,227,138,228,6,230,105,232,190,235,5,240, +123,244,183,247,158,248,88,247,249,245,43,247,39,251,137,255,100,2,155,3,199,3,164,3,240,3,59,5,56,8,22,13, +87,18,23,22,6,24,1,25,42,26,203,28,91,33,229,38,37,44,21,48,8,50,169,50,129,51,30,53,116,55,204,58, +127,62,241,64,172,65,117,65,255,64,79,65,91,67,59,70,0,72,56,72,234,71,1,72,183,72,152,73,249,73,219,73, +203,73,241,73,42,74,118,74,168,74,136,74,93,74,130,74,236,74,152,75,152,76,109,77,81,77,84,76,78,75,246,74, +118,75,53,76,248,75,72,74,87,72,104,71,23,71,95,70,71,69,150,68,122,68,49,68,8,67,123,65,182,64,215,64, +191,64,213,63,133,62,24,61,84,59,64,57,113,55,111,54,229,53,189,52,110,50,159,47,48,45,82,43,216,41,171,40, +172,39,108,38,90,36,164,33,117,31,109,30,133,29,172,27,138,25,102,24,20,24,23,23,179,20,17,18,198,16,227,16, +64,17,236,16,193,15,63,14,44,13,194,12,148,12,104,12,77,12,13,12,104,11,147,10,65,10,0,11,254,11,64,11, +80,8,160,5,170,5,1,8,248,9,101,9,112,6,7,3,204,0,95,0,239,1,125,4,112,5,58,3,94,255,171,252, +151,252,169,254,44,1,86,2,40,1,29,254,219,251,104,253,253,1,68,5,213,4,133,2,74,1,176,2,136,6,52,11, +204,14,254,15,129,14,63,12,117,12,199,15,226,19,30,23,15,25,228,24,164,22,12,20,21,19,45,21,46,26,199,30, +58,31,250,27,146,24,76,23,28,24,22,26,172,28,131,31,250,32,254,30,143,26,144,23,54,24,102,27,160,30,183,31, +70,30,16,28,142,26,137,25,205,24,224,24,188,25,146,26,125,26,38,25,34,23,54,21,159,19,187,18,189,18,162,18, +93,17,69,15,16,13,218,10,147,8,72,6,85,4,250,2,36,1,159,253,124,249,151,246,222,244,246,242,154,239,136,234, +211,229,173,227,165,226,40,224,162,220,17,217,135,212,238,206,248,201,7,199,207,198,251,200,105,203,238,203,169,201,155,196, +3,191,42,189,190,192,37,199,147,204,108,205,96,199,122,188,63,178,25,173,123,174,137,180,100,185,90,182,162,169,164,152, +250,140,28,141,52,150,58,159,150,161,40,156,134,145,51,135,52,131,101,135,27,144,27,151,193,151,31,146,61,138,63,132, +128,130,184,133,38,140,125,145,9,146,70,142,177,138,206,138,168,141,94,145,170,150,1,157,35,160,19,158,189,154,19,155, +40,160,27,167,208,171,175,172,86,171,91,169,155,167,223,167,31,171,223,175,83,180,53,183,57,183,42,181,93,180,229,182, +208,187,19,193,11,197,37,199,185,199,15,199,48,198,135,199,39,204,122,210,140,216,159,220,24,221,58,219,45,219,141,223, +144,231,119,240,168,246,45,248,28,247,25,247,152,249,34,254,212,3,77,9,210,12,124,13,163,12,147,13,72,18,75,25, +27,32,136,37,58,41,167,43,95,46,127,50,197,55,78,61,30,66,204,69,169,72,51,74,65,73,203,70,206,69,3,72, +80,76,174,79,104,79,224,75,33,72,90,70,243,70,254,73,186,78,198,82,196,83,111,81,139,78,40,79,92,84,244,90, +116,95,5,97,175,96,63,96,84,97,11,100,151,103,101,107,155,110,11,112,81,111,44,109,101,107,179,107,154,109,217,110, +255,109,187,106,134,101,148,96,33,94,128,93,213,92,171,91,185,89,44,86,108,81,43,77,17,75,241,75,147,78,250,79, +85,78,108,74,75,70,197,67,44,67,50,67,200,66,179,65,73,63,25,59,113,54,19,51,133,49,45,49,204,48,80,47, +172,44,95,41,70,38,207,36,51,37,101,37,213,35,70,33,212,30,163,28,224,26,60,26,23,27,83,28,183,27,153,24, +234,20,194,18,171,18,10,20,60,21,146,20,209,17,81,13,159,7,11,3,192,1,87,2,22,2,134,0,55,254,53,251, +219,247,246,244,168,243,1,245,26,248,202,250,149,252,130,253,53,252,233,248,163,246,97,247,224,250,247,255,235,3,183,3, +186,255,75,251,129,249,222,251,156,1,208,7,170,11,197,11,59,8,177,3,41,2,25,5,103,10,209,14,233,15,119,13, +129,9,65,6,255,4,50,6,211,8,232,10,125,11,121,10,10,8,206,5,238,5,136,8,247,11,94,14,117,14,216,12, +139,11,39,11,7,11,132,11,5,13,127,14,147,14,198,12,30,10,185,8,58,9,73,10,121,11,5,13,161,13,185,12, +245,11,0,12,242,11,218,11,21,12,76,12,97,12,98,11,196,7,1,3,143,0,193,0,55,1,99,0,209,253,0,250, +172,246,234,244,118,244,212,244,231,244,68,243,66,240,60,237,187,234,72,233,30,233,98,232,34,229,67,224,85,220,6,219, +237,219,195,220,173,219,224,216,90,213,73,210,110,209,253,210,115,212,146,211,72,208,178,203,149,199,102,197,206,196,118,196, +73,195,85,192,235,187,56,184,182,182,194,182,71,183,101,183,128,182,42,181,60,180,155,179,76,179,151,179,187,179,238,178, +146,177,21,176,167,174,237,173,249,173,221,173,212,172,147,170,207,167,168,166,42,168,139,170,217,171,198,171,118,170,151,168, +190,167,166,168,231,170,247,173,93,176,16,176,78,173,193,170,182,170,174,173,62,178,225,181,57,183,233,182,54,182,86,182, +82,184,9,188,82,192,14,196,61,198,92,198,92,197,237,196,50,198,86,201,28,205,124,207,228,207,138,207,185,207,126,209, +132,213,141,218,61,222,241,223,247,224,175,226,222,229,69,234,72,238,74,240,63,240,122,239,200,239,59,242,219,245,97,248, +218,248,92,248,66,248,69,249,246,251,90,0,244,4,208,7,223,8,222,9,242,11,228,14,128,18,188,22,145,26,156,28, +16,29,200,29,40,32,144,35,80,38,204,39,27,41,86,43,12,46,253,47,221,48,141,49,212,50,166,52,147,54,58,56, +57,57,102,57,21,57,228,56,43,57,210,57,164,58,132,59,72,60,165,60,138,60,105,60,222,60,252,61,67,63,111,64, +217,65,124,67,178,68,102,69,10,70,59,70,147,69,65,69,102,70,30,72,6,73,234,72,9,72,162,70,54,69,43,68, +5,68,95,69,130,71,158,72,237,71,189,69,160,66,76,64,191,64,150,67,84,70,207,70,59,68,184,63,243,59,142,58, +14,59,121,60,153,61,188,60,148,57,216,53,53,51,26,50,208,49,51,49,63,48,195,47,239,46,66,44,194,40,213,38, +219,38,80,39,250,38,224,37,201,36,226,35,177,34,185,33,0,34,245,34,66,35,178,34,158,33,48,32,220,30,19,30, +228,29,4,30,141,29,212,27,136,25,141,23,11,22,104,21,177,21,181,21,4,21,108,20,135,19,132,17,126,15,214,14, +45,15,140,15,68,15,30,14,163,12,220,10,43,8,135,5,196,4,143,5,113,6,245,6,204,6,161,5,241,3,52,2, +41,1,104,2,186,5,71,8,95,8,158,6,221,3,95,1,191,0,226,1,133,3,187,4,89,4,244,1,95,255,59,254, +54,254,240,254,70,0,25,1,154,0,91,255,95,254,123,254,135,255,220,255,105,254,42,252,165,250,194,250,62,252,254,252, +75,251,70,248,174,245,222,243,101,243,168,244,252,245,137,245,69,243,13,240,74,237,123,236,50,237,176,237,33,237,70,235, +54,232,92,229,22,228,13,228,76,228,0,228,131,226,135,224,113,223,71,223,119,223,0,224,89,224,164,223,238,221,179,219, +162,217,204,216,8,217,185,216,1,215,212,211,74,207,231,202,172,200,76,200,13,200,233,198,72,196,125,192,106,189,59,188, +68,188,195,188,37,189,129,188,218,186,29,185,210,183,63,183,106,183,105,183,133,182,53,181,231,179,166,178,148,177,93,176, +216,174,7,174,137,174,108,175,176,175,246,174,81,173,0,172,112,172,45,174,8,176,134,177,208,177,98,176,232,174,107,175, +180,177,88,180,77,182,11,183,239,182,244,182,153,183,244,184,10,187,23,189,21,190,68,190,240,190,168,192,143,194,102,195, +62,195,100,195,155,196,160,198,29,201,154,203,89,205,93,206,107,207,229,208,10,211,92,214,142,218,80,222,204,224,84,226, +194,227,192,229,88,232,71,235,140,238,252,241,1,245,100,247,75,249,157,250,200,251,65,254,174,2,179,7,108,11,69,13, +38,14,127,15,21,18,163,21,131,25,9,29,154,31,69,33,193,34,100,36,25,38,29,40,155,42,26,45,70,47,60,49, +226,50,248,51,181,52,184,53,188,55,251,58,91,62,103,64,48,65,216,65,0,67,4,69,34,72,104,75,117,77,112,78, +113,79,221,80,133,82,22,84,49,85,13,86,73,87,200,88,251,89,186,90,203,90,194,89,29,88,82,87,110,88,233,90, +169,92,173,91,39,88,114,84,244,82,84,84,237,86,35,88,10,87,197,84,139,82,239,80,86,80,140,80,5,81,157,81, +200,81,80,80,63,77,58,74,137,72,55,72,139,72,147,72,188,71,201,69,166,66,45,63,212,60,185,59,251,58,75,58, +30,57,94,54,98,50,207,46,119,44,38,43,33,42,90,40,150,37,158,34,189,31,251,28,210,26,32,25,67,23,107,21, +194,19,185,17,63,15,112,12,25,9,56,6,85,5,200,5,88,5,177,2,234,253,221,248,69,246,161,246,235,247,75,248, +118,246,211,241,123,236,207,233,172,234,119,237,8,240,16,240,124,236,222,230,61,226,49,225,34,228,32,232,94,233,185,230, +98,225,166,219,170,216,183,217,124,220,57,222,24,222,46,220,64,217,133,214,186,212,26,213,185,216,25,221,6,222,70,219, +243,215,24,214,79,214,126,216,101,219,157,221,138,222,52,222,193,221,122,222,219,223,28,225,223,226,97,229,251,231,174,234, +82,237,233,238,46,239,166,238,80,238,49,240,243,244,164,249,37,251,156,249,66,247,194,246,138,249,220,253,44,1,54,3, +246,3,179,2,14,1,9,2,242,5,156,10,138,13,75,13,44,11,63,10,216,11,65,15,49,19,160,21,79,21,203,19, +110,19,57,21,49,25,214,29,184,32,66,33,119,32,58,31,72,31,91,34,56,39,51,43,2,45,41,44,139,41,44,40, +200,41,254,44,18,48,246,49,228,49,197,48,54,48,66,48,224,48,222,50,119,53,136,54,77,53,162,50,47,48,141,47, +153,48,200,49,238,49,50,48,143,44,13,41,122,39,78,39,186,39,116,40,80,40,128,38,214,35,133,33,10,33,77,35, +226,37,100,37,148,34,116,32,157,31,13,31,85,30,124,29,206,28,21,28,79,26,190,23,210,21,98,20,105,18,75,16, +142,14,236,12,131,11,87,10,188,8,130,6,214,3,3,1,64,255,0,255,151,254,0,253,250,250,168,248,9,246,77,244, +158,243,165,242,252,240,234,238,64,236,124,233,107,231,194,229,23,228,111,226,99,224,198,221,24,219,147,216,115,214,35,213, +249,211,247,209,121,207,28,205,201,202,178,200,47,199,44,198,140,197,162,196,81,194,31,191,166,188,237,186,66,185,233,183, +232,182,175,181,21,180,222,177,195,174,154,171,60,169,94,167,180,165,113,164,118,163,65,162,203,159,100,155,24,151,122,150, +171,153,244,156,81,157,182,154,58,151,128,149,229,150,246,154,80,160,166,164,129,165,235,162,201,159,35,159,37,162,83,167, +249,170,111,170,215,166,136,163,254,162,76,165,17,168,207,168,179,167,146,166,85,166,206,166,194,167,38,169,10,171,230,172, +157,173,151,173,2,175,136,178,5,182,134,183,148,183,67,184,15,187,148,191,80,196,88,200,131,203,171,205,217,206,205,207, +1,210,153,214,149,220,254,224,75,226,19,226,115,226,4,228,224,230,242,234,239,238,250,240,0,241,93,241,64,244,229,248, +199,252,23,255,244,0,244,2,189,4,164,6,175,9,224,13,107,17,61,18,165,16,184,15,35,18,5,23,233,26,148,27, +19,26,208,24,5,25,190,26,217,29,146,33,99,36,104,37,44,37,238,36,203,37,20,40,7,43,141,45,254,46,92,47, +121,47,125,48,141,50,144,52,140,53,180,53,21,54,118,55,110,57,217,58,54,59,14,59,21,59,58,59,224,58,9,58, +62,57,13,56,188,53,159,51,131,51,62,52,68,51,145,48,34,46,18,45,1,45,26,45,48,45,245,45,62,47,76,47, +56,45,192,42,78,42,16,44,195,45,79,45,10,43,122,40,27,38,253,35,204,34,185,34,242,34,119,34,101,32,226,28, +217,25,171,24,123,24,45,24,165,23,174,22,67,21,7,20,11,19,237,17,211,16,204,15,164,14,171,13,239,12,224,11, +148,10,147,9,157,8,45,7,51,5,7,3,124,1,211,0,218,255,222,253,210,251,78,250,217,248,70,247,188,245,137,244, +33,244,218,243,131,242,211,240,94,240,26,241,90,242,208,243,163,244,142,244,185,244,191,245,31,247,111,248,28,249,231,248, +255,248,1,250,164,250,50,250,75,249,27,248,181,246,230,245,43,246,64,247,67,248,240,247,98,246,92,245,193,245,57,247, +156,249,17,252,66,253,140,253,242,253,101,254,90,255,157,1,67,4,58,6,182,7,128,8,92,8,126,8,132,9,135,10, +81,11,79,12,84,13,94,14,111,15,231,15,197,15,184,15,219,15,111,16,11,18,79,20,160,22,191,24,163,25,247,24, +165,24,1,26,89,28,71,31,110,34,130,36,84,37,162,37,23,37,254,35,83,36,186,38,159,41,94,43,42,43,159,41, +104,40,199,39,6,39,247,38,88,40,200,41,52,42,230,41,249,40,210,39,96,39,182,39,194,40,200,42,211,44,206,45, +105,46,252,46,154,46,151,45,112,45,219,46,162,49,33,52,223,51,2,49,40,46,123,44,134,43,48,43,27,43,160,42, +151,41,133,39,92,36,212,33,239,32,163,32,115,32,144,32,26,32,189,30,99,29,59,28,79,27,102,27,2,28,141,27, +221,25,219,23,1,22,105,20,208,18,61,17,132,16,24,16,18,14,210,10,121,8,38,7,251,5,98,5,104,5,27,5, +240,3,186,1,233,254,16,253,208,252,251,252,170,252,120,251,221,248,139,245,227,242,234,240,108,239,219,238,126,238,4,237, +151,234,245,231,117,229,157,227,132,226,184,225,83,225,36,225,40,224,102,222,200,220,89,219,38,218,229,217,95,218,162,218, +66,218,21,217,121,215,141,214,115,214,80,214,39,214,42,214,183,213,191,212,201,211,194,210,220,209,127,209,213,208,83,207, +82,206,148,206,209,206,246,205,117,204,99,203,75,203,116,203,251,202,178,202,203,203,74,205,33,205,215,202,5,200,232,198, +9,200,115,201,112,201,95,200,219,198,231,196,58,195,5,195,251,196,4,201,43,205,151,206,110,205,13,205,121,207,196,211, +117,216,159,220,143,223,16,225,102,225,238,224,96,224,222,224,20,227,15,230,73,231,81,229,225,225,190,223,175,223,12,225, +67,227,115,229,105,230,190,229,78,228,166,227,231,228,233,231,191,235,80,239,19,241,92,240,72,239,171,240,93,244,36,248, +20,251,134,253,59,255,209,255,35,0,171,1,175,4,3,8,124,10,212,11,87,12,141,12,23,13,71,14,15,16,53,18, +44,20,82,21,166,21,199,21,111,22,7,24,101,26,218,28,193,30,209,31,23,32,34,32,184,32,229,33,15,35,250,35, +178,36,145,36,189,34,247,31,140,30,182,31,5,34,60,35,137,34,146,32,181,30,57,30,79,31,63,33,157,35,20,38, +168,39,138,39,14,38,154,36,248,36,187,39,7,43,133,44,13,44,217,42,78,41,65,39,159,37,40,38,29,41,244,43, +222,43,31,41,44,38,152,36,94,36,0,37,21,38,58,39,118,39,117,37,146,33,25,30,149,28,164,28,71,29,63,29, +142,27,209,24,100,22,150,20,78,19,216,18,20,19,82,19,225,18,103,17,179,15,53,15,180,15,184,15,33,15,246,14, +102,15,199,15,118,15,137,14,201,13,91,13,148,12,237,11,119,12,94,13,1,13,96,11,89,9,168,7,22,7,150,7, +66,8,152,8,26,8,37,6,123,3,141,1,181,0,56,1,127,3,7,6,59,6,126,3,170,255,153,253,1,255,123,2, +48,5,32,6,136,5,119,3,4,1,24,0,102,1,76,4,12,7,67,7,4,5,158,3,59,5,101,8,107,10,16,10, +197,8,79,9,24,12,15,15,46,17,119,18,23,18,50,16,218,14,170,15,196,18,11,23,11,26,28,26,45,24,5,22, +56,21,58,23,88,27,195,30,26,32,209,31,63,30,98,28,190,27,60,28,7,29,26,30,30,31,67,31,129,30,68,29, +73,28,126,28,113,29,16,30,250,30,200,32,33,34,32,34,145,33,102,33,115,34,177,36,57,38,38,38,51,38,0,39, +23,39,105,38,52,38,167,38,46,39,6,39,152,37,222,35,55,35,58,35,254,34,98,34,251,32,183,30,138,28,193,26, +45,25,101,24,76,24,144,23,190,21,13,19,145,15,127,12,73,11,136,11,226,11,42,11,134,8,7,5,222,2,254,1, +45,1,199,0,136,0,145,254,217,250,119,247,127,245,118,244,34,243,71,240,52,236,58,232,170,228,160,225,158,223,251,221, +176,219,5,217,251,213,239,209,230,205,147,203,226,202,107,202,198,200,105,197,105,193,190,189,245,185,121,182,193,180,47,180, +222,178,91,176,209,172,154,168,81,165,184,163,147,162,118,161,232,160,230,159,73,157,235,153,24,151,30,149,166,147,23,146, +68,144,137,142,223,140,83,139,125,138,221,137,64,136,46,134,18,133,44,133,56,134,186,135,135,136,46,136,91,135,120,134, +57,134,149,135,189,137,41,139,52,140,116,141,37,142,93,142,71,143,202,144,13,146,64,147,37,149,215,151,77,154,38,155, +141,154,19,154,160,154,128,156,18,160,96,164,62,167,223,167,104,167,202,167,199,170,30,176,69,181,153,184,226,186,89,189, +148,192,145,196,104,200,153,203,5,207,243,210,73,214,207,216,135,219,225,222,108,226,139,229,1,232,106,234,98,237,129,240, +107,243,164,246,70,250,167,253,120,0,235,2,93,5,97,8,37,12,25,16,173,19,165,22,248,24,10,27,83,29,249,31, +38,35,209,38,67,42,247,44,31,47,217,48,86,50,102,52,65,55,6,58,82,60,188,62,97,65,119,67,83,68,97,68, +47,69,36,72,184,76,188,80,137,82,130,82,91,82,88,83,167,85,251,88,160,92,29,95,106,95,80,94,115,93,172,93, +242,94,168,96,216,97,7,98,149,97,234,96,37,96,168,95,242,95,216,96,170,97,36,98,188,98,170,99,9,100,170,98, +240,95,44,94,67,95,45,98,170,99,188,97,120,93,115,89,122,87,206,87,92,89,85,90,63,89,239,85,209,81,8,79, +162,78,199,79,153,80,135,79,67,76,10,72,173,68,43,67,49,67,46,67,40,65,238,60,155,56,234,53,169,52,19,52, +144,51,47,50,84,47,176,43,205,40,217,39,148,40,81,41,104,40,132,37,192,33,18,31,139,30,243,30,90,30,103,28, +194,25,248,22,201,20,144,19,153,18,48,17,56,15,182,12,84,10,36,9,216,8,205,7,21,5,61,1,226,253,157,252, +77,253,237,253,156,252,30,249,245,244,138,242,249,242,244,244,136,246,151,246,240,244,163,242,68,241,66,241,68,242,202,243, +96,244,215,242,88,240,170,238,196,237,202,236,109,235,253,233,72,233,36,233,204,231,207,228,95,226,238,225,140,226,226,226, +93,226,74,225,143,224,59,224,167,223,65,223,186,223,87,224,23,224,202,222,176,220,221,218,72,218,225,217,18,216,73,213, +193,210,191,208,154,206,252,202,151,197,191,192,144,190,30,190,102,189,42,187,220,182,172,177,11,174,200,172,52,173,201,174, +2,176,177,174,42,171,102,168,15,169,123,173,24,179,82,182,92,182,239,181,84,184,140,190,215,197,182,201,36,201,116,199, +166,199,138,202,131,207,145,211,177,210,44,204,4,195,117,187,34,185,44,188,221,191,11,191,58,184,227,173,172,165,226,164, +248,170,71,178,58,182,22,182,34,180,226,179,251,182,100,188,213,194,70,201,75,206,139,209,202,211,115,213,104,215,197,218, +180,222,188,225,2,228,185,229,150,230,68,231,31,232,156,232,109,233,105,235,46,237,121,237,62,237,215,237,229,239,13,243, +149,245,119,246,224,246,249,247,247,249,65,253,89,1,135,4,113,6,32,8,216,9,90,11,131,12,54,13,23,14,193,15, +67,17,192,17,158,17,173,16,170,14,47,13,216,13,97,16,163,19,0,22,75,22,193,21,141,22,40,25,128,29,60,35, +50,40,151,42,119,43,156,44,200,46,56,50,31,54,26,57,218,58,135,59,90,59,196,59,204,61,43,64,164,65,104,66, +140,66,103,66,220,66,150,67,158,67,52,67,173,66,240,65,108,65,221,64,248,62,236,59,41,57,75,55,158,54,37,55, +153,55,28,55,73,54,63,53,18,52,120,52,159,55,84,60,164,64,39,67,108,67,175,66,190,66,146,68,171,72,22,78, +173,81,75,81,45,78,202,74,204,72,226,72,83,74,139,75,22,75,146,71,18,65,149,58,52,55,24,55,103,56,144,56, +97,53,117,47,236,41,0,39,11,39,55,41,73,43,36,43,215,40,211,37,156,35,94,35,197,36,96,38,129,39,119,39, +224,36,99,32,254,28,57,28,18,29,211,29,247,28,20,26,118,22,138,19,231,17,213,17,201,18,86,19,180,18,7,17, +9,15,65,14,57,15,22,16,86,15,190,13,20,12,52,10,124,8,102,7,139,6,46,5,179,2,73,255,93,252,208,250, +130,249,72,247,131,244,36,242,212,240,143,240,51,240,149,238,5,236,185,233,200,232,2,234,102,237,65,241,165,242,5,240, +223,235,206,234,64,238,169,243,143,248,93,251,227,249,244,243,222,237,175,236,4,241,215,246,109,249,53,247,13,242,154,236, +7,233,52,233,255,236,41,241,58,242,190,239,6,236,212,233,38,234,198,235,65,237,121,238,214,239,8,241,231,240,193,238, +30,236,206,235,134,238,99,242,125,245,154,246,220,244,99,241,105,239,50,241,57,246,223,251,196,254,56,253,83,249,40,247, +198,248,51,253,80,2,20,6,157,6,136,3,164,255,8,255,169,2,147,7,182,10,148,11,36,11,4,10,94,8,43,7, +52,8,171,11,44,15,110,16,96,15,247,12,19,10,253,7,35,8,226,10,160,14,68,16,246,13,131,9,137,6,233,6, +38,10,149,14,254,17,131,18,19,16,1,13,175,12,90,16,109,21,89,24,51,24,105,22,171,20,23,20,254,20,248,22, +40,25,8,26,124,24,229,21,203,20,136,21,162,22,59,23,32,23,47,22,204,20,134,19,109,18,133,17,31,17,72,17, +104,17,157,16,147,14,219,11,75,9,171,7,191,7,54,9,19,10,118,8,108,4,0,0,14,254,167,255,110,2,93,3, +236,1,253,254,136,251,77,249,187,249,8,252,39,254,133,254,161,252,153,249,110,247,8,247,244,247,61,249,171,249,196,248, +68,247,187,245,72,244,125,243,89,243,210,242,197,241,236,240,16,240,144,238,125,236,63,234,140,232,220,231,72,231,243,229, +133,228,89,227,194,225,247,223,194,222,9,222,154,221,131,221,44,221,42,220,241,218,206,217,238,216,186,216,230,216,168,216, +233,215,235,214,209,213,15,213,207,212,168,212,107,212,241,211,206,210,111,209,166,208,36,208,61,207,13,206,203,204,111,203, +202,201,118,199,216,196,4,195,171,193,179,191,74,189,117,186,59,182,193,177,27,176,195,177,203,179,111,179,110,176,221,172, +4,171,156,171,233,174,222,180,149,186,186,187,254,183,139,179,191,178,62,183,165,190,218,195,200,195,123,191,182,185,160,181, +233,181,28,186,182,190,105,192,247,189,239,184,8,181,35,180,225,180,121,182,94,185,199,187,44,187,129,184,13,183,62,184, +166,186,108,188,196,189,217,191,217,193,86,194,93,194,176,195,18,198,201,200,141,203,112,205,250,205,88,206,171,207,12,210, +26,213,209,215,22,217,13,217,17,217,206,218,232,222,146,227,76,230,11,231,92,231,20,232,247,233,194,237,142,242,122,246, +85,248,6,248,25,247,211,247,47,250,86,252,194,253,220,254,125,255,205,255,57,0,174,0,145,1,83,3,2,5,30,6, +246,7,20,11,242,13,65,15,104,15,69,16,114,19,194,23,141,26,126,27,209,27,163,27,124,27,40,29,195,32,35,36, +145,37,47,37,188,36,4,38,133,40,155,42,154,44,87,47,145,49,4,50,156,49,233,49,141,51,214,53,249,54,26,54, +171,52,42,52,53,52,202,51,190,50,196,49,132,49,143,49,20,49,68,48,99,47,5,46,185,44,216,44,240,45,57,46, +69,45,11,44,96,43,100,43,204,43,189,44,159,46,121,48,165,48,153,47,126,47,67,49,24,52,122,54,254,54,192,53, +55,52,12,51,207,49,125,48,97,47,101,46,252,44,17,42,131,37,145,33,20,32,212,31,44,31,95,30,176,29,147,28, +53,27,69,26,0,26,119,26,121,27,133,28,50,29,183,28,138,26,57,24,234,23,26,25,152,25,114,24,13,22,160,19, +170,18,238,18,157,18,104,17,164,16,141,16,49,16,59,15,80,14,67,14,251,14,45,15,68,14,102,13,122,13,6,14, +102,14,79,14,181,13,67,13,198,13,244,14,224,15,228,15,239,14,227,13,221,13,170,14,51,15,0,15,23,14,103,12, +64,10,126,8,14,8,33,9,71,10,138,9,252,6,160,4,3,4,66,5,75,7,138,8,146,8,97,8,100,8,55,8, +59,8,34,9,226,10,5,13,158,14,126,14,11,13,59,12,56,13,166,15,97,18,21,20,89,20,237,19,66,19,162,18, +31,19,235,20,158,22,91,23,25,23,96,21,184,18,43,17,166,17,33,19,34,20,137,19,156,17,111,16,11,17,240,17, +248,17,222,17,144,18,32,20,187,21,52,22,197,21,206,21,108,22,224,22,138,23,167,24,64,25,242,24,111,24,46,24, +100,24,18,25,167,25,216,25,217,25,146,25,27,25,39,25,192,25,40,26,253,25,57,25,26,24,75,23,3,23,246,22, +62,23,146,23,190,22,149,20,116,18,97,17,164,17,3,19,64,20,44,20,251,18,79,17,191,15,99,15,143,16,36,18, +11,19,184,18,254,16,203,14,107,13,3,13,86,13,36,14,38,14,106,12,210,9,115,7,217,5,148,5,24,6,231,5, +3,5,28,4,194,2,255,0,232,255,174,255,37,0,104,1,30,2,173,0,51,254,195,252,176,252,100,253,31,254,245,253, +235,252,119,251,95,249,53,247,143,246,92,247,220,247,29,247,63,245,242,242,89,241,222,240,10,241,156,241,1,242,43,241, +105,239,36,238,233,237,153,238,191,239,37,240,62,239,236,237,209,236,42,236,165,236,197,237,177,237,51,236,221,234,100,234, +53,234,198,233,39,233,224,232,253,232,218,232,119,232,74,232,228,231,21,231,201,230,46,231,129,231,166,231,175,231,117,231, +81,231,39,231,55,230,86,229,229,229,248,230,32,231,200,230,113,230,238,229,120,229,248,228,49,228,34,228,94,229,134,230, +139,230,177,229,64,228,228,226,189,226,182,227,209,228,106,229,249,228,158,227,123,226,220,225,56,225,21,225,240,225,205,226, +40,227,165,227,82,228,210,228,64,229,197,229,242,230,109,233,54,236,162,237,0,238,159,238,172,239,176,240,101,241,195,241, +47,242,204,242,230,242,57,242,98,241,163,240,236,239,124,239,83,239,64,239,110,239,202,239,220,239,125,239,225,238,149,238, +78,239,223,240,95,242,177,243,222,244,83,245,126,245,178,246,167,248,15,250,224,250,207,251,41,253,218,254,53,0,159,0, +197,0,95,1,238,1,44,2,119,2,173,2,207,2,68,3,121,3,176,2,199,1,220,1,200,2,253,3,251,4,81,5, +75,5,126,5,246,5,196,6,23,8,140,9,228,10,55,12,213,12,52,12,114,11,189,11,171,12,103,13,176,13,150,13, +112,13,88,13,220,12,27,12,3,12,150,12,230,12,214,12,12,13,146,13,209,13,132,13,8,13,236,12,98,13,41,14, +210,14,5,15,204,14,115,14,19,14,221,13,98,14,146,15,99,16,95,16,29,16,226,15,153,15,147,15,239,15,40,16, +232,15,88,15,181,14,39,14,161,13,217,12,201,11,187,10,247,9,178,9,179,9,59,9,30,8,42,7,220,6,230,6, +246,6,203,6,47,6,141,5,112,5,165,5,199,5,204,5,145,5,242,4,87,4,51,4,147,4,71,5,194,5,89,5, +51,4,61,3,24,3,184,3,150,4,173,4,81,3,92,1,77,0,91,0,151,0,110,0,206,255,140,254,186,252,20,251, +103,250,209,250,162,251,211,251,23,251,38,250,159,249,98,249,107,249,18,250,52,251,5,252,206,251,153,250,100,249,64,249, +10,250,215,250,81,251,108,251,191,250,104,249,102,248,123,248,117,249,139,250,5,251,231,250,199,250,237,250,125,251,209,252, +148,254,162,255,177,255,172,255,57,0,56,1,108,2,137,3,33,4,5,4,122,3,4,3,253,2,62,3,129,3,186,3, +197,3,100,3,184,2,31,2,203,1,207,1,63,2,245,2,115,3,71,3,176,2,133,2,3,3,144,3,239,3,119,4, +38,5,193,5,80,6,198,6,57,7,9,8,241,8,83,9,158,9,126,10,115,11,200,11,139,11,14,11,196,10,247,10, +32,11,221,10,191,10,239,10,193,10,28,10,98,9,178,8,108,8,197,8,13,9,228,8,187,8,119,8,196,7,35,7, +243,6,217,6,140,6,235,5,250,4,59,4,191,3,7,3,139,2,234,2,15,3,246,1,168,0,69,0,122,0,197,0, +249,0,201,0,57,0,157,255,9,255,118,254,241,253,141,253,109,253,103,253,8,253,89,252,166,251,201,250,240,249,199,249, +19,250,238,249,54,249,72,248,76,247,93,246,88,245,32,244,76,243,0,243,54,242,142,240,221,238,121,237,36,236,223,234, +170,233,166,232,50,232,242,231,58,231,72,230,108,229,116,228,176,227,124,227,123,227,188,227,114,228,171,228,248,227,124,227, +200,227,117,228,131,229,155,230,222,230,150,230,138,230,169,230,25,231,251,231,59,232,58,231,234,229,211,228,178,227,196,226, +16,226,56,225,106,224,148,223,45,222,244,220,50,221,84,222,246,222,0,223,60,223,77,224,31,226,235,227,95,229,217,230, +39,232,23,233,127,234,132,236,4,238,205,238,171,239,138,240,1,241,97,241,19,242,63,243,174,244,115,245,7,245,56,244, +18,244,234,244,86,246,88,247,154,247,12,248,220,248,40,249,85,249,120,250,29,252,104,253,118,254,108,255,123,0,45,2, +45,4,162,5,146,6,112,7,192,8,39,11,219,13,9,15,254,14,166,15,124,17,252,19,146,22,237,23,146,23,30,23, +192,23,61,25,132,27,6,30,57,31,189,30,117,29,46,28,74,28,231,30,100,34,245,35,247,34,176,32,8,31,179,31, +112,34,54,37,179,38,222,38,72,38,9,38,176,38,164,39,204,40,116,42,189,43,2,44,19,44,74,44,50,44,34,44, +119,44,154,44,92,44,60,44,73,44,37,44,124,43,113,42,221,41,8,42,249,41,124,41,157,41,87,42,146,42,250,41, +243,40,30,40,47,40,218,40,0,41,96,40,94,39,52,38,97,37,252,36,65,36,77,35,237,34,124,34,47,33,199,31, +232,30,143,30,30,31,227,31,16,31,227,28,79,27,240,26,60,27,142,27,222,26,13,25,115,23,126,22,98,21,16,20, +13,19,137,18,101,18,180,17,176,15,160,13,0,13,55,13,104,13,125,13,178,12,201,10,58,9,196,8,124,8,229,7, +249,6,111,5,160,3,8,2,76,0,120,254,46,253,22,252,104,250,78,248,74,246,182,244,194,243,4,243,5,242,248,240, +247,239,212,238,244,237,156,237,94,237,26,237,233,236,144,236,105,236,14,237,225,237,234,237,29,237,223,235,227,234,2,235, +230,235,96,236,247,235,156,234,122,232,185,230,46,230,63,230,131,230,253,230,194,230,55,229,97,227,97,226,171,226,71,228, +239,229,244,229,139,228,7,227,24,226,36,226,16,227,218,227,37,228,62,228,181,227,123,226,184,225,208,225,70,226,67,227, +121,228,186,228,19,228,150,227,157,227,78,228,175,229,159,230,44,230,4,229,17,228,174,227,55,228,114,229,104,230,111,230, +64,229,76,227,68,226,77,227,64,229,128,230,184,230,10,230,197,228,3,228,225,228,66,231,177,233,106,234,38,233,94,231, +107,230,180,230,75,232,141,234,10,236,2,236,226,234,157,233,111,233,226,234,239,236,91,238,252,238,238,238,112,238,104,238, +95,239,240,240,129,242,110,243,76,243,189,242,150,242,216,242,121,243,138,244,94,245,96,245,233,244,107,244,62,244,178,244, +68,245,63,245,254,244,223,244,163,244,211,244,237,245,207,246,147,246,3,246,181,245,143,245,35,246,200,247,127,249,40,250, +134,249,46,248,126,247,126,248,146,250,99,252,7,253,253,251,198,249,23,248,55,248,206,249,143,251,51,252,88,251,234,249, +29,249,63,249,243,249,191,250,90,251,237,251,160,252,26,253,51,253,43,253,232,252,78,252,40,252,52,253,174,254,13,255, +209,253,237,251,168,250,155,250,188,251,123,253,139,254,209,253,227,251,131,250,204,250,105,252,10,254,97,254,107,253,64,252, +159,251,176,251,116,252,72,253,50,253,80,252,136,251,74,251,143,251,12,252,17,252,139,251,95,251,247,251,190,252,59,253, +76,253,228,252,124,252,188,252,159,253,142,254,235,254,82,254,30,253,51,252,221,251,205,251,2,252,99,252,53,252,13,251, +139,249,170,248,209,248,138,249,8,250,15,250,248,249,214,249,122,249,45,249,110,249,32,250,217,250,121,251,222,251,190,251, +67,251,18,251,158,251,175,252,138,253,146,253,8,253,168,252,109,252,204,251,38,251,104,251,41,252,232,251,55,250,63,248, +63,247,64,247,107,247,71,247,11,247,175,246,196,245,162,244,54,244,139,244,252,244,97,245,165,245,70,245,79,244,171,243, +239,243,193,244,107,245,121,245,10,245,180,244,218,244,60,245,116,245,165,245,69,246,74,247,237,247,153,247,204,246,149,246, +79,247,72,248,173,248,101,248,195,247,234,246,5,246,151,245,233,245,153,246,18,247,253,246,67,246,64,245,205,244,154,245, +84,247,201,248,79,249,146,249,76,250,32,251,205,251,223,252,86,254,172,255,35,1,5,3,168,4,197,5,242,6,39,8, +231,8,124,9,137,10,54,12,25,14,44,15,208,14,9,14,44,14,46,15,147,16,30,18,70,19,199,19,53,20,219,20, +139,21,197,22,19,25,212,27,220,29,187,30,36,31,43,32,222,33,78,35,60,36,49,37,45,38,239,38,165,39,52,40, +99,40,181,40,167,41,213,42,206,43,148,44,50,45,208,45,176,46,210,47,30,49,121,50,156,51,95,52,211,52,242,52, +246,52,125,53,139,54,76,55,43,55,119,54,34,54,180,54,116,55,157,55,186,55,86,56,223,56,46,57,188,57,55,58, +78,58,143,58,249,58,219,58,73,58,210,57,178,57,248,57,35,58,89,57,231,55,173,54,163,53,216,52,214,52,18,53, +148,52,128,51,41,50,132,48,26,47,96,46,1,46,170,45,227,44,230,42,52,40,29,38,164,36,69,35,49,34,5,33, +222,30,10,28,108,25,80,23,219,21,196,20,35,19,187,16,255,13,4,11,254,7,114,5,54,3,253,0,202,254,235,251, +160,247,211,242,254,238,60,236,183,233,155,230,130,226,192,221,203,216,204,211,65,207,162,203,118,200,39,197,143,193,98,189, +165,184,253,179,188,175,42,172,246,169,206,168,116,167,228,165,1,165,252,164,128,165,187,165,171,164,48,163,118,163,168,165, +41,168,203,169,77,169,179,165,100,160,53,156,189,154,178,155,247,156,211,155,142,151,132,145,143,139,96,136,51,138,110,143, +213,147,239,148,9,147,111,144,97,144,203,147,90,152,48,156,30,159,192,160,25,161,114,161,138,162,40,164,36,166,46,168, +47,170,169,172,32,175,133,176,177,177,4,180,197,182,219,184,176,186,187,188,189,190,180,192,250,194,213,197,222,200,230,202, +145,203,28,204,158,205,98,208,149,212,103,217,50,221,182,223,211,225,236,227,176,230,44,235,238,240,101,246,134,250,250,252, +122,254,164,0,17,4,53,8,246,12,12,18,128,22,34,26,75,29,210,31,50,34,186,37,213,42,195,48,12,54,31,57, +117,58,71,60,238,62,52,65,119,67,102,70,26,73,15,75,127,76,251,76,15,77,149,78,184,81,26,85,59,88,245,90, +220,92,38,94,49,95,88,96,155,98,242,101,111,104,3,105,61,104,142,102,244,100,33,101,228,102,91,104,168,104,228,103, +66,102,182,100,92,100,98,101,84,103,31,105,114,105,92,104,253,102,245,101,188,101,123,102,196,102,35,101,46,98,22,95, +47,92,163,89,153,87,14,86,26,85,19,84,183,81,69,78,92,75,195,73,57,73,18,73,62,72,48,70,66,67,218,63, +182,60,237,58,49,58,44,57,129,55,34,53,153,49,141,45,89,42,80,40,55,39,111,38,136,36,60,33,12,30,79,27, +253,23,98,20,157,17,185,15,219,13,205,10,59,6,246,1,122,255,124,253,244,250,12,249,14,248,149,246,55,244,184,241, +219,239,13,239,144,238,249,236,131,234,127,232,27,231,254,229,7,229,106,227,150,224,123,221,80,219,90,218,12,218,61,217, +114,215,212,213,66,213,17,213,198,212,143,212,46,212,175,211,202,211,133,212,77,213,247,213,17,214,229,212,5,211,69,210, +182,211,91,214,13,216,204,215,122,214,55,213,206,212,70,214,127,217,64,220,212,220,199,219,131,218,63,218,163,219,16,222, +98,224,46,226,37,227,27,227,3,227,213,227,95,229,99,231,226,233,73,236,47,238,192,239,199,240,89,241,149,242,255,244, +204,247,56,250,196,251,63,252,117,252,99,253,15,255,91,1,59,4,241,6,218,8,24,10,188,10,59,11,223,12,239,15, +32,19,150,21,55,23,221,23,232,23,57,24,37,25,206,26,56,29,68,31,176,31,6,31,188,30,133,31,103,33,247,35, +53,38,103,39,202,39,251,39,117,40,134,41,59,43,54,45,177,46,4,47,120,46,14,46,97,46,67,47,54,48,201,48, +255,48,55,49,115,49,103,49,65,49,129,49,39,50,183,50,180,50,28,50,96,49,181,48,222,47,245,46,43,46,0,45, +37,43,109,41,118,40,175,39,115,38,223,36,91,35,51,34,79,33,107,32,175,31,80,31,199,30,158,29,79,28,97,27, +170,26,247,25,62,25,89,24,46,23,183,21,249,19,98,18,91,17,122,16,45,15,167,13,53,12,159,10,211,8,24,7, +145,5,38,4,151,2,144,0,64,254,92,252,16,251,195,249,42,248,137,246,227,244,245,242,239,240,114,239,252,238,89,239, +119,239,73,238,50,236,150,234,238,233,126,233,200,232,13,232,120,231,174,230,63,229,62,227,99,225,86,224,255,223,220,223, +125,223,155,222,77,221,32,220,141,219,190,219,158,220,138,221,170,221,3,221,24,220,242,218,192,217,78,217,174,217,201,217, +229,216,94,215,237,213,28,213,5,213,47,213,54,213,58,213,84,213,88,213,96,213,219,213,209,214,190,215,100,216,2,217, +142,217,157,217,62,217,1,217,43,217,167,217,71,218,149,218,84,218,245,217,207,217,178,217,219,217,207,218,51,220,12,221, +243,220,96,220,56,220,226,220,197,221,69,222,134,222,170,222,127,222,67,222,75,222,104,222,137,222,218,222,53,223,126,223, +194,223,184,223,47,223,140,222,44,222,77,222,239,222,0,223,76,221,124,218,21,216,132,214,167,213,15,213,105,211,56,208, +71,205,106,204,118,205,24,207,222,207,223,206,152,204,170,202,214,202,0,206,181,210,100,213,217,211,119,207,93,203,2,202, +1,204,124,207,40,209,223,206,78,201,226,195,79,194,217,196,66,200,183,201,224,200,185,198,205,196,145,196,7,198,215,199, +222,200,243,200,178,200,203,200,94,201,90,202,113,203,147,203,77,202,70,201,12,202,11,204,12,206,68,207,254,206,189,205, +68,205,19,206,27,207,201,207,59,208,131,208,188,208,211,208,206,208,85,209,132,210,104,211,241,211,251,212,114,214,232,215, +150,217,66,219,120,220,187,221,110,223,42,225,247,226,10,229,247,230,118,232,100,233,125,233,162,233,67,235,245,237,58,240, +220,241,89,243,212,244,114,246,40,248,211,249,240,251,182,254,97,1,140,3,118,5,247,6,4,8,40,9,136,10,254,11, +130,13,194,14,170,15,229,16,125,18,187,19,222,20,179,22,52,25,216,27,0,30,54,31,38,32,236,33,69,36,89,38, +19,40,62,41,121,41,76,41,133,41,91,42,171,43,235,44,113,45,93,45,250,44,110,44,186,44,155,46,195,48,182,49, +172,49,64,49,240,48,124,49,153,50,52,51,102,51,139,51,14,51,48,50,40,50,3,51,248,51,154,52,120,52,192,51, +165,51,111,52,45,53,158,53,4,54,34,54,225,53,92,53,126,52,190,51,160,51,172,51,137,51,114,51,226,50,69,49, +116,47,108,46,61,46,210,46,194,47,12,48,54,47,119,45,48,43,89,41,219,40,79,41,195,41,147,41,10,40,34,37, +62,34,184,32,174,32,92,33,98,33,216,31,135,29,177,27,161,26,108,26,0,27,89,27,131,26,181,24,197,22,135,21, +78,21,88,21,224,20,0,20,179,18,232,16,128,15,242,14,126,14,233,13,132,13,215,12,165,11,145,10,158,9,107,8, +101,7,231,6,186,6,185,6,66,6,115,4,245,1,103,0,82,0,58,1,58,2,62,2,75,1,117,0,13,0,232,255, +141,0,236,1,209,2,192,2,68,2,202,1,173,1,14,2,90,2,65,2,12,2,170,1,254,0,131,0,126,0,188,0, +40,1,146,1,177,1,193,1,227,1,195,1,157,1,11,2,199,2,72,3,179,3,1,4,169,3,173,2,248,1,104,2, +204,3,3,5,92,5,40,5,205,4,125,4,192,4,230,5,141,7,28,9,250,9,200,9,57,9,92,9,35,10,13,11, +21,12,242,12,45,13,8,13,233,12,227,12,103,13,148,14,114,15,99,15,255,14,239,14,90,15,35,16,213,16,11,17, +234,16,149,16,38,16,26,16,166,16,92,17,239,17,21,18,105,17,111,16,42,16,148,16,54,17,39,18,248,18,182,18, +164,17,244,16,20,17,182,17,109,18,179,18,71,18,127,17,194,16,90,16,124,16,233,16,8,17,156,16,198,15,199,14, +0,14,154,13,81,13,249,12,148,12,217,11,113,10,175,8,90,7,181,6,63,6,120,5,116,4,121,3,112,2,65,1, +58,0,183,255,167,255,162,255,62,255,102,254,97,253,104,252,127,251,202,250,103,250,19,250,85,249,5,248,119,246,30,245, +7,244,254,242,44,242,206,241,125,241,175,240,114,239,33,238,24,237,196,236,244,236,193,236,217,235,188,234,150,233,99,232, +153,231,94,231,21,231,110,230,153,229,135,228,58,227,62,226,228,225,232,225,1,226,244,225,133,225,207,224,36,224,155,223, +72,223,91,223,147,223,92,223,187,222,42,222,213,221,170,221,200,221,48,222,143,222,162,222,140,222,161,222,254,222,111,223, +225,223,130,224,59,225,133,225,44,225,174,224,195,224,165,225,184,226,10,227,150,226,100,226,250,226,215,227,174,228,207,229, +60,231,155,232,178,233,106,234,254,234,2,236,180,237,168,239,100,241,144,242,240,242,252,242,148,243,223,244,72,246,114,247, +87,248,13,249,211,249,199,250,193,251,214,252,96,254,38,0,99,1,230,1,108,2,174,3,105,5,205,6,158,7,105,8, +135,9,163,10,89,11,215,11,146,12,184,13,24,15,87,16,43,17,148,17,241,17,157,18,152,19,205,20,48,22,89,23, +192,23,150,23,143,23,27,24,55,25,135,26,120,27,222,27,6,28,23,28,39,28,142,28,62,29,183,29,248,29,72,30, +107,30,68,30,48,30,48,30,249,29,169,29,117,29,105,29,170,29,17,30,248,29,63,29,145,28,102,28,165,28,2,29, +38,29,225,28,86,28,185,27,54,27,234,26,164,26,63,26,231,25,123,25,142,24,95,23,134,22,243,21,93,21,206,20, +18,20,243,18,228,17,79,17,217,16,12,16,225,14,160,13,168,12,5,12,42,11,208,9,127,8,164,7,239,6,229,5, +127,4,31,3,20,2,45,1,29,0,16,255,94,254,224,253,33,253,249,251,185,250,217,249,125,249,90,249,239,248,232,247, +125,246,73,245,126,244,195,243,251,242,47,242,2,241,111,239,59,238,157,237,223,236,204,235,208,234,235,233,217,232,171,231, +127,230,123,229,209,228,82,228,151,227,175,226,213,225,12,225,96,224,211,223,69,223,216,222,167,222,64,222,87,221,104,220, +245,219,238,219,11,220,1,220,169,219,46,219,186,218,63,218,216,217,202,217,32,218,178,218,52,219,75,219,20,219,29,219, +152,219,68,220,235,220,89,221,122,221,177,221,72,222,248,222,130,223,243,223,70,224,152,224,60,225,36,226,248,226,191,227, +141,228,41,229,163,229,151,230,73,232,49,234,161,235,126,236,69,237,99,238,207,239,94,241,3,243,164,244,3,246,7,247, +215,247,195,248,12,250,167,251,60,253,119,254,74,255,12,0,37,1,130,2,193,3,224,4,35,6,127,7,181,8,185,9, +163,10,170,11,3,13,136,14,226,15,1,17,9,18,14,19,43,20,81,21,55,22,247,22,9,24,105,25,154,26,112,27, +27,28,185,28,103,29,69,30,68,31,67,32,43,33,211,33,48,34,124,34,240,34,155,35,113,36,45,37,110,37,80,37, +95,37,222,37,113,38,164,38,112,38,34,38,242,37,217,37,209,37,210,37,179,37,94,37,229,36,93,36,238,35,193,35, +156,35,27,35,110,34,245,33,127,33,206,32,25,32,115,31,160,30,200,29,42,29,133,28,165,27,192,26,224,25,212,24, +188,23,210,22,11,22,85,21,182,20,249,19,204,18,63,17,201,15,192,14,12,14,95,13,137,12,107,11,234,9,60,8, +225,6,24,6,153,5,242,4,211,3,79,2,214,0,189,255,240,254,52,254,90,253,68,252,255,250,176,249,108,248,69,247, +92,246,162,245,244,244,63,244,69,243,200,241,43,240,42,239,226,238,185,238,28,238,238,236,118,235,26,234,14,233,86,232, +218,231,89,231,154,230,147,229,66,228,218,226,244,225,234,225,39,226,232,225,37,225,87,224,210,223,138,223,70,223,236,222, +167,222,143,222,114,222,15,222,101,221,197,220,119,220,84,220,21,220,218,219,207,219,195,219,150,219,110,219,89,219,127,219, +30,220,235,220,82,221,113,221,188,221,39,222,145,222,30,223,198,223,100,224,2,225,161,225,46,226,172,226,3,227,59,227, +197,227,219,228,9,230,220,230,99,231,204,231,50,232,188,232,142,233,191,234,49,236,89,237,213,237,4,238,137,238,176,239, +76,241,208,242,203,243,131,244,110,245,118,246,115,247,166,248,21,250,82,251,31,252,171,252,92,253,131,254,248,255,44,1, +207,1,35,2,178,2,222,3,101,5,162,6,116,7,89,8,118,9,120,10,79,11,69,12,131,13,228,14,21,16,242,16, +169,17,116,18,76,19,24,20,221,20,175,21,173,22,190,23,137,24,247,24,96,25,15,26,12,27,50,28,33,29,156,29, +219,29,54,30,202,30,140,31,45,32,75,32,25,32,36,32,113,32,160,32,146,32,101,32,80,32,123,32,143,32,41,32, +160,31,138,31,207,31,250,31,220,31,113,31,225,30,126,30,99,30,106,30,93,30,1,30,80,29,137,28,176,27,183,26, +6,26,228,25,185,25,232,24,170,23,110,22,116,21,227,20,129,20,207,19,215,18,11,18,100,17,128,16,116,15,173,14, +65,14,197,13,221,12,176,11,170,10,243,9,106,9,214,8,251,7,229,6,243,5,78,5,194,4,47,4,154,3,223,2, +213,1,159,0,135,255,194,254,92,254,24,254,124,253,66,252,180,250,113,249,203,248,124,248,9,248,69,247,86,246,111,245, +158,244,226,243,83,243,236,242,99,242,123,241,117,240,172,239,43,239,214,238,114,238,130,237,253,235,199,234,148,234,210,234, +145,234,185,233,204,232,21,232,160,231,118,231,147,231,178,231,133,231,15,231,151,230,64,230,26,230,74,230,161,230,141,230, +235,229,94,229,129,229,57,230,233,230,11,231,184,230,142,230,223,230,104,231,241,231,129,232,10,233,123,233,213,233,246,233, +234,233,65,234,55,235,45,236,155,236,187,236,239,236,90,237,251,237,152,238,3,239,136,239,127,240,139,241,30,242,80,242, +168,242,130,243,190,244,200,245,65,246,151,246,122,247,225,248,49,250,18,251,175,251,89,252,58,253,97,254,195,255,48,1, +114,2,116,3,44,4,153,4,47,5,128,6,82,8,211,9,188,10,99,11,2,12,212,12,40,14,227,15,140,17,245,18, +51,20,45,21,207,21,99,22,121,23,72,25,59,27,93,28,97,28,7,28,66,28,73,29,157,30,169,31,53,32,89,32, +93,32,163,32,96,33,127,34,202,35,208,36,254,36,120,36,83,36,45,37,90,38,248,38,251,38,227,38,5,39,70,39, +97,39,96,39,123,39,172,39,208,39,204,39,134,39,56,39,78,39,135,39,72,39,217,38,209,38,215,38,85,38,126,37, +185,36,44,36,252,35,23,36,23,36,166,35,173,34,132,33,240,32,35,33,85,33,5,33,121,32,202,31,202,30,181,29, +228,28,96,28,10,28,132,27,89,26,179,24,60,23,61,22,114,21,140,20,143,19,180,18,242,17,240,16,182,15,167,14, +206,13,1,13,75,12,143,11,135,10,61,9,223,7,143,6,144,5,202,4,162,3,26,2,234,0,18,0,251,254,200,253, +238,252,51,252,58,251,36,250,28,249,17,248,21,247,89,246,193,245,234,244,191,243,148,242,132,241,109,240,123,239,219,238, +63,238,119,237,173,236,192,235,146,234,151,233,29,233,227,232,186,232,98,232,108,231,58,230,195,229,19,230,108,230,118,230, +66,230,227,229,128,229,69,229,108,229,24,230,189,230,146,230,197,229,43,229,19,229,115,229,36,230,134,230,56,230,194,229, +162,229,208,229,77,230,10,231,166,231,11,232,115,232,223,232,50,233,118,233,182,233,32,234,215,234,131,235,208,235,243,235, +39,236,101,236,186,236,37,237,139,237,0,238,126,238,201,238,11,239,164,239,89,240,179,240,180,240,176,240,14,241,252,241, +223,242,255,242,171,242,170,242,27,243,197,243,130,244,22,245,107,245,184,245,25,246,137,246,46,247,12,248,196,248,236,248, +144,248,86,248,243,248,67,250,84,251,93,251,112,250,120,249,107,249,74,250,89,251,39,252,144,252,78,252,156,251,70,251, +179,251,192,252,8,254,172,254,15,254,250,252,154,252,246,252,109,253,137,253,16,253,78,252,238,251,8,252,28,252,225,251, +82,251,154,250,54,250,91,250,159,250,167,250,104,250,198,249,211,248,1,248,164,247,174,247,187,247,50,247,239,245,149,244, +202,243,142,243,128,243,40,243,60,242,16,241,39,240,150,239,43,239,197,238,66,238,156,237,212,236,205,235,182,234,24,234, +229,233,113,233,151,232,207,231,69,231,201,230,53,230,139,229,12,229,253,228,252,228,95,228,56,227,58,226,192,225,154,225, +134,225,95,225,247,224,41,224,18,223,35,222,199,221,4,222,102,222,72,222,117,221,99,220,167,219,122,219,192,219,19,220, +236,219,78,219,169,218,13,218,93,217,236,216,7,217,83,217,98,217,41,217,178,216,25,216,154,215,91,215,82,215,117,215, +162,215,154,215,58,215,141,214,221,213,155,213,234,213,120,214,1,215,82,215,21,215,112,214,78,214,54,215,157,216,181,217, +36,218,240,217,135,217,163,217,151,218,234,219,236,220,78,221,31,221,189,220,223,220,20,222,240,223,86,225,193,225,211,225, +82,226,112,227,12,229,223,230,100,232,62,233,178,233,101,234,190,235,153,237,77,239,78,240,217,240,142,241,145,242,189,243, +55,245,7,247,168,248,170,249,58,250,215,250,5,252,253,253,49,0,184,1,120,2,25,3,253,3,255,4,28,6,152,7, +118,9,25,11,218,11,6,12,171,12,36,14,185,15,225,16,224,17,6,19,57,20,72,21,35,22,249,22,11,24,65,25, +32,26,154,26,75,27,144,28,238,29,212,30,98,31,20,32,16,33,42,34,70,35,99,36,125,37,125,38,56,39,171,39, +51,40,8,41,228,41,146,42,74,43,23,44,152,44,168,44,167,44,232,44,83,45,187,45,68,46,15,47,188,47,194,47, +59,47,195,46,207,46,115,47,69,48,140,48,18,48,101,47,236,46,128,46,21,46,245,45,58,46,138,46,80,46,89,45, +64,44,177,43,154,43,133,43,52,43,164,42,252,41,87,41,113,40,54,39,55,38,201,37,135,37,32,37,134,36,124,35, +30,34,13,33,142,32,86,32,46,32,227,31,37,31,240,29,148,28,107,27,206,26,180,26,124,26,174,25,106,24,2,23, +200,21,1,21,154,20,81,20,255,19,100,19,75,18,12,17,27,16,112,15,240,14,197,14,202,14,79,14,235,12,44,11, +27,10,248,9,244,9,103,9,130,8,148,7,161,6,177,5,238,4,128,4,95,4,20,4,36,3,244,1,81,1,67,1, +32,1,135,0,181,255,44,255,252,254,169,254,7,254,151,253,131,253,70,253,178,252,54,252,26,252,40,252,249,251,137,251, +74,251,84,251,31,251,166,250,153,250,239,250,212,250,33,250,135,249,150,249,48,250,156,250,75,250,182,249,170,249,4,250, +48,250,60,250,161,250,108,251,243,251,131,251,169,250,211,250,31,252,28,253,24,253,202,252,195,252,223,252,244,252,14,253, +103,253,23,254,173,254,182,254,103,254,63,254,121,254,38,255,9,0,164,0,213,0,222,0,227,0,7,1,135,1,75,2, +231,2,59,3,122,3,193,3,236,3,243,3,64,4,43,5,47,6,128,6,77,6,99,6,237,6,124,7,217,7,32,8, +119,8,213,8,10,9,22,9,58,9,161,9,61,10,199,10,232,10,176,10,171,10,19,11,149,11,241,11,41,12,67,12, +90,12,117,12,114,12,107,12,153,12,215,12,0,13,41,13,26,13,169,12,117,12,229,12,70,13,32,13,8,13,99,13, +183,13,150,13,56,13,36,13,126,13,221,13,226,13,154,13,60,13,239,12,211,12,207,12,178,12,137,12,76,12,181,11, +249,10,164,10,187,10,227,10,234,10,132,10,144,9,197,8,206,8,61,9,72,9,205,8,19,8,95,7,226,6,153,6, +86,6,251,5,138,5,29,5,205,4,135,4,53,4,240,3,179,3,71,3,173,2,54,2,18,2,22,2,233,1,93,1, +155,0,235,255,104,255,10,255,202,254,153,254,101,254,26,254,144,253,209,252,66,252,30,252,53,252,64,252,34,252,206,251, +76,251,171,250,19,250,196,249,190,249,173,249,114,249,40,249,166,248,212,247,26,247,209,246,237,246,74,247,133,247,8,247, +1,246,93,245,117,245,216,245,54,246,117,246,81,246,175,245,233,244,128,244,178,244,70,245,162,245,95,245,199,244,94,244, +54,244,16,244,246,243,46,244,151,244,158,244,36,244,170,243,120,243,94,243,70,243,73,243,102,243,129,243,86,243,152,242, +144,241,28,241,127,241,252,241,1,242,190,241,121,241,43,241,207,240,135,240,144,240,7,241,140,241,125,241,228,240,134,240, +192,240,42,241,112,241,171,241,237,241,37,242,61,242,23,242,208,241,219,241,97,242,236,242,24,243,10,243,7,243,22,243, +28,243,22,243,51,243,132,243,171,243,107,243,49,243,119,243,3,244,103,244,147,244,161,244,144,244,122,244,173,244,85,245, +39,246,162,246,169,246,123,246,75,246,56,246,111,246,237,246,130,247,2,248,37,248,161,247,200,246,123,246,21,247,4,248, +163,248,219,248,213,248,152,248,68,248,76,248,241,248,229,249,177,250,16,251,232,250,123,250,113,250,19,251,223,251,90,252, +154,252,219,252,32,253,89,253,143,253,222,253,85,254,209,254,40,255,109,255,218,255,161,0,184,1,212,2,194,3,159,4, +111,5,12,6,147,6,56,7,228,7,156,8,177,9,13,11,25,12,113,12,52,12,242,11,97,12,169,13,76,15,181,16, +105,17,60,17,243,16,138,17,248,18,163,20,63,22,65,23,9,23,60,22,57,22,61,23,102,24,21,25,86,25,124,25, +196,25,24,26,67,26,81,26,108,26,156,26,218,26,51,27,185,27,97,28,233,28,17,29,1,29,35,29,166,29,80,30, +169,30,131,30,86,30,153,30,5,31,58,31,107,31,174,31,162,31,72,31,37,31,101,31,192,31,0,32,26,32,254,31, +186,31,131,31,131,31,176,31,226,31,253,31,236,31,159,31,59,31,243,30,196,30,150,30,136,30,162,30,145,30,254,29, +1,29,28,28,174,27,125,27,18,27,95,26,147,25,182,24,219,23,28,23,81,22,108,21,171,20,255,19,32,19,51,18, +100,17,111,16,65,15,40,14,34,13,21,12,51,11,96,10,14,9,56,7,137,5,110,4,183,3,242,2,210,1,99,0, +234,254,166,253,174,252,3,252,132,251,224,250,181,249,249,247,71,246,65,245,175,244,228,243,166,242,39,241,138,239,229,237, +119,236,108,235,146,234,101,233,179,231,252,229,187,228,201,227,211,226,201,225,144,224,11,223,115,221,1,220,160,218,46,217, +171,215,30,214,161,212,70,211,238,209,99,208,147,206,160,204,217,202,102,201,24,200,170,198,254,196,23,195,61,193,221,191, +6,191,86,190,109,189,36,188,179,186,144,185,212,184,59,184,210,183,167,183,64,183,108,182,174,181,84,181,54,181,69,181, +79,181,0,181,158,180,177,180,36,181,190,181,148,182,129,183,50,184,179,184,76,185,52,186,126,187,218,188,210,189,129,190, +72,191,44,192,44,193,136,194,29,196,90,197,3,198,132,198,119,199,7,201,187,202,22,204,56,205,136,206,17,208,139,209, +215,210,62,212,23,214,22,216,159,217,212,218,99,220,90,222,43,224,173,225,63,227,41,229,72,231,50,233,189,234,77,236, +80,238,145,240,143,242,43,244,193,245,187,247,35,250,173,252,51,255,172,1,214,3,131,5,32,7,83,9,73,12,154,15, +149,18,189,20,49,22,136,23,80,25,208,27,231,30,219,33,222,35,229,36,190,37,47,39,73,41,164,43,215,45,136,47, +141,48,82,49,144,50,91,52,43,54,164,55,190,56,141,57,103,58,138,59,159,60,93,61,10,62,178,62,229,62,182,62, +182,62,245,62,34,63,64,63,98,63,76,63,236,62,115,62,244,61,128,61,79,61,89,61,48,61,163,60,218,59,240,58, +8,58,124,57,92,57,26,57,52,56,207,54,114,53,129,52,2,52,175,51,48,51,60,50,178,48,223,46,116,45,199,44, +117,44,203,43,89,42,60,40,36,38,174,36,201,35,9,35,47,34,24,33,163,31,230,29,32,28,126,26,28,25,246,23, +222,22,141,21,198,19,157,17,138,15,211,13,64,12,170,10,33,9,105,7,78,5,48,3,105,1,217,255,105,254,13,253, +95,251,52,249,20,247,146,245,168,244,196,243,59,242,7,240,229,237,106,236,109,235,160,234,232,233,19,233,223,231,74,230, +190,228,219,227,195,227,198,227,53,227,39,226,29,225,106,224,29,224,4,224,236,223,229,223,226,223,142,223,252,222,201,222, +54,223,209,223,43,224,71,224,106,224,176,224,247,224,65,225,207,225,173,226,127,227,4,228,88,228,208,228,164,229,179,230, +177,231,158,232,174,233,188,234,119,235,254,235,218,236,84,238,6,240,49,241,191,241,85,242,79,243,124,244,196,245,31,247, +62,248,7,249,196,249,158,250,175,251,54,253,247,254,87,0,68,1,40,2,50,3,115,4,2,6,160,7,249,8,41,10, +88,11,107,12,121,13,209,14,96,16,196,17,226,18,249,19,40,21,83,22,129,23,223,24,82,26,132,27,115,28,96,29, +103,30,149,31,237,32,25,34,187,34,28,35,196,35,189,36,195,37,191,38,147,39,6,40,30,40,53,40,165,40,123,41, +96,42,206,42,141,42,231,41,97,41,102,41,249,41,133,42,105,42,177,41,215,40,21,40,129,39,91,39,143,39,132,39, +210,38,170,37,111,36,108,35,190,34,49,34,126,33,161,32,175,31,148,30,68,29,224,27,161,26,185,25,29,25,113,24, +104,23,12,22,158,20,107,19,166,18,30,18,99,17,63,16,210,14,105,13,72,12,92,11,93,10,69,9,40,8,210,6, +73,5,18,4,80,3,126,2,77,1,252,255,184,254,116,253,64,252,60,251,90,250,109,249,87,248,22,247,194,245,133,244, +134,243,181,242,207,241,186,240,164,239,198,238,58,238,200,237,227,236,120,235,72,234,204,233,139,233,30,233,162,232,225,231, +139,230,19,229,65,228,40,228,86,228,89,228,228,227,232,226,205,225,58,225,128,225,53,226,177,226,193,226,135,226,2,226, +108,225,91,225,225,225,107,226,167,226,179,226,152,226,71,226,235,225,212,225,52,226,220,226,99,227,169,227,218,227,248,227, +7,228,85,228,21,229,39,230,57,231,215,231,211,231,218,231,170,232,242,233,236,234,125,235,242,235,108,236,233,236,108,237, +10,238,231,238,210,239,91,240,142,240,232,240,151,241,113,242,84,243,27,244,174,244,63,245,241,245,156,246,63,247,17,248, +11,249,239,249,166,250,72,251,238,251,161,252,86,253,9,254,209,254,175,255,114,0,252,0,113,1,247,1,145,2,45,3, +189,3,54,4,139,4,207,4,55,5,208,5,97,6,184,6,236,6,38,7,120,7,238,7,121,8,207,8,209,8,196,8, +219,8,234,8,225,8,238,8,255,8,192,8,40,8,147,7,80,7,80,7,58,7,193,6,253,5,66,5,165,4,22,4, +189,3,152,3,34,3,254,1,138,0,85,255,109,254,152,253,165,252,75,251,92,249,50,247,76,245,150,243,197,241,35,240, +0,239,231,237,81,236,127,234,203,232,39,231,180,229,215,228,116,228,248,227,241,226,77,225,86,223,168,221,193,220,128,220, +44,220,18,219,75,217,161,215,144,214,252,213,222,213,46,214,71,214,149,213,163,212,90,212,165,212,200,212,152,212,123,212, +128,212,82,212,248,211,196,211,162,211,80,211,246,210,188,210,114,210,27,210,226,209,142,209,17,209,245,208,95,209,170,209, +88,209,147,208,219,207,184,207,47,208,187,208,46,209,168,209,198,209,63,209,234,208,182,209,93,211,246,212,235,213,46,214, +63,214,201,214,228,215,51,217,135,218,218,219,14,221,250,221,177,222,149,223,5,225,219,226,187,228,160,230,160,232,158,234, +161,236,192,238,224,240,14,243,134,245,20,248,55,250,253,251,207,253,221,255,29,2,93,4,90,6,20,8,196,9,120,11, +54,13,47,15,106,17,163,19,159,21,76,23,196,24,73,26,7,28,241,29,227,31,145,33,170,34,83,35,14,36,21,37, +70,38,112,39,111,40,86,41,98,42,120,43,46,44,147,44,44,45,55,46,122,47,140,48,37,49,114,49,237,49,153,50, +27,51,131,51,48,52,250,52,108,53,139,53,191,53,71,54,25,55,238,55,100,56,116,56,168,56,96,57,50,58,140,58, +146,58,176,58,209,58,184,58,158,58,204,58,31,59,74,59,41,59,213,58,163,58,178,58,167,58,59,58,164,57,11,57, +96,56,206,55,100,55,149,54,26,53,145,51,129,50,170,49,183,48,151,47,49,46,155,44,36,43,217,41,140,40,68,39, +25,38,221,36,91,35,144,33,156,31,190,29,41,28,182,26,37,25,107,23,149,21,168,19,196,17,11,16,136,14,66,13, +51,12,32,11,200,9,46,8,173,6,153,5,221,4,28,4,51,3,61,2,61,1,44,0,41,255,84,254,185,253,83,253, +222,252,8,252,255,250,55,250,192,249,95,249,241,248,112,248,246,247,156,247,32,247,66,246,106,245,32,245,47,245,21,245, +170,244,253,243,54,243,164,242,110,242,111,242,114,242,64,242,173,241,217,240,20,240,151,239,128,239,161,239,118,239,204,238, +9,238,126,237,28,237,235,236,0,237,45,237,56,237,40,237,28,237,45,237,105,237,202,237,57,238,170,238,18,239,121,239, +243,239,122,240,249,240,112,241,238,241,127,242,52,243,246,243,156,244,57,245,254,245,236,246,239,247,249,248,234,249,199,250, +201,251,246,252,23,254,45,255,75,0,57,1,217,1,119,2,102,3,152,4,199,5,181,6,78,7,172,7,6,8,162,8, +167,9,183,10,74,11,119,11,179,11,13,12,105,12,218,12,88,13,171,13,222,13,13,14,28,14,23,14,62,14,134,14, +160,14,136,14,134,14,173,14,207,14,189,14,134,14,86,14,54,14,38,14,65,14,117,14,103,14,10,14,200,13,211,13, +220,13,182,13,162,13,195,13,215,13,177,13,142,13,150,13,123,13,23,13,211,12,231,12,249,12,212,12,155,12,51,12, +138,11,15,11,8,11,5,11,166,10,14,10,105,9,198,8,58,8,203,7,104,7,254,6,100,6,149,5,220,4,79,4, +150,3,169,2,220,1,21,1,7,0,230,254,4,254,67,253,106,252,111,251,67,250,245,248,214,247,29,247,136,246,166,245, +114,244,80,243,111,242,149,241,172,240,232,239,66,239,122,238,157,237,213,236,35,236,140,235,29,235,177,234,37,234,147,233, +20,233,184,232,142,232,115,232,42,232,194,231,111,231,64,231,55,231,68,231,64,231,39,231,26,231,21,231,31,231,97,231, +197,231,248,231,231,231,202,231,221,231,52,232,158,232,205,232,207,232,231,232,19,233,60,233,108,233,161,233,218,233,49,234, +147,234,214,234,11,235,74,235,113,235,157,235,16,236,143,236,190,236,209,236,29,237,142,237,233,237,24,238,51,238,127,238, +38,239,223,239,84,240,162,240,28,241,200,241,104,242,232,242,145,243,140,244,139,245,64,246,205,246,110,247,37,248,242,248, +218,249,210,250,211,251,191,252,115,253,27,254,252,254,246,255,227,0,246,1,34,3,8,4,178,4,114,5,67,6,19,7, +15,8,33,9,7,10,197,10,111,11,247,11,141,12,109,13,93,14,8,15,126,15,231,15,76,16,196,16,94,17,252,17, +109,18,164,18,193,18,244,18,62,19,114,19,133,19,164,19,231,19,46,20,76,20,55,20,31,20,45,20,70,20,71,20, +58,20,32,20,227,19,160,19,129,19,112,19,87,19,60,19,1,19,143,18,36,18,254,17,15,18,40,18,29,18,214,17, +110,17,19,17,221,16,226,16,20,17,25,17,189,16,52,16,182,15,67,15,231,14,188,14,169,14,122,14,5,14,71,13, +143,12,44,12,249,11,177,11,79,11,211,10,38,10,108,9,207,8,55,8,150,7,254,6,82,6,115,5,149,4,234,3, +72,3,116,2,112,1,106,0,146,255,230,254,62,254,141,253,204,252,211,251,167,250,166,249,9,249,148,248,248,247,47,247, +96,246,145,245,180,244,240,243,129,243,61,243,187,242,251,241,78,241,200,240,83,240,230,239,111,239,244,238,177,238,161,238, +113,238,16,238,187,237,149,237,159,237,195,237,207,237,190,237,200,237,230,237,233,237,237,237,18,238,37,238,27,238,51,238, +115,238,163,238,187,238,208,238,235,238,9,239,36,239,76,239,172,239,52,240,145,240,166,240,170,240,200,240,6,241,89,241, +177,241,25,242,163,242,15,243,18,243,247,242,68,243,243,243,139,244,220,244,34,245,147,245,21,246,119,246,186,246,250,246, +70,247,196,247,136,248,63,249,157,249,229,249,100,250,241,250,108,251,12,252,240,252,240,253,211,254,102,255,186,255,45,0, +251,0,4,2,17,3,227,3,85,4,175,4,89,5,55,6,3,7,200,7,141,8,55,9,232,9,193,10,131,11,10,12, +149,12,65,13,221,13,92,14,226,14,119,15,226,15,252,15,251,15,74,16,223,16,64,17,51,17,1,17,1,17,79,17, +188,17,248,17,233,17,201,17,201,17,217,17,212,17,183,17,172,17,203,17,208,17,117,17,252,16,205,16,220,16,227,16, +190,16,94,16,232,15,185,15,208,15,202,15,135,15,62,15,6,15,213,14,172,14,131,14,86,14,49,14,7,14,197,13, +115,13,25,13,191,12,138,12,116,12,62,12,223,11,134,11,50,11,218,10,147,10,76,10,239,9,160,9,90,9,220,8, +59,8,199,7,108,7,229,6,70,6,191,5,69,5,184,4,26,4,116,3,202,2,34,2,131,1,240,0,77,0,145,255, +227,254,89,254,183,253,208,252,207,251,245,250,91,250,246,249,147,249,244,248,8,248,237,246,249,245,134,245,122,245,88,245, +242,244,94,244,141,243,150,242,245,241,217,241,227,241,199,241,106,241,199,240,27,240,185,239,158,239,158,239,179,239,180,239, +113,239,17,239,210,238,180,238,177,238,212,238,255,238,18,239,25,239,21,239,5,239,6,239,42,239,98,239,155,239,185,239, +171,239,156,239,197,239,25,240,89,240,106,240,111,240,147,240,195,240,206,240,217,240,57,241,204,241,39,242,57,242,70,242, +116,242,208,242,76,243,181,243,1,244,84,244,170,244,215,244,223,244,3,245,130,245,85,246,24,247,127,247,179,247,249,247, +86,248,215,248,157,249,131,250,79,251,244,251,98,252,162,252,18,253,228,253,217,254,191,255,150,0,57,1,156,1,250,1, +131,2,68,3,74,4,89,5,0,6,72,6,155,6,32,7,190,7,129,8,114,9,73,10,171,10,174,10,224,10,155,11, +126,12,249,12,31,13,104,13,239,13,100,14,149,14,173,14,243,14,93,15,158,15,167,15,184,15,230,15,18,16,44,16, +51,16,60,16,105,16,159,16,151,16,95,16,58,16,38,16,35,16,85,16,147,16,133,16,61,16,5,16,235,15,240,15, +18,16,36,16,6,16,214,15,159,15,92,15,51,15,55,15,65,15,50,15,15,15,225,14,178,14,124,14,51,14,10,14, +54,14,115,14,83,14,211,13,73,13,3,13,20,13,61,13,40,13,208,12,96,12,217,11,82,11,17,11,24,11,15,11, +183,10,37,10,147,9,41,9,222,8,151,8,98,8,57,8,218,7,32,7,72,6,173,5,100,5,45,5,186,4,23,4, +128,3,246,2,93,2,203,1,71,1,192,0,84,0,11,0,158,255,0,255,113,254,227,253,54,253,181,252,150,252,122,252, +15,252,106,251,196,250,91,250,75,250,81,250,44,250,247,249,201,249,133,249,76,249,97,249,182,249,250,249,244,249,145,249, +12,249,219,248,46,249,189,249,25,250,14,250,190,249,124,249,143,249,252,249,145,250,253,250,20,251,250,250,242,250,43,251, +181,251,85,252,164,252,162,252,173,252,228,252,39,253,125,253,227,253,41,254,85,254,141,254,186,254,224,254,73,255,238,255, +110,0,171,0,208,0,249,0,54,1,158,1,51,2,233,2,137,3,204,3,195,3,217,3,62,4,211,4,130,5,41,6, +143,6,180,6,217,6,50,7,210,7,139,8,2,9,44,9,87,9,165,9,8,10,154,10,88,11,226,11,252,11,233,11, +27,12,188,12,139,13,31,14,106,14,164,14,215,14,249,14,69,15,232,15,148,16,230,16,226,16,220,16,12,17,103,17, +195,17,21,18,86,18,113,18,126,18,171,18,243,18,65,19,136,19,140,19,46,19,226,18,15,19,100,19,111,19,54,19, +230,18,139,18,50,18,238,17,210,17,232,17,232,17,116,17,195,16,91,16,69,16,57,16,11,16,155,15,232,14,76,14, +2,14,207,13,128,13,30,13,159,12,247,11,87,11,234,10,147,10,35,10,146,9,3,9,139,8,23,8,150,7,26,7, +163,6,17,6,105,5,207,4,78,4,229,3,129,3,245,2,59,2,132,1,245,0,145,0,72,0,233,255,72,255,127,254, +188,253,18,253,164,252,117,252,49,252,156,251,218,250,12,250,72,249,202,248,150,248,74,248,179,247,4,247,105,246,246,245, +169,245,86,245,236,244,152,244,86,244,236,243,100,243,244,242,169,242,125,242,94,242,23,242,165,241,83,241,44,241,230,240, +116,240,41,240,60,240,142,240,202,240,172,240,72,240,231,239,204,239,16,240,135,240,207,240,194,240,159,240,160,240,182,240, +195,240,198,240,226,240,58,241,160,241,182,241,125,241,83,241,119,241,222,241,88,242,162,242,179,242,182,242,174,242,168,242, +21,243,28,244,7,245,27,245,125,244,212,243,190,243,138,244,230,245,235,246,231,246,251,245,0,245,211,244,158,245,236,246, +54,248,235,248,131,248,71,247,110,246,222,246,86,248,242,249,196,250,88,250,53,249,118,248,170,248,129,249,78,250,167,250, +161,250,146,250,143,250,140,250,196,250,111,251,73,252,214,252,221,252,156,252,159,252,51,253,1,254,137,254,206,254,28,255, +121,255,171,255,175,255,223,255,126,0,80,1,235,1,29,2,234,1,134,1,119,1,12,2,230,2,140,3,224,3,206,3, +89,3,251,2,32,3,184,3,147,4,113,5,191,5,59,5,130,4,89,4,213,4,132,5,215,5,170,5,109,5,98,5, +40,5,168,4,133,4,19,5,199,5,7,6,180,5,9,5,134,4,158,4,56,5,198,5,237,5,192,5,84,5,167,4, +7,4,19,4,221,4,163,5,176,5,3,5,19,4,128,3,190,3,139,4,28,5,255,4,97,4,171,3,80,3,129,3, +215,3,228,3,186,3,128,3,42,3,214,2,190,2,209,2,209,2,156,2,42,2,175,1,121,1,124,1,88,1,216,0, +34,0,152,255,130,255,149,255,58,255,107,254,195,253,143,253,124,253,42,253,156,252,20,252,185,251,87,251,203,250,79,250, +18,250,221,249,114,249,201,248,9,248,135,247,102,247,56,247,151,246,205,245,66,245,234,244,154,244,68,244,197,243,23,243, +116,242,235,241,92,241,217,240,153,240,125,240,21,240,45,239,24,238,80,237,233,236,171,236,85,236,169,235,135,234,62,233, +62,232,153,231,25,231,121,230,121,229,35,228,189,226,81,225,221,223,177,222,208,221,133,220,87,218,178,215,91,213,253,211, +181,211,152,211,120,210,87,208,37,206,120,204,121,203,95,203,251,203,113,204,222,203,18,202,214,199,143,198,12,199,158,200, +183,201,105,201,37,200,6,199,184,198,72,199,179,200,197,202,150,204,36,205,145,204,42,204,8,205,254,206,231,208,228,209, +0,210,191,209,162,209,12,210,14,211,74,212,83,213,206,213,140,213,2,213,19,213,255,213,84,215,202,216,20,218,120,218, +202,217,45,217,228,217,237,219,52,222,173,223,41,224,75,224,160,224,79,225,138,226,137,228,235,230,198,232,125,233,96,233, +145,233,2,235,118,237,212,239,121,241,149,242,147,243,168,244,233,245,142,247,234,249,203,252,69,255,179,0,148,1,235,2, +47,5,24,8,250,10,77,13,19,15,145,16,240,17,105,19,106,21,23,24,240,26,33,29,59,30,185,30,168,31,163,33, +87,36,228,38,138,40,63,41,200,41,216,42,108,44,53,46,236,47,27,49,119,49,98,49,113,49,218,49,159,50,165,51, +109,52,86,52,108,51,150,50,197,50,230,51,242,52,63,53,8,53,158,52,28,52,220,51,42,52,194,52,59,53,83,53, +201,52,195,51,28,51,101,51,37,52,136,52,69,52,162,51,23,51,231,50,244,50,21,51,69,51,100,51,47,51,160,50, +2,50,180,49,219,49,42,50,15,50,81,49,80,48,166,47,124,47,106,47,8,47,100,46,167,45,188,44,173,43,174,42, +199,41,235,40,41,40,79,39,15,38,169,36,160,35,222,34,251,33,211,32,133,31,66,30,43,29,19,28,187,26,75,25, +250,23,165,22,50,21,171,19,2,18,70,16,194,14,122,13,58,12,11,11,225,9,89,8,114,6,206,4,198,3,21,3, +126,2,231,1,1,1,158,255,46,254,89,253,45,253,32,253,213,252,72,252,123,251,161,250,43,250,37,250,30,250,240,249, +200,249,156,249,86,249,43,249,42,249,33,249,16,249,10,249,249,248,235,248,26,249,104,249,132,249,118,249,116,249,126,249, +110,249,60,249,39,249,121,249,249,249,26,250,187,249,67,249,0,249,250,248,35,249,98,249,165,249,205,249,158,249,36,249, +233,248,75,249,255,249,134,250,182,250,185,250,224,250,78,251,210,251,78,252,220,252,85,253,127,253,157,253,31,254,245,254, +204,255,108,0,194,0,7,1,176,1,202,2,230,3,197,4,136,5,73,6,11,7,229,7,236,8,9,10,4,11,195,11, +117,12,75,13,56,14,22,15,230,15,186,16,132,17,40,18,176,18,95,19,82,20,44,21,169,21,15,22,150,22,22,23, +164,23,92,24,194,24,151,24,147,24,29,25,159,25,195,25,211,25,191,25,81,25,244,24,15,25,82,25,94,25,43,25, +189,24,35,24,166,23,119,23,110,23,68,23,238,22,144,22,58,22,215,21,112,21,44,21,254,20,182,20,87,20,1,20, +178,19,93,19,254,18,160,18,78,18,0,18,166,17,78,17,3,17,158,16,18,16,137,15,14,15,155,14,60,14,206,13, +27,13,103,12,7,12,179,11,16,11,76,10,149,9,207,8,7,8,93,7,170,6,198,5,212,4,243,3,22,3,32,2, +245,0,175,255,148,254,179,253,226,252,254,251,236,250,157,249,63,248,29,247,68,246,132,245,167,244,154,243,127,242,112,241, +84,240,62,239,118,238,224,237,12,237,253,235,255,234,24,234,76,233,206,232,131,232,17,232,111,231,190,230,255,229,94,229, +36,229,48,229,19,229,174,228,55,228,200,227,96,227,50,227,96,227,163,227,152,227,83,227,24,227,227,226,182,226,209,226, +55,227,142,227,170,227,159,227,133,227,135,227,198,227,27,228,103,228,190,228,15,229,56,229,89,229,144,229,201,229,23,230, +141,230,244,230,51,231,120,231,176,231,192,231,2,232,173,232,89,233,184,233,253,233,82,234,183,234,76,235,34,236,10,237, +212,237,119,238,244,238,107,239,23,240,13,241,37,242,44,243,10,244,196,244,112,245,43,246,21,247,55,248,113,249,154,250, +154,251,111,252,68,253,72,254,111,255,143,0,175,1,211,2,202,3,138,4,89,5,92,6,102,7,88,8,60,9,11,10, +185,10,107,11,71,12,40,13,213,13,110,14,48,15,237,15,99,16,198,16,88,17,238,17,106,18,252,18,142,19,205,19, +217,19,13,20,105,20,203,20,58,21,158,21,199,21,191,21,169,21,161,21,207,21,45,22,96,22,61,22,5,22,224,21, +181,21,145,21,155,21,179,21,164,21,123,21,87,21,47,21,246,20,194,20,167,20,152,20,115,20,38,20,211,19,154,19, +100,19,17,19,179,18,97,18,4,18,145,17,54,17,252,16,163,16,29,16,158,15,55,15,197,14,67,14,193,13,53,13, +151,12,250,11,97,11,190,10,10,10,73,9,124,8,179,7,245,6,44,6,75,5,106,4,157,3,208,2,242,1,17,1, +58,0,82,255,77,254,85,253,133,252,179,251,194,250,218,249,15,249,50,248,57,247,87,246,147,245,210,244,42,244,157,243, +228,242,4,242,99,241,1,241,111,240,171,239,26,239,187,238,67,238,190,237,86,237,248,236,159,236,103,236,60,236,252,235, +192,235,159,235,128,235,98,235,91,235,80,235,42,235,11,235,13,235,21,235,26,235,37,235,39,235,26,235,29,235,48,235, +53,235,59,235,101,235,161,235,204,235,231,235,4,236,49,236,117,236,186,236,231,236,17,237,86,237,166,237,232,237,47,238, +130,238,210,238,37,239,131,239,225,239,66,240,184,240,52,241,169,241,42,242,185,242,58,243,193,243,114,244,35,245,159,245, +25,246,202,246,145,247,62,248,235,248,180,249,124,250,52,251,250,251,219,252,183,253,116,254,46,255,7,0,237,0,193,1, +145,2,110,3,58,4,239,4,183,5,152,6,98,7,23,8,224,8,176,9,101,10,19,11,209,11,128,12,28,13,187,13, +83,14,216,14,99,15,249,15,124,16,233,16,85,17,184,17,13,18,101,18,182,18,239,18,45,19,131,19,206,19,250,19, +37,20,92,20,133,20,150,20,147,20,131,20,136,20,171,20,197,20,190,20,176,20,150,20,96,20,54,20,63,20,79,20, +51,20,247,19,192,19,154,19,137,19,116,19,54,19,225,18,171,18,141,18,81,18,237,17,140,17,74,17,22,17,205,16, +110,16,19,16,190,15,79,15,211,14,114,14,23,14,144,13,254,12,143,12,26,12,116,11,199,10,59,10,184,9,33,9, +121,8,195,7,5,7,83,6,174,5,1,5,73,4,140,3,199,2,250,1,42,1,85,0,125,255,180,254,248,253,47,253, +85,252,123,251,171,250,229,249,32,249,87,248,151,247,233,246,58,246,119,245,185,244,25,244,133,243,238,242,87,242,192,241, +37,241,149,240,29,240,182,239,83,239,227,238,96,238,237,237,166,237,110,237,34,237,215,236,166,236,114,236,43,236,237,235, +207,235,200,235,197,235,174,235,124,235,77,235,63,235,71,235,71,235,59,235,45,235,42,235,56,235,64,235,54,235,56,235, +94,235,138,235,162,235,187,235,216,235,231,235,250,235,46,236,116,236,171,236,215,236,4,237,54,237,123,237,206,237,30,238, +113,238,215,238,58,239,133,239,209,239,62,240,196,240,82,241,219,241,87,242,210,242,92,243,237,243,132,244,53,245,250,245, +174,246,81,247,252,247,182,248,120,249,72,250,26,251,221,251,159,252,113,253,70,254,21,255,230,255,187,0,146,1,113,2, +71,3,1,4,192,4,169,5,150,6,90,7,15,8,213,8,151,9,72,10,2,11,198,11,111,12,251,12,143,13,61,14, +226,14,90,15,190,15,70,16,228,16,93,17,179,17,22,18,127,18,204,18,22,19,116,19,195,19,246,19,55,20,138,20, +199,20,234,20,20,21,70,21,112,21,145,21,168,21,183,21,204,21,227,21,238,21,251,21,19,22,30,22,16,22,252,21, +244,21,243,21,237,21,215,21,187,21,172,21,155,21,102,21,40,21,16,21,2,21,198,20,120,20,60,20,238,19,124,19, +29,19,227,18,151,18,29,18,155,17,36,17,176,16,60,16,192,15,50,15,161,14,29,14,160,13,28,13,137,12,229,11, +58,11,149,10,236,9,60,9,155,8,2,8,74,7,121,6,186,5,10,5,72,4,135,3,228,2,58,2,101,1,134,0, +207,255,52,255,138,254,199,253,1,253,69,252,141,251,216,250,39,250,120,249,203,248,42,248,147,247,247,246,82,246,177,245, +23,245,138,244,25,244,179,243,49,243,154,242,22,242,171,241,69,241,230,240,139,240,46,240,223,239,161,239,81,239,244,238, +190,238,171,238,122,238,45,238,251,237,213,237,157,237,118,237,108,237,76,237,25,237,2,237,249,236,211,236,172,236,168,236, +162,236,141,236,144,236,167,236,166,236,164,236,206,236,7,237,26,237,25,237,49,237,101,237,155,237,202,237,248,237,45,238, +112,238,193,238,18,239,94,239,169,239,9,240,134,240,2,241,95,241,181,241,58,242,224,242,116,243,249,243,150,244,69,245, +221,245,110,246,31,247,225,247,143,248,56,249,246,249,185,250,105,251,15,252,195,252,130,253,64,254,245,254,167,255,108,0, +63,1,246,1,139,2,53,3,8,4,201,4,90,5,242,5,171,6,101,7,12,8,167,8,39,9,149,9,39,10,222,10, +117,11,221,11,84,12,228,12,88,13,164,13,255,13,127,14,2,15,98,15,160,15,223,15,57,16,152,16,220,16,20,17, +95,17,171,17,226,17,22,18,81,18,121,18,147,18,189,18,231,18,243,18,252,18,37,19,82,19,99,19,105,19,103,19, +84,19,77,19,107,19,126,19,97,19,65,19,61,19,39,19,238,18,198,18,177,18,127,18,53,18,252,17,196,17,115,17, +33,17,220,16,132,16,19,16,179,15,101,15,255,14,125,14,251,13,125,13,254,12,132,12,12,12,128,11,230,10,85,10, +200,9,49,9,152,8,7,8,113,7,211,6,57,6,156,5,238,4,60,4,161,3,17,3,104,2,166,1,243,0,95,0, +195,255,8,255,82,254,195,253,61,253,147,252,219,251,65,251,179,250,255,249,55,249,149,248,29,248,160,247,7,247,100,246, +194,245,40,245,165,244,62,244,217,243,91,243,211,242,92,242,243,241,135,241,28,241,200,240,128,240,34,240,177,239,87,239, +25,239,212,238,134,238,79,238,37,238,223,237,146,237,112,237,91,237,27,237,216,236,205,236,204,236,151,236,93,236,87,236, +88,236,55,236,37,236,56,236,59,236,35,236,39,236,78,236,102,236,103,236,114,236,149,236,209,236,30,237,91,237,112,237, +136,237,208,237,54,238,152,238,251,238,98,239,194,239,29,240,123,240,226,240,101,241,13,242,174,242,34,243,135,243,6,244, +156,244,67,245,2,246,183,246,64,247,185,247,74,248,244,248,176,249,126,250,54,251,188,251,60,252,234,252,176,253,111,254, +41,255,214,255,97,0,234,0,152,1,84,2,253,2,155,3,51,4,186,4,63,5,218,5,127,6,34,7,203,7,105,8, +222,8,61,9,175,9,53,10,193,10,79,11,203,11,43,12,142,12,250,12,79,13,151,13,254,13,123,14,220,14,40,15, +114,15,160,15,187,15,15,16,163,16,22,17,58,17,96,17,223,17,146,18,250,18,220,18,162,18,218,18,106,19,206,19, +4,20,97,20,175,20,114,20,232,19,201,19,64,20,227,20,92,21,117,21,13,21,107,20,18,20,55,20,176,20,66,21, +137,21,25,21,24,20,76,19,31,19,55,19,35,19,231,18,166,18,55,18,117,17,168,16,69,16,84,16,92,16,2,16, +97,15,184,14,18,14,125,13,31,13,234,12,157,12,41,12,171,11,16,11,66,10,140,9,71,9,66,9,238,8,37,8, +84,7,191,6,51,6,148,5,54,5,56,5,13,5,54,4,13,3,69,2,249,1,203,1,133,1,46,1,195,0,57,0, +142,255,209,254,56,254,17,254,52,254,11,254,92,253,146,252,255,251,124,251,250,250,202,250,241,250,217,250,31,250,40,249, +152,248,120,248,91,248,24,248,234,247,201,247,89,247,144,246,253,245,13,246,107,246,110,246,234,245,59,245,187,244,135,244, +152,244,199,244,197,244,103,244,236,243,170,243,161,243,169,243,204,243,17,244,60,244,31,244,233,243,215,243,240,243,57,244, +166,244,232,244,214,244,204,244,12,245,78,245,92,245,139,245,13,246,144,246,222,246,19,247,54,247,73,247,131,247,8,248, +165,248,40,249,127,249,155,249,165,249,251,249,171,250,90,251,219,251,68,252,138,252,164,252,219,252,108,253,42,254,203,254, +58,255,117,255,132,255,168,255,30,0,200,0,96,1,206,1,32,2,93,2,152,2,241,2,113,3,8,4,155,4,2,5, +45,5,74,5,149,5,4,6,104,6,182,6,255,6,76,7,145,7,192,7,241,7,86,8,223,8,43,9,27,9,11,9, +75,9,200,9,74,10,163,10,186,10,168,10,162,10,188,10,242,10,75,11,180,11,231,11,189,11,116,11,86,11,102,11, +145,11,214,11,5,12,210,11,96,11,40,11,60,11,79,11,75,11,57,11,2,11,196,10,197,10,214,10,147,10,22,10, +177,9,92,9,24,9,5,9,251,8,176,8,52,8,165,7,254,6,122,6,105,6,144,6,104,6,211,5,13,5,78,4, +205,3,171,3,174,3,127,3,1,3,79,2,141,1,230,0,131,0,82,0,20,0,167,255,30,255,133,254,221,253,77,253, +2,253,222,252,155,252,34,252,149,251,17,251,156,250,65,250,11,250,223,249,132,249,6,249,172,248,121,248,32,248,162,247, +67,247,255,246,170,246,83,246,6,246,163,245,54,245,234,244,181,244,126,244,68,244,245,243,145,243,69,243,8,243,175,242, +99,242,79,242,52,242,220,241,120,241,24,241,169,240,102,240,128,240,153,240,83,240,223,239,145,239,102,239,72,239,73,239, +112,239,138,239,99,239,20,239,225,238,221,238,240,238,17,239,54,239,56,239,25,239,14,239,52,239,107,239,145,239,155,239, +152,239,168,239,218,239,32,240,102,240,154,240,169,240,174,240,227,240,79,241,182,241,237,241,17,242,65,242,108,242,145,242, +230,242,107,243,209,243,246,243,16,244,55,244,112,244,233,244,157,245,28,246,66,246,106,246,178,246,243,246,71,247,208,247, +82,248,157,248,210,248,8,249,76,249,177,249,35,250,120,250,194,250,29,251,118,251,214,251,86,252,200,252,245,252,22,253, +129,253,34,254,170,254,4,255,74,255,128,255,152,255,192,255,63,0,244,0,115,1,165,1,199,1,232,1,4,2,77,2, +226,2,126,3,213,3,230,3,228,3,5,4,95,4,217,4,67,5,125,5,130,5,108,5,108,5,161,5,254,5,87,6, +123,6,84,6,18,6,0,6,58,6,151,6,204,6,182,6,119,6,62,6,24,6,18,6,61,6,113,6,112,6,43,6, +196,5,108,5,82,5,106,5,116,5,91,5,47,5,232,4,141,4,91,4,87,4,80,4,75,4,73,4,5,4,133,3, +63,3,75,3,72,3,39,3,31,3,19,3,207,2,123,2,83,2,74,2,59,2,40,2,22,2,232,1,150,1,78,1, +53,1,37,1,250,0,209,0,190,0,154,0,79,0,255,255,210,255,202,255,201,255,161,255,79,255,250,254,178,254,114,254, +73,254,61,254,47,254,6,254,188,253,75,253,215,252,166,252,184,252,188,252,139,252,66,252,2,252,202,251,145,251,91,251, +69,251,79,251,61,251,233,250,137,250,102,250,115,250,116,250,79,250,31,250,248,249,219,249,216,249,252,249,17,250,224,249, +157,249,150,249,174,249,181,249,195,249,215,249,195,249,164,249,179,249,208,249,214,249,232,249,25,250,57,250,59,250,68,250, +107,250,162,250,214,250,255,250,37,251,83,251,136,251,181,251,208,251,224,251,7,252,84,252,154,252,179,252,183,252,208,252, +252,252,53,253,116,253,173,253,226,253,21,254,48,254,55,254,95,254,183,254,15,255,72,255,106,255,132,255,175,255,239,255, +25,0,38,0,71,0,152,0,1,1,102,1,183,1,226,1,248,1,31,2,103,2,211,2,84,3,197,3,2,4,16,4, +21,4,58,4,151,4,25,5,146,5,223,5,233,5,190,5,179,5,18,6,170,6,9,7,28,7,33,7,65,7,111,7, +153,7,192,7,221,7,218,7,198,7,195,7,202,7,198,7,208,7,245,7,255,7,209,7,157,7,134,7,129,7,136,7, +140,7,119,7,82,7,29,7,189,6,88,6,64,6,85,6,59,6,247,5,179,5,88,5,238,4,191,4,198,4,180,4, +112,4,14,4,142,3,0,3,147,2,83,2,15,2,158,1,8,1,102,0,185,255,0,255,83,254,186,253,28,253,100,252, +134,251,113,250,64,249,34,248,6,247,190,245,107,244,42,243,178,241,208,239,187,237,197,235,39,234,7,233,13,232,137,230, +120,228,165,226,115,225,124,224,160,223,51,223,244,222,16,222,119,220,20,219,150,218,227,218,131,219,204,219,45,219,2,218, +86,217,129,217,13,218,214,218,234,219,178,220,159,220,41,220,48,220,2,221,76,222,103,223,206,223,170,223,128,223,118,223, +120,223,180,223,68,224,209,224,239,224,135,224,235,223,166,223,250,223,150,224,11,225,68,225,86,225,69,225,44,225,71,225, +207,225,183,226,139,227,213,227,196,227,249,227,169,228,126,229,66,230,24,231,248,231,136,232,174,232,222,232,149,233,188,234, +215,235,152,236,7,237,102,237,10,238,8,239,39,240,81,241,172,242,43,244,102,245,68,246,62,247,215,248,247,250,14,253, +179,254,243,255,27,1,105,2,244,3,176,5,139,7,129,9,82,11,138,12,70,13,97,14,95,16,204,18,245,20,145,22, +182,23,174,24,206,25,66,27,11,29,239,30,95,32,2,33,69,33,201,33,168,34,177,35,187,36,117,37,170,37,168,37, +210,37,62,38,239,38,197,39,88,40,118,40,114,40,145,40,206,40,55,41,198,41,44,42,69,42,88,42,137,42,157,42, +149,42,201,42,98,43,14,44,121,44,154,44,162,44,196,44,21,45,124,45,223,45,83,46,221,46,45,47,10,47,204,46, +233,46,99,47,226,47,35,48,31,48,255,47,221,47,168,47,95,47,51,47,45,47,9,47,144,46,204,45,253,44,102,44, +6,44,143,43,222,42,31,42,99,41,152,40,199,39,2,39,67,38,143,37,203,36,182,35,97,34,47,33,55,32,61,31, +43,30,254,28,144,27,238,25,94,24,10,23,232,21,212,20,141,19,251,17,98,16,250,14,180,13,128,12,100,11,77,10, +37,9,233,7,164,6,119,5,131,4,161,3,159,2,159,1,221,0,58,0,113,255,129,254,146,253,191,252,37,252,206,251, +141,251,37,251,134,250,196,249,2,249,113,248,44,248,8,248,197,247,92,247,210,246,24,246,94,245,2,245,233,244,152,244, +7,244,131,243,255,242,86,242,182,241,60,241,192,240,64,240,210,239,85,239,171,238,245,237,89,237,238,236,183,236,125,236, +17,236,159,235,92,235,32,235,202,234,125,234,88,234,87,234,94,234,45,234,187,233,116,233,171,233,14,234,57,234,64,234, +94,234,147,234,211,234,52,235,198,235,107,236,250,236,121,237,1,238,133,238,252,238,142,239,76,240,7,241,175,241,91,242, +6,243,160,243,67,244,254,244,192,245,142,246,115,247,73,248,249,248,172,249,121,250,60,251,232,251,159,252,94,253,5,254, +169,254,112,255,43,0,161,0,2,1,146,1,48,2,185,2,73,3,202,3,1,4,25,4,101,4,200,4,31,5,145,5, +0,6,15,6,222,5,231,5,66,6,190,6,58,7,147,7,183,7,201,7,236,7,36,8,133,8,7,9,114,9,180,9, +251,9,74,10,131,10,179,10,253,10,98,11,210,11,56,12,142,12,231,12,76,13,160,13,216,13,23,14,128,14,5,15, +121,15,183,15,197,15,195,15,194,15,201,15,232,15,19,16,32,16,0,16,204,15,154,15,108,15,64,15,20,15,236,14, +207,14,162,14,65,14,184,13,47,13,177,12,66,12,231,11,145,11,30,11,120,10,172,9,238,8,94,8,230,7,95,7, +189,6,251,5,33,5,93,4,196,3,49,3,142,2,232,1,57,1,114,0,167,255,242,254,95,254,235,253,111,253,196,252, +14,252,126,251,250,250,98,250,215,249,107,249,6,249,151,248,23,248,123,247,219,246,97,246,12,246,198,245,119,245,7,245, +129,244,28,244,219,243,143,243,55,243,251,242,202,242,119,242,4,242,150,241,61,241,236,240,146,240,38,240,177,239,67,239, +233,238,148,238,30,238,135,237,9,237,181,236,105,236,34,236,237,235,165,235,46,235,176,234,88,234,33,234,254,233,228,233, +194,233,140,233,66,233,243,232,203,232,224,232,4,233,11,233,5,233,15,233,39,233,67,233,96,233,133,233,202,233,53,234, +159,234,238,234,49,235,114,235,180,235,18,236,154,236,58,237,213,237,76,238,163,238,9,239,167,239,95,240,5,241,148,241, +27,242,160,242,37,243,179,243,98,244,45,245,223,245,96,246,231,246,142,247,43,248,197,248,151,249,123,250,29,251,147,251, +27,252,169,252,30,253,149,253,46,254,222,254,131,255,252,255,81,0,169,0,32,1,177,1,77,2,228,2,112,3,240,3, +92,4,181,4,38,5,207,5,138,6,38,7,157,7,242,7,56,8,159,8,60,9,230,9,121,10,229,10,37,11,95,11, +200,11,89,12,238,12,133,13,18,14,106,14,140,14,187,14,36,15,181,15,75,16,201,16,22,17,42,17,43,17,88,17, +180,17,21,18,105,18,176,18,195,18,142,18,91,18,100,18,142,18,178,18,197,18,175,18,97,18,255,17,180,17,141,17, +128,17,103,17,25,17,159,16,34,16,189,15,109,15,18,15,135,14,232,13,108,13,7,13,133,12,237,11,90,11,204,10, +73,10,204,9,58,9,161,8,44,8,191,7,43,7,150,6,36,6,180,5,56,5,200,4,78,4,172,3,6,3,128,2, +8,2,142,1,27,1,167,0,28,0,134,255,2,255,148,254,30,254,153,253,31,253,185,252,81,252,226,251,114,251,237,250, +73,250,173,249,57,249,219,248,122,248,16,248,150,247,1,247,90,246,200,245,108,245,49,245,227,244,108,244,219,243,49,243, +135,242,28,242,246,241,198,241,85,241,180,240,14,240,131,239,29,239,218,238,197,238,201,238,146,238,4,238,120,237,42,237, +255,236,244,236,20,237,22,237,199,236,101,236,39,236,7,236,17,236,82,236,150,236,181,236,191,236,184,236,169,236,198,236, +45,237,174,237,27,238,108,238,165,238,192,238,197,238,223,238,71,239,253,239,167,240,254,240,27,241,58,241,128,241,2,242, +185,242,124,243,36,244,160,244,240,244,48,245,148,245,43,246,215,246,130,247,43,248,184,248,5,249,47,249,135,249,40,250, +224,250,141,251,49,252,180,252,9,253,92,253,193,253,35,254,152,254,67,255,240,255,96,0,169,0,234,0,40,1,122,1, +240,1,112,2,244,2,128,3,232,3,27,4,79,4,155,4,249,4,129,5,43,6,164,6,219,6,14,7,76,7,137,7, +240,7,145,8,40,9,131,9,178,9,214,9,23,10,147,10,44,11,167,11,245,11,34,12,60,12,87,12,146,12,253,12, +124,13,195,13,164,13,95,13,89,13,147,13,207,13,250,13,23,14,16,14,220,13,158,13,119,13,103,13,101,13,97,13, +71,13,25,13,239,12,195,12,96,12,209,11,121,11,122,11,123,11,59,11,211,10,87,10,200,9,64,9,224,8,170,8, +145,8,106,8,251,7,81,7,177,6,56,6,221,5,155,5,91,5,255,4,137,4,250,3,82,3,192,2,96,2,9,2, +170,1,88,1,230,0,41,0,117,255,17,255,199,254,107,254,30,254,201,253,57,253,136,252,247,251,150,251,90,251,40,251, +201,250,51,250,150,249,10,249,147,248,72,248,38,248,235,247,106,247,194,246,56,246,250,245,245,245,229,245,156,245,44,245, +181,244,58,244,202,243,146,243,155,243,158,243,102,243,10,243,159,242,30,242,176,241,154,241,192,241,211,241,193,241,131,241, +6,241,121,240,63,240,102,240,175,240,226,240,211,240,111,240,243,239,180,239,207,239,45,240,156,240,213,240,175,240,88,240, +49,240,115,240,238,240,76,241,137,241,202,241,241,241,235,241,14,242,132,242,242,242,44,243,121,243,221,243,37,244,109,244, +214,244,52,245,135,245,5,246,142,246,223,246,31,247,132,247,247,247,98,248,214,248,82,249,199,249,57,250,156,250,232,250, +75,251,242,251,175,252,56,253,136,253,205,253,37,254,161,254,72,255,248,255,121,0,218,0,72,1,178,1,1,2,120,2, +57,3,228,3,52,4,111,4,219,4,90,5,191,5,35,6,171,6,78,7,222,7,63,8,129,8,188,8,2,9,116,9, +25,10,183,10,41,11,122,11,167,11,181,11,242,11,123,12,251,12,58,13,98,13,133,13,144,13,166,13,226,13,37,14, +88,14,129,14,157,14,177,14,200,14,214,14,214,14,231,14,9,15,22,15,11,15,15,15,35,15,28,15,237,14,217,14, +16,15,70,15,22,15,173,14,128,14,154,14,203,14,23,15,89,15,38,15,123,14,238,13,226,13,43,14,127,14,182,14, +166,14,36,14,74,13,144,12,112,12,243,12,160,13,213,13,71,13,64,12,95,11,4,11,36,11,133,11,216,11,187,11, +3,11,242,9,13,9,178,8,217,8,37,9,79,9,52,9,148,8,104,7,105,6,80,6,207,6,30,7,5,7,140,6, +159,5,141,4,251,3,14,4,101,4,157,4,101,4,149,3,128,2,187,1,137,1,188,1,247,1,223,1,80,1,115,0, +160,255,37,255,30,255,86,255,118,255,56,255,147,254,208,253,80,253,48,253,82,253,156,253,216,253,169,253,10,253,100,252, +9,252,12,252,98,252,203,252,222,252,117,252,205,251,59,251,251,250,28,251,108,251,165,251,140,251,17,251,118,250,29,250, +33,250,85,250,148,250,171,250,99,250,231,249,177,249,217,249,0,250,249,249,246,249,14,250,17,250,248,249,255,249,51,250, +76,250,51,250,38,250,71,250,139,250,237,250,70,251,77,251,29,251,35,251,111,251,196,251,32,252,138,252,193,252,180,252, +174,252,208,252,3,253,74,253,167,253,248,253,48,254,91,254,122,254,141,254,187,254,23,255,138,255,241,255,51,0,71,0, +82,0,146,0,27,1,170,1,242,1,26,2,118,2,219,2,234,2,221,2,61,3,238,3,105,4,128,4,107,4,112,4, +175,4,4,5,62,5,122,5,220,5,41,6,52,6,48,6,79,6,136,6,219,6,62,7,126,7,124,7,84,7,53,7, +69,7,146,7,236,7,26,8,29,8,10,8,231,7,199,7,220,7,61,8,183,8,236,8,181,8,74,8,6,8,30,8, +140,8,11,9,63,9,18,9,168,8,59,8,11,8,62,8,152,8,195,8,177,8,110,8,249,7,143,7,130,7,182,7, +211,7,202,7,163,7,69,7,194,6,111,6,104,6,110,6,80,6,25,6,219,5,132,5,10,5,152,4,91,4,66,4, +26,4,208,3,95,3,214,2,99,2,31,2,233,1,168,1,94,1,240,0,86,0,201,255,110,255,42,255,236,254,180,254, +87,254,203,253,69,253,213,252,95,252,4,252,241,251,234,251,147,251,241,250,84,250,249,249,205,249,154,249,89,249,33,249, +225,248,119,248,243,247,133,247,68,247,50,247,55,247,31,247,207,246,100,246,10,246,204,245,164,245,138,245,117,245,68,245, +224,244,125,244,91,244,90,244,53,244,250,243,209,243,173,243,134,243,106,243,93,243,96,243,98,243,45,243,204,242,158,242, +191,242,235,242,0,243,252,242,205,242,142,242,133,242,170,242,209,242,3,243,61,243,70,243,28,243,252,242,1,243,44,243, +131,243,229,243,15,244,0,244,234,243,230,243,0,244,67,244,159,244,240,244,35,245,56,245,51,245,55,245,115,245,227,245, +81,246,163,246,228,246,20,247,40,247,62,247,134,247,242,247,79,248,152,248,227,248,26,249,43,249,75,249,176,249,60,250, +179,250,250,250,20,251,42,251,114,251,228,251,74,252,160,252,10,253,103,253,131,253,137,253,203,253,55,254,146,254,236,254, +87,255,143,255,124,255,128,255,201,255,25,0,111,0,235,0,72,1,76,1,77,1,135,1,194,1,234,1,39,2,108,2, +160,2,210,2,246,2,4,3,32,3,76,3,106,3,154,3,252,3,73,4,83,4,77,4,93,4,108,4,125,4,171,4, +243,4,57,5,91,5,65,5,5,5,246,4,54,5,146,5,202,5,216,5,215,5,205,5,185,5,178,5,203,5,246,5, +25,6,36,6,13,6,227,5,204,5,212,5,231,5,252,5,2,6,210,5,128,5,101,5,144,5,159,5,95,5,39,5, +48,5,49,5,240,4,180,4,168,4,139,4,75,4,53,4,78,4,60,4,243,3,188,3,152,3,92,3,41,3,40,3, +53,3,42,3,11,3,198,2,87,2,15,2,29,2,57,2,37,2,239,1,164,1,68,1,242,0,205,0,206,0,240,0, +13,1,224,0,113,0,28,0,254,255,248,255,3,0,33,0,29,0,207,255,101,255,43,255,41,255,44,255,35,255,40,255, +38,255,228,254,118,254,51,254,50,254,61,254,61,254,68,254,63,254,0,254,151,253,82,253,74,253,73,253,51,253,33,253, +20,253,239,252,182,252,127,252,93,252,102,252,143,252,154,252,116,252,60,252,1,252,207,251,198,251,228,251,6,252,25,252, +8,252,199,251,141,251,146,251,179,251,199,251,230,251,8,252,246,251,197,251,195,251,252,251,54,252,81,252,85,252,79,252, +65,252,48,252,59,252,125,252,213,252,5,253,8,253,2,253,251,252,241,252,15,253,112,253,225,253,26,254,7,254,208,253, +186,253,240,253,77,254,165,254,248,254,50,255,30,255,216,254,193,254,242,254,67,255,171,255,13,0,37,0,239,255,187,255, +185,255,225,255,47,0,151,0,225,0,226,0,184,0,152,0,150,0,179,0,246,0,78,1,140,1,143,1,104,1,77,1, +103,1,162,1,217,1,28,2,106,2,135,2,106,2,100,2,149,2,209,2,23,3,112,3,163,3,151,3,133,3,154,3, +204,3,10,4,61,4,81,4,86,4,83,4,64,4,67,4,124,4,196,4,225,4,214,4,184,4,154,4,153,4,202,4, +16,5,56,5,42,5,255,4,224,4,212,4,221,4,22,5,110,5,154,5,121,5,56,5,15,5,25,5,91,5,178,5, +234,5,233,5,177,5,108,5,84,5,122,5,184,5,229,5,240,5,206,5,136,5,77,5,62,5,83,5,110,5,129,5, +138,5,117,5,50,5,224,4,177,4,179,4,201,4,217,4,213,4,163,4,61,4,220,3,188,3,204,3,200,3,157,3, +111,3,78,3,24,3,195,2,127,2,124,2,142,2,109,2,39,2,248,1,212,1,157,1,115,1,91,1,41,1,227,0, +178,0,134,0,78,0,47,0,42,0,11,0,208,255,168,255,146,255,114,255,74,255,55,255,52,255,37,255,0,255,216,254, +176,254,135,254,104,254,77,254,30,254,244,253,240,253,250,253,240,253,216,253,179,253,131,253,105,253,114,253,125,253,128,253, +130,253,100,253,20,253,185,252,141,252,163,252,211,252,216,252,153,252,46,252,181,251,106,251,135,251,217,251,244,251,202,251, +131,251,31,251,191,250,177,250,236,250,30,251,33,251,241,250,144,250,56,250,46,250,88,250,118,250,126,250,114,250,66,250, +252,249,203,249,192,249,208,249,233,249,236,249,191,249,103,249,255,248,160,248,107,248,114,248,128,248,69,248,183,247,10,247, +88,246,176,245,56,245,255,244,186,244,22,244,27,243,253,241,209,240,187,239,3,239,149,238,242,237,207,236,56,235,86,233, +172,231,238,230,237,230,187,230,10,230,58,229,58,228,210,226,158,225,113,225,25,226,181,226,194,226,62,226,65,225,36,224, +178,223,114,224,230,225,17,227,112,227,22,227,103,226,9,226,126,226,187,227,105,229,3,231,194,231,74,231,94,230,20,230, +174,230,191,231,207,232,120,233,99,233,166,232,231,231,203,231,79,232,2,233,165,233,26,234,17,234,120,233,209,232,190,232, +122,233,182,234,169,235,198,235,94,235,36,235,87,235,252,235,26,237,97,238,47,239,64,239,244,238,231,238,118,239,149,240, +231,241,10,243,171,243,177,243,122,243,183,243,201,244,112,246,23,248,65,249,213,249,43,250,181,250,165,251,9,253,219,254, +190,0,37,2,240,2,134,3,76,4,117,5,23,7,1,9,189,10,235,11,150,12,47,13,48,14,165,15,72,17,243,18, +141,20,181,21,76,22,210,22,210,23,77,25,233,26,55,28,240,28,68,29,147,29,1,30,149,30,91,31,38,32,163,32, +198,32,203,32,231,32,34,33,107,33,203,33,86,34,204,34,213,34,154,34,134,34,169,34,212,34,253,34,51,35,99,35, +107,35,64,35,10,35,4,35,51,35,128,35,219,35,24,36,20,36,8,36,32,36,55,36,70,36,126,36,198,36,219,36, +214,36,231,36,248,36,239,36,228,36,247,36,33,37,58,37,23,37,181,36,57,36,196,35,98,35,30,35,241,34,186,34, +80,34,157,33,184,32,223,31,85,31,31,31,253,30,160,30,236,29,249,28,244,27,13,27,99,26,239,25,131,25,239,24, +13,24,209,22,99,21,21,20,41,19,154,18,13,18,33,17,206,15,102,14,45,13,35,12,67,11,169,10,56,10,117,9, +33,8,164,6,128,5,206,4,109,4,29,4,139,3,158,2,145,1,154,0,235,255,167,255,144,255,65,255,193,254,54,254, +141,253,243,252,193,252,214,252,212,252,186,252,146,252,47,252,157,251,41,251,255,250,14,251,31,251,3,251,182,250,74,250, +204,249,107,249,73,249,58,249,21,249,237,248,174,248,40,248,145,247,68,247,52,247,29,247,244,246,194,246,132,246,59,246, +237,245,171,245,158,245,206,245,248,245,221,245,150,245,91,245,45,245,8,245,19,245,84,245,143,245,147,245,107,245,63,245, +68,245,163,245,52,246,170,246,246,246,44,247,71,247,98,247,185,247,82,248,238,248,105,249,195,249,2,250,52,250,126,250, +244,250,132,251,15,252,133,252,232,252,69,253,181,253,60,254,198,254,69,255,184,255,41,0,173,0,68,1,207,1,65,2, +169,2,250,2,55,3,152,3,25,4,117,4,186,4,35,5,127,5,151,5,170,5,232,5,32,6,66,6,124,6,196,6, +230,6,219,6,204,6,215,6,237,6,248,6,8,7,43,7,58,7,34,7,10,7,4,7,7,7,27,7,48,7,33,7, +255,6,252,6,18,7,30,7,17,7,242,6,224,6,243,6,22,7,49,7,74,7,94,7,102,7,106,7,109,7,108,7, +127,7,169,7,189,7,167,7,125,7,79,7,38,7,21,7,19,7,250,6,197,6,144,6,96,6,35,6,223,5,177,5, +166,5,160,5,108,5,254,4,132,4,32,4,199,3,111,3,40,3,229,2,122,2,239,1,108,1,240,0,129,0,63,0, +1,0,131,255,226,254,93,254,233,253,123,253,48,253,243,252,144,252,15,252,141,251,19,251,170,250,85,250,253,249,152,249, +59,249,244,248,183,248,104,248,1,248,167,247,109,247,49,247,233,246,176,246,125,246,60,246,9,246,240,245,206,245,161,245, +135,245,130,245,114,245,89,245,80,245,87,245,77,245,49,245,40,245,54,245,69,245,85,245,92,245,65,245,32,245,36,245, +42,245,18,245,7,245,18,245,15,245,7,245,17,245,10,245,242,244,250,244,29,245,41,245,28,245,21,245,21,245,13,245, +4,245,6,245,20,245,23,245,11,245,14,245,42,245,57,245,55,245,84,245,153,245,214,245,251,245,31,246,69,246,102,246, +157,246,248,246,80,247,132,247,178,247,242,247,64,248,159,248,1,249,74,249,144,249,242,249,74,250,137,250,233,250,114,251, +222,251,31,252,105,252,206,252,56,253,156,253,2,254,112,254,218,254,44,255,111,255,191,255,31,0,138,0,245,0,76,1, +145,1,218,1,27,2,77,2,138,2,217,2,30,3,87,3,131,3,145,3,167,3,236,3,55,4,95,4,141,4,203,4, +235,4,244,4,23,5,73,5,111,5,148,5,192,5,217,5,214,5,219,5,253,5,30,6,35,6,33,6,55,6,87,6, +101,6,101,6,114,6,154,6,208,6,244,6,253,6,252,6,10,7,48,7,96,7,131,7,159,7,187,7,193,7,172,7, +172,7,208,7,239,7,2,8,26,8,40,8,27,8,4,8,242,7,233,7,240,7,253,7,245,7,213,7,173,7,128,7, +75,7,27,7,4,7,253,6,219,6,149,6,83,6,26,6,204,5,128,5,100,5,88,5,24,5,172,4,73,4,255,3, +200,3,167,3,141,3,83,3,230,2,119,2,53,2,8,2,218,1,184,1,140,1,55,1,225,0,163,0,80,0,246,255, +215,255,220,255,185,255,106,255,17,255,192,254,143,254,127,254,116,254,102,254,89,254,52,254,246,253,190,253,157,253,154,253, +179,253,198,253,176,253,130,253,93,253,68,253,52,253,51,253,59,253,60,253,41,253,255,252,214,252,202,252,215,252,216,252, +194,252,177,252,174,252,161,252,129,252,107,252,98,252,82,252,55,252,28,252,252,251,224,251,214,251,210,251,197,251,182,251, +168,251,151,251,140,251,136,251,134,251,135,251,137,251,139,251,146,251,154,251,153,251,144,251,138,251,152,251,204,251,2,252, +3,252,241,251,10,252,53,252,74,252,102,252,152,252,196,252,233,252,9,253,14,253,20,253,74,253,147,253,191,253,221,253, +253,253,23,254,53,254,101,254,166,254,234,254,35,255,71,255,97,255,120,255,136,255,158,255,204,255,17,0,89,0,138,0, +151,0,148,0,154,0,176,0,224,0,49,1,123,1,138,1,105,1,85,1,108,1,142,1,159,1,196,1,17,2,54,2, +2,2,211,1,240,1,20,2,22,2,49,2,102,2,108,2,62,2,32,2,49,2,89,2,128,2,161,2,183,2,184,2, +170,2,166,2,193,2,242,2,30,3,55,3,70,3,80,3,80,3,81,3,107,3,152,3,189,3,210,3,223,3,230,3, +231,3,235,3,0,4,33,4,47,4,29,4,15,4,15,4,246,3,208,3,217,3,246,3,229,3,192,3,173,3,150,3, +118,3,94,3,68,3,40,3,33,3,26,3,247,2,206,2,172,2,136,2,110,2,96,2,66,2,25,2,244,1,212,1, +185,1,158,1,107,1,47,1,18,1,253,0,192,0,122,0,91,0,76,0,41,0,248,255,201,255,152,255,100,255,66,255, +56,255,43,255,13,255,241,254,216,254,165,254,110,254,100,254,119,254,119,254,101,254,81,254,53,254,13,254,230,253,214,253, +230,253,8,254,18,254,240,253,187,253,158,253,160,253,168,253,174,253,179,253,173,253,151,253,123,253,95,253,71,253,70,253, +85,253,83,253,55,253,11,253,210,252,172,252,191,252,228,252,228,252,200,252,177,252,149,252,109,252,84,252,100,252,150,252, +188,252,172,252,123,252,88,252,75,252,85,252,125,252,171,252,185,252,169,252,159,252,167,252,175,252,178,252,206,252,8,253, +51,253,57,253,64,253,85,253,105,253,137,253,178,253,200,253,220,253,9,254,49,254,71,254,103,254,132,254,144,254,181,254, +1,255,60,255,87,255,109,255,134,255,166,255,210,255,4,0,68,0,156,0,219,0,220,0,210,0,234,0,18,1,63,1, +132,1,200,1,224,1,204,1,190,1,217,1,19,2,74,2,110,2,131,2,133,2,118,2,105,2,116,2,150,2,200,2, +2,3,46,3,48,3,18,3,1,3,19,3,60,3,108,3,140,3,149,3,155,3,165,3,159,3,151,3,184,3,235,3, +1,4,18,4,51,4,70,4,71,4,84,4,98,4,94,4,102,4,137,4,175,4,202,4,221,4,228,4,202,4,149,4, +124,4,164,4,218,4,230,4,232,4,245,4,224,4,168,4,138,4,149,4,170,4,194,4,217,4,205,4,151,4,87,4, +48,4,39,4,42,4,55,4,66,4,26,4,185,3,110,3,96,3,96,3,92,3,99,3,85,3,19,3,203,2,162,2, +139,2,125,2,118,2,92,2,35,2,225,1,175,1,145,1,122,1,97,1,76,1,57,1,24,1,230,0,172,0,123,0, +111,0,134,0,145,0,116,0,60,0,6,0,235,255,242,255,247,255,229,255,220,255,226,255,200,255,144,255,113,255,109,255, +88,255,56,255,54,255,68,255,58,255,30,255,8,255,242,254,217,254,205,254,208,254,214,254,224,254,227,254,204,254,167,254, +139,254,116,254,114,254,153,254,189,254,176,254,132,254,83,254,41,254,38,254,75,254,104,254,124,254,152,254,147,254,92,254, +45,254,44,254,71,254,114,254,157,254,175,254,167,254,133,254,83,254,79,254,142,254,204,254,226,254,242,254,243,254,200,254, +164,254,186,254,234,254,22,255,81,255,145,255,168,255,164,255,197,255,7,0,29,0,7,0,31,0,116,0,185,0,222,0, +2,1,11,1,234,0,228,0,44,1,145,1,229,1,48,2,87,2,44,2,219,1,206,1,24,2,120,2,227,2,91,3, +132,3,20,3,114,2,66,2,157,2,47,3,161,3,200,3,177,3,141,3,105,3,70,3,80,3,177,3,59,4,140,4, +123,4,58,4,13,4,27,4,111,4,232,4,58,5,66,5,48,5,41,5,42,5,58,5,104,5,158,5,193,5,197,5, +179,5,166,5,187,5,231,5,20,6,61,6,74,6,52,6,31,6,44,6,92,6,158,6,204,6,195,6,156,6,135,6, +142,6,163,6,183,6,195,6,219,6,0,7,249,6,182,6,146,6,185,6,234,6,236,6,214,6,202,6,194,6,167,6, +130,6,123,6,135,6,118,6,88,6,90,6,85,6,21,6,201,5,165,5,152,5,135,5,101,5,39,5,229,4,196,4, +181,4,155,4,120,4,79,4,21,4,219,3,182,3,149,3,112,3,95,3,84,3,28,3,194,2,124,2,84,2,52,2, +31,2,18,2,249,1,215,1,172,1,89,1,245,0,203,0,221,0,235,0,220,0,173,0,84,0,233,255,161,255,134,255, +139,255,152,255,135,255,70,255,229,254,121,254,37,254,22,254,55,254,69,254,37,254,230,253,141,253,30,253,191,252,162,252, +205,252,248,252,212,252,111,252,23,252,221,251,172,251,137,251,131,251,147,251,145,251,85,251,235,250,145,250,94,250,57,250, +46,250,76,250,102,250,67,250,231,249,133,249,80,249,69,249,67,249,72,249,86,249,68,249,0,249,189,248,150,248,124,248, +125,248,162,248,187,248,156,248,93,248,53,248,58,248,82,248,80,248,58,248,52,248,62,248,61,248,51,248,50,248,55,248, +62,248,65,248,51,248,21,248,3,248,19,248,60,248,92,248,83,248,46,248,14,248,2,248,12,248,39,248,75,248,98,248, +89,248,61,248,42,248,36,248,39,248,67,248,113,248,134,248,115,248,90,248,80,248,100,248,152,248,198,248,209,248,216,248, +244,248,10,249,12,249,16,249,36,249,65,249,95,249,124,249,157,249,177,249,165,249,161,249,200,249,236,249,244,249,18,250, +66,250,76,250,62,250,74,250,104,250,141,250,189,250,219,250,231,250,0,251,20,251,14,251,34,251,101,251,155,251,172,251, +193,251,213,251,205,251,195,251,218,251,11,252,65,252,120,252,154,252,137,252,88,252,73,252,120,252,179,252,217,252,249,252, +16,253,7,253,242,252,245,252,15,253,38,253,56,253,82,253,105,253,102,253,88,253,93,253,101,253,102,253,128,253,171,253, +177,253,161,253,182,253,211,253,197,253,184,253,214,253,240,253,234,253,240,253,21,254,47,254,54,254,66,254,69,254,47,254, +44,254,85,254,116,254,107,254,113,254,153,254,173,254,161,254,156,254,170,254,201,254,246,254,26,255,31,255,21,255,11,255, +5,255,13,255,35,255,58,255,82,255,101,255,104,255,100,255,89,255,71,255,76,255,116,255,151,255,161,255,154,255,117,255, +60,255,39,255,72,255,117,255,151,255,163,255,130,255,76,255,49,255,55,255,85,255,130,255,156,255,137,255,95,255,65,255, +69,255,107,255,148,255,164,255,165,255,159,255,131,255,98,255,99,255,142,255,193,255,214,255,196,255,166,255,155,255,161,255, +177,255,211,255,249,255,245,255,193,255,148,255,156,255,193,255,218,255,220,255,211,255,202,255,196,255,181,255,162,255,172,255, +204,255,203,255,168,255,164,255,190,255,185,255,159,255,166,255,192,255,185,255,151,255,142,255,174,255,199,255,181,255,158,255, +170,255,179,255,168,255,175,255,201,255,204,255,191,255,181,255,157,255,127,255,127,255,149,255,166,255,174,255,161,255,117,255, +74,255,69,255,86,255,103,255,120,255,138,255,139,255,109,255,66,255,34,255,26,255,51,255,105,255,145,255,142,255,123,255, +105,255,81,255,78,255,117,255,157,255,183,255,220,255,238,255,197,255,142,255,133,255,164,255,218,255,19,0,41,0,25,0, +252,255,214,255,178,255,186,255,236,255,19,0,24,0,8,0,233,255,200,255,188,255,200,255,220,255,236,255,245,255,239,255, +215,255,184,255,171,255,186,255,214,255,227,255,211,255,188,255,182,255,196,255,221,255,0,0,18,0,252,255,222,255,233,255, +13,0,36,0,45,0,51,0,54,0,50,0,33,0,26,0,59,0,113,0,147,0,156,0,151,0,126,0,100,0,103,0, +140,0,201,0,253,0,3,1,226,0,189,0,159,0,169,0,245,0,68,1,77,1,54,1,45,1,27,1,21,1,76,1, +145,1,169,1,168,1,167,1,142,1,104,1,97,1,133,1,180,1,207,1,208,1,199,1,185,1,161,1,148,1,171,1, +214,1,249,1,255,1,228,1,195,1,183,1,186,1,195,1,231,1,42,2,86,2,59,2,252,1,231,1,13,2,61,2, +95,2,135,2,165,2,148,2,110,2,103,2,133,2,179,2,229,2,8,3,11,3,247,2,228,2,233,2,5,3,36,3, +63,3,75,3,52,3,16,3,18,3,41,3,44,3,53,3,81,3,70,3,2,3,213,2,232,2,2,3,246,2,230,2, +241,2,240,2,187,2,129,2,129,2,166,2,181,2,164,2,136,2,105,2,74,2,54,2,50,2,54,2,56,2,45,2, +9,2,199,1,141,1,134,1,147,1,136,1,132,1,152,1,121,1,38,1,253,0,4,1,244,0,221,0,239,0,1,1, +231,0,184,0,140,0,116,0,121,0,137,0,146,0,154,0,152,0,118,0,76,0,66,0,92,0,130,0,161,0,164,0, +135,0,96,0,74,0,79,0,92,0,99,0,101,0,97,0,75,0,44,0,22,0,10,0,7,0,17,0,20,0,248,255, +208,255,194,255,198,255,187,255,160,255,143,255,142,255,128,255,92,255,60,255,52,255,54,255,52,255,44,255,30,255,5,255, +225,254,198,254,195,254,199,254,194,254,199,254,212,254,196,254,163,254,162,254,187,254,204,254,220,254,242,254,247,254,240,254, +243,254,246,254,245,254,13,255,66,255,107,255,102,255,78,255,80,255,103,255,111,255,114,255,151,255,206,255,233,255,236,255, +233,255,225,255,232,255,19,0,66,0,80,0,81,0,94,0,101,0,85,0,70,0,87,0,123,0,142,0,146,0,148,0, +137,0,115,0,113,0,135,0,153,0,163,0,167,0,155,0,133,0,123,0,132,0,149,0,158,0,143,0,117,0,98,0, +89,0,95,0,129,0,165,0,164,0,128,0,95,0,78,0,84,0,121,0,172,0,200,0,199,0,184,0,157,0,131,0, +141,0,193,0,240,0,1,1,0,1,229,0,178,0,144,0,156,0,196,0,251,0,45,1,43,1,235,0,170,0,147,0, +165,0,207,0,249,0,21,1,30,1,250,0,171,0,118,0,133,0,172,0,207,0,246,0,3,1,218,0,157,0,104,0, +69,0,83,0,151,0,206,0,203,0,154,0,85,0,23,0,6,0,46,0,104,0,125,0,91,0,34,0,251,255,231,255, +217,255,217,255,240,255,10,0,1,0,199,255,133,255,106,255,114,255,129,255,144,255,144,255,112,255,69,255,48,255,47,255, +57,255,81,255,99,255,85,255,46,255,10,255,247,254,253,254,20,255,35,255,15,255,231,254,214,254,216,254,202,254,190,254, +222,254,248,254,212,254,166,254,169,254,185,254,178,254,169,254,163,254,148,254,139,254,148,254,160,254,162,254,150,254,126,254, +113,254,122,254,131,254,126,254,121,254,133,254,151,254,144,254,111,254,90,254,104,254,136,254,175,254,208,254,199,254,153,254, +118,254,119,254,143,254,184,254,231,254,255,254,241,254,201,254,168,254,179,254,228,254,24,255,60,255,72,255,52,255,18,255, +4,255,16,255,57,255,107,255,122,255,103,255,100,255,102,255,82,255,85,255,130,255,161,255,162,255,171,255,185,255,188,255, +199,255,221,255,235,255,252,255,22,0,44,0,63,0,81,0,83,0,86,0,105,0,116,0,112,0,124,0,158,0,188,0, +205,0,217,0,207,0,184,0,185,0,217,0,247,0,7,1,22,1,23,1,249,0,219,0,217,0,238,0,23,1,79,1, +101,1,62,1,11,1,254,0,7,1,22,1,53,1,99,1,122,1,96,1,46,1,23,1,32,1,48,1,81,1,132,1, +145,1,105,1,67,1,54,1,44,1,53,1,90,1,116,1,108,1,78,1,41,1,21,1,39,1,70,1,75,1,56,1, +39,1,34,1,30,1,15,1,14,1,50,1,84,1,68,1,35,1,23,1,14,1,250,0,245,0,253,0,8,1,22,1, +23,1,1,1,238,0,228,0,217,0,217,0,241,0,254,0,241,0,229,0,225,0,205,0,177,0,180,0,212,0,237,0, +236,0,219,0,187,0,143,0,121,0,146,0,192,0,221,0,215,0,178,0,138,0,123,0,124,0,125,0,150,0,194,0, +195,0,129,0,64,0,57,0,81,0,95,0,101,0,103,0,87,0,48,0,8,0,244,255,247,255,2,0,5,0,249,255, +222,255,187,255,166,255,168,255,166,255,140,255,118,255,112,255,82,255,24,255,252,254,10,255,16,255,5,255,255,254,236,254, +191,254,162,254,183,254,205,254,178,254,132,254,126,254,141,254,122,254,88,254,84,254,91,254,76,254,56,254,46,254,33,254, +29,254,49,254,60,254,42,254,19,254,2,254,237,253,223,253,230,253,245,253,253,253,244,253,213,253,183,253,185,253,211,253, +230,253,228,253,210,253,185,253,172,253,187,253,213,253,228,253,234,253,238,253,234,253,228,253,233,253,244,253,254,253,18,254, +41,254,37,254,20,254,41,254,100,254,135,254,134,254,142,254,159,254,144,254,115,254,126,254,169,254,200,254,214,254,217,254, +199,254,183,254,205,254,240,254,248,254,254,254,27,255,48,255,34,255,14,255,21,255,57,255,88,255,87,255,71,255,59,255, +45,255,36,255,65,255,115,255,135,255,128,255,117,255,104,255,93,255,100,255,129,255,175,255,206,255,185,255,137,255,125,255, +142,255,151,255,167,255,205,255,221,255,194,255,146,255,100,255,75,255,79,255,97,255,114,255,118,255,80,255,6,255,207,254, +196,254,201,254,208,254,218,254,203,254,141,254,54,254,243,253,222,253,221,253,206,253,184,253,158,253,102,253,18,253,211,252, +174,252,130,252,92,252,73,252,32,252,215,251,153,251,101,251,21,251,195,250,148,250,102,250,28,250,225,249,176,249,77,249, +208,248,135,248,91,248,17,248,194,247,131,247,28,247,140,246,29,246,220,245,144,245,46,245,197,244,83,244,227,243,135,243, +48,243,195,242,81,242,248,241,165,241,41,241,148,240,34,240,205,239,102,239,234,238,109,238,236,237,131,237,88,237,55,237, +229,236,131,236,45,236,197,235,97,235,54,235,39,235,11,235,246,234,224,234,148,234,31,234,226,233,4,234,76,234,128,234, +163,234,167,234,110,234,49,234,90,234,226,234,92,235,159,235,204,235,238,235,254,235,16,236,56,236,131,236,247,236,124,237, +224,237,7,238,1,238,22,238,120,238,4,239,123,239,222,239,60,240,133,240,193,240,16,241,114,241,231,241,127,242,32,243, +160,243,246,243,51,244,115,244,232,244,154,245,87,246,245,246,110,247,202,247,34,248,155,248,62,249,250,249,188,250,104,251, +237,251,102,252,235,252,121,253,28,254,243,254,228,255,167,0,34,1,142,1,38,2,237,2,202,3,172,4,137,5,76,6, +234,6,117,7,13,8,195,8,150,9,128,10,111,11,62,12,218,12,98,13,254,13,191,14,158,15,131,16,75,17,235,17, +124,18,22,19,190,19,101,20,2,21,156,21,57,22,189,22,31,23,129,23,239,23,97,24,231,24,125,25,231,25,25,26, +85,26,171,26,251,26,68,27,141,27,196,27,243,27,36,28,63,28,67,28,86,28,125,28,173,28,235,28,18,29,252,28, +212,28,213,28,237,28,3,29,32,29,56,29,48,29,28,29,18,29,253,28,223,28,212,28,223,28,227,28,208,28,171,28, +123,28,68,28,26,28,6,28,243,27,206,27,150,27,73,27,239,26,171,26,132,26,74,26,248,25,185,25,128,25,18,25, +135,24,30,24,210,23,136,23,63,23,220,22,65,22,159,21,47,21,210,20,87,20,206,19,85,19,221,18,75,18,157,17, +232,16,73,16,207,15,102,15,234,14,70,14,137,13,211,12,53,12,173,11,49,11,182,10,43,10,140,9,234,8,75,8, +172,7,27,7,165,6,54,6,181,5,43,5,168,4,34,4,155,3,50,3,238,2,167,2,68,2,216,1,105,1,244,0, +145,0,83,0,27,0,209,255,130,255,46,255,202,254,120,254,80,254,40,254,234,253,175,253,116,253,26,253,193,252,152,252, +130,252,81,252,25,252,237,251,177,251,93,251,27,251,242,250,201,250,167,250,156,250,135,250,71,250,252,249,210,249,199,249, +185,249,153,249,113,249,77,249,49,249,30,249,17,249,3,249,244,248,237,248,239,248,235,248,223,248,213,248,222,248,255,248, +39,249,63,249,68,249,75,249,101,249,146,249,196,249,228,249,250,249,42,250,106,250,140,250,155,250,195,250,7,251,80,251, +148,251,208,251,5,252,67,252,126,252,169,252,221,252,41,253,117,253,176,253,227,253,26,254,96,254,166,254,212,254,248,254, +53,255,117,255,162,255,212,255,12,0,50,0,94,0,164,0,221,0,246,0,22,1,68,1,106,1,134,1,163,1,195,1, +230,1,1,2,11,2,25,2,53,2,79,2,99,2,122,2,141,2,144,2,146,2,158,2,174,2,189,2,196,2,191,2, +190,2,205,2,225,2,231,2,227,2,224,2,226,2,229,2,235,2,240,2,235,2,217,2,204,2,199,2,189,2,175,2, +173,2,178,2,169,2,150,2,131,2,100,2,58,2,33,2,38,2,42,2,24,2,253,1,219,1,161,1,99,1,70,1, +66,1,53,1,22,1,224,0,152,0,93,0,57,0,17,0,227,255,190,255,140,255,64,255,253,254,208,254,158,254,105,254, +61,254,11,254,210,253,153,253,81,253,245,252,176,252,148,252,121,252,62,252,246,251,173,251,93,251,23,251,249,250,236,250, +190,250,121,250,74,250,32,250,219,249,158,249,136,249,117,249,76,249,38,249,5,249,215,248,171,248,155,248,151,248,131,248, +105,248,101,248,105,248,77,248,28,248,9,248,24,248,31,248,28,248,30,248,21,248,255,247,2,248,34,248,58,248,62,248, +57,248,54,248,65,248,84,248,99,248,111,248,131,248,155,248,173,248,177,248,171,248,172,248,191,248,214,248,236,248,7,249, +23,249,24,249,36,249,63,249,88,249,114,249,149,249,173,249,187,249,214,249,238,249,245,249,7,250,48,250,84,250,115,250, +147,250,167,250,185,250,232,250,30,251,61,251,98,251,168,251,234,251,9,252,29,252,67,252,118,252,172,252,236,252,47,253, +102,253,151,253,203,253,246,253,23,254,67,254,133,254,194,254,240,254,38,255,99,255,136,255,160,255,213,255,28,0,80,0, +119,0,166,0,204,0,228,0,7,1,49,1,80,1,114,1,158,1,183,1,199,1,241,1,25,2,28,2,39,2,87,2, +122,2,127,2,137,2,150,2,143,2,152,2,193,2,213,2,192,2,184,2,213,2,234,2,229,2,219,2,216,2,212,2, +220,2,244,2,244,2,211,2,194,2,207,2,208,2,200,2,206,2,196,2,162,2,161,2,189,2,181,2,146,2,143,2, +151,2,135,2,121,2,123,2,112,2,93,2,83,2,77,2,72,2,78,2,77,2,48,2,8,2,233,1,215,1,206,1, +203,1,193,1,166,1,131,1,99,1,68,1,34,1,1,1,233,0,212,0,184,0,144,0,99,0,62,0,29,0,237,255, +181,255,153,255,136,255,87,255,25,255,241,254,205,254,158,254,125,254,99,254,52,254,5,254,234,253,201,253,154,253,115,253, +81,253,34,253,245,252,216,252,197,252,184,252,172,252,143,252,106,252,78,252,57,252,32,252,12,252,4,252,250,251,233,251, +217,251,208,251,198,251,192,251,194,251,191,251,177,251,177,251,195,251,197,251,179,251,178,251,190,251,186,251,182,251,193,251, +199,251,193,251,201,251,212,251,207,251,208,251,233,251,247,251,237,251,233,251,243,251,5,252,32,252,51,252,36,252,15,252, +31,252,59,252,63,252,70,252,101,252,115,252,96,252,86,252,100,252,123,252,147,252,168,252,181,252,193,252,205,252,203,252, +203,252,230,252,12,253,42,253,72,253,89,253,78,253,72,253,109,253,159,253,190,253,207,253,226,253,252,253,29,254,65,254, +92,254,111,254,127,254,153,254,193,254,230,254,253,254,28,255,69,255,92,255,101,255,132,255,180,255,216,255,233,255,246,255, +14,0,45,0,66,0,85,0,118,0,146,0,153,0,167,0,194,0,198,0,189,0,208,0,248,0,21,1,36,1,34,1, +15,1,16,1,43,1,48,1,31,1,42,1,73,1,72,1,45,1,38,1,48,1,40,1,22,1,29,1,52,1,48,1, +21,1,6,1,4,1,248,0,244,0,6,1,16,1,2,1,248,0,250,0,239,0,224,0,236,0,1,1,247,0,220,0, +216,0,223,0,216,0,215,0,231,0,232,0,211,0,203,0,205,0,190,0,175,0,179,0,185,0,185,0,179,0,153,0, +121,0,122,0,139,0,126,0,97,0,94,0,95,0,73,0,54,0,51,0,40,0,16,0,252,255,230,255,208,255,210,255, +221,255,194,255,140,255,110,255,97,255,72,255,57,255,62,255,46,255,4,255,231,254,212,254,179,254,157,254,161,254,155,254, +128,254,105,254,75,254,27,254,2,254,16,254,21,254,249,253,223,253,208,253,184,253,159,253,151,253,143,253,125,253,113,253, +110,253,101,253,102,253,110,253,78,253,26,253,31,253,70,253,58,253,21,253,30,253,53,253,41,253,31,253,46,253,52,253, +47,253,53,253,54,253,44,253,40,253,48,253,58,253,65,253,57,253,43,253,54,253,79,253,79,253,65,253,74,253,103,253, +120,253,111,253,95,253,97,253,112,253,121,253,133,253,158,253,168,253,159,253,163,253,186,253,197,253,203,253,225,253,248,253, +2,254,10,254,26,254,46,254,70,254,91,254,106,254,123,254,142,254,163,254,186,254,201,254,204,254,220,254,255,254,33,255, +57,255,80,255,103,255,126,255,159,255,194,255,216,255,232,255,253,255,15,0,39,0,82,0,116,0,118,0,117,0,146,0, +185,0,208,0,222,0,236,0,242,0,253,0,27,1,56,1,74,1,93,1,112,1,112,1,107,1,121,1,147,1,171,1, +191,1,200,1,196,1,191,1,195,1,201,1,210,1,231,1,252,1,254,1,241,1,236,1,245,1,254,1,253,1,5,2, +22,2,23,2,10,2,8,2,10,2,2,2,4,2,22,2,31,2,23,2,17,2,13,2,5,2,4,2,19,2,34,2, +29,2,12,2,4,2,10,2,7,2,248,1,242,1,252,1,0,2,247,1,239,1,237,1,236,1,227,1,218,1,211,1, +196,1,171,1,160,1,165,1,156,1,138,1,131,1,118,1,83,1,54,1,40,1,17,1,252,0,252,0,247,0,221,0, +193,0,165,0,126,0,97,0,97,0,101,0,79,0,43,0,13,0,251,255,240,255,233,255,224,255,206,255,188,255,180,255, +161,255,126,255,114,255,130,255,125,255,98,255,93,255,99,255,84,255,68,255,62,255,52,255,53,255,69,255,57,255,28,255, +37,255,56,255,30,255,1,255,18,255,40,255,31,255,24,255,29,255,25,255,16,255,12,255,4,255,252,254,253,254,249,254, +231,254,228,254,247,254,1,255,246,254,237,254,239,254,238,254,235,254,238,254,240,254,236,254,240,254,249,254,248,254,243,254, +250,254,3,255,1,255,4,255,20,255,33,255,38,255,46,255,54,255,53,255,54,255,62,255,65,255,65,255,82,255,108,255, +119,255,120,255,121,255,111,255,103,255,122,255,153,255,172,255,188,255,200,255,184,255,168,255,194,255,235,255,250,255,252,255, +6,0,8,0,254,255,252,255,15,0,49,0,77,0,92,0,107,0,119,0,110,0,97,0,111,0,132,0,137,0,144,0, +162,0,170,0,167,0,163,0,164,0,176,0,190,0,185,0,168,0,167,0,177,0,176,0,179,0,189,0,174,0,145,0, +145,0,171,0,174,0,150,0,148,0,166,0,154,0,115,0,99,0,112,0,117,0,117,0,126,0,120,0,95,0,87,0, +98,0,100,0,99,0,105,0,104,0,91,0,82,0,76,0,69,0,72,0,88,0,100,0,95,0,86,0,94,0,109,0, +101,0,77,0,70,0,75,0,66,0,63,0,88,0,98,0,68,0,39,0,35,0,30,0,19,0,31,0,52,0,39,0, +255,255,238,255,239,255,223,255,208,255,225,255,231,255,189,255,153,255,158,255,155,255,125,255,116,255,122,255,107,255,82,255, +69,255,47,255,18,255,15,255,26,255,16,255,248,254,234,254,228,254,225,254,223,254,208,254,183,254,178,254,188,254,186,254, +168,254,154,254,148,254,149,254,160,254,165,254,151,254,141,254,148,254,154,254,154,254,157,254,159,254,156,254,162,254,170,254, +163,254,156,254,160,254,168,254,181,254,203,254,214,254,208,254,204,254,207,254,209,254,220,254,236,254,236,254,234,254,250,254, +10,255,4,255,247,254,249,254,8,255,16,255,15,255,15,255,11,255,3,255,8,255,25,255,21,255,0,255,0,255,14,255, +20,255,31,255,45,255,28,255,2,255,9,255,27,255,29,255,38,255,47,255,30,255,22,255,43,255,51,255,44,255,60,255, +84,255,85,255,90,255,108,255,110,255,101,255,114,255,135,255,143,255,159,255,187,255,200,255,197,255,207,255,226,255,236,255, +247,255,17,0,44,0,59,0,69,0,66,0,55,0,69,0,111,0,132,0,129,0,146,0,162,0,140,0,125,0,156,0, +180,0,169,0,175,0,205,0,204,0,177,0,177,0,194,0,193,0,189,0,203,0,206,0,185,0,179,0,197,0,196,0, +181,0,187,0,200,0,189,0,178,0,183,0,172,0,147,0,150,0,174,0,174,0,154,0,153,0,163,0,157,0,141,0, +134,0,141,0,154,0,162,0,160,0,146,0,138,0,152,0,169,0,166,0,156,0,154,0,150,0,140,0,143,0,157,0, +162,0,162,0,168,0,164,0,145,0,139,0,152,0,159,0,154,0,153,0,151,0,136,0,124,0,130,0,130,0,115,0, +120,0,142,0,137,0,110,0,94,0,85,0,72,0,77,0,90,0,76,0,48,0,36,0,28,0,15,0,16,0,29,0, +18,0,241,255,228,255,247,255,255,255,230,255,215,255,232,255,226,255,180,255,165,255,196,255,195,255,154,255,142,255,161,255, +163,255,152,255,152,255,155,255,156,255,160,255,155,255,137,255,128,255,139,255,156,255,160,255,149,255,143,255,147,255,145,255, +142,255,155,255,164,255,152,255,142,255,147,255,144,255,133,255,135,255,147,255,154,255,154,255,145,255,133,255,135,255,143,255, +143,255,140,255,138,255,135,255,136,255,141,255,135,255,122,255,130,255,144,255,138,255,128,255,140,255,148,255,139,255,139,255, +152,255,147,255,135,255,149,255,172,255,169,255,164,255,183,255,197,255,189,255,189,255,210,255,227,255,235,255,248,255,4,0, +4,0,4,0,14,0,28,0,42,0,64,0,87,0,88,0,78,0,88,0,114,0,124,0,126,0,146,0,167,0,164,0, +159,0,176,0,200,0,216,0,224,0,225,0,222,0,226,0,236,0,241,0,244,0,251,0,4,1,15,1,21,1,19,1, +16,1,18,1,24,1,33,1,40,1,44,1,50,1,50,1,39,1,33,1,44,1,49,1,45,1,54,1,66,1,54,1, +35,1,37,1,41,1,34,1,37,1,53,1,55,1,38,1,30,1,40,1,40,1,18,1,0,1,4,1,10,1,14,1, +17,1,5,1,231,0,219,0,229,0,231,0,227,0,230,0,222,0,197,0,184,0,189,0,185,0,169,0,154,0,143,0, +140,0,141,0,133,0,119,0,107,0,98,0,91,0,90,0,93,0,100,0,97,0,68,0,35,0,33,0,45,0,34,0, +17,0,13,0,9,0,1,0,254,255,241,255,223,255,226,255,238,255,230,255,218,255,222,255,219,255,200,255,186,255,186,255, +190,255,197,255,201,255,188,255,165,255,156,255,163,255,169,255,165,255,163,255,169,255,164,255,146,255,140,255,156,255,164,255, +147,255,133,255,147,255,168,255,164,255,148,255,146,255,159,255,166,255,163,255,162,255,164,255,159,255,153,255,161,255,180,255, +190,255,187,255,181,255,181,255,191,255,205,255,206,255,198,255,208,255,230,255,228,255,214,255,234,255,11,0,12,0,252,255, +254,255,8,0,14,0,23,0,31,0,37,0,50,0,60,0,59,0,63,0,76,0,84,0,93,0,106,0,102,0,90,0, +105,0,138,0,147,0,137,0,134,0,138,0,142,0,151,0,162,0,161,0,152,0,158,0,180,0,189,0,177,0,167,0, +171,0,177,0,186,0,204,0,217,0,213,0,203,0,195,0,193,0,201,0,205,0,200,0,207,0,232,0,236,0,217,0, +210,0,219,0,219,0,212,0,217,0,224,0,223,0,222,0,231,0,240,0,238,0,232,0,229,0,223,0,218,0,225,0, +234,0,228,0,216,0,218,0,220,0,211,0,203,0,205,0,212,0,213,0,203,0,187,0,176,0,168,0,160,0,163,0, +169,0,156,0,132,0,117,0,108,0,100,0,101,0,99,0,83,0,73,0,74,0,62,0,37,0,24,0,18,0,11,0, +13,0,15,0,249,255,214,255,199,255,204,255,210,255,208,255,202,255,191,255,174,255,158,255,151,255,157,255,166,255,164,255, +146,255,125,255,117,255,116,255,106,255,93,255,94,255,106,255,106,255,86,255,64,255,56,255,55,255,52,255,52,255,54,255, +47,255,35,255,30,255,23,255,10,255,0,255,2,255,7,255,7,255,254,254,234,254,219,254,226,254,239,254,238,254,223,254, +208,254,207,254,213,254,206,254,194,254,196,254,202,254,191,254,180,254,179,254,178,254,179,254,185,254,181,254,172,254,180,254, +189,254,174,254,160,254,169,254,181,254,185,254,191,254,193,254,184,254,178,254,178,254,183,254,194,254,203,254,204,254,212,254, +224,254,218,254,207,254,220,254,246,254,250,254,245,254,1,255,19,255,21,255,17,255,30,255,47,255,47,255,45,255,59,255, +73,255,74,255,83,255,105,255,113,255,110,255,122,255,140,255,136,255,127,255,137,255,158,255,171,255,176,255,181,255,184,255, +186,255,189,255,195,255,199,255,204,255,210,255,214,255,213,255,215,255,217,255,215,255,218,255,231,255,238,255,237,255,236,255, +239,255,241,255,242,255,247,255,253,255,1,0,2,0,2,0,7,0,14,0,21,0,28,0,32,0,32,0,31,0,38,0, +53,0,73,0,83,0,75,0,63,0,68,0,80,0,84,0,88,0,97,0,101,0,100,0,108,0,117,0,115,0,112,0, +117,0,122,0,122,0,126,0,128,0,117,0,108,0,120,0,131,0,120,0,113,0,124,0,125,0,109,0,106,0,114,0, +105,0,95,0,109,0,121,0,107,0,91,0,93,0,100,0,94,0,82,0,78,0,77,0,71,0,66,0,71,0,80,0, +80,0,71,0,57,0,46,0,55,0,70,0,64,0,47,0,50,0,59,0,49,0,35,0,31,0,35,0,42,0,44,0, +37,0,32,0,36,0,36,0,30,0,27,0,22,0,17,0,24,0,34,0,32,0,32,0,37,0,29,0,17,0,22,0, +33,0,31,0,24,0,20,0,19,0,23,0,28,0,29,0,32,0,35,0,30,0,23,0,26,0,32,0,33,0,32,0, +32,0,37,0,41,0,35,0,25,0,25,0,32,0,39,0,43,0,41,0,31,0,27,0,35,0,37,0,34,0,44,0, +56,0,47,0,30,0,26,0,30,0,29,0,31,0,43,0,49,0,37,0,21,0,19,0,31,0,44,0,52,0,57,0, +57,0,48,0,39,0,42,0,52,0,61,0,66,0,67,0,63,0,59,0,60,0,63,0,63,0,69,0,88,0,101,0, +95,0,82,0,79,0,85,0,94,0,101,0,107,0,108,0,104,0,98,0,98,0,105,0,111,0,109,0,106,0,110,0, +120,0,121,0,113,0,111,0,123,0,133,0,129,0,123,0,129,0,138,0,141,0,140,0,139,0,138,0,138,0,139,0, +145,0,153,0,154,0,150,0,152,0,154,0,151,0,155,0,167,0,170,0,166,0,169,0,177,0,178,0,171,0,167,0, +174,0,186,0,184,0,174,0,172,0,180,0,181,0,176,0,180,0,192,0,196,0,188,0,183,0,191,0,196,0,192,0, +191,0,200,0,203,0,199,0,198,0,196,0,192,0,198,0,211,0,214,0,210,0,208,0,207,0,211,0,218,0,218,0, +215,0,223,0,230,0,222,0,216,0,225,0,232,0,229,0,228,0,232,0,237,0,238,0,233,0,230,0,235,0,242,0, +244,0,244,0,242,0,240,0,242,0,248,0,249,0,243,0,237,0,236,0,241,0,246,0,246,0,242,0,239,0,236,0, +235,0,242,0,246,0,239,0,234,0,235,0,236,0,231,0,227,0,221,0,216,0,222,0,235,0,236,0,224,0,215,0, +215,0,221,0,226,0,225,0,222,0,224,0,226,0,216,0,203,0,204,0,215,0,219,0,218,0,219,0,217,0,212,0, +216,0,220,0,213,0,209,0,222,0,233,0,225,0,215,0,213,0,216,0,216,0,216,0,216,0,218,0,216,0,211,0, +212,0,220,0,222,0,217,0,211,0,207,0,208,0,215,0,218,0,212,0,207,0,204,0,198,0,198,0,205,0,203,0, +195,0,197,0,202,0,195,0,184,0,185,0,192,0,189,0,182,0,183,0,185,0,178,0,169,0,172,0,180,0,175,0, +168,0,172,0,174,0,165,0,158,0,160,0,163,0,164,0,166,0,166,0,160,0,154,0,155,0,158,0,156,0,150,0, +150,0,156,0,161,0,158,0,150,0,147,0,150,0,148,0,141,0,140,0,147,0,150,0,143,0,137,0,138,0,143,0, +142,0,133,0,124,0,128,0,132,0,124,0,116,0,120,0,123,0,115,0,106,0,104,0,106,0,107,0,107,0,105,0, +107,0,111,0,111,0,105,0,100,0,97,0,97,0,98,0,96,0,94,0,98,0,104,0,103,0,100,0,102,0,109,0, +115,0,116,0,115,0,114,0,115,0,115,0,117,0,122,0,124,0,123,0,124,0,132,0,136,0,133,0,135,0,144,0, +144,0,137,0,140,0,152,0,152,0,144,0,143,0,147,0,148,0,153,0,159,0,159,0,155,0,155,0,153,0,146,0, +144,0,145,0,148,0,153,0,155,0,150,0,143,0,139,0,144,0,152,0,150,0,137,0,133,0,140,0,141,0,135,0, +130,0,127,0,127,0,131,0,128,0,120,0,122,0,130,0,124,0,115,0,117,0,121,0,117,0,113,0,114,0,116,0, +115,0,111,0,108,0,107,0,105,0,101,0,102,0,103,0,95,0,89,0,93,0,95,0,90,0,88,0,87,0,81,0, +73,0,72,0,71,0,67,0,63,0,60,0,58,0,54,0,47,0,42,0,41,0,42,0,39,0,34,0,29,0,23,0, +15,0,9,0,8,0,9,0,7,0,2,0,254,255,244,255,234,255,235,255,246,255,244,255,233,255,230,255,230,255,225,255, +220,255,221,255,218,255,214,255,216,255,220,255,215,255,205,255,201,255,207,255,213,255,211,255,206,255,205,255,208,255,210,255, +211,255,209,255,205,255,204,255,209,255,216,255,221,255,219,255,212,255,208,255,211,255,211,255,207,255,212,255,221,255,221,255, +213,255,214,255,218,255,215,255,214,255,222,255,226,255,215,255,207,255,213,255,225,255,226,255,221,255,219,255,218,255,217,255, +217,255,218,255,217,255,217,255,219,255,222,255,222,255,221,255,220,255,218,255,219,255,225,255,227,255,225,255,226,255,230,255, +229,255,230,255,237,255,242,255,240,255,241,255,246,255,246,255,244,255,249,255,253,255,252,255,254,255,5,0,9,0,10,0, +9,0,11,0,17,0,23,0,19,0,15,0,22,0,31,0,32,0,30,0,33,0,35,0,31,0,30,0,37,0,42,0, +36,0,33,0,39,0,43,0,36,0,34,0,41,0,41,0,35,0,35,0,41,0,42,0,34,0,28,0,29,0,32,0, +30,0,25,0,23,0,24,0,24,0,25,0,23,0,17,0,16,0,18,0,12,0,5,0,8,0,12,0,5,0,1,0, +6,0,7,0,1,0,255,255,2,0,1,0,252,255,248,255,246,255,247,255,250,255,252,255,250,255,244,255,241,255,243,255, +243,255,240,255,242,255,244,255,240,255,238,255,241,255,243,255,244,255,246,255,242,255,236,255,236,255,237,255,233,255,232,255, +237,255,238,255,232,255,229,255,227,255,226,255,228,255,232,255,232,255,227,255,224,255,225,255,225,255,220,255,216,255,220,255, +225,255,221,255,214,255,214,255,217,255,216,255,211,255,207,255,208,255,209,255,209,255,209,255,209,255,208,255,209,255,208,255, +201,255,197,255,204,255,210,255,204,255,203,255,210,255,210,255,202,255,202,255,208,255,207,255,206,255,211,255,216,255,216,255, +211,255,211,255,217,255,223,255,221,255,217,255,220,255,225,255,226,255,226,255,226,255,227,255,228,255,232,255,233,255,232,255, +232,255,234,255,238,255,239,255,239,255,240,255,241,255,242,255,245,255,248,255,242,255,236,255,240,255,250,255,251,255,247,255, +245,255,248,255,250,255,251,255,251,255,250,255,250,255,254,255,2,0,0,0,254,255,0,0,4,0,4,0,3,0,1,0, +253,255,254,255,2,0,3,0,1,0,2,0,5,0,5,0,1,0,2,0,6,0,9,0,8,0,8,0,10,0,8,0, +3,0,4,0,7,0,7,0,7,0,9,0,8,0,4,0,4,0,6,0,5,0,7,0,14,0,16,0,7,0,1,0, +4,0,8,0,7,0,7,0,9,0,9,0,6,0,4,0,4,0,3,0,4,0,6,0,7,0,4,0,2,0,1,0, +3,0,5,0,3,0,255,255,254,255,0,0,255,255,252,255,250,255,250,255,254,255,253,255,246,255,243,255,248,255,250,255, +247,255,247,255,249,255,245,255,243,255,245,255,244,255,238,255,237,255,239,255,239,255,240,255,241,255,236,255,230,255,231,255, +234,255,235,255,235,255,234,255,233,255,231,255,227,255,227,255,232,255,234,255,231,255,228,255,227,255,227,255,228,255,229,255, +228,255,228,255,228,255,228,255,229,255,229,255,224,255,223,255,230,255,233,255,226,255,224,255,231,255,233,255,226,255,223,255, +227,255,230,255,230,255,228,255,228,255,230,255,228,255,227,255,230,255,232,255,229,255,227,255,229,255,230,255,228,255,227,255, +231,255,235,255,234,255,230,255,229,255,231,255,231,255,231,255,233,255,234,255,234,255,235,255,235,255,234,255,236,255,240,255, +241,255,241,255,240,255,237,255,236,255,238,255,237,255,238,255,244,255,247,255,243,255,242,255,245,255,242,255,238,255,242,255, +249,255,252,255,250,255,247,255,242,255,240,255,243,255,247,255,249,255,250,255,252,255,251,255,245,255,240,255,243,255,250,255, +253,255,253,255,253,255,251,255,249,255,250,255,252,255,251,255,250,255,254,255,1,0,252,255,247,255,248,255,251,255,253,255, +254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,254,255,255,255,1,0, +1,0,1,0,1,0,1,0,0,0,253,255,254,255,2,0,3,0,0,0,0,0,1,0,254,255,250,255,250,255,253,255, +254,255,251,255,249,255,249,255,250,255,248,255,246,255,248,255,250,255,247,255,243,255,244,255,245,255,244,255,244,255,245,255, +245,255,244,255,244,255,243,255,240,255,238,255,240,255,242,255,243,255,242,255,241,255,236,255,231,255,231,255,234,255,237,255, +240,255,239,255,237,255,235,255,233,255,230,255,230,255,233,255,235,255,238,255,239,255,234,255,226,255,227,255,232,255,231,255, +231,255,234,255,231,255,227,255,229,255,230,255,228,255,229,255,230,255,227,255,227,255,231,255,231,255,227,255,226,255,229,255, +230,255,227,255,224,255,226,255,231,255,230,255,226,255,225,255,227,255,229,255,229,255,229,255,228,255,229,255,230,255,228,255, +228,255,230,255,229,255,229,255,232,255,231,255,226,255,227,255,233,255,234,255,233,255,234,255,235,255,233,255,231,255,233,255, +235,255,235,255,234,255,236,255,239,255,237,255,234,255,235,255,237,255,238,255,239,255,240,255,239,255,238,255,237,255,238,255, +240,255,242,255,242,255,243,255,244,255,242,255,240,255,242,255,243,255,241,255,242,255,243,255,243,255,244,255,244,255,242,255, +244,255,250,255,250,255,245,255,245,255,245,255,243,255,243,255,248,255,250,255,249,255,248,255,246,255,245,255,246,255,248,255, +251,255,253,255,251,255,247,255,246,255,247,255,247,255,248,255,252,255,254,255,251,255,248,255,249,255,250,255,247,255,247,255, +251,255,254,255,252,255,248,255,249,255,252,255,252,255,250,255,252,255,252,255,249,255,248,255,252,255,252,255,248,255,249,255, +254,255,253,255,248,255,249,255,251,255,249,255,248,255,252,255,254,255,252,255,250,255,250,255,248,255,246,255,248,255,251,255, +249,255,246,255,248,255,252,255,250,255,246,255,248,255,250,255,248,255,245,255,246,255,246,255,246,255,245,255,245,255,246,255, +246,255,245,255,246,255,248,255,247,255,243,255,244,255,245,255,244,255,242,255,244,255,246,255,244,255,241,255,242,255,243,255, +241,255,240,255,242,255,243,255,240,255,240,255,242,255,242,255,240,255,241,255,242,255,241,255,241,255,243,255,245,255,245,255, +243,255,240,255,241,255,243,255,240,255,239,255,244,255,244,255,241,255,242,255,243,255,240,255,242,255,246,255,244,255,240,255, +242,255,244,255,244,255,245,255,242,255,237,255,238,255,245,255,247,255,243,255,240,255,242,255,244,255,243,255,242,255,243,255, +244,255,242,255,241,255,243,255,243,255,241,255,242,255,242,255,239,255,238,255,240,255,243,255,244,255,244,255,242,255,241,255, +241,255,240,255,242,255,246,255,245,255,241,255,240,255,243,255,243,255,242,255,244,255,245,255,243,255,241,255,242,255,245,255, +246,255,245,255,245,255,246,255,242,255,240,255,244,255,248,255,247,255,246,255,247,255,246,255,243,255,241,255,243,255,246,255, +247,255,244,255,244,255,245,255,245,255,244,255,248,255,249,255,244,255,243,255,244,255,245,255,245,255,248,255,247,255,244,255, +243,255,245,255,246,255,247,255,247,255,244,255,244,255,246,255,246,255,246,255,247,255,247,255,247,255,249,255,249,255,249,255, +249,255,247,255,244,255,244,255,249,255,251,255,249,255,248,255,251,255,252,255,251,255,251,255,250,255,248,255,250,255,253,255, +253,255,251,255,249,255,250,255,251,255,251,255,252,255,253,255,254,255,252,255,249,255,251,255,254,255,251,255,250,255,254,255, +255,255,252,255,251,255,254,255,254,255,252,255,252,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255,251,255, +252,255,254,255,253,255,250,255,251,255,255,255,255,255,252,255,254,255,1,0,254,255,251,255,253,255,253,255,253,255,255,255, +255,255,252,255,252,255,255,255,255,255,252,255,251,255,254,255,0,0,253,255,253,255,2,0,4,0,0,0,253,255,255,255, +0,0,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,1,0,1,0,252,255,251,255,0,0, +255,255,252,255,251,255,251,255,253,255,254,255,251,255,248,255,253,255,2,0,252,255,247,255,251,255,253,255,249,255,248,255, +251,255,252,255,251,255,250,255,247,255,247,255,250,255,251,255,249,255,248,255,249,255,250,255,248,255,245,255,246,255,250,255, +248,255,247,255,250,255,250,255,246,255,245,255,248,255,249,255,247,255,246,255,248,255,249,255,248,255,246,255,246,255,248,255, +248,255,247,255,246,255,246,255,247,255,249,255,248,255,246,255,246,255,247,255,246,255,246,255,249,255,249,255,247,255,246,255, +247,255,249,255,249,255,248,255,249,255,251,255,249,255,245,255,248,255,254,255,254,255,251,255,250,255,251,255,251,255,251,255, +250,255,250,255,252,255,253,255,251,255,251,255,253,255,252,255,250,255,249,255,248,255,250,255,252,255,253,255,254,255,0,0, + +}; \ No newline at end of file diff --git a/src/client/sound/data/zpig4.pcm b/src/client/sound/data/zpig4.pcm new file mode 100755 index 0000000..312b6c3 --- /dev/null +++ b/src/client/sound/data/zpig4.pcm @@ -0,0 +1,2321 @@ +unsigned char PCM_zpig4[74178] = { +1,0,0,0,2,0,0,0,68,172,0,0,217,144,0,0,0,0,1,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,1,0,2,0, +1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0, +1,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,3,0,3,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,0,0, +1,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,2,0,2,0,1,0,1,0,2,0,1,0, +1,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,3,0,3,0, +2,0,1,0,2,0,4,0,4,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,2,0,255,255,254,255, +255,255,2,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0,255,255, +255,255,255,255,254,255,255,255,2,0,5,0,4,0,2,0,1,0,1,0,3,0,5,0,5,0,3,0,2,0,2,0, +2,0,3,0,6,0,6,0,3,0,0,0,0,0,2,0,4,0,4,0,2,0,0,0,254,255,0,0,2,0,4,0, +3,0,0,0,254,255,254,255,0,0,2,0,2,0,1,0,255,255,255,255,0,0,2,0,4,0,3,0,0,0,253,255, +252,255,255,255,2,0,3,0,0,0,253,255,251,255,252,255,1,0,2,0,253,255,247,255,247,255,249,255,251,255,251,255, +251,255,247,255,241,255,240,255,242,255,245,255,246,255,243,255,238,255,236,255,238,255,240,255,240,255,239,255,238,255,235,255, +233,255,235,255,239,255,238,255,233,255,229,255,230,255,233,255,236,255,237,255,234,255,230,255,226,255,226,255,230,255,235,255, +235,255,228,255,223,255,223,255,226,255,229,255,229,255,226,255,222,255,220,255,219,255,221,255,225,255,227,255,225,255,219,255, +217,255,219,255,222,255,223,255,219,255,213,255,209,255,210,255,214,255,219,255,222,255,218,255,212,255,209,255,213,255,217,255, +218,255,216,255,213,255,210,255,209,255,211,255,216,255,216,255,212,255,209,255,210,255,215,255,220,255,221,255,218,255,213,255, +210,255,210,255,216,255,224,255,224,255,216,255,210,255,211,255,217,255,221,255,220,255,216,255,211,255,209,255,213,255,219,255, +221,255,217,255,211,255,206,255,208,255,213,255,220,255,222,255,218,255,212,255,210,255,215,255,218,255,215,255,210,255,207,255, +206,255,210,255,219,255,226,255,222,255,214,255,210,255,213,255,219,255,229,255,233,255,224,255,211,255,207,255,215,255,223,255, +228,255,229,255,226,255,220,255,221,255,228,255,231,255,228,255,225,255,223,255,220,255,221,255,226,255,231,255,230,255,224,255, +220,255,221,255,227,255,231,255,229,255,222,255,218,255,220,255,226,255,230,255,229,255,223,255,216,255,212,255,215,255,220,255, +224,255,222,255,217,255,213,255,213,255,219,255,225,255,227,255,225,255,221,255,218,255,218,255,223,255,227,255,226,255,223,255, +222,255,225,255,230,255,233,255,233,255,229,255,224,255,225,255,232,255,239,255,240,255,235,255,229,255,227,255,233,255,242,255, +248,255,244,255,233,255,220,255,217,255,226,255,236,255,240,255,237,255,232,255,228,255,229,255,237,255,244,255,245,255,239,255, +231,255,228,255,232,255,239,255,243,255,242,255,236,255,232,255,238,255,254,255,12,0,12,0,2,0,254,255,1,0,6,0, +12,0,17,0,16,0,9,0,6,0,11,0,21,0,30,0,34,0,32,0,25,0,21,0,27,0,38,0,46,0,45,0, +37,0,29,0,30,0,37,0,41,0,42,0,41,0,40,0,39,0,42,0,48,0,51,0,52,0,50,0,48,0,46,0, +50,0,57,0,62,0,64,0,64,0,62,0,60,0,65,0,74,0,79,0,80,0,80,0,80,0,81,0,87,0,93,0, +94,0,91,0,92,0,98,0,106,0,113,0,115,0,110,0,102,0,98,0,103,0,117,0,129,0,130,0,122,0,116,0, +118,0,123,0,125,0,126,0,129,0,131,0,128,0,128,0,132,0,137,0,140,0,140,0,138,0,138,0,144,0,154,0, +161,0,160,0,154,0,155,0,167,0,182,0,191,0,186,0,174,0,167,0,170,0,180,0,190,0,201,0,211,0,214,0, +209,0,206,0,211,0,217,0,213,0,203,0,199,0,206,0,214,0,215,0,209,0,204,0,207,0,214,0,221,0,224,0, +223,0,218,0,212,0,205,0,203,0,206,0,213,0,222,0,232,0,237,0,234,0,227,0,223,0,227,0,231,0,233,0, +237,0,246,0,255,0,0,1,255,0,255,0,0,1,254,0,1,1,11,1,22,1,23,1,16,1,12,1,14,1,20,1, +26,1,31,1,33,1,29,1,23,1,21,1,25,1,35,1,45,1,51,1,49,1,42,1,42,1,48,1,53,1,56,1, +62,1,64,1,60,1,59,1,69,1,79,1,80,1,74,1,67,1,66,1,78,1,98,1,104,1,89,1,77,1,87,1, +109,1,127,1,142,1,148,1,136,1,119,1,121,1,140,1,154,1,160,1,168,1,172,1,166,1,167,1,187,1,208,1, +215,1,214,1,216,1,221,1,232,1,246,1,253,1,253,1,6,2,23,2,27,2,23,2,31,2,46,2,48,2,43,2, +51,2,69,2,80,2,82,2,84,2,84,2,83,2,94,2,112,2,120,2,113,2,105,2,105,2,101,2,89,2,73,2, +60,2,48,2,40,2,31,2,14,2,244,1,215,1,189,1,169,1,154,1,135,1,105,1,62,1,16,1,232,0,203,0, +181,0,152,0,109,0,60,0,21,0,255,255,239,255,212,255,170,255,123,255,82,255,46,255,12,255,244,254,225,254,192,254, +140,254,92,254,66,254,43,254,8,254,227,253,193,253,153,253,104,253,62,253,27,253,238,252,180,252,120,252,68,252,28,252, +251,251,210,251,150,251,86,251,32,251,240,250,198,250,164,250,125,250,64,250,250,249,200,249,169,249,136,249,101,249,71,249, +37,249,250,248,214,248,191,248,168,248,139,248,108,248,80,248,59,248,48,248,36,248,6,248,228,247,211,247,210,247,209,247, +212,247,216,247,206,247,179,247,155,247,146,247,152,247,172,247,192,247,183,247,148,247,128,247,145,247,172,247,191,247,207,247, +216,247,208,247,200,247,219,247,2,248,33,248,41,248,35,248,33,248,50,248,89,248,136,248,168,248,172,248,166,248,177,248, +220,248,22,249,63,249,82,249,96,249,119,249,153,249,199,249,254,249,47,250,79,250,97,250,118,250,164,250,237,250,55,251, +101,251,128,251,167,251,223,251,25,252,86,252,149,252,197,252,223,252,253,252,50,253,116,253,176,253,220,253,253,253,32,254, +82,254,144,254,201,254,246,254,25,255,46,255,65,255,105,255,165,255,211,255,231,255,249,255,20,0,48,0,82,0,127,0, +173,0,203,0,223,0,250,0,33,1,75,1,118,1,154,1,184,1,211,1,233,1,252,1,26,2,73,2,114,2,129,2, +134,2,158,2,199,2,235,2,3,3,16,3,20,3,19,3,20,3,28,3,39,3,47,3,48,3,42,3,37,3,42,3, +54,3,63,3,63,3,54,3,38,3,18,3,3,3,251,2,243,2,231,2,220,2,213,2,203,2,191,2,184,2,187,2, +190,2,176,2,150,2,125,2,109,2,103,2,106,2,105,2,90,2,67,2,53,2,50,2,46,2,40,2,39,2,32,2, +12,2,250,1,248,1,252,1,250,1,244,1,238,1,228,1,218,1,216,1,220,1,217,1,205,1,193,1,193,1,207,1, +222,1,219,1,195,1,171,1,159,1,155,1,153,1,155,1,153,1,136,1,116,1,117,1,141,1,167,1,178,1,173,1, +161,1,148,1,145,1,155,1,164,1,162,1,156,1,165,1,192,1,226,1,252,1,11,2,22,2,36,2,57,2,87,2, +120,2,148,2,160,2,161,2,171,2,208,2,9,3,61,3,92,3,103,3,104,3,115,3,156,3,218,3,6,4,17,4, +16,4,27,4,47,4,79,4,117,4,140,4,135,4,129,4,152,4,192,4,226,4,0,5,24,5,32,5,37,5,72,5, +131,5,164,5,155,5,137,5,139,5,160,5,197,5,246,5,31,6,47,6,45,6,53,6,84,6,124,6,156,6,180,6, +206,6,228,6,244,6,13,7,57,7,90,7,89,7,79,7,99,7,135,7,151,7,140,7,128,7,128,7,147,7,188,7, +242,7,30,8,49,8,47,8,37,8,41,8,61,8,76,8,68,8,44,8,23,8,12,8,20,8,52,8,92,8,122,8, +152,8,194,8,223,8,221,8,206,8,202,8,207,8,217,8,245,8,30,9,70,9,100,9,127,9,160,9,207,9,16,10, +84,10,139,10,178,10,214,10,0,11,61,11,144,11,234,11,67,12,161,12,250,12,54,13,94,13,155,13,229,13,10,14, +4,14,15,14,78,14,151,14,185,14,193,14,205,14,218,14,214,14,203,14,198,14,172,14,97,14,253,13,171,13,103,13, +23,13,193,12,105,12,236,11,67,11,172,10,62,10,187,9,253,8,66,8,200,7,123,7,40,7,170,6,236,5,26,5, +152,4,129,4,118,4,50,4,210,3,101,3,220,2,123,2,156,2,249,2,245,2,127,2,5,2,194,1,176,1,202,1, +214,1,116,1,192,0,88,0,110,0,137,0,59,0,144,255,189,254,246,253,118,253,45,253,179,252,199,251,154,250,111,249, +115,248,218,247,153,247,34,247,3,246,146,244,119,243,225,242,139,242,40,242,128,241,141,240,171,239,60,239,38,239,8,239, +196,238,116,238,31,238,209,237,186,237,222,237,245,237,207,237,130,237,63,237,48,237,114,237,225,237,24,238,234,237,154,237, +127,237,157,237,209,237,249,237,253,237,215,237,166,237,141,237,154,237,208,237,26,238,54,238,239,237,125,237,81,237,134,237, +202,237,216,237,178,237,124,237,86,237,103,237,180,237,4,238,19,238,233,237,213,237,7,238,101,238,201,238,31,239,85,239, +89,239,92,239,186,239,125,240,52,241,122,241,119,241,163,241,47,242,248,242,201,243,127,244,247,244,62,245,156,245,85,246, +72,247,25,248,158,248,246,248,74,249,182,249,92,250,61,251,12,252,116,252,135,252,168,252,5,253,121,253,224,253,50,254, +90,254,93,254,115,254,189,254,15,255,66,255,109,255,156,255,175,255,176,255,212,255,23,0,60,0,72,0,115,0,182,0, +224,0,0,1,62,1,121,1,149,1,195,1,37,2,126,2,162,2,201,2,24,3,107,3,164,3,219,3,16,4,49,4, +87,4,160,4,234,4,7,5,2,5,239,4,203,4,173,4,188,4,224,4,220,4,168,4,103,4,33,4,215,3,159,3, +129,3,89,3,25,3,201,2,103,2,0,2,186,1,145,1,71,1,221,0,145,0,87,0,231,255,98,255,38,255,25,255, +202,254,64,254,216,253,149,253,67,253,3,253,248,252,225,252,124,252,3,252,198,251,175,251,138,251,99,251,70,251,17,251, +178,250,86,250,44,250,36,250,13,250,214,249,145,249,79,249,17,249,229,248,219,248,210,248,157,248,83,248,41,248,11,248, +201,247,136,247,126,247,121,247,54,247,233,246,224,246,245,246,218,246,155,246,93,246,17,246,192,245,163,245,187,245,199,245, +182,245,170,245,163,245,144,245,149,245,208,245,18,246,36,246,33,246,77,246,182,246,38,247,101,247,120,247,145,247,205,247, +20,248,97,248,197,248,25,249,23,249,223,248,217,248,25,249,90,249,144,249,206,249,238,249,216,249,220,249,41,250,97,250, +49,250,223,249,185,249,169,249,159,249,192,249,239,249,219,249,140,249,84,249,77,249,110,249,206,249,95,250,171,250,108,250, +5,250,255,249,103,250,237,250,85,251,137,251,140,251,131,251,163,251,14,252,191,252,118,253,205,253,155,253,62,253,70,253, +207,253,114,254,203,254,199,254,143,254,109,254,162,254,31,255,137,255,162,255,134,255,111,255,119,255,164,255,229,255,247,255, +174,255,68,255,36,255,100,255,187,255,229,255,199,255,104,255,17,255,42,255,182,255,59,0,79,0,22,0,243,255,22,0, +111,0,202,0,242,0,223,0,200,0,227,0,45,1,137,1,216,1,249,1,237,1,247,1,80,2,201,2,16,3,23,3, +1,3,248,2,38,3,155,3,44,4,147,4,180,4,164,4,150,4,184,4,9,5,105,5,185,5,226,5,226,5,216,5, +228,5,3,6,67,6,166,6,235,6,211,6,138,6,99,6,116,6,159,6,186,6,172,6,146,6,158,6,209,6,31,7, +142,7,242,7,16,8,16,8,48,8,99,8,166,8,24,9,143,9,197,9,203,9,219,9,20,10,126,10,241,10,43,11, +70,11,137,11,218,11,4,12,35,12,64,12,95,12,186,12,61,13,98,13,38,13,6,13,7,13,236,12,250,12,102,13, +208,13,229,13,165,13,44,13,222,12,31,13,162,13,217,13,204,13,179,13,137,13,102,13,110,13,137,13,200,13,98,14, +254,14,12,15,168,14,62,14,245,13,245,13,100,14,237,14,6,15,187,14,138,14,177,14,13,15,121,15,219,15,225,15, +89,15,199,14,205,14,52,15,110,15,138,15,165,15,119,15,48,15,106,15,238,15,19,16,252,15,16,16,12,16,185,15, +130,15,178,15,17,16,103,16,169,16,199,16,174,16,124,16,123,16,196,16,12,17,21,17,246,16,192,16,135,16,166,16, +39,17,155,17,250,17,139,18,229,18,157,18,69,18,115,18,15,19,23,20,107,21,62,22,63,22,61,22,208,22,221,23, +62,25,170,26,242,27,133,29,104,31,252,32,122,34,52,36,246,36,89,36,103,36,242,37,41,39,80,39,250,38,97,37, +153,34,130,33,41,35,141,36,170,35,179,33,131,31,199,28,58,26,221,24,214,23,136,21,250,17,229,14,155,13,196,13, +74,14,250,13,113,11,55,7,35,5,187,7,14,12,221,13,135,12,79,9,2,6,6,6,244,10,59,17,108,20,153,19, +226,15,18,12,183,12,173,18,96,24,182,24,114,20,75,15,166,12,59,14,158,17,210,17,127,13,5,8,109,4,43,3, +65,3,171,2,124,255,31,250,73,245,130,243,183,244,153,245,167,242,81,236,141,230,176,228,228,230,33,234,44,234,232,229, +210,224,131,222,48,223,80,225,42,227,217,226,34,224,81,221,134,220,14,222,231,224,181,226,71,225,240,221,125,220,76,222, +70,225,197,226,89,225,151,221,75,218,248,217,118,220,215,223,245,225,247,224,252,220,28,217,181,216,27,220,117,224,232,225, +168,222,29,217,236,213,61,215,243,218,104,221,155,220,38,217,101,213,205,211,67,213,76,216,239,217,83,216,144,212,127,209, +255,208,197,210,219,212,52,213,164,211,26,210,88,210,30,212,245,213,246,214,119,215,63,216,111,217,198,218,89,220,241,221, +194,222,239,222,228,223,49,226,247,228,110,231,60,233,16,234,126,234,202,235,25,238,87,240,186,241,62,242,100,242,228,242, +248,243,93,245,220,246,222,247,156,247,199,246,244,246,254,247,140,248,108,248,255,247,66,247,245,246,252,247,102,249,168,249, +237,248,74,248,128,248,237,249,249,251,29,253,179,252,124,251,186,250,205,251,236,254,226,1,158,2,8,2,240,1,153,2, +247,3,33,6,23,8,245,8,78,9,181,9,40,10,27,11,138,12,96,13,110,13,180,13,95,14,241,14,115,15,186,15, +99,15,254,14,31,15,60,15,246,14,182,14,123,14,242,13,48,13,68,12,105,11,85,11,210,11,153,11,134,10,181,9, +98,9,30,9,252,8,207,8,251,7,175,6,126,5,146,4,76,4,3,5,167,5,221,4,252,2,109,1,19,1,9,2, +100,3,143,3,16,2,43,0,84,255,251,255,126,1,99,2,156,1,219,255,171,254,204,254,32,0,181,1,185,1,98,255, +163,252,6,252,154,253,90,255,124,255,145,253,201,250,49,249,136,249,117,250,157,250,221,249,30,248,124,245,161,243,42,244, +219,245,16,246,61,244,207,241,4,240,171,239,245,240,87,242,218,241,227,239,113,238,53,238,130,238,21,239,230,239,89,240, +239,239,51,239,84,239,211,240,174,242,102,243,231,242,126,242,10,243,81,244,182,245,115,246,1,246,28,245,32,245,57,246, +116,247,62,248,135,248,24,248,45,247,218,246,200,247,30,249,111,249,108,248,34,247,186,246,99,247,107,248,247,248,178,248, +51,248,89,248,46,249,246,249,80,250,117,250,163,250,9,251,169,251,30,252,94,252,51,253,182,254,186,255,222,255,37,0, +159,0,99,0,70,0,249,1,132,4,102,5,168,4,75,4,215,4,162,5,207,6,76,8,199,8,224,7,42,7,118,7, +173,7,109,7,185,7,83,8,204,7,177,6,26,7,226,8,208,9,250,8,8,7,163,4,32,3,29,4,145,6,85,7, +117,5,200,2,189,0,249,255,44,1,97,3,213,3,147,1,175,254,66,253,195,253,150,255,246,0,1,0,109,253,6,252, +5,253,15,255,92,0,251,255,41,254,164,252,58,253,89,255,173,0,8,0,86,254,8,253,196,252,120,253,156,254,20,255, +207,253,73,251,170,249,67,250,213,251,86,252,61,251,73,249,118,247,179,246,11,247,59,247,94,246,34,245,102,244,251,243, +138,243,49,243,246,242,171,242,42,242,92,241,129,240,80,240,247,240,165,241,158,241,15,241,121,240,65,240,202,240,33,242, +135,243,12,244,133,243,190,242,178,242,163,243,252,244,246,245,27,246,129,245,11,245,199,245,122,247,190,248,240,248,216,248, +40,249,178,249,51,250,154,250,185,250,128,250,83,250,142,250,20,251,190,251,165,252,169,253,59,254,46,254,52,254,215,254, +138,255,164,255,143,255,239,255,148,0,20,1,104,1,161,1,247,1,250,2,158,4,239,5,107,6,119,6,92,6,80,6, +245,6,122,8,9,10,240,10,62,11,63,11,136,11,194,12,129,14,147,15,208,15,252,15,104,16,48,17,148,18,8,20, +151,20,159,20,48,21,41,22,212,22,99,23,50,24,215,24,249,24,244,24,60,25,204,25,54,26,29,26,181,25,141,25, +211,25,96,26,248,26,23,27,117,26,231,25,73,26,237,26,198,26,32,26,181,25,91,25,246,24,16,25,189,25,74,26, +60,26,190,25,80,25,127,25,67,26,212,26,162,26,242,25,47,25,160,24,175,24,106,25,21,26,6,26,111,25,229,24, +214,24,113,25,97,26,175,26,185,25,51,24,147,23,92,24,125,25,152,25,115,24,179,22,20,21,92,20,11,21,94,22, +180,22,123,21,177,19,132,18,114,18,80,19,56,20,8,20,156,18,13,17,129,16,45,17,88,18,7,19,215,18,83,18, +121,18,196,19,162,21,207,22,167,22,11,22,165,22,92,25,143,29,65,33,91,34,211,32,33,31,189,31,166,34,195,37, +219,38,35,37,238,33,179,31,204,31,151,33,82,35,6,35,232,31,203,27,96,25,185,24,181,23,64,21,164,17,56,13, +58,9,181,7,141,8,33,9,193,7,243,4,190,1,116,255,247,255,93,3,122,6,248,5,46,2,202,254,77,255,2,4, +239,9,90,13,167,12,100,9,32,7,187,8,253,13,142,19,121,21,31,18,22,12,206,8,80,11,112,16,60,18,134,14, +2,8,212,2,226,1,230,4,100,7,114,4,171,252,165,245,134,243,193,245,220,248,188,248,246,242,222,233,220,227,57,229, +88,235,84,239,176,236,222,228,126,221,190,219,66,224,112,230,111,232,121,228,1,222,22,218,115,219,235,224,245,229,225,229, +129,224,205,218,224,217,47,222,213,227,232,229,42,226,100,219,194,215,225,218,246,225,192,230,121,229,134,223,194,217,203,216, +149,221,81,228,14,231,225,226,251,218,10,214,247,215,103,222,58,227,23,226,22,220,127,214,197,213,142,217,191,221,117,222, +189,218,249,212,40,209,145,209,202,212,90,215,179,214,204,210,134,206,220,205,167,209,55,214,156,215,169,213,223,210,224,209, +34,212,105,216,37,219,122,218,137,216,82,216,143,218,111,222,158,226,47,229,7,229,156,227,210,227,4,231,181,235,235,238, +230,238,213,236,143,235,228,236,72,240,96,243,249,243,73,242,196,240,32,241,156,242,185,243,241,243,93,243,104,242,229,241, +98,242,136,243,118,244,84,244,18,243,14,242,220,242,246,244,58,246,193,245,184,244,181,244,89,246,243,248,230,250,85,251, +69,251,27,252,175,253,8,255,244,255,203,0,168,1,176,2,41,4,181,5,110,6,89,6,188,6,108,8,173,10,87,12, +12,13,206,12,207,11,41,11,17,12,246,13,249,14,98,14,23,13,18,12,167,11,216,11,97,12,199,12,172,12,10,12, +83,11,28,11,36,11,109,10,254,8,42,8,103,8,151,8,248,7,246,6,248,5,27,5,253,4,249,5,225,6,52,6, +97,4,63,3,105,3,225,3,28,4,75,4,218,3,61,2,235,0,177,1,153,3,73,4,102,3,43,2,100,1,157,1, +250,2,24,4,143,3,54,2,125,1,66,1,43,1,169,1,69,2,187,1,50,0,226,254,71,254,114,254,95,255,242,255, +202,254,110,252,164,250,31,250,119,250,17,251,245,250,64,249,138,246,163,244,166,244,223,245,141,246,132,245,54,243,36,241, +126,240,96,241,213,242,95,243,85,242,175,240,243,239,177,240,115,242,41,244,130,244,50,243,209,241,51,242,51,244,21,246, +130,246,139,245,120,244,186,244,141,246,165,248,115,249,151,248,16,247,75,246,234,246,99,248,157,249,180,249,117,248,184,246, +232,245,173,246,69,248,84,249,254,248,124,247,27,246,23,246,59,247,81,248,132,248,165,247,30,246,53,245,251,245,166,247, +149,248,129,248,11,248,84,247,224,246,255,247,115,250,241,251,119,251,185,250,3,251,131,251,163,251,16,252,152,252,68,252, +3,252,163,253,0,0,97,0,51,255,27,255,106,0,157,1,95,2,140,2,85,1,216,255,105,0,43,2,81,2,70,1, +71,1,223,1,222,1,104,2,237,3,68,4,133,2,95,0,196,254,188,253,95,254,148,0,43,1,90,254,31,251,246,250, +86,253,169,255,175,0,46,0,23,254,134,251,176,250,107,252,20,255,105,0,100,255,148,252,47,250,18,251,135,255,201,3, +235,3,96,0,239,252,199,252,74,0,171,4,164,5,238,1,71,253,21,252,193,254,228,2,231,5,126,5,52,1,138,252, +41,252,107,0,3,5,158,5,106,1,103,251,115,248,69,251,37,1,42,4,113,1,248,251,250,248,202,250,131,255,70,3, +32,3,32,255,155,250,122,249,160,252,94,1,7,4,156,2,60,254,221,250,27,252,90,1,67,6,54,7,35,4,206,255, +213,253,59,0,82,5,222,8,47,8,126,4,64,1,57,1,202,4,156,9,17,12,95,10,155,6,187,4,152,6,133,10, +86,13,225,12,100,9,223,5,220,5,149,9,173,13,75,15,85,14,237,11,210,9,97,10,199,13,159,16,34,16,124,13, +57,11,157,10,70,12,158,15,204,17,215,16,182,14,113,14,53,16,104,18,232,19,241,19,72,18,73,16,252,15,226,17, +144,20,29,22,192,21,127,20,61,20,201,21,24,24,83,25,146,24,212,22,1,22,208,22,76,24,59,25,16,25,242,23, +238,22,55,23,125,24,75,25,43,25,172,24,243,23,45,23,83,23,168,24,176,25,37,25,160,23,147,22,189,22,220,23, +232,24,201,24,128,23,105,22,179,22,225,23,98,24,166,23,185,22,131,22,182,22,203,22,192,22,126,22,226,21,113,21, +176,21,72,22,189,22,227,22,65,22,160,20,70,19,151,19,230,20,97,21,135,20,65,19,136,18,227,18,56,20,133,21, +176,21,184,20,139,19,248,18,79,19,84,20,31,21,221,20,243,19,161,19,82,20,119,21,167,22,147,23,122,23,117,22, +51,22,164,23,138,25,215,26,4,28,49,29,206,29,110,30,196,31,186,32,136,32,167,32,251,33,254,34,171,34,203,33, +208,32,190,31,126,31,51,32,31,32,139,30,251,28,10,28,100,26,187,23,129,21,70,20,225,18,116,16,193,13,61,12, +71,12,107,12,215,10,138,7,163,4,113,4,53,7,116,10,4,11,97,8,66,5,164,4,28,7,27,11,127,14,146,15, +193,13,139,10,109,9,26,13,142,19,209,22,142,19,87,13,89,10,162,12,19,17,251,18,218,15,141,9,220,4,163,4, +32,7,148,8,162,6,56,1,210,250,146,247,99,249,51,253,175,253,101,248,233,239,247,233,201,234,159,240,156,244,175,241, +209,233,95,227,154,226,156,230,54,235,89,236,167,232,99,226,11,222,204,222,170,227,30,232,211,231,131,226,149,220,65,219, +90,223,103,228,90,229,92,225,200,219,226,216,178,218,126,223,241,226,221,225,20,221,128,216,218,215,208,219,79,225,145,227, +22,224,80,217,26,213,91,215,164,221,92,225,6,223,137,217,174,213,83,213,157,215,125,218,24,219,243,215,50,211,135,208, +64,209,167,211,2,213,127,211,187,207,177,204,201,204,88,207,159,209,142,209,116,207,182,205,123,206,72,209,193,211,106,212, +158,211,156,210,191,210,194,212,233,215,113,218,30,219,75,218,214,217,166,219,134,223,35,227,160,228,36,228,21,227,49,227, +121,229,177,232,55,234,84,233,6,232,47,232,220,233,17,236,138,237,95,237,49,236,199,235,254,236,250,238,88,240,77,240, +17,239,230,237,50,238,54,240,178,242,224,243,22,243,180,241,213,241,239,243,140,246,32,248,47,248,92,247,50,247,224,248, +143,251,28,253,211,252,38,252,170,252,135,254,214,0,148,2,66,3,40,3,44,3,32,4,18,6,50,8,151,9,3,10, +214,9,194,9,105,10,209,11,42,13,182,13,170,13,184,13,31,14,172,14,67,15,15,16,15,17,173,17,76,17,81,16, +203,15,23,16,195,16,73,17,37,17,8,16,164,14,30,14,115,14,189,14,146,14,217,13,116,12,7,11,156,10,27,11, +123,11,37,11,245,9,12,8,151,6,255,6,214,8,40,10,197,9,13,8,59,6,174,5,238,6,2,9,75,10,243,9, +86,8,189,6,100,6,81,7,155,8,146,9,183,9,140,8,190,6,255,5,187,6,163,7,194,7,27,7,162,5,152,3, +59,2,100,2,57,3,36,3,109,1,208,254,245,252,208,252,124,253,75,253,134,251,185,248,54,246,115,245,175,246,55,248, +10,248,212,245,3,243,139,241,141,242,52,245,15,247,88,246,170,243,81,241,75,241,154,243,45,246,220,246,122,245,152,243, +225,242,24,244,159,246,151,248,126,248,199,246,64,245,57,245,192,246,193,248,135,249,31,248,164,245,88,244,67,245,72,247, +143,248,58,248,175,246,5,245,117,244,127,245,28,247,165,247,159,246,231,244,106,243,226,242,229,243,222,245,228,246,213,245, +212,243,243,242,34,244,134,246,60,248,12,248,142,246,71,245,18,245,237,245,103,247,164,248,233,248,108,248,244,247,2,248, +195,248,35,250,152,251,130,252,145,252,200,251,194,250,132,250,66,251,66,252,59,253,33,254,34,254,16,253,168,252,24,254, +0,0,179,0,49,0,4,255,194,253,161,253,241,254,230,255,31,255,195,253,121,253,63,254,87,255,112,0,65,1,69,1, +86,0,37,255,221,254,15,0,224,1,182,2,192,1,198,255,165,254,200,255,136,2,183,4,7,5,251,3,160,2,238,1, +205,2,250,4,143,6,247,5,169,3,153,1,193,1,144,4,204,7,78,8,203,5,59,3,57,3,152,5,96,8,100,9, +145,7,58,4,110,2,219,3,26,7,104,9,39,9,187,6,37,4,241,3,11,7,40,11,152,12,70,10,239,6,228,5, +214,7,7,11,23,13,155,12,84,10,208,8,179,9,2,12,205,13,77,14,184,13,133,12,153,11,252,11,148,13,239,14, +189,14,61,13,226,11,180,11,152,12,220,13,205,14,232,14,59,14,101,13,235,12,243,12,159,13,156,14,235,14,41,14, +83,13,103,13,95,14,180,15,188,16,235,16,162,16,193,16,52,17,106,17,176,17,101,18,244,18,12,19,55,19,122,19, +134,19,230,19,232,20,146,21,98,21,60,21,130,21,125,21,2,21,144,20,53,20,240,19,34,20,158,20,159,20,8,20, +127,19,100,19,136,19,165,19,181,19,231,19,20,20,159,19,121,18,154,17,178,17,52,18,84,18,255,17,144,17,88,17, +110,17,152,17,191,17,23,18,118,18,64,18,130,17,8,17,43,17,128,17,156,17,79,17,162,16,29,16,89,16,27,17, +112,17,201,16,164,15,28,15,160,15,86,16,64,16,129,15,172,14,206,13,45,13,139,13,194,14,118,15,198,14,43,13, +174,11,68,11,84,12,234,13,78,14,240,12,250,10,243,9,137,10,44,12,66,13,151,12,239,10,34,10,168,10,99,11, +176,11,199,11,97,11,69,10,213,9,114,11,190,13,68,14,21,13,24,12,46,12,96,13,187,15,251,17,27,18,119,16, +184,15,103,17,219,20,93,24,166,25,179,23,16,21,90,21,169,24,91,28,137,30,251,29,33,26,183,21,99,21,156,25, +175,29,204,29,81,26,155,21,40,18,7,18,218,20,249,22,240,20,121,15,149,10,64,9,9,11,45,13,227,12,46,9, +18,4,153,1,255,3,23,9,81,12,229,10,201,5,19,1,43,1,191,6,145,13,94,16,106,13,105,7,172,3,151,6, +16,15,15,22,97,21,54,14,128,7,235,6,76,12,98,18,115,19,52,14,158,6,65,2,211,3,31,9,81,12,206,8, +17,0,173,248,226,247,205,252,123,1,4,0,188,247,107,238,75,235,227,239,136,246,19,248,97,242,140,233,246,227,35,229, +48,235,107,240,215,239,73,233,180,225,25,223,97,227,118,234,181,237,244,233,120,226,162,221,245,222,106,228,207,232,48,232, +248,226,113,221,219,219,218,222,131,227,218,229,154,227,62,222,81,218,79,219,40,224,102,228,33,228,44,223,156,217,109,216, +60,220,172,224,132,225,129,222,33,218,82,215,5,216,96,219,215,221,153,220,95,216,87,212,95,211,202,213,173,216,86,216, +98,212,53,208,52,207,124,209,59,212,143,212,80,210,234,207,101,207,155,208,95,210,175,211,189,211,143,210,127,209,12,210, +94,212,47,215,160,216,235,215,176,214,113,215,125,218,214,221,176,223,183,223,233,222,34,223,104,225,102,228,24,230,78,230, +34,230,60,230,248,230,164,232,166,234,174,235,63,235,70,234,59,234,202,235,2,238,15,239,54,238,173,236,76,236,205,237, +22,240,38,241,48,240,177,238,167,238,92,240,149,242,251,243,242,243,15,243,228,242,106,244,241,246,26,249,254,249,122,249, +145,248,52,249,30,252,141,255,51,1,178,0,122,255,91,255,113,1,30,5,7,8,96,8,19,7,116,6,126,7,118,9, +75,11,42,12,198,11,251,10,29,11,56,12,97,13,113,14,152,15,38,16,195,15,137,15,61,16,37,17,159,17,189,17, +76,17,97,16,27,16,218,16,102,17,50,17,9,17,245,16,76,16,160,15,216,15,63,16,195,15,170,14,155,13,184,12, +91,12,206,12,80,13,236,12,235,11,76,11,124,11,43,12,206,12,216,12,18,12,11,11,188,10,97,11,49,12,127,12, +111,12,40,12,153,11,104,11,90,12,156,13,173,13,188,12,2,12,175,11,115,11,125,11,128,11,153,10,20,9,69,8, +112,8,162,8,21,8,169,6,191,4,20,3,251,1,43,1,156,0,68,0,66,255,53,253,102,251,213,250,174,250,80,250, +94,250,151,250,124,249,18,247,97,245,141,245,146,246,11,247,136,246,54,245,167,243,234,242,205,243,172,245,195,246,32,246, +167,244,207,243,22,244,10,245,6,246,81,246,113,245,248,243,105,243,153,244,128,246,57,247,48,246,182,244,98,244,138,245, +73,247,56,248,96,247,55,245,123,243,118,243,205,244,18,246,233,245,37,244,49,242,182,241,178,242,238,243,147,244,2,244, +197,241,51,239,225,238,240,240,134,242,205,241,192,239,246,237,91,237,155,238,64,241,14,243,90,242,68,240,69,239,99,240, +184,242,205,244,143,245,158,244,243,242,177,242,27,245,194,248,238,250,105,250,63,248,170,246,173,247,48,251,79,254,82,254, +243,251,247,249,230,249,165,251,50,254,160,255,144,254,55,252,249,250,108,251,144,252,144,253,205,253,198,252,26,251,96,250, +93,251,45,253,37,254,90,253,169,251,221,250,152,251,244,252,8,254,106,254,194,253,129,252,61,252,218,253,27,0,44,1, +181,0,199,255,152,255,175,0,157,2,54,4,106,4,68,3,46,2,178,2,195,4,181,6,40,7,79,6,86,5,79,5, +161,6,165,8,222,9,86,9,213,7,44,7,63,8,28,10,18,11,129,10,79,9,208,8,136,9,233,10,239,11,243,11, +50,11,138,10,171,10,102,11,233,11,181,11,57,11,21,11,78,11,148,11,188,11,130,11,196,10,63,10,230,10,74,12, +252,12,100,12,77,11,230,10,197,11,83,13,44,14,188,13,228,12,172,12,71,13,124,14,191,15,61,16,237,15,191,15, +62,16,20,17,250,17,179,18,177,18,14,18,224,17,168,18,166,19,28,20,255,19,126,19,230,18,170,18,241,18,95,19, +111,19,223,18,252,17,97,17,62,17,91,17,172,17,245,17,143,17,144,16,2,16,22,16,234,15,108,15,83,15,123,15, +107,15,146,15,32,16,59,16,174,15,134,15,66,16,22,17,51,17,167,16,10,16,239,15,75,16,148,16,177,16,240,16, +29,17,223,16,138,16,139,16,169,16,189,16,240,16,246,16,77,16,64,15,145,14,97,14,63,14,243,13,173,13,158,13, +154,13,50,13,105,12,227,11,254,11,83,12,95,12,248,11,37,11,51,10,191,9,0,10,114,10,152,10,116,10,35,10, +187,9,143,9,222,9,77,10,59,10,155,9,244,8,197,8,44,9,242,9,141,10,97,10,123,9,190,8,221,8,154,9, +81,10,150,10,32,10,19,9,120,8,72,9,3,11,36,12,239,11,11,11,142,10,18,11,112,12,239,13,177,14,114,14, +224,13,15,14,107,15,135,17,142,19,128,20,184,19,63,18,87,18,154,20,254,22,205,23,125,23,219,22,4,22,200,21, +18,23,164,24,83,24,119,22,66,21,71,21,71,21,193,20,38,20,39,19,47,17,73,15,51,15,119,16,151,16,107,14, +106,11,104,9,35,9,162,10,221,12,121,13,66,11,40,8,14,7,146,8,48,11,34,13,103,13,50,12,204,10,105,10, +125,11,234,13,132,16,35,17,9,15,118,12,36,12,19,14,35,16,172,16,106,15,11,13,242,10,163,10,56,12,163,13, +119,12,180,8,249,4,171,3,198,4,115,6,125,6,129,3,125,254,242,250,156,251,239,254,125,0,206,253,154,248,106,244, +92,243,51,245,240,247,206,248,8,246,248,240,114,237,1,238,78,241,181,243,155,242,78,238,228,233,222,232,155,235,153,238, +78,238,221,234,72,231,32,230,160,231,9,234,41,235,227,233,231,230,63,228,3,228,145,230,180,233,80,234,119,231,138,227, +13,226,76,228,3,232,150,233,179,231,57,228,230,225,22,226,79,228,146,230,145,230,187,227,232,223,159,221,32,222,163,224, +141,226,69,225,17,221,73,217,202,216,0,219,244,220,117,220,206,217,7,215,229,213,167,214,43,216,232,216,16,216,101,214, +162,213,153,214,111,216,208,217,26,218,136,217,32,217,4,218,39,220,49,222,1,223,198,222,162,222,181,223,11,226,78,228, +58,229,37,229,67,229,243,229,234,230,33,232,127,233,72,234,4,234,115,233,186,233,249,234,56,236,163,236,99,236,46,236, +135,236,117,237,101,238,111,238,119,237,203,236,161,237,111,239,178,240,211,240,74,240,195,239,243,239,102,241,160,243,46,245, +37,245,35,244,165,243,190,244,49,247,119,249,20,250,60,249,176,248,196,249,46,252,170,254,21,0,15,0,109,255,208,255, +227,1,104,4,179,5,120,5,184,4,191,4,99,6,46,9,95,11,163,11,147,10,248,9,5,11,122,13,215,15,114,16, +30,15,119,13,55,13,166,14,177,16,221,17,92,17,225,15,234,14,42,15,47,16,70,17,181,17,212,16,4,15,215,13, +72,14,140,15,79,16,44,16,121,15,157,14,39,14,186,14,12,16,191,16,22,16,14,15,231,14,133,15,45,16,167,16, +205,16,100,16,242,15,88,16,82,17,219,17,158,17,249,16,82,16,36,16,169,16,67,17,48,17,125,16,139,15,184,14, +155,14,65,15,141,15,186,14,133,13,171,12,231,11,49,11,5,11,254,10,58,10,248,8,41,8,231,7,180,7,89,7, +186,6,188,5,204,4,127,4,152,4,59,4,25,3,217,1,45,1,4,1,230,0,160,0,57,0,142,255,160,254,230,253, +196,253,242,253,215,253,60,253,112,252,221,251,153,251,115,251,94,251,103,251,63,251,170,250,51,250,91,250,118,250,202,249, +7,249,25,249,122,249,60,249,169,248,88,248,244,247,42,247,158,246,196,246,234,246,84,246,111,245,2,245,241,244,175,244, +75,244,20,244,191,243,253,242,90,242,108,242,157,242,6,242,253,240,124,240,165,240,228,240,236,240,179,240,47,240,189,239, +245,239,189,240,63,241,11,241,132,240,55,240,107,240,23,241,211,241,36,242,10,242,233,241,244,241,78,242,41,243,40,244, +99,244,191,243,88,243,253,243,57,245,38,246,43,246,48,245,241,243,190,243,240,244,91,246,221,246,120,246,160,245,175,244, +97,244,103,245,15,247,153,247,96,246,177,244,26,244,190,244,188,245,96,246,104,246,230,245,106,245,176,245,186,246,202,247, +74,248,42,248,182,247,145,247,99,248,235,249,7,251,241,250,16,250,135,249,68,250,32,252,209,253,48,254,114,253,178,252, +189,252,195,253,113,255,212,0,246,0,250,255,28,255,119,255,249,0,109,2,185,2,12,2,124,1,171,1,125,2,170,3, +169,4,181,4,222,3,74,3,195,3,215,4,190,5,15,6,178,5,8,5,245,4,232,5,33,7,152,7,41,7,134,6, +87,6,190,6,129,7,67,8,142,8,48,8,177,7,220,7,185,8,153,9,12,10,30,10,236,9,183,9,254,9,214,10, +165,11,3,12,42,12,104,12,204,12,82,13,241,13,133,14,247,14,50,15,35,15,252,14,32,15,153,15,15,16,88,16, +141,16,166,16,144,16,118,16,123,16,135,16,139,16,170,16,215,16,197,16,98,16,21,16,39,16,82,16,41,16,198,15, +145,15,166,15,197,15,178,15,102,15,26,15,33,15,133,15,217,15,203,15,125,15,42,15,220,14,196,14,22,15,124,15, +93,15,194,14,91,14,157,14,88,15,0,16,11,16,106,15,176,14,136,14,237,14,64,15,31,15,184,14,99,14,65,14, +74,14,120,14,179,14,196,14,127,14,13,14,213,13,254,13,42,14,216,13,11,13,76,12,37,12,141,12,235,12,162,12, +197,11,3,11,204,10,213,10,184,10,129,10,59,10,157,9,164,8,239,7,236,7,50,8,36,8,175,7,40,7,223,6, +255,6,100,7,136,7,7,7,50,6,194,5,5,6,164,6,24,7,18,7,183,6,123,6,190,6,110,7,40,8,136,8, +100,8,237,7,177,7,31,8,251,8,159,9,183,9,132,9,147,9,77,10,125,11,112,12,203,12,231,12,35,13,158,13, +133,14,152,15,221,15,27,15,205,14,250,15,115,17,230,17,224,17,20,18,238,17,118,17,244,17,84,19,159,19,80,18, +68,17,112,17,142,17,219,16,56,16,238,15,22,15,225,13,181,13,135,14,148,14,53,13,140,11,108,10,234,9,133,10, +48,12,12,13,149,11,53,9,117,8,188,9,155,11,218,12,232,12,217,11,197,10,242,10,87,12,217,13,162,14,123,14, +147,13,202,12,61,13,204,14,204,15,231,14,206,12,112,11,201,11,24,13,235,13,56,13,216,10,3,8,208,6,217,7, +29,9,126,8,42,6,134,3,113,1,153,0,101,1,110,2,103,1,65,254,94,251,97,250,201,250,124,251,163,251,96,250, +177,247,95,245,69,245,207,246,150,247,96,246,43,244,86,242,91,241,99,241,78,242,229,242,189,241,95,239,224,237,47,238, +80,239,250,239,140,239,249,237,19,236,81,235,51,236,140,237,228,237,215,236,18,235,189,233,198,233,252,234,18,236,222,235, +99,234,170,232,224,231,99,232,82,233,107,233,73,232,150,230,63,229,187,228,207,228,215,228,101,228,132,227,91,226,46,225, +136,224,143,224,114,224,120,223,42,222,109,221,49,221,230,220,114,220,255,219,142,219,58,219,64,219,141,219,202,219,205,219, +193,219,217,219,37,220,151,220,37,221,194,221,76,222,187,222,64,223,227,223,97,224,199,224,125,225,116,226,36,227,133,227, +250,227,103,228,150,228,7,229,23,230,23,231,87,231,52,231,57,231,114,231,240,231,215,232,168,233,177,233,29,233,209,232, +73,233,61,234,17,235,104,235,74,235,4,235,255,234,156,235,210,236,228,237,13,238,129,237,52,237,202,237,39,239,175,240, +159,241,159,241,70,241,141,241,208,242,144,244,254,245,138,246,93,246,76,246,24,247,179,248,114,250,172,251,32,252,46,252, +139,252,150,253,35,255,193,0,225,1,26,2,222,1,75,2,197,3,118,5,124,6,195,6,169,6,179,6,107,7,200,8, +241,9,55,10,222,9,161,9,239,9,182,10,133,11,230,11,201,11,112,11,38,11,49,11,190,11,124,12,180,12,56,12, +170,11,166,11,24,12,153,12,237,12,252,12,188,12,112,12,149,12,73,13,245,13,254,13,160,13,145,13,6,14,149,14, +248,14,61,15,94,15,76,15,62,15,125,15,252,15,115,16,179,16,161,16,63,16,224,15,0,16,156,16,4,17,175,16, +249,15,158,15,167,15,149,15,74,15,18,15,223,14,107,14,212,13,107,13,50,13,255,12,194,12,69,12,102,11,155,10, +101,10,88,10,179,9,185,8,50,8,254,7,114,7,162,6,35,6,235,5,140,5,4,5,132,4,246,3,81,3,224,2, +180,2,136,2,62,2,240,1,136,1,254,0,171,0,189,0,200,0,132,0,76,0,87,0,59,0,186,255,72,255,82,255, +163,255,199,255,128,255,231,254,92,254,51,254,64,254,17,254,167,253,92,253,47,253,188,252,242,251,70,251,17,251,15,251, +172,250,199,249,229,248,132,248,115,248,29,248,79,247,125,246,43,246,76,246,86,246,237,245,78,245,237,244,216,244,198,244, +151,244,119,244,148,244,214,244,235,244,155,244,43,244,25,244,124,244,240,244,29,245,15,245,253,244,13,245,49,245,54,245, +20,245,27,245,121,245,204,245,158,245,22,245,219,244,57,245,177,245,149,245,7,245,222,244,95,245,205,245,151,245,32,245, +232,244,224,244,229,244,251,244,250,244,202,244,179,244,223,244,1,245,243,244,246,244,37,245,87,245,115,245,106,245,50,245, +11,245,64,245,146,245,157,245,124,245,116,245,123,245,167,245,44,246,178,246,154,246,35,246,56,246,10,247,205,247,247,247, +216,247,230,247,19,248,59,248,158,248,116,249,85,250,165,250,105,250,58,250,164,250,202,251,37,253,185,253,53,253,148,252, +221,252,217,253,198,254,95,255,151,255,95,255,37,255,115,255,13,0,126,0,233,0,89,1,61,1,138,0,68,0,255,0, +238,1,31,2,188,1,140,1,205,1,49,2,141,2,249,2,78,3,56,3,241,2,38,3,239,3,197,4,100,5,202,5, +193,5,122,5,218,5,29,7,56,8,103,8,37,8,37,8,140,8,80,9,64,10,216,10,242,10,6,11,86,11,172,11, +14,12,161,12,20,13,15,13,216,12,224,12,43,13,139,13,223,13,254,13,215,13,183,13,237,13,89,14,155,14,151,14, +134,14,132,14,97,14,29,14,46,14,198,14,82,15,67,15,201,14,92,14,60,14,154,14,88,15,198,15,126,15,12,15, +23,15,118,15,202,15,15,16,60,16,33,16,216,15,189,15,5,16,149,16,7,17,238,16,121,16,97,16,227,16,145,17, +32,18,136,18,134,18,254,17,124,17,136,17,255,17,119,18,171,18,95,18,166,17,22,17,42,17,187,17,80,18,118,18, +227,17,216,16,23,16,8,16,94,16,178,16,184,16,25,16,245,14,46,14,105,14,53,15,165,15,75,15,99,14,150,13, +139,13,59,14,216,14,179,14,3,14,134,13,136,13,185,13,206,13,221,13,1,14,3,14,190,13,124,13,157,13,34,14, +169,14,167,14,235,13,29,13,42,13,1,14,151,14,108,14,247,13,161,13,119,13,168,13,87,14,8,15,26,15,120,14, +160,13,75,13,247,13,64,15,7,16,193,15,19,15,225,14,121,15,162,16,206,17,71,18,203,17,202,16,12,16,82,16, +199,17,101,19,176,19,162,18,196,17,2,18,183,18,29,19,37,19,199,18,247,17,67,17,57,17,124,17,104,17,15,17, +152,16,185,15,185,14,181,14,211,15,107,16,44,15,239,12,118,11,114,11,129,12,207,13,57,14,17,13,51,11,67,10, +198,10,246,11,4,13,105,13,168,12,16,11,9,10,152,10,30,12,40,13,230,12,145,11,42,10,218,9,212,10,213,11, +121,11,240,9,169,8,122,8,208,8,198,8,59,8,109,7,89,6,30,5,117,4,202,4,68,5,187,4,51,3,158,1, +166,0,108,0,197,0,241,0,242,255,235,253,77,252,13,252,157,252,7,253,217,252,219,251,26,250,137,248,59,248,229,248, +40,249,64,248,138,246,215,244,238,243,24,244,166,244,126,244,100,243,253,241,213,240,56,240,95,240,203,240,79,240,155,238, +232,236,99,236,225,236,124,237,130,237,186,236,139,235,211,234,249,234,115,235,137,235,28,235,102,234,165,233,51,233,85,233, +193,233,207,233,49,233,55,232,113,231,70,231,160,231,244,231,171,231,193,230,177,229,231,228,137,228,151,228,214,228,180,228, +206,227,143,226,201,225,190,225,0,226,254,225,116,225,158,224,23,224,36,224,83,224,50,224,243,223,227,223,238,223,15,224, +112,224,219,224,232,224,178,224,180,224,27,225,206,225,148,226,243,226,173,226,79,226,134,226,69,227,33,228,230,228,85,229, +51,229,223,228,251,228,138,229,38,230,163,230,243,230,246,230,215,230,248,230,104,231,233,231,99,232,213,232,19,233,17,233, +19,233,102,233,254,233,129,234,188,234,220,234,42,235,164,235,29,236,143,236,4,237,112,237,211,237,75,238,224,238,131,239, +32,240,138,240,189,240,25,241,231,241,219,242,142,243,14,244,130,244,230,244,98,245,42,246,13,247,204,247,139,248,94,249, +1,250,119,250,28,251,239,251,160,252,66,253,254,253,161,254,249,254,71,255,223,255,196,0,167,1,24,2,27,2,93,2, +49,3,236,3,2,4,246,3,83,4,205,4,21,5,104,5,207,5,246,5,230,5,14,6,147,6,64,7,215,7,42,8, +31,8,220,7,206,7,92,8,107,9,52,10,31,10,169,9,183,9,89,10,2,11,148,11,40,12,116,12,69,12,25,12, +133,12,105,13,32,14,52,14,206,13,120,13,142,13,10,14,185,14,51,15,241,14,26,14,176,13,61,14,0,15,38,15, +196,14,50,14,130,13,12,13,66,13,237,13,86,14,21,14,55,13,56,12,237,11,164,12,112,13,57,13,36,12,45,11, +240,10,78,11,187,11,157,11,213,10,250,9,174,9,242,9,76,10,78,10,217,9,17,9,65,8,210,7,29,8,209,8, +224,8,210,7,148,6,60,6,165,6,21,7,51,7,196,6,179,5,187,4,201,4,145,5,243,5,133,5,174,4,199,3, +36,3,55,3,242,3,120,4,8,4,210,2,186,1,120,1,249,1,128,2,87,2,82,1,232,255,252,254,26,255,199,255, +236,255,30,255,242,253,28,253,214,252,243,252,16,253,195,252,245,251,254,250,96,250,106,250,231,250,21,251,112,250,112,249, +241,248,35,249,153,249,237,249,203,249,255,248,2,248,201,247,141,248,105,249,122,249,208,248,22,248,203,247,0,248,125,248, +233,248,218,248,62,248,156,247,139,247,229,247,20,248,246,247,188,247,98,247,248,246,241,246,97,247,156,247,33,247,72,246, +191,245,226,245,145,246,45,247,9,247,48,246,106,245,65,245,169,245,88,246,240,246,252,246,105,246,201,245,172,245,10,246, +143,246,3,247,48,247,238,246,139,246,156,246,63,247,217,247,239,247,190,247,185,247,233,247,30,248,101,248,201,248,14,249, +5,249,222,248,231,248,41,249,123,249,187,249,222,249,228,249,218,249,225,249,24,250,104,250,132,250,89,250,74,250,158,250, +249,250,241,250,201,250,239,250,55,251,73,251,86,251,166,251,254,251,30,252,57,252,97,252,73,252,12,252,79,252,39,253, +183,253,129,253,36,253,85,253,226,253,66,254,126,254,213,254,29,255,19,255,229,254,249,254,104,255,253,255,106,0,124,0, +77,0,74,0,191,0,105,1,191,1,148,1,71,1,76,1,185,1,82,2,201,2,221,2,149,2,80,2,110,2,232,2, +126,3,250,3,23,4,174,3,56,3,100,3,30,4,185,4,254,4,23,5,234,4,128,4,134,4,95,5,86,6,142,6, +49,6,241,5,19,6,115,6,246,6,128,7,203,7,178,7,108,7,96,7,200,7,129,8,30,9,49,9,180,8,61,8, +106,8,27,9,160,9,164,9,100,9,36,9,253,8,24,9,119,9,206,9,232,9,229,9,219,9,201,9,217,9,43,10, +110,10,76,10,10,10,22,10,105,10,180,10,221,10,245,10,8,11,13,11,4,11,32,11,152,11,39,12,62,12,209,11, +109,11,110,11,205,11,101,12,219,12,188,12,57,12,14,12,107,12,208,12,239,12,228,12,183,12,95,12,16,12,12,12, +97,12,219,12,6,13,147,12,230,11,181,11,43,12,191,12,217,12,71,12,117,11,45,11,176,11,75,12,86,12,253,11, +180,11,143,11,142,11,202,11,35,12,77,12,43,12,212,11,112,11,82,11,182,11,90,12,178,12,127,12,5,12,196,11, +11,12,163,12,5,13,228,12,114,12,23,12,38,12,165,12,43,13,68,13,2,13,212,12,230,12,40,13,134,13,209,13, +208,13,179,13,211,13,30,14,82,14,134,14,228,14,74,15,163,15,15,16,150,16,252,16,11,17,207,16,183,16,67,17, +69,18,239,18,195,18,14,18,116,17,133,17,90,18,44,19,20,19,92,18,255,17,7,18,202,17,99,17,87,17,102,17, +255,16,77,16,213,15,172,15,158,15,114,15,244,14,63,14,230,13,67,14,235,14,15,15,85,14,55,13,138,12,181,12, +93,13,224,13,213,13,53,13,103,12,15,12,112,12,29,13,117,13,42,13,92,12,134,11,45,11,95,11,173,11,175,11, +40,11,27,10,41,9,55,9,14,10,72,10,53,9,190,7,255,6,15,7,104,7,115,7,195,6,130,5,111,4,8,4, +25,4,43,4,217,3,227,2,123,1,61,0,178,255,227,255,62,0,214,255,80,254,125,252,110,251,68,251,111,251,105,251, +192,250,80,249,185,247,208,246,164,246,183,246,166,246,7,246,156,244,16,243,113,242,194,242,10,243,180,242,232,241,243,240, +45,240,7,240,119,240,183,240,34,240,14,239,76,238,33,238,69,238,114,238,112,238,231,237,217,236,15,236,42,236,168,236, +144,236,190,235,192,234,247,233,123,233,84,233,79,233,12,233,110,232,169,231,240,230,113,230,81,230,100,230,58,230,162,229, +205,228,16,228,190,227,226,227,254,227,170,227,38,227,204,226,130,226,70,226,113,226,220,226,219,226,89,226,246,225,13,226, +120,226,252,226,66,227,3,227,162,226,203,226,103,227,215,227,250,227,18,228,24,228,7,228,63,228,238,228,153,229,210,229, +199,229,216,229,23,230,131,230,36,231,197,231,13,232,13,232,44,232,143,232,8,233,149,233,68,234,208,234,242,234,224,234, +4,235,122,235,29,236,202,236,87,237,150,237,148,237,156,237,247,237,169,238,108,239,234,239,20,240,45,240,113,240,228,240, +116,241,14,242,145,242,238,242,69,243,170,243,17,244,131,244,23,245,167,245,3,246,97,246,8,247,194,247,64,248,182,248, +94,249,247,249,87,250,217,250,174,251,115,252,237,252,89,253,217,253,71,254,184,254,116,255,88,0,246,0,43,1,60,1, +111,1,230,1,159,2,83,3,159,3,141,3,159,3,34,4,207,4,71,5,132,5,174,5,225,5,52,6,160,6,255,6, +68,7,135,7,200,7,255,7,76,8,206,8,80,9,137,9,135,9,165,9,28,10,191,10,47,11,85,11,114,11,171,11, +226,11,22,12,118,12,242,12,45,13,13,13,226,12,239,12,48,13,147,13,246,13,9,14,179,13,105,13,151,13,241,13, +246,13,190,13,168,13,161,13,129,13,136,13,208,13,243,13,193,13,140,13,129,13,124,13,131,13,170,13,163,13,59,13, +212,12,205,12,243,12,245,12,216,12,168,12,93,12,24,12,10,12,15,12,222,11,130,11,43,11,239,10,208,10,197,10, +147,10,23,10,155,9,118,9,139,9,126,9,54,9,205,8,94,8,12,8,239,7,229,7,183,7,105,7,33,7,228,6, +156,6,80,6,39,6,49,6,64,6,15,6,152,5,24,5,208,4,209,4,224,4,168,4,30,4,149,3,84,3,63,3, +18,3,185,2,79,2,252,1,200,1,142,1,66,1,6,1,207,0,97,0,220,255,163,255,168,255,143,255,84,255,32,255, +211,254,101,254,41,254,49,254,33,254,232,253,214,253,221,253,160,253,47,253,245,252,254,252,254,252,230,252,217,252,201,252, +140,252,63,252,48,252,91,252,95,252,19,252,203,251,209,251,246,251,241,251,206,251,168,251,112,251,59,251,75,251,138,251, +159,251,121,251,72,251,17,251,222,250,239,250,60,251,92,251,40,251,234,250,216,250,230,250,11,251,44,251,12,251,182,250, +134,250,161,250,213,250,238,250,222,250,173,250,116,250,96,250,146,250,242,250,55,251,49,251,2,251,233,250,240,250,34,251, +148,251,14,252,28,252,200,251,168,251,0,252,132,252,238,252,47,253,53,253,6,253,249,252,82,253,223,253,58,254,61,254, +11,254,226,253,252,253,97,254,208,254,245,254,194,254,123,254,116,254,188,254,25,255,63,255,24,255,212,254,175,254,194,254, +3,255,76,255,98,255,33,255,190,254,172,254,15,255,130,255,152,255,109,255,87,255,96,255,110,255,161,255,9,0,78,0, +52,0,6,0,26,0,88,0,149,0,201,0,227,0,209,0,193,0,226,0,38,1,100,1,145,1,162,1,145,1,126,1, +153,1,230,1,54,2,70,2,11,2,200,1,209,1,38,2,124,2,141,2,91,2,43,2,51,2,85,2,100,2,118,2, +155,2,146,2,54,2,229,1,249,1,66,2,106,2,98,2,64,2,8,2,213,1,211,1,6,2,54,2,42,2,224,1, +144,1,119,1,155,1,195,1,194,1,162,1,130,1,110,1,105,1,124,1,158,1,177,1,169,1,148,1,133,1,140,1, +177,1,226,1,246,1,219,1,174,1,167,1,224,1,40,2,46,2,243,1,190,1,174,1,177,1,209,1,7,2,3,2, +157,1,53,1,45,1,85,1,87,1,71,1,81,1,74,1,245,0,147,0,145,0,219,0,250,0,199,0,135,0,97,0, +82,0,112,0,173,0,184,0,121,0,75,0,99,0,145,0,173,0,192,0,192,0,160,0,139,0,170,0,226,0,13,1, +38,1,28,1,236,0,205,0,237,0,34,1,52,1,52,1,52,1,15,1,209,0,213,0,46,1,108,1,80,1,29,1, +10,1,5,1,19,1,80,1,151,1,157,1,97,1,46,1,55,1,113,1,180,1,232,1,3,2,245,1,199,1,188,1, +5,2,103,2,131,2,88,2,52,2,66,2,123,2,190,2,226,2,225,2,216,2,220,2,233,2,11,3,72,3,120,3, +111,3,70,3,54,3,91,3,173,3,5,4,33,4,234,3,174,3,206,3,59,4,148,4,172,4,162,4,154,4,164,4, +211,4,37,5,107,5,126,5,108,5,97,5,127,5,196,5,11,6,50,6,59,6,57,6,55,6,77,6,134,6,196,6, +220,6,208,6,192,6,201,6,255,6,79,7,124,7,108,7,79,7,91,7,150,7,221,7,5,8,250,7,224,7,230,7, +14,8,69,8,129,8,165,8,154,8,136,8,167,8,231,8,19,9,31,9,31,9,28,9,46,9,111,9,193,9,224,9, +193,9,171,9,215,9,42,10,106,10,139,10,151,10,133,10,106,10,134,10,224,10,40,11,40,11,3,11,238,10,255,10, +61,11,142,11,172,11,115,11,40,11,31,11,88,11,155,11,185,11,146,11,46,11,219,10,228,10,36,11,71,11,54,11, +246,10,134,10,32,10,42,10,138,10,171,10,76,10,191,9,94,9,69,9,107,9,146,9,96,9,222,8,123,8,119,8, +142,8,110,8,38,8,243,7,196,7,106,7,18,7,13,7,56,7,30,7,165,6,28,6,203,5,199,5,246,5,250,5, +138,5,232,4,133,4,111,4,106,4,79,4,6,4,129,3,246,2,174,2,165,2,145,2,63,2,179,1,28,1,174,0, +123,0,92,0,24,0,154,255,4,255,135,254,51,254,242,253,172,253,92,253,237,252,89,252,212,251,154,251,132,251,51,251, +156,250,19,250,195,249,136,249,70,249,249,248,147,248,23,248,182,247,141,247,110,247,36,247,178,246,62,246,233,245,187,245, +153,245,95,245,7,245,163,244,76,244,23,244,243,243,184,243,105,243,34,243,216,242,129,242,75,242,66,242,26,242,178,241, +69,241,250,240,203,240,195,240,203,240,143,240,11,240,172,239,151,239,139,239,105,239,63,239,250,238,149,238,74,238,56,238, +57,238,42,238,4,238,186,237,91,237,40,237,57,237,88,237,81,237,34,237,226,236,174,236,168,236,209,236,249,236,241,236, +196,236,165,236,187,236,247,236,36,237,33,237,7,237,8,237,45,237,102,237,160,237,196,237,201,237,206,237,240,237,34,238, +91,238,161,238,211,238,204,238,187,238,239,238,94,239,182,239,214,239,219,239,232,239,15,240,80,240,158,240,223,240,5,241, +21,241,56,241,139,241,241,241,53,242,88,242,120,242,167,242,244,242,90,243,181,243,244,243,49,244,118,244,178,244,243,244, +88,245,205,245,39,246,94,246,139,246,203,246,57,247,190,247,27,248,65,248,116,248,224,248,93,249,184,249,249,249,66,250, +149,250,226,250,45,251,143,251,255,251,92,252,155,252,213,252,33,253,125,253,226,253,71,254,150,254,194,254,230,254,46,255, +165,255,30,0,105,0,130,0,157,0,230,0,83,1,176,1,226,1,10,2,65,2,119,2,166,2,228,2,49,3,114,3, +160,3,188,3,198,3,227,3,63,4,170,4,206,4,176,4,164,4,207,4,26,5,103,5,157,5,174,5,173,5,183,5, +215,5,13,6,76,6,116,6,118,6,107,6,110,6,140,6,191,6,236,6,254,6,254,6,254,6,255,6,7,7,32,7, +61,7,73,7,66,7,48,7,27,7,29,7,64,7,93,7,73,7,23,7,241,6,232,6,249,6,14,7,1,7,198,6, +141,6,131,6,153,6,160,6,134,6,89,6,46,6,22,6,15,6,0,6,220,5,185,5,167,5,145,5,108,5,77,5, +65,5,48,5,15,5,231,4,191,4,158,4,141,4,123,4,84,4,37,4,1,4,233,3,211,3,185,3,146,3,106,3, +84,3,64,3,25,3,246,2,228,2,195,2,143,2,116,2,113,2,86,2,31,2,244,1,224,1,216,1,204,1,165,1, +103,1,59,1,55,1,58,1,35,1,254,0,218,0,174,0,132,0,111,0,110,0,102,0,67,0,15,0,229,255,216,255, +225,255,227,255,204,255,162,255,118,255,81,255,69,255,90,255,113,255,101,255,63,255,29,255,5,255,255,254,28,255,64,255, +52,255,0,255,222,254,226,254,251,254,31,255,58,255,41,255,248,254,221,254,240,254,29,255,68,255,68,255,21,255,232,254, +242,254,40,255,82,255,85,255,61,255,32,255,16,255,29,255,70,255,108,255,105,255,70,255,40,255,35,255,48,255,74,255, +103,255,110,255,93,255,83,255,99,255,125,255,142,255,145,255,139,255,138,255,151,255,172,255,191,255,204,255,215,255,225,255, +234,255,248,255,18,0,48,0,57,0,47,0,54,0,89,0,116,0,128,0,152,0,186,0,201,0,204,0,221,0,246,0, +9,1,30,1,55,1,68,1,70,1,83,1,116,1,145,1,155,1,159,1,174,1,184,1,174,1,175,1,208,1,239,1, +237,1,227,1,230,1,237,1,244,1,7,2,19,2,3,2,235,1,240,1,11,2,24,2,12,2,2,2,10,2,24,2, +24,2,15,2,15,2,34,2,61,2,69,2,45,2,26,2,51,2,100,2,119,2,103,2,90,2,97,2,117,2,143,2, +165,2,171,2,163,2,158,2,165,2,178,2,187,2,198,2,216,2,221,2,197,2,176,2,188,2,208,2,205,2,191,2, +180,2,160,2,141,2,151,2,172,2,159,2,118,2,88,2,83,2,84,2,69,2,28,2,244,1,243,1,14,2,15,2, +227,1,175,1,150,1,144,1,136,1,128,1,123,1,105,1,70,1,44,1,37,1,33,1,27,1,24,1,13,1,239,0, +218,0,222,0,222,0,202,0,183,0,176,0,166,0,157,0,160,0,160,0,145,0,124,0,104,0,84,0,72,0,79,0, +88,0,69,0,27,0,251,255,249,255,2,0,254,255,233,255,205,255,181,255,161,255,135,255,103,255,83,255,78,255,65,255, +35,255,5,255,240,254,216,254,194,254,181,254,161,254,132,254,109,254,93,254,78,254,67,254,55,254,31,254,9,254,6,254, +9,254,3,254,247,253,228,253,208,253,207,253,221,253,216,253,193,253,187,253,198,253,205,253,213,253,221,253,208,253,185,253, +185,253,199,253,203,253,207,253,221,253,224,253,212,253,213,253,222,253,217,253,205,253,209,253,217,253,216,253,216,253,219,253, +213,253,206,253,219,253,238,253,233,253,210,253,192,253,186,253,191,253,210,253,219,253,201,253,181,253,186,253,198,253,200,253, +199,253,196,253,184,253,178,253,186,253,194,253,201,253,217,253,227,253,219,253,218,253,242,253,15,254,34,254,47,254,55,254, +62,254,76,254,98,254,129,254,166,254,184,254,176,254,182,254,225,254,3,255,4,255,6,255,29,255,49,255,57,255,67,255, +79,255,86,255,94,255,105,255,116,255,127,255,134,255,124,255,107,255,107,255,126,255,147,255,150,255,135,255,112,255,104,255, +119,255,136,255,139,255,135,255,135,255,135,255,132,255,137,255,153,255,165,255,170,255,174,255,172,255,168,255,181,255,213,255, +235,255,236,255,234,255,231,255,228,255,249,255,39,0,67,0,51,0,21,0,17,0,50,0,100,0,126,0,110,0,84,0, +80,0,92,0,111,0,137,0,141,0,115,0,98,0,113,0,129,0,127,0,124,0,119,0,99,0,88,0,102,0,121,0, +123,0,114,0,104,0,92,0,80,0,81,0,101,0,119,0,107,0,76,0,66,0,87,0,111,0,120,0,118,0,98,0, +70,0,74,0,117,0,144,0,123,0,94,0,100,0,124,0,137,0,140,0,147,0,150,0,144,0,139,0,141,0,146,0, +162,0,189,0,195,0,163,0,138,0,159,0,197,0,210,0,207,0,209,0,203,0,192,0,202,0,232,0,242,0,224,0, +219,0,233,0,228,0,214,0,237,0,17,1,5,1,223,0,223,0,244,0,242,0,243,0,4,1,254,0,227,0,232,0, +5,1,6,1,249,0,254,0,4,1,252,0,0,1,16,1,9,1,244,0,244,0,13,1,38,1,44,1,31,1,19,1, +28,1,49,1,61,1,62,1,61,1,57,1,57,1,62,1,66,1,72,1,89,1,95,1,72,1,53,1,75,1,107,1, +100,1,64,1,46,1,53,1,63,1,65,1,55,1,34,1,20,1,34,1,45,1,23,1,2,1,16,1,31,1,8,1, +229,0,221,0,232,0,237,0,227,0,211,0,205,0,208,0,197,0,176,0,173,0,173,0,149,0,128,0,143,0,162,0, +150,0,129,0,120,0,110,0,101,0,110,0,120,0,104,0,78,0,70,0,77,0,78,0,74,0,73,0,67,0,44,0, +14,0,8,0,33,0,52,0,39,0,2,0,219,255,197,255,213,255,252,255,2,0,213,255,165,255,150,255,153,255,158,255, +164,255,160,255,131,255,97,255,84,255,90,255,95,255,92,255,80,255,52,255,21,255,21,255,51,255,62,255,33,255,253,254, +242,254,249,254,1,255,10,255,11,255,247,254,212,254,193,254,205,254,226,254,227,254,217,254,210,254,198,254,180,254,177,254, +188,254,180,254,158,254,160,254,176,254,162,254,135,254,140,254,153,254,129,254,91,254,88,254,111,254,121,254,109,254,83,254, +52,254,30,254,34,254,63,254,84,254,66,254,20,254,246,253,251,253,16,254,24,254,5,254,226,253,201,253,198,253,203,253, +207,253,202,253,180,253,147,253,131,253,133,253,130,253,123,253,120,253,112,253,95,253,81,253,77,253,81,253,91,253,93,253, +76,253,51,253,46,253,65,253,79,253,73,253,58,253,55,253,70,253,90,253,96,253,86,253,73,253,79,253,98,253,113,253, +123,253,128,253,117,253,93,253,89,253,117,253,142,253,134,253,108,253,94,253,100,253,111,253,111,253,100,253,90,253,82,253, +71,253,70,253,81,253,81,253,64,253,56,253,57,253,41,253,30,253,58,253,87,253,75,253,47,253,36,253,34,253,42,253, +67,253,84,253,72,253,54,253,49,253,49,253,61,253,91,253,111,253,92,253,63,253,62,253,75,253,82,253,95,253,115,253, +111,253,81,253,75,253,103,253,119,253,104,253,91,253,93,253,93,253,95,253,116,253,134,253,114,253,81,253,83,253,117,253, +142,253,143,253,133,253,122,253,121,253,131,253,141,253,145,253,152,253,164,253,170,253,167,253,162,253,170,253,189,253,195,253, +177,253,164,253,181,253,210,253,224,253,219,253,209,253,208,253,216,253,222,253,229,253,248,253,8,254,252,253,230,253,234,253, +7,254,25,254,20,254,13,254,19,254,28,254,24,254,26,254,44,254,60,254,60,254,57,254,55,254,47,254,49,254,74,254, +89,254,73,254,56,254,65,254,81,254,88,254,94,254,101,254,92,254,71,254,66,254,89,254,120,254,136,254,130,254,121,254, +125,254,140,254,148,254,140,254,130,254,140,254,169,254,189,254,187,254,180,254,183,254,192,254,205,254,217,254,221,254,216,254, +209,254,206,254,209,254,215,254,215,254,210,254,206,254,201,254,196,254,206,254,217,254,201,254,176,254,172,254,174,254,166,254, +159,254,157,254,149,254,143,254,148,254,149,254,137,254,124,254,123,254,136,254,150,254,149,254,138,254,134,254,137,254,143,254, +165,254,192,254,191,254,161,254,144,254,165,254,197,254,212,254,212,254,211,254,215,254,222,254,226,254,227,254,238,254,248,254, +238,254,228,254,239,254,246,254,237,254,245,254,11,255,254,254,217,254,205,254,216,254,221,254,220,254,218,254,205,254,190,254, +192,254,198,254,191,254,181,254,184,254,187,254,175,254,168,254,185,254,201,254,189,254,169,254,177,254,198,254,205,254,206,254, +216,254,230,254,241,254,247,254,250,254,8,255,40,255,68,255,69,255,53,255,55,255,93,255,141,255,157,255,137,255,126,255, +159,255,207,255,231,255,226,255,211,255,205,255,227,255,9,0,30,0,28,0,26,0,24,0,18,0,32,0,69,0,89,0, +80,0,72,0,82,0,100,0,103,0,90,0,81,0,97,0,119,0,120,0,109,0,108,0,126,0,157,0,177,0,174,0, +170,0,182,0,194,0,197,0,201,0,208,0,220,0,243,0,8,1,16,1,31,1,57,1,66,1,64,1,81,1,107,1, +115,1,112,1,125,1,149,1,164,1,166,1,172,1,188,1,201,1,209,1,223,1,233,1,227,1,216,1,220,1,237,1, +2,2,12,2,1,2,229,1,210,1,220,1,244,1,0,2,245,1,223,1,205,1,205,1,215,1,212,1,191,1,179,1, +181,1,173,1,158,1,162,1,180,1,190,1,186,1,170,1,155,1,153,1,158,1,162,1,168,1,175,1,171,1,163,1, +168,1,182,1,191,1,190,1,179,1,174,1,194,1,228,1,239,1,216,1,189,1,191,1,223,1,251,1,243,1,207,1, +190,1,203,1,215,1,212,1,212,1,219,1,215,1,199,1,180,1,169,1,174,1,184,1,166,1,128,1,113,1,126,1, +130,1,115,1,101,1,96,1,98,1,97,1,87,1,74,1,62,1,48,1,40,1,39,1,30,1,16,1,18,1,24,1, +16,1,10,1,16,1,18,1,11,1,1,1,241,0,229,0,230,0,226,0,213,0,205,0,202,0,198,0,207,0,216,0, +201,0,183,0,184,0,188,0,184,0,180,0,166,0,131,0,105,0,110,0,126,0,138,0,142,0,136,0,122,0,113,0, +108,0,95,0,79,0,72,0,65,0,55,0,48,0,39,0,17,0,16,0,51,0,66,0,18,0,220,255,220,255,243,255, +239,255,209,255,180,255,157,255,153,255,174,255,198,255,186,255,145,255,124,255,141,255,152,255,133,255,110,255,100,255,88,255, +73,255,71,255,80,255,78,255,67,255,69,255,82,255,77,255,47,255,26,255,30,255,34,255,22,255,7,255,4,255,9,255, +9,255,254,254,242,254,236,254,231,254,227,254,230,254,227,254,207,254,193,254,204,254,217,254,197,254,159,254,148,254,170,254, +182,254,166,254,143,254,126,254,112,254,107,254,115,254,121,254,112,254,87,254,62,254,65,254,82,254,68,254,28,254,6,254, +9,254,18,254,23,254,20,254,9,254,1,254,249,253,239,253,247,253,13,254,18,254,9,254,0,254,239,253,231,253,4,254, +41,254,44,254,30,254,29,254,37,254,48,254,51,254,37,254,30,254,50,254,68,254,60,254,49,254,59,254,81,254,98,254, +101,254,82,254,57,254,59,254,96,254,134,254,126,254,78,254,46,254,78,254,145,254,180,254,157,254,110,254,88,254,114,254, +168,254,200,254,182,254,151,254,160,254,201,254,232,254,236,254,226,254,219,254,239,254,25,255,54,255,50,255,29,255,28,255, +71,255,132,255,142,255,100,255,79,255,118,255,176,255,202,255,193,255,178,255,188,255,222,255,243,255,238,255,232,255,243,255, +8,0,34,0,54,0,49,0,29,0,43,0,90,0,108,0,84,0,74,0,86,0,89,0,96,0,120,0,127,0,115,0, +124,0,140,0,134,0,133,0,154,0,162,0,149,0,147,0,158,0,164,0,168,0,178,0,188,0,193,0,196,0,200,0, +202,0,199,0,201,0,207,0,209,0,215,0,227,0,221,0,201,0,214,0,254,0,6,1,230,0,205,0,206,0,219,0, +228,0,221,0,201,0,181,0,174,0,188,0,207,0,190,0,142,0,114,0,120,0,125,0,114,0,97,0,79,0,67,0, +72,0,81,0,76,0,58,0,45,0,47,0,53,0,40,0,16,0,12,0,28,0,38,0,34,0,20,0,7,0,21,0, +65,0,84,0,39,0,236,255,226,255,251,255,13,0,17,0,4,0,219,255,190,255,211,255,247,255,239,255,203,255,171,255, +146,255,124,255,110,255,98,255,92,255,98,255,92,255,61,255,42,255,60,255,85,255,77,255,37,255,246,254,212,254,201,254, +213,254,232,254,233,254,219,254,208,254,199,254,201,254,223,254,233,254,195,254,146,254,139,254,154,254,151,254,137,254,128,254, +127,254,129,254,129,254,126,254,122,254,115,254,108,254,110,254,118,254,120,254,106,254,74,254,51,254,64,254,88,254,87,254, +78,254,82,254,74,254,52,254,47,254,59,254,67,254,57,254,23,254,243,253,247,253,16,254,18,254,5,254,0,254,248,253, +243,253,2,254,10,254,241,253,215,253,214,253,211,253,190,253,180,253,205,253,239,253,241,253,219,253,215,253,242,253,12,254, +11,254,252,253,250,253,9,254,27,254,46,254,65,254,70,254,69,254,86,254,108,254,112,254,126,254,172,254,198,254,167,254, +139,254,169,254,218,254,237,254,235,254,233,254,225,254,217,254,240,254,24,255,33,255,10,255,250,254,253,254,6,255,16,255, +25,255,23,255,9,255,251,254,0,255,29,255,54,255,43,255,15,255,13,255,42,255,77,255,85,255,63,255,51,255,87,255, +139,255,156,255,141,255,135,255,154,255,185,255,211,255,224,255,224,255,218,255,230,255,12,0,40,0,43,0,45,0,48,0, +38,0,39,0,59,0,67,0,63,0,62,0,42,0,12,0,31,0,89,0,110,0,79,0,44,0,26,0,18,0,9,0, +249,255,247,255,11,0,20,0,254,255,228,255,237,255,25,0,62,0,44,0,247,255,217,255,224,255,244,255,12,0,29,0, +23,0,5,0,3,0,21,0,46,0,66,0,64,0,31,0,255,255,17,0,75,0,101,0,66,0,31,0,47,0,85,0, +109,0,117,0,108,0,81,0,70,0,95,0,119,0,112,0,96,0,102,0,117,0,117,0,111,0,119,0,134,0,136,0, +118,0,95,0,91,0,122,0,161,0,168,0,134,0,92,0,83,0,112,0,138,0,132,0,115,0,110,0,110,0,116,0, +136,0,143,0,124,0,108,0,115,0,126,0,127,0,121,0,107,0,95,0,102,0,125,0,143,0,138,0,123,0,122,0, +129,0,123,0,112,0,116,0,134,0,150,0,146,0,116,0,99,0,124,0,159,0,157,0,132,0,109,0,99,0,119,0, +165,0,183,0,149,0,110,0,108,0,131,0,147,0,153,0,156,0,133,0,92,0,90,0,135,0,156,0,133,0,115,0, +113,0,110,0,114,0,109,0,78,0,60,0,73,0,75,0,67,0,82,0,91,0,66,0,44,0,41,0,34,0,31,0, +36,0,21,0,255,255,4,0,16,0,2,0,243,255,253,255,6,0,4,0,10,0,14,0,250,255,223,255,220,255,231,255, +237,255,246,255,9,0,27,0,35,0,23,0,255,255,249,255,15,0,41,0,51,0,48,0,34,0,24,0,41,0,74,0, +91,0,82,0,62,0,55,0,73,0,102,0,115,0,95,0,58,0,45,0,81,0,132,0,145,0,120,0,82,0,52,0, +55,0,95,0,125,0,106,0,68,0,47,0,44,0,45,0,49,0,49,0,39,0,28,0,25,0,18,0,254,255,0,0, +34,0,42,0,251,255,212,255,223,255,249,255,6,0,3,0,237,255,213,255,217,255,236,255,249,255,250,255,231,255,199,255, +191,255,213,255,231,255,231,255,218,255,198,255,194,255,216,255,236,255,228,255,204,255,189,255,191,255,200,255,194,255,186,255, +195,255,209,255,203,255,182,255,163,255,160,255,175,255,190,255,185,255,163,255,135,255,124,255,148,255,175,255,156,255,114,255, +97,255,100,255,111,255,125,255,111,255,61,255,46,255,94,255,131,255,107,255,66,255,50,255,56,255,68,255,77,255,79,255, +77,255,81,255,84,255,87,255,100,255,120,255,133,255,139,255,135,255,120,255,120,255,144,255,156,255,144,255,146,255,170,255, +188,255,198,255,207,255,201,255,195,255,202,255,196,255,179,255,190,255,220,255,216,255,194,255,199,255,217,255,216,255,199,255, +196,255,214,255,226,255,208,255,181,255,173,255,188,255,213,255,223,255,190,255,142,255,136,255,175,255,213,255,216,255,181,255, +141,255,141,255,174,255,184,255,151,255,120,255,126,255,156,255,169,255,151,255,126,255,127,255,159,255,192,255,183,255,143,255, +133,255,163,255,175,255,157,255,158,255,178,255,182,255,180,255,190,255,200,255,204,255,200,255,196,255,212,255,238,255,239,255, +222,255,223,255,228,255,225,255,237,255,3,0,8,0,4,0,1,0,245,255,231,255,239,255,6,0,26,0,35,0,20,0, +236,255,214,255,244,255,32,0,25,0,233,255,218,255,3,0,37,0,15,0,229,255,227,255,11,0,35,0,5,0,210,255, +198,255,232,255,8,0,5,0,241,255,231,255,234,255,247,255,12,0,25,0,3,0,225,255,219,255,242,255,4,0,0,0, +241,255,246,255,26,0,55,0,47,0,29,0,29,0,34,0,38,0,46,0,53,0,62,0,81,0,91,0,89,0,99,0, +114,0,112,0,112,0,124,0,121,0,103,0,99,0,110,0,124,0,141,0,150,0,143,0,135,0,139,0,140,0,122,0, +98,0,97,0,112,0,110,0,93,0,85,0,86,0,90,0,111,0,118,0,80,0,33,0,29,0,49,0,47,0,12,0, +227,255,227,255,22,0,57,0,34,0,2,0,5,0,22,0,18,0,250,255,227,255,215,255,218,255,237,255,12,0,33,0, +37,0,43,0,54,0,59,0,66,0,75,0,62,0,36,0,32,0,52,0,76,0,94,0,102,0,103,0,118,0,141,0, +143,0,128,0,114,0,101,0,89,0,85,0,84,0,83,0,88,0,94,0,86,0,80,0,89,0,86,0,54,0,31,0, +46,0,66,0,52,0,14,0,243,255,248,255,32,0,76,0,79,0,43,0,12,0,16,0,46,0,69,0,69,0,59,0, +64,0,84,0,111,0,127,0,110,0,87,0,106,0,152,0,174,0,172,0,171,0,170,0,183,0,218,0,235,0,216,0, +201,0,209,0,229,0,251,0,249,0,215,0,203,0,244,0,34,1,42,1,19,1,244,0,235,0,6,1,37,1,32,1, +254,0,230,0,234,0,252,0,10,1,24,1,43,1,42,1,9,1,239,0,255,0,33,1,44,1,34,1,41,1,69,1, +77,1,59,1,53,1,65,1,81,1,110,1,136,1,117,1,92,1,126,1,178,1,176,1,148,1,144,1,158,1,179,1, +207,1,227,1,220,1,197,1,184,1,208,1,3,2,31,2,15,2,248,1,253,1,26,2,47,2,22,2,221,1,201,1, +253,1,57,2,59,2,26,2,16,2,41,2,77,2,106,2,107,2,64,2,22,2,40,2,97,2,109,2,58,2,10,2, +34,2,114,2,172,2,160,2,111,2,85,2,101,2,127,2,119,2,72,2,31,2,36,2,74,2,112,2,123,2,105,2, +91,2,113,2,149,2,148,2,89,2,11,2,241,1,30,2,70,2,39,2,232,1,214,1,250,1,47,2,73,2,54,2, +9,2,214,1,174,1,170,1,188,1,171,1,123,1,105,1,132,1,174,1,208,1,196,1,124,1,65,1,74,1,104,1, +104,1,83,1,46,1,250,0,215,0,230,0,17,1,31,1,251,0,216,0,227,0,243,0,209,0,152,0,122,0,122,0, +126,0,122,0,103,0,72,0,53,0,63,0,79,0,70,0,39,0,13,0,7,0,20,0,40,0,14,0,173,255,95,255, +138,255,249,255,31,0,211,255,106,255,92,255,187,255,24,0,0,0,139,255,43,255,40,255,118,255,189,255,169,255,89,255, +50,255,66,255,85,255,101,255,123,255,108,255,43,255,253,254,7,255,28,255,15,255,240,254,217,254,205,254,205,254,208,254, +210,254,220,254,223,254,189,254,126,254,78,254,74,254,123,254,184,254,175,254,84,254,17,254,43,254,115,254,165,254,169,254, +128,254,75,254,56,254,75,254,113,254,143,254,146,254,129,254,117,254,122,254,153,254,209,254,234,254,187,254,124,254,119,254, +173,254,239,254,6,255,205,254,124,254,122,254,205,254,23,255,26,255,229,254,172,254,149,254,167,254,203,254,227,254,213,254, +176,254,154,254,158,254,176,254,199,254,207,254,185,254,157,254,142,254,120,254,101,254,116,254,150,254,163,254,147,254,121,254, +114,254,147,254,189,254,183,254,140,254,115,254,131,254,168,254,200,254,201,254,162,254,119,254,130,254,199,254,1,255,249,254, +205,254,176,254,172,254,189,254,220,254,233,254,209,254,185,254,194,254,221,254,246,254,3,255,255,254,238,254,217,254,211,254, +230,254,248,254,229,254,190,254,173,254,182,254,193,254,207,254,237,254,253,254,226,254,191,254,198,254,218,254,196,254,153,254, +145,254,167,254,181,254,183,254,189,254,207,254,220,254,201,254,153,254,117,254,134,254,186,254,210,254,170,254,115,254,105,254, +135,254,178,254,219,254,226,254,191,254,165,254,171,254,173,254,173,254,189,254,187,254,168,254,188,254,240,254,252,254,223,254, +203,254,217,254,5,255,51,255,52,255,9,255,236,254,8,255,70,255,104,255,77,255,39,255,54,255,106,255,137,255,129,255, +105,255,98,255,122,255,155,255,165,255,152,255,136,255,134,255,162,255,201,255,207,255,178,255,154,255,163,255,204,255,253,255, +11,0,233,255,195,255,200,255,236,255,3,0,248,255,226,255,226,255,1,0,42,0,60,0,37,0,7,0,16,0,63,0, +103,0,101,0,55,0,11,0,32,0,104,0,135,0,100,0,63,0,70,0,107,0,147,0,164,0,142,0,110,0,105,0, +126,0,144,0,138,0,116,0,99,0,106,0,131,0,152,0,147,0,122,0,102,0,109,0,139,0,157,0,129,0,67,0, +26,0,41,0,89,0,117,0,93,0,50,0,38,0,56,0,76,0,89,0,77,0,22,0,228,255,228,255,242,255,229,255, +218,255,222,255,218,255,209,255,206,255,206,255,210,255,215,255,199,255,171,255,154,255,137,255,117,255,114,255,136,255,167,255, +179,255,143,255,89,255,102,255,185,255,226,255,159,255,56,255,20,255,63,255,114,255,114,255,82,255,52,255,34,255,40,255, +73,255,96,255,78,255,33,255,245,254,225,254,248,254,29,255,16,255,208,254,161,254,183,254,237,254,0,255,225,254,192,254, +179,254,171,254,168,254,178,254,183,254,166,254,138,254,116,254,106,254,116,254,148,254,187,254,203,254,180,254,148,254,150,254, +167,254,156,254,128,254,116,254,112,254,92,254,74,254,86,254,126,254,163,254,159,254,101,254,35,254,38,254,111,254,146,254, +80,254,244,253,218,253,255,253,51,254,83,254,74,254,35,254,7,254,6,254,17,254,23,254,1,254,196,253,137,253,139,253, +206,253,15,254,11,254,205,253,165,253,198,253,0,254,249,253,166,253,98,253,107,253,141,253,131,253,93,253,80,253,101,253, +139,253,147,253,90,253,23,253,11,253,17,253,244,252,188,252,108,252,11,252,232,251,38,252,105,252,87,252,250,251,141,251, +78,251,74,251,63,251,242,250,120,250,240,249,121,249,86,249,131,249,136,249,24,249,128,248,48,248,32,248,228,247,58,247, +92,246,170,245,68,245,255,244,161,244,46,244,249,243,35,244,48,244,175,243,245,242,141,242,93,242,254,241,115,241,4,241, +187,240,127,240,119,240,199,240,48,241,73,241,248,240,139,240,100,240,146,240,179,240,99,240,206,239,133,239,219,239,145,240, +25,241,37,241,246,240,248,240,42,241,59,241,4,241,151,240,32,240,222,239,232,239,0,240,243,239,234,239,13,240,42,240, +15,240,211,239,151,239,83,239,11,239,217,238,181,238,139,238,109,238,115,238,173,238,33,239,146,239,162,239,93,239,67,239, +154,239,26,240,65,240,231,239,139,239,218,239,214,240,208,241,60,242,52,242,64,242,198,242,161,243,93,244,193,244,234,244, +18,245,120,245,48,246,255,246,157,247,251,247,83,248,249,248,231,249,147,250,171,250,165,250,18,251,220,251,143,252,239,252, +28,253,102,253,245,253,164,254,52,255,135,255,181,255,10,0,164,0,49,1,112,1,150,1,242,1,146,2,73,3,180,3, +143,3,62,3,128,3,110,4,98,5,200,5,181,5,184,5,51,6,5,7,208,7,91,8,148,8,150,8,198,8,112,9, +75,10,212,10,11,11,102,11,37,12,20,13,219,13,70,14,111,14,176,14,58,15,214,15,69,16,153,16,251,16,115,17, +8,18,187,18,101,19,207,19,251,19,50,20,163,20,28,21,80,21,79,21,98,21,165,21,0,22,69,22,93,22,109,22, +168,22,244,22,13,23,229,22,155,22,83,22,62,22,112,22,176,22,174,22,99,22,26,22,43,22,151,22,242,22,210,22, +86,22,12,22,64,22,150,22,152,22,72,22,252,21,245,21,66,22,157,22,155,22,77,22,41,22,71,22,108,22,131,22, +115,22,26,22,199,21,228,21,57,22,76,22,20,22,207,21,164,21,149,21,126,21,59,21,236,20,180,20,126,20,43,20, +190,19,72,19,228,18,166,18,118,18,34,18,149,17,240,16,110,16,38,16,243,15,163,15,35,15,129,14,240,13,152,13, +79,13,210,12,49,12,164,11,48,11,204,10,129,10,57,10,206,9,70,9,195,8,85,8,5,8,203,7,115,7,217,6, +59,6,235,5,220,5,201,5,150,5,74,5,239,4,153,4,89,4,34,4,223,3,135,3,29,3,194,2,142,2,91,2, +2,2,175,1,154,1,166,1,136,1,37,1,164,0,64,0,12,0,231,255,158,255,41,255,189,254,140,254,121,254,71,254, +253,253,187,253,119,253,44,253,218,252,115,252,249,251,147,251,75,251,15,251,223,250,176,250,112,250,60,250,52,250,55,250, +22,250,206,249,121,249,64,249,43,249,22,249,238,248,216,248,235,248,12,249,32,249,35,249,23,249,18,249,43,249,92,249, +122,249,100,249,57,249,56,249,103,249,164,249,224,249,21,250,48,250,60,250,82,250,107,250,134,250,176,250,204,250,182,250, +141,250,138,250,177,250,226,250,254,250,5,251,16,251,37,251,48,251,44,251,31,251,7,251,234,250,230,250,4,251,39,251, +53,251,51,251,55,251,88,251,131,251,142,251,120,251,113,251,145,251,186,251,207,251,225,251,6,252,49,252,80,252,104,252, +141,252,200,252,10,253,59,253,87,253,112,253,147,253,197,253,17,254,115,254,198,254,234,254,226,254,234,254,53,255,162,255, +221,255,222,255,217,255,232,255,25,0,107,0,173,0,194,0,204,0,214,0,206,0,197,0,213,0,234,0,255,0,26,1, +42,1,47,1,76,1,123,1,146,1,143,1,131,1,109,1,74,1,42,1,33,1,64,1,110,1,124,1,99,1,77,1, +78,1,85,1,97,1,126,1,144,1,126,1,97,1,88,1,96,1,119,1,168,1,216,1,229,1,231,1,244,1,239,1, +220,1,232,1,13,2,26,2,2,2,222,1,204,1,238,1,48,2,80,2,62,2,33,2,11,2,2,2,13,2,17,2, +241,1,202,1,192,1,201,1,209,1,212,1,196,1,149,1,102,1,94,1,103,1,70,1,244,0,171,0,142,0,141,0, +138,0,120,0,88,0,54,0,30,0,16,0,254,255,217,255,175,255,148,255,128,255,102,255,76,255,56,255,46,255,61,255, +81,255,60,255,16,255,4,255,1,255,220,254,186,254,182,254,165,254,129,254,129,254,170,254,200,254,198,254,181,254,178,254, +207,254,249,254,6,255,224,254,155,254,104,254,111,254,154,254,169,254,133,254,102,254,134,254,201,254,228,254,193,254,135,254, +91,254,77,254,94,254,111,254,95,254,59,254,46,254,72,254,127,254,171,254,152,254,84,254,39,254,60,254,119,254,158,254, +133,254,78,254,82,254,166,254,236,254,228,254,200,254,229,254,37,255,65,255,45,255,26,255,46,255,99,255,153,255,181,255, +181,255,181,255,215,255,46,0,170,0,10,1,4,1,166,0,99,0,155,0,46,1,136,1,80,1,239,0,12,1,169,1, +59,2,105,2,70,2,27,2,44,2,98,2,118,2,110,2,120,2,140,2,168,2,249,2,115,3,203,3,221,3,191,3, +170,3,214,3,25,4,9,4,190,3,200,3,58,4,156,4,182,4,201,4,28,5,176,5,55,6,70,6,226,5,155,5, +211,5,64,6,115,6,113,6,120,6,163,6,249,6,118,7,233,7,26,8,250,7,177,7,149,7,222,7,69,8,71,8, +233,7,186,7,32,8,218,8,72,9,34,9,206,8,209,8,25,9,56,9,16,9,207,8,159,8,169,8,1,9,97,9, +106,9,35,9,241,8,23,9,121,9,184,9,127,9,232,8,128,8,160,8,0,9,40,9,5,9,215,8,213,8,1,9, +31,9,4,9,200,8,148,8,111,8,76,8,29,8,207,7,130,7,116,7,183,7,14,8,29,8,183,7,33,7,222,6, +0,7,29,7,219,6,82,6,236,5,255,5,87,6,100,6,16,6,200,5,180,5,154,5,85,5,253,4,185,4,149,4, +114,4,53,4,1,4,232,3,189,3,125,3,87,3,76,3,39,3,200,2,60,2,188,1,135,1,143,1,122,1,30,1, +173,0,109,0,96,0,69,0,232,255,104,255,254,254,173,254,94,254,11,254,185,253,122,253,84,253,56,253,16,253,228,252, +167,252,45,252,132,251,19,251,18,251,31,251,193,250,22,250,177,249,213,249,41,250,41,250,176,249,5,249,127,248,56,248, +14,248,213,247,140,247,75,247,32,247,1,247,222,246,168,246,96,246,30,246,240,245,189,245,103,245,227,244,72,244,215,243, +194,243,217,243,195,243,114,243,26,243,218,242,183,242,150,242,69,242,203,241,94,241,8,241,179,240,107,240,68,240,62,240, +74,240,73,240,18,240,181,239,106,239,68,239,39,239,241,238,170,238,121,238,102,238,70,238,31,238,34,238,55,238,47,238, +28,238,18,238,241,237,194,237,167,237,146,237,106,237,64,237,47,237,64,237,94,237,85,237,36,237,21,237,72,237,118,237, +94,237,11,237,181,236,146,236,173,236,194,236,133,236,10,236,192,235,243,235,118,236,205,236,168,236,27,236,132,235,61,235, +67,235,44,235,181,234,25,234,193,233,214,233,30,234,36,234,171,233,19,233,215,232,234,232,238,232,175,232,32,232,110,231, +23,231,67,231,110,231,64,231,24,231,75,231,158,231,160,231,38,231,133,230,112,230,17,231,153,231,100,231,234,230,231,230, +95,231,240,231,93,232,158,232,192,232,191,232,169,232,214,232,122,233,15,234,253,233,143,233,151,233,91,234,72,235,128,235, +220,234,56,234,96,234,13,235,111,235,78,235,12,235,11,235,65,235,96,235,89,235,117,235,207,235,8,236,226,235,174,235, +206,235,32,236,73,236,81,236,149,236,17,237,90,237,72,237,75,237,247,237,42,239,223,239,104,239,167,238,12,239,154,240, +246,241,59,242,217,241,224,241,241,242,163,244,247,245,127,246,154,246,185,246,26,247,220,247,203,248,108,249,171,249,22,250, +41,251,157,252,151,253,168,253,112,253,217,253,240,254,254,255,107,0,69,0,42,0,176,0,177,1,124,2,208,2,33,3, +198,3,130,4,243,4,4,5,246,4,43,5,214,5,203,6,150,7,214,7,175,7,210,7,187,8,8,10,235,10,4,11, +186,10,224,10,237,11,90,13,52,14,70,14,43,14,126,14,104,15,157,16,149,17,16,18,90,18,202,18,114,19,62,20, +251,20,112,21,199,21,104,22,88,23,32,24,112,24,132,24,234,24,223,25,251,26,146,27,115,27,40,27,102,27,59,28, +254,28,62,29,58,29,93,29,199,29,106,30,247,30,252,30,149,30,101,30,187,30,76,31,159,31,110,31,248,30,243,30, +153,31,57,32,42,32,158,31,60,31,102,31,236,31,58,32,240,31,86,31,252,30,30,31,135,31,217,31,224,31,169,31, +104,31,85,31,122,31,149,31,81,31,204,30,140,30,203,30,35,31,21,31,164,30,76,30,98,30,165,30,140,30,239,29, +58,29,238,28,19,29,47,29,216,28,67,28,224,27,172,27,98,27,10,27,188,26,72,26,146,25,224,24,135,24,127,24, +89,24,163,23,148,22,238,21,221,21,170,21,225,20,229,19,42,19,181,18,85,18,214,17,35,17,102,16,214,15,106,15, +249,14,107,14,191,13,20,13,134,12,19,12,169,11,48,11,136,10,201,9,74,9,41,9,20,9,179,8,9,8,87,7, +211,6,112,6,6,6,146,5,44,5,213,4,127,4,37,4,204,3,116,3,15,3,150,2,40,2,219,1,137,1,24,1, +173,0,101,0,50,0,246,255,130,255,211,254,74,254,37,254,6,254,153,253,16,253,157,252,53,252,216,251,131,251,27,251, +186,250,133,250,87,250,22,250,223,249,156,249,37,249,181,248,141,248,136,248,108,248,38,248,157,247,1,247,212,246,49,247, +132,247,92,247,225,246,118,246,96,246,155,246,208,246,179,246,104,246,70,246,89,246,108,246,85,246,61,246,94,246,161,246, +182,246,149,246,129,246,138,246,141,246,141,246,171,246,223,246,248,246,214,246,137,246,81,246,113,246,222,246,45,247,14,247, +198,246,205,246,8,247,4,247,191,246,162,246,206,246,251,246,246,246,219,246,218,246,247,246,18,247,35,247,53,247,62,247, +54,247,38,247,7,247,234,246,3,247,82,247,136,247,137,247,135,247,153,247,183,247,225,247,252,247,3,248,46,248,128,248, +158,248,132,248,147,248,236,248,66,249,78,249,22,249,241,248,47,249,169,249,247,249,9,250,21,250,47,250,88,250,137,250, +150,250,121,250,128,250,198,250,13,251,51,251,68,251,53,251,11,251,4,251,62,251,134,251,168,251,156,251,123,251,109,251, +139,251,199,251,240,251,229,251,176,251,126,251,110,251,120,251,141,251,182,251,230,251,230,251,170,251,117,251,141,251,219,251, +17,252,24,252,25,252,44,252,54,252,45,252,42,252,72,252,127,252,176,252,200,252,211,252,225,252,231,252,236,252,15,253, +73,253,120,253,147,253,158,253,159,253,175,253,209,253,225,253,241,253,45,254,103,254,89,254,37,254,5,254,5,254,57,254, +157,254,215,254,172,254,91,254,44,254,41,254,68,254,97,254,102,254,98,254,99,254,91,254,87,254,137,254,214,254,231,254, +166,254,87,254,64,254,101,254,157,254,190,254,187,254,186,254,236,254,65,255,99,255,54,255,14,255,44,255,93,255,106,255, +101,255,100,255,93,255,79,255,74,255,100,255,162,255,211,255,195,255,145,255,126,255,143,255,170,255,197,255,202,255,179,255, +162,255,164,255,156,255,147,255,163,255,175,255,143,255,96,255,87,255,133,255,193,255,177,255,68,255,255,254,77,255,210,255, +245,255,174,255,93,255,70,255,114,255,177,255,184,255,125,255,83,255,114,255,160,255,174,255,189,255,204,255,156,255,74,255, +67,255,127,255,150,255,124,255,106,255,97,255,83,255,86,255,115,255,159,255,213,255,231,255,173,255,91,255,59,255,63,255, +58,255,43,255,42,255,72,255,110,255,110,255,81,255,79,255,102,255,105,255,97,255,92,255,59,255,7,255,247,254,8,255, +32,255,70,255,111,255,119,255,96,255,69,255,45,255,29,255,14,255,251,254,9,255,72,255,112,255,87,255,77,255,132,255, +181,255,173,255,157,255,182,255,241,255,38,0,49,0,36,0,77,0,192,0,31,1,24,1,231,0,254,0,95,1,169,1, +176,1,167,1,184,1,218,1,5,2,68,2,124,2,153,2,181,2,230,2,22,3,54,3,89,3,120,3,113,3,91,3, +129,3,223,3,32,4,50,4,79,4,118,4,112,4,95,4,139,4,227,4,51,5,109,5,134,5,130,5,165,5,22,6, +141,6,193,6,202,6,240,6,80,7,178,7,210,7,221,7,53,8,193,8,35,9,74,9,90,9,94,9,113,9,170,9, +237,9,47,10,132,10,210,10,247,10,255,10,250,10,249,10,55,11,183,11,15,12,14,12,234,11,196,11,190,11,26,12, +166,12,202,12,128,12,75,12,88,12,114,12,135,12,148,12,137,12,126,12,147,12,166,12,145,12,103,12,64,12,32,12, +37,12,95,12,138,12,114,12,79,12,100,12,140,12,128,12,70,12,21,12,2,12,245,11,196,11,122,11,103,11,167,11, +208,11,154,11,74,11,50,11,69,11,87,11,62,11,233,10,142,10,104,10,80,10,23,10,234,9,242,9,7,10,241,9, +162,9,57,9,248,8,224,8,160,8,46,8,231,7,224,7,191,7,86,7,208,6,99,6,47,6,31,6,4,6,220,5, +180,5,90,5,169,4,245,3,158,3,144,3,115,3,37,3,207,2,158,2,118,2,25,2,150,1,60,1,51,1,78,1, +55,1,176,0,235,255,86,255,31,255,30,255,56,255,79,255,48,255,215,254,121,254,39,254,206,253,130,253,108,253,108,253, +36,253,103,252,136,251,16,251,29,251,87,251,98,251,37,251,191,250,117,250,91,250,52,250,210,249,87,249,244,248,170,248, +103,248,20,248,177,247,107,247,92,247,83,247,33,247,219,246,150,246,61,246,206,245,95,245,255,244,168,244,104,244,94,244, +125,244,112,244,251,243,89,243,235,242,198,242,188,242,146,242,40,242,148,241,25,241,214,240,173,240,106,240,248,239,135,239, +74,239,23,239,167,238,27,238,183,237,116,237,46,237,209,236,32,236,18,235,40,234,186,233,122,233,9,233,95,232,132,231, +137,230,189,229,92,229,83,229,89,229,21,229,92,228,108,227,176,226,67,226,221,225,42,225,58,224,142,223,123,223,170,223, +151,223,87,223,77,223,133,223,178,223,142,223,20,223,122,222,242,221,152,221,125,221,160,221,232,221,85,222,241,222,130,223, +188,223,160,223,86,223,250,222,182,222,158,222,111,222,253,221,157,221,178,221,36,222,143,222,172,222,127,222,75,222,75,222, +94,222,32,222,94,221,106,220,218,219,3,220,167,220,65,221,142,221,196,221,43,222,177,222,255,222,245,222,194,222,180,222, +9,223,177,223,49,224,61,224,77,224,13,225,119,226,239,227,238,228,105,229,205,229,106,230,19,231,163,231,96,232,85,233, +33,234,203,234,202,235,39,237,114,238,79,239,192,239,54,240,66,241,153,242,68,243,16,243,230,242,133,243,204,244,36,246, +10,247,131,247,15,248,229,248,165,249,34,250,180,250,135,251,70,252,179,252,23,253,239,253,47,255,51,0,167,0,17,1, +247,1,23,3,234,3,123,4,59,5,84,6,89,7,181,7,146,7,241,7,107,9,55,11,39,12,76,12,199,12,32,14, +179,15,184,16,42,17,148,17,95,18,106,19,71,20,219,20,108,21,10,22,149,22,55,23,58,24,103,25,68,26,160,26, +185,26,18,27,245,27,232,28,55,29,30,29,101,29,40,30,225,30,83,31,153,31,233,31,124,32,46,33,131,33,92,33, +36,33,47,33,103,33,149,33,150,33,118,33,98,33,116,33,178,33,25,34,102,34,63,34,186,33,87,33,97,33,189,33, +24,34,15,34,151,33,47,33,69,33,161,33,191,33,132,33,93,33,161,33,10,34,11,34,143,33,6,33,207,32,234,32, +28,33,21,33,179,32,68,32,52,32,144,32,250,32,1,33,144,32,11,32,215,31,217,31,178,31,40,31,61,30,78,29, +241,28,68,29,143,29,33,29,43,28,84,27,227,26,163,26,79,26,188,25,222,24,223,23,12,23,130,22,52,22,19,22, +243,21,143,21,238,20,97,20,233,19,82,19,201,18,141,18,75,18,155,17,179,16,21,16,250,15,58,16,87,16,237,15, +49,15,178,14,157,14,170,14,140,14,37,14,138,13,242,12,139,12,104,12,113,12,97,12,16,12,191,11,181,11,194,11, +132,11,226,10,24,10,137,9,107,9,115,9,23,9,56,8,62,7,179,6,190,6,254,6,234,6,109,6,213,5,76,5, +214,4,126,4,46,4,180,3,16,3,119,2,15,2,214,1,165,1,87,1,252,0,195,0,166,0,112,0,252,255,91,255, +207,254,130,254,75,254,246,253,153,253,95,253,68,253,68,253,89,253,83,253,32,253,243,252,227,252,193,252,129,252,67,252, +8,252,185,251,104,251,66,251,83,251,108,251,95,251,62,251,46,251,47,251,24,251,202,250,84,250,250,249,235,249,254,249, +229,249,160,249,113,249,121,249,155,249,165,249,127,249,65,249,10,249,219,248,163,248,86,248,4,248,193,247,134,247,73,247, +71,247,155,247,195,247,81,247,196,246,186,246,0,247,35,247,22,247,223,246,145,246,136,246,203,246,230,246,190,246,183,246, +238,246,47,247,92,247,94,247,51,247,16,247,24,247,59,247,131,247,230,247,15,248,241,247,246,247,67,248,143,248,180,248, +189,248,170,248,175,248,17,249,138,249,150,249,76,249,68,249,162,249,241,249,215,249,139,249,122,249,186,249,7,250,35,250, +12,250,229,249,223,249,18,250,95,250,133,250,105,250,51,250,31,250,71,250,147,250,211,250,224,250,216,250,16,251,150,251, +249,251,232,251,159,251,120,251,140,251,216,251,59,252,105,252,83,252,84,252,171,252,39,253,113,253,115,253,109,253,153,253, +223,253,14,254,41,254,47,254,21,254,31,254,141,254,7,255,42,255,40,255,77,255,127,255,149,255,132,255,71,255,13,255, +24,255,97,255,187,255,8,0,32,0,248,255,212,255,251,255,93,0,186,0,197,0,100,0,4,0,18,0,74,0,59,0, +7,0,11,0,64,0,114,0,141,0,141,0,129,0,130,0,141,0,126,0,79,0,43,0,64,0,121,0,140,0,103,0, +65,0,60,0,89,0,158,0,235,0,228,0,119,0,35,0,83,0,196,0,238,0,190,0,137,0,127,0,157,0,210,0, +243,0,201,0,124,0,115,0,174,0,222,0,237,0,242,0,225,0,189,0,184,0,229,0,17,1,11,1,229,0,219,0, +234,0,210,0,160,0,177,0,9,1,60,1,35,1,237,0,182,0,160,0,199,0,231,0,178,0,112,0,121,0,161,0, +178,0,198,0,223,0,225,0,227,0,238,0,216,0,171,0,156,0,153,0,136,0,135,0,160,0,170,0,151,0,140,0, +159,0,178,0,147,0,72,0,19,0,27,0,46,0,38,0,28,0,33,0,20,0,223,255,177,255,188,255,233,255,239,255, +189,255,142,255,136,255,149,255,151,255,124,255,79,255,67,255,94,255,88,255,26,255,240,254,244,254,239,254,212,254,196,254, +187,254,181,254,195,254,214,254,206,254,180,254,172,254,187,254,201,254,190,254,156,254,112,254,55,254,253,253,248,253,40,254, +55,254,243,253,157,253,132,253,171,253,219,253,226,253,172,253,94,253,72,253,119,253,133,253,55,253,247,252,32,253,110,253, +166,253,253,253,107,254,133,254,64,254,250,253,231,253,17,254,113,254,197,254,209,254,198,254,245,254,96,255,201,255,7,0, +58,0,146,0,221,0,199,0,127,0,120,0,193,0,35,1,141,1,248,1,96,2,198,2,240,2,166,2,73,2,98,2, +208,2,21,3,19,3,8,3,36,3,108,3,180,3,216,3,252,3,53,4,73,4,42,4,66,4,200,4,98,5,160,5, +125,5,69,5,102,5,29,6,26,7,184,7,224,7,13,8,111,8,186,8,232,8,61,9,161,9,203,9,226,9,52,10, +150,10,197,10,242,10,101,11,12,12,178,12,57,13,130,13,115,13,55,13,42,13,103,13,178,13,214,13,237,13,17,14, +39,14,50,14,98,14,172,14,196,14,145,14,60,14,212,13,110,13,49,13,33,13,30,13,55,13,128,13,208,13,234,13, +199,13,145,13,109,13,59,13,209,12,109,12,79,12,62,12,21,12,46,12,144,12,186,12,154,12,140,12,122,12,20,12, +125,11,17,11,248,10,42,11,88,11,30,11,145,10,41,10,43,10,114,10,119,10,212,9,240,8,128,8,121,8,93,8, +40,8,245,7,146,7,10,7,170,6,82,6,179,5,231,4,34,4,76,3,130,2,56,2,123,2,176,2,72,2,69,1, +249,255,217,254,124,254,18,255,223,255,189,255,57,254,6,252,149,250,209,250,255,251,106,252,75,251,88,249,186,247,30,247, +106,247,237,247,251,247,95,247,41,246,185,244,210,243,208,243,47,244,50,244,153,243,170,242,26,242,101,242,1,243,232,242, +185,241,203,239,199,237,135,236,157,236,168,237,139,238,78,238,220,236,64,235,167,234,2,235,69,235,217,234,229,233,171,232, +127,231,219,230,222,230,49,231,98,231,242,230,144,229,171,227,63,226,208,225,249,225,9,226,158,225,210,224,253,223,102,223, +26,223,242,222,145,222,178,221,124,220,93,219,171,218,142,218,232,218,70,219,41,219,134,218,170,217,252,216,223,216,70,217, +151,217,104,217,10,217,4,217,104,217,218,217,6,218,253,217,249,217,233,217,156,217,58,217,55,217,226,217,2,219,195,219, +118,219,151,218,77,218,230,218,196,219,69,220,19,220,50,219,78,218,38,218,169,218,89,219,249,219,93,220,70,220,207,219, +122,219,133,219,169,219,147,219,89,219,74,219,136,219,253,219,140,220,46,221,233,221,168,222,44,223,93,223,139,223,6,224, +170,224,33,225,85,225,144,225,92,226,223,227,99,229,57,230,186,230,155,231,178,232,95,233,160,233,14,234,3,235,47,236, +19,237,167,237,94,238,124,239,195,240,186,241,80,242,6,243,36,244,25,245,66,245,4,245,78,245,90,246,139,247,74,248, +179,248,94,249,137,250,192,251,128,252,229,252,107,253,69,254,30,255,155,255,3,0,246,0,89,2,95,3,209,3,102,4, +167,5,28,7,246,7,40,8,111,8,79,9,125,10,117,11,38,12,227,12,235,13,253,14,171,15,29,16,236,16,20,18, +246,18,111,19,252,19,235,20,11,22,4,23,164,23,32,24,223,24,207,25,123,26,191,26,0,27,177,27,190,28,141,29, +210,29,37,30,10,31,247,31,59,32,51,32,151,32,84,33,215,33,243,33,244,33,62,34,243,34,192,35,64,36,111,36, +132,36,149,36,159,36,185,36,243,36,54,37,61,37,205,36,65,36,92,36,49,37,226,37,217,37,104,37,25,37,56,37, +164,37,182,37,21,37,125,36,158,36,254,36,0,37,226,36,248,36,34,37,61,37,67,37,37,37,245,36,203,36,144,36, +52,36,212,35,134,35,85,35,56,35,253,34,161,34,116,34,139,34,138,34,62,34,206,33,79,33,176,32,6,32,120,31, +5,31,144,30,23,30,152,29,3,29,111,28,12,28,185,27,44,27,113,26,189,25,25,25,122,24,197,23,229,22,34,22, +194,21,102,21,182,20,21,20,188,19,60,19,126,18,232,17,114,17,232,16,100,16,220,15,37,15,121,14,30,14,225,13, +92,13,134,12,175,11,44,11,221,10,113,10,0,10,183,9,77,9,153,8,255,7,190,7,149,7,40,7,72,6,43,5, +129,4,152,4,217,4,165,4,2,4,54,3,120,2,244,1,150,1,49,1,202,0,98,0,209,255,48,255,211,254,182,254, +126,254,251,253,88,253,224,252,181,252,175,252,119,252,233,251,73,251,243,250,214,250,135,250,230,249,108,249,119,249,170,249, +110,249,212,248,106,248,99,248,108,248,49,248,192,247,107,247,120,247,197,247,222,247,158,247,95,247,116,247,172,247,168,247, +124,247,146,247,219,247,184,247,27,247,204,246,43,247,177,247,225,247,205,247,183,247,234,247,104,248,179,248,122,248,33,248, +16,248,45,248,72,248,89,248,109,248,162,248,230,248,5,249,27,249,110,249,198,249,189,249,100,249,36,249,57,249,116,249, +111,249,52,249,65,249,157,249,208,249,209,249,247,249,68,250,149,250,208,250,180,250,84,250,90,250,254,250,151,251,180,251, +164,251,206,251,45,252,112,252,91,252,51,252,108,252,1,253,128,253,167,253,152,253,144,253,171,253,218,253,25,254,109,254, +188,254,225,254,216,254,186,254,181,254,251,254,116,255,186,255,160,255,116,255,140,255,223,255,17,0,210,255,74,255,255,254, +46,255,133,255,162,255,130,255,85,255,48,255,41,255,102,255,198,255,220,255,125,255,237,254,136,254,159,254,63,255,208,255, +182,255,52,255,228,254,224,254,2,255,36,255,252,254,143,254,86,254,98,254,89,254,70,254,97,254,122,254,95,254,41,254, +251,253,240,253,7,254,255,253,184,253,112,253,62,253,8,253,233,252,244,252,241,252,216,252,193,252,137,252,46,252,0,252, +245,251,158,251,0,251,140,250,91,250,60,250,51,250,63,250,34,250,197,249,105,249,52,249,14,249,224,248,157,248,59,248, +233,247,219,247,224,247,176,247,92,247,5,247,165,246,97,246,112,246,170,246,177,246,93,246,225,245,152,245,161,245,191,245, +212,245,237,245,224,245,143,245,86,245,138,245,253,245,96,246,129,246,71,246,250,245,7,246,82,246,109,246,92,246,99,246, +115,246,97,246,61,246,39,246,42,246,78,246,138,246,171,246,141,246,80,246,47,246,71,246,145,246,212,246,191,246,105,246, +82,246,155,246,236,246,28,247,68,247,89,247,99,247,143,247,212,247,17,248,72,248,105,248,97,248,111,248,188,248,27,249, +118,249,221,249,65,250,151,250,226,250,3,251,255,250,33,251,142,251,51,252,216,252,40,253,44,253,124,253,68,254,219,254, +236,254,237,254,75,255,231,255,77,0,46,0,226,255,21,0,221,0,180,1,40,2,39,2,15,2,117,2,75,3,213,3, +217,3,218,3,27,4,104,4,171,4,15,5,172,5,88,6,180,6,162,6,129,6,188,6,96,7,17,8,90,8,54,8, +53,8,161,8,25,9,96,9,151,9,189,9,193,9,208,9,252,9,50,10,119,10,182,10,185,10,167,10,211,10,42,11, +130,11,236,11,69,12,72,12,30,12,21,12,27,12,39,12,114,12,195,12,156,12,75,12,142,12,60,13,130,13,49,13, +202,12,177,12,227,12,34,13,60,13,58,13,67,13,86,13,111,13,144,13,153,13,138,13,168,13,240,13,254,13,162,13, +36,13,233,12,11,13,38,13,242,12,205,12,240,12,217,12,100,12,49,12,113,12,181,12,218,12,216,12,109,12,191,11, +95,11,114,11,182,11,228,11,201,11,126,11,78,11,41,11,230,10,168,10,141,10,136,10,151,10,144,10,47,10,186,9, +160,9,193,9,228,9,37,10,125,10,192,10,243,10,1,11,199,10,128,10,93,10,26,10,139,9,238,8,143,8,165,8, +55,9,191,9,158,9,245,8,123,8,141,8,207,8,161,8,212,7,240,6,151,6,206,6,21,7,17,7,193,6,70,6, +212,5,152,5,119,5,55,5,238,4,186,4,90,4,184,3,61,3,43,3,90,3,164,3,195,3,76,3,96,2,175,1, +157,1,26,2,197,2,217,2,10,2,42,1,9,1,101,1,201,1,60,2,142,2,63,2,73,1,100,0,60,0,156,0, +179,0,71,0,228,255,177,255,79,255,219,254,198,254,229,254,193,254,123,254,137,254,228,254,253,254,103,254,61,253,15,252, +136,251,237,251,171,252,215,252,37,252,14,251,59,250,55,250,21,251,28,252,114,252,252,251,253,250,166,249,116,248,19,248, +127,248,233,248,155,248,186,247,255,246,208,246,10,247,164,247,133,248,236,248,59,248,8,247,60,246,232,245,169,245,113,245, +131,245,250,245,68,246,142,245,16,244,11,243,38,243,201,243,53,244,37,244,168,243,22,243,206,242,184,242,134,242,53,242, +237,241,187,241,165,241,177,241,175,241,105,241,37,241,95,241,225,241,244,241,83,241,62,240,246,238,233,237,158,237,1,238, +105,238,120,238,100,238,113,238,115,238,243,237,251,236,63,236,6,236,171,235,198,234,233,233,170,233,221,233,1,234,213,233, +115,233,64,233,141,233,33,234,52,234,51,233,127,231,22,230,140,229,204,229,91,230,151,230,64,230,218,229,230,229,30,230, +15,230,190,229,102,229,57,229,86,229,145,229,145,229,57,229,200,228,163,228,218,228,255,228,216,228,225,228,93,229,205,229, +189,229,59,229,146,228,62,228,123,228,210,228,240,228,38,229,126,229,163,229,159,229,125,229,33,229,10,229,193,229,153,230, +168,230,43,230,207,229,201,229,24,230,151,230,227,230,223,230,218,230,20,231,121,231,172,231,116,231,73,231,226,231,20,233, +246,233,14,234,172,233,98,233,126,233,220,233,63,234,194,234,157,235,128,236,212,236,165,236,173,236,128,237,204,238,164,239, +140,239,22,239,72,239,87,240,122,241,239,241,210,241,222,241,157,242,203,243,157,244,183,244,131,244,148,244,48,245,61,246, +45,247,141,247,188,247,66,248,234,248,115,249,19,250,172,250,217,250,233,250,103,251,57,252,237,252,81,253,141,253,21,254, +12,255,238,255,122,0,7,1,147,1,212,1,6,2,111,2,233,2,143,3,146,4,125,5,212,5,253,5,192,6,66,8, +171,9,235,9,64,9,32,9,47,10,163,11,183,12,70,13,104,13,160,13,146,14,239,15,201,16,247,16,22,17,111,17, +207,17,46,18,193,18,124,19,31,20,188,20,149,21,111,22,207,22,224,22,63,23,245,23,129,24,176,24,210,24,41,25, +175,25,102,26,58,27,175,27,138,27,125,27,36,28,235,28,31,29,21,29,89,29,179,29,188,29,168,29,10,30,17,31, +43,32,179,32,187,32,171,32,152,32,134,32,150,32,186,32,224,32,54,33,146,33,114,33,19,33,109,33,143,34,80,35, +25,35,178,34,217,34,36,35,251,34,128,34,20,34,232,33,16,34,87,34,103,34,93,34,138,34,193,34,151,34,18,34, +136,33,81,33,111,33,101,33,225,32,89,32,85,32,142,32,119,32,250,31,122,31,75,31,46,31,159,30,189,29,45,29, +34,29,64,29,37,29,173,28,39,28,14,28,33,28,165,27,182,26,4,26,156,25,25,25,115,24,218,23,126,23,143,23, +222,23,213,23,60,23,139,22,25,22,163,21,227,20,30,20,160,19,62,19,205,18,123,18,91,18,68,18,42,18,249,17, +124,17,199,16,24,16,82,15,87,14,112,13,234,12,189,12,174,12,107,12,247,11,179,11,148,11,17,11,55,10,150,9, +43,9,141,8,171,7,173,6,198,5,82,5,78,5,24,5,81,4,90,3,168,2,72,2,251,1,124,1,192,0,11,0, +141,255,23,255,133,254,33,254,31,254,22,254,131,253,115,252,76,251,84,250,171,249,81,249,18,249,194,248,109,248,47,248, +249,247,154,247,22,247,194,246,144,246,254,245,20,245,127,244,97,244,60,244,236,243,140,243,36,243,249,242,32,243,5,243, +111,242,231,241,137,241,1,241,129,240,81,240,54,240,14,240,247,239,214,239,176,239,189,239,205,239,116,239,186,238,12,238, +206,237,229,237,180,237,20,237,208,236,85,237,248,237,26,238,192,237,33,237,144,236,97,236,117,236,135,236,149,236,120,236, +20,236,217,235,39,236,161,236,203,236,169,236,110,236,63,236,65,236,127,236,222,236,49,237,88,237,105,237,166,237,10,238, +67,238,82,238,123,238,177,238,181,238,159,238,171,238,211,238,16,239,130,239,24,240,158,240,40,241,202,241,61,242,80,242, +51,242,38,242,77,242,183,242,34,243,79,243,116,243,205,243,60,244,197,244,119,245,2,246,38,246,29,246,27,246,57,246, +181,246,126,247,22,248,86,248,124,248,164,248,220,248,55,249,167,249,27,250,149,250,10,251,146,251,67,252,179,252,118,252, +250,251,13,252,205,252,185,253,86,254,153,254,209,254,43,255,144,255,250,255,90,0,116,0,95,0,140,0,255,0,89,1, +146,1,224,1,64,2,151,2,225,2,35,3,120,3,240,3,103,4,180,4,199,4,192,4,223,4,31,5,60,5,101,5, +3,6,188,6,243,6,206,6,188,6,194,6,246,6,120,7,235,7,244,7,221,7,252,7,45,8,59,8,52,8,72,8, +133,8,186,8,167,8,110,8,114,8,174,8,180,8,104,8,40,8,41,8,69,8,92,8,86,8,0,8,137,7,127,7, +225,7,18,8,210,7,97,7,251,6,209,6,254,6,69,7,89,7,55,7,245,6,191,6,187,6,175,6,93,6,25,6, +53,6,97,6,81,6,52,6,42,6,0,6,129,5,193,4,44,4,57,4,204,4,56,5,245,4,26,4,77,3,45,3, +157,3,234,3,180,3,43,3,151,2,32,2,202,1,96,1,194,0,47,0,239,255,229,255,187,255,93,255,246,254,146,254, +37,254,195,253,76,253,126,252,184,251,167,251,5,252,255,251,108,251,146,250,176,249,96,249,241,249,149,250,125,250,231,249, +72,249,198,248,146,248,158,248,139,248,76,248,14,248,199,247,171,247,10,248,134,248,145,248,60,248,206,247,108,247,97,247, +189,247,13,248,237,247,135,247,65,247,85,247,158,247,201,247,204,247,203,247,166,247,79,247,30,247,46,247,40,247,237,246, +200,246,216,246,18,247,122,247,216,247,187,247,45,247,206,246,235,246,59,247,145,247,18,248,166,248,231,248,174,248,87,248, +113,248,39,249,17,250,168,250,182,250,76,250,237,249,82,250,85,251,222,251,145,251,99,251,17,252,56,253,16,254,75,254, +76,254,146,254,13,255,120,255,238,255,121,0,221,0,50,1,170,1,11,2,77,2,212,2,139,3,3,4,70,4,132,4, +165,4,197,4,46,5,216,5,133,6,10,7,89,7,168,7,38,8,184,8,89,9,6,10,76,10,246,9,172,9,232,9, +98,10,255,10,233,11,207,12,65,13,72,13,20,13,213,12,225,12,98,13,35,14,222,14,86,15,102,15,77,15,117,15, +242,15,136,16,3,17,76,17,99,17,115,17,189,17,54,18,134,18,150,18,210,18,120,19,23,20,52,20,15,20,81,20, +47,21,34,22,105,22,231,21,57,21,3,21,103,21,38,22,235,22,108,23,113,23,221,22,243,21,94,21,144,21,82,22, +10,23,36,23,94,22,32,21,117,20,15,21,78,22,181,22,148,21,210,19,162,18,57,18,73,18,128,18,92,18,170,17, +9,17,234,16,227,16,153,16,63,16,12,16,7,16,252,15,117,15,121,14,210,13,214,13,249,13,210,13,129,13,34,13, +142,12,166,11,184,10,85,10,151,10,33,11,180,11,206,11,129,10,25,8,134,6,180,6,68,7,184,6,54,5,228,3, +181,3,136,4,40,5,166,4,65,3,152,1,3,0,254,254,250,254,167,255,51,0,6,0,224,254,235,252,41,251,189,250, +100,251,151,251,131,250,188,248,17,247,222,245,33,245,116,244,135,243,233,242,71,243,36,244,58,244,221,242,147,240,152,238, +229,237,89,238,248,238,184,238,68,237,140,235,255,234,117,235,43,235,117,233,154,231,155,230,231,229,169,228,248,226,147,225, +27,225,143,225,83,226,172,226,84,226,180,225,81,225,208,224,60,223,177,220,202,218,172,218,130,219,165,219,189,218,219,217, +238,217,190,218,72,219,183,218,48,217,155,215,154,214,27,214,221,213,205,213,238,213,55,214,111,214,74,214,249,213,229,213, +218,213,114,213,209,212,244,211,152,210,87,209,51,209,19,210,27,211,200,211,198,211,6,211,47,210,226,209,250,209,0,210, +176,209,36,209,188,208,165,208,180,208,18,209,19,210,93,211,56,212,93,212,199,211,198,210,77,210,13,211,129,212,152,213, +220,213,173,213,191,213,79,214,2,215,145,215,4,216,87,216,149,216,7,217,184,217,115,218,66,219,55,220,16,221,166,221, +48,222,232,222,204,223,176,224,90,225,188,225,22,226,181,226,180,227,236,228,245,229,137,230,4,231,250,231,72,233,56,234, +155,234,242,234,145,235,92,236,70,237,95,238,150,239,203,240,225,241,174,242,77,243,56,244,166,245,54,247,87,248,230,248, +99,249,107,250,195,251,155,252,244,252,156,253,232,254,113,0,185,1,106,2,172,2,53,3,103,4,213,5,242,6,154,7, +12,8,186,8,224,9,85,11,227,12,77,14,57,15,177,15,38,16,187,16,115,17,114,18,123,19,30,20,166,20,144,21, +158,22,135,23,118,24,99,25,245,25,31,26,46,26,148,26,154,27,232,28,209,29,45,30,84,30,168,30,113,31,138,32, +86,33,121,33,66,33,58,33,174,33,110,34,236,34,18,35,95,35,241,35,86,36,107,36,83,36,8,36,180,35,186,35, +4,36,64,36,152,36,47,37,154,37,164,37,171,37,214,37,220,37,185,37,179,37,198,37,200,37,192,37,189,37,200,37, +251,37,56,38,36,38,196,37,115,37,68,37,33,37,247,36,147,36,242,35,142,35,163,35,217,35,241,35,238,35,182,35, +86,35,1,35,176,34,80,34,4,34,184,33,47,33,121,32,197,31,53,31,245,30,217,30,92,30,121,29,168,28,18,28, +177,27,158,27,149,27,15,27,3,26,225,24,29,24,250,23,52,24,3,24,39,23,75,22,253,21,4,22,210,21,38,21, +41,20,66,19,197,18,168,18,130,18,254,17,58,17,134,16,14,16,231,15,0,16,17,16,227,15,90,15,78,14,249,12, +26,12,241,11,244,11,188,11,75,11,166,10,19,10,255,9,55,10,35,10,146,9,144,8,72,7,70,6,239,5,231,5, +174,5,57,5,184,4,85,4,14,4,163,3,247,2,73,2,195,1,75,1,216,0,119,0,32,0,200,255,109,255,24,255, +231,254,227,254,223,254,170,254,47,254,115,253,183,252,105,252,141,252,168,252,111,252,26,252,231,251,192,251,155,251,146,251, +123,251,12,251,134,250,96,250,140,250,179,250,200,250,194,250,130,250,39,250,243,249,236,249,245,249,232,249,174,249,120,249, +146,249,230,249,17,250,221,249,130,249,95,249,137,249,179,249,173,249,142,249,69,249,209,248,136,248,142,248,163,248,196,248, +3,249,31,249,25,249,90,249,194,249,177,249,31,249,174,248,189,248,2,249,16,249,1,249,40,249,91,249,84,249,106,249, +224,249,58,250,37,250,241,249,229,249,13,250,99,250,149,250,104,250,51,250,62,250,94,250,150,250,241,250,20,251,241,250, +16,251,117,251,142,251,71,251,21,251,17,251,246,250,209,250,246,250,105,251,207,251,1,252,51,252,103,252,116,252,128,252, +181,252,176,252,40,252,143,251,106,251,164,251,247,251,75,252,141,252,166,252,172,252,192,252,223,252,252,252,26,253,45,253, +50,253,63,253,86,253,100,253,119,253,160,253,182,253,175,253,176,253,186,253,185,253,206,253,4,254,44,254,53,254,38,254, +4,254,253,253,36,254,53,254,35,254,37,254,36,254,10,254,35,254,100,254,90,254,36,254,70,254,195,254,71,255,152,255, +129,255,252,254,90,254,239,253,255,253,147,254,36,255,43,255,212,254,108,254,8,254,249,253,97,254,168,254,105,254,250,253, +177,253,173,253,251,253,60,254,14,254,219,253,15,254,82,254,103,254,133,254,120,254,225,253,23,253,160,252,122,252,137,252, +216,252,21,253,215,252,82,252,255,251,216,251,156,251,97,251,59,251,246,250,154,250,140,250,235,250,93,251,128,251,58,251, +212,250,204,250,62,251,164,251,114,251,168,250,193,249,89,249,170,249,85,250,233,250,51,251,20,251,150,250,56,250,114,250, +6,251,51,251,167,250,241,249,210,249,70,250,195,250,11,251,25,251,210,250,132,250,195,250,98,251,133,251,243,250,101,250, +107,250,211,250,41,251,53,251,252,250,156,250,84,250,96,250,165,250,200,250,149,250,51,250,254,249,47,250,153,250,251,250, +83,251,143,251,109,251,22,251,15,251,106,251,223,251,59,252,67,252,233,251,168,251,215,251,59,252,151,252,198,252,156,252, +95,252,134,252,217,252,222,252,179,252,165,252,198,252,45,253,182,253,0,254,42,254,130,254,196,254,176,254,164,254,209,254, +251,254,45,255,131,255,183,255,168,255,163,255,216,255,26,0,64,0,65,0,42,0,43,0,106,0,194,0,246,0,25,1, +105,1,221,1,53,2,109,2,158,2,177,2,164,2,187,2,4,3,59,3,65,3,73,3,142,3,9,4,88,4,62,4, +21,4,78,4,183,4,199,4,117,4,37,4,50,4,174,4,85,5,195,5,227,5,2,6,71,6,107,6,69,6,41,6, +112,6,5,7,150,7,221,7,202,7,165,7,193,7,0,8,7,8,209,7,178,7,0,8,185,8,114,9,216,9,31,10, +96,10,79,10,1,10,237,9,37,10,137,10,30,11,147,11,148,11,127,11,167,11,204,11,253,11,128,12,241,12,215,12, +100,12,239,11,194,11,25,12,132,12,93,12,13,12,68,12,161,12,164,12,178,12,31,13,158,13,207,13,126,13,193,12, +55,12,125,12,107,13,68,14,83,14,148,13,213,12,200,12,25,13,20,13,151,12,14,12,36,12,63,13,196,14,102,15, +148,14,253,12,176,11,84,11,233,11,199,12,34,13,191,12,10,12,135,11,106,11,164,11,48,12,15,13,209,13,158,13, +60,12,144,10,147,9,117,9,2,10,216,10,34,11,72,10,220,8,249,7,22,8,229,8,194,9,234,9,216,8,211,6, +38,5,69,5,50,7,44,9,133,9,14,8,185,5,250,3,28,4,210,5,57,7,231,6,19,5,229,2,180,1,27,2, +77,3,49,4,134,4,49,4,61,3,143,2,157,2,75,2,240,0,147,255,22,255,37,255,82,255,110,255,70,255,24,255, +106,255,39,0,158,0,35,0,128,254,82,252,206,250,158,250,82,251,16,252,96,252,62,252,196,251,16,251,138,250,148,250, +194,250,65,250,31,249,36,248,132,247,237,246,149,246,249,246,186,247,223,247,68,247,203,246,255,246,49,247,77,246,51,244, +243,241,220,240,71,241,111,242,135,243,68,244,79,244,66,243,140,241,93,240,84,240,8,241,180,241,168,241,128,240,211,238, +32,238,35,239,197,240,89,241,95,240,176,238,114,237,37,237,98,237,136,237,121,237,66,237,186,236,48,236,111,236,115,237, +17,238,85,237,130,235,202,233,86,233,69,234,126,235,186,235,164,234,20,233,87,232,213,232,169,233,241,233,172,233,17,233, +60,232,132,231,35,231,250,230,252,230,19,231,227,230,86,230,208,229,150,229,223,229,213,230,185,231,85,231,201,229,146,228, +142,228,52,229,169,229,199,229,229,229,17,230,32,230,66,230,176,230,229,230,84,230,141,229,134,229,56,230,224,230,25,231, +245,230,149,230,44,230,30,230,177,230,158,231,59,232,42,232,159,231,26,231,12,231,167,231,161,232,85,233,112,233,72,233, +80,233,126,233,143,233,145,233,159,233,147,233,103,233,104,233,179,233,11,234,61,234,100,234,176,234,45,235,152,235,181,235, +191,235,22,236,159,236,0,237,25,237,252,236,244,236,117,237,119,238,62,239,91,239,49,239,62,239,137,239,229,239,58,240, +136,240,246,240,165,241,85,242,170,242,228,242,127,243,75,244,217,244,68,245,186,245,253,245,16,246,101,246,13,247,205,247, +161,248,112,249,242,249,62,250,164,250,44,251,176,251,250,251,211,251,166,251,46,252,70,253,45,254,189,254,66,255,191,255, +58,0,201,0,65,1,118,1,140,1,163,1,191,1,2,2,140,2,82,3,36,4,165,4,162,4,130,4,210,4,140,5, +86,6,238,6,32,7,242,6,222,6,92,7,72,8,27,9,124,9,131,9,151,9,17,10,238,10,210,11,91,12,128,12, +146,12,222,12,99,13,248,13,139,14,13,15,106,15,190,15,45,16,127,16,115,16,105,16,240,16,207,17,86,18,118,18, +167,18,3,19,72,19,103,19,128,19,176,19,245,19,60,20,147,20,15,21,111,21,73,21,179,20,60,20,79,20,213,20, +104,21,164,21,121,21,63,21,93,21,213,21,48,22,40,22,11,22,18,22,245,21,177,21,202,21,85,22,210,22,253,22, +227,22,165,22,156,22,245,22,51,23,2,23,203,22,226,22,24,23,75,23,127,23,163,23,196,23,223,23,173,23,57,23, +28,23,158,23,76,24,145,24,51,24,128,23,58,23,185,23,87,24,84,24,224,23,144,23,107,23,56,23,25,23,66,23, +129,23,127,23,43,23,194,22,157,22,209,22,4,23,213,22,90,22,222,21,122,21,57,21,41,21,31,21,245,20,224,20, +11,21,71,21,94,21,75,21,254,20,116,20,234,19,156,19,119,19,76,19,14,19,201,18,152,18,158,18,205,18,211,18, +145,18,74,18,52,18,42,18,10,18,213,17,152,17,95,17,44,17,238,16,200,16,231,16,254,16,175,16,54,16,238,15, +197,15,192,15,253,15,5,16,108,15,182,14,132,14,149,14,119,14,56,14,7,14,226,13,171,13,64,13,190,12,115,12, +100,12,64,12,246,11,189,11,139,11,42,11,156,10,21,10,172,9,97,9,54,9,10,9,170,8,41,8,217,7,207,7, +196,7,141,7,87,7,45,7,194,6,237,5,20,5,189,4,238,4,48,5,41,5,223,4,149,4,115,4,84,4,242,3, +93,3,241,2,190,2,136,2,73,2,40,2,17,2,220,1,156,1,107,1,66,1,23,1,235,0,173,0,60,0,180,255, +114,255,141,255,131,255,239,254,51,254,222,253,219,253,199,253,128,253,24,253,170,252,86,252,41,252,27,252,3,252,146,251, +177,250,204,249,84,249,76,249,121,249,159,249,101,249,163,248,207,247,137,247,215,247,31,248,224,247,47,247,113,246,230,245, +149,245,133,245,182,245,237,245,199,245,38,245,107,244,30,244,68,244,82,244,255,243,167,243,175,243,223,243,199,243,92,243, +212,242,100,242,73,242,174,242,68,243,112,243,245,242,48,242,172,241,157,241,199,241,224,241,238,241,247,241,191,241,73,241, +13,241,47,241,80,241,70,241,55,241,38,241,19,241,23,241,21,241,241,240,228,240,251,240,228,240,146,240,87,240,72,240, +78,240,108,240,151,240,171,240,165,240,144,240,101,240,59,240,64,240,112,240,161,240,182,240,175,240,156,240,149,240,164,240, +201,240,18,241,125,241,213,241,215,241,144,241,85,241,98,241,181,241,33,242,99,242,86,242,49,242,85,242,200,242,84,243, +221,243,65,244,75,244,33,244,40,244,123,244,223,244,39,245,66,245,56,245,73,245,178,245,88,246,237,246,52,247,23,247, +209,246,221,246,89,247,226,247,56,248,121,248,162,248,150,248,137,248,199,248,61,249,150,249,169,249,152,249,176,249,30,250, +178,250,20,251,33,251,11,251,49,251,180,251,27,252,232,251,126,251,148,251,43,252,219,252,107,253,162,253,108,253,78,253, +178,253,76,254,191,254,2,255,226,254,85,254,6,254,143,254,182,255,220,0,126,1,98,1,234,0,202,0,30,1,124,1, +175,1,190,1,179,1,187,1,13,2,165,2,81,3,202,3,204,3,108,3,42,3,95,3,220,3,60,4,78,4,60,4, +87,4,173,4,251,4,35,5,76,5,115,5,96,5,27,5,235,4,240,4,24,5,74,5,85,5,25,5,230,4,57,5, +243,5,106,6,71,6,211,5,116,5,91,5,129,5,173,5,186,5,197,5,212,5,173,5,90,5,59,5,90,5,97,5, +72,5,80,5,125,5,171,5,215,5,241,5,212,5,139,5,62,5,13,5,9,5,30,5,19,5,229,4,192,4,166,4, +168,4,9,5,174,5,8,6,206,5,42,5,99,4,223,3,220,3,8,4,1,4,233,3,213,3,153,3,93,3,101,3, +122,3,97,3,49,3,218,2,87,2,6,2,7,2,1,2,225,1,202,1,146,1,47,1,233,0,174,0,70,0,252,255, +247,255,189,255,56,255,2,255,60,255,73,255,204,254,24,254,193,253,244,253,51,254,245,253,137,253,153,253,240,253,222,253, +117,253,50,253,255,252,174,252,157,252,4,253,94,253,58,253,192,252,59,252,234,251,41,252,232,252,110,253,65,253,179,252, +93,252,175,252,174,253,159,254,169,254,4,254,123,253,44,253,241,252,48,253,22,254,252,254,79,255,10,255,123,254,73,254, +234,254,185,255,184,255,16,255,156,254,171,254,29,255,196,255,80,0,156,0,197,0,184,0,110,0,91,0,183,0,19,1, +30,1,216,0,74,0,245,255,146,0,202,1,134,2,130,2,64,2,28,2,83,2,242,2,104,3,54,3,193,2,168,2, +21,3,235,3,207,4,81,5,129,5,184,5,215,5,165,5,138,5,254,5,211,6,137,7,240,7,34,8,72,8,128,8, +219,8,88,9,206,9,23,10,49,10,43,10,0,10,208,9,232,9,99,10,17,11,150,11,135,11,230,10,89,10,133,10, +87,11,69,12,201,12,139,12,177,11,248,10,250,10,146,11,54,12,149,12,178,12,113,12,157,11,159,10,139,10,185,11, +14,13,107,13,237,12,53,12,141,11,60,11,165,11,157,12,58,13,182,12,122,11,233,10,179,11,13,13,236,13,253,13, +34,13,133,11,54,10,20,10,174,10,59,11,135,11,103,11,217,10,146,10,13,11,191,11,236,11,80,11,253,9,163,8, +54,8,172,8,30,9,10,9,145,8,30,8,53,8,170,8,90,8,234,6,171,5,158,5,13,6,232,5,43,5,99,4, +225,3,170,3,165,3,147,3,43,3,93,2,121,1,219,0,141,0,108,0,95,0,70,0,8,0,144,255,169,254,98,253, +115,252,112,252,219,252,207,252,37,252,82,251,151,250,233,249,113,249,151,249,63,250,132,250,192,249,111,248,110,247,0,247, +236,246,178,246,187,245,43,244,15,243,41,243,65,244,146,245,6,246,226,244,232,242,164,241,146,241,7,242,42,242,56,241, +54,239,159,237,159,237,96,238,158,238,92,238,222,237,236,236,239,235,204,235,118,236,237,236,94,236,190,234,212,232,186,231, +203,231,90,232,168,232,119,232,196,231,185,230,224,229,148,229,114,229,236,228,64,228,24,228,82,228,71,228,24,228,106,228, +3,229,2,229,61,228,73,227,132,226,226,225,129,225,181,225,106,226,205,226,51,226,55,225,9,225,192,225,98,226,66,226, +126,225,152,224,19,224,29,224,122,224,225,224,38,225,49,225,54,225,111,225,144,225,78,225,250,224,190,224,74,224,209,223, +240,223,136,224,254,224,56,225,96,225,113,225,126,225,148,225,143,225,136,225,178,225,208,225,168,225,151,225,250,225,180,226, +146,227,72,228,110,228,13,228,175,227,188,227,78,228,67,229,24,230,83,230,49,230,101,230,83,231,196,232,244,233,23,234, +82,233,180,232,243,232,239,233,44,235,22,236,70,236,33,236,150,236,247,237,144,239,127,240,143,240,52,240,253,239,48,240, +217,240,217,241,202,242,76,243,121,243,204,243,156,244,187,245,146,246,180,246,116,246,154,246,123,247,160,248,99,249,169,249, +235,249,141,250,100,251,35,252,190,252,41,253,79,253,116,253,254,253,236,254,248,255,219,0,86,1,118,1,174,1,76,2, +43,3,15,4,166,4,187,4,208,4,140,5,147,6,51,7,167,7,94,8,9,9,102,9,199,9,83,10,242,10,174,11, +105,12,207,12,237,12,21,13,118,13,43,14,33,15,225,15,31,16,50,16,115,16,233,16,149,17,87,18,186,18,147,18, +92,18,155,18,69,19,218,19,9,20,36,20,152,20,47,21,131,21,192,21,34,22,74,22,6,22,236,21,110,22,39,23, +122,23,70,23,232,22,222,22,84,23,246,23,75,24,39,24,189,23,127,23,200,23,116,24,239,24,232,24,165,24,137,24, +168,24,238,24,83,25,159,25,117,25,212,24,61,24,30,24,110,24,229,24,50,25,28,25,190,24,109,24,93,24,147,24, +234,24,7,25,160,24,234,23,67,23,215,22,206,22,64,23,198,23,200,23,61,23,152,22,52,22,43,22,78,22,73,22, +9,22,180,21,77,21,221,20,154,20,141,20,138,20,140,20,131,20,40,20,134,19,25,19,16,19,17,19,210,18,82,18, +198,17,129,17,147,17,178,17,174,17,146,17,71,17,181,16,24,16,171,15,107,15,77,15,56,15,245,14,146,14,104,14, +122,14,106,14,9,14,120,13,225,12,115,12,94,12,130,12,123,12,15,12,97,11,189,10,95,10,87,10,133,10,169,10, +127,10,8,10,144,9,92,9,91,9,64,9,200,8,2,8,92,7,55,7,105,7,135,7,94,7,240,6,95,6,15,6, +82,6,210,6,214,6,41,6,68,5,165,4,125,4,181,4,244,4,205,4,57,4,163,3,113,3,167,3,231,3,189,3, +20,3,92,2,252,1,238,1,13,2,69,2,69,2,208,1,73,1,40,1,37,1,197,0,55,0,239,255,252,255,57,0, +128,0,139,0,47,0,146,255,255,254,181,254,206,254,18,255,37,255,252,254,182,254,68,254,196,253,152,253,206,253,10,254, +19,254,229,253,146,253,92,253,111,253,112,253,18,253,165,252,110,252,65,252,36,252,97,252,202,252,224,252,157,252,73,252, +4,252,232,251,247,251,224,251,120,251,18,251,244,250,252,250,8,251,34,251,72,251,110,251,128,251,73,251,208,250,133,250, +136,250,107,250,28,250,7,250,44,250,41,250,15,250,37,250,57,250,14,250,227,249,223,249,180,249,64,249,229,248,255,248, +95,249,138,249,83,249,4,249,219,248,178,248,117,248,101,248,151,248,192,248,178,248,131,248,72,248,44,248,102,248,203,248, +218,248,114,248,1,248,216,247,221,247,233,247,249,247,1,248,225,247,169,247,161,247,214,247,253,247,221,247,156,247,105,247, +70,247,57,247,93,247,160,247,187,247,143,247,72,247,17,247,232,246,207,246,238,246,58,247,75,247,239,246,141,246,131,246, +176,246,216,246,243,246,241,246,194,246,141,246,133,246,154,246,177,246,191,246,163,246,74,246,241,245,238,245,57,246,134,246, +176,246,191,246,177,246,136,246,88,246,38,246,2,246,23,246,103,246,158,246,123,246,45,246,254,245,16,246,85,246,133,246, +98,246,41,246,53,246,85,246,80,246,110,246,206,246,241,246,160,246,82,246,87,246,138,246,189,246,211,246,181,246,145,246, +164,246,222,246,21,247,82,247,134,247,142,247,110,247,78,247,73,247,118,247,201,247,0,248,234,247,170,247,144,247,221,247, +110,248,200,248,176,248,123,248,125,248,170,248,231,248,35,249,44,249,229,248,144,248,142,248,12,249,220,249,130,250,153,250, +68,250,246,249,235,249,32,250,122,250,202,250,222,250,184,250,162,250,230,250,97,251,173,251,174,251,166,251,181,251,204,251, +255,251,77,252,125,252,155,252,236,252,68,253,72,253,40,253,49,253,81,253,114,253,171,253,227,253,7,254,74,254,190,254, +41,255,98,255,89,255,8,255,185,254,216,254,71,255,152,255,192,255,251,255,54,0,66,0,74,0,161,0,50,1,148,1, +146,1,77,1,252,0,233,0,80,1,249,1,83,2,52,2,252,1,253,1,55,2,133,2,187,2,211,2,244,2,33,3, +58,3,64,3,54,3,6,3,235,2,67,3,224,3,71,4,106,4,106,4,78,4,61,4,85,4,99,4,87,4,101,4, +120,4,118,4,158,4,238,4,245,4,193,4,213,4,62,5,165,5,236,5,238,5,122,5,206,4,114,4,182,4,126,5, +37,6,229,5,240,4,96,4,199,4,152,5,28,6,23,6,179,5,69,5,9,5,20,5,103,5,194,5,161,5,249,4, +115,4,122,4,194,4,229,4,204,4,145,4,121,4,184,4,36,5,97,5,72,5,215,4,36,4,132,3,97,3,187,3, +30,4,27,4,180,3,55,3,237,2,4,3,112,3,194,3,130,3,221,2,96,2,70,2,126,2,210,2,197,2,21,2, +91,1,60,1,146,1,242,1,56,2,44,2,191,1,107,1,137,1,192,1,180,1,120,1,33,1,162,0,22,0,223,255, +96,0,100,1,12,2,227,1,125,1,108,1,132,1,127,1,103,1,60,1,243,0,167,0,112,0,112,0,188,0,19,1, +50,1,78,1,126,1,118,1,78,1,112,1,145,1,48,1,173,0,166,0,242,0,36,1,45,1,21,1,227,0,198,0, +225,0,26,1,68,1,68,1,28,1,237,0,215,0,236,0,46,1,117,1,147,1,157,1,173,1,165,1,119,1,68,1, +25,1,20,1,89,1,179,1,221,1,1,2,55,2,39,2,215,1,210,1,32,2,57,2,251,1,197,1,233,1,93,2, +178,2,146,2,114,2,219,2,108,3,128,3,83,3,109,3,189,3,223,3,158,3,25,3,202,2,15,3,167,3,22,4, +76,4,119,4,160,4,182,4,174,4,138,4,101,4,84,4,116,4,227,4,78,5,26,5,110,4,54,4,192,4,67,5, +35,5,178,4,136,4,181,4,204,4,170,4,179,4,11,5,40,5,204,4,119,4,118,4,116,4,68,4,39,4,55,4, +83,4,103,4,119,4,125,4,90,4,18,4,250,3,86,4,217,4,23,5,9,5,192,4,65,4,222,3,207,3,213,3, +209,3,250,3,51,4,48,4,255,3,176,3,61,3,9,3,108,3,248,3,28,4,208,3,38,3,85,2,21,2,177,2, +87,3,49,3,130,2,8,2,253,1,11,2,246,1,250,1,47,2,20,2,97,1,147,0,10,0,149,255,65,255,85,255, +162,255,198,255,175,255,88,255,219,254,164,254,189,254,161,254,49,254,206,253,162,253,157,253,167,253,94,253,160,252,254,251, +175,251,41,251,160,250,43,251,156,252,65,253,78,252,179,250,105,249,155,248,104,248,230,248,148,249,227,249,17,250,129,250, +179,250,229,249,97,248,73,247,50,247,129,247,75,247,117,246,167,245,78,245,115,245,87,246,204,247,99,248,208,246,226,243, +160,241,47,241,115,242,139,244,16,246,227,245,32,244,1,242,18,241,221,241,238,242,75,242,247,239,172,237,151,236,251,236, +171,238,123,240,209,240,146,239,0,238,9,237,200,236,198,236,61,236,26,235,49,234,215,233,187,233,43,234,115,235,135,236, +76,236,52,235,44,234,136,233,105,233,196,233,251,233,128,233,147,232,223,231,239,231,204,232,217,233,100,234,90,234,254,233, +105,233,212,232,152,232,169,232,185,232,204,232,5,233,72,233,115,233,137,233,103,233,214,232,23,232,199,231,17,232,128,232, +169,232,141,232,97,232,82,232,102,232,110,232,70,232,5,232,199,231,166,231,239,231,186,232,116,233,138,233,52,233,249,232, +27,233,166,233,80,234,125,234,27,234,197,233,210,233,7,234,85,234,219,234,109,235,200,235,255,235,114,236,84,237,85,238, +238,238,12,239,9,239,14,239,39,239,139,239,44,240,157,240,222,240,75,241,231,241,132,242,30,243,155,243,231,243,61,244, +175,244,253,244,48,245,134,245,223,245,58,246,230,246,180,247,30,248,85,248,217,248,133,249,1,250,104,250,201,250,17,251, +112,251,3,252,128,252,194,252,12,253,154,253,95,254,33,255,144,255,151,255,144,255,212,255,104,0,46,1,243,1,110,2, +134,2,123,2,167,2,75,3,98,4,124,5,14,6,29,6,52,6,164,6,79,7,9,8,176,8,15,9,42,9,110,9, +16,10,179,10,13,11,92,11,235,11,158,12,46,13,128,13,190,13,56,14,232,14,99,15,147,15,223,15,111,16,9,17, +161,17,45,18,99,18,84,18,132,18,251,18,76,19,130,19,217,19,15,20,231,19,178,19,197,19,39,20,191,20,70,21, +101,21,67,21,71,21,122,21,167,21,199,21,224,21,237,21,249,21,4,22,253,21,3,22,62,22,136,22,180,22,228,22, +60,23,144,23,159,23,99,23,27,23,5,23,39,23,81,23,100,23,93,23,74,23,79,23,146,23,2,24,91,24,111,24, +56,24,209,23,129,23,139,23,231,23,64,24,52,24,177,23,23,23,241,22,82,23,190,23,200,23,118,23,253,22,121,22, +23,22,16,22,69,22,69,22,232,21,131,21,87,21,67,21,35,21,4,21,217,20,127,20,17,20,220,19,234,19,234,19, +158,19,32,19,175,18,93,18,42,18,42,18,81,18,62,18,167,17,204,16,59,16,51,16,117,16,142,16,65,16,183,15, +63,15,245,14,181,14,106,14,45,14,28,14,28,14,235,13,124,13,19,13,225,12,207,12,184,12,144,12,64,12,178,11, +12,11,149,10,111,10,139,10,182,10,175,10,89,10,238,9,182,9,182,9,167,9,73,9,146,8,201,7,80,7,75,7, +118,7,128,7,89,7,26,7,196,6,77,6,218,5,161,5,141,5,75,5,194,4,52,4,219,3,173,3,133,3,81,3, +17,3,210,2,157,2,83,2,223,1,110,1,68,1,84,1,84,1,26,1,187,0,104,0,70,0,61,0,18,0,203,255, +147,255,102,255,36,255,223,254,177,254,152,254,144,254,140,254,105,254,36,254,240,253,229,253,215,253,161,253,79,253,3,253, +231,252,249,252,248,252,199,252,147,252,115,252,70,252,18,252,243,251,213,251,156,251,94,251,35,251,225,250,194,250,217,250, +225,250,173,250,117,250,80,250,23,250,213,249,185,249,170,249,132,249,100,249,85,249,54,249,19,249,22,249,39,249,15,249, +223,248,185,248,146,248,97,248,57,248,35,248,23,248,25,248,29,248,9,248,227,247,209,247,215,247,216,247,193,247,155,247, +127,247,116,247,106,247,86,247,68,247,64,247,70,247,73,247,63,247,40,247,23,247,23,247,15,247,243,246,226,246,232,246, +235,246,219,246,199,246,188,246,192,246,217,246,240,246,234,246,211,246,206,246,217,246,218,246,197,246,161,246,137,246,144,246, +164,246,158,246,141,246,147,246,165,246,166,246,160,246,165,246,172,246,166,246,154,246,140,246,126,246,114,246,111,246,115,246, +124,246,130,246,131,246,133,246,132,246,123,246,118,246,128,246,149,246,170,246,189,246,202,246,217,246,252,246,35,247,55,247, +74,247,106,247,112,247,76,247,62,247,99,247,135,247,157,247,199,247,239,247,241,247,239,247,4,248,12,248,8,248,33,248, +74,248,95,248,120,248,166,248,197,248,207,248,228,248,248,248,247,248,1,249,37,249,59,249,60,249,76,249,109,249,132,249, +147,249,167,249,190,249,219,249,254,249,27,250,46,250,74,250,120,250,165,250,199,250,224,250,246,250,22,251,65,251,103,251, +131,251,159,251,192,251,224,251,8,252,63,252,108,252,128,252,152,252,196,252,238,252,16,253,66,253,124,253,158,253,175,253, +199,253,229,253,4,254,41,254,80,254,117,254,161,254,211,254,254,254,43,255,99,255,143,255,161,255,176,255,204,255,235,255, +9,0,38,0,58,0,83,0,123,0,159,0,187,0,226,0,3,1,6,1,9,1,43,1,77,1,89,1,106,1,133,1, +151,1,168,1,193,1,212,1,224,1,241,1,0,2,12,2,29,2,42,2,48,2,65,2,89,2,99,2,102,2,113,2, +114,2,107,2,119,2,147,2,168,2,189,2,214,2,226,2,223,2,222,2,222,2,228,2,247,2,3,3,0,3,10,3, +30,3,39,3,46,3,59,3,53,3,29,3,25,3,48,3,75,3,96,3,99,3,69,3,34,3,24,3,17,3,4,3, +3,3,251,2,209,2,174,2,174,2,182,2,178,2,179,2,175,2,158,2,157,2,175,2,168,2,124,2,79,2,46,2, +17,2,2,2,6,2,5,2,246,1,232,1,222,1,195,1,152,1,126,1,122,1,118,1,113,1,123,1,129,1,102,1, +59,1,27,1,7,1,247,0,243,0,244,0,228,0,195,0,160,0,135,0,125,0,122,0,102,0,63,0,31,0,15,0, +3,0,251,255,251,255,244,255,217,255,185,255,173,255,179,255,173,255,144,255,115,255,96,255,68,255,30,255,5,255,249,254, +242,254,253,254,22,255,32,255,32,255,36,255,20,255,239,254,226,254,230,254,196,254,142,254,123,254,132,254,132,254,135,254, +152,254,161,254,154,254,137,254,119,254,112,254,113,254,108,254,108,254,134,254,156,254,140,254,115,254,98,254,79,254,71,254, +86,254,92,254,74,254,52,254,32,254,13,254,24,254,56,254,67,254,65,254,85,254,118,254,145,254,172,254,186,254,169,254, +134,254,105,254,86,254,92,254,123,254,148,254,162,254,184,254,205,254,211,254,215,254,224,254,228,254,243,254,13,255,22,255, +26,255,57,255,91,255,97,255,96,255,97,255,83,255,70,255,83,255,90,255,74,255,81,255,130,255,174,255,181,255,177,255, +192,255,214,255,214,255,194,255,184,255,193,255,211,255,234,255,250,255,243,255,233,255,5,0,54,0,67,0,31,0,248,255, +238,255,253,255,11,0,12,0,14,0,21,0,19,0,14,0,30,0,66,0,102,0,124,0,111,0,72,0,60,0,85,0, +92,0,73,0,77,0,90,0,77,0,67,0,85,0,102,0,114,0,146,0,187,0,217,0,240,0,249,0,234,0,217,0, +207,0,191,0,178,0,183,0,203,0,238,0,31,1,68,1,86,1,98,1,101,1,113,1,151,1,156,1,83,1,23,1, +53,1,97,1,96,1,97,1,118,1,141,1,198,1,15,2,19,2,228,1,207,1,190,1,138,1,101,1,111,1,144,1, +191,1,229,1,212,1,170,1,165,1,196,1,247,1,53,2,75,2,49,2,50,2,83,2,80,2,69,2,103,2,117,2, +57,2,242,1,216,1,245,1,89,2,203,2,232,2,201,2,190,2,185,2,168,2,179,2,204,2,201,2,206,2,232,2, +221,2,188,2,207,2,254,2,25,3,58,3,98,3,87,3,30,3,240,2,232,2,6,3,44,3,39,3,13,3,30,3, +74,3,78,3,54,3,36,3,17,3,5,3,21,3,40,3,29,3,20,3,46,3,84,3,88,3,49,3,5,3,245,2, +237,2,221,2,238,2,54,3,121,3,128,3,81,3,11,3,215,2,223,2,15,3,42,3,18,3,208,2,137,2,123,2, +179,2,252,2,61,3,121,3,133,3,72,3,248,2,182,2,126,2,121,2,189,2,246,2,245,2,224,2,185,2,120,2, +97,2,143,2,188,2,214,2,240,2,205,2,94,2,12,2,13,2,42,2,72,2,89,2,59,2,29,2,62,2,84,2, +27,2,231,1,250,1,30,2,61,2,106,2,131,2,107,2,55,2,243,1,185,1,174,1,157,1,86,1,69,1,196,1, +82,2,102,2,32,2,199,1,135,1,156,1,236,1,254,1,201,1,161,1,125,1,55,1,6,1,11,1,23,1,51,1, +136,1,230,1,254,1,212,1,125,1,247,0,113,0,71,0,154,0,26,1,64,1,240,0,168,0,201,0,2,1,243,0, +194,0,160,0,124,0,76,0,40,0,12,0,255,255,25,0,68,0,91,0,126,0,189,0,207,0,138,0,53,0,16,0, +242,255,167,255,63,255,247,254,3,255,83,255,142,255,138,255,147,255,239,255,76,0,58,0,206,255,94,255,250,254,163,254, +151,254,244,254,90,255,111,255,74,255,14,255,154,254,4,254,212,253,77,254,232,254,250,254,127,254,248,253,203,253,7,254, +125,254,213,254,185,254,20,254,65,253,233,252,104,253,61,254,128,254,250,253,67,253,237,252,16,253,133,253,6,254,42,254, +158,253,118,252,88,251,25,251,213,251,181,252,250,252,182,252,72,252,241,251,225,251,0,252,238,251,199,251,28,252,211,252, +28,253,157,252,174,251,198,250,110,250,237,250,174,251,205,251,73,251,198,250,163,250,224,250,63,251,64,251,178,250,4,250, +149,249,87,249,87,249,185,249,33,250,1,250,104,249,224,248,184,248,241,248,119,249,15,250,41,250,94,249,48,248,165,247, +221,247,1,248,172,247,80,247,23,247,190,246,135,246,242,246,167,247,190,247,231,246,178,245,242,244,249,244,62,245,29,245, +169,244,50,244,172,243,59,243,95,243,228,243,225,243,22,243,52,242,199,241,200,241,240,241,219,241,97,241,214,240,120,240, +23,240,191,239,214,239,64,240,104,240,34,240,198,239,166,239,219,239,71,240,143,240,108,240,231,239,50,239,153,238,112,238, +172,238,234,238,29,239,120,239,221,239,13,240,27,240,10,240,172,239,42,239,233,238,228,238,227,238,5,239,89,239,129,239, +57,239,202,238,170,238,240,238,70,239,72,239,240,238,136,238,62,238,23,238,27,238,52,238,50,238,37,238,70,238,148,238, +225,238,34,239,76,239,72,239,34,239,246,238,196,238,170,238,229,238,110,239,238,239,19,240,204,239,109,239,126,239,32,240, +218,240,84,241,148,241,149,241,98,241,120,241,37,242,243,242,89,243,117,243,158,243,237,243,93,244,210,244,30,245,82,245, +178,245,59,246,168,246,210,246,212,246,244,246,102,247,241,247,46,248,57,248,142,248,45,249,187,249,45,250,163,250,254,250, +50,251,131,251,8,252,138,252,236,252,58,253,108,253,139,253,203,253,66,254,215,254,110,255,235,255,61,0,126,0,220,0, +68,1,130,1,161,1,220,1,58,2,136,2,190,2,20,3,166,3,59,4,167,4,8,5,123,5,245,5,115,6,251,6, +108,7,168,7,208,7,2,8,60,8,150,8,50,9,237,9,125,10,214,10,20,11,79,11,155,11,252,11,82,12,152,12, +7,13,165,13,30,14,74,14,107,14,191,14,65,15,208,15,77,16,152,16,190,16,238,16,43,17,83,17,109,17,174,17, +11,18,57,18,41,18,39,18,98,18,174,18,214,18,229,18,1,19,55,19,126,19,193,19,232,19,252,19,23,20,58,20, +69,20,50,20,41,20,80,20,154,20,221,20,10,21,50,21,96,21,121,21,96,21,40,21,8,21,32,21,89,21,129,21, +140,21,158,21,205,21,249,21,251,21,219,21,198,21,215,21,246,21,251,21,231,21,221,21,233,21,244,21,240,21,225,21, +196,21,167,21,162,21,163,21,137,21,100,21,90,21,72,21,249,20,147,20,87,20,70,20,55,20,27,20,241,19,198,19, +175,19,154,19,97,19,23,19,242,18,232,18,188,18,100,18,11,18,199,17,138,17,67,17,239,16,165,16,120,16,84,16, +26,16,210,15,148,15,87,15,14,15,196,14,123,14,39,14,215,13,166,13,130,13,76,13,11,13,213,12,159,12,86,12, +14,12,221,11,187,11,131,11,34,11,182,10,114,10,92,10,63,10,249,9,161,9,97,9,57,9,14,9,207,8,132,8, +62,8,2,8,191,7,106,7,22,7,224,6,194,6,157,6,87,6,252,5,172,5,115,5,59,5,236,4,150,4,85,4, +33,4,218,3,125,3,32,3,216,2,153,2,73,2,229,1,144,1,98,1,68,1,11,1,183,0,100,0,32,0,226,255, +161,255,88,255,19,255,226,254,191,254,142,254,73,254,4,254,212,253,186,253,153,253,88,253,6,253,208,252,178,252,129,252, +54,252,255,251,237,251,226,251,199,251,162,251,123,251,87,251,55,251,13,251,217,250,180,250,161,250,125,250,60,250,5,250, +235,249,218,249,193,249,156,249,108,249,58,249,25,249,5,249,236,248,204,248,169,248,128,248,77,248,23,248,235,247,214,247, +214,247,209,247,175,247,131,247,107,247,99,247,83,247,52,247,20,247,254,246,243,246,228,246,198,246,174,246,179,246,196,246, +196,246,179,246,162,246,147,246,133,246,123,246,108,246,88,246,83,246,98,246,107,246,103,246,117,246,149,246,163,246,148,246, +134,246,142,246,167,246,193,246,202,246,187,246,176,246,193,246,223,246,239,246,246,246,0,247,19,247,43,247,64,247,77,247, +84,247,96,247,113,247,131,247,150,247,169,247,184,247,197,247,211,247,222,247,235,247,2,248,29,248,45,248,52,248,70,248, +99,248,119,248,121,248,116,248,123,248,142,248,157,248,172,248,201,248,236,248,11,249,42,249,71,249,81,249,80,249,99,249, +135,249,158,249,175,249,198,249,214,249,223,249,254,249,47,250,86,250,124,250,182,250,228,250,237,250,241,250,16,251,50,251, +64,251,79,251,111,251,147,251,181,251,218,251,254,251,33,252,70,252,104,252,122,252,138,252,166,252,195,252,212,252,225,252, +251,252,35,253,79,253,115,253,130,253,144,253,178,253,213,253,219,253,215,253,238,253,19,254,36,254,44,254,62,254,83,254, +106,254,140,254,167,254,168,254,173,254,206,254,241,254,251,254,255,254,15,255,31,255,39,255,45,255,54,255,68,255,90,255, +122,255,154,255,175,255,183,255,193,255,211,255,225,255,228,255,234,255,255,255,20,0,26,0,17,0,14,0,35,0,74,0, +102,0,116,0,136,0,162,0,175,0,184,0,195,0,195,0,189,0,197,0,205,0,200,0,215,0,2,1,29,1,22,1, +20,1,33,1,41,1,49,1,62,1,54,1,32,1,30,1,40,1,36,1,29,1,37,1,47,1,58,1,75,1,81,1, +68,1,60,1,57,1,41,1,27,1,33,1,37,1,24,1,11,1,9,1,7,1,4,1,6,1,11,1,18,1,26,1, +27,1,24,1,16,1,255,0,236,0,233,0,239,0,239,0,239,0,248,0,250,0,243,0,244,0,252,0,252,0,247,0, +239,0,224,0,213,0,210,0,202,0,190,0,184,0,181,0,177,0,186,0,198,0,194,0,183,0,184,0,178,0,156,0, +139,0,129,0,105,0,86,0,92,0,100,0,91,0,88,0,97,0,93,0,70,0,49,0,41,0,44,0,42,0,21,0, +251,255,246,255,248,255,232,255,214,255,212,255,213,255,208,255,204,255,194,255,175,255,172,255,191,255,197,255,177,255,161,255, +156,255,148,255,134,255,124,255,119,255,120,255,124,255,124,255,120,255,118,255,118,255,116,255,116,255,114,255,114,255,125,255, +131,255,117,255,95,255,91,255,96,255,92,255,93,255,109,255,126,255,135,255,138,255,133,255,118,255,106,255,101,255,98,255, +97,255,105,255,121,255,135,255,142,255,134,255,114,255,109,255,126,255,137,255,125,255,108,255,104,255,105,255,96,255,84,255, +77,255,82,255,97,255,111,255,122,255,133,255,142,255,140,255,130,255,113,255,87,255,69,255,78,255,96,255,98,255,90,255, +88,255,94,255,104,255,112,255,116,255,125,255,138,255,134,255,117,255,113,255,125,255,132,255,125,255,119,255,126,255,147,255, +167,255,175,255,180,255,188,255,185,255,167,255,156,255,160,255,164,255,160,255,163,255,176,255,184,255,175,255,168,255,186,255, +211,255,209,255,195,255,204,255,215,255,202,255,187,255,189,255,190,255,188,255,194,255,191,255,175,255,178,255,198,255,201,255, +189,255,185,255,184,255,173,255,174,255,191,255,198,255,183,255,165,255,155,255,154,255,162,255,174,255,175,255,163,255,157,255, +162,255,167,255,169,255,173,255,174,255,170,255,163,255,154,255,142,255,142,255,158,255,167,255,162,255,160,255,165,255,160,255, +146,255,138,255,134,255,128,255,130,255,148,255,159,255,147,255,132,255,136,255,143,255,142,255,144,255,147,255,141,255,136,255, +136,255,123,255,103,255,98,255,97,255,85,255,86,255,100,255,99,255,89,255,96,255,101,255,90,255,83,255,81,255,72,255, +69,255,75,255,72,255,66,255,68,255,65,255,57,255,63,255,75,255,78,255,78,255,72,255,59,255,57,255,61,255,46,255, +34,255,54,255,73,255,76,255,99,255,134,255,141,255,126,255,111,255,95,255,92,255,107,255,118,255,128,255,160,255,192,255, +198,255,198,255,213,255,232,255,252,255,252,255,228,255,219,255,243,255,0,0,250,255,12,0,47,0,72,0,99,0,122,0, +121,0,119,0,124,0,114,0,106,0,115,0,116,0,117,0,158,0,197,0,194,0,199,0,232,0,242,0,231,0,235,0, +230,0,212,0,231,0,19,1,39,1,49,1,72,1,89,1,103,1,122,1,130,1,129,1,140,1,150,1,151,1,163,1, +186,1,219,1,13,2,50,2,49,2,47,2,63,2,59,2,48,2,73,2,118,2,142,2,153,2,164,2,173,2,192,2, +213,2,227,2,255,2,37,3,45,3,34,3,43,3,52,3,41,3,45,3,77,3,111,3,147,3,181,3,179,3,144,3, +118,3,119,3,139,3,172,3,210,3,244,3,11,4,12,4,254,3,1,4,18,4,25,4,20,4,11,4,0,4,14,4, +53,4,62,4,29,4,15,4,42,4,81,4,121,4,159,4,159,4,112,4,54,4,13,4,6,4,33,4,74,4,116,4, +162,4,188,4,164,4,115,4,82,4,74,4,86,4,110,4,123,4,124,4,127,4,117,4,78,4,39,4,35,4,63,4, +110,4,157,4,185,4,194,4,192,4,158,4,83,4,11,4,254,3,37,4,86,4,127,4,156,4,154,4,121,4,104,4, +120,4,134,4,121,4,97,4,67,4,37,4,36,4,46,4,22,4,243,3,9,4,72,4,124,4,162,4,176,4,126,4, +32,4,216,3,196,3,220,3,12,4,32,4,248,3,198,3,187,3,195,3,187,3,167,3,158,3,179,3,219,3,226,3, +186,3,144,3,109,3,42,3,227,2,236,2,59,3,100,3,48,3,220,2,184,2,211,2,0,3,9,3,230,2,167,2, +105,2,65,2,68,2,104,2,122,2,76,2,239,1,168,1,169,1,217,1,3,2,20,2,18,2,244,1,181,1,114,1, +69,1,35,1,7,1,19,1,83,1,144,1,139,1,59,1,193,0,83,0,33,0,30,0,27,0,18,0,35,0,68,0, +75,0,46,0,249,255,176,255,91,255,14,255,232,254,19,255,139,255,242,255,239,255,149,255,39,255,181,254,69,254,245,253, +199,253,154,253,118,253,142,253,232,253,69,254,90,254,29,254,217,253,228,253,38,254,59,254,239,253,83,253,159,252,33,252, +13,252,64,252,122,252,181,252,246,252,14,253,224,252,135,252,44,252,252,251,2,252,233,251,89,251,177,250,158,250,17,251, +120,251,169,251,209,251,220,251,163,251,48,251,148,250,4,250,249,249,149,250,47,251,18,251,84,250,151,249,77,249,108,249, +150,249,132,249,93,249,108,249,179,249,7,250,84,250,121,250,58,250,162,249,17,249,210,248,217,248,246,248,10,249,245,248, +166,248,65,248,23,248,101,248,254,248,86,249,22,249,148,248,102,248,144,248,159,248,88,248,235,247,139,247,84,247,118,247, +4,248,151,248,144,248,215,247,245,246,122,246,125,246,201,246,32,247,82,247,59,247,211,246,75,246,9,246,71,246,177,246, +196,246,102,246,216,245,72,245,213,244,163,244,162,244,158,244,134,244,99,244,42,244,226,243,176,243,137,243,59,243,198,242, +88,242,253,241,181,241,136,241,105,241,72,241,75,241,130,241,151,241,64,241,185,240,96,240,44,240,229,239,135,239,65,239, +53,239,68,239,45,239,240,238,222,238,27,239,115,239,166,239,148,239,52,239,185,238,109,238,77,238,51,238,52,238,119,238, +224,238,64,239,134,239,150,239,108,239,70,239,76,239,66,239,4,239,217,238,245,238,37,239,49,239,38,239,27,239,16,239, +12,239,10,239,255,238,251,238,16,239,37,239,41,239,47,239,58,239,58,239,56,239,70,239,110,239,189,239,39,240,112,240, +108,240,67,240,57,240,100,240,177,240,6,241,84,241,142,241,161,241,137,241,115,241,162,241,45,242,210,242,55,243,84,243, +122,243,219,243,86,244,185,244,6,245,86,245,168,245,239,245,54,246,151,246,18,247,139,247,243,247,87,248,189,248,34,249, +122,249,180,249,206,249,233,249,39,250,143,250,18,251,141,251,241,251,99,252,238,252,88,253,159,253,10,254,159,254,24,255, +108,255,181,255,249,255,78,0,202,0,71,1,168,1,11,2,130,2,245,2,87,3,159,3,217,3,49,4,156,4,213,4, +239,4,65,5,209,5,96,6,215,6,51,7,123,7,216,7,91,8,211,8,50,9,170,9,66,10,183,10,232,10,6,11, +78,11,192,11,49,12,144,12,235,12,84,13,213,13,93,14,184,14,224,14,27,15,143,15,9,16,96,16,170,16,11,17, +132,17,246,17,58,18,102,18,187,18,67,19,191,19,18,20,85,20,153,20,213,20,252,20,9,21,13,21,45,21,115,21, +186,21,229,21,9,22,67,22,127,22,150,22,143,22,154,22,208,22,28,23,79,23,89,23,89,23,120,23,158,23,161,23, +144,23,154,23,206,23,19,24,67,24,71,24,58,24,69,24,82,24,58,24,12,24,248,23,14,24,53,24,64,24,39,24, +25,24,47,24,77,24,90,24,96,24,94,24,83,24,68,24,30,24,224,23,184,23,181,23,163,23,124,23,101,23,95,23, +80,23,55,23,13,23,196,22,119,22,65,22,7,22,179,21,104,21,67,21,43,21,252,20,180,20,111,20,77,20,64,20, +21,20,185,19,82,19,10,19,217,18,154,18,58,18,204,17,123,17,76,17,13,17,163,16,64,16,7,16,209,15,115,15, +3,15,162,14,79,14,254,13,166,13,62,13,214,12,145,12,100,12,34,12,197,11,113,11,48,11,231,10,133,10,26,10, +186,9,113,9,50,9,221,8,111,8,11,8,195,7,121,7,28,7,196,6,124,6,59,6,247,5,165,5,66,5,225,4, +147,4,63,4,221,3,132,3,61,3,253,2,189,2,110,2,1,2,141,1,50,1,232,0,151,0,55,0,211,255,125,255, +50,255,215,254,108,254,14,254,192,253,104,253,6,253,173,252,106,252,59,252,3,252,168,251,66,251,243,250,181,250,120,250, +63,250,1,250,190,249,138,249,93,249,24,249,203,248,157,248,133,248,94,248,36,248,231,247,176,247,116,247,52,247,9,247, +245,246,218,246,175,246,140,246,115,246,87,246,62,246,37,246,243,245,184,245,146,245,123,245,101,245,83,245,61,245,25,245, +255,244,240,244,212,244,181,244,170,244,159,244,122,244,72,244,31,244,10,244,10,244,16,244,5,244,235,243,218,243,223,243, +235,243,236,243,217,243,191,243,176,243,179,243,182,243,166,243,148,243,157,243,183,243,197,243,203,243,214,243,227,243,246,243, +3,244,242,243,217,243,219,243,231,243,238,243,14,244,71,244,110,244,124,244,138,244,155,244,183,244,232,244,17,245,33,245, +46,245,70,245,100,245,140,245,184,245,212,245,245,245,43,246,92,246,126,246,170,246,220,246,0,247,25,247,41,247,52,247, +86,247,149,247,211,247,0,248,32,248,63,248,109,248,169,248,209,248,226,248,254,248,38,249,72,249,104,249,141,249,168,249, +192,249,228,249,8,250,33,250,61,250,98,250,136,250,179,250,226,250,7,251,32,251,57,251,86,251,120,251,162,251,207,251, +254,251,41,252,82,252,125,252,171,252,210,252,244,252,33,253,85,253,130,253,169,253,206,253,231,253,245,253,11,254,42,254, +80,254,132,254,197,254,249,254,23,255,50,255,82,255,108,255,129,255,153,255,176,255,207,255,255,255,38,0,52,0,64,0, +91,0,115,0,136,0,174,0,218,0,249,0,18,1,33,1,26,1,10,1,13,1,38,1,66,1,92,1,120,1,156,1, +196,1,217,1,217,1,220,1,237,1,252,1,2,2,10,2,24,2,33,2,33,2,40,2,63,2,94,2,118,2,134,2, +144,2,148,2,147,2,140,2,129,2,126,2,135,2,150,2,163,2,177,2,185,2,188,2,193,2,201,2,210,2,218,2, +213,2,197,2,191,2,197,2,193,2,179,2,179,2,192,2,204,2,211,2,208,2,185,2,160,2,150,2,149,2,140,2, +119,2,101,2,102,2,108,2,90,2,58,2,35,2,17,2,255,1,249,1,249,1,235,1,210,1,188,1,172,1,153,1, +124,1,99,1,97,1,105,1,93,1,59,1,22,1,248,0,229,0,226,0,224,0,212,0,197,0,185,0,174,0,156,0, +124,0,92,0,83,0,86,0,74,0,64,0,72,0,70,0,46,0,23,0,3,0,234,255,219,255,217,255,217,255,223,255, +225,255,197,255,152,255,126,255,126,255,130,255,124,255,104,255,86,255,82,255,76,255,60,255,50,255,41,255,17,255,253,254, +248,254,246,254,243,254,243,254,228,254,203,254,193,254,187,254,170,254,161,254,161,254,148,254,129,254,118,254,100,254,81,254, +84,254,92,254,86,254,77,254,70,254,58,254,48,254,38,254,19,254,4,254,6,254,14,254,17,254,20,254,21,254,21,254, +26,254,23,254,2,254,241,253,242,253,251,253,1,254,4,254,254,253,247,253,1,254,24,254,38,254,40,254,44,254,51,254, +54,254,49,254,42,254,41,254,50,254,62,254,67,254,72,254,92,254,120,254,128,254,110,254,89,254,84,254,97,254,113,254, +110,254,93,254,87,254,97,254,104,254,109,254,119,254,124,254,118,254,117,254,119,254,116,254,113,254,109,254,102,254,98,254, +99,254,101,254,105,254,105,254,99,254,102,254,118,254,119,254,104,254,109,254,133,254,143,254,141,254,142,254,136,254,120,254, +118,254,134,254,148,254,158,254,177,254,198,254,199,254,180,254,164,254,173,254,197,254,206,254,197,254,194,254,205,254,219,254, +228,254,234,254,238,254,241,254,245,254,249,254,253,254,4,255,6,255,252,254,247,254,2,255,15,255,16,255,13,255,5,255, +251,254,1,255,17,255,18,255,0,255,244,254,253,254,17,255,33,255,25,255,255,254,246,254,3,255,11,255,4,255,0,255, +5,255,17,255,27,255,22,255,12,255,16,255,28,255,32,255,28,255,15,255,1,255,5,255,24,255,28,255,16,255,16,255, +33,255,53,255,65,255,65,255,66,255,80,255,89,255,80,255,72,255,76,255,81,255,92,255,114,255,132,255,138,255,139,255, +134,255,129,255,141,255,165,255,178,255,173,255,158,255,149,255,161,255,179,255,181,255,183,255,196,255,205,255,203,255,203,255, +201,255,199,255,208,255,213,255,206,255,211,255,227,255,225,255,213,255,217,255,229,255,229,255,223,255,226,255,234,255,238,255, +236,255,239,255,248,255,243,255,232,255,240,255,0,0,6,0,18,0,43,0,51,0,43,0,43,0,46,0,39,0,47,0, +74,0,97,0,109,0,118,0,122,0,121,0,117,0,111,0,117,0,138,0,153,0,155,0,153,0,155,0,158,0,171,0, +190,0,201,0,204,0,206,0,205,0,193,0,173,0,165,0,177,0,190,0,191,0,193,0,210,0,226,0,226,0,209,0, +187,0,180,0,189,0,196,0,192,0,185,0,177,0,169,0,172,0,183,0,191,0,199,0,209,0,211,0,208,0,204,0, +186,0,169,0,179,0,196,0,193,0,180,0,175,0,184,0,210,0,231,0,217,0,190,0,187,0,193,0,188,0,191,0, +201,0,202,0,203,0,213,0,216,0,214,0,225,0,244,0,253,0,249,0,238,0,229,0,229,0,232,0,238,0,3,1, +25,1,21,1,4,1,5,1,12,1,8,1,9,1,19,1,19,1,14,1,18,1,22,1,10,1,0,1,10,1,29,1, +36,1,29,1,17,1,6,1,253,0,249,0,250,0,250,0,4,1,29,1,48,1,37,1,8,1,251,0,249,0,250,0, +3,1,11,1,249,0,223,0,230,0,252,0,3,1,10,1,31,1,44,1,40,1,33,1,26,1,17,1,11,1,6,1, +9,1,34,1,57,1,53,1,53,1,76,1,89,1,73,1,51,1,34,1,21,1,25,1,44,1,52,1,51,1,56,1, +58,1,53,1,47,1,47,1,57,1,69,1,67,1,47,1,29,1,29,1,46,1,66,1,71,1,60,1,58,1,76,1, +91,1,86,1,74,1,67,1,65,1,64,1,63,1,70,1,89,1,111,1,118,1,112,1,111,1,128,1,150,1,157,1, +151,1,148,1,147,1,153,1,172,1,187,1,192,1,215,1,250,1,253,1,230,1,225,1,237,1,239,1,243,1,255,1, +253,1,238,1,236,1,252,1,21,2,44,2,62,2,75,2,76,2,54,2,33,2,37,2,45,2,35,2,34,2,63,2, +94,2,109,2,115,2,114,2,105,2,102,2,117,2,133,2,124,2,97,2,87,2,96,2,101,2,107,2,133,2,157,2, +159,2,162,2,173,2,175,2,181,2,197,2,191,2,163,2,154,2,173,2,206,2,249,2,23,3,23,3,8,3,249,2, +231,2,230,2,0,3,16,3,8,3,3,3,16,3,36,3,49,3,47,3,42,3,50,3,60,3,52,3,35,3,37,3, +65,3,103,3,122,3,110,3,98,3,108,3,126,3,140,3,145,3,123,3,82,3,64,3,78,3,98,3,116,3,134,3, +133,3,121,3,117,3,117,3,117,3,126,3,129,3,107,3,79,3,76,3,98,3,136,3,174,3,193,3,190,3,174,3, +162,3,166,3,178,3,175,3,157,3,142,3,123,3,100,3,106,3,144,3,163,3,151,3,148,3,161,3,165,3,163,3, +164,3,153,3,136,3,134,3,134,3,117,3,117,3,154,3,191,3,200,3,193,3,178,3,158,3,146,3,146,3,138,3, +123,3,111,3,98,3,88,3,95,3,104,3,103,3,102,3,101,3,90,3,87,3,97,3,88,3,58,3,48,3,52,3, +35,3,17,3,32,3,56,3,54,3,37,3,22,3,7,3,239,2,209,2,183,2,164,2,152,2,148,2,152,2,154,2, +142,2,113,2,83,2,63,2,45,2,24,2,6,2,1,2,254,1,241,1,222,1,210,1,205,1,203,1,196,1,173,1, +134,1,95,1,62,1,29,1,250,0,225,0,218,0,226,0,232,0,221,0,191,0,155,0,123,0,93,0,52,0,10,0, +243,255,236,255,231,255,224,255,207,255,180,255,161,255,146,255,113,255,69,255,43,255,18,255,229,254,189,254,163,254,133,254, +95,254,70,254,56,254,44,254,28,254,3,254,224,253,182,253,135,253,97,253,76,253,46,253,10,253,255,252,255,252,220,252, +167,252,129,252,85,252,41,252,31,252,24,252,238,251,192,251,166,251,135,251,102,251,82,251,56,251,17,251,241,250,206,250, +156,250,114,250,93,250,72,250,51,250,38,250,19,250,241,249,210,249,194,249,181,249,153,249,106,249,53,249,8,249,235,248, +226,248,217,248,195,248,176,248,170,248,156,248,126,248,100,248,78,248,53,248,35,248,10,248,217,247,175,247,170,247,173,247, +166,247,162,247,150,247,125,247,121,247,144,247,144,247,108,247,62,247,23,247,247,246,222,246,203,246,197,246,208,246,222,246, +231,246,243,246,2,247,5,247,251,246,232,246,201,246,167,246,144,246,129,246,122,246,126,246,144,246,171,246,198,246,217,246, +224,246,223,246,219,246,209,246,192,246,165,246,135,246,114,246,94,246,76,246,82,246,120,246,158,246,175,246,182,246,184,246, +173,246,144,246,111,246,87,246,69,246,53,246,50,246,72,246,94,246,94,246,82,246,66,246,42,246,19,246,3,246,237,245, +214,245,207,245,200,245,167,245,121,245,90,245,74,245,62,245,50,245,28,245,247,244,205,244,168,244,127,244,83,244,47,244, +21,244,238,243,181,243,129,243,85,243,23,243,189,242,87,242,251,241,206,241,234,241,47,242,96,242,101,242,57,242,221,241, +122,241,63,241,31,241,251,240,226,240,220,240,204,240,180,240,187,240,226,240,7,241,27,241,24,241,242,240,191,240,150,240, +109,240,68,240,50,240,56,240,80,240,146,240,0,241,98,241,156,241,187,241,173,241,102,241,31,241,0,241,243,240,236,240, +255,240,40,241,74,241,93,241,103,241,121,241,149,241,152,241,108,241,55,241,33,241,37,241,59,241,82,241,83,241,93,241, +161,241,1,242,65,242,103,242,134,242,141,242,130,242,135,242,173,242,237,242,52,243,100,243,120,243,142,243,179,243,228,243, +36,244,105,244,162,244,224,244,46,245,128,245,210,245,60,246,188,246,52,247,140,247,195,247,244,247,56,248,138,248,221,248, +58,249,173,249,59,250,212,250,79,251,148,251,196,251,5,252,82,252,147,252,202,252,10,253,104,253,225,253,86,254,184,254, +39,255,178,255,65,0,191,0,34,1,104,1,167,1,245,1,58,2,100,2,150,2,239,2,98,3,219,3,100,4,252,4, +126,5,198,5,219,5,225,5,249,5,58,6,163,6,13,7,105,7,208,7,67,8,166,8,3,9,116,9,244,9,117,10, +234,10,57,11,110,11,186,11,25,12,91,12,147,12,246,12,118,13,252,13,139,14,8,15,97,15,176,15,255,15,52,16, +93,16,169,16,25,17,141,17,246,17,78,18,158,18,241,18,70,19,148,19,218,19,35,20,121,20,208,20,3,21,16,21, +38,21,90,21,136,21,158,21,189,21,250,21,65,22,114,22,128,22,125,22,131,22,146,22,165,22,193,22,230,22,15,23, +58,23,84,23,77,23,56,23,53,23,73,23,95,23,109,23,125,23,164,23,214,23,228,23,203,23,185,23,186,23,187,23, +185,23,179,23,162,23,158,23,182,23,194,23,170,23,155,23,177,23,205,23,204,23,171,23,123,23,89,23,76,23,57,23, +12,23,222,22,200,22,193,22,182,22,155,22,111,22,69,22,37,22,244,21,160,21,72,21,4,21,189,20,107,20,49,20, +18,20,236,19,186,19,136,19,73,19,244,18,152,18,56,18,206,17,107,17,34,17,234,16,167,16,79,16,248,15,184,15, +122,15,33,15,184,14,88,14,2,14,165,13,60,13,205,12,102,12,8,12,176,11,99,11,39,11,231,10,157,10,90,10, +10,10,138,9,248,8,131,8,39,8,221,7,171,7,121,7,43,7,211,6,127,6,33,6,190,5,99,5,13,5,180,4, +92,4,7,4,180,3,96,3,250,2,133,2,39,2,239,1,192,1,125,1,38,1,190,0,72,0,206,255,95,255,255,254, +177,254,114,254,50,254,223,253,122,253,26,253,202,252,120,252,21,252,171,251,81,251,13,251,206,250,134,250,55,250,229,249, +139,249,49,249,224,248,145,248,80,248,48,248,24,248,223,247,145,247,68,247,243,246,176,246,152,246,137,246,87,246,23,246, +225,245,171,245,116,245,79,245,57,245,41,245,26,245,250,244,203,244,167,244,139,244,100,244,54,244,12,244,232,243,217,243, +222,243,211,243,174,243,145,243,138,243,134,243,124,243,111,243,95,243,71,243,41,243,11,243,246,242,233,242,220,242,221,242, +239,242,255,242,6,243,13,243,12,243,251,242,236,242,228,242,218,242,215,242,222,242,225,242,231,242,251,242,21,243,47,243, +83,243,124,243,158,243,181,243,187,243,178,243,180,243,204,243,226,243,244,243,27,244,91,244,159,244,214,244,255,244,32,245, +65,245,92,245,118,245,159,245,213,245,12,246,64,246,113,246,152,246,182,246,225,246,44,247,141,247,227,247,25,248,58,248, +81,248,101,248,138,248,207,248,26,249,80,249,129,249,192,249,255,249,49,250,89,250,126,250,169,250,229,250,44,251,105,251, +147,251,186,251,235,251,25,252,57,252,93,252,147,252,203,252,0,253,60,253,113,253,151,253,199,253,12,254,71,254,105,254, +133,254,171,254,216,254,12,255,65,255,110,255,154,255,209,255,21,0,92,0,157,0,213,0,4,1,40,1,71,1,109,1, +151,1,190,1,238,1,44,2,107,2,159,2,201,2,241,2,36,3,96,3,143,3,165,3,184,3,209,3,238,3,16,4, +54,4,88,4,127,4,173,4,210,4,237,4,14,5,49,5,67,5,77,5,92,5,113,5,136,5,159,5,174,5,186,5, +201,5,220,5,241,5,8,6,36,6,62,6,71,6,63,6,55,6,61,6,74,6,83,6,89,6,102,6,117,6,128,6, +135,6,149,6,161,6,161,6,159,6,163,6,157,6,143,6,149,6,168,6,169,6,156,6,152,6,157,6,163,6,166,6, +159,6,147,6,144,6,148,6,148,6,133,6,102,6,72,6,67,6,75,6,70,6,53,6,39,6,33,6,32,6,13,6, +217,5,175,5,179,5,188,5,160,5,121,5,102,5,85,5,52,5,10,5,225,4,195,4,171,4,140,4,114,4,100,4, +78,4,40,4,254,3,210,3,167,3,137,3,108,3,64,3,26,3,6,3,235,2,191,2,147,2,111,2,81,2,60,2, +28,2,229,1,170,1,133,1,107,1,74,1,34,1,0,1,235,0,223,0,206,0,172,0,128,0,82,0,39,0,1,0, +222,255,188,255,152,255,121,255,95,255,67,255,34,255,7,255,238,254,199,254,157,254,129,254,104,254,63,254,17,254,232,253, +190,253,158,253,140,253,118,253,82,253,51,253,30,253,254,252,204,252,156,252,122,252,99,252,79,252,48,252,1,252,212,251, +197,251,200,251,177,251,124,251,90,251,91,251,81,251,35,251,247,250,228,250,218,250,207,250,192,250,166,250,141,250,129,250, +113,250,90,250,79,250,76,250,62,250,47,250,41,250,29,250,16,250,15,250,9,250,243,249,228,249,229,249,236,249,247,249, +252,249,240,249,227,249,234,249,240,249,237,249,244,249,252,249,240,249,222,249,220,249,226,249,230,249,236,249,241,249,245,249, +253,249,10,250,24,250,30,250,28,250,32,250,44,250,47,250,41,250,45,250,59,250,69,250,80,250,95,250,105,250,115,250, +128,250,141,250,151,250,164,250,175,250,182,250,187,250,193,250,209,250,240,250,12,251,27,251,45,251,71,251,94,251,115,251, +140,251,158,251,168,251,186,251,218,251,254,251,24,252,42,252,61,252,82,252,105,252,134,252,170,252,199,252,213,252,226,252, +252,252,31,253,62,253,87,253,108,253,126,253,140,253,159,253,187,253,215,253,237,253,10,254,42,254,65,254,82,254,101,254, +120,254,140,254,162,254,175,254,176,254,187,254,217,254,246,254,8,255,27,255,50,255,69,255,88,255,112,255,127,255,128,255, +136,255,165,255,191,255,203,255,217,255,228,255,231,255,1,0,47,0,64,0,59,0,83,0,122,0,130,0,124,0,133,0, +143,0,157,0,187,0,212,0,217,0,223,0,239,0,3,1,21,1,36,1,44,1,51,1,63,1,80,1,99,1,113,1, +122,1,129,1,128,1,122,1,133,1,162,1,179,1,174,1,172,1,187,1,206,1,215,1,211,1,208,1,211,1,213,1, +212,1,217,1,224,1,227,1,235,1,240,1,234,1,229,1,233,1,236,1,237,1,234,1,224,1,223,1,237,1,238,1, +219,1,209,1,210,1,210,1,221,1,238,1,235,1,229,1,241,1,242,1,220,1,204,1,203,1,202,1,197,1,191,1, +185,1,184,1,184,1,176,1,177,1,192,1,198,1,194,1,191,1,179,1,159,1,151,1,148,1,137,1,135,1,143,1, +142,1,138,1,148,1,155,1,142,1,122,1,107,1,97,1,91,1,85,1,71,1,59,1,60,1,62,1,59,1,54,1, +40,1,20,1,16,1,26,1,24,1,2,1,237,0,228,0,225,0,219,0,207,0,192,0,186,0,191,0,193,0,181,0, +158,0,137,0,134,0,144,0,140,0,116,0,100,0,101,0,103,0,95,0,81,0,72,0,69,0,64,0,54,0,49,0, +48,0,47,0,52,0,63,0,58,0,32,0,14,0,16,0,21,0,14,0,5,0,4,0,11,0,17,0,12,0,3,0, +2,0,6,0,7,0,8,0,12,0,7,0,242,255,221,255,217,255,223,255,230,255,248,255,15,0,14,0,249,255,242,255, +251,255,0,0,255,255,250,255,236,255,233,255,250,255,5,0,2,0,3,0,5,0,6,0,19,0,35,0,28,0,16,0, +25,0,36,0,25,0,14,0,12,0,14,0,29,0,56,0,70,0,67,0,74,0,93,0,98,0,90,0,87,0,89,0, +89,0,95,0,107,0,118,0,127,0,138,0,150,0,162,0,171,0,169,0,165,0,169,0,171,0,164,0,166,0,186,0, +206,0,218,0,228,0,232,0,224,0,219,0,236,0,8,1,19,1,9,1,1,1,12,1,24,1,24,1,26,1,40,1, +52,1,50,1,48,1,61,1,73,1,65,1,52,1,56,1,67,1,76,1,91,1,106,1,104,1,99,1,109,1,117,1, +112,1,113,1,126,1,146,1,165,1,170,1,158,1,156,1,165,1,163,1,161,1,180,1,196,1,190,1,179,1,178,1, +183,1,184,1,182,1,188,1,206,1,212,1,204,1,212,1,229,1,226,1,210,1,204,1,207,1,215,1,236,1,253,1, +254,1,241,1,224,1,217,1,229,1,239,1,232,1,232,1,235,1,222,1,212,1,222,1,226,1,215,1,215,1,223,1, +227,1,240,1,251,1,237,1,221,1,224,1,223,1,212,1,215,1,231,1,232,1,223,1,222,1,223,1,218,1,218,1, +221,1,210,1,190,1,182,1,186,1,186,1,184,1,184,1,183,1,184,1,194,1,200,1,195,1,188,1,181,1,165,1, +148,1,146,1,155,1,159,1,149,1,134,1,129,1,133,1,130,1,115,1,97,1,85,1,81,1,79,1,70,1,58,1, +50,1,44,1,35,1,31,1,30,1,16,1,253,0,252,0,3,1,247,0,219,0,203,0,199,0,190,0,176,0,171,0, +165,0,155,0,151,0,150,0,134,0,116,0,112,0,109,0,99,0,98,0,96,0,77,0,53,0,43,0,42,0,47,0, +53,0,41,0,14,0,251,255,243,255,239,255,238,255,232,255,214,255,198,255,198,255,205,255,204,255,191,255,177,255,176,255, +181,255,178,255,178,255,188,255,190,255,176,255,160,255,146,255,132,255,126,255,134,255,142,255,144,255,142,255,139,255,122,255, +89,255,70,255,85,255,109,255,114,255,113,255,119,255,117,255,110,255,120,255,132,255,128,255,125,255,139,255,149,255,143,255, +142,255,152,255,153,255,138,255,129,255,144,255,177,255,204,255,208,255,191,255,171,255,168,255,184,255,203,255,217,255,232,255, +3,0,31,0,37,0,22,0,16,0,36,0,65,0,84,0,99,0,115,0,124,0,125,0,132,0,149,0,160,0,162,0, +173,0,198,0,211,0,204,0,204,0,224,0,245,0,250,0,244,0,253,0,33,1,65,1,69,1,59,1,60,1,73,1, +94,1,122,1,143,1,150,1,157,1,165,1,169,1,169,1,165,1,158,1,163,1,178,1,185,1,190,1,203,1,206,1, +197,1,200,1,219,1,234,1,242,1,248,1,253,1,7,2,15,2,6,2,255,1,15,2,33,2,40,2,50,2,61,2, +56,2,45,2,44,2,41,2,33,2,34,2,47,2,52,2,36,2,21,2,25,2,38,2,52,2,66,2,74,2,67,2, +65,2,78,2,87,2,76,2,56,2,50,2,65,2,85,2,84,2,69,2,71,2,81,2,71,2,57,2,62,2,67,2, +55,2,41,2,31,2,18,2,8,2,9,2,10,2,3,2,1,2,18,2,38,2,38,2,21,2,5,2,251,1,244,1, +239,1,233,1,222,1,216,1,221,1,224,1,213,1,192,1,179,1,179,1,179,1,171,1,158,1,146,1,135,1,128,1, +120,1,108,1,100,1,99,1,99,1,107,1,122,1,116,1,91,1,82,1,90,1,88,1,75,1,66,1,47,1,19,1, +6,1,14,1,18,1,7,1,244,0,233,0,236,0,241,0,230,0,205,0,186,0,183,0,182,0,170,0,151,0,143,0, +142,0,138,0,133,0,126,0,112,0,106,0,107,0,89,0,58,0,40,0,28,0,5,0,243,255,233,255,212,255,190,255, +190,255,197,255,189,255,173,255,159,255,142,255,127,255,116,255,102,255,83,255,73,255,72,255,57,255,29,255,19,255,35,255, +38,255,15,255,250,254,239,254,222,254,201,254,190,254,179,254,162,254,147,254,132,254,121,254,120,254,121,254,114,254,108,254, +111,254,105,254,86,254,68,254,63,254,64,254,58,254,42,254,28,254,23,254,19,254,14,254,14,254,17,254,15,254,9,254, +1,254,240,253,219,253,210,253,210,253,207,253,206,253,212,253,209,253,198,253,203,253,215,253,208,253,197,253,206,253,209,253, +197,253,199,253,210,253,199,253,180,253,184,253,199,253,207,253,205,253,195,253,188,253,199,253,211,253,205,253,192,253,191,253, +196,253,199,253,204,253,208,253,212,253,221,253,230,253,234,253,240,253,254,253,10,254,10,254,11,254,25,254,40,254,39,254, +39,254,50,254,57,254,56,254,67,254,82,254,86,254,92,254,107,254,114,254,113,254,122,254,138,254,150,254,157,254,161,254, +170,254,193,254,213,254,218,254,225,254,245,254,7,255,13,255,16,255,19,255,26,255,42,255,63,255,73,255,67,255,66,255, +84,255,108,255,117,255,120,255,130,255,138,255,143,255,165,255,193,255,203,255,206,255,218,255,231,255,242,255,5,0,26,0, +35,0,36,0,40,0,47,0,54,0,66,0,82,0,94,0,101,0,110,0,122,0,138,0,156,0,168,0,168,0,168,0, +178,0,196,0,218,0,242,0,0,1,8,1,20,1,35,1,40,1,41,1,48,1,61,1,79,1,97,1,109,1,118,1, +120,1,118,1,134,1,162,1,166,1,153,1,163,1,189,1,197,1,198,1,214,1,232,1,239,1,248,1,6,2,12,2, +10,2,11,2,18,2,23,2,28,2,46,2,69,2,78,2,79,2,92,2,102,2,93,2,80,2,81,2,89,2,99,2, +109,2,113,2,116,2,125,2,136,2,144,2,151,2,155,2,158,2,159,2,147,2,129,2,124,2,132,2,142,2,153,2, +157,2,145,2,137,2,147,2,156,2,150,2,136,2,127,2,122,2,115,2,98,2,86,2,93,2,99,2,86,2,76,2, +83,2,90,2,83,2,70,2,59,2,52,2,45,2,26,2,2,2,248,1,248,1,243,1,238,1,241,1,237,1,220,1, +209,1,205,1,196,1,183,1,172,1,154,1,128,1,112,1,103,1,86,1,76,1,84,1,88,1,78,1,69,1,55,1, +24,1,4,1,7,1,250,0,209,0,181,0,182,0,190,0,184,0,167,0,146,0,129,0,117,0,105,0,93,0,81,0, +60,0,26,0,249,255,234,255,229,255,216,255,201,255,196,255,184,255,161,255,151,255,151,255,128,255,92,255,74,255,62,255, +34,255,11,255,4,255,247,254,224,254,203,254,185,254,163,254,139,254,116,254,102,254,102,254,96,254,75,254,47,254,22,254, +2,254,243,253,231,253,225,253,223,253,207,253,172,253,143,253,135,253,133,253,124,253,108,253,87,253,70,253,60,253,44,253, +25,253,11,253,252,252,236,252,229,252,225,252,217,252,217,252,223,252,219,252,203,252,183,252,158,252,139,252,134,252,131,252, +119,252,110,252,103,252,96,252,98,252,108,252,102,252,88,252,85,252,82,252,61,252,40,252,39,252,42,252,32,252,21,252, +23,252,34,252,44,252,41,252,24,252,14,252,19,252,18,252,5,252,4,252,5,252,243,251,228,251,240,251,246,251,228,251, +220,251,233,251,237,251,232,251,233,251,227,251,205,251,190,251,194,251,198,251,195,251,195,251,201,251,201,251,196,251,190,251, +178,251,171,251,184,251,196,251,179,251,147,251,126,251,120,251,125,251,140,251,143,251,123,251,102,251,96,251,99,251,106,251, +104,251,88,251,73,251,74,251,73,251,59,251,50,251,49,251,46,251,38,251,20,251,251,250,233,250,223,250,210,250,193,250, +177,250,156,250,132,250,110,250,87,250,68,250,61,250,53,250,32,250,1,250,221,249,192,249,181,249,169,249,138,249,108,249, +88,249,60,249,15,249,225,248,189,248,165,248,149,248,123,248,81,248,34,248,242,247,190,247,145,247,120,247,104,247,92,247, +92,247,96,247,77,247,30,247,244,246,234,246,235,246,216,246,185,246,162,246,137,246,98,246,66,246,63,246,67,246,52,246, +30,246,16,246,248,245,202,245,165,245,153,245,140,245,117,245,114,245,136,245,152,245,157,245,174,245,197,245,202,245,183,245, +160,245,149,245,143,245,135,245,132,245,139,245,141,245,131,245,124,245,135,245,155,245,165,245,158,245,153,245,157,245,164,245, +176,245,194,245,209,245,233,245,30,246,91,246,123,246,139,246,166,246,192,246,204,246,221,246,1,247,47,247,91,247,130,247, +166,247,196,247,222,247,0,248,48,248,100,248,150,248,205,248,3,249,52,249,112,249,185,249,3,250,87,250,183,250,5,251, +54,251,105,251,160,251,210,251,26,252,136,252,247,252,69,253,123,253,178,253,252,253,93,254,185,254,250,254,43,255,92,255, +147,255,216,255,46,0,140,0,235,0,70,1,158,1,247,1,77,2,151,2,214,2,26,3,102,3,176,3,238,3,37,4, +102,4,190,4,37,5,131,5,204,5,15,6,88,6,153,6,202,6,4,7,82,7,156,7,224,7,54,8,141,8,203,8, +14,9,121,9,234,9,57,10,122,10,193,10,2,11,62,11,130,11,199,11,0,12,62,12,145,12,233,12,50,13,113,13, +174,13,238,13,50,14,115,14,169,14,222,14,27,15,84,15,129,15,175,15,225,15,26,16,90,16,145,16,175,16,207,16, +8,17,71,17,113,17,141,17,168,17,198,17,229,17,1,18,25,18,50,18,83,18,121,18,156,18,175,18,184,18,198,18, +216,18,228,18,241,18,0,19,3,19,2,19,9,19,14,19,10,19,7,19,8,19,14,19,30,19,39,19,26,19,13,19, +12,19,7,19,246,18,232,18,212,18,182,18,162,18,154,18,139,18,112,18,89,18,75,18,64,18,39,18,251,17,203,17, +168,17,139,17,105,17,65,17,23,17,239,16,200,16,162,16,124,16,91,16,56,16,10,16,206,15,148,15,103,15,57,15, +247,14,168,14,101,14,50,14,0,14,202,13,138,13,66,13,253,12,187,12,114,12,35,12,206,11,116,11,33,11,226,10, +162,10,86,10,13,10,206,9,130,9,41,9,216,8,136,8,46,8,221,7,161,7,91,7,251,6,150,6,69,6,1,6, +190,5,106,5,2,5,165,4,100,4,27,4,181,3,86,3,20,3,209,2,131,2,61,2,251,1,169,1,78,1,247,0, +172,0,107,0,41,0,223,255,146,255,70,255,251,254,179,254,105,254,22,254,201,253,138,253,72,253,253,252,181,252,115,252, +50,252,246,251,184,251,116,251,52,251,250,250,187,250,127,250,73,250,15,250,209,249,157,249,110,249,58,249,8,249,222,248, +176,248,120,248,57,248,6,248,228,247,192,247,139,247,86,247,51,247,26,247,252,246,212,246,168,246,131,246,99,246,66,246, +38,246,17,246,244,245,214,245,198,245,180,245,147,245,123,245,122,245,120,245,103,245,83,245,68,245,55,245,48,245,48,245, +45,245,32,245,17,245,12,245,11,245,11,245,20,245,40,245,56,245,62,245,66,245,68,245,63,245,59,245,69,245,94,245, +119,245,134,245,139,245,149,245,172,245,199,245,220,245,238,245,2,246,22,246,45,246,72,246,94,246,103,246,111,246,137,246, +178,246,214,246,238,246,1,247,25,247,65,247,118,247,155,247,164,247,176,247,212,247,6,248,48,248,74,248,102,248,150,248, +206,248,251,248,39,249,91,249,133,249,165,249,210,249,4,250,37,250,62,250,98,250,149,250,207,250,5,251,45,251,80,251, +132,251,195,251,249,251,30,252,63,252,108,252,164,252,218,252,9,253,50,253,84,253,123,253,184,253,252,253,43,254,78,254, +122,254,172,254,211,254,244,254,30,255,78,255,119,255,159,255,208,255,1,0,39,0,73,0,117,0,163,0,205,0,250,0, +36,1,75,1,119,1,163,1,193,1,221,1,254,1,29,2,61,2,102,2,140,2,169,2,208,2,254,2,30,3,52,3, +81,3,105,3,120,3,148,3,188,3,211,3,221,3,245,3,20,4,39,4,61,4,101,4,134,4,142,4,148,4,167,4, +187,4,200,4,214,4,232,4,247,4,3,5,14,5,22,5,24,5,32,5,54,5,72,5,66,5,55,5,56,5,63,5, +69,5,78,5,74,5,56,5,50,5,56,5,54,5,46,5,46,5,42,5,32,5,24,5,11,5,251,4,245,4,241,4, +220,4,192,4,176,4,161,4,137,4,118,4,114,4,108,4,84,4,53,4,39,4,34,4,17,4,249,3,229,3,204,3, +173,3,150,3,132,3,107,3,81,3,62,3,48,3,37,3,21,3,250,2,220,2,196,2,165,2,128,2,93,2,60,2, +29,2,10,2,251,1,229,1,202,1,171,1,141,1,123,1,112,1,83,1,27,1,231,0,206,0,198,0,178,0,143,0, +114,0,90,0,59,0,33,0,23,0,253,255,203,255,161,255,131,255,94,255,61,255,53,255,39,255,3,255,225,254,205,254, +182,254,153,254,124,254,88,254,51,254,27,254,10,254,242,253,217,253,197,253,168,253,135,253,113,253,95,253,65,253,32,253, +7,253,243,252,223,252,200,252,178,252,162,252,152,252,138,252,116,252,94,252,75,252,58,252,37,252,9,252,241,251,235,251, +237,251,229,251,218,251,212,251,199,251,180,251,170,251,165,251,154,251,144,251,136,251,122,251,112,251,112,251,112,251,104,251, +97,251,99,251,103,251,98,251,89,251,82,251,77,251,72,251,72,251,67,251,51,251,47,251,67,251,85,251,89,251,91,251, +90,251,84,251,93,251,115,251,117,251,105,251,113,251,136,251,149,251,152,251,158,251,174,251,199,251,222,251,228,251,226,251, +239,251,10,252,36,252,51,252,60,252,68,252,82,252,107,252,138,252,158,252,169,252,195,252,230,252,247,252,254,252,18,253, +42,253,63,253,92,253,122,253,132,253,136,253,159,253,200,253,239,253,7,254,18,254,33,254,60,254,85,254,97,254,115,254, +148,254,175,254,189,254,209,254,240,254,10,255,27,255,48,255,77,255,101,255,121,255,145,255,169,255,190,255,211,255,232,255, +253,255,22,0,52,0,78,0,97,0,103,0,108,0,147,0,221,0,2,1,219,0,166,0,187,0,20,1,92,1,93,1, +67,1,79,1,126,1,154,1,154,1,157,1,173,1,197,1,219,1,233,1,245,1,12,2,46,2,68,2,66,2,61,2, +76,2,106,2,129,2,134,2,122,2,109,2,125,2,172,2,201,2,186,2,169,2,180,2,199,2,211,2,218,2,214,2, +203,2,209,2,232,2,248,2,252,2,254,2,0,3,2,3,2,3,252,2,247,2,248,2,246,2,245,2,252,2,1,3, +250,2,243,2,242,2,239,2,235,2,234,2,234,2,231,2,226,2,213,2,197,2,190,2,196,2,202,2,198,2,186,2, +172,2,161,2,157,2,147,2,123,2,100,2,89,2,88,2,93,2,93,2,75,2,45,2,25,2,15,2,253,1,235,1, +219,1,201,1,185,1,175,1,158,1,134,1,120,1,114,1,98,1,78,1,64,1,47,1,26,1,10,1,248,0,226,0, +207,0,196,0,181,0,157,0,138,0,130,0,120,0,95,0,64,0,44,0,30,0,18,0,6,0,244,255,220,255,206,255, +199,255,187,255,171,255,157,255,138,255,122,255,109,255,91,255,66,255,44,255,28,255,18,255,9,255,249,254,226,254,211,254, +199,254,183,254,171,254,157,254,133,254,119,254,123,254,109,254,79,254,64,254,64,254,53,254,35,254,20,254,9,254,4,254, +4,254,250,253,231,253,217,253,210,253,204,253,195,253,183,253,168,253,153,253,141,253,144,253,153,253,146,253,135,253,137,253, +131,253,113,253,117,253,130,253,110,253,83,253,89,253,100,253,89,253,85,253,95,253,97,253,94,253,101,253,101,253,87,253, +80,253,79,253,76,253,78,253,86,253,81,253,78,253,103,253,131,253,123,253,101,253,106,253,123,253,127,253,132,253,146,253, +148,253,136,253,132,253,141,253,153,253,164,253,171,253,174,253,180,253,189,253,196,253,202,253,209,253,217,253,226,253,234,253, +244,253,2,254,18,254,28,254,34,254,47,254,63,254,77,254,85,254,90,254,97,254,112,254,131,254,142,254,146,254,151,254, +162,254,176,254,193,254,211,254,220,254,219,254,228,254,251,254,10,255,11,255,26,255,57,255,80,255,87,255,91,255,101,255, +118,255,133,255,141,255,151,255,168,255,181,255,191,255,213,255,235,255,245,255,254,255,13,0,22,0,22,0,34,0,56,0, +72,0,82,0,102,0,129,0,140,0,142,0,163,0,192,0,202,0,203,0,221,0,235,0,233,0,241,0,9,1,25,1, +31,1,40,1,47,1,52,1,66,1,80,1,83,1,84,1,89,1,96,1,104,1,117,1,131,1,139,1,140,1,145,1, +156,1,163,1,168,1,180,1,186,1,180,1,179,1,188,1,194,1,198,1,200,1,193,1,189,1,200,1,206,1,196,1, +193,1,204,1,208,1,197,1,188,1,190,1,202,1,212,1,211,1,201,1,196,1,203,1,213,1,210,1,203,1,206,1, +209,1,194,1,177,1,168,1,156,1,149,1,161,1,168,1,152,1,133,1,126,1,120,1,115,1,113,1,109,1,105,1, +99,1,83,1,70,1,74,1,78,1,69,1,63,1,54,1,36,1,26,1,28,1,23,1,9,1,247,0,230,0,216,0, +207,0,198,0,191,0,189,0,182,0,171,0,166,0,162,0,162,0,174,0,188,0,178,0,147,0,116,0,98,0,90,0, +93,0,96,0,93,0,84,0,76,0,70,0,63,0,50,0,41,0,35,0,22,0,2,0,246,255,244,255,243,255,247,255, +0,0,10,0,14,0,18,0,24,0,26,0,11,0,240,255,220,255,213,255,204,255,193,255,190,255,197,255,206,255,210,255, +206,255,197,255,188,255,181,255,172,255,159,255,148,255,150,255,167,255,185,255,195,255,202,255,206,255,200,255,188,255,188,255, +199,255,202,255,186,255,168,255,168,255,181,255,193,255,201,255,209,255,216,255,217,255,206,255,188,255,182,255,191,255,205,255, +225,255,243,255,249,255,1,0,28,0,53,0,54,0,44,0,37,0,37,0,40,0,37,0,28,0,33,0,56,0,75,0, +89,0,99,0,88,0,66,0,63,0,70,0,60,0,49,0,56,0,73,0,90,0,103,0,117,0,143,0,173,0,186,0, +190,0,194,0,187,0,177,0,180,0,185,0,185,0,202,0,229,0,231,0,225,0,236,0,246,0,237,0,227,0,229,0, +238,0,250,0,1,1,2,1,9,1,29,1,45,1,46,1,42,1,52,1,65,1,64,1,55,1,56,1,59,1,62,1, +76,1,87,1,72,1,50,1,47,1,51,1,52,1,53,1,53,1,50,1,47,1,45,1,51,1,71,1,81,1,64,1, +46,1,37,1,28,1,26,1,41,1,54,1,54,1,49,1,41,1,34,1,37,1,44,1,47,1,45,1,34,1,9,1, +246,0,248,0,253,0,249,0,247,0,249,0,242,0,225,0,218,0,222,0,224,0,215,0,211,0,214,0,210,0,199,0, +196,0,198,0,200,0,198,0,192,0,187,0,192,0,197,0,186,0,167,0,162,0,168,0,170,0,161,0,143,0,127,0, +126,0,128,0,116,0,95,0,84,0,91,0,102,0,105,0,101,0,86,0,67,0,57,0,57,0,46,0,25,0,17,0, +23,0,23,0,11,0,254,255,246,255,243,255,236,255,215,255,196,255,188,255,177,255,154,255,133,255,127,255,129,255,127,255, +116,255,100,255,91,255,87,255,82,255,77,255,68,255,52,255,41,255,43,255,39,255,20,255,4,255,254,254,239,254,216,254, +205,254,207,254,205,254,194,254,181,254,162,254,136,254,118,254,111,254,101,254,86,254,79,254,77,254,76,254,75,254,67,254, +58,254,57,254,56,254,40,254,26,254,23,254,14,254,4,254,1,254,243,253,214,253,206,253,222,253,224,253,205,253,188,253, +187,253,194,253,191,253,173,253,154,253,145,253,150,253,169,253,182,253,164,253,142,253,150,253,171,253,175,253,168,253,161,253, +153,253,150,253,148,253,141,253,146,253,167,253,184,253,186,253,180,253,171,253,159,253,151,253,149,253,157,253,171,253,176,253, +177,253,183,253,185,253,178,253,177,253,182,253,180,253,183,253,194,253,198,253,203,253,219,253,233,253,239,253,250,253,11,254, +25,254,36,254,43,254,42,254,36,254,27,254,22,254,33,254,56,254,75,254,86,254,97,254,109,254,125,254,139,254,147,254, +157,254,171,254,176,254,177,254,186,254,197,254,208,254,231,254,251,254,251,254,254,254,10,255,16,255,20,255,24,255,14,255, +3,255,16,255,37,255,46,255,67,255,105,255,124,255,120,255,122,255,135,255,145,255,157,255,178,255,201,255,213,255,215,255, +217,255,226,255,232,255,236,255,247,255,9,0,28,0,45,0,51,0,48,0,53,0,77,0,98,0,100,0,103,0,119,0, +124,0,112,0,117,0,144,0,152,0,140,0,143,0,165,0,178,0,182,0,189,0,197,0,195,0,189,0,195,0,215,0, +233,0,232,0,227,0,236,0,245,0,246,0,250,0,2,1,4,1,13,1,29,1,22,1,244,0,229,0,252,0,13,1, +3,1,3,1,28,1,39,1,23,1,19,1,33,1,33,1,18,1,18,1,32,1,37,1,28,1,17,1,14,1,17,1, +16,1,5,1,253,0,255,0,4,1,3,1,243,0,223,0,216,0,221,0,219,0,213,0,208,0,198,0,184,0,177,0, +179,0,185,0,186,0,175,0,159,0,154,0,151,0,143,0,139,0,135,0,122,0,113,0,111,0,93,0,67,0,58,0, +55,0,45,0,38,0,35,0,21,0,2,0,251,255,253,255,249,255,236,255,225,255,219,255,204,255,180,255,172,255,176,255, +166,255,150,255,149,255,137,255,106,255,85,255,76,255,60,255,47,255,48,255,37,255,12,255,0,255,3,255,254,254,241,254, +231,254,225,254,217,254,210,254,202,254,186,254,164,254,151,254,140,254,119,254,99,254,90,254,78,254,67,254,74,254,78,254, +54,254,29,254,23,254,18,254,7,254,1,254,255,253,248,253,239,253,227,253,215,253,211,253,214,253,206,253,188,253,167,253, +153,253,153,253,152,253,137,253,124,253,124,253,124,253,122,253,129,253,137,253,132,253,122,253,107,253,92,253,89,253,94,253, +93,253,89,253,86,253,74,253,61,253,68,253,82,253,79,253,68,253,67,253,65,253,58,253,56,253,58,253,54,253,53,253, +68,253,78,253,67,253,54,253,57,253,61,253,52,253,46,253,47,253,41,253,32,253,38,253,53,253,60,253,59,253,57,253, +56,253,53,253,48,253,47,253,52,253,60,253,61,253,51,253,43,253,49,253,62,253,65,253,61,253,55,253,45,253,39,253, +46,253,58,253,62,253,65,253,71,253,76,253,79,253,82,253,75,253,60,253,55,253,66,253,75,253,72,253,67,253,70,253, +74,253,72,253,75,253,89,253,103,253,113,253,120,253,119,253,109,253,110,253,123,253,126,253,123,253,132,253,149,253,149,253, +134,253,125,253,126,253,127,253,127,253,139,253,151,253,152,253,153,253,162,253,164,253,162,253,172,253,185,253,193,253,200,253, +202,253,196,253,201,253,213,253,211,253,210,253,228,253,232,253,216,253,213,253,219,253,210,253,204,253,221,253,245,253,0,254, +3,254,8,254,23,254,41,254,47,254,43,254,41,254,39,254,40,254,48,254,54,254,60,254,73,254,79,254,69,254,77,254, +107,254,121,254,116,254,125,254,145,254,145,254,128,254,127,254,146,254,161,254,166,254,172,254,186,254,199,254,216,254,233,254, +233,254,224,254,230,254,245,254,249,254,249,254,0,255,4,255,14,255,34,255,50,255,55,255,60,255,70,255,88,255,105,255, +104,255,92,255,94,255,103,255,101,255,105,255,124,255,137,255,135,255,143,255,168,255,186,255,188,255,189,255,198,255,206,255, +202,255,201,255,210,255,210,255,204,255,212,255,223,255,225,255,238,255,6,0,10,0,249,255,247,255,10,0,25,0,32,0, +38,0,37,0,30,0,27,0,34,0,44,0,49,0,54,0,64,0,75,0,76,0,71,0,68,0,69,0,69,0,71,0, +73,0,74,0,75,0,77,0,87,0,106,0,119,0,112,0,104,0,114,0,124,0,112,0,94,0,95,0,102,0,102,0, +102,0,107,0,104,0,98,0,100,0,106,0,118,0,136,0,137,0,118,0,113,0,130,0,137,0,131,0,136,0,149,0, +150,0,144,0,138,0,128,0,123,0,134,0,151,0,153,0,142,0,135,0,140,0,148,0,150,0,146,0,140,0,141,0, +147,0,147,0,140,0,139,0,149,0,162,0,171,0,170,0,160,0,155,0,161,0,165,0,162,0,159,0,158,0,159,0, +166,0,177,0,188,0,190,0,177,0,166,0,175,0,183,0,170,0,164,0,176,0,179,0,170,0,176,0,189,0,193,0, +198,0,206,0,205,0,204,0,210,0,219,0,226,0,228,0,223,0,221,0,227,0,229,0,232,0,243,0,247,0,238,0, +235,0,243,0,251,0,1,1,6,1,10,1,20,1,33,1,40,1,46,1,56,1,64,1,71,1,79,1,86,1,94,1, +102,1,104,1,110,1,129,1,134,1,115,1,108,1,124,1,135,1,141,1,160,1,176,1,170,1,165,1,177,1,189,1, +187,1,188,1,207,1,224,1,223,1,228,1,249,1,4,2,0,2,8,2,32,2,45,2,38,2,29,2,33,2,50,2, +65,2,68,2,66,2,67,2,70,2,78,2,91,2,93,2,87,2,93,2,103,2,108,2,114,2,124,2,128,2,132,2, +141,2,147,2,156,2,175,2,187,2,183,2,179,2,185,2,194,2,196,2,193,2,192,2,204,2,217,2,214,2,205,2, +205,2,209,2,214,2,224,2,231,2,234,2,248,2,13,3,14,3,4,3,13,3,31,3,32,3,26,3,33,3,38,3, +34,3,42,3,60,3,61,3,46,3,39,3,42,3,42,3,41,3,42,3,45,3,52,3,55,3,50,3,48,3,57,3, +70,3,76,3,74,3,68,3,68,3,72,3,71,3,66,3,71,3,79,3,73,3,54,3,46,3,57,3,61,3,44,3, +31,3,38,3,40,3,24,3,14,3,21,3,23,3,12,3,5,3,3,3,255,2,255,2,3,3,254,2,238,2,230,2, +231,2,225,2,212,2,216,2,235,2,237,2,217,2,197,2,184,2,174,2,172,2,170,2,157,2,147,2,149,2,140,2, +119,2,114,2,126,2,123,2,100,2,82,2,86,2,97,2,91,2,72,2,58,2,51,2,49,2,53,2,47,2,32,2, +29,2,34,2,16,2,243,1,230,1,219,1,203,1,198,1,198,1,184,1,166,1,159,1,160,1,164,1,153,1,124,1, +106,1,111,1,107,1,88,1,76,1,70,1,57,1,50,1,44,1,21,1,254,0,254,0,5,1,251,0,231,0,213,0, +198,0,177,0,158,0,155,0,163,0,159,0,140,0,120,0,104,0,92,0,84,0,72,0,58,0,52,0,52,0,43,0, +22,0,3,0,254,255,3,0,3,0,244,255,225,255,213,255,204,255,194,255,180,255,164,255,159,255,160,255,143,255,116,255, +111,255,113,255,95,255,75,255,72,255,72,255,65,255,60,255,51,255,40,255,35,255,29,255,18,255,13,255,13,255,10,255, +1,255,246,254,232,254,221,254,214,254,202,254,192,254,198,254,206,254,195,254,177,254,173,254,178,254,170,254,151,254,142,254, +144,254,142,254,140,254,148,254,154,254,145,254,135,254,140,254,144,254,129,254,113,254,115,254,121,254,114,254,101,254,97,254, +102,254,104,254,101,254,94,254,88,254,83,254,80,254,77,254,74,254,68,254,60,254,61,254,69,254,77,254,81,254,77,254, +69,254,73,254,90,254,91,254,69,254,51,254,53,254,59,254,60,254,56,254,52,254,56,254,61,254,54,254,46,254,51,254, +59,254,57,254,46,254,40,254,46,254,58,254,67,254,70,254,69,254,58,254,42,254,39,254,48,254,48,254,39,254,38,254, +48,254,51,254,45,254,45,254,50,254,47,254,37,254,39,254,47,254,43,254,36,254,38,254,42,254,45,254,52,254,59,254, +62,254,64,254,54,254,35,254,39,254,60,254,63,254,54,254,55,254,57,254,57,254,65,254,73,254,72,254,72,254,74,254, +68,254,65,254,67,254,62,254,58,254,60,254,57,254,56,254,63,254,68,254,66,254,65,254,64,254,67,254,80,254,84,254, +71,254,66,254,76,254,75,254,64,254,63,254,69,254,66,254,59,254,60,254,74,254,86,254,81,254,69,254,65,254,71,254, +81,254,89,254,85,254,71,254,61,254,56,254,55,254,70,254,87,254,78,254,56,254,54,254,63,254,63,254,53,254,43,254, +37,254,34,254,28,254,29,254,42,254,52,254,47,254,38,254,33,254,27,254,26,254,24,254,12,254,254,253,254,253,2,254, +255,253,249,253,241,253,232,253,227,253,231,253,240,253,247,253,243,253,236,253,240,253,240,253,222,253,212,253,224,253,231,253, +219,253,210,253,215,253,221,253,217,253,207,253,196,253,190,253,185,253,182,253,187,253,193,253,192,253,186,253,185,253,185,253, +183,253,179,253,172,253,168,253,172,253,175,253,165,253,159,253,170,253,173,253,150,253,131,253,138,253,150,253,156,253,167,253, +175,253,164,253,153,253,155,253,157,253,153,253,154,253,157,253,148,253,138,253,138,253,140,253,136,253,122,253,109,253,104,253, +99,253,84,253,73,253,81,253,91,253,83,253,66,253,56,253,49,253,34,253,19,253,14,253,10,253,252,252,232,252,215,252, +192,252,169,252,164,252,165,252,143,252,110,252,92,252,80,252,56,252,32,252,18,252,252,251,213,251,180,251,161,251,129,251, +82,251,51,251,36,251,7,251,221,250,186,250,146,250,94,250,57,250,42,250,34,250,46,250,79,250,91,250,69,250,42,250, +22,250,253,249,231,249,221,249,208,249,181,249,154,249,137,249,121,249,96,249,75,249,64,249,30,249,227,248,187,248,180,248, +166,248,128,248,98,248,95,248,113,248,134,248,141,248,151,248,181,248,205,248,196,248,173,248,155,248,135,248,120,248,118,248, +118,248,123,248,144,248,166,248,174,248,186,248,207,248,215,248,207,248,201,248,207,248,225,248,249,248,23,249,58,249,97,249, +139,249,187,249,233,249,0,250,7,250,22,250,48,250,76,250,113,250,157,250,200,250,233,250,2,251,22,251,42,251,68,251, +100,251,135,251,168,251,204,251,248,251,27,252,51,252,86,252,140,252,199,252,4,253,64,253,111,253,154,253,213,253,19,254, +74,254,142,254,222,254,38,255,108,255,182,255,240,255,28,0,83,0,138,0,175,0,219,0,32,1,106,1,172,1,241,1, +57,2,123,2,184,2,244,2,51,3,119,3,185,3,244,3,45,4,104,4,167,4,234,4,54,5,132,5,203,5,4,6, +51,6,98,6,153,6,213,6,20,7,86,7,148,7,200,7,249,7,57,8,120,8,170,8,221,8,29,9,88,9,141,9, +200,9,0,10,48,10,107,10,172,10,217,10,255,10,58,11,124,11,174,11,216,11,6,12,48,12,88,12,138,12,193,12, +234,12,0,13,21,13,54,13,82,13,95,13,110,13,136,13,172,13,206,13,226,13,237,13,7,14,47,14,72,14,87,14, +117,14,153,14,173,14,190,14,215,14,235,14,248,14,8,15,29,15,46,15,55,15,63,15,76,15,88,15,89,15,88,15, +89,15,80,15,64,15,61,15,69,15,66,15,50,15,34,15,28,15,26,15,22,15,14,15,255,14,228,14,200,14,187,14, +173,14,143,14,116,14,101,14,77,14,42,14,14,14,246,13,210,13,173,13,145,13,118,13,76,13,17,13,216,12,180,12, +146,12,98,12,51,12,20,12,242,11,201,11,163,11,122,11,75,11,31,11,243,10,190,10,142,10,107,10,68,10,18,10, +219,9,163,9,105,9,42,9,232,8,170,8,111,8,46,8,230,7,162,7,95,7,26,7,220,6,172,6,120,6,54,6, +241,5,183,5,132,5,75,5,9,5,201,4,138,4,74,4,15,4,215,3,153,3,92,3,34,3,225,2,154,2,96,2, +41,2,226,1,148,1,84,1,35,1,237,0,170,0,103,0,55,0,7,0,191,255,116,255,62,255,10,255,199,254,137,254, +94,254,50,254,250,253,189,253,130,253,75,253,29,253,242,252,191,252,131,252,75,252,26,252,227,251,161,251,103,251,62,251, +23,251,235,250,197,250,163,250,114,250,61,250,23,250,248,249,212,249,185,249,171,249,151,249,125,249,102,249,76,249,41,249, +10,249,249,248,236,248,212,248,180,248,153,248,132,248,107,248,83,248,70,248,56,248,26,248,3,248,6,248,12,248,254,247, +238,247,237,247,243,247,243,247,230,247,216,247,218,247,228,247,229,247,229,247,237,247,239,247,238,247,247,247,255,247,254,247, +6,248,22,248,27,248,34,248,56,248,70,248,72,248,87,248,113,248,128,248,139,248,160,248,183,248,201,248,222,248,251,248, +21,249,38,249,59,249,89,249,114,249,136,249,170,249,209,249,231,249,251,249,26,250,51,250,66,250,93,250,128,250,155,250, +175,250,195,250,221,250,4,251,45,251,74,251,98,251,132,251,175,251,217,251,0,252,37,252,79,252,121,252,152,252,179,252, +214,252,252,252,30,253,62,253,88,253,118,253,172,253,231,253,4,254,23,254,60,254,99,254,133,254,167,254,195,254,222,254, +13,255,65,255,97,255,120,255,156,255,197,255,234,255,11,0,39,0,65,0,93,0,120,0,148,0,178,0,203,0,230,0, +13,1,49,1,72,1,99,1,139,1,176,1,197,1,211,1,232,1,4,2,30,2,50,2,74,2,107,2,135,2,153,2, +168,2,187,2,210,2,230,2,249,2,21,3,45,3,48,3,46,3,69,3,102,3,121,3,130,3,144,3,156,3,163,3, +169,3,174,3,182,3,194,3,206,3,215,3,214,3,208,3,212,3,226,3,226,3,222,3,236,3,246,3,234,3,228,3, +237,3,239,3,242,3,1,4,7,4,247,3,234,3,230,3,225,3,223,3,225,3,219,3,210,3,199,3,181,3,169,3, +173,3,171,3,149,3,129,3,124,3,120,3,109,3,100,3,91,3,75,3,62,3,53,3,41,3,24,3,10,3,251,2, +226,2,202,2,195,2,193,2,170,2,135,2,107,2,91,2,75,2,59,2,41,2,23,2,7,2,249,1,229,1,204,1, +182,1,168,1,155,1,137,1,118,1,101,1,77,1,42,1,13,1,2,1,247,0,218,0,184,0,161,0,142,0,123,0, +107,0,91,0,64,0,36,0,17,0,2,0,233,255,199,255,170,255,156,255,147,255,126,255,98,255,75,255,54,255,27,255, +7,255,244,254,213,254,185,254,171,254,148,254,113,254,92,254,87,254,75,254,57,254,42,254,18,254,240,253,218,253,210,253, +195,253,163,253,132,253,115,253,105,253,90,253,74,253,64,253,52,253,33,253,14,253,255,252,237,252,217,252,198,252,178,252, +162,252,157,252,151,252,136,252,121,252,111,252,96,252,74,252,56,252,51,252,45,252,24,252,6,252,2,252,254,251,245,251, +240,251,235,251,220,251,207,251,201,251,185,251,169,251,180,251,198,251,195,251,184,251,179,251,166,251,150,251,151,251,159,251, +156,251,148,251,147,251,148,251,156,251,169,251,168,251,154,251,150,251,155,251,146,251,135,251,151,251,170,251,166,251,157,251, +169,251,184,251,185,251,186,251,201,251,214,251,208,251,197,251,204,251,222,251,225,251,224,251,235,251,247,251,251,251,7,252, +24,252,28,252,25,252,34,252,44,252,48,252,54,252,70,252,87,252,95,252,90,252,88,252,111,252,139,252,142,252,134,252, +145,252,167,252,177,252,177,252,184,252,203,252,221,252,225,252,227,252,235,252,243,252,245,252,1,253,19,253,30,253,42,253, +67,253,89,253,94,253,96,253,106,253,112,253,108,253,116,253,142,253,160,253,161,253,170,253,189,253,194,253,195,253,219,253, +246,253,251,253,254,253,15,254,23,254,16,254,20,254,42,254,65,254,77,254,80,254,78,254,83,254,99,254,122,254,138,254, +143,254,144,254,151,254,164,254,174,254,178,254,185,254,202,254,223,254,226,254,219,254,228,254,251,254,9,255,14,255,23,255, +31,255,37,255,47,255,52,255,47,255,54,255,76,255,88,255,83,255,82,255,90,255,100,255,112,255,127,255,135,255,133,255, +140,255,163,255,176,255,165,255,154,255,164,255,182,255,199,255,214,255,219,255,218,255,225,255,235,255,235,255,235,255,246,255, +3,0,5,0,2,0,6,0,20,0,37,0,50,0,60,0,67,0,69,0,76,0,88,0,89,0,90,0,107,0,122,0, +123,0,129,0,137,0,131,0,132,0,154,0,169,0,164,0,164,0,171,0,174,0,180,0,187,0,192,0,202,0,216,0, +221,0,227,0,240,0,243,0,241,0,255,0,13,1,8,1,3,1,14,1,25,1,27,1,32,1,39,1,36,1,25,1, +23,1,35,1,47,1,48,1,52,1,62,1,64,1,61,1,68,1,73,1,70,1,77,1,92,1,95,1,93,1,98,1, +99,1,92,1,97,1,108,1,98,1,80,1,83,1,101,1,106,1,100,1,104,1,114,1,118,1,120,1,121,1,113,1, +105,1,118,1,137,1,134,1,124,1,128,1,131,1,124,1,126,1,136,1,142,1,146,1,145,1,133,1,127,1,143,1, +155,1,149,1,147,1,157,1,162,1,158,1,161,1,170,1,174,1,174,1,173,1,174,1,173,1,169,1,172,1,185,1, +192,1,186,1,184,1,192,1,192,1,182,1,181,1,190,1,195,1,189,1,186,1,196,1,207,1,208,1,200,1,197,1, +204,1,216,1,223,1,223,1,217,1,216,1,230,1,246,1,246,1,236,1,240,1,4,2,12,2,0,2,250,1,4,2, +11,2,11,2,15,2,18,2,10,2,3,2,13,2,34,2,46,2,49,2,53,2,56,2,53,2,55,2,63,2,62,2, +57,2,68,2,80,2,66,2,49,2,58,2,69,2,63,2,60,2,66,2,62,2,53,2,57,2,66,2,67,2,68,2, +72,2,75,2,80,2,86,2,85,2,80,2,79,2,85,2,85,2,80,2,81,2,87,2,85,2,72,2,56,2,44,2, +44,2,55,2,52,2,37,2,41,2,59,2,53,2,28,2,21,2,27,2,28,2,26,2,24,2,20,2,14,2,3,2, +247,1,246,1,246,1,227,1,210,1,214,1,218,1,210,1,204,1,198,1,187,1,180,1,173,1,158,1,149,1,155,1, +155,1,145,1,134,1,124,1,116,1,117,1,114,1,101,1,87,1,78,1,70,1,69,1,65,1,51,1,40,1,39,1, +29,1,11,1,5,1,7,1,255,0,241,0,234,0,226,0,210,0,189,0,177,0,181,0,185,0,175,0,156,0,143,0, +135,0,122,0,104,0,93,0,90,0,80,0,60,0,42,0,30,0,24,0,26,0,26,0,12,0,251,255,246,255,241,255, +226,255,215,255,210,255,200,255,191,255,181,255,164,255,150,255,149,255,142,255,120,255,105,255,103,255,98,255,89,255,84,255, +78,255,64,255,54,255,47,255,36,255,23,255,13,255,4,255,252,254,251,254,255,254,250,254,234,254,216,254,205,254,204,254, +201,254,186,254,168,254,160,254,154,254,142,254,136,254,139,254,131,254,115,254,114,254,117,254,102,254,85,254,85,254,87,254, +77,254,68,254,69,254,65,254,50,254,37,254,37,254,41,254,39,254,40,254,53,254,66,254,66,254,61,254,48,254,26,254, +18,254,28,254,27,254,13,254,16,254,27,254,18,254,254,253,251,253,3,254,5,254,251,253,238,253,233,253,236,253,237,253, +234,253,237,253,247,253,11,254,34,254,39,254,25,254,23,254,39,254,43,254,26,254,17,254,21,254,23,254,21,254,27,254, +38,254,48,254,61,254,81,254,91,254,84,254,80,254,88,254,84,254,65,254,71,254,106,254,130,254,128,254,129,254,141,254, +148,254,146,254,138,254,132,254,133,254,137,254,144,254,165,254,192,254,199,254,192,254,193,254,199,254,200,254,204,254,216,254, +228,254,237,254,240,254,237,254,238,254,250,254,9,255,19,255,33,255,50,255,54,255,48,255,51,255,64,255,71,255,73,255, +84,255,94,255,93,255,99,255,124,255,137,255,122,255,109,255,113,255,107,255,92,255,96,255,113,255,121,255,133,255,157,255, +166,255,158,255,157,255,166,255,164,255,158,255,163,255,165,255,154,255,150,255,170,255,195,255,199,255,189,255,185,255,185,255, +184,255,179,255,174,255,174,255,177,255,180,255,186,255,198,255,203,255,193,255,181,255,178,255,181,255,175,255,162,255,157,255, +156,255,144,255,124,255,116,255,119,255,121,255,127,255,136,255,137,255,123,255,108,255,99,255,93,255,88,255,82,255,77,255, +75,255,65,255,49,255,41,255,36,255,23,255,16,255,24,255,19,255,253,254,247,254,7,255,13,255,4,255,251,254,241,254, +226,254,216,254,211,254,207,254,203,254,194,254,178,254,160,254,150,254,149,254,144,254,128,254,113,254,105,254,89,254,73,254, +76,254,85,254,78,254,68,254,69,254,62,254,45,254,39,254,40,254,28,254,9,254,252,253,240,253,227,253,216,253,210,253, +213,253,218,253,217,253,208,253,195,253,182,253,178,253,178,253,169,253,159,253,158,253,152,253,135,253,125,253,117,253,99,253, +92,253,95,253,83,253,63,253,65,253,70,253,53,253,33,253,25,253,20,253,20,253,28,253,26,253,15,253,9,253,2,253, +242,252,231,252,229,252,221,252,212,252,210,252,208,252,199,252,191,252,192,252,192,252,184,252,178,252,182,252,186,252,181,252, +178,252,185,252,197,252,200,252,192,252,181,252,176,252,178,252,179,252,179,252,181,252,180,252,175,252,175,252,182,252,184,252, +173,252,163,252,168,252,185,252,196,252,199,252,198,252,200,252,207,252,222,252,232,252,231,252,233,252,248,252,5,253,5,253, +3,253,5,253,9,253,24,253,41,253,41,253,36,253,55,253,83,253,88,253,87,253,102,253,119,253,116,253,111,253,123,253, +139,253,149,253,156,253,167,253,179,253,192,253,204,253,214,253,224,253,235,253,248,253,7,254,27,254,39,254,43,254,51,254, +63,254,75,254,90,254,105,254,106,254,107,254,128,254,150,254,152,254,153,254,167,254,182,254,199,254,223,254,235,254,239,254, +3,255,30,255,48,255,61,255,75,255,82,255,90,255,108,255,125,255,137,255,152,255,163,255,167,255,174,255,185,255,195,255, +207,255,218,255,228,255,247,255,12,0,25,0,39,0,62,0,83,0,97,0,113,0,125,0,132,0,144,0,154,0,154,0, +161,0,179,0,190,0,192,0,201,0,218,0,234,0,249,0,10,1,25,1,32,1,33,1,39,1,57,1,76,1,89,1, +102,1,120,1,138,1,146,1,142,1,135,1,141,1,153,1,163,1,171,1,178,1,181,1,193,1,210,1,215,1,219,1, +245,1,19,2,26,2,22,2,23,2,22,2,26,2,40,2,47,2,43,2,42,2,50,2,61,2,78,2,90,2,84,2, +80,2,96,2,112,2,114,2,117,2,127,2,134,2,139,2,150,2,161,2,165,2,164,2,162,2,161,2,164,2,171,2, +180,2,185,2,187,2,189,2,196,2,205,2,207,2,209,2,219,2,230,2,230,2,227,2,229,2,223,2,210,2,216,2, +240,2,247,2,231,2,222,2,231,2,238,2,235,2,231,2,231,2,230,2,229,2,231,2,235,2,232,2,229,2,232,2, +228,2,215,2,213,2,222,2,221,2,210,2,202,2,195,2,185,2,183,2,187,2,185,2,183,2,186,2,184,2,177,2, +174,2,168,2,158,2,153,2,154,2,149,2,141,2,136,2,128,2,115,2,108,2,113,2,112,2,99,2,91,2,99,2, +101,2,85,2,73,2,79,2,85,2,80,2,68,2,50,2,39,2,44,2,45,2,31,2,21,2,20,2,11,2,2,2, +5,2,14,2,17,2,15,2,6,2,254,1,0,2,1,2,246,1,241,1,248,1,248,1,239,1,232,1,228,1,222,1, +215,1,210,1,210,1,213,1,206,1,197,1,199,1,205,1,203,1,207,1,220,1,224,1,219,1,216,1,212,1,206,1, +202,1,198,1,191,1,183,1,180,1,183,1,187,1,184,1,177,1,180,1,185,1,178,1,171,1,179,1,185,1,184,1, +187,1,190,1,188,1,191,1,200,1,201,1,195,1,195,1,198,1,199,1,195,1,186,1,177,1,181,1,197,1,204,1, +200,1,199,1,205,1,209,1,207,1,209,1,215,1,216,1,211,1,208,1,211,1,218,1,224,1,224,1,220,1,225,1, +233,1,230,1,227,1,238,1,245,1,233,1,229,1,252,1,13,2,2,2,248,1,1,2,7,2,253,1,251,1,3,2, +5,2,3,2,11,2,16,2,8,2,5,2,10,2,13,2,17,2,24,2,19,2,2,2,254,1,7,2,10,2,13,2, +20,2,14,2,254,1,253,1,6,2,5,2,0,2,2,2,254,1,240,1,234,1,238,1,232,1,219,1,222,1,229,1, +214,1,196,1,204,1,215,1,204,1,190,1,188,1,184,1,177,1,178,1,179,1,172,1,159,1,145,1,133,1,130,1, +129,1,125,1,126,1,125,1,108,1,87,1,79,1,79,1,76,1,61,1,40,1,30,1,32,1,22,1,8,1,12,1, +21,1,9,1,247,0,238,0,223,0,208,0,206,0,201,0,181,0,170,0,177,0,176,0,155,0,126,0,107,0,103,0, +99,0,86,0,76,0,73,0,58,0,35,0,26,0,23,0,7,0,249,255,248,255,245,255,236,255,226,255,212,255,186,255, +164,255,159,255,154,255,136,255,121,255,119,255,109,255,81,255,61,255,58,255,48,255,30,255,25,255,24,255,7,255,242,254, +234,254,226,254,213,254,204,254,199,254,186,254,165,254,148,254,140,254,133,254,122,254,114,254,109,254,93,254,72,254,66,254, +63,254,42,254,23,254,23,254,23,254,3,254,243,253,244,253,249,253,242,253,228,253,216,253,211,253,208,253,198,253,187,253, +184,253,185,253,182,253,172,253,156,253,139,253,132,253,130,253,124,253,119,253,122,253,114,253,93,253,83,253,87,253,81,253, +71,253,76,253,78,253,64,253,59,253,71,253,67,253,46,253,37,253,40,253,34,253,24,253,18,253,14,253,19,253,24,253, +9,253,244,252,242,252,245,252,225,252,205,252,211,252,224,252,220,252,206,252,197,252,196,252,195,252,192,252,190,252,191,252, +188,252,178,252,169,252,165,252,165,252,162,252,151,252,142,252,147,252,149,252,137,252,132,252,138,252,136,252,127,252,132,252, +138,252,128,252,120,252,126,252,125,252,114,252,113,252,122,252,124,252,120,252,122,252,121,252,113,252,112,252,124,252,131,252, +125,252,127,252,137,252,137,252,128,252,122,252,119,252,122,252,136,252,141,252,124,252,118,252,134,252,146,252,149,252,160,252, +171,252,173,252,179,252,187,252,189,252,195,252,206,252,205,252,201,252,208,252,215,252,216,252,222,252,227,252,222,252,219,252, +226,252,231,252,231,252,236,252,244,252,251,252,1,253,9,253,21,253,33,253,36,253,38,253,47,253,52,253,48,253,48,253, +53,253,46,253,32,253,36,253,50,253,50,253,37,253,34,253,42,253,51,253,58,253,64,253,67,253,67,253,72,253,73,253, +61,253,52,253,60,253,67,253,61,253,55,253,50,253,37,253,25,253,26,253,26,253,12,253,0,253,252,252,243,252,226,252, +218,252,216,252,205,252,193,252,194,252,194,252,185,252,180,252,176,252,151,252,121,252,117,252,119,252,95,252,64,252,55,252, +46,252,18,252,2,252,5,252,248,251,213,251,185,251,167,251,140,251,114,251,106,251,94,251,65,251,40,251,31,251,12,251, +233,250,206,250,193,250,175,250,146,250,110,250,74,250,46,250,24,250,247,249,200,249,157,249,124,249,97,249,77,249,62,249, +52,249,48,249,42,249,30,249,23,249,15,249,245,248,216,248,208,248,200,248,173,248,147,248,134,248,112,248,84,248,67,248, +51,248,12,248,218,247,187,247,173,247,151,247,120,247,103,247,105,247,104,247,102,247,119,247,140,247,146,247,153,247,165,247, +163,247,146,247,133,247,125,247,116,247,109,247,106,247,108,247,120,247,134,247,143,247,156,247,174,247,187,247,192,247,193,247, +203,247,233,247,22,248,59,248,87,248,125,248,166,248,194,248,210,248,225,248,242,248,9,249,36,249,62,249,94,249,135,249, +178,249,213,249,245,249,22,250,61,250,105,250,150,250,193,250,235,250,12,251,41,251,78,251,123,251,173,251,236,251,48,252, +102,252,147,252,198,252,251,252,51,253,114,253,177,253,233,253,43,254,124,254,201,254,13,255,84,255,158,255,217,255,2,0, +40,0,85,0,142,0,213,0,32,1,100,1,164,1,240,1,63,2,129,2,193,2,13,3,87,3,143,3,201,3,11,4, +75,4,145,4,228,4,50,5,114,5,178,5,245,5,48,6,103,6,175,6,1,7,67,7,117,7,171,7,239,7,59,8, +132,8,193,8,246,8,56,9,137,9,210,9,9,10,60,10,111,10,164,10,225,10,33,11,87,11,142,11,206,11,10,12, +65,12,123,12,175,12,222,12,22,13,78,13,115,13,143,13,177,13,215,13,248,13,19,14,40,14,70,14,114,14,147,14, +164,14,195,14,241,14,18,15,36,15,55,15,79,15,108,15,143,15,174,15,194,15,213,15,239,15,12,16,34,16,39,16, +35,16,37,16,42,16,43,16,45,16,43,16,35,16,39,16,56,16,62,16,56,16,57,16,57,16,43,16,28,16,21,16, +9,16,244,15,222,15,205,15,188,15,170,15,154,15,142,15,122,15,91,15,61,15,32,15,247,14,209,14,186,14,159,14, +116,14,73,14,39,14,5,14,221,13,172,13,126,13,94,13,58,13,0,13,201,12,171,12,136,12,82,12,30,12,238,11, +190,11,154,11,119,11,59,11,245,10,189,10,135,10,69,10,1,10,192,9,125,9,57,9,250,8,192,8,130,8,55,8, +236,7,179,7,124,7,49,7,226,6,162,6,96,6,27,6,231,5,186,5,114,5,27,5,212,4,156,4,91,4,21,4, +209,3,138,3,68,3,6,3,198,2,126,2,61,2,6,2,195,1,119,1,58,1,8,1,202,0,134,0,69,0,255,255, +186,255,128,255,71,255,5,255,195,254,137,254,84,254,35,254,240,253,184,253,128,253,72,253,16,253,223,252,175,252,110,252, +40,252,243,251,198,251,144,251,92,251,52,251,11,251,218,250,170,250,127,250,85,250,41,250,253,249,215,249,180,249,147,249, +117,249,87,249,55,249,30,249,8,249,231,248,193,248,165,248,136,248,95,248,59,248,37,248,13,248,237,247,208,247,189,247, +178,247,164,247,139,247,115,247,105,247,99,247,83,247,61,247,42,247,35,247,34,247,24,247,6,247,255,246,252,246,245,246, +249,246,3,247,251,246,243,246,0,247,3,247,243,246,247,246,17,247,29,247,34,247,48,247,63,247,74,247,88,247,98,247, +102,247,116,247,141,247,161,247,172,247,185,247,212,247,244,247,10,248,29,248,62,248,97,248,114,248,128,248,157,248,187,248, +208,248,234,248,12,249,45,249,69,249,92,249,126,249,168,249,197,249,214,249,241,249,27,250,64,250,96,250,131,250,167,250, +211,250,10,251,56,251,87,251,121,251,162,251,199,251,236,251,17,252,46,252,78,252,125,252,178,252,223,252,4,253,40,253, +77,253,112,253,150,253,193,253,233,253,8,254,42,254,82,254,114,254,146,254,193,254,241,254,18,255,58,255,110,255,146,255, +164,255,197,255,246,255,30,0,59,0,92,0,124,0,156,0,200,0,248,0,23,1,50,1,90,1,130,1,152,1,169,1, +198,1,229,1,3,2,40,2,75,2,100,2,128,2,166,2,197,2,221,2,252,2,29,3,51,3,62,3,74,3,95,3, +126,3,150,3,161,3,175,3,198,3,219,3,238,3,0,4,10,4,19,4,37,4,55,4,62,4,69,4,78,4,84,4, +93,4,113,4,127,4,126,4,126,4,137,4,149,4,150,4,145,4,147,4,158,4,162,4,151,4,137,4,135,4,141,4, +141,4,129,4,124,4,135,4,141,4,125,4,107,4,100,4,90,4,78,4,72,4,60,4,38,4,22,4,14,4,0,4, +238,3,223,3,215,3,214,3,208,3,184,3,154,3,137,3,125,3,105,3,86,3,75,3,57,3,27,3,2,3,248,2, +234,2,205,2,180,2,172,2,158,2,129,2,105,2,90,2,66,2,40,2,29,2,17,2,245,1,213,1,190,1,170,1, +149,1,122,1,92,1,74,1,66,1,42,1,2,1,231,0,218,0,192,0,156,0,130,0,118,0,106,0,84,0,54,0, +26,0,4,0,237,255,208,255,177,255,156,255,144,255,125,255,91,255,55,255,40,255,33,255,5,255,222,254,202,254,198,254, +187,254,165,254,142,254,119,254,97,254,76,254,52,254,31,254,17,254,4,254,238,253,211,253,192,253,179,253,161,253,134,253, +107,253,90,253,80,253,66,253,48,253,32,253,14,253,255,252,247,252,239,252,220,252,203,252,202,252,199,252,180,252,157,252, +145,252,138,252,129,252,124,252,118,252,104,252,88,252,77,252,72,252,66,252,60,252,58,252,57,252,49,252,39,252,36,252, +36,252,35,252,37,252,41,252,36,252,32,252,35,252,34,252,20,252,16,252,31,252,41,252,34,252,33,252,47,252,48,252, +34,252,31,252,39,252,36,252,32,252,47,252,63,252,63,252,66,252,76,252,77,252,73,252,83,252,102,252,116,252,130,252, +145,252,154,252,158,252,168,252,181,252,188,252,191,252,202,252,220,252,230,252,232,252,242,252,0,253,6,253,15,253,32,253, +41,253,44,253,58,253,77,253,86,253,100,253,132,253,158,253,165,253,170,253,183,253,202,253,224,253,244,253,251,253,4,254, +28,254,50,254,52,254,57,254,78,254,102,254,120,254,135,254,141,254,147,254,178,254,218,254,234,254,232,254,242,254,10,255, +38,255,67,255,83,255,85,255,100,255,130,255,150,255,155,255,168,255,190,255,204,255,216,255,240,255,11,0,26,0,36,0, +52,0,71,0,79,0,80,0,93,0,118,0,141,0,159,0,175,0,186,0,198,0,216,0,230,0,235,0,248,0,14,1, +36,1,59,1,78,1,83,1,88,1,109,1,133,1,142,1,147,1,164,1,182,1,193,1,198,1,204,1,214,1,226,1, +235,1,241,1,249,1,7,2,21,2,27,2,32,2,42,2,46,2,43,2,55,2,84,2,94,2,82,2,86,2,108,2, +117,2,111,2,108,2,112,2,116,2,121,2,124,2,121,2,124,2,142,2,159,2,162,2,156,2,156,2,158,2,152,2, +140,2,139,2,147,2,158,2,166,2,159,2,145,2,146,2,155,2,148,2,136,2,140,2,139,2,123,2,127,2,145,2, +138,2,110,2,99,2,104,2,107,2,111,2,109,2,91,2,72,2,67,2,58,2,38,2,26,2,25,2,18,2,12,2, +21,2,25,2,6,2,245,1,253,1,1,2,235,1,211,1,203,1,195,1,183,1,178,1,170,1,155,1,147,1,146,1, +136,1,121,1,115,1,106,1,84,1,65,1,58,1,55,1,48,1,40,1,31,1,19,1,8,1,3,1,255,0,249,0, +239,0,226,0,209,0,192,0,179,0,173,0,168,0,156,0,142,0,137,0,138,0,131,0,116,0,111,0,117,0,113,0, +96,0,78,0,67,0,64,0,64,0,56,0,43,0,37,0,40,0,35,0,24,0,18,0,14,0,6,0,251,255,244,255, +248,255,253,255,248,255,241,255,242,255,242,255,231,255,222,255,220,255,215,255,211,255,215,255,218,255,207,255,196,255,201,255, +210,255,205,255,192,255,196,255,215,255,218,255,200,255,198,255,225,255,249,255,246,255,235,255,236,255,243,255,246,255,249,255, +1,0,3,0,254,255,251,255,1,0,10,0,22,0,36,0,44,0,43,0,38,0,39,0,49,0,61,0,68,0,68,0, +69,0,81,0,98,0,108,0,113,0,121,0,129,0,130,0,133,0,145,0,157,0,160,0,164,0,184,0,203,0,207,0, +209,0,227,0,249,0,3,1,10,1,19,1,24,1,26,1,35,1,53,1,71,1,79,1,84,1,99,1,126,1,146,1, +148,1,142,1,143,1,150,1,162,1,180,1,196,1,209,1,221,1,234,1,247,1,253,1,254,1,2,2,21,2,42,2, +47,2,45,2,55,2,72,2,83,2,96,2,114,2,126,2,128,2,134,2,147,2,162,2,175,2,183,2,194,2,205,2, +209,2,211,2,230,2,0,3,6,3,1,3,8,3,22,3,30,3,35,3,40,3,43,3,49,3,58,3,64,3,64,3, +64,3,69,3,79,3,87,3,88,3,86,3,85,3,88,3,98,3,112,3,118,3,111,3,107,3,116,3,119,3,107,3, +95,3,100,3,111,3,109,3,99,3,95,3,93,3,90,3,92,3,94,3,83,3,70,3,67,3,66,3,59,3,55,3, +55,3,51,3,44,3,38,3,25,3,12,3,8,3,1,3,234,2,211,2,205,2,202,2,189,2,174,2,168,2,154,2, +129,2,114,2,116,2,113,2,94,2,75,2,60,2,47,2,38,2,27,2,5,2,246,1,244,1,223,1,184,1,166,1, +168,1,158,1,138,1,125,1,111,1,95,1,90,1,89,1,73,1,44,1,16,1,252,0,239,0,228,0,212,0,190,0, +169,0,156,0,152,0,141,0,114,0,85,0,68,0,58,0,43,0,25,0,8,0,249,255,238,255,227,255,211,255,195,255, +183,255,169,255,149,255,131,255,123,255,111,255,86,255,62,255,54,255,45,255,23,255,9,255,6,255,249,254,230,254,226,254, +226,254,213,254,198,254,192,254,196,254,204,254,198,254,176,254,158,254,152,254,145,254,129,254,114,254,106,254,109,254,114,254, +103,254,85,254,79,254,76,254,63,254,50,254,42,254,35,254,29,254,27,254,24,254,25,254,33,254,44,254,51,254,49,254, +39,254,39,254,53,254,54,254,34,254,23,254,27,254,27,254,30,254,44,254,54,254,57,254,69,254,84,254,88,254,84,254, +71,254,51,254,44,254,65,254,93,254,107,254,112,254,119,254,127,254,132,254,138,254,143,254,137,254,129,254,135,254,143,254, +141,254,144,254,168,254,193,254,204,254,207,254,203,254,192,254,188,254,191,254,198,254,212,254,225,254,223,254,221,254,233,254, +250,254,5,255,18,255,28,255,30,255,33,255,38,255,38,255,38,255,42,255,48,255,59,255,75,255,91,255,101,255,101,255, +98,255,103,255,110,255,96,255,75,255,77,255,94,255,104,255,118,255,134,255,136,255,133,255,144,255,150,255,137,255,128,255, +134,255,143,255,148,255,157,255,170,255,174,255,173,255,178,255,184,255,175,255,162,255,167,255,180,255,182,255,182,255,185,255, +179,255,170,255,177,255,190,255,194,255,195,255,197,255,190,255,178,255,176,255,181,255,185,255,186,255,184,255,180,255,179,255, +185,255,192,255,189,255,181,255,179,255,175,255,157,255,147,255,159,255,166,255,153,255,145,255,150,255,152,255,147,255,141,255, +132,255,125,255,123,255,119,255,111,255,112,255,121,255,128,255,131,255,122,255,103,255,89,255,87,255,89,255,88,255,79,255, +64,255,53,255,47,255,39,255,33,255,35,255,28,255,12,255,8,255,9,255,254,254,245,254,249,254,245,254,227,254,220,254, +229,254,233,254,224,254,211,254,204,254,202,254,201,254,193,254,181,254,172,254,172,254,170,254,157,254,140,254,135,254,136,254, +133,254,131,254,130,254,122,254,111,254,106,254,106,254,106,254,100,254,87,254,76,254,74,254,77,254,76,254,68,254,51,254, +34,254,37,254,50,254,42,254,16,254,8,254,22,254,28,254,12,254,253,253,0,254,6,254,1,254,249,253,244,253,233,253, +219,253,215,253,218,253,219,253,217,253,212,253,202,253,194,253,194,253,194,253,196,253,204,253,206,253,191,253,177,253,173,253, +177,253,184,253,187,253,177,253,165,253,165,253,160,253,140,253,125,253,129,253,140,253,143,253,142,253,139,253,136,253,139,253, +147,253,155,253,157,253,153,253,146,253,141,253,145,253,151,253,148,253,146,253,155,253,164,253,160,253,153,253,155,253,160,253, +158,253,153,253,155,253,167,253,178,253,183,253,192,253,204,253,204,253,196,253,202,253,216,253,214,253,205,253,208,253,213,253, +211,253,214,253,228,253,240,253,249,253,6,254,16,254,15,254,15,254,24,254,29,254,25,254,22,254,27,254,33,254,44,254, +63,254,74,254,70,254,66,254,71,254,78,254,83,254,93,254,99,254,98,254,106,254,126,254,139,254,138,254,140,254,152,254, +162,254,161,254,154,254,149,254,149,254,151,254,151,254,154,254,168,254,180,254,177,254,180,254,201,254,208,254,188,254,180,254, +195,254,199,254,190,254,196,254,206,254,195,254,182,254,187,254,193,254,184,254,177,254,182,254,180,254,167,254,163,254,174,254, +181,254,176,254,178,254,190,254,198,254,197,254,192,254,178,254,162,254,161,254,164,254,148,254,130,254,131,254,133,254,118,254, +107,254,109,254,104,254,89,254,89,254,100,254,94,254,75,254,71,254,77,254,69,254,52,254,40,254,27,254,9,254,255,253, +255,253,250,253,237,253,227,253,219,253,210,253,203,253,197,253,187,253,176,253,168,253,164,253,164,253,159,253,148,253,141,253, +138,253,130,253,116,253,99,253,81,253,66,253,58,253,52,253,40,253,32,253,31,253,31,253,28,253,25,253,28,253,38,253, +37,253,19,253,4,253,255,252,248,252,242,252,244,252,243,252,237,252,245,252,5,253,8,253,6,253,13,253,16,253,9,253, +3,253,6,253,13,253,21,253,33,253,50,253,68,253,78,253,83,253,92,253,102,253,105,253,111,253,124,253,132,253,135,253, +146,253,170,253,201,253,227,253,245,253,9,254,35,254,55,254,70,254,90,254,111,254,127,254,153,254,192,254,225,254,247,254, +18,255,55,255,90,255,118,255,146,255,180,255,212,255,241,255,16,0,48,0,79,0,122,0,172,0,211,0,243,0,32,1, +73,1,96,1,123,1,161,1,195,1,234,1,31,2,75,2,107,2,150,2,204,2,248,2,32,3,77,3,117,3,153,3, +194,3,238,3,27,4,82,4,135,4,175,4,211,4,3,5,57,5,104,5,143,5,185,5,230,5,13,6,54,6,103,6, +146,6,182,6,232,6,32,7,75,7,116,7,168,7,212,7,245,7,31,8,73,8,102,8,136,8,187,8,234,8,10,9, +46,9,89,9,127,9,162,9,199,9,235,9,4,10,31,10,69,10,104,10,128,10,164,10,213,10,242,10,251,10,22,11, +65,11,91,11,101,11,123,11,156,11,181,11,197,11,217,11,243,11,5,12,13,12,28,12,54,12,78,12,92,12,98,12, +97,12,104,12,130,12,147,12,135,12,126,12,139,12,149,12,147,12,150,12,152,12,144,12,137,12,134,12,131,12,129,12, +125,12,108,12,91,12,85,12,79,12,69,12,62,12,48,12,24,12,4,12,251,11,236,11,211,11,187,11,168,11,149,11, +120,11,89,11,61,11,36,11,13,11,248,10,219,10,179,10,148,10,128,10,97,10,52,10,14,10,239,9,204,9,166,9, +127,9,87,9,51,9,17,9,233,8,190,8,147,8,100,8,52,8,6,8,216,7,173,7,135,7,95,7,47,7,250,6, +201,6,158,6,116,6,67,6,14,6,223,5,179,5,130,5,78,5,26,5,238,4,202,4,155,4,89,4,36,4,2,4, +211,3,144,3,83,3,29,3,228,2,176,2,131,2,71,2,9,2,226,1,191,1,134,1,71,1,22,1,237,0,185,0, +125,0,67,0,17,0,227,255,177,255,127,255,77,255,29,255,242,254,199,254,146,254,84,254,27,254,232,253,184,253,141,253, +100,253,55,253,8,253,220,252,175,252,127,252,82,252,42,252,2,252,215,251,170,251,127,251,82,251,38,251,254,250,219,250, +186,250,153,250,118,250,81,250,42,250,2,250,217,249,184,249,154,249,115,249,76,249,54,249,34,249,251,248,212,248,195,248, +184,248,154,248,118,248,91,248,68,248,42,248,17,248,4,248,253,247,238,247,211,247,185,247,168,247,154,247,138,247,121,247, +108,247,96,247,82,247,61,247,39,247,26,247,19,247,16,247,15,247,11,247,1,247,249,246,250,246,244,246,229,246,222,246, +230,246,233,246,221,246,212,246,222,246,238,246,242,246,236,246,234,246,237,246,239,246,241,246,247,246,254,246,1,247,5,247, +11,247,16,247,24,247,42,247,57,247,63,247,69,247,81,247,92,247,105,247,121,247,128,247,126,247,134,247,158,247,178,247, +192,247,206,247,219,247,232,247,247,247,6,248,13,248,20,248,38,248,60,248,74,248,84,248,99,248,119,248,138,248,155,248, +177,248,199,248,213,248,219,248,227,248,242,248,4,249,21,249,37,249,53,249,74,249,100,249,119,249,122,249,125,249,142,249, +163,249,176,249,187,249,198,249,203,249,213,249,236,249,0,250,8,250,21,250,40,250,50,250,54,250,69,250,77,250,72,250, +79,250,103,250,115,250,108,250,111,250,126,250,134,250,134,250,140,250,153,250,156,250,145,250,136,250,138,250,144,250,146,250, +144,250,142,250,148,250,158,250,155,250,139,250,131,250,135,250,136,250,134,250,132,250,124,250,115,250,118,250,116,250,99,250, +90,250,96,250,94,250,78,250,65,250,62,250,60,250,52,250,35,250,16,250,8,250,8,250,2,250,248,249,237,249,221,249, +206,249,206,249,213,249,203,249,175,249,157,249,156,249,150,249,136,249,130,249,131,249,124,249,107,249,90,249,75,249,62,249, +54,249,45,249,36,249,29,249,18,249,2,249,252,248,1,249,2,249,254,248,255,248,5,249,4,249,246,248,232,248,239,248, +3,249,7,249,253,248,7,249,31,249,38,249,26,249,14,249,7,249,3,249,8,249,16,249,17,249,17,249,29,249,53,249, +69,249,65,249,58,249,73,249,103,249,126,249,139,249,147,249,153,249,169,249,196,249,218,249,236,249,9,250,47,250,79,250, +102,250,120,250,136,250,155,250,178,250,200,250,225,250,3,251,39,251,73,251,103,251,133,251,172,251,217,251,252,251,20,252, +50,252,83,252,114,252,156,252,212,252,10,253,57,253,104,253,155,253,197,253,230,253,11,254,52,254,91,254,133,254,188,254, +245,254,34,255,78,255,132,255,181,255,227,255,28,0,85,0,129,0,175,0,230,0,22,1,65,1,119,1,180,1,242,1, +50,2,110,2,164,2,218,2,17,3,68,3,118,3,163,3,204,3,255,3,64,4,126,4,181,4,238,4,40,5,91,5, +133,5,170,5,216,5,14,6,57,6,92,6,146,6,213,6,11,7,59,7,114,7,171,7,225,7,24,8,72,8,111,8, +153,8,199,8,239,8,18,9,60,9,110,9,156,9,195,9,235,9,20,10,51,10,79,10,119,10,162,10,189,10,212,10, +249,10,34,11,69,11,107,11,147,11,181,11,214,11,247,11,17,12,34,12,46,12,63,12,93,12,125,12,143,12,154,12, +178,12,209,12,232,12,245,12,252,12,12,13,37,13,53,13,56,13,64,13,78,13,90,13,100,13,112,13,120,13,124,13, +125,13,124,13,129,13,139,13,138,13,131,13,133,13,135,13,128,13,122,13,118,13,107,13,101,13,104,13,98,13,81,13, +67,13,57,13,45,13,32,13,18,13,254,12,234,12,219,12,205,12,191,12,172,12,149,12,132,12,118,12,91,12,55,12, +32,12,21,12,3,12,226,11,190,11,163,11,141,11,116,11,83,11,49,11,16,11,241,10,210,10,172,10,130,10,96,10, +63,10,22,10,241,9,218,9,188,9,139,9,88,9,51,9,22,9,240,8,190,8,138,8,93,8,53,8,13,8,233,7, +196,7,153,7,110,7,69,7,22,7,221,6,167,6,125,6,85,6,38,6,238,5,187,5,145,5,106,5,64,5,19,5, +224,4,169,4,121,4,75,4,21,4,221,3,171,3,122,3,76,3,36,3,246,2,190,2,141,2,101,2,53,2,250,1, +196,1,147,1,93,1,36,1,236,0,187,0,147,0,108,0,56,0,254,255,204,255,162,255,118,255,74,255,27,255,228,254, +176,254,138,254,99,254,46,254,253,253,217,253,176,253,122,253,76,253,40,253,252,252,199,252,150,252,113,252,81,252,44,252, +255,251,215,251,185,251,152,251,112,251,71,251,37,251,3,251,223,250,186,250,154,250,130,250,104,250,68,250,36,250,16,250, +248,249,213,249,184,249,164,249,140,249,109,249,85,249,66,249,46,249,30,249,18,249,251,248,221,248,205,248,205,248,192,248, +162,248,144,248,141,248,131,248,117,248,114,248,112,248,96,248,81,248,76,248,70,248,55,248,47,248,51,248,57,248,54,248, +48,248,47,248,53,248,58,248,57,248,48,248,41,248,49,248,64,248,72,248,67,248,62,248,71,248,93,248,113,248,117,248, +116,248,120,248,128,248,141,248,168,248,195,248,203,248,204,248,211,248,227,248,253,248,30,249,49,249,51,249,64,249,99,249, +129,249,133,249,125,249,138,249,180,249,227,249,248,249,248,249,0,250,36,250,86,250,124,250,132,250,130,250,147,250,185,250, +225,250,254,250,11,251,19,251,50,251,105,251,149,251,159,251,161,251,190,251,236,251,13,252,33,252,56,252,89,252,128,252, +163,252,186,252,209,252,245,252,24,253,41,253,63,253,105,253,143,253,163,253,183,253,212,253,247,253,32,254,69,254,94,254, +119,254,154,254,187,254,215,254,246,254,22,255,47,255,73,255,101,255,127,255,157,255,188,255,209,255,225,255,255,255,43,0, +82,0,100,0,105,0,128,0,173,0,211,0,228,0,243,0,14,1,51,1,88,1,114,1,130,1,147,1,172,1,197,1, +217,1,233,1,247,1,10,2,32,2,50,2,74,2,109,2,136,2,143,2,148,2,169,2,197,2,216,2,224,2,230,2, +247,2,15,3,35,3,44,3,49,3,62,3,91,3,119,3,123,3,114,3,118,3,136,3,151,3,151,3,140,3,137,3, +162,3,191,3,194,3,179,3,177,3,193,3,209,3,206,3,190,3,186,3,206,3,225,3,228,3,223,3,213,3,207,3, +223,3,244,3,237,3,214,3,204,3,206,3,205,3,196,3,179,3,163,3,162,3,166,3,157,3,149,3,150,3,144,3, +130,3,121,3,114,3,100,3,82,3,68,3,59,3,52,3,44,3,32,3,17,3,4,3,255,2,245,2,219,2,186,2, +169,2,160,2,146,2,129,2,113,2,96,2,82,2,71,2,49,2,22,2,9,2,2,2,238,1,205,1,173,1,149,1, +136,1,132,1,125,1,105,1,84,1,70,1,61,1,42,1,11,1,234,0,210,0,194,0,179,0,155,0,125,0,108,0, +107,0,100,0,75,0,45,0,21,0,1,0,241,255,224,255,201,255,181,255,170,255,158,255,143,255,130,255,110,255,87,255, +79,255,77,255,55,255,15,255,247,254,245,254,241,254,225,254,205,254,187,254,174,254,163,254,147,254,125,254,106,254,99,254, +97,254,83,254,61,254,46,254,45,254,45,254,42,254,32,254,14,254,251,253,241,253,236,253,226,253,209,253,193,253,184,253, +180,253,178,253,176,253,166,253,148,253,138,253,137,253,134,253,125,253,119,253,112,253,99,253,89,253,88,253,87,253,84,253, +80,253,73,253,65,253,61,253,60,253,56,253,52,253,46,253,39,253,35,253,33,253,26,253,17,253,16,253,22,253,21,253, +8,253,254,252,6,253,18,253,15,253,0,253,251,252,3,253,9,253,4,253,254,252,254,252,0,253,2,253,3,253,2,253, +251,252,243,252,247,252,8,253,18,253,10,253,253,252,247,252,251,252,1,253,5,253,6,253,6,253,7,253,11,253,13,253, +13,253,14,253,19,253,25,253,26,253,25,253,25,253,21,253,17,253,24,253,36,253,41,253,39,253,42,253,49,253,57,253, +64,253,65,253,60,253,60,253,65,253,64,253,59,253,61,253,68,253,75,253,87,253,99,253,95,253,84,253,83,253,90,253, +92,253,89,253,88,253,91,253,97,253,106,253,111,253,107,253,100,253,101,253,110,253,114,253,109,253,104,253,104,253,105,253, +99,253,86,253,84,253,97,253,109,253,104,253,96,253,97,253,101,253,108,253,112,253,102,253,84,253,85,253,98,253,99,253, +90,253,90,253,94,253,91,253,84,253,76,253,69,253,69,253,74,253,72,253,55,253,37,253,37,253,55,253,66,253,54,253, +30,253,10,253,8,253,20,253,25,253,11,253,254,252,2,253,5,253,246,252,231,252,228,252,230,252,229,252,226,252,217,252, +204,252,199,252,200,252,201,252,202,252,203,252,194,252,167,252,134,252,122,252,140,252,166,252,164,252,132,252,104,252,100,252, +109,252,104,252,85,252,77,252,91,252,102,252,86,252,48,252,16,252,14,252,33,252,47,252,41,252,18,252,242,251,215,251, +209,251,223,251,231,251,226,251,217,251,206,251,188,251,174,251,175,251,185,251,194,251,200,251,200,251,190,251,169,251,147,251, +140,251,162,251,205,251,234,251,227,251,202,251,195,251,209,251,224,251,232,251,240,251,243,251,242,251,250,251,15,252,39,252, +61,252,91,252,132,252,170,252,190,252,186,252,170,252,168,252,195,252,238,252,12,253,21,253,22,253,33,253,50,253,72,253, +101,253,131,253,153,253,169,253,186,253,200,253,214,253,253,253,65,254,131,254,172,254,195,254,213,254,239,254,26,255,68,255, +94,255,124,255,170,255,199,255,203,255,226,255,36,0,112,0,168,0,207,0,240,0,24,1,74,1,114,1,135,1,164,1, +216,1,16,2,55,2,82,2,111,2,160,2,227,2,24,3,34,3,32,3,65,3,128,3,179,3,209,3,246,3,49,4, +117,4,169,4,194,4,201,4,218,4,1,5,45,5,77,5,107,5,147,5,193,5,243,5,42,6,91,6,127,6,164,6, +214,6,9,7,42,7,58,7,77,7,113,7,159,7,210,7,3,8,39,8,59,8,74,8,94,8,123,8,151,8,165,8, +168,8,185,8,221,8,251,8,5,9,22,9,62,9,108,9,138,9,148,9,149,9,154,9,164,9,174,9,182,9,197,9, +220,9,241,9,253,9,3,10,15,10,39,10,65,10,78,10,73,10,64,10,69,10,85,10,95,10,88,10,73,10,69,10, +78,10,88,10,83,10,65,10,47,10,45,10,48,10,33,10,255,9,231,9,235,9,248,9,240,9,207,9,170,9,149,9, +148,9,144,9,108,9,56,9,33,9,37,9,30,9,248,8,202,8,175,8,168,8,161,8,134,8,96,8,70,8,58,8, +45,8,21,8,245,7,216,7,198,7,180,7,150,7,111,7,73,7,44,7,23,7,253,6,214,6,174,6,146,6,119,6, +82,6,47,6,16,6,242,5,209,5,171,5,127,5,86,5,51,5,14,5,231,4,197,4,168,4,135,4,97,4,64,4, +40,4,17,4,240,3,205,3,175,3,144,3,107,3,73,3,46,3,21,3,250,2,217,2,173,2,129,2,96,2,71,2, +49,2,23,2,242,1,205,1,178,1,152,1,113,1,68,1,27,1,0,1,239,0,213,0,170,0,133,0,116,0,98,0, +64,0,30,0,255,255,221,255,185,255,153,255,124,255,96,255,71,255,48,255,29,255,11,255,243,254,218,254,196,254,174,254, +150,254,122,254,90,254,63,254,48,254,33,254,10,254,249,253,243,253,245,253,0,254,6,254,229,253,156,253,98,253,88,253, +103,253,102,253,77,253,61,253,70,253,72,253,36,253,240,252,217,252,226,252,227,252,193,252,146,252,124,252,141,252,172,252, +181,252,169,252,164,252,168,252,149,252,99,252,58,252,58,252,87,252,116,252,122,252,97,252,69,252,72,252,91,252,89,252, +72,252,71,252,89,252,98,252,77,252,34,252,5,252,16,252,43,252,48,252,36,252,39,252,58,252,67,252,56,252,42,252, +38,252,42,252,40,252,25,252,11,252,17,252,36,252,48,252,49,252,53,252,69,252,86,252,90,252,72,252,57,252,68,252, +95,252,102,252,86,252,78,252,90,252,107,252,106,252,89,252,87,252,117,252,153,252,163,252,159,252,166,252,181,252,184,252, +167,252,139,252,129,252,149,252,171,252,171,252,164,252,173,252,197,252,221,252,232,252,223,252,205,252,196,252,205,252,217,252, +214,252,206,252,214,252,240,252,9,253,23,253,24,253,15,253,10,253,20,253,36,253,45,253,50,253,49,253,42,253,43,253, +57,253,68,253,70,253,75,253,86,253,95,253,99,253,96,253,92,253,96,253,105,253,108,253,103,253,101,253,112,253,130,253, +137,253,130,253,125,253,134,253,143,253,142,253,139,253,143,253,158,253,173,253,170,253,155,253,152,253,170,253,187,253,191,253, +187,253,183,253,183,253,191,253,207,253,225,253,238,253,241,253,238,253,234,253,229,253,222,253,217,253,219,253,233,253,0,254, +11,254,2,254,247,253,252,253,11,254,22,254,27,254,26,254,25,254,27,254,29,254,25,254,17,254,16,254,31,254,53,254, +62,254,51,254,40,254,50,254,69,254,70,254,59,254,55,254,63,254,71,254,74,254,71,254,66,254,72,254,91,254,103,254, +99,254,95,254,100,254,103,254,99,254,94,254,90,254,95,254,108,254,118,254,120,254,123,254,125,254,117,254,106,254,105,254, +117,254,129,254,131,254,120,254,112,254,121,254,137,254,140,254,130,254,124,254,131,254,142,254,142,254,130,254,126,254,140,254, +153,254,146,254,131,254,130,254,139,254,140,254,135,254,135,254,135,254,135,254,143,254,150,254,143,254,134,254,142,254,153,254, +151,254,142,254,137,254,137,254,141,254,141,254,134,254,132,254,147,254,166,254,172,254,165,254,152,254,142,254,144,254,144,254, +136,254,131,254,139,254,150,254,156,254,159,254,161,254,164,254,168,254,166,254,160,254,155,254,152,254,147,254,150,254,158,254, +165,254,170,254,179,254,188,254,191,254,185,254,174,254,163,254,157,254,156,254,164,254,174,254,177,254,178,254,188,254,201,254, +209,254,211,254,212,254,209,254,202,254,199,254,201,254,203,254,205,254,211,254,224,254,239,254,249,254,253,254,251,254,246,254, +246,254,254,254,4,255,1,255,252,254,1,255,18,255,35,255,41,255,37,255,39,255,52,255,64,255,67,255,68,255,71,255, +75,255,78,255,78,255,81,255,93,255,107,255,114,255,116,255,121,255,129,255,134,255,132,255,127,255,126,255,134,255,147,255, +158,255,165,255,170,255,177,255,190,255,205,255,217,255,220,255,218,255,221,255,225,255,225,255,220,255,220,255,228,255,242,255, +2,0,14,0,26,0,40,0,48,0,47,0,45,0,47,0,50,0,52,0,57,0,64,0,74,0,89,0,102,0,109,0, +110,0,112,0,121,0,130,0,130,0,125,0,128,0,139,0,150,0,160,0,170,0,180,0,193,0,205,0,208,0,209,0, +218,0,226,0,226,0,229,0,240,0,246,0,246,0,247,0,254,0,9,1,18,1,25,1,31,1,38,1,46,1,51,1, +54,1,58,1,62,1,61,1,56,1,60,1,77,1,90,1,88,1,82,1,84,1,92,1,99,1,102,1,102,1,105,1, +110,1,108,1,105,1,112,1,120,1,119,1,114,1,116,1,121,1,125,1,126,1,124,1,124,1,127,1,129,1,127,1, +122,1,114,1,112,1,118,1,124,1,126,1,126,1,125,1,123,1,126,1,132,1,134,1,131,1,125,1,116,1,111,1, +111,1,110,1,107,1,107,1,108,1,110,1,115,1,122,1,121,1,116,1,117,1,119,1,113,1,102,1,93,1,81,1, +72,1,74,1,84,1,89,1,89,1,91,1,93,1,91,1,88,1,86,1,86,1,81,1,72,1,64,1,58,1,55,1, +54,1,55,1,56,1,56,1,63,1,71,1,66,1,58,1,60,1,64,1,56,1,43,1,35,1,28,1,27,1,36,1, +43,1,36,1,32,1,39,1,41,1,35,1,32,1,31,1,26,1,23,1,27,1,24,1,13,1,8,1,12,1,13,1, +15,1,23,1,29,1,25,1,19,1,16,1,9,1,2,1,1,1,0,1,254,0,1,1,0,1,249,0,249,0,3,1, +14,1,19,1,18,1,9,1,4,1,8,1,10,1,0,1,249,0,255,0,6,1,9,1,10,1,12,1,14,1,16,1, +16,1,15,1,12,1,9,1,14,1,26,1,30,1,27,1,26,1,28,1,28,1,27,1,27,1,23,1,21,1,27,1, +31,1,28,1,28,1,41,1,60,1,65,1,53,1,41,1,43,1,48,1,45,1,37,1,34,1,39,1,44,1,42,1, +38,1,40,1,50,1,60,1,67,1,69,1,64,1,56,1,51,1,46,1,41,1,44,1,51,1,55,1,56,1,61,1, +64,1,61,1,60,1,63,1,61,1,51,1,39,1,32,1,32,1,34,1,38,1,43,1,50,1,54,1,52,1,44,1, +39,1,41,1,43,1,37,1,28,1,21,1,16,1,12,1,10,1,9,1,13,1,21,1,28,1,23,1,10,1,0,1, +255,0,254,0,248,0,241,0,241,0,242,0,239,0,235,0,234,0,233,0,230,0,225,0,218,0,204,0,187,0,181,0, +185,0,189,0,190,0,189,0,185,0,182,0,184,0,185,0,174,0,158,0,147,0,139,0,132,0,126,0,122,0,126,0, +134,0,131,0,119,0,122,0,131,0,124,0,107,0,101,0,103,0,98,0,88,0,77,0,71,0,77,0,89,0,90,0, +80,0,72,0,67,0,64,0,59,0,51,0,43,0,40,0,36,0,28,0,24,0,26,0,28,0,29,0,28,0,20,0, +8,0,6,0,12,0,13,0,0,0,246,255,249,255,250,255,242,255,236,255,235,255,239,255,255,255,15,0,10,0,248,255, +241,255,238,255,225,255,214,255,213,255,208,255,204,255,211,255,219,255,217,255,217,255,229,255,240,255,235,255,217,255,198,255, +186,255,179,255,174,255,175,255,179,255,180,255,180,255,181,255,180,255,176,255,170,255,162,255,155,255,154,255,152,255,141,255, +131,255,130,255,138,255,148,255,153,255,149,255,140,255,131,255,121,255,108,255,103,255,106,255,109,255,111,255,111,255,108,255, +102,255,96,255,95,255,93,255,89,255,86,255,83,255,77,255,70,255,66,255,65,255,68,255,75,255,77,255,69,255,59,255, +59,255,62,255,60,255,58,255,58,255,53,255,44,255,42,255,48,255,52,255,51,255,53,255,59,255,55,255,43,255,35,255, +34,255,36,255,39,255,43,255,46,255,47,255,49,255,50,255,51,255,53,255,52,255,48,255,45,255,46,255,46,255,44,255, +44,255,48,255,53,255,59,255,62,255,60,255,53,255,56,255,72,255,80,255,74,255,66,255,63,255,55,255,52,255,63,255, +71,255,70,255,75,255,86,255,87,255,75,255,68,255,72,255,78,255,79,255,74,255,67,255,63,255,69,255,85,255,99,255, +103,255,104,255,109,255,108,255,100,255,91,255,86,255,88,255,99,255,107,255,100,255,96,255,105,255,114,255,120,255,131,255, +138,255,132,255,121,255,118,255,120,255,124,255,127,255,126,255,124,255,130,255,144,255,154,255,157,255,156,255,158,255,163,255, +170,255,171,255,162,255,148,255,144,255,156,255,170,255,178,255,181,255,182,255,187,255,198,255,205,255,199,255,193,255,197,255, +197,255,186,255,181,255,192,255,204,255,208,255,208,255,214,255,224,255,230,255,230,255,227,255,221,255,219,255,224,255,227,255, +218,255,207,255,210,255,224,255,237,255,241,255,235,255,230,255,235,255,247,255,253,255,247,255,233,255,225,255,229,255,237,255, +237,255,232,255,234,255,246,255,2,0,9,0,3,0,244,255,237,255,242,255,244,255,231,255,220,255,226,255,244,255,3,0, +10,0,8,0,3,0,3,0,5,0,3,0,249,255,239,255,232,255,233,255,243,255,248,255,245,255,246,255,3,0,17,0, +21,0,13,0,0,0,2,0,13,0,5,0,233,255,216,255,221,255,231,255,239,255,244,255,246,255,254,255,13,0,17,0, +3,0,244,255,236,255,226,255,217,255,215,255,220,255,225,255,235,255,250,255,4,0,6,0,5,0,3,0,249,255,231,255, +220,255,216,255,216,255,217,255,216,255,212,255,218,255,240,255,5,0,10,0,3,0,248,255,239,255,234,255,222,255,202,255, +191,255,198,255,210,255,224,255,237,255,241,255,237,255,235,255,232,255,223,255,216,255,208,255,192,255,181,255,188,255,203,255, +214,255,214,255,209,255,208,255,213,255,215,255,202,255,183,255,173,255,177,255,184,255,186,255,188,255,197,255,207,255,212,255, +211,255,208,255,201,255,194,255,191,255,185,255,175,255,169,255,168,255,171,255,178,255,190,255,199,255,199,255,195,255,189,255, +182,255,171,255,161,255,159,255,163,255,164,255,166,255,170,255,174,255,173,255,173,255,174,255,173,255,167,255,157,255,147,255, +143,255,146,255,152,255,156,255,158,255,162,255,169,255,168,255,162,255,154,255,150,255,152,255,155,255,153,255,143,255,131,255, +129,255,136,255,148,255,158,255,162,255,164,255,166,255,161,255,149,255,136,255,127,255,123,255,127,255,132,255,131,255,131,255, +138,255,149,255,159,255,165,255,161,255,151,255,140,255,133,255,127,255,125,255,131,255,140,255,144,255,144,255,148,255,157,255, +164,255,160,255,148,255,136,255,136,255,147,255,150,255,139,255,131,255,137,255,147,255,156,255,163,255,166,255,169,255,177,255, +179,255,166,255,152,255,146,255,146,255,154,255,167,255,171,255,169,255,173,255,178,255,177,255,178,255,181,255,175,255,163,255, +157,255,155,255,151,255,149,255,152,255,163,255,173,255,176,255,174,255,177,255,185,255,189,255,185,255,179,255,174,255,174,255, +177,255,178,255,177,255,179,255,187,255,197,255,197,255,187,255,180,255,182,255,186,255,188,255,186,255,181,255,181,255,190,255, +195,255,192,255,188,255,194,255,203,255,207,255,196,255,179,255,175,255,186,255,192,255,184,255,181,255,193,255,209,255,217,255, +211,255,202,255,201,255,210,255,217,255,210,255,192,255,181,255,191,255,208,255,211,255,202,255,205,255,225,255,240,255,234,255, +216,255,203,255,198,255,198,255,200,255,201,255,201,255,206,255,219,255,230,255,234,255,234,255,236,255,231,255,220,255,210,255, +207,255,204,255,202,255,210,255,222,255,229,255,234,255,246,255,255,255,249,255,236,255,229,255,224,255,220,255,220,255,219,255, +218,255,222,255,231,255,237,255,243,255,248,255,244,255,235,255,232,255,232,255,225,255,215,255,215,255,225,255,235,255,237,255, +236,255,236,255,234,255,235,255,241,255,242,255,234,255,227,255,229,255,232,255,229,255,225,255,223,255,228,255,236,255,234,255, +226,255,223,255,228,255,234,255,239,255,237,255,233,255,232,255,232,255,226,255,221,255,223,255,229,255,233,255,237,255,241,255, +245,255,242,255,232,255,226,255,229,255,230,255,227,255,228,255,234,255,237,255,235,255,233,255,232,255,236,255,241,255,242,255, +241,255,240,255,236,255,233,255,235,255,237,255,237,255,245,255,2,0,10,0,10,0,6,0,0,0,252,255,254,255,255,255, +252,255,251,255,253,255,0,0,7,0,15,0,21,0,24,0,26,0,27,0,25,0,21,0,18,0,16,0,16,0,14,0, +16,0,26,0,42,0,52,0,48,0,41,0,42,0,47,0,48,0,43,0,42,0,47,0,52,0,52,0,47,0,47,0, +56,0,67,0,69,0,65,0,66,0,69,0,68,0,61,0,57,0,61,0,65,0,64,0,63,0,65,0,66,0,70,0, +77,0,81,0,76,0,74,0,77,0,80,0,79,0,77,0,78,0,82,0,87,0,91,0,93,0,91,0,87,0,85,0, +86,0,85,0,83,0,86,0,92,0,97,0,98,0,97,0,96,0,97,0,100,0,102,0,99,0,91,0,85,0,83,0, +82,0,86,0,95,0,100,0,100,0,101,0,108,0,111,0,110,0,109,0,105,0,102,0,105,0,102,0,90,0,85,0, +90,0,95,0,101,0,113,0,121,0,120,0,116,0,109,0,102,0,103,0,110,0,109,0,107,0,111,0,112,0,104,0, +103,0,112,0,120,0,126,0,132,0,133,0,124,0,118,0,118,0,114,0,105,0,109,0,126,0,135,0,131,0,128,0, +127,0,126,0,129,0,133,0,128,0,121,0,124,0,131,0,130,0,125,0,123,0,125,0,131,0,134,0,132,0,128,0, +126,0,126,0,131,0,135,0,135,0,135,0,140,0,143,0,138,0,130,0,127,0,127,0,129,0,126,0,120,0,121,0, +132,0,144,0,148,0,146,0,142,0,139,0,139,0,137,0,130,0,120,0,115,0,119,0,126,0,133,0,136,0,136,0, +137,0,141,0,142,0,135,0,125,0,122,0,125,0,128,0,126,0,120,0,114,0,116,0,128,0,136,0,132,0,126,0, +126,0,128,0,125,0,120,0,115,0,113,0,116,0,123,0,124,0,118,0,119,0,126,0,129,0,127,0,124,0,116,0, +107,0,106,0,110,0,109,0,105,0,108,0,117,0,122,0,123,0,116,0,108,0,106,0,107,0,104,0,99,0,100,0, +106,0,113,0,115,0,113,0,109,0,105,0,105,0,109,0,109,0,101,0,96,0,97,0,95,0,90,0,90,0,90,0, +90,0,94,0,101,0,97,0,88,0,88,0,92,0,89,0,82,0,83,0,86,0,83,0,78,0,77,0,75,0,73,0, +78,0,87,0,88,0,81,0,78,0,77,0,71,0,63,0,61,0,62,0,65,0,67,0,65,0,61,0,60,0,60,0, +59,0,66,0,71,0,65,0,55,0,48,0,43,0,40,0,41,0,41,0,41,0,46,0,51,0,49,0,44,0,43,0, +42,0,41,0,40,0,39,0,36,0,31,0,23,0,20,0,24,0,31,0,33,0,30,0,28,0,27,0,25,0,21,0, +19,0,19,0,21,0,21,0,18,0,14,0,12,0,12,0,14,0,15,0,14,0,9,0,3,0,5,0,11,0,11,0, +6,0,7,0,11,0,12,0,11,0,7,0,0,0,250,255,247,255,246,255,244,255,241,255,243,255,250,255,254,255,251,255, +246,255,247,255,250,255,248,255,241,255,236,255,233,255,231,255,228,255,226,255,226,255,232,255,238,255,238,255,232,255,227,255, +227,255,224,255,217,255,210,255,207,255,204,255,203,255,205,255,208,255,209,255,209,255,211,255,213,255,215,255,213,255,209,255, +204,255,199,255,194,255,190,255,189,255,190,255,192,255,191,255,187,255,188,255,192,255,195,255,196,255,197,255,195,255,189,255, +184,255,180,255,178,255,177,255,179,255,182,255,185,255,186,255,183,255,181,255,181,255,180,255,179,255,183,255,189,255,191,255, +190,255,187,255,187,255,189,255,189,255,188,255,190,255,195,255,196,255,194,255,192,255,192,255,190,255,188,255,188,255,190,255, +192,255,193,255,192,255,193,255,194,255,196,255,199,255,201,255,200,255,201,255,202,255,201,255,199,255,200,255,201,255,202,255, +204,255,206,255,206,255,203,255,204,255,209,255,214,255,215,255,213,255,211,255,210,255,209,255,210,255,212,255,211,255,211,255, +211,255,209,255,207,255,207,255,209,255,213,255,220,255,223,255,220,255,219,255,221,255,221,255,215,255,213,255,215,255,215,255, +211,255,210,255,212,255,214,255,216,255,219,255,219,255,218,255,216,255,216,255,217,255,217,255,216,255,214,255,213,255,217,255, +222,255,222,255,217,255,213,255,214,255,218,255,217,255,212,255,209,255,210,255,215,255,219,255,219,255,219,255,222,255,226,255, +227,255,221,255,213,255,206,255,206,255,208,255,206,255,202,255,204,255,211,255,216,255,217,255,217,255,217,255,220,255,223,255, +220,255,213,255,207,255,206,255,210,255,215,255,214,255,213,255,216,255,224,255,227,255,223,255,217,255,213,255,214,255,216,255, +214,255,212,255,215,255,223,255,227,255,226,255,221,255,218,255,217,255,217,255,216,255,214,255,211,255,211,255,214,255,214,255, +213,255,213,255,216,255,219,255,222,255,223,255,218,255,215,255,218,255,221,255,220,255,219,255,219,255,219,255,220,255,221,255, +220,255,219,255,220,255,219,255,219,255,220,255,217,255,213,255,213,255,218,255,221,255,221,255,223,255,225,255,224,255,223,255, +223,255,222,255,220,255,218,255,216,255,213,255,211,255,211,255,213,255,216,255,221,255,225,255,225,255,223,255,222,255,219,255, +216,255,214,255,213,255,213,255,214,255,215,255,216,255,218,255,224,255,230,255,232,255,232,255,228,255,223,255,218,255,217,255, +216,255,217,255,219,255,222,255,223,255,225,255,227,255,227,255,226,255,226,255,225,255,223,255,222,255,220,255,218,255,217,255, +220,255,226,255,229,255,228,255,227,255,225,255,224,255,221,255,219,255,217,255,218,255,220,255,221,255,223,255,226,255,228,255, +229,255,232,255,234,255,233,255,229,255,227,255,225,255,221,255,220,255,223,255,227,255,231,255,233,255,235,255,236,255,236,255, +236,255,233,255,231,255,230,255,231,255,234,255,236,255,237,255,240,255,245,255,246,255,241,255,236,255,236,255,238,255,237,255, +237,255,240,255,243,255,245,255,246,255,248,255,248,255,248,255,249,255,249,255,250,255,250,255,250,255,250,255,249,255,249,255, +252,255,0,0,2,0,3,0,3,0,3,0,1,0,255,255,252,255,251,255,252,255,0,0,2,0,3,0,3,0,5,0, +9,0,12,0,11,0,11,0,10,0,8,0,5,0,2,0,1,0,1,0,3,0,6,0,9,0,12,0,13,0,14,0, +14,0,14,0,12,0,10,0,8,0,8,0,8,0,6,0,7,0,11,0,16,0,18,0,19,0,20,0,21,0,20,0, +17,0,13,0,11,0,12,0,12,0,13,0,17,0,20,0,22,0,23,0,26,0,26,0,23,0,20,0,17,0,15,0, +14,0,14,0,13,0,14,0,21,0,27,0,28,0,27,0,28,0,27,0,26,0,24,0,22,0,19,0,18,0,20,0, +21,0,20,0,22,0,26,0,30,0,32,0,31,0,27,0,26,0,27,0,26,0,23,0,23,0,23,0,23,0,24,0, +26,0,26,0,25,0,26,0,27,0,27,0,27,0,28,0,26,0,24,0,24,0,25,0,23,0,22,0,23,0,24,0, +23,0,24,0,27,0,28,0,27,0,25,0,22,0,22,0,22,0,20,0,17,0,18,0,22,0,22,0,20,0,22,0, +23,0,20,0,18,0,17,0,16,0,14,0,14,0,16,0,16,0,17,0,20,0,21,0,18,0,15,0,14,0,12,0, +10,0,7,0,7,0,8,0,9,0,10,0,12,0,13,0,13,0,11,0,10,0,8,0,7,0,5,0,3,0,3,0, +5,0,8,0,9,0,8,0,6,0,5,0,3,0,2,0,3,0,4,0,5,0,6,0,8,0,8,0,8,0,8,0, +7,0,2,0,0,0,0,0,255,255,254,255,255,255,2,0,3,0,5,0,8,0,11,0,10,0,8,0,6,0,2,0, +255,255,254,255,253,255,252,255,254,255,1,0,3,0,3,0,4,0,5,0,3,0,1,0,254,255,251,255,249,255,249,255, +249,255,251,255,0,0,4,0,6,0,5,0,3,0,2,0,255,255,253,255,252,255,251,255,251,255,252,255,253,255,254,255, +0,0,2,0,2,0,4,0,5,0,3,0,0,0,254,255,252,255,252,255,253,255,0,0,1,0,1,0,2,0,3,0, +4,0,4,0,2,0,255,255,252,255,252,255,253,255,254,255,0,0,3,0,5,0,5,0,4,0,4,0,4,0,2,0, +0,0,254,255,0,0,2,0,2,0,2,0,3,0,4,0,3,0,2,0,1,0,255,255,253,255,254,255,1,0,2,0, +2,0,5,0,6,0,6,0,5,0,3,0,0,0,254,255,254,255,255,255,255,255,0,0,1,0,3,0,3,0,1,0, +0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,252,255,250,255,250,255, +252,255,254,255,0,0,1,0,1,0,1,0,0,0,253,255,251,255,251,255,251,255,248,255,245,255,248,255,254,255,3,0, +5,0,6,0,7,0,4,0,255,255,252,255,250,255,248,255,247,255,248,255,252,255,0,0,3,0,6,0,7,0,6,0, +5,0,1,0,252,255,249,255,247,255,246,255,249,255,254,255,2,0,4,0,4,0,4,0,4,0,3,0,1,0,253,255, +250,255,250,255,251,255,253,255,253,255,0,0,4,0,6,0,7,0,7,0,5,0,0,0,251,255,251,255,252,255,251,255, +250,255,252,255,0,0,4,0,8,0,12,0,11,0,7,0,3,0,2,0,0,0,253,255,251,255,252,255,255,255,1,0, +3,0,6,0,8,0,8,0,7,0,6,0,4,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0,5,0, +6,0,7,0,6,0,4,0,2,0,1,0,0,0,255,255,254,255,255,255,1,0,4,0,5,0,4,0,3,0,2,0, +2,0,1,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,1,0,2,0,3,0, +1,0,255,255,253,255,252,255,249,255,248,255,249,255,251,255,252,255,255,255,1,0,1,0,0,0,255,255,253,255,251,255, +248,255,246,255,245,255,246,255,248,255,250,255,251,255,253,255,0,0,1,0,255,255,252,255,249,255,247,255,245,255,244,255, +244,255,246,255,248,255,250,255,252,255,255,255,0,0,254,255,250,255,246,255,246,255,249,255,249,255,246,255,246,255,249,255, +251,255,250,255,249,255,249,255,249,255,249,255,248,255,246,255,243,255,243,255,244,255,247,255,250,255,252,255,251,255,250,255, +251,255,251,255,248,255,246,255,246,255,247,255,246,255,246,255,249,255,250,255,249,255,251,255,253,255,253,255,252,255,252,255, +251,255,250,255,248,255,248,255,247,255,246,255,247,255,249,255,252,255,252,255,252,255,253,255,254,255,253,255,250,255,249,255, +248,255,248,255,250,255,251,255,250,255,249,255,252,255,255,255,254,255,252,255,252,255,252,255,251,255,249,255,250,255,252,255, +255,255,1,0,0,0,255,255,254,255,253,255,252,255,251,255,251,255,250,255,251,255,254,255,2,0,3,0,2,0,2,0, +1,0,255,255,254,255,254,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,253,255, +252,255,252,255,253,255,254,255,0,0,1,0,1,0,3,0,5,0,3,0,1,0,0,0,254,255,253,255,254,255,255,255, +255,255,0,0,3,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,2,0,1,0,2,0,1,0,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,2,0,0,0,255,255,255,255,255,255,254,255, +254,255,255,255,255,255,1,0,3,0,3,0,1,0,1,0,3,0,0,0,253,255,253,255,254,255,254,255,255,255,1,0, +1,0,1,0,3,0,4,0,3,0,1,0,1,0,254,255,251,255,251,255,253,255,252,255,253,255,1,0,6,0,7,0, +7,0,7,0,6,0,3,0,0,0,254,255,253,255,253,255,254,255,1,0,5,0,6,0,6,0,7,0,8,0,6,0, +3,0,2,0,0,0,253,255,253,255,1,0,3,0,4,0,6,0,10,0,11,0,10,0,7,0,4,0,3,0,4,0, +3,0,2,0,2,0,3,0,3,0,5,0,8,0,9,0,7,0,6,0,6,0,5,0,5,0,6,0,5,0,4,0, +5,0,7,0,7,0,5,0,5,0,5,0,4,0,4,0,6,0,7,0,7,0,7,0,8,0,7,0,7,0,6,0, +5,0,5,0,6,0,6,0,5,0,5,0,6,0,4,0,3,0,5,0,6,0,6,0,5,0,5,0,6,0,6,0, +5,0,4,0,4,0,6,0,6,0,6,0,7,0,7,0,6,0,5,0,6,0,6,0,4,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,5,0,7,0,7,0,7,0,7,0,6,0,4,0,3,0,2,0,0,0,0,0,1,0, +0,0,1,0,3,0,5,0,4,0,5,0,7,0,7,0,5,0,4,0,2,0,255,255,254,255,0,0,0,0,255,255, +0,0,3,0,3,0,2,0,3,0,4,0,2,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,0,0,255,255, +255,255,255,255,1,0,2,0,1,0,255,255,254,255,254,255,254,255,253,255,252,255,254,255,0,0,0,0,255,255,1,0, +1,0,254,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,253,255, +251,255,250,255,249,255,248,255,250,255,251,255,252,255,254,255,1,0,1,0,255,255,254,255,253,255,251,255,248,255,249,255, +249,255,249,255,250,255,253,255,254,255,254,255,254,255,0,0,0,0,0,0,255,255,254,255,252,255,251,255,250,255,249,255, +249,255,250,255,251,255,252,255,253,255,255,255,1,0,1,0,0,0,253,255,251,255,251,255,251,255,252,255,252,255,252,255, +252,255,253,255,253,255,252,255,252,255,252,255,251,255,250,255,250,255,249,255,248,255,248,255,250,255,251,255,252,255,253,255, +254,255,253,255,251,255,250,255,249,255,247,255,246,255,246,255,247,255,248,255,248,255,248,255,251,255,252,255,251,255,250,255, +249,255,247,255,246,255,247,255,249,255,249,255,249,255,250,255,252,255,250,255,248,255,247,255,247,255,246,255,244,255,245,255, +246,255,245,255,246,255,247,255,248,255,249,255,249,255,249,255,248,255,247,255,246,255,246,255,246,255,246,255,247,255,247,255, +248,255,249,255,251,255,251,255,249,255,248,255,248,255,247,255,245,255,244,255,244,255,246,255,247,255,248,255,248,255,250,255, +251,255,251,255,249,255,249,255,249,255,247,255,246,255,246,255,247,255,248,255,247,255,248,255,249,255,249,255,249,255,248,255, +248,255,247,255,246,255,247,255,247,255,247,255,248,255,248,255,248,255,249,255,250,255,250,255,248,255,246,255,246,255,244,255, +243,255,245,255,248,255,251,255,253,255,255,255,254,255,251,255,249,255,250,255,248,255,245,255,244,255,244,255,245,255,246,255, +248,255,249,255,249,255,250,255,250,255,249,255,248,255,247,255,246,255,244,255,245,255,247,255,247,255,247,255,247,255,249,255, +249,255,249,255,249,255,250,255,250,255,249,255,247,255,245,255,244,255,244,255,246,255,248,255,249,255,249,255,249,255,250,255, +250,255,250,255,249,255,248,255,246,255,246,255,247,255,246,255,244,255,245,255,246,255,246,255,246,255,247,255,249,255,251,255, +251,255,250,255,249,255,248,255,248,255,248,255,247,255,245,255,244,255,246,255,249,255,250,255,249,255,248,255,250,255,251,255, +249,255,248,255,247,255,246,255,246,255,248,255,249,255,249,255,249,255,250,255,250,255,250,255,250,255,251,255,251,255,250,255, +249,255,249,255,249,255,249,255,250,255,250,255,252,255,252,255,251,255,248,255,246,255,245,255,244,255,246,255,250,255,251,255, +251,255,251,255,253,255,252,255,251,255,250,255,250,255,250,255,250,255,249,255,248,255,248,255,248,255,249,255,249,255,251,255, +252,255,252,255,251,255,249,255,247,255,247,255,247,255,246,255,247,255,249,255,252,255,252,255,252,255,252,255,251,255,249,255, +248,255,246,255,245,255,247,255,249,255,250,255,250,255,252,255,253,255,252,255,251,255,251,255,249,255,248,255,249,255,250,255, +249,255,249,255,252,255,251,255,248,255,249,255,251,255,252,255,251,255,251,255,250,255,247,255,246,255,247,255,246,255,246,255, +246,255,248,255,251,255,254,255,254,255,251,255,251,255,251,255,251,255,249,255,247,255,247,255,248,255,250,255,249,255,248,255, +249,255,252,255,252,255,251,255,250,255,250,255,249,255,249,255,250,255,250,255,249,255,249,255,250,255,250,255,251,255,252,255, +252,255,251,255,250,255,250,255,250,255,251,255,251,255,249,255,249,255,250,255,251,255,252,255,253,255,253,255,252,255,251,255, +251,255,250,255,248,255,248,255,250,255,249,255,249,255,251,255,252,255,251,255,252,255,255,255,255,255,252,255,251,255,251,255, +251,255,251,255,251,255,253,255,254,255,254,255,253,255,251,255,251,255,251,255,250,255,250,255,252,255,254,255,253,255,253,255, +253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0, +1,0,2,0,0,0,253,255,253,255,253,255,253,255,253,255,254,255,255,255,1,0,2,0,2,0,0,0,1,0,2,0, +1,0,0,0,0,0,255,255,255,255,2,0,3,0,1,0,254,255,254,255,255,255,0,0,2,0,3,0,2,0,3,0, +6,0,6,0,2,0,1,0,3,0,3,0,1,0,255,255,0,0,0,0,0,0,1,0,2,0,4,0,4,0,3,0, +3,0,3,0,2,0,1,0,0,0,255,255,0,0,1,0,2,0,0,0,254,255,0,0,2,0,1,0,0,0,2,0, +3,0,3,0,2,0,1,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,3,0,2,0,1,0, +2,0,3,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,3,0,5,0,4,0,1,0,1,0,2,0, +0,0,255,255,0,0,1,0,1,0,3,0,4,0,4,0,3,0,4,0,5,0,3,0,2,0,1,0,1,0,1,0, +1,0,2,0,2,0,4,0,5,0,4,0,5,0,6,0,6,0,5,0,4,0,3,0,2,0,2,0,3,0,3,0, +3,0,4,0,5,0,5,0,6,0,7,0,7,0,5,0,6,0,6,0,5,0,4,0,3,0,3,0,4,0,4,0, +4,0,6,0,8,0,9,0,9,0,10,0,9,0,6,0,5,0,7,0,7,0,5,0,5,0,6,0,8,0,9,0, +10,0,10,0,9,0,8,0,7,0,5,0,5,0,5,0,5,0,4,0,6,0,10,0,10,0,9,0,9,0,9,0, +8,0,6,0,5,0,7,0,7,0,6,0,5,0,6,0,9,0,11,0,12,0,11,0,11,0,11,0,11,0,10,0, +7,0,6,0,7,0,7,0,6,0,6,0,8,0,9,0,9,0,10,0,10,0,8,0,6,0,7,0,9,0,9,0, +8,0,8,0,8,0,8,0,8,0,7,0,7,0,8,0,8,0,8,0,8,0,7,0,8,0,9,0,10,0,10,0, +8,0,7,0,9,0,9,0,7,0,7,0,9,0,9,0,8,0,8,0,10,0,10,0,9,0,9,0,9,0,8,0, +7,0,7,0,7,0,7,0,9,0,10,0,9,0,10,0,11,0,12,0,11,0,11,0,11,0,11,0,10,0,10,0, +9,0,10,0,9,0,9,0,8,0,10,0,11,0,10,0,9,0,9,0,9,0,10,0,10,0,9,0,9,0,9,0, +10,0,11,0,10,0,10,0,11,0,11,0,11,0,11,0,11,0,10,0,9,0,9,0,11,0,11,0,10,0,9,0, +9,0,9,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,9,0,9,0,9,0,7,0,6,0,6,0,7,0, +8,0,9,0,10,0,10,0,10,0,11,0,13,0,12,0,10,0,7,0,7,0,7,0,6,0,6,0,5,0,6,0, +9,0,11,0,11,0,11,0,10,0,10,0,8,0,7,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,8,0, +9,0,8,0,5,0,5,0,7,0,7,0,5,0,5,0,6,0,8,0,8,0,7,0,7,0,8,0,8,0,8,0, +7,0,7,0,6,0,6,0,6,0,8,0,9,0,9,0,8,0,7,0,7,0,5,0,5,0,5,0,5,0,4,0, +6,0,8,0,9,0,7,0,6,0,7,0,8,0,7,0,6,0,5,0,4,0,5,0,7,0,6,0,4,0,6,0, +8,0,8,0,6,0,6,0,8,0,7,0,5,0,5,0,4,0,3,0,4,0,6,0,6,0,5,0,5,0,7,0, +8,0,7,0,5,0,3,0,4,0,5,0,4,0,2,0,3,0,5,0,6,0,6,0,7,0,7,0,6,0,5,0, +5,0,5,0,5,0,4,0,3,0,2,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,2,0,1,0, +1,0,3,0,2,0,1,0,0,0,1,0,3,0,4,0,4,0,2,0,2,0,3,0,4,0,2,0,1,0,2,0, +3,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,2,0,3,0,2,0,0,0,0,0,2,0,2,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,0,0,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0, +2,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,2,0,1,0,2,0,2,0,2,0, +1,0,1,0,1,0,0,0,255,255,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,255,255,1,0,3,0,1,0,255,255,255,255,0,0,255,255,253,255,252,255,253,255,255,255,2,0,2,0, +1,0,1,0,2,0,2,0,0,0,255,255,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0, +254,255,254,255,255,255,253,255,251,255,251,255,255,255,1,0,255,255,253,255,252,255,254,255,0,0,1,0,255,255,253,255, +253,255,254,255,255,255,255,255,0,0,1,0,0,0,254,255,252,255,252,255,253,255,254,255,253,255,252,255,253,255,253,255, +254,255,254,255,254,255,254,255,255,255,255,255,253,255,250,255,251,255,253,255,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,255,255,254,255,252,255,253,255,255,255,255,255,254,255,253,255,254,255,254,255,254,255,255,255,254,255,252,255, +252,255,252,255,252,255,251,255,251,255,252,255,253,255,255,255,0,0,254,255,254,255,255,255,0,0,255,255,252,255,252,255, +253,255,253,255,252,255,253,255,254,255,0,0,0,0,0,0,254,255,253,255,253,255,254,255,254,255,253,255,251,255,251,255, +252,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,252,255,254,255,255,255, +255,255,0,0,0,0,0,0,254,255,253,255,252,255,253,255,254,255,254,255,254,255,252,255,252,255,253,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,253,255,251,255,253,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,255,255,254,255,253,255,254,255,255,255,0,0,255,255,253,255, +253,255,254,255,254,255,253,255,253,255,255,255,0,0,254,255,253,255,253,255,254,255,255,255,254,255,253,255,251,255,252,255, +254,255,254,255,253,255,254,255,0,0,0,0,255,255,255,255,0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255, +254,255,255,255,254,255,254,255,254,255,254,255,252,255,251,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,254,255, +253,255,252,255,253,255,255,255,254,255,254,255,0,0,1,0,255,255,253,255,254,255,1,0,3,0,2,0,255,255,253,255, +252,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,251,255,252,255,254,255,0,0,0,0,0,0,254,255,253,255, +253,255,252,255,253,255,254,255,0,0,0,0,255,255,255,255,1,0,3,0,5,0,4,0,1,0,255,255,254,255,253,255, +252,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,254,255,255,255,255,255,255,255,255,255,0,0,254,255, +253,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,253,255, +253,255,252,255,251,255,251,255,252,255,252,255,251,255,251,255,253,255,255,255,255,255,255,255,0,0,255,255,254,255,253,255, +255,255,1,0,2,0,2,0,2,0,1,0,0,0,1,0,0,0,255,255,255,255,255,255,254,255,252,255,252,255,254,255, +254,255,255,255,255,255,254,255,251,255,251,255,252,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0, +3,0,3,0,3,0,2,0,0,0,255,255,254,255,255,255,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +254,255,253,255,254,255,253,255,251,255,251,255,253,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255, +0,0,2,0,3,0,2,0,1,0,1,0,2,0,1,0,0,0,255,255,0,0,0,0,254,255,253,255,253,255,253,255, +254,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,2,0, +3,0,2,0,0,0,0,0,1,0,0,0,254,255,254,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255, +254,255,254,255,255,255,255,255,254,255,255,255,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,1,0,2,0,1,0, +255,255,255,255,1,0,2,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,255,255,255,255,0,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +2,0,2,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,0,0,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,255,255,254,255,255,255,1,0,0,0,0,0,1,0,1,0, +1,0,1,0,1,0,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,2,0,0,0,254,255,255,255,1,0,2,0,0,0,255,255,254,255,0,0,1,0,1,0, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255, +254,255,255,255,1,0,1,0,255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0, +1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,0,0,254,255,255,255,2,0,2,0,255,255,254,255,0,0,1,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,255,255, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,255,255,255,255,1,0,1,0,255,255,254,255,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,1,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,254,255,0,0,1,0,1,0, +255,255,255,255,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,254,255,255,255,1,0,1,0,255,255,254,255,0,0,2,0,2,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255, +0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +255,255,0,0,1,0,1,0,0,0,0,0,1,0,0,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,0,0,0,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0, +0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,2,0,1,0,0,0,255,255,0,0,0,0,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,255,255,0,0,1,0,1,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,1,0,2,0,1,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +1,0,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,0,0,255,255,0,0,1,0, +1,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,1,0,0,0,255,255,254,255,255,255,1,0,1,0,255,255,254,255,0,0,2,0,1,0,1,0, +1,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,0,0,1,0, +255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,255,255,255,255,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255, +0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +2,0,1,0,255,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,1,0,2,0, +0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,255,255,0,0,0,0,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,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,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,1,0,1,0,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, +1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,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,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0, +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, +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,255,255,0,0,0,0,0,0,0,0,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,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,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, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,1,0,1,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,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,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,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, +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, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpigangry1.pcm b/src/client/sound/data/zpigangry1.pcm new file mode 100755 index 0000000..59f8fd1 --- /dev/null +++ b/src/client/sound/data/zpigangry1.pcm @@ -0,0 +1,3334 @@ +unsigned char PCM_zpigangry1[106622] = { +1,0,0,0,2,0,0,0,68,172,0,0,55,208,0,0,1,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0,2,0,254,255,253,255,253,255,252,255,250,255, +254,255,6,0,8,0,5,0,2,0,1,0,255,255,250,255,246,255,245,255,250,255,2,0,7,0,9,0,11,0,8,0, +1,0,254,255,254,255,254,255,253,255,252,255,250,255,246,255,240,255,243,255,8,0,28,0,22,0,4,0,4,0,16,0, +11,0,241,255,218,255,219,255,241,255,6,0,14,0,20,0,26,0,15,0,249,255,240,255,248,255,6,0,6,0,241,255, +220,255,229,255,0,0,14,0,20,0,29,0,21,0,0,0,251,255,250,255,230,255,217,255,238,255,17,0,34,0,15,0, +236,255,234,255,18,0,34,0,253,255,223,255,242,255,12,0,6,0,241,255,244,255,16,0,25,0,242,255,208,255,237,255, +47,0,86,0,79,0,39,0,253,255,227,255,209,255,210,255,2,0,52,0,26,0,216,255,199,255,214,255,215,255,236,255, +33,0,52,0,12,0,222,255,227,255,39,0,103,0,59,0,196,255,150,255,216,255,32,0,36,0,242,255,197,255,218,255, +24,0,49,0,50,0,71,0,52,0,222,255,186,255,254,255,64,0,66,0,41,0,3,0,197,255,135,255,120,255,180,255, +31,0,80,0,24,0,215,255,230,255,24,0,28,0,246,255,233,255,26,0,64,0,6,0,184,255,217,255,47,0,45,0, +222,255,178,255,215,255,44,0,99,0,69,0,15,0,9,0,252,255,197,255,172,255,194,255,212,255,255,255,88,0,119,0, +48,0,233,255,237,255,31,0,63,0,26,0,193,255,149,255,173,255,198,255,230,255,73,0,184,0,190,0,72,0,194,255, +169,255,233,255,229,255,117,255,74,255,199,255,87,0,118,0,80,0,48,0,35,0,31,0,23,0,15,0,13,0,242,255, +180,255,139,255,141,255,161,255,226,255,94,0,181,0,166,0,100,0,31,0,233,255,206,255,156,255,72,255,104,255,44,0, +191,0,161,0,95,0,84,0,40,0,198,255,131,255,136,255,198,255,3,0,244,255,198,255,242,255,95,0,133,0,79,0, +9,0,208,255,171,255,177,255,211,255,232,255,222,255,193,255,207,255,52,0,177,0,208,0,124,0,17,0,216,255,191,255, +142,255,85,255,93,255,171,255,250,255,49,0,92,0,107,0,100,0,103,0,94,0,40,0,222,255,152,255,92,255,84,255, +135,255,183,255,224,255,33,0,66,0,48,0,65,0,111,0,80,0,252,255,202,255,162,255,127,255,163,255,221,255,220,255, +211,255,228,255,216,255,231,255,103,0,210,0,147,0,28,0,1,0,7,0,208,255,140,255,136,255,188,255,215,255,164,255, +103,255,168,255,112,0,29,1,17,1,86,0,140,255,84,255,178,255,29,0,40,0,222,255,133,255,84,255,111,255,223,255, +122,0,233,0,237,0,157,0,53,0,215,255,159,255,152,255,150,255,115,255,95,255,137,255,215,255,59,0,154,0,171,0, +114,0,86,0,101,0,48,0,166,255,47,255,29,255,121,255,248,255,30,0,246,255,25,0,155,0,234,0,209,0,143,0, +36,0,140,255,13,255,213,254,234,254,116,255,82,0,207,0,136,0,0,0,222,255,40,0,120,0,118,0,16,0,116,255, +3,255,26,255,166,255,31,0,65,0,95,0,176,0,220,0,160,0,54,0,220,255,141,255,71,255,33,255,53,255,150,255, +53,0,184,0,201,0,124,0,37,0,234,255,173,255,95,255,54,255,102,255,202,255,15,0,26,0,19,0,51,0,140,0, +220,0,188,0,40,0,148,255,85,255,78,255,72,255,82,255,156,255,26,0,133,0,171,0,161,0,138,0,111,0,82,0, +39,0,201,255,63,255,229,254,4,255,114,255,216,255,23,0,68,0,88,0,61,0,21,0,39,0,81,0,39,0,176,255, +106,255,132,255,196,255,0,0,36,0,15,0,226,255,240,255,36,0,37,0,252,255,250,255,34,0,70,0,77,0,35,0, +206,255,154,255,194,255,24,0,85,0,108,0,97,0,41,0,212,255,166,255,208,255,46,0,83,0,11,0,176,255,171,255, +231,255,16,0,27,0,30,0,11,0,235,255,237,255,8,0,15,0,9,0,5,0,239,255,211,255,220,255,241,255,232,255, +231,255,20,0,56,0,46,0,35,0,54,0,60,0,3,0,165,255,132,255,208,255,40,0,18,0,198,255,206,255,34,0, +79,0,65,0,47,0,29,0,247,255,220,255,235,255,17,0,28,0,248,255,211,255,236,255,45,0,75,0,52,0,26,0, +12,0,232,255,161,255,95,255,86,255,146,255,229,255,30,0,67,0,115,0,156,0,146,0,91,0,31,0,226,255,155,255, +96,255,66,255,79,255,177,255,90,0,188,0,132,0,57,0,105,0,197,0,181,0,45,0,134,255,26,255,28,255,106,255, +188,255,20,0,130,0,198,0,185,0,138,0,96,0,50,0,251,255,179,255,105,255,85,255,118,255,122,255,116,255,213,255, +140,0,5,1,234,0,87,0,187,255,161,255,242,255,8,0,196,255,177,255,216,255,214,255,210,255,37,0,151,0,205,0, +179,0,61,0,163,255,123,255,217,255,26,0,244,255,215,255,254,255,35,0,28,0,13,0,23,0,67,0,101,0,46,0, +163,255,75,255,133,255,252,255,57,0,54,0,10,0,185,255,142,255,215,255,76,0,110,0,59,0,240,255,184,255,194,255, +18,0,89,0,114,0,118,0,77,0,239,255,195,255,238,255,16,0,254,255,209,255,120,255,48,255,126,255,49,0,139,0, +88,0,233,255,152,255,202,255,88,0,99,0,206,255,146,255,225,255,243,255,209,255,20,0,102,0,70,0,11,0,253,255, +235,255,234,255,18,0,254,255,156,255,139,255,254,255,124,0,174,0,128,0,241,255,97,255,98,255,232,255,74,0,36,0, +187,255,141,255,204,255,64,0,123,0,89,0,48,0,51,0,7,0,123,255,35,255,126,255,41,0,129,0,89,0,244,255, +218,255,99,0,7,1,234,0,46,0,136,255,28,255,216,254,254,254,139,255,32,0,143,0,184,0,132,0,103,0,185,0, +236,0,123,0,187,255,34,255,244,254,113,255,49,0,93,0,32,0,66,0,157,0,179,0,202,0,239,0,131,0,163,255, +50,255,93,255,152,255,179,255,211,255,8,0,78,0,132,0,135,0,110,0,97,0,78,0,19,0,195,255,141,255,148,255, +211,255,20,0,55,0,81,0,108,0,116,0,89,0,33,0,253,255,21,0,55,0,26,0,220,255,197,255,233,255,63,0, +149,0,147,0,69,0,12,0,215,255,110,255,75,255,208,255,99,0,101,0,22,0,235,255,248,255,44,0,92,0,111,0, +121,0,109,0,28,0,193,255,180,255,199,255,188,255,177,255,179,255,178,255,218,255,43,0,73,0,45,0,25,0,253,255, +190,255,166,255,232,255,66,0,93,0,37,0,206,255,146,255,101,255,64,255,129,255,43,0,131,0,51,0,224,255,15,0, +128,0,190,0,137,0,6,0,187,255,222,255,251,255,213,255,194,255,235,255,23,0,43,0,50,0,61,0,81,0,49,0, +185,255,88,255,99,255,120,255,85,255,91,255,183,255,47,0,177,0,15,1,219,0,48,0,182,255,159,255,151,255,123,255, +91,255,60,255,57,255,129,255,25,0,203,0,56,1,42,1,195,0,49,0,129,255,236,254,181,254,204,254,4,255,97,255, +217,255,77,0,174,0,229,0,254,0,51,1,75,1,173,0,145,255,230,254,231,254,27,255,88,255,165,255,226,255,25,0, +86,0,100,0,77,0,93,0,104,0,14,0,127,255,32,255,11,255,67,255,176,255,2,0,9,0,225,255,187,255,206,255, +30,0,73,0,41,0,28,0,31,0,208,255,121,255,188,255,98,0,185,0,135,0,1,0,137,255,143,255,0,0,65,0, +30,0,250,255,251,255,242,255,227,255,255,255,63,0,88,0,21,0,182,255,168,255,239,255,66,0,131,0,152,0,84,0, +234,255,205,255,23,0,127,0,149,0,13,0,86,255,88,255,18,0,141,0,110,0,72,0,86,0,73,0,19,0,249,255, +22,0,53,0,3,0,136,255,90,255,223,255,154,0,188,0,50,0,181,255,233,255,150,0,228,0,114,0,172,255,17,255, +216,254,17,255,140,255,6,0,131,0,231,0,195,0,67,0,39,0,116,0,117,0,7,0,149,255,80,255,81,255,171,255, +35,0,120,0,181,0,190,0,115,0,44,0,51,0,60,0,246,255,123,255,4,255,206,254,4,255,131,255,22,0,166,0, +244,0,199,0,119,0,96,0,63,0,206,255,75,255,0,255,18,255,170,255,126,0,213,0,143,0,84,0,136,0,211,0, +204,0,94,0,176,255,17,255,206,254,240,254,75,255,203,255,95,0,173,0,114,0,22,0,54,0,185,0,244,0,141,0, +196,255,39,255,42,255,154,255,217,255,222,255,29,0,107,0,88,0,43,0,88,0,163,0,172,0,105,0,217,255,76,255, +91,255,232,255,29,0,205,255,130,255,125,255,178,255,17,0,80,0,64,0,44,0,47,0,249,255,156,255,140,255,195,255, +218,255,175,255,112,255,124,255,10,0,161,0,147,0,44,0,41,0,96,0,36,0,152,255,85,255,107,255,127,255,96,255, +46,255,65,255,209,255,130,0,175,0,78,0,246,255,252,255,28,0,240,255,112,255,246,254,223,254,46,255,139,255,207,255, +37,0,133,0,156,0,101,0,60,0,74,0,100,0,68,0,173,255,226,254,192,254,150,255,123,0,161,0,100,0,91,0, +127,0,156,0,144,0,40,0,131,255,21,255,242,254,228,254,19,255,172,255,92,0,198,0,228,0,198,0,148,0,132,0, +109,0,246,255,66,255,208,254,228,254,115,255,52,0,188,0,247,0,53,1,118,1,93,1,243,0,150,0,70,0,195,255, +22,255,157,254,180,254,99,255,47,0,137,0,132,0,141,0,173,0,180,0,155,0,87,0,222,255,131,255,142,255,187,255, +196,255,215,255,11,0,64,0,142,0,226,0,169,0,213,255,78,255,144,255,255,255,43,0,77,0,107,0,71,0,238,255, +155,255,125,255,210,255,114,0,144,0,233,255,109,255,219,255,178,0,14,1,200,0,86,0,34,0,38,0,28,0,11,0, +70,0,168,0,166,0,52,0,219,255,4,0,151,0,31,1,0,1,26,0,15,255,121,254,92,254,150,254,26,255,167,255, +17,0,129,0,231,0,226,0,137,0,82,0,58,0,249,255,174,255,122,255,55,255,13,255,78,255,203,255,60,0,180,0, +12,1,238,0,177,0,186,0,136,0,181,255,231,254,149,254,106,254,110,254,19,255,1,0,122,0,110,0,40,0,220,255, +243,255,123,0,178,0,38,0,114,255,52,255,78,255,140,255,239,255,77,0,112,0,104,0,92,0,103,0,131,0,118,0, +28,0,168,255,91,255,72,255,137,255,10,0,88,0,32,0,171,255,110,255,150,255,28,0,164,0,142,0,194,255,21,255, +57,255,206,255,14,0,208,255,110,255,78,255,169,255,80,0,188,0,191,0,158,0,116,0,65,0,97,0,243,0,73,1, +198,0,171,255,168,254,94,254,33,255,87,0,227,0,167,0,107,0,115,0,130,0,164,0,191,0,92,0,152,255,34,255, +49,255,143,255,33,0,172,0,200,0,122,0,46,0,47,0,137,0,255,0,18,1,127,0,156,255,6,255,56,255,26,0, +234,0,253,0,123,0,243,255,185,255,231,255,52,0,251,255,28,255,114,254,173,254,135,255,101,0,5,1,73,1,9,1, +80,0,152,255,122,255,228,255,20,0,180,255,88,255,131,255,2,0,107,0,151,0,129,0,56,0,228,255,173,255,160,255, +159,255,128,255,76,255,70,255,155,255,44,0,167,0,188,0,124,0,68,0,34,0,208,255,94,255,29,255,31,255,89,255, +212,255,96,0,186,0,236,0,254,0,181,0,13,0,91,255,240,254,223,254,233,254,177,254,111,254,199,254,169,255,105,0, +192,0,201,0,150,0,102,0,71,0,183,255,174,254,33,254,137,254,61,255,163,255,186,255,169,255,195,255,51,0,127,0, +72,0,245,255,213,255,180,255,138,255,96,255,6,255,183,254,254,254,153,255,238,255,58,0,204,0,243,0,26,0,3,255, +209,254,137,255,56,0,36,0,131,255,27,255,96,255,17,0,155,0,176,0,87,0,160,255,209,254,160,254,94,255,28,0, +208,255,222,254,100,254,183,254,120,255,61,0,172,0,181,0,165,0,138,0,41,0,181,255,140,255,142,255,113,255,63,255, +43,255,124,255,62,0,216,0,202,0,141,0,190,0,37,1,53,1,180,0,186,255,199,254,130,254,234,254,142,255,47,0, +124,0,56,0,232,255,24,0,97,0,85,0,67,0,30,0,100,255,121,254,96,254,53,255,79,0,55,1,162,1,103,1, +233,0,211,0,61,1,121,1,209,0,93,255,35,254,45,254,113,255,210,0,90,1,53,1,34,1,69,1,45,1,210,0, +122,0,7,0,70,255,116,254,245,253,28,254,40,255,166,0,142,1,144,1,86,1,68,1,22,1,144,0,194,255,0,255, +203,254,41,255,134,255,159,255,186,255,2,0,122,0,32,1,141,1,47,1,31,0,28,255,183,254,230,254,41,255,48,255, +87,255,236,255,138,0,236,0,125,1,35,2,245,1,198,0,153,255,56,255,138,255,47,0,197,0,243,0,194,0,186,0, +54,1,194,1,144,1,153,0,181,255,123,255,164,255,151,255,4,255,48,254,244,253,217,254,68,0,47,1,54,1,140,0, +178,255,82,255,153,255,7,0,63,0,42,0,119,255,94,254,52,254,194,255,214,1,169,2,215,1,93,0,95,255,70,255, +162,255,230,255,3,0,14,0,197,255,34,255,233,254,211,255,62,1,187,1,252,0,240,255,37,255,140,254,117,254,9,255, +109,255,242,254,58,254,41,254,214,254,227,255,195,0,244,0,149,0,66,0,17,0,167,255,0,255,123,254,95,254,177,254, +68,255,255,255,215,0,70,1,211,0,43,0,70,0,166,0,37,0,241,254,25,254,253,253,53,254,110,254,198,254,119,255, +55,0,81,0,180,255,39,255,29,255,62,255,18,255,107,254,141,253,49,253,212,253,252,254,188,255,161,255,12,255,239,254, +206,255,243,0,51,1,79,0,238,254,217,253,162,253,85,254,105,255,91,0,237,0,247,0,153,0,53,0,231,255,145,255, +85,255,58,255,18,255,252,254,81,255,250,255,135,0,130,0,204,255,11,255,249,254,38,255,220,254,205,254,198,255,226,0, +243,0,78,0,195,255,124,255,141,255,15,0,165,0,198,0,82,0,117,255,138,254,46,254,217,254,38,0,236,0,160,0, +37,0,62,0,64,0,138,255,234,254,34,255,176,255,231,255,198,255,163,255,20,0,93,1,138,2,105,2,68,1,66,0, +201,255,113,255,232,254,126,254,229,254,7,0,203,0,199,0,219,0,99,1,178,1,124,1,20,1,167,0,66,0,248,255, +191,255,204,255,71,0,154,0,60,0,169,255,162,255,87,0,124,1,68,2,18,2,170,1,3,2,92,2,166,1,144,0, +58,0,159,0,47,1,79,1,146,0,174,255,244,255,86,1,153,2,25,3,11,3,226,2,236,2,206,2,253,1,4,1, +185,0,167,0,40,0,230,255,153,0,204,1,227,2,171,3,210,3,9,3,169,1,133,0,65,0,184,0,244,0,81,0, +133,255,204,255,60,1,144,2,171,2,238,1,134,1,165,1,139,1,32,1,253,0,28,1,233,0,93,0,9,0,118,0, +159,1,235,2,180,3,155,3,122,2,218,0,18,0,190,0,227,1,118,2,56,2,44,1,18,0,78,0,155,1,246,1, +233,0,33,0,126,0,100,1,80,2,253,2,26,3,195,2,42,2,51,1,72,0,61,0,4,1,137,1,17,1,30,0, +17,0,120,1,248,2,19,3,17,2,14,1,160,0,244,0,70,1,20,0,181,253,142,252,92,253,135,254,78,255,21,0, +119,0,26,0,189,255,200,255,225,255,1,0,235,255,235,254,160,253,187,253,71,255,146,0,186,0,82,0,14,0,57,0, +215,0,136,1,186,1,11,1,105,255,89,253,36,252,213,252,209,254,78,0,156,0,167,0,24,1,141,1,226,1,62,2, +249,1,125,0,177,254,187,253,91,253,229,252,180,252,177,253,43,0,19,3,159,4,79,4,125,3,13,3,89,2,16,1, +205,255,110,254,126,252,250,250,80,251,36,253,228,254,194,255,39,0,221,0,236,1,19,2,77,0,222,253,207,252,181,252, +194,251,180,250,19,252,141,255,210,1,88,1,13,0,230,255,102,0,7,0,116,254,208,252,35,252,33,252,67,252,244,252, +90,254,91,255,117,255,148,255,24,0,70,0,5,0,208,255,99,255,61,254,151,252,61,251,101,251,163,253,47,0,165,0, +217,255,128,0,88,2,150,2,131,0,69,254,130,253,178,253,125,253,168,252,68,252,8,253,87,254,141,255,166,0,44,1, +158,0,179,255,10,255,223,253,23,252,102,251,114,252,121,253,31,253,33,252,234,251,100,253,67,0,112,2,11,2,47,0, +52,255,253,254,218,253,8,252,131,251,225,252,92,254,67,254,149,253,161,254,247,0,159,1,5,0,190,254,230,254,43,255, +49,255,163,255,47,0,114,0,181,0,143,0,187,255,136,255,137,0,62,1,6,1,240,0,30,1,191,0,240,255,87,255, +90,255,45,0,248,0,110,0,90,255,144,255,142,0,164,0,15,0,217,255,248,255,70,0,220,0,72,1,91,1,117,1, +73,1,143,0,90,0,91,1,91,2,98,2,90,2,41,3,247,3,88,3,82,1,118,255,217,254,16,255,200,255,98,1, +37,3,94,3,40,2,83,1,99,1,66,1,162,0,67,0,114,0,219,0,62,1,131,1,142,1,107,1,45,1,183,0, +30,0,17,0,244,0,175,1,202,0,213,254,20,254,195,255,158,2,48,4,62,3,14,1,227,255,81,0,15,1,210,0, +67,255,27,253,20,252,103,253,98,0,113,3,132,5,225,5,123,4,120,2,15,1,120,0,42,0,251,254,92,252,79,250, +95,251,186,254,168,1,92,3,53,4,214,3,107,2,46,1,191,0,179,0,2,0,204,253,22,251,17,250,225,250,32,252, +165,253,78,255,29,0,175,0,6,2,51,2,200,255,153,253,2,254,102,255,219,255,230,254,82,252,5,250,26,251,96,254, +153,255,54,254,228,252,152,252,213,252,133,253,68,254,219,254,249,255,95,1,163,1,164,0,155,255,7,255,76,254,202,252, +46,251,121,251,27,254,49,0,112,255,166,253,224,253,167,0,50,4,245,5,63,4,3,0,45,252,195,250,168,251,67,253, +154,253,60,252,227,250,54,251,31,253,139,255,29,1,177,0,166,254,198,252,116,252,179,253,65,255,139,255,159,254,105,254, +223,255,123,1,30,1,87,254,11,251,63,250,231,252,118,0,56,2,112,2,167,2,250,2,146,2,135,1,245,0,4,1, +23,0,94,253,146,250,100,249,192,249,148,251,123,254,134,0,113,1,193,3,48,7,106,7,233,2,72,253,43,250,80,250, +221,251,174,251,152,249,247,249,45,255,105,5,28,8,199,6,40,3,86,255,36,253,159,252,108,252,216,251,247,250,110,250, +151,251,202,254,128,2,116,5,14,7,81,6,93,3,20,0,124,253,143,251,247,250,177,251,162,252,59,254,109,1,152,4, +179,5,60,5,77,4,31,3,224,1,88,0,61,254,90,252,18,251,40,250,114,251,88,0,71,5,118,6,233,5,113,6, +145,6,126,4,164,0,217,251,139,248,220,249,252,253,9,0,24,0,162,1,111,4,2,6,197,5,170,3,214,255,232,252, +51,253,204,254,179,254,84,253,151,252,137,252,134,252,86,253,255,255,129,3,78,5,32,4,75,1,7,255,70,254,166,254, +157,255,188,0,87,1,122,1,103,2,65,4,184,4,165,2,141,0,213,0,131,2,213,3,98,4,223,3,82,2,51,1, +190,1,102,3,160,4,8,4,148,1,40,255,69,254,117,254,81,255,205,0,82,1,42,0,205,255,100,1,100,2,208,1, +248,1,200,3,176,5,28,6,203,3,6,255,47,251,63,251,62,254,82,1,98,2,251,0,116,255,106,0,163,2,64,4, +199,6,10,10,91,9,73,3,0,253,63,251,44,254,188,2,18,4,38,0,6,252,72,253,14,2,175,5,132,7,17,8, +97,6,52,3,234,0,211,255,189,254,204,253,224,253,129,254,53,254,11,253,83,253,2,0,74,2,52,2,90,2,154,4, +188,5,9,3,11,255,248,252,90,252,180,251,15,251,193,250,175,250,86,251,164,253,151,1,164,5,149,7,10,6,162,1, +0,253,45,251,173,252,105,254,19,253,106,249,115,247,141,249,241,253,66,1,45,2,211,1,140,1,93,1,180,0,178,255, +241,254,127,254,253,253,133,253,107,253,85,253,17,253,167,253,145,255,62,1,114,1,214,0,138,255,228,252,195,250,115,252, +110,1,73,5,205,4,180,0,91,252,205,250,20,252,8,254,98,255,143,255,156,253,210,250,227,250,81,254,43,1,0,1, +30,255,76,253,208,252,181,254,240,1,174,3,144,2,148,255,13,253,77,253,221,255,12,1,12,255,121,252,227,251,217,252, +56,254,113,255,70,0,154,1,34,4,23,6,139,5,159,3,45,2,0,1,156,255,154,254,92,254,196,254,132,255,234,255, +86,0,171,2,110,6,188,7,92,5,27,3,33,3,206,2,178,0,117,255,100,0,211,0,49,255,27,254,8,0,248,2, +75,3,139,1,14,2,77,6,2,10,233,8,67,4,39,0,87,254,87,254,239,255,209,2,113,5,60,6,82,5,31,4, +162,3,115,3,162,2,84,1,188,0,24,1,0,1,27,0,205,0,75,4,216,6,159,4,171,0,35,1,213,5,198,8, +18,7,124,3,53,1,78,0,63,255,68,254,47,0,198,5,65,10,48,9,110,5,63,4,85,5,90,5,186,3,151,1, +138,255,133,254,132,255,40,2,207,4,31,5,78,2,60,0,72,3,148,8,190,9,83,7,183,6,255,7,4,7,231,3, +204,2,168,4,214,5,145,3,68,0,146,0,146,4,99,7,99,6,109,4,135,4,161,5,26,5,52,2,108,254,234,251, +186,251,73,253,144,255,138,1,238,1,199,0,137,0,190,2,18,5,130,4,128,1,184,254,176,253,45,254,246,254,253,254, +34,255,52,1,112,4,15,6,67,5,28,3,22,0,160,253,44,254,144,0,204,0,239,254,208,254,84,1,57,4,44,6, +213,6,43,6,166,4,123,1,89,252,194,249,157,253,172,2,132,1,94,252,146,250,231,253,182,2,232,4,38,3,219,0, +55,1,205,0,136,252,192,249,94,252,69,254,237,250,199,247,175,249,179,253,87,255,56,253,41,249,21,248,40,252,111,255, +33,252,86,246,106,245,240,248,214,250,70,248,97,244,241,243,177,247,97,251,99,251,43,249,16,248,91,248,254,247,88,246, +234,244,219,244,130,245,142,245,146,244,185,243,66,245,146,249,208,252,249,250,3,246,109,243,156,244,229,245,65,244,40,241, +22,241,245,245,218,251,68,254,244,253,52,253,126,251,76,249,1,249,74,249,178,246,216,242,7,242,60,244,178,246,135,248, +63,250,71,252,100,254,4,255,53,253,121,250,191,247,215,243,190,239,175,239,19,245,61,251,130,252,91,249,16,248,210,251, +143,255,26,254,73,250,214,248,88,248,196,245,220,242,58,243,56,247,164,251,94,252,233,248,151,246,54,250,147,0,40,2, +81,253,221,247,128,246,119,247,176,247,142,248,83,252,228,0,229,2,101,2,33,1,242,255,50,255,209,254,209,254,6,0, +163,1,133,0,117,252,182,249,6,251,170,254,237,0,220,254,193,250,85,252,238,4,220,9,17,4,89,251,44,249,155,251, +213,251,98,248,215,245,13,249,247,255,71,3,62,2,224,3,65,9,103,11,26,8,253,3,166,1,100,0,64,255,153,252, +172,248,127,247,25,251,224,0,196,6,150,11,67,12,162,8,202,5,186,5,48,4,85,255,16,251,206,249,124,249,218,248, +22,250,214,254,16,5,60,9,7,10,124,8,202,5,37,2,158,253,188,249,40,249,21,252,212,254,229,254,241,254,63,2, +232,6,19,8,141,4,96,0,45,255,253,254,110,252,178,249,208,250,74,254,45,1,192,4,22,9,70,10,24,8,237,6, +148,7,71,7,78,5,106,2,118,255,247,253,43,253,10,251,137,251,105,4,46,16,154,18,81,10,22,2,212,1,207,6, +16,9,200,4,55,254,93,251,59,252,153,253,45,255,214,1,141,4,74,6,242,6,181,6,37,7,128,9,121,11,111,10, +249,7,130,6,132,5,159,4,61,5,169,6,248,5,116,3,235,2,7,5,188,5,200,3,240,3,191,8,22,13,224,11, +71,7,28,4,44,3,246,1,191,254,131,251,194,252,217,2,137,7,113,6,86,3,160,3,249,6,177,9,19,10,165,9, +73,10,99,10,85,6,67,255,43,251,26,253,196,2,195,8,38,12,29,11,204,7,73,6,236,6,184,6,12,4,50,0, +128,254,163,1,165,7,153,11,13,12,86,11,140,10,30,9,111,7,138,6,209,6,243,6,207,3,244,252,88,248,128,251, +51,3,59,8,163,8,1,7,107,5,224,4,68,5,125,4,41,1,142,253,164,252,186,253,64,254,175,254,30,2,140,8, +248,12,135,11,43,7,243,5,225,8,236,10,85,8,169,3,228,1,21,4,224,6,194,6,222,3,117,2,239,5,172,10, +185,9,219,3,14,1,202,3,53,6,187,4,118,2,10,3,109,6,131,9,245,8,21,6,114,6,190,10,16,12,115,6, +236,254,18,252,14,255,117,4,141,7,126,6,13,5,89,7,239,10,172,10,81,7,242,5,169,7,34,8,7,4,170,253, +155,250,126,253,129,3,49,8,13,10,74,10,52,10,108,10,43,11,179,11,196,10,93,8,226,5,89,4,15,4,85,5, +185,7,186,9,3,11,150,12,108,13,231,10,77,6,2,5,217,8,149,12,195,10,55,5,247,2,66,7,50,13,29,14, +129,10,128,8,60,10,68,11,142,8,74,5,108,5,249,7,202,9,120,10,93,11,61,12,192,11,152,9,177,6,218,4, +42,6,18,10,238,11,189,7,158,255,137,249,118,248,57,250,85,251,121,250,51,248,60,245,116,242,109,241,151,242,96,243, +254,240,164,236,188,233,241,232,119,232,102,231,113,229,18,226,21,223,241,223,242,227,23,230,51,228,119,224,49,220,178,215, +204,213,140,216,78,220,155,219,36,214,68,209,161,210,164,217,65,222,46,218,191,209,154,205,213,206,76,208,124,207,44,206, +230,206,168,210,21,215,82,216,120,214,41,213,94,213,244,212,37,211,206,208,141,206,80,205,235,205,23,208,177,211,119,216, +244,219,222,219,216,217,30,217,122,218,184,220,5,222,72,220,217,215,119,213,33,218,195,228,231,237,254,238,9,234,150,231, +1,236,159,242,158,245,110,245,25,245,167,244,205,243,242,245,180,253,81,6,4,8,239,2,73,255,213,1,211,6,150,9, +133,10,169,11,227,12,20,14,225,16,152,21,247,24,9,24,233,20,181,20,105,25,156,31,6,34,44,31,255,27,69,30, +70,36,70,39,229,37,106,36,110,36,142,36,125,37,16,40,241,41,251,40,111,38,122,37,156,40,99,46,68,49,187,46, +76,43,251,42,163,43,94,42,27,40,53,39,57,41,5,46,235,50,32,53,80,52,45,49,15,45,246,42,198,43,2,44, +150,41,12,39,139,38,184,39,82,42,114,45,118,46,107,44,81,41,235,38,103,37,78,36,43,35,54,34,198,33,214,32, +20,31,130,31,174,36,25,43,137,43,107,35,12,25,83,21,24,25,185,28,153,27,129,25,173,26,157,29,120,30,140,27, +248,22,79,21,152,23,92,24,53,19,109,11,6,7,163,7,163,10,13,13,178,14,84,17,217,19,158,18,107,14,243,11, +165,11,232,9,108,6,31,4,68,4,214,5,18,7,68,7,66,8,127,10,130,9,13,3,69,253,186,253,211,0,87,1, +230,0,46,3,215,6,54,7,101,2,54,252,48,250,15,252,1,252,75,248,187,246,223,250,59,255,164,253,157,248,210,245, +104,244,189,240,49,237,136,238,10,243,182,244,197,241,103,238,70,239,135,243,28,245,72,241,62,237,40,237,175,236,223,230, +240,222,248,219,173,224,244,232,201,237,98,237,68,237,226,240,203,244,246,245,250,243,225,236,211,225,110,218,203,217,108,218, +164,218,16,223,231,230,157,235,0,235,66,232,130,230,109,230,232,229,247,226,170,223,109,222,62,221,173,218,123,217,81,218, +73,217,211,212,10,209,103,211,86,220,48,228,230,226,225,219,76,217,243,219,242,219,129,215,141,212,18,214,213,216,51,216, +34,211,127,206,40,208,179,214,138,219,153,220,242,220,246,221,148,222,176,222,107,222,158,220,3,217,18,214,210,214,85,219, +54,224,7,226,249,224,75,224,184,225,251,226,176,225,208,223,95,224,185,225,212,224,232,223,51,227,122,233,79,237,218,235, +122,231,42,229,40,231,47,234,136,234,105,233,103,233,59,234,148,235,227,237,180,239,128,240,212,242,157,246,10,248,247,246, +239,246,50,248,198,248,11,249,51,249,216,247,60,246,203,247,197,252,52,2,167,5,40,6,12,4,138,1,178,1,185,5, +128,11,139,15,195,16,51,17,204,18,230,20,83,21,82,19,204,17,66,20,133,24,75,25,89,24,217,28,123,38,206,44, +220,43,97,40,117,40,48,45,156,49,12,48,114,42,75,40,241,42,99,44,190,41,168,38,241,39,58,47,134,56,152,60, +244,57,85,54,68,52,96,48,83,42,77,38,22,38,201,39,180,40,31,39,99,37,142,40,124,47,18,50,27,45,109,38, +27,35,191,33,88,31,220,27,125,25,157,25,137,26,114,25,111,22,192,19,38,18,60,17,84,17,216,17,41,16,149,10, +81,3,39,255,126,0,132,3,32,2,22,253,34,252,244,1,124,6,42,2,227,248,213,243,16,245,224,246,240,244,83,241, +101,240,66,242,142,242,10,239,222,234,128,233,94,234,118,235,155,235,156,233,208,229,14,227,51,226,169,224,154,221,19,219, +227,217,2,218,3,220,195,221,209,219,133,216,133,217,1,222,134,223,73,219,173,212,192,208,193,209,4,213,18,214,196,212, +150,212,185,214,66,217,86,218,134,217,173,216,180,218,38,222,215,221,31,218,156,217,241,221,205,224,129,222,149,219,24,222, +1,230,19,237,145,237,35,233,180,230,193,232,164,234,18,233,230,231,73,236,143,244,164,249,227,247,52,243,93,241,175,243, +27,248,145,252,196,254,172,252,202,247,201,244,172,246,91,252,58,2,252,4,160,4,146,4,170,6,81,8,145,7,19,7, +69,9,205,11,165,11,74,10,86,11,215,14,247,16,133,15,169,13,167,15,198,20,247,24,115,26,195,25,153,23,253,21, +112,23,28,27,85,30,208,32,221,34,214,34,151,32,97,31,155,33,239,37,201,40,96,39,53,35,155,33,176,36,90,40, +33,41,131,40,129,40,164,40,33,40,55,39,42,39,113,41,11,45,193,46,58,45,66,41,176,35,139,31,24,33,134,38, +237,40,170,38,245,35,193,34,215,34,142,37,180,41,60,42,240,37,85,33,2,31,96,29,3,28,186,28,118,31,126,33, +202,32,49,30,13,28,148,27,22,28,69,28,29,27,140,24,123,22,80,23,11,26,9,27,2,26,189,26,45,30,79,32, +194,30,158,27,106,24,121,20,179,16,50,15,211,15,124,17,41,20,105,23,153,26,114,30,51,34,86,34,10,30,244,24, +90,21,68,18,110,15,101,13,114,11,202,9,253,10,41,16,209,21,237,22,83,19,184,16,117,18,200,19,220,15,94,10, +97,9,225,12,112,17,131,20,203,19,6,15,238,9,222,7,128,8,162,10,31,14,169,18,205,22,116,23,198,18,39,13, +53,13,148,17,185,18,241,13,202,6,158,0,213,252,199,251,198,252,10,0,112,6,196,13,64,18,167,19,26,20,35,20, +6,19,174,15,218,8,84,255,81,246,8,241,51,242,136,250,37,5,161,11,72,14,199,16,227,16,145,9,24,253,140,244, +9,245,192,248,140,245,72,235,117,229,118,234,26,242,91,243,252,241,186,246,242,0,2,7,234,2,36,250,214,245,81,245, +174,239,243,226,69,216,210,215,107,224,80,235,154,242,232,244,245,244,246,243,238,238,7,230,180,224,230,226,63,228,232,219, +0,208,92,206,61,217,75,229,200,232,27,229,110,226,158,229,43,234,65,232,202,224,118,219,218,216,200,210,207,201,26,197, +111,199,144,207,26,221,223,235,66,242,223,234,164,218,196,203,43,197,104,197,150,198,246,199,114,205,227,213,111,219,163,220, +211,220,158,222,88,226,195,228,176,224,129,215,191,209,8,211,236,214,54,218,103,220,69,219,61,215,117,214,194,219,153,225, +198,226,156,225,23,226,138,225,59,218,72,207,254,204,199,216,94,232,62,238,29,232,24,222,145,217,169,221,132,229,4,235, +144,237,197,238,56,238,24,237,92,238,204,240,219,240,54,239,206,237,196,234,210,229,123,229,211,239,112,0,117,10,31,6, +74,250,146,244,209,248,140,254,109,254,89,251,168,252,30,4,52,12,3,16,181,18,252,26,106,39,29,45,153,36,64,20, +219,10,38,16,224,28,205,35,174,32,43,27,196,27,211,33,2,38,220,36,32,35,217,37,84,42,2,42,232,34,64,25, +44,20,124,24,135,34,144,40,11,39,19,36,233,35,9,35,76,30,137,24,213,21,95,22,7,23,114,21,45,19,35,19, +36,20,212,17,11,11,15,3,127,252,231,246,48,242,115,241,229,246,221,253,182,254,89,249,176,244,12,243,213,239,8,234, +32,232,244,237,188,244,223,242,23,234,26,230,189,234,113,237,129,230,187,221,156,221,137,227,8,229,195,222,251,215,141,215, +78,217,45,212,162,202,178,201,80,212,239,220,153,216,172,204,208,196,37,196,183,197,192,198,150,201,8,206,227,206,54,203, +37,201,171,202,226,201,131,196,115,192,147,194,219,200,223,204,206,200,95,190,206,183,101,187,198,194,129,197,86,196,44,195, +208,192,205,187,229,184,252,189,239,200,194,208,192,208,218,205,25,206,83,208,47,209,107,210,12,215,11,221,203,223,248,221, +103,218,231,216,140,218,146,220,210,220,96,222,13,229,91,237,27,240,177,237,97,237,134,241,101,245,53,246,171,245,236,244, +60,244,67,245,134,248,117,252,13,1,55,7,180,12,131,14,86,14,31,16,107,19,14,20,40,17,50,15,106,17,51,21, +200,22,119,22,0,22,255,21,48,24,242,29,0,36,73,38,61,38,43,39,77,40,192,39,4,39,212,40,114,45,120,50, +84,53,67,54,173,55,168,57,156,57,253,55,149,57,102,64,195,70,90,69,102,61,254,55,67,57,248,58,137,56,156,55, +48,61,117,67,21,67,160,62,65,61,51,64,27,67,220,66,89,64,20,62,55,61,233,60,205,59,167,57,180,55,112,55, +44,57,241,59,240,61,178,60,75,55,56,49,204,47,124,51,229,54,86,53,134,47,180,41,56,39,24,40,235,41,241,42, +84,44,71,48,255,52,43,52,156,43,107,35,84,36,51,43,234,46,42,46,115,45,222,44,245,41,226,38,117,39,169,42, +38,44,179,41,221,36,18,33,200,32,4,35,245,35,237,33,160,32,118,35,123,38,203,35,236,29,28,28,54,31,170,34, +32,36,154,35,108,33,100,31,210,30,86,30,151,29,183,30,199,33,37,36,82,36,93,34,128,30,142,25,76,21,176,20, +45,26,173,34,144,38,89,35,215,29,220,25,58,24,130,26,92,32,102,37,137,38,112,36,76,33,236,32,188,37,178,42, +41,40,16,31,235,23,88,24,41,30,194,34,175,34,130,33,129,34,4,34,127,29,190,26,81,30,182,34,237,31,207,21, +68,12,26,12,120,21,149,29,75,27,40,19,34,16,80,20,74,24,205,22,89,18,212,15,157,16,177,18,187,18,93,14, +153,8,20,9,221,17,188,26,255,26,184,18,239,8,122,5,170,9,63,13,151,9,184,4,86,6,62,9,186,4,160,252, +138,252,41,7,249,16,141,13,39,1,18,252,3,2,195,5,119,0,90,250,195,250,0,0,133,4,30,2,155,247,195,237, +161,236,138,240,50,243,10,246,95,251,253,253,38,246,25,229,173,216,144,221,200,237,241,246,79,241,71,230,156,226,246,232, +133,238,27,231,29,216,250,210,241,217,62,222,234,217,222,212,3,211,107,210,88,214,192,226,39,240,83,240,194,224,240,208, +68,207,187,213,241,212,151,203,229,196,106,199,206,208,218,218,137,223,205,222,144,221,51,220,132,216,152,215,136,221,112,224, +226,213,238,198,16,197,232,207,161,214,25,210,44,205,127,207,125,209,65,205,4,202,151,205,60,210,96,209,6,205,3,205, +122,214,43,226,40,225,69,211,104,202,153,206,21,211,240,205,122,197,162,194,169,198,114,206,177,214,74,221,23,224,58,221, +65,217,166,220,188,227,107,223,6,205,231,188,199,188,20,201,141,211,239,208,156,195,1,185,79,185,185,192,206,201,92,210, +12,214,92,208,117,196,185,188,35,193,67,205,243,209,94,198,209,179,205,170,114,176,209,185,16,184,53,171,235,164,226,176, +114,196,223,207,103,208,152,201,219,191,172,187,113,191,79,191,201,178,196,163,78,160,140,168,27,178,166,182,129,186,187,195, +218,205,218,206,42,198,167,188,167,185,88,190,247,196,118,196,163,188,139,183,237,184,16,186,240,184,244,186,155,192,138,196, +233,195,166,191,203,186,138,186,21,194,186,205,21,213,112,210,91,200,7,192,36,193,45,203,20,213,121,211,126,197,162,186, +236,193,128,213,159,226,164,225,119,219,88,219,220,225,244,228,162,221,143,211,192,211,246,222,159,233,249,233,25,226,31,222, +236,229,220,241,14,247,111,248,219,252,32,255,121,248,9,240,115,242,28,1,195,15,3,17,65,6,136,254,212,1,4,9, +168,13,112,17,149,20,83,20,28,17,21,13,121,10,21,13,58,21,155,29,90,35,125,39,78,40,54,36,237,31,28,33, +114,39,14,46,90,47,45,42,91,37,184,39,21,46,70,49,114,49,103,51,85,56,78,62,197,67,229,70,62,70,44,68, +190,68,193,70,40,69,156,64,243,62,134,64,171,64,247,63,240,66,199,73,235,81,164,89,213,93,145,92,25,90,151,91, +199,95,2,97,252,90,236,79,61,73,146,76,42,83,98,85,37,86,246,89,89,94,166,95,1,93,75,88,40,88,95,96, +41,103,152,96,43,81,52,71,13,73,181,82,113,91,199,90,196,80,109,71,239,70,246,77,195,86,207,92,235,93,88,90, +161,83,36,76,203,71,173,72,175,74,1,72,103,65,65,61,225,62,222,66,140,68,14,68,135,68,238,70,53,73,2,72, +128,65,59,58,216,57,100,62,134,61,54,54,217,49,131,50,228,49,175,47,103,48,13,51,245,51,225,50,160,48,127,45, +112,42,248,39,31,39,23,42,213,46,78,46,253,37,206,27,178,22,181,24,100,30,107,32,146,26,195,18,177,18,43,26, +2,31,248,27,250,23,209,25,104,28,183,23,171,14,89,10,150,12,75,15,100,13,201,8,45,8,185,12,58,13,23,4, +1,251,33,253,198,6,48,13,87,12,5,7,156,2,140,3,21,8,29,10,30,7,249,0,2,251,224,249,121,254,48,1, +75,251,12,241,52,235,37,237,186,244,207,252,137,0,213,255,38,253,163,248,101,243,80,241,95,242,110,242,228,241,137,244, +74,248,227,246,251,239,43,234,101,234,23,239,170,244,148,250,44,0,183,0,119,249,127,240,102,238,30,243,251,245,87,240, +26,230,226,225,171,231,73,239,174,239,116,234,218,231,222,235,53,242,108,243,254,237,36,233,38,235,92,240,112,241,97,238, +240,236,77,239,212,241,81,241,75,239,28,238,172,235,199,228,91,220,8,218,1,225,170,235,127,241,78,240,55,237,140,236, +136,238,58,244,53,253,223,0,139,247,200,231,87,221,135,218,21,222,251,233,220,249,162,1,16,253,158,244,64,241,138,244, +38,251,49,1,71,4,100,1,182,244,164,226,155,218,172,229,20,249,133,3,100,0,20,248,123,244,55,248,19,254,163,1, +249,4,150,8,39,6,119,252,62,246,51,251,172,4,102,9,233,9,193,9,209,6,213,255,88,251,177,254,255,3,219,2, +3,254,52,254,68,4,217,10,50,17,187,25,121,33,172,33,163,24,64,12,55,5,201,8,119,20,110,31,214,34,41,32, +56,29,45,28,251,27,84,30,48,38,12,48,154,50,64,41,75,25,241,11,162,6,205,8,37,14,186,18,32,21,45,20, +32,14,226,4,25,255,191,0,111,6,154,10,10,10,0,2,109,242,167,228,125,229,10,244,214,255,164,252,147,239,80,228, +123,221,252,213,163,205,19,204,254,211,253,217,4,210,62,194,252,187,95,196,231,208,52,215,88,212,196,202,191,193,228,190, +126,189,227,182,205,175,44,176,244,180,143,182,204,180,120,179,112,179,45,179,123,176,131,170,0,164,169,159,201,156,28,155, +102,155,136,154,119,149,26,144,228,142,178,143,54,144,32,146,37,149,52,150,24,148,117,142,186,133,0,128,0,128,252,134, +62,144,102,152,42,155,206,148,240,137,190,132,16,137,87,145,117,150,192,150,78,149,153,147,20,143,155,136,203,136,76,149, +68,166,3,175,219,173,179,171,88,174,115,178,44,179,60,178,40,181,69,188,124,192,97,188,100,181,216,182,174,195,16,211, +171,219,199,219,172,214,154,209,215,209,155,215,247,221,134,226,194,230,149,233,120,232,102,230,15,234,225,245,237,4,18,14, +151,11,84,2,158,253,166,2,143,12,48,20,152,22,178,21,64,22,27,27,118,33,122,36,42,36,29,37,50,41,204,44, +90,45,184,45,15,48,177,49,251,49,135,53,163,61,207,68,142,70,226,67,224,64,39,66,117,72,203,77,200,76,82,72, +162,70,62,74,145,82,160,92,97,98,35,95,187,84,13,75,24,74,73,81,44,87,230,86,84,86,21,89,95,90,169,88, +131,88,184,90,25,93,80,96,183,98,20,95,42,86,243,78,112,77,101,81,190,88,145,94,89,95,88,93,39,90,184,83, +98,77,61,79,11,87,98,87,97,75,5,64,144,67,45,82,114,90,22,84,1,74,49,73,50,78,154,77,212,71,77,70, +55,73,206,71,230,64,133,60,112,62,21,67,198,70,179,71,191,69,136,67,78,65,43,59,154,51,20,52,192,59,155,61, +55,53,109,44,42,43,0,48,192,53,15,55,46,50,150,44,73,44,123,47,16,48,74,43,110,36,85,34,224,38,172,41, +142,35,117,27,188,28,66,37,247,39,140,31,252,22,149,27,85,40,139,41,108,25,134,10,177,12,140,23,165,26,0,21, +85,17,69,20,218,23,245,21,252,16,80,16,0,22,146,26,205,20,146,6,7,254,250,3,72,14,26,14,98,5,25,1, +94,5,127,11,195,12,136,7,36,0,181,253,201,0,125,2,144,0,39,0,96,2,103,1,116,250,96,242,15,240,172,245, +242,253,194,0,212,252,130,249,252,251,156,255,48,253,162,245,46,240,42,240,248,241,183,241,241,239,113,238,183,236,206,234, +2,237,87,246,164,255,48,254,190,244,243,239,19,240,122,233,3,221,228,217,223,228,254,240,16,242,139,233,24,227,211,232, +136,246,128,252,24,244,135,231,87,225,43,225,206,226,50,228,154,228,24,229,50,231,53,233,252,231,90,227,130,222,176,222, +240,230,33,241,224,240,77,227,24,214,199,216,165,233,117,246,173,241,110,226,157,217,111,219,116,221,192,216,92,211,67,214, +122,224,223,231,244,230,126,229,209,236,156,246,147,242,98,222,78,204,160,204,24,217,253,222,87,216,167,208,156,210,63,220, +101,229,144,232,180,229,247,225,208,225,125,225,37,218,51,206,63,199,190,200,98,206,73,213,223,220,134,225,16,224,21,220, +255,217,134,214,212,204,250,192,205,187,71,192,2,202,113,209,231,208,101,203,110,203,107,213,252,224,46,227,170,216,129,198, +246,182,35,177,89,177,77,177,110,180,173,192,195,208,77,217,227,214,221,208,171,208,149,213,248,210,50,195,87,181,88,184, +31,195,125,196,171,190,19,192,50,204,214,217,45,223,173,216,81,204,180,198,52,205,42,214,150,213,183,204,71,199,76,205, +40,219,143,229,230,228,77,221,186,216,239,217,10,219,114,215,222,208,155,204,102,208,233,220,135,233,116,237,19,236,84,238, +138,243,148,243,207,235,30,225,96,217,17,216,160,221,70,231,169,240,245,245,61,246,88,245,254,247,240,252,154,254,51,251, +107,246,91,244,80,246,131,250,148,253,249,254,36,3,18,13,78,23,209,24,116,16,91,6,233,1,253,2,246,4,247,4, +208,5,174,13,29,28,166,38,230,38,81,36,116,38,196,40,115,37,2,31,64,24,64,16,235,8,29,7,14,14,73,30, +201,49,60,60,238,57,35,54,76,56,190,56,226,48,200,38,30,34,194,34,247,36,154,38,249,40,226,47,173,58,90,65, +228,62,176,56,227,53,230,54,233,56,101,57,254,53,106,49,52,52,226,63,86,73,47,72,133,65,150,61,233,61,191,63, +233,62,62,57,107,52,184,54,138,58,37,56,125,54,28,64,187,79,208,87,149,83,21,71,215,56,2,47,111,43,22,44, +30,48,230,53,171,56,235,55,64,57,16,62,68,65,139,64,250,62,46,63,56,63,140,57,157,44,103,33,141,33,206,40, +133,44,114,44,92,46,247,48,6,49,166,50,16,56,137,55,122,40,98,20,99,12,213,17,33,24,87,26,100,30,60,37, +15,40,93,37,124,36,122,41,174,43,79,30,199,4,80,245,89,253,116,13,71,15,127,5,133,5,198,22,51,39,108,35, +170,17,184,8,110,14,221,17,3,9,246,252,186,244,8,237,147,232,227,240,186,3,74,18,72,20,44,14,124,5,70,251, +99,242,201,239,134,242,155,244,40,244,78,243,240,241,25,240,22,241,127,245,24,248,72,243,239,229,159,214,235,209,148,219, +195,229,186,227,172,220,96,223,189,236,196,247,161,244,116,229,193,216,227,214,71,215,112,208,192,199,211,199,6,210,180,222, +242,228,251,227,113,229,24,238,182,242,199,232,6,216,48,207,70,209,246,213,220,213,231,210,109,212,10,219,50,224,16,227, +18,232,197,235,195,230,76,220,238,213,175,213,30,216,27,221,89,229,119,236,81,237,106,234,27,234,197,233,42,224,196,207, +0,200,68,207,177,218,173,223,163,224,214,229,134,241,160,252,201,253,253,243,188,231,133,225,25,226,152,227,76,225,221,221, +56,222,148,225,192,230,115,241,97,255,242,4,37,255,153,248,90,247,25,247,149,245,8,245,121,245,179,245,108,246,191,248, +148,252,61,0,241,1,32,2,195,0,70,252,90,248,224,251,127,4,156,10,49,15,95,21,90,24,206,21,172,18,212,14, +208,6,222,255,245,255,114,2,88,2,210,3,4,12,241,24,79,35,156,36,10,30,9,24,22,24,154,27,41,29,234,25, +56,20,110,18,121,23,224,31,233,39,16,45,185,43,69,37,18,34,156,37,173,41,156,40,239,34,100,28,196,25,64,29, +70,35,251,38,185,38,12,35,166,30,136,28,28,26,6,18,239,5,18,254,154,0,185,12,152,25,148,28,188,21,59,15, +79,14,6,15,243,12,224,6,165,254,157,249,143,250,179,252,14,251,124,247,127,246,15,249,96,251,89,249,65,245,171,244, +53,246,205,244,87,242,230,242,152,244,233,244,188,243,170,239,228,234,106,236,199,242,89,243,12,236,236,229,132,229,14,230, +226,226,42,222,238,221,234,226,225,230,235,230,26,229,217,222,235,209,43,199,165,197,185,197,249,192,103,190,16,196,89,205, +192,210,239,207,244,198,96,193,11,197,96,203,29,204,61,199,2,192,85,185,161,182,61,184,48,187,94,190,248,193,140,196, +7,197,94,195,242,191,7,190,134,193,152,200,104,205,214,204,121,200,20,198,69,203,16,213,224,217,197,214,119,210,103,211, +176,217,117,224,176,226,69,225,90,225,185,227,24,229,131,229,11,232,13,238,250,245,239,250,216,247,202,238,104,232,73,235, +234,246,170,2,140,3,51,251,71,248,104,255,33,4,138,255,239,250,88,0,176,14,144,27,4,28,90,18,237,13,30,21, +200,28,25,27,16,19,240,12,227,14,169,23,99,29,77,27,10,26,246,31,249,38,121,41,58,42,28,45,76,51,153,58, +49,60,154,52,188,43,180,43,184,51,117,58,34,58,55,55,37,58,102,66,163,70,5,67,38,61,215,57,109,57,64,59, +67,61,12,61,249,59,73,61,173,65,227,70,191,72,68,69,27,65,138,64,168,62,120,54,11,46,246,45,212,53,81,63, +206,68,119,68,225,65,160,65,255,66,112,66,8,62,117,53,197,43,86,39,53,42,29,48,175,53,192,57,252,57,251,53, +18,49,44,46,234,46,222,51,4,57,204,56,107,52,90,49,184,48,103,48,130,48,250,49,170,50,51,47,211,40,62,37, +176,37,193,36,137,33,112,34,201,40,89,46,17,48,90,47,222,44,143,41,23,37,24,28,105,17,196,14,32,20,145,23, +16,24,207,27,107,32,90,32,109,30,125,30,145,30,55,28,87,22,144,12,49,3,184,0,218,5,145,13,70,17,87,12, +84,3,214,2,178,14,40,27,38,28,234,16,51,0,165,243,6,244,168,0,166,13,218,15,121,8,175,2,25,6,37,13, +47,12,200,1,181,249,240,252,65,4,205,1,55,246,58,241,43,250,125,5,219,7,198,4,129,3,217,3,48,3,88,1, +61,254,161,249,199,244,235,241,29,243,37,248,247,252,35,253,96,248,229,242,85,242,121,247,71,251,103,249,76,248,246,250, +251,246,117,232,29,222,40,225,220,229,239,225,239,220,213,223,92,230,219,232,178,232,200,235,177,240,48,239,23,230,202,223, +183,226,17,230,250,221,24,205,5,195,115,201,81,215,133,221,164,221,199,228,100,240,139,238,146,220,19,207,234,212,54,226, +165,223,2,201,255,181,241,190,125,220,228,239,179,234,58,221,23,219,71,225,137,223,238,210,194,202,123,208,220,215,177,210, +190,200,218,202,214,214,92,219,66,212,254,208,7,220,215,233,10,233,109,218,42,205,181,200,198,199,101,198,214,199,14,206, +223,212,86,216,65,218,166,220,68,218,189,205,92,191,101,190,230,201,68,207,231,197,245,189,13,201,170,221,92,224,151,201, +171,178,249,179,80,196,192,201,51,192,191,186,68,194,204,199,110,190,234,178,161,186,44,210,58,223,227,211,14,191,127,181, +160,183,139,181,110,168,8,159,133,169,179,190,255,197,13,187,11,179,39,189,110,208,195,218,196,211,122,192,92,173,125,165, +24,171,181,181,193,184,5,178,207,175,9,190,243,209,102,216,14,209,91,201,88,197,72,191,220,182,216,179,218,187,231,200, +152,204,105,195,30,190,218,201,86,217,63,217,138,207,198,208,87,222,69,227,114,210,119,187,42,186,185,211,45,239,79,245, +148,235,255,229,37,234,172,236,197,229,36,221,122,223,35,236,33,244,56,238,6,228,21,228,5,239,19,251,87,2,153,4, +208,2,237,0,216,3,170,7,57,3,75,250,147,252,42,12,172,22,239,15,142,3,138,3,200,16,10,27,79,20,62,3, +89,255,47,20,5,46,15,48,55,26,213,9,85,20,53,46,37,60,107,51,213,32,0,22,170,25,76,38,162,47,243,45, +232,39,159,41,127,50,219,55,172,55,138,58,56,67,56,72,238,64,118,51,82,47,15,57,200,66,168,62,156,49,30,44, +140,53,241,68,250,76,123,75,144,72,226,71,53,70,218,69,241,76,86,86,51,86,183,76,199,68,253,67,18,71,138,72, +139,69,37,65,78,66,138,74,128,82,100,82,217,74,148,68,212,70,69,78,186,81,164,78,75,73,237,68,23,68,29,73, +32,79,220,76,12,67,45,61,150,65,152,73,190,74,122,67,93,60,65,60,77,63,98,63,178,63,252,69,68,76,228,69, +223,51,54,40,62,46,177,57,122,56,120,44,66,38,189,45,226,58,153,63,253,52,169,36,190,31,220,39,2,46,244,42, +101,38,75,37,7,36,49,33,98,31,18,31,129,31,92,33,177,35,173,34,224,28,155,22,172,19,78,17,97,13,246,13, +226,22,169,31,181,31,157,26,150,23,207,23,171,24,107,21,92,10,133,253,2,251,121,4,70,14,51,14,216,6,154,4, +89,14,7,26,146,25,26,15,241,5,182,255,144,248,102,243,120,244,138,249,73,253,225,251,37,247,49,248,228,3,107,16, +112,17,249,7,34,253,92,246,122,244,53,245,143,243,29,238,246,235,164,244,101,3,187,9,3,2,240,247,200,247,148,253, +22,254,233,247,139,242,180,242,86,246,64,249,118,250,154,251,104,252,12,252,81,253,222,0,101,255,128,244,59,234,140,238, +132,255,153,9,14,254,173,233,216,232,135,255,212,16,211,8,28,247,232,242,230,250,117,253,191,243,174,235,222,245,219,10, +65,16,48,255,61,240,175,246,163,7,227,15,147,11,20,0,98,242,221,234,231,242,96,6,115,18,50,12,117,255,14,253, +83,4,0,10,7,10,208,6,101,1,88,251,142,248,87,251,102,2,71,9,113,11,173,10,86,13,1,19,184,19,74,12, +52,2,243,251,29,251,149,251,187,248,122,246,163,253,59,12,207,21,81,21,40,17,61,14,18,11,187,5,118,255,242,251, +4,253,193,253,117,248,66,242,51,246,130,4,173,17,82,21,150,16,205,8,85,3,1,3,28,4,22,255,156,242,235,230, +152,229,251,240,208,1,134,11,88,8,136,1,65,3,255,10,167,12,175,3,14,245,63,232,152,228,30,235,185,242,8,245, +148,247,190,254,201,4,6,5,205,1,159,253,226,249,251,248,9,251,159,253,156,253,21,246,242,230,241,220,253,227,1,245, +251,255,82,0,35,252,80,249,219,248,43,246,153,237,68,230,197,234,242,247,60,0,1,254,178,246,159,239,5,234,3,232, +206,236,17,246,75,251,15,248,8,241,121,235,81,232,138,233,112,241,187,251,72,0,248,250,94,238,85,228,175,231,46,245, +7,252,46,244,32,232,96,229,145,238,41,252,193,3,127,1,202,250,21,245,2,241,239,239,29,243,249,245,154,243,175,238, +68,237,58,241,167,246,252,246,217,240,87,235,122,235,191,236,134,234,154,230,171,225,248,217,13,212,183,215,102,226,194,231, +21,226,46,218,70,219,11,228,102,232,194,223,222,205,217,190,223,187,36,195,227,203,146,208,17,209,95,207,186,207,234,212, +209,216,253,210,141,199,100,195,250,201,166,208,116,203,46,187,67,174,118,176,164,188,250,198,99,205,105,210,65,211,105,206, +58,201,70,200,168,202,67,204,230,199,121,189,51,182,67,185,229,192,48,196,242,195,88,197,23,200,163,200,226,197,240,192, +215,187,89,186,116,191,9,200,83,204,76,200,237,190,141,182,150,182,253,194,85,211,10,215,117,201,232,184,49,181,5,191, +189,202,129,206,116,204,40,206,36,214,136,220,46,219,253,212,65,208,44,208,149,211,27,215,247,216,39,218,238,220,95,228, +82,240,109,248,51,245,68,237,193,236,165,243,53,249,169,249,44,247,251,245,100,250,146,2,143,6,10,5,150,6,19,15, +227,22,175,22,1,17,130,12,180,10,211,9,168,12,115,23,219,36,75,41,246,34,204,27,71,27,157,31,136,35,226,35, +99,33,241,31,76,34,247,38,244,42,88,45,128,46,183,45,141,42,94,40,255,43,230,51,240,56,39,57,47,57,219,57, +12,55,251,48,21,44,16,42,187,43,204,51,142,63,155,68,17,62,47,53,117,53,143,62,252,71,211,75,18,72,118,61, +249,50,34,50,5,59,143,67,33,68,200,61,52,54,230,51,94,58,138,69,132,76,21,74,176,64,210,55,157,53,112,56, +56,57,143,53,140,50,226,52,76,59,65,64,203,62,7,56,40,51,126,52,223,55,12,55,203,48,27,40,233,33,63,35, +29,44,251,52,255,53,103,48,13,45,196,48,193,53,213,51,154,43,0,36,43,32,148,30,237,30,64,33,79,34,179,32, +94,34,109,44,243,55,137,56,159,44,83,30,33,22,100,21,254,25,125,30,229,27,222,19,171,18,212,30,145,45,228,47, +165,37,11,27,54,23,148,22,236,20,26,19,52,18,234,17,21,20,246,25,58,31,3,31,61,27,226,24,118,24,233,22, +207,18,224,13,155,10,208,9,6,11,183,14,28,21,118,26,53,25,192,17,104,12,97,16,135,25,133,27,141,17,252,4, +144,255,77,0,54,4,28,13,1,24,86,27,236,21,138,17,255,18,102,20,6,16,121,7,198,0,104,0,43,4,161,5, +52,3,90,1,42,3,203,8,223,17,198,26,31,29,203,22,240,10,203,253,213,244,148,244,27,250,71,254,181,255,46,2, +188,7,74,15,246,20,141,19,158,11,172,4,140,2,27,1,69,253,59,250,95,252,143,3,117,9,121,6,77,252,228,246, +152,253,222,9,84,17,208,17,194,14,243,8,238,254,113,243,253,237,112,243,180,0,243,12,153,15,74,7,208,252,42,250, +58,254,36,0,221,252,191,248,187,246,39,246,184,246,80,249,100,253,163,254,83,247,231,232,197,222,245,225,41,238,198,248, +212,252,11,251,63,245,175,238,82,235,238,235,117,238,172,241,62,244,194,242,198,235,95,227,253,222,15,225,42,233,218,242, +169,246,41,243,173,239,22,240,222,238,240,231,98,223,84,219,67,222,214,228,143,230,53,224,210,219,16,228,246,243,140,252, +179,245,148,228,0,214,21,211,64,217,108,223,143,224,50,221,174,215,183,210,9,208,182,208,99,215,178,227,252,235,241,228, +50,208,105,189,230,187,200,202,25,216,43,213,48,201,0,198,247,206,104,215,93,214,133,208,89,206,94,207,247,203,238,193, +238,183,200,180,63,186,67,197,82,205,68,203,209,195,25,193,83,196,53,200,146,201,39,198,201,189,185,181,253,176,15,173, +44,172,42,180,9,193,138,200,244,199,92,195,183,191,178,193,208,199,129,200,241,190,153,177,12,168,0,165,101,169,137,178, +121,185,139,187,89,189,149,193,149,195,40,190,28,180,169,174,159,178,142,185,23,185,240,175,32,168,164,171,204,184,104,196, +214,198,182,194,169,190,197,189,181,190,164,190,138,189,3,191,158,195,156,197,61,194,243,191,251,196,26,206,200,211,132,211, +206,208,121,207,142,207,10,208,57,211,84,219,98,228,161,231,61,228,62,224,222,225,215,233,20,243,156,247,41,246,109,242, +219,240,83,243,224,248,53,255,95,3,29,2,77,251,4,245,38,246,109,254,78,8,108,15,133,17,99,14,123,9,101,7, +181,10,137,20,138,33,0,39,190,29,83,15,243,12,141,25,30,38,32,37,52,27,174,23,138,31,99,40,95,41,232,38, +20,42,247,51,130,60,70,59,183,49,178,42,189,44,202,50,143,54,124,56,194,57,221,56,12,55,190,56,152,63,74,72, +95,77,138,75,88,69,132,64,210,62,247,61,178,61,11,64,47,69,41,75,212,78,105,76,9,69,203,65,246,72,111,83, +233,85,79,80,100,75,206,75,72,79,120,82,88,83,172,80,63,75,235,70,210,71,189,77,74,84,39,89,168,93,130,95, +110,88,192,74,194,67,83,74,205,84,72,86,159,77,167,67,221,64,164,70,201,79,83,86,67,87,243,81,142,73,50,69, +148,70,31,69,171,59,152,51,199,55,247,68,181,79,36,81,98,73,20,63,154,60,190,67,176,72,9,66,242,52,11,43, +51,40,75,45,228,55,63,64,216,65,85,63,99,57,141,47,22,42,204,48,34,59,123,58,30,46,248,32,216,27,168,31, +195,37,176,38,78,36,248,38,13,48,56,55,86,51,198,34,18,16,74,11,125,22,239,32,242,29,132,20,58,17,211,21, +209,27,99,29,194,25,249,21,115,22,40,22,80,12,133,252,169,246,180,2,237,20,41,27,47,17,90,5,195,8,227,24, +73,30,228,10,170,240,226,233,47,245,210,252,222,247,154,241,147,246,43,5,167,14,243,8,169,254,70,0,111,8,189,3, +216,239,198,221,184,218,161,229,207,243,106,249,66,246,79,247,144,2,196,11,210,5,44,244,3,229,83,226,122,233,52,238, +166,233,213,227,154,230,13,239,185,245,81,250,164,253,108,252,131,246,248,238,173,228,239,215,123,210,87,220,192,238,88,251, +230,249,45,237,117,225,136,226,208,237,187,245,239,242,127,232,95,220,156,212,104,212,235,216,151,224,215,237,146,250,177,249, +77,236,212,225,138,225,231,229,93,232,96,228,158,218,116,214,147,223,36,234,135,232,113,226,149,230,98,242,188,248,89,244, +146,232,158,219,84,213,11,217,195,223,73,225,212,223,23,226,21,232,84,237,252,238,195,235,219,229,20,228,130,232,123,235, +12,231,102,222,96,214,164,209,81,211,154,218,28,225,160,228,33,233,245,237,83,236,221,225,198,212,145,205,239,205,107,205, +252,196,151,188,203,192,6,206,175,213,31,211,160,205,168,204,224,210,238,219,79,220,185,205,208,185,175,175,141,179,252,189, +252,196,105,196,143,193,243,194,64,197,152,194,82,192,1,198,108,205,92,203,46,192,237,179,132,172,170,173,224,182,243,192, +144,198,86,201,134,201,42,196,199,187,182,183,166,187,62,197,219,204,209,201,35,190,48,183,47,187,117,193,42,194,47,192, +233,192,108,197,76,203,68,205,142,198,103,185,58,175,160,176,112,189,19,204,12,210,178,205,186,197,8,193,203,193,103,198, +121,204,138,210,37,214,42,211,223,201,204,194,64,198,245,209,122,219,255,219,111,215,200,214,84,220,66,226,179,228,81,229, +186,228,32,225,185,219,233,217,16,225,74,240,87,252,100,249,227,236,116,234,205,250,137,16,171,23,217,8,164,240,14,231, +49,247,99,15,241,21,113,10,179,2,236,9,25,21,41,24,246,21,181,22,195,26,49,29,83,28,153,26,40,26,120,26, +133,25,59,23,173,23,50,31,99,43,149,51,28,51,57,47,70,46,237,45,145,41,96,37,208,40,150,49,151,53,87,48, +161,40,122,41,165,54,2,72,126,81,8,77,85,60,89,41,143,36,184,52,2,74,57,80,177,71,120,62,10,60,245,63, +234,71,163,78,185,78,82,73,84,68,72,68,58,73,118,77,152,74,119,67,74,66,173,74,220,84,136,87,5,81,136,71, +38,67,67,70,31,75,92,74,191,67,233,62,114,66,228,75,233,82,190,82,126,77,190,72,28,73,91,77,243,77,144,70, +200,61,42,61,37,68,148,72,125,67,185,57,157,54,204,62,230,74,5,80,234,74,2,66,207,61,162,63,131,65,160,63, +37,60,127,56,70,51,40,46,226,45,174,52,175,64,208,74,53,72,5,56,125,43,44,49,109,62,64,62,83,47,159,34, +127,34,77,42,227,49,7,53,190,50,120,46,149,46,16,51,31,50,125,36,80,17,136,8,35,18,44,37,16,48,149,42, +233,29,79,25,100,33,241,43,115,42,89,25,214,4,123,251,208,254,129,6,165,12,133,15,205,14,233,13,13,18,205,25, +219,28,146,21,215,6,94,249,133,244,10,248,89,253,117,255,221,254,185,254,55,2,193,9,67,15,167,10,235,253,173,244, +115,243,176,241,93,234,124,230,131,238,9,252,146,2,43,255,152,249,228,249,208,253,203,249,33,234,195,221,34,227,221,240, +204,241,130,227,149,217,78,227,176,247,249,255,125,244,155,230,237,231,59,242,25,243,87,229,38,212,251,204,215,212,225,228, +54,239,242,235,69,225,209,219,190,224,98,233,155,235,94,228,94,217,197,210,1,213,56,222,228,231,14,236,196,232,52,224, +129,217,87,221,193,233,127,239,225,228,15,212,200,205,140,213,169,225,20,232,85,230,102,225,66,224,109,228,10,232,99,229, +18,223,113,220,128,222,3,223,133,219,127,216,90,216,53,217,25,220,205,227,125,236,52,238,52,231,226,221,105,218,151,224, +235,235,251,241,99,237,172,227,229,220,145,219,165,223,158,231,96,236,207,231,83,224,130,225,201,234,250,240,108,237,85,227, +57,219,64,220,75,228,82,233,60,231,207,227,168,226,155,225,22,225,59,227,18,229,6,227,81,224,197,226,232,233,30,238, +25,233,131,222,207,216,211,220,77,229,197,233,100,229,215,218,25,212,11,216,108,224,227,225,21,219,53,212,74,211,217,214, +4,218,116,218,46,217,15,215,239,211,156,208,159,205,145,202,99,201,61,204,172,207,215,207,210,208,5,215,242,219,191,213, +167,198,177,188,123,193,182,205,108,209,50,201,189,193,77,195,62,199,65,199,146,199,195,203,197,206,48,204,55,200,100,201, +201,206,133,208,88,202,6,194,218,191,74,196,31,202,189,206,9,210,47,210,243,205,131,200,183,198,128,202,148,209,226,213, +151,209,129,198,4,190,188,190,109,198,55,207,132,213,152,216,72,217,29,216,82,212,156,206,20,203,94,205,48,212,121,217, +97,215,227,207,23,205,202,212,222,224,90,233,21,237,63,236,2,230,128,222,147,220,224,224,153,229,251,228,208,222,119,218, +246,223,21,237,25,248,113,252,10,253,112,253,242,254,100,0,166,254,210,249,106,247,10,251,12,1,2,4,136,4,128,8, +27,18,163,26,164,26,246,19,209,13,64,12,92,16,192,24,28,31,20,31,254,29,20,34,105,39,12,39,14,34,123,30, +69,31,7,35,47,39,241,42,120,46,38,47,25,42,201,36,18,42,226,57,111,69,23,66,205,54,197,47,81,46,154,45, +83,46,37,51,144,56,30,58,230,57,131,59,171,61,77,62,25,63,214,64,56,63,160,54,214,43,87,41,55,52,241,69, +8,82,43,81,70,71,175,63,148,66,158,76,55,81,70,71,187,52,245,41,57,47,20,60,118,68,30,70,249,68,109,68, +243,71,105,80,222,86,190,82,242,68,31,55,223,49,45,54,28,62,170,66,234,64,143,58,137,53,245,56,126,67,114,73, +155,68,106,61,228,60,214,64,126,67,25,67,107,63,57,57,116,51,165,47,223,44,115,43,199,44,4,48,215,50,191,52, +100,55,14,59,20,60,227,55,93,51,143,52,152,55,46,52,6,44,55,40,70,42,6,43,190,39,210,38,47,45,51,53, +175,52,94,42,241,32,165,34,42,44,1,48,75,39,70,26,65,21,134,26,134,34,212,36,241,30,244,22,29,22,254,28, +29,34,6,31,76,23,62,17,101,15,41,17,168,20,41,24,97,26,210,24,73,18,225,11,131,12,220,18,54,22,128,16, +74,4,200,251,193,0,201,15,173,23,88,13,139,251,130,246,143,3,226,19,189,21,98,6,196,243,156,238,101,250,215,10, +41,17,198,9,76,253,163,247,30,253,157,4,186,0,175,241,112,229,87,228,67,234,98,242,45,250,124,251,219,243,92,237, +146,242,54,255,28,6,218,0,187,243,20,231,121,224,54,224,107,226,248,226,19,227,77,233,211,246,130,0,183,251,137,237, +180,227,234,227,204,233,78,238,17,236,24,228,127,223,122,228,248,235,170,235,70,230,100,230,153,236,66,239,97,234,109,228, +195,227,28,231,15,232,244,226,181,221,222,225,225,236,65,241,39,235,131,229,28,232,49,238,174,238,1,229,202,214,49,210, +105,221,67,236,53,240,149,233,183,225,64,223,121,227,82,234,233,238,121,242,215,246,28,246,253,235,70,224,11,221,164,226, +145,234,144,237,107,232,114,226,108,231,186,245,60,254,248,248,228,236,236,227,56,227,181,234,120,242,49,241,81,235,121,238, +97,250,12,255,235,244,217,230,206,226,255,235,255,249,74,255,41,246,148,232,194,228,168,236,232,246,193,250,170,246,216,239, +222,236,213,238,205,241,112,243,197,244,228,246,3,249,101,248,89,243,15,238,20,239,237,244,23,247,218,242,67,238,70,238, +63,242,206,247,166,251,9,250,193,245,96,248,142,3,148,10,117,3,246,244,34,236,174,237,29,245,218,248,246,241,234,231, +183,234,148,251,214,9,25,10,253,1,92,253,141,1,71,8,26,6,206,250,172,242,229,242,224,243,8,241,93,237,63,235, +43,237,18,246,135,1,84,7,214,6,211,3,244,254,223,248,116,242,241,233,38,226,48,227,190,234,39,236,97,230,178,229, +238,236,221,241,132,239,225,234,238,232,211,234,192,237,244,234,185,224,107,216,107,217,217,221,108,222,26,222,221,224,236,226, +129,224,53,220,206,217,192,217,144,218,189,218,125,217,53,214,68,208,108,202,83,203,162,212,22,222,28,223,53,216,160,207, +45,203,8,206,223,213,172,218,147,214,178,204,84,197,54,197,110,202,9,208,66,210,220,207,77,202,176,197,181,198,80,206, +163,214,193,214,177,205,150,198,96,202,112,210,159,211,175,206,59,202,37,199,99,197,118,199,168,202,159,201,62,200,26,207, +114,220,10,229,122,226,232,217,218,212,86,214,174,217,25,219,14,219,167,217,216,214,34,213,85,213,158,213,126,216,255,225, +78,237,54,241,75,237,146,232,183,231,199,234,207,238,204,239,169,237,233,236,158,239,91,243,189,246,119,250,70,254,33,2, +203,6,125,9,103,5,117,253,8,253,22,9,242,22,251,24,50,16,71,9,251,10,9,16,9,18,211,17,250,18,130,21, +198,23,166,26,229,31,189,37,152,39,111,36,199,33,112,36,44,40,42,37,194,28,71,24,231,27,151,35,84,43,33,50, +248,54,156,56,144,54,154,49,36,45,210,43,115,42,231,37,243,34,136,38,241,44,15,50,146,56,86,65,211,69,190,64, +254,53,5,48,4,53,41,61,137,58,21,46,216,39,43,47,15,59,57,67,68,71,108,70,138,64,187,59,78,60,32,61, +18,57,222,51,161,50,224,52,209,57,136,66,249,74,65,75,34,67,18,59,165,56,203,57,166,58,105,57,232,53,128,49, +76,47,71,51,140,62,123,74,58,77,138,70,114,63,150,59,36,55,133,50,159,49,73,50,88,48,96,46,216,48,167,54, +213,59,157,62,242,63,51,65,117,64,114,57,147,45,109,37,7,38,117,43,107,48,55,51,59,51,48,50,147,53,92,62, +130,67,167,60,46,45,79,31,178,25,237,27,79,31,60,29,88,25,225,29,222,42,245,52,12,54,94,49,211,41,169,33, +174,29,71,30,0,29,100,22,59,14,64,10,105,14,210,25,171,36,144,39,188,35,218,30,151,27,30,25,88,20,5,11, +123,1,215,254,191,1,213,2,158,1,204,3,73,10,126,16,101,18,239,13,212,4,45,254,161,253,12,252,185,243,37,237, +176,242,145,255,11,7,102,4,25,252,254,245,47,248,112,255,198,0,204,248,180,239,150,235,136,235,185,238,233,243,208,246, +181,245,27,242,84,236,87,232,99,238,61,251,109,253,138,237,58,219,108,217,18,233,232,250,206,253,63,237,187,216,115,215, +202,236,205,255,160,247,33,219,42,201,51,211,67,234,116,243,58,232,71,219,232,221,50,234,156,238,109,230,130,219,157,214, +206,215,193,217,20,216,120,213,236,216,149,226,138,235,113,240,113,241,192,235,144,223,228,213,14,214,23,220,60,223,154,219, +152,212,149,210,173,219,65,236,118,249,84,250,88,237,118,218,91,208,201,215,76,232,249,239,229,230,27,215,47,210,180,223, +96,244,255,252,92,244,15,232,74,229,209,234,131,240,3,241,255,233,195,222,240,217,74,226,205,240,255,248,205,245,154,235, +207,227,31,229,39,236,162,240,1,241,43,240,239,236,247,230,180,228,245,233,134,240,146,241,223,238,101,238,15,242,21,246, +10,245,245,237,251,230,117,231,100,238,19,242,22,236,164,226,208,225,95,237,64,252,140,0,94,244,121,225,115,217,233,226, +61,242,3,247,213,236,237,222,171,220,91,232,63,244,197,244,172,237,223,231,97,229,120,228,47,228,40,227,243,224,140,222, +9,220,179,219,189,226,50,238,47,241,64,231,14,220,106,218,129,224,88,230,107,228,230,215,165,201,72,200,28,213,226,225, +108,228,232,224,35,224,238,228,104,234,234,232,88,223,35,214,44,212,195,213,213,211,240,205,178,201,78,205,184,217,229,230, +124,234,193,227,130,218,36,212,76,209,12,210,241,212,164,213,120,209,75,203,206,201,174,209,56,223,59,232,121,231,81,225, +238,218,243,212,209,208,136,209,9,213,95,213,62,210,2,211,200,220,196,233,175,237,25,228,199,215,70,215,18,227,169,236, +194,231,202,215,238,203,126,208,38,227,9,244,148,245,239,234,30,226,181,226,125,233,109,240,88,242,216,236,192,229,100,230, +209,237,35,243,107,245,141,250,178,0,166,0,48,251,234,246,3,246,165,246,55,247,192,246,32,247,201,252,1,7,242,14, +197,17,236,18,28,20,28,20,53,19,114,17,91,13,157,8,188,7,227,11,93,18,153,24,192,28,223,29,223,29,248,31, +98,36,183,39,45,39,106,36,122,35,184,36,194,36,248,34,136,33,59,32,144,31,11,37,193,49,241,58,187,55,43,47, +197,45,239,51,4,56,112,52,205,44,4,40,115,41,186,46,47,51,95,53,162,55,58,59,32,62,248,61,78,58,198,52, +147,49,110,52,30,58,97,58,226,51,243,47,194,53,208,63,215,67,31,65,186,63,117,66,64,66,154,58,10,50,40,49, +246,55,244,63,242,66,224,62,45,56,206,54,151,60,134,65,213,61,4,53,164,50,130,59,146,69,29,67,214,52,137,42, +169,48,247,65,35,77,139,70,41,52,61,40,136,46,204,62,43,69,129,57,69,41,232,37,75,48,214,60,115,67,157,66, +121,59,78,51,56,49,82,53,90,56,150,52,32,43,254,34,176,35,144,44,222,51,68,50,15,43,215,38,69,42,54,50, +37,54,25,48,169,35,25,27,220,28,171,36,12,40,100,34,84,26,241,24,16,31,180,37,6,38,164,31,146,24,52,22, +98,23,227,23,100,22,253,19,218,17,253,16,5,17,86,16,40,15,37,15,92,15,161,12,62,7,88,5,40,11,21,17, +47,11,80,253,32,249,179,3,175,14,191,14,33,7,98,255,111,252,182,255,153,4,32,5,119,1,95,251,116,242,88,236, +113,242,59,0,197,3,169,246,171,232,112,235,229,252,63,10,80,4,13,239,118,221,122,221,210,233,137,242,175,239,79,231, +28,229,56,239,112,254,245,2,211,246,47,230,233,222,47,225,147,228,10,226,157,216,136,208,108,212,136,226,15,238,200,239, +13,235,159,229,204,226,135,226,251,225,168,223,12,220,169,214,66,209,41,210,124,219,13,230,68,234,123,231,212,225,244,222, +117,226,250,232,232,233,197,224,92,211,24,205,116,211,3,224,229,231,12,231,93,226,112,225,200,230,214,236,112,236,33,229, +223,219,189,213,88,214,2,221,143,227,24,230,79,231,100,233,17,235,23,236,2,236,103,232,54,226,177,221,54,220,106,221, +184,225,234,229,22,229,157,225,177,226,145,233,122,240,203,241,4,237,120,231,66,231,207,235,181,238,234,235,141,229,43,225, +56,227,185,234,60,241,170,241,191,237,164,234,56,235,115,239,252,244,92,246,104,239,130,228,76,223,184,227,116,238,29,250, +137,255,145,249,172,238,35,236,120,244,57,253,151,252,13,241,2,226,252,220,175,232,113,250,75,1,76,249,207,238,92,240, +201,253,179,7,219,3,14,250,117,245,136,245,59,245,46,244,181,243,210,243,224,243,138,243,168,245,226,253,191,7,164,9, +72,3,239,253,190,254,57,2,212,2,223,254,86,250,57,250,31,253,184,253,241,251,87,252,46,0,9,4,201,4,11,3, +191,1,147,1,64,0,235,253,71,254,235,1,53,4,48,2,22,255,187,255,226,3,181,6,142,5,143,2,174,255,74,252, +5,249,136,248,134,251,183,255,14,2,231,0,95,254,38,255,106,3,109,4,76,253,189,242,207,237,129,241,209,248,242,252, +120,250,54,243,18,238,9,241,24,249,38,253,31,249,142,240,103,233,52,233,112,240,51,246,139,242,132,235,27,236,27,243, +166,246,31,243,186,237,78,236,226,238,185,239,41,234,52,225,148,220,142,223,253,228,213,229,172,226,39,226,104,229,180,230, +249,228,56,229,41,232,117,233,60,231,62,226,151,219,142,214,26,214,47,216,170,216,150,214,97,212,209,213,10,220,7,226, +148,225,110,219,115,213,47,211,145,211,32,211,210,207,37,204,194,203,32,206,253,208,15,212,121,213,182,209,242,202,162,200, +136,205,120,212,191,214,186,209,12,201,206,196,81,201,91,209,12,213,98,211,33,208,108,205,4,204,127,204,15,205,57,203, +118,200,249,199,157,201,108,203,182,204,70,205,21,206,89,210,152,218,47,225,150,224,8,218,94,211,92,209,123,212,15,217, +55,219,180,218,69,218,15,221,60,228,101,236,120,239,74,236,209,232,20,234,245,237,18,239,52,236,253,233,39,237,62,244, +164,249,83,251,156,252,12,0,97,3,4,3,147,255,249,253,81,1,219,6,139,9,210,7,8,5,158,6,110,14,249,22, +83,25,85,22,104,20,90,22,63,26,136,29,97,30,152,29,3,31,218,34,120,35,39,31,163,28,8,33,206,40,108,45, +201,44,103,43,65,48,219,58,161,64,40,59,106,50,41,48,182,49,246,47,190,44,96,46,122,52,129,57,164,59,212,61, +115,65,212,67,209,66,55,64,193,62,110,62,18,62,202,61,195,61,13,61,176,59,11,60,105,64,171,71,40,77,223,76, +54,72,219,68,177,69,12,71,101,68,10,64,218,64,173,71,186,75,17,70,90,61,173,62,46,75,127,85,134,83,104,74, +61,69,65,71,186,75,1,78,241,76,128,73,177,69,33,68,12,70,13,73,224,72,82,69,245,67,133,72,208,78,232,80, +74,79,245,76,162,72,72,65,122,60,193,63,180,70,141,71,39,64,81,56,3,56,99,63,203,71,98,74,178,70,166,66, +188,66,165,68,192,67,32,63,210,56,61,51,207,48,209,50,175,55,22,60,162,61,197,60,108,60,213,61,145,61,85,56, +60,49,244,46,171,51,245,57,211,57,180,49,60,41,213,39,242,43,124,47,211,46,248,40,39,33,162,31,169,39,138,48, +196,48,65,41,182,32,157,28,86,31,195,36,229,35,0,27,225,19,130,22,119,30,191,33,177,28,48,20,52,15,49,16, +242,19,150,21,62,19,138,15,87,14,219,15,153,16,163,14,180,11,110,9,182,7,179,7,38,11,107,15,212,14,181,8, +142,2,23,0,189,255,56,255,127,254,28,254,202,253,67,252,30,249,194,247,8,252,113,2,206,2,208,251,103,244,18,242, +37,244,117,246,164,244,28,238,26,232,159,232,158,239,251,246,85,248,206,242,81,235,207,230,86,230,7,233,21,237,217,238, +59,236,4,232,39,230,35,231,113,232,222,230,203,225,60,221,30,221,191,223,247,225,194,228,245,232,153,234,137,230,21,224, +68,220,171,219,113,220,31,222,39,224,44,225,69,226,92,229,162,231,222,228,94,222,146,215,82,209,55,206,16,210,96,217, +57,220,220,217,33,216,208,218,22,225,30,230,10,228,232,219,90,213,8,211,249,208,155,206,41,207,84,210,174,213,240,216, +141,219,254,219,68,219,87,219,82,219,109,217,21,214,67,210,29,206,139,202,54,201,122,202,29,205,155,207,95,209,105,211, +94,214,75,216,154,215,5,214,55,211,108,202,182,188,138,180,217,183,119,193,82,203,154,210,95,212,111,210,9,212,126,217, +188,218,142,212,53,202,203,189,120,178,63,174,136,178,233,186,117,195,195,201,178,204,19,206,48,207,125,206,139,204,94,203, +36,200,131,191,229,181,186,178,33,183,11,190,114,193,52,191,166,187,151,188,165,193,120,198,110,201,189,201,22,196,5,185, +144,177,233,180,80,189,42,191,50,184,27,177,125,178,64,188,35,198,55,200,120,195,93,190,147,186,53,182,202,179,183,182, +187,187,106,189,100,187,19,185,30,186,189,191,241,197,212,198,242,193,24,188,102,185,157,186,83,189,254,189,185,187,120,184, +79,182,120,183,220,188,24,194,210,193,107,190,248,189,243,191,243,191,132,190,239,190,156,192,170,193,197,195,75,200,42,204, +242,204,4,205,43,206,71,206,143,204,51,203,229,202,23,203,117,204,69,207,60,211,184,216,232,221,21,224,20,226,10,232, +202,237,54,236,86,228,54,221,10,220,214,224,33,230,133,231,30,233,254,239,42,248,0,253,208,1,101,8,248,10,21,6, +57,254,4,250,221,252,72,4,9,9,5,8,77,7,196,12,11,21,202,24,152,22,27,20,51,23,44,31,220,36,174,34, +231,27,129,25,198,31,1,42,129,48,190,47,121,42,110,40,242,47,214,60,158,66,185,59,209,48,238,45,11,53,158,61, +85,63,10,59,104,55,54,56,155,61,113,70,204,77,24,78,243,73,199,72,132,75,162,77,172,76,197,72,251,67,104,66, +106,69,234,73,139,77,222,79,155,80,135,81,100,84,238,85,74,83,25,81,74,84,152,89,195,90,97,86,253,79,164,76, +202,78,208,83,24,87,244,86,216,84,192,82,35,82,65,84,88,89,84,94,14,94,175,87,200,80,61,79,115,84,251,92, +59,97,129,91,201,80,167,76,32,83,3,93,233,96,94,91,32,81,35,75,158,77,247,83,145,86,207,82,129,77,41,77, +67,81,218,83,43,84,88,86,134,88,42,84,59,74,183,67,18,70,234,76,211,78,249,71,219,63,192,64,10,74,105,81, +163,80,60,75,133,70,3,67,194,63,107,62,16,64,40,66,4,66,152,63,104,60,106,59,187,62,143,66,194,64,15,58, +222,51,39,48,224,46,227,48,252,51,153,51,144,47,71,44,32,45,118,49,52,53,47,53,251,50,178,48,99,44,52,37, +144,31,10,31,195,32,135,30,143,22,134,16,132,22,245,37,206,47,131,43,46,32,13,25,54,25,171,26,15,22,77,12, +112,6,239,9,151,18,221,24,124,24,144,18,17,13,135,12,45,14,193,12,170,7,203,1,235,253,170,253,227,255,117,1, +185,1,137,2,219,3,4,4,6,3,232,0,82,251,232,241,74,234,11,234,248,238,172,242,247,242,43,242,103,242,45,243, +101,241,252,235,7,233,51,238,29,245,50,243,205,233,46,226,51,224,85,226,176,229,122,229,199,223,211,217,73,217,71,222, +154,229,202,233,161,229,66,220,183,215,20,219,168,222,38,220,136,214,17,212,244,213,177,216,30,218,254,218,29,219,122,216, +27,211,185,206,176,207,149,213,61,217,191,212,7,205,205,203,67,209,166,212,79,209,126,203,102,201,78,204,64,209,42,214, +86,218,121,218,3,212,229,203,251,200,131,202,39,204,32,205,33,205,177,202,242,199,135,201,159,208,218,217,58,223,53,220, +33,212,254,207,57,210,184,211,81,207,117,200,65,197,212,199,195,205,195,210,106,212,87,212,242,212,225,212,190,209,97,206, +60,208,71,214,124,217,125,214,195,208,70,205,154,206,213,211,160,216,238,216,28,213,111,209,131,210,230,216,166,222,43,221, +228,213,0,208,112,207,42,211,61,216,13,219,241,217,83,215,131,214,96,216,212,219,61,222,197,220,171,215,27,210,235,206, +138,207,47,211,64,214,2,214,202,211,145,210,65,212,180,216,216,220,48,222,234,222,156,224,32,223,147,216,72,211,59,212, +109,215,33,215,173,211,131,209,19,212,216,218,250,224,104,225,103,220,99,215,126,214,248,215,191,215,189,213,54,213,90,215, +125,218,29,221,111,222,208,221,149,219,203,216,220,213,221,210,228,208,231,209,118,214,136,219,210,220,55,218,187,215,192,215, +17,217,52,218,185,218,42,218,58,216,55,213,177,209,254,206,91,207,210,211,178,217,173,219,119,215,234,209,128,210,21,218, +32,225,62,224,188,216,221,210,234,211,203,216,137,219,71,218,64,215,72,214,4,218,148,223,157,224,249,220,197,218,32,219, +94,217,176,213,6,213,45,215,83,215,82,213,124,214,55,221,240,228,20,232,235,230,105,229,231,228,92,228,120,227,191,225, +164,222,98,220,199,221,152,225,175,228,31,230,110,230,164,230,163,232,183,236,121,240,104,242,56,243,43,243,56,242,181,241, +71,242,155,242,68,242,124,242,75,243,80,244,194,247,127,255,76,7,213,7,148,0,59,250,242,252,192,6,15,14,239,12, +51,7,156,4,8,8,102,14,53,19,139,19,225,15,27,13,13,16,173,22,204,25,244,22,78,20,56,24,76,32,163,36, +119,34,179,30,136,30,148,34,151,40,21,45,244,44,226,41,232,41,48,47,62,52,108,51,26,46,80,42,13,44,103,50, +57,57,93,60,163,58,99,55,191,55,64,60,117,63,157,61,70,58,148,58,11,62,55,65,132,67,188,69,243,69,68,66, +89,62,89,64,150,71,232,75,137,72,73,66,134,64,173,68,115,74,217,76,106,74,155,70,27,70,13,73,65,75,192,73, +171,69,140,66,66,67,0,71,160,73,231,72,88,71,196,71,51,73,37,73,71,71,2,70,15,72,28,76,141,76,129,71, +102,67,218,69,172,74,65,74,16,68,174,61,205,59,48,63,209,68,175,71,62,69,140,64,92,63,88,67,107,71,141,69, +40,62,63,55,231,53,212,58,248,65,99,68,137,63,143,57,237,56,13,60,166,62,149,63,69,61,41,54,7,47,130,46, +215,50,230,52,67,50,235,45,207,43,126,46,49,52,54,55,137,53,46,51,246,49,131,46,190,39,128,33,13,31,143,32, +60,36,214,38,130,38,208,37,19,40,99,44,246,46,140,44,166,36,197,27,175,23,82,23,56,21,207,17,18,18,124,22, +37,28,245,33,129,38,229,38,75,34,169,25,33,15,147,8,124,10,124,15,199,15,71,14,89,18,233,25,107,29,2,27, +230,20,118,12,218,4,84,2,254,3,118,5,195,5,198,5,157,4,197,3,24,7,37,12,175,11,252,5,107,2,1,3, +77,3,104,1,47,255,74,253,191,250,211,247,26,247,87,250,58,254,238,253,94,251,46,252,113,255,158,255,195,251,233,246, +181,243,34,244,128,246,224,244,183,238,215,235,224,239,246,244,249,245,194,243,7,241,230,240,196,244,159,247,127,243,164,235, +18,232,12,234,68,237,97,238,234,234,105,227,161,223,219,229,122,239,238,241,7,238,65,235,94,235,2,236,104,236,115,235, +23,231,8,224,242,217,205,216,231,221,49,229,237,232,47,233,140,233,151,233,86,231,180,228,12,228,66,228,0,227,57,223, +2,219,97,219,128,225,29,231,15,231,104,227,172,224,231,225,120,231,192,235,184,231,26,222,130,216,229,217,107,221,28,223, +16,222,103,219,53,219,139,224,142,231,148,232,88,225,41,216,189,213,226,219,228,226,188,226,143,221,60,220,42,225,200,229, +97,229,7,226,215,221,206,216,175,213,5,216,212,221,28,226,14,227,36,226,253,225,52,228,115,230,45,229,83,225,188,221, +130,218,80,216,78,217,4,220,201,221,60,224,80,228,131,230,199,229,48,229,52,229,133,228,150,228,58,229,44,226,45,219, +4,215,244,217,238,223,193,226,55,225,238,222,223,223,159,227,236,228,181,224,85,219,140,217,185,216,130,213,122,211,36,214, +69,218,35,220,97,220,164,220,99,222,141,226,115,230,48,230,233,225,215,219,42,214,168,212,21,216,116,218,236,215,157,212, +192,212,32,216,52,221,197,224,217,223,161,221,171,222,71,224,51,222,24,218,111,214,226,210,102,208,114,208,179,209,35,211, +252,213,48,218,193,221,68,223,117,222,66,220,149,218,192,217,208,215,64,212,141,209,89,209,243,209,180,209,210,209,155,211, +172,213,100,214,20,214,103,213,141,212,191,211,111,210,111,208,0,208,147,210,123,213,3,214,70,213,148,213,184,215,187,218, +251,219,48,218,204,215,249,214,160,214,3,214,28,214,175,214,190,214,167,214,59,215,134,216,111,217,147,216,87,215,156,216, +130,218,202,216,173,213,198,214,161,219,209,223,112,225,85,224,121,221,38,220,238,221,241,223,141,223,177,221,191,220,101,222, +124,226,223,230,178,233,244,234,87,235,34,235,23,234,113,232,33,232,1,234,190,234,21,232,53,230,125,233,148,239,166,243, +46,244,153,242,139,241,25,243,214,246,44,251,162,254,4,255,239,251,59,249,82,250,84,254,13,3,104,6,218,5,207,1, +228,254,75,0,195,4,100,9,208,11,42,11,21,9,135,8,117,11,53,17,12,22,162,22,150,20,236,19,99,21,187,23, +65,27,171,31,220,33,150,31,147,27,157,27,243,33,180,41,202,43,202,38,78,32,85,31,188,37,130,46,244,50,13,49, +38,44,250,41,91,46,192,53,205,55,47,51,101,47,161,48,211,51,232,53,215,53,9,52,92,52,44,57,209,61,90,62, +247,61,133,63,123,65,254,66,190,67,171,65,33,61,204,57,161,57,11,60,181,63,130,66,171,67,201,68,18,70,30,70, +194,69,92,70,177,70,219,69,245,68,49,68,41,67,39,67,2,69,235,70,120,71,35,72,60,74,141,75,107,73,107,69, +189,66,49,65,190,63,241,63,35,66,175,67,9,68,95,69,114,71,130,71,172,68,3,65,100,63,144,64,20,66,147,65, +183,63,40,62,171,61,173,62,43,64,176,63,40,61,120,59,84,60,123,62,91,63,21,61,204,56,235,53,32,54,92,56, +147,58,6,58,165,53,95,49,201,49,114,53,131,55,38,54,177,50,216,46,227,43,16,43,55,45,178,48,55,49,55,45, +166,40,27,39,44,40,171,42,220,44,114,43,143,38,55,35,222,35,159,37,99,37,128,34,49,30,32,27,191,26,220,27, +115,29,86,31,49,32,209,30,229,27,214,24,26,23,84,23,119,23,11,21,3,17,24,14,26,14,178,17,123,22,108,23, +86,19,126,14,29,12,254,11,58,13,40,14,203,12,236,9,2,8,235,7,200,9,5,13,55,14,87,10,226,3,160,255, +185,254,243,255,109,2,99,3,165,255,248,250,201,253,65,7,164,11,23,5,161,251,178,248,109,252,215,0,136,0,48,251, +144,246,123,247,35,251,9,252,119,249,104,246,111,245,136,246,127,246,46,243,172,239,114,239,252,240,214,241,44,242,243,241, +179,240,185,239,201,239,70,239,5,237,62,234,232,232,54,233,244,232,95,231,39,232,163,237,176,242,210,240,120,233,27,228, +67,229,109,233,213,232,123,225,215,218,241,219,79,226,138,230,52,229,35,225,81,224,178,229,187,236,199,237,183,230,152,220, +169,214,134,216,95,222,144,224,63,221,140,218,100,221,97,227,124,231,236,231,130,229,240,224,144,219,101,216,35,217,75,219, +34,219,132,216,204,214,192,216,127,221,56,225,70,225,118,222,205,218,226,215,132,215,239,217,60,220,50,220,212,218,77,217, +2,216,123,216,10,219,238,220,193,220,115,220,157,220,106,219,102,217,194,217,145,220,151,221,185,218,231,215,110,217,105,221, +226,222,238,220,219,218,255,218,9,220,96,219,110,217,161,217,158,220,114,222,6,221,70,219,6,220,215,222,51,226,172,228, +206,228,188,225,242,219,216,214,100,215,253,220,116,224,187,222,213,220,43,222,244,224,0,228,89,230,23,229,7,225,52,223, +98,224,28,225,80,225,163,226,84,227,82,226,99,226,241,228,236,231,187,233,226,233,199,231,250,228,200,228,67,231,105,233, +79,234,165,234,84,233,77,230,27,229,81,231,41,233,230,231,239,229,204,229,114,230,74,230,123,229,107,228,31,227,141,226, +87,228,228,231,190,233,83,232,213,230,234,231,122,233,119,233,75,233,104,233,255,231,196,229,145,229,121,231,30,233,46,233, +176,231,165,229,33,229,6,231,132,233,164,234,130,234,27,234,192,233,107,233,99,233,234,233,128,234,39,234,153,232,187,230, +202,229,46,230,245,230,12,231,71,231,71,233,35,236,214,236,128,234,173,231,43,231,18,233,247,234,153,234,27,232,107,229, +155,228,218,230,201,234,101,236,244,233,250,230,255,230,237,232,43,234,181,233,98,231,224,228,202,229,95,234,205,237,37,237, +56,235,147,235,47,238,218,240,206,241,8,241,230,239,172,238,56,236,112,233,245,232,38,234,178,233,196,231,52,232,82,236, +57,241,206,243,65,243,222,240,245,238,205,238,104,239,47,239,242,237,28,237,125,238,12,242,15,245,73,245,141,243,124,241, +226,239,33,240,216,242,112,245,172,245,116,245,249,246,216,248,115,249,175,249,125,250,69,251,24,251,217,249,240,248,68,250, +206,252,243,252,64,250,196,248,17,251,27,255,229,1,186,2,159,2,77,3,4,6,178,9,55,11,223,8,217,4,239,2, +79,4,234,6,173,8,70,9,237,8,13,8,26,8,44,10,196,12,120,13,96,12,218,11,90,13,226,15,158,17,67,18, +67,19,144,21,31,24,50,25,55,24,59,22,62,21,174,22,210,25,122,28,50,29,12,28,88,26,53,26,151,28,181,31, +37,33,145,32,88,31,71,31,119,33,93,36,2,37,159,35,41,35,6,36,91,36,177,36,116,38,253,39,56,39,171,37, +244,37,4,40,47,42,128,43,210,43,95,43,34,43,106,44,244,46,118,48,204,47,248,46,175,47,100,48,169,47,4,47, +85,47,220,46,96,45,119,45,22,48,70,51,103,53,13,54,66,53,108,52,43,53,85,54,202,53,86,52,163,51,47,51, +201,50,162,51,204,52,13,52,109,50,66,50,240,50,110,51,170,52,208,53,41,52,177,48,143,47,126,49,164,51,202,52, +184,53,245,53,109,52,43,50,119,49,141,50,41,51,152,49,14,47,11,46,4,47,247,47,165,47,93,47,95,48,118,49, +41,49,85,48,83,48,120,48,57,47,133,44,3,42,105,41,86,42,160,42,123,41,38,40,37,39,94,38,244,38,221,40, +89,41,115,39,199,37,131,37,228,36,85,35,245,33,21,33,184,32,76,33,50,34,28,34,2,33,226,31,104,31,86,31, +105,30,241,27,133,25,210,24,235,24,113,24,43,24,189,24,206,24,225,23,189,23,252,24,98,25,90,23,124,20,34,19, +126,19,25,20,169,19,220,17,97,15,136,13,91,13,166,14,190,15,36,15,139,13,18,13,15,14,114,14,173,12,144,9, +56,7,216,6,71,7,111,6,108,4,25,3,163,2,228,1,102,1,115,2,91,4,96,5,224,4,99,3,217,1,184,0, +146,255,41,254,210,252,143,251,221,250,54,252,10,255,223,255,48,253,178,249,99,248,131,249,66,251,23,251,37,248,230,244, +59,244,201,245,32,247,170,246,167,244,22,243,207,243,160,245,179,245,237,243,141,242,243,241,169,240,212,238,254,237,23,238, +245,237,198,237,6,238,155,237,232,235,161,234,221,234,6,235,178,233,155,231,14,230,215,229,22,231,134,232,188,232,79,232, +118,232,181,232,34,232,241,230,116,229,232,227,32,227,63,227,240,226,179,225,70,225,47,227,89,230,66,232,157,231,21,229, +74,226,152,224,61,224,79,224,202,223,121,222,205,220,180,219,111,220,247,222,60,225,106,225,247,223,123,222,30,222,56,223, +223,224,57,225,98,223,125,220,164,218,6,219,194,220,224,221,166,221,194,220,204,219,92,219,82,220,78,222,180,223,182,223, +134,222,162,220,96,219,239,219,89,221,180,221,128,220,185,218,83,218,228,220,232,224,185,226,151,225,72,224,196,224,140,226, +228,227,201,226,2,223,144,219,68,219,54,221,217,222,95,223,161,223,137,224,19,226,59,227,97,227,17,227,173,226,13,226, +198,225,107,226,9,227,11,227,188,227,123,229,103,230,19,230,159,230,137,232,158,233,247,232,232,231,63,231,31,231,254,231, +103,233,40,234,152,234,172,235,189,236,13,237,72,237,208,237,23,238,216,237,225,236,52,235,72,234,114,235,173,237,118,239, +210,240,240,241,205,242,62,244,89,246,72,247,214,245,52,243,103,241,185,241,210,243,100,245,170,244,47,243,212,243,242,246, +131,250,169,252,138,252,68,250,107,247,122,246,104,248,60,251,56,252,12,251,209,249,59,250,7,252,232,253,11,255,108,255, +35,255,68,254,189,253,188,254,126,0,182,0,208,254,170,252,214,251,238,251,215,251,83,251,10,251,112,251,89,252,190,253, +180,255,106,1,178,1,135,0,185,254,220,252,144,251,117,251,58,252,6,253,111,253,96,253,40,253,161,253,21,255,129,0, +230,0,79,0,96,255,223,254,21,255,34,255,42,254,245,252,154,252,104,252,119,251,181,250,48,251,253,251,213,251,36,251, +252,250,146,251,94,252,139,252,141,251,45,250,207,249,116,250,24,251,79,251,239,250,200,249,202,248,4,249,109,249,84,248, +64,246,10,245,77,245,23,246,40,246,114,245,107,245,169,246,97,247,104,246,81,245,118,245,248,245,233,245,130,245,9,245, +195,244,38,245,233,245,70,246,28,246,194,245,150,245,14,246,222,246,183,246,61,245,214,243,145,243,227,243,208,243,248,242, +197,241,57,241,248,241,101,243,126,244,7,245,58,245,18,245,143,244,211,243,242,242,28,242,160,241,154,241,14,242,18,243, +90,244,94,245,87,246,203,247,31,249,49,249,30,248,242,246,54,246,230,245,213,245,175,245,110,245,136,245,51,246,53,247, +138,248,24,250,67,251,200,251,58,252,17,253,253,253,113,254,105,254,123,254,244,254,53,255,221,254,231,254,44,0,184,1, +91,2,147,2,89,3,78,4,160,4,140,4,196,4,36,5,41,5,18,5,154,5,246,6,175,8,14,10,142,10,141,10, +40,11,178,12,34,14,160,14,128,14,143,14,105,15,37,17,216,18,145,19,213,19,177,20,223,21,112,22,82,22,19,22, +61,22,52,23,162,24,107,25,52,25,1,25,198,25,76,27,145,28,172,28,219,27,133,27,77,28,23,29,32,29,90,29, +111,30,143,31,52,32,214,32,143,33,20,34,142,34,3,35,237,34,56,34,106,33,251,32,78,33,67,34,168,34,238,33, +135,33,170,34,105,36,124,37,202,37,122,37,180,36,21,36,230,35,232,35,68,36,7,37,71,37,136,36,248,35,188,36, +42,38,170,38,165,37,20,36,69,35,71,35,56,35,229,34,231,34,71,35,43,35,32,34,184,32,223,31,212,31,19,32, +15,32,203,31,118,31,23,31,231,30,64,31,214,31,174,31,117,30,22,29,108,28,73,28,55,28,32,28,245,27,185,27, +185,27,221,27,121,27,140,26,225,25,132,25,176,24,85,23,57,22,201,21,225,21,54,22,94,22,3,22,73,21,157,20, +77,20,75,20,26,20,45,19,169,17,95,16,206,15,173,15,172,15,211,15,222,15,63,15,43,14,153,13,179,13,138,13, +137,12,55,11,67,10,185,9,59,9,190,8,162,8,199,8,107,8,152,7,95,7,3,8,104,8,202,7,128,6,64,5, +178,4,229,4,254,4,89,4,137,3,79,3,176,3,69,4,89,4,78,3,189,1,216,0,168,0,109,0,250,255,99,255, +145,254,253,253,78,254,255,254,210,254,119,253,253,251,152,251,48,252,129,252,222,251,19,251,240,250,45,251,47,251,191,250, +221,249,208,248,60,248,108,248,246,248,84,249,94,249,255,248,58,248,124,247,62,247,97,247,114,247,63,247,189,246,246,245, +84,245,74,245,159,245,200,245,180,245,137,245,37,245,117,244,209,243,160,243,224,243,61,244,135,244,170,244,80,244,96,243, +175,242,210,242,213,242,195,241,139,240,135,240,124,241,88,242,123,242,217,241,255,240,189,240,39,241,130,241,68,241,126,240, +188,239,178,239,116,240,60,241,125,241,115,241,113,241,106,241,38,241,183,240,183,240,139,241,97,242,28,242,16,241,139,240, +242,240,123,241,45,241,252,239,21,239,147,239,237,240,193,241,164,241,41,241,246,240,97,241,254,241,195,241,136,240,128,239, +157,239,123,240,51,241,90,241,78,241,208,241,5,243,237,243,156,243,124,242,186,241,207,241,39,242,15,242,136,241,45,241, +110,241,10,242,123,242,188,242,24,243,99,243,78,243,41,243,104,243,214,243,10,244,14,244,255,243,218,243,182,243,162,243, +126,243,79,243,54,243,83,243,224,243,196,244,63,245,242,244,148,244,212,244,81,245,24,245,191,243,52,242,2,242,71,243, +99,244,102,244,39,244,120,244,42,245,203,245,34,246,69,246,144,246,230,246,166,246,222,245,82,245,74,245,153,245,27,246, +83,246,202,245,21,245,76,245,152,246,14,248,154,248,238,247,244,246,190,246,36,247,72,247,224,246,43,246,156,245,226,245, +34,247,81,248,129,248,36,248,39,248,187,248,128,249,241,249,126,249,61,248,80,247,136,247,63,248,133,248,118,248,134,248, +178,248,7,249,161,249,12,250,230,249,183,249,13,250,187,250,99,251,180,251,80,251,100,250,172,249,126,249,200,249,156,250, +214,251,226,252,72,253,11,253,171,252,234,252,192,253,249,253,234,252,168,251,112,251,17,252,156,252,185,252,184,252,251,252, +130,253,245,253,7,254,184,253,86,253,47,253,74,253,125,253,204,253,56,254,141,254,212,254,77,255,214,255,0,0,191,255, +91,255,16,255,30,255,138,255,236,255,255,255,7,0,100,0,35,1,235,1,66,2,23,2,205,1,148,1,92,1,74,1, +118,1,164,1,174,1,163,1,153,1,203,1,77,2,182,2,209,2,253,2,44,3,217,2,63,2,15,2,31,2,213,1, +52,1,194,0,238,0,178,1,97,2,106,2,38,2,38,2,85,2,104,2,68,2,205,1,37,1,187,0,136,0,36,0, +201,255,29,0,17,1,20,2,224,2,80,3,34,3,119,2,186,1,11,1,114,0,23,0,166,255,173,254,233,253,129,254, +250,255,208,0,159,0,244,255,54,255,224,254,26,255,249,254,228,253,208,252,148,252,187,252,188,252,154,252,115,252,180,252, +146,253,24,254,119,253,115,252,241,251,168,251,54,251,172,250,239,249,22,249,210,248,132,249,178,250,115,251,38,251,55,250, +210,249,49,250,65,250,154,249,8,249,217,248,121,248,222,247,191,247,107,248,61,249,79,249,132,248,160,247,111,247,239,247, +107,248,45,248,60,247,131,246,181,246,68,247,24,247,33,246,93,245,119,245,28,246,137,246,91,246,209,245,171,245,95,246, +92,247,168,247,36,247,97,246,194,245,148,245,24,246,195,246,205,246,140,246,204,246,103,247,223,247,70,248,144,248,94,248, +207,247,100,247,103,247,217,247,111,248,199,248,251,248,75,249,137,249,185,249,77,250,2,251,39,251,12,251,127,251,53,252, +103,252,34,252,242,251,30,252,146,252,247,252,5,253,7,253,127,253,83,254,240,254,27,255,15,255,9,255,60,255,220,255, +190,0,76,1,93,1,121,1,239,1,128,2,252,2,69,3,29,3,214,2,62,3,83,4,81,5,244,5,100,6,133,6, +113,6,144,6,241,6,109,7,12,8,145,8,170,8,192,8,111,9,111,10,247,10,200,10,85,10,72,10,221,10,164,11, +22,12,58,12,125,12,22,13,195,13,11,14,208,13,142,13,202,13,115,14,10,15,58,15,85,15,253,15,45,17,20,18, +21,18,115,17,230,16,4,17,193,17,85,18,48,18,221,17,59,18,78,19,117,20,58,21,144,21,146,21,70,21,191,20, +81,20,71,20,134,20,212,20,29,21,71,21,100,21,198,21,106,22,202,22,159,22,31,22,185,21,226,21,131,22,204,22, +105,22,22,22,78,22,161,22,166,22,102,22,241,21,140,21,154,21,244,21,25,22,225,21,134,21,77,21,98,21,166,21, +205,21,197,21,165,21,115,21,74,21,69,21,35,21,166,20,29,20,29,20,184,20,91,21,104,21,196,20,209,19,30,19, +9,19,65,19,245,18,239,17,244,16,189,16,65,17,13,18,119,18,39,18,184,17,189,17,132,17,95,16,10,15,87,14, +239,13,104,13,0,13,231,12,0,13,42,13,59,13,33,13,0,13,191,12,30,12,92,11,223,10,131,10,8,10,154,9, +85,9,255,8,135,8,44,8,252,7,176,7,27,7,112,6,225,5,117,5,53,5,41,5,49,5,42,5,248,4,105,4, +119,3,146,2,20,2,211,1,121,1,204,0,210,255,29,255,70,255,0,0,90,0,208,255,162,254,130,253,16,253,21,253, +200,252,250,251,45,251,204,250,241,250,112,251,196,251,160,251,47,251,95,250,11,249,225,247,169,247,21,248,64,248,194,247, +209,246,29,246,44,246,124,246,58,246,175,245,156,245,220,245,205,245,97,245,231,244,142,244,93,244,66,244,18,244,165,243, +221,242,226,241,58,241,61,241,123,241,79,241,229,240,245,240,157,241,58,242,71,242,213,241,61,241,229,240,250,240,9,241, +127,240,145,239,228,238,201,238,65,239,4,240,96,240,22,240,210,239,6,240,89,240,136,240,150,240,101,240,16,240,239,239, +248,239,2,240,44,240,92,240,105,240,182,240,70,241,70,241,165,240,110,240,219,240,12,241,177,240,82,240,91,240,223,240, +161,241,18,242,5,242,11,242,143,242,46,243,89,243,29,243,6,243,77,243,153,243,159,243,174,243,21,244,118,244,74,244, +207,243,204,243,128,244,92,245,236,245,72,246,154,246,228,246,44,247,104,247,121,247,103,247,74,247,51,247,104,247,5,248, +130,248,131,248,137,248,2,249,167,249,38,250,111,250,122,250,127,250,169,250,182,250,162,250,215,250,52,251,84,251,140,251, +29,252,127,252,148,252,234,252,69,253,230,252,18,252,173,251,217,251,39,252,91,252,155,252,47,253,3,254,148,254,182,254, +220,254,73,255,159,255,116,255,201,254,23,254,7,254,182,254,95,255,85,255,241,254,236,254,78,255,166,255,212,255,249,255, +7,0,252,255,14,0,40,0,241,255,116,255,46,255,130,255,94,0,43,1,36,1,102,0,254,255,104,0,234,0,196,0, +18,0,143,255,209,255,132,0,185,0,82,0,18,0,88,0,231,0,123,1,131,1,146,0,111,255,46,255,134,255,160,255, +143,255,181,255,5,0,91,0,168,0,190,0,160,0,116,0,50,0,207,255,102,255,23,255,3,255,65,255,165,255,253,255, +69,0,110,0,97,0,56,0,249,255,107,255,166,254,44,254,47,254,90,254,109,254,136,254,205,254,15,255,6,255,190,254, +141,254,180,254,16,255,31,255,150,254,17,254,105,254,64,255,115,255,226,254,109,254,110,254,141,254,138,254,99,254,48,254, +31,254,54,254,75,254,61,254,9,254,221,253,26,254,183,254,10,255,184,254,63,254,19,254,8,254,221,253,181,253,219,253, +64,254,127,254,127,254,170,254,60,255,225,255,33,0,182,255,188,254,236,253,240,253,112,254,145,254,38,254,183,253,213,253, +173,254,183,255,33,0,205,255,112,255,148,255,0,0,7,0,71,255,72,254,9,254,197,254,202,255,90,0,76,0,13,0, +49,0,178,0,253,0,223,0,173,0,119,0,20,0,181,255,190,255,35,0,87,0,2,0,167,255,251,255,170,0,232,0, +224,0,25,1,78,1,58,1,79,1,152,1,112,1,212,0,162,0,47,1,215,1,8,2,4,2,91,2,12,3,139,3, +107,3,189,2,248,1,177,1,248,1,59,2,38,2,34,2,126,2,253,2,107,3,212,3,37,4,49,4,250,3,169,3, +117,3,128,3,191,3,2,4,254,3,163,3,108,3,213,3,135,4,236,4,8,5,12,5,231,4,199,4,234,4,233,4, +84,4,167,3,155,3,24,4,125,4,141,4,165,4,30,5,191,5,10,6,233,5,173,5,145,5,145,5,120,5,30,5, +175,4,126,4,171,4,34,5,149,5,156,5,103,5,161,5,52,6,88,6,242,5,147,5,97,5,43,5,228,4,130,4, +39,4,58,4,172,4,232,4,195,4,138,4,113,4,152,4,0,5,83,5,71,5,250,4,128,4,220,3,94,3,54,3, +39,3,9,3,5,3,40,3,82,3,113,3,132,3,138,3,117,3,23,3,102,2,185,1,133,1,218,1,59,2,13,2, +93,1,225,0,250,0,70,1,110,1,140,1,149,1,51,1,110,0,204,255,176,255,234,255,2,0,187,255,69,255,35,255, +171,255,91,0,72,0,108,255,170,254,104,254,77,254,40,254,243,253,144,253,67,253,123,253,6,254,114,254,177,254,189,254, +124,254,40,254,214,253,63,253,139,252,64,252,97,252,162,252,233,252,39,253,114,253,10,254,154,254,106,254,173,253,40,253, +16,253,45,253,60,253,198,252,221,251,140,251,83,252,83,253,190,253,206,253,255,253,109,254,227,254,251,254,134,254,235,253, +168,253,155,253,96,253,14,253,35,253,187,253,92,254,165,254,192,254,240,254,43,255,76,255,79,255,64,255,32,255,218,254, +122,254,84,254,143,254,210,254,200,254,171,254,233,254,132,255,16,0,61,0,75,0,165,0,32,1,55,1,222,0,123,0, +94,0,153,0,243,0,24,1,17,1,32,1,47,1,48,1,125,1,25,2,122,2,108,2,56,2,30,2,64,2,124,2, +95,2,253,1,16,2,191,2,105,3,179,3,174,3,126,3,132,3,248,3,77,4,14,4,188,3,236,3,92,4,135,4, +78,4,232,3,170,3,206,3,54,4,128,4,111,4,74,4,129,4,248,4,55,5,34,5,228,4,142,4,114,4,7,5, +213,5,197,5,207,4,29,4,119,4,100,5,231,5,155,5,1,5,202,4,27,5,165,5,242,5,177,5,46,5,22,5, +109,5,156,5,116,5,58,5,243,4,163,4,155,4,236,4,43,5,2,5,158,4,106,4,138,4,194,4,230,4,10,5, +48,5,53,5,14,5,200,4,103,4,16,4,223,3,166,3,69,3,245,2,244,2,54,3,118,3,110,3,39,3,238,2, +215,2,180,2,137,2,112,2,79,2,14,2,178,1,72,1,9,1,50,1,122,1,87,1,226,0,182,0,253,0,55,1, +255,0,160,0,111,0,12,0,51,255,165,254,246,254,108,255,65,255,204,254,134,254,114,254,159,254,251,254,10,255,156,254, +6,254,135,253,54,253,26,253,233,252,125,252,41,252,31,252,38,252,48,252,67,252,56,252,44,252,91,252,99,252,207,251, +15,251,206,250,246,250,16,251,239,250,161,250,73,250,26,250,38,250,57,250,31,250,250,249,21,250,111,250,174,250,146,250, +35,250,167,249,133,249,213,249,16,250,188,249,58,249,60,249,184,249,255,249,203,249,141,249,151,249,160,249,128,249,157,249, +5,250,33,250,196,249,127,249,166,249,246,249,16,250,216,249,142,249,161,249,13,250,107,250,158,250,178,250,139,250,83,250, +121,250,228,250,29,251,7,251,203,250,164,250,227,250,109,251,153,251,77,251,43,251,115,251,199,251,234,251,216,251,164,251, +153,251,230,251,75,252,142,252,193,252,234,252,252,252,16,253,56,253,78,253,47,253,245,252,234,252,70,253,212,253,23,254, +1,254,3,254,69,254,121,254,145,254,207,254,17,255,247,254,178,254,200,254,50,255,118,255,124,255,135,255,191,255,40,0, +170,0,11,1,48,1,76,1,112,1,115,1,83,1,64,1,70,1,95,1,154,1,245,1,75,2,135,2,190,2,14,3, +111,3,169,3,156,3,105,3,53,3,22,3,28,3,66,3,101,3,148,3,4,4,151,4,244,4,5,5,246,4,223,4, +186,4,145,4,128,4,152,4,205,4,17,5,89,5,151,5,189,5,211,5,225,5,208,5,153,5,102,5,97,5,147,5, +230,5,37,6,48,6,58,6,116,6,160,6,124,6,55,6,9,6,224,5,176,5,155,5,163,5,179,5,215,5,16,6, +66,6,110,6,161,6,183,6,136,6,30,6,161,5,61,5,9,5,242,4,225,4,234,4,17,5,46,5,65,5,113,5, +169,5,182,5,153,5,100,5,6,5,129,4,250,3,132,3,48,3,34,3,88,3,155,3,196,3,193,3,139,3,67,3, +20,3,235,2,150,2,20,2,156,1,85,1,56,1,34,1,4,1,229,0,192,0,151,0,131,0,142,0,148,0,126,0, +87,0,37,0,233,255,179,255,118,255,17,255,139,254,2,254,128,253,24,253,227,252,208,252,209,252,238,252,3,253,236,252, +215,252,203,252,120,252,227,251,112,251,18,251,122,250,209,249,78,249,217,248,141,248,149,248,164,248,138,248,164,248,25,249, +175,249,105,250,60,251,191,251,242,251,41,252,34,252,120,251,131,250,170,249,231,248,104,248,98,248,146,248,231,248,167,249, +145,250,62,251,251,251,222,252,76,253,40,253,212,252,40,252,18,251,66,250,246,249,210,249,12,250,251,250,15,252,209,252, +159,253,134,254,33,255,128,255,193,255,155,255,32,255,205,254,177,254,184,254,18,255,167,255,60,0,4,1,8,2,198,2, +11,3,22,3,226,2,112,2,57,2,106,2,181,2,15,3,153,3,52,4,252,4,68,6,196,7,206,8,66,9,99,9, +82,9,55,9,61,9,81,9,85,9,99,9,119,9,101,9,67,9,102,9,248,9,205,10,145,11,31,12,147,12,8,13, +109,13,209,13,78,14,191,14,246,14,25,15,88,15,154,15,206,15,40,16,197,16,122,17,20,18,134,18,198,18,207,18, +188,18,173,18,155,18,126,18,131,18,197,18,34,19,131,19,234,19,65,20,112,20,145,20,159,20,106,20,12,20,207,19, +175,19,151,19,182,19,15,20,103,20,182,20,21,21,102,21,150,21,179,21,163,21,82,21,234,20,105,20,163,19,196,18, +36,18,201,17,168,17,194,17,234,17,9,18,83,18,165,18,146,18,51,18,228,17,137,17,9,17,180,16,147,16,101,16, +78,16,132,16,187,16,173,16,120,16,21,16,97,15,136,14,174,13,184,12,194,11,13,11,143,10,33,10,216,9,183,9, +143,9,77,9,7,9,188,8,76,8,165,7,237,6,90,6,228,5,86,5,176,4,18,4,121,3,233,2,132,2,61,2, +220,1,110,1,30,1,218,0,103,0,173,255,191,254,200,253,241,252,67,252,184,251,76,251,222,250,81,250,187,249,52,249, +177,248,51,248,192,247,58,247,146,246,241,245,104,245,237,244,148,244,85,244,236,243,78,243,184,242,60,242,191,241,60,241, +168,240,252,239,81,239,174,238,239,237,40,237,137,236,253,235,116,235,21,235,236,234,209,234,184,234,151,234,96,234,59,234, +52,234,248,233,101,233,209,232,94,232,225,231,106,231,32,231,249,230,245,230,26,231,45,231,3,231,185,230,96,230,246,229, +155,229,85,229,3,229,191,228,172,228,156,228,128,228,157,228,230,228,246,228,217,228,225,228,230,228,169,228,103,228,84,228, +59,228,20,228,37,228,118,228,227,228,120,229,27,230,118,230,124,230,108,230,73,230,5,230,220,229,243,229,24,230,36,230, +54,230,115,230,218,230,85,231,207,231,71,232,193,232,44,233,124,233,201,233,45,234,170,234,45,235,172,235,30,236,134,236, +252,236,139,237,11,238,81,238,126,238,183,238,206,238,183,238,194,238,7,239,90,239,219,239,153,240,55,241,179,241,108,242, +54,243,179,243,30,244,169,244,36,245,141,245,238,245,40,246,120,246,43,247,231,247,115,248,46,249,13,250,192,250,127,251, +101,252,20,253,152,253,40,254,138,254,203,254,63,255,137,255,100,255,102,255,184,255,243,255,97,0,117,1,179,2,169,3, +141,4,91,5,222,5,60,6,127,6,142,6,174,6,2,7,65,7,128,7,41,8,27,9,231,9,147,10,72,11,221,11, +44,12,74,12,68,12,25,12,12,12,103,12,243,12,84,13,177,13,69,14,228,14,139,15,107,16,69,17,197,17,33,18, +114,18,119,18,68,18,21,18,226,17,210,17,21,18,93,18,143,18,13,19,191,19,58,20,163,20,17,21,28,21,190,20, +86,20,218,19,70,19,233,18,180,18,107,18,81,18,168,18,76,19,11,20,184,20,19,21,47,21,83,21,111,21,67,21, +217,20,105,20,255,19,149,19,92,19,130,19,175,19,114,19,9,19,213,18,166,18,105,18,122,18,202,18,237,18,190,18, +41,18,63,17,152,16,116,16,88,16,53,16,64,16,7,16,96,15,3,15,14,15,237,14,164,14,93,14,207,13,15,13, +113,12,197,11,14,11,165,10,77,10,184,9,91,9,113,9,159,9,186,9,157,9,255,8,33,8,106,7,194,6,52,6, +14,6,248,5,134,5,5,5,185,4,110,4,18,4,175,3,71,3,5,3,236,2,160,2,34,2,190,1,91,1,206,0, +60,0,160,255,228,254,61,254,223,253,170,253,92,253,190,252,241,251,111,251,73,251,21,251,207,250,158,250,74,250,197,249, +76,249,215,248,100,248,66,248,105,248,129,248,127,248,97,248,246,247,70,247,110,246,108,245,146,244,55,244,32,244,4,244, +16,244,108,244,208,244,219,244,110,244,227,243,161,243,154,243,149,243,127,243,34,243,125,242,1,242,209,241,162,241,140,241, +182,241,215,241,202,241,143,241,242,240,67,240,81,240,24,241,232,241,119,242,166,242,109,242,47,242,0,242,122,241,183,240, +12,240,109,239,34,239,164,239,145,240,62,241,127,241,77,241,14,241,92,241,217,241,218,241,192,241,214,241,170,241,137,241, +2,242,131,242,153,242,181,242,217,242,192,242,176,242,155,242,19,242,99,241,247,240,194,240,19,241,49,242,82,243,157,243, +69,243,235,242,227,242,8,243,237,242,127,242,34,242,37,242,160,242,46,243,234,242,187,241,162,240,49,240,89,240,44,241, +41,242,109,242,60,242,80,242,150,242,3,243,146,243,103,243,19,242,94,240,206,238,148,237,32,237,35,237,244,236,219,236, +30,237,121,237,9,238,121,238,193,237,26,236,122,234,20,233,175,232,34,234,20,236,147,237,39,240,54,244,61,248,149,251, +240,252,79,250,157,245,167,242,39,241,96,239,219,237,154,236,130,235,242,236,126,241,35,246,240,249,17,254,17,1,54,1, +87,255,150,251,178,245,97,240,34,238,251,237,6,239,233,241,226,245,144,249,115,253,245,1,184,5,198,7,63,8,194,6, +80,3,192,255,102,253,120,251,225,249,87,250,65,253,100,1,33,6,76,10,212,11,66,11,24,11,127,11,103,11,250,10, +132,9,72,6,217,3,248,4,203,8,163,13,93,18,13,21,195,21,58,23,221,25,168,27,44,28,148,27,109,25,177,22, +53,20,7,17,234,13,90,13,62,15,233,17,214,20,72,23,217,24,247,26,201,29,107,31,204,31,33,32,2,32,21,31, +246,29,128,28,23,27,116,27,208,29,240,32,154,36,127,40,55,43,6,44,27,43,5,41,53,39,153,38,102,38,236,37, +117,37,76,37,16,38,33,40,93,42,251,43,101,45,203,45,251,43,25,41,170,38,249,36,209,36,65,38,87,39,220,39, +224,41,64,45,55,48,126,50,140,51,27,50,1,47,206,43,73,40,202,36,243,34,153,34,115,34,205,34,43,36,195,37, +244,38,165,39,104,39,74,38,105,37,94,37,111,37,20,37,230,36,71,37,207,37,121,38,144,39,111,40,116,40,225,39, +116,38,177,35,169,32,101,30,89,28,156,26,56,26,176,26,252,26,37,27,205,26,166,25,235,24,207,24,188,23,203,21, +123,20,229,19,199,19,241,19,230,18,124,16,20,15,46,15,235,14,5,14,10,13,180,11,235,10,94,11,36,11,138,9, +161,8,184,8,104,8,196,7,154,6,3,4,82,1,254,255,189,254,246,252,14,252,225,251,137,251,173,251,90,252,101,252, +236,251,126,251,141,250,36,249,29,248,115,247,198,246,20,246,9,245,130,243,221,241,20,240,12,238,23,236,47,234,78,232, +11,231,69,230,53,229,18,228,72,227,186,226,19,227,209,228,111,230,156,230,7,230,53,229,1,228,242,226,24,226,160,224, +255,222,100,222,158,222,0,223,127,223,190,223,103,223,10,223,0,223,204,222,26,222,236,220,65,219,92,217,184,215,173,214, +94,214,166,214,77,215,62,216,24,217,77,217,246,216,118,216,172,215,118,214,225,212,251,210,122,209,93,209,112,210,226,211, +108,213,168,214,62,215,198,215,118,216,132,216,205,215,180,214,16,213,84,211,96,210,208,209,78,209,177,209,226,210,9,212, +162,213,217,215,115,217,118,218,211,219,199,220,134,220,255,219,172,219,87,219,146,219,78,220,109,220,26,220,43,220,67,220, +72,220,3,221,49,222,248,222,108,223,145,223,243,222,32,222,64,222,62,223,27,224,164,224,133,225,6,227,171,228,22,230, +15,231,41,231,215,230,93,231,143,232,30,233,52,233,165,233,36,234,199,234,54,236,177,237,116,238,132,239,86,241,12,243, +158,244,250,245,14,246,36,245,151,244,44,244,111,243,66,243,191,243,63,244,60,245,253,246,209,248,237,250,161,253,200,255, +197,0,89,1,152,1,63,1,255,0,255,0,150,0,34,0,116,0,86,1,102,2,207,3,86,5,81,6,162,6,198,6, +38,7,212,7,206,8,35,10,144,11,166,12,110,13,63,14,44,15,38,16,1,17,136,17,33,18,36,19,213,19,171,19, +87,19,77,19,131,19,103,20,168,21,21,22,251,21,120,22,26,23,97,23,253,23,193,24,219,24,199,24,229,24,137,24, +12,24,95,24,238,24,240,24,217,24,19,25,120,25,2,26,135,26,213,26,37,27,157,27,43,28,235,28,191,29,47,30, +9,30,100,29,131,28,219,27,78,27,96,26,136,25,128,25,1,26,169,26,98,27,180,27,201,27,148,28,153,29,99,29, +10,28,113,26,222,24,207,23,163,23,181,23,185,23,1,24,248,23,29,23,82,22,8,22,134,21,138,20,68,19,157,17, +254,15,64,15,120,15,253,15,30,16,161,15,243,14,139,14,72,14,236,13,62,13,204,11,182,9,210,7,150,6,255,5, +229,5,191,5,92,5,114,5,43,6,216,6,64,7,56,7,67,6,187,4,45,3,33,1,167,254,200,252,136,251,90,250, +135,249,25,249,206,248,61,249,76,250,169,250,48,250,165,249,228,248,242,247,35,247,139,245,207,242,183,240,30,240,219,239, +131,239,87,239,246,238,174,238,86,239,82,240,134,240,250,239,3,239,207,237,205,236,244,235,156,234,202,232,87,231,235,230, +118,231,81,232,234,232,87,233,252,233,252,234,246,235,25,236,25,235,182,233,98,232,239,230,196,229,71,229,251,228,217,228, +104,229,50,230,191,230,120,231,4,232,204,231,176,231,32,232,35,232,213,231,225,231,101,231,232,229,178,228,99,228,140,228, +236,228,233,228,94,228,220,228,26,231,98,233,76,234,251,233,31,233,8,233,87,234,85,235,108,234,102,232,98,230,220,228, +147,228,73,229,174,229,217,229,220,230,127,232,24,234,170,235,191,236,149,236,120,235,68,234,50,233,246,231,118,230,18,229, +63,228,34,228,236,228,181,230,201,232,74,234,11,235,24,235,160,234,241,233,140,232,226,229,234,226,212,224,180,223,197,223, +26,225,152,226,34,228,251,230,162,234,134,237,211,239,147,241,152,241,80,240,75,239,181,238,137,238,31,239,110,239,207,238, +191,238,246,239,145,241,157,243,99,246,180,248,157,249,109,249,171,248,2,248,202,247,54,247,228,245,1,245,111,245,207,246, +107,248,179,249,195,250,138,252,36,255,88,1,98,2,172,2,227,2,98,3,243,3,32,4,16,4,61,4,230,4,79,6, +72,8,251,9,99,11,7,13,69,14,135,14,180,14,90,15,248,15,105,16,116,16,213,15,223,15,216,17,166,20,9,23, +49,25,22,27,190,28,228,30,246,32,169,33,128,33,86,33,162,32,126,31,225,30,150,30,34,30,1,30,72,30,157,30, +63,31,56,32,31,33,31,34,126,35,189,36,70,37,32,37,252,36,187,37,78,39,195,40,140,41,180,41,183,41,131,42, +32,44,90,45,0,46,230,46,187,47,2,48,75,48,151,48,121,48,141,48,199,48,7,48,231,46,204,46,37,47,59,47, +170,47,64,48,74,48,96,48,213,48,232,48,126,48,224,47,226,46,252,45,214,45,247,45,250,45,65,46,158,46,145,46, +93,46,73,46,26,46,146,45,119,44,216,42,71,41,241,39,127,38,22,37,65,36,47,36,164,36,228,36,89,36,167,35, +196,35,141,36,89,37,131,37,153,36,94,35,240,34,198,34,32,34,163,33,79,33,45,32,147,30,78,29,3,28,175,26, +182,25,110,24,132,22,186,20,38,19,192,17,53,17,0,17,232,15,145,14,216,13,237,12,156,11,141,10,48,9,34,7, +125,5,148,4,185,3,44,3,54,3,33,3,161,2,249,1,219,0,20,255,74,253,21,252,54,251,237,249,231,247,234,245, +226,244,195,244,220,244,105,244,249,242,68,241,91,240,252,239,93,239,120,238,71,237,179,235,97,234,149,233,183,232,192,231, +12,231,96,230,208,229,149,229,248,228,154,227,50,226,228,224,97,223,8,222,187,220,210,218,219,216,170,215,242,214,153,214, +232,214,68,215,27,215,183,214,48,214,162,213,121,213,71,213,95,212,88,211,217,210,190,210,37,211,211,211,213,211,121,211, +224,211,145,212,157,212,88,212,232,211,212,210,110,209,78,208,128,207,69,207,207,207,124,208,210,208,35,209,174,209,72,210, +161,210,133,210,64,210,34,210,216,209,45,209,129,208,3,208,207,207,105,208,232,209,176,211,50,213,22,214,121,214,24,215, +239,215,252,215,37,215,74,214,194,213,180,213,117,214,146,215,110,216,73,217,101,218,186,219,124,221,54,223,252,223,11,224, +41,224,99,224,240,224,37,226,89,227,26,228,249,228,10,230,7,231,87,232,237,233,234,234,46,235,24,235,211,234,0,235, +238,235,170,236,219,236,131,237,227,238,80,240,175,241,232,242,149,243,20,244,17,245,89,246,117,247,66,248,209,248,139,249, +193,250,3,252,231,252,187,253,233,254,127,0,53,2,143,3,121,4,94,5,97,6,109,7,142,8,115,9,207,9,60,10, +70,11,127,12,155,13,162,14,67,15,159,15,139,16,251,17,255,18,81,19,84,19,115,19,42,20,142,21,245,22,201,23, +43,24,173,24,180,25,203,26,50,27,32,27,66,27,146,27,227,27,76,28,130,28,97,28,108,28,181,28,0,29,193,29, +26,31,85,32,92,33,128,34,95,35,222,35,110,36,201,36,208,36,72,37,9,38,10,38,138,37,61,37,210,36,99,36, +158,36,3,37,199,36,94,36,51,36,18,36,72,36,255,36,92,37,232,36,62,36,193,35,75,35,196,34,243,33,138,32, +223,30,191,29,132,29,217,29,58,30,83,30,72,30,140,30,31,31,66,31,120,30,44,29,237,27,208,26,205,25,193,24, +131,23,162,22,186,22,37,23,13,23,187,22,60,22,63,21,149,20,177,20,255,19,189,17,119,15,12,14,253,12,121,12, +132,12,29,12,66,11,189,10,80,10,197,9,119,9,134,8,1,6,17,3,244,0,67,255,222,253,240,252,177,251,46,250, +166,249,167,249,180,248,108,247,30,247,48,247,182,246,228,245,203,244,132,243,193,242,76,242,26,241,153,239,251,238,212,238, +47,238,101,237,230,236,89,236,210,235,150,235,27,235,53,234,159,233,74,233,113,232,73,231,124,230,240,229,128,229,49,229, +134,228,105,227,157,226,54,226,161,225,9,225,148,224,193,223,230,222,234,222,101,223,132,223,120,223,97,223,43,223,148,223, +174,224,255,224,234,223,115,222,75,221,206,220,125,221,118,222,30,222,240,220,165,220,167,221,113,223,94,225,117,226,177,226, +74,227,50,228,15,228,26,227,139,226,54,226,138,225,14,225,55,225,40,226,30,228,59,230,230,230,124,230,193,230,202,231, +83,232,12,232,100,231,183,230,129,230,164,230,64,230,112,229,98,229,75,230,103,231,129,232,147,233,63,234,189,234,141,235, +38,236,231,235,109,235,111,235,197,235,73,236,223,236,251,236,147,236,152,236,128,237,223,238,112,240,237,241,168,242,109,242, +207,241,77,241,16,241,227,240,43,240,1,239,172,238,189,239,90,241,253,242,193,244,59,246,43,247,16,248,230,248,58,249, +38,249,167,248,130,247,158,246,3,247,224,247,24,248,59,248,93,249,224,251,105,255,80,2,213,2,208,1,157,1,125,2, +190,2,156,1,0,0,71,255,33,0,219,1,48,3,243,3,237,4,126,6,125,8,159,10,77,12,248,12,226,12,191,12, +211,12,48,13,65,14,20,16,208,17,214,18,130,19,43,20,175,20,62,21,203,21,127,21,107,20,20,20,24,21,93,22, +20,23,112,23,5,24,156,25,53,28,67,30,151,30,1,30,223,29,125,30,93,31,205,31,148,31,92,31,208,31,217,32, +10,34,243,34,102,35,252,35,64,37,130,38,204,38,68,38,187,37,203,37,91,38,129,38,156,37,96,36,234,35,128,36, +176,37,178,38,15,39,79,39,254,39,163,40,191,40,128,40,30,40,245,39,117,40,40,41,104,41,174,41,126,42,121,43, +74,44,190,44,100,44,134,43,223,42,55,42,10,41,161,39,117,38,217,37,11,38,139,38,215,38,157,39,84,41,25,43, +50,44,164,44,71,44,64,43,64,42,67,41,219,39,137,38,0,38,13,38,65,38,164,38,103,39,121,40,110,41,197,41, +45,41,149,39,145,37,27,36,42,35,210,33,24,32,228,30,192,30,240,31,29,34,199,35,16,36,167,35,230,34,198,33, +20,33,203,32,156,31,162,29,37,28,81,27,43,27,29,28,42,29,24,29,148,28,96,28,237,27,245,26,152,25,179,23, +194,21,102,20,42,19,202,17,233,16,139,16,51,16,29,16,135,16,0,17,23,17,156,16,197,15,49,15,254,14,149,14, +157,13,28,12,88,10,34,9,197,8,91,8,89,7,45,6,33,5,100,4,8,4,88,3,245,1,158,0,141,255,84,254, +78,253,193,252,20,252,62,251,154,250,231,249,83,249,93,249,110,249,229,248,28,248,15,247,144,245,33,244,159,242,122,240, +148,238,201,237,96,237,244,236,201,236,64,236,14,235,9,234,80,233,125,232,230,231,71,231,165,229,95,227,184,225,0,225, +195,224,118,224,225,223,149,223,247,223,80,224,244,223,218,222,49,221,217,219,151,219,135,219,155,218,66,217,252,215,224,214, +123,214,173,214,124,214,203,213,223,212,121,211,27,210,84,209,89,208,36,207,10,207,202,207,30,208,38,208,252,207,27,207, +61,206,40,206,30,206,234,205,20,206,254,205,50,205,143,204,119,204,153,204,234,204,237,204,16,204,219,202,224,201,19,201, +175,200,149,200,35,200,225,199,209,200,158,202,107,204,156,205,147,205,230,204,24,205,227,205,159,205,19,204,73,202,62,201, +137,201,174,202,158,203,75,204,52,205,101,206,213,207,252,208,7,209,187,208,79,209,23,210,65,210,63,210,231,209,35,209, +86,209,242,210,214,212,186,214,103,216,234,216,228,216,150,217,123,218,120,219,112,221,81,223,218,223,68,224,62,225,15,226, +128,227,31,230,22,232,141,232,174,232,220,232,56,233,131,234,38,236,18,237,244,237,99,239,127,240,246,240,92,241,16,242, +112,243,144,245,189,247,118,249,243,250,167,252,230,254,75,1,6,3,65,4,173,5,37,7,89,8,46,9,62,9,243,8, +88,9,34,10,199,10,8,12,217,13,60,15,155,16,94,18,191,19,58,21,163,23,191,25,227,26,222,27,15,28,8,27, +162,26,40,27,7,27,221,26,154,27,12,28,121,28,119,30,53,33,192,35,234,38,209,41,198,42,198,42,199,42,1,42, +246,40,158,40,227,39,73,38,27,37,204,36,73,37,70,39,63,42,86,44,24,45,141,45,51,46,143,46,15,46,243,44, +18,44,203,43,8,44,169,44,94,45,71,46,233,47,131,49,245,49,188,49,28,49,11,47,244,43,25,41,51,38,198,35, +136,35,142,36,16,37,17,38,21,40,133,41,97,42,45,43,125,42,113,40,25,39,8,38,192,35,230,32,57,30,246,27, +53,27,169,27,127,27,222,26,214,26,208,26,117,26,16,26,200,24,102,22,49,20,100,18,157,16,103,15,148,14,85,13, +24,12,34,11,165,9,155,7,139,5,131,3,248,1,16,1,167,255,138,253,10,252,191,251,68,252,177,252,153,251,49,249, +143,247,243,246,160,245,64,243,129,240,167,237,97,235,227,233,43,232,82,230,123,229,95,229,21,229,85,228,219,226,52,225, +147,224,101,224,135,223,169,222,62,222,130,221,170,220,2,220,170,218,209,216,164,215,10,215,142,214,1,214,138,212,59,210, +108,208,1,207,48,205,199,203,105,203,244,203,186,205,147,207,129,207,191,206,95,207,25,208,150,207,87,206,163,203,92,199, +66,196,62,195,79,194,66,193,11,193,114,193,27,195,95,198,128,200,195,199,85,198,25,198,176,198,116,199,57,199,6,197, +136,194,68,194,113,196,34,200,200,204,76,209,21,212,133,212,167,211,7,211,240,210,150,210,109,209,103,207,103,205,94,205, +149,207,34,210,217,212,19,217,236,221,244,225,17,229,155,229,64,226,19,222,238,219,218,218,194,218,168,220,225,222,192,224, +150,228,47,234,81,239,39,244,111,248,99,250,8,251,250,251,162,251,127,249,192,247,3,247,92,247,87,250,64,255,110,3, +203,6,55,10,228,12,230,14,95,17,171,19,154,20,136,20,77,20,191,20,10,23,97,27,91,32,124,36,189,39,15,43, +104,46,99,48,88,48,248,46,83,45,159,44,217,44,237,43,140,41,217,40,74,43,44,47,163,51,54,56,106,59,179,61, +84,64,227,65,234,65,187,66,23,68,183,67,139,66,64,66,154,66,145,68,202,72,155,76,184,78,21,81,200,83,88,85, +57,86,101,86,195,84,140,82,154,81,92,81,37,81,122,81,79,82,161,83,9,86,240,88,213,90,46,91,115,90,64,89, +218,87,59,86,198,84,243,83,153,83,14,84,214,85,160,87,33,88,116,88,100,89,254,89,222,89,140,88,203,84,169,79, +132,75,23,72,194,68,253,66,2,67,165,67,50,69,124,71,245,72,251,73,123,75,231,75,35,74,73,71,33,68,110,65, +111,64,62,64,9,63,143,61,41,61,58,61,1,61,74,60,113,58,68,55,93,51,59,47,112,43,139,40,131,38,24,37, +228,35,133,34,200,33,94,34,184,34,77,33,194,30,214,27,218,24,165,22,196,20,213,17,128,14,254,11,3,10,227,8, +32,9,35,9,40,8,153,7,32,7,93,5,34,3,214,0,77,253,114,249,244,246,249,244,214,242,88,241,250,239,36,238, +27,237,38,237,225,236,2,236,199,234,194,232,120,230,27,229,117,228,148,227,56,226,160,224,56,223,65,222,137,221,165,220, +0,219,84,216,108,213,197,210,138,207,207,203,229,200,241,198,153,197,78,197,101,197,171,196,22,196,185,196,231,197,98,199, +193,200,1,200,33,197,184,194,65,193,143,191,12,190,233,188,165,187,158,187,150,189,88,191,191,191,5,192,88,192,39,192, +201,191,247,190,63,189,182,187,3,187,88,186,144,185,66,185,137,185,137,186,30,188,48,189,49,189,177,188,29,188,127,187, +213,186,4,186,92,185,76,185,169,185,115,186,31,188,107,190,210,192,19,195,75,196,8,196,144,195,117,195,198,194,165,193, +199,192,185,191,212,190,95,191,242,192,197,194,97,197,127,200,95,203,184,206,102,210,135,212,6,213,55,213,2,213,120,212, +146,212,203,212,82,212,71,212,125,213,66,215,88,217,189,219,204,221,155,223,168,225,73,227,182,227,86,227,246,226,8,227, +137,227,36,228,240,228,83,230,93,232,1,235,191,237,88,239,193,239,159,240,99,242,244,243,21,245,12,246,208,246,19,248, +75,250,84,252,147,253,200,254,29,0,115,1,41,3,204,4,195,5,164,6,91,7,243,6,86,6,44,7,252,8,161,10, +12,12,62,13,92,14,20,16,94,18,125,20,25,22,19,23,160,23,106,24,89,25,213,25,42,26,113,26,23,26,173,25, +66,26,96,27,101,28,119,29,26,30,230,29,201,29,38,30,86,30,142,30,62,31,191,31,187,31,157,31,100,31,68,31, +24,32,250,33,33,36,232,37,235,38,23,39,217,38,119,38,232,37,63,37,96,36,33,35,226,33,23,33,226,32,115,33, +130,34,33,35,250,34,129,34,26,34,245,33,164,33,17,32,84,29,224,26,77,25,102,24,101,24,209,24,165,24,78,24, +126,24,186,24,37,25,87,26,34,27,41,26,33,24,45,22,178,20,211,19,165,18,39,16,160,13,193,12,231,12,235,12, +173,12,37,12,214,11,137,12,251,12,98,11,187,8,175,6,240,4,57,3,27,2,19,1,169,255,255,254,114,255,182,255, +119,255,139,255,166,255,225,254,118,253,173,251,249,248,131,245,86,242,163,239,45,237,159,235,56,235,249,234,195,234,75,235, +252,235,32,236,100,236,141,236,85,235,75,233,150,231,147,229,72,227,7,226,82,225,46,224,204,223,141,224,223,224,249,224, +222,225,55,226,84,225,217,224,188,224,103,223,74,221,47,219,138,216,81,214,59,214,58,215,124,215,102,215,154,215,237,215, +194,216,247,217,36,218,3,217,194,215,185,214,167,213,232,212,97,212,93,211,63,210,64,210,174,211,236,213,31,216,15,217, +19,216,71,214,62,213,246,212,109,212,50,211,149,209,129,208,251,208,174,210,109,212,102,214,87,217,84,220,50,222,95,223, +66,224,131,224,100,224,250,223,177,222,145,221,134,222,236,224,184,226,208,227,41,229,71,231,125,234,146,237,7,238,9,236, +142,234,184,234,63,235,78,235,230,234,213,234,211,236,233,240,162,244,224,246,255,248,166,251,74,254,185,0,109,2,162,2, +18,2,224,1,165,1,251,0,223,0,217,1,33,3,87,4,242,5,23,8,124,10,13,13,177,15,242,17,131,19,116,20, +180,20,100,20,118,20,155,21,244,22,104,23,130,23,170,24,87,27,174,30,67,33,126,34,90,35,1,37,8,39,78,40, +158,40,125,40,99,40,121,40,128,40,92,40,176,40,234,41,53,43,121,43,16,43,145,43,196,45,83,48,84,49,239,48, +2,49,133,50,156,52,230,53,34,54,192,54,16,57,233,59,11,61,96,60,191,59,122,60,76,62,101,63,36,62,188,59, +200,58,42,59,241,58,31,58,206,57,230,57,26,58,152,58,84,59,161,60,10,63,145,65,162,66,112,66,55,66,95,66, +119,66,166,65,118,63,220,60,33,59,72,58,234,57,28,58,172,58,101,59,170,60,85,62,85,63,29,63,239,61,12,60, +228,57,26,56,144,54,137,52,253,49,241,47,100,47,68,48,129,49,246,49,112,49,2,49,195,49,19,51,251,50,175,48, +129,45,48,43,10,42,201,40,86,38,208,35,55,35,49,36,147,36,153,35,9,34,176,32,247,31,16,31,112,28,230,24, +16,23,247,22,135,22,97,21,107,20,11,20,182,20,246,21,231,21,119,20,216,19,77,20,238,19,17,18,100,15,163,12, +176,10,152,9,81,8,202,6,194,5,228,4,219,3,102,3,160,3,199,3,213,3,208,3,240,2,10,1,1,255,72,253, +138,251,131,249,81,247,77,245,216,243,30,243,255,242,32,243,46,243,15,243,162,242,210,241,1,241,107,240,112,239,153,237, +115,235,208,233,1,233,162,232,228,231,241,230,8,231,26,232,114,232,103,231,226,229,184,228,48,228,182,227,19,226,181,223, +152,222,27,223,219,223,17,224,180,223,51,223,154,223,104,224,130,223,7,221,40,219,62,218,104,217,219,216,174,216,191,216, +206,217,139,219,0,220,163,218,182,216,22,215,52,214,237,213,224,212,220,210,235,209,218,210,83,212,217,213,180,215,62,217, +13,218,160,218,211,218,11,218,165,216,87,215,30,214,204,212,190,211,99,211,177,211,155,212,98,214,178,216,156,218,227,219, +224,220,145,221,245,221,2,222,9,221,29,219,167,217,245,216,248,215,178,214,234,213,242,213,91,215,226,217,136,219,211,219, +188,220,198,222,165,224,229,225,11,226,102,224,87,222,119,221,243,220,47,220,21,220,131,220,214,220,170,221,32,223,108,224, +144,225,99,226,6,226,223,224,25,224,192,223,198,223,98,224,225,224,12,225,76,226,67,229,211,232,240,235,4,238,148,238, +227,237,168,236,17,235,105,233,171,232,105,233,203,234,126,235,109,235,140,235,20,236,161,236,106,237,107,238,223,238,201,238, +192,238,171,238,235,238,103,240,144,242,120,244,66,246,250,246,50,245,81,242,102,240,234,238,130,237,56,237,221,237,43,239, +87,242,253,246,8,251,42,254,192,0,216,1,87,1,246,255,48,253,61,249,41,246,190,244,73,244,41,245,1,248,66,252, +69,1,76,6,197,9,180,10,221,9,134,8,237,6,161,4,211,1,134,255,119,254,12,255,147,1,9,5,156,7,85,9, +44,11,86,12,203,11,15,10,136,7,137,4,108,2,174,1,133,1,63,2,122,4,144,7,68,11,142,15,6,19,5,21, +90,22,106,22,94,20,227,17,127,16,161,15,254,14,151,14,155,13,155,12,99,13,219,15,178,18,83,21,31,23,183,23, +20,24,185,24,219,24,55,24,53,23,245,21,216,20,80,20,32,20,26,20,107,20,231,20,96,21,250,21,122,22,105,22, +157,21,68,20,195,18,85,17,245,15,51,15,123,15,245,15,73,16,119,17,48,19,29,20,118,20,110,20,24,19,53,17, +3,16,79,14,190,11,148,10,88,11,210,12,79,15,118,18,98,20,111,21,188,22,196,22,199,20,125,18,22,16,207,12, +244,9,72,8,154,6,239,4,84,4,144,4,68,5,116,6,46,7,161,6,99,5,227,3,229,1,202,255,87,254,155,253, +45,253,233,252,224,252,222,252,195,252,3,253,133,253,24,253,106,251,52,249,75,246,200,242,77,240,13,239,134,237,42,236, +34,236,75,236,233,235,29,236,190,236,203,236,157,236,32,236,136,234,97,232,62,230,243,227,121,226,78,226,198,225,142,224, +33,224,67,224,91,224,120,225,72,227,42,228,148,228,102,229,253,229,115,230,22,231,87,230,155,227,169,224,134,222,237,220, +252,219,111,219,152,218,230,217,2,218,206,218,98,220,206,222,57,225,176,226,224,226,238,225,158,224,199,223,123,223,70,223, +205,222,108,222,21,223,156,224,188,225,126,226,215,227,117,229,228,230,45,232,7,232,227,229,41,228,65,228,190,228,96,229, +252,230,16,233,11,236,56,241,207,246,14,250,67,251,94,251,95,250,113,249,84,249,203,248,169,247,87,247,57,248,63,250, +139,253,23,1,24,4,80,7,197,10,46,13,245,13,68,13,188,11,156,10,59,10,195,9,51,9,28,9,164,9,82,11, +70,14,38,17,87,19,186,21,117,24,54,27,51,30,227,32,131,34,143,35,80,36,181,36,246,37,150,40,199,42,124,43, +145,43,174,43,123,44,185,46,82,49,102,50,2,50,142,49,59,50,106,52,27,55,21,57,97,58,99,59,154,60,28,63, +143,66,233,68,3,70,71,71,139,72,53,73,170,73,124,73,14,72,43,70,92,68,140,66,115,65,29,65,167,64,184,64, +96,66,215,68,77,71,111,73,46,74,192,73,213,73,10,74,254,72,131,71,124,70,93,69,109,68,62,68,83,68,189,68, +195,69,148,70,49,71,141,72,246,73,105,74,106,74,243,73,112,72,169,70,41,69,64,67,31,65,68,63,241,60,0,58, +149,55,58,54,206,53,10,54,247,53,249,52,213,51,70,51,7,51,121,50,116,49,169,48,101,48,84,47,164,44,153,41, +17,39,239,36,217,35,139,35,50,34,167,31,239,28,164,25,56,22,56,20,179,18,63,16,72,14,113,13,98,12,177,11, +88,12,13,13,127,13,121,14,128,14,148,12,153,10,29,9,140,6,207,2,156,254,51,250,248,246,206,245,253,244,48,243, +83,241,33,240,101,239,222,238,239,237,21,236,168,233,56,231,236,228,122,226,119,223,94,220,251,217,207,215,95,213,93,211, +202,209,79,208,10,208,254,208,14,209,253,207,101,207,25,207,99,206,153,205,51,204,219,201,14,200,44,199,229,197,11,196, +217,193,65,191,209,189,109,190,198,190,109,189,206,187,120,186,9,185,70,184,60,184,251,183,252,183,219,184,213,185,130,186, +5,187,19,187,214,186,151,186,157,185,124,183,147,180,29,177,33,174,7,173,66,173,114,173,184,173,135,174,203,175,124,177, +224,178,89,179,221,179,200,180,222,180,53,180,238,179,22,180,211,180,45,182,157,182,11,182,180,182,176,184,88,186,9,188, +21,190,137,191,78,193,104,196,39,199,215,200,191,202,46,204,32,204,41,204,7,205,123,205,142,205,188,205,85,205,224,204, +233,205,42,208,155,210,57,213,206,215,146,217,102,218,224,218,160,219,210,220,65,222,3,224,67,226,201,228,162,231,188,234, +66,237,125,239,154,242,190,245,154,247,15,249,251,249,183,248,158,246,77,246,128,247,9,250,164,254,46,3,213,5,155,8, +22,12,142,14,42,17,228,20,214,22,13,22,27,21,114,20,142,19,17,20,252,21,113,23,242,24,137,27,23,30,23,32, +41,34,242,35,90,37,253,38,76,40,178,40,234,40,3,41,30,40,144,38,150,37,213,37,66,39,85,41,62,43,79,44, +130,44,242,44,140,46,102,48,120,49,37,50,70,50,84,49,177,48,127,49,175,50,242,51,211,53,33,55,44,55,47,55, +4,55,182,53,19,52,109,50,32,48,36,46,199,44,149,42,133,40,145,40,94,41,178,41,202,42,19,44,240,43,69,43, +123,42,122,40,85,38,38,37,83,35,151,32,133,30,129,28,167,25,62,23,166,21,6,20,176,18,125,17,87,15,232,12, +118,11,111,10,23,9,224,7,85,7,132,7,79,7,169,4,133,255,135,250,217,247,77,247,251,246,205,244,0,241,253,237, +54,237,101,238,160,240,245,241,161,240,33,237,201,232,108,228,232,224,197,221,104,217,242,212,112,211,28,213,204,215,138,217, +209,216,29,214,207,211,22,210,37,207,22,203,184,198,240,193,220,189,216,187,189,187,234,189,84,194,85,198,154,200,145,202, +161,203,18,202,138,198,45,193,207,185,19,180,195,178,226,178,236,177,58,177,185,177,117,180,111,187,98,196,36,202,7,204, +65,204,50,203,70,201,89,199,73,196,138,191,72,187,44,185,84,185,7,188,113,192,93,196,120,199,105,203,32,208,86,211, +174,211,170,209,31,206,99,202,110,200,251,199,203,198,239,197,249,200,65,207,76,213,153,218,131,223,35,227,79,230,69,233, +20,233,247,229,76,228,120,228,60,228,244,228,211,231,192,235,186,241,141,249,218,254,13,1,49,4,251,7,160,9,202,9, +171,8,85,5,191,2,166,3,100,6,153,10,134,17,171,24,175,29,163,34,94,40,126,44,71,46,140,46,188,45,151,45, +88,47,122,48,234,46,108,45,106,47,44,52,245,56,82,60,35,62,38,63,226,64,160,67,171,69,222,70,77,73,171,76, +126,78,36,79,128,80,126,82,81,85,71,89,249,91,137,92,251,93,92,96,175,96,223,95,150,95,33,94,112,92,163,93, +189,95,18,96,225,96,250,98,191,100,213,103,132,108,69,110,82,108,130,106,220,104,195,101,245,98,22,97,235,94,66,94, +225,96,128,100,27,103,10,105,16,106,47,106,231,106,28,108,116,107,241,103,13,99,154,94,134,91,234,89,49,89,154,88, +99,88,73,89,24,90,223,88,181,86,182,85,231,84,13,83,44,81,254,78,211,75,32,74,25,75,238,75,190,75,12,76, +167,75,124,73,138,71,251,69,13,67,125,63,7,60,109,55,126,50,24,47,144,44,125,42,229,41,214,41,226,40,197,39, +193,38,46,37,217,35,62,35,37,34,40,32,227,29,62,27,17,24,127,20,105,16,29,12,68,8,57,5,138,3,20,3, +63,2,117,0,185,254,18,253,253,250,184,248,16,246,67,243,152,241,11,240,45,236,19,231,92,227,32,225,34,224,52,224, +22,223,23,220,202,217,196,216,109,215,73,214,247,213,66,213,40,212,48,211,104,209,63,207,58,206,25,205,85,202,94,199, +78,197,99,195,136,193,192,191,104,189,75,187,177,186,189,186,252,185,147,184,39,183,175,181,8,180,194,178,130,178,199,178, +180,178,130,178,93,178,16,178,160,178,38,180,228,179,247,176,1,174,190,171,244,168,112,166,181,164,240,162,166,162,5,165, +130,167,82,169,154,172,63,176,214,177,116,178,179,178,126,177,44,176,121,175,8,173,110,169,14,168,160,168,161,169,52,172, +3,176,241,178,134,181,144,184,73,186,107,186,20,187,117,188,228,188,216,187,18,186,191,184,250,184,216,186,102,189,162,191, +75,193,248,194,255,196,228,198,115,200,174,201,36,202,42,202,211,202,247,203,64,205,116,207,81,210,254,212,82,216,92,220, +39,223,175,224,107,226,191,227,70,228,96,229,243,230,67,232,38,234,23,236,123,236,156,236,104,238,118,241,197,245,64,251, +112,255,105,1,49,3,40,5,122,6,227,7,24,9,202,8,17,8,53,8,135,8,113,9,220,11,125,14,161,16,51,19, +148,21,30,23,65,25,44,28,68,30,129,31,91,32,63,32,236,31,215,32,93,34,47,35,93,35,84,35,105,35,29,36, +152,37,159,39,165,41,203,42,39,43,239,43,155,45,159,47,66,49,156,49,148,48,152,47,197,47,27,49,91,51,89,53, +159,53,184,52,190,51,153,50,205,49,239,49,164,49,50,48,156,46,188,44,158,42,88,42,242,43,27,45,207,45,195,46, +200,46,52,46,67,46,105,45,216,42,166,40,242,38,48,36,239,32,128,29,166,25,219,23,90,25,4,27,123,27,64,28, +110,28,13,27,19,26,113,25,207,22,237,18,107,15,68,11,190,6,26,4,48,3,139,2,116,2,196,2,253,1,58,0, +212,254,171,253,212,251,101,249,165,246,80,243,233,239,94,237,242,234,178,231,47,229,253,228,225,229,149,230,166,230,103,228, +10,224,29,221,203,219,86,216,7,211,13,207,136,204,105,203,139,204,60,205,92,203,68,202,245,203,42,206,68,208,173,209, +9,207,253,200,111,196,39,194,93,192,168,191,249,190,203,187,35,184,52,183,54,184,80,186,181,189,24,192,181,191,146,190, +107,190,186,190,222,190,197,189,130,186,13,183,39,182,56,183,236,183,153,183,78,183,218,184,160,189,139,196,248,201,53,203, +75,201,230,198,237,196,48,195,8,194,44,193,47,192,115,192,203,194,170,197,183,200,32,205,207,209,31,213,91,215,195,215, +78,213,92,210,1,209,8,208,139,207,13,209,163,211,241,214,96,220,80,226,94,230,26,234,57,238,115,240,8,241,125,241, +157,240,186,238,153,238,204,239,166,240,179,242,233,246,191,251,219,0,17,6,132,9,54,11,148,13,63,17,219,20,117,23, +195,24,54,25,202,25,209,26,93,28,239,30,112,34,22,38,83,41,10,44,208,46,172,50,98,55,139,59,45,62,204,62, +194,61,176,60,86,60,253,59,244,59,239,60,46,62,161,63,117,66,35,70,70,73,0,76,164,78,19,81,134,83,22,85, +112,84,198,82,24,82,159,82,148,84,20,88,129,91,231,93,228,95,60,97,249,97,99,99,186,100,49,100,188,98,165,97, +154,96,110,96,184,97,159,98,230,98,80,100,215,101,196,101,108,101,163,101,124,101,130,101,224,101,178,100,96,98,175,97, +229,98,16,100,233,99,220,97,182,94,192,92,190,92,59,93,214,92,230,90,182,87,20,85,109,84,26,85,193,85,131,85, +242,83,56,81,226,77,220,74,133,73,2,74,168,74,82,74,227,72,82,70,240,67,142,67,84,68,71,68,23,67,195,64, +143,61,119,59,30,59,87,58,87,56,62,54,41,52,10,50,239,47,120,44,187,39,124,36,50,35,111,33,90,30,126,26, +184,22,46,21,17,22,248,21,173,19,125,17,254,15,109,14,26,13,33,11,86,7,104,3,133,0,16,253,229,248,219,245, +26,244,206,242,170,241,228,239,88,237,91,235,41,234,157,232,126,230,51,228,192,225,121,223,225,221,4,221,135,220,186,219, +86,218,38,217,161,216,65,216,159,215,68,214,234,211,192,209,91,208,253,205,49,202,65,199,58,198,43,198,32,198,166,196, +48,193,49,190,101,189,91,189,28,189,156,188,146,186,26,183,117,180,247,178,176,177,65,177,154,177,111,177,54,177,188,177, +44,178,114,178,102,179,152,180,92,181,138,181,174,180,105,179,14,179,221,178,224,177,125,177,76,178,199,178,105,178,212,177, +74,177,119,177,133,178,15,179,225,178,136,179,68,181,14,183,69,184,134,184,110,184,170,185,27,188,19,190,94,191,94,192, +118,192,177,191,251,190,198,190,101,191,177,192,81,193,236,192,219,192,233,193,4,196,207,198,13,201,51,202,113,203,6,205, +23,206,74,207,40,209,113,210,248,210,4,212,204,213,63,216,127,219,88,222,2,224,199,225,60,228,193,230,144,233,115,236, +30,238,209,238,192,239,180,240,61,241,133,241,162,241,135,242,48,245,30,248,148,249,154,250,185,252,223,255,35,3,28,5, +59,5,56,5,76,6,89,7,188,7,30,8,234,8,243,10,153,14,252,17,14,20,82,22,214,24,224,25,178,25,81,25, +128,24,172,23,139,23,113,23,110,23,144,24,64,26,170,27,161,29,79,32,186,34,188,36,22,38,30,38,198,37,97,38, +74,39,164,39,249,39,212,40,222,41,88,42,228,41,105,41,0,42,12,43,6,43,41,41,215,37,211,34,243,33,122,34, +106,34,177,33,97,33,219,33,223,34,64,35,30,34,8,33,92,33,128,33,40,32,11,30,99,27,210,24,51,24,227,24, +129,24,161,23,166,23,159,23,74,23,128,23,60,23,177,21,246,19,6,18,66,15,150,12,14,10,177,6,143,3,206,1, +112,0,107,255,172,255,247,255,52,255,133,254,251,253,88,252,77,250,229,248,64,247,210,244,81,242,185,239,253,236,100,235, +171,235,129,236,78,236,209,234,97,232,74,229,88,226,23,224,157,221,70,218,69,215,48,213,40,211,193,209,74,210,229,211, +167,213,9,216,28,218,129,218,12,218,178,216,3,213,168,208,3,206,171,203,194,200,63,199,209,198,20,198,194,198,97,201, +115,203,13,205,136,207,156,208,163,206,127,203,192,199,242,194,124,191,237,190,70,191,145,191,211,192,180,194,145,196,217,198, +239,200,208,201,74,202,200,202,179,201,199,198,120,196,136,196,48,198,69,200,169,202,141,205,38,209,81,213,90,216,72,216, +34,214,230,212,56,213,105,213,87,212,67,210,21,209,57,211,248,215,58,220,189,223,31,228,146,232,202,235,227,237,243,237, +191,235,88,234,73,235,72,236,117,236,247,236,130,237,105,238,161,241,165,246,76,251,98,255,214,2,232,4,218,6,195,9, +217,11,66,12,196,12,31,14,205,15,219,17,143,19,71,20,7,22,95,26,17,31,230,33,247,35,165,38,82,41,11,43, +131,43,41,43,215,43,11,47,217,50,57,52,84,52,233,54,241,59,235,63,29,65,144,64,54,64,227,65,170,68,193,68, +192,65,111,64,92,67,11,72,14,76,168,78,142,79,66,80,148,82,39,85,5,86,192,85,245,84,140,83,225,82,223,83, +74,85,195,86,45,89,235,91,227,93,56,95,184,95,10,95,106,94,202,94,5,95,57,94,73,93,45,93,253,93,78,95, +117,96,243,96,236,96,212,96,176,96,220,95,207,93,35,91,23,89,61,88,30,88,230,87,92,87,152,87,175,89,96,92, +21,93,25,91,23,88,240,85,22,85,101,84,143,82,213,79,136,77,60,76,113,75,109,74,47,73,187,72,88,73,58,73, +40,71,189,68,169,67,64,67,42,66,217,63,154,60,224,57,206,56,40,56,87,54,242,51,14,50,105,48,134,46,95,44, +25,42,59,40,224,38,224,36,146,33,42,30,242,27,201,26,13,26,36,25,96,23,178,20,247,17,205,15,196,13,75,11, +165,8,42,6,100,3,217,255,28,252,58,249,183,247,94,247,53,247,22,246,254,243,254,241,181,240,231,239,19,239,174,237, +144,235,91,233,118,231,111,229,48,227,148,225,248,224,170,224,238,223,108,222,248,219,5,217,201,214,241,213,137,213,12,212, +57,209,80,206,234,204,122,205,99,206,66,205,6,202,68,199,145,198,111,198,166,196,244,192,44,189,124,187,25,188,184,188, +209,187,251,186,41,188,97,190,27,191,123,189,7,187,3,186,239,186,150,187,199,185,144,182,176,180,209,180,138,181,200,181, +112,181,223,180,212,180,145,181,56,182,71,182,158,182,239,183,150,185,160,186,174,186,13,186,199,185,229,186,29,189,35,191, +2,192,175,191,230,190,154,190,26,191,253,191,216,192,116,193,239,193,184,194,146,195,109,195,72,194,138,193,233,193,222,194, +13,196,104,197,209,198,177,200,100,203,246,205,70,207,229,207,90,209,205,211,159,213,111,213,23,212,206,211,124,213,34,216, +149,218,121,220,6,222,231,223,144,226,59,229,194,230,113,231,122,232,174,233,240,233,187,233,165,234,163,236,70,238,40,239, +228,239,250,240,236,242,144,245,161,247,232,248,228,250,192,253,210,255,133,0,168,0,194,0,28,1,163,1,123,1,172,0, +203,0,158,2,64,5,143,7,216,8,104,9,162,10,196,12,57,14,63,14,175,13,58,13,127,13,42,15,161,17,225,19, +42,22,175,24,178,26,2,28,228,28,249,28,65,28,171,27,128,27,26,27,57,26,70,25,201,24,49,25,147,26,108,28, +237,29,156,30,158,30,31,30,236,28,73,27,42,26,241,25,24,26,245,25,38,25,58,24,207,24,97,27,252,29,143,30, +226,28,73,26,183,24,196,24,152,24,226,22,6,21,89,20,124,20,204,20,67,20,11,18,216,15,190,15,84,16,127,15, +1,14,227,12,184,11,162,10,3,10,66,9,54,8,122,7,23,7,195,6,74,6,81,5,239,3,143,2,37,1,231,255, +80,255,134,254,111,252,134,249,73,246,120,242,12,239,104,237,226,236,14,236,216,234,216,233,84,233,50,233,248,232,75,232, +35,231,136,229,253,227,33,227,131,226,221,225,45,226,125,227,36,228,83,227,98,225,143,222,183,219,12,218,82,217,210,216, +152,216,107,216,8,216,250,215,97,216,192,216,67,217,182,217,222,216,69,214,149,210,186,206,72,204,67,204,112,205,88,206, +50,207,104,208,255,209,15,212,200,213,235,213,159,212,187,210,164,208,174,206,178,204,113,202,23,201,133,201,156,202,212,203, +175,205,64,207,210,207,85,208,2,208,41,205,195,201,244,200,164,202,97,205,19,208,183,209,190,211,235,216,212,223,176,228, +72,231,40,233,221,233,220,232,156,230,103,227,124,224,224,223,67,225,123,226,4,227,34,228,185,230,151,234,220,238,108,242, +90,244,140,244,11,244,25,244,49,245,64,247,113,249,121,250,32,251,209,253,49,2,99,5,187,6,182,7,117,9,190,12, +118,16,137,17,72,16,194,16,203,19,217,22,60,25,82,27,53,29,81,32,77,36,141,37,166,35,81,34,195,34,183,35, +24,37,112,38,118,39,66,42,67,47,200,51,107,55,144,59,230,62,120,64,5,66,182,67,13,68,169,67,133,67,60,67, +84,67,77,68,143,68,114,67,246,66,63,68,19,70,39,71,56,71,181,70,202,70,91,72,112,74,77,75,137,75,125,77, +60,81,129,84,108,86,112,87,153,87,235,87,90,89,254,89,109,88,166,86,110,85,82,83,43,81,2,80,98,78,83,77, +196,79,163,83,69,85,170,85,34,86,215,85,233,85,252,86,51,86,23,83,228,80,16,80,223,78,172,77,29,77,35,77, +111,78,107,80,254,80,41,80,49,79,241,77,126,76,117,75,233,73,21,71,25,68,252,65,241,64,232,64,137,64,46,62, +125,58,163,55,154,54,66,54,113,52,149,48,207,44,2,43,247,42,224,43,220,44,27,45,70,45,22,46,20,46,4,44, +212,40,78,37,122,33,198,29,2,26,184,21,226,17,113,15,253,13,2,13,214,11,186,9,126,7,240,5,49,4,118,2, +244,1,151,1,62,0,70,255,217,254,158,253,148,252,202,252,122,252,166,250,73,248,108,245,255,241,228,238,24,236,109,233, +121,231,178,229,149,227,140,226,254,226,72,227,189,226,77,225,200,222,203,220,70,220,184,218,1,215,203,211,106,210,236,209, +248,209,169,209,28,208,81,207,189,208,249,209,85,209,63,208,154,207,20,207,170,206,217,205,91,204,129,203,189,203,122,203, +30,202,208,200,16,200,37,199,148,197,166,195,230,193,198,192,168,192,101,193,40,194,233,194,102,196,246,197,195,198,40,200, +190,202,188,204,231,205,44,207,52,207,203,205,68,205,161,204,123,201,153,198,166,198,222,198,237,197,232,197,77,198,105,198, +143,200,81,204,147,206,225,207,168,209,135,210,213,210,64,212,52,213,123,212,22,212,114,212,117,212,51,213,30,215,119,216, +78,217,201,218,73,220,217,221,147,224,23,227,88,227,126,226,85,226,109,226,39,226,194,225,3,225,49,224,48,225,113,228, +15,231,26,231,196,230,91,232,244,234,52,237,207,238,29,239,142,238,9,239,95,240,54,241,139,242,15,245,64,247,60,249, +11,252,91,254,215,255,220,1,131,2,169,255,31,252,214,249,203,246,156,243,195,242,45,243,67,244,11,248,90,253,158,1, +31,6,67,11,2,14,57,14,43,14,8,13,169,9,186,5,135,2,156,0,84,1,2,4,222,5,196,6,219,8,82,12, +123,15,252,16,46,16,148,13,14,11,224,9,52,9,156,7,103,5,252,3,195,3,104,4,15,6,93,8,111,10,148,12, +43,15,223,16,229,16,52,16,32,15,117,13,218,11,18,10,67,7,160,4,170,3,215,3,190,4,174,6,211,8,123,10, +176,11,98,11,28,9,176,6,181,4,197,1,11,254,166,250,165,247,233,245,179,246,46,249,95,252,111,0,20,4,117,5, +44,5,136,4,100,3,36,1,26,253,94,247,66,242,206,239,246,238,76,238,59,238,72,239,60,241,121,243,137,244,158,243, +227,241,60,240,39,238,178,235,175,233,160,232,228,232,88,234,19,236,187,237,34,239,27,239,86,237,119,235,176,234,158,234, +136,234,130,233,17,231,132,228,142,227,33,228,252,228,9,229,213,227,1,226,167,224,1,224,187,223,207,223,51,224,80,224, +137,223,71,222,229,221,186,222,129,223,151,223,115,223,34,223,64,223,46,225,211,227,139,228,246,227,94,228,84,229,163,229, +99,229,248,227,93,225,213,223,33,224,65,224,174,223,97,223,61,223,117,223,226,224,126,226,13,227,115,227,109,228,121,229, +162,230,167,231,82,231,218,229,213,228,222,228,234,229,175,231,137,232,146,231,234,230,143,232,72,235,65,237,176,238,104,240, +127,242,200,244,191,246,122,247,34,247,82,247,189,248,2,250,15,250,218,249,177,250,114,252,59,254,184,255,148,1,162,4, +70,8,171,10,235,10,202,9,166,8,172,8,196,9,149,10,2,11,108,12,163,14,107,16,66,18,115,20,80,21,173,20, +136,20,255,20,197,20,48,20,205,19,135,19,190,20,147,24,6,29,201,31,65,33,163,34,121,36,245,38,53,41,239,41, +148,41,76,41,10,41,167,40,211,40,233,41,225,43,202,46,220,49,217,51,239,52,90,54,127,56,171,58,203,59,83,59, +90,58,177,58,41,60,185,60,186,59,156,58,109,58,225,58,100,59,159,59,164,59,246,59,167,60,9,61,210,60,148,60, +228,60,9,62,192,63,241,64,223,64,54,64,224,63,94,64,72,66,6,69,45,70,200,68,252,66,188,66,211,67,49,69, +82,69,52,67,126,64,152,63,48,64,24,65,208,66,52,69,192,70,130,71,110,72,206,72,25,72,71,71,38,70,171,67, +212,64,234,62,246,60,91,58,98,56,123,55,230,54,207,54,94,55,160,55,67,55,180,54,204,53,186,52,9,52,199,50, +227,47,130,44,217,41,100,39,20,37,87,35,137,33,215,31,212,31,21,33,156,33,89,33,235,32,173,31,227,29,206,28, +0,28,134,26,246,24,211,23,10,23,34,23,215,23,212,23,100,23,189,23,25,24,5,23,85,20,253,15,98,10,138,5, +190,2,235,0,90,255,166,254,208,254,171,255,190,1,62,4,236,4,63,3,77,0,36,252,181,246,133,241,129,237,235,233, +211,230,16,229,62,228,50,228,27,230,146,233,104,236,220,237,31,238,173,236,74,234,142,232,157,230,71,227,39,224,138,222, +180,221,220,221,64,223,23,224,239,223,123,224,80,225,194,224,121,223,58,222,71,220,32,218,248,216,60,216,123,215,137,215, +77,216,17,217,244,217,232,218,105,219,114,219,192,218,234,216,152,214,64,212,102,209,146,206,231,204,235,203,245,202,237,202, +62,204,203,205,231,206,233,207,243,208,249,209,21,211,11,212,39,212,49,211,5,210,145,209,160,209,119,209,23,209,61,209, +186,210,105,213,187,215,151,216,225,216,147,217,90,218,30,219,193,219,46,219,114,217,30,216,112,215,243,214,45,215,143,215, +217,214,24,214,114,214,197,214,16,215,113,216,121,217,233,216,182,216,189,217,91,218,109,218,135,218,234,217,50,217,10,218, +191,219,222,220,121,221,140,221,23,221,31,221,137,221,41,221,59,220,92,219,90,218,248,217,52,219,51,221,26,223,77,225, +174,227,222,229,42,232,64,234,116,235,124,236,253,237,227,238,53,238,167,236,93,235,178,234,156,234,57,235,73,236,40,237, +14,238,186,239,113,241,16,242,11,242,159,241,246,239,220,237,177,236,147,235,25,234,206,233,138,234,57,235,18,237,181,240, +145,244,54,248,60,251,121,251,39,249,10,247,116,245,225,243,115,243,98,243,73,242,140,242,179,245,234,248,50,251,88,254, +78,1,38,2,239,1,67,1,68,255,235,252,114,251,251,249,46,248,70,247,207,247,115,249,224,251,190,254,205,1,145,4, +58,6,216,6,32,7,216,6,75,5,105,2,192,254,162,251,35,250,114,249,103,248,154,247,37,248,55,250,17,253,12,255, +186,255,24,1,193,3,103,5,222,4,217,2,217,255,159,253,246,253,234,254,114,254,151,254,191,0,120,3,141,6,20,10, +46,12,135,12,75,12,165,10,62,7,237,3,246,0,236,253,162,252,196,253,158,255,241,1,239,4,37,7,158,8,110,10, +241,10,143,8,23,5,118,2,141,0,9,255,206,253,7,253,165,253,207,255,49,2,186,3,66,4,84,4,186,4,217,4, +73,3,215,0,143,255,224,255,2,1,148,1,80,0,216,254,237,255,51,2,151,2,115,1,56,0,39,255,40,255,79,0, +217,0,14,1,167,2,156,4,78,5,86,5,7,5,44,4,121,3,205,2,98,1,237,255,175,254,214,252,108,251,214,251, +8,253,199,253,253,253,127,253,21,253,163,253,114,253,67,251,77,249,39,249,206,249,159,250,72,251,66,251,120,251,117,252, +165,252,190,251,93,251,146,251,144,251,65,251,8,250,242,247,188,246,159,246,58,246,180,245,189,245,17,246,247,246,150,248, +51,250,97,252,235,255,85,3,94,5,87,6,202,5,162,3,107,1,55,255,5,252,203,248,174,246,210,245,88,247,73,251, +9,255,192,1,1,5,101,8,61,10,29,10,193,7,163,3,203,255,218,252,252,249,223,247,98,247,39,248,110,250,44,254, +197,1,185,4,179,7,209,9,34,10,66,9,191,7,87,6,63,6,40,7,126,8,19,11,97,14,202,16,238,18,44,21, +112,21,162,19,245,17,113,16,91,14,213,12,102,12,212,12,6,15,22,19,140,23,165,27,9,31,102,33,105,35,225,36, +69,36,13,34,41,32,237,30,66,30,10,30,202,28,195,26,188,26,188,28,64,30,28,31,15,32,133,32,13,33,98,34, +92,35,208,35,238,36,245,37,199,37,6,37,241,35,186,34,190,34,194,35,55,36,194,36,121,38,116,40,83,42,136,44, +32,46,143,46,246,46,167,47,227,47,137,47,245,46,204,46,113,47,50,48,211,48,37,50,167,51,43,52,223,51,116,50, +90,47,173,44,12,44,104,43,171,41,154,40,186,40,190,41,84,44,117,47,58,49,71,50,77,51,57,51,14,50,65,48, +37,45,177,41,229,39,60,39,143,38,24,38,125,37,244,36,93,38,42,41,126,42,50,42,255,41,97,42,159,43,50,45, +4,45,91,43,21,43,70,44,116,44,12,43,61,41,32,40,102,40,76,41,84,41,163,40,62,40,39,40,179,39,36,38, +133,35,121,33,17,33,32,33,138,32,73,31,94,29,202,27,212,27,80,28,113,27,185,25,47,24,60,23,251,22,168,21, +156,17,142,13,215,12,105,14,27,16,26,17,42,16,29,14,102,14,232,16,41,18,177,17,215,16,65,15,90,13,55,12, +168,10,248,7,250,5,79,5,150,4,94,3,255,1,183,0,51,0,141,0,210,0,103,0,105,255,137,254,158,254,201,254, +47,253,92,250,63,248,216,246,86,245,155,243,35,241,234,237,48,235,86,233,200,231,179,230,74,230,101,230,32,231,67,231, +9,229,198,225,22,224,170,223,31,223,63,222,133,220,255,217,105,216,83,216,117,216,102,216,74,216,206,215,38,215,76,214, +120,212,86,210,89,209,251,208,38,208,9,207,215,205,209,204,157,204,123,204,68,203,241,201,180,201,203,201,23,201,255,198, +59,195,18,191,112,188,120,187,37,187,182,186,182,185,196,184,22,185,68,186,53,187,5,188,167,188,148,188,61,188,171,187, +238,185,139,183,195,181,57,180,167,178,200,177,101,177,64,177,45,178,154,179,66,180,69,181,244,183,23,187,93,189,128,190, +231,189,37,188,107,187,51,188,222,188,203,188,189,188,75,189,176,190,138,192,204,193,41,194,231,194,55,197,242,199,73,200, +132,197,28,194,71,192,81,192,26,194,190,196,131,198,136,199,88,201,145,203,239,204,188,205,97,206,235,206,29,208,178,209, +47,210,18,210,1,211,212,212,52,215,171,218,68,222,161,224,112,226,49,228,18,229,155,229,49,231,115,233,57,235,40,236, +72,236,109,236,8,238,237,240,87,243,128,244,71,245,204,246,119,249,136,252,152,254,71,255,229,255,12,2,179,5,18,9, +206,10,63,11,36,11,221,10,31,11,83,12,194,13,211,14,161,15,27,16,121,16,149,17,156,19,11,22,177,24,14,27, +79,28,167,28,211,28,57,29,126,30,169,32,76,34,240,34,254,35,204,37,109,39,32,41,96,43,142,45,143,47,132,49, +18,50,159,48,57,47,64,47,105,47,191,46,247,45,132,45,116,45,62,46,123,47,232,47,234,47,66,49,157,51,217,52, +118,52,90,51,104,49,129,46,228,43,115,42,224,41,236,41,46,42,4,42,31,42,143,43,114,45,87,46,11,46,97,44, +110,41,150,38,64,36,28,33,178,29,253,27,124,27,213,26,237,26,252,27,19,28,223,26,160,25,224,23,70,21,100,19, +252,17,162,14,211,9,149,6,153,5,184,5,132,6,0,7,204,5,174,3,253,1,223,255,112,252,89,248,221,243,19,239, +132,235,4,234,96,233,194,232,68,232,214,231,41,232,191,233,69,234,73,231,100,226,109,222,154,219,75,217,111,215,198,213, +83,213,241,215,133,220,5,224,38,226,228,227,63,228,139,226,173,223,74,219,243,212,5,207,145,203,176,201,213,200,205,201, +195,203,152,205,64,208,209,211,44,214,132,214,105,213,97,210,217,205,213,201,123,198,80,195,101,194,134,196,222,198,168,200, +91,204,9,210,169,215,103,220,197,222,82,221,184,218,220,217,209,216,153,213,243,209,127,207,44,207,162,210,121,216,148,220, +206,222,227,225,45,229,228,230,213,231,234,231,168,229,146,226,112,225,1,226,70,227,255,229,63,234,3,239,108,244,91,250, +235,254,31,1,24,2,94,2,77,1,250,254,245,251,206,248,47,247,64,248,85,250,220,251,83,254,41,3,65,9,0,15, +15,19,108,20,197,20,211,22,206,25,143,27,207,28,157,30,126,32,38,35,99,39,168,43,23,47,183,50,1,54,161,55, +12,56,153,55,115,54,199,54,160,57,100,60,40,61,234,60,208,60,240,61,56,65,218,68,33,70,166,69,112,69,228,69, +30,71,93,73,152,75,241,76,57,78,75,80,253,82,202,85,6,88,26,89,72,89,103,89,188,89,153,89,145,88,87,87, +103,86,240,84,199,82,133,81,69,82,73,84,7,86,45,86,0,85,176,84,40,86,138,87,148,87,25,87,11,87,40,88, +153,90,136,92,158,92,156,92,24,94,222,95,126,96,125,95,104,92,184,87,2,83,99,79,14,77,74,75,251,72,128,70, +15,69,73,68,162,67,186,67,8,68,130,67,8,67,150,66,76,64,243,60,16,59,50,58,21,57,79,56,127,55,186,53, +52,52,177,51,34,51,124,50,173,49,2,47,152,42,187,38,244,35,140,33,167,31,184,29,225,26,41,24,195,22,86,22, +94,22,27,22,5,20,35,16,175,12,25,11,136,10,91,9,208,6,152,3,59,1,231,0,66,2,47,3,16,2,194,255, +56,253,105,249,54,244,69,239,199,234,232,229,4,225,54,220,157,215,88,213,70,214,248,215,218,216,52,217,184,216,251,215, +24,216,51,215,181,211,229,207,57,205,191,202,95,201,210,201,22,202,8,202,68,203,144,204,224,204,128,205,39,205,142,201, +226,196,52,193,198,188,187,183,167,180,97,179,214,178,170,179,16,181,99,181,236,181,64,184,196,186,85,187,229,185,90,183, +177,180,227,178,6,178,11,177,44,175,94,173,26,173,69,174,241,175,198,177,27,179,73,179,13,179,193,178,134,177,218,175, +178,174,40,173,49,171,61,170,210,169,201,169,116,172,254,176,119,179,106,180,240,182,106,186,210,189,156,193,163,195,90,194, +235,192,140,193,238,194,207,196,247,198,130,199,29,199,105,200,58,203,66,206,228,208,68,209,28,207,206,205,196,206,191,207, +243,207,88,208,117,209,82,212,220,216,87,220,248,221,140,224,231,228,137,232,44,234,189,234,58,235,74,236,64,238,102,240, +140,241,198,241,234,242,36,246,60,250,200,253,157,0,87,2,242,2,0,4,34,6,62,8,13,10,133,11,27,12,33,13, +246,15,188,18,57,20,10,22,6,24,243,24,95,26,5,29,11,31,176,32,248,34,53,36,81,36,222,37,195,40,49,43, +247,44,77,45,186,43,246,42,136,44,255,45,191,45,58,44,251,41,13,41,91,43,20,47,196,49,94,51,248,51,33,52, +202,53,142,56,249,57,25,58,24,58,162,57,41,57,109,57,140,57,141,57,135,58,54,59,39,58,153,56,108,55,74,54, +239,53,36,54,175,52,83,49,61,46,176,44,202,44,229,45,15,46,90,44,45,42,149,40,100,39,136,38,126,37,142,35, +100,33,248,31,234,30,179,29,80,28,123,26,1,24,242,20,12,17,198,12,216,9,19,9,71,9,27,9,60,8,171,6, +144,4,131,2,166,0,230,253,129,249,105,244,245,239,137,236,82,234,109,233,114,233,100,234,140,236,230,238,248,239,86,239, +204,236,202,232,63,229,123,226,26,222,196,215,84,210,194,207,60,208,174,210,216,211,197,209,245,206,93,205,95,203,66,200, +204,196,173,192,227,188,106,187,183,186,218,184,71,184,181,186,193,189,26,192,111,194,125,196,181,198,165,201,243,202,120,201, +29,200,151,199,53,197,24,193,66,189,241,185,94,184,250,185,53,188,248,188,181,190,98,194,217,197,92,201,89,205,162,206, +50,204,246,200,166,197,248,193,94,192,217,192,62,192,37,192,254,196,102,205,236,212,66,218,57,221,255,221,176,222,68,223, +243,220,191,216,94,214,225,213,50,214,123,216,70,220,219,223,30,228,246,232,134,235,56,236,2,238,231,239,246,239,238,239, +213,240,210,241,138,244,77,250,165,0,149,6,181,13,103,20,8,24,82,26,230,28,162,29,234,27,4,26,130,24,230,22, +34,22,140,22,133,23,134,25,142,28,45,31,94,33,111,36,48,40,228,43,147,47,133,50,249,51,16,53,215,54,205,56, +13,59,70,62,132,65,194,67,14,70,107,73,60,77,168,80,182,82,12,82,118,79,23,78,14,79,63,80,99,80,69,80, +26,80,178,79,133,80,181,83,152,87,7,90,255,90,63,91,12,91,12,91,212,91,178,92,219,92,154,92,92,92,108,92, +248,93,215,97,143,102,140,105,190,105,4,104,12,102,238,100,248,99,130,97,129,93,201,89,145,87,72,86,218,84,63,83, +250,82,41,85,240,87,107,88,32,87,182,86,150,87,183,88,225,89,253,89,227,87,186,85,60,86,61,88,154,89,67,90, +176,89,228,86,33,83,165,79,121,75,119,70,247,65,11,62,100,58,230,55,185,54,242,53,137,53,152,53,110,53,211,52, +15,52,33,51,74,50,133,49,244,47,159,45,173,43,36,42,110,40,11,39,225,37,122,35,183,31,90,28,54,26,49,24, +42,21,109,17,18,14,148,11,178,9,15,8,11,6,89,3,206,0,161,254,97,251,240,246,68,243,248,240,31,239,221,237, +111,237,53,237,120,237,104,238,88,238,160,236,31,235,195,234,119,234,105,233,97,231,100,228,32,225,231,221,123,218,75,215, +127,212,0,209,165,204,223,200,120,198,96,197,100,197,85,197,32,196,231,194,85,195,250,196,61,198,35,198,177,196,209,194, +134,193,198,192,185,191,1,190,57,188,13,187,34,186,242,184,53,184,114,184,130,184,105,183,71,181,62,178,92,175,179,174, +229,175,92,176,153,175,254,174,241,174,154,175,29,177,41,178,234,177,108,177,39,177,191,176,232,176,15,178,86,179,82,180, +239,180,13,181,199,181,243,183,24,186,11,187,46,187,31,186,211,183,65,182,25,182,246,181,195,181,251,181,167,181,59,181, +249,182,193,186,31,190,227,191,106,192,146,192,169,193,45,196,9,199,12,201,28,202,13,203,175,204,168,206,71,208,5,210, +53,212,208,213,97,214,166,214,10,215,225,215,170,217,127,219,219,219,253,218,141,218,212,219,239,222,134,226,41,229,232,230, +94,232,28,234,43,237,62,241,43,244,140,245,246,246,104,248,108,249,1,251,178,252,207,252,98,252,96,253,78,255,163,1, +179,4,63,7,60,8,233,8,4,10,14,11,57,12,92,13,150,13,138,13,76,14,130,15,45,17,208,19,103,22,7,24, +127,25,23,27,66,28,129,29,33,31,50,32,148,32,66,33,110,34,170,35,221,36,3,38,3,39,204,39,75,40,154,40, +175,40,5,40,101,38,44,36,230,33,163,32,76,33,34,35,169,36,143,37,65,38,91,39,96,41,119,43,86,44,164,44, +83,45,144,45,219,44,177,43,231,41,42,40,15,40,80,40,113,38,170,35,93,34,29,34,43,34,127,34,213,33,232,31, +203,30,3,31,18,31,169,30,254,29,120,28,102,26,184,24,118,23,167,22,47,22,5,21,45,19,55,18,69,18,40,18, +171,17,180,16,150,14,181,11,43,9,254,6,227,4,82,3,119,2,126,1,176,255,154,253,92,252,202,251,179,250,209,248, +116,246,139,243,196,240,25,239,235,237,121,236,117,235,211,234,180,233,250,232,193,233,240,234,98,235,14,235,65,233,172,229, +190,225,159,222,69,220,128,218,164,216,64,214,148,212,133,212,237,212,222,212,58,212,112,210,254,207,164,206,60,206,57,205, +171,203,20,202,91,200,239,199,64,202,21,205,29,205,153,202,21,200,7,199,68,199,94,199,202,197,27,195,121,193,56,193, +184,192,213,191,57,192,236,193,234,194,128,194,79,194,203,195,166,198,54,201,165,201,70,200,48,200,75,203,22,207,168,207, +143,204,72,201,80,201,78,204,209,206,28,207,244,206,42,208,96,210,97,212,85,213,119,213,65,214,51,216,120,217,182,216, +241,214,175,213,187,213,76,215,113,217,10,219,135,220,203,222,207,225,135,229,143,233,112,236,224,237,133,239,247,241,76,244, +103,246,136,248,117,250,205,252,70,0,159,3,122,5,119,6,117,7,84,8,241,8,16,9,185,8,187,9,193,13,29,19, +0,23,117,25,95,28,129,32,29,37,175,40,95,42,107,43,84,45,68,47,6,48,103,48,55,49,0,50,243,50,151,52, +243,53,39,54,27,54,214,54,145,56,123,59,252,62,153,65,9,67,75,68,157,69,115,70,122,70,224,69,214,69,152,71, +234,73,158,74,134,74,248,75,16,79,237,82,64,87,114,90,233,90,66,90,171,90,81,91,31,91,239,90,233,90,60,90, +120,89,78,89,2,89,156,88,75,89,210,90,166,91,250,90,221,88,73,86,64,85,84,86,101,87,245,86,86,86,46,87, +90,89,142,91,113,92,201,91,196,90,222,89,226,87,135,84,124,81,177,79,124,78,176,77,174,77,207,77,70,77,150,76, +140,76,194,76,40,76,58,74,120,71,41,69,134,68,113,69,45,70,46,69,62,67,123,66,236,66,84,66,218,63,20,61, +27,59,126,57,225,55,13,54,103,51,69,48,32,46,32,45,154,43,175,40,87,37,174,34,218,32,135,31,53,30,70,28, +177,25,69,23,99,21,46,19,250,15,117,12,119,9,55,7,239,5,80,5,14,4,20,2,17,1,56,1,214,0,150,255, +63,254,84,252,158,249,79,247,126,245,13,243,94,240,121,238,55,237,118,236,12,236,169,234,37,232,156,230,151,230,17,230, +13,228,89,225,209,222,95,221,12,221,19,220,232,217,169,216,9,217,230,216,217,214,96,211,100,207,30,204,249,201,136,199, +66,196,225,193,51,193,79,193,3,194,46,195,173,195,124,195,141,195,45,195,98,193,60,191,192,189,97,188,12,187,141,186, +242,186,196,187,171,188,37,189,23,189,29,189,67,189,237,188,62,188,210,187,159,187,97,187,48,187,32,187,60,187,194,187, +165,188,97,189,195,189,36,190,160,190,235,190,247,190,231,190,133,190,187,189,11,189,158,188,251,187,89,187,118,187,47,188, +41,189,199,190,235,192,217,194,197,196,210,198,196,199,88,199,32,199,136,199,153,199,122,199,188,199,54,200,112,201,11,204, +252,206,129,209,113,212,172,215,4,218,145,219,173,220,206,220,104,220,110,220,70,220,203,219,147,220,216,222,12,225,181,226, +15,228,207,228,136,229,14,231,121,232,223,232,3,233,50,233,240,232,22,233,235,234,82,238,137,242,129,246,166,248,214,248, +224,248,191,249,194,250,97,251,142,251,81,251,86,251,27,252,13,253,23,254,106,0,62,4,233,7,238,9,77,10,224,9, +194,9,169,10,36,12,21,13,105,13,64,14,25,16,34,18,210,19,113,21,232,22,225,23,164,24,31,25,118,24,183,22, +250,20,184,19,10,19,89,19,102,20,145,21,39,23,86,25,58,27,109,28,80,29,222,29,86,30,251,30,110,30,166,27, +89,24,60,22,243,20,112,20,9,21,177,21,69,22,94,24,123,27,121,29,178,30,127,32,40,34,235,34,216,34,250,32, +24,29,107,25,78,23,222,21,154,20,162,19,214,18,226,18,77,20,193,21,56,22,97,22,106,22,225,21,29,21,205,19, +249,16,160,13,134,11,62,10,245,8,93,8,145,8,148,8,74,8,222,7,150,6,93,4,86,2,246,0,135,255,133,253, +25,251,173,248,218,246,88,246,77,247,204,248,169,249,187,249,107,249,164,248,53,247,140,245,36,244,241,242,133,241,83,239, +53,236,26,233,129,231,31,232,33,234,159,235,127,235,176,234,133,234,192,234,160,234,24,234,195,232,28,230,237,226,85,224, +49,222,62,220,217,218,185,217,84,216,101,215,161,215,20,216,214,215,157,215,46,216,27,217,189,217,170,217,156,216,50,215, +157,214,196,214,120,214,169,213,120,213,89,214,135,215,244,215,82,215,127,214,91,214,130,214,85,214,254,213,123,213,168,212, +97,212,121,213,139,215,249,217,52,220,43,221,204,220,156,220,60,221,100,221,183,219,51,216,126,212,187,210,250,210,137,211, +249,211,39,213,122,215,46,219,236,223,6,228,189,230,223,232,217,233,211,232,200,231,98,232,249,232,50,232,234,230,225,229, +237,229,83,232,41,236,37,239,56,241,222,243,85,247,144,250,96,252,226,252,235,253,96,0,245,2,228,4,137,6,145,7, +23,8,58,9,208,10,222,11,157,12,6,13,159,12,221,12,100,15,3,19,210,21,176,23,88,25,115,27,234,29,73,31, +222,30,78,30,82,31,227,33,157,36,104,37,245,35,65,35,66,37,222,39,29,41,214,41,244,42,152,44,58,47,151,50, +160,53,24,56,55,58,232,59,80,61,141,62,89,63,137,63,250,62,242,61,178,61,114,62,132,62,142,61,72,61,97,62, +88,64,210,66,163,68,53,69,139,70,171,73,8,76,245,75,34,75,75,75,135,76,5,78,85,78,238,76,37,75,249,73, +254,72,206,71,102,70,18,69,175,68,70,69,161,69,139,69,57,70,48,72,215,74,1,77,132,77,179,76,3,76,182,75, +64,75,149,74,74,73,52,71,234,69,101,70,63,71,114,71,71,71,178,70,19,70,40,70,229,69,253,67,139,65,254,63, +24,63,155,62,150,62,95,62,125,61,7,60,215,57,223,54,117,51,36,48,222,45,239,44,230,43,225,41,3,40,40,39, +36,39,248,39,197,40,208,39,75,37,7,35,176,33,184,32,60,31,101,28,213,24,14,22,185,19,150,16,51,13,230,10, +46,10,192,10,9,11,129,9,128,7,107,7,220,8,0,10,47,10,84,9,228,7,41,7,35,7,43,6,177,3,157,0, +110,253,11,250,182,246,74,244,66,243,128,242,153,240,69,238,13,237,162,236,244,235,154,234,67,232,130,229,228,227,60,227, +246,225,70,224,69,223,168,222,239,221,34,221,232,219,99,218,138,217,57,217,100,216,11,215,255,213,179,213,229,213,203,213, +46,213,221,212,251,212,165,212,144,211,232,209,166,207,125,205,57,204,118,203,224,202,151,202,236,201,185,200,88,200,29,201, +243,201,169,202,47,203,216,202,132,202,183,203,125,205,246,205,23,205,166,203,41,202,240,200,89,199,201,196,103,194,138,193, +197,193,17,194,16,194,28,194,20,195,23,197,237,198,237,199,210,200,51,202,22,204,248,205,153,206,189,205,76,205,139,206, +116,208,198,209,80,210,104,210,190,210,157,211,118,212,249,212,61,213,228,212,12,212,182,211,73,212,130,213,77,215,40,217, +94,218,31,219,156,219,140,219,74,219,89,219,101,219,88,219,136,219,228,219,201,220,1,223,255,225,148,228,117,230,131,231, +213,231,87,232,13,233,246,232,104,232,12,232,38,231,247,229,57,230,224,231,157,233,94,235,7,237,212,237,65,238,46,239, +86,240,138,241,210,242,98,243,56,243,180,243,78,245,75,247,51,249,172,250,155,251,153,252,164,253,6,254,23,254,117,254, +149,254,50,254,211,253,100,253,222,252,245,252,106,253,53,253,193,252,59,253,149,254,21,0,99,1,126,2,201,3,172,5, +185,7,38,9,190,9,168,9,5,9,26,8,69,7,154,6,219,5,11,5,210,4,170,5,36,7,220,8,217,10,127,12, +46,13,94,13,95,13,218,12,51,12,186,11,150,10,20,9,215,8,161,9,45,10,246,10,47,12,143,12,98,12,241,12, +70,13,55,12,209,10,214,9,6,9,3,9,228,9,66,10,245,9,19,10,109,10,105,10,51,10,107,9,186,7,26,6, +248,4,109,3,162,1,195,0,8,1,11,2,133,3,199,4,100,5,212,5,116,6,36,7,233,7,129,8,53,8,246,6, +168,5,4,5,203,4,65,4,88,3,199,2,139,2,210,1,168,0,225,255,150,255,111,255,96,255,58,255,247,254,31,255, +170,255,199,255,71,255,177,254,70,254,248,253,153,253,8,253,132,252,19,252,21,251,192,249,92,249,48,250,44,251,114,251, +190,250,157,249,101,249,52,250,137,250,24,250,6,250,67,250,227,249,0,249,16,248,56,247,218,246,237,246,197,246,58,246, +151,245,241,244,191,244,104,245,82,246,253,246,185,247,108,248,212,248,95,249,232,249,152,249,178,248,19,248,167,247,40,247, +149,246,85,245,18,243,183,240,82,239,70,239,102,240,156,241,196,241,82,241,114,241,132,242,82,244,45,246,15,247,254,246, +183,246,207,245,246,243,171,242,230,242,108,243,84,243,64,243,171,243,149,244,252,245,32,247,35,247,173,246,228,246,85,247, +238,246,229,245,16,245,158,244,151,244,73,245,121,246,146,247,168,248,189,249,229,249,229,248,3,248,231,247,222,247,176,247, +195,247,61,248,134,249,212,251,9,254,78,255,88,0,136,1,99,2,210,2,48,2,96,255,158,251,108,249,232,248,40,249, +143,250,165,252,230,253,238,254,79,1,165,4,251,7,189,10,101,11,170,9,41,8,54,8,10,8,13,7,193,6,100,7, +85,8,215,9,153,11,209,12,73,14,208,16,244,18,66,19,82,18,6,17,174,15,218,14,175,14,135,14,72,14,78,14, +156,14,198,15,180,18,92,22,183,24,210,25,229,26,230,27,116,28,179,28,27,28,105,26,20,25,34,25,210,25,230,26, +217,28,243,30,154,32,171,34,7,37,65,38,106,38,75,38,31,37,169,34,141,32,123,31,176,30,105,30,73,31,213,32, +227,34,227,37,252,40,198,42,78,43,76,43,255,42,161,42,43,42,52,41,16,40,116,39,53,39,73,39,128,40,174,42, +87,44,211,44,112,44,41,43,67,41,161,39,102,38,50,37,96,36,39,36,246,35,227,35,175,36,36,38,136,39,205,40, +182,41,130,41,86,40,32,39,53,38,124,37,33,37,7,37,218,36,228,36,165,37,223,38,215,39,32,40,209,39,67,39, +135,38,100,37,3,36,186,34,47,33,14,31,55,29,158,28,213,28,254,28,248,28,234,28,249,28,107,29,8,30,12,30, +87,29,124,28,140,27,76,26,5,25,4,24,42,23,101,22,186,21,5,21,129,20,167,20,37,21,24,21,65,20,3,19, +157,17,44,16,206,14,139,13,117,12,184,11,100,11,107,11,186,11,31,12,112,12,189,12,237,12,155,12,173,11,135,10, +101,9,19,8,159,6,171,5,137,5,168,5,132,5,86,5,67,5,224,4,251,3,204,2,78,1,130,255,170,253,177,251, +141,249,250,247,118,247,115,247,150,247,45,248,78,249,206,250,77,252,172,252,70,251,38,249,82,247,143,245,244,243,38,243, +221,242,132,242,72,242,33,242,207,241,204,241,70,242,101,242,222,241,5,241,121,239,47,237,75,235,65,234,66,233,39,232, +157,231,190,231,74,232,65,233,88,234,249,234,30,235,30,235,221,234,234,233,94,232,192,230,62,229,179,227,99,226,172,225, +126,225,192,225,90,226,175,226,97,226,201,225,219,224,93,223,5,222,40,221,226,219,59,218,99,217,100,217,181,217,159,218, +160,219,137,219,233,218,209,218,161,218,215,217,242,216,186,215,43,214,121,213,172,213,131,213,69,213,209,213,138,214,223,214, +237,214,52,214,206,212,218,211,50,211,238,209,158,208,218,207,48,207,219,206,44,207,64,207,63,207,145,208,207,210,139,212, +215,213,183,214,32,214,81,212,159,210,62,209,6,208,144,207,9,208,215,208,156,209,107,210,110,211,144,212,69,213,81,213, +36,213,250,212,27,213,60,214,239,215,219,216,36,217,143,217,112,217,163,216,170,216,198,217,188,218,122,219,90,220,221,220, +56,221,38,222,250,222,233,222,168,222,247,222,189,223,178,224,94,225,99,225,254,224,67,224,52,223,177,222,40,223,180,223, +62,224,146,225,64,227,207,228,56,231,140,234,109,237,168,239,152,241,97,242,235,241,180,241,32,242,82,242,110,242,13,243, +225,243,163,244,176,245,48,247,211,248,33,250,191,250,217,250,233,250,66,251,251,251,188,252,249,252,53,253,135,254,154,0, +73,2,161,3,40,5,152,6,191,7,200,8,115,9,170,9,207,9,211,9,133,9,99,9,206,9,126,10,70,11,43,12, +75,13,34,15,191,17,52,20,240,21,26,23,79,23,82,22,64,21,248,20,4,21,75,21,111,22,85,24,131,26,229,28, +222,30,153,31,161,31,21,32,223,32,117,33,13,34,211,34,46,35,153,34,74,33,232,31,10,31,225,30,41,31,129,31, +228,31,147,32,122,33,42,34,107,34,58,34,123,33,86,32,100,31,45,31,226,31,67,33,119,34,14,35,175,35,142,36, +235,36,244,36,121,37,216,37,11,37,91,35,50,33,231,30,185,29,215,29,132,29,100,28,27,28,6,29,63,30,150,31, +172,32,175,32,214,31,184,30,61,29,125,27,183,25,172,23,109,21,167,19,217,18,63,19,107,20,93,21,239,21,83,22, +178,21,231,19,33,18,98,16,30,14,36,12,95,10,186,7,67,5,13,4,191,2,105,1,112,1,67,1,112,255,250,253, +139,253,144,252,81,251,175,249,217,245,24,241,192,237,112,234,168,230,240,228,57,229,1,230,231,231,63,234,90,236,148,241, +92,250,154,0,38,1,122,253,190,245,115,236,224,230,177,227,119,222,207,217,2,217,217,217,80,220,73,226,87,232,236,235, +25,240,73,244,93,243,110,237,89,230,51,223,235,216,81,213,36,211,245,208,76,209,36,214,85,221,54,228,242,233,18,238, +58,240,53,240,36,237,213,230,180,223,205,218,218,216,33,217,242,218,85,221,71,224,87,229,155,235,185,238,248,236,196,232, +11,228,98,224,222,223,133,224,125,222,40,220,133,222,255,228,222,236,27,245,23,251,50,253,183,254,148,1,3,3,196,1, +14,255,254,250,92,246,195,242,159,239,177,236,223,235,87,237,199,239,45,243,199,246,158,249,165,253,116,3,17,7,123,6, +44,4,210,1,38,0,203,0,217,2,91,3,46,3,225,5,186,11,240,17,181,22,174,25,140,26,168,25,211,24,237,24, +142,24,160,23,92,24,23,26,253,25,100,25,109,27,99,31,245,35,188,40,57,42,46,38,72,33,249,31,0,33,213,34, +238,36,150,37,242,37,150,41,210,47,181,53,28,59,197,63,88,66,76,67,50,66,241,60,74,53,83,47,123,43,228,40, +41,40,181,40,237,41,102,45,205,50,205,54,43,56,175,56,223,57,240,59,188,61,116,61,60,59,149,57,39,59,171,64, +95,71,248,74,192,74,100,73,100,72,208,71,94,71,54,69,111,64,216,59,216,57,131,57,168,57,189,57,31,57,146,56, +52,57,65,58,25,59,235,59,233,59,20,59,117,58,225,56,139,53,27,51,149,50,10,50,241,49,7,51,234,50,211,49, +254,50,106,53,49,54,16,54,40,53,152,49,231,44,204,41,102,39,204,36,19,35,230,33,87,32,70,31,76,31,183,31, +240,31,116,31,0,30,54,28,197,26,43,26,143,26,240,26,133,26,0,26,124,25,76,24,219,22,22,21,22,18,237,14, +175,12,183,9,74,5,148,0,53,251,134,245,85,242,145,241,108,240,243,238,5,238,210,236,151,236,231,238,60,241,121,241, +227,240,149,239,229,236,97,234,157,232,81,230,17,228,201,226,149,225,96,224,178,223,165,222,239,220,44,219,202,216,254,213, +128,212,47,212,170,211,217,210,70,209,58,206,61,203,2,202,231,201,203,201,243,200,193,198,20,196,158,194,167,194,104,195, +198,195,201,194,26,193,247,191,236,190,161,189,244,188,142,188,222,187,189,187,183,187,118,186,38,185,133,184,163,182,103,179, +139,176,167,173,5,171,48,171,183,173,213,175,170,177,13,180,20,182,53,184,86,187,142,189,91,189,50,188,65,187,74,186, +120,185,0,185,166,184,172,184,96,185,62,186,147,186,111,186,163,186,98,187,160,187,228,186,231,185,240,184,93,184,54,185, +203,186,121,187,50,188,91,190,211,192,249,194,114,197,49,199,103,199,113,199,128,199,194,198,115,198,136,199,78,201,125,204, +128,209,182,213,188,215,89,217,42,219,138,220,205,221,86,222,2,221,69,219,255,218,201,219,81,221,20,224,132,227,33,231, +66,235,48,239,207,241,155,243,60,245,37,246,77,246,223,246,79,248,202,249,24,251,236,252,10,255,176,0,129,2,241,4, +154,6,24,7,194,7,86,8,3,8,21,8,250,8,86,9,248,9,80,12,18,15,234,17,98,22,40,27,69,30,23,33, +244,35,244,36,17,37,2,38,79,38,220,37,234,38,181,40,121,41,156,42,195,44,127,46,139,48,250,51,204,54,184,55, +251,55,217,55,235,54,103,54,227,54,248,54,20,54,88,53,150,53,191,54,184,56,36,59,18,61,42,62,87,63,250,64, +219,65,83,65,32,64,139,62,170,60,106,59,253,58,230,58,181,59,96,61,94,62,158,62,9,63,212,62,196,61,19,61, +212,59,148,56,29,53,5,51,127,49,63,49,96,51,159,53,225,53,3,53,182,51,82,50,36,50,124,50,228,48,111,45, +194,41,89,38,232,35,246,34,18,34,72,32,158,30,98,29,8,28,192,26,26,25,210,21,61,17,5,13,32,10,147,8, +160,7,42,6,13,4,86,2,215,1,38,2,226,1,110,0,137,254,56,252,161,248,137,244,61,241,28,238,213,234,153,232, +64,231,35,230,66,230,40,231,55,230,81,227,99,224,106,221,227,217,72,214,45,210,119,205,179,201,57,199,47,197,101,196, +98,197,111,198,142,198,80,198,167,197,179,196,87,196,22,196,193,194,234,192,234,191,9,192,207,192,163,193,245,193,116,193, +73,192,74,191,7,191,159,190,54,189,72,187,25,185,169,182,68,181,85,181,55,181,5,181,236,182,9,187,158,191,59,195, +56,196,140,194,96,193,64,194,175,194,15,193,127,190,98,188,90,188,61,191,217,194,12,197,172,198,141,200,120,202,12,205, +191,207,40,208,39,206,20,204,37,203,158,203,142,205,122,207,32,208,229,208,111,211,98,215,180,219,182,223,253,226,149,229, +145,231,227,232,17,234,210,235,22,238,66,240,207,241,231,242,188,244,47,248,135,252,26,0,125,1,189,0,14,0,18,1, +86,2,55,2,101,1,237,0,197,1,79,5,177,10,99,15,162,19,242,24,113,30,47,35,81,39,150,41,185,41,127,42, +184,44,240,45,153,45,41,45,52,45,183,46,84,50,177,53,186,54,241,54,43,56,133,58,168,61,100,64,79,65,126,65, +28,67,17,70,220,72,159,74,84,75,214,75,39,77,239,78,15,80,87,80,176,80,15,82,21,84,63,85,62,85,136,85, +3,87,66,89,79,91,213,91,142,90,71,89,227,88,205,87,26,85,213,81,50,79,74,78,139,79,108,81,146,82,190,83, +144,85,120,87,56,89,129,90,191,90,130,90,132,90,88,90,220,89,86,89,93,88,71,87,41,87,70,87,231,85,225,82, +8,79,131,75,127,73,41,72,148,69,116,66,224,64,192,64,228,64,189,64,224,63,219,62,3,63,242,63,42,64,147,63, +125,62,198,60,239,58,52,57,205,54,180,51,136,48,49,45,243,41,153,39,228,37,99,36,115,35,205,34,203,33,168,32, +93,31,114,29,118,27,224,25,177,23,86,20,135,16,40,13,49,11,11,11,85,11,136,10,244,8,165,7,50,7,175,7, +38,8,53,7,188,4,155,1,114,254,120,251,80,248,120,244,102,240,34,237,67,235,175,234,17,234,195,231,81,228,115,225, +7,223,94,220,6,218,252,215,241,213,243,212,30,213,31,213,130,213,100,215,33,217,52,217,88,216,163,214,185,211,231,208, +175,206,226,203,192,200,123,198,232,196,213,195,90,195,83,194,68,192,189,190,166,190,67,191,226,191,200,191,100,190,213,188, +140,188,235,188,102,188,210,186,79,185,190,184,182,184,20,184,127,182,187,180,227,179,133,180,152,181,61,181,130,179,64,178, +48,178,180,178,32,179,129,178,143,176,237,174,220,174,119,175,165,175,24,175,230,173,47,173,27,174,198,175,187,176,235,176, +223,176,125,177,183,179,132,182,231,183,44,184,155,184,52,185,29,186,177,187,210,188,193,188,150,188,212,188,235,188,242,188, +249,188,140,188,33,188,123,188,99,189,132,190,202,191,237,192,24,194,175,195,87,197,233,198,249,200,126,203,4,206,176,208, +140,211,58,214,153,216,96,218,7,219,180,218,241,217,100,217,10,218,27,220,188,222,187,225,43,229,8,232,52,234,16,237, +119,240,225,242,44,244,163,244,230,243,238,242,92,243,216,244,128,246,174,248,108,251,50,254,69,1,234,4,105,8,47,11, +52,13,95,14,189,14,226,14,129,15,190,16,37,18,123,19,20,21,229,22,144,24,83,26,97,28,50,30,119,31,30,32, +231,31,121,31,216,31,149,32,44,33,86,34,16,36,231,37,229,40,42,45,134,48,100,50,32,52,94,53,108,53,140,53, +18,54,197,53,239,52,88,52,124,51,168,50,10,51,46,52,33,53,16,54,228,54,85,55,249,55,216,56,15,57,177,56, +73,56,135,55,110,54,175,53,69,53,228,52,234,52,92,53,162,53,206,53,108,54,70,55,162,55,36,55,166,53,21,51, +54,48,85,46,123,45,159,44,173,43,53,43,211,42,85,42,77,42,43,42,207,40,183,38,138,36,239,33,129,31,57,30, +86,29,74,28,191,27,37,27,163,25,121,24,97,24,34,24,89,23,227,21,90,18,110,13,0,10,67,8,96,6,113,4, +187,2,103,0,116,254,127,254,16,255,240,253,85,251,7,248,56,244,195,240,88,238,138,236,44,235,145,234,94,234,67,234, +228,234,105,236,97,237,102,236,168,233,42,230,154,226,58,223,181,219,93,215,211,210,7,208,123,207,206,207,62,208,218,208, +53,209,56,209,67,209,198,208,53,207,26,205,133,202,39,199,50,196,194,194,36,194,220,193,73,194,211,194,228,194,58,195, +239,195,220,195,118,194,224,191,105,188,83,185,248,183,38,184,196,184,213,184,233,183,30,183,86,184,82,187,197,189,63,190, +39,189,186,187,1,187,198,186,216,185,17,184,242,182,254,183,47,187,2,191,3,194,50,196,76,198,61,200,63,201,216,200, +80,199,170,197,138,196,85,195,185,193,213,192,140,193,155,195,133,198,136,201,248,203,153,206,51,210,111,213,212,214,202,214, +229,213,137,212,54,212,227,213,119,216,242,218,160,221,187,224,70,228,51,232,95,235,134,236,79,236,55,236,105,236,77,236, +224,235,169,235,136,236,109,239,15,244,173,248,92,252,55,0,8,5,139,9,70,12,31,13,165,12,232,11,96,12,12,14, +187,15,177,17,223,20,131,24,202,27,80,31,11,35,36,38,185,40,142,42,176,42,10,42,64,42,161,42,109,42,27,43, +74,45,190,47,76,50,160,53,52,57,64,60,108,62,84,63,148,63,172,64,147,66,253,67,184,68,117,69,184,70,54,73, +236,76,50,80,214,81,148,82,42,83,92,83,83,83,135,83,155,83,38,83,155,82,88,82,65,82,154,82,208,83,150,85, +130,87,133,89,37,91,214,91,40,92,196,92,65,93,47,93,146,92,51,91,123,89,213,88,125,89,82,90,250,90,136,91, +122,91,32,91,72,91,52,91,243,89,8,88,154,85,111,82,246,79,71,79,19,79,123,78,93,78,159,78,145,78,242,78, +215,79,140,79,181,77,195,75,41,74,112,72,162,70,144,68,234,65,166,63,252,62,152,63,71,64,80,64,128,63,46,62, +239,60,128,59,234,56,12,53,204,48,5,45,75,42,232,40,40,40,3,39,223,37,197,37,39,38,169,37,52,36,80,34, +255,31,144,29,147,27,177,25,93,23,12,21,69,19,233,17,208,16,190,15,19,14,173,11,27,9,154,6,227,3,235,0, +229,253,247,250,71,248,22,246,162,244,199,243,241,242,251,241,120,241,113,241,13,241,193,239,179,237,45,235,205,232,66,231, +49,230,157,228,118,226,144,224,108,223,235,222,196,222,191,222,120,222,85,221,55,219,209,216,151,214,5,212,217,208,202,205, +101,203,136,201,24,200,50,199,221,198,53,199,42,200,6,201,247,200,2,200,218,198,4,198,55,197,161,195,8,193,71,190, +116,188,17,188,6,189,139,190,140,191,189,191,168,191,141,191,75,191,246,190,62,190,82,188,103,185,241,182,192,181,152,181, +119,182,94,184,143,186,137,188,98,190,156,191,192,191,170,191,241,191,143,191,2,190,118,188,225,187,68,188,121,189,188,190, +253,190,174,190,60,191,189,192,40,194,185,194,6,194,114,192,120,191,212,191,168,192,89,193,12,194,145,194,31,195,197,196, +108,199,189,201,132,203,83,205,183,206,109,207,124,208,86,210,55,212,223,213,116,215,133,216,24,217,42,218,248,219,146,221, +67,222,35,222,253,221,24,223,201,225,145,228,237,229,1,230,233,229,155,230,94,232,85,234,61,235,15,235,226,234,155,235, +119,237,254,239,46,242,179,243,63,245,8,247,119,248,120,249,96,250,37,251,232,251,18,253,88,254,58,255,32,0,166,1, +175,3,233,5,17,8,183,9,185,10,165,11,4,13,10,15,169,17,60,20,231,21,217,22,238,23,73,25,127,26,147,27, +138,28,48,29,230,29,59,31,185,32,184,33,140,34,162,35,193,36,203,37,172,38,211,38,38,38,132,37,106,37,136,37, +198,37,31,38,50,38,39,38,217,38,159,40,253,42,50,45,135,46,197,46,179,46,51,47,31,48,147,48,250,47,181,46, +212,45,48,46,189,47,148,49,130,50,31,50,82,49,28,49,103,49,154,49,63,49,231,47,209,45,79,44,41,44,188,44, +50,45,36,45,99,44,78,43,114,42,138,41,87,40,154,39,149,39,42,39,146,37,96,35,152,33,222,32,244,32,116,32, +95,30,188,27,71,26,60,26,155,26,141,26,196,25,71,24,135,22,7,21,236,19,26,19,60,18,154,16,4,14,163,11, +168,10,177,10,190,10,109,10,143,9,41,8,252,6,127,6,21,6,56,5,234,3,242,1,80,255,203,252,13,251,17,250, +84,249,229,247,109,245,1,243,131,241,146,240,233,239,175,239,78,239,10,238,206,235,203,232,9,230,64,229,53,230,146,230, +124,229,34,228,47,227,152,226,112,226,48,226,51,225,221,223,178,222,195,221,154,221,104,222,173,222,4,221,53,218,13,216, +160,215,214,216,83,218,127,218,94,217,69,216,221,215,255,215,146,216,234,216,157,215,135,212,95,209,96,207,105,206,89,206, +226,206,246,206,129,206,205,206,69,208,93,210,236,212,243,214,105,214,107,211,118,208,3,207,188,206,190,206,168,205,252,202, +188,200,28,201,195,203,224,206,1,209,185,209,18,210,69,211,193,212,73,213,174,212,50,211,121,209,23,209,187,210,10,213, +192,214,255,215,76,217,14,219,83,221,60,223,18,224,96,224,202,224,32,225,32,225,10,225,89,225,87,226,151,227,137,228, +157,229,143,231,236,233,190,235,214,236,138,237,31,238,199,238,130,239,28,240,190,240,6,242,70,244,247,246,147,249,98,252, +126,255,10,2,185,3,110,5,133,7,154,9,226,11,109,14,102,16,156,17,158,18,69,19,132,19,75,20,213,21,55,23, +39,24,21,25,56,26,186,27,136,29,66,31,68,33,63,36,169,39,82,42,236,43,229,44,211,45,212,46,40,47,140,46, +98,46,185,47,168,49,241,50,153,51,108,52,24,54,131,56,237,58,233,60,42,62,35,62,92,61,99,61,89,62,22,63, +98,63,149,63,223,63,3,65,64,67,34,69,234,69,233,70,211,72,160,74,129,75,148,75,81,75,108,75,67,76,84,77, +7,78,95,78,189,78,88,79,227,79,218,79,38,79,11,78,206,76,230,75,123,75,239,74,238,73,10,73,165,72,152,72, +185,72,199,72,169,72,199,72,62,73,169,73,241,73,21,74,210,73,65,73,93,72,132,70,26,68,166,66,104,66,49,66, +74,65,179,63,244,61,30,61,76,61,49,61,13,60,50,58,28,56,127,54,170,53,202,52,107,51,32,50,240,48,195,47, +70,47,7,47,167,45,170,43,77,42,210,40,107,38,252,35,41,34,182,32,138,31,235,29,231,26,113,23,117,21,7,21, +162,20,21,19,87,16,99,13,71,11,231,9,70,8,252,5,163,3,208,1,59,0,90,254,82,252,142,250,66,249,198,248, +243,248,135,248,227,246,3,245,207,243,100,243,147,243,62,243,77,241,184,238,192,236,173,234,187,231,84,228,155,224,27,221, +60,219,192,218,24,218,116,217,187,217,74,218,64,218,97,217,114,215,8,213,34,211,88,209,17,207,244,204,77,203,250,201, +186,201,124,202,167,202,202,201,209,200,245,199,71,199,249,198,30,198,253,195,196,193,145,192,48,192,92,192,191,192,149,192, +244,191,193,191,19,192,83,192,87,192,19,192,81,191,79,190,180,189,140,189,21,189,42,188,205,187,162,188,32,190,171,191, +191,192,179,192,245,191,161,191,115,191,188,190,23,190,205,189,79,189,8,189,72,189,4,189,47,188,229,187,247,187,7,188, +234,188,101,190,115,191,164,192,121,194,238,195,3,197,166,198,74,200,11,201,30,201,166,200,40,200,26,201,152,203,5,206, +97,207,204,207,11,208,131,209,101,212,229,214,204,215,184,215,180,215,138,216,65,218,196,219,165,220,213,221,149,223,61,225, +184,226,218,227,49,228,111,228,121,229,188,230,107,231,200,231,140,232,91,234,21,237,133,239,223,240,144,241,47,242,53,243, +211,244,30,246,90,246,158,246,228,247,119,249,177,250,184,251,211,252,149,254,47,1,168,3,101,5,203,6,208,7,133,8, +186,9,80,11,86,12,23,13,70,14,168,15,53,17,21,19,167,20,120,21,194,21,133,21,11,21,32,21,189,21,81,22, +220,22,115,23,11,24,227,24,224,25,194,26,191,27,133,28,118,28,70,28,173,28,20,29,150,29,210,30,206,31,208,31, +218,31,241,31,91,31,71,31,146,32,203,33,21,34,5,34,196,33,200,33,224,34,52,36,130,36,36,36,159,35,1,35, +223,34,1,35,56,34,193,32,225,31,187,31,11,32,221,32,130,33,49,33,68,32,143,31,133,31,224,31,154,31,24,30, +210,27,120,25,191,23,20,23,164,22,144,21,135,20,1,20,61,19,54,18,112,17,162,16,249,15,2,16,238,15,249,14, +194,13,115,12,250,10,83,10,109,10,177,9,250,7,106,6,121,5,104,5,175,5,143,4,37,2,143,0,242,255,33,255, +90,254,109,253,112,251,152,249,68,249,24,249,231,247,119,246,1,245,99,243,107,242,45,242,168,241,125,240,238,238,113,237, +225,236,16,237,156,236,83,235,107,234,68,234,65,234,240,233,35,233,203,231,235,229,141,227,24,225,63,223,158,222,106,223, +116,224,234,223,80,222,231,221,229,222,244,223,158,224,59,224,58,222,87,220,29,220,88,220,41,220,15,220,169,219,84,219, +219,220,126,223,124,224,146,223,18,222,165,220,58,220,165,220,162,219,177,216,240,213,123,212,110,212,246,213,157,215,220,215, +216,215,172,216,110,217,224,217,80,218,235,217,148,216,119,215,214,214,139,214,31,215,94,216,152,217,243,218,150,220,101,222, +103,224,192,225,94,225,32,224,92,223,209,222,7,222,250,220,76,219,125,217,59,217,22,219,14,222,219,224,134,226,78,227, +127,228,79,230,230,231,4,233,149,233,145,233,7,234,150,235,63,237,158,238,79,240,11,242,109,243,198,244,222,245,146,246, +147,247,126,248,36,248,24,247,179,246,97,247,80,249,248,251,177,253,22,254,126,254,182,255,189,1,30,4,137,5,154,5, +209,5,3,7,189,8,7,11,211,13,170,16,228,19,108,23,249,25,88,27,95,28,4,29,96,29,209,29,103,29,225,27, +253,26,82,27,28,28,185,29,11,32,166,33,215,34,196,36,159,38,230,39,97,41,148,42,251,42,226,43,169,45,43,47, +85,48,60,49,77,49,120,49,46,51,177,53,168,55,179,56,134,56,156,55,111,55,43,56,163,56,94,56,125,55,106,54, +46,54,49,55,187,56,66,58,114,59,41,60,70,61,94,63,100,65,96,66,116,66,21,66,92,66,35,68,59,70,48,71, +76,71,242,70,55,70,5,70,98,70,254,69,208,68,144,67,235,65,30,64,11,63,33,62,226,60,57,60,91,60,207,60, +217,61,201,62,81,62,104,61,175,61,168,62,83,63,30,63,49,61,88,58,21,57,3,58,166,59,242,60,49,61,34,60, +229,58,28,58,213,56,174,54,4,52,182,48,50,45,166,42,77,41,175,40,154,40,175,40,162,40,151,40,117,40,47,40, +17,40,195,39,163,38,206,36,97,34,148,31,122,29,84,28,30,27,215,25,254,24,252,23,255,22,212,22,68,22,15,20, +57,17,80,14,206,10,112,7,148,4,46,1,203,253,232,251,39,251,16,251,252,251,0,253,145,253,227,254,151,0,221,0, +17,0,31,255,87,253,225,250,191,248,129,246,224,243,184,241,249,239,75,238,114,237,90,237,213,236,186,235,109,234,252,232, +182,231,99,230,73,228,8,226,132,224,235,222,179,220,236,218,39,218,37,218,235,218,252,219,116,220,111,220,92,220,242,219, +249,218,159,217,48,216,251,214,208,213,61,212,177,210,206,209,109,209,106,209,159,209,67,209,68,208,163,207,161,207,173,207, +98,207,44,206,47,204,6,203,117,203,123,204,120,205,67,206,138,206,37,207,13,209,53,211,156,212,185,213,48,214,61,213, +184,211,37,210,4,208,32,206,107,205,249,204,45,204,208,203,33,204,0,205,133,206,4,208,188,208,216,208,133,208,53,208, +221,208,216,209,181,209,78,209,22,210,127,211,240,212,155,214,8,216,77,217,116,219,230,221,49,223,137,223,114,223,220,222, +129,222,212,222,4,223,254,222,108,223,28,224,54,225,104,227,221,229,93,231,81,232,55,233,205,233,55,234,106,234,231,233, +74,233,146,233,109,234,61,235,57,236,211,237,77,240,82,243,178,245,223,246,114,247,172,247,122,247,61,247,199,246,140,245, +50,244,212,243,146,244,49,246,73,248,5,250,81,251,222,252,150,254,190,255,58,0,114,0,231,0,230,1,39,3,96,4, +182,5,41,7,191,8,184,10,150,12,154,13,23,14,36,14,4,13,80,11,117,10,63,10,21,10,127,10,140,11,208,12, +153,14,117,16,54,17,50,17,41,17,128,16,33,15,248,13,8,13,84,12,182,12,231,13,242,14,87,16,133,18,102,20, +88,21,212,21,6,22,239,21,157,21,182,20,65,19,15,18,135,17,89,17,79,17,145,17,111,18,187,19,108,20,3,20, +74,19,173,18,233,17,73,17,251,16,145,16,90,16,237,16,161,17,223,17,35,18,153,18,0,19,92,19,64,19,29,18, +111,16,192,14,15,13,212,11,50,11,56,10,156,8,22,7,236,5,121,5,62,6,52,7,9,7,88,6,215,5,0,5, +245,3,85,3,149,2,72,1,38,0,125,255,59,255,217,255,46,1,59,2,197,2,20,3,235,2,89,2,167,1,46,0, +138,253,225,250,21,249,160,247,130,246,151,246,98,247,144,247,103,247,206,247,52,248,227,247,61,247,45,246,62,244,81,242, +34,241,225,239,131,238,48,238,176,238,57,239,74,240,187,241,96,242,153,242,51,243,48,243,15,242,195,240,36,239,208,236, +36,235,214,234,203,234,165,234,177,234,127,234,89,234,13,235,195,235,127,235,45,235,176,235,177,236,232,237,206,238,121,238, +107,237,8,237,82,237,143,237,186,237,187,237,50,237,89,236,164,235,74,235,144,235,75,236,127,236,157,235,62,234,55,233, +242,232,130,233,104,234,204,234,130,234,62,234,160,234,158,235,204,236,124,237,18,237,234,235,35,235,34,235,108,235,215,235, +92,236,153,236,218,236,10,238,206,239,180,240,46,240,177,238,206,236,82,235,185,234,117,234,44,234,119,234,86,235,251,235, +169,236,55,238,12,240,254,240,46,241,25,241,93,240,237,238,196,237,113,237,199,237,239,238,235,240,34,243,200,245,180,249, +31,254,19,1,208,1,192,0,180,254,242,252,171,251,118,249,83,246,78,244,51,244,129,245,114,248,123,252,189,255,13,2, +146,4,194,6,219,7,171,8,40,9,41,8,74,6,34,5,252,4,194,5,135,7,124,9,25,11,50,13,21,16,189,18, +90,20,183,20,236,19,209,18,78,18,49,18,32,18,103,18,0,19,152,19,178,20,241,22,221,25,139,28,113,30,31,31, +198,30,128,30,140,30,206,29,92,28,230,27,222,28,37,30,97,31,21,33,154,35,52,39,20,43,250,44,56,44,216,42, +50,42,157,41,143,40,225,38,122,36,122,34,28,34,224,34,55,36,118,38,195,40,249,41,22,43,65,45,133,47,217,48, +80,49,225,48,245,47,207,47,125,48,202,48,204,48,159,49,218,50,12,51,54,50,137,49,71,49,194,48,202,47,160,46, +111,45,178,44,188,44,8,45,161,45,102,47,150,49,110,50,67,50,101,50,129,50,16,50,74,49,218,47,21,46,121,45, +171,45,33,45,172,44,128,45,111,46,178,46,1,47,26,47,147,46,25,46,81,45,125,43,210,41,252,40,109,39,217,36, +209,34,187,33,45,33,52,33,56,33,172,32,91,32,106,32,191,31,153,30,80,30,180,30,154,30,180,29,89,28,3,27, +27,26,57,25,158,23,217,21,3,21,142,20,9,19,136,16,59,14,146,12,124,11,0,11,104,10,30,9,250,7,129,7, +247,6,208,6,33,8,146,9,147,9,71,9,103,9,176,8,19,7,69,5,174,2,202,255,44,254,229,252,127,250,80,248, +104,247,214,246,143,246,216,246,149,246,190,245,77,245,136,244,225,242,148,241,163,240,239,238,83,237,11,237,84,237,79,237, +17,237,143,236,38,236,123,236,4,237,168,236,73,235,139,233,35,232,99,231,3,231,228,230,248,230,118,230,0,229,137,227, +121,226,80,225,48,224,39,223,191,221,129,220,42,220,37,220,56,220,10,221,59,222,45,223,59,224,49,225,117,225,120,225, +84,225,120,224,121,223,188,222,66,221,95,219,145,218,88,218,149,217,198,216,27,216,58,215,14,215,245,215,103,216,194,215, +25,215,49,215,80,216,102,218,102,220,131,221,46,222,160,222,178,222,8,223,53,224,141,225,21,226,139,225,65,224,211,222, +5,222,73,222,37,223,166,223,218,223,129,224,91,225,22,226,126,227,64,229,207,229,150,229,229,229,247,229,68,229,226,228, +140,228,134,227,56,227,78,228,131,229,0,231,101,233,107,235,197,236,132,238,207,239,204,239,203,239,216,239,195,238,136,237, +46,237,185,236,92,236,69,237,152,238,87,239,10,240,152,240,189,240,92,241,96,242,173,242,148,242,225,242,116,243,149,244, +152,246,191,248,142,250,27,252,11,253,80,253,93,253,9,253,29,252,225,250,45,249,41,247,11,246,63,246,10,247,42,248, +157,249,58,251,80,253,183,255,138,1,194,2,166,3,161,3,223,2,44,2,25,1,135,255,165,254,104,254,8,254,94,254, +212,255,52,1,120,2,94,4,36,6,45,7,200,7,108,7,6,6,7,5,136,4,88,3,243,1,96,1,48,1,48,1, +9,2,163,3,109,5,10,7,243,7,235,7,106,7,187,6,171,5,39,4,140,2,143,1,104,1,158,1,68,2,207,3, +183,5,84,7,181,8,64,9,90,8,255,6,173,5,165,3,92,1,147,255,142,253,176,251,175,251,12,253,132,254,126,0, +82,2,127,2,59,2,2,3,139,3,8,3,29,2,95,0,206,253,203,251,139,250,233,249,208,250,101,252,180,252,137,252, +93,253,103,254,30,255,158,255,199,254,149,252,251,250,48,250,7,249,249,247,164,247,95,247,11,247,254,246,23,247,174,247, +238,248,194,249,152,249,25,249,96,248,43,247,244,245,64,245,40,245,137,245,211,245,198,245,240,245,124,246,239,246,11,247, +159,246,169,245,182,244,217,243,176,242,223,241,235,241,3,242,252,241,129,242,18,243,60,243,205,243,131,244,46,244,67,243, +160,242,253,241,182,241,177,242,65,244,56,245,130,245,125,245,181,245,156,246,118,247,42,247,205,245,2,244,92,242,120,241, +58,241,247,240,193,240,11,241,11,242,10,244,118,246,168,247,20,247,194,245,168,244,98,244,195,244,104,244,249,242,254,241, +9,242,120,242,121,243,206,244,122,245,28,246,137,247,117,248,30,248,150,247,12,247,34,246,141,245,99,245,214,244,255,243, +6,243,2,242,83,242,66,244,140,245,99,245,109,245,34,246,204,246,88,247,37,247,188,245,141,244,104,244,21,244,53,243, +108,242,101,241,18,240,113,239,166,239,67,240,120,241,217,242,104,243,99,243,173,243,95,244,117,245,48,247,120,249,233,251, +50,254,13,0,60,1,111,1,118,0,187,254,223,252,72,251,122,250,170,250,73,251,6,252,37,253,133,254,24,0,63,2, +123,4,171,5,183,5,239,4,48,3,9,1,141,255,226,254,230,254,200,255,58,1,254,2,140,5,195,8,163,11,188,13, +50,15,234,15,181,15,139,14,200,12,97,11,24,11,230,11,117,13,39,15,81,16,89,17,242,18,130,20,79,21,190,21, +16,22,2,22,180,21,61,21,207,20,142,21,248,23,195,26,254,28,215,30,58,32,55,33,121,34,211,35,128,36,66,36, +206,34,68,32,56,30,164,29,133,29,6,29,61,28,39,27,162,26,15,28,206,30,54,33,52,35,28,37,83,38,200,38, +7,39,23,39,16,39,33,39,219,38,97,38,213,38,103,40,80,42,87,44,21,46,96,46,57,45,4,44,92,43,230,42, +128,42,235,41,178,40,131,39,199,39,159,41,245,43,55,46,40,48,235,48,2,48,73,46,176,44,74,43,252,41,180,40, +66,39,13,38,237,37,235,38,113,40,74,42,89,44,37,46,39,47,203,46,218,44,36,42,166,39,81,37,230,34,220,32, +179,31,125,31,9,32,218,32,94,33,120,33,102,33,76,33,7,33,73,32,14,31,202,29,209,28,94,28,206,28,171,29, +151,29,41,28,77,26,178,24,120,23,165,22,206,21,182,20,245,19,180,19,60,19,135,18,55,18,61,18,26,18,117,17, +240,15,187,13,219,11,230,10,160,10,149,10,14,10,171,8,56,7,118,6,238,5,63,5,167,4,226,3,163,2,139,1, +235,0,25,0,221,254,180,253,224,252,142,252,1,253,172,253,166,253,254,252,71,252,160,251,68,251,123,251,142,251,147,250, +234,248,61,247,120,245,212,243,203,242,212,241,153,240,243,239,238,239,141,239,43,239,185,239,187,240,189,241,6,243,187,243, +206,242,1,241,35,239,241,236,211,234,83,233,222,231,153,230,175,230,231,231,58,233,148,234,174,235,189,235,29,235,135,234, +138,233,169,231,58,229,208,226,43,225,233,224,181,225,224,226,26,228,31,229,222,229,153,230,40,231,104,231,227,231,177,232, +5,233,128,232,108,231,50,230,126,229,176,229,55,230,123,230,102,230,15,230,250,229,142,230,27,231,23,231,13,231,2,231, +83,230,99,229,218,228,139,228,126,228,230,228,77,229,163,229,120,230,154,231,163,232,239,233,114,235,128,236,222,236,68,236, +122,234,171,232,34,232,72,232,7,232,93,231,159,230,86,230,112,231,211,233,248,235,205,236,175,236,85,236,239,235,133,235, +32,235,108,234,64,233,151,232,113,233,97,235,212,237,197,240,48,243,232,243,178,243,79,243,255,241,245,239,70,238,152,236, +216,234,63,234,152,234,235,234,252,235,3,238,163,239,214,240,220,241,101,241,193,239,250,238,205,238,33,238,200,237,198,237, +40,237,65,237,88,239,225,241,181,243,73,245,83,246,161,246,1,247,60,247,161,246,138,245,23,244,77,242,98,241,217,241, +119,242,166,242,197,242,235,242,138,243,2,245,61,246,87,246,11,246,41,246,154,246,254,246,219,246,57,246,223,245,52,246, +11,247,12,248,124,248,51,248,72,248,246,248,42,249,215,248,136,248,226,247,19,247,192,246,104,246,200,245,154,245,140,245, +93,245,97,246,109,248,98,249,33,249,22,249,115,249,86,250,221,251,137,252,168,251,6,251,146,251,111,252,65,253,197,253, +86,253,133,252,89,252,125,252,75,252,176,251,183,250,197,249,118,249,195,249,60,250,113,250,61,250,71,250,215,250,249,250, +127,250,66,250,9,250,181,249,107,250,194,251,38,252,46,252,210,252,95,253,250,253,28,255,97,255,166,254,159,254,172,254, +127,253,133,252,132,252,125,252,13,253,110,254,164,254,184,253,138,253,180,253,155,253,17,254,50,254,46,253,17,253,123,254, +82,255,113,255,231,255,34,0,72,0,42,1,129,1,116,0,134,255,68,255,246,254,244,254,68,255,10,255,158,254,169,254, +168,254,118,254,144,254,216,254,42,255,167,255,249,255,226,255,179,255,190,255,84,0,93,1,38,2,122,2,138,2,34,2, +218,1,145,2,22,3,51,2,22,1,133,0,46,0,39,1,128,3,133,4,177,3,121,3,65,4,235,4,137,5,132,5, +22,4,148,2,222,1,32,1,181,0,13,1,217,0,45,0,185,0,45,2,94,3,87,4,177,4,252,3,112,3,178,3, +212,3,128,3,233,2,17,2,116,1,82,1,68,1,128,1,30,2,91,2,92,2,162,2,119,2,231,1,233,1,205,1, +231,0,71,0,231,255,11,255,200,254,109,255,86,255,125,254,173,253,65,252,184,250,47,250,67,249,60,247,17,246,87,246, +173,247,76,251,135,0,181,4,247,7,188,10,178,10,3,8,229,5,163,4,220,2,215,0,50,254,205,250,108,249,55,251, +172,253,220,255,186,2,135,5,126,7,252,8,46,9,93,7,218,4,143,2,43,0,232,253,10,252,114,250,249,249,198,251, +148,255,14,4,221,7,72,10,79,11,52,11,183,10,170,10,56,10,93,8,158,6,134,6,247,6,17,7,92,7,161,7, +50,8,74,10,170,12,56,13,223,12,171,12,214,11,243,10,253,10,16,11,106,11,94,13,172,15,31,17,50,19,26,22, +62,24,184,25,196,26,99,26,238,24,32,23,79,20,2,17,193,14,8,13,53,11,113,10,30,11,212,12,252,15,7,20, +91,23,190,25,80,27,116,27,110,26,20,25,159,23,150,22,91,22,105,22,2,23,225,24,59,27,54,29,207,30,104,31, +7,31,20,31,124,31,52,31,203,30,63,30,111,28,145,26,143,26,209,27,141,29,92,31,115,31,215,29,57,29,193,29, +181,29,158,29,146,29,8,28,48,26,40,26,244,26,227,27,15,30,111,32,78,33,151,33,199,33,160,32,125,30,175,28, +41,27,187,25,104,24,109,22,249,19,161,18,202,18,56,19,27,19,200,18,4,19,14,20,90,21,126,22,140,23,131,24, +123,25,82,26,53,26,2,25,162,23,76,22,7,21,129,20,61,20,67,19,139,18,155,18,204,17,8,16,210,14,181,13, +43,12,116,11,59,11,26,10,247,8,213,8,31,9,21,10,156,11,213,11,158,10,127,9,26,8,33,6,250,4,87,4, +10,3,59,2,169,2,46,3,15,4,214,5,230,6,151,6,57,6,171,5,8,4,246,1,5,0,19,254,163,252,253,251, +193,251,20,252,3,253,222,253,93,254,128,254,39,254,186,253,123,253,212,252,188,251,194,250,216,249,78,249,220,249,47,251, +195,252,138,254,122,255,193,254,96,253,169,251,192,248,137,245,70,243,48,241,255,238,183,237,5,237,122,236,48,237,13,239, +166,240,254,241,90,243,213,243,135,243,114,243,102,243,15,243,222,242,128,242,106,241,95,240,43,240,109,240,148,240,147,240, +183,240,69,241,12,242,151,242,210,242,210,242,111,242,120,241,17,240,245,238,206,238,3,239,167,238,10,238,170,237,78,237, +43,237,106,237,56,237,123,236,2,236,155,235,21,235,96,235,95,236,246,236,96,237,226,237,211,237,196,237,120,238,176,238, +178,237,104,236,139,234,174,231,107,229,158,228,74,228,79,228,202,228,245,228,115,229,146,231,21,234,35,235,240,234,33,234, +34,233,243,232,149,233,187,233,47,233,169,232,63,232,33,232,206,232,206,233,34,234,138,233,101,232,46,231,48,230,89,229, +156,228,255,227,106,227,34,227,95,227,147,227,153,227,51,228,32,229,46,229,105,228,160,227,248,226,151,226,170,226,194,226, +205,226,49,227,143,227,168,227,40,228,22,229,186,229,44,230,172,230,234,230,18,231,114,231,140,231,84,231,175,231,188,232, +124,233,67,233,90,232,174,231,233,231,161,232,241,232,139,232,205,231,125,231,76,232,232,233,105,235,119,236,20,237,72,237, +123,237,234,237,54,238,42,238,183,237,179,236,137,235,209,234,83,234,243,233,50,234,246,234,250,235,128,237,2,239,165,239, +37,240,76,241,65,242,153,242,225,242,205,242,50,242,251,241,68,242,99,242,171,242,108,243,48,244,40,245,165,246,230,247, +137,248,34,249,160,249,126,249,250,248,149,248,160,248,85,249,50,250,69,250,191,249,197,249,153,250,101,251,201,251,105,252, +136,253,96,254,126,254,67,254,202,253,46,253,75,253,43,254,191,254,254,254,171,255,166,0,223,1,201,3,198,5,243,6, +134,7,158,7,50,7,39,7,186,7,238,7,203,7,220,7,163,7,61,7,135,7,29,8,166,8,23,10,41,12,88,13, +161,13,188,13,181,13,255,13,215,14,103,15,144,15,211,15,158,15,189,14,79,14,165,14,52,15,229,15,21,16,19,15, +245,13,224,13,77,14,201,14,108,15,217,15,44,16,246,16,215,17,98,18,241,18,108,19,152,19,210,19,236,19,109,19, +234,18,203,18,148,18,86,18,94,18,108,18,193,18,142,19,0,20,28,20,245,20,41,22,173,22,197,22,132,22,96,21, +0,20,48,19,111,18,124,17,191,16,24,16,163,15,21,16,75,17,130,18,114,19,241,19,232,19,180,19,95,19,108,18, +225,16,100,15,152,14,175,14,44,15,125,15,155,15,140,15,92,15,100,15,102,15,187,14,190,13,255,12,31,12,16,11, +40,10,16,9,25,8,82,8,61,9,211,9,135,10,76,11,60,11,240,10,2,11,79,10,129,8,98,6,220,3,71,1, +128,255,156,253,234,250,240,248,44,248,168,247,186,247,66,248,5,248,43,248,176,250,238,254,238,3,215,8,110,10,19,7, +47,2,177,254,56,252,96,250,153,248,170,245,208,242,82,242,225,243,114,246,188,249,177,252,10,255,156,1,12,3,104,1, +242,253,134,250,45,247,55,244,229,241,123,239,173,237,44,238,157,240,190,243,63,247,174,250,156,253,243,255,208,0,209,255, +67,254,163,252,122,250,192,248,62,248,219,247,16,247,155,246,199,246,237,247,33,250,183,251,124,251,189,250,187,250,246,250, +124,250,225,248,42,247,167,247,246,250,31,255,109,2,147,4,31,6,78,8,51,11,227,12,100,12,154,10,248,7,227,4, +153,2,79,1,22,0,170,254,82,253,214,252,168,254,123,2,252,5,57,8,233,9,19,11,96,11,172,10,206,8,218,6, +87,6,169,6,189,6,124,7,187,9,243,12,110,16,232,18,31,19,211,17,87,16,11,15,182,14,102,15,28,15,50,13, +141,11,135,11,195,13,63,18,245,21,0,22,68,20,162,19,238,19,173,20,177,21,125,21,200,19,247,17,130,16,38,16, +107,18,51,22,24,25,88,27,168,29,84,31,116,32,18,33,14,32,188,29,114,27,242,24,102,22,19,21,135,20,166,19, +224,18,128,18,208,18,64,21,87,25,36,28,222,28,45,29,0,30,160,31,176,33,86,34,194,32,115,30,130,28,53,27, +13,27,161,27,230,27,243,27,7,28,225,27,236,27,80,28,75,28,216,27,86,27,59,26,137,24,85,23,82,23,190,24, +24,27,151,28,134,28,31,28,198,27,22,27,128,26,152,25,88,23,231,20,174,19,37,19,86,19,194,20,215,21,138,21, +80,21,242,21,203,22,164,23,240,23,33,23,38,22,99,21,16,20,200,18,68,18,93,17,176,15,60,14,2,13,60,12, +13,13,199,14,223,15,132,16,189,16,245,15,53,15,71,15,2,15,24,14,48,13,195,11,193,9,56,8,233,6,65,5, +0,4,70,3,148,2,117,2,203,2,82,2,66,1,161,0,82,0,86,0,249,0,56,1,33,0,63,254,131,252,192,251, +81,252,22,253,234,252,28,252,227,250,23,249,75,247,142,245,96,243,173,241,91,241,116,241,117,241,247,241,122,242,64,242, +199,241,69,241,155,240,85,240,53,240,20,239,14,237,23,235,139,233,155,232,5,232,203,230,242,228,131,227,183,226,95,226, +159,226,22,227,86,227,152,227,183,227,79,227,193,226,80,226,195,225,24,225,207,223,54,221,49,218,44,216,63,215,53,215, +233,215,84,216,240,215,166,215,250,215,159,216,62,217,30,217,248,215,246,214,228,214,76,215,223,215,1,216,211,214,57,213, +179,212,234,212,58,213,154,213,39,213,151,211,85,210,187,209,20,209,219,208,18,209,165,208,66,208,12,209,20,210,242,210, +119,212,175,213,120,213,217,212,59,212,208,210,83,209,184,208,126,208,181,208,183,209,107,210,86,210,157,210,144,211,161,212, +225,213,81,215,218,216,175,218,0,220,131,219,192,217,46,216,102,215,148,215,75,216,90,216,189,215,171,215,137,216,34,218, +118,220,210,222,94,224,59,225,169,225,175,225,225,225,122,226,255,226,151,227,168,228,193,229,145,230,110,231,105,232,105,233, +89,234,178,234,88,234,46,234,175,234,125,235,88,236,52,237,66,238,30,240,171,242,234,244,165,246,50,248,50,249,139,249, +233,249,94,250,133,250,150,250,178,250,176,250,251,250,239,251,20,253,70,254,21,0,116,2,132,4,195,5,149,6,147,7, +206,8,219,9,113,10,155,10,161,10,218,10,46,11,79,11,134,11,52,12,242,12,100,13,223,13,147,14,160,15,118,17, +195,19,140,21,205,22,252,23,188,24,228,24,18,25,142,25,41,26,190,26,239,26,166,26,127,26,200,26,70,27,245,27, +177,28,44,29,129,29,156,29,46,29,207,28,52,29,244,29,185,30,181,31,101,32,88,32,36,32,241,31,109,31,10,31, +240,30,130,30,28,30,97,30,190,30,217,30,40,31,120,31,182,31,155,32,165,33,127,33,115,32,115,31,133,30,206,29, +142,29,43,29,100,28,211,27,145,27,89,27,36,27,172,26,1,26,194,25,161,25,214,24,233,23,118,23,246,22,120,22, +157,22,212,22,101,22,200,21,64,21,137,20,250,19,172,19,221,18,110,17,1,16,162,14,22,13,169,11,160,10,226,9, +79,9,167,8,177,7,183,6,52,6,36,6,39,6,244,5,120,5,216,4,82,4,237,3,85,3,64,2,229,0,190,255, +221,254,252,253,253,252,239,251,247,250,112,250,130,250,118,250,97,249,130,247,252,245,61,245,196,244,51,244,96,243,12,242, +137,240,123,239,116,238,167,236,149,234,10,233,235,231,47,231,168,230,52,229,172,226,162,224,140,223,136,222,202,221,205,221, +1,222,111,222,172,223,47,225,157,226,110,228,31,230,26,231,17,232,189,232,194,231,112,229,181,226,115,223,139,220,99,219, +60,219,29,219,178,219,216,220,196,221,27,223,7,225,106,226,87,227,239,227,144,226,6,223,98,219,148,216,176,214,137,214, +147,215,69,216,50,217,111,219,61,222,28,225,47,228,64,230,91,230,144,229,238,228,149,228,185,228,226,228,11,228,208,226, +203,226,253,227,60,229,28,230,232,230,209,231,199,232,144,233,23,234,210,234,148,236,158,239,5,243,192,245,43,248,49,251, +147,254,104,1,50,3,137,3,111,2,246,0,239,255,1,255,5,254,118,253,37,253,139,252,2,252,87,252,143,253,235,254, +216,255,167,0,33,2,76,4,96,6,10,8,178,9,113,11,214,12,218,13,39,15,57,17,207,19,76,22,33,24,54,25, +84,26,49,28,26,30,12,31,82,31,137,31,177,31,12,32,242,32,239,33,171,34,73,35,195,35,165,36,221,38,172,41, +113,43,33,44,96,44,89,44,191,44,221,45,166,46,11,47,19,48,85,49,128,50,199,52,159,55,227,56,238,56,69,57, +107,57,221,56,237,55,224,53,192,50,173,48,75,48,67,48,134,48,176,49,63,51,235,52,206,54,99,56,223,57,35,60, +158,62,36,64,219,64,99,65,12,66,16,67,231,67,188,67,216,66,209,65,150,64,102,63,182,62,25,62,228,60,17,59, +30,57,229,55,170,55,103,55,137,54,224,53,207,53,208,53,210,53,246,53,15,54,75,54,169,54,90,54,37,53,211,51, +190,50,141,49,21,48,146,46,159,45,152,45,232,45,233,45,200,45,162,45,39,45,107,44,152,43,118,42,238,40,248,38, +150,36,124,34,68,33,95,32,90,31,179,30,145,30,165,30,250,30,83,31,252,30,225,29,122,28,235,26,70,25,155,23, +210,21,245,19,40,18,113,16,1,15,226,13,151,12,249,10,67,9,22,7,20,4,164,0,18,253,180,249,189,247,179,247, +44,248,216,247,220,246,236,245,163,245,16,246,67,246,106,245,190,243,161,241,95,239,158,237,151,236,181,235,162,234,109,233, +243,231,68,230,179,228,94,227,61,226,69,225,81,224,70,223,242,221,76,220,252,218,78,218,37,217,208,214,83,212,132,210, +66,209,126,208,188,207,48,206,128,204,200,203,118,203,199,202,45,202,178,201,244,200,100,200,46,200,156,199,162,198,191,197, +215,196,212,195,246,194,31,194,29,193,10,192,229,190,225,189,98,189,42,189,192,188,118,188,182,188,86,189,33,190,26,191, +52,192,74,193,240,193,203,193,61,193,255,192,82,193,246,193,48,194,104,193,82,192,21,192,161,192,79,193,198,193,129,193, +129,192,217,191,8,192,137,192,35,193,153,193,148,193,212,193,3,195,79,196,59,197,49,198,206,198,5,199,9,200,154,201, +63,202,106,202,63,203,99,204,231,205,76,208,90,210,34,211,226,211,76,213,157,214,201,215,229,216,105,217,215,217,22,219, +131,220,130,221,213,222,167,224,58,226,137,227,232,228,23,230,36,231,170,232,204,234,9,237,255,238,198,240,157,242,133,244, +90,246,251,247,37,249,177,249,3,250,130,250,33,251,191,251,74,252,177,252,97,253,246,254,69,1,193,3,46,6,88,8, +73,10,105,12,125,14,203,15,160,16,201,17,37,19,68,20,53,21,4,22,218,22,71,24,103,26,148,28,81,30,131,31, +70,32,7,33,34,34,101,35,90,36,179,36,122,36,58,36,164,36,197,37,13,39,43,40,86,41,163,42,185,43,129,44, +60,45,196,45,207,45,192,45,201,45,120,45,12,45,21,45,25,45,236,44,146,45,248,46,242,47,162,48,101,49,100,49, +189,48,133,48,85,48,156,47,46,47,13,47,109,46,247,45,93,46,211,46,27,47,161,47,228,47,181,47,152,47,5,47, +144,45,70,44,123,43,105,42,94,41,231,40,115,40,203,39,52,39,69,38,247,36,225,35,197,34,30,33,52,31,67,29, +135,27,164,26,88,26,204,25,47,25,185,24,226,23,232,22,58,22,250,20,215,18,249,16,188,15,140,14,90,13,248,11, +27,10,139,8,245,7,175,7,53,7,148,6,142,5,71,4,98,3,156,2,79,1,158,255,175,253,144,251,239,249,29,249, +81,248,16,247,161,245,52,244,247,242,36,242,77,241,255,239,130,238,233,236,231,234,213,232,49,231,145,229,156,227,248,225, +21,225,128,224,226,223,86,223,234,222,246,222,208,223,117,224,93,223,233,220,232,218,246,217,73,217,18,216,244,213,130,211, +31,210,89,210,120,211,193,212,113,213,157,212,225,210,37,210,218,210,129,211,146,210,160,207,231,203,188,201,192,201,240,201, +171,200,176,198,159,197,19,198,40,199,121,199,147,198,208,196,170,194,68,193,205,193,209,195,9,198,240,199,118,201,72,203, +172,206,166,210,25,212,86,210,126,207,16,205,163,203,58,203,88,202,78,200,30,199,10,200,40,202,4,205,93,208,26,211, +61,213,74,215,43,216,137,215,226,214,80,214,24,213,29,212,201,211,96,211,216,211,83,214,151,217,217,220,144,224,196,227, +149,229,77,231,101,233,167,234,253,234,225,234,51,234,216,233,205,234,224,235,11,236,96,236,150,237,83,239,131,241,165,243, +247,244,101,246,56,249,137,252,8,255,55,1,241,3,37,7,174,10,101,14,126,17,115,19,191,20,221,21,156,22,11,23, +142,23,193,23,251,22,203,21,83,21,188,21,145,22,139,23,115,24,151,25,194,27,201,30,169,33,53,36,175,38,155,40, +203,41,7,43,176,44,115,46,78,48,96,50,91,52,21,54,213,55,191,57,173,59,99,61,111,62,103,62,182,61,129,61, +60,62,50,63,204,63,62,64,249,64,89,66,86,68,16,70,247,70,172,71,129,72,241,72,54,73,205,73,38,74,56,74, +243,74,24,76,230,76,239,77,90,79,100,80,122,81,239,82,63,83,209,81,232,79,6,78,59,76,13,75,181,73,82,71, +106,69,23,69,39,69,79,69,23,70,144,70,166,70,228,71,182,73,100,74,169,74,109,75,190,75,135,75,135,75,29,75, +236,73,209,72,200,71,106,70,93,69,169,68,62,67,249,64,143,62,56,60,5,58,1,56,250,53,15,52,143,50,121,49, +239,48,25,49,138,49,212,49,231,49,134,49,124,48,240,46,215,44,62,42,175,39,90,37,37,35,116,33,112,32,184,31, +111,31,170,31,133,31,156,30,129,29,33,28,2,26,133,23,5,21,74,18,153,15,115,13,186,11,71,10,45,9,45,8, +3,7,196,5,131,4,82,3,65,2,22,1,141,255,191,253,201,251,208,249,70,248,98,247,163,246,126,245,227,243,245,241, +193,239,71,237,140,234,114,231,240,227,158,224,80,222,202,220,53,219,146,217,85,216,113,215,236,214,251,214,71,215,105,215, +60,215,71,214,146,212,61,211,125,210,73,209,141,207,248,205,85,204,126,202,6,201,231,199,207,198,30,198,226,197,151,197, +66,197,11,197,128,196,89,195,208,193,53,192,242,190,26,190,26,189,183,187,91,186,75,185,149,184,67,184,18,184,219,183, +199,183,181,183,185,183,119,184,190,185,169,186,51,187,135,187,72,187,225,186,237,186,164,186,154,185,167,184,210,183,161,182, +240,181,52,182,121,182,183,182,200,183,88,185,199,186,60,188,160,189,179,190,187,191,175,192,75,193,252,193,18,195,69,196, +153,197,7,199,252,199,111,200,246,200,155,201,18,202,117,202,197,202,192,202,103,202,19,202,75,202,112,203,71,205,48,207, +214,208,94,210,43,212,54,214,203,215,194,216,232,217,106,219,190,220,19,222,180,223,58,225,199,226,214,228,254,230,16,233, +134,235,208,237,16,239,220,239,220,240,243,241,126,243,87,245,53,246,89,246,77,247,205,248,9,250,186,251,217,253,63,255, +126,0,204,2,138,5,233,7,4,10,97,11,203,11,134,12,67,14,36,16,183,17,94,19,16,21,150,22,7,24,61,25, +239,25,94,26,252,26,146,27,136,27,210,26,7,26,217,25,223,26,19,29,128,31,94,33,34,35,84,37,184,39,29,42, +64,44,70,45,61,45,104,45,23,46,130,46,139,46,129,46,109,46,192,46,185,47,178,48,87,49,206,49,166,49,205,48, +52,48,19,48,188,47,82,47,46,47,238,46,147,46,164,46,245,46,50,47,181,47,156,48,101,49,145,49,245,48,195,47, +154,46,230,45,114,45,245,44,137,44,78,44,23,44,222,43,11,44,167,44,3,45,234,44,167,44,212,43,28,42,48,40, +60,38,203,35,165,33,120,32,54,31,183,29,78,29,172,29,183,29,14,30,227,30,13,31,208,30,213,30,221,29,117,27, +18,25,6,23,201,20,206,18,237,16,123,14,85,12,15,11,174,9,54,8,122,7,211,6,174,5,161,4,83,3,28,1, +215,254,60,253,244,251,13,251,101,250,51,249,181,247,216,246,108,246,245,245,119,245,160,244,60,243,179,241,7,240,37,238, +177,236,243,235,119,235,254,234,34,234,92,232,94,230,33,229,26,228,123,226,156,224,20,223,29,222,187,221,73,221,232,219, +143,217,254,214,88,213,129,213,206,214,152,215,98,215,214,214,113,214,128,214,239,214,186,214,97,213,244,211,88,211,72,211, +116,211,165,211,74,211,63,210,33,209,102,208,28,208,27,208,187,207,96,206,190,204,80,204,93,205,188,206,137,207,209,207, +250,207,118,208,85,209,221,209,164,209,69,209,227,208,227,207,203,206,195,206,117,207,231,207,9,208,230,207,124,207,104,207, +175,207,122,207,223,206,143,206,115,206,137,206,62,207,117,208,35,210,142,212,212,214,224,215,85,216,28,217,237,217,103,218, +115,218,9,218,201,217,49,218,238,218,98,220,65,223,132,226,229,228,165,230,254,231,17,233,194,234,126,236,77,236,182,234, +249,233,100,234,42,235,238,235,18,236,21,236,236,237,148,241,242,244,47,247,143,248,90,249,174,250,2,253,249,254,24,0, +49,1,234,1,19,2,223,2,57,4,250,4,162,5,225,6,86,8,140,10,229,13,189,16,80,18,9,20,78,22,39,24, +78,25,197,25,227,25,15,27,118,29,69,31,31,32,136,33,190,35,224,37,179,39,252,40,118,41,193,41,80,42,169,42, +220,42,128,43,41,44,66,44,172,44,145,46,129,49,29,52,197,53,184,54,110,55,79,56,61,57,119,57,220,56,140,56, +78,57,140,58,160,59,156,60,144,61,99,62,81,63,155,64,26,66,89,67,223,67,208,67,233,67,122,68,23,69,113,69, +177,69,29,70,196,70,73,71,76,71,33,71,110,71,39,72,153,72,59,72,99,71,26,71,168,71,6,72,139,71,214,70, +106,70,46,70,241,69,106,69,167,68,75,68,47,68,115,67,88,66,145,65,187,64,171,63,246,62,131,62,40,62,45,62, +208,61,129,60,220,59,175,60,59,61,159,60,163,59,108,58,44,57,96,56,5,55,122,52,93,50,93,49,113,48,204,47, +194,47,33,47,238,45,93,45,188,44,56,43,191,41,65,40,212,37,164,35,240,34,153,34,171,33,133,32,48,31,215,29, +16,29,62,28,75,26,150,23,27,21,66,19,21,18,15,17,137,15,228,13,218,12,76,12,204,11,17,11,186,9,212,7, +243,5,107,4,46,3,3,2,132,0,203,254,121,253,159,252,178,251,118,250,2,249,158,247,179,246,12,246,240,244,95,243, +208,241,54,240,115,238,184,236,242,234,15,233,103,231,40,230,48,229,80,228,38,227,137,225,22,224,80,223,219,222,39,222, +220,220,233,218,234,216,162,215,213,214,218,213,188,212,190,211,180,210,165,209,8,209,242,208,220,208,108,208,184,207,178,206, +69,205,226,203,233,202,10,202,43,201,181,200,121,200,38,200,94,200,99,201,55,202,50,202,143,201,127,200,119,199,2,199, +150,198,146,197,127,196,201,195,73,195,75,195,197,195,240,195,221,195,50,196,145,196,151,196,159,196,126,196,211,195,64,195, +81,195,184,195,41,196,98,196,71,196,119,196,70,197,7,198,113,198,204,198,250,198,31,199,188,199,118,200,228,200,148,201, +149,202,82,203,18,204,38,205,6,206,160,206,73,207,209,207,99,208,124,209,143,210,38,211,3,212,99,213,136,214,95,215, +60,216,14,217,7,218,93,219,173,220,193,221,188,222,111,223,223,223,93,224,199,224,16,225,172,225,121,226,35,227,59,228, +13,230,230,231,128,233,50,235,207,236,6,238,254,238,217,239,156,240,95,241,30,242,221,242,193,243,240,244,191,246,62,249, +168,251,116,253,22,255,172,0,165,1,0,2,28,2,9,2,16,2,119,2,255,2,216,3,138,5,182,7,153,9,24,11, +64,12,91,13,5,15,193,16,111,17,109,17,192,17,72,18,199,18,131,19,46,20,141,20,83,21,192,22,45,24,88,25, +55,26,121,26,95,26,182,26,154,27,92,28,139,28,111,28,181,28,155,29,195,30,201,31,114,32,199,32,58,33,236,33, +60,34,21,34,60,34,207,34,67,35,108,35,64,35,229,34,18,35,217,35,89,36,97,36,78,36,235,35,86,35,42,35, +7,35,76,34,101,33,162,32,212,31,71,31,7,31,114,30,156,29,31,29,253,28,74,29,54,30,245,30,206,30,54,30, +146,29,221,28,116,28,75,28,186,27,202,26,232,25,223,24,164,23,187,22,52,22,165,21,228,20,253,19,254,18,243,17, +226,16,2,16,118,15,250,14,107,14,250,13,139,13,247,12,97,12,124,11,2,10,147,8,135,7,109,6,84,5,73,4, +178,2,11,1,119,0,85,0,170,255,10,255,149,254,137,253,100,252,200,251,243,250,155,249,72,248,205,246,55,245,26,244, +15,243,194,241,16,241,219,240,11,240,221,238,3,238,76,237,241,236,24,237,173,236,105,235,128,234,55,234,225,233,85,233, +99,232,17,231,57,230,239,229,68,229,68,228,129,227,192,226,0,226,160,225,108,225,121,225,43,226,215,226,219,226,196,226, +146,226,148,225,106,224,40,224,158,224,30,225,36,225,69,224,35,223,237,222,129,223,231,223,185,223,240,222,211,221,32,221, +37,221,164,221,129,222,36,223,154,222,81,221,198,220,113,221,178,222,195,223,250,223,116,223,55,223,177,223,42,224,4,224, +104,223,198,222,114,222,139,222,15,223,221,223,161,224,25,225,102,225,168,225,207,225,232,225,12,226,31,226,240,225,99,225, +184,224,151,224,54,225,26,226,19,227,27,228,173,228,214,228,152,229,19,231,93,232,4,233,240,232,49,232,187,231,63,232, +248,232,79,233,167,233,58,234,44,235,227,236,254,238,208,240,115,242,248,243,22,245,250,245,156,246,148,246,81,246,94,246, +98,246,120,246,28,247,225,247,184,248,121,250,208,252,190,254,103,0,173,1,17,2,166,2,34,4,8,5,179,4,71,4, +33,4,106,4,250,5,255,7,206,8,21,9,75,10,102,12,255,14,112,17,153,18,230,18,200,19,23,21,48,22,75,23, +209,23,97,23,150,23,94,25,138,27,123,29,53,31,249,31,6,32,188,32,254,33,193,34,235,34,152,34,30,34,170,34, +84,36,212,37,35,39,30,41,78,43,239,44,53,46,41,47,183,47,57,48,103,48,125,47,246,45,13,45,243,44,55,45, +213,45,227,46,37,48,101,49,196,50,105,52,12,54,29,55,100,55,25,55,170,54,145,54,198,54,162,54,242,53,102,53, +159,53,170,54,57,56,197,57,232,58,169,59,40,60,114,60,159,60,111,60,117,59,1,58,224,56,88,56,39,56,14,56, +245,55,4,56,103,56,206,56,234,56,236,56,229,56,109,56,75,55,182,53,17,52,197,50,233,49,83,49,16,49,54,49, +147,49,11,50,159,50,29,51,109,51,111,51,132,50,96,48,211,45,201,43,111,42,109,41,37,40,114,38,33,37,184,36, +203,36,19,37,108,37,64,37,110,36,116,35,55,34,155,32,42,31,216,29,71,28,28,27,158,26,232,25,229,24,42,24, +60,23,219,21,205,20,207,19,22,18,47,16,141,14,180,12,29,11,146,10,70,10,132,9,206,8,27,8,240,6,164,5, +94,4,168,2,173,0,206,254,209,252,220,250,125,249,159,248,250,247,136,247,7,247,99,246,7,246,213,245,59,245,77,244, +81,243,2,242,60,240,81,238,138,236,29,235,21,234,35,233,35,232,77,231,171,230,38,230,213,229,147,229,244,228,222,227, +150,226,72,225,241,223,162,222,160,221,250,220,71,220,96,219,201,218,173,218,144,218,81,218,254,217,46,217,226,215,188,214, +168,213,71,212,38,211,176,210,99,210,34,210,54,210,55,210,253,209,56,210,209,210,243,210,189,210,160,210,54,210,100,209, +195,208,87,208,210,207,144,207,202,207,28,208,112,208,250,208,137,209,249,209,104,210,160,210,122,210,100,210,127,210,103,210, +71,210,156,210,42,211,137,211,215,211,28,212,54,212,119,212,21,213,157,213,206,213,228,213,246,213,12,214,106,214,38,215, +43,216,122,217,188,218,140,219,67,220,73,221,63,222,224,222,96,223,163,223,146,223,176,223,18,224,67,224,146,224,153,225, +232,226,243,227,12,229,95,230,161,231,216,232,15,234,242,234,137,235,50,236,198,236,15,237,105,237,22,238,213,238,132,239, +51,240,201,240,57,241,175,241,72,242,231,242,116,243,15,244,235,244,4,246,31,247,8,248,170,248,35,249,219,249,248,250, +225,251,245,251,121,251,34,251,61,251,197,251,160,252,154,253,166,254,242,255,135,1,50,3,192,4,4,6,235,6,142,7, +23,8,182,8,146,9,98,10,149,10,59,10,6,10,73,10,231,10,206,11,183,12,57,13,137,13,41,14,7,15,200,15, +132,16,92,17,13,18,85,18,70,18,25,18,253,17,3,18,56,18,153,18,208,18,168,18,180,18,122,19,120,20,14,21, +99,21,153,21,147,21,159,21,250,21,66,22,74,22,84,22,75,22,44,22,96,22,179,22,113,22,215,21,162,21,200,21, +247,21,55,22,91,22,48,22,18,22,44,22,11,22,147,21,54,21,15,21,203,20,71,20,170,19,34,19,198,18,141,18, +104,18,81,18,52,18,254,17,176,17,49,17,126,16,209,15,36,15,20,14,169,12,120,11,175,10,11,10,160,9,157,9, +172,9,134,9,107,9,111,9,46,9,131,8,163,7,149,6,137,5,239,4,165,4,7,4,15,3,50,2,129,1,11,1, +12,1,22,1,121,0,96,255,56,254,254,252,6,252,211,251,247,251,181,251,34,251,149,250,28,250,207,249,113,249,102,248, +195,246,61,245,43,244,148,243,129,243,149,243,100,243,0,243,122,242,182,241,234,240,73,240,176,239,44,239,221,238,129,238, +7,238,229,237,61,238,189,238,15,239,217,238,14,238,75,237,242,236,171,236,78,236,38,236,75,236,193,236,118,237,207,237, +90,237,159,236,77,236,121,236,249,236,101,237,34,237,86,236,204,235,151,235,18,235,7,234,234,232,102,232,243,232,47,234, +250,234,171,234,200,233,58,233,78,233,163,233,212,233,240,233,33,234,79,234,119,234,183,234,228,234,208,234,214,234,58,235, +153,235,164,235,164,235,183,235,150,235,49,235,182,234,34,234,141,233,90,233,183,233,114,234,85,235,35,236,150,236,212,236, +70,237,203,237,214,237,87,237,159,236,178,235,139,234,132,233,244,232,218,232,40,233,234,233,29,235,133,236,212,237,218,238, +135,239,189,239,97,239,161,238,215,237,86,237,123,237,103,238,195,239,70,241,9,243,11,245,237,246,89,248,37,249,64,249, +195,248,233,247,8,247,155,246,204,246,73,247,235,247,196,248,170,249,184,250,85,252,27,254,42,255,135,255,143,255,34,255, +143,254,128,254,206,254,41,255,209,255,137,0,19,1,90,2,200,4,3,7,59,8,17,9,204,9,86,10,7,11,146,11, +58,11,159,10,231,10,237,11,249,12,194,13,69,14,4,15,160,16,181,18,140,20,27,22,37,23,80,23,116,23,133,24, +254,25,30,27,234,27,86,28,167,28,208,29,198,31,83,33,34,34,169,34,173,34,5,34,105,33,35,33,182,32,16,32, +116,31,223,30,187,30,228,31,65,34,180,36,135,38,185,39,68,40,86,40,149,40,57,41,196,41,243,41,224,41,148,41, +147,41,203,42,8,45,231,46,194,47,244,47,225,47,8,48,212,48,164,49,139,49,188,48,248,47,132,47,125,47,200,47, +219,47,147,47,98,47,131,47,252,47,222,48,196,49,45,50,64,50,51,50,218,49,121,49,134,49,164,49,45,49,61,48, +63,47,105,46,253,45,237,45,146,45,142,44,98,43,184,42,164,42,228,42,37,43,241,42,0,42,190,40,224,39,135,39, +95,39,42,39,221,38,177,38,252,38,114,39,119,39,44,39,223,38,42,38,255,36,1,36,26,35,210,33,171,32,16,32, +94,31,86,30,64,29,222,27,51,26,231,24,201,23,52,22,155,20,134,19,171,18,26,18,14,18,208,17,223,16,195,15, +175,14,87,13,243,11,180,10,79,9,224,7,203,6,7,6,124,5,63,5,241,4,17,4,206,2,190,1,12,1,83,0, +46,255,188,253,104,252,74,251,65,250,75,249,99,248,95,247,41,246,231,244,247,243,150,243,117,243,10,243,34,242,203,240, +95,239,121,238,254,237,20,237,165,235,103,234,120,233,145,232,192,231,200,230,112,229,69,228,135,227,154,226,98,225,78,224, +64,223,64,222,209,221,209,221,164,221,48,221,124,220,161,219,42,219,48,219,8,219,142,218,30,218,183,217,116,217,128,217, +114,217,23,217,222,216,184,216,84,216,26,216,73,216,128,216,186,216,245,216,177,216,235,215,38,215,104,214,184,213,123,213, +150,213,178,213,223,213,253,213,228,213,255,213,81,214,43,214,138,213,1,213,167,212,163,212,42,213,173,213,170,213,163,213, +32,214,24,215,104,216,113,217,105,217,171,216,70,216,107,216,172,216,230,216,59,217,219,217,211,218,199,219,72,220,60,220, +242,219,12,220,218,220,203,221,95,222,237,222,178,223,151,224,208,225,55,227,9,228,53,228,87,228,130,228,155,228,189,228, +153,228,12,228,199,227,30,228,162,228,77,229,85,230,114,231,117,232,131,233,127,234,49,235,139,235,125,235,45,235,254,234, +252,234,50,235,238,235,15,237,30,238,43,239,132,240,30,242,219,243,124,245,149,246,23,247,73,247,108,247,203,247,91,248, +139,248,59,248,10,248,113,248,166,249,171,251,192,253,54,255,69,0,6,1,73,1,155,1,54,2,67,2,154,1,218,0, +15,0,176,255,188,0,127,2,173,3,235,4,232,6,214,8,160,10,142,12,95,13,113,12,68,11,185,10,83,10,22,10, +7,10,190,9,197,9,228,10,170,12,152,14,165,16,16,18,65,18,17,18,86,18,214,18,57,19,104,19,56,19,213,18, +190,18,33,19,194,19,77,20,152,20,185,20,219,20,12,21,65,21,69,21,252,20,166,20,103,20,26,20,246,19,64,20, +164,20,222,20,11,21,248,20,162,20,153,20,197,20,136,20,27,20,206,19,84,19,238,18,2,19,211,18,13,18,162,17, +181,17,167,17,226,17,199,18,153,19,10,20,109,20,109,20,194,19,201,18,125,17,193,15,56,14,82,13,181,12,44,12, +215,11,193,11,245,11,79,12,97,12,28,12,216,11,160,11,18,11,223,9,79,8,29,7,127,6,255,5,119,5,254,4, +89,4,173,3,92,3,231,2,235,1,24,1,128,0,85,255,248,253,72,253,10,253,19,253,155,253,233,253,119,253,253,252, +151,252,207,251,68,251,49,251,120,250,11,249,252,247,99,247,11,247,65,247,91,247,124,246,131,245,115,245,204,245,237,245, +187,245,0,245,251,243,116,243,112,243,81,243,215,242,245,241,200,240,230,239,183,239,234,239,13,240,255,239,184,239,82,239, +18,239,37,239,63,239,204,238,175,237,131,236,233,235,45,236,31,237,208,237,108,237,131,236,41,236,107,236,225,236,64,237, +210,236,95,235,8,234,168,233,222,233,40,234,37,234,147,233,45,233,235,233,105,235,198,236,168,237,140,237,70,236,239,234, +104,234,46,234,171,233,214,232,160,231,92,230,203,229,19,230,179,230,36,231,224,230,187,229,105,228,219,227,64,228,239,228, +36,229,233,228,244,228,188,229,69,231,40,233,46,234,94,233,153,231,89,230,4,230,170,230,60,232,191,233,166,234,222,235, +224,237,35,240,121,242,110,244,206,244,191,243,198,242,86,242,1,242,202,241,131,241,219,240,88,240,122,240,27,241,117,242, +191,244,24,247,153,248,75,249,117,249,110,249,167,249,242,249,220,249,184,249,248,249,136,250,119,251,235,252,118,254,196,255, +27,1,126,2,154,3,138,4,115,5,206,5,97,5,41,5,23,6,183,7,26,9,33,10,39,11,143,12,197,14,116,17, +72,19,200,19,241,19,95,20,235,20,194,21,203,22,60,23,49,23,176,23,230,24,127,26,133,28,133,30,166,31,28,32, +154,32,4,33,9,33,175,32,238,31,237,30,29,30,173,29,192,29,191,30,160,32,191,34,194,36,156,38,5,40,215,40, +71,41,140,41,197,41,37,42,202,42,161,43,153,44,211,45,93,47,199,48,131,49,175,49,194,49,187,49,125,49,53,49, +241,48,189,48,205,48,12,49,107,49,108,50,3,52,26,53,80,53,92,53,138,53,210,53,98,54,167,54,185,53,37,52, +28,51,191,50,211,50,76,51,163,51,122,51,90,51,168,51,21,52,87,52,1,52,181,50,21,49,13,48,120,47,232,46, +127,46,35,46,168,45,143,45,237,45,219,45,56,45,239,44,53,45,119,45,150,45,132,45,203,44,155,43,187,42,51,42, +118,41,111,40,60,39,238,37,16,37,253,36,250,36,59,36,230,34,56,33,36,31,18,29,111,27,229,25,39,24,134,22, +82,21,178,20,175,20,190,20,74,20,186,19,145,19,74,19,81,18,195,16,201,14,143,12,165,10,69,9,11,8,195,6, +133,5,82,4,98,3,3,3,232,2,132,2,190,1,190,0,177,255,226,254,58,254,28,253,71,251,65,249,158,247,139,246, +243,245,143,245,3,245,32,244,6,243,236,241,220,240,171,239,60,238,166,236,31,235,224,233,1,233,66,232,52,231,219,229, +182,228,5,228,101,227,93,226,247,224,138,223,74,222,103,221,17,221,241,220,56,220,206,218,121,217,187,216,122,216,150,216, +217,216,213,216,172,216,239,216,113,217,124,217,1,217,72,216,43,215,191,213,166,212,13,212,162,211,104,211,99,211,36,211, +162,210,93,210,80,210,16,210,178,209,121,209,78,209,57,209,97,209,138,209,127,209,112,209,100,209,12,209,99,208,185,207, +97,207,137,207,15,208,155,208,5,209,87,209,171,209,67,210,37,211,219,211,62,212,169,212,252,212,212,212,165,212,248,212, +107,213,152,213,175,213,194,213,244,213,209,214,72,216,118,217,24,218,181,218,125,219,69,220,3,221,137,221,137,221,62,221, +68,221,240,221,27,223,90,224,82,225,5,226,187,226,144,227,75,228,160,228,138,228,95,228,117,228,196,228,30,229,159,229, +125,230,190,231,64,233,212,234,23,236,201,236,66,237,16,238,40,239,50,240,41,241,23,242,206,242,101,243,42,244,11,245, +201,245,114,246,43,247,251,247,235,248,217,249,160,250,112,251,103,252,58,253,216,253,142,254,125,255,173,0,33,2,112,3, +78,4,26,5,254,5,145,6,201,6,231,6,218,6,227,6,151,7,198,8,210,9,179,10,134,11,84,12,118,13,242,14, +19,16,151,16,248,16,106,17,227,17,118,18,242,18,6,19,217,18,189,18,254,18,226,19,43,21,35,22,172,22,51,23, +224,23,158,24,76,25,150,25,117,25,103,25,165,25,245,25,35,26,6,26,162,25,109,25,173,25,251,25,241,25,165,25, +78,25,32,25,60,25,133,25,203,25,224,25,181,25,170,25,55,26,15,27,143,27,154,27,66,27,127,26,166,25,13,25, +116,24,167,23,213,22,13,22,89,21,251,20,8,21,78,21,148,21,145,21,61,21,19,21,65,21,93,21,55,21,221,20, +7,20,176,18,122,17,209,16,110,16,231,15,27,15,34,14,62,13,202,12,229,12,17,13,142,12,80,11,10,10,42,9, +183,8,155,8,85,8,94,7,5,6,207,4,213,3,76,3,21,3,60,2,162,0,115,255,9,255,192,254,131,254,52,254, +68,253,23,252,114,251,8,251,153,250,140,250,141,250,14,250,103,249,194,248,204,247,197,246,209,245,122,244,7,243,31,242, +134,241,39,241,109,241,201,241,123,241,229,240,79,240,124,239,235,238,222,238,66,238,192,236,140,235,69,235,105,235,141,235, +81,235,97,234,108,233,141,233,168,234,123,235,15,235,107,233,75,231,180,229,98,229,252,229,66,230,166,229,246,228,236,228, +125,229,105,230,74,231,174,231,206,231,218,231,57,231,193,229,25,228,102,226,200,224,57,224,8,225,58,226,61,227,250,227, +40,228,49,228,213,228,168,229,237,229,193,229,48,229,55,228,104,227,210,226,208,225,151,224,210,223,124,223,188,223,241,224, +91,226,218,226,122,226,226,225,116,225,129,225,238,225,22,226,179,225,73,225,151,225,213,226,92,228,57,229,25,229,75,228, +155,227,255,227,73,229,31,230,247,229,152,229,202,229,23,231,128,233,222,235,114,237,255,238,213,240,56,242,30,243,171,243, +75,243,47,242,49,241,82,240,201,239,122,240,224,241,254,242,157,244,78,247,190,249,12,251,155,251,193,251,31,252,35,253, +124,253,34,252,142,250,134,250,249,251,21,254,253,255,32,1,76,2,169,4,169,7,240,9,22,11,85,11,237,10,113,10, +147,10,143,11,12,13,101,14,76,15,49,16,210,17,100,20,10,23,153,24,45,25,215,25,158,26,193,26,104,26,40,26, +61,26,21,27,171,28,254,29,242,30,148,32,213,34,210,36,117,38,166,39,221,39,101,39,198,38,235,37,50,37,30,37, +55,37,69,37,253,37,100,39,216,40,57,42,100,43,50,44,51,45,132,46,37,47,207,46,98,46,95,46,206,46,183,47, +215,48,226,49,238,50,3,52,9,53,222,53,41,54,211,53,104,53,63,53,32,53,195,52,248,51,31,51,63,51,122,52, +188,53,163,54,129,55,20,56,81,56,130,56,12,56,177,54,154,53,17,53,46,52,55,51,219,50,178,50,202,50,172,51, +132,52,143,52,114,52,55,52,60,51,45,50,186,49,24,49,210,47,128,46,120,45,229,44,234,44,228,44,87,44,221,43, +231,43,10,44,247,43,174,43,28,43,82,42,118,41,127,40,119,39,126,38,126,37,99,36,84,35,150,34,63,34,238,33, +35,33,239,31,154,30,27,29,131,27,231,25,255,23,219,21,39,20,37,19,183,18,187,18,125,18,114,17,118,16,65,16, +37,16,136,15,92,14,74,12,186,9,246,7,1,7,221,5,137,4,80,3,229,1,151,0,16,0,255,255,200,255,62,255, +42,254,184,252,138,251,150,250,83,249,211,247,101,246,41,245,90,244,234,243,72,243,48,242,229,240,219,239,96,239,5,239, +246,237,69,236,145,234,252,232,213,231,122,231,14,231,163,229,231,227,158,226,136,225,163,224,23,224,116,223,157,222,221,221, +227,220,148,219,171,218,72,218,196,217,253,216,36,216,76,215,196,214,157,214,109,214,65,214,82,214,43,214,160,213,75,213, +71,213,10,213,123,212,185,211,179,210,211,209,169,209,219,209,148,209,197,208,21,208,238,207,52,208,157,208,216,208,160,208, +12,208,142,207,84,207,81,207,151,207,226,207,180,207,72,207,50,207,80,207,98,207,135,207,145,207,110,207,184,207,127,208, +12,209,87,209,207,209,81,210,203,210,103,211,197,211,204,211,38,212,207,212,32,213,53,213,113,213,206,213,128,214,163,215, +149,216,22,217,162,217,64,218,177,218,64,219,3,220,168,220,76,221,58,222,64,223,33,224,237,224,175,225,92,226,219,226, +41,227,130,227,253,227,78,228,115,228,204,228,104,229,47,230,56,231,86,232,57,233,8,234,239,234,187,235,139,236,183,237, +1,239,232,239,111,240,251,240,207,241,215,242,203,243,132,244,36,245,244,245,49,247,182,248,253,249,231,250,217,251,224,252, +172,253,78,254,14,255,254,255,39,1,102,2,99,3,34,4,247,4,224,5,170,6,88,7,245,7,127,8,17,9,182,9, +123,10,118,11,127,12,107,13,99,14,93,15,37,16,242,16,231,17,149,18,232,18,86,19,217,19,51,20,139,20,219,20, +241,20,27,21,157,21,76,22,53,23,115,24,153,25,105,26,43,27,222,27,50,28,70,28,120,28,212,28,35,29,71,29, +100,29,137,29,135,29,125,29,221,29,146,30,32,31,113,31,124,31,28,31,170,30,130,30,83,30,10,30,5,30,22,30, +252,29,32,30,154,30,243,30,15,31,224,30,44,30,84,29,217,28,83,28,110,27,149,26,250,25,119,25,61,25,97,25, +134,25,122,25,82,25,31,25,252,24,240,24,184,24,10,24,197,22,33,21,197,19,10,19,130,18,218,17,58,17,191,16, +117,16,126,16,160,16,102,16,182,15,165,14,86,13,40,12,81,11,166,10,225,9,233,8,254,7,127,7,26,7,57,6, +52,5,122,4,131,3,50,2,37,1,41,0,225,254,245,253,120,253,161,252,183,251,89,251,243,250,55,250,201,249,120,249, +172,248,204,247,54,247,157,246,3,246,121,245,130,244,252,242,104,241,58,240,161,239,103,239,21,239,163,238,68,238,196,237, +32,237,183,236,105,236,243,235,126,235,240,234,32,234,132,233,55,233,151,232,163,231,0,231,216,230,246,230,240,230,41,230, +219,228,4,228,16,228,213,228,226,229,13,230,209,228,157,227,175,227,83,228,128,228,227,227,121,226,231,224,14,224,209,223, +167,223,105,223,238,222,132,222,32,223,189,224,42,226,198,226,141,226,136,225,128,224,82,224,125,224,25,224,51,223,60,222, +144,221,145,221,82,222,147,223,0,225,244,225,211,225,210,224,187,223,58,223,88,223,61,223,62,222,246,220,87,220,172,220, +233,221,121,223,117,224,16,225,14,226,43,227,248,227,144,228,104,228,34,227,224,225,112,225,109,225,214,225,128,226,122,226, +95,226,233,227,191,230,100,233,168,235,126,237,152,238,178,239,57,241,66,242,98,242,240,241,248,240,10,240,7,240,146,240, +42,241,69,242,251,243,13,246,187,248,106,251,192,252,215,252,178,252,138,252,150,252,36,253,120,253,14,253,207,252,119,253, +196,254,154,0,248,2,111,5,170,7,170,9,82,11,110,12,9,13,147,13,117,14,126,15,82,16,40,17,95,18,17,20, +63,22,98,24,192,25,185,26,241,27,226,28,21,29,8,29,226,28,177,28,55,29,134,30,220,31,82,33,31,35,163,36, +255,37,243,39,4,42,130,43,147,44,225,44,47,44,131,43,73,43,164,42,168,41,43,41,42,41,159,41,200,42,72,44, +230,45,223,47,156,49,112,50,206,50,5,51,212,50,141,50,134,50,112,50,115,50,1,51,232,51,34,53,244,54,208,56, +250,57,166,58,63,59,201,59,8,60,115,59,195,57,186,55,117,54,120,54,121,55,106,56,154,56,161,56,40,57,219,57, +89,58,80,58,55,57,107,55,234,53,150,52,25,51,30,50,206,49,174,49,42,50,99,51,40,52,38,52,67,52,126,52, +53,52,118,51,79,50,174,48,26,47,214,45,140,44,79,43,106,42,208,41,164,41,240,41,255,41,95,41,142,40,14,40, +227,39,193,39,48,39,18,38,206,36,174,35,173,34,189,33,173,32,112,31,77,30,63,29,245,27,110,26,206,24,54,23, +248,21,240,20,120,19,189,17,104,16,90,15,105,14,220,13,81,13,70,12,49,11,57,10,212,8,62,7,227,5,82,4, +155,2,119,1,169,0,183,255,230,254,14,254,219,252,7,252,255,251,215,251,7,251,214,249,80,248,187,246,197,245,48,245, +51,244,206,242,84,241,212,239,153,238,212,237,27,237,27,236,1,235,240,233,216,232,167,231,84,230,244,228,202,227,16,227, +171,226,46,226,95,225,122,224,165,223,191,222,209,221,229,220,193,219,139,218,163,217,187,216,136,215,146,214,20,214,156,213, +53,213,2,213,143,212,248,211,220,211,222,211,112,211,10,211,241,210,186,210,131,210,131,210,46,210,110,209,251,208,251,208, +1,209,240,208,187,208,91,208,32,208,50,208,92,208,154,208,227,208,236,208,197,208,186,208,154,208,46,208,211,207,204,207, +200,207,155,207,94,207,5,207,149,206,140,206,66,207,61,208,202,208,244,208,74,209,18,210,16,211,225,211,81,212,146,212, +8,213,209,213,210,214,225,215,166,216,247,216,55,217,179,217,60,218,193,218,74,219,139,219,146,219,247,219,215,220,208,221, +248,222,98,224,155,225,121,226,57,227,201,227,48,228,231,228,206,229,44,230,242,229,213,229,68,230,38,231,44,232,8,233, +162,233,54,234,19,235,73,236,115,237,255,237,249,237,1,238,97,238,241,238,178,239,165,240,133,241,85,242,122,243,253,244, +128,246,230,247,45,249,45,250,227,250,140,251,56,252,221,252,153,253,96,254,16,255,225,255,5,1,53,2,84,3,130,4, +130,5,49,6,20,7,79,8,65,9,168,9,187,9,120,9,35,9,72,9,169,9,205,9,46,10,55,11,118,12,185,13, +50,15,134,16,103,17,51,18,254,18,90,19,62,19,248,18,183,18,193,18,64,19,244,19,163,20,82,21,11,22,244,22, +40,24,78,25,2,26,96,26,160,26,216,26,63,27,207,27,7,28,165,27,33,27,4,27,95,27,237,27,79,28,42,28, +173,27,159,27,67,28,186,28,71,28,90,27,185,26,151,26,199,26,223,26,134,26,47,26,90,26,142,26,88,26,17,26, +206,25,82,25,5,25,17,25,210,24,50,24,161,23,247,22,59,22,8,22,19,22,121,21,134,20,0,20,208,19,174,19, +160,19,111,19,254,18,134,18,250,17,18,17,253,15,28,15,115,14,187,13,221,12,35,12,187,11,94,11,215,10,50,10, +63,9,5,8,18,7,106,6,118,5,72,4,63,3,43,2,17,1,88,0,203,255,21,255,101,254,187,253,253,252,120,252, +20,252,83,251,105,250,153,249,133,248,70,247,103,246,195,245,41,245,199,244,87,244,181,243,126,243,143,243,1,243,241,241, +12,241,75,240,174,239,72,239,125,238,39,237,13,236,62,235,41,234,50,233,231,232,204,232,101,232,247,231,186,231,166,231, +218,231,70,232,91,232,185,231,183,230,199,229,242,228,97,228,90,228,99,228,241,227,152,227,204,227,241,227,255,227,114,228, +169,228,54,228,13,228,93,228,89,228,99,228,230,228,224,228,15,228,120,227,63,227,60,227,217,227,121,228,48,228,197,227, +245,227,48,228,112,228,246,228,238,228,18,228,92,227,61,227,164,227,153,228,64,229,207,228,55,228,120,228,37,229,211,229, +105,230,101,230,237,229,216,229,6,230,241,229,248,229,73,230,54,230,152,229,15,229,228,228,229,228,250,228,46,229,143,229, +116,230,61,232,102,234,191,235,27,236,58,236,250,235,230,234,181,233,32,233,246,232,77,233,25,234,147,234,21,235,230,236, +136,239,200,241,241,243,2,246,57,247,48,248,104,249,154,249,143,248,204,247,136,247,48,247,59,247,155,247,202,247,190,248, +29,251,155,253,79,255,144,0,98,1,225,1,158,2,64,3,35,3,170,2,91,2,106,2,65,3,184,4,9,6,60,7, +227,8,250,10,71,13,111,15,165,16,201,16,239,16,210,17,7,19,232,19,105,20,17,21,90,22,46,24,41,26,211,27, +224,28,194,29,249,30,236,31,23,32,38,32,79,32,24,32,17,32,229,32,238,33,228,34,69,36,205,37,102,39,173,41, +226,43,174,44,142,44,85,44,203,43,88,43,100,43,238,42,225,41,199,41,227,42,48,44,108,45,87,46,133,46,187,46, +188,47,196,48,24,49,244,48,180,48,201,48,156,49,216,50,2,52,47,53,117,54,175,55,148,56,180,56,53,56,229,55, +218,55,135,55,247,54,100,54,206,53,178,53,98,54,65,55,206,55,36,56,74,56,82,56,59,56,131,55,50,54,27,53, +112,52,4,52,250,51,201,51,219,50,60,50,204,50,145,51,219,51,16,52,9,52,173,51,122,51,24,51,250,49,199,48, +227,47,214,46,229,45,101,45,175,44,196,43,118,43,129,43,30,43,86,42,73,41,19,40,70,39,243,38,119,38,199,37, +87,37,36,37,255,36,225,36,162,36,253,35,209,34,97,33,38,32,6,31,149,29,5,28,117,26,100,24,36,22,182,20, +239,19,27,19,82,18,133,17,125,16,192,15,79,15,72,14,199,12,131,11,63,10,213,8,165,7,95,6,233,4,1,4, +134,3,201,2,28,2,154,1,165,0,161,255,0,255,238,253,88,252,64,251,97,250,250,248,147,247,139,246,131,245,192,244, +121,244,247,243,238,242,174,241,44,240,151,238,113,237,112,236,15,235,154,233,108,232,115,231,189,230,60,230,152,229,188,228, +239,227,72,227,139,226,111,225,26,224,251,222,23,222,37,221,27,220,238,218,167,217,173,216,240,215,222,214,193,213,67,213, +8,213,199,212,244,212,75,213,54,213,39,213,90,213,55,213,211,212,126,212,193,211,167,210,191,209,189,208,135,207,231,206, +214,206,216,206,84,207,52,208,134,208,117,208,163,208,146,208,14,208,170,207,39,207,44,206,97,205,4,205,159,204,96,204, +140,204,214,204,77,205,29,206,202,206,25,207,91,207,137,207,136,207,160,207,213,207,224,207,216,207,248,207,98,208,63,209, +125,210,194,211,211,212,157,213,31,214,126,214,198,214,229,214,244,214,11,215,47,215,137,215,27,216,174,216,103,217,98,218, +60,219,6,220,72,221,185,222,179,223,69,224,134,224,119,224,161,224,22,225,14,225,146,224,97,224,143,224,38,225,122,226, +252,227,254,228,0,230,94,231,162,232,184,233,157,234,213,234,148,234,171,234,34,235,195,235,201,236,9,238,40,239,103,240, +236,241,94,243,161,244,174,245,67,246,144,246,236,246,46,247,85,247,206,247,187,248,238,249,90,251,215,252,44,254,96,255, +121,0,117,1,114,2,74,3,152,3,98,3,11,3,229,2,60,3,44,4,95,5,92,6,9,7,212,7,87,9,114,11, +58,13,54,14,176,14,220,14,217,14,224,14,188,14,70,14,31,14,157,14,86,15,84,16,217,17,100,19,155,20,242,21, +120,23,178,24,138,25,237,25,161,25,21,25,244,24,24,25,15,25,216,24,194,24,57,25,106,26,212,27,198,28,20,29, +244,28,173,28,116,28,44,28,153,27,199,26,233,25,64,25,39,25,175,25,126,26,70,27,238,27,110,28,219,28,28,29, +205,28,249,27,45,27,142,26,216,25,1,25,45,24,164,23,232,23,247,24,7,26,132,26,147,26,125,26,77,26,185,25, +115,24,195,22,60,21,239,19,214,18,61,18,8,18,222,17,18,18,213,18,100,19,68,19,210,18,26,18,214,16,85,15, +225,13,69,12,186,10,208,9,96,9,233,8,124,8,69,8,9,8,203,7,189,7,118,7,113,6,253,4,162,3,85,2, +11,1,236,255,182,254,61,253,51,252,42,252,160,252,203,252,91,252,115,251,185,250,158,250,121,250,143,249,55,248,230,246, +144,245,138,244,34,244,187,243,239,242,67,242,241,241,157,241,62,241,218,240,26,240,243,238,183,237,170,236,1,236,172,235, +35,235,75,234,194,233,171,233,160,233,169,233,234,233,14,234,223,233,115,233,177,232,223,231,151,231,119,231,129,230,0,229, +21,228,248,227,104,228,111,229,95,230,82,230,238,229,77,230,237,230,223,230,68,230,75,229,226,227,184,226,99,226,98,226, +105,226,184,226,240,226,200,226,253,226,210,227,119,228,146,228,80,228,161,227,246,226,30,227,211,227,61,228,68,228,17,228, +186,227,211,227,156,228,42,229,213,228,3,228,50,227,179,226,253,226,222,227,90,228,7,228,138,227,162,227,118,228,134,229, +255,229,152,229,244,228,233,228,194,229,36,231,28,232,213,231,170,230,196,229,140,229,162,229,244,229,162,230,150,231,34,233, +179,235,169,238,13,241,235,242,131,244,133,245,11,246,79,246,163,245,230,243,130,242,104,242,24,243,26,244,54,245,19,246, +71,247,211,249,250,252,8,255,174,255,175,255,141,255,142,255,155,255,57,255,142,254,113,254,60,255,199,0,246,2,113,5, +188,7,201,9,179,11,56,13,11,14,68,14,72,14,101,14,159,14,230,14,78,15,26,16,160,17,9,20,193,22,218,24, +20,26,229,26,162,27,108,28,67,29,220,29,254,29,247,29,54,30,242,30,44,32,164,33,14,35,109,36,220,37,120,39, +113,41,112,43,147,44,160,44,30,44,90,43,124,42,190,41,218,40,151,39,186,38,13,39,136,40,233,42,168,45,169,47, +143,48,61,49,46,50,232,50,23,51,225,50,133,50,84,50,155,50,90,51,82,52,64,53,248,53,121,54,202,54,245,54, +9,55,220,54,92,54,236,53,188,53,136,53,117,53,230,53,143,54,18,55,149,55,248,55,7,56,37,56,70,56,169,55, +111,54,108,53,179,52,42,52,27,52,97,52,161,52,0,53,92,53,70,53,3,53,226,52,114,52,115,51,39,50,185,48, +132,47,235,46,118,46,133,45,89,44,100,43,177,42,75,42,255,41,108,41,192,40,113,40,122,40,181,40,0,41,199,40, +173,39,48,38,235,36,244,35,36,35,77,34,73,33,33,32,8,31,24,30,43,29,15,28,205,26,117,25,213,23,254,21, +116,20,79,19,70,18,125,17,244,16,53,16,100,15,239,14,90,14,38,13,178,11,30,10,62,8,145,6,74,5,196,3, +244,1,110,0,54,255,67,254,208,253,122,253,222,252,99,252,16,252,92,251,77,250,29,249,179,247,58,246,217,244,51,243, +113,241,76,240,177,239,20,239,116,238,207,237,238,236,2,236,59,235,95,234,88,233,65,232,34,231,36,230,86,229,103,228, +68,227,40,226,252,224,168,223,117,222,117,221,115,220,139,219,231,218,88,218,150,217,143,216,133,215,213,214,98,214,212,213, +54,213,190,212,134,212,192,212,75,213,122,213,16,213,106,212,149,211,157,210,229,209,90,209,149,208,208,207,113,207,114,207, +229,207,176,208,58,209,73,209,58,209,51,209,38,209,244,208,82,208,112,207,231,206,151,206,37,206,252,205,64,206,79,206, +52,206,125,206,14,207,169,207,90,208,203,208,209,208,230,208,51,209,126,209,205,209,23,210,77,210,220,210,180,211,33,212, +81,212,1,213,246,213,182,214,84,215,176,215,191,215,24,216,210,216,86,217,159,217,13,218,147,218,64,219,68,220,87,221, +47,222,233,222,171,223,139,224,128,225,61,226,174,226,23,227,119,227,177,227,2,228,129,228,243,228,98,229,255,229,204,230, +181,231,139,232,53,233,3,234,25,235,32,236,9,237,239,237,137,238,3,239,235,239,231,240,117,241,5,242,203,242,97,243, +24,244,70,245,86,246,38,247,64,248,119,249,116,250,123,251,110,252,254,252,125,253,12,254,117,254,4,255,191,255,31,0, +125,0,128,1,174,2,154,3,158,4,137,5,15,6,191,6,202,7,168,8,101,9,64,10,233,10,115,11,77,12,71,13, +35,14,15,15,245,15,154,16,15,17,86,17,124,17,213,17,85,18,152,18,171,18,208,18,33,19,195,19,153,20,71,21, +232,21,202,22,195,23,175,24,131,25,246,25,25,26,85,26,138,26,138,26,180,26,253,26,1,27,26,27,146,27,236,27, +7,28,43,28,36,28,246,27,40,28,152,28,177,28,132,28,69,28,238,27,174,27,167,27,168,27,137,27,26,27,102,26, +28,26,144,26,8,27,18,27,249,26,194,26,96,26,31,26,231,25,128,25,55,25,27,25,212,24,143,24,126,24,80,24, +4,24,181,23,222,22,104,21,17,20,42,19,119,18,246,17,149,17,45,17,239,16,221,16,208,16,7,17,102,17,25,17, +12,16,2,15,48,14,96,13,143,12,140,11,91,10,123,9,229,8,34,8,93,7,222,6,89,6,187,5,56,5,136,4, +136,3,152,2,195,1,173,0,114,255,110,254,176,253,28,253,166,252,68,252,234,251,133,251,19,251,128,250,162,249,167,248, +245,247,87,247,101,246,109,245,186,244,29,244,194,243,217,243,185,243,247,242,11,242,44,241,65,240,126,239,183,238,138,237, +119,236,15,236,228,235,158,235,112,235,50,235,201,234,128,234,81,234,37,234,73,234,161,234,177,234,133,234,59,234,169,233, +253,232,104,232,154,231,173,230,26,230,197,229,133,229,144,229,152,229,50,229,193,228,166,228,187,228,10,229,122,229,106,229, +189,228,36,228,4,228,65,228,148,228,153,228,70,228,32,228,126,228,33,229,106,229,210,228,156,227,195,226,203,226,132,227, +143,228,62,229,21,229,180,228,238,228,135,229,239,229,220,229,13,229,230,227,94,227,154,227,15,228,151,228,9,229,27,229, +67,229,6,230,220,230,18,231,178,230,46,230,6,230,96,230,198,230,0,231,87,231,208,231,83,232,1,233,160,233,6,234, +143,234,13,235,213,234,88,234,100,234,223,234,204,235,115,237,42,239,134,240,80,242,164,244,147,246,224,247,156,248,135,248, +31,248,26,248,21,248,174,247,82,247,39,247,84,247,118,248,88,250,229,251,189,252,32,253,78,253,216,253,5,255,23,0, +113,0,102,0,150,0,143,1,106,3,42,5,223,5,14,6,200,6,66,8,244,9,54,11,221,11,150,12,236,13,116,15, +154,16,75,17,154,17,183,17,28,18,21,19,102,20,161,21,154,22,121,23,78,24,25,25,38,26,108,27,19,28,231,27, +246,27,158,28,59,29,250,29,114,31,53,33,196,34,54,36,93,37,61,38,115,39,150,40,116,40,54,39,241,37,5,37, +152,36,209,36,47,37,116,37,47,38,120,39,223,40,81,42,159,43,82,44,168,44,23,45,95,45,109,45,203,45,151,46, +111,47,63,48,35,49,23,50,35,51,17,52,105,52,26,52,147,51,50,51,248,50,164,50,15,50,147,49,175,49,66,50, +218,50,94,51,212,51,2,52,195,51,65,51,176,50,57,50,6,50,232,49,78,49,41,48,65,47,18,47,47,47,43,47, +23,47,241,46,172,46,162,46,235,46,253,46,130,46,161,45,92,44,188,42,64,41,37,40,9,39,200,37,212,36,121,36, +126,36,131,36,100,36,72,36,90,36,123,36,85,36,177,35,179,34,161,33,139,32,90,31,14,30,199,28,172,27,218,26, +64,26,154,25,203,24,231,23,209,22,82,21,115,19,91,17,62,15,130,13,70,12,48,11,34,10,111,9,41,9,252,8, +164,8,233,7,176,6,80,5,50,4,50,3,227,1,69,0,194,254,172,253,219,252,1,252,31,251,95,250,184,249,17,249, +96,248,119,247,64,246,11,245,22,244,36,243,236,241,131,240,47,239,22,238,39,237,37,236,236,234,177,233,211,232,100,232, +10,232,113,231,150,230,131,229,83,228,98,227,197,226,250,225,204,224,163,223,158,222,151,221,207,220,101,220,218,219,238,218, +231,217,216,216,193,215,226,214,63,214,176,213,92,213,71,213,54,213,85,213,218,213,92,214,153,214,190,214,147,214,210,213, +238,212,56,212,119,211,207,210,137,210,78,210,241,209,227,209,65,210,204,210,116,211,235,211,167,211,229,210,78,210,221,209, +78,209,186,208,60,208,0,208,81,208,237,208,83,209,173,209,74,210,210,210,40,211,168,211,55,212,122,212,177,212,24,213, +122,213,229,213,129,214,249,214,38,215,95,215,190,215,53,216,254,216,253,217,157,218,204,218,0,219,98,219,221,219,124,220, +13,221,78,221,137,221,65,222,111,223,173,224,202,225,216,226,239,227,14,229,246,229,90,230,96,230,151,230,35,231,163,231, +242,231,65,232,166,232,75,233,101,234,175,235,206,236,222,237,198,238,38,239,91,239,1,240,194,240,58,241,180,241,78,242, +0,243,43,244,163,245,193,246,203,247,68,249,153,250,106,251,58,252,5,253,125,253,8,254,205,254,112,255,47,0,65,1, +42,2,218,2,180,3,127,4,4,5,144,5,24,6,134,6,70,7,79,8,44,9,29,10,103,11,163,12,185,13,198,14, +89,15,119,15,222,15,170,16,96,17,235,17,96,18,222,18,189,19,227,20,195,21,68,22,146,22,170,22,201,22,16,23, +26,23,239,22,42,23,212,23,150,24,97,25,12,26,125,26,251,26,124,27,188,27,32,28,248,28,202,29,65,30,111,30, +99,30,126,30,2,31,90,31,68,31,96,31,172,31,137,31,28,31,179,30,24,30,122,29,71,29,61,29,20,29,249,28, +234,28,188,28,137,28,132,28,201,28,12,29,155,28,108,27,102,26,236,25,165,25,123,25,104,25,40,25,227,24,181,24, +74,24,220,23,222,23,200,23,30,23,78,22,134,21,189,20,104,20,87,20,174,19,172,18,24,18,175,17,18,17,115,16, +181,15,201,14,27,14,154,13,233,12,73,12,217,11,54,11,120,10,244,9,117,9,205,8,24,8,89,7,164,6,246,5, +218,4,63,3,211,1,225,0,13,0,42,255,48,254,10,253,6,252,131,251,84,251,30,251,202,250,78,250,142,249,138,248, +115,247,132,246,182,245,220,244,6,244,78,243,157,242,20,242,207,241,125,241,254,240,152,240,25,240,56,239,98,238,202,237, +230,236,156,235,90,234,81,233,202,232,11,233,138,233,177,233,182,233,184,233,129,233,49,233,218,232,29,232,2,231,11,230, +104,229,221,228,69,228,216,227,247,227,131,228,244,228,36,229,17,229,148,228,47,228,142,228,31,229,30,229,193,228,21,228, +232,226,253,225,235,225,4,226,210,225,155,225,90,225,81,225,31,226,77,227,217,227,209,227,181,227,180,227,15,228,149,228, +163,228,86,228,38,228,236,227,153,227,150,227,217,227,22,228,50,228,255,227,170,227,227,227,181,228,144,229,82,230,211,230, +148,230,188,229,4,229,207,228,13,229,72,229,240,228,71,228,31,228,215,228,88,230,28,232,34,233,38,233,243,232,231,232, +227,232,231,232,128,232,143,231,52,231,221,231,174,232,238,233,108,236,107,239,75,242,78,245,142,247,88,248,223,248,91,249, +128,248,187,246,51,245,180,243,201,242,157,243,32,245,20,246,143,247,37,250,182,252,227,254,145,0,212,0,233,255,57,255, +26,255,22,255,237,254,77,254,142,253,241,253,230,255,156,2,59,5,44,7,86,8,111,9,202,10,229,11,161,12,87,13, +18,14,202,14,136,15,49,16,236,16,240,17,30,19,112,20,239,21,31,23,201,23,94,24,3,25,177,25,141,26,54,27, +115,27,40,28,191,29,120,31,56,33,48,35,182,36,204,37,59,39,124,40,181,40,80,40,107,39,225,37,211,36,228,36, +241,36,160,36,178,36,20,37,222,37,188,39,207,41,189,42,57,43,60,44,42,45,143,45,197,45,202,45,205,45,118,46, +177,47,227,48,14,50,126,51,21,53,88,54,198,54,85,54,141,53,235,52,171,52,204,52,201,52,83,52,33,52,214,52, +254,53,253,54,134,55,84,55,160,54,255,53,109,53,136,52,93,51,18,50,224,48,74,48,104,48,175,48,232,48,87,49, +4,50,189,50,54,51,11,51,66,50,58,49,6,48,153,46,30,45,166,43,68,42,75,41,183,40,34,40,152,39,115,39, +145,39,139,39,64,39,196,38,69,38,255,37,227,37,137,37,180,36,177,35,222,34,25,34,42,33,82,32,182,31,220,30, +123,29,199,27,239,25,35,24,172,22,84,21,192,19,32,18,139,16,217,14,123,13,215,12,76,12,114,11,181,10,18,10, +31,9,31,8,53,7,217,5,4,4,62,2,158,0,42,255,74,254,250,253,171,253,22,253,97,252,196,251,82,251,229,250, +48,250,247,248,64,247,115,245,7,244,238,242,212,241,186,240,179,239,186,238,255,237,144,237,250,236,237,235,168,234,123,233, +113,232,100,231,34,230,211,228,208,227,18,227,129,226,51,226,223,225,38,225,59,224,54,223,202,221,62,220,19,219,15,218, +249,216,1,216,251,214,237,213,127,213,182,213,232,213,8,214,42,214,6,214,236,213,86,214,218,214,20,215,47,215,243,214, +70,214,202,213,133,213,209,212,246,211,143,211,97,211,71,211,124,211,175,211,158,211,161,211,196,211,209,211,244,211,32,212, +220,211,51,211,129,210,238,209,186,209,222,209,192,209,81,209,63,209,154,209,254,209,145,210,105,211,40,212,201,212,129,213, +37,214,161,214,44,215,187,215,31,216,115,216,190,216,232,216,30,217,164,217,107,218,79,219,71,220,54,221,241,221,140,222, +56,223,224,223,61,224,96,224,171,224,74,225,50,226,104,227,193,228,223,229,197,230,179,231,149,232,51,233,137,233,124,233, +0,233,125,232,94,232,163,232,58,233,1,234,199,234,205,235,103,237,34,239,114,240,134,241,126,242,13,243,92,243,182,243, +219,243,202,243,9,244,157,244,91,245,170,246,134,248,57,250,163,251,28,253,112,254,104,255,42,0,144,0,136,0,149,0, +227,0,63,1,227,1,210,2,123,3,241,3,187,4,162,5,95,6,49,7,248,7,125,8,54,9,62,10,243,10,58,11, +98,11,109,11,177,11,160,12,182,13,82,14,187,14,80,15,40,16,83,17,84,18,115,18,0,18,190,17,206,17,32,18, +162,18,241,18,22,19,167,19,180,20,217,21,249,22,218,23,64,24,131,24,235,24,60,25,104,25,132,25,112,25,99,25, +184,25,56,26,157,26,228,26,236,26,230,26,65,27,164,27,99,27,178,26,250,25,52,25,148,24,64,24,206,23,57,23, +253,22,28,23,82,23,127,23,76,23,166,22,9,22,165,21,60,21,220,20,126,20,5,20,206,19,0,20,34,20,9,20, +217,19,111,19,3,19,224,18,110,18,89,17,90,16,170,15,243,14,127,14,75,14,156,13,177,12,85,12,40,12,157,11, +243,10,65,10,138,9,51,9,248,8,46,8,15,7,30,6,82,5,182,4,62,4,121,3,127,2,208,1,76,1,186,0, +67,0,168,255,164,254,156,253,195,252,207,251,187,250,156,249,90,248,70,247,193,246,160,246,160,246,145,246,47,246,164,245, +95,245,44,245,176,244,40,244,173,243,238,242,249,241,26,241,85,240,160,239,23,239,213,238,220,238,217,238,104,238,167,237, +212,236,215,235,194,234,192,233,144,232,60,231,123,230,142,230,246,230,88,231,141,231,130,231,149,231,16,232,111,232,16,232, +17,231,30,230,208,229,49,230,204,230,49,231,41,231,192,230,102,230,79,230,28,230,186,229,131,229,91,229,73,229,221,229, +201,230,8,231,162,230,29,230,106,229,216,228,248,228,74,229,89,229,173,229,84,230,210,230,96,231,31,232,144,232,220,232, +120,233,239,233,228,233,177,233,99,233,231,232,144,232,99,232,18,232,165,231,56,231,212,230,230,230,188,231,252,232,16,234, +146,234,133,234,108,234,146,234,177,234,153,234,90,234,8,234,239,233,62,234,183,234,92,235,99,236,123,237,108,238,100,239, +24,240,87,240,158,240,182,240,8,240,74,239,54,239,89,239,172,239,127,240,86,241,137,242,29,245,25,248,36,250,234,251, +136,253,212,253,97,253,72,253,207,252,235,251,174,251,147,251,39,251,228,251,10,254,15,0,173,1,34,3,175,3,133,3, +182,3,248,3,158,3,0,3,116,2,50,2,186,2,239,3,93,5,10,7,180,8,243,9,81,11,80,13,106,15,4,17, +245,17,84,18,167,18,52,19,156,19,233,19,125,20,71,21,110,22,47,24,182,25,102,26,236,26,158,27,28,28,128,28, +184,28,138,28,188,28,188,29,172,30,133,31,7,33,190,34,44,36,182,37,255,38,138,39,12,40,135,40,79,40,23,40, +85,40,211,39,140,38,228,37,239,37,86,38,127,39,200,40,57,41,160,41,185,42,193,43,90,44,184,44,149,44,57,44, +122,44,36,45,154,45,8,46,198,46,242,47,124,49,208,50,112,51,155,51,161,51,173,51,232,51,213,51,8,51,69,50, +34,50,35,50,44,50,91,50,15,50,63,49,219,48,211,48,132,48,32,48,180,47,248,46,129,46,183,46,205,46,63,46, +104,45,151,44,76,44,238,44,174,45,172,45,76,45,26,45,247,44,183,44,4,44,144,42,231,40,173,39,176,38,189,37, +11,37,121,36,207,35,62,35,220,34,126,34,25,34,177,33,62,33,224,32,172,32,119,32,249,31,17,31,252,29,0,29, +235,27,130,26,245,24,116,23,29,22,66,21,193,20,252,19,221,18,171,17,100,16,73,15,145,14,143,13,243,11,162,10, +212,9,196,8,128,7,122,6,99,5,61,4,129,3,191,2,122,1,93,0,225,255,128,255,228,254,57,254,128,253,184,252, +245,251,39,251,74,250,118,249,157,248,175,247,185,246,187,245,179,244,144,243,62,242,230,240,204,239,229,238,8,238,48,237, +94,236,174,235,50,235,168,234,224,233,26,233,121,232,232,231,120,231,250,230,37,230,64,229,134,228,146,227,83,226,48,225, +41,224,59,223,160,222,23,222,120,221,88,221,179,221,220,221,225,221,229,221,105,221,168,220,105,220,89,220,238,219,139,219, +82,219,15,219,14,219,72,219,65,219,60,219,123,219,102,219,243,218,186,218,148,218,70,218,37,218,15,218,174,217,112,217, +140,217,146,217,114,217,85,217,29,217,247,216,9,217,226,216,118,216,57,216,11,216,192,215,197,215,42,216,154,216,63,217, +36,218,228,218,148,219,116,220,29,221,77,221,89,221,95,221,69,221,50,221,69,221,127,221,249,221,190,222,160,223,97,224, +210,224,26,225,145,225,39,226,154,226,9,227,133,227,238,227,121,228,75,229,248,229,105,230,251,230,144,231,239,231,87,232, +210,232,38,233,116,233,188,233,195,233,219,233,81,234,193,234,24,235,187,235,129,236,64,237,77,238,103,239,0,240,132,240, +112,241,63,242,151,242,180,242,139,242,78,242,166,242,124,243,55,244,255,244,42,246,121,247,188,248,229,249,181,250,68,251, +231,251,88,252,91,252,89,252,112,252,85,252,77,252,193,252,111,253,46,254,37,255,29,0,232,0,216,1,232,2,159,3, +251,3,86,4,184,4,10,5,54,5,29,5,254,4,67,5,209,5,85,6,219,6,111,7,243,7,123,8,3,9,75,9, +101,9,174,9,55,10,204,10,43,11,40,11,12,11,80,11,214,11,72,12,185,12,52,13,152,13,16,14,202,14,147,15, +76,16,230,16,23,17,216,16,129,16,60,16,26,16,62,16,98,16,58,16,24,16,66,16,144,16,244,16,62,17,244,16, +74,16,247,15,249,15,222,15,158,15,65,15,199,14,128,14,144,14,185,14,201,14,152,14,36,14,211,13,209,13,205,13, +185,13,173,13,113,13,23,13,237,12,150,12,219,11,90,11,51,11,233,10,141,10,58,10,141,9,202,8,143,8,150,8, +137,8,157,8,180,8,158,8,149,8,99,8,161,7,188,6,248,5,238,4,195,3,236,2,52,2,143,1,82,1,68,1, +50,1,112,1,187,1,118,1,203,0,6,0,28,255,78,254,177,253,191,252,122,251,122,250,209,249,88,249,17,249,184,248, +74,248,84,248,195,248,229,248,151,248,4,248,34,247,74,246,223,245,140,245,243,244,90,244,11,244,238,243,189,243,65,243, +173,242,72,242,221,241,57,241,147,240,227,239,3,239,85,238,46,238,82,238,161,238,18,239,92,239,116,239,160,239,188,239, +135,239,53,239,229,238,115,238,212,237,26,237,112,236,37,236,76,236,136,236,120,236,18,236,204,235,35,236,204,236,33,237, +52,237,91,237,136,237,211,237,46,238,225,237,200,236,205,235,89,235,52,235,129,235,17,236,54,236,36,236,140,236,59,237, +210,237,104,238,177,238,89,238,206,237,155,237,234,237,186,238,125,239,102,239,167,238,23,238,230,237,184,237,81,237,154,236, +198,235,98,235,189,235,129,236,22,237,75,237,123,237,247,237,164,238,65,239,124,239,6,239,44,238,154,237,112,237,137,237, +230,237,63,238,99,238,199,238,144,239,88,240,32,241,199,241,196,241,125,241,164,241,241,241,170,242,212,244,155,247,111,249, +204,250,89,252,88,253,205,253,16,254,67,253,164,251,236,250,11,251,237,250,18,251,198,251,81,252,62,253,75,255,92,1, +113,2,223,2,204,2,97,2,77,2,111,2,42,2,198,1,196,1,54,2,88,3,30,5,228,6,72,8,70,9,251,9, +231,10,55,12,76,13,211,13,33,14,140,14,124,15,4,17,97,18,49,19,228,19,127,20,3,21,249,21,22,23,144,23, +217,23,124,24,11,25,129,25,21,26,111,26,244,26,87,28,216,29,231,30,70,32,207,33,192,34,175,35,163,36,118,36, +129,35,230,34,96,34,203,33,136,33,214,32,157,31,149,31,21,33,185,34,52,36,173,37,153,38,70,39,86,40,37,41, +56,41,10,41,171,40,45,40,71,40,33,41,88,42,215,43,79,45,73,46,219,46,31,47,12,47,227,46,115,46,120,45, +188,44,177,44,155,44,170,44,153,45,130,46,164,46,224,46,90,47,82,47,8,47,167,46,162,45,123,44,237,43,108,43, +207,42,179,42,208,42,206,42,45,43,192,43,247,43,32,44,34,44,71,43,248,41,0,41,42,40,79,39,159,38,183,37, +135,36,191,35,111,35,45,35,39,35,106,35,138,35,114,35,69,35,4,35,213,34,171,34,21,34,11,33,1,32,52,31, +134,30,184,29,194,28,225,27,23,27,38,26,57,25,102,24,28,23,76,21,150,19,24,18,214,16,55,16,189,15,179,14, +221,13,201,13,135,13,216,12,109,12,242,11,253,10,22,10,17,9,92,7,178,5,189,4,235,3,17,3,133,2,230,1, +13,1,152,0,120,0,13,0,68,255,57,254,231,252,151,251,121,250,78,249,34,248,78,247,223,246,144,246,22,246,80,245, +109,244,154,243,179,242,146,241,76,240,30,239,74,238,205,237,81,237,176,236,250,235,61,235,169,234,76,234,178,233,152,232, +74,231,247,229,184,228,218,227,34,227,15,226,246,224,73,224,226,223,222,223,80,224,121,224,37,224,42,224,136,224,137,224, +73,224,0,224,115,223,224,222,132,222,241,221,49,221,183,220,76,220,227,219,253,219,95,220,123,220,133,220,153,220,107,220, +32,220,211,219,46,219,78,218,152,217,20,217,203,216,182,216,121,216,60,216,107,216,157,216,129,216,127,216,119,216,27,216, +28,216,189,216,9,217,199,216,180,216,252,216,120,217,38,218,147,218,126,218,115,218,181,218,11,219,110,219,214,219,45,220, +172,220,72,221,174,221,9,222,110,222,122,222,83,222,112,222,167,222,241,222,181,223,185,224,149,225,134,226,146,227,112,228, +64,229,227,229,221,229,104,229,237,228,71,228,192,227,207,227,254,227,14,228,153,228,176,229,236,230,77,232,124,233,0,234, +103,234,37,235,172,235,214,235,255,235,255,235,248,235,143,236,140,237,104,238,113,239,195,240,246,241,34,243,80,244,6,245, +110,245,8,246,143,246,211,246,51,247,181,247,73,248,53,249,51,250,187,250,46,251,11,252,253,252,180,253,60,254,151,254, +246,254,164,255,111,0,18,1,178,1,113,2,73,3,59,4,29,5,190,5,22,6,10,6,169,5,153,5,56,6,16,7, +172,7,249,7,26,8,169,8,15,10,139,11,51,12,81,12,155,12,41,13,208,13,81,14,101,14,54,14,75,14,230,14, +4,16,107,17,146,18,54,19,181,19,120,20,142,21,171,22,22,23,107,22,106,21,248,20,223,20,121,20,185,19,241,18, +137,18,226,18,202,19,151,20,12,21,118,21,10,22,165,22,250,22,219,22,118,22,253,21,77,21,93,20,112,19,189,18, +121,18,218,18,138,19,226,19,245,19,58,20,175,20,40,21,166,21,219,21,108,21,151,20,191,19,14,19,173,18,125,18, +18,18,140,17,112,17,160,17,181,17,166,17,80,17,158,16,14,16,224,15,140,15,224,14,64,14,190,13,61,13,210,12, +104,12,225,11,119,11,21,11,86,10,100,9,166,8,252,7,80,7,188,6,5,6,9,5,33,4,89,3,117,2,177,1, +80,1,251,0,124,0,35,0,29,0,66,0,84,0,15,0,110,255,185,254,20,254,92,253,131,252,145,251,133,250,143,249, +254,248,195,248,104,248,166,247,210,246,97,246,68,246,26,246,178,245,255,244,16,244,76,243,5,243,24,243,54,243,12,243, +68,242,22,241,60,240,219,239,122,239,235,238,71,238,136,237,217,236,144,236,168,236,230,236,39,237,54,237,237,236,121,236, +49,236,83,236,190,236,198,236,246,235,188,234,193,233,75,233,116,233,7,234,90,234,16,234,130,233,62,233,190,233,242,234, +219,235,153,235,176,234,47,234,118,234,63,235,219,235,121,235,35,234,198,232,10,232,1,232,105,232,129,232,164,231,77,230, +140,229,193,229,150,230,99,231,88,231,84,230,96,229,137,229,157,230,167,231,6,232,188,231,46,231,183,230,85,230,251,229, +214,229,229,229,2,230,117,230,124,231,130,232,235,232,234,232,199,232,159,232,220,232,136,233,30,234,239,234,196,236,13,239, +191,240,252,241,1,243,152,243,31,244,175,244,74,244,217,242,186,241,129,241,217,241,194,242,218,243,133,244,82,245,230,246, +168,248,44,250,135,251,28,252,142,251,207,250,114,250,255,249,82,249,205,248,202,248,185,249,178,251,2,254,15,0,210,1, +101,3,251,4,173,6,254,7,130,8,155,8,234,8,180,9,231,10,59,12,104,13,80,14,231,14,102,15,66,16,110,17, +99,18,7,19,143,19,29,20,245,20,255,21,190,22,112,23,169,24,4,26,18,27,55,28,123,29,125,30,110,31,82,32, +168,32,133,32,31,32,61,31,108,30,102,30,120,30,42,30,135,30,240,31,152,33,88,35,53,37,140,38,93,39,37,40, +169,40,209,40,12,41,36,41,202,40,156,40,46,41,92,42,207,43,40,45,60,46,87,47,129,48,89,49,189,49,150,49, +230,48,105,48,135,48,164,48,150,48,193,48,219,48,207,48,82,49,52,50,155,50,127,50,228,49,151,48,105,47,19,47, +7,47,6,47,119,47,249,47,78,48,245,48,171,49,227,49,4,50,233,49,172,48,193,46,80,45,117,44,3,44,232,43, +126,43,172,42,76,42,96,42,79,42,48,42,251,41,79,41,182,40,206,40,23,41,12,41,196,40,36,40,51,39,105,38, +194,37,216,36,203,35,244,34,59,34,74,33,5,32,157,30,65,29,212,27,71,26,200,24,100,23,68,22,181,21,103,21, +194,20,237,19,28,19,21,18,46,17,185,16,227,15,60,14,161,12,116,11,109,10,181,9,25,9,242,7,177,6,25,6, +192,5,71,5,251,4,166,4,228,3,249,2,223,1,62,0,97,254,185,252,72,251,30,250,54,249,63,248,89,247,198,246, +37,246,51,245,48,244,20,243,184,241,117,240,142,239,209,238,26,238,106,237,184,236,255,235,52,235,83,234,106,233,76,232, +197,230,14,229,99,227,207,225,155,224,240,223,122,223,25,223,229,222,154,222,45,222,236,221,164,221,31,221,192,220,139,220, +28,220,175,219,103,219,205,218,17,218,185,217,92,217,175,216,48,216,213,215,71,215,234,214,222,214,159,214,62,214,20,214, +207,213,71,213,207,212,110,212,27,212,5,212,255,211,170,211,24,211,135,210,27,210,217,209,151,209,76,209,43,209,19,209, +234,208,26,209,183,209,64,210,166,210,39,211,161,211,35,212,228,212,141,213,206,213,197,213,116,213,254,212,204,212,201,212, +178,212,223,212,114,213,42,214,54,215,155,216,198,217,174,218,120,219,166,219,95,219,123,219,195,219,193,219,6,220,170,220, +16,221,111,221,255,221,53,222,77,222,238,222,150,223,228,223,102,224,21,225,145,225,50,226,253,226,144,227,38,228,207,228, +22,229,87,229,35,230,26,231,1,232,11,233,217,233,81,234,32,235,85,236,103,237,95,238,50,239,141,239,196,239,86,240, +25,241,242,241,239,242,245,243,43,245,170,246,220,247,145,248,84,249,43,250,181,250,32,251,137,251,190,251,248,251,115,252, +12,253,210,253,213,254,211,255,221,0,58,2,166,3,203,4,152,5,3,6,88,6,0,7,170,7,236,7,36,8,152,8, +72,9,111,10,195,11,123,12,191,12,54,13,204,13,124,14,135,15,119,16,224,16,61,17,218,17,157,18,178,19,226,20, +108,21,85,21,63,21,115,21,24,22,21,23,206,23,15,24,69,24,145,24,0,25,200,25,136,26,222,26,43,27,144,27, +174,27,178,27,199,27,105,27,148,26,235,25,138,25,100,25,186,25,88,26,207,26,47,27,124,27,158,27,220,27,70,28, +123,28,125,28,119,28,49,28,199,27,156,27,125,27,35,27,202,26,152,26,148,26,233,26,92,27,122,27,103,27,86,27, +0,27,88,26,176,25,20,25,109,24,194,23,247,22,15,22,102,21,47,21,48,21,28,21,209,20,97,20,1,20,195,19, +133,19,24,19,80,18,56,17,31,16,69,15,174,14,52,14,134,13,148,12,202,11,69,11,177,10,11,10,90,9,84,8, +47,7,103,6,171,5,184,4,12,4,171,3,34,3,193,2,202,2,165,2,23,2,86,1,39,0,187,254,188,253,217,252, +108,251,229,249,201,248,0,248,172,247,192,247,131,247,199,246,8,246,92,245,174,244,245,243,194,242,19,241,188,239,9,239, +142,238,70,238,35,238,161,237,229,236,117,236,19,236,112,235,6,235,21,235,38,235,206,234,249,233,206,232,197,231,94,231, +136,231,170,231,73,231,149,230,26,230,13,230,49,230,19,230,68,229,19,228,147,227,31,228,200,228,183,228,239,227,237,226, +148,226,103,227,157,228,33,229,210,228,3,228,59,227,69,227,13,228,113,228,220,227,165,226,93,225,209,224,94,225,30,226, +33,226,159,225,23,225,237,224,152,225,195,226,108,227,76,227,176,226,171,225,171,224,102,224,186,224,22,225,83,225,134,225, +240,225,213,226,213,227,88,228,121,228,134,228,163,228,39,229,16,230,176,230,202,230,193,230,175,230,148,230,160,230,153,230, +70,230,43,230,206,230,10,232,134,233,233,234,0,236,48,237,219,238,198,240,134,242,203,243,104,244,209,244,135,245,3,246, +184,245,58,245,38,245,111,245,50,246,113,247,174,248,223,249,123,251,51,253,75,254,185,254,209,254,198,254,223,254,48,255, +96,255,103,255,237,255,112,1,162,3,191,5,66,7,72,8,114,9,89,11,215,13,240,15,230,16,61,17,243,17,62,19, +151,20,129,21,223,21,9,22,130,22,107,23,117,24,69,25,161,25,191,25,48,26,41,27,101,28,180,29,12,31,97,32, +206,33,76,35,120,36,88,37,112,38,187,39,176,40,33,41,34,41,235,40,254,40,126,41,206,41,163,41,110,41,149,41, +59,42,95,43,147,44,83,45,179,45,12,46,123,46,6,47,150,47,235,47,27,48,152,48,151,49,235,50,64,52,57,53, +218,53,151,54,153,55,115,56,189,56,134,56,25,56,176,55,92,55,28,55,238,54,203,54,205,54,49,55,216,55,56,56, +40,56,7,56,233,55,123,55,165,54,155,53,151,52,4,52,55,52,203,52,246,52,170,52,163,52,67,53,39,54,162,54, +60,54,1,53,162,51,184,50,22,50,70,49,59,48,251,46,144,45,114,44,245,43,167,43,26,43,138,42,58,42,36,42, +44,42,254,41,81,41,135,40,30,40,218,39,46,39,241,37,106,36,16,35,36,34,89,33,96,32,82,31,60,30,255,28, +177,27,97,26,232,24,108,23,18,22,147,20,225,18,102,17,33,16,202,14,163,13,248,12,109,12,175,11,224,10,3,10, +242,8,185,7,80,6,132,4,144,2,8,1,37,0,169,255,63,255,148,254,135,253,107,252,170,251,39,251,105,250,48,249, +149,247,213,245,65,244,247,242,174,241,44,240,168,238,98,237,78,236,101,235,173,234,6,234,77,233,129,232,141,231,101,230, +73,229,127,228,218,227,6,227,15,226,42,225,65,224,27,223,178,221,26,220,112,218,250,216,232,215,23,215,101,214,200,213, +17,213,56,212,172,211,159,211,159,211,93,211,244,210,129,210,44,210,26,210,253,209,123,209,207,208,70,208,193,207,29,207, +104,206,209,205,173,205,253,205,32,206,190,205,59,205,234,204,203,204,226,204,235,204,133,204,238,203,155,203,112,203,82,203, +104,203,123,203,66,203,3,203,247,202,244,202,35,203,194,203,100,204,171,204,241,204,100,205,186,205,27,206,235,206,196,207, +27,208,45,208,74,208,67,208,52,208,104,208,128,208,56,208,61,208,15,209,85,210,185,211,8,213,242,213,190,214,249,215, +62,217,230,217,34,218,62,218,62,218,132,218,60,219,235,219,141,220,144,221,177,222,151,223,134,224,125,225,38,226,172,226, +53,227,128,227,157,227,192,227,225,227,94,228,159,229,40,231,119,232,198,233,39,235,111,236,211,237,57,239,1,240,54,240, +119,240,230,240,114,241,64,242,45,243,234,243,141,244,91,245,116,246,227,247,139,249,33,251,110,252,120,253,115,254,125,255, +115,0,43,1,162,1,204,1,218,1,81,2,59,3,27,4,224,4,191,5,152,6,125,7,200,8,58,10,105,11,127,12, +135,13,57,14,190,14,80,15,171,15,212,15,44,16,157,16,234,16,67,17,218,17,167,18,155,19,146,20,121,21,97,22, +49,23,197,23,61,24,166,24,238,24,63,25,161,25,207,25,213,25,235,25,252,25,36,26,173,26,104,27,0,28,131,28, +236,28,58,29,190,29,115,30,240,30,44,31,79,31,79,31,81,31,104,31,53,31,172,30,27,30,130,29,238,28,150,28, +43,28,131,27,50,27,91,27,136,27,202,27,38,28,45,28,34,28,125,28,158,28,30,28,146,27,7,27,48,26,138,25, +62,25,178,24,16,24,232,23,255,23,28,24,93,24,81,24,144,23,142,22,181,21,220,20,234,19,226,18,207,17,238,16, +88,16,226,15,128,15,29,15,135,14,232,13,128,13,26,13,131,12,210,11,249,10,237,9,219,8,237,7,53,7,182,6, +49,6,132,5,227,4,95,4,202,3,3,3,228,1,118,0,21,255,208,253,116,252,58,251,77,250,126,249,1,249,236,248, +140,248,206,247,121,247,121,247,86,247,96,247,100,247,142,246,60,245,40,244,249,242,168,241,218,240,70,240,110,239,180,238, +34,238,97,237,207,236,133,236,247,235,95,235,42,235,206,234,253,233,35,233,62,232,61,231,160,230,89,230,216,229,41,229, +176,228,154,228,2,229,158,229,209,229,147,229,78,229,81,229,240,229,5,231,136,231,208,230,92,229,247,227,59,227,89,227, +181,227,176,227,135,227,147,227,197,227,26,228,134,228,233,228,104,229,249,229,49,230,247,229,107,229,138,228,205,227,178,227, +212,227,14,228,244,228,76,230,60,231,191,231,253,231,209,231,201,231,65,232,80,232,130,231,151,230,232,229,102,229,117,229, +245,229,47,230,55,230,168,230,135,231,137,232,109,233,225,233,220,233,199,233,28,234,2,235,23,236,205,236,38,237,97,237, +112,237,127,237,206,237,20,238,55,238,144,238,217,238,198,238,0,239,208,239,160,240,117,241,195,242,83,244,251,245,170,247, +206,248,116,249,107,250,127,251,1,252,48,252,42,252,178,251,141,251,97,252,137,253,167,254,214,255,134,0,195,0,172,1, +64,3,116,4,20,5,46,5,181,4,131,4,48,5,203,5,172,5,136,5,246,5,33,7,46,9,147,11,130,13,20,15, +176,16,66,18,193,19,23,21,189,21,153,21,130,21,38,22,39,23,219,23,76,24,223,24,159,25,115,26,84,27,214,27, +188,27,209,27,157,28,104,29,199,29,68,30,28,31,91,32,45,34,199,35,63,36,107,36,110,37,228,38,41,40,253,40, +238,40,79,40,74,40,218,40,13,41,201,40,104,40,27,40,90,40,39,41,187,41,238,41,72,42,213,42,111,43,18,44, +114,44,193,44,180,45,4,47,220,47,89,48,203,48,4,49,80,49,7,50,130,50,69,50,225,49,232,49,79,50,194,50, +202,50,64,50,160,49,126,49,245,49,115,50,17,50,209,48,226,47,242,47,130,48,223,48,134,48,107,47,117,46,90,46, +140,46,139,46,152,46,149,46,100,46,159,46,86,47,175,47,87,47,122,46,36,45,206,43,14,43,144,42,221,41,36,41, +120,40,183,39,13,39,118,38,177,37,234,36,93,36,178,35,157,34,104,33,157,32,125,32,175,32,134,32,191,31,185,30, +9,30,244,29,4,30,97,29,236,27,61,26,187,24,123,23,93,22,221,20,217,18,16,17,249,15,63,15,159,14,247,13, +5,13,251,11,59,11,145,10,182,9,189,8,149,7,64,6,26,5,25,4,3,3,11,2,39,1,1,0,214,254,222,253, +188,252,151,251,251,250,145,250,228,249,66,249,165,248,198,247,6,247,102,246,9,245,255,242,84,241,58,240,40,239,4,238, +226,236,197,235,219,234,51,234,153,233,20,233,198,232,155,232,90,232,214,231,36,231,144,230,6,230,15,229,178,227,90,226, +31,225,12,224,80,223,172,222,193,221,206,220,53,220,219,219,162,219,152,219,133,219,8,219,29,218,30,217,103,216,19,216, +245,215,198,215,98,215,242,214,199,214,0,215,105,215,175,215,136,215,254,214,160,214,217,214,78,215,144,215,163,215,106,215, +213,214,92,214,84,214,107,214,106,214,98,214,56,214,255,213,250,213,14,214,18,214,57,214,92,214,50,214,30,214,132,214, +20,215,138,215,230,215,237,215,175,215,201,215,98,216,17,217,159,217,247,217,27,218,123,218,93,219,85,220,238,220,24,221, +235,220,200,220,26,221,165,221,252,221,81,222,217,222,120,223,102,224,212,225,47,227,249,227,132,228,22,229,135,229,1,230, +206,230,151,231,226,231,221,231,246,231,86,232,19,233,21,234,225,234,63,235,168,235,117,236,89,237,0,238,112,238,163,238, +157,238,183,238,37,239,158,239,252,239,130,240,61,241,246,241,203,242,252,243,84,245,97,246,19,247,157,247,39,248,195,248, +101,249,226,249,61,250,185,250,114,251,75,252,44,253,244,253,107,254,151,254,195,254,28,255,157,255,47,0,170,0,255,0, +103,1,17,2,238,2,213,3,168,4,103,5,75,6,107,7,96,8,201,8,201,8,180,8,180,8,216,8,243,8,191,8, +100,8,97,8,211,8,117,9,17,10,125,10,174,10,2,11,191,11,120,12,157,12,80,12,14,12,32,12,153,12,57,13, +111,13,27,13,221,12,49,13,9,14,42,15,26,16,97,16,127,16,86,17,161,18,117,19,154,19,38,19,55,18,116,17, +47,17,167,16,159,15,226,14,154,14,93,14,102,14,193,14,225,14,229,14,85,15,220,15,17,16,64,16,137,16,188,16, +212,16,158,16,229,15,16,15,123,14,7,14,195,13,200,13,202,13,187,13,233,13,42,14,64,14,92,14,127,14,111,14, +74,14,20,14,138,13,205,12,52,12,176,11,57,11,240,10,156,10,11,10,155,9,144,9,172,9,171,9,130,9,44,9, +176,8,56,8,231,7,157,7,37,7,166,6,79,6,214,5,11,5,74,4,167,3,206,2,234,1,53,1,82,0,49,255, +93,254,247,253,205,253,239,253,60,254,101,254,123,254,120,254,31,254,165,253,86,253,255,252,149,252,75,252,237,251,75,251, +161,250,15,250,172,249,161,249,133,249,225,248,28,248,150,247,19,247,162,246,119,246,67,246,244,245,205,245,139,245,219,244, +8,244,74,243,184,242,139,242,90,242,106,241,36,240,116,239,125,239,11,240,227,240,102,241,67,241,243,240,221,240,7,241, +103,241,171,241,121,241,242,240,101,240,3,240,239,239,231,239,154,239,62,239,1,239,195,238,202,238,59,239,125,239,117,239, +186,239,54,240,132,240,203,240,228,240,119,240,19,240,45,240,47,240,206,239,92,239,221,238,120,238,140,238,165,238,57,238, +214,237,15,238,161,238,55,239,122,239,19,239,91,238,225,237,158,237,131,237,165,237,169,237,116,237,140,237,245,237,8,238, +154,237,6,237,170,236,230,236,199,237,183,238,57,239,121,239,210,239,68,240,153,240,194,240,208,240,216,240,56,241,119,242, +104,244,94,246,40,248,154,249,34,250,250,249,14,250,87,250,76,250,234,249,15,249,198,247,29,247,131,247,2,248,101,248, +77,249,113,250,164,251,125,253,94,255,16,0,245,255,162,255,174,254,156,253,147,253,57,254,213,254,175,255,221,0,42,2, +248,3,50,6,232,7,222,8,146,9,42,10,207,10,177,11,90,12,89,12,14,12,11,12,152,12,210,13,72,15,42,16, +98,16,172,16,129,17,147,18,116,19,24,20,154,20,18,21,207,21,5,23,102,24,157,25,168,26,103,27,214,27,94,28, +248,28,36,29,253,28,183,28,234,27,191,26,10,26,187,25,116,25,185,25,170,26,155,27,172,28,95,30,67,32,221,33, +46,35,229,35,232,35,225,35,4,36,238,35,211,35,14,36,104,36,240,36,27,38,176,39,208,40,5,41,150,40,40,40, +49,40,142,40,154,40,206,39,126,38,179,37,244,37,195,38,148,39,28,40,45,40,60,40,226,40,123,41,46,41,92,40, +102,39,26,38,2,37,173,36,141,36,135,36,57,37,32,38,115,38,174,38,5,39,194,38,247,37,6,37,159,35,28,34, +112,33,92,33,9,33,104,32,152,31,217,30,220,30,163,31,100,32,246,32,121,33,143,33,94,33,133,33,154,33,193,32, +49,31,140,29,232,27,84,26,35,25,78,24,142,23,241,22,140,22,14,22,64,21,105,20,137,19,70,18,227,16,223,15, +237,14,224,13,41,13,142,12,146,11,222,10,236,10,255,10,225,10,241,10,184,10,247,9,74,9,100,8,180,6,12,5, +238,3,193,2,213,1,210,1,10,2,31,2,158,2,3,3,117,2,107,1,64,0,180,254,76,253,100,252,92,251,58,250, +145,249,0,249,43,248,148,247,74,247,243,246,169,246,80,246,142,245,167,244,221,243,229,242,198,241,199,240,228,239,35,239, +151,238,3,238,105,237,1,237,138,236,195,235,246,234,83,234,212,233,143,233,82,233,210,232,64,232,216,231,159,231,180,231, +1,232,40,232,51,232,74,232,44,232,215,231,117,231,173,230,105,229,66,228,107,227,197,226,147,226,204,226,248,226,34,227, +99,227,104,227,60,227,24,227,183,226,35,226,186,225,45,225,71,224,161,223,101,223,41,223,247,222,230,222,199,222,214,222, +59,223,123,223,127,223,156,223,162,223,92,223,247,222,92,222,172,221,144,221,13,222,172,222,133,223,122,224,249,224,52,225, +153,225,194,225,145,225,138,225,150,225,139,225,222,225,120,226,177,226,157,226,151,226,131,226,129,226,221,226,105,227,235,227, +97,228,164,228,189,228,226,228,240,228,193,228,134,228,65,228,224,227,154,227,109,227,40,227,16,227,101,227,15,228,13,229, +55,230,3,231,105,231,211,231,71,232,186,232,60,233,88,233,220,232,145,232,207,232,13,233,62,233,166,233,14,234,147,234, +163,235,217,236,150,237,12,238,127,238,229,238,98,239,224,239,250,239,220,239,250,239,82,240,233,240,206,241,116,242,108,242, +50,242,72,242,130,242,177,242,200,242,184,242,189,242,61,243,46,244,53,245,61,246,99,247,147,248,150,249,100,250,45,251, +241,251,117,252,174,252,202,252,230,252,36,253,152,253,8,254,75,254,161,254,66,255,24,0,247,0,154,1,218,1,20,2, +156,2,53,3,189,3,74,4,149,4,138,4,207,4,171,5,144,6,64,7,206,7,21,8,83,8,27,9,34,10,186,10, +253,10,55,11,125,11,64,12,159,13,159,14,176,14,143,14,201,14,27,15,120,15,239,15,51,16,45,16,46,16,69,16, +87,16,138,16,231,16,34,17,50,17,127,17,78,18,110,19,113,20,11,21,61,21,74,21,137,21,5,22,88,22,64,22, +247,21,182,21,140,21,167,21,249,21,249,21,98,21,154,20,27,20,43,20,175,20,1,21,191,20,134,20,240,20,200,21, +173,22,46,23,204,22,228,21,98,21,74,21,27,21,215,20,97,20,139,19,5,19,69,19,144,19,138,19,170,19,184,19, +83,19,4,19,10,19,216,18,90,18,204,17,252,16,23,16,157,15,79,15,192,14,27,14,103,13,124,12,184,11,84,11, +232,10,98,10,28,10,232,9,125,9,22,9,241,8,215,8,126,8,189,7,161,6,150,5,0,5,182,4,72,4,156,3, +200,2,193,1,166,0,218,255,81,255,144,254,162,253,222,252,246,251,199,250,46,250,150,250,68,251,186,251,230,251,100,251, +101,250,218,249,184,249,27,249,250,247,206,246,174,245,243,244,15,245,148,245,202,245,135,245,7,245,168,244,144,244,55,244, +35,243,156,241,31,240,41,239,42,239,161,239,157,239,109,239,212,239,96,240,99,240,238,239,244,238,130,237,82,236,176,235, +49,235,229,234,255,234,31,235,44,235,125,235,253,235,104,236,165,236,108,236,167,235,191,234,204,233,165,232,134,231,111,230, +14,229,213,227,115,227,191,227,94,228,43,229,123,229,207,228,197,227,27,227,241,226,56,227,127,227,16,227,62,226,29,226, +193,226,100,227,209,227,89,228,112,229,205,231,112,235,166,238,135,239,29,238,32,236,4,235,232,234,216,234,235,233,113,232, +208,231,217,232,220,234,156,236,118,237,166,237,35,238,112,239,143,240,36,240,90,238,106,236,61,235,66,235,19,236,136,236, +148,236,178,237,143,240,77,244,12,248,236,250,254,251,226,251,46,252,198,252,150,252,237,251,159,251,172,251,24,252,255,252, +203,253,89,254,130,255,85,1,205,2,158,3,97,4,126,5,6,7,191,8,37,10,26,11,50,12,217,13,233,15,249,17, +130,19,70,20,171,20,21,21,149,21,82,22,26,23,236,22,131,21,42,20,217,19,2,20,1,20,18,20,156,20,219,21, +190,23,137,25,135,26,23,27,4,28,87,29,152,30,145,31,78,32,17,33,69,34,245,35,150,37,223,38,88,40,95,42, +72,44,47,45,17,45,116,44,207,43,139,43,139,43,236,42,118,41,120,40,48,41,86,43,159,45,197,46,122,46,247,45, +151,46,22,48,62,49,106,49,161,48,161,47,160,47,190,48,204,49,51,50,133,50,72,51,162,52,47,54,164,54,38,53, +179,50,185,48,114,47,133,46,212,45,63,45,189,44,140,44,209,44,122,45,140,46,26,48,218,49,18,51,89,51,46,51, +86,51,214,51,24,52,157,51,87,50,209,48,192,47,51,47,222,46,184,46,117,46,173,45,181,44,244,43,249,42,131,41, +225,39,252,37,236,35,117,34,136,33,56,32,125,30,10,29,83,28,194,28,1,30,138,30,192,29,186,28,14,28,92,27, +154,26,201,25,177,24,146,23,122,22,241,20,77,19,78,18,199,17,133,17,209,17,251,17,3,17,103,15,234,13,64,12, +64,10,112,8,247,6,193,5,1,5,148,4,219,3,148,2,49,1,71,0,211,255,78,255,90,254,247,252,82,251,240,249, +11,249,209,247,181,245,122,243,185,241,39,240,187,238,117,237,238,235,107,234,143,233,228,232,186,231,97,230,63,229,119,228, +67,228,23,228,28,227,227,225,93,225,40,225,187,224,36,224,61,223,42,222,134,221,24,221,58,220,36,219,25,218,247,216, +24,216,173,215,22,215,35,214,44,213,0,212,151,210,122,209,150,208,110,207,31,206,219,204,172,203,222,202,100,202,197,201, +23,201,159,200,55,200,21,200,138,200,0,201,243,200,177,200,96,200,1,200,12,200,115,200,132,200,40,200,149,199,163,198, +167,197,62,197,45,197,249,196,184,196,140,196,148,196,16,197,213,197,132,198,61,199,15,200,198,200,143,201,128,202,19,203, +38,203,24,203,231,202,156,202,192,202,104,203,246,203,59,204,148,204,33,205,162,205,219,205,233,205,1,206,20,206,29,206, +94,206,216,206,88,207,5,208,200,208,67,209,216,209,24,211,128,212,161,213,213,214,251,215,197,216,207,217,65,219,76,220, +26,221,107,222,234,223,52,225,131,226,116,227,222,227,194,228,67,230,80,231,240,231,196,232,114,233,251,233,253,234,6,236, +139,236,73,237,164,238,11,240,125,241,19,243,80,244,110,245,29,247,213,248,219,249,176,250,220,251,60,253,212,254,142,0, +204,1,111,2,34,3,85,4,231,5,104,7,92,8,208,8,101,9,109,10,155,11,196,12,3,14,82,15,153,16,233,17, +67,19,129,20,184,21,54,23,224,24,52,26,8,27,135,27,188,27,3,28,247,28,67,30,254,30,102,31,83,32,184,33, +60,35,230,36,70,38,226,38,45,39,124,39,117,39,74,39,133,39,203,39,186,39,202,39,71,40,253,40,243,41,28,43, +47,44,73,45,134,46,141,47,79,48,240,48,5,49,107,48,236,47,251,47,82,48,214,48,108,49,143,49,64,49,55,49, +164,49,227,49,115,49,144,48,195,47,82,47,43,47,32,47,201,46,197,45,136,44,230,43,188,43,112,43,35,43,244,42, +149,42,65,42,71,42,18,42,79,41,165,40,79,40,205,39,246,38,214,37,120,36,87,35,182,34,35,34,100,33,134,32, +72,31,211,29,200,28,247,27,230,26,7,26,155,25,253,24,237,23,152,22,221,20,34,19,64,18,225,17,233,16,33,15, +234,12,174,10,56,9,226,8,188,8,218,7,90,6,168,4,10,3,197,1,176,0,62,255,75,253,44,251,39,249,93,247, +217,245,130,244,86,243,140,242,37,242,175,241,232,240,29,240,96,239,64,238,202,236,158,235,167,234,88,233,227,231,176,230, +169,229,7,229,238,228,107,228,232,226,67,225,233,223,91,222,227,220,254,219,37,219,56,218,217,217,183,217,29,217,50,216, +3,215,127,213,150,212,210,212,2,213,34,212,159,210,68,209,209,208,143,209,122,210,117,210,198,209,20,209,165,208,220,208, +96,209,234,208,88,207,252,205,152,205,29,206,91,207,111,208,105,208,204,207,174,207,7,208,34,208,122,207,250,205,99,204, +236,203,217,204,32,206,118,206,121,205,14,204,146,203,117,204,16,206,101,207,183,207,20,207,140,206,4,207,26,208,172,208, +51,208,89,207,83,207,147,208,106,210,225,211,86,212,208,211,106,211,97,212,133,214,155,216,189,217,178,217,62,217,244,217, +69,220,201,222,97,224,48,225,137,225,245,225,61,227,7,229,27,230,57,230,26,230,68,230,0,231,63,232,118,233,115,234, +173,235,133,237,226,239,69,242,4,244,9,245,225,245,197,246,180,247,241,248,82,250,88,251,72,252,156,253,25,255,207,0, +32,3,123,5,34,7,107,8,181,9,237,10,101,12,68,14,205,15,195,16,207,17,47,19,151,20,224,21,251,22,12,24, +135,25,133,27,157,29,110,31,155,32,19,33,155,33,217,34,130,36,68,38,17,40,125,41,100,42,109,43,207,44,3,46, +232,46,208,47,204,48,210,49,209,50,132,51,211,51,220,51,196,51,238,51,202,52,31,54,122,55,225,56,107,58,252,59, +151,61,15,63,220,63,234,63,204,63,244,63,108,64,24,65,208,65,119,66,19,67,206,67,217,68,243,69,121,70,103,70, +86,70,98,70,66,70,19,70,225,69,104,69,234,68,240,68,122,69,114,70,185,71,154,72,158,72,85,72,54,72,42,72, +37,72,216,71,202,70,103,69,134,68,63,68,112,68,247,68,44,69,193,68,85,68,22,68,155,67,28,67,174,66,163,65, +235,63,73,62,6,61,253,59,8,59,210,57,126,56,227,55,36,56,165,56,29,57,50,57,95,56,36,55,53,54,22,53, +86,51,82,49,254,46,104,44,193,42,127,42,86,42,110,41,50,40,219,38,106,37,61,36,50,35,151,33,101,31,60,29, +86,27,137,25,231,23,164,22,179,21,224,20,37,20,122,19,162,18,129,17,42,16,95,14,238,11,119,9,169,7,82,6, +0,5,160,3,39,2,162,0,86,255,75,254,45,253,160,251,129,249,41,247,55,245,176,243,50,242,212,240,146,239,28,238, +228,236,122,236,38,236,58,235,47,234,26,233,140,231,4,230,234,228,117,227,108,225,165,223,81,222,28,221,21,220,16,219, +192,217,122,216,108,215,50,214,214,212,153,211,97,210,100,209,214,208,26,208,237,206,5,206,141,205,17,205,177,204,124,204, +239,203,51,203,243,202,3,203,216,202,99,202,131,201,25,200,177,198,231,197,127,197,215,196,206,195,254,194,245,194,119,195, +248,195,68,196,64,196,241,195,220,195,55,196,119,196,97,196,59,196,228,195,96,195,98,195,7,196,148,196,195,196,215,196, +230,196,39,197,196,197,63,198,56,198,12,198,31,198,126,198,39,199,230,199,125,200,28,201,9,202,28,203,7,204,165,204, +19,205,181,205,172,206,173,207,168,208,187,209,182,210,160,211,209,212,255,213,155,214,238,214,113,215,252,215,98,216,203,216, +57,217,155,217,8,218,165,218,161,219,250,220,98,222,204,223,112,225,22,227,113,228,169,229,193,230,172,231,215,232,73,234, +92,235,49,236,99,237,172,238,195,239,12,241,73,242,238,242,121,243,83,244,15,245,192,245,199,246,185,247,117,248,118,249, +104,250,210,250,94,251,117,252,168,253,20,255,216,0,44,2,214,2,174,3,245,4,65,6,103,7,38,8,96,8,214,8, +13,10,85,11,7,12,73,12,99,12,168,12,129,13,172,14,103,15,133,15,133,15,215,15,148,16,139,17,106,18,17,19, +195,19,198,20,233,21,209,22,156,23,141,24,105,25,245,25,98,26,168,26,142,26,110,26,156,26,192,26,195,26,5,27, +92,27,116,27,147,27,222,27,12,28,22,28,28,28,22,28,46,28,80,28,29,28,222,27,3,28,18,28,247,27,136,28, +159,29,65,30,144,30,233,30,219,30,144,30,140,30,37,30,241,28,224,27,61,27,124,26,8,26,90,26,174,26,165,26, +184,26,177,26,26,26,90,25,200,24,24,24,50,23,82,22,148,21,245,20,88,20,173,19,66,19,77,19,144,19,200,19, +178,19,5,19,21,18,131,17,30,17,80,16,26,15,182,13,87,12,146,11,179,11,254,11,158,11,148,10,115,9,181,8, +92,8,11,8,129,7,162,6,110,5,70,4,139,3,241,2,62,2,216,1,186,1,83,1,174,0,52,0,190,255,16,255, +46,254,251,252,125,251,16,250,187,248,79,247,254,245,3,245,108,244,75,244,87,244,250,243,44,243,78,242,153,241,66,241, +29,241,87,240,215,238,179,237,85,237,4,237,112,236,221,235,96,235,29,235,69,235,124,235,61,235,132,234,165,233,8,233, +195,232,109,232,205,231,26,231,103,230,223,229,250,229,122,230,119,230,201,229,216,228,221,227,87,227,145,227,205,227,132,227, +65,227,68,227,84,227,156,227,228,227,139,227,7,227,32,227,79,227,7,227,200,226,196,226,224,226,145,227,178,228,22,229, +89,228,61,227,120,226,148,226,178,227,242,228,108,229,94,229,118,229,5,230,2,231,253,231,152,232,6,233,76,233,255,232, +74,232,227,231,248,231,90,232,243,232,107,233,130,233,193,233,183,234,232,235,141,236,163,236,175,236,234,236,43,237,35,237, +158,236,238,235,15,236,133,237,122,239,217,240,134,241,187,241,174,241,24,242,58,243,17,244,254,243,161,243,111,243,125,243, +31,244,249,244,65,245,85,245,251,245,230,246,190,247,111,248,74,248,77,247,239,246,195,247,229,248,247,249,225,250,51,251, +182,251,207,253,237,0,135,3,60,5,21,6,43,6,91,6,236,6,234,6,50,6,155,5,84,5,106,5,93,6,205,7, +197,8,108,9,94,10,101,11,26,12,116,12,116,12,80,12,95,12,139,12,173,12,25,13,19,14,95,15,136,16,63,17, +178,17,129,18,224,19,55,21,238,21,25,22,46,22,103,22,184,22,38,23,211,23,175,24,144,25,106,26,11,27,82,27, +157,27,39,28,139,28,193,28,48,29,178,29,40,30,37,31,170,32,3,34,75,35,220,36,26,38,157,38,166,38,14,38, +239,36,90,36,136,36,99,36,156,35,186,34,206,33,19,33,46,33,208,33,22,34,242,33,190,33,141,33,143,33,245,33, +118,34,166,34,118,34,69,34,156,34,145,35,171,36,148,37,58,38,159,38,12,39,194,39,74,40,20,40,53,39,11,38, +43,37,70,37,8,38,73,38,202,37,83,37,105,37,8,38,172,38,130,38,155,37,201,36,17,36,21,35,68,34,219,33, +132,33,115,33,192,33,148,33,215,32,110,32,66,32,191,31,84,31,55,31,179,30,189,29,233,28,54,28,129,27,220,26, +15,26,51,25,232,24,10,25,228,24,124,24,14,24,96,23,166,22,99,22,86,22,14,22,181,21,117,21,50,21,41,21, +123,21,130,21,184,20,156,19,225,18,133,18,64,18,219,17,227,16,59,15,188,13,3,13,132,12,177,11,171,10,126,9, +104,8,14,8,16,8,69,7,237,5,234,4,239,3,217,2,89,2,9,2,25,1,59,0,233,255,105,255,254,254,96,255, +144,255,192,254,245,253,179,253,121,253,119,253,173,253,65,253,116,252,59,252,65,252,230,251,93,251,125,250,31,249,8,248, +121,247,168,246,112,245,71,244,60,243,155,242,180,242,207,242,83,242,234,241,14,242,83,242,124,242,120,242,230,241,245,240, +104,240,73,240,231,239,15,239,33,238,89,237,217,236,194,236,214,236,143,236,234,235,114,235,86,235,65,235,255,234,125,234, +166,233,222,232,145,232,118,232,91,232,156,232,14,233,56,233,113,233,10,234,119,234,141,234,146,234,45,234,98,233,45,233, +145,233,124,233,204,232,19,232,101,231,1,231,75,231,205,231,14,232,70,232,54,232,104,231,124,230,48,230,35,230,211,229, +89,229,222,228,154,228,229,228,167,229,108,230,247,230,77,231,149,231,233,231,27,232,245,231,122,231,193,230,30,230,13,230, +104,230,147,230,118,230,65,230,242,229,214,229,61,230,182,230,207,230,183,230,155,230,156,230,8,231,150,231,169,231,121,231, +99,231,41,231,5,231,135,231,49,232,79,232,35,232,231,231,126,231,92,231,172,231,174,231,48,231,247,230,85,231,12,232, +214,232,45,233,219,232,135,232,159,232,199,232,197,232,143,232,253,231,95,231,90,231,202,231,48,232,164,232,52,233,142,233, +232,233,196,234,226,235,195,236,117,237,232,237,155,237,204,236,113,236,182,236,2,237,59,237,132,237,137,237,118,237,26,238, +86,239,61,240,194,240,67,241,119,241,68,241,11,241,170,240,245,239,110,239,61,239,26,239,118,239,173,240,38,242,164,243, +116,245,20,247,9,248,224,248,166,249,176,249,70,249,18,249,233,248,218,248,106,249,65,250,212,250,126,251,107,252,76,253, +71,254,109,255,74,0,10,1,40,2,37,3,83,3,211,2,240,1,22,1,22,1,247,1,223,2,178,3,198,4,187,5, +117,6,161,7,52,9,101,10,12,11,96,11,75,11,16,11,35,11,69,11,20,11,218,10,228,10,43,11,213,11,255,12, +69,14,82,15,82,16,84,17,18,18,97,18,74,18,249,17,215,17,85,18,103,19,176,20,14,22,114,23,166,24,147,25, +50,26,56,26,148,25,180,24,206,23,205,22,27,22,32,22,125,22,234,22,194,23,23,25,140,26,3,28,28,29,40,29, +100,28,172,27,27,27,101,26,139,25,113,24,47,23,164,22,62,23,81,24,76,25,57,26,29,27,249,27,176,28,196,28, +18,28,44,27,93,26,182,25,145,25,185,25,135,25,65,25,110,25,146,25,107,25,107,25,90,25,194,24,46,24,226,23, +47,23,45,22,175,21,133,21,8,21,74,20,132,19,200,18,120,18,172,18,170,18,206,17,96,16,26,15,83,14,178,13, +194,12,159,11,186,10,75,10,48,10,6,10,170,9,151,9,2,10,51,10,183,9,255,8,68,8,70,7,7,6,128,4, +148,2,199,0,180,255,52,255,5,255,27,255,33,255,236,254,187,254,138,254,62,254,4,254,147,253,130,252,81,251,139,250, +202,249,210,248,210,247,153,246,59,245,115,244,83,244,73,244,74,244,99,244,38,244,119,243,150,242,114,241,27,240,239,238, +235,237,193,236,119,235,79,234,130,233,20,233,214,232,192,232,228,232,247,232,179,232,59,232,146,231,162,230,160,229,163,228, +141,227,151,226,188,225,133,224,64,223,160,222,111,222,80,222,66,222,156,221,229,219,238,217,32,216,13,214,24,212,165,210, +49,209,106,208,189,209,154,212,41,216,44,221,229,226,110,230,161,230,133,228,69,225,123,222,31,221,165,219,208,216,61,214, +151,213,201,214,78,217,247,219,54,221,159,221,245,222,173,224,218,224,19,223,253,219,79,216,76,213,244,211,203,211,255,211, +211,212,14,215,237,218,237,223,212,228,0,232,176,232,235,231,9,231,48,230,52,229,138,228,93,228,134,228,92,229,197,230, +234,231,244,232,152,234,55,236,246,236,25,237,25,237,149,237,31,239,136,240,127,240,183,240,70,243,102,247,226,251,86,0, +119,3,16,5,66,7,102,10,123,12,0,13,232,11,43,8,80,3,196,0,115,0,30,0,210,255,100,0,168,1,33,4, +234,7,244,10,205,11,155,11,227,11,14,13,179,14,213,15,57,16,53,17,210,19,154,23,196,27,212,31,78,35,242,37, +178,39,73,40,159,39,88,38,74,37,124,36,50,35,81,33,11,32,167,32,122,35,199,39,141,43,12,45,33,45,190,45, +204,46,88,47,90,47,126,46,216,44,137,44,190,46,187,49,84,52,33,55,251,57,158,60,153,63,215,65,51,65,25,62, +182,58,26,56,119,54,110,53,244,51,9,50,211,48,122,48,162,48,209,49,69,52,92,55,111,58,178,60,178,61,122,62, +7,64,136,65,232,65,61,65,248,63,200,62,188,62,250,63,96,65,238,65,158,65,254,64,75,64,31,63,35,61,106,58, +39,55,75,52,53,51,160,51,226,51,94,51,102,50,91,49,118,49,87,51,252,52,140,52,236,50,35,49,61,47,12,46, +231,45,126,45,129,44,235,43,117,43,137,42,223,41,191,41,131,41,15,41,16,40,206,37,224,34,88,32,222,29,38,27, +23,25,38,24,244,23,77,24,189,24,96,24,20,23,160,21,190,20,151,20,168,20,18,20,109,18,68,16,142,14,180,13, +19,13,202,11,170,9,19,7,145,4,156,2,238,0,231,254,221,252,71,251,118,249,243,246,90,244,251,241,248,239,245,238, +137,238,127,237,75,236,15,236,64,236,33,236,211,235,252,234,124,233,97,232,188,231,86,230,33,228,227,225,239,223,244,222, +71,223,110,223,76,222,196,220,135,219,85,218,93,217,115,216,163,214,17,212,219,209,47,208,173,206,92,205,29,204,204,202, +224,201,166,201,167,201,89,201,155,200,161,199,211,198,87,198,215,197,21,197,90,196,29,196,100,196,166,196,112,196,190,195, +180,194,133,193,109,192,37,191,73,189,109,187,101,186,3,186,242,185,87,186,226,186,43,187,185,187,231,188,25,190,238,190, +137,191,206,191,224,191,60,192,188,192,211,192,128,192,25,192,212,191,185,191,137,191,51,191,36,191,108,191,179,191,11,192, +138,192,220,192,42,193,208,193,76,194,81,194,168,194,185,195,248,196,255,197,153,198,170,198,219,198,229,199,134,201,59,203, +220,204,47,206,59,207,130,208,17,210,127,211,194,212,230,213,208,214,170,215,161,216,135,217,96,218,119,219,187,220,249,221, +60,223,121,224,166,225,25,227,252,228,243,230,165,232,37,234,169,235,89,237,83,239,121,241,102,243,239,244,102,246,245,247, +66,249,54,250,37,251,3,252,194,252,224,253,89,255,106,0,46,1,98,2,242,3,173,5,238,7,106,10,133,12,166,14, +69,17,9,20,182,22,253,24,21,26,76,26,224,26,217,27,146,28,102,29,147,30,180,31,45,33,121,35,206,37,111,39, +163,40,136,41,30,42,236,42,23,44,11,45,165,45,44,46,146,46,225,46,114,47,73,48,40,49,34,50,111,51,249,52, +132,54,236,55,253,56,148,57,250,57,127,58,209,58,185,58,212,58,120,59,36,60,197,60,163,61,34,62,196,61,55,61, +237,60,172,60,206,60,138,61,6,62,219,61,151,61,86,61,239,60,173,60,143,60,95,60,76,60,29,60,78,59,81,58, +172,57,239,56,6,56,119,55,230,54,197,53,145,52,189,51,22,51,172,50,131,50,17,50,39,49,42,48,42,47,248,45, +179,44,125,43,52,42,185,40,65,39,36,38,56,37,253,35,137,34,81,33,74,32,79,31,98,30,35,29,114,27,228,25, +132,24,202,22,249,20,123,19,239,17,82,16,244,14,88,13,92,11,182,9,37,8,255,5,13,4,244,2,225,1,131,0, +66,255,178,253,176,251,19,250,237,248,164,247,122,246,126,245,215,243,135,241,159,239,132,238,207,237,243,236,95,235,38,233, +62,231,96,230,73,230,61,230,127,229,147,227,162,224,177,221,8,220,229,219,30,220,135,219,1,218,11,216,96,214,137,213, +16,213,44,212,0,211,209,209,151,208,244,207,86,208,157,208,215,207,117,206,219,204,90,203,173,202,144,202,59,202,60,202, +196,202,113,202,61,201,156,200,80,200,135,199,27,199,75,199,223,198,223,197,47,197,185,196,155,196,101,197,70,198,30,198, +86,197,209,196,242,196,222,197,219,198,183,198,130,197,49,196,57,195,226,194,105,195,47,196,99,196,53,196,85,196,17,197, +74,198,135,199,41,200,19,200,215,199,252,199,71,200,92,200,165,200,146,201,197,202,12,204,185,205,67,207,236,207,91,208, +108,209,228,210,143,212,51,214,221,214,166,214,17,215,114,216,246,217,155,219,53,221,234,221,72,222,170,223,210,225,189,227, +39,229,239,229,64,230,252,230,104,232,249,233,109,235,131,236,22,237,253,237,213,239,222,241,146,243,55,245,173,246,15,248, +38,250,210,252,20,255,189,0,20,2,25,3,63,4,28,6,84,8,81,10,21,12,199,13,120,15,64,17,14,19,169,20, +228,21,223,22,80,24,182,26,69,29,25,31,133,32,2,34,120,35,36,37,52,39,255,40,36,42,20,43,1,44,240,44, +50,46,173,47,185,48,37,49,70,49,157,49,170,50,105,52,81,54,31,56,171,57,167,58,74,59,47,60,97,61,147,62, +166,63,102,64,213,64,110,65,89,66,77,67,57,68,25,69,228,69,237,70,75,72,145,73,174,74,199,75,147,76,46,77, +23,78,232,78,240,78,115,78,224,77,70,77,238,76,219,76,142,76,33,76,243,75,185,75,137,75,10,76,211,76,11,77, +15,77,101,77,186,77,229,77,235,77,91,77,41,76,249,74,236,73,202,72,200,71,33,71,190,70,153,70,149,70,111,70, +51,70,240,69,67,69,249,67,136,66,114,65,209,64,112,64,237,63,217,62,33,61,82,59,44,58,175,57,42,57,76,56, +56,55,213,53,27,52,107,50,202,48,231,46,227,44,254,42,37,41,108,39,247,37,147,36,57,35,30,34,3,33,144,31, +221,29,242,27,208,25,218,23,16,22,253,19,218,17,52,16,212,14,109,13,33,12,191,10,21,9,176,7,196,6,142,5, +184,3,202,1,22,0,133,254,10,253,123,251,142,249,64,247,206,244,108,242,89,240,230,238,12,238,46,237,199,235,24,234, +153,232,39,231,132,229,218,227,39,226,62,224,120,222,28,221,185,219,0,218,51,216,89,214,95,212,159,210,74,209,32,208, +3,207,228,205,156,204,107,203,175,202,27,202,50,201,5,200,218,198,241,197,141,197,132,197,78,197,198,196,21,196,70,195, +156,194,89,194,3,194,23,193,8,192,118,191,81,191,120,191,204,191,151,191,120,190,74,189,183,188,33,188,35,187,81,186, +217,185,88,185,26,185,130,185,7,186,72,186,173,186,47,187,78,187,57,187,72,187,70,187,50,187,85,187,132,187,157,187, +18,188,255,188,7,190,30,191,77,192,98,193,122,194,141,195,248,195,174,195,130,195,155,195,145,195,175,195,66,196,244,196, +247,197,201,199,216,201,113,203,242,204,143,206,226,207,19,209,86,210,21,211,79,211,223,211,188,212,76,213,241,213,252,214, +210,215,158,216,65,218,85,220,222,221,17,223,83,224,68,225,248,225,247,226,1,228,180,228,133,229,227,230,200,232,58,235, +221,237,222,239,19,241,253,241,226,242,6,244,169,245,57,247,24,248,215,248,63,250,51,252,124,254,237,0,212,2,241,3, +3,5,65,6,16,7,118,7,223,7,12,8,230,7,33,8,14,9,95,10,32,12,66,14,17,16,88,17,174,18,57,20, +170,21,236,22,198,23,216,23,151,23,199,23,88,24,6,25,250,25,8,27,212,27,179,28,241,29,37,31,34,32,71,33, +143,34,182,35,192,36,142,37,237,37,45,38,148,38,217,38,246,38,91,39,7,40,172,40,92,41,41,42,213,42,63,43, +101,43,55,43,210,42,112,42,24,42,198,41,143,41,108,41,86,41,110,41,169,41,183,41,135,41,114,41,169,41,215,41, +128,41,128,40,14,39,153,37,168,36,136,36,230,36,61,37,124,37,214,37,72,38,155,38,120,38,164,37,116,36,121,35, +182,34,233,33,43,33,149,32,12,32,169,31,110,31,233,30,240,29,251,28,67,28,136,27,168,26,173,25,143,24,122,23, +179,22,6,22,3,21,192,19,169,18,157,17,27,16,54,14,134,12,42,11,234,9,241,8,116,8,11,8,58,7,22,6, +228,4,183,3,136,2,113,1,164,0,18,0,88,255,106,254,178,253,69,253,241,252,186,252,87,252,37,251,79,249,137,247, +215,245,33,244,206,242,198,241,156,240,182,239,114,239,68,239,233,238,179,238,79,238,89,237,67,236,77,235,9,234,92,232, +132,230,148,228,241,226,37,226,251,225,223,225,196,225,223,225,40,226,102,226,80,226,187,225,206,224,209,223,251,222,102,222, +204,221,232,220,34,220,24,220,146,220,199,220,116,220,238,219,153,219,185,219,97,220,1,221,195,220,182,219,222,218,200,218, +46,219,222,219,155,220,202,220,135,220,206,220,187,221,104,222,108,222,212,221,176,220,187,219,207,219,140,220,20,221,49,221, +238,220,130,220,169,220,181,221,240,222,147,223,115,223,16,223,70,223,50,224,231,224,3,225,17,225,83,225,213,225,221,226, +253,227,102,228,109,228,204,228,97,229,245,229,160,230,15,231,30,231,97,231,9,232,161,232,4,233,93,233,180,233,29,234, +150,234,216,234,217,234,214,234,222,234,0,235,113,235,56,236,16,237,147,237,124,237,32,237,66,237,35,238,89,239,113,240, +31,241,113,241,249,241,53,243,249,244,185,246,248,247,133,248,192,248,102,249,225,250,236,252,156,254,71,255,129,255,57,0, +87,1,98,2,87,3,14,4,90,4,192,4,147,5,118,6,120,7,221,8,37,10,9,11,255,11,251,12,101,13,43,13, +163,12,84,12,200,12,152,13,252,13,132,14,22,16,61,18,84,20,120,22,103,24,176,25,154,26,101,27,235,27,107,28, +27,29,199,29,117,30,37,31,135,31,239,31,44,33,11,35,189,36,246,37,174,38,48,39,85,40,68,42,243,43,166,44, +165,44,150,44,34,45,114,46,191,47,45,48,207,47,84,47,86,47,224,47,107,48,133,48,68,48,0,48,55,48,31,49, +16,50,72,50,21,50,21,50,64,50,104,50,137,50,166,50,247,50,138,51,249,51,91,52,58,53,92,54,23,55,107,55, +151,55,178,55,255,55,124,56,196,56,194,56,89,56,86,55,104,54,83,54,126,54,62,54,227,53,110,53,191,52,143,52, +249,52,224,52,225,51,133,50,14,49,241,47,188,47,201,47,56,47,73,46,113,45,222,44,249,44,153,45,216,45,89,45, +104,44,64,43,52,42,90,41,65,40,222,38,111,37,162,35,152,33,119,32,110,32,119,32,78,32,93,32,88,32,213,31, +245,30,196,29,44,28,100,26,215,24,200,23,26,23,83,22,32,21,141,19,233,17,218,16,144,16,20,16,153,14,178,12, +20,11,195,9,177,8,126,7,122,5,249,2,14,1,236,255,51,255,167,254,231,253,213,252,239,251,82,251,180,250,15,250, +26,249,116,247,190,245,163,244,209,243,45,243,244,242,162,242,221,241,20,241,70,240,84,239,184,238,40,238,194,236,8,235, +195,233,94,232,156,230,104,229,219,228,77,228,195,227,115,227,38,227,184,226,36,226,148,225,107,225,98,225,199,224,176,223, +145,222,118,221,153,220,12,220,24,219,183,217,249,216,23,217,74,217,57,217,207,216,253,215,76,215,54,215,103,215,119,215, +45,215,98,214,135,213,86,213,201,213,104,214,204,214,176,214,129,214,254,214,195,215,237,215,178,215,158,215,173,215,228,215, +24,216,188,215,248,214,146,214,175,214,28,215,186,215,4,216,191,215,138,215,185,215,2,216,65,216,73,216,234,215,155,215, +189,215,9,216,107,216,227,216,31,217,96,217,23,218,191,218,33,219,24,220,170,221,254,222,252,223,182,224,226,224,235,224, +51,225,42,225,202,224,186,224,223,224,65,225,144,226,93,228,162,229,174,230,34,232,190,233,87,235,185,236,94,237,159,237, +61,238,203,238,201,238,140,238,24,238,99,237,76,237,62,238,121,239,139,240,138,241,93,242,29,243,250,243,182,244,38,245, +120,245,185,245,20,246,224,246,243,247,237,248,218,249,196,250,129,251,1,252,85,252,217,252,247,253,87,255,67,0,171,0, +198,0,235,0,213,1,90,3,42,4,21,4,18,4,49,4,82,4,10,5,1,6,64,6,26,6,30,6,253,5,249,5, +132,6,6,7,61,7,177,7,46,8,99,8,195,8,71,9,182,9,148,10,147,11,151,11,30,11,70,11,177,11,251,11, +108,12,124,12,216,11,155,11,89,12,99,13,84,14,236,14,189,14,75,14,111,14,225,14,23,15,13,15,169,14,242,13, +133,13,196,13,88,14,157,14,54,14,130,13,48,13,62,13,85,13,95,13,249,12,230,11,246,10,184,10,156,10,83,10, +47,10,44,10,78,10,224,10,173,11,76,12,152,12,55,12,10,11,177,9,139,8,150,7,16,7,188,6,26,6,186,5, +17,6,67,6,9,6,254,5,195,5,238,4,79,4,14,4,111,3,188,2,105,2,240,1,83,1,36,1,23,1,203,0, +119,0,16,0,161,255,127,255,68,255,106,254,91,253,83,252,44,251,95,250,23,250,184,249,85,249,73,249,19,249,154,248, +113,248,41,248,40,247,19,246,118,245,19,245,2,245,74,245,86,245,5,245,189,244,149,244,160,244,228,244,255,244,237,244, +25,245,77,245,46,245,227,244,119,244,225,243,134,243,98,243,12,243,171,242,134,242,119,242,162,242,21,243,54,243,229,242, +188,242,194,242,161,242,133,242,173,242,25,243,125,243,54,243,53,242,104,241,51,241,61,241,161,241,50,242,47,242,225,241, +30,242,159,242,27,243,243,243,151,244,79,244,225,243,9,244,116,244,12,245,203,245,29,246,24,246,69,246,100,246,106,246, +231,246,162,247,28,248,131,248,171,248,84,248,60,248,178,248,210,248,123,248,104,248,180,248,64,249,26,250,222,250,80,251, +174,251,219,251,226,251,107,252,87,253,223,253,37,254,150,254,233,254,16,255,80,255,95,255,17,255,198,254,185,254,26,255, +17,0,0,1,72,1,52,1,31,1,254,0,245,0,14,1,46,1,187,1,213,2,195,3,69,4,203,4,82,5,170,5, +243,5,15,6,1,6,68,6,193,6,205,6,81,6,141,5,180,4,46,4,14,4,216,3,126,3,96,3,94,3,26,3, +73,2,175,0,186,254,46,253,47,252,248,251,27,253,34,255,92,1,83,4,36,8,143,11,229,13,18,15,139,14,202,12, +77,11,54,10,217,8,111,7,47,6,47,5,99,5,229,6,53,8,199,8,45,9,72,9,254,8,171,8,225,7,79,6, +204,4,141,3,42,2,134,1,113,2,19,4,207,5,214,7,141,9,125,10,103,11,127,12,230,12,166,12,148,12,193,12, +219,12,28,13,178,13,57,14,90,14,47,14,203,13,41,13,160,12,113,12,57,12,219,11,240,11,109,12,168,12,225,12, +190,13,31,15,224,16,6,19,237,20,51,22,69,23,8,24,64,24,115,24,115,24,85,23,147,21,5,20,58,18,94,16, +126,15,48,15,183,14,206,14,164,15,110,16,110,17,176,18,11,19,193,18,30,19,125,19,5,19,239,18,232,19,8,21, +74,22,45,24,9,26,102,27,173,28,146,29,94,29,89,28,77,27,120,26,176,25,187,24,162,23,229,22,243,22,169,23, +116,24,198,24,129,24,230,23,32,23,77,22,145,21,218,20,31,20,145,19,63,19,64,19,255,19,80,21,96,22,33,23, +206,23,216,23,37,23,139,22,251,21,221,20,190,19,14,19,67,18,130,17,79,17,251,16,254,15,249,14,38,14,80,13, +242,12,67,13,200,13,171,14,87,16,69,18,204,19,229,20,134,21,184,21,228,21,38,22,10,22,55,21,210,19,72,18, +211,16,54,15,104,13,231,11,236,10,33,10,75,9,138,8,21,8,236,7,120,7,69,6,233,4,14,4,129,3,252,2, +107,2,141,1,195,0,229,0,168,1,86,2,81,3,174,4,139,5,232,5,87,6,130,6,83,6,75,6,210,5,73,4, +203,2,22,2,94,1,131,0,61,0,62,0,229,255,86,255,160,254,173,253,232,252,85,252,109,251,93,250,178,249,81,249, +36,249,152,249,153,250,127,251,16,252,109,252,115,252,34,252,209,251,78,251,241,249,216,247,212,245,42,244,198,242,223,241, +67,241,114,240,216,239,23,240,161,240,220,240,27,241,108,241,141,241,220,241,113,242,181,242,232,242,180,243,172,244,50,245, +84,245,0,245,113,244,125,244,245,244,231,244,178,244,247,244,248,244,56,244,94,243,151,242,168,241,219,240,53,240,99,239, +201,238,167,238,83,238,140,237,190,236,231,235,46,235,67,235,246,235,69,236,29,236,42,236,131,236,12,237,4,238,45,239, +177,239,120,239,88,239,199,239,94,240,166,240,106,240,159,239,159,238,239,237,174,237,180,237,243,237,63,238,118,238,228,238, +154,239,26,240,69,240,121,240,183,240,243,240,102,241,220,241,244,241,248,241,17,242,225,241,165,241,204,241,186,241,232,240, +23,240,212,239,173,239,89,239,252,238,127,238,235,237,125,237,62,237,32,237,44,237,64,237,68,237,101,237,146,237,125,237, +65,237,70,237,167,237,46,238,166,238,1,239,88,239,193,239,76,240,41,241,74,242,22,243,16,243,145,242,80,242,119,242, +161,242,120,242,241,241,28,241,67,240,237,239,19,240,240,239,57,239,104,238,196,237,83,237,84,237,154,237,122,237,244,236, +164,236,188,236,59,237,39,238,244,238,20,239,243,238,24,239,70,239,104,239,224,239,157,240,26,241,4,241,78,240,66,239, +140,238,164,238,67,239,184,239,134,239,237,238,196,238,132,239,178,240,135,241,190,241,152,241,153,241,48,242,75,243,72,244, +154,244,100,244,51,244,70,244,110,244,112,244,60,244,237,243,200,243,223,243,249,243,20,244,75,244,61,244,163,243,9,243, +226,242,185,242,33,242,113,241,67,241,209,241,203,242,165,243,75,244,21,245,32,246,128,247,91,249,38,251,247,251,218,251, +162,251,212,251,134,252,115,253,234,253,161,253,22,253,217,252,56,253,52,254,41,255,97,255,30,255,255,254,10,255,55,255, +195,255,113,0,189,0,187,0,255,0,210,1,10,3,86,4,114,5,37,6,90,6,89,6,150,6,27,7,142,7,187,7, +178,7,180,7,24,8,198,8,69,9,134,9,231,9,115,10,249,10,120,11,228,11,14,12,8,12,47,12,211,12,215,13, +173,14,243,14,239,14,12,15,135,15,136,16,201,17,148,18,175,18,132,18,104,18,125,18,186,18,212,18,217,18,39,19, +103,19,19,19,169,18,154,18,94,18,214,17,174,17,230,17,14,18,80,18,206,18,24,19,240,18,128,18,32,18,65,18, +221,18,55,19,233,18,123,18,163,18,123,19,96,20,133,20,229,19,36,19,181,18,183,18,250,18,209,18,237,17,19,17, +255,16,121,17,247,17,3,18,104,17,161,16,88,16,137,16,209,16,197,16,250,15,189,14,234,13,136,13,28,13,226,12, +251,12,199,12,30,12,117,11,210,10,61,10,26,10,74,10,93,10,65,10,180,9,112,8,38,7,167,6,154,6,87,6, +201,5,5,5,45,4,176,3,170,3,125,3,165,2,140,1,233,0,196,0,163,0,95,0,242,255,49,255,82,254,204,253, +136,253,27,253,78,252,3,251,135,249,136,248,203,247,73,246,195,243,164,240,89,237,193,234,116,233,249,232,85,233,84,235, +160,238,153,242,121,247,220,251,38,253,172,251,174,249,107,247,180,244,174,242,31,241,235,238,24,237,239,236,199,237,63,239, +136,241,101,243,222,243,197,243,102,243,40,242,100,240,80,238,30,235,75,231,201,228,72,228,22,229,247,230,207,233,251,236, +34,240,65,243,175,245,115,246,131,245,204,243,129,242,133,242,145,243,47,244,171,243,254,242,255,242,109,243,10,244,90,244, +110,243,203,241,72,241,42,242,70,243,17,244,18,244,43,243,74,243,233,245,74,249,194,251,29,254,207,0,113,3,101,6, +1,9,82,9,157,7,217,5,73,4,107,2,148,0,208,254,78,253,31,253,58,254,67,255,225,255,95,0,124,0,171,0, +198,1,37,3,174,3,190,3,42,4,26,5,129,6,69,8,73,10,180,12,105,15,152,17,145,18,131,18,41,18,223,17, +80,17,58,16,213,14,113,13,223,12,82,14,77,17,162,19,132,20,212,20,226,20,185,20,178,20,9,20,246,17,226,15, +119,15,127,16,128,18,38,21,122,23,128,25,85,28,103,31,223,32,133,32,38,31,31,29,51,27,52,26,162,25,193,24, +235,23,165,23,211,23,42,24,111,24,139,24,212,24,185,25,0,27,215,27,24,28,183,28,63,30,244,31,60,33,39,34, +165,34,6,35,13,36,84,37,203,37,173,37,128,37,245,36,49,36,70,35,56,33,86,30,155,28,90,28,133,28,28,29, +191,29,84,29,181,28,88,29,137,30,73,31,149,31,226,30,91,29,159,28,187,28,98,28,243,27,9,28,216,27,158,27, +83,28,29,29,75,29,242,29,6,31,62,31,230,30,167,30,172,29,204,27,73,26,160,25,131,25,42,26,87,27,200,27, +238,26,161,25,159,24,209,23,34,23,181,22,76,22,175,21,69,21,66,21,71,21,76,21,75,21,157,20,77,19,75,18, +130,17,58,16,195,14,124,13,40,12,50,11,202,10,211,9,248,7,81,6,72,5,194,4,242,4,22,5,81,4,148,3, +186,3,21,4,113,4,6,5,10,5,54,4,67,3,0,2,29,0,125,254,79,253,207,251,99,250,219,249,236,249,57,250, +153,250,95,250,79,249,241,247,151,246,132,245,197,244,123,243,73,241,40,239,112,237,205,235,212,234,173,234,36,234,222,232, +148,231,79,230,32,229,188,228,224,228,142,228,191,227,246,226,109,226,100,226,204,226,20,227,224,226,37,226,1,225,232,223, +249,222,205,221,155,220,228,219,96,219,194,218,61,218,146,217,129,216,160,215,65,215,240,214,126,214,11,214,168,213,163,213, +25,214,112,214,30,214,65,213,62,212,127,211,2,211,96,210,159,209,249,208,64,208,201,207,32,208,132,208,22,208,97,207, +155,206,102,205,161,204,235,204,4,205,144,204,190,204,80,205,56,205,201,204,99,204,183,203,64,203,106,203,156,203,181,203, +38,204,196,204,122,205,108,206,19,207,71,207,189,207,106,208,208,208,52,209,142,209,85,209,221,208,120,208,171,207,159,206, +1,206,169,205,144,205,42,206,18,207,159,207,254,207,75,208,125,208,43,209,120,210,190,211,240,212,74,214,120,215,145,216, +6,218,125,219,148,220,157,221,173,222,150,223,116,224,30,225,98,225,203,225,172,226,167,227,192,228,81,230,21,232,138,233, +134,234,30,235,176,235,164,236,1,238,150,239,8,241,11,242,252,242,61,244,60,245,155,245,239,245,131,246,97,247,33,249, +167,251,233,253,197,255,140,1,219,2,214,3,24,5,36,6,131,6,247,6,215,7,228,8,100,10,29,12,64,13,15,14, +13,15,252,15,72,17,108,19,101,21,162,22,242,23,67,25,55,26,163,27,131,29,154,30,35,31,249,31,194,32,168,33, +108,35,38,37,214,37,92,38,85,39,53,40,3,41,232,41,75,42,59,42,152,42,144,43,218,44,90,46,172,47,95,48, +152,48,184,48,235,48,57,49,155,49,9,50,102,50,143,50,211,50,112,51,208,51,164,51,197,51,194,52,44,54,162,55, +184,56,208,56,25,56,72,55,129,54,218,53,143,53,103,53,77,53,132,53,166,53,76,53,250,52,214,52,85,52,123,51, +88,50,181,48,94,47,44,47,106,47,113,47,159,47,166,47,253,46,50,46,143,45,172,44,177,43,147,42,180,40,146,38, +12,37,193,35,141,34,19,34,220,33,18,33,34,32,98,31,100,30,80,29,104,28,47,27,113,25,144,23,211,21,131,20, +156,19,125,18,19,17,237,15,247,14,245,13,60,13,169,12,160,11,32,10,62,8,241,5,197,3,48,2,234,0,204,255, +176,254,3,253,255,250,147,249,183,248,235,247,62,247,123,246,57,245,209,243,127,242,23,241,21,240,167,239,153,238,62,236, +186,233,119,232,227,232,49,234,145,234,241,232,86,230,128,228,4,228,249,227,209,226,44,224,165,221,160,220,137,220,41,220, +56,219,50,218,142,217,36,217,155,216,59,216,22,216,60,215,82,213,64,211,126,209,230,207,153,206,49,205,243,202,86,200, +69,198,200,196,159,195,120,194,239,192,225,191,169,192,48,195,7,199,96,204,46,210,106,214,42,216,46,215,6,212,70,209, +137,208,250,207,29,206,9,204,183,202,192,202,0,205,241,207,153,208,101,207,8,207,215,207,106,208,227,207,158,205,234,201, +144,198,127,196,57,195,252,194,150,196,195,199,248,203,55,209,226,214,145,219,160,222,134,224,155,225,191,225,56,225,164,224, +53,224,14,224,171,224,212,225,167,226,16,227,147,227,45,228,197,228,130,229,74,230,66,231,163,232,159,233,180,233,49,234, +32,236,49,239,105,243,163,248,117,253,94,1,96,5,146,9,116,13,207,16,36,18,244,15,252,11,234,8,236,6,98,5, +86,4,101,3,212,2,49,4,157,7,24,11,26,13,140,13,93,13,45,14,149,16,90,19,77,21,130,22,183,23,36,26, +182,30,173,36,48,42,14,46,82,48,210,49,61,51,82,52,154,52,6,52,109,50,27,48,146,46,251,46,190,48,105,50, +200,50,236,49,149,49,233,50,178,52,143,53,102,53,57,52,237,50,206,51,78,55,51,59,68,62,26,65,14,68,79,71, +198,74,197,76,240,75,134,73,99,71,0,70,92,69,39,69,96,68,213,66,168,65,72,65,236,64,101,64,162,64,243,65, +118,67,189,68,82,70,62,72,202,73,202,74,93,75,101,75,102,75,64,76,228,77,252,79,70,82,137,83,212,82,47,81, +138,79,82,77,94,74,14,71,56,67,130,63,77,61,95,60,125,59,64,58,123,56,202,54,15,55,64,57,157,58,250,57, +130,56,196,54,40,53,165,52,166,52,211,51,166,50,22,50,15,50,147,50,101,51,104,51,132,50,138,49,9,48,71,45, +223,41,83,38,126,34,37,31,90,29,196,28,72,28,98,27,26,26,144,24,217,22,249,20,254,18,233,16,184,14,133,12, +125,10,1,9,122,8,103,8,166,7,37,6,177,4,101,3,231,1,244,255,2,253,35,249,164,245,45,243,6,241,171,238, +7,236,12,233,127,230,67,229,182,228,235,227,21,227,95,226,126,225,164,224,9,224,120,223,215,222,249,221,130,220,155,218, +186,216,50,215,115,214,48,214,74,213,211,211,227,210,45,210,178,208,167,206,108,204,247,201,187,199,197,197,113,195,16,193, +69,191,169,189,46,188,104,187,206,186,204,185,11,185,132,184,100,183,25,182,42,181,244,179,155,178,47,178,134,178,229,178, +80,179,158,179,165,179,17,180,9,181,136,181,1,181,212,179,93,178,6,177,71,176,16,176,243,175,182,175,132,175,224,175, +9,177,102,178,5,179,155,178,202,177,157,177,114,178,166,179,181,180,155,181,34,182,66,182,124,182,208,182,211,182,197,182, +218,182,173,182,86,182,95,182,226,182,223,183,0,185,60,185,159,184,164,184,182,185,31,187,188,188,44,190,188,190,114,191, +138,193,0,196,206,197,176,199,249,201,49,204,151,206,20,209,190,210,171,211,183,212,234,213,9,215,87,216,234,217,146,219, +75,221,19,223,223,224,103,226,65,227,142,227,183,227,179,227,194,227,122,228,140,229,141,230,60,232,214,234,109,237,222,239, +133,242,227,244,238,246,58,249,43,251,55,252,127,253,144,255,132,1,30,3,169,4,229,5,61,7,125,9,27,12,62,14, +15,16,158,17,228,18,158,20,23,23,130,25,92,27,155,28,40,29,185,29,134,31,119,34,61,37,46,39,167,40,46,42, +14,44,77,46,71,48,4,49,146,48,33,48,101,48,41,49,79,50,121,51,230,51,42,52,190,53,75,56,96,58,184,59, +74,60,233,59,204,59,226,60,253,61,67,62,83,62,60,62,57,62,163,63,95,66,202,68,145,70,21,72,26,73,45,74, +166,75,247,75,128,74,214,72,142,71,81,70,243,69,127,70,145,70,84,70,212,70,95,71,87,71,77,71,188,70,190,68, +107,66,21,65,117,64,46,64,61,64,3,64,57,63,166,62,148,62,45,62,241,60,94,59,0,58,242,56,63,56,160,55, +57,54,217,51,198,49,220,48,124,48,4,48,77,47,1,46,136,44,235,43,193,43,178,42,199,40,174,38,111,36,86,34, +189,32,25,31,26,29,72,27,189,25,65,24,230,22,119,21,213,19,129,18,84,17,129,15,64,13,51,11,61,9,120,7, +22,6,65,4,101,1,107,254,71,252,22,251,130,250,189,249,58,248,98,246,112,244,29,242,216,239,68,238,29,237,228,235, +83,234,71,232,150,230,93,230,3,231,232,230,79,229,118,226,131,223,1,222,234,221,156,221,51,220,220,217,44,215,139,213, +222,213,202,214,124,214,142,212,131,209,0,207,46,207,75,209,183,209,219,206,224,202,221,200,86,202,193,205,79,207,29,205, +61,201,159,198,88,198,165,199,104,200,246,198,91,196,4,195,174,195,60,197,102,198,138,198,243,197,150,197,32,198,50,199, +164,199,171,198,158,196,107,194,215,192,102,192,192,192,186,192,63,192,205,192,15,195,229,197,185,199,158,199,76,198,21,198, +13,200,126,202,92,203,33,202,117,199,21,197,134,196,16,197,53,197,228,196,93,196,215,195,176,196,191,199,124,203,228,205, +64,206,33,205,126,204,235,205,48,208,45,209,214,208,60,208,98,208,60,210,64,213,169,215,30,217,77,218,22,219,219,219, +138,221,82,223,231,223,240,223,83,224,232,224,215,225,57,227,67,228,207,228,157,229,191,230,26,232,42,234,178,236,178,238, +250,239,26,241,101,242,238,243,175,245,98,247,209,248,53,250,249,251,10,254,168,255,121,0,19,1,250,1,53,3,252,4, +79,7,116,9,10,11,105,12,194,13,28,15,149,16,254,17,99,19,72,21,158,23,207,25,189,27,123,29,38,31,57,33, +150,35,129,37,45,39,3,41,72,42,220,42,198,43,220,44,73,45,150,45,60,46,232,46,16,48,255,49,124,51,40,52, +45,53,201,54,120,56,101,58,100,60,247,61,125,63,26,65,35,66,201,66,202,67,233,68,172,69,21,70,61,70,168,70, +235,71,91,73,254,73,0,74,220,73,210,73,83,74,68,75,194,75,159,75,125,75,198,75,179,76,44,78,124,79,74,80, +230,80,115,81,7,82,213,82,114,83,78,83,176,82,248,81,62,81,216,80,173,80,249,79,172,78,112,77,113,76,192,75, +165,75,208,75,169,75,61,75,176,74,235,73,48,73,220,72,208,72,159,72,241,71,235,70,3,70,70,69,156,68,78,68, +27,68,56,67,255,65,68,65,142,64,67,63,172,61,155,59,205,56,42,54,49,52,47,50,25,48,123,46,22,45,184,43, +156,42,123,41,21,40,201,38,174,37,168,36,206,35,176,34,250,32,87,31,240,29,36,28,61,26,158,24,145,22,16,20, +3,18,46,16,239,13,162,11,73,9,170,6,139,4,17,3,22,1,135,254,82,252,123,250,246,248,54,248,134,247,207,245, +152,243,234,241,198,240,184,239,95,238,134,236,141,234,230,232,109,231,244,229,136,228,13,227,104,225,160,223,159,221,135,219, +193,217,60,216,168,214,32,213,220,211,182,210,103,209,224,207,111,206,116,205,190,204,216,203,165,202,59,201,233,199,60,199, +221,198,180,197,241,195,215,194,190,194,28,195,75,195,139,194,9,193,3,192,198,191,141,191,29,191,60,190,141,188,9,187, +170,186,185,186,213,186,139,187,20,188,129,187,218,186,209,186,170,186,93,186,26,186,45,185,2,184,221,183,87,184,177,184, +110,185,107,186,228,186,100,187,84,188,215,188,253,188,169,189,104,190,135,190,136,190,201,190,33,191,228,191,57,193,109,194, +28,195,159,195,53,196,194,196,61,197,182,197,31,198,82,198,123,198,10,199,14,200,65,201,149,202,230,203,222,204,147,205, +98,206,130,207,60,209,119,211,71,213,69,214,37,215,51,216,52,217,96,218,158,219,90,220,250,220,74,222,5,224,150,225, +212,226,147,227,45,228,107,229,9,231,77,232,143,233,47,235,223,236,161,238,126,240,255,241,91,243,41,245,4,247,136,248, +49,250,251,251,86,253,121,254,208,255,56,1,169,2,50,4,128,5,110,6,68,7,61,8,94,9,91,10,236,10,136,11, +181,12,18,14,77,15,162,16,246,17,74,19,2,21,144,22,33,23,132,23,148,24,186,25,184,26,216,27,100,28,82,28, +49,29,65,31,26,33,112,34,165,35,113,36,25,37,32,38,162,38,240,37,34,37,23,37,125,37,56,38,82,39,90,40, +79,41,169,42,47,44,60,45,201,45,26,46,38,46,231,45,153,45,111,45,93,45,61,45,233,44,110,44,66,44,199,44, +131,45,205,45,198,45,157,45,5,45,61,44,205,43,88,43,162,42,55,42,233,41,32,41,136,40,163,40,169,40,127,40, +183,40,179,40,12,40,193,39,226,39,87,39,76,38,93,37,48,36,236,34,52,34,157,33,170,32,194,31,234,30,255,29, +125,29,61,29,144,28,169,27,164,26,191,24,78,22,140,20,119,19,124,18,179,17,230,16,181,15,177,14,63,14,196,13, +22,13,160,12,15,12,220,10,91,9,17,8,6,7,41,6,110,5,133,4,33,3,116,1,239,255,164,254,126,253,187,252, +64,252,66,251,178,249,143,248,7,248,61,247,242,245,155,244,111,243,164,242,61,242,88,241,92,239,36,237,182,235,21,235, +230,234,238,234,192,234,229,233,101,232,200,230,108,229,30,228,192,226,152,225,156,224,142,223,216,222,213,222,2,223,23,223, +105,223,207,223,199,223,88,223,162,222,210,221,124,221,133,221,242,220,171,219,121,218,171,217,157,217,216,218,153,220,103,221, +22,221,89,220,162,219,47,219,186,218,133,217,158,215,206,213,134,212,78,212,186,213,243,215,82,217,96,217,228,216,2,217, +144,218,223,220,255,221,67,221,239,219,46,219,31,219,107,219,112,219,184,218,214,217,222,217,41,219,20,221,189,222,200,223, +97,224,157,224,137,224,119,224,91,224,165,223,130,222,15,222,198,222,253,223,13,225,251,225,42,227,202,228,143,230,250,231, +201,232,247,232,201,232,178,232,177,232,90,232,159,231,202,230,31,230,27,230,38,231,192,232,24,234,2,235,172,235,54,236, +204,236,77,237,70,237,211,236,156,236,221,236,81,237,212,237,121,238,100,239,166,240,30,242,121,243,120,244,47,245,240,245, +166,246,201,246,107,246,66,246,141,246,59,247,128,248,255,249,22,251,125,252,37,255,37,2,56,4,121,5,25,6,248,5, +185,5,192,5,112,5,232,4,241,4,87,5,218,5,32,7,14,9,156,10,167,11,163,12,151,13,203,14,110,16,124,17, +52,17,130,16,119,16,9,17,250,17,72,19,224,20,216,22,64,25,151,27,103,29,255,30,164,32,232,33,90,34,36,34, +170,33,73,33,96,33,1,34,191,34,70,35,191,35,125,36,188,37,113,39,3,41,203,41,16,42,163,42,184,43,227,44, +154,45,129,45,45,45,227,45,206,47,204,49,44,51,239,51,26,52,41,52,192,52,61,53,153,52,41,51,204,49,195,48, +56,48,29,48,213,47,99,47,167,47,174,48,182,49,160,50,175,51,172,52,76,53,152,53,161,53,155,53,224,53,106,54, +210,54,239,54,10,55,98,55,216,55,36,56,47,56,251,55,112,55,133,54,93,53,45,52,69,51,190,50,25,50,241,48, +165,47,163,46,235,45,112,45,251,44,54,44,122,43,114,43,227,43,47,44,42,44,148,43,87,42,85,41,27,41,207,40, +213,39,187,38,185,37,133,36,125,35,13,35,195,34,54,34,114,33,70,32,167,30,61,29,87,28,45,27,59,25,45,23, +191,21,217,20,40,20,153,19,29,19,209,18,249,18,69,19,201,18,57,17,77,15,190,13,155,12,122,11,234,9,234,7, +233,5,69,4,255,2,203,1,64,0,107,254,246,252,43,252,124,251,114,250,21,249,123,247,211,245,94,244,3,243,171,241, +152,240,180,239,183,238,250,237,191,237,131,237,18,237,201,236,121,236,212,235,76,235,24,235,196,234,59,234,163,233,149,232, +223,230,45,229,16,228,96,227,203,226,36,226,87,225,105,224,140,223,228,222,58,222,49,221,17,220,146,219,160,219,108,219, +194,218,7,218,84,217,185,216,123,216,123,216,86,216,52,216,122,216,14,217,143,217,214,217,225,217,179,217,95,217,236,216, +67,216,98,215,120,214,177,213,23,213,188,212,176,212,229,212,97,213,67,214,121,215,198,216,250,217,198,218,240,218,174,218, +27,218,0,217,221,215,179,215,141,216,202,217,43,219,107,220,74,221,70,222,140,223,44,224,191,223,207,222,128,221,58,220, +46,220,50,221,154,221,35,221,6,221,168,221,196,222,72,224,179,225,94,226,166,226,44,227,222,227,125,228,28,229,227,229, +230,230,21,232,100,233,1,235,202,236,52,238,33,239,239,239,169,240,67,241,222,241,75,242,79,242,92,242,251,242,13,244, +52,245,47,246,207,246,43,247,164,247,131,248,190,249,7,251,243,251,100,252,175,252,67,253,82,254,161,255,196,0,158,1, +56,2,125,2,177,2,63,3,204,3,250,3,129,4,248,5,186,7,245,8,108,9,67,9,46,9,222,9,218,10,57,11, +240,10,126,10,104,10,32,11,119,12,190,13,202,14,222,15,31,17,174,18,57,20,231,20,151,20,248,19,115,19,53,19, +73,19,9,19,55,18,211,17,82,18,250,18,142,19,37,20,96,20,99,20,152,20,112,20,128,19,77,18,239,16,97,15, +140,14,189,14,10,15,87,15,50,16,106,17,203,18,94,20,70,21,210,20,194,19,223,18,38,18,176,17,132,17,64,17, +211,16,129,16,87,16,100,16,146,16,110,16,237,15,129,15,43,15,147,14,161,13,102,12,28,11,32,10,117,9,242,8, +169,8,169,8,221,8,20,9,202,8,210,7,239,6,164,6,88,6,116,5,7,4,112,2,104,1,82,1,98,1,183,0, +109,255,10,254,27,253,229,252,201,252,90,252,49,252,85,252,6,252,118,251,237,250,222,249,201,248,149,248,89,248,84,247, +144,246,55,246,146,245,94,245,246,245,17,246,131,245,16,245,24,244,114,242,90,241,176,240,132,239,78,238,95,237,27,236, +237,234,103,234,237,233,116,233,141,233,172,233,129,233,220,233,155,234,201,234,135,234,72,234,239,233,175,233,173,233,100,233, +176,232,13,232,182,231,184,231,25,232,112,232,107,232,55,232,12,232,248,231,4,232,53,232,116,232,104,232,190,231,226,230, +118,230,85,230,93,230,188,230,28,231,139,231,219,232,110,234,180,234,54,234,50,234,55,234,29,234,102,234,28,234,234,232, +141,232,49,233,55,233,248,232,96,233,190,233,38,234,76,235,250,235,114,235,41,235,132,235,134,235,133,235,36,236,22,237, +122,238,51,240,28,241,37,241,142,241,201,242,131,244,45,246,176,246,226,245,54,245,120,245,11,246,71,246,198,245,163,244, +213,243,2,244,234,244,60,246,104,247,246,247,127,248,86,249,192,249,250,249,154,250,181,250,32,250,100,250,96,251,226,251, +177,252,78,254,100,255,9,0,116,1,2,3,222,3,142,4,227,4,98,4,215,3,161,3,38,3,176,2,205,2,55,3, +225,3,210,4,157,5,134,6,29,8,154,9,6,10,184,9,76,9,242,8,194,8,147,8,69,8,23,8,64,8,223,8, +214,9,126,10,165,10,219,10,190,10,146,9,24,8,23,7,80,6,251,5,219,5,136,4,129,2,239,1,250,2,84,5, +215,9,250,14,248,17,131,19,236,20,40,21,192,20,76,21,56,21,95,19,252,17,195,17,133,17,34,18,201,19,84,20, +22,20,0,21,22,22,18,22,237,21,129,21,180,19,96,17,75,15,195,12,75,10,70,9,189,9,104,11,138,14,117,18, +193,21,215,23,230,24,74,25,90,25,70,25,2,25,76,24,89,23,28,23,203,23,105,24,171,24,245,24,255,24,253,24, +213,25,202,26,189,26,109,26,20,26,199,24,133,23,175,23,65,24,205,24,92,26,26,28,244,28,32,30,237,31,27,33, +237,33,132,34,116,33,53,31,143,29,20,28,54,26,248,24,44,24,29,23,191,22,73,23,114,23,20,23,149,22,166,21, +207,20,207,20,5,21,28,21,115,21,150,21,124,21,67,22,245,23,167,25,40,27,54,28,94,28,32,28,243,27,178,27, +135,27,75,27,109,26,135,25,69,25,24,25,12,25,146,25,147,25,126,24,120,23,128,22,222,20,114,19,136,18,22,17, +162,15,32,15,195,14,151,14,205,15,149,17,147,18,64,19,149,19,154,18,225,16,127,15,50,14,224,12,23,12,212,11, +193,11,175,11,72,11,133,10,181,9,10,9,215,8,13,9,12,9,244,8,69,9,94,9,199,8,7,8,222,6,13,5, +219,3,197,3,191,3,205,3,28,4,162,3,161,2,91,2,54,2,170,1,188,1,4,2,104,1,243,0,23,1,98,0, +246,254,214,253,90,252,164,250,18,250,14,250,102,249,164,248,211,247,85,246,8,245,148,244,37,244,147,243,40,243,105,242, +165,241,206,241,119,242,253,242,139,243,178,243,22,243,190,242,60,243,236,243,149,244,76,245,212,245,85,246,1,247,127,247, +148,247,14,247,175,245,1,244,131,242,209,240,35,239,59,238,176,237,37,237,56,237,122,237,242,236,96,236,142,236,197,236, +197,236,243,236,25,237,97,237,75,238,81,239,5,240,199,240,89,241,136,241,16,242,164,242,33,242,249,240,45,240,126,239, +213,238,148,238,125,238,127,238,247,238,123,239,105,239,218,238,248,237,44,237,20,237,123,237,22,238,88,239,1,241,107,242, +7,244,200,245,187,246,102,247,95,248,38,248,106,246,16,245,72,244,29,243,102,242,105,242,204,241,214,240,157,240,149,240, +170,240,158,241,72,242,106,241,44,240,120,239,217,238,221,238,72,240,69,242,40,244,72,246,103,248,233,249,228,250,139,251, +218,251,248,251,231,251,135,251,41,251,74,251,197,251,235,251,112,251,195,250,33,250,92,249,215,248,1,249,31,249,165,248, +51,248,231,247,103,247,124,247,165,248,229,249,211,250,192,251,49,252,78,252,42,253,70,254,170,254,13,255,136,255,254,254, +3,254,163,253,254,252,213,251,37,251,78,250,170,248,194,247,30,248,131,248,57,249,242,250,114,252,25,253,221,253,113,254, +234,253,3,253,141,252,51,252,0,252,61,252,98,252,61,252,133,252,114,253,107,254,2,255,31,255,181,254,231,253,243,252, +185,251,255,249,54,248,254,246,9,246,229,244,31,244,39,244,131,244,10,245,215,245,75,246,64,246,112,246,121,246,146,245, +183,244,222,244,86,245,226,245,236,246,141,247,52,247,45,247,1,248,156,248,206,248,16,249,233,248,34,248,111,247,231,246, +25,246,47,245,116,244,230,243,181,243,1,244,132,244,24,245,193,245,40,246,238,245,77,245,214,244,174,244,111,244,229,243, +55,243,120,242,228,241,19,242,2,243,214,243,62,244,167,244,35,245,87,245,13,245,89,244,198,243,237,243,121,244,194,244, +219,244,226,244,173,244,158,244,16,245,123,245,204,245,139,246,62,247,54,247,47,247,177,247,247,247,218,247,9,248,109,248, +195,248,111,249,28,250,230,249,66,249,72,249,198,249,35,250,125,250,199,250,185,250,182,250,251,250,230,250,81,250,213,249, +100,249,189,248,158,248,126,249,142,250,101,251,87,252,29,253,126,253,38,254,54,255,255,255,144,0,9,1,186,0,218,255, +184,255,106,0,27,1,209,1,149,2,231,2,23,3,182,3,50,4,7,4,188,3,138,3,44,3,206,2,155,2,101,2, +83,2,131,2,138,2,102,2,160,2,47,3,163,3,24,4,168,4,250,4,3,5,24,5,25,5,245,4,55,5,14,6, +180,6,170,6,81,6,25,6,82,6,66,7,128,8,89,9,230,9,123,10,186,10,113,10,2,10,133,9,1,9,208,8, +213,8,210,8,70,9,68,10,254,10,113,11,9,12,59,12,202,11,121,11,64,11,186,10,138,10,174,10,10,10,237,8, +147,8,204,8,25,9,192,9,59,10,239,9,221,9,191,10,143,11,161,11,112,11,45,11,214,10,207,10,24,11,34,11, +181,10,45,10,38,10,231,10,241,11,164,12,232,12,169,12,193,11,165,10,254,9,210,9,227,9,47,10,164,10,241,10, +216,10,102,10,219,9,94,9,24,9,40,9,23,9,74,8,10,7,205,5,100,4,9,3,107,2,72,2,22,2,11,2, +209,1,196,0,164,255,63,255,195,254,110,253,50,251,227,247,119,244,247,242,212,243,130,246,63,251,225,0,159,4,220,5, +231,5,230,4,241,2,50,1,181,255,193,253,1,252,91,251,141,251,77,252,111,253,130,254,170,255,52,1,125,2,186,2, +200,1,176,255,169,252,54,249,186,245,180,242,204,240,41,240,227,240,93,243,80,247,173,251,83,255,13,1,76,0,36,254, +3,252,141,250,33,250,119,250,158,250,207,250,210,251,250,252,183,253,191,254,196,255,206,255,158,255,19,0,88,0,236,255, +21,255,172,253,101,252,208,252,207,254,12,1,18,3,193,4,23,6,237,7,126,10,161,12,141,13,52,13,165,11,175,9, +63,8,5,7,127,5,1,4,246,2,198,2,225,3,159,5,152,6,74,6,67,5,122,4,174,4,155,5,126,6,30,7, +87,7,48,7,147,7,245,8,185,10,208,12,42,15,152,16,3,17,166,17,70,18,108,18,14,19,162,19,159,18,141,17, +98,18,199,19,155,20,130,21,174,21,126,20,167,19,126,19,102,18,199,16,212,15,39,15,24,15,163,16,177,18,43,20, +219,21,209,23,49,25,68,26,255,26,21,26,136,23,254,20,137,19,85,19,57,20,109,21,13,22,238,21,146,21,134,21, +195,21,211,21,117,21,158,20,106,19,110,18,251,17,197,17,254,17,243,18,2,20,254,20,126,22,222,23,83,24,178,24, +11,25,49,24,199,22,199,21,52,20,18,18,239,16,129,16,50,16,11,17,96,18,66,18,145,17,138,17,47,17,177,16, +28,17,8,17,148,15,90,14,100,13,165,11,123,10,241,10,175,11,36,12,127,12,215,11,125,10,60,10,250,10,150,11, +59,12,187,12,13,12,116,10,6,9,16,8,166,7,237,7,125,8,213,8,211,8,133,8,253,7,37,7,9,6,26,5, +125,4,245,3,181,3,175,3,102,3,84,3,253,3,75,4,191,3,90,3,241,2,209,1,233,0,121,0,106,255,107,254, +149,254,178,254,54,254,79,254,135,254,202,253,18,253,226,252,86,252,178,251,115,251,177,250,81,249,95,248,57,248,247,248, +98,250,16,251,109,250,153,249,204,248,182,247,69,247,168,247,128,247,149,246,173,245,204,244,52,244,132,244,53,245,139,245, +183,245,232,245,9,246,251,245,76,245,243,243,152,242,78,241,254,239,48,239,202,238,56,238,222,237,211,237,108,237,42,237, +157,237,175,237,48,237,83,237,210,237,4,238,188,238,222,239,49,240,238,239,54,239,22,237,120,234,71,233,43,233,104,233, +95,234,37,235,121,234,100,233,250,232,168,232,85,232,105,232,96,232,25,232,81,232,255,232,112,233,106,233,250,232,84,232, +196,231,77,231,253,230,248,230,13,231,33,231,96,231,147,231,137,231,104,231,209,230,158,229,223,228,255,228,43,229,56,229, +73,229,198,228,226,227,101,227,240,226,116,226,229,226,211,227,100,228,80,229,119,230,122,230,223,229,153,229,172,228,62,227, +31,227,24,228,228,228,217,229,235,230,90,231,229,231,2,233,84,233,109,232,19,231,78,229,147,227,2,227,37,227,247,226, +229,226,68,227,183,227,146,228,239,229,4,231,214,231,220,232,107,233,4,233,97,232,238,231,98,231,228,230,201,230,226,230, +0,231,106,231,86,232,77,233,218,233,113,234,111,235,42,236,111,236,250,236,171,237,7,238,172,238,170,239,233,239,161,239, +234,239,137,240,44,241,73,242,89,243,162,243,217,243,114,244,245,244,151,245,117,246,190,246,151,246,230,246,109,247,203,247, +74,248,155,248,121,248,175,248,121,249,47,250,211,250,158,251,93,252,60,253,46,254,119,254,45,254,17,254,51,254,199,254, +61,0,182,1,102,2,88,3,33,5,165,6,93,7,171,7,153,7,149,7,127,8,35,10,147,11,79,12,25,12,34,11, +75,10,4,10,11,10,96,10,18,11,222,11,216,12,60,14,204,15,68,17,169,18,208,19,104,20,61,20,88,19,76,18, +218,17,239,17,233,17,150,17,81,17,129,17,49,18,20,19,5,20,32,21,57,22,40,23,3,24,95,24,164,23,82,22, +91,21,246,20,55,21,33,22,21,23,219,23,239,24,251,25,98,26,177,26,58,27,80,27,14,27,18,27,3,27,203,26, +16,27,123,27,87,27,15,27,215,26,26,26,45,25,205,24,171,24,112,24,50,24,120,23,45,22,113,21,187,21,67,22, +177,22,19,23,247,22,106,22,29,22,226,21,43,21,147,20,198,20,21,21,229,20,190,20,195,20,58,20,59,19,169,18, +133,18,75,18,31,18,11,18,148,17,247,16,203,16,132,16,111,15,8,14,213,12,198,11,51,11,128,11,24,12,87,12, +95,12,78,12,22,12,239,11,179,11,175,10,214,8,230,6,98,5,107,4,13,4,15,4,9,4,245,3,8,4,53,4, +88,4,115,4,92,4,187,3,113,2,155,0,114,254,111,252,235,250,182,249,202,248,176,248,76,249,179,249,185,249,230,249, +16,250,208,249,75,249,76,248,109,246,100,244,24,243,87,242,218,241,155,241,231,240,84,239,215,237,32,237,189,236,117,236, +37,236,0,235,17,233,163,231,207,230,95,229,25,227,143,224,218,221,145,219,156,218,39,218,208,216,128,215,17,216,31,219, +244,224,247,232,136,239,224,240,133,237,121,232,208,227,1,225,64,224,58,223,138,220,71,218,89,218,64,220,59,223,74,226, +221,227,79,228,41,229,188,229,181,228,143,226,75,223,82,218,79,213,98,210,129,209,178,210,115,214,105,219,117,224,140,230, +183,236,108,239,239,237,218,234,229,231,180,229,5,229,51,229,231,228,188,228,210,229,126,231,227,232,82,234,152,235,219,235, +84,235,219,234,154,234,191,234,160,235,160,236,51,237,113,238,100,241,100,245,129,249,58,253,230,255,220,1,86,4,216,6, +211,7,59,7,63,5,134,1,211,253,126,252,153,252,111,252,207,252,69,254,20,0,141,2,79,5,7,6,129,4,67,3, +122,3,26,5,89,8,194,11,97,13,72,14,88,16,46,19,95,22,49,26,94,29,141,30,165,30,206,30,240,30,18,31, +72,31,233,30,228,29,148,29,241,30,66,33,71,35,135,36,7,37,218,36,137,36,135,36,54,36,49,35,93,34,71,34, +212,34,242,36,51,41,241,45,212,49,80,53,64,56,237,57,118,58,82,57,178,53,62,49,112,46,147,45,68,46,63,48, +198,49,122,49,128,48,41,48,139,48,176,49,11,51,117,51,57,51,119,51,49,52,62,53,233,54,169,56,237,57,81,59, +37,61,188,62,205,63,138,64,185,64,222,63,244,61,134,59,13,57,138,54,93,52,94,51,117,51,220,51,112,52,207,52, +0,52,95,50,17,49,52,48,220,47,60,48,20,48,175,46,125,45,236,44,242,43,88,43,49,44,54,45,115,45,91,45, +159,44,110,43,60,43,193,43,150,43,216,42,65,41,189,37,182,33,90,31,3,30,208,28,118,28,130,28,203,27,219,26, +35,26,209,24,255,22,155,21,183,20,50,20,250,19,85,19,234,17,139,16,232,15,187,15,128,15,29,15,138,14,33,13, +80,10,202,6,120,3,76,0,135,253,195,251,77,250,123,248,30,247,82,246,61,245,68,244,190,243,161,242,13,241,69,240, +219,239,9,239,113,238,10,238,11,237,194,235,131,234,9,233,188,231,161,230,241,228,88,227,250,226,233,226,9,226,137,224, +58,222,85,219,129,217,62,217,82,217,22,217,25,216,174,213,137,210,226,207,210,205,145,204,94,204,57,204,192,203,231,203, +105,204,86,204,22,204,230,203,39,203,54,202,165,201,10,201,120,200,90,200,50,200,209,199,177,199,100,199,80,198,193,196, +249,194,108,193,35,193,246,193,164,194,229,194,210,194,45,194,185,193,63,194,235,194,246,194,207,194,177,194,175,194,61,195, +3,196,18,196,74,195,49,194,125,193,194,193,135,194,243,194,37,195,55,195,238,194,7,195,235,195,120,196,72,196,46,196, +39,196,65,196,104,197,56,199,117,200,61,201,177,201,132,201,190,201,20,203,106,204,124,205,11,207,115,208,74,209,132,210, +209,211,85,212,17,213,129,214,143,215,121,216,19,218,112,219,16,220,223,220,196,221,36,222,142,222,64,223,147,223,156,223, +224,223,129,224,159,225,45,227,182,228,38,230,186,231,153,233,224,235,19,238,109,239,55,240,12,241,161,241,38,242,97,243, +231,244,23,246,125,247,44,249,153,250,67,252,143,254,222,0,24,3,86,5,230,6,216,7,251,8,238,9,63,10,160,10, +60,11,228,11,91,13,164,15,147,17,18,19,173,20,17,22,67,23,169,24,145,25,122,25,64,25,135,25,61,26,85,27, +110,28,77,29,136,30,65,32,236,33,177,35,164,37,240,38,105,39,173,39,192,39,167,39,245,39,161,40,86,41,70,42, +140,43,42,45,82,47,137,49,39,51,106,52,59,53,36,53,222,52,250,52,110,52,24,51,87,50,97,50,215,50,57,52, +251,53,183,54,214,54,86,55,196,55,216,55,241,55,156,55,159,54,206,53,79,53,157,52,243,51,130,51,223,50,51,50, +236,49,197,49,113,49,35,49,231,48,133,48,234,47,47,47,106,46,148,45,190,44,68,44,34,44,214,43,70,43,148,42, +159,41,200,40,161,40,127,40,185,39,250,38,108,38,91,37,37,36,63,35,223,33,247,31,122,30,25,29,64,27,168,25, +106,24,216,22,103,21,133,20,95,19,225,17,192,16,163,15,46,14,231,12,151,11,164,9,172,7,70,6,244,4,117,3, +232,1,24,0,45,254,200,252,238,251,61,251,147,250,197,249,192,248,197,247,228,246,5,246,63,245,61,244,37,242,0,239, +63,236,57,235,150,235,187,235,183,234,39,233,39,232,57,232,251,232,36,233,169,231,41,229,218,226,204,224,186,222,0,221, +166,219,110,218,197,217,15,218,5,219,103,220,139,221,19,221,165,218,173,215,156,213,247,212,117,213,215,213,210,212,179,210, +238,208,145,208,227,209,80,212,63,214,50,214,82,212,38,210,201,208,246,207,211,206,24,205,31,203,168,201,194,201,180,203, +62,206,244,207,116,208,224,207,224,206,155,206,17,207,236,206,207,205,162,204,214,203,149,203,25,204,123,204,137,203,237,201, +254,200,205,200,29,201,225,201,64,202,170,201,48,201,186,201,224,202,108,204,131,206,124,208,178,209,121,210,29,211,158,211, +106,212,140,213,54,214,114,214,99,215,84,217,121,219,46,221,248,221,202,221,197,221,210,222,24,224,159,224,157,224,15,224, +209,222,19,222,252,222,230,224,245,226,68,229,158,231,161,233,187,235,9,238,191,239,201,240,229,241,24,243,3,244,240,244, +33,246,119,247,13,249,250,250,229,252,156,254,55,0,160,1,227,2,62,4,104,5,239,5,55,6,211,6,189,7,15,9, +8,11,21,13,194,14,248,16,122,20,105,24,184,27,55,30,190,31,98,32,249,32,199,33,20,34,203,33,156,33,184,33, +49,34,81,35,175,36,145,37,38,38,223,38,126,39,216,39,93,40,130,41,111,43,209,45,229,47,73,49,108,50,231,51, +249,53,98,56,127,58,239,59,0,61,33,62,107,63,169,64,103,65,133,65,130,65,160,65,198,65,101,66,150,67,45,68, +167,67,24,67,237,66,167,66,153,66,40,67,178,67,16,68,243,68,75,70,133,71,134,72,37,73,57,73,90,73,241,73, +145,74,234,74,247,74,105,74,75,73,112,72,86,72,135,72,93,72,151,71,107,70,83,69,180,68,143,68,131,68,32,68, +80,67,75,66,110,65,20,65,40,65,24,65,192,64,140,64,162,64,228,64,86,65,144,65,3,65,236,63,148,62,172,60, +131,58,169,56,142,54,186,51,240,48,131,46,54,44,176,42,74,42,253,41,59,41,97,40,71,39,187,37,41,36,154,34, +245,32,138,31,52,30,176,28,140,27,208,26,172,25,82,24,127,23,211,22,241,21,32,21,16,20,102,18,162,16,205,14, +126,12,49,10,77,8,80,6,79,4,210,2,122,1,214,255,44,254,128,252,161,250,211,248,46,247,119,245,183,243,239,241, +18,240,119,238,70,237,40,236,10,235,250,233,171,232,41,231,239,229,14,229,56,228,28,227,55,225,110,222,134,219,55,217, +151,215,128,214,165,213,157,212,82,211,17,210,44,209,167,208,20,208,44,207,37,206,253,204,137,203,76,202,122,201,93,200, +24,199,146,198,115,198,53,198,119,198,241,198,102,198,53,197,77,196,57,195,218,193,218,192,236,191,200,190,38,190,215,189, +5,189,26,188,122,187,173,186,12,186,27,186,26,186,186,185,150,185,144,185,130,185,26,186,43,187,207,187,34,188,123,188, +163,188,216,188,105,189,245,189,119,190,34,191,105,191,73,191,197,191,238,192,211,193,39,194,11,194,139,193,42,193,90,193, +188,193,233,193,6,194,106,194,107,195,253,196,155,198,249,199,55,201,121,202,239,203,118,205,90,206,108,206,91,206,139,206, +22,207,74,208,225,209,24,211,23,212,119,213,13,215,116,216,124,217,26,218,200,218,6,220,130,221,219,222,7,224,189,224, +73,225,191,226,8,229,13,231,211,232,198,234,126,236,5,238,179,239,248,240,175,241,204,242,109,244,249,245,130,247,235,248, +189,249,108,250,146,251,234,252,81,254,184,255,159,0,69,1,102,2,176,3,166,4,159,5,157,6,145,7,56,9,123,11, +73,13,191,14,96,16,156,17,108,18,172,19,22,21,18,22,26,23,50,24,194,24,105,25,252,26,227,28,110,30,184,31, +180,32,76,33,252,33,18,35,48,36,219,36,240,36,219,36,58,37,54,38,145,39,250,40,24,42,225,42,189,43,219,44, +11,46,23,47,159,47,116,47,12,47,199,46,128,46,104,46,186,46,16,47,73,47,184,47,52,48,139,48,8,49,100,49, +27,49,158,48,98,48,58,48,74,48,139,48,64,48,147,47,93,47,73,47,224,46,188,46,223,46,178,46,182,46,62,47, +80,47,183,46,63,46,206,45,252,44,40,44,96,43,84,42,84,41,161,40,215,39,194,38,131,37,64,36,86,35,239,34, +188,34,156,34,122,34,234,33,237,32,238,31,224,30,162,29,118,28,70,27,248,25,15,25,164,24,12,24,11,23,200,21, +48,20,138,18,60,17,246,15,128,14,63,13,44,12,244,10,207,9,207,8,158,7,108,6,127,5,142,4,153,3,228,2, +7,2,143,0,235,254,131,253,60,252,41,251,127,250,2,250,88,249,127,248,172,247,28,247,232,246,174,246,166,245,137,243, +65,241,207,239,253,238,30,238,21,237,176,235,184,233,0,232,98,231,75,231,249,230,88,230,9,229,41,227,45,226,136,226, +207,226,66,226,53,225,155,223,8,222,220,221,202,222,34,223,102,222,48,221,26,220,247,219,220,220,110,221,207,220,146,219, +79,218,117,217,126,217,237,217,220,217,151,217,173,217,174,217,107,217,105,217,154,217,140,217,98,217,73,217,36,217,39,217, +155,217,72,218,218,218,57,219,72,219,12,219,236,218,45,219,119,219,96,219,11,219,220,218,2,219,144,219,90,220,163,220, +9,220,102,219,151,219,66,220,195,220,248,220,206,220,111,220,145,220,105,221,94,222,33,223,198,223,74,224,11,225,121,226, +3,228,181,228,112,228,146,227,139,226,21,226,145,226,118,227,51,228,186,228,46,229,205,229,194,230,167,231,232,231,138,231, +234,230,92,230,88,230,77,231,31,233,32,235,139,236,42,237,125,237,7,238,187,238,84,239,150,239,85,239,201,238,118,238, +124,238,174,238,32,239,1,240,89,241,49,243,98,245,113,247,21,249,87,250,59,251,222,251,105,252,224,252,107,253,92,254, +117,255,79,0,80,1,21,3,81,5,56,7,75,8,138,8,140,8,3,9,226,9,130,10,146,10,68,10,25,10,156,10, +203,11,24,13,55,14,58,15,62,16,147,17,100,19,36,21,77,22,16,23,169,23,16,24,138,24,105,25,153,26,251,27, +104,29,117,30,30,31,13,32,163,33,133,35,38,37,4,38,213,37,226,36,209,35,30,35,17,35,167,35,128,36,94,37, +153,38,160,40,56,43,132,45,201,46,40,47,83,47,173,47,16,48,40,48,206,47,57,47,207,46,170,46,188,46,29,47, +177,47,56,48,227,48,216,49,158,50,221,50,205,50,134,50,27,50,238,49,254,49,245,49,44,50,47,51,151,52,152,53, +235,53,172,53,83,53,117,53,228,53,248,53,162,53,53,53,209,52,183,52,19,53,105,53,35,53,96,52,157,51,27,51, +193,50,86,50,215,49,106,49,14,49,183,48,120,48,46,48,134,47,138,46,132,45,164,44,18,44,217,43,199,43,147,43, +247,42,235,41,232,40,68,40,177,39,41,39,5,39,201,38,196,37,95,36,29,35,170,33,14,32,195,30,140,29,53,28, +82,27,254,26,167,26,50,26,157,25,161,24,163,23,56,23,232,22,252,21,136,20,192,18,199,16,40,15,22,14,250,12, +134,11,20,10,231,8,241,7,30,7,92,6,148,5,176,4,158,3,116,2,76,1,29,0,233,254,188,253,142,252,105,251, +107,250,133,249,171,248,248,247,86,247,146,246,174,245,158,244,74,243,251,241,242,240,23,240,106,239,219,238,229,237,116,236, +73,235,178,234,58,234,145,233,139,232,11,231,122,229,85,228,136,227,220,226,48,226,34,225,185,223,168,222,62,222,8,222, +157,221,242,220,72,220,253,219,244,219,181,219,39,219,111,218,152,217,226,216,124,216,33,216,185,215,95,215,223,214,75,214, +52,214,109,214,81,214,14,214,236,213,155,213,69,213,96,213,127,213,71,213,25,213,211,212,21,212,113,211,103,211,120,211, +102,211,101,211,71,211,9,211,49,211,198,211,64,212,99,212,68,212,44,212,147,212,113,213,28,214,75,214,62,214,54,214, +129,214,90,215,96,216,254,216,57,217,90,217,108,217,120,217,181,217,58,218,219,218,131,219,58,220,225,220,100,221,35,222, +81,223,113,224,66,225,6,226,145,226,156,226,194,226,106,227,246,227,26,228,67,228,144,228,23,229,52,230,140,231,109,232, +15,233,203,233,86,234,165,234,255,234,79,235,160,235,65,236,8,237,191,237,159,238,161,239,157,240,200,241,243,242,152,243, +252,243,167,244,114,245,58,246,13,247,137,247,174,247,54,248,57,249,54,250,55,251,61,252,207,252,10,253,123,253,27,254, +202,254,152,255,47,0,63,0,41,0,78,0,178,0,91,1,41,2,214,2,124,3,60,4,237,4,153,5,78,6,171,6, +144,6,141,6,229,6,80,7,152,7,194,7,225,7,36,8,153,8,7,9,79,9,130,9,187,9,50,10,5,11,223,11, +73,12,66,12,57,12,147,12,61,13,224,13,92,14,183,14,239,14,43,15,111,15,93,15,231,14,145,14,115,14,35,14, +173,13,97,13,72,13,138,13,56,14,216,14,30,15,64,15,62,15,2,15,179,14,51,14,97,13,189,12,165,12,226,12, +92,13,218,13,190,13,58,13,43,13,164,13,88,14,56,15,157,15,247,14,50,14,32,14,17,14,140,13,237,12,54,12, +151,11,192,11,89,12,113,12,57,12,40,12,245,11,152,11,77,11,181,10,184,9,251,8,168,8,102,8,83,8,134,8, +176,8,166,8,96,8,203,7,86,7,127,7,234,7,230,7,61,7,237,5,43,4,181,2,14,2,192,1,57,1,183,0, +177,0,30,1,175,1,37,2,40,2,146,1,220,0,130,0,86,0,8,0,131,255,158,254,127,253,232,252,34,253,133,253, +158,253,103,253,201,252,22,252,235,251,16,252,229,251,98,251,158,250,135,249,149,248,75,248,113,248,185,248,243,248,186,248, +16,248,127,247,36,247,227,246,224,246,194,246,246,245,236,244,116,244,166,244,112,245,148,246,56,247,246,246,105,246,26,246, +46,246,167,246,222,246,19,246,163,244,85,243,121,242,111,242,51,243,205,243,214,243,3,244,121,244,195,244,255,244,64,245, +23,245,139,244,230,243,24,243,110,242,123,242,229,242,8,243,26,243,119,243,8,244,173,244,42,245,35,245,215,244,203,244, +211,244,133,244,18,244,202,243,176,243,211,243,74,244,233,244,136,245,71,246,44,247,227,247,45,248,31,248,217,247,131,247, +103,247,129,247,111,247,57,247,49,247,63,247,101,247,29,248,76,249,49,250,154,250,186,250,133,250,82,250,147,250,194,250, +63,250,120,249,232,248,136,248,113,248,149,248,157,248,200,248,124,249,107,250,86,251,77,252,198,252,100,252,207,251,106,251, +253,250,217,250,72,251,192,251,220,251,178,251,39,251,124,250,100,250,208,250,38,251,22,251,44,250,63,248,80,246,67,245, +201,244,198,244,160,245,254,246,65,248,87,249,56,250,1,251,109,252,167,254,199,0,34,2,147,2,16,2,67,1,62,1, +225,1,40,2,214,1,112,1,84,1,182,1,142,2,86,3,127,3,19,3,135,2,55,2,45,2,52,2,30,2,20,2, +112,2,60,3,22,4,195,4,93,5,4,6,240,6,126,8,119,10,26,12,41,13,223,13,53,14,77,14,134,14,178,14, +156,14,172,14,220,14,158,14,51,14,31,14,16,14,247,13,93,14,248,14,46,15,137,15,143,16,204,17,249,18,62,20, +134,21,217,22,88,24,142,25,254,25,223,25,170,25,212,25,154,26,105,27,129,27,15,27,132,26,235,25,101,25,240,24, +33,24,50,23,235,22,99,23,52,24,46,25,221,25,255,25,85,26,128,27,41,29,248,30,194,32,7,34,176,34,48,35, +142,35,160,35,169,35,156,35,42,35,186,34,201,34,41,35,172,35,79,36,169,36,118,36,20,36,206,35,172,35,189,35, +190,35,50,35,87,34,219,33,179,33,122,33,98,33,203,33,108,34,240,34,128,35,25,36,91,36,90,36,119,36,124,36, +26,36,131,35,185,34,138,33,127,32,27,32,251,31,217,31,206,31,102,31,126,30,254,29,254,29,134,29,168,28,21,28, +144,27,16,27,66,27,251,27,135,28,14,29,165,29,195,29,102,29,212,28,212,27,146,26,146,25,154,24,92,23,56,22, +56,21,4,20,216,18,251,17,73,17,199,16,128,16,11,16,68,15,107,14,140,13,187,12,56,12,217,11,85,11,209,10, +97,10,187,9,224,8,49,8,237,7,8,8,39,8,211,7,232,6,151,5,75,4,156,3,163,3,188,3,117,3,185,2, +57,1,37,255,143,253,209,252,22,252,6,251,16,250,62,249,116,248,240,247,153,247,246,246,5,246,45,245,141,244,6,244, +137,243,23,243,185,242,124,242,89,242,23,242,105,241,95,240,85,239,95,238,103,237,139,236,187,235,186,234,202,233,57,233, +200,232,98,232,72,232,40,232,152,231,7,231,235,230,19,231,71,231,87,231,8,231,159,230,108,230,28,230,146,229,20,229, +95,228,73,227,125,226,43,226,215,225,166,225,187,225,81,225,60,224,95,223,19,223,31,223,128,223,199,223,98,223,176,222, +55,222,188,221,62,221,39,221,78,221,61,221,253,220,200,220,199,220,4,221,53,221,34,221,5,221,255,220,239,220,2,221, +109,221,233,221,42,222,52,222,37,222,36,222,48,222,254,221,120,221,247,220,184,220,199,220,57,221,226,221,95,222,172,222, +18,223,189,223,158,224,98,225,149,225,32,225,107,224,16,224,92,224,239,224,33,225,239,224,212,224,245,224,71,225,198,225, +31,226,56,226,156,226,127,227,103,228,30,229,169,229,199,229,161,229,230,229,173,230,158,231,154,232,105,233,210,233,41,234, +204,234,155,235,93,236,198,236,158,236,92,236,165,236,96,237,54,238,24,239,194,239,28,240,166,240,136,241,84,242,4,243, +204,243,128,244,16,245,159,245,251,245,17,246,43,246,83,246,111,246,182,246,77,247,12,248,218,248,170,249,122,250,133,251, +191,252,209,253,205,254,212,255,124,0,164,0,185,0,226,0,45,1,252,1,31,3,201,3,237,3,24,4,131,4,95,5, +218,6,106,8,110,9,24,10,186,10,27,11,15,11,201,10,137,10,139,10,12,11,254,11,239,12,112,13,148,13,227,13, +170,14,187,15,170,16,10,17,185,16,54,16,36,16,166,16,107,17,6,18,61,18,102,18,236,18,155,19,37,20,152,20, +168,20,244,19,18,19,186,18,196,18,10,19,155,19,230,19,151,19,115,19,220,19,80,20,175,20,28,21,77,21,78,21, +134,21,183,21,120,21,236,20,32,20,48,19,195,18,7,19,51,19,218,18,66,18,153,17,12,17,238,16,19,17,240,16, +115,16,236,15,136,15,86,15,98,15,145,15,157,15,67,15,149,14,243,13,147,13,106,13,89,13,39,13,193,12,104,12, +51,12,204,11,30,11,80,10,80,9,67,8,156,7,89,7,46,7,35,7,16,7,149,6,222,5,53,5,84,4,62,3, +116,2,240,1,107,1,45,1,93,1,126,1,61,1,191,0,46,0,181,255,91,255,228,254,88,254,0,254,190,253,68,253, +179,252,43,252,118,251,144,250,196,249,53,249,211,248,155,248,126,248,50,248,119,247,136,246,230,245,171,245,151,245,147,245, +130,245,40,245,193,244,199,244,29,245,88,245,91,245,31,245,167,244,47,244,166,243,204,242,0,242,213,241,49,242,179,242, +244,242,88,242,235,240,229,239,50,240,124,241,226,242,130,243,238,242,203,241,7,241,161,240,84,240,77,240,103,240,47,240, +226,239,8,240,142,240,29,241,144,241,204,241,171,241,42,241,104,240,177,239,71,239,36,239,45,239,84,239,93,239,27,239, +203,238,210,238,59,239,163,239,133,239,217,238,63,238,47,238,113,238,155,238,125,238,34,238,224,237,6,238,120,238,249,238, +78,239,7,239,18,238,51,237,18,237,121,237,217,237,150,237,48,236,10,234,78,232,140,231,96,231,43,231,95,230,230,228, +154,227,103,227,85,228,11,230,88,232,220,234,56,237,133,239,180,241,10,243,246,242,189,241,246,239,30,238,213,236,175,236, +118,237,109,238,97,239,171,240,59,242,138,243,99,244,230,244,22,245,210,244,233,243,87,242,139,240,12,239,41,238,53,238, +103,239,97,241,207,243,215,246,40,250,251,252,43,255,226,0,176,1,80,1,64,0,12,255,70,254,152,254,209,255,0,1, +233,1,223,2,235,3,41,5,186,6,240,7,28,8,165,7,48,7,246,6,80,7,119,8,241,9,104,11,50,13,133,15, +50,18,16,21,194,23,194,25,12,27,5,28,158,28,105,28,79,27,182,25,58,24,120,23,199,23,219,24,253,25,205,26, +148,27,173,28,13,30,106,31,145,32,138,33,140,34,192,35,35,37,180,38,97,40,209,41,198,42,150,43,194,44,105,46, +78,48,226,49,152,50,131,50,54,50,19,50,92,50,71,51,116,52,41,53,72,53,68,53,98,53,156,53,182,53,68,53, +67,52,97,51,57,51,193,51,153,52,112,53,44,54,13,55,100,56,13,58,123,59,61,60,46,60,80,59,237,57,181,56, +31,56,187,55,248,54,55,54,41,54,174,54,67,55,169,55,154,55,236,54,232,53,209,52,159,51,132,50,184,49,29,49, +187,48,216,48,98,49,30,50,249,50,127,51,33,51,20,50,194,48,22,47,7,45,199,42,76,40,216,37,32,36,71,35, +215,34,155,34,103,34,236,33,102,33,22,33,123,32,54,31,139,29,118,27,217,24,104,22,210,20,211,19,15,19,155,18, +98,18,43,18,251,17,179,17,250,16,210,15,130,14,49,13,238,11,179,10,62,9,111,7,135,5,182,3,228,1,37,0, +193,254,171,253,146,252,106,251,84,250,57,249,228,247,50,246,17,244,185,241,189,239,120,238,179,237,10,237,55,236,33,235, +19,234,123,233,70,233,16,233,110,232,247,230,187,228,137,226,233,224,147,223,79,222,22,221,162,219,21,218,43,217,254,216, +225,216,117,216,198,215,225,214,19,214,143,213,26,213,159,212,50,212,117,211,76,210,78,209,179,208,34,208,160,207,76,207, +242,206,144,206,47,206,123,205,119,204,161,203,253,202,98,202,21,202,248,201,137,201,233,200,90,200,134,199,128,198,230,197, +180,197,158,197,214,197,98,198,233,198,141,199,135,200,114,201,236,201,5,202,201,201,99,201,79,201,170,201,31,202,143,202, +10,203,103,203,151,203,200,203,243,203,221,203,171,203,183,203,6,204,88,204,143,204,178,204,229,204,106,205,74,206,59,207, +37,208,57,209,108,210,174,211,37,213,139,214,75,215,134,215,192,215,243,215,35,216,184,216,149,217,64,218,225,218,200,219, +193,220,165,221,105,222,237,222,152,223,243,224,157,226,250,227,28,229,250,229,103,230,202,230,112,231,39,232,36,233,150,234, +215,235,151,236,116,237,165,238,5,240,185,241,99,243,71,244,194,244,171,245,4,247,144,248,50,250,98,251,211,251,254,251, +54,252,153,252,119,253,150,254,108,255,91,0,14,2,52,4,69,6,10,8,3,9,20,9,67,9,86,10,218,11,52,13, +55,14,194,14,5,15,173,15,10,17,189,18,88,20,136,21,34,22,124,22,44,23,31,24,178,24,192,24,164,24,136,24, +178,24,184,25,119,27,31,29,123,30,183,31,133,32,213,32,29,33,51,33,182,32,42,32,29,32,111,32,40,33,46,34, +204,34,244,34,85,35,226,35,81,36,249,36,159,37,131,37,244,36,140,36,10,36,145,35,181,35,7,36,1,36,28,36, +110,36,100,36,38,36,19,36,218,35,140,35,156,35,188,35,87,35,149,34,236,33,197,33,99,34,69,35,118,35,195,34, +165,33,142,32,229,31,213,31,239,31,149,31,162,30,128,29,187,28,106,28,49,28,189,27,223,26,166,25,173,24,125,24, +187,24,219,24,198,24,56,24,11,23,242,21,96,21,202,20,206,19,170,18,119,17,83,16,142,15,2,15,74,14,99,13, +73,12,6,11,30,10,210,9,162,9,20,9,247,7,65,6,151,4,211,3,194,3,150,3,19,3,48,2,205,0,67,255, +44,254,159,253,65,253,183,252,230,251,6,251,97,250,4,250,179,249,11,249,246,247,228,246,34,246,165,245,134,245,128,245, +163,244,203,242,236,240,116,239,104,238,75,238,6,239,170,239,32,240,157,240,87,240,19,239,217,237,11,237,114,236,114,236, +240,236,233,236,58,236,128,235,214,234,93,234,44,234,147,233,86,232,130,231,187,231,158,232,185,233,103,234,14,234,80,233, +31,233,61,233,58,233,82,233,86,233,194,232,232,231,105,231,63,231,52,231,88,231,121,231,66,231,237,230,9,231,117,231, +149,231,129,231,147,231,62,231,14,230,236,228,195,228,104,229,123,230,141,231,238,231,226,231,102,232,67,233,145,233,90,233, +213,232,251,231,120,231,216,231,130,232,26,233,224,233,71,234,203,233,63,233,79,233,135,233,185,233,61,234,220,234,33,235, +247,234,80,234,52,233,45,232,241,231,145,232,111,233,7,234,100,234,158,234,144,234,91,234,71,234,91,234,162,234,239,234, +137,234,99,233,91,232,130,231,79,230,41,229,111,228,220,227,65,228,166,230,24,234,110,237,201,240,82,243,151,243,96,242, +34,241,212,239,170,238,55,238,175,237,218,236,113,237,228,239,174,242,60,245,128,247,163,248,238,248,163,249,73,250,188,249, +126,248,18,247,252,244,8,243,255,242,2,245,42,248,68,252,186,0,16,4,254,5,96,7,224,7,171,6,201,4,183,3, +74,3,29,3,182,3,41,5,37,7,224,9,200,12,116,14,251,14,117,15,206,15,196,15,189,15,85,15,33,14,29,13, +194,12,163,12,179,13,236,16,212,20,243,23,151,26,145,28,99,29,9,30,245,30,235,30,194,29,171,28,240,27,141,27, +25,28,74,29,30,30,181,30,182,31,13,33,151,34,119,36,60,38,44,39,90,39,139,39,32,40,205,40,78,41,185,41, +10,42,134,42,227,43,244,45,163,47,198,48,236,49,213,50,86,51,13,52,205,52,214,52,158,52,190,52,181,52,148,52, +33,53,228,53,241,53,163,53,167,53,1,54,165,54,84,55,116,55,0,55,114,54,254,53,239,53,189,54,12,56,231,56, +8,57,191,56,34,56,53,55,75,54,147,53,230,52,132,52,14,53,14,54,42,54,30,53,181,51,25,50,90,48,39,47, +104,46,113,45,190,44,219,44,19,45,65,45,253,45,151,46,49,46,131,45,29,45,185,44,137,44,50,44,110,42,152,39, +83,37,162,35,8,34,82,33,120,33,85,33,26,33,113,33,117,33,87,32,134,30,47,28,81,25,200,22,55,21,25,20, +243,18,218,17,212,16,219,15,48,15,233,14,135,14,125,13,234,11,88,10,7,9,245,7,0,7,184,5,244,3,69,2, +232,0,101,255,194,253,97,252,7,251,145,249,87,248,32,247,140,245,4,244,179,242,36,241,163,239,218,238,146,238,69,238, +158,237,19,236,196,233,221,231,235,230,112,230,15,230,140,229,145,228,98,227,95,226,67,225,221,223,104,222,189,220,191,218, +23,217,99,216,50,216,151,215,69,214,202,212,176,211,10,211,2,211,158,211,250,211,129,211,253,210,219,210,77,210,41,209, +6,208,199,206,107,205,189,204,197,204,196,204,166,204,130,204,36,204,225,203,15,204,38,204,221,203,131,203,239,202,253,201, +44,201,130,200,129,199,87,198,129,197,46,197,175,197,10,199,115,200,85,201,252,201,165,202,38,203,79,203,8,203,108,202, +222,201,148,201,144,201,230,201,120,202,246,202,77,203,190,203,131,204,132,205,88,206,201,206,29,207,112,207,162,207,240,207, +104,208,135,208,94,208,179,208,179,209,31,211,236,212,152,214,112,215,200,215,55,216,169,216,46,217,11,218,240,218,172,219, +153,220,170,221,151,222,118,223,15,224,18,224,21,224,206,224,51,226,14,228,9,230,92,231,212,231,35,232,196,232,208,233, +97,235,28,237,99,238,48,239,211,239,127,240,111,241,149,242,172,243,235,244,145,246,71,248,221,249,115,251,164,252,9,253, +14,253,53,253,139,253,25,254,213,254,144,255,103,0,134,1,210,2,33,4,55,5,233,5,191,6,89,8,76,10,211,11, +204,12,31,13,191,12,64,12,44,12,109,12,20,13,115,14,93,16,98,18,44,20,86,21,154,21,56,21,165,20,55,20, +32,20,112,20,12,21,161,21,234,21,64,22,31,23,59,24,16,25,202,25,169,26,162,27,214,28,1,30,76,30,160,29, +168,28,153,27,197,26,241,26,248,27,245,28,183,29,60,30,82,30,129,30,43,31,117,31,212,30,213,29,223,28,80,28, +210,28,223,29,36,30,149,29,231,28,85,28,115,28,180,29,255,30,49,31,170,30,224,29,223,28,80,28,148,28,192,28, +53,28,117,27,187,26,209,25,9,25,180,24,84,24,142,23,226,22,208,22,39,23,127,23,144,23,10,23,245,21,212,20, +237,19,40,19,165,18,92,18,228,17,92,17,63,17,46,17,159,16,230,15,57,15,106,14,220,13,180,13,27,13,213,11, +137,10,77,9,41,8,183,7,166,7,12,7,80,6,39,6,53,6,71,6,110,6,228,5,99,4,238,2,3,2,97,1, +45,1,42,1,157,0,214,255,139,255,101,255,20,255,230,254,139,254,177,253,18,253,16,253,240,252,73,252,76,251,17,250, +236,248,117,248,163,248,228,248,206,248,62,248,124,247,60,247,200,247,123,248,132,248,175,247,98,246,76,245,32,245,243,245, +233,246,246,246,1,246,209,244,72,244,227,244,52,246,217,246,15,246,159,244,141,243,43,243,141,243,77,244,108,244,158,243, +138,242,199,241,225,241,28,243,108,244,150,244,15,244,195,243,194,243,28,244,175,244,122,244,87,243,149,242,177,242,6,243, +105,243,208,243,169,243,6,243,187,242,42,243,248,243,104,244,222,243,211,242,90,242,172,242,83,243,205,243,101,243,251,241, +197,240,200,240,175,241,203,242,160,243,202,243,184,243,70,244,45,245,143,245,100,245,15,245,177,244,110,244,57,244,189,243, +19,243,166,242,150,242,239,242,170,243,59,244,70,244,85,244,231,244,161,245,4,246,192,245,118,244,99,242,211,240,217,240, +16,242,110,243,89,244,110,244,151,243,165,242,129,242,14,243,155,243,104,243,194,241,56,239,178,237,203,237,38,238,236,237, +14,237,143,235,67,235,218,238,100,245,1,251,115,253,63,252,159,247,92,242,25,240,219,240,58,242,234,242,130,242,163,241, +172,242,102,246,51,250,16,252,124,252,14,252,85,251,107,251,5,252,205,251,186,250,7,249,44,246,115,243,179,243,104,247, +192,252,96,2,31,7,123,9,105,9,20,8,177,5,97,2,206,255,52,255,195,255,162,0,45,2,129,4,45,7,227,9, +243,11,150,12,78,12,244,11,70,11,74,10,225,9,188,9,222,8,247,7,59,8,210,9,45,13,75,18,192,22,94,24, +49,24,255,23,246,23,232,23,74,23,243,20,152,17,228,15,2,17,221,19,37,23,176,25,153,26,94,26,107,26,134,27, +126,29,86,31,206,31,216,30,228,29,63,30,253,31,63,34,236,35,140,36,176,36,72,37,176,38,51,40,143,40,126,39, +18,38,75,37,177,37,170,39,111,42,5,44,202,43,19,43,232,42,73,43,253,43,105,44,214,43,152,42,177,41,189,41, +198,42,34,44,182,44,69,44,184,43,228,43,37,45,100,47,81,49,33,49,194,46,200,43,67,41,99,39,157,38,86,39, +247,40,173,42,60,44,52,45,220,44,138,43,78,42,65,41,32,40,98,39,238,38,240,37,244,36,76,37,143,38,116,39, +156,39,241,38,191,37,116,37,170,38,223,39,146,39,76,37,39,33,174,28,4,26,38,25,188,24,199,24,155,25,171,26, +232,27,84,29,146,29,163,27,121,24,86,21,214,18,120,17,19,17,191,16,255,15,204,14,50,13,226,11,174,11,27,12, +238,11,181,10,209,8,251,6,1,6,222,5,96,5,133,3,186,0,35,254,115,252,227,251,74,252,148,252,79,251,134,248, +198,245,27,244,109,243,96,243,99,243,207,242,204,241,241,240,30,240,199,238,225,236,243,234,199,233,176,233,238,233,182,233, +24,233,35,232,188,230,125,229,230,228,121,228,201,227,13,227,32,226,168,224,204,222,234,220,99,219,176,218,204,218,83,219, +57,220,60,221,192,221,166,221,19,221,219,219,66,218,202,216,7,215,187,212,16,211,244,210,217,211,226,212,117,213,13,213, +243,211,39,211,49,211,243,211,236,212,72,213,143,212,39,211,165,209,127,208,7,208,239,207,168,207,135,207,54,208,144,209, +17,211,97,212,32,213,53,213,6,213,203,212,88,212,168,211,3,211,190,210,18,211,211,211,155,212,44,213,83,213,221,212, +29,212,231,211,219,212,199,214,171,216,131,217,35,217,11,216,246,214,212,214,255,215,165,217,2,219,71,220,143,221,134,222, +58,223,212,223,27,224,24,224,34,224,80,224,181,224,137,225,183,226,8,228,49,229,181,229,158,229,164,229,247,229,139,230, +255,231,60,234,213,235,75,236,124,236,190,236,6,237,202,237,240,238,189,239,46,240,152,240,227,240,58,241,246,241,234,242, +243,243,49,245,96,246,94,247,154,248,8,250,0,251,66,251,8,251,178,250,216,250,187,251,207,252,140,253,237,253,27,254, +136,254,185,255,118,1,3,3,29,4,4,5,241,5,207,6,69,7,10,7,86,6,173,5,105,5,176,5,127,6,177,7, +15,9,101,10,160,11,156,12,215,12,26,12,56,11,23,11,174,11,153,12,130,13,194,13,13,13,24,12,174,11,42,12, +166,13,143,15,0,17,238,17,138,18,135,18,10,18,146,17,192,16,69,15,214,13,231,12,141,12,114,13,138,15,114,17, +106,18,174,18,45,18,65,17,238,16,39,17,41,17,4,17,200,16,14,16,50,15,193,14,104,14,70,14,27,15,130,16, +130,17,29,18,104,18,245,17,7,17,71,16,141,15,165,14,15,14,242,13,216,13,195,13,254,13,59,14,1,14,133,13, +48,13,3,13,235,12,245,12,236,12,160,12,66,12,215,11,40,11,112,10,252,9,134,9,18,9,54,9,211,9,33,10, +209,9,210,8,46,7,178,5,33,5,68,5,193,5,80,6,22,6,224,4,197,3,81,3,45,3,124,3,22,4,12,4, +143,3,169,3,22,4,249,3,91,3,104,2,53,1,114,0,111,0,163,0,210,0,239,0,133,0,179,255,50,255,22,255, +26,255,94,255,207,255,35,0,104,0,130,0,60,0,229,255,146,255,200,254,194,253,71,253,57,253,37,253,85,253,219,253, +26,254,226,253,154,253,120,253,151,253,15,254,135,254,119,254,228,253,18,253,7,252,219,250,7,250,198,249,230,249,100,250, +64,251,230,251,254,251,28,252,134,252,157,252,16,252,16,251,175,249,104,248,17,248,150,248,74,249,246,249,78,250,15,250, +245,249,140,250,47,251,126,251,163,251,35,251,231,249,7,249,203,248,127,248,73,248,124,248,161,248,220,248,199,249,220,250, +115,251,214,251,239,251,70,251,74,250,131,249,189,248,250,247,112,247,247,246,196,246,85,247,90,248,74,249,67,250,46,251, +150,251,128,251,13,251,6,250,158,248,144,247,42,247,57,247,125,247,202,247,16,248,88,248,141,248,185,248,9,249,96,249, +118,249,84,249,28,249,157,248,167,247,124,246,142,245,20,245,45,245,1,246,75,247,90,248,208,248,169,248,211,247,155,246, +182,245,47,245,150,244,26,244,211,243,73,243,221,242,101,243,85,244,204,244,21,245,105,245,186,245,212,246,207,248,19,250, +212,249,182,248,254,246,77,245,23,245,41,246,245,246,103,247,15,248,132,248,231,248,235,249,240,250,56,251,75,251,97,251, +40,251,50,251,215,251,89,252,120,252,133,252,37,252,149,251,43,252,3,254,234,255,163,1,84,3,247,3,6,3,188,1, +10,1,167,0,147,0,29,1,206,1,98,2,154,3,145,5,60,7,59,8,221,8,180,8,151,7,176,6,190,6,102,7, +139,8,224,9,103,10,56,10,155,10,227,11,175,13,9,16,42,18,189,18,20,18,118,17,41,17,51,17,183,17,3,18, +169,17,154,17,129,18,239,19,148,21,52,23,61,24,179,24,38,25,187,25,115,26,114,27,110,28,16,29,133,29,251,29, +110,30,23,31,24,32,27,33,157,33,97,33,180,32,74,32,125,32,42,33,56,34,99,35,35,36,129,36,220,36,16,37, +30,37,139,37,66,38,196,38,47,39,127,39,35,39,89,38,13,38,76,38,136,38,160,38,141,38,74,38,75,38,230,38, +194,39,81,40,60,40,128,39,167,38,79,38,86,38,26,38,123,37,242,36,179,36,116,36,31,36,236,35,217,35,240,35, +127,36,28,37,209,36,193,35,209,34,251,33,19,33,171,32,171,32,62,32,141,31,66,31,86,31,175,31,40,32,221,31, +110,30,162,28,212,26,240,24,120,23,155,22,230,21,159,21,18,22,119,22,103,22,105,22,44,22,251,20,60,19,116,17, +138,15,199,13,149,12,134,11,58,10,242,8,206,7,240,6,207,6,99,7,227,7,179,7,182,6,2,5,248,2,54,1, +1,0,0,255,214,253,176,252,215,251,26,251,63,250,119,249,220,248,68,248,158,247,186,246,76,245,192,243,201,242,58,242, +125,241,135,240,145,239,205,238,115,238,118,238,138,238,110,238,177,237,18,236,53,234,221,232,18,232,177,231,119,231,179,230, +109,229,147,228,47,228,136,227,217,226,159,226,128,226,79,226,69,226,29,226,141,225,220,224,7,224,205,222,115,221,98,220, +194,219,163,219,183,219,124,219,22,219,239,218,219,218,153,218,74,218,9,218,203,217,143,217,64,217,234,216,179,216,124,216, +52,216,36,216,77,216,83,216,59,216,78,216,152,216,12,217,116,217,126,217,91,217,142,217,38,218,251,218,225,219,76,220, +2,220,161,219,151,219,175,219,239,219,99,220,167,220,185,220,5,221,129,221,6,222,183,222,75,223,73,223,12,223,70,223, +17,224,37,225,52,226,246,226,99,227,184,227,23,228,144,228,21,229,106,229,114,229,91,229,101,229,167,229,252,229,54,230, +133,230,52,231,47,232,117,233,27,235,145,236,56,237,100,237,115,237,74,237,78,237,248,237,193,238,73,239,3,240,245,240, +215,241,250,242,84,244,64,245,222,245,157,246,29,247,51,247,107,247,236,247,150,248,140,249,148,250,78,251,15,252,10,253, +202,253,83,254,13,255,190,255,20,0,55,0,51,0,38,0,170,0,238,1,74,3,67,4,245,4,149,5,67,6,0,7, +138,7,162,7,103,7,61,7,106,7,241,7,193,8,169,9,56,10,55,10,31,10,91,10,202,10,87,11,234,11,10,12, +219,11,93,12,182,13,206,14,0,15,141,14,236,13,154,13,219,13,110,14,5,15,98,15,59,15,205,14,181,14,232,14, +22,15,114,15,240,15,33,16,47,16,83,16,57,16,248,15,254,15,254,15,198,15,213,15,26,16,26,16,30,16,87,16, +40,16,125,15,247,14,203,14,237,14,105,15,201,15,164,15,90,15,60,15,10,15,184,14,108,14,12,14,155,13,75,13, +5,13,162,12,61,12,245,11,194,11,151,11,99,11,38,11,236,10,180,10,113,10,21,10,138,9,204,8,252,7,92,7, +92,7,18,8,180,8,139,8,228,7,58,7,136,6,228,5,96,5,166,4,196,3,62,3,11,3,246,2,76,3,246,3, +71,4,14,4,147,3,0,3,164,2,172,2,160,2,39,2,117,1,174,0,245,255,177,255,227,255,30,0,63,0,40,0, +152,255,200,254,61,254,32,254,96,254,194,254,218,254,144,254,26,254,139,253,44,253,94,253,153,253,35,253,87,252,198,251, +89,251,38,251,103,251,183,251,193,251,197,251,189,251,129,251,100,251,147,251,170,251,112,251,249,250,106,250,34,250,86,250, +153,250,152,250,141,250,138,250,91,250,33,250,51,250,163,250,52,251,148,251,135,251,21,251,130,250,33,250,42,250,147,250, +16,251,67,251,6,251,173,250,156,250,167,250,145,250,151,250,166,250,97,250,47,250,164,250,62,251,113,251,108,251,0,251, +253,249,97,249,241,249,17,251,45,252,18,253,21,253,43,252,99,251,15,251,181,250,145,250,217,250,238,250,163,250,115,250, +98,250,92,250,187,250,116,251,22,252,139,252,227,252,7,253,232,252,102,252,116,251,124,250,222,249,130,249,125,249,24,250, +21,251,240,251,124,252,164,252,89,252,229,251,166,251,161,251,167,251,159,251,120,251,25,251,134,250,19,250,22,250,107,250, +167,250,173,250,157,250,151,250,195,250,26,251,87,251,86,251,16,251,115,250,194,249,115,249,107,249,68,249,222,248,47,248, +111,247,53,247,140,247,214,247,246,247,26,248,248,247,164,247,177,247,235,247,171,247,14,247,101,246,199,245,160,245,21,246, +148,246,13,247,245,247,9,249,215,249,115,250,161,250,4,250,43,249,189,248,143,248,111,248,95,248,45,248,19,248,203,248, +70,250,169,251,141,252,34,253,154,253,4,254,42,254,160,253,118,252,84,251,197,250,230,250,186,251,51,253,232,254,78,0, +69,1,235,1,32,2,217,1,122,1,54,1,222,0,148,0,151,0,170,0,215,0,178,1,33,3,88,4,32,5,195,5, +82,6,225,6,105,7,139,7,73,7,46,7,115,7,22,8,41,9,65,10,224,10,124,11,183,12,65,14,119,15,15,16, +238,15,129,15,140,15,32,16,169,16,245,16,96,17,83,18,223,19,99,21,19,22,231,21,119,21,59,21,96,21,219,21, +125,22,45,23,198,23,3,24,39,24,200,24,210,25,195,26,123,27,222,27,178,27,74,27,29,27,12,27,240,26,233,26, +219,26,180,26,237,26,199,27,219,28,181,29,38,30,33,30,217,29,168,29,163,29,146,29,86,29,30,29,36,29,75,29, +89,29,113,29,195,29,53,30,172,30,31,31,78,31,17,31,175,30,105,30,54,30,248,29,124,29,200,28,79,28,85,28, +154,28,228,28,15,29,241,28,207,28,244,28,219,28,16,28,17,27,79,26,168,25,58,25,24,25,217,24,128,24,110,24, +84,24,208,23,55,23,183,22,254,21,34,21,92,20,100,19,21,18,200,16,186,15,240,14,106,14,238,13,74,13,194,12, +171,12,212,12,170,12,199,11,90,10,11,9,94,8,40,8,177,7,113,6,178,4,72,3,148,2,89,2,66,2,252,1, +78,1,137,0,51,0,50,0,8,0,124,255,143,254,89,253,15,252,211,250,196,249,34,249,237,248,209,248,127,248,194,247, +174,246,253,245,39,246,124,246,59,246,122,245,107,244,48,243,87,242,7,242,139,241,151,240,149,239,187,238,24,238,226,237, +234,237,195,237,86,237,143,236,69,235,208,233,177,232,237,231,125,231,124,231,144,231,52,231,131,230,243,229,178,229,173,229, +182,229,116,229,169,228,160,227,244,226,219,226,240,226,191,226,56,226,134,225,239,224,198,224,20,225,136,225,220,225,253,225, +254,225,246,225,198,225,88,225,20,225,80,225,139,225,85,225,4,225,220,224,201,224,12,225,183,225,55,226,101,226,183,226, +39,227,95,227,134,227,188,227,192,227,128,227,27,227,168,226,134,226,238,226,115,227,197,227,28,228,134,228,231,228,120,229, +54,230,171,230,184,230,168,230,139,230,103,230,136,230,5,231,165,231,78,232,250,232,105,233,126,233,145,233,8,234,225,234, +204,235,116,236,177,236,177,236,216,236,66,237,193,237,105,238,70,239,229,239,41,240,184,240,190,241,148,242,14,243,153,243, +33,244,106,244,190,244,75,245,227,245,154,246,123,247,56,248,168,248,241,248,47,249,159,249,120,250,113,251,41,252,164,252, +6,253,112,253,31,254,238,254,96,255,117,255,147,255,208,255,24,0,126,0,252,0,128,1,29,2,197,2,70,3,157,3, +230,3,43,4,135,4,253,4,79,5,95,5,95,5,115,5,180,5,76,6,35,7,195,7,225,7,184,7,181,7,7,8, +156,8,65,9,172,9,189,9,175,9,194,9,227,9,1,10,63,10,152,10,228,10,43,11,108,11,144,11,220,11,131,12, +15,13,6,13,165,12,85,12,90,12,224,12,143,13,173,13,46,13,176,12,108,12,67,12,69,12,118,12,182,12,245,12, +17,13,235,12,180,12,157,12,145,12,135,12,119,12,32,12,128,11,15,11,22,11,97,11,150,11,103,11,221,10,141,10, +224,10,130,11,237,11,229,11,89,11,113,10,170,9,70,9,13,9,220,8,223,8,14,9,20,9,215,8,153,8,132,8, +154,8,232,8,76,9,98,9,12,9,161,8,82,8,252,7,144,7,10,7,102,6,244,5,24,6,170,6,51,7,112,7, +78,7,223,6,98,6,233,5,81,5,171,4,34,4,179,3,96,3,29,3,179,2,71,2,108,2,54,3,8,4,109,4, +82,4,213,3,76,3,246,2,148,2,203,1,204,0,8,0,188,255,217,255,47,0,134,0,182,0,176,0,156,0,169,0, +190,0,149,0,39,0,147,255,232,254,69,254,216,253,172,253,195,253,22,254,115,254,180,254,237,254,39,255,75,255,103,255, +132,255,109,255,21,255,187,254,107,254,239,253,80,253,208,252,137,252,128,252,197,252,61,253,146,253,157,253,143,253,143,253, +139,253,126,253,102,253,27,253,156,252,60,252,42,252,64,252,85,252,81,252,28,252,238,251,29,252,160,252,26,253,77,253, +19,253,133,252,5,252,179,251,68,251,178,250,87,250,83,250,148,250,9,251,112,251,143,251,145,251,165,251,181,251,197,251, +237,251,7,252,3,252,241,251,136,251,150,250,181,249,152,249,42,250,236,250,145,251,245,251,43,252,121,252,206,252,194,252, +58,252,122,251,192,250,55,250,10,250,9,250,221,249,173,249,229,249,132,250,75,251,53,252,36,253,187,253,210,253,124,253, +180,252,164,251,186,250,40,250,232,249,34,250,209,250,136,251,22,252,146,252,193,252,135,252,87,252,85,252,5,252,74,251, +129,250,220,249,152,249,30,250,49,251,23,252,170,252,65,253,227,253,91,254,127,254,28,254,81,253,203,252,239,252,93,253, +186,253,44,254,207,254,109,255,211,255,220,255,143,255,110,255,253,255,204,0,228,0,34,0,83,255,43,255,238,255,107,1, +192,2,22,3,221,2,51,3,56,4,4,5,227,4,220,3,171,2,108,2,138,3,26,5,232,5,205,5,136,5,165,5, +244,5,2,6,218,5,10,6,196,6,125,7,159,7,28,7,103,6,54,6,16,7,153,8,191,9,233,9,165,9,207,9, +133,10,47,11,61,11,178,10,41,10,104,10,143,11,211,12,68,13,211,12,78,12,110,12,13,13,127,13,146,13,187,13, +57,14,164,14,134,14,215,13,250,12,158,12,63,13,115,14,68,15,88,15,45,15,99,15,31,16,227,16,244,16,73,16, +161,15,127,15,182,15,236,15,223,15,129,15,58,15,121,15,15,16,146,16,12,17,123,17,110,17,177,16,175,15,225,14, +135,14,211,14,148,15,23,16,4,16,200,15,219,15,39,16,97,16,85,16,233,15,75,15,216,14,140,14,41,14,209,13, +195,13,193,13,140,13,87,13,76,13,83,13,111,13,119,13,224,12,145,11,71,10,154,9,131,9,213,9,89,10,147,10, +87,10,27,10,31,10,250,9,92,9,136,8,223,7,116,7,50,7,241,6,129,6,5,6,224,5,254,5,217,5,73,5, +170,4,46,4,194,3,83,3,198,2,15,2,104,1,21,1,3,1,17,1,45,1,23,1,165,0,17,0,124,255,190,254, +250,253,152,253,152,253,159,253,120,253,35,253,186,252,123,252,120,252,91,252,213,251,11,251,72,250,171,249,47,249,198,248, +108,248,66,248,114,248,208,248,10,249,30,249,47,249,254,248,57,248,27,247,35,246,138,245,90,245,128,245,163,245,110,245, +14,245,223,244,239,244,11,245,236,244,100,244,162,243,7,243,167,242,83,242,238,241,123,241,36,241,55,241,183,241,62,242, +144,242,199,242,228,242,210,242,147,242,22,242,73,241,115,240,6,240,25,240,109,240,188,240,227,240,0,241,93,241,242,241, +98,242,131,242,125,242,80,242,235,241,126,241,50,241,229,240,157,240,169,240,6,241,98,241,193,241,78,242,221,242,72,243, +142,243,97,243,151,242,212,241,171,241,188,241,151,241,107,241,98,241,131,241,16,242,245,242,153,243,213,243,252,243,243,243, +129,243,11,243,232,242,215,242,179,242,189,242,1,243,85,243,188,243,60,244,175,244,253,244,40,245,45,245,31,245,29,245, +20,245,223,244,149,244,95,244,64,244,69,244,143,244,251,244,66,245,108,245,150,245,136,245,48,245,4,245,88,245,224,245, +45,246,29,246,187,245,66,245,12,245,58,245,166,245,27,246,96,246,92,246,86,246,143,246,230,246,26,247,38,247,33,247, +32,247,49,247,70,247,69,247,48,247,18,247,239,246,214,246,244,246,110,247,47,248,212,248,5,249,203,248,98,248,243,247, +159,247,125,247,124,247,141,247,186,247,234,247,243,247,218,247,189,247,173,247,202,247,26,248,84,248,79,248,65,248,86,248, +107,248,84,248,16,248,213,247,222,247,44,248,124,248,165,248,201,248,16,249,114,249,175,249,147,249,60,249,254,248,7,249, +53,249,90,249,95,249,78,249,79,249,154,249,54,250,198,250,225,250,166,250,153,250,220,250,22,251,11,251,188,250,75,250, +9,250,50,250,137,250,207,250,33,251,146,251,5,252,126,252,240,252,19,253,233,252,224,252,30,253,96,253,139,253,190,253, +34,254,226,254,246,255,209,0,231,0,113,0,71,0,229,0,239,1,180,2,221,2,175,2,203,2,149,3,180,4,122,5, +184,5,211,5,49,6,233,6,173,7,3,8,226,7,213,7,54,8,214,8,142,9,86,10,29,11,245,11,222,12,77,13, +222,12,37,12,2,12,161,12,147,13,65,14,91,14,88,14,254,14,70,16,95,17,203,17,183,17,155,17,246,17,201,18, +92,19,27,19,130,18,124,18,65,19,82,20,40,21,137,21,200,21,115,22,118,23,244,23,135,23,201,22,103,22,124,22, +222,22,37,23,249,22,227,22,192,23,78,25,122,26,217,26,176,26,87,26,50,26,76,26,13,26,75,25,208,24,27,25, +184,25,35,26,48,26,4,26,51,26,26,27,13,28,36,28,96,27,76,26,83,25,194,24,134,24,25,24,113,23,64,23, +214,23,168,24,32,25,18,25,148,24,4,24,188,23,110,23,138,22,79,21,118,20,27,20,234,19,184,19,85,19,164,18, +55,18,158,18,65,19,27,19,27,18,228,16,235,15,88,15,0,15,129,14,195,13,10,13,115,12,249,11,157,11,66,11, +234,10,233,10,29,11,198,10,158,9,71,8,74,7,161,6,25,6,122,5,143,4,123,3,170,2,84,2,47,2,197,1, +17,1,148,0,136,0,117,0,226,255,233,254,209,253,184,252,186,251,254,250,123,250,30,250,244,249,0,250,251,249,143,249, +204,248,1,248,90,247,223,246,135,246,31,246,103,245,123,244,193,243,111,243,105,243,128,243,139,243,125,243,84,243,14,243, +167,242,43,242,170,241,70,241,33,241,45,241,52,241,20,241,189,240,50,240,178,239,117,239,104,239,114,239,151,239,199,239, +1,240,82,240,127,240,63,240,221,239,194,239,206,239,202,239,181,239,103,239,227,238,175,238,19,239,177,239,72,240,234,240, +121,241,210,241,1,242,225,241,73,241,148,240,63,240,73,240,111,240,123,240,98,240,132,240,96,241,182,242,170,243,233,243, +209,243,173,243,155,243,172,243,147,243,252,242,121,242,231,242,17,244,30,245,195,245,24,246,34,246,50,246,147,246,231,246, +225,246,224,246,24,247,67,247,84,247,109,247,124,247,176,247,86,248,26,249,142,249,214,249,13,250,8,250,0,250,46,250, +69,250,54,250,121,250,15,251,123,251,165,251,170,251,114,251,36,251,40,251,139,251,14,252,145,252,237,252,236,252,173,252, +144,252,186,252,17,253,100,253,126,253,79,253,19,253,239,252,206,252,191,252,248,252,92,253,170,253,248,253,76,254,82,254, +14,254,245,253,9,254,228,253,150,253,97,253,44,253,7,253,65,253,170,253,197,253,164,253,163,253,213,253,28,254,75,254, +25,254,136,253,240,252,128,252,48,252,1,252,240,251,240,251,26,252,103,252,135,252,75,252,4,252,32,252,163,252,15,253, +215,252,232,251,186,250,231,249,209,249,98,250,16,251,88,251,47,251,235,250,224,250,25,251,90,251,94,251,13,251,134,250, +6,250,199,249,198,249,208,249,211,249,201,249,164,249,140,249,202,249,73,250,162,250,151,250,44,250,139,249,4,249,223,248, +28,249,132,249,196,249,152,249,35,249,211,248,219,248,35,249,144,249,238,249,242,249,165,249,98,249,87,249,106,249,125,249, +125,249,84,249,252,248,155,248,119,248,174,248,25,249,130,249,219,249,27,250,46,250,15,250,194,249,93,249,25,249,17,249, +23,249,4,249,250,248,50,249,189,249,84,250,132,250,56,250,217,249,194,249,248,249,89,250,135,250,21,250,63,249,216,248, +82,249,102,250,183,251,24,253,65,254,223,254,236,254,167,254,61,254,214,253,189,253,13,254,120,254,208,254,82,255,36,0, +7,1,195,1,82,2,179,2,3,3,92,3,145,3,129,3,98,3,102,3,145,3,10,4,217,4,178,5,112,6,50,7, +217,7,20,8,244,7,203,7,166,7,97,7,2,7,207,6,250,6,113,7,18,8,212,8,142,9,7,10,98,10,220,10, +71,11,76,11,254,10,177,10,176,10,40,11,236,11,127,12,179,12,213,12,45,13,205,13,175,14,172,15,128,16,15,17, +97,17,114,17,79,17,53,17,80,17,139,17,216,17,62,18,166,18,0,19,129,19,47,20,151,20,139,20,128,20,203,20, +67,21,173,21,198,21,74,21,158,20,144,20,50,21,238,21,118,22,201,22,213,22,186,22,175,22,172,22,154,22,114,22, +22,22,133,21,9,21,193,20,156,20,192,20,47,21,113,21,70,21,14,21,25,21,55,21,22,21,149,20,214,19,42,19, +224,18,3,19,61,19,23,19,132,18,236,17,134,17,30,17,170,16,94,16,47,16,246,15,194,15,141,15,40,15,166,14, +78,14,30,14,224,13,128,13,240,12,36,12,105,11,45,11,96,11,140,11,126,11,62,11,199,10,60,10,209,9,82,9, +126,8,159,7,254,6,108,6,226,5,161,5,130,5,37,5,159,4,39,4,166,3,27,3,159,2,22,2,97,1,132,0, +120,255,117,254,254,253,48,254,143,254,195,254,180,254,82,254,182,253,28,253,145,252,15,252,139,251,229,250,37,250,155,249, +101,249,87,249,89,249,83,249,30,249,224,248,208,248,190,248,127,248,70,248,32,248,229,247,180,247,174,247,130,247,21,247, +231,246,52,247,130,247,99,247,234,246,85,246,250,245,40,246,161,246,188,246,64,246,142,245,3,245,203,244,233,244,14,245, +251,244,234,244,18,245,61,245,96,245,170,245,229,245,219,245,210,245,202,245,93,245,195,244,175,244,36,245,159,245,220,245, +194,245,106,245,106,245,25,246,238,246,72,247,15,247,138,246,34,246,43,246,111,246,121,246,79,246,79,246,164,246,53,247, +222,247,118,248,218,248,8,249,20,249,21,249,3,249,222,248,213,248,6,249,50,249,30,249,247,248,12,249,120,249,25,250, +151,250,165,250,104,250,85,250,139,250,183,250,143,250,33,250,156,249,47,249,14,249,90,249,231,249,103,250,202,250,23,251, +61,251,56,251,30,251,214,250,60,250,128,249,246,248,181,248,164,248,160,248,158,248,196,248,49,249,190,249,53,250,125,250, +117,250,12,250,136,249,36,249,197,248,86,248,9,248,5,248,52,248,119,248,205,248,65,249,166,249,176,249,93,249,231,248, +95,248,200,247,105,247,86,247,58,247,249,246,238,246,75,247,216,247,74,248,108,248,46,248,179,247,54,247,223,246,177,246, +152,246,143,246,155,246,156,246,111,246,62,246,71,246,121,246,168,246,204,246,217,246,180,246,100,246,30,246,12,246,42,246, +68,246,52,246,19,246,8,246,40,246,111,246,181,246,191,246,159,246,146,246,162,246,198,246,10,247,70,247,58,247,251,246, +203,246,195,246,247,246,107,247,203,247,192,247,124,247,105,247,163,247,3,248,103,248,195,248,9,249,46,249,56,249,59,249, +85,249,145,249,221,249,28,250,80,250,131,250,172,250,206,250,13,251,84,251,98,251,68,251,77,251,156,251,23,252,153,252, +222,252,198,252,149,252,128,252,116,252,112,252,152,252,244,252,116,253,243,253,39,254,15,254,16,254,94,254,199,254,20,255, +40,255,251,254,198,254,207,254,29,255,143,255,245,255,11,0,219,255,215,255,58,0,203,0,88,1,181,1,175,1,94,1, +34,1,36,1,76,1,135,1,194,1,231,1,2,2,35,2,82,2,177,2,47,3,94,3,7,3,123,2,11,2,202,1, +206,1,5,2,9,2,187,1,144,1,203,1,41,2,119,2,197,2,233,2,194,2,132,2,68,2,217,1,103,1,41,1, +3,1,250,0,90,1,2,2,161,2,83,3,231,3,164,3,157,2,195,1,110,1,70,1,47,1,28,1,239,0,248,0, +139,1,60,2,137,2,129,2,94,2,74,2,96,2,98,2,7,2,144,1,76,1,36,1,27,1,105,1,225,1,47,2, +114,2,200,2,234,2,166,2,48,2,210,1,187,1,225,1,3,2,14,2,74,2,228,2,154,3,13,4,1,4,119,3, +234,2,250,2,144,3,6,4,50,4,114,4,217,4,48,5,111,5,135,5,66,5,211,4,173,4,230,4,95,5,252,5, +112,6,148,6,200,6,59,7,129,7,112,7,102,7,122,7,122,7,104,7,73,7,24,7,29,7,165,7,144,8,153,9, +130,10,245,10,211,10,114,10,31,10,218,9,165,9,140,9,137,9,181,9,74,10,72,11,65,12,197,12,215,12,198,12, +172,12,123,12,80,12,74,12,90,12,136,12,223,12,38,13,76,13,174,13,95,14,223,14,233,14,174,14,78,14,247,13, +252,13,59,14,50,14,229,13,214,13,30,14,129,14,232,14,51,15,15,15,140,14,50,14,55,14,81,14,79,14,68,14, +65,14,78,14,110,14,118,14,61,14,232,13,143,13,22,13,162,12,139,12,193,12,246,12,26,13,36,13,224,12,87,12, +214,11,120,11,53,11,13,11,228,10,148,10,39,10,206,9,169,9,172,9,168,9,123,9,40,9,169,8,243,7,43,7, +128,6,249,5,167,5,151,5,168,5,174,5,162,5,107,5,5,5,152,4,30,4,102,3,152,2,7,2,171,1,96,1, +58,1,47,1,9,1,190,0,106,0,26,0,211,255,142,255,57,255,221,254,138,254,34,254,161,253,68,253,33,253,255,252, +195,252,122,252,38,252,200,251,146,251,163,251,201,251,182,251,93,251,240,250,153,250,94,250,50,250,247,249,148,249,25,249, +198,248,208,248,30,249,109,249,176,249,246,249,21,250,211,249,72,249,155,248,212,247,52,247,15,247,57,247,110,247,208,247, +104,248,239,248,87,249,178,249,177,249,52,249,143,248,227,247,42,247,177,246,154,246,166,246,242,246,205,247,224,248,158,249, +4,250,31,250,199,249,36,249,120,248,192,247,46,247,54,247,193,247,61,248,126,248,188,248,12,249,111,249,230,249,65,250, +51,250,173,249,242,248,113,248,119,248,220,248,46,249,84,249,151,249,13,250,112,250,151,250,153,250,132,250,91,250,61,250, +58,250,74,250,122,250,207,250,22,251,24,251,213,250,129,250,98,250,134,250,174,250,190,250,238,250,61,251,105,251,119,251, +147,251,157,251,123,251,86,251,46,251,216,250,125,250,94,250,113,250,162,250,238,250,53,251,91,251,109,251,107,251,66,251, +251,250,179,250,117,250,70,250,35,250,251,249,213,249,205,249,235,249,35,250,94,250,123,250,107,250,64,250,17,250,214,249, +130,249,39,249,247,248,5,249,50,249,102,249,150,249,161,249,121,249,80,249,64,249,39,249,5,249,3,249,15,249,254,248, +231,248,231,248,247,248,20,249,53,249,55,249,14,249,233,248,238,248,34,249,126,249,222,249,12,250,239,249,167,249,101,249, +76,249,99,249,138,249,160,249,163,249,167,249,175,249,190,249,239,249,58,250,85,250,41,250,8,250,53,250,141,250,205,250, +203,250,133,250,58,250,70,250,186,250,86,251,208,251,252,251,243,251,247,251,22,252,42,252,64,252,131,252,223,252,62,253, +162,253,226,253,237,253,12,254,92,254,142,254,137,254,143,254,174,254,205,254,3,255,96,255,192,255,9,0,57,0,84,0, +116,0,179,0,243,0,12,1,15,1,44,1,98,1,142,1,164,1,193,1,241,1,24,2,26,2,1,2,244,1,9,2, +63,2,135,2,197,2,220,2,208,2,207,2,255,2,73,3,124,3,135,3,116,3,89,3,82,3,104,3,130,3,152,3, +190,3,244,3,41,4,74,4,66,4,8,4,187,3,117,3,61,3,40,3,77,3,161,3,0,4,65,4,75,4,41,4, +253,3,213,3,178,3,146,3,102,3,52,3,21,3,254,2,214,2,195,2,231,2,17,3,17,3,250,2,229,2,209,2, +203,2,198,2,150,2,59,2,226,1,162,1,124,1,113,1,103,1,77,1,55,1,45,1,35,1,29,1,24,1,243,0, +167,0,96,0,57,0,29,0,252,255,221,255,200,255,199,255,243,255,82,0,185,0,1,1,47,1,61,1,12,1,159,0, +42,0,212,255,168,255,187,255,18,0,149,0,37,1,157,1,217,1,216,1,192,1,169,1,139,1,87,1,17,1,226,0, +236,0,28,1,72,1,118,1,205,1,72,2,179,2,223,2,198,2,110,2,234,1,118,1,94,1,156,1,237,1,70,2, +197,2,73,3,159,3,204,3,222,3,204,3,168,3,129,3,71,3,16,3,44,3,191,3,154,4,108,5,227,5,243,5, +253,5,75,6,175,6,213,6,174,6,96,6,35,6,52,6,157,6,39,7,156,7,231,7,13,8,34,8,46,8,40,8, +255,7,190,7,124,7,80,7,68,7,87,7,144,7,240,7,85,8,141,8,132,8,74,8,248,7,175,7,137,7,118,7, +81,7,40,7,43,7,76,7,82,7,45,7,240,6,164,6,101,6,98,6,136,6,149,6,125,6,94,6,62,6,39,6, +32,6,10,6,236,5,1,6,53,6,32,6,184,5,77,5,1,5,220,4,5,5,105,5,166,5,132,5,35,5,190,4, +107,4,25,4,187,3,110,3,87,3,96,3,104,3,112,3,113,3,89,3,54,3,21,3,201,2,48,2,127,1,2,1, +193,0,143,0,92,0,58,0,52,0,67,0,89,0,97,0,60,0,226,255,116,255,17,255,186,254,84,254,217,253,112,253, +84,253,137,253,217,253,14,254,36,254,48,254,58,254,38,254,220,253,96,253,223,252,154,252,179,252,253,252,35,253,21,253, +8,253,33,253,95,253,173,253,221,253,207,253,166,253,144,253,124,253,74,253,9,253,230,252,10,253,122,253,0,254,88,254, +107,254,90,254,74,254,64,254,28,254,200,253,104,253,52,253,60,253,101,253,139,253,142,253,119,253,126,253,188,253,5,254, +35,254,3,254,188,253,129,253,112,253,115,253,120,253,141,253,179,253,200,253,192,253,189,253,217,253,12,254,60,254,85,254, +69,254,16,254,229,253,254,253,95,254,208,254,25,255,34,255,250,254,214,254,223,254,253,254,8,255,23,255,86,255,181,255, +3,0,45,0,62,0,55,0,28,0,253,255,227,255,199,255,178,255,180,255,196,255,200,255,179,255,145,255,127,255,146,255, +174,255,172,255,144,255,110,255,41,255,181,254,85,254,57,254,79,254,143,254,246,254,66,255,63,255,8,255,197,254,127,254, +65,254,10,254,195,253,125,253,105,253,136,253,184,253,231,253,2,254,241,253,194,253,147,253,86,253,3,253,195,252,188,252, +217,252,241,252,249,252,246,252,226,252,200,252,194,252,201,252,175,252,97,252,0,252,186,251,165,251,181,251,202,251,204,251, +203,251,226,251,254,251,233,251,162,251,76,251,245,250,160,250,112,250,128,250,192,250,23,251,124,251,197,251,188,251,108,251, +18,251,210,250,172,250,149,250,125,250,107,250,123,250,170,250,231,250,64,251,164,251,199,251,165,251,139,251,126,251,68,251, +243,250,212,250,241,250,59,251,179,251,48,252,123,252,156,252,176,252,173,252,147,252,124,252,101,252,66,252,51,252,93,252, +161,252,222,252,32,253,111,253,164,253,170,253,154,253,139,253,130,253,141,253,164,253,155,253,116,253,102,253,147,253,228,253, +47,254,82,254,69,254,45,254,37,254,24,254,248,253,230,253,239,253,1,254,32,254,93,254,144,254,140,254,115,254,125,254, +155,254,162,254,152,254,160,254,190,254,231,254,15,255,41,255,49,255,55,255,66,255,79,255,94,255,99,255,89,255,99,255, +156,255,213,255,225,255,214,255,213,255,226,255,17,0,94,0,130,0,95,0,43,0,15,0,3,0,4,0,18,0,27,0, +42,0,91,0,142,0,151,0,137,0,131,0,117,0,68,0,253,255,195,255,185,255,236,255,56,0,98,0,93,0,76,0, +73,0,92,0,135,0,184,0,192,0,138,0,65,0,33,0,65,0,136,0,201,0,238,0,8,1,34,1,55,1,75,1, +101,1,113,1,90,1,51,1,22,1,12,1,33,1,92,1,162,1,210,1,228,1,219,1,196,1,186,1,209,1,254,1, +38,2,51,2,33,2,4,2,250,1,19,2,62,2,87,2,89,2,97,2,130,2,178,2,229,2,24,3,52,3,48,3, +46,3,66,3,89,3,108,3,130,3,145,3,145,3,151,3,181,3,226,3,4,4,18,4,31,4,50,4,47,4,9,4, +223,3,203,3,194,3,188,3,204,3,241,3,33,4,82,4,112,4,107,4,95,4,109,4,128,4,111,4,62,4,11,4, +227,3,214,3,249,3,64,4,122,4,148,4,156,4,165,4,182,4,193,4,165,4,94,4,28,4,246,3,223,3,231,3, +28,4,81,4,111,4,152,4,195,4,177,4,107,4,41,4,232,3,144,3,57,3,242,2,192,2,194,2,249,2,45,3, +60,3,54,3,27,3,230,2,169,2,98,2,247,1,137,1,89,1,113,1,163,1,223,1,36,2,92,2,117,2,119,2, +89,2,244,1,86,1,191,0,93,0,63,0,108,0,204,0,41,1,99,1,113,1,68,1,220,0,106,0,21,0,211,255, +151,255,108,255,81,255,65,255,94,255,192,255,49,0,93,0,51,0,209,255,71,255,174,254,64,254,16,254,4,254,30,254, +111,254,210,254,38,255,110,255,139,255,80,255,230,254,138,254,44,254,199,253,159,253,196,253,6,254,97,254,223,254,76,255, +120,255,105,255,30,255,141,254,223,253,75,253,243,252,243,252,87,253,224,253,63,254,106,254,118,254,92,254,35,254,232,253, +162,253,55,253,207,252,172,252,205,252,16,253,124,253,7,254,126,254,196,254,225,254,181,254,50,254,146,253,30,253,230,252, +243,252,77,253,209,253,80,254,196,254,41,255,90,255,75,255,28,255,202,254,52,254,140,253,52,253,54,253,95,253,196,253, +124,254,58,255,170,255,194,255,112,255,170,254,215,253,97,253,48,253,23,253,56,253,150,253,1,254,115,254,241,254,74,255, +108,255,112,255,66,255,197,254,41,254,159,253,46,253,8,253,108,253,52,254,252,254,151,255,249,255,2,0,183,255,73,255, +199,254,53,254,200,253,172,253,192,253,243,253,95,254,247,254,131,255,238,255,39,0,251,255,105,255,199,254,82,254,16,254, +17,254,88,254,193,254,42,255,146,255,230,255,251,255,203,255,132,255,75,255,31,255,239,254,185,254,137,254,117,254,153,254, +252,254,118,255,215,255,14,0,22,0,234,255,157,255,68,255,231,254,181,254,226,254,72,255,162,255,245,255,62,0,68,0, +4,0,201,255,170,255,130,255,91,255,90,255,119,255,165,255,243,255,84,0,159,0,201,0,218,0,196,0,129,0,56,0, +12,0,1,0,22,0,67,0,112,0,152,0,208,0,12,1,41,1,40,1,23,1,229,0,153,0,91,0,50,0,23,0, +40,0,118,0,213,0,27,1,75,1,108,1,117,1,89,1,8,1,145,0,44,0,4,0,25,0,95,0,197,0,41,1, +115,1,163,1,185,1,181,1,161,1,135,1,93,1,27,1,211,0,170,0,175,0,227,0,65,1,172,1,238,1,245,1, +234,1,218,1,169,1,95,1,34,1,248,0,205,0,180,0,203,0,16,1,98,1,165,1,201,1,206,1,173,1,108,1, +43,1,245,0,174,0,96,0,68,0,103,0,163,0,226,0,34,1,66,1,41,1,248,0,206,0,155,0,91,0,47,0, +22,0,237,255,197,255,203,255,240,255,10,0,28,0,39,0,20,0,234,255,194,255,147,255,96,255,71,255,58,255,26,255, +18,255,73,255,131,255,144,255,143,255,144,255,121,255,89,255,74,255,60,255,43,255,45,255,54,255,50,255,67,255,132,255, +199,255,219,255,205,255,172,255,120,255,83,255,101,255,149,255,172,255,159,255,129,255,100,255,112,255,165,255,192,255,158,255, +115,255,94,255,67,255,51,255,83,255,124,255,132,255,132,255,138,255,128,255,131,255,180,255,220,255,200,255,149,255,112,255, +89,255,99,255,158,255,230,255,18,0,43,0,59,0,57,0,52,0,64,0,67,0,36,0,11,0,27,0,62,0,96,0, +141,0,178,0,182,0,177,0,181,0,168,0,134,0,114,0,102,0,71,0,39,0,27,0,32,0,65,0,127,0,176,0, +181,0,156,0,116,0,69,0,33,0,18,0,9,0,245,255,226,255,235,255,22,0,62,0,64,0,42,0,25,0,13,0, +254,255,241,255,220,255,176,255,123,255,98,255,126,255,202,255,35,0,92,0,93,0,46,0,234,255,176,255,149,255,140,255, +136,255,140,255,158,255,182,255,202,255,219,255,236,255,249,255,248,255,224,255,171,255,93,255,25,255,0,255,19,255,65,255, +118,255,156,255,171,255,184,255,191,255,159,255,98,255,52,255,33,255,24,255,26,255,32,255,35,255,62,255,138,255,233,255, +38,0,47,0,10,0,202,255,131,255,67,255,33,255,47,255,100,255,177,255,13,0,91,0,110,0,89,0,80,0,76,0, +42,0,250,255,217,255,199,255,202,255,246,255,52,0,84,0,84,0,89,0,110,0,122,0,113,0,94,0,75,0,57,0, +39,0,26,0,28,0,54,0,98,0,146,0,195,0,236,0,246,0,213,0,160,0,112,0,83,0,80,0,104,0,142,0, +186,0,227,0,243,0,224,0,191,0,177,0,199,0,238,0,2,1,4,1,9,1,17,1,17,1,21,1,35,1,44,1, +54,1,67,1,69,1,71,1,98,1,133,1,143,1,145,1,155,1,164,1,178,1,213,1,255,1,37,2,70,2,71,2, +37,2,16,2,26,2,27,2,16,2,31,2,58,2,71,2,94,2,136,2,143,2,89,2,28,2,253,1,227,1,195,1, +184,1,203,1,234,1,254,1,241,1,199,1,168,1,173,1,187,1,186,1,163,1,106,1,27,1,230,0,222,0,225,0, +226,0,247,0,29,1,67,1,101,1,109,1,63,1,236,0,169,0,147,0,156,0,165,0,172,0,200,0,245,0,20,1, +36,1,50,1,46,1,14,1,230,0,185,0,128,0,94,0,102,0,114,0,105,0,100,0,103,0,95,0,81,0,79,0, +78,0,64,0,33,0,242,255,186,255,140,255,116,255,109,255,111,255,126,255,152,255,175,255,176,255,140,255,78,255,26,255, +8,255,254,254,227,254,201,254,198,254,204,254,204,254,202,254,195,254,188,254,196,254,196,254,151,254,81,254,35,254,20,254, +24,254,53,254,95,254,108,254,91,254,78,254,89,254,108,254,114,254,105,254,86,254,55,254,16,254,1,254,27,254,76,254, +123,254,163,254,184,254,182,254,164,254,128,254,77,254,37,254,21,254,14,254,27,254,83,254,154,254,189,254,185,254,166,254, +139,254,104,254,73,254,44,254,6,254,224,253,211,253,229,253,249,253,3,254,20,254,45,254,50,254,29,254,0,254,222,253, +180,253,150,253,149,253,172,253,203,253,229,253,245,253,1,254,11,254,6,254,244,253,230,253,228,253,223,253,208,253,193,253, +199,253,226,253,253,253,9,254,1,254,238,253,230,253,241,253,244,253,236,253,248,253,25,254,47,254,57,254,60,254,43,254, +24,254,34,254,43,254,12,254,243,253,17,254,72,254,122,254,165,254,181,254,158,254,131,254,118,254,98,254,82,254,97,254, +120,254,117,254,116,254,146,254,181,254,196,254,205,254,202,254,169,254,133,254,127,254,124,254,106,254,108,254,140,254,162,254, +177,254,208,254,228,254,219,254,215,254,212,254,171,254,127,254,130,254,153,254,171,254,219,254,32,255,59,255,49,255,52,255, +59,255,39,255,18,255,18,255,24,255,45,255,99,255,157,255,174,255,175,255,197,255,228,255,249,255,8,0,252,255,203,255, +162,255,172,255,214,255,11,0,74,0,127,0,148,0,157,0,158,0,134,0,111,0,117,0,125,0,115,0,109,0,104,0, +87,0,103,0,187,0,34,1,98,1,122,1,114,1,70,1,13,1,231,0,216,0,214,0,236,0,34,1,89,1,111,1, +107,1,112,1,132,1,147,1,149,1,138,1,120,1,103,1,91,1,84,1,98,1,150,1,218,1,12,2,47,2,83,2, +97,2,64,2,8,2,236,1,239,1,248,1,252,1,5,2,25,2,68,2,143,2,209,2,218,2,190,2,174,2,163,2, +142,2,131,2,144,2,169,2,195,2,213,2,217,2,215,2,211,2,186,2,137,2,91,2,69,2,75,2,98,2,119,2, +127,2,135,2,142,2,136,2,122,2,116,2,113,2,97,2,63,2,22,2,248,1,235,1,236,1,5,2,67,2,135,2, +161,2,139,2,93,2,47,2,22,2,19,2,8,2,242,1,248,1,37,2,90,2,134,2,160,2,152,2,112,2,72,2, +42,2,8,2,233,1,223,1,217,1,194,1,183,1,208,1,241,1,3,2,15,2,14,2,231,1,179,1,145,1,115,1, +73,1,27,1,236,0,195,0,191,0,221,0,251,0,23,1,52,1,44,1,241,0,177,0,127,0,75,0,37,0,32,0, +40,0,30,0,5,0,242,255,238,255,246,255,3,0,15,0,11,0,229,255,171,255,125,255,97,255,82,255,88,255,110,255, +124,255,131,255,149,255,170,255,184,255,193,255,190,255,162,255,120,255,85,255,58,255,46,255,68,255,116,255,156,255,167,255, +154,255,132,255,117,255,122,255,133,255,127,255,108,255,85,255,52,255,17,255,5,255,17,255,34,255,61,255,85,255,69,255, +27,255,11,255,16,255,12,255,11,255,18,255,2,255,227,254,218,254,220,254,218,254,231,254,251,254,247,254,239,254,253,254, +9,255,254,254,245,254,248,254,252,254,253,254,252,254,249,254,2,255,37,255,78,255,94,255,83,255,75,255,87,255,102,255, +103,255,95,255,93,255,94,255,92,255,100,255,128,255,164,255,189,255,199,255,201,255,193,255,181,255,181,255,191,255,186,255, +164,255,149,255,145,255,144,255,160,255,200,255,231,255,232,255,213,255,181,255,141,255,112,255,113,255,132,255,144,255,134,255, +117,255,116,255,133,255,155,255,169,255,161,255,129,255,104,255,110,255,130,255,142,255,151,255,158,255,159,255,171,255,197,255, +222,255,230,255,227,255,221,255,217,255,212,255,203,255,204,255,220,255,230,255,226,255,235,255,3,0,4,0,232,255,208,255, +198,255,185,255,168,255,160,255,171,255,192,255,210,255,209,255,181,255,135,255,95,255,80,255,81,255,74,255,53,255,39,255, +51,255,74,255,79,255,73,255,75,255,72,255,48,255,21,255,12,255,10,255,9,255,18,255,28,255,27,255,38,255,75,255, +115,255,127,255,106,255,69,255,36,255,15,255,8,255,15,255,30,255,36,255,39,255,59,255,87,255,97,255,84,255,60,255, +33,255,14,255,2,255,238,254,224,254,238,254,12,255,36,255,56,255,74,255,74,255,64,255,56,255,44,255,26,255,20,255, +29,255,34,255,35,255,47,255,68,255,86,255,104,255,127,255,132,255,104,255,76,255,80,255,103,255,118,255,120,255,107,255, +92,255,98,255,121,255,138,255,148,255,156,255,148,255,130,255,122,255,117,255,105,255,109,255,130,255,140,255,138,255,146,255, +154,255,155,255,169,255,189,255,177,255,150,255,153,255,177,255,186,255,190,255,208,255,215,255,199,255,189,255,195,255,203,255, +216,255,236,255,221,255,169,255,144,255,166,255,186,255,194,255,206,255,198,255,162,255,145,255,160,255,167,255,167,255,179,255, +183,255,168,255,155,255,152,255,155,255,175,255,209,255,224,255,210,255,187,255,165,255,154,255,171,255,209,255,240,255,255,255, +7,0,255,255,232,255,226,255,240,255,240,255,220,255,217,255,241,255,11,0,34,0,62,0,75,0,65,0,50,0,34,0, +4,0,235,255,238,255,248,255,245,255,240,255,240,255,242,255,5,0,46,0,78,0,72,0,33,0,247,255,213,255,188,255, +181,255,203,255,242,255,26,0,64,0,96,0,110,0,105,0,84,0,47,0,12,0,253,255,249,255,248,255,8,0,39,0, +57,0,65,0,85,0,106,0,112,0,111,0,99,0,62,0,19,0,254,255,251,255,3,0,25,0,61,0,95,0,114,0, +114,0,102,0,90,0,81,0,66,0,48,0,35,0,23,0,10,0,10,0,32,0,66,0,91,0,101,0,98,0,85,0, +68,0,54,0,39,0,19,0,8,0,11,0,13,0,10,0,19,0,39,0,62,0,77,0,80,0,71,0,58,0,46,0, +30,0,10,0,247,255,238,255,254,255,39,0,77,0,100,0,117,0,120,0,95,0,57,0,30,0,23,0,31,0,47,0, +58,0,70,0,89,0,98,0,97,0,108,0,128,0,130,0,115,0,94,0,60,0,24,0,19,0,44,0,70,0,91,0, +115,0,127,0,117,0,102,0,95,0,78,0,37,0,254,255,254,255,38,0,79,0,95,0,105,0,123,0,132,0,118,0, +100,0,85,0,62,0,40,0,49,0,81,0,105,0,125,0,150,0,157,0,138,0,131,0,140,0,134,0,116,0,108,0, +106,0,100,0,98,0,109,0,134,0,168,0,189,0,185,0,173,0,160,0,133,0,99,0,83,0,91,0,112,0,136,0, +153,0,161,0,166,0,167,0,157,0,142,0,125,0,102,0,84,0,84,0,91,0,93,0,98,0,113,0,130,0,144,0, +156,0,166,0,169,0,159,0,139,0,118,0,107,0,110,0,122,0,135,0,146,0,157,0,168,0,180,0,195,0,205,0, +204,0,197,0,184,0,164,0,145,0,134,0,134,0,156,0,197,0,229,0,237,0,236,0,229,0,208,0,189,0,183,0, +172,0,148,0,136,0,140,0,145,0,154,0,181,0,209,0,225,0,231,0,227,0,208,0,177,0,140,0,107,0,91,0, +95,0,112,0,137,0,165,0,187,0,190,0,171,0,149,0,140,0,142,0,144,0,144,0,137,0,124,0,122,0,142,0, +166,0,179,0,186,0,187,0,173,0,151,0,133,0,114,0,95,0,90,0,99,0,109,0,115,0,120,0,124,0,126,0, +125,0,115,0,91,0,67,0,58,0,63,0,73,0,87,0,95,0,85,0,70,0,65,0,58,0,46,0,46,0,57,0, +55,0,43,0,37,0,28,0,14,0,18,0,35,0,36,0,21,0,7,0,244,255,231,255,243,255,5,0,255,255,234,255, +222,255,213,255,206,255,212,255,223,255,218,255,203,255,192,255,179,255,160,255,154,255,168,255,175,255,163,255,147,255,141,255, +142,255,148,255,152,255,142,255,128,255,128,255,137,255,136,255,132,255,139,255,148,255,155,255,158,255,148,255,128,255,119,255, +127,255,141,255,146,255,133,255,112,255,104,255,117,255,131,255,130,255,126,255,127,255,122,255,103,255,86,255,80,255,77,255, +73,255,75,255,80,255,82,255,87,255,98,255,101,255,84,255,65,255,61,255,61,255,59,255,60,255,64,255,70,255,80,255, +96,255,113,255,126,255,128,255,120,255,109,255,97,255,84,255,75,255,77,255,91,255,114,255,137,255,151,255,158,255,156,255, +142,255,126,255,123,255,124,255,112,255,97,255,95,255,101,255,108,255,117,255,126,255,128,255,129,255,132,255,127,255,112,255, +99,255,98,255,103,255,101,255,91,255,86,255,95,255,111,255,122,255,120,255,113,255,104,255,95,255,89,255,87,255,90,255, +97,255,109,255,118,255,115,255,103,255,94,255,92,255,91,255,98,255,113,255,128,255,133,255,134,255,133,255,135,255,136,255, +130,255,122,255,124,255,137,255,151,255,160,255,164,255,164,255,164,255,170,255,176,255,176,255,172,255,170,255,175,255,189,255, +202,255,206,255,205,255,203,255,204,255,210,255,223,255,236,255,244,255,247,255,241,255,231,255,231,255,241,255,250,255,254,255, +3,0,4,0,0,0,254,255,5,0,12,0,11,0,4,0,253,255,250,255,252,255,3,0,13,0,17,0,13,0,6,0, +1,0,0,0,1,0,6,0,15,0,18,0,10,0,6,0,12,0,16,0,10,0,4,0,6,0,8,0,13,0,21,0, +23,0,22,0,25,0,28,0,24,0,20,0,19,0,14,0,9,0,17,0,25,0,26,0,28,0,33,0,33,0,32,0, +36,0,38,0,35,0,29,0,23,0,18,0,17,0,21,0,25,0,30,0,36,0,38,0,34,0,31,0,34,0,40,0, +44,0,41,0,30,0,15,0,6,0,10,0,20,0,29,0,36,0,43,0,49,0,54,0,53,0,44,0,34,0,29,0, +26,0,21,0,21,0,28,0,36,0,44,0,54,0,63,0,63,0,61,0,63,0,63,0,55,0,44,0,43,0,46,0, +42,0,38,0,50,0,67,0,77,0,83,0,89,0,86,0,76,0,68,0,59,0,46,0,40,0,42,0,44,0,46,0, +51,0,56,0,61,0,66,0,66,0,61,0,56,0,48,0,34,0,24,0,27,0,32,0,31,0,31,0,36,0,43,0, +51,0,63,0,69,0,66,0,60,0,55,0,44,0,33,0,30,0,37,0,43,0,49,0,57,0,66,0,75,0,83,0, +82,0,69,0,52,0,42,0,39,0,41,0,45,0,50,0,58,0,65,0,66,0,60,0,56,0,57,0,58,0,55,0, +51,0,48,0,44,0,36,0,32,0,39,0,48,0,52,0,54,0,58,0,55,0,44,0,35,0,31,0,30,0,35,0, +42,0,42,0,40,0,44,0,46,0,36,0,23,0,19,0,20,0,19,0,18,0,19,0,19,0,24,0,34,0,41,0, +36,0,26,0,15,0,1,0,242,255,238,255,243,255,248,255,249,255,253,255,4,0,9,0,7,0,255,255,245,255,242,255, +244,255,244,255,238,255,229,255,223,255,226,255,238,255,250,255,255,255,1,0,4,0,4,0,252,255,241,255,233,255,233,255, +235,255,237,255,239,255,239,255,239,255,241,255,247,255,248,255,246,255,248,255,251,255,249,255,242,255,235,255,230,255,228,255, +232,255,238,255,242,255,244,255,243,255,237,255,236,255,239,255,238,255,230,255,226,255,229,255,231,255,230,255,231,255,233,255, +232,255,232,255,238,255,240,255,232,255,228,255,232,255,233,255,229,255,230,255,235,255,236,255,234,255,235,255,234,255,230,255, +229,255,231,255,230,255,228,255,230,255,231,255,229,255,229,255,232,255,236,255,236,255,233,255,230,255,228,255,229,255,234,255, +239,255,240,255,237,255,235,255,235,255,238,255,241,255,241,255,242,255,241,255,236,255,234,255,241,255,247,255,244,255,241,255, +245,255,249,255,246,255,241,255,238,255,237,255,236,255,236,255,238,255,240,255,245,255,249,255,248,255,244,255,239,255,235,255, +233,255,236,255,239,255,242,255,243,255,243,255,244,255,245,255,244,255,243,255,242,255,238,255,233,255,231,255,233,255,237,255, +240,255,243,255,247,255,249,255,246,255,240,255,237,255,235,255,233,255,234,255,235,255,236,255,234,255,234,255,236,255,242,255, +248,255,250,255,249,255,243,255,234,255,226,255,227,255,235,255,241,255,243,255,244,255,245,255,246,255,248,255,253,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpigangry2.pcm b/src/client/sound/data/zpigangry2.pcm new file mode 100755 index 0000000..8cc9d0e --- /dev/null +++ b/src/client/sound/data/zpigangry2.pcm @@ -0,0 +1,1379 @@ +unsigned char PCM_zpigangry2[44050] = { +1,0,0,0,2,0,0,0,68,172,0,0,1,86,0,0,1,0,0,0,1,0,1,0,2,0,2,0,3,0,2,0, +2,0,2,0,3,0,2,0,0,0,254,255,255,255,3,0,8,0,9,0,9,0,8,0,3,0,253,255,252,255,3,0, +11,0,11,0,5,0,4,0,14,0,24,0,30,0,24,0,2,0,235,255,239,255,9,0,23,0,20,0,15,0,16,0, +24,0,31,0,25,0,12,0,7,0,248,255,224,255,225,255,5,0,49,0,86,0,83,0,21,0,214,255,216,255,241,255, +250,255,24,0,78,0,68,0,233,255,173,255,220,255,45,0,50,0,238,255,174,255,157,255,216,255,94,0,190,0,129,0, +228,255,113,255,79,255,102,255,160,255,224,255,33,0,100,0,116,0,55,0,8,0,28,0,26,0,193,255,114,255,161,255, +45,0,127,0,77,0,239,255,219,255,13,0,62,0,86,0,73,0,249,255,116,255,9,255,5,255,165,255,218,0,194,1, +72,1,199,255,196,254,229,254,153,255,88,0,176,0,65,0,159,255,153,255,230,255,25,0,120,0,214,0,146,0,4,0, +221,255,254,255,3,0,196,255,78,255,23,255,114,255,228,255,48,0,166,0,9,1,212,0,85,0,16,0,22,0,61,0, +15,0,99,255,14,255,127,255,245,255,54,0,158,0,154,0,189,255,31,255,151,255,173,0,189,1,247,1,110,0,12,254, +61,253,173,254,176,0,200,1,202,1,17,1,33,0,140,255,115,255,158,255,254,255,98,0,58,0,113,255,254,254,177,255, +239,0,98,1,172,0,216,255,207,255,0,0,129,255,219,254,2,255,186,255,114,0,51,1,238,1,68,2,230,1,114,0, +88,254,119,253,191,254,172,0,148,1,90,1,93,0,69,255,81,255,176,0,144,1,131,0,202,254,139,254,152,255,58,0, +102,0,253,0,16,1,150,255,250,253,207,253,179,254,236,255,0,1,27,1,87,0,211,255,162,255,53,255,231,254,24,255, +97,255,110,255,45,255,244,254,166,255,7,1,83,1,0,0,140,254,3,254,63,254,7,255,204,255,185,255,11,255,241,254, +203,255,170,0,153,0,193,255,255,254,158,254,92,254,128,254,145,255,247,0,70,1,62,0,47,255,225,254,181,254,96,254, +148,254,61,255,89,255,228,254,189,254,3,255,80,255,184,255,85,0,179,0,62,0,38,255,122,254,207,254,89,255,54,255, +203,254,241,254,196,255,131,0,59,0,75,255,107,255,232,0,171,1,107,0,106,254,93,253,185,253,209,254,160,255,233,255, +52,0,111,0,44,0,220,255,2,0,51,0,252,255,131,255,53,255,163,255,161,0,214,0,144,255,40,254,49,254,128,255, +209,0,78,1,235,0,29,0,179,255,65,0,48,1,80,1,182,0,91,0,42,0,161,255,94,255,244,255,196,0,42,1, +27,1,170,0,33,0,220,255,237,255,130,0,112,1,160,1,181,0,231,255,225,255,24,0,129,0,53,1,109,1,199,0, +253,255,149,255,144,255,6,0,217,0,115,1,78,1,99,0,53,255,126,254,171,254,198,255,118,1,181,2,115,2,8,1, +241,255,219,255,12,0,231,255,188,255,210,255,221,255,199,255,222,255,25,0,93,0,201,0,20,1,224,0,136,0,35,0, +64,255,126,254,12,255,85,0,231,0,198,0,180,0,165,0,99,0,70,0,125,0,98,0,73,255,11,254,80,254,225,255, +215,0,180,0,158,0,255,0,71,1,0,1,8,0,236,254,181,254,102,255,202,255,69,255,154,254,193,254,162,255,91,0, +188,0,75,1,181,1,53,1,55,0,122,255,237,254,172,254,219,254,201,254,109,254,218,254,251,255,173,0,196,0,129,0, +4,0,34,0,255,0,239,0,95,255,12,254,198,253,176,253,209,253,230,254,113,0,109,1,193,1,232,1,42,2,80,2, +179,1,53,0,175,254,181,253,37,253,121,253,87,255,142,1,47,2,107,1,199,0,157,0,128,0,92,0,3,0,128,255, +96,255,131,255,96,255,129,255,110,0,64,1,57,1,175,0,238,255,58,255,34,255,177,255,152,0,153,1,198,1,110,0, +218,254,193,254,246,255,85,1,39,2,1,2,252,0,219,255,114,255,24,0,46,1,126,1,217,0,8,0,78,255,10,255, +34,0,205,1,4,2,204,0,171,255,244,254,154,254,10,255,229,255,140,0,65,1,210,1,108,1,91,0,139,255,22,255, +7,255,148,255,10,0,151,255,190,254,104,254,186,254,176,255,32,1,253,1,84,1,183,255,62,254,71,253,39,253,49,254, +105,255,112,255,215,254,59,255,158,0,103,1,114,0,86,254,235,252,90,253,223,254,26,0,122,0,255,255,60,255,70,255, +31,0,101,0,147,255,156,254,39,254,25,254,161,254,29,0,220,1,60,2,182,0,184,254,182,253,196,253,155,254,232,255, +199,0,204,0,94,0,137,255,132,254,95,254,54,255,225,255,237,255,42,255,62,253,197,251,18,253,55,0,111,2,207,2, +156,1,66,255,71,253,222,252,134,253,205,254,112,0,237,0,153,255,114,254,8,255,82,0,21,1,52,1,145,0,67,255, +70,254,81,254,12,255,247,255,155,0,57,0,6,255,169,254,204,255,169,0,217,255,152,254,200,254,55,0,12,1,58,0, +178,254,234,253,18,254,201,254,205,255,8,0,147,254,4,253,90,253,217,254,10,0,0,1,81,1,218,255,208,253,230,253, +243,255,250,0,91,255,204,252,16,252,235,253,194,0,133,2,93,2,5,1,227,255,172,255,28,0,196,0,6,1,17,0, +83,254,160,253,238,254,73,1,8,3,20,3,161,1,237,255,227,254,212,254,12,0,251,1,203,2,125,1,56,255,5,254, +21,255,181,1,151,3,24,3,221,0,214,254,161,254,97,0,89,2,203,2,16,2,89,1,221,0,146,0,224,0,183,1, +99,2,65,2,92,1,185,0,116,1,35,3,23,4,102,3,246,1,62,1,101,1,128,1,166,1,218,2,154,4,240,4, +72,3,58,1,191,0,106,2,155,4,205,4,155,2,80,0,0,0,130,1,74,3,18,4,204,3,45,3,119,2,138,1, +234,0,82,1,103,2,8,3,220,2,161,2,184,2,125,2,175,1,65,1,203,1,141,2,145,2,214,1,69,1,224,1, +114,3,133,4,20,4,131,2,254,0,131,0,15,1,212,1,177,2,7,4,242,4,67,4,214,2,65,2,122,2,168,2, +169,2,192,2,242,2,238,2,118,2,11,2,102,2,66,3,146,3,207,2,135,1,240,0,148,1,140,2,218,2,145,2, +60,2,115,2,107,3,214,3,76,2,246,255,34,255,57,0,77,2,44,4,90,4,211,2,142,1,116,1,184,1,47,2, +212,2,136,2,1,1,123,255,199,254,3,255,36,0,59,1,123,1,145,1,190,1,209,0,14,255,146,254,156,255,92,0, +82,0,38,0,140,255,97,254,206,253,102,254,122,255,138,0,8,1,48,0,180,254,43,254,137,254,205,254,182,254,254,253, +99,252,253,250,223,250,160,251,223,252,147,254,144,255,140,254,21,252,24,250,88,250,184,252,150,254,219,253,246,251,60,251, +103,251,30,251,120,250,97,250,46,251,101,252,50,253,30,253,101,252,173,251,123,251,169,251,239,251,154,252,97,253,240,252, +131,251,41,251,18,252,129,252,63,252,253,251,90,251,161,250,32,251,97,252,197,252,86,252,29,252,86,252,169,252,128,252, +120,251,91,250,79,250,45,251,46,252,24,253,179,253,169,253,80,253,84,253,199,253,75,254,84,254,55,253,46,251,214,249, +67,250,144,251,135,252,52,253,196,253,206,253,96,253,9,253,235,252,190,252,60,252,87,251,143,250,148,250,125,251,216,252, +201,253,99,253,67,252,70,252,104,253,181,253,225,252,111,252,185,252,205,252,64,252,99,251,161,250,49,250,20,250,126,250, +123,251,105,252,244,252,56,253,120,252,118,250,36,249,173,249,127,250,136,250,145,250,171,250,101,250,80,250,174,250,214,250, +202,250,204,250,110,250,176,249,57,249,40,249,93,249,207,249,230,249,41,249,131,248,37,249,171,250,149,251,21,251,183,249, +163,248,152,248,130,249,217,250,39,252,32,253,102,253,237,252,127,252,5,253,85,254,98,255,88,255,109,254,209,253,85,254, +88,255,4,0,122,0,169,0,251,255,2,255,4,255,253,255,250,0,149,1,253,1,135,2,68,3,162,3,74,3,250,2, +92,3,249,3,29,4,190,3,76,3,67,3,209,3,203,4,198,5,254,5,5,5,167,3,16,3,113,3,107,4,158,5, +104,6,100,6,42,6,164,6,229,7,200,8,0,8,2,6,190,4,228,4,151,5,121,6,124,7,234,7,141,7,35,7, +20,7,82,7,155,7,38,7,177,5,91,4,16,4,131,4,92,5,136,6,123,7,116,7,67,6,191,4,96,4,134,5, +157,6,63,6,223,4,158,3,14,3,135,3,232,4,6,6,191,5,136,4,202,3,247,3,150,4,126,5,121,6,163,6, +174,5,104,4,112,3,51,3,72,4,5,6,189,6,134,6,207,6,146,7,213,7,194,7,240,7,47,8,8,8,99,7, +198,6,7,7,17,8,176,8,78,8,189,7,239,7,238,8,38,10,219,10,168,10,226,9,71,9,250,8,87,8,84,7, +14,7,27,8,128,9,7,10,173,9,78,9,137,9,11,10,50,10,7,10,126,9,20,8,183,6,134,7,88,10,141,12, +163,12,22,11,254,8,206,7,102,8,198,9,87,10,168,9,72,8,111,7,37,8,196,9,196,10,149,10,84,9,93,7, +224,5,203,5,110,6,154,6,28,6,113,5,37,5,86,5,195,5,89,6,172,6,186,5,245,3,71,3,206,3,217,3, +45,3,126,2,59,1,129,255,65,255,225,0,34,2,175,1,96,0,243,254,187,253,165,253,210,254,78,255,145,253,242,250, +196,249,98,250,126,251,44,252,124,252,160,252,94,252,213,251,230,251,230,252,204,253,194,253,26,253,51,252,249,250,90,249, +114,247,0,246,37,246,153,247,233,248,225,249,16,251,188,251,38,251,29,250,120,249,17,249,178,248,66,248,139,247,186,246, +122,246,98,247,64,249,219,250,6,251,195,249,187,247,210,245,63,245,31,246,243,246,222,246,75,246,140,245,86,245,169,246, +140,248,0,249,55,248,133,247,250,246,125,246,133,246,252,246,189,247,6,249,31,250,0,250,13,249,251,247,122,246,147,244, +112,243,211,243,40,245,86,246,221,246,249,246,169,246,126,245,219,243,250,242,255,242,216,242,89,242,118,242,72,243,249,243, +77,244,74,244,69,243,46,241,149,239,238,239,255,241,83,244,66,245,31,244,213,241,147,239,162,237,103,236,171,236,58,238, +239,239,216,240,179,240,68,240,135,240,13,241,21,241,112,241,151,242,37,243,127,242,208,241,162,241,142,241,132,241,147,241, +51,242,59,244,249,246,143,248,202,248,172,248,138,248,174,248,100,249,220,249,157,249,174,249,135,250,137,251,225,252,4,255, +250,0,140,1,37,1,254,0,130,1,53,2,152,2,162,2,176,2,63,3,114,4,152,5,22,6,127,6,102,7,239,7, +35,7,217,5,226,5,132,7,243,8,168,8,150,7,148,7,138,8,29,9,250,8,129,8,202,7,55,7,97,7,52,8, +63,9,51,10,136,10,16,10,218,9,219,10,238,11,13,11,58,8,95,5,209,3,202,3,66,5,53,7,199,7,153,6, +246,4,150,3,126,2,9,2,55,2,111,2,141,2,129,2,10,2,157,1,201,1,225,1,13,1,153,255,122,254,120,254, +96,255,228,255,82,255,80,254,71,253,70,252,30,252,3,253,76,253,196,251,118,249,85,248,123,249,74,252,142,254,110,254, +76,252,56,250,237,249,160,251,54,254,42,0,115,0,66,255,30,254,61,254,41,255,55,0,161,1,203,2,95,2,31,1, +119,1,217,3,76,6,50,7,183,6,237,5,170,5,84,6,14,8,79,10,213,11,10,12,152,11,75,11,107,11,213,11, +243,11,131,11,71,11,19,12,216,13,208,15,127,16,250,14,229,12,244,12,93,15,186,17,222,17,158,15,24,13,10,13, +180,15,118,18,45,19,54,18,209,16,95,15,41,14,91,14,120,16,156,18,195,18,209,17,222,17,186,18,207,18,0,18, +109,17,58,17,114,16,239,14,204,13,145,13,168,13,186,13,192,13,89,13,159,12,38,12,167,11,158,10,121,9,176,8, +89,8,163,8,0,9,123,8,141,7,237,6,246,5,228,4,135,5,168,7,161,8,62,7,236,4,83,3,172,2,48,2, +163,1,197,1,164,2,244,2,3,2,199,0,161,0,10,2,202,3,172,3,83,1,70,255,197,255,59,2,182,4,242,5, +90,5,209,2,143,255,31,254,38,0,70,4,18,7,83,6,49,3,213,0,209,0,218,1,63,2,192,1,155,0,81,255, +32,255,124,0,107,2,129,4,187,6,89,7,216,4,101,1,126,0,4,2,232,2,234,1,181,0,87,0,210,255,199,254, +119,254,16,255,218,254,218,252,134,250,128,250,30,254,123,3,114,6,55,4,34,254,209,248,204,247,153,249,88,250,205,249, +163,250,22,253,59,255,116,0,165,0,40,255,41,252,88,248,157,244,71,243,124,245,254,247,5,247,124,243,3,241,161,241, +145,244,4,247,36,247,79,246,209,245,8,244,94,240,114,237,148,236,48,236,173,235,250,235,62,237,67,239,187,241,234,242, +108,241,187,238,215,236,139,235,52,234,109,233,200,233,67,235,140,237,96,239,95,239,36,238,160,237,123,238,207,239,210,240, +71,241,190,240,176,238,244,235,251,234,2,237,73,240,170,242,27,244,64,245,26,246,184,246,248,246,45,246,110,244,192,242, +156,241,235,240,255,240,112,242,155,245,6,250,193,253,185,254,196,252,136,249,68,247,99,247,173,248,186,248,237,247,104,248, +177,249,94,250,172,251,112,254,4,0,63,254,193,250,124,248,168,248,241,249,156,249,241,246,196,244,178,245,240,248,207,251, +18,252,70,249,188,245,229,244,80,247,216,249,103,249,52,246,7,243,40,242,191,243,100,246,28,248,95,247,96,244,219,240, +158,238,245,238,208,241,130,244,7,244,28,241,74,239,59,240,115,242,209,243,241,243,88,244,32,246,3,248,41,248,213,246, +180,245,38,246,166,248,4,252,185,253,215,252,103,251,124,251,181,252,186,253,95,254,220,254,157,254,121,253,219,252,57,254, +45,1,188,3,56,4,18,3,174,2,160,4,225,7,38,10,9,10,26,8,149,6,12,7,138,8,106,9,141,9,144,9, +25,10,5,12,203,14,222,15,227,13,230,10,211,9,79,11,220,13,150,15,58,15,211,12,173,10,204,11,238,15,81,19, +111,19,36,17,118,14,35,13,21,14,36,16,15,17,213,15,55,13,72,11,63,12,157,15,171,17,101,15,247,9,24,6, +95,7,116,11,121,12,215,8,103,4,93,2,175,2,5,4,218,4,134,4,233,3,131,3,92,2,229,255,246,252,29,251, +83,251,198,252,28,254,179,255,252,1,20,3,64,1,205,253,95,251,38,251,45,252,211,252,231,252,131,253,210,254,188,255, +66,255,88,253,137,251,232,251,111,254,132,1,167,4,216,7,72,10,139,11,175,11,42,10,44,7,220,4,120,5,230,8, +140,12,52,14,216,14,79,16,76,17,211,15,205,13,139,14,105,17,130,18,229,15,42,12,101,11,106,14,114,18,186,20, +234,20,146,20,97,21,145,23,7,26,93,27,113,26,196,23,243,21,114,22,196,23,160,24,1,25,67,24,192,22,80,23, +6,27,162,30,179,30,63,27,195,22,172,19,219,18,168,19,107,20,155,19,224,17,195,17,205,19,229,21,227,22,185,22, +134,20,137,16,88,13,227,12,181,14,249,16,152,17,180,15,213,11,151,6,144,1,213,255,79,2,32,6,46,8,22,7, +9,3,185,254,151,253,163,255,184,1,200,1,191,0,176,0,9,2,36,3,223,2,169,1,118,255,192,251,24,248,195,247, +173,251,158,0,237,2,139,2,25,1,160,254,223,251,173,251,50,254,215,255,199,254,164,252,191,251,227,253,153,2,56,6, +47,6,175,3,120,0,1,254,168,254,35,2,209,3,119,0,22,250,32,245,10,245,19,250,49,0,61,2,2,255,32,250, +143,248,92,252,139,2,11,6,17,5,161,1,187,253,113,250,76,249,180,250,178,252,93,253,21,252,60,249,245,247,242,251, +22,2,126,2,11,252,78,245,125,242,163,242,248,243,246,244,151,244,147,243,243,242,12,243,15,244,216,244,170,243,129,241, +180,240,169,241,75,244,13,248,47,249,98,244,74,236,131,230,219,229,124,233,9,238,251,239,78,239,235,238,40,240,120,241, +230,240,46,238,145,234,40,231,94,228,49,227,169,228,225,231,254,234,63,237,83,238,215,237,136,236,217,235,37,236,111,236, +64,235,194,231,68,227,227,224,119,226,181,230,178,234,40,236,156,234,155,231,94,229,177,228,1,229,207,229,102,230,128,229, +28,227,149,225,72,227,34,231,165,232,113,229,255,225,47,228,49,234,71,237,220,235,226,233,196,233,156,234,28,235,60,235, +0,236,224,237,155,239,249,239,186,239,10,241,123,245,86,251,233,253,119,251,6,248,111,247,47,249,40,251,221,251,228,250, +34,250,207,251,23,255,238,1,3,4,209,5,91,7,5,8,121,6,220,2,73,0,254,0,86,3,95,5,225,7,91,11, +96,13,251,11,94,9,217,8,200,9,80,9,83,7,222,5,35,6,164,8,11,13,223,16,144,17,77,15,217,11,120,8, +15,6,43,5,156,5,209,6,39,8,242,8,243,8,3,8,30,5,68,0,228,252,245,253,3,0,60,253,140,246,39,242, +0,243,5,247,68,250,39,249,94,243,83,236,250,230,145,228,5,230,208,233,44,236,167,235,211,232,78,228,72,225,163,226, +115,228,188,225,144,221,126,221,242,224,49,228,140,229,73,229,186,228,40,229,42,230,114,230,10,230,77,230,223,231,174,233, +28,235,166,237,32,242,77,246,105,247,80,245,13,243,191,244,129,250,113,255,163,0,223,255,180,254,73,254,142,1,17,8, +254,11,22,10,130,5,25,3,136,5,242,11,66,18,35,21,135,20,18,18,41,16,190,16,236,18,189,20,126,22,179,24, +193,25,153,24,47,23,143,24,138,29,129,35,194,38,15,38,27,35,99,32,64,31,136,31,236,32,192,35,28,39,22,40, +56,37,100,33,186,32,201,34,35,35,0,33,238,32,46,36,213,37,51,35,77,31,70,29,122,29,39,30,135,28,201,24, +4,23,49,25,85,28,129,28,68,24,226,17,173,13,196,12,216,12,105,13,142,15,125,18,191,20,245,20,243,17,52,14, +59,14,155,17,108,20,141,21,132,21,13,20,198,17,19,16,63,16,178,19,56,25,143,27,147,22,106,12,173,4,0,6, +112,14,88,21,183,22,47,22,211,22,54,24,175,25,88,26,136,25,61,25,50,27,180,28,180,26,217,23,43,25,9,30, +59,33,160,33,156,34,63,36,0,35,83,30,55,25,120,22,196,22,183,23,151,22,12,21,27,22,31,25,29,29,158,34, +203,38,121,37,247,31,180,26,13,24,123,25,41,31,185,36,151,36,127,30,24,23,209,18,48,19,23,23,93,27,85,28, +198,24,63,19,170,15,186,15,140,17,45,18,110,17,187,16,193,14,149,9,138,3,116,0,135,1,49,6,238,10,183,9, +74,2,211,251,107,250,49,251,216,250,217,248,170,246,116,246,189,247,203,247,248,245,194,242,8,238,75,234,64,235,218,239, +95,243,76,242,192,236,6,232,37,234,16,241,221,244,18,242,82,235,48,229,251,227,141,232,120,239,124,245,84,248,5,245, +62,236,187,228,47,228,65,233,146,237,83,235,22,227,90,220,151,220,31,224,48,225,20,226,112,232,92,241,112,243,141,236, +30,229,35,229,249,235,71,242,72,241,168,233,185,226,118,225,133,228,219,233,95,241,149,248,135,249,214,240,167,227,79,221, +116,228,170,242,88,250,114,245,54,235,79,230,30,233,122,238,219,241,184,242,254,242,164,244,18,247,57,248,47,248,19,247, +153,242,154,235,197,231,65,233,22,236,114,236,153,233,15,230,226,230,160,237,17,245,65,247,78,242,216,232,34,226,251,227, +255,234,158,239,112,239,149,236,57,234,239,234,80,237,149,237,74,236,142,236,248,236,195,233,203,227,37,224,202,225,73,230, +154,233,206,234,67,234,147,231,213,228,226,229,77,234,77,238,253,239,134,238,116,233,205,228,236,230,73,239,100,245,250,242, +11,235,193,228,224,226,102,227,203,228,250,230,79,232,101,230,50,226,9,224,168,226,233,231,223,234,192,232,101,228,189,227, +127,231,82,233,3,230,140,226,28,227,53,230,30,234,240,237,155,239,24,239,24,238,245,235,151,232,253,230,172,232,158,236, +9,241,212,241,210,236,205,231,139,232,96,236,154,239,57,243,206,246,238,246,169,242,238,236,102,234,255,237,134,244,58,247, +176,244,142,242,76,245,123,250,186,252,51,250,214,244,40,239,224,235,48,237,156,242,112,249,103,253,61,250,230,242,91,241, +21,248,159,254,28,0,75,254,88,249,223,243,85,245,123,253,198,2,36,1,18,253,178,250,105,251,153,254,251,0,73,0, +198,253,21,251,127,249,106,251,169,0,68,4,177,2,192,254,58,253,51,255,140,2,49,5,175,6,160,7,72,7,160,3, +19,254,207,251,213,254,136,4,112,10,240,13,46,12,119,7,208,4,17,4,72,3,243,3,136,5,152,4,166,2,146,4, +108,10,48,16,76,19,167,19,221,17,137,14,237,11,49,13,22,17,20,19,70,19,153,20,209,21,110,21,139,21,118,22, +131,22,136,22,47,23,174,23,18,25,68,27,83,27,229,25,216,26,173,29,72,31,219,31,16,33,174,34,216,35,228,36, +181,38,70,40,247,38,213,34,162,30,12,28,232,28,59,35,238,42,228,43,119,37,239,30,48,29,178,31,129,36,34,41, +32,42,3,38,31,32,200,29,224,32,68,39,102,45,1,47,54,42,107,35,185,31,110,30,107,30,252,33,129,39,92,40, +3,35,4,30,187,31,59,39,223,44,255,41,230,32,148,26,91,28,228,34,221,39,103,41,124,41,235,40,230,39,19,41, +233,45,221,49,61,46,130,34,208,22,149,20,24,28,177,36,54,39,136,35,202,29,102,26,251,25,41,26,226,27,242,32, +133,36,39,34,108,30,116,30,12,33,169,35,138,34,124,25,132,13,2,10,17,17,12,27,73,33,216,32,124,26,249,18, +26,14,184,12,179,15,110,21,169,23,158,18,28,10,128,4,30,4,212,6,166,10,171,15,77,20,23,21,224,17,15,13, +235,7,225,4,174,6,11,10,66,9,31,5,162,1,7,255,92,253,20,255,96,2,247,0,38,251,12,249,115,252,179,252, +125,245,207,237,117,236,122,240,226,245,204,249,211,251,119,254,26,2,96,2,188,253,137,249,115,249,40,249,134,243,25,236, +92,235,189,241,224,245,12,242,91,235,111,233,11,238,241,244,143,247,252,242,133,235,240,230,228,228,221,225,255,223,233,229, +182,242,197,251,46,251,170,246,113,244,43,244,195,242,242,236,228,227,184,224,167,231,51,238,14,235,6,227,231,221,142,221, +223,224,104,228,132,229,215,230,87,233,56,233,169,232,78,238,255,245,66,244,104,232,186,221,212,220,173,227,22,234,76,234, +25,229,126,223,69,221,60,221,56,220,115,219,192,221,187,223,238,220,153,217,56,220,240,226,125,232,135,235,78,235,84,230, +226,223,52,222,131,225,22,228,33,227,90,224,207,220,59,218,171,221,135,231,231,237,146,231,228,215,219,201,201,196,18,202, +52,215,118,228,107,232,88,227,153,223,184,225,25,228,175,228,240,229,90,228,183,221,216,218,6,226,56,236,215,240,101,238, +96,230,188,220,251,215,244,218,19,226,6,231,83,229,31,222,60,215,5,214,218,220,93,233,142,243,126,245,182,242,227,241, +136,244,122,248,203,250,190,248,27,243,227,238,46,240,251,245,238,251,11,255,150,254,78,249,42,240,42,234,185,236,239,243, +67,249,90,250,191,246,144,240,225,237,50,242,139,250,65,1,155,1,222,251,43,246,180,244,29,247,136,254,252,8,49,11, +93,255,125,241,98,239,92,248,118,3,53,8,241,0,222,241,32,233,207,237,78,247,173,251,180,250,59,247,149,242,103,240, +143,244,37,253,126,3,146,1,85,247,70,236,143,231,111,233,66,240,167,249,14,253,218,244,17,234,229,231,2,237,65,243, +99,247,164,245,11,237,70,228,106,226,190,231,107,239,99,243,201,240,214,234,110,231,215,233,81,240,110,245,245,245,216,243, +150,241,118,240,215,242,173,248,41,253,31,253,126,250,137,248,190,248,99,249,14,248,170,247,159,252,98,3,242,5,4,6, +114,7,191,8,176,7,94,5,16,4,157,5,180,9,64,13,36,14,177,13,146,14,109,18,97,24,26,29,50,30,156,28, +226,26,143,26,55,27,251,27,94,29,161,31,115,33,148,34,118,35,134,34,7,32,178,32,214,37,228,41,86,41,221,38, +198,36,79,34,110,32,134,34,137,40,83,45,41,45,15,42,2,40,221,40,214,43,86,45,209,41,97,35,153,32,123,36, +220,42,139,45,5,44,4,43,128,43,124,41,121,37,77,36,25,38,10,40,1,42,252,42,154,40,65,36,201,32,183,30, +212,30,247,33,163,38,83,42,56,42,140,37,120,33,96,34,147,35,169,31,208,25,62,24,21,30,44,41,43,48,80,44, +4,37,184,36,95,41,255,43,217,43,21,42,169,37,122,31,168,27,12,30,213,38,188,49,215,56,2,56,224,46,170,34, +220,27,32,30,148,36,182,39,170,36,125,30,98,26,131,27,85,33,118,40,58,45,113,46,183,44,203,40,107,37,129,38, +219,42,118,44,27,40,82,31,10,22,108,18,138,24,194,35,0,42,182,37,91,26,237,16,64,16,123,23,138,32,198,37, +84,36,218,28,241,19,108,16,153,22,241,33,159,38,106,31,168,21,188,20,133,27,252,30,148,22,215,4,6,246,28,245, +67,2,133,19,178,28,202,24,13,13,72,1,203,249,84,249,210,254,138,2,116,254,193,244,248,235,43,236,247,248,228,7, +82,10,208,0,254,244,56,234,33,226,86,225,72,231,250,237,241,240,64,238,120,232,8,231,89,236,249,241,198,242,34,239, +152,231,191,221,68,216,169,221,104,235,170,246,157,246,137,236,42,225,44,220,1,223,29,229,226,231,177,227,176,218,200,210, +68,208,173,210,185,215,136,221,69,224,181,220,34,215,15,215,67,220,111,224,9,224,108,219,66,213,213,210,2,215,66,220, +159,218,32,211,41,206,17,207,13,210,17,213,205,215,28,214,147,206,69,200,122,200,83,204,127,208,36,212,232,213,210,213, +202,212,68,210,106,208,214,210,32,214,69,212,55,207,152,204,81,205,133,207,195,209,188,210,116,209,199,204,243,196,198,190, +154,191,22,198,0,204,37,205,50,202,100,199,143,200,145,205,164,210,107,211,88,207,125,203,214,203,17,206,232,207,120,210, +120,212,9,212,22,212,254,213,249,213,161,211,243,210,97,212,157,213,143,214,44,216,148,218,180,220,175,220,112,219,172,220, +166,224,0,228,64,229,70,228,55,225,34,224,52,229,235,235,50,236,196,230,129,226,159,225,131,226,99,229,241,233,226,237, +137,240,147,241,14,239,117,234,56,232,222,231,91,230,172,229,9,233,75,239,42,245,3,247,181,243,72,240,220,240,239,241, +0,241,227,240,16,241,183,238,239,236,213,239,145,245,190,249,10,249,138,243,24,239,30,241,177,247,142,254,65,4,12,7, +222,4,82,255,243,250,54,251,208,255,180,4,149,5,172,1,99,252,114,250,161,252,121,255,200,1,172,4,106,5,113,1, +235,252,5,252,86,253,14,255,216,255,234,252,208,247,220,246,3,252,222,3,112,11,10,16,128,15,166,11,203,7,100,4, +13,2,239,3,77,10,35,15,102,13,82,8,5,6,196,6,167,7,116,8,248,8,110,7,122,5,89,7,134,12,138,15, +113,13,66,9,155,7,118,9,191,12,204,15,153,17,63,17,172,15,96,15,212,17,108,22,137,26,201,26,106,22,86,16, +165,12,160,13,53,17,201,18,124,17,33,16,201,15,223,16,166,20,240,24,111,26,166,26,165,27,10,29,112,32,198,37, +12,39,11,34,173,28,34,27,63,29,128,34,22,40,150,42,21,43,222,42,95,40,239,36,64,36,204,37,120,38,227,37, +170,38,120,43,202,50,0,55,173,53,49,50,207,47,87,47,99,49,230,53,123,59,200,63,202,63,155,59,143,56,81,58, +157,61,203,61,71,58,210,52,232,47,89,47,151,53,131,63,1,70,214,68,80,62,91,56,98,55,250,58,194,63,92,69, +108,77,225,83,5,83,241,78,28,79,112,80,27,76,120,68,189,63,129,63,233,67,119,76,216,82,68,79,1,68,192,59, +103,58,152,57,117,55,65,59,255,69,15,77,127,73,128,64,128,58,15,58,163,59,197,58,13,56,219,56,115,63,127,69, +22,67,210,59,40,59,113,63,243,57,107,42,4,35,135,42,51,51,110,49,56,40,152,33,174,35,28,41,110,39,173,31, +144,28,185,32,75,36,124,33,138,27,36,27,41,34,23,37,134,27,219,16,250,20,47,36,42,44,70,35,146,18,242,9, +140,13,216,19,27,22,82,24,49,30,199,34,66,31,119,20,239,10,13,9,236,9,137,3,180,246,235,239,19,246,26,3, +87,15,25,22,176,15,84,249,86,224,251,210,147,206,24,205,170,211,72,227,87,238,184,234,95,223,71,217,54,221,223,229, +246,233,94,228,18,217,151,208,140,205,103,203,101,201,1,205,159,212,248,212,36,202,140,190,63,189,111,198,63,208,147,206, +80,190,171,169,215,158,146,163,199,176,151,186,91,190,121,193,41,194,33,186,221,175,170,176,206,187,228,195,47,192,21,180, +203,169,235,166,24,167,110,166,145,169,70,179,55,188,221,188,164,182,193,174,236,166,72,159,103,155,152,159,2,170,163,179, +29,183,109,180,144,177,1,181,140,187,35,188,5,183,171,179,77,179,48,180,223,184,116,192,13,196,105,193,58,188,122,182, +122,177,174,177,126,186,221,200,175,211,153,210,160,199,127,190,43,190,86,194,109,199,114,208,34,219,92,221,220,212,165,203, +248,201,188,207,166,216,163,221,138,217,28,209,62,206,216,211,48,220,37,224,123,222,93,220,154,219,154,215,239,209,66,211, +111,219,138,226,42,231,203,234,45,234,96,229,104,226,131,227,71,230,195,233,193,237,46,240,197,238,127,234,98,232,113,235, +130,239,182,239,95,237,103,235,113,234,233,235,250,240,117,246,155,247,128,244,46,242,81,243,80,244,218,242,51,243,146,247, +6,251,32,250,255,246,113,243,193,239,23,237,131,236,22,238,24,240,180,238,254,232,114,227,145,225,24,227,171,231,114,237, +129,239,163,235,26,229,148,224,187,225,227,232,14,240,185,240,113,237,59,238,165,244,217,250,164,252,165,250,55,247,144,245, +172,247,37,250,122,248,230,244,134,244,134,247,80,251,251,253,194,252,199,246,91,241,77,243,199,252,145,6,94,9,46,5, +151,255,4,253,254,255,52,9,229,18,168,20,111,14,210,7,179,6,175,11,214,18,209,22,39,22,109,18,70,13,230,10, +52,15,59,22,85,25,1,24,219,20,132,18,43,20,176,24,155,27,127,29,121,32,63,33,120,30,192,28,227,29,119,31, +242,32,132,34,119,35,182,36,2,39,163,40,213,40,84,41,45,43,110,45,227,46,123,47,177,47,161,47,247,47,166,49, +24,51,240,49,10,48,168,48,26,50,194,48,218,45,208,45,156,49,33,53,245,51,9,46,243,38,158,34,130,35,76,41, +72,48,179,51,16,49,170,42,25,39,139,42,21,49,2,52,188,49,246,44,212,40,136,39,26,41,4,44,14,47,120,48, +191,46,112,44,69,46,17,52,129,55,117,51,172,43,43,41,40,45,85,47,128,44,147,43,248,48,244,55,80,58,183,55, +49,53,104,55,157,61,71,66,84,64,145,57,124,55,100,62,96,68,66,66,254,64,73,70,206,72,19,69,11,68,250,70, +246,69,64,64,130,60,223,63,154,74,181,85,186,87,218,79,163,68,75,59,55,56,72,63,98,77,129,88,82,88,109,77, +150,66,158,67,222,79,230,90,23,91,50,81,54,68,98,60,24,63,195,73,5,83,180,83,38,76,124,65,69,59,215,64, +83,80,77,91,143,84,201,62,86,42,74,39,95,55,32,75,113,81,101,72,129,57,216,44,112,38,33,40,216,47,183,54, +3,52,173,36,207,18,180,14,140,27,35,42,177,42,102,29,200,13,77,4,217,2,211,8,230,16,6,17,132,6,197,250, +32,246,222,247,56,252,46,255,194,250,8,236,207,218,216,214,150,231,107,255,78,8,75,251,165,225,220,199,74,186,35,192, +78,209,180,221,123,222,180,215,200,208,8,207,217,207,146,203,113,193,135,183,193,176,211,173,195,178,133,193,51,210,126,214, +249,198,87,173,194,157,113,163,109,182,44,197,211,197,129,188,73,178,153,172,226,174,189,185,135,196,40,195,176,180,183,164, +83,160,246,171,66,190,164,198,56,191,39,179,26,176,122,184,153,196,161,202,193,197,0,186,124,176,166,175,200,184,7,201, +206,214,126,212,166,192,140,173,14,173,253,187,115,202,18,207,176,202,161,193,77,184,28,181,87,191,71,211,145,221,23,210, +179,191,173,188,246,202,99,220,146,228,239,223,17,212,248,201,35,197,126,197,23,205,15,218,165,225,188,218,39,202,91,191, +92,196,250,210,90,220,196,216,174,204,0,194,213,191,126,198,1,209,108,216,23,215,133,206,10,200,162,201,129,208,246,216, +104,223,67,220,166,206,206,195,211,197,236,205,174,209,116,208,250,204,219,198,241,192,8,195,114,205,69,212,152,207,18,199, +84,197,212,202,236,210,81,218,46,221,222,216,246,208,179,204,179,207,200,215,122,224,134,229,101,227,48,219,80,213,212,216, +186,225,155,230,28,227,158,216,134,204,194,199,197,207,3,223,126,233,247,232,36,226,25,221,108,220,174,223,165,231,161,240, +144,241,79,232,186,222,122,223,200,235,164,251,201,4,184,2,189,248,7,238,31,234,15,240,85,250,85,0,187,254,216,247, +56,241,2,241,60,248,185,1,16,8,148,8,48,4,206,0,75,4,18,14,193,24,197,29,143,25,69,18,69,18,224,24, +181,28,82,27,178,25,166,26,66,29,107,30,226,26,74,21,134,20,213,24,147,27,120,26,104,25,152,26,244,28,167,31, +132,33,220,32,211,30,13,30,5,30,15,29,25,28,116,28,87,30,54,34,111,38,69,39,102,36,7,32,58,26,87,20, +186,18,179,21,108,24,203,23,125,20,61,17,15,17,93,19,195,20,8,21,21,22,247,22,234,21,200,19,189,18,81,20, +231,23,133,26,150,25,141,20,117,13,33,10,180,14,54,22,254,24,225,22,255,18,193,13,59,9,71,10,75,17,109,24, +5,26,231,21,17,16,123,12,126,13,230,18,51,24,39,25,161,23,94,22,204,19,4,17,113,19,13,27,174,33,35,35, +93,31,204,25,125,23,7,25,158,27,87,31,21,35,11,34,28,30,61,31,223,36,159,39,218,38,2,39,61,41,134,44, +125,47,14,48,176,46,206,45,245,44,182,43,119,45,212,50,165,54,163,54,129,53,248,51,87,50,74,52,188,57,223,60, +57,60,225,58,42,56,117,51,161,49,115,53,106,59,124,63,19,63,217,57,71,53,111,55,150,62,201,68,129,71,119,71, +133,69,222,65,156,62,52,65,126,74,161,80,19,75,71,62,64,51,57,46,114,49,97,60,112,71,233,73,14,67,232,57, +70,54,107,58,165,66,225,72,94,71,156,61,39,52,25,51,42,55,224,56,4,55,203,51,145,49,115,51,140,56,213,58, +7,55,179,47,83,41,0,39,84,40,124,43,104,49,8,57,207,58,43,51,161,41,117,37,228,36,165,35,114,33,15,33, +175,36,95,42,11,45,123,42,41,37,157,31,237,24,35,15,14,5,221,2,99,12,253,25,205,32,53,30,245,22,11,16, +26,12,49,12,234,16,8,26,153,34,186,32,24,17,128,0,183,255,91,14,153,27,91,27,149,17,50,8,163,2,227,255, +96,1,143,6,198,7,141,1,127,252,197,253,49,254,61,250,59,247,187,244,56,238,217,231,133,232,104,240,128,252,239,7, +134,12,71,10,208,5,87,255,76,245,93,233,147,222,130,218,85,225,157,233,100,228,86,212,183,201,199,201,56,203,240,198, +161,192,163,191,223,195,113,197,37,192,77,185,113,184,219,190,52,198,115,198,42,191,76,183,213,177,15,171,2,164,38,166, +198,180,253,193,158,189,51,172,220,159,170,156,32,152,14,145,186,144,248,150,252,152,167,146,218,140,112,145,78,157,26,164, +177,161,94,156,194,149,151,139,215,133,235,142,236,160,33,172,121,169,63,156,47,141,12,136,134,144,219,154,254,155,218,152, +134,153,201,154,47,153,55,156,36,169,196,181,188,180,203,168,176,160,13,163,46,170,149,177,107,185,175,190,104,190,87,188, +69,188,89,189,232,191,20,196,152,197,93,195,213,194,98,198,166,202,51,205,123,206,238,208,205,214,201,220,186,220,153,215, +181,212,94,216,4,225,84,234,152,241,48,247,129,249,25,245,82,238,0,238,105,242,20,243,63,240,209,239,136,242,101,246, +45,251,203,255,238,1,66,1,160,255,56,254,111,252,35,251,20,254,163,5,233,11,172,12,213,9,239,5,237,1,115,0, +197,4,157,13,143,19,254,15,225,6,169,2,202,4,248,5,48,5,13,7,222,8,87,4,242,251,178,247,216,250,78,3, +148,12,114,16,86,12,87,6,126,5,109,7,247,5,106,2,27,1,131,255,164,249,195,243,240,244,141,252,235,3,232,5, +114,1,126,249,65,244,100,245,89,249,155,251,137,253,192,0,75,1,193,252,231,247,181,247,91,251,54,255,216,0,120,0, +73,0,211,1,216,4,137,7,135,6,215,0,70,251,246,249,28,251,204,252,42,255,15,0,130,254,137,254,164,1,239,3, +179,4,38,8,232,14,213,18,130,14,229,5,234,2,18,8,73,14,205,16,153,16,104,14,221,11,245,12,155,17,39,21, +78,21,102,19,7,18,238,19,141,24,89,27,147,25,9,21,113,17,133,18,53,25,249,32,90,36,44,35,174,32,174,30, +215,29,37,31,25,34,44,36,95,36,138,36,198,37,82,39,171,40,134,40,39,37,75,33,175,33,114,36,139,36,106,35, +133,37,51,42,234,45,234,46,215,45,179,45,109,48,234,50,29,50,168,48,227,48,202,47,226,43,116,41,130,43,104,47, +194,49,204,49,231,47,87,45,254,43,218,43,121,43,28,43,129,43,185,43,156,43,158,44,149,46,227,47,223,47,10,46, +156,42,10,41,180,44,53,51,191,54,62,53,192,49,167,47,168,47,106,49,29,52,211,52,13,49,228,42,138,38,72,38, +172,42,99,49,79,53,159,52,247,49,166,46,23,44,148,46,147,53,190,57,67,56,203,53,165,53,93,55,202,57,29,59, +156,58,126,58,140,59,88,58,17,53,119,48,168,50,24,58,103,62,157,59,35,55,37,55,199,58,6,61,123,59,104,57, +236,59,72,66,131,69,176,65,221,58,229,55,203,59,118,67,174,72,54,72,25,68,255,63,170,61,88,61,138,63,205,67, +11,69,185,61,175,50,104,47,31,53,31,59,41,62,223,63,20,61,202,51,134,42,89,39,42,40,128,40,150,39,100,39, +209,40,92,41,98,38,70,34,96,33,70,35,160,35,64,31,199,22,167,15,167,15,79,20,167,21,59,18,190,14,225,12, +218,12,128,16,78,20,232,16,198,7,140,0,151,251,83,245,133,240,203,241,47,248,143,255,28,4,213,3,14,255,82,245, +6,230,189,214,227,207,71,210,189,216,153,223,237,226,137,222,213,213,72,210,215,214,188,221,194,226,56,229,38,224,148,207, +133,190,58,188,82,195,243,195,206,193,218,201,207,211,175,207,5,197,156,196,206,201,31,198,10,188,184,182,228,181,131,181, +186,185,103,194,13,196,6,187,47,178,155,173,88,166,34,160,232,168,208,190,109,205,33,201,185,188,87,182,8,180,199,174, +181,172,65,181,173,190,209,189,164,185,213,186,192,187,168,184,253,184,101,190,246,191,225,186,8,183,42,185,109,188,136,188, +33,190,192,197,26,205,3,205,69,201,152,197,4,190,125,182,132,187,209,201,156,207,252,201,106,198,3,202,110,206,20,208, +104,207,91,204,216,199,238,195,52,195,142,200,44,210,164,216,192,215,187,209,149,202,75,199,33,203,169,209,30,213,248,215, +130,221,40,225,194,221,38,213,212,205,237,205,147,212,241,216,75,214,226,209,251,207,174,207,203,210,18,219,109,226,194,226, +1,223,125,219,61,215,58,211,3,213,184,220,90,226,202,224,192,219,190,217,123,221,232,227,181,230,14,228,138,224,108,222, +221,219,65,218,66,219,149,219,141,219,62,224,248,229,220,227,235,220,253,218,13,223,93,228,27,233,144,236,74,237,117,234, +24,229,217,225,172,228,130,234,36,239,129,242,42,241,160,231,184,223,56,229,170,241,18,248,47,248,167,246,46,243,146,238, +34,236,31,237,133,241,251,246,72,249,55,250,102,254,131,1,40,254,62,250,76,251,99,253,142,255,141,4,86,6,236,254, +194,246,208,248,198,3,59,15,27,19,150,11,169,255,8,252,159,3,70,14,39,20,250,18,244,13,40,11,237,11,73,12, +80,12,7,16,184,21,145,23,28,21,240,17,252,14,191,11,196,9,172,10,45,14,139,18,165,20,140,18,233,15,180,17, +182,21,127,22,152,20,18,19,33,17,207,13,70,10,4,7,238,5,44,10,137,17,80,22,189,22,12,20,32,17,252,18, +51,24,159,23,68,16,24,11,90,10,17,10,197,11,247,16,251,20,8,21,117,18,128,14,127,12,249,14,195,17,20,18, +223,19,35,23,192,22,139,19,107,17,208,15,131,15,154,19,248,24,192,25,88,22,79,18,49,16,126,18,43,24,41,28, +106,29,29,31,151,33,31,36,115,39,52,40,148,33,233,23,132,20,76,25,57,34,245,43,19,50,138,48,251,42,166,40, +10,41,160,38,83,34,242,33,254,37,5,42,1,44,86,44,8,43,47,42,164,45,247,52,213,58,128,59,182,56,173,55, +218,58,71,61,132,57,79,52,111,54,50,62,23,66,111,62,182,55,253,51,160,54,239,61,62,67,73,64,253,53,131,45, +191,47,12,59,128,69,116,71,39,63,136,49,35,43,245,51,225,66,40,75,78,77,233,76,108,70,68,59,21,54,215,59, +90,70,27,77,30,75,111,65,141,55,226,52,154,58,169,68,103,76,154,75,138,65,50,52,166,43,138,44,65,52,211,58, +88,59,158,56,31,56,90,59,208,62,45,62,163,57,90,53,12,51,147,48,236,44,254,41,19,42,41,46,133,52,114,56, +212,53,192,44,201,33,37,27,230,26,50,29,176,31,40,37,20,45,97,48,10,43,78,33,20,27,129,30,71,41,233,45, +211,32,27,7,32,241,108,235,102,247,222,10,57,24,21,28,197,27,219,22,232,8,86,247,195,237,249,238,134,244,135,248, +32,249,215,247,221,249,240,3,163,17,189,21,208,9,192,248,92,241,178,244,11,250,78,251,0,246,182,234,236,223,206,219, +227,219,55,219,44,220,181,228,170,244,189,3,118,7,166,251,193,230,92,213,213,208,200,217,15,233,17,244,224,242,107,231, +125,221,112,222,80,231,39,239,201,240,146,235,115,227,138,223,54,224,88,221,161,212,116,205,45,204,199,206,142,211,65,217, +192,222,10,228,57,228,13,216,55,198,134,192,105,203,48,217,108,221,44,215,188,204,201,197,12,197,52,198,195,195,104,187, +225,175,23,171,9,181,174,197,144,204,190,197,225,186,182,180,64,181,233,185,176,189,163,189,179,186,212,181,70,175,149,169, +45,168,13,172,68,179,127,185,45,187,188,185,86,184,92,181,191,173,178,164,13,161,36,164,104,168,116,169,215,169,253,173, +122,179,187,178,222,169,145,160,9,160,161,170,121,186,160,196,54,192,91,176,2,164,243,164,78,172,164,175,251,175,166,177, +197,177,179,174,201,174,29,182,253,190,220,192,225,185,15,177,225,174,239,179,80,187,230,193,245,195,119,189,47,180,39,179, +5,186,209,192,155,198,217,204,191,207,176,206,22,207,112,210,211,212,164,211,157,207,188,204,240,207,135,216,13,224,129,225, +84,220,26,213,124,213,235,225,120,240,170,244,183,239,105,235,236,235,154,238,147,240,147,240,34,238,12,235,136,235,71,241, +170,248,95,254,235,2,6,5,24,1,19,250,36,248,136,252,67,1,141,3,248,4,7,6,84,6,17,6,167,4,65,2, +85,2,77,8,55,18,251,25,250,27,208,25,125,22,178,19,23,19,83,21,72,24,3,26,203,26,183,26,24,26,3,27, +138,29,218,30,123,30,39,30,12,30,159,30,97,32,126,32,68,30,4,31,128,35,168,36,102,33,57,33,138,38,166,44, +161,48,24,49,29,44,183,36,49,34,102,38,124,44,86,49,37,53,4,53,237,44,225,33,71,31,179,38,206,45,209,46, +139,45,175,43,48,39,176,35,45,39,38,46,39,47,129,41,18,38,10,41,74,45,37,47,42,48,95,47,222,42,167,39, +181,42,53,48,183,51,220,53,193,52,240,45,214,39,42,42,130,49,83,53,162,51,5,49,218,49,132,52,167,51,240,47, +211,47,18,52,236,55,27,58,129,58,178,55,6,54,38,59,149,65,156,64,125,59,74,58,145,60,158,61,21,61,185,60, +204,59,227,56,81,54,55,56,199,61,20,67,248,71,111,74,17,66,113,48,80,39,216,45,244,52,183,51,25,52,141,58, +154,62,4,63,130,65,192,65,249,56,34,46,15,43,49,45,221,46,192,49,50,54,239,53,171,46,139,39,227,39,79,46, +80,51,183,50,29,47,208,42,39,37,65,34,1,40,51,48,5,48,218,43,72,46,78,51,193,49,214,43,165,38,57,34, +179,32,47,36,64,39,194,36,57,32,156,31,64,35,218,36,53,30,96,19,106,14,233,15,119,18,216,23,25,32,46,33, +18,24,239,15,245,15,43,21,243,27,72,32,154,30,220,26,244,25,16,25,13,22,82,19,232,14,248,5,181,253,7,252, +171,0,8,10,186,19,219,19,173,6,140,246,122,241,130,252,95,15,13,25,74,16,143,254,30,243,223,243,213,255,128,16, +194,23,196,14,81,2,195,255,43,2,169,0,74,253,145,250,126,245,220,239,164,239,188,244,106,251,224,1,95,4,135,254, +24,243,18,234,66,233,233,240,224,249,117,251,179,247,203,246,25,248,21,248,59,251,171,1,35,1,5,248,133,241,247,242, +196,247,22,250,82,244,123,231,108,224,171,230,0,240,236,241,4,239,118,236,162,234,90,232,23,229,247,227,175,233,110,242, +255,244,22,240,210,230,26,218,63,209,107,214,228,227,17,234,155,229,206,221,34,216,63,216,238,221,70,225,170,220,119,212, +206,206,105,205,187,206,140,206,105,203,255,201,144,202,207,198,27,194,252,199,148,213,152,219,24,214,208,204,101,195,140,187, +194,186,172,192,97,196,110,193,22,188,53,185,179,186,67,191,143,193,103,190,156,185,142,182,72,180,130,180,98,185,38,189, +63,186,32,181,179,178,134,177,178,178,36,185,2,191,156,187,31,177,154,169,196,170,54,177,46,181,62,180,235,178,182,178, +242,176,207,175,229,177,25,178,86,174,189,173,134,178,209,182,88,185,10,188,158,188,46,187,2,188,34,190,101,189,215,186, +189,185,72,187,51,191,237,193,215,191,166,188,187,189,117,193,123,197,186,202,217,205,48,202,48,196,99,195,250,198,4,202, +235,203,36,207,192,212,203,218,52,222,243,222,163,223,11,225,193,226,249,228,6,229,112,223,50,217,9,220,57,231,187,239, +86,240,219,237,179,236,60,237,189,239,214,242,219,242,66,241,82,244,145,251,134,255,8,254,162,251,119,251,53,254,223,2, +95,5,28,4,181,3,114,6,73,9,191,11,6,14,60,11,12,3,140,255,51,6,14,15,215,17,203,15,176,13,119,13, +252,14,187,17,125,20,161,21,233,21,115,24,173,28,196,29,107,27,92,26,197,26,3,25,238,21,164,20,21,21,51,22, +161,22,2,20,35,16,177,16,118,21,248,23,252,21,211,19,50,21,30,25,96,27,72,25,144,21,189,20,153,22,199,23, +165,23,64,24,40,26,47,27,57,25,250,20,4,17,154,15,249,17,154,22,203,24,152,22,172,19,97,18,249,16,206,15, +242,16,180,18,252,18,81,19,138,20,130,21,231,22,155,25,233,27,39,28,127,26,128,24,176,24,198,26,5,27,192,25, +164,27,194,31,19,32,237,27,100,24,208,25,79,33,204,41,238,41,19,33,126,26,52,29,205,35,109,39,14,39,41,36, +157,33,19,35,178,39,37,42,233,40,133,40,56,43,11,45,66,43,116,41,33,43,15,46,206,46,129,45,172,43,31,42, +69,42,226,45,166,52,96,59,160,62,0,62,178,58,61,52,54,44,210,41,78,49,193,59,140,63,220,59,106,54,189,51, +92,52,32,54,162,55,191,57,153,60,144,62,187,62,21,61,15,59,79,60,196,64,41,66,44,62,195,57,207,54,194,51, +172,51,195,56,4,62,135,63,124,62,53,59,153,54,143,52,224,53,21,56,66,58,110,57,181,49,86,40,214,38,181,44, +40,51,229,55,55,58,169,55,164,48,99,40,162,34,128,36,31,47,242,56,240,54,30,43,222,33,49,35,68,43,198,47, +43,43,205,34,110,32,26,38,22,44,130,43,52,38,10,34,227,33,205,37,140,43,22,45,47,38,30,28,55,24,132,28, +198,35,52,41,69,43,234,41,170,37,34,32,141,27,187,24,72,23,170,23,134,24,197,20,58,12,47,8,51,14,206,22, +37,24,97,16,77,4,74,252,182,254,222,8,147,19,92,27,127,29,104,23,72,14,183,10,113,12,203,12,133,8,53,1, +234,251,29,254,105,6,116,13,81,15,7,13,181,8,154,5,75,5,107,4,133,0,215,251,147,247,151,243,56,243,110,248, +180,254,204,1,206,2,142,3,4,4,62,4,103,4,120,4,76,4,77,2,210,252,57,246,92,243,44,245,80,247,12,245, +244,236,92,225,2,216,245,214,195,221,174,228,155,230,211,229,206,227,195,222,174,217,93,217,61,218,11,215,188,211,213,212, +194,214,71,215,98,217,225,218,121,213,138,203,247,197,255,197,161,196,99,191,54,188,248,190,133,194,221,191,21,182,159,168, +115,157,222,156,42,169,6,184,190,189,33,187,198,184,190,185,56,185,89,179,142,172,32,172,144,176,57,178,121,176,190,175, +94,174,111,169,71,165,114,164,126,161,206,155,91,156,181,165,174,173,249,172,107,168,102,166,18,166,244,164,9,164,49,164, +183,164,99,166,107,170,134,175,83,179,151,179,127,174,79,166,27,162,152,166,13,177,154,185,145,184,253,173,236,163,57,163, +207,169,33,177,157,182,175,186,193,190,114,195,108,198,5,199,201,200,32,203,136,201,74,199,59,203,14,210,165,212,255,211, +183,211,33,212,230,213,42,217,43,220,55,223,110,226,184,226,241,224,115,226,79,230,62,231,168,230,205,232,79,236,219,238, +9,242,189,246,181,250,29,252,162,251,216,250,35,250,3,250,67,253,61,4,49,8,231,3,9,253,81,251,11,253,58,253, +44,253,55,0,0,5,57,8,222,8,147,7,217,5,46,6,169,9,85,14,163,17,58,18,239,15,121,13,169,14,195,17, +154,17,55,15,31,15,60,16,118,16,250,17,180,19,108,17,220,13,88,14,56,17,201,19,130,22,149,22,87,17,170,11, +242,10,245,14,194,21,166,26,151,23,130,16,189,15,243,20,0,24,26,23,3,20,143,14,171,9,43,9,61,11,67,13, +80,15,102,15,208,11,1,8,128,7,47,10,201,14,216,17,104,15,52,10,107,8,105,10,90,13,8,16,151,15,143,10, +82,7,203,11,77,19,240,21,211,18,41,14,35,12,253,13,106,16,207,15,75,13,95,11,63,10,118,10,240,12,139,16, +189,20,88,25,141,25,183,17,202,9,104,12,104,22,222,28,108,29,168,28,72,28,232,27,251,27,81,28,112,29,143,32, +134,34,141,30,91,23,253,19,254,21,103,26,117,30,85,31,225,28,58,27,143,27,228,26,71,26,69,29,179,34,70,40, +148,45,198,47,208,45,125,45,157,49,245,52,106,52,39,49,93,43,134,38,195,40,161,47,138,51,24,52,176,51,160,48, +125,43,73,40,232,39,244,41,162,46,145,50,168,50,169,49,212,49,108,49,136,49,220,53,205,61,239,68,28,71,197,66, +73,59,231,53,155,51,61,51,131,53,187,57,42,61,244,62,182,61,84,54,171,43,163,38,106,42,100,49,127,53,226,51, +169,44,253,36,187,35,244,40,151,46,14,49,46,49,226,48,127,50,0,54,195,53,16,46,8,37,137,33,153,33,226,33, +123,34,132,32,13,26,190,21,61,24,91,27,18,26,242,22,33,19,65,14,111,12,15,16,68,20,110,19,194,12,236,3, +121,254,184,254,213,2,180,9,34,17,236,18,229,12,30,4,123,251,37,243,147,239,7,244,145,251,67,255,231,251,24,242, +233,231,82,228,225,230,209,235,220,242,20,250,248,251,18,247,175,238,179,230,163,228,109,236,194,248,100,254,7,247,85,230, +82,216,64,216,135,228,45,241,107,246,92,244,83,237,193,230,82,232,127,241,131,247,183,242,154,231,112,224,68,226,226,233, +221,241,43,248,186,252,121,255,19,2,33,5,139,3,23,250,23,242,163,247,176,6,17,15,119,9,25,252,182,238,58,231, +99,236,225,252,97,9,14,6,175,251,195,249,9,0,186,3,252,2,76,5,45,13,226,19,176,18,79,11,5,6,121,8, +17,16,115,21,81,19,228,10,176,4,249,9,12,25,11,36,142,32,53,20,135,11,58,9,69,7,43,4,208,3,71,6, +165,9,46,16,14,25,201,26,161,16,179,4,16,3,159,10,223,16,137,15,50,10,137,6,174,3,123,255,162,253,226,254, +194,251,117,243,242,240,52,248,192,255,245,0,242,253,151,248,233,241,18,238,103,239,143,241,79,239,131,234,113,233,174,235, +248,232,77,223,133,216,26,220,8,229,178,233,224,229,146,220,145,212,158,209,67,209,11,208,148,205,114,203,231,204,236,211, +85,219,53,219,12,212,165,205,111,204,132,206,35,209,183,212,165,218,180,223,60,221,200,210,161,200,26,197,245,197,6,199, +166,200,64,204,220,207,254,208,201,207,163,203,91,195,73,188,44,191,32,202,198,209,100,209,128,205,158,201,187,198,2,199, +17,203,102,207,184,207,255,203,153,201,118,204,109,208,15,208,36,205,194,202,81,200,228,199,109,205,40,214,160,219,118,219, +6,214,78,205,237,198,129,199,78,206,85,216,127,225,80,228,228,223,208,218,27,219,65,223,83,225,202,222,195,219,144,221, +179,227,25,233,99,233,103,227,159,219,6,219,202,228,239,240,181,246,28,246,182,243,237,241,124,240,103,238,204,235,18,234, +110,234,48,238,150,246,14,0,136,2,40,252,110,245,56,245,61,248,60,249,45,249,52,250,186,250,116,250,23,252,161,254, +208,253,169,250,174,249,243,249,74,248,229,246,125,248,178,250,250,251,145,254,106,2,166,4,199,4,124,4,108,5,166,8, +131,11,167,8,60,1,131,253,107,0,123,4,101,6,89,8,128,11,57,14,218,14,15,12,240,5,71,0,61,0,30,6, +90,11,169,9,150,3,221,0,122,3,212,7,65,12,121,15,61,14,68,10,239,9,159,13,53,16,32,17,82,19,253,21, +107,21,196,15,138,7,188,2,157,4,22,10,69,15,248,18,203,19,150,17,104,15,59,14,194,11,179,8,98,8,24,11, +209,14,77,18,29,21,87,23,61,24,52,22,3,19,38,19,141,22,208,25,21,29,245,32,208,33,64,30,9,27,131,27, +11,29,180,28,237,27,114,29,184,32,213,34,127,34,124,32,12,30,77,29,25,32,87,37,132,42,232,45,125,45,217,40, +244,35,56,34,60,34,136,34,10,36,77,38,85,40,92,43,0,47,138,47,1,44,66,40,194,38,208,37,51,37,148,40, +225,47,103,51,28,46,145,37,158,33,82,35,238,39,245,44,21,48,129,48,178,46,70,42,82,36,133,32,50,32,88,33, +254,34,19,37,178,38,150,39,174,39,49,38,216,35,86,34,177,33,193,33,1,35,19,36,44,35,185,32,192,29,146,27, +38,28,53,30,128,29,167,25,138,22,106,22,126,24,55,26,197,24,205,20,159,17,251,15,130,15,7,18,199,22,226,24, +178,22,249,18,201,14,161,9,231,4,137,2,26,3,225,5,209,8,17,10,132,9,169,7,162,5,147,5,242,6,32,6, +19,3,150,1,120,1,46,255,190,251,185,250,252,250,13,250,77,250,7,254,98,1,68,0,91,253,153,253,217,0,38,3, +214,1,89,253,227,248,202,248,32,254,14,4,187,4,101,0,75,252,237,250,180,249,100,246,158,242,158,241,234,244,66,250, +48,252,184,247,0,241,124,238,126,241,225,246,137,251,121,253,107,252,251,250,179,251,4,253,208,251,221,248,164,247,201,248, +226,249,170,249,114,248,111,246,233,244,39,246,124,249,204,250,217,247,85,243,129,241,242,242,46,244,245,242,235,240,167,239, +253,238,207,239,150,242,211,244,36,245,112,245,67,246,24,246,203,244,57,243,167,242,170,244,126,247,64,247,141,244,17,242, +23,239,131,236,248,237,96,241,173,241,87,240,102,240,233,239,51,238,238,237,168,238,17,238,165,236,130,235,105,234,242,232, +209,230,237,228,228,228,94,229,223,227,190,225,67,225,251,225,170,227,93,230,10,232,249,231,193,231,160,230,137,227,134,225, +163,226,99,228,106,229,235,230,60,232,71,232,148,232,176,233,27,233,236,229,179,226,70,225,12,225,209,225,3,228,30,230, +37,230,205,228,191,227,247,226,62,226,69,226,163,227,198,230,1,235,141,237,1,237,138,235,220,234,108,234,194,234,70,237, +82,241,139,244,209,244,99,242,205,240,135,242,121,245,92,247,47,248,75,247,88,245,229,245,149,248,244,248,8,248,103,250, +92,254,151,255,85,255,97,0,42,2,9,4,166,6,19,9,94,9,165,7,65,6,222,6,110,8,82,9,12,10,190,11, +56,14,186,16,59,18,74,18,66,19,91,23,177,27,23,28,192,25,137,24,160,25,157,28,229,32,216,35,104,34,177,29, +46,26,16,26,8,28,135,31,211,36,202,40,99,39,119,34,31,31,1,30,165,28,16,27,84,27,189,30,83,36,82,40, +226,39,212,36,169,33,85,30,213,28,145,32,123,38,221,39,199,36,191,33,10,31,93,27,235,24,241,24,59,25,156,25, +94,28,76,32,42,33,135,29,183,23,104,18,135,14,234,11,118,11,162,14,179,19,139,22,14,22,182,19,192,15,26,11, +90,8,191,7,39,8,22,10,187,11,239,8,155,2,19,253,6,249,165,246,116,248,55,253,98,0,177,0,149,254,172,249, +186,243,245,238,19,235,181,232,75,233,83,235,131,237,88,240,24,241,183,236,86,230,207,225,51,222,119,219,10,220,2,223, +133,224,133,222,203,217,110,213,24,212,97,212,225,211,129,211,230,211,100,211,170,210,211,211,154,212,159,209,101,205,169,204, +239,206,231,208,59,210,112,211,157,210,68,207,77,204,4,203,63,202,195,202,124,205,222,207,208,207,140,206,88,205,194,204, +131,205,84,206,149,205,17,205,167,206,204,208,65,210,110,211,192,211,7,211,187,210,124,211,17,213,150,215,244,217,160,218, +173,217,193,215,79,214,249,215,234,219,147,221,128,220,146,220,53,222,250,222,247,222,12,223,239,222,130,223,188,225,62,228, +214,229,105,231,158,233,154,235,110,236,41,236,1,236,54,237,56,239,109,240,40,241,130,243,136,247,151,250,105,251,98,251, +133,251,32,252,74,254,60,1,214,1,37,0,194,255,143,1,208,3,68,6,173,8,173,9,170,9,26,10,39,11,241,12, +65,15,111,16,147,16,202,17,138,19,249,19,101,20,73,22,209,23,117,23,157,22,55,23,81,25,234,26,122,26,191,25, +246,26,11,29,107,30,195,31,252,32,176,32,128,31,112,31,28,33,233,35,169,38,178,39,37,38,223,34,47,32,151,32, +214,35,86,38,23,38,76,37,16,38,117,39,35,40,44,40,250,39,189,39,188,39,2,40,80,40,40,41,205,43,198,47, +4,50,211,48,188,46,19,47,20,50,207,53,35,56,163,55,43,53,216,51,174,53,116,57,155,60,32,62,31,63,58,65, +232,68,227,72,4,75,135,74,58,73,64,73,186,74,145,76,39,77,252,74,43,71,77,68,195,65,155,61,115,57,33,55, +69,53,94,51,93,50,254,48,150,46,67,45,95,45,90,45,156,45,196,46,173,48,218,52,27,59,51,63,241,62,72,60, +21,57,153,55,203,57,46,60,123,57,148,50,118,43,209,37,66,34,191,31,43,27,156,20,160,15,59,13,217,11,116,10, +57,8,157,5,238,4,74,6,152,7,144,8,74,9,237,8,30,9,98,11,205,11,225,6,132,0,123,253,11,252,183,248, +63,244,61,241,253,239,11,239,74,237,235,233,76,228,198,221,189,217,216,217,159,219,186,219,63,218,182,217,133,218,85,218, +121,216,167,214,28,213,5,211,103,209,107,208,149,205,161,200,109,196,97,193,79,189,117,184,43,181,71,180,144,180,107,180, +188,179,0,180,189,181,214,183,195,185,100,187,241,187,171,187,84,188,240,190,227,194,47,198,167,198,157,196,86,194,138,192, +95,191,114,192,96,195,140,196,35,194,158,189,0,185,144,182,80,184,38,189,102,193,194,194,141,194,13,196,21,200,207,203, +227,205,135,208,136,212,23,216,197,218,57,221,254,222,162,223,61,223,52,222,60,222,36,224,128,225,229,224,126,224,143,225, +77,227,239,229,70,233,64,235,48,235,99,234,174,233,104,234,118,238,150,244,158,248,174,248,65,247,4,248,32,252,172,1, +53,6,183,8,67,9,195,8,10,9,29,11,245,13,197,15,231,15,68,15,68,15,123,16,74,18,135,19,163,19,208,19, +211,21,66,25,128,28,129,31,56,34,45,35,192,34,66,35,116,36,64,36,185,34,73,33,185,32,183,33,200,35,153,36, +224,34,32,32,214,30,241,31,98,33,69,32,48,29,8,27,93,26,129,26,210,27,29,29,213,27,226,24,191,23,26,25, +127,26,8,26,19,24,30,22,206,20,192,19,248,18,155,18,201,17,197,15,12,13,70,10,161,7,21,5,179,2,243,0, +18,0,175,255,15,0,43,1,185,0,198,253,116,251,153,251,51,252,74,252,84,252,83,251,176,249,178,249,172,250,148,250, +254,249,233,248,234,245,201,242,129,242,20,244,5,245,181,244,243,242,102,239,212,234,183,231,13,233,139,237,144,238,135,233, +121,228,86,228,146,231,234,235,94,239,115,238,68,234,116,233,236,237,217,241,146,240,116,235,254,230,7,231,142,235,64,240, +2,241,62,238,224,235,65,237,249,241,80,246,73,247,162,245,37,244,89,244,36,246,37,249,126,252,123,254,75,254,15,253, +113,252,176,253,62,1,132,5,242,7,61,8,17,8,154,8,112,10,75,13,97,15,215,15,6,16,205,16,25,18,76,20, +225,22,216,24,57,27,157,30,211,32,220,32,149,32,21,33,63,34,41,36,222,37,62,38,41,38,216,38,92,40,53,42, +13,43,50,42,91,41,106,41,27,41,92,41,225,43,0,46,251,44,77,43,156,43,215,44,241,45,93,47,43,49,184,50, +197,50,253,48,209,47,38,49,241,50,15,51,82,50,233,49,116,50,97,52,16,54,10,53,172,49,58,46,51,44,190,43, +50,43,237,40,123,38,243,37,30,38,195,37,211,37,145,37,62,35,163,32,135,32,234,33,127,34,251,33,107,32,146,29, +154,26,241,24,34,24,29,23,210,21,12,20,78,17,156,14,38,13,141,11,244,7,119,3,171,0,151,0,65,2,70,3, +167,1,44,254,65,251,167,249,29,248,55,245,82,241,28,239,225,239,221,240,199,239,170,237,178,234,40,230,66,226,159,224, +241,222,60,220,12,218,197,215,136,212,80,210,210,209,35,209,169,207,235,205,11,204,7,203,99,203,203,203,126,203,75,202, +78,199,219,195,0,195,23,196,37,196,254,194,138,193,114,191,69,189,229,187,110,186,67,184,107,182,150,181,150,181,242,181, +146,181,211,179,210,177,63,177,153,178,205,180,87,182,224,182,33,183,125,183,86,184,33,186,42,188,105,189,43,190,229,190, +143,191,194,192,150,194,207,195,225,195,25,195,97,193,209,191,222,192,141,196,204,199,57,200,130,198,170,197,19,200,198,204, +23,209,229,211,94,213,45,214,200,215,121,218,200,220,211,222,14,226,180,229,70,232,125,234,50,237,223,239,59,242,213,243, +173,243,185,242,163,243,194,246,168,249,251,250,242,251,175,253,193,255,215,1,90,4,189,6,50,8,188,9,93,12,28,15, +67,17,136,19,25,22,174,24,88,27,231,29,174,32,189,36,50,41,149,43,151,43,18,43,161,43,208,45,51,48,122,48, +121,47,109,48,228,51,177,55,25,58,129,58,221,57,34,58,128,59,39,61,227,63,185,67,109,70,54,71,49,71,232,70, +92,71,205,73,183,76,129,77,242,75,67,73,27,71,129,71,76,74,194,76,21,77,91,75,139,72,107,70,234,69,30,70, +110,70,153,70,75,69,123,66,17,64,61,62,252,59,123,58,235,58,163,59,133,58,67,55,162,50,19,46,125,43,37,44, +21,47,96,48,239,44,67,39,216,35,104,34,148,32,32,31,246,30,82,30,86,28,33,26,244,23,183,21,115,20,60,20, +41,19,225,15,60,11,17,7,157,4,148,3,64,2,134,255,141,252,131,250,63,248,226,244,77,242,188,241,143,241,98,240, +41,238,95,234,125,229,63,226,94,226,80,228,60,229,181,227,20,225,58,223,49,221,239,217,228,215,41,216,136,215,198,212, +47,210,54,208,72,206,104,205,239,204,226,202,31,200,127,198,111,198,76,200,147,202,215,201,141,198,24,196,147,194,96,193, +54,194,100,196,81,197,217,197,21,199,10,199,144,197,226,196,238,196,197,196,57,197,118,198,180,199,0,201,254,201,20,202, +77,202,159,203,120,205,134,207,188,209,74,211,94,212,103,214,128,217,85,220,10,222,95,222,209,221,48,222,16,225,165,229, +184,233,37,236,48,237,117,237,13,238,97,240,242,243,89,246,227,246,106,247,239,248,115,250,100,251,165,252,24,255,44,2, +161,4,184,6,134,9,62,12,185,13,27,15,23,17,77,18,7,19,27,21,243,23,12,26,206,27,117,29,121,30,112,31, +202,32,222,33,228,34,92,36,169,37,192,38,100,40,28,42,246,42,28,43,75,43,68,44,7,46,123,47,75,48,26,49, +112,49,6,49,86,49,175,50,225,51,71,53,24,55,133,55,101,54,136,53,244,52,33,52,10,52,148,52,124,52,27,52, +52,52,102,52,66,52,30,51,114,48,247,45,202,45,48,47,46,48,198,47,197,45,47,43,100,41,200,39,149,37,57,36, +100,36,74,36,229,34,25,33,167,31,175,30,201,29,190,27,227,23,135,19,44,17,63,18,12,21,218,21,24,19,140,14, +58,10,34,7,96,6,30,8,45,10,218,9,220,6,38,3,31,0,151,253,134,251,31,250,61,248,56,245,180,242,96,241, +131,239,219,236,8,235,37,234,122,233,81,233,138,233,130,233,110,233,90,233,198,232,152,231,87,229,204,225,253,222,138,222, +146,222,32,221,59,219,55,218,221,217,146,217,191,216,69,215,131,214,211,215,28,218,144,218,43,216,81,213,124,212,217,212, +248,212,255,213,178,216,3,219,47,219,196,217,36,216,193,215,71,217,75,219,192,219,107,218,37,217,92,218,47,222,124,225, +19,226,64,225,119,224,34,224,101,225,61,228,192,230,134,232,95,234,240,235,94,237,46,239,27,240,57,240,242,241,87,244, +233,243,101,241,39,240,60,241,123,244,238,248,26,252,149,253,70,255,228,0,77,1,233,1,152,3,45,5,161,6,143,8, +72,10,178,11,137,13,136,15,156,17,79,20,106,22,255,21,183,19,18,18,195,18,209,21,150,25,215,27,18,28,183,27, +211,27,215,27,5,27,224,25,195,25,155,27,15,31,156,34,22,37,58,39,248,41,238,43,57,43,149,40,113,38,158,38, +53,41,39,44,29,45,56,44,22,43,199,42,191,43,147,44,115,42,65,38,90,36,218,37,81,40,50,42,48,42,127,39, +255,36,81,37,47,38,78,37,35,36,163,35,171,34,165,32,215,29,85,27,235,26,191,28,218,30,103,31,140,29,116,26, +213,24,88,24,158,21,186,16,29,13,40,12,213,13,245,17,81,21,11,20,225,14,70,9,145,5,127,4,85,4,78,2, +230,254,207,252,218,252,84,254,137,255,120,253,203,247,79,242,55,239,49,237,151,235,207,234,69,234,210,233,28,234,124,234, +113,233,208,230,16,228,11,227,247,227,105,228,23,226,222,221,91,218,202,216,105,216,179,215,194,213,118,211,202,210,33,212, +60,213,246,211,164,208,219,204,200,201,31,200,141,199,9,199,210,198,173,199,114,200,251,199,95,199,84,199,59,199,63,199, +77,199,84,198,48,197,191,197,84,199,129,200,30,201,175,200,212,199,31,201,122,204,43,207,232,208,0,210,130,208,7,205, +79,203,204,203,76,204,4,205,7,207,209,209,169,212,173,214,0,215,127,214,58,214,202,213,122,213,90,214,221,215,74,217, +136,219,15,223,232,226,230,229,51,231,94,231,95,232,214,234,177,237,125,240,158,242,111,242,117,240,200,239,172,241,185,244, +20,248,132,251,98,253,32,252,85,249,105,248,36,250,106,252,235,253,11,255,75,0,135,2,90,6,21,10,224,11,233,12, +236,14,127,17,14,20,136,22,29,24,147,24,245,24,181,25,160,26,196,27,197,28,142,29,35,31,166,33,36,36,129,38, +91,40,32,40,44,38,52,37,116,38,22,41,119,44,14,48,208,50,37,52,30,52,37,51,70,50,19,51,82,54,142,58, +194,60,133,59,136,56,17,54,226,52,205,52,8,53,46,52,176,49,208,46,164,45,217,46,70,48,75,47,147,44,142,42, +154,41,34,41,191,41,138,43,22,45,212,44,0,42,210,37,65,35,128,35,198,36,27,37,107,35,205,31,129,28,224,26, +217,24,86,21,56,18,226,15,90,13,168,11,43,11,209,9,222,6,156,3,205,0,226,254,214,253,95,252,102,250,171,249, +130,250,73,251,122,250,117,247,98,243,172,240,208,239,73,239,50,238,38,236,35,233,137,230,13,229,162,227,26,226,177,224, +69,222,85,219,57,218,60,218,173,216,236,213,209,211,98,210,83,209,228,208,172,208,37,208,37,207,117,205,119,203,24,202, +130,201,37,201,74,200,111,198,53,196,238,194,151,194,66,194,180,193,215,192,85,191,188,189,67,189,76,190,19,192,101,193, +99,193,67,192,132,191,180,192,94,195,75,197,207,197,90,198,45,199,144,199,118,200,136,202,11,204,225,203,36,203,250,202, +187,203,240,204,193,205,24,207,47,210,244,212,109,213,180,213,114,215,128,217,18,220,186,223,146,226,223,227,249,228,193,229, +184,230,31,234,195,238,62,241,15,242,32,243,59,244,235,245,186,248,121,250,96,250,223,250,178,252,152,254,182,0,59,3, +52,5,164,6,102,8,212,10,223,13,159,16,39,18,169,19,127,22,137,25,203,27,13,30,15,32,215,32,117,33,76,35, +192,37,40,40,222,42,97,45,173,46,81,47,115,48,220,49,27,51,185,52,183,54,12,56,148,56,246,56,38,57,93,57, +159,58,166,60,54,62,127,63,18,65,17,66,9,66,41,66,130,67,187,69,46,71,77,70,27,68,69,67,54,68,69,69, +238,69,70,70,131,69,221,67,57,67,112,68,203,69,249,68,31,66,232,63,169,63,207,63,112,63,114,63,155,63,221,62, +139,61,16,60,73,58,64,57,169,57,207,57,71,56,60,54,44,53,161,52,247,50,198,47,16,45,92,44,243,43,22,42, +6,40,190,38,37,37,0,35,71,33,7,32,29,31,117,30,1,29,113,26,110,24,221,23,153,23,117,22,54,20,124,17, +79,15,245,13,53,13,67,13,57,13,40,11,100,7,28,4,218,1,17,0,170,254,253,252,209,250,174,249,144,249,202,247, +213,243,100,240,212,238,29,238,118,237,148,236,218,234,69,232,235,229,169,228,66,228,24,228,212,227,236,226,9,225,74,223, +38,223,17,224,104,224,170,223,40,222,52,220,104,218,58,217,164,216,144,216,127,216,160,215,36,214,250,212,169,212,72,213, +49,214,9,214,221,212,109,212,128,213,81,215,184,216,119,216,178,214,177,213,171,214,64,216,87,217,29,218,179,218,118,219, +168,220,114,221,179,221,159,222,55,224,103,225,88,226,146,227,154,228,59,229,30,230,173,231,118,233,167,234,84,235,156,236, +196,238,206,240,35,242,232,242,176,243,103,245,117,247,235,247,76,247,26,248,122,250,209,252,183,254,61,0,137,1,77,3, +26,5,32,6,108,7,127,9,27,11,179,12,82,15,68,17,129,17,227,17,23,19,83,20,64,22,254,24,223,26,94,27, +149,27,151,28,27,31,19,34,253,34,250,33,163,33,131,34,89,35,236,35,109,36,183,36,23,37,214,37,229,38,13,40, +132,40,249,39,224,39,40,41,124,42,210,42,201,42,192,42,116,42,75,42,242,42,63,44,153,45,171,46,239,46,148,45, +33,43,164,41,182,41,199,41,36,41,110,40,198,39,66,39,28,39,105,38,192,36,181,35,22,36,165,36,97,36,250,34, +186,32,97,31,253,31,227,32,90,32,119,30,212,27,116,25,109,24,40,24,106,23,240,21,170,19,41,17,24,16,117,16, +163,16,166,16,254,16,137,16,198,14,85,12,51,9,85,6,206,5,251,6,52,7,10,6,190,4,227,3,112,3,181,2, +211,0,89,254,71,252,101,250,61,248,147,245,33,242,37,239,177,238,38,240,7,241,125,240,6,239,36,237,249,235,14,236, +236,235,67,234,187,231,182,229,32,229,12,230,99,231,219,231,43,231,142,229,133,227,239,225,214,224,103,223,22,222,30,222, +138,222,108,221,73,219,200,217,193,216,213,215,247,215,31,217,238,217,38,218,25,218,53,217,235,215,30,216,28,218,72,220, +158,221,29,222,52,222,177,222,128,223,168,223,68,223,205,222,192,221,234,220,117,222,137,225,197,226,131,225,231,223,105,223, +144,224,227,226,47,228,127,227,3,227,90,228,42,230,220,230,139,230,67,230,224,230,2,232,162,232,57,233,199,234,124,236, +55,237,83,237,61,237,51,237,243,237,44,239,242,239,127,241,234,244,205,247,252,247,61,247,172,247,211,248,228,249,253,250, +30,252,40,253,10,254,148,254,232,254,95,255,24,0,96,1,88,3,17,5,148,5,83,5,140,5,228,6,229,8,168,10, +250,11,135,13,216,15,245,18,104,22,37,25,178,26,13,28,9,30,243,31,179,32,31,32,20,31,206,30,127,31,76,32, +162,32,46,32,137,30,104,28,5,27,46,26,67,25,127,24,104,23,252,20,231,17,203,15,49,15,83,15,207,14,51,13, +15,12,133,12,112,13,249,13,155,14,11,15,207,14,174,14,192,14,233,13,48,12,115,10,80,8,2,5,44,1,40,254, +7,252,109,249,213,245,113,242,232,239,135,237,87,235,43,234,189,233,14,233,147,231,65,229,159,226,131,224,94,223,34,223, +198,222,198,220,172,217,118,215,253,213,32,212,170,210,167,209,29,207,48,203,72,200,249,198,80,198,22,198,0,198,72,197, +175,195,165,193,76,192,124,192,55,193,255,192,183,191,191,189,186,187,202,186,93,186,142,184,179,181,66,179,208,176,223,173, +90,171,141,169,41,168,69,167,106,166,88,165,55,165,116,166,236,167,12,169,18,170,25,171,109,172,251,173,253,174,124,175, +23,176,160,176,25,177,69,178,13,180,137,181,68,182,43,182,181,181,6,182,55,183,17,184,73,184,199,184,193,185,189,186, +23,188,150,190,211,193,153,196,213,198,110,201,98,204,32,207,221,209,237,212,9,216,205,218,173,220,114,221,56,222,15,224, +149,226,98,229,55,232,12,234,229,234,89,236,153,238,177,240,5,243,220,245,60,248,62,250,225,252,238,255,218,2,148,5, +191,7,139,9,172,11,217,13,255,15,28,19,139,22,112,24,67,25,175,26,153,28,148,30,4,33,116,35,16,37,72,38, +236,39,1,42,56,44,85,46,139,48,69,51,17,54,61,56,105,58,75,61,37,64,111,66,225,68,93,71,161,72,167,72, +206,72,248,73,59,76,1,79,164,80,29,80,243,78,21,79,67,80,138,81,210,82,197,83,233,83,229,83,107,84,41,85, +232,85,192,86,74,87,102,87,160,87,13,88,88,88,146,88,198,88,233,88,83,89,222,89,145,89,78,88,33,87,94,86, +104,85,49,84,72,83,161,82,156,81,11,80,118,78,94,77,193,76,114,76,85,76,253,75,187,74,138,72,105,70,28,69, +74,68,98,67,75,66,211,64,229,62,45,61,18,60,214,58,250,56,31,55,220,53,41,53,193,52,2,52,90,50,86,48, +28,47,183,46,253,45,21,44,145,41,179,39,225,38,78,38,1,37,180,34,9,32,235,29,100,28,216,26,52,25,135,23, +98,21,234,18,224,16,62,15,120,13,151,11,195,9,20,8,225,6,60,6,203,5,81,5,104,4,205,2,19,1,151,255, +240,253,97,252,126,251,150,250,230,248,213,246,202,244,226,242,149,241,230,240,52,240,88,239,116,238,108,237,53,236,198,234, +46,233,237,231,24,231,19,230,220,228,237,227,87,227,85,227,254,227,66,228,104,227,70,226,135,225,14,225,252,224,48,225, +220,224,226,223,242,222,115,222,115,222,197,222,3,223,31,223,93,223,208,223,103,224,254,224,115,225,206,225,244,225,203,225, +228,225,129,226,209,226,161,226,180,226,203,226,64,226,178,225,158,225,151,225,214,225,204,226,215,227,81,228,129,228,221,228, +156,229,134,230,38,231,131,231,235,231,162,232,93,234,7,237,191,238,191,238,232,238,74,240,204,241,218,242,218,243,194,244, +117,245,231,245,223,245,185,245,55,246,79,247,101,248,7,249,68,249,222,249,41,251,91,252,74,253,141,254,143,255,246,255, +55,1,177,3,173,5,206,6,32,8,48,9,30,9,250,8,26,10,225,11,205,12,175,12,151,12,250,12,87,13,184,13, +119,14,232,14,142,14,90,14,7,15,29,16,33,17,237,17,58,18,6,18,244,17,191,18,84,20,177,21,66,22,132,22, +166,22,69,22,198,21,197,21,225,21,172,21,73,21,208,20,177,20,94,21,245,21,108,21,94,20,185,19,167,19,102,20, +196,21,137,22,48,22,149,21,70,21,5,21,208,20,232,20,21,21,201,20,249,19,34,19,59,18,250,16,23,16,63,16, +123,16,202,15,196,14,46,14,14,14,106,14,233,14,167,14,112,13,17,12,84,11,133,11,46,12,108,12,11,12,125,11, +237,10,82,10,168,9,141,8,217,6,42,5,42,4,217,3,165,3,191,2,4,1,91,255,117,254,30,254,16,254,47,254, +42,254,220,253,123,253,242,252,253,251,33,251,102,251,164,252,44,253,3,252,47,250,223,248,17,248,200,247,37,248,33,248, +180,246,212,244,48,244,171,244,234,244,160,244,93,244,187,243,42,242,240,240,95,241,61,242,56,242,64,242,199,242,131,242, +152,241,149,241,52,242,4,242,72,241,80,241,44,242,185,242,87,242,188,241,151,241,127,241,97,241,6,242,17,243,78,243, +40,243,168,243,27,244,180,243,113,243,59,244,88,245,234,245,53,246,168,246,232,246,156,246,53,246,27,246,246,245,126,245, +11,245,229,244,248,244,79,245,27,246,17,247,81,247,215,246,34,247,212,248,87,250,206,250,104,251,71,252,17,252,31,251, +19,251,36,252,122,253,117,254,174,254,123,254,219,254,252,255,24,1,119,1,201,0,170,255,110,255,91,0,132,1,93,2, +219,2,248,2,7,3,89,3,181,3,253,3,85,4,181,4,22,5,88,5,68,5,73,5,238,5,162,6,247,6,163,7, +196,8,97,9,53,9,2,9,58,9,177,9,44,10,206,10,195,11,167,12,247,12,6,13,97,13,22,14,253,14,184,15, +169,15,221,14,39,14,28,14,170,14,55,15,59,15,14,15,42,15,57,15,70,15,250,15,199,16,116,16,68,15,10,14, +212,12,194,11,4,11,32,10,204,8,48,7,72,5,100,3,26,2,79,1,212,0,231,0,56,1,82,1,129,1,147,1, +116,0,107,254,75,253,186,253,22,254,187,252,79,250,166,248,229,247,157,246,73,244,179,241,185,239,197,238,57,238,147,236, +161,233,66,231,142,230,36,230,55,228,250,224,74,222,39,221,219,220,165,220,66,220,233,218,104,216,44,214,242,212,237,211, +250,210,153,210,50,210,6,209,64,207,18,205,193,202,32,201,117,200,20,200,118,199,170,198,4,198,153,197,9,197,46,196, +89,195,145,194,236,193,235,193,52,194,172,193,138,192,192,191,250,190,144,189,246,187,178,186,188,185,22,185,199,184,137,184, +14,184,54,183,67,182,222,181,83,182,36,183,149,183,119,183,114,183,44,184,75,185,14,186,95,186,181,186,161,187,86,189, +6,191,210,191,38,192,172,192,39,193,125,193,239,193,100,194,1,195,49,196,118,197,56,198,226,198,213,199,250,200,103,202, +206,203,223,204,125,206,50,209,181,211,29,213,49,214,138,215,255,216,203,218,63,221,215,223,193,225,214,226,183,227,16,229, +254,230,71,233,151,235,160,237,141,239,203,241,27,244,7,246,217,247,216,249,185,251,135,253,176,255,31,2,79,4,8,6, +159,7,146,9,197,11,190,13,114,15,241,16,32,18,111,19,70,21,3,23,49,24,85,25,150,26,209,27,152,29,28,32, +144,34,135,36,51,38,183,39,118,41,192,43,32,46,7,48,127,49,229,50,160,52,157,54,31,56,247,56,187,57,138,58, +68,59,47,60,67,61,41,62,28,63,24,64,111,64,79,64,229,64,114,66,0,68,208,68,33,69,158,69,112,70,51,71, +186,71,45,72,178,72,86,73,224,73,240,73,189,73,221,73,80,74,175,74,174,74,63,74,231,73,25,74,59,74,206,73, +115,73,86,73,237,72,144,72,173,72,164,72,47,72,184,71,254,70,214,69,244,68,116,68,165,67,101,66,9,65,211,63, +0,63,100,62,110,61,32,60,221,58,166,57,113,56,124,55,230,54,103,54,129,53,17,52,151,50,118,49,143,48,225,47, +107,47,170,46,91,45,228,43,144,42,124,41,181,40,213,39,126,38,240,36,116,35,14,34,207,32,143,31,19,30,143,28, +41,27,155,25,192,23,189,21,0,20,45,19,241,18,244,17,252,15,58,14,73,13,208,12,88,12,118,11,60,10,46,9, +43,8,212,6,153,5,176,4,151,3,89,2,88,1,91,0,67,255,72,254,56,253,252,251,1,251,87,250,152,249,180,248, +237,247,111,247,20,247,126,246,184,245,61,245,13,245,179,244,9,244,28,243,7,242,64,241,31,241,65,241,247,240,43,240, +109,239,34,239,215,238,70,238,19,238,84,238,36,238,120,237,43,237,104,237,233,237,108,238,95,238,208,237,171,237,252,237, +19,238,9,238,252,237,137,237,46,237,183,237,143,238,205,238,138,238,42,238,241,237,14,238,42,238,187,237,240,236,142,236, +7,237,6,238,198,238,27,239,120,239,224,239,14,240,65,240,167,240,241,240,7,241,28,241,91,241,243,241,213,242,175,243, +96,244,195,244,148,244,19,244,204,243,208,243,23,244,160,244,3,245,12,245,25,245,66,245,107,245,219,245,169,246,86,247, +117,247,39,247,39,247,5,248,23,249,133,249,211,249,146,250,65,251,178,251,57,252,143,252,136,252,136,252,127,252,116,252, +18,253,6,254,9,254,40,253,162,252,251,252,184,253,35,254,205,253,4,253,129,252,151,252,22,253,155,253,211,253,183,253, +107,253,20,253,251,252,56,253,126,253,181,253,13,254,86,254,76,254,19,254,228,253,230,253,14,254,1,254,189,253,171,253, +163,253,78,253,237,252,136,252,245,251,215,251,115,252,182,252,23,252,103,251,60,251,136,251,243,251,195,251,229,250,76,250, +62,250,49,250,64,250,172,250,236,250,147,250,241,249,119,249,113,249,206,249,3,250,193,249,69,249,237,248,234,248,250,248, +173,248,70,248,94,248,191,248,209,248,135,248,43,248,251,247,14,248,26,248,241,247,192,247,123,247,3,247,183,246,186,246, +163,246,85,246,7,246,179,245,82,245,236,244,142,244,137,244,242,244,81,245,102,245,85,245,29,245,249,244,41,245,75,245, +55,245,97,245,151,245,95,245,44,245,95,245,165,245,253,245,101,246,95,246,34,246,54,246,29,246,130,245,51,245,109,245, +132,245,118,245,183,245,8,246,255,245,231,245,63,246,224,246,33,247,243,246,246,246,97,247,220,247,87,248,0,249,204,249, +128,250,210,250,198,250,199,250,246,250,21,251,68,251,142,251,156,251,159,251,241,251,44,252,41,252,107,252,193,252,165,252, +119,252,158,252,207,252,5,253,120,253,11,254,143,254,196,254,144,254,156,254,92,255,33,0,108,0,148,0,160,0,119,0, +138,0,15,1,173,1,55,2,156,2,179,2,146,2,122,2,154,2,251,2,76,3,92,3,144,3,8,4,70,4,70,4, +138,4,9,5,101,5,135,5,132,5,119,5,95,5,34,5,243,4,251,4,230,4,146,4,88,4,69,4,59,4,88,4, +115,4,56,4,217,3,156,3,127,3,133,3,119,3,51,3,75,3,9,4,207,4,80,5,136,5,9,5,32,4,224,3, +59,4,85,4,31,4,186,3,3,3,92,2,17,2,200,1,113,1,58,1,224,0,100,0,63,0,77,0,8,0,163,255, +138,255,139,255,71,255,0,255,38,255,106,255,49,255,174,254,113,254,112,254,131,254,169,254,157,254,82,254,53,254,62,254, +22,254,227,253,178,253,96,253,63,253,112,253,148,253,212,253,99,254,142,254,254,253,104,253,79,253,146,253,223,253,200,253, +71,253,213,252,127,252,39,252,5,252,211,251,31,251,103,250,57,250,63,250,79,250,147,250,192,250,169,250,163,250,178,250, +169,250,171,250,199,250,228,250,4,251,12,251,243,250,6,251,72,251,99,251,90,251,100,251,104,251,37,251,148,250,10,250, +213,249,203,249,191,249,229,249,48,250,92,250,159,250,248,250,210,250,59,250,246,249,73,250,244,250,148,251,169,251,89,251, +86,251,141,251,135,251,141,251,223,251,46,252,76,252,52,252,244,251,247,251,56,252,38,252,252,251,71,252,148,252,137,252, +180,252,51,253,132,253,140,253,111,253,94,253,186,253,83,254,114,254,34,254,23,254,115,254,166,254,85,254,193,253,93,253, +47,253,9,253,7,253,42,253,53,253,42,253,47,253,79,253,175,253,36,254,46,254,252,253,16,254,29,254,224,253,220,253, +59,254,172,254,39,255,119,255,105,255,150,255,60,0,132,0,12,0,87,255,191,254,135,254,208,254,19,255,230,254,158,254, +122,254,98,254,91,254,86,254,60,254,57,254,86,254,100,254,110,254,134,254,181,254,40,255,178,255,249,255,43,0,122,0, +156,0,135,0,133,0,101,0,252,255,183,255,223,255,36,0,38,0,228,255,161,255,92,255,235,254,152,254,171,254,188,254, +155,254,174,254,230,254,4,255,97,255,252,255,68,0,83,0,135,0,137,0,30,0,140,255,36,255,75,255,241,255,35,0, +148,255,39,255,65,255,146,255,7,0,84,0,255,255,116,255,86,255,166,255,72,0,243,0,16,1,228,0,71,1,246,1, +28,2,207,1,161,1,166,1,170,1,150,1,128,1,139,1,180,1,205,1,154,1,28,1,182,0,155,0,120,0,61,0, +57,0,71,0,39,0,63,0,204,0,130,1,54,2,174,2,167,2,145,2,209,2,251,2,238,2,9,3,21,3,214,2, +187,2,216,2,210,2,191,2,200,2,194,2,166,2,108,2,15,2,233,1,41,2,128,2,212,2,41,3,85,3,138,3, +11,4,126,4,153,4,111,4,248,3,127,3,158,3,17,4,39,4,13,4,57,4,144,4,209,4,222,4,180,4,148,4, +155,4,156,4,155,4,186,4,216,4,243,4,57,5,151,5,230,5,26,6,63,6,125,6,189,6,171,6,126,6,156,6, +180,6,119,6,64,6,43,6,21,6,45,6,102,6,126,6,169,6,228,6,181,6,83,6,64,6,77,6,91,6,158,6, +209,6,196,6,238,6,101,7,211,7,92,8,5,9,51,9,194,8,119,8,211,8,71,9,34,9,190,8,225,8,113,9, +234,9,96,10,214,10,219,10,120,10,21,10,204,9,177,9,222,9,9,10,10,10,27,10,83,10,172,10,4,11,1,11, +186,10,159,10,121,10,16,10,224,9,235,9,186,9,192,9,115,10,13,11,5,11,203,10,150,10,82,10,57,10,85,10, +84,10,35,10,237,9,203,9,148,9,15,9,143,8,134,8,148,8,96,8,96,8,142,8,64,8,182,7,143,7,106,7, +240,6,155,6,135,6,65,6,182,5,45,5,221,4,230,4,35,5,39,5,205,4,125,4,148,4,202,4,172,4,101,4, +41,4,147,3,156,2,236,1,153,1,65,1,16,1,46,1,76,1,70,1,239,0,3,0,10,255,189,254,197,254,139,254, +32,254,199,253,201,253,65,254,162,254,156,254,154,254,135,254,227,253,12,253,135,252,15,252,129,251,22,251,203,250,162,250, +203,250,46,251,158,251,255,251,20,252,209,251,106,251,245,250,174,250,222,250,41,251,28,251,5,251,42,251,115,251,235,251, +80,252,10,252,111,251,103,251,198,251,160,251,245,250,180,250,63,251,235,251,49,252,106,252,206,252,18,253,70,253,146,253, +150,253,102,253,156,253,235,253,166,253,45,253,29,253,87,253,195,253,108,254,244,254,7,255,232,254,254,254,47,255,6,255, +149,254,142,254,241,254,5,255,220,254,254,254,43,255,30,255,52,255,77,255,255,254,174,254,220,254,101,255,6,0,151,0, +229,0,238,0,199,0,110,0,5,0,161,255,60,255,24,255,73,255,105,255,112,255,174,255,233,255,218,255,196,255,203,255, +206,255,190,255,139,255,95,255,166,255,43,0,77,0,30,0,19,0,44,0,65,0,60,0,31,0,38,0,80,0,57,0, +235,255,180,255,121,255,77,255,173,255,111,0,245,0,15,1,179,0,252,255,128,255,122,255,97,255,246,254,156,254,153,254, +222,254,50,255,87,255,58,255,215,254,3,254,234,252,39,252,18,252,67,252,5,252,94,251,59,251,246,251,160,252,137,252, +39,252,10,252,34,252,36,252,233,251,180,251,203,251,211,251,148,251,136,251,171,251,129,251,110,251,227,251,45,252,213,251, +93,251,234,250,48,250,88,249,172,248,66,248,52,248,124,248,229,248,69,249,127,249,196,249,78,250,137,250,216,249,234,248, +150,248,149,248,149,248,192,248,255,248,27,249,16,249,210,248,168,248,215,248,210,248,59,248,203,247,214,247,202,247,188,247, +32,248,127,248,123,248,166,248,4,249,191,248,0,248,205,247,11,248,223,247,165,247,42,248,231,248,33,249,38,249,246,248, +0,248,191,246,11,246,159,245,99,245,247,245,1,247,152,247,252,247,165,248,19,249,240,248,167,248,127,248,94,248,58,248, +72,248,188,248,80,249,156,249,183,249,199,249,158,249,132,249,236,249,145,250,32,251,146,251,120,251,169,250,242,249,170,249, +71,249,227,248,4,249,107,249,212,249,161,250,227,251,227,252,45,253,37,253,71,253,71,253,203,252,82,252,50,252,218,251, +81,251,136,251,128,252,76,253,192,253,21,254,253,253,127,253,38,253,225,252,45,252,105,251,126,251,60,252,154,252,183,252, +170,253,34,255,175,255,67,255,198,254,68,254,152,253,63,253,76,253,109,253,209,253,155,254,105,255,7,0,104,0,55,0, +88,255,76,254,165,253,121,253,97,253,37,253,50,253,243,253,35,255,56,0,226,0,8,1,218,0,148,0,35,0,139,255, +33,255,26,255,94,255,209,255,113,0,56,1,217,1,225,1,105,1,212,0,32,0,113,255,52,255,39,255,21,255,205,255, +84,1,93,2,171,2,221,2,112,2,51,1,118,0,105,0,198,255,207,254,229,254,229,255,208,0,163,1,186,2,184,3, +7,4,152,3,182,2,131,1,59,0,126,255,138,255,200,255,228,255,38,0,152,0,14,1,151,1,5,2,249,1,178,1, +148,1,79,1,158,0,22,0,55,0,163,0,224,0,10,1,56,1,52,1,11,1,242,0,194,0,136,0,190,0,74,1, +141,1,117,1,32,1,95,0,102,255,187,254,101,254,92,254,205,254,160,255,151,0,118,1,163,1,253,0,85,0,238,255, +63,255,119,254,79,254,213,254,164,255,89,0,205,0,104,1,36,2,250,1,210,0,8,0,0,0,242,255,236,255,65,0, +122,0,152,0,35,1,133,1,0,1,100,0,178,0,80,1,104,1,93,1,176,1,241,1,169,1,42,1,235,0,253,0, +36,1,3,1,172,0,212,0,147,1,29,2,104,2,15,3,152,3,65,3,147,2,47,2,194,1,91,1,152,1,121,2, +135,3,135,4,59,5,120,5,119,5,91,5,233,4,24,4,104,3,72,3,133,3,156,3,131,3,147,3,245,3,147,4, +44,5,114,5,120,5,139,5,139,5,79,5,11,5,190,4,84,4,74,4,213,4,81,5,131,5,219,5,68,6,115,6, +185,6,75,7,187,7,183,7,84,7,198,6,104,6,152,6,47,7,142,7,139,7,169,7,244,7,220,7,178,7,91,8, +71,9,90,9,21,9,44,9,244,8,71,8,14,8,64,8,80,8,137,8,225,8,217,8,231,8,112,9,142,9,4,9, +221,8,55,9,51,9,214,8,163,8,142,8,175,8,91,9,40,10,121,10,140,10,173,10,103,10,124,9,139,8,43,8, +75,8,153,8,218,8,37,9,169,9,13,10,216,9,91,9,6,9,146,8,240,7,156,7,149,7,165,7,13,8,149,8, +144,8,55,8,15,8,195,7,80,7,111,7,30,8,151,8,157,8,104,8,21,8,173,7,47,7,183,6,134,6,127,6, +96,6,65,6,24,6,190,5,183,5,86,6,203,6,128,6,3,6,206,5,183,5,154,5,103,5,29,5,252,4,2,5, +233,4,223,4,45,5,114,5,62,5,179,4,255,3,45,3,140,2,81,2,50,2,246,1,206,1,217,1,13,2,128,2, +5,3,246,2,77,2,225,1,240,1,189,1,229,0,229,255,103,255,178,255,67,0,85,0,61,0,190,0,49,1,185,0, +32,0,32,0,204,255,171,254,206,253,195,253,239,253,1,254,36,254,66,254,81,254,130,254,184,254,173,254,140,254,156,254, +165,254,123,254,129,254,209,254,209,254,83,254,193,253,63,253,228,252,33,253,200,253,26,254,33,254,85,254,108,254,17,254, +171,253,137,253,98,253,0,253,165,252,174,252,243,252,240,252,206,252,47,253,198,253,206,253,154,253,211,253,30,254,224,253, +48,253,103,252,195,251,95,251,24,251,225,250,253,250,132,251,46,252,173,252,193,252,93,252,184,251,221,250,179,249,171,248, +59,248,3,248,166,247,196,247,223,248,98,250,142,251,57,252,78,252,196,251,215,250,181,249,133,248,181,247,89,247,9,247, +55,247,175,248,131,250,10,251,137,250,28,250,125,249,48,248,226,246,39,246,224,245,11,246,166,246,131,247,146,248,158,249, +54,250,93,250,81,250,241,249,65,249,176,248,98,248,14,248,143,247,49,247,153,247,235,248,52,250,152,250,67,250,145,249, +167,248,246,247,139,247,0,247,216,246,219,247,44,249,160,249,168,249,212,249,141,249,200,248,127,248,214,248,1,249,190,248, +94,248,37,248,101,248,33,249,174,249,173,249,167,249,224,249,233,249,173,249,142,249,129,249,67,249,217,248,100,248,57,248, +214,248,12,250,32,251,9,252,254,252,83,253,129,252,86,251,176,250,95,250,35,250,94,250,34,251,223,251,76,252,169,252, +238,252,214,252,181,252,13,253,154,253,206,253,139,253,218,252,239,251,144,251,40,252,243,252,72,253,160,253,130,254,100,255, +99,255,120,254,126,253,254,252,185,252,146,252,234,252,192,253,175,254,149,255,46,0,225,255,193,254,163,253,240,252,112,252, +17,252,34,252,217,252,242,253,226,254,133,255,21,0,143,0,190,0,160,0,31,0,23,255,215,253,208,252,60,252,112,252, +152,253,32,255,118,0,188,1,233,2,72,3,142,2,61,1,199,255,101,254,143,253,178,253,142,254,113,255,1,0,152,0, +153,1,156,2,237,2,179,2,135,2,73,2,175,1,62,1,118,1,249,1,85,2,138,2,125,2,247,1,40,1,151,0, +199,0,185,1,221,2,251,3,75,5,73,6,79,6,230,5,73,5,137,3,32,1,241,255,208,255,127,255,44,0,25,3, +89,6,15,8,244,8,64,9,177,7,163,4,219,1,219,255,137,254,136,254,246,255,243,1,70,4,91,7,145,10,124,12, +108,12,133,10,56,7,79,3,171,255,210,252,133,251,169,252,225,255,167,3,12,7,183,9,223,10,54,10,147,8,104,6, +139,3,252,0,33,0,125,0,229,0,155,1,30,3,206,4,20,6,179,6,37,6,208,4,55,4,68,4,64,3,58,1, +202,255,1,255,79,254,174,254,143,0,96,2,36,3,138,3,216,3,161,3,244,2,231,1,80,0,173,254,206,253,201,253, +97,254,97,255,27,0,12,0,197,255,214,255,195,255,60,255,190,254,84,254,160,253,32,253,76,253,88,253,219,252,199,252, +65,253,98,253,120,253,77,254,215,254,244,253,170,252,28,252,214,251,117,251,102,251,172,251,227,251,227,251,153,251,25,251, +182,250,125,250,85,250,88,250,45,250,74,249,42,248,139,247,24,247,185,246,89,247,237,248,41,250,211,250,137,251,194,251, +185,250,12,249,90,247,69,245,9,243,200,241,224,241,208,242,90,244,49,246,145,247,52,248,146,248,179,248,23,248,254,246, +81,246,25,246,160,245,6,245,42,245,12,246,226,246,139,247,100,248,88,249,21,250,110,250,79,250,242,249,166,249,63,249, +166,248,107,248,186,248,21,249,128,249,115,250,219,251,125,253,69,255,167,0,33,1,4,1,169,0,14,0,140,255,139,255, +254,255,13,1,187,2,31,4,185,4,78,5,12,6,28,6,136,5,242,4,58,4,158,3,37,4,128,5,105,6,43,7, +188,8,124,10,129,11,4,12,253,11,38,11,125,10,172,10,86,10,231,8,73,8,144,9,82,11,181,12,66,14,135,15, +148,15,3,15,151,14,200,13,179,12,138,12,23,13,59,13,168,13,132,15,180,17,199,18,71,19,211,19,208,19,56,19, +204,18,114,18,231,17,207,17,93,18,216,18,53,19,18,20,52,21,239,21,39,22,229,21,56,21,180,20,157,20,70,20, +125,19,78,19,55,20,69,21,242,21,226,22,255,23,40,24,69,23,132,22,63,22,213,21,36,21,125,20,5,20,8,20, +175,20,81,21,97,21,63,21,65,21,67,21,48,21,178,20,75,19,155,17,220,16,230,16,191,16,147,16,13,17,232,17, +132,18,177,18,76,18,100,17,123,16,198,15,201,14,98,13,115,12,212,12,251,13,107,14,158,13,142,12,3,12,143,11, +178,10,168,9,221,8,128,8,123,8,116,8,70,8,68,8,113,8,83,8,220,7,87,7,207,6,72,6,175,5,160,4, +97,3,233,2,33,3,255,2,132,2,57,2,176,1,181,0,0,0,139,255,189,254,3,254,234,253,235,253,199,253,236,253, +28,254,228,253,132,253,223,252,106,251,204,249,18,249,183,248,217,247,250,246,182,246,173,246,208,246,146,247,106,248,86,248, +128,247,157,246,97,245,79,243,7,241,113,239,214,238,71,239,130,240,175,241,125,242,132,243,120,244,44,244,219,242,156,241, +3,240,147,237,224,235,12,236,204,236,77,237,118,238,19,240,176,240,58,240,89,239,190,237,172,235,123,234,34,234,167,233, +209,233,197,235,46,238,62,239,114,239,161,239,1,239,32,237,8,235,82,233,207,231,25,231,249,231,226,233,235,235,231,237, +83,239,90,239,90,238,80,237,39,236,112,234,183,232,172,231,91,231,219,231,76,233,23,235,96,236,229,236,238,236,254,236, +103,237,165,237,232,236,116,235,118,234,77,234,44,234,143,233,30,233,179,233,35,235,135,236,101,237,214,237,23,238,67,238, +21,238,11,237,114,235,115,234,135,234,35,235,6,236,87,237,200,238,254,239,2,241,151,241,71,241,39,240,176,238,100,237, +222,236,72,237,64,238,193,239,193,241,66,243,178,243,220,243,229,243,229,242,65,241,89,240,38,240,29,240,225,240,160,242, +50,244,25,245,241,245,208,246,82,247,95,247,179,246,60,245,253,243,228,243,125,244,60,245,159,246,178,248,56,250,129,250, +83,250,36,250,82,249,236,247,43,247,121,247,51,248,88,249,36,251,189,252,133,253,45,254,209,254,133,254,97,253,86,252, +121,251,234,250,153,251,108,253,235,254,137,255,211,255,246,255,0,0,72,0,155,0,135,0,88,0,113,0,195,0,159,1, +75,3,221,4,58,5,165,4,0,4,128,3,248,2,119,2,42,2,78,2,41,3,189,4,150,6,7,8,159,8,103,8, +175,7,184,6,219,5,171,5,94,6,92,7,12,8,167,8,146,9,74,10,5,10,10,9,102,8,111,8,162,8,194,8, +24,9,228,9,34,11,131,12,104,13,105,13,224,12,102,12,241,11,254,10,145,9,116,8,58,8,158,8,93,9,220,10, +18,13,219,14,111,15,100,15,95,15,249,14,160,13,176,11,19,10,49,9,171,8,86,8,207,8,111,10,127,12,34,14, +12,15,253,14,214,13,46,12,186,10,180,9,51,9,48,9,97,9,252,9,119,11,1,13,50,13,100,12,25,12,84,12, +188,11,18,10,161,8,91,8,199,8,19,9,100,9,73,10,131,11,67,12,35,12,76,11,61,10,121,9,220,8,238,7, +253,6,147,6,98,6,74,6,11,7,172,8,1,10,136,10,180,10,150,10,214,9,100,8,128,6,219,4,51,4,83,4, +187,4,203,5,136,7,165,8,108,8,151,7,156,6,100,5,101,4,208,3,225,2,159,1,76,1,69,2,116,3,7,4, +13,4,158,3,232,2,140,2,199,2,212,2,57,2,242,1,173,2,56,3,139,2,162,1,63,1,81,0,105,254,248,252, +239,252,18,254,51,0,132,2,89,3,186,2,129,2,233,2,96,2,167,0,195,254,236,252,84,251,2,251,1,252,251,252, +175,253,52,255,114,1,181,2,246,1,19,0,174,254,97,254,64,254,97,253,142,252,10,253,45,254,86,254,157,253,58,253, +34,253,161,252,242,251,97,251,174,250,109,250,135,251,44,253,220,253,221,253,26,254,52,254,175,253,249,252,249,251,41,250, +122,248,123,248,201,249,200,250,52,251,212,251,135,252,128,252,216,251,92,251,251,250,228,249,52,248,46,247,170,247,69,249, +34,251,112,252,149,252,170,251,129,250,121,249,15,248,60,246,12,245,37,245,253,245,41,247,187,248,240,249,193,249,181,248, +206,247,233,246,50,246,188,246,243,247,232,247,157,246,44,245,32,243,150,240,206,239,68,241,118,242,95,242,123,242,68,243, +255,243,180,244,71,245,216,244,123,243,11,242,138,240,225,238,253,237,158,238,96,240,72,242,52,243,121,242,202,240,103,239, +123,238,140,237,203,236,159,236,223,236,130,237,3,239,253,240,193,241,123,240,75,238,58,236,34,234,141,232,215,232,173,234, +123,236,94,238,67,241,59,244,192,245,200,245,130,244,204,241,229,238,101,237,245,236,199,236,117,237,59,239,217,240,181,241, +142,242,151,243,14,244,173,243,32,243,33,243,206,243,213,244,1,246,82,247,163,248,193,249,156,250,253,250,137,250,82,249, +5,248,136,247,116,248,121,250,146,252,60,254,178,255,240,0,139,1,103,1,211,0,96,0,139,0,43,1,222,1,4,3, +234,4,209,6,86,8,49,10,76,12,129,13,202,13,13,14,20,14,75,13,146,12,11,13,92,14,153,15,171,16,242,17, +161,19,145,21,3,23,35,23,107,22,58,22,187,22,228,22,184,22,109,23,87,25,139,27,82,29,154,30,143,31,103,32, +26,33,157,33,111,34,211,35,228,36,206,36,217,35,162,34,199,33,14,34,54,35,21,36,177,36,241,37,111,39,93,40, +3,41,79,41,115,40,44,39,10,39,135,39,71,39,230,38,156,39,6,41,30,42,143,42,109,42,10,42,175,41,16,41, +250,39,42,39,38,39,76,39,52,39,133,39,144,40,158,41,22,42,3,42,113,41,91,40,26,39,18,38,88,37,42,37, +220,37,254,38,217,39,171,40,184,41,13,42,25,41,230,39,234,38,82,37,119,35,166,34,122,34,219,33,64,33,81,33, +134,33,142,33,119,33,202,32,174,31,8,31,159,30,200,29,28,29,236,28,43,28,147,26,52,25,138,24,73,24,51,24, +225,23,54,23,197,22,133,22,198,21,193,20,226,19,126,18,82,16,79,14,177,12,10,11,24,10,152,10,117,11,169,11, +220,11,95,12,57,12,56,11,2,10,24,8,201,4,95,1,115,255,193,254,192,254,237,255,244,1,109,3,200,3,8,3, +180,0,35,253,172,249,198,246,99,244,68,243,175,243,184,244,28,246,48,248,15,250,161,250,22,250,110,248,255,244,147,240, +5,237,189,234,54,233,233,232,91,234,210,236,104,239,157,241,122,242,44,241,50,238,98,234,26,230,84,226,73,224,212,223, +95,224,110,226,225,229,193,232,190,233,78,233,183,231,5,229,52,226,200,223,36,221,220,218,151,218,17,220,177,221,69,223, +41,225,168,226,64,227,11,227,135,225,159,222,205,219,239,217,89,216,81,215,254,215,0,218,96,220,50,223,179,225,38,226, +226,224,144,223,237,221,136,219,31,218,159,218,103,219,157,219,74,220,153,221,186,222,154,223,81,224,98,224,178,223,134,222, +197,220,143,218,223,216,195,216,98,218,253,220,135,223,84,225,61,226,87,226,235,225,64,225,9,224,214,221,58,219,162,217, +180,217,206,218,79,220,80,222,145,224,36,226,0,227,10,228,222,228,230,227,57,225,184,222,95,221,225,220,54,221,170,222, +42,225,98,228,106,231,249,232,254,232,173,232,47,232,127,230,201,227,180,225,72,225,110,226,213,228,245,231,6,235,163,237, +140,239,39,240,81,239,184,237,208,235,238,233,34,233,24,234,13,236,86,238,40,241,238,243,99,245,145,245,89,245,160,244, +216,242,141,240,39,239,145,239,144,241,66,244,19,247,221,249,43,252,33,253,49,252,181,249,3,247,85,245,152,244,62,244, +180,244,165,246,169,249,209,252,112,255,8,1,153,1,117,1,85,0,188,253,111,250,31,248,217,247,133,249,114,252,180,255, +112,2,87,4,181,5,133,6,29,6,119,4,218,2,9,2,139,1,119,1,178,2,21,5,181,7,42,10,15,12,231,12, +4,13,184,12,171,11,62,10,130,9,118,9,144,9,42,10,103,11,102,12,203,12,90,13,167,14,71,16,83,17,82,17, +196,16,119,16,134,16,149,16,145,16,202,16,128,17,87,18,125,18,196,17,206,16,237,15,21,15,173,14,11,15,200,15, +142,16,157,17,35,19,202,20,186,21,49,21,167,19,88,18,64,17,139,15,204,13,18,13,247,12,22,13,117,14,76,17, +241,19,64,21,142,21,245,20,107,19,253,17,129,17,41,17,17,16,229,14,206,14,183,15,151,16,237,16,67,17,12,18, +182,18,169,18,49,18,127,17,71,16,27,15,51,15,114,16,128,17,202,17,195,17,188,17,163,17,95,17,176,16,64,15, +114,13,96,12,63,12,3,12,121,11,181,11,146,12,170,12,245,11,85,11,171,10,7,10,22,10,16,10,215,8,136,7, +95,7,122,7,99,7,25,8,108,9,11,10,158,9,61,8,188,5,242,2,85,1,17,1,24,1,198,0,154,0,170,1, +63,4,14,7,57,8,14,7,99,4,82,1,53,254,169,251,19,251,120,252,224,253,155,254,214,255,108,1,97,2,67,3, +235,3,68,2,97,254,247,250,154,248,249,245,232,243,76,244,216,246,23,250,79,253,19,0,184,1,121,1,217,254,117,250, +5,246,236,242,105,241,30,241,186,241,112,243,143,246,40,250,2,252,201,250,181,247,41,245,225,243,146,242,100,240,105,238, +57,238,60,240,82,243,133,245,39,246,195,246,244,247,71,247,81,243,195,238,105,236,229,235,73,236,251,237,232,240,70,244, +179,247,40,250,209,249,221,246,8,244,172,242,47,241,116,238,44,236,154,236,16,240,254,244,238,248,7,250,178,248,165,246, +48,244,154,240,242,236,164,235,53,237,204,239,197,241,66,243,82,245,60,248,97,250,113,249,131,245,118,241,39,239,175,237, +134,236,209,236,185,238,37,241,250,243,7,247,150,248,14,248,237,246,193,245,234,243,196,241,170,239,138,237,42,237,106,240, +49,245,48,248,205,249,174,251,194,252,204,251,254,249,112,248,181,246,220,244,150,243,200,242,232,242,167,245,114,250,230,253, +254,254,214,255,60,0,222,253,155,249,42,246,164,243,173,241,249,241,216,244,227,247,187,249,66,251,121,253,243,255,69,0, +78,252,52,246,27,242,18,240,201,237,82,236,11,238,0,242,16,246,90,249,70,250,144,247,86,243,226,239,214,235,110,230, +226,226,110,227,207,230,97,236,222,243,19,250,204,252,221,253,111,253,248,248,77,242,12,238,1,236,30,234,8,234,217,236, +195,240,129,245,11,251,81,254,37,254,30,253,65,251,183,246,56,242,117,241,207,242,230,243,40,246,110,250,36,255,252,3, +207,8,193,10,139,8,62,5,158,2,39,255,217,251,244,251,174,254,75,1,203,4,0,10,176,13,57,14,195,13,137,12, +24,9,1,5,111,2,61,1,2,2,148,5,173,9,155,12,119,16,150,21,124,24,63,24,131,23,223,22,218,20,192,17, +241,14,58,13,124,13,160,15,186,17,84,19,92,22,109,26,52,28,35,27,250,25,178,25,104,25,121,25,45,26,211,26, +147,28,245,32,210,37,74,40,19,41,130,41,251,40,226,39,155,39,179,39,100,39,123,39,27,40,162,40,26,42,97,45, +140,48,176,49,127,49,48,49,207,48,41,48,4,47,89,45,77,44,233,44,69,46,83,47,184,48,210,50,153,52,146,53, +245,53,51,53,59,51,106,49,53,48,173,46,249,44,21,44,211,43,175,43,227,43,104,44,254,44,29,46,231,47,252,48, +224,47,11,45,177,42,14,42,207,41,179,40,8,40,45,41,32,43,143,44,118,45,255,45,19,46,100,45,14,43,60,39, +36,36,21,35,252,34,0,35,116,35,103,36,176,37,5,39,73,39,190,37,76,35,68,33,7,32,30,31,238,29,195,28, +140,28,29,29,142,29,200,29,166,29,130,28,232,26,163,25,230,23,96,21,164,19,110,19,172,19,110,19,68,18,43,16, +21,14,99,12,20,10,32,7,230,4,209,3,148,3,117,4,226,5,44,6,47,5,143,4,149,4,117,3,75,0,154,252, +236,249,10,248,106,246,24,245,250,243,51,243,70,243,152,243,65,243,240,242,183,242,194,240,126,237,10,236,181,236,19,237, +39,237,111,238,251,239,235,239,45,238,241,235,113,234,244,233,116,233,82,232,40,231,33,230,70,229,174,229,132,231,10,233, +129,233,169,233,53,233,130,231,99,229,99,227,3,225,252,222,143,222,249,222,8,223,146,223,82,225,13,227,219,227,79,228, +142,228,240,227,67,226,164,223,108,220,199,217,139,216,35,216,49,216,69,217,34,219,183,220,175,221,223,221,153,220,48,218, +38,216,33,215,152,214,114,214,28,215,89,216,139,217,220,218,148,220,0,222,130,222,119,222,132,221,133,218,116,214,232,211, +87,211,139,211,151,212,233,214,233,217,44,221,1,224,195,224,83,223,115,221,152,219,48,217,15,215,16,214,232,213,249,214, +211,217,78,221,57,224,221,226,251,228,41,229,15,227,183,223,22,220,7,217,142,215,189,215,177,216,139,218,113,222,164,227, +85,231,76,232,158,231,226,229,10,227,250,223,162,221,111,220,31,221,182,223,206,226,113,229,107,231,130,232,108,233,168,234, +57,234,71,231,49,229,253,229,255,230,156,230,214,230,164,232,179,234,47,236,29,237,158,237,14,238,129,238,210,238,73,239, +203,239,175,239,82,239,225,239,180,241,78,244,28,247,128,249,187,250,7,250,176,247,242,245,78,246,11,247,151,246,146,246, +121,248,53,251,213,253,77,0,193,1,146,1,107,0,135,254,5,252,191,250,30,252,77,254,254,254,0,255,65,0,151,2, +218,4,181,6,137,7,132,6,194,4,9,4,187,3,161,2,208,1,102,2,87,3,226,3,209,4,121,6,75,8,209,9, +100,10,139,9,28,8,164,7,162,8,214,9,139,9,46,8,81,8,174,10,194,12,6,13,41,13,117,14,168,15,123,15, +153,14,64,14,147,14,234,14,25,15,161,15,196,16,33,18,12,19,243,18,25,18,199,17,182,18,193,19,122,19,129,18, +216,18,28,21,165,23,163,24,29,24,83,23,236,22,119,22,77,21,148,19,76,18,30,18,145,18,240,18,88,19,96,20, +9,22,113,23,166,23,164,22,17,21,127,19,109,18,208,17,22,17,242,16,218,18,96,21,148,21,93,20,113,20,225,20, +188,19,31,18,29,17,9,16,96,15,252,15,185,16,213,16,89,17,123,18,61,19,63,19,162,18,161,17,104,16,127,14, +57,12,175,11,150,13,187,15,172,16,245,16,106,16,160,14,228,12,70,12,183,11,71,10,198,8,33,8,115,8,225,9, +13,12,55,13,139,12,164,11,35,11,57,9,255,5,219,3,175,2,58,1,56,1,133,3,65,5,180,5,131,7,56,10, +175,10,86,8,111,4,94,0,121,254,247,254,169,254,12,253,110,253,151,255,118,255,169,252,215,250,169,251,159,253,248,254, +168,254,164,252,227,250,148,251,178,253,52,254,141,252,88,250,225,247,53,245,208,243,192,243,151,243,89,244,74,247,187,249, +194,249,67,250,194,252,223,253,47,251,58,246,157,241,116,239,36,240,137,241,117,242,103,244,39,247,69,248,83,248,238,249, +48,252,80,252,51,250,245,246,207,242,222,238,192,236,97,236,155,237,41,241,135,245,187,247,63,248,181,249,156,251,145,251, +38,249,19,245,173,240,231,238,212,240,244,242,119,242,66,241,195,241,200,243,140,246,53,249,26,250,221,248,15,247,39,245, +17,242,160,238,220,237,252,240,158,245,182,248,157,249,214,249,130,250,105,250,94,247,39,242,214,238,114,239,101,241,239,241, +158,241,88,242,18,245,0,249,61,251,143,249,239,245,243,243,163,243,93,242,109,239,255,236,94,237,201,240,116,245,233,248, +166,249,72,248,181,246,66,245,206,242,97,240,41,240,32,241,95,241,91,242,223,244,21,246,62,245,30,245,183,245,120,244, +33,242,170,241,90,243,41,245,183,245,56,245,173,244,88,244,108,243,140,241,110,239,121,238,40,240,247,243,245,246,148,247, +71,247,251,246,139,245,36,242,160,237,25,234,74,233,29,234,224,233,98,232,211,231,82,233,221,235,253,236,7,235,179,232, +95,234,185,238,160,240,162,239,20,239,150,239,212,239,168,239,156,238,217,235,223,232,69,232,240,233,170,235,175,236,81,238, +100,241,135,244,173,245,200,244,240,243,125,244,218,244,27,243,214,240,89,241,223,244,16,249,163,252,169,255,129,2,66,5, +252,5,88,2,236,252,39,251,17,253,66,254,14,254,160,255,54,4,4,10,53,14,218,14,55,13,48,12,144,11,15,9, +124,5,40,4,108,6,9,11,184,15,107,18,113,19,125,21,113,25,142,28,164,28,235,26,133,25,2,25,175,24,132,23, +94,21,253,19,225,20,243,22,193,24,255,26,88,30,175,33,25,36,139,37,153,37,84,36,40,35,17,35,169,35,116,36, +129,37,35,39,145,41,52,44,25,46,158,47,197,49,209,51,226,51,246,49,7,48,66,47,25,47,40,47,250,47,213,49, +186,52,176,56,92,60,169,61,21,61,163,60,12,60,102,58,230,56,31,56,38,55,25,55,209,57,9,62,122,65,83,67, +242,66,228,64,156,63,234,62,234,59,145,55,252,53,68,55,70,56,122,56,41,57,23,58,203,58,183,59,95,60,98,59, +0,57,253,54,69,54,143,54,68,55,113,55,169,54,48,54,173,54,158,54,157,53,221,52,123,51,82,48,202,45,91,45, +100,44,58,42,135,41,38,42,20,42,241,41,34,42,117,41,242,40,176,41,40,41,46,38,202,35,77,35,184,34,141,33, +184,32,182,31,18,30,173,28,182,27,73,26,107,24,43,23,224,22,188,22,49,22,112,21,64,20,77,18,90,16,6,15, +144,13,130,11,109,9,77,7,239,4,44,3,158,2,219,2,91,3,88,3,54,2,243,0,135,0,150,255,206,252,63,249, +23,246,36,243,99,240,48,238,90,236,6,235,199,234,28,235,213,234,9,234,113,233,148,232,205,230,41,229,221,228,18,229, +111,228,63,227,90,226,227,225,201,225,169,225,179,224,31,223,9,222,116,221,157,220,141,219,79,218,125,216,222,214,234,214, +65,216,234,216,45,216,65,215,254,214,145,214,80,213,107,212,24,213,37,214,140,213,179,211,213,210,184,211,193,212,113,212, +52,211,14,210,12,209,8,208,131,207,162,207,137,207,188,206,0,206,28,206,173,206,21,207,156,207,40,208,75,207,201,204, +203,202,94,202,53,202,10,202,232,202,153,204,161,206,69,209,89,211,58,211,196,209,110,208,18,207,182,205,153,204,29,203, +246,201,228,202,214,204,129,205,176,205,236,206,49,208,132,208,215,208,191,209,112,210,72,210,235,209,170,210,166,212,107,214, +9,215,239,214,174,214,212,214,193,215,157,216,136,216,59,216,119,216,0,217,208,217,152,218,114,218,8,218,8,219,194,220, +31,221,124,220,32,221,117,223,13,225,24,224,128,222,82,223,223,225,33,227,183,226,150,226,174,227,158,229,72,231,42,231, +115,229,105,228,49,229,93,230,74,230,99,229,145,229,103,231,235,232,215,232,233,232,202,234,161,237,223,239,143,240,159,239, +221,238,36,240,67,242,244,242,107,242,116,242,0,244,123,246,12,248,195,247,140,247,49,249,28,251,46,251,26,250,164,249, +64,250,84,251,3,252,242,251,3,252,107,253,229,255,163,1,109,1,124,0,226,0,82,2,8,3,107,3,15,5,1,7, +25,7,175,5,134,4,33,4,112,4,136,5,169,6,76,7,168,8,68,11,17,13,200,12,5,12,212,11,22,11,133,9, +85,8,29,8,23,9,180,11,245,14,1,17,189,17,95,18,90,19,41,20,202,19,203,17,198,15,192,15,1,17,118,17, +17,17,1,17,118,17,33,18,11,19,221,19,220,19,53,19,61,19,173,20,140,22,201,23,103,24,72,24,25,23,201,21, +81,21,220,20,216,19,184,19,98,21,170,23,129,25,8,27,250,27,76,27,209,24,242,21,254,19,189,18,171,17,16,17, +245,16,115,17,163,19,82,23,238,25,73,26,176,25,112,24,229,21,211,18,7,16,88,13,164,11,49,12,186,14,43,18, +73,21,194,22,179,22,50,22,216,20,216,17,22,14,224,10,242,8,249,8,121,10,20,12,227,13,95,16,101,18,19,19, +181,18,7,17,31,14,206,11,224,10,160,9,28,7,83,5,217,6,124,11,51,16,136,18,113,18,100,16,186,12,227,8, +214,5,13,3,41,1,147,1,49,3,116,4,142,6,238,9,240,11,2,11,73,8,10,5,128,2,22,2,252,2,210,2, +143,1,32,1,222,1,185,2,111,3,40,4,129,4,67,4,247,2,47,255,110,249,11,246,232,247,215,251,112,253,207,252, +144,252,31,254,242,0,68,2,210,255,41,252,53,251,189,251,181,250,108,249,254,249,212,250,140,250,207,250,183,252,179,254, +170,254,246,251,1,248,63,245,145,244,41,245,252,246,72,250,67,253,229,253,250,252,89,252,186,251,236,249,65,247,74,245, +84,245,32,247,153,248,108,248,5,248,166,248,227,248,194,247,112,246,18,245,159,242,99,240,177,240,15,243,82,245,152,246, +17,247,188,246,50,245,28,242,71,238,110,235,250,233,249,232,217,232,148,235,104,241,105,247,74,250,113,249,142,246,70,243, +105,240,210,237,75,234,228,229,213,227,157,230,141,236,240,242,114,248,122,251,54,251,246,248,248,244,99,238,197,231,15,229, +245,229,227,231,89,234,183,237,137,241,241,244,108,246,79,245,157,243,229,242,56,241,231,236,95,232,84,231,19,234,65,237, +18,238,179,237,171,238,191,239,159,237,25,233,88,230,239,229,11,228,116,223,187,219,94,219,179,221,157,226,116,233,9,238, +24,238,108,237,149,238,201,238,104,236,231,232,161,228,130,224,43,223,232,223,1,224,0,225,113,229,100,235,64,240,187,243, +219,244,201,242,123,239,183,236,251,233,46,231,30,229,41,228,105,229,118,234,133,242,182,250,4,1,96,4,0,4,210,0, +77,253,44,250,84,246,223,242,8,243,1,247,223,251,135,0,124,5,106,9,251,10,248,10,124,9,246,5,132,2,174,1, +108,2,62,3,102,5,112,9,80,13,6,16,203,18,29,22,212,24,203,25,248,24,112,23,26,22,62,20,43,17,193,14, +36,15,91,17,194,19,29,23,139,27,131,30,1,31,217,30,167,30,177,29,240,28,107,29,90,30,233,31,91,35,165,39, +149,42,26,44,56,45,96,46,9,48,169,49,95,49,72,47,242,45,5,46,193,45,72,45,195,46,145,50,0,55,206,58, +50,61,120,61,93,60,74,59,230,57,132,55,176,53,20,54,29,56,231,58,20,62,103,64,53,65,175,65,36,66,83,65, +64,63,12,61,4,59,98,57,156,56,79,56,78,56,68,57,234,58,240,59,181,59,118,58,248,56,244,55,210,54,205,52, +53,51,143,51,54,53,22,55,242,56,78,58,206,58,167,58,125,57,34,55,127,52,254,49,112,47,138,45,148,44,167,43, +202,42,204,42,86,43,180,43,170,43,217,42,146,41,224,40,145,40,4,40,206,39,222,39,234,38,29,37,180,35,166,34, +217,33,233,33,253,33,45,32,163,28,139,25,69,24,52,24,41,24,220,23,134,23,219,22,187,21,143,20,37,19,25,17, +53,15,254,13,93,12,194,9,138,7,26,7,14,8,204,8,138,8,23,8,168,7,223,5,214,2,123,0,163,254,193,251, +10,249,38,248,130,247,189,245,151,244,51,245,7,246,196,245,141,244,140,242,207,239,244,236,253,234,122,234,6,235,228,235, +229,236,31,238,92,239,19,240,102,239,34,237,206,234,152,233,1,232,200,228,21,226,68,226,23,228,27,229,38,229,80,229, +185,229,170,229,167,228,228,226,253,224,109,223,141,222,144,222,203,222,36,222,68,221,40,222,104,224,106,225,231,224,186,224, +135,224,173,222,249,219,213,217,215,215,229,213,248,212,254,212,160,213,101,215,195,217,38,219,111,219,40,219,232,217,193,215, +147,213,134,211,251,209,47,210,247,211,127,213,32,214,242,214,170,216,170,218,177,219,205,218,10,216,107,212,67,209,98,207, +186,206,20,207,137,208,232,210,186,213,175,216,247,218,150,219,230,218,145,217,31,215,17,212,127,210,196,210,107,211,118,212, +174,214,73,217,81,219,235,220,26,222,104,222,176,221,12,220,228,217,20,216,78,215,193,215,46,217,65,219,9,222,42,225, +34,227,100,227,67,227,25,227,12,226,169,224,155,223,61,222,95,221,204,222,120,225,128,227,118,229,142,231,69,232,132,231, +72,230,196,228,250,227,250,228,252,229,58,229,179,228,200,230,65,234,115,236,157,236,223,235,76,235,181,234,185,233,232,232, +180,232,4,233,121,234,145,237,28,241,193,243,87,245,205,245,53,245,165,244,160,244,19,244,84,242,129,240,49,240,51,242, +66,246,218,250,180,253,175,253,58,252,184,251,118,252,201,252,240,251,239,250,214,250,190,251,53,253,232,254,1,1,125,3, +159,5,213,6,62,7,220,6,165,5,5,4,99,2,60,1,117,1,245,2,173,4,216,6,51,10,164,13,204,15,236,16, +229,16,182,14,5,11,195,7,223,5,201,5,240,7,69,11,50,14,201,16,89,19,144,20,133,19,34,17,67,14,75,11, +153,9,231,9,152,10,210,10,127,12,74,16,153,19,131,20,245,19,68,19,205,18,31,18,22,16,191,12,147,10,89,11, +164,13,30,15,91,15,183,15,149,17,73,20,34,21,229,18,212,15,178,14,65,15,255,14,39,13,65,12,66,14,57,17, +159,18,181,18,79,18,132,17,110,17,81,18,243,17,191,15,31,14,178,13,226,12,5,12,101,12,65,13,118,13,82,13, +47,13,183,12,225,11,98,11,211,11,121,12,34,12,89,11,99,11,182,11,76,11,134,10,148,9,47,8,135,7,132,8, +42,9,155,7,97,5,203,4,184,5,211,6,154,7,210,7,42,7,103,6,170,6,61,7,200,6,235,5,104,5,23,4, +241,1,56,1,169,2,238,4,75,7,203,8,12,8,43,6,59,5,125,4,216,2,146,1,90,1,87,1,167,1,116,2, +198,2,2,3,165,4,194,6,222,6,128,4,53,1,164,254,101,253,145,252,46,251,41,250,85,251,195,254,125,2,119,4, +98,4,146,3,226,2,146,1,29,255,185,252,101,251,221,249,198,246,52,244,223,245,106,251,191,255,129,255,207,252,27,251, +179,250,240,249,22,248,212,245,122,244,223,244,28,246,31,246,125,244,117,243,233,244,162,247,241,248,7,248,137,246,250,245, +81,245,171,242,70,239,170,238,118,241,224,244,215,246,213,246,27,245,29,244,234,245,69,247,230,243,39,238,89,235,50,236, +175,238,64,242,28,246,193,248,60,250,191,250,51,249,93,246,39,245,55,245,220,242,33,238,209,235,9,238,204,241,64,244, +239,244,39,244,166,243,144,245,18,248,27,247,30,243,54,240,192,239,253,239,182,239,73,239,34,240,251,242,189,245,226,245, +48,244,107,242,5,240,194,236,4,235,82,236,177,238,193,239,43,240,181,241,129,243,79,243,59,241,161,238,135,235,103,232, +212,230,171,230,64,231,179,233,153,237,217,239,7,240,186,240,240,241,41,241,111,237,169,231,214,225,161,222,15,223,230,225, +200,229,78,233,80,235,215,236,57,239,170,240,254,238,179,235,206,233,37,234,50,235,255,234,218,233,170,234,84,238,28,241, +237,239,83,237,109,237,150,239,27,240,158,238,115,238,24,241,107,244,43,246,233,245,156,244,80,244,34,246,105,248,90,249, +197,249,191,250,208,251,168,252,124,253,59,254,66,255,213,0,194,1,65,1,178,0,120,1,128,3,57,6,180,8,211,9, +246,9,58,10,246,9,253,7,206,5,32,6,236,8,183,11,93,13,196,14,115,16,58,18,119,20,16,23,120,24,218,23, +89,22,221,20,93,19,92,18,114,18,62,19,146,20,195,22,50,25,4,27,138,28,182,29,134,29,157,28,23,29,180,30, +41,31,94,30,149,30,212,32,18,36,249,38,194,40,103,41,148,41,207,41,48,42,140,42,76,42,64,41,180,40,174,41, +96,43,53,45,147,47,192,49,176,50,73,51,61,52,85,52,75,51,95,50,126,49,37,48,231,47,58,50,175,53,254,55, +195,56,10,57,120,57,146,57,155,56,194,54,42,53,212,52,145,53,14,54,144,53,21,53,165,53,236,54,54,56,185,56, +126,55,26,53,130,51,4,51,152,50,122,50,79,51,158,52,14,54,113,55,218,55,41,55,101,54,106,53,91,51,208,48, +223,46,156,45,243,44,252,44,72,45,88,45,54,45,19,45,147,44,251,42,154,40,23,39,10,39,49,39,207,38,43,38, +41,37,9,36,104,35,122,34,189,32,217,31,56,32,139,31,52,29,55,27,102,26,222,25,22,25,241,23,219,22,160,22, +215,22,85,22,24,21,152,19,186,17,175,15,201,13,244,11,167,10,79,10,252,9,246,8,4,8,171,7,159,7,212,7, +213,7,160,6,84,4,13,2,64,0,195,254,102,253,23,252,90,251,153,251,181,251,63,250,11,248,41,247,102,247,89,246, +94,243,246,240,220,240,146,241,186,241,60,242,59,243,57,243,84,242,2,242,216,241,164,240,26,239,16,238,145,236,66,234, +237,232,150,233,170,234,187,234,161,234,46,235,30,235,59,233,124,230,157,228,71,228,240,228,59,229,57,228,9,227,104,227, +229,228,134,229,133,228,135,226,66,224,41,222,133,220,152,219,209,219,61,221,248,222,12,224,63,224,145,223,23,222,88,220, +116,218,164,215,19,212,217,209,94,210,111,212,109,214,73,216,40,218,76,219,59,219,7,218,121,215,215,211,218,208,39,208, +77,209,186,210,53,212,182,214,189,217,17,219,173,217,194,214,241,211,111,210,133,210,150,210,95,209,198,208,180,210,89,213, +169,214,127,215,124,216,188,216,190,216,124,217,161,217,241,215,39,214,77,214,241,215,195,217,113,219,197,220,220,220,128,219, +50,218,116,218,0,220,182,221,233,222,51,223,210,222,224,222,164,223,248,223,98,223,206,222,236,222,185,223,243,224,10,226, +163,226,31,227,137,227,21,227,217,225,147,225,80,227,157,229,167,230,0,231,0,232,219,232,72,232,49,231,219,230,197,230, +141,230,243,230,244,231,167,232,227,232,66,233,81,234,36,236,12,238,67,239,233,239,71,240,45,240,233,239,34,240,190,240, +105,241,58,242,61,243,113,244,218,245,233,246,241,246,57,246,164,245,221,245,218,246,152,247,158,247,119,248,38,251,173,253, +39,254,153,253,54,253,141,252,223,251,50,252,250,252,87,253,110,254,10,1,72,3,210,3,132,4,187,6,76,8,44,7, +0,5,84,4,224,4,184,4,130,3,251,2,128,4,194,6,94,7,104,6,36,6,108,7,250,8,208,9,93,10,119,11, +252,12,167,13,255,12,85,12,124,12,123,12,179,11,232,10,161,10,177,10,252,10,139,11,121,12,183,13,129,14,152,14, +54,15,169,16,37,17,34,16,167,15,150,16,4,17,150,15,157,13,244,12,159,13,99,14,167,14,238,14,242,15,206,17, +185,19,198,20,72,21,25,22,74,22,71,20,59,17,185,15,90,15,147,13,130,10,115,9,168,12,162,18,146,23,160,24, +42,22,27,19,157,17,219,16,10,15,133,12,182,10,181,9,186,9,11,12,234,15,147,18,103,19,167,19,1,19,234,16, +95,14,93,11,84,7,145,4,132,5,29,8,96,9,58,10,103,12,115,14,247,13,246,10,105,7,57,5,237,4,65,5, +158,4,117,3,243,3,143,6,225,8,76,9,26,9,20,9,112,7,119,3,142,255,34,254,90,255,12,2,158,4,176,5, +61,5,4,4,100,2,246,0,85,0,122,255,71,253,135,251,186,252,198,255,163,1,180,1,82,1,62,1,139,1,194,1, +153,0,204,253,22,251,168,249,82,249,158,250,200,253,124,0,244,0,207,0,224,0,209,254,92,250,68,247,77,247,0,248, +187,247,194,247,37,249,187,251,254,254,0,1,39,255,21,250,220,245,212,244,69,245,32,245,17,245,174,246,132,249,119,251, +148,251,30,251,69,251,27,251,16,249,174,245,129,243,253,243,122,245,126,245,113,244,235,244,151,247,45,250,71,250,156,247, +45,244,154,242,18,243,71,243,157,242,105,243,196,246,120,250,253,251,44,251,183,249,171,248,223,246,111,243,169,240,17,241, +64,243,134,244,2,245,85,246,240,248,161,251,230,251,124,248,98,244,108,243,114,244,177,243,85,241,194,240,37,243,218,246, +82,250,159,252,189,252,247,250,118,249,76,249,212,248,179,246,231,243,196,241,183,240,53,241,33,243,38,245,109,246,99,247, +69,248,212,248,207,248,168,247,23,245,19,242,53,240,144,240,217,242,244,244,24,245,161,244,180,245,198,246,173,244,87,240, +247,237,161,238,229,238,180,236,14,235,120,237,213,242,25,247,190,247,133,245,207,243,183,244,5,245,210,240,69,235,12,234, +247,235,188,236,30,237,168,239,106,243,254,246,73,250,230,251,132,250,171,247,84,245,167,243,70,242,175,240,95,238,228,236, +15,239,159,244,17,250,59,253,184,254,73,255,20,255,159,254,253,253,36,252,48,249,73,247,196,247,239,249,63,253,146,1, +158,5,4,8,235,8,157,8,243,6,210,4,84,3,11,2,218,0,144,1,12,5,10,9,26,11,164,11,106,12,207,13, +238,14,39,15,146,14,157,13,222,12,211,12,178,13,150,15,26,18,2,20,159,20,245,20,217,21,128,22,100,22,71,22, +126,22,197,22,109,23,131,24,108,25,110,26,24,28,116,29,152,29,105,29,157,29,162,29,141,29,80,30,29,32,121,34, +193,36,57,38,5,39,211,39,14,40,23,39,115,38,71,39,241,39,78,39,242,38,6,40,177,41,29,43,249,43,37,44, +142,44,8,46,44,47,118,46,67,45,136,45,148,46,203,46,127,46,203,46,141,47,40,48,181,48,81,49,136,49,18,49, +23,48,230,46,16,46,231,45,207,45,100,45,126,45,86,46,160,46,34,46,61,46,241,46,184,46,100,45,21,44,110,43, +193,43,237,44,83,45,219,43,97,42,220,42,213,43,49,43,222,41,54,41,16,40,209,37,102,36,160,36,15,37,127,37, +159,38,42,39,40,38,230,36,146,35,19,33,1,31,80,31,210,31,92,30,33,29,252,29,253,30,160,30,234,29,135,29, +219,28,97,27,47,25,39,23,73,22,51,22,247,21,188,21,186,21,30,21,136,19,176,17,36,16,246,14,52,14,164,13, +190,12,91,11,250,9,56,9,31,9,0,9,70,8,57,7,102,6,195,5,191,4,23,3,94,1,108,0,18,0,88,255, +35,254,81,253,243,252,237,251,193,249,179,247,57,247,215,247,196,247,137,246,117,245,91,245,114,245,180,244,41,243,169,241, +202,240,97,240,46,240,62,240,101,240,127,240,244,240,104,241,75,240,125,237,26,235,98,234,82,234,233,233,120,233,168,233, +88,234,72,234,161,232,198,230,125,230,25,231,1,231,66,230,141,229,26,229,68,229,188,229,48,229,197,227,36,227,39,227, +36,226,127,224,255,223,120,224,101,224,173,223,126,223,35,224,139,224,183,223,241,221,65,220,78,219,27,219,58,219,25,219, +212,218,35,219,242,219,53,220,168,219,3,219,147,218,79,218,145,218,60,219,130,219,97,219,109,219,72,219,143,218,1,218, +168,217,48,216,1,214,147,213,84,215,46,217,97,218,186,219,2,221,239,221,41,223,205,223,213,221,79,218,141,216,28,217, +236,217,47,218,90,218,124,218,243,218,143,220,218,222,84,224,115,224,10,224,240,223,32,224,251,223,48,223,36,222,80,221, +223,220,8,221,13,222,182,223,24,225,139,225,188,225,185,226,188,227,17,227,65,225,86,224,138,224,27,225,138,226,219,228, +60,230,211,229,221,228,83,228,86,228,11,229,250,229,85,230,129,230,31,231,161,231,199,231,69,232,236,232,241,232,6,233, +108,234,172,236,91,238,234,238,154,238,1,238,188,237,159,237,1,237,115,236,108,237,172,239,109,241,126,242,44,244,21,246, +64,246,179,244,167,243,31,244,230,244,27,245,96,245,42,246,199,246,2,247,211,247,72,249,234,249,94,249,252,248,26,249, +4,249,61,249,95,250,99,251,199,251,184,252,116,254,198,255,102,0,183,0,87,0,70,255,130,254,109,254,109,254,64,254, +26,254,43,254,221,254,177,0,85,3,113,5,13,6,226,5,62,6,215,6,102,6,244,4,164,3,35,3,174,3,14,5, +83,6,44,7,136,8,124,10,169,11,128,11,194,10,244,9,87,9,101,9,15,10,203,10,126,11,37,12,95,12,40,12, +18,12,127,12,95,13,62,14,110,14,35,14,226,14,50,17,232,18,223,17,90,15,63,14,252,14,182,15,124,15,247,14, +237,14,184,15,50,17,159,18,150,19,97,20,180,20,131,19,247,16,223,14,191,14,51,16,83,17,188,16,59,15,175,14, +191,15,177,17,105,19,158,19,11,18,120,16,144,16,137,17,223,17,186,17,15,18,176,18,76,18,57,16,20,14,17,14, +138,15,232,15,8,15,9,15,37,16,162,16,48,16,252,15,88,16,107,16,180,15,170,14,33,14,105,14,23,15,76,15, +61,14,64,12,21,11,238,11,204,13,253,14,48,15,242,14,131,14,244,13,50,13,245,11,110,10,151,9,250,9,186,10, +195,10,136,10,50,11,34,12,98,11,7,9,141,7,85,8,48,10,121,11,87,11,141,9,27,7,19,6,4,7,177,7, +46,6,41,4,181,4,53,7,211,7,139,5,226,3,23,5,179,6,243,5,28,4,187,3,75,4,94,3,131,0,152,253, +70,252,27,253,152,255,7,2,249,2,246,2,123,2,122,0,164,253,216,252,235,253,191,253,184,252,229,253,16,0,80,255, +255,251,181,249,161,249,72,250,106,250,2,250,59,250,15,252,239,253,70,253,160,250,222,248,127,248,170,247,100,246,162,246, +148,248,77,250,182,250,64,250,108,249,41,248,27,246,153,243,188,242,5,245,192,247,33,247,208,244,102,245,74,248,117,248, +76,244,138,239,120,238,172,241,60,245,205,244,129,241,135,240,50,243,198,245,12,246,25,245,103,243,218,240,255,238,5,239, +178,239,56,240,161,241,226,243,72,245,87,245,170,244,10,243,232,240,248,239,6,240,105,239,101,239,90,242,31,246,182,246, +198,244,154,243,152,243,22,243,87,241,194,238,242,236,227,237,7,241,130,243,62,244,109,244,53,244,175,242,130,240,48,239, +159,238,232,237,173,237,94,239,94,242,17,244,93,243,94,242,79,243,6,245,127,244,62,241,189,237,117,235,150,233,17,232, +115,232,36,235,217,238,102,242,131,244,1,244,241,241,96,240,240,238,214,236,15,236,208,237,100,239,192,238,180,237,16,238, +105,239,100,241,137,243,180,243,252,240,94,238,167,238,30,240,201,239,187,238,22,240,96,243,39,245,126,244,24,244,175,245, +101,247,152,246,226,243,153,242,88,244,251,246,45,248,140,248,181,249,141,251,208,252,167,252,150,251,73,251,123,252,138,253, +64,253,37,253,149,254,55,0,162,0,182,0,165,1,77,3,68,5,36,7,207,7,174,6,49,5,246,4,99,5,10,5, +73,4,194,4,59,7,21,11,170,14,112,16,197,16,39,17,93,17,41,16,104,14,209,13,6,14,14,14,100,14,104,15, +155,16,39,18,43,20,126,21,153,21,179,21,113,22,3,23,71,23,43,24,133,25,251,25,97,25,56,25,67,26,139,27, +87,28,26,29,233,29,39,30,209,29,142,29,227,29,29,31,227,32,36,34,132,34,202,34,73,35,167,35,217,35,193,35, +23,35,125,34,164,34,242,34,15,35,9,36,22,38,215,39,180,40,34,41,247,40,35,40,191,39,63,40,109,40,147,39, +167,38,118,38,185,38,36,39,157,39,193,39,152,39,208,39,84,40,57,40,128,39,7,39,229,38,163,38,101,38,182,38, +206,39,46,41,159,41,196,40,26,40,111,40,68,40,221,38,170,37,19,37,214,35,66,34,236,33,151,34,243,34,250,34, +57,35,125,35,108,35,220,34,139,33,168,31,33,30,127,29,73,29,70,29,23,30,135,31,233,31,189,30,177,29,108,29, +51,28,65,25,52,22,125,20,43,20,228,20,255,21,202,22,104,23,17,24,97,24,35,24,42,23,235,20,34,18,170,16, +39,16,99,14,172,11,144,10,157,11,52,13,69,14,136,14,252,13,83,13,218,12,121,11,221,8,159,6,129,5,87,4, +217,2,52,2,108,2,143,2,178,2,202,2,141,1,251,254,4,253,41,252,37,251,21,250,46,250,33,251,193,251,189,251, +44,251,80,250,181,249,239,248,188,246,167,243,3,242,152,242,162,243,127,243,155,242,86,242,234,242,75,243,236,242,68,242, +143,241,130,240,17,239,96,237,176,235,181,234,224,234,157,235,54,236,128,236,112,236,61,236,62,236,6,236,21,235,2,234, +104,233,222,232,244,231,200,230,185,229,178,229,2,231,223,231,190,230,40,229,32,229,220,229,156,229,61,228,139,226,104,225, +142,225,117,226,157,226,229,225,160,225,49,226,168,226,167,226,180,226,234,226,208,226,56,226,49,225,147,223,174,221,160,220, +237,220,154,221,218,221,137,222,124,224,71,226,180,225,3,223,197,220,118,220,52,221,173,221,164,221,224,221,138,223,117,226, +29,228,140,226,84,223,97,221,96,221,25,222,75,222,190,221,243,221,73,224,252,226,93,227,72,226,99,226,135,227,195,227, +153,226,10,225,97,224,82,225,1,227,29,228,194,228,100,229,91,229,141,228,41,228,111,228,93,228,227,227,44,228,164,229, +41,231,100,231,135,230,61,230,94,231,187,232,253,232,109,232,21,232,7,232,151,231,1,231,101,231,176,232,42,233,62,232, +115,231,185,231,128,232,196,233,199,235,109,237,198,237,218,237,119,238,132,238,77,237,195,235,214,234,247,234,149,236,228,238, +233,239,127,239,146,239,183,240,189,241,92,242,225,242,164,242,179,241,86,241,134,241,109,241,232,241,175,243,21,245,3,245, +201,244,58,245,197,245,128,246,150,247,60,248,101,248,17,249,53,250,213,250,153,250,212,249,39,249,73,249,14,250,178,250, +74,251,54,252,235,252,43,253,171,253,153,254,81,255,170,255,223,255,219,255,181,255,222,255,80,0,94,0,237,255,63,0, +74,2,148,4,249,4,37,4,22,4,82,4,108,3,67,2,51,2,188,2,105,3,195,4,98,6,109,7,81,8,73,9, +49,9,194,7,114,6,27,6,61,6,141,6,63,7,76,8,180,9,114,11,235,12,157,13,201,13,101,13,2,12,130,10, +91,10,0,11,240,10,207,10,48,12,146,14,99,16,45,17,251,16,196,15,46,14,38,13,222,12,36,13,227,13,253,14, +71,16,108,17,0,18,32,18,48,18,234,17,2,17,11,16,160,15,181,15,37,16,192,16,59,17,190,17,132,18,48,19, +86,19,191,18,88,17,1,16,218,15,62,16,48,16,168,16,32,18,229,18,157,18,213,18,231,18,37,17,78,15,245,15, +240,17,222,18,206,18,142,18,12,18,159,17,250,17,225,18,117,19,25,19,199,17,103,16,15,16,95,16,22,16,132,15, +29,16,147,17,242,17,183,16,155,15,0,16,53,17,120,17,19,16,77,14,223,13,152,14,249,14,250,14,200,15,16,17, +49,17,22,16,49,15,202,14,133,13,11,11,70,9,191,9,97,11,80,12,155,12,105,13,196,14,115,15,76,14,196,11, +44,10,186,10,54,11,123,9,104,7,228,7,109,10,118,12,187,12,184,11,215,10,240,10,199,10,142,8,236,4,158,2, +127,3,193,6,117,9,138,9,118,8,201,8,219,9,29,9,17,6,60,2,122,255,148,255,96,2,229,4,96,5,123,5, +39,6,174,5,238,3,90,3,67,4,210,3,219,0,3,254,217,253,82,255,177,255,197,254,216,254,103,0,13,1,181,255, +113,254,202,254,127,255,47,255,44,254,43,253,146,252,154,252,128,252,65,251,209,249,22,250,150,251,14,252,189,250,202,248, +159,247,25,248,222,249,95,251,144,251,166,250,240,248,239,246,235,245,104,246,63,247,150,247,226,247,84,248,52,248,55,247, +29,246,162,245,119,245,4,245,195,244,88,245,22,246,123,246,155,247,177,249,152,250,148,248,99,244,97,240,57,239,146,241, +85,244,122,244,192,243,84,245,8,248,118,248,167,246,137,245,238,245,45,245,176,241,132,238,53,239,240,241,179,242,248,241, +180,242,212,244,197,246,116,248,102,249,60,248,134,245,202,242,174,239,0,236,24,234,154,235,204,238,123,241,118,243,223,244, +71,245,243,244,89,244,12,243,44,241,29,240,41,240,164,239,103,237,117,234,27,233,17,235,102,239,219,242,164,243,48,243, +42,243,85,243,192,242,178,240,54,237,244,233,162,232,154,232,151,232,123,233,107,236,215,239,16,241,197,239,62,238,99,238, +127,239,118,239,154,237,141,235,104,235,110,237,135,239,149,239,68,238,250,237,90,239,162,240,237,239,16,237,68,234,143,234, +7,238,113,241,202,242,73,243,71,244,116,245,22,246,117,245,53,243,136,240,29,239,2,239,160,239,117,241,186,244,0,248, +176,249,167,249,10,249,47,249,61,250,185,250,152,249,8,248,178,247,121,248,110,249,113,250,187,251,53,253,181,254,209,255, +238,255,45,255,120,254,121,254,106,255,253,0,2,2,227,1,7,2,138,3,13,5,87,5,138,5,139,6,77,7,50,7, +0,7,35,7,121,7,53,8,56,9,225,9,68,10,238,10,141,11,114,11,250,10,47,11,116,12,51,14,166,15,148,16, +89,17,91,18,116,19,218,19,19,19,242,17,210,17,229,18,58,20,7,21,48,21,101,21,178,22,158,24,93,25,11,25, +200,25,161,27,137,28,73,28,24,28,176,27,192,26,138,26,89,27,227,27,52,28,101,29,255,30,252,31,221,32,87,34, +181,35,4,36,101,35,137,34,208,33,25,33,62,32,155,31,216,31,35,33,238,34,119,36,62,37,64,37,16,37,48,37, +14,37,182,35,228,33,121,33,105,34,196,34,17,34,201,33,170,34,11,36,17,37,43,37,103,36,183,35,165,35,113,35, +116,34,65,33,186,32,201,32,166,32,77,32,177,32,219,33,97,34,200,33,37,33,192,32,192,31,46,30,241,28,144,28, +237,28,34,29,124,28,54,28,162,29,7,31,19,30,236,27,252,26,34,27,242,26,14,26,192,24,142,23,66,23,249,23, +198,24,192,24,207,23,138,22,116,21,101,20,55,19,107,18,20,18,104,17,110,16,88,16,86,17,9,18,149,17,115,16, +40,15,231,13,16,13,154,12,158,11,212,9,129,8,123,8,184,8,66,8,188,7,186,7,150,7,196,6,115,5,231,3, +149,2,25,2,17,2,85,1,1,0,134,255,69,0,203,0,29,0,8,255,88,254,131,253,5,252,114,250,127,249,74,249, +168,249,23,250,13,250,226,249,9,250,156,249,169,247,42,245,200,243,164,243,208,243,173,243,16,243,74,242,17,242,148,242, +3,243,134,242,28,241,126,239,108,238,200,237,225,236,2,236,96,236,236,237,16,239,30,239,209,238,73,238,220,236,208,234, +60,233,102,232,231,231,191,231,60,232,71,233,68,234,116,234,181,233,202,232,52,232,102,231,41,230,154,229,81,230,238,230, +56,230,38,229,42,229,230,229,54,230,20,230,34,230,74,230,237,229,238,228,239,227,125,227,148,227,1,228,145,228,182,228, +243,227,210,226,70,226,90,226,127,226,115,226,55,226,238,225,17,226,211,226,189,227,125,228,27,229,58,229,110,228,43,227, +33,226,34,225,243,223,118,223,131,224,87,226,187,227,197,228,231,229,160,230,167,230,133,230,56,230,74,229,253,227,140,226, +223,224,240,223,234,224,18,227,37,229,21,231,131,232,185,232,155,232,35,233,247,232,11,231,35,229,225,228,51,229,201,228, +119,228,132,229,129,231,10,233,168,233,232,233,22,234,225,233,14,233,253,231,158,231,124,232,240,233,58,235,162,236,14,238, +101,238,166,237,254,236,105,236,91,235,199,234,154,235,60,237,17,239,216,240,182,241,139,241,156,241,41,242,233,241,176,240, +175,239,96,239,140,239,108,240,235,241,68,243,74,244,101,245,53,246,28,246,203,245,10,246,254,245,243,244,71,244,67,245, +2,247,36,248,137,248,156,248,206,248,90,249,142,249,212,248,71,248,1,249,68,250,43,251,12,252,250,252,109,253,143,253, +163,253,75,253,179,252,171,252,10,253,62,253,215,253,94,255,210,0,44,1,250,0,36,1,169,1,58,2,172,2,167,2, +8,2,117,1,189,1,223,2,8,4,105,4,41,4,99,4,172,5,41,7,196,7,130,7,241,6,77,6,217,5,251,5, +139,6,248,6,65,7,185,7,65,8,195,8,169,9,210,10,88,11,49,11,83,11,163,11,11,11,192,9,251,8,221,8, +222,8,73,9,131,10,248,11,1,13,144,13,156,13,16,13,65,12,140,11,238,10,93,10,4,10,0,10,106,10,74,11, +87,12,66,13,55,14,77,15,198,15,22,15,244,13,82,13,21,13,197,12,91,12,246,11,209,11,97,12,140,13,129,14, +243,14,98,15,222,15,6,16,22,16,145,16,4,17,141,16,131,15,16,15,72,15,69,15,10,15,75,15,189,15,187,15, +232,15,44,17,188,18,24,19,90,18,177,17,44,17,248,15,132,14,14,14,106,14,180,14,97,15,226,16,237,17,159,17, +40,17,90,17,45,17,222,15,76,14,157,13,233,13,100,14,166,14,69,15,108,16,18,17,152,16,169,15,211,14,28,14, +190,13,185,13,161,13,137,13,177,13,166,13,49,13,28,13,201,13,88,14,2,14,34,13,135,12,135,12,9,13,164,13, +128,13,79,12,84,11,197,11,127,12,228,11,218,10,16,11,251,11,248,11,195,10,117,9,100,9,169,10,88,11,242,9, +45,8,132,8,14,10,227,9,189,7,39,6,156,6,223,7,46,8,55,7,202,5,244,4,62,5,177,5,231,4,190,3, +52,4,131,5,27,5,86,3,185,2,86,3,44,3,1,2,91,1,167,1,225,1,125,1,3,1,189,0,14,0,177,254, +138,253,45,253,38,253,142,253,26,255,248,0,132,1,49,1,97,1,61,1,54,255,244,251,250,248,209,246,95,246,131,248, +171,251,123,253,68,254,57,255,104,255,192,253,86,251,63,249,66,247,213,245,41,246,205,247,30,249,229,249,7,251,29,252, +210,251,94,250,80,249,255,248,64,248,198,246,213,245,48,246,240,246,0,247,151,246,151,246,76,247,97,248,58,249,226,248, +12,247,41,245,158,244,103,244,37,243,41,242,100,243,216,245,244,246,245,245,40,244,79,243,104,244,125,246,26,247,125,245, +230,243,239,243,220,243,218,241,144,239,160,239,235,241,157,244,165,246,109,247,178,246,118,245,220,244,87,244,214,242,232,240, +56,240,125,241,115,243,61,244,15,244,209,244,98,246,53,246,12,244,211,242,133,243,245,243,140,243,23,244,114,245,127,245, +112,244,142,244,6,246,172,246,136,245,254,243,197,243,221,244,156,245,2,245,77,244,242,244,117,246,224,247,251,248,4,249, +99,247,157,245,57,245,17,245,226,243,254,242,232,243,220,245,132,247,212,248,57,250,76,251,22,251,114,249,188,247,91,247, +205,247,81,247,162,245,175,244,206,245,197,247,251,248,196,249,197,250,60,251,135,250,85,249,97,248,222,247,196,247,162,247, +71,247,164,247,124,249,3,252,225,253,21,254,44,252,100,249,242,247,248,247,178,247,2,247,123,247,59,249,203,250,148,251, +237,251,182,251,180,250,114,249,109,248,71,247,232,245,96,245,112,246,111,248,115,250,30,252,254,252,183,252,197,251,218,250, +9,250,30,249,49,248,174,247,234,247,130,248,231,248,192,249,226,251,11,254,57,254,206,252,142,251,166,250,151,249,80,249, +167,250,120,252,103,253,182,253,21,254,81,254,3,254,85,253,224,252,71,253,139,254,182,255,22,0,29,0,80,0,125,0, +127,0,114,0,48,0,223,255,64,0,116,1,141,2,15,3,138,3,96,4,37,5,110,5,89,5,89,5,200,5,83,6, +10,6,7,5,4,5,205,6,139,8,178,8,151,8,183,9,14,11,58,11,222,10,48,11,13,12,109,12,243,11,130,11, +0,12,224,12,44,13,13,13,237,12,158,12,125,12,59,13,71,14,206,14,71,15,32,16,208,16,66,17,205,17,236,17, +81,17,16,17,199,17,96,18,30,18,227,17,100,18,8,19,87,19,192,19,113,20,4,21,158,21,157,22,84,23,217,22, +223,21,217,21,165,22,235,22,114,22,114,22,103,23,57,24,12,24,125,23,103,23,218,23,186,24,246,25,246,26,48,27, +0,27,224,26,140,26,229,25,155,25,249,25,32,26,131,25,9,25,118,25,41,26,145,26,21,27,166,27,149,27,44,27, +25,27,205,26,195,25,223,24,227,24,70,25,143,25,2,26,157,26,250,26,223,26,85,26,189,25,179,25,28,26,243,25, +243,24,57,24,87,24,74,24,120,23,197,22,197,22,226,22,190,22,139,22,100,22,107,22,154,22,80,22,117,21,227,20, +157,20,217,19,255,18,196,18,117,18,194,17,201,17,192,18,93,19,8,19,38,18,9,17,21,16,102,15,117,14,107,13, +72,13,196,13,127,13,146,12,82,12,184,12,105,12,13,11,169,9,219,8,68,8,181,7,132,7,166,7,169,7,142,7, +116,7,240,6,186,5,96,4,136,3,19,3,140,2,255,1,252,1,152,2,214,2,230,1,149,0,255,255,137,255,251,253, +231,251,191,250,110,250,44,250,110,250,170,251,181,252,132,252,218,251,147,251,51,251,26,250,102,248,136,246,42,245,204,244, +230,244,164,244,91,244,212,244,210,245,124,246,96,246,117,245,249,243,153,242,226,241,146,241,22,241,112,240,240,239,143,239, +52,239,36,239,138,239,17,240,44,240,135,239,91,238,64,237,85,236,100,235,230,234,97,235,50,236,212,236,226,237,19,239, +201,238,11,237,167,235,223,234,112,233,160,231,240,230,121,231,3,232,40,232,148,232,143,233,123,234,219,234,219,234,165,234, +39,234,123,233,157,232,99,231,48,230,191,229,31,230,241,230,242,231,141,232,48,232,99,231,17,231,33,231,254,230,174,230, +124,230,114,230,122,230,137,230,126,230,64,230,243,229,236,229,58,230,104,230,36,230,216,229,252,229,104,230,201,230,32,231, +102,231,116,231,104,231,127,231,117,231,234,230,70,230,53,230,149,230,223,230,72,231,49,232,46,233,169,233,196,233,179,233, +57,233,117,232,13,232,30,232,33,232,67,232,60,233,129,234,195,234,105,234,1,235,77,236,183,236,10,236,56,235,168,234, +142,234,53,235,44,236,205,236,67,237,170,237,144,237,18,237,246,236,111,237,238,237,17,238,40,238,178,238,116,239,181,239, +143,239,212,239,158,240,96,241,238,241,77,242,92,242,73,242,102,242,148,242,176,242,246,242,111,243,184,243,211,243,83,244, +102,245,90,246,158,246,146,246,156,246,127,246,83,246,189,246,154,247,241,247,148,247,112,247,41,248,98,249,75,250,129,250, +110,250,197,250,159,251,67,252,213,251,134,250,216,249,201,250,96,252,76,253,187,253,80,254,226,254,43,255,57,255,19,255, +245,254,27,255,4,255,80,254,4,254,33,255,221,0,231,1,70,2,168,2,40,3,144,3,210,3,210,3,145,3,119,3, +202,3,45,4,24,4,186,3,227,3,230,4,3,6,157,6,45,7,230,7,220,7,252,6,174,6,79,7,183,7,199,7, +112,8,108,9,224,9,43,10,224,10,132,11,135,11,47,11,2,11,11,11,254,10,31,11,42,12,189,13,102,14,31,14, +84,14,12,15,13,15,121,14,125,14,26,15,100,15,1,15,93,14,41,14,189,14,153,15,23,16,125,16,104,17,105,18, +129,18,214,17,158,17,33,18,68,18,170,17,136,17,129,18,102,19,6,19,219,17,46,17,88,17,156,17,139,17,168,17, +96,18,87,19,2,20,30,20,151,19,226,18,191,18,10,19,243,18,127,18,126,18,22,19,146,19,137,19,84,19,105,19, +163,19,122,19,210,18,44,18,36,18,225,18,199,19,250,19,122,19,23,19,8,19,165,18,205,17,44,17,22,17,76,17, +176,17,12,18,223,17,58,17,15,17,209,17,165,18,145,18,178,17,228,16,170,16,124,16,135,15,75,14,46,14,1,15, +50,15,181,14,221,14,105,15,9,15,25,14,222,13,44,14,30,14,181,13,108,13,46,13,125,12,94,11,143,10,106,10, +49,10,110,9,244,8,115,9,96,10,241,10,15,11,228,10,123,10,197,9,172,8,76,7,35,6,179,5,193,5,113,5, +192,4,217,4,226,5,71,6,150,5,60,5,118,5,233,4,175,3,2,3,180,2,51,2,63,2,55,3,7,4,3,4, +148,3,1,3,88,2,218,1,74,1,12,0,184,254,229,254,181,0,43,2,213,1,190,0,125,0,192,0,29,0,112,254, +235,252,92,252,137,252,252,252,99,253,124,253,116,253,230,253,160,254,105,254,246,252,169,251,98,251,46,251,40,250,26,249, +56,249,81,250,52,251,46,251,147,250,26,250,22,250,33,250,147,249,127,248,160,247,55,247,54,247,251,247,38,249,33,249, +195,247,15,247,136,247,83,247,47,246,1,246,230,246,252,246,20,246,184,245,16,246,0,246,155,245,219,245,135,246,120,246, +124,245,136,244,77,244,110,244,39,244,141,243,215,243,115,245,150,246,163,245,234,243,155,243,68,244,232,243,113,242,226,241, +35,243,111,244,28,244,126,243,131,244,23,246,93,246,254,245,198,245,157,244,192,242,84,242,13,243,133,242,12,241,42,241, +244,242,74,244,161,244,41,245,24,246,91,246,131,245,78,244,91,243,203,242,218,242,131,243,29,244,124,244,57,245,13,246, +217,245,207,244,47,244,238,243,53,243,152,242,27,243,14,244,113,244,253,244,138,246,10,248,27,248,244,246,112,245,226,243, +211,242,36,243,147,244,133,245,65,245,42,245,128,246,25,248,93,248,236,247,243,247,185,247,97,246,2,245,210,244,112,245, +36,246,3,247,75,248,191,249,146,250,13,250,192,248,23,248,93,248,115,248,209,247,80,247,208,247,28,249,103,250,56,251, +150,251,171,251,171,251,164,251,34,251,218,249,187,248,45,249,2,251,104,252,98,252,41,252,33,253,128,254,155,254,160,253, +219,252,91,252,192,251,179,251,127,252,13,253,217,252,254,252,85,254,243,255,74,0,83,255,167,254,237,254,211,254,202,253, +96,253,73,254,60,255,182,255,133,0,40,1,76,0,201,254,208,254,76,0,208,0,106,255,18,254,134,254,184,255,244,255, +195,255,134,0,162,1,127,1,125,0,92,0,14,1,216,0,172,255,138,255,241,0,208,1,5,1,40,0,194,0,2,2, +95,2,195,1,9,1,152,0,86,0,44,0,254,255,175,255,130,255,234,255,203,0,78,1,232,0,100,0,242,0,254,1, +149,1,144,255,52,254,208,254,42,0,233,0,60,1,213,1,184,2,42,3,152,2,153,1,54,1,52,1,163,0,188,255, +124,255,19,0,244,0,149,1,168,1,105,1,159,1,145,2,98,3,21,3,3,2,148,1,46,2,169,2,113,2,115,2, +47,3,212,3,193,3,57,3,221,2,35,3,184,3,169,3,21,3,79,3,163,4,216,5,54,6,39,6,30,6,61,6, +116,6,123,6,53,6,243,5,216,5,209,5,54,6,83,7,127,8,237,8,218,8,207,8,130,8,198,7,104,7,215,7, +90,8,138,8,243,8,215,9,188,10,48,11,5,11,93,10,193,9,123,9,89,9,107,9,236,9,111,10,118,10,99,10, +191,10,95,11,210,11,197,11,55,11,230,10,147,11,158,12,205,12,125,12,255,12,32,14,130,14,3,14,151,13,124,13, +101,13,141,13,10,14,80,14,75,14,186,14,213,15,176,16,133,16,205,15,120,15,126,15,61,15,200,14,167,14,228,14, +123,15,136,16,105,17,110,17,56,17,132,17,185,17,60,17,130,16,250,15,165,15,160,15,237,15,96,16,248,16,147,17, +214,17,179,17,54,17,94,16,147,15,39,15,188,14,83,14,117,14,189,14,117,14,97,14,95,15,113,16,127,16,40,16, +32,16,216,15,245,14,30,14,175,13,53,13,158,12,140,12,43,13,180,13,155,13,53,13,239,12,171,12,47,12,166,11, +101,11,105,11,87,11,248,10,130,10,89,10,149,10,196,10,91,10,164,9,103,9,129,9,35,9,120,8,75,8,93,8, +247,7,94,7,38,7,43,7,33,7,253,6,148,6,216,5,68,5,55,5,67,5,188,4,189,3,26,3,43,3,61,3, +168,2,235,1,212,1,254,1,112,1,122,0,96,0,16,1,31,1,31,0,35,255,213,254,196,254,103,254,186,253,27,253, +208,252,143,252,238,251,72,251,18,251,255,250,203,250,189,250,196,250,113,250,232,249,151,249,79,249,165,248,201,247,102,247, +158,247,162,247,252,246,128,246,207,246,12,247,104,246,160,245,175,245,79,246,132,246,251,245,85,245,9,245,131,244,93,243, +127,242,166,242,30,243,58,243,66,243,91,243,87,243,103,243,115,243,231,242,249,241,142,241,128,241,230,240,237,239,181,239, +94,240,221,240,191,240,195,240,102,241,21,242,32,242,144,241,197,240,224,239,204,238,174,237,16,237,71,237,219,237,55,238, +150,238,97,239,58,240,105,240,213,239,242,238,44,238,189,237,149,237,99,237,7,237,242,236,129,237,86,238,191,238,153,238, +93,238,111,238,127,238,226,237,227,236,184,236,105,237,137,237,219,236,190,236,131,237,45,238,136,238,212,238,159,238,231,237, +120,237,103,237,53,237,25,237,85,237,137,237,172,237,61,238,17,239,133,239,139,239,131,239,123,239,104,239,105,239,80,239, +172,238,230,237,44,238,150,239,179,240,177,240,116,240,201,240,26,241,159,240,218,239,241,239,224,240,102,241,29,241,36,241, +252,241,174,242,139,242,250,241,144,241,181,241,135,242,87,243,116,243,60,243,69,243,125,243,223,243,146,244,40,245,15,245, +159,244,170,244,27,245,15,245,88,244,10,244,186,244,127,245,178,245,23,246,27,247,6,248,129,248,208,248,187,248,50,248, +249,247,59,248,38,248,173,247,190,247,146,248,136,249,96,250,43,251,192,251,14,252,59,252,57,252,227,251,73,251,190,250, +217,250,235,251,45,253,144,253,109,253,238,253,45,255,42,0,23,0,39,255,138,254,27,255,248,255,237,255,160,255,48,0, +4,1,49,1,52,1,164,1,64,2,221,2,84,3,40,3,132,2,102,2,7,3,129,3,130,3,206,3,219,4,247,5, +78,6,13,6,221,5,221,5,193,5,103,5,245,4,184,4,12,5,252,5,19,7,208,7,52,8,182,8,105,9,174,9, +43,9,103,8,207,7,64,7,223,6,6,7,150,7,126,8,243,9,101,11,228,11,190,11,210,11,202,11,244,10,211,9, +72,9,70,9,117,9,5,10,38,11,94,12,29,13,104,13,124,13,93,13,19,13,189,12,80,12,221,11,198,11,1,12, +20,12,53,12,22,13,89,14,206,14,94,14,54,14,198,14,0,15,27,14,240,12,198,12,108,13,182,13,139,13,236,13, +233,14,102,15,45,15,43,15,91,15,202,14,181,13,69,13,151,13,12,14,146,14,22,15,50,15,11,15,3,15,236,14, +173,14,180,14,21,15,91,15,40,15,105,14,146,13,145,13,109,14,232,14,94,14,180,13,199,13,70,14,137,14,147,14, +210,14,82,15,154,15,72,15,105,14,112,13,233,12,232,12,1,13,32,13,136,13,207,13,117,13,17,13,38,13,23,13, +175,12,159,12,181,12,18,12,36,11,20,11,243,11,221,12,28,13,172,12,53,12,57,12,41,12,83,11,46,10,133,9, +71,9,36,9,38,9,49,9,48,9,129,9,42,10,64,10,94,9,119,8,64,8,29,8,126,7,195,6,95,6,86,6, +164,6,24,7,56,7,240,6,165,6,90,6,179,5,225,4,145,4,200,4,194,4,51,4,217,3,58,4,183,4,105,4, +106,3,157,2,120,2,113,2,210,1,1,1,25,1,42,2,230,2,95,2,48,1,201,0,153,1,40,2,225,0,172,254, +229,253,230,254,196,255,84,255,109,254,50,254,178,254,66,255,93,255,8,255,146,254,11,254,44,253,4,252,108,251,0,252, +224,252,240,252,183,252,28,253,132,253,20,253,73,252,226,251,200,251,144,251,229,250,254,249,196,249,112,250,249,250,224,250, +202,250,235,250,222,250,140,250,227,249,245,248,125,248,185,248,233,248,244,248,127,249,24,250,207,249,13,249,192,248,212,248, +205,248,168,248,124,248,75,248,30,248,211,247,84,247,32,247,190,247,192,248,41,249,224,248,168,248,172,248,44,248,227,246, +203,245,227,245,229,246,207,247,61,248,121,248,167,248,176,248,151,248,71,248,171,247,56,247,64,247,34,247,127,246,67,246, +243,246,142,247,101,247,74,247,247,247,212,248,10,249,174,248,58,248,175,247,227,246,69,246,114,246,65,247,5,248,72,248, +246,247,118,247,118,247,227,247,196,247,231,246,115,246,55,247,123,248,20,249,182,248,2,248,170,247,191,247,185,247,50,247, +166,246,7,247,70,248,27,249,253,248,251,248,170,249,8,250,89,249,90,248,243,247,43,248,166,248,27,249,64,249,9,249, +11,249,231,249,12,251,27,251,32,250,144,249,157,249,44,249,162,248,128,249,106,251,170,252,234,252,212,252,103,252,143,251, +220,250,152,250,115,250,98,250,186,250,105,251,228,251,248,251,60,252,87,253,215,254,68,255,251,253,81,252,225,251,83,252, +71,252,206,251,41,252,138,253,203,254,41,255,238,254,181,254,195,254,204,254,60,254,34,253,123,252,244,252,247,253,144,254, +172,254,221,254,110,255,5,0,253,255,42,255,69,254,11,254,54,254,86,254,206,254,191,255,59,0,233,255,200,255,89,0, +197,0,97,0,159,255,63,255,87,255,95,255,43,255,92,255,32,0,113,0,204,255,65,255,162,255,74,0,124,0,124,0, +183,0,11,1,36,1,230,0,113,0,6,0,252,255,92,0,143,0,61,0,47,0,0,1,169,1,55,1,176,0,76,1, +79,2,85,2,93,1,133,0,185,0,215,1,163,2,21,2,194,0,19,0,100,0,230,0,35,1,151,1,159,2,170,3, +239,3,111,3,208,2,114,2,66,2,41,2,51,2,97,2,171,2,4,3,34,3,175,2,23,2,88,2,93,3,198,3, +12,3,77,2,88,2,171,2,199,2,220,2,38,3,196,3,150,4,224,4,56,4,134,3,168,3,213,3,8,3,218,1, +135,1,21,2,177,2,246,2,23,3,104,3,7,4,173,4,224,4,140,4,41,4,255,3,179,3,242,2,63,2,91,2, +9,3,83,3,254,2,213,2,93,3,25,4,60,4,168,3,10,3,250,2,56,3,55,3,29,3,111,3,37,4,177,4, +158,4,243,3,76,3,38,3,29,3,143,2,207,1,177,1,99,2,100,3,3,4,223,3,124,3,175,3,254,3,56,3, +194,1,58,1,229,1,155,2,235,2,88,3,231,3,31,4,202,3,234,2,204,1,61,1,155,1,12,2,214,1,149,1, +19,2,239,2,69,3,205,2,253,1,157,1,244,1,86,2,6,2,76,1,0,1,89,1,187,1,139,1,250,0,212,0, +87,1,198,1,153,1,88,1,169,1,54,2,31,2,71,1,136,0,132,0,225,0,41,1,123,1,208,1,187,1,80,1, +33,1,51,1,35,1,254,0,253,0,242,0,190,0,173,0,240,0,46,1,24,1,235,0,0,1,54,1,48,1,219,0, +123,0,90,0,136,0,206,0,3,1,49,1,85,1,83,1,54,1,5,1,155,0,255,255,124,255,77,255,157,255,95,0, +6,1,40,1,68,1,193,1,245,1,68,1,72,0,241,255,73,0,175,0,180,0,143,0,190,0,54,1,83,1,215,0, +104,0,149,0,244,0,199,0,49,0,232,255,254,255,14,0,39,0,143,0,255,0,24,1,248,0,214,0,189,0,221,0, +89,1,207,1,181,1,12,1,79,0,206,255,102,255,19,255,65,255,6,0,167,0,167,0,160,0,41,1,155,1,18,1, +9,0,209,255,143,0,0,1,124,0,220,255,251,255,118,0,157,0,138,0,160,0,197,0,197,0,195,0,207,0,162,0, +45,0,201,255,162,255,150,255,162,255,244,255,139,0,37,1,111,1,75,1,4,1,237,0,215,0,114,0,225,255,120,255, +91,255,141,255,223,255,13,0,55,0,171,0,50,1,89,1,37,1,205,0,104,0,27,0,3,0,231,255,154,255,100,255, +130,255,171,255,171,255,220,255,106,0,206,0,166,0,83,0,32,0,202,255,80,255,30,255,79,255,162,255,239,255,27,0, +29,0,31,0,45,0,24,0,214,255,127,255,23,255,175,254,87,254,10,254,246,253,69,254,186,254,36,255,170,255,31,0, +27,0,204,255,137,255,33,255,133,254,43,254,83,254,161,254,138,254,244,253,118,253,134,253,153,253,37,253,220,252,129,253, +129,254,238,254,223,254,231,254,28,255,32,255,176,254,251,253,110,253,60,253,86,253,164,253,226,253,210,253,172,253,214,253, +42,254,35,254,204,253,189,253,11,254,6,254,125,253,62,253,167,253,249,253,204,253,187,253,2,254,25,254,231,253,207,253, +177,253,48,253,173,252,203,252,86,253,158,253,158,253,219,253,79,254,100,254,246,253,130,253,89,253,80,253,45,253,4,253, +21,253,102,253,175,253,192,253,191,253,191,253,144,253,46,253,235,252,1,253,83,253,133,253,92,253,19,253,21,253,87,253, +129,253,133,253,154,253,193,253,198,253,143,253,48,253,221,252,193,252,206,252,243,252,91,253,255,253,74,254,230,253,104,253, +94,253,100,253,25,253,254,252,81,253,108,253,39,253,59,253,183,253,218,253,157,253,158,253,210,253,191,253,92,253,233,252, +158,252,188,252,45,253,133,253,181,253,8,254,100,254,119,254,85,254,36,254,174,253,252,252,142,252,157,252,204,252,249,252, +115,253,55,254,203,254,255,254,9,255,219,254,67,254,129,253,23,253,43,253,137,253,223,253,255,253,40,254,169,254,52,255, +63,255,249,254,205,254,138,254,244,253,109,253,50,253,25,253,70,253,0,254,245,254,181,255,71,0,149,0,88,0,186,255, +16,255,76,254,146,253,111,253,222,253,69,254,150,254,46,255,235,255,107,0,137,0,17,0,246,254,248,253,218,253,62,254, +97,254,121,254,16,255,219,255,85,0,148,0,182,0,144,0,82,0,63,0,232,255,0,255,72,254,111,254,6,255,115,255, +188,255,10,0,98,0,190,0,225,0,165,0,104,0,77,0,241,255,131,255,174,255,50,0,70,0,42,0,153,0,84,1, +159,1,100,1,5,1,188,0,134,0,78,0,24,0,21,0,101,0,230,0,86,1,106,1,1,1,123,0,107,0,177,0, +162,0,55,0,44,0,175,0,0,1,226,0,27,1,251,1,180,2,184,2,91,2,233,1,87,1,198,0,93,0,253,255, +184,255,220,255,104,0,9,1,122,1,161,1,200,1,80,2,232,2,224,2,84,2,227,1,152,1,42,1,186,0,149,0, +212,0,114,1,52,2,156,2,129,2,71,2,70,2,101,2,99,2,50,2,232,1,154,1,94,1,88,1,142,1,246,1, +160,2,117,3,246,3,215,3,96,3,219,2,67,2,180,1,98,1,71,1,116,1,21,2,225,2,79,3,96,3,109,3, +112,3,54,3,224,2,150,2,55,2,194,1,145,1,228,1,142,2,73,3,219,3,28,4,25,4,239,3,122,3,153,2, +177,1,71,1,99,1,197,1,60,2,162,2,246,2,84,3,157,3,159,3,110,3,44,3,193,2,65,2,247,1,1,2, +80,2,197,2,20,3,247,2,150,2,81,2,73,2,99,2,135,2,179,2,216,2,211,2,175,2,171,2,218,2,7,3, +16,3,4,3,244,2,238,2,249,2,248,2,210,2,159,2,132,2,149,2,189,2,168,2,51,2,209,1,220,1,36,2, +140,2,35,3,139,3,87,3,218,2,151,2,122,2,62,2,230,1,151,1,110,1,112,1,137,1,194,1,58,2,189,2, +240,2,199,2,108,2,235,1,81,1,192,0,79,0,35,0,122,0,75,1,29,2,122,2,83,2,208,1,23,1,97,0, +249,255,232,255,249,255,42,0,162,0,58,1,150,1,155,1,93,1,247,0,152,0,71,0,192,255,21,255,213,254,51,255, +199,255,82,0,227,0,68,1,58,1,238,0,130,0,227,255,79,255,47,255,89,255,86,255,61,255,104,255,201,255,33,0, +103,0,165,0,206,0,205,0,137,0,237,255,14,255,50,254,188,253,247,253,203,254,206,255,165,0,37,1,52,1,229,0, +106,0,203,255,4,255,98,254,65,254,143,254,232,254,39,255,118,255,238,255,80,0,105,0,84,0,59,0,15,0,185,255, +52,255,147,254,42,254,83,254,223,254,89,255,181,255,12,0,38,0,235,255,158,255,95,255,17,255,198,254,178,254,218,254, +26,255,69,255,55,255,255,254,229,254,25,255,94,255,98,255,60,255,52,255,47,255,237,254,167,254,179,254,238,254,26,255, +66,255,90,255,65,255,18,255,231,254,139,254,16,254,3,254,160,254,100,255,175,255,107,255,250,254,177,254,133,254,70,254, +11,254,27,254,113,254,183,254,214,254,28,255,154,255,237,255,230,255,187,255,123,255,254,254,100,254,249,253,191,253,163,253, +184,253,23,254,197,254,157,255,61,0,88,0,6,0,120,255,211,254,89,254,61,254,91,254,132,254,191,254,16,255,86,255, +112,255,88,255,45,255,18,255,0,255,228,254,212,254,221,254,227,254,227,254,238,254,4,255,48,255,126,255,201,255,220,255, +161,255,45,255,191,254,145,254,142,254,140,254,167,254,247,254,95,255,212,255,61,0,76,0,237,255,126,255,60,255,27,255, +15,255,19,255,21,255,22,255,25,255,34,255,77,255,161,255,247,255,69,0,144,0,155,0,46,0,117,255,209,254,151,254, +223,254,95,255,190,255,16,0,116,0,173,0,138,0,47,0,206,255,148,255,159,255,183,255,154,255,126,255,190,255,73,0, +213,0,50,1,69,1,21,1,197,0,83,0,182,255,35,255,206,254,172,254,199,254,101,255,121,0,115,1,246,1,39,2, +14,2,108,1,104,0,154,255,52,255,251,254,249,254,96,255,249,255,101,0,145,0,145,0,139,0,170,0,191,0,113,0, +247,255,200,255,200,255,163,255,143,255,199,255,1,0,15,0,53,0,114,0,106,0,24,0,195,255,112,255,28,255,1,255, +55,255,152,255,9,0,104,0,121,0,83,0,56,0,250,255,95,255,198,254,167,254,230,254,68,255,187,255,30,0,46,0, +23,0,23,0,15,0,232,255,216,255,217,255,161,255,68,255,45,255,89,255,108,255,113,255,184,255,37,0,98,0,110,0, +87,0,248,255,106,255,22,255,19,255,29,255,39,255,93,255,183,255,254,255,19,0,4,0,240,255,240,255,242,255,209,255, +160,255,156,255,216,255,25,0,43,0,11,0,197,255,112,255,71,255,122,255,208,255,247,255,10,0,76,0,146,0,130,0, +36,0,192,255,82,255,209,254,150,254,242,254,140,255,217,255,228,255,6,0,56,0,58,0,3,0,181,255,98,255,36,255, +40,255,112,255,191,255,224,255,229,255,246,255,0,0,228,255,183,255,167,255,200,255,9,0,50,0,27,0,241,255,231,255, +219,255,181,255,174,255,231,255,64,0,164,0,253,0,19,1,235,0,173,0,80,0,207,255,109,255,92,255,150,255,249,255, +80,0,118,0,152,0,225,0,31,1,33,1,252,0,203,0,157,0,131,0,122,0,123,0,144,0,173,0,174,0,138,0, +83,0,41,0,37,0,58,0,87,0,141,0,205,0,219,0,172,0,97,0,7,0,192,255,191,255,228,255,247,255,32,0, +120,0,186,0,204,0,207,0,170,0,73,0,232,255,159,255,75,255,254,254,245,254,62,255,167,255,239,255,254,255,10,0, +49,0,55,0,249,255,171,255,106,255,32,255,227,254,235,254,62,255,162,255,223,255,252,255,40,0,78,0,37,0,184,255, +101,255,66,255,19,255,219,254,222,254,30,255,73,255,81,255,129,255,228,255,33,0,26,0,243,255,170,255,74,255,40,255, +72,255,64,255,9,255,9,255,73,255,127,255,161,255,191,255,185,255,148,255,121,255,87,255,16,255,205,254,197,254,229,254, +14,255,67,255,122,255,143,255,122,255,84,255,36,255,247,254,233,254,231,254,202,254,190,254,250,254,60,255,60,255,37,255, +46,255,57,255,39,255,248,254,182,254,135,254,149,254,203,254,252,254,33,255,65,255,90,255,115,255,126,255,104,255,79,255, +68,255,31,255,220,254,200,254,0,255,59,255,72,255,78,255,111,255,141,255,137,255,140,255,176,255,181,255,111,255,37,255, +15,255,8,255,4,255,57,255,165,255,2,0,36,0,22,0,241,255,211,255,183,255,122,255,38,255,247,254,15,255,82,255, +149,255,196,255,229,255,8,0,30,0,18,0,242,255,212,255,163,255,84,255,25,255,35,255,87,255,127,255,148,255,171,255, +191,255,191,255,184,255,189,255,194,255,182,255,164,255,152,255,133,255,116,255,115,255,116,255,106,255,114,255,144,255,155,255, +148,255,151,255,152,255,140,255,149,255,168,255,147,255,125,255,158,255,204,255,212,255,207,255,196,255,154,255,122,255,154,255, +211,255,239,255,238,255,217,255,181,255,160,255,183,255,219,255,219,255,182,255,175,255,229,255,6,0,212,255,170,255,216,255, +11,0,233,255,178,255,194,255,11,0,75,0,101,0,99,0,81,0,55,0,37,0,32,0,8,0,215,255,182,255,172,255, +146,255,138,255,208,255,61,0,131,0,145,0,126,0,96,0,72,0,32,0,216,255,170,255,186,255,212,255,218,255,244,255, +40,0,80,0,98,0,100,0,83,0,58,0,21,0,213,255,153,255,130,255,130,255,151,255,231,255,112,0,244,0,48,1, +8,1,148,0,27,0,207,255,154,255,104,255,96,255,166,255,26,0,133,0,225,0,41,1,48,1,240,0,172,0,122,0, +50,0,238,255,233,255,8,0,30,0,75,0,163,0,243,0,24,1,28,1,1,1,195,0,109,0,37,0,15,0,30,0, +46,0,76,0,161,0,15,1,80,1,80,1,42,1,254,0,205,0,136,0,57,0,9,0,2,0,11,0,36,0,78,0, +100,0,103,0,135,0,203,0,249,0,249,0,232,0,220,0,185,0,100,0,15,0,250,255,8,0,12,0,30,0,68,0, +83,0,100,0,154,0,172,0,115,0,75,0,83,0,64,0,21,0,15,0,20,0,255,255,249,255,24,0,56,0,77,0, +106,0,143,0,155,0,113,0,39,0,243,255,232,255,242,255,2,0,17,0,39,0,98,0,170,0,173,0,114,0,77,0, +55,0,249,255,187,255,186,255,205,255,204,255,207,255,225,255,239,255,0,0,28,0,47,0,52,0,53,0,36,0,231,255, +157,255,135,255,159,255,162,255,142,255,162,255,206,255,196,255,138,255,106,255,103,255,96,255,107,255,157,255,203,255,189,255, +115,255,45,255,48,255,109,255,156,255,172,255,188,255,177,255,109,255,57,255,75,255,97,255,75,255,65,255,80,255,65,255, +39,255,61,255,107,255,118,255,117,255,129,255,129,255,122,255,144,255,179,255,189,255,185,255,184,255,170,255,149,255,142,255, +144,255,132,255,118,255,127,255,160,255,200,255,242,255,12,0,249,255,215,255,225,255,251,255,213,255,135,255,124,255,191,255, +251,255,3,0,245,255,251,255,38,0,87,0,84,0,28,0,241,255,244,255,254,255,239,255,232,255,15,0,77,0,108,0, +102,0,91,0,74,0,36,0,251,255,227,255,218,255,232,255,18,0,62,0,87,0,106,0,138,0,185,0,217,0,189,0, +112,0,55,0,38,0,8,0,226,255,247,255,73,0,149,0,186,0,205,0,214,0,201,0,165,0,112,0,48,0,0,0, +253,255,31,0,79,0,147,0,234,0,39,1,48,1,36,1,18,1,222,0,136,0,66,0,40,0,43,0,50,0,77,0, +158,0,27,1,133,1,184,1,160,1,46,1,148,0,59,0,47,0,53,0,82,0,156,0,225,0,8,1,54,1,98,1, +99,1,77,1,42,1,231,0,157,0,128,0,133,0,152,0,200,0,7,1,30,1,7,1,3,1,39,1,38,1,212,0, +122,0,92,0,104,0,152,0,233,0,14,1,230,0,224,0,38,1,70,1,17,1,215,0,187,0,174,0,187,0,208,0, +209,0,221,0,252,0,7,1,2,1,3,1,233,0,184,0,168,0,182,0,181,0,185,0,228,0,16,1,12,1,232,0, +223,0,254,0,10,1,224,0,193,0,215,0,223,0,177,0,143,0,169,0,219,0,249,0,1,1,7,1,28,1,55,1, +61,1,32,1,220,0,131,0,79,0,97,0,144,0,180,0,217,0,2,1,29,1,37,1,23,1,246,0,219,0,206,0, +193,0,188,0,203,0,211,0,196,0,190,0,202,0,209,0,210,0,226,0,248,0,240,0,191,0,141,0,128,0,143,0, +157,0,180,0,228,0,7,1,1,1,241,0,234,0,195,0,117,0,71,0,99,0,140,0,145,0,151,0,193,0,229,0, +231,0,226,0,234,0,247,0,253,0,232,0,174,0,110,0,73,0,55,0,56,0,104,0,187,0,242,0,237,0,203,0, +179,0,166,0,165,0,180,0,187,0,149,0,94,0,80,0,89,0,81,0,93,0,158,0,222,0,232,0,215,0,192,0, +152,0,121,0,134,0,146,0,97,0,25,0,12,0,59,0,99,0,108,0,133,0,178,0,185,0,140,0,102,0,97,0, +85,0,49,0,19,0,23,0,47,0,60,0,57,0,70,0,120,0,179,0,193,0,157,0,112,0,90,0,78,0,57,0, +36,0,34,0,38,0,35,0,39,0,55,0,57,0,44,0,39,0,41,0,54,0,97,0,145,0,137,0,86,0,60,0, +45,0,2,0,234,255,15,0,51,0,44,0,47,0,76,0,78,0,54,0,38,0,14,0,227,255,201,255,205,255,226,255, +252,255,8,0,3,0,23,0,57,0,38,0,231,255,203,255,209,255,190,255,169,255,206,255,24,0,58,0,30,0,237,255, +204,255,180,255,154,255,139,255,153,255,180,255,188,255,170,255,166,255,215,255,25,0,27,0,228,255,193,255,196,255,206,255, +200,255,151,255,68,255,41,255,109,255,181,255,189,255,172,255,179,255,213,255,229,255,169,255,72,255,53,255,109,255,128,255, +117,255,152,255,195,255,184,255,161,255,157,255,133,255,95,255,95,255,126,255,141,255,122,255,84,255,50,255,46,255,66,255, +82,255,86,255,107,255,154,255,184,255,167,255,135,255,106,255,72,255,62,255,95,255,106,255,69,255,72,255,129,255,141,255, +93,255,71,255,82,255,78,255,69,255,74,255,77,255,83,255,105,255,129,255,137,255,136,255,125,255,102,255,85,255,79,255, +65,255,42,255,37,255,61,255,88,255,106,255,130,255,153,255,157,255,156,255,160,255,131,255,68,255,30,255,27,255,13,255, +5,255,54,255,128,255,160,255,155,255,159,255,183,255,200,255,179,255,121,255,60,255,25,255,17,255,35,255,78,255,124,255, +157,255,185,255,214,255,222,255,183,255,121,255,99,255,117,255,115,255,81,255,63,255,88,255,144,255,206,255,234,255,208,255, +168,255,144,255,129,255,134,255,152,255,132,255,85,255,103,255,174,255,193,255,159,255,163,255,211,255,246,255,243,255,221,255, +208,255,210,255,194,255,139,255,91,255,86,255,96,255,105,255,142,255,211,255,6,0,6,0,230,255,198,255,181,255,171,255, +146,255,111,255,116,255,184,255,254,255,7,0,233,255,207,255,179,255,148,255,141,255,149,255,156,255,195,255,251,255,245,255, +186,255,173,255,199,255,190,255,178,255,214,255,233,255,208,255,209,255,232,255,214,255,194,255,221,255,223,255,177,255,186,255, +3,0,15,0,207,255,168,255,169,255,161,255,162,255,200,255,243,255,14,0,33,0,18,0,210,255,145,255,135,255,169,255, +202,255,213,255,218,255,247,255,36,0,48,0,254,255,182,255,143,255,133,255,120,255,127,255,178,255,231,255,235,255,222,255, +239,255,14,0,13,0,229,255,193,255,197,255,217,255,195,255,142,255,131,255,158,255,163,255,152,255,163,255,182,255,197,255, +230,255,5,0,243,255,190,255,146,255,128,255,133,255,150,255,155,255,152,255,171,255,214,255,249,255,251,255,227,255,193,255, +163,255,133,255,100,255,75,255,73,255,109,255,175,255,232,255,243,255,222,255,203,255,193,255,179,255,146,255,98,255,68,255, +74,255,85,255,93,255,125,255,177,255,202,255,198,255,190,255,176,255,152,255,139,255,129,255,101,255,70,255,68,255,88,255, +106,255,123,255,142,255,157,255,164,255,169,255,165,255,146,255,124,255,111,255,105,255,106,255,117,255,116,255,103,255,114,255, +142,255,135,255,104,255,101,255,119,255,114,255,102,255,105,255,116,255,134,255,165,255,178,255,151,255,117,255,108,255,108,255, +93,255,71,255,68,255,94,255,128,255,138,255,118,255,98,255,112,255,143,255,147,255,137,255,154,255,168,255,137,255,108,255, +115,255,106,255,70,255,80,255,140,255,177,255,170,255,151,255,141,255,144,255,136,255,88,255,40,255,59,255,118,255,152,255, +155,255,151,255,153,255,181,255,217,255,209,255,157,255,123,255,130,255,147,255,141,255,118,255,108,255,120,255,135,255,145,255, +165,255,194,255,203,255,179,255,141,255,118,255,124,255,142,255,155,255,175,255,200,255,204,255,192,255,183,255,166,255,142,255, +133,255,133,255,126,255,133,255,167,255,193,255,197,255,195,255,187,255,170,255,161,255,154,255,135,255,127,255,146,255,169,255, +182,255,206,255,231,255,223,255,188,255,158,255,141,255,131,255,136,255,153,255,160,255,156,255,161,255,167,255,161,255,158,255, +173,255,185,255,179,255,182,255,205,255,223,255,212,255,182,255,162,255,164,255,174,255,164,255,142,255,142,255,166,255,178,255, +172,255,180,255,208,255,227,255,219,255,199,255,188,255,181,255,163,255,141,255,141,255,166,255,185,255,183,255,182,255,198,255, +213,255,223,255,238,255,242,255,211,255,174,255,165,255,167,255,158,255,160,255,188,255,210,255,207,255,199,255,201,255,203,255, +207,255,226,255,245,255,227,255,180,255,152,255,154,255,161,255,176,255,217,255,255,255,2,0,244,255,241,255,244,255,246,255, +245,255,233,255,214,255,206,255,202,255,189,255,184,255,207,255,238,255,2,0,20,0,39,0,38,0,16,0,0,0,250,255, +236,255,226,255,243,255,19,0,33,0,32,0,35,0,41,0,40,0,38,0,42,0,43,0,34,0,25,0,26,0,34,0, +38,0,47,0,67,0,84,0,88,0,93,0,96,0,82,0,60,0,45,0,30,0,18,0,29,0,59,0,87,0,105,0, +112,0,103,0,92,0,97,0,106,0,97,0,74,0,67,0,88,0,106,0,97,0,85,0,100,0,119,0,115,0,106,0, +117,0,137,0,143,0,124,0,104,0,105,0,113,0,106,0,101,0,120,0,141,0,146,0,149,0,151,0,147,0,147,0, +149,0,139,0,125,0,126,0,142,0,164,0,176,0,162,0,143,0,153,0,171,0,162,0,138,0,129,0,128,0,134,0, +156,0,178,0,177,0,168,0,171,0,178,0,176,0,163,0,148,0,138,0,136,0,148,0,173,0,194,0,201,0,200,0, +200,0,198,0,191,0,175,0,152,0,137,0,130,0,121,0,118,0,142,0,185,0,221,0,235,0,220,0,185,0,154,0, +137,0,123,0,115,0,122,0,135,0,152,0,173,0,186,0,183,0,181,0,186,0,183,0,164,0,142,0,126,0,119,0, +123,0,135,0,147,0,155,0,163,0,171,0,170,0,159,0,148,0,137,0,124,0,116,0,122,0,129,0,133,0,142,0, +158,0,163,0,154,0,142,0,136,0,135,0,135,0,127,0,113,0,104,0,108,0,119,0,125,0,125,0,129,0,138,0, +133,0,118,0,112,0,117,0,113,0,106,0,107,0,112,0,117,0,121,0,116,0,103,0,98,0,106,0,117,0,117,0, +103,0,87,0,90,0,106,0,109,0,99,0,95,0,99,0,100,0,95,0,90,0,88,0,90,0,92,0,92,0,95,0, +97,0,94,0,94,0,98,0,95,0,87,0,85,0,89,0,91,0,95,0,103,0,110,0,107,0,94,0,80,0,77,0, +78,0,74,0,76,0,92,0,103,0,99,0,99,0,109,0,117,0,114,0,105,0,92,0,78,0,70,0,72,0,85,0, +105,0,118,0,113,0,104,0,104,0,104,0,95,0,93,0,99,0,95,0,84,0,81,0,84,0,83,0,85,0,100,0, +117,0,125,0,126,0,121,0,106,0,91,0,88,0,91,0,89,0,85,0,89,0,97,0,98,0,98,0,106,0,113,0, +109,0,107,0,110,0,106,0,98,0,93,0,91,0,88,0,88,0,87,0,86,0,98,0,113,0,110,0,95,0,88,0, +88,0,80,0,71,0,72,0,79,0,80,0,78,0,81,0,86,0,84,0,77,0,76,0,78,0,78,0,74,0,66,0, +54,0,49,0,52,0,52,0,46,0,46,0,55,0,64,0,70,0,69,0,61,0,53,0,49,0,42,0,35,0,33,0, +31,0,30,0,29,0,24,0,16,0,12,0,14,0,20,0,27,0,28,0,24,0,22,0,18,0,4,0,251,255,254,255, +252,255,241,255,237,255,241,255,243,255,244,255,247,255,246,255,242,255,238,255,231,255,225,255,220,255,211,255,205,255,211,255, +221,255,222,255,218,255,219,255,224,255,222,255,213,255,200,255,188,255,176,255,169,255,174,255,183,255,186,255,187,255,199,255, +211,255,202,255,183,255,173,255,172,255,167,255,162,255,164,255,170,255,170,255,166,255,163,255,163,255,166,255,170,255,169,255, +159,255,151,255,149,255,147,255,143,255,144,255,148,255,149,255,152,255,158,255,155,255,152,255,155,255,155,255,142,255,132,255, +136,255,144,255,143,255,141,255,143,255,142,255,140,255,143,255,148,255,148,255,145,255,143,255,137,255,131,255,137,255,146,255, +138,255,127,255,134,255,144,255,139,255,128,255,129,255,137,255,141,255,139,255,140,255,144,255,149,255,148,255,144,255,140,255, +138,255,135,255,136,255,140,255,145,255,149,255,148,255,145,255,145,255,146,255,146,255,144,255,143,255,145,255,150,255,152,255, +151,255,149,255,150,255,153,255,154,255,156,255,156,255,156,255,157,255,161,255,166,255,164,255,154,255,152,255,158,255,159,255, +156,255,161,255,168,255,163,255,157,255,162,255,168,255,170,255,172,255,175,255,175,255,174,255,172,255,168,255,167,255,173,255, +177,255,176,255,176,255,174,255,175,255,179,255,182,255,180,255,180,255,184,255,185,255,181,255,178,255,180,255,187,255,192,255, +194,255,195,255,196,255,192,255,186,255,188,255,194,255,192,255,185,255,188,255,195,255,197,255,195,255,197,255,202,255,204,255, +203,255,203,255,204,255,205,255,208,255,207,255,201,255,201,255,209,255,211,255,203,255,200,255,206,255,210,255,208,255,208,255, +211,255,212,255,211,255,211,255,213,255,216,255,215,255,212,255,213,255,217,255,220,255,219,255,218,255,217,255,215,255,214,255, +215,255,218,255,216,255,213,255,217,255,227,255,228,255,221,255,218,255,221,255,221,255,220,255,223,255,227,255,227,255,229,255, +233,255,232,255,226,255,224,255,228,255,226,255,222,255,225,255,229,255,225,255,221,255,229,255,237,255,237,255,233,255,234,255, +237,255,236,255,232,255,229,255,230,255,232,255,233,255,232,255,231,255,235,255,240,255,240,255,238,255,237,255,239,255,239,255, +238,255,239,255,240,255,243,255,246,255,245,255,243,255,247,255,248,255,242,255,240,255,243,255,246,255,247,255,250,255,251,255, +252,255,0,0,255,255,249,255,250,255,0,0,255,255,252,255,254,255,0,0,1,0,3,0,4,0,5,0,7,0,7,0, +3,0,4,0,9,0,10,0,8,0,8,0,8,0,9,0,12,0,14,0,15,0,18,0,19,0,17,0,15,0,14,0, +12,0,13,0,18,0,19,0,16,0,19,0,26,0,28,0,24,0,24,0,28,0,27,0,20,0,18,0,24,0,28,0, +28,0,29,0,34,0,36,0,34,0,31,0,32,0,34,0,34,0,31,0,31,0,33,0,35,0,39,0,43,0,41,0, +37,0,40,0,43,0,41,0,40,0,42,0,42,0,39,0,40,0,43,0,44,0,48,0,51,0,51,0,50,0,50,0, +49,0,47,0,47,0,47,0,45,0,44,0,46,0,48,0,50,0,55,0,57,0,55,0,55,0,58,0,57,0,50,0, +46,0,48,0,50,0,52,0,53,0,53,0,53,0,55,0,58,0,59,0,57,0,55,0,54,0,53,0,52,0,52,0, +54,0,54,0,54,0,58,0,60,0,56,0,53,0,57,0,58,0,54,0,51,0,51,0,51,0,54,0,57,0,59,0, +61,0,62,0,60,0,57,0,57,0,56,0,54,0,53,0,52,0,51,0,53,0,54,0,52,0,52,0,53,0,54,0, +55,0,56,0,53,0,50,0,52,0,52,0,49,0,48,0,50,0,51,0,51,0,52,0,52,0,51,0,50,0,46,0, +46,0,49,0,50,0,48,0,50,0,49,0,45,0,47,0,54,0,52,0,44,0,42,0,46,0,45,0,41,0,41,0, +43,0,44,0,46,0,47,0,44,0,43,0,44,0,44,0,40,0,40,0,44,0,45,0,39,0,39,0,42,0,43,0, +41,0,40,0,39,0,37,0,35,0,34,0,33,0,34,0,35,0,34,0,33,0,33,0,33,0,33,0,32,0,30,0, +30,0,31,0,30,0,28,0,29,0,30,0,27,0,25,0,27,0,28,0,26,0,25,0,24,0,21,0,20,0,20,0, +20,0,20,0,20,0,19,0,18,0,20,0,19,0,16,0,13,0,12,0,10,0,10,0,11,0,11,0,10,0,13,0, +17,0,15,0,10,0,7,0,5,0,3,0,4,0,4,0,3,0,4,0,6,0,6,0,6,0,7,0,4,0,0,0, +255,255,255,255,254,255,254,255,254,255,252,255,254,255,2,0,2,0,253,255,252,255,252,255,250,255,249,255,248,255,247,255, +247,255,248,255,248,255,247,255,246,255,247,255,250,255,249,255,245,255,243,255,244,255,241,255,236,255,236,255,238,255,239,255, +241,255,243,255,243,255,244,255,245,255,242,255,237,255,236,255,236,255,235,255,236,255,236,255,234,255,236,255,239,255,239,255, +239,255,240,255,241,255,238,255,236,255,235,255,235,255,234,255,234,255,235,255,234,255,233,255,234,255,239,255,239,255,234,255, +232,255,234,255,234,255,233,255,234,255,235,255,235,255,234,255,232,255,231,255,235,255,238,255,236,255,233,255,233,255,237,255, +236,255,234,255,233,255,234,255,233,255,233,255,236,255,235,255,232,255,236,255,242,255,238,255,231,255,236,255,240,255,234,255, +230,255,236,255,237,255,233,255,234,255,238,255,236,255,234,255,237,255,240,255,239,255,238,255,238,255,236,255,233,255,233,255, +235,255,236,255,236,255,236,255,239,255,240,255,237,255,234,255,235,255,236,255,234,255,233,255,236,255,236,255,235,255,236,255, +237,255,236,255,238,255,240,255,239,255,237,255,237,255,237,255,237,255,239,255,241,255,239,255,240,255,242,255,241,255,242,255, +243,255,240,255,235,255,237,255,240,255,240,255,239,255,241,255,244,255,245,255,244,255,241,255,240,255,241,255,241,255,241,255, +243,255,243,255,243,255,245,255,246,255,244,255,244,255,248,255,249,255,247,255,246,255,245,255,243,255,241,255,241,255,244,255, +246,255,245,255,244,255,244,255,246,255,249,255,250,255,247,255,243,255,244,255,245,255,245,255,247,255,248,255,246,255,248,255, +252,255,251,255,249,255,253,255,254,255,249,255,247,255,250,255,249,255,247,255,248,255,251,255,252,255,254,255,0,0,255,255, +251,255,250,255,253,255,254,255,251,255,251,255,255,255,255,255,252,255,253,255,1,0,1,0,255,255,254,255,254,255,254,255, +254,255,252,255,251,255,254,255,1,0,0,0,0,0,255,255,254,255,0,0,5,0,5,0,254,255,253,255,2,0,2,0, +253,255,255,255,5,0,5,0,255,255,254,255,3,0,4,0,1,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpigangry3.pcm b/src/client/sound/data/zpigangry3.pcm new file mode 100755 index 0000000..472db99 --- /dev/null +++ b/src/client/sound/data/zpigangry3.pcm @@ -0,0 +1,4059 @@ +unsigned char PCM_zpigangry3[129798] = { +1,0,0,0,2,0,0,0,68,172,0,0,123,253,0,0,255,255,0,0,255,255,255,255,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,255,255,255,255,0,0,2,0,0,0,253,255,250,255,248,255,246,255,245,255,248,255,248,255,244,255, +248,255,0,0,0,0,249,255,252,255,3,0,2,0,3,0,12,0,11,0,0,0,7,0,34,0,56,0,65,0,59,0, +33,0,0,0,247,255,10,0,44,0,75,0,82,0,60,0,42,0,45,0,45,0,36,0,28,0,4,0,216,255,198,255, +212,255,220,255,232,255,13,0,26,0,246,255,216,255,206,255,169,255,141,255,190,255,248,255,204,255,114,255,113,255,184,255, +218,255,204,255,223,255,42,0,104,0,105,0,44,0,185,255,68,255,68,255,214,255,116,0,164,0,112,0,255,255,140,255, +140,255,8,0,77,0,8,0,214,255,19,0,55,0,203,255,3,255,104,254,130,254,104,255,105,0,215,0,187,0,58,0, +79,255,116,254,102,254,15,255,202,255,76,0,107,0,255,255,108,255,46,255,20,255,13,255,159,255,150,0,190,0,219,255, +29,255,22,255,36,255,29,255,170,255,196,0,87,1,172,0,88,255,164,254,54,255,94,0,248,0,245,0,9,1,5,1, +42,0,27,255,72,255,120,0,52,1,48,1,22,1,199,0,253,255,97,255,137,255,73,0,103,1,115,2,108,2,28,1, +164,255,207,254,154,254,79,255,12,1,173,2,238,2,221,1,103,0,151,255,223,255,92,0,246,255,99,255,246,255,9,1, +13,1,7,0,249,254,110,254,222,254,114,0,248,1,2,2,203,0,135,255,209,254,204,254,132,255,108,0,174,0,131,0, +254,0,4,2,15,2,209,0,43,0,14,1,222,1,116,1,223,0,184,0,50,0,134,255,195,255,122,0,186,0,238,0, +73,1,241,0,243,255,82,255,23,255,212,254,201,254,203,254,43,254,92,253,115,253,108,254,143,255,70,0,241,255,163,254, +122,253,29,253,92,253,77,254,150,255,240,255,84,255,66,255,205,255,210,255,186,255,78,0,141,0,243,255,250,255,255,0, +106,1,252,0,13,1,163,1,194,1,135,1,93,1,197,0,187,255,97,255,25,0,191,0,129,0,24,0,83,0,140,0, +222,255,238,254,240,254,184,255,77,0,110,0,26,0,14,255,231,253,32,254,224,255,97,1,44,1,220,255,39,255,212,255, +10,1,146,1,29,1,45,0,145,255,7,0,82,1,249,1,68,1,117,0,168,0,47,1,98,1,175,1,221,1,17,1, +253,255,23,0,211,0,147,0,183,255,219,255,214,0,73,1,8,1,173,0,252,255,232,254,142,254,78,255,182,255,2,255, +110,254,210,254,121,255,12,0,251,0,174,1,228,0,7,255,215,253,4,254,195,254,104,255,2,0,118,0,67,0,167,255, +174,255,76,0,12,0,212,254,111,254,84,255,232,255,151,255,56,255,212,254,70,254,101,254,28,255,43,255,3,255,228,255, +167,0,210,255,225,254,69,255,115,255,98,254,230,253,34,255,157,0,48,1,78,1,41,1,84,0,69,255,48,255,50,0, +225,0,80,0,138,255,215,255,181,0,8,1,180,0,212,255,170,254,162,254,102,0,213,1,6,1,61,255,39,254,132,253, +106,253,231,254,53,1,46,2,129,1,137,0,5,0,245,255,43,0,44,0,193,255,132,255,233,255,141,0,234,0,232,0, +190,0,132,0,14,0,156,255,59,0,255,1,209,2,28,1,89,254,228,252,37,253,85,254,255,255,144,1,80,2,15,2, +8,1,167,255,172,254,96,254,77,254,131,254,166,255,26,1,84,1,84,0,179,255,18,0,110,0,16,0,161,255,246,255, +186,0,245,0,71,0,6,255,209,253,142,253,196,254,160,0,192,1,222,1,80,1,250,255,120,254,89,254,172,255,151,0, +105,0,94,0,224,0,239,0,75,0,209,255,0,0,177,0,170,1,118,2,120,2,149,1,90,0,116,255,55,255,142,255, +15,0,80,0,85,0,134,0,9,1,52,1,44,0,71,254,48,253,24,254,31,0,72,1,220,0,36,0,107,0,96,1, +248,1,183,1,183,0,146,255,94,255,110,0,160,1,235,1,134,1,230,0,95,0,163,0,183,1,63,2,145,1,204,0, +172,0,136,0,21,0,214,255,8,0,183,0,226,1,195,2,90,2,211,0,68,255,181,254,159,255,45,1,169,1,201,0, +13,0,61,0,183,0,255,0,240,0,101,0,253,255,96,0,185,0,31,0,95,255,82,255,104,255,102,255,247,255,6,1, +218,1,91,2,114,2,124,1,160,255,63,254,100,254,157,255,164,0,218,0,182,0,97,0,74,255,43,254,232,254,249,0, +153,1,87,0,87,255,58,255,22,255,246,254,211,254,195,253,160,252,166,253,101,0,10,2,123,1,205,255,38,254,93,253, +187,253,80,254,86,254,128,254,102,255,110,0,5,1,10,1,62,0,228,254,33,254,152,254,176,255,106,0,49,0,78,255, +215,254,61,255,122,255,226,254,112,254,11,255,32,0,207,0,197,0,172,255,153,253,245,251,68,252,40,254,208,255,28,0, +128,255,30,255,127,255,0,0,163,255,141,254,248,253,84,254,185,254,200,254,53,255,6,0,110,0,130,0,200,0,158,0, +116,255,109,254,160,254,114,255,49,0,9,1,136,1,193,0,68,255,171,254,81,255,59,0,177,0,210,0,242,0,252,0, +130,0,115,255,98,254,238,253,101,254,225,255,197,1,153,2,126,1,89,255,250,253,115,254,54,0,139,1,106,1,146,0, +253,255,101,255,157,254,171,254,32,0,222,1,133,2,236,1,233,0,97,0,133,0,178,0,94,0,184,255,86,255,214,255, +83,1,155,2,63,2,179,0,197,255,35,0,39,1,16,2,25,2,227,0,118,255,16,255,118,255,2,0,210,0,184,1, +230,1,77,1,124,0,104,255,15,254,124,253,184,254,50,1,223,2,24,2,115,255,61,253,228,252,8,254,168,255,170,0, +67,0,80,255,129,255,99,0,20,0,171,254,200,253,186,253,10,254,4,255,119,0,21,1,99,0,90,255,226,254,26,255, +162,255,232,255,188,255,85,255,230,254,255,254,20,0,243,0,249,255,67,254,80,254,233,255,244,0,228,0,52,0,13,255, +101,254,45,255,28,0,190,255,44,255,127,255,122,255,122,254,11,254,214,254,128,255,89,255,23,255,65,255,200,255,99,0, +106,0,117,255,61,254,204,253,58,254,240,254,126,255,165,255,75,255,195,254,190,254,115,255,255,255,88,255,253,253,143,253, +124,254,99,255,59,255,153,254,112,254,245,254,244,255,7,1,109,1,221,0,72,0,167,0,104,1,94,1,163,0,82,0, +251,0,84,2,159,3,247,3,96,3,73,3,100,4,2,5,106,3,182,0,93,255,24,0,166,1,133,2,11,2,164,0, +113,255,91,255,81,0,75,1,40,1,228,255,139,254,231,253,2,254,182,254,96,255,241,254,180,253,100,253,120,254,172,255, +115,0,41,1,134,1,55,1,160,0,219,255,21,255,122,255,103,1,58,3,213,3,172,3,222,2,147,1,41,1,228,1, +18,2,108,1,127,1,51,2,90,2,159,2,190,3,64,4,49,3,247,1,221,1,157,2,108,3,88,3,24,2,72,1, +68,2,127,3,227,2,68,1,212,0,247,1,118,3,8,4,40,3,159,1,222,0,37,1,87,1,205,0,21,0,2,0, +215,0,252,1,106,2,198,1,216,0,124,0,121,0,226,255,155,254,254,253,112,255,115,2,215,4,213,4,155,2,228,255, +77,254,24,254,188,254,255,255,79,1,112,1,121,0,76,0,115,1,25,2,76,1,20,0,65,255,25,255,10,0,74,1, +61,1,98,0,74,0,46,0,251,254,141,254,83,0,225,1,243,0,41,255,205,254,144,255,11,0,135,255,30,254,244,252, +106,253,8,255,238,255,105,255,100,254,166,253,36,253,162,252,4,252,117,251,98,251,217,251,46,252,210,251,25,251,166,250, +137,250,104,250,53,250,47,250,104,250,167,250,152,250,248,249,17,249,222,248,235,249,101,251,10,252,197,251,164,251,58,252, +197,252,77,252,94,251,128,251,215,252,8,254,179,254,196,255,35,1,140,1,200,0,188,255,224,254,74,254,49,254,111,254, +207,254,186,255,14,1,122,1,132,0,157,255,193,255,218,255,193,254,22,253,41,252,77,252,247,252,123,253,64,253,101,252, +47,252,67,253,237,253,174,252,112,251,163,252,198,254,238,254,167,253,95,253,158,254,154,0,88,2,115,2,41,1,53,1, +67,3,40,4,97,2,112,0,89,0,186,1,237,3,170,5,255,4,177,2,224,1,12,3,233,3,170,3,83,3,22,3, +90,2,234,0,76,255,200,254,236,255,36,1,28,1,230,0,55,1,238,0,79,0,249,0,32,2,223,1,230,0,67,0, +19,255,222,253,12,255,210,1,154,2,10,1,246,255,70,0,176,0,162,0,30,0,29,255,160,254,169,255,45,1,141,1, +25,1,167,0,158,255,176,253,122,252,56,253,172,254,13,255,130,254,52,254,88,254,113,254,77,254,255,253,201,253,61,254, +131,255,149,0,35,0,60,254,150,252,204,252,87,254,14,255,19,254,17,253,166,253,6,255,74,255,9,254,191,252,18,253, +212,254,10,0,109,255,11,254,86,253,67,253,105,253,220,253,31,254,137,253,220,252,54,253,3,254,44,254,24,254,184,254, +198,255,95,0,69,0,183,255,251,254,151,254,25,255,43,0,175,0,104,0,109,0,42,1,134,1,26,1,33,1,255,1, +67,2,36,1,199,255,154,255,28,1,163,3,64,5,59,4,109,1,112,255,149,255,28,1,146,2,207,2,175,1,122,0, +137,0,146,1,59,2,14,2,19,2,80,3,226,4,182,4,141,2,178,0,201,0,254,1,1,3,135,3,105,3,106,2, +33,1,185,0,209,1,198,3,200,4,131,3,36,1,72,0,130,1,165,2,226,1,14,0,64,255,36,0,141,1,102,2, +140,2,190,1,215,255,71,254,193,254,173,0,73,2,254,2,161,2,22,1,245,255,13,1,24,3,179,3,63,3,58,3, +65,3,135,2,121,1,154,0,87,0,132,1,194,3,24,5,119,4,216,2,160,1,109,1,176,1,31,1,211,255,176,255, +32,1,254,1,5,1,76,255,25,254,230,253,148,254,228,254,32,254,56,254,182,0,6,3,8,2,53,255,94,254,110,0, +23,3,232,3,123,2,172,0,119,0,161,1,171,2,1,3,201,2,62,2,64,2,103,3,123,4,46,4,44,3,81,2, +249,0,18,255,7,254,64,254,139,254,140,254,26,255,54,0,3,1,50,1,213,0,199,255,119,254,251,253,181,254,5,0, +107,1,177,2,117,3,130,3,65,3,31,3,60,3,175,3,137,4,114,5,189,5,4,5,206,3,39,3,16,3,159,2, +76,2,152,3,140,5,92,5,69,3,9,2,201,1,153,0,255,254,151,254,180,254,172,254,151,255,61,1,249,1,96,2, +205,3,198,4,209,3,202,2,76,3,194,3,180,2,23,1,61,0,248,0,243,3,8,8,193,9,240,6,171,1,78,254, +0,255,254,1,84,4,224,4,183,3,243,0,254,253,65,253,223,254,246,0,34,3,114,5,143,5,44,2,192,254,184,254, +102,0,215,0,170,0,170,1,66,3,233,3,85,3,17,2,197,0,36,0,58,0,8,0,248,254,39,254,188,254,158,255, +227,254,21,253,146,252,47,254,166,0,39,2,10,1,61,253,243,249,212,250,58,255,62,3,135,4,76,3,153,0,49,254, +14,254,60,0,231,2,164,4,43,5,166,4,159,3,217,2,179,2,48,3,70,4,149,5,80,6,201,5,22,4,46,2, +37,1,1,1,235,0,91,0,137,255,24,255,154,255,135,0,78,0,206,254,34,254,55,255,254,255,190,254,102,252,121,250, +144,249,12,250,180,251,64,253,9,254,170,254,24,255,72,254,31,252,232,249,242,248,175,249,132,251,254,252,246,252,76,251, +151,248,8,246,63,245,216,246,91,249,146,250,104,249,146,246,14,244,100,243,248,243,85,244,174,244,9,246,248,247,48,249, +21,249,94,247,115,244,132,242,60,243,223,244,253,244,126,244,176,245,84,248,135,250,56,251,218,249,175,246,46,244,215,244, +139,247,62,249,60,249,213,248,153,248,83,248,207,247,161,246,94,245,91,246,92,250,67,254,227,254,218,252,165,250,251,249, +181,251,98,255,253,2,244,4,47,5,215,3,205,1,137,1,157,4,176,9,55,14,15,16,18,14,3,10,15,8,250,9, +147,13,85,16,30,17,191,15,10,14,121,14,16,16,182,15,79,13,73,11,56,11,216,13,151,18,220,21,125,20,78,16, +56,13,131,12,211,13,88,16,155,17,0,16,12,14,192,14,120,16,155,15,73,12,10,10,194,10,75,12,85,11,105,7, +236,2,59,0,122,0,97,3,34,6,11,5,7,0,190,250,225,247,158,247,55,249,134,250,202,248,25,245,237,243,249,245, +209,246,86,244,170,241,165,241,140,243,146,245,47,246,243,243,194,239,133,237,122,239,254,242,55,244,160,242,58,240,175,238, +122,238,235,238,104,238,7,236,252,232,44,231,190,230,130,230,18,230,243,229,192,229,74,228,228,225,135,224,216,224,21,225, +240,223,77,222,84,221,21,221,163,221,9,223,35,224,3,224,221,223,254,224,157,226,227,227,61,229,216,229,22,228,232,225, +91,227,20,232,212,235,50,237,11,238,229,238,24,239,85,239,252,239,240,239,155,239,104,241,203,245,27,250,9,252,167,251, +47,250,239,248,33,249,16,251,93,253,106,254,152,254,165,255,169,1,244,2,0,3,226,2,15,3,143,3,96,5,154,8, +228,10,139,10,44,9,243,8,106,9,68,9,48,9,165,10,79,13,208,15,172,17,143,18,130,17,18,15,193,13,146,14, +52,16,96,18,240,21,184,25,132,27,75,27,73,26,22,25,83,24,103,24,142,24,162,24,210,25,221,27,0,29,40,29, +120,29,162,29,244,28,28,28,157,27,234,26,204,25,173,24,127,23,205,21,175,19,62,18,151,18,23,20,2,21,65,21, +222,21,218,21,85,19,35,15,181,11,51,10,241,10,171,13,102,16,119,17,166,17,130,17,228,15,81,13,35,12,70,12, +184,11,235,10,192,11,132,13,3,14,173,12,96,10,39,8,59,7,70,8,105,10,220,11,34,11,29,8,117,4,164,1, +21,255,155,252,192,252,227,0,224,5,28,8,127,7,46,5,212,1,8,255,196,253,200,252,220,251,223,252,96,255,178,0, +216,0,119,1,211,1,31,1,188,0,186,0,222,255,208,255,80,2,76,4,232,2,85,1,34,3,54,6,90,7,21,7, +244,6,57,7,9,8,239,8,84,8,93,6,190,5,232,7,75,11,199,13,27,14,23,12,150,9,60,9,245,10,189,12, +55,14,195,15,27,16,203,14,227,13,114,14,126,15,12,17,94,19,135,20,81,19,118,17,49,16,64,15,2,16,169,19, +122,23,81,24,16,23,248,21,113,21,97,21,208,21,248,21,100,21,170,20,255,19,190,18,99,16,239,12,118,9,219,7, +67,8,83,8,119,6,100,3,141,255,32,250,111,243,202,237,31,235,33,235,143,236,224,238,17,241,155,240,128,236,166,231, +50,229,63,229,44,231,215,234,48,238,210,238,192,237,46,237,228,236,85,236,63,236,93,236,39,236,21,237,70,239,223,238, +144,233,7,227,57,224,229,225,115,229,192,231,182,230,234,226,69,223,129,221,44,220,36,217,176,212,85,209,55,209,241,211, +217,214,102,215,40,213,130,209,127,206,2,206,132,208,52,212,166,214,33,215,90,214,74,213,62,213,205,214,99,216,191,216, +242,217,29,222,7,227,255,228,188,227,78,225,164,223,180,224,220,228,177,232,232,232,79,231,129,231,89,233,225,234,106,236, +226,238,149,241,23,244,142,246,115,247,140,245,143,243,248,244,39,249,162,253,212,1,22,5,179,5,20,4,108,2,78,1, +171,0,209,1,213,4,162,7,128,9,129,11,157,13,226,14,234,14,140,13,239,11,244,12,37,17,11,21,13,22,255,20, +135,19,103,19,90,22,210,26,251,28,26,29,211,30,233,33,194,34,28,33,178,31,174,31,73,33,232,36,122,40,216,40, +19,39,202,38,10,40,223,40,237,41,91,43,13,42,145,37,105,34,138,34,53,35,50,35,221,34,38,32,230,26,33,24, +48,26,192,28,61,28,35,25,26,20,248,14,228,13,255,16,226,18,2,17,83,14,250,12,91,12,252,11,165,11,244,10, +97,10,47,10,164,9,143,8,203,6,127,3,35,0,81,0,168,3,174,5,12,5,76,4,212,3,196,1,31,254,149,250, +237,248,17,251,59,0,225,2,240,254,56,248,87,245,1,247,234,248,96,248,77,246,218,244,82,245,253,246,124,247,44,245, +195,240,200,236,67,236,63,240,109,245,196,246,72,243,72,238,162,234,84,233,182,234,169,237,5,240,146,241,242,242,162,242, +211,239,167,237,158,238,145,240,79,241,250,241,60,243,187,243,162,243,92,244,53,245,249,244,231,244,245,245,107,246,158,245, +203,245,159,247,137,248,62,247,83,245,5,244,233,243,56,246,206,249,52,250,95,246,182,243,198,245,71,248,82,246,117,242, +182,242,223,247,254,252,217,253,13,251,84,248,157,248,109,251,114,253,91,252,178,249,43,248,215,247,2,248,193,249,236,252, +165,254,36,254,233,253,107,254,208,253,4,253,149,254,147,1,208,2,98,1,209,254,84,253,161,254,50,2,86,5,74,6, +167,5,9,5,219,5,36,8,205,9,245,8,95,6,5,4,38,3,83,4,170,6,180,7,158,6,113,5,27,5,250,3, +217,1,75,1,132,3,255,5,151,5,89,2,151,255,5,0,73,2,230,2,92,1,118,0,7,1,110,0,244,253,55,253, +104,0,53,4,133,4,204,1,73,255,3,255,174,0,73,2,33,2,106,1,169,2,111,5,247,6,24,6,140,3,166,0, +122,255,188,0,185,1,150,0,5,0,76,2,62,5,206,6,244,7,202,8,122,7,251,3,127,0,24,255,14,1,137,5, +221,8,237,8,24,8,50,8,27,7,15,4,159,2,248,4,151,8,140,10,66,10,29,8,96,5,6,4,60,4,104,4, +194,4,21,7,153,10,34,12,160,10,103,8,226,7,166,8,140,8,164,7,93,9,143,15,104,22,234,24,59,23,222,20, +61,19,174,17,150,16,83,17,55,20,243,23,134,26,6,27,184,26,101,27,202,28,121,29,132,29,243,29,116,30,65,30, +32,30,220,30,123,31,210,31,226,33,155,37,44,39,192,36,104,33,246,31,238,31,128,32,93,33,57,33,183,31,66,30, +145,28,41,25,244,21,215,21,84,22,196,18,83,12,19,8,215,6,121,4,100,254,93,247,75,244,79,246,73,249,3,249, +222,245,206,242,233,240,12,239,111,236,1,234,143,233,111,235,58,237,69,236,76,233,186,231,69,233,43,236,180,237,7,237, +178,235,222,235,50,237,29,236,123,230,225,223,160,221,202,223,62,226,191,226,85,225,145,221,53,216,10,212,195,209,157,207, +84,206,209,207,97,209,17,207,46,203,134,202,88,204,21,205,165,204,92,204,233,203,2,204,38,206,73,208,23,207,44,204, +6,204,70,207,48,211,119,214,109,217,6,220,238,221,111,222,68,220,129,216,183,215,181,220,1,228,201,231,114,230,44,227, +226,225,210,227,58,231,76,234,186,237,111,242,76,246,170,246,173,244,214,243,15,246,3,251,197,0,169,4,42,6,120,7, +240,8,142,8,95,7,212,8,29,12,212,13,167,14,215,16,254,18,168,19,47,20,118,20,93,19,84,19,8,22,13,23, +6,19,20,14,254,12,91,15,115,19,215,23,123,25,137,23,220,21,185,22,152,23,28,23,116,23,130,25,76,27,106,27, +190,26,45,27,76,29,56,31,122,31,190,31,80,33,19,34,1,33,152,32,125,33,189,33,191,34,30,39,34,43,46,41, +168,35,57,33,171,34,230,35,161,34,92,31,82,28,202,28,150,32,48,34,98,30,114,25,66,24,180,25,82,26,217,24, +69,21,137,16,132,13,22,14,65,16,114,17,7,18,138,18,210,16,215,11,137,7,68,8,65,12,91,14,179,13,69,13, +101,13,170,11,92,8,138,6,110,7,153,9,26,11,252,9,40,5,219,254,145,251,235,252,194,255,7,0,63,253,149,250, +222,250,202,252,137,251,77,244,243,234,26,231,105,235,203,241,133,242,17,237,249,230,52,228,170,228,50,231,52,234,1,235, +162,232,39,229,189,225,163,221,168,218,71,220,57,225,10,229,73,231,115,233,102,233,237,229,204,226,200,225,51,224,18,223, +176,226,11,233,93,236,212,236,98,237,159,236,153,233,15,232,224,233,221,235,227,235,105,235,232,235,99,237,111,239,154,241, +157,243,192,244,162,243,203,240,135,239,57,241,60,243,146,243,128,243,159,244,1,247,143,249,91,250,15,249,237,248,226,251, +173,253,250,249,103,244,177,243,233,247,254,251,238,253,138,255,249,1,235,4,103,7,78,7,195,3,32,0,15,0,145,2, +104,5,64,9,239,13,61,16,18,15,49,13,120,12,173,12,237,13,180,15,134,16,231,16,65,18,145,18,46,15,199,10, +164,10,247,14,170,18,186,17,27,13,8,9,144,8,133,10,92,11,178,9,61,7,2,6,212,6,94,9,158,11,190,11, +92,11,235,12,15,14,239,10,164,5,206,2,51,2,88,2,60,5,133,10,124,13,91,13,179,13,183,13,64,10,204,5, +59,4,103,4,60,5,190,8,186,13,160,15,227,13,143,11,113,9,169,6,254,3,35,3,94,5,200,10,106,16,97,17, +5,12,255,3,175,254,197,254,201,2,5,7,33,9,8,9,153,6,174,1,120,252,235,249,25,250,183,251,13,255,130,3, +244,5,107,5,132,4,138,3,246,255,217,250,47,248,227,248,0,252,195,0,17,3,28,255,41,250,167,251,106,0,174,1, +22,1,205,1,103,1,181,255,255,255,142,0,238,254,185,255,79,5,161,8,85,5,38,1,66,1,179,3,172,4,10,2, +158,252,77,250,102,0,56,10,217,12,237,4,191,250,111,248,145,255,151,8,70,11,237,6,132,1,185,255,144,0,30,1, +89,1,186,2,90,4,12,4,133,2,180,2,236,4,145,5,139,1,121,251,233,250,116,3,142,13,154,13,239,2,153,249, +192,250,57,1,82,2,207,253,67,253,42,4,76,10,100,8,114,1,113,252,114,252,56,0,32,4,2,5,185,3,148,2, +134,0,75,252,189,248,113,248,242,249,253,251,204,255,137,5,202,10,215,11,99,5,90,249,63,241,252,244,236,255,100,5, +0,0,92,247,29,246,194,253,187,5,198,4,181,250,204,241,18,244,136,253,41,255,180,243,46,232,132,233,70,244,236,252, +56,254,152,250,27,247,245,246,191,247,165,244,191,238,4,236,204,237,239,239,233,240,45,243,118,246,181,246,1,243,47,240, +20,242,31,246,61,247,50,244,201,239,210,236,98,235,4,234,69,233,169,235,209,240,241,244,128,246,201,246,41,245,157,240, +41,236,81,235,85,237,199,239,155,241,116,242,117,242,198,241,135,239,133,236,156,236,75,241,211,246,57,249,158,247,132,243, +199,240,105,242,15,245,133,242,241,234,193,228,51,229,67,236,221,244,151,248,58,246,104,242,77,240,107,238,91,235,148,232, +24,232,3,234,114,236,216,237,114,239,85,243,98,248,184,250,11,248,153,242,64,240,166,244,111,251,119,252,175,246,200,241, +13,244,36,251,62,0,158,0,158,255,135,0,231,1,96,1,43,0,131,0,140,1,108,0,73,252,166,248,68,250,115,0, +72,5,48,6,57,6,8,7,240,6,58,5,21,2,154,253,94,250,91,251,199,254,44,1,1,3,190,5,220,7,107,7, +207,4,22,2,35,2,91,6,1,12,204,14,225,13,113,11,246,8,147,6,104,5,74,7,71,11,216,13,126,14,109,16, +137,19,109,19,242,14,103,9,82,5,138,4,181,8,99,14,63,15,168,11,144,9,140,10,53,11,137,9,74,6,128,3, +103,3,129,5,109,6,193,4,134,2,139,1,4,2,110,3,253,3,166,1,141,253,161,251,136,253,107,0,101,1,138,1, +205,2,220,3,220,2,228,0,2,255,156,252,41,251,125,253,142,2,182,6,207,8,189,9,138,9,118,7,23,3,9,254, +19,252,157,254,80,2,29,4,42,4,70,3,250,2,242,4,3,6,61,1,253,249,120,248,8,253,216,0,177,255,107,250, +42,245,16,245,63,250,13,255,87,0,2,0,73,255,137,254,98,255,214,0,88,255,211,251,25,251,71,254,170,2,152,6, +41,9,249,8,212,6,179,5,119,6,18,7,114,6,211,5,185,5,52,5,146,4,21,5,139,6,141,8,215,11,88,15, +45,16,60,14,223,11,215,9,73,8,86,8,176,9,25,11,178,12,2,14,17,14,44,15,86,19,60,23,233,23,23,23, +8,21,26,16,91,11,141,10,87,11,241,11,79,16,153,25,146,33,46,34,79,27,2,18,87,13,42,16,226,21,219,24, +133,24,8,23,34,22,89,23,108,26,88,28,255,26,87,24,242,23,7,26,150,26,199,22,76,17,245,14,56,17,75,22, +247,26,111,27,255,22,216,17,127,15,189,14,177,13,0,13,58,13,64,13,61,12,5,11,177,10,105,10,136,8,87,6, +4,7,117,10,201,13,139,15,22,15,239,11,142,8,228,7,36,8,53,6,7,3,26,1,199,1,131,5,182,9,42,10, +28,8,139,8,95,11,117,12,40,10,167,4,47,253,120,248,8,250,35,254,9,255,22,252,62,248,202,246,212,249,49,255, +79,1,70,254,43,250,231,248,115,249,165,248,138,246,120,246,193,249,227,253,68,0,83,255,224,249,210,242,20,241,107,246, +139,252,140,254,54,254,2,255,141,1,22,3,56,0,190,250,131,249,207,254,252,4,68,7,149,6,43,5,242,3,112,3, +39,3,196,1,180,255,205,255,27,4,73,10,168,13,21,14,255,15,135,19,104,19,67,14,12,8,55,3,241,0,116,3, +117,9,39,14,165,16,166,19,25,23,46,25,91,26,212,27,152,29,30,31,192,31,196,31,150,32,206,33,20,33,39,31, +162,32,5,40,3,50,148,56,250,56,220,53,159,50,200,47,141,46,224,49,21,57,17,64,62,68,98,67,210,59,161,50, +69,47,178,47,48,45,94,41,79,41,181,42,101,40,29,34,4,27,13,23,147,24,223,27,137,26,71,20,204,12,174,3, +50,247,241,234,57,228,249,227,129,232,146,239,110,243,214,236,226,220,98,206,181,200,76,200,188,199,53,199,179,200,41,205, +187,211,91,213,180,201,225,181,168,169,243,170,201,177,194,183,124,189,213,194,236,195,29,189,192,175,200,163,97,161,28,168, +120,176,28,180,102,177,222,170,61,164,185,157,186,149,184,142,100,140,46,142,208,146,200,153,205,157,190,152,176,141,85,133, +210,131,3,136,153,141,181,142,249,138,62,136,74,135,48,131,0,128,141,131,196,143,77,151,152,149,121,146,104,148,51,153, +220,156,237,158,138,160,102,163,78,169,46,176,37,179,236,178,106,181,66,187,167,191,192,193,25,196,111,198,224,199,194,201, +46,205,86,211,36,221,186,230,78,235,242,236,253,237,172,233,169,223,113,219,182,228,50,244,64,255,150,3,123,4,156,4, +99,4,107,3,244,2,121,5,25,12,206,21,64,31,186,35,105,34,38,32,121,32,108,34,186,37,88,43,211,49,199,55, +173,61,89,65,38,63,199,57,217,57,88,68,74,84,23,94,64,91,228,82,204,80,147,85,110,88,73,86,138,85,192,91, +223,101,215,107,28,106,95,101,87,99,226,99,53,100,105,100,245,102,197,108,88,114,13,114,232,107,189,102,240,101,39,101, +137,97,168,94,173,95,241,98,96,101,220,101,36,101,203,99,155,97,228,95,118,96,24,97,237,94,111,93,99,96,205,98, +117,94,129,86,118,82,38,85,193,91,5,96,82,93,227,86,186,83,136,84,248,83,53,78,23,68,210,58,126,56,83,61, +125,67,126,69,205,63,119,49,41,33,21,25,132,25,29,25,67,19,148,12,170,10,211,13,251,16,134,14,63,7,70,1, +179,254,31,251,128,243,224,234,65,230,21,231,175,234,40,238,72,241,91,244,148,244,117,237,50,223,185,209,151,204,9,205, +109,204,208,205,79,215,13,226,113,225,255,212,158,196,36,181,50,171,226,171,247,179,126,186,47,188,59,187,232,185,62,186, +101,187,142,184,153,177,43,174,143,178,236,185,185,189,165,187,14,181,254,173,244,170,163,173,171,180,159,188,18,193,135,191, +169,185,212,179,220,177,147,180,40,186,251,192,169,198,205,197,193,188,89,180,29,182,190,191,163,200,228,204,179,204,164,201, +251,199,81,203,31,209,136,211,210,208,34,206,131,210,148,222,170,235,220,243,123,245,69,240,36,232,145,230,84,239,132,249, +39,251,5,245,167,239,199,242,71,255,155,13,31,21,227,20,102,17,164,13,77,10,87,7,96,4,123,2,193,3,174,7, +17,12,61,17,102,24,141,30,1,30,237,21,140,13,21,13,252,20,140,31,189,39,118,42,211,38,253,32,74,30,208,30, +15,33,164,37,197,41,28,41,117,39,63,43,169,48,137,47,111,40,49,34,105,33,234,37,249,42,68,44,170,43,82,43, +59,39,141,30,22,25,74,26,185,27,234,25,1,25,219,26,80,28,87,27,209,24,15,23,204,24,179,29,220,32,219,30, +177,26,249,24,227,24,110,22,144,17,128,14,144,15,223,18,96,21,169,21,197,20,255,19,45,17,43,10,170,3,87,3, +164,5,164,4,148,2,16,2,217,254,174,247,84,242,57,241,135,241,18,242,176,242,214,242,163,244,196,248,168,249,143,243, +59,235,173,230,201,230,170,233,190,236,247,237,133,237,33,236,14,234,130,233,9,236,18,238,229,235,144,231,199,228,115,228, +37,230,122,232,152,233,44,234,3,235,80,233,160,228,135,227,190,233,255,239,192,237,104,229,123,224,159,227,200,234,218,238, +100,236,254,230,232,230,200,239,196,250,251,254,49,252,117,246,18,239,73,233,226,234,23,242,81,247,162,249,167,252,72,255, +252,255,242,0,57,1,151,253,240,248,44,248,63,250,10,253,214,1,182,7,11,10,241,6,130,1,159,254,120,1,206,8, +163,15,198,17,52,15,2,12,213,12,104,17,195,20,67,20,24,18,11,17,175,18,240,22,138,26,80,27,78,28,223,30, +82,30,125,25,109,22,153,23,133,24,164,22,32,20,218,19,44,24,116,32,81,38,5,36,156,28,130,23,151,22,14,22, +10,20,78,19,230,21,68,25,174,25,193,22,156,19,214,20,215,27,18,34,69,31,188,21,99,15,188,15,185,18,3,21, +198,20,78,17,151,14,181,16,239,19,53,18,107,12,143,7,16,6,82,7,217,8,252,7,72,5,208,3,85,4,237,3, +202,255,132,249,148,246,143,249,55,254,95,255,96,252,66,247,185,243,249,245,190,251,148,252,144,246,4,241,54,240,209,241, +46,244,171,246,213,246,66,244,204,241,149,240,24,239,106,236,78,233,19,232,141,234,101,238,130,239,222,238,184,240,41,244, +51,243,25,236,212,229,75,232,170,241,30,248,53,246,203,239,231,234,102,234,67,238,129,243,80,246,108,246,174,245,83,244, +229,242,89,243,150,245,150,247,103,248,27,247,207,242,205,237,140,235,21,236,200,237,64,240,184,242,38,244,119,245,141,247, +59,248,222,244,230,238,107,235,109,237,158,242,231,247,253,252,194,255,186,251,242,242,45,238,9,241,189,247,14,255,175,4, +74,5,190,1,255,254,88,254,199,253,136,253,82,254,96,255,92,1,238,4,84,7,5,6,85,2,206,254,36,253,27,254, +230,255,163,255,9,254,171,254,45,2,156,4,27,2,52,252,186,248,248,249,89,251,166,248,253,243,230,241,5,244,131,248, +63,251,200,248,255,241,11,235,98,231,108,232,69,237,176,242,179,245,196,245,192,243,240,240,150,238,180,236,194,234,45,233, +28,232,251,231,229,235,148,245,193,255,80,3,140,255,196,248,55,243,156,241,59,244,64,249,167,254,133,1,239,254,137,249, +232,247,53,251,16,255,43,1,50,1,30,254,127,249,50,247,133,247,176,247,155,246,34,245,7,245,24,248,167,252,175,253, +50,249,159,242,146,238,17,239,64,242,72,244,221,244,72,247,241,250,30,251,15,248,60,248,193,254,219,6,4,10,67,7, +103,3,111,2,97,3,100,4,20,7,125,13,50,22,81,29,96,31,44,28,251,23,71,23,131,25,245,26,106,26,125,26, +179,29,240,33,192,33,237,27,27,22,113,21,117,25,223,30,234,33,189,31,11,26,63,21,243,17,33,14,20,11,53,12, +215,18,191,28,74,35,15,32,226,21,219,13,100,11,12,12,153,14,145,17,106,18,2,19,6,23,180,28,130,32,245,33, +236,31,35,26,20,23,102,28,69,36,36,37,208,30,255,23,28,21,184,22,101,27,43,32,132,34,184,34,91,34,153,33, +229,31,212,29,177,27,22,24,222,18,228,14,100,14,169,16,26,20,14,23,55,24,184,24,219,25,249,24,238,19,54,14, +192,10,46,7,170,2,4,1,206,3,66,8,175,11,134,12,17,10,178,5,79,1,139,253,248,250,158,249,222,248,158,250, +157,0,190,5,138,3,10,253,41,250,97,252,34,0,232,2,25,3,146,0,41,254,114,253,21,252,225,248,111,246,187,246, +226,248,166,251,179,254,181,1,222,3,12,4,41,1,152,251,90,246,4,245,169,247,178,250,64,251,220,248,16,244,108,239, +240,238,65,242,183,244,35,245,146,245,152,244,193,240,57,238,98,239,42,239,119,234,80,230,217,231,99,238,70,246,103,251, +220,250,245,245,106,241,4,241,114,245,193,251,199,254,0,253,72,251,149,253,203,0,18,0,60,252,205,249,20,251,18,255, +251,2,2,3,165,253,39,247,36,245,60,247,145,249,138,251,19,254,89,0,46,3,64,8,16,12,21,10,125,5,158,4, +54,8,78,13,152,16,156,14,132,9,177,10,5,22,67,35,36,42,36,43,20,42,59,41,253,40,211,38,182,33,69,32, +46,41,0,55,160,61,144,57,172,49,229,44,71,44,186,44,26,43,117,39,212,36,163,37,87,41,102,45,241,46,55,44, +61,38,101,32,106,29,57,30,61,34,55,37,26,32,60,18,110,5,58,2,152,5,180,7,222,5,70,2,126,0,86,2, +8,4,215,255,181,246,6,238,2,231,208,223,219,215,214,206,84,199,125,200,92,211,129,221,30,223,160,219,14,216,186,213, +75,213,31,211,117,200,253,184,160,178,158,186,70,200,255,209,55,211,103,203,147,193,185,191,121,196,78,196,216,186,242,174, +208,166,197,163,119,166,222,172,1,177,66,177,115,178,220,180,148,177,139,166,90,154,89,146,146,142,223,141,58,142,128,141, +173,142,135,150,8,161,198,163,2,156,19,146,245,142,80,148,210,157,141,165,114,166,145,158,119,146,187,139,161,143,235,153, +63,164,233,172,165,179,127,183,119,185,167,186,137,185,157,181,19,177,95,173,68,172,114,177,40,188,1,197,183,199,15,200, +108,202,211,206,172,211,185,215,123,218,59,221,199,224,87,226,214,222,96,217,77,218,212,229,149,245,196,254,61,254,70,250, +28,249,34,251,153,253,82,254,117,253,17,254,231,2,179,10,78,18,111,24,222,28,32,31,186,31,232,31,81,32,52,34, +109,39,205,46,170,51,148,51,230,49,14,52,212,59,83,69,189,73,83,70,156,65,102,69,32,82,193,93,148,96,98,92, +177,86,119,83,139,84,255,87,226,89,7,91,136,95,194,101,50,104,254,102,30,102,174,101,245,99,108,97,34,94,252,89, +46,88,239,90,41,94,47,93,125,89,169,86,240,84,75,83,93,82,213,82,147,83,202,82,21,80,198,76,18,74,6,72, +184,70,144,70,195,70,163,69,177,66,5,63,214,60,109,62,140,66,95,67,222,61,95,55,115,53,252,52,175,48,211,42, +229,40,89,43,119,47,254,50,216,50,121,45,22,39,225,35,224,32,98,26,101,20,87,20,46,24,104,26,19,25,146,20, +179,13,170,7,14,6,4,8,191,9,124,9,34,7,37,2,220,251,110,248,163,249,4,252,198,251,125,249,56,248,87,249, +3,251,248,249,114,245,147,240,158,238,70,240,176,245,6,254,81,4,29,3,197,251,101,244,80,240,118,239,166,241,61,246, +188,251,31,1,36,5,67,6,19,5,251,2,132,255,8,252,203,253,149,5,45,11,139,8,9,3,11,3,149,8,45,13, +144,12,185,8,119,7,127,11,209,15,202,13,199,6,190,1,81,1,201,3,95,9,20,18,3,25,128,25,120,21,38,18, +45,18,97,20,196,20,234,15,45,8,165,4,156,9,7,20,239,27,218,27,18,24,235,25,196,32,169,33,44,25,65,16, +83,13,128,14,181,16,89,16,7,10,90,3,233,6,197,18,189,25,138,22,15,15,108,8,75,4,213,3,177,4,185,1, +100,250,241,243,245,243,104,252,89,8,142,12,197,2,222,242,151,233,60,233,20,234,158,230,175,225,131,225,114,231,116,237, +229,236,252,229,20,222,113,217,90,217,247,219,16,220,78,214,172,206,216,202,32,202,232,200,130,198,82,195,231,192,208,196, +226,208,40,219,41,217,45,206,33,196,115,190,181,187,183,186,62,185,0,182,128,180,61,184,160,190,29,194,46,192,212,186, +84,182,153,180,169,179,237,178,162,180,16,183,252,180,77,175,67,172,253,172,195,173,163,173,182,173,45,174,64,176,131,179, +80,178,18,171,163,167,144,175,176,186,21,189,242,183,151,180,135,182,90,186,119,188,41,188,101,187,242,188,51,193,76,197, +29,198,85,195,238,191,226,191,198,196,3,205,115,213,106,218,14,218,250,215,197,217,137,222,49,224,50,221,169,217,207,216, +116,219,224,224,196,229,239,231,142,234,96,240,116,246,105,250,211,253,248,255,109,254,115,252,228,254,202,2,175,1,126,251, +226,245,118,246,183,255,19,14,189,24,137,26,131,23,99,22,113,24,41,26,120,24,83,20,135,18,88,22,107,28,33,31, +30,31,247,33,40,41,38,48,186,50,232,48,107,45,195,42,144,41,244,41,104,45,129,51,113,55,231,54,29,55,23,60, +15,65,23,64,77,58,133,52,44,50,75,51,149,51,44,48,159,46,236,52,201,61,68,64,101,61,227,59,58,61,87,62, +237,60,19,57,243,52,242,49,170,46,34,43,136,42,22,45,90,47,12,49,80,52,229,55,52,57,204,55,51,51,255,43, +231,38,20,39,136,40,105,38,20,34,206,31,45,33,69,36,74,37,49,34,245,29,21,29,169,30,84,29,93,23,126,17, +61,16,227,17,245,17,43,16,206,15,91,17,74,17,139,13,116,8,210,4,73,2,3,0,19,0,15,4,181,8,60,9, +175,4,191,253,237,248,77,250,20,0,211,2,191,255,229,251,103,250,112,249,181,248,154,248,59,246,94,241,125,239,198,242, +159,246,145,247,127,246,3,245,166,244,96,246,13,248,166,246,18,243,244,240,156,241,104,242,121,240,179,237,95,239,83,246, +100,253,183,0,129,0,150,253,32,250,71,250,67,254,58,1,235,0,167,255,217,254,91,254,226,254,227,255,5,255,141,252, +31,252,248,255,70,6,202,10,25,10,231,4,205,255,98,254,200,255,25,1,118,1,121,2,87,5,141,8,104,9,49,8, +188,8,192,12,253,15,203,13,200,8,211,7,75,12,231,16,4,18,245,17,236,20,157,27,169,33,51,33,186,25,96,17, +157,13,92,14,80,17,244,20,187,23,172,24,55,24,138,22,10,20,65,19,244,21,129,25,40,26,197,23,103,20,48,17, +94,14,61,12,13,11,242,10,44,12,206,14,189,17,210,18,166,17,240,16,71,18,214,18,243,15,176,11,53,9,153,8, +243,8,234,9,242,9,203,7,181,5,111,6,55,8,37,7,31,3,164,255,29,255,16,1,134,3,65,4,226,1,74,253, +77,249,34,248,27,249,104,249,242,247,31,247,165,248,221,249,21,248,45,245,193,243,41,243,142,242,105,242,185,241,211,239, +102,239,126,241,57,242,2,240,64,239,72,242,145,244,48,241,78,233,135,226,241,224,79,227,180,229,20,231,82,233,255,236, +116,240,224,241,140,240,196,237,156,235,150,233,17,230,173,226,28,226,112,227,216,228,47,231,8,235,227,238,137,241,65,242, +138,240,27,238,30,237,43,236,58,233,137,230,144,231,201,235,234,239,119,241,16,240,241,237,100,238,122,241,88,243,149,241, +219,238,234,238,48,241,121,242,79,242,77,243,178,246,133,250,232,251,61,250,36,248,90,248,242,249,137,250,158,250,191,251, +81,253,125,254,116,255,7,0,32,1,201,4,25,9,159,9,111,7,27,7,35,8,53,7,199,4,219,2,8,2,10,3, +136,5,151,7,163,9,158,12,51,13,69,9,239,5,187,7,181,11,76,13,157,11,5,8,227,5,97,8,236,12,225,13, +56,11,150,9,213,10,94,13,166,15,1,17,213,17,54,19,104,20,35,19,210,15,141,14,99,18,31,25,169,28,97,25, +176,18,8,15,184,15,138,16,60,15,117,14,36,16,220,17,5,17,202,14,135,13,164,13,24,14,232,12,90,8,18,3, +227,2,218,7,237,10,151,8,231,4,209,3,8,5,193,6,47,7,223,5,120,5,246,7,13,11,96,12,179,12,125,12, +63,11,243,9,225,8,155,6,47,4,82,4,246,5,174,6,155,7,178,9,44,10,127,7,46,4,90,2,154,1,232,0, +67,255,89,252,34,250,254,250,36,254,137,0,123,0,184,254,38,253,83,253,2,255,91,0,1,0,63,254,21,252,76,250, +148,249,171,250,253,253,211,2,5,7,92,8,162,6,154,3,239,0,69,255,238,254,187,255,115,0,35,0,136,255,201,255, +159,0,5,1,36,1,74,2,200,4,168,6,140,5,212,1,162,254,177,254,247,1,221,5,72,7,112,5,191,2,44,2, +197,4,190,9,131,14,254,15,191,14,209,14,188,16,9,16,28,11,18,6,165,4,140,7,70,14,132,21,208,23,234,20, +140,18,27,19,57,19,159,17,199,16,233,16,209,15,69,13,75,10,58,7,139,5,94,7,78,12,139,18,189,24,15,28, +201,25,173,20,199,17,107,16,120,12,188,5,100,255,27,253,129,2,52,14,86,23,24,24,46,21,166,20,141,21,240,19, +100,13,19,3,39,252,154,254,131,4,1,4,206,254,0,253,45,255,49,1,133,2,119,4,240,6,34,8,233,3,134,248, +201,235,180,227,253,222,67,220,242,222,109,231,109,241,103,250,124,255,187,251,26,241,190,231,30,224,251,212,173,202,245,202, +68,212,152,220,212,223,98,224,216,224,4,227,197,229,215,227,98,220,4,215,226,215,176,216,130,211,132,202,142,194,111,191, +175,195,202,204,96,213,20,221,126,228,3,229,166,217,211,200,154,186,233,175,62,169,227,168,233,173,96,183,93,197,160,208, +183,207,0,198,29,189,34,181,125,171,220,165,97,168,20,174,191,177,62,178,170,175,246,173,169,178,252,186,75,191,151,191, +62,193,249,196,164,199,72,198,182,190,252,179,106,175,123,181,20,192,161,200,19,207,155,212,137,216,119,218,55,217,173,210, +46,201,235,195,218,198,163,206,71,213,125,215,164,214,103,215,11,220,137,224,96,224,145,221,89,220,63,220,173,219,95,221, +160,227,107,234,22,236,49,233,38,232,203,237,155,247,15,254,4,253,30,248,16,246,147,249,61,255,57,1,198,254,7,255, +128,7,89,18,41,22,225,19,74,19,193,21,115,22,129,20,133,20,200,25,41,34,130,39,70,37,196,30,240,28,77,35, +81,43,254,45,38,45,251,46,121,52,160,56,74,55,209,49,166,45,66,47,32,54,146,61,124,65,229,64,232,60,16,56, +50,54,52,57,233,61,50,63,40,60,7,57,57,58,132,63,252,67,127,67,32,64,23,63,117,64,153,63,2,60,243,57, +66,58,104,58,131,59,206,63,153,67,14,66,148,61,59,60,47,64,46,71,16,76,53,73,185,63,62,57,165,60,211,68, +19,71,250,63,230,55,208,57,165,68,228,74,219,68,240,58,254,55,20,59,180,60,7,58,190,54,194,55,98,60,93,61, +116,54,19,45,38,40,100,39,197,39,71,41,109,44,195,47,24,49,24,46,15,38,196,28,185,23,7,24,51,26,102,27, +251,27,88,29,236,30,43,30,204,25,46,20,89,17,131,18,44,20,194,17,97,11,250,5,7,5,16,7,80,9,106,11, +102,14,210,17,89,18,148,12,226,2,244,252,31,254,162,0,135,254,68,250,90,250,48,0,72,7,247,10,50,9,206,1, +186,247,56,241,126,241,134,244,86,246,29,249,107,254,95,1,61,253,33,244,1,237,242,237,126,245,163,249,108,244,126,237, +194,237,171,241,163,241,207,237,185,233,136,230,126,229,7,232,219,236,102,241,157,243,189,242,43,241,163,241,150,241,51,237, +101,231,248,229,56,233,141,237,240,240,120,243,40,246,145,249,41,252,34,252,157,249,222,244,158,238,79,235,102,239,45,248, +173,254,228,255,2,254,79,253,204,0,39,5,42,2,221,246,98,237,198,236,108,240,252,242,145,246,168,252,101,1,202,2, +177,2,151,0,6,251,111,245,251,243,178,244,188,242,209,236,163,230,124,231,89,243,247,1,176,5,225,253,161,246,208,245, +35,246,178,243,162,240,78,239,53,240,11,243,52,246,2,248,32,248,172,246,248,244,176,245,26,248,161,247,177,243,65,241, +49,242,203,242,81,240,202,235,168,231,148,230,220,233,162,239,210,244,253,246,102,243,206,233,155,224,220,222,30,226,149,225, +143,218,152,211,47,212,232,220,118,230,116,232,210,226,94,221,180,220,166,221,172,220,220,217,43,213,220,206,224,202,7,205, +43,212,220,220,255,227,204,229,9,225,155,218,154,215,223,214,71,213,255,210,224,208,56,207,228,208,219,215,61,222,36,220, +108,212,68,209,18,212,95,212,154,207,53,205,192,208,240,211,131,209,106,204,253,201,33,204,115,209,114,214,134,215,145,212, +17,209,214,207,181,208,100,210,90,212,46,214,218,214,47,214,4,214,249,215,50,219,186,221,115,222,92,221,55,220,202,221, +63,226,192,230,127,233,139,234,242,233,176,232,127,232,247,232,85,233,77,235,182,238,194,239,127,238,21,240,126,245,46,250, +64,252,136,253,239,254,238,0,209,3,158,4,104,0,83,251,204,252,3,5,5,13,143,16,134,17,44,18,112,18,73,19, +26,22,143,24,231,23,220,22,228,24,89,27,243,26,141,26,247,29,209,35,164,40,150,42,114,41,28,39,65,38,176,38, +125,38,57,38,159,39,9,42,90,44,4,48,81,54,87,60,155,61,86,58,38,55,63,54,228,53,89,53,194,53,96,55, +167,58,25,64,32,68,22,66,150,60,185,58,29,62,128,66,15,68,55,66,10,64,53,65,156,67,121,65,32,59,174,54, +243,54,52,58,44,62,18,64,44,62,242,58,1,57,224,54,68,51,35,48,249,46,103,47,53,49,182,51,74,53,187,52, +240,48,200,41,173,34,96,31,205,30,115,30,69,31,244,33,219,35,131,35,73,34,99,32,26,29,160,25,179,22,198,18, +205,13,65,10,184,8,31,8,195,9,113,14,215,17,243,15,96,11,116,7,102,2,171,251,15,248,197,249,75,252,177,251, +186,248,106,245,139,243,120,244,122,246,220,245,241,241,52,237,126,233,214,230,223,227,219,222,215,216,47,214,91,217,159,223, +29,228,31,228,113,224,176,219,246,214,223,209,216,205,246,204,166,205,249,204,230,203,15,205,68,208,209,211,44,214,124,213, +3,210,73,207,18,207,52,207,174,206,223,206,46,207,33,206,135,205,215,207,9,212,193,215,142,217,250,215,82,211,75,207, +59,206,34,206,193,205,219,206,41,209,255,209,181,209,112,210,248,210,70,209,72,207,146,207,212,208,226,208,211,208,236,210, +150,214,235,216,223,216,173,216,91,218,221,220,77,222,255,222,232,224,25,229,243,233,34,236,67,235,199,235,243,240,71,248, +232,253,140,0,158,255,208,251,101,249,180,251,175,0,23,5,141,8,115,11,3,14,15,17,189,19,128,19,198,16,58,15, +168,16,186,19,135,22,133,23,76,22,12,21,149,22,118,26,92,29,181,29,65,30,143,34,53,41,71,44,199,40,204,34, +110,32,35,35,25,40,222,44,12,49,69,52,209,53,130,54,0,56,248,57,148,58,5,57,255,53,175,51,241,52,22,57, +55,59,225,57,58,58,47,63,43,68,37,68,40,64,203,60,113,60,147,60,71,57,245,51,87,50,16,54,71,59,181,62, +51,63,199,60,64,58,57,58,195,57,253,52,221,46,87,45,206,48,124,52,176,52,126,50,185,49,245,50,90,50,105,46, +172,42,158,41,218,41,110,41,128,39,208,36,23,36,170,37,50,37,203,32,157,28,25,27,149,25,239,22,47,21,109,20, +211,18,103,16,187,14,173,14,158,15,178,15,121,13,79,9,72,4,155,255,59,253,225,253,250,254,172,253,220,250,254,249, +176,252,69,0,17,0,191,250,218,243,232,238,181,235,6,233,157,231,224,232,66,236,175,238,242,236,189,231,220,227,102,228, +133,230,63,229,233,223,207,218,253,217,34,221,209,224,221,225,21,223,41,218,51,215,117,216,52,219,185,219,61,218,19,217, +183,216,230,215,201,213,140,211,176,211,103,214,203,216,195,217,103,219,218,221,171,222,160,221,50,220,27,218,96,215,13,214, +241,214,206,216,216,218,99,220,221,220,13,222,203,225,185,229,82,230,225,227,158,224,219,221,0,221,160,222,186,224,167,225, +171,226,70,229,29,233,234,236,147,238,144,236,107,233,131,233,253,235,210,235,49,232,251,229,35,233,245,240,84,249,254,252, +101,249,229,241,211,236,65,237,90,241,138,245,8,248,230,249,145,252,251,254,81,255,19,254,255,252,62,253,242,255,207,4, +112,8,78,8,64,6,244,4,238,4,73,6,126,8,151,9,207,9,229,11,155,15,22,18,22,19,7,19,24,16,121,11, +137,10,146,14,26,19,43,21,215,20,104,18,112,16,255,18,133,24,121,26,9,23,43,19,1,19,54,22,102,26,180,28, +48,27,85,23,223,20,157,21,114,24,61,27,197,27,147,25,76,24,15,28,134,34,169,36,3,32,149,25,168,23,211,27, +230,33,218,35,151,32,67,29,5,30,93,33,120,35,175,33,10,28,21,23,51,24,177,29,109,32,117,29,58,24,68,21, +220,22,26,27,92,28,200,23,12,17,25,13,4,14,99,19,123,24,59,22,170,12,235,3,44,1,160,2,137,5,36,8, +136,8,85,7,33,7,94,7,19,5,187,255,235,248,249,241,54,237,37,238,94,245,13,254,214,1,210,254,35,248,99,241, +103,236,233,233,141,232,193,229,221,226,191,228,216,235,40,242,19,242,149,234,241,222,207,213,98,212,42,216,103,217,84,212, +71,205,161,203,205,208,85,213,61,210,67,202,99,196,95,194,106,194,214,194,128,192,3,186,194,180,222,181,158,185,106,185, +164,180,187,174,237,170,228,171,81,177,77,182,50,182,95,177,203,171,88,169,207,170,136,172,165,170,90,167,114,168,197,174, +142,181,101,185,41,186,54,184,59,181,2,180,71,179,73,175,129,170,29,171,6,176,241,179,203,183,90,190,65,196,197,197, +70,195,78,188,43,178,229,172,120,176,152,180,148,178,49,176,151,180,107,190,57,200,41,205,5,203,152,197,23,195,58,196, +173,197,223,197,169,196,87,195,92,198,234,207,8,219,207,225,173,227,223,226,134,226,34,230,86,236,169,238,147,235,175,233, +30,238,24,247,225,255,67,4,174,3,54,4,183,11,160,21,112,24,70,19,82,13,60,12,122,17,133,26,131,32,65,31, +209,27,24,29,161,34,187,40,37,46,194,49,101,50,188,49,209,49,152,50,50,52,35,54,5,54,244,52,88,56,75,64, +100,70,150,72,122,74,104,76,44,76,163,75,118,77,184,79,246,79,111,79,20,80,39,82,115,85,236,88,52,90,203,88, +236,87,187,90,10,96,115,99,244,97,230,92,238,88,214,89,50,95,21,101,22,103,2,99,106,91,239,86,23,89,103,93, +48,94,123,92,28,92,60,93,48,94,241,93,252,90,208,85,178,82,35,83,134,82,40,78,253,73,206,73,76,76,168,78, +139,79,18,78,5,74,75,69,121,66,61,65,75,62,101,56,23,51,30,50,227,52,162,56,95,59,165,59,215,56,43,52, +179,47,54,45,238,44,29,44,78,40,222,35,50,34,52,34,106,34,154,36,90,40,158,41,55,39,111,35,150,31,165,28, +64,27,100,24,57,17,173,9,237,7,24,12,152,17,71,20,64,18,6,13,121,8,93,6,65,5,129,3,49,0,248,250, +180,245,160,243,199,245,245,249,78,252,227,249,18,244,246,239,76,240,183,242,11,244,32,243,120,239,208,233,181,229,48,230, +143,233,247,235,220,236,5,238,129,238,234,235,75,232,162,232,231,236,221,238,186,233,212,223,206,216,202,218,50,228,99,237, +27,241,139,239,201,233,2,225,188,217,38,217,27,223,49,230,123,232,85,228,172,222,90,222,136,227,168,231,22,230,83,224, +212,218,88,217,70,220,68,224,120,226,185,227,91,229,84,230,191,229,218,228,79,229,88,231,245,232,68,231,203,226,191,224, +175,228,218,234,49,236,231,230,0,225,41,226,84,235,240,244,148,246,37,240,154,233,101,233,161,237,168,240,252,240,158,240, +10,240,89,239,154,240,39,244,91,247,200,249,203,252,155,253,57,248,81,239,127,233,154,233,160,238,232,245,42,251,36,252, +148,251,88,252,1,254,59,0,8,2,56,254,73,242,130,230,144,229,123,239,168,251,167,2,13,2,173,252,209,248,140,249, +137,251,230,251,190,252,56,255,148,255,29,251,93,245,180,244,195,251,252,5,108,10,119,4,25,250,163,246,9,255,177,12, +154,19,180,13,195,0,126,248,246,250,166,3,237,8,164,5,146,254,21,253,25,3,229,8,145,8,125,4,162,0,159,253, +51,251,203,248,49,245,95,242,102,244,230,249,69,253,179,253,155,254,239,255,29,255,93,252,216,248,60,244,249,239,148,239, +146,243,212,248,204,252,56,254,240,251,106,247,151,245,243,248,26,253,216,251,247,244,128,238,18,238,47,243,31,248,238,247, +166,242,168,235,249,229,215,226,82,226,114,228,237,232,111,236,30,233,66,222,77,212,122,211,56,217,131,219,172,212,125,201, +130,196,231,202,147,214,66,221,113,218,210,208,175,199,242,198,91,206,91,211,223,206,214,198,55,196,137,200,185,208,203,216, +233,219,98,216,233,209,163,204,14,202,184,202,33,206,229,209,128,211,216,209,28,206,134,203,151,203,134,204,107,205,176,206, +21,206,33,202,6,199,49,200,172,202,175,203,230,203,36,202,53,197,99,193,175,194,75,198,175,200,218,202,151,205,130,207, +208,208,33,210,97,209,149,205,77,202,253,202,254,206,94,212,192,217,190,220,31,220,63,219,247,221,78,227,103,232,4,236, +57,236,134,231,216,225,120,225,124,231,159,240,90,249,95,253,241,249,135,243,90,242,108,248,240,255,223,2,240,0,124,254, +239,254,196,1,79,5,247,8,127,11,154,11,80,10,133,9,149,10,59,15,166,22,136,27,92,27,109,26,198,27,61,29, +141,29,59,29,114,27,36,26,200,30,242,40,51,49,170,51,115,50,191,47,38,46,84,49,201,55,189,58,200,55,163,51, +232,50,115,54,92,61,12,69,105,73,188,72,187,69,17,68,142,68,210,69,225,70,170,71,21,72,52,72,225,72,115,74, +128,75,189,74,63,73,245,72,101,74,11,77,168,79,4,80,153,77,40,75,56,74,137,72,139,69,182,68,46,71,140,73, +198,73,229,72,184,71,250,70,204,71,249,72,41,72,154,69,24,66,222,60,145,55,81,54,56,57,34,60,173,60,6,59, +192,55,11,53,155,53,65,56,198,56,20,53,189,46,42,41,67,39,173,40,200,41,27,40,214,36,120,34,62,34,69,35, +206,34,50,31,203,26,65,25,248,26,57,29,181,28,36,23,70,14,111,8,107,9,71,13,167,14,125,13,88,11,198,7, +216,3,63,2,109,2,217,1,250,255,206,251,162,243,65,235,203,233,20,239,54,244,174,245,123,244,255,240,14,236,121,232, +74,231,203,230,173,229,188,227,58,225,78,223,173,222,162,222,244,222,52,224,24,226,97,228,252,230,160,231,36,228,49,223, +20,221,202,221,147,222,219,221,134,219,97,217,13,218,151,220,174,221,18,222,224,224,138,228,245,228,151,225,84,220,24,215, +195,212,130,214,180,216,216,215,175,213,227,213,207,217,142,224,132,230,156,230,42,224,164,216,10,213,145,213,62,216,90,219, +182,221,222,223,95,227,88,231,179,232,242,230,187,229,94,232,178,237,57,241,202,239,7,235,48,232,203,234,196,240,232,244, +56,245,248,244,191,247,167,252,62,0,70,1,1,1,101,0,212,255,27,0,229,0,5,0,88,253,183,252,236,0,156,7, +231,12,127,15,138,15,191,13,32,12,176,11,242,10,146,9,186,9,171,11,39,13,20,14,133,16,177,20,210,24,117,27, +225,27,64,26,184,23,85,21,65,20,249,21,196,25,155,28,204,29,137,31,53,34,21,36,198,36,250,36,233,36,49,37, +83,38,3,39,235,37,2,36,149,35,230,37,113,41,122,42,208,39,94,37,115,38,205,40,18,41,245,39,212,39,253,40, +215,41,123,40,182,36,15,33,34,32,146,33,62,35,0,36,17,36,33,36,64,36,146,35,255,33,6,33,40,33,200,32, +4,31,245,28,103,27,49,26,189,25,195,26,204,28,36,30,229,28,124,24,73,19,55,17,43,19,197,21,212,21,144,19, +93,16,128,12,107,8,141,5,4,5,202,6,131,9,181,10,64,9,14,7,207,5,35,4,151,0,245,251,39,247,218,242, +222,240,21,242,195,244,37,247,88,248,7,247,100,243,68,240,1,239,204,237,23,235,144,230,98,224,247,218,126,217,15,219, +70,220,156,220,240,220,125,220,161,219,97,220,139,221,16,219,226,211,224,202,152,195,27,193,66,196,90,201,178,203,119,203, +28,204,152,206,106,208,54,206,151,198,81,189,127,185,161,188,213,191,227,189,5,186,177,185,20,190,122,196,167,199,107,195, +252,186,82,182,132,183,148,185,159,184,135,180,31,175,27,172,220,173,112,177,222,178,159,178,26,179,130,181,252,185,131,189, +210,186,43,178,215,170,67,170,50,175,1,181,28,183,228,180,15,180,175,185,65,194,179,198,132,197,234,193,244,190,117,190, +208,191,219,191,46,190,87,191,212,197,112,205,62,209,64,209,166,207,133,205,10,204,84,204,166,205,43,207,222,209,203,213, +234,216,166,218,64,220,182,221,139,222,122,223,24,224,76,223,104,223,173,227,78,234,225,238,66,240,254,239,8,240,140,242, +126,247,104,251,83,252,191,252,104,255,250,3,167,8,254,11,203,13,108,15,232,17,70,20,91,21,161,21,101,22,166,24, +129,28,118,32,107,34,44,34,197,33,103,35,173,39,19,45,226,48,151,49,143,48,135,48,87,50,7,52,190,51,190,50, +222,51,244,55,90,61,227,65,36,68,99,68,137,68,156,69,61,70,114,69,213,68,38,70,159,72,20,74,164,73,230,72, +62,74,198,77,217,80,107,81,230,79,186,77,148,76,15,78,2,81,49,81,62,77,234,73,158,75,80,80,67,83,213,82, +41,80,67,77,184,76,250,78,53,80,247,76,68,71,196,67,102,68,224,71,146,75,43,77,157,76,158,75,116,74,223,71, +63,68,78,65,89,63,144,61,48,60,89,60,76,62,99,64,22,64,229,60,24,57,82,54,223,51,119,49,18,48,41,47, +63,45,33,43,109,42,12,42,48,40,2,38,148,37,76,38,17,38,218,35,186,31,183,26,254,22,15,22,86,23,143,25, +142,27,156,27,249,24,119,21,20,19,222,17,107,17,49,17,70,15,198,10,44,6,254,3,201,3,140,4,40,6,89,7, +70,6,40,3,179,255,42,253,24,252,188,251,228,249,171,245,104,241,181,239,22,240,95,240,221,239,118,239,173,239,14,240, +210,239,182,237,185,232,214,226,132,224,31,227,159,230,21,231,32,229,148,227,26,228,153,230,28,233,12,233,70,230,46,227, +41,225,225,223,101,223,220,223,100,224,212,224,119,226,55,229,0,231,183,230,17,229,241,226,132,225,229,225,145,226,77,224, +109,219,94,216,243,217,123,222,148,226,13,228,188,226,80,224,203,222,248,222,123,224,23,226,11,226,12,224,40,222,110,222, +166,224,186,226,154,226,190,224,140,224,30,228,225,232,225,234,239,232,105,228,170,224,209,225,124,231,222,235,25,236,212,235, +140,237,248,238,8,239,109,239,201,239,77,238,240,235,254,234,0,236,145,238,151,241,150,242,14,241,112,240,206,242,114,245, +207,245,168,244,218,242,200,240,167,240,168,243,253,246,214,247,189,246,34,245,39,244,65,245,200,247,200,248,209,247,67,247, +118,247,73,247,147,247,75,249,87,251,206,252,120,253,76,252,75,249,230,246,21,247,88,249,185,251,6,252,203,249,169,247, +25,248,43,250,211,251,98,252,161,251,58,250,95,250,175,252,156,254,38,254,12,252,147,249,171,247,174,247,202,249,245,251, +72,252,55,251,176,250,72,252,177,255,8,2,34,0,157,250,222,245,18,245,98,247,189,250,69,254,218,0,195,0,57,254, +166,251,170,250,236,250,94,251,238,250,4,249,173,246,66,246,217,248,192,252,42,255,190,254,255,251,82,248,185,245,223,245, +249,247,161,249,94,250,62,251,192,251,32,251,156,250,178,250,170,249,80,247,186,245,166,245,193,246,236,249,232,254,85,2, +58,1,115,252,227,247,105,247,39,251,172,254,33,254,27,251,229,249,55,252,25,0,27,2,116,0,21,253,101,251,30,252, +149,253,153,254,249,254,23,255,197,255,172,0,45,0,174,254,171,254,202,255,188,254,98,251,161,249,136,251,111,255,224,2, +142,3,25,0,186,250,183,247,47,248,27,250,223,251,125,252,208,251,121,252,54,0,110,3,160,2,25,0,32,254,180,250, +18,246,148,244,27,247,9,250,147,251,90,252,121,252,40,252,131,251,49,249,91,245,58,243,127,244,25,247,187,248,102,248, +210,245,195,242,36,242,144,243,8,243,94,238,126,232,160,230,133,234,38,240,151,242,242,241,63,241,169,240,75,238,133,234, +83,231,149,229,128,229,16,231,15,233,75,234,9,235,91,235,109,234,203,232,247,231,159,231,206,230,11,230,38,229,25,227, +35,226,116,229,246,233,181,233,161,229,146,227,246,228,181,230,156,230,61,228,198,224,111,223,157,225,224,227,66,226,64,221, +23,217,42,218,232,224,245,231,143,233,158,230,111,228,49,229,180,230,116,230,221,227,91,224,8,222,190,221,60,223,158,226, +106,231,147,235,114,237,85,237,77,236,102,235,140,235,29,236,33,235,120,232,197,230,50,232,67,236,243,240,88,244,181,245, +226,245,195,245,217,244,32,243,146,242,65,244,53,246,217,246,110,247,95,249,110,252,235,255,119,2,41,2,177,255,119,254, +6,0,239,2,3,6,176,8,213,9,147,9,220,9,149,11,220,13,249,15,129,17,33,18,183,18,185,20,15,24,88,27, +141,29,83,30,252,29,180,29,121,30,252,31,53,33,192,33,65,34,149,35,182,37,229,39,210,41,185,43,91,45,46,46, +102,46,223,46,245,47,66,49,125,50,166,51,237,51,58,50,202,47,34,48,155,52,211,57,104,59,250,56,135,54,8,56, +199,60,231,63,67,62,182,57,226,53,155,52,56,54,190,57,129,60,200,60,96,60,222,61,155,64,207,65,74,64,4,61, +50,57,208,53,27,52,175,52,138,54,109,56,73,58,39,60,249,60,183,59,218,56,9,54,116,52,128,51,199,49,142,47, +124,46,183,46,249,46,40,47,235,47,151,48,6,48,69,46,49,44,163,42,214,41,199,40,133,38,19,36,22,35,111,35, +206,35,40,35,17,33,94,30,28,29,48,30,198,31,47,31,170,27,56,23,156,20,55,20,4,20,44,19,244,18,119,19, +211,18,108,16,222,13,100,12,219,11,208,11,111,11,101,9,210,5,6,3,196,2,23,4,228,4,0,4,116,1,122,254, +229,252,5,253,111,253,116,253,46,253,168,251,139,248,77,246,211,246,31,248,141,247,142,245,237,243,75,243,137,243,59,244, +96,244,33,243,220,240,209,238,13,238,177,238,12,240,241,240,58,240,254,237,231,235,42,235,50,235,110,235,38,236,187,236, +54,236,148,235,48,236,42,237,46,237,71,236,126,234,31,232,65,231,51,233,211,235,215,236,31,237,41,238,74,239,88,239, +93,238,188,236,226,234,203,233,38,234,120,235,74,237,243,239,255,242,146,244,146,243,19,241,11,239,229,238,203,240,56,243, +47,244,128,243,147,242,134,242,211,243,107,246,10,249,17,250,95,249,208,247,214,245,21,244,37,244,31,247,147,251,3,254, +81,252,121,248,138,246,79,248,131,252,176,0,84,2,174,0,71,254,206,253,101,254,255,253,249,252,162,252,91,253,147,255, +26,3,139,5,9,5,67,3,206,2,156,3,80,4,109,4,140,3,53,1,223,254,66,255,167,2,122,6,191,8,49,9, +154,7,67,4,21,1,188,255,43,0,239,1,97,4,174,5,202,4,35,3,55,2,229,1,62,2,163,3,181,4,133,3, +117,0,138,253,226,251,127,251,46,252,120,253,127,254,150,254,180,253,75,252,253,250,62,250,231,249,52,249,130,247,22,245, +237,242,217,241,196,241,198,241,81,241,226,240,222,240,164,240,136,239,105,237,78,234,49,231,213,229,32,230,28,230,77,229, +151,228,180,227,155,226,230,226,233,228,212,230,143,231,87,230,161,225,180,218,100,214,204,214,93,217,7,220,162,222,53,224, +250,223,246,222,171,221,117,219,237,216,59,215,225,213,55,212,244,210,101,210,2,210,61,210,150,211,211,212,206,212,12,212, +202,210,127,208,26,206,22,205,138,204,220,202,179,200,91,199,204,198,5,199,99,200,102,202,153,204,25,207,192,208,182,207, +59,204,82,200,203,197,177,197,74,199,93,200,206,200,5,203,44,207,176,210,131,212,20,213,68,212,69,211,250,211,191,212, +184,210,169,207,94,207,234,209,116,213,96,217,125,220,80,221,18,221,175,221,1,222,94,220,20,218,9,217,71,217,188,218, +169,221,203,224,169,226,220,227,9,229,252,228,134,227,253,226,173,228,21,231,145,232,198,232,255,231,149,231,55,233,120,236, +83,239,64,241,28,243,217,244,200,245,98,246,247,247,200,250,95,253,71,254,252,253,56,254,236,255,22,3,66,7,16,11, +9,13,81,13,247,12,107,12,87,12,252,13,115,17,48,21,177,23,155,24,213,24,203,25,130,27,77,28,160,27,66,27, +169,28,222,30,226,31,41,31,94,30,184,31,168,35,138,40,34,44,197,44,112,42,107,39,66,38,238,38,181,39,65,40, +209,41,220,44,30,48,9,50,179,50,212,51,68,54,84,56,209,55,226,52,174,49,69,48,196,49,9,54,254,58,204,61, +225,61,51,61,24,61,21,61,205,60,82,60,62,59,240,57,232,57,243,58,31,59,83,58,39,58,193,58,107,59,95,60, +71,61,245,60,141,59,251,57,34,56,67,54,179,53,108,54,196,54,240,53,143,52,180,51,99,52,66,54,65,55,55,54, +44,52,2,50,157,47,144,45,174,44,91,44,186,43,88,43,237,43,248,44,155,45,58,45,47,43,156,39,96,36,67,35, +182,35,237,35,32,35,148,33,7,32,136,31,55,32,124,32,13,31,120,28,204,25,197,23,17,23,43,23,96,22,173,20, +19,20,228,20,249,20,22,19,91,16,94,14,146,13,69,13,160,12,168,11,217,10,59,10,165,9,16,9,50,8,250,6, +29,6,201,5,232,4,195,2,30,0,25,254,28,253,245,252,60,253,170,253,5,254,191,253,59,252,201,249,206,247,136,247, +138,248,242,248,154,247,95,245,211,243,179,243,175,244,121,245,201,244,103,243,129,243,38,245,206,245,12,244,118,241,131,240, +202,241,119,243,110,243,221,241,163,240,149,240,30,241,210,241,169,242,113,243,213,243,73,243,85,241,218,238,204,237,232,238, +241,240,111,242,253,242,205,242,244,241,186,240,215,239,213,239,129,240,97,241,243,241,110,241,200,239,154,238,48,239,184,240, +226,241,159,242,39,243,88,243,122,243,224,243,73,244,174,244,139,245,185,246,59,247,101,246,197,244,210,243,177,244,30,247, +208,249,167,251,54,252,161,251,104,250,63,249,18,249,121,250,173,252,242,253,79,253,19,251,129,248,173,247,183,249,194,252, +18,254,162,253,13,253,218,252,4,253,193,253,98,254,232,253,184,252,208,251,114,251,167,251,120,252,112,253,57,254,242,254, +76,255,226,254,99,254,130,254,107,254,71,253,69,252,10,253,35,255,201,0,35,1,110,0,75,255,247,254,123,0,218,2, +186,3,47,2,126,255,138,253,91,253,106,254,28,255,130,254,85,253,235,252,242,253,218,255,5,1,104,0,225,254,160,253, +128,252,1,251,27,249,3,247,11,246,206,247,205,250,103,251,57,249,74,247,75,247,194,248,182,250,8,251,190,247,217,242, +146,240,163,241,85,243,181,243,107,242,201,239,72,237,183,236,23,238,245,239,29,241,194,240,180,238,62,236,216,234,3,234, +130,232,219,230,132,230,179,231,132,233,0,235,39,235,184,233,196,231,25,230,79,228,84,226,226,224,44,224,22,224,208,224, +159,225,115,225,57,225,81,226,96,227,19,226,187,222,105,219,154,217,230,217,224,219,246,221,169,222,98,221,153,218,54,216, +55,216,21,218,172,219,61,220,12,220,188,218,163,216,169,215,206,216,120,218,94,218,23,216,117,213,157,212,235,213,254,215, +120,217,238,217,145,217,230,216,151,216,193,216,190,216,71,216,70,216,142,217,61,219,230,219,173,219,136,219,103,219,213,218, +35,218,241,217,210,218,239,220,24,223,172,223,17,223,46,223,206,224,44,227,236,228,204,228,42,227,80,226,153,227,248,229, +70,232,164,234,27,237,9,239,148,239,45,238,231,235,102,235,135,237,189,239,203,239,247,238,146,239,164,241,227,243,236,245, +202,247,211,248,147,248,149,247,111,246,169,245,133,246,154,249,43,253,21,255,81,255,51,255,213,255,178,1,251,3,244,4, +92,4,25,4,180,5,129,8,162,10,33,11,5,11,29,12,162,14,27,17,43,18,142,17,124,16,52,17,70,20,86,23, +124,24,158,24,201,24,191,24,242,24,120,26,219,28,186,30,135,31,82,31,161,30,194,30,32,32,42,33,203,32,92,32, +110,33,66,35,246,35,244,34,149,33,27,34,134,37,133,41,43,42,168,38,130,34,107,33,247,35,92,40,25,44,117,45, +19,45,209,44,182,44,133,43,184,41,8,41,181,41,130,42,107,42,195,41,69,42,31,45,176,48,28,50,220,48,158,46, +195,44,170,43,237,42,212,41,0,41,70,42,112,45,158,47,30,47,57,45,199,43,72,43,56,43,229,42,75,42,9,42, +232,41,226,40,25,39,248,37,40,38,47,39,81,40,122,40,175,38,198,35,4,34,95,34,164,35,54,36,66,35,237,32, +135,30,153,29,45,30,13,31,151,31,190,31,255,30,58,29,154,27,18,27,254,26,40,26,100,24,202,22,134,22,45,23, +236,22,35,21,46,19,56,18,65,18,226,18,243,18,43,17,174,14,246,13,239,14,137,15,50,15,101,14,253,12,78,11, +35,10,36,9,237,7,79,7,111,7,39,7,88,6,250,5,1,6,152,5,183,4,213,3,2,3,0,2,171,0,57,255, +21,254,121,253,153,253,160,254,205,255,179,255,44,254,156,252,230,251,142,251,214,250,119,249,196,247,226,246,183,247,80,249, +210,249,27,249,125,248,75,248,228,247,84,247,192,246,169,245,105,244,23,244,92,244,58,244,43,244,172,244,213,244,152,244, +254,244,149,245,82,245,211,244,154,244,205,243,165,242,97,242,197,242,250,242,99,243,3,244,175,243,66,242,48,241,153,241, +17,243,236,243,223,242,217,240,9,240,238,240,38,242,178,242,160,242,84,242,66,242,135,242,135,242,199,241,201,240,138,240, +131,241,47,243,100,244,122,244,13,244,22,244,133,244,177,244,180,244,17,245,84,245,170,244,143,243,79,243,78,244,31,246, +252,247,196,248,59,248,198,247,29,248,69,248,18,248,121,248,4,249,165,248,128,248,5,250,6,252,138,252,165,251,190,250, +240,250,120,252,86,254,246,254,200,253,200,251,174,250,167,251,4,254,160,255,71,255,244,253,85,253,16,254,129,255,102,0, +24,0,56,255,169,254,126,254,128,254,204,254,94,255,227,255,95,0,12,1,169,1,200,1,183,1,17,2,123,2,252,1, +188,0,18,0,193,0,52,2,72,3,51,3,45,2,120,1,28,2,161,3,190,4,191,4,233,3,17,3,0,3,191,3, +173,4,66,5,85,5,239,4,43,4,43,3,82,2,76,2,49,3,23,4,101,4,115,4,95,4,223,3,87,3,92,3, +157,3,125,3,205,2,144,1,121,0,204,0,106,2,147,3,142,3,113,3,242,3,124,4,78,4,18,3,18,1,128,255, +162,255,92,1,61,3,250,3,127,3,133,2,131,1,139,0,12,0,116,0,24,1,192,0,104,255,106,254,208,254,30,0, +245,0,180,0,244,255,90,255,189,254,240,253,75,253,7,253,242,252,245,252,2,253,138,252,254,250,226,248,112,247,48,247, +173,247,87,248,153,248,180,247,206,245,33,244,19,243,230,241,165,240,23,240,231,239,96,239,250,238,61,239,139,239,97,239, +222,238,234,237,115,236,251,234,215,233,203,232,230,231,192,231,174,232,10,234,161,234,2,234,226,232,217,231,188,230,145,229, +206,228,136,228,158,228,22,229,175,229,229,229,155,229,246,228,65,228,41,228,211,228,9,229,201,227,234,225,233,224,39,225, +253,225,134,226,22,226,202,224,192,223,22,224,175,225,34,227,7,227,72,225,52,223,60,222,175,222,168,223,20,224,159,223, +181,222,38,222,204,222,158,224,75,226,204,226,199,226,55,227,223,227,7,228,136,227,170,226,233,225,197,225,64,226,20,227, +75,228,207,229,29,231,6,232,202,232,59,233,247,232,79,232,17,232,156,232,165,233,203,234,19,236,161,237,39,239,36,240, +132,240,106,240,241,239,171,239,68,240,135,241,203,242,230,243,178,244,225,244,232,244,182,245,48,247,83,248,175,248,194,248, +36,249,18,250,94,251,142,252,33,253,245,252,117,252,61,252,156,252,160,253,74,255,65,1,230,2,12,4,226,4,33,5, +104,4,66,3,251,2,72,4,103,6,218,7,30,8,20,8,133,8,64,9,14,10,13,11,226,11,16,12,224,11,25,12, +44,13,251,14,213,16,211,17,188,17,63,17,53,17,217,17,127,18,110,18,34,18,191,18,77,20,198,21,117,22,55,22, +120,21,49,21,226,21,237,22,222,23,208,24,82,25,232,24,61,24,39,24,115,24,188,24,37,25,193,25,107,26,13,27, +114,27,122,27,136,27,3,28,155,28,166,28,5,28,85,27,83,27,52,28,100,29,1,30,178,29,25,29,28,29,193,29, +72,30,55,30,204,29,152,29,232,29,84,30,87,30,50,30,100,30,170,30,180,30,210,30,20,31,36,31,68,31,201,31, +24,32,145,31,141,30,195,29,177,29,60,30,106,30,126,29,58,28,223,27,163,28,237,29,219,30,136,30,14,29,149,27, +240,26,17,27,103,27,8,27,171,25,155,24,235,24,164,25,169,25,125,25,148,25,75,25,142,24,27,24,209,23,234,22, +144,21,124,20,215,19,149,19,207,19,50,20,59,20,17,20,2,20,191,19,14,19,94,18,233,17,46,17,226,15,159,14, +58,14,214,14,163,15,178,15,239,14,4,14,122,13,113,13,151,13,21,13,137,11,228,9,58,9,66,9,255,8,26,8, +7,7,127,6,208,6,81,7,53,7,167,6,18,6,40,5,223,3,248,2,160,2,48,2,155,1,73,1,255,0,130,0, +64,0,53,0,183,255,208,254,11,254,82,253,122,252,253,251,244,251,207,251,101,251,227,250,39,250,93,249,27,249,34,249, +128,248,46,247,21,246,202,245,36,246,163,246,188,246,84,246,219,245,154,245,72,245,132,244,103,243,110,242,238,241,215,241, +8,242,89,242,106,242,243,241,81,241,242,240,140,240,183,239,214,238,147,238,216,238,8,239,4,239,34,239,91,239,98,239, +89,239,120,239,121,239,47,239,184,238,248,237,24,237,234,236,134,237,227,237,156,237,74,237,34,237,34,237,165,237,115,238, +182,238,108,238,72,238,109,238,117,238,40,238,164,237,108,237,233,237,187,238,88,239,206,239,26,240,232,239,114,239,108,239, +227,239,75,240,102,240,96,240,100,240,149,240,29,241,225,241,90,242,56,242,204,241,133,241,124,241,201,241,105,242,240,242, +51,243,145,243,21,244,98,244,149,244,19,245,216,245,151,246,233,246,138,246,2,246,34,246,202,246,98,247,220,247,74,248, +169,248,46,249,151,249,60,249,119,248,80,248,200,248,70,249,189,249,41,250,123,250,11,251,208,251,34,252,40,252,181,252, +127,253,122,253,156,252,187,251,107,251,226,251,15,253,60,254,140,254,38,254,48,254,63,255,149,0,44,1,202,0,231,255, +61,255,75,255,216,255,97,0,245,0,214,1,196,2,122,3,252,3,27,4,173,3,26,3,210,2,224,2,45,3,133,3, +148,3,113,3,161,3,95,4,82,5,214,5,132,5,177,4,37,4,36,4,91,4,121,4,77,4,235,3,206,3,53,4, +185,4,253,4,46,5,128,5,225,5,55,6,102,6,54,6,143,5,191,4,93,4,172,4,92,5,13,6,153,6,194,6, +121,6,37,6,238,5,151,5,89,5,141,5,181,5,83,5,8,5,99,5,214,5,220,5,189,5,163,5,72,5,181,4, +51,4,204,3,149,3,212,3,83,4,122,4,57,4,254,3,215,3,144,3,55,3,208,2,64,2,207,1,220,1,53,2, +132,2,200,2,241,2,218,2,159,2,86,2,246,1,172,1,130,1,62,1,9,1,68,1,178,1,238,1,29,2,71,2, +17,2,136,1,6,1,160,0,96,0,79,0,24,0,129,255,5,255,25,255,139,255,253,255,68,0,25,0,82,255,124,254, +79,254,157,254,170,254,105,254,86,254,114,254,98,254,45,254,11,254,251,253,236,253,181,253,57,253,196,252,174,252,189,252, +156,252,97,252,32,252,209,251,161,251,149,251,105,251,37,251,19,251,59,251,121,251,165,251,130,251,38,251,246,250,236,250, +176,250,80,250,21,250,16,250,62,250,141,250,188,250,161,250,78,250,243,249,211,249,255,249,30,250,232,249,133,249,67,249, +79,249,153,249,183,249,101,249,249,248,199,248,202,248,2,249,67,249,10,249,98,248,11,248,62,248,127,248,145,248,155,248, +170,248,205,248,8,249,47,249,29,249,221,248,150,248,125,248,163,248,206,248,198,248,151,248,121,248,174,248,57,249,171,249, +168,249,90,249,20,249,1,249,60,249,159,249,202,249,178,249,158,249,182,249,232,249,15,250,9,250,255,249,47,250,103,250, +102,250,100,250,156,250,231,250,37,251,83,251,97,251,107,251,160,251,225,251,16,252,73,252,132,252,170,252,247,252,131,253, +244,253,25,254,49,254,96,254,153,254,212,254,14,255,56,255,74,255,102,255,180,255,28,0,71,0,54,0,70,0,148,0, +227,0,25,1,72,1,110,1,139,1,161,1,163,1,152,1,165,1,224,1,76,2,219,2,95,3,188,3,251,3,24,4, +11,4,254,3,22,4,70,4,124,4,171,4,199,4,245,4,105,5,7,6,141,6,225,6,253,6,227,6,189,6,168,6, +145,6,119,6,144,6,242,6,94,7,134,7,124,7,147,7,225,7,39,8,75,8,105,8,133,8,128,8,70,8,218,7, +112,7,88,7,147,7,193,7,179,7,179,7,9,8,135,8,184,8,123,8,35,8,246,7,232,7,232,7,232,7,197,7, +136,7,115,7,148,7,187,7,214,7,221,7,198,7,175,7,187,7,202,7,176,7,105,7,0,7,142,6,66,6,60,6, +104,6,158,6,189,6,193,6,187,6,172,6,131,6,67,6,2,6,195,5,135,5,88,5,55,5,29,5,19,5,46,5, +111,5,180,5,194,5,121,5,247,4,123,4,53,4,27,4,248,3,194,3,157,3,148,3,144,3,124,3,57,3,188,2, +78,2,52,2,80,2,111,2,144,2,145,2,79,2,250,1,183,1,98,1,3,1,214,0,212,0,201,0,194,0,218,0, +242,0,225,0,157,0,49,0,199,255,145,255,143,255,140,255,114,255,98,255,116,255,129,255,90,255,25,255,243,254,238,254, +246,254,10,255,37,255,55,255,62,255,55,255,5,255,166,254,83,254,64,254,72,254,40,254,238,253,229,253,32,254,95,254, +128,254,150,254,147,254,95,254,17,254,220,253,210,253,240,253,36,254,87,254,134,254,191,254,230,254,200,254,113,254,40,254, +17,254,27,254,52,254,96,254,134,254,133,254,114,254,111,254,103,254,71,254,56,254,75,254,83,254,69,254,79,254,133,254, +207,254,20,255,52,255,28,255,241,254,232,254,1,255,38,255,85,255,132,255,168,255,220,255,51,0,139,0,187,0,175,0, +103,0,250,255,157,255,119,255,138,255,212,255,68,0,163,0,204,0,213,0,209,0,187,0,162,0,171,0,211,0,251,0, +20,1,39,1,58,1,71,1,66,1,49,1,54,1,99,1,155,1,188,1,195,1,188,1,185,1,201,1,234,1,14,2, +51,2,92,2,115,2,86,2,27,2,6,2,41,2,77,2,80,2,62,2,34,2,4,2,252,1,255,1,240,1,224,1, +233,1,245,1,254,1,50,2,142,2,196,2,164,2,87,2,27,2,18,2,57,2,105,2,101,2,28,2,195,1,157,1, +181,1,228,1,3,2,249,1,204,1,178,1,210,1,15,2,55,2,52,2,2,2,171,1,87,1,42,1,34,1,34,1, +22,1,12,1,26,1,38,1,21,1,14,1,30,1,11,1,198,0,147,0,128,0,99,0,67,0,44,0,11,0,246,255, +25,0,91,0,125,0,107,0,40,0,195,255,91,255,2,255,188,254,148,254,139,254,137,254,136,254,145,254,159,254,173,254, +184,254,159,254,64,254,169,253,10,253,151,252,110,252,128,252,163,252,185,252,194,252,199,252,196,252,174,252,134,252,75,252, +246,251,157,251,112,251,116,251,141,251,169,251,177,251,135,251,67,251,6,251,195,250,127,250,103,250,111,250,102,250,88,250, +88,250,89,250,93,250,86,250,27,250,204,249,179,249,189,249,178,249,169,249,179,249,168,249,117,249,52,249,10,249,21,249, +63,249,64,249,1,249,183,248,142,248,154,248,203,248,220,248,168,248,103,248,88,248,113,248,156,248,197,248,211,248,213,248, +240,248,16,249,5,249,209,248,160,248,138,248,142,248,182,248,8,249,101,249,160,249,185,249,194,249,188,249,181,249,212,249, +10,250,41,250,41,250,28,250,34,250,92,250,170,250,200,250,211,250,7,251,75,251,135,251,213,251,26,252,52,252,87,252, +145,252,164,252,153,252,162,252,185,252,232,252,89,253,206,253,252,253,18,254,76,254,146,254,219,254,46,255,106,255,128,255, +137,255,147,255,169,255,235,255,93,0,219,0,75,1,168,1,244,1,55,2,110,2,155,2,199,2,238,2,10,3,23,3, +17,3,14,3,66,3,183,3,75,4,218,4,44,5,31,5,9,5,59,5,125,5,148,5,181,5,240,5,13,6,2,6, +240,5,225,5,243,5,70,6,188,6,37,7,104,7,115,7,88,7,62,7,38,7,10,7,253,6,237,6,208,6,205,6, +241,6,44,7,144,7,11,8,80,8,78,8,40,8,215,7,111,7,72,7,113,7,180,7,248,7,40,8,34,8,249,7, +205,7,157,7,124,7,133,7,148,7,135,7,109,7,90,7,73,7,54,7,25,7,246,6,210,6,161,6,100,6,74,6, +97,6,134,6,143,6,97,6,11,6,199,5,147,5,53,5,191,4,115,4,78,4,60,4,77,4,96,4,74,4,47,4, +47,4,46,4,38,4,3,4,149,3,3,3,167,2,124,2,90,2,83,2,100,2,104,2,88,2,47,2,209,1,82,1, +230,0,148,0,85,0,49,0,42,0,48,0,51,0,51,0,53,0,18,0,164,255,30,255,187,254,96,254,12,254,254,253, +32,254,46,254,58,254,92,254,90,254,28,254,194,253,79,253,222,252,167,252,158,252,161,252,192,252,233,252,238,252,229,252, +225,252,201,252,162,252,134,252,102,252,69,252,65,252,84,252,111,252,152,252,171,252,128,252,54,252,249,251,208,251,202,251, +238,251,26,252,55,252,76,252,101,252,124,252,111,252,46,252,246,251,4,252,67,252,137,252,205,252,251,252,6,253,12,253, +18,253,251,252,212,252,185,252,169,252,169,252,188,252,216,252,4,253,60,253,87,253,89,253,111,253,137,253,153,253,191,253, +244,253,17,254,31,254,29,254,243,253,210,253,238,253,27,254,67,254,127,254,183,254,207,254,237,254,10,255,6,255,12,255, +66,255,125,255,165,255,200,255,209,255,195,255,216,255,11,0,36,0,33,0,43,0,81,0,140,0,190,0,210,0,214,0, +227,0,1,1,52,1,119,1,169,1,190,1,196,1,210,1,242,1,21,2,28,2,12,2,9,2,20,2,36,2,60,2, +80,2,94,2,111,2,111,2,88,2,89,2,118,2,145,2,206,2,54,3,109,3,77,3,32,3,253,2,206,2,179,2, +183,2,198,2,7,3,124,3,201,3,209,3,211,3,206,3,162,3,112,3,84,3,78,3,98,3,126,3,142,3,187,3, +20,4,87,4,98,4,73,4,11,4,173,3,102,3,85,3,93,3,104,3,121,3,131,3,108,3,56,3,16,3,24,3, +57,3,74,3,63,3,29,3,236,2,202,2,191,2,196,2,221,2,243,2,205,2,120,2,47,2,250,1,221,1,252,1, +61,2,79,2,33,2,211,1,125,1,74,1,71,1,73,1,70,1,88,1,108,1,109,1,106,1,82,1,15,1,209,0, +206,0,248,0,25,1,231,0,75,0,160,255,68,255,35,255,15,255,252,254,216,254,184,254,214,254,23,255,47,255,32,255, +253,254,163,254,24,254,149,253,49,253,249,252,255,252,32,253,28,253,230,252,159,252,102,252,78,252,68,252,31,252,219,251, +161,251,140,251,140,251,122,251,95,251,97,251,109,251,78,251,19,251,233,250,217,250,224,250,234,250,210,250,173,250,162,250, +141,250,83,250,40,250,9,250,203,249,170,249,225,249,31,250,35,250,21,250,5,250,225,249,196,249,173,249,114,249,24,249, +194,248,106,248,25,248,253,247,57,248,182,248,33,249,30,249,173,248,31,248,187,247,153,247,149,247,114,247,75,247,115,247, +211,247,18,248,26,248,244,247,165,247,93,247,65,247,52,247,41,247,56,247,80,247,82,247,59,247,4,247,197,246,196,246, +20,247,112,247,156,247,142,247,97,247,71,247,66,247,28,247,209,246,159,246,160,246,182,246,187,246,161,246,127,246,110,246, +95,246,75,246,71,246,72,246,72,246,95,246,122,246,119,246,125,246,170,246,233,246,66,247,174,247,237,247,36,248,178,248, +79,249,129,249,120,249,106,249,33,249,185,248,148,248,173,248,235,248,128,249,103,250,77,251,3,252,133,252,205,252,234,252, +2,253,30,253,44,253,52,253,104,253,212,253,45,254,92,254,166,254,6,255,60,255,119,255,253,255,136,0,227,0,67,1, +162,1,194,1,203,1,251,1,62,2,125,2,205,2,83,3,33,4,12,5,197,5,38,6,52,6,5,6,216,5,208,5, +199,5,209,5,43,6,186,6,99,7,97,8,137,9,87,10,206,10,49,11,97,11,78,11,52,11,40,11,40,11,80,11, +151,11,235,11,84,12,170,12,193,12,202,12,252,12,95,13,1,14,174,14,8,15,29,15,48,15,49,15,47,15,114,15, +191,15,181,15,145,15,145,15,131,15,116,15,186,15,58,16,122,16,87,16,9,16,174,15,63,15,229,14,223,14,20,15, +74,15,149,15,240,15,12,16,242,15,217,15,131,15,229,14,125,14,61,14,193,13,99,13,134,13,188,13,200,13,234,13, +230,13,106,13,209,12,98,12,252,11,175,11,163,11,186,11,201,11,167,11,65,11,217,10,135,10,255,9,79,9,209,8, +112,8,30,8,40,8,105,8,110,8,83,8,87,8,66,8,247,7,162,7,65,7,216,6,157,6,128,6,53,6,160,5, +242,4,114,4,62,4,62,4,88,4,90,4,15,4,156,3,82,3,5,3,143,2,84,2,83,2,4,2,123,1,38,1, +220,0,109,0,28,0,230,255,153,255,99,255,100,255,104,255,81,255,22,255,170,254,45,254,166,253,3,253,136,252,118,252, +155,252,232,252,106,253,194,253,195,253,159,253,28,253,15,252,34,251,187,250,133,250,142,250,5,251,97,251,108,251,172,251, +26,252,46,252,236,251,144,251,25,251,179,250,148,250,160,250,182,250,210,250,198,250,120,250,3,250,149,249,81,249,46,249, +7,249,5,249,120,249,46,250,180,250,210,250,123,250,224,249,102,249,39,249,231,248,155,248,105,248,136,248,17,249,155,249, +169,249,121,249,95,249,24,249,165,248,102,248,43,248,199,247,187,247,35,248,149,248,46,249,248,249,90,250,68,250,45,250, +249,249,153,249,141,249,196,249,177,249,134,249,173,249,234,249,5,250,32,250,73,250,117,250,148,250,143,250,140,250,196,250, +27,251,109,251,175,251,170,251,89,251,14,251,201,250,96,250,27,250,41,250,90,250,192,250,114,251,255,251,32,252,11,252, +216,251,140,251,97,251,87,251,70,251,80,251,134,251,179,251,220,251,47,252,138,252,168,252,120,252,23,252,194,251,143,251, +115,251,127,251,184,251,230,251,254,251,31,252,53,252,64,252,128,252,224,252,44,253,136,253,215,253,202,253,160,253,151,253, +96,253,15,253,4,253,247,252,191,252,225,252,57,253,46,253,34,253,143,253,223,253,193,253,179,253,207,253,221,253,254,253, +38,254,22,254,243,253,228,253,215,253,242,253,63,254,93,254,64,254,67,254,109,254,140,254,164,254,177,254,154,254,104,254, +34,254,224,253,207,253,226,253,243,253,25,254,84,254,91,254,39,254,1,254,12,254,53,254,95,254,123,254,154,254,187,254, +165,254,85,254,249,253,151,253,82,253,134,253,8,254,86,254,128,254,214,254,35,255,42,255,17,255,237,254,162,254,42,254, +170,253,108,253,138,253,205,253,53,254,219,254,85,255,81,255,43,255,7,255,171,254,85,254,50,254,219,253,113,253,112,253, +120,253,84,253,171,253,85,254,127,254,146,254,44,255,153,255,130,255,159,255,216,255,149,255,40,255,214,254,59,254,151,253, +155,253,34,254,172,254,37,255,123,255,160,255,195,255,245,255,16,0,38,0,83,0,127,0,152,0,164,0,168,0,187,0, +222,0,234,0,213,0,205,0,230,0,250,0,235,0,228,0,8,1,27,1,255,0,11,1,90,1,168,1,247,1,78,2, +98,2,105,2,238,2,139,3,191,3,254,3,104,4,94,4,6,4,202,3,53,3,93,2,70,2,225,2,69,3,134,3, +6,4,132,4,230,4,61,5,89,5,119,5,249,5,106,6,70,6,201,5,86,5,67,5,187,5,18,6,178,5,59,5, +52,5,54,5,69,5,176,5,22,6,79,6,187,6,247,6,142,6,44,6,66,6,59,6,241,5,206,5,183,5,156,5, +205,5,3,6,180,5,60,5,73,5,163,5,160,5,48,5,185,4,105,4,67,4,86,4,96,4,254,3,122,3,85,3, +111,3,169,3,65,4,210,4,179,4,50,4,199,3,80,3,233,2,177,2,65,2,202,1,239,1,61,2,30,2,8,2, +27,2,250,1,38,2,174,2,121,2,162,1,85,1,103,1,55,1,14,1,197,0,6,0,141,255,148,255,83,255,43,255, +227,255,159,0,158,0,136,0,98,0,129,255,89,254,160,253,12,253,100,252,15,252,41,252,113,252,204,252,57,253,176,253, +5,254,10,254,213,253,136,253,34,253,178,252,59,252,167,251,69,251,111,251,188,251,190,251,169,251,140,251,77,251,75,251, +155,251,187,251,172,251,213,251,15,252,15,252,241,251,215,251,203,251,182,251,120,251,129,251,53,252,226,252,249,252,3,253, +4,253,119,252,228,251,170,251,249,250,229,249,124,249,180,249,51,250,61,251,79,252,178,252,12,253,153,253,107,253,182,252, +114,252,68,252,202,251,157,251,182,251,170,251,217,251,77,252,113,252,90,252,76,252,24,252,2,252,105,252,235,252,91,253, +9,254,154,254,155,254,115,254,111,254,67,254,247,253,217,253,234,253,39,254,171,254,52,255,50,255,160,254,63,254,126,254, +194,254,167,254,165,254,195,254,161,254,195,254,130,255,24,0,107,0,22,1,121,1,255,0,167,0,198,0,127,0,15,0, +10,0,201,255,86,255,172,255,99,0,132,0,138,0,254,0,111,1,145,1,81,1,139,0,200,255,182,255,59,0,255,0, +172,1,233,1,5,2,76,2,35,2,110,1,237,0,120,0,151,255,0,255,23,255,52,255,99,255,9,0,124,0,94,0, +63,0,41,0,209,255,141,255,105,255,10,255,183,254,203,254,239,254,194,254,55,254,98,253,139,252,222,251,92,251,57,251, +93,251,57,251,223,250,234,250,44,251,41,251,249,250,186,250,144,250,243,250,217,251,164,252,50,253,144,253,137,253,48,253, +179,252,255,251,89,251,238,250,103,250,254,249,48,250,87,250,30,250,127,250,118,251,25,252,217,252,6,254,116,254,35,254, +86,254,181,254,98,254,11,254,250,253,116,253,189,252,133,252,148,252,234,252,217,253,197,254,14,255,1,255,224,254,139,254, +27,254,221,253,11,254,149,254,57,255,36,0,129,1,146,2,219,2,3,3,252,2,243,1,128,0,214,255,206,255,17,0, +233,0,5,2,245,2,13,4,54,5,225,5,28,6,6,6,145,5,52,5,54,5,80,5,202,5,225,6,187,7,211,7, +165,7,82,7,186,6,45,6,188,5,147,5,113,6,52,8,228,9,101,11,180,12,240,12,10,12,6,11,50,10,108,9, +23,9,128,9,154,10,32,12,129,13,151,14,158,15,217,15,150,14,229,12,205,11,8,11,187,10,100,11,130,12,210,13, +145,15,201,16,142,16,155,15,119,14,211,12,78,11,176,10,183,10,89,11,216,12,148,14,212,15,105,16,26,16,37,15, +94,14,248,13,162,13,73,13,209,12,120,12,219,12,135,13,145,13,77,13,12,13,50,12,11,11,98,10,216,9,89,9, +179,9,155,10,90,11,76,12,71,13,107,13,240,12,59,12,219,10,60,9,87,8,241,7,175,7,239,7,107,8,160,8, +192,8,162,8,198,7,151,6,166,5,220,4,74,4,45,4,126,4,32,5,189,5,225,5,164,5,12,5,183,3,7,2, +174,0,120,255,136,254,176,254,168,255,168,0,166,1,241,1,154,0,115,254,146,252,247,250,64,250,225,250,118,251,85,251, +149,251,31,252,246,251,102,251,165,250,85,249,32,248,106,247,94,246,57,245,25,245,200,245,193,246,245,247,121,248,191,247, +251,246,214,246,146,246,14,246,165,245,46,245,180,244,92,244,222,243,77,243,1,243,193,242,90,242,9,242,237,241,57,242, +241,242,100,243,104,243,157,243,185,243,31,243,93,242,199,241,238,240,91,240,197,240,126,241,242,241,100,242,167,242,127,242, +57,242,194,241,249,240,79,240,226,239,149,239,176,239,35,240,179,240,170,241,186,242,41,243,89,243,131,243,247,242,100,242, +229,242,118,243,108,243,221,243,69,244,67,243,32,242,44,242,63,242,15,242,198,242,26,244,89,245,203,246,215,247,162,247, +238,246,119,246,254,245,187,245,217,245,213,245,237,245,191,246,183,247,45,248,115,248,200,248,26,249,118,249,173,249,155,249, +157,249,230,249,87,250,229,250,100,251,126,251,55,251,229,250,213,250,12,251,88,251,20,252,160,253,214,254,158,254,12,254, +223,253,24,253,7,252,26,252,139,252,90,252,167,252,169,253,27,254,124,254,172,255,157,0,204,0,229,0,134,0,137,255, +38,255,107,255,79,255,34,255,123,255,226,255,51,0,193,0,103,1,8,2,136,2,154,2,145,2,189,2,146,2,38,2, +64,2,85,2,177,1,69,1,138,1,171,1,226,1,17,3,158,4,173,5,118,6,248,6,179,6,218,5,231,4,212,3, +178,2,26,2,86,2,225,2,90,3,17,4,248,4,91,5,78,5,128,5,145,5,239,4,60,4,253,3,241,3,51,4, +193,4,247,4,252,4,92,5,138,5,48,5,8,5,33,5,14,5,30,5,63,5,252,4,202,4,205,4,69,4,159,3, +173,3,159,3,45,3,119,3,49,4,92,4,214,4,9,6,136,6,72,6,135,6,167,6,186,5,189,4,68,4,153,3, +14,3,134,3,115,4,22,5,215,5,194,6,3,7,119,6,190,5,242,4,8,4,160,3,251,3,110,4,222,4,209,5, +182,6,126,6,129,5,173,4,37,4,242,3,50,4,135,4,240,4,7,6,136,7,83,8,219,7,95,6,147,4,82,3, +189,2,119,2,177,2,140,3,132,4,126,5,142,6,252,6,128,6,235,5,82,5,42,4,254,2,128,2,104,2,182,2, +189,3,239,4,178,5,60,6,119,6,0,6,72,5,229,4,186,4,163,4,160,4,103,4,218,3,84,3,21,3,26,3, +82,3,121,3,91,3,106,3,56,4,104,5,14,6,225,5,112,5,86,5,119,5,246,4,61,3,65,1,146,0,63,1, +69,2,81,3,87,4,228,4,48,5,137,5,225,4,198,2,5,1,192,0,232,0,241,0,90,1,230,1,105,2,78,3, +244,3,112,3,123,2,226,1,48,1,115,0,73,0,68,0,241,255,205,255,167,255,178,254,184,253,65,254,223,255,239,0, +42,1,106,1,210,1,195,1,238,0,115,255,171,253,69,252,197,251,245,251,102,252,8,253,194,253,109,254,2,255,41,255, +120,254,96,253,145,252,20,252,236,251,73,252,222,252,80,253,190,253,26,254,24,254,171,253,207,252,197,251,61,251,62,251, +21,251,198,250,167,250,70,250,131,249,12,249,240,248,231,248,93,249,94,250,14,251,240,250,64,250,88,249,161,248,67,248, +22,248,49,248,127,248,78,248,137,247,255,246,254,246,100,247,38,248,179,248,136,248,59,248,58,248,233,247,28,247,85,246, +180,245,109,245,251,245,238,246,71,247,14,247,13,247,111,247,186,247,153,247,22,247,64,246,71,245,196,244,250,244,98,245, +223,245,221,246,178,247,111,247,205,246,136,246,252,245,69,245,88,245,191,245,197,245,19,246,181,246,164,246,12,246,201,245, +196,245,226,245,86,246,166,246,138,246,135,246,194,246,211,246,173,246,108,246,62,246,111,246,234,246,115,247,19,248,115,248, +44,248,181,247,108,247,233,246,53,246,214,245,206,245,25,246,195,246,47,247,8,247,229,246,233,246,167,246,66,246,245,245, +174,245,154,245,160,245,107,245,117,245,52,246,19,247,238,247,23,249,196,249,79,249,148,248,242,247,194,246,103,245,215,244, +12,245,204,245,34,247,135,248,111,249,35,250,249,250,191,251,5,252,143,251,185,250,30,250,6,250,132,250,97,251,0,252, +101,252,10,253,89,253,170,252,4,252,79,252,27,253,105,254,114,0,12,2,78,2,185,1,124,0,170,254,108,253,88,253, +214,253,254,254,74,1,28,4,128,6,244,7,31,8,37,7,108,5,26,3,242,0,26,0,128,0,143,1,125,3,38,6, +168,8,175,10,35,12,133,12,192,11,47,10,72,8,35,7,112,7,52,8,185,8,185,9,64,11,53,12,56,12,174,11, +17,11,24,11,252,11,255,12,187,13,130,14,93,15,29,16,150,16,85,16,76,15,80,14,242,13,2,14,110,14,137,15, +105,17,141,19,38,21,209,21,155,21,131,20,229,18,118,17,54,16,22,15,61,15,78,17,255,19,28,22,148,23,57,24, +28,24,199,23,233,22,55,21,243,19,210,19,5,20,126,20,158,21,137,22,190,22,194,22,67,22,2,21,86,20,204,20, +69,21,157,21,139,22,152,23,18,24,13,24,84,23,189,21,23,20,252,18,56,18,214,17,17,18,160,18,107,19,199,20, +64,22,170,22,235,21,24,21,135,20,103,19,178,17,130,16,78,16,163,16,68,17,252,17,73,18,61,18,66,18,31,18, +142,17,246,16,165,16,114,16,38,16,130,15,125,14,143,13,13,13,200,12,147,12,86,12,19,12,41,12,158,12,235,12, +44,13,189,13,215,13,202,12,18,11,234,8,80,6,133,4,108,4,244,4,92,5,74,6,167,7,142,8,209,8,87,8, +217,6,252,4,122,3,244,1,58,0,10,255,174,254,204,254,102,255,110,0,62,1,68,1,134,0,151,255,64,255,132,255, +115,255,183,254,4,254,116,253,122,252,87,251,122,250,115,249,77,248,10,248,157,248,19,249,154,249,153,250,51,251,9,251, +190,250,206,249,115,247,18,245,8,244,136,243,77,243,113,244,100,246,123,247,220,247,38,248,166,247,55,246,169,244,214,242, +180,240,194,239,124,240,67,241,89,241,157,241,14,242,215,241,41,241,160,240,25,240,129,239,117,239,74,240,107,241,3,242, +225,241,94,241,114,240,185,238,164,236,61,235,173,234,142,234,43,235,177,236,95,238,143,239,16,240,126,239,24,238,224,236, +209,235,79,234,48,233,114,233,84,234,27,235,38,236,0,237,175,236,215,235,152,235,151,235,60,235,228,234,205,234,188,234, +202,234,45,235,162,235,183,235,108,235,59,235,124,235,249,235,141,236,109,237,102,238,21,239,206,239,167,240,138,240,7,239, +84,237,49,236,26,235,83,234,231,234,147,236,77,238,3,240,169,241,122,242,160,242,237,242,181,242,44,241,173,239,111,239, +133,239,128,239,45,240,6,241,68,241,249,241,89,243,134,243,107,242,238,241,51,242,106,242,27,243,89,244,252,244,16,245, +106,245,179,245,115,245,59,245,133,245,56,246,17,247,205,247,131,248,116,249,41,250,27,250,186,249,115,249,15,249,208,248, +66,249,47,250,71,251,161,252,0,254,242,254,146,255,0,0,241,255,116,255,9,255,202,254,133,254,146,254,92,255,118,0, +97,1,139,2,8,4,199,4,152,4,161,4,246,4,185,4,128,4,95,5,214,6,21,8,44,9,222,9,185,9,37,9, +147,8,202,7,192,6,237,5,240,5,43,7,64,9,87,11,245,12,237,13,78,14,148,14,170,14,207,13,107,12,186,11, +189,11,44,12,142,13,70,15,213,15,151,15,150,15,65,15,66,14,161,13,176,13,6,14,241,14,107,16,117,17,179,17, +154,17,33,17,36,16,49,15,223,14,40,15,201,15,170,16,158,17,66,18,103,18,50,18,126,17,24,16,120,14,48,13, +90,12,56,12,19,13,108,14,198,15,35,17,24,18,250,17,214,16,0,15,231,12,89,11,95,10,86,9,206,8,166,9, +239,10,129,11,174,11,162,11,12,11,99,10,14,10,162,9,9,9,139,8,29,8,249,7,64,8,30,8,33,7,27,6, +115,5,137,4,58,3,59,2,251,1,27,2,11,2,233,1,13,2,9,2,117,1,218,0,130,0,9,0,152,255,138,255, +115,255,6,255,119,254,165,253,136,252,126,251,108,250,75,249,212,248,19,249,54,249,48,249,100,249,130,249,123,249,194,249, +30,250,242,249,90,249,226,248,197,248,193,248,129,248,75,248,115,248,96,248,131,247,74,246,49,245,79,244,195,243,75,243, +172,242,152,242,93,243,28,244,180,244,189,245,174,246,245,246,46,247,108,247,239,246,201,245,125,244,46,243,47,242,155,241, +252,240,110,240,155,240,123,241,150,242,167,243,164,244,237,245,147,247,176,248,202,248,111,248,189,247,160,246,212,245,126,245, +253,244,183,244,100,245,118,246,63,247,202,247,20,248,34,248,247,247,36,247,233,245,103,245,196,245,123,246,184,247,98,249, +212,250,40,252,97,253,163,253,215,252,177,251,84,250,7,249,105,248,44,248,230,247,49,248,56,249,37,250,152,250,216,250, +45,251,184,251,67,252,178,252,74,253,236,253,82,254,205,254,16,255,56,254,191,252,63,251,6,249,183,246,96,246,171,247, +11,249,237,250,109,253,7,255,140,255,177,255,253,254,130,253,54,252,6,251,10,250,64,250,61,251,218,251,125,252,140,253, +21,254,123,253,13,252,122,250,191,249,33,250,79,251,175,253,6,1,114,3,46,4,60,4,190,3,79,2,173,0,167,255, +118,255,54,0,55,1,180,1,69,2,85,3,4,4,193,3,155,2,234,0,215,255,5,0,161,0,165,1,230,3,206,6, +92,9,66,11,137,11,16,10,211,8,77,8,204,6,145,4,108,3,142,3,91,4,61,5,66,5,194,4,20,5,10,6, +8,7,66,8,41,9,162,9,31,11,57,13,159,13,110,12,87,11,150,10,241,9,196,8,230,5,16,3,132,3,100,6, +185,8,129,10,108,12,199,13,181,14,67,15,46,14,225,11,172,10,67,11,138,12,93,13,91,13,120,13,168,14,231,15, +213,15,162,14,252,12,143,11,208,10,7,10,242,8,20,9,230,10,9,13,169,14,75,15,196,14,211,14,86,16,40,17, +161,16,162,16,18,17,169,16,152,15,129,13,48,10,238,7,197,7,209,7,127,7,130,7,202,7,142,9,172,13,41,17, +202,17,143,17,146,17,132,16,124,14,79,12,70,10,132,9,57,10,115,10,135,9,147,8,18,8,80,8,55,9,74,9, +110,8,128,8,153,9,121,10,58,11,251,11,99,12,247,12,96,13,48,12,225,9,221,7,90,6,204,5,122,6,24,7, +76,7,18,8,176,8,245,7,109,6,153,4,7,3,42,3,154,4,146,5,145,6,143,8,143,10,1,12,191,12,160,11, +3,9,177,6,108,4,144,1,48,255,216,253,141,253,211,254,126,0,247,0,60,1,237,1,254,1,40,2,43,3,162,3, +47,4,129,6,15,8,96,6,175,3,119,1,167,254,32,252,246,250,247,249,118,249,13,251,188,253,207,255,58,1,212,1, +132,1,209,0,88,255,217,252,215,250,141,250,213,251,238,253,123,255,235,255,95,0,177,0,98,255,8,253,20,251,134,249, +229,248,188,249,104,250,26,250,68,250,13,251,109,251,111,251,255,250,47,250,57,250,226,250,233,250,50,251,34,252,3,252, +37,251,175,250,220,248,54,245,150,242,170,241,86,241,143,242,63,245,76,247,240,248,10,251,29,252,207,251,148,251,249,250, +34,249,27,247,155,245,82,244,106,243,41,243,185,243,232,244,91,245,205,244,239,244,168,245,118,245,80,245,69,246,247,246, +99,247,159,248,35,249,210,247,103,246,78,245,165,243,180,242,140,243,228,244,43,246,206,247,12,249,246,248,159,247,159,245, +178,243,205,241,153,239,123,238,173,239,222,241,80,244,189,247,214,250,233,251,220,251,217,250,177,247,226,243,138,241,11,240, +45,239,248,239,123,241,110,242,92,243,95,244,237,244,73,245,89,245,4,245,86,245,67,246,138,246,84,246,219,245,114,244, +33,243,240,242,30,242,34,240,60,239,189,239,113,240,33,242,216,244,138,246,41,247,49,248,244,248,31,248,81,246,195,244, +248,243,244,243,153,244,224,245,110,247,242,248,255,250,63,253,127,253,137,251,186,249,88,248,104,246,95,245,47,246,137,247, +222,249,25,254,147,1,10,2,250,0,106,255,8,253,87,251,186,251,218,252,100,253,231,253,245,254,253,255,223,255,96,254, +169,252,115,251,189,250,153,251,127,254,122,1,150,3,249,5,221,7,103,7,112,5,74,3,145,0,9,254,60,253,135,253, +41,254,53,0,177,3,154,6,186,7,158,7,24,7,72,6,51,5,205,4,202,5,16,7,223,7,26,9,56,10,145,9, +111,8,245,8,195,9,10,9,243,7,166,7,188,7,44,8,187,8,148,8,103,8,169,9,162,11,69,12,30,11,152,9, +17,9,145,9,164,10,77,12,201,13,235,13,152,13,10,14,145,13,4,11,241,8,197,8,138,8,204,7,0,8,204,8, +169,9,142,11,181,13,254,13,235,12,23,12,234,10,218,8,139,7,17,8,74,9,225,9,180,9,237,8,148,7,98,6, +73,6,211,6,245,6,54,7,103,8,149,9,192,9,54,9,202,7,39,5,162,2,109,1,215,0,105,0,207,0,48,2, +32,4,52,6,104,7,188,6,129,4,246,1,56,0,138,255,76,255,126,255,203,0,15,2,121,1,67,0,142,0,109,1, +144,1,192,1,193,1,87,0,139,254,185,253,190,252,5,251,26,250,120,250,20,251,182,251,122,252,190,252,155,252,52,253, +135,254,217,254,92,253,164,251,3,251,80,250,121,248,135,246,80,245,171,244,60,245,34,247,135,248,241,248,37,250,6,252, +138,252,106,251,104,249,100,246,41,243,95,241,230,240,226,240,52,242,136,245,226,248,193,249,66,248,40,246,7,244,155,241, +192,239,81,239,128,239,246,239,187,241,64,244,66,245,40,244,242,241,56,239,182,236,88,235,47,235,90,236,237,238,108,241, +85,242,3,242,249,240,62,239,159,237,168,236,12,236,73,236,13,238,234,240,117,244,196,247,209,248,193,247,212,246,93,245, +129,241,95,237,142,235,10,235,133,235,155,238,8,243,238,245,87,247,13,248,87,247,226,245,181,245,91,246,250,245,127,245, +53,247,50,250,102,251,108,250,43,249,253,247,55,246,87,244,166,242,45,241,188,241,98,245,221,249,112,253,163,0,131,2, +105,1,164,254,245,251,242,248,40,246,3,246,48,249,203,253,208,1,189,4,213,6,54,7,159,4,68,0,52,252,108,248, +177,245,176,246,10,251,234,255,84,5,142,11,61,15,105,14,96,11,254,7,141,4,107,2,180,2,142,4,217,6,235,8, +41,10,88,10,134,9,236,7,16,6,71,4,61,3,95,4,137,7,16,11,56,15,146,20,91,24,27,24,14,21,84,16, +44,10,136,5,39,5,113,7,98,10,209,14,146,20,195,24,148,25,230,23,248,20,47,17,103,13,241,10,206,9,177,9, +27,12,150,17,79,23,60,27,206,29,165,29,7,25,185,18,49,14,70,11,47,10,124,12,214,16,187,20,236,23,2,26, +181,25,152,23,253,20,29,18,170,15,220,14,53,16,187,19,142,24,252,28,10,32,122,32,102,28,4,21,69,14,191,9, +180,7,15,10,166,16,4,24,117,30,191,35,180,37,79,35,253,30,90,26,225,20,168,15,104,13,251,14,234,18,208,23, +237,28,152,32,204,32,172,29,146,24,179,17,122,10,219,6,83,8,104,12,86,17,126,22,252,25,190,26,117,25,237,21, +83,16,115,11,133,9,226,9,87,11,142,13,91,16,38,19,108,20,233,18,4,15,163,9,253,3,150,0,91,0,133,1, +54,4,11,10,148,16,0,20,87,20,25,18,93,12,34,5,220,255,185,252,57,251,171,252,226,0,183,5,218,9,114,12, +89,12,107,9,141,4,243,254,44,250,181,247,51,248,36,251,19,255,247,2,67,6,245,6,77,3,109,253,117,248,100,244, +11,241,49,240,41,242,126,245,202,249,61,254,71,0,148,254,130,250,251,245,234,241,124,238,77,236,150,236,120,239,159,243, +180,247,246,249,182,248,1,245,4,241,115,236,92,231,136,228,32,229,155,231,115,235,4,240,178,242,169,242,202,241,160,240, +105,238,163,235,106,233,89,232,175,232,15,234,198,235,9,237,249,236,12,236,98,235,204,233,46,230,148,227,187,228,150,231, +44,234,54,237,21,240,101,241,3,242,29,242,211,239,120,235,213,231,30,230,239,229,95,231,90,234,181,237,105,240,80,242, +250,242,41,241,34,237,151,233,17,232,172,231,108,232,57,235,238,238,2,242,123,244,188,245,206,244,195,242,168,240,245,237, +59,235,28,234,210,234,239,236,251,239,123,242,79,243,200,242,92,241,225,239,149,239,77,240,155,241,138,244,155,248,44,251, +166,251,44,251,161,249,93,247,19,246,214,245,145,245,166,245,187,246,140,248,228,250,81,253,245,254,160,255,136,255,192,254, +229,253,163,253,31,254,135,255,140,1,62,3,152,4,172,5,33,5,197,2,176,0,241,255,33,0,114,1,108,3,168,4, +141,5,71,7,202,8,170,8,145,7,160,6,218,5,244,4,135,4,185,5,61,8,22,10,161,10,249,10,22,11,29,10, +96,8,76,6,50,4,127,3,213,4,203,6,157,8,154,10,120,12,27,14,112,15,54,15,59,13,145,11,33,11,2,11, +211,10,97,10,180,9,23,10,127,11,144,11,200,9,1,8,241,6,198,6,5,8,156,9,137,10,56,12,243,14,29,16, +117,14,137,11,243,8,132,7,105,7,214,7,10,8,44,8,137,8,5,9,245,8,163,7,200,5,169,4,203,3,38,2, +142,0,131,0,97,2,74,5,106,7,104,7,225,5,245,3,235,1,18,0,152,254,129,253,250,253,176,0,103,3,198,3, +251,1,245,254,213,251,57,250,0,250,153,249,247,248,213,248,85,249,253,250,73,253,35,254,210,253,103,254,134,254,171,251, +97,247,150,244,211,243,163,244,39,246,46,247,20,248,164,249,96,250,172,248,168,245,183,243,17,244,212,245,215,246,116,246, +35,246,169,246,99,247,210,247,81,247,54,245,37,242,64,239,112,237,238,237,105,240,56,242,110,242,14,243,110,244,73,244, +252,241,145,239,133,238,53,238,205,237,33,238,250,239,18,242,76,243,50,244,42,244,176,241,237,237,13,235,251,232,168,231, +33,232,186,233,16,235,179,236,4,239,115,240,168,239,17,237,227,234,178,235,87,239,47,243,246,245,48,248,253,249,36,251, +189,250,65,247,138,241,92,236,110,232,34,230,201,231,254,236,39,242,189,246,29,252,249,255,222,255,110,253,85,250,146,246, +183,243,93,243,23,244,101,244,115,245,77,248,166,251,188,253,20,254,199,252,37,250,92,247,152,245,173,244,117,244,218,245, +171,248,102,251,210,253,22,0,214,0,201,255,246,254,80,255,14,0,239,0,240,1,188,2,68,3,242,2,236,0,249,253, +112,251,159,249,8,249,18,250,20,252,174,255,16,6,244,12,28,17,212,18,169,18,73,15,163,9,111,4,85,0,44,254, +69,0,143,5,226,9,18,12,232,13,102,15,235,14,88,12,99,9,200,7,53,8,130,10,218,13,3,17,176,19,103,22, +20,24,212,22,151,19,216,16,208,14,60,13,174,13,179,16,153,20,91,24,182,27,91,29,82,28,136,25,93,22,157,19, +241,17,154,17,5,18,67,19,249,22,123,29,46,35,136,36,194,34,91,32,181,28,109,23,221,18,123,16,24,16,62,18, +166,22,35,27,159,30,51,33,93,34,108,34,88,34,56,33,95,30,224,27,82,27,243,27,30,29,91,30,64,30,85,28, +169,25,246,22,162,20,105,19,21,20,148,23,158,29,75,35,24,38,135,38,14,37,192,32,235,26,149,22,43,20,165,18, +223,18,156,21,86,25,182,28,187,31,73,33,144,31,18,27,175,21,11,16,51,11,187,9,14,12,175,15,87,19,238,22, +220,24,138,24,217,23,189,22,117,19,176,15,72,14,252,13,172,12,162,11,87,12,157,13,251,13,68,13,127,11,150,8, +58,5,66,3,243,3,117,6,183,9,205,13,87,17,159,17,180,14,132,10,30,5,247,254,209,250,108,249,1,249,213,249, +25,253,58,1,124,4,53,7,181,8,4,7,116,2,39,253,43,248,68,244,15,243,204,244,127,247,173,249,106,251,57,252, +242,250,217,247,12,244,34,240,126,237,26,238,17,241,23,243,72,243,175,243,7,245,102,245,40,243,85,239,159,236,107,236, +186,237,17,239,10,240,79,241,182,243,59,246,215,245,179,241,161,236,164,232,130,229,216,227,76,228,221,229,165,232,173,237, +184,242,91,244,21,243,60,241,82,239,84,237,131,235,98,233,78,231,254,230,142,232,7,234,134,234,4,235,219,235,180,235, +154,233,244,230,16,230,140,231,174,234,138,238,154,241,187,242,200,242,55,242,71,239,223,233,174,229,33,229,101,230,164,231, +224,233,212,237,243,241,154,244,67,245,159,243,47,240,151,236,139,233,230,230,37,230,221,232,206,237,84,243,52,249,145,253, +219,253,109,251,25,249,109,246,143,242,239,238,123,236,110,235,223,236,43,240,178,242,32,244,3,246,51,248,197,249,198,250, +43,251,50,251,221,251,55,253,141,254,230,255,175,0,131,255,198,252,68,250,144,248,155,247,241,247,174,249,69,252,66,255, +201,1,188,2,34,2,215,0,64,255,156,253,144,252,96,252,224,252,126,254,139,1,124,4,123,5,40,5,194,4,68,3, +225,255,89,252,254,249,157,248,21,249,254,251,61,255,95,1,155,3,215,5,6,6,57,4,103,2,20,1,198,255,218,254, +236,254,209,255,245,0,48,2,121,3,201,3,32,2,144,255,161,253,17,252,191,250,213,250,154,252,150,255,143,3,152,6, +129,6,21,5,237,4,62,4,7,1,141,253,27,252,245,251,85,252,59,253,244,253,23,254,28,254,34,254,234,253,74,253, +43,252,79,251,11,252,38,254,199,255,159,255,218,253,188,251,189,250,204,250,19,250,10,248,241,246,94,248,130,250,30,251, +209,250,8,251,99,251,57,251,136,250,160,248,119,245,92,243,217,243,136,245,7,247,52,248,255,248,46,250,7,252,192,251, +203,247,17,244,197,243,146,244,48,244,188,243,250,243,148,244,184,245,217,246,14,247,230,246,194,246,224,245,148,244,235,243, +239,243,168,244,27,246,200,246,124,245,110,243,93,242,128,242,221,242,69,242,227,240,183,240,192,242,46,245,251,245,116,245, +85,245,149,246,250,247,48,247,12,244,105,241,195,241,97,244,162,246,16,247,87,246,152,245,16,245,152,244,207,243,27,242, +23,240,203,239,220,241,109,244,109,245,150,244,99,243,136,243,185,244,50,245,194,244,211,244,255,245,202,247,85,249,170,249, +69,249,145,249,232,249,186,248,222,246,129,245,23,244,29,243,12,244,60,246,104,248,216,250,38,253,22,254,8,254,218,253, +107,253,20,253,83,253,132,253,111,253,182,253,15,254,10,254,24,254,21,254,172,253,15,254,249,255,195,1,194,1,125,0, +207,255,40,1,234,3,124,5,156,4,59,3,89,3,42,4,233,3,208,2,211,2,34,5,200,8,112,11,64,11,162,8, +39,6,159,5,240,5,59,5,206,3,158,3,24,6,158,10,133,14,213,15,188,15,89,16,175,17,79,18,254,16,4,14, +40,12,112,13,78,15,247,14,159,14,219,16,231,19,103,21,86,21,45,20,238,18,46,19,167,20,222,21,144,22,240,22, +89,23,238,24,3,27,223,26,178,24,179,23,186,24,28,26,82,27,122,28,47,29,134,29,140,29,177,28,124,27,17,27, +218,26,247,25,124,25,121,26,21,28,93,29,108,30,255,30,178,30,122,30,16,31,216,30,113,28,161,25,177,24,104,25, +191,26,74,28,46,29,19,29,98,29,178,30,67,31,229,29,199,27,192,26,61,27,213,27,34,27,25,26,150,26,45,28, +12,29,125,28,178,26,113,24,244,22,56,22,55,21,125,20,92,21,111,23,115,25,183,26,186,26,222,25,77,25,201,24, +60,23,90,21,147,20,231,20,117,21,95,21,98,20,176,19,39,20,84,20,207,18,112,16,109,14,77,13,120,13,7,14, +105,13,89,12,142,12,83,13,66,13,196,12,61,12,117,11,66,11,1,12,200,11,120,9,232,6,183,5,49,5,97,4, +38,3,106,1,184,255,29,255,2,255,9,254,41,253,51,254,60,0,84,1,116,1,237,0,129,255,236,253,162,252,144,250, +17,248,91,247,165,248,80,250,231,251,91,253,34,254,156,254,198,254,240,252,219,248,166,244,192,241,151,240,164,241,3,244, +35,246,45,248,54,250,242,250,143,250,71,250,34,249,26,246,33,243,203,241,1,241,65,240,118,240,73,241,145,241,126,241, +196,241,10,242,167,241,192,240,24,240,21,240,92,240,101,240,50,240,78,240,32,241,10,242,169,241,183,239,206,237,38,237, +15,237,172,236,115,236,26,237,142,238,75,240,104,241,177,240,50,238,227,235,62,235,110,235,118,235,25,236,251,237,112,240, +32,243,217,245,28,247,224,245,117,243,101,241,171,239,12,238,231,236,213,236,143,238,181,241,59,244,216,244,79,244,119,243, +150,242,18,242,215,241,217,241,62,243,42,246,116,248,20,249,72,249,98,249,145,248,245,246,234,244,215,242,71,242,27,244, +255,246,218,249,166,252,163,254,65,255,35,255,247,253,204,250,250,246,144,244,77,243,154,242,120,243,50,246,113,249,58,252, +59,254,250,254,126,254,80,253,77,251,119,248,67,246,2,246,32,247,151,248,113,250,172,252,116,254,39,255,167,254,233,252, +159,250,73,249,116,249,59,250,218,250,101,251,0,252,109,252,112,252,64,252,6,252,32,251,161,249,136,249,211,251,108,254, +9,0,245,1,209,3,69,3,138,0,100,253,233,249,221,246,92,246,205,247,34,249,245,250,226,253,229,255,40,0,224,255, +201,254,60,252,224,249,29,249,249,248,97,248,127,247,250,246,178,247,186,249,110,251,55,251,150,249,71,248,33,248,71,248, +186,247,68,247,53,248,206,249,135,250,121,250,238,249,29,248,124,245,8,244,17,244,25,244,14,244,57,245,103,247,28,249, +219,249,239,249,36,249,88,247,200,244,125,241,150,238,162,238,207,241,183,244,139,245,19,246,42,247,141,247,254,246,234,245, +252,243,251,241,157,241,90,242,77,242,156,241,200,241,217,242,149,243,98,243,164,242,198,241,64,241,241,241,84,243,253,242, +25,241,163,241,83,245,90,247,57,245,164,241,24,239,119,238,47,240,245,241,38,241,49,240,50,242,185,244,10,245,237,244, +67,245,213,243,213,240,43,239,105,239,176,239,6,239,18,238,23,238,199,239,39,242,86,243,239,242,111,242,242,242,229,243, +133,244,57,245,74,246,206,246,32,246,249,244,13,244,245,242,115,241,212,240,164,242,56,246,87,249,44,251,43,252,55,252, +142,251,2,251,200,249,25,247,51,245,155,245,68,246,127,246,95,248,171,251,136,254,72,1,159,3,83,3,219,0,201,254, +91,253,29,252,223,251,35,252,237,251,140,252,221,254,27,1,50,2,18,3,4,4,92,4,36,4,226,3,154,3,56,3, +113,3,177,4,73,5,189,3,75,2,122,3,61,5,11,5,198,4,168,6,183,9,170,12,208,14,237,14,126,13,239,12, +105,13,219,12,35,11,233,9,218,9,8,11,193,13,35,17,51,19,170,19,61,20,42,21,160,20,162,18,95,17,100,17, +244,17,157,19,26,22,81,23,91,23,85,24,173,25,53,25,118,23,178,22,169,23,97,25,141,26,16,27,198,27,130,28, +124,28,224,27,93,26,114,23,78,21,13,22,215,23,251,24,173,26,187,28,245,29,140,31,97,33,122,32,57,29,235,26, +107,25,103,23,110,22,211,22,150,22,159,22,141,25,3,30,90,32,215,31,82,30,252,28,151,27,134,25,201,22,143,20, +192,20,163,23,98,26,136,26,161,25,242,25,87,26,39,25,111,23,146,22,188,22,254,23,170,25,47,26,108,25,188,24, +155,24,46,24,171,22,143,20,78,19,111,19,75,20,159,21,9,23,155,23,235,23,154,24,91,23,22,19,93,15,129,14, +103,14,227,13,203,13,204,13,35,14,24,16,38,18,182,17,208,15,189,14,96,14,186,13,114,12,151,10,10,9,176,8, +84,9,60,10,101,10,18,9,79,7,93,6,117,5,36,4,146,3,143,3,49,3,161,3,129,5,196,6,50,6,190,4, +226,2,147,0,114,254,33,253,254,252,89,254,209,0,132,3,189,5,208,6,87,6,96,4,53,1,224,253,154,251,37,250, +248,248,9,249,165,250,157,252,180,254,222,0,151,1,125,0,3,255,74,253,204,250,155,248,182,247,8,248,124,249,39,251, +146,251,241,250,64,250,147,249,22,249,181,248,155,247,82,246,58,246,207,246,69,247,220,247,202,247,140,246,168,245,17,245, +42,243,88,241,118,241,230,241,20,242,244,243,164,246,202,247,101,248,133,249,81,249,20,247,110,244,58,242,164,240,29,240, +102,240,21,241,177,242,126,245,79,248,94,249,70,248,171,246,236,245,123,245,213,244,170,244,13,245,105,245,201,245,59,246, +143,246,222,246,182,246,161,245,173,244,157,244,160,244,156,244,68,245,44,246,255,246,181,247,16,247,15,245,2,244,53,244, +34,244,176,244,202,246,131,248,44,249,42,250,173,250,12,249,45,246,127,243,119,241,156,240,122,240,199,239,7,239,176,239, +202,241,141,244,22,247,81,248,50,248,165,247,255,246,54,246,85,245,89,244,239,243,186,244,149,245,94,245,171,244,203,243, +158,242,42,242,175,242,221,242,198,242,71,243,118,243,232,242,33,243,163,244,93,246,166,247,249,247,14,247,216,245,248,244, +11,244,112,243,229,243,225,244,145,245,216,245,138,245,83,244,81,242,145,240,162,240,76,242,81,243,240,242,169,242,46,243, +41,244,68,245,111,245,99,244,231,243,53,244,80,243,125,241,134,240,56,240,61,240,253,240,17,241,171,239,242,238,230,239, +58,241,234,242,224,244,24,245,128,243,142,242,182,242,117,242,147,241,34,241,255,241,153,243,249,243,181,242,204,241,226,241, +155,241,244,240,213,240,241,240,207,240,142,240,111,240,71,241,119,243,129,245,39,246,33,246,29,246,134,245,192,243,108,241, +113,240,164,241,21,243,73,243,102,243,149,243,158,242,190,241,179,242,255,243,44,244,240,243,92,243,110,242,183,242,57,244, +237,244,141,244,73,244,69,244,80,244,66,244,169,243,21,243,119,243,49,244,77,244,239,243,116,243,71,243,190,243,35,244, +37,244,149,244,39,245,50,245,27,246,126,248,82,250,205,250,12,251,190,250,64,249,156,247,117,246,106,245,198,244,249,244, +40,246,146,248,74,251,156,252,214,252,103,253,4,254,182,253,193,252,253,251,7,252,224,252,250,253,62,255,187,0,144,1, +78,1,203,0,14,0,139,254,14,253,98,252,68,252,38,253,91,255,39,1,53,1,197,0,64,1,94,2,40,3,60,3, +75,3,34,4,74,5,255,5,85,6,49,6,112,5,229,4,214,4,147,4,55,4,211,3,184,2,5,2,184,3,153,6, +81,8,134,9,105,11,1,13,67,13,76,12,171,10,157,9,30,10,91,11,10,12,47,12,133,12,95,13,31,14,254,13, +188,13,149,14,200,15,29,16,59,16,10,17,111,18,82,20,78,22,126,23,229,23,203,23,208,22,183,21,3,22,245,22, +152,22,54,21,196,20,6,22,202,23,126,24,101,24,233,24,221,25,36,26,11,26,8,26,223,25,70,26,129,27,247,27, +119,27,162,27,215,27,88,26,40,24,245,22,142,22,201,22,174,23,50,24,20,24,105,24,47,25,93,25,252,24,0,25, +235,25,18,27,86,27,217,26,138,26,86,26,243,25,196,25,54,25,162,23,130,22,212,22,249,22,57,22,8,22,202,22, +187,23,178,24,90,25,111,25,223,25,14,27,230,27,197,27,238,26,211,25,29,25,154,24,17,23,216,20,204,19,38,20, +161,20,176,20,82,20,186,19,146,19,177,19,19,19,239,17,115,17,198,17,32,18,2,18,128,17,22,17,241,16,169,16, +227,15,113,14,138,12,120,11,229,11,242,11,10,10,190,7,254,6,93,7,152,7,18,7,28,6,12,6,55,7,188,7, +138,6,15,5,164,4,60,5,32,6,253,5,117,4,103,3,229,3,32,4,230,2,147,1,23,1,241,0,33,1,233,1, +120,2,24,2,154,1,247,1,133,2,243,1,41,0,244,253,1,252,18,251,96,251,214,251,253,251,9,253,1,255,217,255, +215,254,97,253,50,252,226,250,137,249,198,248,204,248,37,249,44,249,3,249,48,249,91,249,228,248,38,248,155,247,51,247, +243,246,164,246,200,245,215,244,167,244,227,244,14,245,95,245,136,245,21,245,239,244,247,245,63,247,108,247,167,246,50,246, +109,246,81,246,128,245,65,245,231,245,2,246,34,245,61,244,170,243,157,243,172,244,50,246,71,247,129,248,224,249,218,249, +115,248,87,247,200,246,31,246,195,245,28,246,183,246,82,247,24,248,249,248,120,249,2,249,193,247,176,246,58,246,218,245, +117,245,168,245,245,246,40,249,5,251,59,251,34,250,36,249,181,248,107,248,197,247,98,246,3,245,32,245,84,246,222,246, +203,246,44,247,124,247,206,246,173,245,8,245,215,244,151,244,121,244,129,245,156,247,234,248,183,248,159,248,56,249,63,249, +135,248,232,247,77,247,144,246,11,246,138,245,12,245,116,245,214,246,46,248,233,248,208,248,244,247,107,247,213,247,13,248, +115,247,96,247,172,248,95,250,106,251,106,251,11,250,99,247,135,244,240,242,50,243,120,244,125,245,26,246,75,247,95,249, +232,250,73,250,214,247,129,245,137,244,123,244,110,244,56,244,83,244,227,244,102,245,160,245,236,245,44,246,204,245,248,244, +44,244,36,243,204,241,233,240,247,240,3,242,8,244,27,246,243,246,210,246,179,246,133,246,38,246,26,246,16,246,52,245, +18,244,234,243,153,244,152,244,227,242,101,240,83,239,144,240,121,242,17,243,164,242,68,243,180,245,245,247,58,248,170,247, +142,247,91,246,44,243,176,240,4,241,94,242,161,242,127,242,80,243,174,244,82,245,185,244,112,243,65,242,107,241,156,240, +157,239,13,239,224,239,226,241,199,243,213,244,46,245,255,244,179,244,168,244,75,244,65,243,114,242,103,242,185,242,78,243, +185,243,48,243,160,242,78,243,0,244,128,243,16,243,62,243,236,242,136,242,107,243,46,245,166,246,230,246,55,245,228,242, +85,242,217,242,246,241,41,240,141,239,76,240,168,241,70,243,125,244,0,245,96,245,203,245,31,246,133,246,148,246,196,245, +248,244,40,245,123,245,232,244,7,244,194,243,230,243,235,243,15,244,244,244,169,246,137,248,204,249,35,250,15,250,86,250, +175,250,30,250,27,249,96,249,30,251,183,252,99,253,236,253,9,255,120,0,101,1,58,1,64,0,97,255,24,255,254,254, +149,254,92,254,78,255,80,1,71,3,164,4,133,5,12,6,190,6,244,7,147,8,155,7,35,6,160,5,200,5,192,5, +115,5,108,5,87,6,254,7,37,9,144,9,71,10,69,11,227,11,173,12,212,13,67,14,38,14,178,14,37,15,11,14, +70,12,122,11,187,11,151,12,164,13,9,14,0,14,247,14,139,16,174,16,162,15,120,15,14,16,22,16,94,16,7,18, +246,19,254,20,81,21,2,21,85,20,97,20,19,21,48,21,178,20,13,20,31,19,180,18,119,19,187,19,157,18,72,18, +162,19,198,20,40,21,228,21,254,22,40,24,117,25,249,25,43,25,92,24,95,24,63,24,42,23,84,21,211,19,232,19, +7,21,80,21,196,20,233,20,250,21,90,23,145,24,165,24,120,23,154,22,77,22,45,21,149,19,33,19,178,19,95,20, +4,21,40,21,59,20,20,19,200,18,12,19,245,18,60,18,96,17,27,17,165,17,136,18,24,19,10,19,224,18,60,19, +145,19,212,18,111,17,147,16,75,16,19,16,240,15,178,15,211,14,153,13,206,12,112,12,217,11,58,11,151,11,180,12, +24,13,247,12,238,13,92,15,119,15,254,14,5,15,40,14,237,11,50,10,65,9,13,8,80,7,161,7,232,7,36,8, +44,9,13,10,190,9,212,8,143,7,54,6,93,6,224,7,2,8,85,6,207,5,156,7,100,9,62,9,199,7,72,6, +55,5,154,4,82,4,182,3,105,2,163,1,196,2,254,4,111,6,123,6,100,5,196,3,240,2,59,3,195,2,223,0, +23,0,207,1,166,3,120,3,23,2,230,0,70,0,101,0,177,0,224,255,94,254,252,253,213,254,190,255,213,0,95,2, +94,3,139,3,164,3,66,3,197,1,5,0,220,254,116,254,70,255,201,0,39,1,69,0,205,255,219,255,97,255,155,254, +67,254,104,254,233,254,122,255,249,255,194,0,81,1,147,0,101,255,37,255,223,254,221,253,153,253,36,254,231,253,174,253, +10,255,89,0,175,255,30,254,206,252,41,251,54,249,164,247,52,246,33,245,201,245,250,247,220,249,54,251,207,252,130,253, +68,252,178,250,179,249,195,247,98,245,46,245,137,246,240,246,240,246,163,247,189,247,74,247,250,247,91,248,12,246,19,243, +158,242,255,243,249,244,40,245,36,245,75,245,200,245,92,246,43,246,126,244,64,242,178,241,31,243,18,244,191,243,29,244, +79,245,55,245,147,243,191,241,69,240,95,239,198,238,92,237,242,235,58,237,233,240,176,243,80,244,71,244,116,244,34,244, +56,242,205,238,233,235,108,235,156,236,110,237,24,237,121,236,26,237,71,239,238,240,60,240,74,238,59,237,107,237,227,237, +170,237,194,236,174,236,98,238,65,240,125,240,158,239,173,238,169,237,191,236,78,236,181,235,115,234,154,233,86,234,8,236, +27,237,224,236,189,235,131,234,28,234,214,234,205,235,84,236,54,237,13,239,231,240,231,241,6,242,7,241,31,239,168,237, +15,237,76,236,98,235,81,235,205,235,49,236,99,237,197,239,108,241,14,241,88,240,232,240,130,241,234,240,151,240,203,241, +14,243,43,243,11,243,11,243,110,242,173,241,145,241,96,241,176,240,90,240,131,240,224,240,44,242,71,244,49,245,80,244, +118,243,129,243,102,243,215,242,134,242,104,242,89,242,41,243,243,244,118,246,29,247,91,247,230,246,33,245,196,242,41,241, +2,241,107,242,180,244,158,246,228,247,38,249,163,250,135,252,152,254,244,254,153,252,14,250,203,249,166,250,204,250,126,250, +178,250,249,251,190,253,194,253,124,251,49,250,220,251,5,254,163,254,229,254,243,255,134,1,4,3,106,3,77,2,47,1, +29,1,209,0,128,255,130,254,187,254,103,255,70,0,240,1,195,3,48,4,65,3,41,2,235,0,89,255,168,254,75,255, +43,0,129,1,70,4,72,7,49,9,178,10,144,11,116,10,92,8,223,6,44,5,229,2,180,1,49,2,225,3,232,6, +69,10,30,12,221,12,165,13,159,13,158,12,129,12,183,13,145,14,94,14,252,13,32,14,160,14,173,14,229,13,48,13, +82,13,180,13,190,13,203,13,34,14,181,14,179,15,252,16,172,17,52,17,97,16,82,16,241,16,122,17,236,17,127,18, +185,18,74,18,115,17,64,16,250,14,77,14,200,13,138,12,102,11,112,11,6,12,242,12,58,15,80,18,95,20,39,21, +39,21,251,19,249,17,131,16,17,16,91,16,67,17,227,17,63,17,116,16,56,17,139,18,63,18,188,16,8,16,61,16, +68,16,141,16,27,18,87,20,77,22,232,23,125,24,12,23,140,20,202,18,160,17,69,16,171,15,186,16,81,18,25,19, +94,19,206,19,33,20,231,19,66,19,85,18,17,17,231,15,176,15,144,16,166,17,26,18,22,18,105,18,8,19,146,18, +78,16,142,13,220,11,50,11,244,10,2,11,61,11,150,11,85,12,94,13,232,13,105,13,98,12,223,11,251,11,141,11, +80,10,230,9,43,11,199,12,116,13,14,13,204,11,141,10,10,10,73,9,149,7,105,6,178,6,92,7,7,8,63,9, +130,10,70,11,207,11,225,11,139,11,205,11,74,12,124,11,234,9,97,9,172,9,93,9,62,8,26,7,118,6,35,6, +219,5,255,5,155,6,169,6,29,6,94,6,74,7,62,7,56,6,41,5,208,3,85,2,233,1,26,2,142,1,19,1, +249,1,26,3,5,3,126,2,65,2,93,1,209,255,37,255,60,255,136,254,177,253,116,254,207,255,17,0,43,0,17,1, +183,1,221,1,35,2,184,1,32,0,213,254,141,254,155,254,233,254,80,255,60,255,103,255,128,0,67,1,47,1,152,1, +95,2,68,2,242,1,102,2,140,2,74,1,87,255,251,253,167,253,146,253,195,252,226,251,77,252,137,253,96,254,10,255, +198,255,193,255,249,254,77,254,160,253,94,252,208,250,147,249,22,249,161,249,156,250,5,251,17,251,150,251,57,252,29,252, +55,251,148,249,79,247,171,245,164,245,12,246,223,245,151,246,29,249,71,251,69,251,83,250,241,249,171,249,235,248,26,248, +132,247,232,246,47,246,155,245,88,245,96,245,170,245,37,246,124,246,127,246,110,246,58,246,142,245,10,245,112,245,8,246, +51,246,188,246,102,247,134,246,142,244,192,243,63,244,108,244,244,243,87,243,92,242,33,241,153,240,58,241,81,242,217,242, +120,242,200,241,134,241,175,241,209,241,207,241,11,242,180,242,14,243,48,242,130,240,44,239,136,238,130,238,52,239,16,240, +67,240,20,240,18,240,217,239,59,239,225,238,13,239,80,239,120,239,164,239,200,239,182,239,152,239,208,239,59,240,61,240, +240,239,223,239,203,239,84,239,200,238,63,238,237,237,202,238,86,240,75,240,131,238,71,237,104,237,48,238,52,239,142,239, +219,238,0,239,214,240,7,242,95,241,97,240,188,239,211,238,121,237,154,235,19,234,250,234,1,238,61,240,29,241,59,242, +25,243,109,242,15,241,23,240,108,239,247,238,116,238,149,237,91,237,143,238,210,239,58,240,41,241,48,243,132,244,221,243, +252,241,104,240,70,240,112,241,46,242,154,241,93,241,243,242,15,245,214,245,92,245,109,244,185,243,108,244,116,246,122,247, +129,246,174,245,90,246,52,247,17,247,16,246,166,244,220,243,124,244,161,245,144,246,13,248,196,249,34,250,147,249,178,249, +1,250,48,249,195,247,221,246,190,246,119,247,228,248,53,250,10,251,236,251,253,252,160,253,130,253,226,252,31,252,145,251, +71,251,27,251,124,251,2,253,19,255,144,0,129,1,18,2,92,1,138,255,184,254,194,255,80,1,194,2,109,4,169,5, +250,5,90,6,13,7,242,6,249,5,96,5,114,5,129,5,137,5,42,6,129,7,249,8,253,9,100,10,36,10,80,9, +93,8,177,7,100,7,190,7,17,9,227,10,108,12,156,13,208,14,238,15,30,16,145,14,20,12,128,10,0,10,111,9, +32,9,6,10,129,11,196,12,190,13,250,13,179,13,77,14,64,15,140,14,187,12,181,11,149,11,97,12,123,14,25,16, +143,15,90,14,198,13,224,12,172,11,29,11,150,10,226,9,121,10,68,12,89,13,62,13,218,12,102,12,160,11,95,10, +149,8,47,7,166,7,168,9,79,11,254,11,197,12,253,13,169,14,20,14,47,12,47,9,85,6,69,5,173,5,86,6, +224,7,199,10,42,13,16,14,189,14,209,14,207,12,96,10,214,9,223,9,167,8,113,7,194,7,14,9,85,10,97,11, +160,12,62,14,231,14,58,13,110,10,159,8,253,7,34,8,42,9,46,10,82,10,185,10,253,11,76,12,202,10,50,9, +167,8,120,8,52,8,239,7,134,7,89,7,30,8,42,9,14,9,133,7,22,5,123,2,163,1,250,3,65,7,89,8, +94,8,45,10,238,12,160,13,96,11,96,7,186,3,170,2,218,3,49,4,230,2,3,3,73,6,134,10,211,12,99,12, +132,10,128,9,32,10,106,10,184,8,169,6,169,6,130,8,118,10,148,11,146,11,214,10,165,10,61,11,226,10,220,8, +13,7,55,7,242,8,172,10,34,11,194,10,111,11,33,13,9,13,90,10,14,8,20,8,245,8,74,9,174,9,243,10, +139,12,6,13,243,11,105,10,227,8,166,6,69,4,81,3,170,3,159,4,213,6,20,10,116,12,86,13,152,13,49,13, +162,11,64,9,196,6,32,5,77,5,241,6,133,8,36,9,33,9,60,9,176,9,169,9,116,8,243,6,138,6,75,7, +63,8,168,8,213,8,232,9,214,11,216,12,38,12,220,10,131,9,9,8,90,7,248,7,210,8,87,9,18,10,220,10, +2,11,127,10,166,9,187,8,247,7,93,7,9,7,129,7,207,8,51,10,247,10,236,10,121,10,254,9,213,8,51,6, +5,3,214,0,253,255,108,0,12,2,164,3,49,4,149,4,122,5,159,5,25,4,199,1,251,255,70,255,73,255,19,255, +84,254,235,253,159,254,233,255,94,0,94,255,245,253,48,253,82,252,146,250,16,249,49,249,206,250,242,252,144,254,232,254, +127,254,59,254,190,253,172,252,209,251,107,251,233,250,202,250,147,251,38,252,183,251,57,251,71,251,92,251,58,251,211,250, +240,249,43,249,54,249,58,249,89,248,135,247,188,247,82,248,103,248,158,247,206,245,31,244,116,244,30,246,111,246,44,245, +110,244,180,244,211,244,76,244,79,243,58,242,171,241,123,241,224,240,10,240,164,239,157,239,236,239,130,240,115,240,121,239, +233,238,82,239,214,239,13,240,238,239,83,239,37,239,85,240,180,241,250,241,14,242,203,242,78,243,241,242,41,242,67,241, +97,240,29,240,178,240,74,241,72,241,128,241,198,242,7,244,211,243,219,242,171,242,57,243,226,243,206,244,205,245,225,245, +225,244,214,243,128,243,104,243,205,242,251,241,219,241,92,242,186,242,249,242,129,243,56,244,248,244,137,245,39,245,166,243, +27,242,183,241,185,242,5,244,224,243,121,242,43,242,197,243,125,245,28,246,211,245,6,245,175,244,58,245,249,244,15,243, +131,241,204,241,84,243,148,245,183,247,113,248,158,248,179,249,46,250,160,248,250,246,228,246,129,247,68,248,23,249,4,249, +82,248,185,248,17,250,178,250,135,250,71,250,180,249,223,248,204,248,161,249,99,250,198,250,133,251,181,252,18,253,213,251, +71,250,33,250,237,250,213,250,186,249,81,249,9,250,81,250,149,249,48,249,155,249,170,249,65,249,130,249,48,250,8,250, +18,249,35,248,133,247,169,247,19,249,173,250,184,250,165,249,94,249,12,250,77,250,250,249,235,249,242,249,123,249,225,248, +143,248,145,248,74,249,129,250,214,250,22,250,196,249,119,250,71,251,130,251,238,250,237,249,229,249,26,251,159,251,176,250, +18,250,154,250,31,251,14,251,214,250,239,250,215,251,7,253,139,252,79,250,64,249,139,250,125,251,61,250,159,248,160,248, +174,249,38,250,68,249,234,247,24,248,14,250,73,251,163,250,16,250,95,250,65,250,2,250,88,250,123,249,236,246,111,245, +179,245,177,245,208,245,119,247,57,249,227,249,128,250,17,251,191,250,57,250,219,249,38,249,198,248,196,248,159,247,30,246, +126,246,185,247,213,247,40,248,253,249,164,251,207,251,48,251,112,250,236,249,24,250,121,250,42,250,153,249,0,250,115,251, +168,252,202,252,181,252,104,253,42,254,210,253,153,252,121,251,34,251,171,251,70,252,47,252,25,252,231,252,20,254,204,254, +220,254,38,254,41,253,30,253,21,254,177,254,96,254,8,254,134,254,209,255,49,1,224,1,169,1,250,0,79,0,162,255, +160,254,157,253,167,253,7,255,253,0,37,3,49,5,7,6,120,5,5,5,36,5,141,4,9,3,8,2,100,2,142,3, +146,4,60,5,76,6,22,8,147,9,233,9,146,9,74,9,117,9,36,10,119,10,170,9,205,8,36,9,3,10,121,10, +246,10,195,11,76,12,114,12,169,12,6,13,101,13,202,13,2,14,198,13,90,13,76,13,158,13,214,13,228,13,89,14, +128,15,205,16,93,17,1,17,191,16,168,17,17,19,60,19,228,17,173,16,198,16,125,17,160,17,116,17,20,18,87,19, +29,20,65,20,54,20,235,19,187,19,66,20,186,20,115,20,174,20,60,22,238,23,206,24,155,24,39,23,195,21,211,21, +232,21,223,20,218,20,239,22,27,25,137,26,175,27,160,27,113,26,34,26,82,26,241,24,224,22,94,22,98,23,249,24, +164,26,148,27,227,27,247,28,121,30,41,30,16,28,241,26,126,27,58,27,65,25,231,23,93,24,48,25,196,25,163,26, +29,27,197,26,210,26,44,27,46,26,61,24,41,23,6,23,12,23,14,23,161,22,116,21,36,20,67,19,197,18,45,18, +187,16,255,14,29,15,52,17,164,18,119,18,89,18,244,18,55,19,72,18,46,16,243,13,244,12,246,12,206,12,176,12, +80,13,245,13,150,13,138,12,229,11,250,11,246,11,47,11,74,10,241,9,189,9,128,9,133,9,107,9,249,8,230,8, +83,9,144,9,103,9,171,8,85,7,159,6,255,6,157,6,169,4,211,2,224,1,241,0,234,255,1,255,231,253,50,253, +180,253,120,254,90,254,247,253,252,253,252,253,184,253,57,253,245,251,217,249,254,247,242,246,17,246,80,245,80,245,111,245, +215,244,221,244,183,246,103,248,174,247,172,245,137,244,106,244,121,244,64,244,126,243,165,242,186,242,170,243,253,243,216,242, +97,241,78,241,134,242,153,243,92,244,119,245,40,246,159,245,241,244,210,244,31,244,123,242,10,241,96,240,94,240,245,240, +185,241,120,242,211,243,195,245,16,247,13,247,36,246,202,244,48,243,144,241,73,240,178,239,167,239,204,239,50,240,21,241, +124,242,41,244,234,244,184,243,29,242,32,242,105,242,13,241,132,239,87,239,105,239,88,239,27,240,237,240,211,240,22,241, +119,242,71,243,105,242,251,240,95,240,161,240,208,240,81,240,187,239,221,239,123,240,167,240,253,239,84,239,240,239,204,241, +197,243,91,245,162,246,104,247,224,247,64,248,160,247,229,245,192,244,137,244,204,243,142,242,247,241,5,242,200,242,220,244, +77,247,119,248,131,248,134,248,213,248,242,248,26,248,126,246,93,245,208,244,0,244,147,243,58,244,190,244,187,244,108,245, +127,246,202,246,228,246,7,247,2,246,68,244,97,243,249,242,35,242,127,241,106,241,119,241,35,242,1,244,45,246,109,247, +150,247,30,247,155,246,84,246,169,245,219,243,211,241,133,241,230,242,178,243,36,243,19,243,128,244,78,246,195,247,226,248, +35,249,146,248,72,248,15,248,192,246,9,245,109,244,133,244,72,244,37,244,146,244,186,244,58,244,33,244,222,244,62,245, +169,244,97,244,81,245,97,246,51,246,242,244,209,243,156,243,221,243,141,243,226,242,34,243,83,244,21,245,182,244,162,243, +170,242,158,242,80,243,137,243,27,243,250,242,11,243,156,242,94,242,37,243,79,244,223,244,144,244,206,243,187,243,232,244, +8,246,219,245,59,245,34,245,191,244,88,243,18,242,70,242,128,243,57,244,226,243,141,243,119,244,90,246,188,247,191,247, +212,246,192,245,238,244,125,244,254,243,232,242,19,242,238,242,201,244,151,245,40,245,181,244,122,244,68,244,67,244,96,244, +190,244,193,245,171,246,242,246,27,248,202,250,251,252,174,253,187,253,221,252,164,250,71,248,80,246,117,244,247,243,142,245, +149,247,118,249,45,252,227,254,37,0,122,0,59,0,44,255,180,254,127,255,93,255,221,253,254,253,134,0,190,2,159,3, +75,4,133,4,144,3,109,2,215,1,14,1,77,0,243,0,137,2,125,3,65,4,230,5,63,7,7,7,113,6,201,6, +160,7,142,8,127,9,147,9,201,8,196,8,164,9,128,9,55,8,166,7,235,7,139,7,211,6,101,7,92,9,133,11, +83,13,205,14,208,15,79,16,89,16,1,16,208,15,25,16,213,15,55,14,169,12,179,12,149,13,103,14,204,15,190,17, +5,19,149,19,46,20,104,20,237,19,207,19,141,20,60,21,104,21,145,21,200,21,196,21,172,21,225,21,136,22,92,23, +178,23,56,23,131,22,86,22,214,22,141,23,202,23,111,23,107,23,61,24,239,24,4,25,126,25,178,26,125,27,72,27, +120,26,128,25,248,24,232,24,78,24,125,23,104,24,133,26,18,27,38,26,246,25,127,26,243,26,232,27,209,28,82,28, +159,27,60,28,182,28,223,27,21,27,29,27,65,27,82,27,235,26,19,25,104,22,192,20,167,20,120,21,140,22,92,23, +37,24,147,25,10,27,128,27,140,27,227,27,114,27,113,25,202,22,63,20,252,17,213,16,62,17,50,18,220,18,138,19, +42,20,23,20,96,19,89,18,239,16,194,15,218,15,149,16,104,16,146,15,124,15,112,16,213,17,239,18,196,18,23,17, +11,15,110,13,247,11,174,10,226,9,69,9,221,8,92,9,107,10,180,10,32,10,225,9,31,10,170,9,52,8,252,6, +159,6,48,6,75,5,198,4,211,4,212,4,158,4,219,3,254,1,26,0,190,255,5,0,76,255,95,254,178,254,209,255, +164,0,176,0,233,255,45,255,80,255,12,255,206,252,15,250,83,249,26,250,223,249,198,247,104,245,234,244,155,246,42,248, +155,247,93,246,4,247,24,249,65,250,230,249,250,248,50,248,217,247,76,247,106,245,42,243,245,242,92,244,176,244,145,243, +169,242,152,242,27,243,121,243,121,242,174,240,109,240,212,241,251,242,167,243,99,244,163,244,176,244,71,245,51,245,168,243, +85,242,211,241,184,240,92,239,87,239,41,240,173,240,67,241,215,241,33,241,77,239,64,238,168,238,91,239,203,239,150,240, +158,241,38,242,126,242,211,242,47,242,232,240,166,240,177,240,14,239,208,236,10,236,32,236,67,236,61,237,218,238,69,240, +17,242,253,243,32,244,174,242,241,241,21,242,185,241,39,241,42,241,56,241,59,241,27,242,75,243,86,243,220,242,63,243, +110,243,24,242,198,240,13,241,252,241,218,242,49,244,139,245,67,246,238,246,93,247,226,246,147,246,238,246,33,246,22,244, +44,243,142,243,107,243,180,242,125,242,69,243,60,245,54,247,27,247,53,245,204,243,169,243,59,244,7,245,48,245,141,244, +129,244,97,245,194,245,91,245,51,245,132,245,242,245,36,246,105,245,220,243,232,242,70,243,65,244,33,245,159,245,182,245, +22,246,93,247,141,248,68,248,61,247,86,247,78,248,248,247,193,245,134,243,228,242,178,243,166,244,135,244,201,243,124,244, +33,247,105,249,135,249,52,248,1,247,254,246,255,247,70,248,189,246,253,244,250,244,83,246,78,247,241,246,236,245,227,245, +222,246,230,246,117,245,46,244,225,243,88,244,202,245,102,247,96,247,37,246,14,246,159,247,12,249,195,248,204,246,147,244, +215,243,35,245,52,247,32,248,101,247,149,246,227,246,32,247,236,245,5,244,6,243,211,243,12,246,186,247,102,247,120,246, +191,246,200,247,201,248,86,249,49,248,203,245,233,244,70,245,167,243,241,240,94,241,253,244,12,248,190,248,171,247,30,246, +4,246,186,247,101,248,73,246,51,244,241,244,239,246,78,247,191,245,142,243,107,242,202,243,234,245,163,244,122,240,77,239, +80,243,31,248,157,249,214,247,106,245,101,245,122,247,143,247,229,244,4,244,164,246,165,249,119,251,120,252,249,251,172,250, +167,250,246,250,112,249,31,247,3,246,95,246,25,248,103,250,112,251,98,251,153,252,125,255,223,1,241,1,186,255,50,253, +38,253,191,255,142,1,46,0,214,253,37,254,240,0,147,2,199,0,47,253,88,251,46,253,181,0,170,1,40,255,175,253, +186,0,116,5,222,6,67,4,66,1,68,1,146,3,23,4,39,1,128,254,30,0,192,4,247,7,96,7,218,4,106,4, +102,7,93,10,175,9,139,6,16,5,247,6,45,10,242,11,248,11,22,12,165,13,201,15,47,16,187,13,167,10,70,10, +92,12,168,13,15,13,175,12,46,14,193,16,51,18,69,17,166,15,11,16,28,18,44,19,101,18,105,17,253,17,95,20, +150,22,67,22,7,20,143,18,164,18,52,19,161,19,167,19,101,19,242,19,170,21,63,23,7,24,146,24,21,25,150,25, +94,26,237,26,151,26,248,25,169,25,79,25,51,25,23,26,48,27,99,27,171,27,32,29,125,30,106,30,230,29,51,30, +9,31,232,31,105,32,153,31,184,29,185,28,230,28,92,28,230,26,103,26,119,27,233,28,180,29,161,29,63,29,5,29, +77,28,194,26,142,25,28,25,133,24,95,24,214,25,204,27,215,28,159,29,100,30,248,29,81,28,109,26,154,24,33,23, +114,22,37,22,226,21,43,22,251,22,176,23,77,24,250,24,118,25,200,25,215,25,239,24,113,23,25,23,70,24,30,25, +118,24,102,23,15,23,196,22,120,21,116,19,180,17,189,16,161,16,234,16,224,16,229,16,20,18,185,19,157,19,140,17, +140,15,146,14,210,13,192,12,116,11,16,10,55,9,184,9,253,10,106,11,153,10,166,9,38,9,79,8,103,6,56,4, +135,3,223,4,115,6,120,6,186,5,155,5,102,5,96,4,127,3,155,2,111,0,109,254,238,254,44,0,48,255,54,253, +192,252,72,253,170,253,254,253,171,253,37,252,12,251,210,251,85,253,228,253,92,253,132,252,27,252,25,252,97,251,95,249, +71,247,139,246,17,247,178,247,134,247,181,246,51,246,60,246,233,245,57,245,136,245,213,246,37,247,206,245,157,244,224,244, +137,245,2,245,96,243,35,242,61,242,247,242,17,243,119,242,15,242,129,242,145,243,46,244,77,243,86,241,236,239,234,239, +124,240,127,240,217,239,76,239,128,239,83,240,38,241,102,241,199,240,202,239,170,239,133,240,208,240,0,240,145,239,26,240, +144,240,176,240,235,240,176,240,238,239,4,240,14,241,119,241,10,241,240,240,26,241,239,240,252,240,197,241,178,242,27,243, +178,242,164,241,22,241,152,241,161,241,82,240,156,239,231,240,198,242,190,243,171,243,129,242,23,241,43,241,65,242,51,242, +82,241,116,241,75,242,208,242,94,243,236,243,224,243,242,243,182,244,236,244,205,243,104,242,190,241,249,241,234,242,169,243, +91,243,137,242,52,242,116,242,251,242,149,243,17,244,133,244,40,245,201,245,23,246,14,246,175,245,64,245,80,245,172,245, +133,245,230,244,142,244,126,244,69,244,33,244,101,244,193,244,252,244,43,245,200,244,116,243,100,242,203,242,163,243,151,243, +160,243,1,245,179,246,28,247,66,246,37,245,168,244,1,245,58,245,127,244,164,243,194,243,87,244,108,244,40,244,66,244, +228,244,149,245,189,245,56,245,78,244,136,243,139,243,114,244,99,245,179,245,177,245,208,245,251,245,186,245,175,244,117,243, +0,243,149,242,14,241,8,240,161,241,127,244,61,246,239,246,68,247,7,247,123,246,225,245,197,244,126,243,220,242,158,242, +118,242,81,242,76,241,206,239,120,240,100,243,238,244,205,243,171,242,182,242,84,242,2,241,19,240,122,240,7,242,170,243, +24,244,133,243,140,243,47,244,67,243,92,240,59,238,148,238,180,239,206,239,126,239,250,239,58,241,44,242,213,241,155,240, +218,239,210,239,238,239,69,240,119,240,116,239,52,238,186,238,71,240,183,240,7,240,84,239,28,239,181,239,135,240,73,240, +143,239,249,239,37,241,201,241,29,242,251,242,184,244,228,246,28,248,161,247,127,246,68,245,94,243,150,241,21,241,198,240, +212,239,2,240,105,242,105,245,93,247,72,248,217,248,160,249,152,250,221,250,232,249,170,248,122,248,81,249,248,249,208,249, +90,249,49,249,177,249,193,250,2,251,111,249,220,247,122,248,78,250,140,251,60,252,80,252,200,251,150,252,58,255,82,0, +70,254,132,252,170,253,246,255,57,1,128,1,134,1,243,1,98,3,35,5,80,5,160,3,45,2,60,2,212,2,124,3, +218,4,146,6,27,8,12,10,230,11,73,12,55,12,19,13,50,13,106,11,221,9,226,9,136,10,103,11,41,12,91,12, +195,13,149,17,196,20,148,20,6,19,187,18,168,19,8,21,250,21,106,21,22,20,32,20,228,21,143,23,118,23,204,21, +169,20,237,21,202,24,163,26,86,26,135,25,158,26,150,29,147,31,180,30,188,28,106,28,14,30,210,31,28,32,42,31, +140,30,218,30,42,31,36,31,131,31,72,32,160,32,120,32,170,32,116,33,193,33,255,32,167,32,188,33,200,34,216,34, +225,34,133,34,163,32,25,31,235,31,65,33,19,33,116,32,108,32,156,32,5,33,70,33,54,32,68,30,86,29,24,30, +141,31,106,32,93,32,120,32,124,33,130,34,168,34,50,34,81,33,8,32,163,30,38,29,194,27,72,27,153,27,195,27, +228,27,90,28,141,28,152,28,24,29,59,29,78,28,108,27,47,27,196,26,215,25,153,24,33,23,119,22,136,23,206,24, +7,24,182,21,68,20,91,20,78,20,229,18,10,17,26,16,77,16,23,17,120,17,84,16,19,14,173,12,19,13,8,14, +184,13,194,11,26,10,186,10,55,12,202,11,1,10,7,9,163,8,10,8,154,7,160,6,78,4,129,2,243,2,21,4, +237,3,196,2,160,1,245,0,218,0,243,0,155,0,158,255,191,254,0,255,204,255,118,255,90,254,41,254,16,254,57,252, +196,249,168,248,123,248,124,248,22,249,89,250,222,251,85,253,244,253,83,253,4,252,34,250,174,247,249,245,174,245,122,245, +227,244,26,245,50,246,244,246,9,247,203,246,56,246,135,245,48,245,223,244,213,243,118,242,10,242,184,242,47,243,189,242, +234,241,79,241,99,241,64,242,167,242,113,241,209,239,133,239,45,240,140,240,66,240,100,239,126,238,65,238,47,238,128,237, +234,236,132,237,75,239,169,241,189,243,138,244,39,244,147,243,42,243,106,242,218,240,239,238,28,238,217,238,203,239,127,240, +244,241,162,243,111,244,139,245,88,247,90,247,53,245,199,243,161,243,250,242,62,242,171,242,119,243,31,244,99,245,120,246, +173,245,154,243,70,242,54,242,155,242,225,242,224,242,231,242,202,243,159,245,244,246,163,246,131,245,202,244,142,244,166,244, +202,244,23,244,182,242,108,242,181,243,238,244,38,245,231,244,131,244,16,244,223,243,3,244,127,244,109,245,81,246,192,246, +76,247,19,248,26,248,69,247,235,246,170,247,107,248,240,247,89,246,199,244,231,243,170,243,12,244,190,244,230,244,139,244, +197,244,161,245,4,246,187,245,176,245,116,246,197,247,174,248,90,248,62,247,58,246,28,245,202,243,64,243,192,243,6,244, +97,243,217,242,169,243,125,245,141,246,193,245,48,244,130,243,29,244,144,245,177,246,202,245,76,243,68,242,140,243,255,243, +203,241,107,239,151,239,220,241,214,243,200,243,89,242,11,242,172,243,203,244,167,243,227,241,56,241,12,241,212,240,229,240, +168,240,210,239,14,240,1,242,132,243,129,243,142,243,45,244,167,243,35,241,201,237,171,235,110,236,67,239,36,241,237,240, +194,240,29,242,221,243,125,244,139,243,149,241,229,239,26,239,158,238,95,238,220,238,151,239,86,240,39,242,118,244,162,244, +132,242,253,240,43,241,98,241,150,240,80,239,129,238,42,239,76,241,234,242,120,242,38,241,185,240,22,241,121,241,187,241, +166,241,83,241,1,242,67,244,86,246,47,246,14,244,176,241,51,240,141,239,67,239,53,239,226,239,120,241,24,243,1,244, +151,244,30,245,217,244,168,243,241,242,163,243,206,244,18,245,76,244,105,243,127,243,190,244,17,246,145,246,225,246,194,247, +137,248,136,248,94,248,165,248,52,249,23,250,104,251,137,252,1,253,31,253,43,253,78,253,10,254,76,255,53,0,188,0, +157,1,141,2,190,2,150,2,168,2,91,2,126,1,63,1,36,2,58,3,34,4,134,5,80,7,87,8,9,8,237,6, +177,5,172,4,26,4,43,4,167,4,45,5,233,5,65,7,153,8,218,8,80,8,53,8,199,8,98,9,162,9,122,9, +116,9,143,10,146,12,2,14,151,14,53,15,176,15,120,15,66,15,137,15,162,15,170,15,186,16,229,18,43,21,216,22, +191,23,244,23,173,23,43,23,240,22,89,23,184,23,134,23,4,24,80,26,13,29,76,30,24,30,166,29,182,29,62,30, +82,30,42,29,214,27,52,28,38,30,199,31,7,32,54,31,43,30,41,30,170,31,176,32,41,31,231,28,81,29,220,31, +57,33,135,32,99,31,219,30,34,31,225,31,213,31,71,30,129,28,49,28,148,29,138,31,137,32,38,32,156,31,183,31, +152,31,159,30,71,29,247,27,36,27,158,27,26,29,21,30,218,29,61,29,79,29,248,29,249,29,165,28,38,27,211,26, +105,27,235,27,16,28,87,28,89,29,137,30,83,30,131,28,172,26,165,25,10,25,181,24,91,24,139,23,17,23,212,23, +248,24,79,25,2,25,142,24,28,24,148,23,70,22,225,19,179,17,23,17,146,17,230,17,181,17,80,17,247,16,131,16, +157,15,30,14,23,12,31,10,67,9,169,9,4,10,148,9,11,9,226,8,191,8,69,8,52,7,106,5,99,3,6,2, +10,2,30,3,169,3,231,2,54,2,52,2,104,1,123,255,232,253,32,253,8,253,35,254,132,255,123,255,39,255,147,0, +129,2,104,2,122,0,146,254,52,253,86,251,163,248,180,246,235,246,113,248,198,249,124,250,145,250,102,250,128,250,8,250, +7,248,227,245,58,245,101,245,156,245,222,245,114,245,93,244,55,244,230,244,139,244,40,243,23,242,90,241,177,240,130,240, +81,240,84,239,64,238,19,238,106,238,142,238,129,238,22,238,251,236,61,236,92,237,101,239,23,240,146,239,117,239,221,239, +98,240,227,240,22,240,166,237,48,236,226,236,63,237,72,236,239,235,241,236,161,238,161,240,193,241,71,241,6,241,11,242, +114,242,102,241,98,240,216,239,69,239,60,239,236,239,61,240,1,240,61,240,249,240,63,241,48,241,168,241,236,241,179,240, +124,239,139,240,73,242,208,241,40,240,246,239,51,241,188,242,6,244,74,244,149,243,72,243,106,243,182,242,94,241,111,240, +36,240,199,240,133,242,51,244,182,244,174,244,55,245,46,246,76,246,235,244,108,243,117,243,75,244,60,244,156,243,228,243, +109,245,135,247,44,249,95,249,60,248,30,247,1,247,77,247,183,246,73,245,167,244,167,245,33,247,13,248,156,248,204,248, +78,248,127,247,228,246,150,246,96,246,175,245,170,244,232,244,216,246,118,248,170,248,166,248,11,249,63,249,20,249,109,248, +20,247,221,245,230,245,3,247,33,248,74,248,125,247,10,247,170,247,29,248,111,247,109,246,221,245,221,245,127,246,18,247, +240,246,60,247,213,248,1,250,70,249,227,247,116,247,230,247,66,248,182,247,93,246,158,245,105,246,185,247,21,248,125,247, +40,247,0,248,94,249,87,249,15,247,106,244,231,243,58,245,235,245,99,245,147,245,55,247,165,248,175,248,168,247,53,246, +94,245,170,245,163,245,98,244,210,243,210,244,95,245,71,245,100,246,138,247,81,246,101,244,158,244,233,245,197,245,40,244, +95,242,113,241,4,242,157,243,142,244,10,244,68,243,203,243,162,245,134,247,75,248,142,247,10,246,35,245,245,244,5,244, +104,242,119,242,213,244,58,247,25,248,21,248,70,248,18,249,122,249,175,247,72,244,123,242,119,243,221,244,147,244,72,243, +114,243,132,246,115,250,159,251,176,249,60,247,132,245,100,244,235,243,55,243,99,241,106,240,192,242,212,246,22,249,224,248, +86,248,212,248,126,249,200,248,133,246,73,244,241,243,171,245,140,247,216,247,27,247,212,246,108,247,178,248,26,250,80,250, +52,249,25,249,71,251,220,253,250,254,26,255,112,255,92,0,96,1,152,1,191,0,117,255,123,254,154,254,18,0,166,1, +4,2,202,1,67,2,142,3,215,4,237,4,78,3,135,1,131,1,224,2,28,4,184,4,233,4,82,5,175,6,41,8, +14,8,175,6,209,5,220,5,12,6,254,5,229,5,25,6,160,6,31,7,204,7,73,9,43,11,64,12,93,12,98,12, +224,12,174,13,128,14,105,15,98,16,193,16,106,16,127,16,65,17,109,17,231,16,41,17,141,18,24,20,64,21,6,22, +170,22,227,23,201,25,48,27,80,27,234,26,30,27,228,27,70,28,15,28,36,28,185,28,220,28,117,28,117,28,4,29, +199,29,214,30,193,31,143,31,144,30,254,29,0,30,44,30,194,30,170,31,210,31,23,31,226,30,130,31,125,31,162,30, +152,30,126,31,200,31,104,31,22,31,81,30,74,29,51,29,37,29,165,27,92,26,37,27,135,28,46,29,228,29,92,30, +199,29,168,29,175,30,62,30,116,27,129,25,31,26,63,27,84,27,199,26,250,25,209,25,182,27,81,30,116,30,116,28, +111,27,200,27,177,27,60,27,50,27,228,26,60,26,75,26,172,26,30,26,7,25,21,24,138,22,124,20,198,19,228,20, +173,21,176,20,82,19,72,19,50,20,139,20,102,19,8,17,220,14,18,14,231,13,1,13,206,11,67,11,206,10,225,9, +30,9,131,8,37,7,67,5,57,4,124,4,3,5,121,4,193,2,89,1,147,1,168,2,169,2,253,0,253,254,40,254, +112,254,185,254,107,254,190,253,60,253,116,253,66,254,147,254,245,253,69,253,9,253,198,252,103,252,106,252,187,252,184,252, +32,252,116,251,43,251,182,250,58,249,52,247,222,245,112,245,129,245,254,245,160,246,248,246,36,247,66,247,217,246,176,245, +106,244,241,243,89,244,130,244,130,243,7,242,37,241,217,240,179,240,121,240,246,239,62,239,85,238,246,236,218,235,16,236, +141,236,255,235,227,235,121,237,225,238,182,238,13,238,95,237,79,236,146,235,117,235,68,235,140,235,43,237,190,238,204,238, +101,238,209,238,98,239,99,239,48,239,161,238,129,237,97,237,76,239,12,241,186,240,94,240,213,241,87,243,143,243,146,243, +46,243,117,241,101,240,238,241,237,243,221,243,200,242,132,242,8,243,219,243,217,244,59,245,129,244,232,243,167,244,148,245, +40,245,106,244,178,244,22,245,27,245,229,245,223,246,93,246,106,245,124,245,59,245,25,244,21,244,53,245,91,245,217,244, +110,245,131,246,203,246,229,246,157,247,88,248,109,248,11,248,150,247,90,247,140,247,229,247,242,247,70,248,198,249,145,251, +16,252,193,251,208,251,130,251,103,250,246,249,93,250,27,250,192,249,200,250,246,251,199,251,115,251,209,251,190,251,81,251, +155,251,154,251,48,250,11,249,194,249,247,250,18,251,154,250,102,250,134,250,30,251,184,251,11,251,97,249,181,248,100,249, +210,249,91,249,134,248,126,247,187,246,225,246,13,247,78,246,221,245,174,246,70,247,175,246,37,246,91,246,191,246,137,247, +6,249,230,249,27,249,209,247,103,247,90,247,226,246,180,246,80,247,104,247,58,246,144,245,203,246,76,248,93,248,190,247, +98,247,233,246,64,246,149,245,136,244,200,243,206,244,188,246,60,247,123,246,80,246,136,246,152,245,191,243,234,242,19,244, +191,245,139,245,59,243,9,241,174,240,147,241,250,241,232,240,58,239,202,238,226,239,203,240,115,240,163,239,33,239,141,238, +132,237,162,236,203,236,220,237,247,238,244,239,21,241,213,241,224,241,33,242,232,242,236,242,100,241,79,239,30,238,48,238, +170,238,225,238,206,239,148,242,251,245,148,247,188,246,208,244,108,243,63,243,165,243,86,243,253,241,254,240,32,242,252,244, +216,246,87,246,98,245,139,245,175,245,147,244,103,242,7,240,79,239,113,241,246,243,187,243,238,241,136,241,129,242,219,242, +139,241,100,239,200,238,210,240,2,243,191,242,77,241,53,241,119,242,97,243,36,243,124,242,114,242,10,243,221,243,243,244, +12,246,233,246,56,248,4,250,221,250,120,250,10,250,17,250,225,250,0,253,236,254,184,254,10,254,160,255,156,2,57,4, +186,3,99,2,211,1,171,2,179,3,79,3,34,2,141,2,74,5,252,7,63,8,219,6,33,6,141,6,2,7,142,6, +35,5,63,4,134,5,173,7,60,8,185,7,245,7,171,8,23,9,37,9,92,8,65,7,193,7,186,9,3,11,66,11, +217,11,79,13,26,15,39,16,186,15,247,14,141,15,40,17,138,18,89,19,157,19,244,19,184,21,214,24,80,27,224,27, +71,27,29,27,69,28,248,29,148,30,185,29,207,28,136,29,20,32,104,34,129,34,77,33,222,32,35,33,85,33,180,33, +220,33,48,33,237,32,29,34,124,35,207,35,59,35,0,34,226,32,34,33,48,34,44,34,56,33,15,33,231,33,132,34, +71,34,75,33,233,31,27,31,137,31,254,31,53,31,125,30,41,31,185,31,68,31,173,31,61,33,193,33,114,33,47,34, +8,35,146,34,19,34,14,34,49,33,60,32,243,32,26,34,169,33,110,32,7,32,106,32,253,32,75,33,135,32,181,30, +160,29,145,30,15,32,3,32,224,30,67,30,31,30,153,29,181,28,91,27,101,25,15,24,63,24,86,24,239,22,149,21, +253,21,22,23,244,22,86,21,75,19,222,17,56,17,111,16,220,14,62,13,108,12,240,11,41,11,71,10,97,9,92,8, +204,7,234,7,133,7,9,6,200,4,172,4,227,4,179,4,62,4,92,3,225,1,121,0,191,255,64,255,116,254,201,253, +219,253,70,254,48,254,123,253,182,252,69,252,51,252,72,252,20,252,109,251,191,250,140,250,1,251,205,251,13,252,17,251, +102,249,8,248,239,246,167,245,163,244,142,244,3,245,53,245,72,245,196,245,57,246,210,245,182,244,116,243,30,242,232,240, +54,240,195,239,43,239,188,238,192,238,32,239,211,239,56,240,59,239,29,237,99,235,161,234,27,234,99,233,12,233,215,233, +103,235,106,236,135,236,145,236,186,236,160,236,124,236,81,236,205,235,174,235,171,236,164,237,101,237,118,236,237,235,86,236, +118,237,73,238,85,238,140,238,133,239,199,240,17,242,0,243,214,242,38,242,43,242,97,242,209,241,55,241,114,241,40,242, +11,243,232,243,208,243,155,242,227,241,106,242,140,242,57,241,49,240,9,241,180,242,205,243,92,244,132,244,162,244,168,245, +177,246,189,245,16,244,87,244,100,245,192,244,84,243,192,242,199,242,183,243,255,245,220,247,228,247,158,247,153,248,205,249, +145,249,9,248,3,247,250,247,96,250,51,252,67,252,125,251,174,251,18,253,234,253,8,253,72,251,85,250,111,251,65,254, +236,255,101,254,98,252,80,253,217,255,7,1,183,0,171,255,88,254,51,254,107,255,116,255,106,253,15,252,20,253,143,254, +47,254,15,252,9,250,173,249,230,250,57,252,96,252,121,251,196,250,51,251,63,252,150,252,172,251,82,250,219,249,125,250, +214,250,217,249,123,248,35,248,161,248,202,248,14,248,237,246,107,246,200,246,25,247,197,246,66,246,33,246,141,246,96,247, +250,247,240,247,246,247,189,248,170,249,118,249,142,247,13,245,67,244,220,245,162,247,206,247,56,247,221,246,67,246,61,245, +129,244,110,244,230,244,177,245,67,246,242,245,159,244,253,242,38,242,74,242,15,242,176,240,140,239,210,239,114,240,104,240, +110,240,148,240,82,239,171,236,201,234,126,234,100,234,7,234,121,234,202,235,149,236,253,235,115,234,247,232,63,232,24,232, +179,231,245,230,158,230,248,230,126,231,31,232,160,233,7,236,13,238,200,238,148,238,197,237,52,236,74,234,239,232,219,232, +154,234,205,237,183,240,74,242,125,243,13,245,23,246,233,245,218,244,108,243,83,242,85,242,8,243,99,243,166,243,230,244, +22,247,241,248,106,249,84,248,125,246,132,245,65,246,15,247,231,245,227,243,169,243,35,245,85,246,201,246,238,246,134,246, +225,245,221,245,4,246,106,245,145,244,106,244,231,244,173,245,135,246,236,246,142,246,84,246,49,247,19,248,92,247,19,246, +105,246,11,248,148,249,70,251,236,252,84,253,157,253,138,255,90,1,233,0,204,255,245,255,235,0,7,2,33,3,206,3, +134,4,239,5,22,7,88,7,232,7,50,9,15,10,65,10,155,10,54,11,117,11,54,11,231,10,214,10,209,10,200,10, +69,11,204,12,242,14,108,16,36,16,232,14,211,14,24,16,132,16,58,15,17,14,192,14,222,16,88,18,123,17,176,15, +48,16,8,19,199,20,168,19,163,17,146,17,39,20,239,22,19,23,115,21,69,21,21,23,192,24,30,25,227,24,105,25, +126,27,56,30,206,31,226,31,136,31,197,31,195,32,163,33,126,33,236,32,71,33,195,34,90,36,164,36,89,35,183,34, +191,36,142,39,44,40,40,39,201,38,164,39,201,40,126,40,224,37,105,35,73,36,16,39,152,39,24,37,146,34,197,34, +111,37,100,39,241,37,147,34,97,33,108,35,55,37,97,35,51,31,251,28,97,30,163,32,157,32,105,30,197,28,5,30, +35,33,91,34,20,32,62,29,251,28,116,30,208,30,48,29,43,27,108,26,47,27,154,28,113,29,229,28,250,27,129,28, +229,29,223,29,154,28,27,28,121,28,101,28,107,27,155,25,175,23,58,23,231,23,31,23,123,20,220,18,230,19,223,21, +45,22,12,20,58,17,24,16,164,16,101,16,171,13,161,9,60,7,60,8,169,10,120,10,196,6,63,3,253,2,58,4, +81,3,246,255,46,253,209,252,174,253,255,253,39,253,23,251,114,248,11,247,163,247,26,248,110,246,24,244,174,243,1,245, +35,246,73,246,133,245,203,243,221,241,252,240,2,241,205,240,45,240,196,239,238,239,163,240,100,241,80,241,79,240,110,239, +126,239,90,240,82,241,93,241,147,239,160,236,190,234,31,235,61,236,9,236,194,234,92,234,223,235,89,238,195,239,159,238, +176,235,176,233,57,234,189,235,175,235,170,233,174,231,159,231,17,233,207,233,142,232,96,230,54,229,176,229,184,230,239,230, +38,230,87,229,146,229,4,231,158,232,242,232,245,231,18,231,26,231,115,231,107,231,52,231,95,231,223,231,37,232,168,232, +164,234,108,237,209,238,217,238,43,239,161,239,166,239,46,240,0,241,134,240,176,239,13,241,135,244,175,247,145,248,27,247, +182,245,214,246,255,248,10,249,142,247,127,247,115,249,252,251,218,253,254,253,112,252,94,251,145,252,140,254,173,254,3,253, +198,251,24,252,100,253,167,254,207,254,149,253,161,252,101,253,174,254,182,254,145,253,40,252,143,251,197,252,188,254,64,255, +187,254,3,255,128,255,217,254,221,253,151,253,158,253,190,253,114,254,149,255,120,0,246,0,108,1,214,1,253,1,149,2, +40,4,18,5,186,3,181,1,17,1,71,1,145,1,66,2,180,2,66,2,34,2,25,3,26,4,76,4,180,3,181,2, +111,2,105,3,59,4,160,3,40,2,236,0,164,0,101,1,10,2,58,1,55,255,144,253,147,253,37,255,128,0,10,0, +54,254,126,252,184,251,227,251,2,252,17,251,227,249,198,249,230,249,20,249,1,248,82,247,172,246,154,246,198,247,195,248, +223,247,225,245,178,244,226,244,0,246,104,247,139,247,43,245,48,242,179,241,245,242,249,242,27,242,173,242,58,244,251,244, +166,244,59,243,13,241,201,239,3,240,84,240,94,240,198,240,209,240,255,239,142,239,211,239,152,239,196,238,124,238,240,238, +78,239,229,238,108,237,87,235,49,234,83,235,132,237,163,237,38,235,38,233,36,233,224,232,95,231,240,230,135,232,7,234, +225,233,178,232,216,231,43,232,248,232,172,232,185,231,73,232,22,234,127,234,88,233,29,233,98,234,188,235,252,236,75,238, +52,238,99,236,46,235,189,235,160,236,67,237,138,238,65,240,176,241,242,242,159,243,15,243,126,242,110,243,232,244,82,245, +216,244,49,244,183,243,40,244,125,245,21,246,139,245,208,245,96,247,247,247,231,246,68,246,198,246,38,247,101,247,41,248, +107,248,223,247,150,248,215,250,137,251,76,249,211,246,144,246,236,247,74,249,254,249,88,250,43,251,165,252,172,253,167,253, +213,253,37,255,108,0,124,0,8,0,49,0,33,1,124,2,175,3,53,4,87,4,172,4,42,5,125,5,123,5,34,5, +73,5,237,6,45,9,92,10,142,10,173,10,186,10,171,10,114,10,78,9,136,7,0,7,92,8,50,10,64,11,65,11, +188,10,208,10,167,11,253,11,129,11,101,11,26,12,24,13,65,14,100,15,213,15,193,15,59,16,94,17,209,17,202,16, +94,15,246,14,122,15,26,16,225,16,146,18,172,21,97,25,127,27,215,26,5,25,19,24,35,24,213,24,57,26,184,27, +211,28,55,30,61,32,238,33,74,34,70,33,194,31,214,30,174,30,166,30,136,30,130,30,231,30,65,32,245,33,79,34, +120,33,88,33,238,33,151,33,67,32,23,31,165,30,19,31,6,32,121,32,234,31,222,30,237,29,41,29,22,28,153,26, +207,25,91,26,24,27,98,27,25,28,32,29,121,29,116,29,175,29,179,29,87,29,203,28,172,27,42,26,101,25,183,25, +152,26,145,27,23,28,18,28,115,28,137,29,249,29,209,28,37,27,194,26,247,27,90,29,175,29,23,29,63,28,174,27, +191,27,198,27,144,26,182,24,13,24,164,24,2,25,149,24,205,23,225,22,180,21,38,20,86,18,152,16,32,15,60,14, +38,14,33,14,130,13,59,13,245,13,53,14,152,12,171,9,175,6,183,4,42,4,209,3,136,2,110,1,229,1,15,3, +34,3,110,1,0,255,244,253,207,254,74,255,233,253,56,252,184,251,247,251,118,252,5,253,211,252,158,251,108,250,181,249, +190,248,82,247,121,246,241,246,25,248,241,248,121,249,28,250,66,250,235,248,83,246,190,243,223,241,183,240,140,240,150,241, +27,243,102,244,214,245,72,247,45,247,241,244,255,241,49,239,54,236,173,233,165,232,218,232,221,233,227,235,32,238,58,239, +99,239,86,239,113,238,89,236,88,234,67,233,125,232,247,231,119,232,146,233,81,234,18,235,36,236,47,236,146,234,225,232, +19,232,88,231,142,230,191,230,71,232,190,234,109,237,189,238,158,237,142,235,183,234,232,234,176,234,191,233,186,232,194,232, +80,235,247,239,106,243,140,243,172,242,191,243,216,245,253,245,80,243,164,239,168,237,155,238,5,241,145,242,2,243,179,243, +89,245,140,247,62,249,77,249,3,248,12,247,79,247,36,248,158,248,129,248,119,248,42,249,1,250,33,250,253,249,237,249, +122,249,66,249,51,250,20,251,203,250,222,250,47,252,229,252,1,252,12,251,31,251,172,251,46,252,161,252,252,252,147,253, +249,254,169,0,48,1,112,0,250,255,142,0,98,1,210,1,177,1,34,1,108,1,96,3,239,4,28,4,135,2,120,2, +141,3,242,4,209,6,137,8,22,9,251,8,26,9,187,8,216,6,98,4,100,3,234,3,3,4,1,3,0,2,186,1, +140,2,178,4,162,6,154,6,185,5,146,5,16,5,40,3,212,0,219,254,160,253,246,253,19,255,219,254,186,253,74,254, +198,0,107,2,109,1,19,255,89,253,61,252,205,250,46,249,5,248,215,247,125,249,113,252,19,254,126,253,169,252,119,252, +24,252,156,251,244,250,71,249,150,247,192,247,198,248,92,248,162,246,91,245,165,245,87,247,184,248,198,247,0,245,28,243, +36,243,61,243,31,242,51,241,178,241,100,242,46,242,182,241,20,241,117,239,47,237,10,235,29,233,101,232,211,233,154,235, +156,235,219,234,221,234,210,234,228,233,214,232,252,231,149,230,252,228,29,229,87,231,246,232,220,231,140,229,103,228,195,228, +7,230,13,231,139,230,1,230,39,232,24,235,204,234,145,232,68,232,70,233,67,233,235,232,19,233,219,232,189,232,56,234, +200,236,241,238,108,240,51,241,20,241,200,240,210,240,11,240,2,238,201,236,177,237,27,239,229,239,31,241,200,242,115,243, +92,243,130,243,75,243,171,242,30,243,62,244,43,244,153,243,104,244,143,245,64,245,143,244,13,245,211,245,201,245,189,245, +88,246,218,246,10,247,218,247,106,249,149,250,192,250,128,250,131,250,219,250,7,251,146,250,44,250,71,251,1,254,246,0, +115,3,222,5,242,7,174,8,18,8,56,7,214,6,214,6,21,7,150,7,119,8,33,10,189,12,22,15,142,15,146,14, +66,14,89,15,147,16,35,17,127,17,42,18,102,19,238,20,73,21,162,19,244,17,77,18,177,19,168,20,151,21,53,22, +133,21,49,21,46,23,95,25,17,25,152,23,29,23,79,23,123,23,97,23,79,22,232,20,73,21,143,23,179,25,222,26, +137,27,182,27,100,27,28,27,247,26,164,26,42,26,164,25,241,24,115,24,41,25,59,27,54,29,233,29,224,29,236,29, +217,29,118,29,22,29,182,28,56,28,217,27,174,27,154,27,147,27,75,27,156,26,20,26,230,25,186,25,239,25,224,26, +169,27,207,27,21,28,89,28,54,27,103,24,122,21,251,19,211,19,201,19,115,19,181,19,4,21,191,22,233,23,113,23, +74,21,121,19,137,19,7,20,245,18,196,16,73,15,137,15,150,16,75,16,60,14,144,12,164,12,166,13,141,14,149,14, +87,13,85,12,68,13,183,14,50,14,1,12,92,10,126,10,171,11,239,11,69,10,246,7,1,7,235,7,83,9,47,9, +162,7,122,7,145,9,200,10,224,8,91,5,158,2,17,2,130,3,75,4,118,2,139,0,214,1,254,4,98,6,6,5, +172,2,117,1,15,2,186,2,23,1,186,253,252,251,57,253,186,254,15,254,131,252,9,252,68,252,154,252,48,253,73,253, +148,252,102,252,255,252,253,252,58,252,70,251,167,249,175,247,200,246,228,246,20,247,143,247,157,248,157,249,8,250,202,249, +79,249,45,249,204,248,59,247,130,245,23,245,134,245,18,246,206,246,69,247,107,247,155,248,184,250,78,251,47,249,236,245, +103,243,85,242,124,242,8,243,48,243,36,243,228,243,226,245,4,248,226,248,120,248,136,247,123,246,210,245,214,245,184,245, +252,244,176,244,159,245,36,247,36,248,142,247,56,245,243,242,84,242,88,242,197,241,167,241,45,243,206,245,119,248,6,250, +75,249,209,246,246,244,183,244,152,244,138,243,137,242,188,242,59,244,161,246,199,248,22,249,252,247,201,247,178,248,186,248, +185,247,29,247,200,246,107,246,68,247,118,249,56,251,26,252,37,253,29,254,16,254,92,253,215,252,118,252,227,251,91,251, +143,251,224,252,201,254,112,0,84,1,62,1,161,0,135,0,185,0,177,255,187,253,59,253,242,254,98,1,130,3,210,4, +129,4,57,3,222,2,78,3,184,2,40,1,86,0,36,1,88,3,230,5,238,6,227,5,166,4,119,4,87,4,184,3, +145,3,100,4,239,5,32,8,89,10,86,11,229,10,0,10,31,9,52,8,139,7,44,7,149,6,12,6,148,6,25,8, +150,9,243,10,140,12,193,13,231,13,75,13,14,12,252,9,199,7,87,6,164,5,209,5,89,7,72,9,216,9,240,8, +219,7,60,7,220,6,98,6,99,5,14,4,168,3,221,4,49,6,193,5,14,4,8,3,46,3,63,3,17,2,195,255, +19,254,235,254,105,1,112,2,31,1,95,255,70,254,154,253,47,253,20,252,151,249,196,247,191,248,43,251,199,252,98,253, +34,253,225,251,144,250,239,249,10,249,36,247,41,245,113,244,108,245,104,247,241,248,197,248,218,246,172,244,234,243,61,244, +216,243,126,242,139,241,140,241,109,242,35,244,47,245,211,243,65,241,219,239,128,239,216,238,206,237,173,236,162,235,127,235, +104,236,250,236,198,236,50,237,83,238,59,238,115,236,118,234,100,232,162,229,238,227,212,228,22,230,126,229,202,228,233,229, +180,231,155,232,102,232,90,231,97,230,22,230,89,229,153,227,178,226,201,227,70,229,122,229,162,228,44,228,14,229,31,230, +39,229,179,226,8,226,72,228,200,230,240,230,104,229,208,228,61,230,10,232,56,232,145,230,122,228,54,228,246,230,73,234, +114,234,240,231,176,230,34,232,45,234,168,234,254,232,81,230,52,229,245,230,88,233,98,233,161,231,72,231,192,233,35,237, +252,238,171,238,67,237,156,236,157,237,147,238,57,237,152,234,190,233,31,235,185,236,162,237,109,238,138,239,75,241,146,243, +250,244,135,244,196,243,150,244,41,246,164,246,86,246,129,246,48,247,57,248,165,249,130,250,160,250,253,251,238,254,130,0, +165,255,220,254,161,255,54,1,12,3,66,4,235,3,182,3,211,5,221,8,115,10,250,10,139,11,41,12,45,13,136,14, +196,14,199,13,179,13,60,15,182,16,47,17,79,17,227,17,149,19,45,22,186,23,5,23,216,21,20,22,251,22,161,23, +154,24,196,25,58,26,168,26,38,28,211,29,130,30,178,30,240,30,250,30,27,31,192,31,10,32,62,31,161,30,211,31, +105,34,215,36,95,38,6,39,35,39,124,39,61,40,88,40,112,39,149,38,43,38,13,38,86,39,49,42,211,43,163,42, +255,40,213,40,3,41,151,40,253,39,84,39,26,39,62,40,156,41,3,41,29,39,66,38,58,38,32,37,12,35,130,33, +198,32,43,32,158,31,44,31,104,30,61,29,44,28,78,27,58,26,206,24,67,23,182,21,58,20,250,18,5,18,52,17, +96,16,169,15,46,15,141,14,97,13,4,12,14,11,157,10,103,10,217,9,186,8,241,7,36,8,16,8,220,6,44,6, +53,7,133,8,132,8,37,7,236,4,215,2,234,1,173,1,105,1,16,2,83,4,207,6,215,7,236,6,79,4,55,1, +93,255,39,255,144,255,156,255,255,254,47,254,17,254,146,254,102,254,224,252,221,250,163,249,104,249,223,248,169,246,132,243, +163,241,170,241,15,242,131,241,131,240,94,240,140,241,227,242,161,242,142,240,121,238,236,237,72,238,24,238,47,237,108,236, +116,236,79,237,70,238,118,238,97,238,116,239,74,241,22,242,232,241,100,242,189,243,230,244,143,245,218,245,213,245,21,246, +25,247,30,248,37,248,181,247,69,248,224,249,210,250,82,250,227,249,170,250,167,251,177,251,196,250,82,249,161,248,54,250, +190,252,231,252,114,250,109,248,98,248,50,249,121,249,120,248,175,246,80,246,174,248,154,251,214,251,87,249,67,247,252,247, +55,250,171,250,141,248,174,246,170,247,201,250,102,253,5,254,138,253,179,253,186,254,52,255,76,254,204,252,27,252,71,253, +4,0,47,2,81,2,36,2,204,3,44,6,37,7,8,7,37,7,178,7,123,8,243,8,29,8,174,6,3,7,26,9, +72,10,225,9,251,9,93,11,163,12,196,12,137,11,95,9,55,8,200,9,166,12,16,14,219,13,239,13,49,15,153,16, +94,16,219,13,227,10,13,10,160,11,176,13,145,14,252,13,26,13,128,13,244,14,66,15,53,13,252,9,164,7,141,7, +79,9,171,10,92,10,2,10,117,11,252,13,148,15,249,14,68,12,57,9,11,8,224,8,181,9,21,9,209,7,147,7, +122,8,56,9,32,9,111,8,94,7,211,6,13,8,36,10,244,10,165,10,162,10,202,10,222,10,75,11,30,11,83,9, +113,7,13,7,79,7,88,7,99,7,22,7,80,6,44,6,203,6,161,6,18,5,242,2,227,0,111,255,54,255,152,255, +37,255,236,253,48,253,62,253,173,253,39,254,94,253,79,250,21,247,83,246,212,246,46,246,188,244,81,243,230,241,250,241, +67,244,115,245,52,243,74,240,98,239,123,239,84,239,245,238,52,238,135,237,67,238,97,240,34,242,224,241,112,239,151,236, +155,235,140,236,105,237,200,236,64,235,193,234,110,236,176,238,217,238,138,236,164,233,23,232,193,232,118,234,190,234,34,233, +172,231,168,231,165,232,147,233,243,232,101,230,18,228,255,227,144,229,49,231,232,231,116,231,63,231,8,233,154,235,43,236, +90,234,205,231,211,229,104,229,155,230,111,231,74,230,6,229,70,230,33,233,189,234,163,234,249,233,252,232,109,232,234,233, +67,236,100,236,220,234,196,234,68,236,130,237,221,237,240,236,195,234,183,233,124,235,231,237,119,238,189,237,100,237,51,238, +51,240,110,242,33,243,168,241,128,239,156,238,13,239,122,239,197,239,207,240,92,242,33,244,214,246,169,249,117,250,115,249, +72,248,48,247,177,246,169,247,96,248,70,247,192,246,221,248,178,251,67,253,92,253,160,251,49,249,62,249,253,251,214,253, +24,253,161,251,80,251,125,252,117,254,92,255,164,253,175,250,201,249,214,251,35,254,96,254,129,253,177,253,127,255,228,1, +81,3,177,2,186,0,89,255,106,255,36,0,102,0,229,255,160,255,222,0,114,3,34,6,245,7,79,8,120,7,11,7, +149,7,92,7,138,5,167,3,33,3,61,4,184,6,90,9,198,10,23,11,246,10,129,10,234,9,20,9,108,7,184,5, +161,5,252,6,46,8,75,8,27,7,42,5,12,4,153,4,218,5,155,6,147,6,100,6,32,7,165,8,87,9,127,8, +251,6,148,5,210,4,243,4,16,5,149,4,110,4,229,4,73,5,255,5,90,7,2,8,126,7,15,7,28,7,64,7, +150,7,104,7,173,5,153,3,35,3,217,3,12,4,56,3,187,1,66,0,216,255,213,0,230,1,63,1,1,255,118,253, +12,254,52,255,158,254,76,252,34,250,168,249,235,250,142,252,19,253,92,252,198,251,112,252,129,253,238,252,148,250,116,248, +106,247,24,247,44,248,125,250,206,251,6,252,102,253,100,255,215,255,156,255,239,255,217,255,167,255,129,0,172,0,196,254, +71,253,70,254,67,0,72,1,178,0,203,254,69,253,206,253,150,255,164,0,195,0,90,1,251,2,1,4,135,2,109,255, +39,253,70,252,186,251,4,251,89,250,92,250,190,251,232,253,187,255,63,1,110,2,140,2,38,2,60,2,236,1,128,0, +97,255,151,255,132,0,160,1,174,2,128,3,210,4,39,7,33,9,26,9,123,7,91,6,79,7,139,9,150,10,167,9, +15,9,67,11,91,15,150,17,215,15,198,12,109,12,235,14,84,17,236,17,45,17,200,16,12,18,141,19,174,18,21,16, +170,14,26,15,20,16,179,16,176,16,221,16,194,18,199,21,119,23,228,22,19,21,142,19,144,19,80,20,162,19,246,17, +227,17,152,19,40,21,151,21,224,20,240,19,155,20,183,22,202,23,216,22,51,21,102,20,149,21,59,24,193,25,47,25, +167,24,83,25,227,25,99,25,10,24,144,22,92,22,2,24,241,25,148,26,67,26,23,26,95,26,117,26,200,25,19,25, +133,25,235,26,66,28,65,29,52,30,69,31,85,32,208,32,40,32,116,30,72,28,179,26,145,26,65,27,202,27,143,28, +207,29,157,30,214,30,211,30,217,29,33,28,101,27,141,27,46,27,178,26,171,26,22,26,227,24,73,24,52,24,218,23, +38,23,14,22,190,20,233,19,164,19,142,19,151,19,104,19,2,19,77,19,222,19,14,19,66,17,10,16,243,14,29,13, +101,11,198,10,85,11,224,12,131,14,28,15,224,14,215,14,105,15,233,15,252,14,137,12,162,10,144,10,72,11,240,11, +81,12,163,11,138,10,244,10,241,11,215,10,32,8,10,6,253,4,170,4,178,4,173,3,117,1,91,0,36,1,121,1, +236,255,168,253,236,251,10,251,92,251,138,252,221,252,126,251,204,249,125,248,81,246,39,243,144,240,197,238,95,237,54,237, +230,237,149,237,249,236,229,237,13,239,118,238,140,236,38,234,100,232,242,232,78,234,238,232,230,229,15,229,50,230,226,230, +231,230,103,230,36,229,114,228,40,229,116,229,5,228,76,226,9,226,217,226,3,227,231,225,178,224,105,224,220,224,121,225, +35,225,235,222,116,220,62,220,134,221,22,222,40,222,156,222,17,223,123,223,183,223,116,222,203,219,43,218,251,218,240,220, +238,221,9,221,122,219,79,219,182,220,228,221,116,221,184,219,138,218,122,219,79,221,112,221,204,219,144,218,14,219,18,221, +58,223,130,223,207,221,137,220,248,220,168,221,66,221,130,220,234,220,180,222,136,224,98,225,154,225,206,225,65,226,213,226, +131,226,12,225,141,224,13,226,129,227,51,228,183,229,157,231,176,232,63,234,142,236,76,237,125,236,38,236,235,235,12,235, +230,234,163,235,158,235,59,235,113,236,57,239,176,241,202,242,95,243,130,244,222,245,166,246,186,246,178,245,167,243,159,242, +120,243,220,243,206,242,69,242,211,242,131,243,162,244,205,245,131,245,244,244,63,246,189,247,47,247,52,246,192,246,214,247, +128,248,64,249,179,249,0,249,95,248,132,249,117,251,65,252,17,252,159,251,205,250,207,250,249,252,38,255,39,255,80,255, +191,1,3,4,196,3,208,1,178,255,80,255,236,1,227,4,254,4,253,3,203,4,84,6,200,6,109,6,94,5,193,3, +2,3,118,3,164,3,91,3,41,4,89,6,32,8,74,8,200,7,150,7,73,7,248,6,55,7,186,6,173,4,164,3, +248,4,199,5,180,4,244,3,61,4,212,4,99,6,64,8,254,7,60,6,223,5,38,7,122,8,33,9,183,8,127,7, +233,6,56,7,216,6,50,5,201,3,43,4,23,6,200,7,7,8,84,7,191,6,209,6,128,7,246,7,44,7,114,5, +234,3,46,3,101,3,35,4,142,4,10,5,132,6,5,8,52,8,184,7,62,7,38,6,182,4,231,3,75,3,36,2, +242,0,100,0,101,0,151,0,184,0,179,0,111,0,29,0,114,0,82,1,129,1,36,1,57,1,148,0,73,254,63,252, +172,250,111,247,96,244,71,245,179,248,190,251,41,255,134,2,89,3,204,2,182,2,175,0,5,252,160,248,134,247,42,246, +123,245,254,247,168,251,123,253,173,254,193,0,27,2,35,2,203,2,247,3,167,3,254,2,79,4,2,6,19,6,9,6, +80,6,41,5,33,4,105,5,18,6,213,3,71,2,187,3,232,5,239,7,57,10,166,10,225,8,126,8,217,9,237,8, +50,5,90,2,194,1,82,2,96,4,145,7,224,8,211,7,69,8,228,10,55,11,248,7,205,4,59,3,125,2,120,3, +193,5,172,6,251,6,120,9,166,12,213,13,234,13,188,13,131,12,119,11,65,12,187,13,160,14,144,15,168,16,65,17, +77,17,210,16,194,15,196,14,216,14,170,16,11,20,170,23,99,26,9,28,103,28,173,27,242,26,3,26,139,23,118,20, +228,18,199,18,103,19,253,20,174,22,115,23,106,24,92,26,171,27,53,27,177,25,218,23,99,22,90,22,152,23,164,24, +177,24,98,24,115,24,169,24,126,24,24,24,159,23,203,22,50,22,23,23,84,25,180,27,146,29,165,30,227,30,231,30, +131,30,141,28,102,25,91,23,104,24,192,28,3,34,196,36,193,36,144,36,171,36,125,35,203,32,254,28,207,24,23,23, +141,25,102,29,232,31,211,33,208,35,52,37,40,38,43,38,118,35,175,30,6,27,203,25,129,25,199,24,156,23,94,22, +80,21,25,21,214,21,160,21,31,19,196,16,255,16,241,17,196,17,19,18,48,19,26,19,90,18,139,18,29,18,143,15, +130,12,83,10,203,8,120,8,178,9,243,10,51,11,127,11,209,12,50,14,221,13,100,11,7,8,82,5,89,4,94,5, +17,7,237,7,137,8,249,9,36,11,145,10,167,8,80,6,232,3,206,1,38,0,248,254,199,254,111,255,124,255,15,254, +21,252,207,250,251,249,42,248,87,245,145,243,155,243,210,243,127,243,229,242,17,241,95,238,73,237,68,237,52,235,135,231, +248,228,8,228,192,228,55,231,206,232,187,231,222,230,77,232,122,233,3,232,128,228,111,224,179,221,171,221,184,222,27,222, +63,220,219,219,218,221,86,224,25,225,11,224,195,222,145,222,147,223,203,224,234,224,41,224,66,224,116,225,4,226,243,224, +168,222,8,220,126,218,190,218,168,219,73,220,16,221,5,222,185,222,84,223,146,223,208,222,157,221,163,220,142,219,164,218, +213,218,205,219,163,220,61,221,152,221,171,221,1,222,176,222,198,222,173,221,15,220,18,219,34,219,195,219,150,220,131,221, +26,222,142,222,231,223,143,225,226,225,169,225,140,226,196,227,101,228,46,229,198,229,71,229,203,228,6,229,242,228,238,228, +11,230,92,231,121,232,212,234,54,238,217,240,128,242,103,243,39,243,169,242,44,243,189,243,42,243,112,242,231,242,60,244, +105,245,74,246,53,247,224,247,32,248,203,248,211,249,174,249,230,248,4,250,140,252,188,253,238,253,234,254,184,255,102,255, +123,255,73,0,32,0,80,255,189,255,14,1,159,1,183,1,95,2,38,3,191,3,14,5,111,6,232,5,123,4,250,4, +200,6,181,7,155,8,106,10,192,11,227,12,57,15,175,16,17,15,183,12,0,12,210,11,122,11,196,11,82,12,202,12, +36,14,41,16,30,17,197,16,193,16,241,17,19,19,111,18,84,16,157,14,56,14,180,14,23,15,42,14,47,12,98,11, +54,12,36,12,56,10,112,8,14,8,201,8,41,10,15,11,158,10,179,9,34,9,138,8,233,7,102,7,94,6,23,5, +231,4,164,5,189,5,173,4,101,3,1,3,129,3,122,3,251,1,62,0,226,255,191,0,142,1,129,1,242,0,226,0, +75,1,220,0,52,255,192,253,243,253,208,255,187,1,112,1,134,254,85,251,22,250,82,250,212,249,127,247,9,245,26,245, +139,247,150,249,161,249,63,248,153,246,186,245,170,245,3,245,60,243,121,241,52,240,11,239,110,238,187,238,21,239,148,238, +89,237,170,236,162,237,175,238,48,237,117,234,10,234,188,235,234,236,251,236,86,236,106,235,187,235,45,237,226,236,115,234, +208,232,213,232,36,233,246,233,192,235,87,237,108,238,243,239,176,241,177,242,244,242,117,242,250,240,188,239,54,240,100,241, +93,241,32,241,220,242,161,245,236,246,155,246,185,245,169,244,131,244,212,245,101,246,29,245,184,244,129,246,45,248,26,249, +185,250,64,252,58,252,123,251,150,250,225,248,100,247,170,247,132,248,78,248,28,248,108,249,117,251,245,252,199,253,145,253, +55,252,214,251,41,254,222,0,43,1,134,0,86,1,44,3,33,5,167,6,243,5,88,3,207,2,162,5,47,8,49,8, +9,7,134,6,25,8,33,12,23,16,116,17,47,17,92,17,116,18,18,20,0,21,222,19,208,17,115,17,252,18,152,20, +71,21,32,21,224,20,220,21,82,24,154,26,72,27,219,26,135,26,184,26,58,27,177,27,131,27,139,26,78,26,80,28, +8,31,225,31,149,31,57,32,7,33,126,32,186,31,30,32,45,33,86,34,130,35,42,36,128,36,203,37,192,39,76,40, +55,39,202,38,214,39,138,40,33,40,20,40,224,40,182,41,249,42,236,44,254,45,176,45,140,45,184,45,11,45,195,43, +76,42,131,40,2,40,90,42,150,45,22,47,13,47,148,46,86,46,16,47,132,47,206,44,136,39,51,36,246,36,70,39, +243,39,154,38,92,37,83,38,26,41,26,43,56,42,243,38,231,35,4,35,148,35,194,35,229,34,124,33,161,32,94,33, +190,34,72,34,185,31,73,29,38,28,237,27,17,28,126,27,147,25,251,23,95,24,162,25,30,26,195,25,119,24,235,21, +123,19,208,18,42,19,200,18,187,17,34,17,33,17,82,17,139,17,39,17,98,15,165,12,205,9,39,7,116,5,124,5, +249,5,47,5,12,4,69,4,28,5,195,4,203,2,0,0,188,253,168,252,119,251,197,248,181,245,85,244,211,244,169,245, +42,245,249,242,121,240,232,238,247,237,25,237,37,236,172,234,245,232,13,232,123,231,233,229,206,227,41,226,225,224,119,224, +156,225,190,226,29,226,192,224,22,224,173,223,16,223,139,222,220,221,215,220,98,220,19,221,14,222,36,222,50,221,35,220, +224,219,107,220,246,220,144,220,232,218,4,217,147,216,206,217,245,218,182,218,201,217,109,217,175,217,223,217,119,217,229,215, +45,213,38,211,180,211,163,213,63,214,146,213,127,213,52,214,179,214,194,214,4,214,228,211,86,209,10,208,29,208,162,208, +72,209,45,210,62,211,147,212,125,214,148,216,116,217,92,216,120,214,123,213,204,213,234,214,28,216,187,216,104,217,148,219, +189,222,233,224,234,225,184,226,44,227,77,227,233,227,133,228,90,228,138,228,24,230,50,232,39,234,213,235,147,236,153,236, +67,237,97,238,184,238,203,238,194,239,110,241,86,243,26,245,177,245,38,245,69,245,108,246,238,246,165,246,24,247,54,248, +210,248,86,249,115,250,103,251,244,251,31,253,132,254,169,254,44,254,179,254,145,255,73,255,162,254,27,255,114,0,204,1, +17,3,41,4,223,4,196,5,140,7,159,9,144,10,36,10,154,9,189,9,31,10,66,10,20,10,212,9,173,10,168,13, +65,17,222,18,132,18,16,18,7,18,4,18,41,18,94,18,73,18,73,18,201,18,153,19,145,20,98,21,118,21,47,21, +140,21,50,22,247,21,230,20,207,19,246,18,111,18,80,18,39,18,130,17,209,16,210,16,77,17,70,17,93,16,26,15, +203,13,83,12,21,11,144,10,86,10,254,9,253,9,68,10,17,10,146,9,58,9,74,8,169,6,236,5,66,6,211,5, +124,4,7,4,123,4,110,4,251,3,199,3,134,3,105,3,179,3,25,3,64,1,121,0,83,1,10,1,15,255,43,254, +251,254,126,255,66,255,179,254,76,253,227,251,14,252,40,252,174,249,115,246,196,245,237,246,75,247,92,246,219,244,98,243, +243,242,145,243,24,243,134,240,87,238,199,238,71,240,40,240,38,238,139,235,144,233,81,233,149,234,69,235,156,234,135,234, +215,235,222,236,204,236,238,235,167,233,210,230,200,230,187,233,99,235,91,234,221,233,27,235,33,236,104,236,42,236,155,234, +6,233,68,234,13,237,132,237,7,236,172,235,120,236,202,236,197,236,139,236,125,235,131,234,211,234,138,235,191,235,31,236, +159,236,106,236,80,236,72,237,207,237,87,236,54,234,164,233,240,234,203,236,176,237,87,237,147,237,29,240,109,243,133,244, +43,243,115,241,96,240,180,239,82,239,243,238,148,238,165,239,33,243,65,247,220,249,41,251,0,252,65,252,67,252,147,252, +114,252,162,251,231,251,18,254,145,0,79,2,127,3,198,3,53,3,66,3,246,3,156,3,181,2,193,3,196,6,100,9, +117,10,44,10,39,9,246,8,118,10,213,11,117,11,207,10,157,11,47,13,123,14,143,15,143,16,200,17,141,19,207,20, +59,20,186,18,65,18,35,19,122,20,137,21,16,22,181,22,109,24,199,26,133,28,171,29,199,30,142,31,254,31,210,32, +205,33,231,33,108,33,205,33,132,35,165,37,4,39,25,39,114,38,104,38,194,39,180,41,206,42,180,42,126,42,29,43, +22,44,81,44,172,43,229,42,121,42,148,42,86,43,50,44,30,44,113,43,212,43,126,45,159,46,18,46,95,44,105,42, +69,41,243,41,96,43,37,43,113,41,230,40,46,42,59,43,175,42,25,41,161,39,83,39,121,40,203,41,207,41,253,40, +200,40,72,41,138,41,32,41,7,40,149,38,11,38,28,39,254,39,218,38,40,37,81,37,215,38,218,39,245,39,86,39, +235,37,124,36,210,35,70,35,53,34,84,33,32,33,14,33,243,32,59,33,156,33,52,33,216,31,58,30,204,28,90,27, +192,25,18,24,17,22,202,19,56,18,240,17,16,18,157,17,136,16,17,15,168,13,250,12,173,12,104,11,247,8,199,6, +219,5,170,5,249,4,22,3,172,0,101,255,248,255,222,0,231,255,255,252,145,250,169,250,105,252,7,253,253,250,137,247, +35,245,219,244,91,245,198,244,24,243,243,241,122,242,33,244,72,245,220,244,84,243,232,241,31,241,139,240,102,239,87,237, +35,235,237,233,162,233,136,233,163,233,216,233,101,233,135,232,45,232,203,231,60,230,0,228,40,226,222,224,61,224,77,224, +29,224,35,223,89,222,81,222,46,222,78,221,2,220,151,218,110,217,87,217,65,218,136,218,39,217,98,215,206,214,23,215, +11,215,69,214,33,213,128,212,70,213,227,214,161,215,26,215,102,214,47,214,100,214,210,214,247,214,164,214,143,214,3,215, +103,215,171,215,75,216,36,217,197,217,15,218,35,218,149,218,221,219,37,221,140,221,197,221,150,222,157,223,175,224,166,225, +52,225,251,222,87,221,38,222,51,224,146,225,232,225,196,225,75,226,166,228,148,231,223,231,94,229,255,227,237,229,189,232, +219,233,121,233,233,232,182,233,195,236,251,239,63,240,126,238,40,238,170,239,39,241,243,241,208,241,195,240,241,240,1,244, +162,247,226,248,141,248,20,249,247,250,20,253,41,254,192,253,9,253,243,253,167,0,36,3,241,3,241,3,180,4,67,6, +125,7,156,7,169,6,152,5,179,5,220,6,152,7,156,7,58,8,4,10,41,12,166,13,231,13,77,13,12,13,71,13, +225,12,227,11,166,11,146,12,205,13,146,14,158,14,107,14,218,14,181,15,241,15,161,15,196,15,134,16,77,17,159,17, +69,17,130,16,35,16,140,16,47,17,85,17,14,17,236,16,6,17,221,16,98,16,17,16,211,15,13,15,232,13,56,13, +84,13,195,13,188,13,223,12,159,11,174,10,82,10,118,10,176,10,69,10,19,9,214,7,19,7,132,6,131,5,169,3, +211,1,179,1,3,3,31,3,203,0,244,253,207,252,114,253,100,254,42,254,158,252,211,250,193,249,193,249,96,250,13,250, +254,247,29,246,94,246,108,247,233,246,207,244,211,242,116,242,158,243,59,244,237,242,135,241,224,241,102,242,255,240,79,238, +246,235,165,234,118,234,198,234,105,234,118,233,49,233,213,233,80,234,10,234,80,233,174,232,228,232,71,234,133,235,212,234, +204,232,152,231,105,231,180,230,103,229,209,228,118,229,229,230,49,232,42,232,18,231,208,230,9,232,70,233,121,233,218,232, +242,231,174,231,173,232,205,233,154,233,192,232,28,233,19,235,13,237,101,237,97,236,195,235,105,236,106,237,137,237,134,236, +86,235,63,235,49,236,6,237,152,237,112,238,44,239,146,239,98,240,89,241,85,241,202,240,244,240,127,241,162,241,192,241, +59,242,138,242,98,242,83,242,200,242,60,243,43,243,83,243,143,244,62,246,136,247,162,248,119,249,141,249,154,249,99,250, +27,251,84,251,6,252,63,253,10,254,186,254,251,255,31,1,148,1,249,1,134,2,192,2,238,2,182,3,224,4,21,6, +172,7,143,9,212,10,82,11,231,11,196,12,111,13,35,14,53,15,89,16,170,17,49,19,144,19,5,18,123,16,205,16, +55,18,36,19,32,19,226,18,252,19,13,23,39,26,51,27,180,26,105,26,57,27,198,28,73,29,131,27,111,25,23,26, +56,29,27,32,56,33,16,33,130,33,60,36,252,39,31,41,138,38,138,35,178,35,162,38,218,40,41,40,98,38,241,38, +136,42,118,46,132,47,24,45,27,42,22,42,213,44,164,46,79,45,207,42,152,42,108,45,86,48,236,47,132,44,221,41, +164,42,130,45,216,46,240,44,26,42,229,41,134,44,148,46,73,45,166,41,254,38,39,39,185,40,89,41,159,40,248,39, +181,40,166,42,215,43,133,42,189,39,63,38,235,38,50,40,90,40,10,39,180,37,45,38,3,40,220,40,196,39,241,37, +180,36,100,36,58,36,12,35,71,33,163,32,67,33,204,33,198,33,73,33,18,32,190,30,75,30,12,30,191,28,227,26, +177,25,34,25,131,24,213,23,133,23,100,23,165,22,230,20,108,18,193,15,218,13,112,13,139,13,186,12,137,11,42,11, +24,11,126,10,176,9,183,8,40,7,112,5,224,3,12,2,107,0,255,255,7,0,8,255,78,253,250,251,221,250,89,249, +193,247,97,246,250,244,246,243,13,244,99,244,163,243,152,242,152,242,171,242,103,241,188,239,15,239,254,238,158,238,191,237, +143,236,137,235,37,235,9,235,125,234,123,233,195,232,24,233,8,234,251,233,168,232,156,231,85,231,222,230,92,230,85,230, +240,229,41,229,92,229,253,229,50,229,140,227,189,226,109,226,176,225,219,224,28,224,23,223,10,222,84,221,150,220,132,219, +140,218,62,218,162,218,32,219,253,218,37,218,100,217,113,217,223,217,166,217,190,216,57,216,160,216,79,217,114,217,225,216, +80,216,237,216,198,218,64,220,62,220,152,219,150,219,127,220,200,221,149,222,154,222,180,222,167,223,238,224,192,225,12,226, +32,226,127,226,146,227,250,228,238,229,73,230,120,230,204,230,70,231,193,231,53,232,142,232,120,232,52,232,209,232,95,234, +150,235,43,236,19,237,94,238,93,239,245,239,11,240,86,239,124,238,88,238,200,238,128,239,177,240,80,242,23,244,201,245, +236,246,49,247,251,246,192,246,192,246,61,247,245,247,79,248,197,248,98,250,201,252,164,254,125,255,164,255,83,255,3,255, +103,255,46,0,40,0,148,255,117,0,110,3,112,6,205,7,43,8,99,8,85,8,28,8,217,7,31,7,116,6,122,7, +70,10,224,12,15,14,147,14,110,15,152,16,87,17,30,17,39,16,94,15,107,15,183,15,52,15,79,14,163,14,84,16, +159,17,94,17,27,16,255,14,223,14,112,15,81,15,242,13,111,12,163,11,50,11,171,10,205,9,131,8,146,7,170,7, +32,8,80,8,108,8,8,8,146,6,232,4,210,3,195,2,170,1,26,1,166,0,10,0,103,0,200,1,116,2,251,1, +102,1,121,0,141,254,223,252,151,252,148,252,225,251,160,251,128,252,113,253,203,253,190,253,212,252,230,250,40,249,7,248, +124,246,190,244,71,244,222,244,254,244,133,244,28,244,77,243,107,241,5,239,242,236,18,235,20,233,190,231,6,232,54,233, +177,233,90,233,36,233,223,232,143,231,49,229,156,226,171,224,219,223,216,223,27,224,56,225,202,227,120,230,116,231,246,230, +35,230,255,228,66,227,208,225,180,225,121,226,233,226,235,226,132,227,50,229,97,231,29,233,192,233,154,233,200,233,108,234, +70,234,79,233,71,233,154,234,181,235,238,235,242,235,208,235,127,235,216,235,223,236,59,237,191,236,227,236,255,237,225,238, +10,239,208,238,40,238,122,237,229,237,255,238,231,238,181,237,152,237,40,239,6,241,108,242,46,243,187,242,162,241,164,241, +195,242,30,243,55,242,161,241,121,242,159,244,129,247,221,249,74,250,107,249,133,249,8,251,15,252,213,251,178,251,150,252, +79,254,120,0,246,1,168,1,220,0,200,1,151,3,29,4,21,4,95,5,127,7,61,9,190,10,246,11,79,12,86,12, +196,12,220,12,11,12,120,11,76,12,64,14,118,16,72,18,92,19,9,20,13,21,47,22,27,22,72,20,15,18,18,17, +81,17,223,17,198,18,182,20,140,23,115,26,208,28,7,30,185,29,214,28,164,28,196,28,87,28,23,28,36,29,78,31, +23,34,9,37,192,38,134,38,5,38,114,38,74,38,129,36,199,34,249,34,77,37,39,41,225,44,100,46,17,46,96,46, +128,47,19,47,130,44,220,41,225,40,226,41,63,44,52,46,66,46,125,45,1,46,64,47,203,46,67,44,157,41,68,40, +50,40,242,40,189,41,228,41,41,42,222,43,58,46,207,46,231,44,78,42,217,40,210,40,34,41,49,40,243,37,10,37, +111,39,217,42,150,43,192,41,74,40,128,40,90,41,162,41,227,40,182,39,156,39,255,40,26,42,76,41,62,39,168,37, +21,37,174,36,101,35,23,33,239,30,77,30,51,31,42,32,253,31,225,30,163,29,82,28,140,26,128,24,194,22,178,21, +94,21,126,21,123,21,240,20,227,19,87,18,96,16,127,14,52,13,124,12,25,12,209,11,87,11,169,10,52,10,50,10, +55,10,146,9,232,7,172,5,0,4,176,3,74,4,172,4,64,4,95,3,183,2,132,2,0,2,2,0,186,252,241,249, +196,248,87,248,162,247,247,246,14,247,252,247,49,249,155,249,123,248,114,246,139,244,188,242,185,240,189,238,178,236,141,234, +114,233,39,234,88,235,77,235,20,234,230,232,160,232,196,232,229,231,224,229,141,228,241,228,239,229,164,230,60,231,109,231, +218,230,32,230,145,229,154,228,46,227,9,226,157,225,254,225,232,226,102,227,231,226,87,226,139,226,153,226,131,225,4,224, +87,223,156,223,70,224,189,224,139,224,76,224,71,225,241,226,2,227,14,225,58,223,225,222,105,223,234,223,188,223,171,222, +249,221,24,223,7,225,96,225,206,223,94,222,200,222,198,224,176,226,238,226,101,225,23,224,72,225,53,228,101,229,135,227, +121,225,237,225,14,228,146,229,102,229,36,228,237,227,106,230,25,234,221,235,36,235,21,234,136,234,122,236,70,238,7,238, +237,235,130,234,177,235,169,238,31,241,222,241,234,241,36,243,206,245,40,248,165,248,164,247,218,246,125,247,44,249,182,250, +86,251,230,250,6,250,34,250,210,251,162,253,50,254,65,254,27,255,175,0,25,2,156,2,250,1,239,0,165,0,54,1, +189,1,211,1,3,2,181,2,145,3,29,4,90,4,123,4,148,4,155,4,66,4,123,3,64,3,75,4,101,5,93,5, +66,5,53,6,82,7,214,7,99,8,52,9,212,9,122,10,126,11,69,12,49,12,130,11,201,10,62,10,225,9,182,9, +133,9,235,8,111,8,5,9,203,9,51,9,106,8,91,9,161,10,82,10,166,9,130,9,74,8,0,6,204,4,162,4, +223,3,212,2,81,2,181,1,23,1,146,1,120,2,225,1,218,255,237,253,161,252,198,251,125,251,108,251,238,250,177,250, +181,251,240,252,170,252,28,251,136,249,143,248,117,248,206,248,90,248,20,247,117,246,193,246,216,246,90,246,111,245,36,244, +100,243,235,243,134,244,215,243,134,242,200,241,164,241,83,241,43,240,52,238,52,236,188,234,210,233,145,233,223,233,10,234, +164,233,228,232,15,232,88,231,207,230,67,230,181,229,51,229,89,228,96,227,150,227,33,229,39,230,146,229,173,228,31,229, +160,230,45,231,134,229,252,226,240,225,27,227,89,229,38,231,203,231,3,232,250,232,78,234,178,234,247,233,173,232,117,231, +150,231,134,233,44,235,249,234,229,234,229,236,33,239,247,238,11,237,150,235,37,235,59,235,224,235,197,236,66,237,38,238, +86,240,254,241,28,241,100,239,79,239,40,240,122,240,115,240,74,240,83,240,226,241,155,244,203,245,212,244,69,244,107,245, +179,246,182,246,10,246,58,246,25,248,244,250,45,253,212,253,187,253,124,254,40,0,246,0,231,255,52,254,152,253,227,254, +151,1,177,3,210,3,199,3,219,5,250,8,173,10,142,10,141,9,231,8,234,9,7,12,233,12,47,12,221,11,222,12, +107,14,233,15,218,16,190,16,87,16,250,16,130,18,201,19,129,20,7,21,82,21,103,21,185,21,48,22,52,22,16,22, +118,22,19,23,159,23,175,24,219,25,231,25,96,25,166,25,70,26,124,26,222,26,120,27,156,27,230,27,51,29,171,30, +38,31,180,30,249,29,152,29,229,29,139,30,43,31,174,31,235,31,73,32,141,33,1,35,43,35,149,34,214,34,192,35, +32,36,178,35,237,34,142,34,55,35,117,36,27,37,216,36,79,36,242,35,181,35,95,35,218,34,63,34,172,33,95,33, +160,33,31,34,45,34,223,33,210,33,252,33,197,33,198,32,11,31,99,29,196,28,222,28,165,28,11,28,163,27,136,27, +185,27,22,28,200,27,83,26,204,24,132,24,25,25,25,25,63,24,182,23,15,24,147,24,216,24,247,24,129,24,109,23, +146,22,179,21,200,19,163,17,204,16,193,16,108,16,51,16,123,16,237,16,153,17,92,18,29,18,104,16,119,14,171,13, +235,13,200,13,53,12,250,9,192,8,43,9,102,10,175,10,222,8,52,6,237,4,223,4,95,4,116,3,234,2,143,2, +133,2,40,3,69,3,255,1,5,1,146,1,8,2,230,0,245,254,77,253,12,252,57,251,184,250,245,249,2,249,200,248, +45,249,211,248,98,247,12,246,90,245,172,244,203,243,3,243,78,242,210,241,237,241,98,242,191,242,2,243,37,243,13,243, +217,242,103,242,138,241,190,240,58,240,98,239,70,238,214,237,86,238,109,239,216,240,244,241,90,242,188,242,126,243,203,243, +23,243,238,241,38,241,67,241,213,241,187,241,217,240,35,240,219,239,254,239,8,241,76,242,27,242,175,240,219,239,247,239, +8,240,134,239,87,238,226,236,90,236,13,237,132,237,194,236,165,235,70,235,179,235,123,236,251,236,141,236,144,235,109,235, +137,236,102,237,253,236,76,236,131,236,114,237,120,238,66,239,153,239,191,239,84,240,96,241,130,242,148,243,83,244,153,244, +13,245,38,246,27,247,24,247,65,246,57,245,206,244,154,245,32,247,74,248,226,248,131,249,138,250,188,251,121,252,55,252, +60,251,103,250,57,250,104,250,75,250,189,249,131,249,67,250,169,251,29,253,61,254,131,254,7,254,225,253,143,254,48,255, +243,254,251,253,35,253,152,253,109,255,246,0,7,1,149,0,254,0,86,2,190,3,68,4,250,3,25,4,39,5,89,6, +91,7,60,8,56,8,65,7,252,6,18,8,40,9,115,9,93,9,22,9,248,8,188,9,223,10,25,11,162,10,157,10, +0,11,56,11,117,11,174,11,63,11,152,10,245,10,6,12,111,12,68,12,93,12,115,12,42,12,34,12,111,12,69,12, +164,11,39,11,183,10,8,10,64,9,110,8,154,7,35,7,75,7,214,7,50,8,230,7,72,7,70,7,215,7,203,7, +140,6,176,4,62,3,233,2,13,3,29,2,57,0,56,255,125,255,196,255,237,255,152,0,65,1,68,1,244,0,119,0, +128,255,78,254,86,253,148,252,243,251,184,251,11,252,120,252,73,252,90,251,43,250,27,249,118,248,125,248,94,248,254,246, +95,245,107,245,147,246,223,246,25,246,5,245,161,243,33,242,4,241,180,239,188,237,76,236,80,236,224,236,45,237,97,237, +215,236,139,234,142,231,203,229,217,228,60,227,113,225,226,224,188,225,149,227,178,229,126,230,184,229,134,229,204,230,135,231, +71,230,179,227,193,224,190,222,2,223,186,224,6,226,27,227,3,229,3,231,7,232,1,232,204,230,167,228,76,227,231,227, +60,229,157,229,45,229,25,229,238,229,66,231,14,232,105,231,195,229,228,228,136,229,104,230,192,230,63,231,192,231,99,231, +218,230,212,230,22,230,86,228,111,227,194,227,238,227,36,228,68,229,121,230,24,231,196,231,131,232,235,232,108,233,207,233, +241,232,136,231,185,231,89,233,71,234,55,234,200,234,104,236,34,238,160,239,11,241,34,242,248,242,8,244,245,244,80,245, +215,245,226,246,132,247,139,247,189,247,41,248,216,248,79,250,240,251,238,252,114,254,28,1,29,3,121,3,86,3,57,3, +38,3,220,3,201,4,57,4,29,3,25,4,6,7,169,9,77,11,107,12,253,12,60,13,205,13,58,14,120,13,22,12, +190,11,226,12,177,14,97,16,88,17,156,17,109,18,49,20,31,21,142,20,149,20,89,22,160,24,152,26,253,27,28,28, +182,27,132,28,209,29,208,29,66,29,212,29,100,31,84,33,72,35,98,36,168,36,206,37,101,40,97,42,14,42,110,40, +139,39,187,39,248,39,222,39,225,39,149,40,172,42,192,45,122,47,173,46,153,45,253,45,77,46,15,45,235,42,211,40, +195,39,144,40,179,41,208,40,233,38,162,38,198,39,94,40,208,39,49,38,167,35,184,33,231,33,198,34,131,33,79,30, +14,28,244,27,116,28,32,28,238,26,114,25,197,24,123,25,36,26,251,24,118,22,75,20,107,19,173,19,11,20,203,19, +155,19,228,19,160,19,170,18,7,18,112,17,128,16,118,16,46,17,138,16,237,14,143,14,209,14,9,14,92,13,20,14, +242,14,206,14,247,13,101,12,54,10,211,8,194,8,104,8,51,7,231,6,224,7,206,7,236,5,253,3,136,2,224,0, +211,255,157,255,115,254,102,252,151,251,133,251,77,250,200,248,245,247,142,246,154,244,179,243,49,243,180,241,101,240,114,240, +190,240,87,240,154,239,193,238,8,238,59,238,75,239,219,239,82,239,233,238,199,239,43,241,168,241,39,241,130,240,8,240, +135,239,248,238,189,238,139,239,117,241,91,243,62,244,87,244,42,244,255,243,9,244,248,243,126,243,112,243,135,244,205,245, +2,246,49,245,59,244,6,244,176,244,11,245,47,244,233,242,53,242,232,241,109,241,120,240,102,239,124,239,44,241,171,242, +43,242,84,240,22,239,50,239,157,239,37,239,80,238,141,238,234,239,87,241,29,242,213,241,9,241,133,241,120,243,119,244, +164,243,210,242,15,243,78,244,200,246,73,249,204,249,76,249,29,250,138,251,173,251,8,251,233,250,165,251,147,253,110,0, +75,2,2,2,239,0,164,0,3,1,136,1,58,2,228,2,68,3,207,3,217,4,197,5,44,6,143,6,50,7,180,7, +217,7,154,7,50,7,79,7,245,7,235,7,162,6,48,5,198,4,149,5,252,6,223,7,0,8,141,8,4,10,50,11, +45,11,57,10,255,8,119,8,22,9,157,9,241,8,26,8,148,8,115,10,231,12,165,14,171,14,198,13,153,13,35,14, +51,14,60,13,214,11,119,11,36,13,147,15,133,16,11,16,35,16,200,17,2,20,232,20,89,19,153,16,19,15,31,15, +50,15,194,14,175,14,163,15,117,17,43,19,126,19,61,18,139,16,51,15,18,14,39,13,156,12,28,12,108,11,235,10, +161,10,26,10,107,9,194,8,126,7,121,5,241,3,137,3,73,3,153,2,233,1,106,1,57,1,173,1,252,1,180,0, +85,254,254,252,96,253,22,254,211,253,204,252,34,252,87,252,208,252,198,252,224,251,27,250,75,248,212,247,172,248,43,249, +124,248,79,247,71,246,157,245,121,245,91,245,154,244,185,243,183,243,100,244,191,244,91,244,108,243,31,242,154,240,112,239, +44,239,82,239,175,238,16,237,149,235,16,235,38,235,25,235,112,234,65,233,109,232,142,232,151,232,50,231,19,229,247,227, +58,228,53,229,144,230,130,231,41,231,137,230,63,231,58,232,63,231,236,228,133,227,91,227,157,227,75,228,239,228,138,228, +13,228,24,229,89,230,119,229,136,227,228,226,6,227,208,226,76,227,165,228,59,229,137,229,27,231,56,232,221,230,46,229, +66,229,118,229,235,228,110,229,27,231,117,232,200,233,115,235,7,236,95,235,28,235,50,235,126,234,187,233,54,234,155,235, +50,237,196,238,154,239,42,239,131,238,11,239,128,240,112,241,8,241,231,239,144,239,224,240,255,242,62,244,249,243,51,243, +100,243,196,244,206,245,29,245,135,243,239,242,163,243,179,244,118,245,87,245,103,244,124,244,161,246,167,248,119,248,56,247, +199,246,106,247,214,248,84,250,182,250,94,250,14,251,253,252,163,254,5,255,79,254,125,253,211,253,130,255,67,1,8,2, +23,2,117,2,151,3,163,4,133,4,128,3,140,2,64,2,15,3,169,4,150,5,141,5,253,5,194,6,41,6,131,4, +108,3,242,2,234,2,254,3,128,5,7,6,42,6,17,7,241,7,212,7,90,7,218,6,215,5,248,4,131,5,214,6, +112,7,155,7,65,8,215,8,227,8,254,8,14,9,196,8,84,9,32,11,57,12,0,12,32,12,234,12,87,13,182,13, +73,14,25,14,68,13,251,12,8,13,144,12,214,11,101,11,98,11,18,12,66,13,213,13,14,13,182,11,32,11,54,11, +143,10,237,8,185,7,161,7,12,8,109,8,27,8,177,6,104,5,76,5,30,5,227,3,119,2,63,1,62,0,144,0, +37,2,230,2,74,2,206,1,195,1,130,1,42,1,172,0,153,255,170,254,37,255,175,0,139,1,228,0,164,255,161,254, +110,253,233,251,238,250,168,250,238,250,142,252,92,255,79,1,185,1,238,1,86,2,108,2,39,2,80,1,10,0,206,255, +247,0,166,1,0,1,67,0,87,0,32,1,41,2,150,2,4,2,106,1,185,1,125,2,160,2,182,1,136,0,80,0, +79,1,158,2,34,3,90,2,16,1,218,0,211,1,77,2,55,1,60,255,237,253,120,254,234,255,163,255,50,253,18,251, +216,250,244,251,105,253,53,254,72,254,114,255,117,2,33,5,144,5,248,3,113,1,203,255,71,0,82,1,22,1,201,0, +51,2,64,5,43,9,78,12,177,12,126,11,220,11,224,13,39,15,246,14,45,14,208,13,232,14,62,17,183,18,242,17, +62,16,244,15,139,17,41,19,74,19,158,18,84,18,180,18,209,19,231,20,39,20,197,17,97,16,192,16,23,17,176,16, +66,16,24,16,131,16,238,17,96,19,78,19,225,17,174,16,102,16,82,16,247,15,167,15,96,15,34,15,218,15,162,17, +246,18,196,19,125,21,119,23,9,24,202,23,112,23,81,22,103,21,86,22,217,23,58,24,96,24,50,25,253,25,57,26, +202,25,215,24,145,24,204,25,154,27,216,28,39,29,182,28,158,28,112,29,132,29,121,27,192,24,104,23,213,23,27,25, +191,25,79,25,115,25,86,27,90,29,120,29,179,27,113,25,41,24,48,24,67,24,73,23,234,21,110,21,71,22,181,23, +74,24,169,23,45,23,185,23,129,24,133,24,101,23,112,21,11,20,47,20,194,20,85,20,32,19,14,18,191,17,80,18, +238,18,175,18,232,17,96,17,94,17,201,17,236,17,248,16,125,15,94,14,62,13,228,11,26,11,4,11,52,11,226,11, +9,13,6,14,196,14,46,15,92,14,58,12,69,10,112,9,253,8,247,7,169,6,9,6,43,6,95,6,75,6,179,5, +106,4,103,3,117,3,80,3,1,2,186,0,17,0,83,255,241,254,13,255,205,253,2,251,248,248,13,248,220,246,171,245, +15,245,56,244,59,243,39,243,139,243,36,243,207,241,28,240,165,238,174,237,162,236,29,235,240,233,183,233,16,234,174,234, +59,235,237,234,198,233,212,232,88,232,102,231,131,229,106,227,63,226,148,226,248,227,60,229,86,229,85,228,55,227,134,226, +213,225,186,224,72,223,184,221,156,220,140,220,249,220,176,220,146,219,120,218,250,217,34,218,65,218,76,217,70,215,126,213, +8,213,215,213,217,214,209,214,0,214,237,213,227,214,160,215,89,215,36,214,160,212,71,212,152,213,131,214,91,213,154,211, +144,211,128,213,242,215,43,217,208,216,109,216,99,217,35,219,98,220,100,220,99,219,236,218,30,220,112,221,20,221,41,220, +122,220,225,221,179,223,80,225,92,225,255,223,207,223,156,225,239,226,127,226,204,225,215,225,106,226,171,227,50,229,169,229, +107,229,82,230,40,232,221,232,55,232,200,231,35,232,207,232,159,233,121,234,80,235,122,236,166,237,203,237,34,237,65,237, +162,238,39,240,47,241,74,242,238,243,203,245,83,247,57,248,98,248,11,248,244,247,150,248,74,249,114,249,215,249,70,251, +254,252,15,254,230,254,31,0,114,1,116,2,6,3,53,3,143,3,171,4,245,5,95,6,65,6,222,6,102,8,205,9, +42,10,140,9,7,9,211,9,187,11,30,13,52,13,14,13,209,13,69,15,86,16,0,16,42,14,105,12,170,12,126,14, +105,15,121,14,142,13,126,14,176,16,23,18,137,17,228,15,84,15,215,16,194,18,228,18,132,17,192,16,214,17,24,20, +133,21,113,20,219,17,144,16,24,17,85,17,99,16,117,15,181,15,214,17,110,21,192,23,235,22,30,21,221,20,64,21, +232,20,33,20,252,18,211,17,91,18,122,20,98,21,66,20,56,19,1,19,96,18,10,17,131,15,191,13,101,12,193,12, +70,14,210,14,12,14,98,13,8,13,3,12,97,10,164,8,192,6,126,5,12,6,56,7,208,6,104,5,0,5,97,5, +41,5,54,4,198,2,238,0,212,255,158,0,21,2,35,2,42,1,17,1,204,1,142,1,185,255,52,253,252,250,24,250, +243,250,22,252,26,252,19,252,104,253,46,255,182,255,120,254,226,251,73,249,239,247,84,247,86,246,60,245,204,244,12,245, +167,245,188,245,97,244,249,241,115,239,58,237,25,236,102,236,234,236,208,237,70,241,169,246,124,250,104,251,195,249,96,245, +71,240,140,237,218,235,153,232,89,230,157,232,199,237,191,242,127,246,187,247,64,246,192,245,117,248,110,250,72,248,251,244, +59,244,213,245,221,248,36,252,106,252,176,249,153,249,146,253,15,255,246,250,50,246,167,244,40,246,70,250,70,254,162,253, +87,250,42,251,179,255,234,0,217,252,36,248,161,246,36,249,98,254,34,2,207,0,146,253,156,254,242,2,169,3,19,255, +99,250,17,249,153,250,240,253,202,0,193,0,173,0,38,5,163,11,11,14,40,12,183,9,49,8,193,7,150,8,34,9, +20,8,108,7,118,9,186,12,24,14,69,13,119,12,207,12,254,13,61,16,92,19,195,21,58,23,237,24,133,25,14,23, +183,19,32,18,210,16,208,14,125,14,144,16,15,19,176,21,232,24,233,26,142,26,177,25,135,25,162,24,62,22,246,19, +32,19,139,19,106,21,241,24,50,28,75,29,130,29,65,30,30,30,88,28,136,26,54,25,25,24,161,24,51,27,89,29, +11,30,239,30,67,32,186,32,96,32,165,31,240,29,238,27,86,28,59,32,42,37,108,40,169,41,66,41,50,39,169,36, +181,34,221,31,173,27,184,25,57,28,94,32,96,35,104,37,192,38,202,39,159,41,231,42,141,40,249,34,208,29,92,27, +95,27,86,28,153,28,1,28,11,28,142,29,90,31,21,31,186,27,188,23,107,22,128,23,123,24,100,24,61,23,114,21, +240,20,73,22,138,22,233,19,177,16,54,15,191,15,238,17,38,20,57,20,224,18,124,18,194,18,229,17,37,16,117,14, +123,12,95,10,149,9,110,10,152,11,82,12,188,12,211,12,24,13,18,14,251,13,166,10,188,5,217,2,204,2,50,4, +68,5,194,3,241,255,225,253,255,254,61,255,29,252,234,247,66,245,79,245,233,247,173,249,40,247,151,242,163,240,92,241, +87,241,137,238,179,233,227,229,16,230,65,233,91,235,98,234,106,232,107,232,197,234,174,236,251,234,232,229,63,225,30,224, +102,225,167,225,10,224,252,222,16,224,81,226,32,228,2,228,158,225,133,223,42,224,166,225,28,225,102,223,55,222,94,221, +8,221,70,221,88,220,20,218,39,217,2,218,91,218,54,218,73,219,203,220,46,221,5,221,160,220,229,218,130,216,120,215, +36,215,156,213,3,212,117,212,236,213,158,214,25,215,199,215,219,215,237,215,193,216,180,216,222,214,87,213,118,213,56,214, +60,215,183,216,147,217,16,217,25,216,141,215,95,215,101,215,127,215,209,215,204,216,66,218,138,219,96,220,123,220,133,219, +92,218,80,218,8,219,95,219,128,219,95,220,84,222,33,225,25,228,244,229,21,230,214,229,217,230,114,232,213,232,227,231, +178,230,14,230,12,231,249,233,108,236,128,236,116,236,133,238,252,240,14,242,51,242,139,241,204,240,113,242,187,245,46,246, +134,243,70,242,146,243,225,244,159,245,56,246,44,246,25,247,31,251,132,255,73,0,206,254,113,254,0,255,52,255,27,255, +4,254,252,251,7,252,144,255,107,3,81,5,196,6,151,8,234,9,68,11,246,12,27,13,143,11,131,11,66,14,77,17, +221,18,208,19,8,21,106,22,192,23,165,24,135,24,222,23,51,24,249,25,176,27,19,28,189,27,145,27,119,27,148,27, +68,28,149,28,187,27,34,27,59,28,27,30,142,31,175,32,72,33,226,32,76,32,27,32,43,31,247,28,237,26,33,26, +62,26,215,26,124,27,123,27,87,27,123,28,132,30,53,31,147,29,2,27,68,25,223,24,65,25,114,25,239,24,96,24, +219,24,34,26,118,26,214,24,100,22,166,20,236,19,12,20,180,20,228,20,100,20,140,20,157,21,194,21,47,20,35,18, +112,16,43,15,203,14,37,15,74,15,80,15,165,15,92,15,165,13,84,11,82,9,170,7,128,6,226,5,61,5,117,4, +59,4,145,4,99,4,16,3,59,1,195,255,160,254,56,253,91,251,117,249,29,248,193,247,20,248,166,247,64,245,247,241, +67,240,106,240,243,239,124,237,162,234,50,233,59,233,48,234,28,235,161,234,109,233,235,233,166,235,74,235,25,232,146,228, +109,226,21,226,168,227,194,229,167,230,72,231,87,233,166,235,237,235,252,233,4,231,51,228,238,226,198,227,43,229,84,229, +1,229,15,230,46,232,107,233,247,232,66,231,252,228,101,227,88,227,163,227,199,226,108,225,1,225,230,225,177,227,97,229, +237,229,199,229,222,229,245,229,212,229,159,229,106,228,29,226,217,224,79,225,225,225,126,226,232,227,233,228,116,229,169,231, +176,234,125,235,234,234,168,235,247,236,135,237,146,238,83,240,54,241,179,241,37,243,95,244,83,244,187,244,72,246,244,246, +114,246,234,246,113,248,56,249,67,249,97,249,64,249,166,249,224,251,81,254,205,254,155,254,128,255,154,0,5,1,244,0, +1,0,177,254,82,255,69,2,250,4,226,5,28,6,10,7,173,8,2,10,56,10,151,9,68,9,98,10,10,13,169,15, +170,16,176,16,48,17,24,18,206,18,57,19,20,19,196,18,156,19,142,21,80,23,193,24,42,26,58,27,142,28,181,30, +71,32,85,32,25,32,57,32,84,32,198,32,129,33,154,33,120,33,31,34,59,35,154,36,107,38,82,39,85,38,88,37, +233,37,215,38,61,39,6,40,116,41,236,42,168,44,168,46,146,47,218,46,211,45,36,45,17,44,221,42,146,42,204,42, +4,43,36,44,6,46,227,46,155,46,86,46,173,45,20,44,122,42,76,41,77,40,254,39,43,40,191,39,94,39,39,40, +24,41,31,41,178,40,246,39,247,38,136,38,67,38,222,36,76,35,104,35,205,36,21,38,217,38,244,38,131,38,94,38, +191,38,159,38,98,37,218,35,7,35,201,34,163,34,215,34,98,35,72,35,126,34,31,34,200,33,94,32,195,30,246,29, +52,29,110,28,81,28,206,27,62,26,89,25,140,25,216,24,223,22,252,20,70,19,116,17,39,16,73,15,244,13,55,12, +211,10,13,10,135,9,149,8,32,7,34,6,24,6,233,5,150,4,205,2,179,1,33,1,48,0,205,254,180,253,51,253, +18,253,11,253,135,252,50,251,218,249,20,249,28,248,118,246,187,244,48,243,0,242,210,241,81,242,47,242,50,241,32,240, +64,239,103,238,42,237,40,235,55,233,136,232,142,232,14,232,247,230,211,229,63,229,168,229,16,230,37,229,196,227,97,227, +112,227,13,227,106,226,170,225,14,225,62,225,157,225,214,224,87,223,108,222,9,222,71,221,175,219,187,217,200,216,121,217, +162,218,24,219,204,218,221,217,210,216,138,216,67,216,125,214,39,212,80,211,208,211,86,212,156,212,171,212,134,212,231,212, +229,213,3,214,138,212,220,210,39,210,13,210,57,210,251,210,47,212,77,213,82,214,72,215,254,215,160,216,69,217,140,217, +171,217,90,218,104,219,98,220,126,221,82,222,100,222,238,222,180,224,218,225,67,225,106,224,69,224,132,224,70,225,220,225, +242,224,170,223,36,224,174,225,137,226,173,226,86,226,185,225,39,226,208,227,177,228,32,228,228,227,19,229,13,231,238,232, +229,233,181,233,122,233,94,234,13,236,110,237,238,237,228,237,95,238,33,240,115,242,255,243,185,244,231,245,51,248,227,250, +251,252,41,254,185,254,69,255,42,0,247,0,48,1,122,1,171,2,92,4,204,5,19,7,95,8,90,9,252,9,138,10, +198,10,83,10,141,9,5,9,211,8,235,8,89,9,252,9,238,10,164,12,152,14,45,15,57,14,170,13,129,14,174,15, +62,16,251,15,3,15,218,14,236,16,78,19,66,19,241,17,9,18,82,19,104,20,242,20,143,20,175,19,128,20,60,23, +217,24,207,23,250,21,241,20,217,20,190,21,202,22,102,22,17,21,21,21,207,22,69,24,65,24,71,23,85,22,47,22, +148,22,232,21,108,19,5,17,196,16,50,18,193,19,197,20,214,20,194,19,169,18,179,18,26,19,129,18,10,17,172,15, +241,14,236,14,25,15,121,14,232,12,163,11,128,11,193,11,60,11,161,9,136,7,38,6,59,6,206,6,88,6,26,5, +24,4,47,3,94,2,64,2,200,1,160,255,93,253,199,252,104,252,13,251,37,250,34,250,212,249,97,249,21,249,241,247, +120,246,73,246,151,246,227,245,25,245,43,245,42,245,134,244,144,243,81,242,132,241,69,242,241,243,8,245,76,245,7,245, +88,244,202,243,31,243,231,240,92,237,246,234,207,234,183,235,173,236,50,237,230,236,222,236,71,238,37,239,253,236,164,233, +47,232,0,232,125,231,39,231,242,230,17,230,231,229,155,231,23,233,238,232,188,232,25,233,213,232,101,232,205,232,246,232, +38,232,254,231,103,233,200,234,203,234,40,234,215,233,198,233,251,233,222,234,221,235,73,236,67,237,137,239,54,241,32,241, +221,240,207,240,126,239,172,237,78,237,190,237,211,237,43,238,226,238,82,239,32,240,130,241,235,241,205,240,109,239,139,238, +70,238,245,238,21,240,98,240,232,239,45,240,20,242,97,244,217,244,46,243,186,241,105,242,145,244,163,246,233,247,90,248, +182,248,24,250,227,251,235,251,22,250,57,249,229,250,126,253,132,255,236,0,97,1,63,1,148,2,82,5,106,6,87,5, +232,4,204,5,157,6,100,7,237,7,50,7,229,6,25,9,106,11,24,11,31,10,233,10,133,12,235,13,106,15,144,16, +23,17,13,18,154,19,40,20,53,19,123,18,50,19,81,20,177,20,210,20,74,21,0,22,191,23,31,27,40,30,215,30, +47,30,205,29,167,29,160,29,210,29,209,29,10,30,125,31,125,33,194,34,122,35,0,36,43,36,126,36,59,37,90,37, +97,36,65,35,219,34,90,35,82,36,181,36,11,36,109,35,1,36,107,37,121,38,143,38,91,38,21,39,224,40,87,42, +7,42,6,40,40,38,81,38,37,40,80,41,136,40,4,39,198,38,87,40,69,42,201,42,220,41,222,40,198,40,144,41, +70,42,133,41,130,39,98,38,34,39,105,40,141,40,229,38,61,36,220,34,181,35,181,36,54,36,10,35,12,34,127,33, +245,33,158,34,163,33,143,31,97,30,6,30,95,29,65,28,175,26,227,24,236,23,33,24,151,24,159,24,47,24,148,23, +83,23,46,23,105,22,109,21,222,20,13,20,190,18,251,17,170,17,181,16,129,15,5,15,224,14,123,14,242,13,34,13, +223,11,140,10,44,9,39,7,175,4,201,2,194,1,239,0,9,0,129,255,120,255,156,255,190,255,146,255,177,254,118,253, +90,252,230,250,227,248,41,247,245,245,154,244,38,243,37,242,205,241,86,242,94,243,134,243,155,242,18,242,83,242,103,242, +247,241,79,241,144,240,11,240,189,239,4,239,203,237,140,236,122,235,225,234,211,234,118,234,157,233,88,233,147,233,69,233, +158,232,7,232,14,231,57,230,79,230,242,229,211,227,130,225,231,224,158,225,89,226,96,226,160,225,238,224,67,225,42,226, +6,226,27,224,167,221,168,220,118,221,109,222,95,222,213,221,204,221,229,222,66,225,139,227,201,227,70,226,91,225,17,226, +28,227,8,227,173,225,3,224,148,223,11,225,236,226,29,227,216,225,52,225,253,225,79,227,115,228,242,228,117,228,3,228, +219,228,4,230,239,229,14,229,83,228,217,227,46,228,145,229,139,230,108,230,172,230,17,232,173,233,203,234,4,235,3,234, +229,232,52,233,113,234,32,235,26,235,65,235,84,236,102,238,91,240,212,240,29,240,216,239,199,240,31,242,197,242,148,242, +105,242,25,243,175,244,105,246,254,246,195,245,13,244,236,243,129,245,64,247,36,248,102,248,18,249,75,251,121,254,30,0, +217,254,60,252,189,250,25,251,27,252,86,252,2,252,164,252,17,255,173,2,17,6,187,7,102,7,182,6,239,6,45,7, +148,6,239,5,248,5,155,6,249,7,170,9,69,10,171,9,109,9,249,9,38,10,151,9,192,8,189,7,84,7,176,8, +210,10,114,11,193,10,149,10,242,10,10,11,34,11,229,10,199,9,160,9,232,11,15,14,160,13,55,12,162,11,103,11, +125,11,220,11,247,10,56,9,165,9,102,12,103,14,176,14,138,14,156,14,124,15,96,17,50,18,102,16,46,14,253,13, +16,15,203,15,201,15,186,14,209,12,163,11,231,11,232,11,106,10,206,8,145,8,37,9,148,9,219,9,201,9,22,9, +85,8,125,7,43,5,166,1,118,255,108,255,222,255,35,0,164,0,209,0,103,0,88,0,102,0,36,255,237,252,140,251, +112,251,192,251,240,251,202,251,72,251,3,251,157,251,181,252,50,253,113,252,199,250,46,249,111,248,130,248,188,248,131,248, +170,247,158,246,62,246,137,246,242,245,206,243,51,242,219,242,97,244,247,244,190,244,5,244,9,243,254,242,172,243,196,242, +43,240,78,238,166,237,10,237,183,236,193,236,50,236,181,235,141,236,132,237,60,237,163,236,134,236,114,236,123,236,167,236, +40,236,39,235,222,234,115,235,11,236,64,236,16,236,166,235,136,235,212,235,228,235,115,235,53,235,200,235,188,236,48,237, +246,236,103,236,161,235,239,234,36,235,74,236,63,237,119,237,175,237,145,238,223,239,208,240,172,240,149,239,148,238,132,238, +83,239,101,240,39,241,122,241,179,241,44,242,10,243,66,244,80,245,143,245,64,245,100,245,153,246,72,248,235,248,215,247, +158,246,231,246,237,247,86,248,112,248,174,248,236,248,201,249,162,251,42,253,129,253,122,253,193,253,62,254,234,254,83,255, +216,254,38,254,147,254,13,0,35,1,235,0,67,0,221,0,233,2,227,4,179,5,154,5,129,5,107,6,36,8,231,8, +50,8,232,7,0,9,101,10,123,11,67,12,113,12,195,12,87,14,49,16,208,16,221,16,101,17,45,18,5,19,187,19, +81,19,215,17,1,17,125,17,89,18,68,19,131,20,136,21,242,21,186,22,68,24,26,25,56,24,133,22,33,21,144,20, +86,21,214,22,40,23,66,22,94,22,240,23,33,25,46,25,172,24,252,23,218,23,205,24,146,25,5,25,79,24,184,24, +166,25,45,26,53,26,232,25,156,25,235,25,238,26,170,27,43,27,79,26,242,26,186,28,81,29,69,28,90,27,110,27, +42,28,241,28,140,28,249,26,156,26,89,28,162,29,10,29,28,28,218,27,254,27,116,28,135,28,82,27,243,25,254,25, +173,26,130,26,158,25,211,24,114,24,141,24,215,24,144,24,133,23,185,22,14,23,186,23,83,23,51,22,220,21,73,22, +12,22,127,20,52,18,89,16,39,16,85,17,236,17,34,17,124,16,4,17,177,17,61,17,183,15,229,13,133,12,15,12, +25,12,115,11,239,9,247,8,58,9,150,9,95,9,37,9,215,8,80,8,121,8,53,9,255,8,17,8,223,7,3,8, +112,7,98,6,234,4,34,3,94,2,189,2,114,2,128,1,181,1,6,3,56,4,1,5,214,4,38,3,67,1,163,0, +132,0,168,255,80,254,118,253,194,253,239,254,175,255,9,255,104,253,223,251,22,251,207,250,12,250,107,248,3,247,196,246, +46,247,73,247,179,246,161,245,191,244,148,244,204,244,150,244,145,243,78,242,228,241,173,242,165,243,185,243,18,243,122,242, +66,242,33,242,132,241,67,240,32,239,32,239,106,240,9,242,226,242,5,243,90,243,239,243,2,244,128,243,182,242,159,241, +218,240,79,241,69,242,95,242,218,241,168,241,240,241,138,242,16,243,192,242,174,241,241,240,72,241,131,242,154,243,109,243, +94,242,202,241,177,241,72,241,181,240,6,240,249,238,170,238,23,240,204,241,67,242,26,242,18,242,240,241,163,241,26,241, +60,240,231,239,210,240,28,242,216,242,76,243,212,243,123,244,81,245,220,245,116,245,135,244,13,244,50,244,136,244,201,244, +231,244,10,245,137,245,102,246,22,247,28,247,190,246,192,246,109,247,84,248,227,248,225,248,177,248,24,249,43,250,216,250, +71,250,233,248,194,247,125,247,245,247,116,248,190,248,115,249,224,250,114,252,112,253,70,253,241,251,124,250,213,249,197,249, +253,249,124,250,201,250,220,250,141,251,168,252,250,252,117,252,168,251,133,250,140,249,129,249,195,249,170,249,4,250,42,251, +37,252,133,252,127,252,7,252,97,251,68,251,183,251,16,252,235,251,170,251,25,252,52,253,237,253,216,253,110,253,151,252, +114,251,63,251,255,251,246,251,53,251,180,251,122,253,213,254,82,255,29,255,245,253,195,252,9,253,20,254,14,254,50,253, +236,252,77,253,210,253,148,254,243,254,194,253,164,251,65,250,138,249,180,248,91,248,249,248,173,249,62,250,87,251,124,252, +135,252,132,251,37,250,222,248,66,248,158,248,79,249,152,249,148,249,244,249,244,250,181,251,48,251,168,249,52,248,144,247, +5,248,38,249,184,249,153,249,59,250,0,252,139,253,242,253,39,253,130,251,74,250,100,250,181,250,59,250,186,249,193,249, +17,250,240,250,50,252,173,252,69,252,216,251,103,251,251,250,106,251,99,252,178,252,147,252,233,252,96,253,100,253,245,252, +225,251,63,250,64,249,154,249,86,250,133,250,148,250,33,251,242,251,146,252,182,252,28,252,24,251,183,250,93,251,29,252, +11,252,50,251,105,250,224,250,173,252,206,253,109,252,192,249,99,248,5,249,103,250,69,251,52,251,222,250,115,251,15,253, +52,254,116,253,81,251,218,249,81,250,251,251,164,253,186,254,234,254,173,254,106,255,243,0,52,1,168,255,253,253,57,253, +101,253,137,254,156,255,97,255,213,254,173,255,108,1,137,2,107,2,52,1,193,255,81,255,221,255,38,0,161,255,207,254, +109,254,242,254,222,255,25,0,135,255,215,254,76,254,32,254,179,254,126,255,185,255,184,255,3,0,97,0,168,0,223,0, +141,0,167,255,41,255,146,255,67,0,217,0,135,1,44,2,149,2,48,3,28,4,151,4,92,4,27,4,238,3,98,3, +13,3,187,3,196,4,97,5,8,6,231,6,48,7,189,6,52,6,155,5,183,4,244,3,219,3,40,4,28,4,145,3, +58,3,76,3,7,3,83,2,5,2,52,2,147,2,123,3,136,4,97,4,79,3,246,2,120,3,198,3,114,3,130,2, +147,1,7,2,228,3,57,5,227,4,191,3,39,3,7,4,2,6,61,7,223,6,108,6,14,7,28,8,185,8,129,8, +97,7,160,6,200,7,234,9,192,10,50,10,237,9,129,10,46,11,118,11,55,11,89,10,114,9,132,9,92,10,195,10, +127,10,88,10,89,10,41,10,50,10,157,10,192,10,142,10,160,10,210,10,196,10,214,10,5,11,122,10,48,9,80,8, +124,8,47,9,208,9,55,10,101,10,162,10,61,11,182,11,78,11,172,10,252,10,174,11,166,11,139,11,20,12,94,12, +12,12,210,11,116,11,163,10,133,10,131,11,115,12,245,12,96,13,108,13,108,13,9,14,59,14,24,13,5,12,38,12, +208,12,171,13,152,14,142,14,160,13,69,13,106,13,243,12,87,12,101,12,162,12,225,12,134,13,209,13,245,12,232,11, +176,11,198,11,194,11,61,12,253,12,201,12,171,11,217,10,146,10,93,10,107,10,164,10,73,10,206,9,86,10,44,11, +208,10,168,9,245,8,218,8,22,9,126,9,121,9,0,9,65,9,151,10,131,11,194,10,246,8,145,7,48,7,123,7, +191,7,127,7,18,7,114,7,162,8,47,9,108,8,123,7,59,7,116,7,15,8,186,8,147,8,222,7,229,7,126,8, +80,8,3,7,75,5,36,4,98,4,101,5,148,5,247,4,230,4,133,5,237,5,135,5,28,4,100,2,209,1,97,2, +185,2,169,2,208,2,241,2,205,2,166,2,73,2,184,1,167,1,194,1,227,0,134,255,10,255,90,255,150,255,126,255, +237,254,0,254,213,253,22,255,80,0,210,255,60,254,130,253,66,254,118,255,236,255,63,255,28,254,199,253,138,254,28,255, +86,254,180,252,180,251,74,252,235,253,6,255,239,254,127,254,129,254,240,254,105,255,243,254,235,252,234,250,222,250,246,251, +145,252,227,252,26,253,153,252,47,252,210,252,1,253,112,251,184,249,119,249,253,249,105,250,203,250,201,250,242,249,15,249, +252,248,226,248,143,247,181,245,207,244,242,244,155,245,190,246,118,247,182,246,178,245,1,246,99,246,71,245,178,243,215,242, +119,242,141,242,240,242,126,242,115,241,145,241,199,242,115,243,80,243,220,242,240,241,11,241,56,241,235,241,171,241,159,240, +44,240,185,240,106,241,121,241,246,240,108,240,72,240,152,240,7,241,26,241,126,240,100,239,135,238,116,238,214,238,251,238, +178,238,22,238,125,237,173,237,166,238,17,239,136,238,81,238,159,238,88,238,175,237,94,237,202,236,232,235,224,235,76,236, +199,235,239,234,245,234,73,235,66,235,80,235,124,235,126,235,157,235,241,235,32,236,28,236,248,235,161,235,63,235,241,234, +168,234,152,234,218,234,6,235,19,235,129,235,83,236,30,237,194,237,59,238,107,238,113,238,165,238,83,239,97,240,42,241, +77,241,76,241,168,241,49,242,186,242,66,243,126,243,114,243,190,243,171,244,194,245,130,246,209,246,16,247,174,247,91,248, +126,248,100,248,210,248,209,249,240,250,217,251,46,252,244,251,220,251,67,252,153,252,73,252,124,251,194,250,167,250,122,251, +158,252,185,252,172,251,106,251,72,253,195,255,186,0,42,0,126,255,14,0,57,2,69,4,214,3,184,1,236,0,16,2, +89,3,195,3,99,3,4,3,81,4,125,7,40,10,218,10,195,10,35,11,72,12,0,14,207,14,102,13,109,11,91,11, +204,12,8,14,157,14,164,14,95,14,191,14,240,15,158,16,29,16,75,15,229,14,245,14,125,15,24,16,216,15,181,14, +229,13,7,14,100,14,107,14,34,14,83,13,53,12,7,12,23,13,209,13,54,13,249,11,205,10,10,10,43,10,176,10, +94,10,161,9,46,10,23,12,183,13,0,14,60,13,58,12,189,11,224,11,208,11,198,10,95,9,31,9,94,10,199,11, +31,12,111,11,133,10,106,10,126,11,86,12,84,11,69,9,31,8,71,8,244,8,84,9,122,8,142,6,113,5,26,6, +48,7,100,7,228,6,87,6,71,6,183,6,198,6,207,5,79,4,255,2,30,2,176,1,96,1,164,0,112,255,90,254, +23,254,205,254,140,255,102,255,217,254,160,254,85,254,175,253,10,253,12,252,84,250,210,248,36,248,163,247,11,247,94,246, +230,244,29,243,28,243,224,244,189,245,188,244,133,243,34,243,106,243,75,244,174,244,201,242,172,239,168,238,30,240,126,241, +22,242,243,242,193,243,76,244,164,245,225,246,227,245,239,243,186,243,132,244,139,244,146,244,51,245,159,245,78,246,41,248, +7,250,163,250,140,250,95,250,14,250,236,249,36,250,36,250,177,249,51,249,194,248,14,248,35,247,104,246,5,246,241,245, +119,246,193,247,4,249,89,249,221,248,11,248,55,247,234,246,249,246,52,246,158,244,216,243,114,244,133,245,140,246,56,247, +68,247,160,247,45,249,192,250,7,251,165,250,184,250,111,251,133,252,87,253,66,253,223,252,144,253,157,255,0,2,156,3, +1,4,200,3,7,4,1,5,231,5,49,6,83,6,229,6,201,7,152,8,19,9,220,8,253,7,166,7,209,8,197,10, +79,12,29,13,42,13,210,12,16,13,222,13,227,13,187,12,92,11,128,10,139,10,122,11,73,12,120,12,247,12,23,14, +1,15,156,15,17,16,194,15,6,15,80,15,150,16,139,17,196,17,132,17,244,16,151,16,187,16,213,16,167,16,224,16, +230,17,49,19,7,20,82,20,176,20,143,21,135,22,250,22,211,22,122,22,127,22,9,23,145,23,201,23,29,24,221,24, +199,25,131,26,186,26,135,26,212,26,254,27,217,28,104,28,36,27,15,26,229,25,198,26,179,27,158,27,47,27,183,27, +239,28,95,29,140,28,125,27,46,27,96,27,107,27,37,27,100,26,27,25,51,24,36,24,168,23,23,22,17,21,170,21, +206,22,98,23,78,23,160,22,232,21,255,21,72,22,70,21,54,19,255,17,129,18,182,19,104,20,111,20,14,20,139,19, +112,19,171,19,51,19,25,18,231,17,172,18,231,18,129,18,68,18,199,17,14,17,34,17,106,17,121,16,33,15,182,14, +149,14,46,14,12,14,213,13,216,12,214,11,91,11,111,10,180,8,24,7,242,5,240,4,85,4,86,4,60,4,140,3, +176,2,224,1,239,0,5,0,8,255,101,253,156,251,249,250,19,251,79,250,221,248,44,248,102,248,165,248,29,248,89,246, +34,244,58,243,212,243,106,244,74,244,207,243,43,243,215,242,25,243,211,242,27,241,245,238,160,237,55,237,127,237,243,237, +183,237,15,237,14,237,138,237,117,237,140,236,15,235,80,233,65,232,133,232,14,233,158,232,193,231,123,231,87,231,153,230, +181,229,38,229,160,228,65,228,105,228,106,228,170,227,229,226,99,226,66,225,202,223,34,223,210,222,214,221,215,220,156,220, +184,220,253,220,126,221,99,221,72,220,38,219,72,218,5,217,175,215,21,215,224,214,198,214,161,215,155,217,73,219,163,219, +0,219,249,217,242,216,105,216,69,216,215,215,95,215,26,216,56,218,126,220,226,221,53,222,233,221,214,221,65,222,102,222, +9,222,23,222,27,223,238,224,99,227,124,229,218,229,31,229,228,228,183,228,152,227,113,226,49,226,149,226,21,228,241,230, +10,233,209,232,253,231,26,232,46,232,155,231,35,231,169,230,221,229,13,230,252,231,254,233,166,234,190,234,28,235,106,235, +185,235,131,236,58,237,90,237,230,237,179,239,210,241,55,243,24,244,222,244,170,245,189,246,250,247,204,248,50,249,231,249, +110,251,173,253,253,255,152,1,111,2,23,3,205,3,106,4,245,4,133,5,82,6,193,7,175,9,107,11,177,12,109,13, +69,13,164,12,201,12,212,13,176,14,11,15,93,15,208,15,164,16,50,18,181,19,222,19,238,18,94,18,175,18,101,19, +128,20,3,22,50,23,10,24,147,25,84,27,86,27,173,25,110,24,76,24,183,24,182,25,228,26,110,27,68,28,133,30, +161,32,208,32,244,31,106,31,61,31,110,31,212,31,165,31,52,31,234,31,160,33,166,34,84,34,88,33,124,32,92,32, +252,32,91,33,212,32,83,32,205,32,153,33,200,33,141,33,51,33,127,32,239,31,41,32,78,32,124,31,180,30,225,30, +38,31,184,30,206,29,117,28,214,26,163,25,203,24,187,23,205,22,120,22,51,22,148,21,221,20,17,20,232,18,120,17, +10,16,197,14,183,13,218,12,33,12,60,11,216,9,112,8,161,7,210,6,74,5,117,3,188,1,59,0,195,255,108,0, +173,0,1,0,170,255,204,255,97,255,109,254,68,253,165,251,53,250,253,249,73,250,204,249,210,248,50,248,159,247,124,246, +13,245,254,243,121,243,35,243,131,242,82,241,247,239,93,239,96,239,105,238,202,235,216,232,160,230,177,228,175,226,10,225, +37,224,1,224,46,224,227,223,191,222,238,220,213,218,52,217,140,216,75,216,249,215,54,216,140,217,183,219,222,221,114,222, +202,220,246,218,220,218,240,218,59,217,230,214,89,214,143,216,209,220,217,224,131,226,141,226,121,227,182,229,73,231,218,230, +128,229,103,229,45,231,85,233,74,234,175,233,68,232,200,231,101,233,81,235,164,234,175,231,177,229,162,230,87,233,63,235, +249,234,154,233,51,233,77,234,89,235,135,234,37,232,169,230,174,231,230,233,99,235,235,235,1,236,62,236,104,237,254,238, +79,239,93,238,250,237,220,238,106,240,93,242,117,244,98,246,182,248,181,251,212,253,196,253,233,252,118,253,72,255,231,0, +23,2,59,3,14,4,204,4,24,6,33,7,48,7,197,7,158,9,21,11,28,12,138,14,208,17,17,20,175,21,231,22, +63,22,32,20,175,18,4,18,113,17,9,18,98,20,61,23,177,25,119,27,227,27,23,27,124,26,202,26,68,27,40,27, +195,26,16,27,142,28,163,30,105,32,168,33,149,34,12,35,174,34,171,33,174,32,2,32,197,31,182,32,41,35,179,37, +186,38,88,38,151,37,96,37,65,38,136,39,161,39,143,38,9,38,240,38,204,40,243,42,164,44,84,45,155,45,77,46, +229,46,70,46,128,44,227,42,233,42,40,45,114,48,69,50,129,49,77,48,14,49,126,50,3,50,25,48,193,46,91,46, +202,46,170,47,249,46,68,44,177,42,103,43,7,43,37,40,119,37,140,36,210,36,59,38,192,39,30,39,195,36,69,35, +183,34,100,33,102,31,176,29,78,28,161,27,59,28,244,28,40,28,138,26,244,25,85,26,3,26,85,24,67,22,6,21, +242,20,121,21,234,21,29,22,33,22,191,21,200,20,111,19,43,18,116,17,93,17,103,17,103,17,170,17,186,17,156,16, +136,14,104,12,96,10,152,8,141,7,158,6,177,4,109,2,68,1,50,1,102,1,103,1,150,0,116,254,176,251,110,249, +207,247,70,246,206,244,215,243,95,243,11,243,213,242,120,242,25,241,211,238,60,237,236,236,150,236,116,235,38,234,8,233, +40,232,247,231,247,231,174,230,35,228,12,226,71,225,68,225,108,225,99,225,14,225,48,225,71,226,246,226,147,225,160,222, +31,220,63,219,155,219,234,219,74,219,112,218,216,218,137,220,229,221,194,221,94,220,188,218,201,217,155,217,85,217,107,216, +151,215,242,215,116,217,172,218,16,218,207,215,209,213,135,213,141,214,141,215,147,215,203,214,125,214,143,215,37,217,162,217, +138,216,172,214,57,213,205,212,224,212,138,212,224,211,181,211,96,212,123,213,61,214,224,213,119,212,28,211,178,210,46,211, +46,212,59,213,234,213,138,214,208,215,114,217,103,218,117,218,84,218,170,218,205,219,148,221,49,223,48,224,12,225,18,226, +25,227,61,228,21,229,118,228,10,227,39,227,247,228,170,230,21,232,242,233,164,235,14,237,218,238,225,239,239,238,195,237, +230,237,47,238,40,238,234,238,39,240,255,240,32,242,160,243,61,244,28,244,126,244,56,245,158,245,27,246,31,247,114,248, +250,249,129,251,126,252,236,252,60,253,121,253,161,253,53,254,138,255,105,1,164,3,253,5,204,7,238,8,66,10,6,12, +70,13,163,13,224,13,129,14,175,15,153,17,127,19,60,20,98,20,127,21,120,23,178,24,85,24,21,23,131,22,142,23, +84,25,52,26,248,25,223,25,222,26,152,28,205,29,233,29,178,29,19,30,22,31,59,32,194,32,75,32,207,31,47,32, +130,32,254,31,113,31,62,31,223,30,201,30,148,31,122,32,237,32,95,33,206,33,247,33,45,34,89,34,229,33,243,32, +32,32,183,31,244,31,190,32,86,33,67,33,176,32,236,31,104,31,95,31,21,31,240,29,198,28,167,28,44,29,39,29, +57,28,240,26,240,25,80,25,151,24,78,23,192,21,251,20,94,21,180,21,206,20,10,19,111,17,132,16,78,16,9,16, +161,14,107,12,216,10,79,10,245,9,254,8,75,7,164,5,235,4,165,4,184,3,30,2,76,0,129,254,99,253,238,252, +176,251,72,249,52,247,31,246,104,245,240,244,170,244,29,244,134,243,80,243,213,242,124,241,171,239,1,238,252,236,215,236, +7,237,209,236,42,236,79,235,120,234,225,233,107,233,209,232,27,232,26,231,182,229,183,228,152,228,141,228,54,228,43,228, +55,228,164,227,215,226,95,226,203,225,225,224,55,224,255,223,239,223,18,224,95,224,107,224,72,224,111,224,89,224,27,223, +111,221,198,220,205,220,127,220,46,220,98,220,232,220,250,221,132,223,62,224,14,224,117,224,110,225,168,225,102,225,123,225, +151,225,197,225,118,226,7,227,14,227,87,227,44,228,8,229,206,229,104,230,175,230,37,231,6,232,190,232,41,233,119,233, +91,233,254,232,0,233,32,233,23,233,162,233,215,234,187,235,38,236,158,236,25,237,178,237,186,238,107,239,1,239,184,238, +245,239,184,241,83,242,38,242,124,242,165,243,98,245,42,247,203,247,65,247,188,247,44,250,108,252,251,252,255,252,124,253, +76,254,103,255,97,0,122,0,138,0,30,2,205,4,248,6,18,8,160,8,93,9,193,10,91,12,29,13,178,12,255,11, +67,12,173,13,12,15,157,15,23,16,32,17,105,18,179,19,195,20,23,21,66,21,127,22,96,24,111,25,147,25,163,25, +254,25,206,26,5,28,30,29,245,29,251,30,68,32,116,33,99,34,13,35,137,35,8,36,162,36,91,37,31,38,157,38, +185,38,253,38,199,39,168,40,20,41,19,41,1,41,30,41,100,41,175,41,250,41,72,42,131,42,155,42,134,42,82,42, +82,42,149,42,145,42,240,41,48,41,254,40,152,41,178,42,125,43,97,43,185,42,89,42,149,42,243,42,142,42,69,41, +45,40,34,40,174,40,8,41,205,40,27,40,240,39,251,40,237,41,69,41,201,39,237,38,216,38,38,39,54,39,57,38, +209,36,128,36,244,36,199,36,226,35,168,34,23,33,14,32,71,32,125,32,119,31,23,30,60,29,98,28,90,27,129,26, +121,25,253,23,213,22,98,22,9,22,172,21,147,21,58,21,60,20,66,19,137,18,114,17,25,16,253,14,198,13,128,12, +242,11,172,11,156,10,93,9,221,8,95,8,26,7,104,5,144,3,213,1,24,1,89,1,40,1,182,255,220,253,176,252, +42,252,73,251,124,249,123,247,75,246,28,246,143,246,218,246,55,246,24,245,140,244,73,244,75,243,187,241,78,240,38,239, +107,238,66,238,13,238,89,237,185,236,188,236,19,237,11,237,57,236,235,234,28,234,86,234,201,234,73,234,225,232,161,231, +31,231,237,230,95,230,71,229,45,228,208,227,11,228,180,227,93,226,16,225,156,224,178,224,178,224,245,223,42,222,81,220, +188,219,17,220,23,220,131,219,203,218,149,218,109,219,182,220,233,220,196,219,172,218,217,218,26,220,7,221,88,220,184,218, +71,218,214,219,254,221,17,223,206,222,87,222,212,222,7,224,203,224,166,224,254,223,144,223,5,224,238,224,221,224,175,223, +16,223,215,223,253,224,129,225,126,225,117,225,176,225,35,226,129,226,122,226,7,226,158,225,210,225,118,226,224,226,18,227, +141,227,60,228,183,228,243,228,7,229,18,229,124,229,123,230,148,231,34,232,95,232,41,233,137,234,94,235,66,235,70,235, +29,236,101,237,195,238,248,239,154,240,30,241,111,242,50,244,102,245,249,245,75,246,114,246,165,246,14,247,113,247,184,247, +38,248,237,248,247,249,245,250,165,251,50,252,203,252,108,253,87,254,137,255,83,0,196,0,218,1,114,3,123,4,2,5, +103,5,80,5,34,5,235,5,69,7,41,8,237,8,39,10,141,11,6,13,150,14,63,15,43,14,127,12,8,12,222,12, +196,13,61,14,186,14,126,15,108,16,73,17,129,17,204,16,23,16,101,16,81,17,221,17,208,17,134,17,109,17,229,17, +246,18,11,20,59,20,101,19,239,18,252,19,105,21,187,21,148,21,254,21,161,22,18,23,59,23,171,22,225,21,26,22, +235,22,66,23,193,23,223,24,128,25,115,25,168,25,224,25,197,25,55,26,243,26,104,26,225,24,254,23,157,23,174,22, +153,21,242,20,28,20,0,19,135,18,91,18,41,17,90,15,115,14,82,14,4,14,180,13,115,13,152,12,126,11,246,10, +65,10,121,8,123,6,96,5,31,5,100,5,219,5,4,6,191,5,49,5,51,4,187,2,56,1,28,0,132,255,34,255, +159,254,61,254,63,254,34,254,113,253,122,252,139,251,200,250,112,250,14,250,210,248,92,247,15,247,168,247,180,247,194,246, +111,245,31,244,195,242,110,241,97,240,206,239,242,239,4,241,77,242,66,242,172,240,245,238,205,237,179,236,188,235,53,235, +178,234,47,234,37,234,4,234,25,233,74,232,177,232,179,233,246,233,47,233,43,232,163,231,125,231,56,231,144,230,130,229, +142,228,136,228,13,229,144,228,25,227,160,226,227,227,88,229,147,229,154,228,109,227,80,227,141,228,175,229,42,229,180,227, +123,227,32,229,16,231,229,231,227,231,22,232,93,233,156,235,52,237,243,236,86,236,89,237,100,239,239,240,166,241,106,241, +155,240,246,240,237,242,113,244,155,244,209,244,134,245,254,245,116,246,76,247,242,247,64,248,216,248,158,249,226,249,155,249, +39,249,145,248,5,248,41,248,88,249,240,250,17,252,120,252,89,252,41,252,113,252,0,253,15,253,183,252,219,252,197,253, +52,255,208,0,212,1,252,1,107,2,195,3,224,4,0,5,24,5,33,6,251,7,45,10,56,12,129,13,203,13,185,13, +25,14,209,14,62,15,151,15,149,16,11,18,124,19,246,20,51,22,167,22,183,22,224,22,164,22,14,22,38,22,252,22, +159,23,228,23,58,24,178,24,60,25,194,25,234,25,160,25,102,25,204,25,201,26,171,27,210,27,125,27,48,27,213,26, +67,26,181,25,86,25,76,25,233,25,1,27,207,27,229,27,121,27,33,27,119,27,83,28,155,28,155,27,59,26,28,26, +129,27,191,28,130,28,166,27,167,27,159,28,210,29,118,30,211,29,126,28,61,28,58,29,202,29,103,29,246,28,182,28, +172,28,46,29,134,29,119,28,151,26,223,25,232,26,74,28,140,28,199,27,53,27,145,27,77,28,42,28,105,26,216,23, +70,22,74,22,154,22,33,22,72,21,233,20,59,21,159,21,37,21,149,19,171,17,33,16,41,15,158,14,42,14,183,13, +156,13,211,13,204,13,29,13,201,11,84,10,172,9,226,9,217,9,73,9,27,9,128,9,222,9,222,9,234,8,185,6, +217,4,205,4,149,5,143,5,247,4,176,4,189,4,197,4,93,4,18,3,75,1,65,0,109,0,229,0,202,0,89,0, +50,0,119,0,238,0,234,0,123,255,229,252,226,250,72,250,33,250,185,249,124,249,189,249,85,250,215,250,144,250,76,249, +200,247,177,246,13,246,157,245,15,245,83,244,209,243,184,243,204,243,10,244,60,244,199,243,214,242,5,242,11,241,204,239, +55,239,119,239,163,239,158,239,181,239,97,239,145,238,51,238,59,238,183,237,242,236,219,236,24,237,234,236,220,236,117,237, +222,237,106,237,193,236,64,236,139,235,42,235,214,235,186,236,45,237,14,238,122,239,56,240,40,240,3,240,116,239,82,238, +151,237,171,237,23,238,191,238,122,239,185,239,138,239,76,239,209,238,6,238,68,237,159,236,48,236,139,236,199,237,1,239, +102,239,7,239,94,238,176,237,242,236,33,236,135,235,166,235,179,236,1,238,149,238,107,238,38,238,253,237,10,238,122,238, +176,238,40,238,247,237,13,239,141,240,182,241,217,242,191,243,7,244,101,244,48,245,147,245,113,245,172,245,140,246,191,247, +20,249,31,250,115,250,66,250,4,250,238,249,239,249,6,250,121,250,98,251,40,252,75,252,57,252,105,252,176,252,224,252, +213,252,60,252,67,251,151,250,97,250,90,250,157,250,86,251,40,252,165,252,233,252,49,253,66,253,228,252,148,252,220,252, +107,253,207,253,36,254,136,254,254,254,143,255,184,255,249,254,7,254,226,253,105,254,49,255,47,0,26,1,223,1,195,2, +59,3,149,2,163,1,103,1,160,1,10,2,210,2,158,3,71,4,95,5,167,6,19,7,159,6,31,6,177,5,248,4, +16,4,102,3,66,3,195,3,219,4,23,6,187,6,153,6,58,6,5,6,2,6,90,6,224,6,4,7,1,7,122,7, +224,7,67,7,38,6,121,5,36,5,221,4,230,4,96,5,246,5,83,6,93,6,42,6,212,5,95,5,180,4,156,3, +63,2,109,1,129,1,186,1,130,1,37,1,237,0,238,0,55,1,71,1,187,0,109,0,5,1,173,1,155,1,13,1, +81,0,187,255,173,255,181,255,25,255,49,254,190,253,238,253,151,254,47,255,27,255,214,254,89,255,66,0,91,0,124,255, +115,254,227,253,221,253,247,253,176,253,26,253,236,252,155,253,138,254,209,254,158,254,164,254,147,254,209,253,197,252,210,251, +177,250,182,249,162,249,43,250,140,250,155,250,51,250,43,249,28,248,175,247,202,247,21,248,88,248,85,248,29,248,2,248, +9,248,204,247,230,246,124,245,93,244,48,244,185,244,79,245,163,245,243,245,188,246,201,247,223,247,122,246,218,244,69,244, +168,244,65,245,99,245,231,244,134,244,222,244,128,245,222,245,0,246,42,246,193,246,221,247,148,248,81,248,229,247,251,247, +60,248,124,248,150,248,40,248,200,247,93,248,61,249,121,249,141,249,206,249,178,249,99,249,103,249,72,249,199,248,205,248, +162,249,83,250,108,250,87,250,30,250,166,249,133,249,25,250,185,250,252,250,78,251,172,251,166,251,124,251,119,251,59,251, +248,250,58,251,123,251,54,251,52,251,226,251,141,252,3,253,155,253,34,254,120,254,238,254,138,255,38,0,181,0,249,0, +18,1,102,1,146,1,67,1,88,1,73,2,123,3,211,4,60,6,134,6,164,5,106,5,58,6,126,6,217,5,100,5, +139,5,54,6,85,7,4,8,76,7,8,6,237,5,226,6,77,7,145,6,139,5,9,5,62,5,6,6,183,6,158,6, +20,6,231,5,20,6,25,6,206,5,88,5,49,5,213,5,221,6,84,7,1,7,125,6,111,6,243,6,83,7,4,7, +153,6,151,6,167,6,8,7,80,8,166,9,16,10,82,10,243,10,39,11,8,11,146,11,83,12,100,12,101,12,249,12, +96,13,33,13,226,12,215,12,137,12,84,12,202,12,255,12,250,11,16,11,205,11,28,13,109,13,40,13,185,12,183,11, +215,10,221,10,167,10,162,9,105,9,150,10,162,11,208,11,146,11,237,10,38,10,65,10,35,11,99,11,150,10,202,9, +208,9,117,10,30,11,93,11,55,11,49,11,163,11,46,12,116,12,183,12,21,13,53,13,57,13,154,13,6,14,233,13, +97,13,209,12,115,12,147,12,35,13,156,13,210,13,255,13,83,14,0,15,192,15,156,15,74,14,172,12,118,11,224,10, +9,11,78,11,239,10,182,10,171,11,241,12,43,13,104,12,114,11,204,10,156,10,132,10,32,10,203,9,26,10,31,11, +102,12,249,12,53,12,232,10,31,10,138,9,208,8,204,8,201,9,164,10,212,10,254,10,85,11,99,11,16,11,88,10, +19,9,249,7,40,8,90,9,49,10,61,10,252,9,197,9,225,9,69,10,249,9,145,8,108,7,168,7,154,8,65,9, +48,9,95,8,174,7,18,8,153,8,190,7,38,6,155,5,150,6,41,8,240,8,22,8,151,6,62,6,18,7,110,7, +84,6,115,4,76,3,178,3,200,4,51,5,220,4,123,4,98,4,150,4,203,4,80,4,45,3,86,2,22,2,197,1, +43,1,186,0,147,0,135,0,149,0,194,0,220,0,169,0,26,0,82,255,168,254,131,254,252,254,176,255,14,0,230,255, +149,255,135,255,132,255,235,254,230,253,92,253,171,253,132,254,149,255,52,0,195,255,20,255,76,255,202,255,105,255,95,254, +65,253,117,252,207,252,66,254,54,255,17,255,198,254,113,254,152,253,206,252,107,252,190,251,246,250,19,251,200,251,5,252, +204,251,135,251,239,250,8,250,169,249,251,249,223,249,229,248,54,248,131,248,226,248,148,248,202,247,150,246,51,245,177,244, +71,245,138,245,225,244,154,244,123,245,103,246,57,246,63,245,120,244,107,244,254,244,137,245,54,245,27,244,123,243,237,243, +115,244,43,244,114,243,206,242,109,242,140,242,229,242,181,242,40,242,80,242,75,243,226,243,75,243,31,242,86,241,34,241, +43,241,24,241,133,240,157,239,123,239,83,240,148,240,185,239,55,239,96,239,32,239,155,238,65,238,88,237,61,236,90,236, +241,236,118,236,222,235,97,236,234,236,138,236,230,235,49,235,66,234,212,233,59,234,109,234,223,233,113,233,220,233,176,234, +31,235,246,234,144,234,94,234,157,234,44,235,145,235,111,235,17,235,26,235,160,235,238,235,139,235,243,234,177,234,171,234, +238,234,175,235,69,236,35,236,59,236,75,237,100,238,181,238,158,238,141,238,225,238,234,239,224,240,214,240,95,240,88,240, +202,240,190,241,226,242,27,243,136,242,153,242,134,243,110,244,25,245,121,245,141,245,65,246,231,247,19,249,238,248,126,248, +209,248,21,250,182,251,97,252,122,251,106,250,168,250,186,251,102,252,86,252,255,251,56,252,146,253,77,255,223,255,12,255, +91,254,242,254,49,0,240,0,227,0,107,0,52,0,217,0,2,2,186,2,230,2,30,3,151,3,91,4,86,5,231,5, +222,5,26,6,247,6,245,7,244,8,225,9,74,10,126,10,56,11,44,12,219,12,117,13,202,13,106,13,230,12,16,13, +206,13,139,14,212,14,177,14,191,14,94,15,36,16,138,16,75,16,170,15,149,15,57,16,57,16,28,15,66,14,85,14, +194,14,114,15,7,16,115,15,31,14,116,13,63,13,176,12,70,12,83,12,19,12,142,11,178,11,114,12,5,13,80,13, +117,13,31,13,89,12,219,11,176,11,14,11,13,10,165,9,255,9,163,10,93,11,107,11,242,9,51,8,41,8,59,9, +117,9,170,8,242,7,220,7,83,8,158,8,196,7,9,6,218,4,217,4,17,5,84,4,207,2,213,1,35,2,44,3, +3,4,211,3,101,2,0,1,241,0,96,1,238,0,226,255,219,254,8,254,248,253,84,254,147,253,246,251,77,251,127,251, +66,251,193,250,111,250,235,249,88,249,237,248,15,248,190,246,197,245,26,245,64,244,133,243,42,243,209,242,62,242,127,241, +195,240,122,240,159,240,88,240,60,239,221,237,164,236,118,235,154,234,116,234,143,234,101,234,126,234,99,235,126,236,13,237, +237,236,33,236,64,235,117,235,130,236,234,236,177,236,253,236,188,237,148,238,225,239,237,240,147,240,196,239,15,240,82,241, +243,242,129,244,14,245,197,244,71,245,194,246,122,247,141,246,198,244,179,243,128,244,91,246,40,247,143,246,10,246,83,246, +23,247,201,247,136,247,77,246,152,245,26,246,191,246,202,246,101,246,161,245,253,244,70,245,211,245,81,245,84,244,131,244, +212,245,248,246,105,247,99,247,55,247,131,247,125,248,52,249,73,249,26,250,55,252,21,254,221,254,145,255,173,0,194,1, +187,2,65,3,229,2,182,2,212,3,55,5,174,5,244,5,239,6,111,8,52,10,231,11,193,12,183,12,213,12,179,13, +185,14,48,15,67,15,163,15,117,16,66,17,190,17,210,17,162,17,211,17,118,18,99,18,65,17,138,16,58,17,178,18, +60,20,85,21,101,21,205,20,149,20,170,20,100,20,230,19,159,19,175,19,60,20,46,21,10,22,158,22,245,22,4,23, +5,23,73,23,202,23,127,24,80,25,210,25,28,26,238,26,245,27,3,28,68,27,243,26,76,27,32,28,188,29,94,31, +140,31,247,30,178,31,65,33,126,33,121,32,196,31,192,31,96,32,197,33,195,34,93,34,46,34,173,35,111,37,228,37, +89,37,20,36,96,34,154,33,11,34,240,33,141,32,37,31,152,30,165,30,185,30,47,30,25,29,160,28,77,29,60,30, +87,30,75,29,200,27,18,27,41,27,139,26,232,24,166,23,65,23,53,23,145,23,37,24,42,24,50,24,58,25,16,26, +49,25,122,23,39,22,228,20,206,19,199,19,78,20,93,20,157,20,176,21,110,22,251,21,31,21,88,20,75,19,61,18, +168,17,2,17,214,15,214,14,142,14,89,14,140,13,129,12,186,11,219,10,82,9,122,7,60,6,214,5,203,5,121,5, +52,4,253,1,254,255,252,254,12,254,112,252,6,251,145,250,163,250,240,250,89,251,9,251,161,249,58,248,186,247,141,247, +219,246,143,245,59,244,190,243,116,244,100,245,33,245,159,243,42,242,176,241,181,241,54,241,243,239,133,238,180,237,250,237, +220,238,186,238,211,236,203,234,66,234,91,234,180,233,137,232,113,231,180,230,28,231,104,232,121,232,178,230,59,229,22,229, +189,228,83,227,175,225,146,224,88,224,2,225,132,225,225,224,180,223,254,222,161,222,11,222,14,221,241,219,125,219,49,220, +51,221,85,221,161,220,231,219,162,219,189,219,117,219,17,218,105,216,36,216,30,217,164,217,64,217,255,216,133,217,118,218, +241,218,252,217,232,215,174,214,104,215,197,216,81,217,82,217,197,217,46,219,30,221,21,222,73,221,75,220,223,220,113,222, +128,223,192,223,176,223,246,223,42,225,223,226,201,227,123,227,223,226,0,227,25,228,97,229,211,229,134,229,127,229,52,230, +39,231,126,231,177,230,121,229,71,229,37,230,207,230,244,230,73,231,254,231,8,233,120,234,192,235,78,236,148,236,30,237, +183,237,36,238,125,238,190,238,26,239,3,240,126,241,25,243,128,244,181,245,250,246,142,248,46,250,94,251,59,252,98,253, +250,254,126,0,107,1,209,1,51,2,40,3,214,4,189,6,74,8,114,9,111,10,81,11,22,12,151,12,162,12,183,12, +130,13,97,14,100,14,53,14,216,14,244,15,250,16,219,17,33,18,197,17,190,17,54,18,126,18,212,18,158,19,104,20, +71,21,141,22,86,23,77,23,200,23,17,25,5,26,167,26,135,27,29,28,71,28,177,28,15,29,246,28,67,29,87,30, +53,31,135,31,253,31,175,32,65,33,200,33,98,34,206,34,238,34,248,34,9,35,29,35,77,35,200,35,124,36,240,36, +153,36,108,35,46,34,190,33,8,34,66,34,13,34,160,33,75,33,77,33,102,33,226,32,212,31,37,31,237,30,98,30, +73,29,2,28,254,26,160,26,127,26,196,25,219,24,169,24,129,24,113,23,21,22,18,21,72,20,239,19,244,19,66,19, +160,17,43,16,79,15,139,14,169,13,166,12,113,11,85,10,159,9,13,9,3,8,84,6,212,4,133,4,207,4,58,4, +220,2,210,1,66,1,223,0,154,0,229,255,106,254,31,253,173,252,43,252,224,250,128,249,229,248,203,248,75,248,4,247, +112,245,3,244,180,242,136,241,133,240,53,239,126,237,48,236,204,235,209,235,148,235,191,234,69,233,164,231,118,230,113,229, +200,227,174,225,73,224,227,223,121,223,68,222,142,220,18,219,159,218,111,219,42,220,85,219,182,217,206,216,119,216,55,216, +36,216,125,215,249,213,75,213,255,213,25,214,19,213,144,212,35,213,166,214,84,217,231,219,176,220,197,220,172,221,24,222, +170,220,147,218,127,217,226,217,104,219,17,221,42,222,129,223,247,225,174,228,240,229,6,229,234,226,160,225,95,226,70,228, +166,229,18,230,108,230,139,231,23,233,166,233,126,232,13,231,118,231,175,233,139,235,195,235,74,235,123,235,111,236,26,237, +54,236,213,233,65,232,91,233,204,235,57,237,147,237,23,238,85,239,48,241,162,242,86,242,42,241,116,241,100,243,64,245, +75,246,197,246,55,247,211,248,208,251,56,254,176,254,151,254,214,255,157,2,158,5,74,7,98,7,101,7,178,8,211,10, +62,12,52,12,183,11,100,12,64,14,231,15,196,16,94,17,41,18,172,19,82,22,32,25,147,26,144,26,214,25,193,24, +193,23,100,23,142,23,231,23,206,24,188,26,253,28,13,30,106,29,54,28,102,27,179,26,38,26,163,26,39,28,176,29, +248,30,48,32,228,32,222,32,162,32,44,32,37,31,137,30,211,31,179,34,149,37,177,39,217,40,167,40,150,39,249,38, +217,38,71,38,231,37,11,39,58,41,53,43,139,44,196,44,4,44,246,43,36,45,184,45,235,44,40,44,56,44,227,44, +249,45,101,46,27,45,130,43,124,43,75,44,82,44,153,43,248,42,16,43,44,44,104,45,12,45,152,42,116,39,115,37, +250,36,157,36,20,35,32,33,52,32,89,32,176,32,161,32,216,31,186,30,105,30,239,30,180,30,220,28,103,26,159,24, +252,23,104,24,54,25,65,25,58,24,66,23,81,23,211,23,141,23,33,22,59,20,246,18,19,19,25,20,158,20,219,19, +102,18,60,17,146,16,191,15,72,14,200,12,48,12,157,12,190,13,36,15,142,15,5,14,137,11,157,9,60,8,182,6, +216,4,184,2,13,1,192,0,34,1,169,0,79,255,209,253,36,252,74,250,146,248,213,246,53,245,81,244,219,243,20,243, +52,242,72,241,131,239,4,237,233,234,164,233,43,233,128,233,236,233,153,233,254,232,222,232,206,232,21,232,183,230,21,229, +183,227,81,227,234,227,94,228,168,227,66,226,131,225,227,225,128,226,64,226,26,225,68,224,246,224,194,226,188,227,192,226, +213,224,239,223,188,224,224,225,108,225,69,223,120,221,191,221,118,223,123,224,132,223,156,221,247,220,15,222,243,222,223,221, +52,219,210,216,93,216,138,217,41,218,232,216,38,215,206,214,12,216,184,217,94,218,71,217,206,215,244,215,69,217,153,217, +122,216,92,215,83,215,60,216,92,217,243,217,186,217,70,217,157,217,235,218,7,220,63,220,155,220,217,221,255,222,119,223, +221,223,23,224,182,223,149,223,83,224,51,225,68,226,103,228,201,230,221,231,11,232,125,232,42,233,178,233,31,234,94,234, +150,234,123,235,38,237,151,238,240,238,93,238,181,237,192,237,159,238,189,239,160,240,121,241,153,242,250,243,98,245,60,246, +215,245,188,244,155,244,239,245,104,247,42,248,163,248,112,249,39,251,198,253,195,255,224,255,86,255,218,255,88,1,2,3, +0,4,124,3,137,2,131,3,36,6,239,7,104,8,219,8,201,9,110,11,210,13,91,15,224,14,38,14,55,15,82,17, +170,18,196,18,72,18,70,18,130,19,96,21,77,22,223,21,165,21,255,22,241,24,129,25,194,24,115,24,30,25,201,25, +197,25,25,25,57,24,20,24,25,25,78,26,186,26,225,26,146,27,79,28,32,28,30,27,45,26,227,25,72,26,17,27, +155,27,127,27,66,27,129,27,212,27,139,27,216,26,117,26,196,26,108,27,136,27,176,26,198,25,203,25,122,26,187,26, +215,25,82,24,159,23,67,24,253,24,225,24,157,24,189,24,236,24,244,24,142,24,96,23,42,22,225,21,217,21,254,20, +148,19,62,18,22,17,38,16,83,15,88,14,130,13,41,13,214,12,245,11,162,10,68,9,46,8,93,7,116,6,86,5, +70,4,36,3,148,1,191,255,20,254,11,253,26,253,196,253,130,253,190,251,172,249,140,248,107,248,137,248,10,248,196,246, +136,245,248,244,145,244,188,243,226,242,169,242,205,242,152,242,213,241,195,240,158,239,214,238,204,238,7,239,215,238,124,238, +110,238,69,238,134,237,124,236,192,235,178,235,66,236,175,236,30,236,154,234,7,233,78,232,84,232,230,231,146,230,169,229, +239,229,68,230,224,229,94,229,29,229,20,229,97,229,109,229,112,228,37,227,183,226,248,226,105,227,43,228,0,229,79,229, +29,229,241,228,60,229,209,229,207,229,241,228,75,228,150,228,99,229,141,230,53,232,173,233,137,234,103,235,70,236,82,236, +203,235,184,235,81,236,91,237,219,238,99,240,44,241,91,241,197,241,129,242,2,243,30,243,24,243,55,243,208,243,222,244, +181,245,41,246,248,246,46,248,180,248,62,248,164,247,104,247,157,247,61,248,190,248,211,248,72,249,128,250,136,251,207,251, +229,251,43,252,141,252,1,253,114,253,247,253,231,254,36,0,48,1,218,1,41,2,95,2,10,3,245,3,32,4,173,3, +245,3,101,5,47,7,104,8,126,8,202,7,195,7,66,9,55,11,10,12,146,11,66,11,128,12,177,14,251,15,238,15, +180,15,252,15,173,16,123,17,154,17,183,16,82,16,206,17,54,20,230,21,136,22,111,22,28,22,120,22,136,23,216,23, +239,22,125,22,166,23,97,25,165,26,178,27,146,28,220,28,224,28,255,28,214,28,136,28,215,28,102,29,113,29,160,29, +142,30,78,31,28,31,82,30,85,29,153,28,196,28,134,29,203,29,95,29,214,28,155,28,208,28,21,29,168,28,128,27, +105,26,254,25,80,26,229,26,224,26,87,26,140,26,205,27,169,28,31,28,214,26,21,26,146,26,207,27,111,28,194,27, +184,26,162,26,150,27,103,28,35,28,71,27,247,26,136,27,98,28,175,28,234,27,194,26,167,26,141,27,222,27,234,26, +93,25,246,23,136,23,107,24,12,25,190,23,150,21,160,20,186,20,135,20,143,19,8,18,115,16,168,15,174,15,63,15, +186,13,49,12,161,11,166,11,142,11,41,11,59,10,190,8,140,7,74,7,119,7,109,7,61,7,7,7,184,6,79,6, +181,5,243,4,59,4,87,3,54,2,173,1,10,2,100,2,94,2,76,2,173,1,93,0,117,255,238,254,151,253,216,251, +228,250,125,250,91,250,183,250,141,250,248,248,73,247,182,246,144,246,66,246,194,245,165,244,116,243,157,243,132,244,25,244, +74,242,159,240,171,239,103,239,192,239,199,239,199,238,251,237,155,238,158,239,138,239,146,238,111,237,143,236,179,236,200,237, +26,238,237,236,216,235,231,235,57,236,2,236,56,235,0,234,73,233,235,233,199,234,89,234,18,233,22,232,184,231,0,232, +96,232,180,231,94,230,31,230,19,231,170,231,85,231,175,230,55,230,76,230,27,231,253,231,44,232,197,231,113,231,143,231, +13,232,169,232,24,233,61,233,103,233,6,234,232,234,103,235,121,235,148,235,225,235,82,236,197,236,206,236,114,236,105,236, +211,236,33,237,80,237,122,237,58,237,200,236,207,236,10,237,42,237,208,237,234,238,131,239,169,239,228,239,199,239,39,239, +204,238,205,238,161,238,176,238,141,239,186,240,149,241,23,242,57,242,37,242,153,242,193,243,157,244,156,244,171,244,180,245, +82,247,159,248,33,249,229,248,206,248,7,250,28,252,55,253,240,252,218,252,22,254,8,0,80,1,32,1,27,0,188,255, +151,0,222,1,124,2,255,1,33,1,96,1,246,2,93,4,164,4,108,4,134,4,118,5,18,7,197,7,136,6,17,5, +53,5,43,6,131,6,29,6,96,5,31,5,97,6,95,8,23,9,112,8,26,8,213,8,24,10,18,11,241,10,174,9, +167,8,237,8,186,9,197,9,32,9,200,8,51,9,17,10,213,10,7,11,183,10,184,10,123,11,27,12,178,11,209,10, +150,10,39,11,199,11,199,11,41,11,176,10,2,11,220,11,85,12,179,11,84,10,169,9,104,10,84,11,13,11,245,9, +39,9,43,9,206,9,39,10,131,9,200,8,37,9,224,9,137,9,35,8,191,6,80,6,8,7,182,7,214,6,187,4, +42,3,239,2,69,3,0,3,177,1,44,0,167,255,29,0,93,0,153,255,73,254,154,253,31,254,230,254,135,254,211,252, +219,250,223,249,80,250,31,251,186,250,80,249,160,248,71,249,0,250,159,249,112,248,164,247,251,247,239,248,81,249,142,248, +30,247,7,246,237,245,67,246,241,245,223,244,205,243,49,243,56,243,197,243,255,243,85,243,147,242,153,242,4,243,244,242, +24,242,196,240,195,239,152,239,173,239,35,239,70,238,31,238,194,238,68,239,56,239,2,239,225,238,194,238,183,238,111,238, +115,237,142,236,230,236,199,237,230,237,169,237,201,237,30,238,248,238,81,240,119,240,222,238,207,237,135,238,119,239,122,239, +242,238,75,238,31,238,2,239,240,239,138,239,119,238,52,238,210,238,87,239,252,238,209,237,7,237,207,237,124,239,49,240, +120,239,183,238,43,239,141,240,176,241,174,241,189,240,60,240,69,241,27,243,29,244,25,244,67,244,91,245,4,247,51,248, +246,247,196,246,76,246,50,247,113,248,52,249,152,249,25,250,70,251,9,253,62,254,66,254,211,253,165,253,218,253,179,254, +234,255,92,0,222,255,178,255,138,0,165,1,18,2,155,1,193,0,123,0,149,1,156,3,248,4,220,4,98,4,175,4, +86,5,165,5,184,5,155,5,112,5,27,6,176,7,214,8,3,9,29,9,178,9,184,10,0,12,183,12,138,12,190,12, +2,14,16,15,34,15,33,15,196,15,216,16,218,17,9,18,87,17,45,17,101,18,190,19,222,19,55,19,240,18,136,19, +159,20,26,21,62,20,2,19,25,19,117,20,87,21,215,20,244,19,26,20,188,21,228,23,206,24,224,23,164,22,146,22, +21,23,219,22,152,21,31,20,235,19,182,21,210,23,26,24,39,23,250,22,245,23,40,25,135,25,86,24,154,22,157,22, +129,24,7,26,248,25,224,24,159,23,77,23,62,24,197,24,164,23,89,22,157,22,239,23,2,25,5,25,169,23,217,21, +91,21,75,22,206,22,216,21,113,20,235,19,135,20,176,21,68,22,63,21,80,19,113,18,39,19,224,19,117,19,43,18, +195,16,88,16,113,17,98,18,74,17,91,15,254,14,56,16,106,17,134,17,76,16,148,14,239,13,74,14,237,13,118,12, +68,11,246,10,6,11,12,11,213,10,69,10,197,9,183,9,171,9,4,9,6,8,128,7,185,7,16,8,152,7,49,6, +245,4,223,4,65,5,200,4,150,3,207,2,207,2,55,3,76,3,9,2,206,255,236,254,6,0,182,0,176,255,109,254, +18,254,130,254,126,255,238,255,187,254,86,253,203,253,30,255,36,255,168,253,194,251,131,250,188,250,193,251,183,251,88,250, +89,249,211,249,38,251,12,252,171,251,116,250,205,249,72,250,210,250,60,250,185,248,119,247,81,247,39,248,22,249,51,249, +91,248,134,247,175,247,90,248,59,248,31,247,24,246,253,245,189,246,174,247,10,248,129,247,145,246,63,246,1,247,251,247, +243,247,251,246,60,246,74,246,220,246,72,247,183,246,53,245,80,244,29,245,169,246,153,247,178,247,116,247,163,247,142,248, +71,249,199,248,146,247,215,246,241,246,130,247,200,247,37,247,47,246,255,245,130,246,240,246,17,247,230,246,119,246,75,246, +178,246,30,247,47,247,79,247,178,247,231,247,165,247,63,247,36,247,105,247,245,247,163,248,17,249,13,249,44,249,215,249, +108,250,103,250,78,250,138,250,186,250,166,250,137,250,200,250,202,251,97,253,153,254,233,254,181,254,134,254,154,254,212,254, +173,254,10,254,181,253,35,254,220,254,100,255,90,255,122,254,129,253,159,253,144,254,242,254,82,254,88,253,169,252,136,252, +207,252,233,252,109,252,146,251,222,250,134,250,82,250,11,250,226,249,32,250,186,250,64,251,27,251,68,250,144,249,174,249, +83,250,233,250,43,251,10,251,236,250,115,251,92,252,210,252,189,252,115,252,25,252,22,252,152,252,215,252,95,252,253,251, +71,252,240,252,146,253,202,253,92,253,207,252,172,252,160,252,88,252,10,252,223,251,13,252,198,252,92,253,2,253,69,252, +245,251,165,251,210,250,221,249,1,249,29,248,183,247,78,248,33,249,78,249,64,249,120,249,101,249,205,248,138,248,229,248, +73,249,164,249,2,250,211,249,56,249,38,249,110,249,60,249,225,248,235,248,37,249,171,249,138,250,207,250,48,250,212,249, +38,250,103,250,53,250,110,249,51,248,214,247,20,249,63,250,227,249,11,249,232,248,28,249,62,249,81,249,226,248,231,247, +106,247,243,247,157,248,156,248,86,248,103,248,192,248,35,249,147,249,249,249,38,250,51,250,61,250,37,250,241,249,220,249, +254,249,68,250,130,250,143,250,167,250,27,251,159,251,228,251,60,252,170,252,182,252,138,252,171,252,252,252,63,253,125,253, +98,253,184,252,33,252,40,252,146,252,252,252,28,253,195,252,60,252,243,251,203,251,146,251,128,251,216,251,144,252,77,253, +146,253,70,253,237,252,247,252,86,253,162,253,126,253,71,253,226,253,35,255,186,255,47,255,89,254,31,254,231,254,67,0, +210,0,255,255,37,255,109,255,41,0,102,0,76,0,112,0,254,0,162,1,186,1,22,1,78,0,19,0,116,0,211,0, +150,0,11,0,16,0,198,0,168,1,86,2,93,2,124,1,150,0,158,0,237,0,132,0,240,255,61,0,81,1,105,2, +232,2,110,2,86,1,207,0,115,1,87,2,95,2,203,1,125,1,165,1,9,2,133,2,173,2,44,2,162,1,218,1, +172,2,115,3,190,3,92,3,195,2,194,2,48,3,8,3,235,1,147,0,35,0,36,1,146,2,210,2,220,1,255,0, +235,0,115,1,33,2,53,2,142,1,48,1,150,1,204,1,33,1,23,0,168,255,93,0,155,1,37,2,235,1,4,2, +144,2,194,2,84,2,97,1,35,0,113,255,186,255,22,0,219,255,132,255,102,255,74,255,2,255,50,254,184,252,172,251, +69,252,3,254,84,255,92,255,72,254,213,252,193,251,12,251,11,250,197,248,77,248,64,249,215,250,9,252,144,252,176,252, +230,252,119,253,202,253,35,253,11,252,153,251,211,251,97,252,86,253,72,254,148,254,182,254,125,255,167,0,162,1,76,2, +157,2,210,2,82,3,178,3,51,3,31,2,124,1,255,1,149,3,12,5,0,5,235,3,160,3,122,4,20,5,144,4, +98,3,89,2,25,2,197,2,104,3,169,2,206,0,213,255,175,0,237,1,56,2,236,1,161,1,188,1,0,3,209,4, +225,4,253,2,190,1,67,2,57,3,225,3,61,4,21,4,19,4,54,5,147,6,173,6,254,5,221,5,179,6,78,8, +0,10,174,10,60,10,218,9,50,10,186,10,209,10,107,10,233,9,239,9,214,10,41,12,29,13,89,13,6,13,162,12, +184,12,37,13,21,13,76,12,161,11,169,11,8,12,69,12,11,12,75,11,233,10,189,11,221,12,5,13,184,12,183,12, +141,12,48,12,69,12,104,12,19,12,233,11,44,12,48,12,50,12,239,12,216,13,33,14,22,14,3,14,154,13,236,12, +129,12,131,12,189,12,34,13,183,13,22,14,189,13,252,12,170,12,228,12,64,13,199,13,102,14,157,14,169,14,73,15, +38,16,85,16,238,15,160,15,173,15,230,15,213,15,38,15,92,14,90,14,49,15,17,16,47,16,168,15,104,15,186,15, +224,15,159,15,114,15,1,15,211,13,235,12,35,13,121,13,21,13,178,12,170,12,72,12,120,11,185,10,238,9,19,9, +244,8,189,9,80,10,240,9,10,9,6,8,14,7,174,6,11,7,73,7,252,6,201,6,241,6,13,7,23,7,49,7, +51,7,70,7,162,7,220,7,188,7,183,7,250,7,72,8,161,8,241,8,13,9,36,9,54,9,237,8,170,8,7,9, +159,9,221,9,201,9,67,9,58,8,105,7,17,7,90,6,10,5,6,4,178,3,181,3,190,3,128,3,199,2,33,2, +55,2,116,2,138,1,110,255,157,253,255,252,215,252,49,252,2,251,180,249,241,248,55,249,163,249,218,248,107,247,247,246, +105,247,152,247,64,247,125,246,69,245,83,244,121,244,7,245,198,244,201,243,7,243,230,242,10,243,19,243,1,243,249,242, +11,243,40,243,238,242,248,241,183,240,44,240,96,240,97,240,226,239,157,239,6,240,152,240,150,240,247,239,57,239,158,238, +16,238,141,237,7,237,84,236,165,235,63,235,241,234,156,234,107,234,8,234,24,233,82,232,133,232,62,233,149,233,66,233, +133,232,222,231,160,231,73,231,36,230,135,228,134,227,158,227,63,228,112,228,224,227,40,227,0,227,151,227,114,228,135,228, +109,227,95,226,154,226,141,227,33,228,51,228,222,227,96,227,133,227,42,228,241,227,214,226,162,226,6,228,214,229,3,231, +107,231,99,231,163,231,159,232,152,233,111,233,102,232,4,232,10,233,127,234,50,235,71,235,173,235,203,236,66,238,90,239, +158,239,74,239,9,239,87,239,49,240,4,241,49,241,253,240,44,241,202,241,131,242,88,243,1,244,14,244,13,244,189,244, +163,245,8,246,2,246,207,245,184,245,55,246,251,246,33,247,232,246,46,247,226,247,193,248,41,250,233,251,12,253,121,253, +235,253,123,254,198,254,235,254,30,255,63,255,157,255,214,0,135,2,187,3,138,4,154,5,183,6,131,7,45,8,117,8, +250,7,156,7,102,8,225,9,20,11,187,11,215,11,184,11,16,12,219,12,101,13,152,13,226,13,125,14,158,15,1,17, +148,17,241,16,7,16,173,15,233,15,101,16,138,16,55,16,97,16,145,17,188,18,9,19,253,18,31,19,56,19,22,19, +219,18,191,18,17,19,234,19,206,20,16,21,151,20,244,19,190,19,245,19,45,20,25,20,212,19,208,19,73,20,186,20, +126,20,218,19,106,19,61,19,76,19,150,19,144,19,232,18,53,18,216,17,107,17,225,16,149,16,110,16,65,16,67,16, +105,16,89,16,32,16,239,15,140,15,160,14,66,13,8,12,162,11,28,12,183,12,185,12,39,12,147,11,95,11,73,11, +211,10,255,9,96,9,96,9,133,9,195,8,224,6,5,5,77,4,129,4,205,4,158,4,189,3,172,2,81,2,125,2, +39,2,13,1,154,255,64,254,183,253,0,254,154,253,191,251,224,249,99,249,14,250,227,250,170,250,223,248,17,247,235,246, +138,247,102,247,242,246,244,246,226,246,38,246,231,244,137,243,172,242,196,242,56,243,11,243,25,242,6,241,129,240,170,240, +214,240,87,240,88,239,108,238,218,237,177,237,187,237,84,237,62,236,57,235,255,234,32,235,184,234,195,233,58,233,247,233, +226,235,233,237,185,238,209,237,229,235,13,234,236,232,145,232,173,232,50,233,177,234,54,237,98,239,1,240,140,239,47,239, +145,239,196,240,253,241,19,242,40,241,165,240,61,241,83,242,231,242,106,242,131,241,192,241,125,243,43,245,93,245,114,244, +5,244,21,245,115,246,207,245,22,243,3,241,155,241,219,243,88,245,244,244,239,243,78,244,22,246,48,247,95,246,224,244, +237,244,67,247,18,250,187,250,7,249,108,247,5,248,174,250,119,253,57,254,255,252,161,252,20,255,149,2,69,4,182,3, +186,2,101,3,253,5,27,8,84,7,222,4,54,4,138,6,146,9,163,10,150,9,202,8,77,10,76,13,90,15,143,15, +247,14,203,14,111,15,64,16,203,15,164,13,218,11,180,12,138,15,201,17,24,18,18,17,72,16,21,17,214,18,53,19, +193,17,250,16,108,18,183,20,250,21,165,21,116,20,41,20,161,21,29,23,180,22,58,21,230,20,189,22,1,26,105,28, +245,27,168,25,108,24,50,25,114,26,202,26,91,26,100,26,245,27,72,30,70,31,15,30,4,28,82,27,192,28,175,30, +7,31,52,30,77,30,216,31,129,33,2,34,224,32,240,30,72,30,175,31,59,33,79,33,8,33,17,34,22,36,103,37, +227,36,209,34,146,32,136,31,189,31,208,31,173,30,35,29,226,28,252,29,176,30,211,29,31,28,23,27,121,27,157,28, +217,28,244,26,202,23,223,21,152,22,96,24,111,24,16,22,54,19,31,18,13,19,26,20,97,19,97,17,72,16,232,16, +241,17,241,17,170,16,252,14,54,14,172,14,23,15,58,14,135,12,135,11,69,12,64,14,159,15,19,15,105,13,147,12, +87,13,76,14,86,13,127,10,95,8,170,8,250,9,16,10,57,8,97,5,114,3,120,3,217,3,137,2,67,0,220,254, +116,254,94,254,24,254,176,252,11,250,195,247,184,246,216,245,105,244,252,242,67,242,168,242,250,243,219,244,231,243,130,241, +75,239,66,238,0,238,81,237,192,235,95,234,80,234,246,234,225,234,171,233,1,232,163,230,33,230,140,230,27,231,22,231, +229,230,250,230,179,230,152,229,84,228,106,227,160,226,24,226,29,226,97,226,171,226,44,227,155,227,125,227,243,226,47,226, +36,225,35,224,119,223,217,222,76,222,85,222,235,222,99,223,79,223,202,222,109,222,219,222,208,223,96,224,67,224,12,224, +91,224,51,225,201,225,83,225,86,224,6,224,117,224,163,224,242,223,186,222,238,221,69,222,70,223,203,223,138,223,65,223, +96,223,99,223,160,222,134,221,86,221,65,222,9,223,2,223,196,222,251,222,15,224,7,226,167,227,157,227,203,226,27,227, +163,228,15,230,168,230,183,230,33,231,163,232,148,234,69,235,103,234,195,233,1,235,173,237,223,239,100,240,247,239,64,240, +203,241,98,243,152,243,173,242,82,242,140,243,138,245,206,246,224,246,187,246,190,247,230,249,134,251,74,251,227,249,18,249, +160,249,185,250,32,251,222,250,3,251,195,251,85,252,106,252,40,252,177,251,229,251,139,253,122,255,62,0,159,0,244,1, +214,3,118,5,202,6,146,7,139,7,92,7,180,7,120,8,144,9,31,11,178,12,143,13,224,13,119,14,118,15,89,16, +15,17,232,17,167,18,15,19,150,19,88,20,168,20,113,20,117,20,9,21,9,22,87,23,93,24,129,24,77,24,201,24, +225,25,177,26,190,26,82,26,0,26,39,26,182,26,75,27,113,27,31,27,249,26,98,27,192,27,148,27,51,27,241,26, +232,26,88,27,216,27,107,27,68,26,154,25,169,25,190,25,123,25,192,24,182,23,98,23,102,24,140,25,76,25,250,23, +17,23,248,22,187,22,164,21,22,20,190,18,234,17,148,17,76,17,122,16,102,15,19,15,125,15,145,15,1,15,141,14, +110,14,12,14,54,13,106,12,236,11,135,11,45,11,203,10,239,9,192,8,67,8,137,8,87,8,79,7,34,6,225,4, +127,3,165,2,48,2,18,1,128,255,151,254,29,254,27,253,132,251,232,249,233,248,15,249,164,249,236,248,156,246,114,244, +191,243,255,243,13,244,118,243,108,242,95,241,172,240,12,240,193,238,10,237,75,236,212,236,91,237,66,237,255,236,121,236, +175,235,174,235,139,236,151,236,29,235,71,233,2,232,99,231,99,231,177,231,232,231,73,232,45,233,38,234,119,234,206,233, +163,232,3,232,87,232,200,232,144,232,197,231,170,230,165,229,127,229,44,230,103,230,161,229,200,228,163,228,244,228,94,229, +201,229,23,230,115,230,34,231,148,231,227,230,114,229,164,228,49,229,229,230,252,232,32,234,183,233,28,233,158,233,131,234, +197,234,193,234,11,235,170,235,132,236,16,237,207,236,146,236,117,237,251,238,242,239,23,240,239,239,86,240,240,241,23,244, +94,245,99,245,19,245,93,245,50,246,148,246,237,245,66,245,227,245,158,247,83,249,44,250,247,249,171,249,168,250,102,252, +240,252,34,252,169,251,35,252,162,252,99,252,157,251,91,251,167,252,18,255,206,0,218,0,60,0,153,0,55,2,220,3, +120,4,79,4,89,4,39,5,142,6,197,7,35,8,10,8,126,8,156,9,113,10,98,10,30,10,253,10,92,13,190,15, +101,16,170,15,137,15,192,16,223,17,167,17,247,16,128,17,138,19,205,21,232,22,179,22,134,22,189,23,181,25,142,26, +238,25,46,25,83,25,106,26,223,27,144,28,8,28,117,27,238,27,220,28,61,29,2,29,242,28,239,29,222,31,93,33, +119,33,183,32,10,32,251,31,159,32,34,33,216,32,180,32,152,33,151,34,192,34,111,34,13,34,220,33,98,34,53,35, +41,35,91,34,207,33,169,33,166,33,192,33,147,33,225,32,97,32,152,32,9,33,54,33,56,33,38,33,2,33,233,32, +227,32,220,32,192,32,159,32,190,32,40,33,55,33,72,32,201,30,209,29,221,29,135,30,24,31,13,31,156,30,150,30, +0,31,150,30,223,28,91,27,40,27,90,27,232,26,43,26,182,25,151,25,158,25,40,25,215,23,152,22,59,22,7,22, +62,21,65,20,92,19,145,18,53,18,254,17,227,16,217,14,243,12,209,11,60,11,180,10,193,9,149,8,249,7,25,8, +20,8,251,6,233,4,36,3,158,2,118,2,82,1,180,255,5,255,90,255,156,255,234,254,89,253,18,252,17,252,160,252, +95,252,44,251,215,249,0,249,177,248,21,248,89,246,64,244,65,243,83,243,97,243,211,242,189,241,208,240,243,240,167,241, +68,241,165,239,85,238,246,237,198,237,31,237,212,235,25,234,229,232,237,232,98,233,49,233,191,232,209,232,27,233,22,233, +183,232,181,231,234,229,79,228,221,227,58,228,175,228,0,229,230,228,82,228,200,227,109,227,233,226,98,226,18,226,188,225, +132,225,192,225,233,225,109,225,152,224,197,223,44,223,75,223,220,223,195,223,11,223,2,223,15,224,41,225,33,225,177,223, +1,222,145,221,78,222,227,222,220,222,231,222,151,223,194,224,128,225,45,225,134,224,197,224,230,225,23,227,225,227,45,228, +97,228,66,229,169,230,107,231,25,231,126,230,130,230,95,231,109,232,156,232,236,231,170,231,127,232,143,233,240,233,177,233, +104,233,153,233,114,234,131,235,6,236,214,235,184,235,37,236,139,236,116,236,124,236,57,237,58,238,186,238,129,238,3,238, +38,238,109,239,33,241,18,242,21,242,28,242,251,242,78,244,238,244,169,244,178,244,251,245,22,248,255,249,255,250,34,251, +124,251,243,252,195,254,127,255,14,255,172,254,120,255,103,1,96,3,116,4,203,4,4,5,127,5,71,6,224,6,225,6, +242,6,242,7,132,9,211,10,124,11,31,11,7,10,117,9,177,9,166,9,84,9,200,9,215,10,185,11,188,12,30,14, +36,15,95,15,39,15,210,14,161,14,226,14,118,15,215,15,217,15,233,15,91,16,187,16,94,16,120,15,239,14,53,15, +253,15,199,16,58,17,109,17,206,17,97,18,145,18,12,18,59,17,194,16,210,16,12,17,19,17,245,16,252,16,122,17, +101,18,230,18,59,18,3,17,75,16,255,15,185,15,148,15,89,15,207,14,190,14,148,15,78,16,101,16,130,16,161,16, +7,16,11,15,156,14,153,14,75,14,174,13,41,13,176,12,249,11,26,11,70,10,103,9,194,8,218,8,43,9,168,8, +168,7,47,7,229,6,238,5,115,4,193,2,186,0,247,254,88,254,118,254,61,254,153,253,61,253,71,253,18,253,55,252, +233,250,119,249,90,248,59,248,202,248,194,248,26,248,243,247,255,247,249,246,102,245,182,244,224,244,44,245,114,245,122,245, +60,245,115,245,20,246,199,245,43,244,189,242,145,242,13,243,86,243,99,243,94,243,90,243,198,243,173,244,243,244,239,243, +196,242,100,242,34,242,138,241,54,241,45,241,232,240,121,240,239,239,30,239,173,238,44,239,147,239,214,238,205,237,217,237, +233,238,218,239,196,239,188,238,197,237,236,237,10,239,165,239,168,238,25,237,253,236,137,238,10,240,106,240,14,240,218,239, +132,240,232,241,144,242,147,241,139,240,178,241,120,244,18,246,58,245,162,243,129,243,41,245,60,247,33,248,96,247,158,246, +0,248,187,250,222,251,241,250,95,250,87,251,163,252,253,252,10,252,94,250,156,249,227,250,50,253,193,254,3,255,183,254, +208,254,133,255,251,255,64,255,176,253,229,252,242,253,219,255,159,0,236,255,79,255,183,255,199,0,6,2,206,2,123,2, +212,1,45,2,64,3,30,4,181,4,214,4,46,4,163,3,39,4,7,5,126,5,13,6,2,7,205,7,46,8,81,8, +47,8,238,7,41,8,24,9,53,10,253,10,101,11,131,11,103,11,115,11,5,12,231,12,186,13,158,14,188,15,179,16, +36,17,54,17,105,17,5,18,184,18,245,18,175,18,86,18,82,18,231,18,233,19,184,20,73,21,35,22,239,22,232,22, +154,22,243,22,122,23,79,23,150,22,211,21,81,21,49,21,47,21,250,20,211,20,243,20,252,20,162,20,15,20,126,19, +7,19,148,18,34,18,250,17,20,18,223,17,83,17,250,16,188,16,87,16,60,16,170,16,78,17,16,18,172,18,138,18, +35,18,129,18,55,19,72,19,248,18,218,18,18,19,4,20,155,21,155,22,125,22,62,22,112,22,136,22,56,22,199,21, +106,21,64,21,103,21,162,21,129,21,2,21,126,20,0,20,43,19,247,17,1,17,194,16,222,16,154,16,182,15,183,14, +80,14,115,14,73,14,33,13,41,11,73,9,83,8,51,8,35,8,161,7,190,6,241,5,218,5,86,6,44,6,218,4, +150,3,117,3,43,4,233,4,225,4,214,3,14,3,190,3,179,4,29,4,115,2,93,1,121,1,74,2,204,2,62,2, +44,1,160,0,165,0,168,0,37,0,190,254,248,252,41,252,147,252,36,253,41,253,170,252,250,251,207,251,74,252,78,252, +51,251,211,249,34,249,42,249,52,249,87,248,208,246,110,246,242,247,128,249,67,249,203,247,183,246,202,246,186,247,134,248, +52,248,235,246,234,245,255,245,154,246,147,246,125,245,2,244,43,243,129,243,106,244,141,244,104,243,37,242,5,242,153,242, +125,242,92,241,81,240,81,240,238,240,25,241,122,240,159,239,96,239,15,240,174,240,220,239,4,238,28,237,217,237,23,239, +185,239,159,239,129,239,80,240,203,241,110,242,182,241,235,240,80,241,213,242,84,244,140,244,191,243,164,243,228,244,58,246, +113,246,121,245,30,244,192,243,203,244,170,245,5,245,211,243,182,243,213,244,7,246,241,245,137,244,120,243,228,243,237,244, +81,245,195,244,178,243,79,243,101,244,118,245,153,244,188,242,37,242,9,243,33,244,174,244,165,244,147,244,78,245,147,246, +47,247,10,247,58,247,11,248,208,248,73,249,202,249,101,250,2,251,160,251,247,251,180,251,45,251,19,251,175,251,199,252, +171,253,185,253,120,253,31,254,116,255,8,0,154,255,33,255,22,255,107,255,230,255,201,255,198,254,251,253,93,254,87,255, +230,255,199,255,91,255,72,255,213,255,121,0,136,0,255,255,133,255,23,0,216,1,69,3,248,2,206,1,184,1,27,3, +143,4,138,4,4,3,174,1,27,2,241,3,86,5,206,4,218,2,227,1,48,3,188,4,62,4,149,2,209,1,130,2, +65,4,227,5,123,5,37,3,198,1,212,2,72,4,239,3,246,1,11,0,217,255,139,1,63,3,79,3,119,2,114,2, +130,3,121,4,78,4,38,3,54,2,146,2,233,3,217,4,128,4,69,3,44,2,238,1,142,2,95,3,186,3,192,3, +216,3,227,3,161,3,49,3,147,2,167,1,183,0,3,0,107,255,28,255,59,255,36,255,133,254,20,254,22,254,221,253, +36,253,57,252,81,251,175,250,96,250,214,249,221,248,26,248,224,247,214,247,229,247,72,248,222,248,43,249,240,248,163,248, +224,248,73,249,2,249,80,248,69,248,53,249,132,250,33,251,73,250,203,248,126,248,148,249,133,250,146,250,64,250,247,249, +250,249,119,250,210,250,80,250,65,249,156,248,234,248,208,249,58,250,138,249,164,248,191,248,153,249,210,249,167,248,216,246, +244,245,161,246,199,247,230,247,220,246,192,245,114,245,199,245,234,245,88,245,117,244,32,244,202,244,255,245,217,246,248,246, +177,246,85,246,252,245,192,245,144,245,80,245,71,245,177,245,44,246,116,246,217,246,127,247,255,247,241,247,90,247,205,246, +237,246,142,247,253,247,32,248,68,248,96,248,92,248,69,248,16,248,251,247,101,248,2,249,112,249,9,250,225,250,85,251, +92,251,142,251,191,251,80,251,136,250,91,250,60,251,166,252,153,253,155,253,38,253,26,253,212,253,175,254,123,254,58,253, +116,252,248,252,207,253,24,254,250,253,174,253,127,253,15,254,42,255,168,255,52,255,180,254,225,254,156,255,88,0,153,0, +88,0,6,0,28,0,178,0,104,1,164,1,74,1,250,0,67,1,224,1,22,2,188,1,144,1,54,2,83,3,46,4, +145,4,161,4,180,4,69,5,51,6,171,6,121,6,88,6,173,6,51,7,142,7,143,7,108,7,174,7,120,8,90,9, +241,9,3,10,175,9,170,9,76,10,207,10,144,10,19,10,2,10,128,10,109,11,60,12,67,12,241,11,99,12,149,13, +82,14,251,13,65,13,11,13,90,13,139,13,92,13,35,13,96,13,40,14,189,14,61,14,27,13,207,12,184,13,197,14, +29,15,180,14,203,13,237,12,153,12,156,12,115,12,7,12,181,11,16,12,68,13,107,14,118,14,155,13,223,12,201,12, +47,13,130,13,48,13,136,12,154,12,158,13,137,14,132,14,229,13,127,13,164,13,11,14,88,14,100,14,93,14,197,14, +189,15,104,16,240,15,183,14,188,13,143,13,72,14,66,15,89,15,135,14,48,14,4,15,26,16,79,16,90,15,6,14, +170,13,98,14,140,14,53,13,149,11,54,11,21,12,10,13,6,13,23,12,105,11,188,11,81,12,15,12,250,10,239,9, +125,9,125,9,123,9,51,9,161,8,22,8,33,8,182,8,202,8,186,7,99,6,226,5,37,6,89,6,10,6,125,5, +100,5,21,6,207,6,80,6,149,4,80,3,199,3,229,4,214,4,198,3,68,3,223,3,234,4,125,5,230,4,122,3, +181,2,62,3,17,4,94,4,121,4,185,4,48,5,219,5,24,6,26,5,110,3,163,2,88,3,161,4,42,5,145,4, +169,3,107,3,216,3,4,4,15,3,82,1,74,0,195,0,169,1,164,1,198,0,247,255,208,255,66,0,105,0,88,255, +145,253,144,252,223,252,158,253,170,253,181,252,131,251,19,251,101,251,154,251,39,251,95,250,35,250,1,251,74,252,170,252, +212,251,209,250,184,250,194,251,237,252,183,252,43,251,64,250,31,251,143,252,2,253,125,252,6,252,144,252,66,254,210,255, +139,255,186,253,161,252,77,253,73,254,11,254,230,252,9,252,54,252,80,253,25,254,78,253,160,251,244,250,146,251,11,252, +125,251,80,250,129,249,192,249,121,250,63,250,224,248,187,247,196,247,161,248,101,249,95,249,225,248,251,248,210,249,74,250, +200,249,173,248,127,247,216,246,44,247,235,247,54,248,55,248,154,248,105,249,47,250,135,250,70,250,174,249,80,249,116,249, +227,249,48,250,43,250,8,250,247,249,220,249,154,249,63,249,206,248,127,248,177,248,61,249,135,249,88,249,216,248,69,248, +250,247,12,248,231,247,41,247,84,246,26,246,153,246,77,247,95,247,142,246,182,245,184,245,42,246,10,246,53,245,112,244, +102,244,220,244,248,244,85,244,159,243,194,243,176,244,126,245,145,245,32,245,160,244,77,244,56,244,29,244,144,243,194,242, +119,242,225,242,106,243,159,243,122,243,57,243,56,243,136,243,198,243,196,243,165,243,153,243,19,244,61,245,12,246,147,245, +155,244,81,244,165,244,8,245,33,245,178,244,68,244,213,244,18,246,175,246,124,246,67,246,141,246,117,247,121,248,123,248, +64,247,12,246,252,245,222,246,207,247,2,248,91,247,183,246,230,246,133,247,160,247,24,247,172,246,242,246,163,247,253,247, +165,247,255,246,194,246,71,247,15,248,46,248,119,247,210,246,9,247,246,247,226,248,66,249,28,249,0,249,98,249,8,250, +76,250,252,249,187,249,74,250,106,251,40,252,44,252,11,252,99,252,105,253,199,254,171,255,180,255,151,255,250,255,106,0, +86,0,8,0,254,255,64,0,186,0,118,1,26,2,248,1,51,1,247,0,188,1,127,2,135,2,92,2,134,2,223,2, +35,3,16,3,142,2,54,2,137,2,238,2,193,2,99,2,139,2,101,3,110,4,201,4,69,4,186,3,162,3,152,3, +130,3,155,3,193,3,8,4,200,4,136,5,151,5,94,5,104,5,107,5,69,5,80,5,101,5,44,5,241,4,39,5, +176,5,46,6,80,6,242,5,89,5,14,5,76,5,205,5,31,6,15,6,214,5,193,5,208,5,180,5,51,5,125,4, +35,4,138,4,111,5,6,6,188,5,232,4,111,4,168,4,22,5,51,5,237,4,142,4,118,4,147,4,85,4,181,3, +92,3,93,3,56,3,235,2,138,2,198,1,249,0,237,0,83,1,91,1,36,1,236,0,79,0,142,255,134,255,249,255, +203,255,216,254,6,254,238,253,92,254,216,254,20,255,252,254,216,254,44,255,200,255,159,255,75,254,202,252,23,252,101,252, +130,253,169,254,227,254,110,254,79,254,107,254,212,253,129,252,54,251,175,250,82,251,131,252,210,252,183,251,59,250,125,249, +118,249,67,249,75,248,50,247,40,247,38,248,3,249,25,249,180,248,37,248,126,247,165,246,121,245,83,244,3,244,204,244, +23,246,88,247,87,248,175,248,16,248,31,247,245,246,193,247,200,248,137,249,35,250,226,250,226,251,193,252,251,252,214,252, +11,253,125,253,172,253,219,253,99,254,253,254,129,255,249,255,22,0,234,255,6,0,38,0,193,255,117,255,246,255,192,0, +68,1,113,1,230,0,142,255,109,254,78,254,204,254,105,255,22,0,169,0,236,0,251,0,239,0,156,0,2,0,182,255, +57,0,13,1,80,1,32,1,79,1,27,2,65,3,96,4,233,4,175,4,128,4,18,5,16,6,214,6,34,7,28,7, +92,7,76,8,84,9,169,9,141,9,203,9,137,10,65,11,109,11,255,10,121,10,149,10,137,11,209,12,162,13,187,13, +109,13,238,12,48,12,120,11,50,11,113,11,49,12,133,13,227,14,54,15,53,14,213,12,39,12,73,12,187,12,45,13, +176,13,98,14,100,15,128,16,214,16,4,16,251,14,134,14,59,14,242,13,79,14,78,15,110,16,209,17,56,19,133,19, +103,18,190,16,64,15,102,14,188,14,17,16,142,17,197,18,161,19,229,19,120,19,140,18,117,17,186,16,188,16,68,17, +241,17,168,18,82,19,206,19,26,20,33,20,165,19,146,18,96,17,10,17,1,18,75,19,182,19,119,19,110,19,152,19, +106,19,172,18,149,17,220,16,80,17,136,18,6,19,65,18,78,17,34,17,100,17,68,17,144,16,159,15,213,14,140,14, +194,14,203,14,40,14,96,13,40,13,71,13,11,13,31,12,203,10,236,9,21,10,159,10,130,10,243,9,239,9,173,10, +102,11,98,11,207,10,108,10,93,10,32,10,162,9,72,9,48,9,130,9,109,10,97,11,169,11,94,11,199,10,248,9, +143,9,236,9,74,10,60,10,134,10,80,11,150,11,191,10,33,9,102,7,87,6,78,6,162,6,168,6,180,6,51,7, +164,7,56,7,230,5,49,4,112,2,238,0,49,0,47,0,16,0,118,255,10,255,39,255,65,255,161,254,236,252,163,250, +104,249,42,250,106,251,30,251,144,249,165,248,23,249,167,249,200,248,131,246,162,244,208,244,170,246,44,248,246,247,208,246, +105,246,22,247,157,247,250,246,63,245,78,243,90,242,223,242,213,243,213,243,231,242,63,242,143,242,50,243,0,243,170,241, +15,240,83,239,226,239,223,240,150,240,176,238,57,237,169,237,145,238,27,238,140,236,25,235,166,234,142,235,180,236,84,236, +195,234,229,233,45,234,173,234,201,234,22,234,133,232,60,231,51,231,166,231,138,231,20,231,217,230,12,231,164,231,38,232, +177,231,55,230,219,228,142,228,243,228,38,229,217,228,83,228,250,227,30,228,117,228,31,228,14,227,117,226,251,226,208,227, +29,228,3,228,237,227,249,227,18,228,15,228,215,227,136,227,145,227,114,228,253,229,84,231,7,232,103,232,164,232,220,232, +97,233,206,233,86,233,171,232,78,233,241,234,0,236,47,236,94,236,254,236,238,237,231,238,78,239,235,238,180,238,184,239, +94,241,15,242,137,241,243,240,227,240,245,240,232,240,175,240,91,240,170,240,5,242,75,243,131,243,90,243,115,243,163,243, +16,244,172,244,157,244,50,244,230,244,147,246,183,247,15,248,80,248,155,248,10,249,219,249,141,250,166,250,203,250,181,251, +25,253,108,254,143,255,101,0,188,0,204,0,41,1,13,2,43,3,60,4,73,5,97,6,137,7,188,8,147,9,115,9, +129,8,227,7,114,8,162,9,84,10,128,10,3,11,249,11,173,12,215,12,173,12,116,12,202,12,220,13,140,14,50,14, +236,13,133,14,76,15,189,15,206,15,5,15,178,13,83,13,48,14,240,14,1,15,16,15,140,15,91,16,20,17,6,17, +34,16,136,15,0,16,200,16,219,16,126,16,154,16,53,17,172,17,192,17,121,17,208,16,73,16,120,16,196,16,118,16, +59,16,194,16,99,17,126,17,64,17,185,16,6,16,184,15,206,15,164,15,70,15,41,15,42,15,249,14,154,14,3,14, +49,13,128,12,54,12,35,12,246,11,161,11,76,11,2,11,165,10,84,10,93,10,115,10,208,9,106,8,31,7,130,6, +92,6,77,6,43,6,206,5,26,5,68,4,115,3,125,2,130,1,6,1,239,0,164,0,64,0,19,0,157,255,178,254, +26,254,219,253,16,253,210,251,9,251,252,250,122,251,9,252,171,251,48,250,225,248,117,248,37,248,67,247,5,246,22,245, +54,245,65,246,197,246,225,245,98,244,52,243,90,242,171,241,41,241,196,240,119,240,41,240,121,239,57,238,213,236,220,235, +119,235,106,235,128,235,190,235,34,236,196,236,0,238,167,239,113,240,119,239,109,237,127,235,38,234,153,233,15,234,87,235, +241,236,129,238,224,239,255,240,190,241,7,242,38,242,144,242,77,243,21,244,178,244,24,245,97,245,179,245,231,245,178,245, +25,245,96,244,236,243,30,244,200,244,48,245,33,245,38,245,141,245,228,245,108,245,218,243,242,241,14,241,157,241,171,242, +49,243,72,243,220,243,54,245,31,246,113,245,12,244,170,243,165,244,15,246,211,246,121,246,30,246,147,247,128,250,126,252, +146,252,17,252,93,252,220,253,22,0,229,1,172,2,69,3,137,4,241,5,95,6,139,5,86,4,245,3,147,4,73,5, +161,5,46,6,157,7,223,9,2,12,188,12,226,11,225,10,214,10,48,11,253,10,107,10,71,10,236,10,16,12,29,13, +106,13,177,12,151,11,45,11,197,11,236,12,80,14,220,15,69,17,51,18,122,18,41,18,201,17,245,17,137,18,11,19, +127,19,33,20,11,21,62,22,89,23,193,23,119,23,0,23,158,22,121,22,166,22,221,22,35,23,244,23,17,25,139,25, +44,25,108,24,160,23,77,23,235,23,1,25,200,25,75,26,4,27,28,28,57,29,151,29,188,28,78,27,142,26,38,27, +174,28,25,30,224,30,181,31,73,33,10,35,219,35,83,35,224,33,128,32,0,32,9,32,186,31,51,31,68,31,4,32, +163,32,33,32,69,30,61,28,152,27,95,28,31,29,176,28,69,27,12,26,241,25,129,26,75,26,136,24,224,21,172,19, +200,18,218,18,204,18,48,18,209,17,133,18,209,19,57,20,251,18,254,16,153,15,28,15,248,14,192,14,169,14,73,15, +148,16,90,17,204,16,197,15,126,15,6,16,159,16,128,16,122,15,138,14,164,14,38,15,237,14,0,14,225,12,178,11, +128,10,62,9,217,7,218,6,197,6,1,7,144,6,18,5,203,2,189,0,220,255,100,255,213,253,153,251,97,250,127,250, +218,250,156,250,167,249,130,248,2,248,42,248,220,247,105,246,181,244,13,244,86,244,83,244,96,243,229,241,107,240,83,239, +222,238,145,238,172,237,147,236,103,236,45,237,206,237,129,237,95,236,25,235,96,234,57,234,249,233,18,233,187,231,193,230, +154,230,213,230,199,230,97,230,184,229,202,228,239,227,126,227,28,227,138,226,81,226,195,226,78,227,24,227,200,225,224,223, +136,222,160,222,232,223,69,225,206,225,219,225,143,226,244,227,165,228,222,227,107,226,132,225,203,225,199,226,0,227,239,225, +34,225,230,225,75,227,178,227,167,226,237,224,234,223,76,224,234,224,107,224,112,223,127,223,176,224,171,225,47,225,98,223, +193,221,160,221,231,222,145,224,159,225,214,225,51,226,171,227,128,229,50,230,169,229,232,228,147,228,214,228,158,229,113,230, +52,231,174,232,57,235,150,237,84,238,217,237,203,237,210,238,52,240,42,241,133,241,170,241,125,242,57,244,164,245,211,245, +171,245,54,246,24,247,184,247,41,248,134,248,212,248,89,249,45,250,220,250,248,250,158,250,55,250,217,249,96,249,20,249, +84,249,246,249,230,250,119,252,28,254,201,254,206,254,65,255,34,0,12,1,29,2,37,3,216,3,183,4,8,6,38,7, +199,7,82,8,235,8,146,9,126,10,150,11,136,12,96,13,98,14,145,15,149,16,228,16,115,16,7,16,94,16,125,17, +230,18,226,19,19,20,45,20,30,21,134,22,51,23,196,22,0,22,4,22,56,23,173,24,9,25,41,24,56,23,63,23, +3,24,77,24,107,23,62,22,47,22,90,23,139,24,202,24,93,24,41,24,93,24,55,24,50,23,170,21,114,20,117,20, +233,21,101,23,57,23,180,21,142,20,141,20,29,21,99,21,215,20,183,19,215,18,152,18,142,18,53,18,114,17,137,16, +214,15,146,15,197,15,16,16,188,15,221,14,175,14,155,15,96,16,252,15,164,14,240,12,211,11,255,11,105,12,175,11, +155,10,145,10,36,11,69,11,143,10,202,8,141,6,138,5,28,6,109,6,29,5,217,2,15,1,116,0,131,0,221,255, +227,253,193,251,27,251,230,251,72,252,224,250,163,248,140,247,237,247,67,248,89,247,124,245,244,243,194,243,152,244,255,244, +19,244,164,242,15,242,90,242,104,242,188,241,205,240,248,239,137,239,244,239,146,240,9,240,218,238,211,238,207,239,27,240, +82,239,56,238,73,237,2,237,143,237,10,238,188,237,35,237,182,236,37,236,55,235,31,234,33,233,128,232,90,232,148,232, +227,232,208,232,34,232,82,231,238,230,229,230,206,230,72,230,79,229,171,228,26,229,0,230,86,230,66,230,120,230,254,230, +71,231,198,230,182,229,89,229,130,230,123,232,72,234,151,235,31,236,229,235,168,235,188,235,172,235,67,235,193,234,148,234, +139,235,215,237,13,240,244,240,58,241,241,241,215,242,20,243,114,242,139,241,114,241,204,242,214,244,15,246,2,246,161,245, +194,245,35,246,53,246,226,245,137,245,215,245,50,247,195,248,62,249,176,248,57,248,94,248,213,248,29,249,233,248,183,248, +99,249,223,250,138,252,29,254,17,255,232,254,163,254,98,255,94,0,157,0,171,0,36,1,2,2,111,3,255,4,129,5, +10,5,251,4,193,5,205,6,246,7,69,9,131,10,150,11,113,12,235,12,18,13,27,13,255,12,174,12,112,12,197,12, +191,13,194,14,169,15,84,17,236,19,239,21,86,22,30,22,143,22,143,23,35,24,164,23,167,22,175,22,85,24,95,26, +89,27,77,27,108,27,112,28,170,29,253,29,131,29,62,29,171,29,168,30,224,31,160,32,117,32,16,32,86,32,17,33, +122,33,85,33,14,33,68,33,31,34,233,34,178,34,131,33,134,32,177,32,101,33,81,33,123,32,28,32,176,32,181,33, +124,34,128,34,0,34,249,33,105,34,63,34,151,33,144,33,48,34,225,34,174,35,96,36,68,36,78,35,3,34,5,33, +36,33,75,34,28,35,13,35,32,35,199,35,47,36,179,35,89,34,142,32,12,31,81,30,46,30,26,30,138,29,73,28, +239,26,47,26,214,25,54,25,33,24,240,22,49,22,51,22,108,22,255,21,241,20,37,20,18,20,251,19,215,18,213,16, +66,15,225,14,41,15,48,15,111,14,48,13,115,12,145,12,131,12,127,11,3,10,192,8,251,7,204,7,190,7,29,7, +28,6,125,5,80,5,28,5,110,4,2,3,74,1,63,0,13,0,197,255,166,254,244,252,132,251,174,250,221,249,117,248, +160,246,236,244,232,243,217,243,240,243,6,243,143,241,209,240,147,240,201,239,73,238,93,236,127,234,173,233,30,234,152,234, +115,234,102,234,214,234,39,235,201,234,167,233,4,232,122,230,205,229,86,230,87,231,127,231,176,230,46,230,106,230,99,230, +108,229,190,227,210,225,169,224,24,225,71,226,164,226,22,226,164,225,197,225,28,226,250,225,217,224,43,223,82,222,15,223, +100,224,182,224,210,223,229,222,182,222,5,223,63,223,190,222,106,221,182,220,240,221,193,223,234,223,135,222,66,221,3,221, +189,221,168,222,175,222,249,221,17,222,154,223,117,225,111,226,115,226,49,226,56,226,127,226,167,226,120,226,19,226,28,226, +39,227,136,228,229,228,53,228,145,227,146,227,24,228,167,228,151,228,38,228,139,228,243,229,26,231,107,231,130,231,213,231, +98,232,13,233,156,233,243,233,79,234,4,235,59,236,202,237,55,239,56,240,186,240,153,240,34,240,43,240,186,240,38,241, +162,241,207,242,78,244,101,245,252,245,100,246,27,247,90,248,96,249,120,249,109,249,103,250,44,252,173,253,104,254,177,254, +58,255,62,0,46,1,141,1,144,1,204,1,208,2,163,4,97,6,46,7,87,7,185,7,135,8,60,9,48,9,86,8, +166,7,55,8,4,10,227,11,161,12,63,12,15,12,238,12,6,14,51,14,142,13,14,13,158,13,105,15,53,17,147,17, +197,16,15,16,234,15,4,16,228,15,67,15,195,14,90,15,167,16,113,17,100,17,228,16,84,16,58,16,168,16,217,16, +114,16,55,16,233,16,98,18,187,19,32,20,209,19,193,19,48,20,161,20,181,20,69,20,157,19,142,19,35,20,57,20, +100,19,145,18,115,18,204,18,27,19,232,18,27,18,90,17,64,17,136,17,94,17,90,16,11,15,98,14,128,14,199,14, +177,14,230,13,103,12,22,11,147,10,24,10,253,8,0,8,176,7,142,7,63,7,194,6,218,5,152,4,124,3,145,2, +152,1,198,0,77,0,212,255,49,255,227,254,30,255,45,255,131,254,160,253,17,253,152,252,15,252,148,251,231,250,40,250, +34,250,120,250,210,249,141,248,43,248,160,248,231,248,205,248,100,248,169,247,23,247,199,246,3,246,195,244,237,243,236,243, +98,244,171,244,77,244,123,243,232,242,227,242,92,243,236,243,167,243,96,242,128,241,247,241,217,242,20,243,129,242,66,241, +232,239,53,239,232,238,107,238,95,238,86,239,56,240,216,239,191,238,12,238,215,237,158,237,76,237,9,237,236,236,71,237, +66,238,29,239,8,239,112,238,43,238,67,238,145,238,3,239,1,239,90,238,36,238,33,239,131,240,24,241,153,240,177,239, +144,239,173,240,3,242,89,242,196,241,91,241,246,241,64,243,12,244,233,243,165,243,251,243,223,244,217,245,32,246,120,245, +35,245,92,246,83,248,107,249,55,249,90,248,206,247,53,248,5,249,64,249,244,248,244,248,167,249,184,250,51,251,139,250, +207,249,109,250,253,251,234,252,124,252,76,251,196,250,243,251,248,253,242,254,180,254,157,254,89,255,99,0,236,0,124,0, +171,255,195,255,252,0,52,2,169,2,174,2,209,2,80,3,35,4,244,4,66,5,6,5,23,5,70,6,255,7,236,8, +212,8,177,8,61,9,74,10,34,11,57,11,31,11,29,12,93,14,117,16,45,17,244,16,71,17,189,18,28,20,27,20, +91,19,87,19,96,20,186,21,136,22,112,22,58,22,241,22,37,24,175,24,120,24,37,24,64,24,70,25,234,26,222,27, +147,27,216,26,127,26,175,26,248,26,138,26,154,25,205,25,167,27,100,29,87,29,197,27,46,26,209,25,94,26,63,26, +4,25,53,24,244,24,132,26,152,27,163,27,40,27,35,27,182,27,255,27,157,27,54,27,90,27,30,28,77,29,74,30, +123,30,32,30,254,29,77,30,149,30,116,30,36,30,52,30,6,31,97,32,78,33,249,32,236,31,101,31,130,31,116,31, +237,30,8,30,249,28,140,28,32,29,140,29,209,28,148,27,181,26,79,26,59,26,236,25,193,24,84,23,178,22,152,22, +30,22,29,21,232,19,230,18,93,18,228,17,216,16,109,15,73,14,180,13,158,13,123,13,158,12,91,11,184,10,204,10, +185,10,244,9,187,8,215,7,251,7,199,8,40,9,207,8,90,8,47,8,242,7,11,7,127,5,0,4,6,3,128,2, +74,2,16,2,94,1,142,0,56,0,218,255,215,254,200,253,52,253,191,252,117,252,140,252,75,252,72,251,115,250,88,250, +27,250,6,249,95,247,187,245,160,244,105,244,181,244,155,244,232,243,98,243,91,243,32,243,84,242,126,241,222,240,77,240, +248,239,207,239,37,239,255,237,57,237,252,236,191,236,76,236,152,235,187,234,79,234,165,234,15,235,210,234,244,233,27,233, +231,232,7,233,139,232,180,231,164,231,31,232,48,232,254,231,217,231,107,231,9,231,59,231,85,231,229,230,200,230,58,231, +97,231,53,231,100,231,207,231,29,232,141,232,33,233,114,233,146,233,230,233,102,234,209,234,39,235,73,235,3,235,183,234, +225,234,241,234,55,234,88,233,45,233,80,233,72,233,114,233,217,233,24,234,69,234,124,234,122,234,102,234,131,234,109,234, +25,234,40,234,175,234,34,235,90,235,114,235,134,235,218,235,79,236,113,236,136,236,37,237,246,237,115,238,214,238,122,239, +100,240,118,241,78,242,127,242,85,242,162,242,199,243,92,245,174,246,110,247,245,247,171,248,135,249,63,250,150,250,175,250, +38,251,41,252,12,253,129,253,33,254,40,255,31,0,182,0,205,0,100,0,14,0,85,0,222,0,39,1,92,1,238,1, +239,2,221,3,223,3,215,2,198,1,138,1,16,2,216,2,93,3,113,3,184,3,206,4,5,6,57,6,107,5,177,4, +249,4,27,6,232,6,137,6,151,5,78,5,3,6,212,6,211,6,58,6,11,6,147,6,63,7,181,7,14,8,103,8, +233,8,123,9,161,9,99,9,75,9,96,9,141,9,48,10,229,10,169,10,209,9,173,9,97,10,23,11,61,11,143,10, +106,9,232,8,63,9,67,9,140,8,56,8,232,8,189,9,173,9,184,8,161,7,21,7,37,7,80,7,4,7,84,6, +232,5,214,5,106,5,110,4,119,3,201,2,94,2,117,2,186,2,40,2,186,0,173,255,176,255,48,0,68,0,100,255, +196,253,71,252,151,251,121,251,93,251,66,251,141,251,244,251,125,251,8,250,160,248,1,248,21,248,204,248,190,249,252,249, +119,249,18,249,240,248,159,248,63,248,208,247,231,246,216,245,111,245,162,245,10,246,142,246,225,246,179,246,76,246,234,245, +48,245,253,243,5,243,15,243,0,244,249,244,101,245,75,245,184,244,209,243,55,243,30,243,224,242,90,242,32,242,6,242, +117,241,219,240,220,240,13,241,243,240,209,240,189,240,93,240,228,239,230,239,72,240,145,240,195,240,217,240,79,240,68,239, +210,238,94,239,20,240,141,240,13,241,108,241,130,241,174,241,220,241,190,241,236,241,204,242,123,243,88,243,210,242,52,242, +169,241,247,241,82,243,168,244,27,245,230,244,166,244,168,244,194,244,159,244,115,244,204,244,170,245,123,246,209,246,194,246, +220,246,131,247,37,248,248,247,74,247,17,247,134,247,23,248,41,248,187,247,141,247,70,248,87,249,162,249,1,249,98,248, +147,248,146,249,214,250,216,251,60,252,242,251,131,251,150,251,3,252,79,252,190,252,168,253,154,254,32,255,66,255,236,254, +70,254,68,254,88,255,138,0,236,0,209,0,240,0,111,1,7,2,92,2,48,2,175,1,128,1,16,2,254,2,170,3, +18,4,130,4,16,5,211,5,185,6,45,7,215,6,97,6,166,6,210,7,133,9,247,10,139,11,183,11,74,12,23,13, +143,13,212,13,67,14,241,14,204,15,120,16,174,16,232,16,143,17,84,18,6,19,195,19,53,20,55,20,127,20,97,21, +62,22,168,22,162,22,53,22,215,21,26,22,164,22,194,22,165,22,211,22,45,23,75,23,235,22,238,21,212,20,179,20, +202,21,213,22,188,22,241,21,127,21,184,21,56,22,93,22,216,21,115,21,58,22,173,23,41,24,72,23,49,22,255,21, +247,22,108,24,13,25,108,24,187,23,15,24,1,25,145,25,73,25,151,24,122,24,92,25,86,26,108,26,205,25,89,25, +177,25,169,26,33,27,59,26,193,24,60,24,248,24,227,25,237,25,14,25,73,24,98,24,199,24,96,24,18,23,211,21, +158,21,119,22,47,23,138,22,201,20,71,19,207,18,26,19,86,19,194,18,106,17,98,16,148,16,98,17,54,17,130,15, +144,13,239,12,141,13,250,13,76,13,10,12,125,11,51,12,37,13,185,12,206,10,232,8,54,8,95,8,106,8,249,7, +107,7,49,7,67,7,47,7,149,6,136,5,148,4,47,4,39,4,238,3,66,3,101,2,250,1,116,2,47,3,248,2, +237,1,103,1,206,1,38,2,171,1,129,0,59,255,95,254,239,253,116,253,199,252,73,252,49,252,117,252,230,252,245,252, +37,252,206,250,176,249,51,249,68,249,76,249,145,248,72,247,125,246,148,246,196,246,67,246,49,245,87,244,62,244,145,244, +119,244,158,243,140,242,251,241,48,242,172,242,142,242,130,241,82,240,16,240,223,240,203,241,220,241,27,241,99,240,88,240, +211,240,31,241,194,240,30,240,40,240,25,241,240,241,190,241,247,240,187,240,79,241,255,241,54,242,234,241,84,241,3,241, +138,241,120,242,143,242,130,241,86,240,237,239,78,240,223,240,178,240,157,239,250,238,191,239,206,240,185,240,214,239,86,239, +201,239,239,240,196,241,78,241,18,240,154,239,82,240,50,241,73,241,180,240,85,240,231,240,26,242,201,242,78,242,78,241, +31,241,105,242,44,244,181,244,214,243,71,243,80,244,63,246,136,247,125,247,186,246,124,246,76,247,79,248,113,248,0,248, +28,248,14,249,34,250,157,250,58,250,107,249,70,249,68,250,112,251,164,251,254,250,100,250,121,250,43,251,131,251,172,250, +129,249,159,249,249,250,9,252,16,252,127,251,19,251,107,251,97,252,199,252,233,251,201,250,206,250,26,252,168,253,72,254, +166,253,223,252,108,253,19,255,248,255,4,255,74,253,180,252,213,253,104,255,204,255,216,254,252,253,132,254,11,0,15,1, +202,0,230,255,135,255,48,0,84,1,227,1,118,1,211,0,184,0,226,0,195,0,100,0,24,0,31,0,164,0,64,1, +20,1,20,0,121,255,23,0,55,1,155,1,237,0,232,255,128,255,227,255,66,0,225,255,48,255,50,255,11,0,238,0, +57,1,1,1,210,0,39,1,239,1,102,2,199,1,57,0,219,254,170,254,105,255,234,255,142,255,231,254,214,254,131,255, +47,0,216,255,123,254,144,253,46,254,73,255,53,255,246,253,190,252,67,252,139,252,14,253,237,252,35,252,203,251,88,252, +229,252,200,252,67,252,200,251,171,251,227,251,175,251,157,250,163,249,188,249,104,250,185,250,137,250,17,250,199,249,98,250, +151,251,2,252,54,251,82,250,4,250,218,249,151,249,112,249,121,249,217,249,197,250,199,251,248,251,54,251,67,250,228,249, +54,250,182,250,210,250,148,250,106,250,100,250,28,250,107,249,179,248,96,248,100,248,97,248,74,248,114,248,238,248,124,249, +227,249,248,249,156,249,45,249,73,249,207,249,243,249,107,249,178,248,84,248,145,248,43,249,74,249,111,248,113,247,124,247, +111,248,67,249,116,249,75,249,77,249,184,249,17,250,143,249,108,248,229,247,142,248,160,249,43,250,12,250,187,249,205,249, +99,250,213,250,122,250,196,249,187,249,115,250,242,250,169,250,37,250,11,250,96,250,233,250,85,251,45,251,151,250,139,250, +72,251,198,251,149,251,149,251,53,252,198,252,199,252,88,252,207,251,209,251,209,252,1,254,18,254,30,253,115,252,221,252, +28,254,112,255,2,0,135,255,203,254,206,254,95,255,118,255,228,254,140,254,14,255,248,255,115,0,13,0,19,255,105,254, +177,254,128,255,2,0,56,0,205,0,237,1,19,3,186,3,174,3,248,2,5,2,112,1,61,1,247,0,188,0,69,1, +184,2,75,4,6,5,96,4,196,2,168,1,5,2,246,2,26,3,188,2,24,3,81,4,106,5,171,5,69,5,253,4, +93,5,25,6,121,6,79,6,48,6,141,6,6,7,10,7,188,6,148,6,155,6,217,6,174,7,221,8,164,9,29,10, +209,10,75,11,231,10,42,10,206,9,233,9,146,10,154,11,6,12,137,11,66,11,198,11,43,12,229,11,136,11,136,11, +209,11,108,12,50,13,141,13,98,13,61,13,77,13,42,13,173,12,28,12,169,11,114,11,155,11,9,12,101,12,105,12, +12,12,167,11,205,11,127,12,10,13,25,13,7,13,31,13,96,13,190,13,22,14,83,14,150,14,219,14,244,14,3,15, +21,15,245,14,212,14,29,15,128,15,147,15,158,15,185,15,131,15,55,15,96,15,204,15,22,16,97,16,164,16,173,16, +202,16,39,17,66,17,229,16,137,16,73,16,183,15,211,14,34,14,1,14,113,14,20,15,53,15,128,14,152,13,50,13, +237,12,30,12,40,11,207,10,16,11,138,11,0,12,6,12,101,11,174,10,98,10,45,10,157,9,187,8,220,7,150,7, +88,8,173,9,161,10,239,10,249,10,228,10,107,10,106,9,68,8,196,7,89,8,101,9,197,9,57,9,201,8,73,9, +4,10,216,9,7,9,162,8,231,8,89,9,149,9,74,9,131,8,1,8,73,8,203,8,179,8,216,7,193,6,73,6, +229,6,240,7,73,8,124,7,15,6,251,4,170,4,91,4,76,3,12,2,172,1,71,2,37,3,96,3,118,2,22,1, +142,0,243,0,54,1,252,0,192,0,184,0,212,0,252,0,216,0,62,0,168,255,125,255,106,255,14,255,150,254,113,254, +214,254,170,255,75,0,229,255,141,254,118,253,102,253,201,253,193,253,58,253,182,252,205,252,126,253,218,253,62,253,125,252, +143,252,37,253,145,253,145,253,247,252,17,252,185,251,252,251,4,252,163,251,79,251,39,251,25,251,17,251,177,250,249,249, +160,249,250,249,138,250,206,250,144,250,226,249,85,249,96,249,201,249,6,250,202,249,31,249,130,248,121,248,219,248,40,249, +68,249,93,249,113,249,68,249,136,248,78,247,75,246,39,246,176,246,36,247,242,246,44,246,109,245,36,245,1,245,116,244, +142,243,249,242,47,243,222,243,84,244,87,244,25,244,198,243,147,243,147,243,80,243,125,242,212,241,21,242,242,242,202,243, +77,244,67,244,206,243,113,243,70,243,0,243,164,242,106,242,111,242,189,242,11,243,236,242,135,242,62,242,245,241,161,241, +145,241,186,241,220,241,250,241,2,242,212,241,196,241,243,241,206,241,20,241,58,240,158,239,70,239,47,239,50,239,27,239, +222,238,127,238,35,238,29,238,120,238,211,238,213,238,122,238,40,238,111,238,45,239,146,239,113,239,130,239,22,240,181,240, +11,241,84,241,221,241,135,242,251,242,26,243,241,242,138,242,53,242,97,242,220,242,48,243,147,243,70,244,220,244,16,245, +37,245,35,245,249,244,227,244,216,244,139,244,66,244,124,244,33,245,200,245,25,246,221,245,100,245,112,245,38,246,180,246, +92,246,141,245,112,245,66,246,11,247,46,247,3,247,242,246,89,247,119,248,129,249,115,249,245,248,41,249,171,249,198,249, +203,249,239,249,40,250,29,251,236,252,90,254,181,254,195,254,80,255,98,0,146,1,56,2,12,2,195,1,42,2,238,2, +1,3,21,2,38,1,76,1,113,2,163,3,71,4,89,4,66,4,155,4,112,5,229,5,94,5,119,4,59,4,206,4, +120,5,172,5,149,5,174,5,64,6,44,7,139,7,123,6,243,4,230,4,77,6,92,7,99,7,8,7,201,6,217,6, +21,7,206,6,52,6,149,6,16,8,79,9,167,9,89,9,178,8,103,8,249,8,143,9,38,9,48,8,182,7,35,8, +53,9,39,10,79,10,253,9,254,9,103,10,144,10,1,10,24,9,188,8,33,9,130,9,59,9,94,8,78,7,157,6, +174,6,29,7,66,7,37,7,36,7,64,7,70,7,7,7,152,6,96,6,134,6,169,6,103,6,161,5,132,4,185,3, +208,3,74,4,79,4,202,3,17,3,101,2,17,2,14,2,239,1,163,1,116,1,89,1,52,1,36,1,46,1,46,1, +36,1,55,1,113,1,121,1,203,0,142,255,135,254,40,254,104,254,47,255,253,255,22,0,109,255,120,254,169,253,123,253, +203,253,147,253,163,252,44,252,144,252,179,252,189,251,228,249,41,248,197,247,147,248,227,248,27,248,91,247,52,247,44,247, +16,247,205,246,52,246,171,245,153,245,142,245,42,245,192,244,140,244,128,244,169,244,249,244,36,245,255,244,189,244,208,244, +95,245,209,245,144,245,44,245,176,245,4,247,0,248,43,248,124,248,237,249,243,251,35,253,231,252,231,251,60,251,138,251, +100,252,212,252,180,252,147,252,173,252,21,253,215,253,100,254,71,254,36,254,164,254,133,255,57,0,17,0,154,254,5,253, +15,253,44,254,115,254,176,253,10,253,49,253,32,254,36,255,64,255,184,254,207,254,167,255,28,0,144,255,162,254,128,254, +172,255,79,1,35,2,234,1,113,1,166,1,234,2,128,4,73,5,43,5,242,4,55,5,30,6,27,7,27,7,87,6, +172,6,191,8,208,10,89,11,200,10,85,10,211,10,77,12,204,13,27,14,63,13,125,12,173,12,57,13,50,13,154,12, +26,12,48,12,253,12,230,13,218,13,239,12,135,12,64,13,103,14,48,15,7,15,215,13,225,12,98,13,166,14,78,15, +77,15,60,15,91,15,155,15,131,15,166,14,186,13,247,13,108,15,239,16,93,17,195,16,86,16,189,16,49,17,255,16, +134,16,85,16,212,16,19,18,248,18,97,18,49,17,19,17,255,17,227,18,51,19,222,18,101,18,222,18,98,20,119,21, +253,20,153,19,193,18,27,19,29,20,187,20,100,20,153,19,166,19,250,20,251,21,21,21,67,19,141,18,45,19,252,19, +12,20,243,18,94,17,231,16,196,17,64,18,116,17,87,16,241,15,91,16,5,17,7,17,231,15,103,14,168,13,173,13, +101,13,58,12,250,10,175,10,52,11,162,11,80,11,41,10,253,8,0,9,236,9,44,10,131,9,72,9,17,10,55,11, +200,11,10,11,105,9,167,8,146,9,234,10,112,11,81,11,60,11,137,11,26,12,99,12,17,12,119,11,16,11,14,11, +64,11,42,11,193,10,124,10,78,10,183,9,205,8,229,7,254,6,107,6,159,6,17,7,203,6,208,5,190,4,188,3, +151,2,81,1,62,0,155,255,91,255,115,255,174,255,63,255,188,253,251,251,198,250,224,249,22,249,146,248,55,248,14,248, +76,248,74,248,76,247,20,246,180,245,245,245,28,246,238,245,137,245,96,245,219,245,133,246,132,246,178,245,153,244,211,243, +152,243,155,243,147,243,171,243,7,244,128,244,213,244,124,244,32,243,148,241,255,240,60,241,81,241,208,240,0,240,104,239, +78,239,51,239,104,238,54,237,137,236,170,236,220,236,70,236,16,235,57,234,43,234,54,234,180,233,168,232,154,231,69,231, +150,231,94,231,56,230,71,229,13,229,210,228,97,228,2,228,127,227,232,226,212,226,35,227,24,227,138,226,211,225,105,225, +182,225,158,226,102,227,139,227,44,227,211,226,223,226,239,226,127,226,26,226,166,226,210,227,139,228,89,228,141,227,230,226, +12,227,186,227,35,228,30,228,28,228,113,228,58,229,85,230,115,231,131,232,127,233,253,233,190,233,28,233,142,232,106,232, +232,232,225,233,254,234,22,236,253,236,133,237,197,237,210,237,167,237,141,237,229,237,172,238,184,239,157,240,185,240,75,240, +112,240,78,241,241,241,247,241,215,241,32,242,42,243,170,244,157,245,136,245,9,245,201,244,248,244,172,245,205,246,0,248, +3,249,235,249,235,250,232,251,89,252,4,252,120,251,108,251,55,252,187,253,64,255,53,0,23,1,101,2,111,3,186,3, +254,3,199,4,216,5,235,6,179,7,12,8,198,8,133,10,71,12,205,12,100,12,40,12,156,12,128,13,60,14,132,14, +165,14,253,14,116,15,151,15,26,15,139,14,239,14,34,16,218,16,182,16,133,16,194,16,101,17,62,18,138,18,214,17, +58,17,214,17,241,18,50,19,128,18,188,17,198,17,234,18,89,20,171,20,146,19,96,18,89,18,49,19,218,19,230,19, +181,19,217,19,132,20,25,21,206,20,15,20,244,19,95,20,111,20,29,20,179,19,58,19,48,19,217,19,67,20,195,19, +14,19,168,18,56,18,158,17,253,16,120,16,131,16,42,17,141,17,30,17,48,16,18,15,27,14,223,13,31,14,233,13, +6,13,11,12,132,11,171,11,13,12,195,11,181,10,177,9,30,9,211,8,154,8,43,8,130,7,36,7,40,7,168,6, +29,5,46,3,179,1,208,0,58,0,165,255,7,255,163,254,181,254,224,254,94,254,37,253,38,252,227,251,174,251,227,250, +196,249,219,248,128,248,182,248,219,248,65,248,26,247,22,246,125,245,85,245,120,245,103,245,228,244,91,244,8,244,103,243, +240,241,249,239,138,238,73,238,199,238,28,239,177,238,141,237,115,236,35,236,251,235,224,234,89,233,184,232,229,232,9,233, +25,233,79,233,175,233,64,234,159,234,103,234,9,234,174,233,130,232,186,230,2,230,18,231,21,233,33,235,109,236,141,236, +88,236,212,236,197,237,155,238,80,239,163,239,118,239,174,239,232,240,63,242,158,242,25,242,112,241,87,241,240,241,80,242, +136,241,117,240,224,240,170,242,201,243,59,243,3,242,84,241,85,241,100,241,206,240,3,240,138,240,125,242,163,243,136,242, +166,240,44,240,111,241,72,243,143,244,241,244,251,244,104,245,161,246,111,248,216,249,33,250,14,250,217,250,83,252,129,253, +31,254,160,254,212,255,10,2,220,3,155,3,54,2,17,2,98,3,137,4,217,4,241,4,170,5,121,7,171,9,186,10, +103,10,45,10,6,11,63,12,204,12,115,12,165,11,33,11,150,11,230,12,254,13,18,14,140,13,70,13,137,13,56,14, +249,14,72,15,100,15,83,16,5,18,5,19,190,18,74,18,198,18,46,20,162,21,31,22,164,21,138,21,199,22,112,24, +238,24,9,24,4,23,35,23,106,24,204,25,86,26,23,26,13,26,0,27,90,28,163,28,99,27,203,25,73,25,34,26, +102,27,0,28,246,27,99,28,213,29,78,31,132,31,122,30,124,29,172,29,219,30,234,31,71,32,132,32,131,33,84,35, +232,36,38,37,64,36,100,35,45,35,80,35,97,35,46,35,7,35,121,35,251,35,56,35,112,33,91,32,114,32,213,32, +34,33,54,33,164,32,187,31,50,31,177,30,175,29,165,28,237,27,41,27,91,26,200,25,227,24,77,23,250,21,195,21, +233,21,74,21,21,20,56,19,235,18,194,18,98,18,191,17,67,17,139,17,81,18,102,18,120,17,180,16,240,16,166,17, +13,18,243,17,120,17,238,16,203,16,8,17,19,17,145,16,189,15,224,14,1,14,31,13,63,12,94,11,187,10,158,10, +131,10,99,9,58,7,32,5,193,3,215,2,239,1,187,0,74,255,55,254,176,253,241,252,142,251,63,250,147,249,26,249, +44,248,186,246,79,245,124,244,61,244,27,244,177,243,188,242,70,241,244,239,36,239,66,238,11,237,71,236,71,236,111,236, +114,236,85,236,188,235,162,234,197,233,112,233,38,233,173,232,72,232,27,232,10,232,220,231,85,231,132,230,177,229,255,228, +84,228,145,227,167,226,192,225,78,225,148,225,26,226,250,225,198,224,18,223,249,221,243,221,90,222,86,222,1,222,8,222, +134,222,220,222,148,222,209,221,50,221,94,221,54,222,184,222,98,222,224,221,210,221,4,222,50,222,42,222,146,221,160,220, +39,220,56,220,19,220,161,219,132,219,254,219,153,220,162,220,202,219,168,218,44,218,112,218,224,218,46,219,123,219,240,219, +169,220,131,221,41,222,149,222,20,223,190,223,91,224,175,224,181,224,232,224,214,225,72,227,131,228,105,229,85,230,64,231, +5,232,225,232,0,234,49,235,120,236,243,237,39,239,137,239,133,239,246,239,219,240,177,241,101,242,22,243,167,243,48,244, +242,244,185,245,48,246,125,246,197,246,227,246,232,246,254,246,244,246,217,246,49,247,17,248,232,248,86,249,94,249,64,249, +169,249,18,251,209,252,229,253,125,254,107,255,190,0,245,1,221,2,138,3,52,4,96,5,53,7,251,8,255,9,149,10, +103,11,131,12,146,13,97,14,247,14,148,15,110,16,70,17,221,17,116,18,65,19,13,20,191,20,93,21,185,21,229,21, +86,22,3,23,100,23,119,23,170,23,26,24,181,24,110,25,253,25,39,26,57,26,145,26,254,26,9,27,152,26,31,26, +51,26,236,26,223,27,172,28,54,29,99,29,54,29,226,28,155,28,160,28,44,29,12,30,180,30,215,30,124,30,178,29, +189,28,11,28,177,27,120,27,67,27,1,27,164,26,98,26,100,26,67,26,124,25,50,24,227,22,228,21,62,21,186,20, +8,20,84,19,43,19,111,19,62,19,27,18,160,16,195,15,211,15,58,16,45,16,149,15,237,14,122,14,47,14,244,13, +141,13,186,12,196,11,29,11,169,10,34,10,128,9,132,8,250,6,114,5,130,4,230,3,37,3,46,2,5,1,237,255, +85,255,234,254,240,253,164,252,178,251,189,250,26,249,48,247,218,245,80,245,3,245,36,244,119,242,208,240,246,239,160,239, +50,239,136,238,138,237,57,236,48,235,25,235,189,235,54,236,153,235,214,233,47,232,237,231,129,232,125,232,226,231,179,231, +255,231,22,232,213,231,120,231,20,231,192,230,105,230,182,229,164,228,182,227,39,227,171,226,20,226,171,225,219,225,161,226, +70,227,5,227,229,225,95,224,195,222,110,221,229,220,45,221,217,221,150,222,28,223,40,223,237,222,192,222,174,222,38,223, +215,224,65,227,231,228,33,229,124,228,193,227,161,227,63,228,195,228,193,228,97,229,121,231,231,233,85,235,240,235,92,236, +195,236,87,237,3,238,26,238,189,237,86,238,99,240,84,242,206,242,93,242,22,242,40,242,108,242,222,242,73,243,143,243, +15,244,229,244,87,245,222,244,245,243,114,243,175,243,133,244,136,245,100,246,70,247,135,248,199,249,58,250,209,249,142,249, +97,250,33,252,184,253,112,254,222,254,41,0,106,2,98,4,254,4,177,4,228,4,61,6,11,8,150,9,29,11,247,12, +161,14,117,15,127,15,32,15,200,14,41,15,115,16,188,17,59,18,100,18,238,18,218,19,225,20,173,21,220,21,209,21, +172,22,152,24,62,26,149,26,11,26,166,25,251,25,8,27,76,28,26,29,69,29,91,29,238,29,222,30,112,31,52,31, +186,30,21,31,140,32,31,34,184,34,185,34,145,35,126,37,226,38,112,38,246,36,45,36,213,36,100,38,187,39,27,40, +247,39,105,40,123,41,248,41,57,41,5,40,106,39,177,39,121,40,8,41,165,40,105,39,145,38,32,39,73,40,88,40, +59,39,193,38,237,39,131,41,187,41,75,40,108,38,145,37,234,37,30,38,75,37,152,36,111,37,29,39,211,39,1,39, +144,37,149,36,106,36,109,36,213,35,219,34,56,34,212,33,41,33,22,32,126,30,109,28,227,26,222,26,156,27,121,27, +11,26,107,24,228,23,159,24,47,25,10,24,166,21,255,19,226,19,37,20,107,19,187,17,72,16,237,15,7,16,87,15, +215,13,131,12,211,11,128,11,42,11,113,10,67,9,58,8,204,7,113,7,100,6,178,4,35,3,118,2,172,2,223,2, +69,2,15,1,205,255,183,254,205,253,204,252,56,251,76,249,229,247,22,247,38,246,214,244,81,243,163,241,53,240,125,239, +233,238,213,237,191,236,254,235,232,234,84,233,243,231,197,230,112,229,120,228,69,228,52,228,210,227,95,227,217,226,69,226, +43,226,143,226,167,226,76,226,19,226,240,225,73,225,29,224,241,222,56,222,48,222,171,222,234,222,130,222,240,221,204,221, +224,221,145,221,226,220,126,220,196,220,54,221,36,221,154,220,58,220,85,220,136,220,63,220,104,219,160,218,137,218,5,219, +115,219,101,219,241,218,139,218,157,218,223,218,109,218,5,217,188,215,209,215,38,217,116,218,188,218,51,218,209,217,39,218, +218,218,70,219,120,219,4,220,9,221,240,221,73,222,93,222,154,222,246,222,46,223,51,223,53,223,149,223,168,224,26,226, +26,227,100,227,128,227,199,227,23,228,105,228,224,228,123,229,56,230,21,231,221,231,122,232,31,233,222,233,164,234,157,235, +213,236,228,237,192,238,232,239,74,241,76,242,14,243,17,244,243,244,16,245,196,244,210,244,102,245,97,246,154,247,171,248, +128,249,178,250,102,252,154,253,167,253,93,253,189,253,163,254,129,255,84,0,69,1,68,2,86,3,114,4,71,5,203,5, +134,6,190,7,4,9,238,9,120,10,200,10,59,11,28,12,240,12,243,12,117,12,141,12,157,13,37,15,150,16,156,17, +80,18,83,19,202,20,188,21,124,21,244,20,127,21,38,23,186,24,62,25,211,24,110,24,217,24,227,25,174,26,173,26, +91,26,186,26,9,28,70,29,110,29,155,28,151,27,18,27,90,27,252,27,239,27,0,27,86,26,235,26,68,28,43,29, +1,29,72,28,18,28,165,28,1,29,119,28,204,27,228,27,115,28,172,28,69,28,127,27,215,26,153,26,137,26,82,26, +231,25,64,25,111,24,221,23,170,23,79,23,134,22,163,21,220,20,76,20,18,20,181,19,161,18,131,17,86,17,148,17, +38,17,31,16,13,15,39,14,169,13,93,13,75,12,75,10,160,8,243,7,115,7,90,6,213,4,129,3,250,2,45,3, +6,3,219,1,106,0,148,255,49,255,193,254,240,253,162,252,123,251,109,251,26,252,233,251,20,250,143,247,222,245,154,245, +255,245,213,245,233,244,7,244,174,243,114,243,133,242,139,240,97,238,140,237,37,238,99,238,54,237,172,235,253,234,232,234, +135,234,104,233,224,231,1,231,95,231,241,231,125,231,143,230,114,230,13,231,83,231,213,230,252,229,93,229,67,229,94,229, +15,229,81,228,183,227,115,227,66,227,28,227,7,227,164,226,222,225,141,225,109,226,224,227,165,228,55,228,3,227,234,225, +189,225,131,226,100,227,232,227,111,228,7,229,56,229,80,229,248,229,142,230,235,229,126,228,195,227,72,228,115,229,109,230, +162,230,110,230,226,230,39,232,44,233,123,233,175,233,243,233,236,233,246,233,184,234,223,235,163,236,218,236,212,236,227,236, +92,237,63,238,252,238,60,239,122,239,63,240,64,241,213,241,235,241,2,242,124,242,46,243,141,243,85,243,15,243,157,243, +21,245,159,246,154,247,38,248,145,248,11,249,224,249,34,251,94,252,49,253,195,253,83,254,254,254,243,255,67,1,174,2, +28,4,180,5,59,7,54,8,178,8,33,9,141,9,191,9,228,9,94,10,54,11,69,12,105,13,106,14,34,15,232,15, +47,17,167,18,131,19,161,19,164,19,8,20,180,20,86,21,194,21,41,22,251,22,45,24,12,25,73,25,109,25,204,25, +40,26,138,26,54,27,253,27,139,28,0,29,136,29,28,30,210,30,182,31,154,32,121,33,111,34,43,35,101,35,149,35, +64,36,34,37,209,37,121,38,110,39,148,40,109,41,152,41,77,41,52,41,150,41,13,42,44,42,16,42,60,42,239,42, +148,43,100,43,163,42,55,42,57,42,37,42,239,41,151,41,219,40,20,40,229,39,224,39,86,39,202,38,230,38,71,39, +99,39,42,39,120,38,125,37,249,36,227,36,89,36,92,35,206,34,215,34,221,34,104,34,84,33,62,32,79,32,119,33, +17,34,76,33,46,32,197,31,4,32,70,32,201,31,110,30,78,29,102,29,31,30,85,30,187,29,140,28,61,27,129,26, +102,26,248,25,152,24,221,22,183,21,144,21,233,21,126,21,144,19,31,17,156,15,12,15,115,14,83,13,198,11,43,10, +22,9,191,8,121,8,129,7,249,5,139,4,117,3,109,2,55,1,248,255,8,255,142,254,67,254,149,253,54,252,155,250, +126,249,211,248,236,247,160,246,116,245,209,244,166,244,104,244,69,243,41,241,100,239,25,239,155,239,120,239,118,238,110,237, +5,237,28,237,237,236,177,235,185,233,92,232,89,232,222,232,160,232,103,231,45,230,224,229,63,230,28,230,213,228,37,227, +65,226,115,226,214,226,131,226,163,225,11,225,18,225,83,225,84,225,197,224,147,223,69,222,172,221,228,221,42,222,227,221, +66,221,218,220,234,220,233,220,31,220,226,218,111,218,17,219,132,219,211,218,145,217,222,216,11,217,145,217,173,217,17,217, +91,216,127,216,126,217,84,218,84,218,233,217,207,217,69,218,12,219,199,219,52,220,108,220,231,220,234,221,13,223,163,223, +160,223,187,223,159,224,5,226,213,226,111,226,142,225,148,225,226,226,121,228,60,229,46,229,55,229,232,229,241,230,195,231, +52,232,114,232,170,232,253,232,123,233,8,234,112,234,158,234,183,234,19,235,230,235,231,236,141,237,183,237,183,237,220,237, +60,238,220,238,193,239,216,240,223,241,121,242,169,242,246,242,202,243,4,245,101,246,209,247,35,249,82,250,133,251,136,252, +244,252,21,253,177,253,243,254,102,0,168,1,145,2,90,3,150,4,63,6,97,7,114,7,24,7,40,7,221,7,228,8, +121,9,66,9,55,9,84,10,5,12,42,13,158,13,148,13,42,13,22,13,216,13,149,14,131,14,81,14,211,14,169,15, +38,16,30,16,195,15,172,15,69,16,12,17,69,17,27,17,22,17,74,17,156,17,210,17,129,17,200,16,121,16,233,16, +166,17,111,18,78,19,17,20,144,20,202,20,127,20,138,19,161,18,185,18,239,19,119,21,97,22,92,22,237,21,156,21, +60,21,127,20,177,19,97,19,212,19,225,20,183,21,101,21,45,20,76,19,53,19,43,19,148,18,152,17,187,16,166,16, +131,17,58,18,137,17,185,15,59,14,203,13,223,13,120,13,20,12,73,10,80,9,109,9,109,9,74,8,130,6,26,5, +52,4,79,3,82,2,142,1,47,1,7,1,170,0,161,255,13,254,227,252,222,252,114,253,122,253,130,252,243,250,163,249, +111,249,97,250,33,251,94,250,166,248,181,247,37,248,212,248,98,248,190,246,51,245,249,244,189,245,13,246,52,245,235,243, +64,243,132,243,43,244,63,244,69,243,254,241,157,241,25,242,24,242,195,240,249,238,91,238,109,239,223,240,237,240,87,239, +183,237,150,237,168,238,70,239,113,238,210,236,194,235,168,235,198,235,86,235,106,234,178,233,195,233,112,234,210,234,103,234, +247,233,126,234,117,235,108,235,48,234,13,233,25,233,43,234,79,235,148,235,203,234,216,233,186,233,61,234,78,234,172,233, +97,233,83,234,2,236,8,237,175,236,165,235,34,235,157,235,116,236,205,236,181,236,19,237,98,238,9,240,27,241,60,241, +182,240,82,240,234,240,85,242,86,243,65,243,248,242,153,243,10,245,62,246,90,246,158,245,82,245,70,246,165,247,19,248, +140,247,29,247,112,247,93,248,50,249,50,249,137,248,106,248,145,249,64,251,47,252,240,251,56,251,28,251,239,251,246,252, +118,253,139,253,176,253,36,254,227,254,131,255,152,255,136,255,9,0,205,0,11,1,250,0,111,1,178,2,115,4,225,5, +9,6,74,5,95,5,234,6,166,8,161,9,70,10,32,11,100,12,11,14,67,15,29,15,86,14,157,14,58,16,34,18, +135,19,46,20,91,20,233,20,46,22,67,23,124,23,145,23,80,24,102,25,17,26,11,26,184,25,2,26,96,27,227,28, +44,29,68,28,156,27,62,28,172,29,141,30,57,30,119,29,106,29,253,29,20,30,33,29,230,27,186,27,42,29,23,31, +145,31,243,29,194,27,255,26,252,27,57,29,42,29,254,27,113,27,182,28,219,30,226,31,32,31,243,29,19,30,153,31, +245,32,233,32,10,32,227,31,246,32,87,34,235,34,112,34,151,33,95,33,35,34,49,35,148,35,25,35,107,34,89,34, +240,34,97,35,242,34,252,33,115,33,180,33,38,34,230,33,158,32,10,31,105,30,243,30,90,31,124,30,212,28,144,27, +235,26,65,26,43,25,242,23,37,23,3,23,42,23,212,22,158,21,30,20,81,19,92,19,61,19,34,18,134,16,134,15, +143,15,31,16,72,16,107,15,14,14,156,13,110,14,234,14,158,13,106,11,97,10,32,11,64,12,11,12,91,10,186,8, +135,8,40,9,207,8,226,6,179,4,212,3,87,4,207,4,228,3,212,1,45,0,233,255,76,0,9,0,224,254,138,253, +186,252,161,252,252,252,28,253,95,252,1,251,232,249,83,249,141,248,68,247,46,246,237,245,52,246,48,246,79,245,186,243, +117,242,97,242,250,242,6,243,79,242,151,241,44,241,192,240,36,240,87,239,103,238,168,237,96,237,53,237,166,236,180,235, +189,234,46,234,77,234,193,234,159,234,127,233,16,232,48,231,245,230,220,230,139,230,56,230,100,230,16,231,128,231,3,231, +189,229,164,228,189,228,9,230,86,231,160,231,55,231,240,230,10,231,128,231,72,232,205,232,138,232,25,232,77,232,222,232, +69,233,200,233,159,234,74,235,84,235,199,234,212,233,230,232,130,232,147,232,157,232,159,232,222,232,49,233,70,233,26,233, +202,232,143,232,186,232,66,233,182,233,215,233,202,233,214,233,72,234,246,234,15,235,51,234,110,233,226,233,62,235,105,236, +250,236,90,237,17,238,40,239,23,240,105,240,112,240,209,240,215,241,108,243,36,245,71,246,172,246,249,246,148,247,68,248, +18,249,58,250,86,251,224,251,245,251,232,251,238,251,111,252,110,253,10,254,202,253,111,253,193,253,137,254,33,255,21,255, +127,254,29,254,110,254,215,254,162,254,55,254,103,254,67,255,52,0,133,0,220,255,225,254,187,254,165,255,197,0,113,1, +176,1,179,1,185,1,20,2,186,2,69,3,136,3,194,3,57,4,219,4,69,5,41,5,179,4,95,4,138,4,30,5, +173,5,242,5,40,6,156,6,61,7,235,7,136,8,143,8,179,7,223,6,39,7,27,8,146,8,91,8,251,7,216,7, +34,8,132,8,48,8,63,7,236,6,152,7,50,8,32,8,223,7,182,7,104,7,2,7,183,6,134,6,147,6,15,7, +160,7,171,7,48,7,191,6,172,6,167,6,33,6,1,5,228,3,150,3,45,4,192,4,81,4,244,2,176,1,23,1, +207,0,113,0,237,255,41,255,45,254,119,253,82,253,106,253,86,253,251,252,75,252,113,251,249,250,35,251,141,251,187,251, +117,251,183,250,226,249,148,249,223,249,46,250,45,250,56,250,165,250,54,251,110,251,20,251,73,250,107,249,0,249,79,249, +220,249,233,249,136,249,95,249,135,249,152,249,138,249,115,249,2,249,46,248,117,247,5,247,163,246,118,246,172,246,214,246, +126,246,184,245,191,244,209,243,137,243,70,244,94,245,192,245,241,244,48,243,65,241,35,240,60,240,213,240,3,241,179,240, +117,240,161,240,49,241,214,241,7,242,155,241,60,241,146,241,69,242,163,242,173,242,169,242,137,242,114,242,196,242,56,243, +28,243,136,242,67,242,202,242,255,243,82,245,13,246,16,246,245,245,9,246,25,246,45,246,120,246,209,246,1,247,4,247, +228,246,1,247,206,247,175,248,157,248,19,248,110,248,148,249,48,250,182,249,192,248,37,248,76,248,192,248,185,248,80,248, +39,248,61,248,91,248,211,248,142,249,193,249,71,249,210,248,210,248,57,249,197,249,242,249,140,249,39,249,41,249,83,249, +164,249,108,250,112,251,51,252,173,252,21,253,172,253,153,254,102,255,90,255,173,254,68,254,117,254,252,254,150,255,26,0, +159,0,96,1,5,2,27,2,50,2,244,2,219,3,55,4,79,4,129,4,186,4,238,4,244,4,164,4,147,4,70,5, +240,5,218,5,214,5,171,6,181,7,30,8,223,7,101,7,79,7,10,8,18,9,132,9,100,9,106,9,22,10,79,11, +65,12,39,12,132,11,154,11,152,12,183,13,123,14,204,14,205,14,23,15,220,15,72,16,213,15,44,15,249,14,65,15, +224,15,119,16,147,16,146,16,55,17,38,18,73,18,111,17,114,16,16,16,73,16,152,16,152,16,117,16,125,16,157,16, +160,16,121,16,67,16,83,16,255,16,20,18,2,19,104,19,41,19,130,18,53,18,160,18,40,19,65,19,38,19,16,19, +47,19,249,19,29,21,111,21,244,20,14,21,6,22,191,22,179,22,61,22,175,21,111,21,202,21,35,22,188,21,28,21, +67,21,37,22,223,22,210,22,7,22,0,21,98,20,96,20,114,20,225,19,211,18,90,18,246,18,177,19,141,19,196,18, +220,17,4,17,166,16,0,17,88,17,18,17,156,16,88,16,6,16,167,15,76,15,122,14,34,13,41,12,3,12,58,12, +132,12,238,12,24,13,143,12,126,11,116,10,202,9,116,9,61,9,29,9,23,9,252,8,179,8,100,8,248,7,57,7, +115,6,14,6,236,5,241,5,74,6,202,6,20,7,54,7,30,7,109,6,89,5,142,4,59,4,105,4,69,5,72,6, +125,6,248,5,125,5,39,5,168,4,22,4,158,3,87,3,97,3,138,3,106,3,243,2,73,2,97,1,86,0,98,255, +153,254,31,254,19,254,19,254,206,253,150,253,93,253,132,252,39,251,247,249,242,248,232,247,65,247,29,247,60,247,180,247, +62,248,232,247,195,246,3,246,7,246,65,246,131,246,170,246,111,246,96,246,33,247,8,248,50,248,202,247,61,247,189,246, +167,246,0,247,81,247,169,247,95,248,16,249,79,249,72,249,247,248,81,248,246,247,31,248,252,247,61,247,150,246,96,246, +127,246,237,246,54,247,174,246,165,245,224,244,109,244,24,244,245,243,223,243,167,243,131,243,138,243,120,243,43,243,139,242, +163,241,28,241,137,241,102,242,235,242,30,243,97,243,235,243,183,244,37,245,166,244,254,243,53,244,233,244,72,245,113,245, +166,245,234,245,157,246,180,247,39,248,180,247,112,247,202,247,26,248,23,248,20,248,73,248,234,248,190,249,198,249,136,248, +245,246,41,246,78,246,250,246,153,247,200,247,213,247,58,248,157,248,64,248,255,246,106,245,93,244,103,244,52,245,243,245, +100,246,184,246,225,246,195,246,115,246,6,246,177,245,207,245,70,246,161,246,219,246,38,247,90,247,86,247,40,247,164,246, +195,245,38,245,111,245,138,246,230,247,208,248,218,248,101,248,54,248,115,248,160,248,89,248,164,247,6,247,55,247,45,248, +7,249,52,249,229,248,128,248,102,248,157,248,151,248,78,248,221,248,167,250,80,252,168,252,12,252,79,251,225,250,248,250, +59,251,252,250,128,250,218,250,56,252,135,253,219,253,84,253,175,252,102,252,65,252,224,251,102,251,60,251,144,251,45,252, +110,252,192,251,150,250,7,250,81,250,181,250,162,250,25,250,121,249,92,249,218,249,15,250,84,249,73,248,250,247,164,248, +152,249,218,249,48,249,162,248,53,249,151,250,206,251,115,252,187,252,35,253,246,253,181,254,169,254,36,254,0,254,110,254, +51,255,5,0,87,0,35,0,119,0,201,1,7,3,51,3,132,2,198,1,220,1,35,3,119,4,88,4,21,3,40,2, +10,2,56,2,32,2,108,1,135,0,134,0,122,1,32,2,213,1,56,1,201,0,127,0,73,0,253,255,131,255,69,255, +178,255,146,0,83,1,138,1,29,1,111,0,15,0,11,0,34,0,60,0,102,0,222,0,202,1,122,2,7,2,245,0, +165,0,83,1,53,2,190,2,171,2,37,2,18,2,190,2,31,3,162,2,13,2,228,1,241,1,51,2,110,2,255,1, +63,1,62,1,218,1,22,2,211,1,135,1,101,1,169,1,73,2,129,2,251,1,133,1,161,1,210,1,180,1,105,1, +27,1,0,1,63,1,121,1,44,1,163,0,159,0,26,1,43,1,73,0,51,255,248,254,123,255,222,255,222,255,186,255, +111,255,25,255,7,255,228,254,61,254,168,253,216,253,68,254,50,254,208,253,100,253,228,252,166,252,247,252,93,253,107,253, +110,253,117,253,0,253,33,252,153,251,199,251,110,252,85,253,69,254,193,254,109,254,124,253,108,252,144,251,22,251,6,251, +11,251,209,250,172,250,14,251,151,251,168,251,115,251,101,251,78,251,23,251,24,251,20,251,96,250,96,249,25,249,122,249, +209,249,72,250,57,251,245,251,192,251,5,251,167,250,8,251,27,252,98,253,0,254,185,253,142,253,114,254,243,255,234,0, +192,0,218,255,93,255,96,0,136,2,14,4,242,3,53,3,57,3,4,4,181,4,169,4,231,3,50,3,109,3,137,4, +149,5,250,5,204,5,61,5,145,4,37,4,0,4,251,3,65,4,224,4,86,5,71,5,9,5,243,4,218,4,140,4, +27,4,186,3,179,3,91,4,173,5,19,7,216,7,195,7,70,7,33,7,190,7,190,8,97,9,127,9,217,9,4,11, +95,12,219,12,90,12,157,11,75,11,169,11,160,12,158,13,50,14,152,14,36,15,155,15,184,15,140,15,56,15,17,15, +139,15,101,16,195,16,135,16,96,16,133,16,142,16,68,16,174,15,18,15,39,15,81,16,163,17,219,17,248,16,251,15, +132,15,87,15,238,14,55,14,205,13,67,14,67,15,220,15,159,15,5,15,190,14,220,14,218,14,79,14,98,13,148,12, +93,12,208,12,46,13,121,12,27,11,218,10,104,12,68,14,174,14,129,13,229,11,75,11,65,12,107,13,203,12,184,10, +226,9,173,11,108,14,184,15,241,14,59,13,59,12,205,12,36,14,174,14,45,14,16,14,107,15,123,17,136,18,179,17, +178,15,29,14,250,13,223,14,121,15,13,15,57,14,21,14,168,14,185,14,73,13,242,10,86,9,82,9,32,10,91,10, +133,9,78,8,138,7,68,7,201,6,115,5,141,3,104,2,247,2,109,4,8,5,27,4,124,2,69,1,3,1,104,1, +88,1,65,0,83,255,6,0,219,1,241,2,98,2,244,0,61,0,60,1,15,3,174,3,168,2,207,1,126,2,252,3, +231,4,177,4,192,3,32,3,144,3,123,4,196,4,100,4,43,4,123,4,5,5,29,5,56,4,173,2,140,1,63,1, +57,1,5,1,178,0,89,0,247,255,98,255,93,254,40,253,137,252,210,252,120,253,187,253,67,253,69,252,92,251,201,250, +44,250,102,249,2,249,81,249,246,249,113,250,81,250,97,249,25,248,61,247,16,247,111,247,14,248,72,248,192,247,2,247, +150,246,26,246,48,245,72,244,6,244,166,244,214,245,158,246,67,246,85,245,205,244,171,244,100,244,192,243,199,242,235,241, +248,241,238,242,187,243,139,243,133,242,78,241,176,240,250,240,78,241,199,240,1,240,7,240,164,240,245,240,147,240,156,239, +135,238,246,237,247,237,8,238,10,238,80,238,231,238,122,239,151,239,237,238,195,237,208,236,81,236,2,236,198,235,120,235, +193,234,229,233,181,233,36,234,54,234,119,233,132,232,58,232,214,232,170,233,171,233,164,232,126,231,41,231,192,231,143,232, +192,232,59,232,219,231,92,232,109,233,77,234,155,234,120,234,104,234,230,234,190,235,41,236,204,235,51,235,59,235,20,236, +219,236,154,236,200,235,206,235,14,237,111,238,193,238,198,237,93,236,250,235,33,237,131,238,158,238,177,237,31,237,143,237, +115,238,197,238,7,238,219,236,127,236,102,237,191,238,98,239,2,239,136,238,28,239,157,240,144,241,231,240,81,239,127,238, +114,239,167,241,181,243,207,244,120,245,145,246,250,247,175,248,91,248,56,248,164,249,33,252,219,253,244,253,32,253,116,252, +172,252,194,253,178,254,197,254,218,254,248,255,141,1,147,2,216,2,78,2,33,1,129,0,41,1,215,1,59,1,25,0, +8,0,118,1,131,3,167,4,226,3,10,2,23,1,212,1,77,3,81,4,177,4,3,5,168,5,72,6,111,6,70,6, +59,6,151,6,151,7,245,8,195,9,172,9,150,9,73,10,149,11,198,12,17,13,88,12,208,11,133,12,158,13,221,13, +189,13,80,14,126,15,108,16,102,16,97,15,111,14,188,14,184,15,250,15,97,15,202,14,167,14,213,14,196,14,203,13, +95,12,205,11,64,12,183,12,186,12,130,12,70,12,112,12,68,13,6,14,207,13,179,12,111,11,207,10,43,11,189,11, +119,11,177,10,100,10,95,10,20,10,187,9,124,9,41,9,10,9,59,9,28,9,153,8,91,8,71,8,236,7,170,7, +192,7,137,7,197,6,8,6,182,5,202,5,22,6,62,6,82,6,209,6,82,7,192,6,74,5,41,4,227,3,99,4, +131,5,113,6,46,6,28,5,107,4,62,4,212,3,242,2,34,2,231,1,8,2,211,1,254,0,193,255,78,254,19,253, +176,252,201,252,54,252,233,250,222,249,95,249,15,249,169,248,130,247,66,245,59,243,174,242,165,242,241,241,64,241,103,241, +22,242,23,243,78,244,165,244,71,243,35,241,218,239,44,240,195,241,111,243,27,244,49,244,42,245,107,247,169,249,147,250, +52,250,173,249,237,249,0,251,103,252,178,253,158,254,52,255,186,255,30,0,4,0,164,255,138,255,164,255,156,255,159,255, +216,255,1,0,5,0,227,255,38,255,132,253,171,251,180,250,40,251,128,252,54,253,49,252,64,250,49,249,114,249,181,249, +198,248,15,247,46,246,24,247,217,248,236,249,28,250,8,250,217,249,166,249,218,249,129,250,60,251,36,252,142,253,80,255, +212,0,163,1,208,1,22,2,253,2,247,3,46,4,247,3,106,4,227,5,132,7,30,8,165,7,115,7,133,8,16,10, +205,10,179,10,178,10,123,11,213,12,177,13,79,13,97,12,0,12,13,12,234,11,163,11,102,11,63,11,180,11,27,13, +138,14,204,14,232,13,233,12,200,12,158,13,113,14,80,14,145,13,94,13,70,14,162,15,31,16,28,15,203,13,218,13, +19,15,255,15,31,16,226,15,171,15,5,16,31,17,210,17,33,17,234,15,135,15,32,16,28,17,174,17,77,17,212,16, +205,17,236,19,73,21,35,21,86,20,209,19,239,19,98,20,88,20,229,19,104,20,112,22,167,24,166,25,130,25,44,25, +82,25,239,25,118,26,121,26,33,26,12,26,202,26,243,27,8,28,103,26,130,24,207,23,223,23,203,23,142,23,74,23, +18,23,52,23,104,23,209,22,138,21,100,20,109,19,120,18,245,17,248,17,236,17,171,17,91,17,181,16,172,15,180,14, +12,14,229,13,121,14,59,15,90,15,46,15,104,15,170,15,129,15,69,15,21,15,211,14,11,15,27,16,45,17,128,17, +123,17,179,17,10,18,24,18,169,17,229,16,70,16,42,16,128,16,210,16,136,16,135,15,146,14,52,14,175,13,33,12, +217,9,209,7,210,6,34,7,205,7,14,7,171,4,98,2,73,1,146,0,82,255,166,253,50,252,150,251,226,251,64,252, +196,251,123,250,35,249,89,248,61,248,67,248,174,247,145,246,188,245,146,245,150,245,19,245,214,243,126,242,246,241,84,242, +207,242,215,242,126,242,12,242,214,241,240,241,178,241,138,240,49,239,199,238,52,239,100,239,171,238,69,237,2,236,153,235, +235,235,22,236,113,235,39,234,237,232,100,232,111,232,43,232,0,231,139,229,214,228,22,229,144,229,105,229,96,228,20,227, +127,226,219,226,66,227,220,226,246,225,102,225,76,225,35,225,186,224,60,224,164,223,247,222,149,222,140,222,82,222,159,221, +231,220,151,220,119,220,7,220,34,219,74,218,22,218,74,218,14,218,33,217,39,216,216,215,114,216,137,217,50,218,9,218, +232,217,156,218,169,219,95,220,240,220,160,221,61,222,231,222,0,224,60,225,9,226,157,226,135,227,168,228,123,229,17,230, +219,230,218,231,167,232,37,233,130,233,228,233,134,234,155,235,165,236,250,236,18,237,236,237,53,239,195,239,117,239,38,239, +83,239,243,239,176,240,1,241,223,240,227,240,26,241,235,240,113,240,93,240,177,240,6,241,131,241,103,242,126,243,112,244, +17,245,132,245,104,246,5,248,154,249,123,250,59,251,144,252,34,254,74,255,252,255,154,0,122,1,168,2,245,3,94,5, +255,6,136,8,138,9,79,10,92,11,128,12,58,13,141,13,226,13,136,14,103,15,234,15,202,15,219,15,245,16,126,18, +49,19,232,18,140,18,178,18,9,19,12,19,230,18,100,19,184,20,251,21,117,22,118,22,104,22,55,22,245,21,253,21, +91,22,214,22,65,23,106,23,56,23,1,23,15,23,6,23,101,22,109,21,241,20,88,21,64,22,6,23,93,23,98,23, +90,23,131,23,196,23,146,23,179,22,217,21,219,21,161,22,93,23,80,23,59,22,205,20,77,20,237,20,83,21,171,20, +235,19,34,20,243,20,102,21,249,20,198,19,176,18,191,18,135,19,129,19,97,18,120,17,131,17,238,17,20,18,167,17, +92,16,145,14,99,13,20,13,119,12,213,10,37,9,145,8,200,8,133,8,33,7,28,5,81,3,63,2,214,1,128,1, +136,0,1,255,232,253,193,253,188,253,203,252,237,250,11,249,47,248,185,248,205,249,255,249,29,249,75,248,39,248,43,248, +225,247,92,247,177,246,14,246,236,245,77,246,93,246,113,245,225,243,168,242,116,242,246,242,46,243,137,242,92,241,10,240, +97,238,90,236,212,234,153,234,31,235,54,235,148,234,182,233,180,232,124,231,114,230,178,229,219,228,88,228,33,229,193,230, +177,231,130,231,161,230,10,229,19,227,225,225,195,225,53,226,161,227,136,230,166,233,83,235,160,235,98,235,6,235,32,235, +23,236,32,237,115,237,230,237,136,239,147,241,66,242,53,241,220,239,159,239,82,240,227,240,1,241,65,241,13,242,33,243, +205,243,120,243,54,242,170,240,39,239,181,237,246,236,166,237,109,239,73,241,148,242,196,242,102,241,41,239,214,237,156,238, +2,241,127,243,198,244,238,244,51,245,105,246,242,247,157,248,23,248,108,247,23,248,117,250,135,253,71,0,74,2,47,3, +239,2,144,2,1,3,187,3,201,3,110,3,203,3,159,5,141,8,4,11,96,11,214,9,129,8,12,9,8,11,224,12, +191,13,35,14,173,14,22,15,209,14,36,14,169,13,126,13,154,13,35,14,251,14,220,15,231,16,65,18,152,19,168,20, +100,21,143,21,44,21,244,20,102,21,16,22,147,22,58,23,26,24,225,24,172,25,221,26,66,28,61,29,125,29,247,28, +11,28,182,27,137,28,192,29,129,30,47,31,49,32,175,32,235,31,138,30,115,29,233,28,31,29,49,30,147,31,228,32, +109,34,205,35,198,35,51,34,131,32,237,31,120,32,167,33,232,34,239,35,24,37,169,38,237,39,11,40,66,39,103,38, +211,37,125,37,124,37,240,37,157,38,4,39,199,38,207,37,45,36,62,34,191,32,45,32,96,32,35,33,100,34,138,35, +137,35,231,33,36,31,94,28,179,26,38,26,111,25,4,24,58,23,46,24,215,25,50,26,98,24,100,21,69,19,27,19, +212,19,244,19,135,19,58,19,42,19,93,19,145,19,194,18,168,16,168,14,246,13,122,14,198,15,66,17,14,18,36,18, +15,18,65,17,15,15,162,12,120,11,76,11,54,11,242,10,72,10,48,9,70,8,163,7,121,6,146,4,175,2,41,1, +178,255,28,254,147,252,97,251,125,250,120,249,68,248,85,247,93,246,160,244,204,242,66,242,183,242,219,242,137,242,83,242, +75,242,53,242,121,241,78,239,79,236,114,234,85,234,152,234,70,234,179,233,60,233,240,232,234,232,235,232,84,232,213,230, +230,228,132,227,78,227,181,227,172,227,27,227,163,226,97,226,211,225,138,224,196,222,196,221,136,222,218,223,145,223,201,221, +138,220,147,220,246,220,206,220,158,219,123,217,195,215,215,215,30,217,13,218,78,218,144,218,80,219,125,220,84,221,202,220, +26,219,24,218,19,219,45,221,133,222,103,222,227,221,77,222,115,223,192,223,76,222,47,220,109,219,201,220,240,222,231,223, +25,223,162,221,220,220,19,221,124,221,8,221,139,219,31,218,0,218,62,219,244,220,55,222,157,222,130,222,213,222,243,223, +253,224,33,225,15,225,40,226,112,228,109,230,50,231,112,231,35,232,89,233,160,234,135,235,196,235,240,235,104,237,78,240, +225,242,196,243,105,243,242,242,59,243,169,244,126,246,104,247,152,247,150,248,194,250,211,252,191,253,180,253,134,253,246,253, +243,254,158,255,130,255,50,255,88,255,228,255,64,0,247,255,101,255,122,255,100,0,55,1,116,1,190,1,205,2,179,4, +241,6,155,8,8,9,165,8,126,8,52,9,202,10,175,12,30,14,254,14,226,15,238,16,233,17,251,18,35,20,243,20, +153,21,154,22,133,23,188,23,186,23,242,23,12,24,16,24,129,24,38,25,141,25,237,25,100,26,162,26,195,26,25,27, +123,27,223,27,122,28,231,28,149,28,232,27,140,27,111,27,64,27,16,27,37,27,188,27,168,28,21,29,90,28,229,26, +184,25,87,25,122,25,99,25,175,24,245,23,237,23,97,24,152,24,29,24,201,22,43,21,135,20,64,21,21,22,252,21, +102,21,11,21,235,20,159,20,159,19,188,17,210,15,232,14,183,14,83,14,151,13,225,12,77,12,204,11,60,11,77,10, +232,8,130,7,149,6,58,6,68,6,84,6,222,5,159,4,32,3,83,2,85,2,17,2,208,0,137,255,134,255,115,0, +198,0,162,255,141,253,194,251,234,250,79,250,238,248,33,247,36,246,25,246,231,245,211,244,48,243,187,241,224,240,141,240, +125,240,78,240,125,239,66,238,18,238,125,239,75,240,70,238,234,234,115,233,110,234,171,235,110,235,249,233,222,232,88,233, +169,234,211,234,105,233,30,232,17,232,92,232,201,231,120,230,78,229,168,228,62,228,226,227,186,227,197,227,222,227,36,228, +163,228,244,228,182,228,242,227,222,226,241,225,190,225,6,226,202,225,184,224,130,223,205,222,201,222,104,223,96,224,168,225, +116,227,16,229,55,229,53,228,134,227,83,227,197,226,42,226,102,226,147,227,160,229,119,232,234,234,182,235,120,235,194,235, +225,236,13,238,192,238,17,239,141,239,192,240,120,242,211,243,31,244,100,243,67,242,154,241,210,241,146,242,103,243,79,244, +125,245,225,246,191,247,7,247,217,244,49,243,184,243,172,245,29,247,118,247,194,247,14,249,238,250,182,251,165,250,103,249, +49,250,198,252,255,254,201,255,251,255,137,0,95,1,4,2,109,2,215,2,93,3,62,4,22,6,243,8,172,11,4,13, +57,13,165,13,3,15,165,16,94,17,23,17,37,17,147,18,125,20,27,21,69,20,190,19,208,20,168,22,172,23,204,23, +71,24,143,25,192,26,46,27,40,27,25,27,34,27,76,27,110,27,95,27,154,27,179,28,63,30,104,31,50,32,19,33, +242,33,108,34,137,34,154,34,236,34,205,35,68,37,176,38,89,39,82,39,101,39,234,39,107,40,124,40,82,40,90,40, +205,40,157,41,78,42,84,42,219,41,161,41,231,41,75,42,98,42,218,41,192,40,228,39,253,39,159,40,14,41,86,41, +184,41,24,42,96,42,97,42,172,41,100,40,80,39,178,38,60,38,251,37,18,38,56,38,114,38,21,39,193,39,168,39, +197,38,194,37,58,37,131,37,84,38,153,38,158,37,16,36,6,35,157,34,248,33,122,32,202,30,49,30,210,30,88,31, +194,30,104,29,247,27,159,26,115,25,124,24,150,23,179,22,230,21,22,21,24,20,249,18,221,17,195,16,176,15,216,14, +133,14,177,14,169,14,193,13,81,12,48,11,120,10,175,9,149,8,64,7,20,6,166,5,207,5,133,5,78,4,225,2, +226,1,65,1,201,0,23,0,177,254,236,252,172,251,242,250,227,249,59,248,123,246,23,245,39,244,93,243,16,242,16,240, +60,238,120,237,104,237,242,236,162,235,9,234,212,232,242,231,211,230,28,229,8,227,87,225,201,224,66,225,194,225,168,225, +113,225,171,225,6,226,218,225,222,224,67,223,211,221,120,221,26,222,147,222,40,222,87,221,14,221,125,221,205,221,7,221, +104,219,87,218,189,218,246,219,162,220,3,220,151,218,132,217,76,217,54,217,100,216,9,215,11,214,237,213,139,214,78,215, +161,215,118,215,69,215,70,215,29,215,95,214,51,213,94,212,146,212,125,213,9,214,206,213,180,213,164,214,22,216,165,216, +237,215,51,215,232,215,235,217,209,219,134,220,52,220,219,219,92,220,132,221,52,222,229,221,132,221,48,222,228,223,196,225, +240,226,15,227,218,226,141,227,31,229,27,230,178,229,194,228,129,228,94,229,27,231,227,232,214,233,46,234,14,235,191,236, +43,238,155,238,188,238,122,239,226,240,125,242,243,243,9,245,171,245,37,246,210,246,167,247,100,248,13,249,232,249,47,251, +224,252,147,254,181,255,49,0,129,0,5,1,173,1,79,2,240,2,180,3,175,4,185,5,128,6,237,6,62,7,175,7, +91,8,79,9,131,10,238,11,149,13,50,15,23,16,234,15,45,15,215,14,141,15,39,17,167,18,59,19,92,19,43,20, +241,21,241,23,99,25,229,25,147,25,33,25,76,25,33,26,39,27,234,27,58,28,64,28,107,28,249,28,177,29,39,30, +40,30,229,29,201,29,199,29,97,29,120,28,127,27,170,26,233,25,119,25,117,25,124,25,73,25,34,25,43,25,60,25, +63,25,22,25,161,24,24,24,190,23,112,23,23,23,217,22,142,22,244,21,94,21,55,21,82,21,87,21,46,21,210,20, +106,20,72,20,82,20,254,19,29,19,8,18,29,17,117,16,208,15,235,14,1,14,84,13,109,12,253,10,191,9,20,9, +52,8,210,6,187,5,43,5,147,4,211,3,229,2,85,1,115,255,91,254,234,253,225,252,45,251,255,249,211,249,0,250, +184,249,145,248,211,246,116,245,0,245,237,244,139,244,239,243,104,243,255,242,179,242,137,242,90,242,1,242,164,241,118,241, +83,241,210,240,187,239,94,238,78,237,179,236,48,236,165,235,142,235,23,236,79,236,36,235,227,232,232,230,253,229,208,229, +204,229,203,229,15,230,207,230,147,231,79,231,168,229,150,227,51,226,168,225,186,225,88,226,48,227,185,227,214,227,172,227, +70,227,19,227,182,227,176,228,176,228,182,227,19,227,50,227,73,227,51,227,118,227,221,227,225,227,174,227,165,227,240,227, +228,228,105,230,78,231,218,230,239,229,131,229,99,229,69,229,82,229,133,229,229,229,204,230,253,231,205,232,93,233,22,234, +135,234,115,234,170,234,124,235,21,236,35,236,94,236,61,237,134,238,225,239,10,241,253,241,6,243,34,244,215,244,39,245, +201,245,50,247,243,248,34,250,77,250,34,250,168,250,194,251,137,252,212,252,33,253,151,253,58,254,41,255,24,0,148,0, +189,0,216,0,239,0,62,1,219,1,36,2,241,1,66,2,142,3,214,4,79,5,104,5,204,5,160,6,162,7,88,8, +162,8,51,9,170,10,161,12,46,14,238,14,48,15,133,15,51,16,38,17,91,18,220,19,57,21,31,22,37,23,223,24, +192,26,255,27,164,28,250,28,70,29,16,30,121,31,193,32,113,33,32,34,73,35,111,36,216,36,100,36,203,35,18,36, +115,37,241,38,163,39,187,39,237,39,139,40,61,41,60,41,73,40,105,39,162,39,119,40,238,40,62,41,254,41,189,42, +216,42,134,42,67,42,38,42,56,42,129,42,204,42,237,42,249,42,251,42,244,42,5,43,23,43,219,42,139,42,190,42, +70,43,97,43,23,43,15,43,60,43,242,42,14,42,28,41,166,40,202,40,18,41,207,40,24,40,215,39,97,40,231,40, +159,40,193,39,21,39,2,39,34,39,177,38,158,37,177,36,127,36,193,36,200,36,19,36,200,34,200,33,186,33,13,34, +198,33,216,32,207,31,255,30,117,30,223,29,152,28,158,26,239,24,40,24,191,23,4,23,231,21,193,20,215,19,15,19, +232,17,60,16,126,14,7,13,206,11,201,10,216,9,181,8,121,7,96,6,48,5,167,3,15,2,177,0,153,255,237,254, +135,254,196,253,148,252,147,251,216,250,251,249,242,248,191,247,70,246,19,245,185,244,171,244,44,244,121,243,205,242,215,241, +202,240,43,240,199,239,81,239,22,239,3,239,96,238,7,237,134,235,78,234,148,233,73,233,189,232,87,231,159,229,176,228, +202,228,19,229,141,228,42,227,232,225,132,225,119,225,197,224,70,223,164,221,169,220,143,220,150,220,216,219,167,218,20,218, +69,218,111,218,252,217,228,216,147,215,218,214,2,215,51,215,157,214,164,213,47,213,144,213,105,214,229,214,98,214,98,213, +14,213,134,213,210,213,152,213,135,213,32,214,41,215,27,216,120,216,20,216,115,215,83,215,211,215,140,216,70,217,14,218, +203,218,69,219,112,219,126,219,183,219,56,220,200,220,55,221,186,221,112,222,239,222,3,223,42,223,155,223,197,223,133,223, +151,223,112,224,182,225,9,227,51,228,245,228,85,229,163,229,213,229,182,229,162,229,25,230,246,230,215,231,204,232,10,234, +95,235,99,236,221,236,224,236,192,236,3,237,19,238,186,239,73,241,138,242,245,243,159,245,208,246,29,247,2,247,45,247, +8,248,182,249,199,251,136,253,219,254,254,255,211,0,70,1,142,1,166,1,166,1,112,2,129,4,208,6,28,8,112,8, +160,8,87,9,178,10,236,11,26,12,149,11,120,11,7,12,197,12,98,13,167,13,143,13,180,13,128,14,117,15,27,16, +140,16,206,16,223,16,30,17,146,17,170,17,86,17,48,17,79,17,78,17,48,17,77,17,197,17,112,18,236,18,243,18, +209,18,235,18,0,19,191,18,140,18,225,18,134,19,3,20,39,20,19,20,19,20,65,20,82,20,10,20,178,19,185,19, +36,20,143,20,116,20,179,19,234,18,199,18,25,19,22,19,80,18,16,17,14,16,216,15,39,16,11,16,33,15,25,14, +188,13,231,13,193,13,199,12,96,11,72,10,154,9,228,8,242,7,254,6,62,6,185,5,89,5,218,4,17,4,44,3, +120,2,26,2,244,1,164,1,222,0,213,255,228,254,250,253,246,252,8,252,49,251,49,250,122,249,240,249,85,251,26,252, +36,251,237,248,254,246,155,246,133,247,15,248,11,247,109,245,216,244,51,245,22,245,63,244,200,243,11,244,14,244,26,243, +169,241,174,240,181,240,84,241,84,241,15,240,114,238,170,237,155,237,165,237,194,237,17,238,95,238,115,238,255,237,184,236, +15,235,239,233,169,233,36,234,81,235,101,236,54,236,31,235,151,234,172,234,52,234,50,233,196,232,50,233,182,233,192,233, +131,233,174,233,137,234,66,235,223,234,196,233,79,233,253,233,251,234,108,235,97,235,158,235,170,236,26,238,217,238,88,238, +54,237,137,236,170,236,51,237,214,237,148,238,81,239,238,239,144,240,40,241,80,241,27,241,36,241,115,241,152,241,183,241, +41,242,147,242,179,242,34,243,34,244,216,244,154,244,231,243,182,243,131,244,222,245,194,246,190,246,139,246,240,246,186,247, +79,248,147,248,209,248,54,249,158,249,219,249,59,250,54,251,104,252,244,252,2,253,145,253,223,254,19,0,140,0,164,0, +46,1,113,2,215,3,214,4,169,5,155,6,73,7,110,7,163,7,153,8,20,10,43,11,94,11,73,11,14,12,211,13, +82,15,109,15,147,14,39,14,238,14,113,16,191,17,137,18,54,19,5,20,173,20,227,20,172,20,91,20,148,20,182,21, +49,23,23,24,89,24,175,24,146,25,185,26,92,27,19,27,169,26,90,27,15,29,126,30,13,31,70,31,211,31,237,32, +72,34,5,35,194,34,149,34,176,35,138,37,165,38,123,38,224,37,244,37,24,39,115,40,210,40,28,40,123,39,226,39, +0,41,183,41,82,41,89,40,243,39,144,40,118,41,164,41,200,40,126,39,188,38,208,38,47,39,98,39,123,39,126,39, +74,39,27,39,42,39,236,38,202,37,83,36,200,35,134,36,156,37,1,38,180,37,123,37,183,37,230,37,85,37,30,36, +46,35,75,35,42,36,206,36,179,36,47,36,174,35,46,35,125,34,157,33,201,32,57,32,235,31,179,31,118,31,38,31, +159,30,220,29,244,28,232,27,184,26,144,25,126,24,103,23,116,22,226,21,106,21,177,20,247,19,111,19,150,18,5,17, +66,15,9,14,102,13,228,12,47,12,74,11,82,10,79,9,60,8,45,7,60,6,139,5,17,5,108,4,82,3,62,2, +189,1,67,1,239,255,11,254,154,252,233,251,150,251,32,251,40,250,227,248,252,247,136,247,238,246,8,246,64,245,154,244, +216,243,6,243,40,242,32,241,30,240,78,239,120,238,142,237,212,236,76,236,205,235,99,235,250,234,98,234,214,233,161,233, +125,233,23,233,137,232,223,231,38,231,179,230,145,230,63,230,141,229,208,228,48,228,151,227,4,227,131,226,53,226,63,226, +76,226,207,225,225,224,244,223,52,223,216,222,18,223,86,223,12,223,152,222,112,222,50,222,169,221,66,221,26,221,1,221, +45,221,169,221,209,221,101,221,245,220,224,220,1,221,59,221,94,221,31,221,230,220,158,221,39,223,42,224,228,223,24,223, +250,222,230,223,52,225,218,225,125,225,239,224,61,225,70,226,211,226,60,226,92,225,145,225,2,227,114,228,205,228,107,228, +125,228,130,229,178,230,11,231,143,230,28,230,86,230,20,231,200,231,8,232,1,232,97,232,134,233,227,234,179,235,221,235, +234,235,116,236,143,237,153,238,10,239,105,239,175,240,168,242,253,243,33,244,27,244,254,244,129,246,191,247,125,248,255,248, +130,249,72,250,83,251,39,252,132,252,228,252,179,253,235,254,112,0,219,1,122,2,79,2,50,2,162,2,115,3,52,4, +106,4,64,4,181,4,230,5,133,6,9,6,137,5,178,5,17,6,91,6,140,6,112,6,83,6,235,6,8,8,210,8, +32,9,61,9,37,9,247,8,4,9,45,9,58,9,116,9,239,9,40,10,253,9,216,9,242,9,91,10,30,11,194,11, +184,11,105,11,153,11,62,12,235,12,111,13,164,13,162,13,215,13,59,14,84,14,8,14,153,13,76,13,138,13,60,14, +99,14,129,13,130,12,67,12,151,12,0,13,27,13,178,12,31,12,217,11,179,11,69,11,133,10,145,9,153,8,241,7, +143,7,35,7,175,6,67,6,149,5,175,4,23,4,216,3,122,3,221,2,46,2,112,1,180,0,56,0,227,255,86,255, +141,254,219,253,104,253,40,253,246,252,170,252,108,252,160,252,28,253,13,253,26,252,230,250,69,250,145,250,75,251,54,251, +233,249,242,248,190,249,66,251,163,251,228,250,57,250,13,250,239,249,96,249,84,248,99,247,40,247,55,247,133,246,228,244, +87,243,3,243,10,244,98,245,191,245,241,244,9,244,200,243,138,243,93,242,113,240,175,238,191,237,19,238,139,239,236,240, +27,241,133,240,241,239,54,239,36,238,38,237,139,236,169,236,253,237,214,239,125,240,120,239,235,237,206,236,93,236,168,236, +124,237,101,238,48,239,240,239,175,240,62,241,55,241,118,240,128,239,227,238,172,238,190,238,21,239,164,239,139,240,217,241, +208,242,158,242,180,241,33,241,4,241,240,240,247,240,74,241,210,241,135,242,74,243,156,243,108,243,90,243,162,243,224,243, +15,244,137,244,57,245,228,245,124,246,216,246,249,246,81,247,206,247,188,247,26,247,158,246,155,246,32,247,48,248,27,249, +67,249,65,249,181,249,24,250,1,250,200,249,146,249,99,249,164,249,92,250,8,251,138,251,250,251,57,252,125,252,16,253, +151,253,227,253,134,254,147,255,75,0,147,0,14,1,247,1,17,3,24,4,158,4,122,4,124,4,141,5,109,7,29,9, +18,10,120,10,211,10,171,11,7,13,69,14,199,14,189,14,8,15,82,16,76,18,229,19,94,20,23,20,246,19,92,20, +231,20,21,21,25,21,220,21,189,23,167,25,67,26,166,25,217,24,96,24,21,24,204,23,153,23,235,23,73,25,119,27, +71,29,202,29,76,29,191,28,144,28,112,28,48,28,65,28,12,29,66,30,49,31,142,31,149,31,160,31,192,31,197,31, +157,31,143,31,11,32,47,33,135,34,92,35,97,35,219,34,61,34,0,34,103,34,236,34,204,34,113,34,235,34,7,36, +139,36,51,36,180,35,117,35,143,35,11,36,106,36,29,36,136,35,73,35,13,35,99,34,198,33,208,33,53,34,42,34, +116,33,169,32,114,32,153,32,79,32,92,31,89,30,211,29,214,29,242,29,120,29,73,28,25,27,97,26,236,25,154,25, +83,25,150,24,110,23,213,22,20,23,43,23,99,22,3,21,170,19,222,18,140,18,210,17,111,16,115,15,120,15,170,15, +61,15,65,14,8,13,13,12,198,11,195,11,59,11,107,10,2,10,203,9,48,9,60,8,52,7,36,6,52,5,157,4, +52,4,163,3,215,2,253,1,78,1,192,0,229,255,148,254,102,253,229,252,205,252,149,252,252,251,253,250,255,249,104,249, +175,248,30,247,77,245,92,244,74,244,99,244,67,244,181,243,211,242,59,242,10,242,139,241,105,240,23,239,27,238,215,237, +96,238,13,239,247,238,7,238,236,236,89,236,89,236,55,236,116,235,141,234,53,234,83,234,109,234,71,234,224,233,95,233, +225,232,63,232,130,231,46,231,152,231,84,232,171,232,77,232,147,231,21,231,220,230,123,230,231,229,122,229,83,229,104,229, +205,229,92,230,141,230,49,230,235,229,96,230,25,231,3,231,15,230,115,229,17,230,122,231,130,232,98,232,160,231,145,231, +130,232,43,233,180,232,243,231,18,232,245,232,145,233,61,233,113,232,39,232,185,232,149,233,238,233,135,233,2,233,60,233, +41,234,240,234,15,235,192,234,135,234,189,234,10,235,236,234,204,234,117,235,160,236,122,237,203,237,161,237,77,237,159,237, +195,238,204,239,91,240,26,241,76,242,132,243,81,244,116,244,73,244,181,244,218,245,234,246,153,247,77,248,58,249,105,250, +177,251,126,252,126,252,62,252,78,252,172,252,67,253,18,254,226,254,108,255,194,255,52,0,207,0,49,1,11,1,137,0, +20,0,15,0,158,0,85,1,152,1,108,1,59,1,43,1,72,1,162,1,242,1,241,1,253,1,153,2,177,3,177,4, +32,5,28,5,15,5,250,4,194,4,164,4,165,4,137,4,170,4,130,5,176,6,170,7,61,8,253,7,246,6,100,6, +17,7,37,8,157,8,122,8,103,8,254,8,240,9,22,10,64,9,172,8,7,9,157,9,161,9,226,8,207,7,79,7, +180,7,62,8,77,8,42,8,38,8,34,8,244,7,140,7,236,6,73,6,12,6,110,6,250,6,223,6,42,6,190,5, +212,5,174,5,198,4,95,3,86,2,143,2,194,3,98,4,154,3,64,2,97,1,34,1,4,1,108,0,86,255,158,254, +4,255,9,0,77,0,251,254,194,252,62,251,77,251,64,252,210,252,112,252,181,251,191,251,156,252,2,253,43,252,194,250, +198,249,172,249,85,250,6,251,74,251,125,251,149,251,214,250,141,249,239,248,2,249,234,248,158,248,151,248,170,248,128,248, +86,248,166,248,56,249,26,249,236,247,160,246,40,246,72,246,91,246,47,246,236,245,220,245,250,245,163,245,161,244,232,243, +66,244,11,245,0,245,214,243,146,242,85,242,2,243,158,243,174,243,67,243,88,242,113,241,165,241,20,243,112,244,147,244, +164,243,153,242,88,242,9,243,229,243,230,243,4,243,101,242,213,242,175,243,17,244,61,244,165,244,228,244,179,244,130,244, +159,244,218,244,248,244,201,244,60,244,171,243,128,243,205,243,102,244,8,245,136,245,254,245,74,246,241,245,7,245,103,244, +150,244,71,245,247,245,93,246,149,246,253,246,133,247,153,247,32,247,207,246,58,247,49,248,22,249,139,249,181,249,236,249, +52,250,89,250,64,250,11,250,35,250,218,250,202,251,38,252,191,251,51,251,45,251,207,251,154,252,224,252,174,252,224,252, +253,253,77,255,123,255,19,254,49,252,125,251,104,252,215,253,153,254,166,254,215,254,179,255,213,0,116,1,65,1,158,0, +34,0,55,0,241,0,30,2,110,3,136,4,65,5,200,5,65,6,114,6,98,6,200,6,37,8,5,10,147,11,118,12, +232,12,77,13,200,13,7,14,203,13,143,13,52,14,229,15,197,17,235,18,64,19,68,19,64,19,36,19,220,18,129,18, +102,18,238,18,32,20,87,21,209,21,152,21,114,21,197,21,22,22,209,21,51,21,245,20,117,21,78,22,186,22,108,22, +249,21,24,22,158,22,191,22,45,22,148,21,229,21,27,23,39,24,60,24,182,23,118,23,217,23,132,24,231,24,221,24, +234,24,145,25,133,26,248,26,163,26,45,26,99,26,49,27,211,27,6,28,39,28,97,28,153,28,226,28,10,29,152,28, +222,27,248,27,40,29,76,30,88,30,128,29,166,28,76,28,80,28,61,28,195,27,44,27,28,27,127,27,118,27,191,26, +249,25,109,25,228,24,106,24,19,24,168,23,55,23,239,22,132,22,187,21,220,20,23,20,103,19,3,19,234,18,147,18, +176,17,184,16,79,16,111,16,74,16,76,15,243,13,30,13,249,12,16,13,204,12,234,11,7,11,0,11,119,11,68,11, +63,10,66,9,206,8,172,8,103,8,191,7,213,6,233,5,44,5,214,4,204,4,106,4,134,3,224,2,253,2,114,3, +135,3,213,2,112,1,239,255,223,254,59,254,173,253,5,253,108,252,46,252,63,252,50,252,196,251,226,250,145,249,97,248, +255,247,61,248,108,248,40,248,74,247,26,246,103,245,78,245,237,244,249,243,17,243,147,242,119,242,161,242,126,242,164,241, +146,240,223,239,98,239,198,238,33,238,208,237,8,238,96,238,61,238,174,237,24,237,170,236,148,236,182,236,69,236,36,235, +127,234,19,235,50,236,198,236,67,236,249,234,10,234,49,234,224,234,45,235,213,234,78,234,124,234,161,235,158,236,104,236, +142,235,76,235,4,236,15,237,88,237,111,236,65,235,8,235,219,235,169,236,114,236,117,235,11,235,216,235,217,236,240,236, +51,236,110,235,91,235,251,235,96,236,238,235,100,235,151,235,76,236,209,236,169,236,226,235,88,235,197,235,182,236,82,237, +106,237,73,237,116,237,53,238,242,238,247,238,176,238,248,238,230,239,225,240,59,241,16,241,108,241,192,242,33,244,203,244, +218,244,161,244,204,244,246,245,87,247,194,247,175,247,53,248,52,249,6,250,102,250,77,250,20,250,99,250,105,251,176,252, +127,253,101,253,232,252,12,253,203,253,52,254,226,253,68,253,6,253,173,253,206,254,44,255,109,254,188,253,42,254,113,255, +119,0,159,0,98,0,126,0,245,0,83,1,58,1,123,0,158,255,188,255,246,0,44,2,162,2,179,2,229,2,54,3, +40,3,118,2,216,1,37,2,40,3,54,4,232,4,249,4,164,4,156,4,211,4,176,4,109,4,147,4,15,5,175,5, +65,6,73,6,216,5,168,5,191,5,129,5,197,4,210,3,45,3,127,3,148,4,65,5,7,5,142,4,109,4,161,4, +196,4,132,4,51,4,72,4,102,4,252,3,92,3,0,3,212,2,185,2,176,2,129,2,14,2,143,1,60,1,29,1, +43,1,87,1,127,1,90,1,189,0,253,255,124,255,41,255,228,254,176,254,83,254,191,253,133,253,254,253,173,254,235,254, +143,254,240,253,155,253,148,253,60,253,101,252,176,251,166,251,82,252,65,253,147,253,213,252,188,251,60,251,134,251,73,252, +6,253,62,253,224,252,34,252,51,251,96,250,239,249,203,249,249,249,150,250,8,251,168,250,17,250,68,250,18,251,108,251, +198,250,166,249,1,249,244,248,190,248,36,248,205,247,9,248,115,248,178,248,171,248,93,248,240,247,112,247,205,246,65,246, +6,246,215,245,166,245,46,246,204,247,87,249,54,249,120,247,248,245,31,246,74,247,227,247,86,247,101,246,56,246,62,247, +148,248,208,248,163,247,42,246,137,245,18,246,120,247,1,249,169,249,34,249,108,248,145,248,57,249,110,249,17,249,147,248, +35,248,247,247,85,248,3,249,170,249,66,250,114,250,187,249,189,248,183,248,164,249,82,250,53,250,253,249,136,250,180,251, +98,252,236,251,29,251,7,251,151,251,246,251,163,251,239,250,202,250,195,251,21,253,134,253,4,253,129,252,136,252,246,252, +125,253,193,253,142,253,67,253,135,253,118,254,127,255,230,255,99,255,128,254,29,254,91,254,149,254,120,254,89,254,131,254, +237,254,93,255,165,255,214,255,36,0,107,0,93,0,41,0,88,0,40,1,77,2,12,3,240,2,138,2,183,2,104,3, +17,4,157,4,9,5,51,5,142,5,166,6,247,7,154,8,139,8,117,8,240,8,32,10,91,11,147,11,248,10,60,11, +60,13,133,15,50,16,101,15,183,14,12,15,227,15,79,16,10,16,188,15,35,16,17,17,197,17,16,18,53,18,51,18, +12,18,8,18,67,18,129,18,165,18,199,18,234,18,212,18,83,18,198,17,207,17,79,18,123,18,28,18,209,17,35,18, +252,18,178,19,167,19,52,19,67,19,251,19,148,20,117,20,217,19,152,19,73,20,109,21,30,22,75,22,80,22,65,22, +75,22,169,22,9,23,17,23,234,22,204,22,254,22,236,23,63,25,205,25,44,25,68,24,18,24,161,24,44,25,13,25, +137,24,84,24,145,24,225,24,208,24,24,24,11,23,93,22,35,22,253,21,231,21,234,21,208,21,165,21,146,21,65,21, +130,20,189,19,58,19,210,18,116,18,58,18,38,18,17,18,187,17,5,17,29,16,94,15,3,15,230,14,131,14,204,13, +105,13,152,13,184,13,59,13,16,12,162,10,210,9,242,9,26,10,166,9,33,9,227,8,153,8,8,8,10,7,173,5, +186,4,153,4,121,4,233,3,144,3,193,3,33,4,80,4,252,3,56,3,151,2,29,2,58,1,36,0,145,255,147,255, +227,255,71,0,82,0,214,255,37,255,130,254,4,254,190,253,143,253,97,253,108,253,134,253,255,252,180,251,80,250,152,249, +189,249,30,250,226,249,255,248,32,248,164,247,108,247,30,247,91,246,57,245,61,244,171,243,95,243,15,243,123,242,236,241, +240,241,45,242,202,241,228,240,31,240,163,239,121,239,153,239,160,239,138,239,193,239,255,239,214,239,170,239,188,239,174,239, +131,239,143,239,206,239,46,240,150,240,192,240,207,240,20,241,35,241,175,240,80,240,116,240,201,240,245,240,194,240,38,240, +161,239,176,239,22,240,93,240,77,240,238,239,154,239,145,239,155,239,178,239,254,239,12,240,121,239,231,238,1,239,133,239, +213,239,158,239,17,239,210,238,24,239,94,239,99,239,103,239,116,239,140,239,219,239,76,240,188,240,62,241,174,241,216,241, +11,242,117,242,183,242,168,242,173,242,45,243,37,244,0,245,34,245,224,244,23,245,206,245,94,246,119,246,50,246,228,245, +241,245,94,246,230,246,61,247,7,247,121,246,155,246,161,247,76,248,215,247,226,246,92,246,217,246,31,248,222,248,81,248, +158,247,22,248,77,249,245,249,115,249,116,248,89,248,155,249,38,251,219,251,145,251,196,250,90,250,237,250,154,251,37,251, +14,250,203,249,172,250,194,251,7,252,85,251,168,250,5,251,50,252,24,253,7,253,55,252,165,251,30,252,11,253,19,253, +13,252,64,251,173,251,229,252,183,253,155,253,6,253,173,252,223,252,77,253,51,253,79,252,143,251,220,251,245,252,252,253, +69,254,158,253,199,252,226,252,206,253,85,254,232,253,33,253,5,253,2,254,31,255,236,254,163,253,198,252,220,252,83,253, +169,253,121,253,212,252,201,252,224,253,217,254,72,254,121,252,232,250,163,250,96,251,233,251,112,251,104,250,236,249,140,250, +160,251,220,251,239,250,255,249,39,250,51,251,43,252,80,252,189,251,101,251,248,251,191,252,120,252,27,251,244,249,39,250, +123,251,159,252,114,252,38,251,26,250,114,250,208,251,205,252,176,252,15,252,211,251,37,252,93,252,166,251,30,250,26,249, +142,249,219,250,210,251,11,252,205,251,155,251,216,251,59,252,4,252,246,250,187,249,42,249,140,249,96,250,219,250,196,250, +146,250,161,250,173,250,58,250,95,249,240,248,155,249,228,250,159,251,88,251,185,250,133,250,175,250,185,250,159,250,204,250, +85,251,251,251,186,252,113,253,103,253,66,252,225,250,115,250,34,251,20,252,66,252,121,251,179,250,243,250,201,251,250,251, +89,251,220,250,30,251,232,251,189,252,52,253,45,253,5,253,250,252,209,252,120,252,79,252,125,252,221,252,113,253,19,254, +73,254,16,254,245,253,54,254,141,254,200,254,237,254,15,255,57,255,83,255,39,255,166,254,31,254,38,254,241,254,199,255, +230,255,185,255,11,0,143,0,129,0,255,255,154,255,134,255,197,255,77,0,201,0,245,0,235,0,226,0,229,0,232,0, +193,0,78,0,226,255,32,0,10,1,196,1,154,1,216,0,81,0,113,0,2,1,116,1,128,1,136,1,1,2,210,2, +166,3,50,4,51,4,252,3,104,4,133,5,96,6,112,6,8,6,189,5,27,6,250,6,82,7,224,6,230,6,21,8, +123,9,52,10,89,10,105,10,221,10,198,11,131,12,149,12,81,12,70,12,147,12,1,13,101,13,221,13,134,14,13,15, +43,15,54,15,112,15,145,15,136,15,164,15,217,15,202,15,103,15,8,15,50,15,8,16,206,16,172,16,211,15,57,15, +112,15,11,16,41,16,161,15,82,15,218,15,200,16,81,17,50,17,214,16,227,16,109,17,242,17,90,18,228,18,87,19, +137,19,234,19,123,20,136,20,248,19,165,19,62,20,98,21,211,21,242,20,238,19,74,20,177,21,148,22,65,22,129,21, +167,21,242,22,249,23,150,23,170,22,154,22,81,23,197,23,82,23,61,22,133,21,181,21,25,22,227,21,43,21,113,20, +42,20,115,20,176,20,83,20,180,19,79,19,33,19,27,19,250,18,65,18,79,17,25,17,164,17,42,18,45,18,160,17, +246,16,233,16,72,17,35,17,99,16,222,15,247,15,73,16,76,16,206,15,24,15,109,14,201,13,77,13,38,13,232,12, +40,12,92,11,46,11,120,11,100,11,90,10,194,8,156,7,77,7,97,7,67,7,179,6,26,6,66,6,248,6,17,7, +90,6,179,5,120,5,126,5,151,5,34,5,218,3,219,2,236,2,52,3,205,2,226,1,20,1,255,0,138,1,183,1, +51,1,239,0,95,1,214,1,156,1,117,0,241,254,85,254,222,254,33,255,70,254,14,253,93,252,101,252,199,252,171,252, +151,251,59,250,146,249,179,249,234,249,84,249,198,247,49,246,157,245,25,246,250,246,98,247,183,246,91,245,98,244,89,244, +232,244,105,245,115,245,30,245,198,244,173,244,5,245,156,245,185,245,48,245,206,244,246,244,57,245,102,245,114,245,53,245, +30,245,129,245,136,245,143,244,107,243,255,242,42,243,103,243,55,243,151,242,76,242,173,242,13,243,2,243,202,242,104,242, +227,241,177,241,243,241,66,242,86,242,44,242,248,241,230,241,183,241,69,241,15,241,82,241,160,241,181,241,142,241,27,241, +200,240,33,241,194,241,5,242,27,242,103,242,234,242,162,243,76,244,90,244,200,243,81,243,158,243,161,244,139,245,165,245, +80,245,96,245,204,245,12,246,245,245,145,245,27,245,34,245,191,245,63,246,7,246,61,245,134,244,106,244,199,244,19,245, +12,245,189,244,91,244,93,244,216,244,27,245,217,244,165,244,192,244,216,244,247,244,83,245,194,245,28,246,107,246,131,246, +69,246,1,246,43,246,174,246,234,246,174,246,152,246,226,246,230,246,131,246,63,246,247,245,124,245,139,245,90,246,232,246, +231,246,11,247,167,247,154,248,158,249,199,249,144,248,39,247,2,247,248,247,227,248,33,249,22,249,144,249,153,250,58,251, +220,250,17,250,160,249,202,249,86,250,187,250,156,250,59,250,11,250,36,250,121,250,253,250,107,251,121,251,103,251,195,251, +135,252,29,253,81,253,118,253,113,253,199,252,169,251,226,250,195,250,245,250,245,250,151,250,77,250,153,250,48,251,68,251, +129,250,95,249,180,248,4,249,209,249,57,250,42,250,8,250,209,249,147,249,159,249,209,249,217,249,240,249,79,250,201,250, +84,251,244,251,92,252,115,252,120,252,120,252,92,252,60,252,29,252,255,251,41,252,153,252,201,252,188,252,50,253,57,254, +187,254,36,254,63,253,213,252,161,252,57,252,236,251,38,252,228,252,245,253,205,254,148,254,69,253,33,252,33,252,215,252, +107,253,189,253,251,253,212,253,226,252,107,251,35,250,88,249,249,248,13,249,154,249,94,250,24,251,170,251,242,251,227,251, +173,251,99,251,210,250,22,250,209,249,95,250,71,251,9,252,213,252,175,253,182,253,78,252,97,250,122,249,27,250,109,251, +70,252,101,252,139,252,48,253,182,253,94,253,96,252,120,251,23,251,84,251,45,252,122,253,186,254,60,255,197,254,222,253, +49,253,214,252,144,252,100,252,175,252,152,253,112,254,82,254,140,253,107,253,78,254,1,255,124,254,72,253,197,252,145,253, +240,254,156,255,8,255,217,253,35,253,60,253,129,253,80,253,197,252,95,252,136,252,90,253,122,254,72,255,140,255,133,255, +114,255,102,255,88,255,64,255,83,255,186,255,7,0,201,255,87,255,70,255,184,255,110,0,215,0,107,0,141,255,38,255, +79,255,150,255,237,255,95,0,201,0,55,1,172,1,241,1,12,2,20,2,204,1,65,1,42,1,16,2,180,3,60,5, +186,5,11,5,15,4,162,3,175,3,155,3,32,3,189,2,89,3,24,5,252,6,254,7,24,8,249,7,36,8,110,8, +119,8,90,8,114,8,216,8,144,9,106,10,177,10,23,10,129,9,201,9,165,10,114,11,231,11,10,12,59,12,227,12, +181,13,236,13,54,13,26,12,128,11,196,11,76,12,125,12,122,12,137,12,203,12,84,13,195,13,144,13,44,13,100,13, +240,13,16,14,196,13,150,13,239,13,214,14,192,15,28,16,237,15,164,15,197,15,130,16,38,17,208,16,215,15,72,15, +119,15,15,16,128,16,62,16,154,15,153,15,103,16,49,17,80,17,195,16,54,16,149,16,192,17,154,18,214,18,5,19, +58,19,48,19,219,18,15,18,238,16,67,16,101,16,179,16,180,16,142,16,144,16,234,16,111,17,157,17,39,17,84,16, +198,15,0,16,183,16,251,16,118,16,207,15,173,15,11,16,37,16,40,15,133,13,179,12,23,13,187,13,244,13,188,13, +86,13,81,13,152,13,7,13,80,11,205,9,120,9,201,9,212,9,96,9,247,8,43,9,156,9,109,9,112,8,38,7, +45,6,15,6,156,6,0,7,25,7,117,7,24,8,134,8,77,8,38,7,195,5,142,5,142,6,88,7,93,7,74,7, +174,7,125,8,0,9,60,8,105,6,228,4,87,4,74,4,32,4,167,3,91,3,217,3,160,4,148,4,190,3,242,2, +111,2,34,2,4,2,203,1,65,1,173,0,73,0,236,255,63,255,25,254,236,252,91,252,104,252,173,252,251,252,5,253, +161,252,84,252,103,252,86,252,233,251,127,251,55,251,11,251,40,251,136,251,241,251,63,252,100,252,164,252,56,253,133,253, +246,252,55,252,39,252,150,252,228,252,195,252,90,252,60,252,145,252,143,252,227,251,53,251,229,250,216,250,33,251,124,251, +105,251,37,251,248,250,123,250,145,249,190,248,53,248,241,247,33,248,177,248,84,249,232,249,70,250,67,250,222,249,31,249, +97,248,77,248,201,248,13,249,252,248,0,249,11,249,225,248,123,248,209,247,47,247,53,247,218,247,124,248,195,248,194,248, +206,248,60,249,180,249,135,249,198,248,247,247,82,247,7,247,80,247,240,247,121,248,196,248,210,248,187,248,147,248,58,248, +185,247,76,247,240,246,197,246,36,247,157,247,82,247,140,246,27,246,247,245,250,245,85,246,186,246,193,246,195,246,8,247, +78,247,119,247,148,247,139,247,95,247,41,247,211,246,112,246,70,246,102,246,158,246,172,246,106,246,24,246,6,246,254,245, +177,245,63,245,244,244,242,244,42,245,80,245,43,245,213,244,83,244,180,243,106,243,181,243,90,244,51,245,2,246,63,246, +14,246,22,246,65,246,32,246,238,245,211,245,157,245,137,245,207,245,7,246,33,246,135,246,21,247,88,247,93,247,90,247, +107,247,190,247,54,248,128,248,163,248,197,248,199,248,172,248,161,248,145,248,83,248,30,248,79,248,1,249,242,249,154,250, +130,250,184,249,228,248,167,248,189,248,112,248,213,247,147,247,166,247,171,247,194,247,23,248,114,248,149,248,89,248,194,247, +102,247,209,247,164,248,36,249,48,249,26,249,15,249,232,248,116,248,17,248,71,248,199,248,239,248,5,249,148,249,81,250, +176,250,180,250,174,250,194,250,169,250,8,250,66,249,31,249,132,249,205,249,22,250,234,250,57,252,90,253,170,253,48,253, +184,252,240,252,147,253,244,253,239,253,238,253,57,254,112,254,30,254,207,253,92,254,58,255,62,255,170,254,173,254,104,255, +1,0,2,0,154,255,34,255,193,254,94,254,227,253,149,253,246,253,247,254,177,255,111,255,163,254,8,254,166,253,84,253, +78,253,145,253,186,253,200,253,13,254,88,254,23,254,66,253,177,252,2,253,143,253,100,253,198,252,184,252,150,253,221,254, +135,255,228,254,213,253,249,253,37,255,184,255,46,255,121,254,114,254,62,255,67,0,131,0,216,255,63,255,135,255,135,0, +101,1,98,1,225,0,242,0,127,1,113,1,166,0,218,255,92,255,41,255,54,255,18,255,137,254,52,254,121,254,16,255, +163,255,242,255,190,255,79,255,48,255,65,255,255,254,120,254,28,254,38,254,158,254,79,255,128,255,191,254,182,253,59,253, +70,253,166,253,98,254,221,254,114,254,186,253,124,253,93,253,228,252,23,252,22,251,145,250,80,251,114,252,166,252,137,252, +63,253,107,254,93,255,213,255,99,255,87,254,223,253,3,254,236,253,201,253,17,254,118,254,20,255,66,0,71,1,107,1, +61,1,150,1,165,2,253,3,183,4,108,4,1,4,107,4,93,5,238,5,184,5,37,5,39,5,51,6,144,7,81,8, +98,8,44,8,253,7,2,8,47,8,21,8,105,7,159,6,104,6,172,6,196,6,122,6,249,5,92,5,242,4,248,4, +6,5,246,4,109,5,100,6,208,6,74,6,95,5,158,4,117,4,235,4,76,5,67,5,145,5,198,6,117,8,177,9, +202,9,25,9,225,8,139,9,88,10,227,10,55,11,69,11,135,11,104,12,14,13,213,12,161,12,53,13,56,14,79,15, +61,16,190,16,37,17,191,17,251,17,114,17,155,16,27,16,108,16,90,17,164,17,163,16,130,15,122,15,75,16,38,17, +102,17,208,16,24,16,13,16,41,16,94,15,223,13,213,12,211,12,89,13,159,13,112,13,29,13,241,12,17,13,75,13, +3,13,10,12,40,11,26,11,191,11,95,12,55,12,26,11,218,9,102,9,176,9,231,9,120,9,236,8,119,9,17,11, +34,12,232,11,40,11,85,10,109,9,251,8,40,9,82,9,102,9,233,9,227,10,229,11,86,12,211,11,12,11,12,11, +180,11,102,12,236,12,17,13,17,13,167,13,54,14,73,13,108,11,79,10,28,10,58,10,112,10,74,10,201,9,241,9, +177,10,165,10,115,9,250,7,193,6,25,6,49,6,78,6,163,5,146,4,239,3,222,3,211,3,8,3,91,1,233,255, +15,0,139,1,147,2,1,2,172,0,32,0,147,0,194,0,155,255,164,253,174,252,160,253,68,255,53,0,157,0,23,1, +195,1,188,2,138,3,37,3,230,1,94,1,235,1,193,2,77,3,28,3,105,2,144,2,202,3,82,4,86,3,1,2, +102,1,169,1,62,2,20,2,28,1,186,0,85,1,168,1,238,0,135,255,19,254,82,253,138,253,212,253,120,253,1,253, +40,253,234,253,190,254,217,254,196,253,252,251,127,250,245,249,50,250,80,250,208,249,118,249,15,250,68,251,68,252,151,252, +22,252,5,251,27,250,214,249,27,250,107,250,119,250,130,250,196,250,196,250,32,250,78,249,241,248,55,249,234,249,114,250, +113,250,94,250,158,250,197,250,82,250,53,249,181,247,161,246,141,246,247,246,57,247,108,247,152,247,150,247,161,247,155,247, +215,246,108,245,64,244,238,243,133,244,147,245,73,246,89,246,26,246,150,245,170,244,155,243,178,242,35,242,57,242,160,242, +160,242,108,242,171,242,29,243,10,243,62,242,9,241,11,240,200,239,253,239,9,240,201,239,122,239,68,239,44,239,68,239, +214,239,230,240,184,241,216,241,218,241,253,241,165,241,220,240,104,240,85,240,77,240,125,240,249,240,140,241,56,242,212,242, +0,243,10,243,160,243,142,244,202,244,203,243,90,242,194,241,51,242,181,242,215,242,30,243,213,243,157,244,5,245,226,244, +112,244,27,244,241,243,189,243,132,243,128,243,189,243,205,243,12,243,199,241,49,241,93,241,42,241,157,240,197,240,152,241, +98,242,33,243,201,243,232,243,136,243,251,242,81,242,206,241,218,241,104,242,45,243,245,243,172,244,114,245,53,246,130,246, +124,246,222,246,150,247,32,248,218,248,30,250,231,250,45,250,146,248,168,247,20,248,56,249,101,250,139,251,152,252,76,253, +187,253,253,253,254,253,35,254,189,254,9,255,138,254,59,254,212,254,152,255,206,255,142,255,38,255,2,255,127,255,69,0, +161,0,98,0,237,255,191,255,217,255,186,255,70,255,244,254,221,254,197,254,213,254,42,255,118,255,166,255,225,255,6,0, +23,0,125,0,85,1,251,1,178,1,160,0,211,255,3,0,206,0,159,1,81,2,189,2,216,2,223,2,206,2,157,2, +228,2,217,3,172,4,211,4,188,4,13,5,8,6,14,7,239,6,172,5,201,4,36,5,57,6,84,7,9,8,93,8, +250,8,254,9,91,10,108,9,206,7,105,6,222,5,72,6,248,6,85,7,157,7,7,8,69,8,11,8,40,7,211,5, +4,5,64,5,178,5,142,5,42,5,32,5,139,5,249,5,168,5,136,4,192,3,31,4,219,4,224,4,98,4,78,4, +225,4,129,5,167,5,77,5,173,4,5,4,114,3,207,2,44,2,231,1,249,1,28,2,91,2,96,2,118,1,14,0, +73,255,31,255,255,254,1,255,58,255,192,255,38,1,9,3,218,3,51,3,233,1,88,0,201,254,222,253,126,253,122,253, +121,254,114,0,32,2,205,2,141,2,150,1,190,0,211,0,94,1,197,1,82,2,34,3,235,3,185,4,76,5,227,4, +173,3,202,2,218,2,201,3,75,5,165,6,22,7,218,6,166,6,15,6,252,3,244,0,51,255,232,255,6,2,249,3, +227,4,172,4,9,4,164,3,230,2,3,1,205,254,5,254,59,255,30,1,236,1,109,1,220,0,230,0,53,1,132,1, +127,1,217,0,170,0,94,2,29,5,200,6,199,6,246,5,73,5,75,5,169,5,161,5,99,5,179,5,157,6,162,7, +57,8,57,8,99,8,75,9,15,10,255,9,1,10,132,10,166,10,66,10,25,10,79,10,171,10,44,11,143,11,148,11, +119,11,100,11,48,11,168,10,208,9,55,9,136,9,82,10,129,10,10,10,164,9,96,9,247,8,133,8,30,8,189,7, +217,7,246,8,146,10,106,11,33,11,113,10,172,9,137,8,118,7,67,7,192,7,79,8,249,8,199,9,84,10,97,10, +221,9,227,8,252,7,164,7,209,7,88,8,250,8,126,9,73,10,125,11,254,11,6,11,127,9,117,8,22,8,80,8, +214,8,63,9,232,9,91,11,48,13,120,14,99,14,229,12,112,11,144,11,177,12,70,13,15,13,160,12,129,12,30,13, +202,13,13,13,56,11,54,10,149,10,41,11,242,10,219,9,172,8,127,8,69,9,159,9,202,8,111,7,153,6,175,6, +43,7,64,7,249,6,239,6,7,7,156,6,168,5,166,4,170,3,177,2,70,2,210,2,190,3,78,4,143,4,174,4, +142,4,120,4,166,4,188,4,227,4,193,5,204,6,12,7,3,7,113,7,232,7,6,8,223,7,99,7,223,6,200,6, +165,6,75,6,171,6,173,7,246,7,92,7,180,6,44,6,191,5,110,5,153,4,52,3,101,2,146,2,207,2,123,2, +172,1,180,0,22,0,17,0,68,0,84,0,49,0,201,255,50,255,152,254,228,253,7,253,74,252,251,251,64,252,11,253, +204,253,226,253,123,253,105,253,240,253,66,254,151,253,125,252,24,252,108,252,124,252,156,251,222,249,41,248,252,247,165,249, +110,251,217,251,63,251,186,250,212,250,40,251,180,250,51,249,189,247,81,247,168,247,211,247,41,247,241,245,58,245,77,245, +58,245,127,244,162,243,55,243,166,243,213,244,124,245,181,244,127,243,20,243,40,243,203,242,133,241,209,239,61,239,194,240, +248,242,153,243,82,242,192,240,70,240,128,240,247,239,95,238,18,237,0,237,167,237,32,238,245,237,54,237,137,236,115,236, +178,236,198,236,144,236,54,236,240,235,192,235,121,235,36,235,218,234,126,234,98,234,250,234,154,235,98,235,0,235,119,235, +120,236,93,237,19,238,135,238,151,238,100,238,248,237,113,237,75,237,196,237,107,238,163,238,84,238,12,238,49,238,62,238, +191,237,103,237,249,237,10,239,217,239,24,240,204,239,85,239,63,239,130,239,132,239,235,238,39,238,12,238,169,238,4,239, +174,238,54,238,216,237,127,237,138,237,207,237,175,237,206,237,53,239,31,241,43,242,46,242,121,241,114,240,15,240,189,240, +212,241,252,242,120,244,30,246,95,247,228,247,166,247,238,246,45,246,190,245,3,246,43,247,186,248,20,250,10,251,136,251, +148,251,120,251,63,251,206,250,152,250,46,251,97,252,115,253,211,253,149,253,95,253,142,253,197,253,156,253,1,253,89,252, +198,252,235,254,76,1,234,1,253,0,49,0,107,0,74,1,197,1,51,1,101,0,194,0,92,2,1,4,169,4,26,4, +14,3,161,2,53,3,63,4,26,5,133,5,184,5,24,6,148,6,208,6,204,6,170,6,130,6,156,6,241,6,252,6, +195,6,238,6,159,7,113,8,0,9,232,8,76,8,237,7,233,7,144,7,150,6,75,5,108,4,5,5,26,7,17,9, +175,9,59,9,94,8,187,7,227,7,107,8,114,8,54,8,143,8,122,9,75,10,110,10,196,9,214,8,71,8,44,8, +97,8,186,8,237,8,36,9,215,9,179,10,237,10,93,10,63,9,220,7,243,6,250,6,77,7,105,7,227,7,33,9, +71,10,45,10,197,8,234,6,106,5,193,4,18,5,188,5,229,5,184,5,223,5,26,6,209,5,7,5,233,3,196,2, +66,2,110,2,122,2,29,2,203,1,189,1,153,1,156,0,96,254,216,251,62,250,137,249,118,249,97,250,33,252,91,254, +57,1,157,3,119,3,40,1,172,254,29,252,22,249,36,247,154,247,215,249,231,252,190,255,155,0,242,254,159,252,165,251, +52,252,83,253,123,254,239,255,218,1,182,3,214,4,175,4,182,2,102,255,249,252,85,253,188,255,8,2,115,3,180,4, +15,6,205,6,22,6,115,3,153,255,251,252,111,253,117,255,157,0,75,1,210,2,25,4,42,3,253,255,68,252,52,250, +39,251,25,254,133,0,239,0,184,255,77,254,208,253,194,253,198,252,237,250,190,249,143,250,194,253,240,1,66,4,211,3, +254,2,123,3,30,4,148,3,99,2,201,1,84,2,92,3,194,3,133,3,164,3,133,4,187,5,216,6,178,7,159,8, +251,9,34,11,66,11,216,10,173,10,136,10,54,10,71,10,254,10,192,11,182,11,158,10,76,9,13,9,252,9,205,10, +157,10,240,9,163,9,207,9,254,9,207,9,252,8,132,7,49,6,249,5,216,6,54,8,146,9,41,10,127,9,104,8, +189,7,17,7,27,6,182,5,136,6,78,8,105,10,6,12,100,12,88,11,92,9,140,7,10,7,195,7,253,8,192,10, +7,13,213,14,135,15,34,15,104,13,245,10,159,9,244,9,209,10,210,11,130,13,191,15,227,17,71,19,25,19,73,17, +64,15,159,14,164,15,17,17,178,17,252,17,4,19,18,20,97,19,183,16,97,13,209,10,79,10,13,12,83,14,112,15, +154,15,139,15,251,14,126,13,133,11,219,9,3,9,71,9,138,10,245,11,124,12,227,11,206,10,231,9,87,9,221,8, +59,8,216,7,105,8,218,9,77,11,239,11,73,11,186,9,114,8,247,7,206,7,24,8,75,9,218,10,72,12,230,13, +43,15,13,15,245,13,233,12,82,12,189,12,49,14,39,15,226,14,173,14,61,15,166,15,59,15,24,14,211,12,158,12, +222,13,48,15,89,15,190,14,19,14,87,13,29,12,253,9,90,7,150,5,129,5,101,6,29,7,33,7,141,6,236,5, +190,5,182,5,16,5,179,3,101,2,191,1,141,1,87,1,212,0,252,255,84,255,120,255,213,255,67,255,17,254,132,253, +168,253,155,253,26,253,84,252,113,251,195,250,117,250,56,250,211,249,99,249,49,249,141,249,95,250,58,251,236,251,65,252, +211,251,10,251,193,250,170,250,232,249,165,248,128,247,208,246,235,246,129,247,134,247,229,246,130,246,78,246,140,245,70,244, +3,243,15,242,151,241,140,241,139,241,78,241,177,240,167,239,100,238,16,237,171,235,145,234,49,234,111,234,248,234,114,235, +59,235,42,234,5,233,50,232,20,231,100,229,231,227,63,227,24,227,253,226,54,227,24,228,3,229,26,229,115,228,168,227, +43,227,99,227,64,228,249,228,57,229,135,229,4,230,52,230,255,229,202,229,237,229,128,230,77,231,35,232,36,233,80,234, +74,235,180,235,40,235,124,233,139,231,136,230,127,230,204,230,92,231,90,232,125,233,63,234,48,234,54,233,175,231,73,230, +248,229,97,231,174,233,90,235,41,236,170,236,170,236,247,235,1,235,215,233,140,232,20,232,225,232,30,234,84,235,212,236, +119,238,140,239,169,239,238,238,27,238,14,238,216,238,13,240,141,241,44,243,99,244,235,244,236,244,187,244,188,244,59,245, +54,246,136,247,14,249,144,250,169,251,2,252,211,251,193,251,249,251,23,252,5,252,27,252,176,252,243,253,136,255,145,0, +234,0,58,1,133,1,85,1,225,0,148,0,144,0,64,1,192,2,53,4,7,5,124,5,208,5,47,6,212,6,84,7, +60,7,53,7,239,7,255,8,198,9,44,10,68,10,41,10,230,9,49,9,239,7,191,6,141,6,168,7,77,9,82,10, +151,10,240,10,143,11,224,11,183,11,96,11,40,11,63,11,138,11,177,11,187,11,244,11,103,12,244,12,87,13,73,13, +3,13,219,12,145,12,30,12,16,12,120,12,228,12,81,13,155,13,65,13,150,12,123,12,229,12,50,13,81,13,133,13, +203,13,211,13,67,13,78,12,195,11,2,12,137,12,153,12,247,11,68,11,99,11,18,12,3,12,175,10,222,8,145,7, +61,7,157,7,230,7,191,7,144,7,171,7,247,7,14,8,79,7,180,5,61,4,200,3,42,4,181,4,217,4,147,4, +138,4,13,5,115,5,13,5,252,3,251,2,203,2,47,3,2,3,18,2,63,1,118,0,16,255,145,253,163,252,210,251, +218,250,28,250,177,249,139,249,106,249,158,248,113,247,85,247,91,248,245,248,153,248,18,248,221,247,233,247,180,247,129,246, +174,244,204,243,115,244,164,245,140,246,35,247,100,247,78,247,95,247,255,247,161,248,132,248,15,248,113,248,19,250,46,252, +134,253,96,253,104,252,21,252,182,252,68,253,32,253,156,252,111,252,48,253,87,254,111,254,76,253,65,252,6,252,109,252, +27,253,46,253,84,252,244,251,189,252,15,253,195,251,185,249,18,248,118,247,37,248,54,249,113,249,235,248,96,248,48,248, +141,248,26,249,255,248,101,248,116,248,183,249,188,251,162,253,167,254,245,254,86,255,200,255,172,255,11,255,136,254,158,254, +70,255,222,255,234,255,230,255,108,0,38,1,158,1,18,2,226,2,242,3,199,4,19,5,21,5,27,5,27,5,38,5, +143,5,123,6,217,7,36,9,113,9,206,8,95,8,63,8,121,7,88,6,19,6,212,6,20,8,131,9,168,10,42,11, +55,11,231,10,68,10,198,9,212,9,100,10,61,11,253,11,152,12,117,13,31,14,151,13,135,12,122,12,65,13,216,13, +54,14,139,14,196,14,29,15,114,15,13,15,245,13,20,13,10,13,204,13,205,14,137,15,13,16,83,16,207,15,175,14, +249,13,255,13,94,14,25,15,56,16,107,17,152,18,180,19,111,20,182,20,209,20,5,21,128,21,43,22,191,22,88,23, +16,24,137,24,145,24,63,24,109,23,98,22,8,22,133,22,42,23,172,23,236,23,179,23,106,23,105,23,14,23,3,22, +43,21,75,21,12,22,133,22,33,22,74,21,219,20,228,20,203,20,60,20,85,19,136,18,77,18,89,18,42,18,3,18, +44,18,42,18,163,17,172,16,132,15,9,15,209,15,206,16,3,17,30,17,175,17,46,18,102,18,116,18,45,18,216,17, +219,17,217,17,183,17,244,17,68,18,3,18,141,17,109,17,112,17,82,17,237,16,251,15,165,14,97,13,62,12,9,11, +207,9,210,8,44,8,157,7,254,6,152,6,69,6,75,5,210,3,198,2,53,2,149,1,225,0,22,0,45,255,172,254, +157,254,16,254,213,252,182,251,208,250,162,249,45,248,221,246,16,246,217,245,182,245,11,245,209,243,120,242,143,241,81,241, +48,241,168,240,26,240,205,239,110,239,7,239,186,238,19,238,43,237,242,236,121,237,247,237,19,238,185,237,198,236,125,235, +68,234,62,233,122,232,207,231,244,230,57,230,24,230,96,230,163,230,143,230,204,229,147,228,168,227,33,227,166,226,101,226, +126,226,147,226,105,226,227,225,248,224,53,224,11,224,236,223,97,223,181,222,48,222,1,222,65,222,57,222,254,220,235,218, +25,217,42,216,34,216,103,216,43,216,118,215,253,214,13,215,88,215,96,215,205,214,4,214,213,213,119,214,144,215,201,216, +198,217,90,218,187,218,215,218,103,218,236,217,90,218,5,220,109,222,161,224,250,225,193,226,95,227,115,227,209,226,52,226, +48,226,232,226,152,228,26,231,117,233,199,234,10,235,2,235,147,235,211,236,27,238,9,239,167,239,56,240,72,241,191,242, +92,243,156,242,161,241,84,241,178,241,171,242,179,243,221,243,132,243,201,243,119,244,132,244,244,243,199,243,188,244,126,246, +226,247,95,248,164,248,66,249,3,250,187,250,60,251,72,251,137,251,25,253,176,255,232,1,48,3,31,4,15,5,165,5, +183,5,178,5,230,5,122,6,30,8,10,11,152,13,30,14,103,13,54,13,207,13,140,14,36,15,156,15,69,16,171,17, +139,19,167,20,71,20,96,19,168,19,114,21,56,23,198,23,173,23,221,23,118,24,54,25,155,25,21,25,25,24,223,23, +156,24,93,25,137,25,77,25,252,24,159,24,17,24,99,23,231,22,191,22,205,22,249,22,36,23,33,23,244,22,183,22, +139,22,142,22,127,22,240,21,33,21,155,20,98,20,97,20,136,20,47,20,7,19,247,17,134,17,31,17,185,16,210,16, +249,16,163,16,56,16,243,15,125,15,249,14,179,14,124,14,108,14,239,14,195,15,48,16,253,15,95,15,155,14,245,13, +130,13,65,13,66,13,80,13,246,12,70,12,209,11,160,11,22,11,224,9,74,8,209,6,208,5,82,5,223,4,250,3, +221,2,18,2,85,1,253,255,86,254,87,253,44,253,239,252,228,251,108,250,99,249,242,248,122,248,137,247,57,246,245,244, +35,244,101,243,202,241,160,239,116,238,100,238,253,237,255,236,85,236,57,236,199,236,92,238,30,240,20,241,8,242,55,243, +174,242,208,239,205,236,32,235,122,234,19,235,118,237,226,240,19,244,68,246,207,246,130,245,89,243,9,242,188,242,242,244, +173,246,195,246,54,246,47,246,120,246,150,246,63,246,245,244,120,243,202,243,226,245,13,247,241,245,34,244,61,243,50,243, +30,243,5,242,7,240,103,239,43,242,164,246,219,248,85,247,84,244,103,242,114,241,243,239,35,238,251,237,47,240,55,243, +75,245,119,245,153,243,29,241,74,240,186,241,30,244,95,246,56,248,240,249,119,252,195,255,138,1,115,0,175,254,157,254, +150,255,8,0,209,255,180,255,161,0,168,2,0,4,104,3,189,2,32,4,138,6,27,8,18,9,89,10,150,11,196,11, +98,10,47,8,24,7,58,8,124,10,53,12,24,13,214,13,189,14,47,15,116,14,4,13,33,12,26,12,97,12,239,12, +226,13,197,14,133,15,165,16,209,17,13,18,69,17,112,16,151,16,23,18,6,20,213,20,96,20,73,20,129,21,228,22, +227,22,183,21,59,21,180,22,30,25,115,26,68,26,218,25,56,26,107,27,43,29,220,30,210,31,53,32,110,32,40,32, +51,31,49,30,70,29,24,28,161,27,52,29,253,31,47,34,142,35,191,36,221,37,206,38,11,39,151,37,4,35,192,33, +225,34,186,36,85,37,165,36,237,35,216,35,141,35,26,34,60,32,91,31,172,31,138,32,84,33,86,33,66,32,160,30, +0,29,164,27,251,26,32,27,108,27,127,27,157,27,192,27,139,27,1,27,92,26,144,25,120,24,88,23,225,22,53,23, +65,23,53,22,213,20,31,20,198,19,33,19,43,18,60,17,8,17,67,18,32,20,130,20,198,18,178,16,248,15,21,16, +119,15,165,13,189,11,66,11,140,12,46,14,70,14,143,12,133,10,116,9,46,9,144,8,193,6,57,4,107,2,238,1, +214,1,18,1,63,255,158,252,75,250,76,249,253,248,22,248,203,246,45,246,113,246,232,246,120,246,121,244,214,241,51,240, +178,239,39,239,222,237,32,236,229,234,23,235,45,236,119,236,56,235,57,233,132,231,159,230,76,230,201,229,216,228,247,227, +141,227,175,227,233,227,22,227,0,225,100,223,136,223,119,224,2,225,28,225,220,224,108,224,94,224,150,224,26,224,212,222, +234,221,239,221,32,222,163,221,136,220,117,219,237,218,56,219,33,220,181,220,8,220,91,218,216,216,90,216,226,216,186,217, +28,218,227,217,122,217,82,217,133,217,157,217,33,217,139,216,177,216,103,217,14,218,125,218,138,218,50,218,39,218,132,218, +48,218,219,216,147,215,16,215,87,215,86,216,138,217,52,218,101,218,228,218,42,220,182,221,67,222,126,221,245,220,223,221, +125,223,182,224,53,225,3,225,8,225,88,226,20,228,181,228,224,228,12,230,11,232,62,234,133,236,58,238,219,238,14,239, +45,239,156,238,149,237,114,237,193,238,193,240,150,242,244,243,247,244,219,245,180,246,61,247,92,247,196,247,70,249,102,251, +203,252,15,253,30,253,212,253,245,254,133,255,46,255,2,255,46,0,116,2,158,4,182,5,176,5,136,5,22,6,183,6, +170,6,178,6,152,7,225,8,67,10,248,11,184,13,85,15,62,17,58,19,103,20,127,20,21,20,75,20,254,21,37,24, +205,24,233,23,234,22,142,22,13,23,65,24,14,25,15,25,171,25,127,27,90,29,136,30,34,31,225,30,233,29,251,28, +9,28,183,26,154,25,54,25,54,25,108,25,244,25,98,26,84,26,71,26,219,26,209,27,78,28,197,27,131,26,92,25, +226,24,206,24,123,24,254,23,9,24,165,24,238,24,31,24,82,22,123,20,151,19,138,19,128,19,71,19,229,18,209,17, +66,16,89,15,29,15,178,14,40,14,186,13,12,13,107,12,92,12,95,12,81,12,201,12,8,13,188,11,71,9,175,6, +32,4,231,1,157,0,88,0,230,0,108,1,104,0,35,254,249,252,162,253,75,254,199,253,176,252,5,252,44,252,95,252, +65,251,26,249,150,247,199,246,35,245,175,242,103,241,84,242,18,244,150,244,104,243,158,241,53,240,65,239,121,238,196,237, +26,237,88,236,86,235,41,234,60,233,184,232,13,232,176,230,88,229,115,229,147,230,51,230,152,227,127,225,191,225,105,226, +123,225,184,223,144,222,101,222,246,222,145,223,19,224,167,225,156,228,64,231,106,232,85,232,216,230,238,227,248,224,60,223, +232,222,209,223,81,225,202,226,229,228,237,231,33,234,60,234,115,233,94,233,80,234,243,235,161,237,208,238,181,239,122,240, +113,240,35,239,34,237,146,235,136,235,58,237,114,239,185,240,233,240,245,240,151,241,93,242,6,242,19,240,202,237,6,237, +110,238,251,240,235,242,96,243,6,243,184,242,53,242,35,241,143,240,245,241,23,245,15,248,121,249,103,249,143,248,238,247, +103,248,96,249,128,249,110,249,32,251,185,254,207,2,54,6,175,7,203,6,177,5,99,6,125,7,20,7,10,6,26,6, +125,7,97,9,177,10,2,11,112,11,36,13,120,15,43,17,60,18,139,19,107,21,234,22,209,22,138,21,228,20,181,21, +46,23,54,24,70,24,199,23,220,23,6,25,139,26,165,27,54,28,148,28,77,29,93,30,238,30,236,30,115,31,177,32, +115,33,63,33,207,32,207,32,150,33,60,35,39,37,87,38,118,38,37,38,64,38,2,39,207,39,215,39,9,39,37,38, +202,37,210,37,222,37,251,37,94,38,43,39,146,40,31,42,174,42,63,42,33,42,110,42,244,41,161,40,55,39,234,37, +95,37,153,38,194,40,14,42,152,42,149,43,226,44,143,45,63,45,1,44,59,42,2,41,86,41,136,42,116,42,96,40, +86,38,248,37,240,37,120,36,11,34,66,32,31,32,116,33,128,34,180,33,46,32,195,31,197,31,131,30,239,27,5,25, +234,22,182,22,8,24,229,24,53,24,211,22,249,21,9,22,75,22,94,21,228,18,95,16,117,15,6,16,126,16,126,15, +59,13,77,11,199,10,250,10,180,10,20,10,25,10,251,10,252,11,99,12,170,11,155,9,15,7,94,5,140,4,142,3, +38,2,245,0,91,0,112,0,198,0,34,0,229,253,26,251,4,249,170,247,101,246,225,244,112,243,120,242,147,241,2,240, +216,237,161,235,198,233,207,232,178,232,113,232,211,231,165,231,156,231,222,230,243,229,109,229,168,228,131,227,127,226,86,225, +2,224,96,223,71,223,204,222,62,222,55,222,81,222,73,222,52,222,126,221,22,220,53,219,110,219,215,219,173,219,23,219, +140,218,120,218,220,218,33,219,235,218,182,218,49,219,108,220,206,221,135,222,86,222,188,221,40,221,72,220,182,218,220,216, +154,215,145,215,246,216,12,219,57,220,239,219,121,219,159,219,131,219,189,218,0,218,163,217,250,217,220,219,191,222,137,224, +51,224,159,222,6,221,38,220,25,220,128,220,94,221,202,222,35,224,28,225,8,226,91,226,136,225,196,224,3,225,102,225, +145,225,51,226,11,227,211,227,121,229,220,231,84,233,128,233,136,233,65,234,9,236,163,238,173,240,73,241,142,241,204,242, +221,244,164,246,39,247,180,246,42,247,216,249,161,253,110,0,88,1,221,0,84,0,230,0,22,2,80,2,159,1,209,1, +153,3,202,5,111,7,115,8,222,8,74,9,156,10,64,12,200,12,127,12,203,12,218,13,3,15,199,15,135,15,61,14, +80,13,171,13,102,14,84,14,114,13,207,12,155,13,131,15,212,16,44,17,152,17,10,18,232,17,216,17,14,18,156,17, +226,16,59,17,108,18,143,19,176,20,183,21,67,22,200,22,162,23,25,24,146,23,126,22,249,21,235,22,138,24,204,24, +110,23,92,22,133,22,25,23,122,23,133,23,62,23,97,23,62,24,113,24,247,22,23,21,50,20,181,19,188,18,164,17, +14,17,4,17,88,17,155,17,67,17,126,16,214,15,2,15,143,13,5,12,245,10,26,10,70,9,149,8,172,7,86,6, +248,4,192,3,194,2,88,2,43,2,126,1,201,0,201,0,211,0,54,0,142,255,108,255,144,255,93,255,41,254,32,252, +153,250,30,250,203,249,99,249,96,249,117,249,84,249,80,249,39,249,90,248,74,247,42,246,159,244,57,243,222,242,33,243, +10,243,134,242,32,242,71,242,163,242,255,241,238,239,235,237,155,237,11,239,42,241,119,242,181,241,58,239,184,236,52,235, +120,234,61,234,95,234,124,234,118,234,140,234,88,234,16,233,78,231,192,230,141,231,254,231,15,231,116,229,44,228,112,227, +206,226,200,225,204,224,206,224,174,225,112,226,200,226,213,226,117,226,7,226,54,226,159,226,89,226,53,225,181,223,160,222, +160,222,146,223,240,224,148,226,51,228,118,229,211,230,96,232,235,232,21,232,26,231,179,230,167,230,33,231,46,232,98,233, +8,235,134,237,191,239,63,240,108,239,37,239,113,240,96,242,115,243,197,243,110,244,111,245,27,246,102,246,36,246,239,244, +161,243,160,243,178,244,184,245,154,246,239,247,176,249,58,251,173,251,109,250,38,248,243,246,91,248,73,251,45,253,65,253, +66,253,147,254,82,0,212,0,227,255,1,255,190,255,39,2,243,4,206,6,109,7,201,7,244,8,66,10,39,10,37,9, +121,9,226,11,20,15,182,17,55,19,15,20,154,21,1,24,78,25,72,24,153,22,207,22,116,25,133,28,160,29,220,28, +135,28,236,29,22,32,131,33,162,33,90,33,66,34,97,36,16,38,167,38,228,38,251,38,211,38,210,38,192,38,233,37, +231,36,44,37,28,39,178,41,83,43,56,43,168,42,55,43,61,44,50,44,86,43,208,42,212,42,12,43,47,43,235,42, +95,42,22,42,21,42,0,42,0,42,78,42,132,42,118,42,196,42,137,43,173,43,144,42,240,40,176,39,30,39,48,39, +43,39,75,38,132,37,101,38,75,40,69,41,239,40,54,40,180,39,150,39,127,39,159,38,7,37,251,35,71,36,41,37, +66,37,97,36,227,35,126,36,218,36,202,35,13,34,187,32,82,32,15,33,200,33,135,32,216,29,20,28,111,27,97,26, +125,24,36,22,221,19,213,18,85,19,220,19,91,19,11,18,22,16,210,13,244,11,3,10,47,7,118,4,92,3,171,3, +80,4,129,4,137,3,126,1,157,255,126,254,84,253,221,251,21,251,139,251,134,252,246,252,42,252,40,250,226,247,60,246, +250,244,208,243,114,243,52,244,66,245,30,246,186,246,61,246,26,244,103,241,71,239,191,237,206,236,148,236,163,236,156,236, +145,236,77,236,49,235,222,232,226,229,234,227,12,228,40,229,151,229,23,229,232,227,85,226,36,225,23,224,4,222,220,219, +172,219,213,220,158,221,58,222,218,222,158,222,252,221,237,221,163,221,135,220,188,219,212,219,89,220,74,221,72,222,53,222, +74,221,8,221,200,221,125,222,101,222,191,221,137,221,152,222,86,224,83,225,54,225,238,224,245,224,200,224,23,224,103,223, +100,223,79,224,187,225,222,226,147,227,136,228,171,229,232,229,38,229,140,228,113,228,57,228,232,227,23,228,23,229,210,230, +164,232,195,233,65,234,149,234,191,234,236,234,137,235,100,236,59,237,78,238,106,239,57,240,254,240,103,241,185,240,202,239, +243,239,225,240,8,242,154,243,232,244,82,245,225,245,17,247,204,247,241,247,22,248,164,247,171,246,255,246,11,249,249,250, +177,251,190,251,203,251,53,252,213,252,7,253,1,253,21,254,177,0,101,3,176,4,154,4,63,4,94,4,202,4,227,4, +116,4,46,4,32,5,107,7,191,9,159,10,240,9,3,9,20,9,204,9,205,9,227,8,92,8,12,9,137,10,8,12, +182,12,57,12,111,11,69,11,96,11,59,11,14,11,5,11,63,11,234,11,102,12,194,11,55,10,211,8,101,8,29,9, +8,10,246,9,152,9,87,10,153,11,32,12,30,12,197,11,172,10,125,9,48,9,89,9,106,9,183,9,77,10,223,10, +133,11,39,12,50,12,114,11,103,10,219,9,29,10,111,10,5,10,82,9,4,9,180,8,231,7,245,6,37,6,86,5, +187,4,201,4,97,5,215,5,215,5,182,5,154,5,9,5,192,3,34,2,149,0,131,255,148,255,188,0,220,1,7,2, +109,1,201,0,95,0,183,255,129,254,88,253,203,252,145,252,130,252,223,252,74,253,76,253,19,253,149,252,209,251,178,251, +109,252,125,252,110,251,223,250,154,251,106,252,32,252,199,250,92,249,2,249,184,249,92,250,59,250,148,249,17,249,63,249, +205,249,187,249,247,248,87,248,250,247,127,247,21,247,210,246,119,246,81,246,212,246,121,247,61,247,215,245,28,244,90,243, +227,243,158,244,165,244,109,244,233,244,44,246,247,246,223,245,151,243,176,242,225,243,218,244,4,244,245,242,190,243,165,245, +34,246,98,244,48,242,66,241,77,241,89,241,86,241,243,241,175,243,199,245,82,246,164,244,130,242,171,241,1,242,226,242, +26,244,66,245,240,245,75,246,147,246,134,246,169,245,40,244,38,243,111,243,67,244,128,244,60,244,71,244,14,245,48,246, +145,246,158,245,118,244,80,244,186,244,191,244,84,244,215,243,158,243,204,243,235,243,124,243,182,242,248,241,162,241,45,242, +16,243,26,243,170,242,228,242,64,243,210,242,82,242,142,242,45,243,15,244,107,245,191,246,121,247,212,247,46,248,146,248, +39,249,31,250,42,251,159,251,122,251,198,251,42,253,207,254,197,255,147,0,26,2,29,4,176,5,68,6,8,6,182,5, +214,5,93,6,16,7,206,7,98,8,143,8,74,8,227,7,243,7,149,8,10,9,228,8,196,8,49,9,192,9,219,9, +140,9,43,9,175,8,222,7,106,7,138,8,224,10,140,12,202,12,104,12,25,12,33,12,128,12,184,12,217,12,188,13, +17,15,135,15,78,15,161,15,111,16,253,16,100,17,2,18,235,18,245,19,185,20,85,21,111,22,165,23,217,23,62,23, +211,22,197,22,6,23,155,23,234,23,211,23,122,24,6,26,224,26,103,26,200,25,160,25,110,25,49,25,104,25,185,25, +81,25,144,24,192,24,247,25,235,26,239,26,139,26,54,26,252,25,228,25,165,25,209,24,220,23,232,23,10,25,227,25, +115,25,106,24,232,23,244,23,236,23,112,23,124,22,187,21,71,22,217,23,158,24,216,23,169,22,231,21,75,21,132,20, +144,19,200,18,193,18,104,19,229,19,194,19,28,19,76,18,13,18,165,18,22,19,171,18,27,18,249,17,241,17,220,17, +184,17,21,17,232,15,243,14,226,14,181,15,164,16,158,16,137,15,132,14,81,14,123,14,38,14,239,12,72,11,47,10, +27,10,119,10,108,10,171,9,137,8,180,7,115,7,71,7,151,6,73,5,212,3,22,3,67,3,33,3,193,1,36,0, +137,255,164,255,153,255,12,255,219,253,105,252,195,251,54,252,208,252,226,252,191,252,173,252,96,252,196,251,56,251,204,250, +80,250,19,250,108,250,245,250,49,251,43,251,234,250,140,250,200,250,206,251,154,252,121,252,224,251,89,251,39,251,91,251, +65,251,32,250,220,248,232,248,217,249,21,250,79,249,164,248,211,248,156,249,87,250,97,250,98,249,227,247,1,247,4,247, +34,247,228,246,126,246,35,246,44,246,246,246,226,247,218,247,236,246,246,245,107,245,97,245,179,245,6,246,115,246,27,247, +66,247,124,246,146,245,245,244,105,244,123,244,149,245,125,246,105,246,117,246,88,247,50,248,71,248,179,247,179,246,211,245, +240,245,8,247,250,247,249,247,158,247,3,248,32,249,197,249,78,249,106,248,7,248,91,248,254,248,116,249,155,249,158,249, +135,249,55,249,218,248,199,248,232,248,229,248,197,248,216,248,43,249,136,249,202,249,211,249,129,249,242,248,90,248,169,247, +0,247,170,246,77,246,140,245,44,245,177,245,227,245,200,244,96,243,220,242,47,243,196,243,222,243,34,243,153,242,43,243, +176,243,211,242,93,241,138,240,98,240,175,240,113,241,69,242,202,242,16,243,38,243,16,243,5,243,20,243,11,243,222,242, +216,242,91,243,96,244,90,245,233,245,41,246,254,245,41,245,36,244,166,243,183,243,9,244,109,244,186,244,11,245,152,245, +241,245,147,245,253,244,231,244,32,245,46,245,32,245,33,245,68,245,135,245,117,245,140,244,96,243,58,243,71,244,137,245, +75,246,93,246,155,245,156,244,130,244,32,245,28,245,94,244,24,244,201,244,16,246,112,247,18,248,178,247,147,247,116,248, +237,248,230,247,135,246,53,246,196,246,108,247,239,247,132,248,64,249,192,249,198,249,173,249,186,249,198,249,7,250,212,250, +177,251,228,251,111,251,162,250,187,249,65,249,149,249,69,250,201,250,138,251,37,253,233,254,94,255,123,254,210,253,21,254, +91,254,42,254,31,254,163,254,163,255,250,0,0,2,222,1,183,0,137,255,11,255,95,255,59,0,242,0,242,0,118,0, +97,0,12,1,117,1,134,0,4,255,187,254,253,255,108,1,216,1,68,1,159,0,189,0,39,1,183,0,138,255,236,254, +60,255,141,255,67,255,202,254,185,254,14,255,117,255,218,255,76,0,170,0,252,0,147,1,97,2,224,2,201,2,73,2, +195,1,133,1,124,1,141,1,9,2,25,3,42,4,201,4,40,5,109,5,143,5,145,5,82,5,242,4,49,5,30,6, +160,6,84,6,24,6,68,6,67,6,217,5,55,5,137,4,76,4,17,5,82,6,156,6,97,5,224,3,157,3,125,4, +50,5,250,4,30,4,96,3,103,3,17,4,154,4,196,4,246,4,44,5,222,4,245,3,226,2,64,2,134,2,132,3, +115,4,186,4,55,4,54,3,108,2,86,2,179,2,51,3,220,3,131,4,236,4,59,5,117,5,71,5,134,4,90,3, +53,2,169,1,180,1,197,1,217,1,94,2,50,3,221,3,236,3,167,2,18,0,233,253,204,253,18,255,161,255,93,254, +27,252,88,250,105,249,158,248,210,247,112,247,197,247,136,249,39,253,167,0,242,0,151,253,240,248,67,245,109,243,229,242, +124,242,120,242,204,244,115,249,220,252,15,252,129,248,0,246,54,246,178,247,192,248,134,249,5,251,37,253,160,254,72,254, +255,251,246,248,24,247,143,247,179,249,2,252,222,253,154,255,143,1,155,3,94,4,149,1,201,251,251,247,237,249,239,254, +246,1,240,1,43,1,76,1,128,1,133,255,56,251,141,248,218,250,9,0,165,3,236,3,202,1,86,255,120,254,136,254, +40,253,120,250,45,249,248,250,132,255,228,4,225,7,255,6,198,4,50,4,199,4,71,4,56,2,165,0,196,1,192,4, +48,6,200,4,236,2,227,2,166,4,26,7,252,8,183,9,101,10,8,12,104,13,9,13,122,11,241,9,236,8,224,8, +2,10,133,11,143,12,40,13,167,13,71,14,33,15,197,15,150,15,207,14,66,14,94,14,83,15,238,16,215,17,168,16, +224,13,107,11,219,10,151,12,122,15,155,17,167,18,217,19,27,21,20,21,189,19,55,18,108,17,4,18,47,19,158,18, +130,16,33,16,93,18,160,20,117,21,100,21,31,21,11,22,213,24,240,26,210,25,183,22,244,19,86,18,56,18,17,19, +57,19,234,18,103,20,26,24,238,27,196,29,164,28,153,25,87,23,33,23,235,23,211,24,148,25,200,25,249,25,157,26, +221,25,154,22,186,19,67,20,37,23,165,25,118,26,195,25,12,25,207,25,183,26,13,25,26,21,187,17,126,16,28,17, +244,18,207,20,82,21,163,20,4,20,238,19,232,19,98,19,49,18,13,17,236,16,98,17,249,16,34,15,130,12,40,10, +65,9,251,9,18,11,186,11,87,12,194,12,167,12,177,12,147,12,199,10,4,8,175,6,155,6,255,5,12,5,164,4, +140,4,5,5,134,6,146,7,38,6,219,2,137,0,41,1,98,3,214,3,106,1,96,254,185,252,83,252,33,252,221,250, +83,248,182,246,132,247,137,248,160,247,11,246,98,245,118,245,250,245,44,246,79,244,160,240,241,237,177,237,82,238,207,237, +213,235,244,233,24,234,236,235,254,236,2,236,20,234,229,232,71,233,139,234,118,234,153,231,154,227,53,225,9,225,13,226, +58,227,147,227,202,226,80,226,84,227,122,228,6,228,144,226,120,225,23,225,119,225,20,226,139,225,245,223,125,223,189,224, +145,225,168,224,56,223,248,222,73,224,227,225,253,225,137,224,75,223,86,223,32,224,197,224,176,224,204,223,198,222,116,222, +18,223,52,224,198,224,24,224,91,223,38,224,244,225,55,227,116,227,193,226,112,225,169,224,6,225,123,225,56,225,214,224, +0,225,187,225,210,226,182,227,232,227,183,227,223,227,168,228,181,229,95,230,131,230,207,230,181,231,184,232,47,233,186,232, +115,231,162,230,231,231,236,234,133,237,96,238,48,238,98,238,130,239,203,240,247,240,188,239,99,238,142,238,65,240,206,241, +36,242,41,242,228,242,230,243,118,244,125,244,18,244,215,243,243,244,68,247,8,249,56,249,171,248,133,248,212,248,6,249, +21,249,162,249,9,251,42,253,194,255,242,1,163,2,60,2,4,2,230,1,81,1,249,0,103,1,53,2,174,3,37,6, +41,8,125,8,27,8,67,8,255,8,36,10,148,11,250,12,95,14,205,15,129,16,232,15,136,14,43,13,62,12,44,12, +43,13,235,14,236,16,191,18,231,19,15,20,103,19,94,18,28,17,198,15,32,15,209,15,109,17,34,19,128,20,254,20, +100,20,184,19,198,19,190,19,38,19,42,19,167,20,244,22,231,24,163,25,2,25,217,23,17,23,198,22,223,22,136,23, +219,24,173,26,93,28,10,29,149,28,154,27,93,26,7,25,57,24,60,24,161,24,11,25,78,25,90,25,109,25,88,25, +103,24,222,22,231,21,200,21,246,21,46,22,47,22,177,21,216,20,187,19,84,18,247,16,175,15,61,14,56,13,55,13, +124,13,115,13,114,13,26,13,213,11,148,10,51,10,192,9,128,8,66,7,197,6,225,6,68,7,149,7,87,7,79,6, +213,4,199,3,212,3,158,4,5,5,50,4,48,2,54,0,215,255,248,0,196,1,73,1,87,0,117,255,48,254,173,252, +209,251,191,251,182,251,143,251,217,251,79,252,194,251,254,249,37,248,5,247,102,246,148,245,40,244,4,243,132,243,221,244, +212,244,122,243,196,242,212,242,24,242,17,240,196,237,167,236,79,237,88,238,210,237,226,235,24,234,68,233,128,233,105,234, +190,234,154,233,219,231,15,231,144,231,24,232,56,231,97,229,65,228,44,228,60,228,44,228,205,227,198,226,243,225,55,226, +95,226,57,225,212,223,170,223,14,225,156,227,22,230,56,231,93,231,99,231,218,230,51,229,252,226,93,225,130,225,128,227, +133,229,96,230,106,231,187,233,45,236,152,237,3,238,198,237,202,237,9,239,195,240,113,241,99,241,231,241,213,242,255,242, +2,242,146,240,246,239,92,241,118,244,20,247,127,247,148,246,34,246,93,246,102,246,216,245,234,244,157,244,88,246,149,249, +86,251,178,249,103,246,188,244,252,245,110,248,161,249,148,249,81,250,163,252,27,255,193,255,183,253,142,250,108,249,64,251, +24,254,235,0,85,4,254,7,2,11,75,13,114,14,20,14,60,13,240,12,8,13,148,13,204,14,47,16,150,17,17,19, +209,19,190,19,82,20,88,22,63,25,95,28,178,30,140,31,24,32,13,33,198,32,136,30,94,28,14,28,129,29,230,31, +54,34,218,35,29,37,181,37,205,36,35,35,96,34,229,34,82,36,62,38,161,39,223,39,162,39,49,39,28,38,9,37, +253,36,113,37,147,37,24,38,215,39,7,42,81,43,130,43,89,43,79,43,232,42,76,41,224,38,150,37,137,38,107,40, +179,41,126,42,83,43,77,44,171,45,231,46,198,46,161,45,200,44,212,43,47,42,15,41,204,40,47,40,168,39,158,40, +85,42,115,43,247,43,12,44,217,43,242,43,246,43,3,43,152,41,98,40,28,39,239,37,0,37,149,35,213,33,162,32, +107,31,160,29,106,28,36,28,149,27,155,26,229,25,33,25,219,23,4,22,51,19,177,15,18,13,77,12,187,12,228,12, +176,11,196,9,215,8,215,8,54,8,204,6,98,5,22,4,116,3,254,3,254,3,167,1,124,254,247,252,220,252,182,252, +116,252,178,252,113,253,107,254,45,255,217,254,18,253,221,250,54,249,154,247,122,245,182,243,76,243,6,244,7,245,69,245, +252,243,171,241,169,239,168,238,95,238,241,237,173,236,50,235,110,234,134,233,49,231,1,228,7,225,155,222,107,221,128,221, +71,221,60,220,171,219,217,219,244,219,213,219,58,219,196,217,101,216,242,215,171,215,248,214,13,214,4,213,152,212,79,213, +142,213,33,212,6,211,29,212,97,214,79,216,80,217,214,216,64,215,38,214,26,214,18,214,89,213,132,212,178,212,65,214, +64,216,141,217,242,217,215,217,215,217,104,218,229,218,79,218,57,217,20,217,226,217,120,218,90,218,37,218,148,218,144,219, +127,220,49,221,139,221,61,221,236,220,180,221,229,222,17,223,157,222,135,222,132,222,72,222,38,222,14,222,47,222,78,223, +28,225,125,226,121,227,203,228,65,230,35,231,103,231,178,231,46,232,11,232,30,231,163,230,43,231,9,232,61,233,4,235, +120,236,93,237,176,238,29,240,149,240,223,240,6,242,117,243,181,244,252,245,218,246,13,247,95,247,52,248,68,249,142,250, +20,252,144,253,248,254,75,0,103,1,100,2,43,3,79,3,219,2,100,2,133,2,200,3,248,5,167,7,187,7,207,6, +74,6,245,6,93,8,100,9,178,9,246,9,140,10,61,11,180,11,60,11,159,9,68,8,126,8,199,9,33,11,37,12, +196,12,144,13,239,14,187,15,18,15,44,14,61,14,1,15,13,16,234,16,255,16,244,16,168,17,77,18,45,18,40,18, +193,18,164,19,18,21,22,23,213,24,229,25,125,26,183,26,173,26,52,26,17,25,86,24,63,25,211,26,152,27,251,27, +164,28,231,28,75,28,16,27,103,25,227,23,147,23,137,24,83,25,175,24,55,23,148,22,12,23,47,23,25,22,65,20, +120,18,186,17,162,18,30,20,137,20,211,19,204,18,166,17,87,16,252,14,187,13,18,13,109,13,111,14,114,15,3,16, +202,15,20,15,105,14,87,13,117,11,250,9,58,10,200,11,58,13,151,13,210,12,189,11,31,11,2,11,233,10,11,10, +75,8,43,7,195,7,202,8,1,9,195,8,213,7,202,5,26,4,187,3,59,3,10,2,116,1,160,1,172,1,109,1, +113,0,32,254,141,251,78,250,113,250,5,251,30,251,90,250,124,249,53,249,218,248,196,247,72,246,199,244,223,243,131,244, +43,246,239,246,5,246,52,244,138,242,183,241,124,241,206,240,134,239,205,238,94,239,163,240,117,241,63,241,134,240,24,240, +248,239,233,239,230,239,144,239,202,238,100,238,161,238,176,238,115,238,114,238,135,238,149,238,17,239,161,239,76,239,102,238, +118,238,236,239,54,241,158,240,170,238,81,237,75,237,229,237,140,238,176,238,194,237,67,236,46,235,206,234,106,235,52,237, +235,238,255,238,173,237,67,236,99,235,237,234,167,234,168,234,239,234,209,234,62,234,123,234,170,235,243,235,170,234,70,233, +226,232,153,233,212,234,15,235,227,233,49,233,204,233,35,234,172,233,111,233,124,233,58,233,206,232,199,232,194,233,109,235, +213,235,57,234,231,232,107,233,98,234,204,234,54,235,166,235,231,235,98,236,10,237,152,237,104,238,89,239,167,239,166,239, +70,240,31,241,243,240,206,239,103,239,34,241,54,244,183,246,0,248,161,248,252,248,77,249,215,249,117,250,69,251,216,252, +236,254,173,0,31,2,89,3,103,3,189,1,148,255,176,254,154,255,127,1,68,3,156,4,239,5,105,7,57,8,49,7, +186,4,63,3,58,4,95,6,40,8,193,9,81,11,39,12,216,11,127,10,211,8,40,8,249,8,154,10,221,12,125,15, +31,17,132,17,25,18,27,19,146,19,165,19,8,20,50,21,190,23,252,26,16,29,244,29,183,30,164,30,102,29,241,28, +51,30,16,32,39,34,69,36,65,37,50,37,95,37,166,37,96,37,53,37,216,37,13,39,127,40,181,41,42,42,251,41, +112,41,131,40,112,39,128,38,248,37,144,38,82,40,175,41,206,41,195,41,245,41,62,41,137,39,44,38,210,37,78,38, +167,39,118,41,113,42,3,42,45,41,227,40,249,40,38,41,66,41,187,40,191,39,163,39,109,40,99,40,68,39,176,38, +26,39,130,39,103,39,239,38,102,38,73,38,144,38,137,38,191,37,74,36,150,34,77,33,141,32,8,32,26,32,209,32, +198,32,74,31,145,29,125,28,243,27,220,27,157,27,135,26,116,25,35,25,146,24,45,23,175,21,44,20,121,18,86,17, +248,16,196,16,165,16,91,16,62,15,201,13,175,12,89,11,156,9,93,8,158,7,228,6,108,6,229,5,121,4,191,2, +161,1,122,0,190,254,61,253,148,252,110,252,92,252,222,251,90,250,8,248,5,246,24,245,5,245,19,245,213,244,86,244, +207,243,89,243,144,242,49,241,250,239,168,239,106,239,92,238,67,237,255,236,55,237,142,237,178,237,196,236,8,235,55,234, +191,234,48,235,148,234,45,233,170,231,195,230,167,230,180,230,45,230,194,228,232,226,205,225,164,225,30,225,211,223,204,222, +31,222,22,221,18,220,151,219,69,219,37,219,135,219,188,219,24,219,33,218,159,217,200,217,62,218,71,218,185,217,63,217, +44,217,68,217,124,217,192,217,233,217,90,218,36,219,103,219,252,218,28,219,110,220,41,222,110,223,69,224,20,225,161,225, +60,225,43,224,140,223,185,223,93,224,112,225,147,226,9,227,40,227,158,227,228,227,127,227,51,227,107,227,143,227,120,227, +211,227,242,228,50,230,206,230,5,231,151,231,35,232,195,231,222,230,136,230,41,231,215,232,21,235,100,236,46,236,162,235, +160,235,5,236,176,236,85,237,189,237,220,238,71,241,174,243,220,244,29,245,2,245,12,245,191,245,124,246,63,246,181,245, +51,246,184,247,107,249,157,250,242,250,5,251,245,251,153,253,215,254,145,255,109,0,117,1,91,2,26,3,139,3,100,3, +25,3,130,3,128,4,102,5,91,6,185,7,7,9,30,10,98,11,35,12,113,11,103,10,124,10,15,11,57,11,159,11, +224,12,157,14,38,16,202,16,163,16,233,16,23,18,2,19,198,18,212,17,30,17,87,17,10,18,193,17,77,16,65,15, +158,15,22,17,1,19,63,20,47,20,24,20,50,21,139,22,208,22,12,22,215,20,241,19,242,19,90,20,121,20,161,20, +7,21,107,21,48,22,126,23,87,24,112,24,189,24,82,25,57,25,72,24,59,23,208,22,78,23,25,24,29,24,45,23, +33,22,203,21,61,22,198,22,173,22,21,22,146,21,35,21,134,20,204,19,5,19,9,18,193,16,42,15,132,13,150,12, +248,12,16,14,150,14,36,14,129,13,34,13,135,12,84,11,217,9,117,8,143,7,103,7,79,7,152,6,8,6,84,6, +128,6,213,5,14,5,167,4,129,4,198,4,29,5,196,4,19,4,201,3,153,3,11,3,249,1,56,0,149,254,126,254, +182,255,212,0,85,1,2,1,152,255,12,254,70,253,82,252,108,250,169,248,247,247,18,248,153,248,24,249,211,248,186,247, +97,246,24,245,246,243,63,243,24,243,52,243,12,243,142,242,35,242,159,241,100,240,204,238,202,237,93,237,32,237,49,237, +86,237,45,237,57,237,227,237,109,238,96,238,12,238,58,237,174,235,126,234,202,234,252,235,165,236,75,236,191,235,10,236, +73,237,112,238,105,238,106,237,183,236,233,236,92,237,141,237,165,237,110,237,161,236,61,236,103,237,69,239,242,239,223,238, +59,237,108,236,153,236,184,236,52,236,165,235,166,235,10,236,70,236,234,235,72,235,85,235,237,235,198,235,205,234,39,234, +250,233,210,233,236,233,56,234,25,234,185,233,121,233,0,233,101,232,110,232,8,233,101,233,105,233,152,233,46,234,145,234, +183,233,215,231,209,230,199,231,169,233,199,234,123,234,90,233,158,232,197,232,255,232,204,232,201,232,40,233,37,233,154,232, +139,232,176,233,72,235,240,235,142,235,87,235,207,235,121,236,112,237,30,239,244,240,43,242,193,242,210,242,103,242,236,241, +206,241,94,242,52,244,74,247,39,250,84,251,19,251,218,250,134,251,106,252,101,252,2,252,33,253,0,0,134,2,93,3, +137,3,27,4,132,4,40,4,170,3,190,3,108,4,184,5,71,7,4,8,191,7,153,7,179,7,45,7,129,6,200,6, +145,7,90,8,253,9,92,12,145,13,210,12,136,11,56,11,6,12,36,13,225,13,111,14,131,15,104,17,171,19,114,21, +85,22,33,23,150,24,249,25,167,26,169,27,151,29,35,31,122,31,153,31,92,32,83,33,222,33,39,34,241,34,177,36, +235,38,166,40,67,41,225,40,111,40,190,40,70,41,46,41,254,40,109,41,247,41,48,42,136,42,213,42,133,42,248,41, +199,41,181,41,173,41,44,42,65,43,71,44,108,44,54,43,40,41,151,39,48,39,107,39,172,39,9,40,200,40,184,41, +68,42,25,42,152,41,95,41,127,41,140,41,81,41,232,40,101,40,5,40,68,40,1,41,60,41,150,40,246,39,241,39, +29,40,41,40,27,40,220,39,130,39,21,39,217,37,118,35,41,33,53,32,86,32,167,32,175,32,98,32,246,31,101,31, +84,30,5,29,54,28,187,27,219,26,200,25,255,24,23,24,101,22,3,20,193,17,149,16,155,16,178,16,226,15,136,14, +108,13,167,12,198,11,75,10,13,8,124,5,84,3,16,2,154,1,81,1,170,0,190,255,211,254,220,253,195,252,144,251, +91,250,133,249,71,249,244,248,220,247,63,246,107,244,79,242,135,240,223,239,12,240,111,240,7,241,132,241,43,241,26,240, +7,239,246,237,173,236,119,235,141,234,197,233,50,233,5,233,218,232,32,232,238,230,186,229,178,228,11,228,74,228,77,229, +222,229,33,229,203,227,209,226,206,225,244,223,233,221,252,220,25,221,47,221,7,221,242,220,143,220,147,219,123,218,110,217, +21,216,0,215,13,215,190,215,44,216,147,216,64,217,123,217,216,216,23,216,218,215,226,215,12,216,203,216,50,218,146,219, +105,220,165,220,20,220,252,218,135,218,47,219,248,219,126,220,117,221,173,222,73,223,163,223,91,224,223,224,220,224,30,225, +2,226,31,227,38,228,179,228,100,228,203,227,188,227,250,227,255,227,251,227,95,228,95,229,221,230,53,232,220,232,26,233, +94,233,166,233,252,233,83,234,58,234,220,233,34,234,38,235,7,236,109,236,164,236,246,236,235,237,185,239,97,241,12,242, +111,242,61,243,244,243,77,244,217,244,191,245,187,246,211,247,215,248,110,249,240,249,219,250,214,251,108,252,193,252,52,253, +52,254,241,255,173,1,131,2,169,2,153,2,53,2,189,1,219,1,118,2,80,3,240,4,100,7,137,9,161,10,230,10, +154,10,251,9,129,9,111,9,213,9,217,10,69,12,115,13,252,13,206,13,19,13,121,12,141,12,230,12,49,13,54,14, +86,16,103,18,74,19,26,19,62,18,235,16,187,15,96,15,189,15,88,16,87,17,13,19,202,20,68,21,92,20,85,19, +10,19,64,19,176,19,68,20,172,20,13,21,230,21,128,22,164,21,249,19,39,19,89,19,2,20,59,21,133,22,189,22, +53,22,27,22,30,22,49,21,155,19,117,18,93,18,71,19,117,20,240,20,156,20,15,20,133,19,255,18,167,18,120,18, +103,18,176,18,36,19,252,18,240,17,96,16,117,14,119,12,89,11,146,11,91,12,250,12,164,13,101,14,164,14,14,14, +224,12,108,11,46,10,188,9,230,9,180,9,191,8,190,7,94,7,96,7,25,7,123,6,12,6,27,6,148,6,93,7, +250,7,122,7,198,5,19,4,43,3,156,2,7,2,158,1,103,1,77,1,73,1,246,0,18,0,69,255,65,255,154,255, +128,255,212,254,38,254,228,253,186,253,14,253,10,252,66,251,146,250,185,249,66,249,127,249,207,249,198,249,134,249,219,248, +169,247,174,246,82,246,204,245,203,244,102,244,42,245,220,245,93,245,63,244,123,243,33,243,34,243,177,243,120,244,207,244, +184,244,137,244,39,244,100,243,111,242,129,241,182,240,87,240,148,240,15,241,94,241,200,241,178,242,127,243,57,243,25,242, +26,241,124,240,17,240,35,240,232,240,218,241,12,242,222,240,223,238,165,237,209,237,127,238,114,239,59,241,16,243,113,243, +131,242,84,241,97,240,19,240,139,240,219,240,86,240,125,239,202,238,119,238,27,239,151,240,177,241,215,241,162,241,140,241, +180,241,25,242,70,242,196,241,206,240,237,239,147,239,42,240,118,241,121,242,195,242,242,242,95,243,129,243,241,242,20,242, +107,241,252,240,165,240,141,240,225,240,70,241,54,241,193,240,89,240,6,240,136,239,15,239,249,238,40,239,81,239,100,239, +55,239,167,238,15,238,146,237,169,236,63,235,238,233,245,232,180,232,21,234,222,236,170,239,65,242,4,245,229,246,232,246, +135,245,15,243,185,239,77,237,71,237,236,238,124,241,61,245,73,249,182,251,249,251,10,251,31,250,21,250,19,251,237,252, +148,255,81,2,226,3,245,3,221,2,184,0,154,254,66,254,134,255,249,0,185,2,79,5,139,7,60,8,194,7,141,6, +161,4,234,2,210,2,132,4,191,6,8,8,209,7,160,6,71,5,92,4,80,4,51,5,181,6,14,9,130,12,131,15, +173,15,47,13,129,10,210,8,213,7,33,8,117,10,40,14,140,18,125,23,112,27,113,28,42,27,183,25,187,24,42,24, +103,24,63,25,66,26,196,27,163,29,172,30,107,30,176,29,154,29,254,30,134,33,156,35,149,36,75,37,233,37,182,37, +196,36,125,35,1,34,254,32,27,33,209,33,129,34,57,35,208,35,52,36,206,36,114,37,114,37,229,36,30,36,60,35, +230,34,88,35,67,35,250,33,210,32,196,32,75,33,24,34,70,35,97,36,24,37,189,37,71,38,62,38,151,37,120,36, +233,34,104,33,146,32,51,32,215,31,203,31,134,32,207,33,58,35,101,36,166,36,174,35,40,34,155,32,192,30,178,28, +45,27,103,26,19,26,9,26,33,26,47,26,82,26,123,26,96,26,47,26,240,25,244,24,48,23,188,21,31,21,185,20, +215,19,19,18,131,15,38,13,223,11,117,11,92,11,102,11,114,11,80,11,171,10,252,8,100,6,231,3,41,2,3,1, +48,0,46,255,163,253,108,252,96,252,153,252,237,251,193,250,202,249,254,248,113,248,79,248,36,248,113,247,85,246,21,245, +204,243,150,242,95,241,31,240,124,239,57,240,250,241,88,243,119,243,180,242,183,241,148,240,31,239,119,237,250,235,26,235, +22,235,144,235,231,235,228,235,178,235,118,235,33,235,121,234,88,233,255,231,228,230,75,230,29,230,218,229,229,228,69,227, +150,225,39,224,29,223,200,222,251,222,29,223,43,223,85,223,60,223,202,222,112,222,21,222,103,221,241,220,60,221,186,221, +195,221,137,221,170,221,113,222,107,223,192,223,105,223,94,223,52,224,131,225,162,226,56,227,107,227,210,227,118,228,115,228, +91,227,26,226,208,225,187,226,143,228,185,230,75,232,163,232,45,232,202,231,156,231,36,231,96,230,244,229,86,230,128,231, +16,233,96,234,252,234,38,235,43,235,192,234,224,233,94,233,187,233,118,234,17,235,159,235,38,236,139,236,2,237,144,237, +157,237,0,237,186,236,177,237,131,239,120,241,78,243,154,244,230,244,162,244,151,244,214,244,68,245,20,246,28,247,228,247, +123,248,54,249,14,250,194,250,11,251,239,250,41,251,93,252,252,253,14,255,133,255,211,255,34,0,119,0,166,0,110,0, +39,0,129,0,125,1,145,2,124,3,50,4,180,4,34,5,121,5,160,5,209,5,52,6,141,6,227,6,114,7,219,7, +199,7,217,7,130,8,19,9,26,9,36,9,98,9,110,9,117,9,3,10,244,10,170,11,231,11,227,11,236,11,29,12, +48,12,218,11,93,11,74,11,241,11,29,13,54,14,189,14,211,14,232,14,242,14,165,14,38,14,207,13,172,13,195,13, +19,14,58,14,16,14,26,14,135,14,165,14,50,14,253,13,143,14,114,15,9,16,20,16,135,15,175,14,3,14,142,13, +19,13,165,12,164,12,42,13,218,13,61,14,70,14,39,14,222,13,65,13,94,12,95,11,150,10,115,10,199,10,188,10, +51,10,232,9,235,9,171,9,58,9,225,8,145,8,148,8,38,9,115,9,214,8,22,8,201,7,78,7,100,6,149,5, +26,5,243,4,98,5,31,6,113,6,74,6,24,6,209,5,70,5,167,4,35,4,162,3,12,3,115,2,13,2,14,2, +84,2,108,2,0,2,57,1,149,0,129,0,249,0,127,1,144,1,37,1,150,0,20,0,137,255,238,254,88,254,226,253, +186,253,223,253,244,253,206,253,174,253,127,253,207,252,190,251,239,250,189,250,43,251,241,251,77,252,219,251,48,251,199,250, +83,250,192,249,120,249,156,249,247,249,83,250,121,250,87,250,13,250,143,249,237,248,147,248,143,248,105,248,23,248,10,248, +93,248,219,248,104,249,216,249,212,249,58,249,54,248,85,247,66,247,246,247,133,248,71,248,191,247,237,247,220,248,115,249, +246,248,5,248,185,247,111,248,162,249,83,250,2,250,91,249,50,249,43,249,180,248,47,248,12,248,32,248,110,248,250,248, +34,249,140,248,248,247,37,248,189,248,219,248,59,248,137,247,134,247,11,248,108,248,122,248,144,248,222,248,254,248,114,248, +168,247,211,247,23,249,23,250,243,249,57,249,205,248,17,249,186,249,217,249,18,249,84,248,94,248,225,248,175,249,210,250, +137,251,31,251,17,250,19,249,54,248,195,247,120,248,59,250,168,251,139,251,60,250,252,248,115,248,112,248,124,248,31,248, +78,247,197,246,29,247,209,247,237,247,51,247,26,246,23,245,65,244,191,243,40,244,180,245,171,247,130,249,61,251,27,252, +249,250,79,248,164,245,211,243,90,243,156,244,248,246,118,249,251,251,72,254,52,255,67,254,171,252,17,252,229,252,67,254, +102,255,127,0,149,1,235,1,118,1,12,1,204,0,120,0,185,0,4,2,138,3,149,4,79,5,168,5,50,5,19,4, +242,2,87,2,175,2,55,4,89,6,158,7,253,6,25,5,82,3,38,2,129,1,228,1,217,3,198,6,59,9,33,10, +120,9,214,7,145,5,29,3,157,1,239,1,248,3,93,7,119,11,176,14,237,15,204,15,17,15,175,13,14,12,52,11, +154,11,24,13,82,15,97,17,62,18,191,17,195,16,138,16,156,17,75,19,179,20,169,21,54,22,87,22,82,22,51,22, +153,21,189,20,116,20,7,21,37,22,98,23,43,24,42,24,138,23,137,22,139,21,78,21,237,21,179,22,109,23,77,24, +194,24,31,24,170,22,240,20,70,19,58,18,82,18,108,19,18,21,194,22,212,23,193,23,186,22,123,21,124,20,177,19, +25,19,207,18,148,18,48,18,8,18,113,18,50,19,57,20,134,21,84,22,4,22,34,21,114,20,245,19,101,19,135,18, +77,17,64,16,246,15,57,16,139,16,205,16,29,17,180,17,153,18,35,19,159,18,48,17,93,15,182,13,229,12,246,12, +17,13,180,12,20,12,85,11,122,10,175,9,248,8,105,8,57,8,247,7,233,6,113,5,169,4,195,4,239,4,88,4, +209,2,246,0,116,255,78,254,96,253,251,252,109,253,112,254,73,255,62,255,46,254,181,252,89,251,60,250,129,249,19,249, +142,248,12,248,28,248,156,248,227,248,224,248,17,249,150,249,226,249,70,249,211,247,113,246,204,245,159,245,60,245,89,244, +100,243,34,243,184,243,102,244,161,244,168,244,176,244,90,244,98,243,45,242,96,241,33,241,23,241,241,240,102,240,52,239, +205,237,8,237,205,236,129,236,120,236,242,236,21,237,144,236,58,236,34,236,152,235,221,234,132,234,86,234,57,234,112,234, +177,234,155,234,127,234,164,234,206,234,207,234,194,234,225,234,112,235,79,236,237,236,247,236,167,236,86,236,40,236,245,235, +153,235,122,235,55,236,171,237,10,239,193,239,175,239,28,239,173,238,197,238,10,239,26,239,24,239,66,239,128,239,161,239, +165,239,181,239,5,240,161,240,86,241,219,241,42,242,89,242,81,242,255,241,150,241,70,241,30,241,81,241,220,241,56,242, +56,242,111,242,24,243,183,243,13,244,63,244,97,244,162,244,54,245,217,245,49,246,76,246,89,246,147,246,40,247,182,247, +191,247,162,247,3,248,229,248,39,250,137,251,64,252,23,252,12,252,125,252,146,252,20,252,189,251,201,251,13,252,175,252, +188,253,230,254,250,255,195,0,236,0,136,0,11,0,193,255,190,255,240,255,63,0,220,0,226,1,170,2,128,2,209,1, +101,1,63,1,63,1,169,1,89,2,221,2,94,3,5,4,61,4,205,3,65,3,188,2,27,2,248,1,172,2,103,3, +167,3,237,3,83,4,117,4,150,4,248,4,52,5,53,5,108,5,175,5,133,5,26,5,198,4,153,4,194,4,96,5, +26,6,160,6,249,6,30,7,255,6,181,6,88,6,5,6,8,6,128,6,40,7,149,7,108,7,165,6,195,5,52,5, +213,4,180,4,86,5,167,6,211,7,103,8,124,8,18,8,75,7,145,6,249,5,99,5,7,5,249,4,213,4,144,4, +153,4,1,5,111,5,165,5,138,5,64,5,40,5,69,5,38,5,215,4,195,4,197,4,133,4,30,4,176,3,65,3, +38,3,136,3,15,4,140,4,250,4,246,4,112,4,42,4,116,4,176,4,134,4,49,4,175,3,252,2,104,2,36,2, +58,2,216,2,198,3,55,4,222,3,89,3,44,3,48,3,8,3,135,2,209,1,93,1,108,1,180,1,231,1,0,2, +6,2,14,2,69,2,140,2,131,2,47,2,196,1,41,1,111,0,18,0,46,0,116,0,222,0,97,1,143,1,66,1, +205,0,93,0,28,0,81,0,185,0,223,0,238,0,253,0,152,0,230,255,160,255,157,255,83,255,36,255,136,255,20,0, +97,0,150,0,176,0,116,0,11,0,196,255,153,255,83,255,250,254,224,254,45,255,150,255,183,255,125,255,41,255,33,255, +149,255,28,0,38,0,192,255,74,255,225,254,164,254,214,254,82,255,147,255,84,255,196,254,70,254,19,254,18,254,15,254, +11,254,30,254,61,254,98,254,183,254,68,255,123,255,162,254,252,252,231,251,50,252,34,253,141,253,70,253,31,253,178,253, +131,254,149,254,220,253,35,253,186,252,122,252,149,252,54,253,26,254,230,254,32,255,89,254,31,253,130,252,137,252,170,252, +236,252,83,253,108,253,58,253,44,253,54,253,2,253,140,252,28,252,244,251,253,251,216,251,148,251,160,251,220,251,174,251, +226,250,191,249,210,248,202,248,177,249,152,250,191,250,89,250,224,249,123,249,52,249,35,249,93,249,197,249,20,250,43,250, +34,250,245,249,166,249,128,249,163,249,209,249,238,249,24,250,104,250,1,251,241,251,215,252,45,253,249,252,214,252,73,253, +252,253,29,254,197,253,239,253,195,254,110,255,152,255,140,255,104,255,90,255,183,255,93,0,205,0,209,0,144,0,77,0, +34,0,253,255,241,255,46,0,142,0,231,0,116,1,21,2,37,2,139,1,211,0,106,0,138,0,33,1,159,1,192,1, +224,1,15,2,27,2,55,2,112,2,135,2,211,2,175,3,126,4,200,4,248,4,33,5,218,4,103,4,104,4,237,4, +202,5,222,6,192,7,16,8,5,8,37,8,160,8,40,9,103,9,101,9,103,9,146,9,233,9,103,10,248,10,138,11, +253,11,43,12,49,12,69,12,91,12,111,12,170,12,213,12,172,12,138,12,147,12,70,12,169,11,113,11,199,11,78,12, +217,12,57,13,71,13,31,13,208,12,85,12,241,11,169,11,42,11,173,10,178,10,10,11,88,11,156,11,176,11,156,11, +216,11,68,12,29,12,104,11,218,10,194,10,7,11,112,11,136,11,29,11,147,10,82,10,109,10,174,10,187,10,173,10, +24,11,238,11,109,12,87,12,248,11,81,11,85,10,103,9,229,8,213,8,41,9,196,9,77,10,115,10,76,10,54,10, +40,10,171,9,174,8,172,7,232,6,93,6,32,6,19,6,227,5,151,5,83,5,245,4,115,4,254,3,175,3,151,3, +177,3,178,3,127,3,74,3,218,2,224,1,181,0,191,255,3,255,169,254,181,254,179,254,155,254,196,254,243,254,250,254, +25,255,234,254,221,253,188,252,118,252,158,252,147,252,109,252,37,252,165,251,73,251,21,251,173,250,95,250,178,250,84,251, +170,251,175,251,136,251,23,251,96,250,162,249,18,249,182,248,157,248,212,248,38,249,72,249,49,249,8,249,220,248,170,248, +83,248,198,247,78,247,55,247,80,247,74,247,32,247,198,246,71,246,250,245,227,245,174,245,122,245,135,245,150,245,147,245, +192,245,216,245,128,245,12,245,175,244,24,244,106,243,38,243,70,243,147,243,20,244,185,244,84,245,180,245,158,245,69,245, +45,245,52,245,215,244,100,244,117,244,220,244,43,245,95,245,142,245,210,245,82,246,236,246,88,247,157,247,212,247,249,247, +26,248,54,248,50,248,46,248,86,248,99,248,24,248,206,247,236,247,89,248,214,248,73,249,139,249,118,249,64,249,54,249, +57,249,19,249,2,249,59,249,130,249,191,249,33,250,108,250,60,250,212,249,174,249,183,249,190,249,235,249,99,250,253,250, +101,251,119,251,108,251,114,251,101,251,78,251,114,251,167,251,185,251,23,252,226,252,117,253,164,253,221,253,2,254,235,253, +33,254,177,254,225,254,185,254,240,254,111,255,161,255,143,255,124,255,98,255,80,255,131,255,14,0,202,0,115,1,186,1, +160,1,109,1,78,1,57,1,44,1,46,1,71,1,133,1,213,1,216,1,91,1,205,0,191,0,42,1,172,1,21,2, +84,2,91,2,85,2,107,2,104,2,40,2,252,1,46,2,132,2,156,2,89,2,251,1,218,1,240,1,241,1,242,1, +85,2,10,3,144,3,147,3,23,3,81,2,152,1,48,1,27,1,75,1,212,1,194,2,217,3,154,4,163,4,254,3, +247,2,236,1,73,1,82,1,206,1,103,2,4,3,111,3,99,3,23,3,231,2,186,2,107,2,54,2,49,2,32,2, +13,2,61,2,140,2,152,2,93,2,26,2,232,1,200,1,196,1,228,1,23,2,63,2,75,2,55,2,233,1,76,1, +185,0,182,0,46,1,116,1,67,1,3,1,3,1,24,1,2,1,193,0,144,0,168,0,244,0,37,1,29,1,240,0, +174,0,114,0,97,0,104,0,97,0,93,0,123,0,186,0,30,1,123,1,101,1,227,0,151,0,193,0,222,0,163,0, +100,0,82,0,57,0,43,0,125,0,6,1,43,1,204,0,94,0,37,0,2,0,238,255,249,255,24,0,77,0,155,0, +159,0,244,255,254,254,153,254,245,254,124,255,202,255,255,255,58,0,73,0,3,0,137,255,36,255,4,255,5,255,237,254, +207,254,234,254,37,255,48,255,26,255,45,255,101,255,117,255,53,255,219,254,212,254,40,255,99,255,99,255,129,255,158,255, +83,255,229,254,210,254,239,254,240,254,232,254,218,254,221,254,64,255,207,255,236,255,168,255,121,255,84,255,9,255,196,254, +165,254,171,254,229,254,42,255,62,255,68,255,105,255,113,255,61,255,2,255,226,254,222,254,0,255,41,255,32,255,239,254, +218,254,242,254,18,255,34,255,13,255,179,254,40,254,193,253,174,253,197,253,213,253,213,253,205,253,215,253,251,253,255,253, +200,253,159,253,175,253,188,253,171,253,159,253,166,253,178,253,148,253,33,253,163,252,126,252,104,252,18,252,2,252,155,252, +81,253,176,253,220,253,245,253,4,254,19,254,217,253,37,253,113,252,69,252,152,252,42,253,195,253,36,254,61,254,39,254, +253,253,245,253,35,254,57,254,37,254,65,254,130,254,137,254,114,254,128,254,166,254,234,254,96,255,186,255,179,255,119,255, +70,255,56,255,82,255,113,255,100,255,75,255,95,255,126,255,113,255,68,255,22,255,240,254,8,255,186,255,223,0,175,1, +182,1,91,1,7,1,162,0,28,0,168,255,119,255,180,255,98,0,53,1,238,1,116,2,149,2,79,2,4,2,206,1, +131,1,95,1,159,1,250,1,78,2,187,2,8,3,20,3,50,3,78,3,12,3,205,2,25,3,179,3,50,4,134,4, +149,4,96,4,49,4,29,4,251,3,216,3,221,3,28,4,153,4,20,5,46,5,248,4,224,4,21,5,118,5,213,5, +18,6,41,6,24,6,208,5,98,5,249,4,177,4,173,4,7,5,148,5,39,6,198,6,68,7,74,7,228,6,90,6, +204,5,107,5,101,5,145,5,195,5,19,6,134,6,235,6,0,7,159,6,246,5,119,5,77,5,96,5,179,5,51,6, +148,6,191,6,200,6,148,6,18,6,133,5,45,5,25,5,57,5,89,5,94,5,102,5,121,5,141,5,168,5,161,5, +75,5,239,4,217,4,211,4,182,4,164,4,136,4,75,4,37,4,35,4,20,4,1,4,250,3,227,3,223,3,25,4, +66,4,9,4,152,3,53,3,249,2,215,2,180,2,133,2,99,2,94,2,133,2,223,2,30,3,246,2,142,2,21,2, +119,1,231,0,188,0,215,0,251,0,65,1,156,1,170,1,69,1,167,0,33,0,224,255,196,255,170,255,173,255,226,255, +25,0,58,0,73,0,44,0,222,255,137,255,40,255,174,254,79,254,46,254,49,254,74,254,124,254,178,254,218,254,238,254, +227,254,173,254,84,254,247,253,190,253,162,253,105,253,15,253,207,252,192,252,217,252,7,253,16,253,222,252,186,252,208,252, +253,252,33,253,20,253,197,252,156,252,226,252,18,253,185,252,43,252,193,251,123,251,110,251,152,251,182,251,202,251,242,251, +253,251,226,251,238,251,29,252,46,252,28,252,238,251,148,251,58,251,32,251,66,251,129,251,191,251,212,251,218,251,18,252, +87,252,64,252,201,251,72,251,249,250,233,250,29,251,117,251,180,251,193,251,207,251,254,251,36,252,27,252,4,252,7,252, +44,252,103,252,157,252,172,252,141,252,67,252,230,251,189,251,228,251,25,252,60,252,128,252,221,252,11,253,5,253,242,252, +223,252,208,252,197,252,163,252,115,252,97,252,122,252,190,252,31,253,90,253,78,253,48,253,33,253,18,253,29,253,68,253, +64,253,19,253,10,253,39,253,56,253,85,253,139,253,169,253,175,253,205,253,3,254,43,254,50,254,45,254,68,254,128,254, +164,254,137,254,88,254,58,254,54,254,90,254,158,254,216,254,3,255,66,255,137,255,170,255,162,255,127,255,71,255,42,255, +95,255,180,255,203,255,186,255,209,255,0,0,15,0,8,0,2,0,241,255,232,255,250,255,17,0,28,0,35,0,13,0, +223,255,224,255,22,0,62,0,77,0,97,0,95,0,53,0,12,0,242,255,228,255,5,0,72,0,110,0,113,0,119,0, +115,0,89,0,77,0,75,0,47,0,15,0,34,0,106,0,185,0,230,0,229,0,196,0,143,0,75,0,20,0,15,0, +49,0,82,0,116,0,177,0,253,0,42,1,31,1,239,0,196,0,172,0,151,0,117,0,96,0,129,0,199,0,248,0, +241,0,192,0,137,0,107,0,115,0,147,0,182,0,221,0,21,1,70,1,62,1,238,0,135,0,69,0,60,0,90,0, +129,0,134,0,98,0,90,0,165,0,255,0,3,1,194,0,130,0,87,0,57,0,46,0,47,0,48,0,57,0,81,0, +112,0,148,0,174,0,158,0,104,0,59,0,45,0,53,0,72,0,94,0,117,0,143,0,149,0,102,0,33,0,11,0, +48,0,97,0,124,0,135,0,134,0,132,0,139,0,148,0,140,0,118,0,103,0,116,0,152,0,160,0,101,0,18,0, +238,255,5,0,57,0,103,0,120,0,112,0,121,0,156,0,173,0,142,0,80,0,11,0,208,255,181,255,207,255,36,0, +148,0,218,0,192,0,89,0,239,255,193,255,213,255,240,255,234,255,247,255,78,0,196,0,0,1,228,0,140,0,47,0, +4,0,17,0,33,0,30,0,38,0,79,0,128,0,151,0,152,0,153,0,160,0,155,0,133,0,113,0,114,0,131,0, +138,0,108,0,48,0,8,0,34,0,107,0,167,0,174,0,142,0,115,0,115,0,132,0,141,0,127,0,104,0,92,0, +88,0,73,0,49,0,29,0,3,0,227,255,209,255,214,255,247,255,41,0,58,0,26,0,254,255,247,255,209,255,149,255, +131,255,142,255,129,255,114,255,122,255,127,255,129,255,136,255,119,255,76,255,52,255,52,255,42,255,20,255,253,254,234,254, +229,254,241,254,246,254,242,254,240,254,250,254,21,255,62,255,83,255,78,255,72,255,68,255,44,255,11,255,247,254,251,254, +22,255,64,255,91,255,80,255,58,255,64,255,98,255,129,255,144,255,156,255,162,255,152,255,137,255,130,255,124,255,117,255, +122,255,131,255,127,255,110,255,90,255,82,255,97,255,124,255,137,255,131,255,111,255,92,255,98,255,118,255,106,255,69,255, +69,255,115,255,162,255,194,255,207,255,196,255,175,255,162,255,151,255,148,255,156,255,162,255,175,255,224,255,30,0,63,0, +71,0,79,0,89,0,110,0,137,0,148,0,152,0,183,0,238,0,36,1,73,1,73,1,22,1,212,0,181,0,198,0, +252,0,61,1,112,1,152,1,188,1,201,1,169,1,118,1,78,1,60,1,73,1,127,1,194,1,234,1,248,1,255,1, +238,1,188,1,148,1,149,1,165,1,186,1,233,1,25,2,41,2,39,2,34,2,8,2,237,1,247,1,20,2,35,2, +53,2,85,2,102,2,98,2,90,2,77,2,56,2,36,2,36,2,70,2,121,2,148,2,145,2,133,2,124,2,113,2, +106,2,111,2,125,2,139,2,134,2,111,2,97,2,105,2,109,2,91,2,67,2,61,2,87,2,136,2,165,2,140,2, +89,2,60,2,56,2,44,2,13,2,237,1,223,1,235,1,6,2,22,2,10,2,238,1,222,1,218,1,206,1,188,1, +173,1,156,1,129,1,93,1,56,1,39,1,52,1,66,1,48,1,12,1,240,0,227,0,231,0,231,0,197,0,148,0, +131,0,144,0,145,0,127,0,106,0,87,0,73,0,62,0,39,0,4,0,231,255,222,255,231,255,251,255,12,0,13,0, +248,255,203,255,154,255,129,255,127,255,131,255,141,255,157,255,158,255,146,255,137,255,125,255,104,255,79,255,54,255,26,255, +4,255,252,254,247,254,241,254,243,254,251,254,0,255,246,254,216,254,175,254,144,254,138,254,149,254,154,254,142,254,121,254, +97,254,70,254,51,254,45,254,39,254,32,254,41,254,53,254,44,254,25,254,23,254,24,254,6,254,234,253,213,253,211,253, +231,253,4,254,17,254,5,254,243,253,238,253,251,253,5,254,251,253,242,253,252,253,10,254,17,254,20,254,16,254,253,253, +235,253,237,253,251,253,14,254,36,254,53,254,67,254,81,254,86,254,64,254,29,254,6,254,4,254,9,254,12,254,19,254, +37,254,63,254,82,254,89,254,88,254,88,254,87,254,80,254,62,254,47,254,45,254,57,254,77,254,98,254,108,254,106,254, +106,254,120,254,136,254,146,254,154,254,162,254,167,254,172,254,178,254,181,254,183,254,192,254,203,254,215,254,228,254,247,254, +13,255,29,255,29,255,23,255,28,255,40,255,40,255,30,255,34,255,62,255,94,255,106,255,96,255,80,255,73,255,84,255, +111,255,133,255,136,255,138,255,159,255,191,255,213,255,212,255,185,255,146,255,129,255,149,255,178,255,200,255,226,255,254,255, +8,0,0,0,250,255,243,255,231,255,228,255,237,255,246,255,252,255,7,0,29,0,43,0,32,0,2,0,240,255,254,255, +26,0,45,0,51,0,48,0,36,0,19,0,7,0,4,0,10,0,22,0,44,0,70,0,84,0,83,0,77,0,70,0, +59,0,47,0,39,0,36,0,35,0,42,0,58,0,77,0,92,0,99,0,94,0,86,0,88,0,103,0,109,0,97,0, +83,0,86,0,102,0,111,0,110,0,105,0,106,0,117,0,128,0,118,0,95,0,89,0,107,0,120,0,114,0,107,0, +114,0,123,0,124,0,120,0,118,0,115,0,106,0,95,0,94,0,102,0,110,0,111,0,106,0,94,0,80,0,77,0, +88,0,103,0,105,0,89,0,69,0,68,0,85,0,90,0,74,0,62,0,75,0,99,0,107,0,100,0,93,0,91,0, +92,0,83,0,62,0,41,0,37,0,48,0,57,0,58,0,60,0,68,0,77,0,77,0,65,0,50,0,37,0,23,0, +10,0,12,0,32,0,54,0,59,0,47,0,29,0,14,0,0,0,249,255,255,255,10,0,14,0,14,0,20,0,26,0, +23,0,13,0,0,0,245,255,239,255,242,255,0,0,25,0,49,0,56,0,48,0,33,0,16,0,3,0,251,255,243,255, +237,255,248,255,21,0,43,0,39,0,19,0,9,0,17,0,30,0,29,0,9,0,246,255,251,255,20,0,36,0,33,0, +34,0,41,0,36,0,22,0,21,0,26,0,29,0,37,0,45,0,41,0,29,0,26,0,27,0,26,0,25,0,28,0, +43,0,63,0,63,0,36,0,11,0,8,0,16,0,28,0,43,0,50,0,47,0,47,0,55,0,49,0,24,0,2,0, +254,255,5,0,11,0,20,0,32,0,34,0,22,0,4,0,241,255,228,255,236,255,6,0,23,0,20,0,15,0,14,0, +6,0,245,255,231,255,226,255,232,255,240,255,241,255,234,255,227,255,227,255,232,255,229,255,218,255,214,255,219,255,218,255, +203,255,192,255,194,255,194,255,181,255,167,255,168,255,176,255,176,255,166,255,168,255,188,255,205,255,200,255,182,255,166,255, +158,255,156,255,155,255,157,255,164,255,171,255,169,255,166,255,170,255,182,255,199,255,211,255,208,255,198,255,195,255,200,255, +203,255,202,255,197,255,181,255,166,255,174,255,207,255,240,255,255,255,253,255,244,255,233,255,218,255,201,255,192,255,201,255, +222,255,232,255,226,255,218,255,226,255,245,255,254,255,252,255,253,255,10,0,25,0,27,0,18,0,10,0,9,0,9,0, +8,0,9,0,16,0,32,0,58,0,88,0,111,0,124,0,129,0,126,0,120,0,121,0,129,0,134,0,130,0,130,0, +142,0,153,0,152,0,147,0,151,0,166,0,187,0,203,0,211,0,218,0,226,0,226,0,212,0,200,0,199,0,202,0, +198,0,190,0,188,0,199,0,215,0,225,0,231,0,236,0,236,0,233,0,238,0,248,0,247,0,231,0,210,0,199,0, +207,0,228,0,244,0,248,0,249,0,255,0,11,1,17,1,13,1,6,1,2,1,248,0,231,0,226,0,238,0,250,0, +253,0,255,0,1,1,2,1,7,1,18,1,31,1,35,1,36,1,36,1,28,1,7,1,238,0,216,0,194,0,185,0, +200,0,220,0,228,0,236,0,251,0,4,1,252,0,232,0,210,0,199,0,203,0,205,0,192,0,173,0,157,0,143,0, +135,0,132,0,133,0,141,0,155,0,160,0,152,0,142,0,137,0,130,0,113,0,91,0,77,0,77,0,78,0,68,0, +56,0,56,0,64,0,73,0,76,0,69,0,55,0,39,0,21,0,1,0,245,255,244,255,246,255,245,255,240,255,229,255, +219,255,219,255,227,255,236,255,239,255,233,255,229,255,235,255,238,255,216,255,172,255,140,255,136,255,142,255,143,255,147,255, +162,255,180,255,188,255,180,255,157,255,135,255,131,255,140,255,143,255,141,255,146,255,152,255,148,255,135,255,118,255,102,255, +92,255,85,255,82,255,90,255,101,255,105,255,106,255,118,255,126,255,114,255,90,255,72,255,61,255,55,255,56,255,60,255, +69,255,87,255,106,255,112,255,109,255,103,255,90,255,69,255,54,255,52,255,60,255,72,255,85,255,91,255,91,255,90,255, +93,255,95,255,95,255,93,255,93,255,101,255,120,255,138,255,145,255,137,255,110,255,78,255,61,255,70,255,89,255,106,255, +116,255,120,255,125,255,130,255,131,255,131,255,130,255,125,255,118,255,116,255,121,255,127,255,131,255,131,255,128,255,124,255, +118,255,112,255,116,255,130,255,137,255,137,255,148,255,168,255,181,255,181,255,170,255,148,255,129,255,131,255,148,255,162,255, +171,255,186,255,205,255,212,255,204,255,194,255,193,255,201,255,210,255,213,255,215,255,220,255,227,255,227,255,219,255,211,255, +212,255,225,255,246,255,9,0,13,0,7,0,3,0,252,255,239,255,229,255,227,255,235,255,247,255,249,255,240,255,239,255, +252,255,6,0,5,0,7,0,15,0,17,0,12,0,5,0,253,255,249,255,248,255,246,255,248,255,0,0,9,0,13,0, +18,0,20,0,17,0,10,0,5,0,4,0,11,0,22,0,36,0,50,0,58,0,48,0,26,0,9,0,5,0,13,0, +25,0,33,0,41,0,59,0,81,0,86,0,67,0,38,0,23,0,28,0,39,0,43,0,53,0,74,0,90,0,86,0, +71,0,56,0,46,0,42,0,49,0,66,0,82,0,85,0,79,0,74,0,69,0,55,0,37,0,30,0,41,0,60,0, +75,0,81,0,83,0,86,0,88,0,80,0,63,0,52,0,53,0,66,0,77,0,76,0,68,0,64,0,71,0,81,0, +89,0,92,0,91,0,81,0,66,0,59,0,67,0,80,0,86,0,84,0,80,0,84,0,93,0,96,0,87,0,72,0, +62,0,58,0,61,0,70,0,78,0,79,0,75,0,76,0,77,0,69,0,53,0,43,0,45,0,52,0,56,0,57,0, +54,0,45,0,34,0,29,0,32,0,38,0,43,0,49,0,49,0,40,0,27,0,21,0,21,0,18,0,17,0,24,0, +29,0,19,0,5,0,3,0,7,0,4,0,254,255,1,0,15,0,22,0,12,0,251,255,238,255,233,255,239,255,248,255, +252,255,255,255,7,0,12,0,8,0,254,255,242,255,229,255,229,255,245,255,4,0,4,0,248,255,233,255,225,255,226,255, +229,255,231,255,239,255,245,255,239,255,235,255,241,255,244,255,235,255,224,255,220,255,225,255,241,255,0,0,254,255,236,255, +222,255,219,255,220,255,217,255,217,255,224,255,234,255,241,255,241,255,238,255,231,255,218,255,202,255,192,255,193,255,201,255, +209,255,222,255,239,255,244,255,233,255,223,255,224,255,230,255,233,255,227,255,215,255,211,255,221,255,234,255,238,255,234,255, +225,255,218,255,224,255,233,255,234,255,230,255,234,255,243,255,247,255,241,255,224,255,210,255,209,255,215,255,218,255,220,255, +228,255,241,255,253,255,1,0,245,255,224,255,208,255,200,255,198,255,197,255,193,255,192,255,202,255,214,255,217,255,219,255, +221,255,218,255,210,255,204,255,200,255,198,255,207,255,223,255,226,255,217,255,209,255,208,255,212,255,220,255,225,255,221,255, +211,255,206,255,207,255,211,255,220,255,229,255,234,255,235,255,235,255,232,255,225,255,221,255,223,255,227,255,230,255,231,255, +229,255,232,255,244,255,252,255,247,255,238,255,230,255,220,255,213,255,213,255,214,255,217,255,234,255,5,0,22,0,22,0, +15,0,9,0,1,0,242,255,228,255,224,255,230,255,238,255,246,255,0,0,9,0,10,0,7,0,2,0,251,255,245,255, +245,255,254,255,9,0,25,0,42,0,46,0,33,0,22,0,19,0,12,0,251,255,241,255,246,255,7,0,23,0,33,0, +33,0,28,0,19,0,10,0,6,0,9,0,13,0,21,0,31,0,38,0,42,0,47,0,48,0,41,0,33,0,27,0, +21,0,22,0,34,0,48,0,52,0,46,0,41,0,47,0,56,0,53,0,39,0,36,0,50,0,68,0,81,0,84,0, +73,0,59,0,54,0,54,0,51,0,44,0,37,0,34,0,40,0,51,0,61,0,66,0,65,0,58,0,52,0,48,0, +42,0,38,0,41,0,50,0,58,0,58,0,53,0,48,0,46,0,45,0,42,0,38,0,34,0,35,0,45,0,53,0, +48,0,43,0,51,0,63,0,65,0,57,0,45,0,39,0,45,0,54,0,56,0,53,0,48,0,42,0,42,0,49,0, +59,0,62,0,57,0,45,0,37,0,35,0,34,0,32,0,34,0,39,0,40,0,38,0,36,0,32,0,26,0,19,0, +9,0,254,255,248,255,247,255,251,255,2,0,8,0,9,0,7,0,3,0,1,0,255,255,251,255,239,255,226,255,219,255, +223,255,236,255,251,255,2,0,0,0,250,255,239,255,228,255,224,255,223,255,216,255,209,255,211,255,222,255,235,255,241,255, +234,255,222,255,223,255,230,255,228,255,213,255,202,255,200,255,201,255,203,255,203,255,198,255,194,255,199,255,203,255,197,255, +189,255,192,255,197,255,191,255,179,255,176,255,183,255,192,255,195,255,194,255,192,255,188,255,179,255,173,255,172,255,172,255, +172,255,178,255,188,255,191,255,184,255,175,255,172,255,177,255,185,255,189,255,190,255,193,255,195,255,194,255,190,255,188,255, +193,255,197,255,192,255,181,255,180,255,187,255,191,255,185,255,178,255,179,255,188,255,198,255,201,255,197,255,191,255,185,255, +181,255,182,255,188,255,193,255,194,255,193,255,195,255,201,255,202,255,191,255,176,255,170,255,176,255,185,255,188,255,191,255, +202,255,212,255,207,255,194,255,188,255,188,255,191,255,203,255,217,255,222,255,217,255,204,255,192,255,188,255,189,255,189,255, +191,255,202,255,211,255,216,255,222,255,226,255,226,255,226,255,222,255,205,255,187,255,186,255,199,255,216,255,228,255,230,255, +224,255,221,255,221,255,215,255,206,255,204,255,207,255,209,255,214,255,222,255,228,255,234,255,238,255,238,255,229,255,217,255, +210,255,212,255,218,255,224,255,224,255,223,255,228,255,238,255,240,255,227,255,212,255,209,255,215,255,225,255,232,255,232,255, +229,255,230,255,229,255,220,255,213,255,217,255,229,255,236,255,234,255,227,255,223,255,224,255,223,255,219,255,218,255,219,255, +222,255,229,255,235,255,240,255,244,255,240,255,230,255,229,255,237,255,241,255,242,255,244,255,244,255,239,255,240,255,247,255, +251,255,251,255,251,255,250,255,245,255,239,255,241,255,254,255,14,0,17,0,9,0,1,0,255,255,0,0,0,0,255,255, +254,255,1,0,10,0,20,0,20,0,16,0,15,0,15,0,14,0,11,0,10,0,9,0,11,0,16,0,20,0,20,0, +18,0,17,0,19,0,23,0,25,0,26,0,33,0,43,0,44,0,36,0,32,0,35,0,39,0,38,0,28,0,17,0, +20,0,37,0,53,0,60,0,63,0,62,0,51,0,35,0,25,0,27,0,36,0,43,0,46,0,51,0,56,0,55,0, +48,0,45,0,47,0,51,0,49,0,44,0,43,0,46,0,53,0,59,0,61,0,58,0,56,0,60,0,61,0,54,0, +48,0,44,0,41,0,44,0,56,0,66,0,69,0,66,0,60,0,53,0,48,0,47,0,52,0,59,0,66,0,71,0, +75,0,75,0,70,0,61,0,48,0,39,0,43,0,58,0,69,0,74,0,74,0,69,0,61,0,58,0,58,0,55,0, +50,0,46,0,44,0,45,0,53,0,62,0,68,0,71,0,70,0,65,0,60,0,54,0,47,0,44,0,44,0,47,0, +50,0,50,0,47,0,49,0,57,0,64,0,68,0,67,0,58,0,43,0,38,0,44,0,53,0,57,0,57,0,53,0, +51,0,49,0,44,0,39,0,37,0,39,0,40,0,43,0,49,0,52,0,49,0,40,0,30,0,26,0,27,0,31,0, +37,0,40,0,35,0,31,0,34,0,40,0,41,0,37,0,30,0,21,0,18,0,23,0,28,0,24,0,20,0,22,0, +29,0,31,0,28,0,24,0,23,0,17,0,7,0,2,0,8,0,22,0,31,0,31,0,26,0,18,0,6,0,251,255, +252,255,6,0,14,0,14,0,9,0,5,0,7,0,11,0,10,0,3,0,254,255,252,255,251,255,250,255,251,255,251,255, +250,255,247,255,242,255,237,255,238,255,244,255,249,255,250,255,249,255,245,255,244,255,246,255,247,255,241,255,235,255,236,255, +240,255,242,255,243,255,242,255,241,255,244,255,250,255,249,255,240,255,231,255,229,255,232,255,235,255,238,255,241,255,245,255, +245,255,241,255,240,255,242,255,241,255,237,255,235,255,232,255,230,255,235,255,245,255,251,255,252,255,249,255,244,255,237,255, +232,255,228,255,229,255,235,255,241,255,243,255,249,255,1,0,4,0,253,255,244,255,241,255,246,255,253,255,1,0,3,0, +5,0,6,0,2,0,252,255,248,255,253,255,8,0,18,0,19,0,16,0,15,0,15,0,14,0,12,0,9,0,7,0, +12,0,22,0,30,0,33,0,34,0,34,0,32,0,25,0,19,0,16,0,16,0,20,0,29,0,35,0,38,0,43,0, +49,0,47,0,39,0,29,0,21,0,21,0,34,0,48,0,53,0,54,0,54,0,50,0,44,0,42,0,40,0,37,0, +36,0,37,0,38,0,43,0,50,0,55,0,57,0,54,0,48,0,43,0,42,0,44,0,48,0,55,0,58,0,50,0, +40,0,36,0,37,0,37,0,36,0,41,0,50,0,57,0,55,0,50,0,46,0,45,0,42,0,39,0,38,0,42,0, +47,0,51,0,54,0,53,0,47,0,37,0,30,0,30,0,35,0,41,0,41,0,37,0,37,0,40,0,42,0,38,0, +34,0,34,0,37,0,38,0,35,0,31,0,29,0,24,0,17,0,14,0,16,0,21,0,25,0,25,0,19,0,13,0, +10,0,8,0,6,0,6,0,8,0,10,0,11,0,13,0,12,0,6,0,0,0,0,0,2,0,0,0,252,255,251,255, +255,255,0,0,253,255,250,255,249,255,248,255,247,255,246,255,242,255,241,255,245,255,252,255,251,255,246,255,244,255,246,255, +245,255,239,255,231,255,225,255,223,255,226,255,230,255,229,255,229,255,232,255,235,255,236,255,233,255,227,255,221,255,217,255, +214,255,212,255,214,255,216,255,216,255,215,255,217,255,220,255,222,255,222,255,218,255,214,255,210,255,207,255,206,255,207,255, +211,255,215,255,219,255,221,255,221,255,221,255,218,255,213,255,210,255,209,255,209,255,209,255,214,255,218,255,218,255,214,255, +210,255,207,255,207,255,208,255,209,255,209,255,209,255,206,255,203,255,203,255,206,255,208,255,206,255,201,255,199,255,203,255, +205,255,202,255,197,255,196,255,197,255,198,255,198,255,199,255,200,255,203,255,207,255,208,255,205,255,199,255,197,255,198,255, +200,255,203,255,208,255,213,255,213,255,211,255,209,255,206,255,203,255,202,255,206,255,210,255,212,255,212,255,214,255,219,255, +223,255,223,255,219,255,213,255,209,255,213,255,220,255,221,255,219,255,218,255,219,255,220,255,220,255,215,255,212,255,214,255, +218,255,221,255,223,255,227,255,229,255,228,255,226,255,224,255,221,255,219,255,218,255,220,255,224,255,229,255,232,255,235,255, +236,255,234,255,230,255,224,255,223,255,228,255,234,255,237,255,240,255,246,255,249,255,246,255,242,255,239,255,238,255,237,255, +238,255,242,255,246,255,248,255,248,255,246,255,242,255,240,255,242,255,244,255,246,255,249,255,252,255,253,255,253,255,252,255, +252,255,254,255,253,255,249,255,247,255,250,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,0,0,0,0,1,0, +3,0,6,0,6,0,3,0,255,255,255,255,0,0,0,0,2,0,6,0,8,0,8,0,7,0,6,0,5,0,4,0, +5,0,5,0,4,0,5,0,6,0,7,0,7,0,9,0,10,0,7,0,5,0,5,0,7,0,8,0,8,0,7,0, +7,0,7,0,7,0,4,0,3,0,6,0,9,0,9,0,8,0,7,0,8,0,11,0,14,0,13,0,10,0,8,0, +6,0,7,0,8,0,8,0,8,0,11,0,13,0,12,0,9,0,9,0,11,0,11,0,11,0,8,0,6,0,4,0, +5,0,8,0,10,0,10,0,9,0,10,0,11,0,10,0,10,0,9,0,7,0,7,0,7,0,5,0,3,0,3,0, +4,0,5,0,7,0,7,0,7,0,6,0,5,0,4,0,4,0,5,0,7,0,7,0,6,0,6,0,3,0,254,255, +253,255,2,0,6,0,5,0,3,0,2,0,0,0,0,0,2,0,2,0,1,0,2,0,3,0,0,0,253,255,253,255, +254,255,253,255,253,255,0,0,2,0,2,0,1,0,255,255,254,255,254,255,255,255,1,0,1,0,0,0,254,255,255,255, +1,0,2,0,2,0,1,0,255,255,0,0,255,255,253,255,251,255,253,255,1,0,2,0,1,0,1,0,1,0,0,0, +254,255,253,255,255,255,0,0,0,0,0,0,2,0,3,0,3,0,1,0,255,255,254,255,253,255,254,255,255,255,0,0, +2,0,3,0,2,0,0,0,0,0,2,0,2,0,0,0,254,255,0,0,3,0,4,0,3,0,1,0,255,255,255,255, +0,0,2,0,3,0,3,0,2,0,1,0,2,0,3,0,2,0,1,0,0,0,0,0,255,255,253,255,253,255,255,255, +1,0,2,0,1,0,1,0,1,0,255,255,252,255,251,255,251,255,252,255,254,255,1,0,2,0,1,0,255,255,254,255, +253,255,252,255,252,255,253,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0, +2,0,4,0,3,0,0,0,254,255,255,255,255,255,254,255,0,0,4,0,6,0,5,0,3,0,2,0,0,0,255,255, +255,255,255,255,255,255,1,0,4,0,5,0,4,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,5,0, +6,0,6,0,4,0,3,0,4,0,6,0,7,0,6,0,5,0,5,0,6,0,7,0,8,0,8,0,8,0,8,0, +8,0,9,0,11,0,11,0,10,0,9,0,10,0,12,0,13,0,12,0,13,0,14,0,14,0,11,0,9,0,12,0, +15,0,15,0,15,0,15,0,15,0,14,0,14,0,14,0,16,0,17,0,16,0,15,0,15,0,15,0,15,0,16,0, +16,0,14,0,13,0,13,0,15,0,16,0,16,0,16,0,17,0,17,0,16,0,15,0,15,0,14,0,14,0,14,0, +14,0,14,0,14,0,15,0,16,0,16,0,15,0,15,0,16,0,16,0,15,0,14,0,15,0,15,0,14,0,14,0, +16,0,15,0,12,0,11,0,13,0,16,0,16,0,17,0,16,0,15,0,12,0,10,0,10,0,11,0,13,0,15,0, +14,0,12,0,12,0,12,0,12,0,12,0,12,0,11,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,7,0, +6,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0, +3,0,1,0,0,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,0,0,254,255,253,255,253,255,254,255,255,255, +0,0,1,0,1,0,255,255,255,255,254,255,252,255,249,255,248,255,249,255,250,255,251,255,252,255,252,255,252,255,251,255, +250,255,248,255,247,255,248,255,249,255,248,255,247,255,248,255,250,255,251,255,249,255,247,255,245,255,245,255,246,255,246,255, +246,255,246,255,248,255,249,255,248,255,248,255,247,255,246,255,245,255,245,255,246,255,247,255,247,255,247,255,248,255,247,255, +246,255,246,255,247,255,246,255,244,255,243,255,244,255,245,255,244,255,244,255,246,255,248,255,248,255,248,255,247,255,246,255, +245,255,245,255,244,255,244,255,244,255,244,255,244,255,244,255,245,255,246,255,246,255,245,255,245,255,246,255,246,255,246,255, +247,255,246,255,247,255,247,255,246,255,245,255,244,255,245,255,245,255,245,255,246,255,248,255,249,255,248,255,248,255,248,255, +248,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,250,255,250,255,250,255,250,255,250,255,250,255,249,255,250,255, +250,255,251,255,252,255,253,255,252,255,251,255,251,255,252,255,252,255,252,255,253,255,254,255,253,255,252,255,253,255,254,255, +252,255,252,255,253,255,253,255,253,255,254,255,0,0,255,255,253,255,253,255,255,255,255,255,255,255,255,255,254,255,252,255, +252,255,253,255,255,255,255,255,254,255,253,255,253,255,0,0,1,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255, +255,255,0,0,2,0,3,0,2,0,0,0,0,0,0,0,0,0,255,255,0,0,2,0,3,0,3,0,2,0,2,0, +2,0,2,0,3,0,2,0,2,0,2,0,3,0,4,0,3,0,2,0,3,0,4,0,3,0,1,0,1,0,2,0, +2,0,2,0,2,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,4,0,5,0,4,0,3,0, +2,0,3,0,2,0,0,0,255,255,0,0,3,0,4,0,4,0,4,0,5,0,4,0,3,0,1,0,1,0,3,0, +4,0,5,0,6,0,6,0,5,0,4,0,5,0,6,0,5,0,5,0,4,0,4,0,4,0,5,0,5,0,4,0, +4,0,4,0,5,0,7,0,7,0,6,0,5,0,5,0,7,0,7,0,6,0,6,0,6,0,5,0,4,0,5,0, +4,0,4,0,6,0,9,0,9,0,8,0,7,0,7,0,7,0,6,0,6,0,6,0,5,0,6,0,8,0,9,0, +9,0,8,0,7,0,5,0,5,0,6,0,8,0,9,0,9,0,9,0,8,0,8,0,8,0,8,0,6,0,5,0, +6,0,8,0,8,0,8,0,8,0,7,0,7,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,8,0,7,0, +8,0,8,0,7,0,5,0,5,0,6,0,6,0,5,0,5,0,7,0,7,0,6,0,5,0,6,0,7,0,7,0, +6,0,5,0,5,0,5,0,4,0,3,0,3,0,5,0,6,0,6,0,6,0,5,0,4,0,4,0,3,0,3,0, +2,0,2,0,2,0,2,0,4,0,5,0,4,0,1,0,0,0,0,0,2,0,2,0,2,0,1,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,253,255,252,255,252,255,253,255, +253,255,254,255,254,255,252,255,252,255,253,255,252,255,251,255,252,255,253,255,252,255,251,255,252,255,253,255,251,255,248,255, +249,255,251,255,252,255,251,255,251,255,251,255,250,255,249,255,249,255,249,255,249,255,249,255,249,255,249,255,250,255,250,255, +250,255,250,255,251,255,250,255,249,255,248,255,248,255,247,255,247,255,249,255,250,255,249,255,248,255,248,255,248,255,248,255, +248,255,249,255,248,255,247,255,247,255,248,255,249,255,249,255,248,255,247,255,248,255,248,255,248,255,247,255,247,255,247,255, +247,255,247,255,247,255,247,255,247,255,248,255,248,255,248,255,247,255,247,255,247,255,246,255,246,255,247,255,247,255,247,255, +247,255,248,255,249,255,248,255,247,255,247,255,247,255,246,255,247,255,247,255,248,255,248,255,249,255,248,255,247,255,247,255, +248,255,249,255,248,255,247,255,248,255,249,255,249,255,249,255,249,255,249,255,249,255,248,255,248,255,250,255,250,255,249,255, +249,255,249,255,250,255,250,255,249,255,249,255,249,255,249,255,249,255,250,255,250,255,251,255,250,255,249,255,249,255,248,255, +247,255,248,255,250,255,251,255,250,255,249,255,249,255,249,255,248,255,247,255,247,255,247,255,248,255,249,255,249,255,249,255, +249,255,250,255,249,255,247,255,246,255,248,255,249,255,249,255,248,255,248,255,249,255,250,255,250,255,249,255,249,255,249,255, +249,255,249,255,250,255,251,255,251,255,250,255,250,255,251,255,251,255,251,255,251,255,251,255,250,255,249,255,249,255,250,255, +251,255,251,255,250,255,249,255,251,255,252,255,251,255,250,255,249,255,249,255,249,255,249,255,250,255,250,255,249,255,249,255, +250,255,249,255,248,255,249,255,249,255,249,255,248,255,250,255,250,255,250,255,249,255,250,255,250,255,250,255,250,255,250,255, +249,255,249,255,250,255,250,255,250,255,251,255,252,255,252,255,252,255,253,255,253,255,252,255,251,255,251,255,252,255,253,255, +253,255,252,255,251,255,252,255,253,255,254,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255, +253,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,255,255,255,255,254,255,253,255,253,255,254,255, +255,255,255,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,0,0,255,255,1,0,2,0,1,0,1,0,3,0, +5,0,3,0,1,0,1,0,2,0,2,0,1,0,1,0,3,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0, +4,0,3,0,3,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,3,0,4,0,6,0,8,0, +7,0,6,0,6,0,6,0,7,0,8,0,7,0,5,0,6,0,8,0,8,0,6,0,6,0,8,0,8,0,7,0, +7,0,7,0,6,0,6,0,9,0,10,0,9,0,9,0,9,0,8,0,7,0,8,0,8,0,8,0,8,0,9,0, +9,0,8,0,8,0,9,0,8,0,7,0,7,0,8,0,9,0,9,0,9,0,10,0,9,0,9,0,8,0,7,0, +7,0,7,0,7,0,9,0,9,0,9,0,8,0,8,0,10,0,10,0,8,0,7,0,8,0,8,0,7,0,7,0, +8,0,9,0,10,0,10,0,8,0,7,0,6,0,7,0,8,0,8,0,8,0,8,0,8,0,9,0,9,0,8,0, +8,0,8,0,8,0,8,0,8,0,9,0,9,0,7,0,6,0,7,0,7,0,7,0,6,0,6,0,7,0,8,0, +10,0,9,0,8,0,7,0,6,0,7,0,6,0,6,0,7,0,7,0,6,0,5,0,6,0,7,0,7,0,6,0, +6,0,6,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,4,0,4,0,6,0,7,0,6,0,6,0,7,0, +6,0,5,0,6,0,6,0,5,0,3,0,4,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0, +3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,6,0,6,0,6,0,6,0,5,0,4,0,2,0, +1,0,2,0,3,0,5,0,5,0,4,0,4,0,5,0,4,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0, +3,0,4,0,5,0,4,0,3,0,4,0,5,0,5,0,5,0,3,0,2,0,1,0,3,0,3,0,3,0,3,0, +3,0,4,0,4,0,3,0,1,0,1,0,2,0,3,0,3,0,2,0,3,0,4,0,3,0,1,0,0,0,0,0, +0,0,0,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,1,0,2,0,3,0,3,0, +1,0,0,0,1,0,2,0,3,0,3,0,3,0,4,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,1,0, +1,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,255,255,254,255,255,255,1,0,0,0,254,255,255,255,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,254,255,254,255,255,255,0,0,0,0,254,255,254,255,254,255,254,255,255,255,255,255,254,255,255,255,0,0, +0,0,254,255,252,255,253,255,255,255,255,255,254,255,255,255,255,255,0,0,255,255,254,255,254,255,253,255,254,255,254,255, +254,255,253,255,253,255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255, +255,255,255,255,0,0,255,255,254,255,254,255,254,255,253,255,252,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255, +255,255,255,255,254,255,252,255,253,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,254,255, +255,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,252,255,253,255,253,255,253,255,252,255,252,255, +252,255,252,255,253,255,252,255,253,255,254,255,254,255,253,255,252,255,253,255,253,255,252,255,252,255,253,255,254,255,253,255, +253,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,253,255, +253,255,253,255,254,255,253,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,251,255, +252,255,253,255,254,255,254,255,254,255,254,255,252,255,251,255,252,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255, +252,255,252,255,251,255,251,255,252,255,253,255,255,255,255,255,255,255,254,255,253,255,252,255,253,255,254,255,253,255,253,255, +253,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,254,255,253,255, +253,255,253,255,253,255,253,255,253,255,254,255,254,255,253,255,253,255,254,255,255,255,253,255,252,255,253,255,253,255,252,255, +252,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255, +255,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,255,255,255,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255, +254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255, +254,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255, +254,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,253,255,254,255,0,0, +1,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0, +1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0, +0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0, +1,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0, +2,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0, +3,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0, +2,0,2,0,3,0,3,0,2,0,2,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0, +2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0, +3,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0, +1,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,1,0,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,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0, +0,0,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,1,0,1,0,0,0,255,255,255,255, +255,255,0,0,0,0,1,0,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,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,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,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,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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, +255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +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,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,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,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,1,0,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,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,1,0,0,0, +255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,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,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0, +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,255,255,255,255, +0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,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,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,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,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,1,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,1,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,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,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,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,255,255,255,255,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,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,1,0, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpigangry4.pcm b/src/client/sound/data/zpigangry4.pcm new file mode 100755 index 0000000..e18a9b9 --- /dev/null +++ b/src/client/sound/data/zpigangry4.pcm @@ -0,0 +1,4638 @@ +unsigned char PCM_zpigangry4[148338] = { +1,0,0,0,2,0,0,0,68,172,0,0,177,33,1,0,0,0,1,0,1,0,1,0,1,0,1,0,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,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0, +255,255,255,255,254,255,253,255,254,255,0,0,1,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,0,0,254,255, +253,255,254,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,0,0, +253,255,253,255,253,255,250,255,249,255,250,255,251,255,251,255,253,255,255,255,255,255,1,0,4,0,4,0,2,0,0,0, +255,255,252,255,250,255,248,255,247,255,246,255,248,255,253,255,3,0,8,0,11,0,11,0,8,0,6,0,4,0,2,0, +0,0,254,255,252,255,252,255,255,255,2,0,2,0,4,0,6,0,7,0,8,0,10,0,7,0,4,0,4,0,4,0, +0,0,253,255,255,255,1,0,1,0,0,0,253,255,252,255,253,255,254,255,0,0,2,0,2,0,1,0,4,0,7,0, +4,0,0,0,253,255,249,255,246,255,247,255,249,255,251,255,251,255,253,255,1,0,6,0,7,0,5,0,4,0,3,0, +255,255,252,255,250,255,248,255,246,255,247,255,250,255,252,255,255,255,1,0,3,0,7,0,10,0,7,0,4,0,2,0, +252,255,247,255,249,255,252,255,252,255,252,255,254,255,254,255,253,255,0,0,3,0,5,0,7,0,8,0,5,0,3,0, +2,0,1,0,255,255,254,255,255,255,0,0,254,255,253,255,253,255,0,0,4,0,8,0,7,0,4,0,1,0,252,255, +248,255,248,255,248,255,248,255,250,255,255,255,1,0,1,0,3,0,6,0,4,0,0,0,255,255,253,255,252,255,252,255, +252,255,250,255,249,255,252,255,2,0,7,0,6,0,3,0,3,0,3,0,1,0,254,255,255,255,0,0,1,0,2,0, +4,0,5,0,7,0,9,0,8,0,6,0,6,0,3,0,253,255,249,255,249,255,250,255,250,255,248,255,248,255,253,255, +1,0,1,0,4,0,7,0,6,0,2,0,254,255,252,255,252,255,253,255,252,255,250,255,251,255,254,255,0,0,3,0, +3,0,0,0,255,255,1,0,2,0,1,0,4,0,5,0,2,0,253,255,250,255,250,255,252,255,0,0,5,0,8,0, +5,0,1,0,0,0,1,0,255,255,251,255,248,255,250,255,252,255,253,255,252,255,253,255,1,0,3,0,1,0,254,255, +252,255,251,255,250,255,248,255,247,255,247,255,252,255,255,255,0,0,0,0,0,0,2,0,3,0,3,0,1,0,254,255, +250,255,248,255,252,255,255,255,252,255,249,255,250,255,252,255,253,255,254,255,254,255,253,255,255,255,0,0,254,255,252,255, +255,255,0,0,254,255,253,255,252,255,253,255,0,0,0,0,253,255,251,255,251,255,252,255,255,255,3,0,3,0,3,0, +4,0,4,0,1,0,255,255,255,255,252,255,249,255,249,255,250,255,251,255,254,255,1,0,3,0,3,0,1,0,0,0, +1,0,255,255,252,255,254,255,1,0,1,0,255,255,255,255,2,0,3,0,2,0,255,255,253,255,251,255,251,255,253,255, +2,0,4,0,2,0,2,0,4,0,4,0,4,0,4,0,3,0,1,0,2,0,4,0,6,0,4,0,1,0,255,255, +0,0,2,0,2,0,255,255,255,255,1,0,2,0,255,255,254,255,1,0,1,0,0,0,3,0,6,0,7,0,7,0, +9,0,6,0,0,0,253,255,252,255,251,255,252,255,253,255,252,255,251,255,253,255,254,255,254,255,2,0,6,0,5,0, +4,0,4,0,3,0,3,0,3,0,0,0,255,255,0,0,254,255,250,255,248,255,250,255,252,255,255,255,3,0,4,0, +5,0,8,0,9,0,8,0,7,0,6,0,4,0,0,0,253,255,253,255,255,255,1,0,1,0,3,0,5,0,5,0, +4,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,3,0,5,0,5,0,7,0,10,0,12,0, +12,0,9,0,3,0,253,255,253,255,255,255,253,255,251,255,254,255,2,0,5,0,7,0,11,0,11,0,7,0,6,0, +5,0,2,0,254,255,249,255,247,255,247,255,251,255,254,255,254,255,255,255,3,0,5,0,7,0,9,0,9,0,4,0, +1,0,0,0,252,255,249,255,250,255,249,255,248,255,251,255,2,0,7,0,10,0,9,0,6,0,4,0,5,0,5,0, +5,0,9,0,9,0,5,0,2,0,1,0,0,0,2,0,6,0,5,0,2,0,0,0,255,255,0,0,4,0,8,0, +8,0,5,0,3,0,1,0,0,0,255,255,253,255,254,255,1,0,0,0,253,255,251,255,251,255,254,255,1,0,2,0, +0,0,253,255,251,255,252,255,0,0,2,0,1,0,3,0,7,0,10,0,8,0,5,0,1,0,254,255,0,0,2,0, +1,0,255,255,255,255,255,255,255,255,1,0,5,0,7,0,8,0,9,0,7,0,0,0,250,255,250,255,249,255,245,255, +244,255,248,255,252,255,254,255,0,0,2,0,3,0,4,0,2,0,0,0,254,255,253,255,252,255,252,255,255,255,0,0, +254,255,254,255,254,255,255,255,2,0,8,0,10,0,9,0,8,0,6,0,0,0,251,255,248,255,248,255,249,255,247,255, +243,255,245,255,252,255,254,255,254,255,0,0,0,0,253,255,250,255,249,255,249,255,250,255,248,255,245,255,245,255,246,255, +246,255,248,255,254,255,1,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,1,0,4,0,4,0,2,0,2,0, +2,0,1,0,0,0,254,255,253,255,254,255,255,255,254,255,255,255,1,0,3,0,4,0,5,0,3,0,255,255,253,255, +251,255,248,255,245,255,245,255,248,255,250,255,252,255,0,0,3,0,3,0,2,0,3,0,1,0,250,255,243,255,242,255, +244,255,248,255,253,255,254,255,253,255,253,255,0,0,0,0,253,255,249,255,248,255,249,255,251,255,250,255,250,255,251,255, +251,255,251,255,252,255,251,255,252,255,254,255,0,0,254,255,251,255,251,255,253,255,255,255,254,255,251,255,252,255,2,0, +6,0,6,0,5,0,2,0,253,255,252,255,252,255,250,255,249,255,252,255,255,255,254,255,254,255,253,255,250,255,249,255, +250,255,250,255,250,255,252,255,252,255,251,255,253,255,254,255,254,255,253,255,252,255,252,255,253,255,0,0,2,0,2,0, +4,0,4,0,5,0,5,0,4,0,2,0,3,0,4,0,4,0,3,0,3,0,5,0,8,0,9,0,9,0,8,0, +6,0,3,0,0,0,253,255,249,255,249,255,251,255,252,255,255,255,3,0,2,0,255,255,255,255,0,0,253,255,249,255, +249,255,251,255,253,255,0,0,1,0,255,255,254,255,254,255,1,0,5,0,5,0,4,0,3,0,3,0,4,0,5,0, +4,0,3,0,5,0,7,0,8,0,9,0,10,0,10,0,8,0,6,0,0,0,248,255,245,255,248,255,255,255,8,0, +12,0,8,0,7,0,11,0,10,0,3,0,0,0,0,0,252,255,249,255,250,255,252,255,254,255,0,0,1,0,3,0, +6,0,8,0,9,0,10,0,10,0,7,0,4,0,3,0,1,0,253,255,252,255,253,255,254,255,1,0,5,0,8,0, +10,0,12,0,14,0,12,0,9,0,6,0,5,0,3,0,255,255,251,255,249,255,249,255,251,255,253,255,255,255,6,0, +10,0,5,0,254,255,252,255,254,255,252,255,249,255,249,255,250,255,250,255,249,255,248,255,250,255,254,255,2,0,3,0, +3,0,3,0,3,0,1,0,254,255,252,255,250,255,249,255,253,255,1,0,4,0,6,0,9,0,10,0,7,0,4,0, +255,255,248,255,245,255,248,255,254,255,1,0,4,0,5,0,5,0,8,0,11,0,8,0,2,0,254,255,251,255,250,255, +253,255,0,0,253,255,251,255,254,255,1,0,3,0,6,0,9,0,9,0,10,0,8,0,3,0,254,255,253,255,254,255, +0,0,1,0,0,0,0,0,3,0,3,0,0,0,255,255,255,255,253,255,249,255,249,255,251,255,251,255,251,255,253,255, +1,0,5,0,6,0,3,0,255,255,252,255,251,255,252,255,250,255,251,255,253,255,255,255,255,255,0,0,0,0,0,0, +2,0,4,0,2,0,252,255,250,255,252,255,254,255,1,0,5,0,7,0,7,0,4,0,0,0,254,255,252,255,250,255, +250,255,252,255,254,255,253,255,251,255,252,255,255,255,3,0,4,0,6,0,7,0,5,0,2,0,1,0,254,255,249,255, +248,255,250,255,251,255,253,255,1,0,3,0,5,0,10,0,12,0,9,0,3,0,0,0,255,255,255,255,255,255,255,255, +0,0,2,0,1,0,252,255,252,255,255,255,3,0,5,0,5,0,3,0,4,0,7,0,5,0,1,0,0,0,255,255, +253,255,253,255,255,255,255,255,254,255,255,255,0,0,2,0,4,0,4,0,3,0,5,0,7,0,4,0,0,0,255,255, +255,255,254,255,254,255,2,0,8,0,11,0,8,0,7,0,11,0,13,0,12,0,10,0,9,0,7,0,4,0,2,0, +0,0,255,255,254,255,255,255,1,0,5,0,7,0,8,0,9,0,9,0,9,0,4,0,255,255,253,255,255,255,254,255, +253,255,0,0,4,0,6,0,5,0,2,0,0,0,3,0,6,0,4,0,255,255,252,255,250,255,250,255,252,255,254,255, +255,255,5,0,10,0,12,0,12,0,13,0,12,0,7,0,2,0,0,0,255,255,252,255,251,255,253,255,254,255,253,255, +254,255,6,0,11,0,8,0,4,0,2,0,0,0,255,255,2,0,4,0,1,0,254,255,252,255,250,255,251,255,255,255, +2,0,2,0,2,0,255,255,253,255,255,255,2,0,4,0,8,0,11,0,7,0,1,0,255,255,1,0,1,0,0,0, +255,255,254,255,255,255,0,0,255,255,0,0,3,0,6,0,5,0,3,0,0,0,252,255,249,255,246,255,246,255,249,255, +252,255,251,255,248,255,245,255,247,255,250,255,249,255,248,255,247,255,245,255,245,255,246,255,245,255,242,255,243,255,246,255, +248,255,249,255,251,255,250,255,250,255,253,255,255,255,252,255,249,255,250,255,252,255,250,255,247,255,244,255,244,255,245,255, +245,255,243,255,245,255,247,255,247,255,246,255,248,255,249,255,246,255,240,255,237,255,238,255,237,255,235,255,238,255,241,255, +238,255,235,255,237,255,240,255,240,255,242,255,246,255,244,255,238,255,235,255,235,255,238,255,242,255,244,255,243,255,244,255, +246,255,246,255,247,255,247,255,246,255,245,255,244,255,241,255,240,255,245,255,248,255,243,255,240,255,243,255,244,255,241,255, +237,255,235,255,236,255,240,255,246,255,247,255,243,255,240,255,240,255,242,255,243,255,244,255,244,255,244,255,245,255,245,255, +244,255,244,255,246,255,249,255,254,255,2,0,1,0,254,255,254,255,254,255,251,255,251,255,1,0,4,0,1,0,254,255, +253,255,250,255,247,255,250,255,254,255,1,0,3,0,3,0,1,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255, +255,255,253,255,253,255,254,255,0,0,4,0,8,0,9,0,9,0,12,0,11,0,8,0,7,0,6,0,5,0,8,0, +9,0,8,0,12,0,21,0,24,0,20,0,22,0,24,0,20,0,15,0,15,0,17,0,17,0,18,0,19,0,21,0, +21,0,19,0,19,0,21,0,21,0,17,0,20,0,28,0,31,0,28,0,26,0,24,0,23,0,27,0,30,0,27,0, +21,0,16,0,13,0,11,0,10,0,13,0,21,0,28,0,29,0,25,0,23,0,21,0,19,0,18,0,20,0,22,0, +23,0,25,0,24,0,17,0,10,0,12,0,23,0,29,0,31,0,33,0,33,0,29,0,26,0,27,0,28,0,27,0, +28,0,31,0,30,0,27,0,26,0,29,0,34,0,35,0,31,0,28,0,27,0,28,0,31,0,34,0,31,0,29,0, +31,0,32,0,28,0,22,0,17,0,10,0,5,0,8,0,13,0,14,0,10,0,6,0,5,0,8,0,14,0,21,0, +23,0,17,0,4,0,249,255,242,255,239,255,242,255,253,255,5,0,7,0,6,0,8,0,13,0,15,0,11,0,5,0, +1,0,251,255,242,255,236,255,236,255,238,255,245,255,2,0,12,0,12,0,11,0,10,0,7,0,0,0,245,255,235,255, +229,255,229,255,229,255,233,255,242,255,249,255,247,255,244,255,246,255,244,255,239,255,235,255,231,255,224,255,222,255,229,255, +239,255,244,255,245,255,245,255,244,255,243,255,239,255,235,255,229,255,226,255,228,255,229,255,230,255,231,255,232,255,231,255, +229,255,233,255,244,255,253,255,248,255,234,255,229,255,231,255,227,255,219,255,222,255,232,255,236,255,235,255,236,255,238,255, +243,255,255,255,3,0,251,255,245,255,242,255,228,255,216,255,224,255,239,255,245,255,245,255,246,255,244,255,241,255,240,255, +241,255,242,255,241,255,231,255,217,255,214,255,222,255,225,255,225,255,229,255,236,255,239,255,235,255,227,255,216,255,209,255, +210,255,213,255,215,255,219,255,223,255,226,255,231,255,246,255,8,0,13,0,6,0,1,0,251,255,239,255,231,255,239,255, +252,255,1,0,5,0,13,0,21,0,29,0,29,0,12,0,250,255,248,255,248,255,241,255,233,255,232,255,234,255,247,255, +10,0,18,0,18,0,24,0,29,0,22,0,15,0,3,0,232,255,210,255,207,255,210,255,213,255,228,255,251,255,14,0, +27,0,33,0,31,0,36,0,45,0,37,0,16,0,5,0,7,0,11,0,18,0,19,0,10,0,5,0,11,0,14,0, +13,0,13,0,7,0,253,255,250,255,250,255,246,255,246,255,254,255,10,0,20,0,16,0,2,0,250,255,245,255,230,255, +218,255,226,255,240,255,245,255,0,0,21,0,40,0,48,0,39,0,22,0,23,0,38,0,36,0,19,0,19,0,30,0, +32,0,33,0,43,0,55,0,69,0,78,0,69,0,57,0,59,0,56,0,38,0,21,0,14,0,12,0,15,0,16,0, +11,0,9,0,11,0,7,0,13,0,32,0,39,0,30,0,26,0,23,0,1,0,234,255,230,255,233,255,226,255,213,255, +208,255,228,255,5,0,20,0,13,0,15,0,24,0,20,0,9,0,2,0,252,255,0,0,12,0,15,0,5,0,4,0, +15,0,22,0,29,0,43,0,56,0,53,0,32,0,11,0,6,0,9,0,8,0,10,0,16,0,14,0,8,0,9,0, +3,0,244,255,237,255,238,255,235,255,235,255,241,255,231,255,209,255,195,255,192,255,193,255,201,255,208,255,208,255,212,255, +222,255,227,255,233,255,248,255,3,0,5,0,12,0,19,0,16,0,14,0,19,0,17,0,2,0,237,255,233,255,0,0, +35,0,48,0,40,0,43,0,67,0,81,0,66,0,31,0,250,255,222,255,197,255,176,255,165,255,164,255,167,255,172,255, +189,255,215,255,239,255,249,255,241,255,220,255,205,255,198,255,186,255,163,255,145,255,144,255,163,255,197,255,236,255,15,0, +38,0,48,0,49,0,49,0,48,0,47,0,48,0,40,0,9,0,230,255,225,255,254,255,36,0,54,0,44,0,24,0, +17,0,18,0,3,0,227,255,210,255,223,255,253,255,18,0,16,0,255,255,237,255,224,255,211,255,200,255,199,255,204,255, +200,255,186,255,186,255,218,255,7,0,35,0,42,0,40,0,41,0,45,0,45,0,23,0,237,255,213,255,223,255,243,255, +249,255,249,255,255,255,15,0,44,0,67,0,62,0,41,0,34,0,39,0,23,0,242,255,223,255,234,255,239,255,214,255, +181,255,179,255,215,255,17,0,59,0,63,0,52,0,59,0,73,0,72,0,59,0,36,0,6,0,251,255,16,0,25,0, +3,0,240,255,231,255,215,255,213,255,240,255,7,0,14,0,34,0,60,0,56,0,26,0,244,255,204,255,187,255,199,255, +207,255,202,255,215,255,235,255,230,255,225,255,254,255,29,0,19,0,251,255,247,255,247,255,239,255,246,255,18,0,55,0, +99,0,146,0,161,0,135,0,111,0,95,0,46,0,236,255,207,255,207,255,197,255,194,255,222,255,0,0,27,0,63,0, +100,0,109,0,88,0,45,0,255,255,241,255,255,255,255,255,239,255,233,255,231,255,217,255,214,255,235,255,5,0,18,0, +19,0,16,0,27,0,43,0,43,0,39,0,72,0,120,0,123,0,73,0,27,0,21,0,28,0,4,0,208,255,174,255, +187,255,228,255,13,0,29,0,13,0,244,255,240,255,252,255,255,255,236,255,206,255,183,255,177,255,182,255,202,255,248,255, +41,0,52,0,38,0,38,0,50,0,55,0,56,0,53,0,49,0,45,0,24,0,248,255,245,255,7,0,247,255,216,255, +222,255,253,255,27,0,62,0,88,0,80,0,75,0,94,0,95,0,54,0,1,0,208,255,174,255,167,255,176,255,196,255, +237,255,26,0,44,0,49,0,56,0,48,0,26,0,254,255,213,255,177,255,179,255,194,255,191,255,199,255,230,255,2,0, +17,0,11,0,230,255,194,255,184,255,171,255,144,255,132,255,122,255,104,255,123,255,177,255,204,255,203,255,219,255,248,255, +2,0,240,255,208,255,204,255,241,255,8,0,247,255,246,255,12,0,15,0,11,0,20,0,9,0,222,255,178,255,142,255, +143,255,204,255,246,255,212,255,191,255,240,255,21,0,17,0,28,0,50,0,43,0,17,0,236,255,197,255,193,255,210,255, +206,255,213,255,9,0,52,0,65,0,95,0,133,0,135,0,111,0,78,0,56,0,71,0,89,0,47,0,249,255,6,0, +58,0,87,0,81,0,39,0,245,255,241,255,255,255,222,255,175,255,158,255,130,255,79,255,55,255,66,255,96,255,140,255, +165,255,164,255,193,255,236,255,218,255,169,255,177,255,219,255,236,255,237,255,231,255,210,255,200,255,224,255,255,255,10,0, +251,255,218,255,192,255,175,255,171,255,206,255,15,0,43,0,41,0,59,0,67,0,43,0,57,0,87,0,22,0,160,255, +125,255,154,255,165,255,168,255,176,255,192,255,6,0,106,0,138,0,120,0,131,0,121,0,41,0,232,255,228,255,224,255, +208,255,211,255,234,255,28,0,110,0,160,0,134,0,81,0,38,0,241,255,189,255,169,255,166,255,158,255,157,255,176,255, +214,255,0,0,30,0,42,0,40,0,38,0,53,0,70,0,42,0,241,255,219,255,233,255,232,255,227,255,243,255,5,0, +22,0,46,0,41,0,8,0,10,0,37,0,19,0,244,255,4,0,27,0,16,0,5,0,248,255,194,255,140,255,135,255, +154,255,162,255,164,255,166,255,189,255,250,255,57,0,69,0,50,0,45,0,62,0,84,0,86,0,45,0,248,255,240,255, +7,0,7,0,252,255,17,0,60,0,85,0,82,0,68,0,50,0,33,0,27,0,52,0,94,0,110,0,95,0,95,0, +115,0,103,0,49,0,5,0,0,0,14,0,21,0,1,0,230,255,250,255,69,0,137,0,161,0,164,0,160,0,161,0, +174,0,166,0,107,0,50,0,33,0,21,0,8,0,28,0,40,0,7,0,248,255,24,0,27,0,246,255,235,255,247,255, +250,255,6,0,26,0,26,0,26,0,35,0,254,255,176,255,139,255,159,255,184,255,194,255,206,255,223,255,243,255,15,0, +46,0,64,0,58,0,45,0,48,0,43,0,250,255,182,255,120,255,58,255,35,255,103,255,208,255,16,0,43,0,43,0, +16,0,13,0,19,0,208,255,117,255,109,255,127,255,105,255,141,255,11,0,112,0,148,0,165,0,163,0,170,0,208,0, +168,0,20,0,194,255,237,255,6,0,234,255,237,255,247,255,236,255,8,0,72,0,93,0,70,0,35,0,236,255,178,255, +151,255,159,255,197,255,236,255,231,255,197,255,175,255,154,255,149,255,188,255,201,255,145,255,125,255,185,255,225,255,226,255, +5,0,69,0,120,0,157,0,151,0,102,0,79,0,71,0,21,0,240,255,7,0,5,0,193,255,137,255,135,255,182,255, +254,255,9,0,185,255,127,255,154,255,178,255,147,255,97,255,56,255,60,255,114,255,150,255,156,255,205,255,12,0,12,0, +1,0,30,0,35,0,245,255,199,255,169,255,172,255,217,255,241,255,232,255,19,0,72,0,30,0,236,255,45,0,133,0, +139,0,105,0,65,0,19,0,8,0,23,0,10,0,254,255,8,0,239,255,197,255,230,255,45,0,51,0,255,255,215,255, +226,255,20,0,57,0,60,0,91,0,158,0,188,0,167,0,143,0,110,0,66,0,49,0,38,0,239,255,179,255,170,255, +206,255,8,0,53,0,53,0,41,0,54,0,39,0,219,255,137,255,83,255,52,255,53,255,74,255,85,255,120,255,204,255, +30,0,76,0,101,0,96,0,47,0,232,255,149,255,86,255,99,255,153,255,161,255,156,255,207,255,28,0,104,0,184,0, +212,0,169,0,157,0,207,0,210,0,138,0,80,0,62,0,52,0,47,0,53,0,68,0,90,0,84,0,43,0,39,0, +107,0,179,0,208,0,206,0,178,0,120,0,63,0,35,0,39,0,54,0,42,0,248,255,205,255,220,255,34,0,114,0, +143,0,90,0,14,0,1,0,44,0,55,0,247,255,171,255,182,255,13,0,64,0,38,0,17,0,36,0,40,0,18,0, +11,0,36,0,79,0,119,0,125,0,111,0,116,0,117,0,94,0,88,0,86,0,2,0,95,255,213,254,153,254,166,254, +236,254,62,255,137,255,232,255,54,0,61,0,57,0,83,0,38,0,139,255,10,255,217,254,155,254,77,254,89,254,194,254, +54,255,154,255,238,255,34,0,66,0,109,0,124,0,88,0,76,0,130,0,153,0,88,0,45,0,89,0,137,0,161,0, +220,0,27,1,0,1,159,0,64,0,1,0,254,255,42,0,47,0,16,0,38,0,82,0,65,0,37,0,57,0,62,0, +45,0,72,0,97,0,34,0,185,255,113,255,77,255,82,255,130,255,150,255,113,255,99,255,171,255,33,0,124,0,137,0, +70,0,244,255,211,255,198,255,145,255,76,255,69,255,115,255,127,255,87,255,77,255,127,255,181,255,220,255,1,0,15,0, +14,0,32,0,31,0,206,255,99,255,59,255,79,255,104,255,111,255,94,255,74,255,104,255,192,255,22,0,64,0,82,0, +105,0,124,0,108,0,53,0,251,255,205,255,151,255,104,255,107,255,166,255,239,255,23,0,5,0,219,255,219,255,249,255, +226,255,140,255,69,255,72,255,151,255,251,255,27,0,238,255,201,255,212,255,221,255,211,255,212,255,223,255,228,255,252,255, +54,0,132,0,215,0,44,1,114,1,146,1,138,1,120,1,108,1,65,1,222,0,119,0,71,0,86,0,143,0,216,0, +11,1,26,1,27,1,24,1,1,1,215,0,149,0,40,0,137,255,223,254,123,254,138,254,193,254,182,254,146,254,190,254, +40,255,104,255,86,255,15,255,205,254,192,254,207,254,195,254,179,254,200,254,232,254,21,255,109,255,201,255,251,255,31,0, +53,0,29,0,16,0,78,0,172,0,252,0,63,1,92,1,74,1,60,1,54,1,13,1,223,0,188,0,110,0,2,0, +205,255,213,255,232,255,11,0,71,0,136,0,196,0,234,0,199,0,72,0,178,255,111,255,146,255,186,255,163,255,145,255, +181,255,208,255,214,255,9,0,78,0,95,0,72,0,16,0,175,255,128,255,180,255,229,255,248,255,98,0,16,1,106,1, +90,1,45,1,14,1,4,1,233,0,140,0,45,0,26,0,26,0,11,0,61,0,165,0,230,0,254,0,3,1,200,0, +98,0,30,0,245,255,207,255,180,255,136,255,79,255,81,255,118,255,88,255,16,255,250,254,17,255,35,255,20,255,225,254, +206,254,2,255,23,255,225,254,225,254,52,255,68,255,241,254,176,254,182,254,251,254,106,255,200,255,22,0,141,0,234,0, +207,0,146,0,141,0,123,0,65,0,53,0,106,0,157,0,173,0,171,0,198,0,20,1,65,1,16,1,222,0,229,0, +219,0,154,0,66,0,204,255,90,255,62,255,103,255,138,255,156,255,147,255,109,255,117,255,186,255,212,255,177,255,161,255, +182,255,231,255,59,0,142,0,212,0,50,1,89,1,229,0,77,0,31,0,11,0,199,255,142,255,110,255,86,255,130,255, +228,255,44,0,108,0,188,0,211,0,189,0,195,0,162,0,23,0,140,255,71,255,17,255,233,254,246,254,24,255,80,255, +189,255,24,0,20,0,228,255,198,255,161,255,123,255,154,255,27,0,173,0,242,0,236,0,231,0,244,0,233,0,200,0, +168,0,118,0,51,0,252,255,207,255,185,255,212,255,250,255,18,0,84,0,164,0,124,0,214,255,41,255,162,254,73,254, +55,254,49,254,2,254,0,254,92,254,213,254,109,255,54,0,179,0,151,0,70,0,241,255,100,255,227,254,225,254,60,255, +157,255,230,255,254,255,253,255,57,0,163,0,211,0,210,0,238,0,250,0,164,0,27,0,209,255,245,255,103,0,235,0, +74,1,99,1,68,1,25,1,242,0,181,0,92,0,12,0,218,255,189,255,183,255,209,255,5,0,52,0,75,0,99,0, +167,0,226,0,168,0,254,255,80,255,221,254,166,254,172,254,207,254,243,254,70,255,210,255,64,0,125,0,200,0,233,0, +103,0,126,255,205,254,115,254,63,254,64,254,155,254,67,255,5,0,169,0,12,1,53,1,38,1,219,0,128,0,72,0, +33,0,236,255,201,255,217,255,2,0,46,0,117,0,233,0,100,1,160,1,101,1,189,0,255,255,115,255,15,255,197,254, +203,254,46,255,145,255,183,255,194,255,210,255,234,255,26,0,83,0,91,0,57,0,30,0,7,0,247,255,35,0,110,0, +112,0,47,0,21,0,60,0,112,0,139,0,120,0,63,0,16,0,235,255,152,255,38,255,236,254,6,255,62,255,105,255, +140,255,189,255,239,255,235,255,148,255,43,255,255,254,247,254,192,254,83,254,249,253,210,253,195,253,223,253,95,254,26,255, +173,255,255,255,31,0,246,255,151,255,68,255,246,254,145,254,80,254,105,254,219,254,167,255,160,0,65,1,102,1,124,1, +156,1,90,1,145,0,159,255,235,254,167,254,177,254,205,254,18,255,190,255,154,0,53,1,125,1,163,1,179,1,133,1, +5,1,87,0,207,255,164,255,226,255,106,0,220,0,237,0,240,0,54,1,88,1,9,1,183,0,168,0,148,0,106,0, +79,0,48,0,30,0,71,0,105,0,78,0,71,0,107,0,81,0,229,255,128,255,86,255,131,255,8,0,115,0,100,0, +18,0,219,255,214,255,238,255,246,255,196,255,111,255,36,255,232,254,202,254,236,254,86,255,250,255,144,0,163,0,48,0, +184,255,115,255,77,255,86,255,136,255,172,255,207,255,3,0,16,0,23,0,105,0,186,0,180,0,158,0,113,0,194,255, +231,254,149,254,203,254,87,255,49,0,226,0,4,1,0,1,25,1,251,0,185,0,193,0,226,0,161,0,1,0,99,255, +52,255,143,255,20,0,127,0,244,0,77,1,30,1,155,0,76,0,85,0,156,0,230,0,221,0,188,0,8,1,112,1, +86,1,25,1,87,1,221,1,52,2,34,2,152,1,247,0,184,0,185,0,184,0,205,0,208,0,135,0,84,0,107,0, +102,0,79,0,155,0,245,0,187,0,26,0,155,255,132,255,216,255,44,0,16,0,225,255,33,0,121,0,100,0,255,255, +163,255,142,255,211,255,28,0,34,0,41,0,115,0,200,0,242,0,237,0,206,0,227,0,32,1,221,0,16,0,148,255, +163,255,171,255,131,255,77,255,6,255,250,254,91,255,165,255,139,255,101,255,43,255,174,254,102,254,136,254,141,254,109,254, +152,254,226,254,5,255,42,255,61,255,45,255,89,255,162,255,93,255,208,254,208,254,28,255,11,255,236,254,71,255,233,255, +93,0,111,0,51,0,242,255,203,255,140,255,45,255,245,254,223,254,150,254,21,254,234,253,130,254,130,255,43,0,80,0, +77,0,60,0,30,0,58,0,135,0,156,0,124,0,113,0,98,0,53,0,17,0,233,255,204,255,29,0,151,0,128,0, +36,0,65,0,105,0,4,0,173,255,249,255,120,0,164,0,89,0,145,255,188,254,132,254,206,254,16,255,57,255,84,255, +57,255,25,255,68,255,144,255,194,255,234,255,223,255,113,255,243,254,226,254,61,255,203,255,89,0,182,0,235,0,59,1, +155,1,190,1,172,1,169,1,164,1,82,1,171,0,0,0,151,255,98,255,37,255,234,254,10,255,141,255,240,255,205,255, +98,255,30,255,22,255,36,255,80,255,181,255,32,0,53,0,254,255,222,255,232,255,201,255,105,255,16,255,228,254,204,254, +220,254,80,255,19,0,166,0,176,0,113,0,101,0,141,0,125,0,251,255,46,255,118,254,46,254,81,254,131,254,185,254, +60,255,221,255,42,0,79,0,146,0,134,0,226,255,15,255,98,254,236,253,249,253,141,254,34,255,146,255,49,0,234,0, +128,1,245,1,2,2,88,1,122,0,28,0,43,0,94,0,158,0,190,0,217,0,89,1,28,2,145,2,152,2,56,2, +62,1,16,0,118,255,122,255,164,255,218,255,31,0,84,0,156,0,39,1,181,1,236,1,171,1,12,1,104,0,13,0, +230,255,212,255,234,255,29,0,77,0,153,0,23,1,150,1,208,1,129,1,192,0,54,0,49,0,25,0,161,255,72,255, +57,255,61,255,120,255,223,255,215,255,71,255,171,254,63,254,25,254,98,254,223,254,82,255,235,255,117,0,92,0,217,255, +159,255,179,255,205,255,204,255,115,255,222,254,189,254,35,255,104,255,126,255,227,255,129,0,215,0,171,0,26,0,146,255, +117,255,153,255,193,255,18,0,135,0,217,0,10,1,36,1,235,0,98,0,181,255,198,254,181,253,251,252,171,252,187,252, +132,253,225,254,13,0,198,0,61,1,72,1,232,0,133,0,25,0,144,255,98,255,153,255,155,255,127,255,231,255,190,0, +141,1,60,2,166,2,145,2,26,2,100,1,137,0,14,0,90,0,252,0,82,1,76,1,38,1,253,0,224,0,233,0, +42,1,100,1,34,1,142,0,99,0,157,0,123,0,0,0,236,255,82,0,151,0,106,0,234,255,112,255,45,255,205,254, +28,254,195,253,62,254,242,254,91,255,224,255,209,0,208,1,102,2,71,2,100,1,52,0,66,255,162,254,79,254,88,254, +136,254,162,254,181,254,203,254,204,254,230,254,81,255,189,255,177,255,40,255,130,254,25,254,249,253,236,253,234,253,81,254, +92,255,146,0,24,1,166,0,223,255,135,255,133,255,69,255,219,254,240,254,165,255,141,0,129,1,130,2,57,3,112,3, +91,3,0,3,32,2,243,0,29,0,194,255,109,255,217,254,65,254,22,254,163,254,171,255,139,0,12,1,108,1,142,1, +237,0,157,255,103,254,222,253,233,253,37,254,107,254,229,254,169,255,76,0,91,0,8,0,242,255,112,0,74,1,243,1, +41,2,117,2,105,3,148,4,24,5,222,4,103,4,229,3,36,3,226,1,58,0,221,254,127,254,238,254,116,255,191,255, +3,0,136,0,52,1,93,1,129,0,24,255,243,253,29,253,49,252,90,251,64,251,39,252,92,253,237,253,240,253,73,254, +14,255,134,255,139,255,114,255,80,255,60,255,80,255,69,255,37,255,148,255,157,0,172,1,146,2,43,3,13,3,126,2, +248,1,17,1,207,255,95,255,246,255,120,0,163,0,9,1,161,1,58,2,165,2,10,2,54,0,146,254,250,253,177,253, +95,253,133,253,19,254,186,254,135,255,68,0,176,0,21,1,104,1,6,1,2,0,40,255,187,254,130,254,134,254,245,254, +210,255,242,0,248,1,126,2,72,2,87,1,38,0,84,255,213,254,105,254,133,254,137,255,204,0,159,1,29,2,126,2, +185,2,145,2,121,1,130,255,250,253,186,253,242,253,241,253,46,254,1,255,24,0,43,1,251,1,77,2,86,2,68,2, +208,1,235,0,236,255,30,255,219,254,72,255,201,255,233,255,64,0,66,1,88,2,242,2,37,3,32,3,6,3,207,2, +43,2,86,1,62,1,218,1,252,1,85,1,200,0,211,0,49,1,107,1,0,1,241,255,33,255,22,255,32,255,158,254, +240,253,163,253,176,253,175,253,66,253,155,252,143,252,140,253,188,254,20,255,194,254,180,254,2,255,209,254,197,253,185,252, +197,252,249,253,79,255,223,255,226,255,68,0,32,1,173,1,173,1,165,1,135,1,212,0,217,255,58,255,247,254,3,255, +142,255,32,0,23,0,239,255,43,0,24,0,27,255,216,253,254,252,143,252,109,252,67,252,200,251,167,251,164,252,10,254, +184,254,209,254,238,254,242,254,160,254,7,254,110,253,113,253,91,254,80,255,138,255,154,255,60,0,48,1,231,1,17,2, +177,1,82,1,103,1,88,1,144,0,161,255,72,255,117,255,222,255,49,0,23,0,213,255,250,255,93,0,162,0,237,0, +49,1,35,1,238,0,170,0,3,0,51,255,200,254,153,254,87,254,56,254,45,254,247,253,2,254,170,254,85,255,111,255, +56,255,70,255,212,255,104,0,72,0,145,255,230,254,40,254,10,253,29,252,228,251,60,252,37,253,104,254,49,255,81,255, +61,255,217,254,89,254,179,254,178,255,79,0,248,0,64,2,1,3,161,2,81,2,132,2,131,2,64,2,244,1,118,1, +40,1,116,1,226,1,75,2,17,3,209,3,22,4,86,4,131,4,193,3,52,2,199,0,178,255,186,254,207,253,22,253, +33,253,84,254,254,255,56,1,200,1,137,1,165,0,231,255,127,255,14,255,251,254,122,255,174,255,140,255,198,255,181,255, +233,254,190,254,131,255,182,255,74,255,87,255,135,255,98,255,150,255,41,0,187,0,175,1,142,2,30,2,10,1,167,0, +69,0,248,254,106,253,55,252,103,251,57,251,108,251,138,251,47,252,198,253,103,255,136,0,110,1,253,1,47,2,65,2, +190,1,104,0,34,255,56,254,49,253,123,252,157,252,84,253,236,254,113,1,65,3,186,3,101,4,67,5,180,4,85,3, +232,2,26,3,4,3,196,2,54,2,138,1,0,2,121,3,88,4,144,4,39,5,186,5,131,5,184,4,175,3,182,2, +83,2,48,2,133,1,176,0,115,0,140,0,60,0,16,255,59,253,228,251,240,251,197,252,178,253,16,255,231,0,122,2, +74,3,3,3,147,1,240,255,232,254,243,253,242,252,203,252,79,253,108,253,93,253,14,254,115,255,237,0,211,1,173,1, +26,1,1,1,177,0,58,255,170,253,70,253,134,253,163,253,204,253,254,253,224,253,157,253,121,253,64,253,216,252,142,252, +206,252,199,253,10,255,212,255,10,0,64,0,157,0,140,0,173,255,155,254,117,254,135,255,220,0,165,1,70,2,74,3, +77,4,135,4,185,3,87,2,60,1,202,0,102,0,130,255,164,254,105,254,145,254,187,254,22,255,196,255,58,0,218,255, +233,254,129,254,38,255,252,255,18,0,168,255,205,255,37,1,39,3,99,4,39,4,85,3,176,2,223,1,27,1,93,1, +73,2,240,2,217,3,73,5,153,5,17,4,91,2,124,1,173,0,147,255,141,254,187,253,106,253,173,253,139,253,221,252, +72,253,64,255,229,0,240,0,231,255,104,254,238,252,42,252,34,252,104,252,14,253,203,253,186,253,28,253,73,253,114,254, +140,255,250,255,179,255,209,254,253,253,18,254,9,255,31,0,223,0,81,1,66,1,45,0,61,254,190,252,151,252,23,253, +33,253,163,252,44,252,36,252,119,252,170,252,222,252,35,254,125,0,1,2,116,1,210,255,115,254,1,254,209,254,71,0, +67,1,252,1,52,3,54,4,56,4,31,4,176,4,54,5,222,4,137,3,159,1,46,0,1,0,110,0,134,0,105,0, +83,0,221,255,240,254,46,254,73,254,66,255,52,0,103,0,109,0,2,1,166,1,164,1,4,1,7,0,51,255,50,255, +133,255,73,255,26,255,180,255,71,0,147,0,162,1,253,2,236,2,161,1,137,0,167,255,117,254,94,253,238,252,66,253, +52,254,12,255,72,255,175,255,243,0,47,2,63,2,106,1,166,0,60,0,206,255,69,255,54,255,233,255,179,0,25,1, +137,1,65,2,194,2,166,2,239,1,210,0,222,255,177,255,117,0,225,1,55,3,200,3,35,4,20,5,120,5,248,3, +184,1,48,0,231,254,171,253,82,253,113,253,73,253,224,253,236,255,68,2,44,4,179,5,18,6,237,4,80,3,168,1, +216,255,1,255,214,255,42,1,53,2,55,3,209,3,5,4,12,5,175,6,16,7,2,6,208,4,120,3,161,1,86,0, +108,0,104,1,110,2,127,2,241,0,209,254,220,253,37,254,198,254,132,255,34,0,19,0,178,255,192,255,20,0,104,0, +26,1,7,2,88,2,174,1,75,0,163,254,145,253,184,253,150,254,110,255,67,0,233,0,193,0,77,0,234,0,137,2, +141,3,18,3,144,1,166,255,214,253,236,252,104,253,209,254,69,0,23,1,213,0,173,255,182,254,179,254,12,255,2,255, +222,254,219,254,125,254,223,253,223,253,150,254,133,255,124,0,206,0,115,255,33,253,195,251,191,251,74,252,93,253,222,254, +221,255,33,0,73,0,89,0,55,0,36,0,157,255,2,254,30,252,202,250,209,249,156,249,10,251,82,253,9,255,36,0, +205,0,183,0,141,0,245,0,248,0,32,0,136,255,74,255,113,254,194,253,178,254,155,0,23,2,240,2,246,2,167,1, +183,255,136,254,112,254,224,254,59,255,28,255,213,254,252,254,9,255,55,254,91,253,145,253,252,253,77,253,19,252,105,251, +54,251,62,251,209,251,137,252,122,252,209,251,162,251,67,252,46,253,200,253,175,253,2,253,111,252,94,252,154,252,250,252, +144,253,53,254,173,254,178,254,210,253,65,252,82,251,242,251,105,253,153,254,54,255,79,255,7,255,176,254,74,254,172,253, +92,253,226,253,134,254,98,254,242,253,21,254,154,254,229,254,205,254,78,254,154,253,121,253,56,254,208,254,153,254,171,254, +8,0,176,1,42,2,198,1,252,1,133,3,161,5,152,6,125,5,187,3,113,3,92,4,124,4,86,3,91,2,131,2, +57,3,64,3,75,2,193,1,196,2,205,3,211,2,16,1,51,1,190,2,183,2,61,0,136,253,158,252,241,252,183,252, +243,251,161,252,69,255,117,1,44,1,167,255,89,255,208,0,124,2,123,2,126,0,89,254,7,254,34,255,185,255,136,255, +99,0,29,3,175,5,186,5,193,3,117,2,30,3,52,4,215,3,105,2,152,1,202,1,233,1,107,1,250,0,39,1, +177,1,211,1,163,0,60,254,149,252,63,253,249,254,164,255,58,255,180,254,233,253,118,252,17,251,204,250,210,251,217,252, +12,252,119,249,106,247,74,247,12,248,165,248,114,249,213,250,55,252,120,252,7,251,73,249,143,249,136,251,125,252,179,251, +229,250,221,250,33,251,137,251,140,251,163,250,90,250,117,252,95,255,37,0,177,254,48,253,237,252,130,253,194,253,253,252, +248,251,196,251,210,251,252,250,191,249,118,249,13,250,46,250,78,249,117,248,205,248,218,249,255,249,246,248,89,248,39,249, +68,250,40,250,237,248,250,247,74,248,128,249,158,250,89,251,59,252,139,253,199,254,73,255,24,255,41,255,124,0,140,2, +116,3,117,2,252,0,127,0,218,0,145,1,168,2,206,3,94,4,95,4,49,4,186,3,224,2,51,2,56,2,140,2, +57,2,7,1,50,0,20,1,17,3,56,4,252,3,128,3,78,3,203,2,223,1,117,1,54,2,154,3,126,4,170,4, +29,5,94,6,172,7,132,8,82,9,16,10,23,10,50,9,157,7,218,5,7,5,148,5,63,6,2,6,144,5,172,5, +14,6,83,6,60,6,189,5,131,5,230,5,248,5,57,5,95,4,175,3,34,3,80,3,223,3,154,3,38,3,213,3, +145,4,82,4,130,4,137,5,177,5,42,5,194,5,29,7,236,7,113,8,228,8,210,8,231,8,197,9,145,10,236,10, +90,11,62,11,202,9,40,8,216,7,150,8,62,9,59,9,208,8,163,8,176,8,68,8,111,7,208,6,91,6,7,6, +56,6,86,6,94,5,237,3,107,3,39,4,166,5,46,7,19,8,172,8,137,9,9,10,35,10,58,11,181,12,11,12, +177,9,123,8,124,8,24,8,239,7,28,9,171,10,117,11,87,11,91,10,33,9,135,8,35,8,62,7,65,6,40,5, +37,3,234,0,56,0,238,0,88,1,187,0,154,255,110,254,56,253,190,251,39,250,79,249,183,249,135,250,155,250,75,250, +10,251,70,253,217,255,0,2,224,3,173,4,14,3,230,255,148,253,194,252,236,252,23,254,114,255,92,255,37,254,122,253, +166,253,66,254,25,255,184,254,0,252,218,248,108,247,15,247,26,247,92,248,60,250,55,251,234,251,27,253,22,253,188,250, +20,248,89,247,51,248,247,248,173,248,239,247,74,248,56,250,46,252,157,252,221,251,51,251,215,250,255,249,105,248,242,246, +159,246,167,247,111,249,211,250,250,250,101,250,57,250,94,250,167,249,124,247,46,244,203,240,2,239,144,239,36,241,112,242, +193,243,105,245,18,247,189,248,35,250,117,250,48,250,142,250,190,250,89,249,164,247,205,247,172,249,210,251,102,253,23,254, +110,254,104,255,128,0,63,0,222,254,134,253,32,252,91,250,252,248,154,248,49,249,163,250,223,251,155,251,189,250,241,250, +92,251,127,250,139,249,233,249,65,250,40,249,234,247,65,248,214,249,115,251,201,252,243,253,118,254,197,253,136,252,17,252, +114,252,183,252,4,253,31,254,25,255,101,254,239,252,94,253,92,0,152,3,154,4,113,3,20,2,96,1,62,0,75,254, +32,253,149,253,23,254,69,253,45,252,130,252,254,253,243,254,211,254,186,254,75,255,135,255,164,254,98,253,173,252,112,252, +93,252,109,252,139,252,180,252,242,252,251,252,216,252,58,253,47,254,203,254,239,254,129,255,124,0,177,0,220,255,55,255, +194,255,25,1,5,2,204,1,243,0,148,0,221,0,5,1,236,0,142,1,79,3,89,5,237,6,205,7,167,7,244,6, +92,7,58,9,129,10,208,9,110,8,234,7,0,8,143,7,87,6,124,5,33,6,85,7,36,7,175,5,137,4,228,3, +89,3,149,3,137,4,180,4,170,3,134,2,195,1,231,0,154,255,27,254,71,253,51,253,89,252,87,250,99,249,105,250, +152,251,59,252,241,252,157,252,74,250,236,247,63,247,112,247,119,247,41,247,147,246,104,246,8,247,93,247,55,247,16,248, +221,249,248,250,17,251,176,250,193,249,168,248,6,248,254,247,71,249,246,251,135,253,122,252,9,251,154,250,189,249,125,248, +111,248,247,248,179,248,67,248,214,248,201,250,116,253,200,254,230,253,65,253,78,254,156,254,134,252,195,249,34,248,68,248, +21,250,249,251,227,252,76,254,123,0,66,1,221,0,170,1,34,3,53,3,32,2,214,0,222,255,102,0,79,2,176,3, +143,4,89,6,34,8,100,8,229,7,135,7,42,7,36,7,95,7,244,6,141,6,117,7,151,8,51,8,194,6,181,5, +116,5,101,5,151,4,25,3,34,2,218,1,58,1,94,0,24,0,98,0,87,1,17,3,50,4,218,3,92,3,135,3, +66,3,215,1,153,255,97,253,240,252,195,254,85,0,22,0,36,0,43,2,196,4,38,6,214,5,85,4,237,2,27,2, +236,0,153,255,172,255,233,0,222,1,123,2,27,3,106,3,102,3,172,2,113,0,231,253,250,252,226,252,40,252,182,251, +83,252,41,253,69,254,36,0,147,1,149,1,9,1,169,0,53,0,150,255,247,254,248,254,105,0,113,2,86,3,166,3, +22,5,25,7,42,8,100,8,74,8,174,7,200,6,17,6,219,5,225,6,81,9,147,11,48,12,185,11,76,11,211,10, +166,9,1,8,66,7,40,8,79,9,40,9,144,8,51,9,193,10,176,11,30,11,89,9,232,7,249,7,93,8,154,7, +253,6,70,8,112,10,182,11,13,12,25,12,63,12,158,12,85,12,160,10,201,8,71,8,110,8,159,8,183,9,113,11, +71,12,85,12,95,12,93,11,188,8,124,6,1,6,1,6,118,5,86,5,89,6,202,7,167,8,60,8,147,6,211,4, +215,3,247,2,176,1,248,0,137,1,210,2,103,4,85,6,33,8,32,9,65,9,220,8,131,8,145,8,50,8,126,6, +143,4,37,4,34,5,132,6,212,7,127,8,90,8,173,8,7,10,172,10,140,9,36,8,221,7,39,8,162,7,159,5, +84,3,44,3,1,5,119,5,120,3,111,2,125,4,13,7,82,7,4,6,44,5,32,5,97,4,154,1,150,253,167,250, +164,249,49,249,64,248,36,247,116,246,190,246,58,248,154,249,41,249,143,247,145,246,161,245,41,243,26,240,192,238,120,239, +24,241,207,242,69,244,162,245,124,247,69,249,118,249,106,248,40,248,221,248,242,248,87,248,131,248,255,249,74,252,179,254, +51,0,76,0,251,255,210,255,143,254,136,251,126,248,39,247,37,247,109,247,112,247,189,246,214,245,76,246,209,247,206,247, +182,245,204,243,191,242,56,241,119,239,170,238,222,238,152,240,46,244,252,246,16,247,27,247,191,248,233,248,234,246,173,246, +8,249,190,250,245,250,68,251,55,252,22,254,178,0,38,2,220,1,102,1,112,0,153,253,140,250,80,249,62,249,12,250, +228,251,95,252,38,250,81,248,0,249,253,249,83,249,136,247,73,245,37,243,189,241,183,240,246,239,126,240,72,242,23,244, +198,245,138,247,118,248,28,248,143,247,211,247,214,248,142,249,1,249,231,247,204,247,132,248,237,248,13,249,104,249,114,250, +196,252,25,255,173,254,231,251,43,250,36,250,116,249,96,247,119,245,63,245,226,246,119,248,6,248,243,246,195,247,166,249, +169,250,38,251,168,251,103,251,63,250,198,248,130,247,157,247,134,249,138,251,84,252,84,252,233,251,156,251,137,252,254,253, +88,254,86,254,242,254,148,254,165,252,127,251,100,252,36,254,133,255,187,255,211,254,117,254,47,255,65,255,91,254,71,254, +50,255,203,255,228,255,136,255,127,254,9,254,146,255,235,1,173,2,138,1,146,0,134,1,87,3,188,3,13,3,82,3, +21,4,163,3,147,2,21,2,183,1,115,1,34,2,104,3,56,4,76,4,199,3,100,3,209,3,168,3,61,1,61,254, +107,253,139,254,211,255,134,0,252,0,89,2,6,5,189,6,179,5,9,4,222,3,170,3,43,2,232,0,48,1,35,3, +235,6,167,11,121,15,161,17,251,17,5,16,121,12,32,9,143,6,193,4,85,4,58,5,163,6,196,8,0,12,83,15, +38,17,115,16,35,13,149,8,155,4,101,1,113,254,175,252,76,253,176,255,107,2,201,4,137,6,95,7,32,7,15,6, +186,4,65,3,245,0,159,253,211,250,182,250,98,253,195,0,13,3,244,3,128,3,161,1,47,255,22,253,236,250,119,248, +16,247,82,247,1,248,160,248,227,249,131,251,117,252,62,252,132,250,205,247,17,246,190,245,211,244,25,243,236,242,201,244, +221,246,127,248,67,250,21,252,101,253,131,253,24,252,140,250,196,250,57,252,10,253,255,252,43,253,21,254,92,255,253,255, +101,255,140,254,175,254,193,255,32,1,32,2,198,1,63,0,89,255,204,255,72,0,0,0,112,255,222,254,21,254,42,253, +237,252,119,254,133,1,42,4,146,5,169,6,49,7,5,6,23,4,46,3,83,3,37,4,188,5,82,7,90,8,126,9, +71,10,129,9,140,8,97,9,105,10,13,9,6,6,220,3,202,3,77,5,200,6,66,7,174,7,156,8,87,8,12,6, +160,3,88,2,112,1,228,0,158,1,241,2,52,3,86,2,201,1,176,2,198,4,88,6,182,5,82,3,75,1,137,0, +30,0,182,255,83,0,20,2,136,3,187,3,73,3,20,3,28,3,166,2,55,1,118,255,116,254,41,254,194,253,25,253, +144,252,97,252,208,252,172,253,211,253,200,252,175,251,89,251,76,251,147,251,45,253,42,0,12,3,66,4,218,3,155,3, +229,4,241,6,23,8,235,7,49,7,235,6,135,7,84,8,227,8,91,10,38,13,87,15,210,15,193,15,198,15,150,15, +164,15,135,15,218,13,213,11,55,12,55,14,201,14,107,13,162,11,139,10,195,10,164,11,86,11,223,9,51,9,116,9, +104,9,214,9,210,11,130,13,107,12,106,9,117,7,135,7,212,7,29,7,171,6,22,8,242,10,184,13,44,15,194,14, +51,13,237,11,8,11,79,9,28,6,8,2,10,255,102,255,116,2,36,5,49,7,144,10,150,13,189,12,4,9,204,5, +90,3,110,0,31,253,3,250,47,248,1,249,120,251,47,253,107,254,202,0,133,3,171,4,143,3,69,0,201,251,82,248, +250,246,200,246,12,247,82,248,222,250,13,254,185,0,186,1,235,0,115,255,35,254,106,252,184,249,107,247,179,247,101,250, +21,253,143,254,117,255,243,255,60,0,90,1,138,2,119,1,146,254,44,252,50,250,29,248,141,247,13,249,33,251,128,253, +151,255,189,254,244,250,249,247,160,246,75,244,68,241,138,240,131,242,211,244,144,245,206,244,155,244,66,246,150,247,58,246, +142,243,133,241,110,239,108,237,40,238,54,242,60,246,105,247,181,246,194,246,69,248,136,249,93,249,220,248,6,249,194,248, +34,247,145,245,191,245,56,247,176,248,239,249,223,250,145,250,249,248,177,247,144,247,134,247,247,246,139,246,68,246,101,245, +29,244,56,243,251,242,17,243,175,242,128,241,223,240,48,242,73,244,6,245,84,244,221,243,7,245,212,247,122,250,30,251, +107,250,50,250,99,250,245,249,51,249,67,249,189,250,232,252,224,253,28,253,200,252,45,254,86,255,192,254,170,253,104,253, +11,254,125,255,67,1,87,2,98,2,181,1,148,0,69,255,181,253,205,251,175,250,89,251,175,252,97,253,218,253,189,254, +16,0,156,1,58,2,50,1,33,0,182,255,228,253,242,250,36,250,184,251,106,253,109,255,54,2,240,3,116,4,81,5, +172,5,140,4,245,3,188,4,200,4,103,3,58,2,105,2,219,3,29,5,139,4,84,3,128,3,119,3,73,1,137,255, +38,1,232,4,78,8,1,10,65,9,10,7,123,5,203,4,50,4,4,4,236,3,212,2,150,1,183,1,19,3,126,5, +240,8,88,11,173,10,30,8,17,6,129,5,78,6,126,7,225,7,3,8,84,9,117,11,214,12,222,12,16,12,144,11, +104,12,20,14,170,14,22,13,186,10,150,10,222,13,167,17,134,18,18,17,122,15,223,13,104,12,111,12,121,13,236,13, +16,14,110,14,154,14,174,15,189,18,45,21,246,19,14,16,233,11,169,8,26,7,52,7,72,7,187,6,38,7,53,9, +28,11,206,10,40,8,185,4,166,1,243,253,63,248,157,241,15,237,99,236,108,238,105,240,44,241,178,241,28,242,24,241, +209,238,203,236,255,234,157,232,251,229,192,227,190,226,227,227,36,230,166,231,65,233,149,235,166,235,131,232,81,230,255,230, +227,231,9,232,148,232,64,233,197,234,220,238,225,242,125,242,45,239,95,237,101,237,30,237,255,235,144,234,8,234,195,235, +154,238,4,240,158,240,6,243,129,246,45,247,113,243,80,238,46,236,129,238,192,242,55,245,254,244,53,245,248,248,81,254, +61,0,17,254,140,252,253,254,172,3,186,6,218,5,195,2,98,2,179,6,202,11,245,13,34,14,204,13,69,12,75,9, +239,5,214,3,14,5,72,9,72,12,100,11,131,9,244,9,205,11,132,12,33,11,147,8,233,6,158,6,33,5,63,1, +174,254,47,1,217,6,188,10,236,10,40,9,34,7,201,4,14,2,251,255,39,255,197,254,201,253,235,251,107,250,208,251, +117,0,176,4,150,5,97,4,82,2,156,254,91,250,72,248,119,248,212,249,207,252,46,0,230,0,135,255,59,255,186,255, +203,254,23,253,0,252,171,250,228,248,89,248,131,249,128,251,90,254,143,1,119,2,204,255,114,252,176,251,220,252,64,253, +91,252,68,252,225,254,157,3,145,7,193,8,1,9,194,10,252,11,13,9,174,3,245,0,242,1,23,4,191,6,226,10, +14,16,55,21,120,25,206,26,249,23,78,19,69,16,159,15,204,15,57,15,28,14,92,15,242,20,77,27,112,29,156,28, +238,28,37,29,66,25,240,17,62,11,194,7,218,7,232,9,167,11,220,13,214,18,145,24,131,26,15,24,71,19,245,12, +36,6,118,0,145,251,72,247,252,245,129,248,135,252,15,1,94,6,121,10,161,11,78,11,154,10,18,8,49,3,200,253, +173,249,166,247,180,247,216,248,152,249,78,249,221,248,122,249,78,250,77,249,8,247,39,246,18,247,57,248,51,249,252,249, +31,250,40,250,19,250,48,248,234,244,172,242,184,240,74,237,219,234,2,236,247,238,17,242,173,245,100,248,6,249,210,249, +27,252,184,253,44,253,245,250,229,247,131,245,72,244,44,242,175,239,87,241,167,247,140,253,34,1,247,4,8,9,247,10, +44,11,153,11,41,12,143,11,230,8,228,3,230,253,35,250,162,250,205,253,221,0,142,3,220,6,206,9,24,11,170,11, +46,12,142,11,202,9,185,7,176,4,51,1,231,255,81,0,129,255,208,254,86,1,250,4,32,6,93,5,151,4,146,4, +48,6,150,8,30,9,109,8,160,9,254,11,223,11,86,8,151,3,62,0,88,255,204,254,163,251,8,247,108,245,178,248, +60,254,50,2,117,3,78,4,230,5,59,5,28,0,126,249,37,245,58,243,244,241,130,239,156,235,144,233,208,236,167,243, +249,249,73,254,83,0,198,255,220,253,160,251,178,248,114,246,17,247,235,248,236,248,24,248,121,249,121,253,230,1,3,4, +196,2,94,0,133,255,211,255,120,255,123,254,96,254,70,0,125,3,155,5,123,5,198,4,148,4,153,3,222,0,45,253, +3,250,186,248,36,249,197,249,236,250,0,254,158,1,229,3,74,6,239,9,231,12,234,13,2,13,163,9,55,5,192,2, +241,1,72,1,82,2,29,5,118,6,237,6,17,10,201,14,245,17,42,20,152,21,235,19,103,15,84,10,36,5,205,0, +70,255,64,255,125,254,205,254,186,1,73,4,86,4,227,3,64,4,32,4,37,3,47,2,176,0,200,253,226,250,251,249, +200,250,54,252,138,254,128,1,59,3,213,2,155,0,114,252,125,248,114,249,77,255,162,3,26,3,60,1,132,1,190,3, +77,6,158,7,188,7,38,8,129,7,145,2,72,251,249,246,174,246,244,248,193,253,249,2,74,5,252,5,84,7,78,7, +102,5,67,5,72,7,219,7,3,6,207,2,146,254,108,251,249,251,200,254,148,1,114,5,183,10,50,14,153,13,45,10, +22,7,115,7,122,11,52,15,223,14,53,11,64,7,148,4,19,3,157,2,16,4,201,7,71,11,79,11,196,8,166,7, +166,9,55,13,137,16,61,18,243,16,128,12,151,6,102,1,120,254,184,254,208,1,183,4,91,3,215,253,212,248,126,246, +106,244,113,242,182,243,247,246,189,246,202,241,137,235,89,230,73,227,209,226,194,226,41,225,78,224,176,225,238,225,98,223, +210,221,116,223,224,225,103,227,46,228,100,227,85,225,215,224,160,226,239,227,177,227,234,227,102,229,158,230,141,230,166,229, +230,228,101,229,162,231,241,234,38,238,41,240,21,240,92,238,243,236,251,236,143,237,201,237,248,237,76,238,59,238,141,237, +238,236,122,237,241,239,204,243,138,247,63,250,228,251,81,252,99,251,196,249,133,248,182,248,48,251,39,255,247,1,165,2, +217,3,174,7,204,11,255,12,53,12,100,12,116,13,210,12,2,10,183,7,167,8,85,12,6,15,101,13,198,8,29,6, +186,7,66,10,100,9,159,5,59,3,30,4,36,5,26,3,43,0,238,0,161,5,2,10,198,10,77,8,109,5,201,4, +223,5,217,5,153,4,242,4,159,6,65,6,38,4,70,4,56,7,65,9,172,7,24,3,6,254,247,250,37,250,162,249, +205,248,20,249,120,250,220,250,30,249,11,246,44,243,75,242,234,243,166,245,69,245,105,244,172,245,37,248,167,249,192,250, +202,252,12,255,110,0,12,1,211,0,142,255,73,254,71,254,196,255,107,2,100,5,223,7,165,10,5,14,51,15,190,12, +110,10,227,10,71,11,74,10,185,10,11,12,162,10,243,7,138,8,31,12,47,15,34,16,130,14,138,10,62,6,234,2, +123,0,26,1,11,7,196,14,100,18,159,17,40,16,92,15,128,14,249,13,180,14,123,16,47,18,173,18,12,18,117,18, +214,21,118,26,119,28,18,27,213,24,132,22,91,18,199,12,238,8,120,8,106,10,191,12,35,13,95,11,110,10,46,11, +185,9,142,4,239,255,116,254,37,254,250,253,51,254,106,253,117,252,171,255,137,6,230,9,114,6,158,0,62,252,125,248, +219,244,108,243,212,245,191,251,64,3,28,9,88,11,78,11,38,10,174,5,58,253,23,245,85,240,52,237,66,235,8,237, +68,242,248,248,54,1,48,8,141,7,20,0,199,249,65,246,80,240,19,232,203,226,150,226,19,231,147,239,8,249,162,0, +200,6,195,10,168,9,212,3,39,252,215,243,221,236,181,234,81,237,80,242,21,250,179,4,81,14,245,19,33,22,20,21, +160,16,67,10,21,3,126,251,172,246,64,248,108,254,63,4,95,8,93,12,213,15,206,16,37,15,108,12,164,9,201,6, +112,3,226,255,116,254,161,1,156,7,167,11,155,12,234,12,7,13,201,11,18,10,111,8,116,5,246,1,252,0,169,2, +83,5,66,9,218,13,220,15,207,13,44,9,98,3,47,254,243,251,134,252,89,253,73,253,8,253,143,253,178,255,151,2, +139,3,116,1,122,253,82,248,53,243,15,241,135,242,223,244,228,246,168,249,67,252,150,252,1,251,105,249,172,248,197,248, +36,249,176,248,40,247,231,245,175,246,245,249,252,253,50,0,86,0,111,0,17,1,97,0,137,253,89,250,244,248,160,249, +245,250,152,251,203,251,175,252,2,254,108,254,16,254,54,254,18,254,135,251,215,247,246,246,37,249,181,250,176,250,101,251, +244,252,236,253,100,255,103,2,27,5,107,6,131,7,109,8,77,8,80,7,63,5,108,2,230,1,178,4,202,6,185,6, +134,8,169,12,119,14,148,13,7,14,136,15,141,14,129,11,70,9,193,7,64,5,147,2,54,2,90,4,56,6,204,5, +74,4,202,3,192,4,97,6,52,7,168,5,237,1,161,253,192,249,104,247,75,248,164,251,178,254,16,1,126,3,81,4, +229,2,19,2,238,2,48,3,113,2,28,2,167,1,31,1,245,2,145,6,116,7,157,4,1,2,208,1,76,2,156,1, +114,255,174,252,148,251,134,253,19,0,62,0,138,255,236,0,170,2,228,0,43,252,45,248,85,246,245,245,216,246,174,248, +151,250,89,252,79,254,235,0,71,4,215,6,210,6,162,5,0,5,99,2,117,252,138,248,93,250,159,253,5,255,233,1, +237,7,20,13,50,14,105,11,123,6,246,2,184,2,246,1,114,253,164,248,58,247,117,247,91,247,149,247,243,247,254,247, +133,248,177,247,188,241,139,232,11,227,135,227,24,230,39,232,210,234,133,238,96,241,33,242,236,241,137,242,144,243,92,242, +153,237,126,231,61,227,47,226,216,228,133,235,182,243,162,248,195,248,52,247,22,246,220,243,10,239,211,232,181,227,121,225, +139,225,11,226,29,228,136,234,46,242,98,244,70,242,176,242,15,245,58,243,154,237,72,233,92,231,120,231,7,235,87,240, +187,243,106,246,206,250,221,253,225,252,28,251,72,251,163,251,132,251,29,252,227,251,194,249,47,250,17,1,80,10,1,15, +33,14,23,11,179,7,209,3,242,255,113,253,219,253,182,1,50,6,227,6,0,4,1,3,200,6,180,11,19,13,91,10, +71,6,112,3,181,1,83,255,225,253,20,2,254,10,220,15,160,11,62,4,225,1,209,4,12,8,96,9,2,11,7,14, +202,14,205,9,49,2,107,254,229,255,12,3,77,5,218,5,159,3,73,255,81,252,155,252,216,253,171,253,81,253,136,254, +157,255,14,254,60,251,142,250,115,252,203,254,21,0,16,0,251,255,50,2,233,5,145,6,171,3,168,2,249,4,130,5, +5,3,134,2,156,5,157,8,109,10,100,13,225,17,1,22,58,24,78,23,51,19,234,14,127,13,221,13,88,13,142,12, +177,13,183,15,215,15,214,14,113,16,112,21,204,25,112,25,189,20,188,15,232,13,89,15,226,17,213,19,211,20,8,21, +6,21,30,22,185,25,88,31,130,35,15,35,90,31,112,27,193,22,11,17,139,15,150,21,102,29,156,32,3,32,131,29, +255,24,115,21,199,21,135,22,236,19,56,15,192,8,218,255,27,250,209,253,146,7,189,15,238,19,63,20,48,16,163,9, +117,3,114,254,230,251,63,253,86,255,157,253,19,249,41,246,127,247,205,253,64,7,240,13,203,12,55,5,131,252,192,246, +70,245,141,246,1,248,1,250,64,254,2,2,78,1,44,255,190,0,67,2,185,252,55,243,45,238,79,238,198,239,27,243, +212,248,9,253,39,254,109,254,18,253,125,248,68,244,49,243,197,241,202,237,201,234,128,235,140,239,196,246,144,255,177,5, +12,7,148,4,171,254,239,246,125,242,253,243,93,247,5,248,226,246,235,246,232,247,112,248,4,250,136,254,87,3,255,3, +99,0,70,251,32,246,238,242,118,244,26,249,241,251,43,252,96,252,134,252,75,251,177,249,179,248,187,247,239,246,188,246, +152,246,55,247,144,250,189,255,218,2,197,1,29,254,49,250,45,246,163,241,10,239,13,242,155,249,47,0,194,2,152,2, +9,1,157,254,58,252,125,249,26,245,117,240,180,238,107,240,209,243,122,247,81,250,87,251,145,250,96,248,185,244,164,240, +21,238,42,237,141,236,186,236,218,238,18,241,43,241,105,241,162,244,254,247,128,247,228,244,59,243,84,241,87,238,210,236, +168,237,149,239,202,243,71,251,134,2,170,5,73,4,55,255,148,248,42,244,177,242,10,242,134,243,84,249,212,255,11,3, +152,5,36,10,77,13,202,11,49,7,132,2,116,255,31,254,47,253,135,252,81,254,123,2,189,5,32,7,70,8,70,8, +89,5,195,1,167,0,177,0,99,255,58,254,241,255,141,3,50,6,133,7,235,8,125,10,180,11,174,12,189,12,210,10, +248,7,205,5,234,3,85,2,10,3,56,6,194,9,236,12,43,15,34,14,71,10,194,7,214,6,170,3,94,255,67,255, +244,2,37,5,186,4,116,4,216,4,249,4,37,5,224,4,91,3,200,2,13,5,146,6,141,3,204,254,51,252,132,250, +20,249,199,250,121,254,14,255,106,253,123,254,198,0,219,255,194,253,49,254,218,254,114,252,244,248,135,248,160,252,178,2, +130,6,145,7,50,9,219,10,19,8,237,1,203,254,91,0,29,3,63,5,190,6,61,7,109,7,254,7,248,7,99,7, +115,7,108,7,199,6,65,7,27,8,73,6,168,3,167,4,133,7,254,7,139,7,194,8,250,8,181,5,65,1,13,254, +254,251,249,250,164,250,162,249,84,248,108,248,24,249,185,248,215,248,137,250,201,250,220,247,251,244,61,244,194,243,93,243, +94,245,57,249,81,252,35,254,204,254,149,253,52,251,185,248,178,245,53,243,115,243,215,244,38,245,163,246,199,249,139,249, +112,245,166,243,201,244,72,243,176,239,111,239,46,242,196,243,86,243,192,241,180,239,70,239,248,240,200,241,146,240,221,239, +91,240,75,240,219,239,12,240,196,239,169,238,39,239,255,241,23,244,161,243,110,243,231,245,138,248,94,248,133,247,219,249, +171,254,20,2,132,2,218,1,107,2,67,4,239,4,197,2,224,255,200,255,242,2,145,6,140,7,5,5,114,1,84,0, +227,1,69,3,32,3,203,2,23,3,5,3,204,1,183,0,226,1,165,4,138,5,109,3,241,0,175,255,112,255,167,1, +227,6,5,11,231,10,120,9,170,9,115,9,202,6,148,3,33,2,52,2,0,2,82,0,140,254,155,255,114,3,133,6, +3,7,156,6,116,6,87,5,88,2,105,254,137,251,213,251,27,0,88,6,57,11,127,13,201,13,133,11,25,6,96,0, +203,253,49,253,253,251,138,251,149,253,117,0,93,3,223,7,216,12,220,14,16,13,249,7,211,255,186,247,181,243,39,243, +40,244,129,248,185,0,234,8,253,14,35,20,97,23,106,22,200,17,197,10,16,2,154,250,79,247,225,246,33,248,11,254, +243,8,22,18,64,20,73,18,250,15,178,11,254,3,162,252,142,249,184,250,55,255,111,6,214,13,77,19,88,23,167,24, +208,19,201,10,214,3,161,255,123,250,230,245,143,246,101,252,169,4,211,13,190,20,72,21,248,15,245,8,138,2,40,253, +115,249,134,247,121,247,160,250,32,1,94,8,148,14,38,21,146,28,194,32,233,28,254,17,242,5,216,252,224,246,250,244, +183,249,32,4,127,14,31,20,242,20,253,18,65,15,200,9,95,2,0,249,148,239,105,234,254,235,37,242,88,250,133,4, +192,13,105,15,23,8,173,253,174,244,46,238,10,236,229,237,83,239,100,239,62,241,27,244,108,246,82,252,45,6,50,10, +27,3,134,248,74,241,67,236,176,233,238,236,109,244,200,250,215,253,243,254,211,255,46,1,163,1,61,255,114,250,247,244, +223,239,116,237,78,240,212,246,214,252,4,1,242,3,176,4,157,2,195,254,87,249,155,242,189,237,145,237,224,240,103,246, +28,255,102,8,1,12,131,9,20,7,238,6,5,6,5,4,149,2,63,0,249,252,10,253,130,1,190,6,216,11,39,17, +151,18,62,14,163,9,18,8,228,5,87,2,221,1,184,4,66,7,219,9,45,14,11,17,207,15,205,13,149,13,213,11, +12,7,87,4,66,6,72,7,88,4,136,3,97,9,133,17,44,23,25,26,222,24,140,17,152,7,245,255,251,251,23,253, +64,4,25,12,192,14,175,14,14,16,150,16,55,14,227,11,203,10,142,8,238,4,162,1,58,255,230,254,70,2,212,7, +87,12,178,14,7,15,135,13,81,11,234,8,128,5,94,2,110,2,124,4,156,4,249,3,122,7,203,14,129,20,60,22, +238,21,211,20,107,18,90,14,51,9,201,5,195,7,92,13,230,15,30,14,226,13,101,17,165,20,173,21,76,21,138,18, +227,13,246,10,2,10,90,8,21,8,193,12,187,18,112,19,211,14,70,10,20,10,8,14,208,17,130,18,91,19,183,23, +154,27,175,25,86,20,191,17,81,19,91,21,40,20,235,15,157,12,137,12,185,12,75,10,197,7,119,8,98,10,151,8, +239,0,249,245,34,237,208,233,19,233,108,229,190,223,186,222,36,227,138,228,161,222,90,217,51,220,177,225,9,224,216,214, +15,205,194,199,125,199,83,201,35,202,215,203,161,210,157,219,171,222,76,218,245,212,156,211,81,213,196,213,202,209,108,204, +125,204,217,209,215,212,55,211,37,211,93,215,9,219,242,217,148,212,52,206,86,203,11,205,25,205,141,198,170,191,189,193, +2,203,125,210,182,212,77,212,134,211,11,211,20,210,3,207,212,204,112,210,120,222,243,229,245,228,201,227,236,231,242,237, +170,242,226,245,184,247,174,250,67,0,92,2,137,252,32,247,43,251,103,4,223,10,248,13,150,14,195,11,170,7,61,5, +223,3,150,3,30,6,106,9,117,9,113,6,83,3,125,2,180,5,235,11,163,16,136,17,235,15,31,12,141,6,91,3, +232,5,66,12,227,18,129,23,222,23,182,20,105,19,217,22,76,27,68,29,204,29,175,29,141,27,238,23,158,21,92,22, +65,26,192,31,206,34,142,32,235,27,134,25,249,24,41,23,0,20,64,17,51,15,44,13,207,10,101,9,69,12,148,19, +170,24,187,22,92,18,202,16,234,15,79,13,1,11,224,9,250,8,19,9,222,9,108,10,205,14,248,25,175,36,10,39, +108,35,192,29,189,20,175,10,136,5,1,4,31,1,247,254,88,1,83,5,184,7,45,11,29,18,24,26,9,31,253,29, +64,22,166,10,58,255,74,245,32,237,186,233,199,237,62,246,218,252,101,255,138,0,137,2,107,5,161,8,121,10,66,8, +50,2,218,251,32,247,111,243,56,242,112,246,116,254,204,3,35,3,181,0,100,1,215,2,154,0,140,253,226,254,59,1, +229,253,21,247,48,244,207,246,108,251,234,254,27,255,46,252,253,249,211,250,58,252,49,252,199,251,100,251,145,250,170,250, +208,252,49,255,221,255,254,255,140,1,40,3,115,1,242,252,129,250,253,251,241,253,96,254,14,255,19,0,116,255,240,253, +77,254,135,1,147,6,165,10,40,10,175,5,197,2,243,3,194,4,17,1,9,251,2,247,195,245,148,245,110,246,32,250, +3,1,177,8,91,13,169,11,71,4,181,253,55,253,179,255,64,0,175,0,122,3,235,4,140,2,132,0,191,1,133,3, +128,3,44,2,206,255,249,252,197,251,236,252,134,254,14,255,5,255,84,255,1,0,247,0,69,2,108,2,60,255,9,250, +117,246,72,244,190,241,127,242,209,249,239,1,147,4,49,5,69,8,29,10,128,6,178,255,168,249,106,246,101,246,84,247, +42,247,21,249,119,0,236,8,147,11,241,8,158,6,177,6,151,6,255,3,201,255,12,253,8,254,132,1,226,3,157,3, +71,3,57,5,166,7,209,7,248,5,31,3,56,255,187,251,25,251,8,253,189,255,128,2,22,4,94,3,77,2,222,2, +43,3,85,1,214,254,61,253,227,252,87,254,201,0,58,2,41,3,46,5,40,7,95,7,235,5,218,2,240,254,26,253, +58,254,83,255,247,254,24,255,114,0,155,1,213,1,37,1,95,255,10,253,228,251,190,253,85,2,173,6,116,8,147,8, +253,7,198,5,112,2,158,255,178,252,165,249,130,249,160,252,205,254,184,254,168,255,64,3,225,7,47,11,253,10,198,7, +30,5,98,3,187,254,237,247,248,244,231,246,75,249,131,251,71,0,12,6,194,8,50,8,98,6,150,3,28,0,115,253, +64,251,76,248,238,246,61,250,4,0,37,4,153,6,3,8,68,6,185,1,106,254,154,253,181,253,181,254,241,255,62,255, +90,254,7,1,108,5,232,6,71,5,142,2,92,255,67,252,96,249,113,246,240,245,168,249,124,253,201,253,103,253,151,254, +92,255,235,255,193,1,246,1,116,254,173,250,230,248,184,247,193,247,71,250,55,253,70,255,183,1,106,3,185,2,140,2, +12,5,155,6,248,4,151,3,81,4,87,4,246,2,250,2,208,4,143,6,51,8,107,9,248,6,93,0,129,251,16,253, +76,2,1,6,123,6,14,5,45,4,6,5,76,5,41,3,207,1,25,4,197,6,85,6,144,4,238,3,117,4,22,6, +71,8,157,9,17,11,136,14,89,18,59,20,46,21,240,21,106,21,66,20,115,19,74,17,73,13,66,10,49,9,4,8, +99,6,212,5,37,6,14,6,102,5,81,4,77,2,150,255,191,253,25,253,171,250,76,244,121,237,215,234,20,235,226,234, +218,235,237,239,188,243,254,243,86,242,44,241,176,240,177,240,202,240,71,240,175,239,120,239,165,238,216,237,150,239,25,243, +150,244,196,243,236,243,157,245,54,246,22,245,58,244,64,244,213,243,227,242,215,242,180,243,0,244,83,243,61,242,141,240, +241,237,249,234,83,232,142,230,15,230,15,230,163,229,179,229,9,231,86,232,254,232,95,234,114,236,136,237,131,237,99,237, +110,237,48,238,28,240,31,242,164,243,148,245,134,247,122,248,5,250,36,253,205,254,61,253,254,251,220,253,69,0,20,0, +43,254,4,253,77,253,38,254,175,254,123,254,126,253,98,252,12,252,22,252,101,251,169,250,185,251,111,254,247,0,114,2, +8,3,4,3,222,2,49,2,17,0,238,253,135,254,234,0,201,1,159,1,135,3,74,7,12,10,29,11,39,12,11,14, +215,15,68,16,152,15,17,15,73,14,188,11,112,8,103,7,228,8,87,10,248,10,63,12,225,13,88,13,253,9,211,6, +152,6,205,7,9,7,100,4,101,3,174,5,179,8,82,9,84,7,204,4,139,3,166,3,7,4,83,4,6,6,110,10, +145,15,212,17,113,17,49,18,97,20,252,19,138,16,105,14,146,14,82,13,246,9,234,7,170,8,219,10,115,13,1,16, +150,18,232,21,172,24,245,23,87,20,229,16,220,12,28,6,28,0,182,255,135,3,216,7,175,12,116,18,204,22,46,24, +15,23,120,19,113,14,245,10,105,9,188,6,183,2,30,1,43,3,140,6,233,10,156,17,176,24,93,28,240,27,165,24, +189,18,183,11,178,7,252,8,228,12,24,15,167,14,108,14,150,16,33,19,39,19,2,18,91,18,42,18,120,13,153,4, +42,251,41,245,128,246,176,254,72,6,91,8,16,9,185,11,226,11,237,6,72,1,18,254,27,252,53,251,222,251,105,253, +32,1,11,8,152,13,186,13,247,11,81,11,189,7,140,255,116,248,143,245,177,243,4,242,68,243,98,246,186,247,47,248, +146,251,133,1,234,4,168,1,242,248,233,239,54,234,21,231,255,228,207,229,218,235,146,244,152,249,144,247,36,242,239,239, +255,241,44,242,44,236,207,227,156,222,95,221,18,224,18,232,253,242,162,251,117,0,92,1,59,252,123,243,206,238,69,239, +167,238,104,236,0,237,251,238,241,238,27,240,52,245,11,250,151,251,252,251,197,251,208,248,51,243,172,236,179,230,141,227, +190,228,34,233,177,239,24,248,2,255,107,255,246,248,112,241,59,239,238,242,16,247,162,247,13,247,239,247,8,248,58,247, +83,251,15,6,177,15,253,16,46,11,153,3,77,254,123,253,174,0,29,5,14,9,119,12,122,14,91,14,3,14,31,15, +149,15,84,13,247,10,26,12,163,15,177,17,7,17,147,15,21,15,35,15,106,14,142,13,55,15,178,19,16,23,225,21, +188,17,111,15,200,17,146,22,200,25,227,27,238,31,33,35,20,32,40,26,33,25,0,28,220,29,247,32,209,39,153,45, +9,47,47,46,92,42,59,34,249,26,162,24,245,22,104,18,205,13,122,11,30,11,16,13,65,16,209,17,168,17,246,16, +196,13,77,6,112,252,176,242,77,235,42,233,64,235,65,235,32,230,249,224,225,225,2,232,105,236,61,233,55,224,247,215, +228,209,70,201,100,191,27,190,143,200,115,212,58,217,198,218,208,222,197,226,169,225,32,219,26,210,27,203,210,201,232,203, +235,203,144,202,17,204,132,206,142,205,112,203,179,204,18,208,25,209,95,205,100,197,220,188,109,184,195,184,63,187,96,190, +229,193,183,197,132,202,200,207,212,210,178,210,253,208,156,206,171,204,90,205,10,208,150,210,195,214,68,222,13,229,12,232, +184,234,166,239,27,244,174,245,94,244,136,240,50,237,123,239,86,247,201,254,80,2,50,4,47,7,227,10,228,13,220,15, +151,16,105,15,247,12,39,11,240,9,150,7,1,5,60,5,64,8,74,11,144,13,227,15,111,17,27,17,13,16,174,15, +66,15,185,13,4,12,128,11,48,12,100,14,27,19,218,24,161,28,20,31,109,34,104,36,251,33,34,30,252,28,85,29, +226,28,42,28,105,27,88,26,66,26,128,27,206,28,133,30,214,32,55,33,155,30,9,27,137,22,228,15,230,9,161,8, +163,11,140,15,216,17,218,17,41,17,208,17,250,18,93,18,180,15,23,12,205,8,178,7,251,8,80,10,29,11,167,13, +217,17,104,20,30,20,33,19,20,19,173,19,146,20,173,21,201,21,196,19,163,17,240,18,37,23,147,26,153,28,207,30, +198,31,180,29,8,27,51,26,171,25,29,24,50,23,82,24,250,26,210,29,85,31,166,31,1,33,170,35,24,36,11,32, +112,26,24,24,101,26,107,30,43,33,26,35,206,37,98,40,52,41,193,40,87,40,110,40,16,41,188,41,191,41,35,41, +178,39,141,37,198,37,206,42,87,48,29,48,208,42,59,37,245,32,154,29,221,27,34,28,204,29,170,31,111,31,239,27, +122,23,146,20,232,18,141,17,238,15,145,12,56,7,108,2,249,255,27,255,105,255,163,1,186,4,104,5,23,2,128,253, +44,251,98,250,40,248,177,244,53,242,214,240,225,239,169,239,28,240,105,241,107,244,203,246,57,244,232,237,74,233,194,231, +96,231,54,232,110,234,2,236,228,235,136,234,31,232,225,229,26,229,216,227,243,223,68,219,180,215,252,211,185,208,112,210, +173,218,14,228,197,231,130,228,138,222,3,218,189,214,243,210,117,208,56,211,105,218,99,223,4,222,63,218,20,218,30,222, +143,227,58,232,214,233,72,231,99,227,241,224,116,223,51,224,48,230,123,238,248,242,240,243,185,244,182,244,210,243,184,244, +72,246,4,245,0,242,24,240,193,239,22,242,248,247,177,254,113,4,246,9,43,12,246,6,151,254,34,250,97,248,253,244, +9,242,190,243,74,249,255,254,222,2,81,5,118,7,162,8,193,6,174,2,135,0,173,1,227,2,6,2,196,0,111,0, +52,0,140,0,16,3,103,6,222,7,85,8,142,9,97,9,229,5,227,1,80,0,4,1,191,3,146,7,249,8,239,6, +99,5,78,6,209,6,222,4,91,1,162,253,218,250,68,249,178,247,157,246,128,248,24,253,96,1,46,4,128,5,211,3, +179,254,225,248,127,245,235,244,168,244,144,242,61,240,72,240,54,241,238,240,199,241,174,245,250,249,207,252,244,254,162,254, +42,249,210,240,162,234,53,233,24,236,13,240,60,241,54,240,202,240,175,243,203,246,35,249,238,249,103,248,120,246,187,245, +190,243,107,239,103,237,254,240,107,246,213,248,127,248,16,248,114,248,31,249,33,249,78,247,43,244,103,242,71,243,39,245, +50,247,91,250,35,254,104,1,171,4,165,6,239,3,16,254,119,250,6,249,2,246,54,243,142,244,242,248,59,254,77,4, +104,9,243,11,219,13,126,15,61,14,102,11,232,10,130,11,147,9,7,6,30,4,106,5,211,9,217,14,18,17,40,17, +80,18,231,19,212,18,75,15,149,12,57,13,181,16,62,19,1,18,243,15,145,17,213,20,220,19,36,14,21,9,47,8, +145,9,64,10,255,9,238,9,162,10,190,12,95,16,117,19,197,19,154,17,213,13,184,8,86,4,57,3,44,4,49,4, +252,2,217,1,183,1,192,3,169,7,142,10,226,10,57,10,68,9,146,6,234,1,40,253,41,250,182,249,232,250,135,251, +119,250,101,249,194,250,240,253,207,254,87,251,208,247,203,248,217,251,77,252,195,250,254,249,12,250,105,250,19,251,207,250, +130,249,59,249,237,249,150,249,14,249,229,250,9,255,104,3,254,5,181,5,76,4,171,4,68,6,1,7,255,7,141,10, +132,12,53,12,131,10,201,7,202,4,178,4,109,8,28,12,247,12,115,12,7,12,88,11,162,10,98,10,181,9,241,7, +235,5,14,4,250,1,169,0,134,1,75,3,182,3,42,3,166,2,99,1,59,0,239,1,87,5,139,6,7,6,105,6, +16,6,87,3,98,1,11,2,150,2,191,1,34,1,232,0,128,0,167,0,38,1,24,1,118,1,220,2,151,3,222,2, +1,2,181,1,136,1,129,0,52,253,50,248,175,244,159,243,103,242,97,240,209,239,194,240,240,240,239,239,214,238,161,237, +212,235,154,233,63,231,92,229,233,228,199,229,91,230,160,229,86,228,197,227,188,228,103,231,93,234,202,234,46,232,20,230, +27,231,105,233,48,235,228,237,233,241,99,244,194,243,213,241,223,240,201,241,231,243,231,244,23,243,161,239,237,236,174,236, +132,239,247,243,86,247,75,249,56,251,99,252,118,251,164,249,75,248,43,247,192,246,140,247,58,248,192,248,89,251,144,255, +73,2,115,3,32,5,224,6,148,7,38,8,231,8,14,9,158,9,178,11,159,13,37,14,3,15,74,17,180,19,229,21, +137,24,113,26,73,26,111,25,115,25,101,25,119,24,227,23,135,24,177,25,129,26,85,26,73,25,241,24,37,26,41,27, +198,26,19,26,32,25,228,22,236,20,45,21,8,22,3,22,218,22,192,24,9,25,170,23,94,23,196,24,179,26,77,28, +45,28,17,26,134,24,78,24,179,22,239,19,162,19,109,21,222,21,165,21,69,23,20,25,135,24,157,22,193,20,142,18, +226,15,220,12,105,9,71,7,129,8,33,11,137,11,227,9,122,8,121,7,21,6,118,4,152,2,126,0,247,254,196,253, +166,251,145,249,181,249,108,251,116,252,104,252,164,251,30,250,21,249,200,249,150,250,143,249,189,247,171,246,55,246,218,246, +4,250,86,255,61,4,244,5,84,3,123,254,95,251,199,250,125,249,205,245,201,241,238,239,53,241,42,245,55,249,107,250, +61,249,95,248,133,248,151,248,56,248,159,247,27,247,93,247,50,248,39,248,24,247,166,246,90,247,88,248,96,249,108,250, +240,250,1,251,144,250,64,248,143,244,80,243,78,246,127,250,103,253,216,255,11,2,179,2,240,1,67,1,254,1,192,4, +137,7,139,6,130,2,33,1,119,4,190,8,140,11,150,13,252,14,199,15,80,16,207,14,39,10,119,5,181,2,129,255, +21,252,94,252,145,255,234,0,138,0,11,2,103,5,86,8,249,9,43,9,203,4,189,254,86,250,188,248,235,248,20,249, +74,248,84,248,246,250,141,253,208,252,129,251,53,254,229,2,212,3,90,0,147,252,251,250,167,250,23,250,149,249,103,251, +175,0,101,6,138,8,103,7,90,5,54,2,140,253,160,249,38,248,135,248,110,250,33,253,80,254,23,254,60,255,238,0, +202,255,251,252,183,251,123,250,159,246,16,242,237,239,191,240,251,243,155,248,1,253,156,0,87,3,78,4,173,3,203,2, +203,1,82,1,126,3,30,7,247,7,242,5,169,4,9,5,173,6,235,10,62,17,201,22,185,26,13,29,132,28,124,26, +255,25,74,25,10,21,23,16,169,14,173,14,165,12,39,10,16,10,8,12,200,13,136,12,186,6,96,255,244,251,252,252, +46,253,180,248,12,241,76,234,118,231,238,231,138,231,17,228,99,225,240,227,223,233,2,238,153,237,134,232,199,224,18,218, +194,213,120,210,219,209,73,215,191,224,68,233,244,238,126,240,193,236,136,231,243,227,242,221,215,212,42,209,33,213,92,215, +112,212,151,211,221,215,248,220,25,224,180,224,229,222,162,220,7,217,16,207,99,192,84,183,162,184,17,190,227,192,204,192, +80,194,57,202,49,214,211,219,121,213,51,202,48,195,15,193,250,191,3,191,124,192,225,198,50,209,62,218,210,222,37,226, +124,231,176,235,80,234,170,228,110,223,82,222,60,227,155,235,91,240,156,239,40,241,191,249,194,2,166,5,91,4,61,1, +87,251,185,244,36,241,152,240,156,242,233,247,133,253,213,255,96,1,149,5,1,10,207,10,71,7,163,0,188,250,38,250, +225,253,88,1,31,4,128,8,81,14,254,19,209,23,96,24,10,24,47,26,106,27,196,22,165,16,245,16,20,23,20,29, +51,32,46,33,168,34,227,38,197,42,143,40,144,33,208,28,116,28,10,29,67,29,180,30,28,33,120,34,76,34,143,33, +133,32,63,31,206,30,10,31,45,29,69,24,44,20,217,19,170,20,86,19,78,17,227,17,50,21,7,24,181,23,39,21, +66,19,194,18,14,18,164,16,59,16,143,18,160,22,141,24,121,22,44,20,52,21,246,22,48,22,102,20,84,19,156,18, +22,19,181,20,137,20,216,18,119,19,85,21,225,19,223,15,55,13,58,12,178,11,169,11,184,11,155,11,35,12,27,13, +170,13,186,13,182,12,5,11,155,11,65,14,207,13,73,9,22,6,166,6,189,8,106,11,24,14,242,14,47,15,94,17, +93,19,52,18,87,16,33,17,133,19,103,21,117,22,210,22,142,23,173,26,53,31,229,32,129,30,56,28,56,29,104,31, +65,32,206,32,228,33,32,34,202,33,100,34,75,34,141,31,188,28,190,28,29,30,188,30,250,30,96,31,153,31,49,31, +238,29,1,29,13,30,218,31,124,32,22,33,17,34,229,32,247,29,173,28,172,28,236,27,191,27,124,28,182,27,122,26, +217,27,107,30,224,31,30,33,134,33,222,30,128,27,129,27,180,29,38,30,156,27,129,23,41,20,239,18,92,18,161,16, +232,14,242,14,11,16,126,16,215,15,105,15,222,16,9,19,115,18,148,14,197,9,115,4,236,254,171,252,225,254,13,1, +145,0,192,0,227,3,37,7,104,7,198,4,224,0,32,253,149,250,83,249,36,248,160,246,218,246,255,249,193,252,8,252, +206,250,39,253,204,0,89,0,147,250,39,243,213,238,253,238,50,240,171,239,122,239,74,241,160,242,8,242,253,240,145,239, +47,237,40,235,180,233,95,231,144,228,183,226,239,226,100,231,133,239,64,245,220,245,243,245,189,246,127,243,51,236,16,229, +167,221,236,212,157,207,128,209,110,216,141,225,246,234,98,241,47,243,61,242,251,239,13,237,234,235,69,237,194,236,82,231, +63,225,174,224,202,229,216,236,228,243,90,249,159,249,118,243,249,234,117,228,202,224,207,223,245,224,135,226,95,228,70,232, +1,238,29,243,166,245,3,244,102,238,251,232,7,231,87,230,74,228,92,225,12,222,249,219,116,223,112,232,156,240,23,245, +194,247,151,246,8,238,12,226,97,218,24,217,181,218,157,219,147,219,43,222,181,229,51,238,97,242,54,243,101,244,61,245, +186,242,55,237,154,231,82,227,176,224,228,224,195,227,17,230,179,230,154,233,189,239,101,242,50,237,133,229,59,226,137,227, +237,229,152,230,230,228,79,227,99,228,163,230,151,231,251,231,213,232,56,233,216,232,42,232,218,230,141,229,199,229,48,231, +200,232,239,234,20,237,130,237,56,237,208,238,158,241,87,242,232,239,175,236,179,235,135,237,249,239,231,240,127,240,36,240, +166,240,28,242,139,244,47,248,171,252,81,0,254,1,156,2,146,2,170,0,117,253,10,251,34,249,9,247,221,246,112,249, +244,251,45,253,113,254,148,255,165,0,63,4,55,10,190,13,11,12,223,6,180,0,33,252,35,252,184,0,88,6,58,10, +250,11,32,12,129,11,240,10,196,10,52,11,26,12,58,12,162,10,68,8,189,6,88,6,131,6,107,7,225,9,55,13, +3,15,120,14,122,13,112,12,1,9,40,3,111,255,226,1,69,9,12,16,183,17,168,15,239,14,204,16,177,17,174,15, +107,12,143,9,223,7,147,7,240,6,92,4,30,2,155,3,83,8,18,13,116,15,158,14,117,11,115,8,105,7,9,8, +215,8,91,8,99,6,109,4,121,3,167,2,140,1,174,1,85,4,136,8,115,11,166,10,211,6,85,3,241,1,140,1, +37,1,198,0,87,0,139,0,128,2,182,4,101,4,124,2,133,2,250,4,207,6,2,6,180,3,95,2,45,3,25,5, +197,6,87,8,91,10,212,11,91,11,96,9,124,7,235,5,193,3,84,1,66,0,242,0,72,2,116,3,44,4,116,4, +125,5,127,8,111,12,54,15,240,15,60,14,113,10,240,6,46,5,129,3,214,1,114,3,67,8,128,11,139,11,184,11, +234,13,116,16,230,16,187,13,135,8,1,6,214,7,209,9,217,8,36,7,68,7,83,9,205,12,205,15,112,15,177,12, +213,11,91,13,21,14,203,13,171,14,242,15,67,15,225,12,158,10,164,9,157,10,199,12,149,13,249,11,188,9,64,8, +139,7,105,8,75,11,97,14,244,15,228,15,219,13,128,10,56,9,105,11,70,13,16,12,104,10,162,10,67,11,35,11, +240,10,140,10,158,9,15,9,42,9,57,9,109,9,30,10,146,10,169,10,250,10,245,10,25,10,140,9,151,9,197,8, +26,7,40,6,233,5,212,5,39,7,54,10,104,12,17,12,2,11,94,11,171,12,185,12,41,10,38,6,117,3,249,2, +250,2,161,2,246,2,252,3,170,4,93,5,221,6,44,8,46,8,116,7,230,6,130,6,196,5,44,4,114,2,227,2, +35,6,51,9,120,9,242,7,88,6,167,4,15,3,132,2,248,2,141,3,198,3,127,3,81,3,52,4,116,5,76,5, +18,4,80,3,148,2,25,1,65,0,222,0,154,1,59,2,188,3,170,4,220,2,244,255,19,255,221,255,223,255,159,254, +110,253,86,253,60,254,199,254,207,253,41,252,67,251,18,251,134,251,30,253,51,254,103,252,174,249,29,250,239,252,59,254, +243,253,244,254,82,1,84,2,49,0,221,251,127,248,42,248,222,248,219,247,167,246,24,248,242,250,19,252,0,251,120,249, +108,249,170,251,22,254,89,253,174,249,85,246,129,244,84,243,94,243,173,245,233,248,145,250,234,249,69,248,45,247,220,246, +147,246,65,246,147,246,151,247,204,248,2,250,251,250,32,251,243,249,57,247,119,243,194,240,50,241,100,244,34,248,174,250, +66,251,9,250,197,248,127,249,6,252,243,253,86,253,125,250,70,247,61,245,121,244,76,244,195,244,213,246,184,250,204,254, +23,1,72,1,37,0,75,254,169,252,53,252,70,252,157,251,228,250,147,251,218,253,102,1,89,5,108,7,152,6,213,4, +93,3,30,1,80,254,129,252,167,251,189,251,19,254,49,2,244,5,180,8,199,9,164,7,193,3,56,1,50,255,223,251, +145,249,239,249,28,250,245,248,156,249,28,253,166,0,80,2,150,2,191,2,209,3,196,4,236,2,127,254,63,251,26,251, +111,252,211,253,89,255,213,0,255,1,46,3,56,4,98,4,12,4,84,4,15,5,39,5,106,4,53,3,152,1,137,0, +160,1,27,4,46,5,40,4,221,2,49,2,124,1,86,0,245,254,71,254,74,255,182,0,243,255,110,253,225,251,199,251, +18,252,250,252,94,254,55,255,53,0,144,2,234,4,74,5,2,4,108,2,89,1,240,0,163,0,173,0,171,2,93,6, +15,9,15,10,231,10,77,11,18,10,31,8,143,6,39,5,58,4,54,4,103,4,35,5,243,7,132,12,26,17,239,20, +34,23,80,22,194,18,4,14,39,9,185,5,56,5,45,6,173,5,180,3,141,2,25,3,105,4,113,5,123,5,240,3, +140,0,146,251,229,245,251,240,54,238,207,237,176,238,192,239,150,240,215,240,149,240,230,240,171,241,138,240,223,236,1,233, +235,229,103,227,235,227,146,232,87,236,50,235,144,232,184,232,135,234,243,234,145,232,25,228,194,224,135,224,102,224,247,221, +93,220,66,222,4,226,139,230,136,235,159,237,95,234,200,228,162,224,15,222,5,220,124,218,51,218,36,220,19,223,48,223, +86,219,82,215,119,214,235,215,32,217,139,216,155,214,186,213,116,215,194,217,173,217,154,215,159,214,138,216,93,220,121,224, +56,228,182,230,205,230,166,229,207,229,17,231,132,231,27,232,15,235,176,239,170,243,192,245,184,245,218,244,136,245,217,247, +158,249,119,250,157,251,186,252,243,252,236,252,108,253,164,254,253,0,47,4,187,6,128,7,145,6,219,4,226,3,178,4, +192,6,100,8,4,8,142,5,101,3,119,3,16,4,52,3,181,2,191,4,20,8,175,10,21,12,44,12,109,11,222,10, +101,10,168,9,174,9,0,11,38,13,165,16,70,21,73,24,96,24,186,23,238,23,166,24,153,25,188,25,220,23,19,22, +52,23,107,25,83,25,150,23,217,22,252,23,120,26,94,28,174,26,104,21,254,16,241,16,143,19,245,20,211,19,247,17, +168,17,91,19,55,21,163,20,76,17,15,14,33,13,255,12,115,11,220,8,142,6,120,5,183,6,145,9,24,11,16,11, +103,12,29,15,47,16,248,14,209,12,84,10,184,8,41,9,39,10,91,10,77,11,250,13,102,17,200,20,113,22,24,20, +137,15,52,13,120,13,191,13,139,13,36,13,4,12,84,11,116,12,205,13,178,13,231,12,186,11,80,9,145,6,84,5, +166,5,172,6,63,8,11,10,220,10,220,9,3,8,138,7,54,9,75,11,222,11,186,10,236,8,9,8,221,8,47,10, +154,10,191,10,182,11,201,13,38,17,108,20,152,20,11,18,33,17,51,19,0,21,171,20,106,19,183,18,252,19,174,23, +80,27,69,28,45,27,160,25,231,23,75,22,39,21,98,20,129,20,168,21,23,22,56,21,43,21,95,22,77,22,75,20, +150,18,54,18,11,18,161,17,209,17,10,19,121,20,23,21,226,20,114,20,7,20,190,19,149,19,26,19,124,18,229,18, +66,20,237,20,94,20,103,19,123,18,39,18,10,19,34,20,248,19,204,18,111,17,72,16,251,15,216,15,240,13,164,11, +192,12,15,16,61,16,239,12,61,11,244,12,3,14,243,10,12,6,82,4,40,6,115,6,254,2,119,0,152,2,37,6, +91,6,29,3,70,255,212,252,252,251,230,251,249,251,74,252,163,252,71,252,24,251,9,250,105,250,191,252,167,255,168,0, +147,254,43,250,71,245,137,242,153,243,148,246,195,247,52,246,95,244,155,244,142,246,176,247,90,246,60,244,61,244,113,246, +103,248,99,248,123,246,202,243,182,241,65,241,196,242,158,245,198,247,107,247,55,245,22,243,30,242,1,243,86,245,117,246, +102,245,92,245,186,247,226,248,219,246,166,244,236,244,240,246,81,248,204,246,75,243,145,242,106,246,70,250,159,250,100,249, +249,248,193,249,175,251,202,252,45,250,167,245,103,244,152,247,236,251,59,254,94,253,75,251,112,252,27,1,66,3,159,255, +237,250,17,250,12,252,22,254,249,254,20,254,125,252,123,253,8,2,10,7,183,9,56,9,174,4,164,253,199,249,125,251, +68,253,105,250,33,246,89,245,148,248,249,253,131,2,120,2,91,254,24,251,46,250,88,248,53,244,98,239,145,235,9,235, +160,238,138,242,208,243,66,245,121,248,124,249,154,246,130,243,20,242,75,240,113,236,47,230,36,223,236,219,247,222,139,228, +158,232,32,235,133,235,69,232,191,227,114,225,18,224,23,221,206,217,242,215,239,214,232,214,125,216,7,218,114,218,229,219, +14,223,150,224,98,222,210,217,5,212,10,206,98,203,222,205,189,209,18,211,255,210,229,211,21,213,186,212,205,210,92,209, +188,210,254,213,122,214,213,209,240,203,248,201,229,204,72,210,212,214,52,216,61,215,243,214,76,216,96,217,161,216,107,214, +137,212,55,213,168,216,232,219,76,220,146,218,38,217,113,217,108,219,2,222,240,223,53,225,253,226,222,229,227,232,93,234, +205,233,3,233,124,234,95,238,28,242,230,242,114,240,212,237,163,238,169,242,169,246,83,249,185,251,175,253,44,254,225,253, +165,253,205,252,236,251,84,253,223,0,59,3,217,2,8,2,151,3,210,7,194,12,200,15,121,15,19,13,89,11,157,11, +181,12,1,13,120,12,191,12,146,15,142,20,225,24,73,26,138,25,157,24,80,24,216,24,0,26,44,26,77,24,89,22, +247,22,17,26,222,29,228,32,32,34,220,33,212,33,161,34,3,35,132,34,209,33,226,32,146,31,129,30,219,29,162,29, +209,30,68,33,176,34,111,34,151,34,101,35,78,34,233,30,14,28,162,27,193,28,163,29,50,29,202,27,57,27,154,28, +188,30,228,31,199,31,189,30,10,29,108,27,165,26,132,26,137,26,157,26,85,26,26,25,87,23,49,22,97,22,223,23, +153,25,177,25,181,23,125,21,85,20,127,19,177,18,252,18,63,20,190,20,190,19,72,18,132,17,198,17,124,18,156,18, +174,17,81,16,61,15,102,14,72,13,191,11,161,10,17,11,205,12,27,14,242,13,70,13,140,13,123,14,32,14,191,11, +198,9,229,10,217,13,214,14,202,12,117,10,154,10,20,13,119,15,224,15,33,15,83,15,113,16,129,16,240,14,74,13, +245,12,195,13,136,14,114,14,237,13,225,13,67,14,155,14,35,15,24,16,21,17,215,17,25,18,47,17,153,15,98,15, +28,17,158,18,69,18,46,17,255,16,148,17,190,17,247,16,223,15,150,15,122,16,118,17,88,17,144,16,56,16,251,15, +246,14,50,14,120,15,28,18,130,19,83,18,143,15,87,13,127,13,219,15,28,18,84,18,208,16,248,14,251,13,48,14, +142,14,224,13,243,12,60,13,247,13,103,13,185,11,92,10,240,9,61,10,172,10,156,10,30,10,135,9,118,8,224,6, +214,5,196,5,209,5,196,5,13,6,7,6,254,4,208,3,53,3,120,2,129,1,77,1,108,1,87,0,111,254,119,253, +142,253,146,253,56,253,188,252,40,252,1,252,122,252,62,252,113,250,140,248,39,248,220,248,175,249,20,250,119,249,9,248, +14,247,5,247,67,247,109,247,85,247,118,246,50,245,151,244,128,244,55,244,9,244,72,244,124,244,152,244,229,244,230,244, +14,244,146,242,242,240,27,240,231,240,88,242,142,242,210,241,222,241,195,242,115,243,183,243,114,243,38,242,94,240,122,239, +191,239,71,240,121,240,120,240,118,240,133,240,218,240,154,241,72,242,44,242,89,241,97,240,124,239,49,239,98,240,85,242, +227,242,186,241,243,240,222,241,143,243,155,244,142,244,229,243,89,243,14,243,216,242,30,243,67,244,130,245,205,245,83,245, +44,245,228,245,180,246,107,246,69,245,195,244,83,245,222,245,211,245,179,245,243,245,214,246,52,248,214,248,240,247,172,246, +87,246,102,246,249,245,94,245,248,244,194,244,25,245,113,246,81,248,98,249,146,248,70,246,82,244,56,244,154,245,218,246, +198,246,162,245,15,245,64,246,102,248,232,249,133,250,166,250,2,250,185,248,19,248,151,248,15,249,159,248,40,248,176,248, +198,249,94,250,75,250,2,250,169,249,49,249,190,248,124,248,98,248,43,248,114,247,110,246,60,246,75,247,49,248,169,247, +164,246,170,246,96,247,63,247,219,245,88,244,220,243,27,244,234,243,48,243,37,243,85,244,135,245,39,245,49,243,108,241, +143,241,9,243,183,243,217,242,198,241,177,241,98,242,249,242,209,242,253,241,46,241,184,240,88,240,46,240,166,240,64,241, +239,240,217,239,143,239,12,241,218,242,89,242,123,239,120,237,128,238,215,240,153,241,34,240,6,238,101,237,21,239,150,241, +211,242,133,242,144,241,118,240,239,239,220,240,114,242,167,242,21,241,191,239,141,240,232,242,123,244,85,244,219,243,15,244, +81,244,157,244,213,245,30,247,147,246,180,244,7,244,178,245,114,248,38,250,182,249,90,248,85,248,233,249,55,251,69,251, +242,250,23,251,135,251,216,251,17,252,131,252,51,253,182,253,8,254,221,254,111,0,178,1,133,1,93,0,19,0,187,1, +246,3,101,4,192,2,41,1,83,1,194,2,8,4,120,4,93,4,113,4,86,5,234,6,0,8,158,7,130,6,55,6, +218,6,115,7,227,7,82,8,1,8,247,6,227,6,31,8,210,8,129,8,242,8,179,10,36,12,46,12,43,11,206,9, +237,8,51,9,15,10,96,10,40,10,43,10,120,10,172,10,235,10,129,11,57,12,152,12,107,12,225,11,93,11,5,11, +156,10,39,10,62,10,39,11,45,12,126,12,42,12,232,11,91,12,79,13,164,13,186,12,147,11,77,11,146,11,184,11, +197,11,141,11,0,11,44,11,153,12,244,13,85,14,69,14,167,13,15,12,250,10,201,11,247,12,174,12,203,11,193,11, +106,12,55,13,5,14,80,14,163,13,154,12,75,12,6,13,6,14,46,14,57,13,50,12,79,12,132,13,119,14,247,13, +141,12,255,11,236,12,233,13,163,13,138,12,218,11,43,12,64,13,93,14,186,14,23,14,246,12,65,12,117,12,246,12, +202,12,248,11,101,11,180,11,219,12,51,14,174,14,37,14,195,13,1,14,219,13,242,12,74,12,81,12,117,12,115,12, +71,12,229,11,236,11,9,13,112,14,192,14,247,13,246,12,7,12,26,11,118,10,107,10,224,10,102,11,146,11,99,11, +81,11,149,11,160,11,220,10,192,9,99,9,231,9,48,10,139,9,178,8,152,8,22,9,97,9,67,9,82,9,4,10, +226,10,239,10,210,9,77,8,106,7,129,7,217,7,124,7,168,6,212,6,125,8,234,9,87,9,81,7,218,5,239,5, +214,6,41,7,41,6,112,4,123,3,254,3,231,4,180,4,105,3,72,2,253,1,51,2,130,2,172,2,103,2,178,1, +246,0,144,0,142,0,177,0,98,0,88,255,47,254,187,253,36,254,226,254,19,255,78,254,136,253,1,254,12,255,238,254, +183,253,242,252,13,253,16,253,104,252,153,251,143,251,101,252,242,252,63,252,252,250,73,250,47,250,97,250,235,250,109,251, +69,251,200,250,168,250,151,250,200,249,119,248,228,247,192,248,38,250,146,250,180,249,140,248,23,248,111,248,231,248,199,248, +100,248,185,248,124,249,78,249,66,248,211,247,63,248,122,248,99,248,191,248,126,249,196,249,77,249,220,248,42,249,203,249, +221,249,162,249,254,249,143,250,57,250,59,249,222,248,135,249,131,250,32,251,71,251,85,251,110,251,11,251,250,249,23,249, +15,249,101,249,154,249,13,250,14,251,37,252,131,252,168,251,3,250,14,249,206,249,96,251,247,251,45,251,48,250,239,249, +38,250,57,250,17,250,253,249,69,250,232,250,104,251,50,251,133,250,54,250,90,250,52,250,192,249,9,250,85,251,69,252, +138,251,172,249,78,248,65,248,21,249,4,250,123,250,46,250,95,249,199,248,209,248,66,249,148,249,121,249,64,249,122,249, +237,249,182,249,218,248,94,248,131,248,153,248,145,248,20,249,17,250,144,250,247,249,215,248,105,248,55,249,111,250,251,250, +226,250,238,250,95,251,180,251,105,251,172,250,42,250,53,250,157,250,69,251,238,251,219,251,224,250,29,250,140,250,205,251, +1,253,173,253,114,253,44,252,115,250,86,249,126,249,158,250,174,251,7,252,245,251,252,251,19,252,236,251,95,251,198,250, +221,250,193,251,136,252,169,252,116,252,201,251,120,250,179,249,151,250,25,252,198,252,214,252,186,252,226,251,62,250,249,248, +35,249,134,250,184,251,99,251,20,250,185,249,180,250,48,251,252,249,51,248,145,247,121,248,214,249,96,250,206,249,189,248, +226,247,186,247,88,248,253,248,208,248,19,248,142,247,88,247,56,247,86,247,169,247,190,247,131,247,122,247,10,248,6,249, +150,249,169,248,79,246,107,244,232,244,30,247,119,248,231,247,253,246,6,247,62,247,253,246,62,247,122,248,39,249,22,248, +118,246,25,246,251,246,173,247,93,247,162,246,137,246,119,247,236,248,11,250,72,250,179,249,207,248,86,248,205,248,209,249, +69,250,220,249,193,249,204,250,41,252,172,252,98,252,47,252,158,252,79,253,101,253,213,252,182,252,135,253,51,254,217,253, +62,253,149,253,237,254,111,0,108,1,209,1,186,1,28,1,92,0,101,0,69,1,208,1,141,1,108,1,17,2,13,3, +215,3,48,4,5,4,223,3,148,4,245,5,152,6,157,5,5,4,143,3,104,4,47,5,62,5,86,5,220,5,89,6, +184,6,71,7,186,7,113,7,91,6,49,5,20,5,99,6,201,7,154,7,23,6,18,5,148,5,254,6,18,8,58,8, +234,7,166,7,33,7,75,6,11,6,187,6,67,7,236,6,155,6,68,7,145,8,100,9,240,8,137,7,128,6,186,6, +203,7,212,8,60,9,160,8,77,7,121,6,225,6,190,7,17,8,2,8,78,8,235,8,254,8,41,8,49,7,237,6, +41,7,77,7,56,7,5,7,255,6,176,7,197,8,200,8,65,7,176,5,116,5,95,6,149,7,61,8,225,7,48,7, +81,7,23,8,84,8,213,7,127,7,189,7,42,8,119,8,185,8,225,8,131,8,169,7,79,7,54,8,147,9,10,10, +146,9,73,9,174,9,18,10,155,9,64,8,248,6,232,6,251,7,196,8,129,8,25,8,70,8,120,8,118,8,201,8, +251,8,51,8,87,7,163,7,44,8,145,7,111,6,17,6,154,6,91,7,105,7,97,6,95,5,194,5,197,6,142,6, +38,5,81,4,8,5,135,6,86,7,213,6,206,5,103,5,190,5,29,6,240,5,75,5,211,4,9,5,125,5,117,5, +31,5,23,5,94,5,163,5,235,5,47,6,8,6,62,5,29,4,30,3,131,2,138,2,67,3,12,4,56,4,80,4, +230,4,211,4,20,3,89,1,157,1,232,2,43,3,64,2,44,1,172,0,36,1,28,2,83,2,168,1,100,1,21,2, +220,2,181,2,83,1,131,255,225,254,17,0,199,1,126,2,25,2,115,1,115,1,51,2,142,2,135,1,4,0,154,255, +84,0,26,1,86,1,53,1,40,1,95,1,114,1,17,1,194,0,217,0,168,0,241,255,182,255,75,0,120,0,165,255, +246,254,106,255,100,0,193,0,55,0,79,255,184,254,188,254,221,254,85,254,77,253,241,252,231,253,97,255,50,0,35,0, +194,255,102,255,233,254,64,254,174,253,62,253,172,252,45,252,100,252,51,253,176,253,149,253,142,253,238,253,68,254,37,254, +153,253,222,252,57,252,215,251,187,251,236,251,127,252,103,253,78,254,166,254,22,254,12,253,92,252,58,252,86,252,181,252, +109,253,236,253,140,253,149,252,225,251,206,251,32,252,162,252,74,253,197,253,123,253,94,252,84,251,55,251,185,251,233,251, +141,251,105,251,22,252,6,253,50,253,138,252,5,252,24,252,49,252,212,251,66,251,232,250,229,250,37,251,117,251,188,251, +14,252,62,252,238,251,119,251,178,251,136,252,232,252,136,252,80,252,188,252,33,253,242,252,158,252,186,252,22,253,73,253, +115,253,194,253,235,253,166,253,41,253,213,252,236,252,97,253,174,253,112,253,33,253,59,253,101,253,76,253,59,253,86,253, +96,253,77,253,53,253,46,253,90,253,140,253,95,253,2,253,235,252,254,252,33,253,108,253,96,253,163,252,46,252,168,252, +18,253,162,252,243,251,168,251,221,251,138,252,29,253,250,252,183,252,37,253,185,253,170,253,54,253,202,252,97,252,57,252, +176,252,142,253,53,254,79,254,9,254,209,253,199,253,143,253,255,252,172,252,60,253,53,254,82,254,73,253,87,252,117,252, +18,253,67,253,23,253,28,253,88,253,97,253,61,253,131,253,8,254,111,253,122,251,57,250,45,251,247,252,122,253,122,252, +47,251,226,250,229,251,29,253,91,253,222,252,129,252,92,252,76,252,100,252,101,252,251,251,85,251,221,250,4,251,5,252, +55,253,136,253,36,253,25,253,135,253,184,253,126,253,12,253,85,252,111,251,219,250,241,250,125,251,241,251,2,252,12,252, +127,252,6,253,28,253,246,252,231,252,163,252,26,252,216,251,204,251,83,251,186,250,242,250,210,251,119,252,205,252,41,253, +90,253,62,253,55,253,98,253,94,253,255,252,115,252,31,252,122,252,119,253,55,254,22,254,159,253,147,253,216,253,27,254, +138,254,21,255,58,255,244,254,166,254,102,254,88,254,221,254,137,255,134,255,65,255,168,255,87,0,129,0,87,0,63,0, +29,0,219,255,115,255,7,255,35,255,192,255,247,255,208,255,57,0,230,0,255,0,16,1,143,1,116,1,129,0,32,0, +188,0,48,1,10,1,214,0,197,0,195,0,248,0,73,1,133,1,240,1,127,2,89,2,71,1,121,0,191,0,114,1, +220,1,28,2,75,2,84,2,113,2,176,2,222,2,40,3,129,3,38,3,10,2,69,1,86,1,212,1,153,2,121,3, +192,3,61,3,139,2,47,2,81,2,154,2,42,2,0,1,140,0,111,1,107,2,152,2,116,2,96,2,40,2,248,1, +40,2,102,2,39,2,139,1,36,1,69,1,215,1,133,2,191,2,58,2,165,1,237,1,219,2,127,3,138,3,36,3, +91,2,170,1,206,1,150,2,17,3,12,3,39,3,168,3,38,4,52,4,196,3,6,3,80,2,3,2,54,2,189,2, +94,3,187,3,118,3,229,2,233,2,179,3,131,4,155,4,216,3,176,2,241,1,241,1,73,2,159,2,215,2,186,2, +129,2,226,2,201,3,87,4,67,4,4,4,244,3,42,4,121,4,139,4,95,4,21,4,143,3,6,3,15,3,142,3, +225,3,226,3,198,3,207,3,74,4,242,4,27,5,234,4,244,4,21,5,4,5,193,4,4,4,252,2,163,2,40,3, +203,3,109,4,34,5,90,5,16,5,224,4,183,4,87,4,28,4,245,3,132,3,38,3,30,3,252,2,227,2,94,3, +246,3,254,3,214,3,231,3,215,3,126,3,79,3,107,3,82,3,210,2,134,2,211,2,54,3,70,3,75,3,81,3, +36,3,7,3,38,3,2,3,101,2,203,1,157,1,241,1,137,2,227,2,213,2,152,2,23,2,129,1,178,1,142,2, +206,2,42,2,152,1,130,1,160,1,161,1,36,1,79,0,255,255,102,0,204,0,226,0,195,0,77,0,169,255,94,255, +118,255,156,255,160,255,99,255,247,254,191,254,221,254,1,255,226,254,117,254,22,254,61,254,168,254,173,254,118,254,119,254, +73,254,177,253,119,253,243,253,80,254,22,254,245,253,128,254,24,255,186,254,132,253,168,252,211,252,154,253,68,254,78,254, +182,253,69,253,149,253,2,254,225,253,177,253,230,253,8,254,222,253,201,253,194,253,102,253,193,252,56,252,33,252,166,252, +122,253,9,254,60,254,117,254,181,254,170,254,92,254,26,254,244,253,200,253,142,253,73,253,3,253,212,252,197,252,3,253, +221,253,231,254,35,255,171,254,169,254,77,255,176,255,134,255,6,255,66,254,207,253,45,254,113,254,197,253,13,253,31,253, +133,253,6,254,213,254,117,255,156,255,195,255,206,255,103,255,30,255,35,255,189,254,37,254,71,254,200,254,216,254,162,254, +93,254,8,254,74,254,94,255,21,0,160,255,151,254,180,253,86,253,197,253,141,254,202,254,118,254,41,254,25,254,57,254, +95,254,40,254,147,253,49,253,39,253,27,253,255,252,232,252,167,252,81,252,68,252,130,252,215,252,62,253,129,253,66,253, +196,252,209,252,122,253,205,253,31,253,16,252,169,251,14,252,143,252,157,252,64,252,253,251,84,252,10,253,96,253,27,253, +195,252,207,252,57,253,178,253,239,253,226,253,145,253,241,252,55,252,217,251,210,251,191,251,174,251,236,251,99,252,211,252, +19,253,43,253,106,253,208,253,198,253,64,253,1,253,40,253,47,253,49,253,104,253,120,253,82,253,87,253,148,253,11,254, +197,254,30,255,164,254,15,254,33,254,205,254,161,255,217,255,29,255,138,254,6,255,161,255,145,255,152,255,0,0,25,0, +233,255,244,255,40,0,61,0,23,0,201,255,192,255,24,0,60,0,26,0,48,0,84,0,57,0,50,0,44,0,201,255, +136,255,222,255,57,0,76,0,116,0,139,0,84,0,57,0,114,0,154,0,118,0,28,0,184,255,162,255,249,255,83,0, +91,0,75,0,134,0,251,0,41,1,218,0,114,0,16,0,111,255,215,254,215,254,74,255,182,255,246,255,5,0,22,0, +108,0,174,0,126,0,41,0,191,255,11,255,158,254,221,254,3,255,222,254,44,255,158,255,105,255,20,255,48,255,63,255, +23,255,28,255,27,255,206,254,125,254,73,254,11,254,226,253,220,253,226,253,30,254,158,254,7,255,5,255,151,254,225,253, +253,252,31,252,166,251,165,251,143,251,19,251,168,250,131,250,107,250,168,250,69,251,103,251,228,250,154,250,133,250,253,249, +70,249,196,248,93,248,98,248,233,248,40,249,242,248,218,248,175,248,45,248,3,248,91,248,96,248,223,247,81,247,233,246, +214,246,93,247,89,248,107,249,89,250,255,250,97,251,134,251,80,251,247,250,229,250,8,251,47,251,104,251,140,251,144,251, +237,251,169,252,64,253,203,253,167,254,140,255,49,0,124,0,24,0,72,255,238,254,8,255,6,255,54,255,0,0,22,1, +70,2,114,3,32,4,78,4,136,4,236,4,76,5,174,5,237,5,1,6,118,6,127,7,133,8,20,9,62,9,83,9, +188,9,120,10,247,10,8,11,3,11,9,11,13,11,83,11,43,12,120,13,162,14,18,15,1,15,51,15,201,15,94,16, +215,16,35,17,22,17,21,17,157,17,108,18,10,19,78,19,21,19,134,18,44,18,58,18,118,18,210,18,69,19,157,19, +207,19,235,19,16,20,122,20,248,20,6,21,199,20,182,20,151,20,41,20,221,19,223,19,229,19,10,20,94,20,110,20, +73,20,135,20,238,20,191,20,21,20,133,19,22,19,166,18,102,18,87,18,24,18,156,17,99,17,182,17,59,18,124,18, +93,18,242,17,86,17,156,16,228,15,106,15,51,15,210,14,6,14,20,13,62,12,158,11,82,11,23,11,124,10,188,9, +60,9,171,8,209,7,3,7,64,6,76,5,98,4,162,3,222,2,65,2,198,1,237,0,246,255,183,255,8,0,51,0, +3,0,91,255,46,254,18,253,127,252,61,252,26,252,243,251,109,251,157,250,247,249,118,249,0,249,209,248,186,248,66,248, +130,247,186,246,212,245,238,244,96,244,41,244,8,244,218,243,153,243,75,243,213,242,26,242,88,241,0,241,19,241,19,241, +143,240,128,239,117,238,250,237,223,237,184,237,133,237,65,237,184,236,51,236,36,236,93,236,129,236,130,236,120,236,143,236, +197,236,182,236,57,236,223,235,40,236,235,236,162,237,207,237,128,237,95,237,196,237,91,238,250,238,164,239,10,240,230,239, +104,239,241,238,244,238,131,239,2,240,32,240,68,240,122,240,119,240,154,240,57,241,238,241,139,242,14,243,0,243,114,242, +58,242,122,242,226,242,181,243,215,244,138,245,209,245,31,246,54,246,249,245,234,245,32,246,93,246,196,246,68,247,125,247, +152,247,254,247,160,248,69,249,224,249,102,250,214,250,50,251,111,251,150,251,177,251,174,251,182,251,28,252,192,252,68,253, +176,253,59,254,205,254,33,255,34,255,250,254,212,254,191,254,216,254,60,255,202,255,87,0,218,0,32,1,4,1,245,0, +68,1,146,1,193,1,37,2,147,2,184,2,223,2,88,3,253,3,151,4,210,4,129,4,53,4,92,4,133,4,134,4, +179,4,207,4,149,4,105,4,88,4,20,4,1,4,106,4,201,4,2,5,100,5,177,5,208,5,48,6,143,6,92,6, +236,5,133,5,235,4,134,4,202,4,15,5,249,4,42,5,148,5,122,5,9,5,213,4,194,4,183,4,229,4,21,5, +6,5,212,4,136,4,31,4,240,3,28,4,91,4,153,4,219,4,205,4,64,4,134,3,246,2,180,2,212,2,20,3, +7,3,183,2,126,2,113,2,142,2,247,2,121,3,156,3,83,3,211,2,28,2,75,1,181,0,80,0,210,255,107,255, +107,255,153,255,185,255,241,255,68,0,124,0,166,0,199,0,154,0,30,0,150,255,227,254,229,253,17,253,203,252,238,252, +69,253,145,253,127,253,63,253,84,253,144,253,122,253,67,253,36,253,226,252,145,252,132,252,156,252,179,252,209,252,167,252, +57,252,79,252,4,253,130,253,161,253,218,253,14,254,30,254,78,254,93,254,242,253,145,253,149,253,148,253,140,253,230,253, +149,254,106,255,94,0,253,0,215,0,48,0,136,255,36,255,49,255,110,255,90,255,17,255,40,255,190,255,90,0,155,0, +166,0,224,0,42,1,25,1,219,0,213,0,214,0,179,0,155,0,102,0,247,255,214,255,53,0,147,0,212,0,39,1, +92,1,128,1,213,1,30,2,47,2,74,2,58,2,176,1,42,1,17,1,38,1,84,1,151,1,148,1,116,1,195,1, +80,2,147,2,137,2,95,2,46,2,33,2,56,2,90,2,133,2,119,2,235,1,53,1,196,0,174,0,255,0,125,1, +169,1,155,1,169,1,163,1,127,1,131,1,88,1,188,0,74,0,73,0,98,0,161,0,236,0,193,0,116,0,164,0, +231,0,220,0,214,0,172,0,6,0,66,255,150,254,1,254,9,254,206,254,151,255,39,0,165,0,189,0,105,0,34,0, +242,255,185,255,139,255,41,255,123,254,237,253,145,253,73,253,98,253,168,253,133,253,74,253,84,253,35,253,199,252,220,252, +21,253,33,253,101,253,150,253,48,253,217,252,252,252,2,253,222,252,224,252,186,252,87,252,22,252,220,251,158,251,167,251, +182,251,124,251,73,251,33,251,207,250,179,250,231,250,244,250,229,250,235,250,182,250,78,250,2,250,166,249,72,249,77,249, +102,249,17,249,112,248,171,247,3,247,17,247,152,247,187,247,131,247,56,247,141,246,177,245,12,245,63,244,70,243,194,242, +97,242,123,241,117,240,170,239,9,239,53,239,143,240,62,242,152,243,146,244,176,244,171,243,60,242,51,241,241,240,181,241, +76,243,31,245,182,246,207,247,115,248,210,248,203,248,121,248,160,248,118,249,102,250,72,251,249,251,203,251,250,250,164,250, +13,251,10,252,201,253,181,255,231,0,108,1,59,1,247,255,126,254,232,253,246,253,128,254,242,255,193,1,62,3,191,4, +38,6,185,6,194,6,197,6,166,6,205,6,181,7,152,8,209,8,221,8,251,8,15,9,162,9,6,11,202,12,186,14, +199,16,78,18,223,18,210,18,163,18,142,18,215,18,181,19,20,21,147,22,216,23,213,24,119,25,137,25,62,25,24,25, +52,25,116,25,214,25,55,26,117,26,199,26,56,27,131,27,165,27,202,27,247,27,49,28,87,28,39,28,219,27,236,27, +55,28,125,28,210,28,8,29,250,28,18,29,111,29,172,29,223,29,63,30,150,30,244,30,132,31,184,31,61,31,144,30, +219,29,17,29,189,28,0,29,53,29,63,29,74,29,237,28,37,28,155,27,70,27,198,26,112,26,101,26,26,26,133,25, +3,25,117,24,194,23,17,23,33,22,175,20,40,19,218,17,162,16,179,15,86,15,13,15,84,14,77,13,3,12,60,10, +93,8,24,7,100,6,225,5,127,5,28,5,112,4,164,3,241,2,26,2,18,1,47,0,132,255,230,254,90,254,172,253, +148,252,109,251,151,250,198,249,215,248,42,248,176,247,10,247,69,246,98,245,17,244,123,242,46,241,64,240,113,239,169,238, +217,237,3,237,84,236,218,235,103,235,225,234,77,234,182,233,39,233,135,232,180,231,199,230,237,229,41,229,119,228,217,227, +37,227,69,226,120,225,13,225,254,224,11,225,251,224,188,224,103,224,35,224,233,223,170,223,133,223,167,223,226,223,229,223, +200,223,208,223,10,224,103,224,208,224,255,224,211,224,168,224,200,224,30,225,157,225,51,226,166,226,237,226,29,227,2,227, +153,226,87,226,152,226,103,227,162,228,191,229,65,230,123,230,222,230,76,231,203,231,131,232,27,233,113,233,250,233,164,234, +250,234,84,235,46,236,59,237,37,238,249,238,149,239,0,240,169,240,165,241,148,242,71,243,189,243,253,243,59,244,157,244, +43,245,20,246,91,247,133,248,77,249,237,249,158,250,112,251,114,252,117,253,45,254,141,254,159,254,122,254,126,254,254,254, +221,255,209,0,197,1,182,2,131,3,22,4,140,4,16,5,138,5,207,5,233,5,223,5,176,5,179,5,46,6,214,6, +119,7,74,8,53,9,218,9,90,10,232,10,86,11,174,11,50,12,177,12,228,12,218,12,165,12,88,12,69,12,161,12, +79,13,45,14,244,14,91,15,134,15,182,15,216,15,226,15,254,15,30,16,41,16,52,16,57,16,33,16,8,16,241,15, +182,15,129,15,176,15,66,16,217,16,38,17,27,17,219,16,118,16,215,15,9,15,55,14,129,13,13,13,236,12,223,12, +189,12,196,12,12,13,79,13,112,13,122,13,92,13,35,13,2,13,231,12,162,12,59,12,174,11,237,10,51,10,209,9, +194,9,228,9,47,10,118,10,92,10,199,9,242,8,27,8,95,7,222,6,167,6,151,6,132,6,105,6,59,6,225,5, +101,5,247,4,184,4,150,4,87,4,230,3,104,3,236,2,78,2,160,1,30,1,214,0,192,0,207,0,214,0,197,0, +195,0,184,0,102,0,242,255,148,255,54,255,214,254,140,254,67,254,9,254,0,254,219,253,101,253,11,253,15,253,57,253, +150,253,54,254,169,254,191,254,193,254,152,254,249,253,10,253,254,251,236,250,40,250,227,249,212,249,201,249,220,249,2,250, +31,250,66,250,109,250,122,250,101,250,70,250,18,250,171,249,43,249,208,248,171,248,175,248,219,248,246,248,200,248,178,248, +28,249,168,249,24,250,168,250,3,251,170,250,34,250,236,249,189,249,174,249,20,250,96,250,52,250,20,250,249,249,137,249, +79,249,143,249,174,249,193,249,63,250,176,250,198,250,237,250,247,250,147,250,116,250,255,250,134,251,153,251,89,251,217,250, +79,250,6,250,253,249,36,250,107,250,151,250,182,250,253,250,53,251,86,251,193,251,99,252,209,252,8,253,4,253,181,252, +110,252,82,252,22,252,211,251,204,251,231,251,61,252,220,252,69,253,110,253,230,253,129,254,200,254,255,254,36,255,200,254, +69,254,255,253,158,253,64,253,107,253,200,253,231,253,251,253,250,253,213,253,0,254,96,254,86,254,6,254,223,253,199,253, +183,253,188,253,131,253,3,253,131,252,0,252,141,251,76,251,231,250,107,250,128,250,253,250,62,251,114,251,195,251,209,251, +191,251,192,251,84,251,117,250,211,249,131,249,60,249,11,249,225,248,170,248,167,248,195,248,169,248,84,248,172,247,178,246, +8,246,218,245,138,245,31,245,231,244,98,244,109,243,155,242,220,241,11,241,171,240,146,240,8,240,18,239,182,237,203,235, +54,234,187,233,232,233,8,235,20,238,105,242,164,246,246,249,3,251,7,249,218,245,136,243,42,242,178,241,62,242,229,242, +28,243,118,243,244,243,123,244,250,245,169,248,95,251,115,253,180,254,119,254,208,252,243,250,110,249,254,247,224,246,192,246, +209,247,192,249,1,252,226,253,210,254,7,255,78,255,211,255,4,0,235,255,45,0,232,0,12,2,177,3,79,5,79,6, +39,7,53,8,46,9,68,10,138,11,51,12,42,12,35,12,196,11,234,10,33,11,48,13,41,16,139,19,229,22,236,24, +154,25,78,26,71,27,19,28,213,28,46,29,167,28,24,28,250,27,112,27,95,26,171,25,158,25,74,26,194,27,66,29, +93,30,207,31,151,33,150,34,133,34,244,33,70,33,20,33,162,33,245,33,53,33,218,31,195,30,164,30,2,32,84,34, +81,36,179,37,12,39,81,40,7,41,30,41,207,40,91,40,248,39,108,39,48,38,130,36,137,35,246,35,51,37,44,38, +85,38,182,37,195,36,36,36,252,35,209,35,120,35,58,35,12,35,134,34,65,33,17,31,181,28,157,27,254,27,137,28, +89,28,81,27,64,25,147,22,76,20,79,18,9,16,39,14,100,13,29,13,185,12,61,12,126,11,215,10,45,11,238,11, +97,11,71,9,213,6,255,4,26,4,180,3,181,2,4,1,177,255,240,254,20,254,34,253,89,252,138,251,234,250,171,250, +243,249,44,248,60,246,18,245,127,244,182,243,198,241,115,238,35,235,123,233,108,233,194,233,173,233,241,232,225,231,44,231, +229,230,107,230,152,229,220,228,68,228,93,227,222,225,248,223,75,222,118,221,104,221,86,221,131,220,23,219,10,218,17,218, +204,218,111,219,161,219,116,219,25,219,170,218,255,217,12,217,97,216,176,216,251,217,157,219,178,220,172,220,246,219,131,219, +176,219,1,220,181,219,96,218,149,216,102,215,5,215,19,215,204,215,86,217,22,219,122,220,22,221,120,220,84,219,42,219, +27,220,38,221,201,221,169,221,182,220,70,220,125,221,115,223,16,225,138,226,14,228,92,229,154,230,180,231,86,232,239,232, +0,234,21,235,165,235,182,235,148,235,216,235,255,236,154,238,241,239,236,240,206,241,240,242,129,244,0,246,228,246,165,247, +234,248,137,250,0,252,254,252,115,253,184,253,55,254,222,254,98,255,156,255,163,255,5,0,36,1,101,2,9,3,48,3, +71,3,176,3,166,4,172,5,61,6,232,6,43,8,135,9,176,10,195,11,130,12,68,13,204,14,115,16,247,16,128,16, +200,15,71,15,177,15,235,16,205,17,75,18,95,19,4,21,207,22,174,24,239,25,56,26,126,26,234,26,126,26,113,25, +191,24,107,24,117,24,34,25,181,25,158,25,203,25,223,26,86,28,200,29,238,30,68,31,254,30,207,30,153,30,223,29, +210,28,3,28,174,27,192,27,15,28,127,28,6,29,161,29,52,30,60,30,71,29,196,27,102,26,76,25,158,24,165,24, +4,25,119,25,104,26,144,27,39,28,103,28,157,28,74,28,140,27,205,26,107,25,80,23,172,21,178,20,191,19,44,19, +0,19,99,18,162,17,139,17,144,17,50,17,206,16,38,16,4,15,16,14,66,13,2,12,203,10,26,10,94,9,92,8, +92,7,53,6,22,5,147,4,114,4,41,4,172,3,195,2,73,1,244,255,85,255,53,255,106,255,212,255,235,255,100,255, +93,254,233,252,62,251,205,249,209,248,79,248,30,248,209,247,40,247,105,246,250,245,13,246,96,246,71,246,131,245,138,244, +169,243,245,242,151,242,70,242,138,241,148,240,154,239,99,238,29,237,18,236,247,234,245,233,124,233,254,232,26,232,149,231, +174,231,6,232,235,232,24,234,90,234,213,233,103,233,148,232,50,231,94,230,48,230,239,229,246,229,91,230,52,230,198,229, +50,230,63,231,34,232,208,232,37,233,219,232,106,232,99,232,149,232,143,232,68,232,231,231,144,231,52,231,0,231,25,231, +70,231,155,231,105,232,54,233,115,233,154,233,218,233,174,233,124,233,227,233,42,234,255,233,94,234,64,235,187,235,235,235, +24,236,222,235,134,235,157,235,202,235,244,235,167,236,195,237,211,238,217,239,169,240,7,241,78,241,200,241,89,242,233,242, +47,243,252,242,226,242,57,243,140,243,213,243,128,244,78,245,225,245,81,246,121,246,50,246,229,245,243,245,61,246,116,246, +51,246,105,245,114,244,122,243,186,242,186,242,58,243,120,243,186,243,72,244,95,244,12,244,55,244,110,244,237,243,70,243, +187,242,230,241,100,241,196,241,83,242,202,242,138,243,82,244,30,245,168,246,248,248,140,251,13,254,238,255,21,1,46,2, +235,2,120,2,140,1,24,1,190,0,150,0,53,1,10,2,180,2,222,3,66,5,7,6,160,6,100,7,175,7,186,7, +60,8,190,8,185,8,150,8,141,8,123,8,145,8,227,8,73,9,250,9,29,11,60,12,199,12,189,12,156,12,204,12, +78,13,42,14,111,15,226,16,148,18,236,20,86,23,226,24,233,25,237,26,112,27,110,27,86,27,208,26,252,25,214,25, +74,26,233,26,86,28,96,30,231,31,71,33,26,35,132,36,115,37,161,38,26,39,34,38,248,36,236,35,83,34,49,33, +78,33,71,33,145,32,17,32,174,31,92,31,38,32,217,33,17,35,158,35,230,35,160,35,206,34,227,33,21,33,177,32, +218,32,60,33,200,33,131,34,223,34,199,34,230,34,54,35,76,35,139,35,34,36,120,36,102,36,66,36,225,35,24,35, +81,34,211,33,79,33,126,32,172,31,60,31,244,30,123,30,0,30,136,29,179,28,166,27,160,26,60,25,170,23,223,22, +184,22,115,22,50,22,243,21,47,21,75,20,160,19,88,18,83,16,111,14,146,12,131,10,246,8,224,7,140,6,88,5, +118,4,54,3,249,1,155,1,150,1,131,1,209,1,222,1,230,0,193,255,2,255,1,254,194,252,164,251,49,250,115,248, +51,247,81,246,91,245,175,244,104,244,254,243,81,243,134,242,135,241,120,240,143,239,153,238,91,237,231,235,138,234,153,233, +244,232,9,232,221,230,250,229,88,229,158,228,246,227,124,227,212,226,240,225,59,225,214,224,130,224,19,224,118,223,132,222, +107,221,201,220,165,220,59,220,137,219,120,219,223,219,211,219,192,219,67,220,103,220,188,219,89,219,78,219,180,218,51,218, +214,218,240,219,199,220,195,221,194,222,59,223,167,223,164,224,184,225,23,226,152,225,166,224,186,223,255,222,177,222,51,223, +36,224,185,224,60,225,45,226,206,226,209,226,86,227,131,228,53,229,149,229,128,230,61,231,19,231,29,231,13,232,213,232, +9,233,168,233,6,235,142,236,57,238,36,240,187,241,177,242,120,243,28,244,57,244,33,244,104,244,3,245,224,245,81,247, +36,249,180,250,238,251,28,253,29,254,201,254,104,255,104,0,1,2,11,4,255,5,86,7,229,7,221,7,198,7,20,8, +172,8,63,9,236,9,210,10,171,11,68,12,167,12,232,12,87,13,63,14,58,15,159,15,130,15,125,15,220,15,144,16, +126,17,131,18,138,19,154,20,171,21,160,22,103,23,7,24,135,24,219,24,230,24,189,24,206,24,127,25,193,26,72,28, +190,29,166,30,162,30,34,30,233,29,243,29,218,29,221,29,50,30,119,30,137,30,147,30,48,30,85,29,239,28,63,29, +132,29,209,29,134,30,204,30,34,30,90,29,147,28,35,27,164,25,235,24,87,24,124,23,40,23,117,23,165,23,191,23, +244,23,135,23,21,22,112,20,89,19,171,18,41,18,222,17,128,17,132,16,25,15,12,14,134,13,14,13,182,12,224,12, +66,13,84,13,1,13,69,12,251,10,72,9,149,7,27,6,176,4,28,3,127,1,39,0,245,254,179,253,138,252,115,251, +41,250,23,249,160,248,17,248,217,246,144,245,162,244,203,243,247,242,32,242,28,241,25,240,37,239,214,237,81,236,41,235, +68,234,98,233,196,232,72,232,138,231,215,230,140,230,96,230,23,230,171,229,6,229,83,228,221,227,147,227,82,227,249,226, +68,226,128,225,61,225,254,224,30,224,73,223,40,223,76,223,126,223,216,223,209,223,69,223,245,222,227,222,70,222,40,221, +60,220,161,219,18,219,149,218,82,218,49,218,8,218,23,218,146,218,208,218,108,218,94,218,97,219,195,220,243,221,215,222, +175,222,95,221,91,220,109,220,224,220,111,221,77,222,10,223,122,223,15,224,186,224,29,225,114,225,31,226,31,227,9,228, +119,228,168,228,4,229,44,229,230,228,236,228,90,229,169,229,86,230,176,231,139,232,179,232,146,233,19,235,200,235,186,235, +165,235,86,235,10,235,198,235,108,237,201,238,90,239,129,239,123,239,66,239,68,239,66,240,38,242,40,244,39,246,17,248, +250,248,220,248,24,249,11,250,2,251,58,252,196,253,172,254,57,255,177,0,203,2,195,4,3,7,106,9,247,10,202,11, +173,12,175,13,236,14,183,16,165,18,11,20,209,20,44,21,103,21,201,21,128,22,176,23,241,24,109,25,114,25,249,25, +143,26,161,26,78,27,245,28,63,30,33,31,148,32,204,33,248,33,52,34,19,35,202,35,101,36,88,37,5,38,7,38, +238,37,29,38,159,38,167,39,38,41,150,42,118,43,210,43,85,44,89,45,121,46,137,47,161,48,65,49,70,49,129,49, +10,50,31,50,229,49,228,49,209,49,139,49,81,49,12,49,6,49,197,49,163,50,169,50,3,50,27,49,37,48,173,47, +176,47,115,47,219,46,42,46,58,45,75,44,168,43,191,42,130,41,192,40,88,40,206,39,172,39,9,40,24,40,244,39, +19,40,239,39,42,39,11,38,169,36,79,35,121,34,221,33,44,33,160,32,252,31,18,31,131,30,64,30,122,29,127,28, +232,27,68,27,133,26,23,26,97,25,240,23,125,22,60,21,188,19,72,18,23,17,169,15,252,13,125,12,23,11,190,9, +136,8,48,7,181,5,114,4,74,3,14,2,14,1,79,0,121,255,111,254,47,253,200,251,110,250,234,248,244,246,236,244, +26,243,95,241,246,239,13,239,90,238,10,238,85,238,112,238,211,237,229,236,171,235,47,234,61,233,216,232,56,232,145,231, +52,231,117,230,84,229,102,228,76,227,215,225,183,224,209,223,158,222,166,221,87,221,102,221,218,221,115,222,87,222,120,221, +66,220,182,218,88,217,199,216,76,216,98,215,178,214,37,214,54,213,182,212,28,213,120,213,160,213,62,214,217,214,183,214, +68,214,20,214,76,214,249,214,195,215,77,216,176,216,244,216,23,217,112,217,27,218,246,218,55,220,153,221,63,222,94,222, +217,222,132,223,253,223,191,224,204,225,94,226,98,226,122,226,239,226,162,227,150,228,217,229,16,231,153,231,141,231,173,231, +47,232,1,233,105,234,200,235,246,235,133,235,151,235,199,235,16,236,111,237,64,239,119,240,39,242,166,244,20,246,91,246, +72,247,180,248,131,249,35,250,217,250,74,251,33,252,2,254,58,0,27,2,137,3,109,4,27,5,25,6,88,7,205,8, +137,10,24,12,59,13,28,14,72,14,158,13,70,13,208,13,100,14,186,14,74,15,22,16,5,17,52,18,69,19,211,19, +9,20,32,20,63,20,139,20,191,20,189,20,5,21,153,21,216,21,195,21,207,21,250,21,54,22,215,22,248,23,61,25, +35,26,106,26,56,26,200,25,121,25,255,25,98,27,175,28,143,29,90,30,141,30,205,29,23,29,195,28,17,28,79,27, +41,27,17,27,199,26,194,26,107,26,102,25,239,24,84,25,67,25,97,24,70,23,5,22,249,20,160,20,110,20,215,19, +242,18,107,17,46,15,73,13,62,12,139,11,44,11,58,11,19,11,112,10,156,9,151,8,127,7,200,6,64,6,107,5, +102,4,90,3,69,2,101,1,216,0,82,0,146,255,138,254,103,253,155,252,33,252,104,251,140,250,37,250,243,249,61,249, +19,248,3,247,33,246,10,245,137,243,218,241,29,240,47,238,114,236,149,235,83,235,14,235,200,234,20,234,54,232,249,229, +158,228,195,227,242,226,5,227,240,227,41,228,13,227,72,225,108,223,193,221,164,220,70,220,133,220,217,220,216,220,201,220, +223,220,169,220,31,220,145,219,143,218,16,217,19,216,165,215,27,215,99,215,110,217,192,219,202,220,219,220,39,220,125,218, +221,216,76,216,103,216,179,216,55,217,135,217,78,217,40,217,142,217,36,218,153,218,249,218,3,219,108,218,183,217,186,217, +87,218,204,218,24,219,161,219,27,220,71,220,157,220,39,221,104,221,175,221,155,222,187,223,94,224,184,224,77,225,100,226, +39,228,98,230,90,232,88,233,88,233,15,233,41,233,171,233,156,234,92,236,137,238,23,240,7,241,43,242,147,243,31,245, +53,247,136,249,246,250,82,251,109,251,162,251,1,252,6,253,217,254,179,0,206,1,104,2,52,3,90,4,196,5,187,7, +243,9,82,11,170,11,227,11,27,12,29,12,237,12,38,15,159,17,179,19,5,22,44,24,48,25,220,25,87,27,242,28, +225,29,193,30,210,31,101,32,170,32,165,33,97,35,63,37,49,39,11,41,249,41,248,41,50,42,26,43,4,44,242,44, +90,46,125,47,104,47,233,46,79,47,94,48,75,49,57,50,122,51,176,52,88,53,95,53,1,53,122,52,234,51,130,51, +128,51,195,51,203,51,136,51,143,51,81,52,185,53,74,55,47,56,216,55,193,54,210,53,57,53,191,52,154,52,210,52, +191,52,24,52,116,51,31,51,183,50,84,50,136,50,240,50,109,50,226,48,99,47,180,46,209,46,106,47,239,47,192,47, +206,46,126,45,21,44,185,42,152,41,150,40,76,39,142,37,187,35,115,34,238,33,163,33,248,32,239,31,179,30,29,29, +107,27,104,26,66,26,47,26,124,25,40,24,134,22,219,20,56,19,169,17,101,16,115,15,118,14,79,13,68,12,73,11, +28,10,202,8,100,7,227,5,159,4,203,3,255,2,25,2,81,1,47,0,77,254,154,252,210,251,14,251,134,249,238,247, +219,246,213,245,141,244,86,243,36,242,121,240,102,238,167,236,133,235,158,234,185,233,230,232,246,231,205,230,158,229,53,228, +112,226,86,225,159,225,248,225,42,225,18,224,102,223,79,222,220,220,104,220,202,220,167,220,43,220,36,220,204,219,111,218, +22,217,121,216,3,216,208,215,98,216,190,216,42,216,3,216,231,216,57,217,108,216,190,215,22,215,144,213,52,212,69,212, +17,213,213,213,192,214,106,215,60,215,198,214,161,214,148,214,158,214,3,215,135,215,227,215,90,216,51,217,35,218,152,218, +127,218,124,218,209,218,16,219,98,219,87,220,110,221,235,221,75,222,244,222,140,223,113,224,69,226,83,228,201,229,230,230, +102,231,163,230,158,229,254,229,137,231,16,233,137,234,72,236,188,237,117,238,249,238,171,239,41,240,127,240,133,241,57,243, +134,244,76,245,119,246,247,247,240,248,117,249,242,249,237,249,87,249,132,249,22,251,250,252,149,254,150,0,177,2,147,3, +140,3,1,4,163,4,199,4,181,5,4,8,223,9,140,10,116,11,154,12,228,12,5,13,182,13,2,14,0,14,255,14, +114,16,18,17,148,17,217,18,28,20,196,20,73,21,248,21,183,22,96,23,207,23,46,24,183,24,31,25,46,25,17,25, +188,24,75,24,110,24,59,25,255,25,152,26,38,27,60,27,233,26,237,26,45,27,253,26,131,26,59,26,11,26,210,25, +181,25,158,25,94,25,25,25,255,24,250,24,205,24,104,24,5,24,218,23,188,23,82,23,158,22,237,21,89,21,186,20, +41,20,209,19,97,19,158,18,7,18,190,17,12,17,248,15,104,15,43,15,101,14,73,13,39,12,136,10,181,8,172,7, +62,7,176,6,49,6,229,5,66,5,20,4,157,2,12,1,161,255,163,254,23,254,191,253,216,252,217,250,181,248,123,247, +133,246,56,245,81,244,188,243,157,242,171,241,190,241,185,241,249,240,124,240,15,240,123,238,48,236,34,234,13,232,72,230, +35,230,105,231,137,232,227,232,142,232,74,231,94,229,231,227,99,227,119,227,0,228,214,228,6,229,246,227,106,226,37,225, +213,223,96,222,135,221,147,221,9,222,187,222,185,223,135,224,134,224,159,223,41,222,132,220,245,218,199,217,92,217,201,217, +201,218,57,220,165,221,245,221,244,220,216,219,76,219,217,218,110,218,47,218,170,217,24,217,156,217,60,219,220,220,33,222, +92,223,79,224,121,224,9,224,215,223,132,224,214,225,86,227,203,228,127,229,199,228,243,227,231,228,3,231,136,232,101,233, +209,233,73,233,192,232,232,233,64,236,128,238,234,240,64,243,229,243,221,242,226,241,129,241,134,241,211,242,160,245,57,248, +150,249,143,250,92,251,34,251,110,250,222,250,127,252,65,254,6,0,238,1,76,3,11,4,35,5,174,6,204,7,132,8, +169,9,101,11,97,13,157,15,244,17,224,19,95,21,238,22,52,24,36,24,11,23,193,22,10,24,239,25,8,28,162,30, +220,32,162,33,184,33,56,34,214,34,115,35,204,36,178,38,43,40,43,41,4,42,96,42,75,42,147,42,49,43,19,43, +2,42,57,41,173,41,229,42,41,44,138,45,21,47,82,48,65,49,66,50,242,50,212,50,133,50,144,50,137,50,126,50, +41,51,100,52,129,53,132,54,58,55,160,54,159,52,153,50,131,49,79,49,255,49,127,51,252,52,159,53,108,53,193,52, +208,51,220,50,62,50,214,49,67,49,142,48,15,48,195,47,108,47,245,46,19,46,54,44,133,41,35,39,209,37,59,37, +26,37,190,37,247,38,167,39,19,39,146,37,160,35,102,33,74,31,186,29,130,28,92,27,143,26,248,25,203,24,11,23, +127,21,22,20,107,18,76,17,86,17,106,17,147,16,153,15,47,15,170,14,135,13,28,12,113,10,45,8,154,5,94,3, +154,1,36,0,4,255,54,254,140,253,242,252,78,252,34,251,50,249,26,247,114,245,8,244,170,242,153,241,204,240,230,239, +242,238,26,238,24,237,175,235,32,234,222,232,38,232,202,231,84,231,151,230,161,229,44,228,45,226,109,224,129,223,31,223, +250,222,0,223,2,223,47,223,194,223,25,224,146,223,169,222,169,221,245,219,172,217,217,215,237,214,203,214,169,215,78,217, +170,218,36,219,33,219,252,218,159,218,56,218,53,218,101,218,78,218,110,218,121,219,136,220,94,220,149,219,37,219,149,218, +175,217,73,217,87,217,65,217,174,217,25,219,105,220,18,221,210,221,137,222,127,222,85,222,233,222,161,223,3,224,227,224, +111,226,141,227,20,228,242,228,233,229,16,230,4,230,206,230,238,231,216,232,10,234,58,235,121,235,60,235,112,235,222,235, +155,236,111,238,247,240,30,243,236,244,166,246,195,247,221,247,31,247,227,245,190,244,42,244,70,244,67,245,234,246,109,248, +201,249,147,251,41,253,195,253,21,254,163,254,243,254,91,255,155,0,38,2,102,3,159,4,124,5,105,5,3,5,27,5, +151,5,79,6,67,7,56,8,26,9,249,9,193,10,135,11,84,12,161,12,59,12,218,11,252,11,108,12,18,13,29,14, +135,15,246,16,235,17,23,18,132,17,107,16,50,15,95,14,32,14,92,14,31,15,33,16,198,16,13,17,65,17,15,17, +96,16,225,15,233,15,71,16,220,16,109,17,201,17,13,18,240,17,0,17,172,15,75,14,142,12,4,11,178,10,53,11, +200,11,118,12,234,12,181,12,98,12,0,12,244,10,203,9,30,9,57,8,41,7,198,6,106,6,79,5,62,4,99,3, +14,2,236,0,159,0,55,0,157,255,191,255,232,255,229,254,66,253,188,251,26,250,169,248,38,248,68,248,26,248,126,247, +16,247,50,247,106,247,28,247,73,246,26,245,177,243,159,242,11,242,59,241,254,239,8,239,166,238,201,238,124,239,64,240, +91,240,205,239,240,238,247,237,52,237,179,236,64,236,234,235,136,235,185,234,245,233,193,233,154,233,86,233,128,233,218,233, +16,234,177,234,143,235,203,235,190,235,239,235,185,235,205,234,140,233,4,232,173,230,101,230,21,231,80,232,201,233,142,234, +141,234,91,235,25,237,89,238,97,239,218,240,136,241,13,241,141,240,178,239,27,238,140,237,133,238,38,239,9,239,74,239, +183,239,24,240,113,241,198,243,164,245,67,246,5,246,151,245,115,245,183,245,91,246,85,247,80,248,250,248,74,249,48,249, +198,248,132,248,157,248,11,249,3,250,51,251,227,251,99,252,86,253,126,254,190,255,92,1,218,2,175,3,14,4,204,3, +217,2,83,2,219,2,156,3,243,3,229,3,156,3,178,3,107,4,108,5,51,7,60,10,101,13,28,16,45,19,176,21, +32,22,190,21,218,21,58,21,118,19,244,17,32,17,13,17,100,18,82,20,88,21,201,21,80,22,166,22,41,23,97,24, +195,25,225,26,228,27,194,28,152,29,80,30,15,30,251,28,86,28,220,27,130,26,42,25,34,25,253,25,13,27,63,28, +43,29,134,29,189,29,29,30,155,30,69,31,42,32,56,33,38,34,170,34,218,34,196,34,2,34,186,32,158,31,154,30, +119,29,215,28,227,28,25,29,161,29,108,30,191,30,230,30,134,31,232,31,177,31,141,31,66,31,156,30,163,30,34,31, +190,30,206,29,210,28,197,26,252,23,19,22,169,20,253,18,57,18,209,18,159,19,113,20,123,21,222,21,43,21,10,20, +250,18,45,18,159,17,6,17,126,16,49,16,159,15,151,14,111,13,233,11,22,10,211,8,246,7,209,6,51,6,202,6, +158,7,76,8,85,9,21,10,188,9,196,8,140,7,216,5,1,4,174,2,254,1,165,1,45,1,77,0,247,254,242,252, +169,250,122,249,154,249,187,249,150,249,204,249,3,250,250,249,63,250,102,250,134,249,1,248,108,246,138,244,126,242,223,240, +207,239,42,239,188,238,95,238,46,238,206,237,193,236,203,235,154,235,112,235,130,235,40,237,124,239,151,240,252,240,57,241, +29,240,254,237,122,236,24,235,42,233,84,232,108,233,233,234,235,235,227,236,151,237,85,237,104,236,170,235,51,235,152,234, +123,234,215,235,156,237,20,238,2,238,170,238,24,239,164,238,27,238,26,237,23,235,193,233,21,234,160,234,4,235,77,236, +197,237,15,238,194,237,206,237,231,237,11,238,48,239,143,241,235,243,9,245,20,245,179,244,214,243,153,242,195,241,140,241, +199,241,210,242,84,244,58,245,251,245,210,247,22,250,142,251,108,252,234,252,184,252,99,252,236,252,95,254,7,0,98,1, +114,2,21,3,111,2,110,0,184,254,39,254,228,253,37,254,151,255,185,0,139,0,212,0,25,2,115,2,237,1,47,2, +200,2,201,2,49,3,147,4,196,5,44,6,104,6,146,6,246,5,136,4,90,3,18,3,2,3,232,2,152,3,234,4, +224,5,208,6,66,8,27,9,204,8,168,8,69,9,193,9,216,9,233,9,167,9,162,8,78,7,132,6,93,6,62,6, +17,6,62,6,93,6,215,5,93,5,145,5,184,5,105,5,17,5,81,4,180,2,19,1,30,0,135,255,62,255,77,255, +36,255,160,254,65,254,241,253,61,253,61,252,72,251,86,250,51,249,24,248,183,247,55,248,228,248,133,249,102,250,21,251, +54,251,100,251,122,251,145,250,58,249,108,248,145,247,84,246,123,245,209,244,209,243,120,243,30,244,92,244,3,244,100,244, +99,245,182,245,73,245,189,244,221,243,61,242,72,240,184,238,157,237,215,236,165,236,207,236,152,236,49,236,79,236,99,236, +233,235,214,235,93,236,77,236,235,235,129,236,91,237,55,237,215,236,16,237,27,237,151,236,99,236,200,236,40,237,76,237, +117,237,159,237,168,237,203,237,47,238,174,238,132,239,241,240,25,242,58,242,73,242,62,243,134,244,185,245,22,247,229,247, +86,247,5,246,191,244,197,243,138,243,226,243,224,243,189,243,127,244,13,246,245,247,46,250,17,252,244,252,57,253,17,253, +86,252,204,251,22,252,189,252,201,253,147,255,39,1,160,1,165,1,223,1,56,2,235,2,22,4,22,5,162,5,47,6, +40,7,187,8,176,10,21,12,42,12,129,11,90,11,36,12,80,13,42,14,117,14,113,14,188,14,157,15,84,16,75,16, +74,16,236,16,137,17,250,17,225,18,179,19,212,19,111,20,12,22,44,23,60,23,62,23,84,23,23,23,237,22,238,22, +170,22,94,22,120,22,219,22,75,23,138,23,133,23,138,23,113,23,0,23,52,23,150,24,197,25,56,26,29,27,18,28, +168,27,141,26,215,25,174,24,197,22,136,21,135,21,3,22,154,22,42,23,99,23,74,23,13,23,105,22,18,21,83,19, +248,17,93,17,226,16,26,16,138,15,45,15,248,13,199,11,163,9,210,7,231,5,101,4,66,4,236,4,171,4,84,3, +122,2,105,2,216,1,227,0,127,0,220,255,83,254,104,253,163,253,163,253,122,253,7,254,54,254,40,253,248,251,16,251, +196,249,140,248,62,248,138,248,209,248,205,248,176,248,21,249,167,249,48,249,229,247,205,246,141,245,240,243,25,243,10,243, +138,242,215,241,172,241,75,241,79,240,230,239,92,240,21,240,13,238,183,235,12,235,236,235,3,237,15,238,226,238,120,238, +45,237,138,236,35,236,225,234,254,233,172,234,171,235,3,236,39,236,3,236,163,235,74,236,34,238,84,239,217,238,187,237, +50,237,122,237,152,238,152,240,138,242,19,243,193,242,87,243,123,244,154,244,37,244,60,244,120,244,186,244,184,245,232,246, +131,247,33,248,212,248,160,248,203,247,132,247,212,247,241,247,179,247,241,247,99,249,22,251,157,251,159,251,45,252,127,252, +106,252,28,253,210,253,81,253,140,253,52,0,46,3,129,4,224,4,219,4,148,4,63,5,43,7,180,8,4,9,69,9, +116,10,237,11,181,12,47,13,37,14,238,14,211,14,217,14,176,15,133,16,123,17,130,19,165,21,87,22,238,21,51,21, +38,20,89,19,178,19,248,20,87,22,113,23,43,24,97,24,38,24,3,24,57,24,236,23,132,22,45,21,248,20,108,21, +131,22,187,24,239,26,228,27,92,28,227,28,170,28,181,27,215,26,102,26,206,26,1,28,190,28,160,28,174,28,37,29, +154,29,3,30,195,29,127,28,149,27,236,27,152,28,24,29,102,29,230,28,245,27,159,27,79,27,127,26,82,26,171,26, +7,26,244,24,219,24,250,24,121,24,253,23,89,23,169,21,197,19,20,19,36,19,245,18,209,18,2,19,193,18,22,18, +51,18,168,18,164,17,185,15,237,14,143,14,228,12,224,10,198,9,253,8,189,8,210,9,175,10,154,9,223,7,75,7, +89,7,187,6,75,5,183,3,61,2,131,0,21,255,245,254,18,255,185,253,8,252,134,251,255,250,211,249,142,249,232,249, +0,249,90,247,108,246,204,245,233,244,193,243,156,241,106,238,207,235,188,234,107,234,34,234,214,233,164,233,169,233,224,233, +19,234,200,233,116,232,138,230,112,229,108,229,83,229,177,228,13,228,183,227,202,227,227,227,2,227,49,225,154,223,107,222, +78,221,229,220,78,221,123,221,107,221,241,221,109,222,178,221,51,220,20,219,87,218,152,217,111,217,107,218,139,219,185,219, +153,219,134,219,118,218,227,216,81,216,93,215,102,212,37,210,22,211,0,213,28,214,217,215,241,217,101,218,226,217,196,217, +253,216,110,215,98,215,67,217,202,218,25,219,99,219,229,219,182,219,72,219,189,219,70,220,170,219,64,219,168,220,221,222, +219,224,112,227,34,230,16,231,118,230,195,229,162,228,145,226,238,224,52,225,84,227,62,230,214,232,161,234,151,235,127,235, +150,234,220,233,140,233,25,233,215,232,114,233,193,234,144,236,244,238,95,241,34,243,64,244,221,244,28,245,76,245,73,245, +11,245,147,245,161,247,54,250,225,251,105,252,121,252,196,252,168,253,44,255,5,1,199,2,98,4,72,6,108,8,36,10, +80,11,28,12,13,12,75,11,243,10,248,10,155,10,228,10,12,13,15,16,145,18,114,20,85,21,202,20,148,19,174,18, +89,18,148,18,32,19,181,19,169,20,16,22,40,23,175,23,215,23,63,23,14,22,115,21,212,21,211,22,203,24,179,27, +48,30,147,31,114,32,159,32,96,31,98,29,38,28,25,28,1,29,252,30,170,33,195,35,196,36,143,37,85,38,29,38, +6,37,49,36,137,35,104,34,92,33,235,32,167,32,180,32,125,33,243,33,246,32,90,31,82,30,172,29,37,29,97,29, +82,30,141,30,118,29,52,28,75,27,170,25,61,23,69,21,177,19,200,17,150,16,234,16,112,17,111,17,127,17,211,16, +92,14,63,11,105,8,51,5,103,2,209,1,245,2,150,4,41,7,92,10,44,12,24,12,22,11,248,8,168,5,5,3, +105,2,210,2,41,3,121,3,78,3,249,1,72,0,47,255,235,253,9,252,28,251,15,252,85,253,154,253,107,253,53,253, +87,252,124,250,252,247,85,245,29,243,216,241,132,241,227,241,207,242,229,243,80,244,111,243,153,241,156,239,164,237,198,235, +4,235,220,235,9,237,200,237,247,238,86,240,51,240,207,238,33,238,112,238,203,238,79,239,62,240,17,241,232,241,110,243, +36,245,29,246,117,246,112,246,194,245,198,244,126,244,203,244,253,244,232,245,176,248,24,252,209,253,137,253,26,252,170,249, +234,246,117,245,133,245,2,246,218,246,135,248,84,250,112,251,23,252,124,252,96,252,230,251,96,251,255,250,73,251,155,252, +75,254,111,255,212,255,140,255,189,254,60,254,233,254,136,0,158,2,113,5,216,8,136,11,237,12,239,13,215,14,160,14, +33,13,163,11,33,11,199,11,172,13,97,16,195,18,51,20,0,21,100,21,94,21,55,21,30,21,227,20,155,20,164,20, +201,20,139,20,49,20,92,20,231,20,125,21,109,22,128,23,169,23,253,22,205,22,250,22,62,22,241,20,130,20,247,20, +148,21,36,22,40,22,53,21,99,20,220,20,24,22,79,23,134,24,81,25,46,25,207,24,216,24,192,24,73,24,246,23, +170,23,35,23,30,23,37,24,133,25,129,26,12,27,32,27,191,26,37,26,64,25,212,23,36,22,169,20,148,19,218,18, +9,18,136,16,211,14,34,14,149,14,59,15,143,15,145,15,87,15,60,15,56,15,112,14,168,12,185,10,21,9,214,7, +140,7,227,7,114,7,95,6,23,6,35,6,30,5,220,3,176,3,206,3,79,3,199,2,75,2,33,1,161,255,179,254, +116,254,203,254,158,255,43,0,254,255,170,255,102,255,183,254,185,253,143,252,131,250,153,247,66,245,58,244,220,243,190,243, +232,243,249,243,190,243,124,243,239,242,106,241,51,239,94,237,119,236,10,236,82,235,13,234,169,232,174,231,48,231,243,230, +180,230,77,230,202,229,65,229,205,228,140,228,113,228,77,228,142,228,205,229,81,231,122,231,242,229,194,227,217,225,245,224, +165,225,51,227,58,228,109,228,36,228,94,227,187,226,34,227,135,227,21,226,149,223,56,222,34,222,117,222,145,223,94,225, +83,226,52,226,66,226,44,226,168,224,114,222,71,221,97,221,88,222,252,223,62,225,14,225,51,224,210,223,109,223,108,222, +170,221,219,221,109,222,25,223,147,224,210,226,86,228,52,228,106,227,65,227,161,227,214,227,188,227,179,227,80,228,12,230, +137,232,196,234,28,236,71,236,41,235,155,233,33,233,17,234,85,235,57,236,26,237,74,238,118,239,59,240,158,240,152,240, +243,239,24,239,10,239,230,239,202,240,150,241,3,243,3,245,191,246,158,247,66,247,206,245,121,244,118,244,180,245,107,247, +226,248,155,249,214,249,83,250,255,250,90,251,191,251,125,252,210,252,187,252,170,253,234,255,239,1,36,3,53,4,193,4, +28,4,81,3,62,3,9,3,184,2,206,3,30,6,244,7,20,9,215,9,133,9,97,8,227,7,184,7,168,6,186,5, +133,6,100,8,15,10,71,11,214,11,131,11,247,10,249,10,102,11,131,11,222,10,226,9,102,9,152,9,21,10,152,10, +159,10,172,9,120,8,249,7,231,7,24,8,79,9,51,11,44,12,244,11,141,11,25,11,35,10,15,9,137,8,165,8, +46,9,226,9,80,10,92,10,154,10,125,11,124,12,172,12,232,11,198,10,218,9,138,9,251,9,157,10,136,10,203,9, +156,9,124,10,53,11,225,10,148,10,60,11,223,11,242,11,95,12,166,12,74,11,125,9,62,9,94,9,64,8,65,7, +98,7,87,7,211,6,246,6,144,7,200,7,188,7,132,7,6,7,186,6,194,6,142,6,21,6,190,5,165,5,241,5, +166,6,64,7,113,7,113,7,90,7,121,7,29,8,147,8,48,8,220,7,94,8,183,8,65,8,254,7,91,8,114,8, +46,8,131,8,56,9,54,9,213,8,64,9,47,10,164,10,177,10,144,10,247,9,108,9,160,9,198,9,32,9,142,8, +170,8,233,8,90,9,112,10,155,11,67,12,161,12,190,12,76,12,117,11,187,10,123,10,184,10,248,10,239,10,245,10, +48,11,121,11,6,12,216,12,92,13,152,13,34,14,191,14,214,14,197,14,79,15,122,16,122,17,165,17,83,17,30,17, +167,16,188,15,99,15,12,16,247,16,37,18,207,19,208,20,124,20,242,19,195,19,90,19,230,18,203,18,126,18,232,17, +198,17,23,18,83,18,183,18,168,19,176,20,10,21,163,20,248,19,61,19,116,18,42,18,151,18,193,18,47,18,242,17, +101,18,136,18,77,18,159,18,88,19,242,19,214,20,255,21,55,22,3,21,154,19,2,19,157,18,162,17,200,16,193,16, +173,16,11,16,242,15,147,16,164,16,30,16,11,16,9,16,59,15,32,14,65,13,43,12,190,10,195,9,181,9,222,9, +113,9,251,8,69,9,136,9,37,9,11,9,1,9,124,7,142,5,116,5,0,6,31,5,216,3,32,3,238,1,192,0, +64,1,149,2,247,2,202,2,2,3,67,3,22,3,177,2,91,2,213,1,123,0,93,254,121,252,9,251,79,249,171,247, +69,247,208,247,23,248,219,247,60,247,244,245,130,244,41,244,201,244,199,244,206,243,15,243,123,242,12,241,108,239,178,238, +3,238,237,236,200,236,111,237,35,237,55,236,41,236,139,236,147,236,177,236,200,236,27,236,222,234,182,233,21,233,85,233, +10,234,121,234,186,234,177,234,216,233,246,232,240,232,202,232,245,231,129,231,48,231,198,229,32,228,170,227,205,227,219,227, +99,228,59,229,78,229,166,228,129,228,137,229,219,230,46,231,105,230,254,228,215,226,114,224,40,223,255,222,211,222,223,222, +44,224,74,226,11,228,28,229,145,229,97,229,199,228,101,228,159,228,235,228,135,228,14,228,187,228,80,230,146,231,13,232, +221,231,42,231,121,230,72,230,182,230,209,231,76,233,155,234,162,235,16,236,41,235,88,233,202,231,191,230,196,230,223,232, +190,235,18,237,136,237,170,238,149,239,175,239,31,240,114,240,12,239,192,236,194,235,152,236,148,238,46,241,200,243,138,245, +244,245,102,245,199,244,82,244,230,243,69,244,19,246,139,248,179,250,61,252,217,252,197,252,22,253,238,253,82,254,248,253, +108,253,114,253,225,254,138,1,45,4,64,6,193,7,239,7,169,6,29,5,217,3,236,2,68,3,68,5,200,7,224,9, +78,11,163,11,230,10,235,9,27,9,99,8,45,8,254,8,118,10,142,11,12,12,222,12,44,14,139,14,118,13,72,12, +190,11,111,11,179,11,7,13,196,14,84,16,193,17,179,18,167,18,179,17,139,16,39,16,196,16,126,17,5,18,219,18, +164,19,245,19,132,20,248,20,18,20,191,18,110,18,29,18,67,17,101,17,115,18,12,19,212,19,114,21,74,22,132,21, +40,20,123,18,66,16,104,14,175,13,165,13,230,13,148,14,103,15,165,15,3,15,32,14,121,13,154,12,71,11,43,10, +120,9,226,8,223,8,162,9,10,10,113,9,81,8,176,6,101,4,96,2,157,1,237,1,185,2,159,3,18,4,109,3, +216,1,155,0,91,0,219,255,59,254,193,252,92,252,44,252,209,251,167,251,16,251,118,249,92,247,248,244,73,242,234,239, +19,238,206,236,227,236,66,238,249,239,114,242,24,246,104,249,184,251,217,253,177,254,222,252,13,250,189,247,219,244,168,241, +49,240,69,240,55,240,17,240,66,240,22,240,116,239,112,239,115,240,179,241,154,242,144,243,216,244,143,245,236,244,118,243, +255,241,211,240,60,240,46,240,22,240,12,240,196,240,11,242,179,242,246,241,82,240,15,239,149,238,34,238,212,237,186,238, +171,240,9,243,111,246,137,250,52,253,184,253,60,253,47,252,178,250,190,249,192,249,74,250,20,251,155,251,96,251,27,251, +199,251,132,253,15,0,160,2,43,4,227,4,132,5,217,5,54,6,182,7,159,9,42,10,134,9,138,8,198,6,113,4, +45,3,126,3,53,4,210,4,95,6,123,9,219,12,241,14,173,15,7,15,139,12,214,9,117,9,203,10,215,11,18,13, +30,15,189,16,221,17,159,19,44,21,106,21,153,21,142,22,30,23,5,23,150,23,38,25,208,26,34,28,246,28,140,28, +171,26,8,25,109,25,57,27,20,29,23,31,11,33,165,33,28,33,117,32,0,31,98,28,70,26,83,25,196,24,77,25, +180,27,127,30,135,32,112,34,228,35,148,35,238,33,66,32,50,30,246,26,232,23,15,23,229,23,120,24,240,24,81,26, +144,27,179,27,143,27,182,26,1,24,176,21,166,22,144,25,43,28,167,30,133,32,65,32,140,30,169,28,2,26,159,22, +56,20,194,19,225,20,226,22,148,24,249,24,59,24,212,22,211,20,58,18,57,15,150,12,127,11,44,12,187,13,86,15, +42,16,94,15,45,13,121,10,122,7,98,4,11,2,230,0,171,0,59,1,161,2,79,4,247,4,148,3,155,0,128,253, +103,251,1,251,47,252,143,253,118,254,236,255,167,1,119,1,243,254,80,251,235,246,206,242,17,241,95,241,225,241,239,242, +60,245,140,247,34,249,34,250,149,249,237,246,154,243,229,240,13,239,93,238,171,238,57,239,213,239,86,240,10,240,157,238, +16,236,108,232,188,228,166,226,176,226,110,228,87,231,89,234,35,236,48,236,175,234,11,232,249,228,97,226,27,225,90,225, +116,226,221,227,132,229,194,230,237,230,202,230,254,230,130,230,216,228,60,227,150,226,12,227,255,228,12,232,96,234,167,234, +91,233,183,231,58,230,197,228,219,227,97,228,210,229,246,230,248,231,26,233,81,233,100,232,85,231,37,230,181,228,56,228, +9,229,101,230,130,232,47,235,167,236,154,236,92,236,181,235,253,233,119,232,245,231,180,231,231,231,96,233,62,235,119,236, +172,237,48,239,240,239,172,239,162,239,36,240,53,240,26,240,59,241,28,243,52,244,47,245,236,246,92,247,61,245,71,243, +135,243,119,244,23,245,121,246,107,248,119,249,177,249,3,250,39,250,138,249,195,248,141,248,149,248,133,248,0,249,34,250, +248,250,137,251,157,252,64,253,61,252,243,250,205,250,206,250,129,250,65,251,254,252,34,254,146,254,24,255,59,255,71,254, +224,252,75,252,1,253,127,254,27,0,118,1,23,2,153,1,93,0,32,255,74,254,254,253,199,253,231,252,5,252,134,252, +34,254,154,255,172,0,10,1,11,0,128,254,159,253,248,252,35,252,233,251,42,252,13,252,235,251,4,252,122,251,123,250, +52,250,52,250,115,249,240,248,233,249,83,251,232,251,92,252,37,253,237,252,64,251,217,249,182,249,220,249,243,249,156,250, +82,251,100,251,211,251,61,253,31,254,116,253,118,252,44,252,230,251,67,251,62,251,62,252,70,253,218,253,124,254,203,254, +193,253,6,252,18,251,179,250,63,250,121,250,186,251,184,252,149,252,216,251,41,251,153,250,187,249,96,248,165,247,202,248, +47,251,149,253,216,255,149,1,10,2,229,1,196,1,109,0,204,253,46,252,117,252,135,253,117,255,97,2,112,4,207,4, +43,5,237,5,183,5,236,4,0,5,129,5,182,5,174,6,203,8,91,10,95,10,194,9,82,9,238,8,132,8,78,8, +135,8,125,9,92,11,191,13,177,15,45,16,4,15,36,13,153,11,216,10,46,11,118,12,166,13,78,14,73,15,152,16, +15,17,191,16,131,16,215,15,132,14,19,14,233,14,129,15,6,16,12,18,221,20,133,22,253,22,245,22,55,22,114,21, +49,22,45,24,217,25,244,26,17,28,233,28,211,28,222,27,155,26,121,25,114,24,138,23,120,23,250,24,133,27,204,29, +74,31,55,32,138,32,249,31,121,30,98,28,97,26,79,25,176,25,29,27,104,28,178,28,75,28,232,27,115,27,119,26, +244,24,63,23,235,21,188,21,186,22,16,24,67,25,65,26,151,26,15,26,45,25,2,24,68,22,222,20,32,21,176,22, +71,24,91,25,194,25,45,25,216,23,91,22,216,20,110,19,185,18,245,18,156,19,117,20,167,21,178,22,182,22,190,21, +96,20,162,18,111,16,98,14,248,12,0,12,105,11,146,11,82,12,178,12,221,11,212,9,36,7,127,4,177,2,57,2, +169,2,32,3,91,3,151,3,196,3,136,3,146,2,181,0,122,254,219,252,12,252,166,251,191,251,108,252,94,253,178,254, +4,0,177,255,145,253,195,251,196,250,247,248,193,246,237,245,41,246,193,246,177,248,140,251,181,252,124,251,139,249,120,247, +215,244,106,242,62,241,22,241,68,241,169,241,17,242,181,241,31,240,8,238,134,236,192,235,96,235,118,235,211,235,225,235, +213,235,75,236,172,236,250,235,124,234,124,232,110,229,73,226,159,225,192,227,99,230,172,232,38,235,174,236,28,236,204,234, +161,233,119,231,242,228,162,228,120,230,109,232,77,234,101,236,175,237,61,238,51,239,112,239,11,237,90,233,91,231,144,231, +127,232,131,233,211,234,15,236,145,236,126,236,37,236,17,235,55,233,198,231,105,231,181,231,221,232,28,235,1,237,101,237, +74,237,57,237,246,235,95,233,4,231,157,229,44,229,102,230,103,233,188,236,31,239,124,240,8,241,211,240,239,239,117,238, +237,236,101,236,102,237,89,239,109,241,35,243,250,243,199,243,95,243,183,243,148,244,252,244,195,244,0,245,190,246,126,249, +178,251,158,252,152,252,199,251,81,250,235,248,170,247,55,246,231,245,82,248,227,251,246,253,203,254,112,255,243,254,26,253, +148,251,167,250,65,249,77,248,120,249,26,252,209,254,138,1,224,3,146,4,181,3,124,2,33,1,142,255,213,254,153,255, +175,0,117,1,17,3,168,5,54,7,250,6,148,6,188,6,119,6,255,5,152,6,230,7,240,8,127,10,15,13,154,14, +106,13,177,10,78,8,185,6,50,6,17,7,128,8,126,9,184,10,205,12,69,14,170,13,240,11,152,10,130,9,101,8, +251,7,100,8,213,8,145,9,72,11,187,12,66,12,173,10,93,9,181,7,124,5,125,4,98,5,193,6,50,8,62,10, +202,11,156,11,185,10,52,10,64,9,97,7,224,5,7,6,192,7,13,10,198,11,80,12,218,11,181,10,248,8,229,6, +214,4,247,2,205,1,58,2,37,4,24,6,229,6,155,6,136,5,180,3,128,1,128,255,249,253,95,253,69,254,12,0, +30,1,1,1,157,0,65,0,30,255,17,253,39,251,244,249,3,249,118,248,13,249,73,250,15,251,161,251,40,252,59,251, +180,248,166,246,209,245,86,245,167,245,39,247,18,248,182,247,196,247,92,248,191,247,37,246,52,245,233,244,115,244,254,243, +197,243,119,243,32,243,53,243,176,243,210,243,38,243,108,242,179,242,222,243,44,245,108,246,160,247,156,248,87,249,116,249, +5,248,44,245,186,242,1,242,70,242,113,242,204,242,237,243,108,245,219,246,33,248,64,248,142,246,216,244,1,245,4,246, +133,246,4,247,164,247,229,247,143,248,239,249,116,250,194,249,87,249,65,249,154,248,30,248,171,248,124,249,229,249,68,250, +201,250,75,251,218,251,142,252,64,253,209,253,107,254,81,255,111,0,147,1,181,2,139,3,206,3,44,4,43,5,244,5, +249,5,19,6,165,6,55,7,166,7,207,7,156,7,253,7,148,9,90,11,117,12,26,13,101,13,158,13,82,14,240,14, +174,14,70,14,99,14,137,14,148,14,161,14,78,14,247,13,168,14,65,16,223,17,26,19,137,19,237,18,13,18,207,17, +71,18,38,19,10,20,146,20,180,20,170,20,184,20,22,21,130,21,183,21,56,22,76,23,50,24,124,24,132,24,124,24, +156,24,1,25,240,24,47,24,207,23,25,24,127,24,136,25,89,27,63,28,107,27,14,26,228,24,209,23,22,23,200,22, +191,22,70,23,79,24,248,24,183,24,248,23,119,23,50,23,59,22,139,20,168,19,232,19,20,20,90,20,83,21,127,21, +24,20,242,18,147,18,100,17,106,15,4,14,104,13,136,13,170,14,34,16,250,16,61,17,76,17,33,17,125,16,64,15, +207,13,137,12,41,11,212,9,50,9,231,8,118,8,156,8,60,9,231,8,181,7,176,6,68,5,26,3,237,1,178,2, +252,3,86,4,172,3,102,2,145,0,56,254,39,252,37,251,161,250,250,249,226,249,132,250,254,250,103,251,209,251,200,250, +50,248,64,246,132,245,165,244,226,243,115,244,241,245,41,247,157,247,11,247,51,245,159,242,229,240,249,240,154,241,103,241, +111,241,171,242,185,243,238,243,74,244,42,244,95,242,88,240,158,239,100,239,55,239,205,239,217,240,136,241,205,241,193,241, +81,241,62,240,56,238,50,236,188,235,65,236,54,236,53,236,74,237,153,238,79,239,170,239,141,239,203,238,240,237,43,237, +36,236,46,235,46,235,118,236,86,238,244,239,62,241,41,242,1,242,25,241,237,240,67,241,193,240,33,240,126,240,182,240, +46,240,94,240,153,241,149,242,24,243,159,243,239,243,14,244,179,244,255,245,48,247,190,247,2,248,79,248,225,247,68,246, +196,244,115,244,164,244,251,244,247,245,12,247,100,247,126,247,219,247,29,248,58,248,129,248,235,248,61,249,54,249,0,249, +54,249,146,249,95,249,123,249,161,250,95,251,3,251,228,250,252,250,79,250,244,249,176,250,4,251,217,250,225,251,145,253, +25,254,235,253,73,254,245,254,77,255,56,255,230,254,220,254,65,255,79,255,179,254,65,254,119,254,221,254,253,254,187,254, +227,253,148,252,186,251,235,251,101,252,147,252,53,253,122,254,44,255,255,254,202,254,74,254,217,252,50,251,21,250,106,249, +141,249,177,250,180,251,208,251,172,251,200,251,246,251,241,251,94,251,67,250,95,249,15,249,40,249,192,249,156,250,241,250, +171,250,63,250,109,249,18,248,244,246,212,246,206,247,126,249,246,250,144,251,132,251,3,251,222,249,124,248,118,247,175,246, +202,245,188,244,193,243,114,243,51,244,113,245,120,246,53,247,113,247,223,246,248,245,115,245,152,245,124,246,164,247,249,247, +65,247,66,246,71,245,89,244,58,244,31,245,212,245,139,245,250,244,226,244,71,245,47,246,139,247,144,248,150,248,25,248, +210,247,137,247,204,246,22,246,84,246,247,247,147,250,194,252,17,253,191,251,126,250,36,250,231,249,25,249,45,248,230,247, +136,248,242,249,170,251,228,252,55,253,61,253,146,253,201,253,147,253,180,253,94,254,164,254,178,254,177,255,244,0,203,0, +172,255,246,254,103,254,179,253,244,253,128,255,46,1,110,2,150,3,140,4,21,5,107,5,176,5,220,5,2,6,52,6, +129,6,204,6,166,6,70,6,192,6,22,8,20,9,160,9,109,10,2,11,35,11,244,11,79,13,89,13,10,12,62,11, +124,11,32,12,42,13,94,14,229,14,239,14,98,15,27,16,96,16,77,16,163,16,188,17,255,18,60,19,32,18,215,16, +166,16,177,17,124,19,111,21,171,22,203,22,200,22,180,23,19,25,218,25,0,26,156,25,95,24,244,22,163,22,43,23, +131,23,234,23,201,24,109,25,144,25,197,25,255,25,37,26,13,27,188,28,146,29,188,28,61,27,0,26,0,25,121,24, +221,24,132,25,78,25,173,24,211,24,85,25,38,25,188,24,175,24,93,24,226,23,73,24,28,25,31,25,146,24,20,24, +144,23,68,23,80,23,0,23,74,22,25,22,163,22,116,23,10,24,151,23,250,21,61,20,214,18,158,17,55,17,178,17, +200,17,105,17,202,17,124,18,33,18,235,16,160,15,68,14,37,13,207,12,184,12,199,11,201,9,170,7,116,6,79,6, +117,6,44,6,131,5,5,5,233,4,203,4,95,4,238,3,172,3,125,3,89,3,206,2,24,1,194,254,52,253,146,252, +90,252,155,252,203,252,16,252,50,251,32,251,14,251,113,250,239,249,121,249,141,248,151,247,5,247,180,246,170,246,162,246, +255,245,224,244,173,243,93,242,45,241,130,240,46,240,14,240,56,240,130,240,234,240,65,241,162,240,3,239,166,237,197,236, +180,235,245,234,75,235,139,236,174,238,21,241,173,241,169,239,165,236,230,233,214,231,93,231,153,232,56,234,108,235,64,236, +124,236,34,236,200,235,198,235,9,236,107,236,197,236,2,237,17,237,23,237,153,237,99,238,70,238,32,237,18,236,51,235, +11,234,131,233,133,234,94,236,57,238,232,239,12,241,87,241,1,241,54,240,255,238,165,237,216,236,92,237,0,239,180,240, +41,242,112,243,160,243,168,242,51,242,90,242,116,241,244,239,162,239,96,240,125,241,69,243,85,245,190,246,119,247,161,247, +29,247,57,246,69,245,160,244,29,245,187,246,164,248,225,250,35,253,168,253,15,252,248,249,235,247,187,245,125,244,218,244, +79,246,14,249,251,252,15,0,200,0,201,255,243,253,144,251,120,249,178,248,72,249,107,250,168,251,38,253,154,254,40,255, +170,254,173,253,64,252,156,250,213,249,103,250,223,251,251,253,75,0,219,1,66,2,148,1,225,255,195,253,2,252,218,250, +238,250,207,252,96,255,105,1,24,3,247,3,235,2,220,0,111,255,108,254,85,253,215,252,73,253,85,254,206,255,82,1, +111,2,25,3,24,3,6,2,34,0,37,254,225,252,212,252,91,253,190,253,171,254,103,0,110,1,210,0,112,255,21,254, +242,252,71,252,34,252,161,252,221,253,42,255,68,0,214,1,211,2,19,1,104,253,96,250,57,248,188,246,126,247,157,250, +221,253,40,0,161,1,143,1,224,255,71,254,122,253,95,252,215,250,64,250,222,250,179,251,205,252,162,254,218,255,12,255, +59,253,159,251,210,249,84,248,219,248,21,251,18,253,84,254,34,255,191,254,200,252,107,250,22,249,230,248,234,248,218,248, +127,249,187,250,96,251,127,251,163,251,5,251,201,249,228,249,58,251,195,251,221,251,253,252,30,254,58,254,165,254,221,255, +94,0,198,255,83,255,53,255,121,254,43,253,128,252,212,252,98,253,51,254,246,255,153,1,86,1,232,255,69,255,91,255, +69,255,129,255,121,0,104,1,240,1,143,2,53,3,53,3,148,2,248,1,72,1,218,255,79,254,52,254,77,255,8,0, +164,0,104,2,118,4,27,5,213,4,221,4,228,4,156,4,3,5,85,6,61,7,53,7,73,7,177,7,105,7,136,6, +28,6,32,6,121,6,0,8,35,10,169,10,128,9,213,8,66,9,244,9,32,11,218,12,4,14,95,14,206,14,26,15, +72,14,190,12,218,11,10,12,181,12,96,13,251,13,74,14,59,14,123,14,83,15,186,15,38,15,163,14,207,14,29,15, +162,15,203,16,192,17,188,17,91,17,249,16,35,16,67,15,85,15,66,16,116,17,193,18,200,19,20,20,246,19,226,19, +193,19,176,19,236,19,248,19,135,19,107,19,17,20,188,20,25,21,126,21,113,21,118,20,115,19,58,19,37,19,192,18, +188,18,106,19,49,20,192,20,72,21,183,21,176,21,14,21,251,19,143,18,220,16,139,15,119,15,76,16,9,17,201,17, +218,18,248,18,74,17,91,15,114,14,123,13,251,11,159,11,253,12,102,14,254,14,125,15,201,15,253,14,86,13,168,11, +40,10,8,9,189,8,255,8,84,9,2,10,248,10,12,11,155,9,143,7,10,6,87,5,53,5,63,5,59,5,102,5, +15,6,189,6,106,6,196,4,157,2,208,0,140,255,204,254,119,254,40,254,217,253,21,254,192,254,237,254,64,254,6,253, +145,251,103,250,226,249,118,249,171,248,232,247,125,247,113,247,241,247,120,248,23,248,2,247,203,245,58,244,202,242,186,242, +169,243,108,244,73,245,65,246,220,245,250,243,72,242,21,241,130,239,72,238,192,238,138,240,127,242,71,244,139,245,144,245, +104,244,234,242,92,241,153,239,13,238,55,237,25,237,192,237,9,239,48,240,192,240,214,240,30,240,133,238,72,237,48,237, +123,237,204,237,142,238,99,239,169,239,163,239,149,239,74,239,180,238,7,238,205,237,154,238,208,239,61,240,28,240,62,240, +109,240,108,240,140,240,130,240,18,240,236,239,85,240,219,240,162,241,226,242,246,243,80,244,60,244,43,244,48,244,242,243, +88,243,31,243,164,243,27,244,65,244,220,244,228,245,170,246,54,247,126,247,4,247,36,246,199,245,32,246,14,247,110,248, +177,249,114,250,173,250,49,250,35,249,61,248,176,247,52,247,57,247,101,248,94,250,31,252,244,252,237,252,137,252,16,252, +165,251,134,251,110,251,230,250,109,250,202,250,186,251,171,252,112,253,201,253,175,253,167,253,221,253,51,254,171,254,240,254, +244,254,91,255,155,255,102,254,158,252,4,252,23,252,41,252,46,253,225,254,121,255,8,255,20,255,187,255,26,0,241,255, +143,255,20,255,78,254,132,253,157,253,63,254,0,254,71,253,140,253,35,254,236,253,176,253,135,253,103,252,107,251,67,252, +156,253,197,253,163,253,240,253,191,253,238,252,97,252,242,251,245,250,21,250,144,250,37,252,127,253,253,253,170,253,145,252, +125,251,101,251,135,251,194,250,236,249,250,249,110,250,66,251,213,252,250,253,156,253,170,252,27,252,164,251,7,251,98,250, +198,249,103,249,72,249,60,249,64,249,194,248,50,247,215,245,77,246,230,247,82,249,92,250,212,250,217,250,137,251,166,252, +41,252,150,249,163,246,171,244,235,243,251,243,29,244,7,244,8,244,144,244,46,246,143,248,246,249,186,249,150,249,169,250, +236,251,102,252,58,252,252,251,61,252,232,252,106,253,187,253,131,253,211,251,151,249,29,249,75,250,108,251,148,252,79,254, +185,255,90,0,157,0,14,0,81,254,151,252,15,252,157,252,239,253,212,255,121,1,7,2,19,2,164,2,14,3,221,1, +107,255,69,253,33,252,106,252,112,254,250,0,116,2,32,3,199,3,135,4,165,5,199,6,220,6,193,6,69,8,107,10, +35,11,194,10,46,10,48,9,66,8,53,8,122,8,124,8,171,8,122,9,51,11,173,13,170,15,86,16,100,16,98,16, +33,16,215,15,130,15,136,14,89,13,78,13,156,14,60,16,69,17,127,17,65,17,254,16,255,16,102,17,178,17,9,17, +7,16,93,16,6,18,133,19,134,20,122,21,231,21,102,21,149,20,254,19,136,19,69,19,206,19,134,21,200,23,108,25, +24,26,27,26,113,25,63,24,60,23,182,22,145,22,24,23,76,24,110,25,32,26,157,26,189,26,248,25,62,24,59,22, +216,20,115,20,222,20,235,21,233,22,174,22,132,21,245,20,15,21,227,20,207,20,69,21,99,21,235,20,172,20,172,20, +142,20,103,20,202,19,73,18,187,16,222,15,68,15,200,14,221,14,95,15,206,15,12,16,48,16,80,16,57,16,123,15, +116,14,10,14,252,13,107,13,181,12,120,12,31,12,90,11,245,10,6,11,146,10,139,9,197,8,21,8,176,6,17,5, +88,4,95,4,77,4,47,4,65,4,228,3,199,2,154,1,180,0,146,255,67,254,178,253,3,254,13,254,57,253,121,252, +72,252,169,251,90,250,120,249,14,249,66,248,182,247,53,248,164,248,97,248,131,248,216,248,230,247,81,246,214,245,14,246, +184,245,7,245,128,244,243,243,66,243,114,242,99,241,87,240,191,239,130,239,66,239,223,238,93,238,249,237,11,238,72,238, +6,238,76,237,187,236,163,236,35,237,82,238,149,239,224,239,58,239,160,238,74,238,185,237,24,237,245,236,8,237,204,236, +130,236,126,236,89,236,196,235,75,235,138,235,73,236,6,237,157,237,21,238,166,238,214,239,138,241,137,242,16,242,214,240, +161,239,145,238,226,237,174,237,92,237,200,236,164,236,37,237,209,237,123,238,37,239,172,239,37,240,228,240,248,241,248,242, +48,243,158,242,101,242,26,243,179,243,101,243,207,242,100,242,39,242,175,242,233,243,105,244,248,243,76,244,222,245,54,247, +207,247,102,248,218,248,186,248,197,248,137,249,93,250,11,251,12,252,3,253,135,253,43,254,194,254,37,254,150,252,99,251, +187,250,154,250,135,251,213,252,94,253,201,253,247,254,5,0,49,0,216,255,47,255,181,254,134,255,68,1,46,2,226,1, +107,1,28,1,176,0,121,0,212,0,23,1,85,0,34,255,31,255,93,0,89,1,176,1,60,2,238,2,51,3,59,3, +30,3,161,2,50,2,91,2,215,2,63,3,92,3,241,2,62,2,231,1,241,1,249,1,242,1,12,2,105,2,234,2, +14,3,188,2,129,2,131,2,93,2,8,2,174,1,43,1,109,0,118,255,103,254,229,253,112,254,96,255,173,255,25,255, +15,254,20,253,84,252,156,251,254,250,212,250,16,251,133,251,40,252,124,252,48,252,223,251,181,251,10,251,24,250,156,249, +85,249,217,248,25,248,194,246,55,245,183,244,32,245,65,245,60,245,172,245,85,246,64,247,131,248,107,249,232,249,129,250, +126,250,89,249,65,248,208,247,52,247,111,246,34,246,237,245,57,245,70,244,166,243,191,243,106,244,20,245,216,245,35,247, +101,248,202,248,102,248,127,247,64,246,39,245,126,244,32,244,6,244,220,243,35,243,129,242,4,243,27,244,103,244,236,243, +222,243,190,244,212,245,164,246,130,247,53,248,20,248,229,247,222,248,70,250,23,251,196,251,55,252,166,251,215,250,233,250, +123,251,64,252,62,253,144,253,13,253,4,253,160,253,242,253,39,254,197,254,197,255,89,1,42,3,25,4,71,4,189,4, +74,5,86,5,251,4,255,3,67,2,190,0,60,0,187,0,17,2,184,3,13,5,42,6,39,7,175,7,235,7,9,8, +191,7,166,7,200,8,163,10,0,12,122,12,240,11,165,10,168,9,76,9,7,9,64,9,181,10,232,12,245,14,103,16, +233,16,158,16,64,16,66,16,225,16,44,18,111,19,228,19,244,19,137,20,192,21,224,22,70,23,11,23,126,22,125,21, +78,20,152,19,29,19,173,18,94,19,36,21,78,22,204,22,141,23,170,23,213,22,7,23,132,24,98,25,108,25,113,25, +249,24,41,24,16,24,73,24,193,23,135,22,45,21,111,20,211,20,154,21,24,22,233,22,250,23,146,24,128,25,35,27, +105,27,142,25,202,23,51,23,196,22,130,22,42,23,254,23,33,24,72,24,235,24,186,24,200,22,138,20,180,19,240,19, +147,20,209,21,227,22,150,22,191,21,148,21,58,21,207,19,16,18,169,16,201,15,232,15,203,16,79,17,230,16,223,15, +190,14,212,13,199,12,40,11,133,9,171,8,193,8,167,9,170,10,188,10,58,10,20,10,166,9,88,8,64,7,174,6, +164,5,108,4,23,4,100,4,106,4,152,3,183,1,145,255,68,254,218,253,43,254,87,255,125,0,155,0,73,0,52,0, +238,255,46,255,252,253,78,252,177,250,160,249,127,248,25,247,79,246,75,246,110,246,165,246,223,246,134,246,112,245,8,244, +189,242,230,241,117,241,31,241,20,241,174,241,139,242,227,242,76,242,227,240,66,239,228,237,182,236,198,235,114,235,170,235, +41,236,242,236,193,237,27,238,253,237,156,237,47,237,245,236,200,236,146,236,18,237,121,238,186,239,101,240,174,240,219,239, +141,237,237,234,185,232,6,231,243,230,18,233,178,235,72,237,4,238,19,238,46,237,208,235,249,234,43,235,18,236,217,236, +46,237,116,237,199,237,248,237,246,237,90,237,2,236,7,235,23,235,102,235,214,235,52,237,235,238,225,239,162,240,179,241, +23,242,108,241,196,240,151,240,128,240,181,240,155,241,163,242,82,243,55,244,132,245,19,246,70,245,15,244,41,243,122,242, +75,242,182,242,3,243,145,243,140,245,243,247,192,248,121,248,146,248,122,248,147,247,212,246,155,246,94,246,176,246,89,248, +120,250,232,251,196,252,244,252,134,251,217,248,11,247,30,247,35,248,210,249,172,252,144,255,214,0,243,0,189,0,127,255, +89,253,55,252,193,252,206,253,6,255,205,0,146,2,111,3,121,3,32,3,65,2,172,0,30,255,169,254,37,255,191,255, +192,0,99,2,83,3,219,2,86,2,93,2,201,1,160,0,56,0,153,0,8,1,192,1,208,2,119,3,163,3,185,3, +77,3,60,2,136,1,114,1,13,1,154,0,106,1,28,3,47,4,204,4,204,5,90,6,104,5,168,3,12,2,169,0, +232,255,111,0,204,1,51,3,183,4,99,6,82,7,190,6,0,5,230,2,222,0,86,255,38,255,110,0,249,1,248,2, +24,4,126,5,183,5,244,3,71,1,36,255,62,254,150,254,165,255,253,0,168,2,27,4,32,4,185,2,91,1,181,0, +40,0,101,255,230,254,247,254,128,255,95,0,71,1,194,1,171,1,55,1,122,0,128,255,225,254,70,255,92,0,76,1, +244,1,89,2,234,1,195,0,35,0,63,0,183,255,75,254,124,253,207,253,62,254,132,254,44,255,233,255,43,0,28,0, +157,255,67,254,161,252,138,251,212,250,114,250,250,250,12,252,182,252,54,253,13,254,71,254,223,252,110,250,68,248,25,247, +248,246,128,247,91,248,115,249,95,250,97,250,129,249,178,248,142,248,209,248,243,248,228,248,71,249,179,250,191,252,114,254, +92,255,113,255,204,254,11,254,192,253,122,253,206,252,161,252,175,253,12,255,138,255,53,255,142,254,237,253,190,253,19,254, +98,254,109,254,119,254,148,254,206,254,65,255,125,255,32,255,215,254,65,255,205,255,227,255,156,255,228,254,197,253,34,253, +123,253,28,254,123,254,247,254,198,255,143,0,32,1,193,1,210,2,14,4,182,4,210,4,63,5,50,6,50,7,49,8, +26,9,103,9,73,9,125,9,180,9,96,9,75,9,62,10,134,11,82,12,174,12,173,12,165,12,116,13,210,14,73,15, +202,14,171,14,217,14,89,14,221,13,136,14,128,15,155,15,80,15,34,15,185,14,96,14,159,14,182,14,225,13,232,12, +175,12,248,12,128,13,121,14,189,15,201,16,80,17,70,17,201,16,65,16,25,16,108,16,42,17,86,18,192,19,211,20, +32,21,230,20,124,20,214,19,33,19,212,18,234,18,83,19,129,20,17,22,151,22,252,21,134,21,18,21,125,19,88,17, +32,16,228,15,22,16,202,16,184,17,48,18,92,18,149,18,8,18,248,15,127,13,58,12,44,12,71,12,54,12,96,12, +178,12,162,12,244,11,200,10,76,9,220,7,231,6,107,6,17,6,243,5,153,6,17,8,140,9,14,10,72,9,171,7, +7,6,213,4,222,3,22,3,47,3,98,4,165,5,55,6,108,6,69,6,75,5,206,3,90,2,211,0,135,255,64,255, +177,255,12,0,153,0,113,1,81,1,130,255,226,252,70,250,224,247,37,246,128,245,173,245,72,246,41,247,230,247,219,247, +177,246,168,244,105,242,151,240,134,239,100,239,45,240,115,241,187,242,224,243,173,244,158,244,131,243,218,241,72,240,62,239, +9,239,163,239,155,240,149,241,119,242,237,242,156,242,203,241,237,240,228,239,205,238,141,238,80,239,52,240,15,241,99,242, +116,243,25,243,220,241,206,240,187,239,131,238,62,238,82,239,143,240,38,241,149,241,31,242,16,242,252,240,103,239,220,237, +127,236,177,235,236,235,237,236,49,238,215,239,196,241,246,242,200,242,197,241,165,240,177,239,64,239,169,239,236,240,176,242, +80,244,82,245,235,245,107,246,115,246,178,245,194,244,150,244,139,245,104,247,157,249,133,251,209,252,141,253,193,253,103,253, +187,252,27,252,157,251,52,251,71,251,65,252,164,253,150,254,224,254,149,254,173,253,178,252,63,252,232,251,98,251,158,251, +33,253,225,254,4,0,200,0,55,1,19,1,182,0,152,0,132,0,80,0,120,0,103,1,171,2,126,3,171,3,108,3, +225,2,80,2,66,2,186,2,56,3,188,3,185,4,43,6,161,7,189,8,45,9,215,8,1,8,243,6,224,5,50,5, +67,5,242,5,221,6,160,7,238,7,181,7,233,6,122,5,204,3,162,2,102,2,227,2,115,3,118,3,35,3,62,3, +170,3,117,3,101,2,26,1,245,255,24,255,220,254,86,255,250,255,16,0,124,255,187,254,7,254,27,253,76,252,120,252, +145,253,169,254,64,255,87,255,251,254,126,254,2,254,28,253,232,251,30,251,178,250,17,250,126,249,167,249,125,250,63,251, +38,251,60,250,132,249,127,249,57,249,10,248,200,246,75,246,118,246,8,247,189,247,193,247,178,246,153,245,87,245,8,245, +219,243,23,243,13,244,161,245,76,246,98,246,109,246,242,245,246,244,27,244,58,243,33,242,123,241,117,241,69,241,228,240, +92,241,242,242,104,244,178,244,85,244,65,244,65,244,250,243,29,244,6,245,241,245,91,246,42,246,32,245,239,243,168,243, +140,243,185,242,212,242,15,245,96,247,14,248,15,248,9,248,93,247,127,246,76,246,35,246,136,245,172,245,50,247,183,248, +54,249,143,249,91,250,148,250,165,249,136,248,14,248,38,248,224,248,38,250,28,251,90,251,158,251,108,252,86,253,218,253, +0,254,18,254,50,254,103,254,250,254,48,0,137,1,57,2,51,2,239,1,186,1,148,1,61,1,200,0,4,1,70,2, +182,3,225,4,51,6,145,7,153,8,83,9,58,9,232,7,235,6,202,7,108,9,43,10,58,10,67,10,69,10,81,10, +113,10,80,10,235,9,195,9,62,10,85,11,136,12,151,13,6,15,202,16,136,17,155,16,27,15,13,14,186,13,129,14, +82,16,57,18,162,19,177,20,17,21,97,20,126,19,124,19,242,19,21,20,111,20,147,21,160,22,8,23,185,23,5,25, +227,25,254,25,195,25,249,24,202,23,128,23,114,24,118,25,228,25,251,25,179,25,240,24,10,24,115,23,76,23,113,23, +211,23,155,24,119,25,220,25,57,26,6,27,66,27,54,26,238,24,0,24,223,22,5,22,70,22,212,22,248,22,88,23, +252,23,8,24,147,23,42,23,175,22,20,22,169,21,126,21,181,21,147,22,192,23,121,24,97,24,118,23,247,21,114,20, +48,19,6,18,25,17,22,17,38,18,67,19,63,19,246,17,19,16,51,14,197,12,245,11,127,11,66,11,115,11,210,11, +228,11,183,11,40,11,171,9,150,7,220,5,146,4,120,3,245,2,17,3,9,3,144,2,37,2,40,2,55,2,128,1, +22,0,54,255,36,255,198,254,24,254,27,254,96,254,241,253,66,253,170,252,111,251,173,249,105,248,191,247,38,247,154,246, +63,246,6,246,193,245,28,245,16,244,12,243,75,242,212,241,204,241,240,241,181,241,93,241,100,241,48,241,2,240,91,238, +26,237,27,236,236,234,0,234,252,233,114,234,181,234,33,235,41,236,40,237,120,237,50,237,88,236,240,234,177,233,61,233, +125,233,82,234,156,235,179,236,7,237,160,236,179,235,111,234,47,233,134,232,244,232,44,234,43,235,157,235,246,235,22,236, +192,235,173,235,10,236,217,235,6,235,148,234,167,234,220,234,125,235,95,236,127,236,182,235,16,235,32,235,92,235,59,235, +38,235,188,235,176,236,152,237,218,238,68,240,150,240,248,239,20,240,22,241,187,241,20,242,1,243,16,244,127,244,199,244, +76,245,85,245,160,244,61,244,199,244,138,245,73,246,164,247,52,249,250,249,121,250,117,251,229,251,16,251,85,250,133,250, +170,250,128,250,241,250,8,252,0,253,173,253,64,254,134,254,76,254,205,253,89,253,240,252,162,252,246,252,56,254,196,255, +223,0,131,1,242,1,102,2,242,2,32,3,173,2,91,2,173,2,34,3,146,3,81,4,215,4,156,4,79,4,119,4, +126,4,23,4,243,3,162,4,213,5,217,6,91,7,143,7,154,7,113,7,34,7,123,6,59,5,254,3,179,3,79,4, +91,5,145,6,43,7,132,6,74,5,93,4,152,3,238,2,208,2,21,3,61,3,110,3,222,3,33,4,195,3,248,2, +108,2,69,2,226,1,8,1,116,0,141,0,234,0,101,1,251,1,3,2,20,1,220,255,250,254,47,254,107,253,71,253, +236,253,178,254,78,255,17,0,137,0,170,255,214,253,146,252,29,252,192,251,146,251,215,251,7,252,226,251,190,251,172,251, +168,251,215,251,203,251,238,250,121,249,53,248,214,247,121,248,43,249,241,248,58,248,231,247,204,247,96,247,136,246,112,245, +160,244,168,244,73,245,7,246,217,246,113,247,81,247,181,246,247,245,239,244,196,243,227,242,86,242,100,242,125,243,227,244, +89,245,255,244,168,244,83,244,183,243,33,243,3,243,175,243,67,245,51,247,165,248,169,249,254,250,80,252,92,252,20,251, +192,249,224,248,28,248,202,247,74,248,237,248,57,249,162,249,24,250,231,249,21,249,106,248,90,248,185,248,49,249,248,249, +124,251,43,253,237,253,211,253,103,253,114,252,47,251,159,250,192,250,2,251,185,251,218,252,133,253,245,253,27,255,79,0, +92,0,186,255,158,255,53,0,248,0,206,1,65,3,96,5,30,7,213,7,48,8,118,8,4,8,37,7,199,6,175,6, +132,6,38,7,223,8,110,10,34,11,130,11,161,11,41,11,165,10,198,10,54,11,135,11,30,12,37,13,37,14,21,15, +27,16,148,16,251,15,198,14,111,13,80,12,82,12,171,13,36,15,65,16,176,17,1,19,246,18,224,17,31,17,43,17, +164,17,57,18,236,18,229,19,0,21,245,21,215,22,110,23,17,23,29,22,155,21,92,21,244,20,76,21,219,22,161,24, +3,26,250,26,222,26,119,25,193,23,96,22,71,21,203,20,49,21,12,22,248,22,200,23,41,24,0,24,117,23,105,22, +232,20,176,19,98,19,196,19,82,20,231,20,154,21,79,22,200,22,217,22,101,22,111,21,49,20,253,18,39,18,10,18, +154,18,61,19,132,19,125,19,60,19,219,18,137,18,255,17,22,17,120,16,115,16,109,16,138,16,108,17,103,18,108,18, +168,17,113,16,173,14,213,12,132,11,166,10,98,10,235,10,94,11,222,10,202,9,147,8,29,7,182,5,241,4,174,4, +54,4,62,3,121,2,167,2,33,3,178,2,144,1,129,0,41,255,77,253,248,251,213,251,118,252,104,253,38,254,233,253, +205,252,194,251,226,250,169,249,106,248,227,247,234,247,254,247,79,248,248,248,62,249,191,248,250,247,254,246,92,245,145,243, +130,242,2,242,147,241,68,241,234,240,58,240,132,239,237,238,19,238,56,237,7,237,63,237,39,237,157,236,241,235,157,235, +232,235,85,236,76,236,244,235,143,235,231,234,241,233,9,233,139,232,157,232,0,233,107,233,7,234,166,234,101,234,78,233, +160,232,213,232,93,233,0,234,156,234,208,234,221,234,92,235,61,236,73,237,126,238,89,239,73,239,199,238,128,238,43,238, +100,237,209,236,50,237,250,237,41,238,252,237,63,238,208,238,109,239,166,240,84,242,32,243,170,242,229,241,50,241,68,240, +112,239,70,239,176,239,112,240,169,241,70,243,108,244,113,244,27,244,154,244,164,245,80,246,208,246,141,247,26,248,113,248, +24,249,202,249,10,250,98,250,86,251,108,252,38,253,167,253,53,254,2,255,29,0,55,1,198,1,118,1,154,0,228,255, +172,255,245,255,233,0,65,2,45,3,171,3,101,4,43,5,114,5,111,5,30,5,53,4,155,3,93,4,168,5,68,6, +119,6,196,6,186,6,42,6,167,5,111,5,36,5,211,4,79,5,219,6,111,8,43,9,104,9,141,9,90,9,199,8, +29,8,107,7,230,6,252,6,182,7,248,8,168,10,15,12,97,12,213,11,245,10,188,9,84,8,81,7,222,6,222,6, +111,7,90,8,219,8,170,8,51,8,141,7,86,6,3,5,167,4,20,5,33,5,213,4,235,4,229,4,44,4,75,3, +66,2,103,0,161,254,80,254,194,254,220,254,82,255,188,0,11,2,69,2,156,1,117,0,11,255,197,253,203,252,156,251, +11,250,121,249,54,251,180,253,34,254,136,252,252,250,239,249,190,248,198,247,81,247,5,247,97,247,231,248,100,250,165,250, +37,250,108,249,23,248,71,246,191,244,150,243,182,242,9,243,16,245,31,247,55,247,232,245,237,244,45,244,168,242,230,240, +241,239,155,239,149,239,91,240,203,241,172,242,92,242,125,241,141,240,98,239,92,238,95,238,49,239,226,239,151,240,187,241, +130,242,107,242,24,242,96,241,176,239,60,238,124,238,239,239,190,241,23,244,126,246,190,247,167,247,227,246,13,246,165,245, +133,245,241,244,248,243,127,243,214,243,149,244,110,245,84,246,44,247,136,247,217,246,150,245,43,245,27,246,155,247,13,249, +88,250,62,251,146,251,72,251,53,250,150,248,54,247,137,246,178,246,13,248,108,250,156,252,200,253,89,254,193,254,191,254, +64,254,147,253,218,252,123,252,106,253,163,255,204,1,85,3,216,4,33,6,125,6,73,6,218,5,193,4,176,3,74,4, +125,6,198,8,81,10,241,10,146,10,167,9,208,8,104,8,225,8,63,10,185,11,0,13,97,14,112,15,124,15,202,14, +225,13,197,12,130,11,74,10,141,9,25,10,24,12,149,14,195,16,97,18,242,18,126,18,249,17,209,17,175,17,219,17, +192,18,215,19,182,20,211,21,28,23,155,23,12,23,86,22,68,22,198,22,120,23,62,24,56,25,116,26,182,27,144,28, +164,28,198,27,25,26,82,24,89,23,100,23,22,24,77,25,196,26,196,27,23,28,231,27,172,26,96,24,122,22,155,21, +195,20,28,20,214,20,75,22,17,23,145,23,100,24,155,24,148,23,16,22,230,20,106,20,145,20,240,20,99,21,26,22, +221,22,48,23,203,22,94,21,35,19,97,17,251,16,132,17,153,18,48,20,181,21,152,22,224,22,69,22,72,20,149,17, +128,15,109,14,240,13,199,13,231,13,52,14,120,14,86,14,109,13,184,11,166,9,181,7,41,6,56,5,24,5,175,5, +110,6,168,6,26,6,4,5,162,3,220,1,1,0,237,254,185,254,193,254,39,255,76,0,43,1,199,0,219,255,24,255, +238,253,86,252,32,251,132,250,146,250,160,251,18,253,153,253,237,252,169,251,91,250,100,249,160,248,120,247,22,246,71,245, +60,245,188,245,138,246,187,246,130,245,160,243,64,242,55,241,227,239,144,238,235,237,6,238,126,238,11,239,128,239,128,239, +202,238,175,237,114,236,210,234,19,233,76,232,204,232,177,233,131,234,126,235,67,236,21,236,74,235,192,234,127,234,51,234, +66,234,251,234,213,235,156,236,162,237,70,238,160,237,112,236,222,235,106,235,141,234,77,234,48,235,83,236,106,237,229,238, +38,240,42,240,64,239,103,238,203,237,19,237,137,236,216,236,210,237,126,238,172,238,31,239,235,239,83,240,32,240,191,239, +126,239,140,239,227,239,33,240,38,240,74,240,177,240,53,241,230,241,222,242,250,243,251,244,176,245,48,246,200,246,121,247, +248,247,81,248,181,248,5,249,64,249,169,249,65,250,216,250,127,251,100,252,146,253,226,254,242,255,158,0,84,1,92,2, +60,3,81,3,137,2,132,1,40,1,157,1,15,2,12,2,22,2,125,2,241,2,96,3,7,4,192,4,17,5,182,4, +254,3,168,3,18,4,182,4,0,5,7,5,43,5,132,5,246,5,86,6,130,6,166,6,31,7,9,8,246,8,83,9, +243,8,67,8,21,8,222,8,250,9,95,10,38,10,13,10,210,9,24,9,236,8,1,10,62,11,211,11,40,12,16,12, +30,11,16,10,87,9,41,8,153,6,215,5,14,6,154,6,90,7,0,8,214,7,244,6,16,6,70,5,64,4,244,2, +207,1,82,1,102,1,115,1,86,1,72,1,240,0,213,255,66,254,224,252,32,252,57,252,224,252,117,253,237,253,151,254, +39,255,37,255,169,254,197,253,101,252,1,251,49,250,217,249,7,250,56,251,216,252,87,253,122,252,95,251,67,250,193,248, +108,247,206,246,81,246,182,245,160,245,28,246,172,246,56,247,109,247,165,246,9,245,67,243,196,241,29,241,98,241,142,241, +26,241,184,240,143,240,44,240,241,239,24,240,223,239,17,239,77,238,244,237,135,238,73,240,233,241,29,242,156,241,21,241, +249,239,167,238,66,238,71,238,198,237,163,237,207,238,141,240,229,241,142,242,72,242,60,241,83,240,12,240,37,240,207,240, +179,242,137,245,226,247,158,248,10,248,48,247,131,246,189,245,192,244,190,243,204,242,58,242,187,242,59,244,171,245,157,246, +86,247,94,247,87,246,101,245,97,245,156,245,33,246,227,247,253,249,153,250,21,250,196,249,157,249,105,249,125,249,156,249, +165,249,102,250,20,252,230,253,88,255,47,0,111,0,228,0,201,1,245,1,76,1,131,1,51,3,1,5,1,6,149,6, +92,7,109,8,245,8,13,8,83,6,95,5,177,5,175,6,212,7,219,8,182,9,160,10,115,11,189,11,185,11,210,11, +179,11,93,11,210,11,82,13,177,14,87,15,236,15,151,16,206,16,140,16,241,15,208,14,233,13,132,14,66,16,180,17, +191,18,0,20,46,21,236,21,70,22,209,21,127,20,175,19,124,20,76,22,2,24,40,25,198,25,25,26,35,26,177,25, +28,25,226,24,219,24,12,25,244,25,23,27,88,27,241,26,213,26,252,26,234,26,114,26,121,25,101,24,44,24,240,24, +179,25,231,25,228,25,236,25,178,25,243,24,228,23,253,22,138,22,195,22,197,23,255,24,129,25,66,25,33,25,128,25, +203,25,72,25,224,23,115,22,253,21,87,22,132,22,54,22,0,22,55,22,109,22,251,21,211,20,125,19,108,18,202,17, +209,17,134,18,96,19,190,19,92,19,76,18,242,16,140,15,227,13,45,12,52,11,243,10,200,10,209,10,63,11,87,11, +210,10,64,10,82,9,65,7,200,4,98,3,41,3,72,3,97,3,103,3,39,3,170,2,28,2,52,1,191,255,138,254, +74,254,58,254,136,253,231,252,254,252,17,253,145,252,225,251,44,251,113,250,19,250,254,249,180,249,85,249,30,249,194,248, +55,248,166,247,191,246,115,245,46,244,248,242,209,241,41,241,215,240,64,240,189,239,229,239,77,240,110,240,78,240,201,239, +179,238,110,237,98,236,162,235,98,235,203,235,129,236,230,236,153,236,177,235,156,234,190,233,68,233,72,233,182,233,48,234, +110,234,139,234,166,234,148,234,42,234,171,233,122,233,125,233,105,233,101,233,176,233,49,234,216,234,133,235,199,235,140,235, +63,235,211,234,9,234,95,233,95,233,254,233,5,235,232,235,7,236,217,235,36,236,84,236,202,235,66,235,60,235,83,235, +135,235,241,235,62,236,166,236,125,237,74,238,254,238,36,240,43,241,76,241,75,241,201,241,246,241,149,241,110,241,140,241, +190,241,184,242,165,244,73,246,231,246,31,247,136,247,246,247,104,248,81,249,187,250,251,251,145,252,169,252,166,252,187,252, +234,252,26,253,60,253,111,253,223,253,120,254,194,254,121,254,99,254,105,255,243,0,219,1,58,2,115,2,85,2,122,2, +183,3,12,5,87,5,136,5,75,6,136,6,3,6,230,5,73,6,82,6,16,6,30,6,132,6,208,6,189,6,206,6, +187,7,29,9,29,10,230,10,196,11,53,12,56,12,130,12,29,13,164,13,33,14,111,14,68,14,244,13,204,13,93,13, +118,12,165,11,75,11,58,11,94,11,246,11,229,12,129,13,128,13,91,13,41,13,64,12,144,10,241,8,244,7,164,7, +11,8,204,8,246,8,29,8,0,7,132,6,94,6,178,5,166,4,255,3,163,3,118,3,39,4,68,5,22,5,216,3, +97,3,138,3,222,2,192,1,71,1,38,1,251,0,64,1,220,1,204,1,130,0,126,254,185,252,174,251,50,251,26,251, +78,251,139,251,215,251,62,252,244,251,166,250,217,249,142,250,31,251,217,249,150,247,220,245,161,244,157,243,184,243,36,245, +7,246,37,245,207,243,53,243,158,242,229,241,1,242,128,242,97,242,108,242,38,243,47,243,11,242,251,240,55,240,32,239, +111,238,1,239,13,240,144,240,216,240,130,241,90,242,242,242,77,243,73,243,72,242,112,240,16,239,209,238,29,239,159,239, +93,240,192,240,148,240,140,240,166,240,254,239,209,238,114,238,53,239,37,240,172,240,38,241,215,241,100,242,156,242,160,242, +41,242,50,241,220,240,246,241,180,243,45,245,71,246,158,246,219,245,223,244,172,244,232,244,208,244,152,244,11,245,60,246, +99,247,67,248,85,249,63,250,72,250,53,250,183,250,174,250,231,249,69,250,4,252,48,253,118,253,238,253,94,254,82,254, +116,254,208,254,181,254,170,254,187,255,119,1,156,2,6,3,154,3,159,4,50,5,198,4,38,4,32,4,132,4,12,5, +206,5,161,6,87,7,69,8,144,9,142,10,176,10,75,10,223,9,124,9,121,9,143,10,104,12,212,13,188,14,169,15, +10,16,154,15,131,15,17,16,59,16,70,16,54,17,112,18,40,19,15,20,88,21,234,21,99,21,117,20,183,19,113,19, +213,19,207,20,21,22,83,23,106,24,106,25,235,25,103,25,112,24,214,23,106,23,76,23,73,24,189,25,37,26,249,25, +151,26,118,27,89,27,104,26,97,25,164,24,162,24,161,25,2,27,226,27,24,28,1,28,150,27,130,26,0,25,163,23, +161,22,63,22,0,23,158,24,17,26,221,26,44,27,29,27,177,26,221,25,179,24,196,23,116,23,94,23,86,23,201,23, +133,24,214,24,169,24,46,24,54,23,184,21,17,20,230,18,212,18,130,19,229,19,207,19,164,19,6,19,203,17,165,16, +175,15,123,14,152,13,167,13,16,14,70,14,124,14,128,14,225,13,210,12,136,11,191,9,180,7,92,6,22,6,59,6, +107,6,8,7,218,7,237,7,24,7,194,5,200,3,143,1,105,0,79,0,3,0,178,255,64,0,240,0,185,0,200,255, +89,254,139,252,57,251,197,250,94,250,183,249,134,249,19,250,211,250,21,251,116,250,244,248,230,246,222,244,149,243,25,243, +146,242,205,241,148,241,247,241,52,242,15,242,100,241,168,239,71,237,184,235,130,235,242,235,148,236,126,237,99,238,174,238, +82,238,138,237,48,236,90,234,23,233,64,233,74,234,89,235,39,236,118,236,46,236,184,235,19,235,206,233,70,232,100,231, +118,231,84,232,169,233,203,234,73,235,44,235,152,234,215,233,37,233,65,232,73,231,247,230,58,231,150,231,126,232,250,233, +210,234,209,234,223,234,184,234,210,233,5,233,224,232,249,232,159,233,15,235,48,236,117,236,172,236,227,236,114,236,194,235, +150,235,204,235,73,236,75,237,87,238,189,238,249,238,224,239,247,240,60,241,193,240,58,240,252,239,80,240,142,241,133,243, +186,245,207,247,51,249,137,249,69,249,219,248,87,248,31,248,147,248,103,249,137,250,28,252,101,253,179,253,89,253,116,252, +247,250,249,249,93,250,116,251,188,252,156,254,207,0,127,2,105,3,134,3,222,2,229,1,13,1,159,0,1,1,13,2, +27,3,46,4,119,5,82,6,102,6,37,6,169,5,5,5,31,5,97,6,6,8,147,9,28,11,72,12,186,12,171,12, +41,12,3,11,182,9,36,9,102,9,255,9,205,10,214,11,169,12,2,13,49,13,44,13,150,12,218,11,183,11,10,12, +121,12,36,13,215,13,42,14,86,14,130,14,41,14,230,12,245,10,25,9,60,8,82,8,94,8,68,8,183,8,93,9, +115,9,11,9,11,8,61,6,198,4,195,4,124,5,29,6,240,6,221,7,74,8,63,8,195,7,110,6,142,4,251,2, +208,1,206,0,74,0,153,0,81,1,230,1,78,2,92,2,96,1,77,255,39,253,186,251,28,251,90,251,26,252,139,252, +209,252,113,253,85,253,83,251,175,248,28,247,57,246,66,245,205,244,74,245,13,246,140,246,208,246,147,246,96,245,204,243, +68,243,5,244,200,244,230,244,222,244,201,244,140,244,131,244,41,244,83,242,199,239,158,238,222,238,219,238,71,238,31,238, +185,238,185,239,229,240,246,241,84,242,199,241,217,240,9,240,87,239,251,238,96,239,67,240,34,241,252,241,117,242,195,241, +73,240,77,239,4,239,219,238,201,238,240,238,40,239,130,239,67,240,82,241,52,242,141,242,146,242,168,242,159,242,58,242, +6,242,76,242,176,242,114,243,191,244,90,245,175,244,13,244,229,243,75,243,229,242,40,244,96,246,238,247,177,248,15,249, +19,249,25,249,78,249,53,249,209,248,220,248,111,249,12,250,149,250,32,251,146,251,9,252,191,252,100,253,135,253,78,253, +26,253,57,253,41,254,221,255,15,1,37,1,99,1,135,2,125,3,193,3,13,4,122,4,188,4,65,5,26,6,137,6, +92,6,253,5,177,5,214,5,151,6,116,7,13,8,123,8,212,8,114,9,179,10,255,11,177,12,30,13,81,13,227,12, +118,12,200,12,76,13,166,13,79,14,255,14,36,15,84,15,23,16,1,17,236,17,254,18,201,19,14,20,61,20,89,20, +20,20,240,19,146,20,125,21,205,21,141,21,85,21,80,21,110,21,230,21,215,22,185,23,231,23,139,23,109,23,215,23, +70,24,122,24,252,24,236,25,137,26,134,26,44,26,109,25,160,24,185,24,88,25,54,25,196,24,12,25,81,25,243,24, +213,24,10,25,182,24,68,24,92,24,79,24,208,23,152,23,216,23,115,24,122,25,41,26,171,25,179,24,64,24,49,24, +52,24,45,24,184,23,229,22,138,22,219,22,16,23,173,22,233,21,23,21,114,20,46,20,49,20,1,20,121,19,37,19, +100,19,164,19,51,19,35,18,228,16,201,15,21,15,177,14,35,14,72,13,155,12,124,12,173,12,134,12,167,11,99,10, +59,9,94,8,210,7,125,7,51,7,43,7,130,7,146,7,244,6,52,6,120,5,75,4,6,3,48,2,103,1,152,0, +113,0,184,0,143,0,15,0,170,255,22,255,23,254,8,253,76,252,233,251,181,251,151,251,170,251,206,251,129,251,167,250, +141,249,67,248,232,246,215,245,249,244,255,243,75,243,65,243,118,243,87,243,217,242,6,242,222,240,176,239,254,238,220,238, +199,238,134,238,147,238,22,239,124,239,118,239,16,239,49,238,54,237,241,236,53,237,41,237,237,236,238,236,231,236,208,236, +11,237,73,237,35,237,243,236,205,236,88,236,241,235,19,236,78,236,80,236,167,236,103,237,172,237,25,237,67,236,130,235, +182,234,28,234,6,234,49,234,124,234,63,235,23,236,40,236,191,235,159,235,119,235,5,235,251,234,128,235,242,235,100,236, +55,237,20,238,169,238,17,239,33,239,160,238,228,237,124,237,208,237,232,238,112,240,52,242,239,243,234,244,24,245,127,245, +69,246,110,246,30,246,83,246,237,246,90,247,191,247,249,247,182,247,154,247,59,248,14,249,155,249,47,250,244,250,196,251, +166,252,135,253,26,254,74,254,41,254,166,253,204,252,2,252,175,251,197,251,231,251,14,252,167,252,248,253,174,255,51,1, +80,2,46,3,213,3,56,4,151,4,6,5,24,5,218,4,16,5,224,5,188,6,111,7,204,7,132,7,30,7,64,7, +124,7,137,7,226,7,85,8,142,8,70,9,138,10,43,11,42,11,87,11,70,11,185,10,172,10,11,11,226,10,188,10, +51,11,41,11,34,10,52,9,135,8,89,7,60,6,40,6,135,6,147,6,208,6,146,7,255,7,190,7,195,7,67,8, +27,8,5,7,43,6,236,5,128,5,225,4,143,4,12,4,231,2,35,2,134,2,7,3,172,2,62,2,115,2,137,2, +46,2,82,2,214,2,132,2,166,1,76,1,226,0,162,255,96,254,140,253,125,252,126,251,84,251,94,251,219,250,88,250, +62,250,12,250,123,249,178,248,185,247,117,246,7,245,246,243,188,243,33,244,211,244,206,245,77,246,89,245,236,243,155,243, +154,243,130,242,50,241,237,240,32,241,23,241,20,241,20,241,225,240,231,240,69,241,87,241,19,241,50,241,169,241,188,241, +177,241,102,242,79,243,252,242,121,241,7,240,29,239,126,238,84,238,190,238,74,239,129,239,118,239,171,239,88,240,230,240, +204,240,101,240,234,239,0,239,8,238,221,237,52,238,105,238,219,238,150,239,204,239,162,239,1,240,144,240,82,240,213,239, +108,240,215,241,181,242,231,242,156,243,17,245,69,246,181,246,142,246,215,245,14,245,40,245,34,246,70,247,141,248,248,249, +203,250,185,250,49,250,90,249,66,248,133,247,173,247,176,248,38,250,141,251,142,252,42,253,127,253,199,253,55,254,97,254, +199,253,2,253,251,252,164,253,117,254,39,255,159,255,32,0,2,1,195,1,168,1,15,1,245,0,179,1,0,3,102,4, +157,5,206,6,7,8,191,8,141,8,218,7,67,7,0,7,15,7,118,7,85,8,189,9,98,11,203,12,194,13,81,14, +121,14,34,14,141,13,128,13,110,14,169,15,117,16,51,17,72,18,15,19,238,18,63,18,152,17,53,17,39,17,128,17, +49,18,215,18,66,19,37,20,191,21,171,22,40,22,150,21,132,21,239,20,102,20,98,21,246,22,215,23,251,24,170,26, +35,27,52,26,115,25,7,25,88,24,35,24,221,24,143,25,215,25,106,26,64,27,154,27,144,27,175,27,148,27,171,26, +176,25,193,25,137,26,4,27,65,27,197,27,60,28,5,28,26,27,198,25,101,24,157,23,209,23,143,24,54,25,233,25, +225,26,117,27,29,27,127,26,12,26,36,25,170,23,125,22,251,21,253,21,151,22,62,23,11,23,96,22,245,21,69,21, +238,19,164,18,191,17,23,17,1,17,153,17,66,18,145,18,115,18,205,17,197,16,153,15,120,14,228,13,251,13,203,13, +245,12,108,12,112,12,15,12,230,10,110,9,23,8,43,7,130,6,147,5,176,4,193,4,128,5,221,5,169,5,2,5, +163,3,247,1,248,0,107,0,99,255,67,254,5,254,54,254,232,253,79,253,162,252,108,251,34,250,203,249,209,249,24,249, +63,248,17,248,232,247,132,247,131,247,120,247,126,246,18,245,238,243,173,242,24,241,243,239,211,239,103,240,5,241,71,241, +3,241,19,240,204,238,34,238,54,238,255,237,60,237,206,236,222,236,248,236,77,237,230,237,9,238,142,237,249,236,73,236, +63,235,57,234,198,233,9,234,143,234,175,234,77,234,224,233,154,233,91,233,54,233,59,233,105,233,226,233,116,234,166,234, +131,234,96,234,12,234,107,233,246,232,217,232,166,232,74,232,79,232,7,233,24,234,249,234,149,235,7,236,20,236,164,235, +50,235,41,235,138,235,89,236,83,237,191,237,96,237,217,236,193,236,48,237,212,237,59,238,98,238,179,238,59,239,202,239, +158,240,214,241,247,242,169,243,11,244,93,244,228,244,183,245,170,246,163,247,147,248,36,249,55,249,35,249,33,249,56,249, +119,249,196,249,241,249,248,249,221,249,243,249,211,250,64,252,81,253,16,254,252,254,179,255,224,255,241,255,213,255,84,255, +24,255,120,255,230,255,106,0,79,1,225,1,210,1,14,2,237,2,201,3,143,4,122,5,48,6,165,6,108,7,104,8, +195,8,111,8,57,8,117,8,209,8,87,9,60,10,2,11,22,11,209,10,162,10,74,10,183,9,102,9,148,9,36,10, +255,10,226,11,89,12,93,12,97,12,147,12,131,12,234,11,76,11,4,11,136,10,209,9,200,9,42,10,198,9,12,9, +6,9,244,8,32,8,151,7,193,7,161,7,66,7,121,7,231,7,215,7,124,7,15,7,102,6,160,5,73,5,173,5, +48,6,216,5,216,4,47,4,194,3,2,3,137,2,164,2,102,2,194,1,175,1,234,1,144,1,227,0,59,0,72,255, +118,254,101,254,57,254,10,253,203,251,161,251,244,251,240,251,212,251,167,251,222,250,222,249,138,249,128,249,202,248,146,247, +142,246,12,246,11,246,22,246,175,245,109,245,0,246,129,246,235,245,225,244,74,244,27,244,17,244,255,243,211,243,3,244, +151,244,166,244,3,244,120,243,228,242,132,241,206,239,237,238,74,239,131,240,237,241,247,242,109,243,61,243,140,242,246,241, +194,241,153,241,154,241,244,241,242,241,89,241,5,241,226,240,2,240,242,238,216,238,57,239,70,239,149,239,124,240,6,241, +192,240,154,240,36,241,129,241,11,241,145,240,235,240,171,241,62,242,210,242,115,243,200,243,200,243,162,243,88,243,16,243, +8,243,28,243,245,242,186,242,12,243,30,244,99,245,135,246,226,247,46,249,131,249,18,249,181,248,50,248,80,247,18,247, +225,247,224,248,171,249,95,250,178,250,226,250,145,251,40,252,182,251,206,250,142,250,50,251,134,252,61,254,170,255,90,0, +142,0,185,0,202,0,98,0,182,255,128,255,235,255,158,0,165,1,196,2,17,3,163,2,196,2,170,3,86,4,151,4, +255,4,207,5,6,7,104,8,129,9,87,10,37,11,173,11,202,11,192,11,118,11,248,10,39,11,101,12,226,13,4,15, +233,15,79,16,224,15,86,15,199,15,10,17,250,17,44,18,63,18,147,18,3,19,176,19,186,20,187,21,82,22,88,22, +125,21,255,19,3,19,50,19,6,20,224,20,184,21,190,22,207,23,77,24,2,24,171,23,194,23,234,23,41,24,224,24, +173,25,29,26,106,26,148,26,86,26,250,25,165,25,246,24,24,24,170,23,205,23,116,24,131,25,122,26,22,27,128,27, +132,27,8,27,163,26,132,26,59,26,224,25,206,25,224,25,237,25,230,25,128,25,218,24,99,24,235,23,51,23,161,22, +73,22,202,21,96,21,111,21,126,21,37,21,207,20,187,20,113,20,177,19,232,18,126,18,100,18,81,18,29,18,189,17, +61,17,151,16,155,15,115,14,196,13,143,13,24,13,83,12,219,11,189,11,192,11,232,11,215,11,62,11,162,10,36,10, +38,9,236,7,56,7,206,6,100,6,74,6,28,6,47,5,244,3,233,2,208,1,206,0,86,0,56,0,53,0,70,0, +15,0,126,255,26,255,240,254,131,254,142,253,9,252,68,250,6,249,142,248,89,248,35,248,221,247,70,247,151,246,51,246, +159,245,128,244,166,243,163,243,214,243,159,243,16,243,97,242,219,241,231,241,117,242,222,242,174,242,18,242,81,241,124,240, +207,239,145,239,121,239,30,239,195,238,220,238,70,239,122,239,24,239,102,238,67,238,201,238,223,238,27,238,105,237,64,237, +78,237,123,237,121,237,218,236,67,236,100,236,128,236,235,235,51,235,211,234,207,234,68,235,229,235,21,236,238,235,224,235, +1,236,118,236,51,237,158,237,140,237,134,237,158,237,119,237,27,237,217,236,244,236,134,237,45,238,114,238,118,238,129,238, +166,238,15,239,159,239,248,239,76,240,7,241,217,241,117,242,39,243,197,243,222,243,247,243,197,244,201,245,68,246,115,246, +206,246,74,247,217,247,137,248,224,248,104,248,199,247,243,247,178,248,105,249,63,250,11,251,12,251,149,250,175,250,63,251, +180,251,87,252,43,253,132,253,93,253,67,253,81,253,124,253,238,253,163,254,109,255,34,0,150,0,194,0,180,0,126,0, +177,0,198,1,251,2,120,3,177,3,19,4,70,4,144,4,119,5,75,6,79,6,26,6,78,6,153,6,165,6,148,6, +149,6,197,6,48,7,164,7,183,7,39,7,128,6,154,6,60,7,129,7,115,7,145,7,167,7,176,7,29,8,127,8, +17,8,92,7,43,7,23,7,178,6,101,6,67,6,205,5,61,5,81,5,208,5,190,5,18,5,180,4,189,4,120,4, +1,4,249,3,39,4,17,4,235,3,212,3,98,3,160,2,72,2,159,2,225,2,50,2,253,0,121,0,236,0,141,1, +192,1,45,1,214,255,205,254,188,254,99,254,240,252,221,251,66,252,24,253,128,253,150,253,49,253,82,252,175,251,95,251, +151,250,87,249,169,248,48,249,83,250,233,250,99,250,38,249,220,247,240,246,102,246,236,245,116,245,107,245,213,245,59,246, +141,246,175,246,21,246,29,245,3,245,179,245,239,245,105,245,185,244,79,244,135,244,51,245,44,245,21,244,100,243,24,244, +1,245,147,244,243,242,133,241,101,241,167,242,109,244,159,245,215,245,170,245,175,245,180,245,12,245,85,243,31,241,241,239, +179,240,72,242,54,243,174,243,78,244,145,244,242,243,219,242,227,241,138,241,18,242,235,242,122,243,255,243,168,244,254,244, +246,244,249,244,16,245,38,245,93,245,193,245,83,246,224,246,212,246,93,246,155,246,166,247,51,248,194,247,79,247,194,247, +17,249,123,250,43,251,17,251,222,250,36,251,228,251,143,252,95,252,118,251,241,250,100,251,88,252,78,253,231,253,221,253, +203,253,149,254,190,255,25,0,189,255,171,255,49,0,243,0,173,1,45,2,78,2,94,2,212,2,143,3,1,4,240,3, +148,3,84,3,185,3,213,4,224,5,102,6,252,6,240,7,174,8,243,8,22,9,69,9,167,9,140,10,208,11,247,12, +199,13,33,14,243,13,117,13,255,12,238,12,133,13,102,14,17,15,225,15,9,17,193,17,205,17,243,17,59,18,40,18, +52,18,181,18,13,19,48,19,181,19,78,20,124,20,172,20,1,21,224,20,84,20,11,20,40,20,117,20,22,21,37,22, +52,23,188,23,183,23,117,23,33,23,190,22,139,22,221,22,157,23,89,24,186,24,177,24,113,24,73,24,70,24,22,24, +129,23,218,22,195,22,69,23,178,23,177,23,178,23,18,24,164,24,17,25,254,24,74,24,112,23,241,22,164,22,79,22, +27,22,252,21,174,21,64,21,248,20,221,20,154,20,211,19,237,18,196,18,51,19,74,19,254,18,207,18,111,18,154,17, +231,16,124,16,239,15,114,15,79,15,17,15,149,14,86,14,35,14,87,13,29,12,14,11,52,10,86,9,155,8,68,8, +63,8,88,8,138,8,178,8,107,8,165,7,179,6,158,5,95,4,134,3,106,3,131,3,99,3,50,3,210,2,235,1, +171,0,101,255,36,254,53,253,248,252,23,253,236,252,163,252,217,252,100,253,112,253,176,252,150,251,119,250,108,249,136,248, +150,247,102,246,139,245,122,245,121,245,203,244,233,243,94,243,237,242,102,242,223,241,79,241,205,240,137,240,101,240,86,240, +146,240,213,240,149,240,235,239,80,239,223,238,135,238,71,238,11,238,208,237,209,237,29,238,83,238,20,238,141,237,39,237, +232,236,179,236,193,236,30,237,93,237,102,237,131,237,142,237,88,237,62,237,90,237,55,237,205,236,120,236,69,236,40,236, +37,236,28,236,11,236,246,235,142,235,246,234,12,235,231,235,181,236,73,237,236,237,41,238,194,237,131,237,207,237,255,237, +224,237,255,237,108,238,179,238,214,238,59,239,209,239,74,240,195,240,107,241,255,241,82,242,180,242,59,243,171,243,25,244, +174,244,30,245,62,245,96,245,191,245,73,246,244,246,156,247,254,247,34,248,106,248,55,249,117,250,158,251,96,252,249,252, +134,253,180,253,98,253,239,252,204,252,54,253,17,254,15,255,7,0,147,0,20,0,21,255,32,255,88,0,93,1,194,1, +55,2,215,2,113,3,48,4,221,4,241,4,184,4,252,4,200,5,87,6,33,6,168,5,206,5,160,6,135,7,56,8, +135,8,79,8,28,8,132,8,29,9,134,9,37,10,198,10,171,10,74,10,184,10,184,11,95,12,144,12,133,12,59,12, +247,11,253,11,226,11,71,11,179,10,146,10,104,10,238,9,184,9,244,9,252,9,144,9,36,9,39,9,201,9,154,10, +147,10,185,9,94,9,183,9,154,9,230,8,79,8,158,7,174,6,80,6,140,6,109,6,236,5,184,5,153,5,253,4, +14,4,76,3,232,2,235,2,105,3,76,4,17,5,41,5,130,4,65,3,173,1,144,0,114,0,158,0,89,0,0,0, +180,255,206,254,98,253,59,252,135,251,14,251,212,250,170,250,88,250,70,250,213,250,144,251,184,251,35,251,72,250,148,249, +193,248,57,247,51,245,212,243,1,244,87,245,103,246,39,246,252,244,237,243,131,243,228,243,184,244,232,244,202,243,71,242, +195,241,108,242,79,243,171,243,198,243,75,244,3,245,247,244,150,243,49,241,234,238,52,238,60,239,129,240,7,241,80,241, +187,241,250,241,21,242,17,242,120,241,76,240,123,239,216,239,31,241,10,242,190,241,238,240,122,240,241,239,240,238,90,238, +201,238,175,239,115,240,211,240,174,240,139,240,36,241,238,241,180,241,164,240,49,240,231,240,225,241,150,242,94,243,232,243, +128,243,238,242,91,243,239,243,143,243,39,243,191,243,166,244,42,245,115,245,112,245,63,245,197,245,55,247,93,248,98,248, +7,248,94,248,76,249,19,250,129,250,152,250,10,250,76,249,171,249,8,251,189,251,92,251,249,250,7,251,63,251,194,251, +174,252,190,253,204,254,195,255,61,0,8,0,157,255,142,255,208,255,21,0,142,0,126,1,93,2,176,2,239,2,88,3, +81,3,234,2,20,3,14,4,83,5,128,6,89,7,218,7,85,8,218,8,41,9,63,9,41,9,1,9,98,9,142,10, +197,11,116,12,216,12,14,13,40,13,146,13,52,14,90,14,16,14,64,14,109,15,253,16,227,17,234,17,231,17,68,18, +137,18,142,18,158,18,206,18,87,19,81,20,219,20,81,20,134,19,98,19,199,19,119,20,54,21,110,21,40,21,65,21, +5,22,218,22,69,23,68,23,2,23,215,22,35,23,197,23,14,24,170,23,77,23,177,23,107,24,177,24,122,24,49,24, +68,24,246,24,190,25,176,25,241,24,144,24,247,24,148,25,178,25,70,25,229,24,187,24,68,24,145,23,63,23,35,23, +243,22,51,23,169,23,79,23,148,22,130,22,103,22,105,21,97,20,12,20,233,19,186,19,192,19,201,19,130,19,19,19, +214,18,193,18,50,18,226,16,174,15,73,15,52,15,26,15,84,15,123,15,197,14,186,13,71,13,4,13,39,12,255,10, +89,10,98,10,191,10,6,11,193,10,178,9,131,8,21,8,253,7,61,7,34,6,154,5,138,5,101,5,30,5,167,4, +247,3,91,3,205,2,247,1,18,1,134,0,34,0,165,255,50,255,237,254,203,254,155,254,26,254,61,253,25,252,207,250, +224,249,137,249,47,249,155,248,110,248,128,248,22,248,121,247,29,247,150,246,207,245,57,245,180,244,66,244,105,244,201,244, +133,244,248,243,200,243,166,243,50,243,142,242,213,241,57,241,18,241,85,241,192,241,51,242,105,242,42,242,170,241,23,241, +82,240,121,239,5,239,39,239,127,239,171,239,213,239,53,240,101,240,241,239,23,239,82,238,233,237,254,237,47,238,239,237, +155,237,213,237,95,238,206,238,42,239,55,239,204,238,110,238,84,238,44,238,34,238,131,238,239,238,36,239,118,239,247,239, +53,240,204,239,234,238,126,238,63,239,147,240,155,241,86,242,207,242,212,242,206,242,43,243,112,243,30,243,140,242,78,242, +167,242,111,243,97,244,121,245,163,246,93,247,126,247,135,247,169,247,174,247,176,247,225,247,88,248,93,249,207,250,242,251, +140,252,222,252,226,252,169,252,130,252,66,252,180,251,111,251,251,251,11,253,10,254,154,254,185,254,211,254,45,255,148,255, +243,255,112,0,255,0,133,1,3,2,119,2,234,2,68,3,53,3,228,2,228,2,42,3,58,3,31,3,42,3,115,3, +15,4,237,4,181,5,60,6,132,6,143,6,175,6,28,7,104,7,97,7,146,7,26,8,103,8,66,8,216,7,51,7, +94,6,162,5,82,5,96,5,77,5,5,5,76,5,67,6,245,6,7,7,243,6,158,6,221,5,110,5,168,5,206,5, +116,5,252,4,181,4,119,4,227,3,246,2,57,2,237,1,186,1,134,1,75,1,182,0,69,0,223,0,209,1,202,1, +67,1,31,1,220,0,32,0,149,255,80,255,241,254,204,254,14,255,7,255,117,254,194,253,206,252,76,251,8,250,226,249, +52,250,243,249,105,249,50,249,3,249,206,248,27,249,181,249,235,249,183,249,249,248,96,247,218,245,148,245,207,245,62,245, +48,244,118,243,253,242,138,242,85,242,124,242,174,242,172,242,229,242,214,243,171,244,57,244,50,243,43,243,43,244,249,244, +183,244,112,243,63,242,23,242,36,242,86,241,177,240,101,241,122,242,152,242,241,241,81,241,25,241,56,241,75,241,94,241, +255,241,204,242,167,242,229,241,14,242,45,243,163,243,169,242,49,241,65,240,218,239,182,239,243,239,150,240,88,241,252,241, +75,242,63,242,82,242,185,242,254,242,30,243,189,243,144,244,169,244,98,244,252,244,111,246,87,247,235,246,219,245,44,245, +10,245,33,245,62,245,86,245,160,245,120,246,131,247,77,248,134,249,89,251,10,252,253,250,53,250,142,250,141,250,0,250, +49,250,20,251,236,251,218,252,161,253,154,253,31,253,184,252,60,252,235,251,82,252,41,253,28,254,149,255,72,1,239,1, +92,1,225,0,66,1,231,1,76,2,185,2,106,3,56,4,238,4,34,5,138,4,235,3,56,4,220,4,245,4,46,5, +104,6,255,7,21,9,211,9,120,10,204,10,212,10,241,10,62,11,129,11,156,11,178,11,212,11,15,12,156,12,115,13, +23,14,113,14,222,14,35,15,216,14,120,14,160,14,80,15,133,16,12,18,32,19,156,19,30,20,120,20,26,20,135,19, +80,19,25,19,254,18,190,19,240,20,107,21,80,21,172,21,120,22,199,22,148,22,149,22,163,22,71,22,89,22,164,23, +11,25,103,25,111,25,187,25,131,25,138,24,149,23,216,22,77,22,153,22,192,23,151,24,132,24,47,24,27,24,22,24, +32,24,106,24,141,24,19,24,147,23,240,23,215,24,56,25,160,24,87,23,15,22,173,21,75,22,217,22,161,22,5,22, +140,21,93,21,111,21,117,21,22,21,115,20,243,19,222,19,48,20,98,20,225,19,18,19,199,18,226,18,161,18,183,17, +95,16,249,14,3,14,187,13,173,13,63,13,148,12,73,12,78,12,5,12,115,11,28,11,229,10,117,10,239,9,84,9, +140,8,33,8,63,8,230,7,187,6,213,5,135,5,236,4,199,3,183,2,255,1,163,1,168,1,201,1,188,1,136,1, +29,1,109,0,185,255,42,255,157,254,251,253,83,253,185,252,83,252,19,252,153,251,182,250,175,249,198,248,253,247,80,247, +182,246,32,246,172,245,151,245,186,245,133,245,195,244,219,243,51,243,231,242,246,242,3,243,151,242,6,242,248,241,245,241, +8,241,128,239,127,238,59,238,14,238,209,237,14,238,215,238,80,239,253,238,138,238,97,238,252,237,107,237,104,237,172,237, +115,237,37,237,76,237,97,237,29,237,253,236,237,236,104,236,177,235,81,235,41,235,214,234,120,234,113,234,183,234,249,234, +98,235,66,236,239,236,139,236,203,235,236,235,141,236,163,236,83,236,42,236,17,236,29,236,165,236,32,237,217,236,110,236, +217,236,185,237,45,238,110,238,37,239,23,240,162,240,188,240,193,240,218,240,235,240,248,240,69,241,247,241,220,242,200,243, +155,244,228,244,155,244,142,244,4,245,61,245,60,245,217,245,242,246,229,247,243,248,41,250,229,250,93,251,37,252,177,252, +149,252,130,252,148,252,46,252,220,251,163,252,20,254,52,255,233,255,76,0,53,0,3,0,99,0,72,1,28,2,173,2, +74,3,32,4,2,5,173,5,252,5,226,5,152,5,133,5,196,5,23,6,90,6,160,6,232,6,24,7,76,7,197,7, +115,8,0,9,82,9,162,9,247,9,44,10,90,10,199,10,101,11,225,11,3,12,232,11,210,11,181,11,101,11,36,11, +72,11,134,11,149,11,183,11,3,12,49,12,55,12,17,12,148,11,14,11,240,10,23,11,127,11,100,12,25,13,159,12, +125,11,217,10,144,10,3,10,72,9,140,8,181,7,31,7,61,7,180,7,190,7,58,7,182,6,156,6,192,6,181,6, +56,6,83,5,141,4,138,4,22,5,76,5,210,4,37,4,146,3,229,2,18,2,83,1,176,0,22,0,180,255,170,255, +151,255,18,255,117,254,107,254,219,254,237,254,250,253,99,252,100,251,164,251,54,252,6,252,91,251,248,250,229,250,204,250, +85,250,81,249,97,248,58,248,25,248,5,247,235,245,251,245,127,246,139,246,183,246,64,247,236,246,107,245,116,244,40,245, +94,246,182,246,64,246,108,245,60,244,243,242,246,241,106,241,161,241,162,242,57,243,127,242,91,241,206,240,178,240,20,241, +66,242,93,243,115,243,17,243,13,243,49,243,23,243,180,242,19,242,148,241,179,241,7,242,164,241,183,240,95,240,236,240, +141,241,194,241,224,241,27,242,95,242,200,242,61,243,58,243,206,242,159,242,182,242,159,242,138,242,220,242,89,243,191,243, +51,244,167,244,169,244,45,244,175,243,101,243,23,243,240,242,132,243,186,244,209,245,122,246,218,246,248,246,26,247,161,247, +65,248,158,248,25,249,197,249,19,250,252,249,223,249,146,249,29,249,39,249,221,249,151,250,227,250,237,250,32,251,166,251, +71,252,247,252,8,254,75,255,40,0,169,0,31,1,53,1,171,0,245,255,151,255,192,255,111,0,87,1,50,2,246,2, +80,3,6,3,187,2,7,3,150,3,48,4,22,5,2,6,126,6,249,6,204,7,65,8,239,7,152,7,204,7,70,8, +240,8,199,9,54,10,50,10,219,10,74,12,253,12,149,12,105,12,246,12,171,13,135,14,105,15,190,15,2,16,26,17, +124,18,74,19,166,19,141,19,184,18,206,17,158,17,237,17,55,18,92,18,119,18,195,18,78,19,217,19,85,20,200,20, +240,20,225,20,246,20,251,20,216,20,64,21,72,22,250,22,247,22,145,22,167,21,81,20,122,19,139,19,3,20,158,20, +143,21,162,22,61,23,51,23,241,22,204,22,159,22,83,22,32,22,22,22,26,22,73,22,176,22,247,22,195,22,3,22, +21,21,137,20,124,20,120,20,60,20,236,19,173,19,164,19,222,19,254,19,192,19,81,19,212,18,64,18,167,17,34,17, +212,16,209,16,179,16,43,16,163,15,34,15,20,14,225,12,68,12,141,11,60,10,111,9,186,9,70,10,172,10,224,10, +111,10,160,9,57,9,201,8,187,7,204,6,137,6,92,6,250,5,195,5,193,5,154,5,33,5,78,4,40,3,247,1, +72,1,96,1,208,1,0,2,244,1,191,1,20,1,25,0,94,255,191,254,175,253,103,252,157,251,131,251,167,251,131,251, +238,250,2,250,241,248,9,248,99,247,159,246,197,245,152,245,250,245,219,245,62,245,253,244,243,244,163,244,71,244,220,243, +27,243,121,242,88,242,59,242,222,241,151,241,159,241,242,241,83,242,81,242,229,241,115,241,29,241,234,240,254,240,46,241, +67,241,90,241,101,241,44,241,210,240,107,240,245,239,194,239,209,239,135,239,236,238,148,238,143,238,201,238,81,239,157,239, +24,239,48,238,140,237,80,237,113,237,176,237,222,237,109,238,129,239,45,240,209,239,238,238,50,238,251,237,92,238,237,238, +62,239,119,239,216,239,78,240,190,240,35,241,131,241,223,241,33,242,107,242,9,243,176,243,221,243,238,243,117,244,45,245, +171,245,211,245,145,245,95,245,251,245,8,247,165,247,243,247,106,248,244,248,134,249,46,250,170,250,228,250,47,251,202,251, +158,252,19,253,150,252,196,251,189,251,110,252,49,253,247,253,163,254,230,254,6,255,55,255,29,255,173,254,89,254,124,254, +82,255,170,0,204,1,104,2,153,2,94,2,59,2,207,2,115,3,113,3,134,3,39,4,156,4,222,4,116,5,233,5, +230,5,11,6,128,6,206,6,18,7,137,7,220,7,215,7,218,7,65,8,212,8,242,8,120,8,8,8,247,7,236,7, +183,7,128,7,72,7,15,7,251,6,43,7,136,7,161,7,31,7,119,6,34,6,203,5,99,5,121,5,226,5,255,5, +226,5,178,5,69,5,221,4,161,4,60,4,198,3,116,3,235,2,102,2,146,2,249,2,245,2,245,2,17,3,154,2, +155,1,133,0,133,255,47,255,215,255,154,0,200,0,171,0,83,0,171,255,21,255,144,254,176,253,168,252,240,251,170,251, +196,251,215,251,110,251,218,250,144,250,71,250,164,249,171,248,138,247,231,246,67,247,212,247,157,247,255,246,187,246,162,246, +52,246,93,245,114,244,251,243,68,244,251,244,105,245,24,245,84,244,173,243,32,243,176,242,218,242,71,243,8,243,176,242, +86,243,45,244,45,244,26,244,125,244,157,244,49,244,99,243,33,242,236,240,162,240,53,241,243,241,38,242,135,241,238,240, +66,241,206,241,184,241,125,241,116,241,97,241,174,241,122,242,7,243,112,243,47,244,97,244,89,243,27,242,110,241,235,240, +127,240,177,240,148,241,169,242,140,243,84,244,29,245,110,245,11,245,174,244,227,244,86,245,209,245,86,246,168,246,246,246, +192,247,132,248,66,248,38,247,94,246,171,246,163,247,87,248,161,248,35,249,15,250,25,251,4,252,81,252,210,251,118,251, +223,251,98,252,159,252,0,253,144,253,38,254,171,254,173,254,71,254,105,254,23,255,137,255,212,255,46,0,68,0,115,0, +63,1,17,2,155,2,137,3,194,4,140,5,254,5,82,6,66,6,232,5,206,5,74,6,62,7,6,8,19,8,197,7, +196,7,39,8,193,8,49,9,56,9,169,9,55,11,187,12,246,12,153,12,166,12,24,13,186,13,55,14,1,14,115,13, +161,13,187,14,244,15,154,16,149,16,112,16,187,16,124,17,79,18,214,18,30,19,176,19,126,20,137,20,210,19,191,19, +176,20,203,21,201,22,134,23,110,23,235,22,239,22,47,23,25,23,249,22,235,22,186,22,202,22,84,23,200,23,184,23, +90,23,65,23,216,23,179,24,17,25,254,24,4,25,85,25,232,25,85,26,18,26,126,25,47,25,168,24,152,23,188,22, +88,22,60,22,224,22,42,24,224,24,154,24,25,24,220,23,18,24,142,24,118,24,155,23,13,23,77,23,188,23,204,23, +68,23,62,22,106,21,65,21,62,21,187,20,213,19,68,19,147,19,75,20,82,20,102,19,63,18,135,17,136,17,191,17, +15,17,149,15,222,14,99,15,229,15,122,15,66,14,219,12,16,12,247,11,136,11,31,10,125,8,162,7,189,7,32,8, +33,8,225,7,176,7,81,7,192,6,66,6,111,5,39,4,120,3,193,3,5,4,209,3,89,3,88,2,235,0,236,255, +114,255,201,254,181,253,179,252,120,252,25,253,155,253,79,253,198,252,116,252,31,252,175,251,233,250,123,249,47,248,194,247, +85,247,70,246,93,245,209,244,10,244,90,243,50,243,251,242,99,242,238,241,220,241,236,241,245,241,230,241,170,241,64,241, +181,240,35,240,129,239,185,238,38,238,50,238,142,238,177,238,184,238,243,238,61,239,44,239,155,238,246,237,160,237,105,237, +69,237,134,237,211,237,169,237,179,237,89,238,165,238,69,238,230,237,66,237,21,236,120,235,197,235,213,235,107,235,63,235, +74,235,115,235,19,236,188,236,133,236,158,235,34,235,154,235,106,236,179,236,176,236,42,237,199,237,190,237,90,237,16,237, +173,236,103,236,187,236,91,237,217,237,105,238,52,239,20,240,205,240,21,241,16,241,79,241,215,241,57,242,111,242,128,242, +100,242,171,242,169,243,124,244,120,244,97,244,232,244,121,245,133,245,120,245,213,245,128,246,105,247,185,248,240,249,102,250, +181,250,149,251,60,252,15,252,225,251,222,251,83,251,240,250,183,251,190,252,234,252,214,252,54,253,177,253,237,253,0,254, +39,254,177,254,179,255,247,0,38,2,185,2,147,2,115,2,165,2,152,2,101,2,168,2,18,3,76,3,206,3,128,4, +200,4,244,4,98,5,139,5,99,5,183,5,162,6,128,7,32,8,181,8,80,9,213,9,17,10,223,9,90,9,179,8, +34,8,219,7,220,7,244,7,244,7,186,7,71,7,211,6,154,6,201,6,69,7,130,7,72,7,43,7,109,7,159,7, +159,7,110,7,172,6,183,5,124,5,150,5,21,5,99,4,18,4,165,3,31,3,37,3,67,3,191,2,79,2,205,2, +136,3,115,3,202,2,99,2,75,2,32,2,1,2,24,2,249,1,128,1,6,1,88,0,54,255,80,254,233,253,71,253, +156,252,219,252,118,253,59,253,120,252,252,251,158,251,28,251,172,250,96,250,1,250,106,249,174,248,45,248,251,247,154,247, +233,246,104,246,41,246,186,245,14,245,135,244,91,244,132,244,210,244,4,245,241,244,142,244,224,243,49,243,4,243,169,243, +190,244,80,245,240,244,80,244,38,244,53,244,3,244,127,243,190,242,16,242,222,241,26,242,124,242,220,242,199,242,13,242, +173,241,131,242,207,243,110,244,63,244,186,243,70,243,239,242,78,242,105,241,17,241,114,241,157,241,36,241,185,240,237,240, +142,241,47,242,166,242,28,243,175,243,44,244,98,244,104,244,111,244,158,244,226,244,250,244,208,244,106,244,201,243,138,243, +142,244,73,246,73,247,115,247,167,247,0,248,74,248,178,248,251,248,222,248,7,249,251,249,4,251,122,251,155,251,175,251, +192,251,243,251,92,252,204,252,18,253,49,253,76,253,127,253,171,253,138,253,50,253,46,253,219,253,211,254,135,255,6,0, +163,0,91,1,33,2,241,2,114,3,133,3,165,3,236,3,236,3,187,3,171,3,142,3,129,3,9,4,221,4,105,5, +45,6,180,7,54,9,175,9,77,9,27,9,202,9,228,10,108,11,62,11,25,11,94,11,228,11,95,12,143,12,178,12, +100,13,108,14,227,14,195,14,222,14,128,15,108,16,78,17,162,17,51,17,174,16,221,16,176,17,127,18,247,18,92,19, +240,19,115,20,153,20,123,20,46,20,203,19,228,19,210,20,183,21,142,21,188,20,101,20,214,20,145,21,73,22,240,22, +60,23,43,23,98,23,33,24,187,24,200,24,157,24,84,24,252,23,22,24,106,24,232,23,204,22,131,22,16,23,58,23, +244,22,49,23,233,23,97,24,160,24,1,25,42,25,194,24,91,24,60,24,154,23,110,22,1,22,112,22,106,22,229,21, +205,21,196,21,66,21,1,21,33,21,182,20,237,19,181,19,224,19,232,19,245,19,209,19,241,18,219,17,135,17,201,17, +159,17,159,16,119,15,27,15,138,15,191,15,19,15,7,14,80,13,250,12,179,12,31,12,7,11,220,9,130,9,234,9, +236,9,80,9,37,9,127,9,72,9,133,8,254,7,80,7,250,5,210,4,100,4,239,3,35,3,142,2,44,2,133,1, +198,0,84,0,9,0,175,255,135,255,183,255,179,255,2,255,55,254,225,253,105,253,74,252,36,251,103,250,187,249,30,249, +161,248,172,247,98,246,13,246,221,246,108,247,1,247,75,246,201,245,73,245,191,244,90,244,222,243,4,243,91,242,115,242, +151,242,248,241,87,241,140,241,221,241,141,241,32,241,251,240,231,240,252,240,41,241,195,240,234,239,157,239,212,239,127,239, +155,238,54,238,128,238,177,238,167,238,217,238,36,239,27,239,243,238,216,238,108,238,169,237,12,237,181,236,120,236,101,236, +109,236,82,236,35,236,41,236,164,236,162,237,143,238,169,238,53,238,238,237,215,237,189,237,218,237,10,238,246,237,251,237, +99,238,175,238,152,238,162,238,46,239,229,239,67,240,72,240,126,240,27,241,194,241,93,242,17,243,124,243,74,243,249,242, +222,242,168,242,104,242,151,242,26,243,156,243,71,244,60,245,24,246,140,246,207,246,37,247,99,247,110,247,169,247,82,248, +2,249,142,249,92,250,77,251,171,251,107,251,47,251,79,251,197,251,164,252,217,253,229,254,85,255,71,255,35,255,2,255, +237,254,79,255,80,0,101,1,89,2,94,3,253,3,203,3,167,3,70,4,214,4,156,4,53,4,35,4,250,3,146,3, +154,3,136,4,205,5,142,6,179,6,186,6,4,7,181,7,136,8,212,8,164,8,223,8,136,9,163,9,34,9,201,8, +163,8,134,8,166,8,188,8,100,8,56,8,196,8,119,9,183,9,169,9,154,9,166,9,168,9,63,9,128,8,25,8, +48,8,58,8,8,8,226,7,195,7,144,7,121,7,95,7,197,6,218,5,95,5,57,5,183,4,41,4,52,4,93,4, +37,4,29,4,72,4,198,3,226,2,161,2,183,2,109,2,17,2,197,1,255,0,254,255,124,255,48,255,137,254,242,253, +227,253,205,253,37,253,131,252,126,252,98,252,150,251,234,250,232,250,171,250,234,249,135,249,141,249,71,249,254,248,22,249, +225,248,248,247,241,246,34,246,101,245,222,244,193,244,221,244,249,244,18,245,6,245,125,244,139,243,22,243,181,243,165,244, +255,244,253,244,239,244,103,244,81,243,98,242,22,242,88,242,162,242,15,242,124,240,95,239,253,239,129,241,49,242,180,241, +219,240,49,240,232,239,68,240,5,241,124,241,206,241,143,242,55,243,227,242,234,241,39,241,220,240,16,241,87,241,215,240, +241,239,55,240,197,241,15,243,98,243,76,243,41,243,219,242,113,242,82,242,240,242,12,244,209,244,5,245,16,245,6,245, +228,244,250,244,75,245,122,245,116,245,78,245,36,245,115,245,124,246,146,247,241,247,191,247,168,247,22,248,200,248,49,249, +69,249,126,249,6,250,180,250,131,251,68,252,129,252,63,252,22,252,70,252,117,252,98,252,82,252,164,252,108,253,137,254, +150,255,0,0,224,255,30,0,222,0,72,1,94,1,255,1,17,3,198,3,10,4,20,4,235,3,242,3,105,4,195,4, +182,4,234,4,196,5,185,6,71,7,163,7,26,8,101,8,86,8,120,8,5,9,93,9,137,9,86,10,106,11,175,11, +106,11,131,11,215,11,8,12,63,12,116,12,146,12,6,13,232,13,189,14,102,15,59,16,69,17,17,18,60,18,1,18, +0,18,88,18,197,18,110,19,59,20,93,20,215,19,201,19,96,20,158,20,118,20,172,20,247,20,193,20,208,20,236,21, +19,23,42,23,241,22,75,23,172,23,175,23,177,23,93,23,93,22,215,21,134,22,57,23,23,23,164,22,19,22,80,21, +255,20,86,21,154,21,185,21,117,22,222,23,11,25,23,25,8,24,253,22,243,22,126,23,135,23,208,22,15,22,254,21, +129,22,169,22,246,21,25,21,251,20,149,21,236,21,40,21,220,19,132,19,87,20,29,21,41,21,166,20,184,19,236,18, +236,18,248,18,245,17,158,16,66,16,122,16,45,16,60,15,13,14,235,12,88,12,179,12,66,13,195,12,44,11,204,9, +142,9,26,10,166,10,134,10,138,9,139,8,120,8,191,8,33,8,189,6,162,5,42,5,230,4,109,4,182,3,5,3, +189,2,33,3,191,3,124,3,19,2,218,0,185,0,231,0,190,0,114,0,203,255,166,254,194,253,42,253,17,252,245,250, +248,250,136,251,75,251,27,250,150,248,73,247,164,246,156,246,168,246,106,246,217,245,26,245,114,244,5,244,190,243,146,243, +106,243,39,243,247,242,208,242,23,242,186,240,213,239,74,240,128,241,8,242,67,241,251,239,77,239,100,239,198,239,26,240, +34,240,223,239,198,239,255,239,3,240,141,239,11,239,233,238,14,239,16,239,166,238,239,237,68,237,6,237,93,237,187,237, +72,237,102,236,50,236,146,236,192,236,221,236,10,237,186,236,62,236,136,236,49,237,40,237,174,236,197,236,130,237,7,238, +184,237,244,236,147,236,232,236,177,237,114,238,164,238,122,238,207,238,155,239,248,239,245,239,74,240,229,240,156,241,160,242, +80,243,223,242,7,242,237,241,124,242,42,243,197,243,35,244,73,244,157,244,56,245,189,245,245,245,10,246,70,246,200,246, +104,247,235,247,88,248,254,248,27,250,117,251,128,252,241,252,220,252,130,252,93,252,169,252,240,252,223,252,242,252,104,253, +235,253,81,254,128,254,120,254,8,255,189,0,135,2,99,3,187,3,243,3,243,3,52,4,211,4,231,4,74,4,246,3, +54,4,132,4,189,4,14,5,105,5,183,5,26,6,197,6,167,7,83,8,147,8,174,8,235,8,87,9,209,9,241,9, +167,9,152,9,241,9,16,10,206,9,131,9,21,9,155,8,157,8,217,8,164,8,84,8,123,8,195,8,186,8,115,8, +17,8,206,7,254,7,100,8,95,8,249,7,207,7,248,7,231,7,145,7,121,7,105,7,164,6,97,5,119,4,255,3, +198,3,229,3,32,4,22,4,228,3,122,3,156,2,214,1,222,1,92,2,157,2,106,2,192,1,220,0,30,0,131,255, +253,254,179,254,89,254,159,253,19,253,24,253,24,253,144,252,167,251,194,250,85,250,89,250,44,250,243,249,110,250,14,251, +114,250,164,248,195,246,128,245,40,245,177,245,82,246,69,246,167,245,26,245,28,245,195,245,151,246,196,246,204,245,48,244, +15,243,226,242,61,243,240,243,6,245,203,245,136,245,170,244,248,243,139,243,25,243,114,242,188,241,127,241,205,241,1,242, +209,241,193,241,43,242,200,242,242,242,68,242,78,241,24,241,207,241,229,242,233,243,99,244,251,243,27,243,65,242,109,241, +172,240,44,240,5,240,150,240,231,241,254,242,87,243,192,243,156,244,42,245,231,244,42,244,165,243,248,243,243,244,179,245, +245,245,52,246,148,246,192,246,96,246,113,245,151,244,124,244,233,244,155,245,214,246,54,248,207,248,241,248,146,249,111,250, +148,250,223,249,12,249,241,248,197,249,212,250,94,251,150,251,31,252,222,252,42,253,211,252,67,252,171,251,42,251,104,251, +186,252,73,254,104,255,86,0,254,0,2,1,191,0,142,0,67,0,76,0,65,1,136,2,101,3,249,3,84,4,115,4, +201,4,36,5,178,4,196,3,136,3,73,4,138,5,220,6,249,7,0,9,8,10,113,10,198,9,194,8,105,8,255,8, +45,10,87,11,247,11,250,11,175,11,130,11,162,11,177,11,101,11,43,11,94,11,254,11,120,13,205,15,162,17,37,18, +47,18,78,18,241,17,7,17,76,16,81,16,92,17,45,19,185,20,57,21,14,21,219,20,160,20,34,20,154,19,125,19, +236,19,199,20,220,21,151,22,145,22,127,22,53,23,22,24,5,24,225,22,97,21,182,20,205,21,180,23,97,24,169,23, +0,23,237,22,217,22,57,22,235,20,166,19,142,19,153,20,184,21,102,22,185,22,246,22,148,23,100,24,101,24,93,23, +47,22,148,21,193,21,95,22,108,22,139,21,200,20,218,20,20,21,183,20,235,19,89,19,129,19,56,20,221,20,23,21, +235,20,145,20,108,20,70,20,43,19,255,16,38,15,167,14,16,15,134,15,197,15,239,15,0,16,182,15,226,14,115,13, +143,11,239,9,95,9,156,9,234,9,59,10,112,10,11,10,128,9,136,9,91,9,26,8,173,6,61,6,153,6,247,6, +204,6,243,5,226,4,55,4,240,3,120,3,75,2,202,0,36,0,193,0,175,1,44,2,41,2,134,1,152,0,14,0, +116,255,247,253,60,252,80,251,9,251,246,250,254,250,198,250,20,250,72,249,179,248,59,248,161,247,216,246,81,246,100,246, +113,246,230,245,85,245,61,245,53,245,231,244,69,244,37,243,235,241,102,241,141,241,181,241,210,241,50,242,146,242,130,242, +20,242,133,241,173,240,162,239,53,239,183,239,84,240,164,240,12,241,65,241,194,240,46,240,1,240,128,239,107,238,160,237, +156,237,12,238,116,238,125,238,89,238,99,238,67,238,179,237,48,237,235,236,180,236,230,236,130,237,187,237,169,237,31,238, +185,238,157,238,18,238,158,237,51,237,238,236,11,237,81,237,124,237,182,237,55,238,213,238,58,239,139,239,31,240,156,240, +165,240,214,240,140,241,10,242,29,242,102,242,179,242,116,242,19,242,6,242,22,242,89,242,252,242,143,243,206,243,37,244, +212,244,166,245,106,246,253,246,76,247,127,247,225,247,133,248,30,249,150,249,78,250,44,251,97,251,206,250,56,250,229,249, +188,249,5,250,175,250,71,251,1,252,16,253,220,253,47,254,120,254,204,254,41,255,204,255,111,0,212,0,88,1,233,1, +250,1,178,1,127,1,75,1,38,1,51,1,44,1,43,1,199,1,226,2,218,3,129,4,240,4,71,5,178,5,250,5, +217,5,178,5,251,5,132,6,244,6,39,7,38,7,23,7,202,6,228,5,223,4,152,4,232,4,16,5,9,5,85,5, +43,6,19,7,48,7,81,6,89,5,15,5,71,5,121,5,96,5,53,5,106,5,201,5,166,5,254,4,57,4,102,3, +187,2,138,2,84,2,177,1,83,1,197,1,128,2,233,2,203,2,61,2,171,1,89,1,3,1,118,0,197,255,45,255, +25,255,108,255,81,255,158,254,232,253,45,253,111,252,98,252,193,252,91,252,115,251,81,251,214,251,242,251,96,251,176,250, +111,250,132,250,55,250,79,249,126,248,89,248,201,248,49,249,200,248,163,247,222,246,202,246,147,246,36,246,21,246,27,246, +195,245,167,245,75,246,253,246,218,246,234,245,215,244,41,244,33,244,191,244,98,245,68,245,189,244,159,244,156,244,43,244, +210,243,199,243,118,243,36,243,113,243,210,243,168,243,126,243,225,243,157,244,47,245,28,245,137,244,54,244,77,244,91,244, +97,244,126,244,127,244,131,244,159,244,86,244,187,243,150,243,246,243,81,244,147,244,216,244,63,245,28,246,80,247,15,248, +240,247,75,247,160,246,69,246,77,246,158,246,16,247,68,247,26,247,45,247,182,247,220,247,102,247,64,247,185,247,101,248, +57,249,29,250,188,250,67,251,207,251,227,251,134,251,93,251,128,251,187,251,61,252,0,253,168,253,42,254,160,254,205,254, +120,254,250,253,241,253,113,254,246,254,86,255,212,255,106,0,34,1,54,2,32,3,61,3,25,3,56,3,64,3,109,3, +62,4,202,4,109,4,78,4,246,4,97,5,71,5,88,5,190,5,105,6,83,7,239,7,247,7,33,8,238,8,217,9, +33,10,201,9,169,9,83,10,46,11,133,11,140,11,161,11,204,11,31,12,123,12,135,12,120,12,198,12,107,13,49,14, +239,14,124,15,38,16,94,17,177,18,84,19,69,19,237,18,140,18,106,18,156,18,221,18,17,19,108,19,36,20,21,21, +145,21,75,21,240,20,241,20,246,20,40,21,222,21,102,22,69,22,55,22,117,22,114,22,101,22,178,22,230,22,212,22, +216,22,210,22,147,22,143,22,249,22,55,23,211,22,36,22,220,21,22,22,90,22,155,22,14,23,90,23,93,23,163,23, +24,24,20,24,198,23,163,23,114,23,80,23,140,23,133,23,190,22,234,21,145,21,106,21,89,21,105,21,130,21,179,21, +0,22,23,22,216,21,86,21,175,20,71,20,89,20,85,20,164,19,109,18,54,17,117,16,71,16,48,16,187,15,38,15, +222,14,196,14,71,14,25,13,220,11,101,11,105,11,57,11,14,11,250,10,114,10,193,9,148,9,105,9,169,8,224,7, +111,7,40,7,18,7,247,6,85,6,119,5,246,4,163,4,29,4,93,3,125,2,252,1,69,2,190,2,137,2,156,1, +106,0,120,255,15,255,175,254,184,253,154,252,14,252,231,251,144,251,195,250,149,249,117,248,196,247,99,247,17,247,130,246, +153,245,251,244,87,245,11,246,4,246,60,245,67,244,108,243,216,242,90,242,171,241,2,241,163,240,121,240,122,240,127,240, +38,240,174,239,198,239,88,240,206,240,217,240,79,240,106,239,218,238,179,238,128,238,91,238,132,238,181,238,204,238,214,238, +138,238,191,237,213,236,71,236,74,236,113,236,1,236,75,235,89,235,42,236,233,236,45,237,181,236,159,235,243,234,37,235, +80,235,21,235,36,235,160,235,29,236,88,236,254,235,47,235,234,234,122,235,229,235,182,235,150,235,250,235,148,236,25,237, +166,237,79,238,199,238,253,238,82,239,208,239,66,240,6,241,25,242,131,242,48,242,44,242,111,242,46,242,202,241,251,241, +125,242,8,243,184,243,60,244,58,244,42,244,173,244,157,245,88,246,182,246,26,247,132,247,187,247,39,248,233,248,57,249, +46,249,210,249,178,250,161,250,49,250,41,250,230,249,119,249,241,249,2,251,161,251,33,252,47,253,117,254,125,255,57,0, +141,0,131,0,157,0,84,1,95,2,236,2,239,2,41,3,131,3,64,3,190,2,186,2,210,2,181,2,240,2,150,3, +58,4,6,5,33,6,24,7,180,7,10,8,250,7,173,7,159,7,214,7,212,7,83,7,177,6,133,6,200,6,233,6, +203,6,170,6,124,6,75,6,75,6,90,6,112,6,206,6,42,7,26,7,237,6,214,6,147,6,112,6,196,6,23,7, +18,7,215,6,67,6,111,5,243,4,214,4,192,4,189,4,161,4,27,4,156,3,168,3,36,4,241,4,175,5,143,5, +186,4,53,4,247,3,60,3,35,2,73,1,223,0,208,0,204,0,128,0,14,0,178,255,75,255,179,254,247,253,93,253, +72,253,155,253,157,253,9,253,93,252,31,252,102,252,153,252,250,251,20,251,247,250,6,251,248,249,88,248,110,247,85,247, +203,247,201,248,159,249,125,249,185,248,70,248,90,248,120,248,105,248,114,248,108,248,215,247,253,246,142,246,135,246,218,246, +178,247,43,248,67,247,232,245,131,245,192,245,196,245,161,245,157,245,176,245,175,245,102,245,23,245,50,245,134,245,202,245, +251,245,161,245,165,244,46,244,145,244,152,244,28,244,0,244,208,243,233,242,78,242,197,242,128,243,221,243,30,244,107,244, +195,244,92,245,73,246,53,247,198,247,253,247,248,247,149,247,235,246,162,246,229,246,3,247,181,246,104,246,68,246,66,246, +158,246,91,247,55,248,18,249,215,249,165,250,161,251,91,252,62,252,139,251,200,250,48,250,39,250,201,250,128,251,26,252, +219,252,106,253,87,253,240,252,130,252,44,252,64,252,158,252,212,252,11,253,169,253,170,254,252,255,61,1,181,1,151,1, +202,1,103,2,254,2,98,3,86,3,239,2,239,2,96,3,117,3,48,3,72,3,227,3,195,4,171,5,78,6,218,6, +210,7,35,9,47,10,155,10,129,10,90,10,104,10,69,10,217,9,186,9,239,9,249,9,26,10,168,10,46,11,122,11, +252,11,192,12,122,13,44,14,213,14,98,15,3,16,207,16,126,17,212,17,226,17,222,17,201,17,118,17,30,17,61,17, +200,17,149,18,222,19,96,21,34,22,186,21,157,20,130,19,36,19,127,19,212,19,54,20,60,21,96,22,33,23,255,23, +140,24,189,23,132,22,85,22,117,22,225,21,39,21,198,20,175,20,48,21,41,22,184,22,179,22,187,22,252,22,16,23, +180,22,75,22,149,22,137,23,55,24,40,24,168,23,232,22,17,22,123,21,22,21,117,20,142,19,211,18,177,18,29,19, +146,19,202,19,228,19,210,19,154,19,157,19,175,19,61,19,127,18,255,17,153,17,50,17,223,16,66,16,64,15,130,14, +42,14,139,13,139,12,198,11,150,11,212,11,28,12,15,12,114,11,67,10,20,9,160,8,134,8,225,7,9,7,215,6, +41,7,143,7,167,7,172,6,201,4,109,3,204,2,214,1,187,0,105,0,156,0,198,0,217,0,128,0,160,255,217,254, +105,254,250,253,131,253,35,253,180,252,28,252,100,251,173,250,30,250,119,249,103,248,79,247,150,246,245,245,54,245,139,244, +32,244,72,244,6,245,107,245,224,244,47,244,253,243,212,243,92,243,201,242,46,242,142,241,17,241,151,240,191,239,171,238, +31,238,123,238,30,239,103,239,131,239,123,239,13,239,164,238,161,238,81,238,126,237,21,237,59,237,38,237,214,236,175,236, +148,236,143,236,220,236,76,237,148,237,96,237,107,236,102,235,59,235,113,235,92,235,136,235,71,236,236,236,16,237,181,236, +244,235,126,235,196,235,19,236,250,235,13,236,134,236,255,236,77,237,91,237,252,236,91,236,220,235,203,235,67,236,255,236, +172,237,65,238,168,238,211,238,44,239,224,239,108,240,183,240,54,241,196,241,233,241,194,241,182,241,239,241,96,242,181,242, +178,242,147,242,172,242,42,243,26,244,45,245,238,245,98,246,184,246,242,246,44,247,112,247,151,247,247,247,250,248,32,250, +182,250,186,250,112,250,46,250,76,250,137,250,149,250,221,250,134,251,5,252,75,252,190,252,106,253,114,254,233,255,55,1, +31,2,36,3,13,4,39,4,180,3,78,3,1,3,246,2,102,3,15,4,176,4,47,5,119,5,226,5,193,6,134,7, +200,7,0,8,125,8,33,9,251,9,224,10,91,11,129,11,126,11,24,11,130,10,99,10,158,10,123,10,240,9,171,9, +255,9,87,10,35,10,193,9,192,9,231,9,222,9,217,9,12,10,126,10,60,11,250,11,67,12,61,12,50,12,11,12, +179,11,84,11,39,11,83,11,123,11,11,11,80,10,243,9,198,9,157,9,207,9,36,10,41,10,52,10,108,10,88,10, +254,9,147,9,221,8,36,8,253,7,1,8,143,7,213,6,252,5,25,5,143,4,73,4,219,3,133,3,103,3,213,2, +219,1,100,1,114,1,43,1,109,0,218,255,201,255,246,255,0,0,211,255,104,255,141,254,118,253,171,252,57,252,255,251, +31,252,86,252,16,252,113,251,5,251,17,251,164,251,66,252,1,252,14,251,145,250,171,250,154,250,78,250,27,250,216,249, +92,249,219,248,129,248,69,248,4,248,190,247,161,247,158,247,83,247,128,246,64,245,42,244,248,243,93,244,72,244,201,243, +248,243,2,245,23,246,100,246,121,245,26,244,180,243,244,243,106,243,142,242,185,242,127,243,247,243,48,244,13,244,111,243, +45,243,170,243,50,244,164,244,128,245,105,246,160,246,57,246,207,245,151,245,73,245,223,244,206,244,42,245,119,245,164,245, +242,245,41,246,72,246,192,246,73,247,38,247,146,246,73,246,98,246,187,246,67,247,186,247,0,248,74,248,165,248,205,248, +145,248,39,248,14,248,103,248,192,248,214,248,224,248,22,249,130,249,253,249,56,250,107,250,13,251,193,251,9,252,71,252, +178,252,238,252,78,253,31,254,151,254,113,254,108,254,105,254,224,253,123,253,215,253,125,254,65,255,83,0,35,1,83,1, +143,1,54,2,145,2,16,2,65,1,40,1,244,1,248,2,179,3,11,4,252,3,231,3,0,4,173,3,236,2,241,2, +236,3,177,4,31,5,230,5,180,6,37,7,174,7,59,8,60,8,27,8,130,8,50,9,207,9,139,10,121,11,69,12, +157,12,142,12,96,12,51,12,15,12,45,12,196,12,195,13,222,14,137,15,116,15,38,15,54,15,96,15,86,15,87,15, +123,15,174,15,33,16,189,16,32,17,55,17,17,17,197,16,184,16,215,16,140,16,9,16,254,15,53,16,59,16,69,16, +121,16,197,16,78,17,236,17,45,18,4,18,158,17,94,17,252,17,66,19,232,19,182,19,155,19,167,19,109,19,53,19, +11,19,147,18,73,18,188,18,82,19,99,19,99,19,193,19,2,20,159,19,248,18,191,18,211,18,170,18,107,18,95,18, +39,18,158,17,49,17,225,16,93,16,194,15,65,15,196,14,72,14,230,13,187,13,215,13,220,13,85,13,116,12,144,11, +175,10,40,10,81,10,152,10,135,10,158,10,248,10,192,10,184,9,169,8,45,8,17,8,244,7,238,7,31,8,29,8, +175,7,61,7,185,6,189,5,241,4,5,5,45,5,217,4,188,4,225,4,126,4,180,3,6,3,61,2,76,1,148,0, +254,255,87,255,222,254,172,254,123,254,7,254,67,253,125,252,251,251,119,251,173,250,212,249,35,249,187,248,197,248,216,248, +93,248,169,247,63,247,220,246,94,246,11,246,175,245,13,245,151,244,136,244,158,244,227,244,95,245,131,245,13,245,144,244, +111,244,60,244,166,243,66,243,146,243,18,244,39,244,14,244,249,243,164,243,32,243,164,242,2,242,74,241,206,240,131,240, +134,240,22,241,127,241,242,240,254,239,96,239,227,238,112,238,49,238,241,237,203,237,56,238,250,238,131,239,189,239,147,239, +240,238,52,238,133,237,206,236,143,236,75,237,132,238,123,239,255,239,60,240,122,240,208,240,1,241,0,241,24,241,102,241, +234,241,168,242,93,243,190,243,214,243,207,243,242,243,133,244,31,245,37,245,241,244,35,245,183,245,163,246,221,247,194,248, +5,249,47,249,58,249,150,248,188,247,178,247,76,248,191,248,50,249,58,250,101,251,200,251,159,251,194,251,255,251,209,251, +165,251,205,251,243,251,105,252,169,253,204,254,249,254,243,254,97,255,173,255,146,255,193,255,183,0,47,2,156,3,160,4, +46,5,66,5,17,5,14,5,10,5,103,4,189,3,56,4,132,5,152,6,79,7,152,7,54,7,195,6,220,6,253,6, +186,6,123,6,143,6,215,6,34,7,41,7,236,6,188,6,131,6,253,5,110,5,40,5,14,5,15,5,42,5,56,5, +51,5,57,5,37,5,209,4,93,4,5,4,243,3,20,4,49,4,56,4,58,4,42,4,5,4,212,3,142,3,87,3, +89,3,63,3,183,2,5,2,114,1,17,1,247,0,230,0,158,0,146,0,239,0,207,0,217,255,224,254,75,254,219,253, +168,253,174,253,116,253,222,252,34,252,80,251,150,250,34,250,209,249,140,249,98,249,42,249,227,248,210,248,249,248,29,249, +3,249,131,248,236,247,215,247,23,248,40,248,52,248,75,248,227,247,13,247,113,246,4,246,115,245,26,245,94,245,245,245, +90,246,98,246,67,246,37,246,228,245,168,245,206,245,252,245,149,245,232,244,115,244,247,243,96,243,19,243,8,243,17,243, +114,243,16,244,59,244,239,243,229,243,54,244,46,244,148,243,4,243,226,242,30,243,218,243,254,244,184,245,207,245,0,246, +60,246,212,245,62,245,42,245,41,245,45,245,220,245,167,246,150,246,88,246,205,246,76,247,30,247,180,246,191,246,113,247, +115,248,41,249,96,249,105,249,108,249,55,249,152,248,181,247,83,247,238,247,184,248,228,248,242,248,102,249,206,249,232,249, +245,249,246,249,236,249,23,250,105,250,161,250,198,250,230,250,250,250,53,251,190,251,124,252,77,253,31,254,209,254,68,255, +98,255,74,255,100,255,247,255,220,0,168,1,12,2,66,2,209,2,122,3,133,3,43,3,61,3,182,3,49,4,203,4, +150,5,105,6,46,7,101,7,131,6,42,5,148,4,246,4,190,5,139,6,76,7,14,8,185,8,255,8,210,8,130,8, +64,8,48,8,134,8,2,9,79,9,186,9,149,10,148,11,65,12,100,12,31,12,246,11,19,12,22,12,60,12,47,13, +176,14,7,16,16,17,182,17,231,17,23,18,97,18,37,18,144,17,164,17,142,18,159,19,99,20,173,20,146,20,192,20, +161,21,130,22,151,22,67,22,87,22,148,22,39,22,88,21,57,21,227,21,150,22,246,22,221,22,6,22,211,20,53,20, +103,20,221,20,70,21,220,21,181,22,84,23,55,23,127,22,147,21,180,20,96,20,235,20,171,21,13,22,154,22,139,23, +62,24,137,24,158,24,37,24,63,23,192,22,189,22,201,22,250,22,63,23,48,23,1,23,224,22,56,22,241,20,1,20, +226,19,22,20,57,20,102,20,155,20,133,20,234,19,250,18,250,17,249,16,30,16,161,15,98,15,51,15,18,15,190,14, +15,14,133,13,92,13,242,12,254,11,12,11,101,10,218,9,73,9,167,8,14,8,198,7,188,7,115,7,225,6,120,6, +100,6,95,6,46,6,211,5,86,5,180,4,35,4,215,3,143,3,1,3,92,2,169,1,194,0,25,0,2,0,193,255, +232,254,71,254,71,254,64,254,209,253,33,253,42,252,0,251,224,249,189,248,137,247,136,246,231,245,135,245,42,245,162,244, +29,244,212,243,135,243,254,242,127,242,25,242,151,241,33,241,208,240,96,240,216,239,108,239,243,238,135,238,167,238,60,239, +195,239,12,240,241,239,110,239,6,239,223,238,90,238,143,237,103,237,211,237,215,237,86,237,250,236,224,236,188,236,161,236, +183,236,210,236,224,236,255,236,4,237,201,236,144,236,83,236,166,235,211,234,141,234,148,234,102,234,75,234,92,234,46,234, +15,234,122,234,217,234,162,234,90,234,113,234,188,234,33,235,145,235,229,235,65,236,196,236,56,237,149,237,36,238,3,239, +15,240,14,241,206,241,121,242,102,243,121,244,47,245,30,245,91,244,145,243,77,243,107,243,201,243,193,244,22,246,239,246, +45,247,64,247,46,247,2,247,15,247,72,247,125,247,215,247,52,248,34,248,196,247,155,247,174,247,209,247,17,248,110,248, +197,248,42,249,208,249,200,250,2,252,104,253,171,254,59,255,3,255,189,254,246,254,93,255,176,255,52,0,246,0,166,1, +65,2,251,2,183,3,50,4,92,4,112,4,177,4,19,5,110,5,187,5,232,5,230,5,233,5,245,5,189,5,113,5, +125,5,175,5,223,5,128,6,125,7,253,7,191,7,30,7,91,6,176,5,47,5,150,4,253,3,202,3,210,3,224,3, +76,4,252,4,80,5,102,5,162,5,150,5,225,4,250,3,91,3,41,3,139,3,79,4,203,4,187,4,126,4,68,4, +210,3,37,3,186,2,246,2,177,3,116,4,227,4,210,4,82,4,156,3,198,2,199,1,184,0,200,255,37,255,250,254, +29,255,29,255,226,254,173,254,144,254,112,254,48,254,151,253,160,252,200,251,101,251,50,251,191,250,1,250,83,249,254,248, +222,248,237,248,138,249,96,250,110,250,224,249,213,249,30,250,156,249,113,248,159,247,97,247,91,247,96,247,126,247,222,247, +99,248,121,248,239,247,118,247,167,247,60,248,151,248,132,248,60,248,217,247,34,247,46,246,165,245,206,245,33,246,20,246, +176,245,129,245,8,246,212,246,216,246,32,246,155,245,47,245,58,244,94,243,140,243,63,244,119,244,25,244,114,243,214,242, +182,242,239,242,199,242,98,242,204,242,2,244,223,244,52,245,189,245,86,246,77,246,233,245,178,245,151,245,207,245,186,246, +198,247,64,248,154,248,78,249,253,249,100,250,177,250,248,250,77,251,168,251,161,251,33,251,174,250,141,250,170,250,36,251, +245,251,170,252,3,253,15,253,206,252,101,252,40,252,64,252,152,252,27,253,214,253,209,254,140,255,81,255,107,254,240,253, +42,254,157,254,44,255,208,255,82,0,0,1,35,2,11,3,68,3,139,3,68,4,173,4,119,4,95,4,209,4,128,5, +69,6,47,7,246,7,81,8,111,8,153,8,215,8,70,9,7,10,222,10,139,11,19,12,64,12,199,11,16,11,209,10, +26,11,170,11,86,12,211,12,29,13,174,13,140,14,245,14,142,14,223,13,111,13,67,13,57,13,75,13,127,13,225,13, +121,14,27,15,151,15,77,16,199,17,105,19,3,20,214,19,249,19,53,20,214,19,106,19,165,19,66,20,11,21,254,21, +162,22,189,22,156,22,49,22,131,21,72,21,181,21,57,22,184,22,88,23,180,23,169,23,133,23,13,23,2,22,33,21, +20,21,103,21,133,21,139,21,174,21,202,21,189,21,118,21,202,20,202,19,8,19,10,19,156,19,24,20,63,20,79,20, +111,20,111,20,40,20,201,19,153,19,159,19,225,19,83,20,116,20,232,19,43,19,178,18,38,18,89,17,181,16,100,16, +71,16,114,16,184,16,200,16,217,16,24,17,27,17,206,16,120,16,224,15,218,14,227,13,64,13,170,12,252,11,42,11, +30,10,33,9,132,8,25,8,161,7,25,7,125,6,226,5,109,5,7,5,135,4,246,3,128,3,105,3,176,3,158,3, +189,2,176,1,13,1,136,0,0,0,214,255,255,255,41,0,83,0,72,0,160,255,158,254,230,253,114,253,225,252,72,252, +240,251,184,251,113,251,57,251,6,251,148,250,239,249,79,249,145,248,174,247,25,247,210,246,46,246,244,244,156,243,128,242, +201,241,153,241,188,241,195,241,144,241,85,241,64,241,27,241,114,240,104,239,212,238,1,239,99,239,134,239,84,239,240,238, +185,238,170,238,62,238,175,237,214,237,107,238,132,238,59,238,39,238,56,238,36,238,227,237,163,237,211,237,123,238,215,238, +154,238,118,238,180,238,219,238,184,238,113,238,27,238,226,237,227,237,223,237,168,237,111,237,93,237,100,237,98,237,61,237, +13,237,12,237,28,237,236,236,151,236,150,236,8,237,144,237,253,237,106,238,174,238,125,238,51,238,105,238,249,238,103,239, +162,239,177,239,181,239,40,240,22,241,204,241,27,242,153,242,134,243,140,244,69,245,89,245,234,244,171,244,246,244,117,245, +236,245,121,246,24,247,133,247,135,247,83,247,100,247,188,247,13,248,154,248,166,249,159,250,38,251,176,251,107,252,250,252, +78,253,125,253,128,253,145,253,220,253,7,254,221,253,162,253,165,253,41,254,47,255,47,0,193,0,18,1,92,1,192,1, +105,2,24,3,120,3,243,3,232,4,188,5,230,5,180,5,121,5,93,5,166,5,54,6,102,6,33,6,27,6,168,6, +114,7,79,8,64,9,215,9,210,9,217,9,132,10,84,11,187,11,242,11,28,12,4,12,185,11,76,11,152,10,218,9, +124,9,97,9,59,9,10,9,248,8,39,9,114,9,125,9,124,9,226,9,60,10,19,10,22,10,147,10,188,10,127,10, +132,10,122,10,227,9,73,9,249,8,121,8,191,7,37,7,164,6,50,6,247,5,235,5,237,5,4,6,60,6,155,6, +225,6,148,6,188,5,210,4,223,3,217,2,73,2,117,2,180,2,128,2,19,2,143,1,180,0,170,255,9,255,213,254, +102,254,169,253,62,253,44,253,221,252,92,252,46,252,89,252,115,252,20,252,1,251,162,249,209,248,230,248,135,249,26,250, +250,249,27,249,67,248,205,247,66,247,166,246,168,246,70,247,161,247,47,247,122,246,103,246,224,246,255,246,167,246,147,246, +230,246,50,247,32,247,80,246,220,244,184,243,57,243,189,242,93,242,164,242,239,242,132,242,240,241,200,241,254,241,136,242, +30,243,45,243,223,242,196,242,151,242,234,241,25,241,148,240,85,240,134,240,115,241,177,242,80,243,19,243,175,242,184,242, +12,243,76,243,74,243,49,243,113,243,249,243,254,243,101,243,62,243,245,243,172,244,198,244,155,244,159,244,210,244,212,244, +119,244,71,244,201,244,159,245,40,246,64,246,243,245,152,245,210,245,156,246,79,247,187,247,4,248,23,248,19,248,81,248, +191,248,12,249,30,249,55,249,168,249,46,250,19,250,110,249,24,249,69,249,192,249,182,250,233,251,169,252,39,253,251,253, +184,254,216,254,213,254,45,255,156,255,209,255,240,255,71,0,237,0,165,1,16,2,230,1,72,1,251,0,152,1,150,2, +47,3,157,3,72,4,221,4,15,5,242,4,161,4,116,4,204,4,106,5,216,5,40,6,130,6,209,6,20,7,102,7, +219,7,121,8,7,9,85,9,193,9,146,10,98,11,205,11,20,12,130,12,237,12,24,13,58,13,210,13,209,14,180,15, +126,16,104,17,8,18,21,18,16,18,45,18,5,18,166,17,96,17,51,17,65,17,187,17,92,18,236,18,155,19,102,20, +254,20,41,21,213,20,110,20,116,20,143,20,63,20,249,19,40,20,119,20,202,20,49,21,24,21,76,20,161,19,155,19, +241,19,81,20,150,20,212,20,101,21,43,22,81,22,162,21,5,21,48,21,196,21,30,22,41,22,16,22,222,21,222,21, +99,22,240,22,175,22,210,21,48,21,4,21,5,21,225,20,118,20,58,20,178,20,57,21,233,20,23,20,129,19,63,19, +68,19,102,19,23,19,79,18,197,17,167,17,105,17,156,16,74,15,250,13,79,13,69,13,77,13,18,13,185,12,150,12, +197,12,207,12,107,12,13,12,232,11,146,11,41,11,245,10,101,10,58,9,95,8,71,8,81,8,42,8,0,8,177,7, +17,7,77,6,161,5,43,5,226,4,191,4,225,4,41,5,13,5,86,4,89,3,105,2,164,1,11,1,105,0,160,255, +228,254,104,254,35,254,220,253,60,253,71,252,123,251,230,250,12,250,221,248,198,247,42,247,67,247,199,247,235,247,132,247, +38,247,247,246,160,246,8,246,77,245,179,244,130,244,126,244,71,244,12,244,203,243,28,243,85,242,48,242,116,242,130,242, +84,242,37,242,61,242,199,242,66,243,9,243,94,242,197,241,55,241,181,240,96,240,1,240,115,239,9,239,222,238,146,238, +10,238,181,237,203,237,228,237,193,237,175,237,179,237,110,237,49,237,138,237,9,238,11,238,183,237,55,237,163,236,150,236, +31,237,101,237,93,237,205,237,150,238,3,239,7,239,219,238,155,238,138,238,194,238,26,239,135,239,14,240,164,240,75,241, +212,241,1,242,17,242,88,242,162,242,199,242,239,242,39,243,133,243,35,244,154,244,150,244,152,244,11,245,128,245,134,245, +97,245,140,245,28,246,207,246,140,247,85,248,214,248,205,248,152,248,148,248,182,248,17,249,163,249,18,250,122,250,79,251, +57,252,154,252,166,252,175,252,173,252,222,252,112,253,9,254,151,254,114,255,137,0,85,1,123,1,18,1,169,0,187,0, +52,1,229,1,166,2,47,3,171,3,138,4,68,5,15,5,115,4,49,4,4,4,214,3,26,4,170,4,64,5,47,6, +69,7,147,7,252,6,101,6,96,6,175,6,228,6,235,6,224,6,197,6,162,6,142,6,111,6,41,6,233,5,207,5, +213,5,5,6,40,6,220,5,120,5,148,5,1,6,89,6,148,6,120,6,228,5,75,5,232,4,143,4,136,4,253,4, +87,5,75,5,39,5,215,4,26,4,74,3,249,2,49,3,106,3,38,3,161,2,96,2,74,2,16,2,193,1,82,1, +170,0,29,0,176,255,245,254,56,254,50,254,177,254,9,255,245,254,90,254,77,253,64,252,128,251,29,251,41,251,126,251, +186,251,166,251,58,251,184,250,135,250,75,250,100,249,126,248,183,248,137,249,166,249,242,248,54,248,251,247,50,248,64,248, +169,247,211,246,122,246,165,246,205,246,197,246,229,246,31,247,167,246,103,245,159,244,224,244,69,245,111,245,230,245,110,246, +87,246,196,245,38,245,141,244,250,243,92,243,183,242,129,242,246,242,122,243,120,243,23,243,196,242,178,242,195,242,236,242, +106,243,36,244,119,244,54,244,198,243,84,243,20,243,76,243,139,243,75,243,15,243,85,243,179,243,235,243,80,244,216,244, +37,245,35,245,44,245,158,245,35,246,253,245,120,245,114,245,173,245,169,245,226,245,124,246,205,246,250,246,131,247,234,247, +178,247,60,247,201,246,131,246,242,246,244,247,133,248,108,248,147,248,96,249,5,250,204,249,75,249,169,249,241,250,34,252, +173,252,239,252,76,253,155,253,130,253,7,253,109,252,226,251,247,251,95,253,99,255,90,0,64,0,123,0,97,1,65,2, +174,2,109,2,230,1,91,2,227,3,237,4,204,4,100,4,89,4,155,4,249,4,35,5,16,5,49,5,229,5,71,7, +228,8,133,9,202,8,20,8,104,8,45,9,184,9,236,9,180,9,169,9,161,10,12,12,191,12,212,12,27,13,203,13, +127,14,165,14,14,14,124,13,216,13,7,15,43,16,170,16,173,16,226,16,196,17,43,19,112,20,214,20,89,20,10,20, +216,20,58,22,241,22,165,22,31,22,56,22,178,22,147,22,174,21,220,20,172,20,48,21,86,22,108,23,186,23,186,23, +20,24,76,24,197,23,194,22,249,21,7,22,185,22,16,23,218,22,197,22,179,22,58,22,246,21,25,22,217,21,92,21, +154,21,144,22,166,23,117,24,106,24,136,23,216,22,189,22,147,22,74,22,97,22,190,22,1,23,39,23,70,23,65,23, +224,22,39,22,122,21,17,21,173,20,53,20,224,19,187,19,172,19,152,19,64,19,156,18,251,17,131,17,41,17,230,16, +128,16,216,15,85,15,55,15,11,15,84,14,24,13,227,11,94,11,79,11,198,10,163,9,182,8,97,8,121,8,195,8, +217,8,124,8,246,7,124,7,6,7,154,6,1,6,7,5,45,4,244,3,30,4,67,4,11,4,49,3,58,2,229,1, +217,1,124,1,255,0,146,0,46,0,1,0,167,255,95,254,164,252,139,251,26,251,217,250,167,250,84,250,195,249,61,249, +222,248,110,248,186,247,148,246,51,245,80,244,32,244,10,244,170,243,26,243,141,242,49,242,230,241,85,241,194,240,187,240, +17,241,55,241,27,241,230,240,166,240,102,240,26,240,174,239,31,239,123,238,20,238,71,238,185,238,214,238,197,238,213,238, +210,238,168,238,146,238,122,238,56,238,254,237,7,238,53,238,27,238,121,237,190,236,89,236,3,236,159,235,132,235,146,235, +127,235,164,235,8,236,22,236,211,235,159,235,93,235,21,235,254,234,229,234,236,234,114,235,213,235,151,235,150,235,43,236, +128,236,143,236,239,236,106,237,229,237,199,238,172,239,249,239,14,240,79,240,116,240,123,240,169,240,254,240,110,241,8,242, +178,242,84,243,1,244,179,244,78,245,185,245,221,245,198,245,177,245,200,245,227,245,189,245,126,245,158,245,47,246,219,246, +126,247,0,248,55,248,128,248,64,249,252,249,70,250,143,250,13,251,126,251,250,251,136,252,215,252,247,252,11,253,228,252, +3,253,49,254,235,255,24,1,134,1,129,1,109,1,178,1,9,2,6,2,37,2,220,2,200,3,164,4,71,5,55,5, +206,4,247,4,108,5,134,5,179,5,54,6,152,6,246,6,155,7,252,7,200,7,119,7,63,7,1,7,246,6,79,7, +203,7,25,8,50,8,77,8,146,8,200,8,187,8,140,8,92,8,9,8,165,7,145,7,233,7,57,8,28,8,210,7, +162,7,63,7,165,6,123,6,234,6,99,7,144,7,88,7,219,6,198,6,37,7,215,6,163,5,219,4,255,4,72,5, +62,5,214,4,62,4,20,4,72,4,232,3,251,2,127,2,132,2,95,2,208,1,237,0,22,0,198,255,181,255,113,255, +99,255,156,255,70,255,84,254,175,253,103,253,210,252,9,252,210,251,97,252,235,252,168,252,210,251,23,251,129,250,213,249, +58,249,200,248,135,248,142,248,151,248,99,248,102,248,173,248,104,248,162,247,117,247,217,247,151,247,162,246,40,246,121,246, +171,246,60,246,159,245,24,245,120,244,6,244,46,244,182,244,83,245,7,246,89,246,221,245,3,245,6,244,155,242,111,241, +132,241,74,242,142,242,78,242,54,242,130,242,6,243,130,243,239,243,78,244,50,244,115,243,197,242,170,242,220,242,31,243, +62,243,2,243,217,242,60,243,166,243,190,243,7,244,148,244,241,244,47,245,124,245,195,245,54,246,214,246,8,247,173,246, +74,246,1,246,185,245,164,245,224,245,88,246,3,247,179,247,32,248,50,248,7,248,236,247,37,248,128,248,178,248,211,248, +231,248,220,248,33,249,233,249,101,250,39,250,2,250,139,250,78,251,253,251,233,252,236,253,81,254,16,254,230,253,227,253, +103,253,171,252,158,252,126,253,237,254,141,0,190,1,60,2,201,2,196,3,99,4,51,4,183,3,159,3,91,4,104,5, +122,5,155,4,90,4,17,5,193,5,49,6,138,6,146,6,204,6,237,7,54,9,184,9,204,9,230,9,255,9,49,10, +84,10,246,9,97,9,118,9,120,10,208,11,175,12,240,12,88,13,95,14,78,15,125,15,76,15,88,15,220,15,201,16, +175,17,2,18,242,17,35,18,173,18,25,19,77,19,175,19,76,20,235,20,187,21,224,22,169,23,130,23,233,22,113,22, +35,22,252,21,244,21,233,21,42,22,19,23,19,24,109,24,61,24,40,24,132,24,228,24,118,24,100,23,196,22,219,22, +27,23,95,23,105,23,225,22,131,22,255,22,102,23,21,23,2,23,156,23,77,24,15,25,227,25,249,25,38,25,73,24, +196,23,67,23,159,22,25,22,37,22,224,22,169,23,237,23,214,23,158,23,68,23,253,22,225,22,149,22,253,21,130,21, +78,21,19,21,164,20,54,20,233,19,127,19,198,18,226,17,15,17,140,16,122,16,107,16,223,15,27,15,145,14,252,13, +25,13,23,12,25,11,82,10,13,10,15,10,252,9,12,10,55,10,14,10,175,9,68,9,72,8,190,6,151,5,52,5, +50,5,84,5,86,5,225,4,34,4,101,3,144,2,166,1,9,1,252,0,84,1,154,1,130,1,20,1,66,0,12,255, +4,254,109,253,143,252,55,251,52,250,171,249,26,249,157,248,75,248,140,247,100,246,168,245,116,245,37,245,125,244,187,243, +28,243,187,242,109,242,231,241,27,241,79,240,201,239,103,239,222,238,83,238,19,238,239,237,184,237,188,237,240,237,230,237, +201,237,1,238,49,238,188,237,185,236,198,235,103,235,163,235,20,236,126,236,219,236,250,236,196,236,119,236,31,236,148,235, +242,234,105,234,9,234,238,233,238,233,165,233,47,233,227,232,158,232,67,232,22,232,50,232,123,232,235,232,107,233,220,233, +31,234,221,233,37,233,187,232,208,232,165,232,39,232,32,232,212,232,216,233,169,234,240,234,234,234,73,235,47,236,24,237, +158,237,165,237,117,237,172,237,83,238,210,238,27,239,116,239,161,239,160,239,8,240,209,240,81,241,155,241,63,242,34,243, +187,243,227,243,212,243,216,243,43,244,198,244,43,245,1,245,189,244,32,245,60,246,153,247,210,248,178,249,103,250,70,251, +239,251,185,251,247,250,98,250,32,250,133,250,247,251,164,253,124,254,200,254,23,255,69,255,142,255,124,0,196,1,218,2, +204,3,188,4,120,5,181,5,95,5,229,4,207,4,241,4,231,4,237,4,61,5,190,5,139,6,168,7,146,8,254,8, +21,9,229,8,159,8,190,8,64,9,174,9,249,9,102,10,229,10,23,11,198,10,67,10,37,10,130,10,213,10,211,10, +186,10,208,10,26,11,92,11,67,11,195,10,73,10,77,10,178,10,220,10,174,10,203,10,108,11,244,11,39,12,71,12, +46,12,155,11,208,10,247,9,21,9,120,8,15,8,102,7,213,6,22,7,199,7,2,8,162,7,7,7,137,6,67,6, +229,5,62,5,189,4,176,4,210,4,200,4,25,4,136,2,231,0,57,0,47,0,7,0,220,255,241,255,20,0,66,0, +115,0,24,0,247,254,212,253,95,253,61,253,209,252,73,252,46,252,103,252,129,252,73,252,171,251,190,250,13,250,0,250, +77,250,115,250,39,250,92,249,116,248,203,247,55,247,188,246,205,246,44,247,7,247,100,246,215,245,126,245,86,245,128,245, +203,245,235,245,199,245,13,245,141,243,22,242,206,241,171,242,101,243,17,243,72,242,42,242,206,242,132,243,252,243,34,244, +209,243,83,243,30,243,28,243,6,243,235,242,225,242,222,242,247,242,37,243,36,243,214,242,149,242,211,242,111,243,209,243, +246,243,109,244,229,244,132,244,183,243,173,243,91,244,231,244,26,245,19,245,168,244,247,243,165,243,11,244,192,244,48,245, +65,245,33,245,3,245,98,245,91,246,230,246,109,246,51,246,40,247,12,248,198,247,52,247,66,247,186,247,90,248,10,249, +105,249,117,249,192,249,102,250,226,250,247,250,9,251,113,251,23,252,197,252,73,253,82,253,241,252,18,253,74,254,179,255, +40,0,231,255,233,255,114,0,4,1,49,1,10,1,221,0,249,0,138,1,78,2,141,2,55,2,68,2,36,3,10,4, +84,4,64,4,62,4,188,4,216,5,209,6,236,6,152,6,156,6,17,7,178,7,28,8,249,7,176,7,24,8,57,9, +50,10,89,10,17,10,127,10,20,12,183,13,56,14,243,13,229,13,71,14,206,14,53,15,70,15,65,15,241,15,126,17, +194,18,175,18,225,17,178,17,89,18,28,19,146,19,155,19,66,19,73,19,22,20,130,20,181,19,233,18,91,19,108,20, +41,21,141,21,142,21,10,21,159,20,254,20,168,21,144,21,189,20,75,20,195,20,132,21,203,21,112,21,217,20,226,20, +241,21,250,22,210,22,249,21,178,21,76,22,75,23,247,23,172,23,180,22,67,22,223,22,173,23,176,23,230,22,48,22, +93,22,58,23,179,23,30,23,253,21,77,21,85,21,105,21,3,21,105,20,4,20,212,19,171,19,75,19,161,18,52,18, +125,18,1,19,251,18,77,18,47,17,8,16,118,15,143,15,142,15,233,14,241,13,79,13,67,13,74,13,169,12,135,11, +176,10,129,10,200,10,38,11,33,11,160,10,34,10,218,9,123,9,246,8,88,8,133,7,236,6,32,7,128,7,248,6, +195,5,225,4,132,4,67,4,227,3,43,3,15,2,102,1,236,1,172,2,19,2,84,0,227,254,56,254,187,253,249,252, +222,251,193,250,94,250,191,250,236,250,73,250,43,249,15,248,63,247,192,246,42,246,89,245,189,244,149,244,179,244,225,244, +170,244,194,243,228,242,224,242,56,243,244,242,247,241,218,240,111,240,18,241,248,241,254,241,40,241,76,240,225,239,202,239, +168,239,61,239,218,238,255,238,136,239,226,239,187,239,15,239,37,238,127,237,94,237,118,237,90,237,241,236,129,236,114,236, +209,236,38,237,228,236,20,236,105,235,93,235,126,235,32,235,136,234,141,234,71,235,239,235,3,236,208,235,188,235,176,235, +150,235,148,235,125,235,60,235,154,235,252,236,57,238,109,238,68,238,85,238,104,238,156,238,18,239,81,239,124,239,94,240, +182,241,130,242,136,242,52,242,240,241,28,242,166,242,9,243,54,243,126,243,250,243,173,244,108,245,156,245,40,245,231,244, +60,245,185,245,57,246,220,246,77,247,93,247,152,247,70,248,243,248,93,249,230,249,175,250,75,251,148,251,228,251,102,252, +254,252,181,253,128,254,22,255,96,255,173,255,66,0,26,1,234,1,88,2,100,2,121,2,245,2,206,3,139,4,175,4, +136,4,239,4,212,5,63,6,248,5,180,5,203,5,16,6,118,6,233,6,48,7,62,7,64,7,105,7,199,7,22,8, +27,8,253,7,255,7,47,8,122,8,191,8,4,9,143,9,41,10,18,10,74,9,164,8,108,8,121,8,229,8,125,9, +161,9,105,9,109,9,154,9,135,9,70,9,25,9,30,9,99,9,179,9,157,9,21,9,159,8,176,8,12,9,252,8, +60,8,88,7,219,6,169,6,123,6,52,6,193,5,49,5,206,4,180,4,152,4,29,4,65,3,98,2,220,1,147,1, +24,1,86,0,213,255,240,255,57,0,26,0,171,255,62,255,167,254,197,253,8,253,196,252,201,252,210,252,167,252,48,252, +150,251,226,250,235,249,57,249,173,249,218,250,61,251,90,250,48,249,166,248,136,248,36,248,115,247,12,247,5,247,248,246, +249,246,59,247,78,247,248,246,164,246,96,246,212,245,36,245,163,244,54,244,205,243,134,243,111,243,168,243,19,244,19,244, +113,243,192,242,91,242,52,242,107,242,200,242,158,242,3,242,150,241,60,241,174,240,125,240,3,241,182,241,76,242,227,242, +31,243,203,242,154,242,226,242,236,242,127,242,92,242,209,242,101,243,189,243,184,243,109,243,114,243,3,244,62,244,143,243, +212,242,8,243,0,244,5,245,152,245,161,245,121,245,106,245,71,245,235,244,141,244,99,244,122,244,171,244,186,244,214,244, +110,245,83,246,6,247,144,247,239,247,190,247,51,247,9,247,101,247,250,247,152,248,223,248,211,248,55,249,43,250,224,250, +50,251,154,251,232,251,5,252,156,252,162,253,40,254,31,254,60,254,135,254,159,254,135,254,100,254,119,254,49,255,106,0, +84,1,165,1,204,1,30,2,159,2,11,3,204,2,249,1,203,1,217,2,253,3,46,4,250,3,54,4,224,4,159,5, +41,6,71,6,53,6,117,6,16,7,185,7,62,8,136,8,193,8,69,9,236,9,22,10,192,9,157,9,56,10,125,11, +197,12,84,13,93,13,199,13,176,14,102,15,155,15,121,15,68,15,125,15,70,16,229,16,245,16,22,17,209,17,231,18, +214,19,47,20,235,19,195,19,75,20,13,21,88,21,32,21,145,20,220,19,126,19,183,19,25,20,63,20,110,20,1,21, +160,21,159,21,7,21,167,20,245,20,158,21,56,22,133,22,72,22,164,21,43,21,3,21,209,20,164,20,203,20,11,21, +39,21,114,21,244,21,27,22,238,21,48,22,240,22,101,23,62,23,198,22,55,22,225,21,48,22,237,22,66,23,233,22, +110,22,58,22,0,22,65,21,48,20,139,19,161,19,11,20,88,20,70,20,160,19,193,18,78,18,17,18,107,17,162,16, +82,16,105,16,169,16,226,16,131,16,119,15,186,14,148,14,247,13,146,12,112,11,22,11,13,11,23,11,51,11,12,11, +130,10,33,10,60,10,78,10,196,9,212,8,249,7,101,7,76,7,204,7,59,8,211,7,232,6,60,6,183,5,217,4, +160,3,88,2,140,1,223,1,249,2,116,3,169,2,85,1,68,0,136,255,230,254,41,254,70,253,126,252,19,252,234,251, +188,251,76,251,123,250,141,249,220,248,19,248,168,246,14,245,101,244,223,244,145,245,159,245,227,244,226,243,88,243,103,243, +126,243,75,243,254,242,195,242,205,242,46,243,58,243,101,242,128,241,98,241,120,241,17,241,114,240,206,239,46,239,26,239, +167,239,8,240,240,239,189,239,119,239,54,239,80,239,81,239,136,238,117,237,254,236,12,237,46,237,67,237,24,237,155,236, +30,236,195,235,69,235,152,234,48,234,113,234,57,235,0,236,103,236,120,236,97,236,73,236,71,236,41,236,187,235,121,235, +250,235,227,236,121,237,186,237,229,237,243,237,24,238,159,238,3,239,185,238,122,238,57,239,139,240,138,241,22,242,87,242, +83,242,126,242,35,243,159,243,139,243,132,243,247,243,130,244,216,244,236,244,143,244,255,243,242,243,154,244,114,245,251,245, +54,246,127,246,248,246,74,247,98,247,176,247,54,248,175,248,125,249,220,250,226,251,227,251,140,251,162,251,33,252,211,252, +143,253,26,254,116,254,220,254,109,255,253,255,72,0,103,0,250,0,49,2,72,3,192,3,6,4,113,4,236,4,129,5, +15,6,38,6,254,5,45,6,88,6,202,5,1,5,240,4,135,5,61,6,3,7,172,7,189,7,120,7,159,7,31,8, +114,8,182,8,36,9,92,9,55,9,34,9,64,9,68,9,23,9,207,8,123,8,52,8,8,8,11,8,112,8,17,9, +100,9,83,9,79,9,100,9,73,9,245,8,164,8,161,8,31,9,223,9,104,10,158,10,161,10,122,10,39,10,124,9, +90,8,55,7,166,6,115,6,54,6,30,6,86,6,132,6,77,6,165,5,193,4,4,4,172,3,142,3,110,3,50,3, +199,2,54,2,163,1,6,1,68,0,113,255,175,254,28,254,206,253,173,253,137,253,100,253,73,253,27,253,204,252,132,252, +122,252,177,252,211,252,132,252,208,251,11,251,131,250,103,250,145,250,147,250,50,250,130,249,168,248,7,248,254,247,13,248, +123,247,193,246,199,246,54,247,63,247,35,247,104,247,125,247,173,246,138,245,51,245,169,245,247,245,128,245,113,244,97,243, +224,242,206,242,101,242,176,241,177,241,130,242,2,243,186,242,73,242,30,242,38,242,42,242,254,241,237,241,121,242,86,243, +206,243,242,243,12,244,213,243,44,243,136,242,73,242,136,242,29,243,118,243,53,243,226,242,19,243,144,243,4,244,152,244, +97,245,253,245,48,246,44,246,15,246,191,245,86,245,9,245,198,244,108,244,25,244,223,243,195,243,38,244,35,245,231,245, +194,245,48,245,14,245,115,245,220,245,244,245,245,245,87,246,50,247,50,248,247,248,68,249,39,249,24,249,76,249,64,249, +188,248,120,248,24,249,77,250,110,251,52,252,156,252,178,252,173,252,224,252,59,253,87,253,92,253,1,254,56,255,46,0, +166,0,248,0,35,1,41,1,66,1,38,1,152,0,80,0,224,0,169,1,35,2,155,2,38,3,99,3,111,3,194,3, +62,4,119,4,170,4,115,5,189,6,181,7,214,7,112,7,46,7,127,7,33,8,66,8,191,7,191,7,1,9,153,10, +102,11,163,11,0,12,110,12,172,12,243,12,140,13,87,14,40,15,16,16,13,17,210,17,39,18,17,18,200,17,177,17, +21,18,165,18,227,18,207,18,181,18,206,18,52,19,151,19,145,19,150,19,70,20,7,21,3,21,162,20,126,20,103,20, +97,20,175,20,234,20,184,20,147,20,185,20,180,20,111,20,62,20,34,20,16,20,76,20,196,20,4,21,250,20,237,20, +239,20,17,21,124,21,248,21,20,22,17,22,120,22,248,22,234,22,138,22,103,22,104,22,50,22,188,21,45,21,234,20, +52,21,125,21,37,21,135,20,41,20,219,19,152,19,182,19,240,19,198,19,116,19,77,19,237,18,17,18,21,17,60,16, +127,15,28,15,65,15,95,15,220,14,30,14,194,13,105,13,155,12,216,11,135,11,55,11,220,10,251,10,79,11,35,11, +172,10,117,10,68,10,178,9,209,8,233,7,103,7,144,7,235,7,186,7,19,7,138,6,45,6,186,5,73,5,245,4, +145,4,32,4,230,3,180,3,13,3,23,2,93,1,211,0,52,0,179,255,75,255,119,254,77,253,138,252,79,252,25,252, +176,251,33,251,92,250,124,249,184,248,247,247,11,247,57,246,241,245,48,246,143,246,189,246,176,246,119,246,26,246,133,245, +142,244,117,243,243,242,48,243,134,243,199,243,83,244,215,244,174,244,20,244,117,243,149,242,155,241,83,241,229,241,157,242, +249,242,224,242,118,242,5,242,159,241,247,240,12,240,67,239,228,238,247,238,77,239,109,239,14,239,147,238,122,238,150,238, +92,238,174,237,242,236,174,236,9,237,161,237,238,237,223,237,220,237,249,237,216,237,117,237,68,237,114,237,215,237,118,238, +48,239,151,239,171,239,212,239,30,240,96,240,175,240,255,240,25,241,74,241,2,242,226,242,45,243,4,243,40,243,180,243, +6,244,227,243,169,243,124,243,88,243,163,243,117,244,16,245,26,245,38,245,117,245,166,245,186,245,215,245,177,245,85,245, +118,245,57,246,241,246,64,247,128,247,240,247,96,248,163,248,236,248,120,249,70,250,65,251,72,252,10,253,95,253,125,253, +136,253,149,253,234,253,134,254,6,255,130,255,99,0,74,1,145,1,124,1,183,1,99,2,77,3,37,4,135,4,145,4, +216,4,95,5,109,5,156,4,100,3,139,2,145,2,106,3,136,4,99,5,242,5,104,6,179,6,164,6,85,6,252,5, +198,5,25,6,23,7,254,7,11,8,153,7,103,7,127,7,140,7,102,7,30,7,8,7,120,7,73,8,247,8,30,9, +178,8,49,8,49,8,99,8,19,8,140,7,173,7,129,8,105,9,228,9,197,9,74,9,240,8,181,8,42,8,61,7, +77,6,191,5,204,5,55,6,101,6,250,5,23,5,26,4,110,3,46,3,230,2,83,2,227,1,244,1,76,2,127,2, +59,2,92,1,51,0,81,255,207,254,69,254,148,253,43,253,76,253,152,253,162,253,111,253,33,253,214,252,198,252,220,252, +157,252,9,252,154,251,97,251,47,251,38,251,37,251,176,250,18,250,248,249,239,249,3,249,145,247,217,246,29,247,155,247, +213,247,189,247,23,247,251,245,43,245,242,244,187,244,75,244,5,244,251,243,16,244,53,244,214,243,189,242,71,242,87,243, +105,244,252,243,199,242,238,241,129,241,94,241,123,241,138,241,152,241,10,242,162,242,194,242,122,242,106,242,217,242,118,243, +221,243,244,243,196,243,73,243,227,242,74,243,108,244,35,245,172,244,171,243,57,243,135,243,236,243,16,244,93,244,45,245, +19,246,65,246,122,245,113,244,19,244,116,244,242,244,74,245,161,245,184,245,59,245,139,244,81,244,152,244,239,244,18,245, +58,245,182,245,87,246,199,246,39,247,188,247,107,248,253,248,46,249,190,248,35,248,76,248,92,249,164,250,152,251,238,251, +181,251,158,251,6,252,89,252,82,252,129,252,31,253,201,253,75,254,148,254,162,254,228,254,192,255,188,0,251,0,124,0, +8,0,40,0,175,0,55,1,144,1,179,1,236,1,157,2,96,3,98,3,222,2,209,2,108,3,54,4,232,4,41,5, +217,4,218,4,230,5,51,7,207,7,22,8,154,8,22,9,55,9,27,9,223,8,201,8,117,9,229,10,5,12,11,12, +144,11,133,11,25,12,8,13,254,13,145,14,199,14,18,15,113,15,168,15,252,15,152,16,15,17,90,17,214,17,75,18, +83,18,50,18,71,18,163,18,71,19,208,19,169,19,15,19,209,18,29,19,140,19,212,19,234,19,4,20,116,20,11,21, +68,21,252,20,136,20,87,20,138,20,185,20,122,20,28,20,46,20,166,20,36,21,108,21,101,21,42,21,4,21,18,21, +46,21,31,21,218,20,188,20,48,21,222,21,242,21,81,21,189,20,207,20,86,21,171,21,93,21,163,20,54,20,126,20, +248,20,194,20,222,19,54,19,42,19,33,19,195,18,97,18,56,18,78,18,136,18,88,18,110,17,121,16,33,16,17,16, +249,15,248,15,201,15,14,15,48,14,191,13,145,13,56,13,196,12,141,12,154,12,133,12,250,11,12,11,18,10,143,9, +189,9,10,10,188,9,2,9,105,8,254,7,180,7,145,7,53,7,113,6,222,5,221,5,8,6,10,6,190,5,252,4, +43,4,219,3,177,3,255,2,0,2,69,1,215,0,151,0,126,0,80,0,220,255,79,255,208,254,48,254,83,253,127,252, +3,252,215,251,176,251,47,251,45,250,22,249,140,248,131,248,96,248,231,247,97,247,5,247,212,246,148,246,4,246,108,245, +67,245,77,245,8,245,140,244,12,244,125,243,50,243,122,243,218,243,202,243,135,243,103,243,91,243,66,243,12,243,178,242, +70,242,209,241,93,241,17,241,234,240,192,240,180,240,223,240,237,240,168,240,66,240,220,239,144,239,140,239,150,239,74,239, +210,238,137,238,96,238,56,238,15,238,188,237,57,237,241,236,40,237,126,237,118,237,43,237,49,237,180,237,63,238,122,238, +133,238,127,238,106,238,105,238,146,238,187,238,201,238,230,238,69,239,201,239,250,239,178,239,155,239,69,240,62,241,203,241, +217,241,181,241,157,241,195,241,40,242,146,242,224,242,27,243,71,243,81,243,58,243,30,243,42,243,116,243,242,243,109,244, +127,244,52,244,63,244,191,244,230,244,149,244,182,244,128,245,93,246,42,247,246,247,134,248,255,248,182,249,75,250,110,250, +128,250,188,250,246,250,78,251,216,251,59,252,94,252,157,252,37,253,217,253,162,254,96,255,231,255,48,0,112,0,247,0, +195,1,80,2,76,2,39,2,94,2,179,2,180,2,136,2,164,2,10,3,132,3,14,4,146,4,192,4,196,4,47,5, +220,5,22,6,220,5,194,5,254,5,131,6,63,7,195,7,185,7,146,7,226,7,117,8,153,8,30,8,154,7,183,7, +94,8,229,8,231,8,142,8,85,8,148,8,220,8,126,8,234,7,45,8,35,9,225,9,57,10,82,10,14,10,182,9, +205,9,250,9,136,9,148,8,210,7,139,7,111,7,40,7,214,6,202,6,248,6,15,7,236,6,147,6,37,6,198,5, +88,5,189,4,58,4,15,4,253,3,194,3,93,3,212,2,63,2,214,1,169,1,186,1,10,2,57,2,231,1,118,1, +105,1,120,1,43,1,149,0,207,255,201,254,236,253,204,253,29,254,31,254,208,253,175,253,181,253,169,253,165,253,114,253, +156,252,157,251,73,251,49,251,127,250,141,249,24,249,18,249,49,249,68,249,18,249,199,248,220,248,55,249,78,249,216,248, +235,247,24,247,19,247,138,247,91,247,79,246,89,245,56,245,210,245,123,246,141,246,49,246,22,246,42,246,198,245,30,245, +20,245,175,245,16,246,213,245,142,245,169,245,213,245,218,245,6,246,77,246,29,246,130,245,36,245,60,245,142,245,243,245, +43,246,254,245,196,245,228,245,15,246,230,245,195,245,19,246,124,246,122,246,58,246,37,246,30,246,235,245,182,245,160,245, +169,245,235,245,49,246,0,246,158,245,198,245,65,246,87,246,26,246,2,246,46,246,187,246,164,247,114,248,238,248,83,249, +133,249,45,249,162,248,141,248,240,248,81,249,124,249,167,249,242,249,81,250,197,250,14,251,189,250,37,250,59,250,11,251, +222,251,180,252,197,253,125,254,143,254,132,254,97,254,209,253,96,253,169,253,74,254,226,254,146,255,33,0,61,0,55,0, +86,0,93,0,73,0,120,0,241,0,101,1,190,1,26,2,142,2,36,3,190,3,12,4,247,3,240,3,81,4,235,4, +121,5,241,5,77,6,162,6,25,7,103,7,65,7,31,7,123,7,253,7,115,8,40,9,236,9,109,10,28,11,60,12, +19,13,59,13,58,13,101,13,133,13,148,13,205,13,61,14,209,14,129,15,30,16,54,16,166,15,24,15,54,15,220,15, +174,16,134,17,225,17,112,17,247,16,32,17,105,17,114,17,149,17,195,17,181,17,215,17,76,18,103,18,26,18,63,18, +239,18,71,19,238,18,114,18,102,18,226,18,159,19,17,20,221,19,98,19,72,19,143,19,213,19,53,20,203,20,33,21, +23,21,47,21,85,21,255,20,108,20,79,20,160,20,226,20,202,20,70,20,162,19,115,19,198,19,250,19,173,19,24,19, +168,18,141,18,166,18,147,18,26,18,134,17,65,17,6,17,61,16,55,15,203,14,215,14,172,14,109,14,97,14,13,14, +69,13,157,12,86,12,63,12,53,12,235,11,94,11,65,11,155,11,85,11,48,10,74,9,58,9,138,9,184,9,115,9, +193,8,62,8,63,8,61,8,212,7,89,7,12,7,187,6,69,6,176,5,228,4,240,3,72,3,60,3,91,3,254,2, +21,2,21,1,118,0,115,0,130,0,171,255,6,254,217,252,159,252,130,252,246,251,74,251,186,250,62,250,219,249,120,249, +225,248,59,248,253,247,73,248,182,248,211,248,142,248,249,247,54,247,180,246,148,246,76,246,187,245,158,245,26,246,116,246, +96,246,23,246,156,245,35,245,42,245,140,245,179,245,133,245,44,245,189,244,88,244,232,243,45,243,90,242,238,241,245,241, +30,242,48,242,15,242,174,241,53,241,236,240,224,240,161,240,214,239,18,239,21,239,123,239,117,239,31,239,234,238,215,238, +238,238,57,239,73,239,254,238,245,238,115,239,241,239,3,240,186,239,99,239,84,239,171,239,36,240,126,240,193,240,13,241, +104,241,203,241,53,242,146,242,216,242,41,243,137,243,160,243,64,243,208,242,179,242,208,242,236,242,238,242,239,242,89,243, +59,244,214,244,201,244,160,244,139,244,66,244,37,244,144,244,230,244,220,244,18,245,171,245,18,246,40,246,60,246,107,246, +214,246,190,247,36,249,158,250,137,251,149,251,18,251,131,250,54,250,127,250,84,251,27,252,169,252,144,253,182,254,87,255, +115,255,181,255,42,0,118,0,175,0,23,1,130,1,162,1,149,1,166,1,185,1,134,1,83,1,160,1,101,2,61,3, +238,3,110,4,191,4,224,4,187,4,84,4,252,3,249,3,82,4,242,4,160,5,12,6,44,6,36,6,11,6,2,6, +24,6,35,6,35,6,89,6,213,6,116,7,247,7,248,7,96,7,191,6,131,6,141,6,194,6,35,7,149,7,6,8, +109,8,165,8,191,8,201,8,116,8,216,7,170,7,240,7,231,7,80,7,120,6,141,5,215,4,171,4,197,4,179,4, +135,4,129,4,143,4,90,4,168,3,193,2,55,2,12,2,208,1,112,1,11,1,153,0,70,0,86,0,135,0,100,0, +9,0,216,255,216,255,185,255,73,255,158,254,234,253,89,253,4,253,219,252,152,252,53,252,14,252,75,252,138,252,74,252, +136,251,228,250,212,250,226,250,101,250,181,249,131,249,205,249,22,250,224,249,220,248,114,247,105,246,221,245,178,245,52,246, +27,247,112,247,20,247,166,246,73,246,3,246,35,246,131,246,178,246,158,246,11,246,158,244,232,242,20,242,95,242,21,243, +153,243,196,243,164,243,97,243,67,243,123,243,212,243,246,243,245,243,15,244,48,244,66,244,110,244,187,244,0,245,20,245, +201,244,39,244,173,243,194,243,112,244,137,245,107,246,61,246,45,245,87,244,44,244,40,244,251,243,226,243,46,244,246,244, +231,245,108,246,55,246,148,245,20,245,253,244,22,245,250,244,134,244,249,243,232,243,186,244,224,245,127,246,179,246,241,246, +4,247,224,246,30,247,218,247,168,248,129,249,58,250,33,250,65,249,149,248,168,248,43,249,191,249,81,250,237,250,119,251, +181,251,211,251,67,252,222,252,35,253,43,253,98,253,198,253,30,254,88,254,148,254,22,255,206,255,71,0,88,0,78,0, +74,0,58,0,56,0,108,0,229,0,141,1,254,1,10,2,64,2,255,2,156,3,112,3,246,2,7,3,163,3,44,4, +129,4,30,5,43,6,32,7,125,7,81,7,17,7,68,7,237,7,122,8,200,8,99,9,88,10,20,11,144,11,42,12, +206,12,75,13,189,13,47,14,180,14,109,15,35,16,126,16,144,16,149,16,154,16,155,16,151,16,183,16,52,17,206,17, +10,18,26,18,102,18,153,18,98,18,78,18,211,18,129,19,201,19,205,19,232,19,9,20,244,19,234,19,52,20,124,20, +149,20,244,20,109,21,33,21,78,20,44,20,231,20,162,21,241,21,3,22,35,22,144,22,21,23,63,23,37,23,62,23, +145,23,223,23,6,24,230,23,129,23,49,23,68,23,147,23,170,23,64,23,142,22,25,22,25,22,57,22,251,21,87,21, +231,20,31,21,146,21,129,21,207,20,246,19,128,19,152,19,169,19,28,19,56,18,127,17,216,16,81,16,69,16,96,16, +248,15,59,15,175,14,76,14,213,13,68,13,208,12,207,12,58,13,124,13,45,13,128,12,238,11,199,11,192,11,39,11, +18,10,89,9,27,9,232,8,222,8,3,9,169,8,193,7,41,7,5,7,146,6,151,5,168,4,70,4,92,4,71,4, +110,3,1,2,221,0,119,0,101,0,14,0,94,255,135,254,163,253,220,252,75,252,149,251,126,250,135,249,19,249,187,248, +42,248,156,247,60,247,17,247,43,247,86,247,57,247,205,246,51,246,140,245,30,245,243,244,157,244,7,244,176,243,218,243, +41,244,39,244,185,243,37,243,210,242,249,242,80,243,45,243,95,242,193,241,247,241,80,242,13,242,131,241,237,240,33,240, +149,239,153,239,108,239,212,238,180,238,42,239,92,239,4,239,78,238,82,237,164,236,204,236,46,237,248,236,111,236,71,236, +169,236,66,237,135,237,36,237,145,236,143,236,27,237,148,237,184,237,205,237,1,238,71,238,133,238,138,238,81,238,72,238, +183,238,79,239,234,239,196,240,126,241,131,241,82,241,169,241,27,242,12,242,210,241,211,241,240,241,44,242,144,242,199,242, +166,242,148,242,220,242,38,243,26,243,16,243,133,243,38,244,110,244,161,244,238,244,228,244,162,244,220,244,110,245,203,245, +43,246,199,246,89,247,0,248,218,248,74,249,54,249,131,249,122,250,104,251,229,251,16,252,26,252,106,252,43,253,215,253, +9,254,43,254,161,254,42,255,151,255,11,0,118,0,191,0,42,1,200,1,19,2,232,1,214,1,249,1,237,1,240,1, +85,2,164,2,183,2,42,3,229,3,40,4,9,4,14,4,31,4,63,4,212,4,171,5,45,6,121,6,224,6,2,7, +146,6,29,6,52,6,144,6,209,6,69,7,24,8,199,8,254,8,245,8,199,8,138,8,143,8,177,8,148,8,175,8, +113,9,32,10,37,10,239,9,185,9,97,9,63,9,115,9,111,9,47,9,67,9,120,9,55,9,168,8,27,8,100,7, +155,6,75,6,113,6,108,6,26,6,255,5,67,6,117,6,67,6,186,5,242,4,48,4,207,3,175,3,128,3,123,3, +223,3,39,4,197,3,11,3,161,2,133,2,54,2,155,1,60,1,115,1,228,1,6,2,168,1,251,0,143,0,162,0, +134,0,182,255,246,254,239,254,6,255,163,254,255,253,59,253,54,252,82,251,22,251,123,251,252,251,1,252,108,251,208,250, +138,250,45,250,117,249,231,248,245,248,72,249,36,249,73,248,99,247,88,247,246,247,7,248,24,247,36,246,6,246,59,246, +236,245,72,245,242,244,240,244,12,245,79,245,156,245,181,245,162,245,91,245,207,244,131,244,219,244,37,245,220,244,180,244, +37,245,149,245,172,245,195,245,221,245,171,245,46,245,146,244,251,243,177,243,235,243,99,244,160,244,144,244,133,244,174,244, +246,244,86,245,210,245,32,246,236,245,83,245,202,244,162,244,177,244,151,244,119,244,219,244,141,245,176,245,59,245,13,245, +152,245,143,246,127,247,232,247,154,247,45,247,79,247,234,247,132,248,238,248,53,249,80,249,69,249,66,249,101,249,130,249, +145,249,242,249,180,250,73,251,104,251,101,251,118,251,171,251,51,252,231,252,73,253,99,253,172,253,41,254,124,254,133,254, +102,254,87,254,129,254,226,254,78,255,157,255,199,255,249,255,100,0,210,0,226,0,149,0,76,0,99,0,252,0,214,1, +124,2,202,2,3,3,73,3,117,3,103,3,92,3,170,3,56,4,168,4,245,4,72,5,101,5,51,5,83,5,30,6, +249,6,110,7,213,7,92,8,165,8,172,8,243,8,144,9,16,10,91,10,194,10,53,11,111,11,178,11,65,12,188,12, +248,12,81,13,173,13,151,13,75,13,52,13,26,13,222,12,206,12,241,12,14,13,50,13,116,13,215,13,116,14,30,15, +98,15,52,15,245,14,213,14,198,14,190,14,190,14,232,14,91,15,204,15,227,15,194,15,167,15,130,15,90,15,109,15, +205,15,87,16,252,16,149,17,222,17,214,17,188,17,167,17,144,17,135,17,112,17,50,17,59,17,196,17,252,17,80,17, +109,16,225,15,90,15,246,14,42,15,135,15,169,15,15,16,159,16,116,16,173,15,33,15,186,14,48,14,7,14,78,14, +75,14,247,13,237,13,8,14,175,13,241,12,73,12,221,11,171,11,184,11,195,11,122,11,46,11,125,11,38,12,80,12, +203,11,25,11,134,10,45,10,53,10,94,10,11,10,51,9,131,8,99,8,102,8,245,7,39,7,150,6,136,6,182,6, +191,6,102,6,178,5,26,5,13,5,56,5,232,4,24,4,105,3,41,3,20,3,219,2,93,2,140,1,157,0,10,0, +206,255,88,255,181,254,133,254,166,254,113,254,254,253,175,253,69,253,163,252,62,252,42,252,252,251,162,251,106,251,129,251, +208,251,231,251,114,251,205,250,126,250,117,250,119,250,132,250,127,250,92,250,99,250,146,250,115,250,246,249,141,249,104,249, +98,249,85,249,22,249,142,248,237,247,104,247,232,246,91,246,224,245,120,245,7,245,180,244,167,244,156,244,97,244,71,244, +126,244,166,244,122,244,35,244,206,243,158,243,205,243,75,244,162,244,119,244,233,243,142,243,211,243,89,244,132,244,116,244, +164,244,4,245,86,245,140,245,119,245,52,245,111,245,75,246,223,246,147,246,234,245,177,245,46,246,247,246,102,247,97,247, +89,247,146,247,246,247,94,248,122,248,28,248,183,247,188,247,213,247,149,247,65,247,80,247,206,247,143,248,62,249,69,249, +135,248,219,247,246,247,138,248,12,249,135,249,1,250,52,250,42,250,54,250,113,250,216,250,115,251,22,252,175,252,92,253, +203,253,147,253,63,253,159,253,115,254,9,255,94,255,182,255,28,0,145,0,250,0,20,1,228,0,196,0,216,0,248,0, +255,0,4,1,50,1,129,1,162,1,88,1,187,0,24,0,182,255,168,255,217,255,40,0,100,0,113,0,125,0,172,0, +204,0,212,0,9,1,78,1,67,1,20,1,12,1,227,0,113,0,20,0,245,255,248,255,46,0,132,0,169,0,182,0, +1,1,65,1,7,1,157,0,117,0,101,0,51,0,251,255,172,255,59,255,53,255,207,255,6,0,58,255,92,254,40,254, +34,254,17,254,39,254,204,253,175,252,228,251,250,251,235,251,62,251,193,250,176,250,129,250,40,250,222,249,103,249,178,248, +64,248,83,248,129,248,112,248,96,248,143,248,179,248,136,248,53,248,212,247,88,247,23,247,119,247,60,248,215,248,31,249, +28,249,205,248,90,248,247,247,138,247,14,247,2,247,184,247,125,248,90,248,107,247,142,246,39,246,1,246,223,245,159,245, +100,245,143,245,32,246,156,246,181,246,84,246,119,245,156,244,92,244,115,244,96,244,97,244,179,244,19,245,98,245,146,245, +95,245,3,245,11,245,64,245,53,245,102,245,36,246,173,246,133,246,53,246,27,246,8,246,29,246,166,246,85,247,207,247, +94,248,19,249,76,249,1,249,11,249,137,249,191,249,182,249,31,250,221,250,63,251,53,251,44,251,95,251,204,251,72,252, +155,252,199,252,250,252,62,253,126,253,150,253,100,253,237,252,79,252,194,251,169,251,58,252,20,253,189,253,47,254,150,254, +238,254,27,255,28,255,48,255,150,255,49,0,199,0,91,1,206,1,230,1,231,1,46,2,138,2,214,2,66,3,166,3, +207,3,49,4,26,5,253,5,127,6,244,6,114,7,164,7,129,7,86,7,89,7,167,7,58,8,198,8,6,9,49,9, +165,9,58,10,138,10,167,10,203,10,207,10,178,10,226,10,85,11,122,11,88,11,144,11,59,12,215,12,33,13,68,13, +105,13,139,13,191,13,54,14,213,14,44,15,22,15,206,14,114,14,32,14,24,14,85,14,161,14,38,15,5,16,219,16, +76,17,106,17,109,17,144,17,211,17,211,17,124,17,81,17,148,17,7,18,110,18,152,18,106,18,53,18,46,18,7,18, +199,17,207,17,226,17,168,17,133,17,158,17,49,17,21,16,39,15,208,14,170,14,120,14,36,14,107,13,146,12,78,12, +96,12,228,11,22,11,227,10,18,11,230,10,143,10,86,10,230,9,99,9,75,9,59,9,174,8,27,8,0,8,20,8, +25,8,13,8,190,7,40,7,174,6,141,6,157,6,121,6,228,5,66,5,20,5,6,5,137,4,222,3,117,3,56,3, +23,3,21,3,202,2,7,2,104,1,89,1,108,1,38,1,145,0,203,255,232,254,70,254,37,254,35,254,217,253,149,253, +161,253,140,253,31,253,197,252,144,252,56,252,248,251,249,251,194,251,47,251,206,250,188,250,151,250,99,250,89,250,93,250, +78,250,48,250,240,249,146,249,104,249,177,249,74,250,229,250,81,251,106,251,40,251,194,250,104,250,4,250,180,249,209,249, +44,250,64,250,59,250,103,250,88,250,241,249,178,249,101,249,164,248,59,248,180,248,28,249,245,248,255,248,55,249,214,248, +28,248,178,247,100,247,33,247,131,247,121,248,63,249,183,249,76,250,202,250,201,250,164,250,191,250,188,250,101,250,82,250, +196,250,63,251,174,251,111,252,61,253,135,253,92,253,6,253,134,252,0,252,227,251,90,252,9,253,119,253,143,253,144,253, +145,253,111,253,42,253,232,252,214,252,41,253,214,253,106,254,166,254,182,254,180,254,155,254,120,254,63,254,245,253,219,253, +247,253,35,254,129,254,255,254,40,255,43,255,153,255,5,0,215,255,141,255,181,255,10,0,122,0,41,1,143,1,86,1, +57,1,144,1,160,1,43,1,236,0,49,1,156,1,59,2,55,3,235,3,200,3,101,3,118,3,190,3,229,3,238,3, +196,3,137,3,197,3,92,4,134,4,53,4,12,4,55,4,120,4,162,4,116,4,208,3,37,3,240,2,40,3,86,3, +28,3,178,2,180,2,54,3,177,3,223,3,234,3,3,4,78,4,196,4,9,5,229,4,143,4,104,4,173,4,43,5, +72,5,225,4,170,4,7,5,117,5,128,5,73,5,4,5,209,4,189,4,171,4,121,4,70,4,61,4,88,4,99,4, +21,4,101,3,154,2,10,2,223,1,1,2,24,2,243,1,201,1,205,1,202,1,114,1,182,0,231,255,135,255,173,255, +211,255,153,255,49,255,223,254,180,254,168,254,137,254,67,254,16,254,13,254,7,254,246,253,253,253,5,254,227,253,174,253, +156,253,156,253,89,253,228,252,222,252,100,253,180,253,127,253,68,253,37,253,247,252,232,252,204,252,44,252,126,251,119,251, +157,251,89,251,16,251,236,250,139,250,39,250,7,250,154,249,163,248,227,247,149,247,53,247,241,246,70,247,160,247,70,247, +207,246,233,246,7,247,164,246,39,246,215,245,172,245,250,245,170,246,226,246,130,246,75,246,85,246,70,246,63,246,41,246, +179,245,117,245,35,246,32,247,143,247,161,247,165,247,115,247,32,247,231,246,154,246,30,246,240,245,103,246,10,247,44,247, +224,246,154,246,88,246,9,246,252,245,32,246,6,246,247,245,103,246,200,246,123,246,241,245,161,245,96,245,77,245,195,245, +80,246,79,246,11,246,50,246,174,246,14,247,77,247,140,247,174,247,183,247,232,247,45,248,64,248,81,248,179,248,73,249, +238,249,139,250,215,250,205,250,207,250,198,250,71,250,178,249,191,249,103,250,33,251,145,251,144,251,92,251,96,251,128,251, +67,251,194,250,120,250,141,250,217,250,79,251,249,251,181,252,57,253,86,253,255,252,77,252,180,251,185,251,43,252,149,252, +57,253,53,254,174,254,82,254,10,254,45,254,47,254,63,254,202,254,58,255,37,255,43,255,127,255,136,255,94,255,153,255, +2,0,23,0,20,0,76,0,127,0,172,0,63,1,237,1,226,1,64,1,239,0,36,1,121,1,197,1,242,1,2,2, +60,2,147,2,146,2,63,2,244,1,171,1,135,1,238,1,127,2,128,2,44,2,17,2,10,2,254,1,65,2,167,2, +154,2,37,2,222,1,238,1,0,2,250,1,32,2,108,2,156,2,189,2,216,2,159,2,69,2,112,2,224,2,216,2, +153,2,166,2,179,2,183,2,54,3,208,3,183,3,84,3,100,3,128,3,36,3,202,2,203,2,197,2,151,2,132,2, +95,2,4,2,247,1,121,2,6,3,110,3,249,3,73,4,215,3,18,3,157,2,118,2,166,2,41,3,125,3,142,3, +223,3,53,4,13,4,220,3,3,4,41,4,110,4,12,5,51,5,170,4,176,4,116,5,166,5,64,5,99,5,193,5, +129,5,70,5,178,5,227,5,120,5,139,5,64,6,105,6,5,6,27,6,92,6,255,5,161,5,192,5,146,5,21,5, +74,5,234,5,239,5,159,5,145,5,131,5,157,5,86,6,255,6,198,6,79,6,79,6,66,6,222,5,206,5,52,6, +122,6,165,6,39,7,176,7,197,7,212,7,90,8,2,9,104,9,118,9,24,9,179,8,237,8,88,9,7,9,105,8, +121,8,1,9,99,9,143,9,84,9,181,8,119,8,219,8,14,9,197,8,133,8,112,8,102,8,145,8,193,8,99,8, +167,7,86,7,144,7,200,7,193,7,178,7,161,7,131,7,152,7,217,7,156,7,203,6,96,6,203,6,52,7,245,6, +129,6,73,6,36,6,230,5,193,5,215,5,11,6,83,6,208,6,102,7,192,7,225,7,28,8,131,8,234,8,21,9, +184,8,233,7,82,7,86,7,157,7,195,7,160,7,67,7,9,7,13,7,186,6,232,5,108,5,164,5,238,5,206,5, +94,5,212,4,113,4,59,4,234,3,131,3,81,3,22,3,144,2,67,2,153,2,4,3,244,2,169,2,160,2,232,2, +46,3,34,3,208,2,182,2,42,3,196,3,224,3,137,3,82,3,93,3,112,3,139,3,161,3,116,3,39,3,22,3, +13,3,163,2,10,2,179,1,174,1,194,1,178,1,119,1,78,1,96,1,167,1,32,2,137,2,109,2,235,1,141,1, +67,1,166,0,210,255,31,255,171,254,126,254,114,254,57,254,221,253,161,253,135,253,142,253,198,253,232,253,162,253,66,253, +83,253,202,253,33,254,31,254,16,254,61,254,134,254,192,254,237,254,238,254,189,254,211,254,103,255,215,255,165,255,51,255, +245,254,213,254,162,254,92,254,255,253,145,253,66,253,52,253,55,253,15,253,220,252,199,252,132,252,188,251,179,250,223,249, +100,249,66,249,110,249,148,249,111,249,53,249,52,249,87,249,86,249,71,249,112,249,160,249,106,249,29,249,67,249,114,249, +34,249,195,248,169,248,87,248,194,247,80,247,207,246,74,246,159,246,190,247,98,248,50,248,234,247,176,247,83,247,39,247, +75,247,84,247,84,247,190,247,85,248,128,248,84,248,61,248,29,248,182,247,75,247,10,247,143,246,182,245,15,245,251,244, +34,245,33,245,6,245,242,244,196,244,110,244,40,244,13,244,255,243,42,244,226,244,190,245,0,246,209,245,204,245,244,245, +35,246,93,246,69,246,174,245,85,245,220,245,226,246,223,247,142,248,188,248,168,248,185,248,164,248,38,248,221,247,56,248, +195,248,29,249,65,249,5,249,154,248,162,248,236,248,143,248,180,247,100,247,192,247,31,248,127,248,16,249,94,249,68,249, +107,249,212,249,188,249,84,249,107,249,234,249,121,250,81,251,6,252,173,251,192,250,107,250,110,250,17,250,214,249,64,250, +185,250,241,250,97,251,240,251,20,252,40,252,210,252,173,253,13,254,44,254,84,254,85,254,124,254,85,255,86,0,162,0, +131,0,148,0,172,0,143,0,76,0,232,255,189,255,55,0,210,0,219,0,169,0,179,0,189,0,177,0,174,0,91,0, +168,255,63,255,90,255,130,255,155,255,174,255,117,255,32,255,113,255,68,0,154,0,91,0,103,0,243,0,134,1,29,2, +184,2,206,2,100,2,88,2,216,2,34,3,11,3,248,2,244,2,0,3,67,3,95,3,228,2,81,2,79,2,164,2, +207,2,204,2,187,2,160,2,167,2,244,2,38,3,200,2,71,2,106,2,248,2,19,3,183,2,101,2,39,2,240,1, +233,1,203,1,78,1,245,0,26,1,79,1,74,1,39,1,221,0,143,0,162,0,232,0,254,0,44,1,178,1,31,2, +25,2,210,1,96,1,209,0,147,0,229,0,91,1,149,1,195,1,28,2,137,2,255,2,92,3,61,3,185,2,131,2, +170,2,143,2,31,2,190,1,110,1,64,1,110,1,122,1,218,0,9,0,140,255,40,255,234,254,21,255,56,255,13,255, +44,255,171,255,199,255,109,255,55,255,62,255,72,255,108,255,155,255,127,255,77,255,138,255,246,255,199,255,11,255,121,254, +19,254,120,253,245,252,234,252,13,253,77,253,27,254,81,255,48,0,86,0,244,255,153,255,226,255,181,0,68,1,49,1, +202,0,95,0,44,0,69,0,83,0,30,0,249,255,40,0,150,0,38,1,171,1,226,1,224,1,245,1,24,2,243,1, +103,1,174,0,38,0,6,0,47,0,67,0,4,0,193,255,249,255,105,0,72,0,169,255,97,255,178,255,59,0,166,0, +181,0,164,0,43,1,63,2,245,2,31,3,83,3,149,3,173,3,205,3,218,3,152,3,116,3,206,3,59,4,116,4, +160,4,140,4,14,4,192,3,22,4,144,4,175,4,215,4,141,5,148,6,85,7,144,7,104,7,81,7,161,7,205,7, +26,7,17,6,187,5,229,5,228,5,230,5,252,5,199,5,164,5,37,6,213,6,26,7,22,7,235,6,150,6,103,6, +95,6,20,6,162,5,156,5,34,6,182,6,187,6,15,6,85,5,45,5,104,5,141,5,129,5,99,5,125,5,22,6, +239,6,138,7,229,7,74,8,211,8,132,9,61,10,174,10,178,10,121,10,49,10,197,9,10,9,29,8,116,7,62,7, +37,7,239,6,181,6,121,6,69,6,76,6,122,6,137,6,114,6,85,6,73,6,102,6,150,6,162,6,132,6,48,6, +147,5,243,4,130,4,251,3,125,3,165,3,78,4,210,4,18,5,27,5,231,4,242,4,138,5,12,6,20,6,38,6, +115,6,133,6,44,6,186,5,108,5,69,5,66,5,106,5,130,5,38,5,135,4,75,4,105,4,88,4,44,4,39,4, +12,4,237,3,70,4,202,4,203,4,135,4,169,4,22,5,38,5,152,4,197,3,47,3,233,2,152,2,2,2,76,1, +200,0,162,0,165,0,136,0,106,0,122,0,173,0,25,1,207,1,92,2,68,2,204,1,155,1,3,2,179,2,250,2, +161,2,52,2,23,2,48,2,95,2,105,2,9,2,161,1,162,1,176,1,134,1,136,1,205,1,21,2,103,2,128,2, +235,1,14,1,130,0,254,255,76,255,202,254,142,254,96,254,64,254,13,254,151,253,35,253,224,252,150,252,97,252,143,252, +211,252,218,252,247,252,117,253,242,253,10,254,222,253,161,253,53,253,154,252,36,252,234,251,155,251,29,251,154,250,14,250, +132,249,67,249,76,249,70,249,21,249,253,248,94,249,39,250,162,250,101,250,248,249,213,249,206,249,221,249,8,250,200,249, +23,249,177,248,137,248,245,247,46,247,182,246,75,246,188,245,83,245,10,245,197,244,195,244,16,245,96,245,124,245,79,245, +248,244,180,244,85,244,148,243,230,242,223,242,53,243,96,243,95,243,79,243,30,243,237,242,23,243,173,243,60,244,86,244, +50,244,74,244,192,244,135,245,108,246,212,246,150,246,106,246,146,246,95,246,173,245,50,245,31,245,18,245,227,244,142,244, +17,244,185,243,205,243,3,244,16,244,52,244,191,244,124,245,249,245,5,246,156,245,238,244,138,244,188,244,254,244,249,244, +40,245,160,245,184,245,97,245,14,245,191,244,149,244,255,244,184,245,76,246,241,246,147,247,214,247,63,248,45,249,170,249, +93,249,83,249,194,249,252,249,84,250,77,251,37,252,63,252,28,252,9,252,222,251,233,251,102,252,202,252,187,252,186,252, +21,253,94,253,97,253,126,253,190,253,202,253,200,253,2,254,54,254,38,254,254,253,180,253,37,253,171,252,159,252,215,252, +40,253,156,253,38,254,201,254,159,255,122,0,18,1,97,1,115,1,71,1,15,1,32,1,157,1,81,2,209,2,245,2, +0,3,30,3,58,3,68,3,44,3,249,2,10,3,146,3,22,4,34,4,212,3,133,3,152,3,59,4,206,4,170,4, +78,4,99,4,159,4,170,4,195,4,227,4,197,4,145,4,100,4,2,4,143,3,140,3,237,3,48,4,34,4,249,3, +226,3,227,3,14,4,107,4,177,4,164,4,136,4,178,4,0,5,62,5,100,5,72,5,231,4,162,4,169,4,177,4, +152,4,162,4,12,5,215,5,191,6,79,7,71,7,222,6,118,6,56,6,22,6,232,5,151,5,58,5,8,5,7,5, +208,4,27,4,112,3,148,3,74,4,165,4,98,4,248,3,160,3,70,3,255,2,15,3,130,3,244,3,0,4,209,3, +186,3,154,3,110,3,119,3,109,3,231,2,111,2,141,2,190,2,181,2,241,2,56,3,187,2,183,1,238,0,81,0, +207,255,227,255,97,0,112,0,24,0,8,0,28,0,181,255,4,255,155,254,109,254,55,254,39,254,125,254,71,255,141,0, +246,1,189,2,173,2,34,2,47,1,11,0,159,255,58,0,235,0,31,1,33,1,202,0,207,255,210,254,99,254,57,254, +105,254,125,255,231,0,124,1,63,1,223,0,75,0,99,255,183,254,121,254,55,254,13,254,118,254,27,255,126,255,244,255, +128,0,80,0,119,255,15,255,53,255,53,255,91,255,84,0,158,1,91,2,115,2,15,2,93,1,223,0,228,0,21,1, +91,1,44,2,101,3,17,4,198,3,59,3,7,3,221,2,104,2,247,1,242,1,105,2,93,3,175,4,239,5,177,6, +182,6,229,5,189,4,14,4,215,3,142,3,82,3,100,3,42,3,88,2,180,1,173,1,215,1,42,2,253,2,28,4, +34,5,0,6,116,6,77,6,24,6,81,6,117,6,17,6,174,5,191,5,235,5,21,6,154,6,69,7,110,7,29,7, +199,6,104,6,24,6,111,6,115,7,68,8,109,8,87,8,64,8,219,7,16,7,78,6,8,6,37,6,60,6,63,6, +129,6,244,6,10,7,139,6,221,5,93,5,0,5,174,4,164,4,44,5,13,6,188,6,246,6,211,6,114,6,253,5, +181,5,198,5,51,6,178,6,206,6,136,6,75,6,12,6,114,5,184,4,72,4,44,4,140,4,139,5,139,6,40,7, +8,8,71,9,196,9,0,9,216,7,14,7,162,6,117,6,130,6,189,6,253,6,230,6,81,6,173,5,93,5,30,5, +184,4,107,4,98,4,118,4,153,4,199,4,216,4,219,4,14,5,69,5,15,5,130,4,36,4,37,4,92,4,167,4, +227,4,250,4,33,5,89,5,54,5,186,4,142,4,225,4,73,5,160,5,227,5,204,5,80,5,187,4,35,4,130,3, +8,3,216,2,233,2,23,3,47,3,44,3,62,3,57,3,202,2,36,2,146,1,250,0,118,0,105,0,194,0,56,1, +203,1,71,2,61,2,181,1,2,1,57,0,106,255,196,254,57,254,140,253,212,252,106,252,104,252,89,252,225,251,94,251, +65,251,80,251,87,251,132,251,172,251,123,251,82,251,137,251,165,251,95,251,20,251,188,250,20,250,134,249,122,249,110,249, +241,248,99,248,18,248,205,247,147,247,120,247,47,247,180,246,154,246,200,246,87,246,83,245,169,244,76,244,154,243,239,242, +179,242,90,242,195,241,162,241,248,241,28,242,238,241,179,241,120,241,42,241,178,240,36,240,217,239,252,239,108,240,57,241, +40,242,115,242,4,242,176,241,156,241,46,241,107,240,206,239,105,239,60,239,94,239,137,239,83,239,206,238,115,238,125,238, +156,238,140,238,187,238,137,239,108,240,221,240,38,241,75,241,195,240,216,239,137,239,214,239,231,239,190,239,46,240,67,241, +5,242,230,241,82,241,227,240,228,240,128,241,109,242,7,243,92,243,15,244,239,244,34,245,152,244,11,244,225,243,23,244, +176,244,164,245,167,246,98,247,217,247,52,248,51,248,157,247,254,246,241,246,96,247,32,248,36,249,229,249,45,250,171,250, +131,251,226,251,150,251,52,251,252,250,25,251,191,251,114,252,176,252,225,252,84,253,147,253,104,253,72,253,147,253,94,254, +151,255,234,0,231,1,71,2,34,2,244,1,10,2,45,2,81,2,224,2,239,3,255,4,171,5,226,5,198,5,161,5, +161,5,211,5,74,6,209,6,3,7,19,7,126,7,29,8,111,8,114,8,83,8,18,8,219,7,241,7,60,8,138,8, +246,8,131,9,202,9,135,9,7,9,157,8,77,8,94,8,15,9,167,9,117,9,48,9,136,9,201,9,136,9,110,9, +156,9,161,9,161,9,201,9,217,9,247,9,88,10,134,10,86,10,60,10,46,10,236,9,200,9,229,9,255,9,50,10, +162,10,219,10,174,10,172,10,25,11,103,11,28,11,122,10,0,10,174,9,57,9,184,8,137,8,192,8,24,9,12,9, +38,8,200,6,245,5,235,5,30,6,102,6,217,6,25,7,223,6,87,6,154,5,191,4,18,4,171,3,114,3,141,3, +30,4,194,4,227,4,105,4,203,3,101,3,32,3,235,2,236,2,0,3,232,2,218,2,3,3,8,3,166,2,10,2, +85,1,169,0,83,0,106,0,187,0,7,1,244,0,80,0,92,255,92,254,68,253,50,252,163,251,242,251,185,252,232,252, +19,252,49,251,254,250,185,250,237,249,90,249,33,249,170,248,54,248,41,248,251,247,109,247,237,246,130,246,83,246,37,247, +248,248,254,250,11,253,238,254,112,255,6,254,237,251,100,250,152,249,147,249,82,250,43,251,164,251,24,252,110,252,195,251, +66,250,103,249,183,249,101,250,250,250,83,251,1,251,66,250,238,249,200,249,36,249,121,248,34,248,137,247,241,246,101,247, +130,248,21,249,43,249,40,249,161,248,156,247,32,247,169,247,201,248,47,250,164,251,142,252,199,252,18,253,157,253,171,253, +149,253,165,254,98,0,22,1,206,0,161,0,86,0,162,255,110,255,233,255,12,0,187,255,183,255,33,0,223,0,16,2, +105,3,124,4,74,5,187,5,154,5,46,5,217,4,136,4,247,3,248,2,159,1,126,0,24,0,60,0,151,0,86,1, +152,2,210,3,81,4,8,4,120,3,28,3,84,3,116,4,18,6,254,6,205,6,115,6,164,6,251,6,49,7,176,7, +169,8,177,9,76,10,97,10,66,10,86,10,194,10,39,11,241,10,47,10,205,9,73,10,242,10,62,11,148,11,36,12, +117,12,87,12,247,11,95,11,170,10,26,10,218,9,237,9,244,9,81,9,74,8,243,7,163,8,214,9,63,11,165,12, +138,13,195,13,151,13,62,13,254,12,19,13,110,13,240,13,77,14,228,13,192,12,231,11,177,11,117,11,43,11,108,11, +34,12,251,12,41,14,136,15,78,16,70,16,25,16,0,16,126,15,134,14,222,13,242,13,80,14,135,14,146,14,100,14, +0,14,141,13,237,12,255,11,67,11,51,11,119,11,129,11,73,11,3,11,204,10,143,10,20,10,81,9,146,8,38,8, +63,8,213,8,99,9,93,9,238,8,140,8,46,8,149,7,208,6,54,6,16,6,73,6,131,6,155,6,186,6,229,6, +10,7,30,7,246,6,141,6,32,6,165,5,247,4,82,4,188,3,209,2,172,1,206,0,57,0,205,255,119,255,197,254, +200,253,141,253,52,254,135,254,54,254,15,254,20,254,182,253,254,252,238,251,85,250,220,248,107,248,170,248,158,248,23,248, +144,247,77,247,33,247,170,246,186,245,171,244,14,244,242,243,249,243,252,243,4,244,231,243,154,243,69,243,186,242,215,241, +59,241,90,241,190,241,28,242,157,242,210,242,83,242,184,241,85,241,144,240,103,239,147,238,42,238,245,237,42,238,159,238, +171,238,97,238,96,238,165,238,164,238,48,238,149,237,21,237,171,236,62,236,180,235,234,234,18,234,196,233,24,234,130,234, +242,234,203,235,188,236,35,237,26,237,249,236,189,236,113,236,63,236,60,236,130,236,253,236,113,237,237,237,108,238,90,238, +138,237,186,236,108,236,155,236,106,237,187,238,214,239,128,240,8,241,65,241,219,240,67,240,243,239,215,239,19,240,5,241, +86,242,62,243,173,243,237,243,195,243,23,243,166,242,238,242,132,243,37,244,244,244,157,245,194,245,191,245,243,245,53,246, +131,246,245,246,83,247,191,247,173,248,246,249,23,251,228,251,56,252,4,252,207,251,8,252,139,252,99,253,190,254,78,0, +197,1,29,3,1,4,8,4,118,3,192,2,28,2,211,1,51,2,41,3,83,4,66,5,177,5,176,5,109,5,28,5, +16,5,100,5,201,5,54,6,245,6,203,7,68,8,114,8,124,8,68,8,5,8,55,8,224,8,190,9,152,10,45,11, +135,11,29,12,9,13,183,13,198,13,145,13,141,13,196,13,20,14,111,14,163,14,131,14,104,14,176,14,244,14,174,14, +51,14,19,14,75,14,155,14,220,14,236,14,211,14,149,14,18,14,119,13,24,13,215,12,173,12,6,13,175,13,206,13, +109,13,68,13,58,13,194,12,253,11,96,11,0,11,167,10,37,10,110,9,176,8,74,8,113,8,181,8,97,8,165,7, +86,7,111,7,90,7,88,7,176,7,190,7,76,7,8,7,232,6,102,6,227,5,193,5,121,5,226,4,149,4,154,4, +114,4,250,3,60,3,40,2,16,1,115,0,92,0,113,0,79,0,193,255,251,254,123,254,60,254,156,253,130,252,170,251, +78,251,215,250,80,250,112,250,232,250,184,250,0,250,127,249,23,249,102,248,178,247,101,247,153,247,43,248,169,248,189,248, +154,248,138,248,111,248,249,247,240,246,165,245,239,244,28,245,115,245,123,245,129,245,175,245,188,245,91,245,139,244,225,243, +0,244,109,244,66,244,216,243,234,243,11,244,186,243,93,243,33,243,185,242,121,242,229,242,120,243,87,243,165,242,34,242, +244,241,166,241,13,241,102,240,236,239,237,239,170,240,197,241,216,242,46,244,148,245,205,245,191,244,7,244,88,244,177,244, +154,244,193,244,134,245,170,246,196,247,72,248,255,247,116,247,48,247,29,247,47,247,199,247,234,248,229,249,37,250,197,249, +37,249,149,248,89,248,109,248,161,248,8,249,156,249,241,249,34,250,171,250,14,251,163,250,66,250,215,250,166,251,249,251, +65,252,188,252,86,253,99,254,141,255,185,255,14,255,198,254,56,255,23,0,86,1,141,2,5,3,225,2,201,2,214,2, +199,2,163,2,177,2,34,3,234,3,225,4,224,5,180,6,81,7,243,7,140,8,153,8,15,8,162,7,192,7,36,8, +134,8,234,8,92,9,202,9,30,10,78,10,60,10,202,9,88,9,140,9,59,10,153,10,146,10,194,10,74,11,214,11, +61,12,105,12,69,12,27,12,87,12,249,12,201,13,184,14,196,15,160,16,5,17,63,17,169,17,247,17,245,17,70,18, +66,19,99,20,71,21,196,21,86,21,53,20,147,19,170,19,158,19,122,19,247,19,192,20,249,20,166,20,59,20,204,19, +84,19,254,18,207,18,129,18,38,18,117,18,156,19,152,20,176,20,93,20,237,19,33,19,103,18,83,18,122,18,111,18, +149,18,244,18,1,19,165,18,48,18,201,17,178,17,30,18,172,18,221,18,186,18,134,18,79,18,233,17,59,17,131,16, +49,16,70,16,64,16,242,15,201,15,226,15,184,15,29,15,140,14,23,14,112,13,247,12,19,13,25,13,145,12,12,12, +154,11,163,10,138,9,251,8,90,8,32,7,17,6,158,5,69,5,230,4,182,4,91,4,130,3,151,2,254,1,120,1, +183,0,254,255,166,255,118,255,40,255,14,255,57,255,2,255,87,254,243,253,205,253,71,253,160,252,102,252,93,252,63,252, +34,252,192,251,219,250,248,249,136,249,45,249,126,248,195,247,140,247,232,247,76,248,43,248,110,247,77,246,32,245,53,244, +120,243,172,242,245,241,152,241,119,241,79,241,246,240,60,240,40,239,43,238,173,237,188,237,34,238,131,238,178,238,223,238, +14,239,218,238,28,238,61,237,195,236,217,236,78,237,186,237,229,237,236,237,13,238,84,238,125,238,78,238,10,238,245,237, +219,237,166,237,165,237,219,237,29,238,144,238,246,238,178,238,5,238,158,237,111,237,99,237,211,237,78,238,5,238,89,237, +249,236,150,236,9,236,224,235,13,236,13,236,22,236,162,236,107,237,225,237,248,237,17,238,107,238,223,238,39,239,65,239, +96,239,173,239,74,240,41,241,224,241,30,242,37,242,117,242,31,243,192,243,33,244,132,244,35,245,201,245,59,246,149,246, +5,247,145,247,14,248,91,248,152,248,236,248,37,249,21,249,6,249,62,249,173,249,55,250,169,250,191,250,174,250,238,250, +126,251,47,252,252,252,161,253,206,253,181,253,136,253,82,253,171,253,20,255,218,0,238,1,39,2,251,1,223,1,44,2, +217,2,157,3,118,4,137,5,174,6,142,7,4,8,46,8,53,8,44,8,82,8,248,8,178,9,201,9,169,9,27,10, +174,10,192,10,221,10,88,11,140,11,104,11,131,11,214,11,22,12,94,12,133,12,88,12,66,12,109,12,66,12,206,11, +250,11,232,12,182,13,235,13,202,13,101,13,164,12,223,11,139,11,174,11,29,12,196,12,93,13,169,13,212,13,5,14, +9,14,228,13,204,13,143,13,244,12,74,12,234,11,220,11,11,12,45,12,209,11,2,11,52,10,168,9,96,9,79,9, +64,9,32,9,0,9,186,8,28,8,70,7,145,6,100,6,184,6,159,6,106,5,8,4,148,3,139,3,41,3,173,2, +58,2,148,1,26,1,8,1,169,0,218,255,134,255,189,255,119,255,160,254,26,254,241,253,175,253,187,253,122,254,246,254, +90,254,100,253,240,252,172,252,56,252,168,251,215,250,248,249,243,249,195,250,3,251,53,250,112,249,76,249,23,249,88,248, +164,247,187,247,95,248,114,248,138,247,174,246,188,246,254,246,121,246,155,245,52,245,221,244,20,244,187,243,135,244,89,245, +19,245,65,244,146,243,241,242,163,242,235,242,29,243,245,242,25,243,120,243,153,243,248,243,188,244,191,244,176,243,216,242, +235,242,113,243,252,243,72,244,30,244,203,243,178,243,147,243,14,243,114,242,125,242,127,243,222,244,172,245,135,245,194,244, +20,244,49,244,222,244,4,245,115,244,64,244,203,244,77,245,110,245,155,245,18,246,189,246,34,247,127,246,241,244,246,243, +161,244,50,246,87,247,215,247,64,248,208,248,68,249,81,249,219,248,26,248,167,247,241,247,180,248,112,249,250,249,86,250, +176,250,78,251,241,251,15,252,199,251,176,251,1,252,172,252,122,253,252,253,52,254,176,254,75,255,81,255,249,254,25,255, +206,255,170,0,110,1,250,1,46,2,14,2,190,1,143,1,189,1,21,2,96,2,214,2,126,3,247,3,16,4,9,4, +77,4,24,5,250,5,47,6,199,5,146,5,226,5,130,6,57,7,191,7,236,7,7,8,47,8,58,8,122,8,96,9, +133,10,49,11,97,11,114,11,116,11,88,11,85,11,185,11,123,12,69,13,242,13,158,14,61,15,158,15,179,15,147,15, +141,15,7,16,226,16,140,17,215,17,254,17,11,18,250,17,253,17,44,18,68,18,20,18,216,17,7,18,166,18,79,19, +215,19,70,20,73,20,178,19,10,19,187,18,149,18,148,18,233,18,97,19,155,19,98,19,209,18,113,18,154,18,210,18, +218,18,58,19,222,19,254,19,207,19,4,20,81,20,84,20,89,20,66,20,155,19,218,18,174,18,231,18,60,19,204,19, +75,20,28,20,86,19,129,18,147,17,115,16,181,15,183,15,211,15,159,15,156,15,203,15,130,15,224,14,107,14,221,13, +9,13,154,12,172,12,142,12,28,12,169,11,41,11,141,10,236,9,36,9,51,8,111,7,5,7,207,6,169,6,139,6, +148,6,203,6,203,6,53,6,85,5,174,4,86,4,1,4,116,3,222,2,147,2,96,2,1,2,220,1,17,2,231,1, +51,1,135,0,234,255,77,255,39,255,36,255,103,254,82,253,174,252,21,252,54,251,161,250,97,250,233,249,70,249,186,248, +40,248,146,247,27,247,181,246,79,246,187,245,189,244,189,243,86,243,53,243,204,242,124,242,186,242,26,243,32,243,1,243, +248,242,202,242,101,242,39,242,62,242,97,242,109,242,136,242,146,242,91,242,17,242,196,241,55,241,121,240,245,239,208,239, +240,239,41,240,64,240,34,240,243,239,188,239,105,239,11,239,187,238,123,238,85,238,68,238,37,238,229,237,132,237,29,237, +244,236,41,237,139,237,213,237,220,237,173,237,146,237,142,237,78,237,13,237,82,237,219,237,49,238,164,238,106,239,12,240, +87,240,109,240,54,240,209,239,177,239,235,239,118,240,117,241,136,242,32,243,101,243,160,243,145,243,42,243,227,242,8,243, +149,243,111,244,81,245,231,245,22,246,18,246,32,246,45,246,236,245,131,245,102,245,173,245,33,246,150,246,227,246,22,247, +121,247,215,247,186,247,100,247,101,247,218,247,196,248,221,249,101,250,80,250,138,250,71,251,228,251,78,252,197,252,52,253, +217,253,39,255,197,0,230,1,80,2,100,2,142,2,227,2,38,3,74,3,128,3,207,3,90,4,75,5,43,6,122,6, +151,6,217,6,211,6,93,6,225,5,149,5,165,5,71,6,252,6,53,7,88,7,193,7,243,7,169,7,69,7,4,7, +235,6,13,7,74,7,130,7,239,7,153,8,237,8,167,8,86,8,97,8,124,8,148,8,52,9,105,10,97,11,182,11, +175,11,88,11,179,10,101,10,202,10,63,11,81,11,111,11,213,11,243,11,95,11,124,10,224,9,176,9,201,9,25,10, +104,10,121,10,108,10,83,10,199,9,174,8,150,7,185,6,240,5,131,5,153,5,176,5,127,5,71,5,254,4,116,4, +222,3,117,3,56,3,55,3,91,3,81,3,2,3,162,2,95,2,74,2,54,2,215,1,78,1,252,0,235,0,240,0, +226,0,159,0,96,0,147,0,251,0,252,0,155,0,43,0,173,255,44,255,199,254,86,254,221,253,159,253,112,253,13,253, +196,252,157,252,16,252,93,251,107,251,210,251,67,251,252,249,119,249,215,249,9,250,218,249,163,249,27,249,70,248,208,247, +144,247,5,247,252,246,29,248,42,249,13,249,88,248,131,247,146,246,60,246,207,246,54,247,244,246,253,246,162,247,9,248, +191,247,20,247,89,246,223,245,239,245,105,246,241,246,112,247,236,247,30,248,197,247,30,247,137,246,11,246,169,245,159,245, +233,245,81,246,208,246,39,247,248,246,168,246,190,246,186,246,32,246,130,245,91,245,89,245,92,245,124,245,117,245,88,245, +176,245,103,246,217,246,216,246,173,246,150,246,198,246,40,247,84,247,82,247,162,247,77,248,204,248,234,248,248,248,57,249, +167,249,32,250,105,250,86,250,54,250,136,250,20,251,40,251,187,250,96,250,70,250,81,250,165,250,55,251,154,251,204,251, +59,252,236,252,89,253,46,253,171,252,84,252,107,252,198,252,39,253,113,253,159,253,238,253,149,254,28,255,219,254,72,254, +114,254,116,255,146,0,77,1,114,1,5,1,179,0,25,1,183,1,216,1,232,1,150,2,128,3,239,3,245,3,5,4, +66,4,156,4,12,5,131,5,244,5,97,6,223,6,96,7,158,7,131,7,111,7,153,7,181,7,207,7,107,8,94,9, +241,9,28,10,73,10,123,10,148,10,163,10,145,10,128,10,241,10,208,11,115,12,181,12,244,12,78,13,205,13,127,14, +255,14,235,14,182,14,34,15,29,16,203,16,173,16,85,16,143,16,65,17,222,17,69,18,114,18,87,18,112,18,254,18, +46,19,128,18,248,17,93,18,241,18,241,18,181,18,178,18,176,18,110,18,38,18,16,18,225,17,145,17,218,17,222,18, +107,19,244,18,139,18,196,18,220,18,165,18,177,18,199,18,125,18,110,18,239,18,38,19,145,18,202,17,105,17,123,17, +214,17,33,18,255,17,137,17,47,17,24,17,233,16,74,16,127,15,39,15,75,15,111,15,118,15,116,15,37,15,133,14, +12,14,183,13,7,13,23,12,111,11,13,11,179,10,127,10,122,10,72,10,176,9,233,8,68,8,214,7,108,7,216,6, +81,6,46,6,69,6,6,6,69,5,148,4,87,4,30,4,118,3,187,2,108,2,98,2,80,2,49,2,4,2,190,1, +90,1,192,0,18,0,159,255,67,255,191,254,114,254,133,254,74,254,138,253,228,252,85,252,120,251,190,250,123,250,10,250, +57,249,172,248,99,248,222,247,90,247,34,247,200,246,51,246,216,245,164,245,38,245,143,244,80,244,59,244,2,244,195,243, +154,243,108,243,82,243,109,243,112,243,23,243,172,242,117,242,52,242,203,241,122,241,93,241,116,241,219,241,70,242,35,242, +128,241,238,240,119,240,245,239,215,239,94,240,242,240,31,241,44,241,58,241,246,240,91,240,197,239,85,239,10,239,252,238, +51,239,143,239,233,239,15,240,247,239,211,239,168,239,70,239,233,238,3,239,116,239,201,239,233,239,7,240,67,240,149,240, +192,240,168,240,153,240,192,240,255,240,108,241,24,242,144,242,161,242,179,242,212,242,191,242,214,242,130,243,78,244,195,244, +31,245,147,245,246,245,55,246,67,246,251,245,187,245,26,246,246,246,132,247,91,247,238,246,224,246,42,247,63,247,251,246, +226,246,95,247,32,248,146,248,177,248,235,248,82,249,166,249,253,249,119,250,215,250,40,251,230,251,241,252,141,253,154,253, +188,253,88,254,70,255,34,0,155,0,184,0,205,0,28,1,152,1,242,1,232,1,185,1,0,2,231,2,241,3,136,4, +121,4,38,4,56,4,203,4,96,5,189,5,0,6,25,6,0,6,220,5,168,5,73,5,247,4,247,4,57,5,145,5, +237,5,77,6,165,6,202,6,186,6,200,6,13,7,52,7,27,7,253,6,12,7,90,7,192,7,208,7,149,7,143,7, +157,7,76,7,16,7,134,7,56,8,148,8,203,8,236,8,179,8,93,8,76,8,73,8,243,7,120,7,79,7,147,7, +226,7,214,7,99,7,159,6,190,5,56,5,58,5,41,5,144,4,236,3,192,3,185,3,98,3,224,2,113,2,252,1, +137,1,130,1,255,1,126,2,161,2,153,2,143,2,96,2,238,1,41,1,30,0,76,255,46,255,123,255,148,255,111,255, +111,255,164,255,163,255,20,255,93,254,98,254,66,255,206,255,233,254,23,253,238,251,64,252,83,253,209,253,31,253,216,251, +30,251,91,251,223,251,212,251,45,251,143,250,144,250,246,250,188,250,153,249,220,248,100,249,15,250,213,249,83,249,26,249, +244,248,15,249,118,249,88,249,146,248,45,248,87,248,75,248,248,247,182,247,58,247,88,246,171,245,177,245,50,246,206,246, +145,247,147,248,77,249,79,249,27,249,41,249,2,249,105,248,229,247,151,247,57,247,252,246,245,246,197,246,117,246,92,246, +95,246,87,246,122,246,243,246,163,247,3,248,143,247,209,246,222,246,112,247,120,247,31,247,13,247,0,247,195,246,197,246, +3,247,38,247,95,247,214,247,35,248,13,248,214,247,171,247,132,247,108,247,147,247,6,248,111,248,172,248,37,249,214,249, +253,249,129,249,51,249,78,249,94,249,94,249,125,249,152,249,212,249,149,250,130,251,223,251,154,251,22,251,177,250,227,250, +207,251,170,252,210,252,242,252,223,253,6,255,64,255,102,254,74,253,197,252,24,253,190,253,12,254,22,254,116,254,71,255, +21,0,82,0,217,255,43,255,18,255,178,255,139,0,66,1,199,1,35,2,139,2,21,3,84,3,235,2,105,2,178,2, +180,3,134,4,218,4,41,5,118,5,84,5,34,5,136,5,41,6,119,6,188,6,46,7,145,7,246,7,103,8,130,8, +106,8,149,8,188,8,165,8,246,8,230,9,203,10,97,11,196,11,201,11,134,11,143,11,19,12,207,12,144,13,61,14, +223,14,156,15,78,16,179,16,223,16,244,16,228,16,193,16,177,16,189,16,240,16,71,17,169,17,14,18,80,18,71,18, +52,18,91,18,103,18,50,18,55,18,143,18,226,18,82,19,238,19,30,20,178,19,75,19,58,19,62,19,71,19,89,19, +66,19,16,19,38,19,143,19,198,19,119,19,27,19,78,19,239,19,105,20,130,20,109,20,103,20,134,20,159,20,109,20, +244,19,98,19,223,18,201,18,76,19,178,19,67,19,127,18,51,18,28,18,176,17,40,17,214,16,149,16,111,16,158,16, +182,16,38,16,93,15,14,15,244,14,112,14,137,13,136,12,175,11,123,11,222,11,222,11,11,11,31,10,147,9,34,9, +170,8,40,8,133,7,34,7,90,7,162,7,107,7,11,7,207,6,99,6,173,5,254,4,105,4,233,3,181,3,199,3, +156,3,8,3,123,2,24,2,128,1,183,0,44,0,217,255,114,255,35,255,25,255,246,254,134,254,240,253,37,253,23,252, +34,251,131,250,5,250,140,249,51,249,227,248,122,248,244,247,65,247,94,246,136,245,11,245,216,244,156,244,78,244,75,244, +161,244,208,244,124,244,207,243,14,243,129,242,104,242,164,242,206,242,213,242,221,242,207,242,132,242,254,241,102,241,16,241, +48,241,138,241,184,241,173,241,161,241,172,241,160,241,75,241,223,240,170,240,155,240,146,240,155,240,124,240,2,240,141,239, +87,239,3,239,156,238,123,238,91,238,24,238,83,238,20,239,145,239,168,239,180,239,129,239,252,238,208,238,75,239,220,239, +24,240,58,240,158,240,54,241,137,241,86,241,244,240,237,240,117,241,66,242,199,242,237,242,55,243,210,243,65,244,90,244, +104,244,114,244,114,244,178,244,43,245,107,245,113,245,163,245,15,246,98,246,88,246,254,245,200,245,25,246,172,246,243,246, +216,246,193,246,9,247,164,247,35,248,52,248,14,248,18,248,66,248,120,248,201,248,99,249,39,250,184,250,231,250,225,250, +237,250,28,251,119,251,20,252,206,252,114,253,62,254,107,255,98,0,135,0,85,0,128,0,236,0,108,1,42,2,192,2, +169,2,117,2,196,2,23,3,21,3,63,3,163,3,205,3,218,3,238,3,181,3,99,3,155,3,46,4,123,4,133,4, +165,4,221,4,15,5,61,5,97,5,92,5,28,5,220,4,241,4,63,5,135,5,244,5,140,6,214,6,169,6,105,6, +84,6,100,6,132,6,166,6,250,6,175,7,96,8,166,8,169,8,114,8,236,7,150,7,144,7,37,7,124,6,158,6, +85,7,124,7,7,7,159,6,78,6,239,5,158,5,107,5,94,5,95,5,21,5,128,4,26,4,1,4,236,3,181,3, +93,3,8,3,10,3,57,3,231,2,248,1,15,1,136,0,65,0,45,0,86,0,148,0,167,0,127,0,92,0,93,0, +34,0,122,255,12,255,112,255,39,0,81,0,221,255,75,255,211,254,97,254,7,254,242,253,0,254,195,253,44,253,226,252, +100,253,38,254,59,254,138,253,190,252,64,252,249,251,185,251,127,251,125,251,194,251,199,251,233,250,135,249,197,248,21,249, +228,249,140,250,209,250,176,250,51,250,146,249,8,249,134,248,213,247,70,247,138,247,144,248,99,249,94,249,182,248,254,247, +175,247,189,247,203,247,5,248,199,248,104,249,13,249,53,248,209,247,216,247,216,247,175,247,126,247,198,247,176,248,51,249, +165,248,249,247,199,247,36,247,247,245,174,245,192,246,248,247,130,248,189,248,250,248,221,248,17,248,227,246,246,245,172,245, +20,246,236,246,182,247,41,248,91,248,88,248,36,248,208,247,46,247,28,246,77,245,193,245,101,247,36,249,239,249,138,249, +208,248,160,248,140,248,231,247,96,247,201,247,159,248,99,249,105,250,96,251,64,251,54,250,149,249,204,249,24,250,17,250, +73,250,50,251,85,252,235,252,189,252,61,252,9,252,100,252,3,253,94,253,47,253,172,252,101,252,193,252,124,253,6,254, +78,254,155,254,229,254,12,255,19,255,224,254,110,254,60,254,209,254,224,255,145,0,140,0,90,0,150,0,23,1,65,1, +253,0,189,0,225,0,151,1,176,2,139,3,183,3,141,3,158,3,236,3,23,4,3,4,30,4,209,4,202,5,84,6, +83,6,64,6,105,6,204,6,62,7,105,7,66,7,85,7,8,8,237,8,83,9,32,9,217,8,2,9,156,9,48,10, +111,10,161,10,81,11,122,12,113,13,184,13,114,13,6,13,213,12,44,13,223,13,115,14,225,14,94,15,174,15,173,15, +206,15,16,16,220,15,101,15,168,15,192,16,188,17,242,17,138,17,26,17,52,17,211,17,52,18,210,17,76,17,139,17, +120,18,57,19,64,19,161,18,253,17,31,18,206,18,216,18,26,18,239,17,206,18,169,19,212,19,123,19,212,18,98,18, +163,18,6,19,212,18,127,18,147,18,218,18,37,19,61,19,161,18,144,17,10,17,55,17,97,17,64,17,0,17,182,16, +174,16,53,17,173,17,20,17,162,15,186,14,214,14,247,14,142,14,54,14,45,14,1,14,196,13,154,13,244,12,215,11, +61,11,80,11,62,11,206,10,83,10,212,9,110,9,68,9,223,8,251,7,49,7,233,6,192,6,91,6,223,5,135,5, +112,5,134,5,122,5,246,4,250,3,231,2,51,2,243,1,214,1,149,1,43,1,194,0,156,0,175,0,111,0,144,255, +161,254,48,254,8,254,205,253,104,253,184,252,199,251,9,251,184,250,113,250,226,249,29,249,75,248,186,247,154,247,87,247, +109,246,157,245,188,245,32,246,217,245,44,245,153,244,25,244,207,243,222,243,198,243,73,243,244,242,30,243,91,243,67,243, +218,242,102,242,39,242,28,242,17,242,245,241,209,241,167,241,140,241,144,241,154,241,114,241,253,240,131,240,149,240,22,241, +43,241,158,240,29,240,246,239,10,240,92,240,143,240,37,240,163,239,213,239,83,240,105,240,52,240,3,240,240,239,25,240, +84,240,76,240,30,240,31,240,102,240,229,240,76,241,68,241,28,241,66,241,133,241,213,241,123,242,23,243,35,243,29,243, +116,243,158,243,100,243,87,243,165,243,18,244,161,244,58,245,149,245,210,245,48,246,128,246,127,246,93,246,107,246,183,246, +21,247,105,247,178,247,243,247,59,248,143,248,166,248,57,248,172,247,174,247,67,248,221,248,68,249,162,249,19,250,130,250, +193,250,191,250,159,250,134,250,140,250,244,250,206,251,145,252,240,252,116,253,114,254,79,255,154,255,160,255,151,255,125,255, +166,255,35,0,129,0,232,0,223,1,203,2,198,2,116,2,208,2,95,3,126,3,161,3,11,4,58,4,61,4,162,4, +69,5,162,5,220,5,60,6,100,6,225,5,51,5,53,5,200,5,54,6,122,6,232,6,62,7,61,7,34,7,236,6, +123,6,75,6,182,6,67,7,143,7,212,7,23,8,9,8,198,7,195,7,31,8,107,8,51,8,197,7,223,7,136,8, +26,9,66,9,250,8,75,8,188,7,223,7,67,8,30,8,178,7,190,7,56,8,139,8,114,8,229,7,236,6,2,6, +219,5,73,6,89,6,245,5,216,5,209,5,29,5,36,4,191,3,168,3,115,3,109,3,138,3,98,3,60,3,78,3, +237,2,253,1,118,1,149,1,122,1,233,0,157,0,210,0,22,1,62,1,85,1,17,1,75,0,139,255,69,255,64,255, +35,255,9,255,67,255,189,255,202,255,229,254,190,253,139,253,49,254,135,254,55,254,232,253,246,253,33,254,235,253,6,253, +240,251,124,251,123,251,70,251,64,251,226,251,90,252,244,251,105,251,75,251,254,250,81,250,243,249,229,249,129,249,242,248, +199,248,191,248,161,248,219,248,49,249,193,248,3,248,47,248,207,248,161,248,255,247,200,247,184,247,200,247,188,248,15,250, +9,250,165,248,156,247,139,247,121,247,245,246,172,246,27,247,17,248,1,249,37,249,42,248,240,246,146,246,207,246,172,246, +42,246,19,246,163,246,94,247,200,247,194,247,110,247,242,246,99,246,236,245,205,245,250,245,57,246,128,246,218,246,21,247, +0,247,198,246,167,246,153,246,118,246,80,246,107,246,0,247,5,248,237,248,8,249,137,248,31,248,172,247,239,246,207,246, +224,247,0,249,83,249,97,249,75,249,212,248,210,248,174,249,36,250,212,249,29,250,34,251,132,251,67,251,110,251,193,251, +106,251,2,251,91,251,217,251,178,251,123,251,224,251,54,252,215,251,128,251,225,251,132,252,9,253,149,253,210,253,116,253, +30,253,78,253,142,253,141,253,177,253,90,254,122,255,168,0,85,1,90,1,30,1,26,1,120,1,225,1,199,1,123,1, +16,2,101,3,41,4,28,4,33,4,82,4,62,4,52,4,119,4,172,4,234,4,168,5,138,6,235,6,4,7,41,7, +8,7,152,6,135,6,14,7,143,7,199,7,59,8,43,9,19,10,142,10,226,10,72,11,136,11,187,11,77,12,252,12, +24,13,241,12,100,13,66,14,189,14,227,14,59,15,186,15,27,16,76,16,57,16,254,15,22,16,172,16,66,17,129,17, +185,17,41,18,122,18,95,18,50,18,82,18,118,18,116,18,175,18,38,19,85,19,78,19,101,19,73,19,226,18,217,18, +49,19,40,19,195,18,175,18,239,18,31,19,67,19,104,19,78,19,237,18,183,18,0,19,96,19,86,19,64,19,164,19, +253,19,167,19,5,19,148,18,73,18,62,18,126,18,143,18,90,18,97,18,149,18,117,18,238,17,27,17,51,16,196,15, +235,15,243,15,134,15,233,14,39,14,79,13,212,12,168,12,44,12,107,11,15,11,36,11,17,11,137,10,207,9,59,9, +219,8,136,8,26,8,149,7,48,7,22,7,32,7,251,6,131,6,197,5,3,5,184,4,221,4,178,4,5,4,153,3, +134,3,245,2,240,1,75,1,238,0,81,0,205,255,174,255,105,255,231,254,190,254,172,254,242,253,215,252,16,252,120,251, +191,250,16,250,126,249,236,248,132,248,60,248,193,247,54,247,225,246,96,246,108,245,141,244,65,244,84,244,104,244,77,244, +248,243,144,243,46,243,188,242,65,242,235,241,218,241,38,242,142,242,111,242,203,241,127,241,198,241,237,241,184,241,154,241, +159,241,115,241,33,241,225,240,191,240,194,240,245,240,29,241,221,240,62,240,194,239,164,239,145,239,101,239,98,239,109,239, +55,239,246,238,239,238,227,238,169,238,123,238,102,238,81,238,94,238,190,238,96,239,252,239,54,240,19,240,23,240,124,240, +210,240,179,240,65,240,245,239,81,240,104,241,136,242,6,243,29,243,83,243,137,243,104,243,46,243,75,243,183,243,73,244, +15,245,215,245,39,246,43,246,113,246,176,246,83,246,203,245,203,245,35,246,141,246,60,247,245,247,44,248,6,248,255,247, +7,248,224,247,192,247,246,247,114,248,214,248,243,248,254,248,55,249,165,249,41,250,139,250,160,250,157,250,232,250,132,251, +48,252,180,252,241,252,35,253,222,253,17,255,221,255,240,255,246,255,99,0,229,0,41,1,89,1,192,1,98,2,16,3, +169,3,25,4,71,4,83,4,153,4,11,5,29,5,169,4,64,4,76,4,154,4,237,4,84,5,180,5,209,5,216,5, +17,6,54,6,21,6,51,6,191,6,254,6,185,6,159,6,204,6,198,6,180,6,234,6,9,7,231,6,12,7,145,7, +225,7,224,7,244,7,35,8,61,8,106,8,189,8,236,8,234,8,240,8,229,8,146,8,82,8,114,8,150,8,142,8, +185,8,250,8,192,8,41,8,194,7,127,7,8,7,125,6,46,6,30,6,10,6,203,5,145,5,137,5,108,5,249,4, +98,4,242,3,177,3,162,3,170,3,118,3,239,2,106,2,52,2,19,2,141,1,206,0,152,0,233,0,219,0,107,0, +139,0,66,1,181,1,152,1,0,1,8,0,90,255,133,255,243,255,218,255,38,255,13,254,62,253,185,253,12,255,118,255, +169,254,17,254,40,254,245,253,42,253,143,252,100,252,18,252,133,251,74,251,66,251,241,250,186,250,13,251,58,251,223,250, +200,250,5,251,152,250,160,249,50,249,72,249,50,249,9,249,254,248,195,248,83,248,226,247,102,247,25,247,124,247,70,248, +139,248,23,248,146,247,166,247,78,248,175,248,14,248,13,247,228,246,114,247,174,247,132,247,95,247,254,246,124,246,178,246, +117,247,179,247,156,247,50,248,24,249,27,249,29,248,216,246,214,245,108,245,164,245,8,246,67,246,144,246,6,247,62,247, +255,246,143,246,28,246,152,245,71,245,134,245,19,246,144,246,42,247,196,247,219,247,187,247,1,248,26,248,111,247,242,246, +114,247,46,248,115,248,144,248,201,248,39,249,193,249,38,250,189,249,8,249,18,249,212,249,86,250,43,250,217,249,237,249, +91,250,233,250,119,251,189,251,169,251,187,251,49,252,122,252,76,252,10,252,237,251,250,251,77,252,179,252,227,252,34,253, +175,253,51,254,100,254,69,254,215,253,117,253,182,253,109,254,234,254,41,255,140,255,222,255,182,255,96,255,128,255,30,0, +198,0,112,1,76,2,254,2,50,3,108,3,5,4,104,4,63,4,2,4,238,3,232,3,40,4,201,4,105,5,209,5, +51,6,174,6,47,7,120,7,81,7,2,7,15,7,91,7,117,7,135,7,233,7,90,8,154,8,0,9,179,9,42,10, +27,10,244,9,19,10,106,10,235,10,138,11,26,12,168,12,112,13,51,14,91,14,246,13,191,13,29,14,184,14,28,15, +123,15,43,16,210,16,252,16,249,16,20,17,246,16,197,16,15,17,97,17,19,17,222,16,119,17,34,18,62,18,66,18, +107,18,101,18,71,18,99,18,174,18,4,19,78,19,76,19,221,18,71,18,227,17,193,17,200,17,235,17,31,18,90,18, +172,18,23,19,55,19,210,18,82,18,3,18,160,17,86,17,169,17,55,18,97,18,116,18,175,18,128,18,213,17,86,17, +32,17,227,16,185,16,194,16,200,16,191,16,174,16,103,16,244,15,154,15,62,15,164,14,10,14,192,13,130,13,22,13, +189,12,124,12,251,11,94,11,8,11,183,10,44,10,212,9,173,9,26,9,98,8,67,8,75,8,192,7,5,7,159,6, +103,6,71,6,43,6,188,5,23,5,185,4,139,4,57,4,212,3,105,3,226,2,110,2,9,2,84,1,118,0,12,0, +29,0,13,0,152,255,13,255,165,254,54,254,175,253,64,253,230,252,111,252,241,251,124,251,203,250,241,249,94,249,249,248, +103,248,231,247,188,247,148,247,72,247,15,247,194,246,44,246,174,245,155,245,142,245,19,245,88,244,197,243,121,243,96,243, +109,243,121,243,103,243,108,243,172,243,207,243,142,243,42,243,230,242,189,242,169,242,149,242,72,242,207,241,135,241,161,241, +251,241,64,242,31,242,178,241,102,241,92,241,106,241,122,241,104,241,22,241,189,240,136,240,63,240,219,239,193,239,23,240, +127,240,140,240,62,240,252,239,10,240,61,240,116,240,204,240,55,241,146,241,233,241,35,242,3,242,193,241,190,241,210,241, +193,241,212,241,90,242,25,243,167,243,240,243,52,244,138,244,178,244,141,244,89,244,88,244,148,244,246,244,96,245,213,245, +88,246,154,246,106,246,41,246,49,246,103,246,190,246,58,247,144,247,152,247,141,247,113,247,59,247,52,247,107,247,156,247, +207,247,34,248,80,248,66,248,78,248,183,248,109,249,253,249,234,249,157,249,247,249,187,250,242,250,203,250,38,251,2,252, +215,252,149,253,83,254,235,254,76,255,176,255,30,0,36,0,155,255,88,255,254,255,214,0,52,1,156,1,85,2,177,2, +155,2,174,2,212,2,181,2,186,2,44,3,144,3,182,3,7,4,122,4,135,4,23,4,153,3,101,3,125,3,169,3, +204,3,56,4,45,5,16,6,37,6,201,5,179,5,141,5,246,4,172,4,81,5,65,6,190,6,204,6,173,6,157,6, +203,6,0,7,233,6,186,6,212,6,53,7,165,7,246,7,244,7,150,7,29,7,221,6,218,6,178,6,51,6,208,5, +244,5,88,6,141,6,120,6,34,6,180,5,90,5,238,4,96,4,0,4,199,3,78,3,196,2,142,2,122,2,85,2, +73,2,50,2,235,1,209,1,224,1,132,1,212,0,146,0,203,0,226,0,174,0,130,0,103,0,46,0,253,255,23,0, +75,0,62,0,19,0,3,0,208,255,60,255,144,254,57,254,81,254,132,254,129,254,107,254,101,254,237,253,225,252,66,252, +149,252,222,252,109,252,224,251,183,251,211,251,60,252,196,252,190,252,11,252,95,251,254,250,93,250,109,249,250,248,67,249, +112,249,47,249,76,249,233,249,14,250,146,249,86,249,155,249,223,249,221,249,138,249,252,248,138,248,57,248,185,247,61,247, +28,247,43,247,135,247,163,248,226,249,29,250,146,249,92,249,150,249,164,249,80,249,153,248,186,247,177,247,244,248,34,250, +201,249,163,248,8,248,193,247,67,247,43,247,214,247,139,248,214,248,244,248,248,248,213,248,128,248,197,247,232,246,202,246, +131,247,44,248,119,248,208,248,44,249,68,249,99,249,190,249,229,249,156,249,82,249,66,249,43,249,61,249,249,249,231,250, +10,251,176,250,243,250,211,251,135,252,187,252,83,252,108,251,221,250,19,251,87,251,85,251,162,251,65,252,169,252,224,252, +19,253,13,253,237,252,32,253,131,253,172,253,174,253,209,253,16,254,59,254,91,254,158,254,245,254,7,255,193,254,113,254, +77,254,75,254,110,254,195,254,51,255,150,255,248,255,135,0,36,1,86,1,28,1,44,1,208,1,63,2,229,1,133,1, +61,2,198,3,173,4,94,4,214,3,232,3,48,4,79,4,112,4,143,4,159,4,2,5,167,5,248,5,249,5,17,6, +32,6,242,5,206,5,241,5,89,6,224,6,78,7,175,7,65,8,169,8,89,8,201,7,191,7,251,7,20,8,108,8, +66,9,20,10,141,10,228,10,49,11,90,11,154,11,55,12,241,12,123,13,20,14,180,14,164,14,219,13,77,13,55,13, +20,13,37,13,217,13,137,14,186,14,38,15,35,16,240,16,34,17,246,16,134,16,8,16,244,15,47,16,42,16,248,15, +8,16,43,16,22,16,14,16,49,16,26,16,244,15,77,16,198,16,179,16,113,16,135,16,158,16,143,16,170,16,165,16, +33,16,170,15,187,15,4,16,70,16,129,16,136,16,111,16,116,16,72,16,188,15,105,15,137,15,130,15,24,15,184,14, +146,14,141,14,178,14,228,14,207,14,110,14,40,14,26,14,232,13,111,13,2,13,191,12,97,12,202,11,253,10,2,10, +63,9,11,9,223,8,61,8,217,7,74,8,204,8,171,8,102,8,109,8,59,8,117,7,138,6,214,5,51,5,169,4, +123,4,114,4,33,4,205,3,222,3,240,3,138,3,247,2,135,2,12,2,137,1,62,1,16,1,186,0,65,0,218,255, +157,255,106,255,15,255,154,254,43,254,183,253,77,253,14,253,187,252,23,252,102,251,218,250,72,250,193,249,87,249,197,248, +31,248,208,247,163,247,39,247,155,246,107,246,137,246,192,246,188,246,40,246,93,245,16,245,37,245,251,244,155,244,145,244, +225,244,248,244,143,244,18,244,235,243,0,244,38,244,105,244,149,244,98,244,23,244,35,244,58,244,220,243,80,243,49,243, +89,243,46,243,204,242,201,242,11,243,255,242,166,242,96,242,44,242,241,241,209,241,207,241,220,241,22,242,89,242,60,242, +188,241,75,241,68,241,164,241,30,242,117,242,204,242,62,243,132,243,126,243,111,243,112,243,104,243,102,243,128,243,194,243, +44,244,132,244,167,244,228,244,85,245,152,245,170,245,243,245,82,246,117,246,165,246,47,247,199,247,16,248,3,248,179,247, +82,247,42,247,91,247,189,247,26,248,116,248,229,248,44,249,239,248,128,248,135,248,229,248,252,248,216,248,0,249,114,249, +182,249,174,249,188,249,37,250,171,250,240,250,248,250,16,251,116,251,34,252,225,252,124,253,236,253,55,254,109,254,207,254, +92,255,176,255,199,255,60,0,63,1,51,2,139,2,98,2,50,2,64,2,98,2,145,2,22,3,196,3,11,4,26,4, +89,4,80,4,199,3,164,3,77,4,242,4,60,5,156,5,234,5,168,5,48,5,47,5,151,5,226,5,234,5,251,5, +74,6,181,6,30,7,120,7,134,7,35,7,159,6,85,6,87,6,156,6,16,7,147,7,41,8,171,8,159,8,249,7, +128,7,178,7,14,8,19,8,13,8,81,8,138,8,102,8,45,8,9,8,168,7,20,7,197,6,165,6,80,6,15,6, +58,6,100,6,57,6,248,5,158,5,226,4,16,4,185,3,180,3,103,3,198,2,100,2,130,2,185,2,146,2,233,1, +221,0,25,0,101,0,78,1,106,1,108,0,108,255,46,255,126,255,205,255,173,255,80,255,102,255,224,255,217,255,241,254, +184,253,237,252,25,253,236,253,29,254,30,253,33,252,79,252,39,253,130,253,241,252,224,251,34,251,37,251,111,251,78,251, +210,250,113,250,55,250,23,250,63,250,139,250,116,250,253,249,178,249,144,249,59,249,251,248,7,249,191,248,245,247,161,247, +46,248,156,248,36,248,101,247,95,247,7,248,109,248,14,248,92,247,205,246,76,246,255,245,66,246,212,246,42,247,67,247, +87,247,84,247,78,247,144,247,4,248,38,248,174,247,14,247,237,246,62,247,107,247,83,247,46,247,249,246,195,246,238,246, +133,247,250,247,215,247,65,247,223,246,1,247,254,246,65,246,129,245,151,245,38,246,179,246,127,247,90,248,127,248,245,247, +132,247,111,247,101,247,71,247,73,247,171,247,102,248,244,248,186,248,234,247,146,247,93,248,166,249,59,250,229,249,144,249, +239,249,161,250,219,250,150,250,98,250,115,250,146,250,198,250,0,251,219,250,147,250,240,250,201,251,51,252,15,252,209,251, +158,251,185,251,99,252,8,253,14,253,224,252,7,253,69,253,73,253,57,253,104,253,249,253,144,254,136,254,229,253,101,253, +100,253,160,253,246,253,114,254,233,254,37,255,57,255,84,255,109,255,155,255,79,0,141,1,128,2,159,2,110,2,104,2, +102,2,108,2,162,2,199,2,192,2,239,2,97,3,198,3,46,4,171,4,249,4,41,5,143,5,204,5,67,5,107,4, +91,4,94,5,214,6,9,8,128,8,64,8,227,7,213,7,193,7,119,7,115,7,221,7,79,8,234,8,218,9,102,10, +61,10,104,10,104,11,78,12,148,12,182,12,232,12,6,13,49,13,113,13,158,13,228,13,94,14,141,14,18,14,143,13, +253,13,53,15,250,15,213,15,172,15,28,16,159,16,217,16,26,17,121,17,165,17,117,17,239,16,87,16,30,16,81,16, +151,16,222,16,60,17,112,17,79,17,27,17,242,16,191,16,167,16,198,16,205,16,130,16,69,16,121,16,219,16,243,16, +198,16,144,16,89,16,57,16,62,16,16,16,133,15,49,15,127,15,217,15,139,15,211,14,122,14,180,14,229,14,162,14, +98,14,148,14,203,14,160,14,76,14,215,13,15,13,91,12,55,12,60,12,210,11,47,11,198,10,105,10,191,9,5,9, +159,8,88,8,236,7,203,7,33,8,48,8,176,7,54,7,197,6,244,5,73,5,61,5,9,5,61,4,174,3,199,3, +192,3,26,3,73,2,245,1,62,2,142,2,41,2,51,1,138,0,137,0,182,0,167,0,94,0,221,255,48,255,175,254, +130,254,55,254,138,253,240,252,185,252,122,252,219,251,19,251,93,250,204,249,132,249,130,249,106,249,226,248,249,247,50,247, +245,246,242,246,154,246,21,246,209,245,162,245,67,245,229,244,170,244,109,244,79,244,156,244,251,244,164,244,170,243,43,243, +152,243,251,243,182,243,133,243,212,243,11,244,0,244,252,243,183,243,49,243,56,243,203,243,229,243,81,243,174,242,52,242, +251,241,85,242,211,242,161,242,14,242,16,242,133,242,170,242,153,242,208,242,245,242,149,242,44,242,47,242,56,242,18,242, +47,242,144,242,199,242,222,242,252,242,230,242,195,242,42,243,244,243,93,244,69,244,58,244,131,244,234,244,51,245,79,245, +105,245,197,245,114,246,36,247,130,247,122,247,50,247,248,246,69,247,35,248,221,248,247,248,240,248,45,249,87,249,60,249, +32,249,40,249,111,249,14,250,151,250,169,250,159,250,193,250,220,250,250,250,36,251,240,250,112,250,93,250,180,250,234,250, +51,251,233,251,141,252,188,252,218,252,46,253,132,253,230,253,135,254,50,255,148,255,216,255,60,0,148,0,185,0,242,0, +132,1,55,2,188,2,8,3,67,3,147,3,218,3,215,3,211,3,86,4,27,5,108,5,76,5,57,5,63,5,98,5, +234,5,161,6,229,6,183,6,179,6,251,6,19,7,200,6,146,6,211,6,67,7,96,7,30,7,223,6,8,7,147,7, +252,7,226,7,124,7,37,7,251,6,10,7,62,7,113,7,205,7,101,8,183,8,140,8,119,8,146,8,79,8,211,7, +189,7,224,7,188,7,126,7,137,7,218,7,56,8,94,8,38,8,184,7,62,7,189,6,98,6,81,6,62,6,246,5, +194,5,184,5,93,5,132,4,185,3,103,3,69,3,243,2,144,2,96,2,89,2,73,2,21,2,172,1,35,1,207,0, +199,0,141,0,160,255,104,254,253,253,168,254,92,255,95,255,52,255,48,255,211,254,52,254,34,254,126,254,102,254,192,253, +26,253,170,252,120,252,152,252,200,252,167,252,82,252,59,252,137,252,235,252,232,252,79,252,98,251,165,250,100,250,85,250, +12,250,195,249,243,249,82,250,62,250,186,249,40,249,198,248,200,248,37,249,85,249,1,249,125,248,27,248,210,247,147,247, +84,247,33,247,42,247,107,247,134,247,88,247,26,247,233,246,179,246,128,246,102,246,125,246,223,246,144,247,108,248,45,249, +95,249,195,248,234,247,162,247,187,247,99,247,183,246,166,246,71,247,211,247,11,248,40,248,5,248,187,247,220,247,57,248, +244,247,50,247,237,246,64,247,126,247,85,247,234,246,158,246,221,246,135,247,7,248,52,248,37,248,187,247,60,247,63,247, +130,247,59,247,158,246,153,246,100,247,129,248,159,249,144,250,247,250,160,250,199,249,207,248,42,248,105,248,167,249,11,251, +197,251,242,251,233,251,160,251,55,251,234,250,140,250,35,250,93,250,99,251,98,252,234,252,85,253,165,253,103,253,165,252, +244,251,203,251,52,252,228,252,124,253,185,253,141,253,39,253,233,252,243,252,202,252,44,252,241,251,7,253,183,254,102,255, +225,254,96,254,134,254,224,254,11,255,33,255,106,255,50,0,81,1,9,2,0,2,170,1,111,1,73,1,65,1,123,1, +252,1,184,2,123,3,250,3,65,4,150,4,241,4,40,5,70,5,81,5,45,5,2,5,49,5,208,5,115,6,146,6, +58,6,11,6,89,6,201,6,10,7,57,7,125,7,225,7,95,8,191,8,207,8,205,8,31,9,208,9,160,10,101,11, +2,12,91,12,107,12,105,12,144,12,193,12,195,12,212,12,92,13,23,14,99,14,83,14,133,14,0,15,59,15,74,15, +187,15,103,16,172,16,187,16,51,17,205,17,231,17,186,17,166,17,91,17,193,16,110,16,137,16,129,16,47,16,18,16, +91,16,155,16,112,16,15,16,3,16,118,16,247,16,6,17,170,16,83,16,65,16,81,16,106,16,156,16,182,16,126,16, +48,16,249,15,128,15,214,14,180,14,52,15,158,15,165,15,126,15,30,15,161,14,133,14,213,14,17,15,14,15,5,15, +7,15,245,14,180,14,48,14,136,13,255,12,150,12,8,12,59,11,88,10,168,9,109,9,169,9,244,9,205,9,45,9, +136,8,43,8,238,7,127,7,216,6,92,6,113,6,230,6,243,6,33,6,224,4,238,3,139,3,98,3,13,3,137,2, +58,2,70,2,108,2,121,2,104,2,39,2,196,1,134,1,103,1,18,1,119,0,221,255,131,255,118,255,95,255,188,254, +159,253,183,252,94,252,69,252,6,252,123,251,178,250,235,249,92,249,232,248,84,248,184,247,132,247,223,247,52,248,218,247, +238,246,17,246,163,245,154,245,156,245,59,245,136,244,25,244,39,244,71,244,29,244,189,243,117,243,151,243,15,244,83,244, +43,244,2,244,43,244,127,244,187,244,182,244,77,244,162,243,28,243,237,242,226,242,191,242,146,242,140,242,167,242,154,242, +69,242,228,241,210,241,23,242,116,242,193,242,227,242,166,242,39,242,248,241,73,242,140,242,81,242,209,241,126,241,159,241, +12,242,63,242,28,242,54,242,190,242,30,243,25,243,251,242,220,242,231,242,122,243,64,244,140,244,159,244,27,245,195,245, +22,246,56,246,87,246,84,246,84,246,175,246,62,247,147,247,175,247,218,247,15,248,37,248,57,248,93,248,105,248,117,248, +193,248,23,249,35,249,36,249,109,249,186,249,189,249,149,249,116,249,110,249,139,249,161,249,147,249,157,249,244,249,103,250, +194,250,19,251,108,251,193,251,40,252,190,252,102,253,218,253,27,254,128,254,45,255,207,255,26,0,40,0,69,0,140,0, +235,0,71,1,148,1,202,1,254,1,95,2,214,2,1,3,241,2,38,3,161,3,13,4,143,4,68,5,166,5,131,5, +84,5,74,5,65,5,80,5,108,5,90,5,75,5,123,5,149,5,98,5,65,5,108,5,208,5,102,6,244,6,6,7, +166,6,104,6,146,6,211,6,205,6,148,6,126,6,176,6,250,6,32,7,31,7,39,7,78,7,85,7,253,6,143,6, +130,6,223,6,98,7,213,7,243,7,143,7,249,6,179,6,196,6,173,6,38,6,126,5,46,5,57,5,77,5,58,5, +225,4,55,4,134,3,37,3,241,2,155,2,55,2,12,2,52,2,106,2,63,2,182,1,96,1,125,1,147,1,30,1, +48,0,106,255,116,255,23,0,101,0,5,0,139,255,100,255,111,255,109,255,43,255,176,254,112,254,171,254,251,254,232,254, +116,254,246,253,206,253,14,254,69,254,4,254,95,253,217,252,231,252,67,253,3,253,7,252,131,251,24,252,190,252,132,252, +208,251,70,251,235,250,179,250,175,250,174,250,107,250,237,249,113,249,56,249,121,249,2,250,25,250,100,249,151,248,107,248, +134,248,92,248,56,248,108,248,155,248,138,248,144,248,202,248,195,248,60,248,194,247,245,247,158,248,40,249,153,249,15,250, +43,250,251,249,10,250,24,250,146,249,224,248,125,248,23,248,218,247,139,248,180,249,30,250,180,249,24,249,121,248,31,248, +146,248,128,249,233,249,149,249,64,249,73,249,69,249,237,248,127,248,58,248,77,248,231,248,156,249,161,249,48,249,57,249, +183,249,241,249,232,249,1,250,50,250,124,250,18,251,175,251,195,251,71,251,210,250,230,250,117,251,243,251,22,252,59,252, +209,252,146,253,192,253,51,253,166,252,180,252,20,253,82,253,98,253,77,253,30,253,38,253,156,253,49,254,124,254,114,254, +105,254,161,254,207,254,139,254,35,254,26,254,54,254,25,254,220,253,145,253,96,253,201,253,183,254,78,255,86,255,85,255, +120,255,168,255,246,255,72,0,116,0,167,0,245,0,68,1,178,1,43,2,72,2,45,2,114,2,19,3,135,3,174,3, +207,3,7,4,56,4,51,4,2,4,247,3,62,4,152,4,209,4,40,5,194,5,39,6,249,5,180,5,208,5,217,5, +131,5,123,5,47,6,11,7,146,7,211,7,222,7,206,7,230,7,27,8,51,8,75,8,171,8,95,9,46,10,201,10, +57,11,201,11,71,12,57,12,211,11,182,11,230,11,8,12,29,12,91,12,201,12,45,13,92,13,141,13,6,14,146,14, +232,14,39,15,98,15,112,15,72,15,249,14,156,14,120,14,114,14,44,14,252,13,79,14,140,14,59,14,18,14,105,14, +153,14,150,14,209,14,224,14,83,14,205,13,205,13,234,13,229,13,253,13,28,14,249,13,196,13,184,13,181,13,198,13, +37,14,116,14,41,14,155,13,107,13,123,13,127,13,141,13,136,13,61,13,7,13,23,13,7,13,215,12,244,12,47,13, +14,13,143,12,241,11,108,11,42,11,247,10,126,10,221,9,87,9,242,8,177,8,152,8,131,8,107,8,104,8,106,8, +97,8,48,8,164,7,236,6,125,6,56,6,184,5,45,5,237,4,221,4,187,4,87,4,178,3,74,3,121,3,206,3, +189,3,74,3,150,2,207,1,98,1,109,1,113,1,31,1,172,0,70,0,215,255,80,255,223,254,177,254,174,254,159,254, +108,254,237,253,255,252,5,252,131,251,91,251,23,251,171,250,57,250,185,249,55,249,246,248,252,248,216,248,84,248,237,247, +228,247,161,247,241,246,156,246,207,246,217,246,171,246,166,246,120,246,242,245,150,245,106,245,8,245,217,244,87,245,7,246, +73,246,39,246,232,245,179,245,124,245,31,245,195,244,165,244,158,244,124,244,102,244,110,244,112,244,78,244,238,243,112,243, +75,243,137,243,180,243,202,243,26,244,105,244,96,244,51,244,10,244,170,243,48,243,28,243,133,243,246,243,58,244,149,244, +246,244,214,244,80,244,49,244,142,244,189,244,175,244,216,244,34,245,68,245,113,245,213,245,4,246,169,245,73,245,152,245, +91,246,228,246,67,247,183,247,231,247,180,247,149,247,126,247,22,247,204,246,12,247,111,247,193,247,74,248,230,248,58,249, +62,249,249,248,150,248,131,248,192,248,245,248,40,249,90,249,81,249,61,249,119,249,171,249,137,249,112,249,191,249,76,250, +223,250,99,251,202,251,32,252,110,252,159,252,171,252,175,252,211,252,26,253,124,253,37,254,30,255,198,255,181,255,170,255, +56,0,142,0,15,0,141,255,216,255,134,0,2,1,77,1,126,1,133,1,136,1,176,1,189,1,144,1,191,1,163,2, +130,3,208,3,11,4,100,4,75,4,218,3,168,3,130,3,36,3,14,3,120,3,222,3,17,4,81,4,152,4,175,4, +158,4,161,4,214,4,7,5,16,5,56,5,138,5,175,5,190,5,228,5,153,5,208,4,129,4,217,4,241,4,192,4, +239,4,50,5,2,5,187,4,172,4,138,4,84,4,90,4,125,4,99,4,23,4,217,3,193,3,208,3,244,3,228,3, +116,3,1,3,219,2,170,2,34,2,161,1,118,1,129,1,172,1,225,1,203,1,83,1,195,0,98,0,91,0,137,0, +139,0,109,0,145,0,189,0,135,0,53,0,15,0,202,255,81,255,239,254,164,254,95,254,88,254,156,254,230,254,214,254, +42,254,53,253,230,252,158,253,125,254,120,254,176,253,70,253,163,253,198,253,1,253,43,252,237,251,190,251,131,251,212,251, +87,252,66,252,217,251,175,251,158,251,139,251,143,251,89,251,177,250,26,250,15,250,55,250,0,250,133,249,102,249,180,249, +208,249,140,249,124,249,205,249,235,249,165,249,134,249,168,249,81,249,71,248,131,247,181,247,86,248,218,248,96,249,200,249, +168,249,65,249,31,249,106,249,0,250,92,250,214,249,221,248,149,248,250,248,59,249,64,249,66,249,14,249,184,248,174,248, +251,248,98,249,189,249,247,249,30,250,76,250,82,250,9,250,156,249,49,249,251,248,64,249,199,249,4,250,7,250,46,250, +95,250,108,250,112,250,105,250,57,250,13,250,64,250,239,250,213,251,118,252,148,252,105,252,68,252,46,252,9,252,226,251, +252,251,92,252,173,252,230,252,84,253,193,253,162,253,38,253,217,252,201,252,232,252,75,253,163,253,170,253,200,253,59,254, +117,254,29,254,185,253,215,253,76,254,170,254,231,254,19,255,11,255,229,254,230,254,206,254,99,254,56,254,151,254,210,254, +206,254,53,255,221,255,52,0,141,0,50,1,169,1,232,1,81,2,166,2,161,2,152,2,168,2,146,2,119,2,165,2, +27,3,181,3,66,4,148,4,188,4,243,4,58,5,112,5,122,5,89,5,66,5,110,5,193,5,0,6,49,6,109,6, +144,6,134,6,151,6,253,6,108,7,163,7,254,7,144,8,188,8,113,8,126,8,25,9,161,9,215,9,252,9,61,10, +211,10,204,11,174,12,25,13,53,13,64,13,77,13,83,13,25,13,159,12,109,12,216,12,151,13,68,14,173,14,204,14, +208,14,231,14,21,15,101,15,184,15,207,15,236,15,96,16,148,16,238,15,10,15,194,14,251,14,47,15,42,15,0,15, +245,14,57,15,154,15,192,15,150,15,96,15,134,15,252,15,35,16,195,15,113,15,122,15,131,15,95,15,61,15,28,15, +217,14,157,14,173,14,246,14,40,15,39,15,33,15,23,15,226,14,163,14,151,14,187,14,242,14,47,15,78,15,50,15, +226,14,101,14,219,13,112,13,28,13,216,12,165,12,69,12,155,11,21,11,194,10,55,10,185,9,207,9,249,9,166,9, +87,9,94,9,81,9,33,9,16,9,222,8,82,8,166,7,12,7,155,6,107,6,62,6,190,5,24,5,177,4,120,4, +3,4,68,3,190,2,213,2,56,3,99,3,52,3,179,2,2,2,127,1,71,1,241,0,77,0,183,255,97,255,15,255, +147,254,233,253,29,253,80,252,205,251,181,251,170,251,57,251,165,250,114,250,103,250,244,249,55,249,158,248,69,248,33,248, +15,248,206,247,98,247,19,247,230,246,152,246,242,245,14,245,132,244,189,244,56,245,99,245,114,245,134,245,89,245,3,245, +197,244,112,244,18,244,52,244,195,244,35,245,40,245,6,245,184,244,49,244,161,243,71,243,21,243,203,242,127,242,148,242, +231,242,237,242,174,242,144,242,142,242,131,242,149,242,195,242,227,242,25,243,114,243,134,243,38,243,186,242,156,242,163,242, +158,242,169,242,221,242,23,243,88,243,186,243,237,243,157,243,37,243,12,243,81,243,218,243,155,244,56,245,93,245,73,245, +96,245,157,245,172,245,113,245,82,245,180,245,76,246,159,246,205,246,243,246,214,246,185,246,3,247,82,247,81,247,126,247, +18,248,151,248,227,248,32,249,50,249,7,249,219,248,204,248,216,248,252,248,42,249,104,249,188,249,241,249,228,249,195,249, +187,249,211,249,20,250,113,250,211,250,100,251,74,252,53,253,185,253,226,253,10,254,103,254,229,254,85,255,152,255,166,255, +164,255,206,255,6,0,5,0,241,255,28,0,117,0,236,0,163,1,79,2,125,2,96,2,122,2,233,2,127,3,232,3, +226,3,175,3,182,3,209,3,185,3,156,3,168,3,215,3,55,4,183,4,254,4,223,4,147,4,117,4,158,4,193,4, +165,4,141,4,180,4,246,4,62,5,111,5,66,5,237,4,19,5,153,5,214,5,177,5,132,5,130,5,188,5,232,5, +124,5,174,4,73,4,119,4,218,4,78,5,166,5,146,5,88,5,107,5,89,5,125,4,94,3,20,3,148,3,255,3, +2,4,194,3,59,3,158,2,103,2,114,2,39,2,132,1,223,0,95,0,65,0,177,0,58,1,79,1,240,0,92,0, +193,255,74,255,5,255,16,255,139,255,11,0,5,0,173,255,85,255,201,254,24,254,169,253,73,253,182,252,115,252,198,252, +28,253,50,253,90,253,136,253,98,253,10,253,219,252,183,252,78,252,209,251,187,251,241,251,231,251,125,251,235,250,67,250, +215,249,44,250,243,250,52,251,196,250,98,250,115,250,137,250,32,250,89,249,207,248,198,248,245,248,252,248,162,248,252,247, +140,247,178,247,16,248,20,248,164,247,1,247,179,246,50,247,2,248,255,247,29,247,188,246,180,247,9,249,81,249,149,248, +227,247,174,247,179,247,226,247,42,248,61,248,40,248,50,248,62,248,56,248,60,248,8,248,142,247,143,247,48,248,139,248, +129,248,208,248,89,249,110,249,20,249,163,248,83,248,134,248,55,249,163,249,107,249,12,249,231,248,228,248,225,248,209,248, +169,248,157,248,16,249,8,250,237,250,25,251,147,250,10,250,26,250,137,250,144,250,13,250,216,249,106,250,28,251,104,251, +158,251,233,251,22,252,83,252,210,252,51,253,16,253,133,252,35,252,123,252,70,253,125,253,246,252,210,252,164,253,175,254, +53,255,22,255,117,254,184,253,119,253,193,253,241,253,139,253,11,253,83,253,66,254,204,254,136,254,10,254,233,253,98,254, +87,255,36,0,94,0,125,0,255,0,149,1,211,1,180,1,105,1,82,1,181,1,76,2,170,2,211,2,4,3,109,3, +0,4,88,4,53,4,18,4,142,4,124,5,36,6,15,6,111,5,231,4,238,4,109,5,1,6,109,6,171,6,222,6, +59,7,193,7,16,8,215,7,126,7,210,7,204,8,113,9,57,9,182,8,187,8,152,9,206,10,91,11,21,11,40,11, +35,12,27,13,112,13,108,13,40,13,202,12,228,12,84,13,70,13,222,12,4,13,229,13,232,14,120,15,92,15,248,14, +3,15,176,15,152,16,70,17,124,17,90,17,78,17,115,17,78,17,146,16,189,15,151,15,58,16,223,16,212,16,73,16, +234,15,32,16,176,16,234,16,111,16,211,15,206,15,54,16,108,16,56,16,212,15,173,15,25,16,195,16,242,16,120,16, +225,15,188,15,25,16,114,16,58,16,148,15,33,15,30,15,43,15,238,14,151,14,143,14,192,14,207,14,217,14,9,15, +11,15,209,14,197,14,159,14,190,13,132,12,181,11,59,11,212,10,159,10,113,10,7,10,202,9,38,10,178,10,161,10, +190,9,187,8,100,8,168,8,224,8,184,8,40,8,75,7,176,6,174,6,146,6,154,5,62,4,123,3,123,3,161,3, +96,3,207,2,132,2,199,2,22,3,197,2,215,1,226,0,92,0,69,0,99,0,106,0,16,0,113,255,254,254,176,254, +19,254,56,253,169,252,132,252,128,252,55,252,65,251,188,249,142,248,91,248,188,248,197,248,255,247,2,247,223,246,139,247, +204,247,28,247,46,246,171,245,169,245,233,245,207,245,13,245,90,244,124,244,30,245,88,245,187,244,177,243,33,243,112,243, +17,244,89,244,71,244,52,244,75,244,91,244,253,243,51,243,145,242,114,242,155,242,176,242,138,242,65,242,38,242,83,242, +106,242,21,242,110,241,209,240,174,240,56,241,3,242,89,242,38,242,12,242,120,242,246,242,228,242,91,242,238,241,237,241, +112,242,77,243,202,243,114,243,230,242,235,242,86,243,153,243,116,243,250,242,177,242,42,243,38,244,224,244,12,245,254,244, +50,245,200,245,67,246,61,246,38,246,140,246,53,247,171,247,210,247,190,247,160,247,180,247,252,247,71,248,99,248,54,248, +8,248,79,248,234,248,74,249,74,249,38,249,49,249,179,249,78,250,43,250,106,249,40,249,180,249,84,250,164,250,209,250, +254,250,112,251,100,252,72,253,73,253,204,252,249,252,227,253,161,254,246,254,68,255,118,255,135,255,16,0,250,0,69,1, +241,0,14,1,199,1,68,2,63,2,39,2,63,2,110,2,152,2,199,2,241,2,230,2,206,2,42,3,218,3,53,4, +60,4,114,4,235,4,141,5,76,6,170,6,81,6,223,5,223,5,236,5,142,5,243,4,138,4,168,4,82,5,13,6, +75,6,10,6,205,5,254,5,104,6,139,6,104,6,112,6,207,6,101,7,225,7,182,7,205,6,10,6,25,6,133,6, +190,6,231,6,47,7,107,7,132,7,145,7,119,7,4,7,92,6,236,5,192,5,121,5,26,5,16,5,96,5,155,5, +121,5,243,4,43,4,129,3,55,3,50,3,64,3,50,3,221,2,93,2,9,2,247,1,246,1,199,1,122,1,117,1, +189,1,195,1,134,1,176,1,16,2,232,1,127,1,89,1,8,1,90,0,221,255,142,255,32,255,251,254,72,255,72,255, +188,254,75,254,61,254,67,254,71,254,125,254,219,254,5,255,171,254,237,253,56,253,198,252,149,252,173,252,252,252,32,253, +205,252,69,252,238,251,163,251,41,251,252,250,131,251,21,252,251,251,110,251,222,250,126,250,147,250,230,250,182,250,17,250, +201,249,235,249,253,249,9,250,12,250,153,249,223,248,164,248,8,249,105,249,122,249,138,249,201,249,242,249,230,249,227,249, +241,249,224,249,223,249,16,250,33,250,252,249,213,249,100,249,143,248,22,248,68,248,84,248,235,247,139,247,126,247,158,247, +219,247,49,248,156,248,18,249,129,249,243,249,111,250,135,250,225,249,226,248,37,248,223,247,23,248,131,248,143,248,56,248, +30,248,92,248,104,248,37,248,23,248,134,248,25,249,122,249,190,249,2,250,23,250,219,249,126,249,73,249,84,249,123,249, +171,249,24,250,164,250,165,250,15,250,182,249,185,249,110,249,15,249,94,249,45,250,246,250,151,251,178,251,28,251,162,250, +200,250,8,251,16,251,15,251,240,250,179,250,153,250,122,250,10,250,143,249,88,249,95,249,187,249,125,250,60,251,140,251, +160,251,229,251,90,252,149,252,141,252,202,252,139,253,104,254,0,255,76,255,76,255,21,255,245,254,26,255,98,255,143,255, +149,255,185,255,55,0,207,0,47,1,91,1,102,1,89,1,128,1,245,1,87,2,140,2,242,2,132,3,212,3,198,3, +168,3,175,3,210,3,18,4,124,4,221,4,248,4,28,5,172,5,89,6,197,6,34,7,114,7,124,7,185,7,143,8, +88,9,171,9,5,10,142,10,241,10,61,11,128,11,130,11,122,11,173,11,203,11,191,11,9,12,173,12,45,13,117,13, +192,13,10,14,80,14,194,14,113,15,32,16,138,16,176,16,188,16,180,16,148,16,108,16,47,16,203,15,135,15,169,15, +236,15,241,15,206,15,202,15,240,15,22,16,41,16,69,16,124,16,195,16,42,17,177,17,252,17,202,17,82,17,228,16, +190,16,255,16,64,17,11,17,186,16,200,16,237,16,217,16,188,16,162,16,140,16,189,16,19,17,6,17,171,16,136,16, +162,16,189,16,199,16,164,16,67,16,211,15,118,15,15,15,128,14,223,13,104,13,43,13,222,12,92,12,223,11,146,11, +114,11,125,11,129,11,62,11,235,10,203,10,168,10,87,10,247,9,114,9,179,8,19,8,186,7,86,7,227,6,181,6, +158,6,57,6,171,5,94,5,58,5,243,4,144,4,44,4,183,3,100,3,124,3,182,3,145,3,29,3,162,2,12,2, +83,1,154,0,217,255,54,255,250,254,213,254,61,254,113,253,233,252,140,252,37,252,169,251,242,250,25,250,139,249,85,249, +40,249,231,248,137,248,18,248,184,247,123,247,14,247,136,246,78,246,90,246,79,246,21,246,208,245,154,245,130,245,135,245, +141,245,97,245,244,244,164,244,216,244,55,245,9,245,90,244,230,243,235,243,246,243,194,243,126,243,75,243,8,243,177,242, +111,242,75,242,51,242,56,242,97,242,121,242,86,242,23,242,243,241,237,241,204,241,140,241,148,241,7,242,85,242,53,242, +33,242,45,242,226,241,129,241,136,241,151,241,96,241,144,241,85,242,212,242,199,242,216,242,45,243,75,243,46,243,40,243, +61,243,95,243,198,243,116,244,248,244,24,245,25,245,44,245,61,245,102,245,186,245,1,246,48,246,144,246,4,247,34,247, +255,246,23,247,126,247,221,247,237,247,182,247,128,247,135,247,185,247,230,247,14,248,57,248,92,248,114,248,146,248,188,248, +213,248,224,248,33,249,195,249,140,250,34,251,110,251,162,251,1,252,160,252,57,253,117,253,131,253,219,253,124,254,248,254, +42,255,83,255,160,255,246,255,60,0,136,0,217,0,16,1,74,1,187,1,52,2,107,2,111,2,84,2,18,2,227,1, +24,2,164,2,82,3,17,4,187,4,36,5,58,5,228,4,59,4,199,3,221,3,54,4,146,4,254,4,101,5,167,5, +219,5,254,5,216,5,149,5,148,5,181,5,170,5,173,5,0,6,78,6,88,6,103,6,138,6,100,6,13,6,254,5, +59,6,142,6,251,6,90,7,98,7,53,7,13,7,192,6,75,6,6,6,6,6,46,6,131,6,191,6,77,6,61,5, +87,4,12,4,10,4,238,3,190,3,173,3,199,3,231,3,194,3,48,3,132,2,71,2,118,2,150,2,109,2,27,2, +209,1,224,1,65,2,65,2,128,1,180,0,150,0,2,1,152,1,2,2,197,1,243,0,75,0,12,0,202,255,115,255, +82,255,78,255,58,255,72,255,119,255,87,255,222,254,138,254,91,254,221,253,88,253,109,253,185,253,114,253,219,252,165,252, +166,252,113,252,60,252,66,252,62,252,249,251,178,251,212,251,97,252,174,252,23,252,244,250,80,250,138,250,226,250,154,250, +12,250,248,249,61,250,68,250,16,250,205,249,72,249,160,248,92,248,122,248,172,248,246,248,47,249,250,248,172,248,204,248, +10,249,253,248,240,248,20,249,255,248,149,248,100,248,193,248,56,249,55,249,188,248,243,247,215,246,207,245,186,245,197,246, +28,248,244,248,38,249,231,248,146,248,77,248,239,247,152,247,168,247,255,247,46,248,74,248,135,248,140,248,10,248,103,247, +36,247,48,247,72,247,127,247,246,247,112,248,166,248,177,248,213,248,38,249,118,249,120,249,40,249,239,248,235,248,221,248, +224,248,44,249,90,249,40,249,17,249,78,249,150,249,221,249,21,250,6,250,239,249,246,249,136,249,222,248,60,249,166,250, +192,251,24,252,16,252,153,251,219,250,149,250,196,250,179,250,111,250,143,250,13,251,98,251,84,251,243,250,129,250,126,250, +46,251,16,252,125,252,186,252,130,253,173,254,96,255,74,255,246,254,245,254,44,255,21,255,184,254,199,254,139,255,135,0, +81,1,188,1,160,1,82,1,100,1,154,1,127,1,116,1,248,1,220,2,206,3,161,4,241,4,135,4,217,3,155,3, +20,4,225,4,117,5,204,5,41,6,143,6,251,6,95,7,91,7,10,7,67,7,17,8,144,8,183,8,46,9,214,9, +92,10,17,11,206,11,224,11,149,11,229,11,178,12,18,13,251,12,10,13,53,13,21,13,254,12,77,13,130,13,108,13, +229,13,6,15,159,15,95,15,45,15,96,15,212,15,203,16,218,17,226,17,14,17,191,16,45,17,87,17,239,16,128,16, +91,16,154,16,89,17,8,18,192,17,237,16,223,16,143,17,217,17,150,17,83,17,21,17,32,17,240,17,177,18,78,18, +140,17,156,17,254,17,212,17,96,17,40,17,84,17,225,17,99,18,71,18,139,17,202,16,161,16,4,17,46,17,182,16, +77,16,149,16,26,17,52,17,200,16,9,16,102,15,90,15,185,15,207,15,59,15,56,14,90,13,15,13,18,13,203,12, +45,12,178,11,177,11,30,12,129,12,53,12,61,11,114,10,112,10,180,10,78,10,31,9,0,8,182,7,25,8,90,8, +185,7,77,6,41,5,31,5,151,5,157,5,53,5,220,4,187,4,181,4,105,4,126,3,104,2,223,1,223,1,13,2, +32,2,166,1,165,0,238,255,193,255,108,255,169,254,212,253,48,253,2,253,61,253,253,252,205,251,149,250,46,250,64,250, +24,250,105,249,98,248,188,247,5,248,165,248,136,248,160,247,209,246,152,246,138,246,48,246,156,245,22,245,233,244,86,245, +11,246,36,246,104,245,172,244,151,244,235,244,49,245,25,245,165,244,80,244,132,244,207,244,82,244,14,243,20,242,46,242, +214,242,17,243,184,242,44,242,185,241,198,241,105,242,193,242,60,242,160,241,178,241,26,242,72,242,3,242,88,241,230,240, +66,241,228,241,235,241,105,241,252,240,10,241,173,241,114,242,151,242,44,242,253,241,61,242,101,242,60,242,15,242,41,242, +162,242,91,243,228,243,201,243,87,243,115,243,73,244,2,245,45,245,55,245,84,245,79,245,83,245,138,245,174,245,175,245, +214,245,43,246,134,246,241,246,84,247,130,247,163,247,238,247,33,248,216,247,47,247,194,246,5,247,185,247,54,248,30,248, +173,247,131,247,243,247,134,248,180,248,190,248,39,249,234,249,203,250,142,251,206,251,158,251,196,251,111,252,244,252,30,253, +80,253,151,253,238,253,169,254,174,255,78,0,100,0,129,0,216,0,250,0,174,0,84,0,78,0,177,0,119,1,82,2, +150,2,62,2,41,2,171,2,22,3,32,3,50,3,102,3,163,3,10,4,95,4,43,4,187,3,175,3,217,3,205,3, +199,3,16,4,114,4,202,4,58,5,161,5,164,5,91,5,67,5,130,5,226,5,75,6,174,6,216,6,204,6,202,6, +198,6,123,6,252,5,178,5,237,5,158,6,73,7,129,7,97,7,45,7,225,6,149,6,121,6,96,6,23,6,219,5, +212,5,209,5,166,5,42,5,90,4,204,3,249,3,83,4,55,4,247,3,232,3,179,3,52,3,194,2,121,2,84,2, +126,2,214,2,219,2,136,2,107,2,155,2,150,2,59,2,247,1,209,1,119,1,41,1,120,1,20,2,37,2,156,1, +45,1,44,1,50,1,220,0,54,0,144,255,82,255,180,255,74,0,66,0,135,255,254,254,33,255,110,255,100,255,2,255, +94,254,196,253,162,253,191,253,135,253,28,253,255,252,45,253,104,253,120,253,31,253,161,252,159,252,205,252,75,252,78,251, +181,250,169,250,253,250,199,251,125,252,52,252,54,251,172,250,209,250,227,250,157,250,88,250,61,250,62,250,93,250,101,250, +15,250,161,249,169,249,0,250,11,250,204,249,203,249,49,250,151,250,149,250,31,250,125,249,1,249,210,248,224,248,227,248, +168,248,113,248,145,248,204,248,205,248,190,248,192,248,142,248,43,248,18,248,92,248,133,248,63,248,253,247,98,248,66,249, +166,249,43,249,132,248,64,248,39,248,2,248,244,247,20,248,95,248,210,248,70,249,144,249,166,249,131,249,89,249,140,249, +248,249,232,249,68,249,222,248,98,249,134,250,83,251,10,251,14,250,135,249,215,249,34,250,220,249,183,249,74,250,237,250, +216,250,88,250,242,249,147,249,86,249,177,249,95,250,146,250,106,250,175,250,82,251,147,251,58,251,182,250,127,250,193,250, +73,251,174,251,183,251,145,251,133,251,147,251,117,251,38,251,38,251,223,251,49,253,149,254,98,255,58,255,141,254,57,254, +120,254,203,254,222,254,0,255,175,255,206,0,122,1,33,1,79,0,215,255,246,255,136,0,54,1,126,1,100,1,147,1, +68,2,238,2,57,3,72,3,60,3,47,3,81,3,174,3,30,4,129,4,231,4,106,5,210,5,205,5,127,5,100,5, +183,5,97,6,42,7,188,7,7,8,118,8,38,9,145,9,118,9,91,9,216,9,244,10,34,12,166,12,77,12,214,11, +10,12,166,12,227,12,180,12,167,12,231,12,65,13,174,13,13,14,9,14,253,13,165,14,190,15,86,16,64,16,238,15, +167,15,179,15,37,16,81,16,196,15,30,15,20,15,148,15,36,16,79,16,7,16,220,15,40,16,129,16,151,16,174,16, +224,16,24,17,109,17,191,17,154,17,3,17,150,16,188,16,64,17,140,17,77,17,253,16,70,17,242,17,44,18,166,17, +209,16,70,16,94,16,223,16,12,17,132,16,241,15,52,16,4,17,61,17,113,16,82,15,180,14,202,14,22,15,223,14, +31,14,142,13,130,13,104,13,182,12,144,11,147,10,109,10,39,11,215,11,190,11,20,11,107,10,35,10,86,10,98,10, +120,9,11,8,79,7,106,7,148,7,73,7,137,6,192,5,125,5,139,5,28,5,50,4,172,3,238,3,124,4,156,4, +239,3,200,2,249,1,224,1,247,1,154,1,205,0,19,0,189,255,143,255,33,255,77,254,73,253,127,252,69,252,112,252, +98,252,183,251,164,250,179,249,49,249,223,248,86,248,155,247,11,247,247,246,93,247,173,247,49,247,23,246,75,245,10,245, +210,244,116,244,24,244,227,243,43,244,11,245,172,245,63,245,66,244,189,243,228,243,25,244,254,243,225,243,19,244,98,244, +127,244,84,244,178,243,176,242,19,242,72,242,135,242,34,242,139,241,104,241,184,241,27,242,23,242,115,241,178,240,155,240, +56,241,198,241,171,241,25,241,179,240,190,240,238,240,228,240,150,240,87,240,143,240,45,241,166,241,183,241,146,241,100,241, +101,241,220,241,109,242,101,242,6,242,48,242,229,242,107,243,125,243,92,243,76,243,148,243,75,244,1,245,57,245,52,245, +131,245,248,245,246,245,161,245,151,245,223,245,54,246,161,246,247,246,233,246,206,246,29,247,138,247,174,247,164,247,121,247, +49,247,41,247,120,247,172,247,163,247,173,247,214,247,0,248,57,248,130,248,181,248,226,248,93,249,62,250,17,251,112,251, +193,251,129,252,59,253,89,253,64,253,121,253,221,253,76,254,225,254,88,255,161,255,64,0,45,1,171,1,187,1,14,2, +129,2,101,2,0,2,14,2,102,2,140,2,198,2,77,3,150,3,112,3,111,3,179,3,209,3,241,3,113,4,0,5, +56,5,49,5,29,5,23,5,60,5,105,5,98,5,72,5,88,5,153,5,252,5,74,6,80,6,72,6,126,6,196,6, +234,6,11,7,27,7,34,7,115,7,250,7,51,8,22,8,240,7,186,7,138,7,197,7,89,8,205,8,252,8,245,8, +157,8,13,8,168,7,132,7,66,7,184,6,71,6,74,6,132,6,112,6,255,5,135,5,56,5,10,5,247,4,235,4, +184,4,104,4,95,4,159,4,123,4,167,3,236,2,224,2,22,3,63,3,144,3,182,3,65,3,186,2,174,2,173,2, +119,2,147,2,30,3,130,3,108,3,1,3,131,2,42,2,249,1,209,1,172,1,123,1,33,1,193,0,113,0,245,255, +95,255,67,255,222,255,172,0,232,0,42,0,234,254,45,254,54,254,42,254,132,253,222,252,242,252,158,253,66,254,130,254, +98,254,231,253,9,253,2,252,68,251,254,250,212,250,90,250,215,249,17,250,13,251,202,251,207,251,196,251,238,251,171,251, +234,250,105,250,116,250,178,250,237,250,19,251,227,250,51,250,84,249,214,248,244,248,103,249,220,249,45,250,57,250,2,250, +185,249,81,249,197,248,145,248,242,248,43,249,186,248,37,248,243,247,255,247,44,248,142,248,244,248,1,249,167,248,65,248, +42,248,59,248,24,248,224,247,251,247,59,248,22,248,142,247,50,247,90,247,224,247,140,248,107,249,68,250,104,250,201,249, +57,249,243,248,91,248,144,247,121,247,50,248,30,249,244,249,139,250,135,250,5,250,141,249,60,249,239,248,222,248,76,249, +241,249,112,250,185,250,171,250,8,250,58,249,4,249,96,249,158,249,156,249,189,249,23,250,110,250,121,250,16,250,152,249, +154,249,211,249,199,249,200,249,35,250,87,250,51,250,73,250,169,250,194,250,159,250,234,250,214,251,212,252,83,253,82,253, +45,253,42,253,102,253,208,253,26,254,68,254,202,254,141,255,189,255,115,255,153,255,22,0,35,0,249,255,45,0,118,0, +149,0,228,0,88,1,136,1,178,1,48,2,121,2,26,2,189,1,23,2,219,2,138,3,26,4,109,4,85,4,43,4, +72,4,122,4,180,4,65,5,241,5,75,6,109,6,176,6,36,7,208,7,161,8,52,9,100,9,141,9,244,9,143,10, +47,11,152,11,228,11,109,12,24,13,116,13,127,13,92,13,16,13,13,13,189,13,147,14,229,14,5,15,92,15,166,15, +182,15,201,15,226,15,221,15,221,15,12,16,85,16,138,16,186,16,10,17,86,17,65,17,207,16,112,16,97,16,132,16, +199,16,36,17,122,17,179,17,234,17,46,18,85,18,75,18,70,18,108,18,152,18,199,18,38,19,128,19,126,19,75,19, +30,19,207,18,118,18,111,18,145,18,137,18,141,18,192,18,209,18,170,18,106,18,247,17,85,17,227,16,193,16,190,16, +189,16,197,16,218,16,204,16,57,16,49,15,95,14,0,14,155,13,24,13,211,12,174,12,80,12,233,11,174,11,81,11, +180,10,61,10,19,10,212,9,106,9,69,9,85,9,244,8,24,8,98,7,241,6,121,6,38,6,17,6,195,5,47,5, +222,4,196,4,103,4,245,3,211,3,183,3,56,3,158,2,83,2,41,2,190,1,26,1,123,0,226,255,62,255,151,254, +219,253,22,253,164,252,130,252,22,252,45,251,64,250,133,249,227,248,115,248,42,248,192,247,59,247,210,246,110,246,10,246, +224,245,216,245,153,245,42,245,209,244,149,244,79,244,3,244,208,243,166,243,100,243,81,243,185,243,41,244,17,244,183,243, +156,243,167,243,179,243,210,243,185,243,45,243,165,242,153,242,195,242,168,242,46,242,164,241,107,241,109,241,46,241,162,240, +71,240,80,240,137,240,221,240,33,241,234,240,79,240,252,239,20,240,1,240,180,239,196,239,44,240,88,240,87,240,134,240, +150,240,95,240,118,240,232,240,255,240,211,240,41,241,239,241,122,242,157,242,128,242,99,242,154,242,29,243,131,243,193,243, +28,244,158,244,45,245,164,245,185,245,103,245,35,245,64,245,151,245,217,245,233,245,250,245,58,246,122,246,153,246,215,246, +40,247,41,247,23,247,122,247,0,248,15,248,208,247,137,247,50,247,30,247,175,247,70,248,29,248,188,247,22,248,234,248, +107,249,161,249,227,249,30,250,96,250,250,250,167,251,251,251,88,252,42,253,229,253,244,253,171,253,177,253,61,254,32,255, +253,255,144,0,203,0,198,0,212,0,64,1,164,1,131,1,93,1,209,1,111,2,185,2,236,2,18,3,245,2,246,2, +71,3,75,3,210,2,152,2,250,2,145,3,250,3,26,4,253,3,249,3,78,4,164,4,120,4,10,4,16,4,169,4, +71,5,144,5,151,5,111,5,90,5,192,5,103,6,153,6,96,6,90,6,139,6,170,6,233,6,102,7,170,7,148,7, +170,7,250,7,209,7,22,7,168,6,239,6,75,7,88,7,82,7,25,7,107,6,186,5,94,5,232,4,68,4,20,4, +110,4,190,4,202,4,155,4,40,4,173,3,127,3,122,3,78,3,2,3,197,2,202,2,33,3,101,3,23,3,99,2, +246,1,9,2,35,2,215,1,112,1,108,1,188,1,254,1,34,2,80,2,128,2,141,2,78,2,201,1,78,1,246,0, +123,0,244,255,229,255,49,0,43,0,193,255,107,255,67,255,16,255,201,254,152,254,162,254,215,254,226,254,155,254,60,254, +224,253,85,253,165,252,54,252,25,252,238,251,180,251,1,252,235,252,141,253,50,253,66,252,119,251,6,251,186,250,77,250, +203,249,189,249,97,250,45,251,197,251,86,252,158,252,11,252,230,250,246,249,87,249,229,248,240,248,158,249,78,250,59,250, +106,249,168,248,161,248,48,249,188,249,226,249,166,249,70,249,239,248,162,248,141,248,235,248,96,249,101,249,51,249,6,249, +80,248,3,247,76,246,184,246,93,247,177,247,86,248,124,249,42,250,170,249,117,248,128,247,70,247,143,247,190,247,139,247, +93,247,161,247,53,248,229,248,182,249,68,250,240,249,5,249,102,248,67,248,67,248,101,248,209,248,102,249,206,249,182,249, +80,249,99,249,25,250,161,250,156,250,163,250,231,250,240,250,162,250,76,250,21,250,247,249,204,249,115,249,66,249,161,249, +51,250,94,250,71,250,98,250,154,250,170,250,170,250,219,250,46,251,103,251,129,251,143,251,115,251,33,251,246,250,48,251, +131,251,177,251,1,252,163,252,89,253,241,253,95,254,113,254,37,254,251,253,80,254,207,254,54,255,208,255,177,0,92,1, +147,1,122,1,27,1,191,0,4,1,194,1,49,2,76,2,157,2,18,3,86,3,115,3,93,3,6,3,232,2,108,3, +68,4,251,4,98,5,143,5,236,5,171,6,32,7,187,6,27,6,38,6,217,6,178,7,84,8,146,8,141,8,176,8, +50,9,209,9,63,10,141,10,24,11,12,12,18,13,182,13,235,13,2,14,65,14,164,14,239,14,244,14,221,14,1,15, +122,15,6,16,92,16,107,16,97,16,104,16,134,16,159,16,163,16,190,16,60,17,15,18,180,18,194,18,85,18,227,17, +208,17,245,17,192,17,41,17,246,16,143,17,104,18,216,18,183,18,44,18,167,17,174,17,42,18,107,18,34,18,230,17, +114,18,148,19,77,20,34,20,168,19,117,19,115,19,113,19,100,19,50,19,253,18,35,19,130,19,127,19,250,18,95,18, +239,17,162,17,137,17,174,17,212,17,172,17,71,17,243,16,180,16,87,16,230,15,123,15,254,14,118,14,12,14,157,13, +6,13,143,12,89,12,6,12,121,11,250,10,148,10,52,10,250,9,199,9,81,9,219,8,221,8,251,8,138,8,167,7, +219,6,78,6,18,6,59,6,78,6,177,5,197,4,82,4,60,4,3,4,172,3,67,3,156,2,16,2,14,2,16,2, +104,1,128,0,20,0,1,0,168,255,210,254,200,253,4,253,194,252,174,252,48,252,15,251,198,249,252,248,173,248,69,248, +153,247,20,247,233,246,229,246,214,246,113,246,136,245,151,244,68,244,89,244,64,244,248,243,206,243,208,243,219,243,166,243, +8,243,109,242,94,242,165,242,192,242,184,242,185,242,153,242,117,242,195,242,85,243,106,243,241,242,129,242,51,242,195,241, +85,241,28,241,224,240,156,240,155,240,187,240,146,240,38,240,194,239,153,239,195,239,12,240,2,240,185,239,167,239,209,239, +247,239,27,240,56,240,27,240,235,239,248,239,28,240,20,240,11,240,62,240,156,240,217,240,200,240,149,240,151,240,239,240, +129,241,28,242,124,242,146,242,214,242,148,243,69,244,108,244,112,244,193,244,22,245,59,245,123,245,196,245,171,245,111,245, +167,245,21,246,36,246,9,246,58,246,144,246,219,246,60,247,157,247,218,247,41,248,129,248,98,248,204,247,104,247,132,247, +230,247,83,248,161,248,178,248,167,248,206,248,82,249,246,249,74,250,79,250,146,250,64,251,228,251,78,252,176,252,2,253, +66,253,189,253,99,254,192,254,229,254,68,255,226,255,130,0,8,1,76,1,81,1,131,1,23,2,150,2,156,2,104,2, +82,2,104,2,169,2,14,3,88,3,104,3,153,3,29,4,122,4,81,4,254,3,247,3,47,4,127,4,217,4,19,5, +18,5,2,5,12,5,21,5,254,4,220,4,228,4,45,5,131,5,174,5,199,5,4,6,87,6,131,6,106,6,66,6, +108,6,251,6,151,7,2,8,78,8,139,8,149,8,71,8,195,7,112,7,126,7,159,7,144,7,134,7,165,7,175,7, +129,7,40,7,172,6,60,6,19,6,4,6,225,5,216,5,245,5,0,6,236,5,181,5,63,5,178,4,86,4,21,4, +208,3,168,3,156,3,127,3,76,3,17,3,226,2,251,2,79,3,101,3,17,3,170,2,96,2,41,2,18,2,31,2, +36,2,21,2,33,2,100,2,178,2,172,2,19,2,59,1,187,0,156,0,91,0,222,255,147,255,154,255,184,255,251,255, +89,0,56,0,102,255,178,254,170,254,210,254,159,254,33,254,172,253,133,253,132,253,30,253,105,252,47,252,114,252,83,252, +203,251,173,251,16,252,39,252,144,251,234,250,10,251,197,251,250,251,74,251,157,250,147,250,208,250,9,251,37,251,203,250, +253,249,115,249,148,249,9,250,91,250,75,250,220,249,119,249,119,249,147,249,99,249,43,249,105,249,220,249,217,249,99,249, +22,249,26,249,25,249,255,248,231,248,187,248,112,248,54,248,40,248,39,248,244,247,115,247,28,247,149,247,156,248,54,249, +49,249,51,249,82,249,228,248,211,247,254,246,245,246,74,247,136,247,220,247,71,248,105,248,93,248,118,248,93,248,204,247, +100,247,160,247,43,248,191,248,78,249,114,249,6,249,157,248,129,248,96,248,61,248,128,248,15,249,101,249,118,249,141,249, +149,249,88,249,34,249,44,249,14,249,167,248,153,248,41,249,211,249,58,250,61,250,190,249,65,249,125,249,253,249,230,249, +149,249,189,249,13,250,14,250,240,249,205,249,147,249,165,249,87,250,48,251,147,251,169,251,208,251,236,251,227,251,0,252, +66,252,49,252,251,251,92,252,53,253,195,253,253,253,65,254,95,254,61,254,72,254,166,254,10,255,112,255,5,0,154,0, +236,0,40,1,151,1,253,1,221,1,99,1,78,1,211,1,96,2,166,2,209,2,237,2,234,2,255,2,101,3,253,3, +131,4,226,4,32,5,34,5,232,4,240,4,165,5,144,6,13,7,81,7,186,7,32,8,101,8,172,8,221,8,237,8, +57,9,232,9,156,10,23,11,139,11,31,12,165,12,222,12,237,12,22,13,57,13,44,13,57,13,166,13,70,14,226,14, +70,15,48,15,213,14,197,14,1,15,40,15,64,15,91,15,100,15,153,15,19,16,72,16,246,15,178,15,238,15,130,16, +50,17,196,17,217,17,109,17,26,17,97,17,232,17,216,17,25,17,134,16,175,16,47,17,131,17,179,17,225,17,0,18, +7,18,254,17,212,17,131,17,80,17,137,17,234,17,239,17,158,17,86,17,13,17,166,16,96,16,92,16,109,16,151,16, +200,16,143,16,224,15,85,15,44,15,240,14,83,14,169,13,98,13,114,13,125,13,107,13,65,13,198,12,1,12,104,11, +5,11,120,10,237,9,189,9,172,9,155,9,180,9,144,9,193,8,200,7,77,7,49,7,49,7,79,7,108,7,84,7, +255,6,128,6,242,5,78,5,115,4,166,3,95,3,121,3,95,3,4,3,178,2,85,2,178,1,221,0,22,0,142,255, +71,255,34,255,252,254,192,254,96,254,224,253,91,253,214,252,61,252,135,251,216,250,112,250,92,250,85,250,10,250,105,249, +149,248,219,247,126,247,83,247,7,247,174,246,141,246,173,246,220,246,205,246,93,246,228,245,180,245,151,245,104,245,78,245, +62,245,39,245,75,245,160,245,177,245,114,245,31,245,186,244,106,244,108,244,116,244,65,244,41,244,69,244,63,244,31,244, +13,244,208,243,97,243,39,243,50,243,45,243,7,243,1,243,45,243,88,243,68,243,240,242,157,242,147,242,233,242,90,243, +126,243,99,243,134,243,253,243,100,244,128,244,111,244,95,244,133,244,235,244,77,245,126,245,148,245,156,245,181,245,4,246, +80,246,67,246,15,246,41,246,152,246,10,247,88,247,152,247,221,247,10,248,1,248,219,247,187,247,204,247,73,248,15,249, +132,249,105,249,41,249,26,249,62,249,139,249,208,249,221,249,229,249,36,250,101,250,103,250,58,250,24,250,40,250,83,250, +104,250,132,250,222,250,81,251,175,251,32,252,167,252,231,252,187,252,117,252,135,252,2,253,129,253,203,253,72,254,23,255, +153,255,157,255,167,255,208,255,8,0,189,0,192,1,3,2,127,1,99,1,230,1,33,2,241,1,246,1,51,2,71,2, +97,2,187,2,230,2,158,2,126,2,236,2,90,3,88,3,54,3,52,3,61,3,104,3,201,3,28,4,68,4,118,4, +175,4,177,4,120,4,70,4,83,4,152,4,221,4,239,4,180,4,88,4,91,4,234,4,102,5,93,5,77,5,167,5, +14,6,34,6,254,5,212,5,226,5,66,6,135,6,77,6,239,5,211,5,200,5,146,5,94,5,83,5,85,5,59,5, +248,4,127,4,224,3,118,3,149,3,234,3,227,3,156,3,107,3,20,3,122,2,15,2,251,1,245,1,2,2,45,2, +11,2,120,1,251,0,252,0,64,1,82,1,1,1,135,0,48,0,33,0,122,0,34,1,119,1,47,1,248,0,45,1, +13,1,65,0,157,255,157,255,197,255,205,255,235,255,246,255,118,255,140,254,213,253,141,253,117,253,118,253,160,253,190,253, +122,253,214,252,80,252,89,252,175,252,153,252,19,252,224,251,52,252,102,252,56,252,3,252,218,251,143,251,29,251,159,250, +55,250,253,249,200,249,161,249,246,249,176,250,242,250,90,250,160,249,137,249,231,249,235,249,96,249,18,249,95,249,100,249, +189,248,118,248,255,248,84,249,251,248,180,248,194,248,153,248,15,248,147,247,143,247,10,248,152,248,212,248,252,248,108,249, +165,249,243,248,213,247,97,247,114,247,7,247,54,246,16,246,168,246,35,247,84,247,183,247,41,248,43,248,200,247,143,247, +225,247,112,248,136,248,38,248,37,248,185,248,224,248,21,248,81,247,106,247,222,247,5,248,75,248,32,249,202,249,110,249, +119,248,240,247,30,248,120,248,130,248,84,248,116,248,238,248,34,249,241,248,11,249,130,249,152,249,67,249,53,249,117,249, +105,249,252,248,174,248,196,248,244,248,229,248,212,248,45,249,191,249,31,250,118,250,2,251,113,251,92,251,207,250,45,250, +226,249,8,250,84,250,167,250,31,251,131,251,124,251,56,251,3,251,240,250,56,251,15,252,32,253,233,253,48,254,213,253, +26,253,212,252,97,253,4,254,44,254,103,254,67,255,57,0,145,0,108,0,69,0,69,0,104,0,135,0,118,0,123,0, +22,1,29,2,232,2,58,3,58,3,21,3,17,3,92,3,195,3,45,4,212,4,180,5,117,6,210,6,170,6,50,6, +17,6,147,6,61,7,171,7,253,7,88,8,189,8,60,9,195,9,20,10,67,10,186,10,144,11,51,12,43,12,226,11, +2,12,119,12,220,12,70,13,201,13,41,14,130,14,17,15,111,15,61,15,9,15,110,15,13,16,56,16,252,15,244,15, +114,16,55,17,227,17,74,18,71,18,217,17,108,17,106,17,174,17,231,17,27,18,95,18,162,18,217,18,2,19,14,19, +248,18,216,18,205,18,233,18,5,19,218,18,118,18,65,18,92,18,111,18,86,18,124,18,13,19,127,19,91,19,244,18, +188,18,167,18,155,18,147,18,75,18,176,17,59,17,57,17,99,17,121,17,124,17,95,17,17,17,168,16,67,16,230,15, +130,15,48,15,52,15,90,15,241,14,254,13,80,13,15,13,194,12,142,12,169,12,111,12,159,11,8,11,249,10,194,10, +34,10,160,9,117,9,82,9,4,9,133,8,216,7,39,7,177,6,116,6,53,6,223,5,144,5,59,5,190,4,78,4, +28,4,226,3,71,3,110,2,175,1,41,1,181,0,48,0,183,255,121,255,85,255,11,255,158,254,26,254,101,253,165,252, +60,252,36,252,219,251,43,251,112,250,1,250,180,249,67,249,210,248,158,248,116,248,244,247,34,247,83,246,207,245,155,245, +130,245,94,245,59,245,13,245,183,244,96,244,53,244,5,244,170,243,81,243,39,243,51,243,84,243,61,243,237,242,221,242, +29,243,41,243,229,242,168,242,103,242,240,241,150,241,178,241,10,242,31,242,214,241,138,241,119,241,88,241,5,241,241,240, +72,241,131,241,93,241,45,241,20,241,225,240,169,240,153,240,165,240,194,240,7,241,103,241,189,241,252,241,29,242,27,242, +28,242,65,242,103,242,89,242,40,242,33,242,123,242,42,243,205,243,243,243,184,243,183,243,29,244,125,244,170,244,206,244, +232,244,12,245,119,245,229,245,212,245,140,245,201,245,160,246,108,247,148,247,49,247,243,246,69,247,201,247,16,248,59,248, +125,248,206,248,45,249,134,249,151,249,76,249,231,248,173,248,196,248,36,249,153,249,1,250,86,250,148,250,195,250,1,251, +80,251,148,251,186,251,200,251,250,251,134,252,48,253,168,253,23,254,153,254,220,254,221,254,2,255,78,255,132,255,231,255, +173,0,103,1,176,1,193,1,242,1,73,2,178,2,27,3,84,3,70,3,66,3,166,3,32,4,14,4,149,3,129,3, +16,4,168,4,207,4,171,4,160,4,228,4,97,5,207,5,236,5,210,5,215,5,248,5,252,5,28,6,169,6,66,7, +108,7,103,7,111,7,49,7,194,6,172,6,224,6,10,7,92,7,248,7,102,8,99,8,55,8,46,8,112,8,245,8, +107,9,122,9,37,9,184,8,133,8,162,8,216,8,230,8,156,8,237,7,74,7,95,7,225,7,205,7,20,7,156,6, +167,6,177,6,112,6,251,5,138,5,128,5,220,5,249,5,134,5,253,4,172,4,77,4,249,3,42,4,141,4,81,4, +166,3,112,3,157,3,121,3,16,3,222,2,236,2,36,3,126,3,146,3,44,3,207,2,212,2,210,2,132,2,31,2, +181,1,64,1,236,0,183,0,77,0,191,255,167,255,39,0,129,0,30,0,67,255,145,254,92,254,142,254,163,254,50,254, +148,253,77,253,55,253,46,253,124,253,176,253,234,252,171,251,71,251,172,251,207,251,112,251,254,250,200,250,9,251,149,251, +159,251,204,250,226,249,175,249,241,249,4,250,8,250,120,250,12,251,7,251,120,250,243,249,131,249,254,248,172,248,177,248, +162,248,85,248,31,248,56,248,125,248,164,248,132,248,79,248,84,248,85,248,217,247,30,247,239,246,117,247,8,248,14,248, +124,247,171,246,50,246,137,246,73,247,101,247,121,246,79,245,239,244,153,245,144,246,212,246,124,246,198,246,33,248,83,249, +45,249,251,247,218,246,144,246,249,246,73,247,48,247,71,247,206,247,47,248,43,248,23,248,244,247,161,247,109,247,123,247, +99,247,8,247,234,246,103,247,61,248,214,248,210,248,96,248,24,248,96,248,218,248,226,248,133,248,88,248,97,248,63,248, +25,248,24,248,226,247,163,247,35,248,40,249,159,249,120,249,147,249,29,250,151,250,195,250,160,250,62,250,207,249,117,249, +55,249,87,249,23,250,21,251,171,251,218,251,3,252,37,252,9,252,225,251,228,251,231,251,238,251,100,252,68,253,255,253, +72,254,52,254,215,253,130,253,178,253,94,254,248,254,68,255,148,255,36,0,197,0,45,1,52,1,210,0,97,0,149,0, +135,1,75,2,93,2,115,2,6,3,149,3,202,3,224,3,237,3,13,4,153,4,94,5,201,5,221,5,226,5,211,5, +224,5,93,6,6,7,102,7,174,7,70,8,24,9,183,9,226,9,195,9,187,9,242,9,71,10,193,10,101,11,242,11, +66,12,130,12,196,12,214,12,199,12,250,12,135,13,12,14,68,14,91,14,129,14,190,14,19,15,83,15,52,15,245,14, +53,15,236,15,124,16,172,16,167,16,109,16,29,16,22,16,95,16,137,16,111,16,120,16,250,16,172,17,9,18,238,17, +164,17,95,17,49,17,29,17,16,17,10,17,66,17,190,17,32,18,26,18,196,17,115,17,90,17,70,17,245,16,166,16, +185,16,251,16,12,17,236,16,171,16,94,16,80,16,125,16,103,16,217,15,58,15,254,14,74,15,181,15,122,15,137,14, +195,13,155,13,137,13,50,13,192,12,73,12,229,11,233,11,75,12,88,12,155,11,130,10,208,9,177,9,191,9,167,9, +77,9,175,8,39,8,35,8,82,8,248,7,36,7,141,6,87,6,29,6,207,5,145,5,64,5,213,4,145,4,74,4, +125,3,101,2,206,1,195,1,171,1,105,1,39,1,170,0,250,255,138,255,63,255,167,254,9,254,226,253,249,253,214,253, +84,253,125,252,161,251,47,251,13,251,191,250,48,250,172,249,124,249,158,249,149,249,218,248,189,247,35,247,72,247,130,247, +47,247,96,246,167,245,113,245,173,245,227,245,152,245,213,244,99,244,206,244,119,245,137,245,66,245,51,245,40,245,190,244, +46,244,209,243,158,243,122,243,136,243,228,243,59,244,14,244,130,243,69,243,112,243,116,243,38,243,239,242,252,242,21,243, +20,243,232,242,155,242,111,242,153,242,226,242,227,242,158,242,116,242,151,242,239,242,80,243,128,243,96,243,66,243,144,243, +19,244,56,244,235,243,162,243,206,243,101,244,227,244,239,244,189,244,169,244,205,244,69,245,244,245,57,246,209,245,118,245, +204,245,136,246,252,246,227,246,151,246,177,246,59,247,160,247,163,247,168,247,247,247,121,248,237,248,253,248,177,248,153,248, +246,248,91,249,115,249,95,249,68,249,75,249,156,249,252,249,14,250,241,249,27,250,161,250,41,251,95,251,81,251,88,251, +165,251,20,252,102,252,114,252,67,252,57,252,206,252,240,253,215,254,252,254,223,254,66,255,8,0,150,0,198,0,193,0, +172,0,222,0,118,1,227,1,207,1,218,1,105,2,252,2,63,3,103,3,126,3,109,3,111,3,163,3,179,3,135,3, +145,3,8,4,128,4,165,4,169,4,188,4,214,4,35,5,182,5,13,6,215,5,163,5,248,5,129,6,182,6,103,6, +208,5,126,5,169,5,207,5,174,5,197,5,65,6,170,6,212,6,227,6,192,6,149,6,218,6,112,7,178,7,130,7, +69,7,45,7,34,7,8,7,207,6,132,6,74,6,55,6,48,6,32,6,29,6,46,6,15,6,149,5,10,5,187,4, +141,4,88,4,49,4,30,4,8,4,240,3,218,3,171,3,83,3,236,2,151,2,107,2,118,2,153,2,125,2,18,2, +188,1,151,1,54,1,166,0,157,0,37,1,102,1,24,1,194,0,178,0,204,0,209,0,105,0,179,255,97,255,159,255, +210,255,171,255,69,255,160,254,23,254,65,254,188,254,112,254,74,253,86,252,58,252,142,252,153,252,53,252,223,251,248,251, +60,252,54,252,233,251,156,251,92,251,18,251,213,250,179,250,115,250,29,250,39,250,134,250,135,250,9,250,155,249,91,249, +28,249,3,249,234,248,105,248,20,248,200,248,191,249,164,249,240,248,231,248,85,249,89,249,27,249,255,248,171,248,15,248, +185,247,161,247,68,247,239,246,67,247,230,247,49,248,42,248,237,247,123,247,65,247,138,247,195,247,120,247,25,247,35,247, +143,247,56,248,213,248,241,248,118,248,216,247,103,247,252,246,125,246,62,246,145,246,86,247,60,248,2,249,95,249,89,249, +127,249,225,249,173,249,205,248,70,248,109,248,163,248,209,248,52,249,101,249,53,249,50,249,99,249,47,249,181,248,168,248, +22,249,142,249,238,249,52,250,45,250,233,249,209,249,14,250,93,250,145,250,213,250,65,251,156,251,148,251,19,251,114,250, +59,250,151,250,52,251,167,251,193,251,180,251,230,251,76,252,89,252,244,251,177,251,211,251,25,252,131,252,66,253,21,254, +111,254,41,254,151,253,32,253,202,252,113,252,95,252,3,253,24,254,222,254,27,255,34,255,45,255,58,255,83,255,152,255, +19,0,184,0,138,1,118,2,24,3,51,3,23,3,3,3,198,2,105,2,58,2,63,2,163,2,205,3,41,5,129,5, +16,5,44,5,225,5,8,6,123,5,68,5,224,5,205,6,149,7,47,8,112,8,21,8,131,7,130,7,31,8,158,8, +169,8,177,8,26,9,182,9,21,10,6,10,214,9,10,10,194,10,144,11,2,12,49,12,151,12,90,13,12,14,67,14, +13,14,198,13,188,13,240,13,37,14,66,14,104,14,169,14,255,14,78,15,75,15,4,15,26,15,207,15,144,16,250,16, +76,17,152,17,185,17,200,17,186,17,95,17,233,16,194,16,247,16,93,17,172,17,135,17,16,17,225,16,40,17,126,17, +147,17,105,17,38,17,23,17,109,17,240,17,63,18,51,18,226,17,134,17,54,17,210,16,95,16,44,16,103,16,201,16, +228,16,176,16,122,16,88,16,19,16,168,15,81,15,20,15,206,14,167,14,209,14,30,15,38,15,193,14,72,14,31,14, +2,14,93,13,102,12,231,11,231,11,196,11,81,11,201,10,20,10,33,9,105,8,59,8,53,8,253,7,214,7,238,7, +232,7,147,7,33,7,135,6,200,5,99,5,100,5,11,5,62,4,170,3,64,3,125,2,194,1,137,1,85,1,193,0, +67,0,65,0,128,0,166,0,152,0,107,0,37,0,140,255,124,254,77,253,133,252,88,252,126,252,130,252,59,252,214,251, +83,251,135,250,156,249,207,248,19,248,145,247,177,247,53,248,85,248,207,247,11,247,110,246,7,246,144,245,207,244,28,244, +16,244,141,244,199,244,118,244,10,244,180,243,47,243,146,242,57,242,2,242,180,241,177,241,77,242,25,243,130,243,84,243, +180,242,54,242,93,242,182,242,139,242,40,242,21,242,5,242,167,241,65,241,240,240,145,240,80,240,101,240,162,240,184,240, +167,240,169,240,223,240,29,241,55,241,63,241,82,241,115,241,156,241,165,241,98,241,255,240,208,240,227,240,43,241,130,241, +149,241,116,241,181,241,100,242,221,242,223,242,178,242,140,242,149,242,3,243,164,243,255,243,0,244,29,244,164,244,56,245, +70,245,4,245,36,245,158,245,219,245,215,245,9,246,126,246,229,246,36,247,74,247,92,247,121,247,213,247,105,248,218,248, +239,248,239,248,54,249,187,249,36,250,41,250,222,249,183,249,226,249,243,249,178,249,146,249,230,249,127,250,30,251,146,251, +201,251,28,252,189,252,60,253,87,253,127,253,239,253,90,254,167,254,7,255,119,255,201,255,244,255,62,0,211,0,73,1, +56,1,27,1,130,1,21,2,126,2,22,3,247,3,154,4,174,4,95,4,23,4,66,4,188,4,224,4,169,4,197,4, +81,5,188,5,203,5,196,5,192,5,180,5,195,5,13,6,96,6,138,6,194,6,56,7,160,7,163,7,96,7,23,7, +235,6,241,6,27,7,82,7,180,7,31,8,11,8,109,7,248,6,30,7,143,7,210,7,213,7,246,7,113,8,225,8, +213,8,139,8,109,8,104,8,82,8,50,8,8,8,216,7,204,7,220,7,176,7,17,7,73,6,219,5,200,5,148,5, +34,5,205,4,190,4,241,4,77,5,70,5,143,4,238,3,241,3,236,3,127,3,78,3,113,3,91,3,23,3,233,2, +149,2,14,2,181,1,143,1,104,1,111,1,182,1,221,1,187,1,162,1,157,1,54,1,120,0,59,0,171,0,221,0, +122,0,69,0,91,0,225,255,182,254,190,253,148,253,5,254,132,254,151,254,59,254,243,253,6,254,16,254,135,253,117,252, +137,251,100,251,238,251,120,252,124,252,48,252,14,252,226,251,34,251,68,250,60,250,178,250,146,250,246,249,151,249,105,249, +47,249,10,249,224,248,178,248,17,249,253,249,143,250,77,250,159,249,6,249,187,248,154,248,55,248,134,247,7,247,24,247, +165,247,77,248,132,248,25,248,170,247,224,247,121,248,151,248,241,247,65,247,50,247,111,247,90,247,13,247,216,246,200,246, +13,247,149,247,182,247,80,247,31,247,65,247,12,247,142,246,124,246,250,246,160,247,24,248,51,248,252,247,225,247,29,248, +77,248,1,248,129,247,116,247,235,247,88,248,111,248,118,248,207,248,115,249,190,249,16,249,230,247,111,247,223,247,119,248, +215,248,24,249,70,249,150,249,34,250,107,250,22,250,140,249,62,249,50,249,121,249,28,250,174,250,182,250,124,250,177,250, +59,251,35,251,60,250,151,249,191,249,31,250,121,250,251,250,81,251,83,251,139,251,22,252,114,252,151,252,185,252,182,252, +159,252,169,252,142,252,47,252,21,252,118,252,220,252,24,253,122,253,16,254,132,254,195,254,28,255,164,255,7,0,57,0, +151,0,51,1,186,1,254,1,10,2,246,1,253,1,39,2,47,2,39,2,123,2,40,3,178,3,233,3,5,4,64,4, +138,4,167,4,169,4,240,4,160,5,124,6,57,7,158,7,172,7,179,7,200,7,167,7,111,7,125,7,189,7,10,8, +159,8,104,9,230,9,244,9,229,9,8,10,118,10,245,10,79,11,192,11,138,12,95,13,206,13,209,13,172,13,180,13, +250,13,46,14,54,14,99,14,184,14,247,14,49,15,106,15,98,15,60,15,86,15,169,15,30,16,193,16,74,17,106,17, +96,17,120,17,144,17,132,17,98,17,50,17,12,17,20,17,73,17,130,17,149,17,124,17,110,17,153,17,206,17,192,17, +114,17,59,17,115,17,12,18,142,18,179,18,170,18,170,18,187,18,194,18,116,18,187,17,17,17,230,16,5,17,10,17, +214,16,149,16,147,16,212,16,235,16,149,16,9,16,131,15,38,15,9,15,16,15,27,15,46,15,17,15,128,14,186,13, +24,13,144,12,40,12,240,11,156,11,23,11,187,10,129,10,23,10,146,9,26,9,163,8,112,8,182,8,235,8,143,8, +236,7,92,7,200,6,38,6,171,5,93,5,16,5,198,4,168,4,124,4,190,3,140,2,171,1,108,1,128,1,158,1, +141,1,48,1,223,0,220,0,172,0,245,255,33,255,124,254,202,253,32,253,222,252,216,252,124,252,175,251,244,250,161,250, +123,250,44,250,174,249,30,249,165,248,104,248,68,248,249,247,148,247,52,247,200,246,97,246,52,246,34,246,10,246,18,246, +27,246,197,245,42,245,172,244,93,244,12,244,151,243,25,243,8,243,140,243,26,244,75,244,77,244,53,244,234,243,169,243, +159,243,135,243,60,243,3,243,16,243,57,243,24,243,148,242,40,242,38,242,45,242,232,241,160,241,149,241,182,241,245,241, +50,242,69,242,74,242,97,242,83,242,8,242,197,241,187,241,244,241,117,242,250,242,24,243,196,242,101,242,81,242,135,242, +224,242,69,243,184,243,60,244,189,244,251,244,212,244,159,244,177,244,208,244,215,244,58,245,16,246,168,246,191,246,220,246, +26,247,21,247,202,246,144,246,139,246,177,246,0,247,126,247,21,248,133,248,175,248,202,248,253,248,28,249,30,249,59,249, +120,249,186,249,1,250,87,250,183,250,245,250,201,250,93,250,84,250,200,250,41,251,73,251,129,251,235,251,93,252,196,252, +24,253,102,253,194,253,254,253,1,254,36,254,142,254,242,254,59,255,162,255,15,0,56,0,56,0,98,0,200,0,36,1, +68,1,89,1,178,1,71,2,208,2,44,3,98,3,113,3,97,3,81,3,85,3,89,3,83,3,137,3,66,4,40,5, +146,5,101,5,14,5,191,4,100,4,29,4,48,4,187,4,164,5,179,6,161,7,13,8,183,7,223,6,38,6,236,5, +33,6,139,6,225,6,17,7,94,7,189,7,174,7,39,7,176,6,132,6,144,6,225,6,81,7,162,7,249,7,97,8, +89,8,189,7,38,7,248,6,254,6,255,6,245,6,213,6,143,6,29,6,135,5,236,4,127,4,121,4,224,4,82,5, +106,5,69,5,39,5,240,4,105,4,182,3,21,3,172,2,152,2,220,2,63,3,108,3,45,3,160,2,24,2,159,1, +17,1,178,0,5,1,213,1,56,2,189,1,245,0,135,0,105,0,60,0,238,255,161,255,113,255,122,255,172,255,188,255, +117,255,217,254,4,254,76,253,11,253,2,253,183,252,93,252,126,252,239,252,18,253,202,252,114,252,50,252,202,251,24,251, +119,250,100,250,217,250,88,251,99,251,211,250,7,250,155,249,159,249,162,249,115,249,77,249,88,249,158,249,248,249,4,250, +185,249,137,249,126,249,34,249,139,248,59,248,50,248,65,248,135,248,197,248,88,248,101,247,235,246,79,247,238,247,37,248, +233,247,127,247,67,247,103,247,147,247,55,247,117,246,15,246,69,246,153,246,179,246,188,246,224,246,40,247,140,247,205,247, +147,247,239,246,63,246,198,245,185,245,66,246,7,247,100,247,96,247,133,247,186,247,121,247,17,247,54,247,181,247,255,247, +54,248,124,248,98,248,242,247,212,247,36,248,121,248,202,248,52,249,104,249,18,249,79,248,138,247,63,247,150,247,44,248, +182,248,104,249,37,250,48,250,95,249,151,248,115,248,138,248,158,248,44,249,57,250,248,250,30,251,32,251,243,250,42,250, +76,249,72,249,245,249,134,250,225,250,83,251,217,251,88,252,151,252,58,252,137,251,107,251,250,251,113,252,182,252,76,253, +242,253,233,253,67,253,169,252,91,252,78,252,153,252,66,253,24,254,187,254,199,254,81,254,5,254,68,254,172,254,8,255, +178,255,144,0,231,0,165,0,123,0,148,0,124,0,86,0,183,0,134,1,41,2,142,2,249,2,66,3,47,3,248,2, +205,2,169,2,209,2,134,3,105,4,26,5,212,5,157,6,242,6,185,6,104,6,30,6,212,5,3,6,233,6,208,7, +8,8,213,7,221,7,86,8,228,8,0,9,179,8,200,8,162,9,137,10,224,10,25,11,182,11,100,12,175,12,171,12, +146,12,127,12,148,12,234,12,87,13,164,13,213,13,19,14,97,14,162,14,207,14,248,14,30,15,66,15,118,15,175,15, +214,15,0,16,81,16,201,16,71,17,136,17,68,17,183,16,128,16,177,16,202,16,182,16,233,16,129,17,8,18,33,18, +227,17,154,17,96,17,37,17,13,17,103,17,3,18,74,18,26,18,209,17,154,17,103,17,81,17,77,17,17,17,185,16, +186,16,245,16,220,16,113,16,23,16,198,15,96,15,56,15,115,15,171,15,177,15,203,15,247,15,214,15,78,15,153,14, +239,13,112,13,26,13,212,12,174,12,212,12,5,13,178,12,203,11,227,10,85,10,249,9,195,9,217,9,236,9,139,9, +16,9,247,8,205,8,25,8,87,7,12,7,2,7,239,6,160,6,203,5,189,4,72,4,86,4,7,4,78,3,202,2, +132,2,58,2,11,2,242,1,134,1,200,0,66,0,32,0,248,255,122,255,195,254,17,254,158,253,120,253,69,253,167,252, +238,251,160,251,137,251,38,251,148,250,34,250,180,249,62,249,246,248,187,248,54,248,166,247,115,247,93,247,241,246,105,246, +51,246,34,246,200,245,43,245,147,244,38,244,233,243,189,243,112,243,34,243,52,243,160,243,2,244,40,244,13,244,175,243, +72,243,21,243,253,242,240,242,22,243,92,243,129,243,140,243,119,243,8,243,92,242,230,241,211,241,244,241,18,242,17,242, +0,242,5,242,29,242,48,242,65,242,53,242,244,241,183,241,196,241,10,242,72,242,107,242,160,242,14,243,116,243,98,243, +240,242,158,242,148,242,183,242,7,243,109,243,193,243,32,244,150,244,208,244,188,244,200,244,30,245,113,245,149,245,155,245, +154,245,177,245,13,246,141,246,204,246,179,246,160,246,200,246,249,246,16,247,63,247,186,247,127,248,53,249,92,249,8,249, +230,248,49,249,111,249,129,249,191,249,36,250,96,250,121,250,149,250,162,250,152,250,158,250,211,250,26,251,67,251,102,251, +181,251,253,251,6,252,33,252,153,252,29,253,117,253,226,253,114,254,224,254,42,255,117,255,189,255,231,255,238,255,12,0, +123,0,251,0,54,1,118,1,22,2,170,2,199,2,188,2,212,2,5,3,98,3,228,3,44,4,48,4,99,4,229,4, +67,5,50,5,253,4,4,5,43,5,28,5,244,4,36,5,185,5,82,6,170,6,212,6,239,6,244,6,229,6,243,6, +44,7,77,7,87,7,155,7,231,7,160,7,241,6,155,6,195,6,3,7,61,7,126,7,144,7,83,7,28,7,71,7, +164,7,206,7,222,7,46,8,136,8,119,8,249,7,98,7,8,7,43,7,122,7,87,7,224,6,177,6,180,6,120,6, +20,6,199,5,138,5,82,5,11,5,158,4,83,4,107,4,163,4,172,4,141,4,67,4,223,3,147,3,77,3,232,2, +166,2,205,2,38,3,96,3,96,3,4,3,52,2,39,1,109,0,96,0,174,0,187,0,121,0,82,0,140,0,22,1, +135,1,78,1,125,0,199,255,93,255,221,254,86,254,40,254,51,254,38,254,254,253,189,253,83,253,234,252,175,252,133,252, +93,252,123,252,238,252,69,253,60,253,5,253,141,252,161,251,239,250,56,251,199,251,149,251,8,251,223,250,228,250,167,250, +11,250,42,249,195,248,153,249,232,250,80,251,248,250,189,250,119,250,199,249,27,249,172,248,22,248,165,247,96,248,13,250, +227,250,39,250,46,249,236,248,172,248,243,247,82,247,28,247,67,247,190,247,15,248,205,247,193,247,148,248,121,249,213,249, +38,250,90,250,172,249,104,248,154,247,95,247,48,247,21,247,82,247,199,247,77,248,234,248,94,249,94,249,54,249,48,249, +242,248,116,248,105,248,214,248,251,248,242,248,88,249,205,249,195,249,169,249,190,249,120,249,215,248,167,248,22,249,133,249, +158,249,154,249,169,249,176,249,149,249,120,249,132,249,221,249,91,250,105,250,232,249,195,249,121,250,21,251,249,250,229,250, +29,251,244,250,133,250,149,250,26,251,122,251,105,251,244,250,141,250,182,250,53,251,129,251,174,251,245,251,24,252,12,252, +54,252,189,252,60,253,63,253,207,252,92,252,40,252,34,252,56,252,83,252,93,252,166,252,113,253,37,254,36,254,215,253, +227,253,54,254,132,254,202,254,45,255,205,255,144,0,12,1,26,1,1,1,244,0,242,0,5,1,37,1,34,1,253,0, +18,1,164,1,97,2,192,2,207,2,250,2,66,3,134,3,251,3,132,4,154,4,87,4,87,4,178,4,16,5,69,5, +87,5,142,5,42,6,204,6,231,6,166,6,145,6,222,6,112,7,246,7,53,8,108,8,225,8,115,9,13,10,178,10, +25,11,50,11,108,11,228,11,61,12,83,12,59,12,22,12,38,12,97,12,100,12,61,12,101,12,233,12,133,13,25,14, +131,14,171,14,187,14,214,14,1,15,67,15,133,15,174,15,219,15,18,16,41,16,24,16,239,15,169,15,119,15,134,15, +146,15,130,15,199,15,122,16,250,16,237,16,187,16,213,16,4,17,233,16,171,16,164,16,199,16,255,16,104,17,185,17, +125,17,253,16,200,16,189,16,155,16,109,16,35,16,201,15,202,15,38,16,77,16,254,15,133,15,82,15,149,15,231,15, +160,15,216,14,52,14,243,13,209,13,126,13,221,12,51,12,210,11,151,11,83,11,39,11,243,10,113,10,243,9,219,9, +239,9,232,9,182,9,68,9,189,8,111,8,46,8,180,7,52,7,207,6,78,6,174,5,29,5,166,4,76,4,5,4, +184,3,99,3,8,3,164,2,94,2,65,2,253,1,121,1,247,0,131,0,9,0,189,255,171,255,110,255,191,254,209,253, +14,253,149,252,37,252,155,251,40,251,212,250,107,250,249,249,144,249,1,249,88,248,233,247,161,247,67,247,238,246,187,246, +145,246,103,246,32,246,133,245,171,244,230,243,127,243,147,243,192,243,121,243,3,243,23,243,148,243,191,243,94,243,195,242, +106,242,144,242,236,242,39,243,94,243,135,243,78,243,219,242,134,242,32,242,143,241,56,241,59,241,71,241,35,241,209,240, +162,240,242,240,105,241,88,241,220,240,150,240,169,240,221,240,24,241,74,241,83,241,21,241,166,240,114,240,187,240,6,241, +232,240,209,240,61,241,217,241,29,242,8,242,252,241,53,242,148,242,246,242,103,243,203,243,239,243,16,244,119,244,234,244, +32,245,33,245,18,245,57,245,181,245,15,246,237,245,222,245,91,246,235,246,11,247,246,246,24,247,111,247,180,247,218,247, +22,248,92,248,120,248,172,248,64,249,179,249,161,249,139,249,203,249,14,250,23,250,231,249,142,249,108,249,190,249,56,250, +184,250,95,251,217,251,246,251,80,252,33,253,172,253,139,253,87,253,163,253,75,254,223,254,54,255,133,255,245,255,120,0, +222,0,213,0,93,0,47,0,200,0,153,1,21,2,120,2,227,2,49,3,154,3,46,4,106,4,51,4,20,4,52,4, +58,4,16,4,239,3,248,3,53,4,163,4,27,5,104,5,128,5,149,5,200,5,252,5,33,6,52,6,44,6,81,6, +237,6,132,7,136,7,118,7,203,7,13,8,2,8,30,8,46,8,165,7,5,7,17,7,123,7,149,7,99,7,73,7, +114,7,206,7,70,8,171,8,187,8,137,8,132,8,182,8,167,8,63,8,195,7,83,7,34,7,86,7,93,7,206,6, +70,6,53,6,27,6,189,5,93,5,248,4,187,4,24,5,160,5,117,5,239,4,240,4,67,5,22,5,86,4,134,3, +245,2,203,2,51,3,225,3,5,4,96,3,184,2,157,2,168,2,117,2,44,2,246,1,229,1,13,2,48,2,1,2, +170,1,109,1,44,1,192,0,59,0,194,255,130,255,135,255,147,255,95,255,230,254,83,254,224,253,175,253,175,253,164,253, +62,253,152,252,111,252,28,253,185,253,113,253,181,252,53,252,248,251,4,252,101,252,159,252,66,252,136,251,238,250,189,250, +203,250,154,250,59,250,112,250,41,251,76,251,139,250,233,249,28,250,159,250,132,250,167,249,241,248,64,249,60,250,213,250, +127,250,139,249,170,248,85,248,95,248,79,248,35,248,49,248,141,248,237,248,237,248,117,248,252,247,235,247,8,248,237,247, +162,247,125,247,212,247,152,248,254,248,96,248,88,247,15,247,168,247,78,248,108,248,36,248,217,247,215,247,39,248,119,248, +111,248,54,248,63,248,140,248,194,248,252,248,133,249,28,250,73,250,250,249,72,249,112,248,3,248,71,248,214,248,81,249, +170,249,212,249,186,249,99,249,209,248,61,248,19,248,107,248,16,249,235,249,211,250,88,251,72,251,220,250,83,250,188,249, +53,249,25,249,162,249,98,250,191,250,224,250,45,251,79,251,241,250,163,250,226,250,70,251,106,251,121,251,154,251,190,251, +197,251,157,251,126,251,205,251,113,252,253,252,89,253,157,253,160,253,77,253,217,252,124,252,124,252,35,253,58,254,242,254, +228,254,147,254,146,254,203,254,235,254,251,254,50,255,167,255,93,0,56,1,243,1,82,2,56,2,171,1,0,1,182,0, +248,0,133,1,33,2,194,2,80,3,138,3,78,3,0,3,50,3,224,3,130,4,240,4,89,5,179,5,251,5,73,6, +98,6,22,6,229,5,65,6,201,6,25,7,118,7,17,8,160,8,222,8,224,8,233,8,35,9,116,9,188,9,33,10, +189,10,112,11,27,12,151,12,150,12,49,12,9,12,96,12,219,12,68,13,187,13,44,14,68,14,244,13,137,13,98,13, +154,13,253,13,86,14,167,14,235,14,14,15,61,15,194,15,116,16,215,16,208,16,183,16,188,16,180,16,131,16,86,16, +80,16,64,16,255,15,210,15,16,16,159,16,48,17,159,17,202,17,145,17,57,17,56,17,131,17,186,17,195,17,184,17, +170,17,158,17,107,17,198,16,246,15,182,15,21,16,101,16,121,16,174,16,230,16,171,16,12,16,110,15,241,14,146,14, +97,14,80,14,65,14,45,14,17,14,219,13,145,13,59,13,189,12,18,12,124,11,51,11,32,11,36,11,62,11,48,11, +142,10,124,9,165,8,69,8,20,8,16,8,77,8,98,8,12,8,170,7,112,7,5,7,81,6,139,5,192,4,11,4, +181,3,154,3,84,3,243,2,179,2,126,2,64,2,3,2,184,1,97,1,30,1,199,0,44,0,161,255,94,255,255,254, +64,254,125,253,13,253,199,252,105,252,4,252,194,251,130,251,249,250,53,250,164,249,106,249,52,249,223,248,172,248,153,248, +66,248,142,247,220,246,103,246,10,246,163,245,53,245,215,244,195,244,22,245,96,245,22,245,113,244,16,244,250,243,189,243, +84,243,41,243,93,243,173,243,230,243,6,244,249,243,190,243,130,243,69,243,224,242,158,242,222,242,50,243,18,243,205,242, +161,242,48,242,155,241,112,241,123,241,107,241,201,241,183,242,75,243,25,243,168,242,64,242,197,241,100,241,82,241,142,241, +21,242,183,242,8,243,236,242,182,242,154,242,133,242,118,242,166,242,60,243,0,244,166,244,42,245,139,245,154,245,96,245, +45,245,38,245,58,245,115,245,223,245,110,246,7,247,136,247,199,247,192,247,158,247,128,247,97,247,72,247,114,247,3,248, +190,248,85,249,183,249,189,249,81,249,248,248,62,249,210,249,33,250,63,250,119,250,192,250,251,250,32,251,39,251,26,251, +14,251,33,251,114,251,242,251,106,252,223,252,84,253,138,253,147,253,227,253,108,254,182,254,216,254,53,255,192,255,39,0, +83,0,102,0,145,0,215,0,12,1,37,1,70,1,133,1,243,1,119,2,179,2,167,2,223,2,130,3,20,4,88,4, +104,4,78,4,51,4,88,4,149,4,163,4,148,4,140,4,158,4,218,4,39,5,86,5,129,5,206,5,20,6,28,6, +245,5,220,5,252,5,73,6,148,6,193,6,214,6,240,6,42,7,91,7,69,7,39,7,75,7,91,7,6,7,183,6, +205,6,242,6,204,6,127,6,106,6,173,6,5,7,24,7,242,6,216,6,226,6,6,7,41,7,14,7,190,6,140,6, +102,6,4,6,129,5,40,5,252,4,213,4,133,4,24,4,245,3,36,4,38,4,227,3,175,3,129,3,68,3,72,3, +139,3,168,3,159,3,140,3,76,3,238,2,150,2,24,2,139,1,108,1,165,1,161,1,67,1,209,0,121,0,99,0, +146,0,170,0,81,0,176,255,73,255,79,255,121,255,96,255,240,254,118,254,86,254,149,254,159,254,11,254,76,253,243,252, +238,252,14,253,29,253,159,252,174,251,77,251,195,251,10,252,123,251,168,250,122,250,58,251,38,252,11,252,214,250,178,249, +100,249,167,249,252,249,10,250,171,249,37,249,255,248,80,249,131,249,11,249,83,248,75,248,226,248,54,249,60,249,121,249, +169,249,79,249,180,248,55,248,225,247,216,247,15,248,10,248,153,247,16,247,187,246,188,246,30,247,151,247,190,247,146,247, +115,247,120,247,58,247,154,246,62,246,158,246,34,247,40,247,16,247,118,247,64,248,203,248,136,248,172,247,46,247,108,247, +170,247,129,247,105,247,150,247,184,247,189,247,207,247,246,247,13,248,233,247,159,247,162,247,45,248,240,248,114,249,100,249, +237,248,165,248,186,248,162,248,29,248,162,247,138,247,206,247,77,248,179,248,212,248,253,248,76,249,108,249,101,249,126,249, +120,249,33,249,1,249,125,249,27,250,63,250,3,250,218,249,214,249,194,249,145,249,75,249,6,249,43,249,234,249,170,250, +248,250,53,251,126,251,107,251,51,251,59,251,45,251,251,250,78,251,12,252,96,252,70,252,62,252,43,252,228,251,194,251, +241,251,68,252,192,252,107,253,225,253,216,253,181,253,241,253,97,254,186,254,59,255,7,0,174,0,250,0,30,1,16,1, +205,0,181,0,201,0,154,0,108,0,233,0,232,1,184,2,14,3,17,3,9,3,34,3,62,3,89,3,177,3,72,4, +233,4,139,5,254,5,222,5,86,5,0,5,0,5,40,5,138,5,56,6,255,6,172,7,62,8,177,8,216,8,190,8, +223,8,119,9,16,10,87,10,161,10,11,11,79,11,141,11,7,12,120,12,180,12,235,12,5,13,218,12,216,12,77,13, +188,13,184,13,148,13,182,13,14,14,102,14,181,14,248,14,53,15,150,15,28,16,106,16,98,16,111,16,195,16,18,17, +45,17,12,17,174,16,118,16,175,16,201,16,85,16,251,15,56,16,153,16,240,16,120,17,219,17,198,17,169,17,213,17, +0,18,3,18,243,17,200,17,144,17,123,17,119,17,83,17,28,17,16,17,59,17,84,17,33,17,200,16,133,16,55,16, +185,15,79,15,58,15,76,15,66,15,34,15,22,15,9,15,189,14,53,14,182,13,87,13,247,12,144,12,62,12,250,11, +174,11,88,11,1,11,151,10,250,9,91,9,54,9,134,9,165,9,102,9,55,9,14,9,128,8,188,7,45,7,187,6, +64,6,233,5,191,5,130,5,24,5,157,4,38,4,174,3,42,3,198,2,170,2,175,2,166,2,153,2,100,2,221,1, +87,1,11,1,132,0,140,255,212,254,186,254,176,254,81,254,223,253,121,253,230,252,29,252,92,251,205,250,134,250,140,250, +149,250,58,250,140,249,254,248,165,248,49,248,168,247,91,247,74,247,46,247,246,246,181,246,107,246,15,246,180,245,113,245, +69,245,23,245,236,244,232,244,2,245,252,244,198,244,165,244,200,244,253,244,236,244,164,244,133,244,165,244,180,244,126,244, +20,244,147,243,61,243,85,243,148,243,109,243,236,242,156,242,178,242,235,242,249,242,203,242,159,242,211,242,113,243,248,243, +227,243,67,243,161,242,92,242,106,242,159,242,212,242,234,242,18,243,137,243,243,243,190,243,62,243,71,243,226,243,136,244, +41,245,238,245,145,246,190,246,145,246,88,246,53,246,43,246,49,246,94,246,220,246,141,247,15,248,62,248,81,248,69,248, +244,247,160,247,165,247,218,247,14,248,143,248,126,249,72,250,89,250,220,249,111,249,108,249,170,249,231,249,42,250,138,250, +232,250,42,251,67,251,6,251,152,250,151,250,54,251,231,251,69,252,116,252,177,252,45,253,213,253,44,254,14,254,43,254, +225,254,139,255,174,255,171,255,230,255,69,0,152,0,195,0,178,0,148,0,194,0,86,1,8,2,125,2,164,2,196,2, +35,3,164,3,244,3,12,4,35,4,67,4,83,4,91,4,92,4,61,4,30,4,61,4,121,4,134,4,101,4,62,4, +63,4,169,4,111,5,17,6,59,6,21,6,226,5,192,5,175,5,166,5,210,5,108,6,52,7,175,7,185,7,86,7, +171,6,77,6,126,6,149,6,72,6,72,6,201,6,19,7,233,6,207,6,233,6,239,6,219,6,200,6,172,6,142,6, +177,6,32,7,103,7,26,7,102,6,182,5,25,5,145,4,73,4,58,4,44,4,43,4,76,4,80,4,10,4,187,3, +187,3,250,3,23,4,217,3,101,3,252,2,175,2,127,2,96,2,53,2,241,1,171,1,137,1,152,1,167,1,104,1, +242,0,163,0,136,0,136,0,190,0,244,0,174,0,30,0,218,255,222,255,209,255,163,255,66,255,193,254,155,254,232,254, +246,254,91,254,133,253,247,252,198,252,173,252,102,252,3,252,223,251,21,252,50,252,195,251,0,251,154,250,200,250,14,251, +46,251,83,251,122,251,131,251,85,251,164,250,142,249,8,249,68,249,38,249,134,248,167,248,182,249,133,250,175,250,148,250, +46,250,145,249,81,249,106,249,61,249,201,248,166,248,237,248,40,249,45,249,48,249,48,249,8,249,207,248,155,248,90,248, +39,248,35,248,19,248,191,247,83,247,251,246,211,246,8,247,153,247,62,248,169,248,132,248,213,247,80,247,101,247,150,247, +143,247,170,247,234,247,247,247,238,247,246,247,194,247,91,247,84,247,237,247,170,248,233,248,154,248,60,248,29,248,24,248, +35,248,83,248,136,248,186,248,2,249,47,249,36,249,30,249,233,248,38,248,80,247,9,247,36,247,134,247,113,248,131,249, +15,250,22,250,203,249,45,249,132,248,39,248,1,248,35,248,203,248,156,249,233,249,180,249,112,249,56,249,1,249,2,249, +69,249,122,249,143,249,192,249,220,249,156,249,101,249,166,249,42,250,181,250,40,251,44,251,5,251,142,251,110,252,112,252, +199,251,123,251,121,251,96,251,143,251,23,252,153,252,43,253,201,253,242,253,191,253,237,253,183,254,175,255,115,0,202,0, +166,0,71,0,20,0,42,0,57,0,24,0,48,0,182,0,43,1,89,1,160,1,243,1,4,2,51,2,217,2,127,3, +192,3,214,3,0,4,61,4,114,4,123,4,133,4,234,4,135,5,252,5,93,6,218,6,89,7,181,7,223,7,219,7, +237,7,70,8,189,8,56,9,226,9,181,10,97,11,191,11,16,12,130,12,212,12,220,12,16,13,171,13,21,14,252,13, +209,13,178,13,126,13,161,13,42,14,93,14,53,14,116,14,29,15,169,15,36,16,178,16,41,17,136,17,214,17,232,17, +190,17,132,17,70,17,47,17,115,17,206,17,198,17,98,17,55,17,184,17,144,18,5,19,232,18,163,18,153,18,249,18, +136,19,155,19,47,19,36,19,173,19,1,20,206,19,90,19,200,18,113,18,166,18,216,18,132,18,58,18,102,18,142,18, +84,18,209,17,17,17,93,16,61,16,153,16,189,16,83,16,193,15,136,15,183,15,233,15,189,15,33,15,92,14,199,13, +87,13,202,12,69,12,243,11,144,11,37,11,47,11,115,11,52,11,164,10,122,10,164,10,163,10,88,10,211,9,60,9, +200,8,105,8,249,7,104,7,158,6,198,5,88,5,63,5,241,4,123,4,62,4,23,4,202,3,93,3,216,2,102,2, +54,2,243,1,75,1,146,0,19,0,167,255,49,255,166,254,241,253,64,253,209,252,144,252,112,252,85,252,196,251,166,250, +182,249,98,249,61,249,218,248,79,248,205,247,119,247,91,247,82,247,12,247,129,246,16,246,238,245,180,245,11,245,98,244, +61,244,101,244,80,244,196,243,246,242,121,242,153,242,231,242,249,242,4,243,44,243,72,243,93,243,108,243,39,243,138,242, +240,241,160,241,169,241,199,241,126,241,209,240,70,240,32,240,72,240,127,240,100,240,14,240,54,240,219,240,26,241,209,240, +170,240,192,240,226,240,46,241,108,241,51,241,198,240,170,240,219,240,39,241,106,241,97,241,23,241,35,241,208,241,155,242, +238,242,233,242,9,243,98,243,173,243,197,243,167,243,116,243,163,243,100,244,35,245,89,245,40,245,217,244,162,244,207,244, +56,245,84,245,64,245,130,245,9,246,114,246,175,246,188,246,158,246,185,246,70,247,222,247,23,248,32,248,92,248,189,248, +211,248,144,248,108,248,162,248,236,248,17,249,37,249,98,249,250,249,190,250,67,251,145,251,237,251,43,252,63,252,181,252, +155,253,65,254,124,254,184,254,4,255,53,255,75,255,61,255,16,255,30,255,160,255,76,0,186,0,224,0,22,1,158,1, +51,2,123,2,158,2,248,2,145,3,43,4,100,4,5,4,122,3,103,3,187,3,245,3,0,4,17,4,70,4,176,4, +78,5,229,5,52,6,54,6,44,6,97,6,184,6,214,6,207,6,9,7,134,7,235,7,8,8,229,7,169,7,138,7, +164,7,199,7,184,7,151,7,187,7,46,8,134,8,119,8,35,8,216,7,199,7,235,7,10,8,33,8,125,8,1,9, +35,9,249,8,243,8,195,8,250,7,7,7,131,6,118,6,204,6,65,7,60,7,172,6,38,6,213,5,132,5,97,5, +169,5,38,6,147,6,197,6,133,6,221,5,44,5,158,4,31,4,187,3,161,3,221,3,58,4,93,4,16,4,127,3, +9,3,220,2,211,2,187,2,126,2,37,2,202,1,146,1,138,1,112,1,241,0,43,0,150,255,93,255,77,255,71,255, +88,255,88,255,0,255,121,254,45,254,252,253,126,253,222,252,156,252,195,252,247,252,212,252,38,252,95,251,79,251,220,251, +29,252,236,251,218,251,204,251,78,251,164,250,80,250,82,250,120,250,149,250,109,250,14,250,218,249,238,249,253,249,214,249, +163,249,168,249,245,249,68,250,60,250,217,249,105,249,36,249,246,248,164,248,34,248,183,247,167,247,208,247,244,247,20,248, +57,248,53,248,1,248,212,247,164,247,54,247,216,246,47,247,9,248,79,248,116,247,50,246,129,245,153,245,35,246,214,246, +138,247,17,248,57,248,2,248,182,247,176,247,245,247,34,248,234,247,112,247,18,247,255,246,55,247,163,247,253,247,29,248, +62,248,147,248,205,248,159,248,67,248,4,248,210,247,143,247,77,247,57,247,130,247,27,248,137,248,133,248,124,248,211,248, +45,249,22,249,175,248,56,248,205,247,208,247,136,248,109,249,204,249,195,249,194,249,174,249,99,249,64,249,131,249,237,249, +66,250,124,250,161,250,217,250,73,251,137,251,3,251,246,249,68,249,82,249,240,249,221,250,201,251,96,252,172,252,200,252, +94,252,121,251,2,251,124,251,89,252,34,253,206,253,16,254,222,253,227,253,56,254,22,254,149,253,170,253,115,254,87,255, +66,0,43,1,137,1,67,1,249,0,2,1,35,1,44,1,44,1,84,1,212,1,130,2,223,2,195,2,156,2,194,2, +23,3,111,3,227,3,143,4,88,5,250,5,61,6,23,6,195,5,138,5,143,5,228,5,140,6,76,7,252,7,196,8, +152,9,224,9,79,9,163,8,201,8,172,9,129,10,248,10,95,11,207,11,32,12,98,12,152,12,126,12,75,12,185,12, +188,13,123,14,159,14,136,14,123,14,147,14,205,14,231,14,200,14,188,14,240,14,106,15,61,16,16,17,70,17,24,17, +63,17,175,17,212,17,158,17,110,17,147,17,7,18,59,18,187,17,15,17,34,17,215,17,99,18,144,18,189,18,13,19, +86,19,119,19,106,19,50,19,22,19,105,19,244,19,22,20,154,19,241,18,152,18,171,18,244,18,31,19,0,19,168,18, +64,18,13,18,54,18,103,18,52,18,193,17,102,17,26,17,193,16,117,16,81,16,94,16,118,16,61,16,153,15,233,14, +123,14,90,14,125,14,135,14,254,13,17,13,92,12,234,11,102,11,218,10,155,10,204,10,38,11,39,11,157,10,214,9, +41,9,181,8,118,8,54,8,178,7,16,7,159,6,89,6,17,6,161,5,224,4,0,4,132,3,123,3,116,3,53,3, +226,2,162,2,128,2,82,2,193,1,160,0,73,255,108,254,95,254,143,254,58,254,141,253,42,253,245,252,107,252,159,251, +233,250,101,250,19,250,210,249,81,249,122,248,184,247,120,247,159,247,167,247,59,247,128,246,190,245,34,245,189,244,121,244, +53,244,25,244,54,244,38,244,187,243,86,243,19,243,168,242,42,242,250,241,23,242,52,242,34,242,12,242,62,242,122,242, +29,242,69,241,194,240,199,240,241,240,25,241,19,241,159,240,18,240,238,239,255,239,210,239,125,239,96,239,159,239,5,240, +71,240,98,240,105,240,61,240,245,239,234,239,9,240,254,239,243,239,34,240,100,240,167,240,245,240,0,241,183,240,170,240, +36,241,187,241,29,242,113,242,216,242,37,243,37,243,243,242,201,242,196,242,247,242,117,243,18,244,131,244,198,244,254,244, +45,245,59,245,18,245,213,244,238,244,114,245,246,245,72,246,144,246,204,246,12,247,104,247,134,247,52,247,15,247,113,247, +245,247,126,248,23,249,84,249,44,249,40,249,69,249,72,249,135,249,6,250,71,250,126,250,33,251,192,251,221,251,232,251, +72,252,202,252,73,253,225,253,108,254,156,254,161,254,8,255,204,255,68,0,81,0,114,0,170,0,180,0,217,0,87,1, +204,1,37,2,190,2,103,3,157,3,133,3,168,3,24,4,109,4,107,4,92,4,164,4,46,5,173,5,237,5,197,5, +91,5,74,5,188,5,43,6,85,6,135,6,239,6,115,7,225,7,14,8,255,7,214,7,174,7,217,7,109,8,203,8, +167,8,164,8,237,8,222,8,123,8,67,8,20,8,231,7,51,8,191,8,222,8,192,8,222,8,15,9,17,9,241,8, +197,8,165,8,160,8,161,8,161,8,173,8,169,8,122,8,52,8,220,7,108,7,247,6,161,6,145,6,187,6,188,6, +116,6,58,6,28,6,216,5,131,5,73,5,15,5,234,4,2,5,27,5,17,5,6,5,199,4,34,4,123,3,45,3, +18,3,250,2,203,2,106,2,11,2,253,1,36,2,55,2,27,2,206,1,89,1,230,0,146,0,83,0,240,255,76,255, +195,254,176,254,188,254,118,254,255,253,138,253,30,253,244,252,9,253,224,252,100,252,4,252,210,251,133,251,17,251,178,250, +182,250,39,251,139,251,127,251,48,251,208,250,86,250,222,249,118,249,51,249,112,249,247,249,197,249,203,248,48,248,60,248, +61,248,47,248,107,248,160,248,156,248,188,248,232,248,146,248,218,247,116,247,154,247,243,247,74,248,164,248,204,248,128,248, +232,247,61,247,135,246,16,246,45,246,124,246,149,246,223,246,126,247,175,247,20,247,93,246,28,246,34,246,60,246,127,246, +221,246,20,247,36,247,58,247,40,247,149,246,206,245,137,245,14,246,34,247,43,248,100,248,229,247,165,247,211,247,187,247, +110,247,104,247,86,247,35,247,137,247,96,248,152,248,15,248,128,247,49,247,34,247,95,247,187,247,38,248,195,248,78,249, +59,249,142,248,209,247,100,247,89,247,170,247,65,248,224,248,88,249,224,249,162,250,8,251,90,250,16,249,98,248,190,248, +135,249,22,250,71,250,47,250,239,249,201,249,238,249,23,250,249,249,12,250,218,250,234,251,93,252,23,252,153,251,88,251, +99,251,87,251,30,251,103,251,138,252,182,253,32,254,225,253,95,253,25,253,136,253,98,254,240,254,72,255,1,0,250,0, +136,1,106,1,230,0,99,0,30,0,51,0,151,0,9,1,96,1,213,1,94,2,117,2,23,2,225,1,239,1,28,2, +209,2,5,4,185,4,140,4,74,4,123,4,228,4,68,5,124,5,139,5,197,5,142,6,185,7,130,8,106,8,220,7, +164,7,236,7,80,8,166,8,15,9,160,9,98,10,38,11,143,11,155,11,168,11,236,11,112,12,30,13,153,13,182,13, +217,13,52,14,83,14,223,13,64,13,40,13,208,13,186,14,92,15,182,15,0,16,83,16,198,16,50,17,27,17,165,16, +158,16,40,17,142,17,129,17,59,17,248,16,241,16,50,17,104,17,100,17,102,17,186,17,107,18,52,19,146,19,75,19, +161,18,12,18,8,18,169,18,66,19,89,19,107,19,193,19,202,19,114,19,74,19,65,19,247,18,185,18,188,18,152,18, +30,18,163,17,87,17,41,17,3,17,203,16,131,16,104,16,153,16,220,16,204,16,80,16,178,15,61,15,237,14,150,14, +31,14,148,13,57,13,35,13,237,12,88,12,194,11,119,11,54,11,214,10,150,10,153,10,168,10,116,10,227,9,51,9, +173,8,83,8,14,8,210,7,129,7,14,7,122,6,177,5,217,4,99,4,63,4,223,3,83,3,35,3,66,3,73,3, +33,3,195,2,26,2,70,1,109,0,152,255,242,254,158,254,117,254,75,254,4,254,119,253,167,252,193,251,211,250,251,249, +117,249,67,249,58,249,81,249,83,249,224,248,15,248,86,247,222,246,141,246,77,246,231,245,68,245,208,244,226,244,15,245, +201,244,56,244,204,243,134,243,47,243,200,242,105,242,24,242,239,241,2,242,41,242,58,242,62,242,53,242,17,242,230,241, +191,241,131,241,52,241,246,240,201,240,146,240,84,240,27,240,1,240,32,240,84,240,79,240,255,239,174,239,178,239,3,240, +52,240,17,240,2,240,91,240,187,240,180,240,105,240,35,240,5,240,50,240,146,240,183,240,155,240,175,240,8,241,81,241, +122,241,173,241,231,241,44,242,148,242,254,242,52,243,83,243,143,243,189,243,179,243,166,243,204,243,8,244,52,244,107,244, +202,244,34,245,54,245,31,245,49,245,123,245,187,245,212,245,242,245,57,246,162,246,18,247,89,247,107,247,151,247,26,248, +193,248,56,249,101,249,87,249,65,249,98,249,172,249,213,249,210,249,247,249,128,250,78,251,6,252,105,252,146,252,225,252, +134,253,54,254,135,254,133,254,151,254,241,254,125,255,36,0,174,0,197,0,131,0,117,0,206,0,65,1,164,1,14,2, +147,2,59,3,234,3,75,4,73,4,63,4,108,4,189,4,17,5,65,5,44,5,21,5,69,5,124,5,126,5,191,5, +143,6,71,7,69,7,242,6,243,6,46,7,79,7,102,7,156,7,5,8,169,8,46,9,38,9,237,8,31,9,109,9, +80,9,39,9,94,9,147,9,118,9,67,9,29,9,254,8,16,9,62,9,40,9,219,8,216,8,57,9,140,9,138,9, +113,9,127,9,132,9,70,9,237,8,184,8,173,8,191,8,202,8,136,8,248,7,92,7,209,6,109,6,109,6,170,6, +194,6,205,6,249,6,233,6,118,6,29,6,246,5,136,5,239,4,193,4,231,4,220,4,145,4,71,4,21,4,249,3, +206,3,69,3,127,2,32,2,93,2,164,2,122,2,246,1,96,1,250,0,205,0,131,0,244,255,157,255,200,255,236,255, +156,255,17,255,136,254,29,254,250,253,217,253,55,253,89,252,239,251,244,251,3,252,24,252,20,252,189,251,98,251,115,251, +159,251,96,251,203,250,78,250,64,250,162,250,214,250,48,250,30,249,186,248,44,249,155,249,176,249,206,249,1,250,220,249, +48,249,41,248,39,247,210,246,164,247,0,249,155,249,26,249,109,248,105,248,195,248,144,248,134,247,106,246,56,246,231,246, +128,247,109,247,27,247,25,247,63,247,13,247,123,246,3,246,18,246,143,246,6,247,41,247,249,246,140,246,33,246,24,246, +102,246,146,246,145,246,206,246,73,247,135,247,94,247,243,246,101,246,19,246,108,246,29,247,113,247,93,247,81,247,84,247, +54,247,9,247,240,246,243,246,49,247,151,247,164,247,41,247,202,246,2,247,94,247,95,247,72,247,90,247,83,247,43,247, +63,247,164,247,21,248,115,248,205,248,43,249,118,249,114,249,27,249,207,248,182,248,138,248,69,248,90,248,219,248,76,249, +123,249,163,249,218,249,244,249,231,249,226,249,8,250,80,250,145,250,145,250,98,250,135,250,28,251,124,251,106,251,146,251, +35,252,96,252,0,252,121,251,44,251,125,251,150,252,143,253,134,253,73,253,225,253,167,254,155,254,27,254,254,253,146,254, +190,255,251,0,140,1,102,1,55,1,73,1,70,1,13,1,240,0,51,1,197,1,130,2,52,3,129,3,100,3,113,3, +14,4,199,4,7,5,241,4,29,5,218,5,203,6,68,7,49,7,27,7,65,7,117,7,179,7,5,8,75,8,163,8, +58,9,193,9,242,9,26,10,139,10,56,11,251,11,158,12,226,12,228,12,4,13,105,13,238,13,96,14,174,14,249,14, +111,15,25,16,183,16,215,16,110,16,46,16,120,16,167,16,104,16,124,16,50,17,221,17,70,18,215,18,104,19,139,19, +110,19,126,19,198,19,18,20,60,20,85,20,127,20,145,20,77,20,208,19,107,19,102,19,246,19,217,20,103,21,119,21, +121,21,151,21,154,21,102,21,25,21,235,20,5,21,49,21,21,21,213,20,204,20,239,20,253,20,210,20,108,20,249,19, +203,19,237,19,22,20,253,19,162,19,63,19,247,18,181,18,96,18,2,18,168,17,109,17,109,17,129,17,120,17,81,17, +239,16,47,16,105,15,254,14,168,14,16,14,102,13,223,12,122,12,78,12,68,12,246,11,75,11,166,10,74,10,24,10, +211,9,126,9,85,9,76,9,238,8,14,8,13,7,60,6,175,5,110,5,72,5,230,4,84,4,228,3,171,3,134,3, +59,3,150,2,189,1,41,1,238,0,166,0,11,0,57,255,114,254,247,253,203,253,146,253,17,253,135,252,52,252,229,251, +74,251,111,250,157,249,247,248,118,248,4,248,129,247,243,246,143,246,100,246,58,246,224,245,66,245,104,244,170,243,102,243, +104,243,67,243,1,243,199,242,97,242,199,241,70,241,230,240,119,240,25,240,8,240,54,240,130,240,214,240,2,241,218,240, +146,240,116,240,85,240,227,239,75,239,14,239,44,239,43,239,223,238,135,238,89,238,77,238,77,238,68,238,39,238,12,238, +24,238,74,238,110,238,106,238,100,238,101,238,57,238,237,237,230,237,42,238,90,238,109,238,150,238,193,238,221,238,29,239, +107,239,107,239,58,239,78,239,138,239,139,239,133,239,234,239,121,240,191,240,242,240,92,241,166,241,154,241,172,241,18,242, +110,242,135,242,121,242,109,242,157,242,21,243,119,243,135,243,148,243,213,243,40,244,128,244,234,244,58,245,76,245,91,245, +193,245,116,246,249,246,9,247,236,246,232,246,216,246,197,246,246,246,81,247,152,247,247,247,146,248,40,249,148,249,239,249, +79,250,217,250,144,251,13,252,28,252,34,252,116,252,235,252,100,253,229,253,75,254,126,254,179,254,20,255,96,255,100,255, +123,255,6,0,200,0,87,1,180,1,253,1,46,2,92,2,163,2,236,2,67,3,192,3,31,4,36,4,3,4,232,3, +223,3,16,4,113,4,179,4,233,4,73,5,152,5,171,5,202,5,18,6,86,6,133,6,173,6,241,6,114,7,247,7, +35,8,5,8,229,7,209,7,192,7,164,7,90,7,36,7,119,7,35,8,142,8,168,8,182,8,194,8,199,8,210,8, +201,8,146,8,79,8,71,8,145,8,226,8,213,8,106,8,223,7,87,7,252,6,232,6,213,6,131,6,60,6,77,6, +139,6,159,6,86,6,191,5,78,5,80,5,119,5,107,5,92,5,119,5,125,5,41,5,156,4,37,4,216,3,145,3, +100,3,123,3,147,3,86,3,252,2,212,2,181,2,106,2,3,2,142,1,59,1,66,1,110,1,103,1,44,1,199,0, +39,0,158,255,127,255,117,255,21,255,148,254,88,254,75,254,35,254,228,253,179,253,116,253,21,253,219,252,217,252,182,252, +120,252,127,252,151,252,75,252,223,251,181,251,143,251,78,251,28,251,195,250,33,250,193,249,245,249,91,250,174,250,230,250, +185,250,40,250,209,249,2,250,85,250,119,250,109,250,65,250,0,250,189,249,93,249,229,248,207,248,81,249,190,249,130,249, +16,249,15,249,75,249,53,249,170,248,236,247,120,247,168,247,18,248,247,247,133,247,163,247,118,248,44,249,30,249,128,248, +249,247,207,247,159,247,35,247,204,246,33,247,242,247,181,248,17,249,233,248,125,248,90,248,163,248,199,248,120,248,68,248, +166,248,42,249,43,249,192,248,101,248,66,248,57,248,49,248,38,248,85,248,240,248,122,249,60,249,124,248,13,248,5,248, +33,248,152,248,95,249,191,249,132,249,56,249,219,248,35,248,205,247,159,248,210,249,97,250,146,250,196,250,139,250,243,249, +158,249,125,249,53,249,29,249,115,249,230,249,123,250,80,251,199,251,137,251,86,251,154,251,168,251,57,251,0,251,95,251, +253,251,150,252,251,252,203,252,53,252,22,252,139,252,192,252,145,252,201,252,148,253,92,254,219,254,254,254,169,254,99,254, +221,254,162,255,216,255,198,255,32,0,198,0,57,1,75,1,15,1,213,0,250,0,100,1,193,1,30,2,184,2,136,3, +79,4,188,4,141,4,255,3,212,3,124,4,133,5,73,6,185,6,12,7,75,7,132,7,212,7,250,7,198,7,182,7, +75,8,34,9,127,9,67,9,15,9,147,9,175,10,120,11,149,11,170,11,16,12,115,12,192,12,21,13,66,13,89,13, +193,13,95,14,188,14,207,14,206,14,214,14,17,15,125,15,226,15,83,16,254,16,149,17,193,17,195,17,246,17,50,18, +58,18,67,18,150,18,242,18,237,18,224,18,87,19,235,19,238,19,153,19,107,19,80,19,61,19,116,19,218,19,23,20, +42,20,66,20,103,20,133,20,113,20,48,20,46,20,164,20,8,21,197,20,25,20,182,19,199,19,227,19,187,19,103,19, +27,19,252,18,6,19,235,18,123,18,23,18,15,18,29,18,21,18,14,18,192,17,248,16,92,16,99,16,131,16,74,16, +222,15,81,15,192,14,147,14,179,14,127,14,231,13,128,13,128,13,131,13,29,13,80,12,150,11,99,11,143,11,124,11, +218,10,8,10,137,9,72,9,200,8,244,7,37,7,140,6,59,6,67,6,87,6,255,5,93,5,244,4,216,4,173,4, +31,4,53,3,109,2,56,2,91,2,62,2,176,1,228,0,33,0,166,255,87,255,205,254,7,254,123,253,75,253,31,253, +193,252,74,252,227,251,169,251,126,251,2,251,24,250,58,249,215,248,188,248,127,248,7,248,93,247,151,246,6,246,198,245, +90,245,128,244,205,243,201,243,21,244,17,244,178,243,78,243,7,243,179,242,58,242,210,241,179,241,186,241,182,241,181,241, +174,241,129,241,72,241,43,241,3,241,190,240,145,240,127,240,94,240,85,240,154,240,242,240,7,241,214,240,129,240,37,240, +249,239,24,240,67,240,77,240,111,240,202,240,237,240,127,240,214,239,127,239,118,239,106,239,117,239,231,239,134,240,207,240, +195,240,176,240,149,240,125,240,189,240,63,241,131,241,146,241,207,241,13,242,4,242,255,241,49,242,73,242,54,242,76,242, +141,242,190,242,245,242,89,243,172,243,172,243,154,243,220,243,78,244,137,244,165,244,252,244,123,245,224,245,31,246,33,246, +238,245,240,245,84,246,178,246,230,246,68,247,187,247,237,247,245,247,28,248,59,248,63,248,131,248,39,249,183,249,248,249, +62,250,160,250,194,250,180,250,251,250,138,251,223,251,0,252,63,252,148,252,253,252,162,253,71,254,142,254,159,254,190,254, +232,254,44,255,174,255,69,0,182,0,11,1,106,1,201,1,252,1,1,2,14,2,67,2,137,2,223,2,83,3,175,3, +205,3,217,3,252,3,39,4,87,4,134,4,161,4,197,4,17,5,111,5,206,5,36,6,80,6,102,6,146,6,176,6, +176,6,214,6,34,7,101,7,187,7,11,8,210,7,66,7,42,7,166,7,57,8,168,8,200,8,131,8,76,8,117,8, +156,8,144,8,191,8,58,9,127,9,91,9,10,9,187,8,138,8,143,8,136,8,34,8,183,7,218,7,61,8,53,8, +243,7,233,7,199,7,73,7,232,6,202,6,141,6,91,6,152,6,224,6,175,6,71,6,248,5,168,5,81,5,35,5, +20,5,246,4,187,4,121,4,69,4,31,4,255,3,215,3,140,3,47,3,18,3,48,3,17,3,147,2,21,2,207,1, +185,1,171,1,78,1,157,0,45,0,70,0,88,0,239,255,66,255,182,254,138,254,164,254,120,254,230,253,175,253,58,254, +179,254,81,254,93,253,140,252,41,252,33,252,62,252,79,252,81,252,73,252,27,252,201,251,152,251,146,251,76,251,160,250, +17,250,254,249,35,250,71,250,126,250,142,250,45,250,174,249,116,249,74,249,12,249,19,249,108,249,160,249,120,249,50,249, +6,249,246,248,226,248,142,248,239,247,110,247,95,247,132,247,142,247,145,247,161,247,129,247,37,247,197,246,115,246,67,246, +131,246,12,247,38,247,185,246,147,246,22,247,146,247,89,247,164,246,48,246,94,246,216,246,0,247,191,246,160,246,12,247, +188,247,16,248,202,247,87,247,65,247,100,247,40,247,130,246,39,246,135,246,50,247,127,247,93,247,52,247,86,247,182,247, +11,248,15,248,183,247,76,247,61,247,154,247,223,247,175,247,112,247,149,247,215,247,221,247,216,247,245,247,40,248,140,248, +24,249,82,249,34,249,3,249,45,249,84,249,80,249,44,249,245,248,223,248,18,249,112,249,220,249,94,250,226,250,66,251, +114,251,112,251,74,251,48,251,59,251,67,251,24,251,201,250,179,250,34,251,219,251,85,252,128,252,178,252,5,253,62,253, +62,253,30,253,9,253,47,253,162,253,49,254,133,254,149,254,207,254,116,255,26,0,72,0,48,0,74,0,186,0,87,1, +224,1,50,2,113,2,180,2,215,2,212,2,215,2,236,2,53,3,247,3,236,4,99,5,76,5,62,5,140,5,14,6, +144,6,251,6,76,7,135,7,167,7,170,7,130,7,55,7,57,7,239,7,250,8,178,9,8,10,74,10,165,10,42,11, +166,11,170,11,64,11,1,11,65,11,216,11,112,12,189,12,216,12,56,13,218,13,51,14,34,14,24,14,79,14,182,14, +64,15,205,15,33,16,42,16,30,16,74,16,166,16,218,16,215,16,243,16,73,17,160,17,224,17,20,18,70,18,145,18, +213,18,180,18,69,18,12,18,32,18,43,18,32,18,30,18,20,18,14,18,59,18,129,18,161,18,167,18,201,18,250,18, +255,18,215,18,178,18,148,18,112,18,79,18,34,18,210,17,146,17,146,17,168,17,170,17,162,17,125,17,47,17,245,16, +204,16,114,16,1,16,183,15,119,15,54,15,16,15,199,14,58,14,216,13,206,13,179,13,94,13,249,12,114,12,219,11, +157,11,181,11,176,11,97,11,224,10,61,10,181,9,124,9,61,9,160,8,249,7,177,7,137,7,36,7,162,6,41,6, +151,5,12,5,224,4,231,4,177,4,74,4,246,3,143,3,237,2,66,2,162,1,16,1,226,0,58,1,121,1,31,1, +123,0,245,255,115,255,215,254,58,254,137,253,186,252,42,252,33,252,58,252,239,251,88,251,220,250,131,250,27,250,154,249, +14,249,134,248,10,248,145,247,26,247,195,246,143,246,82,246,233,245,88,245,177,244,39,244,252,243,11,244,238,243,171,243, +137,243,106,243,22,243,208,242,217,242,221,242,151,242,86,242,95,242,125,242,119,242,77,242,252,241,165,241,145,241,181,241, +184,241,145,241,124,241,112,241,80,241,68,241,84,241,55,241,227,240,194,240,246,240,30,241,27,241,54,241,117,241,147,241, +138,241,101,241,5,241,157,240,166,240,16,241,102,241,148,241,192,241,217,241,211,241,200,241,191,241,203,241,15,242,115,242, +201,242,24,243,111,243,192,243,238,243,220,243,159,243,142,243,182,243,190,243,171,243,230,243,93,244,165,244,212,244,46,245, +132,245,145,245,129,245,157,245,249,245,121,246,220,246,229,246,195,246,230,246,66,247,96,247,62,247,93,247,189,247,246,247, +48,248,205,248,121,249,178,249,178,249,217,249,2,250,1,250,8,250,86,250,241,250,161,251,25,252,56,252,49,252,90,252, +230,252,156,253,19,254,72,254,140,254,223,254,26,255,74,255,110,255,134,255,229,255,147,0,1,1,252,0,4,1,86,1, +197,1,69,2,177,2,193,2,175,2,246,2,127,3,215,3,227,3,203,3,199,3,14,4,129,4,178,4,148,4,176,4, +60,5,180,5,207,5,246,5,70,6,79,6,37,6,89,6,213,6,14,7,24,7,68,7,122,7,197,7,74,8,157,8, +87,8,233,7,211,7,233,7,237,7,247,7,34,8,136,8,41,9,130,9,13,9,61,8,6,8,132,8,247,8,245,8, +200,8,176,8,167,8,173,8,179,8,126,8,25,8,228,7,229,7,197,7,97,7,238,6,184,6,236,6,74,7,78,7, +252,6,206,6,199,6,146,6,80,6,90,6,123,6,70,6,219,5,160,5,163,5,145,5,77,5,19,5,6,5,255,4, +223,4,159,4,56,4,205,3,151,3,113,3,9,3,130,2,66,2,80,2,118,2,122,2,34,2,134,1,42,1,45,1, +252,0,91,0,214,255,197,255,192,255,108,255,248,254,170,254,133,254,98,254,30,254,199,253,162,253,208,253,15,254,23,254, +247,253,202,253,117,253,246,252,154,252,134,252,110,252,46,252,18,252,50,252,39,252,205,251,128,251,69,251,207,250,128,250, +233,250,117,251,50,251,104,250,1,250,10,250,20,250,33,250,48,250,250,249,160,249,114,249,30,249,82,248,177,247,218,247, +72,248,58,248,211,247,141,247,121,247,99,247,28,247,177,246,161,246,67,247,15,248,81,248,52,248,75,248,134,248,83,248, +141,247,194,246,112,246,132,246,198,246,51,247,156,247,167,247,129,247,158,247,211,247,179,247,106,247,85,247,78,247,16,247, +178,246,117,246,148,246,36,247,205,247,252,247,164,247,82,247,74,247,19,247,117,246,24,246,133,246,59,247,133,247,97,247, +41,247,33,247,89,247,128,247,86,247,63,247,168,247,61,248,145,248,191,248,225,248,215,248,168,248,115,248,61,248,40,248, +94,248,199,248,40,249,120,249,199,249,29,250,94,250,104,250,75,250,69,250,100,250,147,250,202,250,252,250,6,251,239,250, +237,250,17,251,39,251,24,251,52,251,167,251,251,251,210,251,147,251,193,251,58,252,164,252,223,252,252,252,72,253,244,253, +163,254,232,254,247,254,44,255,150,255,48,0,191,0,229,0,206,0,0,1,108,1,160,1,175,1,235,1,93,2,215,2, +37,3,52,3,64,3,150,3,59,4,9,5,188,5,238,5,151,5,73,5,135,5,45,6,176,6,202,6,197,6,11,7, +142,7,1,8,93,8,188,8,11,9,75,9,141,9,168,9,132,9,132,9,23,10,2,11,159,11,175,11,137,11,141,11, +207,11,72,12,218,12,73,13,148,13,249,13,105,14,147,14,137,14,177,14,39,15,177,15,16,16,61,16,96,16,148,16, +203,16,18,17,133,17,248,17,49,18,67,18,83,18,100,18,123,18,133,18,101,18,98,18,179,18,225,18,139,18,62,18, +126,18,243,18,51,19,94,19,126,19,98,19,49,19,57,19,84,19,77,19,98,19,188,19,247,19,206,19,137,19,112,19, +120,19,139,19,113,19,246,18,118,18,130,18,216,18,223,18,187,18,174,18,98,18,207,17,133,17,123,17,24,17,134,16, +94,16,104,16,42,16,223,15,174,15,39,15,87,14,240,13,254,13,232,13,134,13,24,13,162,12,53,12,237,11,137,11, +234,10,121,10,92,10,16,10,93,9,157,8,12,8,164,7,101,7,56,7,241,6,153,6,70,6,230,5,99,5,214,4, +96,4,7,4,189,3,124,3,72,3,19,3,199,2,114,2,41,2,208,1,52,1,90,0,123,255,211,254,118,254,57,254, +220,253,86,253,218,252,131,252,31,252,122,251,193,250,70,250,8,250,202,249,101,249,202,248,13,248,135,247,112,247,110,247, +9,247,77,246,170,245,87,245,28,245,174,244,43,244,225,243,202,243,174,243,128,243,69,243,2,243,203,242,151,242,89,242, +69,242,93,242,46,242,163,241,59,241,49,241,86,241,124,241,98,241,235,240,157,240,212,240,9,241,191,240,90,240,86,240, +160,240,226,240,192,240,52,240,200,239,243,239,86,240,78,240,238,239,195,239,243,239,36,240,25,240,232,239,179,239,160,239, +217,239,36,240,43,240,43,240,122,240,212,240,12,241,126,241,22,242,69,242,20,242,251,241,246,241,232,241,21,242,137,242, +223,242,241,242,2,243,46,243,75,243,88,243,142,243,237,243,57,244,107,244,164,244,224,244,22,245,87,245,130,245,121,245, +118,245,150,245,173,245,211,245,68,246,196,246,255,246,18,247,44,247,85,247,149,247,223,247,36,248,124,248,222,248,20,249, +42,249,54,249,32,249,27,249,132,249,46,250,193,250,68,251,161,251,168,251,165,251,244,251,104,252,195,252,10,253,66,253, +130,253,247,253,116,254,178,254,226,254,82,255,204,255,6,0,38,0,92,0,137,0,154,0,194,0,253,0,11,1,3,1, +57,1,142,1,191,1,11,2,165,2,48,3,105,3,112,3,83,3,31,3,33,3,113,3,192,3,216,3,213,3,244,3, +94,4,238,4,62,5,56,5,58,5,137,5,237,5,24,6,51,6,142,6,238,6,199,6,60,6,221,5,192,5,188,5, +241,5,93,6,168,6,190,6,199,6,187,6,164,6,176,6,196,6,191,6,212,6,26,7,65,7,17,7,173,6,99,6, +96,6,132,6,143,6,125,6,83,6,244,5,126,5,79,5,87,5,39,5,196,4,156,4,175,4,144,4,57,4,20,4, +62,4,96,4,84,4,82,4,106,4,114,4,92,4,62,4,38,4,21,4,240,3,138,3,232,2,70,2,226,1,216,1, +14,2,57,2,30,2,201,1,123,1,112,1,155,1,153,1,38,1,122,0,17,0,46,0,134,0,115,0,215,255,81,255, +23,255,139,254,156,253,29,253,108,253,19,254,151,254,180,254,72,254,154,253,42,253,47,253,122,253,148,253,14,253,74,252, +46,252,147,252,87,252,80,251,198,250,100,251,53,252,67,252,222,251,154,251,70,251,171,250,44,250,23,250,54,250,79,250, +97,250,121,250,162,250,204,250,186,250,117,250,88,250,90,250,253,249,61,249,197,248,243,248,66,249,8,249,84,248,172,247, +121,247,225,247,157,248,251,248,191,248,134,248,175,248,213,248,201,248,185,248,136,248,39,248,1,248,19,248,209,247,87,247, +116,247,104,248,120,249,197,249,54,249,124,248,31,248,245,247,206,247,214,247,42,248,170,248,27,249,28,249,145,248,9,248, +2,248,65,248,105,248,132,248,188,248,12,249,52,249,224,248,30,248,128,247,108,247,174,247,226,247,250,247,53,248,177,248, +44,249,82,249,32,249,200,248,154,248,221,248,99,249,154,249,121,249,145,249,15,250,119,250,98,250,233,249,135,249,167,249, +47,250,152,250,151,250,118,250,163,250,31,251,140,251,190,251,220,251,242,251,234,251,234,251,31,252,108,252,165,252,180,252, +170,252,201,252,6,253,215,252,90,252,131,252,105,253,19,254,77,254,177,254,54,255,128,255,177,255,226,255,254,255,62,0, +174,0,237,0,252,0,55,1,121,1,115,1,131,1,22,2,210,2,34,3,30,3,67,3,149,3,179,3,171,3,254,3, +200,4,142,5,221,5,213,5,255,5,159,6,78,7,148,7,134,7,108,7,86,7,109,7,218,7,95,8,174,8,219,8, +23,9,97,9,174,9,249,9,81,10,203,10,80,11,171,11,221,11,2,12,36,12,85,12,178,12,30,13,74,13,45,13, +28,13,110,13,14,14,168,14,37,15,141,15,222,15,56,16,172,16,223,16,169,16,151,16,13,17,186,17,58,18,99,18, +31,18,192,17,205,17,37,18,75,18,67,18,74,18,110,18,199,18,68,19,129,19,106,19,115,19,196,19,236,19,147,19, +255,18,205,18,61,19,223,19,26,20,214,19,107,19,44,19,70,19,142,19,148,19,58,19,235,18,248,18,16,19,182,18, +19,18,212,17,43,18,130,18,80,18,213,17,175,17,239,17,251,17,118,17,191,16,70,16,239,15,159,15,136,15,139,15, +76,15,220,14,127,14,37,14,178,13,81,13,31,13,7,13,242,12,208,12,161,12,88,12,199,11,236,10,10,10,67,9, +157,8,61,8,23,8,212,7,96,7,251,6,179,6,110,6,61,6,33,6,241,5,135,5,227,4,61,4,224,3,174,3, +63,3,132,2,197,1,33,1,144,0,25,0,187,255,115,255,60,255,236,254,90,254,172,253,19,253,135,252,250,251,133,251, +53,251,229,250,128,250,17,250,135,249,196,248,6,248,179,247,179,247,147,247,62,247,219,246,95,246,204,245,75,245,214,244, +68,244,168,243,40,243,208,242,176,242,194,242,201,242,148,242,58,242,245,241,207,241,145,241,35,241,203,240,175,240,147,240, +108,240,92,240,45,240,198,239,175,239,50,240,188,240,210,240,191,240,212,240,227,240,176,240,106,240,104,240,144,240,128,240, +36,240,187,239,102,239,66,239,107,239,148,239,123,239,117,239,186,239,232,239,239,239,59,240,173,240,190,240,123,240,62,240, +29,240,57,240,193,240,103,241,187,241,222,241,32,242,96,242,106,242,98,242,107,242,105,242,123,242,237,242,139,243,206,243, +180,243,169,243,217,243,30,244,85,244,130,244,196,244,30,245,105,245,168,245,7,246,106,246,158,246,175,246,162,246,122,246, +146,246,26,247,167,247,5,248,108,248,181,248,173,248,191,248,42,249,133,249,197,249,71,250,214,250,250,250,218,250,199,250, +162,250,108,250,140,250,20,251,154,251,254,251,126,252,6,253,63,253,86,253,165,253,6,254,75,254,199,254,133,255,4,0, +31,0,34,0,40,0,51,0,99,0,149,0,169,0,241,0,141,1,17,2,73,2,116,2,142,2,99,2,39,2,50,2, +116,2,193,2,57,3,236,3,134,4,187,4,176,4,161,4,143,4,152,4,234,4,77,5,91,5,50,5,80,5,204,5, +51,6,50,6,15,6,43,6,119,6,205,6,77,7,220,7,22,8,252,7,208,7,132,7,40,7,33,7,90,7,116,7, +151,7,246,7,43,8,1,8,202,7,164,7,139,7,206,7,112,8,225,8,229,8,204,8,174,8,87,8,243,7,236,7, +44,8,48,8,215,7,115,7,32,7,191,6,110,6,82,6,68,6,43,6,32,6,2,6,170,5,91,5,84,5,112,5, +125,5,120,5,96,5,75,5,97,5,125,5,66,5,189,4,106,4,122,4,133,4,38,4,135,3,28,3,21,3,62,3, +68,3,21,3,231,2,192,2,117,2,27,2,229,1,161,1,65,1,49,1,93,1,26,1,114,0,12,0,212,255,98,255, +254,254,253,254,29,255,48,255,77,255,71,255,247,254,162,254,97,254,238,253,94,253,37,253,64,253,49,253,210,252,136,252, +121,252,103,252,65,252,34,252,248,251,205,251,228,251,252,251,131,251,163,250,13,250,235,249,25,250,169,250,96,251,160,251, +88,251,25,251,10,251,177,250,230,249,55,249,42,249,122,249,127,249,0,249,89,248,24,248,131,248,61,249,156,249,97,249, +225,248,128,248,112,248,128,248,31,248,37,247,129,246,19,247,47,248,89,248,128,247,31,247,239,247,215,248,175,248,219,247, +104,247,157,247,6,248,34,248,224,247,186,247,252,247,70,248,50,248,244,247,202,247,191,247,235,247,46,248,37,248,220,247, +189,247,209,247,230,247,237,247,192,247,89,247,42,247,98,247,140,247,130,247,193,247,103,248,231,248,203,248,65,248,220,247, +233,247,29,248,30,248,36,248,140,248,24,249,78,249,58,249,36,249,251,248,172,248,162,248,36,249,176,249,184,249,119,249, +131,249,255,249,136,250,159,250,79,250,65,250,194,250,52,251,9,251,164,250,149,250,222,250,40,251,66,251,70,251,107,251, +164,251,180,251,190,251,19,252,144,252,212,252,222,252,215,252,192,252,162,252,191,252,70,253,18,254,222,254,138,255,13,0, +77,0,76,0,44,0,248,255,207,255,238,255,64,0,135,0,251,0,201,1,94,2,73,2,9,2,40,2,157,2,61,3, +202,3,10,4,78,4,250,4,133,5,73,5,188,4,170,4,3,5,82,5,143,5,236,5,115,6,15,7,151,7,215,7, +223,7,255,7,84,8,172,8,240,8,59,9,135,9,193,9,25,10,153,10,233,10,212,10,164,10,195,10,69,11,220,11, +42,12,62,12,124,12,245,12,94,13,158,13,204,13,239,13,31,14,139,14,31,15,131,15,139,15,113,15,149,15,10,16, +125,16,168,16,158,16,154,16,197,16,3,17,242,16,142,16,103,16,184,16,21,17,87,17,180,17,4,18,26,18,44,18, +78,18,73,18,57,18,83,18,108,18,88,18,51,18,246,17,165,17,159,17,26,18,156,18,143,18,1,18,138,17,145,17, +230,17,22,18,3,18,235,17,230,17,173,17,28,17,149,16,107,16,86,16,245,15,120,15,49,15,2,15,176,14,71,14, +245,13,219,13,231,13,213,13,142,13,59,13,233,12,141,12,58,12,245,11,170,11,105,11,60,11,204,10,225,9,236,8, +132,8,154,8,145,8,28,8,134,7,32,7,215,6,140,6,58,6,185,5,22,5,195,4,220,4,206,4,71,4,172,3, +87,3,23,3,142,2,193,1,31,1,225,0,176,0,67,0,203,255,100,255,208,254,13,254,91,253,215,252,124,252,62,252, +2,252,199,251,146,251,45,251,125,250,197,249,43,249,129,248,209,247,95,247,48,247,21,247,2,247,225,246,137,246,254,245, +116,245,10,245,192,244,133,244,52,244,210,243,167,243,204,243,205,243,90,243,206,242,120,242,40,242,214,241,205,241,5,242, +57,242,99,242,95,242,238,241,104,241,90,241,167,241,229,241,255,241,230,241,147,241,85,241,100,241,127,241,111,241,85,241, +72,241,58,241,45,241,68,241,125,241,147,241,88,241,13,241,5,241,38,241,57,241,61,241,54,241,73,241,208,241,160,242, +237,242,135,242,58,242,126,242,221,242,248,242,28,243,146,243,2,244,252,243,153,243,67,243,55,243,127,243,6,244,149,244, +19,245,130,245,181,245,149,245,130,245,181,245,206,245,152,245,125,245,184,245,254,245,55,246,150,246,251,246,10,247,231,246, +29,247,195,247,79,248,109,248,103,248,152,248,253,248,84,249,112,249,119,249,176,249,2,250,25,250,12,250,46,250,113,250, +181,250,26,251,158,251,3,252,64,252,120,252,188,252,23,253,118,253,155,253,149,253,186,253,43,254,190,254,72,255,173,255, +246,255,68,0,133,0,155,0,174,0,204,0,192,0,154,0,188,0,30,1,94,1,101,1,112,1,175,1,15,2,94,2, +146,2,246,2,173,3,87,4,138,4,94,4,39,4,8,4,252,3,17,4,80,4,169,4,26,5,162,5,254,5,239,5, +189,5,213,5,37,6,92,6,119,6,160,6,214,6,253,6,9,7,246,6,214,6,210,6,6,7,84,7,127,7,157,7, +254,7,110,8,99,8,10,8,252,7,19,8,206,7,97,7,70,7,135,7,243,7,76,8,70,8,244,7,191,7,195,7, +195,7,171,7,147,7,124,7,94,7,33,7,163,6,244,5,111,5,85,5,105,5,41,5,158,4,120,4,11,5,190,5, +246,5,198,5,127,5,70,5,40,5,20,5,223,4,147,4,96,4,60,4,228,3,75,3,189,2,135,2,146,2,136,2, +61,2,201,1,103,1,59,1,23,1,174,0,38,0,237,255,255,255,0,0,222,255,189,255,133,255,47,255,246,254,239,254, +216,254,144,254,76,254,36,254,235,253,155,253,99,253,52,253,220,252,113,252,20,252,185,251,119,251,116,251,130,251,130,251, +174,251,230,251,197,251,119,251,76,251,4,251,129,250,32,250,207,249,53,249,181,248,242,248,190,249,115,250,172,250,74,250, +142,249,24,249,29,249,17,249,168,248,104,248,201,248,112,249,165,249,48,249,105,248,209,247,169,247,167,247,81,247,201,246, +190,246,63,247,146,247,112,247,99,247,198,247,80,248,161,248,131,248,232,247,39,247,215,246,42,247,198,247,89,248,185,248, +179,248,80,248,6,248,27,248,84,248,144,248,199,248,164,248,46,248,34,248,137,248,105,248,182,247,150,247,65,248,195,248, +214,248,1,249,81,249,106,249,65,249,235,248,123,248,66,248,127,248,231,248,12,249,11,249,69,249,201,249,86,250,162,250, +114,250,246,249,231,249,140,250,9,251,168,250,2,250,235,249,60,250,125,250,148,250,115,250,65,250,118,250,17,251,105,251, +101,251,193,251,181,252,110,253,56,253,84,252,122,251,28,251,74,251,203,251,50,252,82,252,126,252,244,252,80,253,42,253, +203,252,199,252,69,253,5,254,171,254,224,254,154,254,75,254,91,254,151,254,163,254,178,254,23,255,177,255,88,0,21,1, +166,1,194,1,194,1,4,2,52,2,27,2,22,2,86,2,197,2,99,3,229,3,213,3,138,3,188,3,64,4,137,4, +173,4,249,4,99,5,239,5,148,6,207,6,78,6,174,5,184,5,98,6,15,7,114,7,178,7,254,7,104,8,220,8, +19,9,253,8,16,9,177,9,140,10,19,11,41,11,1,11,213,10,240,10,77,11,113,11,59,11,88,11,69,12,109,13, +10,14,42,14,74,14,123,14,147,14,158,14,166,14,148,14,144,14,224,14,119,15,27,16,152,16,182,16,130,16,119,16, +194,16,241,16,219,16,4,17,177,17,108,18,169,18,96,18,232,17,148,17,147,17,239,17,95,18,126,18,99,18,132,18, +229,18,21,19,235,18,149,18,68,18,64,18,165,18,252,18,205,18,86,18,36,18,75,18,114,18,81,18,10,18,246,17, +23,18,38,18,24,18,0,18,202,17,133,17,85,17,250,16,38,16,43,15,152,14,141,14,193,14,208,14,108,14,200,13, +133,13,197,13,240,13,139,13,213,12,61,12,228,11,187,11,165,11,112,11,253,10,116,10,245,9,110,9,233,8,135,8, +77,8,71,8,122,8,123,8,225,7,244,6,68,6,214,5,94,5,210,4,97,4,39,4,2,4,180,3,59,3,189,2, +61,2,198,1,112,1,11,1,106,0,211,255,126,255,41,255,173,254,52,254,186,253,13,253,35,252,56,251,182,250,214,250, +19,251,206,250,60,250,202,249,75,249,140,248,217,247,87,247,214,246,94,246,7,246,157,245,10,245,161,244,147,244,154,244, +114,244,50,244,242,243,158,243,52,243,220,242,148,242,83,242,47,242,25,242,213,241,106,241,21,241,225,240,204,240,239,240, +53,241,89,241,69,241,10,241,184,240,107,240,64,240,62,240,83,240,79,240,19,240,212,239,210,239,246,239,12,240,25,240, +34,240,20,240,251,239,11,240,88,240,158,240,123,240,16,240,240,239,60,240,113,240,72,240,14,240,29,240,125,240,246,240, +83,241,160,241,232,241,238,241,170,241,130,241,163,241,217,241,32,242,126,242,187,242,201,242,218,242,251,242,52,243,143,243, +203,243,188,243,182,243,250,243,91,244,191,244,24,245,27,245,191,244,138,244,211,244,103,245,0,246,101,246,114,246,97,246, +178,246,95,247,208,247,194,247,162,247,221,247,108,248,8,249,105,249,136,249,189,249,51,250,110,250,41,250,9,250,157,250, +103,251,196,251,218,251,28,252,160,252,30,253,72,253,58,253,80,253,158,253,2,254,140,254,36,255,119,255,144,255,199,255, +24,0,87,0,153,0,228,0,10,1,20,1,43,1,82,1,130,1,185,1,237,1,27,2,65,2,104,2,186,2,69,3, +190,3,233,3,230,3,242,3,51,4,169,4,35,5,118,5,178,5,208,5,179,5,144,5,166,5,207,5,255,5,119,6, +26,7,92,7,48,7,32,7,115,7,216,7,247,7,230,7,238,7,31,8,61,8,24,8,211,7,213,7,67,8,165,8, +119,8,244,7,182,7,233,7,71,8,138,8,165,8,177,8,178,8,126,8,20,8,196,7,187,7,223,7,41,8,121,8, +102,8,207,7,38,7,211,6,189,6,160,6,113,6,81,6,73,6,45,6,216,5,94,5,240,4,195,4,225,4,10,5, +8,5,11,5,62,5,108,5,96,5,30,5,188,4,94,4,19,4,163,3,0,3,135,2,94,2,73,2,54,2,33,2, +198,1,51,1,212,0,188,0,187,0,232,0,56,1,43,1,125,0,133,255,191,254,119,254,150,254,144,254,29,254,199,253, +16,254,148,254,157,254,8,254,52,253,167,252,180,252,6,253,234,252,87,252,247,251,236,251,164,251,247,250,92,250,68,250, +206,250,126,251,105,251,142,250,40,250,145,250,129,250,99,249,74,248,10,248,83,248,213,248,121,249,209,249,117,249,166,248, +236,247,147,247,158,247,214,247,248,247,231,247,165,247,68,247,12,247,75,247,204,247,185,247,177,246,159,245,171,245,137,246, +2,247,214,246,190,246,243,246,1,247,204,246,173,246,194,246,201,246,152,246,103,246,164,246,111,247,49,248,54,248,179,247, +131,247,191,247,171,247,56,247,49,247,163,247,155,247,203,246,2,246,246,245,172,246,197,247,162,248,188,248,82,248,21,248, +45,248,61,248,14,248,174,247,78,247,96,247,16,248,169,248,104,248,180,247,114,247,188,247,15,248,57,248,97,248,175,248, +24,249,78,249,54,249,68,249,171,249,210,249,119,249,62,249,106,249,130,249,132,249,228,249,116,250,156,250,65,250,187,249, +139,249,27,250,43,251,245,251,61,252,87,252,50,252,156,251,34,251,102,251,14,252,110,252,148,252,215,252,22,253,31,253, +18,253,7,253,251,252,24,253,119,253,214,253,8,254,77,254,220,254,146,255,68,0,241,0,119,1,162,1,171,1,254,1, +117,2,138,2,89,2,121,2,226,2,9,3,223,2,204,2,14,3,174,3,126,4,252,4,236,4,196,4,254,4,126,5, +241,5,65,6,144,6,0,7,138,7,235,7,239,7,181,7,164,7,3,8,147,8,233,8,30,9,141,9,40,10,167,10, +10,11,84,11,119,11,161,11,238,11,23,12,27,12,108,12,21,13,171,13,21,14,106,14,103,14,11,14,15,14,212,14, +184,15,55,16,150,16,253,16,22,17,240,16,18,17,137,17,0,18,104,18,189,18,218,18,236,18,47,19,100,19,99,19, +121,19,171,19,157,19,107,19,115,19,143,19,124,19,131,19,249,19,132,20,144,20,49,20,250,19,29,20,83,20,125,20, +167,20,183,20,149,20,73,20,230,19,153,19,139,19,145,19,125,19,120,19,133,19,89,19,30,19,67,19,143,19,116,19, +235,18,79,18,203,17,92,17,2,17,217,16,252,16,30,17,214,16,68,16,199,15,97,15,245,14,151,14,81,14,43,14, +67,14,105,14,38,14,100,13,153,12,54,12,44,12,23,12,195,11,89,11,5,11,185,10,91,10,207,9,11,9,83,8, +246,7,203,7,121,7,0,7,174,6,163,6,150,6,44,6,121,5,226,4,136,4,57,4,193,3,0,3,44,2,192,1, +177,1,101,1,188,0,28,0,135,255,214,254,61,254,214,253,112,253,9,253,151,252,230,251,28,251,152,250,74,250,232,249, +103,249,213,248,51,248,136,247,240,246,163,246,158,246,103,246,187,245,14,245,180,244,114,244,53,244,28,244,244,243,150,243, +66,243,16,243,205,242,112,242,23,242,199,241,130,241,76,241,37,241,15,241,10,241,13,241,0,241,191,240,96,240,69,240, +119,240,131,240,65,240,13,240,41,240,129,240,216,240,220,240,122,240,242,239,118,239,30,239,32,239,111,239,166,239,165,239, +157,239,167,239,180,239,172,239,143,239,155,239,229,239,3,240,210,239,196,239,4,240,64,240,101,240,153,240,197,240,207,240, +204,240,202,240,226,240,32,241,78,241,84,241,128,241,254,241,129,242,148,242,47,242,225,241,53,242,238,242,122,243,191,243, +206,243,162,243,145,243,222,243,31,244,22,244,47,244,161,244,26,245,108,245,156,245,177,245,228,245,89,246,205,246,5,247, +24,247,45,247,111,247,245,247,134,248,216,248,252,248,52,249,140,249,212,249,229,249,224,249,1,250,83,250,200,250,89,251, +196,251,213,251,213,251,25,252,134,252,244,252,101,253,192,253,252,253,58,254,128,254,195,254,13,255,72,255,89,255,100,255, +157,255,249,255,83,0,139,0,167,0,216,0,6,1,241,0,220,0,43,1,155,1,222,1,54,2,171,2,231,2,1,3, +63,3,148,3,244,3,98,4,155,4,158,4,218,4,68,5,88,5,36,5,45,5,127,5,198,5,2,6,103,6,218,6, +27,7,59,7,109,7,150,7,154,7,166,7,173,7,130,7,117,7,220,7,75,8,79,8,32,8,239,7,163,7,136,7, +235,7,113,8,177,8,222,8,36,9,60,9,253,8,165,8,96,8,27,8,224,7,222,7,255,7,0,8,245,7,249,7, +213,7,126,7,69,7,39,7,227,6,167,6,170,6,175,6,143,6,118,6,97,6,44,6,242,5,196,5,140,5,85,5, +76,5,133,5,210,5,214,5,104,5,213,4,88,4,222,3,137,3,153,3,213,3,221,3,174,3,101,3,6,3,163,2, +61,2,192,1,88,1,73,1,117,1,147,1,149,1,104,1,225,0,43,0,195,255,188,255,166,255,80,255,8,255,237,254, +221,254,231,254,16,255,8,255,181,254,93,254,245,253,85,253,238,252,18,253,33,253,155,252,8,252,220,251,200,251,162,251, +175,251,224,251,218,251,149,251,62,251,222,250,139,250,114,250,125,250,113,250,75,250,10,250,167,249,141,249,30,250,160,250, +10,250,213,248,86,248,200,248,83,249,94,249,222,248,35,248,190,247,220,247,14,248,14,248,15,248,30,248,23,248,27,248, +81,248,138,248,142,248,103,248,43,248,217,247,139,247,98,247,84,247,68,247,72,247,136,247,240,247,43,248,38,248,44,248, +101,248,142,248,99,248,2,248,183,247,172,247,198,247,170,247,27,247,129,246,150,246,102,247,48,248,77,248,211,247,70,247, +15,247,39,247,80,247,128,247,195,247,220,247,171,247,130,247,150,247,183,247,213,247,254,247,11,248,0,248,48,248,157,248, +224,248,218,248,162,248,46,248,164,247,101,247,128,247,200,247,82,248,36,249,205,249,248,249,227,249,200,249,146,249,91,249, +108,249,178,249,245,249,71,250,157,250,177,250,155,250,168,250,158,250,84,250,72,250,194,250,60,251,96,251,121,251,170,251, +188,251,142,251,50,251,226,250,1,251,171,251,98,252,190,252,21,253,208,253,154,254,226,254,191,254,184,254,7,255,161,255, +95,0,223,0,246,0,14,1,97,1,126,1,53,1,18,1,118,1,48,2,239,2,121,3,169,3,154,3,135,3,151,3, +223,3,73,4,175,4,37,5,191,5,89,6,230,6,108,7,164,7,109,7,49,7,69,7,143,7,12,8,205,8,147,9, +34,10,126,10,161,10,132,10,122,10,211,10,118,11,18,12,136,12,233,12,57,13,94,13,100,13,129,13,211,13,80,14, +219,14,70,15,135,15,202,15,12,16,20,16,255,15,45,16,183,16,102,17,237,17,15,18,247,17,46,18,207,18,76,19, +57,19,198,18,113,18,133,18,215,18,30,19,80,19,101,19,65,19,26,19,40,19,64,19,90,19,175,19,1,20,229,19, +153,19,136,19,173,19,249,19,93,20,132,20,90,20,35,20,235,19,165,19,137,19,133,19,71,19,247,18,0,19,71,19, +107,19,73,19,227,18,76,18,207,17,181,17,210,17,172,17,67,17,9,17,244,16,133,16,228,15,162,15,149,15,65,15, +195,14,92,14,6,14,217,13,199,13,108,13,221,12,168,12,178,12,87,12,160,11,27,11,214,10,122,10,8,10,195,9, +132,9,244,8,62,8,183,7,63,7,185,6,105,6,70,6,251,5,167,5,102,5,230,4,74,4,25,4,9,4,143,3, +246,2,145,2,12,2,95,1,250,0,205,0,84,0,99,255,59,254,75,253,227,252,211,252,151,252,249,251,84,251,16,251, +240,250,95,250,117,249,222,248,186,248,157,248,111,248,29,248,90,247,87,246,162,245,69,245,236,244,137,244,48,244,7,244, +45,244,66,244,181,243,180,242,239,241,164,241,161,241,174,241,172,241,181,241,230,241,6,242,208,241,78,241,180,240,53,240, +6,240,26,240,39,240,28,240,45,240,95,240,87,240,203,239,13,239,205,238,52,239,194,239,5,240,235,239,177,239,192,239, +10,240,242,239,99,239,7,239,33,239,85,239,115,239,123,239,89,239,39,239,20,239,40,239,110,239,214,239,32,240,118,240, +38,241,205,241,223,241,157,241,115,241,96,241,117,241,200,241,23,242,67,242,145,242,6,243,83,243,72,243,235,242,128,242, +121,242,240,242,126,243,204,243,232,243,254,243,38,244,92,244,160,244,244,244,70,245,137,245,224,245,91,246,200,246,0,247, +4,247,235,246,239,246,64,247,171,247,237,247,35,248,130,248,248,248,90,249,155,249,208,249,28,250,130,250,233,250,87,251, +192,251,3,252,67,252,162,252,204,252,154,252,148,252,17,253,190,253,84,254,193,254,231,254,241,254,71,255,207,255,18,0, +28,0,91,0,215,0,51,1,86,1,114,1,138,1,120,1,92,1,126,1,206,1,31,2,113,2,177,2,207,2,9,3, +121,3,219,3,45,4,181,4,82,5,178,5,222,5,230,5,215,5,13,6,156,6,243,6,225,6,241,6,86,7,168,7, +198,7,224,7,240,7,226,7,209,7,213,7,233,7,16,8,78,8,140,8,189,8,224,8,232,8,212,8,204,8,227,8, +242,8,227,8,228,8,21,9,86,9,115,9,85,9,7,9,199,8,193,8,214,8,217,8,200,8,180,8,176,8,188,8, +178,8,116,8,27,8,197,7,118,7,56,7,254,6,160,6,73,6,93,6,188,6,207,6,104,6,205,5,75,5,19,5, +44,5,91,5,123,5,148,5,128,5,19,5,143,4,68,4,1,4,124,3,235,2,169,2,166,2,150,2,90,2,3,2, +160,1,58,1,214,0,112,0,7,0,179,255,148,255,171,255,216,255,234,255,155,255,209,254,248,253,176,253,237,253,1,254, +172,253,101,253,105,253,115,253,81,253,4,253,122,252,204,251,90,251,68,251,69,251,27,251,196,250,97,250,48,250,63,250, +49,250,182,249,50,249,58,249,161,249,173,249,82,249,62,249,138,249,109,249,148,248,192,247,169,247,23,248,83,248,250,247, +100,247,57,247,136,247,176,247,100,247,31,247,64,247,119,247,71,247,153,246,187,245,76,245,205,245,212,246,67,247,188,246, +46,246,109,246,38,247,148,247,92,247,151,246,214,245,205,245,99,246,199,246,195,246,231,246,86,247,149,247,142,247,164,247, +233,247,9,248,230,247,193,247,203,247,233,247,242,247,204,247,106,247,11,247,5,247,54,247,62,247,64,247,131,247,211,247, +248,247,27,248,70,248,101,248,148,248,200,248,184,248,108,248,46,248,32,248,92,248,228,248,84,249,71,249,238,248,176,248, +170,248,179,248,171,248,179,248,6,249,133,249,233,249,41,250,71,250,22,250,182,249,160,249,250,249,128,250,248,250,74,251, +118,251,152,251,161,251,101,251,18,251,27,251,123,251,171,251,156,251,229,251,168,252,33,253,226,252,113,252,74,252,93,252, +165,252,43,253,176,253,4,254,39,254,4,254,189,253,184,253,240,253,36,254,143,254,95,255,37,0,145,0,210,0,22,1, +115,1,241,1,83,2,121,2,173,2,17,3,107,3,160,3,173,3,125,3,65,3,74,3,152,3,8,4,135,4,247,4, +83,5,180,5,5,6,21,6,10,6,63,6,205,6,106,7,195,7,241,7,68,8,170,8,213,8,219,8,249,8,52,9, +148,9,17,10,96,10,121,10,184,10,51,11,173,11,20,12,92,12,112,12,129,12,187,12,245,12,36,13,133,13,26,14, +157,14,232,14,21,15,75,15,147,15,207,15,246,15,19,16,38,16,78,16,183,16,46,17,106,17,157,17,1,18,87,18, +124,18,172,18,255,18,62,19,61,19,20,19,248,18,229,18,187,18,163,18,206,18,237,18,189,18,136,18,133,18,162,18, +239,18,77,19,80,19,38,19,78,19,134,19,115,19,120,19,187,19,187,19,86,19,227,18,120,18,31,18,7,18,28,18, +23,18,236,17,171,17,107,17,78,17,71,17,32,17,201,16,102,16,18,16,195,15,94,15,6,15,2,15,55,15,46,15, +194,14,50,14,169,13,62,13,10,13,234,12,156,12,41,12,221,11,209,11,170,11,16,11,58,10,160,9,86,9,75,9, +121,9,123,9,252,8,96,8,244,7,87,7,134,6,10,6,200,5,70,5,183,4,122,4,89,4,19,4,193,3,104,3, +231,2,73,2,206,1,165,1,159,1,85,1,178,0,245,255,65,255,140,254,200,253,236,252,43,252,198,251,131,251,11,251, +137,250,41,250,183,249,57,249,227,248,130,248,226,247,90,247,48,247,42,247,245,246,115,246,187,245,24,245,178,244,104,244, +28,244,204,243,115,243,32,243,250,242,246,242,212,242,103,242,209,241,115,241,123,241,156,241,118,241,39,241,14,241,69,241, +128,241,97,241,233,240,119,240,62,240,37,240,31,240,36,240,11,240,222,239,212,239,224,239,214,239,197,239,188,239,172,239, +171,239,219,239,21,240,35,240,255,239,199,239,144,239,109,239,123,239,204,239,46,240,88,240,70,240,23,240,211,239,174,239, +238,239,89,240,142,240,188,240,41,241,164,241,7,242,99,242,135,242,73,242,248,241,237,241,33,242,122,242,221,242,31,243, +69,243,115,243,148,243,128,243,100,243,143,243,11,244,139,244,210,244,3,245,94,245,196,245,238,245,243,245,14,246,51,246, +83,246,176,246,101,247,5,248,34,248,244,247,7,248,127,248,0,249,55,249,71,249,133,249,5,250,144,250,248,250,57,251, +92,251,116,251,172,251,17,252,116,252,192,252,19,253,96,253,133,253,142,253,168,253,239,253,92,254,188,254,227,254,6,255, +110,255,247,255,79,0,124,0,168,0,231,0,61,1,118,1,88,1,49,1,121,1,246,1,46,2,85,2,191,2,34,3, +79,3,147,3,240,3,13,4,11,4,73,4,178,4,13,5,112,5,220,5,37,6,104,6,205,6,19,7,0,7,206,6, +207,6,11,7,115,7,244,7,91,8,122,8,98,8,62,8,32,8,25,8,64,8,133,8,205,8,16,9,56,9,28,9, +210,8,172,8,190,8,225,8,0,9,21,9,24,9,53,9,132,9,182,9,146,9,88,9,51,9,246,8,159,8,101,8, +73,8,59,8,80,8,135,8,164,8,106,8,237,7,143,7,157,7,206,7,170,7,62,7,244,6,231,6,232,6,214,6, +154,6,34,6,156,5,72,5,39,5,11,5,238,4,231,4,241,4,238,4,197,4,115,4,25,4,233,3,208,3,142,3, +53,3,250,2,176,2,58,2,240,1,247,1,238,1,157,1,33,1,155,0,68,0,56,0,21,0,143,255,6,255,219,254, +227,254,237,254,253,254,244,254,176,254,76,254,6,254,5,254,13,254,156,253,169,252,228,251,215,251,84,252,174,252,52,252, +255,250,20,250,21,250,126,250,170,250,152,250,114,250,91,250,121,250,135,250,19,250,136,249,177,249,53,250,243,249,225,248, +31,248,69,248,192,248,236,248,171,248,38,248,221,247,76,248,238,248,209,248,54,248,5,248,44,248,31,248,253,247,250,247, +248,247,9,248,12,248,134,247,197,246,225,246,227,247,131,248,25,248,100,247,54,247,135,247,237,247,35,248,2,248,149,247, +75,247,110,247,183,247,245,247,64,248,101,248,60,248,48,248,109,248,122,248,97,248,142,248,158,248,17,248,105,247,67,247, +112,247,169,247,246,247,73,248,137,248,199,248,254,248,24,249,18,249,242,248,213,248,218,248,245,248,7,249,244,248,164,248, +82,248,97,248,179,248,226,248,30,249,193,249,115,250,137,250,236,249,65,249,77,249,0,250,132,250,124,250,114,250,193,250, +33,251,92,251,111,251,56,251,185,250,70,250,49,250,127,250,232,250,39,251,87,251,174,251,11,252,39,252,9,252,9,252, +122,252,44,253,111,253,5,253,137,252,131,252,209,252,36,253,92,253,134,253,200,253,12,254,14,254,240,253,10,254,70,254, +129,254,238,254,148,255,59,0,209,0,85,1,173,1,209,1,186,1,130,1,167,1,79,2,202,2,174,2,127,2,168,2, +252,2,46,3,28,3,7,3,124,3,109,4,19,5,50,5,94,5,209,5,50,6,85,6,101,6,133,6,187,6,13,7, +126,7,237,7,27,8,4,8,241,7,4,8,37,8,102,8,234,8,154,9,62,10,164,10,186,10,192,10,5,11,112,11, +190,11,241,11,53,12,131,12,160,12,122,12,116,12,240,12,167,13,17,14,40,14,31,14,10,14,26,14,110,14,209,14, +43,15,163,15,23,16,97,16,165,16,205,16,159,16,120,16,198,16,40,17,17,17,174,16,121,16,165,16,14,17,102,17, +118,17,101,17,118,17,167,17,187,17,164,17,159,17,205,17,0,18,7,18,236,17,197,17,179,17,212,17,245,17,207,17, +155,17,146,17,87,17,206,16,119,16,119,16,117,16,126,16,184,16,192,16,95,16,248,15,192,15,134,15,67,15,11,15, +203,14,131,14,64,14,235,13,137,13,93,13,112,13,103,13,12,13,141,12,32,12,204,11,134,11,66,11,245,10,174,10, +127,10,79,10,16,10,212,9,122,9,197,8,234,7,104,7,68,7,24,7,184,6,67,6,222,5,151,5,83,5,248,4, +152,4,59,4,193,3,60,3,236,2,203,2,155,2,67,2,188,1,11,1,99,0,231,255,119,255,253,254,134,254,252,253, +93,253,220,252,117,252,234,251,70,251,215,250,159,250,90,250,243,249,153,249,97,249,25,249,125,248,172,247,29,247,252,246, +230,246,150,246,49,246,207,245,78,245,193,244,105,244,65,244,15,244,201,243,136,243,86,243,53,243,31,243,238,242,131,242, +253,241,159,241,127,241,127,241,141,241,175,241,211,241,210,241,153,241,64,241,232,240,178,240,172,240,190,240,204,240,209,240, +212,240,208,240,181,240,108,240,1,240,194,239,220,239,33,240,89,240,136,240,176,240,177,240,136,240,91,240,86,240,114,240, +120,240,82,240,67,240,142,240,4,241,68,241,56,241,28,241,36,241,85,241,156,241,228,241,30,242,78,242,134,242,185,242, +184,242,119,242,54,242,75,242,204,242,101,243,171,243,168,243,188,243,252,243,40,244,69,244,110,244,142,244,177,244,12,245, +139,245,247,245,77,246,131,246,139,246,173,246,45,247,184,247,223,247,203,247,0,248,153,248,31,249,52,249,24,249,61,249, +151,249,224,249,22,250,88,250,193,250,82,251,188,251,185,251,155,251,204,251,45,252,148,252,31,253,177,253,247,253,253,253, +4,254,35,254,77,254,114,254,164,254,19,255,169,255,0,0,21,0,72,0,172,0,255,0,43,1,73,1,96,1,122,1, +174,1,248,1,63,2,135,2,234,2,77,3,126,3,136,3,164,3,213,3,30,4,157,4,35,5,81,5,66,5,84,5, +139,5,209,5,35,6,94,6,118,6,159,6,212,6,242,6,41,7,132,7,162,7,134,7,154,7,206,7,190,7,109,7, +57,7,109,7,250,7,115,8,142,8,117,8,81,8,33,8,20,8,69,8,118,8,141,8,164,8,161,8,120,8,106,8, +135,8,146,8,129,8,126,8,136,8,133,8,126,8,134,8,129,8,60,8,203,7,119,7,62,7,243,6,204,6,255,6, +57,7,51,7,11,7,209,6,138,6,114,6,145,6,153,6,123,6,87,6,34,6,222,5,183,5,145,5,48,5,169,4, +76,4,68,4,111,4,135,4,109,4,57,4,248,3,167,3,77,3,227,2,129,2,114,2,178,2,201,2,134,2,46,2, +237,1,183,1,134,1,77,1,244,0,143,0,79,0,88,0,127,0,110,0,31,0,214,255,140,255,35,255,222,254,207,254, +165,254,110,254,101,254,74,254,8,254,15,254,50,254,196,253,243,252,118,252,85,252,65,252,63,252,90,252,125,252,158,252, +145,252,53,252,208,251,165,251,153,251,158,251,197,251,206,251,105,251,245,250,21,251,160,251,190,251,44,251,143,250,110,250, +147,250,135,250,18,250,107,249,47,249,175,249,90,250,161,250,183,250,222,250,207,250,115,250,12,250,157,249,3,249,157,248, +233,248,156,249,248,249,236,249,2,250,58,250,5,250,92,249,208,248,178,248,254,248,132,249,193,249,135,249,110,249,163,249, +125,249,7,249,43,249,217,249,9,250,159,249,92,249,98,249,59,249,230,248,180,248,180,248,220,248,66,249,198,249,8,250, +255,249,11,250,68,250,84,250,21,250,175,249,108,249,182,249,127,250,209,250,48,250,168,249,16,250,137,250,44,250,160,249, +191,249,45,250,52,250,208,249,124,249,182,249,138,250,77,251,86,251,245,250,239,250,37,251,250,250,141,250,114,250,173,250, +249,250,88,251,154,251,91,251,228,250,227,250,50,251,44,251,231,250,244,250,91,251,202,251,41,252,88,252,52,252,9,252, +54,252,120,252,105,252,78,252,143,252,229,252,246,252,2,253,52,253,66,253,60,253,141,253,29,254,108,254,133,254,219,254, +127,255,36,0,128,0,117,0,66,0,92,0,196,0,253,0,221,0,210,0,42,1,164,1,222,1,223,1,246,1,75,2, +195,2,43,3,85,3,55,3,32,3,103,3,223,3,48,4,122,4,6,5,158,5,245,5,20,6,18,6,246,5,248,5, +49,6,92,6,94,6,122,6,189,6,1,7,101,7,12,8,180,8,9,9,247,8,169,8,127,8,203,8,92,9,201,9, +29,10,158,10,45,11,104,11,57,11,248,10,2,11,88,11,171,11,217,11,14,12,106,12,213,12,56,13,131,13,154,13, +137,13,137,13,177,13,225,13,21,14,108,14,217,14,36,15,52,15,27,15,3,15,31,15,102,15,119,15,69,15,83,15, +206,15,31,16,224,15,120,15,104,15,182,15,43,16,142,16,176,16,153,16,133,16,149,16,142,16,41,16,144,15,71,15, +104,15,135,15,105,15,55,15,8,15,222,14,201,14,164,14,65,14,222,13,210,13,251,13,12,14,6,14,244,13,186,13, +86,13,251,12,188,12,123,12,65,12,53,12,39,12,192,11,55,11,6,11,4,11,194,10,85,10,6,10,208,9,176,9, +156,9,73,9,194,8,126,8,103,8,248,7,87,7,8,7,236,6,180,6,135,6,106,6,246,5,53,5,177,4,134,4, +66,4,199,3,94,3,23,3,197,2,97,2,234,1,87,1,226,0,190,0,146,0,8,0,101,255,248,254,139,254,238,253, +100,253,15,253,175,252,25,252,139,251,78,251,69,251,20,251,164,250,36,250,179,249,82,249,249,248,162,248,94,248,56,248, +230,247,60,247,174,246,144,246,134,246,65,246,235,245,153,245,64,245,10,245,237,244,161,244,62,244,19,244,7,244,222,243, +175,243,153,243,144,243,132,243,103,243,39,243,219,242,174,242,176,242,206,242,232,242,233,242,223,242,214,242,183,242,119,242, +40,242,217,241,167,241,193,241,25,242,85,242,75,242,65,242,97,242,89,242,247,241,164,241,195,241,21,242,69,242,95,242, +114,242,104,242,96,242,127,242,154,242,136,242,103,242,99,242,147,242,0,243,122,243,176,243,150,243,121,243,152,243,202,243, +199,243,158,243,162,243,232,243,79,244,181,244,221,244,169,244,138,244,236,244,122,245,205,245,19,246,102,246,136,246,139,246, +193,246,15,247,53,247,92,247,188,247,48,248,143,248,224,248,33,249,68,249,103,249,175,249,242,249,253,249,14,250,102,250, +202,250,251,250,40,251,104,251,135,251,155,251,237,251,96,252,175,252,246,252,94,253,196,253,7,254,61,254,111,254,136,254, +142,254,150,254,154,254,163,254,221,254,75,255,167,255,208,255,11,0,143,0,25,1,68,1,25,1,254,0,38,1,92,1, +131,1,209,1,80,2,179,2,230,2,22,3,70,3,111,3,176,3,250,3,43,4,100,4,178,4,215,4,204,4,206,4, +219,4,221,4,250,4,60,5,128,5,205,5,41,6,101,6,112,6,114,6,117,6,106,6,100,6,114,6,128,6,125,6, +118,6,130,6,175,6,231,6,249,6,216,6,187,6,212,6,4,7,0,7,211,6,204,6,246,6,5,7,212,6,155,6, +142,6,139,6,103,6,77,6,114,6,168,6,178,6,177,6,174,6,102,6,229,5,155,5,155,5,164,5,165,5,156,5, +112,5,67,5,56,5,35,5,233,4,181,4,160,4,149,4,150,4,178,4,225,4,250,4,194,4,53,4,167,3,82,3, +23,3,226,2,196,2,199,2,229,2,13,3,19,3,216,2,97,2,199,1,73,1,49,1,106,1,153,1,140,1,75,1, +6,1,230,0,183,0,26,0,76,255,247,254,44,255,103,255,112,255,124,255,135,255,45,255,72,254,101,253,48,253,141,253, +192,253,99,253,210,252,180,252,41,253,132,253,32,253,90,252,9,252,76,252,156,252,157,252,77,252,222,251,143,251,121,251, +116,251,81,251,41,251,85,251,228,251,51,252,187,251,239,250,153,250,201,250,253,250,196,250,36,250,178,249,224,249,71,250, +101,250,114,250,160,250,140,250,18,250,172,249,160,249,169,249,128,249,87,249,150,249,40,250,125,250,115,250,102,250,76,250, +216,249,73,249,9,249,15,249,27,249,4,249,205,248,197,248,17,249,72,249,50,249,65,249,176,249,249,249,181,249,68,249, +67,249,181,249,9,250,232,249,153,249,110,249,107,249,143,249,208,249,218,249,127,249,35,249,68,249,194,249,243,249,131,249, +249,248,17,249,202,249,149,250,255,250,235,250,165,250,153,250,179,250,147,250,74,250,35,250,28,250,57,250,144,250,220,250, +212,250,155,250,102,250,77,250,105,250,163,250,226,250,86,251,252,251,98,252,117,252,135,252,117,252,248,251,69,251,183,250, +117,250,158,250,33,251,180,251,50,252,145,252,155,252,60,252,195,251,155,251,241,251,132,252,229,252,12,253,61,253,118,253, +120,253,55,253,213,252,137,252,148,252,252,252,121,253,210,253,5,254,45,254,101,254,152,254,175,254,225,254,87,255,223,255, +97,0,234,0,45,1,234,0,143,0,143,0,212,0,46,1,154,1,251,1,65,2,136,2,210,2,4,3,25,3,25,3, +18,3,46,3,135,3,19,4,161,4,254,4,50,5,97,5,125,5,119,5,114,5,110,5,89,5,134,5,36,6,185,6, +224,6,205,6,196,6,213,6,252,6,21,7,32,7,133,7,91,8,26,9,108,9,116,9,82,9,38,9,42,9,100,9, +181,9,13,10,88,10,145,10,204,10,244,10,231,10,229,10,43,11,151,11,15,12,155,12,23,13,97,13,152,13,199,13, +204,13,166,13,125,13,126,13,206,13,89,14,200,14,248,14,43,15,148,15,238,15,208,15,93,15,35,15,90,15,191,15, +8,16,27,16,24,16,78,16,185,16,226,16,170,16,126,16,127,16,116,16,101,16,105,16,104,16,99,16,94,16,44,16, +219,15,181,15,180,15,165,15,145,15,128,15,99,15,84,15,93,15,70,15,252,14,191,14,179,14,171,14,111,14,3,14, +167,13,118,13,94,13,89,13,87,13,33,13,196,12,152,12,155,12,131,12,84,12,42,12,234,11,163,11,127,11,74,11, +213,10,112,10,79,10,32,10,181,9,83,9,26,9,212,8,125,8,81,8,74,8,22,8,167,7,61,7,228,6,117,6, +1,6,167,5,97,5,34,5,221,4,117,4,251,3,153,3,53,3,177,2,49,2,192,1,35,1,93,0,194,255,121,255, +94,255,66,255,13,255,183,254,76,254,218,253,99,253,218,252,86,252,13,252,240,251,168,251,46,251,196,250,97,250,221,249, +100,249,10,249,150,248,24,248,225,247,201,247,133,247,62,247,43,247,20,247,201,246,103,246,2,246,152,245,69,245,43,245, +38,245,245,244,166,244,116,244,75,244,1,244,191,243,160,243,107,243,30,243,12,243,50,243,61,243,49,243,55,243,49,243, +4,243,215,242,174,242,112,242,59,242,42,242,0,242,169,241,131,241,183,241,229,241,222,241,217,241,204,241,133,241,83,241, +128,241,173,241,150,241,161,241,6,242,90,242,87,242,45,242,17,242,12,242,17,242,9,242,248,241,4,242,57,242,109,242, +106,242,54,242,44,242,126,242,203,242,204,242,212,242,29,243,92,243,143,243,250,243,111,244,149,244,159,244,201,244,233,244, +241,244,20,245,75,245,107,245,152,245,247,245,73,246,94,246,121,246,215,246,63,247,120,247,156,247,194,247,231,247,41,248, +145,248,231,248,11,249,18,249,22,249,49,249,111,249,166,249,187,249,233,249,81,250,187,250,5,251,67,251,130,251,197,251, +5,252,44,252,72,252,128,252,195,252,236,252,5,253,34,253,77,253,161,253,32,254,139,254,171,254,139,254,111,254,154,254, +4,255,107,255,188,255,6,0,67,0,121,0,190,0,245,0,6,1,37,1,127,1,2,2,135,2,213,2,202,2,176,2, +220,2,34,3,52,3,29,3,30,3,94,3,204,3,32,4,60,4,94,4,162,4,218,4,238,4,234,4,218,4,238,4, +72,5,169,5,194,5,151,5,85,5,39,5,59,5,131,5,184,5,198,5,227,5,48,6,119,6,114,6,46,6,246,5, +226,5,213,5,216,5,249,5,27,6,27,6,245,5,207,5,237,5,45,6,20,6,188,5,208,5,75,6,120,6,53,6, +248,5,243,5,3,6,243,5,166,5,106,5,150,5,227,5,231,5,189,5,156,5,124,5,92,5,75,5,63,5,66,5, +69,5,34,5,247,4,247,4,236,4,156,4,77,4,73,4,115,4,127,4,79,4,13,4,239,3,217,3,143,3,26,3, +158,2,64,2,49,2,101,2,118,2,79,2,50,2,14,2,180,1,93,1,55,1,10,1,187,0,129,0,114,0,91,0, +40,0,1,0,244,255,192,255,82,255,254,254,217,254,142,254,22,254,203,253,214,253,49,254,157,254,143,254,244,253,154,253, +233,253,53,254,221,253,20,253,127,252,168,252,92,253,169,253,34,253,114,252,57,252,77,252,67,252,243,251,128,251,74,251, +153,251,65,252,184,252,120,252,163,251,27,251,95,251,224,251,249,251,178,251,95,251,73,251,109,251,76,251,193,250,130,250, +209,250,211,250,44,250,182,249,240,249,75,250,61,250,245,249,216,249,237,249,9,250,45,250,91,250,114,250,119,250,118,250, +55,250,183,249,126,249,185,249,239,249,218,249,148,249,48,249,17,249,160,249,84,250,75,250,193,249,165,249,33,250,156,250, +165,250,81,250,253,249,241,249,45,250,113,250,103,250,1,250,161,249,158,249,253,249,152,250,23,251,14,251,167,250,122,250, +138,250,104,250,14,250,181,249,123,249,138,249,232,249,77,250,166,250,10,251,68,251,46,251,247,250,167,250,54,250,241,249, +248,249,16,250,55,250,141,250,219,250,243,250,237,250,224,250,224,250,237,250,211,250,149,250,174,250,65,251,184,251,157,251, +37,251,212,250,252,250,102,251,141,251,96,251,81,251,160,251,16,252,77,252,61,252,1,252,223,251,51,252,26,253,14,254, +96,254,48,254,39,254,71,254,27,254,207,253,236,253,124,254,43,255,175,255,233,255,7,0,59,0,87,0,50,0,255,255, +247,255,44,0,180,0,117,1,32,2,145,2,189,2,156,2,119,2,152,2,196,2,203,2,250,2,124,3,8,4,107,4, +173,4,199,4,176,4,144,4,176,4,31,5,141,5,197,5,8,6,128,6,223,6,254,6,9,7,30,7,75,7,153,7, +207,7,207,7,2,8,159,8,36,9,44,9,20,9,96,9,7,10,145,10,197,10,245,10,114,11,3,12,75,12,84,12, +89,12,126,12,210,12,51,13,113,13,150,13,200,13,0,14,51,14,106,14,147,14,171,14,232,14,85,15,162,15,185,15, +243,15,117,16,211,16,186,16,122,16,117,16,164,16,238,16,84,17,163,17,186,17,207,17,214,17,127,17,8,17,238,16, +252,16,223,16,221,16,22,17,37,17,6,17,30,17,90,17,85,17,26,17,236,16,191,16,105,16,16,16,228,15,196,15, +144,15,120,15,129,15,90,15,10,15,242,14,250,14,192,14,116,14,98,14,62,14,212,13,135,13,134,13,134,13,110,13, +76,13,232,12,58,12,187,11,161,11,119,11,252,10,133,10,81,10,55,10,19,10,224,9,126,9,4,9,199,8,193,8, +142,8,39,8,218,7,156,7,40,7,151,6,40,6,194,5,49,5,152,4,58,4,248,3,127,3,217,2,81,2,233,1, +118,1,7,1,175,0,94,0,19,0,208,255,100,255,199,254,48,254,160,253,0,253,145,252,130,252,130,252,59,252,199,251, +82,251,208,250,44,250,127,249,245,248,166,248,128,248,102,248,75,248,32,248,205,247,90,247,234,246,129,246,1,246,104,245, +250,244,235,244,14,245,12,245,196,244,88,244,0,244,224,243,214,243,155,243,49,243,230,242,232,242,22,243,41,243,249,242, +171,242,112,242,57,242,233,241,150,241,83,241,29,241,11,241,33,241,42,241,10,241,234,240,224,240,214,240,199,240,194,240, +203,240,217,240,232,240,243,240,247,240,252,240,25,241,63,241,63,241,33,241,36,241,62,241,59,241,57,241,95,241,123,241, +126,241,161,241,213,241,251,241,61,242,147,242,163,242,120,242,116,242,157,242,211,242,41,243,141,243,207,243,14,244,117,244, +206,244,217,244,176,244,141,244,138,244,180,244,13,245,117,245,209,245,47,246,160,246,241,246,241,246,209,246,222,246,26,247, +101,247,179,247,242,247,20,248,56,248,132,248,235,248,32,249,242,248,182,248,236,248,132,249,4,250,87,250,165,250,235,250, +47,251,130,251,188,251,190,251,179,251,185,251,215,251,37,252,126,252,171,252,218,252,58,253,140,253,159,253,163,253,204,253, +45,254,172,254,228,254,186,254,181,254,29,255,126,255,135,255,134,255,198,255,62,0,194,0,34,1,69,1,79,1,127,1, +217,1,2,2,204,1,156,1,221,1,97,2,201,2,20,3,79,3,123,3,182,3,2,4,44,4,56,4,79,4,98,4, +103,4,121,4,136,4,133,4,165,4,245,4,61,5,115,5,172,5,202,5,193,5,193,5,226,5,254,5,251,5,241,5, +243,5,240,5,220,5,211,5,219,5,217,5,225,5,253,5,248,5,221,5,8,6,77,6,50,6,235,5,248,5,53,6, +72,6,51,6,19,6,251,5,11,6,42,6,33,6,250,5,238,5,12,6,50,6,33,6,202,5,119,5,87,5,70,5, +50,5,47,5,56,5,92,5,170,5,209,5,143,5,53,5,2,5,205,4,149,4,148,4,190,4,222,4,216,4,138,4, +2,4,155,3,115,3,65,3,239,2,209,2,9,3,64,3,35,3,227,2,204,2,194,2,139,2,66,2,7,2,201,1, +148,1,125,1,88,1,1,1,157,0,79,0,25,0,246,255,211,255,182,255,221,255,64,0,97,0,252,255,129,255,112,255, +133,255,34,255,100,254,25,254,111,254,176,254,119,254,25,254,5,254,91,254,200,254,140,254,137,253,188,252,207,252,54,253, +80,253,30,253,212,252,201,252,70,253,193,253,126,253,218,252,177,252,246,252,28,253,30,253,65,253,100,253,31,253,99,252, +167,251,89,251,98,251,107,251,105,251,136,251,201,251,240,251,194,251,92,251,38,251,82,251,172,251,238,251,248,251,195,251, +111,251,48,251,18,251,2,251,5,251,64,251,166,251,207,251,118,251,238,250,167,250,125,250,24,250,171,249,208,249,184,250, +180,251,200,251,10,251,191,250,80,251,128,251,157,250,196,249,238,249,120,250,117,250,36,250,94,250,63,251,244,251,185,251, +206,250,19,250,235,249,239,249,204,249,214,249,89,250,227,250,241,250,221,250,29,251,75,251,255,250,168,250,148,250,89,250, +217,249,154,249,220,249,80,250,167,250,207,250,226,250,244,250,225,250,157,250,135,250,202,250,238,250,154,250,61,250,100,250, +224,250,1,251,145,250,36,250,84,250,232,250,57,251,60,251,126,251,32,252,128,252,27,252,67,251,183,250,208,250,87,251, +200,251,221,251,218,251,46,252,183,252,242,252,209,252,211,252,93,253,79,254,29,255,85,255,24,255,231,254,246,254,17,255, +246,254,176,254,173,254,62,255,4,0,115,0,165,0,232,0,19,1,251,0,201,0,143,0,122,0,242,0,223,1,144,2, +213,2,17,3,79,3,94,3,99,3,140,3,196,3,19,4,161,4,53,5,95,5,16,5,164,4,111,4,134,4,223,4, +100,5,247,5,135,6,16,7,124,7,172,7,154,7,109,7,108,7,200,7,90,8,198,8,243,8,34,9,124,9,212,9, +222,9,145,9,82,9,159,9,121,10,91,11,224,11,44,12,152,12,27,13,60,13,205,12,81,12,81,12,169,12,252,12, +70,13,163,13,247,13,37,14,45,14,29,14,12,14,23,14,79,14,176,14,36,15,142,15,220,15,3,16,247,15,200,15, +137,15,60,15,19,15,111,15,60,16,228,16,24,17,244,16,140,16,246,15,127,15,65,15,17,15,249,14,52,15,146,15, +174,15,142,15,120,15,100,15,34,15,215,14,199,14,217,14,205,14,180,14,176,14,154,14,68,14,212,13,132,13,78,13, +24,13,246,12,3,13,37,13,34,13,233,12,139,12,35,12,197,11,126,11,82,11,60,11,38,11,220,10,63,10,140,9, +27,9,230,8,171,8,109,8,95,8,122,8,127,8,71,8,226,7,112,7,4,7,165,6,76,6,235,5,123,5,12,5, +187,4,132,4,51,4,147,3,192,2,31,2,206,1,131,1,15,1,162,0,100,0,53,0,238,255,115,255,198,254,42,254, +219,253,163,253,70,253,242,252,203,252,156,252,80,252,20,252,199,251,39,251,101,250,215,249,103,249,234,248,127,248,58,248, +5,248,237,247,244,247,230,247,158,247,61,247,227,246,150,246,82,246,247,245,117,245,22,245,29,245,79,245,60,245,217,244, +116,244,73,244,81,244,92,244,78,244,60,244,62,244,67,244,42,244,245,243,187,243,131,243,57,243,212,242,128,242,104,242, +120,242,129,242,134,242,157,242,185,242,203,242,215,242,205,242,150,242,100,242,132,242,227,242,38,243,53,243,67,243,80,243, +51,243,4,243,249,242,7,243,24,243,68,243,134,243,179,243,190,243,195,243,194,243,177,243,166,243,190,243,248,243,61,244, +119,244,164,244,198,244,216,244,229,244,9,245,77,245,162,245,240,245,41,246,86,246,135,246,183,246,201,246,200,246,234,246, +83,247,211,247,33,248,58,248,103,248,178,248,213,248,192,248,172,248,175,248,198,248,7,249,96,249,147,249,169,249,214,249, +32,250,112,250,174,250,198,250,219,250,44,251,164,251,1,252,60,252,104,252,127,252,154,252,204,252,225,252,202,252,212,252, +30,253,103,253,136,253,153,253,178,253,217,253,11,254,50,254,64,254,76,254,131,254,241,254,102,255,161,255,159,255,148,255, +173,255,235,255,36,0,56,0,78,0,157,0,16,1,104,1,150,1,169,1,171,1,174,1,185,1,204,1,247,1,70,2, +150,2,189,2,191,2,200,2,253,2,63,3,67,3,24,3,28,3,92,3,144,3,160,3,177,3,220,3,38,4,117,4, +161,4,175,4,191,4,209,4,233,4,14,5,20,5,241,4,239,4,37,5,78,5,79,5,56,5,11,5,240,4,13,5, +44,5,26,5,15,5,43,5,64,5,78,5,112,5,125,5,89,5,61,5,80,5,119,5,149,5,170,5,179,5,165,5, +139,5,109,5,68,5,23,5,9,5,37,5,65,5,61,5,25,5,211,4,130,4,88,4,74,4,32,4,253,3,39,4, +117,4,143,4,98,4,5,4,163,3,116,3,120,3,118,3,87,3,63,3,73,3,92,3,64,3,229,2,132,2,85,2, +73,2,65,2,48,2,12,2,224,1,194,1,156,1,81,1,251,0,181,0,116,0,64,0,34,0,11,0,10,0,48,0, +72,0,38,0,237,255,183,255,140,255,143,255,157,255,96,255,5,255,252,254,254,254,121,254,174,253,107,253,219,253,76,254, +41,254,172,253,108,253,149,253,209,253,200,253,109,253,236,252,120,252,44,252,48,252,173,252,97,253,167,253,85,253,215,252, +109,252,2,252,174,251,177,251,251,251,36,252,235,251,165,251,225,251,107,252,80,252,79,251,120,250,180,250,124,251,185,251, +77,251,10,251,78,251,142,251,74,251,184,250,77,250,47,250,41,250,3,250,223,249,19,250,137,250,204,250,197,250,179,250, +183,250,241,250,114,251,184,251,53,251,78,250,220,249,251,249,41,250,13,250,191,249,191,249,102,250,49,251,71,251,183,250, +68,250,54,250,60,250,42,250,29,250,38,250,70,250,130,250,193,250,211,250,198,250,209,250,229,250,178,250,73,250,32,250, +90,250,192,250,53,251,149,251,130,251,250,250,145,250,157,250,186,250,138,250,56,250,3,250,246,249,41,250,160,250,234,250, +172,250,72,250,48,250,33,250,214,249,183,249,20,250,156,250,246,250,25,251,16,251,13,251,68,251,120,251,76,251,244,250, +223,250,252,250,248,250,195,250,141,250,130,250,168,250,222,250,15,251,91,251,214,251,66,252,91,252,44,252,13,252,48,252, +85,252,44,252,219,251,221,251,95,252,11,253,115,253,139,253,160,253,221,253,24,254,61,254,135,254,0,255,96,255,147,255, +191,255,213,255,182,255,151,255,176,255,238,255,59,0,161,0,8,1,81,1,136,1,175,1,169,1,146,1,183,1,19,2, +88,2,122,2,199,2,98,3,254,3,70,4,61,4,49,4,79,4,118,4,133,4,174,4,27,5,149,5,218,5,229,5, +200,5,161,5,186,5,40,6,159,6,253,6,98,7,185,7,216,7,246,7,59,8,101,8,110,8,185,8,81,9,197,9, +238,9,4,10,37,10,80,10,126,10,154,10,172,10,235,10,104,11,228,11,48,12,108,12,189,12,254,12,253,12,210,12, +188,12,215,12,37,13,153,13,249,13,18,14,2,14,4,14,43,14,120,14,204,14,226,14,196,14,224,14,72,15,141,15, +136,15,138,15,180,15,226,15,244,15,213,15,135,15,79,15,100,15,149,15,143,15,91,15,61,15,63,15,53,15,32,15, +48,15,81,15,49,15,214,14,154,14,166,14,200,14,215,14,219,14,226,14,240,14,249,14,224,14,141,14,28,14,212,13, +197,13,162,13,70,13,243,12,216,12,216,12,213,12,189,12,121,12,44,12,11,12,253,11,192,11,83,11,217,10,120,10, +82,10,67,10,251,9,148,9,98,9,69,9,248,8,152,8,84,8,24,8,211,7,151,7,100,7,44,7,222,6,108,6, +230,5,111,5,5,5,140,4,10,4,174,3,138,3,95,3,223,2,42,2,159,1,70,1,228,0,132,0,73,0,26,0, +229,255,186,255,138,255,60,255,228,254,145,254,44,254,190,253,103,253,33,253,200,252,95,252,0,252,175,251,77,251,205,250, +77,250,219,249,118,249,42,249,254,248,217,248,181,248,155,248,117,248,46,248,217,247,135,247,71,247,46,247,23,247,191,246, +63,246,232,245,199,245,183,245,163,245,126,245,89,245,87,245,90,245,33,245,186,244,102,244,52,244,13,244,227,243,175,243, +128,243,101,243,76,243,21,243,205,242,157,242,159,242,174,242,151,242,115,242,138,242,198,242,201,242,151,242,123,242,139,242, +177,242,221,242,234,242,207,242,188,242,199,242,210,242,215,242,241,242,21,243,40,243,34,243,6,243,229,242,235,242,40,243, +107,243,140,243,168,243,234,243,55,244,95,244,124,244,182,244,243,244,40,245,109,245,162,245,160,245,168,245,245,245,56,246, +53,246,40,246,60,246,87,246,129,246,210,246,35,247,83,247,130,247,202,247,8,248,20,248,0,248,1,248,43,248,110,248, +182,248,251,248,53,249,98,249,134,249,172,249,220,249,20,250,83,250,162,250,253,250,54,251,68,251,101,251,183,251,253,251, +21,252,39,252,85,252,156,252,242,252,60,253,99,253,131,253,191,253,249,253,13,254,23,254,76,254,165,254,239,254,33,255, +96,255,169,255,217,255,4,0,94,0,205,0,14,1,38,1,62,1,92,1,136,1,205,1,9,2,19,2,18,2,58,2, +120,2,164,2,209,2,26,3,97,3,133,3,152,3,174,3,179,3,162,3,173,3,245,3,76,4,120,4,129,4,145,4, +179,4,217,4,247,4,15,5,50,5,113,5,184,5,218,5,212,5,205,5,217,5,226,5,209,5,168,5,145,5,184,5, +6,6,48,6,49,6,72,6,120,6,137,6,121,6,111,6,111,6,107,6,118,6,152,6,176,6,165,6,125,6,74,6, +33,6,23,6,30,6,15,6,242,5,246,5,30,6,41,6,249,5,184,5,145,5,115,5,64,5,246,4,189,4,197,4, +249,4,8,5,205,4,123,4,73,4,47,4,31,4,34,4,27,4,221,3,133,3,106,3,132,3,125,3,57,3,236,2, +192,2,186,2,190,2,155,2,86,2,53,2,53,2,12,2,207,1,187,1,159,1,77,1,17,1,13,1,0,1,230,0, +223,0,187,0,99,0,35,0,31,0,60,0,107,0,127,0,34,0,125,255,46,255,100,255,156,255,95,255,198,254,70,254, +61,254,159,254,246,254,201,254,35,254,141,253,104,253,128,253,113,253,45,253,243,252,251,252,43,253,54,253,27,253,53,253, +116,253,74,253,162,252,32,252,43,252,100,252,82,252,248,251,177,251,188,251,240,251,2,252,226,251,183,251,144,251,102,251, +98,251,184,251,19,252,202,251,2,251,187,250,62,251,165,251,102,251,15,251,36,251,115,251,160,251,118,251,3,251,162,250, +128,250,104,250,75,250,112,250,231,250,106,251,178,251,163,251,103,251,68,251,69,251,84,251,88,251,12,251,77,250,176,249, +211,249,108,250,210,250,240,250,6,251,36,251,58,251,41,251,239,250,200,250,205,250,187,250,113,250,70,250,127,250,248,250, +92,251,107,251,28,251,201,250,211,250,23,251,22,251,198,250,148,250,152,250,133,250,104,250,153,250,2,251,68,251,76,251, +59,251,70,251,162,251,17,252,233,251,34,251,110,250,57,250,91,250,159,250,211,250,214,250,215,250,3,251,23,251,203,250, +88,250,64,250,182,250,91,251,158,251,108,251,41,251,9,251,222,250,128,250,39,250,70,250,238,250,136,251,153,251,107,251, +88,251,54,251,237,250,184,250,175,250,212,250,78,251,242,251,88,252,118,252,123,252,88,252,22,252,2,252,48,252,120,252, +228,252,119,253,224,253,225,253,177,253,160,253,176,253,194,253,233,253,79,254,227,254,101,255,180,255,228,255,7,0,9,0, +216,255,180,255,243,255,123,0,238,0,71,1,183,1,23,2,22,2,190,1,109,1,113,1,199,1,32,2,91,2,173,2, +45,3,144,3,160,3,137,3,155,3,250,3,128,4,213,4,238,4,5,5,40,5,57,5,64,5,73,5,76,5,109,5, +207,5,65,6,156,6,252,6,92,7,150,7,191,7,244,7,20,8,29,8,85,8,193,8,20,9,55,9,91,9,152,9, +219,9,32,10,115,10,193,10,255,10,80,11,199,11,37,12,42,12,255,11,236,11,246,11,5,12,35,12,102,12,199,12, +51,13,150,13,212,13,229,13,224,13,217,13,190,13,148,13,131,13,158,13,208,13,247,13,252,13,235,13,242,13,25,14, +39,14,10,14,246,13,255,13,15,14,47,14,100,14,111,14,49,14,227,13,170,13,127,13,99,13,85,13,51,13,15,13, +40,13,113,13,154,13,142,13,124,13,106,13,62,13,3,13,213,12,175,12,148,12,148,12,148,12,110,12,51,12,10,12, +232,11,173,11,107,11,66,11,42,11,6,11,208,10,153,10,105,10,66,10,16,10,190,9,94,9,17,9,203,8,114,8, +42,8,21,8,244,7,160,7,79,7,25,7,203,6,108,6,33,6,186,5,41,5,190,4,135,4,50,4,195,3,124,3, +71,3,245,2,162,2,91,2,248,1,131,1,52,1,5,1,191,0,76,0,204,255,98,255,16,255,196,254,122,254,74,254, +52,254,8,254,158,253,35,253,213,252,156,252,70,252,238,251,183,251,125,251,49,251,235,250,155,250,46,250,213,249,167,249, +110,249,32,249,236,248,208,248,163,248,95,248,12,248,175,247,95,247,52,247,35,247,15,247,239,246,201,246,154,246,77,246, +239,245,163,245,95,245,10,245,204,244,202,244,218,244,204,244,153,244,65,244,216,243,134,243,78,243,22,243,231,242,209,242, +220,242,14,243,67,243,57,243,240,242,161,242,112,242,105,242,129,242,131,242,96,242,88,242,116,242,115,242,80,242,70,242, +96,242,115,242,110,242,107,242,145,242,218,242,10,243,10,243,2,243,14,243,35,243,55,243,73,243,94,243,133,243,176,243, +204,243,246,243,56,244,108,244,132,244,161,244,201,244,242,244,31,245,70,245,98,245,133,245,187,245,253,245,71,246,123,246, +128,246,124,246,153,246,197,246,236,246,26,247,75,247,130,247,209,247,35,248,82,248,105,248,137,248,194,248,11,249,71,249, +100,249,135,249,206,249,33,250,110,250,195,250,12,251,51,251,80,251,129,251,198,251,6,252,46,252,64,252,96,252,165,252, +3,253,103,253,175,253,219,253,26,254,120,254,179,254,190,254,224,254,56,255,163,255,245,255,34,0,73,0,143,0,209,0, +226,0,249,0,70,1,146,1,204,1,47,2,168,2,235,2,254,2,5,3,252,2,246,2,15,3,43,3,64,3,133,3, +254,3,90,4,107,4,103,4,135,4,185,4,205,4,206,4,239,4,60,5,136,5,175,5,177,5,175,5,184,5,186,5, +189,5,228,5,27,6,50,6,64,6,104,6,122,6,86,6,59,6,93,6,172,6,250,6,8,7,188,6,110,6,130,6, +198,6,207,6,179,6,203,6,14,7,51,7,54,7,57,7,49,7,11,7,234,6,222,6,200,6,195,6,9,7,103,7, +123,7,86,7,50,7,0,7,184,6,130,6,103,6,101,6,139,6,189,6,195,6,165,6,125,6,56,6,229,5,196,5, +225,5,6,6,11,6,234,5,198,5,200,5,211,5,149,5,20,5,193,4,204,4,237,4,223,4,175,4,141,4,138,4, +134,4,100,4,43,4,239,3,173,3,117,3,120,3,166,3,156,3,57,3,208,2,163,2,143,2,111,2,78,2,77,2, +126,2,196,2,202,2,102,2,221,1,139,1,123,1,127,1,106,1,62,1,34,1,38,1,25,1,207,0,123,0,97,0, +111,0,101,0,63,0,39,0,42,0,35,0,238,255,147,255,64,255,26,255,26,255,24,255,252,254,225,254,231,254,249,254, +239,254,204,254,166,254,129,254,92,254,72,254,69,254,67,254,57,254,19,254,172,253,33,253,211,252,224,252,1,253,255,252, +239,252,2,253,81,253,169,253,153,253,15,253,142,252,102,252,74,252,5,252,214,251,235,251,35,252,65,252,36,252,238,251, +239,251,39,252,62,252,18,252,218,251,186,251,174,251,149,251,85,251,21,251,47,251,145,251,192,251,140,251,75,251,76,251, +131,251,166,251,142,251,96,251,86,251,101,251,76,251,255,250,181,250,166,250,224,250,92,251,249,251,91,252,31,252,121,251, +33,251,93,251,158,251,102,251,250,250,203,250,204,250,183,250,157,250,199,250,52,251,151,251,172,251,100,251,252,250,219,250, +8,251,20,251,220,250,185,250,205,250,246,250,59,251,137,251,131,251,56,251,37,251,91,251,117,251,74,251,11,251,243,250, +17,251,29,251,231,250,194,250,247,250,48,251,16,251,208,250,192,250,210,250,223,250,242,250,41,251,110,251,118,251,56,251, +21,251,61,251,103,251,88,251,46,251,16,251,14,251,45,251,93,251,162,251,8,252,94,252,105,252,80,252,91,252,126,252, +126,252,96,252,109,252,208,252,96,253,202,253,238,253,232,253,232,253,15,254,80,254,133,254,171,254,218,254,2,255,28,255, +67,255,120,255,162,255,215,255,51,0,147,0,212,0,253,0,20,1,26,1,25,1,18,1,9,1,22,1,69,1,146,1, +228,1,32,2,73,2,124,2,149,2,109,2,74,2,105,2,166,2,237,2,83,3,175,3,214,3,244,3,20,4,25,4, +53,4,134,4,178,4,150,4,139,4,181,4,214,4,224,4,252,4,63,5,164,5,6,6,58,6,77,6,109,6,159,6, +210,6,16,7,91,7,154,7,198,7,251,7,60,8,105,8,120,8,145,8,195,8,241,8,18,9,47,9,80,9,133,9, +210,9,2,10,250,9,248,9,25,10,46,10,54,10,87,10,124,10,146,10,178,10,203,10,190,10,187,10,232,10,10,11, +249,10,230,10,233,10,229,10,211,10,213,10,231,10,226,10,209,10,229,10,19,11,29,11,10,11,10,11,8,11,228,10, +189,10,165,10,133,10,110,10,113,10,103,10,76,10,75,10,85,10,75,10,79,10,112,10,130,10,124,10,110,10,82,10, +49,10,35,10,5,10,188,9,137,9,153,9,166,9,113,9,42,9,9,9,245,8,205,8,159,8,124,8,83,8,26,8, +225,7,174,7,131,7,93,7,48,7,250,6,210,6,176,6,105,6,4,6,188,5,158,5,119,5,41,5,201,4,122,4, +64,4,252,3,158,3,73,3,13,3,202,2,121,2,69,2,44,2,244,1,145,1,50,1,246,0,205,0,161,0,101,0, +27,0,214,255,174,255,163,255,151,255,115,255,53,255,229,254,142,254,75,254,29,254,232,253,168,253,127,253,102,253,44,253, +214,252,156,252,131,252,90,252,21,252,213,251,180,251,171,251,148,251,71,251,218,250,143,250,113,250,79,250,40,250,23,250, +251,249,177,249,117,249,128,249,144,249,83,249,238,248,174,248,136,248,85,248,33,248,247,247,189,247,125,247,94,247,82,247, +50,247,16,247,254,246,215,246,152,246,115,246,103,246,76,246,57,246,76,246,92,246,80,246,89,246,124,246,135,246,112,246, +91,246,77,246,68,246,84,246,117,246,132,246,130,246,123,246,97,246,57,246,55,246,97,246,115,246,101,246,128,246,205,246, +248,246,235,246,222,246,225,246,220,246,214,246,225,246,0,247,48,247,89,247,87,247,76,247,113,247,166,247,167,247,132,247, +123,247,155,247,203,247,243,247,255,247,240,247,223,247,227,247,246,247,7,248,22,248,54,248,98,248,133,248,150,248,164,248, +182,248,210,248,253,248,37,249,61,249,93,249,144,249,186,249,193,249,187,249,212,249,23,250,92,250,130,250,161,250,215,250, +15,251,59,251,94,251,98,251,73,251,79,251,127,251,171,251,203,251,241,251,12,252,36,252,96,252,161,252,174,252,164,252, +196,252,6,253,78,253,159,253,244,253,33,254,1,254,184,253,156,253,192,253,229,253,248,253,33,254,98,254,137,254,147,254, +157,254,173,254,175,254,161,254,152,254,175,254,231,254,26,255,47,255,55,255,79,255,112,255,118,255,92,255,90,255,148,255, +218,255,249,255,3,0,20,0,38,0,39,0,23,0,23,0,68,0,121,0,126,0,105,0,128,0,189,0,231,0,240,0, +236,0,225,0,209,0,213,0,13,1,93,1,121,1,86,1,67,1,97,1,131,1,162,1,219,1,29,2,89,2,160,2, +210,2,186,2,114,2,50,2,10,2,11,2,67,2,128,2,143,2,145,2,184,2,238,2,4,3,248,2,238,2,0,3, +38,3,78,3,111,3,131,3,146,3,161,3,152,3,104,3,67,3,91,3,150,3,201,3,239,3,6,4,13,4,17,4, +21,4,8,4,251,3,16,4,62,4,100,4,120,4,102,4,25,4,197,3,191,3,247,3,24,4,36,4,84,4,156,4, +198,4,210,4,181,4,86,4,252,3,2,4,54,4,66,4,69,4,108,4,141,4,151,4,166,4,154,4,83,4,25,4, +36,4,72,4,77,4,60,4,38,4,9,4,220,3,150,3,91,3,102,3,185,3,3,4,9,4,234,3,225,3,233,3, +199,3,111,3,36,3,36,3,90,3,125,3,101,3,35,3,240,2,239,2,3,3,246,2,201,2,175,2,184,2,191,2, +159,2,96,2,32,2,242,1,218,1,216,1,232,1,230,1,177,1,118,1,133,1,195,1,193,1,112,1,43,1,25,1, +19,1,0,1,231,0,226,0,2,1,23,1,212,0,83,0,1,0,252,255,19,0,40,0,63,0,85,0,108,0,120,0, +81,0,232,255,116,255,46,255,26,255,20,255,254,254,227,254,236,254,41,255,109,255,112,255,32,255,196,254,172,254,216,254, +12,255,33,255,2,255,149,254,248,253,156,253,188,253,1,254,5,254,227,253,208,253,185,253,155,253,170,253,214,253,208,253, +135,253,29,253,189,252,185,252,49,253,156,253,130,253,42,253,248,252,215,252,193,252,231,252,57,253,129,253,174,253,164,253, +79,253,228,252,172,252,151,252,116,252,78,252,89,252,174,252,23,253,45,253,201,252,74,252,47,252,121,252,168,252,120,252, +61,252,66,252,79,252,53,252,43,252,64,252,59,252,14,252,217,251,182,251,221,251,94,252,165,252,33,252,46,251,157,250, +177,250,17,251,77,251,50,251,225,250,179,250,205,250,237,250,209,250,163,250,164,250,155,250,39,250,124,249,54,249,128,249, +209,249,150,249,252,248,207,248,108,249,56,250,129,250,79,250,250,249,169,249,107,249,63,249,37,249,55,249,119,249,179,249, +233,249,66,250,152,250,183,250,206,250,10,251,84,251,152,251,202,251,219,251,231,251,12,252,31,252,26,252,58,252,121,252, +162,252,223,252,118,253,48,254,156,254,152,254,95,254,59,254,63,254,84,254,125,254,211,254,78,255,181,255,203,255,139,255, +75,255,95,255,164,255,201,255,211,255,248,255,69,0,164,0,234,0,241,0,195,0,156,0,161,0,200,0,236,0,3,1, +63,1,186,1,52,2,102,2,98,2,108,2,175,2,34,3,128,3,158,3,159,3,164,3,167,3,193,3,11,4,99,4, +196,4,82,5,0,6,161,6,35,7,94,7,62,7,25,7,57,7,109,7,135,7,182,7,20,8,128,8,224,8,51,9, +122,9,172,9,174,9,147,9,168,9,14,10,133,10,206,10,234,10,253,10,22,11,27,11,232,10,165,10,151,10,195,10, +11,11,92,11,156,11,181,11,184,11,184,11,183,11,185,11,169,11,113,11,72,11,103,11,152,11,147,11,127,11,164,11, +249,11,71,12,110,12,121,12,124,12,115,12,84,12,36,12,248,11,222,11,214,11,214,11,230,11,34,12,119,12,172,12, +200,12,235,12,238,12,177,12,111,12,89,12,91,12,104,12,121,12,111,12,80,12,61,12,41,12,237,11,145,11,59,11, +33,11,87,11,155,11,146,11,57,11,218,10,169,10,156,10,122,10,24,10,151,9,49,9,243,8,197,8,147,8,76,8, +0,8,201,7,160,7,110,7,49,7,224,6,119,6,21,6,206,5,133,5,45,5,223,4,159,4,98,4,45,4,0,4, +202,3,135,3,62,3,242,2,172,2,108,2,40,2,227,1,166,1,119,1,66,1,238,0,134,0,54,0,14,0,242,255, +217,255,191,255,147,255,88,255,36,255,217,254,95,254,229,253,152,253,90,253,15,253,200,252,135,252,74,252,32,252,6,252, +218,251,142,251,42,251,192,250,101,250,50,250,29,250,239,249,132,249,5,249,185,248,145,248,78,248,231,247,134,247,62,247, +15,247,250,246,233,246,194,246,147,246,117,246,95,246,57,246,247,245,166,245,96,245,49,245,16,245,246,244,224,244,197,244, +164,244,141,244,134,244,129,244,117,244,103,244,93,244,80,244,49,244,22,244,35,244,73,244,90,244,79,244,56,244,24,244, +0,244,15,244,40,244,30,244,3,244,4,244,23,244,32,244,38,244,44,244,39,244,38,244,66,244,105,244,119,244,118,244, +130,244,150,244,164,244,185,244,209,244,220,244,228,244,253,244,23,245,31,245,27,245,20,245,16,245,28,245,53,245,82,245, +118,245,168,245,226,245,22,246,62,246,88,246,111,246,127,246,119,246,114,246,158,246,223,246,250,246,254,246,36,247,103,247, +165,247,209,247,243,247,34,248,114,248,197,248,231,248,233,248,3,249,54,249,99,249,145,249,202,249,250,249,32,250,89,250, +155,250,194,250,222,250,14,251,65,251,97,251,143,251,220,251,33,252,80,252,129,252,184,252,225,252,3,253,42,253,80,253, +120,253,181,253,3,254,71,254,110,254,138,254,174,254,207,254,215,254,201,254,189,254,208,254,10,255,87,255,148,255,192,255, +241,255,42,0,97,0,157,0,206,0,227,0,234,0,3,1,49,1,102,1,149,1,178,1,210,1,20,2,97,2,142,2, +175,2,228,2,19,3,28,3,21,3,30,3,63,3,120,3,188,3,248,3,41,4,100,4,165,4,206,4,208,4,202,4, +219,4,4,5,54,5,113,5,165,5,187,5,186,5,198,5,220,5,216,5,184,5,169,5,200,5,252,5,40,6,73,6, +90,6,89,6,83,6,78,6,70,6,70,6,91,6,118,6,135,6,130,6,80,6,3,6,221,5,234,5,248,5,2,6, +43,6,92,6,120,6,141,6,146,6,99,6,34,6,6,6,3,6,246,5,240,5,248,5,252,5,1,6,10,6,249,5, +193,5,142,5,124,5,123,5,114,5,102,5,104,5,114,5,105,5,66,5,11,5,217,4,194,4,207,4,231,4,230,4, +202,4,176,4,156,4,119,4,59,4,247,3,186,3,146,3,136,3,135,3,112,3,65,3,11,3,219,2,187,2,174,2, +168,2,170,2,186,2,175,2,97,2,5,2,217,1,191,1,134,1,73,1,29,1,242,0,211,0,222,0,253,0,17,1, +17,1,224,0,109,0,248,255,205,255,231,255,4,0,255,255,228,255,203,255,165,255,93,255,17,255,238,254,234,254,228,254, +219,254,214,254,200,254,177,254,155,254,122,254,68,254,19,254,252,253,243,253,243,253,11,254,50,254,69,254,37,254,202,253, +80,253,253,252,3,253,58,253,72,253,23,253,222,252,209,252,245,252,24,253,252,252,173,252,121,252,138,252,178,252,185,252, +156,252,130,252,118,252,87,252,13,252,188,251,166,251,223,251,36,252,28,252,204,251,158,251,198,251,245,251,236,251,225,251, +255,251,40,252,69,252,83,252,50,252,225,251,146,251,88,251,41,251,39,251,110,251,198,251,233,251,235,251,6,252,66,252, +107,252,81,252,248,251,156,251,127,251,165,251,211,251,215,251,210,251,251,251,69,252,98,252,47,252,233,251,211,251,215,251, +180,251,106,251,70,251,123,251,225,251,31,252,22,252,5,252,39,252,87,252,83,252,24,252,210,251,167,251,175,251,223,251, +255,251,232,251,188,251,160,251,151,251,141,251,107,251,52,251,23,251,32,251,16,251,213,250,191,250,0,251,92,251,119,251, +74,251,30,251,42,251,58,251,12,251,213,250,242,250,74,251,130,251,135,251,134,251,166,251,231,251,25,252,21,252,13,252, +69,252,171,252,1,253,70,253,131,253,153,253,133,253,129,253,162,253,183,253,178,253,206,253,47,254,175,254,20,255,66,255, +63,255,59,255,87,255,129,255,182,255,16,0,111,0,151,0,150,0,164,0,182,0,174,0,166,0,190,0,244,0,54,1, +95,1,90,1,72,1,87,1,131,1,161,1,161,1,160,1,185,1,228,1,17,2,75,2,142,2,178,2,184,2,197,2, +222,2,250,2,47,3,126,3,191,3,234,3,4,4,2,4,246,3,30,4,133,4,245,4,77,5,153,5,220,5,9,6, +34,6,53,6,77,6,114,6,172,6,244,6,41,7,65,7,99,7,173,7,10,8,85,8,121,8,122,8,128,8,174,8, +236,8,29,9,88,9,163,9,209,9,205,9,181,9,170,9,177,9,193,9,200,9,195,9,194,9,208,9,233,9,10,10, +41,10,58,10,52,10,21,10,245,9,233,9,234,9,223,9,210,9,208,9,214,9,225,9,246,9,17,10,50,10,78,10, +78,10,55,10,37,10,13,10,220,9,177,9,167,9,167,9,172,9,198,9,226,9,229,9,228,9,237,9,235,9,215,9, +187,9,158,9,135,9,126,9,123,9,116,9,102,9,80,9,49,9,13,9,240,8,232,8,236,8,226,8,212,8,211,8, +192,8,115,8,11,8,186,7,132,7,79,7,15,7,200,6,135,6,82,6,31,6,240,5,200,5,156,5,102,5,39,5, +222,4,144,4,78,4,23,4,229,3,189,3,144,3,75,3,3,3,205,2,150,2,91,2,43,2,253,1,194,1,136,1, +84,1,26,1,222,0,171,0,123,0,69,0,10,0,214,255,185,255,170,255,140,255,89,255,40,255,1,255,228,254,196,254, +133,254,43,254,236,253,221,253,202,253,140,253,50,253,221,252,159,252,115,252,75,252,34,252,249,251,205,251,161,251,120,251, +68,251,1,251,191,250,124,250,58,250,10,250,225,249,169,249,119,249,85,249,36,249,225,248,180,248,155,248,128,248,113,248, +111,248,97,248,73,248,49,248,7,248,200,247,154,247,134,247,121,247,107,247,102,247,104,247,103,247,94,247,71,247,34,247, +2,247,4,247,29,247,31,247,11,247,11,247,30,247,42,247,47,247,48,247,28,247,6,247,13,247,34,247,45,247,59,247, +80,247,83,247,65,247,40,247,22,247,24,247,46,247,78,247,115,247,141,247,138,247,125,247,125,247,133,247,145,247,171,247, +203,247,241,247,40,248,79,248,69,248,52,248,68,248,82,248,80,248,95,248,128,248,160,248,204,248,10,249,59,249,86,249, +109,249,135,249,162,249,191,249,226,249,4,250,32,250,57,250,90,250,127,250,155,250,177,250,197,250,223,250,24,251,122,251, +214,251,248,251,243,251,242,251,13,252,63,252,111,252,140,252,169,252,216,252,15,253,57,253,79,253,96,253,135,253,191,253, +219,253,215,253,230,253,26,254,86,254,131,254,148,254,141,254,150,254,196,254,238,254,252,254,12,255,47,255,92,255,134,255, +169,255,198,255,221,255,224,255,206,255,200,255,224,255,5,0,42,0,78,0,116,0,171,0,241,0,25,1,18,1,254,0, +248,0,9,1,64,1,132,1,163,1,160,1,164,1,186,1,213,1,241,1,5,2,26,2,72,2,142,2,215,2,17,3, +51,3,56,3,48,3,38,3,16,3,241,2,233,2,22,3,99,3,154,3,172,3,177,3,177,3,163,3,152,3,159,3, +176,3,198,3,229,3,245,3,236,3,222,3,212,3,197,3,184,3,179,3,172,3,173,3,191,3,204,3,202,3,197,3, +187,3,164,3,146,3,139,3,136,3,139,3,136,3,120,3,116,3,133,3,139,3,127,3,123,3,122,3,116,3,119,3, +123,3,110,3,93,3,81,3,60,3,47,3,66,3,85,3,79,3,77,3,94,3,95,3,67,3,34,3,16,3,11,3, +10,3,0,3,234,2,218,2,223,2,227,2,200,2,155,2,123,2,100,2,71,2,52,2,53,2,60,2,65,2,59,2, +31,2,1,2,242,1,219,1,179,1,146,1,119,1,84,1,62,1,53,1,21,1,238,0,231,0,234,0,206,0,162,0, +130,0,109,0,103,0,108,0,104,0,71,0,13,0,219,255,217,255,251,255,12,0,254,255,238,255,226,255,203,255,167,255, +117,255,70,255,63,255,89,255,103,255,97,255,93,255,96,255,103,255,119,255,123,255,93,255,40,255,249,254,226,254,230,254, +246,254,251,254,244,254,240,254,234,254,212,254,185,254,182,254,204,254,210,254,172,254,117,254,84,254,91,254,134,254,170,254, +148,254,94,254,72,254,80,254,80,254,71,254,58,254,26,254,236,253,208,253,211,253,248,253,42,254,64,254,31,254,226,253, +194,253,223,253,30,254,51,254,252,253,174,253,141,253,177,253,246,253,32,254,18,254,239,253,216,253,206,253,220,253,252,253, +7,254,247,253,239,253,234,253,214,253,220,253,13,254,31,254,245,253,211,253,226,253,5,254,38,254,60,254,54,254,36,254, +43,254,68,254,70,254,49,254,44,254,53,254,48,254,42,254,63,254,95,254,95,254,67,254,47,254,50,254,73,254,103,254, +123,254,122,254,102,254,69,254,39,254,30,254,34,254,39,254,53,254,85,254,124,254,141,254,110,254,48,254,14,254,20,254, +11,254,218,253,171,253,167,253,200,253,237,253,242,253,207,253,165,253,131,253,96,253,77,253,87,253,97,253,112,253,169,253, +238,253,244,253,202,253,183,253,196,253,201,253,189,253,194,253,246,253,75,254,132,254,127,254,95,254,86,254,107,254,127,254, +136,254,147,254,174,254,208,254,237,254,10,255,49,255,91,255,110,255,97,255,90,255,126,255,187,255,235,255,11,0,33,0, +27,0,255,255,243,255,7,0,37,0,59,0,84,0,125,0,180,0,216,0,201,0,151,0,114,0,125,0,178,0,232,0, +3,1,19,1,38,1,28,1,236,0,195,0,191,0,200,0,216,0,3,1,65,1,119,1,159,1,189,1,202,1,193,1, +175,1,165,1,179,1,226,1,46,2,125,2,178,2,202,2,216,2,222,2,216,2,221,2,1,3,50,3,90,3,121,3, +145,3,159,3,165,3,175,3,205,3,4,4,60,4,96,4,131,4,182,4,219,4,221,4,212,4,209,4,199,4,193,4, +218,4,13,5,52,5,57,5,39,5,12,5,242,4,228,4,229,4,233,4,237,4,249,4,6,5,5,5,244,4,226,4, +212,4,206,4,205,4,197,4,180,4,179,4,198,4,212,4,195,4,159,4,134,4,135,4,146,4,148,4,152,4,171,4, +199,4,215,4,208,4,181,4,148,4,123,4,111,4,116,4,134,4,148,4,153,4,164,4,176,4,162,4,126,4,108,4, +115,4,123,4,129,4,129,4,113,4,93,4,92,4,99,4,85,4,57,4,37,4,12,4,232,3,209,3,207,3,189,3, +130,3,53,3,246,2,198,2,165,2,153,2,149,2,133,2,107,2,79,2,50,2,9,2,203,1,134,1,77,1,42,1, +21,1,6,1,249,0,228,0,195,0,160,0,125,0,84,0,46,0,22,0,7,0,247,255,233,255,217,255,188,255,155,255, +138,255,128,255,108,255,83,255,62,255,39,255,16,255,7,255,6,255,251,254,233,254,222,254,215,254,208,254,202,254,181,254, +136,254,94,254,80,254,71,254,45,254,16,254,3,254,250,253,229,253,193,253,152,253,119,253,95,253,65,253,23,253,242,252, +230,252,224,252,197,252,149,252,104,252,72,252,51,252,52,252,72,252,77,252,49,252,19,252,3,252,236,251,197,251,168,251, +151,251,130,251,117,251,134,251,156,251,155,251,145,251,134,251,116,251,107,251,121,251,135,251,137,251,152,251,175,251,172,251, +154,251,149,251,146,251,138,251,142,251,160,251,172,251,187,251,214,251,231,251,231,251,234,251,245,251,252,251,3,252,12,252, +15,252,14,252,19,252,21,252,12,252,8,252,20,252,35,252,42,252,52,252,64,252,60,252,41,252,31,252,38,252,49,252, +53,252,56,252,75,252,120,252,180,252,221,252,218,252,185,252,162,252,163,252,170,252,183,252,216,252,1,253,14,253,6,253, +5,253,14,253,19,253,27,253,38,253,43,253,63,253,115,253,174,253,209,253,226,253,239,253,251,253,4,254,5,254,254,253, +9,254,59,254,119,254,151,254,157,254,154,254,153,254,157,254,169,254,195,254,228,254,252,254,10,255,30,255,63,255,89,255, +95,255,91,255,92,255,102,255,118,255,138,255,159,255,177,255,179,255,170,255,168,255,178,255,191,255,202,255,211,255,215,255, +221,255,242,255,14,0,33,0,36,0,38,0,46,0,59,0,72,0,82,0,93,0,100,0,98,0,89,0,91,0,113,0, +139,0,149,0,160,0,189,0,222,0,240,0,255,0,13,1,25,1,49,1,88,1,111,1,113,1,125,1,145,1,150,1, +158,1,186,1,209,1,212,1,213,1,225,1,238,1,246,1,247,1,255,1,22,2,47,2,60,2,63,2,58,2,47,2, +48,2,56,2,46,2,28,2,37,2,63,2,77,2,88,2,107,2,117,2,114,2,106,2,76,2,25,2,248,1,0,2, +26,2,46,2,58,2,59,2,45,2,39,2,56,2,70,2,56,2,27,2,6,2,0,2,13,2,33,2,44,2,55,2, +79,2,83,2,54,2,30,2,30,2,30,2,32,2,51,2,67,2,59,2,47,2,47,2,53,2,51,2,26,2,238,1, +208,1,207,1,222,1,234,1,233,1,220,1,219,1,235,1,233,1,205,1,193,1,203,1,198,1,166,1,130,1,104,1, +92,1,86,1,69,1,43,1,37,1,52,1,64,1,63,1,54,1,36,1,8,1,234,0,204,0,176,0,158,0,154,0, +156,0,153,0,145,0,136,0,120,0,103,0,95,0,90,0,76,0,73,0,86,0,84,0,61,0,42,0,35,0,24,0, +16,0,14,0,7,0,254,255,2,0,13,0,13,0,248,255,218,255,196,255,185,255,177,255,178,255,192,255,192,255,166,255, +146,255,147,255,149,255,141,255,130,255,121,255,124,255,143,255,156,255,153,255,154,255,158,255,148,255,116,255,70,255,37,255, +46,255,77,255,85,255,74,255,79,255,95,255,103,255,107,255,101,255,73,255,35,255,15,255,17,255,32,255,41,255,32,255, +21,255,34,255,66,255,86,255,72,255,38,255,18,255,23,255,29,255,16,255,245,254,228,254,237,254,4,255,4,255,233,254, +224,254,253,254,31,255,38,255,22,255,9,255,19,255,36,255,37,255,27,255,23,255,22,255,20,255,18,255,15,255,10,255, +9,255,5,255,8,255,31,255,50,255,46,255,53,255,82,255,85,255,54,255,38,255,44,255,46,255,55,255,71,255,68,255, +50,255,51,255,70,255,87,255,100,255,102,255,87,255,67,255,62,255,74,255,90,255,92,255,77,255,60,255,53,255,59,255, +74,255,92,255,103,255,107,255,105,255,95,255,87,255,90,255,99,255,104,255,97,255,78,255,65,255,71,255,72,255,49,255, +27,255,37,255,76,255,108,255,103,255,73,255,59,255,71,255,83,255,82,255,73,255,55,255,40,255,41,255,33,255,10,255, +4,255,24,255,39,255,41,255,39,255,40,255,60,255,102,255,126,255,101,255,61,255,50,255,62,255,77,255,88,255,101,255, +122,255,141,255,143,255,128,255,112,255,110,255,134,255,170,255,199,255,225,255,3,0,25,0,23,0,5,0,235,255,208,255, +196,255,198,255,208,255,238,255,32,0,64,0,58,0,39,0,37,0,48,0,53,0,45,0,37,0,45,0,62,0,77,0, +88,0,89,0,84,0,90,0,105,0,111,0,111,0,115,0,115,0,110,0,114,0,123,0,125,0,124,0,127,0,135,0, +146,0,155,0,162,0,176,0,194,0,205,0,212,0,224,0,246,0,21,1,41,1,24,1,248,0,234,0,235,0,236,0, +252,0,24,1,48,1,67,1,88,1,102,1,113,1,127,1,133,1,123,1,111,1,108,1,111,1,124,1,140,1,148,1, +152,1,152,1,148,1,157,1,180,1,192,1,184,1,171,1,167,1,174,1,184,1,183,1,172,1,167,1,175,1,183,1, +181,1,176,1,175,1,183,1,185,1,178,1,176,1,183,1,186,1,182,1,179,1,173,1,164,1,165,1,172,1,173,1, +170,1,163,1,157,1,168,1,199,1,222,1,220,1,201,1,184,1,179,1,176,1,152,1,118,1,107,1,121,1,135,1, +149,1,173,1,198,1,208,1,198,1,177,1,164,1,157,1,137,1,111,1,99,1,102,1,107,1,106,1,91,1,65,1, +49,1,47,1,43,1,27,1,7,1,252,0,2,1,7,1,245,0,215,0,194,0,185,0,179,0,170,0,149,0,120,0, +109,0,115,0,112,0,98,0,84,0,73,0,68,0,61,0,38,0,11,0,9,0,24,0,21,0,245,255,206,255,184,255, +189,255,207,255,214,255,205,255,190,255,175,255,165,255,161,255,160,255,155,255,138,255,114,255,97,255,90,255,78,255,66,255, +67,255,78,255,83,255,82,255,80,255,68,255,48,255,24,255,1,255,243,254,243,254,248,254,240,254,220,254,202,254,202,254, +211,254,205,254,186,254,173,254,156,254,132,254,129,254,146,254,145,254,127,254,121,254,118,254,99,254,82,254,77,254,69,254, +61,254,63,254,62,254,50,254,44,254,53,254,64,254,65,254,55,254,45,254,48,254,63,254,71,254,63,254,43,254,31,254, +34,254,38,254,35,254,33,254,42,254,55,254,66,254,69,254,62,254,56,254,66,254,83,254,93,254,94,254,92,254,91,254, +96,254,101,254,100,254,90,254,79,254,82,254,97,254,108,254,109,254,114,254,118,254,113,254,115,254,132,254,134,254,109,254, +95,254,111,254,138,254,154,254,155,254,145,254,140,254,147,254,154,254,152,254,149,254,155,254,167,254,177,254,173,254,163,254, +166,254,179,254,181,254,175,254,181,254,201,254,222,254,239,254,251,254,1,255,1,255,252,254,249,254,0,255,5,255,6,255, +14,255,30,255,45,255,58,255,72,255,72,255,65,255,71,255,89,255,98,255,100,255,108,255,119,255,128,255,133,255,136,255, +136,255,136,255,143,255,158,255,174,255,187,255,198,255,202,255,200,255,197,255,190,255,183,255,188,255,206,255,222,255,228,255, +233,255,244,255,6,0,28,0,35,0,26,0,27,0,40,0,43,0,38,0,39,0,41,0,40,0,38,0,35,0,38,0, +59,0,92,0,113,0,117,0,113,0,108,0,107,0,110,0,108,0,103,0,107,0,115,0,121,0,131,0,146,0,150,0, +145,0,146,0,149,0,144,0,139,0,147,0,163,0,175,0,175,0,167,0,164,0,170,0,177,0,178,0,175,0,170,0, +164,0,163,0,175,0,191,0,200,0,204,0,209,0,207,0,201,0,199,0,198,0,190,0,186,0,196,0,206,0,211,0, +218,0,226,0,228,0,225,0,216,0,201,0,186,0,180,0,181,0,183,0,184,0,189,0,198,0,206,0,203,0,194,0, +192,0,191,0,185,0,184,0,189,0,185,0,174,0,165,0,158,0,152,0,151,0,154,0,152,0,152,0,157,0,156,0, +148,0,139,0,137,0,141,0,146,0,148,0,146,0,145,0,144,0,141,0,139,0,137,0,130,0,122,0,120,0,124,0, +126,0,123,0,119,0,116,0,114,0,113,0,112,0,113,0,115,0,118,0,119,0,118,0,116,0,116,0,116,0,119,0, +117,0,104,0,90,0,85,0,80,0,70,0,63,0,63,0,65,0,69,0,79,0,88,0,91,0,83,0,67,0,52,0, +49,0,54,0,58,0,57,0,54,0,56,0,63,0,63,0,48,0,33,0,31,0,31,0,28,0,30,0,35,0,36,0, +38,0,44,0,43,0,32,0,25,0,26,0,25,0,20,0,23,0,31,0,39,0,41,0,36,0,24,0,9,0,0,0, +254,255,0,0,1,0,1,0,2,0,7,0,15,0,21,0,19,0,15,0,12,0,10,0,1,0,247,255,248,255,0,0, +7,0,6,0,0,0,250,255,251,255,6,0,9,0,250,255,235,255,241,255,251,255,249,255,244,255,245,255,244,255,243,255, +248,255,251,255,246,255,242,255,242,255,235,255,226,255,224,255,228,255,233,255,240,255,242,255,229,255,216,255,218,255,231,255, +239,255,238,255,235,255,233,255,236,255,244,255,246,255,237,255,227,255,224,255,227,255,228,255,230,255,237,255,241,255,237,255, +234,255,240,255,246,255,246,255,247,255,253,255,1,0,0,0,248,255,238,255,231,255,233,255,237,255,234,255,230,255,235,255, +244,255,245,255,242,255,241,255,244,255,245,255,241,255,234,255,227,255,228,255,234,255,239,255,237,255,231,255,227,255,227,255, +232,255,241,255,245,255,235,255,222,255,221,255,229,255,234,255,231,255,231,255,236,255,243,255,247,255,244,255,236,255,227,255, +220,255,214,255,214,255,226,255,240,255,241,255,229,255,218,255,217,255,220,255,218,255,209,255,202,255,202,255,210,255,223,255, +238,255,250,255,254,255,246,255,232,255,219,255,215,255,216,255,213,255,204,255,202,255,211,255,225,255,233,255,234,255,228,255, +220,255,220,255,227,255,229,255,225,255,226,255,231,255,234,255,236,255,239,255,240,255,242,255,245,255,241,255,229,255,223,255, +230,255,242,255,246,255,242,255,240,255,245,255,4,0,19,0,23,0,19,0,16,0,18,0,16,0,5,0,250,255,250,255, +4,0,16,0,25,0,30,0,34,0,37,0,34,0,22,0,9,0,6,0,17,0,33,0,48,0,56,0,57,0,58,0, +59,0,58,0,49,0,40,0,42,0,51,0,59,0,61,0,61,0,60,0,58,0,55,0,52,0,51,0,57,0,68,0, +79,0,87,0,92,0,97,0,100,0,100,0,98,0,96,0,90,0,84,0,85,0,92,0,97,0,98,0,103,0,110,0, +114,0,118,0,125,0,130,0,132,0,131,0,128,0,122,0,118,0,116,0,114,0,116,0,127,0,140,0,145,0,142,0, +136,0,129,0,124,0,120,0,118,0,121,0,126,0,127,0,125,0,126,0,131,0,133,0,130,0,125,0,123,0,123,0, +124,0,126,0,128,0,128,0,121,0,108,0,99,0,94,0,90,0,89,0,94,0,102,0,109,0,117,0,125,0,124,0, +116,0,109,0,107,0,104,0,99,0,95,0,89,0,83,0,82,0,83,0,80,0,74,0,70,0,73,0,78,0,78,0, +73,0,69,0,65,0,60,0,56,0,53,0,47,0,41,0,40,0,40,0,37,0,32,0,25,0,16,0,11,0,11,0, +10,0,8,0,8,0,9,0,7,0,1,0,250,255,243,255,240,255,240,255,240,255,237,255,234,255,233,255,233,255,229,255, +222,255,216,255,213,255,210,255,205,255,201,255,199,255,196,255,194,255,195,255,195,255,195,255,198,255,201,255,200,255,195,255, +192,255,187,255,176,255,165,255,159,255,155,255,151,255,150,255,151,255,152,255,154,255,155,255,151,255,145,255,144,255,143,255, +140,255,140,255,141,255,138,255,131,255,124,255,120,255,117,255,114,255,113,255,115,255,118,255,122,255,125,255,125,255,121,255, +114,255,110,255,112,255,116,255,118,255,119,255,115,255,112,255,111,255,111,255,107,255,106,255,112,255,121,255,124,255,120,255, +114,255,109,255,106,255,105,255,106,255,111,255,117,255,120,255,121,255,122,255,123,255,123,255,123,255,122,255,121,255,119,255, +118,255,117,255,114,255,115,255,119,255,120,255,115,255,113,255,116,255,120,255,123,255,123,255,123,255,129,255,135,255,137,255, +133,255,130,255,128,255,128,255,131,255,136,255,136,255,136,255,139,255,143,255,146,255,149,255,149,255,149,255,150,255,154,255, +156,255,153,255,150,255,150,255,155,255,161,255,165,255,171,255,178,255,184,255,185,255,185,255,185,255,185,255,183,255,181,255, +179,255,178,255,180,255,187,255,193,255,198,255,202,255,206,255,208,255,205,255,202,255,203,255,205,255,206,255,207,255,208,255, +210,255,212,255,213,255,213,255,213,255,216,255,222,255,227,255,229,255,226,255,224,255,225,255,229,255,233,255,234,255,234,255, +235,255,236,255,238,255,241,255,240,255,237,255,236,255,239,255,243,255,248,255,252,255,253,255,252,255,253,255,1,0,4,0, +7,0,13,0,19,0,19,0,17,0,14,0,12,0,10,0,10,0,10,0,12,0,16,0,19,0,22,0,27,0,32,0, +30,0,27,0,28,0,30,0,29,0,26,0,24,0,24,0,26,0,28,0,26,0,24,0,26,0,30,0,33,0,35,0, +36,0,33,0,29,0,28,0,28,0,29,0,32,0,33,0,32,0,36,0,42,0,44,0,43,0,42,0,40,0,37,0, +36,0,36,0,36,0,37,0,42,0,43,0,39,0,37,0,39,0,43,0,44,0,42,0,41,0,41,0,45,0,48,0, +47,0,45,0,45,0,45,0,45,0,43,0,42,0,43,0,42,0,41,0,41,0,44,0,46,0,46,0,44,0,38,0, +31,0,29,0,33,0,37,0,38,0,37,0,36,0,37,0,38,0,39,0,38,0,36,0,33,0,32,0,35,0,37,0, +35,0,30,0,27,0,28,0,32,0,37,0,39,0,41,0,43,0,43,0,38,0,33,0,31,0,34,0,37,0,39,0, +36,0,33,0,33,0,34,0,32,0,30,0,34,0,38,0,41,0,42,0,43,0,41,0,38,0,39,0,39,0,37,0, +37,0,39,0,41,0,42,0,43,0,43,0,40,0,38,0,36,0,32,0,31,0,34,0,40,0,48,0,52,0,50,0, +48,0,48,0,46,0,43,0,43,0,44,0,43,0,41,0,42,0,46,0,49,0,47,0,44,0,42,0,40,0,39,0, +39,0,42,0,45,0,44,0,43,0,44,0,46,0,48,0,48,0,44,0,38,0,35,0,38,0,39,0,36,0,32,0, +30,0,30,0,34,0,40,0,41,0,38,0,34,0,31,0,29,0,30,0,32,0,33,0,32,0,32,0,34,0,36,0, +36,0,33,0,29,0,27,0,26,0,24,0,22,0,25,0,30,0,32,0,30,0,30,0,33,0,35,0,30,0,24,0, +24,0,26,0,24,0,20,0,18,0,17,0,16,0,15,0,16,0,14,0,13,0,15,0,16,0,14,0,13,0,12,0, +10,0,9,0,11,0,11,0,8,0,5,0,7,0,6,0,3,0,0,0,1,0,2,0,1,0,1,0,0,0,253,255, +251,255,252,255,254,255,253,255,250,255,247,255,245,255,246,255,249,255,249,255,246,255,248,255,252,255,253,255,247,255,242,255, +241,255,240,255,240,255,243,255,245,255,246,255,248,255,249,255,245,255,240,255,237,255,239,255,242,255,244,255,244,255,243,255, +242,255,241,255,242,255,243,255,244,255,244,255,243,255,240,255,237,255,237,255,240,255,241,255,241,255,243,255,245,255,244,255, +244,255,245,255,243,255,241,255,244,255,246,255,243,255,241,255,241,255,240,255,238,255,240,255,242,255,240,255,242,255,247,255, +247,255,245,255,247,255,251,255,251,255,247,255,245,255,246,255,249,255,253,255,253,255,252,255,254,255,0,0,255,255,253,255, +253,255,0,0,3,0,6,0,7,0,8,0,11,0,14,0,13,0,11,0,11,0,13,0,15,0,17,0,19,0,18,0, +17,0,16,0,17,0,22,0,24,0,24,0,24,0,29,0,33,0,32,0,30,0,27,0,26,0,29,0,36,0,41,0, +37,0,31,0,32,0,37,0,39,0,36,0,33,0,32,0,34,0,38,0,40,0,39,0,40,0,43,0,45,0,45,0, +44,0,45,0,45,0,46,0,48,0,48,0,45,0,44,0,46,0,48,0,48,0,49,0,50,0,53,0,58,0,58,0, +53,0,50,0,51,0,51,0,49,0,49,0,51,0,51,0,52,0,54,0,56,0,56,0,54,0,53,0,51,0,52,0, +53,0,53,0,53,0,51,0,50,0,50,0,52,0,51,0,47,0,45,0,46,0,48,0,49,0,48,0,44,0,43,0, +45,0,46,0,41,0,34,0,31,0,30,0,32,0,36,0,38,0,35,0,33,0,35,0,35,0,34,0,32,0,30,0, +29,0,27,0,24,0,22,0,21,0,21,0,18,0,14,0,14,0,16,0,17,0,16,0,14,0,13,0,13,0,12,0, +8,0,4,0,3,0,3,0,1,0,255,255,253,255,251,255,251,255,252,255,252,255,251,255,250,255,248,255,245,255,245,255, +243,255,238,255,234,255,235,255,238,255,241,255,240,255,237,255,233,255,232,255,232,255,229,255,225,255,222,255,223,255,226,255, +225,255,222,255,220,255,221,255,222,255,220,255,219,255,220,255,220,255,218,255,216,255,216,255,215,255,215,255,214,255,212,255, +212,255,215,255,215,255,212,255,212,255,215,255,217,255,215,255,210,255,207,255,208,255,212,255,215,255,212,255,208,255,210,255, +216,255,219,255,214,255,208,255,207,255,209,255,211,255,212,255,211,255,210,255,209,255,210,255,211,255,210,255,209,255,210,255, +212,255,212,255,211,255,209,255,210,255,212,255,214,255,213,255,211,255,211,255,214,255,216,255,215,255,212,255,210,255,211,255, +213,255,215,255,215,255,216,255,216,255,216,255,215,255,215,255,218,255,221,255,222,255,220,255,219,255,219,255,218,255,221,255, +226,255,226,255,223,255,222,255,224,255,225,255,228,255,233,255,232,255,228,255,228,255,232,255,233,255,233,255,235,255,236,255, +236,255,235,255,233,255,232,255,232,255,233,255,235,255,239,255,242,255,241,255,239,255,240,255,240,255,239,255,239,255,242,255, +243,255,242,255,242,255,240,255,238,255,239,255,243,255,246,255,250,255,252,255,251,255,249,255,247,255,244,255,243,255,245,255, +249,255,252,255,1,0,6,0,7,0,5,0,3,0,3,0,1,0,255,255,255,255,1,0,3,0,5,0,7,0,8,0, +10,0,11,0,11,0,10,0,11,0,12,0,11,0,9,0,8,0,10,0,13,0,13,0,10,0,7,0,9,0,12,0, +13,0,11,0,11,0,12,0,12,0,12,0,11,0,11,0,9,0,9,0,12,0,15,0,16,0,16,0,16,0,18,0, +21,0,21,0,17,0,14,0,17,0,19,0,19,0,20,0,22,0,22,0,21,0,21,0,21,0,21,0,23,0,28,0, +30,0,30,0,27,0,25,0,22,0,21,0,22,0,21,0,20,0,19,0,19,0,22,0,27,0,29,0,26,0,24,0, +23,0,24,0,25,0,24,0,19,0,15,0,15,0,16,0,15,0,15,0,15,0,15,0,15,0,18,0,20,0,19,0, +18,0,16,0,15,0,14,0,13,0,11,0,10,0,13,0,13,0,10,0,11,0,13,0,13,0,12,0,14,0,18,0, +18,0,14,0,12,0,11,0,13,0,12,0,11,0,11,0,12,0,13,0,11,0,11,0,14,0,16,0,17,0,15,0, +14,0,15,0,16,0,15,0,10,0,6,0,5,0,6,0,7,0,9,0,11,0,12,0,11,0,8,0,5,0,4,0, +4,0,3,0,255,255,250,255,248,255,251,255,255,255,254,255,250,255,248,255,249,255,251,255,251,255,248,255,243,255,241,255, +240,255,240,255,238,255,238,255,239,255,241,255,244,255,245,255,244,255,241,255,239,255,238,255,239,255,239,255,237,255,237,255, +240,255,241,255,239,255,237,255,236,255,236,255,237,255,240,255,242,255,242,255,243,255,245,255,244,255,242,255,241,255,240,255, +239,255,237,255,236,255,235,255,236,255,238,255,238,255,238,255,237,255,235,255,233,255,232,255,232,255,230,255,229,255,229,255, +229,255,227,255,226,255,226,255,225,255,222,255,220,255,219,255,219,255,218,255,220,255,225,255,228,255,225,255,221,255,221,255, +220,255,215,255,211,255,210,255,212,255,213,255,216,255,218,255,220,255,222,255,223,255,221,255,220,255,221,255,222,255,220,255, +220,255,220,255,220,255,222,255,222,255,221,255,221,255,222,255,222,255,223,255,225,255,227,255,226,255,225,255,226,255,226,255, +224,255,223,255,224,255,225,255,225,255,224,255,225,255,227,255,230,255,228,255,225,255,223,255,223,255,223,255,225,255,227,255, +225,255,221,255,221,255,223,255,224,255,224,255,223,255,224,255,224,255,224,255,222,255,220,255,219,255,220,255,220,255,221,255, +220,255,219,255,220,255,223,255,224,255,220,255,218,255,220,255,225,255,227,255,226,255,223,255,222,255,224,255,226,255,226,255, +225,255,226,255,226,255,226,255,227,255,229,255,230,255,230,255,231,255,231,255,232,255,234,255,235,255,235,255,234,255,235,255, +234,255,233,255,233,255,236,255,237,255,235,255,234,255,236,255,235,255,233,255,235,255,238,255,239,255,238,255,237,255,236,255, +234,255,234,255,233,255,233,255,233,255,232,255,232,255,233,255,234,255,234,255,234,255,233,255,233,255,233,255,234,255,235,255, +233,255,230,255,230,255,231,255,234,255,237,255,239,255,240,255,242,255,242,255,240,255,240,255,242,255,244,255,243,255,243,255, +243,255,243,255,246,255,251,255,250,255,249,255,253,255,2,0,2,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0, +4,0,8,0,9,0,9,0,9,0,10,0,10,0,9,0,8,0,7,0,10,0,13,0,14,0,12,0,9,0,8,0, +9,0,9,0,9,0,10,0,14,0,18,0,18,0,15,0,12,0,12,0,15,0,17,0,17,0,16,0,18,0,20,0, +20,0,18,0,17,0,18,0,21,0,23,0,24,0,25,0,26,0,28,0,32,0,35,0,33,0,30,0,29,0,31,0, +32,0,33,0,34,0,37,0,41,0,42,0,41,0,41,0,43,0,45,0,44,0,43,0,42,0,42,0,42,0,44,0, +46,0,45,0,45,0,46,0,46,0,44,0,44,0,46,0,47,0,48,0,47,0,44,0,41,0,39,0,38,0,37,0, +38,0,40,0,40,0,41,0,41,0,41,0,41,0,41,0,41,0,40,0,40,0,42,0,41,0,40,0,39,0,41,0, +43,0,44,0,45,0,44,0,41,0,40,0,41,0,44,0,46,0,45,0,44,0,46,0,47,0,49,0,51,0,51,0, +50,0,50,0,51,0,51,0,49,0,47,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,48,0,47,0,48,0, +49,0,48,0,46,0,44,0,42,0,41,0,41,0,41,0,39,0,36,0,35,0,36,0,38,0,39,0,38,0,37,0, +35,0,33,0,33,0,34,0,34,0,33,0,33,0,33,0,33,0,33,0,32,0,31,0,31,0,32,0,31,0,28,0, +27,0,28,0,30,0,31,0,33,0,35,0,36,0,35,0,34,0,32,0,32,0,34,0,34,0,32,0,31,0,32,0, +32,0,30,0,29,0,29,0,30,0,30,0,30,0,28,0,27,0,27,0,27,0,26,0,24,0,22,0,20,0,20,0, +19,0,17,0,16,0,18,0,21,0,20,0,16,0,14,0,12,0,11,0,10,0,9,0,7,0,6,0,7,0,9,0, +8,0,6,0,6,0,6,0,6,0,3,0,2,0,3,0,5,0,7,0,6,0,4,0,1,0,1,0,1,0,1,0, +0,0,255,255,1,0,4,0,3,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,255,255,253,255, +252,255,252,255,252,255,250,255,250,255,250,255,252,255,254,255,253,255,250,255,248,255,249,255,248,255,245,255,243,255,243,255, +243,255,243,255,244,255,244,255,242,255,242,255,244,255,244,255,243,255,242,255,241,255,239,255,237,255,236,255,236,255,238,255, +240,255,240,255,240,255,240,255,241,255,241,255,241,255,241,255,240,255,240,255,240,255,240,255,241,255,242,255,243,255,243,255, +244,255,245,255,246,255,246,255,246,255,245,255,244,255,245,255,244,255,243,255,244,255,247,255,247,255,245,255,245,255,245,255, +246,255,246,255,246,255,246,255,246,255,245,255,244,255,244,255,245,255,245,255,244,255,243,255,242,255,242,255,241,255,242,255, +243,255,243,255,242,255,241,255,242,255,243,255,243,255,242,255,240,255,240,255,241,255,243,255,243,255,241,255,240,255,241,255, +241,255,241,255,241,255,241,255,241,255,242,255,244,255,245,255,244,255,243,255,243,255,244,255,244,255,243,255,243,255,245,255, +246,255,245,255,243,255,244,255,244,255,245,255,248,255,249,255,248,255,246,255,245,255,246,255,245,255,244,255,243,255,244,255, +246,255,247,255,246,255,247,255,248,255,247,255,245,255,243,255,243,255,244,255,244,255,244,255,243,255,243,255,243,255,243,255, +243,255,244,255,244,255,243,255,243,255,244,255,244,255,243,255,242,255,240,255,239,255,238,255,237,255,238,255,240,255,243,255, +243,255,244,255,245,255,246,255,244,255,241,255,241,255,242,255,242,255,242,255,243,255,244,255,245,255,245,255,244,255,244,255, +245,255,246,255,247,255,248,255,248,255,248,255,248,255,247,255,248,255,249,255,249,255,248,255,248,255,248,255,249,255,249,255, +250,255,250,255,250,255,250,255,251,255,251,255,250,255,250,255,249,255,247,255,246,255,246,255,247,255,248,255,249,255,248,255, +247,255,246,255,247,255,248,255,247,255,247,255,247,255,249,255,250,255,249,255,248,255,247,255,246,255,247,255,247,255,247,255, +247,255,248,255,250,255,251,255,250,255,250,255,250,255,251,255,252,255,252,255,251,255,250,255,250,255,251,255,253,255,254,255, +254,255,253,255,255,255,0,0,0,0,0,0,255,255,255,255,253,255,253,255,254,255,0,0,1,0,1,0,0,0,0,0, +1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0, +2,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,4,0,4,0,3,0,3,0, +4,0,4,0,5,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,5,0,6,0,6,0, +5,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,3,0,4,0,4,0, +3,0,3,0,3,0,3,0,3,0,1,0,0,0,1,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,2,0, +3,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0, +3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,2,0, +0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255, +253,255,252,255,252,255,252,255,253,255,254,255,253,255,252,255,252,255,252,255,252,255,251,255,252,255,252,255,252,255,252,255, +251,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,252,255,252,255,251,255,251,255,251,255,252,255,251,255,251,255, +251,255,251,255,251,255,252,255,251,255,250,255,250,255,251,255,251,255,251,255,250,255,251,255,251,255,251,255,252,255,252,255, +252,255,251,255,251,255,251,255,252,255,251,255,250,255,250,255,250,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255, +251,255,251,255,252,255,251,255,251,255,250,255,251,255,251,255,252,255,252,255,252,255,252,255,251,255,251,255,252,255,253,255, +252,255,251,255,251,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255, +254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0, +1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0, +2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,2,0,2,0,3,0, +3,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0, +2,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0, +0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0, +0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0, +2,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +1,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0, +1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,255,255,254,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255, +255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,1,0,1,0,2,0,3,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0, +2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0, +2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,2,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,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,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,2,0, +2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0, +1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0, +1,0,1,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0, +2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0, +1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0, +0,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0, +255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255, +0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +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,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,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,1,0,1,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,2,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,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,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,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,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0, +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,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,1,0,1,0, +1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0, +0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,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,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,0,0, +0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,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,255,255,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,0,0,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0, +1,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,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,255,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,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,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,1,0,0,0,0,0,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,0,0,0, +0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,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,255,255,0,0,0,0,0,0,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,255,255,255,255,0,0, +0,0,1,0,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,255,255,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,0,0,0,0,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,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,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,255,255,255,255,0,0,0,0, +1,0,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,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,1,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpigdeath.pcm b/src/client/sound/data/zpigdeath.pcm new file mode 100755 index 0000000..a4c7ff3 --- /dev/null +++ b/src/client/sound/data/zpigdeath.pcm @@ -0,0 +1,4638 @@ +unsigned char PCM_zpigdeath[148338] = { +1,0,0,0,2,0,0,0,68,172,0,0,177,33,1,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0, +1,0,255,255,252,255,249,255,248,255,251,255,255,255,255,255,255,255,4,0,10,0,14,0,14,0,12,0,11,0,11,0, +4,0,250,255,245,255,243,255,240,255,240,255,247,255,255,255,8,0,14,0,15,0,16,0,22,0,25,0,22,0,13,0, +253,255,240,255,242,255,250,255,254,255,5,0,16,0,15,0,7,0,7,0,10,0,8,0,12,0,13,0,3,0,253,255, +248,255,224,255,203,255,220,255,249,255,9,0,24,0,38,0,39,0,50,0,66,0,48,0,18,0,18,0,8,0,222,255, +202,255,198,255,172,255,164,255,183,255,186,255,209,255,30,0,71,0,59,0,85,0,107,0,58,0,27,0,29,0,223,255, +158,255,168,255,140,255,53,255,38,255,66,255,88,255,207,255,118,0,168,0,166,0,192,0,135,0,27,0,24,0,44,0, +233,255,163,255,115,255,33,255,242,254,1,255,21,255,100,255,13,0,153,0,231,0,38,1,36,1,224,0,164,0,87,0, +231,255,142,255,49,255,196,254,173,254,228,254,28,255,158,255,111,0,248,0,57,1,118,1,95,1,234,0,133,0,34,0, +158,255,64,255,244,254,156,254,148,254,222,254,62,255,245,255,222,0,82,1,114,1,138,1,69,1,205,0,136,0,31,0, +178,255,211,255,207,255,23,255,174,254,214,254,205,254,39,255,98,0,72,1,118,1,180,1,155,1,233,0,177,0,206,0, +63,0,176,255,181,255,101,255,227,254,22,255,88,255,57,255,169,255,130,0,198,0,209,0,21,1,0,1,179,0,170,0, +107,0,222,255,184,255,177,255,52,255,225,254,28,255,69,255,71,255,135,255,208,255,26,0,180,0,24,1,184,0,55,0, +31,0,0,0,191,255,187,255,197,255,174,255,186,255,195,255,133,255,117,255,211,255,30,0,70,0,157,0,192,0,73,0, +164,255,51,255,248,254,8,255,53,255,36,255,24,255,120,255,23,0,190,0,72,1,114,1,94,1,80,1,223,0,230,255, +50,255,1,255,178,254,51,254,238,253,30,254,244,254,16,0,149,0,223,0,243,1,28,3,7,3,24,2,59,1,110,0, +174,255,41,255,189,254,104,254,69,254,42,254,77,254,26,255,54,0,32,1,1,2,202,2,240,2,100,2,155,1,251,0, +147,0,245,255,248,254,104,254,154,254,194,254,184,254,47,255,7,0,174,0,77,1,245,1,62,2,48,2,247,1,100,1, +164,0,19,0,139,255,9,255,244,254,44,255,65,255,120,255,66,0,47,1,136,1,108,1,113,1,127,1,39,1,173,0, +140,0,117,0,9,0,163,255,157,255,227,255,67,0,80,0,252,255,47,0,51,1,224,1,169,1,64,1,206,0,26,0, +157,255,144,255,125,255,84,255,76,255,93,255,189,255,133,0,56,1,146,1,188,1,114,1,158,0,241,255,222,255,6,0, +226,255,69,255,160,254,162,254,41,255,118,255,131,255,220,255,161,0,125,1,228,1,150,1,46,1,32,1,223,0,16,0, +13,255,9,254,69,253,66,253,220,253,195,254,36,0,124,1,212,1,149,1,125,1,56,1,215,0,211,0,137,0,124,255, +115,254,189,253,68,253,187,253,13,255,250,255,93,0,212,0,41,1,65,1,104,1,58,1,168,0,80,0,210,255,159,254, +154,253,143,253,49,254,33,255,218,255,248,255,88,0,104,1,235,1,147,1,111,1,68,1,111,0,153,255,244,254,27,254, +214,253,120,254,236,254,63,255,46,0,227,0,250,0,162,1,165,2,160,2,218,1,22,1,255,255,215,254,88,254,21,254, +208,253,62,254,44,255,198,255,97,0,115,1,101,2,185,2,128,2,198,1,232,0,109,0,33,0,142,255,239,254,164,254, +188,254,61,255,1,0,152,0,211,0,230,0,246,0,11,1,11,1,191,0,90,0,94,0,150,0,59,0,83,255,173,254, +175,254,62,255,20,0,193,0,255,0,227,0,115,0,184,255,54,255,71,255,157,255,221,255,215,255,112,255,18,255,94,255, +31,0,162,0,168,0,91,0,28,0,67,0,101,0,254,255,133,255,86,255,248,254,134,254,138,254,162,254,152,254,29,255, +9,0,140,0,193,0,225,0,172,0,123,0,94,0,130,255,75,254,253,253,22,254,168,253,127,253,41,254,239,254,133,255, +228,255,206,255,210,255,91,0,150,0,85,0,74,0,4,0,251,254,31,254,253,253,13,254,62,254,128,254,86,254,34,254, +134,254,19,255,148,255,106,0,25,1,240,0,53,0,73,255,125,254,102,254,217,254,244,254,167,254,145,254,242,254,144,255, +224,255,189,255,237,255,171,0,2,1,184,0,94,0,211,255,27,255,223,254,228,254,207,254,69,255,12,0,41,0,63,0, +12,1,145,1,137,1,189,1,145,1,140,0,3,0,60,0,255,255,130,255,144,255,188,255,10,0,13,1,21,2,107,2, +125,2,89,2,186,1,64,1,56,1,253,0,129,0,77,0,88,0,114,0,180,0,16,1,115,1,210,1,8,2,56,2, +159,2,218,2,150,2,71,2,35,2,200,1,50,1,191,0,155,0,212,0,76,1,180,1,15,2,159,2,33,3,39,3, +223,2,167,2,105,2,9,2,192,1,177,1,159,1,114,1,113,1,171,1,214,1,246,1,89,2,243,2,122,3,164,3, +52,3,102,2,215,1,122,1,231,0,142,0,251,0,189,1,63,2,100,2,32,2,186,1,199,1,16,2,242,1,155,1, +98,1,26,1,239,0,56,1,143,1,161,1,196,1,216,1,104,1,212,0,156,0,126,0,89,0,109,0,122,0,59,0, +27,0,76,0,88,0,70,0,146,0,249,0,4,1,11,1,69,1,42,1,184,0,127,0,58,0,124,255,190,254,78,254, +242,253,239,253,86,254,88,254,6,254,108,254,93,255,229,255,20,0,36,0,203,255,69,255,246,254,154,254,48,254,2,254, +189,253,50,253,193,252,99,252,2,252,24,252,160,252,24,253,137,253,239,253,230,253,185,253,218,253,15,254,100,254,250,254, +0,255,47,254,110,253,225,252,32,252,214,251,86,252,172,252,139,252,131,252,151,252,207,252,92,253,185,253,178,253,4,254, +165,254,193,254,92,254,234,253,133,253,106,253,173,253,202,253,171,253,183,253,221,253,229,253,222,253,182,253,165,253,17,254, +113,254,19,254,142,253,147,253,194,253,208,253,15,254,144,254,20,255,109,255,125,255,106,255,137,255,187,255,176,255,136,255, +109,255,34,255,135,254,29,254,100,254,242,254,0,255,214,254,60,255,216,255,241,255,220,255,26,0,130,0,246,0,76,1, +29,1,173,0,127,0,76,0,14,0,88,0,182,0,106,0,28,0,66,0,28,0,185,255,233,255,81,0,78,0,39,0, +26,0,48,0,165,0,9,1,206,0,172,0,40,1,79,1,211,0,192,0,50,1,70,1,6,1,227,0,152,0,253,255, +118,255,45,255,27,255,92,255,163,255,131,255,117,255,249,255,107,0,121,0,21,1,51,2,89,2,120,1,212,0,83,0, +75,255,94,254,240,253,152,253,138,253,190,253,96,253,12,253,14,254,135,255,75,0,20,1,244,1,212,1,48,1,243,0, +96,0,22,255,207,253,148,252,117,251,51,251,122,251,125,251,215,251,231,252,221,253,185,254,255,255,36,1,168,1,148,1, +144,0,205,254,115,253,176,252,232,251,88,251,74,251,111,251,242,251,223,252,100,253,134,253,78,254,147,255,48,0,228,255, +37,255,80,254,200,253,132,253,6,253,101,252,53,252,88,252,84,252,117,252,75,253,121,254,14,255,217,254,127,254,94,254, +97,254,157,254,255,254,254,254,83,254,69,253,75,252,18,252,249,252,54,254,225,254,74,255,202,255,223,255,140,255,171,255, +72,0,168,0,132,0,232,255,248,254,87,254,124,254,219,254,239,254,250,254,20,255,10,255,47,255,216,255,162,0,104,1, +101,2,15,3,199,2,47,2,210,1,64,1,175,0,200,0,237,0,96,0,194,255,139,255,154,255,95,0,177,1,104,2, +203,2,227,3,217,4,228,4,29,5,155,5,14,5,215,3,16,3,102,2,226,1,60,2,193,2,173,2,217,2,159,3, +81,4,28,5,10,6,16,6,97,5,111,5,37,6,75,6,218,5,141,5,118,5,64,5,215,4,105,4,67,4,153,4, +74,5,204,5,186,5,134,5,200,5,47,6,75,6,81,6,59,6,238,5,226,5,225,5,54,5,184,4,122,5,76,6, +239,5,68,5,34,5,94,5,227,5,62,6,221,5,125,5,163,5,130,5,53,5,158,5,19,6,220,5,195,5,230,5, +151,5,79,5,142,5,193,5,185,5,100,5,60,4,10,3,25,3,138,3,52,3,250,2,94,3,108,3,2,3,186,2, +154,2,213,2,121,3,113,3,64,2,9,1,107,0,220,255,67,255,231,254,158,254,89,254,50,254,231,253,133,253,204,253, +246,254,16,0,34,0,48,255,211,253,133,252,126,251,198,250,80,250,38,250,36,250,214,249,62,249,41,249,17,250,135,251, +1,253,27,254,109,254,242,253,206,252,236,250,207,248,129,247,10,247,189,246,124,246,27,246,79,245,234,244,243,245,15,248, +109,250,98,252,240,252,1,252,215,250,227,249,189,248,224,247,154,247,242,246,169,245,166,244,71,244,130,244,106,245,118,246, +58,247,40,248,54,249,212,249,103,250,87,251,230,251,157,251,221,250,181,249,73,248,96,247,108,247,66,248,142,249,115,250, +57,250,158,249,195,249,162,250,226,251,118,253,184,254,197,254,228,253,39,253,46,253,234,253,244,254,181,255,189,255,29,255, +52,254,105,253,51,253,230,253,20,255,211,255,253,255,57,0,190,0,97,1,64,2,38,3,105,3,56,3,72,3,70,3, +163,2,25,2,118,2,58,3,199,3,37,4,66,4,64,4,181,4,103,5,150,5,238,5,83,7,157,8,116,8,146,7, +220,6,48,6,234,5,75,6,79,6,221,5,46,6,250,6,20,7,24,7,203,7,153,8,134,9,190,10,232,10,152,9, +115,8,2,8,107,7,221,6,146,6,226,5,20,5,217,4,208,4,41,5,202,6,238,8,237,9,159,9,184,8,234,7, +239,7,120,8,91,8,101,7,34,6,208,4,193,3,62,3,44,3,192,3,236,4,164,5,113,5,253,4,167,4,180,4, +69,5,53,5,228,3,166,2,240,1,248,0,160,0,187,1,212,2,34,3,44,3,79,2,181,0,61,0,114,0,152,255, +165,254,78,254,32,253,191,251,239,251,148,252,215,252,246,253,50,255,2,255,205,254,143,255,205,255,75,255,165,254,3,253, +155,250,227,248,139,247,87,246,213,246,225,248,108,250,32,251,223,251,202,252,243,253,22,255,82,255,190,254,201,253,238,251, +118,249,185,247,206,246,81,246,195,246,216,247,162,248,95,249,93,250,59,251,73,252,115,253,131,253,165,252,1,252,1,251, +41,249,241,247,214,247,218,247,29,248,247,248,182,249,96,250,93,251,12,252,123,252,122,253,63,254,239,253,149,253,88,253, +23,252,156,250,98,250,218,250,93,251,72,252,21,253,98,253,29,254,31,255,112,255,191,255,104,0,7,0,219,254,172,254, +240,254,98,254,1,254,129,254,222,254,248,254,64,255,56,255,24,255,172,255,22,0,134,255,2,255,218,254,52,254,183,253, +131,254,219,255,187,0,67,1,118,1,38,1,158,0,37,0,234,255,22,0,18,0,35,255,196,253,2,253,63,253,39,254, +26,255,238,255,25,1,93,2,225,2,242,2,80,3,163,3,169,3,123,3,89,2,14,0,252,253,199,252,23,252,88,252, +113,253,95,254,158,255,201,1,98,3,195,3,79,4,3,5,224,4,90,4,108,3,99,1,99,255,93,254,32,253,181,251, +145,251,79,252,70,253,24,255,236,0,76,1,94,1,60,2,135,2,154,1,133,0,219,255,186,255,206,255,204,254,216,252, +42,252,76,253,127,254,241,254,48,255,168,255,54,0,41,0,75,255,179,254,213,254,194,254,123,254,174,254,233,254,255,254, +160,255,73,0,50,0,245,255,177,255,225,254,70,254,30,254,16,253,114,251,242,250,19,251,249,250,185,251,139,253,42,255, +146,0,7,2,133,2,238,1,90,1,212,0,248,255,33,255,37,254,173,252,171,251,219,251,121,252,19,253,71,254,49,0, +27,2,125,3,24,4,231,3,96,3,0,3,151,2,175,1,89,0,40,255,188,254,96,255,193,0,43,2,127,3,40,5, +193,6,57,7,125,6,115,5,152,4,222,3,33,3,58,2,150,1,228,1,164,2,218,2,14,3,89,4,127,6,163,8, +26,10,56,10,59,9,97,8,3,8,127,7,217,6,61,6,82,5,117,4,122,4,34,5,255,5,141,7,194,9,139,11, +70,12,255,11,16,11,113,10,151,10,126,10,154,9,232,8,204,8,148,8,77,8,136,8,40,9,8,10,240,10,221,10, +148,9,133,8,97,8,123,8,182,8,26,9,225,8,92,8,191,8,137,9,192,9,41,10,246,10,203,10,154,9,75,8, +151,6,197,4,53,4,102,4,222,3,44,3,42,3,100,3,12,4,110,5,74,6,89,6,9,7,237,7,44,7,30,5, +67,3,171,1,249,255,76,254,178,252,191,251,63,252,129,253,75,254,252,254,94,0,205,1,55,2,121,1,6,0,94,254, +220,252,85,251,98,249,100,247,99,246,137,246,253,246,102,247,44,248,77,249,108,250,69,251,114,251,242,250,101,250,142,249, +139,247,254,244,18,243,120,241,5,240,138,239,223,239,159,240,118,242,209,244,228,245,251,245,87,246,136,246,70,246,207,245, +3,244,194,240,64,238,238,236,160,235,142,235,236,237,203,240,188,242,59,244,241,244,232,244,107,245,226,245,233,244,157,243, +216,242,71,241,1,239,113,237,126,236,77,236,0,238,144,240,31,242,76,243,9,245,146,246,143,247,32,248,168,247,101,246, +77,245,238,243,248,241,205,240,220,240,238,240,235,240,180,241,37,243,6,245,144,247,7,250,90,251,181,251,168,251,65,251, +204,250,147,250,41,250,148,249,129,249,158,249,19,249,149,248,79,249,179,250,179,251,131,252,126,253,114,254,95,255,38,0, +109,0,193,0,233,1,56,3,195,3,199,3,88,3,50,2,24,1,210,0,238,0,69,1,77,2,97,3,164,3,192,3, +113,4,104,5,118,6,128,7,3,8,57,8,196,8,10,9,128,8,60,8,212,8,71,9,54,9,18,9,118,8,102,7, +45,7,30,8,59,9,52,10,213,10,102,10,165,9,10,10,5,11,176,11,209,12,29,14,209,13,101,12,178,11,143,11, +71,11,25,11,93,10,189,8,255,7,182,8,65,9,186,9,105,11,90,13,102,14,30,15,95,15,173,14,55,14,93,14, +138,13,134,11,165,9,69,8,90,7,21,7,0,7,76,7,30,9,191,11,27,13,45,13,116,13,67,14,172,14,144,13, +249,10,189,8,239,7,32,7,121,5,111,4,209,4,234,5,47,7,46,8,144,8,4,9,200,9,185,9,116,8,207,6, +55,5,245,3,73,3,67,2,103,0,154,255,78,1,227,3,62,5,124,5,179,5,228,5,241,4,69,2,38,255,88,253, +170,252,144,251,204,249,189,248,82,249,27,251,71,253,109,255,41,1,40,2,175,2,207,2,153,1,188,254,177,251,158,249, +224,247,180,245,136,243,129,242,104,243,73,245,93,246,64,247,251,249,135,253,25,255,212,254,39,254,125,252,116,249,66,246, +91,243,224,240,2,240,198,240,248,241,248,243,18,247,163,249,118,251,187,253,179,254,100,252,69,249,139,247,101,245,87,242, +162,240,40,240,176,239,90,240,169,242,139,245,93,249,157,253,121,255,56,255,142,255,45,255,11,252,181,248,216,246,78,244, +42,241,146,239,81,239,114,240,67,244,47,249,29,253,7,1,137,4,80,5,130,4,221,3,126,1,37,253,151,249,139,246, +168,242,112,240,181,241,204,244,237,248,182,253,49,1,197,3,104,7,255,9,223,8,2,6,40,3,249,254,58,250,139,247, +180,246,226,246,33,249,215,252,206,255,56,2,34,5,179,7,115,9,182,10,16,10,175,6,82,3,203,1,13,0,69,253, +219,251,156,252,20,254,21,0,235,2,16,6,230,9,65,14,79,16,209,14,51,12,150,9,16,6,157,2,91,0,102,254, +116,253,86,255,131,2,211,4,84,7,168,10,107,13,34,15,95,15,74,13,185,10,177,9,34,8,123,4,84,1,72,0, +72,0,99,1,182,3,196,5,137,7,248,9,209,11,35,12,81,12,169,12,27,12,207,10,200,8,91,5,34,2,80,1, +219,1,237,1,30,2,78,3,249,4,159,6,24,8,63,9,32,10,39,10,131,8,36,6,158,4,149,3,34,2,215,0, +61,0,217,255,150,255,250,255,111,1,18,4,208,6,223,7,86,7,187,6,252,5,101,4,11,3,162,2,235,1,130,0, +88,255,89,254,68,253,51,253,150,254,84,0,167,1,80,2,39,2,43,2,97,3,164,4,106,4,66,3,247,1,240,255, +36,253,248,250,38,250,47,250,203,250,208,251,50,252,88,251,148,250,58,251,169,252,202,253,114,254,169,254,213,254,128,255, +149,255,17,254,197,252,249,252,138,252,161,250,112,249,73,249,216,248,169,248,241,248,197,248,86,249,95,251,128,252,96,252, +76,253,147,254,222,254,221,255,45,1,24,0,222,253,178,252,20,251,237,248,106,248,97,248,108,247,186,247,115,249,56,250, +245,250,247,252,106,254,49,255,186,0,55,1,118,255,13,254,203,253,238,252,215,251,98,251,151,250,125,249,245,248,162,248, +203,248,129,250,215,252,87,254,52,255,186,255,217,255,42,0,213,0,85,1,115,1,197,0,36,255,207,253,113,253,23,253, +157,252,141,252,107,252,53,252,196,252,192,253,193,254,100,0,226,1,187,1,198,0,106,0,116,0,239,0,184,1,21,1, +178,254,150,252,78,251,252,249,35,249,74,249,238,249,61,251,9,253,213,253,3,254,196,255,216,2,17,5,162,5,142,4, +243,1,54,255,89,253,142,251,190,249,19,249,73,249,43,249,254,248,152,249,32,251,149,253,34,0,15,1,42,0,33,255, +193,254,126,254,228,253,165,252,183,250,216,248,145,247,153,246,0,246,72,246,103,247,255,248,138,250,93,251,200,251,177,252, +114,253,151,252,86,250,238,247,34,246,104,245,147,245,226,245,145,246,252,247,8,249,96,249,89,250,225,251,166,252,228,252, +2,253,16,252,242,249,126,247,30,245,211,243,71,244,211,244,146,244,102,245,214,247,66,250,134,252,233,254,58,0,148,0, +60,1,134,1,126,0,214,254,170,252,177,249,0,247,1,245,86,243,150,243,1,247,44,251,177,253,138,255,64,2,148,5, +96,8,110,9,101,8,31,6,36,3,81,255,95,251,202,248,106,248,1,250,84,252,255,253,244,254,157,0,88,4,199,9, +75,14,140,15,113,14,28,13,85,11,40,8,218,4,118,3,58,4,75,5,159,4,246,2,143,3,103,7,21,12,171,15, +212,17,83,18,129,17,25,16,254,13,180,11,141,10,20,10,3,9,193,7,0,7,10,7,18,9,225,12,193,15,197,16, +136,17,26,18,142,17,147,16,222,15,81,15,64,15,91,15,156,14,195,13,66,14,132,15,132,16,93,17,205,17,121,17, +51,17,145,17,20,18,105,18,160,18,143,18,69,18,24,18,46,18,143,18,242,18,133,18,251,16,90,15,193,14,200,14, +45,14,40,13,63,13,130,14,124,15,233,15,190,16,56,18,176,19,226,19,210,17,30,15,109,14,210,14,165,13,116,11, +222,9,111,8,58,7,54,7,170,7,36,8,197,9,171,11,196,11,249,10,233,10,215,10,90,10,200,9,236,7,144,4, +58,2,184,1,242,0,95,255,122,254,160,254,252,254,199,254,163,253,123,252,232,252,101,254,133,254,143,252,126,250,64,250, +198,251,161,253,117,254,203,253,16,252,218,249,115,247,42,245,157,243,1,243,116,242,214,240,104,238,233,236,209,237,166,240, +140,243,84,245,42,246,127,246,90,246,178,245,197,244,248,243,37,243,108,241,91,238,189,234,199,231,89,230,207,230,101,232, +227,233,52,235,253,236,102,239,59,242,173,244,108,245,192,244,233,243,39,242,141,238,211,234,85,232,51,230,81,228,62,227, +179,226,212,227,2,232,222,236,252,239,234,242,65,246,147,247,112,246,81,244,146,241,44,239,216,237,133,235,216,231,110,230, +97,232,215,234,148,236,91,238,178,240,76,244,133,248,249,250,142,251,232,251,18,251,175,247,61,243,141,239,140,237,227,237, +13,239,239,238,2,239,111,241,36,245,182,248,228,251,170,253,5,254,154,254,234,254,83,253,63,251,199,250,16,251,112,250, +165,248,158,246,100,246,37,249,211,252,169,254,230,254,107,255,113,0,162,0,197,255,191,255,223,1,105,4,220,4,57,3, +164,1,16,2,83,4,211,5,160,4,4,2,183,255,117,253,86,251,178,250,22,252,40,255,217,2,10,5,32,5,153,5, +26,8,46,11,28,13,72,13,149,11,173,8,7,5,78,0,224,251,117,250,164,251,140,252,177,252,185,253,79,0,55,4, +154,8,188,11,13,13,187,13,170,13,136,11,9,8,248,4,78,2,132,255,43,253,59,251,135,249,171,249,119,252,203,255, +119,2,192,5,54,9,133,10,145,9,220,7,27,6,189,4,69,3,2,0,238,251,103,250,102,251,81,252,45,253,0,255, +33,1,99,3,219,5,43,7,6,7,110,6,235,4,86,2,83,0,234,254,45,253,84,252,153,252,36,252,222,251,243,253, +13,1,127,3,236,5,230,7,141,8,195,8,49,8,199,5,169,3,122,3,190,2,47,0,176,253,210,251,130,250,102,251, +141,254,183,1,20,4,252,5,50,7,24,8,54,9,194,9,94,9,189,8,148,7,81,5,249,2,177,1,63,1,45,1, +150,1,124,2,133,3,131,4,240,5,104,8,109,11,129,13,162,13,100,12,80,11,3,11,200,10,147,10,28,11,126,11, +78,10,181,8,194,8,124,10,224,12,176,14,139,14,71,13,26,13,105,13,111,12,94,11,147,11,239,11,211,11,216,11, +238,11,206,12,130,15,88,18,62,19,18,19,179,18,90,17,142,15,196,14,193,14,143,14,189,13,51,12,14,11,189,11, +199,13,17,16,138,18,140,20,221,20,250,19,76,19,41,19,44,19,159,18,226,16,175,14,64,13,99,12,200,11,89,12, +41,14,203,15,149,16,229,16,147,16,123,15,77,14,113,13,126,12,78,11,70,10,177,9,186,9,99,10,23,11,65,11, +27,11,207,10,243,9,193,8,213,7,201,6,37,5,130,3,9,2,61,0,189,254,141,254,94,255,49,0,48,0,34,255, +85,254,167,254,81,254,65,252,190,250,45,251,190,251,31,251,194,249,64,248,68,247,176,246,26,245,201,242,207,241,12,242, +181,241,177,240,164,239,181,238,131,238,60,239,55,240,156,241,136,243,229,244,10,245,228,243,142,241,179,239,82,239,245,237, +49,234,56,230,10,227,93,224,222,223,206,225,53,228,167,231,121,236,103,239,254,239,5,241,51,241,199,238,120,236,122,234, +19,230,134,225,206,223,218,222,125,222,31,225,148,228,140,230,35,233,18,236,104,237,162,239,27,243,2,243,101,239,176,236, +115,234,86,231,188,229,157,229,59,229,109,230,91,233,158,234,55,235,103,238,8,242,162,243,248,244,219,245,64,244,238,241, +151,240,115,238,252,235,235,235,38,237,125,237,112,238,54,241,139,244,62,248,3,252,87,253,15,252,108,251,242,251,26,251, +216,248,36,247,132,246,7,247,179,248,17,250,108,250,109,251,137,253,240,254,63,255,203,255,244,0,36,2,188,2,33,2, +237,0,224,0,66,2,160,3,77,4,237,4,5,6,81,7,30,8,69,8,125,8,17,9,48,9,41,8,88,6,232,4, +252,4,131,6,133,8,120,10,12,12,19,13,88,14,21,16,178,16,232,15,123,15,83,15,250,13,234,11,3,10,151,8, +24,9,76,11,101,12,166,12,148,14,165,16,240,16,192,17,148,19,168,19,65,18,226,16,173,14,171,12,232,12,122,13, +29,13,13,14,172,15,194,15,54,16,191,17,79,17,134,15,100,15,118,15,76,14,217,13,226,13,223,12,17,12,126,11, +1,10,70,10,148,13,126,15,150,14,113,14,179,14,173,12,64,10,78,9,61,8,65,7,167,7,205,7,48,7,223,7, +230,8,65,8,6,8,100,9,152,9,249,8,163,10,132,12,234,10,52,8,115,7,240,6,108,5,240,3,44,2,149,0, +25,1,243,1,157,0,248,255,110,2,18,5,180,6,10,9,107,10,100,9,185,8,184,8,170,6,200,3,48,2,65,0, +153,253,208,251,73,250,172,249,106,252,11,0,245,0,233,1,92,5,98,8,229,9,50,11,118,10,186,6,145,2,130,254, +244,249,66,247,18,247,4,247,108,247,100,249,2,251,119,252,147,0,209,5,61,8,238,7,104,6,66,3,200,254,37,250, +213,245,52,243,142,243,150,245,0,248,131,251,129,255,10,2,144,3,85,5,88,6,156,5,186,3,213,0,246,252,57,249, +203,245,38,242,206,239,64,240,64,242,35,245,244,249,119,255,110,3,108,6,147,8,206,7,215,4,54,2,180,254,231,248, +77,243,77,239,49,236,141,235,30,238,24,241,29,244,73,249,249,254,217,2,5,6,229,7,28,6,53,2,83,254,86,249, +59,244,8,242,166,241,196,240,101,240,68,241,239,242,136,246,128,251,166,254,160,255,27,0,59,255,158,252,79,250,96,248, +201,245,50,244,139,244,175,244,10,244,94,244,11,246,164,248,33,252,217,254,244,254,128,253,181,251,138,248,56,244,252,240, +247,238,0,237,66,236,7,238,36,241,26,245,154,250,230,255,61,2,160,1,79,255,28,252,120,249,113,247,2,244,164,239, +243,236,113,235,202,233,44,234,78,238,157,244,53,251,8,0,32,1,74,0,94,0,246,255,98,253,34,250,163,246,100,242, +30,239,51,237,61,235,71,235,85,239,60,244,200,247,153,251,228,254,136,255,9,255,182,254,150,253,99,252,113,251,103,248, +245,243,235,241,74,242,255,242,234,244,138,248,241,251,140,254,202,0,172,1,6,1,73,0,198,255,231,254,248,253,63,253, +150,252,69,252,118,252,236,252,39,254,232,0,73,4,27,6,181,5,224,4,18,5,109,5,151,4,167,2,173,0,172,255, +186,255,188,255,163,255,101,1,169,5,62,10,39,13,6,14,93,13,249,12,240,13,250,13,53,11,236,7,98,6,126,5, +72,4,182,3,222,4,93,8,100,13,24,17,101,18,246,19,21,23,25,25,37,24,202,21,229,19,76,18,217,15,23,12, +76,8,193,6,69,8,36,11,161,13,43,16,189,19,141,23,91,26,88,28,204,29,208,29,218,27,110,24,62,20,91,16, +233,13,212,12,155,12,123,13,118,15,0,18,30,21,205,24,47,28,118,30,37,31,214,29,11,27,229,23,243,20,167,18, +115,17,215,16,80,16,40,16,83,16,214,16,212,18,101,22,169,25,154,27,90,28,67,27,52,24,195,20,43,18,69,16, +137,14,140,12,211,10,206,10,114,12,40,14,203,15,65,18,140,20,149,20,35,18,4,15,219,12,97,11,45,9,35,6, +128,3,161,1,67,0,56,0,103,2,168,5,161,7,123,7,95,6,254,4,152,2,111,255,23,253,142,251,171,249,198,247, +223,246,75,247,72,249,163,251,64,252,4,252,216,252,226,252,87,250,235,246,32,243,149,238,54,236,222,236,95,236,79,234, +0,235,147,238,6,242,186,244,117,246,134,247,243,249,146,251,127,247,24,240,228,234,132,230,147,224,45,220,167,219,28,222, +193,226,78,231,187,233,195,236,35,242,30,246,196,246,163,245,47,242,147,236,255,231,70,228,57,223,107,219,127,219,18,221, +128,222,210,224,243,227,73,232,165,238,182,243,23,244,93,242,62,241,234,238,212,234,35,231,33,228,158,225,251,224,229,225, +31,227,32,230,143,235,45,240,220,241,69,242,11,243,102,244,230,245,182,245,3,243,122,240,150,239,180,237,50,234,212,232, +129,235,59,240,219,244,210,247,142,248,19,249,167,250,102,251,254,250,149,251,73,252,138,250,73,247,137,244,173,242,17,243, +30,246,92,248,25,248,134,248,38,251,199,253,175,255,135,1,187,2,90,3,233,3,222,2,182,255,146,253,47,254,61,255, +61,255,95,255,39,0,87,1,81,3,53,5,58,5,97,4,232,4,176,5,188,4,126,3,231,3,75,5,177,6,146,7, +40,7,151,6,189,7,233,8,249,7,210,6,237,6,167,6,211,5,96,5,54,4,136,2,104,2,8,3,36,3,183,4, +67,8,140,11,40,14,160,15,211,13,97,10,203,8,187,7,33,5,184,2,227,0,104,254,245,252,197,253,110,255,75,2, +223,6,103,10,135,11,224,11,182,11,40,11,88,11,169,10,56,7,102,3,62,1,195,255,20,255,180,255,125,0,128,1, +189,2,12,2,138,0,57,2,237,5,247,7,250,8,165,9,136,8,34,7,6,7,70,6,51,5,231,5,180,5,1,2, +199,253,39,251,164,249,203,250,146,254,75,1,199,2,165,5,153,8,13,10,191,11,77,13,156,12,223,10,48,9,60,6, +242,2,1,1,203,254,186,251,38,250,108,250,79,252,169,1,4,9,189,13,245,15,112,18,145,19,109,17,221,13,255,9, +204,5,124,2,42,255,61,250,133,247,170,250,226,255,175,3,65,8,198,13,72,17,208,18,194,18,182,15,131,11,124,8, +56,4,51,254,180,250,136,250,80,251,184,253,166,1,177,4,57,8,229,13,244,17,133,18,119,18,96,17,7,13,116,7, +86,2,93,253,56,251,8,253,74,254,146,253,127,254,68,1,47,4,121,8,16,13,148,14,74,14,60,14,207,11,146,6, +132,2,102,0,26,254,48,252,128,251,130,251,111,253,206,1,75,5,39,6,241,6,122,8,88,8,10,6,59,3,168,0, +214,254,117,254,91,254,108,253,137,253,29,0,194,2,71,3,225,2,2,3,82,3,10,3,43,1,169,253,221,250,18,250, +74,249,10,248,211,248,218,251,188,254,164,0,183,1,203,1,192,1,3,2,82,1,191,255,96,254,76,252,251,248,34,246, +90,244,67,243,38,244,247,246,222,248,249,248,107,249,79,251,223,253,155,255,35,255,35,253,131,251,20,250,188,247,114,245, +121,244,116,244,136,244,18,244,118,243,93,244,189,246,61,248,11,248,52,247,47,246,167,245,54,246,90,246,128,245,244,245, +214,247,46,248,176,246,222,245,180,246,112,248,131,249,54,248,122,245,228,243,47,243,218,241,239,240,152,241,8,243,192,244, +192,246,122,248,246,249,98,251,42,252,111,252,125,252,55,251,205,248,116,247,4,247,111,245,90,243,170,242,61,243,193,244, +100,247,54,250,191,252,110,255,254,0,61,0,109,255,168,0,70,2,81,2,211,0,214,253,14,250,233,247,85,248,198,249, +128,251,148,253,254,254,185,255,149,1,214,4,15,8,183,10,34,12,246,10,239,7,240,4,62,2,120,0,246,0,55,2, +9,2,250,1,195,3,37,6,188,8,7,12,68,14,159,14,177,14,35,14,36,12,28,11,209,11,76,11,46,9,163,7, +130,6,253,5,224,7,168,10,176,11,98,12,234,13,88,14,248,13,67,15,203,17,132,19,139,19,63,17,153,13,139,11, +154,11,210,11,84,12,42,14,218,15,199,15,230,14,13,15,228,16,68,19,232,19,32,18,195,15,124,14,96,14,77,15, +10,17,136,18,217,18,42,18,14,17,203,15,206,14,148,14,129,14,89,13,90,11,36,10,127,10,2,12,154,13,207,13, +198,12,215,12,167,14,22,16,108,16,178,16,171,16,226,15,147,14,210,11,186,7,92,5,178,5,210,5,196,4,107,4, +47,5,93,6,180,7,94,8,126,8,176,9,39,11,75,10,169,7,114,5,129,3,4,1,36,254,246,250,97,248,36,248, +219,249,98,251,20,252,126,252,165,252,128,252,33,252,33,251,158,249,119,248,126,247,109,245,142,242,255,240,109,241,80,242, +29,243,79,244,183,244,135,243,190,242,87,243,139,243,188,242,19,241,128,237,86,233,191,231,213,231,204,231,216,233,254,237, +128,240,231,241,134,244,107,245,190,242,183,239,197,236,81,232,9,229,22,228,98,226,215,224,150,226,173,229,126,232,178,236, +40,240,237,239,7,239,71,239,157,237,142,234,234,232,143,230,249,225,149,222,175,221,1,222,145,224,252,228,129,232,91,236, +63,242,49,246,234,245,22,245,111,244,204,240,54,235,132,230,79,226,99,223,64,224,129,227,232,230,180,235,173,241,85,246, +117,250,13,255,29,1,199,255,213,253,111,250,84,243,205,235,197,231,129,230,101,231,225,234,236,238,42,242,233,245,163,249, +20,252,1,255,232,2,166,4,21,3,191,255,59,251,39,247,88,246,213,247,114,248,114,248,143,249,127,251,191,253,52,0, +53,2,27,4,129,6,153,7,14,6,49,4,204,3,44,3,123,1,221,0,140,2,131,5,211,8,181,11,39,13,186,13, +129,14,43,14,106,11,39,8,242,5,179,3,174,1,130,1,135,2,97,4,127,8,68,13,252,15,178,18,182,22,38,24, +35,22,137,20,133,19,35,17,124,14,113,11,211,6,157,3,162,3,247,3,251,4,128,9,206,14,12,18,103,21,156,24, +39,25,233,24,238,24,56,22,116,17,191,13,102,10,187,7,31,8,71,9,233,8,94,10,38,14,13,16,124,16,93,18, +75,20,236,20,210,20,178,18,1,15,91,13,88,13,187,11,161,9,93,9,21,10,39,11,161,12,121,13,5,14,105,15, +83,16,195,15,17,15,140,14,155,13,168,12,88,11,94,9,127,8,209,8,32,8,17,7,168,7,232,8,4,10,198,11, +204,12,42,12,121,12,17,14,202,13,217,11,212,10,49,10,11,9,143,8,112,8,157,7,5,7,150,6,209,4,249,2, +30,3,41,4,227,4,3,6,55,7,206,7,151,8,48,9,251,7,213,5,150,4,189,3,110,2,210,0,196,254,41,253, +192,253,73,255,51,255,154,254,161,255,49,1,213,1,254,1,3,2,49,2,23,3,148,3,135,2,85,1,1,1,78,0, +241,254,38,254,61,254,199,254,22,255,12,254,234,251,161,250,15,251,121,252,218,253,54,254,239,253,167,254,211,255,138,255, +184,254,12,255,84,255,98,254,182,252,68,250,158,247,158,246,218,246,136,246,88,246,100,247,240,248,192,250,218,252,7,254, +53,254,115,254,31,254,110,252,136,250,133,249,114,249,141,249,233,247,98,244,43,242,182,242,245,243,34,245,20,247,137,249, +20,252,223,253,118,253,155,252,86,254,116,0,94,255,102,252,82,249,146,245,84,242,191,240,172,239,199,239,253,241,74,243, +188,242,55,244,106,248,92,252,112,255,35,1,237,255,168,253,4,252,207,248,74,244,144,241,172,239,241,236,126,235,192,235, +52,236,142,238,97,243,55,247,102,249,12,252,96,254,94,255,175,255,196,253,209,248,82,244,148,241,53,238,42,235,62,235, +121,237,61,240,180,243,4,247,230,249,178,253,249,0,210,0,39,254,236,250,153,246,217,241,254,238,240,237,196,237,33,239, +100,241,182,242,169,243,240,245,103,249,9,253,94,255,197,254,24,252,146,249,145,246,53,242,123,239,83,240,174,241,127,241, +32,242,21,245,233,248,29,252,241,253,139,254,95,255,76,0,41,255,153,252,151,251,157,251,25,250,213,247,212,246,228,246, +23,248,54,251,237,254,103,1,17,3,149,4,53,5,148,4,55,3,157,1,104,0,180,255,134,254,246,252,25,253,166,255, +123,2,77,4,103,6,72,9,57,11,108,11,3,11,149,10,175,9,56,8,106,6,186,4,33,4,251,4,213,6,135,9, +70,12,142,13,73,14,146,16,14,19,125,19,74,19,183,19,209,18,6,16,106,13,40,12,123,12,38,14,78,15,101,15, +114,16,90,18,50,19,55,20,4,23,113,25,174,25,156,24,193,22,119,20,235,18,3,18,30,17,190,16,126,16,180,15, +244,15,42,18,199,20,83,23,91,26,129,28,148,28,75,27,117,25,245,23,40,23,73,21,206,17,70,15,26,14,108,12, +177,11,18,14,183,17,159,20,203,22,158,23,95,23,206,23,29,24,165,22,119,20,229,17,217,13,248,9,210,7,156,5, +64,3,28,3,165,4,17,6,214,7,237,9,184,11,221,13,53,15,138,13,152,10,149,8,172,5,93,1,87,254,121,252, +189,249,24,247,26,246,203,246,84,249,126,252,255,253,224,254,17,1,79,2,135,0,215,253,95,251,152,247,18,243,243,239, +114,238,24,238,203,238,133,239,106,239,215,238,27,238,162,237,65,238,104,239,238,239,74,240,208,240,81,240,197,238,140,237, +217,236,108,236,76,236,44,235,59,232,123,229,88,228,234,227,67,228,143,229,169,229,101,228,8,229,228,231,23,234,100,235, +253,236,14,238,23,238,77,237,240,234,71,232,227,231,23,232,247,229,81,227,70,226,192,225,13,226,104,228,80,231,226,233, +232,236,251,238,107,239,180,240,105,242,138,241,74,239,166,237,236,234,170,231,238,230,176,231,129,232,180,235,173,240,239,243, +146,246,30,250,68,251,58,249,177,247,230,246,14,245,194,243,145,243,127,242,198,241,166,243,105,246,175,248,4,252,51,0, +153,3,100,6,53,8,155,7,126,5,33,3,176,255,252,251,102,250,219,249,118,248,109,248,177,251,65,0,188,4,127,9, +99,13,174,15,102,17,195,17,246,15,192,14,237,14,178,12,224,7,180,4,164,3,0,3,106,4,69,8,252,11,182,15, +53,20,201,22,7,23,202,23,216,23,178,20,13,17,13,15,191,12,160,10,202,10,174,11,118,12,62,15,33,19,196,21, +136,24,209,27,103,28,226,25,144,22,106,18,154,13,75,10,130,8,139,7,109,9,24,14,184,17,217,19,86,23,59,27, +183,28,135,28,166,27,169,24,245,19,104,15,97,10,240,4,155,2,113,4,0,7,253,8,50,12,119,16,166,20,172,24, +207,26,103,25,152,22,191,19,182,14,45,8,104,3,133,255,2,251,18,249,103,251,80,255,241,3,176,9,103,14,48,17, +17,19,185,18,179,15,202,12,139,9,13,3,201,251,206,247,214,245,37,244,41,244,50,246,133,249,75,254,224,2,42,5, +83,6,69,7,98,6,2,4,4,2,148,255,188,251,36,248,184,245,184,243,252,241,137,240,168,239,197,240,249,243,61,247, +167,249,161,251,255,252,239,253,95,254,121,252,50,248,200,244,62,243,55,241,115,238,227,236,219,236,220,237,176,239,52,241, +249,241,57,243,189,244,44,245,102,245,156,246,65,247,192,245,174,242,51,239,177,236,97,236,109,237,165,238,211,240,1,244, +75,246,143,247,36,249,113,250,129,250,190,249,211,247,126,244,155,241,203,239,77,237,186,234,242,234,81,238,12,243,132,247, +81,250,41,252,136,255,60,3,59,3,241,255,228,252,67,250,124,246,248,241,193,237,40,235,236,235,70,239,193,242,55,246, +76,250,45,254,246,1,215,5,141,7,89,6,6,5,23,4,228,0,146,251,18,247,225,244,239,244,31,246,187,246,29,248, +80,253,3,4,231,6,244,6,175,8,249,10,220,9,223,5,185,1,91,254,106,252,240,251,110,251,122,251,142,254,87,3, +89,6,247,7,182,9,113,10,243,9,12,9,20,6,111,1,107,255,165,255,120,253,89,250,224,250,190,253,99,0,127,3, +93,6,91,8,184,11,248,14,179,13,6,10,46,8,31,6,38,2,203,254,29,252,171,249,100,250,105,253,105,254,34,255, +17,3,128,7,237,9,48,11,59,10,68,7,236,5,40,5,66,1,63,253,252,252,153,253,212,252,93,252,95,252,62,253, +249,0,83,5,103,6,200,5,189,5,146,4,191,1,174,254,118,251,128,249,192,250,139,252,12,252,30,252,66,255,14,3, +30,5,60,5,198,3,158,2,241,2,44,2,182,254,125,251,146,250,156,250,177,250,220,250,12,251,163,252,140,0,69,4, +216,5,233,6,54,8,18,8,150,6,21,5,229,2,255,255,213,254,237,255,221,0,68,1,14,3,1,6,36,8,42,9, +230,9,174,10,152,11,208,11,206,9,149,6,2,5,210,4,134,3,197,1,254,1,226,3,3,6,87,8,206,10,89,13, +143,16,91,19,172,19,31,18,69,16,189,13,237,10,126,9,233,8,106,8,121,9,142,11,18,12,55,12,223,14,218,18, +202,21,75,23,252,22,245,21,195,22,141,23,100,20,151,15,122,13,182,12,27,11,166,9,166,8,222,8,199,12,110,18, +205,20,146,20,103,21,194,22,195,22,47,21,231,17,170,14,203,13,13,13,213,9,205,6,49,6,187,6,103,8,248,10, +14,12,173,12,69,15,215,16,239,14,14,13,192,12,151,11,174,9,137,7,162,3,213,255,12,255,235,254,102,253,0,253, +135,254,67,0,1,2,204,2,84,1,236,255,77,0,77,0,157,255,243,255,239,255,252,253,39,251,218,247,164,244,130,243, +129,243,73,242,116,241,123,242,69,243,74,243,153,243,27,243,32,242,178,242,17,243,3,241,240,238,159,238,103,238,115,237, +71,235,99,231,228,228,30,230,114,231,133,230,49,230,77,231,200,231,76,231,204,229,190,227,57,228,241,230,21,231,228,228, +173,228,119,229,232,228,20,229,82,230,42,230,113,229,47,229,16,227,146,223,134,222,121,224,106,227,1,230,145,230,68,229, +17,229,38,230,225,229,189,228,152,228,197,228,199,228,17,229,237,228,197,228,15,230,46,231,29,230,188,228,37,229,28,231, +96,234,131,237,238,237,159,236,92,236,41,236,147,234,158,233,137,234,19,236,96,237,205,237,110,237,166,238,250,241,45,244, +118,244,125,245,147,247,90,249,4,251,89,252,228,252,182,253,55,254,84,252,196,249,169,249,62,251,21,253,138,255,112,1, +230,1,28,3,143,5,251,6,1,8,136,10,181,12,98,12,217,10,220,9,255,9,82,11,78,12,29,11,152,8,217,6, +201,6,122,8,42,11,195,13,141,16,177,19,102,21,36,21,64,21,13,23,52,25,239,25,46,24,111,20,118,17,130,17, +92,19,85,20,156,19,163,18,42,19,78,21,223,23,116,26,110,29,81,32,192,33,184,32,221,29,187,27,185,27,241,27, +175,26,220,24,250,22,253,20,118,20,225,21,92,23,184,24,201,26,13,28,5,28,206,28,95,30,63,31,227,31,100,31, +142,27,117,22,138,19,58,18,202,17,190,18,226,18,22,17,164,16,156,18,167,20,199,22,7,25,7,25,47,23,89,21, +20,18,4,14,80,13,211,14,246,13,162,11,64,10,165,8,110,7,2,9,222,11,38,13,119,12,28,10,192,7,238,7, +61,9,149,8,247,6,240,5,51,4,222,1,181,0,166,0,43,1,200,1,180,0,22,254,79,252,50,251,183,249,43,249, +12,249,72,247,108,245,88,245,236,245,214,247,51,252,207,255,183,0,223,0,141,255,180,251,211,248,91,247,39,243,67,237, +43,233,84,229,5,226,105,227,85,232,33,237,160,242,54,248,75,251,66,254,74,2,148,2,199,254,33,251,43,246,62,238, +205,231,36,228,242,224,158,224,16,228,75,230,19,231,145,234,166,239,102,244,240,249,129,253,110,252,5,251,37,251,149,248, +210,243,152,240,180,237,101,234,229,232,28,232,126,231,155,234,47,240,220,242,157,243,196,245,229,247,113,249,124,251,191,251, +189,249,56,249,248,249,201,248,248,246,227,246,245,247,131,249,215,249,250,246,184,244,76,247,134,250,4,250,53,249,199,250, +70,252,176,252,221,252,192,252,55,253,80,254,177,253,201,251,120,251,33,252,54,252,225,252,176,253,213,252,19,252,188,253, +229,0,54,4,156,6,190,6,208,5,72,5,51,3,155,255,95,254,39,255,35,254,31,252,162,251,6,252,105,253,155,0, +119,3,24,5,67,7,146,8,253,6,88,5,71,5,250,3,88,1,111,255,185,252,226,248,164,247,56,249,174,250,42,253, +75,2,7,7,48,9,187,9,80,8,198,4,48,1,139,253,249,248,162,246,87,248,55,250,139,250,81,252,147,255,149,2, +23,7,165,12,114,14,80,12,182,9,5,5,203,252,9,246,49,243,4,241,212,239,185,241,235,243,157,245,190,250,86,2, +72,8,84,13,103,16,27,12,159,2,145,251,171,246,187,240,55,236,57,234,63,233,192,235,78,242,104,248,174,254,250,7, +159,14,246,13,18,11,187,8,52,4,244,254,77,250,206,242,58,234,19,230,47,229,187,230,80,239,189,252,119,7,136,15, +66,22,56,23,43,19,184,15,122,11,188,3,138,251,40,243,91,233,246,227,68,230,117,234,174,238,220,246,19,1,50,9, +59,16,46,22,0,25,207,25,52,24,35,17,6,7,125,254,239,246,195,240,176,239,66,242,156,244,64,248,131,254,2,5, +184,11,226,18,154,22,224,21,197,20,219,19,201,16,218,12,198,9,123,6,108,3,138,2,103,3,58,5,147,8,79,12, +20,14,242,13,234,13,51,15,96,17,206,18,42,18,237,15,181,13,156,12,188,12,22,14,75,17,206,21,37,24,191,21, +42,17,94,14,184,13,252,13,240,14,59,16,78,17,245,17,242,17,109,18,138,21,16,26,84,28,33,28,155,27,134,26, +44,24,163,21,159,19,22,18,214,16,175,14,12,12,122,12,208,16,97,21,221,24,205,28,187,31,89,31,84,29,29,28, +128,27,62,26,239,22,14,17,9,11,237,7,215,7,89,9,202,11,229,14,79,18,12,21,255,21,135,22,231,24,71,27, +3,26,94,21,173,15,241,9,66,5,69,2,249,255,188,254,207,255,115,1,37,2,23,4,6,8,108,11,141,13,170,14, +38,13,89,9,214,5,97,2,216,253,214,249,24,247,103,244,88,242,138,241,178,240,154,240,100,243,122,247,15,250,99,251, +25,252,248,251,174,251,190,250,75,247,138,242,79,239,244,236,160,233,26,230,162,227,172,226,214,227,8,230,200,230,182,230, +180,232,37,236,112,237,142,235,223,232,144,231,116,231,192,230,102,228,194,225,253,224,196,225,121,225,104,223,116,222,118,224, +193,226,39,226,218,223,15,223,24,224,137,224,33,223,183,221,136,222,167,224,239,225,18,227,74,229,153,230,106,229,252,227, +27,228,67,228,239,226,126,224,22,222,220,220,102,220,47,219,96,218,115,220,23,224,167,226,230,228,141,231,204,232,134,232, +82,232,244,231,36,231,201,230,43,230,181,228,110,228,240,229,102,231,74,233,227,236,92,240,71,242,125,243,18,243,219,239, +135,236,131,235,88,235,227,234,36,235,98,236,131,238,230,241,159,245,164,248,171,251,100,254,206,254,73,253,23,252,31,251, +59,249,78,247,247,245,255,243,189,241,153,241,28,244,168,247,176,251,111,0,240,4,37,8,190,9,49,9,32,7,68,6, +61,7,228,6,138,3,88,255,174,252,191,252,148,255,173,2,8,4,232,5,168,9,230,11,51,11,227,10,109,12,21,14, +175,14,246,12,211,8,88,6,208,7,77,9,206,8,191,9,167,12,26,14,160,13,39,13,133,13,17,15,114,16,249,14, +245,11,66,11,118,12,24,13,185,13,11,15,6,16,179,16,65,17,252,16,152,16,206,16,41,16,104,14,249,12,131,11, +213,9,221,9,124,11,135,12,42,13,94,14,156,15,15,17,185,18,10,19,75,18,169,17,32,15,236,9,26,6,197,5, +180,6,243,7,155,9,164,10,176,11,138,13,55,14,147,13,19,14,179,14,86,13,175,11,159,10,247,8,100,8,138,9, +216,8,166,6,56,7,103,9,244,9,113,10,132,11,254,10,246,9,156,9,180,7,137,5,238,6,132,9,69,9,240,7, +211,7,202,8,110,11,106,14,201,14,73,14,54,15,28,14,197,9,7,7,56,7,151,7,83,8,106,9,252,8,37,9, +110,12,151,15,113,16,37,17,234,16,240,13,98,11,13,11,74,10,163,9,57,11,23,12,97,10,253,9,146,12,178,15, +43,19,32,23,219,24,201,23,254,21,113,19,104,16,194,15,89,17,174,17,168,16,144,16,13,17,191,17,25,20,6,23, +148,23,81,22,182,21,193,21,114,21,223,20,60,20,14,20,120,20,62,19,176,15,116,14,61,18,35,22,76,22,150,21, +179,21,68,20,185,17,166,16,122,16,60,16,145,16,9,16,72,13,61,11,96,12,62,15,167,18,178,21,130,21,63,18, +45,16,233,15,54,14,82,11,194,9,51,9,117,8,181,7,254,6,185,6,177,7,213,8,208,8,72,8,146,7,32,6, +253,4,238,4,32,4,141,1,250,254,251,253,135,254,237,255,31,1,175,1,10,2,173,1,210,255,132,253,197,251,152,249, +81,246,244,242,140,240,151,239,86,240,111,242,236,244,114,246,255,245,140,244,166,243,180,242,34,241,104,240,65,240,25,238, +6,234,72,230,165,227,36,227,233,229,92,233,93,234,207,233,204,232,214,230,163,229,182,230,143,231,31,230,42,227,242,222, +132,218,229,216,102,218,250,220,69,224,78,227,51,228,214,228,16,231,188,231,149,229,199,227,185,225,67,220,82,213,86,208, +2,206,66,207,15,211,8,213,165,213,192,217,60,224,27,229,144,233,253,237,151,238,59,235,130,230,240,223,160,216,180,212, +231,211,68,211,139,211,128,213,227,215,222,219,43,226,102,231,56,234,239,236,202,238,90,237,35,234,158,231,235,229,160,228, +151,226,195,222,229,219,106,221,189,225,245,229,78,234,196,238,194,241,101,243,160,244,21,245,209,244,141,244,151,243,20,241, +104,238,12,238,209,240,253,244,26,248,145,249,86,250,6,251,22,252,249,253,215,255,139,0,119,0,19,0,38,255,159,254, +182,255,224,1,237,3,0,5,45,4,96,2,95,2,154,4,231,6,112,8,118,9,76,9,59,8,34,8,255,9,156,13, +58,18,204,21,135,22,17,21,248,18,39,17,170,16,207,17,21,19,254,18,112,17,93,15,188,14,241,16,191,20,56,24, +255,26,154,28,66,28,60,27,104,27,120,28,63,29,21,29,48,27,147,23,216,19,122,17,32,17,244,18,126,21,165,22, +220,22,79,24,130,27,36,31,178,33,84,34,197,33,65,33,64,32,206,29,246,26,182,24,38,22,248,18,183,16,131,16, +29,18,255,20,128,24,124,27,230,28,213,28,153,28,10,29,46,29,224,27,129,25,177,22,41,19,249,14,111,11,41,10, +95,11,47,13,188,13,136,13,225,13,182,14,217,15,93,17,37,18,112,17,12,16,232,13,128,10,147,7,65,6,119,4, +97,1,19,255,85,254,140,254,204,255,45,1,168,1,134,2,173,3,79,2,16,255,187,253,89,254,94,254,54,253,202,250, +184,247,19,247,167,249,246,251,19,252,146,250,111,247,104,244,18,244,131,244,139,243,31,244,49,247,61,248,250,245,32,244, +173,244,67,247,90,250,245,250,65,249,221,248,204,248,137,245,181,241,179,240,171,239,206,236,91,234,74,232,164,230,233,232, +212,238,230,243,163,247,107,251,181,253,186,254,237,255,199,254,116,250,212,246,184,243,224,237,28,232,107,230,50,231,101,233, +235,237,136,242,149,246,13,253,2,4,238,6,221,7,15,9,200,6,152,0,3,251,118,246,13,242,140,240,117,241,242,240, +173,240,248,243,189,248,44,253,99,2,239,6,52,9,235,10,115,11,19,8,207,2,185,254,168,250,171,246,74,245,246,245, +162,247,44,252,224,2,35,8,220,11,86,15,249,16,15,16,143,13,209,8,163,2,108,254,25,252,113,249,98,248,203,250, +12,254,218,0,209,4,72,9,21,13,15,17,209,19,207,18,133,15,172,11,234,5,136,255,60,252,54,251,227,249,124,249, +47,251,190,253,67,1,101,6,9,12,88,17,0,21,57,20,229,15,12,12,81,8,144,2,207,253,172,252,112,252,213,251, +176,252,133,254,193,0,218,4,28,9,138,10,219,10,109,11,125,9,82,5,53,2,96,255,162,251,165,249,114,249,69,248, +199,247,68,250,49,253,38,255,198,1,234,3,27,4,81,4,102,4,209,1,239,253,230,250,86,247,134,243,216,241,69,241, +207,240,226,242,56,247,198,250,245,253,145,1,63,3,12,3,243,2,18,1,37,252,105,247,232,243,251,239,88,237,113,237, +251,237,93,239,9,244,72,249,192,251,97,253,60,255,78,255,119,254,160,254,98,254,212,252,225,250,68,248,220,245,184,245, +21,246,4,245,164,245,2,249,248,250,90,251,238,253,136,1,243,2,249,2,28,2,140,255,65,253,114,252,74,251,223,250, +160,253,174,0,41,1,130,1,148,2,8,2,61,1,149,2,245,3,56,4,189,5,243,7,131,8,240,8,161,10,62,11, +23,10,153,9,56,10,162,10,167,10,33,10,14,9,246,8,78,10,48,11,85,11,213,12,207,15,13,18,166,18,143,18, +127,18,63,18,82,17,199,15,91,14,48,13,85,11,228,8,218,7,252,8,120,10,48,11,105,12,226,14,172,17,102,20, +212,22,93,23,140,21,114,19,189,17,198,14,207,10,247,7,99,6,7,5,66,4,206,4,21,7,101,11,52,16,230,18, +130,19,88,19,172,17,28,14,148,10,233,7,85,5,58,3,228,1,123,0,161,255,194,0,0,3,224,4,64,6,233,6, +246,6,140,7,60,8,49,7,162,4,203,1,150,254,90,251,196,248,36,246,24,244,239,244,170,247,17,249,140,249,71,251, +144,253,220,254,155,254,47,252,122,248,132,245,207,242,134,239,86,238,165,240,218,242,61,242,130,240,193,239,36,240,209,240, +152,240,171,239,101,239,10,239,232,236,124,234,71,234,238,235,236,237,2,239,125,237,168,233,217,230,197,230,156,231,195,231, +77,231,80,230,170,228,159,226,18,225,76,225,120,227,32,230,17,232,218,232,40,232,214,230,83,230,53,230,164,229,8,229, +222,227,107,225,180,223,56,224,50,225,52,226,202,228,180,231,51,233,233,234,117,237,3,239,210,239,67,240,4,238,45,233, +185,228,164,224,140,220,202,219,57,223,43,227,170,230,45,235,128,239,180,242,202,245,130,247,133,246,51,245,141,244,54,242, +151,238,114,236,133,235,74,234,46,233,255,232,134,234,97,238,247,242,164,246,192,250,211,255,81,3,47,4,189,3,27,2, +67,255,134,252,84,250,182,248,31,249,172,251,247,253,210,254,88,255,183,0,89,3,55,6,117,7,162,7,181,8,122,9, +4,8,166,6,36,8,253,10,218,12,156,13,159,13,95,13,188,13,76,14,113,14,98,15,110,17,88,18,54,17,255,15, +90,16,102,18,164,21,160,24,226,25,189,25,33,25,24,24,249,22,219,22,255,23,185,25,30,27,17,27,167,25,12,25, +192,26,77,29,184,30,210,30,11,30,219,28,127,28,151,29,225,30,39,31,181,30,15,30,68,29,143,28,92,28,27,29, +250,30,206,32,9,33,103,32,162,32,35,33,98,32,217,30,174,29,229,28,97,28,72,28,242,28,73,31,207,34,128,36, +191,34,129,31,208,28,240,26,152,25,229,23,190,21,80,21,9,23,254,23,57,24,0,27,133,31,56,34,15,35,205,34, +67,32,33,28,255,23,61,19,203,14,62,13,19,13,217,11,128,11,10,13,142,14,248,16,65,21,17,24,215,24,237,26, +115,28,15,25,179,18,159,12,159,6,38,2,161,0,54,255,107,253,161,254,177,1,200,3,107,7,88,13,10,17,208,17, +31,18,14,16,133,10,137,5,125,2,47,255,7,252,145,249,133,246,234,244,112,247,101,251,75,254,33,2,110,6,58,7, +114,4,125,1,210,255,32,255,194,254,179,253,242,251,8,250,117,247,197,244,247,243,151,244,97,244,115,243,202,242,177,241, +105,240,160,240,3,242,27,243,70,244,241,245,219,246,140,246,45,246,18,246,116,245,14,244,137,241,59,237,70,232,17,229, +117,227,140,225,249,223,143,224,171,226,169,229,179,234,17,241,91,246,98,250,40,253,192,252,74,249,159,244,71,238,213,230, +148,225,229,221,2,217,64,214,121,217,30,223,237,227,209,233,167,240,69,246,76,251,225,254,34,254,131,250,1,246,103,238, +158,228,3,221,230,214,72,209,148,208,209,212,116,216,115,220,189,228,21,238,20,245,228,250,127,253,80,250,251,244,181,239, +109,232,122,225,40,222,98,219,233,215,239,215,83,219,223,222,38,228,238,235,41,242,98,245,42,247,24,247,139,245,1,244, +2,241,80,236,62,233,55,231,41,227,66,224,108,226,87,230,189,232,57,235,212,237,208,238,46,239,203,239,218,239,127,240, +109,242,209,242,172,240,234,238,166,238,100,238,251,237,201,237,69,237,39,237,151,238,72,240,98,240,240,239,41,241,191,243, +82,245,23,245,26,245,57,247,112,250,46,252,81,251,14,249,49,247,220,245,245,243,150,241,6,240,203,239,214,240,51,243, +84,246,226,249,114,254,237,2,75,4,240,1,164,254,225,252,50,253,134,254,202,254,132,253,0,252,219,249,103,246,111,244, +12,246,188,248,168,250,229,252,199,254,54,255,88,0,48,3,163,5,154,7,241,9,6,10,77,6,43,2,68,0,139,255, +206,254,55,253,56,250,31,248,202,249,20,254,69,2,220,5,22,9,214,11,69,14,172,15,78,15,223,14,29,16,49,17, +116,15,64,11,225,6,119,4,8,5,90,7,213,8,200,8,240,8,113,10,155,12,36,15,234,18,71,23,95,25,223,23, +188,20,244,17,227,15,178,14,25,14,49,13,159,12,239,13,115,16,142,18,140,20,7,23,42,25,252,25,81,25,69,24, +33,25,249,27,160,29,208,28,183,27,226,26,205,24,35,22,240,20,123,21,228,22,62,24,21,25,97,26,177,28,132,30, +99,31,200,32,84,34,144,34,53,34,159,33,124,31,159,28,194,26,175,24,215,21,228,20,177,22,48,25,183,27,36,30, +31,31,59,31,158,32,13,35,77,37,121,39,126,40,119,38,133,34,109,31,177,29,156,28,119,28,96,29,246,29,136,28, +99,25,137,23,187,25,3,31,171,35,26,37,186,35,192,33,156,32,43,32,63,32,206,32,175,32,0,31,177,28,98,26, +234,23,134,22,14,23,211,23,218,23,255,23,241,23,152,23,18,25,162,28,161,31,218,32,46,32,209,28,77,24,47,21, +135,18,127,15,99,14,241,14,42,14,242,12,215,13,195,15,94,17,246,18,134,19,111,18,189,16,222,13,121,9,12,6, +236,3,229,0,39,254,63,253,228,251,66,250,113,251,188,253,83,254,194,255,15,3,155,4,179,3,218,1,30,254,92,249, +38,246,202,242,185,237,228,233,168,231,140,228,143,226,20,228,193,230,226,233,196,238,132,242,181,242,246,241,106,241,199,239, +248,237,129,235,206,229,11,223,182,218,239,214,238,210,22,210,242,211,114,213,166,215,126,219,59,223,86,227,211,231,43,233, +81,231,113,229,192,225,60,218,73,211,170,207,30,205,32,204,215,205,160,206,80,205,165,206,29,212,44,218,216,222,182,225, +0,226,16,224,247,219,155,213,94,208,136,207,115,208,234,207,144,207,196,208,71,210,87,212,137,215,91,218,112,220,161,222, +131,223,2,222,84,220,254,219,204,219,50,219,100,218,239,216,201,215,5,217,16,220,173,222,159,224,147,226,254,227,115,228, +89,228,2,228,37,228,89,229,86,230,4,230,14,230,190,231,111,233,112,234,77,236,131,238,14,239,76,238,37,237,34,235, +129,233,228,233,123,234,82,234,76,236,134,240,129,243,115,245,82,248,49,250,50,250,217,250,115,251,228,249,128,248,116,248, +186,246,23,244,44,244,156,245,152,246,114,249,96,253,214,254,211,255,49,3,176,5,237,4,126,3,170,2,14,2,166,2, +185,3,131,3,113,3,90,4,229,3,138,2,193,3,154,7,211,11,110,15,39,17,57,16,82,14,73,12,187,9,161,8, +115,10,183,12,93,13,201,12,227,10,160,8,191,8,209,10,15,12,46,13,202,15,139,17,96,16,181,14,238,15,238,19, +248,22,206,21,70,18,175,16,238,16,217,15,113,13,38,12,206,12,106,14,57,15,132,14,154,14,126,17,9,21,165,22, +19,23,186,23,222,24,118,26,110,27,183,26,61,25,126,23,136,20,50,17,247,14,33,13,145,11,28,11,131,10,7,10, +68,13,139,19,219,23,54,26,86,29,3,31,16,29,229,25,242,22,21,20,122,18,227,16,224,12,50,9,223,8,192,9, +232,11,70,18,109,25,238,27,214,27,56,28,147,27,114,26,0,27,51,27,43,25,77,22,89,18,186,13,229,12,74,16, +106,18,67,18,112,19,167,21,241,22,28,24,67,25,220,25,236,26,193,26,58,22,158,16,249,14,200,14,114,12,166,10, +76,11,104,12,123,14,101,18,138,20,84,19,77,18,196,17,150,14,109,10,26,9,209,9,215,10,158,12,203,13,189,12, +148,11,195,11,150,11,103,11,101,12,173,11,162,7,110,4,111,4,2,5,40,5,240,5,163,6,45,7,111,8,232,8, +108,8,107,10,92,14,25,15,210,11,66,7,192,1,161,252,19,251,246,251,82,252,11,253,173,254,162,255,45,1,84,4, +241,5,68,5,49,5,234,4,95,2,151,255,79,253,146,249,246,245,100,244,111,242,245,239,136,240,221,243,152,247,253,251, +157,255,7,0,137,255,197,255,170,253,210,249,77,248,23,247,148,242,186,237,89,235,215,233,151,233,232,235,105,238,232,239, +61,242,226,244,224,246,55,250,101,254,147,255,119,253,33,250,227,244,214,237,66,232,143,229,42,228,121,227,55,228,200,230, +12,235,228,239,155,243,163,245,131,246,208,246,222,246,58,246,102,244,6,242,0,239,251,233,48,228,208,224,245,223,3,224, +204,225,173,229,119,233,52,236,186,238,52,241,74,244,138,248,21,251,207,248,106,243,162,238,224,235,133,234,207,232,208,229, +191,227,57,228,205,228,146,228,0,231,55,237,244,243,244,248,86,251,248,249,169,246,65,245,193,245,71,245,6,243,160,239, +82,235,39,231,140,228,71,228,230,230,103,235,198,238,3,240,100,241,230,243,72,246,115,248,32,251,108,253,232,253,51,252, +205,248,83,245,137,243,13,243,62,242,38,241,3,241,55,242,164,244,67,248,80,252,173,255,26,2,210,3,210,4,127,5, +182,6,81,8,193,8,161,6,30,2,54,253,208,250,56,252,174,255,213,2,77,5,84,7,112,8,77,9,178,11,108,15, +101,18,141,19,244,18,186,16,13,14,176,12,154,12,109,12,206,11,116,11,229,11,52,13,73,15,56,18,12,22,211,25, +69,28,152,29,153,30,228,30,21,30,158,28,30,26,6,22,220,17,176,15,232,15,84,18,129,22,130,26,239,28,203,30, +220,32,33,34,114,34,167,34,25,34,242,31,127,29,255,27,232,26,94,26,143,27,126,29,180,29,78,28,130,27,27,28, +176,29,193,31,102,32,147,29,197,24,103,21,87,20,232,20,75,23,153,26,91,28,146,27,27,25,137,22,62,22,124,24, +60,25,10,22,216,17,153,14,159,10,158,6,106,5,95,6,139,7,17,9,84,10,140,10,242,11,127,15,15,18,36,18, +245,16,124,13,222,6,31,0,58,251,55,247,209,244,33,245,4,246,80,246,29,248,19,252,167,0,161,4,215,5,95,2, +113,252,40,247,59,242,187,237,160,235,29,235,159,233,141,231,108,230,48,230,67,231,48,234,134,237,158,239,251,239,124,238, +96,236,49,235,40,233,93,228,187,223,44,222,235,221,167,221,189,222,142,224,112,225,237,225,176,225,152,223,95,222,98,224, +148,225,126,222,191,218,246,217,144,218,243,218,177,219,214,220,93,222,67,224,218,224,144,223,24,223,134,224,219,224,213,221, +87,216,146,210,68,207,194,207,206,209,174,211,209,215,85,223,252,229,112,232,251,232,209,234,114,237,3,238,68,234,215,226, +113,219,28,215,125,213,109,213,20,215,32,218,159,221,251,225,170,231,47,237,161,241,50,246,134,250,157,251,140,248,19,244, +97,240,44,237,0,234,124,231,226,230,14,233,246,236,176,240,194,244,121,250,162,255,143,1,246,1,56,3,44,4,237,3, +188,3,40,3,203,0,7,254,214,252,23,253,109,254,224,0,30,4,88,8,176,12,61,14,85,13,101,14,126,17,13,18, +73,16,49,16,60,17,195,16,175,15,162,15,161,16,172,18,149,20,190,20,207,20,134,22,170,23,78,23,65,24,125,26, +121,27,92,28,246,30,9,33,13,33,223,32,48,33,245,32,55,32,36,31,164,29,142,28,31,28,153,27,117,27,78,28, +190,29,155,32,51,37,12,40,92,39,68,39,36,42,37,44,116,42,233,38,213,35,106,34,109,34,29,33,167,29,104,28, +174,31,39,35,106,35,98,34,72,34,135,35,82,38,249,40,172,40,49,38,123,36,125,35,151,33,26,31,193,28,190,26, +217,25,162,25,34,24,41,22,161,22,185,24,90,25,253,24,143,25,13,26,53,25,192,23,215,21,102,19,215,17,0,17, +158,14,66,11,201,9,189,9,161,8,181,6,206,5,140,6,84,8,61,9,201,7,5,6,127,6,44,7,198,4,30,0, +4,252,247,249,44,250,209,250,62,249,103,246,96,245,70,245,221,242,72,239,50,239,207,243,85,248,140,247,179,242,137,239, +144,239,75,239,227,237,211,237,20,239,152,239,181,238,46,236,133,232,79,230,124,230,107,230,165,228,128,226,12,225,44,225, +132,227,237,229,56,230,135,230,13,233,80,235,145,234,16,232,78,230,47,230,222,230,129,230,49,228,78,225,197,223,22,224, +239,224,41,224,222,221,137,221,28,225,202,229,161,232,73,234,19,236,60,237,136,236,170,234,9,234,51,235,65,235,183,232, +114,230,57,230,210,229,100,228,107,228,16,231,139,234,164,236,220,236,113,237,154,240,112,244,1,246,248,245,129,245,1,244, +205,242,136,243,20,244,51,243,149,243,161,245,48,246,114,244,68,242,117,241,165,243,223,247,160,250,252,251,149,254,175,0, +193,255,43,254,186,253,251,252,145,252,140,253,103,253,55,251,186,249,224,249,51,251,72,254,195,1,217,3,70,6,148,9, +198,10,211,9,47,9,60,8,175,6,145,6,113,6,133,3,14,0,150,254,191,253,181,253,106,0,186,4,11,9,127,13, +140,16,193,16,3,16,178,15,12,15,3,14,139,11,247,5,59,0,73,254,254,253,157,252,166,252,0,0,50,5,59,11, +79,16,247,17,103,18,185,20,142,21,88,17,144,11,205,7,191,4,118,1,166,254,180,251,88,249,137,250,112,255,242,4, +139,9,134,13,61,16,137,16,74,14,140,10,65,7,148,5,37,4,51,1,223,253,67,252,232,251,145,251,70,252,214,254, +51,1,222,1,38,2,173,2,138,2,140,2,226,3,154,4,123,2,13,255,60,253,127,253,23,254,208,253,9,254,51,0, +90,1,179,253,90,248,211,247,236,251,229,254,51,254,68,252,44,252,53,254,129,255,135,254,84,254,56,1,63,4,18,4, +52,1,245,253,248,252,98,255,238,1,29,1,72,255,74,0,133,3,150,6,94,8,189,8,99,9,26,11,143,10,150,6, +67,4,235,5,102,7,226,6,137,6,149,6,49,7,150,10,15,16,106,20,32,23,136,24,112,23,62,20,232,16,106,14, +221,13,167,15,52,17,145,16,76,15,208,14,29,15,236,16,151,20,67,25,23,30,70,33,61,33,9,32,226,31,32,31, +246,28,93,27,22,26,52,24,177,23,133,24,193,23,118,22,215,23,214,26,97,29,164,31,55,33,214,33,9,34,27,32, +212,27,20,26,10,28,61,28,123,25,244,23,36,24,123,24,152,25,111,26,187,25,163,25,235,25,103,23,45,20,35,20, +100,21,234,21,163,22,165,21,196,17,94,15,46,16,3,17,195,17,5,19,169,17,47,14,234,12,225,12,71,11,2,10, +170,9,1,8,52,6,98,5,255,2,225,255,209,255,123,1,201,1,147,1,146,1,93,1,254,1,66,2,1,255,186,249, +192,245,146,242,70,240,195,240,25,242,188,241,179,241,202,242,242,241,4,239,86,237,39,238,245,239,16,240,91,236,209,230, +93,227,197,225,230,223,140,222,184,222,90,223,204,223,146,223,247,221,164,220,99,221,19,222,143,220,180,218,58,218,2,218, +28,217,240,215,209,214,242,213,98,213,163,212,68,211,172,209,244,208,135,209,227,209,224,208,41,208,255,208,119,209,47,208, +112,206,96,205,77,205,17,206,15,206,213,204,170,204,49,205,72,203,182,200,11,202,230,205,176,207,126,206,175,203,80,201, +212,201,249,203,100,204,146,204,138,207,247,210,147,211,30,210,79,208,199,207,52,210,211,213,64,215,197,214,2,214,3,213, +149,212,21,213,248,212,43,213,22,216,195,219,106,221,67,222,64,223,205,223,40,225,59,227,169,227,132,227,247,228,253,229, +121,229,114,229,32,229,102,227,101,227,64,230,110,233,112,237,214,242,18,246,220,246,231,248,26,251,101,250,153,248,155,247, +3,247,242,247,196,249,3,249,110,247,178,249,217,253,20,0,161,2,45,8,237,14,23,20,65,21,175,17,38,13,147,11, +247,11,50,12,2,12,82,11,51,11,17,13,15,15,239,15,9,19,85,25,62,30,154,31,246,31,117,33,195,36,136,40, +126,40,174,35,113,31,212,30,227,30,236,29,194,29,109,31,53,34,124,36,209,36,205,36,130,39,104,44,200,48,171,51, +181,52,202,51,184,50,141,50,26,50,91,49,37,49,38,48,112,45,146,42,182,40,13,40,22,41,70,43,209,45,130,49, +211,53,96,56,141,57,95,59,213,60,127,60,57,59,249,56,140,53,158,51,100,52,101,52,39,49,193,44,161,42,73,44, +230,47,52,50,186,51,95,55,55,59,10,59,42,56,98,54,250,53,56,54,202,54,152,53,7,50,253,46,179,45,149,44, +101,43,104,42,81,41,200,41,182,44,118,46,204,44,97,43,0,45,24,47,127,46,33,43,69,39,95,37,232,36,42,35, +140,32,177,31,218,31,233,30,252,29,97,30,238,30,111,31,148,32,120,32,8,29,232,23,9,20,234,17,67,16,59,14, +54,12,51,11,71,11,84,11,221,10,225,10,75,12,52,14,177,14,34,13,39,10,221,5,130,0,150,251,185,247,26,244, +159,241,238,241,128,243,46,244,38,245,104,247,255,248,235,248,121,248,7,248,207,246,104,244,189,240,247,236,13,235,111,234, +229,232,225,230,104,230,96,231,116,232,10,233,35,233,102,233,14,234,156,233,247,230,16,227,17,223,75,220,90,220,229,221, +135,221,195,219,186,219,55,221,27,222,19,222,153,221,117,221,41,222,251,220,111,215,192,209,89,209,238,211,123,212,56,211, +200,210,7,212,186,214,197,217,230,219,159,221,98,223,191,223,19,222,100,219,95,216,27,214,252,213,102,214,83,212,134,208, +188,206,235,208,10,214,106,219,134,222,255,222,227,221,183,219,30,217,190,215,140,216,100,218,190,218,33,216,110,212,208,210, +206,211,146,214,54,219,216,223,206,224,208,222,9,222,19,223,7,224,48,225,190,226,185,226,160,224,108,222,242,221,231,223, +73,227,225,229,98,231,22,233,34,234,29,233,205,231,137,232,168,234,46,236,206,235,92,233,224,230,35,231,20,234,57,237, +43,239,144,240,95,242,210,243,190,242,83,239,50,237,65,238,237,239,181,239,82,238,127,237,48,238,91,240,200,242,144,244, +129,246,49,249,78,251,71,251,31,249,63,246,57,244,106,243,37,243,67,243,100,244,182,246,99,249,249,250,46,251,102,252, +126,0,87,4,151,3,167,255,84,253,129,253,107,253,203,251,31,250,24,250,104,251,87,252,162,252,49,254,13,2,182,6, +2,10,220,10,137,9,72,7,225,4,15,2,209,254,219,251,198,249,244,248,35,249,86,249,243,249,233,252,41,2,43,7, +92,10,190,11,97,11,208,9,240,7,242,5,71,4,156,3,214,2,73,0,220,252,63,251,38,253,210,1,8,6,97,7, +169,7,65,9,217,10,70,11,132,12,47,15,207,16,223,15,199,12,15,9,204,7,142,10,109,14,31,16,167,15,22,14, +109,12,52,12,162,13,201,15,182,18,155,21,37,22,163,20,224,19,237,20,180,23,218,27,198,30,152,30,140,29,23,29, +163,27,224,25,15,26,17,27,72,27,62,27,188,26,139,26,226,29,117,35,219,37,133,37,111,38,60,39,88,38,11,39, +120,41,208,41,15,41,3,42,145,42,109,41,34,41,144,41,226,40,174,40,211,41,30,42,0,42,0,44,51,47,106,49, +197,50,111,51,57,51,223,50,39,50,75,48,112,46,14,45,130,42,134,39,217,38,14,40,58,41,254,42,209,45,45,48, +191,49,51,51,187,51,145,50,43,48,190,44,175,40,239,36,57,33,100,29,144,27,209,28,171,30,130,31,8,33,83,36, +247,39,19,42,110,41,45,38,130,34,35,32,241,29,142,26,223,22,22,20,232,17,220,15,120,14,206,14,146,17,221,21, +38,25,142,25,106,23,246,19,248,15,11,12,180,8,245,5,124,3,205,0,126,253,155,250,123,250,65,253,229,255,181,0, +84,1,95,2,150,1,1,254,111,249,51,245,50,241,72,237,1,233,15,228,109,224,228,224,65,229,111,234,126,237,114,237, +20,236,51,236,21,237,214,234,22,229,218,223,85,220,174,215,211,209,94,206,170,206,227,208,200,211,238,214,139,217,145,219, +114,221,67,222,121,220,230,215,212,209,92,204,213,200,247,197,71,194,9,192,217,193,103,197,127,199,152,201,215,205,65,210, +216,211,74,210,61,207,106,204,85,201,162,195,112,188,159,184,191,184,134,184,191,183,78,186,156,192,60,200,187,207,223,212, +203,213,101,212,62,210,153,205,217,198,80,193,255,189,149,188,90,189,48,190,209,189,154,192,133,200,141,207,76,210,195,212, +111,216,122,218,222,218,84,218,215,214,236,208,81,204,19,202,43,201,21,202,69,205,82,210,105,216,53,221,1,224,149,228, +219,235,163,239,103,236,134,230,83,226,23,224,64,223,23,223,196,223,25,227,167,231,49,233,122,233,58,238,87,246,116,252, +102,255,167,255,20,253,89,250,52,249,28,247,150,244,61,246,50,251,144,254,91,0,43,3,45,7,119,12,220,17,20,19, +194,15,92,13,179,13,151,13,255,12,67,14,135,16,3,18,250,18,244,19,146,21,177,24,92,28,44,31,216,33,138,36, +116,37,74,36,165,34,41,33,250,31,146,31,79,31,186,30,85,31,203,33,52,36,173,37,197,39,65,43,236,46,136,49, +134,50,198,49,68,48,205,47,247,48,92,50,189,50,142,50,107,50,233,49,44,49,54,49,249,49,178,50,123,51,50,52, +38,52,79,52,39,54,130,56,175,57,115,58,46,59,126,58,76,57,104,58,198,60,117,60,24,57,181,53,134,51,170,49, +13,48,73,47,175,47,209,49,73,53,57,55,189,53,181,51,225,52,249,55,203,56,72,54,220,50,146,48,7,47,132,44, +17,41,135,39,20,41,41,42,184,39,18,36,162,34,214,34,113,34,67,33,116,32,51,32,87,31,42,29,167,26,202,24, +128,23,21,23,33,23,214,20,95,15,139,10,108,8,175,6,222,4,208,4,55,5,173,3,231,0,121,254,5,254,62,1, +16,5,148,3,12,254,121,250,140,248,177,244,151,240,92,239,244,239,126,239,192,235,67,229,224,224,222,225,99,229,95,232, +226,234,141,236,192,237,176,239,23,239,237,232,9,226,214,221,125,215,76,206,55,201,219,201,46,204,26,207,211,209,67,211, +44,215,233,222,39,228,191,228,239,228,1,227,234,218,193,208,32,201,52,195,131,192,19,195,75,198,207,198,68,200,211,204, +214,210,162,217,145,223,253,225,199,225,193,223,13,218,253,210,126,207,228,205,86,202,6,199,188,198,112,200,252,203,175,209, +58,215,166,219,59,224,53,228,145,230,167,232,188,233,166,230,161,223,205,215,64,209,125,206,12,210,99,217,165,222,185,224, +12,228,23,235,157,242,91,246,98,246,153,245,106,244,82,240,217,232,18,226,144,224,52,228,132,232,32,234,101,234,101,237, +8,245,184,254,34,6,116,9,101,9,157,6,13,2,147,253,212,249,234,246,159,246,17,249,51,251,24,253,15,2,238,8, +98,14,158,19,197,24,105,25,189,21,62,19,164,18,239,16,248,13,28,10,203,5,156,4,249,7,85,12,198,16,188,22, +74,27,230,27,106,27,140,27,165,27,94,29,100,32,226,31,121,26,174,19,121,14,173,13,138,18,26,24,156,25,84,25, +178,25,136,25,249,25,11,29,247,32,253,35,189,37,33,36,24,31,146,26,157,24,241,24,200,27,103,30,234,28,164,25, +253,24,55,26,195,27,13,30,235,31,133,32,105,32,220,29,45,25,222,23,176,26,22,28,193,27,112,28,131,27,116,24, +72,24,180,26,76,27,217,26,209,26,177,25,209,24,226,24,44,22,253,17,222,17,64,19,253,16,67,14,193,14,241,16, +111,20,16,24,233,23,232,21,22,23,21,25,163,24,251,23,72,22,248,16,22,12,39,10,129,7,154,5,148,8,44,12, +79,12,92,12,28,13,19,13,230,15,154,21,185,23,67,22,73,21,63,18,241,11,32,7,227,3,187,255,81,253,158,252, +177,249,71,247,93,249,205,252,94,0,255,5,157,9,171,8,86,8,213,8,156,5,142,1,2,255,140,248,25,239,96,234, +179,233,43,233,34,235,243,238,157,240,10,243,155,248,71,252,93,253,244,255,245,0,205,251,171,243,114,236,181,231,100,232, +216,236,244,237,138,234,94,231,15,230,193,230,176,234,25,240,24,244,11,246,71,244,114,237,148,229,9,226,183,227,1,232, +132,234,143,232,133,229,172,229,89,231,198,231,191,231,211,231,87,231,85,230,71,228,92,225,23,224,108,225,82,228,172,232, +44,236,72,235,164,232,109,232,211,231,150,228,171,226,7,227,144,226,213,225,12,226,1,226,224,226,71,229,24,230,73,230, +145,233,147,236,98,235,22,234,57,235,225,234,153,231,149,227,133,224,78,224,200,225,138,224,177,222,106,226,45,233,13,237, +67,239,93,241,156,241,136,241,41,242,72,240,181,236,252,234,209,232,116,228,166,225,238,224,184,224,92,228,19,236,142,241, +11,244,217,247,117,251,189,251,54,250,40,247,24,241,76,234,148,229,59,227,57,228,153,232,68,237,220,240,204,244,230,248, +47,252,227,254,156,0,203,0,15,0,7,254,81,249,189,242,116,237,56,236,169,238,101,241,59,243,8,247,17,253,117,1, +139,3,111,6,1,11,95,15,83,16,161,10,188,0,238,249,60,248,70,248,89,249,212,251,59,254,51,1,17,5,120,6, +17,6,21,9,19,14,11,15,229,11,25,7,75,1,87,253,38,253,198,253,254,254,158,3,121,8,21,9,92,8,251,9, +23,13,226,16,116,19,162,16,59,9,8,2,15,252,227,247,222,248,31,254,12,3,195,6,194,9,98,11,86,14,12,21, +114,27,139,29,70,28,193,23,188,15,220,7,165,2,38,255,8,254,97,255,225,255,252,255,37,4,154,11,179,18,150,25, +28,31,3,32,237,30,78,31,212,28,219,20,59,13,37,9,144,5,49,2,250,0,157,1,247,4,152,11,198,17,74,22, +184,28,217,35,36,39,7,40,111,40,30,37,9,30,93,23,38,17,123,10,95,6,254,5,74,8,44,14,230,21,166,27, +239,33,204,43,238,51,80,54,111,54,145,53,185,49,24,44,83,37,208,28,78,22,11,20,105,18,243,17,35,23,249,30, +6,36,12,40,150,45,169,51,26,58,134,63,13,65,240,63,53,61,126,53,38,42,158,33,219,28,41,26,228,26,61,29, +16,30,192,32,138,39,118,46,113,53,222,62,239,69,57,70,153,66,159,60,14,52,185,44,241,39,58,34,162,28,162,26, +81,26,241,25,219,27,178,32,39,39,35,46,105,50,217,49,88,47,32,45,64,42,4,39,186,35,66,31,103,26,182,21, +187,15,46,11,171,12,219,17,22,22,48,25,68,26,205,23,62,21,0,21,69,20,252,18,101,19,121,18,214,12,18,5, +233,254,60,252,178,253,125,0,111,1,146,1,19,1,84,253,19,248,176,245,138,245,15,245,213,243,165,240,52,235,104,231, +201,231,194,233,96,234,51,233,87,231,75,230,118,229,176,226,47,223,131,222,13,224,212,222,73,216,78,208,218,204,198,205, +234,205,206,204,12,206,79,208,223,207,223,205,231,204,187,205,204,208,39,211,29,208,55,202,254,198,198,196,246,192,118,190, +253,189,25,189,92,188,148,187,168,184,142,182,206,184,14,188,44,189,128,189,111,189,96,189,125,190,235,189,128,186,236,185, +246,188,127,188,186,183,38,180,195,178,235,178,252,180,155,181,74,179,162,178,66,180,86,180,208,180,10,185,102,190,84,194, +73,196,80,194,64,190,112,189,221,190,130,190,124,190,215,192,214,193,68,191,185,187,64,186,136,188,109,193,105,197,45,200, +110,204,144,209,216,212,65,214,250,214,146,215,151,216,125,217,229,216,128,214,30,211,252,208,99,210,157,213,186,215,79,218, +216,222,134,226,151,228,91,231,218,234,49,239,205,244,29,247,84,243,67,239,61,238,205,236,214,235,97,238,86,241,82,243, +110,247,214,251,59,254,104,2,38,8,219,10,249,12,96,17,56,19,149,17,123,17,20,18,57,17,55,18,73,20,45,19, +57,18,135,21,88,25,76,27,167,29,16,32,10,34,171,37,128,41,199,42,135,43,35,45,65,45,202,43,103,42,234,40, +128,40,255,42,26,46,7,47,236,46,78,47,72,48,153,50,53,54,167,57,105,60,41,62,245,61,217,60,8,61,48,62, +251,62,17,64,220,65,95,66,61,64,150,61,50,61,128,62,32,63,135,62,180,61,225,61,108,64,127,68,237,70,130,71, +48,73,130,75,126,75,174,73,90,72,143,71,191,70,99,69,119,66,178,62,198,59,198,57,80,57,141,59,140,62,62,64, +31,66,142,68,135,69,104,69,71,69,9,68,247,65,85,64,230,61,84,58,58,55,126,51,16,46,234,41,89,40,14,39, +5,38,169,38,235,39,221,40,177,41,235,41,207,41,252,41,212,41,13,42,11,43,76,41,143,35,167,29,209,23,129,15, +76,7,168,1,238,252,118,250,136,251,245,251,103,252,16,3,196,12,198,17,5,20,188,22,120,22,144,18,82,13,151,5, +120,252,131,245,189,238,236,229,20,222,13,216,233,210,172,209,78,213,68,219,56,228,12,239,214,245,132,248,102,251,148,252, +121,249,9,244,129,235,189,222,159,209,148,197,172,185,115,178,132,178,133,181,217,186,113,196,225,205,134,212,86,220,95,229, +154,235,96,237,69,233,194,224,158,217,144,210,34,198,250,185,116,181,89,180,251,179,229,183,140,189,157,194,194,203,106,214, +246,218,250,220,119,225,183,227,46,226,161,223,246,216,59,206,45,198,107,192,196,185,124,183,102,188,162,195,174,203,149,212, +99,219,104,225,152,232,119,236,23,236,123,235,46,232,117,224,57,219,93,218,187,216,71,215,194,215,117,214,109,213,114,218, +149,226,70,233,64,239,7,243,221,243,225,246,2,252,247,252,137,250,100,249,31,248,165,244,160,240,206,237,51,238,226,241, +77,244,13,244,107,245,114,249,197,254,53,6,125,12,122,12,191,9,251,9,49,11,69,11,8,12,58,13,218,13,172,13, +103,10,97,5,21,5,176,9,181,13,160,16,219,18,156,17,220,14,10,15,30,17,85,20,223,25,12,30,83,30,98,30, +31,30,217,26,23,25,125,27,28,28,255,25,39,26,217,26,44,25,24,25,207,27,105,29,217,29,36,30,231,28,217,28, +103,33,25,38,240,37,100,35,189,33,212,32,178,32,45,33,253,32,78,32,176,31,42,30,171,27,191,25,77,25,169,26, +114,29,103,31,11,31,85,30,119,31,131,33,173,34,236,34,212,34,67,34,36,33,135,31,54,29,249,26,117,26,9,27, +59,26,244,23,65,22,9,22,77,23,76,25,19,26,201,25,159,26,140,27,171,26,148,26,193,28,111,29,201,26,184,22, +31,18,111,14,14,13,240,10,182,6,221,4,231,5,122,5,60,4,81,4,68,4,141,5,37,9,86,9,219,5,121,6, +252,9,39,9,245,5,148,3,46,255,14,250,167,246,98,241,100,235,215,233,177,232,130,228,246,227,93,232,64,236,65,241, +40,248,219,250,144,250,229,251,68,250,78,244,108,240,9,237,242,229,131,223,52,218,176,210,156,207,165,212,180,216,129,217, +200,220,151,223,136,223,7,226,136,229,29,230,13,233,76,237,180,233,7,226,200,222,187,219,38,214,231,210,193,207,70,202, +52,201,39,205,185,207,135,210,170,215,150,218,135,220,206,225,219,230,202,233,100,237,129,237,108,230,216,222,239,218,106,215, +131,212,206,211,50,211,171,210,121,210,72,208,102,207,140,213,24,223,252,229,160,234,86,237,141,237,252,237,64,238,243,234, +19,230,53,226,90,221,142,216,9,215,59,215,130,216,6,221,50,226,125,229,112,234,181,241,96,247,68,251,60,253,255,249, +145,243,85,239,37,237,1,236,105,237,222,238,58,237,200,235,13,238,196,242,146,248,209,254,247,3,95,7,70,8,92,5, +207,0,91,254,201,253,232,252,216,250,14,248,102,247,192,251,58,3,80,10,193,15,58,18,230,17,44,18,80,19,100,18, +166,16,225,15,83,13,178,8,110,5,2,4,194,4,201,9,146,16,99,21,172,25,75,29,18,29,12,27,29,26,177,23, +101,19,21,16,220,12,46,10,4,12,71,16,137,18,213,21,55,28,247,32,191,34,24,36,65,36,229,34,34,33,148,28, +226,20,76,15,180,13,254,13,162,16,247,20,249,23,38,27,192,32,121,37,75,39,178,40,211,41,168,40,196,36,174,29, +120,20,209,13,253,11,116,12,152,13,232,15,27,19,69,22,126,24,159,25,174,26,82,27,65,26,201,24,190,23,246,20, +225,16,244,13,23,11,35,8,76,8,232,10,166,13,244,17,183,21,42,20,16,17,12,17,88,15,96,10,4,8,142,7, +208,4,147,2,81,2,200,1,182,3,37,9,177,12,155,14,49,18,180,18,16,14,138,10,54,8,80,3,245,255,166,255, +160,252,157,248,167,249,22,253,217,255,141,4,239,9,175,12,84,14,15,15,93,13,130,12,210,13,239,11,2,5,156,253, +233,248,103,247,220,248,110,252,16,2,102,8,144,11,240,11,26,14,245,17,170,20,55,22,21,21,115,15,86,9,75,6, +15,5,37,6,118,9,73,10,221,8,167,10,140,14,236,16,107,19,158,21,217,20,208,19,115,20,168,20,0,22,6,25, +179,24,32,22,97,22,151,21,139,17,193,17,20,22,83,22,234,19,5,19,177,16,251,14,240,18,111,23,138,24,133,27, +109,31,116,30,226,27,41,27,8,25,253,22,242,23,230,22,110,18,215,16,165,18,74,20,112,22,147,23,0,21,136,19, +111,22,86,24,121,23,119,23,165,22,167,18,223,14,175,12,201,10,108,11,106,14,96,14,149,11,196,11,161,14,187,16, +190,19,0,24,129,23,198,15,149,6,145,0,232,252,31,251,136,251,128,251,83,249,181,247,51,248,74,249,119,251,205,255, +234,3,220,5,18,6,152,3,49,254,0,249,244,244,178,239,112,233,21,228,206,223,245,220,162,219,19,219,109,221,55,228, +191,234,164,237,169,239,18,241,189,239,67,238,141,237,14,233,207,224,18,217,225,209,134,203,14,201,212,200,35,200,120,201, +62,205,139,208,209,212,16,219,70,223,143,224,154,224,3,221,110,213,23,206,25,200,60,195,252,192,177,190,112,186,124,185, +24,188,101,187,250,185,26,191,107,198,9,202,252,204,214,207,118,207,12,206,229,204,39,201,156,196,237,193,225,189,254,183, +111,180,29,179,163,178,237,180,69,185,226,188,68,192,225,195,130,199,250,204,234,210,234,212,194,211,218,209,125,205,185,199, +101,196,77,194,70,192,38,193,118,195,184,195,244,196,147,201,5,206,64,209,115,213,21,218,73,222,116,225,66,225,246,222, +185,222,166,223,133,223,0,224,122,224,152,222,70,220,150,218,172,216,161,218,159,226,94,234,253,238,180,243,61,247,40,248, +91,250,41,253,217,252,195,252,204,254,190,253,227,249,233,248,206,250,157,253,239,0,173,1,131,0,176,3,27,10,41,14, +85,18,88,24,76,26,44,24,19,24,193,25,23,27,136,29,96,31,187,30,135,30,68,30,153,27,158,27,227,32,209,35, +11,34,124,34,124,38,7,42,111,45,251,49,98,54,51,58,145,60,214,59,142,57,30,56,100,55,9,55,52,54,253,50, +237,46,148,45,208,46,96,49,221,53,132,59,23,65,127,70,195,73,40,74,209,75,44,79,105,78,0,73,242,67,173,63, +247,58,177,56,63,58,190,61,61,66,43,70,203,71,98,73,184,76,255,78,82,79,171,79,130,78,41,74,239,69,12,68, +79,66,207,63,235,61,238,60,171,60,49,61,98,62,12,65,25,69,243,70,42,68,243,63,144,61,250,58,196,53,247,47, +92,44,168,42,5,42,225,42,134,44,135,45,149,46,13,48,99,47,129,43,219,38,182,34,185,30,163,27,242,24,61,21, +216,18,196,19,159,20,17,20,68,22,52,27,65,29,104,26,186,20,224,13,176,7,176,2,18,253,4,248,247,246,93,248, +187,248,8,249,159,250,117,252,125,254,12,0,13,255,4,253,251,251,38,248,229,238,8,229,170,222,29,219,107,218,56,220, +123,221,136,222,137,226,24,231,209,231,253,230,5,232,232,231,48,227,72,219,153,210,36,203,60,199,124,197,47,194,225,191, +77,196,80,205,195,212,124,218,138,223,180,224,31,221,133,215,58,208,70,200,27,195,220,190,120,183,206,176,19,176,179,179, +177,186,183,197,59,208,85,215,62,222,46,227,196,224,51,218,84,212,51,205,133,197,195,192,15,188,191,182,36,183,45,188, +97,191,39,196,7,207,59,218,201,225,164,231,126,233,18,230,166,226,32,223,171,214,70,205,131,201,49,201,103,201,240,203, +175,208,97,214,100,221,151,227,234,230,97,234,112,239,73,242,141,241,209,239,204,237,185,234,215,230,211,226,187,224,217,226, +119,231,241,234,101,237,44,241,99,246,66,251,106,254,25,0,239,1,134,4,255,5,85,4,107,0,8,254,200,255,133,3, +156,5,27,6,120,6,48,6,120,5,183,5,154,6,45,8,177,11,87,15,185,16,52,18,212,21,76,25,173,27,167,29, +70,29,160,26,190,25,197,26,200,26,150,26,173,26,124,24,131,21,12,22,68,25,152,28,120,32,92,36,207,38,207,40, +95,42,19,42,187,41,244,42,250,42,208,40,25,39,165,37,70,35,183,34,248,36,54,38,19,37,125,36,210,37,71,40, +7,43,86,44,147,43,141,43,170,45,130,46,250,43,25,41,53,40,166,39,89,38,162,37,234,37,130,38,116,39,78,40, +20,40,121,39,55,39,246,37,122,35,199,33,85,33,114,33,189,34,116,36,42,36,152,34,252,33,95,33,12,32,94,32, +149,34,164,35,249,33,15,30,250,24,133,20,14,17,123,13,84,11,225,12,95,16,39,19,254,20,135,21,106,21,87,23, +189,25,81,23,79,16,246,8,229,1,205,250,102,245,222,241,105,240,215,242,67,247,253,249,109,252,39,0,64,2,1,2, +6,1,141,253,155,247,254,242,87,238,242,229,100,221,192,216,44,214,194,213,132,217,1,223,29,229,86,237,8,243,58,242, +64,241,156,243,94,242,153,234,173,224,146,214,9,206,57,201,186,195,117,187,200,184,30,191,120,199,160,208,54,222,89,236, +76,246,103,251,228,247,194,235,164,224,209,217,190,208,146,197,175,188,145,180,183,174,69,176,78,182,208,189,118,203,15,221, +125,233,211,240,148,245,90,243,192,235,236,229,184,223,167,213,247,203,251,194,227,184,185,180,190,185,192,192,192,200,59,213, +239,224,0,233,31,242,196,248,249,246,47,243,165,241,180,235,135,225,96,218,100,214,96,212,192,213,43,214,185,211,171,214, +74,225,167,235,77,243,185,249,51,252,78,251,139,250,202,247,205,242,23,241,167,241,252,238,187,234,23,232,61,230,195,230, +35,235,18,240,143,244,65,250,33,255,189,2,84,8,32,14,123,16,127,17,64,18,110,16,196,13,4,12,37,8,220,2, +232,0,136,1,82,1,57,0,232,254,183,255,81,6,222,15,188,22,158,28,246,35,75,41,43,43,110,42,213,36,63,28, +0,23,105,19,10,12,0,4,182,255,223,253,243,254,197,4,247,12,161,22,47,35,179,46,201,51,62,51,127,48,82,46, +241,45,47,43,220,33,118,22,89,14,7,8,178,3,101,5,125,12,150,21,82,31,209,38,56,42,241,44,95,48,220,49, +13,50,76,49,81,43,199,32,102,24,147,19,92,16,133,16,191,19,95,22,190,24,33,28,86,30,165,31,123,34,34,37, +173,37,230,36,196,33,122,28,139,25,62,25,40,23,243,19,61,18,41,16,236,13,92,14,60,15,197,14,220,16,21,21, +83,22,55,22,163,24,251,26,193,27,41,29,195,28,168,23,176,17,203,13,123,10,24,8,235,6,85,5,240,5,75,11, +109,16,93,18,103,21,218,25,19,28,161,29,31,31,39,28,153,21,234,15,2,10,228,3,169,1,203,1,173,1,143,5, +199,12,168,15,33,16,125,21,73,28,16,31,226,31,35,30,42,23,119,15,25,10,181,3,28,254,97,254,53,2,87,6, +175,11,70,16,154,18,207,22,33,29,71,32,201,31,125,29,78,24,123,18,59,15,248,10,217,3,131,255,225,255,121,1, +179,4,202,10,9,17,105,22,158,27,98,30,70,29,59,26,216,22,64,20,224,18,244,15,8,10,83,4,202,0,219,254, +177,255,57,3,106,6,222,8,8,12,192,14,230,15,186,15,85,14,25,14,198,16,148,17,1,13,4,8,237,5,157,3, +40,0,0,253,216,249,108,248,242,249,6,250,31,247,70,246,125,248,143,250,195,252,12,255,112,255,171,255,158,0,216,254, +194,250,162,246,142,239,95,230,49,226,74,226,207,224,33,224,64,227,248,229,23,231,56,233,191,234,82,235,70,238,239,241, +134,242,204,240,85,236,11,228,157,220,200,216,3,213,63,210,87,212,171,215,89,216,84,217,69,219,146,219,255,219,206,221, +202,221,195,219,236,217,141,214,203,208,1,204,118,201,229,199,170,199,150,200,246,200,196,200,140,200,194,199,19,199,180,199, +32,201,190,202,77,204,76,204,46,202,10,200,55,199,78,198,192,195,95,192,184,190,186,191,253,192,116,192,159,191,135,192, +88,194,219,194,116,193,114,192,183,194,115,199,237,202,104,203,153,201,209,198,79,197,0,198,168,198,175,198,114,200,6,203, +209,202,105,200,253,198,62,199,99,200,174,201,175,202,155,204,187,207,135,209,212,209,170,211,194,214,186,216,245,217,118,218, +39,217,67,216,117,217,250,217,32,217,74,217,147,217,206,216,31,217,60,218,48,218,109,219,158,223,145,227,132,230,189,234, +91,239,72,243,118,247,211,249,70,248,96,246,234,246,107,247,124,246,97,245,155,244,76,245,98,248,110,251,5,253,179,255, +90,4,1,9,200,12,238,14,1,15,18,16,193,19,174,21,76,19,117,16,180,15,125,15,185,15,160,17,174,20,130,24, +34,29,178,32,242,33,207,34,165,36,205,37,87,37,41,37,204,38,192,40,140,40,254,38,110,40,166,46,50,53,255,55, +201,57,221,61,247,64,99,63,204,59,215,57,241,56,160,55,147,53,248,50,88,50,116,54,31,61,176,66,177,71,28,77, +91,81,190,83,37,84,135,81,185,77,125,75,123,72,100,66,42,61,69,60,81,62,122,66,174,72,243,78,214,84,195,90, +177,93,58,92,140,90,100,90,1,88,158,81,112,73,39,66,74,62,243,61,227,61,181,61,65,65,245,72,84,80,33,84, +156,84,45,84,82,85,69,86,14,82,217,72,172,64,53,60,3,56,240,49,92,45,29,46,196,50,219,54,22,57,150,59, +120,63,131,67,118,69,128,67,35,62,90,55,126,47,120,38,55,30,135,24,221,21,59,22,167,23,39,24,160,26,134,33, +88,40,248,42,198,42,183,39,17,32,185,21,90,10,153,254,85,247,199,246,241,246,218,245,228,248,239,255,95,6,167,11, +67,14,225,11,33,9,183,8,247,3,178,248,40,237,116,227,80,219,167,215,239,214,222,213,142,216,31,224,28,229,104,230, +51,233,8,236,211,236,227,237,104,235,255,224,189,213,234,206,75,199,206,190,164,187,136,188,93,190,103,195,38,202,225,206, +67,212,102,218,212,218,247,213,2,210,33,206,134,199,193,192,251,186,117,181,134,178,45,178,148,177,180,179,252,187,25,197, +214,201,252,203,89,204,2,202,77,199,242,195,101,188,136,180,163,179,219,182,240,182,156,180,80,180,109,183,58,189,51,194, +13,195,53,196,4,203,246,209,149,209,198,204,193,200,60,197,79,194,52,193,186,192,201,193,219,198,128,204,110,206,190,207, +219,211,165,216,68,220,98,222,194,221,135,219,98,217,252,212,183,206,128,204,55,207,127,210,207,214,196,221,245,227,215,231, +35,235,234,236,219,237,30,242,193,247,163,248,138,245,14,242,90,237,248,231,162,229,21,231,68,235,224,241,111,248,129,252, +105,255,158,2,121,6,37,12,18,18,80,20,132,19,127,18,255,15,79,11,101,7,242,4,147,2,80,1,28,2,176,4, +63,10,111,18,209,25,218,31,126,38,50,44,69,46,94,45,67,43,83,41,99,40,174,38,142,34,170,30,155,29,242,29, +219,30,230,33,50,39,86,45,25,51,14,55,22,57,153,58,59,59,189,57,79,55,67,53,26,51,49,49,108,48,196,47, +64,46,172,44,222,43,95,44,88,46,94,48,69,49,222,49,152,50,149,50,247,49,139,49,99,49,105,49,13,49,96,47, +32,45,155,43,80,42,212,40,211,39,178,38,157,36,56,34,236,30,225,25,118,22,70,24,244,28,118,32,143,34,106,36, +4,38,135,38,145,36,150,32,165,29,218,27,62,23,55,15,254,7,122,4,27,5,103,9,67,14,17,16,141,15,93,15, +217,15,128,16,192,16,213,14,84,10,238,4,236,254,111,248,118,244,141,244,167,245,96,245,101,244,40,243,79,242,140,243, +33,246,116,247,25,247,94,245,56,242,242,239,134,239,124,236,233,228,104,222,7,220,58,218,231,215,175,215,222,217,197,221, +43,227,29,231,104,231,184,230,209,230,124,229,109,225,240,218,250,210,87,205,57,204,121,203,151,200,88,199,64,201,195,203, +189,206,173,210,98,214,123,218,53,222,49,221,168,216,24,215,143,215,135,212,129,207,7,204,202,200,49,197,225,194,112,194, +191,197,141,205,15,212,222,212,125,212,133,215,65,220,136,223,28,223,204,218,149,214,96,212,96,208,194,202,1,202,184,207, +209,214,8,219,3,219,161,217,29,221,42,229,191,233,169,232,128,231,82,232,249,232,200,232,112,231,106,229,75,229,127,230, +92,229,52,227,138,228,234,232,24,237,98,240,69,243,32,246,121,249,151,252,187,254,222,0,189,2,40,2,9,255,172,251, +233,249,158,250,198,252,163,253,24,253,4,254,122,0,202,1,163,2,152,6,8,14,36,21,128,24,102,24,231,23,61,25, +72,27,249,26,110,23,181,19,143,18,73,18,165,16,226,15,178,18,141,23,96,28,43,33,249,36,160,38,246,39,225,42, +200,45,250,45,39,43,213,39,197,38,240,38,51,37,185,34,87,35,115,38,173,40,131,41,38,42,78,43,156,45,34,48, +29,49,132,49,222,50,155,51,125,50,198,48,229,46,184,44,146,43,190,43,235,43,1,44,42,44,181,43,112,43,190,44, +227,46,225,48,213,50,28,52,2,52,227,50,160,48,133,45,254,43,120,45,234,47,115,48,40,46,218,42,101,41,150,41, +203,40,101,39,116,39,192,39,3,39,69,39,46,41,183,42,124,43,23,44,254,43,81,43,86,42,127,40,250,38,221,38, +124,37,74,33,86,29,49,27,164,25,131,25,71,27,111,28,156,28,182,29,231,30,20,31,199,31,1,33,51,33,173,32, +234,30,47,26,226,20,238,18,37,19,121,18,174,16,27,14,123,11,27,11,200,12,120,13,18,13,109,13,163,13,229,12, +150,12,31,12,208,9,96,7,44,6,103,3,11,254,242,249,142,249,95,251,138,253,98,254,136,252,174,249,60,248,201,246, +168,243,253,240,48,240,96,239,233,237,239,236,41,236,84,235,60,235,50,235,52,234,0,233,158,231,136,229,108,228,220,228, +52,228,28,226,218,224,196,223,138,221,221,219,16,219,217,217,3,218,75,220,117,220,39,217,140,214,44,214,49,214,188,214, +173,215,244,214,29,213,28,212,186,210,220,207,9,206,80,207,71,210,150,212,60,213,175,212,111,211,153,208,1,204,209,200, +235,201,1,205,55,205,147,201,180,197,228,196,232,198,5,202,144,205,50,209,195,211,165,211,130,207,109,200,225,194,46,194, +121,196,152,198,21,200,192,201,36,204,115,206,219,205,78,202,188,200,196,202,15,204,141,203,237,203,55,204,65,203,190,203, +167,205,88,206,87,207,221,209,203,210,13,210,144,210,26,211,128,210,173,211,56,214,45,214,22,212,17,211,192,211,249,213, +181,216,12,218,52,219,110,221,187,221,10,220,48,221,128,224,5,225,4,224,255,224,36,226,96,225,151,223,68,221,239,219, +45,222,116,226,84,229,8,231,20,233,155,235,169,238,9,241,242,240,217,239,251,239,52,240,70,239,37,238,105,237,107,237, +193,238,84,240,53,241,193,242,169,245,19,249,135,252,181,254,143,254,234,254,121,2,228,6,55,9,57,9,4,7,209,3, +13,2,240,0,178,254,196,253,138,0,0,5,206,8,35,11,122,11,188,11,132,14,72,18,116,20,164,21,122,22,187,22, +114,23,246,23,156,21,133,17,114,15,187,15,198,16,74,18,237,19,124,21,192,23,9,26,166,26,30,26,11,26,37,27, +231,29,79,33,77,34,215,31,119,28,149,26,69,26,71,26,219,25,35,26,158,28,64,32,156,34,237,34,143,34,4,36, +239,39,160,42,27,41,132,38,133,38,122,39,224,38,237,36,166,34,45,34,62,37,11,41,39,42,55,42,104,43,5,45, +20,47,37,49,191,48,52,47,165,48,135,51,182,51,0,50,22,48,39,45,70,42,96,41,182,41,197,42,178,44,226,45, +100,46,114,48,229,50,226,51,234,53,160,57,15,59,186,57,116,56,235,54,71,53,85,54,44,56,19,54,250,49,177,48, +173,49,240,50,236,52,209,54,79,55,196,55,199,56,159,56,237,55,135,57,104,61,119,64,247,63,225,59,171,55,169,54, +56,55,237,53,127,51,32,50,98,49,236,48,105,49,144,49,136,48,179,48,217,50,215,51,51,50,153,47,224,44,37,42, +91,40,184,39,15,40,6,42,194,44,244,45,60,45,35,43,49,39,167,34,21,32,152,30,128,27,140,23,25,21,242,19, +207,18,45,18,129,19,194,22,230,25,118,27,231,27,58,27,208,24,242,21,103,19,216,14,90,7,162,255,114,249,24,245, +196,243,223,244,50,246,140,248,89,253,24,2,35,4,20,4,115,3,73,3,102,2,220,252,217,242,119,234,232,229,9,226, +153,222,209,220,239,219,210,221,218,227,211,232,29,234,94,236,127,239,5,238,80,232,179,225,8,219,13,215,109,214,246,210, +27,203,159,197,185,196,222,197,47,201,136,204,120,204,112,204,132,206,4,205,219,199,88,198,229,200,202,202,165,202,27,199, +176,192,17,189,187,188,154,186,34,185,52,188,189,189,205,185,3,182,4,181,12,181,230,182,41,185,42,185,172,186,123,191, +49,193,7,190,151,187,91,187,138,187,173,187,90,185,194,180,203,179,226,181,60,179,190,172,145,170,154,174,223,181,93,189, +225,192,112,192,156,193,204,196,44,197,24,195,5,194,225,193,128,193,46,191,190,184,209,177,79,177,193,182,221,188,229,193, +74,197,116,198,117,200,111,205,28,210,38,212,224,212,75,212,196,209,181,206,252,203,220,201,91,202,88,206,107,211,61,215, +74,217,181,218,177,222,187,230,137,238,198,240,209,237,179,233,239,230,223,229,81,230,63,232,189,235,55,240,5,244,149,245, +103,245,210,246,199,252,211,4,153,8,208,5,9,1,50,255,92,0,243,1,136,2,152,2,189,3,125,7,61,13,233,17, +237,19,3,22,100,26,236,29,39,29,191,26,61,27,46,30,110,32,7,33,134,32,164,31,39,32,164,35,226,40,19,45, +14,47,193,47,122,48,48,50,70,53,190,56,0,59,242,59,138,60,103,60,109,58,107,55,214,53,76,55,38,59,243,62, +229,64,2,66,115,68,253,71,15,74,0,73,122,70,87,70,180,73,161,76,175,75,7,73,101,72,206,73,233,74,126,74, +203,73,70,75,164,78,43,80,122,78,46,76,247,74,25,75,69,77,96,79,178,77,32,74,161,73,191,75,50,77,33,78, +103,79,190,79,71,78,85,75,225,71,137,69,117,68,32,67,178,65,0,65,219,63,20,62,182,61,254,62,170,64,94,66, +142,66,171,63,124,60,250,59,219,59,20,57,48,52,148,46,53,41,216,36,160,32,186,28,210,28,184,33,125,37,140,35, +197,30,131,28,238,29,0,31,79,27,85,20,162,15,54,14,2,12,211,7,200,4,182,4,200,5,201,4,190,0,236,252, +182,252,67,254,190,253,84,251,238,248,29,246,135,242,134,239,80,237,69,235,115,234,86,235,184,235,50,234,245,231,165,229, +202,226,171,223,56,220,170,215,207,210,152,206,198,201,60,196,136,192,233,191,37,194,122,199,159,205,185,208,100,209,228,209, +168,208,46,205,199,201,194,196,90,187,222,176,130,168,14,161,0,156,166,156,138,161,225,168,36,179,108,189,171,196,58,202, +93,205,151,203,104,199,173,193,115,182,207,168,60,160,181,154,52,148,255,144,135,147,246,152,171,161,248,172,79,182,244,190, +154,201,17,208,46,206,60,201,218,195,165,188,115,181,124,173,104,162,160,154,191,155,220,159,83,163,154,170,30,181,218,190, +153,200,9,209,152,212,20,214,124,215,146,212,85,206,112,202,183,199,151,195,204,192,253,191,23,192,143,195,176,201,109,206, +236,211,165,220,72,227,72,229,101,231,205,234,37,237,59,239,141,240,68,238,144,234,6,234,29,236,162,237,108,237,3,237, +120,239,103,244,244,246,191,246,161,249,10,1,191,7,33,10,240,8,163,7,73,10,236,15,219,18,224,17,111,17,128,19, +207,21,191,21,209,18,210,16,150,20,161,27,137,30,46,28,114,26,186,29,19,37,216,43,244,46,52,49,114,53,160,55, +19,52,60,47,148,46,106,49,246,51,81,51,18,48,225,46,123,49,66,51,188,50,16,53,174,59,177,65,90,68,177,68, +12,68,229,67,75,68,23,67,194,64,65,64,154,64,89,62,244,57,229,54,235,55,90,61,73,67,36,69,228,68,67,71, +193,74,55,75,73,73,169,71,69,71,191,71,155,70,184,65,186,60,106,60,217,62,190,63,249,62,31,62,129,62,247,64, +160,66,248,63,57,60,40,60,117,61,34,60,250,56,172,53,169,50,127,48,31,46,152,42,85,40,78,40,134,39,42,37, +41,35,25,34,198,34,40,37,79,37,244,33,212,30,53,27,223,19,248,12,60,10,87,7,186,2,93,0,11,0,150,0, +83,4,131,9,158,12,220,15,22,19,91,17,197,11,251,4,45,250,182,238,106,234,183,232,109,226,166,221,179,223,189,228, +58,236,235,245,238,251,177,255,171,6,2,10,4,3,102,248,241,237,119,224,50,211,210,200,127,190,31,185,229,189,68,196, +59,199,180,205,58,215,233,222,23,233,69,244,104,245,50,238,92,231,40,221,167,204,182,189,96,179,41,172,105,171,168,175, +10,179,177,184,222,195,196,206,3,216,151,226,125,233,82,233,26,231,71,226,252,214,152,202,148,193,37,185,13,180,99,183, +80,190,65,195,159,199,177,203,140,207,70,214,22,221,35,222,5,221,253,222,128,223,205,217,15,209,57,202,158,200,168,204, +242,208,43,209,84,209,172,213,7,219,253,220,61,220,139,220,199,223,8,227,126,226,223,223,199,223,19,227,138,231,139,234, +46,234,116,232,204,233,188,237,4,240,2,240,161,239,181,238,115,236,173,233,174,232,17,236,58,243,72,250,12,0,20,6, +217,10,182,11,241,9,88,8,124,8,135,10,22,11,118,6,234,255,88,253,79,254,198,255,81,2,198,6,115,12,56,19, +89,25,215,27,63,28,16,31,18,36,199,38,205,36,55,32,209,28,188,27,88,26,248,22,193,19,70,19,217,21,33,26, +3,30,57,33,84,38,158,45,32,51,17,53,205,53,112,54,110,54,48,54,208,52,72,48,63,42,117,38,62,37,202,36, +201,36,221,37,199,40,221,45,52,51,158,54,100,57,57,61,10,64,182,63,151,61,228,58,187,54,37,49,188,43,73,40, +85,40,47,43,175,45,65,47,193,50,83,56,231,60,111,63,100,64,143,63,194,61,230,58,89,52,187,43,215,39,196,41, +1,44,197,44,176,45,61,46,214,46,10,49,25,51,88,52,118,55,37,58,158,54,156,46,12,40,227,35,13,33,140,31, +119,30,106,30,135,32,155,33,101,32,35,34,11,39,21,40,229,36,67,35,108,35,159,34,81,32,80,27,253,20,155,18, +97,19,152,17,185,14,90,15,196,17,212,19,24,22,112,22,81,20,29,20,170,21,170,19,49,14,70,9,225,5,254,3, +255,2,184,255,36,250,191,246,27,246,232,244,187,243,197,245,37,251,5,1,243,3,141,2,78,255,127,252,123,248,225,241, +35,235,35,231,221,229,5,229,26,227,230,225,139,227,15,230,155,230,81,230,104,231,158,233,112,235,33,235,76,232,121,229, +47,228,34,226,81,222,46,219,233,217,130,217,253,216,78,215,31,213,115,213,101,216,132,218,129,218,1,217,16,214,120,211, +16,211,237,210,30,210,71,211,251,213,147,214,227,212,219,210,134,208,246,205,220,203,172,202,158,203,208,205,13,205,213,200, +96,197,170,195,58,194,127,194,136,197,110,202,24,209,182,214,35,214,22,209,108,205,159,202,15,198,186,193,245,190,103,189, +107,190,96,192,229,191,166,192,242,198,152,205,146,207,61,208,101,210,182,212,178,214,233,214,86,211,128,206,175,202,125,197, +131,191,123,189,158,191,10,195,96,199,52,204,254,208,119,215,115,222,143,225,115,225,132,225,35,224,133,219,96,214,88,210, +113,207,130,207,172,209,246,209,126,209,122,212,115,217,185,220,25,223,24,226,194,228,184,230,249,231,106,231,58,229,231,226, +186,224,41,223,232,223,236,226,111,230,234,233,10,237,44,238,39,237,245,235,108,235,62,235,208,235,207,236,49,237,226,237, +0,240,243,241,18,243,206,245,72,250,98,253,178,254,228,255,4,0,71,254,169,252,122,251,78,249,190,247,132,248,108,249, +109,249,80,251,216,255,155,4,154,8,46,12,40,15,190,17,56,19,71,17,192,12,218,9,72,9,237,7,123,5,119,4, +208,5,80,9,127,14,39,19,173,21,7,24,198,27,170,30,239,30,53,30,135,29,78,27,163,22,24,17,82,13,49,13, +23,16,165,19,82,23,64,28,142,33,76,37,162,39,181,40,119,39,18,37,141,35,103,33,148,29,177,27,182,29,36,32, +223,32,51,34,169,37,250,41,12,45,86,45,19,44,110,44,251,45,20,45,238,41,131,40,219,41,5,43,165,41,74,39, +90,40,244,45,53,51,13,53,6,55,235,58,95,60,31,57,140,52,147,49,85,48,69,48,87,48,252,47,20,48,206,48, +132,49,0,51,88,54,110,59,172,65,168,70,161,70,111,66,42,63,204,61,5,59,182,54,219,51,107,51,6,52,7,52, +243,50,184,50,46,53,158,56,98,58,178,58,0,59,190,59,99,60,158,59,101,57,239,55,149,55,115,53,5,49,58,45, +85,43,141,42,194,42,157,43,142,44,16,46,196,47,116,48,228,48,146,49,103,48,32,45,37,42,68,39,51,35,215,31, +111,30,39,29,157,27,187,26,164,25,153,24,64,25,50,26,225,25,168,26,163,28,106,27,108,22,216,17,238,14,24,12, +10,9,168,5,72,2,238,0,60,1,51,0,144,254,151,255,120,2,89,4,161,4,237,2,85,255,185,252,249,251,60,249, +88,243,134,238,227,236,56,236,105,235,178,235,214,237,63,241,139,243,215,241,251,236,31,233,98,231,212,228,69,224,239,219, +122,217,94,216,180,215,91,215,6,216,64,218,214,220,163,221,107,220,149,218,101,216,26,213,212,208,103,204,133,200,149,197, +25,195,192,192,107,192,133,195,132,199,193,201,157,203,101,206,48,208,196,207,30,206,168,203,105,200,230,196,189,192,252,187, +167,184,211,183,200,184,169,187,77,192,49,197,107,202,37,208,27,211,114,209,98,206,234,203,125,200,51,196,128,192,113,189, +189,187,193,187,111,187,115,187,195,191,146,199,163,206,170,212,167,217,133,218,198,215,34,213,8,210,209,204,157,199,72,195, +149,190,110,187,50,188,209,191,168,197,226,205,204,213,234,218,78,222,78,225,250,227,43,230,109,230,102,227,110,222,249,216, +81,211,159,207,22,208,144,211,150,216,232,222,163,228,98,232,8,236,185,240,11,245,122,248,173,250,199,249,206,245,103,241, +28,238,232,235,14,235,95,236,198,240,9,247,215,250,206,250,151,251,217,255,248,3,133,5,195,6,75,9,143,11,250,10, +253,6,158,3,129,5,107,10,235,12,174,13,115,16,45,20,242,21,21,22,67,22,152,23,174,26,19,30,64,31,98,30, +5,30,120,31,160,33,182,34,230,34,46,36,175,38,77,40,233,40,46,42,227,43,82,45,229,46,105,47,205,45,10,45, +49,47,204,48,200,47,158,47,78,50,122,53,159,55,35,57,68,58,184,59,107,61,239,60,225,57,194,55,173,55,136,54, +87,51,238,48,110,49,119,52,1,56,4,58,78,59,25,62,222,64,60,64,49,61,52,59,37,59,64,60,238,60,117,58, +110,53,85,50,168,49,175,47,2,45,144,45,59,49,25,53,38,55,10,54,71,51,233,50,100,52,33,51,86,47,226,44, +134,43,134,40,223,35,132,31,119,29,109,30,84,32,26,33,139,33,83,34,57,34,72,32,99,28,40,24,7,23,62,24, +85,22,48,17,47,14,130,13,252,11,8,11,153,12,119,15,175,18,179,19,215,14,199,7,43,5,149,4,5,1,2,253, +69,251,33,250,81,249,130,248,190,245,139,243,152,245,254,248,78,250,104,250,94,249,219,247,23,248,41,246,205,237,49,230, +210,229,43,230,89,226,105,223,161,223,144,224,29,226,47,227,201,226,82,229,56,235,132,236,62,231,159,225,77,221,193,216, +67,213,3,210,214,205,78,204,223,205,229,205,70,205,205,207,92,211,78,214,98,218,132,220,135,217,35,214,31,213,13,210, +25,204,82,199,241,196,212,196,86,198,144,197,157,194,60,196,155,202,2,206,220,205,247,207,185,211,225,212,142,211,39,209, +159,206,119,206,209,207,162,205,85,200,205,197,117,198,16,198,31,197,50,199,237,203,83,208,139,210,148,210,224,210,158,213, +80,216,142,215,58,213,129,212,102,212,49,211,52,209,91,207,96,208,105,214,95,220,183,219,103,216,80,218,136,223,147,225, +219,224,115,225,208,227,51,229,127,227,208,224,40,226,131,231,31,235,252,234,114,234,26,235,119,236,139,238,85,240,66,241, +167,242,158,243,66,242,96,241,1,244,147,247,108,249,94,250,16,251,110,252,178,255,163,2,172,3,57,6,209,10,96,12, +240,9,76,7,16,6,61,7,28,11,11,13,21,11,181,11,200,17,114,23,226,25,179,27,218,29,133,32,54,35,74,34, +36,30,52,29,160,31,36,31,17,28,44,27,135,28,101,31,71,36,94,40,95,42,227,45,172,50,218,52,46,54,87,57, +154,58,226,55,231,52,235,50,57,48,225,45,134,45,17,47,102,50,106,53,109,53,205,53,43,59,27,66,117,69,163,70, +67,71,127,69,216,65,9,62,172,57,178,54,184,55,223,56,92,54,85,52,187,53,25,55,253,55,21,59,94,62,199,63, +9,65,179,64,227,60,148,58,41,60,35,59,47,53,223,47,52,45,250,43,69,45,65,47,178,46,115,46,106,48,0,48, +211,44,237,43,9,45,74,45,165,44,217,40,91,33,109,29,88,31,10,31,209,26,47,25,171,25,245,23,141,21,173,19, +155,17,3,18,100,20,239,18,59,14,169,11,64,10,251,7,121,7,19,8,59,6,58,3,196,0,3,253,149,248,90,246, +205,246,175,249,162,253,42,255,81,254,190,253,105,251,83,245,131,239,135,236,114,234,90,232,171,228,188,221,138,216,96,217, +171,218,4,217,90,218,255,223,173,227,108,227,40,225,168,221,61,219,120,218,221,214,142,207,246,200,232,195,79,191,158,188, +70,187,190,186,6,191,200,199,60,206,102,209,196,212,62,214,247,211,197,208,31,204,190,196,153,191,123,190,136,187,114,181, +9,177,237,175,251,177,18,184,4,192,95,199,232,206,207,212,48,213,120,209,206,204,153,198,222,191,113,188,55,188,195,187, +120,185,44,182,245,180,203,184,191,191,28,198,99,204,77,211,37,216,239,217,251,217,12,216,85,213,208,212,0,212,217,205, +192,197,18,196,117,201,73,207,224,209,135,211,95,215,29,221,26,226,23,229,162,231,171,235,5,240,102,240,76,235,51,230, +183,230,158,234,30,237,94,238,158,239,173,239,0,239,213,239,101,242,74,246,169,251,166,0,11,3,76,3,119,2,154,1, +249,2,159,6,124,9,212,10,233,11,182,11,67,10,204,10,219,13,182,16,191,18,72,20,196,20,218,21,250,24,161,27, +3,29,227,31,206,34,226,33,187,31,255,32,110,36,142,39,90,42,141,43,15,43,173,44,195,48,155,50,228,49,246,50, +252,53,219,55,117,56,246,56,231,56,57,56,190,55,89,55,116,54,156,53,145,54,73,58,117,62,179,63,190,62,30,63, +98,65,129,67,156,68,241,68,254,68,237,68,185,66,181,60,90,54,58,52,66,53,48,54,233,54,26,56,114,57,88,59, +201,61,142,63,94,64,147,64,215,63,248,61,85,58,78,52,120,46,239,43,51,43,98,42,246,42,53,44,158,43,131,43, +74,46,93,48,72,47,53,45,167,42,96,39,38,37,231,34,214,30,246,28,208,31,9,34,247,31,148,28,193,26,27,27, +226,27,13,24,89,15,63,9,0,8,239,5,75,2,169,1,129,5,199,12,116,19,25,19,69,14,82,14,182,16,108,11, +19,0,2,246,250,237,228,231,211,227,136,222,213,218,116,223,37,231,175,233,203,236,119,246,53,0,79,4,253,2,161,251, +187,240,215,230,162,219,253,205,57,197,223,195,144,196,214,197,74,200,214,202,196,208,13,219,136,225,62,226,22,229,49,233, +214,230,61,223,85,214,159,203,212,193,169,187,1,182,182,177,157,179,240,184,52,189,94,194,194,200,103,206,133,212,171,216, +54,214,243,209,30,209,59,206,221,198,254,192,11,189,28,184,3,181,160,180,82,181,157,186,226,195,219,200,236,201,50,206, +93,211,219,212,35,213,10,212,195,207,248,204,85,204,165,199,178,193,211,194,240,200,7,206,209,209,209,211,192,211,34,213, +127,215,49,215,51,215,210,218,230,221,12,222,233,221,161,221,247,220,10,222,182,223,68,224,76,226,89,229,83,229,140,228, +72,231,175,233,84,231,146,227,53,227,28,231,60,237,226,241,20,244,33,247,113,251,112,253,19,253,17,253,238,253,248,255, +219,2,204,2,10,255,156,253,159,1,228,6,169,9,26,10,25,10,110,12,103,17,149,20,118,19,179,17,181,18,251,20, +164,21,54,20,36,19,171,21,178,27,91,33,243,35,152,36,214,37,136,40,31,43,229,43,94,43,158,42,37,41,152,38, +216,35,1,34,31,35,33,41,146,49,44,55,132,56,175,56,162,58,179,62,92,66,236,66,164,65,14,65,205,63,86,60, +45,57,42,56,5,56,98,56,87,57,162,57,255,57,118,60,0,64,105,67,179,71,61,75,27,75,140,73,247,73,213,74, +30,74,87,72,117,69,45,66,213,64,89,64,161,61,77,58,40,58,16,61,154,64,27,67,161,68,178,71,218,76,37,79, +255,75,247,71,220,69,100,67,216,63,180,59,71,54,10,50,145,49,1,49,20,46,231,45,195,49,95,52,252,52,250,53, +181,53,65,52,137,52,253,51,251,46,189,40,238,35,115,30,166,24,124,20,245,16,96,14,251,13,117,13,157,12,218,14, +238,17,150,17,69,17,170,19,245,19,189,16,166,13,151,9,105,2,245,250,243,244,33,240,31,238,19,237,169,232,48,228, +17,229,0,232,234,232,123,234,66,238,160,241,74,242,102,238,225,230,59,225,219,222,87,218,50,210,191,202,249,197,229,194, +39,192,42,189,149,189,41,196,110,202,7,203,201,203,213,207,212,208,140,205,80,202,158,197,36,190,228,183,182,178,65,172, +12,168,114,167,157,166,198,166,11,171,110,176,12,181,47,186,63,189,200,188,15,188,31,186,79,180,148,174,48,171,8,167, +113,163,113,162,58,160,6,158,219,161,233,167,226,169,82,172,13,179,105,185,26,189,173,190,91,188,228,183,121,180,111,175, +27,169,77,168,116,172,141,174,108,174,220,174,60,175,5,177,2,182,168,187,66,193,195,199,147,203,110,203,184,203,49,204, +170,201,190,198,251,196,204,193,151,191,72,193,231,194,64,196,169,202,5,211,105,214,237,215,247,220,184,227,72,233,40,236, +168,234,251,230,178,228,110,226,245,222,2,221,167,221,41,224,98,228,1,232,89,234,236,239,189,248,53,254,145,255,53,1, +31,3,181,4,4,7,219,6,243,2,87,1,105,3,225,3,210,3,33,7,105,10,57,11,37,13,240,16,17,21,98,26, +37,31,203,32,59,34,76,36,131,34,188,30,117,31,57,35,83,37,11,38,178,37,225,36,199,39,49,45,79,46,217,44, +113,47,78,51,140,51,122,51,186,53,42,56,24,59,46,62,89,61,20,58,144,58,208,61,47,63,247,63,183,65,183,65, +28,64,226,63,87,64,70,64,229,65,186,69,17,73,151,74,69,74,27,72,30,70,75,70,13,71,136,70,136,69,188,68, +89,68,173,69,120,72,108,74,100,75,160,76,47,77,250,75,163,73,134,70,244,67,142,68,104,70,56,68,43,63,59,61, +120,62,48,63,136,64,13,69,84,74,64,76,144,73,203,67,255,61,39,58,98,55,226,52,132,51,31,51,194,50,169,50, +128,50,152,49,175,49,10,52,218,53,140,52,37,49,222,44,176,39,0,34,55,28,179,23,146,23,129,27,181,29,68,27, +96,24,211,24,146,26,150,25,61,21,88,17,73,17,213,17,186,12,244,2,3,252,207,250,19,251,121,249,225,247,22,249, +181,251,143,251,238,247,194,244,123,244,162,245,171,246,161,246,185,243,14,238,27,232,204,226,55,222,107,220,220,221,190,223, +1,225,76,226,245,225,127,223,92,222,166,223,154,224,239,224,172,225,254,223,121,217,204,208,241,201,251,198,22,200,197,202, +21,205,95,208,31,211,70,208,130,202,210,202,54,209,211,213,26,214,114,211,166,205,13,199,235,194,138,191,70,188,248,188, +231,192,88,195,157,196,90,198,244,198,39,200,6,205,247,209,133,211,86,212,131,212,243,208,135,203,153,198,133,192,195,187, +83,189,148,194,52,198,118,200,107,202,14,204,120,207,91,212,111,215,218,217,175,221,250,222,161,218,96,211,253,203,5,199, +215,199,31,204,84,206,160,207,243,211,30,218,225,223,150,228,221,230,228,231,209,234,91,237,62,235,75,230,76,226,0,224, +116,223,97,223,71,222,181,223,229,230,206,238,41,242,38,243,24,245,199,248,214,253,61,0,136,252,123,247,19,246,242,244, +164,241,86,240,112,243,210,248,61,253,12,253,70,249,155,249,218,0,147,8,85,12,66,13,120,12,88,11,244,10,156,9, +131,8,41,12,25,18,88,19,242,15,243,11,236,8,11,9,5,13,246,16,85,20,91,26,164,31,24,31,172,28,195,29, +17,33,122,36,195,38,103,37,65,33,132,29,113,25,38,21,31,21,138,25,16,30,136,34,198,39,188,42,67,43,238,44, +141,47,102,49,171,51,187,53,109,52,234,47,179,42,41,38,34,36,172,37,60,40,138,41,145,42,246,43,230,44,244,45, +108,48,45,52,143,56,183,60,77,62,47,59,68,53,74,49,134,48,48,47,48,43,134,39,167,38,36,39,141,39,158,40, +103,43,72,48,231,53,20,57,200,56,246,55,122,56,22,56,82,52,42,46,16,41,102,39,253,39,47,40,187,39,69,40, +133,42,198,45,28,48,168,47,156,45,197,44,126,44,199,41,156,36,238,31,244,29,85,30,233,30,23,31,239,32,94,36, +46,38,183,37,183,36,217,34,221,31,42,29,226,25,228,20,101,16,18,13,70,9,112,7,68,10,73,14,156,16,31,19, +198,21,230,22,153,23,140,23,238,20,159,17,162,13,49,4,44,247,140,239,44,239,235,240,206,242,223,244,184,246,12,250, +42,255,66,3,117,6,112,10,160,12,14,10,95,2,164,245,23,232,10,225,113,223,150,220,181,217,105,219,101,223,15,227, +188,231,130,236,163,240,90,246,175,250,157,247,151,239,133,232,235,225,187,218,186,212,200,206,132,200,115,198,151,201,71,205, +58,208,96,212,147,217,200,223,79,230,174,232,128,229,171,225,103,222,177,215,53,206,114,198,175,193,37,192,251,193,19,196, +37,197,76,201,23,209,29,215,91,217,174,217,20,216,148,213,181,212,22,211,132,205,165,199,232,196,77,194,173,190,234,189, +101,193,2,199,212,204,106,208,180,208,128,208,74,209,5,209,78,207,59,205,46,202,224,198,129,197,172,197,171,198,247,200, +41,202,152,200,118,200,6,204,125,207,172,209,46,212,51,213,83,212,91,212,167,211,49,208,175,206,6,209,238,209,116,208, +37,208,116,208,150,209,211,214,136,221,104,224,31,225,71,226,211,225,208,223,222,222,128,223,250,225,5,229,164,227,179,221, +239,217,107,218,93,220,160,224,65,231,243,235,117,238,248,241,187,244,248,243,198,241,160,240,203,240,154,241,102,240,40,236, +152,233,22,236,17,240,248,241,35,243,30,246,89,251,50,0,10,1,218,254,77,254,113,0,154,2,66,3,123,2,158,1, +80,2,212,2,7,1,121,0,165,4,252,9,125,12,246,12,185,12,151,12,161,13,27,14,94,12,149,11,73,14,25,18, +251,20,46,23,162,24,203,25,9,27,96,27,130,27,137,28,15,28,196,25,247,25,94,28,129,28,224,27,47,30,154,33, +66,36,9,39,55,41,31,43,179,46,253,48,169,46,191,43,154,43,57,43,100,41,4,40,61,39,212,39,86,42,33,43, +174,41,192,43,21,50,38,55,165,57,36,59,206,58,120,57,231,56,83,55,126,52,143,51,241,51,178,50,78,48,210,45, +225,43,131,45,208,50,16,55,185,57,119,62,254,67,14,70,162,68,73,66,177,64,133,63,225,59,73,53,231,48,76,49, +6,50,47,48,52,46,79,46,168,48,248,51,2,54,168,55,28,60,49,65,207,65,25,63,196,60,164,57,210,51,196,44, +45,38,124,33,20,32,90,32,253,31,110,32,123,35,154,39,41,43,22,46,4,48,183,48,218,47,247,43,104,37,133,31, +133,27,243,22,6,17,69,12,150,10,167,11,97,14,151,17,34,20,80,21,19,21,227,19,113,18,25,17,129,15,228,12, +239,8,31,4,80,255,238,251,207,251,206,254,202,1,31,2,11,0,227,252,4,250,9,249,190,249,205,249,52,248,252,245, +82,243,175,239,218,235,86,233,28,233,16,235,91,237,8,238,123,237,172,236,89,234,66,229,23,223,136,218,167,216,19,217, +101,218,171,218,76,217,184,215,30,215,49,215,209,215,151,217,246,219,250,220,67,219,220,214,2,209,244,203,156,201,248,201, +186,203,59,205,11,205,211,203,221,203,61,205,64,206,64,207,177,208,105,208,0,206,87,204,209,203,250,201,24,199,192,197, +222,198,40,201,28,202,3,201,90,201,36,205,61,208,205,207,35,207,95,208,102,209,227,208,143,206,151,202,233,199,67,200, +237,200,49,201,193,203,137,207,155,209,49,211,153,213,101,215,137,216,89,217,109,216,23,214,111,211,248,207,251,205,147,208, +8,212,226,211,146,211,149,214,112,218,195,221,153,225,229,228,22,231,210,232,151,232,225,229,41,227,69,225,70,224,165,225, +132,227,139,226,243,224,205,225,214,227,21,231,121,236,3,241,137,243,213,246,235,249,173,250,133,251,85,252,225,249,177,246, +252,245,219,244,184,242,124,242,136,242,89,242,38,246,12,252,250,254,142,2,4,10,152,15,223,16,222,17,188,18,154,18, +142,19,117,19,91,15,68,11,193,9,199,7,53,6,219,7,102,10,23,13,93,18,151,23,202,25,132,28,105,33,55,37, +172,39,132,41,117,40,47,37,168,34,120,31,154,26,194,23,101,24,75,26,33,29,196,32,12,35,231,35,208,37,70,42, +201,48,137,54,168,56,184,56,115,57,187,56,95,52,67,47,75,44,21,43,185,42,205,41,76,39,127,37,118,38,153,40, +133,43,25,49,204,55,250,59,38,61,106,60,67,58,131,55,65,52,2,48,69,44,2,42,222,38,0,34,221,30,6,32, +19,36,18,40,134,42,15,45,186,49,232,53,116,53,225,49,207,46,88,43,230,37,117,32,171,28,106,26,205,25,128,25, +185,23,190,22,101,25,48,29,54,31,39,33,203,35,62,36,37,33,163,27,210,20,54,15,21,13,216,11,59,8,245,4, +223,5,109,9,56,12,59,13,111,13,51,15,143,18,241,17,97,10,128,2,229,255,61,254,245,248,205,242,244,239,7,242, +190,247,173,251,214,250,184,250,224,254,55,1,212,253,68,249,85,246,56,243,162,239,179,235,146,230,70,226,20,225,133,225, +203,226,243,229,57,233,186,234,91,236,184,238,249,238,72,236,163,232,151,229,15,228,154,227,170,225,79,221,51,217,218,215, +237,216,41,218,186,217,164,216,38,217,138,218,170,218,10,218,82,218,228,219,119,222,61,224,193,222,59,219,58,217,232,216, +36,216,200,214,220,213,115,213,105,212,110,209,243,205,122,205,8,208,44,211,127,215,112,221,115,225,47,226,182,226,5,228, +135,228,175,227,244,224,136,220,252,216,255,214,202,212,77,211,77,212,28,215,47,220,47,227,202,230,129,229,116,230,146,236, +247,241,24,243,91,241,248,237,188,234,97,232,8,228,130,222,11,222,97,227,192,232,126,235,155,236,127,237,215,240,252,246, +220,251,246,253,121,255,157,255,196,252,55,249,242,246,152,245,247,245,36,248,152,249,125,249,163,249,37,251,18,254,129,1, +147,3,120,4,231,5,43,7,17,7,252,6,242,7,156,9,103,12,185,15,173,17,167,18,182,19,204,19,204,18,137,17, +235,14,198,11,65,12,111,16,255,19,209,21,124,23,112,25,115,28,185,32,24,36,115,38,173,41,129,43,185,40,250,35, +243,32,242,30,11,29,49,28,166,28,184,30,210,34,228,38,157,40,234,40,242,41,180,44,205,48,216,51,191,51,52,50, +69,49,53,47,174,42,133,38,211,37,74,40,106,43,194,44,115,44,150,45,141,49,81,53,48,54,71,53,2,52,195,49, +184,46,245,44,62,45,170,45,99,44,30,42,214,40,244,40,58,41,177,41,20,44,218,47,27,49,5,46,189,41,105,39, +160,38,42,38,213,37,18,37,66,35,186,32,23,30,99,28,6,29,139,31,122,33,66,33,234,30,52,27,227,23,123,22, +68,22,181,21,34,20,0,17,161,12,8,9,146,7,159,7,57,8,172,8,215,8,158,9,176,10,201,9,169,6,204,3, +88,2,86,1,119,255,173,251,82,247,157,245,137,245,211,242,195,238,174,238,180,242,137,246,147,247,162,245,2,243,52,243, +36,245,37,244,33,240,213,236,218,234,63,232,202,227,107,221,18,216,167,215,127,218,192,219,103,219,29,220,141,221,67,222, +162,221,163,219,182,218,174,220,62,221,126,216,244,210,79,209,32,208,34,204,239,200,13,202,167,205,66,208,119,208,140,207, +147,207,237,207,53,206,125,203,115,203,247,205,9,207,166,204,161,200,255,197,121,198,230,200,103,202,180,202,60,204,171,206, +104,206,158,202,98,198,20,196,192,195,4,196,217,194,12,193,183,194,46,200,79,204,245,204,49,205,57,207,15,211,20,215, +215,214,50,209,158,204,134,204,219,203,11,201,232,200,143,203,134,205,244,207,121,212,162,217,202,223,162,230,34,233,118,229, +217,224,29,223,112,223,45,224,174,223,235,221,115,221,36,222,112,221,163,221,165,226,68,234,154,240,250,244,140,246,83,245, +120,244,178,244,255,243,14,244,139,246,176,247,129,245,114,243,15,243,87,243,28,245,30,248,89,250,214,252,184,0,2,3, +146,2,33,3,159,6,43,11,157,14,242,14,223,11,89,9,137,10,187,12,94,12,147,10,217,10,167,14,150,19,160,21, +32,21,219,22,115,27,228,29,212,28,214,28,80,32,70,36,227,36,119,33,121,29,88,29,111,32,10,34,123,33,115,34, +108,37,38,39,195,38,115,38,173,39,51,42,241,44,185,46,78,47,46,47,48,46,227,43,27,41,201,39,213,40,141,42, +15,43,25,44,91,48,77,53,68,54,144,52,58,53,205,56,66,59,45,57,162,50,248,43,234,41,20,43,149,42,150,40, +246,40,4,44,203,46,34,47,51,45,40,44,210,46,235,49,253,47,61,42,10,38,167,36,189,35,243,33,188,31,161,30, +114,31,135,32,80,32,13,32,90,33,175,35,36,37,185,35,181,31,69,28,188,26,254,24,201,22,4,22,165,21,160,19, +121,17,94,17,247,18,254,20,235,21,241,20,251,19,64,20,5,19,172,14,1,10,59,7,119,5,116,3,187,0,41,254, +14,254,65,0,218,0,7,254,172,250,238,249,248,251,119,254,163,254,100,252,66,250,56,249,226,247,146,245,243,242,30,241, +15,241,212,241,225,240,46,238,123,236,219,236,152,237,239,236,241,234,194,233,47,235,101,237,17,237,67,234,244,231,240,231, +18,233,192,232,206,230,104,230,21,232,99,231,222,226,92,223,226,223,3,226,243,226,18,226,199,224,34,226,11,230,57,231, +169,227,206,224,23,226,119,227,3,225,194,220,198,218,254,219,206,221,143,221,62,220,57,221,80,225,61,229,163,229,53,227, +151,225,27,226,240,225,64,223,213,220,201,221,125,224,190,224,97,221,253,217,190,218,250,222,241,225,152,225,40,225,34,227, +56,229,25,229,245,228,92,231,150,234,214,235,50,235,239,233,254,232,59,233,60,233,70,230,148,226,48,227,106,230,175,230, +70,229,127,231,50,237,93,242,234,244,85,245,65,246,156,249,38,252,178,249,131,244,145,241,214,241,183,243,132,245,254,245, +110,246,169,248,248,250,212,251,50,253,32,255,79,255,98,255,246,1,102,4,199,3,250,1,143,1,49,3,111,6,199,8, +146,8,231,8,161,11,60,12,35,8,177,4,192,6,242,11,162,15,63,16,28,15,8,15,191,17,75,21,186,22,231,22, +188,24,167,27,40,28,22,25,47,21,56,20,154,23,120,28,28,30,237,27,39,26,172,27,47,31,113,34,129,36,182,37, +3,39,26,40,187,39,113,38,61,37,156,35,126,34,190,35,21,37,165,35,96,34,139,36,65,40,126,43,226,45,45,46, +1,46,47,49,52,53,185,52,195,49,154,48,233,47,62,46,36,45,167,44,167,44,102,46,22,48,35,47,170,45,235,45, +175,46,227,47,48,50,153,51,138,51,25,52,127,52,126,50,87,47,209,44,135,42,10,41,167,41,95,43,19,44,233,42, +8,41,222,40,58,42,60,41,23,37,160,34,72,36,37,38,145,36,44,33,220,31,121,33,104,34,167,31,153,27,62,26, +2,27,122,26,143,23,34,20,42,18,44,17,94,15,164,13,127,14,109,16,106,15,219,11,143,9,109,9,253,8,105,6, +191,2,157,0,254,255,53,253,215,246,253,240,206,239,169,242,244,245,225,246,3,246,92,246,18,248,8,247,129,241,222,235, +13,235,212,237,159,237,179,230,21,222,233,218,45,220,32,220,131,218,175,219,147,224,39,229,236,228,31,224,58,220,92,220, +50,220,181,215,80,210,197,208,38,210,133,210,9,208,128,204,89,203,5,205,41,206,228,204,52,203,63,203,120,204,36,204, +191,200,159,197,15,199,165,202,182,202,168,199,168,197,87,197,6,197,238,195,10,194,52,193,100,195,149,197,124,195,131,191, +198,190,18,193,97,195,131,196,243,195,4,194,234,192,153,193,108,194,122,194,118,194,35,195,60,197,23,200,139,200,158,197, +181,195,16,198,252,200,184,199,55,196,38,196,191,200,87,205,142,205,172,202,116,201,170,203,224,206,104,209,234,211,2,214, +18,214,41,212,146,209,140,207,3,208,121,211,152,214,215,214,172,214,199,216,250,219,198,222,101,225,140,227,138,228,125,228, +102,227,182,225,102,225,129,227,108,230,94,232,100,233,86,234,94,235,226,235,34,236,227,237,69,241,61,243,52,242,219,240, +13,242,131,245,57,249,122,251,74,252,67,253,182,254,56,255,207,254,184,254,156,254,1,254,32,254,125,255,252,0,48,2, +220,3,183,6,164,10,51,14,35,16,89,17,52,19,100,21,203,22,244,21,45,18,194,14,7,16,1,20,50,21,109,19, +185,18,29,21,176,25,130,29,100,30,151,31,11,37,128,42,249,41,166,38,106,38,14,40,209,39,80,37,106,34,25,34, +66,37,144,39,104,38,113,38,221,42,50,48,240,51,231,54,157,56,29,57,225,57,156,57,45,55,160,53,178,53,73,52, +150,50,208,51,88,53,145,52,172,52,97,55,126,58,185,61,232,64,121,65,226,63,47,63,233,62,185,61,3,61,195,60, +149,59,63,58,181,56,168,53,155,51,65,53,227,55,91,57,160,59,75,62,217,62,89,62,167,62,73,63,2,64,237,63, +65,61,224,57,62,56,85,53,252,46,98,41,163,39,166,40,193,43,79,47,138,48,63,49,11,52,124,53,238,50,44,48, +184,47,105,47,102,45,227,40,123,34,196,29,249,27,143,25,197,21,224,19,84,20,97,21,175,22,180,23,205,24,220,27, +240,30,242,29,126,26,58,24,184,21,222,16,251,10,134,5,32,1,78,253,237,247,238,242,159,244,43,252,98,1,35,2, +229,2,217,4,220,5,21,4,1,255,168,250,87,251,245,251,74,245,172,235,132,231,96,232,79,233,30,232,198,229,199,230, +123,237,14,243,246,240,247,235,163,234,26,235,80,233,254,228,83,224,1,223,71,225,203,224,245,218,193,214,86,216,216,218, +181,218,224,217,49,218,183,219,84,220,5,216,8,208,61,204,107,207,84,211,112,211,224,209,238,209,0,212,13,213,254,209, +28,206,207,207,103,213,75,215,91,212,146,209,58,209,12,210,156,209,26,206,156,202,22,204,180,207,230,206,108,203,93,203, +5,207,113,211,202,214,23,216,48,218,131,224,155,229,50,226,192,218,216,214,207,212,108,209,195,205,211,201,24,199,126,202, +156,210,179,216,183,220,81,226,111,232,69,237,96,240,51,240,116,238,138,238,34,237,99,230,163,222,233,217,62,215,61,215, +117,217,98,218,151,220,200,228,255,237,179,242,199,246,216,252,227,1,171,4,154,3,1,253,192,246,181,245,150,243,66,236, +204,229,246,227,61,229,110,233,202,238,90,243,112,250,116,4,54,11,13,14,119,17,57,20,201,19,158,17,160,13,90,8, +151,5,137,3,118,253,161,247,183,247,161,250,147,253,57,2,188,7,176,13,222,21,187,28,22,30,68,30,123,33,99,36, +214,35,28,32,88,26,204,21,211,19,93,16,31,11,112,10,204,15,251,21,163,25,17,27,134,29,222,36,78,45,44,47, +69,45,104,47,204,50,158,48,75,42,89,36,202,32,172,32,150,33,143,31,70,29,243,31,86,37,19,40,69,40,34,41, +241,43,91,47,211,48,251,47,101,47,144,47,98,45,247,39,50,35,191,34,71,37,127,38,106,37,115,37,74,40,235,42, +61,42,236,38,58,36,39,36,56,36,187,32,162,27,20,26,246,27,252,28,215,27,103,27,238,30,69,37,15,40,73,36, +119,31,207,29,0,28,99,23,75,17,194,10,28,6,244,5,41,7,229,6,15,10,79,19,228,27,241,29,218,26,224,22, +199,21,101,22,36,18,78,8,207,0,3,254,32,250,5,244,185,240,40,243,234,249,24,0,81,1,163,0,186,3,3,8, +114,7,186,2,173,253,25,249,64,244,100,238,63,232,132,229,205,231,225,234,62,235,181,234,12,236,41,239,171,241,59,241, +163,238,223,236,110,236,21,235,160,231,170,227,156,226,41,229,141,230,198,227,31,225,236,225,12,227,235,225,104,223,193,220, +13,220,38,221,236,218,45,213,220,211,81,216,176,218,207,216,151,215,76,217,74,221,35,225,103,224,240,219,76,218,66,220, +77,220,97,216,22,211,110,208,244,210,64,214,188,211,40,207,239,208,188,215,207,220,137,222,8,223,200,224,17,228,9,228, +47,222,221,216,134,216,220,216,10,215,118,213,26,213,209,213,221,215,128,217,97,218,102,221,7,226,68,228,162,227,156,226, +216,226,246,228,177,231,114,233,85,235,65,237,122,236,1,234,0,233,151,232,252,231,65,232,247,230,143,227,108,228,251,234, +145,239,57,239,42,239,115,243,97,251,106,1,224,255,95,251,241,252,42,1,87,254,108,245,15,238,98,236,252,239,37,243, +34,241,97,240,24,248,100,2,233,7,191,10,129,13,76,16,233,19,128,20,240,13,132,6,225,4,150,4,82,1,232,253, +164,252,121,254,15,4,197,9,73,13,135,18,8,26,174,30,101,31,66,30,203,27,221,25,41,25,123,22,81,18,32,16, +57,14,226,11,228,13,246,19,39,25,31,30,211,35,158,38,59,39,10,41,83,41,120,38,144,36,248,35,233,33,194,31, +1,30,157,26,191,24,181,28,81,35,101,39,164,40,107,41,225,43,49,47,223,46,83,42,23,39,28,39,109,38,169,35, +41,33,174,32,53,35,215,39,182,42,45,42,107,41,66,43,152,46,47,48,249,45,224,41,181,39,72,39,198,36,133,31, +210,27,18,29,200,32,146,33,226,30,169,29,138,32,216,36,63,39,202,38,250,36,26,36,206,34,155,29,200,22,188,19, +104,19,164,17,247,14,83,13,223,12,92,14,120,17,90,20,136,23,14,27,145,27,187,24,252,21,102,19,197,15,181,12, +214,9,119,5,23,2,68,1,89,0,255,255,33,3,234,6,33,7,166,4,123,1,124,254,176,252,41,251,205,248,224,247, +181,248,211,246,59,241,98,237,49,239,48,244,220,246,7,245,121,242,140,242,78,242,66,238,136,232,76,229,29,230,79,232, +212,230,82,226,91,226,200,232,140,238,156,239,186,237,254,234,92,234,74,236,158,234,40,227,38,221,160,219,134,217,48,213, +66,209,194,207,21,211,33,218,245,222,42,225,112,229,6,234,116,234,189,231,36,227,205,220,71,215,22,210,39,203,107,199, +32,202,160,204,80,204,220,206,80,212,253,216,100,222,81,228,137,231,105,233,45,234,194,229,110,222,201,217,175,213,180,207, +70,203,37,201,154,200,234,204,8,213,188,218,48,222,81,227,14,233,121,237,5,240,111,238,160,233,104,230,240,228,42,226, +193,222,75,220,164,219,53,223,143,229,111,232,105,231,180,232,51,238,168,243,242,244,73,241,117,236,149,235,33,238,81,239, +241,237,131,237,63,241,228,247,236,251,157,250,104,248,107,249,175,251,134,252,189,251,60,249,71,246,127,245,149,246,106,247, +37,248,67,250,182,254,233,4,147,9,150,10,34,11,66,14,162,17,124,17,239,12,220,6,76,4,174,5,91,5,180,1, +178,255,169,1,43,6,16,12,61,16,224,16,152,18,216,23,162,27,158,27,11,26,238,22,122,19,174,18,187,17,176,13, +148,11,126,14,92,18,80,21,202,23,131,24,192,25,131,30,180,34,4,35,237,34,186,35,197,35,41,36,10,36,225,32, +216,29,85,29,103,27,11,24,209,23,230,25,28,28,189,31,231,34,114,35,14,37,83,40,140,40,198,38,4,39,163,39, +242,38,144,37,219,33,16,29,212,27,11,28,125,25,19,24,195,26,50,29,226,29,26,31,73,32,34,34,100,38,185,40, +193,37,238,34,91,36,107,38,64,37,245,31,110,24,12,20,49,20,217,18,147,14,191,13,223,17,219,21,160,23,172,24, +142,26,167,30,205,34,204,33,201,27,55,22,223,18,123,15,162,11,247,8,159,8,30,10,250,10,244,9,212,9,192,12, +3,16,102,16,129,14,80,12,78,10,218,7,96,4,97,0,168,253,64,253,238,253,182,253,65,252,236,250,16,251,178,252, +117,254,226,254,132,254,110,255,88,1,236,0,108,252,252,245,222,240,50,239,152,240,172,241,101,240,176,239,240,241,96,244, +168,244,243,244,106,247,224,250,135,252,1,250,211,243,222,237,175,234,158,232,169,229,180,226,191,225,50,227,103,229,188,230, +134,231,240,232,70,235,45,238,29,240,7,239,216,235,96,233,52,231,113,227,112,223,52,221,136,220,9,221,60,222,42,223, +150,224,115,227,175,230,79,234,134,238,173,239,20,236,128,232,119,231,175,229,208,225,77,221,104,217,83,217,0,222,112,225, +17,225,207,226,85,232,61,236,222,236,63,236,129,235,212,236,124,239,172,237,10,232,11,230,20,231,90,229,249,226,213,227, +178,229,10,231,119,232,239,232,136,234,134,240,17,246,63,245,19,242,52,242,51,244,229,244,218,242,142,238,119,236,97,238, +138,237,19,231,212,227,60,233,138,240,105,243,126,243,35,244,86,246,124,248,113,247,39,244,61,244,77,248,229,249,102,246, +73,242,223,240,122,241,9,243,161,244,165,245,72,247,233,249,83,251,73,251,91,252,93,254,66,255,236,255,37,1,228,0, +55,255,99,254,210,253,156,252,144,252,122,253,106,253,45,254,157,1,16,5,185,6,252,7,72,9,12,11,32,14,155,15, +252,12,42,10,84,10,99,10,112,8,232,6,120,7,36,10,131,13,181,14,247,14,34,19,123,25,172,27,164,26,155,27, +39,30,32,31,250,29,120,27,68,25,192,24,65,24,205,22,65,23,128,26,93,29,123,30,154,31,122,34,224,39,193,45, +243,47,28,46,22,44,210,43,53,44,159,43,62,41,240,38,13,39,119,39,4,38,118,38,120,43,94,49,41,53,80,55, +5,56,165,56,210,58,148,59,113,56,80,53,224,52,39,52,227,49,76,48,15,48,109,48,184,48,140,48,201,49,233,53, +173,57,129,58,9,59,130,60,73,60,228,57,232,54,129,51,77,48,108,46,23,45,198,43,28,43,107,42,96,41,188,41, +233,43,86,46,241,47,131,47,38,44,176,39,133,36,227,34,63,34,128,33,129,31,119,29,123,28,194,26,132,24,215,24, +171,26,222,25,93,22,185,18,107,16,57,16,136,16,116,14,162,11,59,11,244,10,67,8,37,6,5,7,229,8,44,9, +184,6,251,2,42,1,80,0,128,252,129,247,227,245,11,246,245,243,129,239,188,234,7,233,132,236,50,240,90,238,183,234, +109,234,231,234,191,233,169,232,227,230,236,226,73,222,209,216,253,209,14,206,124,207,29,210,61,211,132,212,26,214,163,214, +179,213,28,211,191,208,129,209,212,210,145,207,15,201,17,196,203,192,140,189,109,187,41,188,158,191,177,195,131,197,209,196, +57,196,106,196,68,195,41,192,254,188,75,187,133,186,140,184,165,180,145,177,204,177,182,179,185,180,56,181,218,182,229,185, +18,189,86,190,151,188,167,184,26,180,139,176,158,175,30,177,112,178,249,177,39,177,233,177,24,180,54,182,176,183,175,185, +93,189,151,193,47,195,28,192,128,186,18,183,71,183,200,183,144,182,45,182,163,184,206,187,241,188,185,188,204,190,116,197, +119,205,55,209,123,208,219,207,177,208,19,208,255,204,63,202,166,202,115,205,180,206,183,204,172,203,209,207,151,214,124,218, +229,218,224,219,203,223,88,228,67,230,60,230,95,231,186,233,210,233,196,229,224,224,18,225,63,231,205,236,66,237,53,237, +104,241,145,246,68,248,227,247,71,249,66,254,157,4,3,7,114,4,63,3,246,6,19,11,2,12,19,12,239,13,255,16, +176,18,206,17,205,17,104,22,67,28,181,29,234,27,217,27,96,31,238,36,1,41,175,41,97,42,236,45,162,48,126,47, +199,45,220,46,105,50,51,54,235,54,192,52,112,53,137,58,234,61,102,61,202,61,52,65,67,69,115,71,146,70,72,69, +4,72,175,76,179,77,44,76,73,76,245,77,226,79,243,80,13,79,25,76,117,76,84,78,185,77,101,76,161,76,173,77, +114,80,61,85,119,88,166,88,45,88,30,88,96,88,185,88,103,87,32,84,245,80,208,77,30,74,198,71,166,70,67,69, +215,69,3,73,189,74,171,74,240,75,171,77,113,78,9,79,102,77,151,72,234,68,248,66,169,62,61,57,14,54,124,51, +208,48,169,47,184,46,204,45,73,47,80,49,64,49,67,49,93,49,217,46,185,43,204,41,106,38,66,34,12,32,164,29, +216,25,144,22,70,18,231,12,40,11,22,12,232,10,12,10,14,12,255,12,0,12,238,10,226,7,124,4,108,5,0,7, +8,4,37,255,43,249,148,240,131,234,91,233,78,231,96,228,198,228,20,229,88,227,55,228,25,231,177,233,251,238,12,243, +163,237,30,228,117,223,211,219,29,213,136,206,35,200,217,193,144,191,112,191,56,190,33,193,135,201,202,207,192,210,136,214, +79,217,221,217,156,217,184,212,142,202,203,194,7,190,9,182,215,173,10,172,68,175,181,180,240,186,12,191,47,195,143,203, +161,210,25,210,58,207,48,207,69,206,22,201,124,192,242,183,179,181,182,185,64,186,2,181,158,180,72,189,99,198,70,201, +113,200,113,202,18,210,140,216,108,213,200,204,82,201,165,203,111,204,52,201,248,197,12,199,1,204,220,207,118,208,210,209, +204,214,211,220,130,224,220,224,149,223,166,223,213,224,144,224,61,224,133,226,222,228,107,228,89,227,123,228,124,232,133,238, +43,243,75,244,25,245,55,247,238,246,194,243,135,242,95,245,4,250,86,253,140,253,49,253,148,0,2,6,245,8,127,10, +36,13,5,15,125,14,140,12,86,10,206,9,178,11,156,12,105,11,156,12,177,17,161,22,195,25,194,28,253,31,96,34, +219,34,24,34,75,35,181,38,111,39,22,36,72,33,51,33,88,34,18,36,144,37,193,38,160,42,185,48,51,51,15,49, +151,47,239,48,31,51,95,52,109,51,219,49,125,51,149,54,186,53,106,50,45,50,184,52,106,54,53,54,192,52,154,51, +16,52,105,52,251,50,195,49,79,50,101,51,74,52,219,52,123,52,214,51,159,51,201,50,166,49,197,49,207,49,216,47, +157,45,254,44,111,44,240,41,14,38,250,34,175,33,104,32,143,29,162,26,85,25,25,25,81,25,28,26,115,27,196,29, +109,32,182,32,207,29,105,25,109,19,149,11,71,4,205,254,168,250,214,248,6,249,208,248,124,249,203,253,248,3,209,9, +21,15,28,17,52,14,252,8,233,1,121,248,92,241,85,238,45,234,247,228,130,227,150,227,54,226,19,227,32,231,152,235, +59,241,166,245,176,242,198,235,126,232,0,230,213,223,63,217,185,212,228,210,130,213,65,215,68,209,206,202,107,205,118,211, +100,213,243,213,162,215,10,217,185,217,34,215,89,208,150,204,74,207,6,209,135,206,48,205,156,206,117,208,15,210,139,209, +223,206,139,207,248,211,215,212,80,209,253,207,242,209,12,211,226,209,195,207,52,207,72,210,127,214,75,216,144,217,128,220, +38,222,177,220,159,218,62,217,29,216,154,215,232,214,24,213,254,212,251,216,170,221,162,223,99,225,236,229,48,235,249,237, +104,238,168,238,81,240,125,242,144,241,244,235,236,229,238,227,252,228,23,231,195,234,36,239,86,242,45,245,108,248,15,251, +130,254,138,4,253,9,70,11,62,9,222,5,2,3,114,2,207,1,253,253,177,250,0,252,168,254,12,0,191,2,238,6, +140,10,67,14,183,17,128,19,69,22,88,27,24,30,135,28,15,26,34,24,109,22,201,21,60,21,168,19,249,18,102,19, +53,19,79,20,114,24,236,28,239,32,147,38,117,44,157,47,155,47,179,44,245,40,160,39,152,38,14,34,83,29,68,28, +103,28,187,28,28,31,76,33,30,34,218,37,46,44,3,47,233,45,148,45,18,47,172,47,35,44,213,35,88,28,136,27, +180,30,117,32,36,33,186,34,26,37,69,40,241,42,241,42,54,42,9,44,9,47,95,48,154,47,192,44,146,40,46,37, +13,35,140,33,137,33,60,35,41,37,172,38,99,39,116,38,71,37,34,38,231,39,238,39,37,38,152,36,179,36,10,37, +147,34,203,29,246,26,175,27,171,29,70,31,245,31,56,31,22,30,203,29,110,29,251,27,34,26,21,25,97,25,205,25, +78,24,178,21,85,20,185,19,243,18,85,19,112,20,86,20,22,20,40,21,123,22,38,23,217,21,15,17,39,12,168,10, +84,8,103,2,245,254,129,0,84,1,96,255,161,253,170,253,232,0,164,6,110,9,44,8,158,7,232,6,27,2,1,252, +230,247,69,244,143,240,5,236,244,228,69,224,137,227,148,233,225,236,76,241,168,248,80,254,40,0,137,254,34,250,64,246, +73,243,103,237,106,230,183,226,118,223,146,218,21,216,57,216,41,217,52,222,173,230,27,236,228,238,221,242,64,245,232,243, +6,241,106,236,152,230,65,226,192,220,36,212,3,207,220,207,133,208,82,208,99,211,98,216,151,221,158,227,79,231,60,231, +230,231,220,233,71,233,48,230,32,225,153,217,150,211,125,209,38,207,232,203,135,203,219,204,35,206,194,209,166,214,159,217, +162,220,35,225,103,228,98,229,203,227,214,222,29,218,150,216,71,214,110,209,96,206,69,206,131,207,36,210,156,211,46,210, +41,211,11,217,94,222,52,225,49,228,143,230,137,231,174,231,47,228,183,221,75,219,2,221,188,219,86,215,186,212,130,212, +210,213,85,216,115,218,231,220,91,225,160,229,146,232,174,235,174,236,14,234,163,232,230,233,71,233,65,230,242,226,229,222, +153,220,68,223,200,226,83,227,54,228,126,231,120,235,98,239,5,241,223,238,246,237,4,241,67,242,120,239,116,237,110,237, +58,237,242,236,241,235,123,233,110,232,127,234,220,237,103,241,206,243,122,243,25,243,113,245,189,247,252,247,10,248,137,247, +82,245,216,243,82,244,171,244,142,244,121,245,201,247,150,250,155,251,30,250,3,250,210,253,36,2,244,3,110,3,237,0, +208,254,181,255,43,0,247,252,202,250,42,253,45,0,178,0,132,255,158,254,202,1,59,9,173,13,250,11,46,10,210,10, +44,10,176,7,31,5,216,2,208,2,176,5,188,7,127,7,114,7,114,8,240,10,91,15,102,18,164,18,191,20,103,25, +206,26,227,23,40,21,177,20,201,21,58,22,89,19,173,15,161,16,169,20,140,22,230,22,7,25,86,29,154,34,47,38, +15,38,171,37,251,40,187,44,226,43,166,39,44,36,121,34,19,32,73,27,173,23,49,26,233,32,215,37,215,39,37,42, +0,47,140,53,198,57,17,57,0,55,108,55,33,56,2,54,70,49,140,43,243,39,37,40,105,40,72,39,158,41,95,47, +10,51,240,53,184,59,124,64,62,65,49,65,60,65,240,63,187,61,126,57,126,51,233,48,248,49,217,48,117,46,43,47, +189,48,242,49,35,54,64,59,36,61,4,62,58,63,237,61,134,58,115,54,186,48,14,44,18,44,102,45,79,44,230,42, +209,42,96,43,105,44,72,44,244,41,140,40,72,41,239,40,217,38,18,37,199,35,213,34,208,33,16,31,79,28,11,29, +106,31,12,32,92,31,233,28,213,23,50,19,80,16,126,12,197,8,115,8,73,10,223,11,123,12,85,11,175,10,217,13, +198,17,136,18,245,17,228,15,254,8,162,255,190,247,137,240,187,234,83,232,110,231,130,232,23,238,169,243,186,245,242,249, +253,0,88,3,253,0,79,254,208,248,137,239,55,230,211,219,121,208,105,203,209,205,18,209,47,212,16,217,116,221,1,225, +30,228,39,227,117,223,75,223,179,223,218,217,217,208,122,201,104,194,194,188,151,187,234,188,182,191,176,197,249,202,8,203, +212,201,152,203,97,205,90,204,118,201,156,197,244,193,170,191,58,189,204,185,42,184,70,185,59,186,190,186,15,190,7,196, +78,200,12,201,122,200,106,199,252,195,79,190,157,185,21,184,206,184,119,185,231,184,172,184,2,187,54,191,230,194,95,197, +145,198,2,198,162,196,204,195,58,195,183,194,93,194,37,193,77,191,212,190,108,191,254,191,245,194,245,201,129,209,155,213, +89,213,236,209,42,207,179,208,67,212,52,213,189,211,121,210,140,209,126,208,31,208,170,209,79,214,76,221,7,227,69,229, +216,229,47,231,79,233,143,234,187,233,33,232,89,232,3,234,23,234,222,231,116,230,251,232,110,238,139,242,60,244,34,247, +243,251,97,254,246,252,242,250,197,250,47,253,104,1,26,4,166,4,18,7,149,11,73,14,50,16,85,20,100,24,67,25, +187,22,131,17,218,13,95,16,154,20,181,20,228,21,79,29,19,37,115,40,217,42,216,46,249,51,205,56,27,57,69,52, +125,49,21,51,103,50,37,46,66,44,70,46,146,49,175,52,80,54,183,55,244,60,55,68,105,71,241,71,119,75,80,80, +251,80,46,77,189,72,171,70,182,70,225,69,166,67,213,67,146,71,76,74,15,73,60,71,251,73,225,81,246,89,103,93, +75,93,111,93,116,93,99,90,2,85,105,81,50,81,135,81,121,79,93,76,228,75,5,79,67,83,227,85,130,86,49,87, +47,89,60,90,160,88,228,86,158,86,16,85,240,80,136,76,7,73,128,70,173,69,114,69,52,68,166,67,63,69,239,70, +111,71,47,71,230,68,48,64,36,60,164,58,95,58,167,57,139,54,69,48,231,42,73,42,131,42,63,38,89,32,215,30, +55,33,13,34,190,30,174,26,12,27,161,30,71,29,31,20,182,11,215,10,60,12,201,8,7,2,159,252,237,249,247,248, +91,247,124,244,50,245,140,251,227,255,130,253,250,250,201,251,215,249,132,242,121,233,129,224,255,216,170,212,156,208,100,203, +32,202,188,205,217,208,133,211,157,216,10,221,74,222,180,221,0,218,28,211,240,204,212,197,186,185,235,173,93,168,185,165, +82,163,32,163,196,164,6,169,79,178,96,187,21,190,151,190,23,192,176,189,252,182,125,176,159,169,213,161,43,156,212,151, +244,147,197,148,92,153,66,155,80,155,225,157,195,161,7,167,2,176,11,184,21,185,133,180,192,172,185,162,97,155,28,154, +79,155,113,155,170,153,78,149,109,146,122,151,221,161,106,169,216,172,13,175,242,175,177,175,13,176,1,177,79,178,20,180, +136,179,125,174,190,168,79,167,18,170,48,174,71,178,17,182,45,185,98,187,120,189,203,192,28,197,106,200,83,202,180,204, +226,207,173,209,39,209,115,208,189,209,24,212,19,213,205,212,202,213,175,216,170,219,63,222,129,225,213,228,191,230,93,232, +55,236,7,242,74,246,228,245,252,241,32,240,100,244,118,251,255,254,6,255,118,0,238,3,164,5,205,4,250,4,130,9, +152,17,87,23,158,21,54,16,121,15,21,20,172,23,187,23,251,23,102,28,147,36,35,43,224,43,180,42,220,45,151,51, +15,54,206,52,125,51,146,52,86,55,162,55,49,51,52,47,99,49,119,55,122,60,70,63,94,64,56,65,82,68,217,72, +201,75,65,77,196,77,251,75,211,73,79,74,226,74,190,72,179,70,174,70,157,70,223,69,110,69,165,69,68,72,250,77, +186,82,63,83,159,81,251,80,53,82,17,84,46,83,190,78,145,75,225,75,252,74,35,71,250,68,243,69,157,70,15,70, +234,69,143,70,17,72,221,73,198,73,57,72,114,72,89,73,96,70,174,64,209,61,248,61,86,60,97,55,44,50,204,47, +57,48,5,48,209,44,61,42,158,44,116,48,118,47,236,42,103,40,113,40,23,39,82,34,191,28,132,26,16,27,13,25, +59,19,204,14,180,14,104,16,0,17,56,15,163,11,202,8,176,6,139,2,47,254,58,254,5,1,223,1,107,0,220,253, +114,251,62,252,144,255,246,255,155,252,239,248,154,244,119,238,178,232,97,228,175,225,240,225,10,227,181,225,157,224,251,226, +144,230,115,233,72,235,2,234,186,230,176,228,74,225,152,218,109,214,173,214,232,212,128,207,33,203,182,201,63,203,243,206, +104,209,143,210,36,214,127,218,190,219,196,219,228,219,163,217,218,213,184,210,182,207,161,206,17,209,177,210,139,209,105,209, +44,210,140,209,212,209,103,211,194,211,235,212,228,215,189,216,108,216,164,218,140,220,236,220,163,223,138,225,54,221,175,215, +150,214,50,215,106,215,239,214,252,211,93,210,1,215,108,220,87,221,13,223,178,228,95,234,151,238,81,240,99,237,88,234, +152,235,130,235,79,230,100,225,129,223,15,223,245,224,125,228,22,231,157,234,244,239,145,243,73,246,238,250,187,253,88,252, +144,251,205,252,47,252,217,248,31,244,149,239,241,238,53,242,8,244,170,244,143,249,50,1,163,5,143,6,148,6,150,6, +5,7,118,6,46,2,34,252,161,249,180,251,80,255,142,2,184,5,176,9,40,14,167,16,67,15,192,11,198,9,214,10, +155,12,55,11,26,6,35,1,203,255,216,1,77,5,26,9,208,13,181,19,50,24,192,24,93,23,189,22,146,21,191,18, +200,15,130,12,225,7,27,4,160,3,201,5,241,8,96,11,184,12,66,16,255,22,194,26,26,24,225,20,71,21,170,21, +66,19,125,15,109,11,17,8,237,6,66,7,14,8,173,10,15,15,171,18,39,21,191,23,62,25,251,23,62,21,99,19, +17,19,241,18,32,17,46,14,94,13,129,15,206,16,43,15,250,13,42,16,115,19,84,20,192,18,59,17,232,17,25,20, +118,20,16,18,223,16,27,19,250,20,137,19,67,17,8,17,182,18,80,20,227,18,78,14,129,11,186,12,32,13,89,10, +191,8,81,10,50,12,213,12,115,12,188,11,77,13,35,18,195,22,152,24,169,23,19,19,9,12,25,7,116,4,55,0, +88,251,166,249,193,250,239,252,37,0,208,3,64,8,177,14,113,20,184,21,249,19,101,17,238,12,245,7,171,5,2,4, +119,255,9,250,231,246,7,246,45,247,101,250,84,254,84,2,89,6,92,8,52,7,126,5,75,5,243,4,106,2,32,254, +70,250,116,248,44,247,175,243,136,239,252,238,178,241,223,243,117,245,48,249,27,255,203,4,193,7,22,6,84,0,45,249, +233,241,237,234,167,230,237,230,72,234,100,238,91,241,255,241,174,242,9,247,156,253,146,2,138,5,237,5,187,0,233,246, +165,237,111,231,144,227,15,225,14,223,144,222,138,225,39,230,22,234,1,240,80,249,127,1,40,5,96,4,60,255,70,248, +19,243,166,237,203,229,213,223,43,222,158,221,5,222,83,225,76,230,67,237,249,246,251,253,236,254,25,255,220,0,232,255, +17,251,205,243,170,234,99,227,63,224,245,220,162,217,15,221,93,230,91,238,208,243,253,247,73,250,181,252,73,255,121,253, +43,249,173,248,79,249,161,245,242,239,149,234,186,228,81,225,119,226,126,229,81,234,133,241,125,246,70,248,16,252,1,1, +251,1,74,0,192,254,146,252,36,251,136,251,22,249,13,242,155,236,185,236,87,239,170,240,71,240,248,240,51,245,250,249, +29,250,197,246,181,245,45,249,170,254,8,2,175,0,190,252,153,250,90,250,186,248,193,245,245,244,109,247,160,249,215,247, +46,243,21,240,156,240,241,242,177,244,163,245,131,247,241,250,188,253,248,254,249,0,211,3,84,4,47,2,190,255,248,253, +230,253,160,255,169,255,235,252,175,250,12,248,127,242,137,239,138,244,160,252,223,1,109,4,110,5,153,6,224,9,45,12, +208,10,212,9,138,10,52,8,232,2,167,254,115,251,142,249,136,250,136,251,8,251,250,252,147,1,226,5,227,11,216,19, +119,24,74,25,225,25,27,25,60,22,241,19,5,17,229,11,147,8,133,8,23,8,51,7,156,8,33,13,255,20,110,29, +208,32,117,32,254,34,72,40,229,43,237,44,9,43,172,38,165,35,58,34,170,30,152,26,90,26,97,29,146,33,204,36, +19,36,127,34,166,38,240,45,175,49,51,51,189,53,222,56,244,60,239,63,229,60,217,54,172,52,43,52,86,49,52,47, +19,47,69,46,31,45,136,44,154,44,193,47,251,52,196,55,218,58,96,66,64,72,108,71,225,68,225,67,187,66,82,65, +208,61,115,54,93,48,235,45,136,41,27,36,160,36,150,41,101,46,176,51,191,55,243,56,186,60,11,67,236,66,249,59, +204,53,70,49,152,44,209,40,223,35,65,29,241,26,46,29,217,28,212,25,166,25,39,29,156,34,169,39,67,40,75,37, +157,35,227,33,112,28,234,21,29,17,44,13,190,10,102,9,158,5,55,0,24,253,221,251,186,251,43,254,57,1,108,2, +12,4,77,6,64,5,202,0,196,251,138,246,93,241,187,236,46,231,81,225,144,221,77,218,30,214,160,212,40,215,237,218, +184,223,153,228,170,228,38,224,218,220,245,218,223,214,116,209,47,204,106,198,168,193,130,190,2,186,95,181,252,181,128,187, +87,193,74,198,212,201,29,202,43,200,10,197,20,190,223,179,170,172,251,170,59,171,225,170,246,169,250,168,125,169,184,171, +196,172,95,172,194,174,188,180,75,185,36,184,53,177,44,168,90,162,122,160,218,157,8,154,101,154,7,159,37,162,234,162, +90,165,107,170,240,175,117,179,93,179,226,177,160,178,114,179,72,176,165,171,179,169,28,169,140,167,151,165,194,164,183,167, +205,175,20,184,89,187,38,188,114,190,17,193,192,194,15,196,51,196,168,195,170,196,186,197,69,196,181,194,165,195,142,197, +219,199,83,203,44,206,4,208,205,211,89,216,220,216,252,214,35,217,68,223,169,227,194,228,225,229,142,232,210,234,196,234, +73,233,208,233,142,238,136,244,179,246,79,245,40,245,249,247,139,251,144,254,28,1,92,3,123,6,168,10,124,13,79,14, +105,15,248,16,154,17,83,18,175,19,29,20,116,20,191,22,145,25,89,27,122,29,143,32,235,35,129,39,220,41,13,42, +103,43,97,47,127,49,71,48,61,48,159,50,34,52,192,51,154,50,234,49,2,52,57,57,163,61,144,62,226,61,83,62, +174,64,162,67,70,69,145,70,245,73,177,77,215,77,221,74,118,72,206,72,34,75,35,76,216,73,134,71,84,72,222,73, +74,74,219,75,225,78,177,81,27,85,120,88,53,88,20,85,160,83,68,84,34,84,12,82,94,78,142,74,94,72,222,70, +121,68,23,67,218,68,137,72,254,75,139,77,123,76,81,75,67,76,3,76,78,71,66,65,231,61,91,60,238,57,70,54, +212,51,12,53,189,55,38,55,217,51,126,50,3,52,245,53,78,54,218,50,165,43,117,37,172,34,80,31,147,25,247,21, +159,23,36,28,150,31,43,32,42,31,162,30,50,29,195,23,159,15,23,9,13,5,148,1,147,254,217,252,84,251,1,249, +65,247,34,248,94,252,61,3,209,9,141,11,210,6,168,254,157,245,183,235,178,226,139,221,111,219,87,217,217,214,113,213, +118,214,157,218,110,224,223,229,113,235,20,240,136,238,162,229,158,219,127,212,96,206,251,199,105,194,197,190,24,190,173,191, +75,193,24,196,173,202,169,210,162,216,126,221,45,225,186,224,91,220,28,214,102,205,144,195,177,189,36,189,34,190,117,190, +42,191,143,193,18,198,228,203,61,209,67,213,198,216,170,220,120,223,99,221,8,214,202,207,18,207,220,206,184,201,140,195, +62,195,251,200,88,207,112,210,114,212,90,218,16,227,115,231,70,229,179,225,107,224,193,224,148,225,172,225,93,224,21,224, +220,226,168,229,33,229,218,227,101,230,8,236,215,239,160,239,222,237,244,236,206,236,120,237,144,239,79,242,194,244,85,247, +81,250,74,253,218,255,73,1,185,1,7,3,78,5,134,5,67,2,184,253,189,250,47,251,250,254,202,3,94,8,92,13, +70,17,218,17,194,16,203,16,245,17,140,19,207,20,106,20,61,19,133,18,245,15,94,11,41,10,25,14,92,18,246,20, +252,23,50,27,252,28,2,29,52,27,27,25,233,24,19,25,101,23,164,21,58,21,40,21,215,21,5,23,187,22,134,23, +251,28,37,34,169,32,0,28,195,26,5,29,155,30,58,28,71,23,197,21,196,24,91,25,179,21,93,20,113,23,37,27, +80,30,36,32,125,30,77,28,161,29,72,31,161,29,54,27,193,25,171,23,88,21,167,19,234,17,145,17,70,20,153,23, +60,25,58,26,51,27,25,28,114,29,45,29,223,24,239,19,95,18,221,16,77,11,41,5,213,3,148,6,198,8,105,8, +87,8,5,12,113,17,33,19,117,16,56,14,195,14,239,14,238,10,114,3,210,253,175,253,89,255,120,253,26,250,195,250, +33,255,26,2,145,0,96,252,23,251,27,255,107,2,205,255,74,252,84,253,209,254,102,252,156,248,227,245,59,244,45,244, +14,244,94,241,136,238,254,237,238,236,185,233,14,230,99,226,227,224,231,228,219,234,230,237,158,241,30,248,109,251,238,249, +211,247,37,244,233,236,52,229,17,222,222,214,164,210,144,209,230,208,241,211,134,220,18,228,8,234,220,245,123,5,144,15, +17,17,165,9,206,250,117,237,173,229,20,220,234,207,220,201,24,202,187,202,165,204,243,210,126,222,237,238,211,253,123,4, +126,7,18,11,92,8,232,253,93,244,25,237,152,227,253,216,188,206,46,198,88,198,210,207,139,216,118,222,1,232,208,243, +217,253,27,7,29,13,42,13,194,11,89,8,19,252,225,235,72,227,133,225,240,223,143,221,100,219,28,220,39,227,28,236, +34,241,163,246,167,0,196,9,111,14,33,16,177,14,224,11,65,10,76,5,250,249,152,239,184,235,150,235,100,236,137,236, +185,235,94,239,165,249,160,2,229,6,229,12,245,21,69,29,64,33,15,32,3,24,189,14,54,8,161,255,213,244,64,239, +251,239,87,242,176,244,156,246,141,249,49,2,237,14,61,24,42,30,159,36,70,40,17,38,5,33,155,25,69,15,44,7, +176,3,223,255,64,250,50,247,11,249,85,255,96,8,44,17,166,25,180,35,175,43,90,44,59,40,192,36,229,33,237,28, +170,20,72,10,105,2,64,1,195,4,44,8,150,10,225,13,60,19,27,26,13,32,252,34,78,35,160,33,196,29,242,24, +186,20,51,17,176,14,155,13,34,13,72,13,201,14,187,16,29,19,93,23,188,26,209,24,224,19,18,17,188,16,175,17, +16,20,155,21,171,19,193,15,133,12,100,11,225,13,72,19,233,23,125,25,115,23,35,17,176,8,182,2,19,1,255,2, +141,7,162,12,64,16,117,18,146,18,255,15,51,14,32,16,214,18,121,18,177,14,22,9,185,4,28,3,174,0,126,252, +17,253,216,3,179,8,210,8,89,10,135,15,179,20,195,23,117,24,232,22,223,19,160,14,71,7,107,2,187,2,138,4, +45,5,252,5,106,7,209,9,92,14,87,19,226,22,114,26,95,29,206,28,114,26,137,24,98,20,104,13,96,7,36,3, +27,0,76,0,206,3,234,8,149,16,97,25,221,29,227,29,69,30,218,31,224,32,137,32,157,28,226,20,177,13,167,8, +32,4,131,2,55,6,251,11,39,17,129,21,32,23,81,23,138,27,187,34,127,38,220,37,87,34,30,27,205,18,107,13, +240,8,101,3,18,0,17,0,214,1,168,6,158,13,106,18,73,22,103,28,248,31,81,28,9,22,209,17,62,14,50,10, +27,6,16,1,5,252,212,249,83,250,199,251,15,254,162,0,42,3,122,7,29,13,192,15,247,13,116,10,35,6,54,0, +185,249,30,244,8,240,179,238,218,239,75,240,133,238,1,237,253,237,217,240,181,243,103,245,161,246,157,248,148,249,217,245, +127,237,1,229,132,224,54,224,138,223,153,217,248,208,172,205,31,209,10,213,165,214,44,217,154,222,145,228,240,229,68,223, +37,213,78,208,254,208,33,208,223,203,177,199,125,196,81,193,40,190,100,187,48,187,138,191,128,197,163,201,58,205,53,208, +41,207,190,202,142,198,211,194,246,190,67,187,152,182,134,178,126,179,86,183,143,183,19,181,31,181,84,184,18,189,95,193, +248,193,210,191,85,191,42,191,185,187,220,183,211,182,220,182,9,183,250,182,42,180,209,176,57,179,226,185,210,188,2,186, +65,183,197,186,230,195,125,201,169,197,27,192,113,193,255,196,76,195,5,191,223,190,68,196,214,201,11,200,73,192,140,190, +19,199,197,206,159,206,109,206,110,213,43,223,82,227,7,224,101,219,31,220,126,224,94,225,29,222,90,221,160,225,104,229, +16,228,72,225,183,227,224,234,79,240,159,241,243,242,232,247,135,254,57,1,38,254,202,251,66,0,138,6,40,6,198,0, +103,254,251,1,227,7,215,10,32,10,182,11,151,18,219,23,109,22,8,20,163,22,48,28,112,32,182,33,63,33,169,34, +198,38,251,41,24,43,19,44,132,44,22,44,241,44,162,46,61,47,93,48,192,50,205,51,163,51,188,52,7,55,236,57, +70,61,69,63,236,63,52,66,84,70,248,73,5,76,54,75,5,72,195,70,212,71,27,70,232,65,166,64,242,66,104,70, +163,73,17,74,164,72,180,75,70,83,49,88,112,89,222,90,23,92,210,91,254,89,201,84,8,78,42,75,152,74,241,71, +163,70,125,73,44,76,161,77,215,80,130,84,169,87,132,92,228,96,23,97,107,94,1,89,152,79,158,71,193,69,205,68, +58,64,149,59,210,57,222,57,91,58,9,58,110,58,187,63,179,71,120,74,61,71,128,67,140,64,101,60,32,54,103,45, +40,37,31,34,251,33,157,30,227,25,192,25,10,30,49,35,190,38,102,38,214,34,21,32,222,30,25,29,118,27,24,26, +240,21,69,15,115,9,224,3,171,253,203,251,89,1,116,8,210,9,24,5,239,254,201,251,80,252,20,253,105,251,243,248, +108,247,173,244,111,238,191,230,48,226,173,226,19,229,254,228,149,226,21,225,160,224,255,222,175,220,142,219,82,219,177,218, +215,216,96,213,225,209,135,208,212,207,208,204,150,200,219,198,88,201,173,206,193,210,14,210,138,206,102,204,28,203,86,200, +153,197,92,197,23,199,52,200,47,198,110,194,97,194,119,198,75,200,177,198,83,199,194,202,145,204,33,204,28,203,80,202, +3,203,96,203,42,199,87,193,242,192,190,196,17,199,92,199,200,198,97,198,147,201,187,207,192,210,157,210,244,212,2,217, +28,218,233,216,99,216,40,217,141,218,116,218,127,215,229,212,187,213,239,215,43,217,110,218,72,221,110,226,125,232,245,235, +14,237,84,240,221,245,199,248,226,247,8,246,216,244,102,244,186,243,157,241,113,239,255,238,12,239,88,239,222,241,219,245, +196,249,25,255,99,5,39,9,121,10,81,11,209,10,70,9,17,9,94,9,70,8,240,6,86,6,34,6,122,6,14,6, +54,4,137,5,53,13,202,21,0,25,216,23,68,23,148,26,38,32,35,34,65,31,120,29,203,30,168,29,224,23,16,18, +182,16,26,21,4,28,174,30,234,27,248,26,186,31,146,37,74,40,123,40,31,40,102,40,209,39,18,35,149,27,128,23, +137,24,78,26,217,25,49,24,182,23,64,26,149,30,204,32,136,32,249,33,30,38,42,40,206,36,197,30,229,26,173,26, +78,27,151,25,110,22,1,21,69,21,227,20,140,20,129,22,212,25,161,28,251,30,227,31,102,29,192,24,67,20,57,16, +53,14,161,15,246,15,197,10,158,4,179,3,28,6,229,6,157,5,101,5,149,8,241,12,125,13,39,10,63,7,200,4, +203,255,98,249,63,244,203,240,78,238,221,234,109,230,58,230,230,235,168,240,94,242,158,246,95,253,182,1,193,2,167,255, +75,248,182,242,163,239,216,230,30,218,144,212,251,213,40,215,134,215,22,216,42,219,161,230,46,245,87,249,84,246,104,248, +62,252,58,249,116,240,59,228,1,216,238,209,33,205,20,194,23,187,54,194,144,205,103,212,100,218,13,225,109,233,193,245, +69,253,252,248,58,243,253,240,97,232,181,217,50,206,61,197,242,190,217,192,110,198,59,202,5,210,188,221,195,229,152,236, +12,246,66,253,5,2,67,5,94,255,202,241,179,232,234,226,138,217,13,211,101,211,43,212,121,213,164,217,212,220,94,226, +83,239,101,250,100,253,31,1,235,7,249,10,202,9,148,3,43,246,254,234,199,232,186,229,247,221,29,219,10,223,117,229, +155,238,254,245,23,247,128,250,3,5,206,12,87,14,207,15,23,17,29,16,20,14,184,7,107,253,14,249,109,251,231,250, +33,248,17,250,170,255,178,6,154,14,11,19,220,20,207,26,193,33,75,34,68,32,88,32,247,30,68,27,139,22,244,13, +188,4,157,3,156,8,79,12,221,15,5,21,161,24,205,27,133,32,231,34,203,34,219,36,100,38,108,34,192,28,6,25, +198,20,107,17,30,19,209,22,235,23,253,23,163,24,67,25,203,27,14,33,99,37,57,39,95,40,74,40,198,37,70,34, +127,30,158,26,234,24,77,25,222,24,26,25,193,28,6,32,67,31,174,29,187,29,61,30,251,31,180,34,185,34,35,32, +181,29,191,25,31,20,166,18,243,22,9,28,30,31,234,31,58,30,167,28,201,28,248,27,159,26,153,27,132,27,173,22, +110,17,28,16,151,17,57,20,199,21,154,20,130,20,100,23,186,23,206,20,56,21,57,25,195,27,115,27,77,23,83,16, +208,13,116,16,201,14,229,8,244,8,78,15,95,20,71,21,28,18,136,14,33,18,82,26,134,27,65,22,113,20,246,21, +121,20,61,15,250,8,35,6,19,10,69,15,210,14,57,12,183,11,104,10,125,8,105,9,67,11,253,11,106,12,251,9, +7,4,138,0,4,1,75,1,102,2,250,5,194,7,157,6,232,5,196,4,161,1,187,254,41,252,216,248,56,247,191,247, +89,248,212,250,21,0,91,3,239,2,58,2,226,1,89,1,185,2,108,5,152,5,46,2,133,252,2,246,37,241,139,239, +42,240,19,242,179,244,179,246,61,248,67,250,178,251,207,251,224,251,250,251,245,250,69,248,128,243,13,238,126,235,244,235, +155,235,25,233,47,230,122,228,100,229,30,232,60,233,93,233,185,236,247,241,1,244,156,242,87,240,4,238,18,236,126,233, +16,228,182,221,112,218,220,217,141,218,153,221,232,225,107,228,230,228,39,228,196,226,140,227,122,231,134,234,102,234,45,233, +47,231,183,226,198,220,84,216,253,214,143,215,241,214,183,212,189,212,196,216,97,221,70,223,152,222,209,221,138,223,157,226, +67,227,54,226,212,226,235,226,170,222,5,216,68,210,98,206,202,205,151,207,161,207,169,206,100,209,105,214,255,216,35,218, +23,221,66,225,191,227,209,225,220,219,74,215,126,215,52,216,77,213,253,208,91,206,205,205,41,207,181,209,169,212,163,216, +229,220,169,222,20,222,99,222,152,224,170,226,80,226,184,222,202,217,78,214,89,212,60,211,151,212,199,216,207,220,1,223, +84,224,0,225,231,224,57,225,121,226,136,227,115,227,84,226,57,225,101,225,158,226,183,227,99,228,112,228,170,227,189,227, +214,229,48,231,147,229,86,228,200,230,8,234,252,233,255,231,99,232,49,236,54,240,140,241,102,241,176,242,241,244,34,245, +254,242,227,240,71,239,18,237,169,235,232,237,62,243,78,247,157,247,102,247,32,251,53,1,240,3,167,2,229,2,66,7, +45,11,181,9,155,4,86,2,78,5,160,7,190,3,109,254,126,0,25,9,2,15,170,13,59,10,65,12,245,19,120,25, +17,24,149,21,176,24,137,30,110,32,151,28,137,22,132,20,16,25,241,28,57,25,172,20,54,25,241,34,110,39,143,37, +124,36,113,41,219,49,210,53,250,50,177,48,185,51,32,55,85,54,68,51,0,49,60,49,47,52,192,54,170,54,4,55, +192,58,201,63,89,67,141,69,97,71,108,72,91,71,26,69,33,69,113,71,246,71,126,70,154,70,70,72,195,73,53,75, +98,75,191,73,55,74,238,77,141,80,93,81,35,83,74,85,16,87,152,88,123,86,186,80,246,78,41,83,37,86,253,84, +137,82,113,80,214,80,7,84,148,84,85,81,224,80,57,84,18,86,208,85,121,85,241,85,46,89,182,91,58,85,5,74, +185,71,132,77,47,79,88,74,118,69,188,68,209,71,144,72,126,65,166,57,34,59,180,65,68,67,28,63,110,58,206,57, +6,62,236,63,14,57,215,47,13,45,182,45,48,43,68,37,100,31,10,29,208,29,98,28,78,24,2,24,156,27,57,29, +244,28,133,28,60,25,151,20,235,18,240,16,197,10,54,4,70,255,249,248,111,242,148,239,160,240,7,244,203,247,97,249, +112,249,153,249,119,247,138,241,184,234,45,228,117,220,33,212,1,205,61,201,15,203,244,207,99,210,131,210,189,211,179,213, +162,215,188,217,242,216,165,211,210,204,17,196,2,183,236,170,93,166,104,167,85,170,216,174,82,179,52,182,228,184,32,187, +40,187,64,186,211,185,26,185,36,183,217,176,203,163,14,151,13,148,31,151,190,150,31,148,185,150,77,159,163,167,201,169, +251,166,131,167,76,174,100,178,60,173,21,165,140,161,211,160,82,157,0,150,173,143,91,144,186,151,239,158,122,162,80,166, +54,173,169,178,36,177,57,171,142,169,129,174,213,177,133,173,242,166,37,165,205,166,111,167,165,166,98,167,98,172,130,180, +77,186,229,186,61,186,148,188,0,193,125,196,105,197,167,196,84,197,13,200,35,201,10,200,18,201,38,204,143,204,190,202, +237,202,82,205,219,208,101,214,213,219,85,221,91,220,10,221,236,223,156,227,126,231,111,235,99,240,249,245,102,247,22,242, +226,235,223,234,147,237,92,240,71,242,62,243,149,244,184,248,122,254,135,2,150,5,169,10,106,17,109,22,219,22,199,19, +35,18,171,19,129,19,125,15,124,13,184,17,140,24,187,28,12,29,53,28,29,30,127,34,255,36,112,37,45,40,22,45, +178,47,193,46,145,44,25,44,222,47,70,54,76,58,9,59,46,59,223,57,137,53,145,49,161,49,181,52,219,55,118,57, +155,58,236,61,193,66,251,69,119,72,84,76,131,78,71,76,74,72,121,68,145,64,200,62,189,63,40,63,146,59,244,56, +154,57,160,60,62,65,139,70,116,75,29,79,229,79,220,77,210,75,173,73,212,68,70,63,72,60,142,57,235,52,79,49, +28,49,223,51,87,56,115,59,156,59,96,60,248,62,238,62,161,59,7,57,39,55,120,52,212,49,167,45,155,38,182,33, +255,33,190,34,40,33,92,31,55,30,231,30,205,34,68,37,218,33,235,28,142,26,240,23,38,20,158,17,180,15,189,13, +220,12,250,10,9,7,211,5,173,8,28,10,131,8,23,7,159,5,230,1,119,252,97,247,0,245,141,245,213,244,13,241, +39,239,60,241,219,242,63,243,89,246,113,251,151,253,125,250,216,243,152,237,169,233,183,228,16,221,90,216,117,218,200,222, +109,224,11,224,200,224,83,229,228,235,174,237,95,233,215,230,88,233,226,233,171,227,108,218,226,211,73,210,198,210,45,209, +220,207,88,212,236,219,123,223,146,223,188,225,111,231,112,237,91,238,163,231,84,223,206,220,55,221,79,218,125,214,134,215, +3,221,175,225,246,224,118,220,188,220,220,229,219,239,163,242,165,240,69,239,249,238,18,238,174,235,157,232,170,231,194,233, +175,235,168,234,111,231,163,228,17,229,19,233,77,237,86,239,107,240,204,241,216,243,50,247,23,250,4,250,31,249,62,250, +210,250,75,248,8,245,177,243,158,244,92,247,191,249,197,249,121,249,74,251,203,253,187,255,91,2,185,5,47,8,3,9, +245,8,181,9,223,11,32,13,218,11,24,10,51,9,187,7,100,5,95,3,160,2,248,4,67,10,125,13,19,12,254,10, +32,14,122,18,120,20,17,20,161,18,101,17,219,15,240,11,234,6,48,5,52,7,23,9,16,9,132,8,53,9,84,12, +66,17,108,21,52,23,191,22,177,20,61,18,205,15,224,11,20,7,86,5,3,7,68,7,38,4,216,1,223,4,236,12, +236,20,9,24,252,23,87,26,244,29,52,27,41,17,244,8,91,8,224,9,170,6,7,1,170,255,196,3,250,8,224,11, +78,13,171,16,247,22,163,27,27,26,215,20,163,16,125,12,173,5,5,255,24,253,125,255,60,2,195,2,35,2,90,3, +60,7,110,11,250,13,80,15,188,16,29,18,82,16,130,8,200,254,186,250,235,251,158,251,7,249,190,248,135,251,210,254, +106,1,24,3,232,4,140,8,186,11,205,9,127,3,105,253,199,248,133,244,91,241,226,239,185,238,239,236,190,235,80,237, +249,241,33,247,77,250,129,251,255,250,133,248,122,245,101,243,92,241,98,238,24,235,213,231,121,229,128,230,84,235,27,241, +244,245,148,249,110,250,152,247,86,243,53,240,57,238,81,236,2,234,176,231,183,230,47,232,84,235,186,238,119,242,48,247, +148,251,15,253,77,251,239,248,221,247,152,246,57,242,67,234,20,226,94,222,142,224,98,229,106,233,254,236,117,241,247,244, +53,245,177,244,191,247,198,252,206,253,146,249,252,243,114,238,137,231,194,224,202,221,1,224,25,230,173,236,234,239,141,240, +50,243,53,248,56,251,69,251,139,251,48,253,37,254,161,251,49,244,198,234,135,229,176,230,169,234,42,238,96,241,103,245, +213,249,153,252,108,252,157,251,102,253,234,0,140,2,204,0,57,253,100,250,80,249,224,247,55,244,241,240,120,241,54,244, +138,245,187,245,164,247,18,252,76,1,201,5,116,9,50,12,220,12,24,11,58,8,33,5,200,1,251,254,129,253,194,252, +250,251,225,250,132,249,132,249,28,253,137,3,82,9,58,12,38,13,25,15,102,19,74,22,175,19,74,14,52,11,145,9, +247,5,53,1,107,254,46,255,96,2,9,4,35,2,96,1,81,6,191,13,196,18,104,21,209,22,236,22,77,22,92,20, +164,15,61,10,61,7,135,5,108,3,112,2,206,3,5,7,191,11,182,16,169,19,249,19,166,18,4,18,74,21,217,26, +121,27,54,21,51,14,192,9,113,6,100,5,104,7,42,9,8,10,141,12,8,15,28,15,187,15,139,18,195,20,239,21, +209,22,204,20,139,15,44,11,228,8,58,7,189,6,142,6,147,4,249,3,54,8,240,12,123,13,158,12,15,14,64,17, +191,19,180,18,21,14,219,10,61,11,158,10,69,7,170,5,115,7,214,9,243,10,32,10,3,9,212,11,66,17,85,18, +114,15,230,15,150,19,253,19,25,16,43,12,44,11,199,12,3,13,42,9,132,6,81,11,202,19,63,24,28,24,76,23, +200,23,24,25,110,25,209,23,241,21,19,21,207,19,205,16,165,12,51,10,86,13,193,20,75,25,14,25,199,25,19,29, +228,30,123,30,102,29,169,27,18,27,172,28,250,27,161,22,204,17,184,17,23,21,62,25,143,27,84,27,234,27,130,30, +222,30,236,27,62,26,87,28,178,32,250,35,33,34,76,28,173,25,149,27,49,27,157,22,96,19,167,20,66,24,87,25, +231,20,160,16,254,20,42,30,15,33,44,29,224,25,102,25,144,25,102,24,219,20,151,17,172,17,62,17,242,11,196,5, +142,3,81,4,147,6,165,9,205,11,55,14,178,18,112,21,131,19,201,16,102,15,33,12,57,6,204,0,182,254,251,0, +161,3,26,0,127,248,138,245,228,247,148,249,239,249,130,251,31,254,76,1,89,3,97,0,237,249,172,246,6,247,194,245, +83,242,142,239,106,237,222,234,11,232,178,228,241,224,34,222,171,221,46,224,62,228,135,230,69,230,234,229,137,229,235,226, +236,222,102,220,193,219,230,218,27,215,69,208,87,203,255,203,251,205,154,204,7,203,44,205,81,208,124,208,77,206,145,205, +249,208,72,213,19,211,146,201,81,193,238,191,142,193,196,192,204,189,78,189,178,193,77,197,36,193,107,186,15,189,2,200, +201,205,113,200,206,191,20,189,19,192,107,192,148,185,196,179,61,184,191,192,132,192,251,184,135,182,237,188,36,195,248,192, +41,186,76,185,188,191,91,194,226,187,53,183,35,190,23,201,135,202,104,194,253,188,84,193,52,200,120,199,125,193,229,192, +87,199,45,203,232,198,117,193,32,196,134,205,50,211,37,208,254,203,75,207,250,214,134,218,77,217,222,217,196,222,73,226, +107,222,56,214,35,211,127,216,45,223,90,224,113,222,136,223,0,228,120,231,136,232,194,234,191,240,231,247,172,251,145,250, +202,246,123,243,74,242,245,242,97,244,73,245,58,245,110,246,183,251,24,3,122,7,174,8,121,11,134,17,219,22,250,22, +126,18,183,15,172,18,215,21,204,18,63,14,25,16,199,21,42,24,217,23,194,26,56,35,191,44,10,48,176,44,150,43, +33,49,138,53,121,50,20,45,59,44,185,46,143,46,94,41,40,37,233,41,201,52,242,58,146,58,6,60,127,66,80,72, +151,72,133,68,149,65,150,67,110,70,109,67,59,61,101,60,60,65,34,68,44,66,96,64,3,67,15,72,190,75,131,78, +97,82,114,85,107,84,69,80,23,77,38,77,55,78,227,75,177,70,44,69,223,72,114,74,145,70,197,67,252,70,208,76, +140,79,162,77,92,75,192,77,167,81,24,79,108,70,36,63,30,60,232,58,28,57,150,53,111,50,223,50,32,52,229,49, +139,47,10,49,46,51,29,51,146,49,30,46,199,42,28,44,129,47,251,46,29,44,184,41,28,37,163,29,221,21,183,14, +54,11,239,13,170,16,178,13,2,10,56,10,171,12,189,17,223,24,75,28,112,27,111,26,76,22,183,11,145,0,172,249, +123,245,159,242,54,238,71,229,247,221,225,222,197,226,227,228,178,233,200,241,216,247,131,250,58,249,62,243,49,238,145,236, +19,230,138,216,20,206,199,202,26,201,83,198,238,194,206,192,125,197,8,209,38,218,152,221,185,225,114,231,199,232,56,227, +151,216,82,205,62,199,189,197,242,193,99,187,15,185,212,189,69,197,156,201,2,202,186,204,226,213,255,221,183,220,181,214, +7,213,76,215,127,214,126,206,1,195,210,188,64,190,246,191,253,190,156,193,36,202,179,210,128,214,4,214,15,214,217,219, +206,227,82,228,24,222,113,219,198,222,217,224,10,221,41,214,150,211,250,216,204,222,210,220,169,216,132,219,236,226,26,232, +110,233,106,232,251,233,79,242,113,250,111,249,238,244,81,246,125,250,21,251,82,248,152,243,189,238,35,237,126,237,114,236, +167,236,67,241,56,248,232,255,85,7,252,10,241,10,125,11,129,12,72,11,31,9,234,7,228,7,87,9,146,9,33,6, +149,4,75,9,110,13,153,12,174,13,17,20,43,26,202,28,106,28,86,25,94,23,177,25,92,27,133,24,201,22,98,26, +214,30,161,31,8,30,189,29,133,32,89,35,195,33,196,29,81,29,85,32,17,34,130,33,53,33,153,34,222,36,97,37, +181,34,44,32,168,33,16,37,119,37,72,34,203,30,29,29,122,28,161,27,160,27,185,30,27,36,125,39,166,38,186,36, +128,37,81,39,230,37,6,34,10,32,152,31,221,28,99,24,171,21,94,21,220,22,32,26,72,29,69,30,8,30,190,29, +50,29,255,28,29,29,225,27,185,25,46,24,139,21,129,16,67,12,66,11,140,11,252,10,94,9,153,7,155,7,167,9, +130,10,158,8,85,7,22,9,166,10,45,7,19,255,210,248,176,248,244,249,64,246,90,240,95,239,109,243,102,246,93,244, +107,239,72,237,80,240,166,243,9,242,108,237,51,235,233,236,106,239,211,238,239,235,246,235,26,239,14,238,91,230,24,223, +112,221,21,223,185,224,128,225,190,225,184,225,99,224,102,222,112,225,140,236,168,248,196,252,48,247,43,235,3,222,53,213, +56,209,95,207,33,208,2,211,234,210,88,206,60,202,10,203,25,211,223,225,232,239,165,245,160,244,204,240,4,234,208,225, +112,219,128,214,137,210,125,208,190,205,214,200,54,199,230,204,228,214,34,225,156,233,135,240,170,248,105,0,148,0,59,249, +153,241,205,233,241,222,115,214,151,212,49,213,85,214,135,217,129,220,95,223,206,230,234,240,94,247,212,250,141,254,6,1, +50,0,98,251,131,242,175,233,93,229,25,227,195,223,74,222,41,225,111,230,193,235,201,239,106,243,236,249,124,2,25,8, +195,10,158,13,232,14,201,12,154,9,146,5,74,255,45,249,72,245,87,243,122,245,46,252,17,2,46,4,107,5,117,7, +247,9,153,13,134,18,15,25,167,32,138,35,244,29,149,22,75,19,107,16,70,12,215,10,213,11,91,12,26,12,154,9, +223,5,55,8,172,17,226,25,135,30,72,35,112,38,52,38,182,36,222,31,216,22,27,18,112,21,4,25,170,24,4,23, +146,19,82,14,230,11,111,14,75,21,230,31,20,41,223,42,60,39,8,34,186,27,24,24,78,27,167,33,228,37,74,38, +63,32,150,21,14,16,27,19,14,24,44,28,14,33,252,35,112,35,127,34,194,33,97,33,65,36,199,39,82,37,99,30, +76,25,15,23,154,22,239,23,197,24,162,23,192,22,157,22,103,21,219,19,3,20,220,22,89,28,19,33,2,33,175,30, +144,30,104,30,161,27,31,26,97,28,78,30,233,27,238,21,71,16,237,14,107,17,7,19,24,18,57,18,228,21,208,26, +77,29,84,29,50,31,185,36,107,40,173,36,178,27,230,19,48,17,143,18,234,18,175,15,114,13,138,15,229,17,0,18, +25,19,126,22,187,26,212,30,27,31,223,24,238,17,236,15,65,15,198,12,64,11,220,10,96,9,36,8,54,8,226,8, +214,11,219,16,162,19,34,20,144,21,205,21,34,18,49,13,143,8,145,3,121,0,61,0,179,255,67,254,176,253,120,253, +171,254,168,3,86,9,4,12,72,14,83,17,97,17,115,14,170,11,183,7,231,0,232,249,178,244,226,240,39,239,160,239, +193,240,120,242,115,245,85,248,165,249,249,249,253,250,132,253,109,255,37,253,8,247,216,240,201,235,52,231,143,228,149,228, +236,228,252,227,125,226,117,225,62,226,11,230,145,235,203,239,179,240,41,238,211,233,225,229,71,227,0,226,149,225,200,224, +81,223,131,222,71,222,120,221,41,221,94,222,182,223,232,224,131,226,101,226,186,223,231,221,50,222,15,222,250,220,225,219, +26,218,222,215,239,213,107,211,78,209,189,209,105,210,211,208,195,207,116,208,45,208,246,207,238,210,221,215,189,220,55,224, +178,222,229,216,213,213,14,214,21,211,125,205,182,202,214,201,214,199,21,197,229,193,113,192,60,197,8,206,215,211,157,214, +127,217,176,218,177,217,225,217,209,218,203,217,68,215,57,211,249,204,128,199,171,196,242,193,243,191,235,194,111,202,49,210, +169,215,42,218,110,219,243,222,191,227,10,229,208,226,245,224,203,223,224,220,73,215,42,208,0,203,48,203,10,207,109,210, +111,213,43,218,102,223,145,226,144,227,89,228,106,230,138,232,17,232,254,228,116,225,54,222,239,219,43,220,199,221,44,222, +134,222,148,225,208,230,27,236,242,239,130,241,120,242,65,245,188,247,68,246,199,242,117,241,198,241,212,240,218,238,17,239, +167,243,35,250,111,253,231,252,254,252,144,255,192,1,98,1,137,255,35,255,84,2,120,6,67,6,143,2,214,1,187,5, +2,10,182,12,32,15,155,17,116,19,145,19,5,17,232,13,92,14,169,18,166,22,140,23,223,22,233,23,97,27,56,30, +189,30,20,32,34,36,101,39,165,39,117,39,36,40,94,40,117,40,231,40,39,40,162,38,219,38,73,40,171,40,81,40, +70,40,249,40,36,44,181,49,65,53,42,53,123,54,3,60,217,64,13,64,114,59,156,56,121,58,249,61,68,61,253,55, +164,52,57,55,10,60,68,62,42,62,20,63,137,66,101,70,12,72,248,72,231,75,93,78,50,76,131,71,3,69,123,68, +159,67,165,66,30,66,7,66,206,66,24,67,32,65,7,64,255,67,2,74,174,75,207,72,128,70,203,71,190,74,83,75, +44,73,200,72,235,75,232,76,232,70,30,62,59,58,93,60,222,62,228,61,114,60,190,62,44,67,106,69,237,68,165,67, +175,66,153,66,73,66,27,63,125,57,9,52,196,45,74,37,96,30,92,28,58,29,81,31,155,35,56,41,30,46,164,49, +169,50,29,48,84,43,155,37,149,30,123,22,31,14,137,6,19,2,72,1,249,0,26,0,151,1,56,6,248,11,62,17, +187,19,136,18,37,17,230,15,171,8,0,251,226,238,204,231,39,227,238,224,135,225,158,226,75,228,150,231,106,233,159,232, +176,233,29,238,201,240,36,237,77,228,208,219,78,215,210,210,60,202,41,195,213,195,74,199,161,198,255,195,244,196,117,203, +82,212,111,215,109,209,7,203,152,202,168,200,139,191,90,182,70,179,36,179,90,177,65,173,13,171,220,176,129,187,254,190, +202,185,195,183,55,189,23,193,238,188,134,180,155,175,80,177,70,179,120,173,23,164,52,162,124,168,80,174,71,175,55,174, +77,176,50,183,101,188,225,184,216,177,110,177,50,182,129,183,76,180,81,178,166,180,141,184,219,184,6,181,66,179,11,183, +144,187,161,188,79,188,173,188,54,189,108,190,38,193,126,196,76,199,15,201,51,202,151,204,216,208,93,212,216,212,204,210, +216,207,135,205,150,204,98,204,101,205,43,209,238,213,157,216,230,218,192,223,113,229,69,233,23,235,127,234,115,231,84,228, +178,226,139,226,193,228,119,232,65,234,253,233,209,234,119,237,117,241,79,247,20,253,251,255,92,1,28,3,138,3,115,1, +103,254,96,252,242,252,58,255,121,255,254,253,19,0,25,6,109,11,230,15,154,21,79,26,47,28,140,28,51,27,251,23, +75,21,38,19,210,15,115,13,29,14,8,16,184,18,197,22,58,26,194,29,199,36,86,44,223,46,65,46,183,45,61,43, +174,38,212,34,123,31,85,29,204,31,9,37,30,40,159,41,152,43,255,44,97,46,202,48,122,50,243,51,190,54,10,55, +9,51,159,48,172,49,57,49,152,47,150,48,41,50,3,50,28,50,144,50,236,50,168,53,219,57,124,59,116,59,8,60, +185,59,49,59,178,60,33,61,198,57,36,54,34,52,198,49,245,47,144,48,128,50,52,53,1,56,197,55,176,52,113,51, +169,53,99,57,198,60,244,60,45,57,49,54,236,53,138,51,233,45,79,42,36,43,242,45,137,47,220,45,85,43,6,45, +120,49,132,50,68,48,50,47,54,48,0,50,192,50,67,48,247,44,83,45,38,46,244,41,29,36,34,34,111,34,204,33, +29,32,115,30,139,30,26,32,79,31,41,28,183,27,108,30,65,32,15,32,96,29,153,23,141,18,168,16,166,13,12,8, +23,4,168,2,48,2,4,3,48,3,11,2,225,5,30,16,59,23,214,21,159,15,89,7,126,255,190,251,125,249,176,244, +71,241,99,242,11,244,150,244,13,246,234,248,162,254,200,6,227,10,211,9,103,10,62,11,96,5,60,252,227,245,105,240, +86,235,18,232,240,226,182,221,206,224,153,232,188,234,238,234,101,241,71,250,218,254,162,253,109,247,95,241,245,238,176,232, +23,219,154,210,37,214,245,218,55,216,149,209,244,206,137,214,138,229,135,239,172,240,10,242,17,245,222,241,126,232,55,223, +113,217,54,217,15,219,66,214,114,205,92,204,236,209,55,213,36,216,104,223,160,231,90,237,74,239,152,235,108,230,213,229, +206,229,119,224,76,217,95,212,180,208,211,205,243,202,180,199,24,201,236,208,176,215,115,218,232,222,184,229,159,234,239,236, +172,235,206,229,113,224,156,222,125,219,19,214,221,210,84,209,70,207,204,206,169,207,180,207,137,209,216,214,9,220,194,223, +190,227,227,231,49,236,18,240,143,239,73,234,195,229,78,227,122,223,139,218,18,215,50,214,196,216,248,219,191,218,33,216, +204,219,155,228,70,236,80,241,32,244,228,244,109,245,140,244,78,239,58,233,205,230,35,229,204,225,239,222,70,220,224,217, +15,220,147,226,81,232,105,237,93,243,190,246,192,246,94,246,242,244,91,242,15,242,82,242,112,238,226,232,188,229,125,227, +83,225,244,224,158,226,200,231,68,241,87,249,212,251,92,253,178,0,240,1,45,0,30,254,106,252,152,251,182,250,34,245, +38,236,237,232,49,237,231,240,3,241,255,241,244,246,34,255,124,6,152,8,40,8,175,11,207,16,45,15,159,6,66,255, +123,254,179,1,213,1,178,252,82,249,207,252,184,1,208,2,5,4,153,9,43,17,96,22,193,22,101,19,133,17,199,19, +178,21,55,20,138,19,201,22,58,26,162,25,26,22,242,19,175,21,139,25,88,28,67,30,169,33,12,38,77,40,129,39, +98,38,179,39,26,43,64,46,186,47,132,47,41,46,68,44,193,41,251,38,246,38,198,43,75,49,154,50,36,50,13,53, +224,58,133,63,122,64,67,62,116,60,161,61,117,62,197,58,247,52,80,50,160,52,210,57,227,60,236,58,154,57,83,63, +224,70,251,71,121,69,94,70,215,73,141,74,232,69,120,62,188,58,125,60,30,60,158,53,34,49,209,52,160,58,53,59, +156,55,201,53,162,57,187,63,105,64,195,59,218,57,187,59,167,57,157,49,113,42,15,41,42,43,217,42,176,37,25,33, +25,35,117,40,83,42,14,41,12,41,39,43,56,45,80,44,184,38,138,31,162,27,79,26,85,23,248,17,206,12,234,9, +102,9,96,9,211,8,193,9,244,12,145,15,72,16,54,16,15,14,88,8,234,1,67,253,142,248,131,242,35,237,69,234, +253,233,239,234,195,234,82,233,162,233,97,236,199,237,220,235,108,233,140,232,70,231,217,227,67,224,196,222,125,221,64,217, +54,211,192,207,127,208,154,210,151,210,106,208,69,207,88,208,210,207,28,203,192,198,17,200,123,204,149,205,66,202,76,198, +103,195,183,191,21,187,56,185,135,187,54,189,96,186,47,182,220,180,140,181,200,181,7,181,250,179,191,180,73,184,231,185, +8,181,114,174,252,173,90,178,92,180,220,177,223,174,138,175,16,179,201,179,28,175,60,171,75,174,123,180,253,182,159,182, +99,184,60,189,67,193,183,191,86,184,241,177,26,179,1,185,42,188,134,187,157,187,25,190,130,192,243,192,93,192,77,193, +26,197,173,201,170,203,208,202,225,201,116,202,98,203,78,203,240,202,4,204,113,206,105,208,220,209,241,212,208,217,36,221, +112,220,107,217,43,216,249,218,195,223,120,226,214,226,151,228,83,232,40,234,129,233,228,234,254,239,7,245,42,247,110,247, +144,247,103,248,7,250,103,251,189,251,45,252,231,253,223,255,159,0,211,0,76,2,169,5,23,10,133,14,17,18,248,19, +146,20,87,21,74,22,180,21,242,19,240,19,146,22,214,25,89,28,118,29,212,28,251,28,165,32,131,36,30,36,63,35, +236,39,173,46,228,47,54,44,116,42,186,45,29,51,242,53,11,53,184,52,57,56,245,58,173,55,4,51,254,52,184,59, +104,62,5,59,219,56,85,61,126,67,230,66,148,61,93,62,14,71,227,75,9,70,86,62,39,63,222,69,177,72,214,68, +71,65,199,67,117,71,38,68,179,60,245,59,67,68,254,75,205,74,80,67,247,62,74,66,159,70,184,67,57,61,188,60, +61,65,236,64,78,57,57,50,122,50,90,56,136,60,187,58,232,54,182,54,62,56,227,53,71,48,3,45,172,45,9,46, +152,42,50,37,232,33,80,33,17,33,91,32,211,31,119,31,41,31,144,30,197,28,172,26,153,25,44,23,188,17,177,13, +28,14,237,14,1,13,99,10,243,7,0,5,9,3,93,2,239,0,66,255,52,255,171,255,215,254,96,252,196,248,252,246, +151,249,72,252,86,249,111,243,130,240,110,240,175,239,234,236,186,233,108,233,149,235,196,233,190,225,82,219,5,221,56,228, +237,234,171,236,232,232,12,229,187,228,40,227,113,221,71,217,87,217,13,217,56,215,21,215,181,216,213,217,200,217,181,217, +66,220,91,225,94,227,249,223,83,221,42,223,47,225,149,223,250,218,16,214,254,212,129,216,58,219,98,219,246,221,106,227, +145,230,115,230,88,229,33,228,48,228,211,228,254,225,76,221,218,220,58,223,5,224,190,225,245,228,7,228,138,224,148,226, +111,233,15,238,16,239,218,238,156,238,199,238,151,237,69,233,234,229,171,232,11,239,153,242,177,240,4,236,206,234,22,240, +249,245,157,246,223,245,87,248,54,250,200,247,159,244,209,245,25,252,43,3,215,4,239,0,62,254,109,255,154,255,69,253, +195,253,119,3,65,9,85,9,146,4,67,1,162,2,13,5,57,5,235,5,187,10,209,17,121,21,125,18,2,13,100,12, +133,16,128,18,42,17,179,17,249,19,122,18,145,12,116,7,171,7,121,13,176,20,154,24,86,25,167,25,136,25,241,23, +45,22,218,21,83,23,175,25,179,25,223,20,138,14,199,12,7,17,143,23,3,28,241,28,126,28,190,28,72,28,120,25, +50,22,35,21,158,22,236,24,99,25,58,23,141,21,169,22,247,23,234,22,113,21,56,22,178,24,14,26,124,24,31,22, +137,22,87,24,68,23,58,20,81,19,255,19,10,19,138,16,237,14,103,15,161,16,143,15,222,11,28,10,4,13,96,16, +245,14,160,9,204,5,140,6,242,7,14,4,100,253,142,252,228,1,74,4,198,255,170,250,82,251,24,0,12,2,111,253, +141,246,229,243,1,245,209,243,203,237,206,231,76,232,55,238,103,241,15,239,218,237,6,241,15,243,11,241,127,238,135,237, +50,237,16,236,104,232,184,227,51,226,233,225,94,221,128,215,226,214,220,217,209,219,255,220,46,223,253,227,152,235,191,239, +141,234,208,224,143,217,163,212,203,209,46,210,36,210,111,207,124,205,84,204,152,202,97,206,219,219,109,236,50,248,201,250, +255,241,224,228,234,222,111,222,86,218,51,212,172,209,143,208,149,205,49,201,216,197,208,202,148,220,112,240,170,248,115,246, +40,242,77,239,22,238,177,235,26,229,196,222,141,220,210,215,140,205,142,199,55,204,249,214,72,226,19,234,99,237,22,243, +206,253,27,3,73,254,139,249,224,249,215,247,236,238,9,227,167,219,118,222,144,230,3,233,197,231,167,237,152,248,57,254, +70,254,47,255,196,3,55,10,96,11,7,2,233,246,141,245,177,249,151,249,130,246,139,245,40,247,20,250,154,251,216,250, +113,254,25,10,149,20,240,21,50,19,27,19,121,21,89,23,144,21,159,15,132,10,245,8,90,6,128,0,70,252,103,253, +198,2,40,9,68,13,164,15,107,20,94,27,209,31,248,32,67,33,239,32,89,31,171,27,122,20,140,12,65,9,206,9, +219,9,242,9,34,12,93,15,253,18,233,22,38,26,154,30,120,38,88,45,178,45,226,40,148,34,14,28,59,22,172,17, +39,15,213,16,86,20,175,18,38,13,86,13,42,21,201,29,114,35,225,37,22,37,169,35,94,34,22,29,11,21,131,18, +107,22,10,24,77,18,55,9,30,5,31,11,149,21,253,25,224,24,15,27,85,32,211,32,103,27,23,22,182,21,242,25, +123,28,94,23,115,14,189,9,22,9,45,8,21,8,197,11,120,18,7,25,218,27,136,26,34,26,34,29,57,30,163,26, +88,23,217,22,241,21,138,19,57,17,196,15,186,16,217,20,188,24,205,25,14,26,8,27,181,27,64,27,231,24,141,21, +107,21,188,24,169,24,161,19,169,17,253,21,35,26,1,26,76,24,24,24,72,26,21,29,18,28,139,22,75,18,233,18, +101,21,191,22,23,23,68,23,138,24,62,27,238,28,125,28,226,27,17,27,211,24,207,23,192,25,9,27,13,26,224,25, +164,26,232,25,171,24,6,24,120,22,27,21,45,22,0,23,222,20,168,18,205,18,160,19,229,19,40,19,85,16,54,13, +36,13,229,14,57,15,227,14,147,15,131,15,134,12,161,7,102,4,206,5,127,10,215,13,248,13,151,12,91,10,103,7, +167,5,143,5,6,5,171,3,135,2,127,0,155,252,222,248,75,247,144,247,122,248,215,248,9,248,227,246,78,246,239,245, +136,245,177,245,168,246,166,247,25,247,228,243,147,239,28,237,120,236,194,234,32,231,100,228,63,229,70,232,25,233,127,230, +211,228,11,231,142,233,161,232,251,230,28,233,216,237,13,239,214,232,13,223,114,217,150,217,119,217,168,213,47,210,69,211, +190,214,81,215,152,212,235,212,187,219,201,225,180,222,68,214,72,210,217,211,235,211,232,206,43,201,135,200,129,203,199,202, +75,197,168,195,115,203,102,215,162,222,39,221,174,214,119,211,54,213,217,211,141,204,23,200,68,202,214,202,161,196,34,189, +197,187,189,194,239,204,154,209,17,208,243,208,107,214,119,216,35,212,48,208,131,209,220,212,28,211,6,202,144,193,49,194, +119,199,5,200,149,197,177,199,157,206,46,213,174,215,79,214,75,214,124,219,63,224,202,221,27,216,109,214,2,216,89,216, +211,213,19,210,164,209,249,214,144,220,156,220,43,219,37,223,1,231,232,235,185,234,176,230,130,229,74,232,239,233,105,231, +172,228,9,230,11,234,88,236,142,235,255,234,255,237,157,242,133,245,67,248,180,252,142,255,103,254,27,252,91,251,7,252, +121,253,246,253,45,252,226,250,206,252,87,255,97,255,156,254,63,0,20,5,44,11,71,15,166,16,63,18,109,21,151,23, +226,22,117,20,112,18,103,18,117,19,250,18,227,17,224,19,53,24,246,26,228,27,90,29,129,32,146,37,106,42,26,43, +141,40,201,39,21,41,23,41,102,40,30,41,240,41,30,41,51,39,0,38,246,39,91,45,105,50,119,52,53,53,38,54, +106,54,59,53,10,51,130,50,196,54,159,60,217,60,76,56,121,54,142,56,18,58,227,57,83,57,160,57,174,60,180,64, +144,64,177,61,115,62,11,66,43,67,242,65,158,64,247,62,9,62,210,62,176,62,94,60,44,58,149,56,201,54,83,54, +6,56,137,58,149,61,222,64,190,66,71,67,252,66,206,63,5,58,48,54,88,53,123,51,112,47,90,44,33,44,83,45, +220,44,225,41,151,40,107,44,246,48,53,48,167,43,7,40,186,37,77,34,142,28,60,22,202,19,104,22,156,23,69,18, +216,11,190,11,96,15,168,15,193,12,98,12,195,15,79,17,105,12,104,3,98,252,169,250,212,252,165,254,254,252,231,249, +111,249,244,249,176,246,229,241,164,242,184,248,91,252,216,248,214,240,9,234,63,231,60,229,252,223,57,219,191,221,168,228, +43,230,58,224,202,217,186,215,234,216,154,218,35,219,179,218,106,218,20,217,217,211,91,204,238,200,62,204,163,209,8,212, +255,211,78,212,18,212,202,208,41,204,131,202,137,204,131,207,106,209,137,208,233,203,64,199,168,199,76,203,103,204,11,203, +130,203,99,206,26,209,255,209,137,208,248,205,55,205,99,206,10,206,103,203,37,202,172,204,253,208,145,211,49,211,29,210, +39,211,213,213,149,215,21,216,121,217,203,220,228,223,135,223,83,220,31,219,189,221,104,224,100,225,135,227,198,230,106,231, +248,228,80,226,107,225,38,227,67,230,83,231,178,230,195,232,234,236,18,238,183,236,4,238,69,243,50,249,143,251,119,248, +141,244,91,246,255,250,82,250,206,245,73,246,151,253,32,5,18,7,243,3,215,1,21,5,176,9,237,9,31,8,11,10, +135,15,162,19,131,18,72,13,19,10,75,12,92,15,19,16,243,18,125,25,41,29,202,26,149,22,215,19,231,18,14,20, +74,22,73,24,242,26,10,30,202,30,239,28,77,27,156,27,74,30,200,34,21,38,216,37,205,35,24,34,15,32,52,29, +175,27,107,30,43,37,154,42,175,41,230,36,107,34,105,35,82,37,208,38,255,38,238,37,149,37,54,37,232,33,95,30, +205,31,22,36,40,38,204,38,79,40,154,41,41,42,162,42,190,41,189,38,105,35,88,33,227,32,117,33,37,33,66,31, +142,29,88,28,115,26,54,25,116,26,80,29,247,32,175,36,57,37,12,33,197,27,168,24,92,23,208,22,96,21,177,17, +112,14,160,14,147,15,100,14,235,13,137,16,127,19,211,19,131,17,107,14,25,13,112,13,176,11,251,6,117,3,236,2, +105,2,22,0,196,253,30,254,55,1,202,2,246,254,175,248,89,245,228,244,105,244,143,242,92,238,135,233,39,233,44,237, +176,239,222,239,57,241,153,242,218,241,238,240,5,240,156,237,46,236,163,236,254,233,188,226,39,220,253,217,130,220,33,227, +200,234,51,240,133,243,24,244,228,239,251,233,159,231,68,232,73,232,97,229,176,221,80,211,65,205,7,206,11,210,128,216, +102,225,74,231,221,230,136,228,7,228,221,228,148,230,49,231,98,227,115,220,148,213,59,206,214,199,82,200,144,208,120,218, +174,225,195,229,136,231,32,233,151,235,14,237,189,236,111,235,5,232,43,226,178,220,232,216,9,214,244,212,212,213,0,215, +110,217,203,222,170,228,1,233,164,237,169,242,215,244,77,242,137,235,153,227,218,223,68,225,7,226,152,223,48,223,60,228, +129,234,222,235,178,231,128,228,212,232,141,241,179,245,48,244,227,243,41,247,54,249,92,246,179,240,236,237,67,241,155,246, +106,247,67,244,247,242,215,244,7,246,165,244,44,243,233,244,19,250,17,255,105,0,205,254,189,253,79,255,19,2,111,2, +115,255,91,253,77,255,148,1,226,255,163,252,44,252,175,253,238,253,60,253,55,255,19,5,172,10,173,11,70,9,49,7, +3,7,48,9,151,12,101,13,126,10,64,7,234,3,13,254,16,249,176,250,248,1,109,10,41,17,68,19,54,16,136,12, +194,11,58,13,66,16,228,19,42,21,191,18,37,13,152,4,220,252,142,252,224,3,41,12,177,16,121,16,144,12,134,9, +137,11,168,16,157,20,211,21,203,19,13,15,4,10,136,5,130,1,18,1,160,5,135,9,92,8,214,5,88,6,9,9, +38,12,123,15,81,18,144,19,36,18,38,13,185,6,85,4,202,8,24,16,68,19,252,15,138,11,182,11,123,14,203,14, +29,14,170,16,69,20,121,19,2,14,40,9,9,10,20,16,10,21,38,21,255,19,249,20,43,21,147,17,233,12,215,11, +49,15,229,18,128,18,22,15,226,13,223,16,69,21,166,24,52,27,230,29,104,32,3,33,182,31,65,31,24,32,203,30, +149,26,66,23,236,22,214,23,67,24,135,24,100,26,202,30,114,35,66,37,201,36,10,37,83,39,17,42,225,41,74,37, +62,32,252,30,219,30,165,27,78,24,105,26,48,33,228,38,10,40,245,38,89,40,255,43,237,44,206,42,168,42,120,44, +15,43,238,37,205,32,82,29,137,28,58,31,86,34,149,35,232,37,222,41,150,42,242,38,124,35,182,34,205,35,233,36, +240,34,29,29,147,23,59,21,95,20,73,19,46,18,36,18,209,20,232,24,237,25,90,24,195,25,231,29,78,30,253,24, +100,18,22,15,186,15,60,16,165,12,167,7,37,6,179,6,198,5,196,4,82,6,215,9,54,13,234,13,47,10,18,4, +192,255,80,254,186,253,174,252,176,251,16,251,14,249,245,243,42,238,74,236,15,239,71,243,77,246,226,246,166,244,1,241, +34,237,53,232,249,226,47,225,125,227,9,229,65,226,128,221,25,219,58,220,120,222,254,222,92,222,225,223,202,227,50,229, +128,224,169,216,108,211,131,210,156,210,59,208,75,204,164,202,118,204,168,206,162,206,49,206,124,208,97,212,93,213,66,210, +156,206,182,204,67,203,22,201,142,198,116,196,174,195,191,195,194,194,180,193,226,195,80,200,100,202,17,201,55,199,191,198, +207,198,45,197,150,193,55,191,119,191,85,191,128,189,116,188,81,189,169,191,72,195,254,197,130,198,122,200,243,204,233,205, +249,200,37,196,159,195,101,197,245,198,142,199,142,199,192,200,221,203,194,206,223,207,85,208,193,209,86,212,167,214,190,214, +141,212,65,210,212,209,151,211,88,214,101,216,202,217,249,219,18,222,3,222,190,221,197,224,243,228,247,228,36,225,49,223, +247,225,27,230,64,231,89,230,104,232,92,238,222,242,29,243,138,243,246,247,75,253,115,254,122,251,197,249,62,253,241,1, +121,1,10,254,248,254,48,4,200,7,83,8,242,8,253,11,235,16,179,19,87,17,18,14,94,15,0,19,118,20,131,20, +131,21,207,23,248,26,122,29,129,30,90,32,61,36,205,39,190,41,174,42,134,42,244,41,30,42,11,42,150,41,121,42, +195,43,244,43,150,45,160,49,11,52,171,51,156,52,196,56,69,61,194,62,248,60,86,59,120,60,151,61,154,59,52,57, +217,57,4,60,135,60,70,58,219,54,165,54,136,59,30,64,255,63,190,63,174,67,68,71,152,69,34,65,52,62,246,61, +102,63,43,64,236,62,84,61,13,60,64,57,253,53,184,53,252,55,204,57,65,58,112,57,187,55,134,54,154,53,194,51, +84,50,23,50,117,48,143,44,104,40,122,36,242,32,75,31,5,31,244,30,65,32,240,34,255,36,66,38,96,38,35,35, +144,29,134,25,125,23,23,21,176,16,243,9,62,3,179,255,234,253,181,251,162,252,214,3,0,13,182,17,15,16,191,10, +178,6,174,5,231,3,100,255,91,251,39,248,185,241,126,232,40,226,7,226,201,230,236,236,210,240,198,241,230,241,148,241, +175,239,188,237,115,237,114,236,99,232,129,227,165,224,89,223,148,221,246,217,194,213,178,213,233,219,113,226,199,226,67,223, +45,222,205,223,1,223,91,217,159,211,141,212,251,218,5,222,73,217,141,210,47,209,98,213,146,217,159,218,30,220,24,225, +129,228,183,224,172,217,239,214,93,217,186,220,249,221,60,221,120,220,101,220,69,220,33,221,77,224,144,227,154,228,191,228, +46,229,188,228,3,227,173,225,42,227,46,232,219,236,216,236,197,234,135,236,217,241,225,245,121,246,3,245,140,243,132,242, +11,240,1,236,225,234,63,239,80,244,253,244,209,243,255,245,221,250,255,253,227,254,244,0,91,5,40,9,27,9,12,5, +135,0,126,255,242,0,23,0,124,252,197,251,215,0,187,6,205,7,161,5,193,5,172,9,119,14,130,17,34,18,145,17, +22,18,201,18,240,15,31,11,32,11,253,16,121,22,152,23,143,21,13,19,147,18,155,20,169,22,65,23,220,23,122,25, +173,26,9,25,32,20,26,16,179,17,221,22,139,25,182,24,28,24,218,25,170,28,132,29,147,26,163,22,25,22,239,23, +160,23,59,21,205,20,7,23,155,24,124,23,131,20,252,17,199,18,56,23,215,26,6,26,68,23,227,21,87,21,41,21, +39,22,59,23,161,23,116,24,182,24,92,22,231,18,247,16,5,17,186,18,116,20,145,19,219,16,124,15,146,15,94,15, +165,14,73,14,181,15,139,18,88,18,237,12,146,7,217,6,79,8,209,8,119,8,78,7,23,5,95,2,106,255,7,253, +149,252,159,253,71,255,7,2,81,4,131,2,166,252,140,246,138,242,109,240,67,239,237,237,139,236,161,236,178,237,51,237, +0,235,137,233,187,233,248,234,60,237,198,239,156,240,17,239,201,235,64,231,169,226,78,223,239,220,1,220,209,221,112,224, +149,224,203,222,68,221,154,221,152,226,176,235,154,241,163,239,34,233,192,225,56,218,202,211,73,207,66,205,186,207,28,213, +49,215,242,212,0,213,57,220,227,231,232,239,224,238,91,233,191,230,223,228,189,221,109,211,32,204,120,202,76,205,167,207, +240,205,205,205,87,214,165,227,59,237,209,240,92,240,224,238,205,238,164,237,16,232,173,225,223,222,66,221,81,218,245,215, +200,215,225,218,105,226,16,235,29,240,28,243,252,246,14,249,242,246,65,243,90,240,143,238,254,237,9,237,126,234,79,233, +254,234,110,236,122,237,24,241,144,245,77,248,74,251,7,254,157,252,123,248,155,245,191,243,196,242,211,243,104,245,68,247, +204,250,68,252,18,249,130,247,210,251,188,1,152,6,190,10,12,12,169,10,199,9,194,8,185,6,53,7,125,11,39,16, +214,17,214,14,223,9,220,8,3,10,94,6,143,1,32,4,175,10,220,13,170,15,173,19,15,24,183,26,85,26,164,22, +96,20,107,23,227,26,144,24,195,17,19,11,8,7,14,6,171,6,73,8,72,13,246,20,27,25,158,23,86,22,26,25, +39,29,120,31,140,31,113,29,242,25,28,22,115,18,237,16,224,18,238,20,241,19,123,18,70,19,90,21,46,24,87,27, +215,28,84,29,94,30,151,28,15,22,13,17,239,18,239,23,120,25,99,22,118,19,25,21,144,24,52,24,24,21,21,20, +176,21,34,24,223,25,25,24,145,18,160,13,18,12,24,13,254,14,73,15,242,13,62,15,83,19,98,20,219,17,7,17, +224,18,213,20,252,21,78,21,243,18,137,18,175,20,151,20,194,16,33,14,141,16,246,21,108,25,4,25,204,23,52,24, +230,23,86,21,18,20,170,22,248,25,132,26,19,25,63,23,188,20,241,17,46,17,193,19,30,24,51,27,238,26,60,24, +198,21,13,21,165,22,119,26,47,29,113,27,115,24,202,24,193,25,131,23,27,21,31,22,215,24,111,26,233,25,227,23, +80,23,109,26,240,30,251,32,236,31,202,30,113,32,101,34,62,31,125,24,61,21,23,22,150,21,206,18,255,16,54,17, +166,18,61,20,241,20,73,22,157,26,56,31,155,30,6,25,78,20,1,19,151,17,125,13,82,9,250,7,79,8,174,7, +95,5,202,3,171,6,80,13,44,18,99,19,59,20,198,20,218,17,248,11,71,6,175,2,104,1,204,255,217,250,215,244, +191,241,54,241,161,242,119,247,82,254,243,3,241,6,153,5,146,255,179,249,202,247,36,247,215,244,151,241,206,237,60,233, +198,228,63,225,227,223,14,227,59,234,159,240,99,242,237,239,234,235,47,233,218,232,70,232,246,227,244,221,23,220,154,222, +3,223,27,218,148,212,21,212,18,216,59,219,192,218,246,217,11,220,114,221,13,217,131,208,138,202,87,203,75,208,182,210, +123,208,111,206,71,207,240,207,222,206,254,205,132,206,190,208,50,211,254,209,41,205,107,201,116,199,182,196,12,195,78,197, +146,201,126,204,117,204,98,202,0,202,49,204,46,204,45,200,171,196,136,196,159,198,188,200,155,199,234,194,138,192,15,196, +7,201,74,203,113,204,175,206,255,208,188,208,68,205,81,202,166,203,249,206,97,207,184,204,187,202,150,203,23,206,18,208, +169,209,207,212,16,217,120,219,73,219,117,218,139,217,138,215,17,213,55,212,138,213,75,215,118,215,74,214,227,214,215,219, +211,226,20,231,40,232,0,233,223,233,19,233,187,230,23,228,235,226,166,228,0,231,182,230,33,230,108,233,170,239,171,245, +135,249,159,250,133,251,130,254,201,255,188,252,80,250,219,250,18,250,143,247,3,247,189,248,83,252,242,1,17,6,89,6, +141,6,95,9,180,12,159,14,191,14,158,13,37,13,93,13,22,12,23,10,72,10,43,13,231,17,221,22,253,24,129,24, +218,25,248,29,3,33,62,33,174,31,166,28,3,25,221,22,167,22,170,23,195,26,80,32,35,37,43,38,123,37,20,39, +227,42,10,46,55,47,106,46,171,43,36,40,28,38,251,38,239,41,206,44,171,46,103,48,148,50,55,53,123,56,46,59, +61,60,144,61,169,63,179,62,14,58,213,54,245,54,34,55,250,53,2,53,13,53,134,54,227,57,78,62,232,65,101,67, +96,67,79,67,236,66,116,65,3,64,162,62,111,59,37,55,6,52,235,49,28,49,96,51,38,56,16,62,67,68,255,70, +88,68,41,66,196,68,171,71,107,70,242,65,42,60,252,54,153,51,46,48,158,44,210,44,75,49,112,53,27,54,153,51, +81,49,41,52,9,58,91,57,53,48,239,39,43,37,166,34,43,29,141,23,93,20,119,20,136,23,49,26,188,25,28,25, +97,27,58,29,221,26,79,22,226,18,165,16,173,13,151,7,236,254,151,249,153,251,120,0,133,2,155,2,65,4,232,7, +0,10,209,6,83,1,169,0,205,3,96,2,71,250,223,240,26,234,191,230,223,229,246,229,105,232,85,238,57,242,223,238, +127,232,55,230,164,232,152,235,169,235,90,233,38,231,190,227,53,220,212,211,174,208,23,211,157,215,129,219,237,220,146,220, +76,220,122,218,72,214,46,213,221,218,13,226,8,228,111,224,229,218,114,214,75,211,217,207,232,204,187,205,39,210,113,213, +246,212,76,211,118,211,27,213,189,214,80,216,66,218,13,220,114,220,182,218,20,216,132,214,104,213,137,210,118,206,96,204, +139,206,9,212,85,216,13,216,162,214,209,216,119,220,50,222,14,224,200,227,115,231,229,232,140,229,20,221,74,214,241,214, +234,218,186,220,65,221,93,222,109,224,157,227,189,229,28,229,200,228,128,231,207,235,4,239,54,238,104,233,86,231,222,235, +1,240,75,238,109,235,96,235,89,236,186,237,210,239,91,241,87,243,44,247,52,249,91,246,207,242,246,243,34,249,212,253, +146,254,4,251,73,246,190,243,57,243,133,243,2,246,48,251,114,255,209,255,215,253,120,252,242,252,139,254,179,255,162,0, +152,2,168,3,113,1,121,254,207,253,165,254,112,0,200,2,203,2,227,0,56,1,217,2,169,2,208,3,42,9,190,14, +147,16,183,14,53,11,58,9,168,8,38,5,232,255,182,255,58,4,243,6,95,6,111,5,91,6,161,9,112,12,177,12, +252,14,186,21,233,24,217,18,247,9,212,5,253,5,7,6,191,2,207,253,53,253,190,1,93,4,238,2,162,4,91,12, +217,18,221,18,69,16,46,16,175,17,77,16,209,9,159,1,141,253,222,253,150,252,125,247,82,244,135,248,113,2,160,11, +112,15,66,16,240,19,156,25,133,26,142,21,74,16,197,13,23,12,146,8,239,2,160,254,79,255,181,3,223,7,52,10, +203,11,85,15,253,21,125,27,170,27,137,25,50,25,38,25,23,23,92,19,112,15,32,14,151,16,60,19,106,19,181,18, +59,18,13,19,159,23,44,30,180,33,192,33,131,32,194,30,120,30,102,32,243,32,81,31,31,31,176,31,220,29,232,27, +240,28,131,31,144,34,95,38,114,40,22,39,139,37,185,38,204,40,62,41,55,40,155,38,130,36,16,34,213,31,196,30, +169,31,225,33,0,36,194,37,155,38,246,36,78,34,214,34,124,38,250,40,191,40,122,39,180,38,203,38,90,37,143,31, +208,24,244,22,138,24,229,24,154,24,229,25,243,27,245,28,117,27,49,24,107,23,77,26,165,27,215,24,231,21,148,21, +88,21,209,17,187,11,151,8,159,11,112,15,209,13,188,9,70,9,251,10,149,8,26,1,141,251,20,254,155,4,93,6, +196,2,104,0,210,1,169,2,93,254,187,246,1,243,233,245,182,248,186,245,209,240,201,239,188,241,96,241,7,236,198,229, +238,228,97,232,240,232,183,228,111,224,96,223,244,224,142,226,69,225,58,222,111,222,49,226,37,227,76,222,180,216,162,215, +230,217,198,218,224,215,78,211,22,209,14,210,148,210,190,208,182,207,49,209,253,209,37,208,10,205,252,201,124,201,227,205, +209,210,195,209,96,204,244,199,215,196,51,194,181,193,243,195,123,199,50,202,12,202,208,199,22,198,145,196,104,194,217,193, +232,195,138,198,38,200,52,199,42,195,180,192,137,196,54,203,62,206,56,205,64,204,138,205,211,206,157,204,64,200,31,199, +135,202,157,205,77,204,161,200,114,200,98,205,81,209,191,207,193,205,32,209,214,214,23,217,43,215,22,212,72,211,246,213, +80,217,106,218,191,218,153,220,133,222,155,222,155,222,223,224,28,228,204,229,50,230,192,230,111,231,177,231,231,230,218,228, +90,228,156,232,252,238,60,242,110,242,90,243,131,246,62,250,137,251,233,249,115,249,110,252,252,254,50,254,173,252,69,253, +236,255,227,2,201,3,9,3,165,4,208,9,181,14,59,16,38,15,225,14,158,18,41,24,65,25,110,21,4,19,168,20, +105,22,149,21,126,20,85,22,181,26,95,30,97,31,243,30,217,31,196,35,85,40,166,40,77,37,213,36,153,40,109,42, +40,40,35,39,153,42,219,46,57,47,83,44,2,43,225,45,83,50,172,52,212,52,145,53,6,56,91,57,137,55,25,54, +41,56,20,58,10,56,179,52,242,51,143,53,220,54,246,53,204,52,3,55,118,58,42,57,36,52,104,50,24,54,146,58, +25,59,47,56,31,55,249,57,107,59,22,56,70,52,139,51,65,52,12,52,26,49,184,43,238,40,82,43,117,45,79,43, +132,40,62,40,181,40,33,40,237,38,41,38,46,38,29,37,21,33,103,28,89,26,107,25,12,23,27,21,221,21,70,23, +178,22,119,20,11,18,182,16,158,16,1,15,64,10,158,6,206,7,91,10,201,9,24,6,59,1,198,254,121,1,52,5, +106,5,230,5,216,8,22,8,23,2,194,252,69,249,109,245,179,242,125,241,198,239,134,237,68,234,105,230,76,231,192,237, +119,241,154,239,73,238,23,239,139,238,94,236,58,233,96,229,100,227,15,227,240,223,142,218,5,217,225,220,53,225,135,225, +76,222,160,219,32,220,22,222,73,223,230,223,87,224,126,224,114,224,165,223,182,221,250,219,46,219,105,218,12,218,68,219, +216,220,62,221,210,221,92,223,20,223,85,219,75,215,212,214,51,218,25,223,44,227,121,229,49,230,253,228,197,225,234,222, +32,223,126,226,108,231,50,234,166,230,246,223,24,222,169,224,62,226,7,229,5,236,58,242,87,244,63,244,116,241,84,237, +209,237,24,242,166,243,98,242,222,240,70,238,74,236,175,237,151,240,107,244,214,250,115,0,168,1,31,1,247,0,157,0, +121,1,77,3,3,3,85,1,226,0,233,0,222,0,37,1,101,0,78,0,234,4,70,11,179,13,155,14,152,17,159,18, +222,14,15,11,203,10,196,11,88,11,250,9,211,9,58,12,35,15,83,15,86,14,27,17,60,24,37,31,203,33,204,31, +85,28,35,27,64,27,169,24,56,20,177,18,10,21,97,24,5,26,216,24,112,23,158,25,20,29,124,29,176,29,87,33, +74,37,184,38,39,38,20,34,22,27,52,23,120,24,35,26,113,25,226,23,123,23,164,24,245,24,255,22,63,22,150,24, +246,26,70,29,139,33,96,36,177,34,156,31,139,29,235,27,199,26,116,24,213,19,189,17,215,20,24,23,103,20,183,16, +22,16,162,18,174,21,122,21,134,19,44,22,31,28,199,27,187,18,51,9,123,5,165,5,138,4,174,0,9,254,91,255, +93,0,129,252,63,247,45,247,122,253,252,5,58,11,118,10,137,6,19,3,190,253,1,244,246,235,136,236,126,241,125,241, +241,234,5,228,48,226,96,229,224,233,53,238,32,244,190,250,208,253,179,251,187,246,201,242,9,243,40,245,240,242,184,236, +35,232,172,228,108,222,29,215,207,210,92,212,115,221,243,232,10,238,56,237,76,236,193,234,216,231,205,231,77,235,53,239, +164,241,198,238,120,228,126,217,32,212,117,210,220,210,186,213,151,216,103,219,15,224,15,226,128,222,81,221,199,227,164,235, +114,239,215,239,16,237,25,232,148,228,54,227,247,225,31,225,79,225,8,225,65,224,4,225,138,227,235,229,28,231,16,232, +109,234,35,238,26,241,198,242,233,244,131,246,170,243,66,237,119,233,144,234,153,236,15,236,249,232,193,229,222,229,60,234, +127,239,201,242,39,245,241,248,80,254,241,1,14,0,137,250,86,247,224,247,65,248,112,245,225,239,189,235,110,237,187,242, +125,246,71,250,64,1,252,7,53,11,20,12,121,11,19,12,54,17,6,21,56,15,119,4,175,253,195,249,113,245,166,243, +69,247,65,255,146,7,36,11,172,10,105,12,16,17,241,19,238,20,17,22,88,21,242,16,154,9,132,0,254,249,44,251, +203,1,165,7,168,11,205,14,167,15,24,15,17,16,208,17,14,19,181,21,196,24,114,23,170,17,206,11,205,7,184,6, +103,10,80,16,163,19,175,20,211,21,52,22,57,21,31,20,152,19,161,20,199,22,224,21,244,16,123,13,25,14,236,15, +44,17,50,17,129,15,235,14,183,16,109,16,13,13,95,12,184,15,93,17,224,13,10,8,144,5,180,9,205,16,194,20, +175,21,76,23,124,24,137,20,13,11,192,2,190,2,102,9,76,14,253,12,40,8,129,4,11,5,29,9,74,14,168,21, +38,32,59,39,182,36,231,28,253,22,229,19,247,17,61,16,180,13,231,10,251,8,108,7,77,7,115,11,104,18,84,23, +253,24,208,25,32,27,38,28,195,27,56,26,40,25,9,25,184,23,77,19,128,13,6,11,237,14,126,22,229,26,88,24, +3,19,86,18,0,23,182,26,103,27,127,29,232,32,240,31,147,26,192,22,183,22,131,24,102,26,128,26,233,23,52,21, +193,20,201,20,210,18,49,16,46,16,37,19,8,22,240,22,68,23,82,24,184,24,136,22,165,18,115,16,236,16,94,16, +131,12,122,8,53,7,0,8,92,9,162,9,118,8,222,9,123,16,12,23,138,23,16,19,141,14,108,13,247,13,217,9, +171,0,91,251,37,253,110,254,139,251,63,249,191,250,235,254,129,2,130,1,7,253,67,251,104,253,28,254,157,250,177,245, +104,243,153,244,82,245,137,242,68,239,123,238,233,237,150,235,28,233,65,232,157,233,229,235,195,235,178,232,130,230,42,231, +217,232,227,233,191,233,173,232,229,231,34,231,99,228,100,224,211,222,44,224,234,223,210,218,15,212,2,209,254,209,91,211, +11,212,250,213,49,217,246,218,150,217,137,214,233,211,26,210,114,209,20,210,1,209,226,203,115,198,171,196,62,197,154,199, +34,205,218,210,204,212,54,212,40,211,173,209,187,208,143,208,234,207,101,207,255,206,105,204,138,200,153,198,101,198,130,199, +181,203,114,209,196,212,34,213,22,212,97,210,203,208,211,207,82,208,146,211,209,214,208,212,177,206,182,202,218,202,250,204, +60,208,74,212,170,215,98,217,144,217,201,216,68,216,89,217,175,219,244,220,143,220,63,221,145,223,10,224,151,222,102,223, +206,226,169,229,233,230,50,230,241,227,225,227,213,230,179,231,53,229,173,228,81,232,193,236,41,239,238,239,211,241,153,246, +37,251,102,251,182,248,213,246,103,246,22,246,99,245,50,245,5,247,124,250,221,252,74,253,121,254,228,1,60,5,148,7, +8,12,57,18,16,19,47,12,98,5,34,4,139,5,5,7,82,8,243,8,128,11,109,17,110,20,61,18,240,19,153,28, +91,34,41,32,10,28,246,26,175,27,110,26,160,21,182,17,173,19,104,24,72,26,233,26,3,31,22,38,253,42,62,42, +197,38,250,37,42,39,135,37,144,33,48,32,95,34,239,35,193,33,118,30,82,31,150,36,136,41,102,43,228,42,182,41, +209,41,170,42,89,41,167,38,184,37,166,37,73,37,165,38,244,40,149,41,241,41,181,42,27,41,131,38,247,38,166,40, +198,39,169,37,12,37,235,37,13,39,116,39,28,39,84,39,233,40,27,43,231,44,211,45,193,45,99,44,48,41,192,36, +41,33,67,32,45,34,18,37,16,39,255,40,251,43,205,45,86,45,87,45,127,46,12,47,221,47,188,48,67,46,230,40, +27,36,157,32,64,32,66,37,97,42,205,41,85,39,228,39,15,42,97,44,193,46,215,47,29,48,38,48,77,45,220,39, +11,36,38,34,171,32,173,33,233,36,84,38,26,38,36,39,67,40,214,39,203,39,12,41,218,41,130,41,105,40,48,38, +235,34,183,31,74,29,18,28,25,28,156,27,119,25,76,24,26,26,235,27,61,27,201,25,26,25,68,25,76,26,170,25, +47,21,220,16,165,16,129,17,246,15,118,12,246,7,170,4,168,4,50,5,144,4,97,6,57,10,235,10,159,8,33,6, +255,2,55,0,84,255,77,254,100,253,8,255,255,255,153,252,131,247,115,243,172,240,224,239,83,239,127,237,221,237,147,240, +150,239,141,234,239,230,116,230,120,232,24,235,87,233,197,227,129,225,52,226,209,223,50,220,45,220,60,222,208,223,10,224, +49,221,139,216,189,213,44,212,239,209,27,209,11,211,12,213,138,212,25,210,200,208,47,210,201,210,94,207,39,204,11,206, +5,209,88,206,121,199,109,195,180,196,227,198,96,197,184,193,84,193,124,197,231,200,228,198,237,193,18,192,233,194,40,198, +102,197,3,193,68,189,220,188,220,189,204,189,225,189,32,192,96,195,147,196,210,194,79,193,14,195,19,197,80,195,242,192, +167,193,115,193,156,189,166,186,69,187,39,190,245,194,16,199,154,198,225,196,176,198,145,200,218,198,95,197,184,199,30,204, +162,206,1,204,236,197,107,195,40,199,184,203,240,204,190,204,31,206,20,209,20,211,108,210,45,209,80,210,137,213,170,216, +38,218,150,217,38,216,68,215,12,215,4,216,118,219,247,224,87,230,50,233,135,232,159,230,41,230,238,229,252,228,30,230, +229,233,247,236,207,237,34,237,176,236,49,240,147,247,88,252,33,252,231,251,65,253,160,252,118,249,102,247,248,249,148,0, +250,4,39,3,174,0,163,3,14,9,248,11,39,13,127,15,37,19,44,21,58,19,116,16,39,18,44,23,191,25,162,24, +227,23,119,26,133,30,3,32,33,31,225,32,205,38,234,43,94,44,76,42,185,41,58,43,210,43,230,41,226,39,229,39, +98,41,85,44,173,48,131,52,160,55,20,59,211,60,183,59,206,58,56,58,222,54,85,51,124,52,209,55,74,56,231,54, +78,55,51,58,155,61,209,62,97,61,206,60,16,64,184,68,236,69,12,67,217,64,18,67,101,70,122,68,206,61,235,57, +139,60,92,64,37,63,180,58,139,57,255,60,205,63,13,63,15,63,7,68,48,74,217,74,147,70,146,67,176,67,59,67, +163,64,171,62,211,62,59,62,175,57,251,50,206,47,191,50,3,56,113,58,223,57,152,58,47,62,166,63,75,59,110,54, +118,55,154,59,122,60,222,56,52,51,166,46,87,45,43,45,190,43,242,43,69,47,49,49,123,47,119,44,249,40,76,38, +119,39,199,42,218,43,221,42,114,41,100,39,105,37,151,35,6,33,37,32,90,34,252,34,101,31,113,26,248,20,6,15, +111,12,40,14,226,15,166,15,18,14,143,10,100,6,148,4,159,4,244,3,146,2,29,2,207,2,67,2,26,254,87,248, +1,245,174,243,36,241,12,237,119,233,245,231,226,231,13,230,102,225,250,221,160,222,131,225,210,228,93,231,129,231,246,230, +153,231,243,228,68,220,125,212,179,211,88,214,186,214,166,211,13,207,223,203,161,202,229,200,25,199,132,200,99,204,209,206, +125,206,93,204,143,202,131,203,30,205,36,202,174,195,104,192,135,193,252,193,71,191,36,188,170,187,199,188,35,187,210,181, +86,178,1,181,160,186,235,189,130,190,109,191,48,194,167,196,131,195,156,191,4,190,105,192,252,193,192,190,36,185,14,182, +128,182,250,182,226,180,29,179,32,182,152,188,80,193,82,195,53,198,65,203,90,207,154,207,236,204,72,202,177,200,253,198, +245,196,46,196,250,197,157,201,247,203,209,202,40,201,57,203,136,207,189,210,241,213,98,218,10,222,235,223,21,224,187,221, +1,219,71,219,137,220,146,219,67,218,182,218,102,220,32,223,34,225,128,224,40,225,110,230,19,235,255,234,76,234,17,236, +187,238,251,240,88,241,212,239,18,241,65,246,5,249,240,246,9,245,203,245,51,247,161,247,150,246,24,246,161,249,91,255, +36,2,126,2,64,4,150,7,117,10,248,10,52,8,52,5,234,5,131,8,221,8,84,7,138,6,161,7,244,9,17,11, +17,10,172,10,3,15,218,18,198,18,154,17,2,19,163,22,32,25,65,23,76,18,2,16,141,18,216,20,86,19,31,18, +152,21,183,26,139,27,228,23,107,21,179,23,85,27,5,27,207,23,138,23,58,27,45,29,21,26,50,22,69,23,239,28, +239,32,214,30,224,25,86,24,253,26,121,29,255,28,7,27,254,26,158,29,135,30,160,26,128,22,149,23,149,27,25,29, +33,27,204,24,122,25,16,28,207,26,148,20,128,16,222,18,167,23,170,26,15,28,135,29,2,32,73,33,214,29,179,23, +60,20,133,19,184,18,30,18,118,18,33,19,214,19,152,19,248,18,118,22,93,30,99,35,125,34,167,32,70,32,17,31, +175,28,191,26,12,26,99,26,25,26,1,24,2,22,228,21,70,23,128,26,102,31,9,35,122,36,7,38,247,38,118,36, +114,32,104,31,23,34,69,38,219,40,82,38,139,31,160,27,120,30,8,35,113,36,91,37,156,41,45,47,152,48,185,43, +201,37,126,38,17,45,225,48,191,46,141,43,225,41,26,40,69,38,17,38,159,40,11,46,10,51,167,50,18,45,142,39, +105,38,101,42,71,48,109,51,231,51,195,52,180,52,239,48,86,43,172,38,117,35,7,35,217,37,160,40,217,40,142,39, +46,38,90,37,103,37,136,37,211,36,163,35,192,34,85,35,77,38,88,41,4,40,198,33,253,26,215,22,46,20,128,17, +8,16,183,16,172,17,151,16,177,12,120,7,81,5,243,8,58,14,0,16,74,15,253,14,54,15,249,14,244,11,251,4, +102,255,199,255,48,0,150,249,120,239,203,233,211,235,99,242,225,245,188,242,192,238,46,239,50,241,21,241,61,239,170,237, +244,237,238,237,243,232,36,225,166,221,119,222,100,222,114,220,208,217,198,214,28,212,29,209,139,205,153,205,71,210,2,213, +159,210,62,207,114,205,157,204,25,204,46,203,110,203,26,207,242,209,109,206,11,200,59,197,202,197,189,197,207,193,87,186, +180,181,221,183,170,186,39,185,208,184,34,190,154,196,235,198,4,197,230,193,141,192,130,192,192,190,159,187,249,185,42,185, +249,182,53,180,180,178,68,179,173,181,80,183,79,182,96,182,171,186,33,191,88,192,77,193,98,195,8,196,111,195,164,194, +33,192,14,189,47,188,191,187,209,186,178,188,252,191,104,192,119,193,204,199,132,207,65,212,149,214,97,214,230,211,230,209, +160,208,112,207,73,209,194,214,224,218,205,217,134,212,29,208,78,210,81,217,145,221,157,222,9,226,142,231,238,234,38,235, +138,233,233,233,20,240,81,247,5,247,132,240,236,235,179,235,148,236,202,236,223,238,136,245,207,252,96,254,222,252,120,255, +136,5,234,9,88,11,83,11,96,12,88,15,153,15,35,11,194,9,90,16,162,23,81,24,57,20,232,16,207,17,82,21, +192,22,230,22,150,27,52,36,73,41,119,39,186,34,201,32,94,35,195,38,119,39,223,38,244,38,73,39,111,40,30,43, +176,45,240,47,187,51,87,55,248,54,243,51,55,51,184,53,83,56,203,57,240,58,105,58,219,54,56,51,200,50,246,52, +127,56,78,60,3,62,166,62,65,66,138,70,88,69,141,64,62,63,113,66,74,69,108,67,204,60,170,54,184,53,135,55, +128,55,166,54,177,56,146,61,52,65,193,64,241,62,221,63,30,66,83,66,110,65,233,64,141,63,70,61,184,58,238,54, +221,50,59,49,94,49,218,48,144,47,56,46,91,45,192,45,186,46,89,47,128,48,106,49,220,46,54,41,254,36,88,36, +205,36,46,34,193,26,240,18,207,16,63,18,212,15,134,9,54,6,142,8,102,13,9,17,40,17,168,15,147,17,183,20, +192,15,101,2,148,246,10,240,172,235,103,234,92,237,64,240,171,239,175,235,53,230,223,228,119,235,224,245,55,0,137,9, +146,11,99,1,27,241,164,225,208,212,14,206,12,205,32,203,219,200,105,203,176,206,180,206,196,208,159,215,85,225,224,236, +40,243,94,236,176,223,142,215,149,209,142,202,65,197,226,192,206,188,41,189,178,192,248,193,14,194,36,196,112,199,255,202, +40,206,144,208,255,211,238,214,166,212,39,207,14,204,248,202,120,202,212,203,192,205,46,207,185,209,215,210,224,206,184,200, +213,195,230,192,4,195,112,202,204,208,185,211,88,214,155,216,199,218,54,224,180,230,158,232,51,230,115,225,147,218,122,213, +124,213,195,214,243,213,184,212,204,211,34,212,68,217,156,226,127,236,200,247,205,3,197,8,50,3,172,248,211,237,77,229, +175,227,170,232,77,238,114,242,163,244,151,241,109,236,198,238,247,249,253,6,166,17,224,23,25,24,84,21,245,17,30,12, +74,6,22,6,84,9,6,10,105,7,156,3,65,2,14,8,11,19,11,28,236,33,183,38,96,39,89,34,166,28,149,26, +167,28,177,33,131,37,199,35,93,30,176,26,51,27,186,31,87,39,227,46,72,50,246,48,128,45,199,40,223,34,161,31, +94,34,123,39,28,42,10,42,203,39,62,37,62,40,134,49,91,57,9,60,72,60,62,58,209,53,75,50,227,47,161,44, +34,42,218,40,244,37,188,33,10,31,196,31,11,38,74,48,85,55,25,56,114,54,162,52,82,50,75,48,237,46,244,46, +115,49,92,50,102,44,239,34,50,29,33,28,168,28,247,28,149,28,65,28,137,28,108,28,121,27,230,25,0,23,155,19, +17,18,92,18,61,19,59,20,138,19,219,15,238,10,180,5,41,0,158,253,90,0,150,4,184,5,85,2,213,250,209,242, +65,239,70,240,27,243,69,247,96,251,51,251,109,245,201,237,87,233,151,235,220,243,176,252,168,0,27,254,56,246,64,236, +48,228,151,223,235,222,51,228,116,237,79,241,187,234,112,225,188,221,200,221,26,222,86,224,101,228,63,230,125,227,182,220, +191,213,217,212,48,218,56,222,162,222,36,225,225,230,225,233,102,230,209,222,33,217,137,216,143,215,104,208,8,201,69,202, +225,208,183,211,184,209,190,209,91,216,236,224,208,227,61,227,219,231,212,240,146,244,207,238,65,227,27,216,77,210,21,209, +180,207,57,206,96,208,42,213,139,216,250,217,69,220,237,225,181,233,22,239,231,240,91,242,193,242,194,237,165,228,218,221, +162,220,243,222,205,224,106,224,173,224,190,228,41,234,148,236,34,237,81,240,170,245,215,246,198,240,202,233,6,234,101,240, +109,244,179,241,42,237,168,237,184,241,119,242,82,240,48,243,100,252,77,3,4,2,234,252,100,251,197,253,33,254,34,251, +255,250,13,0,188,3,68,1,137,252,249,251,154,0,79,4,105,1,45,252,233,252,237,1,35,3,19,0,72,255,225,3, +18,10,213,11,4,9,196,8,160,14,51,20,255,18,7,13,230,7,73,5,227,2,44,0,245,0,157,6,198,11,61,12, +96,10,28,10,133,13,32,20,17,26,126,29,16,33,99,35,223,30,139,21,24,16,24,18,128,23,48,25,208,19,241,13, +216,14,86,17,109,14,211,11,250,16,89,26,5,32,202,29,240,21,153,17,216,21,12,27,239,25,54,23,207,24,18,28, +76,28,173,25,115,24,57,28,64,34,92,35,17,30,83,24,179,21,193,19,7,17,120,16,89,20,76,26,28,30,149,30, +118,30,191,32,131,36,69,38,244,37,101,39,133,43,2,46,68,43,217,36,114,31,140,29,102,28,200,24,114,21,244,22, +5,28,47,32,190,33,88,33,174,32,124,33,183,34,208,34,47,36,204,40,154,44,153,42,134,35,240,27,50,23,226,21, +119,23,88,27,101,31,250,31,149,27,126,20,161,14,7,13,121,15,189,18,231,20,102,22,195,22,241,20,106,17,234,13, +199,13,3,19,61,24,248,21,12,14,185,7,244,4,58,4,17,5,72,6,153,6,194,5,151,2,251,253,92,253,94,3, +13,11,22,14,169,10,111,3,237,252,101,249,55,248,228,249,4,255,14,3,44,255,243,243,52,235,207,236,26,245,202,251, +93,255,116,1,53,255,239,245,169,232,211,221,254,219,185,227,70,235,173,233,183,225,100,218,47,215,27,218,135,225,34,232, +123,236,162,238,160,234,1,225,147,217,37,216,152,219,21,227,104,233,91,231,105,222,133,213,179,208,186,209,146,214,52,217, +176,216,185,216,8,216,46,212,97,208,198,207,211,210,167,217,225,223,232,222,5,217,169,214,43,218,59,223,161,224,149,219, +70,211,108,205,107,201,148,195,243,190,18,193,35,200,203,205,176,207,107,208,240,210,160,215,25,221,254,225,178,228,94,227, +119,222,88,217,116,214,119,212,151,208,223,202,61,199,90,201,55,207,30,211,94,212,126,216,184,224,223,229,246,226,231,220, +35,220,173,226,209,233,32,234,188,229,255,227,226,227,180,223,42,219,233,221,253,229,78,236,232,237,102,235,251,231,23,231, +158,231,161,232,204,237,250,245,221,248,172,243,192,235,223,230,80,233,69,242,130,249,4,251,135,251,172,250,151,242,159,231, +82,229,71,238,114,251,204,4,254,5,241,1,34,0,177,2,213,5,209,8,232,13,214,18,160,17,57,8,179,251,142,244, +150,247,213,0,132,8,255,12,63,17,176,19,141,17,67,16,57,23,216,35,122,44,218,42,252,32,1,23,176,17,235,13, +10,11,53,14,36,21,104,22,29,17,208,12,210,14,38,24,1,36,115,42,177,44,21,49,173,50,115,42,9,33,252,33, +248,41,60,46,179,41,169,32,151,28,119,31,250,32,212,30,51,33,122,42,193,49,245,46,248,36,30,32,89,39,16,49, +207,49,172,45,209,45,179,49,133,51,45,48,211,42,66,43,45,49,143,49,240,41,163,36,221,37,154,40,3,42,22,42, +232,42,34,48,140,53,102,51,103,47,141,51,77,58,116,57,193,50,224,44,72,43,48,45,248,43,199,37,239,37,230,48, +49,56,22,51,74,44,168,45,164,52,45,58,82,56,3,49,235,46,233,50,120,47,9,34,120,25,240,28,232,35,18,38, +115,35,168,34,185,41,148,50,253,49,132,43,176,42,4,46,237,44,179,38,143,31,183,27,142,28,128,27,197,19,251,13, +158,16,51,19,27,15,125,9,182,7,183,10,9,16,48,17,245,13,179,15,70,23,161,25,118,19,163,12,71,10,90,10, +48,7,234,253,245,244,134,243,141,245,21,244,108,240,25,239,15,242,213,247,131,251,13,252,219,254,20,4,33,5,182,0, +108,250,214,244,14,243,74,244,230,241,219,235,149,232,231,230,190,226,108,223,149,223,118,225,32,229,201,232,59,232,186,229, +32,229,199,227,9,225,153,224,67,225,112,224,170,223,47,222,171,218,158,217,101,220,132,220,252,215,37,212,91,211,185,211, +34,212,250,212,168,215,195,219,111,220,72,215,210,209,229,208,233,209,58,209,107,207,148,206,198,207,208,209,56,209,32,205, +90,202,1,205,105,210,141,213,153,213,231,212,165,212,142,211,65,208,97,204,50,203,35,204,121,203,49,201,142,200,211,201, +106,203,218,205,74,209,158,212,142,216,55,221,50,223,219,220,221,217,115,217,191,217,255,214,53,209,164,204,204,203,210,203, +103,202,206,202,93,208,246,215,32,219,50,216,245,212,101,215,209,221,24,226,243,225,124,223,75,221,104,220,84,219,19,217, +6,217,171,221,215,226,40,228,242,226,146,225,243,224,10,227,165,232,183,238,111,241,143,239,41,235,247,231,56,231,7,231, +223,230,148,232,112,236,220,239,62,240,134,238,118,238,7,241,89,243,70,244,226,244,179,244,148,243,70,243,9,244,160,244, +104,244,211,242,32,241,254,241,167,243,89,242,248,240,184,244,238,251,252,0,184,0,194,252,186,251,133,1,46,8,19,9, +78,6,44,4,54,3,150,2,21,1,67,255,196,0,22,5,49,6,203,2,133,255,85,255,94,3,72,11,210,18,26,23, +248,25,135,27,189,25,103,22,85,21,13,24,233,28,135,30,118,25,216,18,99,16,191,15,161,14,222,16,156,24,233,33, +194,38,10,36,75,30,58,30,8,36,49,39,49,37,171,36,88,41,78,46,182,44,152,36,25,30,12,32,92,39,127,44, +18,46,10,48,116,51,174,52,119,49,49,45,94,45,148,50,144,55,14,56,185,53,86,52,152,52,179,53,236,55,255,58, +65,62,175,65,49,67,111,64,50,61,60,62,89,64,75,63,100,61,19,60,93,57,130,54,228,52,194,50,178,50,16,57, +20,65,91,67,239,65,118,66,48,69,243,70,51,69,158,64,51,61,73,60,103,58,189,53,95,48,202,44,207,44,193,47, +184,49,46,49,191,48,3,49,243,47,48,45,85,41,112,37,76,36,64,38,35,39,250,36,68,34,250,31,194,28,137,25, +140,24,39,25,186,24,122,22,159,19,236,16,138,14,249,12,168,11,85,9,114,7,31,8,167,8,190,5,106,3,158,6, +111,10,16,7,15,255,136,250,172,250,68,251,17,250,182,246,155,242,176,241,183,243,5,242,210,234,241,228,245,227,56,228, +34,227,166,225,225,224,42,225,20,225,147,222,12,219,152,217,47,218,252,218,250,218,208,217,22,216,195,213,141,209,117,205, +14,205,255,205,183,204,166,203,130,203,215,199,52,193,0,189,200,188,98,192,156,199,125,205,152,205,72,203,116,202,47,201, +83,197,186,192,102,190,102,190,55,189,129,185,218,182,162,182,218,181,97,180,250,180,93,184,240,189,32,195,192,195,42,194, +253,196,175,201,163,200,97,195,14,192,201,190,253,188,165,186,170,185,101,188,230,193,32,197,229,195,228,193,140,195,5,202, +164,209,242,212,166,212,94,213,7,213,94,207,233,200,79,200,235,204,61,211,62,216,181,216,98,214,64,215,99,219,174,221, +32,222,227,224,163,229,185,231,131,229,35,227,95,229,86,235,116,239,189,238,132,236,132,237,174,240,156,240,35,237,92,237, +151,244,155,252,61,255,159,254,170,255,2,2,212,1,192,254,155,252,7,254,209,1,132,5,74,8,195,11,102,17,251,21, +177,20,19,16,68,15,71,18,74,19,205,17,106,18,36,22,79,25,139,25,22,25,239,27,78,34,170,39,249,39,120,36, +78,34,218,35,218,36,157,33,64,31,236,36,65,48,25,56,230,54,247,46,99,40,226,40,138,44,73,45,28,46,143,52, +180,60,228,61,40,55,2,49,5,52,113,62,230,69,89,69,115,66,103,66,123,66,150,62,169,56,1,55,24,60,237,65, +33,66,232,63,71,65,158,67,80,66,60,65,252,68,128,73,177,73,250,70,103,68,169,67,243,69,199,71,83,67,254,59, +77,58,69,60,107,58,237,54,252,55,90,60,145,63,168,63,135,61,15,62,215,67,61,72,76,69,2,63,115,58,127,55, +180,52,210,47,28,41,70,39,94,44,177,47,76,45,228,42,212,41,227,38,64,35,52,33,216,33,76,38,39,41,123,34, +120,23,137,19,225,20,123,18,105,12,25,9,148,11,175,16,69,17,30,11,202,5,67,7,73,10,7,7,52,254,92,247, +6,247,177,248,195,245,186,240,191,240,1,245,19,247,135,245,197,243,31,244,185,245,35,245,245,239,126,232,173,226,225,223, +60,224,210,226,249,227,57,225,33,221,235,218,51,218,204,216,85,213,194,208,109,206,157,207,33,209,20,209,250,209,249,213, +196,220,75,228,64,231,208,225,43,216,53,207,79,197,85,187,151,183,0,186,77,188,249,188,245,189,57,192,143,197,253,204, +224,209,207,212,44,217,156,219,231,216,81,212,45,207,171,200,150,195,40,192,181,187,56,185,101,186,180,185,120,183,21,187, +10,196,225,203,190,207,158,206,56,203,233,204,132,211,95,215,79,215,140,213,186,207,34,199,222,193,26,193,48,195,173,199, +122,203,1,205,130,207,24,210,121,208,83,205,6,206,137,210,223,216,80,222,76,223,180,221,31,222,130,222,139,219,242,216, +129,218,34,221,168,219,4,214,34,211,6,217,216,226,88,231,142,230,149,230,137,233,203,237,211,239,121,236,225,231,90,233, +92,238,236,238,136,235,249,233,67,235,194,236,188,236,247,235,66,237,177,240,115,242,95,242,204,244,220,249,107,253,133,254, +17,255,194,255,18,0,224,254,85,252,153,251,112,253,250,252,133,248,75,246,186,250,87,2,166,7,230,8,236,8,197,11, +202,15,156,14,247,7,59,3,211,4,29,10,93,13,248,9,54,2,7,255,6,4,202,10,102,13,32,12,186,9,57,9, +168,10,144,9,135,5,77,5,73,11,176,17,255,19,97,18,117,15,3,16,69,21,219,24,172,22,148,19,40,20,4,22, +56,21,136,17,64,14,8,15,117,19,55,23,152,23,132,22,119,24,124,31,70,39,151,41,142,38,243,34,155,32,243,30, +142,30,32,31,196,30,90,29,113,28,132,28,78,29,228,30,202,32,135,34,165,37,239,42,17,46,217,42,228,37,243,38, +79,45,223,50,63,53,80,53,178,52,163,52,103,50,80,43,84,37,216,39,122,47,127,52,115,53,225,52,125,53,167,56, +248,59,146,61,48,64,95,68,130,70,30,70,40,68,49,63,204,57,53,57,87,59,15,59,128,57,105,57,16,58,188,58, +135,59,185,60,210,63,108,68,252,70,119,70,99,69,211,68,138,67,170,64,166,61,69,61,121,62,87,60,248,54,29,52, +231,53,209,57,196,60,46,59,2,54,228,52,202,56,107,56,13,50,210,46,37,49,100,50,107,47,105,42,132,38,252,37, +47,38,187,33,203,26,97,25,4,30,44,33,75,31,147,28,96,29,161,31,244,28,67,19,242,8,139,5,14,8,140,8, +9,3,41,253,24,254,31,3,56,3,238,253,84,252,39,1,209,3,94,254,30,245,168,238,60,237,161,238,136,237,95,232, +249,229,32,234,143,236,219,230,205,223,144,222,188,223,204,221,252,216,161,212,225,210,33,210,191,207,100,206,225,209,232,213, +251,211,11,206,141,201,153,199,81,198,238,194,183,188,137,185,111,190,242,196,202,195,205,188,4,184,68,184,205,185,252,182, +164,175,229,171,141,176,50,182,42,181,174,176,123,174,162,174,63,175,90,175,200,174,32,175,65,177,246,178,47,178,249,174, +226,170,157,169,231,172,224,175,48,174,104,170,167,167,155,166,220,168,180,172,64,173,19,173,49,178,161,184,118,185,137,182, +206,179,4,179,164,183,114,192,82,197,61,196,251,193,179,190,87,185,204,181,112,181,136,181,77,182,242,184,23,188,244,190, +148,193,123,196,8,203,147,214,142,225,90,230,132,228,224,221,18,214,160,208,89,204,53,200,211,200,106,208,96,217,106,222, +104,224,156,227,125,234,174,241,149,243,174,240,198,237,46,237,73,239,195,242,186,243,233,242,119,246,196,253,111,1,45,0, +100,254,16,254,255,255,66,4,66,7,41,7,254,7,80,12,250,16,152,18,5,17,19,14,38,12,190,12,104,15,142,18, +124,21,108,25,167,30,17,34,50,34,235,34,76,38,96,40,212,38,68,36,103,34,59,33,19,34,85,37,200,40,194,42, +218,43,221,45,248,49,247,53,158,53,74,49,9,47,122,50,91,55,104,55,176,51,191,51,177,58,22,66,187,66,39,62, +188,59,171,62,220,65,27,63,161,56,111,54,81,58,110,61,244,58,191,54,96,55,9,61,251,64,141,62,79,58,247,59, +39,67,36,72,82,70,177,64,125,60,58,59,95,58,151,55,200,51,72,49,206,48,204,49,194,51,243,53,125,55,77,56, +145,56,48,56,72,55,105,53,81,49,18,44,105,41,56,42,249,42,62,41,99,38,44,37,64,39,114,42,198,41,40,37, +84,34,144,34,186,32,221,26,9,20,82,15,234,14,12,17,164,14,203,6,37,3,205,7,37,13,192,14,103,16,139,20, +239,25,61,29,167,24,109,11,197,254,86,250,92,251,77,251,241,246,63,240,248,236,92,238,33,239,210,239,211,247,197,5, +39,16,151,19,102,17,145,9,185,255,132,248,16,242,118,235,100,233,184,234,146,232,53,227,170,223,79,223,34,227,54,235, +128,241,198,241,106,240,151,240,56,239,138,235,115,233,36,235,197,238,211,240,117,239,226,235,46,231,18,225,26,219,115,215, +54,214,29,216,164,221,24,227,221,229,199,232,230,236,92,239,34,240,210,240,46,240,122,237,15,234,232,230,116,229,148,229, +216,226,224,219,250,214,158,216,121,221,112,224,238,223,152,223,43,229,26,239,215,244,249,243,75,242,85,243,122,245,118,244, +64,236,60,225,41,222,214,226,41,228,11,224,188,222,131,227,186,235,165,244,205,249,190,248,143,246,63,247,33,246,142,239, +30,233,184,233,64,240,172,245,160,244,247,237,99,231,200,229,184,232,9,236,121,237,117,238,58,240,70,242,1,245,102,249, +48,254,157,1,228,3,23,4,193,254,217,243,158,233,250,229,105,233,132,241,85,250,69,254,122,252,223,251,253,255,119,2, +229,254,165,250,27,251,30,254,54,254,4,249,147,243,187,246,192,1,222,8,157,6,230,1,145,0,197,0,115,254,113,248, +223,243,14,248,36,2,26,7,15,4,94,255,2,253,55,253,242,254,41,255,125,253,78,253,43,254,217,253,247,254,76,2, +239,3,38,5,153,9,117,12,62,8,44,1,84,253,153,253,141,0,179,2,30,1,215,255,22,4,70,10,173,11,27,9, +70,9,220,15,31,24,15,26,36,22,179,20,254,23,202,25,111,22,36,16,206,10,14,10,217,13,75,17,238,17,184,18, +184,21,48,26,76,31,48,35,159,35,143,33,93,31,248,28,246,24,123,19,216,15,168,18,52,27,33,34,34,34,74,29, +143,25,237,27,230,34,15,38,88,34,36,32,158,36,140,40,230,36,210,28,112,24,128,28,54,36,44,36,33,26,130,17, +237,17,123,22,72,25,79,26,100,28,33,35,32,45,158,48,15,40,125,27,52,20,60,17,121,13,22,7,29,0,6,254, +51,4,20,13,125,16,131,15,79,17,245,22,131,26,1,24,122,17,37,11,78,7,123,5,191,3,194,1,155,2,188,8, +99,16,156,18,29,13,28,3,175,248,39,241,48,238,40,238,70,239,236,242,113,249,3,255,56,1,83,2,70,5,7,11, +46,17,193,16,83,5,187,244,26,231,229,220,214,212,225,209,144,213,233,221,40,232,172,239,43,242,99,245,68,253,42,3, +105,1,221,250,14,242,156,231,218,222,131,216,92,210,47,207,195,209,132,213,215,215,115,220,115,227,87,233,2,238,100,240, +191,236,187,228,59,222,210,218,198,216,184,215,185,215,233,215,88,215,146,214,222,215,162,219,37,223,220,225,142,229,53,232, +246,229,66,223,116,215,193,210,8,213,233,219,3,224,142,223,135,222,21,222,178,220,231,217,134,214,253,213,248,218,215,224, +33,225,127,220,222,215,219,215,247,221,161,227,103,226,0,225,100,230,171,234,141,231,210,227,39,227,223,226,94,228,236,229, +204,224,226,216,135,215,177,218,29,222,177,228,190,236,194,240,73,243,248,247,231,251,242,252,110,250,43,243,91,236,250,235, +92,236,32,231,112,226,195,228,171,234,79,239,96,241,195,242,206,249,85,8,160,19,60,18,128,9,245,2,217,255,242,252, +4,249,220,245,21,247,3,253,132,1,213,255,179,252,34,0,29,10,191,19,117,24,9,24,103,19,117,13,124,10,163,10, +45,11,34,13,233,17,84,21,98,20,217,18,209,19,242,21,240,24,94,29,235,32,41,33,251,29,193,24,250,21,162,26, +177,35,254,40,169,41,222,42,155,44,214,42,69,38,40,35,34,35,152,36,89,36,89,32,21,28,242,29,243,37,211,45, +120,50,210,53,35,57,21,59,75,57,163,51,173,47,96,50,24,54,97,50,100,42,40,38,116,37,29,37,156,38,220,43, +174,52,131,62,96,66,244,60,62,55,26,58,110,64,227,64,24,59,245,52,27,51,242,51,51,49,1,43,35,42,203,48, +31,54,211,52,166,48,80,46,177,47,86,51,82,53,74,53,138,54,204,55,178,52,104,46,40,42,231,42,202,47,124,52, +181,52,15,49,26,44,124,38,11,34,105,33,79,35,20,37,43,38,49,38,154,37,219,37,79,37,159,34,159,33,13,35, +236,32,22,26,131,19,88,14,112,10,110,10,31,12,49,10,137,6,61,5,174,4,229,3,193,4,36,6,163,6,101,6, +142,1,1,246,88,236,57,236,238,239,40,239,196,234,176,231,241,231,193,233,53,233,50,230,174,230,58,237,23,243,175,240, +168,230,221,220,129,218,149,221,81,221,26,216,148,213,229,215,158,216,145,213,239,210,57,211,105,214,53,218,161,216,131,208, +122,202,225,202,183,202,143,198,205,196,100,200,179,204,165,206,124,206,50,204,111,200,63,196,58,191,27,186,236,183,129,185, +228,187,50,189,95,191,160,195,210,197,181,193,14,187,73,185,64,189,96,194,115,197,68,197,208,194,159,193,37,194,4,193, +18,191,79,192,5,195,143,194,84,191,150,188,185,187,171,188,166,190,91,193,76,197,180,200,178,200,107,198,228,196,12,197, +200,199,146,204,27,207,49,206,121,205,231,204,235,202,184,203,41,209,79,213,33,213,190,210,78,206,65,202,20,205,196,213, +125,220,238,223,60,227,101,228,144,224,233,218,226,216,165,220,228,227,58,234,74,237,150,237,63,236,136,234,190,233,253,234, +80,239,204,243,242,240,104,230,38,223,173,225,189,232,229,239,192,247,178,254,143,2,147,3,96,0,51,249,240,244,16,248, +29,253,161,253,113,250,78,248,100,250,230,255,17,5,190,7,9,9,200,9,40,9,28,7,175,5,83,7,200,11,210,15, +213,16,205,14,170,11,77,11,55,16,39,23,133,27,238,28,71,27,147,21,138,15,228,13,38,15,105,16,9,18,128,19, +193,19,186,19,179,18,223,15,0,16,77,23,120,33,180,38,148,35,188,27,239,23,155,27,186,30,147,26,13,20,33,18, +253,20,171,24,0,25,149,23,17,29,133,42,64,51,232,47,217,40,42,39,176,42,79,46,173,44,144,38,74,36,38,40, +69,41,13,36,30,33,242,38,74,49,228,55,66,55,141,51,13,50,82,49,215,46,77,46,149,49,20,51,233,47,161,44, +233,44,9,48,198,51,95,53,111,52,122,52,104,54,163,53,154,48,25,45,46,48,46,55,73,59,84,57,9,53,158,52, +16,57,150,60,192,58,64,55,188,55,0,58,75,56,42,52,155,51,35,55,194,58,116,59,114,55,64,48,231,43,145,44, +227,44,211,42,77,43,239,46,194,47,222,43,59,39,144,36,47,36,118,37,162,37,177,34,0,31,198,28,76,26,252,22, +185,21,49,23,73,24,3,23,42,20,155,17,14,17,180,17,254,15,20,11,3,7,197,6,120,8,237,8,177,7,223,6, +122,7,203,6,134,2,251,253,230,253,23,2,22,7,63,9,202,5,10,254,81,246,28,239,118,231,64,228,210,233,147,242, +103,245,83,240,236,232,214,230,247,235,158,241,120,242,86,241,143,239,107,232,156,219,219,207,28,202,111,203,89,210,34,217, +142,218,100,216,233,214,198,214,78,215,166,216,97,218,47,219,198,216,150,209,245,200,201,196,2,198,63,201,238,204,219,208, +85,211,219,210,203,207,221,203,150,201,253,201,126,202,63,200,203,196,216,195,42,197,232,196,159,194,26,195,195,200,20,207, +125,208,216,204,137,200,19,200,124,203,73,205,93,201,31,195,0,192,189,191,69,191,162,190,201,191,103,195,198,200,2,206, +81,208,242,206,235,204,114,205,49,208,55,211,147,213,240,213,102,211,141,208,78,208,14,209,168,208,211,208,31,211,13,214, +12,216,15,217,205,218,33,224,11,232,222,236,152,236,108,235,196,236,92,240,55,243,111,240,55,232,87,227,242,230,197,236, +73,238,37,237,20,238,74,243,25,250,200,252,128,251,78,253,110,3,214,6,69,4,82,255,205,251,235,251,200,255,224,4, +60,10,180,16,97,21,158,19,94,12,196,5,93,5,169,11,69,19,251,22,201,23,63,25,230,27,68,30,101,31,148,32, +208,36,243,42,252,44,131,41,77,37,148,34,209,32,74,33,50,36,183,39,232,42,20,44,134,42,223,42,248,47,114,53, +40,57,196,61,10,66,24,67,251,65,248,62,67,58,213,55,235,54,54,49,43,41,247,39,71,46,102,54,78,61,250,65, +145,70,200,78,174,85,136,82,18,73,19,68,6,69,253,69,27,66,59,56,161,46,161,46,59,55,41,63,8,67,119,69, +66,71,55,72,190,72,43,72,195,70,175,70,234,71,136,71,190,67,236,61,10,57,255,54,190,55,1,58,43,59,79,57, +65,55,205,56,44,59,135,57,218,53,33,53,220,55,102,58,215,55,25,47,199,39,203,41,250,48,238,50,8,45,129,37, +19,35,61,37,254,35,249,27,177,20,253,18,242,17,31,15,7,13,140,10,30,8,164,11,74,20,36,26,209,27,117,27, +48,22,96,12,8,4,94,253,170,244,246,235,252,229,65,225,176,222,16,225,228,230,104,238,40,248,72,0,134,0,132,250, +142,245,159,243,135,240,34,233,159,222,120,212,1,205,249,199,169,196,101,196,163,201,38,212,97,222,61,225,78,220,164,214, +98,213,147,214,129,214,0,212,100,207,91,202,79,199,35,198,180,196,212,194,213,193,131,193,184,192,50,191,22,190,87,191, +0,195,226,197,202,197,136,196,174,196,130,198,80,200,174,199,203,196,125,195,199,196,53,196,155,191,70,186,119,183,113,184, +90,188,85,190,156,187,253,185,164,190,113,197,105,201,59,203,201,203,203,202,138,201,3,200,175,196,220,192,48,191,98,191, +225,190,243,187,20,185,196,187,169,195,165,201,18,204,84,208,241,214,59,219,119,219,21,216,231,210,9,209,208,211,40,213, +155,209,188,203,56,198,11,197,105,204,222,215,23,223,142,226,130,230,55,233,246,231,219,227,11,223,252,220,57,224,27,228, +16,226,54,220,218,217,141,221,54,228,173,233,240,236,168,240,38,245,133,245,104,239,106,232,158,231,127,237,155,243,132,243, +235,238,178,237,128,242,183,247,131,248,56,246,65,245,178,248,99,254,24,0,189,252,114,251,163,0,82,7,62,9,134,6, +50,3,147,2,248,4,36,7,62,6,25,4,235,3,8,5,1,5,25,4,183,4,231,8,29,16,204,21,194,21,53,18, +56,16,150,16,88,17,79,17,56,15,183,11,162,10,58,12,59,11,76,6,36,3,73,6,129,14,59,23,60,28,117,29, +131,30,147,33,182,37,162,39,143,34,23,23,55,14,38,13,192,14,159,14,166,14,59,17,31,24,80,34,209,40,90,41, +60,44,197,51,158,54,10,49,65,40,45,32,179,28,17,32,39,35,51,32,151,29,61,32,192,35,45,37,126,36,214,33, +34,35,13,45,96,55,47,57,253,53,130,52,76,55,150,61,8,64,105,56,189,46,141,45,74,49,242,49,102,46,190,40, +75,38,115,45,106,58,99,67,196,71,8,76,60,79,39,79,165,75,93,68,143,60,186,58,128,63,84,69,9,72,224,70, +18,68,31,67,145,67,242,65,108,62,122,60,192,62,253,68,210,73,252,71,162,68,88,72,137,79,203,80,121,75,49,68, +122,62,230,61,111,64,61,61,74,52,224,49,1,59,37,70,248,73,54,70,17,64,70,61,48,62,213,59,163,49,100,37, +37,32,127,35,123,41,151,44,76,45,214,46,7,49,91,49,54,47,235,42,17,37,177,32,24,31,186,27,93,20,138,14, +157,13,179,13,113,12,142,11,98,11,193,11,207,12,144,11,52,6,217,0,92,254,9,253,16,253,103,254,118,252,209,246, +210,243,34,244,146,241,166,234,108,227,57,223,6,223,197,223,195,220,78,215,243,211,53,210,102,208,90,208,224,210,14,215, +152,219,225,219,193,213,7,208,152,206,188,202,6,193,32,183,106,177,118,176,249,177,46,175,183,167,106,167,16,179,142,191, +165,196,173,196,124,194,183,191,199,188,41,181,197,167,133,156,173,151,90,149,7,148,11,149,180,151,68,156,90,162,255,165, +212,166,147,168,175,169,188,166,62,162,101,158,175,153,234,149,38,150,74,152,161,153,237,154,201,156,82,159,35,163,11,166, +5,164,167,157,70,153,9,156,197,162,190,164,178,159,212,155,101,160,243,170,62,180,80,184,111,185,53,188,219,191,192,190, +204,183,219,175,226,170,65,170,100,173,236,176,217,178,39,181,131,184,229,187,171,193,200,203,35,214,188,219,252,219,58,217, +180,214,130,213,201,210,164,205,131,202,7,204,199,207,233,211,36,217,23,224,210,231,22,237,150,237,244,236,240,239,138,244, +170,246,101,247,91,249,85,252,50,255,193,0,15,0,217,254,28,0,127,3,41,6,107,7,236,8,13,11,22,13,183,16, +137,23,106,29,129,29,2,27,129,27,181,29,90,30,24,30,150,29,209,28,222,29,99,33,95,37,61,41,119,44,74,45, +156,45,186,48,133,52,163,53,9,53,52,52,18,52,77,54,156,56,100,54,248,49,88,49,27,52,118,54,97,56,173,59, +186,64,242,69,119,72,62,72,203,72,98,74,15,73,26,68,127,63,143,62,2,65,32,67,110,65,209,61,21,61,125,64, +14,70,41,75,206,76,149,74,63,71,125,67,147,62,6,59,168,58,27,59,254,59,69,64,30,71,198,75,156,75,59,72, +223,69,26,71,160,72,207,69,237,63,253,58,147,55,204,52,82,51,50,52,252,55,228,61,133,67,248,71,163,76,230,80, +70,81,22,76,40,68,101,62,152,60,234,58,111,53,111,46,17,43,1,45,76,50,175,55,219,58,31,61,6,65,239,68, +180,68,50,63,253,54,26,48,219,44,101,43,169,41,19,42,169,46,150,52,26,57,201,59,161,59,88,57,232,55,40,54, +94,48,58,40,12,34,161,30,48,30,162,33,246,38,163,43,244,47,241,51,255,53,150,52,153,46,190,38,205,35,154,37, +137,34,49,23,130,11,121,5,120,4,152,6,124,8,77,8,240,10,208,18,153,24,255,23,0,22,214,20,250,17,63,14, +204,9,73,1,166,246,154,239,223,235,45,233,36,233,176,235,158,238,8,243,60,249,204,253,225,255,207,0,217,254,50,249, +88,242,133,234,161,225,108,220,151,221,54,224,186,223,168,221,1,221,174,222,106,225,80,225,38,219,206,209,14,204,231,203, +14,205,35,205,43,207,236,212,243,219,61,225,244,224,40,216,173,204,135,199,170,197,153,190,237,180,46,175,190,172,149,173, +161,179,110,186,141,190,21,196,184,202,170,204,39,203,36,202,223,199,100,196,44,194,247,189,141,181,249,173,122,169,0,166, +117,165,36,169,56,173,153,176,211,180,121,183,58,183,160,183,254,185,79,188,188,189,61,189,253,185,114,182,84,180,4,178, +186,175,116,175,16,176,141,175,168,174,112,174,4,175,187,176,20,179,233,180,250,182,135,186,173,189,249,189,146,190,51,197, +69,207,162,210,226,203,68,194,104,188,51,186,230,183,120,178,158,173,145,177,31,188,103,193,203,192,108,197,23,209,16,219, +105,222,161,219,61,214,81,212,209,213,186,211,67,206,245,204,90,208,34,211,17,212,163,212,251,213,143,217,57,222,160,224, +205,224,227,224,224,224,3,225,192,227,119,234,186,242,9,248,154,249,255,251,154,0,237,1,198,253,77,249,236,247,89,247, +15,244,166,237,222,233,40,239,58,250,131,3,61,11,251,19,128,27,144,32,5,35,92,33,179,31,242,34,76,36,3,29, +123,19,126,13,24,10,57,12,144,20,114,27,192,31,214,38,51,45,133,46,215,47,250,50,168,52,40,55,244,58,36,58, +108,53,192,50,4,50,170,50,181,54,128,58,223,57,214,55,146,54,136,52,253,50,164,51,183,53,94,57,122,61,140,63, +234,65,157,71,179,77,111,81,27,83,140,81,174,77,84,75,73,73,23,68,119,61,101,56,251,54,252,58,134,63,170,62, +226,62,178,71,17,82,28,86,26,86,37,84,211,81,137,84,100,90,122,90,160,84,216,78,205,73,59,68,0,62,184,54, +128,50,132,54,240,62,244,68,209,71,1,73,125,75,60,83,174,91,64,92,63,87,57,83,75,79,26,74,70,68,161,59, +30,51,107,50,88,54,189,53,253,49,186,48,184,50,236,56,154,65,89,69,55,67,184,65,190,65,136,64,205,62,17,60, +86,55,206,50,68,45,253,35,83,28,135,27,234,29,102,33,158,39,61,44,155,43,74,42,88,42,207,40,236,38,75,37, +172,30,121,18,175,6,237,253,141,248,207,248,28,254,104,5,173,13,26,20,119,19,203,11,249,2,105,254,31,255,72,255, +64,247,225,233,3,226,182,225,23,225,127,220,200,216,91,220,236,231,117,242,83,241,118,231,18,226,173,229,60,234,208,231, +106,222,220,212,12,210,47,212,207,211,118,208,21,208,248,210,182,211,32,208,143,202,128,198,129,198,100,201,149,202,106,199, +219,193,104,190,115,192,240,198,154,205,192,209,123,210,243,206,88,200,220,192,142,184,40,177,169,174,90,175,88,174,166,173, +218,176,129,181,51,187,9,197,79,207,129,211,4,210,208,204,231,196,179,191,112,191,40,189,35,182,209,176,66,176,160,178, +68,183,224,187,109,190,147,194,107,201,26,205,24,204,212,202,184,202,64,203,183,203,137,200,34,194,251,190,127,190,129,186, +85,182,31,185,43,193,209,202,76,212,227,215,102,212,177,210,62,213,72,212,38,207,215,203,228,201,145,199,22,200,36,203, +132,205,141,209,75,217,158,224,49,229,14,232,18,231,143,225,76,221,73,221,107,221,116,219,156,217,82,217,146,219,126,225, +164,232,63,237,74,239,16,240,254,239,252,240,78,244,201,247,193,249,210,249,45,246,0,240,136,236,189,235,95,233,221,231, +146,235,188,240,64,243,162,245,117,249,25,254,8,5,207,11,220,11,145,6,128,2,113,254,91,247,210,242,38,246,12,254, +140,5,87,10,68,11,61,11,78,15,218,20,184,19,225,11,146,5,253,3,38,3,76,1,252,0,79,5,179,16,33,32, +243,40,232,38,117,35,84,35,139,30,208,19,154,11,58,6,21,0,54,254,49,2,254,4,175,7,242,16,25,29,233,37, +15,44,186,45,160,40,196,35,5,36,233,34,11,28,155,19,90,14,195,14,83,19,127,21,238,19,254,21,123,30,169,39, +74,44,199,42,203,38,207,40,17,49,168,52,223,47,24,42,26,38,215,33,241,30,189,29,100,28,131,30,207,38,255,46, +36,50,64,51,246,51,102,50,242,47,181,46,161,44,120,40,182,37,94,39,225,43,59,48,146,51,149,54,14,58,3,62, +215,63,204,59,154,51,132,46,94,47,25,49,131,47,55,45,119,47,82,55,73,63,125,65,69,64,139,66,24,72,182,73, +97,68,91,61,37,59,228,61,42,64,212,62,39,60,116,58,118,57,240,56,210,56,68,57,195,59,96,63,127,64,164,64, +75,68,94,72,52,71,171,67,152,66,21,66,70,63,127,58,117,52,116,47,224,46,182,49,244,51,189,52,21,54,140,57, +13,62,80,63,237,58,92,52,48,47,231,42,96,39,168,37,180,36,161,35,239,34,154,33,68,31,51,30,54,30,210,28, +8,28,61,31,93,35,239,34,171,29,222,21,103,12,85,3,43,254,18,253,82,253,44,254,118,255,235,254,42,253,163,254, +216,2,241,4,50,5,38,5,109,0,156,245,176,234,80,226,190,219,75,218,187,221,10,223,253,221,98,224,247,227,115,227, +57,225,40,224,87,222,2,219,98,214,41,208,105,203,162,202,6,202,105,198,75,194,226,191,237,190,202,190,107,189,164,185, +96,182,196,181,217,181,71,181,85,181,252,182,93,185,113,185,161,180,177,173,66,170,100,170,169,168,250,162,132,158,115,160, +50,165,23,165,106,160,169,157,167,158,211,160,110,162,42,162,89,161,199,163,56,167,88,166,138,164,214,166,248,168,73,167, +134,164,112,160,192,153,211,147,140,143,105,140,28,143,25,151,11,156,199,158,96,166,149,175,241,180,178,184,209,186,129,185, +58,184,154,181,139,171,228,159,100,157,199,161,142,165,8,167,43,167,182,170,159,182,214,195,37,200,51,199,233,200,237,204, +214,208,120,209,38,203,16,197,10,202,137,211,114,212,252,207,194,207,233,211,249,217,122,224,107,226,173,222,84,220,113,222, +252,223,72,223,79,225,151,232,231,241,48,250,225,0,135,4,39,4,9,3,224,3,9,4,22,2,69,0,111,253,74,248, +110,246,212,250,255,255,48,4,102,11,2,20,106,26,160,32,122,38,3,40,87,39,45,41,184,43,100,43,175,39,7,33, +145,26,214,24,147,26,219,27,125,29,105,33,149,39,96,48,110,57,110,62,156,65,102,71,227,75,179,73,80,66,193,56, +253,48,215,48,7,53,183,51,4,48,187,52,247,62,32,69,88,71,237,72,209,74,232,79,97,85,132,81,46,70,245,63, +114,64,183,64,171,64,41,65,71,63,102,62,205,67,127,74,250,75,21,75,71,76,194,78,196,79,75,77,85,72,24,69, +38,69,173,69,146,68,232,65,161,63,204,64,222,67,39,68,81,68,232,73,26,80,234,78,124,72,122,67,204,66,160,69, +220,70,19,67,144,64,74,68,118,70,82,64,23,56,132,54,127,60,209,66,186,63,100,52,222,46,67,53,99,61,98,62, +162,58,10,58,58,66,132,76,33,74,42,60,199,51,253,53,130,56,0,53,132,43,246,32,133,32,228,42,160,48,233,44, +67,44,50,51,152,58,109,62,240,60,220,54,121,51,57,52,95,48,99,38,28,30,177,26,66,26,220,25,155,21,234,15, +185,15,35,19,39,20,16,20,102,20,180,20,94,25,188,33,171,35,98,29,49,22,0,15,107,7,141,2,248,251,183,239, +53,231,18,232,19,235,85,238,50,245,3,252,40,2,193,11,185,17,148,11,6,1,139,250,113,244,32,236,114,227,97,218, +216,212,237,215,68,222,184,225,85,230,65,237,75,239,207,234,215,228,76,223,94,218,48,215,222,212,147,210,141,209,217,209, +47,211,153,214,99,218,160,218,100,214,223,206,254,197,231,191,54,190,229,188,207,186,106,188,179,193,236,196,88,196,79,195, +52,196,87,199,194,202,212,201,221,194,224,186,181,182,169,180,77,177,130,174,253,176,69,184,54,190,20,191,226,188,124,186, +105,185,186,186,35,188,47,185,89,179,179,176,215,177,34,179,91,180,140,182,200,184,31,187,246,188,239,186,50,181,207,176, +44,176,140,178,149,183,65,188,124,188,32,186,43,185,33,185,34,185,17,186,216,186,238,186,253,187,137,188,102,186,28,185, +43,188,142,193,55,199,67,204,50,206,79,205,143,204,141,202,222,197,182,195,51,199,132,203,52,205,231,205,192,206,189,208, +139,213,217,218,186,220,45,220,129,219,94,217,69,213,0,210,222,208,86,209,248,212,48,221,17,231,77,238,166,241,47,242, +245,241,10,243,173,243,127,239,147,232,26,231,169,235,197,236,29,230,9,224,106,228,55,242,163,254,105,2,61,3,203,10, +68,23,24,29,128,22,84,11,254,7,214,12,191,12,2,2,101,248,228,249,234,1,42,9,75,13,4,15,56,20,163,32, +13,43,9,43,131,39,173,39,252,39,60,38,69,36,112,33,7,31,138,31,8,32,142,31,43,34,87,37,140,36,114,37, +123,44,203,50,6,51,98,48,163,48,65,56,28,67,130,68,253,58,235,52,1,57,121,62,157,60,10,51,132,42,173,46, +89,59,139,62,237,53,123,50,159,60,243,74,118,80,249,72,145,62,211,62,229,70,77,73,62,68,140,64,39,67,131,73, +203,75,5,70,27,65,229,68,26,74,160,73,248,70,181,67,49,63,125,61,191,62,255,63,203,69,2,81,10,87,219,84, +139,82,192,81,168,79,187,77,100,75,151,71,245,69,184,68,251,61,205,54,125,55,193,60,20,65,132,69,239,74,132,80, +165,84,182,82,253,74,78,70,216,71,103,72,88,67,58,59,227,52,174,51,236,52,38,51,162,48,67,51,43,57,251,60, +209,60,154,56,118,51,32,50,161,50,195,48,44,47,255,47,145,47,199,44,66,41,247,35,225,29,99,26,231,23,15,19, +77,13,198,9,132,9,184,10,241,9,115,8,64,11,150,16,62,19,116,20,81,20,133,13,219,1,125,248,102,241,221,234, +57,230,227,223,31,214,2,210,161,215,229,221,48,224,177,227,24,235,191,243,229,247,41,241,235,226,155,217,232,216,84,216, +117,209,110,198,190,190,132,191,199,194,167,191,216,186,24,191,173,202,117,210,71,207,12,196,247,188,188,193,228,200,7,199, +207,192,37,191,112,193,140,194,215,188,252,174,30,164,152,166,232,173,174,173,38,169,73,168,210,171,138,177,253,181,10,183, +229,184,65,189,59,189,252,182,205,177,133,176,85,176,244,175,193,173,138,169,90,168,233,171,64,175,71,176,92,176,47,176, +123,179,52,188,115,194,144,192,127,189,225,191,120,197,234,201,180,200,214,191,175,182,246,180,147,182,111,181,235,179,43,182, +162,189,119,201,86,211,132,213,42,212,68,213,129,215,251,215,16,213,97,205,155,197,139,196,20,199,96,199,255,200,244,207, +183,216,146,223,142,226,49,224,119,221,77,225,88,232,89,234,130,230,212,225,185,225,125,232,136,240,3,242,140,238,226,237, +239,242,239,249,157,251,206,244,80,238,73,242,203,251,36,255,56,251,239,247,55,252,29,7,253,13,234,9,163,3,133,4, +15,8,253,7,66,5,221,1,57,1,152,6,104,12,156,12,238,11,4,14,141,14,75,13,145,13,42,14,105,15,135,19, +61,23,0,25,74,28,74,30,24,27,40,25,68,28,196,29,170,27,24,26,192,24,53,24,195,27,162,31,211,30,106,29, +251,31,0,37,197,41,4,43,236,38,10,34,62,32,207,30,4,28,100,25,196,23,90,25,90,30,153,32,155,30,245,30, +29,34,172,35,100,37,57,39,197,35,201,29,247,28,51,32,22,35,107,36,85,34,150,30,122,30,190,30,142,25,26,21, +11,25,102,33,23,39,25,39,213,34,76,34,36,42,202,49,84,50,149,49,240,51,227,53,162,52,101,46,229,35,197,29, +201,32,246,35,110,32,39,28,26,30,208,38,162,50,247,58,0,61,170,61,147,63,74,63,31,60,89,56,123,52,36,50, +42,50,51,48,163,42,237,38,111,39,81,41,181,44,255,50,99,57,241,60,49,62,3,63,100,65,208,69,146,73,244,73, +5,71,1,66,170,60,9,57,103,55,94,55,123,57,64,60,90,60,32,58,112,56,106,55,38,55,191,58,111,66,80,73, +234,75,231,73,240,66,43,57,203,49,90,46,48,44,83,42,86,40,37,37,245,35,71,40,172,45,118,47,183,48,230,50, +140,50,87,48,206,45,138,39,147,30,66,24,80,18,17,10,50,6,201,8,199,10,139,12,159,19,247,27,28,31,149,29, +211,24,20,19,189,16,8,15,94,7,253,252,109,246,113,242,164,239,254,239,127,241,49,241,111,240,13,240,109,239,69,239, +210,238,66,237,84,237,64,239,3,238,122,231,118,222,80,214,77,210,9,211,65,212,10,211,244,208,91,207,26,206,187,203, +212,197,89,191,35,191,32,195,147,194,144,188,206,182,242,181,31,189,57,200,196,203,1,198,207,192,147,190,158,185,62,177, +205,167,244,159,8,159,198,163,196,164,107,161,76,162,2,169,90,177,150,184,135,186,243,181,205,176,53,173,176,167,2,162, +252,158,197,155,12,153,141,155,68,161,119,165,28,168,3,169,194,167,43,167,25,167,157,164,154,162,15,165,62,169,201,171, +54,172,128,169,8,166,141,167,101,172,44,173,19,170,40,170,217,175,253,181,48,182,13,177,14,175,53,181,97,189,100,191, +82,187,101,183,229,184,250,190,92,195,115,195,202,196,149,203,165,211,243,214,151,212,177,207,13,204,255,203,18,207,68,210, +138,210,45,209,167,211,200,219,238,228,2,236,224,241,221,244,118,242,104,237,198,233,112,232,191,233,248,236,110,239,131,242, +82,250,178,3,64,7,118,5,98,4,176,5,250,6,94,6,203,3,79,2,18,6,116,14,164,22,213,27,68,30,220,30, +96,31,152,33,247,36,47,39,103,38,136,34,18,30,40,28,204,28,229,29,76,31,67,34,31,39,156,45,51,52,255,55, +39,57,144,59,245,63,126,66,185,65,195,63,129,61,159,58,127,55,168,52,203,51,241,54,93,59,2,60,56,58,44,59, +77,63,68,68,3,73,106,75,232,74,23,76,35,80,89,80,121,74,110,69,226,68,106,69,85,69,153,69,44,69,40,67, +207,64,86,63,16,64,8,68,109,72,206,72,6,70,135,69,16,74,73,80,43,82,223,77,253,72,244,73,255,78,73,80, +155,74,141,67,11,66,225,68,46,68,16,61,129,54,140,55,251,61,90,66,21,66,141,66,28,73,187,81,198,83,213,78, +109,73,154,69,19,65,108,59,196,52,75,46,58,45,101,51,230,57,58,59,91,57,173,55,48,57,208,63,227,69,244,66, +68,57,101,50,54,50,114,53,214,53,26,47,182,38,167,38,148,45,45,49,185,45,202,39,118,37,94,42,14,50,70,51, +185,45,224,40,247,38,188,37,160,35,225,29,68,21,193,16,89,17,45,16,19,12,1,9,97,7,184,7,212,10,199,12, +72,12,252,13,180,17,30,19,232,17,125,13,241,4,237,252,204,246,32,237,158,226,165,223,52,226,251,228,86,232,173,233, +191,231,194,234,72,244,70,250,121,250,152,248,116,241,135,230,155,224,218,221,189,215,121,210,51,209,36,207,18,204,147,201, +34,197,219,194,161,201,206,211,185,216,222,216,96,213,221,206,106,202,75,200,191,195,159,191,217,191,132,191,95,187,172,181, +137,174,251,168,165,171,156,179,255,184,187,188,148,192,19,192,232,186,102,181,193,176,180,174,65,177,199,179,170,177,253,173, +120,172,193,172,9,173,169,170,185,166,243,167,164,174,0,178,7,176,4,176,24,181,4,188,81,192,22,190,121,183,254,179, +136,179,94,174,35,164,200,156,57,157,220,163,85,171,170,175,169,179,39,187,81,194,52,196,197,194,94,193,204,192,66,193, +237,191,33,185,233,176,194,174,58,178,5,182,130,184,173,186,161,189,57,194,141,198,198,199,21,200,236,203,71,210,56,214, +17,214,84,212,184,211,212,212,229,213,42,212,228,207,200,205,84,208,78,211,210,211,104,214,118,222,47,232,15,239,57,241, +194,237,117,231,54,227,197,224,43,222,221,221,158,224,52,227,17,230,45,235,29,240,75,244,223,250,174,2,121,8,185,12, +153,13,219,6,85,252,171,246,211,246,193,247,42,247,134,246,25,248,140,252,242,2,179,11,70,23,136,34,71,42,112,46, +150,46,0,43,30,39,122,35,111,29,137,23,173,21,161,20,54,17,42,15,125,18,137,27,36,40,166,50,205,55,227,59, +153,64,25,64,195,57,18,53,29,53,233,53,243,51,14,48,85,47,173,52,173,57,201,55,27,52,14,54,147,59,105,63, +48,64,251,62,7,63,233,66,121,71,161,72,228,71,118,72,55,75,77,79,63,81,246,77,155,72,75,70,118,70,116,69, +216,65,119,61,183,60,121,65,47,71,84,74,3,78,53,84,196,89,212,92,206,93,251,91,171,87,133,82,214,75,143,66, +77,57,57,52,89,53,73,59,60,66,32,72,137,78,174,86,30,95,46,101,170,101,253,95,248,88,129,83,238,74,35,61, +236,49,122,48,94,54,204,60,171,63,32,64,154,67,75,76,104,84,152,86,18,85,66,83,98,80,96,75,188,68,27,61, +159,54,45,52,105,53,85,55,122,55,170,52,244,48,36,49,96,53,246,55,200,54,25,53,20,52,96,50,48,47,252,40, +217,32,215,28,229,29,181,28,74,23,27,19,155,17,209,17,89,21,211,24,76,22,140,17,90,16,26,14,165,6,211,254, +149,249,233,244,245,240,196,237,238,233,223,231,80,233,120,234,4,235,203,239,147,246,235,246,182,239,76,232,197,229,44,229, +195,223,15,213,40,205,88,204,163,203,151,196,24,188,146,186,222,191,138,196,50,196,83,194,3,196,105,200,33,202,155,198, +231,193,195,193,126,196,30,194,199,184,81,175,228,169,117,166,85,163,50,160,43,157,231,156,214,160,126,165,128,168,45,171, +132,173,228,174,133,176,52,178,225,178,253,178,253,176,123,171,2,167,221,166,209,166,151,164,48,163,120,162,237,160,58,160, +102,159,133,156,117,156,20,163,214,171,130,179,57,187,215,191,66,190,112,187,209,187,43,188,2,185,152,178,243,169,101,162, +81,161,172,166,125,172,162,176,108,183,27,194,140,202,183,203,78,200,97,198,199,200,37,205,83,206,23,203,156,200,255,201, +239,203,180,204,118,206,240,208,109,211,139,215,88,218,16,215,35,211,81,215,166,224,119,231,205,235,186,239,102,241,60,240, +19,238,171,235,226,233,216,233,133,234,55,235,199,237,129,242,224,246,105,250,103,255,233,5,178,10,75,11,96,8,255,4, +113,4,138,6,77,7,93,5,147,4,225,6,73,9,13,10,115,10,118,11,142,14,197,20,40,27,57,31,55,35,129,39, +90,40,43,37,88,32,171,26,242,21,120,20,196,20,236,21,31,26,58,32,22,37,215,41,78,47,140,50,208,50,84,49, +129,45,124,40,213,36,206,33,138,31,198,33,156,40,139,47,201,51,238,52,45,52,19,52,192,51,10,48,144,42,106,38, +175,34,199,31,114,32,47,36,245,41,230,49,2,56,180,56,28,55,247,52,222,47,88,42,194,40,225,40,230,39,186,38, +224,36,187,34,66,36,117,41,89,45,238,45,246,44,192,44,216,46,192,48,149,46,51,43,4,44,225,46,5,46,116,40, +109,33,211,29,240,32,161,39,243,43,131,45,247,47,10,52,206,54,236,53,27,51,179,49,195,48,42,45,62,40,177,36, +168,33,69,31,134,32,5,38,234,45,38,54,69,59,255,58,54,55,119,50,79,46,67,44,104,43,24,42,213,41,92,42, +173,40,162,39,234,43,159,49,23,52,203,53,15,55,121,52,250,46,2,40,52,31,0,26,200,28,131,32,149,31,131,31, +156,35,9,40,100,43,87,45,34,43,108,38,142,35,112,33,108,30,17,29,19,29,217,26,193,22,239,18,178,14,6,10, +160,6,193,4,156,4,56,7,85,11,252,14,209,18,214,22,116,24,191,22,82,19,204,14,123,8,95,255,98,243,67,232, +163,226,234,224,101,223,81,224,182,230,58,241,48,255,102,14,86,22,114,19,85,12,158,2,154,241,241,220,239,203,200,190, +31,183,166,185,76,195,29,207,31,222,168,237,88,248,85,0,196,5,112,1,75,244,210,229,58,213,191,193,223,177,196,166, +104,159,129,163,162,180,37,198,129,209,121,219,115,228,83,232,193,229,108,220,107,207,171,197,54,191,158,181,113,169,181,162, +135,166,135,178,194,190,183,196,81,197,145,196,0,196,14,195,138,190,28,181,2,175,4,180,229,188,181,190,195,186,71,184, +164,186,118,192,138,196,90,197,123,200,230,205,225,205,150,199,55,191,205,180,141,171,0,169,55,170,101,173,249,183,42,198, +137,206,149,212,218,220,211,224,190,223,85,223,157,219,229,208,159,197,177,187,33,177,15,172,156,175,129,182,16,194,228,213, +207,234,74,250,64,5,148,8,16,1,145,244,64,231,86,215,152,200,151,193,186,193,169,198,33,209,205,223,192,239,11,0, +183,14,250,23,139,26,225,23,45,17,71,7,95,252,132,243,32,238,136,235,26,235,200,236,68,241,201,250,39,9,204,22, +4,32,185,38,171,42,220,40,246,34,255,27,30,20,101,14,130,14,176,16,18,17,17,19,104,24,58,30,139,36,100,43, +0,47,88,47,15,48,2,48,241,44,148,41,241,39,77,39,99,41,93,47,130,53,123,57,92,61,14,65,226,65,90,64, +89,61,61,54,166,44,74,41,129,46,0,52,248,53,134,57,147,64,97,72,74,79,86,81,92,75,185,67,195,63,178,57, +18,48,188,43,28,46,138,49,166,55,14,65,80,70,83,71,172,75,155,81,101,82,21,79,157,74,37,69,24,64,184,58, +69,50,244,42,157,43,194,50,220,58,8,65,131,67,47,68,89,72,129,78,49,79,233,73,118,68,174,64,197,60,134,55, +55,48,231,40,74,39,115,45,179,53,77,57,129,55,153,52,59,52,219,53,247,54,244,54,71,54,61,52,140,48,103,44, +59,40,8,36,147,34,18,39,158,46,37,49,251,42,162,33,157,28,103,28,200,27,162,24,98,23,92,28,70,36,121,38, +193,31,150,23,14,22,222,23,32,20,91,10,138,1,225,253,209,254,39,0,186,251,7,243,74,240,233,245,23,252,135,1, +244,8,39,12,254,6,214,255,31,248,221,235,94,224,11,219,181,214,194,209,121,208,17,208,187,206,200,210,205,219,12,228, +65,238,123,249,35,250,160,239,51,229,226,219,99,207,125,196,68,191,116,189,138,190,190,192,217,191,109,191,153,197,95,206, +181,211,226,214,189,216,143,214,68,208,132,199,161,189,9,183,137,184,110,191,141,195,162,193,215,189,209,187,29,187,85,187, +154,187,148,185,126,184,240,189,16,196,129,193,6,187,223,184,245,184,202,185,69,189,89,191,117,191,172,196,31,204,176,204, +44,201,227,197,103,191,252,184,45,184,26,183,134,179,7,181,22,186,11,189,173,194,132,203,236,207,42,210,56,214,203,212, +31,205,38,200,123,196,173,189,143,186,47,190,111,194,104,199,222,207,168,215,136,220,58,224,190,224,65,221,30,217,254,211, +7,204,210,196,127,195,84,202,96,215,50,227,17,233,167,237,190,243,110,245,158,239,255,230,241,224,20,224,21,226,248,223, +141,216,10,212,54,216,141,226,176,237,55,245,113,248,149,250,133,252,110,252,98,251,139,250,117,248,88,246,217,245,173,243, +56,239,241,237,231,240,47,244,141,247,129,251,177,253,218,254,159,1,146,4,60,6,207,7,177,8,100,8,64,9,113,10, +125,8,15,6,141,8,205,13,168,15,5,13,36,8,95,2,236,253,117,253,202,255,163,1,6,4,166,10,132,20,172,28, +42,33,234,35,37,39,9,43,228,42,143,31,143,10,164,247,216,238,235,238,80,245,118,255,218,8,80,17,68,28,83,39, +185,46,151,53,73,60,59,59,102,48,30,33,232,14,208,252,136,245,35,252,239,6,81,16,83,25,179,31,28,35,102,40, +26,47,202,51,227,56,61,61,65,56,154,41,199,26,105,17,154,15,225,22,138,33,144,39,148,41,89,43,174,44,87,45, +139,45,121,45,231,48,244,56,233,61,52,58,116,49,205,40,103,37,50,44,87,56,6,63,80,63,41,63,86,63,22,62, +198,59,252,56,53,55,71,55,208,54,102,53,112,53,111,54,5,57,23,65,168,75,222,80,133,80,160,77,150,71,247,64, +185,61,173,59,8,57,148,55,150,54,81,55,88,62,53,72,234,77,26,81,68,83,109,80,75,74,155,68,146,60,33,51, +248,45,244,43,34,44,22,51,1,61,186,65,169,68,191,73,7,75,178,70,210,64,132,56,65,46,250,38,239,33,68,29, +5,29,137,32,204,33,218,33,226,36,203,41,49,46,15,47,70,41,109,33,111,30,81,29,89,24,203,16,167,9,114,5, +98,6,75,8,194,5,248,2,205,5,174,11,114,15,118,13,230,3,206,247,87,240,215,236,173,234,231,234,142,235,27,234, +48,234,246,237,168,242,31,248,182,253,46,254,238,247,248,236,154,220,82,202,165,190,44,186,177,184,65,188,56,197,206,205, +164,213,139,223,83,231,149,233,236,232,235,227,245,214,19,198,142,182,201,168,192,159,57,160,131,167,17,175,9,181,183,186, +199,192,114,198,182,200,21,197,216,189,231,183,141,181,87,180,203,174,123,163,31,154,61,155,76,165,249,175,101,181,222,180, +251,177,147,176,96,175,179,171,255,167,76,167,45,168,187,168,214,167,244,164,25,165,13,173,133,181,156,181,218,177,250,175, +85,172,5,167,243,165,114,168,212,171,113,177,96,181,212,178,83,176,63,180,218,186,132,194,107,203,28,205,129,195,237,184, +174,180,58,179,255,177,22,177,49,177,207,182,144,194,97,204,239,208,246,212,236,217,87,223,15,230,75,233,180,228,127,222, +173,219,135,216,165,212,214,210,81,208,9,205,158,207,161,216,252,226,81,238,82,250,114,2,0,6,66,8,86,9,5,8, +165,4,17,255,157,248,205,244,184,243,120,242,41,242,134,246,154,254,48,6,1,13,92,21,247,28,150,31,101,31,58,33, +249,35,51,36,193,33,19,29,185,23,76,22,190,25,57,30,106,35,93,42,102,47,215,48,13,50,101,51,53,51,247,50, +214,50,17,50,29,52,27,57,0,58,15,54,131,53,216,58,118,64,255,66,56,67,172,66,68,66,241,64,31,62,255,60, +225,63,239,67,178,69,45,69,111,68,49,69,230,70,181,71,240,71,195,72,29,73,30,72,190,70,193,69,207,70,62,76, +230,83,95,88,45,88,145,85,223,81,117,77,93,73,93,71,236,71,135,71,50,67,228,63,140,68,231,78,227,86,86,88, +160,84,193,80,204,80,209,81,205,78,97,74,236,73,144,75,176,73,189,67,238,62,113,63,99,66,167,66,122,65,170,65, +159,64,108,61,242,59,206,60,150,62,237,65,59,67,102,62,221,57,63,60,2,64,68,63,129,59,88,53,175,45,67,40, +6,36,117,31,109,32,147,39,83,43,22,41,103,39,120,40,247,42,128,45,176,43,214,37,222,34,149,32,160,21,63,5, +69,251,127,250,236,253,175,255,135,251,101,245,197,245,95,251,189,254,235,255,174,2,119,6,186,8,167,5,16,250,146,234, +150,222,183,213,217,205,32,202,231,202,222,203,103,204,112,206,134,210,206,218,87,231,179,240,99,241,208,236,183,229,10,218, +200,202,103,188,54,178,116,175,103,180,212,185,31,186,123,186,0,193,210,201,222,205,170,204,198,202,163,202,2,201,191,193, +253,183,18,180,23,184,221,188,58,187,46,180,215,174,156,174,136,174,109,170,134,166,35,168,178,174,115,182,236,185,8,182, +88,178,196,183,141,191,63,190,75,183,183,179,126,179,156,179,75,179,136,178,48,181,144,189,7,195,233,189,214,180,210,176, +143,177,1,179,194,178,234,178,123,186,2,201,121,210,26,210,132,208,139,210,136,212,118,211,223,205,174,196,147,189,95,187, +0,187,145,187,101,190,240,194,175,201,248,209,115,215,93,218,172,222,182,225,132,224,198,223,126,225,148,226,43,228,202,230, +17,230,203,226,212,224,183,221,31,217,172,216,180,219,185,221,124,225,36,234,234,244,117,255,128,7,78,9,254,6,55,6, +38,6,99,2,71,250,237,241,252,240,168,249,237,0,126,253,242,246,59,248,128,0,43,9,49,13,54,11,0,9,248,12, +162,19,75,21,227,16,145,11,126,11,136,17,10,22,31,19,165,13,211,11,5,13,40,15,108,17,37,19,33,22,73,27, +99,30,54,29,222,26,138,24,239,21,173,21,40,24,28,26,43,27,134,28,154,29,179,31,121,35,42,36,85,32,41,31, +5,36,3,40,247,36,104,29,4,25,167,28,53,35,118,33,238,21,46,13,245,16,117,27,30,32,137,27,89,23,51,30, +153,44,155,51,72,45,208,36,84,37,67,43,16,44,150,35,15,23,52,16,69,19,23,25,72,25,64,22,216,22,87,28, +136,36,122,43,255,43,16,40,108,40,248,45,228,48,231,45,153,39,191,33,96,33,17,38,178,38,36,32,222,26,15,28, +30,33,220,38,234,40,191,37,34,38,112,47,253,54,12,52,179,45,228,43,144,45,198,47,212,47,82,44,166,42,72,48, +24,56,234,57,2,54,237,48,153,44,35,42,60,43,70,47,229,50,42,52,71,53,173,56,141,60,3,62,249,61,7,63, +66,65,16,66,43,62,150,53,223,46,103,49,228,58,128,64,100,60,185,52,78,50,77,53,212,55,176,55,223,55,160,58, +209,61,223,60,180,54,219,48,42,49,199,54,185,60,89,62,18,57,3,48,184,41,112,38,23,34,135,30,76,31,194,33, +125,35,214,37,187,39,208,39,53,40,84,40,41,37,91,32,200,27,68,21,72,14,139,11,76,11,104,8,212,2,173,253, +166,251,86,254,83,3,124,6,81,8,45,11,41,13,181,10,94,3,221,249,157,241,110,235,251,229,219,225,221,223,127,221, +91,218,80,219,34,226,136,233,136,236,253,234,162,231,13,229,88,226,217,219,168,209,42,201,79,198,25,199,132,198,152,194, +35,191,236,192,12,199,184,203,141,202,247,196,84,192,66,190,183,186,87,181,122,179,16,181,175,180,24,179,150,180,98,183, +215,183,6,182,108,178,221,173,142,170,207,167,196,163,37,161,39,163,23,168,93,172,147,173,77,172,240,172,81,176,210,175, +90,169,134,164,30,165,140,165,93,161,104,154,179,149,45,152,35,161,74,169,123,172,12,174,142,176,79,177,43,173,212,164, +12,157,41,155,107,159,209,164,119,167,20,168,201,169,198,174,4,182,203,187,98,189,5,187,88,182,112,177,141,174,2,174, +166,173,84,173,48,177,28,187,142,197,129,202,129,203,6,206,16,212,69,218,89,218,55,210,116,201,72,200,209,203,155,204, +255,202,240,204,25,213,129,223,98,229,207,230,136,235,176,244,11,250,214,248,89,245,40,241,4,238,138,238,27,238,56,233, +229,231,219,238,35,247,137,253,67,5,114,13,241,20,95,28,230,30,60,26,157,21,14,19,86,12,136,3,186,0,95,4, +142,11,206,21,19,33,191,43,32,54,173,60,174,59,147,54,254,49,216,45,9,41,132,35,122,30,195,28,245,30,171,35, +107,44,222,56,236,66,35,72,104,75,244,75,74,72,181,67,158,63,22,59,88,56,209,54,107,50,187,46,202,50,61,60, +241,68,87,75,234,78,63,80,50,81,22,79,89,72,38,68,54,70,185,71,41,69,11,66,166,63,57,63,206,67,175,74, +92,79,83,83,241,86,13,87,31,85,38,83,195,77,7,69,201,61,145,56,198,53,244,57,141,67,181,75,54,82,165,88, +8,91,207,88,182,85,91,80,23,72,122,66,110,63,50,57,175,50,125,50,248,54,247,61,185,72,213,81,121,82,146,78, +216,75,89,72,0,67,105,62,212,57,141,52,89,50,16,52,161,53,108,54,9,58,193,64,144,69,206,67,252,60,26,55, +162,52,96,50,215,45,4,41,207,39,166,43,241,48,12,51,56,50,207,48,222,46,60,44,84,39,227,28,112,17,31,14, +63,15,167,10,134,3,195,1,225,3,75,8,78,15,106,19,252,19,236,23,129,27,42,22,245,12,188,5,93,252,118,241, +238,231,245,218,23,206,195,205,156,214,56,221,178,227,126,236,43,242,172,246,26,253,125,254,45,249,173,242,219,232,146,219, +31,211,43,206,35,198,82,193,188,196,132,200,205,200,144,199,163,194,96,189,165,192,179,201,232,207,219,210,86,211,149,208, +101,206,223,205,92,203,98,200,89,198,250,191,67,181,144,172,79,166,53,161,115,160,13,164,173,169,19,178,252,186,63,192, +170,195,36,198,102,196,240,192,243,191,103,190,102,187,150,186,165,185,64,182,252,180,238,180,193,175,150,168,205,166,85,170, +223,176,249,183,50,187,229,188,71,196,213,206,201,212,248,212,228,207,18,199,237,193,114,193,227,187,96,177,228,173,124,179, +234,186,83,194,85,201,174,205,40,210,57,216,200,217,130,214,129,214,82,217,6,215,160,208,246,204,47,205,92,208,200,214, +121,221,166,225,82,229,153,232,237,231,174,228,84,227,157,226,26,224,228,222,51,225,225,228,76,233,66,238,122,241,167,245, +31,0,194,10,58,10,239,1,233,253,154,254,135,252,212,245,27,237,210,230,90,233,212,243,196,252,217,1,237,9,212,20, +86,27,220,27,142,24,5,18,182,11,17,9,135,6,43,1,37,253,32,253,184,255,27,6,118,16,128,25,143,30,31,34, +245,35,169,33,34,28,5,22,158,18,186,20,191,23,64,19,20,10,237,7,165,15,198,25,115,32,96,35,123,38,251,45, +162,53,201,51,58,41,134,32,57,29,7,26,153,19,206,10,145,3,118,4,169,14,15,27,7,38,17,50,114,60,114,63, +66,61,199,57,165,50,116,39,70,28,22,17,72,5,216,253,135,252,190,253,208,3,45,19,89,38,50,53,126,62,34,66, +209,63,207,58,76,51,23,38,157,23,152,14,128,7,227,253,84,247,21,250,83,6,63,25,135,43,100,53,99,57,111,62, +81,66,167,62,126,51,116,38,11,30,127,27,135,23,108,14,226,9,159,18,62,34,72,45,189,48,47,49,181,51,2,56, +18,57,219,52,46,46,186,39,224,35,209,36,81,40,182,42,102,45,219,50,180,56,42,58,51,53,236,45,238,43,17,48, +115,51,253,50,241,48,123,46,116,46,235,51,97,57,208,56,40,55,229,56,145,57,195,55,79,55,225,55,222,56,186,60, +67,64,237,60,59,52,64,45,230,43,45,47,240,49,74,48,203,45,23,47,12,50,32,51,102,50,16,49,250,48,114,50, +197,48,187,41,201,35,112,36,230,40,169,43,40,41,59,34,145,29,251,30,191,32,194,29,4,25,237,21,52,20,228,18, +241,15,154,10,168,7,213,10,47,16,188,18,226,17,33,14,0,9,200,5,117,4,252,1,246,254,203,253,71,252,83,247, +201,240,60,235,69,230,78,227,6,230,193,236,150,240,237,238,213,235,21,235,151,236,236,237,104,236,120,231,241,224,86,218, +40,212,13,207,24,203,27,200,112,199,32,202,54,206,236,207,42,205,208,200,93,200,221,202,24,201,158,194,227,190,34,192, +0,194,143,193,187,189,167,184,216,184,152,189,113,188,184,179,232,173,74,175,237,178,255,180,107,179,246,174,31,174,172,178, +181,180,43,177,168,174,45,176,86,177,26,175,11,172,33,173,205,178,181,182,242,180,123,177,146,175,239,172,166,167,137,161, +204,158,115,162,43,169,176,172,227,172,105,174,84,180,159,190,118,199,16,199,75,192,134,187,174,182,33,173,196,163,223,158, +85,158,88,164,255,172,228,174,71,175,61,186,255,201,56,210,163,211,52,211,202,211,29,216,202,217,230,207,242,193,125,187, +118,185,66,183,50,183,75,185,110,191,191,205,14,221,73,228,90,232,173,237,250,239,89,240,41,241,218,237,10,232,32,229, +199,223,119,214,96,212,87,218,126,222,94,227,113,239,180,252,8,5,178,8,18,6,76,255,127,252,180,254,20,1,14,3, +196,4,199,5,242,8,3,13,61,12,151,9,139,12,85,18,176,19,187,16,78,14,186,16,134,24,171,31,33,33,31,33, +158,37,49,45,64,50,147,49,214,45,108,45,12,49,248,49,110,45,152,40,106,40,82,45,77,51,232,51,129,46,120,42, +189,44,178,51,205,60,112,69,104,75,93,80,19,85,119,85,75,80,56,73,215,65,115,59,83,57,207,57,46,56,20,54, +137,55,49,60,1,68,225,79,140,92,5,102,238,106,51,105,8,97,18,88,150,81,40,76,18,73,88,74,104,76,149,75, +113,73,114,72,190,73,76,78,232,84,154,90,36,94,154,95,157,94,2,91,215,85,68,82,167,83,142,88,149,91,123,89, +35,82,121,72,132,67,58,70,135,73,139,72,6,72,195,73,243,72,30,70,71,70,30,73,142,75,39,77,93,78,76,79, +111,78,225,72,232,64,30,61,165,61,206,60,115,56,34,50,101,45,98,46,137,49,200,46,87,41,231,41,166,45,109,46, +252,45,15,45,78,42,219,40,220,39,146,33,122,25,188,22,10,22,193,17,165,9,209,253,50,242,213,237,243,237,228,235, +96,235,99,240,131,246,160,251,55,0,248,1,166,2,6,4,16,254,66,237,93,220,101,210,53,204,143,200,39,199,178,197, +164,197,74,199,98,198,116,197,228,203,80,215,127,222,104,220,196,210,62,202,59,201,42,201,244,195,179,192,189,195,219,197, +41,193,62,180,73,162,36,152,142,156,215,162,86,161,69,159,143,162,206,169,206,178,111,183,68,182,67,186,206,196,32,199, +87,189,179,176,220,164,218,155,191,151,115,146,18,140,80,143,161,152,150,155,91,156,13,161,79,163,181,164,15,173,206,182, +84,188,155,193,254,195,83,192,222,190,36,192,209,185,241,173,121,165,194,159,114,156,96,158,32,162,238,166,142,177,128,189, +53,195,216,197,238,200,160,203,41,209,202,215,27,213,43,202,77,195,156,194,81,195,15,199,83,206,91,212,182,215,147,216, +255,212,146,207,32,206,2,208,250,208,127,210,167,216,172,225,46,232,21,236,238,241,179,249,118,254,194,254,126,253,184,252, +137,252,206,250,127,244,96,236,216,233,149,237,24,241,117,242,196,246,88,1,45,14,167,21,229,21,103,21,44,25,42,30, +144,31,101,28,202,22,137,18,175,16,87,13,51,8,151,8,38,18,117,30,52,38,146,40,98,40,68,39,200,36,74,33, +42,31,223,31,210,34,31,38,81,38,67,35,66,36,206,45,38,57,206,62,211,62,12,59,106,53,232,48,31,45,5,41, +213,39,75,42,54,45,85,49,220,54,16,57,10,57,214,60,146,66,158,69,235,70,126,69,195,63,60,59,192,58,130,57, +190,54,19,53,44,51,174,49,156,50,115,50,146,49,13,55,199,64,202,69,56,70,93,69,66,65,18,59,212,54,151,51, +136,48,240,47,20,49,118,49,84,48,41,46,82,47,142,55,220,63,225,62,195,54,159,46,77,42,254,43,88,48,112,48, +139,46,66,49,66,53,35,52,195,46,63,41,106,40,44,46,252,50,59,48,6,43,233,39,182,36,30,35,251,36,223,37, +205,37,99,40,111,41,169,37,241,33,216,31,165,30,47,34,79,39,229,35,242,24,226,14,202,7,55,4,147,3,68,255, +183,247,52,247,8,254,60,3,170,5,83,8,102,12,254,20,165,29,179,24,189,6,85,248,235,243,33,243,169,241,216,236, +205,228,200,225,101,231,157,237,226,241,252,250,227,7,171,14,20,10,146,252,145,237,187,230,52,235,103,243,49,246,112,241, +67,232,83,222,59,215,148,215,37,225,183,237,206,243,244,239,138,228,65,214,67,205,139,208,4,221,127,232,129,235,157,228, +183,216,52,209,149,211,88,220,191,227,220,227,104,220,87,211,80,205,170,200,116,197,169,200,245,208,124,212,74,206,62,196, +171,191,104,197,191,209,234,219,134,224,26,227,41,229,53,229,200,227,0,225,137,219,121,213,212,208,222,201,182,190,146,181, +76,181,143,191,209,208,174,223,208,228,235,228,225,230,30,231,93,225,233,217,178,212,59,209,18,207,209,203,247,197,104,196, +123,204,102,215,240,222,69,229,222,232,156,228,124,219,30,212,144,208,207,209,235,214,108,218,123,218,77,219,182,222,16,228, +213,235,178,243,128,247,170,246,163,241,14,233,241,225,206,224,135,227,28,230,242,229,208,225,81,222,249,225,112,234,177,241, +0,248,95,253,186,253,51,250,61,248,154,248,3,250,248,252,99,255,174,253,14,248,235,240,173,234,123,232,3,236,55,243, +68,249,102,249,17,245,192,244,237,251,164,3,111,7,125,11,81,17,205,18,32,11,78,253,157,242,249,242,251,251,170,3, +149,5,73,5,200,4,228,2,40,2,132,7,147,17,133,24,168,23,95,17,6,10,241,4,235,4,232,9,230,16,42,24, +7,30,41,30,227,23,172,17,199,16,38,20,17,24,247,24,149,22,71,21,248,21,234,19,162,16,139,20,156,31,226,39, +37,39,67,32,125,27,139,31,167,40,90,44,25,41,140,38,217,39,163,41,170,40,4,36,14,31,96,31,163,35,26,37, +244,35,76,38,253,44,220,51,132,56,222,58,194,59,166,60,152,61,111,60,117,55,158,48,18,45,97,47,226,51,116,54, +109,55,212,55,18,56,166,58,192,63,1,66,6,63,51,60,14,62,212,65,250,65,132,61,10,58,119,60,173,64,192,63, +208,59,170,59,59,63,189,65,129,65,169,63,161,61,197,60,98,61,194,62,32,64,122,64,146,63,147,62,186,61,218,60, +208,61,189,64,177,65,123,63,86,61,78,59,179,54,235,48,243,44,155,42,234,40,252,38,214,35,123,34,215,38,64,45, +234,47,125,48,13,49,172,45,145,37,73,30,15,27,30,27,203,27,128,23,190,12,138,3,62,1,92,1,121,1,195,4, +215,10,243,16,162,21,70,20,93,10,36,0,215,253,90,0,124,1,114,255,72,250,132,243,56,236,111,226,21,216,102,212, +152,216,61,223,14,229,98,231,192,228,32,227,193,230,111,233,182,231,131,230,5,230,148,225,98,216,113,202,221,185,45,175, +94,173,178,173,94,175,186,182,221,191,4,198,242,202,42,205,40,202,143,198,168,195,197,188,177,181,33,181,82,181,129,174, +131,164,162,158,249,158,21,163,9,166,228,166,126,170,253,176,179,179,202,175,162,168,148,163,153,165,45,172,208,172,240,164, +207,158,119,160,3,163,234,157,255,147,236,146,13,161,199,175,9,175,130,166,104,167,191,176,216,179,255,169,248,155,13,152, +81,160,82,167,22,165,60,162,192,166,209,174,231,179,107,179,57,176,59,178,80,187,21,194,206,192,59,188,109,183,65,177, +156,172,18,174,5,182,104,193,132,202,185,204,146,203,11,206,82,211,179,213,64,213,210,214,15,219,172,220,74,216,86,210, +202,209,130,215,37,222,204,224,158,224,240,227,0,237,188,244,66,245,62,243,81,245,29,250,49,252,183,249,197,246,210,248, +135,254,147,1,188,1,190,3,73,7,91,9,133,10,19,12,212,14,213,19,183,24,81,27,197,31,92,39,85,42,75,37, +111,31,210,30,148,34,63,38,0,37,81,32,243,31,59,37,180,41,89,44,181,49,124,57,27,63,230,63,220,60,12,58, +197,57,124,57,188,55,1,55,136,56,240,59,222,64,90,68,107,68,148,68,144,70,189,70,20,68,91,65,72,64,188,65, +94,68,77,68,100,66,184,66,233,67,184,68,153,73,40,82,122,87,190,87,233,85,158,83,3,82,131,79,96,73,85,68, +22,69,81,69,114,65,172,64,91,68,14,71,185,74,248,81,153,88,211,93,29,98,183,95,224,86,97,80,245,76,119,71, +224,64,146,58,222,52,144,53,162,61,44,68,77,71,76,77,140,83,106,82,43,75,7,68,226,64,101,66,203,67,96,63, +129,55,148,50,240,49,233,50,154,51,134,53,103,60,62,70,247,73,207,67,123,57,201,47,90,39,100,33,251,30,108,31, +65,33,84,34,127,34,62,37,100,43,121,48,117,49,100,47,62,44,29,41,232,35,160,24,56,9,196,252,203,245,213,241, +138,239,81,240,10,248,206,7,177,22,36,27,139,24,250,21,45,18,169,10,208,255,237,240,159,225,60,217,57,214,164,210, +191,208,67,211,116,215,226,222,184,235,12,247,201,251,44,253,68,250,250,238,176,223,233,210,206,201,75,198,248,200,130,203, +72,202,225,200,21,200,169,198,135,200,220,206,255,210,14,210,47,208,95,206,94,202,147,197,120,194,66,193,8,195,48,200, +48,204,208,202,208,198,34,197,13,197,172,193,65,185,16,177,108,176,227,182,28,188,237,187,207,186,30,188,5,190,1,192, +172,195,155,200,76,206,176,212,89,215,124,208,89,194,20,182,143,177,34,179,184,181,194,182,103,184,144,189,211,196,189,201, +139,202,57,202,110,204,207,208,252,211,199,211,96,208,174,203,155,200,168,199,25,198,189,195,61,196,253,200,146,208,92,217, +228,222,32,221,180,216,25,216,55,216,24,212,149,207,243,208,150,216,166,225,183,229,164,227,224,225,23,228,9,231,253,233, +89,238,39,240,218,236,207,232,56,230,116,227,192,225,214,225,227,226,234,232,26,245,65,253,12,251,194,246,102,247,84,249, +207,248,93,246,128,243,11,244,74,250,60,0,127,255,241,251,164,252,0,1,228,3,115,3,204,1,162,1,59,3,228,3, +163,1,254,254,71,0,175,5,121,11,64,15,241,16,24,16,146,12,118,8,42,6,35,6,27,7,70,7,49,7,137,10, +18,18,110,24,250,25,26,26,64,28,211,29,80,26,21,18,205,11,80,13,246,17,93,15,32,6,245,1,38,7,23,14, +148,17,190,19,199,22,35,27,37,32,77,34,208,32,12,34,46,40,124,42,233,35,235,26,34,20,209,12,28,4,163,252, +118,249,216,254,146,11,210,21,1,27,13,36,232,48,72,54,217,50,53,47,187,45,50,43,148,36,30,24,121,12,119,12, +106,19,138,18,112,10,220,7,165,14,52,25,13,33,154,34,225,34,158,41,236,49,194,49,106,44,47,43,218,45,58,47, +134,45,2,42,65,39,120,37,148,33,56,28,125,25,159,24,63,23,106,24,47,31,177,41,247,51,134,57,195,57,104,59, +84,65,49,67,192,59,255,49,228,45,134,47,249,48,146,43,100,33,202,29,195,36,29,45,48,48,75,49,9,53,1,60, +139,66,211,66,210,60,154,55,119,54,217,53,216,51,147,50,96,51,159,52,45,51,19,47,120,45,15,49,106,53,80,55, +125,57,212,60,248,60,164,55,10,49,223,46,20,49,154,49,245,44,171,39,178,39,197,43,31,45,188,40,65,36,194,38, +210,45,86,48,93,43,201,36,112,34,169,35,126,34,59,27,148,18,7,15,81,15,77,15,137,15,137,17,88,20,62,22, +110,20,19,14,9,8,35,5,198,1,211,253,54,253,243,252,30,248,52,243,223,244,179,251,198,1,149,2,119,254,181,250, +102,248,47,241,45,228,243,217,34,215,239,215,210,215,183,212,59,208,30,208,160,214,61,222,177,225,247,225,172,226,123,228, +3,227,69,218,233,205,110,196,78,190,49,185,179,180,104,176,210,173,222,176,63,184,198,190,3,196,159,199,70,197,229,190, +130,188,133,190,173,190,147,186,209,179,238,173,70,172,254,170,250,163,132,156,2,158,146,165,207,170,50,173,211,175,172,178, +14,180,153,177,230,170,194,164,82,163,211,163,16,162,31,159,132,159,65,165,73,172,18,175,31,175,250,177,129,182,51,183, +32,180,1,177,3,174,20,169,99,162,36,157,39,157,180,162,51,170,128,177,206,185,158,195,160,204,240,208,8,206,248,198, +58,194,75,193,126,192,17,190,136,186,205,182,121,182,1,188,125,195,177,201,57,209,246,217,105,223,230,225,110,228,10,229, +237,225,151,221,118,217,193,214,240,216,112,222,142,225,171,227,196,232,203,236,10,237,198,239,227,246,185,251,220,252,166,254, +151,0,215,255,72,253,170,250,209,249,40,253,69,3,151,8,134,13,161,18,229,20,120,20,114,21,48,24,108,26,59,28, +171,29,6,30,145,30,150,31,45,31,195,30,0,34,51,40,243,45,97,49,34,49,161,45,244,42,43,43,9,43,4,41, +64,41,159,47,80,58,200,66,121,67,174,62,179,60,39,64,194,66,140,64,44,61,216,59,80,59,158,58,132,58,136,59, +137,62,181,67,157,72,145,75,172,77,46,79,173,79,147,80,213,80,20,76,31,67,201,60,251,60,173,66,128,74,252,78, +73,78,227,77,67,80,175,79,244,73,41,69,32,70,154,75,10,80,1,77,123,67,9,61,169,62,166,67,74,71,1,73, +115,73,79,74,219,75,46,75,155,71,215,67,176,64,226,61,184,59,63,56,29,51,51,49,153,52,135,57,169,61,56,64, +86,63,123,60,75,58,163,54,79,48,192,42,252,38,208,35,1,34,217,31,132,26,58,22,150,24,173,30,169,33,152,30, +195,23,137,18,0,16,106,10,118,0,142,249,88,250,185,255,68,4,184,4,241,3,136,7,143,12,100,11,169,4,140,252, +10,244,126,238,143,236,98,230,101,219,72,214,167,217,63,224,165,233,28,243,119,246,207,246,92,248,144,246,101,241,213,237, +193,232,163,224,108,219,7,214,237,201,156,191,43,192,236,197,2,203,248,207,26,212,12,217,118,225,221,231,34,231,31,227, +228,222,226,217,133,213,23,209,131,202,25,197,91,195,134,194,112,193,152,191,69,188,178,189,82,200,214,210,233,212,34,211, +181,210,114,212,218,216,223,219,231,217,137,216,248,218,208,219,250,217,127,215,23,210,31,204,138,202,239,200,208,196,184,197, +29,205,122,213,85,222,114,229,242,230,108,233,203,240,19,243,125,237,222,232,55,229,112,222,5,216,66,210,194,203,43,204, +226,213,25,223,234,228,19,236,184,242,21,246,182,247,9,246,86,240,163,235,208,234,128,237,233,242,36,246,218,244,184,245, +225,250,30,254,215,254,65,255,85,252,246,247,51,248,179,250,199,252,25,3,148,12,211,17,191,17,255,14,102,12,25,15, +48,21,108,21,121,16,168,13,34,11,57,6,202,3,137,5,80,10,3,20,160,30,45,34,220,32,178,32,203,32,101,32, +11,32,179,28,62,23,255,19,31,16,210,9,18,9,182,16,29,25,208,30,181,35,52,39,98,41,244,42,152,41,50,38, +247,36,13,36,255,31,85,28,95,28,176,29,253,29,177,28,135,26,184,27,151,33,201,37,128,37,39,39,205,45,46,51, +94,49,39,41,199,31,39,27,51,29,180,33,14,35,246,31,254,27,69,27,73,29,184,29,251,27,53,29,170,35,183,41, +41,41,169,34,248,26,181,21,60,20,122,21,10,23,248,24,240,28,77,33,124,34,19,31,192,22,44,12,186,7,226,12, +255,17,5,15,66,10,236,12,94,22,49,30,79,28,40,19,78,15,249,18,211,15,23,0,50,240,99,233,31,233,170,234, +55,234,200,233,183,243,241,7,229,20,225,17,221,8,99,0,79,246,179,235,24,226,209,217,141,216,164,223,117,228,95,226, +13,226,10,231,66,236,253,240,112,245,39,244,21,236,133,227,195,220,222,214,50,214,97,221,92,229,92,232,40,234,44,237, +246,236,211,232,186,229,48,228,114,224,66,217,143,207,88,199,234,199,176,208,36,215,63,216,143,219,30,227,29,235,227,242, +116,247,99,243,134,233,92,223,210,211,196,200,193,196,155,198,9,202,195,208,143,216,138,218,148,217,229,220,4,227,59,233, +112,239,101,240,45,234,105,229,42,228,193,221,37,211,246,206,153,210,118,215,230,217,36,217,253,216,205,224,188,237,123,243, +236,240,71,240,32,243,46,242,82,235,0,226,178,218,94,218,217,223,229,226,157,226,98,231,219,240,229,244,88,242,17,242, +81,247,19,253,45,253,143,244,193,232,119,229,131,236,175,243,131,246,41,249,73,251,6,250,98,248,181,248,250,248,154,249, +245,250,71,249,156,245,248,246,115,253,189,2,153,5,104,8,60,11,182,13,187,14,227,11,8,7,43,4,145,1,217,252, +58,250,237,252,172,1,109,5,29,8,160,10,245,15,75,25,77,32,193,30,131,23,94,16,207,10,255,6,129,5,149,5, +244,6,27,10,61,13,110,14,84,16,113,22,136,29,70,30,235,23,4,17,182,12,134,8,225,4,170,4,202,6,16,10, +2,16,228,21,149,23,222,24,196,29,104,33,54,31,151,24,77,15,0,7,142,4,129,4,59,1,129,255,254,3,166,9, +216,13,151,18,42,21,63,21,86,24,153,27,82,23,88,15,137,11,136,11,174,12,212,11,236,4,197,253,99,0,14,8, +179,10,183,10,40,12,74,12,66,12,73,14,221,13,142,10,145,10,78,13,222,13,122,13,88,14,74,15,4,16,46,16, +246,14,82,14,68,15,9,16,168,16,245,15,125,10,88,4,201,5,41,13,95,20,41,27,32,32,119,31,230,27,238,25, +43,25,33,26,105,29,7,31,179,29,20,28,47,24,30,17,148,14,32,21,222,30,181,36,114,35,180,28,184,24,127,28, +169,33,227,34,107,36,213,40,11,44,227,42,137,37,29,31,204,29,55,35,237,39,59,37,141,29,77,24,110,26,53,34, +150,40,197,40,232,36,116,34,3,36,19,38,183,35,14,32,201,34,131,41,200,41,226,33,50,26,210,24,255,28,14,33, +18,31,72,25,203,23,205,26,18,27,167,23,122,21,16,21,86,20,156,20,176,22,88,23,196,20,114,18,241,19,235,22, +203,22,41,20,83,18,231,15,5,10,62,3,15,255,55,252,6,250,251,250,243,253,166,254,204,253,60,255,222,2,42,7, +210,11,112,13,68,8,85,255,40,247,4,239,60,231,59,227,109,225,240,221,62,219,218,220,93,225,193,231,111,239,15,244, +222,243,168,242,87,241,154,237,19,232,48,225,169,215,26,206,67,200,191,197,120,198,138,203,111,210,77,216,143,220,229,220, +31,217,231,214,39,216,218,216,20,217,188,217,250,212,217,200,0,190,156,186,200,187,206,189,219,191,211,193,70,195,108,194, +1,191,249,189,235,194,39,201,182,202,138,200,52,199,125,200,187,201,101,199,107,194,170,190,196,188,86,187,188,186,103,186, +214,184,35,184,15,187,56,191,212,192,240,192,190,195,16,202,159,206,191,204,23,200,131,198,145,197,1,192,253,184,26,184, +95,190,20,197,193,197,245,193,47,193,67,198,65,204,236,206,176,207,52,210,58,215,48,218,134,214,81,207,143,202,171,200, +150,200,148,203,126,208,76,213,165,218,244,222,42,224,83,226,159,231,206,234,41,234,190,232,59,229,76,223,222,219,141,219, +186,220,37,227,254,237,220,244,172,246,64,249,114,253,37,2,57,7,34,9,49,7,107,6,79,6,210,2,157,255,247,0, +210,3,30,6,218,8,140,10,157,10,244,10,143,11,42,13,75,18,87,25,231,30,84,35,81,39,52,42,192,43,25,42, +175,36,84,32,91,31,55,30,244,28,210,30,188,34,140,38,10,41,174,39,117,37,14,42,218,51,51,59,204,63,12,67, +97,66,76,63,13,61,25,58,18,55,36,55,206,55,108,54,8,53,100,51,101,49,40,51,9,56,159,60,206,68,72,81, +134,88,95,87,141,84,40,82,173,78,66,75,175,71,185,68,235,69,182,72,52,72,109,71,76,72,90,70,229,66,72,67, +189,70,157,76,15,86,39,93,125,92,130,88,134,85,87,83,21,83,252,82,89,78,147,71,87,67,84,63,5,58,58,55, +24,57,125,64,174,77,158,90,200,95,22,93,159,86,98,80,169,76,1,72,105,63,36,57,71,58,20,61,72,59,192,52, +10,45,8,44,187,52,148,59,45,56,155,51,128,53,135,56,202,55,94,50,96,40,202,32,224,33,108,36,18,32,151,24, +4,20,37,19,100,20,172,19,96,15,247,12,210,14,53,16,143,15,175,13,54,8,148,0,146,251,70,248,116,245,22,246, +130,248,23,249,190,250,131,253,102,250,56,241,147,233,94,230,199,228,208,224,116,216,75,209,193,210,189,216,152,217,98,212, +86,206,10,204,14,208,1,215,57,218,149,216,169,211,172,203,68,196,37,192,115,187,35,183,169,185,58,190,192,186,163,178, +57,174,155,173,228,175,201,180,81,183,211,181,213,180,85,181,230,181,146,183,58,185,254,185,227,188,143,190,75,182,21,167, +162,156,237,154,217,158,103,163,54,163,249,161,162,169,31,183,38,191,246,194,149,200,177,203,251,199,75,192,8,182,245,170, +204,164,50,164,221,164,226,166,232,170,26,174,104,177,131,184,39,194,39,203,11,210,163,212,6,211,168,208,47,205,111,198, +207,192,83,193,171,196,119,197,238,195,209,195,236,200,89,211,28,221,86,225,29,227,109,230,220,232,96,231,24,228,121,226, +42,227,249,228,118,230,23,231,182,232,52,238,131,246,190,251,177,250,99,247,244,245,225,244,211,242,167,242,95,246,1,253, +16,5,157,11,158,13,106,13,198,15,152,19,66,20,90,17,194,13,14,11,127,9,240,8,10,9,101,10,63,14,171,20, +7,28,93,33,61,34,73,32,92,32,55,36,54,40,136,40,179,37,42,35,32,35,118,36,225,36,24,36,175,35,166,36, +114,38,132,39,242,38,40,38,209,39,224,44,184,51,189,56,196,55,182,48,73,42,9,43,223,48,56,52,209,49,199,45, +144,45,124,48,29,48,244,41,152,36,137,38,220,44,134,48,137,47,52,45,43,46,74,52,203,58,94,58,142,51,92,46, +201,46,237,48,43,47,236,39,17,32,14,31,60,36,106,38,151,34,115,32,252,36,46,44,41,48,211,45,234,38,107,35, +143,40,184,47,12,48,242,42,129,38,227,35,178,32,4,27,91,19,14,14,53,15,44,21,178,27,16,33,115,36,167,36, +148,34,203,32,215,32,210,34,75,37,197,37,33,35,212,29,22,22,61,13,130,7,158,8,252,14,39,20,236,18,217,13, +140,13,118,21,218,29,168,30,231,27,170,30,156,37,87,39,221,32,81,23,128,15,207,11,215,11,76,10,171,4,183,2, +182,10,91,21,118,24,86,20,108,16,236,18,109,27,201,33,30,32,45,27,128,24,75,21,84,14,116,5,130,253,243,249, +116,253,244,3,147,6,108,4,18,1,119,0,195,4,170,9,185,8,8,5,93,6,166,11,109,14,135,11,153,2,161,247, +142,242,212,244,230,247,193,247,217,244,69,240,100,236,13,234,126,231,202,231,136,240,83,254,13,8,134,9,18,4,253,252, +212,249,187,247,72,240,225,229,209,221,198,215,65,212,11,212,0,211,77,210,145,217,62,230,36,239,152,244,131,249,48,251, +194,249,104,246,186,237,69,225,153,214,97,203,66,190,11,183,201,183,206,186,222,192,238,203,95,215,191,225,169,235,144,239, +254,235,42,231,36,225,238,214,137,205,123,200,17,196,179,191,82,189,103,188,220,191,118,202,49,213,134,216,11,215,221,213, +69,214,45,215,93,213,172,208,77,207,96,211,178,214,78,213,141,208,159,202,2,199,205,198,89,197,132,193,157,192,199,195, +141,199,104,202,23,203,50,203,150,209,51,221,141,226,189,222,22,217,114,211,29,205,248,201,157,201,205,199,193,198,58,201, +133,203,234,203,41,205,105,208,20,214,134,221,134,226,214,227,190,228,73,228,63,224,230,220,234,220,132,220,3,219,124,219, +133,221,173,223,134,225,219,224,43,222,226,221,8,224,232,225,108,229,151,235,213,240,165,244,181,248,135,250,132,248,87,245, +224,241,139,237,201,233,218,230,93,228,173,228,107,232,13,237,2,242,206,246,202,249,72,254,153,7,190,15,69,17,228,15, +64,13,202,6,107,0,148,254,149,253,252,251,185,253,6,1,220,1,148,2,225,4,72,7,29,12,120,20,145,27,154,32, +149,38,76,41,75,35,245,24,194,17,234,15,156,17,86,18,208,15,198,14,65,18,60,22,120,26,63,35,62,45,153,49, +18,49,198,46,254,42,195,39,160,38,198,37,251,37,192,40,215,41,190,38,107,36,169,37,231,39,107,42,83,45,189,46, +170,47,35,51,209,55,23,58,97,57,162,55,209,54,100,54,128,51,222,46,192,45,204,49,120,54,114,55,207,52,222,50, +184,53,170,58,222,59,13,58,66,57,181,57,192,59,9,64,211,65,19,62,29,58,55,57,58,56,9,55,202,55,181,56, +138,56,245,55,187,53,44,51,139,52,8,57,130,62,236,70,164,78,30,77,159,68,42,62,0,58,231,52,60,49,36,49, +3,52,122,56,188,57,61,53,17,50,216,53,228,59,66,64,48,68,17,70,207,67,105,63,27,57,63,48,136,41,146,40, +241,41,172,42,164,43,185,44,127,45,175,47,209,51,90,55,82,55,233,51,46,49,155,48,159,44,130,34,252,25,225,25, +127,30,215,32,253,29,155,23,80,19,30,20,13,21,3,18,151,14,158,13,74,13,163,12,185,10,170,6,91,5,212,10, +248,15,211,12,140,4,236,252,129,246,148,240,20,234,150,226,177,222,38,225,132,228,162,230,185,236,169,244,252,245,109,242, +143,241,99,242,153,239,73,231,70,218,142,206,225,202,168,201,81,193,173,184,28,189,74,203,223,212,178,211,105,205,119,204, +117,212,34,219,47,215,219,207,172,206,215,206,73,200,68,188,53,177,16,173,20,176,238,177,241,173,71,171,119,174,220,177, +146,178,232,179,187,183,135,190,222,197,12,198,243,189,232,182,127,179,249,172,212,163,221,158,159,158,132,159,230,159,99,160, +190,164,110,174,96,182,254,182,211,180,150,180,222,180,229,179,4,177,118,173,97,173,90,175,231,171,98,164,91,161,53,163, +41,166,19,171,134,176,238,178,58,180,2,182,138,182,120,184,67,190,2,196,178,199,9,201,125,195,11,185,196,179,209,179, +199,178,206,179,54,186,93,192,33,196,13,200,66,203,24,207,224,213,198,218,44,220,46,223,49,224,141,217,80,211,78,211, +210,210,105,209,179,212,208,216,33,218,201,220,88,224,96,227,234,234,155,244,179,247,158,247,152,251,179,255,69,0,228,255, +153,254,69,253,176,254,128,254,122,249,237,246,135,250,175,254,86,1,14,4,14,7,27,13,49,22,22,28,16,31,7,36, +0,39,79,37,16,38,151,41,162,40,189,36,5,34,154,30,183,28,119,31,38,33,6,32,56,35,244,42,45,50,37,57, +69,62,126,62,130,63,72,69,193,72,53,70,241,65,224,61,218,58,213,57,191,54,146,49,199,50,135,58,94,63,54,64, +60,66,164,69,48,74,143,79,242,80,235,78,14,81,213,85,159,84,59,78,246,72,116,69,1,67,64,67,65,70,112,74, +72,77,206,75,203,71,14,71,231,74,210,79,7,83,184,82,253,78,233,75,8,76,93,76,160,74,67,73,144,74,190,76, +41,76,1,72,202,67,16,67,54,69,43,71,186,70,227,67,232,64,190,63,24,64,154,65,45,68,32,70,95,70,85,69, +243,65,158,60,212,57,178,58,45,59,159,58,109,58,235,55,178,50,126,47,104,47,32,48,216,49,45,51,8,49,202,45, +23,45,128,45,48,46,39,48,16,49,165,47,76,46,51,44,89,39,231,34,250,32,230,30,37,28,207,25,79,22,117,18, +109,18,46,22,146,25,98,26,131,25,69,25,146,25,118,22,1,16,223,12,158,14,100,14,58,8,92,254,90,244,186,237, +218,234,146,232,218,231,10,236,141,241,218,243,82,245,87,247,159,247,31,247,238,245,56,240,55,231,80,223,57,215,97,206, +54,201,255,199,22,200,28,203,213,208,72,213,229,216,240,220,5,222,245,219,6,218,101,214,77,207,50,201,226,198,148,198, +247,198,12,198,42,194,148,190,245,189,254,189,17,190,122,191,167,192,152,193,82,196,252,197,44,196,102,195,169,197,148,198, +54,197,3,196,220,193,42,189,212,182,17,176,232,171,158,173,235,178,229,183,107,188,213,191,120,192,20,192,163,191,120,189, +31,188,105,191,78,196,163,198,41,199,105,198,91,196,139,195,115,195,22,192,222,186,180,184,255,185,131,189,45,195,113,200, +214,203,203,208,214,215,23,220,225,220,17,222,233,222,87,219,116,211,177,202,204,195,114,192,88,193,11,198,77,205,253,212, +200,219,172,226,170,233,39,238,200,239,126,240,210,238,22,233,171,227,230,225,72,223,5,217,198,212,124,215,23,223,10,231, +57,236,189,239,42,247,8,3,168,10,157,9,0,6,210,3,84,0,151,250,38,244,250,237,96,235,192,238,26,244,189,247, +180,251,132,1,102,8,134,16,237,23,234,26,93,26,228,24,200,21,76,17,165,13,74,10,147,6,43,4,177,2,60,1, +18,2,172,5,230,9,232,15,247,24,254,33,16,41,41,46,201,46,130,42,15,37,2,31,69,23,222,16,41,13,228,9, +201,8,136,12,37,18,132,23,159,30,131,38,62,44,39,47,238,45,119,40,148,35,112,33,71,30,121,25,113,22,56,22, +233,24,193,29,199,31,232,28,193,26,24,28,136,28,43,26,246,23,251,23,124,26,189,29,253,29,225,26,196,24,28,26, +81,29,238,31,231,31,102,29,224,27,84,29,236,30,248,28,181,23,201,18,82,16,0,14,163,10,100,10,118,15,248,21, +207,27,34,34,253,38,113,40,118,40,151,38,83,32,154,24,46,19,85,14,112,9,130,7,134,8,138,10,238,13,166,18, +43,24,16,31,152,36,107,36,196,32,75,30,160,27,183,22,15,18,112,15,105,15,63,20,51,28,217,31,253,28,37,26, +149,27,44,29,142,25,131,18,252,15,165,22,6,33,97,37,191,33,61,29,65,29,43,31,225,30,196,29,117,31,76,36, +95,41,138,42,115,37,221,29,218,26,128,29,60,32,73,31,240,27,49,25,42,25,193,27,140,31,148,36,18,43,7,49, +172,52,75,53,27,49,178,40,149,33,27,31,57,30,107,27,114,22,148,17,69,17,196,23,135,32,5,38,115,40,106,42, +58,44,95,44,43,41,201,35,159,32,170,32,215,30,4,24,250,15,58,12,144,13,123,15,120,14,60,13,135,14,31,15, +0,14,180,16,236,23,114,28,84,26,136,19,5,11,150,4,179,1,162,254,32,250,175,247,163,246,123,243,180,239,233,237, +117,238,39,243,252,250,101,255,157,254,70,253,250,251,211,248,73,245,89,241,166,235,112,230,54,225,16,215,4,203,91,198, +203,201,48,207,229,211,211,215,182,219,86,225,5,230,155,228,137,223,117,220,165,217,142,211,166,203,22,195,105,186,236,181, +220,182,140,183,143,182,223,185,69,194,160,200,79,201,76,199,102,197,122,196,191,196,253,195,144,191,156,185,42,182,181,180, +127,178,13,175,166,170,121,166,46,166,49,170,164,173,155,175,85,180,129,186,69,188,173,185,143,182,207,179,130,178,123,180, +218,182,74,181,208,176,254,172,88,171,220,171,109,173,246,174,151,177,164,181,84,184,229,184,111,186,190,189,25,192,255,191, +168,189,250,185,174,183,190,184,54,187,129,189,247,193,71,201,192,206,221,206,132,204,98,204,51,207,135,210,4,212,129,211, +34,211,191,211,192,210,209,207,143,208,7,216,185,224,139,229,195,232,51,237,11,241,237,241,114,239,244,234,118,232,95,235, +30,241,83,244,15,244,204,243,88,246,234,250,159,254,31,1,178,5,46,13,7,19,152,19,129,16,11,13,26,11,156,11, +5,14,34,16,61,17,252,19,157,26,56,34,71,37,162,35,101,35,245,39,6,45,35,45,58,41,8,39,124,41,224,44, +81,44,37,41,247,40,2,46,111,53,7,59,134,60,133,59,88,59,243,59,18,59,235,57,174,59,243,63,72,67,6,67, +107,63,52,60,142,60,147,62,160,63,145,65,165,69,171,72,180,72,216,71,134,72,160,75,76,79,127,79,130,76,170,75, +108,77,108,76,31,72,214,68,92,67,81,66,145,66,106,68,231,70,58,74,104,77,225,77,143,76,216,76,114,78,79,78, +136,75,170,71,126,68,35,66,166,62,169,57,164,54,163,55,235,57,184,59,107,63,136,69,179,73,228,72,199,69,228,67, +252,65,152,60,48,52,59,45,227,42,17,44,26,45,129,43,171,40,167,39,50,40,72,39,99,36,47,34,151,34,95,36, +197,35,120,30,60,24,253,22,141,25,30,25,137,19,253,12,32,9,115,7,114,4,84,253,76,244,114,238,99,237,64,239, +152,242,138,246,177,250,29,255,245,0,131,252,233,244,253,240,108,240,151,237,58,231,4,224,214,216,172,208,87,200,193,196, +188,202,122,214,22,222,5,223,218,223,132,228,235,233,80,235,50,231,143,225,60,223,79,221,241,212,144,198,69,184,200,174, +56,173,50,178,253,182,255,186,99,197,41,213,35,224,92,226,73,223,150,218,46,216,145,215,253,208,23,195,128,183,106,178, +77,175,223,173,79,177,219,184,229,194,181,205,52,213,29,216,151,216,185,214,145,212,72,215,37,220,227,218,253,212,155,210, +113,212,213,212,7,208,179,199,73,195,194,199,9,207,206,209,100,211,163,217,150,227,197,237,45,245,130,247,6,247,166,247, +14,248,14,245,94,238,138,228,117,218,205,213,4,215,157,217,72,222,148,232,231,245,6,1,53,8,68,11,69,11,79,11, +105,12,141,12,213,9,39,3,58,250,206,244,70,245,245,246,118,247,236,250,192,3,2,15,134,24,114,29,64,30,247,30, +58,33,170,33,158,29,81,22,56,15,196,12,34,16,124,19,173,17,116,15,191,20,11,32,201,39,146,38,7,33,69,31, +23,35,249,38,219,37,229,32,100,29,169,30,111,34,48,36,60,35,222,34,15,37,0,40,117,40,97,37,160,33,199,32, +70,34,251,34,73,34,2,34,67,35,180,37,172,39,145,39,35,38,20,37,62,36,55,35,150,34,232,33,252,31,175,28, +148,24,198,21,110,23,90,28,108,31,40,32,106,34,103,37,96,36,195,30,7,25,61,23,219,24,51,25,182,21,79,17, +223,14,111,14,147,16,80,20,220,20,56,17,24,15,65,17,188,19,182,18,63,14,240,8,185,5,224,4,221,4,62,6, +17,10,173,14,121,17,100,16,140,10,174,2,0,253,239,250,119,252,102,255,139,253,141,245,85,239,21,239,236,240,164,243, +223,247,218,250,56,253,235,0,35,0,232,247,105,240,102,237,210,233,51,229,72,225,121,220,39,218,205,221,108,224,160,221, +228,219,6,222,207,225,149,232,181,239,139,241,220,241,170,243,173,239,164,229,200,222,147,219,156,216,186,216,234,217,152,214, +179,210,153,210,190,211,229,215,181,224,151,230,59,231,182,233,193,237,63,238,73,236,78,232,31,226,216,223,100,226,107,225, +116,219,252,213,204,210,135,211,97,215,119,214,42,210,57,215,119,228,170,236,215,238,29,241,177,243,238,246,197,248,212,241, +11,230,48,226,110,228,199,226,217,221,82,217,103,214,6,218,144,227,221,233,156,236,169,242,12,250,249,253,82,254,29,249, +241,239,215,236,97,242,133,247,148,247,102,244,169,239,171,236,206,236,123,236,153,236,145,241,25,248,104,251,78,253,214,253, +140,251,121,251,17,0,3,3,179,1,147,255,27,253,173,250,241,250,68,252,190,252,214,255,40,5,54,6,197,2,10,1, +57,3,174,7,207,12,159,15,194,13,250,8,98,4,233,1,141,3,75,10,139,19,34,26,140,26,28,22,5,17,186,13, +193,12,2,15,188,19,177,22,100,20,176,14,43,11,73,13,188,18,202,22,154,24,13,27,10,31,169,33,110,32,198,28, +205,25,154,23,14,20,165,15,190,12,248,11,189,13,197,18,116,24,120,27,73,29,128,32,233,35,147,37,230,36,125,33, +138,28,250,23,37,19,32,13,202,7,116,5,232,7,136,15,87,23,187,24,22,21,124,19,118,22,74,26,16,26,79,21, +23,18,233,20,162,24,148,22,249,16,97,14,138,17,120,23,69,25,18,20,82,14,151,13,97,14,202,12,105,10,89,9, +225,10,61,15,45,19,153,21,31,27,103,36,216,42,238,41,63,34,153,23,200,16,25,16,103,15,182,11,203,8,188,6, +119,3,64,2,211,5,118,13,188,25,121,39,250,45,167,43,210,38,109,33,172,26,147,21,191,19,59,19,193,18,203,16, +229,12,17,11,28,13,10,15,30,16,194,19,26,25,222,28,199,30,253,30,181,29,236,28,227,28,6,28,229,26,78,26, +138,25,81,25,254,25,247,24,150,21,227,18,44,18,6,18,104,17,134,16,215,16,17,19,103,20,231,17,195,12,228,7, +149,5,64,7,61,11,247,14,59,19,156,23,203,23,132,19,129,14,88,8,156,0,16,252,202,251,174,250,85,247,136,244, +133,243,79,245,112,249,197,251,230,251,190,254,16,4,172,6,132,5,45,1,60,248,97,237,219,230,196,229,83,230,240,229, +144,228,214,227,155,228,101,228,157,225,251,223,246,226,186,231,205,232,215,228,41,224,72,223,164,224,12,224,67,222,181,221, +226,220,207,218,92,216,51,211,168,202,10,197,140,197,90,199,224,200,193,205,241,212,206,217,187,218,243,215,143,211,115,209, +46,208,155,202,106,195,129,193,79,195,86,195,185,194,178,197,139,204,196,210,41,210,82,203,71,200,165,205,17,210,193,205, +197,197,5,194,213,195,27,199,237,198,241,196,192,200,183,209,252,212,155,206,164,197,17,192,234,191,34,197,244,202,214,205, +165,209,155,215,111,217,41,213,201,207,151,204,242,204,226,208,84,211,178,208,89,205,45,205,76,207,13,212,124,218,173,221, +148,221,26,223,159,225,70,225,136,222,235,218,226,215,101,217,41,223,103,226,193,225,170,227,84,234,222,240,83,243,196,241, +168,238,238,236,145,237,48,239,158,239,219,237,240,236,102,241,6,249,160,252,40,251,52,250,116,253,88,4,238,10,98,11, +124,5,159,0,235,0,156,2,90,2,105,1,241,2,105,9,63,18,15,22,55,19,220,16,233,18,95,21,103,21,212,20, +135,21,36,24,99,28,233,31,93,32,142,30,21,29,171,29,185,32,48,37,99,40,219,39,21,36,208,32,39,33,110,35, +139,35,226,33,15,36,53,44,88,51,151,49,32,42,228,39,118,46,223,53,165,54,157,50,251,47,221,48,138,49,79,45, +49,37,201,32,2,38,213,48,27,55,215,52,179,48,127,50,251,56,123,60,157,57,32,53,77,52,45,53,74,50,126,44, +67,42,88,45,146,48,99,48,111,46,77,45,44,46,93,49,180,53,166,56,14,56,228,51,216,46,55,44,221,44,116,47, +163,49,14,48,76,42,56,38,99,40,163,44,94,45,59,44,87,45,226,47,43,47,109,40,7,32,35,31,171,39,94,47, +1,45,165,36,142,33,248,39,233,47,126,46,167,36,232,30,201,34,34,38,149,31,94,21,176,19,231,27,107,36,162,37, +243,33,249,32,77,37,147,41,30,40,118,34,104,30,227,29,134,29,41,26,167,20,133,16,3,16,230,17,73,20,177,23, +162,27,124,28,195,25,204,23,114,23,50,21,165,17,29,17,239,19,55,22,135,20,179,14,168,8,129,6,56,7,124,7, +198,6,165,5,10,4,111,2,134,0,68,253,108,249,24,246,227,243,255,244,105,249,223,252,251,254,78,3,215,6,137,3, +238,250,133,241,86,233,164,229,149,230,39,229,119,222,38,216,9,214,164,216,95,224,93,233,226,239,75,247,202,254,255,251, +45,237,231,222,132,217,104,217,80,216,12,212,233,207,234,207,153,208,88,204,45,199,30,201,36,210,242,219,166,224,118,222, +1,218,252,215,174,213,88,208,79,204,55,204,50,204,178,201,237,197,26,194,153,191,164,191,226,193,63,198,69,204,171,208, +238,208,141,206,180,203,11,201,122,198,128,195,68,193,209,194,223,199,190,203,151,203,104,201,238,200,209,202,152,202,116,197, +163,193,92,197,237,202,13,202,196,197,111,198,66,205,180,211,133,211,6,207,225,206,139,211,118,210,34,200,68,191,13,192, +248,197,173,201,190,202,195,205,25,213,185,220,153,222,204,218,44,215,5,215,156,215,142,213,28,210,196,208,73,210,23,213, +173,215,139,216,0,216,87,217,101,221,214,224,248,226,230,229,131,232,34,233,209,232,41,231,190,227,230,225,133,226,224,226, +139,228,85,233,107,236,63,236,167,238,11,244,82,246,186,243,93,238,0,233,191,231,172,233,67,233,101,233,233,240,2,251, +16,0,35,3,213,6,108,6,234,1,146,254,139,252,62,249,127,244,176,238,107,234,174,236,62,245,168,254,146,6,49,14, +57,21,222,24,12,22,121,14,117,10,161,14,83,20,192,19,76,14,168,9,163,8,95,10,233,11,180,12,200,16,190,25, +23,34,50,36,206,32,50,29,124,30,39,36,3,39,202,34,34,29,208,28,63,32,107,34,17,35,156,37,138,43,90,50, +176,54,212,55,40,54,77,49,11,43,207,38,9,36,135,32,96,31,145,36,139,45,195,53,34,60,125,64,119,67,67,71, +32,74,0,71,11,63,135,56,226,52,125,49,27,46,12,44,79,44,135,47,43,52,181,56,67,63,73,72,205,78,4,80, +163,78,137,76,92,73,141,69,185,65,192,62,77,61,161,58,127,52,57,47,137,47,40,52,239,58,216,66,22,73,194,76, +134,79,144,79,197,74,147,68,118,64,173,62,147,63,224,64,84,62,13,58,209,56,70,57,213,57,18,60,117,61,79,59, +251,57,81,60,105,63,63,66,123,68,157,67,61,65,245,63,87,60,131,53,7,49,204,47,149,46,207,45,210,44,141,41, +106,40,63,45,245,50,252,52,38,52,164,48,106,44,238,43,120,45,1,44,228,40,34,39,14,37,183,32,74,26,186,19, +170,17,62,21,130,23,235,18,21,11,155,6,131,7,89,10,222,10,167,9,100,9,124,9,120,9,211,9,20,7,60,0, +181,251,98,250,53,245,146,236,129,230,156,226,80,223,180,221,194,219,64,218,166,222,210,229,79,232,220,232,112,234,179,231, +92,224,150,217,127,211,193,206,7,205,112,200,12,191,31,186,41,187,8,186,152,183,241,184,81,188,68,193,123,199,21,200, +199,194,168,192,94,194,84,194,70,193,24,191,47,185,135,179,244,175,79,168,248,157,26,154,101,157,119,162,222,166,85,169, +214,171,112,178,221,184,223,183,57,178,127,173,46,170,66,169,75,170,66,169,172,167,118,169,197,170,231,168,110,168,187,169, +153,169,238,169,49,171,137,170,161,170,42,174,87,177,43,179,184,182,89,187,220,191,252,194,153,191,107,183,4,181,103,184, +217,183,18,180,55,180,79,184,64,190,215,195,150,196,134,195,184,200,212,208,222,211,240,211,114,212,153,212,127,215,127,221, +126,222,214,216,61,212,95,211,113,212,103,215,228,217,16,219,35,224,190,232,208,236,117,235,86,235,255,239,25,249,130,1, +154,0,187,247,34,242,189,242,30,244,78,245,220,246,232,247,7,252,114,4,12,10,49,10,141,10,46,13,203,16,91,21, +11,23,60,19,255,16,17,21,234,24,203,23,114,20,71,17,223,16,238,21,82,28,143,30,39,31,174,33,147,36,81,38, +19,38,224,34,175,32,238,36,93,45,181,51,123,53,69,51,58,47,229,43,243,40,160,37,203,35,233,35,182,36,188,38, +201,40,95,40,88,41,251,48,213,59,186,67,210,70,37,68,117,61,218,56,192,54,75,49,150,40,132,34,108,34,244,39, +232,45,90,45,121,41,26,44,201,52,106,59,144,61,90,61,226,61,246,65,154,68,172,61,103,49,208,41,90,39,187,38, +8,39,75,37,122,34,222,36,237,41,90,42,238,41,4,46,98,50,214,52,57,55,129,54,238,49,11,46,139,41,130,34, +67,31,193,33,77,35,129,34,129,34,193,34,202,34,133,33,178,27,40,22,124,25,123,32,162,32,87,28,3,27,247,29, +10,36,106,41,242,40,79,37,127,36,115,36,35,32,68,23,246,12,25,7,244,8,75,12,7,11,240,8,223,10,0,17, +247,25,252,31,161,29,65,25,187,26,10,29,131,25,215,17,249,8,42,2,191,0,71,0,155,251,180,247,54,248,194,248, +210,248,75,250,48,249,170,244,78,242,45,243,205,244,74,247,70,250,85,254,21,5,115,8,8,1,37,243,63,229,195,215, +19,207,71,207,192,209,139,210,64,215,247,223,120,232,170,242,148,253,89,3,5,5,78,3,24,247,242,225,8,209,149,202, +172,204,175,212,246,218,19,217,168,213,183,216,200,222,207,226,95,229,101,231,81,233,108,234,90,230,129,220,59,213,90,215, +145,223,120,229,229,227,47,221,10,216,197,214,243,213,180,211,74,210,179,212,252,218,157,224,214,225,226,225,77,228,138,229, +17,226,178,219,119,212,205,206,150,207,67,215,234,223,80,229,108,231,185,231,199,231,237,229,131,223,4,217,211,216,240,219, +185,220,46,221,219,224,176,231,218,240,176,248,210,249,62,245,96,239,28,232,50,223,186,215,102,211,66,212,84,221,134,233, +175,239,255,241,155,248,100,1,10,5,37,3,255,254,41,250,31,245,17,238,178,227,33,220,9,223,69,233,52,241,99,244, +218,247,25,255,104,8,223,14,25,15,112,11,71,8,251,4,230,254,166,248,117,246,83,247,34,248,78,248,129,248,102,250, +99,0,199,8,123,14,199,16,175,18,106,19,36,16,189,10,250,7,179,9,109,13,102,14,141,10,48,6,149,6,245,9, +194,10,71,9,3,11,186,16,97,20,239,18,36,17,66,19,126,23,61,27,241,29,249,29,214,25,211,18,159,10,175,2, +245,253,139,254,175,4,65,16,215,28,178,33,6,30,210,27,60,32,58,37,87,37,149,33,212,27,116,20,120,12,224,5, +219,2,136,4,204,9,206,15,98,19,214,19,213,20,117,25,251,30,226,33,49,35,40,36,196,35,96,34,179,32,123,29, +127,24,111,18,125,10,71,2,32,255,44,3,106,11,216,19,230,24,57,26,127,28,120,33,15,36,197,34,21,35,137,38, +250,39,28,36,181,28,235,21,166,18,59,17,170,14,73,12,224,11,11,12,174,13,247,18,97,24,181,26,73,30,36,38, +35,46,150,50,181,50,70,46,108,40,73,36,156,30,123,21,91,14,35,12,162,12,3,16,71,20,185,19,165,18,105,27, +212,41,215,48,244,46,169,42,190,39,173,40,15,43,233,38,133,29,130,25,114,27,223,26,71,22,84,17,247,14,220,19, +56,31,50,38,51,36,201,33,6,36,73,38,203,36,205,31,138,25,179,22,102,25,245,28,45,28,133,23,173,19,155,20, +154,23,214,20,190,10,44,1,177,254,7,2,223,5,50,7,15,9,200,15,116,24,44,28,19,24,28,13,151,0,65,251, +116,252,52,249,152,239,111,232,79,230,215,230,36,234,65,237,191,238,30,246,69,4,113,12,14,8,171,252,154,240,47,234, +35,235,22,233,233,222,171,215,42,216,243,215,68,213,136,212,81,213,167,216,119,223,213,226,36,224,28,222,84,222,62,223, +78,227,198,229,157,222,69,212,226,207,132,205,223,201,194,199,44,197,223,193,107,195,170,198,15,196,210,191,82,192,224,194, +1,197,211,198,170,198,33,199,161,205,119,215,228,220,59,218,253,208,7,199,148,192,165,185,73,175,104,167,38,166,235,169, +10,178,71,187,138,192,60,197,47,206,198,214,105,219,205,221,83,219,243,210,172,202,127,194,154,182,170,173,169,174,9,181, +218,187,184,193,117,195,36,195,137,198,5,202,69,200,77,198,163,200,169,204,178,208,166,211,45,212,211,213,28,218,9,219, +203,214,0,210,120,205,13,201,11,199,120,197,221,194,189,196,192,204,106,213,11,221,140,228,106,234,43,239,107,242,244,239, +179,234,110,234,107,236,121,234,246,231,234,231,66,231,231,229,3,229,71,227,199,227,3,234,176,241,162,247,132,254,77,5, +84,9,82,13,9,18,143,19,33,17,196,11,37,3,108,250,213,245,32,245,38,248,204,255,137,8,167,14,18,19,83,22, +135,24,219,28,180,35,247,39,174,38,112,33,219,26,9,22,7,21,171,23,180,29,217,36,147,39,192,36,144,33,19,33, +187,34,45,38,209,41,45,44,162,46,197,48,203,48,28,50,205,55,173,61,27,64,50,64,215,61,84,57,33,53,117,48, +62,43,181,42,194,46,17,49,8,51,136,57,2,65,5,70,189,74,109,77,223,75,64,74,97,73,14,70,136,67,138,67, +209,63,19,57,229,54,145,55,92,55,39,59,195,66,183,70,253,71,232,74,167,75,142,72,101,70,96,69,156,67,179,67, +173,69,81,70,50,70,144,69,254,65,101,61,63,59,83,58,184,57,101,58,21,59,215,59,76,62,163,63,90,62,78,63, +226,66,18,67,115,63,226,59,244,56,114,55,232,55,168,54,193,50,163,47,107,44,158,39,175,37,81,40,186,43,167,46, +227,47,50,44,131,38,255,35,127,34,128,31,242,28,87,26,155,22,170,18,229,11,147,2,95,255,63,3,170,4,70,3, +58,5,4,8,34,9,255,10,22,10,236,3,226,254,254,250,210,241,44,231,169,224,34,219,73,215,96,216,7,217,112,216, +224,222,31,234,39,241,129,244,82,244,204,236,58,228,209,224,120,219,50,209,219,200,133,194,210,187,201,184,76,184,166,182, +20,186,171,197,94,208,107,213,231,214,29,212,199,207,184,206,150,203,103,193,104,183,49,178,169,173,216,169,55,169,237,169, +196,171,75,175,143,177,253,179,168,186,25,193,154,194,228,195,47,198,52,194,236,182,191,172,225,170,153,177,114,185,47,186, +175,182,153,183,63,188,90,190,79,189,198,187,18,188,81,192,84,197,47,196,41,190,179,188,126,196,71,208,112,214,126,210, +182,203,128,204,231,210,129,212,123,207,217,203,229,206,161,213,13,217,208,213,237,208,35,210,204,217,127,225,185,228,15,228, +189,226,28,228,73,232,64,235,72,234,41,232,45,233,163,237,200,241,128,241,254,237,16,239,198,248,7,3,241,4,231,1, +8,1,27,2,8,3,208,3,115,2,230,254,182,254,163,3,54,8,176,9,42,11,88,16,104,26,128,36,96,38,214,32, +86,29,151,30,134,31,5,30,155,26,115,21,109,17,125,17,236,20,168,26,68,33,68,38,46,43,220,49,216,52,232,48, +90,45,211,47,93,53,214,57,101,57,240,49,158,41,0,39,75,39,77,40,68,45,200,51,51,54,136,53,235,51,103,49, +1,50,162,56,103,65,151,72,145,75,158,70,157,61,171,57,78,58,254,57,154,57,11,57,35,53,159,49,233,50,4,53, +238,53,94,57,133,62,89,66,18,69,145,68,233,63,240,61,150,64,166,62,31,53,189,44,37,43,203,46,139,52,228,55, +149,54,176,52,6,53,207,52,66,51,218,50,47,51,155,50,128,49,27,47,50,42,65,37,219,34,24,33,105,30,151,29, +124,32,41,36,157,37,25,38,100,40,1,44,183,44,141,39,46,32,23,29,180,28,250,21,63,7,26,251,70,250,143,1, +119,8,191,10,49,10,143,10,215,11,26,10,159,4,57,0,47,0,21,2,247,1,111,254,70,249,140,246,102,248,62,250, +60,244,185,229,251,215,202,211,46,216,20,222,14,225,53,226,255,228,247,233,135,237,143,238,111,241,98,247,246,249,72,243, +16,227,29,205,23,187,164,183,47,193,110,204,199,211,226,215,66,216,40,214,34,213,181,213,35,216,158,221,20,225,243,219, +210,209,0,202,130,197,174,196,8,201,37,206,245,205,60,201,11,196,194,193,247,196,20,203,5,206,33,206,175,207,243,208, +150,206,7,203,6,201,238,199,229,199,167,200,107,199,79,197,123,200,59,210,22,220,94,224,0,223,217,218,182,214,247,210, +185,205,250,199,163,198,102,202,103,205,6,205,135,205,133,209,51,215,229,221,114,229,198,234,165,235,245,232,39,227,86,219, +75,214,246,214,234,217,170,219,100,221,7,224,67,225,9,224,205,222,222,223,219,226,107,230,196,233,59,236,113,237,6,238, +222,238,78,240,56,242,183,243,204,243,14,243,197,242,41,243,97,244,23,246,198,245,144,242,105,240,35,242,111,245,84,248, +244,251,186,0,18,5,5,7,5,6,215,4,1,6,13,7,13,6,4,6,225,6,163,4,207,1,193,3,246,6,200,5, +205,2,25,2,11,3,95,4,95,5,22,6,172,9,208,16,65,21,116,19,100,16,158,16,105,19,3,23,52,25,52,23, +194,17,126,12,155,8,205,4,209,1,57,3,222,10,111,21,238,29,74,34,186,34,51,33,171,33,151,36,181,36,169,31, +204,24,36,18,127,12,112,10,99,11,179,12,186,16,25,25,169,32,115,36,189,38,139,39,170,39,250,42,95,45,13,38, +1,25,147,17,120,16,254,15,72,15,160,15,79,18,119,25,255,34,244,41,169,46,31,51,120,52,134,48,254,40,221,30, +207,20,60,17,22,21,107,25,145,26,106,27,244,29,220,33,59,39,254,44,132,48,194,48,192,46,249,43,47,41,67,37, +99,31,220,26,169,27,173,31,221,33,223,33,109,34,198,35,184,36,51,37,32,37,90,36,107,36,34,39,110,43,123,45, +102,42,179,35,24,30,103,28,53,29,113,29,186,27,191,25,153,26,86,30,0,33,60,32,249,30,13,33,24,37,222,36, +37,29,95,20,253,19,58,27,248,31,13,28,84,19,71,14,204,16,195,20,60,18,112,12,70,11,112,12,46,9,158,2, +227,253,247,254,23,8,52,19,121,21,127,15,160,9,67,4,213,253,221,250,9,251,182,248,31,245,92,243,238,240,89,238, +125,239,217,242,16,246,204,249,234,250,241,245,184,238,138,233,103,230,82,230,249,233,108,238,41,241,122,241,215,239,135,238, +106,236,0,229,10,219,87,213,243,210,53,210,125,214,211,220,56,223,132,225,11,231,118,234,235,234,23,236,56,236,121,234, +179,230,155,217,134,196,141,184,64,187,47,193,252,198,0,208,140,216,219,222,131,227,237,224,100,217,160,217,118,224,117,225, +142,219,120,211,203,202,65,199,74,202,102,202,51,198,212,197,226,199,133,200,157,204,39,212,204,217,127,223,47,229,129,228, +28,224,69,222,103,219,2,214,175,210,150,206,13,199,109,195,225,197,112,201,115,208,66,220,208,228,37,232,18,235,19,235, +84,230,45,227,136,226,169,223,156,220,159,220,116,221,71,222,173,222,214,219,76,217,49,222,79,231,201,235,93,234,168,231, +245,231,91,236,109,240,241,240,193,242,233,248,50,253,111,250,128,242,246,233,215,230,124,235,250,239,190,237,124,235,116,240, +193,248,145,254,250,0,22,1,52,2,65,6,70,8,219,4,28,1,62,0,48,255,211,253,136,253,49,251,64,247,26,248, +181,253,206,1,31,4,88,8,202,13,232,17,226,18,56,15,45,10,10,10,196,13,54,15,127,14,20,15,3,15,227,10, +71,4,233,255,176,1,221,8,97,15,219,17,68,20,112,25,118,29,130,28,239,23,50,20,29,21,48,25,5,26,171,21, +139,17,37,17,15,18,28,17,241,13,251,12,222,20,194,34,30,41,223,34,58,27,206,27,247,32,234,34,58,31,231,25, +182,25,155,31,195,35,115,32,237,25,241,22,54,24,213,25,206,24,189,22,50,24,64,30,155,36,28,39,223,37,199,36, +36,40,145,46,111,48,65,42,233,33,85,29,211,27,61,27,246,27,188,30,22,35,232,38,227,39,126,39,95,41,226,44, +208,46,176,47,7,49,25,49,30,47,83,45,137,44,231,43,160,43,56,43,41,41,73,38,92,37,200,39,122,44,56,48, +53,49,236,50,25,56,80,59,221,54,240,46,54,43,11,45,101,48,83,48,238,43,97,41,68,45,183,49,246,47,119,43, +229,42,230,46,109,51,15,51,27,44,33,37,227,36,188,40,200,42,6,42,57,40,53,40,37,44,79,48,2,47,173,41, +34,37,153,34,250,33,87,34,43,33,199,31,63,33,196,33,55,28,234,19,230,14,71,15,115,20,104,25,161,23,4,17, +100,12,2,11,229,11,93,15,102,18,222,18,52,19,86,17,107,8,253,252,32,246,76,242,160,239,176,239,187,239,226,237, +28,239,132,244,22,249,247,251,37,254,130,253,209,250,197,247,80,241,22,232,58,226,208,222,157,216,219,209,253,205,146,203, +0,204,4,210,47,218,211,224,197,229,180,230,47,227,108,224,241,222,195,217,92,210,80,205,13,201,80,196,119,193,92,191, +61,189,145,191,83,197,221,198,149,196,64,197,148,200,131,202,122,202,18,199,84,191,48,184,105,181,79,180,146,179,52,181, +236,184,191,189,29,195,106,197,204,194,134,191,3,190,16,188,107,185,211,181,218,174,206,167,239,166,144,169,110,170,219,172, +105,180,140,189,144,196,146,199,254,196,131,192,88,191,179,190,33,186,63,180,25,176,71,173,145,172,139,173,148,173,24,175, +130,182,162,192,62,199,169,201,123,202,216,203,1,206,159,205,130,200,187,194,232,192,8,195,67,199,115,202,160,201,168,199, +47,201,33,204,55,205,114,206,45,209,20,212,149,215,45,219,38,220,188,219,200,221,160,226,223,232,253,238,186,241,105,240, +48,238,90,235,137,230,218,226,43,227,161,229,50,233,131,238,91,243,129,245,129,246,216,248,15,254,26,6,106,13,115,16, +186,16,63,17,149,17,22,16,153,12,138,8,140,6,252,7,233,10,231,12,7,14,148,16,10,23,239,31,90,37,200,37, +245,39,156,47,100,54,173,53,120,47,21,42,109,40,36,40,141,37,33,33,75,31,172,34,60,41,23,47,189,50,212,54, +144,62,239,71,240,76,171,74,72,68,115,63,252,62,38,64,132,62,21,58,69,54,163,52,151,52,216,53,3,57,118,63, +18,73,69,81,9,83,155,79,248,75,248,73,187,72,136,72,18,74,162,75,2,74,29,69,88,65,74,65,190,65,16,64, +10,63,63,65,235,68,252,71,87,74,94,76,61,79,231,83,169,87,255,85,221,78,99,71,184,67,149,66,14,64,93,59, +196,55,212,55,157,58,6,62,149,65,222,69,99,74,38,77,98,76,243,71,106,65,104,59,177,55,161,53,34,52,159,51, +69,52,132,53,117,55,244,56,117,55,247,51,44,50,27,50,126,49,86,48,179,46,67,44,217,42,163,42,161,40,29,37, +23,35,81,34,78,34,31,36,20,37,174,34,9,33,229,34,97,36,8,35,119,31,139,25,237,19,246,17,72,16,159,11, +252,7,206,7,132,8,231,8,151,6,186,254,189,247,96,249,205,253,151,252,148,248,107,246,235,245,226,246,91,246,184,239, +133,231,123,229,53,230,192,226,111,220,206,214,24,210,125,206,30,204,125,203,25,207,49,214,116,219,246,220,214,220,169,219, +127,217,220,214,231,210,82,206,167,202,10,197,218,187,244,180,70,180,229,181,152,182,221,182,155,183,215,187,74,197,16,206, +137,208,155,207,184,206,207,203,218,196,6,187,22,178,163,174,59,175,93,172,174,164,214,159,88,163,161,173,56,185,235,191, +27,192,243,189,68,188,63,186,148,183,169,180,122,179,227,183,59,191,104,192,211,186,219,182,248,182,227,183,23,184,115,181, +64,176,169,175,241,181,125,187,45,189,10,191,177,194,59,201,216,210,79,216,150,213,99,210,5,210,7,206,144,198,71,193, +186,189,21,188,20,192,191,198,227,202,105,206,60,211,252,215,164,221,151,227,135,230,122,232,17,236,54,237,248,233,210,228, +197,220,138,211,1,209,225,212,168,215,141,218,47,226,104,235,253,242,224,248,200,250,111,250,60,254,34,4,240,4,182,1, +62,254,11,250,179,246,76,246,27,246,15,246,37,250,131,0,58,4,242,5,149,7,154,8,19,10,91,13,68,17,141,20, +17,22,10,21,170,20,181,23,145,25,84,21,199,14,189,12,207,15,101,18,198,15,53,11,176,12,252,20,103,28,61,30, +58,29,78,30,148,35,83,41,163,41,133,37,34,35,143,35,120,35,38,33,226,27,146,21,4,20,255,23,14,27,152,27, +67,30,63,35,42,39,136,41,81,42,83,41,46,41,209,42,208,42,240,39,171,36,50,34,190,32,61,33,236,34,132,35, +238,33,169,30,191,27,77,27,29,28,236,27,155,28,218,32,34,38,240,39,220,37,254,34,225,33,98,34,155,34,233,33, +102,33,79,33,158,32,216,30,203,27,96,23,116,19,27,19,154,22,114,26,121,27,128,26,243,26,147,30,132,35,102,38, +107,38,144,38,220,40,253,41,211,37,8,30,46,23,228,18,116,16,153,14,64,12,109,11,192,15,30,24,101,32,106,39, +111,44,226,44,82,41,206,36,220,31,6,27,122,24,84,23,140,21,171,20,12,21,166,19,65,17,169,18,243,24,142,32, +67,37,65,37,113,35,119,35,37,35,29,31,115,26,38,26,107,30,137,35,108,36,164,31,173,27,235,29,78,33,75,32, +188,30,196,32,92,35,202,34,248,30,78,26,55,25,201,29,172,35,2,38,152,37,85,37,240,37,143,38,214,37,65,35, +120,32,42,31,90,30,198,27,141,23,10,21,189,22,112,26,62,28,155,27,168,26,134,27,235,30,136,34,171,35,127,35, +255,34,56,31,37,24,164,18,230,15,161,13,61,12,230,11,67,11,248,11,150,14,90,15,3,14,76,13,79,11,157,7, +234,6,52,8,198,6,104,5,127,6,25,5,237,0,224,254,179,253,46,251,23,249,189,244,198,235,14,229,69,228,57,228, +202,228,99,233,64,238,148,240,6,243,99,244,184,243,46,245,220,245,8,238,122,225,225,215,164,207,255,199,0,197,240,196, +210,196,158,199,23,205,241,208,97,212,243,217,228,223,235,228,143,230,208,223,80,211,253,201,118,197,224,193,70,190,22,186, +233,181,194,181,171,184,87,185,17,186,143,191,12,198,43,201,161,201,121,198,98,192,78,189,80,189,110,186,44,182,213,181, +174,183,2,185,222,186,9,188,237,186,196,185,3,185,212,182,202,180,144,180,135,180,232,180,106,183,81,186,209,187,168,189, +77,193,212,197,12,201,54,200,135,195,107,191,53,190,187,189,138,188,85,187,242,186,202,188,207,192,175,195,139,196,110,199, +182,205,134,211,148,214,4,216,129,216,54,216,33,216,107,216,249,215,106,214,233,212,87,213,163,216,20,221,144,223,159,223, +95,224,9,228,186,232,147,235,154,236,188,237,166,240,222,245,190,250,49,251,219,248,207,249,201,253,186,254,52,252,1,251, +18,252,173,253,31,0,64,3,41,6,244,9,210,14,83,18,25,20,202,21,230,22,223,22,120,23,230,24,30,25,67,24, +123,24,109,26,9,29,224,30,238,30,247,29,86,30,48,33,172,36,34,38,26,38,24,40,35,45,236,49,19,52,179,52, +240,52,151,52,40,51,207,47,130,43,4,42,57,44,163,45,163,43,13,41,34,41,225,44,220,51,196,59,252,65,254,69, +209,71,133,71,162,70,62,69,227,64,82,58,224,53,61,52,41,50,67,46,15,42,146,40,140,44,6,52,200,57,220,61, +160,68,252,76,152,80,208,76,6,69,2,62,127,57,53,53,126,47,248,42,169,41,42,41,190,39,119,39,51,42,95,47, +184,52,70,55,218,54,166,54,32,55,28,53,182,48,127,45,102,44,176,43,247,41,152,38,8,35,235,33,23,34,231,31, +229,27,125,25,58,25,93,25,204,24,160,23,118,23,84,25,21,27,157,26,220,24,219,22,139,20,91,18,105,15,59,10, +235,4,5,2,131,255,132,251,38,248,113,247,188,249,36,254,181,0,240,254,179,252,171,252,140,251,40,248,34,244,153,237, +202,228,198,223,84,224,18,227,133,232,8,241,78,247,17,248,47,244,21,236,200,227,32,225,33,225,29,222,192,218,172,216, +166,211,109,206,100,208,250,215,106,224,30,233,42,238,12,235,160,228,227,224,126,222,79,220,70,219,18,217,248,211,37,205, +93,197,78,192,148,195,228,204,182,213,156,221,138,228,170,230,135,229,27,230,250,230,61,229,182,225,157,219,184,210,148,203, +71,200,13,199,26,201,233,206,22,213,233,219,11,229,237,235,22,238,13,240,169,241,147,237,82,229,224,222,25,220,194,220, +73,224,226,228,90,234,168,239,192,239,9,234,94,229,210,228,29,230,164,233,108,239,173,243,151,245,209,246,224,245,68,243, +238,243,243,248,157,254,44,2,9,1,43,250,174,242,222,239,177,240,138,243,18,249,31,255,132,2,157,3,115,3,152,2, +146,3,51,7,10,10,73,10,106,10,144,12,75,16,179,19,107,20,14,18,112,14,0,10,49,4,160,255,16,0,221,4, +44,10,37,14,175,17,202,21,106,26,1,31,154,34,208,35,29,34,222,30,122,27,115,23,93,18,57,14,229,12,252,12, +120,12,181,12,243,15,228,20,24,25,61,29,123,34,199,38,196,39,136,37,32,33,42,28,209,24,0,23,167,20,153,17, +66,15,119,14,50,16,105,20,57,24,223,25,50,27,247,28,82,29,198,27,99,25,145,22,160,19,209,16,222,13,92,11, +131,10,32,12,182,16,102,22,188,24,217,22,46,20,149,17,26,14,202,10,122,6,102,255,19,251,125,254,46,4,133,7, +141,12,61,20,180,25,43,27,36,24,0,16,98,8,24,6,240,3,78,254,108,250,56,250,74,250,225,250,33,253,62,0, +93,6,136,15,204,20,70,19,240,15,125,12,33,7,222,1,177,254,149,252,2,252,80,253,250,253,98,253,103,253,192,253, +66,253,95,252,231,251,248,252,130,255,11,0,233,252,47,250,129,250,215,250,146,248,15,245,173,243,224,246,207,251,172,251, +152,245,64,240,149,239,133,240,180,238,143,233,63,229,50,230,165,234,55,237,72,237,227,238,123,244,241,251,71,0,152,255, +74,254,215,255,142,1,229,255,127,248,63,233,31,215,248,204,68,205,213,210,55,221,148,236,165,250,186,2,234,4,11,2, +127,255,153,3,34,9,140,6,152,252,145,239,64,224,115,211,141,207,174,211,22,220,68,229,70,233,35,231,0,230,138,233, +13,240,130,249,95,3,74,7,246,3,97,251,114,238,187,227,102,227,106,233,155,235,151,231,92,224,225,217,173,216,34,220, +178,224,19,233,40,247,231,2,90,5,41,1,224,251,63,250,72,253,39,253,139,243,69,231,195,224,149,223,192,226,193,234, +50,243,220,247,55,249,71,247,137,242,238,238,213,238,66,242,115,249,192,255,58,253,87,243,36,236,157,236,171,241,166,246, +89,249,248,250,193,252,116,252,110,248,63,243,27,240,232,240,82,245,95,248,154,246,181,244,62,247,218,251,65,0,91,4, +87,6,34,6,99,5,141,2,132,254,239,254,143,2,92,2,157,254,101,251,19,249,131,249,226,253,114,1,114,3,219,7, +16,10,230,4,179,0,172,4,244,10,4,14,110,13,84,8,210,2,178,2,114,3,102,0,223,255,117,4,101,7,248,6, +238,5,66,4,83,5,143,12,91,19,183,19,76,17,27,14,45,9,186,6,6,8,236,7,235,7,238,12,45,18,234,17, +77,15,206,13,186,14,201,20,31,28,93,27,123,19,149,13,126,11,137,10,225,11,136,15,224,18,223,21,227,23,42,22, +104,19,164,21,83,27,32,30,30,29,191,26,43,23,214,18,21,16,254,15,135,18,57,23,226,26,75,26,227,23,89,24, +231,27,250,31,191,34,10,35,2,34,28,34,38,33,115,27,222,20,152,19,107,22,180,25,92,29,44,33,42,37,13,43, +226,47,33,46,28,40,171,35,96,32,185,28,121,26,103,25,224,24,179,26,61,29,250,28,84,28,225,30,158,35,209,41, +56,48,143,49,171,44,231,38,11,34,154,28,191,24,18,24,217,24,139,26,136,27,121,24,32,20,186,20,68,26,111,33, +41,40,190,42,182,39,162,35,211,32,20,29,90,25,162,23,211,21,210,18,227,15,173,12,140,10,219,12,227,17,136,21, +239,23,198,24,184,20,117,12,246,4,238,0,243,255,223,255,211,253,35,250,156,248,45,251,11,0,151,4,232,7,134,10, +103,10,227,2,166,244,192,230,229,221,30,219,87,222,154,226,103,226,73,225,248,227,153,231,170,235,166,243,78,251,81,252, +148,248,65,241,92,228,38,215,228,207,38,204,170,201,130,201,241,200,69,199,121,201,93,207,154,212,117,217,113,221,101,222, +18,224,241,227,103,227,108,222,172,219,188,216,13,208,91,196,173,184,201,174,129,172,226,176,105,179,8,182,83,192,54,206, +3,217,136,224,32,226,56,221,158,217,36,215,225,204,246,190,97,184,175,182,64,180,55,180,162,183,30,188,30,195,11,203, +37,207,237,209,20,214,78,214,221,209,188,207,217,208,80,209,133,209,121,209,2,207,253,203,152,202,233,200,17,199,13,200, +199,203,54,208,49,212,46,215,14,219,15,226,136,233,130,237,143,237,77,233,81,225,218,218,154,216,14,215,85,214,177,218, +107,226,94,232,40,236,78,239,59,242,189,245,29,248,221,245,24,241,92,239,244,240,161,242,167,243,254,244,90,247,219,250, +212,253,13,254,33,252,106,251,144,254,203,3,200,5,142,3,47,3,0,8,187,13,156,16,111,17,81,17,129,16,213,14, +192,11,106,9,38,11,7,15,102,17,196,19,119,23,158,25,203,25,111,26,135,27,242,28,55,31,126,31,144,28,28,27, +39,29,252,30,72,31,233,31,198,33,87,37,83,40,231,37,93,32,209,31,87,36,126,39,6,40,205,39,18,39,45,39, +37,40,117,39,139,39,242,44,198,51,68,53,214,49,34,45,23,42,22,43,38,45,61,43,160,40,72,42,69,44,124,43, +145,44,206,48,73,52,139,54,157,55,7,53,143,48,8,46,114,44,123,43,212,45,67,49,29,49,105,46,222,43,36,42, +23,43,97,46,160,47,247,46,103,48,228,49,80,47,173,42,242,38,10,37,120,39,57,45,127,47,193,44,36,42,139,40, +137,37,60,34,70,32,132,32,34,37,180,43,9,45,144,40,20,36,91,33,127,31,6,31,77,30,80,28,120,28,182,30, +18,30,38,27,164,26,65,28,245,29,119,31,95,30,186,25,155,21,110,19,155,16,189,13,229,11,39,9,234,6,248,7, +152,8,119,5,119,2,156,1,228,255,89,253,111,251,65,248,123,244,79,244,30,247,216,248,69,249,234,249,110,250,89,250, +51,248,76,241,187,231,87,226,249,226,22,228,70,225,137,219,118,214,252,213,143,219,169,227,137,234,0,241,209,246,225,246, +26,239,83,228,161,219,117,215,40,216,39,217,75,213,30,207,53,203,188,200,67,200,112,205,225,213,61,220,60,224,117,225, +15,222,223,217,231,216,149,216,24,216,165,217,177,217,149,212,13,206,75,201,74,198,186,198,196,200,139,199,190,198,206,204, +173,213,45,219,89,222,222,223,132,222,61,220,29,218,2,216,97,217,5,223,156,227,55,228,174,224,61,216,22,208,212,207, +95,212,237,214,185,217,143,223,137,228,238,229,127,228,16,226,39,227,182,233,197,240,244,244,196,246,238,243,110,236,83,230, +30,227,134,223,15,222,10,226,5,232,92,237,109,242,204,244,10,244,200,244,23,248,3,251,151,253,169,0,99,3,15,6, +127,7,69,4,162,253,70,248,108,245,183,245,221,250,188,1,161,5,40,8,45,12,236,15,234,17,46,19,58,20,170,21, +31,23,202,20,168,13,217,7,118,7,113,9,224,11,164,16,106,22,140,25,151,26,249,27,41,29,104,29,177,29,146,29, +205,27,99,25,49,23,100,20,138,18,167,20,72,25,184,28,210,30,67,32,185,31,5,30,226,29,6,31,81,32,3,35, +82,38,167,38,7,36,248,33,159,33,195,33,146,33,93,32,93,30,136,29,178,30,162,32,254,34,235,37,181,39,213,38, +84,36,239,33,146,32,224,32,93,34,67,35,65,35,148,35,99,35,150,32,6,29,1,29,199,31,30,32,197,28,217,25, +187,25,146,26,87,26,15,25,234,23,102,24,218,26,191,29,176,31,169,32,179,32,23,31,41,27,60,21,2,15,89,10, +24,8,49,9,73,14,141,20,197,23,251,23,176,23,4,23,200,21,28,21,123,20,24,19,23,18,112,16,116,11,18,5, +218,0,104,254,43,254,163,2,140,9,140,14,220,17,224,19,171,18,26,15,162,10,40,4,154,253,202,250,238,249,227,247, +135,245,228,242,113,239,216,237,163,238,184,239,53,243,246,250,230,2,164,7,232,7,94,1,42,247,240,239,71,234,202,227, +98,226,221,230,145,232,196,228,50,223,167,218,144,220,230,230,95,241,143,248,166,0,204,4,95,0,128,252,64,252,38,247, +202,238,93,231,186,217,242,199,111,191,24,192,167,197,28,214,254,235,168,247,147,251,176,0,236,2,111,2,26,4,210,255, +247,240,12,225,50,209,249,190,255,182,197,190,212,200,4,208,231,216,49,224,10,230,161,240,158,250,61,254,195,1,233,2, +26,247,13,228,75,214,237,206,134,206,139,213,225,217,187,214,54,213,34,216,143,218,7,223,88,232,53,242,153,250,243,255, +5,253,58,244,24,238,36,234,25,228,233,222,27,221,154,220,33,222,96,227,231,233,153,239,70,244,167,245,124,241,30,234, +129,228,115,227,36,230,179,234,29,240,0,245,216,247,2,249,36,249,152,248,140,249,40,252,181,251,49,246,147,238,154,229, +203,220,107,219,185,227,118,238,143,247,49,0,54,6,1,8,10,9,16,11,209,12,133,13,4,10,156,255,91,243,5,236, +37,234,67,236,203,240,123,244,146,247,229,252,64,2,163,5,68,11,117,19,168,23,9,22,129,17,59,10,183,1,66,252, +247,249,204,248,202,248,221,247,237,244,195,245,28,253,87,4,33,8,75,12,12,17,180,19,110,20,255,17,124,11,157,6, +207,6,220,5,175,255,134,248,40,244,182,243,158,247,52,252,100,254,56,2,97,9,111,13,44,12,49,11,243,12,85,15, +99,16,166,13,108,7,150,2,235,255,248,251,251,248,83,250,40,252,217,251,144,252,37,255,64,3,16,11,183,19,245,22, +91,22,214,21,38,19,76,14,216,11,252,10,104,8,135,5,164,2,57,254,13,252,58,255,109,3,255,5,2,10,221,15, +105,21,250,26,57,31,25,30,47,24,93,18,175,14,95,12,157,11,247,12,230,15,228,18,145,19,177,16,179,12,189,11, +238,14,250,19,16,25,26,30,183,34,225,37,183,38,59,36,218,30,6,26,189,24,80,26,190,28,146,30,100,30,159,28, +44,27,38,26,208,25,218,28,19,35,76,40,227,42,85,43,178,40,220,36,60,36,74,38,45,40,61,42,201,42,92,38, +161,32,86,31,155,32,249,33,186,37,146,42,47,44,137,43,145,42,107,40,25,40,226,44,254,48,175,46,135,42,28,41, +196,39,109,37,123,36,119,36,160,36,31,38,241,38,210,36,85,35,56,37,68,39,181,39,230,39,209,38,25,36,119,34, +127,33,203,30,203,27,5,25,253,19,179,14,192,12,208,11,128,10,146,12,238,17,212,22,7,27,192,29,35,28,167,23, +58,18,214,9,44,0,133,249,58,244,88,239,21,239,2,242,59,243,193,245,159,252,112,3,73,8,6,12,218,10,36,4, +130,253,47,247,156,237,0,227,100,218,141,212,149,212,3,218,18,222,149,223,68,227,68,232,206,234,50,235,143,234,177,233, +174,233,19,232,14,226,254,217,125,210,34,204,28,201,162,200,65,198,238,195,166,198,45,203,253,204,68,206,70,208,253,209, +238,212,155,215,74,213,180,207,60,203,99,198,234,191,116,186,173,182,24,181,34,184,132,189,138,192,148,194,126,198,97,202, +98,204,152,204,70,202,97,198,152,195,111,193,96,190,74,188,217,188,132,190,119,191,31,191,10,190,142,190,26,194,25,198, +116,199,102,199,189,200,105,202,175,201,119,200,53,203,254,208,17,212,111,209,219,202,9,196,230,192,195,194,32,199,43,204, +244,210,84,219,91,226,49,229,81,227,164,223,55,222,177,222,134,221,173,218,115,216,153,214,51,213,226,214,225,219,107,225, +32,231,119,238,239,245,43,250,33,250,65,247,133,243,187,240,128,239,155,238,169,237,235,238,147,243,70,249,254,253,187,1, +240,3,145,4,250,4,144,4,228,2,160,3,184,7,167,9,174,7,89,6,12,7,126,8,13,12,187,17,128,23,54,29, +221,32,73,31,186,27,230,25,179,22,75,18,12,18,37,20,52,20,226,21,48,27,185,31,173,35,44,41,179,44,16,46, +115,49,232,51,6,49,145,44,229,40,224,34,11,28,244,24,44,26,241,31,163,41,81,49,194,51,170,53,226,57,34,61, +246,60,111,58,77,56,104,56,177,55,79,49,143,39,38,34,54,36,34,42,224,46,210,48,228,50,153,55,122,60,252,61, +151,60,46,59,192,59,64,61,247,59,25,55,180,50,92,48,65,45,117,41,7,40,13,41,192,42,145,44,31,46,224,47, +92,51,88,55,183,56,193,55,247,54,74,54,235,51,113,47,50,42,184,37,230,33,189,29,82,26,195,25,201,27,253,30, +32,35,49,39,223,40,181,39,116,37,42,35,174,32,2,30,102,27,209,24,15,22,199,18,104,14,98,9,54,6,159,6, +58,8,232,7,195,6,7,7,82,7,45,5,211,0,197,252,60,252,187,255,254,1,86,254,129,248,126,246,101,247,189,247, +178,247,242,247,172,247,95,246,30,242,67,233,139,224,76,222,86,224,244,224,249,224,54,227,61,230,4,233,15,237,156,242, +238,248,229,253,248,251,91,241,236,228,137,219,3,211,63,204,64,203,196,205,249,207,40,211,73,215,125,218,125,223,135,231, +128,237,104,239,247,239,229,237,224,230,228,221,184,214,253,210,12,211,106,211,244,208,159,207,194,210,85,214,173,215,206,216, +207,217,231,218,223,222,132,228,0,232,31,234,72,236,58,236,87,233,113,229,91,225,226,222,10,224,149,226,31,227,172,225, +28,223,128,219,61,216,222,215,230,219,245,226,217,233,230,239,46,246,86,250,23,250,141,248,140,248,221,248,184,248,202,246, +72,240,80,231,149,224,6,220,89,218,113,223,20,233,33,242,158,251,64,5,75,10,6,12,17,14,126,13,157,9,230,6, +0,4,215,253,147,248,245,246,12,246,154,245,51,247,124,250,224,0,228,9,66,15,13,15,160,14,0,16,5,17,33,17, +12,16,185,14,109,16,203,19,130,19,181,15,17,12,205,9,245,9,31,12,42,12,207,9,218,9,224,12,206,15,42,18, +212,19,186,20,159,23,249,28,66,32,15,31,84,27,160,23,220,21,148,21,245,19,223,16,175,14,217,13,124,14,183,16, +9,18,154,18,3,23,251,29,135,32,114,30,46,29,101,30,207,32,245,33,222,29,109,21,247,14,97,12,204,10,16,10, +76,11,210,13,75,17,123,20,31,21,50,21,164,24,117,29,118,30,3,27,32,22,188,17,9,14,52,11,3,10,62,10, +124,10,143,10,227,10,165,10,200,10,192,13,85,17,168,17,222,16,177,17,82,17,128,14,88,12,253,11,2,13,85,15, +173,15,172,11,223,7,184,7,205,7,75,6,137,5,186,5,233,5,27,6,58,4,78,255,103,251,225,250,10,251,141,250, +85,250,41,250,250,250,84,254,37,2,46,4,28,5,132,3,232,252,185,243,255,234,71,226,132,220,188,222,188,229,229,234, +244,238,148,244,130,250,238,0,235,7,174,10,101,7,181,1,252,248,165,235,12,224,42,219,90,218,159,221,234,229,85,236, +85,237,253,239,59,247,166,254,56,5,87,9,211,5,173,252,196,243,25,234,170,224,142,222,244,226,136,230,202,231,147,230, +221,225,49,224,78,231,231,240,108,246,70,249,184,249,149,246,51,242,139,237,121,232,191,229,245,228,117,226,222,223,144,223, +173,223,157,226,32,236,238,245,42,249,46,249,14,249,27,247,230,244,179,243,109,240,195,235,111,233,150,232,102,232,0,235, +31,239,194,242,239,247,208,253,116,255,95,252,190,247,121,243,148,241,254,241,187,240,184,237,22,238,215,242,148,248,84,253, +146,255,67,255,59,0,224,2,130,1,253,250,238,244,162,242,167,243,28,246,10,246,65,243,78,244,54,251,203,1,91,5, +58,8,247,9,167,9,254,7,16,3,173,251,137,249,182,254,36,3,139,2,236,255,83,253,173,252,27,0,155,4,91,7, +210,10,41,14,33,13,97,10,78,10,110,10,77,9,145,9,241,9,169,7,207,3,21,255,13,251,219,252,59,4,73,10, +160,12,31,13,141,12,96,13,158,15,7,13,175,5,237,1,186,1,167,254,252,249,141,247,210,247,92,253,136,7,167,14, +219,16,248,18,177,20,132,20,55,20,120,17,109,10,213,3,64,254,116,246,19,241,223,241,81,244,198,248,190,2,133,12, +213,17,222,22,126,27,107,29,232,31,81,32,251,23,43,12,236,3,20,252,72,245,166,244,32,246,131,246,10,251,182,2, +194,8,188,16,75,27,51,34,52,38,208,40,253,35,205,25,240,19,158,16,111,10,108,5,236,2,238,255,219,0,137,7, +4,12,93,13,207,18,110,27,152,33,122,36,224,35,96,33,58,34,157,36,50,33,11,26,248,21,8,20,29,18,77,18, +119,19,109,19,127,21,52,27,164,31,65,32,122,31,243,30,98,31,148,33,172,35,187,35,64,35,142,34,109,31,201,27, +33,28,31,31,153,32,155,32,166,31,37,28,253,23,255,22,152,24,43,27,94,31,108,35,215,35,36,33,63,30,92,29, +203,31,191,34,251,32,35,27,136,21,95,16,234,11,62,11,29,13,36,14,251,15,130,19,78,21,160,21,89,23,0,25, +163,24,171,22,219,17,48,10,102,3,150,254,60,250,162,247,160,247,160,248,1,251,5,255,125,2,216,5,96,10,195,12, +132,10,118,5,82,254,45,246,70,241,31,240,225,238,232,236,40,235,243,232,190,231,197,232,123,233,50,234,55,238,15,243, +223,243,21,241,105,236,36,231,238,228,205,229,153,228,204,224,215,221,234,218,46,215,155,213,216,213,167,212,244,210,169,210, +168,210,211,210,10,212,13,213,61,213,186,213,244,213,230,212,217,211,72,212,29,214,235,215,190,214,25,209,223,201,62,196, +31,192,115,189,173,189,252,192,7,198,34,203,106,206,211,207,177,209,120,212,214,213,8,213,167,210,116,205,240,196,72,188, +210,182,148,181,4,185,158,192,133,201,229,208,139,213,196,214,248,212,110,210,205,208,83,207,32,204,134,198,30,193,6,192, +61,195,8,199,158,202,93,208,174,216,157,225,252,231,78,232,166,227,113,223,244,220,87,217,46,213,82,210,42,208,212,207, +129,210,70,213,248,215,249,222,98,233,189,242,178,250,114,255,59,253,37,248,170,245,68,242,243,235,168,231,88,229,21,226, +168,225,208,229,198,233,241,237,94,246,119,0,174,8,121,15,30,19,246,17,63,15,137,12,249,7,131,2,171,253,76,249, +12,248,100,251,221,254,25,1,10,7,14,17,152,25,157,29,10,29,180,25,221,24,100,28,77,30,174,26,109,21,49,18, +224,16,108,17,54,19,235,20,29,24,222,29,193,33,142,32,160,30,182,32,212,37,127,43,91,47,6,46,157,40,177,37, +18,39,218,39,23,38,246,35,47,34,145,33,162,35,169,38,192,40,12,44,106,49,5,54,74,56,229,55,146,52,166,49, +198,50,221,52,226,50,208,45,205,41,254,40,244,42,129,45,10,47,2,48,220,48,177,49,183,50,98,50,91,48,241,48, +165,53,2,57,7,56,36,53,185,49,98,47,144,48,228,49,131,46,65,41,120,38,129,37,139,37,222,37,174,36,249,36, +177,42,116,49,211,51,26,52,121,53,58,55,165,55,73,52,90,45,161,39,170,35,129,29,140,23,177,21,106,20,148,18, +81,21,113,28,232,35,89,43,81,48,11,47,2,43,232,39,133,34,219,25,94,17,21,10,191,4,7,2,95,254,205,249, +131,251,66,4,209,11,45,14,31,13,223,9,221,5,99,2,7,255,236,252,229,253,214,0,123,3,216,2,245,251,75,242, +158,236,42,234,37,231,210,228,110,227,105,225,252,225,156,230,25,235,220,239,195,247,168,254,65,1,142,1,76,253,181,242, +199,232,140,226,88,218,104,208,65,202,254,199,164,201,108,209,89,219,67,226,222,231,6,237,225,238,56,238,248,236,30,234, +100,230,186,226,56,220,169,210,83,202,181,196,94,194,146,198,186,207,191,214,146,217,68,219,242,220,98,223,233,227,237,231, +232,231,147,228,217,222,248,213,67,205,159,202,163,206,171,213,73,221,66,227,44,229,48,228,30,227,154,225,247,222,63,221, +146,220,37,218,8,214,58,211,106,211,169,215,43,224,79,233,199,239,56,245,49,250,204,250,56,246,12,240,217,232,130,223, +11,215,142,210,120,209,74,212,187,220,238,231,39,241,18,248,149,253,206,255,142,254,55,253,55,253,160,252,6,250,8,245, +47,238,157,232,78,231,111,233,108,237,38,243,199,248,191,251,171,252,242,252,120,252,143,252,11,255,205,2,216,5,108,7, +37,7,128,6,185,7,196,8,100,6,87,2,240,254,73,251,159,248,8,250,117,254,34,3,116,7,154,10,44,12,249,13, +55,16,106,17,149,18,117,20,163,20,70,18,45,15,213,11,120,8,171,6,200,6,4,8,35,10,121,12,127,14,32,17, +38,21,96,26,72,31,9,32,247,26,164,20,68,17,142,15,53,14,254,13,113,14,145,15,39,18,152,20,144,22,214,26, +87,32,48,35,152,35,77,33,112,25,9,16,196,12,80,14,243,15,11,19,4,24,89,27,174,29,137,33,253,36,183,38, +60,40,61,40,55,36,85,29,164,21,191,14,58,12,71,16,83,24,221,32,202,39,3,43,125,42,47,41,127,40,126,39, +208,38,226,38,158,36,104,30,247,23,168,20,46,20,145,22,209,27,32,33,179,36,179,39,214,41,85,42,29,43,22,44, +221,41,204,36,23,32,222,27,142,24,221,24,170,27,32,29,146,28,85,26,6,23,249,22,181,28,149,35,25,39,146,39, +149,37,147,33,55,29,132,24,40,19,74,15,72,13,89,10,102,6,119,4,215,5,97,9,111,13,56,17,243,20,131,23, +159,22,102,18,179,12,204,6,54,2,184,254,213,249,96,245,238,245,122,249,240,251,58,255,134,4,69,9,246,12,241,12, +57,4,138,247,181,239,204,234,175,229,224,228,0,232,11,234,127,236,36,240,232,241,102,245,255,252,144,0,47,253,189,248, +80,242,16,232,92,224,2,220,24,214,26,210,148,210,223,209,202,209,31,217,163,227,166,235,248,242,67,247,145,244,133,239, +9,235,177,227,247,218,191,211,149,203,177,195,247,192,160,194,98,199,154,208,127,218,226,224,41,230,59,234,51,233,126,229, +16,227,143,223,119,217,196,210,147,203,222,196,246,193,91,195,76,200,9,209,161,218,254,224,53,227,246,223,89,215,252,207, +150,206,188,207,111,209,102,213,51,217,203,217,24,217,141,216,1,216,60,217,250,219,64,221,39,221,162,219,180,213,218,205, +64,203,1,206,208,209,78,215,105,223,66,231,157,237,154,241,161,239,175,232,252,226,167,223,226,219,20,217,180,216,8,217, +46,219,127,224,224,228,32,231,72,236,153,243,7,247,33,247,104,246,247,241,204,234,26,231,86,230,205,228,85,229,179,233, +49,238,163,242,111,248,198,251,171,251,39,253,107,0,253,0,136,254,131,250,117,245,117,242,55,243,133,244,199,245,34,250, +164,0,189,5,189,8,21,10,95,11,201,15,149,21,101,22,100,17,23,11,2,5,2,255,168,251,39,253,57,3,74,12, +223,20,178,25,200,27,211,29,83,31,125,30,17,28,40,26,195,24,91,21,2,15,10,10,58,12,164,21,80,32,197,38, +0,41,147,42,58,44,32,42,180,34,189,26,110,23,217,24,162,27,129,28,166,27,224,29,170,37,202,45,154,49,202,51, +49,54,89,53,65,48,99,41,105,33,142,26,197,25,245,29,139,33,172,36,164,41,72,46,44,50,49,55,208,57,3,55, +86,51,253,48,155,44,219,39,201,38,81,39,189,39,64,41,223,40,97,37,5,37,124,41,139,45,51,49,85,54,126,56, +91,53,72,48,39,43,84,40,137,42,192,44,130,41,53,37,99,35,201,32,39,30,4,31,121,34,245,40,155,50,248,55, +174,53,95,51,150,51,141,48,217,41,141,34,61,27,18,23,253,23,32,25,37,25,46,28,107,32,66,34,141,36,48,40, +218,41,52,42,148,41,66,36,215,27,249,21,38,18,240,13,158,11,198,12,107,15,162,16,239,13,224,8,157,6,88,7, +253,6,194,5,226,5,210,6,147,8,113,10,176,8,159,3,200,255,171,252,174,247,30,243,12,240,231,235,41,232,220,231, +200,232,245,232,148,234,229,237,166,240,80,242,48,242,225,238,135,234,96,232,23,231,185,227,236,222,32,219,115,217,167,217, +186,217,74,215,184,211,208,210,138,212,22,214,170,215,128,218,218,220,89,221,222,220,26,219,44,215,208,209,138,203,132,197, +107,194,108,193,125,191,239,190,38,195,66,201,43,206,15,210,141,211,21,211,121,212,48,213,97,207,56,198,71,191,237,185, +16,183,148,184,164,186,22,189,54,197,228,206,37,210,101,210,145,211,121,209,82,205,136,204,10,204,180,200,109,198,120,197, +84,195,4,195,161,197,134,199,230,201,161,207,60,213,44,215,112,214,169,212,218,211,9,213,157,213,26,213,203,214,247,217, +39,219,134,218,222,216,211,214,201,215,197,219,245,221,161,222,123,225,108,228,184,228,76,228,178,227,48,226,76,226,94,229, +167,233,100,238,80,242,148,243,108,244,255,246,101,248,9,247,59,245,171,243,104,242,150,242,102,242,32,240,57,239,92,242, +229,247,26,255,65,7,52,13,239,16,200,20,78,22,52,18,209,10,166,3,114,254,70,253,73,255,83,0,133,0,154,3, +202,8,12,13,13,17,225,21,35,26,71,29,3,31,241,28,52,23,24,19,61,20,64,24,34,27,180,26,148,22,96,17, +185,14,13,14,51,13,187,14,113,21,80,29,12,33,143,33,229,34,101,39,54,46,38,50,35,46,221,36,30,29,80,24, +2,20,99,16,171,15,65,19,158,26,75,34,184,38,169,40,226,42,156,45,52,47,27,46,196,41,86,36,15,33,93,32, +162,32,208,32,94,32,5,32,78,33,250,34,175,34,232,33,116,34,7,34,164,31,59,30,168,30,51,31,194,31,89,32, +156,32,95,34,123,37,147,37,99,34,222,32,20,33,182,30,252,25,169,21,104,18,109,17,16,19,206,19,224,18,240,20, +98,27,107,34,176,39,202,42,193,43,9,44,239,42,26,37,254,27,187,20,194,15,86,11,42,8,22,6,9,6,104,12, +149,23,157,31,48,36,21,42,130,46,138,45,199,41,37,36,233,27,157,21,37,19,106,15,181,9,64,6,59,5,106,6, +228,11,94,19,99,25,159,31,49,38,44,41,16,40,190,36,57,31,5,25,82,20,39,16,73,12,128,10,75,10,35,11, +95,14,143,18,213,20,65,21,74,20,225,18,128,20,141,24,63,25,14,22,97,19,164,17,80,15,203,12,13,10,92,8, +146,9,124,9,172,3,233,252,141,250,254,250,153,253,86,3,235,8,128,12,228,15,152,16,74,11,193,3,75,254,147,250, +146,248,188,247,66,245,232,241,220,240,130,241,60,243,251,247,13,254,63,1,0,1,253,253,121,248,189,243,199,242,154,243, +130,243,14,242,179,238,220,233,222,229,207,227,198,227,61,230,7,233,170,232,216,230,3,232,141,235,167,237,149,237,113,236, +215,233,178,229,174,225,9,223,43,221,232,218,28,216,186,213,48,212,37,211,224,211,184,216,236,223,247,227,192,226,210,222, +126,218,231,215,115,217,4,221,214,221,46,220,235,218,252,216,250,212,152,208,234,204,29,202,31,201,116,201,202,202,239,206, +237,212,225,217,86,223,129,229,83,230,6,225,219,220,15,219,162,214,140,207,121,200,112,194,104,192,248,195,194,201,96,208, +168,216,142,223,60,227,242,229,0,230,217,224,108,219,131,217,42,215,224,210,44,208,127,207,40,208,27,212,104,218,198,222, +231,223,163,223,170,223,89,224,235,223,6,221,78,218,13,219,162,222,109,226,234,228,106,230,84,232,164,234,197,235,108,235, +248,233,173,231,238,230,213,232,26,233,133,229,187,226,145,227,174,229,209,231,241,233,251,235,93,240,137,247,156,252,135,253, +237,252,240,250,220,247,31,247,150,247,226,244,180,240,101,238,223,236,77,236,89,238,161,241,85,246,135,254,43,7,121,12, +211,15,66,17,38,15,199,12,202,11,128,7,222,255,70,251,95,251,96,253,59,0,102,2,225,2,24,5,83,11,133,18, +180,23,191,26,210,28,158,31,179,33,138,30,31,23,56,18,205,17,86,18,33,18,251,16,221,14,127,14,24,18,74,23, +146,27,83,31,237,34,129,38,65,42,28,44,93,42,197,39,87,39,73,39,131,36,58,31,62,26,35,24,87,25,175,28, +103,33,181,38,233,42,90,45,147,46,103,46,158,45,251,46,196,50,203,53,68,54,111,52,121,48,80,44,248,42,213,43, +190,43,7,42,95,40,70,40,11,42,44,44,157,45,138,48,92,54,255,59,94,62,219,61,25,60,2,59,51,59,86,57, +229,50,51,43,201,37,247,34,212,35,156,39,163,41,136,42,221,47,127,55,93,59,64,61,167,63,54,63,77,60,73,58, +249,53,80,45,217,38,74,38,158,39,14,40,81,39,184,37,38,39,162,45,218,51,75,54,102,55,68,55,188,52,129,50, +152,48,144,43,37,38,171,37,201,39,181,39,46,38,136,37,157,37,247,36,80,34,246,30,36,30,219,31,195,33,237,35, +24,38,112,37,14,34,84,31,166,29,241,26,95,23,114,20,60,18,114,15,2,11,179,5,49,1,66,254,111,254,95,3, +12,10,237,13,73,16,116,19,218,19,8,14,241,3,163,248,25,239,196,234,128,234,103,233,76,230,97,227,123,226,202,229, +143,236,129,241,55,244,245,249,35,0,169,253,68,242,44,229,102,218,25,212,15,211,227,209,38,204,135,198,23,198,69,201, +231,205,62,211,240,215,31,221,108,227,6,229,47,222,172,212,54,205,23,198,214,191,30,188,106,183,164,176,139,173,97,176, +211,181,192,188,176,196,115,202,246,204,54,205,214,201,138,194,133,186,137,179,194,173,3,171,205,171,35,174,255,177,148,184, +204,191,196,195,8,195,74,191,69,187,33,184,198,181,49,181,147,182,115,183,208,182,124,182,4,183,107,184,93,188,253,193, +24,197,230,195,201,191,235,186,145,184,102,186,106,190,172,195,92,202,234,206,148,206,77,204,47,202,126,199,52,198,156,199, +162,200,168,200,82,202,38,205,109,208,231,213,229,219,191,222,240,222,175,221,70,219,255,218,6,222,191,223,105,223,121,225, +248,228,88,229,95,227,65,226,150,227,176,232,139,239,214,242,20,242,125,241,155,242,28,245,98,249,149,253,127,255,148,0, +252,1,184,1,69,255,10,253,191,252,119,254,76,1,218,3,204,5,13,8,54,11,29,15,170,18,75,20,48,20,221,19, +82,19,156,18,210,19,80,23,37,26,203,26,99,26,200,25,242,25,27,28,215,30,163,31,116,31,102,32,29,33,250,31, +107,31,68,34,104,39,62,44,128,47,33,48,13,46,150,43,46,42,158,40,34,39,192,39,122,41,200,41,119,41,86,42, +195,43,43,45,41,47,161,49,92,52,233,54,244,54,247,50,57,45,242,40,179,39,193,41,51,45,54,47,9,48,139,49, +250,50,157,50,190,48,205,46,132,46,102,48,162,49,96,47,19,43,124,39,93,37,45,37,133,38,197,38,74,37,249,36, +183,38,212,39,253,38,237,37,95,38,214,39,105,40,71,39,75,37,208,34,200,31,105,29,43,28,178,26,40,25,62,25, +166,26,102,28,255,30,206,33,237,34,138,34,191,33,120,32,16,31,15,30,191,28,69,27,99,26,105,24,105,20,182,17, +127,18,124,20,59,22,143,24,183,26,115,27,81,27,147,26,90,25,116,25,46,27,187,27,135,25,195,21,40,18,179,16, +205,17,16,18,178,15,199,14,169,17,96,20,159,20,250,20,90,22,146,23,248,24,86,25,187,21,21,16,122,13,73,14, +175,15,214,16,54,17,213,15,19,14,192,13,50,14,180,14,209,15,25,17,157,17,130,17,193,16,202,14,238,11,122,9, +144,8,221,8,168,8,150,7,80,7,204,7,32,7,56,5,4,3,182,0,68,0,101,3,235,6,76,7,203,5,120,3, +39,255,110,250,189,247,23,246,42,245,65,246,28,247,213,244,171,241,2,241,11,243,103,246,174,248,58,248,64,247,62,247, +250,244,46,239,142,233,95,230,129,229,156,230,165,230,133,227,199,225,194,228,26,232,115,232,106,231,183,229,133,228,87,230, +7,232,157,228,79,223,253,220,164,219,44,217,12,215,15,213,82,211,71,212,213,214,175,215,149,215,237,215,215,215,70,216, +7,218,59,218,132,215,176,211,81,207,77,203,227,201,212,201,239,200,135,201,75,205,72,209,17,211,52,210,18,207,185,204, +241,204,128,204,144,202,166,202,235,203,22,203,231,201,32,202,108,202,5,204,39,207,192,206,181,201,235,196,180,193,169,191, +202,193,232,199,141,206,194,213,234,219,231,219,31,216,254,214,45,214,189,209,206,204,28,200,90,193,104,189,120,193,73,201, +48,208,201,214,76,220,123,223,227,225,254,226,101,225,38,224,201,224,131,223,108,219,216,215,150,213,12,213,225,216,158,223, +159,227,237,227,124,228,39,231,242,234,203,238,135,241,120,242,149,242,225,242,33,243,59,243,197,243,180,244,102,245,178,245, +93,245,64,244,85,244,91,248,252,254,207,3,112,5,142,5,217,4,177,3,9,3,61,2,57,1,118,3,163,10,182,18, +181,23,132,25,9,25,142,23,85,22,219,19,8,15,170,11,148,12,176,14,183,15,188,17,182,21,84,27,146,35,71,44, +244,47,63,46,183,43,139,41,60,38,21,34,14,29,98,23,249,20,36,24,81,29,32,34,22,40,76,46,239,50,83,55, +214,57,225,53,188,46,67,44,72,45,161,43,155,39,106,36,10,35,4,37,242,41,70,45,39,46,230,48,232,53,126,57, +59,58,11,56,160,51,127,48,51,48,161,47,155,45,215,43,201,41,73,39,59,39,230,41,121,44,144,46,50,49,255,51, +100,54,184,54,17,51,79,46,188,44,99,44,164,41,37,38,59,36,158,35,180,36,14,39,30,40,173,40,255,43,128,48, +224,49,189,47,158,43,197,37,189,31,138,28,54,29,19,32,128,34,239,34,64,34,41,34,215,34,222,35,124,37,49,39, +88,39,242,36,76,32,192,26,158,22,144,21,165,22,107,23,197,22,140,21,38,21,119,22,45,25,80,27,72,27,12,26, +247,24,67,23,198,20,57,19,126,18,216,16,219,14,37,13,241,9,243,5,23,5,240,7,98,11,141,13,243,13,126,13, +227,14,103,17,66,16,27,11,130,6,231,3,30,2,58,1,68,0,101,254,165,253,219,253,232,251,252,248,89,248,148,248, +244,247,206,247,0,248,133,248,124,251,239,254,185,254,181,252,162,250,21,244,103,233,207,226,241,226,240,228,40,230,91,230, +49,229,20,229,117,232,94,237,107,241,156,244,68,246,210,244,128,239,235,230,229,222,240,219,194,220,190,220,32,219,104,217, +69,216,181,217,23,223,180,229,58,234,95,235,116,232,6,227,69,222,12,218,131,213,249,211,82,214,26,215,242,211,14,209, +223,208,80,210,45,213,190,216,133,218,53,218,162,217,170,216,184,213,66,209,241,205,96,205,242,205,116,205,2,205,80,207, +44,212,34,217,135,220,160,221,5,220,232,215,35,210,161,204,193,201,208,201,63,203,171,205,130,209,199,213,35,217,102,219, +223,220,244,221,136,222,65,221,150,217,83,213,31,210,30,208,126,207,48,208,121,209,198,211,204,215,123,220,70,225,215,230, +46,235,4,235,31,231,0,226,194,219,129,213,193,210,110,212,199,216,193,222,93,228,20,231,185,232,100,236,32,240,38,241, +120,240,88,238,228,233,202,229,51,228,252,226,98,226,151,229,250,234,22,239,23,243,101,247,157,249,12,251,30,253,34,252, +152,247,1,244,14,241,6,237,67,236,221,239,138,242,195,244,36,250,185,254,144,255,224,0,254,2,11,3,252,3,82,6, +243,3,183,253,92,250,64,249,235,247,83,249,56,253,107,0,38,5,4,12,188,15,64,16,39,18,241,19,154,18,254,15, +164,12,237,7,90,5,201,6,67,9,223,11,38,15,204,16,21,17,241,19,5,25,82,28,230,28,253,27,144,26,182,25, +238,24,222,22,49,21,80,22,34,25,85,27,7,28,116,27,145,27,92,30,46,34,160,35,9,34,107,31,171,30,46,33, +94,36,22,37,150,36,105,37,68,39,205,40,111,40,41,37,105,34,181,36,187,41,250,43,209,42,42,40,78,37,103,36, +119,37,132,37,143,37,78,41,176,46,40,49,191,48,193,46,244,43,29,43,41,44,180,42,29,39,11,38,190,38,121,38, +152,39,194,42,229,43,245,42,81,43,210,43,185,42,206,42,55,45,69,47,39,48,13,48,36,45,15,40,194,36,78,36, +202,36,173,37,177,38,227,38,58,39,221,40,121,42,120,43,49,45,214,46,84,46,62,44,205,41,159,38,95,35,209,33, +178,33,90,33,7,32,91,30,120,30,196,33,36,38,19,41,254,42,212,43,243,41,47,38,64,34,102,29,156,24,142,23, +104,25,60,25,76,22,28,20,163,20,136,23,123,27,160,30,24,32,251,31,27,30,22,27,28,24,245,20,161,17,74,15, +13,13,235,8,235,3,54,0,48,254,76,254,171,0,121,3,205,5,69,8,12,10,138,10,230,10,38,10,255,5,80,255, +164,247,1,239,172,231,106,228,150,227,206,226,226,226,197,228,159,232,113,238,181,243,199,245,251,245,52,245,31,241,203,233, +16,226,99,219,72,215,122,214,92,213,9,210,228,208,194,211,239,214,143,217,202,220,240,221,98,219,3,216,121,213,94,211, +68,210,158,209,234,207,223,205,2,204,37,201,48,198,89,197,144,198,240,200,48,203,207,202,47,200,2,199,194,199,31,200, +87,200,142,200,159,198,18,195,243,192,12,193,120,195,147,200,52,205,220,205,133,204,239,203,143,202,149,199,163,197,163,197, +212,197,158,197,53,197,47,196,211,195,178,198,1,204,25,208,32,210,170,211,214,211,27,209,174,205,69,204,24,204,24,204, +32,205,70,207,228,209,236,212,75,215,2,216,172,216,15,218,193,217,20,215,198,212,141,212,61,214,157,217,173,221,74,225, +141,228,34,231,111,232,113,233,90,234,148,233,146,231,44,230,5,229,253,227,222,228,135,231,170,234,250,238,228,243,112,246, +179,246,111,247,187,248,35,249,186,248,247,247,128,247,91,248,219,249,228,250,161,252,184,255,13,2,39,2,199,0,63,255, +37,255,245,0,202,2,176,3,40,5,96,7,227,8,223,9,27,11,46,12,50,13,141,14,168,15,137,16,148,17,168,17, +152,16,189,16,196,18,123,20,156,20,131,19,60,18,79,19,235,23,134,28,137,29,169,28,65,29,47,31,217,31,198,29, +0,27,122,27,18,31,168,32,33,30,112,27,108,27,225,28,192,30,97,32,59,32,85,31,194,32,157,35,129,36,201,35, +105,35,129,34,144,32,156,31,39,32,141,32,138,32,14,33,72,34,170,35,249,35,125,34,235,32,25,33,253,33,61,34, +64,34,196,33,79,32,210,31,196,33,152,35,55,34,164,30,116,28,223,28,37,29,8,27,136,24,43,24,68,25,6,27, +175,29,186,31,78,32,144,33,42,35,122,33,237,28,196,25,70,25,179,25,15,25,78,22,32,20,82,22,149,26,141,28, +223,29,139,32,174,33,92,32,171,30,104,28,115,26,212,27,54,30,24,29,205,26,3,27,51,28,12,29,31,30,91,30, +179,29,45,29,34,27,242,23,69,24,251,27,254,29,212,29,235,29,234,29,13,30,4,31,199,30,225,29,3,32,23,35, +197,33,44,29,75,25,185,22,118,21,22,21,110,19,203,17,95,20,64,26,221,30,230,32,57,33,127,32,238,31,75,31, +139,28,232,23,218,19,163,17,240,16,103,16,212,14,155,13,88,14,142,15,31,16,244,16,48,17,246,15,86,15,132,15, +153,14,90,14,80,16,230,16,138,14,188,11,155,7,164,0,104,250,251,246,170,244,0,245,125,249,180,253,222,254,217,255, +185,1,25,3,182,3,191,1,5,252,172,246,195,243,252,238,77,232,199,229,93,232,204,235,8,238,37,238,28,236,109,235, +15,237,133,236,66,233,216,231,17,232,47,230,210,226,47,224,83,222,254,221,11,223,74,222,117,219,58,218,189,218,72,218, +171,217,41,218,194,217,4,216,214,214,79,213,170,209,173,205,110,203,201,202,207,203,35,206,22,208,226,209,207,212,63,215, +170,215,99,215,249,213,91,209,82,203,70,198,166,192,130,186,141,183,112,184,194,187,232,194,25,205,220,212,0,216,201,216, +209,215,64,213,137,210,148,206,121,200,25,196,19,195,254,192,224,188,124,187,126,190,235,195,245,202,149,209,86,212,87,212, +210,213,210,216,244,217,20,216,71,213,230,211,246,211,151,211,114,210,71,210,87,211,47,212,228,212,63,214,118,215,70,216, +146,218,40,223,159,227,104,229,18,229,90,229,14,232,90,236,145,239,160,239,17,237,66,234,239,232,83,233,156,234,135,235, +62,236,142,238,151,241,159,241,118,239,129,240,145,245,239,250,239,255,241,4,126,7,169,7,119,8,188,8,203,5,104,2, +250,1,8,3,77,3,90,2,154,0,88,0,155,3,195,8,100,14,104,21,7,28,18,31,244,31,220,32,196,31,187,27, +165,23,232,20,127,18,94,16,22,15,90,15,194,18,78,25,88,32,9,38,59,42,87,44,90,44,148,43,227,41,205,37, +78,32,128,28,146,27,125,28,155,30,116,33,14,36,198,38,196,42,127,46,93,47,181,46,176,47,127,49,226,48,204,44, +135,38,207,32,190,30,107,32,242,34,9,37,132,39,73,42,129,44,226,45,129,46,80,47,80,49,123,51,207,51,253,48, +118,42,87,34,60,29,120,28,95,29,4,31,226,33,156,36,252,38,119,42,215,45,20,47,226,46,160,45,130,42,105,38, +35,34,186,29,112,27,165,28,108,30,175,30,109,30,190,29,227,28,156,29,42,31,174,31,252,31,73,32,150,31,169,31, +60,33,75,33,190,31,242,30,153,29,30,27,202,25,155,23,141,18,95,16,248,19,192,22,28,22,36,23,207,26,192,29, +213,30,34,29,162,24,120,21,131,21,40,21,242,18,233,16,105,15,210,14,142,16,216,18,30,19,19,19,158,20,136,21, +191,19,160,16,24,14,117,12,132,11,255,10,208,9,136,7,89,6,99,8,213,11,189,13,14,14,181,13,16,13,210,12, +254,11,113,8,177,3,89,0,240,252,131,248,93,245,146,243,217,242,133,246,35,254,14,4,172,7,128,11,170,12,244,8, +31,3,93,251,34,241,30,233,179,229,8,228,102,228,195,231,211,234,244,237,199,244,147,251,94,253,54,253,202,252,95,248, +229,240,250,233,207,226,225,220,206,220,10,224,240,224,1,225,240,226,36,229,171,231,56,235,138,236,181,234,22,233,215,230, +251,224,228,218,176,216,20,216,39,215,226,215,135,217,122,217,64,217,240,218,248,220,62,222,39,223,97,222,136,219,236,216, +211,214,214,211,106,209,139,208,111,207,88,207,35,211,4,216,133,218,26,221,186,224,64,225,238,221,201,217,212,212,242,206, +247,202,95,201,172,200,122,202,171,207,25,213,6,217,101,220,131,222,127,222,194,221,241,220,38,219,75,216,43,212,110,206, +201,201,38,202,206,206,107,211,94,214,114,217,199,220,243,221,154,220,128,219,52,220,92,221,91,221,225,219,194,217,55,216, +149,215,208,215,183,217,236,220,48,223,53,224,135,225,10,227,108,228,246,229,132,229,65,226,131,224,177,225,91,225,182,223, +154,225,122,230,178,235,169,241,112,245,104,243,153,240,13,242,90,243,94,241,226,239,234,239,94,239,31,239,82,239,106,238, +195,238,87,243,98,250,18,1,108,5,65,5,85,2,159,1,18,3,71,2,79,254,114,250,24,250,214,253,31,2,171,3, +115,4,144,7,84,12,119,16,136,17,64,14,11,11,195,13,134,19,11,21,50,18,242,15,128,16,53,19,50,22,107,23, +146,23,57,25,31,29,197,33,243,35,17,33,71,28,155,27,130,30,186,31,255,29,153,27,128,27,21,33,92,42,28,47, +253,44,211,42,104,44,129,46,198,45,157,41,16,37,153,37,117,42,170,43,217,38,111,34,43,35,187,40,196,48,200,54, +225,55,11,55,75,55,204,54,127,51,158,45,173,38,159,34,21,36,20,39,105,39,192,39,176,43,42,50,162,56,72,60, +193,58,170,54,254,52,246,52,55,50,104,44,168,38,171,35,175,36,22,40,120,42,76,43,210,44,115,47,99,49,155,49, +185,48,12,48,62,48,197,48,173,48,225,46,153,42,198,37,248,35,243,36,16,37,27,35,228,32,72,32,130,34,82,38, +151,39,172,37,115,37,245,40,2,44,34,43,57,39,224,34,24,32,120,30,185,27,252,23,6,22,252,22,28,26,248,29, +117,31,13,29,112,26,187,26,158,27,174,26,208,24,241,22,155,21,66,21,253,19,45,16,126,12,221,11,109,13,232,14, +188,13,81,8,30,2,237,255,21,0,107,255,125,0,242,4,101,8,145,7,85,3,151,252,83,245,24,241,79,240,17,241, +8,243,142,244,109,242,169,237,242,233,254,231,215,231,124,234,155,237,170,237,126,235,39,233,142,230,202,228,129,229,190,230, +185,229,211,226,86,223,210,219,20,217,163,215,162,215,248,216,150,217,87,215,127,212,44,213,200,217,209,223,34,228,187,227, +27,223,26,218,250,213,82,209,201,204,119,201,183,198,3,197,232,196,23,197,241,198,15,206,249,215,172,221,12,221,242,216, +56,212,50,209,159,208,169,208,234,207,59,206,254,202,228,198,232,195,109,194,47,195,74,200,9,208,139,213,143,215,153,215, +254,213,190,211,111,210,199,209,178,209,218,210,178,211,235,210,231,209,34,209,106,208,163,209,182,212,127,214,235,214,225,215, +86,216,240,215,12,217,186,219,26,222,201,223,67,224,83,223,186,222,135,222,115,221,175,221,245,224,42,228,110,229,247,229, +54,229,110,227,203,227,19,230,47,231,154,231,214,232,52,234,232,235,225,237,94,238,125,238,97,240,47,242,13,243,18,245, +98,246,149,244,145,243,149,245,170,246,3,246,186,246,146,248,175,250,160,253,206,254,174,252,157,251,218,253,40,0,40,1, +115,1,118,0,62,0,167,3,153,7,2,8,248,6,144,7,255,8,166,9,204,8,191,6,191,5,61,7,138,9,192,10, +83,10,122,8,160,7,54,10,247,13,114,15,5,16,47,18,232,20,152,22,47,23,174,22,159,21,224,20,197,19,212,17, +145,16,145,16,131,16,22,16,170,15,212,14,146,14,1,17,154,21,147,26,45,32,158,37,17,39,68,35,239,29,70,26, +239,23,160,21,57,19,209,17,52,18,209,18,196,17,154,16,216,17,243,20,132,24,56,28,197,30,79,31,162,31,156,32, +83,32,200,29,161,25,146,20,141,16,179,15,18,17,95,18,215,18,174,18,51,19,150,21,83,23,183,21,3,20,6,22, +74,25,77,26,174,25,122,25,117,27,156,31,111,33,7,29,203,21,120,17,44,17,172,18,240,18,180,16,156,15,11,19, +57,23,149,23,164,22,213,24,88,30,123,36,100,39,157,36,142,30,150,25,56,23,217,22,188,22,208,20,146,18,131,19, +161,22,155,24,5,26,200,28,100,32,207,35,143,37,200,35,237,31,196,29,51,30,143,31,6,32,92,29,108,23,20,18, +119,16,63,18,4,23,51,30,152,36,208,39,59,41,143,41,93,38,124,31,244,25,146,25,59,27,124,25,20,20,174,15, +146,16,221,22,201,29,219,31,158,29,151,28,18,31,240,33,181,33,231,29,69,25,6,23,247,21,254,17,202,11,158,8, +123,10,53,14,189,15,64,13,151,8,33,6,190,8,120,15,18,22,21,24,223,21,58,19,94,15,154,6,152,251,161,244, +38,243,167,245,2,250,183,251,220,249,125,250,41,0,160,5,54,7,112,5,48,1,236,252,136,250,214,246,45,240,147,235, +53,236,167,238,108,239,248,237,119,235,197,234,51,237,92,240,90,242,240,242,9,241,80,237,186,234,239,232,134,229,186,225, +124,223,163,221,157,219,79,218,82,217,7,217,124,219,235,223,250,226,105,227,248,225,121,223,74,221,223,219,42,217,250,211, +156,206,212,203,240,203,181,205,189,207,48,209,167,210,90,213,163,216,253,217,75,216,155,213,115,212,116,212,253,210,211,206, +121,201,24,197,30,195,141,196,142,200,204,203,176,204,132,205,92,207,49,208,25,208,173,209,222,212,64,215,97,215,137,212, +37,207,191,201,63,198,242,196,73,198,38,201,177,202,248,202,50,204,161,206,171,210,6,217,166,222,208,224,204,225,96,226, +189,223,191,218,74,214,40,210,50,207,51,207,185,207,234,207,31,212,43,220,19,227,173,232,175,237,205,238,64,237,60,238, +9,240,221,237,254,232,98,228,50,225,170,225,6,230,187,234,128,238,194,242,161,246,61,248,127,247,114,245,190,244,243,247, +71,253,141,0,164,0,148,255,135,255,170,0,103,1,20,2,217,4,104,8,171,9,146,9,113,9,124,7,223,4,234,5, +86,10,126,14,111,17,221,19,74,22,37,25,251,26,77,26,18,25,98,25,236,26,206,29,223,32,56,32,10,28,175,25, +212,26,62,28,110,28,53,29,25,33,254,39,96,45,252,45,155,44,214,43,159,42,218,41,197,42,90,42,210,39,139,39, +3,42,67,43,9,43,188,43,177,45,158,48,184,51,135,52,253,49,28,46,227,43,10,45,54,47,20,46,13,43,129,43, +228,46,183,48,244,48,247,49,93,52,17,56,182,58,152,56,65,51,81,47,12,45,125,43,25,44,167,45,74,45,138,44, +43,45,247,44,224,43,40,45,86,48,47,50,216,50,199,51,168,51,77,49,147,46,237,44,142,42,8,38,186,33,69,32, +184,32,62,33,168,33,233,33,60,34,146,35,227,36,46,36,232,34,127,35,97,36,222,34,63,31,17,27,192,23,67,22, +29,21,57,18,249,14,162,13,57,13,155,12,242,12,71,14,182,14,133,13,2,11,88,7,128,3,230,255,33,251,5,246, +104,244,101,246,122,248,153,251,191,2,157,10,223,13,141,11,218,2,119,244,101,232,181,227,227,223,56,217,22,214,137,216, +100,220,140,226,130,236,238,246,130,1,208,11,202,13,123,4,35,248,164,236,117,224,167,215,152,211,223,205,2,199,241,197, +212,201,123,207,188,216,193,227,232,235,201,241,234,244,1,242,163,236,3,234,90,231,197,225,128,218,192,208,77,198,78,194, +76,197,47,201,184,205,243,212,42,219,45,222,196,224,141,227,127,229,120,231,95,232,44,229,101,222,93,215,90,210,192,208, +114,211,138,217,178,223,213,225,89,223,149,219,173,216,187,214,239,214,126,217,115,220,139,223,63,226,84,225,39,222,70,223, +250,228,149,233,80,235,85,234,117,229,134,223,133,220,185,218,77,217,33,220,159,226,10,232,142,236,155,241,80,244,236,243, +102,243,70,242,39,238,177,232,226,228,170,227,149,229,21,234,35,238,231,239,0,241,58,243,18,246,80,248,167,249,68,250, +223,249,221,247,46,244,44,240,104,238,128,240,25,245,127,249,150,252,73,254,0,254,27,252,166,250,54,251,177,253,1,1, +155,3,132,4,59,4,194,3,197,3,197,4,84,6,215,6,62,5,230,1,29,254,194,251,15,252,89,254,182,1,59,6, +167,10,65,12,95,11,205,11,211,14,60,17,208,16,243,14,163,12,26,9,51,5,223,2,201,1,27,1,235,1,74,4, +251,6,36,11,223,17,29,24,12,27,172,27,97,26,64,22,33,17,115,13,40,11,198,10,26,13,160,15,60,16,35,17, +193,19,20,22,153,23,206,25,78,28,214,29,71,30,52,29,50,26,117,22,72,19,56,17,172,17,145,21,226,26,247,30, +146,33,99,35,71,36,22,36,178,34,244,31,22,29,138,27,234,25,100,22,103,19,138,20,240,24,124,29,236,32,250,34, +35,36,38,38,182,40,63,41,33,40,135,39,175,37,81,32,74,26,73,23,128,23,207,26,180,32,60,37,6,37,194,33, +110,30,181,27,228,25,149,25,57,26,34,27,179,28,200,30,223,31,47,31,200,29,61,28,248,24,4,19,212,12,2,10, +178,11,53,16,42,20,127,20,67,17,29,13,252,9,20,9,235,11,180,17,127,22,82,23,123,20,209,15,226,10,248,5, +245,0,192,253,138,254,113,1,214,2,236,2,29,4,97,6,146,7,36,6,225,2,22,1,181,2,0,5,75,4,42,0, +211,249,64,243,160,239,161,239,66,240,85,240,111,241,14,243,179,243,86,244,122,245,166,245,254,244,121,244,147,242,40,238, +73,233,69,230,191,229,121,231,90,233,133,232,104,229,226,226,28,226,201,226,241,228,12,232,72,235,157,238,218,240,37,239, +216,232,248,224,216,218,196,215,184,215,253,217,48,221,3,224,11,226,217,226,26,225,224,220,212,217,26,219,103,222,129,223, +55,222,226,220,85,220,220,219,92,218,126,215,149,213,178,215,20,221,241,225,18,228,180,227,99,225,236,220,160,214,112,209, +90,209,59,214,231,219,172,223,132,225,186,225,15,225,107,224,243,223,189,224,84,227,73,228,254,224,155,220,10,218,112,216, +126,216,139,219,114,223,86,227,214,232,131,237,42,238,183,237,240,238,115,239,254,237,108,235,9,231,47,226,160,224,106,226, +205,229,26,235,113,240,247,242,15,245,227,248,202,250,58,249,223,247,143,247,35,246,188,243,230,240,242,237,169,237,56,241, +97,245,145,248,65,252,216,255,84,2,95,5,134,8,51,8,65,4,30,0,61,253,185,251,22,253,138,1,158,6,170,10, +215,13,219,15,88,16,74,16,197,16,140,17,105,17,19,15,251,10,46,8,1,9,101,12,134,16,135,20,4,23,213,23, +127,25,157,28,141,30,217,30,220,30,38,29,196,24,184,20,229,18,15,18,76,18,180,20,184,24,143,29,48,34,156,36, +72,37,173,38,214,39,8,38,77,34,85,31,200,29,148,29,47,30,15,30,109,29,101,30,60,33,30,36,231,37,54,39, +83,41,159,43,84,43,66,40,15,38,98,38,86,39,244,39,95,40,239,39,77,39,40,40,137,41,91,41,37,40,157,39, +249,39,104,40,77,40,242,39,35,40,176,40,251,40,143,41,198,42,120,43,221,42,135,41,11,40,77,38,217,35,211,32, +159,30,52,30,203,30,182,31,11,33,87,34,185,35,245,37,122,39,41,38,171,35,123,34,181,33,212,31,211,28,247,24, +220,21,107,21,204,21,26,20,144,17,3,16,69,14,101,12,163,12,197,14,15,17,46,20,145,24,67,27,130,25,34,20, +51,13,145,5,200,253,115,246,221,239,127,235,100,235,144,238,138,242,45,248,133,0,18,8,147,11,214,11,136,9,246,4, +94,0,120,251,113,243,24,234,63,227,51,222,144,218,217,218,90,222,45,227,113,234,120,242,17,247,47,249,146,250,170,248, +239,243,150,239,225,233,172,225,177,218,223,212,9,206,70,202,39,204,100,207,117,211,110,219,69,228,241,233,76,237,136,237, +208,232,60,226,65,220,71,213,121,206,84,203,220,203,164,206,172,210,175,213,27,215,75,217,156,220,215,222,223,222,151,220, +121,216,86,212,161,209,101,208,60,208,183,208,105,210,19,214,242,216,211,215,66,213,249,212,21,214,153,215,150,217,62,217, +26,214,22,213,107,215,153,217,208,219,67,223,56,225,220,224,19,224,1,222,174,218,124,217,28,218,100,217,120,216,81,217, +203,218,153,221,160,227,77,234,3,238,17,239,130,238,64,236,58,233,82,230,47,227,84,224,24,223,145,223,21,225,155,227, +117,231,177,236,203,242,104,248,246,251,23,253,181,252,136,251,171,249,151,247,92,245,12,242,133,238,99,237,45,238,166,238, +133,240,227,245,193,251,174,255,71,3,252,5,73,5,218,2,109,1,102,0,86,255,144,254,206,252,187,250,44,251,22,253, +218,253,95,255,234,3,86,9,13,13,51,14,50,12,191,8,139,7,28,9,158,10,116,10,55,9,70,8,249,8,235,10, +252,11,225,11,216,12,138,15,130,17,164,16,73,13,47,9,239,6,80,8,206,10,101,10,184,8,83,10,102,14,189,17, +4,21,250,24,218,27,32,29,20,28,159,22,27,15,78,10,197,7,103,6,0,9,139,14,87,18,156,20,1,23,11,24, +252,24,252,27,241,29,118,29,13,30,10,31,210,28,41,24,157,18,112,13,131,12,247,14,192,14,97,13,102,16,90,21, +98,25,235,30,157,35,217,35,79,36,82,39,31,39,20,35,150,31,209,27,231,22,128,19,201,16,79,14,63,17,184,26, +222,36,19,44,109,47,47,46,139,43,214,42,177,41,103,38,214,35,12,35,61,34,147,32,64,30,111,29,50,33,150,39, +84,43,23,43,133,40,133,37,35,37,179,39,159,41,141,42,112,44,119,44,69,40,228,35,128,34,192,34,223,35,179,37, +64,39,183,40,54,41,137,38,90,35,85,36,124,39,98,40,119,39,64,38,179,36,149,35,100,34,77,31,9,28,83,27, +41,28,145,29,18,32,152,33,87,32,78,30,207,27,181,22,220,16,24,14,181,14,170,18,205,25,137,30,132,27,51,20, +20,14,241,8,111,4,139,2,100,2,126,2,216,3,90,4,188,0,109,253,87,0,73,6,65,10,157,12,72,12,226,6, +234,255,255,250,16,246,171,240,82,237,223,234,213,231,44,230,36,230,226,230,69,234,213,239,239,243,33,246,145,246,68,243, +212,238,161,237,158,236,2,232,105,226,231,220,190,213,79,207,176,203,111,201,129,202,3,209,8,216,189,219,117,222,155,224, +243,224,108,225,21,225,191,219,33,211,33,204,33,199,218,195,212,195,33,198,158,200,112,202,29,202,114,199,65,197,45,197, +71,199,12,204,229,208,122,209,195,206,108,204,228,202,103,202,172,203,212,203,104,200,129,195,3,191,100,187,214,186,3,190, +81,194,198,198,200,203,150,207,253,208,70,209,213,209,164,211,236,213,137,212,17,206,212,199,235,197,97,198,8,199,242,199, +84,201,107,204,190,209,18,214,174,215,6,218,71,222,140,224,161,223,21,222,47,220,154,217,243,216,36,219,29,221,139,221, +49,222,169,223,167,225,193,228,50,232,98,234,69,236,253,238,168,240,46,240,96,239,66,239,189,239,121,241,140,243,38,244, +199,244,128,247,113,250,213,251,8,253,139,254,75,255,55,255,116,254,99,253,149,253,57,255,77,1,191,4,40,9,232,10, +90,10,49,12,69,16,163,18,11,19,111,18,237,15,224,12,120,11,157,10,78,10,203,13,74,21,180,28,241,32,179,33, +194,32,161,32,223,32,162,30,88,26,118,23,192,22,72,22,220,21,87,23,115,27,152,32,10,37,104,40,54,42,23,42, +197,41,80,42,116,41,89,38,165,35,160,33,146,30,148,28,53,30,120,33,73,36,239,38,145,40,201,40,125,41,201,42, +97,43,71,44,120,45,61,44,217,40,78,38,215,36,80,35,46,34,149,33,123,33,112,34,109,35,145,35,237,36,65,40, +26,43,204,44,233,45,240,44,61,42,133,40,206,38,249,34,9,31,244,27,59,24,5,23,229,27,14,34,93,36,164,37, +28,40,25,41,104,40,172,39,154,37,43,34,60,31,43,27,44,21,44,18,142,20,91,24,178,27,125,31,146,33,68,32, +79,30,207,29,112,30,239,31,118,32,177,29,181,25,11,24,30,24,7,24,187,23,206,23,107,25,109,28,149,28,224,23, +230,19,231,20,70,23,116,23,171,22,70,22,177,22,91,24,66,25,224,22,230,18,204,16,222,16,202,16,215,14,30,12, +147,11,125,13,124,14,95,12,26,8,168,3,56,1,185,1,7,4,31,8,247,14,200,21,182,23,252,18,125,8,217,251, +220,243,235,242,189,243,34,243,126,243,65,245,35,247,61,250,125,254,94,2,201,6,200,10,147,9,180,2,167,250,149,243, +32,238,70,235,36,233,120,230,107,230,147,233,195,236,232,240,119,247,176,251,76,250,76,246,98,241,102,235,246,230,27,229, +228,227,103,228,142,231,160,232,25,229,226,225,133,226,163,228,153,229,217,228,127,226,136,223,217,220,80,218,199,216,181,217, +106,220,220,222,242,223,149,223,149,222,90,222,102,223,241,224,103,225,226,222,103,217,134,211,33,207,254,204,210,206,124,212, +25,218,5,221,162,221,185,219,43,216,129,214,10,215,145,214,96,213,110,213,44,213,27,212,185,212,52,214,10,214,204,213, +236,214,201,215,145,216,209,217,234,216,145,213,244,210,155,208,164,204,4,202,153,203,58,208,7,215,137,222,139,226,38,226, +198,224,62,223,147,220,14,218,29,216,245,213,6,213,124,213,56,212,66,209,117,208,72,211,209,216,209,223,84,229,187,231, +8,234,15,238,108,240,80,238,104,233,199,228,41,226,137,225,137,225,129,225,241,226,142,231,6,238,252,241,59,241,53,239, +247,239,248,242,229,245,47,247,137,245,6,243,255,243,215,246,139,246,55,245,138,247,50,251,171,252,217,252,0,252,165,250, +161,252,216,1,146,4,155,3,46,3,25,5,122,8,234,11,59,13,1,13,99,14,65,16,38,15,172,12,247,11,154,12, +144,14,178,18,140,22,223,23,204,24,26,27,35,29,136,29,201,28,167,27,165,26,218,25,26,25,34,25,247,26,253,29, +157,32,68,34,51,35,67,35,172,34,130,35,91,39,243,43,6,46,230,45,202,44,228,41,77,38,66,37,56,38,107,38, +200,38,183,40,208,41,170,40,171,39,76,40,220,41,113,44,24,48,29,51,54,52,253,51,69,51,224,49,104,47,17,44, +159,40,40,38,161,37,249,38,12,41,215,42,200,43,156,43,173,43,62,46,195,50,88,54,11,56,130,56,41,55,107,51, +28,46,195,40,179,37,40,38,113,39,156,38,8,37,249,36,82,38,121,40,116,42,64,43,145,44,98,47,125,47,92,42, +152,36,45,34,127,33,151,32,148,31,27,31,77,32,146,34,169,34,12,32,24,30,216,29,109,29,100,28,79,27,48,26, +118,25,21,25,233,23,21,22,104,21,165,22,70,24,254,23,112,21,113,18,136,15,184,11,240,7,57,5,29,2,104,255, +188,0,43,5,0,8,38,8,183,6,95,3,194,254,37,250,250,245,184,244,184,247,231,249,34,247,177,242,85,239,26,236, +220,234,90,237,199,239,160,239,93,239,138,239,119,238,60,237,245,236,247,235,95,233,225,229,213,225,47,222,79,220,117,220, +228,222,89,227,145,230,165,229,189,226,172,225,172,226,143,227,190,226,188,223,185,219,245,216,169,215,13,214,154,212,242,213, +165,217,245,219,45,219,220,216,12,215,12,215,102,216,160,216,42,215,127,214,31,215,37,215,250,214,242,215,46,217,90,218, +251,219,8,220,116,216,202,210,229,205,88,204,135,207,174,212,63,216,123,219,118,223,223,224,222,222,186,220,109,219,140,218, +154,218,209,217,158,215,101,216,196,220,0,223,27,222,253,221,157,222,188,222,121,223,201,223,235,222,17,224,228,226,150,226, +202,223,24,223,231,224,10,228,146,232,104,236,77,237,216,235,143,232,67,228,223,225,36,226,128,227,97,230,253,233,132,234, +131,232,104,232,68,234,102,236,40,240,137,244,49,246,127,246,206,247,126,247,171,244,97,243,92,244,35,244,255,241,73,239, +107,236,72,235,159,237,52,241,69,244,218,248,232,254,41,3,134,5,230,7,209,8,150,6,143,2,64,253,156,246,210,241, +160,241,90,244,202,247,102,251,93,254,197,0,209,3,250,6,187,9,31,13,175,15,155,14,78,11,109,8,203,5,78,4, +140,5,25,7,132,6,1,5,14,3,246,0,125,1,37,4,92,5,24,7,175,12,27,18,71,19,141,18,181,17,150,16, +5,17,228,17,212,14,136,9,153,7,178,8,121,9,195,9,24,10,223,10,237,13,161,18,241,20,149,19,116,17,190,16, +48,17,220,17,43,18,53,18,28,19,204,21,120,24,150,23,175,19,157,17,53,18,74,17,86,14,148,12,95,12,36,13, +1,16,132,19,34,21,32,22,245,23,173,25,188,27,32,30,236,29,214,26,191,23,24,21,223,18,117,18,64,18,205,16, +100,17,153,20,19,22,222,21,138,23,222,26,227,30,64,35,92,36,59,33,39,31,176,31,57,31,32,30,215,29,148,27, +92,23,53,21,97,21,151,22,60,26,19,31,165,33,232,34,228,36,243,37,159,37,48,38,86,39,129,38,32,35,212,30, +1,28,35,28,238,29,22,31,91,31,114,31,54,31,189,30,6,31,207,32,104,35,11,37,229,36,248,35,4,35,232,33, +63,33,165,33,55,34,2,34,232,32,210,30,115,28,65,27,78,27,116,27,104,27,170,27,166,28,61,30,42,31,111,30, +56,29,249,28,252,28,136,27,231,23,46,19,175,15,130,14,42,15,191,17,171,21,234,23,0,23,106,20,73,16,109,10, +201,5,31,4,193,3,70,4,104,5,19,4,95,0,49,255,238,1,188,5,28,9,168,10,227,8,198,5,204,2,234,253, +2,248,192,244,15,243,42,240,136,237,104,236,240,235,42,237,150,240,3,244,50,247,127,250,183,250,193,246,192,242,118,240, +133,237,64,233,39,228,54,222,167,217,97,216,4,216,9,215,65,216,201,220,154,225,85,228,149,228,169,226,114,224,208,223, +87,223,63,220,100,214,43,208,148,204,111,205,1,209,19,211,89,210,159,209,57,210,169,209,82,206,150,202,253,201,145,205, +190,210,233,212,251,209,235,204,167,201,223,200,148,201,56,203,91,205,69,208,47,212,46,214,142,210,39,203,16,198,113,198, +182,202,85,207,31,209,180,207,206,205,81,205,157,205,121,206,203,208,93,212,203,215,203,217,121,217,45,215,2,213,242,212, +180,214,208,215,1,214,74,210,152,208,228,210,1,215,113,218,25,221,80,223,198,224,168,225,152,226,58,228,19,231,59,234, +102,235,30,234,68,232,190,230,203,229,63,231,62,235,211,237,216,236,174,235,176,237,15,242,75,246,94,248,254,247,168,247, +25,249,17,250,203,248,161,247,238,248,50,252,214,255,220,1,90,1,141,0,115,1,156,2,27,3,73,4,9,6,78,7, +150,8,167,9,109,9,226,8,99,9,205,10,151,13,177,17,245,20,228,22,158,24,161,24,243,21,120,19,92,18,28,17, +27,17,168,19,187,21,249,21,239,22,4,25,35,27,46,30,115,33,134,34,8,34,146,33,173,32,246,31,106,32,57,32, +174,30,51,30,7,31,1,31,47,30,17,30,94,31,85,34,99,37,186,37,155,35,199,33,151,33,21,35,79,37,31,38, +146,37,198,37,106,37,221,33,145,29,52,28,227,28,41,30,136,32,182,34,251,34,234,34,12,36,47,37,207,37,106,38, +202,37,80,35,227,32,180,30,132,26,221,21,229,21,241,26,173,31,64,33,78,33,63,33,172,33,25,35,195,35,206,33, +53,31,108,29,207,25,69,20,160,17,154,19,207,22,214,24,107,25,171,24,52,24,164,25,209,27,28,29,162,29,143,29, +242,28,42,28,155,26,1,24,23,22,167,21,21,21,157,19,22,18,24,17,62,17,162,18,17,20,80,21,73,23,213,24, +84,24,54,23,6,23,169,22,180,21,240,20,104,19,163,16,57,15,233,15,236,14,67,10,119,5,247,3,210,4,185,5, +193,5,43,5,14,6,209,10,68,17,110,20,93,20,157,20,234,19,75,14,153,4,39,251,59,245,35,244,107,245,168,244, +232,242,61,245,92,251,36,1,13,6,123,10,60,12,179,10,241,6,36,0,240,246,225,239,216,237,98,239,117,242,155,245, +26,247,142,246,162,245,231,245,15,247,65,247,45,245,114,241,122,237,112,234,115,233,205,234,193,237,216,241,27,246,33,248, +230,246,1,244,254,240,145,238,215,236,227,233,224,227,196,220,27,216,70,215,190,217,134,221,164,224,66,228,213,233,194,238, +242,240,102,242,6,244,35,244,200,241,118,235,132,224,32,214,111,209,7,208,255,206,92,208,82,212,147,216,154,221,144,227, +121,232,254,236,152,241,38,242,221,236,139,229,109,222,125,215,157,210,132,208,231,207,195,209,159,214,20,219,128,221,43,224, +65,227,135,228,173,227,175,225,70,223,120,221,117,220,230,219,7,221,68,224,155,226,139,225,115,222,202,219,212,218,36,220, +9,223,48,225,11,225,127,223,14,222,215,220,39,220,237,221,146,226,215,230,77,232,36,232,90,231,207,229,61,229,181,230, +176,231,179,230,142,229,220,228,20,228,184,228,125,231,138,234,42,237,119,239,238,239,3,239,21,240,129,243,89,246,95,247, +129,246,143,243,225,240,27,241,196,242,217,243,97,245,108,247,233,247,192,246,242,245,44,247,107,251,30,1,31,4,36,3, +205,0,180,254,124,253,217,254,25,2,136,4,137,6,242,8,4,9,24,6,39,4,54,5,71,8,143,12,116,15,77,14, +82,12,136,13,141,15,217,15,142,16,117,18,55,20,166,22,68,25,252,24,198,22,138,22,194,23,169,23,131,22,156,21, +203,21,54,24,243,27,9,30,244,29,159,29,200,29,18,30,118,30,57,31,238,32,95,35,141,36,55,35,170,32,149,30, +144,29,189,29,237,30,242,32,122,35,188,36,142,35,75,34,61,35,221,36,166,37,133,38,250,38,252,36,104,33,75,31, +176,31,100,33,248,34,98,35,81,34,243,32,137,33,236,36,231,40,238,42,54,43,168,42,138,40,236,36,232,33,25,33, +173,34,106,37,18,38,126,34,101,29,20,27,106,28,165,31,194,34,72,36,144,36,0,37,52,37,17,36,204,34,24,35, +198,35,33,34,99,29,128,23,248,18,246,16,223,17,133,21,157,25,19,27,237,25,190,24,8,25,215,26,146,29,111,31, +21,31,66,29,140,26,10,22,17,16,63,11,212,9,130,11,154,13,73,13,128,10,39,8,201,8,131,11,194,12,132,10, +240,6,47,5,186,5,60,7,49,8,171,7,204,6,156,6,216,3,113,251,226,241,91,238,175,241,86,247,173,250,141,249, +23,246,87,244,225,244,4,246,163,247,166,249,131,251,161,253,48,254,201,249,186,242,241,238,225,238,239,238,125,237,40,234, +212,229,177,227,169,228,115,230,225,232,225,236,187,240,252,242,138,243,89,241,138,237,2,236,148,236,124,235,36,232,157,227, +241,221,188,217,77,218,208,221,230,224,0,228,222,231,174,234,227,234,152,232,14,229,106,226,173,225,190,225,225,225,95,226, +192,226,107,226,37,226,188,226,251,226,219,224,54,221,245,219,186,222,120,226,13,228,35,227,138,224,44,222,66,222,187,223, +8,224,54,224,113,226,99,229,137,230,47,229,31,226,228,223,226,224,162,227,16,229,215,228,254,227,238,226,19,226,199,224, +246,221,134,219,134,220,174,224,164,229,132,233,229,234,166,234,86,235,157,236,81,236,243,234,90,233,181,230,82,228,255,227, +129,227,87,225,39,225,95,229,81,235,236,239,25,242,5,242,226,241,148,243,83,245,201,244,197,242,16,241,48,240,156,239, +223,237,195,234,50,233,66,235,221,238,149,241,194,243,21,246,60,248,230,249,203,250,200,250,82,250,180,249,20,249,192,248, +227,247,162,245,198,243,226,243,23,244,146,243,230,244,80,248,20,251,39,253,11,0,233,2,253,4,43,6,165,4,162,0, +12,254,146,253,19,252,179,249,122,248,230,247,82,248,227,250,26,253,151,253,25,0,149,5,219,9,127,11,230,11,156,10, +74,8,12,7,178,5,176,2,17,0,245,254,65,254,97,254,167,255,46,1,40,4,85,9,228,13,210,16,15,20,163,22, +169,22,160,21,198,19,40,15,103,9,160,5,149,3,215,2,204,3,235,4,108,6,138,11,19,19,210,23,96,25,233,26, +55,28,121,27,180,24,36,20,210,14,236,11,11,13,227,15,7,18,201,19,57,22,222,24,29,26,58,25,79,23,69,22, +42,23,126,25,206,27,10,29,38,29,205,28,27,29,136,30,210,31,28,32,192,32,4,34,111,33,69,30,3,27,61,25, +251,24,164,26,145,29,62,32,40,35,21,39,107,42,226,43,10,44,228,42,93,40,232,37,83,36,16,35,87,34,91,34, +27,34,202,33,211,34,127,36,21,37,126,37,124,39,58,42,237,43,97,44,185,43,111,41,251,37,11,35,125,33,243,32, +25,33,36,34,100,36,59,39,171,40,168,39,0,38,165,37,64,38,236,38,199,38,69,36,244,31,150,28,99,26,228,23, +81,22,171,22,146,23,120,25,10,29,48,31,220,30,60,31,137,31,32,28,111,22,160,16,180,9,27,4,112,3,155,4, +87,4,251,4,190,6,72,7,38,8,20,10,49,10,107,9,101,10,122,10,136,7,243,3,160,0,165,253,225,252,56,252, +143,247,114,241,52,238,194,236,30,236,175,237,195,240,134,244,235,248,188,250,242,247,73,244,98,242,44,241,153,240,229,238, +8,232,119,222,163,216,50,214,54,212,169,212,138,216,75,221,8,226,106,229,243,227,43,223,15,221,139,222,192,223,205,222, +17,220,158,216,68,214,8,213,236,210,49,208,96,207,113,208,117,208,5,206,5,203,218,201,243,202,166,205,94,209,198,212, +175,214,228,215,241,216,55,216,85,213,108,210,33,208,62,205,207,201,114,198,62,195,207,193,34,196,11,201,126,205,114,208, +23,211,112,214,185,217,76,219,84,219,117,219,125,219,149,217,131,213,224,208,151,205,2,205,1,206,176,205,96,204,184,205, +191,210,3,217,207,222,117,227,91,230,141,232,178,234,245,233,202,228,158,223,209,222,176,224,174,225,44,225,12,224,193,223, +63,226,10,231,55,235,43,238,223,241,85,246,64,249,242,248,75,245,102,240,70,238,114,240,15,244,122,246,216,247,118,248, +17,248,11,247,209,245,41,245,41,247,118,252,44,2,58,5,129,5,173,4,104,4,85,5,139,6,25,7,99,7,173,7, +99,7,172,6,87,6,213,6,235,8,80,13,85,18,233,20,187,20,61,20,91,20,195,19,118,18,22,18,193,18,77,19, +130,19,76,19,119,18,143,18,42,21,182,24,6,27,96,28,87,29,202,29,13,30,148,29,161,27,90,26,154,27,208,28, +253,27,102,27,141,28,101,30,118,32,214,33,4,33,201,31,153,32,104,33,228,31,17,30,91,30,168,32,168,35,201,36, +87,34,27,31,150,30,192,31,38,32,244,31,15,32,118,32,133,32,206,30,81,27,80,25,98,27,196,31,12,35,176,35, +90,34,250,32,240,32,105,33,245,32,159,31,203,29,55,27,134,24,129,23,193,24,0,27,53,29,12,31,82,31,26,29, +141,26,194,26,77,29,77,31,16,31,40,28,62,23,231,18,124,17,200,18,160,21,216,24,110,26,124,25,145,23,232,21, +123,20,50,20,237,21,85,24,169,25,128,25,148,23,61,20,251,17,237,18,122,21,171,22,72,22,163,21,129,20,90,18, +22,16,121,14,194,13,229,14,192,17,239,19,252,19,102,18,215,15,33,14,62,15,28,17,51,16,255,12,27,9,174,4, +179,1,77,1,153,0,215,255,131,3,108,10,62,15,125,17,173,17,212,13,168,7,51,2,255,251,205,245,76,244,142,246, +54,248,96,249,249,249,146,248,255,248,94,254,23,4,165,6,73,7,12,5,105,255,232,249,46,245,189,239,85,236,39,236, +166,235,228,234,89,236,113,238,22,241,4,247,27,253,36,254,218,251,76,249,27,246,123,243,115,242,251,239,238,234,32,230, +141,226,0,224,234,223,34,226,32,229,90,233,84,238,196,240,85,239,56,236,177,233,69,232,164,230,110,227,6,224,222,222, +223,223,158,225,62,227,255,227,15,228,186,227,22,225,194,219,114,216,150,218,179,223,117,228,119,231,78,231,58,228,14,225, +131,223,180,223,143,225,83,227,146,226,128,223,65,219,114,214,226,211,138,214,101,220,70,225,6,228,4,229,162,228,109,228, +28,229,3,229,95,227,76,225,200,222,66,219,240,215,46,214,44,214,57,216,27,220,17,224,255,226,58,229,161,230,38,231, +248,231,43,233,37,233,230,231,9,231,167,230,144,229,239,226,167,222,5,219,192,219,99,224,197,228,39,232,192,236,182,241, +80,244,249,243,194,241,52,240,3,242,229,244,162,243,39,239,25,237,133,238,227,239,33,239,33,237,1,237,116,241,236,247, +254,250,11,250,158,248,143,248,185,249,142,251,4,253,72,254,222,0,63,4,192,5,219,3,73,255,134,250,63,248,92,248, +235,248,247,249,168,252,177,0,115,5,254,9,123,12,110,13,201,15,22,19,168,19,221,16,63,13,125,10,255,8,90,8, +163,7,156,7,200,9,251,12,64,15,91,17,73,20,248,22,230,24,229,26,193,28,144,29,32,29,97,27,154,24,91,22, +203,21,226,21,79,21,146,20,194,20,254,21,12,24,185,26,55,29,208,30,19,32,182,33,21,35,251,34,25,33,101,30, +118,28,50,28,235,28,76,29,229,28,188,28,24,30,249,31,165,31,103,29,15,29,223,31,239,34,253,35,228,34,115,32, +1,31,239,31,226,32,140,32,151,33,49,36,58,36,102,32,209,27,97,25,111,26,123,30,166,34,242,36,166,37,124,36, +131,33,124,31,110,32,193,34,206,35,5,34,159,29,30,25,240,22,158,23,255,26,111,31,137,33,140,32,211,30,23,29, +159,27,160,28,100,31,183,31,186,28,231,24,99,21,83,19,88,20,12,23,233,24,154,25,189,24,150,21,67,18,246,17, +46,21,225,25,192,28,64,27,127,22,209,17,242,14,73,14,202,15,202,17,251,17,112,15,159,10,115,5,181,2,103,3, +10,6,103,8,179,8,197,6,110,4,50,3,118,3,97,5,196,7,85,8,24,6,140,0,229,247,121,240,241,238,49,241, +178,242,20,243,249,242,132,242,181,243,237,246,26,250,195,253,246,1,29,2,136,252,102,245,96,239,100,235,205,234,116,234, +66,230,148,225,127,224,62,225,179,227,188,233,26,240,178,243,202,245,93,245,234,240,85,236,63,234,240,232,150,232,41,232, +6,227,232,218,238,214,110,215,82,217,150,221,13,227,239,229,118,231,70,233,141,232,185,229,186,228,26,229,192,228,6,228, +230,225,23,222,155,220,178,222,93,224,52,224,145,223,193,221,52,219,189,218,96,220,98,222,28,225,251,227,144,228,255,226, +170,225,143,225,171,226,191,228,117,230,130,230,218,228,18,226,142,223,241,222,196,223,51,224,53,224,241,224,58,226,85,227, +186,228,46,231,100,234,244,236,38,237,150,234,67,231,127,229,102,229,25,230,144,231,36,233,26,233,185,231,86,231,71,232, +228,232,96,233,72,235,51,238,122,240,165,241,249,241,159,241,31,241,234,240,161,240,34,240,108,240,2,242,185,243,128,244, +246,244,180,245,233,245,64,245,254,244,5,246,163,247,162,248,121,248,0,248,141,248,143,249,87,249,183,248,9,250,255,252, +25,255,239,254,204,252,54,250,30,249,183,249,95,250,72,250,54,250,70,251,203,253,36,0,87,0,141,255,23,0,34,1, +7,1,167,0,169,0,107,0,213,0,186,2,40,4,135,3,204,1,21,0,228,254,229,254,241,255,70,1,4,3,98,5, +169,7,234,8,127,8,231,6,72,6,6,8,207,10,147,12,111,12,255,10,110,10,23,12,215,13,17,13,190,10,56,9, +213,8,245,8,103,9,80,10,157,12,30,17,11,22,246,23,229,21,180,18,197,17,124,19,132,21,187,21,237,19,25,17, +23,14,52,11,74,9,44,10,117,14,31,20,144,24,158,26,197,26,12,27,196,28,25,30,34,29,73,27,241,25,18,24, +153,21,250,19,157,19,93,20,206,21,167,22,35,23,217,24,41,27,123,29,140,33,54,38,128,39,118,37,231,33,15,28, +218,21,224,19,161,21,239,23,157,26,163,28,60,28,242,27,223,29,5,32,121,34,58,38,227,39,205,37,228,34,87,31, +179,26,66,25,26,28,11,30,94,29,73,28,151,26,221,24,222,25,0,29,45,32,166,35,38,38,10,37,63,33,47,29, +19,26,165,25,181,27,157,28,11,27,126,25,33,25,173,25,60,27,118,28,253,27,49,27,1,27,223,25,107,23,103,21, +172,20,114,20,173,19,41,18,198,16,96,16,8,17,87,18,149,19,124,20,66,21,107,20,232,15,86,9,210,3,119,255, +96,252,80,252,34,254,58,255,31,0,92,1,168,1,250,1,230,3,108,6,228,8,112,10,175,7,205,0,188,250,133,246, +234,241,60,238,178,236,157,235,47,235,199,235,162,235,175,236,70,242,28,249,196,252,197,253,153,251,51,245,187,238,248,234, +2,231,105,226,127,223,67,221,71,219,146,219,225,220,112,221,151,223,190,227,179,230,17,232,205,232,192,231,65,229,24,227, +38,225,178,223,112,223,69,222,73,219,140,217,219,217,234,217,5,218,75,219,106,220,168,220,53,220,76,218,72,216,25,217, +133,219,2,220,152,218,40,217,28,216,161,215,16,216,66,217,37,219,16,221,119,221,61,220,203,218,209,217,174,217,211,218, +41,220,78,220,253,219,127,220,202,221,117,223,234,224,54,225,178,224,220,224,232,225,220,226,120,227,62,228,83,229,242,229, +186,228,219,225,96,224,113,226,190,229,29,231,27,231,169,231,198,232,12,234,191,235,38,237,149,237,7,238,223,238,21,239, +216,238,96,239,189,240,163,242,208,244,241,245,218,245,136,246,29,248,152,248,86,248,199,248,200,248,133,247,155,246,167,246, +243,246,224,247,125,249,1,251,255,252,208,255,150,1,166,1,86,2,242,4,164,7,218,7,246,4,27,1,252,254,176,254, +223,254,219,255,43,2,95,4,81,5,28,6,59,8,193,11,169,15,213,18,174,20,213,20,208,18,225,14,163,10,222,7, +244,6,157,6,193,5,105,5,41,7,89,10,95,13,3,16,81,18,198,19,129,20,209,20,171,20,169,20,1,21,99,20, +88,18,8,16,250,13,181,12,114,13,83,15,46,16,93,16,246,16,48,17,83,17,213,18,157,20,10,21,87,21,96,22, +148,22,86,21,151,19,161,17,191,15,170,14,237,13,205,12,26,12,170,12,221,13,27,15,213,16,46,19,66,21,98,22, +155,22,186,21,132,19,244,16,8,15,165,13,155,13,98,16,55,20,157,21,37,21,230,21,154,23,124,23,4,21,83,18, +229,17,94,20,62,23,43,23,37,20,63,17,108,16,165,16,79,16,26,16,19,18,9,22,58,25,197,25,101,24,22,23, +55,23,15,24,155,23,156,21,210,19,47,19,115,19,67,20,154,20,224,19,238,19,150,22,42,26,160,27,168,26,141,25, +214,25,81,26,44,25,216,22,44,21,25,21,122,22,0,24,151,23,129,21,76,20,89,20,241,19,53,19,31,19,48,19, +13,19,215,18,72,18,39,18,119,19,214,20,242,20,168,20,164,19,86,16,33,12,198,9,121,9,78,10,4,12,188,13, +14,14,94,12,97,9,240,6,110,6,88,7,106,8,77,8,228,5,137,2,251,0,239,0,189,0,34,1,86,2,195,2, +186,2,31,3,216,2,252,1,85,1,244,254,110,250,236,246,250,244,57,243,102,243,194,245,239,246,253,246,107,248,36,250, +43,251,150,252,217,252,88,250,255,246,70,243,75,238,109,234,185,232,107,230,188,227,253,226,65,227,138,228,194,232,150,237, +24,240,241,241,9,243,91,240,71,235,228,230,195,226,100,223,141,222,120,222,190,221,73,222,174,223,219,223,32,224,147,225, +191,226,42,228,154,230,87,231,248,228,169,225,78,222,202,218,182,216,95,216,69,216,190,216,78,218,45,219,252,218,204,219, +248,221,12,224,136,225,210,225,177,223,24,220,231,217,40,218,87,219,151,219,25,218,221,215,84,215,67,217,170,219,119,221, +241,223,35,227,34,229,2,229,46,227,143,224,53,223,62,224,157,225,108,225,147,224,79,224,36,225,54,227,201,228,116,228, +150,228,210,230,56,232,0,231,169,229,172,230,240,234,67,241,164,244,42,242,189,238,30,239,242,240,85,241,56,241,158,241, +216,242,158,244,100,244,36,241,148,238,168,239,90,243,40,248,124,252,124,254,42,255,157,0,182,1,3,1,207,255,97,255, +188,255,125,0,89,0,216,254,197,253,1,254,128,254,33,255,78,0,39,2,208,5,61,11,147,15,204,17,117,19,244,19, +25,18,179,15,30,14,148,12,85,11,0,11,13,11,174,11,213,12,31,13,157,13,20,17,68,22,183,25,250,26,22,27, +90,26,94,25,2,24,184,21,56,20,11,21,39,22,173,21,255,20,183,21,226,23,148,26,206,27,223,26,232,25,21,26, +52,26,88,26,119,27,165,28,1,29,240,28,232,27,141,25,214,23,85,24,248,25,251,26,161,26,139,25,121,25,242,26, +80,28,192,28,36,29,136,29,27,29,202,27,221,25,31,24,62,24,78,26,223,27,66,27,71,25,173,23,237,23,8,26, +11,28,244,28,243,29,235,30,248,29,111,27,164,25,131,25,93,26,134,26,245,23,140,19,10,17,109,17,148,18,250,19, +218,21,210,22,210,22,63,23,167,23,215,23,129,25,47,28,150,29,95,29,200,26,54,20,241,12,120,10,42,12,253,13, +53,15,147,16,68,18,166,20,89,22,158,21,252,20,112,23,181,26,92,27,18,25,175,20,13,16,95,13,117,11,89,8, +27,6,162,6,213,7,197,7,165,6,71,5,201,5,60,9,143,12,0,13,186,11,54,10,38,9,190,9,174,10,200,8, +127,4,67,0,8,252,173,247,230,244,209,244,159,247,76,252,132,255,115,255,102,254,111,254,113,255,65,1,174,2,198,1, +32,255,10,252,7,248,42,244,244,242,225,243,229,244,93,245,104,244,239,241,137,240,123,241,58,243,42,245,231,246,158,246, +111,244,61,242,26,240,69,238,99,238,183,239,23,240,160,239,176,238,160,236,125,234,154,233,53,233,218,232,219,232,69,232, +179,230,93,229,146,228,63,228,115,229,227,231,178,233,162,234,126,235,32,236,91,236,244,235,255,233,204,230,217,227,48,225, +114,222,232,220,120,221,74,223,197,225,192,228,244,230,21,231,240,229,165,229,235,230,13,232,69,231,39,229,110,227,90,226, +204,224,123,222,248,220,42,222,177,225,230,228,219,229,5,229,232,227,68,227,143,226,0,225,62,223,195,222,210,223,162,225, +159,227,81,229,161,230,8,232,59,233,98,233,182,232,194,231,139,230,155,229,188,228,22,226,58,222,22,221,21,224,158,228, +177,232,254,235,93,238,78,240,55,242,39,243,197,242,53,242,215,241,173,240,225,237,46,234,36,232,114,233,90,236,174,238, +136,240,212,241,60,242,116,243,120,246,149,249,227,251,66,253,40,252,6,249,19,247,246,246,112,247,88,249,121,252,246,253, +50,253,235,251,226,250,62,251,34,254,70,1,33,2,9,2,197,2,197,3,106,4,206,4,144,5,4,8,146,11,4,13, +94,11,82,9,208,8,68,9,132,9,40,9,46,9,146,10,24,12,112,12,252,12,232,14,203,16,132,17,201,17,54,18, +231,18,21,20,144,21,172,22,237,22,56,22,230,20,184,19,134,19,178,20,117,22,133,23,195,23,60,23,236,20,165,17, +217,16,192,19,10,24,193,27,249,29,8,30,26,29,152,28,229,27,109,27,223,28,83,30,108,28,93,24,30,21,237,18, +4,18,139,19,195,22,47,26,138,29,254,31,122,32,31,32,183,32,202,33,120,33,19,31,234,27,78,25,237,22,204,20, +240,20,53,24,70,28,140,30,70,30,45,28,144,26,126,27,246,29,207,31,200,32,242,32,93,31,252,27,64,24,240,21, +97,22,14,25,81,27,50,27,81,25,137,23,22,23,18,24,233,25,239,27,251,28,204,27,207,24,223,21,32,20,221,19, +228,20,233,21,227,21,58,21,20,20,89,18,129,17,140,18,251,19,101,20,199,19,35,18,254,15,85,14,41,13,168,12, +69,13,97,13,136,11,73,9,117,7,229,4,217,2,154,3,70,6,11,9,207,10,225,9,191,6,60,4,21,2,189,254, +57,252,166,251,123,250,62,248,110,246,198,244,112,244,167,247,16,252,106,254,158,255,174,255,225,252,172,249,0,249,175,248, +210,246,208,244,205,242,77,240,91,238,131,236,44,234,41,234,246,237,254,241,78,243,238,242,135,242,143,242,115,242,24,241, +231,238,151,237,48,237,110,236,195,234,17,232,37,229,205,227,10,228,75,228,218,228,149,230,106,232,184,233,3,235,116,235, +110,234,185,233,79,234,172,234,177,233,198,231,5,230,219,229,220,230,55,230,87,227,65,225,92,225,30,226,44,227,95,229, +18,232,31,234,38,235,183,234,28,233,242,231,210,231,234,231,32,232,108,232,165,231,133,229,78,227,218,225,6,226,194,228, +139,232,215,234,231,235,162,236,247,235,88,234,53,234,97,235,254,235,0,236,52,235,248,232,32,231,64,231,1,232,91,233, +213,236,149,240,187,241,1,241,187,239,33,238,192,237,33,239,7,240,53,240,80,241,226,241,61,240,3,239,147,240,53,243, +222,244,140,245,179,245,224,245,103,246,174,246,108,246,143,246,185,247,246,248,170,248,251,246,57,246,106,247,177,248,30,249, +237,249,40,251,190,251,217,251,151,251,198,250,169,250,212,251,140,252,71,252,104,252,67,253,164,254,173,0,7,2,156,1, +225,0,134,0,93,255,229,253,59,253,179,252,186,252,198,254,21,1,39,1,174,0,58,2,0,5,236,6,234,6,59,5, +230,3,22,4,202,3,220,1,204,0,199,1,103,2,175,1,108,1,81,2,19,4,81,7,90,11,153,13,124,13,118,12, +138,10,216,7,147,6,70,7,186,7,136,7,29,8,1,9,46,9,31,9,116,9,53,11,33,15,53,18,13,17,29,14, +219,12,199,11,168,9,59,8,137,7,144,7,138,10,16,15,171,16,42,16,56,17,56,19,74,20,95,20,238,18,213,16, +198,16,181,17,129,16,95,14,202,13,40,14,238,14,47,16,185,16,10,17,86,19,156,22,21,24,0,24,67,24,159,25, +58,27,213,26,206,23,230,20,150,19,41,18,114,16,235,15,85,16,104,17,168,19,223,21,51,23,50,25,24,28,119,30, +86,32,94,33,5,32,89,29,84,27,6,25,250,21,249,19,205,18,31,17,32,16,178,16,189,17,151,19,26,23,223,26, +203,29,75,32,174,33,51,33,216,31,200,29,241,25,44,21,107,17,85,15,246,14,188,15,20,16,137,16,187,19,194,24, +115,27,7,27,47,26,233,25,139,25,144,24,235,21,26,18,252,15,76,15,54,12,59,7,223,4,6,6,5,9,75,13, +112,16,19,16,4,15,56,15,240,12,90,7,2,3,227,0,191,254,250,252,162,251,203,249,38,250,51,254,155,1,228,1, +182,1,19,2,241,1,125,1,12,0,35,253,221,250,123,249,163,246,29,243,26,241,230,239,53,239,229,239,204,240,169,241, +6,244,251,245,213,244,215,242,61,242,90,241,142,239,236,237,29,236,108,234,172,233,87,232,154,229,115,227,216,226,126,227, +181,229,15,232,117,232,49,232,239,232,59,233,188,231,24,229,197,226,205,226,59,229,10,231,81,231,246,231,73,232,163,230, +23,228,17,225,72,221,89,219,103,220,128,221,250,221,128,223,208,224,83,225,102,227,56,230,211,230,99,230,25,231,60,232, +181,232,6,231,204,225,168,220,114,220,217,222,94,223,123,223,3,226,39,230,92,234,36,237,208,236,250,234,69,235,85,237, +159,237,9,235,202,231,98,230,26,231,220,231,59,231,201,230,145,232,21,236,44,239,83,240,196,239,27,239,153,239,183,240, +230,240,209,239,49,239,131,240,190,242,54,244,27,245,27,246,7,247,20,248,79,249,144,249,224,248,28,249,145,250,169,251, +94,251,99,249,143,246,141,245,122,247,17,250,204,251,101,253,235,254,11,0,97,1,116,2,12,2,231,0,9,0,167,254, +180,252,203,251,153,252,191,254,36,2,218,5,151,7,55,6,136,3,138,2,242,3,149,5,208,5,182,5,203,6,161,8, +160,9,81,9,61,9,142,10,119,11,201,9,210,6,10,5,154,4,255,4,8,6,191,6,53,7,220,8,243,10,185,11, +122,12,68,14,213,14,136,13,164,12,42,12,154,10,241,8,87,8,88,8,55,9,194,10,35,11,193,10,255,11,56,14, +51,15,59,15,252,14,244,13,180,12,130,11,24,9,81,6,221,5,65,7,106,8,235,9,139,12,26,15,244,16,232,17, +44,17,192,15,65,15,28,14,7,11,229,8,146,9,230,10,1,12,36,14,117,16,188,17,42,19,43,21,109,22,2,23, +73,23,241,21,245,18,114,16,221,14,20,13,181,11,101,12,26,15,83,18,147,20,72,21,96,21,40,22,57,23,71,23, +172,22,198,22,255,22,91,21,16,18,192,15,248,15,243,17,80,20,62,22,168,23,251,24,7,26,47,26,213,25,173,25, +99,25,227,24,188,24,122,24,109,23,60,22,160,21,228,21,95,23,191,24,9,24,184,22,128,23,239,24,60,24,59,22, +32,21,160,21,98,23,226,24,192,24,4,24,168,23,75,22,103,19,184,16,146,15,57,16,219,17,44,18,94,16,79,14, +243,12,237,11,204,11,164,12,231,13,57,16,191,18,122,18,65,15,232,10,95,5,237,255,152,253,156,253,21,254,55,0, +33,3,231,3,15,4,84,5,110,5,58,5,139,7,208,8,129,5,23,1,205,253,58,250,1,248,57,248,254,247,32,247, +56,247,88,246,92,244,129,244,60,246,106,247,233,248,134,249,207,246,72,243,74,241,246,238,177,236,71,236,145,235,95,233, +146,231,141,229,192,226,238,225,14,227,162,227,201,228,27,231,232,231,140,231,213,231,206,230,88,228,242,227,48,229,24,229, +43,228,17,227,107,224,119,220,129,216,172,213,48,214,231,217,23,221,109,222,84,223,204,223,168,224,84,227,22,229,141,227, +151,225,105,224,90,221,37,217,199,214,76,214,134,215,88,218,118,219,87,217,161,215,237,216,199,220,199,226,149,232,158,234, +190,233,106,232,31,229,48,223,160,218,116,218,81,221,10,224,232,223,114,221,247,220,169,224,109,229,22,232,246,232,146,233, +198,234,41,236,30,236,139,234,16,234,73,236,46,239,186,239,82,237,71,234,170,233,72,236,3,240,83,242,149,242,17,242, +98,242,216,243,166,245,186,247,9,251,67,255,209,1,95,0,152,251,196,246,0,245,207,246,225,249,173,251,75,252,121,253, +61,255,14,0,209,255,30,0,59,2,242,5,3,9,168,8,105,5,219,2,156,2,120,3,171,4,252,5,205,6,95,7, +95,8,159,9,44,11,16,13,83,14,254,14,12,16,68,16,105,14,146,12,66,12,62,12,153,12,24,14,66,15,233,15, +248,17,94,20,213,20,146,20,201,20,101,20,232,19,63,20,20,20,130,19,18,20,81,20,228,18,211,17,166,17,230,16, +29,17,217,19,136,22,83,23,103,23,26,23,135,22,209,22,234,22,5,21,246,18,8,19,40,20,240,20,34,21,30,20, +120,18,37,18,243,18,43,19,224,18,9,19,182,19,140,20,202,20,255,19,177,19,116,21,27,24,93,25,78,24,125,21, +203,18,181,17,52,17,13,16,126,15,115,16,192,17,234,18,74,20,68,21,250,21,163,23,106,25,28,25,192,22,10,20, +88,18,145,18,251,19,67,20,217,18,114,17,200,16,122,16,222,16,94,18,175,20,34,23,79,24,100,23,213,21,26,21, +191,20,151,20,249,20,202,20,97,19,62,18,10,18,219,17,213,17,85,18,117,18,59,18,167,18,41,19,219,18,158,18, +69,19,80,20,240,20,81,20,90,18,142,16,239,15,107,15,73,14,65,13,169,12,48,12,210,11,191,11,107,12,244,13, +210,14,118,13,240,10,100,9,26,9,216,8,184,7,71,6,63,6,34,8,220,9,80,9,142,6,23,3,151,0,126,255, +132,254,39,253,209,252,203,253,131,254,106,254,40,254,93,254,248,255,116,2,179,2,110,255,104,251,172,248,178,246,84,245, +208,244,207,244,182,245,103,247,156,247,79,245,255,242,43,243,171,245,98,248,152,248,146,245,191,241,111,239,108,238,213,237, +30,237,218,235,183,234,144,234,117,234,155,233,7,233,85,233,32,234,146,235,254,236,87,236,183,233,160,231,209,230,252,229, +197,228,164,227,185,226,68,226,254,225,189,224,43,223,30,224,228,227,248,230,213,230,42,228,133,224,161,221,8,221,216,221, +26,222,129,222,53,224,33,225,112,223,238,220,218,219,185,220,78,223,165,225,34,225,186,222,134,221,224,221,196,222,154,224, +68,227,71,229,226,229,17,229,21,227,250,224,86,223,223,221,38,221,214,221,101,223,178,225,224,228,190,231,203,233,204,235, +140,236,137,234,204,231,170,230,107,230,37,230,205,229,14,229,44,229,237,231,92,235,156,236,42,237,166,239,69,243,194,245, +6,246,120,244,221,242,136,242,205,242,210,242,36,243,130,244,99,246,225,246,14,245,127,243,39,245,206,248,248,251,101,254, +158,255,11,255,162,254,148,255,10,0,240,255,46,1,199,2,215,2,8,2,222,0,89,255,76,255,160,1,175,4,139,7, +210,9,49,10,71,9,107,9,147,10,122,11,94,12,62,13,139,13,178,13,182,13,254,12,86,12,147,12,35,13,206,13, +95,14,29,14,69,14,135,16,249,18,101,19,133,19,30,21,239,22,113,23,87,22,118,20,237,19,26,21,55,21,59,19, +187,17,98,18,105,20,165,22,251,23,38,24,108,24,75,25,166,25,248,24,157,23,238,21,178,20,73,20,58,20,255,20, +57,23,112,25,13,26,71,25,113,23,97,21,22,21,95,22,193,22,49,22,58,22,49,22,105,21,95,21,147,22,196,23, +102,24,67,24,233,22,240,20,62,19,239,17,192,17,173,19,154,22,33,24,97,23,85,21,105,19,106,18,72,18,170,18, +17,19,193,18,169,17,176,16,134,16,119,17,157,19,191,21,17,22,170,20,0,19,207,17,76,17,87,17,251,16,232,15, +226,14,220,13,175,12,212,12,61,15,171,18,172,21,52,23,73,22,224,19,29,18,232,16,27,15,125,13,215,12,32,12, +144,10,136,8,255,6,174,7,8,11,79,14,48,15,9,15,210,15,33,17,133,17,69,16,22,14,122,12,53,11,147,8, +215,4,196,1,179,255,225,254,54,0,148,2,73,4,61,6,239,8,97,10,47,10,227,9,15,9,192,6,215,3,158,0, +224,252,75,250,11,250,205,250,149,251,49,252,228,251,79,251,22,252,183,253,0,255,20,0,14,0,6,254,97,252,59,253, +192,254,250,254,237,253,81,251,95,247,96,243,214,239,225,237,162,239,174,243,73,246,146,247,1,249,244,248,42,247,96,246, +135,246,94,245,112,243,253,241,47,240,180,237,91,235,135,233,8,233,152,234,248,236,152,238,100,239,181,239,217,239,195,239, +80,238,119,235,170,233,47,234,106,235,4,236,253,235,81,235,66,234,74,233,109,232,222,231,159,231,237,230,90,230,110,231, +50,233,143,233,191,232,116,231,129,229,64,228,49,229,25,231,131,232,135,233,164,233,109,232,81,231,111,231,114,232,192,233, +34,234,147,232,122,230,98,229,103,228,45,227,112,227,166,229,105,232,180,234,174,235,202,234,62,233,151,232,185,232,5,233, +82,233,57,233,86,232,206,230,29,229,129,228,97,230,4,234,188,236,91,237,111,237,70,238,209,238,234,237,205,236,81,237, +79,239,100,241,102,242,198,241,157,240,212,240,12,242,150,242,216,242,135,243,108,243,128,242,144,242,124,243,21,244,13,245, +214,246,40,248,121,248,43,248,131,247,137,247,216,248,254,249,61,250,208,250,233,251,156,252,222,252,132,252,123,251,104,251, +26,253,178,254,35,255,83,255,129,255,221,255,101,1,155,3,48,5,190,6,190,8,133,9,82,8,141,6,255,4,122,3, +156,2,21,3,152,4,180,6,66,9,152,11,182,12,178,12,196,12,155,13,10,15,238,16,109,18,163,17,183,14,116,12, +13,12,24,12,36,12,1,13,164,14,140,16,236,17,149,17,111,16,8,17,234,18,109,19,215,18,34,19,240,19,232,19, +213,18,28,17,38,16,91,17,9,19,158,18,93,17,243,17,226,19,51,21,127,21,110,21,247,21,136,23,175,24,240,23, +49,22,167,20,21,19,27,18,38,19,83,21,127,22,134,22,62,22,184,21,22,21,124,20,154,19,45,19,117,20,85,22, +199,22,53,22,188,21,184,20,154,18,16,16,64,14,246,14,202,18,112,22,94,22,205,19,195,17,244,16,86,17,201,18, +207,19,173,19,133,19,123,19,134,18,216,16,86,15,170,14,122,15,223,16,191,16,71,15,154,14,150,15,174,17,78,19, +123,18,78,16,57,16,192,17,75,17,242,14,177,13,109,14,242,15,8,16,18,13,226,9,235,10,171,14,37,16,209,14, +103,13,28,13,161,13,166,13,38,12,10,11,63,12,160,13,194,12,115,10,160,7,171,4,49,3,139,3,223,3,147,3, +62,3,219,2,7,3,111,4,17,6,80,7,107,8,202,7,4,4,42,255,30,252,210,251,219,253,230,255,2,255,252,251, +57,250,174,250,13,252,99,253,64,254,253,254,14,0,42,0,95,254,135,252,250,251,123,251,104,250,56,249,147,247,213,245, +82,245,157,245,111,245,75,245,211,245,71,246,31,246,101,245,42,244,63,243,149,243,189,244,122,245,233,244,23,243,95,241, +198,240,51,240,148,238,23,237,31,237,41,238,206,238,56,238,246,236,223,236,179,238,234,240,7,242,39,242,203,241,23,241, +231,239,225,237,118,235,202,233,208,232,183,231,11,231,174,231,253,232,64,234,151,235,195,236,98,237,177,237,184,237,97,237, +85,237,93,237,175,235,40,232,132,229,145,229,21,231,64,232,148,232,158,232,129,233,179,235,234,237,226,238,53,239,154,239, +50,239,53,237,63,234,120,231,36,230,247,230,198,232,254,233,22,235,228,236,76,238,0,238,135,236,97,235,199,235,132,237, +174,238,33,238,255,236,77,236,5,236,158,236,15,238,237,238,57,239,95,240,234,241,145,242,180,242,105,242,213,240,18,239, +6,239,24,240,198,240,3,241,76,241,24,242,198,243,124,245,4,246,176,245,70,245,225,244,227,244,93,245,52,245,12,244, +15,243,254,242,198,243,113,245,181,247,245,249,16,252,195,253,110,254,75,254,17,254,170,253,228,252,88,252,108,252,174,252, +159,252,122,252,229,252,1,254,95,255,14,1,99,3,124,5,212,5,138,4,135,3,82,4,94,6,102,7,0,6,159,3, +185,2,177,3,251,4,114,5,147,5,236,6,211,9,40,12,15,12,214,10,229,10,126,12,64,14,0,15,140,14,234,13, +57,14,225,14,133,14,91,13,218,12,188,13,73,15,10,16,166,15,221,15,253,17,58,20,45,20,129,18,125,17,164,17, +40,18,187,18,49,19,49,19,56,19,254,19,205,20,165,20,90,20,239,20,77,21,120,20,243,19,55,21,40,23,43,24, +53,24,158,23,108,22,65,21,26,21,22,22,129,23,147,24,225,24,134,24,213,23,243,22,34,22,223,21,36,22,124,22, +243,22,122,23,17,23,128,21,174,20,226,21,174,23,149,24,19,25,117,25,204,24,31,23,227,21,0,22,13,23,219,23, +76,23,197,21,205,20,166,20,68,20,186,19,103,20,177,22,247,24,195,24,121,21,229,17,68,17,5,19,76,20,57,20, +168,19,158,18,212,16,52,15,228,14,243,15,132,17,126,18,52,18,251,16,253,15,204,15,130,15,29,14,10,12,53,10, +233,8,115,8,243,8,92,9,235,8,147,8,207,8,64,8,20,6,160,3,241,2,169,4,214,6,168,6,249,3,167,0, +21,253,27,249,101,246,56,246,202,247,33,250,241,251,120,251,166,249,124,249,53,251,205,252,156,253,97,253,102,251,65,248, +209,244,77,241,153,239,163,241,8,245,242,245,72,244,7,242,172,240,140,241,51,244,227,245,178,245,32,245,241,243,189,240, +192,236,127,234,139,234,205,235,222,236,145,236,238,234,84,233,249,232,216,233,214,234,25,235,66,235,24,236,144,236,115,235, +196,233,23,233,87,233,159,233,110,233,183,232,114,232,234,233,100,236,121,237,118,236,231,234,169,233,11,232,243,229,228,228, +74,230,160,233,152,236,9,237,0,235,156,232,175,231,42,232,39,233,35,234,162,234,37,234,59,233,46,233,79,234,218,235, +15,237,151,237,162,237,219,237,78,238,100,238,146,238,145,239,233,239,2,238,144,235,243,234,172,235,208,236,15,239,5,242, +234,243,80,244,190,243,138,242,223,241,163,242,111,243,213,242,79,241,143,239,83,238,211,238,97,240,58,241,96,242,69,245, +240,247,220,248,221,249,161,251,161,252,209,252,165,252,42,251,166,248,209,246,225,245,122,245,59,246,254,247,156,249,97,250, +205,249,102,248,135,248,244,250,95,253,96,254,134,254,10,254,206,253,66,255,215,0,219,255,177,253,86,253,51,254,12,254, +214,252,57,252,138,253,28,0,39,1,64,255,222,252,55,253,91,0,219,3,221,5,197,6,171,7,190,7,126,5,11,2, +239,255,201,255,118,0,126,0,233,254,244,252,25,253,18,255,158,0,141,1,191,2,3,4,205,5,124,8,215,9,122,8, +24,7,242,7,98,9,39,9,244,6,4,4,212,2,168,4,250,6,228,6,118,5,112,5,50,7,242,8,108,9,183,9, +224,11,34,15,51,16,63,14,201,11,170,10,205,10,78,11,180,10,191,8,167,7,152,8,188,9,26,10,51,11,166,13, +42,16,135,17,52,17,187,15,60,15,80,17,162,20,26,22,37,20,91,16,188,13,50,13,62,13,42,13,5,14,63,16, +190,18,24,20,193,19,201,18,213,18,213,19,77,20,189,19,217,18,105,18,200,18,104,19,118,19,134,19,128,20,156,21, +238,21,220,21,181,21,118,21,123,21,154,21,136,21,1,22,222,22,163,22,155,21,66,21,90,21,152,21,223,22,103,24, +93,24,6,23,113,21,241,19,90,19,176,19,104,19,193,18,100,19,111,20,115,20,173,20,0,22,252,22,188,22,171,21, +117,20,228,19,153,19,39,18,59,16,203,15,56,16,181,15,161,14,54,14,211,14,117,16,12,18,180,17,84,15,186,12, +254,10,157,9,226,7,73,6,223,5,91,6,196,6,52,7,21,7,132,4,75,0,181,253,141,253,155,254,166,0,140,2, +104,2,239,0,131,255,195,253,111,252,233,252,180,253,17,253,165,251,223,249,8,248,129,247,179,247,166,246,72,245,215,244, +172,243,111,241,64,240,189,240,155,242,210,245,52,248,112,247,135,244,31,241,229,237,90,236,160,236,64,236,130,234,211,232, +73,231,224,229,176,229,156,230,25,232,158,234,74,237,46,238,52,237,85,235,160,233,161,233,218,234,192,234,47,233,169,231, +240,229,86,228,143,228,237,229,148,230,102,230,246,228,7,226,93,224,48,226,11,230,50,234,113,237,153,237,165,234,155,231, +48,230,57,230,155,231,80,233,236,233,53,233,215,230,13,227,178,224,227,225,27,229,81,232,132,234,11,235,59,235,29,237, +146,239,126,240,76,240,196,239,162,238,29,237,116,235,16,234,88,234,43,236,106,237,139,237,1,237,125,235,145,234,136,236, +232,239,144,242,140,245,255,248,188,250,79,250,171,248,164,246,29,246,117,247,228,247,179,246,63,246,152,246,86,246,38,246, +147,246,66,247,27,249,7,252,204,253,40,254,190,254,149,255,35,0,138,0,241,255,205,253,233,251,255,251,197,253,218,255, +150,0,145,255,149,254,32,255,165,0,117,2,66,4,43,5,209,4,3,4,82,3,217,2,246,2,217,3,16,5,193,5, +150,5,166,5,24,7,84,9,41,11,251,11,17,11,123,8,205,5,213,3,85,2,42,2,210,3,199,5,219,6,18,7, +172,6,72,7,66,10,76,13,217,13,43,13,162,12,184,11,1,11,211,10,86,9,112,6,134,4,61,4,233,4,211,6, +146,9,229,11,138,13,54,14,26,13,176,10,122,8,183,7,240,8,18,11,138,12,142,13,61,14,35,13,180,10,186,9, +40,11,105,13,105,14,233,12,71,10,244,8,84,8,42,7,82,7,205,9,205,12,131,15,63,17,112,16,37,15,150,16, +209,18,59,19,2,19,29,18,134,15,34,13,83,11,81,8,102,6,196,7,56,9,169,9,20,12,215,15,18,19,4,23, +65,26,218,25,67,24,213,23,43,22,75,19,113,17,31,15,247,11,50,11,125,12,32,13,230,13,184,15,142,17,193,19, +238,21,2,22,51,21,66,22,109,24,18,26,129,26,75,24,41,20,36,17,39,15,218,12,221,11,201,12,246,13,141,15, +106,17,132,17,195,16,209,17,56,20,197,22,169,24,104,23,119,19,91,17,54,17,100,15,7,13,234,12,128,13,249,12, +122,11,254,8,74,7,170,8,244,10,35,11,97,10,67,10,161,10,196,11,206,12,42,12,38,11,126,10,133,7,124,2, +109,255,238,254,36,255,135,0,190,2,45,3,125,1,145,255,147,254,114,255,26,2,2,4,66,3,168,0,111,253,93,250, +99,248,172,247,193,247,82,248,144,248,172,247,45,246,22,245,233,244,7,246,254,247,53,249,66,248,218,244,153,240,172,238, +6,240,139,241,206,240,231,238,21,237,47,235,158,233,86,233,199,234,206,237,245,240,3,242,93,240,39,237,217,233,196,231, +6,231,123,230,21,230,138,230,183,230,119,229,69,228,201,228,211,230,174,233,227,235,60,235,213,231,116,228,25,227,205,227, +154,229,201,230,12,230,10,228,128,226,102,226,67,227,24,228,8,229,186,230,23,232,73,231,235,228,151,227,7,229,151,232, +143,235,224,235,115,234,174,232,96,230,107,228,133,228,144,229,243,229,198,230,76,232,18,233,5,234,79,236,234,237,219,237, +212,237,178,237,166,236,94,236,97,237,204,237,132,237,139,237,134,237,234,237,83,239,227,239,250,238,92,239,232,241,139,244, +147,246,41,248,164,248,143,248,183,248,245,247,25,246,29,245,111,245,208,245,57,246,231,246,90,247,222,247,237,248,236,249, +197,250,58,252,0,254,8,255,240,254,203,253,23,252,3,251,81,251,155,252,47,254,186,255,11,1,211,1,243,1,239,1, +58,2,91,2,0,2,212,1,2,2,21,2,189,2,180,4,212,6,4,8,192,8,60,9,48,9,55,9,100,9,173,8, +82,7,193,6,236,6,144,6,114,5,166,4,126,5,250,7,44,10,163,10,97,10,215,10,236,11,242,12,119,13,45,13, +99,12,159,11,167,10,29,9,145,7,29,7,79,8,84,10,147,11,177,11,134,11,21,11,22,10,184,9,36,11,201,13, +135,16,36,18,48,17,22,14,165,11,211,11,235,13,36,16,52,17,246,16,30,16,7,15,195,13,216,12,108,12,66,12, +58,13,11,16,23,19,120,20,110,20,34,20,75,20,45,21,35,22,69,22,159,21,64,20,254,17,210,15,188,14,57,14, +8,14,197,14,8,16,29,17,137,18,142,20,156,22,153,24,84,26,38,27,25,27,78,26,88,24,189,21,156,19,45,18, +243,17,145,19,113,21,163,21,231,20,133,20,100,20,164,20,97,21,45,22,224,23,30,27,127,29,193,28,50,26,241,23, +165,22,59,22,181,21,14,20,17,18,183,16,216,15,6,16,206,17,166,19,126,20,9,21,6,21,21,20,250,19,101,21, +28,22,170,20,129,17,95,13,15,10,158,9,30,11,54,12,171,12,250,12,110,12,163,10,64,8,38,6,102,5,115,6, +248,7,99,8,225,7,64,7,56,6,84,4,123,2,73,2,252,3,216,5,212,5,196,3,190,1,156,1,113,2,16,2, +21,0,247,252,119,248,186,243,142,241,41,243,182,247,128,253,51,1,67,0,190,252,222,249,222,247,2,247,68,248,89,249, +26,247,47,242,111,236,250,230,173,228,147,231,41,237,188,241,157,243,49,242,9,239,159,237,196,238,68,240,210,240,61,240, +46,238,23,235,251,231,197,229,150,229,33,231,246,231,215,230,215,228,10,227,34,226,130,226,99,227,156,228,53,231,16,234, +88,234,173,231,29,228,249,225,234,226,188,229,25,231,96,230,33,229,124,227,250,225,232,225,177,225,210,223,162,222,74,223, +251,223,45,225,46,228,95,231,194,233,157,235,13,235,233,231,69,230,133,231,202,232,158,232,239,230,195,227,50,225,88,224, +45,223,111,222,200,225,63,232,81,237,43,239,94,238,187,236,12,237,229,238,38,239,63,238,129,238,239,238,90,238,217,237, +84,237,45,236,208,235,233,236,51,238,108,239,38,241,41,243,51,245,210,246,108,247,198,247,212,248,252,249,196,250,42,251, +78,250,102,248,75,247,24,247,190,246,18,247,202,248,195,250,82,252,103,253,88,253,194,252,138,253,225,255,137,2,143,4, +242,4,89,3,87,1,175,0,170,1,169,3,170,5,210,6,215,6,62,5,101,2,2,1,2,3,121,6,234,8,80,10, +45,11,126,11,155,11,129,11,48,11,218,11,186,13,114,14,156,12,153,10,65,11,5,14,76,16,78,17,7,18,16,18, +43,16,138,13,168,12,7,14,159,16,229,18,222,18,175,16,58,15,222,15,136,17,201,19,15,22,159,22,134,21,53,20, +146,18,217,16,167,16,153,17,6,18,28,18,238,17,191,16,16,16,168,17,18,20,170,21,193,22,63,23,49,23,184,23, +67,24,113,23,105,22,18,22,182,20,22,18,135,16,2,17,221,18,90,21,224,22,136,22,4,22,126,22,186,22,117,22, +4,23,13,24,212,23,1,22,157,19,186,17,250,16,102,17,185,18,162,20,40,22,244,21,42,20,171,18,241,18,141,20, +235,21,246,21,183,20,174,18,72,16,27,14,44,13,145,14,239,17,142,20,208,19,242,16,148,15,135,16,119,17,21,17, +236,15,61,14,51,12,189,10,111,10,76,11,103,13,138,15,24,15,142,11,132,7,61,5,43,5,251,6,254,8,204,8, +132,6,118,4,200,3,121,4,151,6,4,9,221,9,96,8,47,4,110,253,46,247,120,245,119,248,209,252,43,255,49,254, +153,251,73,250,161,250,230,251,11,255,109,3,105,5,116,3,10,255,111,249,217,244,22,244,232,245,217,246,81,246,146,244, +105,241,118,239,96,241,108,245,120,249,94,253,54,255,45,253,88,249,24,246,182,243,216,242,253,242,97,241,139,237,200,233, +98,231,79,231,131,234,252,238,237,241,50,243,202,242,129,240,194,238,110,239,234,240,10,242,209,242,158,241,14,238,190,234, +202,232,153,231,40,232,96,234,69,235,163,233,95,231,70,230,80,231,55,234,205,236,6,238,50,239,61,240,140,239,129,237, +178,235,172,234,103,234,241,233,170,231,62,228,123,226,168,227,249,230,228,234,140,237,186,238,25,240,120,241,224,240,220,238, +174,237,139,237,158,237,145,237,130,236,80,234,7,233,213,233,65,235,234,235,10,236,110,236,223,237,24,240,93,241,253,240, +126,240,250,240,198,241,4,242,116,241,131,240,66,240,241,240,71,241,148,240,248,239,180,240,201,242,18,245,11,246,119,245, +213,244,72,245,110,246,115,247,187,247,29,247,63,246,149,245,234,244,234,244,144,246,189,248,167,249,97,249,78,248,83,246, +218,244,205,245,4,249,33,253,98,0,144,0,5,254,16,252,218,251,225,251,82,252,214,253,210,254,129,254,248,253,14,253, +234,251,227,252,82,0,109,3,200,4,199,4,176,3,222,2,205,3,44,5,47,5,114,4,232,3,171,3,197,3,132,3, +187,2,171,3,73,7,91,10,101,10,44,9,15,9,84,10,16,12,244,12,154,12,84,12,227,12,40,13,93,12,117,11, +213,11,181,13,123,15,92,15,201,13,133,12,84,12,37,13,173,14,45,16,67,17,241,17,171,17,206,16,1,17,28,18, +127,18,125,18,207,18,72,18,225,16,97,16,189,16,255,16,233,17,165,19,152,20,77,20,144,19,224,18,20,19,175,20, +73,22,147,22,30,22,194,21,159,21,131,21,228,20,54,20,255,20,141,22,28,22,196,19,166,18,1,20,3,22,195,22, +26,22,139,21,123,22,48,24,255,24,214,24,218,24,143,25,78,26,203,25,144,23,33,21,55,20,151,20,238,20,144,20, +225,19,241,19,28,21,40,22,37,22,215,21,234,21,9,22,39,22,83,22,235,21,170,20,34,19,154,17,6,16,178,14, +3,14,65,14,79,15,82,16,140,16,128,16,29,17,94,18,113,19,117,19,30,18,7,16,184,13,1,11,27,8,255,5, +6,5,245,4,10,6,5,8,125,9,187,9,144,9,76,9,17,8,185,5,20,3,109,0,178,253,78,251,136,249,97,248, +155,248,194,250,123,253,246,254,38,255,6,255,18,255,43,255,142,254,134,252,192,249,104,247,135,245,239,243,254,242,122,242, +17,242,117,242,214,243,73,245,165,246,45,248,31,249,10,249,67,248,75,246,222,242,151,239,164,237,48,236,147,234,55,233, +106,232,108,232,84,233,139,234,27,236,237,238,39,242,52,243,54,241,197,237,160,234,154,232,193,231,110,231,8,231,215,230, +102,231,116,232,37,233,40,233,17,233,107,233,26,234,167,234,68,234,117,232,177,230,66,231,198,233,142,235,98,235,51,234, +54,233,50,233,220,233,219,233,24,233,19,233,184,233,94,233,16,232,107,231,43,232,29,234,84,236,47,237,203,236,136,237, +207,239,240,240,169,239,164,237,73,236,204,235,61,236,235,236,199,236,65,236,122,236,35,237,101,237,145,237,100,238,28,240, +128,242,192,244,225,245,186,245,221,244,17,244,54,244,30,245,69,245,86,244,246,243,174,244,24,245,180,244,139,244,107,245, +149,247,132,250,126,252,162,252,146,252,229,253,152,255,143,255,74,253,170,250,27,250,126,251,30,252,187,250,107,249,70,250, +129,252,237,253,238,253,20,254,211,255,120,2,30,4,212,3,68,2,60,1,22,2,177,3,198,3,119,2,146,1,34,1, +18,0,210,254,233,254,99,1,191,5,72,9,95,9,31,7,234,5,192,6,225,7,224,7,253,6,106,6,213,6,93,7, +172,6,248,4,231,3,172,4,192,6,111,8,213,8,179,8,237,8,127,9,31,10,154,10,239,10,117,11,17,12,251,11, +57,11,112,10,91,9,216,7,239,6,242,6,40,7,172,7,214,8,236,9,130,10,231,10,19,11,114,11,174,12,110,13, +217,11,50,9,66,8,83,9,70,10,123,9,174,7,69,7,9,9,180,10,108,10,74,9,13,9,254,9,138,11,196,12, +7,13,221,12,247,12,212,12,24,12,164,11,8,12,117,12,13,12,245,10,192,9,189,8,29,8,19,8,117,8,6,9, +232,9,255,10,231,11,250,12,180,14,76,16,202,16,59,16,159,14,27,12,21,10,103,9,59,9,91,9,77,10,10,11, +119,10,219,9,2,11,5,14,153,17,153,19,176,18,118,16,86,15,66,15,235,14,34,14,97,13,37,13,95,13,194,12, +198,10,98,9,55,10,60,12,12,14,90,15,207,15,97,15,193,14,6,14,37,13,87,13,67,15,48,17,63,17,148,15, +75,13,78,11,114,10,205,10,79,11,6,11,35,10,82,9,11,9,135,9,136,10,178,11,46,13,190,14,13,15,109,13, +217,10,77,8,44,6,225,4,204,3,156,1,46,255,182,254,64,0,148,2,100,5,244,7,240,8,38,8,188,5,29,2, +123,255,65,255,107,255,53,254,190,252,243,251,163,251,12,252,218,252,97,253,131,254,156,0,164,1,32,0,229,252,173,249, +66,248,157,248,0,248,96,245,75,243,4,243,52,243,163,243,227,244,172,246,241,248,169,250,46,249,214,244,137,241,206,240, +157,240,75,239,227,236,1,235,173,235,245,237,225,238,125,238,30,239,6,241,160,242,81,242,103,239,226,235,141,234,155,234, +164,233,1,232,79,231,53,232,161,234,193,236,123,236,74,235,164,235,37,236,193,234,146,232,57,231,31,231,88,232,153,233, +252,232,39,231,118,230,209,231,65,234,14,236,119,236,211,236,209,237,173,237,201,235,37,234,199,233,21,234,172,234,220,234, +32,234,176,233,110,234,102,235,29,236,230,236,126,237,245,237,150,238,142,238,210,237,44,238,60,240,135,242,121,243,41,242, +63,239,109,237,3,238,49,239,163,239,46,240,143,241,148,243,102,245,236,245,202,245,245,246,10,249,9,250,10,250,9,250, +135,249,83,248,89,247,228,246,234,246,188,247,229,248,148,249,27,250,55,251,228,252,161,254,208,255,254,255,95,255,170,254, +183,254,183,255,123,0,233,255,243,254,53,255,140,0,234,1,25,3,130,4,71,6,210,7,65,8,133,7,46,6,127,4, +30,3,244,2,134,3,208,3,78,4,142,5,240,6,98,8,118,10,173,12,49,14,140,14,53,13,181,10,203,8,211,7, +209,6,231,5,182,5,55,6,154,7,124,9,95,10,150,10,96,12,163,15,201,17,232,17,62,17,159,16,154,15,72,13, +227,9,94,7,24,7,31,8,0,9,131,9,246,9,192,10,8,12,33,13,191,13,241,14,245,16,9,18,32,17,70,15, +92,13,34,11,222,8,201,7,114,8,39,10,239,11,95,13,177,14,55,16,111,17,137,17,74,17,41,18,90,19,177,18, +27,16,86,13,144,11,30,11,107,11,71,11,80,11,103,13,211,16,1,19,142,19,190,19,36,20,175,20,73,20,137,17, +181,13,121,11,248,10,67,11,145,12,50,14,21,15,33,16,173,17,82,18,93,18,39,19,27,20,159,20,242,20,24,20, +219,17,73,16,185,15,147,14,89,13,92,13,14,14,247,14,17,16,97,16,205,15,128,15,129,15,88,15,75,15,37,15, +254,14,244,15,97,17,86,17,25,16,187,14,30,13,18,12,130,12,3,13,138,12,225,11,175,10,104,8,167,6,114,6, +22,7,145,8,183,10,61,12,4,13,72,13,213,11,250,8,18,7,50,6,149,4,81,2,157,0,0,0,114,0,147,0, +194,254,37,252,35,251,226,251,87,253,89,255,13,2,28,5,254,6,99,5,136,0,10,252,109,250,225,250,162,251,130,251, +39,250,45,248,243,245,122,243,13,242,30,243,244,245,206,248,107,250,10,250,77,248,13,247,220,246,244,246,184,246,39,245, +158,241,244,237,74,236,1,236,190,235,208,235,192,236,248,237,83,238,74,237,36,236,31,237,135,240,11,244,218,244,149,241, +122,235,2,230,236,227,61,229,106,232,238,235,197,238,9,240,164,238,28,235,180,232,157,233,158,235,65,235,152,231,111,226, +151,223,161,225,244,229,153,232,28,234,65,236,95,237,198,235,231,232,141,231,224,233,243,238,242,241,129,239,144,233,160,227, +61,224,87,225,202,229,185,233,219,235,86,237,221,237,25,237,111,236,235,236,195,238,191,241,23,244,58,244,215,242,158,240, +160,237,51,235,58,234,9,234,249,234,79,237,241,238,0,239,134,239,147,241,124,244,100,247,111,248,223,246,167,245,0,247, +92,249,16,251,110,251,182,249,103,247,221,246,226,246,193,245,45,245,17,246,218,246,125,247,206,248,10,250,32,251,250,252, +6,255,181,0,106,2,4,3,83,1,0,255,211,253,76,253,210,252,143,252,146,252,124,253,181,255,197,1,52,2,192,1, +191,1,89,2,58,3,79,4,157,5,204,6,35,7,130,6,5,6,232,6,232,8,60,10,93,9,230,6,202,4,213,3, +142,3,218,3,204,4,12,6,75,7,2,8,177,7,85,7,99,8,82,10,174,11,46,12,3,12,102,11,241,10,194,10, +132,10,178,10,153,11,32,12,62,11,38,9,222,6,214,5,172,6,71,8,184,9,63,11,171,12,90,13,105,13,255,12, +78,12,89,12,90,13,238,13,99,13,61,12,231,10,14,10,40,10,51,10,172,9,237,9,128,11,30,13,211,13,121,13, +130,12,97,12,203,13,61,15,68,15,76,14,142,13,224,13,217,14,20,15,122,14,84,14,167,14,140,14,31,14,134,13, +145,12,254,11,62,12,61,12,91,11,47,10,140,9,138,10,171,13,140,17,165,20,158,22,32,23,76,22,59,21,23,20, +141,18,117,17,170,16,80,14,141,10,207,7,120,7,157,9,83,13,144,16,183,18,228,20,141,22,167,22,128,22,223,22, +143,22,139,21,54,20,79,17,255,12,208,9,23,9,85,10,78,12,249,12,230,11,96,11,166,12,252,14,249,17,135,20, +5,21,79,20,168,19,247,17,93,15,18,14,28,14,21,14,194,13,68,12,253,8,72,6,246,5,160,6,5,7,2,7, +49,6,73,5,148,5,184,6,153,8,238,11,12,15,40,15,14,12,116,7,216,3,143,3,79,5,39,5,39,2,19,254, +220,249,172,246,219,245,53,247,223,250,227,0,172,5,220,5,166,3,151,2,20,3,13,4,156,3,44,0,130,251,220,247, +89,244,33,241,152,240,9,242,188,242,105,242,150,241,230,240,122,242,88,246,187,249,26,252,196,253,123,252,86,248,8,245, +28,243,120,240,167,237,146,235,105,233,147,231,224,230,189,230,206,231,22,235,159,238,17,240,197,239,195,238,193,237,121,237, +91,237,172,236,11,236,15,235,70,232,202,228,251,226,8,227,72,228,62,230,91,231,151,230,234,228,127,227,99,227,201,229, +162,233,17,236,50,236,6,235,50,233,122,231,153,230,241,229,234,228,58,228,78,228,213,228,196,229,248,230,5,232,15,233, +71,234,39,235,71,235,3,235,229,234,34,235,79,235,131,234,176,232,139,231,168,232,16,235,132,236,188,236,16,237,113,237, +252,236,115,236,43,237,57,239,245,241,194,243,179,242,253,239,14,239,250,239,90,240,124,240,221,241,199,243,77,245,101,246, +142,246,79,246,94,247,83,249,102,250,175,250,222,250,174,250,117,250,178,250,216,250,221,250,46,251,5,251,38,250,36,250, +195,251,3,254,246,255,254,0,162,0,129,255,249,254,222,255,11,2,88,4,120,5,97,5,208,4,19,4,94,3,250,2, +254,2,171,3,206,4,55,5,157,4,87,4,79,5,121,7,57,10,225,11,165,11,91,11,219,11,76,11,148,9,250,8, +240,9,63,11,48,12,160,11,35,9,32,7,138,7,16,9,45,10,21,11,19,12,17,13,212,13,240,13,217,13,156,14, +209,15,56,16,153,15,99,14,23,13,107,12,97,12,83,12,242,11,9,11,147,9,155,8,240,8,45,10,38,12,169,14, +115,16,230,16,159,16,184,15,128,14,43,14,114,14,241,13,204,12,137,11,11,10,114,9,187,10,152,12,69,14,147,16, +175,18,207,18,20,17,127,14,36,12,177,11,85,13,65,15,205,16,35,18,24,18,108,16,61,15,230,15,110,17,56,18, +81,17,44,15,62,13,45,12,175,11,187,11,91,12,177,13,199,15,97,17,121,17,129,17,189,18,4,20,141,20,150,20, +131,19,163,17,170,16,60,16,200,14,231,12,173,11,65,11,252,11,1,13,238,12,177,13,85,17,241,20,145,21,166,20, +151,19,38,18,254,16,227,15,128,13,27,11,133,10,114,10,181,9,67,9,186,9,142,11,241,14,87,17,84,16,173,13, +208,11,174,10,69,10,208,10,51,11,200,10,227,9,26,8,174,5,155,4,206,5,236,7,221,8,79,7,31,4,180,1, +200,0,85,0,48,0,162,0,81,1,35,2,171,2,218,1,49,0,125,255,16,0,236,0,51,1,101,0,69,255,242,254, +111,254,146,252,184,250,250,249,98,249,139,248,213,247,55,247,111,247,2,249,70,250,14,250,135,249,98,249,44,249,178,248, +105,247,47,245,100,243,76,242,175,240,12,239,188,238,128,239,24,241,48,243,149,243,31,241,212,237,196,235,233,235,192,238, +66,242,56,243,145,241,79,239,201,237,28,238,224,239,158,240,204,239,151,238,13,236,189,231,110,228,176,227,133,228,110,230, +134,232,103,233,84,234,171,236,180,238,152,239,125,240,174,240,63,239,55,237,95,234,110,230,72,228,82,229,192,230,91,231, +117,232,204,233,8,235,40,237,118,239,131,240,228,240,0,241,98,240,203,239,123,239,63,238,168,236,98,236,239,236,45,237, +49,237,206,236,33,236,131,236,28,238,91,239,158,239,128,239,126,239,3,240,98,241,125,243,237,245,165,247,136,247,55,246, +120,245,242,245,9,247,184,247,14,247,84,245,198,243,221,242,230,242,154,244,77,247,122,249,61,251,5,253,16,254,182,254, +26,0,29,1,29,0,13,254,39,252,26,250,57,248,164,247,80,248,195,249,1,252,115,254,78,0,220,1,144,3,9,5, +238,5,231,5,87,4,250,1,232,0,169,1,188,2,130,3,109,4,237,4,89,4,156,3,178,3,161,4,81,6,232,7, +215,7,96,6,92,5,87,5,24,6,253,7,37,10,230,10,138,10,241,9,183,8,95,7,81,7,72,8,109,9,179,10, +251,10,97,9,64,8,26,10,146,13,215,15,46,16,153,15,231,14,124,13,136,10,136,7,227,6,114,8,61,10,242,10, +137,10,178,10,28,13,8,16,157,16,150,15,246,14,145,14,200,13,53,12,101,9,118,7,17,9,246,11,101,12,28,11, +114,10,28,11,116,13,42,16,185,16,33,16,190,16,226,16,197,14,108,12,100,11,114,11,191,12,219,13,154,12,200,10, +91,11,79,13,122,14,55,14,33,12,178,9,14,10,186,12,94,14,151,14,41,15,12,16,86,16,254,15,133,15,169,15, +111,16,150,16,25,15,57,12,43,9,121,7,102,7,235,7,62,9,219,11,18,14,223,14,174,15,159,16,168,16,170,16, +2,17,19,16,228,13,100,11,33,8,61,5,186,4,9,5,128,4,21,5,105,7,100,9,190,10,229,11,63,12,251,12, +245,14,169,15,29,14,133,12,18,11,223,8,66,7,103,6,235,4,116,3,115,2,186,0,186,255,152,1,42,4,191,4, +67,4,42,4,239,4,226,6,195,8,244,8,201,7,134,5,238,1,98,254,228,251,190,249,154,248,108,249,110,250,18,250, +33,249,122,248,126,249,117,253,223,1,110,3,46,3,149,2,84,0,159,252,66,249,109,246,229,244,180,245,71,246,69,244, +13,242,175,241,226,241,47,242,92,243,27,245,24,247,177,248,106,248,231,246,74,246,14,246,207,244,94,243,11,242,242,239, +225,237,255,236,161,236,112,236,214,236,47,237,40,237,230,237,199,239,176,241,226,242,123,243,233,243,21,244,244,242,40,240, +42,237,92,235,148,234,43,234,167,233,255,232,19,233,148,234,237,236,21,239,250,239,9,239,198,237,93,238,23,240,194,240, +66,240,112,239,86,238,75,237,162,236,156,235,73,234,76,234,38,236,126,238,61,240,75,241,255,241,167,242,3,243,190,242, +139,242,83,243,156,244,10,245,5,244,45,242,212,240,194,240,29,241,170,240,64,240,239,241,91,245,173,247,196,247,136,247, +141,248,80,250,168,251,150,251,248,249,124,248,148,248,29,249,174,248,239,247,198,247,81,248,196,249,159,251,240,252,46,254, +190,255,139,0,185,0,163,1,82,2,27,1,36,255,17,254,212,253,103,254,131,255,239,255,195,255,28,0,134,0,128,0, +42,1,194,2,10,4,105,4,252,3,124,3,94,4,99,6,104,7,107,7,69,8,118,9,43,9,183,7,131,6,33,6, +151,6,52,7,195,6,40,5,174,3,219,3,79,6,206,9,81,12,158,13,190,14,127,15,254,14,49,13,136,10,204,7, +13,6,83,5,230,4,196,4,26,5,171,5,212,6,38,9,251,11,57,14,68,15,232,14,217,13,52,13,169,12,26,11, +240,8,73,7,253,5,183,4,130,4,115,6,198,9,136,12,107,13,109,12,79,10,22,8,125,6,179,5,235,5,55,7, +170,8,70,9,97,9,108,9,81,9,5,10,88,12,134,14,121,14,89,12,19,9,1,6,21,5,195,5,128,5,210,4, +1,6,39,8,95,9,242,9,88,10,28,11,144,13,61,16,176,15,102,12,123,9,115,7,194,5,179,4,132,3,239,1, +185,1,33,3,95,4,104,5,97,7,78,10,201,13,150,16,129,16,4,14,111,12,175,12,109,12,74,10,110,7,204,5, +253,5,139,6,37,6,141,5,251,5,143,7,154,9,222,10,254,10,170,11,115,13,83,14,157,13,167,12,120,11,203,9, +132,8,69,7,109,5,139,4,66,5,240,5,70,6,165,6,59,6,17,6,42,8,186,10,120,11,225,11,213,12,131,12, +175,10,90,8,138,5,99,3,70,3,212,3,208,3,73,4,44,5,5,5,215,3,51,2,139,0,67,0,128,1,51,2, +221,1,25,2,27,3,176,3,110,3,224,2,227,2,140,3,75,3,4,1,168,253,150,250,196,248,183,248,110,249,189,249, +117,250,27,252,113,253,88,254,157,255,134,0,175,0,177,0,73,255,102,251,101,247,74,245,32,244,111,243,154,243,177,243, +131,243,31,244,245,244,20,245,159,245,70,247,238,248,246,249,5,250,96,248,215,245,9,244,154,242,141,240,192,238,82,238, +207,238,81,239,188,239,160,240,111,242,140,244,139,245,166,244,156,242,211,240,164,239,91,238,48,237,102,237,231,238,50,240, +148,240,91,240,52,240,44,241,252,242,136,243,61,242,161,240,255,238,50,237,169,236,158,237,104,238,41,239,179,240,102,241, +113,240,35,240,178,241,181,243,255,244,234,244,46,243,52,241,63,240,120,239,155,238,223,238,23,240,216,240,229,240,147,240, +33,240,113,240,223,241,115,243,176,244,4,246,41,247,117,247,196,246,62,245,163,243,77,243,111,244,179,245,38,246,236,245, +97,245,243,244,244,244,72,245,210,245,186,246,203,247,146,248,1,249,97,249,37,250,163,251,73,253,229,253,47,253,7,252, +27,251,95,250,119,249,61,248,114,247,6,248,62,249,136,249,98,249,210,250,42,254,176,1,188,3,210,3,245,2,181,2, +174,2,10,1,80,254,28,253,227,253,213,254,4,255,173,254,48,254,85,254,177,255,172,1,101,3,107,4,146,4,104,4, +183,4,49,5,65,5,87,5,180,5,186,5,8,5,192,3,114,2,87,2,160,3,92,4,104,3,71,2,166,2,87,4, +53,6,122,7,173,8,203,10,221,12,182,12,151,10,228,8,213,8,235,9,13,11,19,11,194,9,241,7,62,6,64,5, +224,5,230,7,41,10,53,12,190,13,84,14,159,14,90,15,8,16,164,16,125,17,45,17,126,14,226,10,101,8,226,7, +138,9,85,12,109,14,40,15,174,14,99,13,9,13,243,14,178,17,158,19,117,20,155,19,61,17,111,15,209,14,101,14, +174,14,217,15,47,16,158,15,92,15,206,14,13,14,235,14,173,16,112,17,12,18,2,19,193,18,180,17,106,17,84,17, +28,17,114,17,78,17,254,15,7,15,198,14,89,14,140,14,209,15,219,16,76,17,45,17,182,15,234,13,199,13,137,14, +158,14,77,14,179,13,136,12,153,11,57,11,252,10,99,11,73,12,40,12,221,10,99,9,242,7,32,7,103,7,140,7, +50,7,162,7,134,8,182,8,143,8,193,7,153,5,169,3,195,2,83,1,249,255,203,0,178,2,12,4,94,5,59,6, +43,6,186,6,241,6,136,3,225,253,130,250,160,250,44,253,162,0,170,1,120,254,177,249,136,246,132,246,70,250,134,255, +79,2,4,2,45,0,3,253,98,249,89,247,104,247,251,248,173,250,59,249,203,243,221,238,56,238,210,240,110,244,159,247, +88,249,185,249,251,248,226,246,111,245,254,246,167,249,44,250,43,248,7,244,225,238,49,236,37,237,181,238,126,239,196,240, +84,242,86,243,139,243,7,242,220,239,164,240,75,244,240,246,79,247,250,245,148,242,52,239,37,239,223,240,215,240,45,239, +44,237,66,235,23,235,148,237,159,240,147,242,189,243,220,243,235,242,126,242,133,243,73,245,145,246,189,245,70,242,133,238, +230,236,8,237,228,237,147,239,177,241,43,243,164,243,76,243,132,242,16,242,115,242,113,243,123,244,39,245,138,245,47,246, +12,247,78,247,159,246,124,245,105,244,237,243,129,244,203,245,198,246,176,246,140,245,138,244,75,245,183,247,216,249,129,250, +85,250,39,250,21,250,211,249,252,248,1,248,12,248,243,248,37,249,130,248,174,248,16,250,97,251,244,251,51,252,121,252, +212,252,223,252,222,251,70,250,22,250,35,252,169,254,170,255,18,255,225,253,228,252,186,252,254,253,196,0,230,3,85,5, +245,3,195,0,179,253,40,252,184,252,213,254,151,0,112,0,17,255,117,254,110,255,44,1,217,2,132,4,71,6,125,7, +118,7,74,6,148,4,22,3,116,2,133,2,100,2,176,1,6,1,38,1,79,2,38,4,239,5,70,7,29,8,12,8, +238,6,191,5,112,5,248,5,39,7,180,8,175,9,175,9,72,9,120,8,212,6,34,5,129,4,237,4,227,5,219,6, +51,7,73,7,117,8,211,10,252,12,251,13,205,13,254,12,144,12,234,12,7,13,247,11,71,10,26,9,220,8,46,9, +124,9,199,9,107,10,29,11,83,11,118,11,77,12,170,13,180,14,223,14,70,14,163,13,187,13,135,14,73,15,68,15, +104,14,119,13,27,13,212,12,229,11,229,10,210,10,128,11,52,12,204,12,117,13,56,14,29,15,6,16,145,16,142,16, +77,16,52,16,15,16,81,15,46,14,102,13,183,12,17,11,161,8,250,6,31,7,172,8,188,10,135,12,139,13,188,13, +136,13,125,13,162,13,110,13,198,12,38,12,117,11,246,9,157,7,26,5,34,3,153,2,204,3,69,5,100,5,146,4, +58,4,186,4,144,5,32,6,32,6,21,6,104,6,61,6,244,4,102,3,51,2,219,0,52,255,108,253,134,251,152,250, +16,252,191,254,33,0,85,0,42,1,158,2,79,3,105,2,232,255,233,252,60,251,4,251,142,250,59,249,72,248,163,248, +187,249,25,250,14,249,13,248,205,248,76,250,77,250,214,248,106,247,166,246,86,246,217,245,113,244,249,242,102,243,118,245, +174,246,208,245,19,244,90,243,30,244,155,244,51,243,98,241,134,241,220,242,251,242,139,241,74,240,8,241,182,243,215,245, +117,245,193,243,95,242,225,240,244,238,122,237,19,237,18,238,245,239,172,240,172,239,131,239,112,241,233,243,221,245,139,246, +197,244,247,241,170,240,224,239,19,238,69,237,171,238,41,240,118,240,252,239,32,239,131,239,143,242,48,246,229,247,60,248, +231,247,69,246,176,243,37,241,100,239,159,239,122,241,90,242,186,241,214,241,63,243,206,244,83,246,159,247,3,248,192,247, +52,247,118,246,162,246,64,248,163,249,146,249,176,248,158,247,220,246,249,246,123,247,9,248,69,249,115,250,232,249,95,248, +213,247,185,248,215,250,166,253,171,255,84,0,17,0,85,254,152,251,82,250,164,250,137,250,141,250,227,251,11,253,122,253, +158,254,192,255,146,255,110,255,32,0,178,0,150,1,0,3,236,2,64,1,117,0,222,0,28,1,39,1,249,0,77,0, +62,0,28,1,89,1,255,0,183,1,111,3,6,5,28,6,80,6,160,5,221,4,222,3,62,2,108,1,86,2,132,3, +15,4,149,4,43,5,201,5,210,6,168,7,177,7,187,7,253,7,189,7,95,7,83,7,241,6,145,6,10,7,114,7, +12,7,179,6,121,6,19,6,150,6,38,8,99,9,68,10,249,10,89,10,14,9,48,9,240,9,151,9,242,8,109,8, +105,7,39,7,49,8,88,8,152,7,78,8,0,10,40,11,185,12,139,14,167,14,166,13,18,13,27,12,139,10,182,9, +95,9,239,8,73,9,132,10,229,11,158,13,222,14,229,13,102,11,134,9,240,8,6,10,235,12,231,15,140,17,26,18, +66,17,178,14,240,11,114,10,146,10,112,12,75,14,67,13,32,10,81,8,227,8,40,11,123,14,244,16,75,17,221,16, +88,16,213,14,38,13,132,12,35,12,168,11,90,11,34,10,36,8,171,7,199,8,192,9,211,10,60,12,203,12,223,12, +75,13,234,12,205,11,224,11,139,12,193,11,12,10,193,8,196,7,27,7,203,6,88,6,123,6,4,8,98,9,254,8, +228,7,122,7,137,7,67,7,66,6,220,4,194,3,227,2,12,2,236,1,152,2,4,3,210,2,71,2,67,1,64,0, +223,255,98,255,127,254,105,254,255,254,186,254,157,253,118,252,44,251,76,250,204,250,228,251,108,252,93,252,96,251,116,249, +123,248,110,249,153,250,2,251,118,251,165,251,84,250,213,247,110,245,231,243,163,243,83,244,220,244,207,244,163,244,113,244, +112,244,184,245,115,248,216,250,126,251,133,250,63,248,40,245,165,242,80,241,2,240,66,238,65,237,157,237,217,238,158,240, +132,242,6,244,117,245,234,246,75,247,76,246,36,245,68,244,31,243,233,241,242,240,206,239,141,238,222,237,198,237,247,237, +185,238,60,240,214,241,147,242,73,242,216,241,14,242,214,242,196,243,99,244,52,244,185,243,224,243,255,243,5,243,195,241, +43,241,207,240,146,240,105,240,79,239,172,237,140,237,21,239,104,241,1,245,254,248,217,250,253,250,99,251,11,251,160,248, +118,245,225,242,74,241,25,241,242,240,66,239,34,238,254,239,66,243,5,246,195,248,124,251,126,253,216,254,223,254,254,252, +246,250,243,249,141,248,97,246,238,244,147,244,219,244,222,245,59,247,100,248,185,249,88,251,178,252,165,253,38,254,29,254, +21,254,72,254,6,254,32,253,26,252,134,251,41,252,167,253,11,254,241,252,30,252,11,252,57,252,96,253,68,255,42,0, +73,0,240,0,171,1,60,2,98,3,132,4,57,5,140,6,114,7,129,5,233,1,135,255,144,254,173,254,83,0,92,2, +120,3,137,4,42,6,133,7,127,8,92,9,203,9,34,10,149,10,247,9,5,8,66,6,66,5,149,4,140,4,85,5, +122,6,251,7,180,9,187,10,249,10,108,11,130,12,203,13,126,14,254,13,232,12,139,12,217,12,158,12,108,11,247,9, +95,9,55,10,139,11,34,12,118,12,98,13,91,14,218,14,37,15,71,15,147,15,161,16,96,17,80,16,105,14,123,13, +105,13,136,13,192,13,191,13,156,13,233,13,223,13,148,12,121,11,77,12,120,14,150,16,211,17,86,17,85,15,156,13, +255,12,118,12,137,11,251,10,23,11,54,11,169,10,155,9,32,9,226,9,26,11,200,11,243,11,237,11,207,11,4,12, +200,12,75,13,123,12,43,10,12,7,68,4,30,3,56,4,212,6,114,9,217,10,118,10,143,8,166,6,166,6,187,8, +162,10,248,9,183,6,232,2,111,0,160,255,229,255,5,1,202,2,234,3,45,3,139,1,18,1,52,2,224,3,40,5, +46,5,10,3,48,255,192,251,156,250,217,251,244,253,37,255,195,254,97,253,180,251,35,250,106,249,117,250,31,253,205,255, +191,0,150,255,137,253,76,252,160,252,174,253,233,253,163,252,130,250,104,248,214,246,70,246,30,247,21,249,36,251,27,252, +130,251,21,250,67,249,50,250,18,253,94,0,77,1,182,254,165,250,154,247,250,245,103,245,254,245,61,247,252,247,165,247, +106,246,92,245,65,246,126,249,21,253,244,254,199,254,49,253,34,251,112,249,3,248,173,246,96,246,124,247,114,248,9,248, +37,247,237,246,68,247,167,247,191,247,78,247,183,246,234,246,25,248,68,249,170,249,193,249,60,250,222,250,229,250,42,250, +43,249,108,248,217,247,185,246,199,244,43,243,60,243,188,244,88,246,93,247,52,248,162,249,141,251,167,252,71,252,153,251, +92,251,111,250,55,248,24,246,105,245,252,245,193,246,143,246,76,245,136,244,116,245,43,247,113,248,79,249,31,250,211,250, +78,251,44,251,44,250,76,249,161,249,72,250,152,249,168,247,27,246,41,246,184,247,137,249,64,250,214,249,108,249,91,249, +27,249,31,249,140,250,236,252,143,254,228,254,92,254,52,253,255,251,141,251,149,251,127,251,213,251,196,252,16,253,53,252, +101,251,185,251,64,253,106,255,20,1,125,1,59,1,5,1,182,0,95,0,125,0,231,0,251,0,127,0,131,255,144,254, +158,254,190,255,223,0,128,1,34,2,215,2,28,3,25,3,147,3,169,4,132,5,122,5,207,4,52,4,19,4,106,4, +201,4,171,4,43,4,198,3,147,3,160,3,119,4,61,6,66,8,174,9,220,9,214,8,211,7,160,7,112,7,185,6, +47,6,213,5,12,5,83,4,27,4,201,3,203,3,88,5,111,7,17,8,170,7,221,7,168,8,13,9,116,8,209,6, +232,4,140,3,100,2,20,1,173,0,250,1,248,3,58,5,74,5,107,4,107,3,61,3,3,4,24,5,0,6,158,6, +196,6,35,6,117,4,221,1,85,255,48,254,180,254,170,255,220,255,176,255,126,0,134,2,150,4,185,5,244,5,108,5, +33,4,82,2,106,0,207,254,248,253,27,254,188,254,255,254,72,254,174,252,83,251,166,251,215,253,162,0,133,2,181,2, +119,1,11,0,85,255,251,254,169,254,182,254,165,254,92,253,90,251,46,250,58,250,30,251,174,252,20,254,126,254,177,254, +134,255,46,0,242,255,111,255,33,255,206,254,22,254,142,252,165,250,23,250,161,251,165,253,122,254,235,253,138,252,113,251, +134,251,39,252,121,252,30,253,156,254,255,255,102,0,0,0,125,255,157,255,72,0,86,0,98,255,38,254,219,252,134,251, +215,250,1,251,206,251,170,253,8,0,20,1,222,0,71,1,130,2,94,3,119,3,177,2,33,1,168,255,170,254,197,253, +98,253,219,253,110,254,231,254,176,255,91,0,207,0,189,1,198,2,103,3,120,4,205,5,245,5,80,5,207,4,119,3, +252,0,19,255,132,254,191,254,73,255,105,255,60,255,89,0,172,2,71,4,41,5,98,6,61,7,71,7,22,7,225,5, +36,3,208,0,38,0,63,0,110,0,102,0,37,0,34,1,175,3,80,5,50,5,100,5,77,6,186,6,163,6,241,5, +156,4,51,4,192,4,209,3,109,1,4,0,182,255,115,255,148,255,18,0,181,0,126,2,243,4,210,5,7,5,62,4, +229,3,223,3,251,3,90,3,81,2,71,2,194,2,136,2,233,1,22,1,237,255,137,255,252,255,210,255,208,255,206,1, +158,4,45,6,99,6,159,5,157,4,154,4,226,4,24,4,59,3,202,2,13,1,58,254,50,252,225,250,98,250,71,252, +170,255,50,2,39,4,61,6,137,7,27,8,130,8,224,7,15,6,204,3,130,0,127,252,39,250,12,250,240,250,214,252, +59,255,83,0,173,0,37,2,246,3,214,4,130,5,53,6,252,5,187,4,202,2,118,0,191,254,79,254,180,254,120,255, +232,255,36,255,241,253,203,253,137,254,141,255,246,0,110,2,135,3,157,4,132,5,225,5,100,6,226,6,3,6,4,4, +183,1,122,254,4,251,249,249,131,251,121,253,34,255,134,0,90,1,106,2,61,4,173,5,178,6,59,8,211,8,168,6, +16,3,252,255,202,253,10,253,247,253,2,255,24,255,247,254,87,255,113,0,107,2,137,4,203,5,39,6,140,5,152,3, +51,1,242,255,17,0,229,0,229,1,75,2,139,1,81,0,198,255,17,0,99,0,67,0,254,255,159,255,188,254,189,253, +184,253,199,254,94,0,102,2,31,4,18,4,137,2,76,1,212,0,71,0,2,255,215,252,124,250,85,249,90,249,95,249, +240,249,71,252,82,255,46,1,160,1,246,0,104,255,18,254,131,253,151,252,195,250,18,249,2,248,80,247,107,247,178,248, +112,250,9,252,115,253,20,254,46,253,58,251,91,249,7,248,67,247,71,247,40,248,130,249,220,250,247,251,241,252,17,254, +211,254,189,253,104,250,171,246,100,244,160,243,227,243,39,245,17,247,239,248,75,250,219,250,1,251,238,251,139,253,236,253, +76,252,253,249,177,247,31,245,25,243,210,242,20,244,247,245,187,247,148,248,134,248,206,248,10,250,124,251,88,252,26,252, +109,250,60,248,25,247,244,246,175,246,133,246,96,247,209,248,224,249,109,250,140,250,53,250,239,249,31,250,20,250,90,249, +189,248,193,248,189,248,100,248,137,248,234,249,104,252,6,255,24,0,195,254,106,252,239,250,44,250,8,249,209,247,169,247, +213,248,168,250,18,252,141,252,17,253,197,254,179,0,238,0,97,255,125,253,75,252,247,251,204,251,210,250,164,249,227,249, +86,251,112,252,97,253,67,255,151,1,13,3,232,2,211,0,186,253,235,251,73,252,84,253,222,253,60,254,4,255,136,0, +74,2,214,2,12,2,237,1,38,3,181,3,96,2,85,0,241,254,175,254,156,255,32,1,76,2,230,2,54,3,50,3, +182,2,26,2,244,1,87,2,175,2,159,2,86,2,242,1,166,1,33,2,115,3,163,4,56,5,108,5,3,5,242,3, +247,2,98,2,26,2,112,2,0,3,236,2,237,2,33,4,165,5,131,6,64,7,211,7,157,7,7,7,87,6,59,5, +130,4,220,4,6,5,45,4,48,3,152,2,176,2,48,4,101,6,209,7,198,8,174,9,88,9,219,7,30,7,126,7, +213,7,161,7,203,6,175,5,112,5,9,6,34,6,217,5,79,6,41,7,101,7,253,6,89,6,4,6,159,6,239,7, +16,9,93,9,143,8,66,7,208,6,124,7,104,8,52,9,98,9,35,8,62,6,25,5,82,4,132,3,180,3,245,4, +89,6,225,7,70,9,161,9,171,9,104,10,236,10,141,10,181,9,193,7,142,4,45,2,158,1,198,1,114,2,183,3, +79,4,245,3,209,3,17,4,159,4,248,5,71,7,48,7,51,6,2,5,65,3,131,1,221,0,21,1,205,1,218,2, +230,2,22,1,226,254,216,253,23,254,123,255,136,1,7,3,112,3,54,3,168,2,242,1,78,1,209,0,152,0,143,0, +30,0,77,255,214,254,143,254,213,253,251,252,145,252,173,252,106,253,76,254,109,254,66,254,222,254,195,255,23,0,248,255, +53,255,177,253,167,252,164,252,107,252,152,251,36,251,42,251,7,251,162,250,37,250,36,250,150,251,39,254,18,0,69,0, +216,254,70,252,208,249,244,248,212,249,101,251,205,252,145,253,107,253,182,252,72,252,168,252,139,253,248,253,27,253,39,251, +32,249,252,247,26,248,67,249,251,250,172,252,168,253,153,253,241,252,100,252,117,252,127,253,11,255,125,255,194,253,146,250, +120,247,246,245,253,246,162,249,164,251,60,252,132,252,247,252,225,252,38,252,201,251,189,252,186,254,53,0,217,255,240,253, +235,251,228,250,236,250,77,251,61,251,122,250,138,249,112,249,162,250,42,252,235,252,89,253,46,254,206,254,179,254,148,254, +17,255,250,255,158,0,222,255,168,253,7,252,60,252,150,252,131,251,22,250,7,250,152,251,121,253,229,253,19,253,84,253, +58,255,178,0,237,0,30,1,141,1,116,1,118,0,121,254,249,251,84,250,41,250,243,250,74,252,154,253,26,254,82,254, +71,255,107,0,234,0,79,1,253,1,56,2,167,1,239,0,215,0,100,1,166,1,210,0,93,255,39,254,153,253,242,253, +246,254,218,255,111,0,239,0,242,0,116,0,105,0,13,1,237,1,59,3,170,4,11,5,91,4,117,3,80,2,25,1, +171,0,178,0,66,0,189,255,175,255,248,255,3,1,6,3,227,4,220,5,76,6,46,6,102,5,157,4,56,4,255,3, +186,3,241,2,110,1,74,0,133,0,128,1,89,2,2,3,138,3,9,4,130,4,114,4,233,3,2,4,240,4,149,5, +112,5,210,4,246,3,98,3,135,3,191,3,83,3,211,2,45,3,87,4,49,5,135,4,230,2,106,2,160,3,173,4, +82,4,80,3,233,2,159,3,173,4,147,4,109,3,36,3,11,4,76,4,55,3,34,2,16,2,203,2,125,3,110,3, +253,2,36,3,178,3,210,3,223,3,146,4,106,5,144,5,248,4,232,3,170,2,158,1,248,0,200,0,44,1,4,2, +5,3,249,3,142,4,122,4,248,3,132,3,93,3,134,3,129,3,105,2,73,0,117,254,32,254,145,255,36,2,26,4, +245,3,164,2,72,2,62,3,103,4,68,5,190,5,70,5,113,3,168,0,4,254,209,252,153,253,144,255,103,1,69,2, +28,2,204,1,88,2,134,3,98,4,179,4,139,4,115,3,99,1,86,255,42,254,237,253,65,254,185,254,38,255,146,255, +252,255,114,0,17,1,133,1,121,1,123,1,245,1,30,2,63,1,210,255,129,254,130,253,238,252,176,252,174,252,15,253, +162,253,216,253,169,253,92,253,246,252,217,252,47,253,234,252,123,251,81,250,164,250,238,251,93,253,105,254,143,254,47,254, +197,253,89,252,101,249,175,246,198,245,34,246,3,247,79,248,177,249,28,251,251,252,253,254,83,0,185,0,230,255,129,253, +63,250,132,247,8,246,171,245,216,245,218,245,171,245,245,245,8,247,163,248,148,250,156,252,250,253,239,253,148,252,182,250, +242,248,141,247,253,246,103,247,213,247,88,247,47,246,234,244,231,243,22,244,23,246,189,248,95,250,204,250,222,250,66,251, +227,251,230,251,8,251,94,250,77,250,159,249,225,247,45,246,57,245,52,245,113,246,52,248,229,248,141,248,145,248,94,249, +159,250,105,252,126,254,201,255,135,255,246,253,218,251,250,249,220,248,167,248,23,249,129,249,75,249,165,248,120,248,135,249, +179,251,34,254,56,0,244,1,248,2,89,2,39,0,214,253,153,252,94,252,85,252,197,251,246,250,32,251,174,252,146,254, +241,255,229,0,93,1,16,1,76,0,142,255,12,255,25,255,238,255,41,1,68,2,243,2,243,2,58,2,80,1,238,0, +83,1,254,1,215,1,63,0,15,254,240,252,186,253,246,255,162,2,230,4,67,6,152,6,252,5,139,4,174,2,98,1, +48,1,49,1,104,0,129,255,156,255,116,0,110,1,218,2,172,4,214,5,161,5,68,4,183,2,154,2,151,4,186,6, +196,6,25,5,105,3,109,2,107,2,112,3,167,4,107,5,249,5,235,5,114,4,86,2,14,1,208,0,173,1,4,4, +190,6,25,8,47,8,236,7,43,7,34,6,199,5,199,5,228,4,56,3,212,1,85,1,243,1,111,3,242,4,36,6, +92,7,87,8,102,8,145,7,112,6,177,5,238,5,214,6,11,7,205,5,208,3,68,2,240,1,229,2,87,4,73,5, +146,5,184,5,246,5,0,6,204,5,7,6,242,6,150,7,43,7,47,6,70,5,141,4,83,4,206,4,160,5,136,6, +76,7,57,7,72,6,85,5,162,4,55,4,179,4,170,5,201,5,96,5,153,5,37,6,151,6,56,7,44,7,155,5, +235,3,100,3,53,3,222,2,27,3,251,3,242,4,176,5,191,5,9,5,114,4,133,4,189,4,122,4,121,3,16,2, +51,1,76,1,214,1,135,2,148,3,5,5,140,6,67,7,37,6,160,3,238,0,61,254,196,251,209,250,205,251,179,253, +171,255,254,0,126,1,165,2,30,5,222,6,160,6,114,5,169,3,238,0,72,254,110,252,243,250,61,250,183,250,133,251, +96,252,183,253,27,255,125,0,133,2,77,4,105,4,44,3,43,1,119,254,38,252,29,251,170,250,107,250,170,250,226,250, +196,250,231,250,76,251,165,251,77,252,56,253,245,253,139,254,154,254,192,253,243,252,246,252,62,253,166,253,234,253,173,252, +66,250,2,249,99,249,243,249,40,250,205,249,217,248,134,248,61,249,186,249,221,249,86,250,177,250,26,251,118,252,184,253, +181,253,106,253,8,253,124,251,119,249,26,248,236,246,243,245,176,245,109,245,81,245,193,246,80,249,159,251,152,253,218,254, +209,254,99,254,206,253,72,252,6,251,102,251,160,251,253,249,67,247,114,244,180,242,139,243,239,245,178,247,49,249,61,251, +9,253,167,254,111,0,28,1,135,0,6,0,18,255,228,252,236,250,196,249,137,248,194,247,219,247,179,247,212,247,202,249, +119,252,68,254,224,255,178,1,224,2,10,3,208,1,15,255,125,252,159,251,132,251,39,251,25,251,204,251,210,252,114,253, +78,253,91,253,211,254,212,0,170,1,106,1,218,0,60,0,15,0,119,0,200,0,231,0,23,1,236,0,147,0,207,0, +51,1,34,1,24,1,209,0,152,255,140,254,236,254,236,255,233,0,66,2,112,3,203,3,7,4,116,4,98,4,183,3, +196,2,168,1,17,1,100,1,215,1,10,2,131,2,8,3,60,3,212,3,246,4,167,5,205,5,17,6,27,6,86,5, +30,4,224,2,208,1,110,1,206,1,85,2,250,2,38,4,97,5,214,5,146,5,18,5,164,4,153,4,221,4,180,4, +213,3,227,2,98,2,38,2,10,2,85,2,120,3,88,5,232,6,30,7,53,6,37,5,113,4,25,4,218,3,97,3, +240,2,3,3,34,3,155,2,217,1,152,1,223,1,137,2,45,3,43,3,243,2,100,3,235,3,201,3,193,3,27,4, +180,3,91,2,60,1,252,0,199,1,147,3,26,5,235,4,149,3,184,2,215,2,67,3,42,3,136,2,45,2,127,2, +222,2,227,2,5,3,188,3,223,4,157,5,22,5,138,3,65,2,244,1,75,2,136,2,26,2,112,1,120,1,216,1, +183,1,234,1,107,3,45,5,229,5,168,5,223,4,26,4,252,3,6,4,124,3,227,2,119,2,162,1,224,0,224,0, +3,1,64,1,116,2,242,3,108,4,33,4,157,3,248,2,199,2,238,2,105,2,148,1,110,1,85,1,190,0,168,0, +116,1,87,2,211,2,178,2,1,2,137,1,156,1,176,1,181,1,225,1,213,1,95,1,158,0,143,255,209,254,25,255, +232,255,176,0,146,1,241,1,54,1,44,0,78,255,70,254,182,253,4,254,14,254,122,253,20,253,175,252,74,252,223,252, +1,254,124,254,184,254,229,254,3,254,145,252,233,251,205,251,203,251,34,252,78,252,36,252,158,252,122,253,63,253,165,251, +28,249,53,246,132,244,48,245,128,247,151,250,198,253,137,255,60,255,3,254,212,252,36,252,66,252,20,252,62,250,89,247, +125,244,41,242,154,241,111,243,34,246,157,248,27,251,0,253,200,253,97,254,4,255,228,254,233,253,198,251,22,248,111,244, +140,242,228,241,248,241,74,243,72,245,31,247,248,248,108,250,20,251,16,252,169,253,95,254,210,253,164,252,168,250,65,248, +176,246,19,246,27,246,251,246,240,247,39,248,121,248,127,249,142,250,176,251,29,253,204,253,72,253,102,252,126,251,197,250, +12,251,33,252,188,252,99,252,129,251,210,250,41,251,88,252,84,253,205,253,203,253,221,252,98,251,143,250,181,250,152,251, +65,253,51,255,193,0,232,1,114,2,232,1,173,0,75,255,214,253,223,252,198,252,221,252,239,252,139,253,112,254,27,255, +176,255,231,255,152,255,224,255,52,1,113,2,8,3,33,3,133,2,174,1,91,1,202,0,115,255,136,254,162,254,56,255, +65,0,18,1,64,0,170,254,143,254,231,255,151,1,158,3,100,5,199,5,36,5,241,3,170,1,45,255,96,254,20,255, +220,255,127,0,42,1,144,1,199,1,33,2,180,2,183,3,2,5,122,5,130,4,236,2,215,1,167,1,26,2,137,2, +146,2,143,2,246,2,165,3,41,4,99,4,177,4,69,5,100,5,83,4,171,2,149,1,116,1,57,2,160,3,211,4, +66,5,69,5,3,5,84,4,227,3,119,4,150,5,78,6,57,6,83,5,43,4,172,3,229,3,83,4,226,4,70,5, +243,4,119,4,147,4,181,4,165,4,105,5,235,6,169,7,14,7,162,5,42,4,214,3,9,5,87,6,179,6,162,6, +57,6,27,5,35,4,50,4,228,4,175,5,43,6,185,5,168,4,24,4,33,4,87,4,241,4,222,5,137,6,205,6, +121,6,72,5,239,3,48,3,196,2,160,2,27,3,182,3,233,3,196,3,230,2,88,1,132,0,221,0,100,1,41,2, +132,3,81,4,24,4,223,3,219,3,224,3,109,4,173,4,16,3,122,0,200,254,3,254,254,253,33,255,141,0,36,1, +60,1,42,1,234,0,79,1,187,2,14,4,109,4,194,3,253,1,177,255,21,254,121,253,123,253,234,253,107,254,124,254, +255,253,58,253,1,253,64,254,117,0,4,2,55,2,87,1,236,255,214,254,148,254,191,254,52,255,231,255,211,255,154,254, +109,253,216,252,121,252,150,252,32,253,59,253,255,252,240,252,165,252,127,252,164,253,110,255,124,0,252,0,31,1,84,0, +6,255,234,253,225,252,59,252,56,252,186,251,123,250,255,249,166,250,144,251,230,252,229,254,153,0,131,1,219,1,83,1, +210,255,4,254,128,252,169,251,178,251,1,252,222,251,118,251,74,251,172,251,180,252,205,253,90,254,176,254,242,254,145,254, +184,253,33,253,230,252,21,253,208,253,87,254,52,254,13,254,3,254,194,253,220,253,104,254,107,254,1,254,241,253,177,253, +8,253,39,253,15,254,99,254,247,253,144,253,112,253,197,253,132,254,246,254,12,255,116,255,4,0,34,0,3,0,251,255, +248,255,234,255,137,255,148,254,136,253,241,252,189,252,9,253,255,253,25,255,229,255,157,0,85,1,241,1,135,2,236,2, +187,2,242,1,168,0,4,255,170,253,251,252,151,252,120,252,230,252,116,253,213,253,167,254,44,0,192,1,231,2,93,3, +1,3,84,2,241,1,161,1,5,1,34,0,12,255,50,254,29,254,76,254,253,253,193,253,97,254,102,255,90,0,124,1, +180,2,157,3,11,4,102,3,50,1,193,254,11,254,41,255,206,0,14,2,100,2,138,1,15,0,246,254,214,254,205,255, +73,1,30,2,192,1,191,0,185,255,53,255,27,0,109,2,124,4,219,4,202,3,30,2,106,0,70,255,9,255,149,255, +134,0,249,0,29,0,160,254,18,254,220,254,105,0,47,2,113,3,134,3,206,2,240,1,21,1,165,0,245,0,108,1, +172,1,28,2,65,2,65,1,228,255,99,255,108,255,105,255,148,255,3,0,170,0,192,1,187,2,200,2,112,2,153,2, +209,2,109,2,184,1,1,1,67,0,199,255,169,255,149,255,151,255,12,0,212,0,133,1,220,1,204,1,165,1,223,1, +65,2,0,2,249,0,7,0,237,255,114,0,217,0,224,0,222,0,233,0,166,0,238,255,7,255,103,254,138,254,105,255, +56,0,61,0,130,255,138,254,247,253,72,254,62,255,67,0,79,1,86,2,128,2,52,1,244,254,169,252,35,251,224,250, +108,251,35,252,84,253,20,255,81,0,146,0,140,0,140,0,110,0,68,0,151,255,255,253,135,252,14,252,203,251,92,251, +109,251,190,251,227,251,175,252,68,254,131,255,80,0,11,1,225,0,129,255,234,253,112,252,254,250,88,250,157,250,235,250, +47,251,174,251,2,252,105,252,115,253,72,254,53,254,2,254,222,253,26,253,45,252,235,251,16,252,50,252,53,252,226,251, +170,251,40,252,188,252,219,252,41,253,163,253,130,253,236,252,39,252,4,251,104,250,99,251,41,253,188,254,48,0,5,1, +153,0,170,255,176,254,26,253,78,251,77,250,251,249,18,250,195,250,173,251,133,252,169,253,235,254,243,255,79,1,206,2, +250,2,166,1,247,255,62,254,98,252,227,250,21,250,39,250,106,251,52,253,116,254,123,255,250,0,102,2,17,3,230,2, +215,1,95,0,126,255,80,255,63,255,64,255,78,255,22,255,231,254,68,255,247,255,206,0,238,1,219,2,194,2,182,1, +146,0,32,0,159,0,194,1,28,3,59,4,119,4,155,3,136,2,10,2,255,1,53,2,154,2,177,2,85,2,38,2, +88,2,169,2,90,3,115,4,46,5,73,5,66,5,36,5,210,4,140,4,55,4,130,3,203,2,109,2,71,2,182,2, +23,4,123,5,253,5,69,6,226,6,14,7,96,6,133,5,225,4,64,4,157,3,23,3,243,2,179,3,23,5,234,5, +194,5,147,5,253,5,146,6,222,6,212,6,157,6,110,6,17,6,246,4,116,3,179,2,231,2,70,3,147,3,15,4, +176,4,118,5,93,6,204,6,116,6,0,6,207,5,86,5,95,4,116,3,39,3,192,3,205,4,7,5,229,3,136,2, +244,1,204,1,143,1,116,1,188,1,83,2,250,2,102,3,136,3,176,3,7,4,62,4,210,3,114,2,97,0,96,254, +16,253,168,252,7,253,187,253,117,254,103,255,140,0,137,1,153,2,219,3,30,4,140,2,9,0,133,253,87,251,104,250, +13,251,237,251,85,252,251,252,204,253,121,254,188,255,84,1,190,1,255,0,223,255,184,253,174,250,204,248,198,248,151,249, +234,250,72,252,151,252,106,252,40,253,113,254,138,255,157,0,204,0,254,254,88,252,96,250,234,248,231,247,227,247,142,248, +129,249,239,250,68,252,198,252,41,253,255,253,133,254,79,254,204,253,251,252,184,251,138,250,230,249,206,249,41,250,163,250, +194,250,146,250,147,250,24,251,243,251,134,252,118,252,43,252,61,252,188,252,59,253,66,253,231,252,196,252,222,252,162,252, +84,252,149,252,201,252,67,252,130,251,202,250,235,249,172,249,168,250,252,251,45,253,182,254,253,255,25,0,191,255,180,255, +131,255,254,254,97,254,68,253,195,251,229,250,228,250,85,251,102,252,230,253,219,254,46,255,144,255,229,255,236,255,27,0, +125,0,109,0,249,255,179,255,122,255,238,254,104,254,119,254,45,255,50,0,242,0,211,0,225,255,249,254,219,254,97,255, +234,255,46,0,109,0,7,1,248,1,220,2,89,3,86,3,238,2,100,2,196,1,173,0,61,255,117,254,240,254,44,0, +120,1,115,2,219,2,238,2,33,3,69,3,66,3,152,3,3,4,151,3,132,2,145,1,241,0,249,0,216,1,157,2, +230,2,155,3,120,4,59,4,79,3,164,2,241,1,99,1,155,1,202,1,106,1,152,1,131,2,39,3,163,3,60,4, +91,4,74,4,140,4,57,4,46,3,176,2,128,2,166,1,240,0,238,0,193,0,168,0,108,1,36,2,47,2,155,2, +172,3,146,4,31,5,42,5,79,4,58,3,170,2,37,2,87,1,174,0,66,0,4,0,9,0,17,0,37,0,244,0, +127,2,250,3,220,4,222,4,34,4,121,3,45,3,197,2,122,2,123,2,204,1,59,0,11,255,160,254,174,254,160,255, +16,1,199,1,63,2,92,3,29,4,221,3,138,3,36,3,42,2,116,1,67,1,121,0,90,255,16,255,61,255,107,255, +34,0,5,1,85,1,183,1,135,2,229,2,220,2,22,3,250,2,237,1,150,0,127,255,181,254,109,254,112,254,109,254, +229,254,227,255,93,0,21,0,201,255,124,255,255,254,202,254,10,255,132,255,79,0,53,1,181,1,182,1,177,0,225,253, +116,250,169,248,217,248,10,250,165,251,240,252,116,253,250,253,250,254,29,0,205,1,231,3,128,4,198,2,4,0,218,252, +125,249,69,247,144,246,72,246,125,246,146,247,198,248,126,250,223,253,193,1,92,4,184,5,117,5,209,2,97,255,200,252, +64,250,146,247,197,245,128,244,142,243,114,244,42,247,225,249,71,252,194,254,141,0,155,1,165,2,246,2,173,1,114,255, +240,252,82,250,77,248,108,247,119,247,40,248,234,248,37,249,109,249,138,250,24,252,147,253,234,254,192,255,239,255,181,255, +229,254,204,253,130,253,227,253,222,253,116,253,169,252,246,250,97,249,71,249,172,249,164,249,86,250,14,252,163,253,28,255, +204,0,220,1,66,2,196,2,175,2,54,1,60,255,111,253,146,251,40,250,219,249,57,250,220,250,231,251,22,253,77,254, +8,0,245,1,229,2,155,2,244,1,113,1,254,0,135,0,221,255,196,254,180,253,160,253,141,254,155,255,113,0,65,1, +194,1,160,1,29,1,118,0,3,0,154,0,51,2,89,3,58,3,124,2,200,1,118,1,229,1,167,2,210,2,89,2, +150,1,125,0,143,255,186,255,208,0,10,2,65,3,67,4,135,4,94,4,142,4,199,4,87,4,167,3,102,3,55,3, +159,2,14,2,238,1,47,2,241,2,253,3,94,4,34,4,155,4,153,5,132,5,115,4,159,3,2,3,97,2,57,2, +53,2,218,1,232,1,120,2,200,2,157,3,179,5,101,7,150,7,90,7,181,6,201,4,184,2,207,1,99,1,15,1, +79,1,176,1,243,1,245,2,139,4,167,5,110,6,47,7,23,7,217,5,57,4,200,2,232,1,226,1,34,2,227,1, +81,1,241,0,9,1,209,1,17,3,18,4,126,4,146,4,136,4,113,4,90,4,61,4,22,4,206,3,28,3,13,2, +50,1,232,0,0,1,36,1,45,1,57,1,141,1,54,2,0,3,174,3,18,4,8,4,153,3,240,2,61,2,181,1, +99,1,18,1,123,0,158,255,11,255,124,255,217,0,74,2,58,3,144,3,70,3,169,2,45,2,217,1,167,1,186,1, +170,1,244,0,236,255,245,254,40,254,18,254,231,254,186,255,51,0,230,0,141,1,152,1,128,1,115,1,0,1,129,0, +45,0,50,255,196,253,58,253,152,253,239,253,23,254,36,254,43,254,190,254,218,255,178,0,35,1,106,1,57,1,145,0, +225,255,62,255,207,254,168,254,20,254,202,252,150,251,233,250,246,250,97,252,164,254,52,0,224,0,31,1,174,0,7,0, +19,0,74,0,26,0,209,255,194,254,122,252,181,250,118,250,188,250,144,251,92,253,178,254,219,254,20,255,172,255,58,0, +52,1,35,2,179,1,60,0,131,254,104,252,191,250,159,250,58,251,191,251,107,252,183,252,120,252,2,253,106,254,132,255, +159,0,239,1,243,1,107,0,207,254,131,253,112,252,32,252,59,252,30,252,77,252,188,252,166,252,163,252,79,253,211,253, +33,254,4,255,183,255,75,255,119,254,181,253,209,252,111,252,218,252,21,253,220,252,194,252,147,252,21,252,181,251,121,251, +95,251,247,251,252,252,120,253,146,253,229,253,30,254,1,254,230,253,158,253,231,252,72,252,11,252,215,251,187,251,240,251, +11,252,209,251,205,251,70,252,186,252,224,252,0,253,68,253,137,253,191,253,218,253,191,253,144,253,141,253,150,253,81,253, +174,252,239,251,123,251,179,251,140,252,108,253,220,253,252,253,20,254,37,254,40,254,79,254,183,254,40,255,77,255,251,254, +43,254,39,253,127,252,99,252,136,252,1,253,249,253,203,254,218,254,166,254,189,254,244,254,72,255,201,255,224,255,83,255, +206,254,161,254,143,254,163,254,229,254,36,255,135,255,253,255,239,255,131,255,112,255,162,255,177,255,196,255,217,255,199,255, +219,255,56,0,142,0,244,0,127,1,190,1,145,1,45,1,115,0,173,255,156,255,15,0,81,0,117,0,165,0,156,0, +135,0,176,0,229,0,75,1,37,2,229,2,245,2,127,2,183,1,234,0,168,0,194,0,140,0,48,0,22,0,7,0, +34,0,188,0,89,1,120,1,111,1,127,1,160,1,240,1,31,2,184,1,67,1,97,1,156,1,125,1,95,1,106,1, +106,1,118,1,138,1,55,1,127,0,215,255,44,255,92,254,90,254,21,0,166,2,99,4,221,4,128,4,168,3,20,3, +35,3,208,2,115,1,198,255,3,254,255,251,238,250,203,251,206,253,97,0,62,3,216,4,147,4,52,4,163,4,24,5, +105,5,14,5,178,2,48,255,196,252,164,251,113,251,187,252,172,254,189,255,87,0,31,1,206,1,8,3,28,5,103,6, +51,6,119,5,43,4,18,2,60,0,252,254,250,253,228,253,160,254,193,254,115,254,245,254,18,0,102,1,45,3,141,4, +173,4,73,4,232,3,70,3,179,2,106,2,6,2,152,1,37,1,69,0,105,255,49,255,40,255,40,255,175,255,90,0, +204,0,136,1,101,2,11,3,38,4,119,5,188,5,41,5,84,4,163,2,135,0,75,255,127,254,180,253,237,253,207,254, +41,255,230,255,207,1,148,3,161,4,104,5,87,5,116,4,246,3,137,3,56,2,225,0,108,0,113,0,188,0,9,1, +191,0,128,0,44,1,3,2,88,2,151,2,168,2,96,2,121,2,8,3,90,3,118,3,107,3,225,2,98,2,106,2, +71,2,205,1,153,1,103,1,235,0,208,0,20,1,29,1,89,1,51,2,23,3,205,3,87,4,36,4,103,3,57,3, +163,3,183,3,20,3,196,1,34,0,37,255,86,255,58,0,90,1,123,2,61,3,161,3,242,3,1,4,170,3,95,3, +75,3,18,3,131,2,176,1,169,0,201,255,159,255,91,0,159,1,228,2,214,3,67,4,4,4,81,3,167,2,9,2, +61,1,157,0,130,0,157,0,193,0,13,1,68,1,108,1,23,2,18,3,150,3,161,3,48,3,194,1,247,255,32,255, +39,255,95,255,239,255,163,0,221,0,12,1,160,1,216,1,133,1,125,1,139,1,189,0,77,255,12,254,75,253,89,253, +88,254,141,255,38,0,252,255,45,255,42,254,186,253,32,254,226,254,142,255,212,255,92,255,76,254,86,253,253,252,78,253, +19,254,238,254,123,255,64,255,209,253,176,251,95,250,195,250,78,252,19,254,92,255,155,255,251,254,70,254,222,253,220,253, +114,254,255,254,102,254,202,252,40,251,217,249,57,249,235,249,106,251,160,252,122,253,22,254,69,254,159,254,145,255,41,0, +213,255,11,255,166,253,137,251,232,249,115,249,140,249,5,250,203,250,49,251,109,251,71,252,62,253,208,253,156,254,100,255, +71,255,207,254,125,254,152,253,87,252,190,251,128,251,20,251,231,250,246,250,252,250,126,251,113,252,253,252,62,253,192,253, +63,254,155,254,255,254,10,255,170,254,92,254,5,254,115,253,8,253,173,252,20,252,165,251,127,251,83,251,146,251,118,252, +59,253,183,253,63,254,104,254,74,254,175,254,52,255,70,255,127,255,170,255,200,254,134,253,195,252,227,251,23,251,95,251, +239,251,208,251,212,251,94,252,226,252,168,253,163,254,238,254,232,254,118,255,6,0,13,0,204,255,235,254,93,253,3,252, +208,250,124,249,83,249,242,250,206,252,222,253,81,254,10,254,114,253,186,253,14,255,203,0,87,2,124,2,131,0,201,253, +207,251,196,250,219,250,253,251,226,252,227,252,179,252,166,252,239,252,79,254,113,0,202,1,186,1,176,0,49,255,33,254, +68,254,48,255,233,255,177,255,69,254,105,252,132,251,5,252,93,253,253,254,56,0,92,0,162,255,240,254,245,254,240,255, +98,1,74,2,69,2,171,1,175,0,145,255,202,254,126,254,159,254,36,255,136,255,87,255,32,255,128,255,70,0,63,1, +74,2,236,2,25,3,88,3,120,3,232,2,224,1,209,0,216,255,64,255,62,255,128,255,225,255,142,0,89,1,9,2, +195,2,117,3,202,3,200,3,167,3,109,3,59,3,51,3,18,3,153,2,249,1,127,1,55,1,11,1,253,0,43,1, +168,1,87,2,10,3,154,3,247,3,75,4,197,4,33,5,228,4,12,4,4,3,55,2,229,1,255,1,17,2,198,1, +93,1,62,1,153,1,141,2,11,4,123,5,53,6,52,6,183,5,183,4,85,3,47,2,183,1,207,1,27,2,34,2, +176,1,80,1,145,1,60,2,3,3,225,3,113,4,89,4,37,4,44,4,255,3,157,3,74,3,161,2,159,1,28,1, +57,1,126,1,23,2,231,2,29,3,213,2,188,2,164,2,127,2,234,2,180,3,34,4,33,4,122,3,6,2,236,0, +4,1,114,1,161,1,229,1,236,1,131,1,136,1,31,2,132,2,205,2,75,3,141,3,139,3,138,3,46,3,131,2, +51,2,247,1,85,1,210,0,180,0,161,0,239,0,219,1,163,2,250,2,42,3,234,2,89,2,98,2,218,2,207,2, +92,2,217,1,254,0,29,0,232,255,24,0,82,0,215,0,110,1,158,1,178,1,230,1,253,1,25,2,97,2,70,2, +133,1,157,0,227,255,94,255,68,255,149,255,229,255,240,255,207,255,195,255,224,255,234,255,183,255,112,255,24,255,147,254, +37,254,23,254,90,254,17,255,66,0,62,1,112,1,206,0,4,255,56,252,33,250,243,249,207,250,224,251,70,253,128,254, +237,254,42,255,207,255,175,0,202,1,120,2,25,1,186,253,102,250,70,248,153,247,252,248,163,251,50,253,17,253,152,252, +158,252,177,253,46,0,150,2,255,2,149,1,11,255,146,251,198,248,125,248,236,249,81,251,63,252,114,252,210,251,165,251, +186,252,64,254,154,255,118,0,225,255,30,254,238,252,184,252,157,252,156,252,198,252,111,252,198,251,149,251,204,251,63,252, +18,253,174,253,128,253,23,253,2,253,38,253,145,253,56,254,164,254,197,254,209,254,175,254,118,254,115,254,118,254,46,254, +127,253,79,252,31,251,236,250,181,251,207,252,42,254,148,255,82,0,138,0,205,0,208,0,127,0,96,0,24,0,0,255, +155,253,106,252,109,251,105,251,220,252,153,254,185,255,138,0,231,0,116,0,243,255,28,0,180,0,109,1,220,1,75,1, +237,255,203,254,85,254,141,254,148,255,243,0,187,1,140,1,161,0,115,255,161,254,137,254,58,255,175,0,69,2,246,2, +186,2,92,2,40,2,40,2,119,2,135,2,197,1,156,0,122,255,100,254,23,254,68,255,30,1,162,2,215,3,147,4, +79,4,127,3,245,2,203,2,225,2,13,3,171,2,134,1,102,0,224,255,6,0,41,1,28,3,142,4,159,4,233,3, +33,3,95,2,239,1,47,2,189,2,22,3,76,3,100,3,46,3,245,2,32,3,124,3,196,3,249,3,207,3,24,3, +125,2,141,2,236,2,72,3,162,3,172,3,87,3,52,3,90,3,84,3,84,3,165,3,199,3,136,3,111,3,112,3, +27,3,198,2,180,2,139,2,113,2,223,2,102,3,131,3,138,3,136,3,17,3,126,2,97,2,90,2,39,2,80,2, +201,2,227,2,171,2,142,2,104,2,74,2,164,2,5,3,153,2,176,1,2,1,117,0,1,0,25,0,161,0,32,1, +191,1,114,2,116,2,192,1,41,1,200,0,63,0,235,255,239,255,173,255,36,255,248,254,11,255,34,255,192,255,208,0, +84,1,21,1,138,0,156,255,106,254,218,253,20,254,89,254,107,254,100,254,14,254,152,253,168,253,61,254,238,254,161,255, +1,0,117,255,39,254,244,252,116,252,192,252,125,253,237,253,189,253,72,253,198,252,88,252,130,252,113,253,113,254,217,254, +157,254,238,253,45,253,203,252,213,252,33,253,123,253,118,253,229,252,77,252,247,251,158,251,111,251,209,251,105,252,191,252, +251,252,49,253,76,253,149,253,17,254,46,254,216,253,108,253,208,252,242,251,58,251,221,250,212,250,69,251,8,252,169,252, +37,253,152,253,210,253,3,254,108,254,149,254,43,254,166,253,47,253,129,252,222,251,161,251,155,251,191,251,49,252,167,252, +1,253,129,253,4,254,60,254,98,254,149,254,124,254,20,254,166,253,48,253,189,252,138,252,159,252,211,252,248,252,217,252, +150,252,163,252,17,253,139,253,224,253,237,253,161,253,56,253,216,252,159,252,8,253,28,254,243,254,15,255,183,254,218,253, +146,252,215,251,244,251,44,252,99,252,218,252,36,253,77,253,10,254,15,255,193,255,121,0,12,1,117,0,4,255,242,253, +87,253,234,252,226,252,242,252,180,252,186,252,104,253,87,254,128,255,237,0,211,1,193,1,38,1,61,0,50,255,148,254, +124,254,133,254,169,254,219,254,197,254,168,254,15,255,196,255,76,0,138,0,120,0,85,0,133,0,219,0,249,0,1,1, +250,0,180,0,157,0,9,1,114,1,141,1,163,1,135,1,13,1,202,0,247,0,28,1,51,1,99,1,114,1,134,1, +18,2,222,2,138,3,21,4,60,4,196,3,48,3,200,2,70,2,223,1,221,1,206,1,136,1,155,1,30,2,202,2, +183,3,161,4,230,4,166,4,98,4,14,4,180,3,161,3,158,3,111,3,81,3,63,3,236,2,163,2,196,2,21,3, +78,3,83,3,252,2,137,2,148,2,44,3,225,3,101,4,132,4,51,4,216,3,198,3,225,3,253,3,244,3,146,3, +226,2,10,2,27,1,126,0,185,0,154,1,156,2,158,3,97,4,142,4,130,4,160,4,145,4,41,4,162,3,198,2, +137,1,160,0,75,0,8,0,215,255,6,0,109,0,30,1,113,2,235,3,210,4,59,5,73,5,185,4,180,3,158,2, +106,1,56,0,130,255,57,255,9,255,38,255,180,255,105,0,60,1,56,2,229,2,239,2,181,2,131,2,58,2,222,1, +118,1,181,0,141,255,145,254,66,254,153,254,111,255,143,0,110,1,134,1,238,0,38,0,169,255,183,255,39,0,116,0, +98,0,46,0,254,255,239,255,78,0,249,0,64,1,225,0,33,0,16,255,226,253,72,253,103,253,175,253,243,253,85,254, +170,254,9,255,219,255,234,0,156,1,222,1,176,1,230,0,186,255,144,254,123,253,187,252,145,252,149,252,110,252,130,252, +28,253,0,254,11,255,23,0,187,0,245,0,4,1,179,0,219,255,224,254,250,253,33,253,145,252,115,252,147,252,225,252, +105,253,236,253,87,254,216,254,81,255,139,255,154,255,134,255,59,255,240,254,201,254,178,254,194,254,9,255,58,255,52,255, +40,255,253,254,138,254,17,254,188,253,105,253,33,253,4,253,35,253,198,253,17,255,120,0,95,1,172,1,91,1,119,0, +115,255,158,254,207,253,9,253,149,252,129,252,206,252,144,253,133,254,68,255,203,255,53,0,103,0,99,0,85,0,41,0, +163,255,238,254,121,254,113,254,165,254,244,254,95,255,166,255,129,255,23,255,186,254,128,254,142,254,2,255,107,255,107,255, +109,255,213,255,122,0,83,1,70,2,163,2,8,2,230,0,164,255,143,254,59,254,156,254,234,254,11,255,95,255,159,255, +195,255,120,0,165,1,103,2,178,2,205,2,88,2,82,1,109,0,204,255,54,255,236,254,254,254,11,255,41,255,163,255, +64,0,226,0,169,1,59,2,65,2,37,2,50,2,32,2,209,1,93,1,172,0,1,0,230,255,56,0,110,0,136,0, +187,0,236,0,28,1,113,1,186,1,206,1,240,1,57,2,84,2,34,2,212,1,115,1,17,1,247,0,23,1,3,1, +165,0,83,0,54,0,97,0,2,1,232,1,134,2,167,2,119,2,18,2,170,1,141,1,138,1,41,1,132,0,254,255, +156,255,74,255,63,255,153,255,60,0,17,1,213,1,4,2,130,1,204,0,66,0,190,255,39,255,189,254,155,254,148,254, +190,254,79,255,7,0,148,0,36,1,189,1,7,2,255,1,149,1,31,0,186,253,224,251,108,251,255,251,118,253,139,255, +248,0,46,1,24,1,66,1,151,1,72,2,195,2,203,1,162,255,121,253,132,251,31,250,107,250,53,252,39,254,219,255, +17,1,30,1,191,0,64,1,35,2,103,2,21,2,219,0,88,254,221,251,224,250,45,251,65,252,186,253,162,254,186,254, +235,254,89,255,152,255,253,255,133,0,123,0,35,0,16,0,187,255,250,254,162,254,181,254,165,254,176,254,208,254,99,254, +183,253,152,253,231,253,91,254,16,255,194,255,52,0,173,0,16,1,237,0,130,0,72,0,63,0,70,0,24,0,72,255, +247,253,195,252,28,252,93,252,130,253,199,254,183,255,172,0,146,1,235,1,221,1,148,1,226,0,50,0,206,255,6,255, +211,253,24,253,202,252,135,252,248,252,47,254,36,255,193,255,104,0,132,0,251,255,185,255,200,255,188,255,1,0,114,0, +16,0,248,254,241,253,14,253,157,252,56,253,75,254,220,254,225,254,128,254,235,253,221,253,136,254,95,255,84,0,78,1, +129,1,207,0,218,255,167,254,101,253,223,252,210,252,101,252,236,251,210,251,243,251,233,252,13,255,8,1,233,1,50,2, +229,1,217,0,248,255,130,255,156,254,107,253,114,252,75,251,90,250,187,250,14,252,153,253,195,255,5,2,223,2,124,2, +223,1,250,0,234,255,65,255,160,254,179,253,29,253,222,252,154,252,239,252,1,254,242,254,210,255,16,1,228,1,238,1, +243,1,228,1,71,1,192,0,149,0,23,0,119,255,70,255,19,255,190,254,245,254,145,255,4,0,165,0,136,1,4,2, +5,2,221,1,116,1,1,1,11,1,99,1,164,1,211,1,208,1,121,1,52,1,66,1,101,1,131,1,154,1,160,1, +197,1,19,2,67,2,121,2,241,2,66,3,49,3,38,3,35,3,242,2,223,2,234,2,146,2,19,2,238,1,204,1, +150,1,217,1,92,2,134,2,189,2,82,3,175,3,191,3,240,3,248,3,138,3,22,3,199,2,100,2,50,2,93,2, +106,2,60,2,54,2,67,2,20,2,213,1,181,1,155,1,146,1,175,1,188,1,166,1,159,1,157,1,96,1,251,0, +194,0,193,0,214,0,19,1,140,1,33,2,169,2,206,2,226,1,200,255,129,253,19,252,230,251,73,253,226,255,32,2, +230,2,191,2,132,2,123,2,199,2,237,2,248,1,245,255,158,253,31,251,15,249,196,248,73,250,141,252,53,255,194,1, +3,3,50,3,156,3,11,4,164,3,152,2,183,0,145,253,122,250,18,249,18,249,237,249,185,251,173,253,247,254,50,0, +176,1,168,2,240,2,202,2,204,1,18,0,142,254,88,253,22,252,99,251,176,251,124,252,127,253,169,254,111,255,159,255, +216,255,74,0,127,0,87,0,13,0,197,255,150,255,121,255,58,255,209,254,151,254,223,254,149,255,46,0,41,0,130,255, +142,254,188,253,134,253,246,253,151,254,57,255,246,255,143,0,211,0,10,1,63,1,56,1,22,1,225,0,67,0,82,255, +115,254,167,253,36,253,107,253,48,254,235,254,228,255,39,1,5,2,98,2,153,2,121,2,6,2,171,1,43,1,57,0, +66,255,109,254,152,253,105,253,71,254,100,255,61,0,10,1,157,1,213,1,12,2,26,2,203,1,191,1,17,2,13,2, +196,1,121,1,144,0,41,255,74,254,236,253,175,253,43,254,89,255,81,0,47,1,73,2,4,3,102,3,251,3,21,4, +40,3,4,2,208,0,21,255,171,253,69,253,29,253,39,253,22,254,86,255,110,0,34,2,17,4,229,4,214,4,119,4, +30,3,3,1,125,255,174,254,33,254,50,254,187,254,16,255,146,255,153,0,112,1,250,1,191,2,83,3,52,3,215,2, +91,2,104,1,115,0,13,0,225,255,199,255,17,0,145,0,222,0,20,1,78,1,113,1,146,1,203,1,230,1,174,1, +61,1,206,0,129,0,77,0,64,0,122,0,222,0,60,1,158,1,228,1,182,1,71,1,246,0,140,0,243,255,153,255, +129,255,100,255,127,255,213,255,253,255,43,0,174,0,235,0,156,0,98,0,75,0,244,255,202,255,254,255,225,255,93,255, +254,254,172,254,92,254,133,254,249,254,33,255,57,255,123,255,132,255,113,255,187,255,36,0,75,0,52,0,176,255,166,254, +168,253,54,253,87,253,0,254,199,254,15,255,240,254,235,254,23,255,121,255,9,0,46,0,146,255,187,254,255,253,90,253, +45,253,155,253,21,254,113,254,232,254,52,255,49,255,54,255,59,255,17,255,1,255,246,254,124,254,245,253,236,253,6,254, +20,254,116,254,220,254,206,254,168,254,179,254,172,254,171,254,226,254,236,254,160,254,86,254,27,254,242,253,39,254,145,254, +205,254,250,254,34,255,249,254,187,254,220,254,17,255,14,255,18,255,10,255,185,254,113,254,127,254,166,254,217,254,45,255, +102,255,96,255,78,255,65,255,55,255,78,255,102,255,69,255,5,255,207,254,160,254,148,254,195,254,18,255,113,255,196,255, +216,255,208,255,2,0,68,0,66,0,9,0,161,255,6,255,151,254,138,254,150,254,193,254,75,255,233,255,75,0,154,0, +186,0,111,0,23,0,244,255,160,255,17,255,189,254,154,254,117,254,152,254,17,255,118,255,192,255,35,0,106,0,106,0, +73,0,252,255,102,255,202,254,124,254,136,254,213,254,58,255,125,255,132,255,96,255,66,255,90,255,149,255,180,255,185,255, +191,255,164,255,112,255,101,255,111,255,96,255,99,255,120,255,68,255,218,254,157,254,146,254,188,254,94,255,50,0,177,0, +235,0,25,1,8,1,188,0,115,0,14,0,128,255,37,255,254,254,185,254,153,254,9,255,199,255,130,0,74,1,237,1, +11,2,201,1,121,1,14,1,124,0,254,255,195,255,205,255,8,0,80,0,132,0,160,0,189,0,4,1,124,1,221,1, +227,1,177,1,141,1,117,1,83,1,45,1,13,1,231,0,168,0,84,0,53,0,125,0,230,0,44,1,113,1,185,1, +179,1,73,1,174,0,5,0,142,255,130,255,169,255,214,255,89,0,58,1,14,2,189,2,56,3,238,2,193,1,99,0, +42,255,11,254,85,253,36,253,46,253,167,253,208,254,32,0,92,1,246,2,112,4,188,4,253,3,170,2,140,0,32,254, +152,252,8,252,241,251,118,252,76,253,206,253,165,254,168,0,21,3,18,5,120,6,75,6,175,3,16,0,100,253,241,251, +117,251,212,251,67,252,81,252,196,252,7,254,190,255,238,1,61,4,62,5,90,4,138,2,143,0,181,254,165,253,161,253, +242,253,6,254,213,253,140,253,186,253,233,254,153,0,220,1,106,2,69,2,88,1,0,0,247,254,152,254,194,254,34,255, +105,255,130,255,122,255,87,255,50,255,46,255,67,255,121,255,245,255,120,0,150,0,105,0,87,0,112,0,165,0,247,0, +68,1,108,1,104,1,13,1,63,0,76,255,152,254,93,254,187,254,116,255,251,255,59,0,139,0,251,0,115,1,240,1, +54,2,11,2,175,1,87,1,208,0,32,0,162,255,139,255,220,255,118,0,254,0,73,1,150,1,241,1,36,2,49,2, +38,2,240,1,176,1,137,1,71,1,218,0,147,0,146,0,191,0,7,1,44,1,12,1,240,0,250,0,243,0,7,1, +130,1,19,2,94,2,118,2,91,2,38,2,66,2,146,2,133,2,45,2,182,1,209,0,202,255,120,255,182,255,3,0, +179,0,189,1,91,2,141,2,208,2,219,2,145,2,117,2,67,2,110,1,114,0,178,255,224,254,101,254,243,254,9,0, +7,1,42,2,46,3,109,3,77,3,87,3,40,3,157,2,17,2,62,1,253,255,23,255,231,254,253,254,100,255,83,0, +59,1,194,1,64,2,163,2,149,2,86,2,21,2,117,1,143,0,8,0,237,255,234,255,19,0,118,0,181,0,166,0, +136,0,125,0,134,0,183,0,1,1,52,1,72,1,63,1,243,0,140,0,110,0,131,0,82,0,229,255,167,255,150,255, +129,255,125,255,138,255,129,255,145,255,234,255,62,0,80,0,104,0,163,0,177,0,133,0,83,0,27,0,205,255,128,255, +71,255,43,255,56,255,81,255,85,255,97,255,149,255,216,255,20,0,84,0,133,0,119,0,27,0,154,255,45,255,239,254, +218,254,240,254,38,255,85,255,107,255,109,255,69,255,252,254,237,254,53,255,130,255,163,255,153,255,89,255,22,255,42,255, +113,255,156,255,195,255,219,255,142,255,8,255,185,254,137,254,91,254,106,254,138,254,103,254,69,254,104,254,156,254,228,254, +86,255,139,255,93,255,56,255,31,255,211,254,148,254,135,254,95,254,56,254,77,254,68,254,7,254,28,254,122,254,179,254, +220,254,9,255,242,254,201,254,235,254,4,255,201,254,139,254,101,254,51,254,31,254,38,254,246,253,181,253,185,253,230,253, +42,254,164,254,12,255,39,255,45,255,33,255,225,254,197,254,2,255,27,255,206,254,82,254,183,253,46,253,32,253,110,253, +192,253,69,254,253,254,90,255,75,255,60,255,38,255,2,255,26,255,65,255,5,255,143,254,12,254,79,253,198,252,23,253, +230,253,147,254,57,255,204,255,216,255,147,255,136,255,148,255,111,255,62,255,244,254,96,254,212,253,175,253,203,253,16,254, +155,254,47,255,97,255,71,255,59,255,95,255,177,255,15,0,37,0,190,255,20,255,131,254,52,254,46,254,93,254,136,254, +140,254,161,254,8,255,152,255,5,0,75,0,126,0,137,0,108,0,78,0,37,0,202,255,70,255,183,254,40,254,205,253, +5,254,214,254,229,255,218,0,131,1,202,1,191,1,136,1,51,1,196,0,81,0,228,255,109,255,249,254,189,254,228,254, +123,255,107,0,125,1,86,2,168,2,108,2,228,1,84,1,221,0,149,0,130,0,125,0,105,0,111,0,171,0,235,0, +15,1,53,1,92,1,101,1,92,1,92,1,89,1,92,1,123,1,160,1,181,1,208,1,221,1,172,1,102,1,76,1, +62,1,16,1,224,0,197,0,190,0,238,0,77,1,142,1,170,1,211,1,230,1,185,1,127,1,95,1,44,1,226,0, +172,0,136,0,104,0,92,0,96,0,107,0,135,0,179,0,232,0,52,1,111,1,82,1,247,0,167,0,96,0,25,0, +246,255,244,255,241,255,251,255,7,0,234,255,213,255,12,0,90,0,125,0,145,0,151,0,84,0,204,255,47,255,153,254, +71,254,130,254,60,255,41,0,0,1,104,1,43,1,132,0,233,255,138,255,78,255,18,255,202,254,124,254,64,254,80,254, +217,254,171,255,108,0,1,1,77,1,11,1,95,0,203,255,104,255,2,255,166,254,78,254,226,253,209,253,131,254,124,255, +49,0,172,0,199,0,80,0,221,255,236,255,11,0,236,255,218,255,192,255,106,255,65,255,121,255,169,255,176,255,193,255, +185,255,144,255,152,255,199,255,223,255,8,0,94,0,151,0,148,0,133,0,106,0,40,0,197,255,82,255,0,255,9,255, +104,255,236,255,112,0,195,0,206,0,197,0,199,0,198,0,198,0,172,0,52,0,138,255,36,255,6,255,14,255,90,255, +179,255,171,255,125,255,150,255,213,255,13,0,74,0,72,0,232,255,160,255,162,255,166,255,184,255,249,255,9,0,184,255, +100,255,57,255,44,255,85,255,148,255,155,255,123,255,81,255,10,255,233,254,59,255,171,255,215,255,231,255,230,255,172,255, +119,255,130,255,138,255,120,255,132,255,144,255,114,255,100,255,125,255,139,255,156,255,190,255,179,255,136,255,146,255,182,255, +161,255,125,255,124,255,108,255,71,255,75,255,109,255,118,255,109,255,105,255,94,255,105,255,182,255,16,0,37,0,17,0, +32,0,75,0,100,0,108,0,81,0,228,255,88,255,32,255,87,255,205,255,101,0,223,0,216,0,110,0,33,0,20,0, +44,0,113,0,181,0,160,0,90,0,80,0,118,0,158,0,249,0,128,1,195,1,171,1,124,1,56,1,221,0,192,0, +244,0,48,1,104,1,178,1,207,1,162,1,125,1,120,1,99,1,80,1,88,1,54,1,234,0,226,0,40,1,106,1, +187,1,52,2,150,2,213,2,22,3,12,3,114,2,189,1,92,1,45,1,29,1,67,1,126,1,198,1,74,2,206,2, +233,2,169,2,63,2,179,1,92,1,135,1,225,1,20,2,65,2,68,2,200,1,29,1,208,0,232,0,75,1,229,1, +68,2,12,2,143,1,59,1,28,1,59,1,146,1,182,1,95,1,197,0,39,0,156,255,90,255,139,255,244,255,89,0, +219,0,150,1,94,2,24,3,162,3,91,3,168,1,250,254,118,252,238,250,213,250,84,252,168,254,135,0,111,1,169,1, +175,1,46,2,91,3,21,4,73,3,84,1,226,254,57,252,87,250,92,250,232,251,2,254,49,0,172,1,205,1,107,1, +159,1,42,2,113,2,37,2,202,0,154,254,201,252,213,251,96,251,167,251,212,252,35,254,54,255,90,0,74,1,181,1, +242,1,4,2,145,1,228,0,66,0,100,255,121,254,252,253,184,253,123,253,139,253,198,253,251,253,151,254,150,255,94,0, +5,1,192,1,246,1,102,1,146,0,135,255,69,254,130,253,146,253,10,254,193,254,100,255,54,255,116,254,44,254,156,254, +142,255,8,1,86,2,110,2,141,1,103,0,12,255,214,253,139,253,16,254,160,254,183,254,12,254,3,253,184,252,130,253, +155,254,164,255,157,0,18,1,210,0,96,0,233,255,84,255,232,254,178,254,80,254,210,253,123,253,62,253,74,253,240,253, +226,254,173,255,90,0,200,0,185,0,124,0,78,0,204,255,208,254,205,253,32,253,250,252,121,253,76,254,238,254,66,255, +107,255,126,255,146,255,157,255,116,255,31,255,224,254,227,254,45,255,146,255,199,255,200,255,187,255,140,255,57,255,249,254, +212,254,181,254,188,254,201,254,136,254,78,254,164,254,91,255,29,0,231,0,84,1,239,0,22,0,67,255,111,254,216,253, +235,253,116,254,41,255,3,0,137,0,92,0,35,0,108,0,202,0,238,0,247,0,186,0,40,0,186,255,150,255,135,255, +182,255,39,0,102,0,93,0,92,0,84,0,49,0,59,0,114,0,139,0,143,0,135,0,79,0,39,0,130,0,46,1, +150,1,128,1,9,1,122,0,54,0,94,0,178,0,12,1,92,1,100,1,4,1,136,0,82,0,119,0,211,0,59,1, +119,1,87,1,238,0,150,0,143,0,201,0,26,1,82,1,60,1,222,0,137,0,91,0,61,0,69,0,135,0,212,0, +8,1,43,1,38,1,1,1,8,1,49,1,30,1,204,0,109,0,242,255,112,255,73,255,134,255,214,255,21,0,53,0, +40,0,18,0,13,0,0,0,242,255,1,0,11,0,248,255,237,255,251,255,19,0,45,0,28,0,164,255,227,254,25,254, +137,253,165,253,148,254,193,255,168,0,67,1,105,1,8,1,157,0,99,0,5,0,145,255,66,255,176,254,184,253,19,253, +25,253,138,253,139,254,13,0,59,1,187,1,237,1,186,1,12,1,120,0,9,0,39,255,32,254,188,253,205,253,6,254, +164,254,100,255,195,255,39,0,225,0,84,1,64,1,33,1,241,0,117,0,3,0,190,255,96,255,21,255,33,255,45,255, +18,255,30,255,61,255,72,255,163,255,101,0,238,0,250,0,220,0,193,0,155,0,106,0,27,0,179,255,107,255,60,255, +242,254,171,254,156,254,185,254,5,255,147,255,46,0,178,0,46,1,129,1,127,1,62,1,183,0,207,255,210,254,24,254, +157,253,111,253,163,253,227,253,8,254,119,254,56,255,244,255,202,0,201,1,110,2,133,2,59,2,87,1,199,255,55,254, +17,253,83,252,107,252,121,253,176,254,168,255,167,0,120,1,202,1,237,1,242,1,137,1,238,0,66,0,247,254,68,253, +69,252,51,252,148,252,139,253,30,255,157,0,178,1,91,2,83,2,198,1,90,1,250,0,59,0,116,255,245,254,121,254, +26,254,59,254,163,254,247,254,77,255,161,255,215,255,32,0,135,0,179,0,130,0,36,0,187,255,111,255,102,255,137,255, +200,255,27,0,52,0,233,255,134,255,92,255,129,255,237,255,92,0,127,0,136,0,186,0,211,0,181,0,175,0,203,0, +206,0,184,0,113,0,208,255,52,255,8,255,25,255,61,255,170,255,57,0,127,0,146,0,180,0,214,0,232,0,251,0, +6,1,2,1,14,1,38,1,31,1,230,0,134,0,32,0,220,255,198,255,223,255,48,0,173,0,58,1,187,1,230,1, +155,1,70,1,48,1,19,1,224,0,214,0,192,0,98,0,21,0,0,0,236,255,27,0,214,0,157,1,24,2,138,2, +202,2,117,2,218,1,100,1,11,1,249,0,71,1,86,1,218,0,91,0,13,0,181,255,173,255,74,0,17,1,132,1, +152,1,85,1,243,0,225,0,26,1,47,1,254,0,155,0,10,0,134,255,101,255,189,255,105,0,30,1,119,1,84,1, +240,0,134,0,60,0,38,0,32,0,0,0,204,255,125,255,30,255,30,255,183,255,149,0,105,1,255,1,236,1,31,1, +14,0,234,254,203,253,75,253,194,253,171,254,146,255,91,0,207,0,8,1,127,1,24,2,93,2,75,2,177,1,27,0, +6,254,145,252,25,252,134,252,223,253,141,255,173,0,57,1,143,1,167,1,160,1,174,1,104,1,128,0,90,255,64,254, +59,253,196,252,51,253,26,254,14,255,11,0,229,0,103,1,190,1,250,1,225,1,98,1,156,0,160,255,161,254,9,254, +12,254,137,254,52,255,203,255,39,0,71,0,62,0,59,0,96,0,145,0,170,0,165,0,114,0,6,0,151,255,87,255, +75,255,140,255,26,0,149,0,176,0,129,0,34,0,177,255,142,255,231,255,111,0,226,0,56,1,69,1,226,0,70,0, +190,255,109,255,101,255,163,255,248,255,41,0,18,0,195,255,132,255,147,255,236,255,102,0,204,0,222,0,141,0,3,0, +128,255,90,255,186,255,82,0,186,0,237,0,232,0,124,0,214,255,91,255,4,255,191,254,197,254,12,255,57,255,75,255, +108,255,140,255,191,255,37,0,125,0,151,0,156,0,127,0,4,0,98,255,227,254,119,254,56,254,95,254,193,254,33,255, +135,255,224,255,26,0,109,0,199,0,179,0,42,0,134,255,226,254,91,254,35,254,31,254,53,254,148,254,13,255,61,255, +117,255,32,0,223,0,73,1,108,1,32,1,64,0,60,255,121,254,227,253,157,253,223,253,95,254,219,254,113,255,239,255, +18,0,52,0,152,0,222,0,223,0,213,0,148,0,214,255,2,255,147,254,132,254,169,254,241,254,53,255,113,255,202,255, +47,0,117,0,174,0,228,0,229,0,157,0,66,0,239,255,160,255,107,255,108,255,138,255,137,255,99,255,80,255,136,255, +14,0,179,0,37,1,32,1,174,0,37,0,196,255,156,255,179,255,243,255,26,0,6,0,201,255,121,255,61,255,90,255, +215,255,105,0,205,0,230,0,159,0,27,0,170,255,110,255,93,255,148,255,15,0,118,0,131,0,62,0,206,255,110,255, +103,255,190,255,50,0,150,0,203,0,174,0,90,0,27,0,12,0,36,0,90,0,118,0,53,0,192,255,119,255,116,255, +170,255,19,0,144,0,233,0,3,1,215,0,119,0,28,0,235,255,209,255,211,255,18,0,111,0,174,0,205,0,219,0, +204,0,167,0,132,0,112,0,103,0,86,0,46,0,11,0,7,0,10,0,18,0,74,0,163,0,214,0,223,0,221,0, +197,0,148,0,94,0,36,0,247,255,3,0,54,0,104,0,163,0,221,0,215,0,159,0,120,0,86,0,22,0,237,255, +2,0,27,0,21,0,23,0,34,0,5,0,203,255,160,255,127,255,87,255,63,255,46,255,237,254,151,254,128,254,154,254, +185,254,2,255,109,255,173,255,249,255,191,0,184,1,127,2,15,3,177,2,109,0,231,252,183,249,174,247,129,247,243,249, +238,253,42,1,230,2,122,3,2,3,74,2,92,2,123,2,114,1,132,255,249,252,214,249,187,247,86,248,239,250,77,254, +14,2,203,4,21,5,3,4,31,3,30,2,196,0,140,255,6,254,1,252,165,250,105,250,200,250,254,251,20,254,205,255, +179,0,133,1,72,2,179,2,45,3,123,3,183,2,6,1,36,255,87,253,39,252,69,252,91,253,141,254,88,255,114,255, +42,255,105,255,105,0,157,1,189,2,103,3,235,2,106,1,174,255,27,254,67,253,221,253,106,255,188,0,92,1,8,1, +176,255,114,254,100,254,75,255,236,0,47,3,217,4,234,4,26,4,233,2,7,1,68,255,191,254,238,254,4,255,12,255, +209,254,102,254,224,254,107,0,0,2,127,3,11,5,148,5,152,4,246,2,17,1,14,255,14,254,133,254,99,255,41,0, +56,1,83,2,33,3,193,3,225,3,33,3,22,2,91,1,211,0,137,0,167,0,203,0,176,0,177,0,21,1,193,1, +137,2,42,3,84,3,220,2,211,1,158,0,185,255,72,255,82,255,246,255,230,0,171,1,108,2,73,3,189,3,147,3, +36,3,75,2,218,0,133,255,188,254,50,254,7,254,131,254,57,255,6,0,88,1,194,2,105,3,117,3,11,3,173,1, +198,255,126,254,241,253,184,253,24,254,251,254,149,255,198,255,253,255,74,0,188,0,109,1,210,1,117,1,203,0,78,0, +236,255,177,255,185,255,183,255,123,255,50,255,246,254,189,254,142,254,123,254,171,254,40,255,154,255,198,255,0,0,109,0, +190,0,211,0,170,0,21,0,71,255,172,254,44,254,183,253,198,253,92,254,243,254,148,255,113,0,11,1,21,1,223,0, +96,0,114,255,163,254,76,254,5,254,197,253,233,253,55,254,99,254,184,254,63,255,150,255,221,255,77,0,107,0,237,255, +89,255,254,254,188,254,187,254,21,255,98,255,104,255,103,255,119,255,149,255,243,255,103,0,96,0,223,255,102,255,16,255, +173,254,95,254,78,254,105,254,164,254,246,254,56,255,113,255,201,255,24,0,8,0,166,255,77,255,50,255,84,255,161,255, +232,255,243,255,205,255,186,255,206,255,244,255,37,0,75,0,23,0,112,255,174,254,48,254,29,254,124,254,44,255,201,255, +6,0,221,255,108,255,6,255,47,255,235,255,134,0,118,0,230,255,60,255,190,254,184,254,59,255,219,255,64,0,130,0, +164,0,117,0,24,0,198,255,89,255,202,254,106,254,66,254,40,254,87,254,228,254,87,255,147,255,253,255,111,0,120,0, +76,0,24,0,139,255,186,254,41,254,210,253,142,253,191,253,115,254,13,255,112,255,236,255,57,0,255,255,166,255,116,255, +28,255,171,254,117,254,54,254,184,253,126,253,181,253,253,253,135,254,172,255,203,0,62,1,37,1,89,0,145,254,177,252, +221,251,255,251,190,252,40,254,148,255,38,0,49,0,84,0,113,0,136,0,189,0,123,0,116,255,93,254,158,253,8,253, +0,253,249,253,86,255,94,0,16,1,96,1,49,1,219,0,130,0,202,255,203,254,26,254,221,253,248,253,120,254,49,255, +203,255,59,0,135,0,166,0,205,0,49,1,151,1,184,1,132,1,239,0,23,0,115,255,95,255,203,255,117,0,242,0, +233,0,128,0,37,0,21,0,123,0,81,1,9,2,29,2,158,1,202,0,220,255,87,255,151,255,97,0,89,1,69,2, +216,2,245,2,213,2,144,2,28,2,165,1,73,1,239,0,181,0,215,0,60,1,157,1,224,1,0,2,18,2,63,2, +115,2,85,2,188,1,217,0,4,0,140,255,160,255,78,0,110,1,167,2,156,3,16,4,227,3,46,3,74,2,135,1, +6,1,211,0,203,0,174,0,140,0,158,0,193,0,204,0,254,0,101,1,166,1,170,1,148,1,63,1,155,0,250,255, +145,255,103,255,167,255,51,0,122,0,100,0,103,0,154,0,202,0,20,1,114,1,124,1,25,1,136,0,212,255,30,255, +214,254,254,254,30,255,33,255,45,255,30,255,252,254,44,255,156,255,215,255,215,255,220,255,217,255,195,255,195,255,198,255, +173,255,163,255,183,255,166,255,91,255,16,255,211,254,160,254,147,254,166,254,180,254,212,254,62,255,201,255,38,0,87,0, +125,0,118,0,31,0,137,255,209,254,35,254,198,253,207,253,32,254,200,254,197,255,172,0,37,1,65,1,12,1,148,0, +40,0,222,255,118,255,1,255,190,254,159,254,177,254,64,255,27,0,197,0,52,1,114,1,85,1,21,1,28,1,68,1, +67,1,22,1,158,0,217,255,82,255,91,255,151,255,217,255,63,0,142,0,155,0,207,0,105,1,51,2,7,3,161,3, +114,3,103,2,19,1,240,255,54,255,28,255,132,255,9,0,132,0,235,0,39,1,88,1,172,1,8,2,68,2,80,2, +251,1,53,1,93,0,206,255,160,255,202,255,18,0,62,0,132,0,10,1,116,1,145,1,142,1,93,1,231,0,111,0, +10,0,154,255,97,255,135,255,159,255,122,255,96,255,98,255,129,255,228,255,84,0,126,0,137,0,126,0,28,0,150,255, +90,255,71,255,32,255,4,255,222,254,137,254,66,254,69,254,134,254,250,254,127,255,205,255,218,255,202,255,141,255,39,255, +208,254,139,254,67,254,31,254,50,254,88,254,136,254,192,254,231,254,248,254,247,254,219,254,187,254,167,254,114,254,36,254, +13,254,32,254,32,254,42,254,115,254,225,254,98,255,231,255,43,0,35,0,254,255,156,255,233,254,73,254,235,253,157,253, +135,253,222,253,73,254,142,254,246,254,125,255,211,255,9,0,36,0,214,255,68,255,239,254,233,254,19,255,126,255,247,255, +34,0,15,0,214,255,97,255,252,254,7,255,73,255,126,255,212,255,65,0,112,0,105,0,96,0,71,0,32,0,4,0, +204,255,105,255,34,255,25,255,56,255,143,255,27,0,157,0,7,1,117,1,183,1,153,1,86,1,31,1,207,0,89,0, +237,255,171,255,163,255,233,255,93,0,195,0,28,1,117,1,176,1,179,1,130,1,27,1,153,0,67,0,60,0,97,0, +139,0,178,0,196,0,189,0,195,0,1,1,102,1,198,1,25,2,105,2,162,2,160,2,117,2,64,2,229,1,70,1, +126,0,172,255,241,254,169,254,48,255,105,0,209,1,215,2,25,3,184,2,68,2,17,2,14,2,20,2,253,1,145,1, +225,0,82,0,31,0,64,0,180,0,109,1,19,2,77,2,14,2,140,1,21,1,211,0,172,0,119,0,67,0,47,0, +53,0,75,0,111,0,129,0,110,0,103,0,143,0,200,0,2,1,56,1,57,1,243,0,160,0,80,0,229,255,135,255, +92,255,44,255,214,254,140,254,83,254,66,254,186,254,161,255,92,0,230,0,126,1,164,1,235,0,214,255,189,254,128,253, +150,252,145,252,19,253,186,253,160,254,114,255,201,255,22,0,150,0,185,0,98,0,238,255,40,255,248,253,21,253,207,252, +204,252,44,253,41,254,46,255,174,255,210,255,187,255,100,255,19,255,230,254,166,254,100,254,86,254,77,254,42,254,37,254, +63,254,66,254,78,254,149,254,251,254,102,255,212,255,36,0,47,0,253,255,161,255,61,255,255,254,222,254,160,254,60,254, +221,253,163,253,193,253,104,254,94,255,45,0,173,0,227,0,183,0,60,0,184,255,65,255,215,254,167,254,193,254,249,254, +72,255,188,255,52,0,145,0,197,0,172,0,81,0,0,0,207,255,152,255,102,255,97,255,140,255,217,255,46,0,96,0, +117,0,102,0,255,255,107,255,36,255,38,255,68,255,209,255,207,0,150,1,251,1,63,2,16,2,53,1,54,0,95,255, +153,254,75,254,175,254,65,255,212,255,159,0,52,1,68,1,108,1,194,1,142,1,222,0,56,0,96,255,72,254,188,253, +1,254,151,254,90,255,66,0,217,0,12,1,44,1,36,1,222,0,164,0,102,0,203,255,16,255,169,254,149,254,177,254, +241,254,39,255,61,255,82,255,108,255,126,255,149,255,172,255,182,255,199,255,213,255,207,255,216,255,233,255,170,255,29,255, +155,254,54,254,245,253,39,254,230,254,203,255,113,0,171,0,113,0,2,0,179,255,133,255,77,255,7,255,187,254,121,254, +104,254,162,254,17,255,160,255,57,0,169,0,187,0,121,0,41,0,250,255,222,255,174,255,92,255,245,254,157,254,135,254, +212,254,105,255,249,255,78,0,116,0,149,0,184,0,203,0,200,0,167,0,96,0,9,0,183,255,101,255,42,255,47,255, +108,255,192,255,49,0,180,0,17,1,56,1,64,1,40,1,231,0,153,0,76,0,238,255,142,255,96,255,110,255,161,255, +16,0,188,0,81,1,145,1,169,1,174,1,114,1,27,1,235,0,182,0,89,0,28,0,24,0,40,0,108,0,234,0, +60,1,77,1,99,1,102,1,53,1,26,1,49,1,78,1,128,1,186,1,161,1,61,1,242,0,207,0,181,0,174,0, +172,0,170,0,220,0,78,1,203,1,63,2,148,2,146,2,70,2,229,1,113,1,246,0,166,0,122,0,82,0,79,0, +109,0,127,0,178,0,56,1,200,1,48,2,144,2,183,2,78,2,152,1,250,0,118,0,17,0,243,255,233,255,199,255, +205,255,17,0,96,0,203,0,105,1,222,1,236,1,191,1,100,1,207,0,55,0,195,255,82,255,233,254,178,254,179,254, +235,254,94,255,236,255,100,0,170,0,189,0,179,0,151,0,80,0,197,255,14,255,101,254,15,254,37,254,126,254,2,255, +192,255,110,0,150,0,62,0,168,255,249,254,128,254,108,254,96,254,24,254,220,253,218,253,4,254,124,254,52,255,209,255, +60,0,122,0,74,0,184,255,52,255,225,254,171,254,182,254,248,254,34,255,39,255,40,255,19,255,230,254,206,254,203,254, +196,254,204,254,239,254,17,255,44,255,88,255,140,255,172,255,196,255,220,255,202,255,131,255,77,255,91,255,145,255,214,255, +31,0,68,0,61,0,41,0,6,0,194,255,132,255,99,255,87,255,113,255,169,255,199,255,203,255,238,255,55,0,142,0, +211,0,201,0,102,0,8,0,243,255,28,0,108,0,181,0,211,0,229,0,240,0,184,0,90,0,53,0,72,0,97,0, +115,0,104,0,71,0,99,0,209,0,48,1,89,1,95,1,27,1,149,0,59,0,53,0,70,0,116,0,214,0,27,1, +9,1,220,0,177,0,104,0,55,0,96,0,164,0,186,0,191,0,176,0,119,0,103,0,179,0,0,1,27,1,32,1, +225,0,62,0,168,255,99,255,65,255,77,255,173,255,7,0,13,0,243,255,231,255,234,255,31,0,120,0,145,0,63,0, +203,255,110,255,48,255,33,255,75,255,126,255,148,255,166,255,194,255,196,255,176,255,173,255,170,255,116,255,27,255,186,254, +93,254,52,254,93,254,162,254,210,254,253,254,49,255,111,255,186,255,241,255,249,255,236,255,218,255,183,255,134,255,76,255, +9,255,224,254,234,254,15,255,58,255,83,255,51,255,245,254,220,254,240,254,37,255,119,255,166,255,142,255,105,255,91,255, +83,255,100,255,143,255,175,255,215,255,19,0,21,0,208,255,174,255,213,255,24,0,93,0,107,0,6,0,101,255,248,254, +229,254,31,255,130,255,216,255,13,0,45,0,49,0,25,0,18,0,67,0,140,0,161,0,109,0,50,0,22,0,247,255, +221,255,232,255,236,255,225,255,15,0,91,0,106,0,91,0,89,0,68,0,57,0,108,0,145,0,107,0,67,0,53,0, +27,0,32,0,106,0,175,0,210,0,2,1,54,1,52,1,0,1,190,0,127,0,73,0,44,0,29,0,249,255,201,255, +208,255,33,0,138,0,231,0,45,1,71,1,71,1,91,1,105,1,62,1,248,0,193,0,154,0,139,0,145,0,129,0, +86,0,73,0,109,0,148,0,167,0,185,0,221,0,12,1,53,1,69,1,42,1,244,0,210,0,204,0,183,0,135,0, +94,0,78,0,93,0,141,0,187,0,203,0,208,0,207,0,178,0,117,0,36,0,219,255,192,255,208,255,226,255,248,255, +22,0,36,0,54,0,111,0,157,0,145,0,101,0,30,0,182,255,88,255,18,255,211,254,179,254,188,254,198,254,215,254, +254,254,31,255,70,255,148,255,221,255,8,0,56,0,102,0,130,0,148,0,83,0,115,255,87,254,133,253,20,253,34,253, +182,253,95,254,205,254,45,255,138,255,196,255,243,255,25,0,2,0,176,255,83,255,241,254,144,254,101,254,157,254,36,255, +190,255,60,0,121,0,77,0,216,255,110,255,25,255,181,254,106,254,88,254,101,254,164,254,47,255,170,255,226,255,21,0, +56,0,6,0,182,255,147,255,137,255,144,255,195,255,15,0,102,0,185,0,209,0,154,0,54,0,182,255,70,255,43,255, +80,255,121,255,179,255,250,255,46,0,119,0,221,0,18,1,253,0,195,0,89,0,223,255,181,255,218,255,7,0,72,0, +181,0,23,1,76,1,97,1,72,1,252,0,169,0,114,0,64,0,7,0,237,255,15,0,92,0,190,0,40,1,115,1, +144,1,147,1,121,1,59,1,5,1,229,0,166,0,81,0,22,0,233,255,191,255,198,255,2,0,81,0,173,0,0,1, +35,1,48,1,65,1,75,1,90,1,110,1,67,1,211,0,107,0,29,0,213,255,188,255,231,255,26,0,46,0,41,0, +8,0,212,255,181,255,192,255,206,255,190,255,153,255,89,255,236,254,138,254,127,254,173,254,250,254,158,255,126,0,24,1, +89,1,107,1,49,1,180,0,61,0,176,255,221,254,9,254,103,253,235,252,194,252,12,253,139,253,41,254,245,254,175,255, +21,0,50,0,28,0,227,255,165,255,112,255,83,255,93,255,109,255,111,255,126,255,136,255,111,255,85,255,70,255,34,255, +248,254,220,254,185,254,167,254,206,254,12,255,64,255,120,255,153,255,137,255,108,255,92,255,98,255,135,255,171,255,181,255, +195,255,201,255,174,255,160,255,170,255,147,255,111,255,94,255,49,255,15,255,106,255,25,0,166,0,6,1,43,1,236,0, +132,0,48,0,222,255,159,255,147,255,134,255,90,255,55,255,41,255,59,255,159,255,61,0,185,0,234,0,213,0,145,0, +84,0,76,0,112,0,166,0,211,0,214,0,180,0,145,0,127,0,116,0,106,0,111,0,139,0,160,0,153,0,141,0, +126,0,90,0,53,0,26,0,242,255,215,255,241,255,23,0,56,0,131,0,227,0,38,1,109,1,183,1,182,1,119,1, +69,1,15,1,188,0,123,0,91,0,68,0,75,0,128,0,189,0,227,0,2,1,31,1,41,1,30,1,22,1,13,1, +236,0,200,0,200,0,208,0,195,0,197,0,218,0,223,0,223,0,228,0,198,0,154,0,164,0,223,0,34,1,81,1, +68,1,0,1,198,0,170,0,156,0,161,0,173,0,159,0,137,0,121,0,85,0,41,0,17,0,255,255,250,255,6,0, +248,255,195,255,144,255,100,255,72,255,100,255,160,255,194,255,204,255,200,255,167,255,123,255,92,255,76,255,87,255,124,255, +175,255,1,0,100,0,136,0,83,0,222,255,51,255,146,254,88,254,116,254,171,254,226,254,221,254,127,254,50,254,62,254, +127,254,240,254,129,255,210,255,201,255,163,255,115,255,92,255,161,255,28,0,130,0,180,0,117,0,182,255,250,254,163,254, +141,254,180,254,17,255,81,255,99,255,131,255,166,255,177,255,196,255,219,255,213,255,200,255,191,255,154,255,105,255,94,255, +135,255,221,255,71,0,160,0,208,0,201,0,135,0,46,0,227,255,182,255,179,255,206,255,221,255,226,255,242,255,0,0, +25,0,96,0,182,0,235,0,2,1,245,0,187,0,127,0,105,0,97,0,79,0,51,0,19,0,254,255,251,255,2,0, +28,0,77,0,116,0,132,0,138,0,133,0,142,0,188,0,224,0,211,0,189,0,183,0,183,0,202,0,230,0,222,0, +184,0,141,0,80,0,7,0,217,255,205,255,229,255,32,0,89,0,111,0,108,0,95,0,83,0,85,0,80,0,35,0, +223,255,169,255,149,255,180,255,250,255,67,0,116,0,122,0,88,0,53,0,25,0,236,255,189,255,152,255,99,255,37,255, +4,255,249,254,6,255,65,255,129,255,152,255,159,255,156,255,137,255,142,255,176,255,183,255,160,255,118,255,41,255,222,254, +200,254,200,254,202,254,231,254,4,255,3,255,4,255,20,255,44,255,90,255,128,255,122,255,108,255,96,255,62,255,50,255, +88,255,114,255,120,255,152,255,182,255,180,255,171,255,137,255,76,255,48,255,45,255,14,255,249,254,11,255,40,255,91,255, +182,255,8,0,64,0,107,0,112,0,88,0,73,0,38,0,235,255,215,255,229,255,225,255,226,255,243,255,248,255,2,0, +29,0,26,0,243,255,211,255,191,255,181,255,201,255,233,255,3,0,37,0,72,0,93,0,115,0,137,0,142,0,142,0, +153,0,176,0,199,0,201,0,180,0,154,0,126,0,95,0,74,0,54,0,19,0,250,255,252,255,1,0,19,0,56,0, +77,0,89,0,125,0,155,0,157,0,174,0,203,0,221,0,246,0,15,1,3,1,233,0,210,0,159,0,101,0,86,0, +86,0,78,0,95,0,116,0,100,0,82,0,113,0,179,0,241,0,14,1,252,0,207,0,165,0,134,0,109,0,90,0, +84,0,99,0,129,0,169,0,218,0,255,0,252,0,222,0,180,0,118,0,61,0,40,0,42,0,60,0,100,0,141,0, +166,0,171,0,148,0,118,0,124,0,144,0,148,0,161,0,172,0,131,0,52,0,232,255,169,255,162,255,235,255,62,0, +102,0,95,0,26,0,194,255,175,255,212,255,238,255,7,0,19,0,232,255,168,255,126,255,87,255,69,255,88,255,88,255, +48,255,3,255,206,254,162,254,182,254,236,254,20,255,71,255,133,255,187,255,19,0,126,0,153,0,81,0,212,255,37,255, +119,254,33,254,34,254,81,254,161,254,229,254,247,254,250,254,8,255,26,255,59,255,96,255,97,255,65,255,27,255,9,255, +49,255,144,255,229,255,30,0,77,0,101,0,90,0,58,0,254,255,172,255,101,255,51,255,22,255,28,255,54,255,80,255, +125,255,180,255,212,255,234,255,8,0,44,0,102,0,162,0,165,0,120,0,85,0,60,0,43,0,57,0,63,0,23,0, +233,255,213,255,219,255,11,0,81,0,119,0,141,0,180,0,212,0,221,0,222,0,197,0,123,0,32,0,227,255,226,255, +39,0,151,0,253,0,42,1,5,1,176,0,118,0,114,0,134,0,158,0,160,0,118,0,60,0,26,0,25,0,59,0, +126,0,202,0,8,1,38,1,23,1,231,0,178,0,141,0,136,0,155,0,157,0,117,0,55,0,250,255,226,255,10,0, +85,0,145,0,177,0,164,0,99,0,24,0,233,255,219,255,243,255,33,0,59,0,54,0,32,0,245,255,220,255,2,0, +70,0,123,0,158,0,146,0,69,0,237,255,162,255,85,255,39,255,28,255,252,254,199,254,157,254,122,254,128,254,216,254, +78,255,183,255,42,0,138,0,152,0,108,0,53,0,4,0,243,255,250,255,230,255,172,255,89,255,242,254,167,254,168,254, +222,254,33,255,75,255,35,255,185,254,103,254,77,254,114,254,233,254,117,255,185,255,197,255,199,255,204,255,243,255,76,0, +161,0,209,0,203,0,97,0,176,255,32,255,208,254,184,254,229,254,43,255,58,255,35,255,21,255,20,255,49,255,119,255, +193,255,3,0,70,0,93,0,41,0,227,255,191,255,193,255,230,255,33,0,74,0,63,0,252,255,178,255,153,255,189,255, +251,255,38,0,28,0,224,255,151,255,88,255,71,255,149,255,26,0,122,0,163,0,167,0,126,0,88,0,118,0,178,0, +205,0,187,0,98,0,214,255,135,255,160,255,218,255,18,0,60,0,37,0,213,255,158,255,165,255,236,255,102,0,199,0, +205,0,155,0,91,0,26,0,12,0,87,0,180,0,215,0,202,0,166,0,107,0,54,0,47,0,64,0,74,0,72,0, +35,0,194,255,93,255,56,255,82,255,154,255,6,0,77,0,68,0,60,0,111,0,189,0,26,1,131,1,186,1,174,1, +123,1,252,0,66,0,206,255,213,255,24,0,118,0,183,0,123,0,218,255,84,255,49,255,152,255,130,0,104,1,197,1, +167,1,60,1,182,0,115,0,164,0,1,1,59,1,37,1,189,0,69,0,2,0,251,255,48,0,161,0,2,1,4,1, +172,0,54,0,234,255,247,255,65,0,147,0,205,0,202,0,135,0,76,0,64,0,79,0,117,0,165,0,162,0,101,0, +20,0,183,255,101,255,67,255,65,255,65,255,86,255,119,255,121,255,92,255,74,255,112,255,227,255,124,0,240,0,26,1, +239,0,119,0,246,255,175,255,146,255,124,255,91,255,34,255,223,254,173,254,143,254,151,254,231,254,88,255,175,255,236,255, +14,0,255,255,225,255,217,255,219,255,225,255,222,255,165,255,67,255,6,255,0,255,37,255,121,255,202,255,217,255,195,255, +182,255,168,255,151,255,150,255,146,255,146,255,174,255,196,255,174,255,147,255,150,255,172,255,217,255,37,0,98,0,115,0, +114,0,100,0,54,0,10,0,3,0,3,0,233,255,190,255,131,255,63,255,41,255,90,255,160,255,216,255,9,0,46,0, +86,0,157,0,219,0,219,0,177,0,110,0,13,0,194,255,189,255,208,255,231,255,34,0,99,0,130,0,162,0,211,0, +234,0,219,0,171,0,64,0,194,255,131,255,134,255,166,255,226,255,51,0,117,0,161,0,184,0,178,0,145,0,107,0, +78,0,68,0,85,0,113,0,113,0,61,0,248,255,218,255,241,255,52,0,148,0,219,0,213,0,150,0,68,0,230,255, +160,255,152,255,189,255,244,255,39,0,32,0,208,255,132,255,106,255,108,255,124,255,133,255,115,255,91,255,77,255,50,255, +33,255,67,255,127,255,189,255,1,0,30,0,250,255,205,255,171,255,113,255,51,255,21,255,6,255,10,255,52,255,84,255, +75,255,72,255,101,255,134,255,148,255,128,255,72,255,22,255,10,255,17,255,31,255,52,255,59,255,57,255,81,255,139,255, +203,255,246,255,1,0,230,255,178,255,130,255,117,255,144,255,186,255,213,255,217,255,206,255,198,255,200,255,205,255,211,255, +222,255,221,255,197,255,178,255,186,255,209,255,241,255,13,0,13,0,245,255,224,255,200,255,185,255,221,255,40,0,90,0, +102,0,92,0,69,0,63,0,103,0,159,0,183,0,164,0,95,0,1,0,210,255,244,255,51,0,87,0,87,0,62,0, +28,0,252,255,237,255,255,255,57,0,117,0,135,0,116,0,88,0,66,0,80,0,142,0,202,0,212,0,178,0,111,0, +31,0,247,255,16,0,64,0,100,0,121,0,99,0,28,0,220,255,198,255,198,255,220,255,1,0,3,0,227,255,208,255, +207,255,217,255,7,0,73,0,113,0,131,0,135,0,93,0,26,0,254,255,15,0,46,0,88,0,138,0,184,0,220,0, +228,0,190,0,118,0,36,0,226,255,208,255,235,255,11,0,26,0,28,0,19,0,17,0,50,0,108,0,177,0,255,0, +61,1,72,1,45,1,5,1,213,0,165,0,132,0,114,0,105,0,95,0,70,0,43,0,46,0,93,0,165,0,230,0, +253,0,235,0,208,0,193,0,185,0,180,0,166,0,132,0,88,0,51,0,38,0,50,0,65,0,69,0,72,0,75,0, +63,0,49,0,44,0,29,0,17,0,22,0,13,0,222,255,173,255,143,255,135,255,173,255,230,255,238,255,203,255,169,255, +150,255,178,255,26,0,134,0,168,0,151,0,100,0,6,0,179,255,151,255,134,255,102,255,73,255,26,255,214,254,192,254, +249,254,84,255,187,255,29,0,81,0,78,0,46,0,249,255,195,255,175,255,163,255,114,255,44,255,240,254,197,254,199,254, +19,255,129,255,219,255,9,0,254,255,210,255,205,255,251,255,26,0,17,0,244,255,189,255,113,255,61,255,42,255,37,255, +67,255,139,255,193,255,203,255,199,255,195,255,201,255,248,255,48,0,48,0,250,255,180,255,96,255,23,255,10,255,42,255, +77,255,128,255,201,255,2,0,37,0,80,0,123,0,141,0,139,0,108,0,30,0,194,255,138,255,110,255,87,255,84,255, +107,255,140,255,182,255,230,255,5,0,23,0,46,0,61,0,52,0,37,0,17,0,242,255,232,255,254,255,15,0,21,0, +35,0,38,0,20,0,25,0,62,0,95,0,114,0,113,0,75,0,21,0,249,255,255,255,37,0,102,0,154,0,149,0, +91,0,7,0,186,255,157,255,181,255,226,255,0,0,0,0,232,255,209,255,198,255,194,255,201,255,226,255,250,255,0,0, +248,255,227,255,205,255,198,255,197,255,186,255,182,255,186,255,186,255,194,255,217,255,230,255,224,255,218,255,208,255,188,255, +178,255,186,255,199,255,210,255,205,255,165,255,106,255,69,255,80,255,134,255,200,255,243,255,251,255,225,255,176,255,132,255, +118,255,124,255,133,255,146,255,157,255,154,255,149,255,167,255,205,255,248,255,30,0,55,0,57,0,42,0,21,0,0,0, +247,255,248,255,246,255,231,255,207,255,177,255,155,255,162,255,206,255,1,0,17,0,243,255,210,255,213,255,255,255,61,0, +116,0,133,0,100,0,38,0,226,255,168,255,155,255,202,255,15,0,72,0,110,0,107,0,61,0,25,0,33,0,62,0, +93,0,116,0,95,0,29,0,228,255,200,255,195,255,230,255,37,0,78,0,93,0,103,0,96,0,70,0,53,0,44,0, +36,0,38,0,39,0,21,0,4,0,9,0,25,0,52,0,102,0,149,0,162,0,151,0,129,0,96,0,62,0,47,0, +40,0,24,0,7,0,2,0,6,0,11,0,13,0,1,0,234,255,239,255,27,0,77,0,106,0,111,0,88,0,62,0, +71,0,104,0,120,0,114,0,90,0,40,0,254,255,255,255,26,0,61,0,117,0,167,0,166,0,134,0,106,0,90,0, +95,0,123,0,140,0,129,0,107,0,75,0,45,0,55,0,106,0,170,0,231,0,14,1,7,1,219,0,171,0,129,0, +113,0,141,0,178,0,177,0,151,0,118,0,77,0,60,0,96,0,152,0,192,0,222,0,220,0,172,0,128,0,131,0, +155,0,188,0,232,0,242,0,191,0,125,0,74,0,41,0,46,0,77,0,84,0,65,0,47,0,23,0,9,0,38,0, +87,0,117,0,120,0,88,0,19,0,206,255,163,255,136,255,129,255,143,255,155,255,165,255,197,255,241,255,28,0,77,0, +104,0,85,0,45,0,254,255,184,255,110,255,55,255,6,255,225,254,223,254,248,254,28,255,87,255,168,255,238,255,22,0, +30,0,9,0,231,255,203,255,171,255,118,255,56,255,255,254,208,254,192,254,226,254,31,255,85,255,134,255,182,255,215,255, +237,255,3,0,9,0,249,255,221,255,173,255,110,255,76,255,71,255,60,255,57,255,82,255,99,255,103,255,121,255,146,255, +170,255,221,255,22,0,41,0,32,0,3,0,192,255,127,255,111,255,114,255,112,255,121,255,123,255,105,255,110,255,155,255, +215,255,34,0,109,0,141,0,130,0,105,0,60,0,255,255,210,255,182,255,157,255,143,255,130,255,95,255,61,255,62,255, +102,255,198,255,84,0,191,0,203,0,157,0,107,0,71,0,65,0,80,0,57,0,233,255,150,255,99,255,91,255,152,255, +5,0,84,0,113,0,128,0,139,0,144,0,163,0,164,0,108,0,34,0,238,255,196,255,169,255,172,255,176,255,175,255, +199,255,239,255,12,0,38,0,50,0,24,0,252,255,252,255,253,255,244,255,231,255,197,255,151,255,128,255,117,255,94,255, +75,255,76,255,94,255,137,255,194,255,224,255,219,255,200,255,187,255,197,255,222,255,225,255,176,255,99,255,41,255,30,255, +56,255,92,255,113,255,118,255,124,255,157,255,213,255,11,0,49,0,55,0,12,0,194,255,132,255,95,255,84,255,104,255, +132,255,138,255,135,255,143,255,165,255,208,255,5,0,34,0,41,0,43,0,23,0,231,255,193,255,176,255,171,255,181,255, +197,255,203,255,219,255,255,255,29,0,43,0,46,0,26,0,245,255,230,255,242,255,5,0,25,0,39,0,35,0,23,0, +10,0,254,255,4,0,36,0,76,0,103,0,102,0,66,0,17,0,242,255,243,255,19,0,66,0,88,0,69,0,35,0, +11,0,3,0,11,0,26,0,30,0,22,0,18,0,20,0,28,0,48,0,79,0,107,0,127,0,135,0,121,0,84,0, +50,0,35,0,29,0,27,0,36,0,43,0,38,0,36,0,45,0,55,0,63,0,67,0,63,0,62,0,74,0,89,0, +99,0,107,0,98,0,68,0,51,0,60,0,77,0,93,0,95,0,74,0,51,0,47,0,52,0,61,0,77,0,87,0, +86,0,84,0,81,0,71,0,71,0,85,0,98,0,106,0,109,0,100,0,100,0,122,0,148,0,165,0,175,0,172,0, +153,0,134,0,123,0,118,0,122,0,128,0,126,0,118,0,112,0,111,0,117,0,131,0,145,0,156,0,163,0,166,0, +169,0,171,0,159,0,139,0,131,0,140,0,151,0,152,0,143,0,130,0,123,0,120,0,120,0,122,0,128,0,133,0, +131,0,119,0,103,0,96,0,103,0,116,0,131,0,140,0,134,0,116,0,94,0,74,0,62,0,57,0,50,0,42,0, +29,0,5,0,236,255,222,255,214,255,207,255,214,255,230,255,237,255,242,255,249,255,248,255,239,255,224,255,198,255,173,255, +167,255,169,255,161,255,150,255,135,255,112,255,101,255,119,255,149,255,175,255,188,255,176,255,142,255,115,255,113,255,128,255, +149,255,157,255,135,255,97,255,75,255,81,255,111,255,154,255,182,255,178,255,154,255,135,255,131,255,144,255,168,255,187,255, +192,255,181,255,151,255,112,255,87,255,88,255,109,255,145,255,178,255,186,255,172,255,161,255,162,255,178,255,203,255,222,255, +221,255,208,255,189,255,171,255,167,255,174,255,175,255,166,255,162,255,166,255,178,255,203,255,227,255,234,255,229,255,223,255, +218,255,214,255,211,255,201,255,183,255,171,255,181,255,211,255,239,255,246,255,239,255,234,255,241,255,6,0,38,0,60,0, +56,0,29,0,246,255,209,255,192,255,200,255,217,255,232,255,249,255,9,0,27,0,50,0,74,0,91,0,100,0,101,0, +92,0,76,0,59,0,41,0,29,0,28,0,28,0,19,0,8,0,3,0,7,0,28,0,61,0,84,0,81,0,63,0, +37,0,8,0,249,255,250,255,251,255,247,255,241,255,232,255,223,255,221,255,217,255,203,255,189,255,180,255,172,255,169,255, +166,255,157,255,146,255,144,255,144,255,146,255,150,255,146,255,133,255,126,255,134,255,152,255,169,255,172,255,154,255,130,255, +117,255,117,255,131,255,150,255,158,255,153,255,142,255,134,255,133,255,146,255,165,255,173,255,168,255,156,255,142,255,132,255, +134,255,153,255,180,255,195,255,190,255,175,255,163,255,164,255,185,255,216,255,238,255,244,255,235,255,216,255,206,255,214,255, +227,255,236,255,239,255,231,255,214,255,207,255,219,255,239,255,3,0,16,0,13,0,255,255,242,255,243,255,2,0,20,0, +34,0,38,0,28,0,12,0,11,0,27,0,49,0,67,0,73,0,59,0,36,0,24,0,26,0,35,0,51,0,58,0, +45,0,31,0,34,0,50,0,72,0,90,0,90,0,71,0,53,0,43,0,46,0,61,0,73,0,72,0,67,0,60,0, +52,0,52,0,64,0,78,0,87,0,92,0,92,0,82,0,69,0,64,0,69,0,73,0,70,0,60,0,43,0,24,0, +17,0,24,0,39,0,57,0,72,0,75,0,75,0,81,0,85,0,82,0,75,0,61,0,43,0,33,0,25,0,13,0, +4,0,5,0,9,0,26,0,56,0,80,0,87,0,81,0,62,0,42,0,40,0,47,0,46,0,44,0,44,0,44,0, +53,0,73,0,91,0,109,0,133,0,149,0,149,0,141,0,124,0,98,0,83,0,88,0,99,0,106,0,109,0,102,0, +94,0,109,0,147,0,183,0,196,0,181,0,144,0,108,0,105,0,136,0,165,0,169,0,150,0,121,0,110,0,137,0, +181,0,210,0,214,0,191,0,147,0,117,0,120,0,137,0,153,0,154,0,130,0,98,0,86,0,91,0,106,0,134,0, +155,0,144,0,117,0,93,0,72,0,69,0,86,0,86,0,62,0,33,0,248,255,205,255,199,255,225,255,241,255,240,255, +228,255,195,255,166,255,176,255,211,255,243,255,5,0,247,255,197,255,150,255,135,255,139,255,153,255,168,255,159,255,129,255, +105,255,98,255,104,255,132,255,170,255,184,255,170,255,151,255,133,255,113,255,109,255,114,255,109,255,99,255,99,255,100,255, +105,255,130,255,160,255,177,255,193,255,205,255,196,255,180,255,175,255,169,255,159,255,152,255,134,255,108,255,98,255,107,255, +122,255,149,255,180,255,194,255,196,255,200,255,199,255,197,255,204,255,203,255,185,255,169,255,161,255,158,255,167,255,185,255, +201,255,214,255,223,255,222,255,218,255,219,255,214,255,204,255,203,255,205,255,200,255,192,255,186,255,181,255,186,255,205,255, +231,255,248,255,1,0,7,0,12,0,16,0,16,0,9,0,252,255,243,255,244,255,249,255,253,255,253,255,243,255,223,255, +206,255,206,255,220,255,242,255,9,0,22,0,25,0,28,0,32,0,39,0,49,0,58,0,61,0,54,0,37,0,16,0, +2,0,0,0,8,0,21,0,28,0,19,0,8,0,6,0,14,0,31,0,45,0,33,0,251,255,213,255,196,255,207,255, +233,255,248,255,242,255,223,255,202,255,194,255,204,255,224,255,237,255,233,255,209,255,175,255,150,255,141,255,137,255,138,255, +140,255,139,255,137,255,139,255,143,255,148,255,156,255,164,255,171,255,181,255,182,255,173,255,166,255,166,255,167,255,168,255, +167,255,156,255,148,255,155,255,168,255,180,255,191,255,194,255,185,255,181,255,192,255,207,255,216,255,216,255,212,255,211,255, +216,255,222,255,225,255,224,255,223,255,225,255,228,255,236,255,247,255,253,255,252,255,250,255,244,255,239,255,248,255,6,0, +8,0,4,0,6,0,5,0,2,0,7,0,16,0,21,0,28,0,39,0,48,0,57,0,64,0,60,0,50,0,43,0, +38,0,32,0,30,0,34,0,40,0,43,0,40,0,42,0,50,0,58,0,62,0,62,0,60,0,56,0,57,0,59,0, +57,0,51,0,41,0,32,0,32,0,41,0,55,0,69,0,77,0,75,0,67,0,57,0,47,0,44,0,51,0,52,0, +44,0,33,0,20,0,11,0,15,0,28,0,42,0,60,0,76,0,81,0,80,0,78,0,70,0,62,0,65,0,70,0, +69,0,61,0,46,0,28,0,16,0,12,0,15,0,23,0,31,0,38,0,50,0,58,0,51,0,37,0,33,0,42,0, +54,0,56,0,48,0,37,0,26,0,13,0,2,0,1,0,10,0,24,0,35,0,37,0,39,0,49,0,60,0,69,0, +77,0,82,0,78,0,69,0,65,0,68,0,78,0,86,0,86,0,78,0,70,0,69,0,80,0,96,0,109,0,118,0, +121,0,115,0,108,0,108,0,113,0,121,0,125,0,115,0,99,0,93,0,95,0,103,0,120,0,133,0,134,0,135,0, +142,0,148,0,157,0,168,0,161,0,137,0,115,0,98,0,91,0,102,0,120,0,125,0,115,0,100,0,88,0,89,0, +100,0,112,0,117,0,104,0,70,0,31,0,5,0,249,255,253,255,8,0,8,0,246,255,222,255,201,255,190,255,203,255, +233,255,255,255,2,0,242,255,213,255,184,255,167,255,165,255,171,255,180,255,177,255,153,255,120,255,102,255,106,255,127,255, +158,255,183,255,188,255,177,255,163,255,152,255,147,255,150,255,154,255,149,255,139,255,127,255,117,255,122,255,146,255,170,255, +184,255,196,255,196,255,185,255,184,255,193,255,193,255,186,255,173,255,149,255,132,255,134,255,142,255,148,255,159,255,169,255, +172,255,183,255,199,255,205,255,206,255,207,255,201,255,194,255,192,255,186,255,174,255,168,255,166,255,168,255,180,255,194,255, +201,255,206,255,210,255,209,255,206,255,208,255,205,255,195,255,184,255,177,255,175,255,179,255,189,255,203,255,216,255,224,255, +228,255,235,255,246,255,0,0,2,0,254,255,249,255,243,255,235,255,230,255,228,255,221,255,216,255,221,255,230,255,240,255, +253,255,8,0,10,0,10,0,14,0,18,0,23,0,28,0,31,0,31,0,28,0,27,0,32,0,42,0,53,0,65,0, +68,0,57,0,50,0,59,0,70,0,70,0,64,0,48,0,27,0,16,0,14,0,14,0,27,0,46,0,50,0,35,0, +19,0,6,0,2,0,13,0,26,0,27,0,15,0,240,255,199,255,172,255,171,255,185,255,203,255,214,255,207,255,190,255, +176,255,171,255,177,255,192,255,205,255,207,255,198,255,178,255,158,255,152,255,163,255,181,255,194,255,193,255,182,255,171,255, +167,255,171,255,185,255,196,255,190,255,166,255,140,255,130,255,146,255,175,255,199,255,209,255,210,255,208,255,212,255,224,255, +241,255,255,255,2,0,250,255,238,255,224,255,208,255,200,255,207,255,220,255,232,255,249,255,5,0,8,0,11,0,17,0, +22,0,28,0,34,0,30,0,23,0,15,0,4,0,253,255,7,0,22,0,30,0,36,0,42,0,44,0,48,0,55,0, +57,0,55,0,51,0,41,0,27,0,13,0,4,0,4,0,11,0,17,0,19,0,17,0,11,0,11,0,23,0,36,0, +43,0,46,0,44,0,38,0,32,0,27,0,20,0,12,0,9,0,14,0,26,0,36,0,34,0,25,0,15,0,14,0, +26,0,43,0,48,0,47,0,48,0,39,0,22,0,15,0,21,0,25,0,29,0,33,0,33,0,30,0,32,0,37,0, +48,0,63,0,71,0,64,0,49,0,34,0,22,0,17,0,22,0,29,0,30,0,24,0,19,0,16,0,18,0,25,0, +31,0,33,0,34,0,38,0,35,0,30,0,30,0,36,0,46,0,66,0,88,0,99,0,100,0,93,0,76,0,64,0, +65,0,69,0,70,0,70,0,63,0,52,0,49,0,58,0,75,0,101,0,126,0,136,0,128,0,112,0,96,0,91,0, +98,0,107,0,109,0,100,0,79,0,60,0,59,0,78,0,112,0,144,0,151,0,134,0,112,0,96,0,91,0,101,0, +113,0,110,0,93,0,70,0,44,0,34,0,44,0,59,0,71,0,79,0,78,0,67,0,57,0,52,0,48,0,46,0, +40,0,24,0,2,0,239,255,228,255,223,255,222,255,220,255,214,255,208,255,207,255,214,255,223,255,228,255,230,255,229,255, +221,255,207,255,197,255,192,255,187,255,174,255,160,255,153,255,151,255,149,255,152,255,156,255,156,255,157,255,161,255,157,255, +151,255,152,255,149,255,133,255,121,255,119,255,123,255,134,255,150,255,160,255,166,255,173,255,174,255,176,255,187,255,195,255, +195,255,194,255,190,255,177,255,165,255,157,255,151,255,155,255,166,255,172,255,175,255,184,255,190,255,195,255,209,255,226,255, +238,255,247,255,252,255,246,255,237,255,232,255,228,255,229,255,234,255,235,255,232,255,233,255,235,255,236,255,242,255,252,255, +255,255,250,255,245,255,241,255,237,255,241,255,254,255,8,0,10,0,6,0,251,255,241,255,244,255,3,0,21,0,38,0, +45,0,33,0,16,0,12,0,14,0,17,0,27,0,32,0,23,0,12,0,4,0,251,255,252,255,14,0,27,0,31,0, +37,0,41,0,44,0,50,0,53,0,47,0,44,0,48,0,51,0,52,0,55,0,53,0,44,0,35,0,30,0,30,0, +31,0,32,0,30,0,26,0,20,0,19,0,22,0,22,0,19,0,15,0,6,0,253,255,251,255,254,255,252,255,247,255, +243,255,233,255,224,255,222,255,219,255,212,255,205,255,198,255,191,255,186,255,183,255,181,255,181,255,181,255,182,255,189,255, +195,255,194,255,191,255,191,255,193,255,194,255,193,255,189,255,183,255,180,255,181,255,185,255,194,255,204,255,211,255,209,255, +202,255,203,255,213,255,223,255,227,255,220,255,203,255,186,255,181,255,190,255,210,255,235,255,251,255,250,255,241,255,232,255, +231,255,244,255,3,0,7,0,4,0,253,255,239,255,228,255,233,255,246,255,3,0,15,0,19,0,12,0,1,0,245,255, +239,255,250,255,16,0,30,0,32,0,22,0,2,0,242,255,247,255,13,0,39,0,58,0,60,0,47,0,33,0,25,0, +28,0,44,0,62,0,68,0,57,0,33,0,8,0,250,255,253,255,12,0,33,0,47,0,46,0,36,0,29,0,29,0, +37,0,50,0,56,0,49,0,35,0,17,0,6,0,7,0,18,0,27,0,29,0,22,0,11,0,3,0,1,0,6,0, +16,0,21,0,15,0,5,0,252,255,242,255,236,255,239,255,249,255,5,0,17,0,17,0,8,0,0,0,254,255,253,255, +3,0,16,0,22,0,12,0,253,255,243,255,238,255,236,255,241,255,249,255,250,255,246,255,245,255,248,255,252,255,4,0, +8,0,6,0,5,0,4,0,0,0,254,255,3,0,2,0,253,255,254,255,3,0,10,0,26,0,40,0,40,0,42,0, +49,0,52,0,56,0,64,0,61,0,51,0,50,0,54,0,54,0,57,0,61,0,61,0,66,0,78,0,87,0,95,0, +106,0,109,0,104,0,104,0,111,0,117,0,119,0,117,0,109,0,103,0,105,0,113,0,123,0,134,0,137,0,125,0, +108,0,101,0,105,0,111,0,117,0,118,0,109,0,98,0,93,0,93,0,95,0,98,0,97,0,88,0,80,0,69,0, +55,0,45,0,39,0,33,0,32,0,33,0,28,0,19,0,16,0,10,0,0,0,251,255,244,255,232,255,224,255,218,255, +208,255,202,255,202,255,199,255,191,255,187,255,186,255,188,255,191,255,190,255,181,255,173,255,164,255,155,255,146,255,140,255, +134,255,130,255,127,255,126,255,130,255,138,255,145,255,152,255,158,255,156,255,151,255,151,255,149,255,144,255,140,255,139,255, +140,255,144,255,150,255,160,255,170,255,177,255,181,255,185,255,187,255,191,255,197,255,201,255,200,255,196,255,187,255,174,255, +166,255,172,255,185,255,199,255,210,255,208,255,202,255,204,255,213,255,224,255,237,255,244,255,244,255,240,255,233,255,226,255, +222,255,225,255,229,255,236,255,246,255,250,255,245,255,241,255,242,255,244,255,244,255,248,255,254,255,255,255,250,255,245,255, +243,255,241,255,243,255,250,255,255,255,4,0,11,0,15,0,18,0,24,0,26,0,21,0,20,0,22,0,22,0,23,0, +22,0,10,0,255,255,0,0,5,0,12,0,27,0,38,0,40,0,38,0,36,0,32,0,28,0,27,0,26,0,26,0, +29,0,29,0,26,0,26,0,28,0,34,0,42,0,49,0,54,0,57,0,52,0,40,0,29,0,21,0,13,0,10,0, +11,0,10,0,6,0,4,0,0,0,250,255,247,255,251,255,0,0,2,0,254,255,242,255,226,255,212,255,204,255,199,255, +200,255,203,255,203,255,200,255,202,255,208,255,213,255,214,255,214,255,213,255,212,255,213,255,212,255,208,255,199,255,184,255, +170,255,170,255,186,255,206,255,223,255,228,255,221,255,212,255,207,255,206,255,212,255,224,255,227,255,219,255,213,255,205,255, +195,255,193,255,205,255,223,255,245,255,6,0,7,0,254,255,245,255,240,255,244,255,7,0,26,0,36,0,38,0,32,0, +16,0,3,0,4,0,16,0,33,0,50,0,55,0,45,0,29,0,15,0,11,0,17,0,33,0,47,0,51,0,47,0, +40,0,35,0,36,0,48,0,65,0,76,0,75,0,66,0,53,0,49,0,57,0,62,0,58,0,48,0,36,0,27,0, +29,0,37,0,41,0,39,0,33,0,22,0,12,0,10,0,15,0,23,0,32,0,36,0,33,0,26,0,19,0,14,0, +14,0,19,0,28,0,37,0,35,0,25,0,17,0,10,0,2,0,255,255,4,0,7,0,7,0,6,0,0,0,245,255, +236,255,234,255,240,255,251,255,6,0,9,0,4,0,249,255,237,255,231,255,237,255,252,255,10,0,13,0,4,0,251,255, +245,255,242,255,244,255,247,255,246,255,245,255,245,255,243,255,240,255,241,255,239,255,231,255,228,255,231,255,237,255,247,255, +1,0,7,0,11,0,13,0,10,0,6,0,5,0,6,0,8,0,13,0,16,0,12,0,2,0,250,255,249,255,4,0, +24,0,44,0,57,0,62,0,60,0,57,0,56,0,62,0,70,0,79,0,85,0,89,0,87,0,84,0,83,0,83,0, +84,0,89,0,98,0,107,0,113,0,111,0,103,0,95,0,91,0,90,0,98,0,111,0,115,0,110,0,105,0,103,0, +104,0,111,0,120,0,121,0,119,0,117,0,109,0,101,0,96,0,91,0,85,0,84,0,83,0,78,0,73,0,68,0, +59,0,50,0,43,0,34,0,26,0,20,0,11,0,253,255,239,255,226,255,213,255,202,255,196,255,190,255,180,255,167,255, +157,255,153,255,154,255,160,255,169,255,173,255,171,255,169,255,168,255,168,255,169,255,170,255,163,255,150,255,137,255,124,255, +115,255,114,255,118,255,121,255,122,255,124,255,126,255,129,255,138,255,152,255,164,255,171,255,174,255,171,255,163,255,156,255, +155,255,159,255,169,255,182,255,190,255,190,255,186,255,182,255,185,255,199,255,220,255,237,255,247,255,244,255,228,255,208,255, +197,255,199,255,211,255,227,255,236,255,233,255,221,255,207,255,201,255,213,255,237,255,3,0,15,0,13,0,0,0,241,255, +236,255,239,255,249,255,3,0,5,0,0,0,251,255,245,255,241,255,244,255,251,255,255,255,3,0,4,0,0,0,249,255, +244,255,241,255,238,255,237,255,238,255,236,255,233,255,232,255,236,255,244,255,254,255,3,0,1,0,251,255,246,255,245,255, +246,255,247,255,243,255,235,255,225,255,218,255,213,255,214,255,221,255,231,255,237,255,240,255,238,255,235,255,236,255,243,255, +254,255,11,0,23,0,26,0,21,0,13,0,8,0,9,0,17,0,26,0,29,0,24,0,11,0,255,255,254,255,6,0, +16,0,25,0,29,0,23,0,14,0,10,0,12,0,17,0,25,0,29,0,27,0,23,0,21,0,18,0,17,0,23,0, +32,0,38,0,38,0,34,0,26,0,14,0,4,0,4,0,9,0,13,0,16,0,11,0,2,0,251,255,250,255,253,255, +8,0,21,0,23,0,15,0,8,0,2,0,1,0,10,0,25,0,33,0,34,0,30,0,22,0,16,0,19,0,26,0, +32,0,35,0,33,0,26,0,23,0,27,0,32,0,33,0,32,0,29,0,26,0,28,0,33,0,40,0,45,0,46,0, +43,0,41,0,43,0,50,0,57,0,62,0,63,0,59,0,50,0,39,0,31,0,28,0,29,0,31,0,32,0,33,0, +29,0,21,0,14,0,12,0,12,0,16,0,22,0,23,0,21,0,16,0,6,0,252,255,249,255,255,255,6,0,14,0, +19,0,15,0,6,0,0,0,252,255,251,255,253,255,255,255,251,255,245,255,238,255,230,255,225,255,224,255,223,255,224,255, +231,255,237,255,238,255,237,255,236,255,233,255,232,255,234,255,238,255,242,255,246,255,245,255,239,255,233,255,232,255,236,255, +238,255,239,255,238,255,237,255,234,255,230,255,230,255,233,255,233,255,229,255,226,255,226,255,228,255,231,255,236,255,238,255, +237,255,236,255,233,255,233,255,237,255,241,255,241,255,243,255,244,255,238,255,229,255,227,255,231,255,235,255,239,255,242,255, +239,255,235,255,231,255,228,255,229,255,234,255,237,255,234,255,232,255,229,255,228,255,229,255,233,255,234,255,234,255,236,255, +238,255,242,255,245,255,248,255,249,255,248,255,245,255,242,255,241,255,243,255,246,255,249,255,249,255,247,255,244,255,243,255, +243,255,248,255,255,255,4,0,4,0,2,0,255,255,255,255,2,0,6,0,10,0,12,0,13,0,12,0,12,0,15,0, +18,0,19,0,18,0,19,0,19,0,18,0,17,0,17,0,17,0,18,0,21,0,22,0,21,0,21,0,19,0,17,0, +19,0,22,0,23,0,22,0,20,0,16,0,13,0,12,0,15,0,20,0,24,0,23,0,16,0,11,0,11,0,10,0, +11,0,13,0,15,0,14,0,10,0,4,0,255,255,254,255,255,255,1,0,4,0,3,0,0,0,254,255,255,255,3,0, +6,0,8,0,8,0,6,0,3,0,1,0,2,0,6,0,9,0,7,0,4,0,4,0,6,0,8,0,12,0,17,0, +18,0,15,0,13,0,11,0,10,0,11,0,14,0,15,0,16,0,16,0,15,0,14,0,17,0,20,0,22,0,27,0, +30,0,29,0,25,0,23,0,21,0,20,0,21,0,21,0,19,0,18,0,17,0,17,0,18,0,21,0,24,0,24,0, +23,0,22,0,21,0,19,0,17,0,16,0,16,0,13,0,9,0,4,0,2,0,2,0,2,0,4,0,7,0,8,0, +7,0,5,0,4,0,5,0,7,0,6,0,4,0,2,0,0,0,254,255,255,255,0,0,255,255,254,255,252,255,252,255, +254,255,2,0,4,0,1,0,253,255,250,255,247,255,247,255,251,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255, +255,255,0,0,1,0,0,0,255,255,254,255,251,255,247,255,249,255,253,255,255,255,254,255,252,255,253,255,254,255,254,255, +253,255,253,255,254,255,253,255,251,255,250,255,251,255,251,255,250,255,251,255,253,255,254,255,251,255,249,255,249,255,251,255, +251,255,251,255,249,255,244,255,238,255,236,255,238,255,241,255,245,255,247,255,246,255,244,255,243,255,243,255,244,255,247,255, +251,255,252,255,250,255,248,255,245,255,242,255,242,255,245,255,246,255,248,255,251,255,250,255,247,255,244,255,243,255,243,255, +246,255,250,255,251,255,251,255,250,255,250,255,249,255,250,255,252,255,253,255,253,255,254,255,254,255,254,255,252,255,249,255, +247,255,247,255,247,255,246,255,246,255,247,255,248,255,246,255,242,255,240,255,240,255,243,255,245,255,247,255,249,255,250,255, +250,255,249,255,248,255,250,255,252,255,254,255,252,255,250,255,248,255,246,255,245,255,246,255,249,255,249,255,247,255,245,255, +243,255,242,255,243,255,244,255,244,255,244,255,241,255,237,255,237,255,240,255,243,255,245,255,249,255,252,255,251,255,249,255, +250,255,252,255,254,255,2,0,4,0,3,0,255,255,253,255,252,255,253,255,254,255,255,255,0,0,3,0,2,0,254,255, +252,255,254,255,255,255,1,0,3,0,5,0,5,0,3,0,1,0,2,0,5,0,7,0,7,0,7,0,8,0,7,0, +6,0,6,0,6,0,6,0,7,0,6,0,6,0,7,0,8,0,7,0,7,0,4,0,1,0,254,255,253,255,253,255, +255,255,1,0,0,0,253,255,251,255,250,255,250,255,251,255,251,255,250,255,246,255,243,255,241,255,238,255,236,255,235,255, +234,255,235,255,238,255,239,255,239,255,238,255,236,255,232,255,231,255,231,255,233,255,234,255,235,255,234,255,231,255,229,255, +231,255,233,255,235,255,236,255,236,255,234,255,232,255,230,255,229,255,230,255,231,255,232,255,231,255,230,255,230,255,234,255, +237,255,239,255,240,255,242,255,242,255,240,255,240,255,242,255,245,255,248,255,250,255,252,255,253,255,253,255,251,255,252,255, +0,0,4,0,5,0,6,0,6,0,2,0,255,255,0,0,4,0,8,0,10,0,11,0,10,0,8,0,6,0,6,0, +9,0,14,0,16,0,16,0,16,0,14,0,11,0,11,0,15,0,17,0,17,0,17,0,16,0,14,0,14,0,15,0, +17,0,19,0,19,0,19,0,18,0,17,0,18,0,19,0,21,0,20,0,17,0,13,0,10,0,10,0,13,0,15,0, +15,0,12,0,9,0,6,0,5,0,6,0,9,0,13,0,15,0,14,0,9,0,6,0,5,0,5,0,7,0,10,0, +11,0,8,0,4,0,1,0,0,0,2,0,6,0,8,0,9,0,9,0,8,0,8,0,10,0,10,0,9,0,8,0, +10,0,10,0,9,0,10,0,12,0,16,0,20,0,23,0,25,0,25,0,27,0,30,0,33,0,38,0,42,0,43,0, +40,0,37,0,37,0,41,0,47,0,52,0,55,0,54,0,50,0,48,0,50,0,54,0,57,0,59,0,58,0,55,0, +50,0,46,0,45,0,48,0,51,0,52,0,52,0,50,0,46,0,42,0,42,0,46,0,48,0,47,0,44,0,39,0, +32,0,27,0,25,0,25,0,25,0,24,0,20,0,17,0,14,0,11,0,7,0,7,0,7,0,5,0,1,0,253,255, +248,255,243,255,240,255,239,255,238,255,237,255,235,255,231,255,228,255,226,255,225,255,224,255,225,255,226,255,225,255,223,255, +222,255,221,255,222,255,223,255,222,255,220,255,220,255,222,255,223,255,223,255,222,255,221,255,222,255,223,255,225,255,227,255, +229,255,230,255,230,255,229,255,228,255,227,255,229,255,231,255,233,255,236,255,238,255,236,255,234,255,235,255,237,255,242,255, +248,255,251,255,251,255,250,255,250,255,248,255,249,255,251,255,253,255,252,255,252,255,251,255,248,255,245,255,245,255,246,255, +248,255,251,255,252,255,251,255,250,255,250,255,249,255,246,255,245,255,246,255,246,255,245,255,242,255,241,255,240,255,239,255, +238,255,239,255,241,255,241,255,239,255,237,255,236,255,234,255,231,255,229,255,229,255,230,255,229,255,228,255,227,255,226,255, +224,255,223,255,224,255,225,255,227,255,230,255,232,255,230,255,228,255,227,255,227,255,228,255,228,255,228,255,229,255,230,255, +227,255,223,255,223,255,225,255,227,255,231,255,235,255,237,255,236,255,234,255,233,255,232,255,235,255,239,255,240,255,241,255, +241,255,239,255,237,255,237,255,239,255,241,255,244,255,246,255,246,255,243,255,241,255,240,255,241,255,247,255,253,255,253,255, +251,255,249,255,246,255,245,255,245,255,247,255,251,255,253,255,252,255,249,255,248,255,249,255,252,255,1,0,6,0,8,0, +8,0,5,0,1,0,255,255,1,0,5,0,8,0,9,0,8,0,5,0,3,0,3,0,7,0,13,0,19,0,21,0, +18,0,14,0,13,0,14,0,18,0,23,0,24,0,22,0,20,0,17,0,14,0,16,0,22,0,26,0,29,0,31,0, +30,0,27,0,24,0,23,0,26,0,30,0,33,0,30,0,25,0,23,0,21,0,20,0,23,0,27,0,29,0,29,0, +27,0,27,0,26,0,25,0,26,0,29,0,30,0,29,0,26,0,24,0,24,0,25,0,26,0,27,0,27,0,26,0, +25,0,23,0,24,0,28,0,31,0,32,0,32,0,30,0,29,0,31,0,34,0,35,0,36,0,37,0,36,0,33,0, +33,0,35,0,36,0,36,0,36,0,33,0,30,0,29,0,29,0,28,0,29,0,30,0,30,0,28,0,26,0,24,0, +23,0,24,0,25,0,24,0,22,0,21,0,17,0,14,0,12,0,10,0,9,0,8,0,8,0,6,0,2,0,255,255, +252,255,251,255,251,255,250,255,247,255,243,255,240,255,236,255,232,255,228,255,226,255,225,255,223,255,222,255,222,255,222,255, +222,255,222,255,224,255,226,255,228,255,228,255,226,255,223,255,220,255,217,255,212,255,211,255,212,255,213,255,213,255,214,255, +215,255,214,255,216,255,220,255,224,255,228,255,231,255,231,255,228,255,226,255,225,255,225,255,229,255,233,255,235,255,235,255, +236,255,236,255,234,255,236,255,241,255,245,255,247,255,247,255,246,255,244,255,243,255,243,255,243,255,245,255,247,255,249,255, +250,255,250,255,249,255,249,255,253,255,2,0,4,0,5,0,4,0,2,0,0,0,254,255,254,255,255,255,255,255,253,255, +250,255,248,255,246,255,245,255,245,255,245,255,244,255,245,255,245,255,244,255,242,255,242,255,242,255,242,255,244,255,246,255, +246,255,246,255,246,255,244,255,243,255,243,255,242,255,241,255,242,255,243,255,241,255,240,255,239,255,237,255,237,255,238,255, +240,255,240,255,239,255,237,255,235,255,236,255,239,255,240,255,240,255,241,255,242,255,242,255,244,255,246,255,247,255,248,255, +249,255,249,255,249,255,249,255,248,255,246,255,247,255,249,255,250,255,252,255,252,255,253,255,255,255,1,0,4,0,7,0, +10,0,12,0,13,0,13,0,12,0,11,0,14,0,17,0,18,0,17,0,17,0,17,0,17,0,17,0,18,0,21,0, +23,0,23,0,20,0,20,0,21,0,20,0,20,0,22,0,23,0,22,0,21,0,21,0,21,0,21,0,22,0,23,0, +22,0,22,0,22,0,21,0,22,0,22,0,20,0,18,0,19,0,21,0,23,0,25,0,25,0,24,0,23,0,24,0, +24,0,24,0,25,0,26,0,27,0,26,0,24,0,23,0,23,0,23,0,24,0,25,0,26,0,27,0,27,0,27,0, +25,0,24,0,24,0,24,0,23,0,24,0,25,0,23,0,21,0,20,0,19,0,20,0,22,0,23,0,23,0,23,0, +22,0,20,0,20,0,22,0,23,0,22,0,21,0,21,0,20,0,21,0,22,0,22,0,23,0,26,0,27,0,26,0, +26,0,26,0,24,0,22,0,21,0,21,0,22,0,23,0,22,0,21,0,21,0,22,0,21,0,22,0,25,0,26,0, +24,0,23,0,21,0,18,0,16,0,16,0,18,0,20,0,18,0,14,0,12,0,9,0,8,0,7,0,5,0,2,0, +255,255,253,255,251,255,249,255,246,255,246,255,245,255,245,255,243,255,239,255,236,255,233,255,229,255,225,255,226,255,227,255, +227,255,226,255,226,255,225,255,225,255,225,255,225,255,225,255,225,255,225,255,221,255,218,255,215,255,213,255,212,255,213,255, +215,255,215,255,217,255,218,255,217,255,216,255,216,255,218,255,219,255,222,255,224,255,224,255,222,255,221,255,221,255,223,255, +224,255,225,255,225,255,226,255,225,255,223,255,222,255,223,255,226,255,229,255,231,255,232,255,232,255,230,255,230,255,231,255, +234,255,237,255,238,255,238,255,236,255,234,255,234,255,237,255,240,255,244,255,249,255,250,255,247,255,246,255,245,255,244,255, +245,255,248,255,248,255,247,255,245,255,242,255,238,255,238,255,241,255,244,255,245,255,246,255,246,255,246,255,246,255,246,255, +246,255,247,255,247,255,245,255,244,255,244,255,244,255,243,255,242,255,242,255,242,255,242,255,243,255,243,255,244,255,244,255, +243,255,242,255,241,255,240,255,239,255,241,255,242,255,242,255,240,255,239,255,238,255,238,255,239,255,241,255,244,255,246,255, +247,255,247,255,246,255,243,255,243,255,246,255,250,255,253,255,253,255,252,255,251,255,249,255,251,255,254,255,1,0,3,0, +4,0,2,0,0,0,0,0,255,255,255,255,2,0,5,0,7,0,8,0,8,0,7,0,8,0,12,0,16,0,16,0, +15,0,14,0,12,0,10,0,12,0,14,0,15,0,16,0,16,0,17,0,18,0,19,0,20,0,22,0,24,0,25,0, +24,0,23,0,21,0,19,0,19,0,20,0,21,0,23,0,25,0,25,0,25,0,24,0,25,0,26,0,29,0,30,0, +30,0,29,0,26,0,25,0,24,0,23,0,21,0,22,0,24,0,24,0,24,0,25,0,25,0,24,0,23,0,23,0, +23,0,23,0,24,0,24,0,23,0,23,0,22,0,21,0,21,0,22,0,23,0,24,0,26,0,25,0,20,0,17,0, +16,0,17,0,18,0,19,0,20,0,18,0,17,0,15,0,15,0,16,0,18,0,19,0,20,0,21,0,19,0,17,0, +15,0,14,0,12,0,13,0,15,0,17,0,16,0,12,0,9,0,8,0,9,0,11,0,13,0,15,0,14,0,14,0, +14,0,15,0,16,0,16,0,16,0,15,0,15,0,15,0,15,0,15,0,16,0,18,0,19,0,19,0,17,0,16,0, +16,0,18,0,19,0,18,0,16,0,14,0,10,0,8,0,9,0,10,0,11,0,11,0,9,0,5,0,3,0,1,0, +255,255,0,0,3,0,4,0,3,0,0,0,251,255,247,255,245,255,245,255,245,255,244,255,241,255,237,255,233,255,230,255, +229,255,230,255,232,255,234,255,235,255,234,255,232,255,230,255,229,255,229,255,228,255,228,255,226,255,224,255,222,255,221,255, +221,255,221,255,223,255,225,255,225,255,224,255,224,255,224,255,225,255,226,255,225,255,225,255,226,255,225,255,223,255,225,255, +229,255,231,255,233,255,235,255,235,255,234,255,235,255,238,255,239,255,241,255,242,255,241,255,239,255,239,255,239,255,240,255, +243,255,244,255,244,255,244,255,244,255,243,255,242,255,243,255,245,255,246,255,247,255,248,255,248,255,247,255,247,255,248,255, +250,255,253,255,254,255,255,255,255,255,254,255,252,255,252,255,252,255,252,255,252,255,251,255,249,255,247,255,246,255,245,255, +246,255,246,255,246,255,244,255,243,255,243,255,242,255,242,255,242,255,242,255,242,255,244,255,244,255,243,255,240,255,239,255, +239,255,240,255,241,255,241,255,241,255,241,255,240,255,238,255,238,255,240,255,240,255,240,255,241,255,242,255,241,255,240,255, +239,255,239,255,240,255,243,255,245,255,244,255,245,255,247,255,247,255,249,255,251,255,253,255,254,255,255,255,255,255,255,255, +254,255,255,255,0,0,2,0,4,0,5,0,6,0,6,0,7,0,8,0,11,0,12,0,13,0,13,0,13,0,12,0, +11,0,11,0,13,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,17,0,19,0,20,0,20,0,20,0,19,0, +18,0,18,0,18,0,19,0,20,0,21,0,20,0,20,0,21,0,21,0,21,0,22,0,22,0,22,0,22,0,22,0, +20,0,20,0,21,0,22,0,21,0,21,0,21,0,21,0,22,0,23,0,23,0,23,0,23,0,22,0,20,0,20,0, +21,0,20,0,19,0,19,0,20,0,20,0,19,0,19,0,19,0,19,0,20,0,21,0,20,0,17,0,15,0,14,0, +14,0,14,0,15,0,15,0,13,0,11,0,11,0,10,0,9,0,11,0,13,0,13,0,12,0,11,0,10,0,8,0, +8,0,7,0,7,0,7,0,7,0,7,0,5,0,4,0,3,0,4,0,6,0,7,0,9,0,10,0,10,0,8,0, +8,0,10,0,10,0,10,0,10,0,9,0,8,0,8,0,9,0,10,0,10,0,10,0,10,0,9,0,8,0,8,0, +8,0,9,0,9,0,8,0,7,0,5,0,4,0,5,0,7,0,9,0,11,0,10,0,9,0,7,0,5,0,4,0, +4,0,4,0,4,0,3,0,1,0,255,255,252,255,250,255,249,255,249,255,250,255,250,255,248,255,244,255,240,255,237,255, +235,255,236,255,239,255,240,255,238,255,235,255,233,255,232,255,231,255,233,255,235,255,235,255,234,255,232,255,231,255,229,255, +227,255,226,255,227,255,227,255,228,255,228,255,228,255,226,255,225,255,226,255,228,255,229,255,230,255,232,255,233,255,233,255, +234,255,235,255,235,255,236,255,237,255,238,255,239,255,240,255,240,255,241,255,241,255,242,255,243,255,244,255,244,255,245,255, +247,255,247,255,246,255,247,255,247,255,246,255,246,255,246,255,247,255,247,255,248,255,249,255,250,255,251,255,253,255,254,255, +254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,254,255,253,255,252,255,252,255,253,255,254,255,254,255,255,255, +254,255,253,255,252,255,251,255,251,255,252,255,252,255,252,255,253,255,253,255,253,255,252,255,253,255,254,255,255,255,254,255, +254,255,252,255,251,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,249,255,250,255,251,255,250,255,250,255, +250,255,250,255,251,255,251,255,251,255,251,255,252,255,252,255,254,255,0,0,0,0,0,0,1,0,2,0,1,0,0,0, +1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,1,0,3,0,5,0,7,0,7,0,7,0,7,0, +7,0,8,0,10,0,12,0,13,0,13,0,12,0,11,0,10,0,10,0,11,0,12,0,13,0,13,0,13,0,12,0, +11,0,11,0,12,0,12,0,13,0,13,0,12,0,11,0,10,0,11,0,12,0,14,0,16,0,17,0,16,0,16,0, +15,0,16,0,16,0,16,0,16,0,16,0,15,0,14,0,13,0,13,0,12,0,13,0,14,0,14,0,14,0,14,0, +13,0,11,0,11,0,11,0,11,0,12,0,12,0,11,0,11,0,10,0,10,0,9,0,10,0,10,0,10,0,10,0, +9,0,7,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,3,0,3,0,4,0,4,0, +5,0,5,0,3,0,3,0,2,0,2,0,3,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0,3,0,4,0, +4,0,3,0,3,0,2,0,2,0,3,0,4,0,5,0,6,0,6,0,5,0,5,0,4,0,5,0,6,0,6,0, +6,0,8,0,8,0,6,0,6,0,5,0,5,0,5,0,7,0,8,0,7,0,6,0,5,0,4,0,4,0,5,0, +5,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,252,255,251,255,250,255,250,255, +250,255,249,255,247,255,246,255,244,255,243,255,243,255,242,255,242,255,241,255,240,255,239,255,238,255,238,255,237,255,237,255, +237,255,236,255,236,255,236,255,235,255,235,255,235,255,235,255,234,255,233,255,233,255,233,255,233,255,234,255,235,255,236,255, +236,255,236,255,236,255,237,255,237,255,239,255,240,255,242,255,241,255,241,255,241,255,242,255,242,255,245,255,247,255,248,255, +247,255,247,255,247,255,247,255,248,255,250,255,251,255,252,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0, +1,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,2,0,1,0,0,0,2,0,3,0,3,0,3,0,3,0, +2,0,2,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255, +254,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,251,255,251,255,252,255,251,255,251,255,252,255,252,255,251,255, +251,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255,251,255,252,255,252,255,253,255, +253,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0, +4,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,8,0,8,0,8,0,8,0,9,0, +9,0,10,0,10,0,11,0,10,0,10,0,10,0,11,0,11,0,11,0,11,0,11,0,10,0,10,0,11,0,11,0, +10,0,10,0,10,0,10,0,10,0,11,0,11,0,10,0,9,0,9,0,10,0,10,0,10,0,10,0,10,0,10,0, +10,0,11,0,11,0,10,0,10,0,10,0,10,0,9,0,9,0,9,0,8,0,8,0,9,0,9,0,9,0,9,0, +9,0,8,0,8,0,7,0,8,0,8,0,8,0,8,0,7,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0, +6,0,5,0,5,0,5,0,5,0,4,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0, +0,0,1,0,2,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,253,255,252,255,251,255,251,255,251,255,252,255,252,255,251,255,250,255,249,255,249,255,249,255, +249,255,249,255,248,255,247,255,246,255,246,255,246,255,246,255,246,255,246,255,246,255,245,255,245,255,245,255,246,255,246,255, +246,255,246,255,246,255,245,255,243,255,243,255,244,255,245,255,246,255,247,255,247,255,246,255,246,255,246,255,247,255,247,255, +247,255,248,255,248,255,248,255,248,255,249,255,249,255,249,255,250,255,251,255,251,255,250,255,250,255,251,255,251,255,252,255, +253,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0, +1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255, +254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0, +4,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,4,0,5,0,5,0,5,0, +4,0,4,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,5,0,4,0,3,0,3,0,4,0,4,0,4,0, +5,0,4,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,4,0,5,0,5,0,4,0,4,0, +4,0,4,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0, +3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255,254,255,0,0, +0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +253,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255, +253,255,253,255,252,255,253,255,254,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,252,255,253,255,254,255, +254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0, +0,0,0,0,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,3,0,2,0,1,0,1,0, +2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,1,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0, +2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,2,0,1,0, +2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,254,255,254,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,254,255,255,255,255,255,254,255,254,255,255,255, +255,255,255,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,253,255,253,255,253,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,253,255, +254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0, +255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, +0,0,0,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0, +2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0, +2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,254,255,254,255,255,255,255,255, +255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255, +254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0, +0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0, +1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,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, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,254,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0, +2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0, +1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,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, +255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpighurt1.pcm b/src/client/sound/data/zpighurt1.pcm new file mode 100755 index 0000000..714ef95 --- /dev/null +++ b/src/client/sound/data/zpighurt1.pcm @@ -0,0 +1,1741 @@ +unsigned char PCM_zpighurt1[55638] = { +1,0,0,0,2,0,0,0,68,172,0,0,163,108,0,0,254,255,3,0,254,255,0,0,3,0,253,255,253,255,4,0, +1,0,252,255,2,0,0,0,248,255,253,255,7,0,4,0,254,255,0,0,1,0,253,255,254,255,4,0,5,0,1,0, +1,0,255,255,251,255,255,255,7,0,3,0,249,255,1,0,9,0,253,255,249,255,5,0,3,0,255,255,9,0,5,0, +246,255,2,0,9,0,243,255,250,255,23,0,4,0,237,255,9,0,19,0,244,255,253,255,22,0,252,255,237,255,9,0, +7,0,246,255,13,0,17,0,246,255,2,0,16,0,239,255,239,255,25,0,15,0,243,255,5,0,7,0,241,255,12,0, +31,0,248,255,243,255,27,0,14,0,235,255,255,255,20,0,4,0,255,255,8,0,11,0,13,0,250,255,232,255,14,0, +44,0,253,255,229,255,25,0,38,0,251,255,249,255,11,0,4,0,7,0,8,0,243,255,4,0,38,0,9,0,237,255, +7,0,10,0,3,0,40,0,25,0,209,255,238,255,57,0,21,0,234,255,22,0,12,0,211,255,5,0,67,0,19,0, +253,255,42,0,11,0,202,255,224,255,14,0,32,0,50,0,7,0,197,255,1,0,92,0,29,0,210,255,12,0,33,0, +217,255,223,255,25,0,5,0,2,0,52,0,11,0,186,255,244,255,89,0,51,0,214,255,203,255,253,255,41,0,40,0, +246,255,230,255,18,0,13,0,214,255,244,255,61,0,36,0,244,255,21,0,23,0,209,255,224,255,65,0,68,0,241,255, +222,255,10,0,27,0,3,0,233,255,246,255,50,0,77,0,14,0,206,255,227,255,31,0,54,0,27,0,240,255,245,255, +30,0,11,0,212,255,255,255,79,0,33,0,196,255,232,255,69,0,54,0,233,255,229,255,36,0,40,0,212,255,190,255, +48,0,101,0,245,255,196,255,47,0,58,0,186,255,174,255,19,0,31,0,246,255,11,0,34,0,36,0,34,0,231,255, +168,255,212,255,15,0,3,0,24,0,47,0,216,255,178,255,33,0,60,0,223,255,232,255,18,0,217,255,242,255,91,0, +16,0,140,255,210,255,37,0,241,255,6,0,69,0,239,255,189,255,44,0,70,0,239,255,236,255,248,255,218,255,29,0, +63,0,188,255,193,255,118,0,72,0,138,255,200,255,56,0,225,255,240,255,127,0,35,0,132,255,240,255,94,0,12,0, +246,255,17,0,195,255,201,255,62,0,28,0,221,255,44,0,9,0,136,255,250,255,118,0,212,255,173,255,139,0,106,0, +128,255,189,255,88,0,18,0,240,255,46,0,233,255,217,255,70,0,235,255,93,255,1,0,154,0,25,0,218,255,40,0, +253,255,219,255,43,0,13,0,207,255,29,0,19,0,156,255,232,255,101,0,247,255,169,255,39,0,58,0,180,255,184,255, +46,0,48,0,204,255,164,255,249,255,96,0,42,0,124,255,94,255,23,0,135,0,1,0,142,255,32,0,165,0,240,255, +36,255,156,255,105,0,96,0,231,255,151,255,174,255,37,0,41,0,149,255,179,255,74,0,244,255,149,255,47,0,44,0, +88,255,150,255,63,0,223,255,179,255,28,0,207,255,156,255,62,0,10,0,60,255,150,255,248,255,116,255,190,255,138,0, +25,0,146,255,217,255,137,255,32,255,207,255,28,0,168,255,40,0,175,0,182,255,15,255,159,255,130,255,44,255,86,0, +48,1,226,255,194,254,180,255,181,0,47,0,136,255,206,255,35,0,225,255,104,255,71,255,203,255,92,0,251,255,129,255, +65,0,207,0,251,255,242,255,14,1,89,0,174,254,106,255,201,0,30,0,176,255,145,0,133,0,33,0,168,0,47,0, +250,254,177,255,1,1,163,0,18,0,62,0,60,0,118,0,177,0,215,255,98,255,83,0,176,0,66,0,156,0,230,0, +85,0,16,0,21,0,23,0,219,0,102,1,120,0,193,255,154,0,167,1,103,1,27,0,164,0,137,4,214,5,50,0, +130,252,235,1,207,6,4,3,72,254,11,0,213,4,189,6,28,3,231,253,117,255,175,5,238,5,212,1,107,2,230,4, +243,3,25,3,29,3,138,1,182,1,246,3,105,3,73,2,105,3,198,1,107,254,72,0,61,3,26,1,146,255,235,1, +10,2,254,254,95,253,228,253,101,255,247,255,21,253,75,250,70,252,163,254,40,253,247,251,201,252,109,252,179,251,52,252, +182,251,57,250,82,250,232,251,76,253,207,252,6,250,122,248,51,250,49,251,29,250,140,250,187,251,44,251,35,251,247,251, +44,251,164,250,129,251,195,250,26,250,135,252,128,253,235,250,122,250,212,252,60,253,75,252,41,252,22,252,237,252,47,254, +182,252,51,251,195,253,167,255,90,253,103,252,114,254,135,254,78,253,55,254,0,255,22,254,38,254,43,255,3,255,161,254, +67,255,203,255,144,255,39,255,6,255,123,255,32,0,7,0,129,255,176,255,45,0,162,255,153,254,6,255,195,0,134,1, +205,0,0,0,77,255,204,254,166,255,209,0,64,0,158,255,148,0,110,0,81,254,235,253,208,255,178,0,18,0,173,255, +169,255,201,255,3,0,174,255,58,255,246,255,85,1,156,1,136,0,176,255,174,0,149,2,187,2,102,1,174,1,222,3, +45,5,118,4,131,3,92,4,67,6,93,6,31,5,7,6,53,8,65,8,188,7,146,8,87,8,136,7,24,9,59,10, +126,8,29,8,47,10,121,10,91,9,120,9,123,9,244,8,209,8,131,7,27,6,225,7,237,9,106,8,86,6,209,5, +222,4,119,4,156,5,88,5,181,3,130,3,124,3,66,2,188,1,166,1,161,0,101,0,126,1,128,1,152,255,48,253, +131,252,204,254,166,0,114,254,141,251,174,251,117,252,104,252,157,252,170,251,3,250,193,250,178,251,17,250,168,249,139,251, +95,251,162,249,45,249,207,248,30,249,7,251,135,250,29,248,141,249,212,251,107,249,176,247,96,250,128,251,51,250,238,250, +82,251,25,249,82,248,191,249,7,251,239,252,181,253,151,250,156,248,184,251,23,254,81,252,244,250,201,251,183,252,120,253, +114,253,47,252,98,252,113,254,181,254,52,253,69,253,139,254,197,254,82,254,95,254,238,254,80,255,163,254,95,253,103,253, +254,254,24,0,34,255,30,253,43,253,7,0,34,1,218,253,84,251,113,253,194,255,103,254,91,252,232,252,34,255,216,255, +254,252,231,249,242,251,92,0,9,0,232,252,24,253,222,254,217,254,5,255,192,255,75,255,171,255,124,1,73,1,209,255, +149,0,82,2,166,3,148,5,176,5,51,3,237,3,24,8,99,8,162,5,163,6,96,9,18,9,61,8,47,9,126,10, +7,12,46,12,26,9,171,7,11,11,207,12,147,10,150,10,117,12,124,10,89,7,212,7,164,9,171,10,17,11,243,8, +179,5,181,5,197,6,251,4,210,3,164,5,116,6,51,5,204,3,37,1,124,254,1,0,63,3,127,2,28,255,76,253, +114,253,240,254,96,0,209,254,89,251,115,250,22,252,211,252,238,251,120,250,154,249,188,250,150,252,191,251,205,248,198,247, +137,249,61,251,209,250,56,249,220,248,218,249,5,250,123,249,245,249,36,250,219,248,152,248,50,250,69,251,109,251,100,251, +157,250,18,250,170,250,249,250,236,251,108,254,215,253,206,249,32,250,99,254,95,254,63,252,172,253,13,254,161,251,116,252, +186,254,110,253,78,252,157,253,215,255,17,5,85,7,90,253,84,245,28,0,19,11,118,1,13,245,112,250,110,7,81,11, +96,2,75,245,33,246,61,5,154,8,112,252,104,252,26,9,243,8,50,255,34,254,136,0,248,255,250,2,47,6,45,4, +191,2,216,0,24,252,80,255,174,7,91,4,57,255,3,9,178,14,39,1,34,248,149,1,227,10,111,8,168,254,229,244, +217,248,225,9,71,13,139,254,57,251,239,6,173,8,180,0,177,253,68,252,193,253,67,10,42,18,236,6,250,249,207,248, +224,249,56,251,157,255,234,254,28,253,174,5,174,10,192,254,171,245,163,252,82,3,166,2,243,2,51,2,42,255,57,0, +9,255,164,245,45,242,72,251,243,2,15,3,157,0,99,252,231,250,143,0,125,2,228,250,200,247,168,254,151,3,41,2, +235,254,172,251,136,251,40,254,66,251,106,244,71,245,175,252,144,1,65,4,92,5,166,1,239,253,173,254,79,253,69,248, +23,249,119,1,81,7,210,4,31,254,238,249,61,250,235,251,64,253,6,0,241,3,12,6,255,4,247,1,114,0,116,2, +139,3,141,0,70,255,237,2,203,5,159,5,36,5,107,3,233,0,166,1,252,3,135,4,217,5,231,8,89,11,193,13, +174,13,65,6,192,253,126,254,169,5,155,10,70,11,78,9,45,7,226,5,203,2,51,0,236,3,125,8,89,6,167,3, +40,4,3,2,233,0,213,5,82,6,173,255,131,254,116,0,221,250,214,246,191,252,207,1,136,1,6,2,32,0,100,249, +249,244,39,244,197,245,227,253,74,5,217,255,194,246,191,247,21,251,18,248,177,245,50,248,183,251,146,254,149,254,59,250, +79,247,157,248,71,248,33,246,24,249,49,0,90,3,21,0,68,251,223,249,244,250,148,250,221,250,105,0,194,5,93,2, +117,251,42,251,158,253,122,250,212,247,24,255,101,8,5,6,25,252,91,248,247,251,11,0,102,3,198,5,36,4,142,255, +197,250,92,246,207,246,77,255,197,6,191,4,31,255,146,252,249,250,232,249,176,251,187,254,4,2,138,5,194,4,121,254, +35,250,88,251,58,254,178,1,37,5,62,3,166,252,7,251,184,0,11,5,252,4,152,6,128,9,27,6,192,254,143,254, +79,5,188,8,242,7,86,8,147,7,43,4,142,4,139,8,45,8,218,4,14,6,3,10,150,10,152,7,47,4,196,3, +121,7,15,10,200,6,218,1,148,0,32,2,198,4,251,6,168,5,35,2,255,0,36,1,3,0,204,0,90,4,97,4, +101,254,221,248,137,249,197,253,2,255,146,252,15,252,114,254,1,254,41,250,214,248,33,251,9,253,66,253,30,252,204,249, +233,248,26,250,196,248,36,245,85,248,83,3,193,6,199,250,73,241,104,250,214,6,124,2,156,248,44,252,23,5,214,3, +14,252,141,247,60,248,157,251,124,252,81,250,214,253,150,6,173,7,7,2,173,0,117,255,231,249,239,251,115,7,81,12, +57,5,68,251,229,245,181,248,128,253,179,248,188,243,231,255,203,13,244,4,48,243,247,242,192,0,211,9,50,7,212,255, +251,254,201,1,158,250,23,241,66,248,77,4,232,254,4,244,155,247,145,0,35,0,40,250,198,249,208,3,183,13,7,6, +191,244,231,244,83,4,144,8,241,255,124,253,73,3,102,4,215,251,195,243,218,250,82,12,50,16,191,3,235,255,186,9, +206,11,36,3,229,0,75,7,104,11,109,10,218,7,197,6,163,8,28,9,186,4,16,3,67,9,193,12,239,5,120,255, +23,3,203,9,76,10,19,6,94,2,212,0,254,255,5,254,144,253,168,2,70,7,236,2,122,253,118,1,85,4,239,250, +154,242,55,248,187,0,49,0,70,251,51,248,170,246,81,246,40,247,237,248,246,251,114,254,115,254,49,253,234,250,210,247, +56,248,163,252,134,254,3,252,243,249,140,250,88,252,56,252,75,248,2,247,205,254,212,6,21,4,203,251,232,247,191,250, +248,1,253,4,121,254,163,251,26,5,87,8,68,251,224,243,65,255,154,11,151,9,236,254,132,248,201,252,135,3,142,0, +160,250,86,255,1,7,56,4,182,252,28,251,56,0,114,8,193,11,200,4,236,254,168,4,233,9,134,3,31,253,213,0, +158,4,97,255,119,249,185,253,105,8,136,13,20,10,146,5,124,4,229,3,233,2,113,6,61,15,30,18,1,6,135,247, +2,249,50,2,35,255,171,245,72,248,168,3,118,7,186,255,40,247,129,251,70,10,58,13,8,254,45,245,205,253,232,2, +192,248,253,237,230,239,79,250,105,253,145,241,181,233,29,247,254,4,201,253,119,244,78,250,26,255,117,249,111,245,210,246, +108,249,190,251,195,247,162,238,109,238,205,245,62,246,195,244,3,252,179,1,208,253,255,250,204,254,109,2,53,1,94,251, +24,247,115,252,225,3,36,254,94,242,180,244,188,2,225,7,30,254,2,245,34,251,22,10,182,14,255,4,56,253,210,0, +83,5,182,0,36,250,56,254,3,10,50,12,50,255,66,245,250,252,59,9,163,7,201,254,61,0,27,10,211,12,129,6, +99,3,119,6,90,5,237,252,71,249,154,2,255,13,16,12,77,1,21,0,18,10,148,13,186,5,246,2,203,12,149,20, +15,14,48,2,114,1,236,10,215,12,154,2,58,255,116,10,16,15,35,2,233,250,74,10,139,26,243,17,102,253,145,251, +245,10,72,15,108,4,193,1,64,10,8,8,160,247,155,237,242,244,108,3,75,9,157,3,72,255,151,1,236,252,17,240, +77,240,9,1,18,11,16,4,90,248,194,243,136,246,131,246,36,239,225,240,136,2,180,8,158,247,3,238,83,248,124,252, +73,244,112,244,225,254,160,4,47,0,198,246,135,244,75,254,222,2,57,249,151,246,167,2,117,5,60,250,129,248,10,3, +45,5,68,250,253,241,34,247,0,2,153,2,22,250,249,251,235,10,152,15,102,0,84,243,218,250,98,9,48,7,130,248, +121,247,161,7,36,14,83,255,114,241,35,247,137,5,152,9,237,3,197,4,218,15,185,19,92,7,102,251,45,254,10,7, +70,9,170,5,97,4,146,8,68,10,164,2,144,252,239,3,196,14,20,17,147,16,160,16,116,11,149,4,107,2,253,1, +11,4,200,11,229,14,25,5,254,249,77,249,167,254,254,1,96,1,200,255,224,0,91,1,51,252,86,248,115,253,115,2, +38,253,52,244,179,240,5,241,130,242,136,246,134,251,204,252,27,249,130,243,176,238,60,236,91,239,12,248,229,253,167,251, +28,248,30,247,219,242,200,237,84,242,128,252,181,254,61,249,214,245,107,246,248,247,249,249,197,251,29,252,133,251,35,251, +31,252,130,254,87,255,244,253,45,255,175,2,115,0,220,249,167,250,138,1,35,1,204,250,15,251,6,0,90,0,162,254, +158,255,29,1,236,2,208,3,56,255,150,251,104,1,191,5,238,254,195,249,195,253,140,255,130,251,88,249,83,252,84,4, +6,9,33,254,149,242,133,255,173,17,77,7,155,241,58,242,174,1,142,9,11,5,214,249,230,246,5,4,109,11,108,255, +253,248,106,6,187,17,182,13,115,4,34,0,171,5,103,13,116,8,76,2,32,14,222,22,193,6,235,247,65,255,102,10, +65,16,114,22,73,19,209,6,88,3,137,6,79,5,232,8,20,17,109,13,104,4,29,5,131,6,252,1,205,1,20,5, +68,4,234,2,179,0,252,251,73,0,178,11,243,7,144,248,161,248,46,4,60,1,132,243,31,242,171,254,234,8,147,6, +87,251,14,245,167,250,173,0,28,254,101,252,79,1,250,2,164,253,156,248,124,246,186,247,230,253,118,1,46,253,233,251, +249,0,253,254,39,248,97,252,107,5,156,3,178,253,89,254,251,255,102,253,140,248,40,244,80,246,19,254,39,254,171,247, +26,251,146,4,142,3,113,252,61,250,141,250,28,252,163,254,128,251,216,247,154,254,101,4,220,251,56,243,151,248,234,1, +91,3,100,254,127,251,132,2,56,12,253,7,74,252,120,254,83,9,178,8,31,0,248,254,27,5,253,8,120,5,59,0, +189,5,36,18,124,17,191,5,182,5,203,15,193,14,112,4,131,2,51,9,159,11,0,4,145,249,203,250,189,8,221,14, +202,3,89,251,81,1,95,5,34,254,119,249,5,0,39,8,243,5,225,248,200,238,224,243,97,251,57,243,14,234,124,244, +183,0,235,249,238,241,40,249,183,0,199,254,246,249,47,243,215,238,144,245,215,251,51,246,199,242,153,246,118,243,148,239, +242,246,233,250,230,246,228,252,169,5,251,254,59,248,171,254,38,1,213,250,16,248,176,246,15,246,109,253,209,0,13,247, +61,243,237,251,218,254,168,251,220,253,188,255,4,254,119,255,140,255,109,250,77,247,163,244,247,241,177,251,76,9,43,2, +240,242,212,249,92,10,34,7,5,248,128,246,109,5,30,18,127,11,216,249,70,248,196,7,62,10,202,251,62,252,200,17, +53,28,147,14,99,1,190,5,56,14,219,10,237,2,105,7,230,20,148,20,45,2,62,249,66,8,201,20,135,10,241,255, +71,9,7,19,157,9,128,251,65,253,192,11,41,19,19,7,174,245,13,246,151,0,131,254,19,249,158,3,48,14,227,4, +69,247,98,248,61,1,71,4,190,254,84,249,142,254,210,4,214,249,120,235,144,244,181,7,223,6,88,248,233,242,107,247, +166,251,10,252,64,251,228,254,237,3,65,254,201,241,112,240,33,248,82,248,39,243,98,244,100,248,46,247,29,244,69,245, +214,250,191,0,179,1,243,252,12,248,242,246,98,248,122,250,181,251,158,250,39,249,109,250,71,252,182,250,122,248,174,251, +124,3,207,8,147,7,101,2,189,255,126,3,215,7,124,3,101,250,147,249,32,0,156,1,245,253,188,255,228,6,200,9, +16,6,141,2,7,4,45,7,10,6,104,1,77,255,37,0,70,254,229,248,45,246,17,249,89,253,43,0,238,2,190,2, +35,252,82,248,113,255,148,5,147,2,232,3,141,10,193,3,220,244,78,244,114,252,54,254,152,0,95,6,127,6,19,6, +250,8,191,4,53,255,82,6,212,14,5,14,248,13,85,14,61,9,225,9,207,15,219,12,22,11,130,19,197,17,150,5, +192,7,198,15,17,10,76,7,187,16,81,17,207,7,53,5,65,8,177,12,16,18,160,13,22,4,159,9,69,19,159,11, +243,2,237,8,75,12,171,6,84,4,231,2,237,255,89,3,88,5,59,254,76,254,66,9,1,10,226,254,144,249,121,251, +202,253,130,0,141,0,93,253,50,253,226,251,167,243,57,240,111,247,202,250,141,246,115,246,178,248,185,245,151,244,55,249, +179,250,117,248,128,249,76,251,61,250,129,249,202,247,35,244,26,247,1,0,170,255,25,246,217,244,1,254,186,2,143,254, +169,250,157,254,120,7,223,7,46,251,44,244,249,254,88,7,194,253,171,244,39,251,13,3,37,255,39,247,35,248,168,4, +102,15,89,8,136,248,253,248,51,7,223,7,158,247,240,240,67,255,62,12,152,2,148,240,127,243,172,7,235,13,235,0, +166,251,18,8,107,17,145,10,101,0,222,1,64,10,63,10,180,255,101,249,96,0,99,9,179,5,146,250,111,250,147,6, +191,10,11,0,121,249,113,0,170,5,190,255,205,247,133,246,178,251,196,255,205,249,157,240,29,243,102,250,232,247,176,244, +169,249,200,249,137,241,185,238,140,242,94,246,234,250,254,250,74,242,173,237,227,242,142,245,28,245,61,250,80,253,181,246, +40,240,60,241,255,246,218,252,179,252,232,246,242,245,84,249,240,245,63,240,156,243,238,250,250,253,116,254,75,253,229,250, +42,250,126,248,109,245,42,249,76,1,66,0,4,248,101,246,190,251,170,254,174,253,146,255,48,7,1,10,175,254,90,245, +105,1,67,17,203,10,50,253,243,2,80,16,17,13,102,255,143,253,136,11,179,22,212,14,188,255,221,2,33,20,110,21, +50,3,76,252,111,12,141,23,246,8,59,246,57,253,9,19,29,19,115,251,64,244,149,13,13,31,222,9,67,240,69,251, +146,19,27,14,151,247,57,248,159,14,19,25,17,11,122,248,109,246,151,0,109,3,64,253,181,253,104,4,151,2,6,250, +22,248,102,253,165,1,160,0,192,252,14,253,165,0,101,252,192,244,204,251,247,8,98,1,146,234,36,226,59,237,238,248, +205,249,248,244,143,245,143,251,51,250,31,242,43,244,235,254,233,0,124,252,33,253,107,251,111,241,87,236,233,242,147,251, +174,255,189,254,31,249,21,245,212,248,229,255,147,4,237,8,221,12,183,10,233,2,74,253,19,253,55,254,242,253,105,253, +86,253,199,253,199,255,43,3,200,5,240,5,5,4,245,2,235,4,56,6,105,3,34,1,231,1,237,255,190,251,36,252, +150,253,37,251,31,252,183,2,75,5,129,2,237,0,200,2,245,10,204,21,208,17,38,255,161,248,8,4,15,9,188,0, +83,251,42,0,233,9,215,14,5,8,175,1,14,11,174,20,124,12,211,4,235,14,233,24,73,20,53,12,175,9,22,11, +219,13,202,12,64,9,169,14,89,25,131,23,31,12,49,9,185,13,165,14,13,14,143,15,82,15,54,14,211,13,236,7, +208,254,165,0,38,12,221,15,42,9,219,3,184,2,33,4,179,8,21,7,248,249,81,243,5,252,129,255,156,246,114,244, +62,251,88,252,2,248,219,242,19,237,227,240,219,254,132,2,203,250,254,249,17,250,18,240,64,237,131,249,222,1,214,255, +237,250,50,244,161,242,37,250,191,250,64,244,39,253,164,13,55,10,95,251,69,247,138,250,110,255,240,5,141,3,205,248, +99,246,157,250,198,249,185,249,192,253,71,254,137,255,223,3,21,255,98,245,38,248,203,1,22,6,43,9,133,7,152,250, +66,245,228,2,128,10,229,255,10,251,132,5,45,12,199,6,155,255,160,255,110,8,53,16,100,9,154,251,122,250,145,2, +11,4,241,2,114,9,13,17,65,16,99,7,181,252,138,251,243,6,201,12,59,2,216,249,90,254,105,253,92,240,37,236, +72,250,198,9,227,9,0,254,218,248,6,3,77,10,173,0,131,248,201,255,26,3,165,245,116,232,161,231,229,235,126,238, +227,237,51,236,135,240,176,249,76,253,135,252,70,0,153,4,30,1,234,248,100,243,140,242,228,242,178,240,39,240,58,246, +111,250,55,245,50,241,66,247,28,255,220,1,7,3,184,5,181,9,130,11,14,7,227,1,66,3,194,4,34,0,117,251, +164,249,186,248,234,251,228,0,195,0,193,0,69,5,14,6,20,3,106,3,110,3,98,4,242,12,53,14,149,253,185,245, +253,5,203,17,148,6,78,246,213,242,177,253,14,11,2,8,249,250,165,0,80,18,174,13,17,249,0,247,189,7,162,16, +99,5,149,241,119,238,34,3,49,15,45,252,197,233,56,247,218,12,127,8,9,244,59,240,141,3,197,17,120,5,31,243, +29,248,144,8,22,7,100,248,24,246,226,2,88,8,106,247,93,225,252,229,139,1,77,11,0,246,30,229,235,240,25,4, +51,3,106,243,224,238,89,254,167,9,170,251,65,232,210,236,138,253,38,253,212,239,111,236,41,244,226,248,26,246,19,243, +215,248,217,5,8,11,108,2,99,252,46,3,192,8,181,2,125,251,112,252,181,0,76,0,29,250,47,247,134,0,42,13, +211,13,251,7,233,8,155,12,125,11,5,8,225,3,142,2,222,9,12,14,121,0,76,242,214,249,164,9,22,12,145,5, +98,2,6,5,158,9,92,8,196,1,149,2,170,9,65,6,61,249,178,242,92,245,246,249,38,251,188,246,28,246,230,1, +25,9,94,252,35,240,102,247,243,1,133,255,51,248,24,246,206,248,80,250,173,245,169,242,81,251,203,4,223,1,168,252, +81,255,225,2,95,4,159,6,117,5,40,2,241,4,146,9,51,7,74,2,68,2,154,6,218,10,7,10,65,6,210,8, +123,15,151,15,58,13,138,15,19,14,194,6,62,6,175,11,73,11,72,8,60,10,242,12,194,14,38,19,168,20,147,14, +2,11,70,19,0,31,8,32,239,22,77,17,53,20,188,20,23,13,109,9,89,18,228,26,112,20,47,8,232,9,51,24, +111,31,186,25,55,20,163,22,36,28,72,30,122,24,54,13,90,9,181,16,152,20,7,14,147,8,224,9,136,10,208,7, +69,6,184,7,85,8,93,2,177,248,177,248,226,4,55,12,88,3,213,243,3,237,215,243,87,253,192,248,253,233,238,231, +15,245,12,250,34,238,255,225,179,226,86,234,226,233,24,221,142,213,79,226,92,243,233,242,207,233,180,234,174,241,18,242, +190,235,116,230,5,233,110,242,57,246,140,237,174,229,15,235,170,244,101,246,23,244,136,244,148,246,213,249,195,254,165,0, +16,255,161,0,248,2,58,253,88,243,72,239,138,240,138,243,39,247,207,247,10,248,60,254,179,1,165,250,148,249,16,8, +27,19,86,16,79,9,63,1,248,253,14,10,33,19,101,2,76,240,236,248,63,6,47,1,60,249,233,252,118,7,60,17, +104,15,175,3,160,6,117,25,12,27,74,8,245,1,207,12,202,16,98,6,124,248,111,245,167,3,146,15,122,5,208,251, +150,9,160,18,118,255,209,240,102,1,152,20,0,11,188,242,51,238,26,4,190,17,184,249,60,219,54,232,40,12,17,11, +196,234,110,227,212,251,211,7,8,244,193,217,250,216,32,242,104,0,242,237,108,222,127,242,197,8,186,253,107,236,184,242, +254,254,134,254,153,248,55,245,142,247,60,254,237,253,204,247,37,251,22,1,7,251,120,249,208,9,116,22,111,18,24,12, +82,10,200,10,128,13,164,9,86,253,2,251,199,3,203,2,117,251,102,0,78,11,103,15,165,16,22,18,92,18,184,18, +77,14,39,4,61,1,116,7,134,9,129,5,190,255,149,248,46,250,99,7,80,9,154,251,52,253,190,18,195,25,34,8, +73,249,149,254,46,11,65,8,34,244,71,234,225,249,93,9,105,2,107,246,18,252,93,14,248,24,71,14,26,249,168,245, +96,5,58,8,197,245,82,235,60,245,46,255,252,252,126,249,174,255,133,10,53,11,212,253,52,241,54,242,23,254,55,12, +163,16,182,0,51,234,162,232,23,246,60,243,49,226,212,228,115,1,76,24,62,19,10,1,139,253,27,10,58,11,120,245, +227,227,220,236,205,255,231,3,222,249,155,242,78,250,103,9,30,8,181,245,94,244,25,14,168,30,238,21,38,13,3,13, +168,7,156,1,157,2,230,254,21,245,48,245,199,0,206,11,64,15,127,9,218,3,223,11,180,22,125,15,169,255,59,252, +172,1,185,3,50,255,200,244,251,238,15,248,219,0,52,249,1,241,26,248,64,1,151,255,191,248,17,245,55,249,27,2, +65,2,35,246,206,235,161,235,223,240,175,244,244,240,68,233,232,236,71,252,112,4,152,0,108,254,107,3,177,9,130,10, +48,2,179,247,232,246,159,253,26,1,36,255,255,251,123,253,8,5,121,7,222,0,16,4,51,22,75,31,190,24,157,21, +47,24,134,21,171,15,114,9,79,3,227,5,214,13,161,11,119,6,108,15,201,29,207,35,43,37,239,36,80,36,119,39, +146,36,243,20,163,14,215,26,190,28,56,11,254,2,252,11,155,17,223,15,229,17,234,25,129,37,123,46,59,42,238,28, +222,22,213,23,44,19,154,9,127,4,205,4,109,5,231,2,92,255,29,3,237,14,101,20,97,13,74,9,142,15,241,15, +75,2,15,245,177,239,248,232,72,223,130,219,146,223,23,231,99,237,200,236,190,232,105,238,139,250,177,248,55,233,3,229, +139,242,249,249,44,234,70,208,4,197,70,206,63,218,22,218,230,214,21,225,13,245,192,255,27,249,255,237,89,238,110,247, +28,248,6,235,223,223,10,228,123,238,224,238,29,231,198,229,58,238,244,247,80,254,68,1,228,0,216,1,247,7,40,12, +78,6,6,250,45,241,165,242,90,250,250,248,185,236,85,236,190,1,2,23,172,25,59,14,240,3,231,12,200,35,126,31, +118,247,235,228,163,0,203,18,147,250,24,226,243,236,61,8,32,16,108,251,125,236,160,6,19,43,24,35,166,0,151,250, +30,14,199,19,81,255,109,227,211,223,47,252,147,11,225,240,206,218,250,237,60,3,219,252,132,246,111,255,81,4,16,253, +182,242,12,239,147,245,185,247,39,233,12,222,25,231,154,239,16,234,96,231,115,237,205,241,254,243,103,243,86,236,158,235, +14,249,154,0,250,246,14,238,99,239,229,239,156,236,169,237,49,244,149,250,135,252,161,251,23,0,19,11,108,15,148,8, +19,6,133,14,46,18,68,9,115,2,136,8,210,17,58,16,209,4,210,255,161,11,104,26,4,25,201,15,36,20,48,33, +217,32,92,19,188,13,95,23,151,31,74,22,19,5,239,2,91,14,174,14,199,1,248,1,49,21,72,32,158,20,222,6, +164,12,41,26,113,20,198,254,250,248,196,9,31,17,117,254,69,235,127,240,66,3,57,9,184,253,8,247,193,4,28,21, +155,15,38,253,26,249,136,5,212,8,231,243,96,218,211,217,227,236,246,241,227,226,159,221,222,238,242,0,183,4,136,3, +181,5,218,4,189,251,123,240,159,232,244,228,177,237,80,3,183,5,198,225,98,200,191,233,68,25,194,16,116,228,229,221, +155,10,215,46,187,25,106,233,235,226,214,3,120,2,131,210,140,192,226,237,110,31,185,31,94,253,149,234,202,1,114,31, +24,17,162,238,249,244,214,22,120,28,34,8,171,250,33,247,153,253,53,18,201,28,126,10,253,245,46,254,195,28,83,50, +71,35,119,254,135,249,228,27,150,40,44,10,215,245,33,5,74,22,18,21,32,11,98,2,102,7,8,27,103,32,52,11, +69,251,140,4,238,17,144,15,19,3,217,254,163,14,71,31,223,15,59,238,56,234,128,3,98,12,103,249,154,233,25,240, +139,3,143,15,28,7,248,244,195,239,255,248,96,255,192,250,238,239,102,231,34,234,181,246,22,253,38,244,81,233,218,238, +237,0,84,7,217,247,64,234,118,246,3,14,80,18,231,1,64,246,69,254,14,11,224,5,156,245,108,247,43,13,180,25, +72,19,152,12,104,16,246,25,56,32,139,24,211,8,71,9,10,26,98,31,189,21,156,18,136,24,204,28,115,30,178,27, +124,21,71,24,131,33,91,32,152,27,154,33,68,38,22,34,67,35,40,38,59,28,0,19,44,25,156,32,64,29,161,18, +39,6,241,7,207,31,144,43,51,19,96,254,30,14,105,33,81,24,96,6,223,4,189,16,228,22,72,8,193,243,105,249, +41,16,197,15,97,251,58,247,202,3,25,8,237,254,244,240,193,233,176,243,40,255,210,240,196,212,102,204,160,213,213,219, +21,225,88,235,64,239,39,230,147,220,113,225,190,239,9,239,0,216,20,201,80,214,217,227,225,216,92,203,199,210,92,223, +59,219,104,206,129,207,28,227,84,245,18,245,85,235,130,233,16,239,79,240,169,231,201,219,218,221,157,242,8,1,151,247, +236,236,42,245,29,255,232,251,198,247,254,250,38,255,148,0,48,255,222,252,27,254,186,254,212,249,80,250,91,3,254,2, +205,248,209,250,77,9,137,19,45,23,91,17,179,254,52,247,160,10,167,23,140,6,14,246,21,253,24,6,157,1,119,252, +36,1,253,9,242,8,43,251,127,249,213,18,128,36,67,18,44,253,91,4,81,15,131,7,222,252,99,251,8,254,137,2, +151,1,99,245,162,239,44,252,194,5,50,255,69,249,190,250,189,248,14,246,43,251,184,0,15,254,192,245,55,239,34,243, +112,253,224,247,74,225,169,219,199,239,104,248,252,231,14,224,209,239,120,253,136,246,163,228,180,217,126,223,72,235,90,231, +91,217,115,222,226,244,60,251,105,234,37,221,196,226,115,241,68,249,176,243,135,236,107,243,58,255,10,253,233,243,8,243, +92,244,153,243,58,251,183,6,102,6,150,0,207,3,218,11,29,17,202,19,197,16,177,10,25,14,170,23,212,22,215,14, +33,15,107,21,179,22,178,18,118,15,199,18,63,27,80,27,164,15,29,12,155,23,72,28,63,19,2,17,192,26,167,32, +32,32,228,33,123,35,5,30,227,19,178,13,178,17,145,25,180,21,112,7,30,4,212,16,223,25,39,23,98,22,237,28, +189,29,175,16,71,2,82,5,136,22,1,28,144,12,247,0,101,9,74,17,229,6,142,251,7,2,28,13,175,8,23,251, +82,247,185,253,210,254,5,245,117,232,32,223,40,220,224,230,158,253,204,12,137,8,203,0,221,6,4,15,133,3,29,234, +71,222,166,232,243,243,67,240,196,233,236,239,169,251,231,252,31,242,51,233,33,240,111,3,91,13,251,2,218,247,81,0, +189,16,114,17,232,2,160,250,73,5,234,21,177,21,152,5,85,255,216,11,102,21,98,14,97,4,74,5,10,15,218,24, +34,26,18,17,77,6,4,0,93,252,108,252,209,0,67,4,206,10,133,26,219,31,198,9,100,247,153,10,79,36,176,18, +171,231,104,224,144,6,129,31,3,3,114,220,50,234,89,20,242,17,134,233,90,229,207,14,221,34,115,6,56,231,18,235, +26,1,79,5,50,244,190,236,107,253,164,11,248,3,149,249,206,252,50,2,84,0,108,250,210,242,226,239,228,247,41,1, +145,1,71,253,51,246,221,238,20,245,254,2,5,253,138,234,127,238,63,1,119,0,236,241,250,239,46,250,90,4,190,6, +126,250,147,235,174,238,100,247,12,239,255,227,41,232,221,237,15,237,134,238,188,237,227,234,105,247,126,7,222,251,33,230, +231,237,10,4,84,3,245,244,223,243,148,252,178,255,248,251,47,249,59,254,192,7,11,10,179,5,165,6,48,11,22,9, +64,5,226,9,219,17,49,18,17,12,235,9,193,14,91,16,135,10,134,10,229,19,144,20,167,10,24,12,28,25,178,27, +209,19,24,16,249,14,166,12,157,12,215,9,144,3,249,6,158,17,113,20,58,20,113,20,249,5,167,244,7,255,182,15, +216,253,231,227,5,240,21,11,128,9,73,247,251,244,120,3,127,14,115,5,28,239,208,234,206,1,133,16,203,1,102,241, +70,247,100,5,130,7,1,252,119,240,121,244,213,0,213,251,163,231,175,225,252,233,197,231,69,228,108,251,94,27,9,23, +33,243,249,229,110,3,139,26,139,4,16,232,98,245,179,14,137,3,193,239,10,2,55,27,250,5,66,218,50,213,231,247, +143,15,74,6,232,251,171,11,31,28,10,9,204,230,21,231,87,8,147,26,86,10,47,245,66,249,177,14,58,20,23,255, +205,239,173,255,15,19,255,7,171,242,73,250,87,23,70,32,166,6,95,234,95,237,167,3,204,9,113,1,90,5,5,14, +16,4,79,246,182,250,107,1,66,252,231,251,202,6,230,12,106,7,45,249,17,233,206,234,115,255,74,2,135,233,97,225, +198,249,44,9,132,251,83,234,49,230,131,235,210,244,10,246,79,237,178,240,231,0,95,254,165,234,4,233,110,245,34,241, +67,230,175,238,34,254,252,255,186,249,158,243,98,238,204,238,57,242,128,239,186,238,35,251,7,7,219,3,213,252,148,252, +26,251,163,246,156,250,85,7,35,15,233,11,112,6,192,9,235,20,190,26,142,19,1,10,137,11,20,20,102,23,126,21, +198,21,74,22,101,17,198,12,206,16,56,25,130,30,75,33,117,32,6,26,79,26,188,41,156,49,159,29,104,8,245,21, +102,54,75,61,228,35,40,15,82,26,190,48,190,42,175,13,16,9,117,37,31,50,123,27,83,11,42,26,78,42,100,34, +98,15,217,6,181,13,110,22,96,15,232,255,17,3,129,22,194,24,175,4,117,250,0,6,154,14,37,4,81,245,37,243, +228,246,48,240,57,226,27,222,114,227,169,226,193,219,48,220,207,228,83,235,35,235,56,232,99,234,209,240,88,235,181,214, +125,205,75,219,137,228,126,219,36,215,2,225,185,232,245,232,28,230,169,224,107,226,106,238,59,238,125,224,138,231,152,0, +88,255,172,231,87,231,180,250,65,250,144,232,114,228,91,242,86,0,42,0,148,244,114,242,144,1,76,8,137,247,50,232, +215,238,59,254,98,3,240,250,133,242,38,253,51,14,68,1,40,227,205,231,56,6,220,6,41,238,11,235,183,254,181,12, +59,11,18,253,46,243,144,253,231,254,14,226,228,223,167,17,218,33,179,243,106,235,112,31,22,41,186,250,205,232,139,244, +153,242,145,251,166,17,98,2,66,231,172,249,193,14,111,252,222,247,148,10,19,248,3,218,167,240,224,15,108,6,13,5, +55,25,41,13,111,241,250,242,16,241,47,228,110,255,113,23,42,225,76,179,154,239,94,43,30,252,185,198,16,231,26,11, +221,243,131,218,232,223,192,235,171,252,188,11,209,251,129,225,30,231,148,249,185,250,28,251,119,255,112,247,162,247,85,14, +253,17,155,247,163,245,176,19,189,24,209,0,216,252,223,9,121,5,243,0,224,21,137,35,181,14,6,255,118,20,134,40, +65,26,121,12,140,26,118,33,47,14,233,7,250,26,14,30,210,10,228,6,116,16,82,10,202,0,160,9,150,19,229,17, +170,20,195,30,254,34,243,29,95,13,83,248,190,248,182,6,102,249,202,229,9,3,159,40,130,15,58,235,18,5,203,32, +217,253,187,224,109,2,149,35,72,20,203,253,200,254,208,9,79,20,188,16,108,246,40,229,169,243,99,0,105,246,50,241, +25,249,210,250,79,249,160,251,210,251,193,5,103,25,139,15,84,236,14,238,173,17,96,20,85,251,198,253,140,14,225,7, +159,255,98,12,210,17,79,249,3,215,5,209,196,246,70,28,125,10,111,232,20,2,127,43,3,10,178,207,224,226,107,29, +72,37,66,11,100,255,243,252,150,7,157,32,21,23,78,234,178,232,67,18,179,18,57,241,77,246,100,17,56,17,44,8, +170,2,53,237,104,225,2,248,16,8,130,1,80,9,95,17,36,248,143,234,83,5,118,8,5,231,147,238,147,24,110,12, +125,216,229,210,60,245,214,5,90,2,179,245,215,221,174,215,110,241,203,253,227,232,56,221,65,235,188,244,54,241,42,242, +165,248,160,249,28,245,122,243,175,246,215,248,103,250,206,255,69,2,106,0,55,7,187,13,159,255,81,243,112,3,63,17, +78,4,196,254,91,17,217,29,2,28,116,26,102,19,29,9,235,16,40,32,144,27,68,19,237,32,35,46,96,34,40,21, +194,27,89,36,113,37,34,43,74,44,63,28,128,18,4,31,137,41,192,38,219,36,62,29,191,10,67,11,24,35,59,36, +72,6,139,253,96,26,80,45,236,28,100,8,68,12,156,30,3,38,184,20,32,250,129,250,180,23,31,33,92,4,121,240, +71,0,42,17,117,7,246,240,34,229,225,238,3,255,61,249,230,231,189,237,4,254,10,245,177,224,192,224,17,238,9,244, +206,240,84,237,15,241,78,245,33,237,159,226,135,230,22,236,93,227,167,217,137,223,187,239,65,246,95,229,244,209,225,222, +138,250,164,244,73,218,12,224,79,255,118,6,209,241,188,232,32,247,198,255,121,242,127,232,65,246,201,2,47,244,121,226, +47,239,43,9,133,8,228,240,154,234,20,2,154,23,159,16,226,247,209,233,195,243,185,4,90,1,198,237,77,234,50,255, +110,16,141,8,217,242,212,235,251,252,8,11,220,255,130,243,206,255,250,15,10,9,111,245,204,237,3,248,187,1,232,248, +7,239,209,253,75,13,16,252,229,228,94,236,103,253,200,247,176,230,234,229,16,249,107,6,211,247,15,227,181,236,101,5, +76,2,137,233,79,228,42,249,140,7,130,251,236,231,175,233,109,252,137,0,218,236,55,221,31,230,42,245,169,240,229,225, +40,226,124,239,120,247,166,247,244,245,124,244,56,247,144,251,66,248,157,241,119,240,53,242,158,249,29,8,175,8,123,245, +14,237,202,248,199,254,84,250,98,252,150,4,235,11,139,18,35,19,156,11,74,6,145,8,134,14,45,19,15,16,59,8, +64,13,75,33,58,42,115,24,41,3,211,8,2,33,196,39,179,21,205,9,171,21,97,38,2,37,182,17,62,1,172,6, +86,26,71,38,164,39,231,37,51,30,253,20,66,23,102,27,80,13,154,247,184,247,127,16,1,36,131,27,252,7,153,9, +216,27,23,27,127,255,245,236,28,254,65,27,8,28,185,4,16,254,115,18,8,31,69,10,215,230,78,219,83,239,11,253, +192,235,52,218,248,227,134,245,74,0,106,12,155,15,36,1,17,247,6,251,108,251,23,241,217,226,153,225,162,1,153,37, +2,18,223,222,12,221,83,2,144,254,166,203,249,176,170,217,114,33,229,57,158,14,7,237,215,8,222,33,76,253,209,207, +26,219,37,10,116,37,48,28,187,7,228,9,112,29,240,22,154,240,246,221,79,245,251,17,67,26,93,20,75,7,197,2, +53,19,133,25,77,252,158,228,175,247,68,24,202,36,207,29,29,11,116,1,68,18,225,30,162,11,152,248,210,254,17,10, +211,14,18,9,181,238,92,223,231,254,237,32,50,18,39,248,244,255,13,16,138,8,194,246,132,244,98,5,243,17,27,8, +27,254,3,11,92,20,71,254,53,226,127,226,103,246,196,0,94,249,42,243,106,1,198,23,24,21,142,245,205,222,136,233, +156,251,21,245,37,231,98,242,252,8,164,7,65,242,209,230,7,235,48,236,29,228,231,228,254,248,253,9,176,2,211,245, +89,252,254,8,111,2,193,236,174,225,135,240,81,9,110,11,178,244,37,234,227,255,148,25,0,22,104,255,202,250,145,15, +152,28,107,15,88,1,139,10,124,30,203,36,191,26,116,20,148,31,245,42,82,35,33,24,34,27,216,28,248,17,215,14, +225,33,243,55,97,51,254,22,167,14,240,44,195,61,38,28,205,251,203,16,84,57,130,60,167,27,252,6,72,30,222,62, +118,45,230,251,188,243,68,24,60,40,70,15,197,245,44,249,51,14,47,21,246,1,206,241,250,253,21,14,188,4,195,242, +254,242,67,254,40,1,73,248,172,233,122,222,82,225,47,236,226,231,198,209,210,196,128,204,87,214,156,216,203,220,122,229, +140,234,238,231,29,227,158,228,67,230,127,216,183,198,142,203,55,220,7,221,72,216,86,224,38,229,193,217,33,208,74,213, +164,221,142,221,16,221,122,234,255,252,164,252,97,237,46,233,67,240,59,239,180,228,116,220,25,223,44,240,149,3,220,4, +19,246,36,238,34,248,164,4,152,251,254,225,144,221,245,249,43,18,198,14,35,0,26,244,57,239,47,249,245,2,109,241, +230,212,60,218,30,3,13,32,191,17,111,243,244,245,215,21,6,25,51,232,37,190,198,215,93,22,115,38,121,251,87,227, +73,10,25,50,246,19,204,208,201,194,186,247,64,28,59,255,211,224,89,0,85,44,109,29,205,237,74,223,92,244,137,0, +186,240,46,227,70,249,135,28,115,29,171,4,34,253,178,4,76,253,144,231,239,216,109,221,253,240,240,0,147,2,162,1, +134,2,204,251,236,245,218,250,118,246,190,223,165,216,60,244,104,16,192,13,211,252,201,249,231,1,215,0,59,240,131,223, +255,226,40,248,91,5,211,2,158,5,188,18,31,23,208,16,177,11,138,6,1,2,81,5,46,11,201,16,232,27,195,32, +212,22,88,19,229,27,144,24,97,11,205,10,208,19,90,28,30,37,36,38,202,30,228,32,99,43,123,42,23,28,51,11, +205,2,226,11,242,23,130,17,149,13,85,39,93,61,50,37,45,251,88,247,44,22,18,33,45,2,55,232,93,254,100,35, +252,31,106,2,24,255,189,22,95,28,145,0,202,231,2,245,178,22,254,30,205,8,79,254,51,18,30,33,203,13,18,239, +5,232,246,245,165,253,146,243,111,233,117,245,38,12,223,12,243,253,50,3,79,20,210,13,112,251,218,251,233,3,194,253, +207,239,168,239,250,13,225,48,12,25,234,211,245,204,169,22,243,52,223,234,224,160,232,196,139,49,18,94,85,19,103,197, +175,235,189,61,238,43,60,205,115,173,208,244,158,66,0,57,42,242,101,221,126,28,198,71,210,18,41,200,241,203,6,8, +115,37,46,15,233,249,20,9,69,30,61,16,226,239,184,234,146,254,3,5,69,251,179,254,51,14,160,14,90,0,184,249, +194,253,11,255,66,248,204,240,246,242,139,248,41,238,162,221,91,233,74,8,137,10,8,236,83,217,31,230,115,247,114,239, +97,215,86,214,70,243,218,3,39,246,45,236,214,244,177,246,19,233,128,223,171,228,218,239,68,244,16,245,37,3,252,22, +179,15,204,239,226,226,223,244,157,0,27,243,87,236,108,9,162,46,173,44,141,12,125,1,9,23,57,37,92,18,227,248, +245,3,246,44,128,58,116,28,188,12,47,39,89,55,207,26,162,250,148,3,253,38,52,52,154,28,164,13,28,41,38,68, +182,48,136,17,44,23,19,45,237,41,74,19,106,9,216,23,78,42,231,39,198,22,29,18,141,28,123,31,71,22,181,17, +81,19,190,12,233,0,43,2,47,17,141,26,164,18,117,3,159,0,6,11,53,8,6,240,128,230,0,252,130,9,83,250, +77,238,232,245,191,250,111,239,4,222,123,213,213,217,32,219,62,212,89,223,99,250,49,247,74,216,131,215,15,245,182,244, +74,205,41,182,64,206,106,243,182,244,157,216,98,210,59,235,199,243,71,219,157,200,182,210,190,228,189,233,159,230,198,234, +54,248,171,254,139,243,97,229,188,230,47,239,109,232,187,215,251,219,167,249,200,13,97,3,141,239,39,238,79,254,82,4, +24,238,174,216,145,236,183,19,197,21,91,244,41,226,249,242,236,9,37,3,224,225,247,213,232,245,220,16,176,255,228,232, +157,245,16,12,169,6,160,240,135,234,13,248,133,0,225,249,169,248,91,6,176,11,240,252,254,242,149,254,66,8,61,248, +34,227,28,235,237,3,236,5,33,242,12,235,122,246,126,252,65,245,2,241,20,251,19,6,113,253,105,235,134,239,105,7, +47,14,220,248,102,230,74,239,37,2,104,252,141,225,207,219,45,245,61,2,240,237,51,221,254,236,3,4,6,255,60,233, +95,232,53,251,229,252,7,236,43,235,207,251,235,1,6,252,134,252,18,6,10,11,204,253,91,232,228,234,210,5,243,17, +23,8,193,8,223,24,32,33,222,26,64,14,81,6,115,12,95,20,240,12,21,7,220,23,74,44,156,43,234,30,198,24, +238,24,155,20,193,9,202,5,136,18,224,33,116,34,191,28,4,32,234,35,153,26,49,16,19,24,121,37,213,27,125,2, +1,254,38,20,107,32,42,13,66,246,67,255,165,27,75,33,124,9,25,246,165,251,109,12,213,17,106,7,69,3,145,21, +169,35,22,18,122,251,43,0,11,13,234,5,151,241,14,230,62,240,64,4,95,3,78,237,130,226,137,231,102,236,193,250, +142,19,247,23,6,4,4,249,159,3,53,13,23,250,4,210,229,208,83,18,227,64,130,12,21,191,56,207,30,28,108,31, +184,191,149,130,137,210,6,87,230,99,18,248,91,189,245,253,80,62,132,16,127,187,136,192,85,26,215,82,14,50,210,253, +234,1,4,35,219,25,174,234,20,216,153,244,143,18,238,24,30,27,23,35,235,33,30,16,59,251,238,245,150,0,244,9, +216,14,133,28,92,44,51,42,19,27,83,18,244,17,193,14,34,1,72,243,237,251,66,18,143,13,36,241,96,241,243,20, +129,37,192,8,138,228,16,230,7,5,122,15,225,248,230,241,211,16,242,39,103,23,221,251,224,244,188,249,79,242,209,223, +34,223,159,247,216,6,147,253,5,250,210,6,210,6,132,240,10,221,236,221,129,234,120,240,5,240,228,254,31,27,39,30, +22,255,181,233,134,243,112,250,9,231,219,213,159,230,154,7,63,13,21,242,60,224,80,242,156,8,39,249,212,213,61,213, +133,251,203,19,62,5,239,241,7,251,162,23,91,39,172,23,129,252,212,247,180,6,150,12,71,4,173,250,40,249,16,10, +180,36,72,38,227,11,217,255,63,17,25,32,250,23,170,9,14,16,66,45,39,65,207,53,186,36,141,39,184,43,146,30, +8,16,45,14,218,17,110,24,79,39,173,52,63,44,35,17,10,1,197,9,176,23,81,24,182,14,214,6,72,13,199,32, +195,39,161,20,102,0,236,0,242,8,2,5,41,246,204,236,137,244,175,255,42,249,115,234,166,231,15,232,217,221,181,210, +145,208,228,210,227,212,206,214,251,221,103,238,150,250,130,241,35,222,187,217,228,228,14,230,125,205,92,179,66,191,159,232, +58,249,50,223,244,196,157,202,28,221,116,220,162,200,246,191,254,214,73,251,61,10,62,252,193,234,35,239,123,1,208,1, +220,231,184,209,35,216,45,241,147,3,56,1,86,242,19,236,211,244,160,253,132,249,203,234,206,224,35,236,60,4,66,11, +148,252,117,243,227,252,23,8,218,1,238,237,143,232,194,255,135,19,104,6,121,241,108,245,29,5,251,7,224,0,23,251, +191,245,140,238,64,239,183,254,131,9,234,252,55,242,49,7,214,32,211,23,157,255,173,3,218,29,111,31,145,252,252,232, +150,8,160,41,207,19,220,234,163,236,42,11,192,18,222,249,245,224,29,231,247,3,106,15,113,2,70,3,11,24,230,23, +149,251,0,236,213,247,55,255,96,239,200,225,79,240,169,6,106,255,229,227,143,224,252,247,178,250,55,220,23,208,139,240, +217,12,226,254,64,234,207,245,166,11,174,6,51,235,163,219,148,234,239,255,32,252,26,239,133,251,192,20,177,22,1,1, +25,238,3,241,152,5,217,14,34,255,59,246,14,9,106,25,41,18,105,10,41,19,113,29,66,24,133,7,203,0,135,16, +108,35,178,33,68,20,190,18,114,30,63,35,9,21,113,3,249,3,234,14,17,16,137,10,63,10,201,14,82,24,113,39, +254,48,50,41,96,16,35,248,200,252,59,25,5,29,132,253,31,243,228,23,156,57,145,43,222,1,7,240,42,9,42,35, +78,16,26,239,224,252,143,43,60,60,200,36,139,12,15,8,246,12,229,11,236,0,178,248,65,255,49,12,3,21,93,30, +190,34,70,16,247,242,152,234,59,244,139,249,159,253,0,6,92,8,110,7,207,7,194,0,104,2,35,27,121,25,106,226, +17,199,10,253,120,48,35,15,184,200,16,190,9,254,170,45,218,252,253,175,8,199,225,31,10,41,9,219,187,182,34,240, +76,55,94,52,222,240,222,202,249,242,233,29,0,1,81,205,198,205,3,237,166,244,87,235,25,243,118,7,126,8,146,240, +4,226,171,243,180,7,38,250,164,226,216,239,173,18,27,19,49,239,246,220,234,242,88,13,237,7,1,236,18,227,81,253, +137,20,105,9,229,249,50,4,50,15,153,5,226,253,39,4,206,4,109,249,24,246,119,7,171,26,34,20,24,1,188,10, +140,41,194,40,7,4,52,244,187,20,18,58,39,47,1,2,216,246,5,33,11,60,54,24,58,234,163,243,58,30,133,41, +113,15,194,4,94,32,205,55,148,40,14,15,117,14,29,23,202,13,175,0,196,11,152,33,244,28,70,4,183,2,245,23, +151,21,234,242,2,219,40,232,109,5,107,13,28,249,225,239,128,11,235,33,72,9,13,229,110,232,46,4,220,9,39,243, +131,229,203,250,34,20,205,3,119,220,18,214,30,240,185,249,251,228,178,212,141,227,203,255,93,4,198,239,212,231,204,251, +56,11,37,253,174,232,224,238,122,5,151,7,139,244,203,240,206,1,173,3,58,238,215,228,141,245,170,0,192,240,159,225, +248,242,236,13,85,7,123,236,212,237,253,9,20,18,39,249,92,229,175,242,169,10,253,8,58,244,14,239,130,251,169,252, +44,238,219,234,76,253,46,12,178,1,12,241,226,242,179,243,33,225,165,221,8,251,148,8,255,239,160,229,37,5,208,29, +118,5,71,219,238,219,64,8,86,30,61,2,112,237,150,6,88,32,47,15,48,234,5,220,7,238,136,3,71,252,185,230, +121,238,15,15,21,23,232,250,186,226,30,232,66,247,54,248,252,246,173,7,195,23,124,12,146,249,92,252,121,1,148,237, +81,215,82,224,82,249,141,252,134,235,235,231,218,248,197,0,0,239,238,215,17,215,49,237,25,0,28,253,113,244,105,251, +255,4,182,253,234,242,90,247,113,255,81,247,66,231,136,235,239,6,58,20,187,254,19,233,64,242,137,2,148,253,139,242, +1,250,104,14,101,24,88,15,237,4,102,11,195,25,77,28,41,17,254,3,147,255,119,6,214,13,87,10,117,0,71,250, +105,252,40,8,28,20,153,15,135,253,138,245,168,3,98,23,183,22,169,3,33,1,114,26,131,39,62,15,105,243,105,246, +61,9,113,9,127,240,195,222,180,243,58,25,68,29,141,0,152,242,84,4,166,21,8,12,135,248,19,253,243,21,205,29, +78,13,175,3,67,10,19,10,167,251,93,240,148,243,43,253,79,254,222,246,68,246,110,0,132,8,59,11,197,14,248,13, +72,3,223,250,237,0,44,11,4,5,13,239,216,231,154,6,132,45,11,34,7,231,173,207,18,4,247,45,206,252,133,183, +66,206,209,34,48,66,33,20,87,230,82,242,240,23,48,19,2,230,205,215,102,255,129,38,198,42,193,26,205,7,46,1, +32,9,198,2,35,235,109,236,5,7,2,14,236,4,138,13,220,24,87,8,201,231,130,214,114,228,53,3,116,11,157,244, +87,235,200,3,211,19,42,0,226,229,150,227,136,244,55,2,255,251,101,235,134,236,205,253,93,252,216,228,194,219,209,233, +247,244,240,245,193,244,6,238,172,232,13,244,166,1,164,251,86,241,137,249,186,11,129,19,114,9,40,249,177,250,196,15, +209,25,63,13,52,4,144,15,135,34,222,39,21,20,191,248,144,250,228,25,140,46,214,40,192,30,113,29,231,32,222,38, +50,42,142,34,46,21,57,19,131,35,194,54,151,55,10,37,94,19,238,18,187,31,59,39,177,28,136,11,70,12,254,34, +72,53,47,40,112,7,143,0,222,31,132,49,103,20,149,247,47,9,143,42,96,42,98,11,231,243,112,253,87,23,91,25, +252,0,139,246,103,6,216,16,150,5,109,247,168,248,145,3,209,3,86,246,195,242,127,254,17,251,249,224,113,213,241,233, +49,0,111,0,237,249,225,254,169,2,130,242,77,220,64,218,48,228,86,224,38,214,89,225,42,253,219,6,199,241,249,216, +18,214,45,224,166,227,189,226,93,234,142,251,177,12,142,17,224,4,62,242,197,232,40,230,222,223,40,216,56,220,116,241, +245,8,204,12,130,252,22,237,166,236,190,245,159,248,8,238,42,232,118,250,157,15,210,7,204,244,130,250,156,12,59,4, +84,224,77,203,229,228,209,15,26,16,217,231,227,218,44,0,102,28,193,2,5,213,58,205,40,239,79,6,149,242,77,220, +41,245,186,33,80,32,139,241,61,215,177,239,74,13,238,1,13,227,113,224,136,249,22,6,178,245,68,225,104,225,62,235, +223,227,25,207,161,206,114,237,216,12,132,16,143,1,145,250,210,1,111,4,34,244,108,219,221,206,77,214,229,231,173,242, +76,240,126,233,216,228,154,224,80,222,245,222,201,220,240,218,114,231,130,3,243,27,17,28,78,6,225,247,66,255,142,255, +111,230,40,215,153,237,57,13,249,20,58,12,40,9,19,17,179,20,156,6,35,248,150,2,251,23,102,27,111,21,110,30, +52,48,12,50,201,29,99,8,225,8,231,24,94,30,176,20,47,16,225,26,138,39,241,36,75,19,229,4,233,5,55,14, +48,19,138,20,54,21,27,23,65,22,174,11,185,2,19,13,50,25,7,11,20,246,118,253,156,19,128,21,131,4,190,251, +138,5,168,16,181,10,103,254,124,3,1,19,187,17,95,1,225,251,56,6,180,13,31,9,51,1,32,254,8,253,27,247, +96,237,126,235,242,249,180,13,130,19,244,12,134,13,207,25,209,31,177,15,32,239,182,213,108,213,145,233,28,5,104,27, +4,20,5,234,32,211,7,248,131,29,80,248,182,180,142,192,190,34,168,100,251,51,212,217,75,210,7,20,237,38,43,228, +60,170,135,202,146,31,60,72,244,32,117,233,211,234,101,20,7,31,209,250,124,222,64,242,83,29,246,49,67,40,208,19, +99,254,129,240,218,249,242,15,191,18,56,4,30,6,32,30,132,44,74,28,86,255,226,245,157,2,138,11,205,7,109,6, +219,8,56,5,103,1,227,4,134,7,16,3,113,252,165,251,246,6,196,21,166,16,44,248,155,238,255,255,126,10,122,248, +213,228,158,235,61,255,119,4,150,249,62,240,115,244,69,0,20,3,177,250,98,248,173,0,72,4,80,255,159,248,255,238, +154,233,201,245,215,4,249,255,202,242,174,241,13,249,195,255,30,0,60,245,23,236,36,245,233,2,131,2,87,252,2,251, +187,249,232,247,12,249,128,249,19,249,158,253,119,4,115,4,37,255,124,1,193,12,200,12,229,248,12,236,124,252,47,19, +20,15,75,250,181,250,151,21,132,34,172,11,26,248,99,11,143,38,129,32,118,10,73,9,173,27,198,39,78,32,190,16, +142,13,169,22,75,25,184,17,71,14,169,21,162,33,251,37,127,25,146,9,54,16,14,38,168,36,154,6,149,248,22,20, +237,49,44,37,35,2,221,249,71,11,117,16,225,1,77,249,157,2,222,12,215,6,247,249,0,250,157,0,169,249,217,235, +136,235,156,243,223,240,253,226,31,220,204,231,117,245,59,233,172,204,115,202,253,233,142,0,237,242,126,216,208,211,167,228, +205,237,165,224,232,205,176,199,21,207,199,221,106,229,235,216,210,200,224,207,252,225,194,223,33,207,54,209,119,235,208,253, +141,241,194,221,162,229,95,253,153,250,122,218,11,200,175,220,115,254,48,4,223,235,245,220,19,239,244,6,79,1,179,231, +147,223,55,244,103,11,66,13,120,0,7,248,16,250,22,1,129,4,199,255,72,252,231,6,240,22,47,21,110,0,86,246, +80,10,208,31,51,16,219,241,251,250,93,31,30,33,95,254,128,241,222,11,232,32,205,19,100,2,96,18,245,49,129,52, +82,29,130,17,165,20,48,20,44,19,23,23,88,20,68,8,29,1,76,8,51,22,45,23,208,4,126,247,65,5,134,30, +3,38,196,22,18,7,50,15,22,37,10,33,195,252,117,227,99,236,228,251,12,247,243,230,160,227,249,242,50,2,28,3, +17,255,141,252,198,243,44,234,214,237,83,248,40,251,102,246,170,240,233,239,97,244,21,240,82,221,48,211,196,224,126,240, +168,239,180,237,114,252,36,16,28,17,184,253,39,237,165,240,89,253,9,254,87,242,119,238,61,253,55,16,32,19,185,4, +228,245,147,246,24,4,130,10,118,1,192,252,174,11,101,28,215,23,89,3,196,245,144,251,135,9,100,9,192,250,166,246, +195,6,47,22,43,21,90,14,192,16,214,23,224,19,229,5,136,0,236,5,194,2,14,245,61,243,107,5,229,22,71,19, +209,2,98,1,17,21,73,32,175,16,177,255,190,10,164,38,138,48,42,29,218,7,84,11,223,24,134,18,204,252,139,241, +61,248,40,8,193,23,123,29,237,22,5,13,184,7,96,5,132,254,229,241,227,237,73,255,156,25,189,37,93,29,42,11, +105,0,17,5,26,6,107,238,21,210,182,215,229,252,190,22,33,10,57,237,141,230,71,242,97,236,163,214,178,216,239,246, +250,12,216,14,29,18,212,27,188,21,187,248,219,224,151,228,179,240,155,235,209,226,214,239,242,9,228,18,67,0,217,232, +158,234,162,3,76,20,123,13,60,1,220,3,107,20,118,31,240,19,141,252,95,242,140,246,15,251,126,0,70,7,68,4, +211,251,87,0,84,15,105,19,12,6,239,249,18,2,82,19,192,15,84,247,92,236,183,252,21,14,174,9,125,251,251,252, +162,13,172,15,15,248,34,232,214,246,207,4,189,244,29,229,118,252,211,32,160,28,233,246,60,234,143,4,174,17,230,248, +139,233,164,4,251,32,141,20,106,248,145,244,37,0,225,251,23,228,248,209,197,220,245,250,75,8,250,250,42,246,144,13, +96,33,1,18,64,241,21,234,11,5,110,20,5,244,104,203,86,212,233,251,23,11,101,252,22,231,214,217,221,231,212,13, +15,26,172,246,83,217,127,243,222,40,68,55,147,13,111,228,121,239,99,14,74,5,89,225,255,218,69,252,228,32,44,41, +54,19,122,252,71,1,206,18,235,13,215,244,16,234,91,250,98,14,93,18,151,14,238,10,250,251,131,229,109,228,168,251, +116,9,141,0,5,250,86,6,70,19,177,8,5,238,14,225,72,230,75,229,192,219,192,224,167,243,69,254,108,252,98,247, +118,243,239,244,66,250,127,248,216,241,125,243,165,248,64,245,225,241,98,250,123,5,82,5,84,252,183,247,41,0,32,14, +187,16,49,9,155,12,55,30,134,38,243,27,221,17,151,21,141,26,68,16,46,252,188,247,191,16,203,47,255,50,94,30, +49,20,213,33,126,48,34,40,64,16,170,6,17,23,247,42,133,43,107,30,107,20,95,16,236,10,83,3,3,3,16,12, +40,16,71,11,74,16,200,33,69,36,84,15,250,254,84,5,54,19,31,19,204,4,233,252,92,7,25,17,200,6,140,246, +30,244,195,249,56,253,236,255,68,1,110,254,112,250,85,247,147,244,149,243,225,242,226,239,190,238,247,241,102,243,228,241, +156,245,25,254,84,254,89,242,28,232,237,233,87,238,214,232,229,222,139,223,56,236,203,244,92,236,175,220,143,218,53,231, +244,238,43,233,44,229,13,242,61,8,176,17,16,5,37,242,240,235,223,238,165,235,221,226,2,227,161,238,1,247,88,245, +218,246,209,0,14,0,60,237,243,227,152,246,98,12,220,9,11,251,68,250,88,6,165,10,38,2,154,248,21,240,162,229, +115,232,174,0,18,13,34,242,254,213,135,234,20,21,93,21,82,239,9,225,220,249,106,9,235,248,107,234,139,244,168,1, +220,254,132,246,209,244,109,246,195,244,165,239,247,233,82,229,247,228,180,237,211,248,243,245,165,231,141,226,193,230,174,227, +145,224,159,238,53,1,139,3,191,252,75,252,70,0,87,254,241,238,153,213,17,200,238,213,38,237,98,243,193,233,72,225, +167,227,55,239,162,245,57,235,77,225,140,241,221,16,131,29,97,15,50,252,166,249,18,5,107,2,129,228,74,206,6,227, +34,10,7,21,29,4,36,250,40,6,104,23,10,25,29,13,201,7,136,17,97,31,56,38,9,34,97,21,206,13,151,20, +12,28,12,19,166,0,80,251,229,12,250,35,132,37,23,20,254,14,8,31,113,42,213,36,167,31,130,37,69,40,22,26, +214,7,200,11,175,32,109,31,54,0,27,242,220,15,209,47,55,37,5,4,195,252,177,19,209,34,106,24,10,13,26,22, +166,36,196,32,142,13,179,0,227,2,213,7,88,4,115,253,248,250,121,251,191,253,121,3,234,7,245,6,186,6,49,11, +25,16,89,21,49,28,66,27,107,10,6,243,90,231,128,238,153,249,30,244,196,232,59,248,184,23,170,18,119,233,31,222, +70,3,86,26,58,1,28,234,42,5,63,51,147,50,62,253,245,211,27,225,58,254,173,249,133,227,98,230,211,3,250,28, +168,26,199,0,35,237,236,245,94,9,213,10,96,255,172,253,52,9,121,20,144,19,197,3,51,238,138,226,199,233,179,254, +138,17,139,20,161,9,132,1,1,9,71,22,205,16,135,246,96,233,242,254,214,25,139,21,70,254,140,248,140,8,188,18, +242,9,254,0,222,7,141,16,0,12,46,6,36,9,210,7,191,254,162,255,174,12,143,18,6,11,33,3,149,3,186,8, +112,11,248,9,48,10,143,15,76,19,219,16,10,15,144,15,155,6,95,242,247,231,77,246,78,12,211,15,164,3,73,1, +121,14,77,17,56,252,7,235,200,247,154,13,51,12,165,252,26,251,30,6,20,6,51,243,92,223,169,223,99,241,9,253, +57,249,138,246,57,255,93,5,105,252,83,238,183,236,149,247,109,253,32,246,69,240,252,247,224,0,49,250,50,234,186,228, +244,238,13,250,31,250,254,246,12,253,99,7,167,7,35,253,87,246,108,252,10,6,101,5,68,254,242,254,235,6,216,8, +157,1,20,251,27,253,144,5,10,11,88,9,185,9,26,18,88,22,215,13,169,6,151,13,215,22,118,18,242,6,77,6, +113,18,18,27,9,21,159,8,92,5,4,15,204,26,90,28,95,19,248,11,171,15,146,23,237,20,5,8,85,1,71,7, +20,13,32,10,113,4,169,0,210,254,61,2,108,8,232,6,82,255,236,254,196,4,232,1,92,244,47,235,134,237,76,239, +59,231,228,224,107,231,224,238,118,233,165,223,153,222,59,228,69,232,124,230,188,223,98,219,223,222,81,227,214,222,140,211, +97,205,134,211,89,221,191,219,203,208,119,206,234,217,250,227,51,224,240,212,226,211,129,226,181,236,194,225,132,213,82,225, +46,243,196,234,70,213,31,217,37,243,49,251,156,232,143,224,120,245,102,7,79,251,102,231,109,234,217,249,169,249,41,237, +245,237,170,255,96,12,163,8,186,255,124,253,89,0,84,0,142,250,211,246,182,253,189,9,228,15,4,16,209,12,96,3, +104,247,125,243,84,249,203,2,123,11,12,17,62,22,219,32,241,41,90,33,192,8,40,247,67,252,118,13,25,20,97,12, +185,11,113,29,218,42,92,29,126,4,248,254,69,15,165,31,244,35,177,34,109,36,63,41,229,41,67,29,145,4,20,241, +188,241,239,0,109,15,185,21,239,19,179,14,91,13,44,16,229,14,53,6,192,252,182,250,48,2,213,10,158,7,124,248, +54,236,110,235,215,240,203,245,22,246,36,239,65,233,43,241,150,254,205,250,197,231,222,224,139,239,55,255,249,254,84,244, +248,235,26,234,221,235,213,239,78,245,147,245,186,239,8,245,24,11,84,19,56,251,246,229,182,244,126,12,2,5,4,237, +243,240,44,17,96,30,14,4,171,234,38,246,222,14,211,15,74,1,112,1,147,17,235,24,54,16,133,14,101,26,72,19, +137,241,76,230,85,6,156,28,129,5,6,234,248,246,211,24,86,31,0,5,241,245,78,9,226,26,76,14,83,0,85,9, +75,21,113,22,101,21,200,14,255,0,243,254,8,11,96,14,249,4,24,1,161,7,157,16,240,26,104,36,57,32,165,10, +147,250,9,8,244,34,90,34,97,4,96,247,177,16,52,38,70,16,218,234,202,232,9,3,154,10,30,249,200,243,73,6, +86,19,167,8,71,247,52,245,51,254,199,251,97,235,121,232,228,251,214,3,210,238,58,221,151,228,119,238,230,235,178,233, +250,235,140,236,13,239,197,244,22,247,205,245,124,242,152,237,144,240,91,253,56,2,18,249,144,242,214,245,25,250,44,249, +185,241,254,235,139,247,49,12,48,13,66,251,183,244,115,1,71,11,5,4,21,247,136,248,57,10,246,24,84,24,254,14, +98,6,181,3,129,6,117,4,202,251,73,252,245,7,91,13,194,9,223,6,233,3,202,0,183,2,22,7,34,13,36,22, +233,21,24,11,199,11,251,20,155,9,111,243,39,247,24,14,147,21,47,12,243,9,81,20,24,24,91,8,49,248,199,1, +137,23,30,25,229,13,42,18,100,29,116,21,233,1,83,251,176,1,10,6,165,5,0,6,161,9,170,17,155,23,249,10, +114,238,217,228,161,254,109,23,46,14,125,250,254,255,132,18,209,14,124,243,57,224,80,230,39,243,8,243,203,241,147,254, +41,9,137,255,65,239,174,233,137,235,99,240,110,247,241,248,195,246,177,253,104,6,200,253,25,235,100,228,180,235,207,243, +177,243,157,238,16,243,120,3,152,9,131,251,215,238,137,240,97,245,247,248,112,255,232,2,144,254,230,248,118,248,212,253, +59,2,11,252,169,240,170,240,231,252,226,7,93,9,144,1,119,253,239,13,204,33,74,18,235,235,169,232,173,13,61,26, +229,241,90,211,173,249,144,54,48,50,143,248,23,231,154,18,110,46,106,20,153,249,80,10,195,41,51,45,33,27,64,18, +135,21,60,18,182,5,26,254,177,1,72,11,71,21,160,29,65,35,66,33,233,19,199,6,244,9,55,21,21,18,43,2, +88,254,234,16,208,36,139,30,31,1,130,236,106,239,113,245,86,240,49,237,172,243,19,248,68,245,104,244,245,249,165,252, +237,239,175,216,220,209,243,231,218,252,164,242,87,222,128,228,110,249,47,244,19,211,140,193,89,215,108,243,100,237,190,213, +2,219,210,250,231,5,128,239,250,220,176,228,43,242,179,240,255,234,224,243,98,3,248,1,164,242,103,240,234,252,21,253, +211,237,32,236,168,0,117,15,168,6,96,251,36,5,204,19,63,10,2,244,24,243,21,4,156,7,100,251,248,247,139,1, +128,4,148,250,90,245,182,0,228,14,47,13,108,254,247,243,44,248,29,5,35,7,119,243,119,225,70,239,248,12,213,15, +7,248,195,239,246,3,183,16,238,0,226,242,236,1,40,22,121,17,75,3,128,4,218,10,10,6,220,254,88,255,51,1, +11,1,201,5,137,15,254,19,90,15,78,9,160,5,81,0,238,251,79,253,10,252,39,244,245,247,203,12,212,19,60,255, +164,244,163,11,242,25,161,248,73,208,80,222,239,13,30,20,250,228,129,197,11,225,253,10,224,4,250,214,65,190,151,216, +13,6,195,21,156,252,239,224,228,236,162,17,118,21,212,233,195,195,64,205,174,239,1,254,227,238,250,221,182,227,43,249, +138,7,40,5,253,246,237,233,168,241,236,15,112,34,212,14,240,239,134,240,120,11,163,20,146,249,71,221,132,232,255,15, +183,36,176,21,175,1,99,7,76,29,139,34,254,13,201,251,48,4,105,24,235,26,139,10,203,0,36,11,75,23,41,16, +207,2,151,11,245,36,185,46,117,34,17,25,235,30,55,37,236,30,231,18,62,13,39,14,209,15,137,19,207,27,132,32, +16,27,181,23,70,35,255,46,82,37,206,18,117,20,99,37,163,39,246,22,37,12,23,20,200,31,222,27,184,11,183,5, +24,18,63,30,108,27,94,18,205,14,163,15,9,15,96,9,206,255,188,248,84,248,221,253,60,8,171,17,149,15,191,2, +176,250,50,0,70,7,85,255,254,238,185,239,162,4,228,14,221,251,61,225,222,219,162,234,170,242,52,227,27,211,186,228, +212,11,43,27,155,8,144,242,138,238,98,247,147,250,75,235,238,214,1,215,62,234,106,249,151,249,169,239,91,229,185,228, +74,236,27,241,6,242,13,243,190,241,224,242,50,255,75,9,191,252,139,228,201,221,130,237,70,255,130,3,218,252,136,245, +48,245,233,254,199,10,184,4,150,232,136,215,113,238,48,17,209,13,136,236,3,229,197,4,101,28,62,15,106,250,132,252, +12,12,161,21,163,22,76,15,89,255,216,244,111,254,27,13,205,2,169,228,86,220,9,249,206,20,158,14,12,249,180,245, +143,5,107,20,213,22,87,13,59,255,57,248,117,252,253,255,196,244,2,221,230,203,175,214,88,251,29,20,111,0,70,221, +183,228,161,15,94,23,154,228,179,186,81,214,162,18,177,29,87,239,115,206,244,222,4,246,161,239,29,223,182,219,52,231, +249,3,56,38,198,41,239,5,93,228,100,230,167,250,50,254,236,235,105,223,234,240,155,21,232,40,190,20,133,236,116,221, +166,252,180,39,158,43,94,10,0,250,50,22,90,54,213,40,76,250,79,223,86,236,215,8,186,24,219,20,35,9,108,7, +5,17,74,22,179,17,231,9,230,255,179,249,253,5,101,27,138,27,2,5,48,246,97,253,191,11,204,15,241,6,191,253, +59,1,237,11,70,14,10,6,122,251,28,244,171,245,159,1,212,9,173,1,215,243,234,240,128,247,59,254,106,2,226,3, +106,3,221,4,145,7,218,4,161,250,75,237,193,226,69,226,239,236,19,246,106,244,47,242,198,248,202,252,221,242,249,229, +205,230,5,244,202,255,248,1,108,253,244,248,165,246,134,242,136,234,117,227,69,226,229,230,134,240,193,253,192,6,107,3, +153,249,193,248,82,3,195,7,76,251,40,241,248,254,88,18,39,10,127,243,110,247,235,16,212,19,220,251,18,245,57,16, +176,38,54,26,230,3,186,6,63,22,211,19,136,7,84,10,223,18,73,11,7,0,173,9,125,29,54,28,94,5,29,252, +221,19,139,47,216,41,79,13,112,1,185,12,158,19,185,10,42,0,48,253,86,0,182,8,79,16,239,12,47,2,130,254, +60,5,108,13,206,16,31,16,50,15,101,15,47,13,200,7,163,2,238,250,130,239,55,238,28,253,234,8,141,5,172,0, +180,2,224,3,127,2,137,1,145,253,144,249,67,0,106,14,139,18,178,5,183,245,146,243,20,252,27,252,164,239,122,234, +218,248,28,12,149,16,54,6,90,251,119,249,198,253,213,0,67,255,4,252,26,253,143,3,74,8,90,6,136,1,164,253, +84,250,141,249,169,254,68,8,108,17,189,22,12,26,200,30,176,31,42,21,35,8,251,6,105,10,66,3,15,250,154,2, +3,25,109,36,57,27,254,17,68,27,217,40,31,37,32,24,226,21,250,29,176,36,247,36,129,30,127,21,142,16,125,13, +53,6,48,255,17,1,86,11,42,22,255,25,44,22,61,18,132,17,153,12,163,1,170,252,89,4,129,13,169,11,250,2, +115,0,108,4,138,255,86,235,181,218,173,224,81,240,206,240,63,232,53,238,127,252,158,248,150,228,109,220,187,232,70,244, +168,237,56,224,192,226,45,242,128,243,68,224,97,209,145,213,22,222,205,218,194,209,6,213,133,230,195,240,228,231,112,221, +240,223,149,230,158,233,212,233,172,227,55,218,211,218,52,229,204,233,160,225,40,214,219,213,9,225,105,230,110,225,7,228, +237,239,18,242,246,235,61,239,85,251,51,4,120,1,217,239,242,222,182,228,19,244,167,237,20,215,210,210,178,235,129,6, +75,5,9,243,22,247,80,18,12,27,168,9,137,2,236,14,14,20,186,9,180,0,91,255,188,250,57,238,195,232,36,245, +155,0,161,248,216,240,66,2,7,30,127,38,88,26,27,15,43,19,214,29,163,26,161,5,174,240,175,233,39,235,21,231, +110,221,48,230,252,11,227,35,3,7,188,227,148,251,221,42,15,29,42,221,204,199,230,251,12,48,196,31,129,232,172,212, +4,237,202,253,121,243,32,230,12,227,86,241,169,26,231,61,191,40,234,244,47,234,85,10,224,25,4,1,186,223,42,224, +13,11,143,52,134,43,127,254,80,229,36,248,31,32,85,50,203,25,193,254,134,20,138,61,243,55,191,13,119,247,215,253, +64,7,202,11,86,15,5,19,231,22,152,24,34,25,81,27,2,23,184,9,222,6,153,21,108,29,215,16,39,4,204,7, +21,15,225,9,160,255,238,255,183,6,163,7,93,7,163,12,130,13,230,4,148,254,224,0,139,6,253,10,211,9,190,0, +47,246,75,242,28,248,76,3,44,6,138,254,101,2,108,21,4,22,43,251,17,235,186,246,177,1,107,250,176,240,255,244, +61,4,133,12,45,0,11,234,201,225,130,237,222,255,208,9,79,5,23,252,164,253,50,5,217,254,16,234,255,219,239,224, +222,240,70,253,13,255,30,251,2,250,202,250,112,246,253,238,176,239,240,251,185,7,170,8,140,6,65,11,239,11,164,251, +22,234,79,239,160,2,173,7,178,252,191,251,165,14,245,28,162,16,40,249,18,245,208,4,137,15,49,12,50,8,229,11, +235,17,106,19,247,12,102,0,137,247,12,250,11,2,31,5,233,2,182,2,52,8,65,14,134,11,180,254,150,243,217,244, +75,253,121,255,255,247,31,242,198,249,135,9,237,13,110,1,142,246,183,249,148,253,0,246,164,238,68,244,162,253,75,253, +208,248,147,252,159,3,186,254,79,240,174,236,24,250,218,5,200,3,205,2,120,16,10,28,129,15,159,246,2,238,163,245, +199,246,199,239,81,245,26,10,70,22,78,12,92,254,103,1,174,10,177,2,186,241,51,245,141,12,92,25,145,14,170,252, +71,246,112,254,26,8,16,4,85,249,55,0,232,26,161,43,220,29,108,4,212,255,25,15,157,16,103,250,95,240,226,8, +166,35,218,31,28,17,201,22,121,37,14,34,156,20,198,22,227,36,21,41,246,35,95,35,220,34,1,25,216,15,60,18, +116,21,23,13,96,4,12,14,242,34,23,41,210,28,120,20,107,23,100,23,83,18,116,18,241,20,112,18,42,15,86,13, +206,6,236,251,73,243,55,237,20,231,85,229,93,239,136,1,6,11,82,1,250,239,121,233,166,238,225,240,160,232,57,224, +200,228,207,241,91,246,1,236,173,220,72,212,246,212,47,216,242,218,1,227,111,239,203,243,157,238,194,235,55,235,159,227, +138,216,236,212,148,219,153,231,133,239,178,237,149,233,95,234,93,235,34,234,102,234,141,234,60,234,63,239,188,246,217,245, +100,234,124,221,18,220,166,233,128,246,48,246,52,245,245,252,59,255,56,245,151,235,50,231,184,227,193,228,183,237,128,248, +123,253,143,250,58,246,51,248,55,250,18,244,131,241,112,253,64,10,191,11,87,9,219,5,35,251,22,240,97,239,147,242, +120,241,0,243,242,251,205,2,210,1,189,1,47,9,17,16,7,13,99,7,114,13,100,24,98,16,228,244,85,225,58,225, +205,232,138,246,165,9,211,10,99,244,27,236,133,3,23,16,154,239,92,199,35,212,60,16,107,52,180,26,61,240,7,231, +204,240,191,237,60,224,124,213,40,213,214,235,63,21,173,44,235,23,190,237,216,218,161,235,64,1,181,255,248,242,39,246, +111,13,248,38,29,42,99,10,136,225,52,221,92,1,91,33,241,31,21,17,115,19,97,35,29,38,230,21,151,5,112,253, +108,250,32,5,96,31,242,48,0,41,183,22,28,15,169,20,21,27,102,22,66,11,154,9,106,19,95,28,60,29,109,20, +97,5,33,255,131,9,229,19,99,15,165,5,60,5,9,14,14,22,72,19,198,6,150,255,184,6,142,16,33,14,102,0, +247,243,105,244,210,1,225,12,94,8,25,255,136,4,193,18,58,18,178,255,20,240,189,241,63,253,81,3,7,1,157,1, +131,8,176,8,165,254,102,249,26,252,97,249,80,243,166,249,45,9,179,13,40,1,170,244,18,248,203,0,236,249,193,234, +1,236,78,251,11,3,159,0,233,253,137,251,164,248,205,248,102,252,112,0,114,0,52,251,142,249,55,0,100,3,197,252, +246,246,201,247,29,252,218,2,23,6,166,0,219,253,234,5,14,12,171,7,61,1,34,255,82,1,62,6,183,6,96,0, +117,254,176,6,155,15,174,16,50,10,177,2,58,3,58,10,197,10,152,2,240,252,211,254,4,5,131,11,250,10,222,255, +119,245,38,248,105,2,253,4,30,253,194,249,54,6,251,20,147,16,9,254,204,245,24,253,17,1,29,247,10,236,220,239, +2,255,15,7,143,255,20,244,19,242,25,248,77,253,60,254,112,252,203,251,167,1,127,11,122,12,53,1,15,248,203,248, +109,249,231,244,237,242,122,246,250,251,36,2,234,5,221,3,227,0,247,1,186,2,254,254,153,250,129,252,184,6,92,15, +73,11,189,3,163,7,98,11,147,254,43,241,30,247,201,3,230,7,195,13,181,27,114,34,67,26,189,15,170,11,77,8, +113,1,65,253,121,2,232,14,36,26,197,30,163,29,70,24,11,16,238,11,108,17,146,24,163,25,190,28,172,38,244,42, +20,35,213,22,50,9,26,252,195,249,101,2,17,11,233,18,116,26,86,25,33,20,85,23,205,24,190,10,29,253,11,4, +189,21,207,26,192,13,149,0,235,2,145,5,69,242,128,218,39,223,101,246,13,255,100,248,68,248,71,1,93,3,235,246, +172,230,121,225,90,232,97,240,52,242,1,239,161,235,140,235,26,235,13,227,196,213,75,207,229,213,233,225,25,231,42,229, +85,231,243,237,110,235,247,223,154,219,118,224,226,226,2,226,111,228,251,232,69,235,75,234,43,231,131,228,191,226,135,224, +5,226,128,234,186,241,75,240,109,236,62,238,69,244,169,247,195,243,64,237,110,239,115,249,210,251,43,243,157,239,27,247, +197,249,58,240,186,235,58,247,108,1,218,251,101,246,242,0,144,12,170,7,32,254,251,0,89,7,65,2,124,249,12,251, +2,1,38,0,3,254,24,2,246,4,55,0,145,251,192,254,8,6,169,9,83,8,242,7,9,12,173,15,230,13,138,7, +96,255,213,249,176,248,179,246,216,248,83,13,94,34,158,18,34,239,40,240,177,17,35,22,168,237,140,207,69,233,82,32, +170,51,37,18,147,238,143,240,217,4,44,12,84,0,192,235,221,231,9,6,22,39,143,30,2,248,255,224,101,231,10,248, +239,0,44,255,143,253,97,7,242,24,35,35,241,24,187,252,219,230,26,237,254,2,160,13,11,11,19,9,10,10,215,9, +132,9,20,9,163,4,94,253,208,253,193,13,242,33,79,37,243,20,112,2,178,251,208,0,213,9,106,11,89,2,241,251, +78,4,47,19,240,23,153,14,135,1,255,254,12,11,67,22,96,15,203,254,106,250,121,2,192,5,178,255,183,249,207,250, +0,3,140,9,35,4,194,249,105,250,69,3,144,6,240,3,138,2,95,5,208,10,66,8,106,248,211,238,250,248,112,1, +25,250,225,247,213,5,140,17,116,15,217,5,221,252,88,251,88,0,21,1,24,253,119,255,162,7,24,11,6,7,3,0, +20,253,142,2,107,8,91,4,182,253,223,1,167,11,147,10,252,251,120,239,194,242,100,0,84,8,228,4,141,254,91,255, +202,6,212,9,158,3,7,254,127,254,135,254,98,255,219,5,59,6,35,248,234,235,234,238,220,246,5,248,245,244,35,247, +188,3,205,16,198,14,229,2,120,254,238,255,56,252,181,246,217,245,29,246,85,244,31,242,187,241,212,245,3,252,108,252, +76,248,45,250,149,2,122,6,125,1,240,250,89,250,117,255,141,3,209,255,57,245,144,237,175,239,63,245,35,245,102,243, +211,249,119,6,69,14,200,11,208,3,112,255,219,1,50,4,217,0,121,254,36,6,38,19,125,22,146,11,16,1,107,3, +209,8,242,4,57,1,202,9,166,22,23,28,22,28,238,27,68,27,176,24,214,21,37,22,175,24,69,24,193,22,228,25, +30,28,145,22,79,16,76,15,102,16,133,21,115,29,212,26,1,16,235,18,71,34,45,35,116,16,143,1,135,4,5,16, +23,21,226,14,95,5,6,5,249,16,101,28,108,21,192,252,3,236,199,245,224,7,173,4,100,241,236,236,239,252,251,6, +236,253,24,241,93,236,249,237,39,246,79,0,56,0,173,249,105,249,118,247,13,234,126,223,20,225,250,225,91,222,247,225, +25,239,36,252,219,254,102,244,188,233,34,236,129,242,198,240,121,237,147,237,95,236,58,237,87,242,107,240,156,228,66,220, +138,223,174,236,22,253,64,3,206,249,3,241,223,245,18,252,112,244,249,229,48,226,21,238,199,254,92,5,82,251,135,234, +127,231,125,246,28,254,5,237,139,221,38,239,138,15,54,21,83,255,78,241,40,250,218,4,239,255,199,245,10,245,130,250, +98,255,66,5,240,7,208,253,28,239,211,239,72,253,84,0,161,244,33,239,15,251,134,11,216,16,183,9,158,1,234,3, +80,10,121,2,108,236,23,220,223,219,72,233,87,254,179,7,238,246,115,230,116,245,161,11,126,253,94,214,50,201,196,233, +246,20,159,29,132,4,11,239,63,236,184,236,78,232,161,221,8,204,110,204,49,246,139,36,40,33,34,250,144,230,126,242, +245,254,244,249,195,239,216,241,76,2,101,23,235,34,80,21,129,242,110,221,137,236,227,5,68,11,85,8,243,18,120,35, +16,39,253,28,16,17,94,8,155,0,64,254,56,9,24,26,79,33,247,29,113,23,103,15,103,10,213,13,47,17,18,12, +182,8,181,17,227,30,127,34,109,26,246,15,107,12,211,12,63,7,249,254,244,1,201,14,181,19,200,11,247,6,7,15, +180,23,188,18,132,4,121,251,232,253,242,6,124,13,117,11,235,3,82,1,146,8,104,15,25,8,251,247,83,243,209,253, +114,5,23,3,45,3,99,9,182,10,1,5,233,0,163,254,163,247,147,240,90,245,165,2,237,7,85,2,1,254,148,253, +203,250,48,247,178,245,205,244,97,248,9,2,141,7,167,4,237,0,197,253,251,247,66,242,148,239,184,243,59,1,181,10, +95,4,48,254,242,4,134,8,132,0,171,249,123,247,68,249,193,5,11,18,125,11,71,254,112,255,231,6,33,5,57,252, +212,245,38,250,15,7,190,11,242,3,202,2,100,13,85,17,178,9,223,2,129,255,92,252,155,253,212,2,27,3,50,253, +130,249,170,252,175,2,36,3,46,249,225,237,219,241,241,3,60,15,221,10,99,4,241,4,210,5,95,0,218,244,193,232, +163,230,75,241,249,251,31,254,83,254,254,0,185,1,46,254,232,247,12,243,23,246,85,255,9,4,7,2,75,1,99,3, +96,2,228,251,20,243,142,237,24,240,87,249,38,2,39,5,120,4,254,5,175,8,115,4,182,249,178,244,7,251,185,3, +16,5,49,1,233,2,160,12,73,15,48,1,99,243,166,248,11,8,194,15,68,15,99,15,57,20,45,27,67,27,39,14, +191,252,188,247,15,3,129,16,122,17,98,11,144,15,241,29,215,35,15,27,31,18,33,19,138,24,144,28,185,32,83,34, +220,25,116,13,217,12,150,18,174,10,35,252,134,255,36,16,85,22,164,18,45,21,138,28,231,25,122,10,98,255,96,7, +116,20,31,15,217,255,73,0,129,13,80,15,168,253,7,230,129,219,54,229,174,243,87,245,201,241,82,249,9,7,212,9, +97,253,64,237,38,230,208,231,24,233,19,233,245,237,148,244,137,242,157,230,37,219,65,216,223,216,43,213,167,213,117,230, +104,251,175,255,62,247,58,241,93,236,246,226,224,219,142,222,33,230,86,232,154,228,154,230,177,241,177,244,109,229,148,215, +119,224,170,246,224,1,85,251,66,241,236,241,162,249,125,248,167,234,34,224,229,229,215,244,145,255,235,1,212,252,138,244, +210,243,247,251,162,251,68,238,167,235,63,253,66,9,175,0,62,247,25,252,153,3,72,2,163,254,244,0,223,4,85,4, +148,4,147,8,222,4,152,247,36,245,109,3,3,11,60,2,25,253,227,4,229,10,218,8,18,9,207,13,216,14,21,13, +97,14,52,12,120,0,237,245,116,243,26,242,149,247,51,14,106,32,29,21,85,1,224,4,209,17,35,7,157,232,164,219, +87,244,212,22,148,28,220,10,28,254,54,249,168,245,247,247,187,247,228,237,198,243,211,20,130,43,110,30,168,2,243,236, +185,224,144,227,128,241,166,249,64,251,144,5,251,25,18,37,178,20,233,243,170,230,101,248,53,10,227,9,207,11,132,24, +108,25,208,6,35,245,36,240,61,240,23,241,216,248,251,11,96,35,49,46,191,34,207,12,199,255,166,254,34,255,205,252, +176,251,196,255,5,9,71,17,136,15,12,3,142,245,187,241,231,251,160,13,252,23,54,20,99,12,225,11,180,16,182,14, +45,253,44,231,23,229,129,248,52,6,216,0,159,248,137,251,54,6,130,15,216,15,46,8,55,3,221,5,44,10,93,10, +226,3,72,250,141,248,229,254,5,0,73,252,153,254,252,0,111,251,130,250,113,6,131,17,7,17,107,11,66,10,239,14, +144,16,108,5,157,243,62,236,102,244,168,0,145,5,72,4,53,6,132,12,222,12,48,4,111,252,9,251,74,252,238,254, +124,4,155,10,1,12,22,6,39,253,25,247,120,242,240,237,239,239,27,249,141,1,29,9,184,16,22,14,33,1,32,251, +210,253,29,248,196,233,110,229,111,241,99,0,121,3,11,250,66,241,66,242,121,246,175,245,10,243,162,244,194,251,78,6, +188,12,76,6,70,247,2,238,182,237,140,236,230,231,224,231,59,239,129,249,213,3,78,9,132,3,229,248,175,247,17,255, +152,1,175,251,76,247,76,253,81,9,54,12,172,0,173,245,91,247,5,254,41,1,13,5,117,13,151,22,143,27,101,25, +23,18,186,12,39,11,106,7,177,0,79,255,152,7,16,18,131,22,233,23,74,27,226,27,158,23,125,24,172,32,117,34, +241,24,227,16,207,18,88,23,235,18,55,6,15,0,238,7,51,17,53,18,158,18,189,22,78,25,139,26,44,27,157,22, +111,16,87,15,54,14,7,10,203,9,230,9,65,255,42,242,104,244,85,1,164,4,162,251,186,248,190,4,202,15,237,10, +46,255,32,251,71,251,114,246,246,240,172,242,234,245,207,240,17,232,253,231,57,240,222,246,50,247,123,241,89,235,92,240, +92,253,103,252,240,234,24,226,73,234,134,241,168,240,212,240,137,243,87,242,45,237,173,235,185,241,70,245,93,237,183,232, +111,247,147,8,17,4,141,242,226,233,207,236,12,242,43,243,48,240,143,241,207,253,161,11,185,11,149,252,58,236,51,233, +179,241,139,245,157,239,67,239,248,252,130,9,234,5,222,249,101,245,164,249,86,252,208,250,207,251,167,0,183,2,38,0, +98,253,80,249,177,239,48,232,208,238,9,252,125,254,17,251,5,2,1,12,167,8,36,0,240,0,183,2,175,249,79,239, +57,241,123,247,180,240,7,230,117,243,242,14,229,11,3,238,101,235,179,7,167,11,140,235,44,216,95,234,176,6,231,13, +198,255,113,240,203,234,170,233,125,235,171,239,173,234,216,225,62,241,125,19,50,29,83,5,83,238,69,232,245,232,17,238, +210,247,6,252,137,249,254,254,126,15,103,21,117,1,119,232,208,231,119,249,200,5,51,13,118,24,62,27,252,13,114,5, +66,14,134,17,201,253,78,237,203,254,169,32,120,44,224,31,108,17,155,8,3,5,113,11,182,19,213,13,225,1,252,6, +16,28,168,39,129,28,197,9,175,3,109,9,161,13,108,13,82,13,55,12,203,10,238,14,165,20,150,16,156,5,169,1, +185,5,235,5,237,255,80,254,57,5,54,12,248,12,224,10,115,10,118,10,184,6,238,254,170,248,145,247,76,249,16,254, +38,8,120,16,73,14,89,6,78,0,183,250,27,246,215,247,186,253,104,1,212,3,190,8,177,12,69,6,19,244,123,230, +78,236,245,250,124,1,86,4,4,12,169,16,51,11,3,1,30,247,119,238,196,233,203,236,32,249,56,8,52,12,209,1, +229,246,208,246,177,254,77,3,152,251,143,241,86,253,247,26,86,36,136,11,212,240,197,238,10,250,25,253,244,245,254,242, +198,252,138,10,124,17,207,17,5,12,135,255,206,247,136,255,100,11,34,11,23,3,100,1,0,8,130,12,127,5,247,245, +53,236,116,241,138,254,237,5,14,4,149,1,226,6,171,14,140,10,133,249,184,238,12,246,141,0,210,253,231,247,179,254, +156,8,116,2,126,241,217,235,22,246,70,254,254,249,214,245,10,254,180,9,185,10,207,0,59,243,226,234,10,241,53,0, +106,4,90,250,150,245,120,254,123,6,115,2,148,249,163,247,111,252,1,0,212,2,230,8,215,8,191,251,174,242,250,250, +13,4,116,255,231,249,225,254,110,6,11,9,214,8,160,6,103,0,121,249,227,250,1,7,130,16,14,11,116,0,175,1, +48,11,204,13,112,8,14,6,113,11,30,19,8,21,45,14,148,4,99,1,117,3,72,1,115,253,110,6,47,25,108,31, +71,21,54,16,212,24,48,30,49,20,151,6,4,8,21,23,59,30,230,18,61,3,220,251,116,250,186,253,198,4,60,8, +166,10,71,22,166,34,120,30,78,13,127,254,96,248,134,250,255,255,91,1,133,0,112,4,77,8,124,0,38,236,162,217, +113,218,189,236,47,249,183,246,43,249,230,8,242,14,45,252,35,225,147,211,128,215,158,228,229,239,19,242,133,238,5,239, +233,243,131,240,215,222,48,206,215,209,27,231,33,249,144,251,130,246,126,246,225,249,4,246,46,233,180,221,63,222,13,235, +63,248,26,251,92,248,185,248,74,248,165,243,129,242,162,245,176,244,69,243,241,250,255,5,208,7,7,255,102,244,149,241, +190,247,223,252,238,249,109,245,191,249,61,8,122,20,251,13,245,249,246,242,222,254,186,4,71,250,63,243,26,251,162,5, +114,8,77,7,203,5,167,0,91,250,173,253,67,9,248,12,186,6,84,6,177,14,57,19,160,15,135,7,60,253,223,247, +179,254,47,11,34,16,112,11,104,8,232,14,39,19,174,6,106,245,73,242,87,246,184,249,182,10,200,38,47,46,207,25, +243,8,0,11,144,8,225,237,84,208,69,213,85,249,104,18,178,15,126,8,55,7,181,254,21,241,10,237,98,241,197,247, +128,5,204,26,4,39,246,27,27,1,78,233,102,218,225,206,110,205,5,227,29,5,56,26,61,29,214,26,102,22,44,11, +91,251,205,237,36,233,253,244,127,15,217,34,104,25,84,253,166,238,227,245,132,249,130,235,19,229,247,254,191,38,232,55, +102,44,143,24,178,8,208,251,84,241,182,234,223,233,172,241,142,255,50,11,162,16,2,17,110,12,60,4,36,253,121,252, +60,5,68,17,88,19,60,11,99,6,195,5,106,254,93,242,92,235,0,233,198,233,156,242,234,2,130,17,246,21,168,16, +243,12,133,17,172,17,19,3,233,242,219,238,220,242,140,250,58,5,242,9,66,3,48,251,114,251,108,0,95,0,101,248, +230,243,143,255,252,18,220,25,82,15,28,253,225,237,130,235,178,245,231,252,252,250,81,254,65,13,254,24,247,19,31,255, +77,229,178,214,50,221,195,240,70,1,119,7,15,7,145,7,89,10,110,6,10,247,130,232,188,233,233,250,54,17,172,28, +23,16,50,245,102,231,114,235,172,234,174,223,252,224,2,249,89,22,186,36,27,31,10,14,240,254,82,248,255,246,242,246, +224,247,203,251,105,4,208,11,187,6,56,247,243,237,17,242,42,251,128,3,52,12,234,19,203,23,119,22,31,13,153,252, +200,239,38,240,127,247,226,249,194,248,20,254,28,9,203,14,106,10,79,3,204,3,226,12,176,18,66,12,157,2,61,1, +124,2,89,253,167,246,37,246,2,251,116,0,199,2,45,3,195,6,213,11,64,12,144,11,21,15,225,16,5,13,91,8, +31,2,228,247,186,241,20,244,26,247,75,248,247,253,125,7,175,13,213,13,240,9,161,4,53,0,69,255,16,4,221,10, +161,10,84,3,150,255,227,0,62,252,241,239,179,233,181,242,58,3,249,13,203,15,81,14,143,12,24,9,40,3,67,251, +207,244,106,246,255,255,228,7,208,8,62,6,28,2,126,252,61,249,75,251,84,0,171,4,111,7,253,10,101,15,221,13, +51,3,173,248,67,246,206,247,44,249,25,253,207,3,154,8,222,8,52,7,231,7,245,8,2,3,215,248,245,247,164,1, +19,7,84,1,225,249,21,250,149,255,75,1,252,251,163,247,226,251,214,4,137,10,234,10,172,7,77,3,29,0,196,252, +178,246,2,241,8,241,236,245,67,251,94,0,187,5,139,7,61,3,54,254,182,253,121,254,53,253,8,253,253,254,138,255, +229,253,150,251,133,248,225,244,20,242,24,243,206,250,216,3,156,4,147,0,49,2,28,6,116,3,159,252,97,246,195,241, +65,243,85,251,237,255,183,251,243,245,8,247,180,255,40,7,84,3,173,249,75,249,4,2,100,6,48,1,254,247,234,242, +216,246,95,254,178,255,226,251,176,250,195,253,55,2,10,4,106,0,36,252,220,252,171,254,58,254,161,254,122,254,127,251, +92,250,88,251,117,250,24,252,230,1,163,2,37,254,107,254,91,2,239,1,168,252,76,246,120,245,201,254,248,6,151,1, +84,249,248,250,47,254,234,251,235,250,127,252,110,253,123,1,209,7,147,8,247,3,176,254,255,248,183,245,214,247,143,250, +47,252,170,1,142,7,42,6,69,1,57,255,194,253,162,251,169,251,81,253,69,0,69,5,107,6,66,255,187,247,209,246, +86,247,68,245,32,245,243,249,123,1,123,7,34,7,155,0,238,250,74,249,42,247,171,242,15,240,207,242,177,249,50,255, +36,254,213,248,216,245,92,246,238,247,77,250,213,252,105,254,32,1,243,4,166,3,76,250,35,240,237,237,48,243,242,247, +129,248,111,250,216,1,74,9,157,10,180,6,68,1,112,254,100,1,20,6,108,5,116,1,117,0,175,0,35,254,6,252, +12,254,80,1,187,2,163,5,198,13,82,21,135,18,157,8,180,4,205,7,65,7,92,2,103,1,50,4,69,5,74,5, +210,5,84,4,1,1,179,0,74,6,161,14,2,19,181,16,87,12,184,9,250,6,5,3,1,255,19,251,162,250,238,1, +198,10,0,12,189,8,84,7,250,5,179,4,8,7,5,9,153,6,159,5,117,9,158,11,191,7,223,0,55,252,4,253, +21,0,92,0,230,1,112,9,100,15,154,13,97,10,248,8,58,5,175,0,172,254,247,252,126,252,94,0,18,4,134,3, +155,2,218,2,75,1,71,255,234,255,16,2,112,3,96,3,224,2,144,3,53,3,5,254,117,247,37,246,188,248,118,249, +206,247,21,248,89,253,114,4,68,6,45,2,114,255,7,1,240,1,125,254,13,249,210,246,141,249,252,251,204,249,75,247, +150,248,9,251,43,253,37,255,224,253,78,251,40,255,245,6,224,7,136,1,196,252,217,252,74,254,121,253,86,250,39,249, +208,252,174,1,98,3,124,2,14,1,220,255,65,255,94,255,218,0,25,4,151,6,201,5,238,3,51,4,160,4,166,1, +76,253,195,252,91,255,189,255,173,254,244,0,228,3,160,2,210,0,249,1,141,2,95,2,59,4,232,3,58,254,185,249, +186,250,130,252,237,250,189,247,175,247,20,253,124,2,199,1,237,254,64,255,199,255,226,254,135,254,50,251,32,244,121,242, +249,247,174,249,151,244,191,241,92,245,252,250,5,254,201,253,145,253,40,0,201,2,180,1,183,253,148,248,180,243,86,242, +138,244,110,245,120,244,194,246,175,252,25,1,40,2,37,2,129,2,78,3,203,3,104,2,168,255,255,253,58,253,191,251, +195,250,6,251,74,251,132,253,38,3,29,6,72,3,8,3,145,9,177,13,218,9,26,5,43,5,231,5,42,1,160,248, +216,244,14,249,100,255,47,6,252,15,134,20,101,12,207,4,162,8,36,9,170,251,73,241,36,249,206,8,36,16,38,13, +254,6,111,3,189,3,149,6,127,8,168,5,62,3,105,12,134,26,79,23,1,3,252,246,177,250,227,252,35,249,33,253, +138,10,125,19,161,18,220,14,154,9,91,255,4,248,44,253,12,4,58,0,215,255,233,14,241,21,235,255,10,228,149,225, +12,240,109,244,96,238,97,243,33,7,117,19,67,11,207,250,192,237,60,228,181,227,60,239,113,248,163,247,228,249,69,1, +192,252,205,234,171,221,140,221,19,228,54,237,219,249,231,7,183,15,220,11,69,1,203,246,132,235,160,226,166,230,7,244, +117,251,42,254,83,7,121,15,187,7,137,246,91,239,222,247,87,4,70,9,212,8,170,11,240,16,206,15,128,5,205,247, +241,238,244,240,32,251,113,3,187,6,4,11,146,17,64,20,24,16,206,8,201,3,127,2,38,1,65,254,73,254,65,1, +182,0,149,253,108,255,233,4,187,6,181,5,71,7,206,10,42,12,252,10,26,10,235,9,4,7,164,1,252,255,25,2, +18,0,255,251,136,1,233,13,33,18,29,14,23,14,189,17,242,15,221,9,152,5,88,2,140,255,221,1,106,8,91,10, +142,5,149,3,241,8,89,11,106,4,218,255,28,6,15,11,59,6,120,3,136,7,111,4,245,248,94,246,223,253,123,254, +204,246,52,246,24,255,213,3,53,255,22,251,206,252,109,252,10,247,51,246,79,250,148,247,15,241,243,244,31,253,230,249, +141,242,34,246,82,254,108,254,199,249,130,249,31,253,138,253,115,248,239,244,140,248,86,253,154,253,104,253,112,254,71,253, +58,253,102,1,145,2,37,254,203,253,228,4,210,10,107,10,184,6,136,3,100,2,96,2,201,1,185,1,43,4,30,8, +115,11,153,12,1,10,2,5,83,2,89,3,36,4,105,3,180,5,27,12,106,15,201,11,49,8,43,10,82,13,93,13, +63,11,167,7,221,4,183,6,168,8,205,2,111,250,97,251,241,4,121,12,210,12,199,10,231,12,13,17,230,15,28,11, +38,9,96,7,246,3,141,6,122,12,98,7,187,250,167,247,209,251,167,249,150,246,178,254,136,10,147,13,12,14,250,21, +140,26,110,12,53,247,218,241,152,247,56,244,194,236,93,243,202,0,39,2,190,251,58,251,212,251,226,245,85,244,237,255, +109,10,200,7,54,4,206,7,223,1,225,235,48,221,143,226,181,233,137,232,139,238,112,1,27,15,125,12,54,4,24,0, +149,251,202,243,22,241,63,246,24,249,194,246,124,248,196,252,202,247,143,237,174,237,221,247,119,255,111,2,78,7,89,13, +247,13,179,7,193,254,15,246,2,239,69,237,39,242,156,247,162,249,31,253,232,3,86,6,7,1,170,251,234,252,244,1, +190,3,33,0,126,252,73,253,240,253,159,248,192,240,153,237,235,240,134,247,251,252,230,254,174,255,20,2,212,3,234,1, +8,253,72,247,165,243,50,245,65,249,111,249,84,246,115,246,155,250,105,253,194,252,188,251,172,252,71,254,118,254,83,253, +42,252,165,250,10,248,99,246,225,247,42,250,209,249,167,248,99,250,235,253,230,255,72,0,81,0,112,255,90,253,101,251, +93,250,47,249,210,246,61,245,209,247,66,253,110,0,173,0,16,1,209,0,27,254,141,251,106,251,120,252,171,253,82,254, +81,254,214,255,200,1,244,254,28,249,232,247,159,251,98,255,23,2,179,3,241,4,36,8,231,8,100,1,104,249,50,250, +56,253,214,251,181,251,80,0,148,6,33,12,84,12,106,5,232,0,125,3,34,4,76,0,68,255,231,0,38,2,93,5, +209,7,12,4,130,254,31,253,165,254,17,2,236,5,93,6,215,6,183,12,232,16,100,11,186,1,119,251,234,248,111,249, +155,251,165,252,222,254,168,5,15,12,89,11,189,5,122,2,211,3,68,5,156,3,211,2,114,6,102,9,176,5,184,253, +239,247,114,247,157,250,129,253,116,255,226,3,231,10,164,15,207,14,6,9,64,2,9,0,202,1,217,0,42,253,235,252, +145,255,94,0,163,255,181,254,192,253,1,0,16,6,16,10,239,9,242,9,237,10,159,9,219,4,56,254,123,249,34,250, +212,253,143,255,183,255,41,1,100,3,77,5,220,6,9,7,34,6,217,6,133,9,247,10,162,8,172,2,20,252,244,248, +188,249,228,250,144,251,30,255,242,5,170,10,36,9,60,4,148,1,80,2,159,3,190,4,34,7,217,8,125,5,198,253, +41,247,58,243,173,239,186,238,232,245,251,3,232,15,109,18,244,12,190,6,55,3,38,254,228,245,59,242,131,248,100,2, +166,7,155,6,161,0,225,248,246,243,244,242,146,244,247,249,99,3,191,13,167,21,119,22,198,12,201,254,88,246,63,243, +196,240,245,240,91,247,214,1,123,10,201,10,155,2,199,251,138,252,45,254,178,251,225,251,254,3,14,13,216,11,108,254, +145,239,247,233,230,234,155,234,124,235,216,244,109,5,78,19,229,20,38,10,121,253,69,246,200,240,186,233,233,229,18,233, +203,240,75,248,168,250,228,246,110,242,47,242,0,246,227,251,214,0,33,3,93,6,10,11,32,8,247,249,90,235,108,229, +236,229,28,233,184,238,134,246,120,0,47,11,112,17,7,16,228,10,242,6,4,4,18,0,25,252,235,250,164,252,201,253, +33,252,195,250,4,254,242,3,99,6,193,5,21,9,123,16,210,19,242,16,222,12,179,8,240,2,37,253,28,248,109,244, +181,245,146,251,49,1,54,7,133,15,156,21,119,23,4,23,131,16,206,3,92,252,131,253,181,251,205,243,239,240,97,249, +155,6,199,12,171,7,89,3,122,11,204,21,198,19,41,12,6,11,254,12,0,11,1,5,114,252,112,244,37,242,145,245, +233,250,51,1,82,8,159,14,254,17,182,15,146,8,25,3,224,1,242,255,154,252,139,253,217,2,169,5,12,2,185,249, +102,240,107,234,156,235,62,243,113,250,147,252,200,255,32,10,96,17,48,7,15,242,49,230,84,233,233,239,31,242,42,244, +108,250,238,0,148,1,188,251,90,242,117,233,132,231,192,239,18,251,40,1,140,4,90,10,75,13,120,5,201,246,23,237, +88,237,151,242,20,248,193,254,98,7,145,14,196,16,23,13,193,4,107,252,108,250,208,255,50,7,1,12,133,14,166,16, +89,17,95,12,158,0,153,245,101,244,3,252,213,4,30,13,120,23,240,31,250,30,38,21,123,9,222,255,116,249,184,248, +229,253,171,4,90,9,8,12,64,13,43,11,223,4,167,255,51,2,106,9,74,13,52,15,1,19,60,18,15,9,36,0, +53,251,39,245,54,242,32,250,147,5,129,10,152,12,105,16,155,16,138,9,113,1,88,0,246,4,104,6,62,3,94,3, +1,6,116,2,162,251,254,248,79,246,3,243,248,249,50,8,66,12,254,5,239,4,128,9,18,6,249,249,193,243,187,248, +181,252,189,248,162,246,217,249,176,246,2,237,229,235,38,245,189,253,217,3,219,8,251,6,135,254,36,248,152,244,140,237, +178,228,35,229,188,243,124,3,233,4,7,254,186,252,168,251,54,243,160,239,4,248,178,255,215,2,133,10,18,17,229,8, +217,246,109,234,234,232,155,237,198,243,143,252,182,10,160,23,180,24,209,15,242,5,23,253,135,246,25,247,115,252,118,0, +27,5,119,11,76,11,154,1,205,247,3,245,99,247,249,252,234,5,92,15,202,20,46,20,126,13,34,2,156,246,121,240, +60,241,25,246,137,252,70,4,19,12,58,15,141,10,252,2,244,255,22,0,20,254,9,253,169,1,86,6,208,4,4,1, +207,254,68,251,65,247,86,249,200,1,20,9,7,11,166,10,140,10,234,7,254,0,240,250,244,249,54,250,241,248,87,250, +56,255,176,1,142,0,200,0,62,3,158,4,213,4,194,5,194,5,13,2,189,252,178,250,207,251,127,251,67,249,37,249, +245,251,204,254,69,0,3,0,85,253,123,250,2,252,18,2,232,6,222,5,196,0,119,252,200,250,242,249,16,248,236,245, +73,247,7,254,72,5,155,7,211,6,118,5,227,0,128,250,145,249,23,254,167,0,230,255,235,0,29,5,66,8,2,6, +125,255,155,250,114,250,25,254,85,5,145,11,25,8,95,255,187,255,218,5,210,1,35,247,145,246,1,0,19,7,154,8, +27,8,173,5,195,0,46,252,3,251,234,251,236,250,204,249,179,254,5,7,193,8,51,3,103,254,83,252,253,249,43,249, +88,252,93,0,2,2,151,2,252,2,30,1,27,253,118,250,81,250,16,251,94,253,41,2,136,6,216,7,12,6,205,0, +137,250,61,249,123,252,127,253,100,252,249,254,120,4,253,6,78,4,72,255,93,253,6,1,163,5,200,6,19,6,139,4, +34,1,17,254,150,252,37,250,115,248,5,252,223,2,53,8,191,10,124,9,172,4,31,1,42,1,169,0,88,253,129,251, +252,254,197,3,7,2,207,250,252,247,139,251,105,253,67,252,209,254,21,6,181,12,97,13,115,5,173,250,63,247,237,248, +162,244,211,235,222,234,162,245,10,3,100,7,35,1,1,252,168,255,157,3,89,0,181,250,17,247,158,246,35,252,176,0, +226,247,209,233,100,234,216,246,75,252,30,248,74,247,121,255,105,8,195,7,242,254,227,248,224,248,41,248,51,245,71,244, +56,245,228,246,139,250,223,252,218,250,188,250,144,0,14,4,67,255,81,249,179,249,40,253,57,252,142,245,169,239,44,241, +206,247,240,250,93,247,255,242,68,245,253,254,119,8,228,8,247,1,180,253,85,254,79,251,149,240,65,229,16,226,217,232, +105,243,33,249,232,249,223,253,132,5,198,6,166,254,103,247,86,249,7,0,92,1,151,251,1,248,14,251,251,250,203,241, +64,234,181,237,250,246,232,255,102,8,54,14,236,14,209,13,94,13,76,10,203,1,163,247,64,244,147,250,170,1,35,1, +151,254,13,2,135,7,138,8,81,7,252,7,52,10,197,12,24,15,112,15,119,12,154,7,7,3,29,254,140,248,81,247, +45,253,143,2,23,2,215,3,211,13,254,22,235,21,227,14,108,11,21,12,140,8,239,254,28,250,139,253,39,252,206,243, +132,245,5,3,23,9,49,4,219,4,111,16,253,26,164,26,125,18,160,13,141,14,15,10,231,252,122,243,131,242,239,243, +117,249,145,4,96,11,193,11,95,15,54,20,198,15,234,5,213,2,215,7,236,12,201,12,170,9,99,7,20,3,164,249, +104,241,243,238,45,237,212,237,255,250,5,15,227,22,118,16,79,11,51,12,97,7,16,248,66,235,227,236,203,246,150,252, +14,253,198,252,220,251,27,250,33,249,26,248,167,247,130,252,87,6,148,13,76,14,196,11,149,8,200,2,243,248,233,239, +45,239,201,246,36,255,132,4,186,9,104,15,126,18,213,17,7,14,176,7,11,2,128,1,69,5,6,8,93,7,193,5, +189,5,200,6,8,6,161,1,29,253,52,255,200,7,14,15,156,17,233,18,238,18,188,13,31,4,203,250,235,244,26,244, +209,247,51,253,226,2,124,8,119,11,196,10,159,8,24,6,251,3,231,4,242,7,226,8,23,7,93,3,121,252,222,244, +186,241,8,243,6,247,168,255,45,12,98,22,54,26,15,24,74,17,12,8,129,255,21,250,71,248,201,248,47,251,171,0, +77,6,244,5,196,1,54,2,128,6,99,7,14,7,139,11,105,15,37,10,179,0,54,253,201,252,249,245,96,237,102,241, +201,0,101,9,68,4,48,254,153,255,246,0,80,252,19,247,241,245,80,247,204,250,78,255,112,253,21,243,4,236,250,239, +4,246,163,246,10,248,101,254,105,3,222,2,175,255,231,251,165,246,127,241,153,241,204,247,168,251,60,248,172,246,24,252, +121,253,43,248,22,251,101,7,54,11,114,3,178,254,126,0,123,255,72,248,198,240,184,240,54,250,49,5,76,8,218,3, +170,253,64,250,210,251,227,254,253,253,144,252,248,0,179,6,70,5,17,253,123,243,176,236,59,236,88,242,81,250,121,0, +82,5,153,8,179,6,150,254,120,246,200,244,13,248,135,251,100,253,60,253,216,252,81,254,77,251,98,238,153,229,103,240, +163,2,204,7,153,3,200,4,80,10,237,8,187,254,179,246,213,248,200,253,117,253,53,253,55,254,159,246,139,234,224,232, +1,239,82,245,67,3,203,22,51,29,214,21,101,16,187,9,25,245,221,220,225,215,223,231,184,248,92,255,177,5,14,14, +210,7,126,244,120,238,23,248,59,250,254,248,38,10,125,32,145,29,140,4,252,237,163,225,182,217,50,216,45,229,21,254, +167,20,103,33,59,38,11,30,242,5,240,239,44,235,77,237,96,239,143,252,44,17,97,23,227,11,60,255,117,248,32,243, +79,240,204,247,147,11,109,32,222,40,149,36,159,25,13,8,61,243,189,230,169,230,166,237,248,249,140,10,33,24,252,28, +245,24,161,14,183,4,155,1,117,3,190,5,70,8,11,11,252,11,13,9,218,0,250,246,75,243,227,246,108,252,38,3, +209,11,183,18,214,21,42,21,220,14,51,6,162,1,164,254,19,249,77,246,154,249,231,253,54,1,213,4,137,7,186,9, +83,11,86,8,5,3,19,2,76,2,235,254,235,253,64,2,17,5,226,3,92,1,230,253,138,251,244,251,34,252,141,253, +135,4,87,11,125,11,74,9,193,6,201,255,167,247,44,244,240,243,197,246,112,254,241,5,218,8,94,9,166,7,135,2, +131,253,190,250,155,249,255,251,31,1,26,4,192,4,100,4,98,0,163,250,55,249,239,250,93,252,11,0,15,6,129,9, +115,9,94,7,125,2,81,252,103,248,65,247,53,248,75,251,90,255,40,3,158,5,242,4,42,2,69,0,98,254,33,251, +166,249,144,251,222,253,1,255,111,255,134,254,175,252,95,251,104,250,154,249,200,249,26,251,141,253,61,0,133,0,41,254, +170,251,6,249,212,245,174,244,215,245,16,247,168,249,30,254,32,0,8,255,146,254,175,253,38,250,156,247,159,248,98,250, +82,251,71,252,19,253,85,253,183,252,14,251,64,250,9,251,94,251,129,252,231,0,12,4,220,1,112,255,21,0,236,254, +250,250,69,249,246,249,42,250,75,251,98,254,57,0,58,255,207,253,6,254,252,254,116,254,87,252,135,251,12,253,20,254, +44,253,232,251,142,250,163,248,226,247,244,248,103,249,230,248,47,250,17,253,107,254,0,254,143,253,156,252,215,250,253,249, +246,249,78,249,57,249,139,250,253,250,163,250,55,252,106,254,52,254,86,253,98,254,25,0,219,0,99,0,222,254,7,254, +214,254,113,255,87,255,125,255,194,254,60,254,112,1,235,4,29,3,6,1,163,4,105,8,63,7,33,5,114,4,161,3, +145,3,90,4,17,4,23,4,182,5,180,6,203,6,193,6,241,4,238,2,60,4,24,6,156,5,78,6,163,8,77,8, +46,6,98,5,17,5,197,5,153,8,2,10,17,9,126,9,8,9,217,2,195,250,174,246,94,246,31,249,41,255,174,5, +122,10,149,13,118,13,21,9,51,2,43,251,4,248,244,251,14,2,203,3,163,3,19,4,196,255,241,245,192,238,63,238, +70,242,155,250,249,6,102,18,17,23,68,19,251,9,6,255,123,243,23,234,125,233,218,241,151,250,93,0,47,6,255,8, +44,4,210,252,19,250,157,251,52,255,151,4,220,9,89,11,174,6,44,253,128,243,86,236,159,231,228,232,3,243,95,255, +24,7,71,12,51,15,208,10,186,1,198,251,231,248,216,245,134,244,98,246,154,248,124,248,197,245,61,243,9,244,122,246, +154,248,160,253,70,5,35,9,211,8,159,8,111,6,40,0,77,250,120,246,149,242,85,241,161,244,204,248,22,253,134,3, +151,9,228,12,216,14,202,14,244,10,108,5,166,1,199,1,216,4,153,5,75,3,58,5,203,10,97,9,209,1,194,255, +197,3,238,6,120,10,31,16,60,18,149,14,4,10,213,6,61,2,67,251,217,247,165,254,82,10,200,14,97,12,128,11, +181,9,182,1,20,250,201,248,244,249,175,252,253,3,238,10,39,10,116,3,231,252,92,248,161,244,215,242,97,247,252,1, +2,10,228,10,190,9,17,7,125,253,223,241,129,238,11,242,164,246,10,254,77,8,247,13,46,11,54,4,159,253,132,247, +9,241,45,238,146,244,76,0,47,7,107,8,146,9,131,8,158,1,57,250,125,247,122,247,2,249,63,253,14,2,198,3, +77,1,61,252,2,248,74,246,165,245,244,246,197,252,18,4,204,7,110,8,71,7,164,2,149,251,0,246,57,243,48,243, +230,245,165,249,42,253,174,0,191,2,72,2,121,1,96,1,215,0,19,1,71,3,243,4,125,4,80,3,243,1,8,0, +44,254,215,252,9,253,49,0,218,4,140,8,249,11,95,15,227,15,228,12,249,8,12,5,243,0,34,254,200,253,216,255, +248,3,134,8,123,11,191,12,160,12,134,10,49,7,99,4,153,2,231,1,160,2,213,3,30,4,62,3,109,1,93,255, +119,254,12,255,50,0,41,2,164,5,3,9,111,9,82,6,243,1,146,254,19,252,186,249,223,248,36,251,71,255,170,2, +105,4,216,4,34,4,191,2,173,1,158,1,68,2,175,2,211,2,120,3,230,3,39,2,167,254,133,252,116,253,19,0, +145,2,239,4,254,7,221,10,30,11,7,8,165,3,7,0,156,253,164,252,186,253,161,0,220,3,0,6,243,6,255,6, +113,5,31,2,29,255,77,254,18,255,32,0,3,1,80,1,241,0,55,0,226,254,11,253,246,251,44,252,67,253,68,255, +80,1,131,1,37,0,242,254,171,253,154,251,176,249,171,248,166,248,223,249,58,251,73,251,76,251,146,252,127,253,24,253, +237,252,140,253,220,253,101,253,40,252,94,250,227,248,215,247,198,246,150,246,252,247,188,249,46,251,17,253,184,254,135,254, +221,252,52,251,238,249,188,248,177,247,55,247,133,247,34,248,81,248,15,248,206,247,186,247,247,247,173,248,213,249,79,251, +148,252,182,252,134,251,208,249,36,248,155,246,111,245,252,244,181,245,186,247,11,250,135,251,102,252,22,253,48,253,199,252, +124,252,24,252,72,251,167,250,105,250,252,249,148,249,230,249,201,250,202,251,14,253,172,254,53,0,30,1,26,1,91,0, +159,255,92,255,24,255,122,254,44,254,163,254,52,255,107,255,175,255,25,0,127,0,72,1,120,2,115,3,58,4,217,4, +147,4,145,3,242,2,132,2,189,1,141,1,74,2,243,2,144,3,134,4,222,4,92,4,27,4,54,4,106,4,66,5, +70,6,124,6,159,6,17,7,131,6,2,5,252,3,104,3,231,2,38,3,10,4,210,4,140,5,3,6,209,5,190,5, +29,6,19,6,236,5,120,6,238,6,177,6,56,6,64,5,145,3,57,2,175,1,141,1,61,2,244,3,233,5,167,7, +195,8,138,8,135,7,134,6,5,5,69,3,175,2,29,3,156,3,54,4,123,4,229,3,169,3,72,4,109,4,105,4, +226,5,60,8,205,9,251,9,130,8,51,6,194,4,121,3,231,0,77,255,10,1,172,3,141,4,43,5,227,6,244,7, +29,7,221,5,230,5,136,6,233,5,66,4,148,3,149,3,254,1,140,255,19,255,190,255,246,254,156,254,157,1,25,5, +43,5,25,4,234,4,25,5,96,2,25,255,223,252,12,251,123,250,134,251,48,252,103,252,136,253,14,254,177,252,170,251, +84,252,93,253,19,254,13,255,80,1,56,4,30,3,78,252,6,247,230,246,149,244,190,238,255,238,89,246,6,252,210,254, +32,2,142,3,227,1,76,0,4,255,23,253,221,251,86,251,202,251,79,254,117,254,74,248,175,241,1,240,87,240,161,241, +187,245,66,251,14,3,243,13,77,19,238,13,8,7,39,3,90,251,228,240,164,236,98,238,99,241,245,244,55,248,72,251, +217,255,126,2,94,1,36,3,216,8,125,10,241,7,139,6,147,3,233,251,18,243,186,235,152,232,147,236,254,241,27,244, +196,250,0,8,158,15,51,15,15,16,203,16,250,10,160,2,121,251,192,242,5,234,169,229,58,230,212,235,220,244,67,253, +29,6,236,15,192,18,115,13,145,10,167,10,216,4,8,252,191,247,54,245,146,241,48,238,27,233,99,229,44,236,196,249, +148,2,191,8,114,18,227,24,212,20,120,9,95,252,222,241,31,236,54,232,225,229,28,234,184,242,191,248,28,253,75,1, +39,2,183,3,150,10,237,13,73,8,234,2,15,0,218,247,190,237,61,234,52,234,214,234,99,241,252,252,56,6,165,10, +150,11,186,10,227,9,46,7,194,1,117,255,167,0,79,253,200,246,76,245,122,246,87,246,175,249,235,255,185,3,126,9, +126,18,197,18,69,8,71,0,221,254,32,254,199,254,200,2,157,6,64,9,49,11,41,9,41,2,254,249,133,245,107,249, +125,3,159,9,45,10,105,12,26,13,12,5,206,250,191,245,11,246,50,3,235,28,87,39,3,20,152,1,126,5,96,2, +40,224,174,191,70,205,156,254,1,34,130,34,222,24,168,23,252,17,165,0,126,240,7,230,162,226,149,246,198,28,199,41, +90,11,34,230,91,215,131,211,212,208,217,219,245,250,138,33,148,62,165,70,65,52,11,11,217,221,206,196,4,195,31,202, +105,221,86,7,178,44,0,40,196,9,174,251,71,251,121,240,3,230,233,244,1,23,249,47,115,46,157,22,243,246,240,217, +26,199,47,200,140,220,232,245,175,14,34,42,94,60,92,53,100,28,25,3,122,240,63,232,43,236,62,244,74,250,117,0, +184,4,19,3,100,255,1,253,28,252,163,1,170,13,198,21,93,23,51,25,153,24,234,14,75,1,56,248,49,245,74,246, +216,247,25,249,160,0,192,14,13,24,116,25,4,27,148,27,164,20,145,10,102,3,227,253,192,250,64,252,240,255,249,4, +3,12,14,16,82,14,168,11,162,9,91,6,82,5,108,8,165,10,2,10,66,8,10,4,250,253,4,250,18,247,80,243, +2,244,171,252,44,8,0,16,30,17,147,12,103,7,30,3,150,251,199,242,125,240,217,243,159,246,30,250,60,0,248,2, +63,255,70,251,36,252,233,255,255,2,211,4,9,7,42,9,142,7,112,1,250,250,118,246,12,243,86,242,159,246,24,254, +97,5,46,10,154,10,162,7,103,5,252,4,116,3,93,0,197,254,230,255,142,1,131,1,186,255,112,253,187,251,196,251, +33,254,254,0,56,2,247,2,212,4,255,5,230,4,63,3,251,1,130,255,119,251,11,248,123,247,178,249,42,252,131,253, +200,255,197,3,239,5,172,3,177,254,219,249,129,247,252,248,175,252,62,0,163,3,49,6,116,5,95,1,237,251,169,246, +138,244,18,248,153,254,101,4,65,9,184,11,149,8,102,1,171,250,45,246,59,245,136,249,29,1,242,7,188,11,44,11, +116,6,10,0,152,249,218,244,249,245,123,253,118,5,62,10,193,12,168,11,59,5,194,252,74,246,101,243,133,245,254,251, +224,2,254,7,4,11,26,10,60,5,200,255,147,251,102,249,144,251,84,1,17,6,230,7,211,7,84,5,108,0,106,251, +41,248,253,247,215,251,203,1,48,7,163,11,229,13,157,11,102,6,206,1,70,254,240,251,164,252,216,255,43,3,36,6, +86,8,43,8,254,5,121,3,25,1,201,255,247,0,189,3,40,6,171,7,240,7,155,6,79,4,137,1,117,254,138,252, +223,252,137,254,200,0,103,3,207,4,207,3,152,1,85,255,10,253,70,251,144,250,128,250,77,251,68,253,221,254,163,254, +90,253,238,251,238,249,133,247,35,246,96,246,34,247,106,247,207,247,49,249,177,250,180,250,93,249,235,247,189,246,250,245, +60,246,10,247,15,247,153,246,26,247,37,248,210,247,7,246,186,244,24,245,148,246,114,248,95,250,232,251,186,252,198,252, +152,251,3,249,81,246,12,245,67,245,106,246,120,248,26,251,82,253,100,254,53,254,25,253,188,251,241,250,78,251,196,252, +98,254,93,255,2,0,74,0,20,255,139,252,234,250,115,251,44,253,24,255,56,1,145,3,104,5,64,5,161,2,182,255, +190,254,247,254,47,255,119,0,10,3,176,4,117,4,195,3,31,3,195,1,58,0,101,0,217,2,182,5,201,6,92,6, +1,6,94,5,115,3,149,1,111,1,105,2,200,3,187,5,59,7,0,7,201,5,148,4,41,3,17,2,118,2,9,4, +208,5,139,7,179,8,127,8,25,7,51,5,90,3,34,2,144,1,97,1,66,2,97,4,215,5,76,5,35,4,235,3, +81,4,99,4,199,3,50,3,233,3,73,5,228,4,189,2,58,1,167,0,211,255,126,255,62,0,169,0,185,0,4,2, +187,3,213,3,6,3,42,3,227,3,133,3,168,1,160,255,152,254,195,253,54,252,90,251,68,252,134,253,197,254,49,1, +33,3,144,2,63,2,109,4,139,5,13,3,2,0,123,254,149,252,172,249,137,247,225,246,59,247,2,249,56,253,199,2, +159,5,238,3,32,2,160,3,73,4,192,0,111,253,205,253,176,254,180,253,242,251,52,249,109,245,126,243,251,244,112,248, +254,252,140,2,246,7,215,11,219,12,34,10,154,4,160,253,38,246,58,241,130,241,77,244,126,246,250,249,64,255,95,2, +181,2,72,3,187,3,181,2,129,2,52,4,19,5,89,3,120,255,91,250,228,245,110,243,104,242,56,243,52,247,37,253, +206,2,24,7,142,8,116,7,44,7,148,7,156,4,181,255,230,253,255,252,206,247,202,240,251,237,176,240,236,246,125,254, +192,5,165,12,51,18,157,18,147,12,254,3,167,252,14,248,65,247,92,249,247,251,98,254,214,255,79,254,78,251,185,250, +124,252,63,255,199,4,111,12,218,16,97,15,41,10,24,3,5,251,168,243,96,239,89,240,40,246,160,252,217,0,243,3, +62,6,50,6,178,4,143,3,163,2,82,2,12,3,117,2,30,255,17,251,101,247,247,243,129,242,206,243,188,246,225,251, +222,2,131,7,72,8,4,8,209,6,236,2,56,254,248,250,71,249,81,250,36,254,32,1,4,1,133,254,215,250,109,249, +90,252,253,253,159,251,219,254,238,11,132,21,130,17,144,7,161,1,177,255,41,254,64,252,195,252,10,3,62,12,69,17, +30,16,119,10,6,1,20,249,156,249,215,254,17,1,120,3,189,10,116,16,108,14,218,8,126,5,237,4,136,5,142,5, +165,4,163,3,108,0,194,248,232,240,81,238,120,240,29,246,160,255,177,8,161,11,228,9,79,7,150,2,25,250,252,241, +51,240,249,244,167,249,229,248,139,245,75,244,162,243,107,241,223,240,222,244,205,251,219,2,47,7,208,6,36,3,248,253, +207,246,81,239,130,235,20,236,88,239,67,244,244,248,152,252,164,0,5,3,117,0,30,253,72,253,151,252,109,249,143,249, +36,252,37,251,232,248,225,248,212,246,93,242,95,241,182,243,37,246,75,250,229,255,173,3,52,6,20,7,18,3,52,253, +189,249,115,245,174,240,87,241,95,243,190,240,204,241,85,251,189,1,101,1,250,4,120,12,94,14,3,11,61,6,47,255, +117,249,18,249,73,249,2,248,186,250,191,1,245,8,255,14,122,16,21,13,216,14,252,22,216,22,84,13,91,10,237,13, +226,10,248,3,184,2,4,4,25,5,118,10,1,18,34,22,20,24,164,24,51,22,52,19,106,15,176,6,43,254,218,253, +47,1,4,3,206,7,105,14,255,15,16,16,133,18,91,15,182,4,179,253,139,253,213,253,25,254,223,255,94,0,177,0, +86,3,66,4,72,2,2,3,69,6,124,7,238,7,221,7,158,2,62,250,149,245,28,244,174,243,152,247,142,255,66,6, +91,10,221,11,153,8,147,2,113,253,131,247,245,241,7,244,46,252,153,255,228,252,110,252,119,255,147,255,252,250,178,246, +122,247,59,252,251,254,54,253,59,251,254,250,65,248,109,242,12,239,160,239,46,240,5,240,128,242,69,248,173,253,15,255, +235,252,32,251,145,250,71,247,138,240,97,236,142,238,126,243,214,247,223,252,151,2,189,4,59,1,251,251,99,248,119,244, +164,240,173,244,80,2,106,13,27,14,159,12,183,14,59,12,132,1,53,249,10,252,186,6,123,17,84,23,244,23,95,21, +59,15,187,5,126,254,133,253,180,0,60,7,138,16,158,22,79,22,168,17,36,8,20,1,48,13,192,35,140,35,177,13, +60,7,119,17,1,5,202,220,101,197,129,219,209,7,82,34,238,34,219,31,222,32,79,21,84,252,55,233,101,224,149,225, +36,251,24,34,192,41,117,9,198,233,37,222,134,215,229,212,108,228,171,5,155,43,236,70,196,72,110,45,246,255,67,211, +213,187,205,191,66,210,74,238,159,23,11,56,37,51,254,24,55,9,241,253,132,234,95,226,192,245,235,19,206,37,222,35, +158,16,155,244,84,220,117,210,242,217,148,234,62,252,113,19,86,47,127,58,160,40,44,11,104,244,157,229,250,223,4,230, +149,240,179,248,178,255,146,5,20,6,174,255,18,247,82,245,147,253,2,7,84,11,126,14,222,15,61,9,107,253,208,242, +103,234,164,231,180,236,190,241,82,244,8,253,34,10,109,16,24,16,244,14,229,11,164,6,255,0,89,249,179,241,254,238, +214,239,76,243,218,251,205,3,15,5,150,5,183,7,132,4,59,255,33,0,126,2,227,1,95,3,167,4,25,255,212,247, +92,244,176,240,44,237,13,240,232,249,222,6,175,16,81,16,100,9,99,5,201,0,240,244,126,234,88,234,237,239,211,246, +154,254,37,3,73,3,98,2,229,254,141,248,77,246,25,249,215,250,6,252,61,255,126,0,181,253,80,249,167,243,198,238, +54,239,209,243,101,249,129,0,49,6,97,5,185,0,37,252,173,245,134,238,249,235,215,237,12,242,42,249,251,255,231,1, +133,0,211,253,251,248,93,245,195,246,60,249,203,248,132,248,248,250,29,253,201,250,27,244,162,239,61,243,3,250,219,251, +183,251,222,255,116,4,108,3,189,254,113,250,212,247,226,247,167,249,186,249,239,247,218,247,247,250,193,254,215,255,52,254, +6,254,155,1,216,4,100,3,187,254,179,250,142,249,220,251,35,255,193,255,35,255,147,1,134,5,116,5,87,1,74,254, +120,254,248,255,234,1,27,5,103,8,254,8,164,6,3,4,20,2,65,255,42,252,134,252,74,1,156,6,133,9,227,10, +88,11,161,9,243,5,41,2,69,255,99,254,241,0,73,5,182,7,181,7,76,7,185,6,10,5,141,2,171,0,1,1, +212,3,59,7,179,9,236,10,159,9,216,5,24,3,164,2,184,1,177,0,139,2,172,5,3,7,204,7,46,9,104,9, +229,7,33,6,42,6,76,9,47,12,202,9,1,5,115,4,103,6,161,5,151,3,253,3,69,7,61,12,74,15,147,13, +29,11,93,11,213,9,237,4,247,2,204,5,126,8,227,8,43,8,25,8,35,10,226,10,118,6,176,2,106,5,82,8, +151,6,14,6,65,8,172,7,220,4,151,3,245,2,82,2,78,2,199,1,228,1,16,4,247,4,247,3,60,4,4,3, +206,254,0,255,27,3,128,0,33,250,95,252,142,3,241,3,117,255,210,254,51,3,201,6,165,3,224,252,98,252,132,0, +255,253,29,247,212,246,71,251,1,254,134,0,167,2,163,2,218,4,75,8,147,4,116,252,124,249,195,249,77,248,1,248, +0,250,208,251,32,254,98,0,79,0,108,255,194,253,23,250,20,250,184,255,145,1,44,254,9,255,221,1,9,254,193,248, +230,247,172,245,209,241,35,244,97,251,125,0,67,2,52,2,34,2,33,3,173,0,231,248,9,244,131,245,232,246,56,248, +58,253,155,0,141,255,36,0,135,1,78,254,174,250,173,250,194,250,251,251,166,0,73,2,19,255,5,255,213,1,250,255, +201,251,96,252,57,1,53,5,71,4,208,255,29,255,228,1,135,254,197,247,64,250,41,2,223,3,239,3,35,8,70,8, +252,1,60,254,240,253,77,252,161,251,45,254,10,1,154,2,2,2,236,254,181,252,28,252,137,250,145,251,217,1,11,6, +230,5,56,8,156,9,81,2,227,249,102,248,222,246,202,241,157,240,244,244,210,250,185,1,115,7,49,9,254,9,59,10, +94,5,169,253,59,248,195,243,34,241,44,245,12,253,95,2,248,3,59,1,169,251,146,249,94,249,147,244,73,243,11,255, +181,11,57,12,253,7,98,5,23,254,209,242,59,237,51,240,24,248,115,0,194,4,47,5,238,3,30,254,107,244,168,239, +37,242,13,246,63,250,230,254,129,0,1,255,160,249,154,238,4,237,169,4,3,30,158,22,205,254,89,253,159,7,157,245, +48,204,22,188,84,220,197,11,247,32,172,29,105,26,178,23,125,9,193,246,148,233,26,226,31,236,219,16,114,50,130,44, +212,9,114,235,125,217,173,206,235,207,116,227,129,6,176,46,181,75,246,77,181,48,181,0,175,216,99,201,192,201,86,210, +134,238,19,23,127,40,175,25,249,6,48,252,202,237,219,225,111,234,63,4,154,28,230,38,189,30,138,5,208,227,100,200, +147,193,120,206,65,224,216,243,168,17,15,46,174,48,111,27,217,3,134,242,43,231,232,228,235,232,60,236,116,239,211,243, +66,245,235,242,117,240,239,241,180,251,41,11,255,20,139,21,149,19,33,15,155,2,217,241,235,229,227,225,16,228,14,233, +152,238,8,247,15,3,249,12,97,18,53,22,79,22,142,15,30,7,180,0,217,247,229,236,116,232,88,237,124,245,154,252, +127,3,31,10,59,13,115,11,16,9,67,10,134,12,54,12,80,11,90,11,150,8,102,1,253,249,86,245,14,243,42,245, +109,255,83,15,183,27,40,31,238,28,48,25,224,18,204,8,85,254,106,248,165,249,176,0,138,8,177,12,183,12,125,10, +34,8,127,7,62,8,5,9,10,11,72,15,234,18,19,19,8,15,75,6,170,251,130,245,80,245,98,247,181,251,44,4, +107,13,131,18,81,18,28,14,48,8,40,2,134,251,101,246,180,247,1,254,88,2,94,3,9,4,236,3,51,2,146,0, +195,255,93,0,126,3,221,6,214,7,249,7,254,6,124,1,255,249,60,247,134,249,214,252,36,0,56,4,28,9,146,13, +142,14,77,11,181,7,142,5,111,2,220,254,127,253,26,253,18,252,84,252,223,254,155,2,29,7,42,11,180,12,229,11, +86,9,153,4,132,255,202,252,165,251,12,251,212,252,253,0,216,3,37,3,123,0,181,254,38,255,199,0,107,2,131,4, +168,6,166,6,201,3,86,255,48,250,211,245,234,244,254,247,238,252,3,2,91,6,138,8,136,7,30,4,41,0,238,252, +230,250,218,250,16,253,117,255,17,0,4,0,97,0,201,255,74,254,46,254,175,255,75,1,163,2,109,3,252,2,183,1, +6,0,42,254,148,253,158,254,144,255,90,0,240,1,195,2,236,1,68,1,236,0,148,255,127,254,223,254,244,255,236,1, +6,4,156,3,57,2,178,3,170,5,41,4,119,1,82,0,208,255,81,0,7,2,42,2,72,1,27,3,63,6,244,6, +26,6,68,5,247,3,47,3,135,3,117,3,94,3,63,4,94,4,237,3,254,4,35,5,127,2,171,1,28,4,148,4, +236,2,248,3,140,6,210,6,182,5,66,4,7,2,253,0,24,1,151,254,221,250,79,251,244,254,36,1,191,1,40,2, +242,1,79,1,209,255,81,252,37,249,9,249,76,250,234,251,231,254,22,0,225,252,205,249,116,248,133,243,238,236,142,237, +116,244,175,249,226,252,22,1,13,4,8,3,23,254,52,246,211,238,58,235,27,234,57,235,175,240,78,246,228,246,83,247, +139,251,103,252,223,246,26,243,195,244,104,247,4,249,111,249,174,247,219,245,44,245,92,242,238,237,140,236,15,238,240,240, +168,246,84,252,152,253,78,254,21,1,118,255,50,248,223,242,249,240,57,239,197,239,77,243,241,245,5,249,2,255,172,2, +206,0,207,253,16,251,35,247,111,245,127,247,22,249,127,249,104,251,185,253,216,254,154,254,123,251,111,248,55,252,149,3, +131,5,48,4,98,5,177,4,250,254,156,249,155,246,168,245,45,251,211,4,110,8,74,7,48,10,141,12,195,5,145,252, +251,251,93,2,118,7,29,8,226,7,201,9,173,8,44,0,212,249,75,254,76,4,202,4,126,9,180,19,45,21,12,13, +233,7,112,5,48,255,39,251,231,254,84,4,188,6,28,8,192,9,150,11,76,12,111,9,215,5,82,6,100,7,239,4, +204,3,1,7,86,10,5,12,201,11,229,7,233,4,78,6,139,2,10,247,49,245,8,3,197,13,120,12,232,10,232,12, +17,11,135,6,226,4,238,4,214,5,174,10,246,17,229,19,79,10,219,249,142,240,131,243,58,248,49,250,217,1,126,14, +85,21,142,20,86,13,199,254,165,248,215,11,244,33,220,25,36,4,36,5,114,14,223,247,186,203,59,190,60,225,246,14, +93,35,110,37,23,40,222,36,79,17,220,248,107,230,127,217,60,223,90,3,133,39,189,35,145,2,30,232,115,218,81,208, +115,209,43,230,252,6,197,41,141,68,73,70,1,37,203,240,76,201,154,189,210,193,226,204,41,234,25,22,58,44,9,28, +239,4,122,253,6,245,41,229,43,229,121,253,41,25,88,36,92,25,78,253,208,223,149,207,25,206,189,214,77,231,156,254, +92,26,237,48,76,50,44,29,129,4,188,244,33,235,84,232,81,238,205,244,209,246,155,249,83,252,186,249,204,246,254,249, +108,1,2,12,123,24,222,29,222,23,190,13,253,2,12,245,141,232,195,228,85,232,220,238,159,246,19,254,93,5,84,13, +79,18,209,17,3,16,108,14,74,9,115,1,243,249,33,241,39,233,167,233,98,241,118,248,247,254,243,6,32,11,253,9, +81,9,20,9,164,5,240,2,86,4,53,4,159,254,85,247,190,241,5,238,66,236,246,237,226,246,65,7,15,21,78,23, +174,18,163,13,94,5,64,249,122,239,212,234,228,235,165,244,176,255,137,3,105,1,207,255,217,253,59,250,30,249,140,251, +144,254,222,1,118,5,118,6,28,2,45,248,38,237,63,232,187,233,3,236,158,240,83,252,80,9,175,14,117,13,169,9, +206,2,102,249,228,240,85,236,219,237,95,244,61,251,81,0,91,4,56,6,91,5,51,4,7,4,247,4,189,7,103,10, +80,10,167,8,118,5,120,254,106,247,176,246,242,250,45,0,252,6,225,14,44,20,34,21,161,17,192,10,133,4,216,0, +222,253,169,252,213,254,134,0,158,255,140,255,89,0,83,255,231,254,130,1,131,4,90,6,30,7,4,5,216,0,234,253, +17,251,72,246,224,242,114,243,233,245,138,248,176,250,186,251,190,253,13,2,180,4,102,3,199,1,108,1,66,255,157,250, +7,246,246,242,230,241,55,243,86,246,190,250,40,0,16,5,244,7,16,9,182,8,122,6,9,3,236,255,66,253,108,250, +91,248,76,248,28,249,137,249,97,251,31,0,69,5,86,8,73,10,212,11,61,11,89,7,101,1,78,252,68,250,230,249, +80,249,233,250,54,0,108,4,96,4,159,3,230,3,184,2,249,0,138,1,66,3,16,4,13,4,245,2,151,0,238,253, +82,251,145,249,185,250,178,254,225,3,165,9,119,13,81,12,192,8,74,6,186,2,15,253,30,250,255,251,70,255,36,2, +78,5,237,7,120,8,103,7,52,7,87,9,124,11,113,11,178,11,88,13,215,11,226,5,129,0,122,253,157,250,188,249, +20,254,191,5,234,12,42,18,247,20,77,20,101,15,116,7,114,0,234,252,13,251,60,250,111,253,239,3,72,8,162,8, +139,7,0,6,70,4,62,4,164,5,183,5,142,4,133,4,145,4,140,1,22,252,72,248,144,248,170,251,244,254,132,1, +55,4,112,6,220,5,5,3,70,1,94,1,151,1,119,1,32,0,77,252,92,248,159,246,34,244,221,239,190,239,5,247, +247,0,17,8,222,9,95,6,112,1,162,254,133,251,72,245,65,239,42,238,131,242,80,248,236,248,127,242,53,237,7,240, +72,246,251,249,146,253,82,3,175,7,192,7,179,2,214,247,122,234,213,224,212,221,253,226,154,240,53,255,72,7,84,13, +138,20,76,18,66,2,211,242,241,238,225,241,220,245,212,250,67,1,184,7,124,8,227,255,92,247,131,248,98,253,7,2, +32,14,0,30,74,35,88,29,212,17,162,255,101,237,176,230,59,233,226,240,168,1,93,21,62,31,51,32,22,28,11,16, +26,1,249,248,206,248,196,255,227,9,66,11,83,4,249,2,164,3,50,249,146,237,112,241,58,0,110,14,46,23,155,22, +55,15,46,9,198,2,167,246,154,235,146,234,88,242,12,253,148,4,57,5,134,2,47,1,13,0,142,254,175,255,116,3, +206,6,210,7,181,5,97,0,154,248,183,240,93,237,25,240,216,244,223,250,140,4,171,11,175,8,66,1,184,253,73,252, +47,250,127,249,22,252,176,2,6,9,204,4,173,246,230,237,109,239,36,241,71,241,194,247,45,4,201,14,41,18,36,12, +170,0,50,248,219,243,1,239,147,236,217,241,210,249,200,253,211,255,181,1,155,0,75,0,62,8,193,18,39,18,98,6, +162,251,42,246,56,239,65,228,207,222,116,234,223,3,111,24,36,28,25,22,128,16,252,10,176,2,173,249,109,245,210,252, +100,14,139,24,18,13,226,246,66,233,164,229,19,229,72,236,188,2,150,32,64,53,211,56,129,44,226,18,138,243,203,220, +175,214,34,221,131,235,124,0,16,21,203,29,92,22,37,6,223,249,39,248,60,253,87,5,153,17,10,29,143,28,220,13, +126,247,58,224,61,210,247,214,28,233,172,252,4,16,107,35,105,45,73,38,110,18,113,252,203,237,189,233,239,235,199,240, +252,248,53,1,199,2,76,254,50,249,80,245,122,244,20,251,187,7,242,17,169,20,244,17,238,11,56,1,87,242,215,229, +159,226,88,231,171,237,12,245,156,0,3,12,105,15,21,12,180,8,161,6,55,4,33,1,62,252,117,246,252,243,33,244, +152,242,215,241,89,246,153,253,135,4,31,11,195,14,226,13,118,11,36,8,124,3,38,0,194,252,1,247,184,245,65,251, +141,252,6,248,28,250,29,3,193,8,138,11,181,15,235,17,181,16,82,13,140,5,52,251,209,244,48,243,40,244,52,248, +166,253,63,2,97,7,36,12,213,12,91,9,221,3,62,255,66,255,132,1,175,255,84,252,217,253,93,1,214,0,205,251, +82,245,240,242,76,247,99,252,199,254,57,3,128,8,10,9,158,7,21,5,210,251,6,241,172,238,71,241,213,244,21,253, +129,4,88,3,95,1,158,3,196,0,133,248,59,246,89,251,19,2,34,8,187,9,237,4,243,255,223,253,241,250,77,248, +243,249,110,254,215,3,66,9,124,10,192,6,135,3,232,1,137,255,117,0,136,7,135,12,141,8,208,1,238,255,38,0, +142,253,153,250,13,252,177,1,114,7,56,9,110,5,60,255,53,252,183,253,243,255,161,0,220,1,39,4,34,3,4,253, +141,247,120,246,141,245,97,244,68,250,180,5,183,9,127,2,48,250,191,246,3,244,165,239,3,239,51,247,215,2,210,6, +88,3,225,1,33,0,14,245,207,232,94,234,96,245,252,252,179,0,80,3,231,1,252,252,6,248,2,242,139,235,198,234, +254,242,160,0,102,11,172,10,189,0,253,250,241,251,11,247,241,235,183,234,93,246,63,1,146,5,195,5,222,255,86,246, +104,242,125,243,11,243,1,245,78,254,37,9,149,15,124,15,31,6,118,248,9,241,146,239,204,239,60,246,94,2,175,10, +66,14,190,15,168,9,70,254,27,250,93,253,155,0,165,6,120,16,226,20,207,16,177,8,83,254,6,246,101,246,250,253, +169,8,8,22,11,33,81,34,48,27,166,16,120,4,110,250,60,248,224,254,81,10,17,20,5,23,104,20,31,16,12,10, +245,1,88,252,84,254,109,8,46,21,171,28,18,28,99,22,55,14,64,5,162,253,132,247,63,244,73,248,153,2,134,11, +120,15,207,15,175,13,81,11,162,9,150,5,76,0,157,255,165,2,232,3,63,3,41,2,172,255,13,253,109,252,170,252, +186,252,4,254,4,2,172,7,229,9,233,5,75,2,11,4,16,4,120,253,117,248,141,251,26,1,252,0,216,250,63,246, +52,249,222,254,210,255,181,254,81,1,14,7,2,12,118,10,241,255,68,246,169,245,131,245,127,241,165,245,41,2,71,7, +3,5,212,7,130,11,202,3,150,245,34,240,202,246,133,253,80,251,239,248,90,0,128,7,234,2,82,252,152,253,38,255, +254,253,240,2,200,10,204,8,118,0,59,254,94,254,131,246,97,237,164,239,3,249,27,255,236,4,182,14,7,20,49,15, +209,7,246,2,138,251,136,240,46,235,94,241,177,250,139,252,116,252,194,4,203,12,110,7,48,254,238,254,157,2,209,0, +193,255,12,1,218,253,165,248,234,247,130,247,99,242,244,238,9,246,210,4,252,14,99,15,211,14,63,19,107,20,198,10, +80,251,229,238,201,233,23,235,220,237,236,239,78,246,231,3,252,17,198,23,85,20,14,14,226,9,19,6,127,0,120,251, +25,248,154,245,195,245,198,246,227,241,178,233,221,233,115,244,108,0,167,8,227,14,104,19,146,17,99,6,60,247,150,234, +236,224,211,222,50,235,206,251,67,1,169,1,197,5,250,2,247,244,59,234,138,233,191,237,167,245,5,0,246,7,247,9, +37,2,250,243,84,237,118,238,171,235,222,236,141,253,96,13,13,14,99,10,39,6,6,250,18,238,170,235,51,237,145,241, +2,253,252,8,58,14,221,13,127,9,126,3,232,253,33,247,160,244,87,253,14,6,134,3,85,0,111,3,95,2,99,251, +120,247,169,247,58,250,22,0,69,6,52,10,189,10,162,4,105,252,194,249,136,246,150,238,227,237,169,246,47,253,223,1, +177,7,73,5,109,252,192,250,197,252,233,247,54,242,215,244,237,253,243,5,58,4,237,249,9,245,53,247,115,242,31,233, +247,235,49,250,118,5,255,8,243,8,108,9,66,9,63,1,56,242,2,234,125,237,172,242,85,246,162,253,130,5,226,6, +72,3,237,255,166,252,130,246,221,240,91,245,14,4,23,13,77,7,222,254,115,254,19,253,167,242,143,234,44,241,215,255, +203,10,246,17,54,21,209,12,71,251,29,239,206,235,175,233,23,234,189,244,42,8,219,24,191,26,187,14,107,4,108,2, +141,254,226,248,228,252,231,5,236,8,191,9,251,8,157,255,229,246,219,250,174,2,251,7,58,19,236,32,45,36,63,31, +191,24,41,14,146,1,244,250,233,251,214,1,188,8,214,11,151,14,106,22,39,27,239,21,85,18,226,23,96,26,219,18, +149,11,142,9,252,5,80,0,107,255,200,2,165,4,77,6,94,11,151,15,35,14,206,10,56,10,236,10,44,11,63,11, +181,9,174,5,57,1,167,253,34,251,107,251,67,255,157,3,130,5,26,6,121,7,109,7,160,2,120,252,122,252,252,2, +23,8,199,6,32,3,229,2,204,3,255,255,59,250,81,249,193,251,159,254,77,4,203,7,215,0,142,248,67,251,88,0, +233,253,212,251,179,255,114,4,167,7,143,6,247,253,162,246,122,248,236,250,2,248,121,247,233,252,70,3,8,6,169,2, +78,253,172,253,42,255,196,249,68,245,26,249,171,253,83,255,219,2,91,5,117,2,34,255,64,255,117,255,254,251,11,247, +140,249,63,5,123,11,142,5,173,1,86,5,86,5,105,0,21,253,188,250,57,252,66,5,114,12,49,11,145,7,247,3, +242,0,39,2,193,0,182,248,254,249,202,8,109,16,87,11,71,7,89,5,33,0,121,249,83,241,218,235,81,242,130,253, +121,1,7,5,173,11,175,10,208,3,116,255,39,249,124,242,61,245,158,250,62,249,224,248,177,252,206,252,165,249,191,246, +102,243,159,244,158,252,190,2,11,5,4,8,118,7,16,2,226,254,92,251,114,242,121,237,242,242,223,250,243,255,164,2, +82,1,135,255,241,2,28,5,140,254,20,248,10,253,156,7,179,9,124,1,255,249,170,248,102,246,203,239,69,237,118,243, +170,251,175,1,192,8,127,14,191,9,28,252,8,244,27,245,186,242,15,235,38,236,102,247,184,254,131,253,75,249,97,244, +24,241,66,241,143,241,171,243,43,253,214,7,49,10,175,6,97,0,81,245,91,233,14,226,213,224,124,232,55,246,61,0, +0,8,25,18,86,18,29,4,209,250,8,253,161,251,40,247,181,252,22,7,185,9,199,4,13,253,145,246,112,245,234,247, +42,251,202,1,211,10,89,17,77,21,231,20,123,11,158,255,227,251,59,252,161,248,78,245,80,248,195,254,186,3,85,6, +192,7,96,8,29,8,109,8,123,9,84,7,180,1,71,255,141,1,101,2,238,255,0,253,33,251,156,252,90,1,132,3, +229,2,237,6,192,14,250,17,76,15,23,10,249,3,56,0,112,255,72,252,210,247,237,249,170,0,106,3,21,3,29,5, +140,8,158,11,15,15,5,16,32,11,114,3,134,253,181,248,90,242,179,235,2,235,123,245,52,5,151,12,196,9,195,8, +70,12,218,8,5,253,185,245,240,247,129,252,108,254,7,252,150,244,175,237,59,237,226,239,151,242,107,250,224,8,69,22, +145,27,115,23,41,12,215,253,188,240,124,233,99,235,25,242,156,247,5,0,121,13,62,19,132,11,168,5,237,10,15,16, +163,13,124,10,157,10,172,9,166,4,236,253,104,250,81,252,205,1,154,9,108,17,162,18,19,13,106,10,106,11,175,6, +50,255,118,0,190,6,102,6,50,1,193,254,147,253,194,249,199,246,63,250,167,2,105,8,108,8,98,7,233,6,186,1, +183,247,55,241,102,242,152,246,131,249,107,252,128,0,181,1,79,253,249,249,145,253,192,0,5,253,58,251,3,2,160,7, +35,4,80,253,146,249,74,249,62,251,13,253,253,253,181,0,225,3,64,3,179,0,20,255,245,252,252,252,209,2,202,8, +250,9,54,9,227,4,66,251,69,246,7,249,14,246,116,237,157,242,65,6,166,17,32,13,46,8,201,10,178,10,118,1, +227,248,81,249,172,251,39,250,210,251,205,0,46,253,193,243,78,245,25,0,194,2,225,253,128,2,62,18,160,26,155,17, +209,3,241,252,252,244,43,231,54,226,252,235,182,246,126,0,45,18,147,31,8,24,66,7,93,254,5,248,65,236,63,226, +2,229,240,246,216,11,147,17,225,8,135,2,64,0,165,247,159,236,86,234,139,242,75,3,109,21,23,25,54,11,233,251, +106,242,255,230,247,218,53,218,1,233,104,1,77,25,108,37,56,32,109,14,6,250,203,234,251,225,162,221,5,226,128,245, +57,15,62,26,234,15,94,255,25,246,188,240,10,234,206,233,13,247,126,7,195,13,140,11,82,5,185,246,202,226,128,217, +13,225,251,238,218,251,62,9,170,20,228,21,173,10,111,250,71,237,70,229,5,227,45,233,29,245,153,253,128,255,70,0, +219,0,125,252,64,245,247,243,47,251,139,3,223,6,223,7,63,9,175,5,146,251,150,244,212,245,213,249,38,255,110,6, +176,8,230,4,39,4,89,5,107,1,237,254,191,4,211,12,180,19,204,24,102,20,200,7,170,255,78,252,216,247,31,248, +196,254,215,5,84,17,116,30,90,26,50,8,149,1,27,7,165,6,143,1,151,1,116,6,119,14,190,18,95,9,234,251, +247,249,54,253,20,253,213,255,129,5,43,9,52,16,27,24,33,19,222,5,157,1,104,5,26,4,128,250,183,240,180,240, +244,248,239,251,30,248,58,252,140,10,35,21,150,21,107,15,99,6,11,255,7,251,192,246,17,242,30,241,249,245,164,254, +65,2,189,249,214,239,30,242,90,250,61,0,165,8,82,18,21,21,166,18,53,12,150,252,181,233,19,224,162,226,196,238, +32,253,36,4,246,8,14,19,17,21,208,7,17,254,128,0,4,4,88,7,212,12,60,13,225,9,104,8,157,2,225,248, +207,246,46,252,196,2,120,10,9,15,139,15,40,20,40,23,103,14,68,7,79,11,31,11,78,3,66,2,19,6,160,4, +124,0,163,254,59,2,198,10,132,12,208,5,15,7,154,13,207,7,212,253,206,253,209,254,112,253,167,1,227,4,119,1, +56,255,133,253,213,249,1,251,117,252,82,248,51,252,123,9,127,13,96,9,99,7,32,0,34,246,116,246,48,247,252,239, +44,241,88,253,118,4,150,5,64,5,182,1,52,1,82,4,89,0,179,251,72,1,15,5,157,0,76,255,81,254,27,246, +107,240,210,240,194,240,10,245,207,254,192,3,82,5,100,8,55,6,6,0,209,252,74,247,208,239,255,239,137,242,54,241, +41,244,77,248,102,244,180,243,44,253,53,2,89,255,193,254,94,255,190,254,45,255,249,250,190,242,87,243,140,250,70,251, +177,247,89,246,48,246,188,249,59,1,105,5,244,7,55,14,147,17,82,14,52,10,133,3,29,248,8,242,210,245,60,251, +115,254,173,1,17,5,208,8,183,11,69,11,206,10,82,13,159,14,66,14,193,14,79,9,233,250,204,240,250,241,195,243, +175,241,93,245,203,1,126,13,9,17,118,14,230,11,69,11,232,8,195,3,84,0,99,255,238,251,125,245,238,240,139,238, +163,235,173,235,223,243,66,1,103,12,138,18,249,20,190,19,24,13,108,1,18,246,195,240,174,240,210,241,251,243,23,247, +91,247,255,243,161,241,188,242,227,245,9,251,225,3,175,14,80,20,62,15,88,3,86,247,87,235,249,223,233,219,228,224, +166,233,248,243,132,253,73,0,151,253,142,252,77,252,8,249,181,246,105,249,236,253,117,254,221,248,150,241,96,237,209,232, +246,226,200,229,234,242,137,253,130,2,214,9,65,17,203,16,211,9,156,1,57,251,158,248,131,248,46,249,248,250,178,252, +238,255,242,7,130,12,51,6,125,2,152,11,77,20,239,20,44,22,150,24,253,23,68,24,29,23,114,13,169,0,235,249, +206,251,173,5,143,14,250,14,100,19,19,35,45,42,197,29,16,14,135,6,127,5,219,8,42,10,84,7,149,10,55,19, +168,19,16,11,251,255,6,246,175,246,13,2,3,8,50,9,153,17,14,23,124,16,180,8,160,254,132,237,153,230,197,237, +158,240,255,241,46,252,81,4,57,9,142,16,254,9,138,247,218,246,87,255,192,244,19,233,200,240,223,247,4,246,165,246, +111,243,180,236,151,241,230,248,245,246,79,251,255,7,42,12,90,11,82,10,66,254,71,239,22,236,136,233,122,227,194,233, +185,247,122,253,133,0,84,6,255,6,75,3,173,1,207,1,59,3,240,3,44,1,39,0,99,0,207,247,7,236,223,234, +99,239,51,242,242,248,171,3,161,13,179,23,236,27,214,19,73,9,160,3,16,253,236,245,229,241,234,238,121,241,71,252, +40,3,238,2,210,6,5,13,21,14,151,15,146,18,108,16,12,13,178,11,52,6,68,254,42,249,41,243,151,237,252,239, +78,247,246,253,178,6,26,18,120,27,0,30,195,22,107,11,123,3,152,249,109,236,199,234,37,245,147,249,235,247,227,251, +88,255,31,250,21,245,38,249,176,3,189,12,216,15,49,19,9,25,47,17,155,246,73,225,61,222,196,224,74,229,104,241, +200,253,144,5,88,14,145,18,228,7,141,247,101,244,20,1,214,12,19,9,57,254,84,252,162,253,195,244,47,232,155,227, +7,232,118,246,65,11,9,22,37,16,180,6,89,3,178,1,78,251,195,241,240,239,122,251,90,7,8,6,248,252,16,246, +190,242,30,243,12,246,237,248,251,254,20,9,154,13,156,7,180,253,32,245,115,239,234,238,25,243,27,250,121,2,137,7, +35,6,198,0,228,248,78,241,232,241,95,249,210,252,89,253,154,3,38,10,23,7,95,254,31,249,70,250,118,0,157,6, +11,7,151,3,162,2,131,4,238,3,87,255,158,252,211,1,213,11,205,16,243,12,121,7,115,7,208,8,213,4,217,0, +83,5,69,12,183,11,146,7,38,7,203,7,134,5,48,2,139,1,143,5,23,10,239,8,4,6,179,7,151,8,0,5, +39,4,141,6,243,5,209,4,118,5,74,3,11,0,38,255,97,252,188,249,146,254,193,5,189,7,160,8,149,11,246,13, +157,13,30,6,4,249,201,243,218,247,84,247,174,244,248,252,58,9,251,12,65,12,112,11,10,7,82,0,165,251,145,250, +119,253,0,1,46,2,92,4,60,6,216,0,96,248,153,245,77,246,46,249,131,2,158,12,75,15,95,14,197,12,53,6, +97,252,170,244,64,240,105,241,181,248,126,255,245,1,144,2,138,2,230,3,11,8,79,9,135,6,129,8,227,13,162,10, +147,255,204,246,48,242,222,241,47,248,41,0,132,4,137,8,244,12,80,13,61,10,215,6,183,4,135,7,153,13,47,13, +76,5,56,254,162,247,39,238,189,232,2,237,79,247,233,4,200,18,73,25,250,22,181,16,55,6,82,248,74,239,242,237, +75,239,98,242,91,247,49,249,135,246,110,244,74,245,23,248,232,252,191,3,126,11,185,17,188,17,11,8,182,246,253,228, +226,219,7,222,212,227,59,233,44,246,225,11,41,26,104,22,217,10,185,3,243,254,52,247,155,240,19,241,76,245,244,246, +113,246,40,245,225,240,236,236,221,241,33,255,238,10,114,16,186,18,196,19,6,15,68,255,102,234,88,222,139,222,90,227, +211,234,155,247,64,6,142,17,105,22,251,17,56,8,92,1,6,252,61,244,173,240,148,244,209,246,22,245,181,247,124,253, +247,252,74,248,98,250,77,3,11,9,3,10,84,13,225,16,122,11,162,255,109,246,227,238,73,230,94,227,83,235,170,249, +45,7,158,15,144,19,34,21,78,17,247,5,250,249,8,243,127,240,192,243,190,250,70,252,240,248,92,249,232,249,0,245, +3,244,173,253,40,10,204,18,80,23,123,22,143,15,69,3,153,243,207,230,47,226,198,229,140,241,19,1,164,9,196,11, +150,17,202,22,213,16,67,7,111,6,230,10,137,11,166,5,196,251,122,243,143,239,252,237,25,240,149,248,115,3,144,13, +137,24,26,32,244,28,15,18,154,8,124,3,143,254,217,246,0,241,121,242,220,245,172,243,177,241,51,248,117,2,7,9, +41,14,98,21,194,25,128,20,255,7,116,251,227,239,197,231,82,237,88,252,108,0,160,252,185,7,133,23,254,12,161,241, +163,233,220,247,105,3,72,5,32,11,128,24,70,29,168,15,5,254,248,244,209,236,39,231,54,245,139,14,0,23,111,17, +248,18,236,19,252,3,90,241,209,239,101,248,0,255,74,8,241,20,61,22,70,9,130,255,238,253,59,247,120,239,83,249, +3,13,132,17,217,8,110,6,19,8,73,255,76,241,231,239,242,252,139,9,227,13,27,16,233,17,45,12,102,1,46,252, +4,251,28,248,107,251,241,8,107,16,209,8,158,1,168,4,98,6,225,2,150,8,133,26,208,38,15,34,231,18,252,1, +94,242,114,230,15,224,8,226,158,242,13,16,12,40,184,42,231,30,142,20,176,12,43,255,175,239,10,235,74,243,220,252, +254,253,86,247,118,238,68,232,141,233,137,244,56,2,34,9,177,12,120,19,110,18,183,254,195,231,78,223,244,222,228,222, +64,228,245,237,233,245,44,253,114,1,158,254,77,252,32,0,200,4,53,8,57,7,123,251,199,239,74,239,124,234,32,220, +226,221,63,244,29,6,67,14,242,21,167,24,76,21,236,16,74,6,186,247,126,242,235,243,73,244,78,248,194,252,102,250, +40,251,59,3,100,6,235,6,147,15,170,24,221,25,208,23,210,17,211,4,240,246,186,236,65,231,61,233,122,240,21,251, +231,11,144,26,67,27,111,22,205,21,215,15,76,1,8,248,200,249,30,255,74,1,208,253,147,248,90,247,16,247,41,244, +142,244,152,251,188,5,222,16,39,24,29,21,130,11,157,1,247,245,94,234,54,229,59,229,35,231,93,237,187,246,231,252, +56,254,194,253,12,254,1,255,175,253,45,249,89,245,8,244,199,242,231,240,192,239,118,239,214,239,123,240,217,239,23,237, +148,235,244,241,214,254,139,5,98,3,188,4,139,6,251,247,185,226,241,222,218,230,105,234,101,243,168,9,139,26,42,23, +148,7,213,248,126,238,251,228,175,222,78,232,23,1,180,18,112,20,68,19,116,14,118,252,65,236,142,240,44,254,99,4, +60,9,139,20,57,27,52,16,95,249,95,233,138,233,139,242,247,251,2,7,99,20,32,29,214,27,69,19,78,9,16,2, +154,254,133,253,140,255,194,6,15,12,235,3,33,245,120,243,155,253,72,0,173,252,199,5,169,26,51,38,218,30,229,15, +68,7,169,3,172,249,164,235,110,233,144,243,117,251,205,254,118,4,145,10,214,13,19,16,41,17,40,17,18,17,32,14, +2,9,109,5,195,254,155,243,167,239,1,246,188,252,239,1,100,7,44,10,99,15,179,25,120,25,117,9,4,255,67,6, +100,16,234,11,242,249,156,240,138,255,157,14,47,1,175,238,56,250,16,18,70,22,2,15,161,13,210,12,152,7,62,4, +162,2,150,251,194,241,229,242,45,1,192,8,42,255,122,248,200,1,81,8,65,0,27,249,94,251,124,254,83,2,68,11, +96,15,116,6,213,253,189,2,206,6,181,246,150,226,124,233,219,1,186,7,128,252,11,0,166,18,160,22,104,6,165,249, +101,253,217,7,68,13,65,13,27,12,233,9,62,5,112,255,100,248,61,240,139,239,0,253,22,14,187,21,181,22,92,22, +7,18,58,11,1,6,82,255,249,249,73,0,223,11,36,11,48,0,3,250,84,250,81,250,72,249,48,252,99,8,148,25, +94,32,78,24,23,14,162,6,232,251,147,240,92,235,201,235,254,241,51,254,211,8,29,11,44,7,19,4,57,8,146,15, +84,14,243,6,255,5,90,7,106,255,22,241,130,227,249,219,194,226,42,243,126,253,198,3,136,15,230,23,126,19,222,6, +210,246,15,235,85,236,39,241,185,238,213,238,133,244,86,242,105,233,105,229,80,230,238,235,225,248,171,5,236,11,160,11, +47,0,60,236,213,220,181,210,238,203,226,215,3,252,40,33,172,47,174,34,229,5,113,235,105,211,72,179,176,160,139,190, +6,255,149,51,103,72,7,68,105,44,53,6,0,218,185,183,52,180,61,213,56,10,60,59,236,79,97,57,255,4,157,207, +178,170,55,161,202,188,201,246,173,58,121,113,255,127,108,90,21,15,190,194,90,145,193,135,34,165,118,223,203,37,76,91, +130,100,192,66,8,14,97,218,216,183,148,183,116,219,104,15,198,57,52,74,198,60,63,22,137,226,61,183,106,169,108,188, +33,230,173,26,173,72,196,92,46,81,194,45,225,0,111,221,222,206,105,210,195,227,176,253,111,17,33,22,14,19,55,12, +128,254,31,243,116,249,160,14,103,31,214,31,6,23,83,16,111,7,129,243,201,223,127,222,27,236,91,249,139,1,51,5, +154,4,193,5,200,10,241,10,151,5,193,5,13,8,18,253,4,234,83,226,137,228,54,227,119,228,103,244,117,8,211,13, +148,5,198,254,133,253,122,247,178,236,118,239,206,0,124,5,76,247,182,239,192,240,232,229,172,217,48,227,2,248,109,7, +36,21,37,29,127,20,45,6,93,1,27,255,134,246,90,242,21,255,132,15,25,9,148,241,71,235,30,247,145,247,87,244, +178,10,232,42,198,52,168,46,89,38,128,19,1,248,25,233,28,239,9,252,131,2,235,8,231,24,120,33,114,15,46,249, +42,251,129,7,58,13,174,24,225,41,243,44,64,34,246,20,16,1,247,231,59,219,124,227,158,247,156,10,66,23,227,32, +3,37,166,25,6,5,236,249,203,248,152,248,190,254,149,12,127,20,227,18,151,12,77,251,139,224,6,211,224,220,241,236, +52,248,242,7,8,31,13,45,186,35,70,9,142,239,96,225,193,221,29,224,14,230,193,238,143,249,187,3,191,5,9,250, +96,234,181,233,92,249,179,5,80,5,191,4,187,10,242,9,5,249,74,228,41,221,24,228,184,236,112,241,128,248,92,6, +141,20,73,25,217,19,224,12,208,8,243,1,244,245,30,236,235,231,231,231,209,240,115,3,251,17,19,20,109,19,38,23, +24,23,201,10,142,249,45,246,177,5,136,19,152,15,7,5,161,255,19,249,180,238,133,233,237,238,216,254,61,21,167,39, +218,46,251,41,90,23,223,252,47,233,127,223,176,219,115,228,135,251,66,17,56,27,11,28,228,20,109,7,70,250,211,241, +198,240,88,248,185,2,159,9,163,11,180,6,129,252,72,244,151,238,77,234,122,239,165,255,12,15,142,23,223,25,159,20, +42,11,120,1,44,244,134,231,227,230,9,239,27,247,44,1,68,11,167,13,194,12,188,13,181,9,244,0,44,254,200,1, +245,3,51,3,98,2,225,2,63,2,197,251,104,242,174,239,92,243,152,245,218,247,65,0,106,10,205,12,44,8,142,5, +168,4,0,251,91,235,83,231,8,240,11,244,34,241,33,245,26,0,153,4,152,254,29,247,31,246,120,248,110,247,130,246, +65,251,180,254,119,250,211,244,234,242,157,244,162,251,43,3,103,4,86,8,116,20,204,20,197,254,14,235,132,237,117,247, +5,247,185,244,115,1,74,23,38,30,86,16,233,3,147,5,128,8,230,5,80,8,60,16,7,17,171,9,224,2,198,251, +49,241,181,236,29,247,52,8,112,20,118,28,183,34,39,34,51,24,96,9,47,250,64,239,39,239,37,249,165,1,192,1, +12,2,60,10,69,16,206,9,226,1,156,6,159,17,209,22,26,21,63,14,105,4,171,252,57,246,121,238,136,236,59,245, +91,2,230,14,39,23,128,21,110,14,191,9,227,3,66,253,182,253,110,255,143,251,17,251,142,252,25,243,199,231,16,234, +11,242,220,247,59,1,115,11,247,14,29,12,21,3,7,248,247,242,19,237,107,224,1,221,218,231,171,237,152,235,200,239, +196,248,219,255,61,5,23,3,156,250,135,250,37,255,124,247,242,235,167,238,116,248,3,250,105,244,52,240,11,241,97,244, +14,247,126,252,201,6,10,15,253,18,9,23,65,21,141,6,33,246,168,240,214,240,248,238,197,238,14,245,143,0,117,14, +159,27,192,33,6,28,199,17,161,15,213,14,206,251,137,223,32,220,236,242,162,254,217,244,20,246,162,13,157,27,100,15, +24,1,196,2,252,8,48,9,201,6,247,2,185,251,59,243,120,234,121,224,170,217,246,221,107,239,121,5,234,20,188,29, +217,36,81,35,182,18,44,254,60,239,57,226,147,219,136,228,59,243,19,250,163,254,195,7,174,14,6,14,128,9,6,7, +118,10,180,17,220,21,32,19,33,10,20,255,92,248,46,243,137,230,162,219,159,230,15,1,23,17,80,20,18,28,118,38, +206,32,78,11,57,249,189,240,220,232,23,227,95,232,62,243,111,248,208,248,103,249,40,251,56,254,63,255,157,252,205,255, +190,11,230,15,71,3,108,243,63,235,228,229,3,222,123,216,66,223,135,242,198,3,190,10,104,15,32,20,186,17,149,10, +30,4,126,251,218,243,250,244,120,248,227,244,245,240,105,246,140,0,12,4,197,1,199,7,133,23,144,29,145,21,149,19, +211,24,214,17,144,2,186,252,247,250,152,243,203,240,18,250,45,6,25,13,94,18,249,27,130,37,70,35,183,22,181,12, +99,5,190,250,13,244,236,245,103,249,86,0,85,14,166,22,0,19,66,16,37,17,236,10,238,1,71,4,33,15,196,19, +89,15,163,12,148,14,110,8,124,246,222,235,190,244,155,2,2,8,237,11,143,20,42,25,89,18,83,6,240,253,68,249, +202,246,250,249,129,0,3,1,219,252,6,253,141,253,10,247,116,241,13,244,98,247,174,247,31,251,8,0,68,254,54,248, +200,246,15,249,220,245,116,236,6,233,161,241,129,248,100,241,74,234,198,245,150,6,64,2,17,240,187,237,119,251,219,254, +170,243,58,239,205,248,187,1,19,0,97,249,86,245,113,243,228,241,138,244,105,250,120,251,173,252,142,10,30,26,175,22, +126,7,223,254,123,251,108,247,42,244,147,239,124,236,156,246,82,10,93,20,137,14,211,5,62,8,35,18,55,15,228,252, +194,246,227,5,116,14,124,4,232,250,122,249,207,248,71,249,182,251,123,252,232,254,165,7,236,18,229,23,255,15,100,2, +212,253,48,253,69,242,110,232,213,238,55,249,151,253,39,4,5,10,61,7,140,4,197,5,186,1,151,251,178,252,35,1, +147,3,21,4,102,1,161,254,218,254,172,250,86,241,244,239,77,248,238,255,215,6,41,16,229,20,50,18,194,13,67,7, +63,251,151,239,149,237,179,245,122,0,210,7,186,11,223,12,119,7,60,250,172,237,17,235,152,240,237,247,96,2,254,16, +142,24,105,15,11,254,76,241,244,233,164,229,253,230,48,239,63,251,82,5,50,7,249,1,173,251,66,245,103,241,15,248, +87,4,93,7,62,2,193,255,86,253,255,244,170,235,72,231,228,233,75,245,71,5,25,16,70,18,133,16,207,15,84,15, +249,9,175,0,214,251,176,252,169,252,119,251,226,251,136,251,157,251,118,1,106,10,37,16,204,18,104,20,13,21,63,20, +49,15,209,5,177,255,74,0,190,0,205,253,165,252,70,254,147,253,24,250,205,249,176,0,159,11,107,19,184,20,50,20, +5,22,111,18,189,0,182,236,90,233,112,241,62,244,167,245,107,255,129,8,104,8,234,6,8,9,205,9,91,8,100,10, +19,18,94,21,223,7,201,244,222,242,179,248,96,239,37,231,251,248,98,17,66,21,236,14,144,15,87,18,152,13,136,3, +22,0,198,6,29,7,36,250,245,242,59,244,122,233,94,220,37,233,0,4,236,16,180,22,202,35,15,43,245,27,66,253, +159,227,57,217,46,213,91,210,240,220,144,246,118,11,225,17,20,17,237,11,60,3,10,253,254,250,41,252,214,1,89,7, +25,6,216,254,79,242,241,225,114,216,240,220,60,234,179,252,2,19,70,37,104,45,78,42,20,25,198,254,72,235,13,228, +42,226,122,230,221,244,143,4,210,11,217,13,145,15,216,13,8,7,126,1,135,2,38,7,202,9,198,8,198,4,197,254, +112,248,187,242,52,237,241,232,14,234,148,243,120,2,216,16,58,29,237,37,87,34,2,16,104,251,154,235,208,217,30,202, +204,206,7,234,40,8,140,25,79,30,160,28,72,22,76,8,163,245,29,235,189,240,89,0,83,14,70,18,80,10,198,251, +225,236,239,225,188,225,212,239,218,4,244,23,39,39,86,48,52,44,91,21,24,245,205,225,27,227,194,231,231,232,5,245, +227,9,130,19,106,17,154,14,85,8,215,253,83,248,204,248,146,251,126,1,172,7,120,11,22,15,121,12,108,252,190,231, +184,216,142,208,146,212,230,231,221,0,206,24,195,45,251,51,57,35,233,4,103,229,179,204,137,195,94,205,48,230,73,6, +86,31,235,36,202,24,71,1,154,228,163,210,171,215,44,236,250,5,135,34,201,54,47,50,34,20,91,237,101,208,82,197, +71,202,138,223,157,5,235,44,114,63,68,57,244,34,238,2,17,228,243,213,111,222,210,246,47,18,166,35,69,39,230,31, +200,12,178,240,248,219,146,221,93,242,146,12,174,33,1,45,116,44,84,31,206,8,194,241,219,228,128,231,137,245,253,4, +42,15,50,18,88,13,118,4,190,254,205,252,11,254,54,8,119,22,68,23,143,10,118,0,247,248,207,236,71,231,115,242, +38,2,155,9,132,11,210,11,189,6,12,250,232,238,216,242,14,3,57,14,203,16,209,19,66,16,85,250,207,225,185,221, +240,230,77,236,22,246,142,16,61,40,10,33,211,3,232,241,73,243,141,243,95,236,138,240,207,7,247,28,190,27,158,10, +114,249,187,235,60,226,154,227,164,239,250,253,251,10,193,21,53,26,30,22,163,9,3,248,156,237,127,242,127,250,63,249, +239,246,31,254,84,8,12,8,205,251,172,243,53,252,59,7,142,3,94,254,208,8,231,21,130,19,83,6,236,251,70,249, +240,247,198,239,10,233,239,241,94,3,119,15,178,23,52,27,171,20,20,13,188,8,200,252,153,239,239,241,95,251,73,255, +40,4,247,8,34,4,182,252,116,251,227,251,103,253,102,2,129,7,88,13,92,18,68,12,102,254,208,246,11,242,166,233, +214,232,218,242,45,250,55,252,33,0,201,3,117,3,233,1,182,0,30,255,145,252,249,248,41,247,11,247,233,241,70,233, +64,233,173,242,136,249,93,250,86,251,56,254,63,0,63,255,11,250,207,243,162,243,146,249,199,251,233,245,211,240,216,241, +79,241,172,236,227,237,211,246,67,253,240,255,198,5,142,10,175,4,220,247,134,239,147,237,65,236,3,236,82,242,221,251, +100,255,7,254,73,255,20,1,64,254,192,251,104,255,17,5,116,6,73,4,87,2,84,255,69,247,184,238,75,239,12,247, +106,253,132,3,124,11,87,15,220,14,186,14,62,10,35,0,21,253,56,4,186,7,230,2,174,255,222,1,189,2,26,255, +155,252,104,255,38,3,131,5,216,11,185,19,228,17,87,8,23,4,133,5,96,3,161,252,170,247,28,249,218,254,91,1, +30,255,252,254,181,2,121,6,108,9,26,9,150,3,239,255,5,1,7,254,64,246,126,243,8,247,121,251,185,254,231,255, +189,1,67,7,205,8,168,1,109,253,63,1,88,2,38,254,204,251,58,251,148,250,71,251,163,251,71,252,98,0,203,3, +101,4,192,8,217,13,124,9,177,1,21,2,253,4,130,1,40,253,166,254,203,1,41,1,97,255,253,0,232,3,155,4, +68,6,84,11,98,14,116,12,92,10,78,10,4,9,12,5,99,0,222,253,43,254,98,254,217,253,155,0,178,6,39,11, +27,13,129,14,89,14,238,11,137,8,182,4,74,1,99,255,11,255,188,0,61,3,157,2,177,255,150,255,227,1,134,3, +132,5,140,7,158,7,97,8,210,10,131,9,124,3,24,255,239,254,127,255,244,253,78,251,156,251,30,1,221,7,46,11, +34,12,136,12,249,9,104,3,208,253,217,253,183,0,56,2,140,5,183,13,137,19,151,15,12,6,181,254,233,251,180,253, +48,3,43,9,14,14,48,18,130,18,16,11,191,255,118,250,59,254,109,4,119,9,174,15,18,20,82,17,232,10,237,4, +236,253,33,250,25,255,68,6,2,9,69,10,202,9,103,5,97,1,24,254,61,250,31,254,148,9,59,13,183,7,16,5, +168,3,47,254,6,250,20,248,70,246,114,250,218,2,116,4,17,255,174,248,249,242,32,242,29,246,251,246,156,247,158,255, +95,6,213,3,125,254,0,248,57,238,59,233,158,236,244,241,4,248,121,253,199,252,58,250,108,250,2,245,170,233,89,230, +90,238,247,248,210,0,11,3,173,0,72,255,30,252,205,241,169,232,68,233,1,239,234,245,238,253,35,2,154,0,157,253, +220,249,35,246,27,247,157,251,233,255,134,5,30,9,207,2,6,247,83,239,143,233,155,228,31,235,5,255,161,17,188,26, +234,30,64,29,6,16,225,252,72,239,77,234,100,236,77,244,197,253,144,5,104,11,93,11,245,3,166,253,137,253,86,0, +254,6,20,17,135,20,64,15,247,9,22,3,44,245,54,233,88,232,136,238,143,246,249,254,107,6,73,13,57,17,143,13, +87,6,128,1,223,251,36,246,199,246,241,248,230,245,112,244,41,248,216,249,136,248,81,248,15,249,179,252,53,3,22,4, +1,255,216,254,119,3,106,3,198,254,102,250,206,246,32,245,114,245,79,244,75,243,123,247,42,255,115,5,27,9,112,9, +251,5,90,1,194,253,17,251,211,249,31,251,73,255,54,5,189,7,216,1,78,248,51,244,175,244,150,244,73,247,228,255, +211,7,49,11,121,13,255,12,145,6,90,0,234,253,217,248,206,240,11,237,180,237,86,239,161,242,182,247,52,0,46,14, +214,23,23,19,150,9,49,5,191,253,158,240,167,233,79,236,79,243,222,252,84,3,108,0,73,251,54,252,211,254,74,255, +7,2,170,9,46,19,146,24,59,20,207,6,14,246,136,231,216,224,144,227,81,234,113,244,155,6,27,25,47,29,142,20, +107,12,214,7,153,1,18,251,194,251,37,3,28,5,25,252,21,242,185,236,148,230,149,227,57,238,109,1,37,18,94,32, +13,42,203,37,95,20,102,1,139,244,160,238,240,236,160,237,162,243,238,253,149,2,249,254,155,252,144,255,47,5,94,15, +191,28,37,35,71,31,191,23,12,13,104,251,148,233,28,227,2,233,232,244,235,2,101,15,54,21,184,20,229,18,66,16, +242,10,4,7,191,9,90,16,30,19,64,14,221,3,127,248,190,239,156,235,173,237,239,246,173,5,60,20,123,28,180,29, +105,27,225,22,119,16,129,10,50,4,165,251,149,245,45,244,39,240,26,234,253,237,36,253,163,13,204,26,57,34,29,33, +8,27,219,16,89,254,53,236,236,232,59,241,234,249,160,255,64,0,226,252,158,252,255,253,172,251,129,252,81,5,241,14, +39,22,78,24,8,12,137,246,37,234,104,231,236,226,196,222,143,227,73,242,128,3,250,10,138,8,185,11,242,20,211,18, +151,6,244,254,61,248,164,234,81,223,87,222,214,227,0,236,71,246,66,2,43,13,250,15,50,10,147,5,49,4,188,0, +178,255,184,4,151,6,23,1,169,249,48,241,59,233,66,232,137,237,158,245,55,3,42,20,242,31,159,34,133,26,123,9, +161,250,90,243,61,237,199,233,124,240,95,252,152,5,91,12,231,13,248,7,204,2,225,2,106,2,177,0,81,2,106,6, +215,9,199,9,222,2,179,248,83,243,41,242,30,241,194,243,173,252,140,6,105,13,77,17,111,16,254,9,230,1,164,251, +92,247,252,244,4,245,28,247,153,250,53,254,81,255,85,253,208,251,38,253,95,255,168,1,56,5,242,6,17,3,254,253, +8,253,235,251,109,246,228,242,235,246,50,252,23,251,15,247,208,247,205,252,99,255,156,254,235,0,79,8,107,12,120,6, +24,252,251,245,128,243,246,240,228,240,254,245,58,253,18,3,169,5,147,2,39,251,22,246,136,247,62,253,175,2,22,5, +179,5,201,6,101,5,179,253,160,243,11,238,68,239,103,246,174,254,117,1,228,0,46,4,60,8,213,5,131,0,126,255, +95,2,179,4,82,3,4,255,90,252,25,252,243,250,168,250,138,253,149,255,205,0,29,6,180,11,153,11,92,10,60,11, +246,8,44,3,42,255,230,252,47,250,37,249,220,252,212,4,153,11,108,12,26,11,160,11,161,8,195,0,249,252,93,254, +216,253,10,254,209,3,222,7,49,4,237,254,198,253,34,255,98,0,3,1,84,2,151,4,64,4,91,0,70,253,219,250, +20,246,157,244,38,251,2,1,85,0,100,0,9,3,24,1,63,253,108,255,78,3,160,2,251,1,132,3,109,1,239,251, +92,248,168,246,241,246,135,252,164,4,177,9,86,12,125,13,51,11,135,7,253,4,171,1,155,254,255,254,225,255,218,254, +31,0,254,4,178,9,220,12,141,13,37,10,10,6,56,4,79,0,136,249,102,249,192,3,60,13,171,12,68,9,208,10, +140,9,209,254,55,245,51,246,93,252,58,3,84,11,33,15,167,11,160,7,205,4,99,255,141,250,22,250,246,252,226,3, +91,11,30,11,11,6,76,3,187,253,41,242,160,233,71,235,27,251,13,24,105,46,182,46,91,40,132,36,111,13,157,223, +147,189,115,189,138,212,227,243,16,21,33,51,118,68,49,59,221,22,120,237,221,211,70,208,163,228,167,8,19,38,111,48, +6,41,162,12,205,222,180,183,109,172,35,190,99,230,147,26,142,70,195,85,122,65,249,21,197,231,155,193,241,169,46,177, +202,218,123,8,54,30,103,32,80,24,29,2,239,227,178,209,70,214,197,237,179,12,146,35,135,39,185,24,93,253,151,222, +236,199,50,193,165,204,174,232,164,10,254,32,113,36,29,28,211,14,35,255,165,242,12,238,62,239,58,243,28,248,195,248, +169,242,10,236,138,235,159,241,40,252,17,7,109,13,6,15,207,12,79,4,94,248,213,241,39,242,83,245,49,251,39,0, +6,253,55,245,64,240,134,236,8,235,127,243,134,2,198,13,101,21,231,25,40,19,14,1,205,238,70,227,50,224,141,230, +141,242,254,255,33,14,130,22,206,16,74,2,190,246,206,240,50,239,123,243,56,252,72,5,142,12,184,14,188,7,243,249, +47,237,58,231,171,232,8,239,204,248,54,5,52,16,38,21,221,19,8,12,209,252,137,237,255,230,234,229,152,229,88,236, +155,252,202,11,29,18,72,17,37,11,149,0,227,244,199,236,117,237,227,246,166,0,110,6,205,11,182,12,225,0,18,239, +181,228,248,227,4,235,201,249,160,10,91,23,173,30,21,28,98,12,32,248,193,232,35,224,216,224,215,235,79,250,252,6, +88,16,120,17,110,9,141,255,79,248,154,245,20,251,230,3,211,6,158,7,251,11,95,10,17,252,166,237,229,236,24,247, +15,0,25,2,169,4,111,14,222,21,129,16,5,7,70,5,157,7,99,7,39,5,63,1,131,252,77,251,8,254,204,1, +230,6,128,12,148,15,57,17,73,17,54,11,248,2,159,2,35,7,22,7,157,5,166,7,131,7,148,4,96,6,203,9, +111,7,32,6,42,12,37,15,19,7,123,252,124,249,51,255,188,8,91,15,143,18,126,23,214,25,169,15,96,254,157,244, +12,246,253,254,192,11,84,21,113,24,66,25,205,21,98,8,40,249,55,246,47,0,99,14,91,27,88,37,59,41,19,33, +52,13,126,250,247,241,38,239,196,243,24,8,132,32,130,40,49,35,17,30,74,23,58,10,205,252,226,246,10,253,244,11, +32,22,187,20,83,15,38,10,243,2,244,252,171,251,160,254,53,8,137,21,76,26,153,20,7,15,122,11,70,5,59,255, +177,252,58,252,107,254,163,2,26,4,169,2,174,2,139,5,19,11,138,17,22,19,249,13,16,8,53,3,104,251,187,242, +7,241,101,248,153,3,22,13,236,17,143,16,246,8,161,253,181,242,144,236,191,238,219,248,67,5,132,14,233,17,240,11, +231,251,150,233,146,221,112,218,116,226,7,246,241,11,22,25,50,26,224,14,244,248,29,226,235,211,27,208,240,215,87,236, +236,3,111,16,135,13,28,1,105,242,145,229,46,221,252,221,127,235,45,255,149,12,200,14,247,7,251,249,45,233,129,221, +216,218,214,224,34,239,207,0,232,11,243,12,80,9,4,4,129,251,106,242,128,239,135,244,113,252,2,2,216,3,8,3, +105,0,215,251,249,246,103,246,149,251,158,1,84,5,194,8,2,11,177,8,199,4,57,3,24,1,255,253,120,255,147,3, +151,2,64,254,27,253,131,254,40,0,191,2,253,4,154,6,25,10,194,11,149,5,231,252,76,250,197,250,2,249,6,249, +104,254,214,3,131,3,230,254,7,251,46,250,16,251,131,252,75,255,127,3,240,6,179,6,2,1,146,247,180,239,74,237, +130,239,71,244,0,251,236,2,66,9,108,9,85,1,141,246,89,241,112,242,242,244,232,247,83,253,57,3,59,4,149,253, +217,242,106,235,145,234,63,237,222,241,79,250,154,3,178,6,153,3,247,255,70,251,40,242,236,234,190,237,189,243,38,241, +61,235,202,238,238,247,217,249,168,246,141,250,21,5,191,8,73,0,133,246,13,244,191,242,171,237,136,236,177,242,49,248, +28,251,220,254,249,253,35,246,249,242,188,249,93,1,67,5,199,7,12,8,175,5,50,1,51,247,92,234,192,230,76,240, +175,253,98,6,217,9,170,12,95,16,12,13,244,254,135,243,27,245,146,250,19,252,57,254,8,1,22,255,13,251,107,250, +60,252,190,253,11,0,35,7,55,17,162,17,195,3,231,247,68,247,255,243,174,233,104,232,41,244,253,255,155,6,40,10, +226,10,196,11,149,13,234,9,78,1,13,253,126,253,181,250,47,244,12,241,172,245,156,254,121,4,107,6,124,10,252,15, +18,15,224,7,190,2,102,2,87,2,161,0,183,0,166,3,246,3,105,255,93,252,6,253,55,252,181,252,98,5,143,15, +104,17,20,15,19,14,39,10,252,0,68,247,133,242,237,245,205,253,174,2,142,6,168,14,122,19,112,13,97,4,242,0, +24,2,17,6,252,10,191,13,160,16,2,20,190,15,132,3,168,250,189,248,19,250,21,1,72,14,5,26,252,31,78,32, +157,25,186,14,208,5,212,255,214,253,43,4,205,14,103,19,180,16,74,12,173,7,179,2,155,255,201,0,173,7,21,18, +119,24,28,22,66,14,176,4,153,250,217,243,230,244,162,252,73,6,11,14,99,17,184,14,120,6,164,252,75,247,63,248, +233,251,23,1,41,9,239,14,226,10,247,255,133,246,16,240,92,236,103,240,10,254,195,14,65,27,166,31,254,25,208,11, +188,250,39,236,152,226,223,223,97,231,166,249,232,12,90,20,140,17,33,15,241,11,48,1,3,246,101,245,75,252,208,2, +225,6,200,6,202,1,232,251,110,247,13,244,31,244,149,248,36,255,216,6,153,12,121,12,131,11,232,13,207,10,74,255, +168,247,109,246,59,242,113,239,61,248,240,5,101,15,212,24,211,34,195,33,85,16,81,249,108,234,25,230,164,231,204,240, +196,5,164,29,191,40,199,34,92,17,241,251,212,235,14,231,76,237,66,254,31,22,5,40,197,41,137,26,162,253,244,222, +14,207,190,208,70,223,135,252,65,32,132,52,42,50,66,32,162,0,0,221,132,202,45,206,199,222,11,249,174,20,199,33, +187,29,104,13,187,241,70,215,107,208,42,220,147,240,174,9,245,28,54,31,133,20,125,1,112,230,97,209,125,208,242,220, +125,237,214,1,161,18,124,22,152,15,42,2,72,242,1,234,168,235,103,238,82,241,130,248,193,253,27,251,35,245,181,240, +142,239,119,243,14,250,36,255,60,2,49,2,235,253,93,249,195,246,158,244,211,245,236,251,160,255,40,253,169,249,58,247, +149,244,50,244,74,247,87,252,16,4,196,11,164,11,104,3,213,250,201,244,246,239,200,238,128,243,210,251,39,4,229,8, +7,7,2,0,58,248,65,241,110,235,113,234,252,240,152,250,143,0,224,1,155,0,78,252,221,244,147,237,169,233,145,234, +184,240,8,249,29,254,179,254,159,252,75,247,95,239,217,234,223,237,65,245,116,252,153,2,16,7,188,6,136,255,132,244, +119,236,5,236,249,241,226,249,156,1,191,9,221,15,72,14,212,5,75,255,252,253,146,252,247,250,74,255,25,7,172,8, +64,3,79,255,121,0,88,2,18,2,87,3,143,9,124,16,139,17,86,13,141,8,194,3,255,253,152,249,141,248,7,250, +142,253,14,3,15,8,118,9,195,7,29,7,39,10,5,14,69,14,125,11,129,9,243,7,17,2,234,246,147,237,106,237, +225,244,214,253,106,7,203,18,220,26,172,25,210,17,1,10,51,4,90,255,140,253,179,1,142,7,139,6,34,255,210,249, +141,247,220,243,237,243,162,254,233,12,3,21,34,24,214,23,199,15,116,1,89,245,31,239,187,236,51,238,29,245,241,253, +68,1,78,254,174,252,69,255,142,0,209,255,194,2,161,8,162,10,193,6,205,255,105,248,137,242,73,239,74,239,42,243, +152,249,140,0,79,7,174,11,59,12,83,13,159,17,217,20,123,21,63,21,113,16,60,5,3,250,114,242,45,238,235,240, +70,252,162,11,140,27,232,39,244,42,54,38,81,29,215,15,252,4,1,5,126,7,206,6,147,13,217,23,221,18,68,4, +15,255,128,0,26,1,209,6,72,18,255,29,220,40,45,43,203,29,233,11,179,254,166,240,217,230,247,236,95,251,22,8, +248,22,197,34,98,30,140,15,241,3,129,251,165,243,245,240,255,246,47,4,221,15,41,15,83,5,125,254,124,249,36,240, +194,234,229,242,80,3,233,17,66,25,10,24,172,16,184,4,31,244,4,229,85,223,99,226,65,235,177,249,93,8,94,16, +104,17,36,12,217,1,172,249,231,245,230,240,68,238,81,246,217,0,204,0,147,250,84,248,183,248,126,246,122,242,30,242, +208,248,150,0,211,0,160,253,73,255,185,0,239,251,44,248,105,249,179,248,231,245,39,247,192,249,25,250,7,253,0,3, +150,5,34,5,6,5,99,1,196,248,188,242,128,243,94,247,252,251,206,1,88,7,197,9,179,6,84,254,195,245,146,241, +109,240,186,241,169,248,207,2,249,7,7,6,21,1,75,250,109,241,143,234,237,233,25,238,71,243,197,248,153,254,149,0, +17,251,95,242,22,237,48,235,194,234,60,237,78,242,228,246,119,249,151,248,241,243,115,240,37,241,207,241,156,241,82,245, +101,250,37,249,57,243,249,240,41,244,2,247,31,246,255,246,117,255,13,8,81,5,14,252,186,248,71,250,51,249,52,247, +214,249,25,1,128,7,171,6,182,0,73,255,143,2,250,1,161,255,237,2,114,7,78,7,35,6,37,5,13,1,96,252, +219,250,235,251,115,255,87,3,250,2,11,1,26,2,42,1,120,252,34,254,98,8,109,15,142,14,170,12,196,11,228,5, +177,248,117,235,176,232,205,241,32,254,59,8,143,17,124,24,122,24,163,17,70,6,78,249,204,242,237,248,27,5,162,12, +188,14,170,15,226,13,130,5,51,249,28,241,144,242,176,251,102,6,254,13,114,17,234,16,80,11,155,0,169,244,9,237, +88,237,114,245,57,0,6,7,135,8,40,7,191,2,65,251,206,243,52,238,158,236,3,244,214,0,221,5,252,0,220,253, +45,255,248,251,35,243,89,238,136,243,234,253,167,4,174,5,123,5,231,4,118,2,217,0,82,255,255,249,110,248,23,2, +226,9,184,4,219,0,238,9,180,19,134,19,120,15,230,13,140,13,38,11,244,4,26,254,89,252,52,1,132,11,87,24, +187,31,96,30,226,27,195,26,161,19,209,7,86,2,206,5,62,12,106,18,25,23,254,22,184,16,29,9,1,6,88,5, +134,3,219,7,135,23,84,36,157,33,4,25,49,19,124,8,149,248,111,240,138,243,87,251,249,5,252,17,207,24,115,23, +35,17,210,8,38,0,202,249,60,248,113,251,215,0,158,5,187,7,87,5,242,254,204,248,175,246,195,248,24,253,184,1, +73,6,59,10,27,9,232,0,182,248,42,245,112,241,27,238,163,242,159,251,182,255,181,0,197,2,105,2,54,255,79,253, +63,252,54,251,221,251,211,251,148,249,147,249,244,251,27,252,0,252,2,255,49,1,67,0,174,255,183,255,107,254,167,253, +152,254,92,255,125,255,43,255,15,254,14,254,128,255,152,254,103,252,74,255,31,5,73,5,16,1,131,255,128,254,84,250, +180,248,88,252,245,253,230,251,251,252,3,0,245,253,163,249,204,249,230,251,209,251,156,252,236,255,78,1,182,254,75,251, +1,249,101,246,136,242,26,240,153,242,4,248,116,250,216,249,109,251,169,254,225,253,76,249,7,246,26,245,203,244,152,245, +71,247,134,247,182,246,86,247,49,248,70,246,51,243,145,242,181,243,40,245,7,249,143,254,190,255,31,252,62,250,41,250, +154,245,167,238,191,237,207,242,44,247,151,249,169,252,51,255,116,254,59,251,4,248,151,245,134,244,101,246,121,250,66,253, +110,253,58,252,229,249,119,247,84,247,76,248,85,248,177,250,71,1,180,6,22,7,134,4,158,0,171,251,80,247,216,244, +228,245,249,251,10,4,242,9,126,13,72,13,68,7,232,255,138,251,43,248,110,247,172,254,132,10,199,18,242,20,233,16, +14,7,69,251,133,241,181,236,198,239,187,248,115,3,208,15,137,24,217,19,232,6,182,254,236,248,89,240,23,238,145,246, +5,0,242,4,185,5,63,255,53,243,69,234,234,231,133,234,117,241,131,251,121,7,123,18,62,19,118,5,143,244,67,235, +140,230,74,227,232,229,65,240,44,254,54,9,13,11,45,4,109,253,78,252,197,253,185,254,7,0,147,2,67,5,6,5, +21,255,23,246,174,241,32,246,18,0,248,9,33,18,195,24,49,27,29,22,63,11,132,0,4,251,234,251,181,255,130,2, +112,5,192,9,243,10,90,7,212,5,48,10,203,15,184,19,251,22,252,23,231,19,228,10,4,0,175,248,213,247,72,250, +175,254,84,8,140,19,157,22,77,17,235,11,224,9,223,8,205,7,157,8,18,13,4,17,158,13,220,4,140,253,154,247, +139,243,133,247,129,1,134,9,155,16,1,23,13,20,102,8,73,255,46,251,247,249,170,254,54,6,133,8,90,6,72,2, +148,249,44,239,57,234,238,235,227,244,100,5,244,19,11,23,239,17,33,10,103,255,73,244,26,238,190,237,34,242,13,250, +11,0,186,254,181,249,46,249,161,253,1,1,244,2,241,7,22,13,200,10,124,1,224,247,234,241,253,240,235,244,51,251, +179,1,243,5,148,4,22,0,129,254,146,254,4,254,236,2,31,14,67,19,43,11,54,253,180,241,246,233,74,229,47,229, +3,238,170,1,0,23,47,31,233,22,234,8,134,253,251,242,180,232,178,229,147,238,81,254,212,10,191,11,17,2,195,248, +125,244,20,238,155,231,147,238,55,1,90,15,204,19,73,18,5,10,45,252,130,238,166,228,106,226,111,233,199,243,151,254, +20,12,167,20,45,15,167,3,106,253,121,249,93,242,236,235,166,236,95,244,20,251,28,253,87,3,62,16,187,20,33,10, +229,253,235,247,161,241,72,232,22,227,36,235,7,1,183,22,15,31,175,29,36,23,100,6,144,239,7,225,204,224,43,239, +133,10,226,36,218,46,252,40,91,24,183,254,66,229,177,215,199,218,132,241,189,22,34,54,239,64,218,56,235,32,238,254, +228,226,22,214,136,215,117,235,190,14,76,42,6,47,48,36,250,16,93,249,171,232,197,228,25,235,82,254,224,25,117,40, +109,32,119,13,19,247,246,223,18,211,193,213,200,226,242,248,126,19,134,34,50,32,116,21,19,7,129,247,53,237,85,232, +52,231,11,239,50,252,198,0,184,252,172,250,147,251,161,252,132,255,233,2,149,5,212,9,165,11,243,5,10,255,210,252, +62,251,135,249,219,251,249,254,62,253,2,249,245,246,52,248,197,252,207,3,24,11,72,17,41,21,3,20,41,12,189,255, +209,243,97,237,72,238,214,243,104,249,28,254,119,4,191,9,249,6,87,255,177,254,209,5,245,10,202,12,74,16,254,17, +56,12,149,2,121,250,19,243,149,236,23,237,148,247,223,4,175,12,187,16,231,21,19,25,138,21,60,14,205,7,101,3, +68,2,127,3,231,1,33,253,125,251,185,253,190,253,254,250,130,251,88,1,188,8,215,14,108,19,128,21,11,19,201,11, +41,2,150,248,111,239,34,232,176,231,187,239,250,248,9,254,249,3,95,12,101,13,174,4,2,254,169,253,92,252,174,250, +46,254,130,1,91,254,143,249,63,246,72,240,251,233,27,235,69,243,52,253,193,7,82,17,23,21,210,17,153,10,176,1, +178,248,56,242,142,240,201,244,166,252,204,1,151,1,100,1,57,4,82,5,4,3,136,2,114,5,199,7,173,7,71,5, +173,0,6,253,64,253,24,254,117,252,1,252,134,255,249,2,112,2,155,255,87,254,60,0,0,3,88,3,253,1,236,0, +15,254,74,249,54,248,206,250,167,250,75,250,132,0,227,6,166,4,194,255,249,254,189,253,215,249,212,247,148,248,77,250, +98,252,177,252,89,251,180,251,168,252,69,252,136,253,66,255,143,252,3,249,17,249,118,247,48,242,155,240,169,244,124,247, +116,245,245,242,44,245,74,248,151,244,47,239,119,242,122,248,149,247,173,245,123,246,140,242,159,235,65,233,85,232,120,231, +196,236,138,245,232,250,54,254,81,255,141,250,17,243,188,237,220,235,122,239,95,246,165,250,220,253,148,1,122,254,120,244, +250,238,129,241,75,246,245,251,146,4,71,15,247,22,16,21,237,10,26,1,129,249,210,242,14,243,128,251,118,3,146,9, +252,17,37,23,246,19,162,14,187,11,113,9,192,8,15,11,117,13,42,14,235,13,62,12,181,8,100,5,82,5,151,8, +16,11,160,10,89,11,50,15,230,16,155,13,128,10,246,11,217,14,53,14,188,10,112,8,88,7,164,4,98,1,29,1, +17,4,182,7,107,10,155,12,168,14,31,14,179,9,8,6,130,5,11,3,51,254,183,253,96,1,219,2,161,1,184,0, +192,1,44,5,183,6,168,2,158,255,210,2,186,4,168,0,39,253,89,253,114,253,160,251,156,248,81,246,208,246,162,248, +240,250,56,0,65,6,191,8,180,10,238,13,150,12,199,4,11,251,117,243,51,242,86,246,119,247,58,247,77,1,26,17, +245,21,246,15,154,11,179,11,213,10,186,5,21,255,183,254,43,6,51,11,147,7,143,0,254,250,18,249,153,253,120,4, +10,7,185,10,156,22,26,33,145,28,9,12,19,253,199,246,28,246,101,245,3,245,81,250,147,4,118,11,191,10,91,5, +6,255,138,252,42,1,223,5,253,2,169,0,9,8,148,14,141,7,199,249,191,241,89,240,88,240,124,238,184,236,205,241, +60,254,77,8,210,10,124,9,144,5,31,255,43,250,152,246,136,240,253,235,65,240,83,250,176,255,100,251,150,243,73,241, +69,243,248,241,220,239,66,246,181,3,184,13,218,14,1,8,250,251,158,239,146,231,136,228,81,229,176,235,210,250,229,13, +210,22,120,15,128,3,30,254,201,250,30,243,207,237,141,244,10,4,41,15,37,15,149,8,24,1,113,250,173,246,44,246, +74,247,198,253,219,11,75,22,21,20,4,14,133,11,88,6,128,253,131,249,154,251,168,254,30,1,22,2,206,0,228,254, +164,251,124,247,255,248,100,0,225,4,251,6,241,12,221,15,205,7,27,252,30,244,26,239,154,239,37,245,141,247,39,249, +70,1,181,4,17,249,52,238,145,241,204,247,46,249,164,254,36,10,113,17,62,13,237,254,206,239,67,232,189,228,162,225, +241,230,155,245,142,0,121,3,1,4,144,0,123,248,210,243,7,244,86,244,10,248,143,0,144,3,108,252,61,244,97,240, +218,235,16,229,156,227,64,236,137,247,26,252,135,252,140,255,238,1,48,254,165,248,41,247,247,247,130,248,88,250,211,253, +75,0,78,255,26,250,214,242,17,238,110,237,235,237,246,238,166,245,147,3,235,15,172,17,102,13,137,13,239,14,169,6, +39,250,196,248,47,255,252,254,251,250,208,252,85,255,3,254,138,0,134,7,245,10,74,12,175,16,170,21,215,24,170,25, +238,21,149,16,10,13,230,4,136,245,101,234,107,237,109,254,37,22,152,38,170,42,223,46,191,50,108,32,80,250,243,226, +24,232,31,246,104,1,153,17,235,38,226,49,199,38,232,12,232,245,219,235,185,239,234,255,106,21,17,38,69,46,31,44, +120,25,69,249,223,220,98,210,45,219,69,243,48,19,185,45,132,55,218,47,104,28,231,0,84,227,97,210,218,216,207,238, +169,4,69,20,209,28,112,27,69,16,97,0,162,241,192,234,50,241,50,1,58,14,69,16,230,11,14,8,27,2,25,246, +235,235,99,238,23,251,123,6,20,11,239,12,17,16,110,17,187,13,183,8,128,5,81,2,171,0,101,1,225,253,60,247, +27,249,121,1,55,4,59,5,250,12,61,19,33,16,25,9,240,1,186,250,6,248,135,251,38,1,108,7,128,13,54,15, +220,10,181,2,112,249,135,242,25,241,132,245,75,254,239,7,203,13,43,14,166,9,96,0,243,244,174,237,96,239,235,248, +41,4,49,12,129,17,139,20,24,18,196,8,184,250,246,235,34,228,197,231,59,240,59,247,203,0,182,14,224,24,219,23, +125,13,126,3,203,255,157,250,254,238,160,234,75,245,6,0,149,1,250,1,118,2,196,253,93,248,251,246,230,246,79,248, +192,253,125,5,37,12,160,13,163,7,99,254,65,245,233,234,43,227,210,227,46,234,194,242,40,254,255,7,22,10,169,5, +234,255,139,253,241,254,68,253,149,247,58,248,206,253,112,248,57,232,23,222,67,223,180,228,27,236,8,247,23,5,25,19, +105,25,167,18,136,4,158,248,101,241,232,235,114,230,162,227,44,231,128,238,212,242,190,243,135,246,71,252,213,1,78,6, +116,10,149,12,43,10,192,3,184,251,80,243,7,236,60,232,232,231,171,233,237,237,32,244,10,250,61,255,136,3,95,6, +45,9,11,10,125,4,105,253,10,251,177,245,247,233,197,229,61,236,245,238,169,237,5,244,207,253,104,0,13,254,14,252, +72,251,61,252,119,252,6,250,81,249,250,250,193,248,233,242,185,239,48,241,113,246,184,252,0,255,129,254,121,0,176,1, +142,252,71,245,105,243,161,248,109,0,188,3,176,2,192,4,209,7,222,2,23,251,49,251,52,255,201,0,17,3,183,5, +255,4,206,3,145,3,225,1,27,2,220,5,42,7,64,6,244,7,57,8,194,3,38,0,63,255,34,255,93,2,202,7, +82,10,224,11,112,13,97,9,184,1,165,253,135,251,15,250,108,253,33,2,102,3,144,6,217,11,250,10,92,6,56,5, +175,3,195,255,33,0,155,3,107,3,68,2,190,4,105,7,235,6,96,4,95,1,74,0,128,2,220,4,155,5,141,8, +206,14,215,18,182,17,205,14,115,11,109,5,225,254,182,252,119,254,224,1,243,7,26,15,143,18,37,18,194,15,211,9, +46,1,158,251,242,251,204,255,27,5,40,12,119,19,49,20,241,9,224,252,194,246,87,244,142,241,116,244,157,254,54,8, +250,12,31,12,230,4,61,252,234,246,107,243,41,243,140,248,41,254,114,1,250,5,35,8,120,4,167,1,33,0,245,248, +81,241,142,241,255,244,195,247,10,254,59,7,255,14,203,19,246,18,198,11,47,3,138,251,1,244,193,239,38,242,80,250, +208,5,178,15,155,18,130,16,1,15,33,13,126,6,232,253,29,252,93,2,211,7,39,9,49,11,101,11,253,4,155,255, +0,0,144,254,239,252,42,4,121,13,0,14,218,8,181,3,223,2,79,10,54,16,231,10,27,8,145,15,72,13,9,250, +46,234,178,231,240,236,166,248,84,7,158,18,47,28,69,32,150,19,48,253,160,240,177,240,65,246,27,1,241,13,225,19, +169,17,238,9,112,251,228,234,168,228,144,236,149,251,246,12,152,29,239,36,101,30,124,16,220,0,226,239,251,226,184,226, +251,239,152,3,33,18,218,19,139,15,159,13,71,5,126,241,211,229,188,239,203,255,16,7,45,10,77,14,175,14,89,5, +231,242,164,226,101,225,157,236,45,248,180,0,200,8,57,14,17,13,141,4,148,247,144,236,146,232,239,234,153,240,197,246, +171,250,115,251,61,250,251,247,237,245,147,245,187,248,243,1,134,13,13,15,28,2,192,242,138,234,233,228,252,221,198,220, +185,233,57,2,111,22,19,24,39,13,38,6,202,2,120,247,32,233,14,232,177,244,81,1,62,6,56,4,92,254,103,249, +40,247,215,244,230,242,239,244,7,251,57,4,154,13,79,14,161,5,202,0,237,1,55,252,116,241,154,239,145,245,107,251, +43,2,153,7,80,6,72,3,138,2,152,254,55,248,219,246,54,251,112,3,174,13,218,17,10,12,100,4,117,0,162,253, +136,250,91,247,174,246,122,255,47,14,104,17,246,5,89,254,43,3,176,7,140,3,186,255,154,5,183,15,18,17,68,7, +154,253,77,252,15,255,92,0,116,1,169,3,246,5,188,8,19,10,104,5,6,254,32,253,134,2,216,6,175,8,15,9, +233,5,30,1,15,254,151,249,84,243,135,243,175,252,101,6,227,9,210,7,244,4,179,4,30,3,81,251,46,243,96,243, +231,249,68,255,57,255,133,250,90,247,242,248,49,249,82,246,98,248,27,0,79,5,9,6,193,4,166,1,20,254,81,250, +234,244,42,242,167,245,95,250,84,254,127,4,61,8,241,4,120,0,127,254,102,252,177,251,253,253,135,0,9,4,195,8, +44,8,186,0,35,250,11,249,174,251,200,254,190,0,228,4,9,12,93,12,193,1,254,247,225,244,206,241,103,240,210,246, +142,255,59,5,24,10,143,10,159,2,173,250,228,248,123,247,120,244,110,245,241,250,86,0,12,2,92,255,201,251,14,250, +40,247,189,243,163,246,3,254,69,1,30,2,98,6,148,9,54,6,248,255,207,251,89,250,88,250,185,250,79,253,206,3, +21,9,144,8,6,6,142,3,165,254,202,250,215,251,64,253,75,254,62,4,193,10,11,10,20,6,131,3,139,254,242,247, +117,246,247,249,231,253,1,2,37,7,3,11,71,10,98,4,136,253,52,250,29,249,58,247,43,246,52,249,204,255,62,5, +19,5,194,1,233,1,154,4,180,3,24,1,210,2,74,7,147,9,33,8,172,2,77,252,231,250,113,252,229,250,18,252, +193,7,76,20,33,21,149,15,199,12,91,9,35,1,94,248,169,244,103,248,140,0,228,5,23,8,217,11,13,13,54,8, +208,5,114,7,181,4,246,1,92,5,138,4,106,253,6,252,82,252,203,245,101,243,18,249,235,250,12,251,220,0,142,5, +163,6,57,6,80,0,52,255,19,13,182,17,81,0,242,248,69,3,95,253,143,231,44,224,240,230,169,239,17,253,132,9, +72,15,203,23,240,29,174,17,68,253,25,244,29,245,33,250,137,0,70,3,232,3,168,4,250,252,1,238,21,232,27,238, +147,246,31,2,211,17,221,26,63,22,184,9,96,253,160,243,134,234,14,228,47,232,210,246,167,2,189,2,93,252,22,248, +186,247,134,247,129,245,73,246,195,253,100,6,185,7,221,0,11,247,13,239,210,234,131,234,153,237,87,243,253,251,45,6, +15,10,126,2,153,249,104,250,127,254,10,254,94,0,105,10,47,17,199,10,49,254,30,248,185,245,144,236,231,231,210,249, +5,17,135,19,47,16,111,24,66,23,0,3,229,244,69,245,103,247,106,254,125,13,17,23,102,22,240,17,65,10,227,255, +96,245,90,237,69,242,211,4,227,15,100,14,250,17,154,20,197,4,28,244,48,248,173,2,239,6,189,17,242,35,254,39, +8,21,165,251,105,236,172,227,17,218,233,219,2,245,119,20,26,37,103,41,185,38,58,24,66,2,249,240,216,231,64,231, +13,241,200,255,231,9,212,10,221,2,41,247,245,238,120,236,184,239,97,250,107,9,244,21,238,27,119,23,87,7,18,245, +70,234,32,229,67,228,60,236,13,250,246,4,104,11,38,14,193,10,94,4,206,1,251,1,17,1,229,1,91,6,239,8, +99,5,112,254,128,248,191,245,75,246,220,248,3,253,42,3,27,9,4,12,230,12,41,12,253,6,195,255,16,253,225,252, +197,249,197,248,246,253,143,0,130,253,69,255,254,5,120,5,185,254,231,252,131,254,171,251,147,246,63,245,240,247,198,251, +136,254,7,1,174,5,27,10,223,8,134,1,241,247,7,241,2,241,52,245,98,247,189,250,93,4,223,11,28,8,198,254, +230,248,253,247,122,250,144,254,94,4,156,13,232,20,213,17,55,7,85,252,65,242,241,236,46,242,230,252,129,6,160,16, +185,24,151,23,152,14,109,3,162,249,94,246,113,250,79,255,150,3,52,10,11,15,98,13,70,7,160,255,72,250,210,251, +92,0,21,1,132,1,120,6,13,10,171,6,241,0,191,254,22,255,14,255,208,255,33,3,36,6,169,5,173,3,252,2, +200,2,135,1,0,0,118,1,152,6,36,8,224,1,234,252,77,254,20,253,219,248,119,252,25,5,153,8,136,9,10,10, +21,4,115,250,177,244,233,240,84,238,241,241,243,249,190,0,135,4,222,2,203,251,218,244,246,238,226,232,182,232,25,240, +94,246,61,249,243,252,140,253,165,246,8,238,120,232,16,229,162,230,119,239,79,248,158,250,192,250,235,252,158,251,72,243, +159,235,232,235,92,240,197,242,29,244,223,247,117,252,244,253,162,253,215,255,219,2,185,2,232,2,254,4,143,0,90,245, +11,241,70,246,135,249,215,249,2,0,137,11,182,20,174,22,141,17,78,11,155,8,150,5,158,0,156,255,92,3,171,7, +243,11,38,13,70,7,17,1,146,1,177,3,34,4,41,8,165,16,110,25,97,31,241,29,148,20,202,10,20,3,193,249, +62,243,45,246,201,254,139,8,143,19,24,26,170,21,250,11,182,5,74,1,187,249,95,243,97,250,72,16,233,32,124,28, +56,18,49,18,17,12,68,243,233,223,69,229,60,243,230,250,54,3,223,15,137,25,4,27,48,19,226,5,40,251,27,245, +63,242,225,244,157,250,85,254,9,4,113,11,40,9,205,254,203,248,104,244,214,236,61,236,37,245,144,253,165,5,104,16, +78,21,77,15,74,3,33,246,70,237,71,235,226,234,30,237,78,249,152,8,45,14,186,11,245,6,15,0,145,250,164,248, +183,246,235,247,241,0,42,9,74,8,35,4,231,1,73,254,36,249,92,246,58,246,238,248,163,1,47,14,100,21,116,20, +46,18,163,14,35,1,243,236,222,225,75,228,93,235,128,244,230,3,125,21,244,28,95,21,51,8,156,254,138,245,48,236, +221,236,194,248,147,2,212,4,196,3,17,254,164,241,145,228,91,223,145,230,248,245,103,3,22,13,162,21,105,21,164,8, +192,249,19,237,7,226,142,226,170,238,195,246,98,252,57,9,153,15,35,4,198,245,222,239,214,238,232,241,102,247,176,252, +152,7,249,20,39,21,124,9,161,0,98,251,179,245,42,243,246,244,197,251,85,8,71,16,202,12,124,8,64,7,99,0, +150,248,152,250,35,1,179,5,240,11,106,18,246,18,108,14,165,7,156,255,189,249,129,248,176,250,49,255,197,4,184,9, +132,13,29,14,94,9,206,2,121,255,2,255,185,254,166,254,149,1,72,8,32,12,71,7,38,0,104,253,170,249,55,243, +101,242,150,246,127,248,42,251,1,1,158,2,57,0,76,1,155,2,53,255,55,252,95,250,54,244,208,237,140,237,8,239, +222,238,161,241,203,247,99,252,159,253,5,252,59,248,168,244,233,242,130,242,88,243,233,244,32,246,17,247,112,246,234,242, +44,241,216,245,37,252,231,253,141,252,129,250,88,247,91,244,108,242,153,240,85,242,203,251,114,6,30,7,239,254,243,248, +12,248,36,245,150,240,92,245,174,4,8,16,109,15,175,10,202,6,103,255,244,245,53,242,214,244,64,250,169,3,246,15, +129,22,37,19,141,12,89,8,117,3,48,251,43,246,88,252,210,8,20,16,145,19,86,27,205,31,235,22,117,12,163,11, +83,8,140,253,177,252,141,8,224,14,60,12,193,11,113,14,190,15,158,14,126,10,164,8,23,15,19,21,203,16,203,9, +161,8,31,10,238,9,159,5,149,254,101,254,217,5,156,6,13,255,127,253,79,3,219,6,16,7,242,5,230,3,183,3, +158,2,121,251,69,245,86,247,252,251,150,255,160,4,173,6,99,2,72,254,171,252,12,249,52,245,78,246,53,252,224,3, +212,8,105,7,59,3,77,1,121,254,16,248,188,244,171,249,57,2,176,8,21,12,174,11,212,7,233,4,54,4,74,1, +255,252,246,253,173,3,239,7,91,9,209,8,254,5,126,2,24,255,233,251,91,253,125,4,66,11,133,16,154,20,16,16, +232,3,132,252,228,248,124,241,30,239,98,248,239,2,231,9,94,15,124,13,240,4,75,0,186,253,107,247,213,245,105,253, +162,4,251,6,66,6,118,1,77,251,18,248,56,245,86,243,68,249,133,4,27,11,119,12,0,14,195,12,113,2,132,244, +232,239,53,246,220,253,115,3,109,10,149,17,26,20,32,14,138,255,46,243,203,244,143,252,215,253,96,0,133,13,71,25, +164,21,235,6,190,250,239,248,230,252,35,254,227,255,249,8,49,18,147,17,7,9,147,253,83,243,135,239,181,240,72,243, +111,251,181,7,36,13,167,11,138,10,111,6,191,252,190,245,238,244,189,245,93,246,211,246,132,247,86,250,220,252,203,251, +70,251,119,254,231,1,116,3,80,1,26,249,94,241,180,241,45,244,135,242,241,242,208,249,164,1,240,3,135,254,100,246, +170,243,237,243,32,240,98,238,145,245,43,253,10,255,243,255,193,253,226,243,29,235,87,234,104,235,242,236,44,244,201,252, +38,0,143,0,74,254,112,245,35,235,50,232,207,234,228,236,128,239,96,246,244,254,37,1,238,249,141,241,95,239,235,238, +203,236,99,239,79,247,6,252,144,252,26,253,104,250,47,243,226,238,47,240,173,242,172,245,128,250,145,255,58,3,86,3, +194,254,39,250,210,248,186,247,4,248,123,253,87,2,3,1,22,255,67,255,27,253,155,250,122,251,158,252,183,254,20,5, +132,9,214,7,235,6,204,7,104,4,205,255,158,254,106,253,230,252,63,0,133,1,230,254,253,0,232,6,89,7,180,3, +231,1,3,2,189,4,153,8,74,7,47,3,123,3,1,4,220,255,147,252,241,252,223,254,38,3,185,6,53,6,255,7, +16,13,97,11,104,4,209,1,20,1,160,254,197,254,33,0,221,0,119,5,116,9,95,6,201,4,106,8,205,7,86,5, +142,8,60,10,148,7,38,8,62,8,102,4,66,6,172,11,186,8,170,3,228,5,93,8,166,7,104,9,50,13,161,17, +50,22,54,20,253,12,210,10,200,9,74,2,205,254,154,5,137,11,136,13,71,17,3,18,91,12,107,7,122,4,34,1, +8,3,239,10,182,15,146,15,233,14,238,10,184,1,42,250,249,247,72,248,229,251,255,3,46,10,247,9,247,7,116,6, +185,1,149,251,190,249,172,250,53,250,213,248,207,246,49,244,50,244,135,246,215,247,220,250,76,1,48,4,109,1,34,255, +179,252,132,246,49,242,197,243,243,245,186,246,37,249,101,251,159,250,246,248,140,248,135,249,48,252,202,255,90,3,71,6, +210,5,19,1,245,252,14,252,172,250,120,248,235,249,133,254,64,1,150,1,76,3,215,6,64,8,143,6,99,6,246,8, +205,8,204,4,6,2,252,255,60,251,160,248,6,253,23,3,24,6,243,8,95,12,196,12,235,9,103,6,92,3,214,0, +209,254,125,254,57,1,83,4,45,4,109,2,21,1,179,254,156,252,110,253,36,255,234,0,220,4,3,8,219,6,145,4, +39,2,98,252,44,246,158,244,82,246,118,249,0,254,162,0,204,255,6,254,249,250,143,246,74,245,182,247,5,250,177,252, +1,0,224,255,71,252,176,248,208,244,135,241,252,242,25,248,89,252,184,255,203,2,221,2,113,255,165,251,145,249,160,249, +190,251,126,254,87,0,186,1,209,2,139,1,175,253,139,250,78,249,26,249,20,252,251,1,222,4,120,4,26,6,70,7, +33,4,4,2,86,3,251,3,220,4,116,5,170,0,77,252,94,255,156,0,104,252,213,254,99,7,47,11,137,12,195,13, +5,9,54,3,204,2,173,0,72,252,152,254,191,4,218,7,185,8,63,6,69,2,177,3,216,4,212,255,80,1,29,12, +59,15,93,10,36,10,87,8,75,253,48,244,118,244,22,248,1,251,237,253,152,2,218,8,16,11,145,7,73,4,118,0, +164,248,144,242,199,239,235,236,88,242,124,2,231,11,100,9,104,8,224,7,30,253,149,236,35,224,207,220,85,229,62,243, +51,254,129,9,27,19,33,14,75,253,66,239,245,229,138,224,38,230,80,246,47,8,232,21,115,26,55,19,100,3,119,237, +187,215,215,207,69,217,103,235,247,1,46,23,191,31,16,28,220,17,156,253,215,229,76,222,159,232,59,247,231,6,144,21, +134,25,83,17,146,1,216,235,182,217,140,216,85,230,98,249,59,14,114,32,179,40,130,35,45,16,49,245,150,226,249,223, +153,229,153,239,140,1,18,22,217,32,214,29,167,18,191,6,234,253,26,248,80,247,227,255,68,14,63,23,9,23,147,19, +159,14,213,4,71,250,97,247,97,251,44,1,212,9,241,20,122,28,130,31,89,31,50,23,213,8,0,255,22,249,213,240, +105,238,35,248,110,3,69,10,72,17,120,22,241,21,19,17,18,6,198,247,254,241,97,244,227,245,231,250,35,6,188,11, +66,9,3,6,168,254,45,243,110,239,69,244,39,250,218,2,223,13,110,19,143,17,213,7,24,247,52,235,45,234,141,235, +20,241,217,1,25,18,21,23,125,23,120,20,206,9,37,254,134,245,250,238,102,241,41,251,131,255,44,2,178,10,173,12, +26,3,78,251,80,247,185,243,195,247,13,0,189,2,243,8,32,23,18,27,178,15,116,4,121,252,239,240,142,229,64,226, +226,233,126,248,154,3,82,7,143,9,24,9,217,0,99,246,122,239,227,235,110,239,235,249,146,1,43,4,87,5,54,0, +184,243,237,233,36,231,162,232,175,237,154,243,52,249,169,1,248,6,123,0,105,246,102,242,41,239,255,234,20,236,152,240, +133,245,26,252,146,254,40,250,25,249,23,253,218,251,236,246,2,247,168,250,108,254,78,1,173,255,255,251,108,252,242,251, +178,246,62,246,27,253,161,1,95,3,75,7,18,9,196,6,58,6,213,6,240,3,15,0,35,254,125,252,163,251,163,253, +40,1,147,4,72,8,196,11,56,13,3,12,117,9,45,6,69,1,176,252,107,252,67,255,208,1,81,5,129,9,46,10, +116,8,35,7,223,2,55,252,44,250,96,252,155,254,220,3,25,13,57,20,63,22,187,19,108,14,134,10,33,5,207,247, +155,237,107,244,107,0,73,4,87,10,87,22,1,25,211,15,28,6,202,253,16,246,208,243,105,247,58,254,140,7,153,15, +247,18,168,16,173,5,77,247,198,242,40,245,215,242,48,243,51,254,26,7,130,6,38,4,161,255,171,245,51,237,54,233, +26,232,5,237,196,243,52,245,247,248,25,2,24,5,132,6,27,18,225,23,209,9,124,250,163,243,128,230,111,214,87,214, +235,227,180,242,232,0,128,13,91,21,199,21,38,8,1,241,180,229,152,236,254,247,243,5,20,26,26,39,139,34,252,17, +129,249,161,223,38,212,68,217,159,228,91,248,27,22,36,45,209,48,213,35,220,10,236,239,244,224,106,222,139,228,240,247, +124,18,83,35,231,39,129,36,221,21,42,1,36,243,204,236,78,237,156,249,204,10,196,19,72,20,63,15,137,4,44,251, +46,248,169,247,132,251,134,7,249,19,131,26,170,28,197,24,15,16,69,9,84,2,204,249,14,250,16,2,197,3,225,1, +18,6,35,9,114,6,50,6,34,8,254,7,113,10,201,13,64,10,2,4,47,1,231,255,99,2,164,9,119,13,210,13, +245,16,188,15,217,4,106,251,180,247,197,243,230,244,134,255,38,8,150,9,6,11,22,10,133,0,209,245,44,243,123,247, +21,255,159,6,211,10,204,12,138,12,165,5,68,250,17,242,108,237,220,234,216,238,40,248,25,254,158,255,216,0,247,254, +66,247,172,238,146,233,104,232,216,235,191,242,164,249,0,254,216,254,61,0,82,7,37,10,28,252,125,237,155,242,90,247, +132,229,142,214,111,226,166,241,125,240,21,240,50,251,154,5,135,6,63,254,175,243,6,243,100,250,102,253,140,255,140,6, +20,8,241,2,241,255,123,247,111,231,46,227,193,235,234,240,140,249,127,12,198,21,59,15,94,9,156,3,177,246,249,236, +175,236,83,242,181,254,235,10,4,14,9,17,32,22,138,14,83,0,205,252,60,252,153,248,47,254,106,6,13,2,53,253, +223,1,101,2,165,252,234,251,176,254,170,1,179,6,68,8,114,6,185,10,213,16,222,15,159,13,121,12,37,7,232,2, +64,2,37,252,46,245,16,250,72,4,80,9,116,13,239,18,183,20,174,18,26,14,163,7,179,3,158,2,27,1,49,3, +38,11,42,17,12,18,2,18,16,16,200,10,214,6,110,5,174,3,66,3,199,5,9,7,157,4,151,2,21,4,244,4, +86,0,34,250,112,249,217,252,122,254,230,253,106,254,199,1,113,5,180,3,234,252,219,247,82,244,182,238,204,235,48,237, +145,237,97,241,206,251,102,255,56,249,53,248,117,250,135,244,176,239,11,243,21,243,191,239,150,242,153,245,175,243,39,244, +100,246,234,245,102,247,35,252,136,1,73,8,70,9,38,254,29,242,34,237,151,234,124,238,187,250,173,2,20,6,163,12, +183,10,247,251,188,242,77,241,121,237,27,241,250,2,254,21,6,34,7,33,156,12,172,245,187,235,214,225,37,218,29,234, +90,4,5,17,25,27,101,37,189,27,139,4,27,243,101,229,187,223,21,237,125,1,151,17,202,30,233,30,79,17,203,8, +43,0,62,236,195,229,101,246,178,0,213,2,75,17,134,28,159,18,49,4,131,252,255,248,53,254,166,6,233,8,140,14, +219,22,64,17,153,6,55,6,51,4,36,254,34,3,176,10,10,9,188,11,189,19,159,16,143,8,117,8,107,9,2,8, +246,8,61,8,131,5,178,5,253,2,78,252,53,252,203,0,92,3,221,10,16,22,156,23,238,17,137,12,107,0,114,239, +81,233,143,237,153,240,119,244,238,253,55,6,147,6,129,0,8,249,103,243,36,238,123,233,132,236,71,247,119,253,62,252, +89,254,19,3,219,254,154,245,81,244,64,246,84,240,44,235,173,242,124,253,11,0,79,0,254,2,144,1,174,250,0,242, +165,230,102,220,45,220,236,230,25,250,250,18,238,36,0,39,4,34,83,24,229,255,206,226,27,215,192,217,67,222,81,235, +150,5,211,29,199,36,62,25,125,4,122,242,191,230,143,224,92,231,218,252,49,17,64,26,23,29,225,24,65,8,15,242, +210,225,155,221,137,231,46,249,160,7,86,17,209,23,174,22,194,14,229,5,253,251,48,243,236,241,224,243,128,242,243,244, +144,255,155,8,15,11,45,12,210,14,243,17,245,17,255,9,35,254,130,247,28,245,205,243,169,248,58,3,127,11,19,17, +13,21,156,17,64,8,95,2,166,0,53,0,172,4,192,13,29,21,77,25,110,26,96,21,14,11,68,0,78,248,130,246, +99,250,126,253,207,255,244,6,254,13,75,13,3,11,87,13,194,14,187,13,212,14,130,13,132,3,54,247,228,240,152,239, +160,240,209,245,32,1,192,13,213,16,170,7,82,253,159,246,126,235,230,222,193,223,215,236,28,248,174,255,4,7,26,8, +224,255,41,246,77,241,232,240,0,243,0,247,77,254,81,7,9,11,165,7,98,2,20,251,185,240,246,234,56,235,150,232, +194,228,136,231,162,236,234,243,230,8,242,36,203,49,97,46,196,38,104,22,170,247,147,216,228,201,146,207,34,228,165,253, +31,23,74,48,74,59,137,38,127,255,148,228,255,217,6,214,29,225,209,0,197,32,41,46,141,43,53,30,73,6,42,235, +130,217,15,216,216,229,52,252,81,18,8,34,1,39,55,31,73,15,229,252,238,233,10,222,239,226,57,241,150,250,111,2, +165,15,60,23,198,15,209,2,198,251,158,251,184,254,203,0,236,1,87,6,22,10,175,5,36,255,84,255,83,2,15,4, +132,6,156,7,5,7,1,9,158,9,66,5,170,4,158,9,190,10,219,10,63,17,129,21,5,16,192,5,97,250,86,241, +146,240,110,244,147,248,124,3,180,18,186,24,225,21,132,17,170,9,113,0,208,251,12,247,43,241,36,243,4,250,73,252, +182,252,149,253,40,251,248,248,24,249,241,245,190,241,213,240,254,237,65,234,160,236,6,240,40,240,51,244,212,250,170,251, +23,249,165,246,236,242,39,241,143,241,107,240,28,244,9,255,22,4,51,0,131,252,253,245,114,233,90,225,167,223,108,220, +170,218,217,226,143,248,104,23,242,43,3,42,254,34,102,30,124,7,187,227,6,213,238,220,189,230,179,243,126,8,25,28, +30,40,183,36,20,14,14,248,118,240,90,234,107,231,21,248,46,14,121,20,169,21,206,26,83,23,8,9,116,251,156,244, +47,246,71,252,136,255,12,3,237,9,29,12,0,10,219,10,68,8,165,254,130,248,229,245,64,240,65,239,33,247,255,254, +17,5,208,10,74,11,212,8,38,8,237,3,165,252,206,249,129,248,87,247,111,253,167,5,88,6,29,5,153,5,18,2, +192,253,101,253,30,253,5,255,76,6,120,10,127,8,39,7,183,5,210,2,14,3,38,3,210,255,171,0,117,5,182,5, +174,4,81,7,181,9,239,11,139,13,198,7,220,254,231,251,103,250,119,248,107,252,143,0,28,255,134,0,213,3,204,255, +117,251,250,252,158,251,205,247,177,248,220,249,193,250,164,0,241,3,13,0,30,254,242,252,72,246,111,242,27,244,248,242, +38,244,186,253,4,5,206,5,57,6,155,2,165,249,152,244,52,243,50,241,108,244,167,252,68,2,26,7,229,11,130,10, +68,7,48,8,19,6,91,255,246,252,248,253,26,253,94,253,38,255,131,255,238,1,30,8,167,13,153,16,85,16,223,11, +158,5,117,254,170,246,115,244,23,249,12,253,127,0,75,7,184,11,10,12,13,13,55,9,11,254,228,248,246,252,149,255, +74,2,225,8,171,9,115,3,86,0,188,254,96,250,36,249,167,250,115,249,15,251,70,3,30,10,249,11,32,12,146,10, +112,7,28,4,126,255,9,252,227,253,215,1,60,5,144,11,135,18,230,18,27,13,188,5,40,255,147,252,203,254,43,2, +95,6,123,12,247,15,230,13,123,9,78,3,206,249,117,241,157,240,131,247,86,2,116,13,249,21,87,25,110,21,253,10, +44,255,172,246,186,241,122,240,143,245,89,255,162,5,85,4,135,0,168,252,142,244,251,234,222,232,184,236,135,239,178,243, +1,251,109,254,244,252,38,252,12,250,98,244,39,241,255,242,17,247,106,252,142,255,180,253,155,252,3,253,111,247,137,240, +135,241,170,242,84,237,227,234,224,237,25,239,5,241,155,246,183,249,80,250,201,252,96,254,242,254,153,1,212,1,81,255, +72,2,146,7,130,6,208,3,230,2,237,252,47,244,227,240,12,241,177,243,234,252,40,7,234,11,138,15,170,17,90,11, +186,0,188,249,189,244,235,241,23,247,83,2,228,11,93,17,19,20,115,20,53,17,156,8,75,254,235,249,127,251,78,252, +136,251,14,254,208,4,128,10,64,9,70,3,41,1,87,2,240,253,10,247,81,248,95,254,216,0,201,3,44,10,56,13, +12,12,242,10,222,5,63,250,231,240,178,239,161,242,66,247,181,254,78,7,12,14,42,17,102,15,68,9,239,0,175,248, +228,243,166,244,152,248,160,253,144,4,32,11,148,12,138,9,48,6,187,3,164,1,75,0,57,0,43,2,233,5,44,9, +188,10,212,10,101,8,241,3,180,0,224,254,241,252,50,253,217,0,143,4,183,6,39,7,61,4,172,0,148,0,197,255, +238,250,233,248,147,252,194,255,178,1,234,4,49,5,59,1,151,254,147,253,174,251,220,251,134,254,234,255,62,1,180,3, +54,3,202,255,35,253,5,250,22,246,226,245,167,249,155,253,20,1,58,3,179,1,82,254,227,252,182,253,9,255,173,255, +207,0,70,5,16,11,255,11,247,7,21,4,49,1,104,253,154,249,188,247,220,248,16,252,181,254,254,0,126,4,142,6, +189,5,49,5,46,4,103,0,171,253,130,253,141,252,229,252,70,0,193,1,127,2,199,6,125,8,194,4,243,2,231,1, +73,253,17,252,76,254,30,251,186,248,227,253,233,254,185,249,107,251,221,0,13,1,23,3,35,8,164,6,207,2,140,3, +143,2,244,254,246,254,185,0,234,2,203,6,68,6,58,1,64,0,52,0,46,252,157,252,35,2,35,4,178,6,76,12, +3,11,55,5,49,4,0,2,179,252,203,253,223,1,195,2,42,7,227,11,57,7,116,2,112,4,191,1,16,251,25,252, +226,255,172,255,20,1,44,3,127,1,89,0,41,255,214,250,241,250,2,0,74,255,192,251,201,253,74,254,80,249,196,247, +202,249,229,248,57,248,28,251,164,253,38,254,21,254,33,254,199,254,104,254,56,252,207,251,27,253,83,252,200,251,194,253, +76,254,206,253,201,255,217,0,24,255,88,254,217,253,215,251,48,251,27,251,140,250,151,254,115,5,245,6,144,5,213,5, +107,2,0,251,249,246,82,246,33,247,185,252,202,4,91,9,143,10,162,8,217,2,11,253,51,248,213,242,161,242,154,249, +31,255,128,1,203,5,50,7,8,1,76,250,97,247,239,245,20,247,75,251,12,255,189,1,25,3,251,0,10,254,94,253, +98,252,245,250,87,252,215,254,210,255,24,0,31,255,214,252,250,251,132,252,12,253,81,254,11,255,107,254,109,255,111,0, +159,253,181,251,181,253,162,253,115,252,149,0,124,4,201,1,76,255,61,0,232,253,220,248,8,248,112,251,115,255,223,2, +76,5,93,7,6,9,1,7,26,0,145,248,58,245,75,247,20,251,122,252,212,254,10,6,208,10,88,6,156,255,133,253, +100,252,219,249,91,249,123,252,255,1,242,6,196,7,207,5,51,4,182,0,233,250,140,248,159,250,165,252,255,254,89,3, +30,6,40,5,197,2,239,255,193,252,40,251,151,251,36,252,184,252,75,255,69,3,209,4,197,2,164,0,74,0,203,255, +1,254,52,251,46,249,176,251,2,1,17,2,253,0,187,4,201,7,16,4,82,1,99,2,151,255,95,251,218,251,77,251, +151,248,191,251,196,1,65,3,123,3,4,4,116,2,251,2,107,5,48,3,128,0,96,2,160,1,21,254,129,255,254,0, +215,253,5,254,66,1,186,0,3,2,192,7,254,8,106,6,195,5,224,2,232,254,154,0,223,1,226,253,209,252,146,254, +210,252,153,253,149,3,10,6,97,6,142,10,158,11,60,6,247,1,220,254,170,249,104,247,178,249,55,253,102,3,17,10, +24,10,168,5,100,2,130,254,106,250,59,250,100,252,117,255,19,5,38,9,212,7,185,4,205,0,153,250,62,247,75,249, +2,252,187,255,226,5,9,7,59,1,218,253,44,254,46,251,254,247,104,251,215,0,89,2,50,3,184,5,174,5,87,1, +120,252,171,249,94,248,29,248,107,249,204,252,143,1,126,4,8,3,12,0,66,255,150,254,31,252,139,251,245,253,249,254, +254,253,108,254,66,0,3,2,152,3,132,3,174,1,68,1,142,1,197,254,35,251,214,250,149,251,141,250,96,250,91,253, +189,1,248,4,232,5,143,5,216,5,15,6,213,3,19,0,64,254,233,254,96,255,238,254,224,255,224,1,135,1,203,255, +67,0,249,255,67,251,227,247,151,250,136,253,146,253,131,0,16,7,130,10,195,8,188,4,218,255,20,251,218,247,183,246, +132,248,84,253,176,2,154,6,120,8,245,6,146,2,184,254,169,252,255,250,13,250,15,251,96,253,111,255,12,0,102,255, +226,255,245,2,91,6,109,7,67,6,206,3,80,0,100,252,133,249,59,249,26,252,245,0,63,5,29,7,221,6,61,5, +4,2,227,254,83,255,102,2,47,4,142,5,27,8,126,7,253,1,1,253,206,250,209,249,205,251,161,0,27,4,169,6, +142,9,50,8,39,2,179,253,208,251,152,250,186,252,14,2,31,6,34,8,4,8,95,4,219,255,151,252,95,249,57,249, +238,253,87,1,103,2,29,6,114,8,151,4,246,255,164,252,169,248,112,249,37,255,17,1,177,1,108,6,143,6,11,0, +245,253,86,254,151,249,198,247,103,253,206,1,125,4,152,8,28,8,79,3,119,0,81,252,60,247,184,249,3,255,250,254, +86,1,24,8,241,7,189,2,124,1,100,255,42,250,8,250,37,254,229,0,210,4,138,8,126,6,1,3,30,2,242,254, +116,250,212,250,227,253,255,255,227,2,109,5,248,4,2,3,65,0,248,252,93,252,62,254,123,255,131,1,173,4,104,4, +25,1,47,255,173,253,64,251,224,250,136,252,40,254,35,1,114,4,217,3,2,1,42,0,119,255,0,253,254,251,101,253, +92,254,240,254,179,0,18,2,71,1,45,255,231,252,51,251,231,250,123,251,0,252,106,253,53,0,113,2,41,3,123,3, +61,3,117,1,172,254,154,251,37,249,101,249,35,252,46,254,42,255,38,1,9,3,230,2,180,1,254,255,135,253,31,252, +134,252,224,252,247,252,208,253,32,255,55,1,157,3,100,3,73,1,131,1,86,2,99,255,4,252,233,252,221,254,92,254, +3,254,157,255,152,0,141,255,134,254,28,255,20,0,111,0,212,1,115,4,248,4,153,2,124,0,80,255,132,253,188,251, +239,250,55,251,91,253,215,255,175,255,212,254,57,0,246,0,43,255,119,254,184,255,13,0,114,255,222,254,245,253,21,254, +90,255,172,254,154,252,208,252,25,254,206,253,3,254,6,0,4,1,181,255,130,253,95,251,73,250,231,250,43,252,233,253, +27,1,206,3,84,3,181,1,115,1,212,255,115,251,122,249,68,252,189,254,50,255,192,1,31,5,0,4,212,255,177,252, +35,250,199,248,70,251,169,255,201,2,41,5,10,6,172,3,54,0,195,253,1,252,68,252,216,254,240,0,147,2,199,4, +88,4,92,0,190,252,125,250,62,249,17,251,142,254,159,0,234,2,48,5,217,3,110,1,50,1,97,255,236,251,245,251, +110,253,202,252,118,253,116,255,201,254,62,254,126,0,187,1,190,1,173,2,106,1,220,253,171,252,159,252,133,251,169,252, +41,255,231,254,145,254,63,0,50,0,27,255,65,0,16,1,40,0,107,0,41,1,1,1,136,1,21,1,37,254,250,252, +107,254,108,254,152,254,69,1,40,2,186,0,229,1,212,3,84,2,196,0,163,1,28,1,139,254,185,253,41,255,221,0, +35,2,178,2,210,2,163,3,129,4,115,3,232,0,74,255,30,255,3,255,253,254,58,0,21,2,62,3,17,4,83,4, +171,2,49,0,196,254,121,253,95,252,236,253,87,1,115,3,110,4,99,5,222,4,67,2,47,255,56,253,68,253,111,254, +245,254,53,0,210,3,49,6,48,4,15,1,229,255,3,255,52,253,29,252,102,253,3,1,174,4,252,5,137,5,227,4, +205,3,19,2,18,0,58,254,88,254,162,0,181,1,77,1,199,2,106,4,169,2,172,0,69,1,66,1,47,0,38,1, +198,2,136,2,7,2,51,2,222,1,99,1,51,1,237,0,81,1,101,2,182,2,57,2,109,1,12,0,31,255,141,255, +37,0,173,0,251,1,234,2,114,2,53,1,73,255,70,253,217,252,170,253,17,255,250,1,164,4,31,4,46,2,209,0, +34,254,238,250,216,250,25,253,49,255,159,1,38,4,28,5,126,4,80,2,191,254,52,252,197,251,44,252,201,253,163,0, +64,2,135,2,31,3,136,2,248,255,77,254,112,254,197,254,89,255,65,0,155,0,242,0,89,1,171,0,197,255,205,255, +154,255,15,255,87,255,146,255,33,255,95,255,37,0,30,0,192,255,229,255,72,0,73,0,102,255,97,254,113,254,121,254, +181,253,87,254,60,0,145,0,83,0,77,1,7,1,16,255,167,254,131,255,180,255,49,0,165,0,217,255,115,255,92,255, +182,253,16,253,3,255,199,255,83,255,30,1,162,2,3,1,126,255,254,254,126,253,38,253,246,254,218,255,119,0,147,2, +11,3,10,1,211,255,218,254,232,252,184,252,62,254,180,254,60,255,214,0,19,1,211,255,231,254,44,254,15,254,23,255, +163,255,220,255,53,1,166,1,50,0,169,255,183,255,91,254,17,254,181,255,169,255,107,254,15,255,170,255,149,254,73,254, +238,254,250,254,184,255,23,1,222,0,9,0,68,0,29,0,68,255,43,255,35,255,147,254,215,254,176,255,227,255,41,0, +218,0,211,0,73,0,10,0,134,255,133,254,236,253,23,254,173,254,93,255,5,0,220,0,164,1,108,1,68,0,79,255, +237,254,193,254,188,254,234,254,123,255,121,0,237,0,46,0,19,255,57,254,147,253,178,253,183,254,181,255,143,0,107,1, +79,1,67,0,149,255,34,255,112,254,138,254,123,255,10,0,117,0,10,1,169,0,131,255,208,254,12,254,32,253,169,253, +71,255,17,0,103,0,57,1,155,1,44,1,152,0,165,255,116,254,44,254,175,254,38,255,235,255,8,1,137,1,101,1, +32,1,101,0,47,255,92,254,78,254,199,254,135,255,94,0,105,1,127,2,147,2,65,1,183,255,160,254,166,253,60,253, +16,254,164,255,75,1,185,2,83,3,201,2,143,1,15,0,198,254,39,254,201,253,168,253,210,254,184,0,78,1,187,0, +111,0,24,0,124,255,163,255,245,255,75,255,16,255,62,0,205,0,241,255,179,255,142,0,212,0,43,0,155,255,113,255, +63,255,182,254,38,254,128,254,6,0,148,1,49,2,30,2,190,1,222,0,95,255,229,253,108,253,33,254,93,255,224,0, +150,2,130,3,216,2,101,1,27,0,242,254,19,254,38,254,48,255,173,0,43,2,16,3,207,2,152,1,36,0,253,254, +87,254,93,254,33,255,61,0,14,1,135,1,215,1,136,1,118,0,136,255,48,255,3,255,58,255,24,0,155,0,67,0, +24,0,107,0,83,0,213,255,174,255,189,255,165,255,151,255,147,255,111,255,113,255,209,255,83,0,196,0,6,1,206,0, +43,0,158,255,73,255,248,254,1,255,175,255,83,0,105,0,143,0,210,0,40,0,188,254,7,254,58,254,152,254,99,255, +202,0,217,1,21,2,220,1,42,1,255,255,220,254,24,254,3,254,224,254,4,0,172,0,27,1,92,1,231,0,25,0, +151,255,22,255,161,254,224,254,155,255,73,0,237,0,41,1,155,0,241,255,163,255,69,255,5,255,122,255,66,0,193,0, +239,0,216,0,156,0,88,0,212,255,75,255,98,255,198,255,205,255,206,255,15,0,40,0,40,0,54,0,250,255,174,255, +192,255,186,255,139,255,232,255,122,0,136,0,155,0,242,0,197,0,52,0,252,255,201,255,73,255,19,255,83,255,154,255, +217,255,38,0,101,0,123,0,87,0,19,0,247,255,248,255,231,255,228,255,231,255,215,255,246,255,36,0,247,255,223,255, +74,0,139,0,91,0,81,0,68,0,222,255,178,255,220,255,213,255,226,255,56,0,64,0,40,0,109,0,108,0,223,255, +157,255,177,255,162,255,209,255,63,0,72,0,44,0,90,0,102,0,72,0,106,0,119,0,61,0,34,0,3,0,177,255, +172,255,224,255,205,255,217,255,64,0,95,0,51,0,35,0,235,255,156,255,187,255,225,255,176,255,203,255,66,0,90,0, +52,0,44,0,242,255,165,255,192,255,15,0,91,0,190,0,217,0,124,0,47,0,246,255,108,255,10,255,75,255,191,255, +40,0,160,0,201,0,130,0,61,0,250,255,142,255,95,255,147,255,191,255,215,255,21,0,86,0,117,0,118,0,84,0, +43,0,33,0,18,0,254,255,21,0,46,0,23,0,18,0,39,0,22,0,19,0,74,0,99,0,92,0,140,0,152,0, +39,0,210,255,238,255,233,255,189,255,236,255,65,0,89,0,111,0,139,0,84,0,13,0,20,0,41,0,46,0,102,0, +158,0,140,0,124,0,129,0,70,0,0,0,9,0,28,0,10,0,23,0,54,0,52,0,63,0,82,0,49,0,5,0, +247,255,215,255,183,255,197,255,214,255,229,255,32,0,80,0,81,0,100,0,97,0,15,0,212,255,216,255,192,255,182,255, +250,255,36,0,33,0,80,0,116,0,74,0,46,0,30,0,223,255,210,255,6,0,0,0,232,255,8,0,247,255,203,255, +11,0,78,0,39,0,28,0,68,0,42,0,9,0,21,0,240,255,209,255,33,0,120,0,142,0,164,0,144,0,53,0, +245,255,208,255,153,255,175,255,6,0,25,0,30,0,94,0,99,0,22,0,234,255,210,255,168,255,172,255,215,255,251,255, +49,0,88,0,71,0,70,0,88,0,60,0,29,0,22,0,234,255,198,255,196,255,135,255,79,255,152,255,228,255,221,255, +4,0,59,0,18,0,1,0,41,0,236,255,158,255,210,255,238,255,169,255,174,255,230,255,225,255,239,255,27,0,7,0, +2,0,59,0,43,0,222,255,203,255,190,255,152,255,180,255,235,255,255,255,49,0,99,0,59,0,2,0,245,255,206,255, +170,255,209,255,251,255,13,0,66,0,100,0,53,0,9,0,3,0,237,255,229,255,13,0,32,0,13,0,23,0,43,0, +2,0,192,255,175,255,189,255,189,255,204,255,20,0,92,0,101,0,88,0,83,0,38,0,230,255,229,255,18,0,29,0, +5,0,223,255,166,255,122,255,119,255,133,255,160,255,218,255,10,0,20,0,28,0,41,0,21,0,225,255,177,255,152,255, +175,255,245,255,47,0,38,0,249,255,228,255,226,255,221,255,232,255,11,0,39,0,48,0,51,0,30,0,223,255,144,255, +86,255,80,255,146,255,243,255,56,0,106,0,148,0,128,0,49,0,248,255,222,255,192,255,183,255,218,255,7,0,52,0, +92,0,82,0,30,0,255,255,249,255,238,255,233,255,233,255,215,255,211,255,251,255,14,0,230,255,216,255,4,0,251,255, +165,255,127,255,153,255,143,255,130,255,182,255,214,255,199,255,243,255,49,0,28,0,16,0,53,0,24,0,225,255,241,255, +229,255,161,255,184,255,244,255,212,255,197,255,247,255,216,255,148,255,179,255,215,255,201,255,251,255,78,0,84,0,58,0, +28,0,231,255,218,255,239,255,222,255,232,255,56,0,87,0,60,0,49,0,7,0,206,255,232,255,250,255,189,255,191,255, +12,0,7,0,232,255,11,0,0,0,196,255,215,255,253,255,227,255,232,255,34,0,52,0,38,0,20,0,231,255,201,255, +220,255,227,255,215,255,231,255,2,0,14,0,7,0,223,255,191,255,229,255,17,0,8,0,252,255,255,255,236,255,221,255, +214,255,184,255,178,255,228,255,4,0,7,0,33,0,53,0,31,0,7,0,253,255,249,255,21,0,63,0,64,0,32,0, +246,255,196,255,181,255,219,255,250,255,244,255,238,255,246,255,2,0,11,0,251,255,232,255,0,0,29,0,24,0,34,0, +62,0,36,0,233,255,213,255,212,255,201,255,207,255,225,255,228,255,246,255,34,0,62,0,54,0,23,0,225,255,177,255, +185,255,220,255,224,255,218,255,235,255,246,255,251,255,33,0,61,0,24,0,233,255,234,255,237,255,225,255,240,255,254,255, +222,255,192,255,199,255,219,255,244,255,16,0,27,0,46,0,87,0,92,0,49,0,5,0,217,255,171,255,163,255,187,255, +214,255,15,0,76,0,84,0,78,0,85,0,36,0,203,255,165,255,163,255,165,255,212,255,25,0,48,0,53,0,67,0, +56,0,32,0,11,0,230,255,206,255,229,255,250,255,243,255,236,255,229,255,230,255,16,0,51,0,34,0,21,0,30,0, +8,0,222,255,194,255,171,255,171,255,193,255,191,255,205,255,31,0,106,0,116,0,107,0,81,0,31,0,248,255,187,255, +66,255,254,254,50,255,127,255,189,255,28,0,113,0,130,0,95,0,25,0,208,255,190,255,206,255,213,255,238,255,31,0, +47,0,28,0,255,255,218,255,196,255,194,255,193,255,226,255,34,0,33,0,225,255,198,255,206,255,212,255,255,255,63,0, +84,0,104,0,134,0,94,0,19,0,6,0,10,0,227,255,211,255,254,255,42,0,63,0,69,0,43,0,245,255,200,255, +191,255,198,255,207,255,249,255,61,0,70,0,11,0,239,255,236,255,196,255,200,255,45,0,122,0,118,0,111,0,94,0, +26,0,217,255,176,255,142,255,169,255,247,255,19,0,6,0,8,0,233,255,160,255,122,255,128,255,159,255,232,255,46,0, +68,0,78,0,67,0,0,0,202,255,206,255,205,255,207,255,13,0,77,0,91,0,99,0,95,0,43,0,248,255,226,255, +196,255,183,255,214,255,241,255,252,255,31,0,65,0,63,0,61,0,71,0,57,0,30,0,38,0,72,0,83,0,67,0, +61,0,88,0,125,0,147,0,148,0,112,0,38,0,231,255,212,255,205,255,198,255,228,255,26,0,49,0,47,0,45,0, +23,0,248,255,4,0,27,0,17,0,31,0,79,0,61,0,250,255,241,255,244,255,200,255,207,255,17,0,40,0,73,0, +164,0,155,0,35,0,234,255,208,255,128,255,125,255,211,255,227,255,245,255,103,0,135,0,46,0,18,0,9,0,186,255, +182,255,10,0,33,0,52,0,109,0,68,0,236,255,240,255,228,255,163,255,202,255,26,0,22,0,52,0,112,0,48,0, +233,255,20,0,9,0,193,255,242,255,66,0,42,0,39,0,81,0,39,0,231,255,236,255,228,255,216,255,20,0,66,0, +42,0,41,0,60,0,25,0,239,255,232,255,219,255,212,255,245,255,25,0,46,0,61,0,48,0,9,0,243,255,241,255, +249,255,24,0,66,0,77,0,55,0,22,0,228,255,158,255,105,255,108,255,156,255,206,255,255,255,58,0,102,0,97,0, +48,0,243,255,208,255,210,255,217,255,221,255,249,255,20,0,5,0,232,255,224,255,221,255,227,255,254,255,27,0,39,0, +35,0,2,0,221,255,210,255,203,255,207,255,19,0,108,0,137,0,130,0,101,0,20,0,202,255,188,255,176,255,166,255, +224,255,30,0,23,0,21,0,52,0,46,0,16,0,0,0,222,255,195,255,235,255,34,0,52,0,59,0,47,0,16,0, +21,0,45,0,29,0,5,0,5,0,234,255,191,255,189,255,205,255,197,255,194,255,213,255,238,255,15,0,55,0,76,0, +74,0,58,0,37,0,24,0,30,0,34,0,23,0,19,0,39,0,70,0,78,0,58,0,40,0,35,0,28,0,11,0, +249,255,241,255,236,255,219,255,211,255,244,255,26,0,24,0,32,0,76,0,90,0,52,0,13,0,236,255,203,255,198,255, +213,255,238,255,44,0,101,0,86,0,46,0,21,0,218,255,138,255,98,255,80,255,94,255,176,255,246,255,251,255,14,0, +48,0,34,0,27,0,44,0,1,0,195,255,195,255,184,255,148,255,190,255,9,0,26,0,47,0,80,0,54,0,17,0, +11,0,221,255,162,255,178,255,204,255,182,255,189,255,238,255,11,0,39,0,82,0,103,0,99,0,66,0,252,255,197,255, +179,255,171,255,204,255,34,0,85,0,91,0,113,0,104,0,20,0,208,255,186,255,158,255,155,255,204,255,244,255,9,0, +40,0,41,0,6,0,252,255,2,0,237,255,223,255,242,255,255,255,4,0,19,0,17,0,244,255,220,255,206,255,198,255, +208,255,219,255,199,255,166,255,165,255,182,255,184,255,180,255,192,255,213,255,246,255,46,0,80,0,59,0,24,0,252,255, +205,255,166,255,184,255,228,255,255,255,21,0,39,0,44,0,41,0,14,0,212,255,168,255,155,255,153,255,188,255,255,255, +26,0,23,0,45,0,48,0,13,0,254,255,254,255,252,255,35,0,83,0,59,0,17,0,11,0,241,255,213,255,248,255, +30,0,36,0,69,0,77,0,239,255,144,255,126,255,123,255,124,255,165,255,211,255,251,255,50,0,64,0,16,0,238,255, +241,255,237,255,234,255,239,255,237,255,244,255,255,255,237,255,225,255,9,0,50,0,50,0,40,0,18,0,220,255,167,255, +146,255,132,255,127,255,166,255,243,255,47,0,65,0,53,0,30,0,14,0,28,0,52,0,43,0,19,0,19,0,12,0, +239,255,229,255,228,255,215,255,236,255,25,0,12,0,227,255,219,255,188,255,138,255,159,255,211,255,225,255,17,0,87,0, +66,0,14,0,13,0,225,255,129,255,115,255,159,255,178,255,240,255,81,0,89,0,47,0,56,0,57,0,5,0,219,255, +192,255,165,255,189,255,243,255,250,255,242,255,17,0,46,0,50,0,63,0,71,0,57,0,51,0,43,0,252,255,204,255, +213,255,250,255,16,0,50,0,108,0,143,0,136,0,109,0,55,0,242,255,207,255,199,255,184,255,198,255,253,255,16,0, +253,255,2,0,3,0,227,255,225,255,254,255,244,255,224,255,242,255,0,0,1,0,28,0,42,0,5,0,230,255,245,255, +4,0,251,255,240,255,239,255,241,255,231,255,214,255,215,255,228,255,248,255,37,0,65,0,34,0,255,255,247,255,199,255, +138,255,153,255,204,255,238,255,44,0,112,0,120,0,110,0,99,0,33,0,224,255,228,255,227,255,200,255,228,255,17,0, +14,0,23,0,54,0,46,0,30,0,39,0,23,0,2,0,12,0,247,255,190,255,190,255,238,255,1,0,12,0,45,0, +75,0,88,0,78,0,30,0,236,255,206,255,177,255,175,255,227,255,25,0,46,0,65,0,66,0,23,0,230,255,202,255, +177,255,165,255,193,255,247,255,30,0,24,0,233,255,188,255,183,255,215,255,1,0,33,0,57,0,80,0,79,0,34,0, +251,255,245,255,232,255,217,255,246,255,36,0,55,0,68,0,63,0,3,0,194,255,175,255,171,255,171,255,207,255,250,255, +10,0,28,0,43,0,13,0,234,255,247,255,16,0,24,0,50,0,102,0,121,0,77,0,6,0,205,255,168,255,155,255, +179,255,230,255,23,0,50,0,53,0,43,0,31,0,254,255,193,255,157,255,185,255,234,255,3,0,11,0,12,0,13,0, +22,0,29,0,36,0,71,0,112,0,106,0,74,0,51,0,12,0,212,255,173,255,160,255,180,255,240,255,43,0,70,0, +80,0,63,0,20,0,245,255,219,255,176,255,175,255,234,255,19,0,39,0,79,0,83,0,33,0,4,0,254,255,225,255, +215,255,247,255,11,0,23,0,47,0,39,0,6,0,3,0,1,0,221,255,197,255,207,255,223,255,240,255,1,0,8,0, +21,0,35,0,21,0,8,0,28,0,51,0,48,0,38,0,38,0,48,0,50,0,27,0,7,0,20,0,34,0,20,0, +7,0,1,0,241,255,224,255,208,255,198,255,222,255,1,0,2,0,5,0,37,0,45,0,22,0,10,0,246,255,216,255, +225,255,253,255,3,0,30,0,78,0,74,0,37,0,17,0,235,255,181,255,182,255, +}; \ No newline at end of file diff --git a/src/client/sound/data/zpighurt2.pcm b/src/client/sound/data/zpighurt2.pcm new file mode 100755 index 0000000..151eb05 --- /dev/null +++ b/src/client/sound/data/zpighurt2.pcm @@ -0,0 +1,1596 @@ +unsigned char PCM_zpighurt2[51002] = { +1,0,0,0,2,0,0,0,68,172,0,0,149,99,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0, +0,0,255,255,0,0,0,0,254,255,251,255,251,255,254,255,2,0,6,0,4,0,1,0,2,0,4,0,1,0,251,255, +251,255,253,255,253,255,1,0,5,0,4,0,0,0,254,255,3,0,9,0,7,0,0,0,252,255,247,255,244,255,254,255, +11,0,11,0,11,0,23,0,24,0,4,0,243,255,239,255,244,255,6,0,29,0,28,0,6,0,239,255,221,255,214,255, +231,255,6,0,24,0,34,0,47,0,48,0,15,0,232,255,223,255,236,255,238,255,227,255,230,255,254,255,19,0,15,0, +3,0,12,0,23,0,2,0,238,255,253,255,3,0,231,255,226,255,9,0,32,0,15,0,251,255,237,255,217,255,221,255, +18,0,56,0,10,0,197,255,219,255,57,0,95,0,39,0,223,255,203,255,237,255,21,0,31,0,18,0,250,255,223,255, +234,255,26,0,13,0,190,255,183,255,23,0,94,0,82,0,25,0,220,255,219,255,23,0,44,0,22,0,36,0,34,0, +204,255,155,255,220,255,23,0,12,0,16,0,50,0,33,0,225,255,207,255,241,255,246,255,236,255,46,0,117,0,59,0, +214,255,210,255,227,255,201,255,229,255,50,0,50,0,226,255,145,255,125,255,224,255,107,0,98,0,238,255,221,255,37,0, +52,0,8,0,227,255,204,255,221,255,39,0,100,0,63,0,180,255,66,255,134,255,67,0,118,0,230,255,129,255,214,255, +80,0,93,0,46,0,13,0,218,255,173,255,234,255,83,0,70,0,249,255,9,0,47,0,241,255,181,255,216,255,245,255, +202,255,188,255,6,0,92,0,103,0,62,0,72,0,136,0,106,0,188,255,34,255,26,255,82,255,129,255,232,255,139,0, +231,0,200,0,107,0,222,255,72,255,67,255,218,255,86,0,123,0,108,0,226,255,34,255,27,255,142,255,142,255,133,255, +22,0,137,0,93,0,32,0,245,255,156,255,118,255,199,255,25,0,6,0,173,255,133,255,217,255,73,0,114,0,134,0, +123,0,236,255,91,255,122,255,166,255,50,255,219,254,109,255,144,0,103,1,80,1,113,0,177,255,138,255,159,255,172,255, +180,255,192,255,23,0,191,0,246,0,103,0,195,255,136,255,152,255,238,255,92,0,123,0,95,0,85,0,34,0,147,255, +20,255,29,255,189,255,177,0,96,1,58,1,131,0,2,0,236,255,223,255,196,255,195,255,194,255,187,255,243,255,74,0, +80,0,31,0,12,0,12,0,53,0,151,0,138,0,195,255,58,255,136,255,246,255,14,0,37,0,71,0,57,0,20,0, +244,255,223,255,248,255,49,0,51,0,222,255,124,255,102,255,170,255,246,255,13,0,33,0,99,0,148,0,92,0,202,255, +82,255,78,255,159,255,243,255,26,0,3,0,216,255,247,255,81,0,87,0,219,255,95,255,93,255,208,255,52,0,22,0, +206,255,226,255,10,0,244,255,229,255,205,255,113,255,111,255,26,0,158,0,130,0,64,0,1,0,174,255,130,255,144,255, +172,255,204,255,210,255,214,255,49,0,135,0,77,0,14,0,64,0,42,0,155,255,92,255,137,255,213,255,105,0,245,0, +194,0,21,0,157,255,119,255,182,255,56,0,80,0,254,255,3,0,64,0,7,0,163,255,181,255,12,0,82,0,141,0, +168,0,126,0,46,0,209,255,110,255,73,255,148,255,255,255,36,0,9,0,230,255,241,255,58,0,124,0,103,0,26,0, +226,255,199,255,207,255,241,255,233,255,210,255,16,0,73,0,5,0,232,255,104,0,173,0,70,0,236,255,225,255,194,255, +168,255,180,255,173,255,169,255,223,255,44,0,116,0,162,0,114,0,25,0,26,0,62,0,17,0,195,255,139,255,72,255, +45,255,135,255,21,0,78,0,13,0,178,255,180,255,21,0,95,0,67,0,213,255,110,255,109,255,189,255,207,255,118,255, +45,255,113,255,51,0,210,0,176,0,252,255,113,255,109,255,209,255,43,0,221,255,25,255,232,254,129,255,36,0,151,0, +213,0,99,0,149,255,134,255,32,0,86,0,4,0,198,255,235,255,68,0,94,0,5,0,142,255,57,255,29,255,149,255, +122,0,225,0,158,0,109,0,106,0,53,0,226,255,137,255,64,255,130,255,47,0,100,0,29,0,36,0,121,0,165,0, +152,0,69,0,201,255,206,255,104,0,140,0,230,255,101,255,118,255,150,255,167,255,246,255,102,0,186,0,234,0,212,0, +127,0,56,0,244,255,168,255,225,255,148,0,164,0,207,255,27,255,254,254,65,255,247,255,204,0,246,0,143,0,72,0, +45,0,7,0,212,255,149,255,153,255,16,0,73,0,228,255,179,255,25,0,122,0,159,0,174,0,80,0,155,255,91,255, +192,255,50,0,75,0,35,0,235,255,166,255,84,255,76,255,206,255,98,0,159,0,181,0,167,0,79,0,17,0,35,0, +21,0,231,255,239,255,209,255,73,255,242,254,44,255,156,255,14,0,130,0,181,0,132,0,53,0,10,0,252,255,245,255, +1,0,40,0,49,0,227,255,87,255,228,254,251,254,203,255,180,0,240,0,170,0,95,0,242,255,142,255,196,255,71,0, +67,0,187,255,52,255,2,255,90,255,9,0,142,0,227,0,24,1,192,0,248,255,161,255,197,255,182,255,156,255,229,255, +15,0,153,255,27,255,87,255,50,0,0,1,37,1,148,0,234,255,169,255,155,255,129,255,161,255,19,0,99,0,104,0, +70,0,238,255,153,255,211,255,82,0,82,0,10,0,6,0,249,255,182,255,192,255,56,0,179,0,228,0,147,0,221,255, +128,255,198,255,248,255,199,255,206,255,81,0,161,0,65,0,208,255,8,0,105,0,52,0,241,255,43,0,43,0,194,255, +204,255,36,0,247,255,196,255,58,0,160,0,78,0,185,255,113,255,158,255,9,0,52,0,12,0,239,255,215,255,210,255, +68,0,197,0,130,0,255,255,31,0,92,0,249,255,108,255,83,255,151,255,252,255,88,0,96,0,3,0,168,255,208,255, +118,0,248,0,219,0,88,0,241,255,218,255,227,255,200,255,144,255,119,255,131,255,187,255,67,0,183,0,124,0,8,0, +49,0,154,0,115,0,242,255,184,255,210,255,3,0,42,0,42,0,23,0,21,0,0,0,177,255,113,255,139,255,229,255, +88,0,197,0,190,0,18,0,130,255,181,255,29,0,25,0,4,0,43,0,77,0,97,0,83,0,191,255,32,255,110,255, +58,0,81,0,208,255,150,255,186,255,228,255,4,0,45,0,85,0,87,0,49,0,37,0,67,0,51,0,227,255,148,255, +103,255,139,255,19,0,102,0,18,0,182,255,238,255,75,0,38,0,154,255,76,255,161,255,41,0,85,0,88,0,122,0, +128,0,90,0,55,0,255,255,192,255,174,255,120,255,23,255,79,255,23,0,108,0,62,0,68,0,85,0,17,0,231,255, +39,0,93,0,45,0,239,255,16,0,85,0,35,0,146,255,86,255,150,255,213,255,232,255,2,0,55,0,111,0,121,0, +78,0,53,0,34,0,192,255,108,255,179,255,40,0,49,0,20,0,17,0,226,255,163,255,203,255,89,0,220,0,227,0, +67,0,120,255,52,255,106,255,160,255,218,255,68,0,143,0,136,0,101,0,35,0,179,255,152,255,29,0,111,0,230,255, +64,255,78,255,200,255,37,0,90,0,111,0,81,0,6,0,202,255,236,255,56,0,5,0,119,255,102,255,197,255,240,255, +12,0,65,0,59,0,69,0,177,0,159,0,163,255,231,254,25,255,140,255,211,255,21,0,86,0,148,0,201,0,190,0, +81,0,165,255,44,255,125,255,62,0,61,0,118,255,57,255,214,255,121,0,192,0,165,0,36,0,196,255,215,255,217,255, +160,255,188,255,30,0,56,0,31,0,51,0,84,0,52,0,233,255,181,255,157,255,116,255,70,255,90,255,189,255,59,0, +147,0,133,0,28,0,218,255,13,0,93,0,99,0,32,0,213,255,176,255,154,255,114,255,102,255,151,255,214,255,17,0, +79,0,98,0,81,0,109,0,130,0,52,0,226,255,237,255,243,255,188,255,170,255,225,255,5,0,206,255,99,255,88,255, +237,255,149,0,215,0,241,0,226,0,56,0,58,255,204,254,32,255,176,255,27,0,51,0,250,255,211,255,8,0,58,0, +43,0,85,0,176,0,68,0,251,254,57,254,207,254,255,255,197,0,190,0,48,0,206,255,230,255,15,0,12,0,7,0, +3,0,2,0,253,255,171,255,79,255,139,255,235,255,202,255,243,255,192,0,223,0,254,255,110,255,130,255,147,255,176,255, +235,255,253,255,48,0,171,0,214,0,154,0,101,0,8,0,97,255,7,255,60,255,126,255,115,255,115,255,36,0,73,1, +117,1,48,0,8,255,21,255,162,255,41,0,215,0,18,1,34,0,197,254,88,254,42,255,101,0,235,0,114,0,216,255, +230,255,54,0,17,0,151,255,105,255,196,255,72,0,84,0,180,255,19,255,66,255,14,0,144,0,129,0,67,0,26,0, +25,0,46,0,255,255,140,255,101,255,155,255,190,255,226,255,29,0,252,255,189,255,47,0,213,0,125,0,114,255,246,254, +105,255,37,0,94,0,247,255,198,255,80,0,208,0,135,0,221,255,109,255,103,255,229,255,154,0,171,0,234,255,70,255, +116,255,30,0,180,0,253,0,199,0,40,0,200,255,226,255,216,255,122,255,110,255,223,255,93,0,166,0,98,0,128,255, +26,255,8,0,42,1,29,1,43,0,77,255,253,254,66,255,181,255,246,255,52,0,131,0,124,0,250,255,116,255,122,255, +42,0,193,0,136,0,12,0,238,255,168,255,31,255,65,255,248,255,68,0,57,0,86,0,71,0,253,255,249,255,45,0, +51,0,3,0,192,255,171,255,228,255,4,0,234,255,21,0,106,0,89,0,33,0,11,0,169,255,68,255,181,255,112,0, +95,0,248,255,235,255,172,255,43,255,106,255,93,0,187,0,60,0,184,255,148,255,175,255,1,0,89,0,135,0,167,0, +144,0,239,255,51,255,255,254,48,255,148,255,62,0,182,0,134,0,41,0,17,0,247,255,217,255,1,0,63,0,79,0, +62,0,2,0,184,255,203,255,50,0,111,0,107,0,94,0,67,0,11,0,233,255,249,255,221,255,88,255,32,255,234,255, +213,0,177,0,42,0,96,0,191,0,127,0,42,0,44,0,17,0,203,255,203,255,12,0,31,0,238,255,255,255,170,0, +64,1,235,0,31,0,202,255,212,255,179,255,142,255,206,255,103,0,214,0,182,0,94,0,96,0,114,0,0,0,122,255, +177,255,97,0,122,0,198,255,104,255,29,0,211,0,106,0,159,255,138,255,3,0,174,0,69,1,242,0,210,255,80,255, +132,255,60,255,219,254,134,255,139,0,201,0,181,0,207,0,137,0,198,255,84,255,155,255,25,0,43,0,183,255,46,255, +17,255,140,255,90,0,200,0,90,0,148,255,117,255,249,255,51,0,0,0,32,0,136,0,107,0,234,255,201,255,190,255, +61,255,234,254,82,255,154,255,48,255,15,255,12,0,80,1,140,1,180,0,197,255,97,255,99,255,133,255,131,255,52,255, +19,255,177,255,133,0,147,0,214,255,239,254,129,254,18,255,79,0,9,1,209,0,96,0,40,0,224,255,50,255,67,254, +238,253,225,254,129,0,194,1,48,2,128,1,227,255,209,254,22,255,129,255,95,255,143,255,66,0,173,0,197,0,185,0, +8,0,237,254,198,254,245,255,21,1,251,0,57,0,214,255,199,255,175,255,209,255,46,0,57,0,23,0,99,0,183,0, +87,0,184,255,192,255,76,0,105,0,199,255,89,255,243,255,175,0,97,0,196,255,11,0,140,0,38,0,125,255,184,255, +135,0,201,0,74,0,204,255,195,255,234,255,36,0,186,0,83,1,4,1,205,255,182,254,95,254,195,254,255,255,181,1, +93,2,29,1,112,255,6,255,97,255,126,255,241,255,63,1,30,2,82,1,168,255,195,254,5,255,150,255,246,255,114,0, +218,0,102,0,114,255,99,255,88,0,7,1,235,0,135,0,14,0,99,255,227,254,39,255,34,0,10,1,78,1,27,1, +167,0,240,255,78,255,23,255,250,254,235,254,112,255,107,0,20,1,34,1,201,0,85,0,45,0,79,0,51,0,173,255, +24,255,195,254,5,255,244,255,212,0,235,0,108,0,230,255,159,255,169,255,235,255,70,0,116,0,246,255,4,255,188,254, +83,255,193,255,242,255,181,0,131,1,30,1,198,255,203,254,204,254,105,255,25,0,180,0,18,1,164,0,136,255,247,254, +99,255,200,255,180,255,190,255,231,255,160,255,52,255,140,255,202,0,219,1,165,1,156,0,11,0,206,255,222,254,205,253, +7,254,73,255,77,0,216,0,43,1,250,0,81,0,238,255,247,255,240,255,255,255,141,0,244,0,69,0,224,254,3,254, +81,254,123,255,195,0,178,1,52,2,1,2,216,0,143,255,63,255,127,255,66,255,200,254,12,255,52,0,59,1,1,1, +238,255,195,255,183,0,246,0,240,255,23,255,26,255,158,255,142,0,87,1,198,0,33,255,51,254,235,254,118,0,84,1, +202,0,136,255,217,254,67,255,64,0,191,0,20,0,9,255,240,254,151,255,215,255,176,255,27,0,57,1,7,2,178,1, +143,0,99,255,105,254,244,253,159,254,202,255,19,0,199,255,16,0,127,0,81,0,43,0,132,0,206,0,213,0,173,0, +239,255,161,254,205,253,86,254,244,255,116,1,236,1,119,1,133,0,126,255,41,255,152,255,121,255,147,254,189,254,105,0, +130,1,235,0,204,255,74,255,133,255,85,0,88,1,211,1,67,1,2,0,22,255,231,254,200,254,175,254,136,255,9,1, +191,1,128,1,0,1,226,255,60,254,243,253,244,255,47,2,78,2,156,0,53,255,91,255,53,0,76,0,229,255,83,0, +65,1,70,1,117,0,152,255,139,254,214,253,245,254,52,1,245,1,235,0,44,0,134,0,224,0,98,0,125,255,89,255, +55,0,227,0,183,0,94,0,207,255,205,254,223,254,184,0,226,1,178,0,31,255,40,255,65,0,248,0,101,0,199,254, +185,253,82,254,191,255,190,0,180,0,168,255,207,254,117,255,188,0,230,0,46,0,213,255,243,255,244,255,136,255,199,254, +99,254,233,254,202,255,75,0,103,0,234,255,193,254,26,254,240,254,42,0,121,0,102,0,177,0,153,0,123,255,136,254, +73,255,55,1,58,2,121,1,32,0,21,255,37,254,195,253,150,254,117,255,64,255,80,255,162,0,92,1,93,0,106,255, +154,255,189,255,100,255,141,255,56,0,84,0,180,255,77,255,151,255,212,255,105,255,5,255,62,255,123,255,133,255,233,255, +36,0,76,255,106,254,1,255,76,0,161,0,6,0,128,255,73,255,255,254,209,254,83,255,52,0,60,0,75,255,245,254, +242,255,185,0,15,0,12,255,11,255,153,255,230,255,52,0,164,0,152,0,249,255,120,255,147,255,80,0,53,1,105,1, +215,0,60,0,159,255,215,254,208,254,212,255,122,0,55,0,60,0,25,1,242,1,234,1,251,0,246,255,166,255,199,255, +230,255,38,0,85,0,49,0,70,0,139,0,58,0,244,255,177,0,113,1,50,1,178,0,94,0,210,255,111,255,178,255, +68,0,205,0,38,1,54,1,77,1,97,1,212,0,236,255,155,255,251,255,188,0,163,1,4,2,174,1,93,1,236,0, +113,255,143,253,27,253,196,254,86,1,187,2,252,1,76,0,65,255,39,255,231,255,103,1,185,2,222,2,225,1,86,0, +221,254,42,254,151,254,223,255,116,1,150,2,142,2,36,1,39,255,103,254,217,255,196,1,14,2,63,1,177,0,25,0, +61,255,14,255,204,255,190,0,127,1,186,1,213,0,36,255,80,254,110,255,55,1,150,1,209,0,177,0,32,1,192,0, +187,255,38,255,60,255,164,255,254,255,33,0,56,0,248,255,86,255,173,255,69,1,211,1,159,0,212,255,29,0,29,0, +175,255,135,255,172,255,20,0,95,0,41,0,55,0,213,0,242,0,211,0,87,1,44,1,153,255,144,254,210,254,20,255, +66,255,213,255,55,0,59,0,39,0,187,255,80,255,167,255,121,0,53,1,46,1,87,255,157,252,171,251,165,252,183,253, +33,255,128,1,15,3,133,2,6,1,164,255,136,254,44,254,229,254,252,255,63,0,48,255,167,253,247,252,111,253,146,254, +26,0,184,1,191,2,188,2,130,1,237,254,239,251,5,251,109,253,180,0,193,1,25,1,244,0,66,1,227,0,224,255, +102,254,238,252,33,253,38,255,158,0,119,0,1,0,216,255,151,255,166,255,154,0,4,2,175,2,211,1,89,0,78,255, +165,253,248,250,53,250,244,252,40,0,62,1,46,1,207,0,206,255,10,255,87,255,73,255,166,253,26,252,135,252,124,253, +181,252,163,251,15,253,239,255,89,1,252,0,155,255,247,252,13,250,45,249,159,250,107,252,90,253,28,254,94,255,230,255, +68,254,242,251,157,251,213,252,83,253,231,252,134,252,48,252,244,251,134,252,186,253,83,254,143,253,60,252,209,251,95,252, +177,252,100,252,251,251,151,251,146,251,188,252,191,254,32,0,51,0,141,255,192,254,184,253,137,252,45,252,78,253,212,254, +108,255,59,255,161,254,164,253,75,253,173,254,9,1,194,2,42,3,137,2,115,1,35,0,158,254,197,253,106,254,143,255, +252,255,148,0,84,2,248,3,202,3,64,2,12,1,159,0,81,0,157,0,145,2,51,5,122,6,4,6,169,4,74,3, +139,2,193,1,93,0,140,0,124,3,154,5,62,4,13,2,153,1,139,2,199,4,190,7,193,8,131,6,248,2,174,0, +182,0,226,1,52,2,88,2,108,4,121,7,200,8,194,7,60,5,204,2,254,2,171,5,207,6,118,4,186,1,236,1, +69,4,154,5,251,4,5,5,150,7,106,10,38,10,103,6,167,1,24,255,103,0,100,4,61,8,196,9,14,9,165,8, +7,10,148,10,217,7,49,4,242,2,48,4,69,6,9,7,224,4,159,1,167,0,9,2,161,3,96,4,146,4,35,6, +110,10,182,13,202,10,140,3,6,255,125,0,70,5,215,8,252,8,38,7,71,5,40,3,152,0,174,254,239,253,162,254, +72,1,92,4,5,5,179,2,98,255,141,253,244,254,251,2,164,6,141,7,226,5,45,3,23,0,49,252,197,248,93,249, +57,254,253,1,84,0,27,251,96,247,20,248,152,251,84,254,172,255,144,0,68,255,88,251,215,248,82,249,239,249,184,250, +162,253,108,0,31,0,61,253,18,249,152,245,127,245,121,247,4,248,34,248,49,250,28,252,76,251,134,248,102,245,95,243, +186,243,130,245,249,246,136,248,54,250,182,249,59,246,78,242,69,240,94,240,10,242,39,244,75,245,112,245,76,245,21,244, +142,241,139,240,142,242,176,244,141,245,155,247,10,250,96,248,28,243,207,239,24,241,228,244,41,248,102,249,138,249,160,249, +86,248,133,245,59,244,123,245,14,247,123,248,78,250,95,251,162,251,14,252,47,251,120,248,87,247,117,249,218,251,143,252, +189,252,24,253,191,252,28,251,86,249,166,249,77,252,200,254,190,255,90,0,219,0,3,0,23,254,82,253,74,255,157,2, +234,3,97,2,41,1,221,1,41,2,50,1,159,1,127,4,95,7,221,7,231,5,142,3,89,3,58,5,177,6,238,6, +170,7,90,9,17,10,168,8,104,6,36,5,58,5,29,6,205,7,87,10,109,12,58,12,222,9,224,7,36,8,38,9, +133,8,161,7,70,9,189,11,65,11,166,8,82,7,180,7,152,8,178,9,143,10,227,10,233,10,194,9,110,7,201,6, +80,8,81,8,149,6,56,7,15,10,19,11,71,10,104,10,40,11,230,10,183,9,253,7,7,6,60,5,136,6,224,8, +189,10,221,11,210,12,78,13,249,11,252,8,25,7,147,7,153,7,179,5,100,5,38,8,16,9,246,5,176,4,177,8, +231,12,252,12,136,10,87,7,232,3,255,1,86,2,181,3,238,5,155,8,163,9,121,8,9,6,56,2,82,254,63,253, +253,254,151,1,59,4,250,4,32,2,10,255,141,255,148,1,238,1,130,1,174,1,132,1,224,255,30,253,240,250,163,250, +132,251,169,252,31,254,184,254,201,252,180,249,195,248,235,250,179,253,179,253,211,250,182,248,205,248,114,248,209,246,31,246, +230,246,41,248,159,249,54,250,171,248,21,246,78,244,233,243,175,244,178,245,55,246,219,246,188,247,9,248,244,247,81,247, +88,245,23,244,168,245,26,247,201,245,96,244,224,244,208,245,212,246,87,248,46,249,3,249,144,248,194,247,73,247,220,247, +94,247,166,244,47,243,143,245,64,249,10,251,232,250,106,250,84,250,21,250,43,249,176,248,217,249,76,251,165,250,131,248, +221,247,28,249,199,249,149,249,146,250,49,252,26,252,145,250,71,249,255,248,27,250,104,251,182,250,142,249,26,251,142,253, +139,253,45,252,137,251,99,251,171,251,77,252,165,252,55,253,150,253,199,251,151,249,208,250,212,253,11,255,141,255,168,0, +43,0,71,253,51,250,240,248,112,250,208,253,255,255,154,255,182,254,222,254,61,255,90,255,2,0,94,1,45,2,93,1, +189,255,254,254,170,255,237,0,104,1,125,0,198,255,240,0,132,2,167,2,196,2,49,4,6,5,174,3,112,1,87,0, +72,1,107,3,250,4,189,5,212,6,185,7,229,6,173,4,201,2,141,2,14,4,187,5,20,6,251,5,236,6,104,8, +77,9,155,9,123,9,147,8,205,6,32,5,3,5,118,6,111,7,152,6,48,5,24,5,79,6,25,7,84,6,106,5, +70,6,184,7,21,7,26,5,52,5,9,8,54,10,12,9,41,6,152,4,64,4,76,3,122,2,171,3,216,5,207,6, +5,7,204,7,239,7,146,5,18,2,176,0,22,2,55,4,150,5,14,6,6,6,90,6,211,6,8,6,200,4,29,5, +59,5,118,2,60,255,50,255,11,2,17,6,71,9,198,8,247,4,199,1,105,0,41,0,188,2,244,7,24,11,163,9, +182,5,114,1,77,254,137,254,167,2,243,7,216,10,156,9,231,5,237,2,70,1,133,255,163,254,235,0,52,5,5,8, +67,8,207,6,169,3,102,255,10,253,113,254,88,1,7,3,170,3,54,4,58,4,203,2,237,255,128,253,23,254,125,1, +188,4,163,5,164,3,126,255,191,251,34,250,147,249,205,249,69,252,1,0,69,2,245,1,217,254,212,249,245,245,9,245, +135,246,113,250,79,255,245,0,97,254,133,250,195,246,184,243,101,243,220,245,35,249,182,251,148,251,78,248,130,245,13,245, +223,244,76,245,141,247,180,248,181,247,23,248,210,249,203,249,32,249,145,249,13,249,80,247,83,247,103,249,57,251,218,251, +113,251,220,249,102,247,99,245,129,245,29,248,101,251,33,253,160,252,181,250,22,249,12,249,153,250,129,253,225,0,191,1, +8,254,49,248,170,244,252,245,201,251,85,2,236,4,4,3,112,255,99,251,96,247,78,246,137,250,227,1,89,7,107,7, +76,2,112,251,112,247,188,248,138,253,96,2,170,5,101,6,62,3,102,254,42,252,116,252,67,253,54,0,155,5,219,8, +59,7,123,2,120,253,225,251,58,255,9,3,201,3,235,3,59,4,56,2,103,255,239,254,20,0,232,1,113,4,148,5, +100,4,171,2,172,0,193,254,116,255,34,2,105,3,211,3,68,5,26,6,203,4,241,1,72,254,2,252,171,253,75,1, +218,2,10,2,230,0,71,0,157,255,50,254,38,253,95,254,64,0,255,255,59,255,245,255,177,255,95,253,58,252,120,253, +57,255,151,0,212,0,111,255,140,254,100,255,172,255,240,254,167,255,108,1,216,1,33,1,20,0,109,254,199,253,189,255, +51,2,77,3,89,4,36,5,157,3,24,1,25,0,134,255,150,254,119,255,252,1,77,3,51,3,188,2,170,1,106,1, +50,3,160,3,4,1,82,0,172,3,152,5,15,3,225,255,37,255,17,0,100,1,160,2,183,3,139,4,7,4,219,1, +21,0,52,0,91,1,161,2,241,3,222,4,173,4,198,2,252,255,119,255,220,2,27,7,127,8,194,6,173,3,111,1, +232,0,86,0,135,255,187,1,122,6,158,8,99,7,54,6,33,5,50,3,143,2,25,4,76,6,125,8,132,9,47,8, +83,6,230,4,66,2,60,0,229,1,81,4,149,4,192,5,177,8,133,9,251,7,174,6,29,5,219,2,246,1,1,3, +40,5,168,7,224,7,227,3,142,254,139,251,125,251,84,254,18,3,45,6,140,5,203,2,161,255,230,252,243,251,187,252, +100,253,175,253,134,254,163,254,63,252,5,249,109,248,207,250,4,253,219,252,124,251,151,250,209,249,202,248,215,248,102,250, +146,251,41,251,53,250,148,249,254,248,4,248,23,246,201,243,17,244,251,247,78,251,185,250,160,248,106,247,60,246,151,245, +98,247,188,250,118,253,32,254,60,251,204,245,61,242,127,242,198,244,120,248,20,253,100,255,156,253,150,249,184,245,64,244, +84,246,101,249,169,250,76,251,117,252,163,252,114,251,51,250,220,249,100,251,117,254,169,0,81,1,101,1,215,255,170,252, +139,251,231,253,1,1,2,3,67,3,27,1,78,254,216,252,204,251,200,251,126,255,38,5,82,8,149,8,230,6,18,3, +180,255,25,0,211,2,73,5,113,7,128,8,91,7,251,5,254,5,180,5,134,4,129,4,37,6,146,7,25,7,119,4, +215,1,222,2,130,7,171,10,241,8,243,4,187,2,201,2,92,3,146,3,51,4,63,6,154,8,167,8,63,6,208,3, +221,1,191,255,254,255,184,4,3,10,232,10,1,8,65,4,226,0,209,254,158,254,213,255,37,3,209,8,184,12,164,10, +15,5,106,1,193,0,10,1,67,2,149,5,63,9,108,9,166,5,212,1,154,0,136,0,78,0,87,1,117,4,9,7, +187,5,162,1,90,255,164,255,147,254,215,251,106,251,85,253,82,254,60,254,186,253,181,251,78,249,89,248,105,247,75,246, +99,247,41,249,73,248,154,246,189,246,26,247,152,246,21,246,15,245,180,243,247,243,159,245,95,247,16,250,11,253,161,252, +20,248,66,243,111,241,237,242,175,246,225,250,86,253,247,252,75,250,89,246,48,242,255,239,107,242,245,248,4,255,43,0, +86,252,105,247,252,244,216,244,98,245,102,247,29,251,53,253,214,251,81,249,103,247,103,246,135,247,92,250,87,252,200,252, +84,252,108,251,111,252,152,0,179,3,13,2,243,253,214,250,187,249,186,250,191,252,165,254,249,0,199,2,145,1,139,254, +231,252,197,252,130,253,65,255,153,0,251,0,249,1,249,2,132,2,112,2,219,3,133,4,191,3,254,2,123,2,115,2, +128,3,165,4,127,5,191,6,130,6,26,3,54,0,206,1,26,6,242,9,229,12,111,14,143,13,80,11,241,8,87,6, +154,5,249,9,224,16,42,20,149,19,93,18,80,15,152,9,243,5,72,7,52,11,176,15,211,18,13,18,138,15,246,14, +111,14,216,12,232,13,40,17,115,18,168,18,51,19,221,17,228,15,39,16,27,16,108,14,177,14,150,16,213,16,202,16, +93,17,207,15,64,13,54,13,78,14,85,14,21,14,181,12,38,9,147,6,201,6,193,6,109,5,230,4,141,4,216,2, +141,1,106,1,14,0,1,254,45,254,233,254,230,252,236,249,104,248,20,247,8,246,246,246,249,247,240,246,74,245,111,243, +226,240,252,239,7,241,10,241,120,241,174,244,169,245,147,240,133,234,167,231,188,230,74,232,187,236,6,240,80,240,32,240, +179,239,181,237,124,235,18,234,188,232,59,232,221,233,222,236,212,239,154,241,18,241,165,238,246,235,254,233,20,234,7,238, +150,244,177,249,59,251,184,249,184,245,223,240,244,238,37,242,160,248,247,254,74,2,27,1,250,252,121,249,184,248,62,251, +175,0,12,6,199,7,118,6,216,4,151,3,207,2,82,3,230,4,56,7,56,10,204,11,85,10,45,8,196,7,145,8, +214,9,191,10,218,9,135,8,79,9,127,10,208,9,189,9,186,12,133,16,181,17,92,15,140,11,71,10,2,13,172,16, +181,18,109,19,47,18,206,13,180,8,133,6,40,7,37,8,163,8,96,9,150,10,7,11,237,8,196,4,79,2,214,3, +40,6,191,5,166,4,187,5,225,6,139,5,197,3,77,4,86,6,242,6,29,4,45,255,243,251,182,251,140,252,182,254, +36,4,22,10,117,10,50,4,178,252,158,248,138,247,38,248,201,251,15,2,36,6,195,4,184,255,176,249,141,244,100,242, +129,243,243,246,208,252,221,2,216,3,220,254,228,248,241,245,159,246,150,249,83,252,249,253,77,255,171,254,166,250,179,246, +3,246,251,246,244,247,97,249,9,251,187,252,213,254,73,0,16,0,237,254,210,253,99,253,234,253,112,254,186,254,142,255, +30,255,122,251,189,247,83,247,195,248,123,250,8,253,4,255,51,254,59,251,50,248,242,246,150,248,119,251,209,252,173,252, +14,252,57,250,151,247,203,246,109,248,202,249,227,248,192,246,139,245,244,245,217,246,188,246,99,245,23,244,209,243,4,244, +136,244,61,246,30,248,180,247,32,245,102,242,120,240,254,239,56,241,172,242,224,243,132,245,118,245,52,242,205,239,60,241, +99,243,65,244,222,245,90,248,139,249,219,248,249,246,161,245,66,247,55,251,209,253,152,253,78,252,92,251,131,250,132,249, +183,249,82,252,99,255,120,0,171,0,98,1,100,1,202,0,165,1,132,4,230,8,209,12,3,12,220,6,234,3,146,4, +75,4,141,4,75,10,78,19,220,25,253,26,165,21,119,13,71,9,133,8,242,6,18,9,107,19,41,30,165,33,17,33, +18,31,197,24,53,15,34,8,214,7,188,15,166,27,153,34,186,33,32,30,25,25,58,16,229,7,144,7,2,15,224,23, +117,28,204,26,151,22,182,20,219,19,5,17,6,15,39,16,89,16,81,13,117,10,162,9,166,9,125,10,241,11,198,11, +170,8,212,2,102,251,63,246,146,247,171,253,105,2,126,2,215,254,89,249,195,243,136,239,62,237,144,237,15,241,132,245, +164,246,146,243,39,240,0,239,92,238,151,236,124,235,255,236,43,240,246,242,127,244,215,244,148,244,246,243,29,242,122,239, +73,239,98,242,180,244,121,244,246,244,246,246,93,247,207,245,153,244,14,245,162,247,247,249,29,248,37,245,75,247,176,250, +206,248,119,246,34,249,53,252,159,252,62,253,55,254,14,255,230,0,153,0,187,252,168,251,41,255,133,1,139,2,212,4, +144,5,104,4,32,4,57,2,138,254,30,255,203,2,185,3,244,4,78,9,198,10,217,7,244,5,22,5,246,2,228,1, +65,2,10,2,41,3,86,6,107,7,175,5,218,4,219,4,22,3,202,0,169,0,92,2,70,4,160,5,148,5,50,4, +113,3,204,3,104,3,230,2,198,4,138,7,33,8,143,7,168,7,161,7,158,6,193,3,125,254,240,249,137,249,131,252, +107,2,153,11,233,18,5,18,224,9,72,0,184,250,147,251,3,0,59,5,36,12,109,17,170,14,139,6,86,0,56,253, +152,253,159,2,230,7,96,10,22,12,198,10,235,4,190,1,162,3,142,4,60,5,180,8,174,9,97,6,79,4,237,3, +227,3,50,6,45,7,71,2,47,253,169,252,244,252,67,253,222,255,88,2,13,3,226,2,39,255,118,247,71,242,164,242, +63,245,4,249,85,254,104,1,107,254,70,247,164,240,113,236,188,234,194,236,49,242,71,247,215,249,231,249,239,245,194,239, +5,238,211,240,127,241,174,239,7,240,208,242,212,245,202,246,189,243,85,240,156,241,56,244,215,243,164,243,131,245,226,246, +207,247,170,248,173,247,20,246,32,246,67,247,172,249,176,252,80,252,18,248,63,244,47,243,43,245,8,249,128,251,76,253, +39,1,85,2,6,253,88,248,141,249,28,253,64,1,2,5,197,3,123,254,12,251,237,249,106,250,52,254,251,1,8,2, +17,2,67,4,6,5,222,3,242,2,222,1,242,0,132,1,99,2,108,2,97,2,116,2,152,2,1,3,63,3,95,3, +164,3,76,3,132,2,149,2,3,4,13,7,100,10,178,10,232,7,226,4,111,1,154,253,121,252,138,253,158,254,238,1, +234,6,80,8,9,7,57,7,222,6,224,4,228,4,197,6,239,7,165,8,5,8,138,5,7,5,82,7,78,8,19,7, +200,4,247,0,63,254,157,0,232,6,21,14,173,20,211,23,203,20,166,12,99,3,75,254,128,0,152,7,119,15,182,21, +41,23,147,17,148,7,107,254,102,251,21,1,144,10,65,16,248,16,83,14,43,8,128,1,72,255,157,1,68,5,32,7, +134,5,194,2,39,1,206,254,207,252,143,255,148,3,22,2,224,252,116,248,15,246,243,247,41,253,98,255,30,254,163,253, +241,251,233,246,150,243,174,244,13,247,14,249,139,250,82,250,77,248,242,244,228,240,34,239,233,241,210,246,255,249,117,250, +2,250,118,249,169,246,56,242,39,242,210,247,136,252,93,252,222,248,207,243,107,240,62,241,77,243,14,245,30,249,33,253, +16,253,164,251,203,250,168,248,172,247,10,250,59,252,99,253,185,254,62,253,0,250,244,250,217,253,199,252,85,250,64,250, +245,250,230,251,127,253,219,254,8,1,143,3,46,2,124,253,39,251,107,252,237,254,172,1,75,3,170,2,166,0,219,253, +165,251,13,253,166,1,82,5,76,6,217,5,104,5,77,5,75,4,147,2,26,3,115,5,106,5,174,3,23,5,236,9, +20,14,169,14,151,11,227,6,121,2,140,255,67,0,163,4,148,8,154,10,129,12,130,12,28,9,150,5,202,2,194,255, +79,0,130,5,29,10,76,13,122,16,92,15,81,9,125,4,18,2,18,1,223,4,129,11,252,13,234,12,86,11,46,7, +52,2,131,1,46,3,129,3,182,3,173,3,239,1,148,0,229,0,33,2,87,5,232,8,181,7,231,2,128,0,58,0, +121,254,5,253,182,254,75,1,113,1,44,255,79,252,178,250,193,251,113,255,50,4,55,8,225,9,186,8,32,7,59,7, +215,6,218,3,68,1,32,1,76,0,104,253,56,251,252,250,89,252,227,254,81,0,39,0,54,2,54,7,74,11,235,12, +240,10,137,2,201,247,176,243,92,247,30,254,104,6,96,14,196,17,34,15,225,6,140,250,134,241,72,243,214,252,169,5, +221,9,144,9,15,6,192,1,231,253,173,250,94,249,248,249,51,250,204,250,173,254,35,3,15,2,31,252,79,247,120,244, +56,240,70,236,220,237,41,244,222,248,1,249,25,247,251,245,37,245,91,242,245,237,138,235,33,237,57,241,31,246,15,250, +225,249,159,245,14,242,228,240,175,238,35,235,95,234,27,237,44,240,125,242,233,244,14,247,65,248,213,247,113,244,175,239, +165,238,89,242,230,245,141,246,134,245,48,243,170,240,46,241,122,244,124,247,146,250,122,254,151,0,138,0,60,0,15,254, +17,250,79,250,41,0,106,4,124,3,1,1,174,255,8,0,101,2,174,4,234,4,39,5,166,6,18,7,48,6,29,6, +89,6,52,6,241,6,215,6,27,3,107,255,102,1,71,8,176,16,44,24,102,25,16,17,147,5,132,255,160,0,103,7, +74,17,120,25,166,29,106,29,114,20,109,3,239,247,162,251,42,7,37,16,153,20,255,20,234,17,57,14,160,11,37,10, +198,10,3,12,202,9,151,5,169,5,218,9,10,11,76,7,237,4,137,6,41,6,239,0,225,252,171,254,175,3,122,7, +70,7,45,3,241,254,68,252,166,248,180,245,45,248,106,253,64,255,245,253,32,252,142,249,17,247,68,246,202,246,33,248, +171,249,99,250,168,251,226,254,121,1,193,0,32,253,17,248,166,244,88,246,15,252,172,1,199,4,112,4,14,1,75,252, +107,247,165,245,162,250,196,1,242,2,11,0,191,254,30,253,240,248,151,245,195,245,42,250,90,1,205,4,94,1,41,253, +224,251,211,250,164,250,164,253,186,1,175,4,184,5,20,4,51,3,141,6,150,9,85,8,252,6,15,7,2,3,90,250, +161,245,169,251,246,8,212,19,68,23,135,20,206,11,177,254,53,246,128,249,122,4,65,14,238,16,238,11,206,4,109,0, +175,253,15,253,189,1,162,7,155,7,123,3,167,1,151,3,135,6,59,7,26,5,74,2,222,254,41,250,170,247,25,249, +114,250,251,249,49,249,206,247,158,247,25,251,171,253,250,250,164,246,246,242,114,238,1,236,167,238,175,243,156,248,216,251, +42,250,185,244,187,240,147,239,154,240,26,244,143,247,153,248,84,249,253,250,87,252,225,253,38,255,9,253,78,247,117,241, +15,239,25,242,206,248,82,255,62,5,105,10,109,10,139,4,123,255,51,255,154,0,42,0,246,253,50,254,73,5,148,14, +128,15,47,8,158,3,4,6,227,10,151,17,91,26,54,28,88,15,60,252,29,243,121,250,149,12,166,29,220,35,41,31, +115,19,5,0,47,236,221,235,163,2,193,25,152,32,69,26,169,12,72,255,186,252,5,3,152,7,181,8,118,5,52,250, +232,241,148,250,167,10,228,17,137,17,158,12,253,253,62,234,37,224,207,230,62,250,200,13,146,15,158,251,106,229,18,223, +226,228,157,236,92,244,163,249,93,247,253,240,154,237,124,236,44,236,39,239,119,242,164,241,157,240,186,241,228,240,240,239, +215,241,52,240,112,234,142,235,0,245,188,253,58,3,121,4,250,252,99,241,184,235,69,236,112,239,191,245,180,253,115,3, +33,5,98,1,28,250,30,246,122,247,183,248,224,247,164,250,6,5,194,16,198,18,5,10,101,255,138,247,243,243,210,249, +96,6,39,13,18,12,195,10,168,9,31,7,33,6,239,4,91,1,13,1,143,4,74,4,199,1,196,5,203,15,130,23, +95,22,213,11,25,255,194,248,248,249,208,255,178,8,156,18,108,26,50,28,48,21,136,9,110,0,231,251,189,253,16,8, +124,18,28,19,212,14,169,12,177,8,95,0,98,248,26,246,84,254,213,13,182,22,117,20,212,15,119,9,225,253,185,245, +238,246,161,250,27,254,157,3,215,6,104,5,74,3,83,0,144,251,152,249,115,251,91,253,112,255,170,2,185,4,39,5, +164,4,106,1,151,251,168,246,7,244,216,242,163,244,77,252,193,7,141,15,132,15,225,9,20,1,218,247,10,244,233,246, +106,251,3,0,175,4,81,5,17,3,74,4,218,6,176,5,160,3,207,1,225,253,23,253,237,3,167,11,159,14,30,14, +60,10,36,4,25,0,202,254,220,255,239,3,69,6,228,3,225,2,178,4,37,4,110,5,247,13,19,20,231,14,84,5, +34,255,24,252,86,252,119,0,48,6,71,12,203,17,70,18,204,10,177,255,208,248,32,250,171,0,95,6,215,7,170,5, +133,2,180,0,5,255,145,250,254,244,112,243,243,246,168,251,85,254,167,254,45,253,32,250,56,247,10,248,11,253,143,1, +193,1,97,253,231,244,212,234,116,228,218,228,36,236,240,248,112,4,237,5,42,254,19,245,134,238,63,234,170,232,45,235, +172,242,74,250,216,247,189,235,145,228,162,232,173,238,97,241,20,244,126,246,160,246,39,247,148,249,143,251,62,251,196,247, +168,242,237,240,86,243,1,244,26,242,185,244,1,254,252,6,245,9,169,7,242,2,24,254,242,250,12,250,112,251,53,0, +253,7,89,15,26,20,157,22,125,21,200,14,22,4,167,248,163,241,189,247,0,12,97,32,116,40,134,37,166,26,224,8, +185,249,18,248,255,1,154,15,35,28,34,34,228,29,108,20,3,13,219,8,90,6,114,5,255,6,235,10,90,14,1,14, +226,10,229,7,146,5,184,4,40,6,19,6,133,0,178,248,214,244,242,246,152,252,103,1,161,2,211,1,245,0,157,254, +182,249,37,244,48,240,176,239,159,243,108,249,143,252,244,251,231,250,17,252,94,252,198,245,203,233,151,226,113,229,223,237, +46,248,56,3,184,8,53,2,103,243,129,230,73,226,99,231,40,242,130,253,71,5,52,6,215,255,204,247,171,245,110,250, +73,255,48,253,214,244,128,238,153,240,218,249,20,6,152,17,220,22,14,17,252,1,11,242,69,235,90,241,101,252,175,2, +144,5,224,10,143,16,220,16,38,11,27,3,65,253,153,251,159,251,231,250,175,250,167,252,216,1,19,10,32,16,180,14, +240,8,66,4,228,0,73,255,127,1,182,5,96,9,186,12,4,15,253,14,99,12,204,5,69,253,240,249,144,252,97,255, +68,3,180,11,20,19,65,18,118,10,194,1,141,254,83,2,93,5,219,0,167,248,209,243,225,245,35,255,120,9,221,12, +213,9,239,3,205,250,63,242,126,240,205,242,2,245,156,250,230,3,137,10,128,12,254,10,150,4,118,250,228,240,68,233, +117,229,236,234,124,250,147,11,44,20,234,17,120,9,105,255,220,245,106,239,154,238,161,244,185,1,247,15,244,19,116,12, +64,4,182,254,200,246,12,240,154,242,212,252,143,7,204,13,43,13,219,7,58,1,85,249,41,244,134,249,0,7,14,18, +186,21,5,17,69,5,210,251,194,251,195,255,163,3,161,10,76,17,246,14,177,5,131,255,114,0,25,5,115,9,118,12, +228,13,108,11,233,4,66,0,232,1,247,5,212,5,250,0,198,254,181,5,138,15,247,15,169,7,139,0,215,252,203,251, +122,1,154,11,41,16,129,11,75,0,209,241,251,231,153,233,215,241,45,249,183,254,14,1,194,253,90,248,228,244,70,243, +145,245,161,253,178,5,103,7,67,3,82,250,49,236,218,222,249,219,169,228,66,241,124,251,13,0,48,251,175,238,194,229, +139,232,65,243,111,255,17,9,8,9,213,250,55,231,120,220,2,224,117,236,193,247,221,251,192,251,33,251,77,248,178,244, +234,244,55,245,137,240,149,237,231,242,144,251,183,3,41,13,225,19,36,17,106,6,2,250,5,242,107,243,221,251,203,3, +175,10,37,19,177,23,159,20,241,16,7,15,127,6,72,247,218,238,62,245,165,5,222,24,171,40,185,44,129,32,20,10, +191,245,177,237,78,245,232,6,72,23,109,31,27,32,239,27,180,20,100,13,248,7,55,3,210,253,5,249,97,249,185,4, +149,23,144,33,141,24,84,6,245,247,73,239,167,236,90,243,202,255,99,8,237,7,238,0,20,252,7,0,55,6,28,3, +187,248,130,240,255,234,24,231,7,235,255,247,148,4,214,9,175,7,190,254,108,242,64,234,2,233,174,234,60,237,0,242, +14,248,33,254,89,5,203,10,159,6,38,248,120,233,141,227,124,231,50,241,107,249,192,251,64,253,75,3,137,9,194,11, +111,12,230,9,39,255,13,241,99,233,106,235,201,247,103,12,14,29,17,30,0,18,144,0,92,238,64,228,81,235,40,255, +141,18,120,28,75,25,118,11,77,253,32,247,144,247,178,251,128,2,110,6,169,3,0,2,183,8,108,16,193,14,78,5, +111,252,105,250,43,1,126,11,81,16,123,12,40,2,131,244,11,237,29,247,168,13,48,30,188,31,52,22,240,6,51,249, +77,245,234,249,108,255,146,4,149,10,247,13,158,13,39,12,152,6,182,249,116,238,68,240,164,252,204,9,98,19,199,21, +53,11,92,247,145,232,255,231,65,243,198,2,228,11,182,5,16,246,99,238,148,245,246,1,124,10,222,14,23,15,199,8, +132,253,18,243,40,238,0,240,211,245,120,250,199,251,138,251,116,250,69,249,118,252,210,4,0,11,37,11,217,8,234,3, +100,250,39,243,249,244,68,252,212,3,148,8,138,5,200,252,98,248,73,249,155,249,66,252,243,2,40,5,249,1,250,1, +170,4,224,6,183,13,98,21,123,15,236,253,230,241,124,241,142,247,223,1,202,13,49,21,214,20,242,11,30,252,64,239, +214,240,141,255,66,16,63,26,52,25,17,14,160,2,189,255,14,1,218,254,131,251,14,251,7,252,130,0,108,10,210,15, +64,9,25,1,54,0,142,255,89,251,27,251,101,0,210,3,26,1,182,249,2,243,103,243,0,250,147,255,230,0,123,254, +54,248,232,240,55,237,119,238,138,244,225,253,13,5,79,6,72,2,217,249,230,240,77,237,8,236,154,231,41,231,205,242, +4,4,128,16,97,18,168,3,7,232,130,211,129,213,87,233,124,1,156,19,109,26,44,21,49,5,9,240,189,226,53,229, +205,238,142,245,74,252,66,6,66,14,102,16,176,11,26,252,105,228,66,215,250,228,171,5,219,34,70,47,201,41,135,20, +232,246,103,223,0,218,115,232,69,1,45,20,49,25,41,24,185,23,238,19,60,12,27,4,96,248,207,235,1,238,107,2, +167,24,12,36,9,34,83,18,90,253,127,241,185,242,252,252,184,12,213,24,145,23,128,13,20,7,88,9,20,17,248,20, +129,10,6,244,218,225,4,225,54,241,13,8,3,24,232,25,239,16,152,4,109,251,5,248,159,246,153,243,61,241,117,240, +160,239,127,243,219,255,155,10,200,7,6,250,222,235,135,228,117,231,194,243,101,2,217,9,129,5,204,251,135,248,255,251, +57,250,189,239,216,231,152,234,134,244,14,1,101,14,176,22,202,17,159,0,206,238,198,230,111,234,43,246,236,2,232,8, +134,7,56,5,182,5,140,7,98,7,124,1,37,248,253,244,248,250,23,3,226,9,100,14,150,11,162,3,3,0,91,255, +14,251,106,247,77,248,220,249,80,255,174,13,150,27,13,30,10,21,209,1,180,233,237,220,10,228,75,246,164,10,133,26, +155,26,63,9,66,246,247,238,135,243,149,255,32,12,252,15,221,8,170,252,154,242,151,240,72,247,251,254,96,1,121,1, +67,3,219,5,237,8,205,11,147,9,42,2,78,254,216,0,171,2,38,2,251,2,235,0,226,248,142,244,42,249,124,254, +66,3,26,15,43,29,21,33,107,26,217,14,43,1,36,247,85,245,250,247,214,252,245,5,118,14,143,14,149,6,120,251, +233,243,68,248,227,6,160,18,31,21,234,17,201,9,82,254,225,247,209,249,54,254,229,0,17,1,162,253,60,250,134,253, +147,6,87,14,159,16,220,11,1,0,245,242,180,237,81,242,232,250,191,1,44,5,11,5,163,1,86,253,166,251,42,253, +8,255,213,255,230,1,53,6,98,8,245,3,115,250,210,240,247,235,239,240,117,255,82,12,86,12,175,2,42,250,55,247, +103,249,229,255,136,5,49,4,47,255,95,255,82,5,10,9,252,5,32,255,112,248,247,243,16,245,138,254,249,11,58,20, +223,18,241,8,150,249,67,237,175,238,209,252,142,10,151,15,72,13,109,5,80,251,6,248,1,255,160,6,53,7,129,5, +15,6,189,4,82,255,177,250,63,250,114,252,207,254,44,255,122,253,81,253,104,255,45,254,185,247,109,242,18,242,46,243, +10,244,87,247,98,252,73,254,203,251,83,249,209,249,253,249,161,245,184,238,160,234,195,234,166,237,45,244,146,254,9,7, +185,6,29,253,144,237,166,220,223,212,12,225,8,251,35,14,54,15,171,3,133,243,232,229,65,228,44,241,24,4,218,19, +250,26,232,20,199,2,170,237,197,223,136,224,209,240,185,5,93,18,70,22,81,22,95,16,117,1,17,238,63,224,212,227, +109,253,3,33,26,60,38,70,234,60,41,31,53,247,123,218,88,213,155,227,248,251,148,20,100,33,246,29,62,21,159,19, +118,22,243,18,245,5,25,246,211,237,250,244,255,7,54,25,39,32,58,30,211,20,181,5,9,249,119,245,28,249,35,0, +198,8,158,16,43,21,19,20,50,11,70,252,183,235,84,221,212,216,104,230,1,0,79,21,150,30,131,28,85,15,247,251, +97,236,54,228,100,225,234,228,84,240,114,255,116,9,206,6,6,249,25,235,50,229,142,229,177,232,84,239,110,249,221,1, +77,2,10,251,194,243,108,241,57,241,84,240,139,239,65,239,77,240,57,245,95,254,156,9,85,18,254,15,7,0,160,237, +139,227,25,226,222,233,121,251,99,12,177,17,6,15,59,12,214,9,191,6,149,3,94,0,174,254,95,1,228,8,219,18, +50,26,132,25,173,17,115,8,168,0,48,251,8,251,115,1,160,11,117,21,114,26,233,23,122,16,197,8,79,2,252,252, +146,250,62,254,141,7,164,15,49,17,58,15,177,12,104,7,69,1,75,255,78,255,168,253,219,252,67,254,94,1,12,8, +99,12,5,2,197,237,107,228,26,237,49,252,193,7,118,14,102,16,198,11,64,0,134,244,37,242,208,247,39,251,81,249, +223,247,242,248,54,250,131,249,224,245,199,241,208,241,209,246,30,254,139,4,97,6,67,2,235,250,189,243,103,241,6,248, +50,1,197,1,210,251,27,248,33,245,109,240,28,241,73,250,66,5,226,13,2,20,32,21,36,16,127,6,96,247,185,229, +19,223,109,238,252,10,88,31,163,32,99,21,241,7,226,253,238,250,83,0,101,10,239,19,238,23,245,18,156,9,63,5, +7,7,217,9,211,12,231,15,2,16,146,13,6,13,92,17,75,25,14,27,220,12,78,249,161,244,176,252,226,2,118,9, +92,21,116,27,12,22,112,14,34,7,189,252,17,246,43,248,194,250,240,248,149,248,78,251,177,251,171,248,228,245,194,244, +215,244,130,246,50,249,44,251,204,252,41,0,235,4,145,7,102,3,216,244,223,223,237,209,29,212,163,224,142,237,145,247, +168,253,70,255,116,255,139,0,126,1,16,1,62,252,167,240,35,230,50,231,34,240,199,246,219,249,100,249,160,240,152,227, +83,224,82,236,154,255,209,16,132,25,96,19,114,254,41,232,222,224,24,234,74,248,105,3,150,10,182,12,17,10,26,7, +175,5,159,3,85,1,92,0,195,254,205,251,42,251,117,255,6,7,84,14,57,18,129,17,52,13,215,7,155,5,239,8, +94,13,40,13,111,10,67,9,154,6,62,0,143,252,222,255,46,4,125,3,116,0,72,0,44,5,75,15,5,26,97,27, +111,15,237,253,220,238,179,229,158,232,42,249,200,8,11,10,189,3,175,0,102,255,5,255,169,3,255,7,17,3,131,248, +230,239,18,234,56,234,61,244,17,255,155,254,151,246,217,242,36,247,190,255,83,6,246,5,146,1,49,254,87,248,54,238, +246,233,206,240,223,249,212,0,187,8,5,11,134,0,82,243,65,239,208,241,114,247,60,1,89,10,172,13,18,13,146,6, +189,246,154,231,130,229,199,237,4,250,162,9,40,24,126,32,25,37,192,34,59,14,178,236,12,213,114,211,26,226,86,248, +45,14,30,28,224,32,202,29,195,18,132,5,160,253,97,248,113,243,218,247,252,5,149,13,248,9,176,7,164,8,9,5, +10,2,130,7,90,14,100,14,115,9,177,2,11,255,58,5,225,14,124,12,23,253,12,238,60,233,239,241,166,4,9,20, +143,21,153,13,133,5,111,1,122,2,182,6,234,8,158,5,59,250,213,229,24,212,124,216,38,244,35,16,19,24,148,13, +100,255,110,248,8,250,39,0,228,5,102,6,224,254,243,242,31,236,176,240,93,252,249,5,205,10,68,13,245,11,77,5, +6,255,151,253,1,252,249,245,136,240,222,242,110,254,100,13,34,22,193,21,98,19,6,19,171,15,13,6,7,249,213,237, +8,237,198,252,234,20,180,37,25,40,156,27,216,255,26,223,208,209,156,229,37,9,108,31,53,32,156,23,173,15,174,10, +37,9,76,7,39,255,52,243,112,236,25,240,90,254,51,17,64,28,220,24,5,12,29,252,116,238,105,234,142,240,205,248, +52,254,154,255,251,252,102,253,44,5,110,8,251,253,142,240,190,235,71,239,8,249,14,3,39,3,219,252,42,252,112,252, +65,242,197,227,83,221,177,223,52,232,123,245,232,0,167,4,13,3,158,254,39,246,63,237,68,236,85,245,64,1,200,6, +131,1,132,245,59,237,193,237,250,239,192,236,199,232,184,236,82,250,251,11,163,22,18,18,127,4,185,248,35,238,0,229, +209,232,230,250,199,11,109,20,231,25,220,26,92,19,250,7,52,254,143,247,225,245,50,250,110,4,29,18,250,23,28,12, +42,248,50,238,225,242,74,1,151,20,78,40,62,59,218,72,132,63,96,23,159,233,69,212,185,216,227,233,163,0,241,22, +76,37,153,39,189,28,212,9,72,251,45,248,116,252,37,3,120,10,235,15,244,17,167,17,223,15,135,12,159,6,103,253, +228,245,32,248,150,1,35,6,201,2,114,0,209,1,180,255,5,248,152,239,105,232,98,229,225,236,152,250,9,2,72,5, +235,13,255,18,118,6,131,240,91,226,161,224,71,232,179,242,115,246,148,243,236,240,126,236,68,229,67,230,69,243,59,1, +98,9,166,11,179,5,167,249,29,238,66,229,26,227,17,237,38,251,248,2,14,11,178,23,62,26,21,11,249,248,128,241, +13,243,129,247,81,251,77,254,110,3,205,10,248,15,52,17,221,15,182,11,173,6,37,6,195,9,50,11,220,10,6,16, +129,25,251,27,192,18,3,6,186,254,68,254,96,2,201,9,244,18,181,23,217,15,58,255,222,246,222,251,118,255,208,252, +48,2,80,17,169,24,152,18,240,10,177,6,235,255,86,244,134,233,213,231,175,242,42,2,235,9,216,5,44,250,141,237, +23,231,10,234,81,242,210,249,195,253,247,253,128,251,52,247,206,241,73,239,166,243,185,250,125,252,143,248,187,243,160,238, +10,232,242,227,169,232,199,246,242,7,175,20,143,22,243,6,123,231,224,203,69,203,50,229,153,2,231,16,226,16,55,13, +37,11,248,6,241,254,163,249,190,249,61,247,73,240,77,241,248,255,171,15,84,20,100,15,125,5,23,249,110,241,219,246, +57,6,63,18,88,18,243,10,170,6,223,8,100,10,12,6,113,1,91,2,123,5,121,7,15,10,189,10,142,4,223,252, +47,253,226,2,237,4,108,3,180,4,145,9,170,12,198,9,18,3,82,255,89,1,253,4,197,7,114,13,40,23,20,29, +210,21,222,0,61,232,101,217,29,220,93,238,190,6,1,26,62,33,200,29,177,21,13,12,46,0,223,243,115,236,22,237, +148,244,125,255,250,7,251,6,189,251,226,239,92,239,55,253,172,17,201,32,48,33,29,15,76,239,236,209,11,203,33,224, +125,0,20,21,226,20,193,8,54,255,86,254,30,2,132,5,137,5,108,254,171,241,101,234,105,240,186,253,146,7,171,8, +31,2,61,250,60,246,129,243,149,239,219,239,169,246,39,253,60,255,75,255,238,252,187,245,95,236,47,231,159,235,163,249, +224,6,47,7,59,253,140,246,167,246,166,244,48,237,86,232,98,236,237,245,45,254,81,1,216,255,102,254,13,0,126,0, +19,253,30,254,24,9,228,18,240,14,162,0,243,242,151,235,180,236,210,247,30,10,96,26,78,31,136,26,38,23,95,24, +34,21,179,9,55,254,133,249,171,251,180,2,188,11,103,20,209,27,226,29,115,22,251,10,30,5,56,6,202,9,0,13, +216,14,84,16,148,19,119,22,174,19,182,10,29,1,4,252,111,251,45,253,157,2,157,12,219,18,44,12,68,253,190,241, +136,237,20,240,33,250,8,9,43,22,99,27,11,20,211,0,121,235,177,223,156,225,181,236,226,248,188,1,92,7,5,7, +103,253,162,240,171,233,185,232,177,236,239,247,62,4,140,4,23,248,118,236,161,235,35,241,229,242,226,241,179,248,75,6, +114,12,83,7,161,254,49,242,231,224,134,216,130,228,203,250,84,10,182,13,134,8,92,0,2,251,48,252,14,4,135,14, +62,19,103,12,192,255,22,250,129,0,168,12,206,22,12,27,28,23,229,13,241,7,146,6,153,2,234,253,227,1,124,11, +157,16,234,17,43,19,6,18,240,14,120,12,74,9,216,9,139,21,111,35,1,35,42,20,105,0,209,235,244,218,181,213, +2,225,14,252,206,23,162,26,43,3,249,239,226,240,12,248,177,2,111,26,78,44,15,25,209,234,48,201,61,196,207,208, +119,229,90,253,205,14,204,16,197,2,139,238,181,227,66,230,74,233,46,232,115,239,68,255,71,7,203,7,48,14,168,19, +39,9,121,245,156,230,209,221,146,219,18,226,255,234,205,242,235,255,54,19,17,38,198,48,41,33,45,235,49,177,241,170, +28,219,191,15,247,40,104,47,225,47,38,40,87,17,154,237,210,207,59,205,173,226,206,251,19,16,244,29,235,26,88,6, +104,244,50,241,19,246,200,255,71,12,103,13,71,255,169,246,209,0,59,17,151,25,24,23,216,10,132,251,117,242,220,238, +248,236,10,242,230,254,64,9,68,13,139,14,250,9,179,254,61,247,186,247,94,248,181,248,197,255,162,11,48,20,2,20, +214,7,23,246,159,240,238,252,135,10,39,12,204,2,248,239,156,218,102,216,230,243,162,22,30,36,78,27,250,13,26,5, +155,250,170,235,86,230,20,247,69,15,189,22,213,15,156,12,177,12,1,5,203,248,94,241,180,239,83,244,202,0,87,14, +239,20,164,21,201,18,27,10,216,252,181,242,248,242,87,253,179,7,77,9,23,9,51,17,66,25,100,20,250,8,28,2, +68,252,181,243,211,238,223,241,141,254,252,21,142,38,239,19,60,230,229,204,222,224,123,6,0,24,227,17,173,11,197,18, +187,24,26,14,88,255,90,252,60,248,26,231,146,222,228,239,18,6,56,11,249,6,234,4,243,4,239,7,90,11,237,4, +161,245,122,235,226,236,33,248,170,10,53,25,73,23,254,10,137,1,50,251,143,245,17,243,47,240,106,235,210,239,115,254, +102,4,68,251,147,244,87,250,62,3,158,6,185,4,152,2,85,8,52,21,21,24,3,6,221,237,236,228,43,237,110,248, +187,247,245,231,172,219,151,236,193,22,47,54,232,52,56,33,249,12,246,247,150,228,129,223,1,233,100,243,219,250,4,7, +80,23,47,33,65,31,17,23,59,15,64,5,184,245,96,236,240,245,125,2,68,249,76,231,88,237,86,7,158,23,171,27, +195,35,90,41,24,27,14,0,244,236,19,231,69,232,191,239,246,252,98,5,150,255,236,242,202,238,49,246,31,0,15,7, +41,11,145,9,213,254,122,241,58,239,252,250,216,6,137,8,12,7,85,7,157,0,67,243,133,238,107,242,203,238,41,229, +213,230,155,245,32,4,210,8,159,1,154,246,23,246,80,255,249,3,32,3,11,4,50,0,191,242,91,232,16,233,217,238, +101,247,97,1,149,1,107,241,147,217,27,201,36,207,155,238,145,16,75,27,222,17,225,4,62,249,152,241,202,243,164,251, +138,255,231,252,219,244,38,237,20,241,32,255,188,6,28,4,8,4,49,10,222,13,177,8,252,248,86,228,188,218,210,230, +55,2,80,34,209,64,19,86,83,90,54,73,24,34,171,241,231,209,76,206,31,216,152,227,66,248,8,25,157,54,163,67, +54,64,229,44,239,9,144,232,41,227,30,251,73,22,195,36,133,46,80,56,36,56,189,39,138,12,103,238,81,212,123,199, +236,209,78,243,235,20,13,27,125,10,231,0,225,5,60,10,119,12,76,17,140,13,29,254,220,244,136,246,147,244,96,237, +146,234,227,233,92,229,55,224,217,222,2,227,190,235,251,241,229,243,146,250,206,3,242,255,78,241,36,234,135,234,217,228, +247,218,4,218,237,230,249,252,188,17,10,26,251,18,88,0,105,230,39,206,74,195,252,200,105,219,172,245,76,13,58,23, +222,20,27,14,28,6,75,0,117,1,140,7,203,12,230,14,168,13,68,11,8,10,161,4,175,247,89,239,181,245,168,1, +26,11,105,23,83,36,53,37,48,27,35,20,163,19,110,18,184,15,226,19,76,33,248,42,114,36,107,22,236,17,131,21, +4,20,190,10,225,254,14,244,73,240,215,249,30,14,2,35,78,46,133,44,72,35,191,22,59,6,70,252,225,4,216,12, +37,249,64,220,182,220,244,247,66,18,170,33,220,33,192,9,44,227,43,199,122,195,157,216,199,251,224,21,116,26,108,17, +227,254,233,228,164,214,246,220,49,226,222,222,147,235,6,11,156,27,106,13,239,242,135,220,128,203,9,193,110,192,211,201, +25,220,44,247,7,25,43,54,60,59,205,34,70,1,88,235,86,222,112,208,166,198,8,204,188,223,133,246,165,9,250,26, +71,38,157,28,183,253,150,228,5,231,34,252,165,17,57,33,72,40,216,36,80,29,0,24,238,16,87,4,29,248,89,243, +241,245,246,251,1,4,162,15,72,29,173,38,217,40,249,37,38,29,100,13,57,0,16,2,204,17,58,35,202,44,177,43, +72,30,220,0,81,216,15,190,47,203,59,245,119,26,114,42,36,37,0,12,26,244,162,252,74,25,252,27,193,252,2,220, +126,202,244,201,223,227,116,13,154,33,116,21,96,3,104,250,238,240,252,225,42,213,87,207,218,202,91,195,101,203,236,250, +50,56,232,70,39,35,55,5,108,0,103,245,55,224,184,217,204,219,75,208,16,194,225,202,220,234,61,13,177,34,7,42, +237,33,173,1,20,214,77,203,147,239,154,19,212,19,93,7,204,6,207,10,55,14,111,16,49,7,58,248,16,246,207,248, +217,241,39,239,205,249,112,3,155,12,33,29,221,33,188,16,30,4,240,7,245,9,133,8,35,15,102,21,157,18,205,13, +227,6,125,250,76,241,145,237,5,235,117,244,234,12,213,28,253,27,157,28,250,26,76,3,12,229,247,223,150,240,199,255, +92,9,102,21,23,35,149,40,174,31,10,15,80,255,20,237,124,216,86,208,242,214,115,221,201,231,185,5,0,41,223,53, +133,44,202,26,229,5,230,245,109,239,97,231,155,223,209,238,165,16,221,29,70,6,156,229,188,218,85,233,18,254,29,4, +187,253,91,254,28,9,186,15,144,15,188,14,217,8,183,252,168,247,122,252,139,251,90,242,223,242,190,1,176,12,24,10, +21,5,203,3,79,253,221,239,145,232,123,240,233,3,48,24,173,30,199,16,213,253,229,248,77,255,86,6,55,14,119,20, +222,14,128,255,182,243,67,241,85,247,4,2,225,3,208,244,97,229,15,234,206,254,221,18,143,30,248,31,253,20,210,3, +183,252,161,7,129,20,158,13,183,249,53,243,4,253,62,2,93,253,17,249,133,245,237,240,255,244,138,0,242,1,216,247, +92,247,165,11,127,37,8,43,109,20,160,249,104,242,121,243,12,238,31,241,167,254,32,249,199,226,83,224,202,237,55,237, +204,237,234,5,10,23,135,6,11,241,56,244,162,5,115,16,60,13,20,2,80,250,41,244,231,233,195,234,53,255,133,12, +200,2,44,249,248,253,237,3,166,3,246,253,24,243,199,239,35,253,216,10,54,13,82,15,66,21,90,25,139,31,112,37, +212,27,155,2,107,233,114,220,16,230,63,4,202,27,30,28,234,20,197,11,155,243,7,221,50,233,254,11,107,28,213,19, +240,10,235,15,165,30,111,43,253,41,27,23,171,247,191,209,73,182,90,188,73,222,45,252,114,11,49,24,63,29,222,14, +54,251,106,243,93,241,194,238,226,240,194,245,114,247,52,250,13,3,208,14,207,19,14,4,181,223,204,192,135,187,219,200, +5,225,236,1,211,23,241,16,205,253,194,246,41,249,207,246,31,238,78,233,31,242,38,4,137,16,87,19,198,16,149,3, +205,234,197,213,129,203,34,198,145,205,19,237,10,20,135,38,89,31,88,13,23,2,25,7,143,19,252,20,111,9,94,0, +115,1,188,4,82,1,59,247,81,237,87,235,221,244,30,7,242,25,173,36,179,37,181,34,195,31,167,26,201,14,123,250, +201,229,162,226,70,250,204,31,122,65,167,88,206,92,112,65,126,14,252,223,54,199,66,194,2,203,21,221,33,248,212,29, +60,66,26,81,255,73,190,56,243,27,242,246,110,223,236,219,38,223,29,235,195,6,187,33,63,43,156,35,252,9,17,228, +8,202,24,201,219,217,26,247,22,21,83,29,153,19,107,17,18,23,232,18,91,2,201,234,32,215,80,220,158,247,1,8, +105,1,47,244,231,228,80,211,70,207,210,222,195,241,191,252,243,2,132,11,178,24,254,28,127,8,226,231,165,212,179,208, +161,214,113,237,237,12,27,27,95,20,215,9,25,254,49,234,150,212,162,201,17,206,84,224,214,250,236,23,46,52,45,68, +206,54,98,17,97,242,36,233,203,231,12,230,141,237,240,253,36,10,114,17,160,26,150,30,23,18,255,249,220,231,245,233, +157,254,17,22,141,38,39,50,219,52,193,39,216,19,168,3,31,243,234,228,178,231,182,250,185,15,232,32,121,42,248,36, +183,18,47,253,145,236,75,235,211,249,219,5,41,6,155,6,180,12,41,19,30,25,103,23,36,2,157,229,118,219,104,228, +221,239,218,248,170,1,101,6,199,1,137,246,137,239,142,240,66,236,8,221,189,215,111,234,170,3,50,16,230,14,22,2, +192,240,111,234,133,240,92,243,69,237,58,229,71,225,206,232,43,252,223,7,92,254,243,239,147,238,181,244,43,248,217,247, +51,246,121,252,71,18,228,39,135,37,77,12,222,236,212,211,44,209,82,236,140,11,76,18,147,10,39,11,34,20,124,29, +222,33,127,22,250,251,197,231,176,231,38,248,247,20,38,50,108,57,123,41,226,23,168,12,189,0,226,246,77,246,2,253, +197,6,116,16,56,22,22,26,179,32,137,37,53,32,42,16,11,252,126,239,30,247,252,16,11,39,245,36,75,14,115,247, +64,238,86,242,142,254,25,11,240,11,192,255,7,248,37,255,2,5,19,249,162,229,31,222,203,227,240,238,124,2,151,29, +173,40,84,18,98,240,42,223,91,215,25,202,40,195,112,205,203,221,99,236,16,253,148,12,79,17,215,6,143,241,97,224, +13,223,185,229,141,234,26,242,67,251,131,251,172,245,82,241,196,233,136,224,10,226,147,237,23,249,128,2,86,7,164,4, +255,2,142,7,139,7,25,253,128,241,57,239,28,251,198,15,211,27,134,22,153,11,143,5,155,1,175,252,151,248,214,249, +206,7,142,33,242,54,99,57,77,40,244,10,196,237,138,225,105,238,54,8,40,23,41,19,80,17,201,35,113,56,86,54, +79,36,176,15,113,244,107,220,67,226,58,1,183,21,52,17,124,3,152,251,171,252,222,1,251,1,253,250,85,244,240,241, +195,244,119,1,249,19,251,27,33,19,0,2,154,237,228,215,203,200,89,195,168,197,95,215,55,249,177,20,82,30,134,35, +35,30,160,249,46,207,254,202,136,221,193,219,206,208,184,227,245,17,181,55,35,58,5,23,91,228,218,190,46,181,125,202, +138,242,240,10,220,5,101,7,215,37,237,59,146,40,255,254,37,221,42,209,48,231,50,24,68,60,186,53,51,20,50,251, +181,249,9,1,198,252,177,239,109,238,189,3,188,42,110,83,58,96,59,63,140,10,103,233,48,223,5,223,85,236,61,5, +50,25,112,39,27,56,103,61,49,40,198,4,238,229,204,211,126,213,16,233,56,255,59,19,206,40,194,51,255,39,170,15, +172,247,227,228,93,222,204,225,235,227,182,235,161,2,203,19,121,12,66,252,228,241,220,233,164,232,242,241,211,246,63,241, +158,238,45,243,35,248,43,251,213,248,254,239,129,235,70,241,1,249,117,252,15,249,114,236,205,224,190,226,241,233,185,233, +8,233,178,241,196,254,154,6,251,3,27,248,196,237,181,242,34,9,41,31,187,25,140,247,240,220,248,226,176,244,103,247, +198,238,102,232,116,237,241,5,222,39,110,55,44,42,9,15,71,247,3,239,11,249,194,6,4,11,82,13,105,23,151,35, +136,38,235,24,34,254,113,233,216,233,255,245,23,2,107,20,196,45,232,59,105,54,236,40,85,24,80,0,181,236,211,240, +191,6,209,22,35,25,51,23,143,24,204,28,121,27,98,10,182,239,247,222,186,223,86,238,62,9,11,35,117,36,81,18, +140,10,141,18,73,19,205,2,188,237,144,225,67,225,74,230,255,233,86,239,63,249,217,255,11,253,172,245,57,239,185,236, +28,242,195,252,55,2,74,253,127,243,224,237,38,240,151,244,130,244,29,242,41,240,2,236,192,233,24,240,159,245,166,239, +223,233,197,239,129,246,138,249,122,8,220,32,18,37,44,11,67,236,238,220,175,218,200,224,135,239,148,0,79,10,28,13, +200,17,0,27,23,29,154,11,232,239,49,226,18,234,25,252,172,16,21,35,200,40,107,33,45,25,188,16,22,1,121,242, +50,240,217,245,98,254,103,12,66,26,165,29,18,26,169,25,204,26,180,19,131,3,37,247,126,249,104,3,229,6,23,4, +221,2,189,1,5,252,137,245,92,244,166,248,129,0,1,12,53,24,65,26,26,9,185,236,176,215,164,210,111,217,147,227, +138,231,247,229,225,239,85,12,208,36,172,33,63,6,231,226,74,196,116,183,249,197,6,231,148,2,181,9,125,5,85,6, +143,10,90,3,235,236,175,210,143,194,131,197,118,220,27,0,207,36,64,59,118,54,12,27,175,252,68,232,32,220,11,210, +39,203,13,213,216,247,147,33,243,59,181,67,40,50,229,0,125,212,59,217,103,247,240,252,78,244,224,4,83,44,61,76, +227,78,183,46,157,252,187,212,64,197,23,210,211,246,102,24,229,34,226,41,223,58,227,58,73,26,31,241,156,214,159,211, +212,239,13,30,173,57,104,51,52,32,13,20,238,9,178,243,234,211,114,191,149,196,233,223,121,10,136,54,40,70,52,45, +133,11,126,254,84,248,16,230,255,211,23,211,4,226,40,251,164,22,99,33,252,15,151,242,25,226,205,227,217,234,203,236, +168,237,169,247,169,9,175,22,12,23,243,12,105,253,83,242,165,243,124,245,223,233,255,225,124,243,206,10,198,9,96,251, +214,250,218,5,64,12,102,13,194,12,14,3,74,237,218,220,246,231,113,9,114,33,26,31,103,19,127,16,171,17,14,13, +169,2,149,244,210,229,10,225,148,239,247,9,33,30,52,36,80,32,122,19,228,254,242,240,46,246,188,6,51,23,33,38, +220,42,22,25,20,253,198,239,253,240,249,237,144,227,239,224,77,241,0,16,202,46,188,65,58,64,65,34,56,240,122,204, +213,208,166,236,160,255,22,5,127,12,112,26,120,37,96,35,173,15,237,239,152,210,24,196,183,202,204,232,110,18,10,44, +210,40,9,26,216,14,5,0,106,232,231,211,92,208,243,225,52,254,165,17,132,25,135,33,96,30,61,252,155,208,73,190, +234,190,51,196,249,220,138,9,239,41,82,48,98,44,28,39,148,27,224,4,240,229,202,206,68,204,212,213,104,228,248,255, +247,30,90,37,54,16,134,247,48,237,248,245,47,10,139,22,66,21,208,21,220,29,21,34,158,29,165,18,124,1,94,240, +70,233,40,238,225,250,198,7,0,12,67,11,144,17,140,26,11,24,160,14,130,13,53,19,32,20,61,16,8,14,1,11, +46,2,215,249,81,250,121,254,117,253,63,249,25,246,201,243,51,246,95,0,42,9,168,7,182,0,147,253,167,1,63,9, +230,10,76,3,73,251,35,247,234,241,71,237,120,235,78,228,19,218,247,221,158,238,39,248,170,247,249,247,211,248,247,247, +218,250,243,254,58,251,95,242,129,236,238,232,78,230,8,234,28,245,152,253,104,249,18,234,174,218,129,211,126,212,50,221, +67,239,149,3,250,11,224,7,68,6,30,12,190,12,34,1,173,241,147,229,197,220,168,218,91,229,139,249,254,9,12,14, +147,12,60,17,175,23,254,16,165,254,159,242,134,245,106,1,156,14,138,21,241,17,205,11,109,14,49,26,84,41,151,52, +10,48,52,24,13,0,4,252,83,4,117,0,194,236,21,225,246,239,167,18,101,57,193,86,152,89,19,60,155,22,51,4, +69,255,148,244,122,229,236,226,140,246,16,24,16,50,232,52,210,33,154,1,62,226,171,217,17,239,194,11,168,25,186,28, +71,32,103,35,237,29,41,9,75,232,208,204,143,200,28,221,162,252,88,19,33,20,135,4,108,245,29,239,127,237,12,234, +208,226,38,222,30,230,255,249,19,11,95,12,88,255,243,239,80,231,254,227,54,224,75,219,157,217,241,223,207,237,118,249, +182,249,5,243,23,238,60,234,179,229,7,229,133,235,0,249,129,9,163,17,214,10,141,254,255,245,34,239,75,233,19,231, +118,231,188,235,230,244,84,252,219,1,112,14,229,28,42,31,99,24,242,18,157,14,126,11,16,12,88,11,251,7,184,8, +9,12,229,11,29,12,163,16,13,22,137,26,192,28,47,25,182,17,250,10,47,7,48,11,217,23,60,35,154,41,252,47, +120,47,30,31,169,10,154,255,23,250,206,246,16,249,97,253,95,0,52,6,250,14,160,22,214,26,0,20,27,255,245,239, +123,249,40,14,1,22,251,15,48,7,220,253,184,241,153,228,48,218,131,212,251,211,195,217,161,231,95,250,140,9,210,15, +196,12,20,1,9,242,241,232,97,231,91,231,232,231,185,233,226,229,182,217,152,207,152,206,4,211,18,220,136,235,15,252, +238,9,195,23,172,32,157,25,255,0,194,221,47,187,43,171,247,182,99,211,57,245,103,26,5,54,188,54,51,34,200,10, +67,246,168,227,187,213,2,208,220,217,134,250,149,38,54,68,95,69,1,47,216,14,64,245,117,237,37,246,244,5,109,19, +150,25,53,28,189,34,185,42,130,40,164,24,164,6,120,254,143,0,9,10,114,27,228,44,69,46,127,31,75,17,89,9, +81,2,213,0,40,10,137,20,227,21,206,14,23,2,6,245,87,240,246,244,55,252,200,1,30,4,130,6,196,16,41,30, +120,28,201,6,215,234,127,213,239,206,57,218,221,234,9,241,175,240,140,246,157,1,63,8,182,5,196,250,121,235,159,221, +177,214,209,219,88,237,69,1,135,10,22,6,47,252,126,246,71,246,110,243,91,229,24,205,14,186,14,194,189,232,201,20, +20,44,170,43,83,26,120,0,105,239,105,238,162,235,54,221,189,213,171,227,174,253,249,21,42,36,111,33,177,13,108,243, +23,227,54,232,232,250,5,8,90,12,91,17,175,21,232,19,79,15,250,8,152,0,58,254,224,3,175,8,5,13,173,21, +175,26,149,22,105,15,65,4,221,242,187,233,98,245,176,13,34,37,140,50,248,46,68,31,142,16,63,4,31,246,47,237, +24,239,105,245,159,254,250,16,48,37,205,40,55,25,146,6,42,252,138,248,169,249,54,255,248,3,68,3,67,0,80,255, +163,0,42,3,201,2,102,250,134,239,81,238,97,247,218,1,5,10,248,14,211,13,36,8,143,1,137,248,181,236,77,226, +162,218,183,215,254,224,54,245,197,7,185,21,250,35,188,40,187,23,74,252,147,230,113,211,218,194,254,197,92,224,98,254, +52,21,120,40,158,50,80,39,214,7,234,227,106,205,221,203,233,214,119,228,92,246,195,14,117,38,129,52,103,46,125,12, +131,223,247,199,50,206,32,225,88,245,41,8,20,22,29,32,151,38,225,32,19,12,47,243,125,225,91,221,66,233,73,254, +106,18,162,33,65,39,239,31,104,19,246,6,138,245,76,230,126,236,110,6,187,28,205,33,27,25,152,9,31,250,139,242, +161,246,0,0,79,3,227,2,196,14,124,37,44,46,135,30,94,5,17,236,51,212,216,203,147,221,25,249,156,9,194,18, +168,32,169,43,105,34,230,5,206,230,84,207,224,195,136,204,154,233,101,13,157,42,235,55,225,45,35,21,224,1,214,244, +66,221,156,187,179,167,100,184,248,238,249,47,48,86,49,84,242,53,164,12,154,236,102,227,11,225,111,208,66,196,62,221, +221,17,183,59,209,71,249,55,77,15,29,220,37,191,180,203,207,236,232,1,143,9,129,22,121,41,78,49,63,37,252,11, +177,241,43,223,64,215,131,219,186,235,78,254,131,9,26,17,142,24,63,24,14,15,47,4,88,246,64,231,208,229,185,242, +216,251,189,254,202,6,117,14,196,10,77,3,206,0,66,252,62,241,240,233,159,238,176,248,131,253,244,253,146,1,132,7, +251,9,16,10,198,8,141,255,198,237,150,224,91,228,26,247,35,10,110,15,105,9,8,6,100,8,91,8,208,4,144,0, +11,248,158,237,1,238,138,251,78,9,244,13,135,9,162,255,168,248,23,252,27,5,193,10,230,13,211,17,50,19,44,15, +193,5,232,245,193,228,125,222,13,230,235,243,180,6,89,33,169,60,39,73,227,57,54,15,62,223,64,197,74,196,33,207, +159,226,78,255,110,30,250,60,199,84,65,79,238,33,252,230,175,191,146,183,152,203,94,239,174,15,164,35,125,47,150,51, +250,40,175,11,216,225,92,189,220,176,198,193,15,235,24,31,235,66,152,66,207,40,107,11,176,241,10,221,50,209,84,206, +67,213,214,231,81,0,226,22,154,36,229,28,97,255,77,229,49,223,97,225,217,229,195,245,174,11,104,24,244,28,148,31, +19,26,144,5,103,231,230,205,166,198,86,211,98,233,2,255,124,16,175,28,79,37,191,42,189,37,110,16,19,243,55,223, +62,224,189,241,65,4,164,12,241,10,198,5,106,6,67,14,218,12,234,246,160,224,122,226,117,246,65,12,221,32,89,46, +209,41,0,26,64,14,207,4,40,244,157,224,130,215,182,224,33,250,216,23,0,42,115,40,253,22,63,0,2,241,162,240, +33,246,2,242,97,235,156,251,195,34,29,65,130,66,146,42,1,254,75,203,211,180,105,201,36,238,199,5,3,13,96,13, +157,18,211,32,106,38,228,14,16,227,143,193,248,194,224,234,234,31,130,58,174,44,63,11,223,237,20,221,205,214,39,210, +15,204,177,209,133,236,138,15,99,39,234,43,234,28,185,1,97,234,253,225,216,228,129,233,137,236,48,242,253,254,225,12, +172,13,210,253,251,234,120,226,203,228,89,237,82,249,196,4,133,12,47,19,47,27,177,30,182,21,152,1,15,237,156,226, +212,228,71,238,228,247,22,255,157,6,4,18,112,29,215,28,187,11,137,247,204,238,139,240,101,246,127,255,221,10,45,22, +114,32,2,36,245,25,130,7,75,247,6,234,204,221,129,216,146,223,77,242,161,13,56,41,104,55,13,50,88,32,10,12, +161,248,196,231,119,224,250,233,193,254,63,15,138,21,14,26,47,32,169,27,192,2,210,226,196,212,164,223,222,247,0,21, +0,47,245,51,28,32,116,11,19,6,70,4,38,250,96,234,153,221,223,225,238,252,75,25,48,31,77,18,25,255,234,235, +152,229,97,242,245,0,253,3,101,4,171,9,89,16,218,20,135,16,100,254,125,233,155,223,217,223,126,230,165,243,32,0, +58,3,103,0,224,255,252,0,242,251,214,239,82,234,252,245,162,6,126,12,93,13,21,18,207,17,223,3,58,237,186,213, +63,198,18,201,149,220,222,243,167,7,87,24,192,37,251,45,92,44,65,27,50,254,98,227,79,216,99,225,220,246,185,7, +192,8,125,0,20,254,99,6,218,13,110,6,232,243,109,235,121,251,199,27,31,53,15,52,65,26,32,255,217,246,130,253, +52,2,82,252,184,241,52,241,142,3,130,28,83,36,125,18,245,245,219,229,167,238,18,8,194,28,229,31,131,23,113,17, +136,20,201,26,151,21,112,252,250,218,207,202,194,217,97,249,152,14,124,14,126,3,239,252,213,2,96,16,253,20,164,7, +52,246,68,243,56,254,91,8,241,4,26,242,207,221,129,218,249,231,35,245,50,248,198,245,215,245,58,251,61,0,138,252, +165,242,134,238,103,246,106,6,2,21,119,22,217,7,220,244,175,231,225,221,160,213,254,211,151,217,110,227,77,244,178,12, +208,33,219,41,32,38,131,26,32,9,50,248,157,238,31,236,138,237,85,242,174,249,101,1,149,6,212,4,247,252,164,248, +238,251,132,255,195,1,168,9,194,21,58,29,240,28,144,21,177,9,46,2,178,4,106,10,64,9,214,253,29,238,110,231, +239,238,246,248,178,252,27,254,205,255,28,5,90,22,108,43,137,47,168,35,246,21,16,5,74,242,209,237,147,246,140,249, +208,244,98,243,54,246,163,250,28,0,223,2,39,3,117,5,195,8,186,13,126,24,38,32,80,24,37,9,168,0,80,252, +118,246,180,241,83,237,198,229,232,224,240,232,52,252,48,10,8,6,108,249,7,248,190,3,253,15,176,22,82,22,242,10, +175,248,188,236,101,236,184,239,191,237,164,230,240,225,150,228,44,236,78,245,213,254,81,6,54,10,4,12,220,11,5,10, +53,10,45,11,26,4,94,242,23,223,175,212,245,215,249,231,163,253,200,13,27,15,150,2,77,246,227,245,54,251,53,253, +87,2,187,16,247,28,195,27,243,17,240,5,204,244,179,223,221,212,69,224,146,249,69,12,10,18,62,23,79,33,49,34, +212,14,96,243,52,230,12,240,119,8,87,33,237,45,68,39,63,19,109,0,93,245,136,237,114,231,180,232,121,245,20,13, +179,39,96,52,74,39,246,10,202,245,49,242,98,251,95,9,68,21,238,24,209,20,139,17,14,18,104,10,235,241,32,215, +198,208,236,226,59,1,212,30,221,47,154,43,129,23,54,4,143,250,58,244,50,233,63,222,216,224,169,244,63,12,29,23, +110,16,207,254,51,237,29,228,228,227,72,230,90,232,61,239,146,254,48,14,183,18,153,13,99,7,15,255,132,240,203,226, +129,221,71,221,49,224,6,235,102,250,23,3,114,3,98,3,85,5,98,4,95,255,226,251,66,252,123,251,2,249,75,252, +7,4,223,3,247,250,233,246,58,252,202,1,22,2,144,255,202,253,27,0,219,7,160,16,80,19,19,13,204,2,99,253, +85,0,58,7,211,13,243,18,211,20,199,18,2,14,140,5,74,249,190,238,117,235,224,240,99,254,88,15,237,27,99,33, +235,33,238,29,116,20,218,4,151,241,153,230,29,239,231,1,109,12,165,12,112,10,195,6,102,2,125,1,115,1,60,253, +224,247,168,248,13,4,216,21,8,30,99,18,67,255,11,244,229,238,105,236,53,241,6,250,191,253,241,254,217,4,184,11, +79,11,79,3,239,249,68,243,154,237,178,232,241,234,149,245,44,254,84,255,53,0,62,4,84,6,255,3,58,253,132,241, +253,229,2,226,224,229,131,238,181,248,2,254,26,253,132,254,237,3,6,4,123,254,232,251,139,250,167,244,250,240,240,245, +141,251,46,250,211,245,142,243,157,244,187,250,72,4,85,11,68,14,249,14,25,12,59,6,125,2,9,0,252,248,104,240, +58,240,176,250,235,8,106,19,205,22,90,20,187,13,226,2,225,249,106,253,58,10,76,15,198,7,48,0,91,0,191,4, +65,10,79,15,39,15,143,7,51,254,177,250,31,254,206,2,118,3,58,0,65,253,204,255,221,9,183,20,68,22,245,13, +65,3,207,250,247,246,110,249,247,252,141,250,12,246,210,247,63,255,149,6,172,10,125,9,208,3,49,0,251,3,141,12, +103,18,16,15,211,1,138,241,150,230,215,227,138,232,122,243,165,0,229,9,51,13,189,13,49,14,225,13,91,10,253,0, +67,242,174,229,177,228,254,239,75,255,248,9,243,10,58,2,106,247,193,243,1,248,161,253,119,254,51,249,33,244,166,247, +57,1,168,5,87,1,214,249,73,244,200,244,217,252,122,5,15,7,236,4,106,5,5,6,249,255,251,241,202,225,119,216, +85,221,120,241,242,12,8,34,86,41,21,39,236,30,191,14,236,249,211,231,138,217,218,210,117,222,237,249,141,19,114,33, +63,36,187,27,228,11,135,253,213,242,252,235,22,239,243,253,174,17,148,34,173,39,251,25,68,1,230,237,132,230,229,232, +216,241,153,251,224,1,189,8,47,21,71,35,109,40,70,28,17,2,174,233,136,225,55,234,187,250,86,9,135,15,126,12, +196,4,186,254,67,254,179,255,249,250,14,241,119,237,153,246,43,7,192,21,170,25,169,15,53,255,245,242,140,237,51,236, +45,237,91,240,165,247,210,3,222,14,60,17,199,9,120,250,71,231,61,219,50,224,252,241,103,5,124,20,76,28,116,26, +144,17,147,5,83,245,161,224,135,207,113,204,47,219,143,246,122,18,58,35,66,37,232,26,1,7,218,240,238,228,206,232, +158,246,158,7,217,23,107,32,157,26,205,7,196,240,167,223,80,217,138,218,56,225,253,243,247,21,34,58,39,77,103,68, +32,34,9,246,252,214,3,210,224,225,164,247,130,6,160,11,104,14,249,20,22,26,55,19,158,253,105,228,91,218,39,233, +163,7,229,35,79,49,201,44,84,29,91,13,162,253,189,232,217,211,152,204,175,216,252,242,136,16,7,35,235,33,57,19, +58,4,113,252,42,250,180,247,215,243,133,244,37,254,180,12,37,24,73,25,185,11,192,242,185,218,146,208,153,216,157,236, +172,1,172,16,71,24,54,25,112,22,157,19,2,14,74,0,48,239,247,229,248,231,155,240,37,251,158,2,169,2,189,252, +176,246,69,244,32,245,24,247,96,250,161,2,241,15,7,26,211,24,237,13,158,0,106,245,88,237,114,233,199,234,213,239, +85,245,137,250,218,0,103,6,230,6,251,2,52,0,19,1,86,3,212,5,234,9,98,14,104,14,213,7,89,254,254,245, +133,239,67,236,234,238,87,246,24,254,36,4,107,8,234,9,45,9,21,9,54,10,76,10,120,8,211,5,137,3,123,2, +97,2,85,1,74,254,23,250,241,245,143,243,241,244,182,249,145,255,9,5,114,8,124,8,126,8,213,12,25,18,19,17, +120,9,7,0,53,247,16,241,210,240,41,245,32,248,183,247,115,248,220,253,172,4,251,6,94,4,204,1,14,2,201,3, +32,6,169,8,14,9,61,6,31,2,103,253,75,247,112,241,171,238,237,239,253,244,44,252,194,1,61,4,237,5,199,7, +109,8,139,8,145,9,9,10,96,8,53,5,97,0,93,249,182,242,132,239,141,239,178,241,70,246,4,253,160,4,186,11, +238,15,72,15,120,11,107,7,112,3,195,255,116,254,91,255,143,255,116,254,231,253,172,253,155,251,218,247,165,245,223,247, +43,254,115,5,135,10,245,11,182,10,187,9,199,10,191,11,43,9,172,2,57,251,94,246,173,245,126,247,174,248,85,248, +192,248,151,252,134,3,214,9,156,12,22,13,144,12,145,8,169,0,179,250,0,251,27,254,15,255,213,253,136,252,119,251, +15,250,121,248,94,247,159,247,75,250,77,255,98,4,116,7,201,8,229,8,28,7,244,3,143,0,169,251,202,244,23,240, +107,241,21,247,163,252,225,254,35,253,103,250,228,250,62,255,234,4,96,9,119,10,148,7,100,3,133,0,75,254,252,251, +0,251,55,251,102,250,78,249,178,251,104,1,35,5,236,3,32,0,209,252,25,252,52,0,12,8,92,14,237,15,87,13, +32,7,35,255,187,249,49,248,241,247,122,248,169,250,218,252,103,254,246,1,24,8,173,12,192,11,115,6,217,1,187,0, +215,0,41,0,183,255,37,255,236,252,31,251,54,252,255,253,196,253,192,252,91,253,16,0,39,3,244,3,40,2,106,0, +90,0,62,1,203,1,101,0,186,252,160,249,106,249,5,251,29,253,218,254,37,254,63,251,101,250,175,253,218,2,144,7, +76,9,203,4,28,252,80,247,255,249,146,254,89,255,174,253,169,253,111,0,92,4,199,6,111,5,72,0,60,249,34,243, +25,242,4,248,46,0,26,6,214,12,208,20,166,20,218,8,223,251,128,244,193,238,219,234,237,238,253,249,151,5,199,14, +210,19,120,18,100,12,174,4,141,251,241,242,39,240,104,244,134,251,220,2,176,9,181,12,73,9,202,2,30,254,120,251, +215,249,185,251,246,2,138,11,135,14,7,9,246,254,113,246,116,241,132,239,100,242,29,250,182,1,135,7,125,15,91,23, +34,22,74,10,63,251,163,238,97,231,151,232,236,240,163,250,29,3,203,10,14,16,171,16,37,12,239,1,218,243,52,234, +4,237,58,249,100,4,132,9,164,10,36,9,240,4,205,255,2,251,237,245,96,242,163,244,146,253,163,8,13,15,130,12, +196,3,150,252,202,250,124,251,159,251,183,251,151,253,36,2,223,7,240,10,199,8,153,2,103,251,45,246,185,245,186,250, +1,2,88,7,248,9,80,11,26,10,78,4,81,253,38,250,60,249,24,247,52,246,62,249,177,253,51,2,65,8,150,13, +207,13,232,8,181,1,64,250,229,243,94,239,23,238,232,242,2,253,96,6,84,11,139,12,152,9,177,2,101,252,122,249, +104,247,70,245,246,245,233,249,45,254,180,0,64,1,168,0,194,0,225,1,166,1,246,254,44,252,58,251,145,251,55,253, +90,1,116,6,65,8,91,5,121,1,215,255,36,254,169,248,224,241,105,240,53,246,32,0,8,12,33,23,179,26,69,20, +3,11,138,4,218,252,220,240,4,231,246,230,210,240,97,0,208,16,53,27,123,25,207,13,37,1,72,249,239,245,88,246, +162,250,29,1,161,7,205,12,8,14,19,9,206,255,155,246,233,240,229,240,128,246,145,254,169,5,234,10,242,14,199,16, +17,13,70,3,243,249,47,247,122,248,54,250,172,254,124,5,60,8,15,5,53,0,14,252,32,250,246,252,211,1,173,2, +79,0,119,0,201,4,156,10,48,14,64,11,209,0,204,244,118,239,203,243,53,253,196,3,126,3,225,255,58,255,40,3, +200,6,163,4,153,253,174,247,237,246,83,251,41,3,215,9,7,9,190,0,234,248,226,246,249,247,54,248,194,247,249,248, +90,253,114,3,213,6,130,4,111,254,202,248,103,246,84,248,166,252,218,254,174,253,90,253,131,0,244,3,94,3,208,253, +6,246,17,241,17,242,35,247,97,253,141,3,74,7,31,7,253,5,79,5,236,1,143,252,135,250,158,251,99,251,145,250, +105,252,238,255,125,2,225,2,129,0,33,253,208,252,147,0,90,5,203,8,74,10,153,8,149,3,32,255,2,255,125,0, +254,253,223,248,225,247,209,252,154,3,197,8,146,10,169,8,15,6,212,5,160,6,163,5,195,1,103,251,76,246,116,247, +161,253,225,2,114,5,72,7,219,8,117,10,108,12,18,12,106,6,36,252,128,240,201,232,10,235,247,246,115,4,17,13, +9,17,39,18,163,16,118,12,67,5,234,250,66,240,128,234,136,236,83,244,31,253,131,3,67,7,217,9,217,11,147,11, +61,6,244,251,58,242,132,239,138,244,24,253,86,5,77,10,71,9,146,3,141,254,136,252,17,251,224,248,41,247,178,246, +190,248,181,254,118,6,39,12,49,14,90,11,237,2,137,249,0,246,206,248,236,252,191,254,126,254,202,254,104,1,88,4, +201,4,207,2,108,255,54,252,1,253,165,2,177,7,148,8,146,7,114,5,115,0,167,250,20,248,174,248,54,250,137,252, +203,0,193,6,218,11,168,12,234,7,0,0,93,249,66,247,45,249,178,252,236,0,18,5,21,7,186,7,113,9,11,9, +135,1,164,246,172,240,24,241,118,244,131,249,56,0,186,7,227,14,191,18,117,15,172,5,243,250,145,243,18,240,81,240, +192,244,55,252,155,3,199,8,89,11,40,10,208,3,187,250,43,244,180,242,96,245,203,250,78,1,75,6,85,8,32,8, +129,6,215,3,150,0,77,252,84,246,84,241,82,242,13,250,251,2,93,7,116,6,151,3,100,2,105,3,250,3,23,2, +10,255,100,253,52,254,78,0,90,1,198,0,94,0,140,0,20,0,219,255,252,0,105,1,41,0,192,255,8,1,141,2, +26,4,194,4,209,2,176,0,195,1,231,3,206,3,19,2,35,255,175,250,228,247,3,250,79,255,37,4,117,6,73,5, +175,1,202,254,55,254,151,254,34,254,68,253,56,254,96,1,142,3,127,2,219,255,25,253,201,249,86,247,15,248,120,250, +184,251,237,252,197,0,219,5,196,7,252,4,127,0,93,253,167,251,134,250,53,250,27,251,255,252,37,255,100,0,4,0, +32,254,74,251,120,249,170,251,187,1,38,7,78,8,174,5,118,1,201,253,164,252,6,254,51,255,154,253,1,250,109,248, +15,252,198,2,228,6,28,6,41,3,124,0,14,254,205,252,175,254,148,2,246,4,192,4,103,3,186,1,56,0,130,255, +103,254,142,251,238,248,26,249,239,251,171,0,50,6,29,9,144,7,70,4,160,1,47,255,145,253,226,253,143,254,75,254, +134,254,173,255,156,255,160,253,52,252,61,253,204,254,63,254,74,253,70,255,240,2,172,4,86,4,39,3,143,0,55,253, +155,251,236,251,88,252,197,252,100,254,126,0,157,0,80,254,178,252,182,253,18,255,134,255,109,1,80,4,65,4,191,1, +240,0,215,1,233,1,111,1,12,1,149,255,126,253,126,252,66,252,71,252,201,253,110,0,45,2,51,4,9,9,199,13, +231,12,228,6,130,0,180,251,166,248,218,248,61,252,65,0,15,3,238,3,108,3,106,4,114,7,202,7,109,3,45,255, +113,254,208,255,53,2,55,4,138,2,147,254,159,254,17,3,22,5,203,1,29,253,54,250,75,249,111,251,90,1,97,7, +85,8,41,4,176,255,49,254,117,254,9,254,203,252,117,252,232,253,55,0,209,1,20,1,89,253,78,249,202,248,95,251, +4,254,177,0,61,4,202,6,139,7,73,7,126,3,35,250,234,240,71,239,246,244,228,252,138,3,251,6,248,6,232,5, +65,5,221,2,46,253,27,247,194,244,14,247,142,252,116,3,162,8,211,8,192,4,73,0,20,253,117,250,251,248,192,249, +87,252,171,255,126,2,50,3,168,1,253,255,19,0,183,1,10,3,140,2,26,1,103,0,196,255,175,253,60,251,125,250, +150,251,203,253,201,0,240,3,16,6,22,6,207,3,113,0,149,253,234,251,165,251,13,253,64,0,248,4,35,9,9,9, +225,3,150,253,94,249,77,247,238,247,174,251,216,255,46,2,187,4,126,9,22,14,163,14,11,10,24,2,66,249,53,242, +132,240,202,245,245,253,154,3,232,6,43,10,29,11,49,7,107,1,186,253,47,252,43,252,254,253,73,0,117,1,91,2, +92,3,89,2,8,255,127,252,51,252,129,252,25,253,120,255,224,2,171,4,44,4,200,2,246,0,207,253,42,250,214,249, +172,254,25,4,184,4,172,1,176,254,253,251,199,249,114,250,35,253,43,254,242,253,6,0,160,4,96,8,51,8,146,3, +53,253,28,249,18,249,250,251,250,254,24,255,100,252,169,250,153,252,155,0,175,3,172,4,13,4,119,2,8,0,108,253, +197,252,122,255,70,3,153,3,253,254,49,250,154,250,5,254,102,254,186,252,52,254,138,1,189,2,106,3,244,4,215,3, +208,255,178,253,148,254,42,255,104,254,214,253,141,254,151,0,141,2,140,2,151,0,249,253,205,251,107,251,101,253,76,0, +14,3,17,6,90,8,194,7,172,4,144,1,254,254,215,251,48,249,31,250,171,254,158,2,37,3,24,2,241,1,82,2, +63,2,15,2,169,1,79,0,34,255,105,0,85,3,27,4,61,1,81,253,249,250,152,250,1,252,127,255,160,4,238,8, +37,9,181,4,230,253,43,246,11,239,193,237,187,245,90,1,119,8,164,10,136,12,50,15,18,14,137,4,133,245,56,234, +225,230,155,232,44,239,109,252,224,10,123,18,48,19,107,16,66,9,209,252,179,239,243,232,251,235,12,246,255,1,98,13, +231,21,163,21,236,9,3,250,117,239,57,236,181,237,22,244,20,0,254,12,96,20,17,22,236,20,143,14,216,0,17,243, +196,237,226,238,190,240,64,245,155,0,92,15,209,24,222,23,39,14,210,0,60,245,69,240,75,244,232,253,96,6,113,10, +19,11,246,8,4,4,242,253,134,249,38,248,16,249,154,250,214,252,162,1,53,8,222,11,26,10,108,5,99,0,172,251, +65,249,142,250,28,253,20,255,54,2,178,5,193,4,196,254,164,248,188,245,68,246,255,249,169,255,45,5,97,9,228,10, +166,8,151,4,241,0,242,252,85,248,32,245,55,244,130,245,212,249,107,0,66,6,1,9,168,7,255,2,88,254,133,251, +250,248,185,247,107,251,100,2,200,6,19,7,40,5,213,0,63,250,38,245,33,245,35,249,71,253,51,0,245,3,52,8, +191,8,217,4,219,0,38,254,56,250,138,246,32,248,81,255,187,6,201,9,130,8,109,5,228,1,223,253,107,250,220,248, +174,248,239,249,154,254,247,5,66,11,127,11,239,7,7,3,8,255,146,253,210,253,143,253,104,252,223,251,102,253,70,1, +90,5,164,5,231,0,78,251,248,249,34,253,221,0,134,2,1,3,149,3,147,3,95,2,196,0,174,254,24,251,205,247, +199,248,237,253,48,2,97,2,59,0,32,254,200,252,30,253,202,255,6,3,38,4,211,2,232,0,213,255,66,255,54,254, +121,252,114,250,50,249,143,250,182,254,123,2,45,3,231,1,193,0,31,0,184,255,254,254,155,253,94,253,185,0,215,6, +134,11,104,10,219,2,130,249,18,243,147,239,67,239,217,244,69,254,37,6,54,13,108,21,225,24,103,18,216,5,125,248, +16,237,1,232,36,236,98,246,146,2,151,13,52,19,118,17,169,10,199,0,168,245,160,238,108,240,187,249,146,5,130,15, +164,20,178,19,244,12,73,2,73,247,53,239,59,235,210,236,138,246,154,6,142,20,168,24,207,18,218,7,60,252,113,243, +6,240,44,242,193,248,186,2,94,13,92,20,23,21,5,15,183,2,234,243,196,232,207,228,178,232,180,244,211,5,52,20, +231,25,165,23,126,16,160,5,170,248,11,238,237,233,124,236,69,243,59,252,114,5,166,12,94,16,59,15,176,7,95,251, +8,240,38,235,127,238,220,247,81,2,177,9,190,12,134,11,12,7,182,1,46,252,93,245,158,239,174,239,72,246,1,0, +179,8,186,12,7,11,164,5,151,254,56,248,67,246,210,248,212,251,142,254,43,3,161,7,82,8,255,5,54,2,95,252, +73,246,188,244,66,249,42,0,105,5,66,8,65,9,122,7,177,2,200,253,90,251,202,250,59,251,53,253,77,0,64,3, +111,5,162,5,189,2,227,254,96,253,7,254,247,254,57,0,239,1,235,2,84,3,67,4,89,4,136,1,68,253,196,250, +29,251,113,253,44,0,153,1,163,1,191,1,106,2,15,3,102,3,169,2,21,0,233,252,14,251,77,251,41,254,149,2, +162,4,129,2,186,255,128,255,180,0,39,1,163,255,227,251,112,248,99,249,23,255,107,5,70,8,117,6,174,1,92,253, +11,252,129,253,143,255,83,0,192,255,22,255,7,255,162,255,15,1,20,2,63,0,64,252,110,250,146,252,207,255,2,2, +244,3,145,5,19,5,68,2,217,254,38,252,27,251,174,252,165,255,165,0,40,255,192,254,246,0,192,2,25,2,154,0, +186,255,137,255,56,0,245,0,65,0,59,255,33,0,9,2,219,2,29,3,164,3,245,2,31,0,70,253,61,253,139,255, +131,0,111,254,77,252,15,253,221,255,84,3,237,6,115,8,91,6,47,3,70,1,44,255,4,252,145,249,143,248,187,248, +41,251,238,255,100,4,192,6,138,7,155,6,53,3,192,254,133,251,226,249,151,249,42,251,251,253,72,0,216,1,23,3, +159,2,143,255,78,252,161,251,2,253,249,253,128,253,47,253,80,255,202,3,120,7,244,6,214,1,81,251,133,247,194,247, +16,250,10,252,20,253,166,254,141,2,30,7,180,7,98,3,183,254,239,252,20,253,229,253,32,255,22,0,55,0,105,255, +240,253,76,253,228,254,125,1,122,2,226,0,66,254,202,253,230,0,143,4,255,4,121,2,57,255,107,252,64,251,65,252, +161,253,108,254,198,0,78,5,25,8,226,5,154,0,227,251,2,249,238,248,220,252,66,2,216,4,93,5,203,6,67,7, +228,3,204,254,61,251,234,249,222,250,45,253,20,255,85,1,13,5,62,7,44,5,109,1,118,255,41,255,28,255,7,255, +189,255,64,2,156,5,13,7,150,5,144,2,175,254,105,250,37,248,210,249,220,253,205,1,154,5,33,9,2,10,128,7, +60,4,114,1,176,253,87,249,179,246,163,246,141,249,58,0,193,8,120,14,42,14,53,8,238,255,114,249,86,246,145,245, +179,246,44,250,68,255,142,4,214,8,163,10,209,8,214,3,174,253,246,248,139,247,87,249,173,252,143,255,249,0,183,1, +205,2,21,3,223,0,25,253,135,250,1,251,29,254,111,1,252,2,235,2,143,1,185,254,43,252,28,252,127,253,61,254, +169,254,162,255,187,0,150,1,0,2,87,1,79,255,112,252,105,250,136,251,105,255,72,2,65,2,174,1,50,2,50,2, +134,0,138,254,159,253,94,253,235,252,182,252,245,253,210,0,23,4,28,6,143,5,99,2,117,254,33,252,53,252,189,253, +36,255,123,255,87,255,24,0,209,1,230,2,26,2,9,0,71,254,167,253,219,253,83,254,200,254,62,255,40,0,255,1, +183,3,211,2,239,254,124,251,31,251,196,251,34,251,98,251,155,254,81,2,174,3,93,3,169,2,170,1,149,0,62,255, +22,253,76,251,134,251,253,252,73,254,193,255,118,1,16,2,27,1,115,255,151,253,78,252,142,253,211,1,4,6,79,7, +79,7,204,7,10,5,108,251,14,240,178,235,249,239,247,248,102,4,84,16,32,24,67,24,208,16,112,3,24,244,10,234, +121,234,157,243,71,255,216,7,44,11,40,11,28,10,12,7,29,1,146,251,183,249,171,250,130,252,15,255,109,2,50,6, +119,9,49,10,149,6,73,255,88,247,53,243,3,246,101,253,56,3,242,4,249,4,159,4,83,2,57,254,25,252,204,254, +215,3,42,6,11,4,121,255,184,250,122,247,239,246,170,248,140,251,220,254,94,1,101,2,61,3,102,4,145,4,22,4, +208,3,81,1,235,250,167,244,92,243,223,246,144,252,156,2,166,6,36,6,245,1,118,254,48,254,12,255,210,254,31,255, +163,1,222,3,214,2,54,0,171,255,35,1,92,1,33,255,171,252,15,252,43,253,27,255,77,1,47,3,73,4,191,4, +26,5,34,5,177,3,26,1,253,255,49,1,202,1,231,255,65,253,202,251,20,252,241,253,182,255,25,0,173,0,119,2, +176,3,21,4,87,5,82,6,167,4,129,1,58,255,84,253,63,250,147,246,214,244,250,246,122,252,246,2,178,7,145,8, +0,6,164,3,109,4,214,6,136,6,21,1,5,249,202,242,189,238,11,236,223,239,180,253,108,12,200,17,77,17,159,17, +29,15,95,5,217,248,184,239,93,236,167,239,229,247,76,0,21,6,177,9,47,11,49,10,237,6,212,0,171,248,32,243, +220,243,45,249,203,0,52,10,132,17,204,16,77,8,184,253,236,244,140,239,54,239,29,244,239,252,71,7,104,14,147,14, +158,9,210,2,234,250,173,244,223,244,71,250,251,254,179,1,146,5,208,10,11,14,44,12,40,4,45,248,37,238,187,235, +65,241,170,250,84,4,9,12,214,15,142,15,183,12,10,7,180,253,116,244,74,241,103,245,230,252,114,3,164,6,66,6, +152,3,94,0,150,254,255,254,62,255,99,253,183,251,162,252,21,255,56,2,74,6,205,8,228,6,103,2,198,254,24,252, +75,249,67,247,113,247,18,250,61,254,50,2,99,4,181,4,248,3,215,2,5,2,227,1,109,1,117,255,201,252,31,251, +167,250,131,250,164,250,203,251,77,254,84,1,162,3,240,4,66,5,99,3,230,254,200,250,135,250,154,253,112,0,200,0, +100,255,142,254,142,255,78,1,138,1,68,255,81,252,188,251,183,253,89,255,219,255,142,1,117,4,205,5,4,5,156,3, +20,2,124,0,150,254,63,251,187,247,46,248,57,253,147,2,220,5,60,8,99,9,101,7,206,2,78,254,125,251,156,250, +224,251,47,255,145,3,149,7,192,9,246,8,15,5,249,254,164,248,199,244,70,245,150,249,4,0,100,7,210,13,88,16, +242,13,129,8,217,1,139,250,252,243,68,241,113,244,135,251,21,2,255,5,46,8,255,8,168,7,96,4,13,0,146,251, +245,248,49,250,40,254,129,1,147,2,132,2,149,2,229,1,28,255,57,251,141,248,25,248,7,250,84,254,82,3,63,6, +63,6,111,4,144,1,245,253,18,251,104,250,14,251,0,251,208,250,74,252,101,254,115,255,231,0,169,3,232,4,219,2, +149,255,68,253,88,252,152,252,37,253,127,253,117,254,248,255,210,0,31,1,105,1,9,1,123,0,43,1,214,1,28,0, +56,253,103,252,32,254,76,0,175,1,183,2,204,3,104,4,1,4,203,2,15,1,136,254,125,251,181,249,184,250,144,253, +159,0,86,4,212,8,54,11,71,9,175,4,164,255,238,250,21,248,130,248,64,251,227,254,247,2,52,6,19,7,221,5, +176,3,1,1,61,254,74,252,248,251,78,253,104,255,115,1,58,3,43,4,165,3,83,2,242,0,214,254,225,251,14,250, +51,251,108,254,27,1,15,2,98,2,190,2,20,2,30,0,58,254,63,253,26,253,238,253,133,255,240,0,103,1,166,0, +31,255,195,253,192,252,203,251,135,251,158,252,119,254,66,0,192,1,199,2,48,3,95,2,206,255,221,252,58,251,60,250, +152,249,88,251,82,255,58,2,13,3,46,3,51,2,126,255,253,252,101,252,44,253,74,254,237,254,198,254,60,255,167,1, +86,4,154,4,146,2,1,0,159,253,198,251,35,251,151,251,201,252,78,255,41,3,0,7,209,9,193,10,70,8,160,2, +146,252,222,247,208,244,254,244,203,249,65,1,151,7,144,10,87,10,124,8,40,6,46,3,49,255,211,250,237,247,238,248, +8,254,185,3,166,6,192,6,228,4,65,1,194,252,210,248,211,246,201,248,51,255,182,6,70,11,237,11,208,9,16,6, +106,1,57,252,241,246,188,242,101,241,203,244,225,252,200,5,213,10,159,11,195,10,205,8,28,4,235,252,78,246,62,243, +77,244,200,248,253,255,202,7,70,12,59,11,16,6,48,255,75,248,87,243,47,242,238,244,89,250,251,0,25,7,46,11, +164,12,248,10,130,5,188,253,74,247,53,244,50,244,91,247,20,253,246,1,170,3,143,3,127,2,171,255,241,252,154,253, +140,0,216,1,236,0,127,0,195,1,60,3,198,3,99,3,11,1,163,251,185,245,204,243,230,246,158,252,119,2,175,6, +151,8,195,8,49,7,180,3,10,0,187,253,72,252,186,251,119,252,30,253,89,253,219,254,243,0,129,1,174,1,239,2, +96,3,243,1,120,0,250,255,83,0,78,1,103,1,225,255,68,255,209,0,162,1,145,0,83,0,41,1,47,0,167,253, +205,252,73,254,29,0,29,1,138,1,104,2,116,4,39,6,230,4,226,0,243,252,68,251,15,252,139,253,115,253,142,252, +222,253,95,1,21,4,173,4,223,3,200,2,186,2,117,3,150,2,83,255,108,251,21,248,89,246,52,248,119,253,249,2, +131,6,8,8,136,7,20,5,198,1,198,254,41,252,229,249,38,249,223,250,184,253,252,255,218,1,86,3,167,3,139,3, +108,3,22,1,86,252,3,249,246,248,201,250,170,254,253,4,114,10,31,11,117,6,200,254,39,248,211,245,7,247,179,249, +125,254,112,5,173,10,245,10,40,7,133,1,230,251,91,248,151,247,139,248,96,251,36,1,55,8,75,13,169,14,87,11, +189,2,185,247,181,239,237,237,175,242,120,252,250,6,79,13,19,15,225,14,88,12,15,5,150,250,24,242,115,238,117,239, +184,245,210,0,75,11,136,15,248,13,224,8,207,0,230,248,66,245,190,244,116,245,6,250,108,2,208,8,26,10,3,8, +126,3,94,253,71,248,142,245,26,245,194,247,159,253,252,4,127,11,137,13,62,8,124,254,156,246,100,243,3,244,197,247, +167,253,178,3,134,8,223,10,237,8,215,2,187,251,146,246,85,244,148,245,174,250,223,1,228,7,189,10,230,9,94,5, +231,254,7,250,5,248,183,246,177,245,53,248,55,255,131,6,137,10,89,11,213,8,222,2,177,252,56,249,69,247,114,246, +66,249,74,255,12,5,59,9,52,11,197,8,167,2,247,252,177,249,131,248,218,249,129,253,165,1,21,5,202,7,111,9, +192,8,133,4,120,254,65,251,143,252,238,254,238,255,226,0,99,2,4,3,128,2,241,1,177,1,65,1,120,0,229,255, +60,0,232,1,214,4,135,7,77,7,146,3,23,255,59,252,12,251,96,251,253,252,228,254,244,0,90,3,86,4,203,2, +21,1,81,1,40,2,194,1,92,0,38,255,25,255,61,0,40,1,173,0,24,255,145,252,62,249,150,247,77,250,44,0, +190,5,255,8,245,8,126,5,168,0,133,252,113,249,114,248,103,250,31,253,220,254,233,0,246,2,255,2,223,1,2,0, +20,251,216,245,176,247,76,0,173,7,6,10,32,9,75,6,248,1,158,252,106,246,103,241,252,240,155,245,214,252,133,4, +188,10,150,13,137,12,186,7,171,255,65,247,32,243,44,245,174,250,201,255,56,3,140,5,79,6,119,4,182,0,212,252, +199,249,74,248,161,249,34,254,58,4,152,9,142,12,5,12,29,7,142,254,59,246,160,242,100,244,36,249,118,255,110,6, +8,11,210,10,145,7,49,4,166,0,121,252,167,249,158,249,172,251,181,255,69,5,227,8,181,7,105,3,227,254,53,251, +62,249,190,249,197,251,167,253,199,254,50,0,171,3,70,8,225,9,142,6,209,0,122,251,30,248,233,247,141,249,77,250, +174,250,222,252,226,255,158,1,100,2,7,3,7,3,31,2,222,0,249,255,219,255,228,255,154,254,222,251,174,249,120,249, +67,250,88,251,57,254,212,2,90,5,32,4,198,2,77,3,179,2,152,255,13,253,249,252,10,254,39,255,96,0,118,1, +246,1,187,1,207,0,55,255,239,252,247,250,202,251,73,0,42,5,6,7,190,6,50,6,119,4,49,1,157,254,42,253, +18,251,111,249,39,251,216,255,235,4,41,8,96,7,215,2,145,254,112,252,169,250,229,249,111,252,117,0,47,3,140,5, +68,8,67,9,193,6,126,0,37,248,45,242,226,241,221,245,141,251,155,1,250,5,166,7,191,8,232,9,222,7,76,1, +242,249,179,245,251,244,190,246,97,250,49,255,2,4,67,7,94,7,84,4,129,0,33,254,31,253,114,252,235,251,74,252, +235,254,212,3,155,7,243,6,116,3,104,0,137,253,182,249,29,247,151,248,170,253,76,3,186,6,234,6,132,4,1,1, +254,253,195,252,154,253,138,255,247,0,11,1,169,0,13,1,153,1,135,0,59,253,72,249,18,248,221,251,212,1,186,4, +72,4,37,4,119,4,155,2,86,255,176,253,133,253,99,252,140,250,19,251,233,254,247,2,107,4,147,3,114,1,175,254, +18,253,187,253,227,254,6,255,151,255,243,1,188,4,235,5,43,5,19,3,206,255,201,251,237,248,56,249,77,252,51,0, +125,3,129,5,22,6,235,5,161,5,154,4,7,2,147,254,216,251,162,250,198,250,131,252,17,0,8,4,189,6,38,8, +225,7,89,4,86,254,110,249,230,247,154,249,183,253,76,2,234,4,119,5,157,5,157,5,56,4,152,0,253,250,104,245, +205,243,119,248,8,0,254,4,210,6,80,8,87,8,38,4,66,254,194,250,9,249,28,248,7,250,115,254,221,1,58,3, +91,3,197,1,31,255,212,253,64,254,9,255,246,255,246,0,117,1,203,1,5,2,212,0,71,254,24,252,107,250,9,249, +76,250,68,255,64,4,254,5,157,5,177,4,74,3,200,1,102,255,147,250,242,245,82,246,9,251,216,255,158,3,181,6, +2,8,77,7,59,5,105,1,109,252,126,248,199,246,195,247,16,252,245,1,14,6,132,7,180,7,196,6,252,3,47,0, +58,253,135,251,59,250,5,250,192,252,132,1,61,5,24,7,170,7,203,5,84,1,142,253,238,252,10,254,228,254,177,255, +67,1,227,2,7,3,166,1,123,0,154,0,126,1,28,2,67,1,95,254,121,251,225,251,189,255,150,3,121,4,144,2, +107,0,143,0,142,2,37,3,231,0,110,254,209,253,203,253,135,253,24,254,216,254,85,254,90,254,190,0,235,2,114,2, +130,1,75,2,30,3,206,1,237,254,154,252,32,252,184,252,209,252,107,252,179,252,245,253,187,255,185,1,80,3,57,3, +219,0,175,253,63,252,75,253,128,255,209,1,124,3,156,2,204,253,149,246,67,241,3,242,73,248,228,254,154,3,202,8, +83,13,175,13,111,12,158,11,34,4,45,243,114,228,206,225,232,231,77,242,10,1,253,15,158,24,121,26,118,23,72,14, +225,254,240,237,247,225,184,224,203,235,112,253,225,13,134,26,52,34,45,32,23,18,241,252,220,231,121,216,130,212,49,223, +74,245,71,15,62,37,5,49,67,48,132,35,95,12,142,240,106,218,24,209,69,213,255,229,131,255,241,22,227,33,39,32, +51,23,241,9,12,251,168,239,32,234,251,232,188,237,249,251,208,15,129,30,180,32,251,20,248,253,201,229,103,218,157,223, +49,237,164,251,165,8,0,18,207,21,132,20,126,14,59,4,82,249,159,242,38,242,80,246,195,251,51,0,156,3,167,5, +65,4,241,254,150,248,187,244,178,245,34,252,255,5,148,15,205,21,175,21,75,13,49,0,141,245,190,239,129,236,125,236, +58,242,16,252,111,6,76,15,94,19,136,15,154,6,232,254,215,251,137,253,177,1,127,3,32,0,79,250,222,246,109,248, +103,253,184,255,110,251,144,246,224,250,232,7,181,18,49,19,227,11,246,3,67,254,6,249,173,243,198,240,145,242,34,248, +24,254,151,2,2,7,1,11,124,10,231,4,77,255,62,252,10,251,254,252,71,1,112,2,124,255,99,253,146,253,4,254, +59,255,121,1,0,3,0,4,163,4,124,2,173,253,172,249,2,248,153,249,21,0,237,7,25,10,70,6,99,2,153,1, +84,2,33,1,169,251,33,245,33,244,92,249,246,255,193,5,237,9,107,9,217,4,41,1,223,254,68,251,92,248,68,249, +102,252,246,255,93,4,5,8,246,7,171,3,15,253,231,247,253,247,64,252,124,255,175,255,233,255,183,2,137,6,226,7, +177,5,38,2,36,255,244,252,38,252,130,252,8,252,182,250,192,250,83,252,6,255,98,4,25,11,145,13,98,9,53,2, +75,252,2,249,28,248,110,249,137,252,32,255,244,254,53,254,103,0,156,3,253,3,186,2,100,2,228,1,5,0,187,253, +153,251,102,250,252,251,195,255,28,2,251,0,224,253,2,252,8,254,17,3,112,6,98,5,12,2,31,254,228,247,46,240, +208,236,93,241,13,251,239,5,118,16,36,24,37,24,78,14,210,254,190,240,83,232,95,230,146,234,172,243,72,255,15,11, +66,20,132,23,241,19,141,11,200,255,138,242,90,233,176,233,31,244,210,4,90,20,98,26,146,21,53,12,107,2,164,247, +243,237,185,234,133,240,48,253,92,11,199,20,11,23,1,21,27,17,27,10,6,255,65,243,24,237,107,240,153,250,47,5, +144,12,242,16,185,17,216,12,253,2,121,248,47,242,238,242,210,249,175,2,217,9,84,14,122,15,47,12,247,4,108,251, +17,241,102,233,13,233,208,240,150,253,12,12,59,24,209,28,240,22,109,8,110,245,173,226,160,214,232,216,104,235,178,3, +116,19,122,24,249,25,27,24,168,12,91,249,7,232,145,223,183,224,9,233,5,245,11,2,42,14,94,22,187,23,212,16, +37,2,216,240,211,229,161,229,33,238,211,252,249,14,73,28,215,26,167,9,212,242,249,226,242,223,231,231,18,247,97,10, +152,28,82,38,56,35,200,20,32,0,52,235,232,219,84,215,112,223,129,241,101,8,237,30,76,46,249,46,107,31,5,6, +23,235,222,214,201,210,111,226,220,252,241,20,92,36,17,41,233,32,4,14,68,248,250,230,8,222,171,223,222,235,54,255, +231,19,184,34,86,37,190,26,100,8,200,246,92,236,184,233,158,235,33,241,131,251,79,8,163,17,84,19,97,12,110,255, +150,243,61,239,12,242,35,248,207,255,210,7,134,12,136,11,241,6,235,0,58,248,237,237,177,232,71,236,138,244,102,253, +131,6,70,13,209,13,56,9,180,2,153,251,204,245,29,243,6,243,97,246,154,254,215,6,127,8,40,5,226,1,145,254, +60,250,70,247,81,246,227,245,68,248,231,0,225,12,211,20,180,20,231,13,55,4,253,250,186,243,51,239,74,239,27,245, +59,254,63,7,157,14,103,18,229,15,35,8,225,255,18,250,51,247,65,248,92,253,166,3,8,8,191,9,239,8,144,5, +114,0,15,251,89,246,140,243,52,245,78,252,105,5,205,11,104,14,94,14,69,11,111,4,222,251,214,244,31,241,110,241, +82,246,175,254,254,6,225,11,102,12,45,9,153,3,204,253,67,249,83,246,229,245,170,248,3,253,94,1,241,5,97,9, +38,9,94,6,150,3,150,255,16,249,125,243,196,242,93,246,122,251,6,0,43,3,84,5,238,6,10,7,188,4,197,0, +144,252,69,249,40,248,158,249,221,251,4,253,9,254,135,0,138,2,247,0,108,253,85,252,157,253,160,253,250,252,113,255, +246,2,160,1,117,253,111,254,168,3,29,4,200,254,151,251,27,253,135,254,187,253,225,252,34,253,239,253,232,254,210,0, +6,5,54,10,72,12,105,10,234,7,26,5,201,254,229,245,155,239,25,238,60,240,65,247,140,5,15,23,242,33,106,33, +29,25,192,11,153,248,31,229,236,219,1,223,214,231,213,244,115,8,255,28,108,39,11,36,234,22,3,5,162,243,160,231, +204,225,39,226,225,235,151,254,79,17,52,27,213,26,77,18,177,4,88,247,90,238,8,234,82,235,99,244,214,2,188,15, +220,21,32,20,97,12,171,2,242,250,152,246,238,245,109,249,224,254,167,1,248,0,250,0,83,3,156,4,8,3,22,1, +236,0,161,2,245,5,150,9,217,10,252,7,218,0,74,247,58,240,60,240,96,246,100,254,12,6,137,12,23,16,34,15, +98,9,177,255,191,244,161,236,113,234,17,239,121,249,37,7,95,20,24,28,30,25,130,10,217,245,2,227,102,216,15,219, +56,235,156,0,95,17,174,26,77,29,222,24,23,15,73,2,224,240,220,221,148,214,25,226,156,245,208,4,197,15,12,25, +45,29,192,23,186,7,123,241,133,224,42,223,192,235,91,253,182,14,80,29,151,35,16,27,130,3,138,230,80,211,45,212, +58,231,69,1,97,23,252,36,48,41,77,34,62,16,187,248,4,228,153,215,128,214,208,225,82,246,81,13,179,32,244,43, +108,42,123,24,94,249,178,218,176,204,5,213,164,236,46,8,198,29,157,39,80,38,53,29,147,12,131,245,147,223,229,211, +190,214,108,231,252,255,82,22,154,35,70,39,123,33,211,18,6,1,17,243,224,234,5,232,51,235,3,244,78,0,186,12, +191,19,159,17,209,9,47,2,71,252,144,248,58,249,169,253,30,2,154,4,20,5,145,3,7,1,144,254,232,251,150,249, +98,249,39,251,18,253,208,254,251,0,215,2,239,2,180,0,184,252,92,248,232,245,12,248,22,255,60,6,92,7,170,2, +5,254,86,252,74,251,32,249,125,246,201,243,154,242,236,246,84,1,201,11,144,16,168,15,63,11,164,4,138,253,160,247, +215,243,128,243,220,246,224,251,192,1,26,9,187,14,123,13,60,6,97,255,44,253,241,254,230,1,80,4,124,6,155,8, +142,9,226,8,165,6,209,1,53,251,209,246,169,246,96,249,194,254,254,6,240,14,233,18,61,18,180,13,111,6,19,254, +207,245,181,239,5,240,108,248,249,3,50,12,57,15,78,14,65,10,158,3,147,251,135,243,253,237,2,239,11,248,25,4, +60,12,149,14,4,13,105,8,142,1,45,250,234,242,253,236,252,235,62,241,48,250,162,4,109,13,197,14,109,8,59,1, +17,251,13,243,204,237,19,242,73,251,45,1,70,4,37,7,18,7,38,2,186,250,246,243,163,240,96,242,176,248,71,2, +162,11,147,14,190,9,148,2,166,251,116,243,64,237,24,239,179,249,135,9,204,24,237,30,33,23,68,5,124,239,75,219, +67,209,215,215,196,235,222,5,195,33,167,56,70,63,107,48,244,18,233,241,100,213,153,196,115,197,196,214,163,241,46,16, +237,43,195,58,161,54,78,35,92,8,243,236,145,217,164,212,83,222,106,243,87,14,113,36,31,43,4,33,167,13,187,249, +103,234,60,226,138,227,172,238,16,255,188,14,249,26,67,33,181,29,97,17,250,2,228,246,62,238,160,235,228,240,26,251, +6,5,113,10,154,9,242,4,204,0,115,254,82,253,126,254,138,2,72,7,88,10,147,10,1,7,185,255,10,247,156,240, +19,240,118,246,210,255,122,6,170,8,10,7,2,0,146,243,25,234,171,237,152,251,231,6,127,10,190,12,222,15,97,13, +11,3,8,247,38,238,42,232,19,229,102,231,85,241,245,0,180,15,214,23,83,24,94,17,190,3,43,245,36,237,24,237, +10,242,232,250,82,7,106,18,66,19,254,5,172,243,3,233,93,231,37,235,103,248,148,14,169,29,70,27,56,17,202,8, +222,253,175,239,182,231,206,234,64,244,197,254,163,7,65,13,204,15,176,14,128,6,157,247,26,235,16,234,2,244,253,2, +137,18,56,29,125,28,226,16,155,1,86,242,70,228,81,222,16,230,58,245,116,2,71,13,137,23,63,28,11,22,218,7, +3,250,155,242,6,242,176,244,182,247,168,251,120,1,104,6,143,6,135,2,233,253,61,249,161,243,20,241,217,246,114,2, +216,11,21,15,228,13,214,10,198,6,213,0,91,248,198,239,233,234,203,234,172,238,113,246,244,0,125,11,176,19,172,22, +131,17,58,6,197,251,198,246,79,246,195,247,91,250,156,254,85,3,50,5,146,3,13,2,32,2,19,1,148,254,22,254, +201,0,183,4,58,8,250,9,25,9,45,7,37,6,39,5,158,2,241,254,30,251,213,247,220,246,246,249,225,255,71,5, +209,7,221,5,151,255,125,251,217,0,117,10,124,12,210,7,94,5,234,2,252,249,34,240,232,236,224,237,251,240,2,249, +128,3,171,10,113,13,122,11,13,4,59,252,90,249,9,249,52,248,143,248,22,250,66,250,35,250,144,252,218,0,7,4, +55,4,146,1,255,252,105,246,42,239,157,236,30,242,135,251,177,3,148,10,115,16,142,18,97,15,65,8,186,254,249,243, +144,233,94,226,156,226,255,235,164,250,33,9,25,21,252,28,154,29,13,21,11,6,236,246,18,237,40,234,171,238,214,250, +180,9,236,17,145,15,192,6,77,252,19,244,94,243,214,251,140,7,215,15,204,19,253,20,231,18,72,12,175,2,46,250, +50,245,100,243,54,245,1,252,177,5,59,13,131,15,176,12,251,6,51,2,91,1,241,3,88,7,197,9,156,10,62,9, +192,4,207,253,249,247,178,245,31,245,94,245,231,249,72,3,178,11,7,15,65,14,25,10,235,2,37,252,178,248,84,247, +124,246,41,247,73,250,24,255,195,3,227,5,83,4,93,0,3,251,68,244,89,239,126,241,169,249,225,0,125,4,110,7, +218,9,29,9,253,5,31,2,188,251,151,242,54,235,109,233,72,237,102,245,224,255,74,10,197,17,87,18,148,10,216,255, +15,248,36,243,72,241,207,245,249,253,107,2,34,4,179,8,109,12,180,7,206,252,98,244,109,242,79,245,250,249,172,254, +79,4,142,11,48,17,84,17,62,12,85,4,15,251,176,242,102,239,158,243,75,253,177,8,83,19,56,25,69,20,165,4, +132,244,93,236,149,234,149,236,177,245,130,6,144,23,110,33,101,34,235,26,221,11,37,249,98,233,155,225,203,226,61,235, +81,248,159,6,131,18,130,25,49,26,28,20,61,9,78,253,70,243,151,237,112,238,237,244,117,253,174,5,252,11,125,13, +92,9,127,2,81,251,176,244,206,240,237,241,93,247,194,254,77,6,182,12,126,16,81,15,189,7,135,252,232,242,105,237, +142,236,74,241,245,249,191,1,100,6,180,8,51,8,208,4,30,1,219,253,93,249,133,245,91,246,82,251,121,0,81,3, +94,2,90,253,150,247,141,245,83,249,225,2,160,14,160,20,3,16,52,4,120,246,179,233,155,226,174,229,172,240,14,255, +255,15,133,32,153,40,53,36,144,22,211,3,92,240,103,226,0,221,2,223,62,233,115,252,79,18,245,33,52,40,165,36, +91,22,239,0,30,237,31,225,176,222,37,231,193,249,116,15,94,30,228,32,78,23,26,6,155,244,146,233,7,231,44,235, +156,243,51,253,244,3,255,6,69,9,216,11,211,11,91,7,58,0,102,249,101,245,98,245,63,247,43,247,138,244,168,242, +190,244,46,251,115,3,173,9,166,11,87,10,208,7,163,4,243,255,65,249,23,242,235,237,210,239,121,248,207,5,192,18, +92,24,133,18,121,3,97,241,138,226,35,221,231,229,233,250,168,18,189,35,201,42,98,39,232,24,67,2,190,235,184,220, +10,215,148,218,5,232,41,253,125,18,255,31,52,35,120,30,104,19,82,2,167,240,13,233,198,239,75,253,210,8,12,16, +113,17,178,9,31,250,25,233,234,220,34,220,130,236,199,10,142,41,13,59,234,55,182,33,142,3,88,233,92,214,36,204, +191,209,128,232,211,4,131,27,98,41,105,43,215,30,106,8,167,240,101,222,39,217,27,229,149,251,90,17,34,32,4,36, +39,26,218,6,235,242,162,226,210,215,209,215,100,230,123,254,91,21,92,34,29,34,18,22,160,3,72,242,29,232,225,230, +21,237,111,248,69,5,5,14,227,14,248,8,221,255,29,246,158,237,86,233,25,236,239,245,223,3,213,17,116,27,188,28, +158,20,53,6,80,246,94,233,5,227,158,228,174,236,201,248,15,6,219,16,239,22,177,23,188,17,30,5,26,247,64,238, +15,237,26,243,222,253,200,7,204,12,98,14,18,14,119,9,255,255,43,246,37,240,146,238,224,241,97,251,62,9,220,20, +109,24,139,20,78,13,101,4,172,250,233,243,238,242,103,245,44,248,176,251,199,0,65,5,248,6,93,7,39,9,82,11, +219,9,67,4,232,254,208,251,113,248,136,245,162,248,234,1,85,9,17,10,211,7,224,5,242,1,217,250,49,244,229,241, +44,245,211,252,31,5,73,10,124,12,196,13,192,13,214,10,109,4,147,250,140,239,29,232,169,230,92,234,244,243,195,3, +36,20,237,29,196,31,177,27,37,18,51,3,98,241,59,226,226,219,45,224,174,235,194,250,123,11,243,26,83,37,253,38, +201,28,54,8,245,241,186,226,117,221,250,226,244,242,80,7,14,23,20,30,46,29,239,20,97,5,175,241,76,225,177,219, +191,226,172,242,240,5,241,22,181,32,237,32,43,24,55,9,22,249,19,236,5,227,42,223,182,227,182,239,203,253,0,11, +94,21,156,23,223,15,189,4,55,252,130,245,63,240,255,240,22,250,194,5,149,11,223,8,220,0,61,247,200,238,233,234, +15,238,6,248,85,6,110,19,11,25,184,22,183,15,52,3,2,241,244,225,64,223,124,231,163,244,24,4,154,19,134,30, +253,31,24,21,137,0,40,235,142,220,178,215,140,223,186,244,137,14,160,32,251,37,12,32,242,16,63,252,186,232,52,221, +76,220,4,228,191,241,76,4,28,23,139,32,137,27,15,14,86,0,151,244,26,236,88,235,41,243,101,253,221,4,51,10, +9,14,106,13,162,6,228,252,198,245,235,244,44,249,113,254,163,3,103,10,56,16,6,16,151,10,86,4,78,254,36,249, +91,247,240,247,125,248,245,251,178,4,122,13,222,16,238,14,113,8,227,254,175,247,102,246,224,248,166,253,134,5,55,13, +17,15,243,10,159,4,114,252,89,241,3,232,238,231,132,241,129,254,255,10,8,22,205,27,44,24,125,12,112,253,109,239, +167,230,34,229,61,233,12,241,115,251,20,6,156,14,167,19,103,18,23,9,26,252,169,242,195,239,228,241,239,246,240,253, +162,5,134,10,148,9,85,4,195,253,76,246,202,239,72,238,87,241,89,246,229,255,110,15,7,29,204,31,62,23,52,7, +222,243,28,227,101,218,181,219,161,230,21,249,191,14,61,33,13,41,210,33,41,15,123,249,135,231,8,222,194,223,199,234, +243,250,37,13,67,28,188,33,194,27,250,12,230,248,209,229,197,219,63,222,212,235,10,1,237,22,37,37,230,39,149,31, +86,14,27,250,153,234,65,227,98,228,187,238,69,0,243,17,149,28,56,29,40,21,120,8,174,251,72,242,119,239,73,245, +92,1,95,13,105,20,155,21,79,17,129,7,9,251,254,241,200,239,144,242,83,248,26,1,63,11,163,18,251,19,148,14, +236,4,173,251,171,245,242,242,233,243,154,248,75,254,124,2,30,5,163,5,228,2,61,254,85,250,110,248,145,248,252,249, +45,252,247,255,83,4,241,4,178,0,83,252,205,250,250,249,70,248,178,246,169,245,90,245,100,247,145,252,162,2,91,6, +77,7,176,7,180,7,98,4,88,253,234,246,39,244,2,244,121,245,48,249,217,254,155,4,178,8,71,10,92,9,123,6, +203,2,201,255,202,253,52,252,192,251,133,253,207,0,233,4,81,9,233,10,110,7,156,1,138,251,54,244,83,239,75,243, +10,254,121,8,231,16,232,22,232,21,49,12,69,254,180,241,76,235,116,237,93,244,176,250,142,0,62,7,202,11,178,11, +168,8,240,4,164,0,69,251,17,246,242,243,50,246,64,251,184,1,245,7,126,9,246,3,1,252,53,247,75,246,196,248, +1,255,62,7,246,13,41,16,131,11,106,0,24,244,204,236,0,237,126,243,124,253,165,7,202,14,236,16,98,14,31,9, +98,2,77,251,195,246,98,246,218,247,125,249,101,253,226,4,82,13,50,18,131,15,0,5,92,248,15,240,87,237,43,239, +55,246,187,1,78,13,28,20,113,19,180,11,100,1,69,250,208,247,211,246,206,244,39,243,175,244,176,249,122,255,40,3, +86,4,104,5,113,8,81,11,167,9,91,3,154,252,65,247,153,242,113,240,248,242,2,248,49,253,104,4,26,14,164,20, +118,18,122,8,133,251,214,239,35,233,166,234,72,244,185,1,147,13,37,20,226,19,125,13,54,3,142,247,246,237,97,234, +42,237,141,243,92,253,183,10,183,20,76,19,237,8,127,254,186,247,185,243,185,242,14,245,119,249,185,254,134,3,190,5, +49,4,96,0,96,253,146,252,93,252,233,251,17,253,182,255,20,1,207,1,141,4,6,7,107,5,123,1,245,254,98,254, +247,254,10,0,215,0,229,1,183,3,241,4,89,5,19,6,130,5,154,2,236,1,187,6,117,12,233,13,184,11,9,8, +140,3,176,255,162,253,36,252,63,250,63,250,3,255,186,7,43,16,159,20,186,19,192,13,202,4,121,252,12,247,136,244, +50,245,59,249,72,254,69,1,52,2,120,3,249,5,66,7,58,4,23,254,191,249,208,248,84,248,159,247,146,249,38,254, +181,1,108,2,212,0,185,252,76,246,129,240,212,238,87,241,49,245,136,249,45,1,197,12,91,22,217,22,0,13,103,252, +70,234,176,220,205,215,178,219,145,231,221,250,234,16,7,33,7,37,124,28,147,11,105,249,9,236,244,228,35,228,180,234, +6,247,122,3,23,12,83,16,132,15,102,9,140,0,18,248,63,242,155,242,40,251,141,7,47,17,219,21,87,21,61,14, +12,2,252,245,117,237,184,233,69,237,196,248,170,7,75,20,24,27,181,25,203,16,149,5,244,252,214,247,133,246,89,250, +21,2,65,9,215,12,246,12,168,9,195,2,135,251,152,248,182,249,156,251,216,254,145,5,165,13,49,19,91,20,218,15, +84,6,212,252,166,247,11,246,68,246,231,247,240,249,97,252,252,0,144,6,217,8,191,6,90,3,59,1,80,0,61,255, +145,253,154,252,179,252,216,251,212,249,132,249,71,251,223,251,78,250,208,248,93,248,92,248,65,249,18,252,194,0,185,5, +57,8,41,7,153,4,125,1,78,251,6,242,13,235,67,234,101,238,186,245,9,255,203,6,116,10,219,11,83,12,158,9, +52,3,132,252,43,248,252,245,181,245,176,247,18,252,216,2,68,10,249,13,55,11,58,4,68,252,152,244,83,240,98,244, +207,255,163,11,54,20,252,25,45,26,113,17,126,3,166,246,114,236,195,229,228,230,44,241,83,255,185,11,202,20,14,26, +167,25,26,18,13,5,139,247,190,238,111,236,169,239,70,247,37,1,143,8,44,9,104,3,205,251,107,246,203,244,145,247, +84,255,60,10,130,18,85,18,79,9,221,251,91,238,185,227,33,223,74,227,125,240,183,3,98,22,240,32,53,32,22,22, +56,5,5,241,156,224,232,218,49,224,87,236,202,252,23,15,215,28,228,31,13,25,251,12,128,253,131,236,52,225,253,225, +224,236,139,251,196,9,57,20,137,23,92,19,199,10,72,1,4,249,203,242,183,239,249,241,118,249,233,1,207,7,164,11, +148,13,69,11,27,4,201,251,45,247,255,247,182,251,32,255,68,2,56,6,251,8,4,8,207,4,90,2,115,0,169,253, +62,251,70,251,32,253,59,255,49,2,197,6,156,10,166,10,184,7,13,5,221,2,171,254,232,248,117,245,36,246,158,249, +31,255,200,5,9,10,81,9,235,5,166,3,156,3,44,4,200,2,85,255,98,253,175,253,1,251,201,243,138,239,172,243, +183,251,201,1,62,6,156,11,5,17,103,18,104,12,178,0,52,245,239,237,89,234,240,232,23,234,232,239,33,252,217,11, +216,22,73,23,79,15,255,3,75,248,13,239,164,235,196,238,168,246,168,0,17,8,84,8,123,2,109,251,168,245,198,241, +89,242,76,249,226,3,184,13,98,21,80,26,149,24,151,12,72,250,96,234,233,224,105,221,91,226,76,243,97,12,211,34, +76,45,194,40,72,24,254,2,199,240,241,230,134,230,169,237,190,250,3,12,116,27,58,32,113,23,192,7,219,249,80,240, +163,233,28,232,214,240,48,2,66,19,172,30,150,36,127,34,250,20,168,0,21,239,219,228,0,226,78,231,113,244,199,3, +7,14,178,17,49,18,30,16,139,9,233,0,211,250,161,247,63,247,93,252,7,5,237,9,66,8,84,2,80,249,225,239, +227,235,209,238,13,245,179,253,42,9,188,18,7,21,177,16,60,9,182,0,251,248,194,243,216,240,243,239,88,242,46,248, +242,254,213,3,169,5,207,4,175,2,46,0,88,253,120,251,104,252,42,255,165,1,143,4,70,8,67,9,21,5,17,254, +153,246,39,239,85,234,220,235,148,243,88,254,152,9,255,18,81,24,233,24,91,20,119,9,3,250,26,236,5,229,223,229, +166,237,59,250,225,7,11,19,105,25,136,24,86,15,101,1,242,244,244,237,61,237,78,242,170,251,178,6,65,16,237,20, +22,18,195,8,21,254,46,246,170,240,192,236,27,237,42,244,110,0,90,13,29,20,130,15,25,3,137,247,137,239,179,234, +179,237,251,250,175,11,29,24,106,28,80,20,175,255,72,231,49,212,7,203,118,208,218,229,120,3,215,30,54,49,138,53, +115,41,28,17,185,244,175,219,138,203,161,200,89,213,182,238,60,11,173,33,172,45,81,43,127,24,163,253,131,232,50,222, +115,221,76,232,150,254,218,22,43,38,125,40,91,30,212,10,56,245,17,230,217,224,3,228,95,238,175,255,141,19,71,33, +132,35,95,28,211,16,172,4,23,251,6,246,251,244,125,247,208,253,4,5,216,7,158,5,42,2,13,255,206,251,66,250, +236,251,134,255,61,5,242,13,45,21,93,21,255,15,130,8,208,253,152,240,244,229,71,223,252,219,116,226,5,247,42,14, +223,24,80,24,40,22,192,18,216,8,7,250,64,237,119,231,129,233,225,239,24,245,50,247,136,248,238,250,194,253,82,255, +222,253,44,250,113,249,138,255,188,7,243,9,195,6,224,4,89,3,33,251,236,237,37,229,134,228,189,234,177,247,143,7, +44,19,127,25,143,27,216,20,154,5,178,247,32,240,98,236,69,238,12,248,194,3,124,12,49,20,48,25,235,20,157,7, +206,248,79,238,35,235,69,242,26,3,41,22,75,34,200,35,222,27,25,13,213,251,142,237,255,228,207,227,129,237,201,0, +209,19,16,31,110,35,60,33,132,21,103,3,17,244,29,236,83,234,194,238,255,249,158,7,37,17,158,20,161,18,131,10, +132,254,31,245,60,241,236,240,5,245,14,255,199,9,183,14,61,14,85,10,142,2,111,249,64,243,144,239,122,237,177,240, +205,249,23,2,53,5,217,5,186,5,101,2,154,251,98,245,11,243,150,244,108,248,168,252,101,255,236,255,86,255,166,254, +16,253,193,249,249,245,193,243,51,244,109,247,21,252,78,0,68,4,11,8,178,8,73,5,134,1,61,254,204,248,39,244, +156,245,95,250,41,253,111,255,55,3,39,6,139,7,210,8,3,9,142,7,87,6,58,5,103,2,8,255,169,253,128,254, +164,0,157,3,2,6,194,5,202,3,90,4,42,8,129,9,103,5,23,1,123,0,221,0,57,1,80,4,175,8,248,9, +189,8,4,8,106,6,212,0,179,248,21,243,233,242,232,246,137,252,124,2,95,8,178,13,120,16,94,13,37,4,120,249, +65,241,98,236,94,237,171,246,142,4,187,16,74,24,22,24,130,11,193,244,166,222,200,210,193,211,237,224,143,248,215,20, +21,44,89,54,101,48,20,27,22,253,206,225,98,208,246,200,224,204,203,222,227,249,225,20,79,42,109,52,219,43,32,19, +33,247,157,225,91,215,40,221,177,240,219,5,65,20,40,28,245,28,58,20,105,4,107,243,80,231,109,229,31,237,214,247, +250,2,181,15,115,25,137,26,179,21,17,15,67,5,34,249,86,240,180,237,170,240,180,248,221,2,196,9,244,10,243,7, +173,3,208,0,34,0,194,0,51,2,133,3,63,3,131,2,189,3,42,6,167,7,213,7,118,5,199,253,133,241,109,230, +208,226,134,233,180,248,94,10,84,23,40,28,20,27,173,22,5,13,210,252,175,235,206,224,172,221,141,224,91,232,185,243, +12,1,195,14,0,25,169,26,226,18,52,6,169,249,214,238,36,230,123,227,202,235,170,252,62,12,135,18,199,14,245,5, +126,254,243,249,68,244,237,236,28,234,35,239,255,248,47,5,106,18,93,28,138,30,40,24,122,10,96,248,197,231,161,222, +84,223,231,232,214,247,215,6,17,18,141,24,201,25,60,21,186,12,81,3,84,250,34,243,56,241,243,245,17,253,181,1, +59,4,53,7,232,8,255,4,246,252,178,248,211,251,77,1,23,5,79,9,13,14,136,14,109,9,168,2,129,252,90,247, +236,245,237,249,155,255,81,2,169,2,217,3,252,5,118,6,47,4,239,0,96,255,85,0,250,1,218,2,37,4,24,6, +185,5,223,1,68,253,91,249,102,245,196,242,225,243,158,248,36,255,108,5,230,9,194,12,20,14,78,11,175,2,240,246, +240,236,131,232,253,234,95,242,110,251,170,3,63,8,9,8,179,5,148,2,22,253,179,247,119,247,254,250,95,253,226,253, +90,253,187,251,191,250,19,251,165,250,178,250,129,254,156,3,247,5,236,6,16,7,230,2,173,251,131,247,13,247,241,246, +250,248,146,0,92,10,189,15,64,14,179,7,181,255,8,250,126,248,130,251,126,2,195,8,62,8,72,2,76,253,39,250, +128,246,79,245,93,250,191,3,28,14,253,22,233,25,58,20,63,9,182,252,112,239,95,228,51,225,109,232,123,247,48,9, +133,23,56,30,47,29,59,22,5,10,216,249,148,234,248,226,29,231,61,245,70,6,217,18,235,23,140,21,194,12,24,1, +99,247,63,241,241,238,64,243,151,254,246,10,107,18,77,20,5,18,28,12,228,2,67,248,64,241,13,242,244,247,158,253, +141,2,40,7,241,8,77,8,90,8,6,8,8,5,134,1,129,255,169,253,190,251,195,250,245,249,230,248,18,249,52,251, +165,254,199,2,142,6,48,8,110,6,143,1,191,251,253,247,114,247,179,248,32,250,137,251,79,253,77,255,234,0,66,1, +150,255,174,252,220,250,11,251,236,251,89,253,148,0,108,4,24,6,154,5,101,4,188,1,182,252,85,247,188,244,247,245, +223,249,69,255,150,5,108,10,41,10,132,5,155,1,100,0,212,255,113,0,233,3,184,6,93,4,228,254,106,250,135,246, +38,243,161,244,51,252,206,3,238,6,36,8,161,10,98,13,20,14,79,11,203,4,54,252,250,243,127,237,145,234,86,237, +100,245,236,255,210,9,128,15,78,14,41,8,241,1,136,253,64,249,54,245,225,244,138,249,4,255,165,0,251,253,27,249, +8,245,127,244,64,246,93,247,136,250,133,3,206,13,185,18,225,17,3,11,205,251,252,232,50,220,33,217,186,223,169,241, +202,11,175,34,110,44,225,39,230,24,232,3,81,238,149,222,208,216,86,221,96,235,255,0,137,23,243,37,233,39,128,30, +137,12,77,247,253,230,239,225,244,232,85,248,44,10,229,24,243,32,31,32,148,21,125,4,194,243,10,233,64,230,196,235, +87,248,149,6,109,16,47,21,141,22,16,19,117,10,137,1,27,251,90,245,213,241,249,244,125,252,163,1,229,2,47,2, +117,255,15,252,157,251,219,253,139,255,220,0,251,2,253,3,0,4,153,6,118,10,84,9,58,1,191,244,198,230,194,221, +146,225,173,240,208,1,5,16,126,26,63,30,22,25,164,12,216,251,50,236,125,229,101,233,113,241,126,248,178,254,248,3, +89,6,141,5,8,3,236,255,165,253,66,253,128,252,9,249,134,247,83,254,33,9,118,13,113,9,36,2,152,249,196,241, +6,240,32,245,108,251,193,255,173,2,97,3,230,1,245,1,213,5,220,10,147,13,2,13,15,9,69,2,148,251,189,247, +223,245,245,244,43,247,25,253,246,3,13,11,153,18,204,22,12,21,168,16,173,11,45,4,27,251,31,244,194,240,126,242, +178,250,242,5,66,15,44,21,233,21,222,14,171,3,203,251,213,248,204,247,177,248,230,252,84,2,22,6,128,8,141,10, +251,9,206,3,76,250,247,243,46,243,64,244,132,245,170,249,21,0,69,4,174,5,219,6,155,6,198,2,43,253,187,247, +89,242,206,238,224,239,29,245,20,252,77,2,0,5,101,3,243,255,219,252,64,250,46,248,34,247,144,247,127,249,94,252, +200,0,244,7,172,14,214,14,133,7,230,251,180,237,117,225,164,223,251,233,233,249,109,11,250,28,199,39,40,37,233,22, +5,3,201,238,224,224,94,222,79,229,64,241,145,0,72,16,28,27,175,31,234,30,159,22,45,7,64,247,52,235,33,228, +76,231,240,246,162,9,251,22,36,32,80,35,182,25,25,6,61,243,71,230,238,223,141,227,63,243,241,10,159,34,142,50, +255,52,124,37,97,4,194,222,77,200,10,200,87,215,39,242,215,21,136,53,102,66,36,57,73,30,206,249,251,216,40,199, +115,198,15,214,103,244,182,23,199,49,135,58,57,47,145,17,135,237,162,210,143,198,103,201,210,221,60,0,52,34,124,54, +232,54,129,33,120,253,242,219,56,202,146,202,96,218,189,243,166,12,109,29,198,35,139,30,121,14,209,249,214,232,236,223, +138,223,171,231,114,248,173,13,237,28,242,29,132,18,87,1,180,239,8,228,173,228,8,240,140,254,65,12,201,23,69,28, +238,21,127,8,106,250,65,239,46,234,20,238,223,248,40,5,34,15,230,19,125,17,89,10,240,2,47,253,11,250,255,249, +32,251,42,253,218,2,76,10,40,13,27,10,117,4,10,254,21,249,110,248,192,250,60,253,65,0,188,3,247,5,148,7, +103,9,246,8,102,4,146,253,175,247,14,245,213,245,121,248,173,252,56,2,178,5,210,4,154,2,48,1,88,254,247,249, +95,247,70,247,181,248,33,253,126,4,254,9,245,9,181,5,105,255,168,247,249,239,126,235,167,236,111,243,247,252,181,5, +143,12,38,17,204,16,250,9,192,255,172,245,82,237,219,233,74,238,172,247,39,0,56,6,233,10,137,12,186,8,49,1, +102,250,14,247,144,247,178,251,36,1,88,3,37,1,149,254,12,254,6,254,191,254,204,1,222,4,115,4,67,1,50,254, +14,253,202,254,73,2,31,4,253,2,111,1,21,1,193,0,72,0,207,0,17,1,141,255,236,254,74,1,28,3,26,2, +35,2,244,4,83,6,225,3,67,255,204,249,229,245,126,247,202,254,90,8,189,16,135,19,128,13,208,1,222,245,203,235, +212,230,39,236,40,250,73,8,152,17,55,23,29,25,92,20,249,8,214,251,82,241,49,234,248,230,178,233,223,242,141,0, +178,15,88,27,191,29,147,21,89,7,41,249,7,239,52,234,231,234,101,242,129,0,79,15,106,22,220,18,121,8,177,252, +154,242,74,235,193,232,48,238,62,251,205,9,179,19,88,23,205,20,160,11,217,253,66,240,115,230,110,226,92,230,238,241, +25,0,56,11,78,17,158,18,56,15,28,7,212,251,205,241,226,237,119,240,160,246,208,254,25,7,37,11,160,9,101,5, +79,255,96,247,250,241,232,242,234,247,38,254,197,5,61,13,178,16,36,15,32,11,185,6,194,1,169,251,136,245,89,241, +54,240,194,242,72,249,38,2,72,10,98,15,134,16,11,14,144,9,139,4,144,255,1,251,7,247,55,244,105,244,0,248, +68,252,129,255,253,2,186,6,247,7,60,5,123,0,202,252,126,251,235,251,95,253,157,255,193,1,13,3,69,3,56,1, +10,253,74,250,103,250,79,250,207,249,72,252,167,0,72,3,64,5,53,8,59,9,179,6,93,3,193,0,18,254,10,252, +18,252,186,253,252,255,98,2,61,4,252,4,227,4,87,4,149,3,8,3,215,2,232,2,211,3,195,5,202,6,125,5, +162,3,203,2,85,1,94,254,69,252,129,252,239,253,72,0,34,4,217,7,16,9,244,7,160,5,169,1,154,252,162,249, +109,250,193,252,203,254,51,1,113,3,144,3,159,1,209,254,158,251,133,249,103,250,223,253,130,2,28,7,104,9,0,8, +12,4,97,254,170,247,47,243,25,243,71,245,118,248,33,254,113,5,40,11,194,13,138,12,78,6,138,252,15,244,96,240, +190,240,70,243,244,248,42,3,179,14,90,22,89,24,253,19,245,6,250,242,125,224,24,215,91,216,191,227,23,249,36,20, +221,42,145,52,244,47,198,31,9,7,150,235,163,213,93,202,228,203,119,219,208,245,36,18,239,39,143,49,76,44,2,27, +46,4,213,236,239,218,250,214,32,227,124,247,48,11,96,25,255,29,76,23,99,9,53,250,6,237,159,228,163,228,172,237, +183,251,228,9,11,21,183,26,207,24,89,15,56,1,15,243,168,233,60,232,219,238,32,250,204,4,78,10,210,8,67,2, +152,251,3,249,152,250,219,254,179,5,190,12,230,13,16,7,70,253,132,245,147,241,23,243,143,249,26,0,42,3,133,3, +132,1,123,252,117,247,137,247,32,253,172,3,1,8,229,10,24,13,215,12,103,8,54,0,142,246,65,239,40,237,54,239, +60,243,194,249,50,3,3,13,102,20,240,23,136,22,6,16,199,5,9,250,60,240,25,236,40,239,118,248,182,4,47,14, +195,16,182,13,185,8,234,3,233,255,147,252,128,250,224,251,178,0,92,5,134,8,11,12,162,14,139,12,139,5,20,252, +93,242,201,235,243,235,248,242,1,254,210,9,76,19,216,23,190,21,153,12,193,255,208,245,30,242,200,241,187,241,194,242, +210,245,253,249,52,255,164,5,175,10,61,11,153,7,247,1,43,252,250,247,73,246,217,246,29,250,47,255,79,1,47,254, +216,250,104,251,225,252,179,252,96,253,164,255,89,0,223,254,191,253,67,253,94,252,239,252,195,0,250,4,52,6,103,5, +177,3,109,255,133,249,210,245,122,244,172,243,213,245,242,252,191,4,107,9,144,12,155,14,145,12,169,6,18,0,70,249, +195,242,158,240,30,244,80,249,38,255,122,7,246,14,7,17,151,14,100,7,159,249,96,237,83,237,187,245,187,254,153,10, +205,23,232,26,129,18,104,8,132,254,165,242,40,235,97,236,58,241,227,247,154,3,107,17,186,26,150,29,189,25,244,14, +75,1,167,245,76,236,255,229,218,231,181,243,124,3,1,16,139,22,130,22,63,16,208,6,32,254,169,247,188,243,169,243, +252,247,83,254,5,3,133,4,225,3,70,2,212,255,158,252,12,249,155,246,90,248,214,254,118,5,198,8,194,9,82,7, +5,255,117,245,91,241,180,241,216,243,128,249,248,0,203,4,126,5,93,6,44,5,18,0,247,250,124,248,155,247,240,248, +48,253,205,1,233,4,152,6,88,5,165,0,107,252,18,251,247,249,89,248,121,249,137,253,43,1,112,3,21,5,128,5, +35,5,123,5,166,5,5,4,252,0,54,253,132,249,35,248,246,249,15,253,204,255,11,2,213,3,38,5,127,5,168,4, +69,4,245,4,87,4,240,1,198,255,229,252,128,248,50,247,129,251,195,0,13,4,106,7,253,9,103,8,170,3,40,255, +163,251,225,248,193,247,48,249,132,253,238,3,207,9,170,12,32,12,101,8,41,1,75,248,152,242,150,242,216,245,61,250, +213,0,172,8,2,13,137,11,205,6,161,1,215,252,211,248,54,246,157,245,112,247,139,251,87,1,135,7,117,11,159,10, +212,4,30,252,183,243,208,238,152,238,116,242,31,250,179,4,188,14,67,20,59,19,82,11,163,254,229,241,12,233,119,229, +91,232,254,242,22,3,67,18,87,26,11,25,66,16,193,3,226,246,147,236,113,232,2,237,117,248,147,5,211,15,255,20, +84,20,243,13,1,3,144,246,191,237,29,236,228,240,42,250,171,6,155,18,242,24,74,24,85,17,180,4,110,246,177,236, +224,233,213,237,112,248,209,5,168,15,199,19,147,18,129,11,21,1,237,248,234,244,149,243,153,245,65,252,84,5,82,12, +192,13,64,9,131,1,128,249,240,242,36,240,177,243,165,252,247,5,58,11,230,11,8,9,227,2,62,251,231,245,9,244, +9,244,175,246,61,253,16,4,254,6,71,7,215,6,203,3,33,253,232,245,183,241,232,241,220,245,243,251,228,2,152,9, +171,13,191,12,56,7,94,255,30,247,158,240,133,238,134,241,173,247,44,255,51,7,141,13,53,15,12,12,116,6,133,255, +132,247,60,241,124,240,128,245,241,252,192,3,174,8,18,11,162,10,181,7,106,2,74,251,87,245,53,244,253,247,207,253, +122,3,10,8,233,10,171,11,60,9,241,2,81,251,96,246,64,245,189,246,121,250,217,0,242,8,154,15,111,17,109,14, +207,8,24,1,63,248,207,242,159,243,15,248,111,253,233,3,176,10,46,15,190,15,165,12,96,7,43,1,170,250,228,245, +44,245,212,247,66,252,91,2,79,8,67,11,166,11,99,10,218,5,146,254,163,247,72,242,26,240,43,244,230,252,250,4, +143,10,195,13,215,12,216,7,142,1,237,250,144,243,99,237,155,235,189,239,168,248,47,3,200,11,208,15,24,14,129,7, +82,254,42,245,105,239,114,239,145,243,239,248,187,255,84,7,115,11,249,9,101,5,133,255,118,248,144,242,14,241,6,244, +140,249,149,0,84,8,180,14,85,17,65,15,17,9,61,0,14,247,158,240,171,239,160,244,21,253,234,5,237,12,0,16, +185,13,254,7,118,2,159,254,186,252,184,253,231,0,17,4,162,6,118,8,30,8,79,5,152,0,248,249,181,244,25,246, +134,252,168,1,108,5,48,11,137,16,120,17,142,14,158,8,124,255,112,246,47,241,75,239,88,240,41,246,188,255,193,8, +255,13,0,14,46,9,239,2,1,254,4,250,12,248,165,250,150,255,46,2,196,1,8,255,159,249,192,244,17,245,21,250, +245,0,11,8,241,11,210,9,181,3,50,252,157,244,213,240,245,242,110,247,176,252,64,4,141,10,51,11,174,8,4,5, +229,253,151,245,205,241,71,242,139,244,33,250,0,3,163,10,10,14,94,13,230,8,127,1,170,249,60,244,34,243,123,246, +89,252,30,2,187,5,86,6,213,4,158,2,77,0,237,254,109,255,6,0,162,254,41,253,57,254,87,0,163,1,91,3, +42,5,129,3,120,254,242,250,192,250,116,251,225,252,133,0,102,4,197,5,80,5,238,3,25,1,94,254,250,253,236,254, +180,255,127,0,205,255,30,252,214,248,142,249,99,252,145,255,163,4,133,9,187,8,183,2,9,253,4,250,9,249,203,250, +167,255,161,5,191,9,152,9,188,4,179,252,100,243,65,236,72,236,53,244,150,255,89,11,200,21,206,26,49,24,152,15, +33,2,15,243,24,234,84,233,115,235,7,240,173,250,237,7,52,17,46,21,74,20,235,14,101,7,73,254,126,243,166,236, +78,239,141,248,17,3,0,12,2,15,12,10,169,2,168,253,130,249,111,246,154,248,6,0,141,7,206,10,67,8,74,1, +255,249,221,245,189,245,251,249,8,2,58,10,158,14,84,14,132,9,122,0,124,246,17,240,87,238,73,240,13,246,136,255, +181,10,136,20,122,25,224,22,200,12,54,253,52,236,217,224,174,224,249,234,4,252,35,15,103,28,131,29,75,20,40,6, +94,247,160,237,41,237,22,243,130,250,83,2,45,9,126,11,30,8,131,1,97,251,252,248,152,250,43,253,214,254,236,0, +121,4,208,7,52,8,212,4,141,255,150,250,195,246,213,244,29,246,232,250,155,1,71,7,69,9,94,7,107,3,29,255, +225,251,13,251,91,252,140,254,48,1,106,3,125,3,57,1,35,254,122,251,60,250,33,251,165,253,156,0,254,2,27,4, +85,4,128,4,49,4,241,2,153,1,174,0,216,255,30,255,88,254,30,253,63,252,175,252,1,254,193,255,251,1,38,4, +200,5,152,6,165,5,239,2,89,0,247,254,89,254,161,254,188,255,32,0,36,255,51,254,42,254,23,254,119,253,129,253, +4,255,223,0,51,2,165,3,180,4,127,3,149,0,116,254,90,253,46,252,78,251,24,251,52,251,70,252,115,254,61,0, +128,1,77,3,70,4,159,2,12,0,193,254,233,253,189,252,134,252,175,253,70,255,88,1,201,3,178,4,25,3,161,0, +170,254,239,252,138,251,107,251,46,253,242,0,150,5,46,8,240,6,181,3,2,1,210,254,152,252,138,251,116,252,42,254, +253,255,108,2,27,4,221,2,87,0,203,255,153,0,44,1,2,3,240,5,91,6,117,3,88,255,100,250,224,245,29,245, +222,247,252,251,78,2,83,9,172,11,186,9,24,8,50,5,69,254,169,247,224,244,182,243,95,244,59,249,57,0,190,6, +174,12,231,14,176,9,21,0,101,247,88,241,170,239,234,243,49,251,70,2,42,9,191,13,235,11,11,5,127,254,79,250, +136,247,38,246,251,246,113,250,91,255,19,3,240,4,165,6,72,7,51,4,40,255,1,252,178,250,76,250,120,252,240,0, +33,4,181,4,41,4,165,2,186,255,6,253,27,252,96,252,32,253,25,255,175,2,65,6,144,7,62,6,223,3,117,1, +114,254,241,250,178,248,224,248,39,251,248,254,2,3,217,4,28,4,54,3,84,3,84,3,190,2,168,1,109,255,82,252, +174,249,44,248,101,248,248,250,15,255,105,3,244,6,109,7,37,4,68,0,163,253,211,250,165,248,116,249,35,252,205,254, +123,1,17,3,126,2,57,1,153,255,144,252,240,249,182,249,207,250,22,253,90,1,44,5,241,5,126,4,213,1,33,254, +193,250,163,248,222,247,171,249,58,254,224,2,138,5,117,6,33,6,122,4,57,1,191,252,220,248,17,247,176,247,138,251, +34,2,150,7,44,9,205,7,37,4,219,254,231,250,16,250,193,251,185,255,201,3,51,4,250,1,52,0,147,253,7,250, +27,250,75,254,150,2,92,6,184,9,169,9,181,5,62,0,2,250,117,245,202,246,251,251,118,255,129,1,188,4,110,7, +109,7,74,5,161,1,73,253,42,250,250,248,91,249,89,251,222,254,55,4,251,10,67,14,33,9,145,255,156,249,70,248, +139,248,189,250,252,254,254,1,158,1,230,254,59,252,187,252,214,1,35,9,195,14,95,15,76,9,227,255,213,248,173,244, +167,241,62,242,188,247,16,254,204,2,164,6,158,8,252,8,70,10,187,10,213,6,138,0,185,250,144,245,28,244,4,249, +255,254,154,0,158,0,53,2,13,3,243,1,199,1,225,3,167,5,125,4,19,1,149,253,214,250,28,250,175,253,183,3, +221,6,61,6,200,4,143,2,192,254,80,251,117,249,31,249,168,251,139,0,25,4,92,5,170,6,117,8,59,9,197,7, +64,3,23,253,4,249,31,248,71,248,245,248,94,251,10,255,132,2,95,5,217,7,2,10,28,11,177,9,56,5,188,254, +182,247,42,242,231,240,56,245,48,253,169,5,191,12,23,17,141,16,57,10,171,0,235,246,170,237,94,231,168,233,143,245, +153,4,10,17,102,25,95,27,34,20,85,5,90,244,3,231,94,226,136,231,35,242,163,253,211,8,188,17,10,20,139,14, +64,5,46,252,169,244,77,240,92,241,76,247,128,255,93,8,67,15,103,15,153,7,84,252,246,241,248,234,149,234,77,242, +79,255,156,13,49,25,48,29,189,23,131,11,118,251,24,235,250,224,156,225,44,235,213,249,120,10,119,24,12,31,104,28, +128,17,185,1,208,242,246,233,255,232,191,238,42,249,49,6,218,17,108,22,43,18,12,9,144,254,161,244,103,239,79,241, +99,247,179,255,57,10,252,17,224,17,211,12,184,6,121,254,199,245,233,241,76,243,98,247,76,254,140,6,136,11,34,12, +147,10,19,7,128,1,45,252,243,248,11,248,37,250,65,255,205,4,24,8,170,8,231,6,220,2,81,253,63,248,168,245, +195,246,156,251,139,2,123,8,242,10,214,9,143,6,216,1,20,252,103,247,115,246,9,249,218,252,82,0,132,2,223,2, +88,2,159,1,120,255,24,252,39,250,123,250,252,251,208,254,140,2,5,5,205,5,82,5,132,1,218,249,170,242,175,239, +185,240,24,245,43,252,136,3,223,8,72,11,212,9,137,4,28,254,122,249,8,247,7,246,134,246,150,248,77,251,202,253, +226,255,84,1,41,2,47,3,227,3,86,2,23,255,52,253,87,253,221,253,162,254,17,0,2,1,165,0,117,255,245,253, +32,253,31,254,104,0,135,2,27,4,242,4,22,4,84,1,82,254,16,253,131,253,60,254,71,255,93,1,251,2,250,2, +69,3,138,4,159,4,109,3,83,2,251,255,199,251,178,248,183,248,39,251,247,254,64,2,91,4,30,8,17,13,240,12, +182,6,127,0,140,251,215,244,89,239,3,240,164,245,174,253,128,7,153,15,164,17,45,14,144,7,136,254,78,245,173,239, +96,239,88,244,13,253,233,4,234,7,135,7,225,6,79,5,4,1,39,251,78,246,105,244,223,246,143,253,157,5,45,11, +78,12,98,9,61,3,198,250,217,242,137,239,80,242,171,249,111,3,42,12,199,15,250,13,85,9,160,2,9,251,193,246, +115,247,115,250,31,254,178,1,20,3,250,2,11,4,76,4,247,0,113,253,138,253,193,255,95,2,148,5,217,7,82,7, +134,4,234,0,179,253,84,251,84,249,187,248,118,251,211,255,208,2,27,5,137,7,92,8,162,7,136,6,164,3,240,254, +112,251,150,249,10,248,72,248,60,251,228,254,158,2,208,6,129,9,8,9,48,6,152,1,186,251,152,246,79,244,234,245, +96,251,187,2,229,8,178,11,38,10,153,4,13,253,14,246,44,242,253,242,14,247,72,252,17,3,249,9,55,12,110,9, +230,5,18,2,85,252,11,247,103,244,18,244,53,247,181,253,101,3,148,6,184,8,224,7,76,2,239,251,70,248,246,246, +25,249,215,255,62,7,150,10,192,9,106,6,3,1,84,250,230,244,85,243,154,245,190,249,70,255,68,6,64,12,158,14, +98,13,255,8,49,2,192,251,167,247,206,245,61,247,131,252,108,2,215,5,83,6,25,3,185,252,12,248,203,248,159,253, +106,4,183,11,67,16,68,15,33,9,201,255,47,246,21,240,243,238,151,241,231,246,161,253,233,3,130,9,51,14,3,15, +157,10,129,4,208,254,197,247,3,241,110,240,63,247,136,0,83,8,179,12,252,10,17,3,194,249,141,243,112,241,64,244, +15,253,82,9,88,19,222,22,186,18,19,8,80,250,20,238,244,230,20,231,180,239,42,255,125,15,48,26,136,28,135,22, +80,9,200,248,83,235,245,229,54,234,128,246,116,6,102,20,139,27,246,24,22,13,176,252,184,237,61,228,125,227,63,237, +105,254,108,16,151,29,138,33,2,26,29,10,145,248,38,234,186,225,145,226,47,237,130,252,78,10,187,19,90,23,115,19, +45,9,47,253,82,243,124,237,244,237,126,245,134,0,252,9,178,14,6,13,140,5,1,252,165,244,247,241,227,244,215,251, +9,3,179,7,243,8,160,6,23,2,229,253,119,251,84,251,120,253,67,0,109,2,101,4,5,5,28,2,99,253,57,250, +137,248,214,247,249,249,6,255,133,4,55,9,97,12,243,11,39,7,47,0,225,249,205,245,94,244,157,245,75,249,67,254, +15,3,209,6,130,8,130,7,68,5,5,3,192,255,232,251,97,250,148,251,178,253,164,0,203,3,94,4,26,2,134,255, +7,253,226,249,11,248,41,250,244,255,76,6,255,9,125,10,224,8,247,4,216,254,137,249,153,247,21,248,173,249,124,252, +198,255,248,1,114,2,118,1,183,255,85,254,96,254,101,0,175,3,56,6,200,6,148,5,63,2,166,252,246,246,125,243, +183,242,245,244,45,250,125,0,246,5,196,9,252,10,59,9,126,5,251,0,3,253,237,250,145,250,81,251,105,253,215,255, +127,0,18,255,255,251,214,247,114,246,134,251,248,3,73,10,138,13,228,13,16,10,208,3,163,254,107,250,70,246,169,244, +36,247,220,250,72,253,53,0,206,5,144,11,60,13,118,10,101,5,31,255,111,249,26,247,46,248,119,251,119,1,90,8, +12,11,94,8,156,3,156,254,98,250,170,248,90,248,205,247,254,249,224,0,22,8,52,12,111,14,242,13,34,8,42,255, +96,247,194,241,0,239,121,241,161,248,186,0,80,7,36,11,210,10,72,7,93,3,209,255,56,252,46,250,200,250,69,252, +71,253,247,253,174,253,66,252,133,251,220,251,155,251,115,251,250,253,226,2,93,7,117,9,65,8,160,3,21,253,172,246, +183,241,194,239,132,242,145,249,177,1,126,7,217,9,67,9,30,6,60,1,206,252,139,250,75,250,162,251,35,254,45,0, +195,0,8,1,90,1,172,0,202,255,60,0,228,0,228,0,67,2,50,5,100,6,219,4,185,2,109,0,152,253,255,251, +170,252,152,254,199,1,40,6,128,9,136,10,155,9,203,5,118,255,130,250,226,248,74,249,61,252,13,2,38,7,121,9, +135,10,197,9,36,6,90,2,215,255,203,252,82,250,237,250,184,252,127,253,200,254,154,1,244,4,250,7,40,9,44,7, +11,3,244,253,160,248,153,245,132,246,12,250,122,255,255,5,151,9,236,7,120,3,38,254,157,248,141,245,88,246,93,249, +239,253,215,2,124,4,227,2,198,1,3,1,144,254,54,252,41,251,146,249,67,248,199,249,211,252,78,255,235,1,56,4, +225,3,23,1,241,253,32,251,67,249,241,249,240,252,234,255,181,1,146,2,247,1,153,255,68,253,102,252,0,252,169,251, +14,253,85,0,36,3,57,4,44,4,10,3,170,0,100,254,184,253,51,254,153,254,52,255,209,0,82,2,66,2,202,1, +154,2,192,3,220,3,112,3,48,3,31,3,77,3,251,2,47,1,3,255,74,254,13,255,186,0,37,3,127,5,6,7, +169,7,197,6,195,3,246,255,113,253,232,252,195,253,52,255,228,0,164,2,172,3,165,3,66,3,95,2,114,0,193,254, +42,254,116,253,28,253,40,255,42,2,93,3,69,3,110,2,166,255,40,252,83,250,196,249,61,250,238,252,73,0,149,1, +149,1,164,1,121,0,182,253,166,251,173,251,180,252,90,253,139,253,134,253,201,252,127,251,57,251,54,252,8,253,243,253, +186,255,180,0,3,0,44,255,200,253,252,250,169,249,48,251,111,252,113,253,118,1,241,5,13,6,133,3,146,0,94,250, +38,242,145,239,27,245,32,254,143,7,177,15,85,18,145,13,160,4,115,251,180,245,200,246,115,252,25,0,110,0,230,0, +36,1,99,255,125,254,241,0,153,4,123,7,87,9,228,8,185,5,153,1,158,253,113,250,100,249,71,250,182,252,171,2, +214,11,158,18,155,18,53,12,128,0,232,240,56,227,218,223,176,234,108,255,144,21,36,38,215,43,198,34,219,13,153,246, +183,227,179,215,217,214,13,227,80,246,45,10,176,27,95,37,51,34,248,20,227,2,7,239,12,224,195,221,231,231,247,248, +41,12,120,26,114,28,99,18,165,2,119,242,100,230,97,227,200,234,237,248,11,8,196,18,79,22,90,19,16,12,119,2, +203,248,128,241,137,238,117,240,249,245,5,253,149,3,83,7,117,7,2,6,16,4,208,0,145,254,231,0,112,5,43,7, +156,5,187,1,140,251,50,246,7,245,237,246,195,251,76,5,247,14,201,17,83,14,42,7,141,251,8,240,145,237,125,244, +103,254,39,9,20,20,76,26,125,23,92,12,95,253,171,240,156,234,61,235,105,240,71,248,248,1,183,12,224,20,34,22, +254,17,230,11,177,2,15,248,178,242,45,242,148,242,131,248,79,4,48,9,240,2,114,251,150,245,168,239,16,241,217,252, +233,10,240,23,240,33,166,29,33,8,226,238,70,219,57,207,225,208,146,225,27,248,157,14,116,34,40,43,18,36,238,18, +101,253,145,231,49,217,59,215,39,224,186,241,76,8,195,27,72,36,183,30,87,13,245,246,158,226,149,214,192,217,168,236, +243,5,22,29,19,45,7,46,228,29,103,7,188,242,154,224,184,215,191,222,235,238,144,0,114,19,43,33,139,32,219,21, +149,9,225,251,253,239,215,238,188,247,117,2,62,12,92,19,14,18,214,7,55,251,150,240,53,234,250,235,98,246,45,4, +161,16,77,25,195,26,102,19,253,6,119,250,102,240,178,235,194,238,31,247,62,0,115,8,1,14,85,13,178,6,161,254, +197,247,81,243,61,244,24,251,4,4,4,12,103,17,191,16,75,9,200,255,144,247,107,240,186,236,235,239,148,247,5,255, +219,5,23,12,84,14,56,11,227,5,206,0,94,252,177,249,102,249,26,250,100,251,10,254,93,0,253,255,73,254,146,253, +224,252,120,251,158,251,3,254,103,0,96,2,237,4,71,6,170,4,10,2,175,255,170,251,36,246,144,242,95,242,230,244, +175,250,24,3,79,10,174,13,148,13,1,10,206,2,142,250,221,244,80,243,2,246,253,251,148,2,98,7,252,9,254,9, +157,6,91,1,6,253,13,250,16,248,223,248,51,253,84,2,177,6,76,11,183,14,144,13,240,7,108,0,128,248,24,242, +203,239,2,242,2,248,48,1,101,10,114,15,241,15,37,13,156,6,168,253,76,246,218,241,198,238,216,237,77,242,245,252, +201,9,182,18,134,20,103,15,29,4,100,245,186,233,231,229,175,233,26,244,240,2,247,14,52,18,60,14,143,6,233,252, +236,244,238,241,32,243,161,247,23,255,255,4,31,5,251,1,104,255,130,253,161,252,255,253,222,0,50,5,171,11,21,16, +115,12,224,1,252,245,131,235,164,228,26,230,209,241,0,4,86,23,150,38,238,43,80,36,231,17,221,249,245,226,153,212, +37,211,164,222,242,244,44,16,5,38,210,46,244,41,127,25,34,1,98,233,98,219,85,218,32,229,176,248,83,14,13,30, +65,35,162,28,79,12,46,249,146,234,77,227,100,228,28,239,135,0,12,17,232,26,191,28,79,22,56,8,237,246,77,233, +219,227,124,231,25,243,35,3,42,17,134,23,250,20,223,11,22,0,81,246,71,242,144,244,30,251,168,2,73,7,120,6, +122,1,238,251,81,248,177,247,193,250,141,0,71,6,47,10,3,12,69,11,112,8,244,4,188,255,181,247,51,241,133,240, +160,243,176,248,87,1,202,10,115,15,158,15,14,13,126,6,55,255,39,253,86,254,144,254,208,255,7,2,93,0,135,251, +92,248,179,247,206,249,222,255,103,6,113,9,144,10,172,10,25,7,94,0,87,250,4,247,178,246,7,249,156,252,113,0, +166,3,107,4,30,2,93,253,185,246,65,241,219,240,140,244,247,249,30,2,49,11,72,15,66,13,10,8,39,0,116,247, +78,242,56,240,212,237,42,236,54,237,79,240,85,246,193,0,245,12,125,22,118,26,90,23,218,13,144,0,91,242,186,231, +74,229,246,233,184,240,159,247,255,254,216,5,149,11,128,16,61,19,211,17,249,11,2,3,82,249,148,241,101,238,99,242, +240,252,125,8,87,16,140,19,112,16,133,6,15,251,148,242,186,236,249,235,120,244,122,2,69,15,171,25,49,32,176,30, +6,22,198,9,67,250,66,234,114,224,38,223,30,229,149,242,217,4,101,21,113,32,39,36,71,30,50,17,82,3,115,248, +89,242,28,242,242,244,118,247,80,250,165,253,139,255,25,1,64,4,153,7,211,9,130,10,247,7,56,3,45,0,40,255, +213,254,88,0,49,2,209,0,207,253,155,251,173,248,114,246,77,248,90,251,176,252,63,255,144,2,228,2,2,3,211,5, +241,6,208,4,73,3,44,1,127,251,133,245,234,241,18,239,13,238,79,241,90,247,67,254,140,5,44,11,177,13,195,13, +173,10,137,3,178,250,70,243,184,238,230,237,246,240,131,247,221,0,219,9,126,14,89,14,219,9,31,0,239,244,181,239, +151,241,72,247,41,1,177,14,235,24,234,25,136,18,130,6,177,249,152,239,245,233,180,233,157,239,196,249,172,4,211,14, +168,22,0,25,161,21,191,15,149,8,133,255,90,246,76,240,211,238,75,241,155,245,61,250,30,0,61,7,217,11,214,11, +16,10,56,8,55,4,87,254,23,250,72,248,199,247,148,250,223,2,116,12,230,14,155,6,93,248,111,235,167,227,26,227, +116,236,250,254,20,20,205,35,175,40,140,32,103,14,103,249,29,231,88,218,110,214,221,221,225,238,48,4,196,22,0,32, +227,29,69,19,131,3,54,242,160,229,43,228,94,239,7,2,232,18,204,26,206,23,227,10,146,247,71,230,48,223,117,227, +153,240,49,4,220,23,126,34,127,32,153,20,1,3,78,241,107,230,71,230,220,239,25,255,165,14,197,24,109,24,76,12, +98,250,131,236,152,231,34,235,248,246,124,9,102,27,116,36,121,33,201,19,21,0,144,237,212,225,39,223,167,230,13,247, +84,10,61,25,78,31,169,26,78,13,72,254,65,244,233,240,134,244,107,255,135,12,179,18,78,14,1,3,20,245,123,232, +113,227,79,234,157,250,215,13,20,30,158,38,242,35,184,21,101,0,199,235,175,222,15,220,189,227,43,243,13,5,86,19, +247,25,76,23,92,12,105,253,66,240,216,233,144,236,0,247,21,5,133,18,6,26,244,21,96,6,119,242,186,225,172,216, +124,218,104,231,13,251,39,15,96,29,140,32,114,24,221,9,213,249,99,236,107,229,245,229,115,235,144,243,233,252,100,4, +139,6,122,3,160,254,180,250,88,248,82,248,190,251,112,1,176,6,62,10,131,11,118,9,207,4,64,255,28,248,183,238, +56,230,67,227,159,232,126,246,60,9,149,26,2,38,43,41,33,34,194,17,48,253,233,234,138,224,171,224,44,232,242,241, +233,252,37,9,252,18,45,23,22,23,109,20,49,14,129,4,121,250,18,243,21,240,69,243,50,252,100,6,63,13,53,15, +187,11,126,3,88,250,148,243,162,239,177,240,41,249,214,4,226,13,119,20,102,24,131,21,111,12,109,2,39,248,3,237, +200,229,68,230,210,236,197,247,212,5,153,18,196,25,115,26,13,21,152,10,41,254,254,243,14,239,63,239,125,242,244,247, +110,255,4,6,104,8,212,6,84,3,127,255,1,253,175,252,32,254,2,1,6,4,242,4,251,3,112,2,125,255,56,251, +72,248,115,247,224,247,68,250,52,254,82,1,69,3,86,4,31,3,102,0,216,254,78,254,81,254,181,0,120,4,173,5, +137,3,99,255,134,249,165,243,182,240,251,241,22,248,79,2,197,11,39,16,53,16,172,12,193,4,206,251,226,246,215,245, +130,246,176,249,123,255,216,4,168,7,192,8,53,9,234,7,179,2,168,250,191,244,185,243,43,246,221,251,191,5,85,16, +9,22,38,21,88,14,238,2,77,247,75,240,22,238,193,238,11,242,159,247,122,254,252,5,165,12,11,17,232,19,114,20, +173,14,68,2,25,245,111,236,114,233,170,235,241,241,177,250,30,4,189,10,167,11,215,8,185,5,232,1,251,252,215,249, +226,249,185,251,238,255,184,7,97,15,11,16,142,6,217,245,48,228,103,216,144,216,64,231,127,0,144,27,204,47,142,54, +134,44,243,20,98,248,58,223,210,207,63,206,41,218,153,239,117,9,115,32,61,44,128,41,113,27,126,7,78,243,229,228, +94,225,217,234,229,253,191,17,78,30,72,32,42,23,83,5,245,241,227,228,201,225,120,233,74,250,31,14,243,28,181,33, +164,27,238,13,39,254,163,241,106,236,38,240,42,250,41,5,133,12,190,12,77,5,248,250,59,243,190,239,206,241,108,251, +236,9,68,22,79,27,133,23,233,11,43,252,246,236,35,226,35,223,150,229,79,243,208,3,235,17,130,24,170,21,38,12, +60,0,228,245,234,240,175,242,65,249,206,1,146,8,137,8,151,0,229,245,172,237,200,233,78,236,169,246,17,5,206,17, +72,26,71,28,7,21,195,6,174,247,65,235,70,227,13,227,53,235,234,247,21,5,177,14,228,16,113,12,114,5,59,254, +40,249,54,249,221,252,131,0,231,3,218,5,16,3,225,252,11,247,252,241,109,239,214,242,252,249,141,0,216,6,37,12, +255,12,77,10,124,6,127,0,71,250,243,248,103,251,44,253,253,254,227,1,233,1,209,252,105,246,95,243,249,244,144,250, +197,3,235,14,59,23,254,24,32,21,0,13,73,1,157,246,110,241,9,239,127,236,56,237,29,243,231,250,120,3,53,14, +184,24,45,30,143,28,16,21,156,9,212,251,250,238,99,232,182,233,173,238,154,244,223,252,16,6,218,11,106,13,192,12, +187,10,47,7,225,1,233,251,59,248,60,248,239,250,55,0,164,6,64,9,241,5,152,255,245,247,235,239,230,234,48,235, +215,240,114,252,129,11,97,23,151,28,112,27,109,19,255,5,141,247,127,234,217,224,16,223,28,230,164,241,47,254,218,9, +14,18,102,21,176,19,5,13,90,4,228,253,128,250,70,249,126,249,218,248,102,246,12,245,246,245,244,246,125,248,75,253, +209,4,73,11,76,13,150,10,56,6,33,2,169,253,144,250,60,251,89,252,172,250,229,249,109,252,156,254,56,255,188,0, +103,2,252,1,234,255,87,253,129,252,209,0,253,8,76,15,81,17,179,15,187,9,54,0,59,247,118,241,78,239,153,241, +35,248,64,0,127,7,96,13,82,18,230,21,183,21,255,15,212,6,93,253,118,244,211,237,82,237,210,243,14,254,224,8, +154,17,154,20,212,15,227,4,68,248,235,239,121,239,60,245,255,253,97,8,54,17,81,19,130,13,21,3,148,247,133,238, +196,234,173,235,122,239,128,246,2,0,147,8,176,13,67,14,178,9,12,2,176,250,89,244,171,239,33,240,247,246,152,255, +79,4,93,3,11,255,136,250,17,247,81,245,134,247,178,253,41,3,237,4,246,4,116,4,125,2,114,1,58,5,176,11, +77,13,212,5,149,248,186,235,47,227,53,226,161,236,12,1,182,22,229,37,57,44,201,39,210,23,153,2,209,240,237,228, +93,222,5,224,18,236,106,254,97,16,45,29,47,33,242,26,177,13,151,254,159,241,152,235,210,240,245,254,7,14,49,23, +80,22,175,10,27,250,147,236,73,229,165,229,44,240,21,2,196,18,73,28,70,29,177,21,12,8,25,249,174,236,90,230, +253,232,234,242,24,255,219,8,223,11,221,6,139,254,144,247,58,242,136,240,222,246,165,3,86,15,140,20,216,17,183,7, +95,249,218,235,218,226,149,224,210,230,3,245,119,6,168,20,56,27,236,24,232,14,39,1,15,245,148,237,229,235,13,242, +150,254,102,9,9,12,85,8,150,2,128,252,67,248,179,248,114,253,54,4,227,11,103,18,86,19,248,12,135,3,240,251, +231,246,75,244,94,246,243,253,200,7,159,15,105,18,152,14,209,5,148,252,27,247,134,247,48,253,119,5,87,14,101,21, +169,21,221,12,145,255,107,243,175,235,127,235,208,242,253,252,108,7,253,16,133,20,70,15,63,6,190,253,172,246,10,244, +22,247,5,252,38,1,197,6,241,8,108,4,174,251,3,242,111,234,22,233,209,238,108,249,188,7,153,21,116,27,136,23, +119,13,28,255,159,239,45,229,43,225,248,224,95,229,101,239,190,251,201,7,32,19,164,26,19,26,181,17,67,5,161,247, +39,235,133,227,208,227,84,235,89,246,31,1,49,9,172,13,86,14,94,10,166,2,62,251,175,246,158,244,96,246,193,252, +20,4,244,9,144,14,63,14,249,6,195,254,15,249,144,243,127,241,158,246,4,253,232,0,114,6,243,11,246,11,195,9, +32,9,54,7,162,4,108,4,34,3,179,253,41,247,38,242,245,239,66,242,205,247,45,255,233,8,51,17,17,19,135,16, +180,11,190,2,211,248,87,243,235,240,100,240,137,244,49,251,141,255,248,1,96,3,22,3,114,2,82,1,120,254,140,253, +159,0,220,2,14,3,146,4,156,4,73,255,142,248,155,244,85,243,162,245,111,251,164,1,35,7,75,11,28,11,5,7, +186,2,221,254,88,252,157,254,247,3,152,6,209,5,248,3,110,0,44,251,30,247,78,246,196,248,196,253,189,3,74,9, +214,13,167,16,213,16,154,13,147,6,122,253,113,245,5,240,73,238,153,242,129,252,24,7,147,14,236,17,54,15,253,5, +181,251,79,246,218,245,39,249,179,1,176,12,151,17,164,13,124,6,29,255,51,246,124,238,196,236,201,240,217,247,151,0, +140,9,144,17,151,23,68,24,157,17,187,6,124,250,143,237,38,228,225,227,109,236,30,249,17,6,35,16,110,20,120,17, +141,8,126,254,137,247,51,243,248,240,139,243,125,250,170,1,33,9,255,18,141,26,1,23,181,5,106,237,140,216,201,205, +64,208,59,227,98,4,84,38,105,59,57,63,79,49,23,20,204,241,195,213,67,197,235,195,120,211,146,238,232,12,17,39, +136,52,69,48,78,29,181,1,17,229,141,210,19,210,202,226,118,254,190,26,75,43,197,41,185,23,207,251,226,225,104,212, +179,212,105,225,148,249,153,19,185,34,47,37,230,29,142,12,178,246,7,231,56,225,133,228,95,241,21,3,249,16,247,22, +228,19,225,7,118,248,45,236,155,229,36,232,15,246,211,8,32,23,253,29,210,28,129,18,87,2,17,243,251,232,173,229, +66,234,38,246,34,5,45,17,198,22,197,21,198,14,45,4,3,251,75,246,51,246,199,251,88,5,19,12,196,12,34,10, +160,4,71,252,222,245,159,243,92,243,73,247,236,1,95,13,199,19,101,22,55,21,91,13,161,0,179,243,202,233,1,231, +235,237,124,250,13,6,2,13,213,14,123,13,8,11,185,6,226,0,103,253,233,252,118,251,133,248,242,246,66,247,3,250, +182,0,170,7,240,8,3,6,6,4,35,2,107,253,191,248,170,248,215,251,116,253,233,252,99,254,166,3,154,9,26,14, +89,16,143,11,170,252,56,235,224,224,214,222,26,229,86,246,143,13,116,31,213,38,110,35,253,20,204,0,193,239,137,228, +206,222,17,225,161,234,174,246,63,3,214,14,8,21,118,20,157,15,89,7,181,252,190,243,100,240,122,244,212,253,47,5, +229,5,139,2,49,253,47,246,124,242,220,245,241,252,87,5,159,14,183,18,41,13,73,3,118,250,23,243,247,239,22,244, +214,252,177,6,244,14,255,16,130,11,103,2,4,248,83,238,197,234,41,239,92,247,176,1,40,14,210,23,39,25,239,17, +205,4,165,245,141,233,218,227,240,229,181,240,111,1,101,17,159,27,253,29,220,21,236,2,2,236,141,219,239,215,169,225, +21,246,139,15,124,36,77,44,111,37,115,19,40,251,100,228,56,216,10,217,197,226,109,242,193,5,63,23,153,33,207,34, +66,26,102,10,8,250,168,237,119,229,151,228,85,239,91,1,4,17,192,25,8,26,226,15,107,255,37,242,73,236,245,236, +3,245,34,3,134,16,22,24,241,24,159,18,24,7,108,251,56,242,147,236,122,237,214,244,85,254,17,8,240,16,70,20, +35,16,71,8,126,255,148,247,147,244,154,247,130,253,124,4,50,10,132,9,61,2,109,250,70,245,179,242,208,244,61,252, +115,4,64,9,110,10,200,8,27,4,154,252,235,244,122,241,211,243,8,249,144,254,52,4,54,8,154,7,84,2,215,250, +126,243,26,239,108,240,241,246,13,255,45,6,149,11,106,13,174,9,22,2,9,250,191,242,62,238,133,240,208,248,91,1, +234,7,115,13,44,15,214,9,30,0,86,247,149,242,214,242,125,247,49,255,137,8,54,16,136,18,229,15,110,10,78,2, +185,249,147,245,113,246,191,248,125,251,184,255,169,4,205,8,126,11,241,12,67,14,42,15,210,12,41,6,201,253,248,245, +211,239,212,237,209,241,147,249,43,1,180,7,204,14,101,21,14,23,55,18,200,9,12,255,197,241,41,230,229,225,225,229, +17,241,251,1,212,17,74,24,214,20,32,12,159,0,168,244,9,237,196,236,181,242,159,251,69,3,58,6,247,4,157,2, +13,0,88,251,170,244,38,240,26,241,14,247,47,1,139,14,35,25,246,24,188,13,248,253,244,237,105,224,16,220,62,230, +171,250,188,15,218,30,225,35,228,27,78,10,134,248,200,236,249,231,216,235,98,249,64,10,8,21,93,22,178,16,48,7, +32,252,180,241,71,235,194,236,163,246,196,4,7,18,43,26,156,26,153,20,172,10,51,253,183,238,151,229,54,229,254,236, +214,251,93,12,75,22,254,23,131,19,80,7,251,246,209,237,244,238,0,244,144,251,54,6,17,13,14,11,251,3,245,251, +78,244,160,239,94,240,243,246,60,1,12,9,81,10,183,8,120,6,230,255,213,246,64,242,166,241,92,241,81,244,81,252, +174,4,121,10,141,13,24,12,107,6,178,255,176,248,147,242,113,241,0,245,133,248,234,251,221,1,7,8,27,11,124,12, +50,13,122,10,111,3,105,251,78,245,56,242,75,244,184,252,188,7,145,15,121,17,61,13,93,4,217,250,31,244,91,241, +100,244,135,253,20,8,204,16,84,24,236,26,162,19,10,7,139,251,215,239,182,229,157,229,81,240,159,254,209,12,237,23, +138,26,223,20,204,11,175,1,94,249,132,246,3,248,189,251,83,1,13,4,13,0,82,251,24,251,49,251,32,250,18,253, +31,4,34,10,3,13,147,12,101,8,120,1,215,248,30,240,107,235,216,236,217,242,248,252,41,9,130,16,114,15,223,8, +113,254,189,241,128,233,116,234,37,242,69,253,29,9,136,16,81,16,189,9,197,254,139,242,57,234,17,232,32,235,95,243, +102,255,113,10,245,16,208,17,100,12,254,2,12,250,31,243,116,239,209,242,45,252,14,4,62,7,103,8,63,7,248,1, +210,251,5,249,192,249,61,253,6,3,82,9,139,14,156,17,169,16,55,11,53,2,220,245,191,233,208,229,234,236,211,250, +91,12,196,29,162,38,2,34,65,18,202,251,53,231,162,223,142,229,211,241,157,3,52,24,171,34,122,29,59,16,126,254, +89,233,240,218,152,218,36,228,134,244,89,11,44,33,10,45,228,43,150,29,58,6,182,238,86,220,195,208,107,208,165,221, +94,243,7,10,227,26,141,33,52,31,151,22,34,8,253,247,30,238,38,237,154,242,158,251,46,3,180,4,115,1,151,252, +150,247,182,244,181,245,97,250,6,3,69,13,9,19,241,18,72,16,209,10,46,2,5,250,82,243,189,237,17,238,66,246, +3,0,87,7,15,13,186,14,49,10,129,3,128,254,20,251,160,250,180,255,232,7,215,12,203,11,174,7,43,2,238,249, +218,241,123,239,225,241,253,245,175,253,172,7,159,13,123,15,134,16,241,13,159,6,16,255,243,247,50,241,57,240,154,245, +3,251,38,255,30,3,184,3,117,1,191,0,238,0,7,1,202,3,118,7,201,7,112,5,145,0,43,248,25,241,69,239, +1,240,223,243,182,253,42,8,25,13,59,14,92,12,55,5,181,251,143,244,97,240,207,239,2,244,250,250,41,2,231,7, +204,9,136,7,81,3,194,253,219,247,252,244,46,245,175,245,3,248,36,254,180,3,19,5,249,5,248,8,166,9,126,5, +184,0,132,253,212,248,58,243,220,241,79,245,125,250,189,1,217,10,252,16,122,17,1,14,88,7,216,254,136,248,67,246, +141,247,218,252,19,4,144,8,226,9,238,9,165,7,91,3,109,0,231,254,250,252,136,252,35,255,169,2,53,6,211,10, +215,14,53,15,131,11,101,4,186,249,40,238,117,232,241,236,201,248,223,6,168,19,161,26,69,24,213,14,125,2,158,245, +160,236,125,235,209,239,146,246,77,0,198,9,56,13,174,11,238,8,227,3,216,251,66,244,98,240,189,241,246,247,121,0, +215,9,167,18,12,21,120,12,57,252,185,234,84,222,127,221,160,232,250,249,197,13,17,32,125,41,171,38,65,24,111,254, +91,225,181,207,216,204,197,211,38,230,231,2,195,29,24,46,241,50,170,41,226,19,21,251,12,229,139,212,151,208,161,219, +121,239,117,6,99,26,105,34,170,29,203,18,1,4,180,242,174,230,189,229,110,238,48,253,145,12,75,21,130,20,127,12, +114,0,174,244,241,237,163,237,123,242,13,251,2,5,177,12,85,15,63,13,8,9,207,3,53,253,205,247,98,247,15,251, +233,255,100,5,77,9,194,7,107,2,19,254,86,250,141,245,41,244,3,251,43,7,151,17,108,22,166,20,240,11,46,255, +40,244,152,237,57,235,82,239,45,251,133,8,176,15,3,16,83,12,34,6,251,254,4,249,121,246,43,249,193,255,41,6, +224,9,158,9,104,4,195,252,157,246,98,242,158,239,46,239,182,241,12,250,174,9,8,24,238,27,236,24,224,18,139,4, +164,239,48,224,165,219,24,225,153,240,253,3,192,16,167,20,40,18,39,10,4,1,211,250,100,246,176,246,206,255,151,8, +239,6,42,1,214,254,251,251,65,247,159,245,7,247,220,249,38,0,174,7,16,11,94,10,16,7,168,0,254,250,132,250, +80,252,62,254,78,4,152,12,167,13,240,5,149,252,70,244,236,236,96,235,115,242,208,253,69,10,185,22,28,29,196,23, +43,10,163,251,123,240,75,235,237,236,239,243,231,254,146,10,219,16,165,15,30,10,21,2,208,248,133,242,110,241,96,244, +191,251,239,6,150,16,55,20,179,17,237,9,131,254,253,242,41,235,83,234,154,241,97,253,132,8,248,15,60,17,170,11, +0,3,11,251,111,245,254,244,200,250,79,2,118,7,253,9,28,9,16,4,61,253,90,247,12,244,64,245,167,250,235,0, +162,5,53,8,149,8,68,7,6,4,178,254,101,250,208,249,189,250,190,251,43,255,39,4,142,6,183,5,152,2,85,252, +241,244,184,241,85,244,119,250,193,2,243,11,250,17,232,16,49,9,112,254,62,244,38,238,176,238,60,244,26,251,46,2, +125,8,220,10,38,9,125,6,19,3,8,254,21,250,89,249,244,250,81,254,81,2,8,5,242,6,119,7,6,3,6,251, +45,245,54,242,205,241,17,248,159,4,108,16,130,23,163,24,181,17,56,5,239,248,19,239,153,233,106,235,16,242,57,249, +242,0,215,8,181,14,187,18,21,20,53,16,227,8,152,0,56,246,108,236,79,233,129,237,42,247,6,5,4,16,36,17, +225,11,162,5,215,254,181,250,35,252,42,254,240,253,62,255,189,0,95,254,84,252,5,255,251,2,126,5,222,6,202,4, +211,254,54,249,231,245,12,245,43,249,131,1,186,8,211,12,15,14,195,9,183,0,233,249,233,247,51,246,124,243,154,243, +21,248,178,254,229,4,2,9,153,10,211,9,27,6,38,0,11,251,71,248,84,247,90,249,51,254,68,1,164,0,226,255, +156,255,72,253,47,251,168,252,54,255,127,0,50,2,6,4,29,4,213,3,240,3,18,2,68,254,53,251,153,249,34,249, +59,250,61,252,80,254,233,0,227,3,53,6,80,7,136,6,198,3,174,0,230,253,151,250,84,248,2,250,177,254,213,2, +24,5,230,5,145,4,134,0,17,252,65,250,174,250,224,251,55,255,43,4,229,5,247,3,250,2,27,2,43,254,74,251, +7,253,120,255,143,1,217,5,169,7,177,1,0,249,10,244,234,242,202,245,35,253,100,5,92,11,202,14,23,15,71,12, +87,7,40,0,181,248,248,244,0,244,189,242,176,243,247,249,29,3,42,11,155,15,108,15,88,12,146,7,141,0,241,250, +106,251,142,254,15,255,154,253,197,250,175,246,33,247,131,255,234,9,100,16,251,16,31,10,2,255,72,246,135,240,82,237, +244,241,232,253,163,7,67,11,172,11,157,8,52,2,139,252,232,248,6,246,43,245,184,246,79,248,135,249,245,251,23,0, +29,5,101,8,6,7,250,1,190,252,35,249,215,247,194,248,32,250,44,251,232,252,8,255,152,0,6,2,70,3,194,3, +245,3,128,3,29,1,171,253,209,250,232,248,34,249,184,252,208,1,19,6,26,9,211,9,162,6,197,0,171,251,250,249, +0,252,158,255,179,2,58,5,69,7,132,7,110,5,34,2,57,255,248,253,49,254,176,254,109,255,240,0,208,2,54,5, +45,8,134,9,252,7,202,4,111,255,123,247,207,241,19,243,54,249,201,0,226,8,203,14,247,14,193,9,161,1,194,248, +165,242,62,242,88,246,21,252,206,2,37,10,177,14,114,12,103,4,126,251,242,243,226,237,165,236,88,242,94,250,150,1, +30,11,20,21,209,22,227,15,44,8,157,0,143,245,208,235,94,234,244,238,81,245,147,254,155,9,225,16,184,18,21,17, +16,12,52,4,135,252,128,247,202,246,136,250,1,255,34,2,147,6,173,10,224,8,111,3,248,254,40,248,248,239,230,240, +224,251,163,7,100,19,239,31,95,34,150,20,134,255,167,234,90,216,115,208,70,217,251,238,114,10,194,35,241,48,235,45, +178,29,209,3,255,231,83,214,208,210,242,217,96,235,70,4,170,25,6,36,73,35,180,22,39,0,96,233,47,219,119,216, +252,226,23,249,104,17,125,33,207,36,192,27,135,9,126,243,216,224,138,217,229,224,216,241,4,5,211,21,239,30,112,27, +200,13,124,253,215,239,122,232,185,234,147,245,154,3,228,15,65,23,217,22,192,13,66,255,157,241,220,233,186,233,233,240, +101,253,176,10,70,20,7,24,170,20,107,10,172,253,115,243,73,237,126,236,24,243,229,254,67,10,79,17,1,18,206,11, +95,1,135,246,107,238,111,236,83,241,104,249,40,2,51,11,254,16,229,15,232,9,17,2,39,249,9,242,11,240,228,241, +105,245,0,251,176,1,66,6,44,7,50,5,222,1,172,254,109,252,255,251,44,254,81,1,212,2,119,2,172,0,97,253, +129,250,223,249,12,250,90,250,116,252,153,255,144,1,21,3,30,5,103,6,105,6,83,5,159,2,80,255,252,252,210,250, +199,248,112,249,10,253,224,0,39,4,249,6,117,7,39,5,192,2,146,1,69,0,185,254,144,254,42,0,144,2,246,4, +70,6,135,5,149,3,114,1,68,254,192,250,95,250,123,253,113,0,141,2,36,6,55,10,116,11,165,9,205,6,76,3, +56,254,186,248,125,246,31,248,45,249,144,248,115,251,106,2,97,7,135,9,231,12,91,15,237,11,115,4,140,253,251,247, +58,243,242,240,72,243,40,249,45,254,178,0,83,3,114,5,42,4,1,3,234,5,148,7,91,3,173,253,122,249,127,244, +213,240,225,242,189,248,69,254,67,3,85,8,134,11,235,9,152,3,227,252,44,248,183,242,99,237,209,238,84,247,249,255, +1,7,215,14,231,19,39,17,174,8,159,254,145,243,160,233,168,230,4,237,65,248,130,3,119,13,108,20,24,21,52,15, +209,5,198,251,202,243,137,240,49,242,77,247,141,254,91,5,51,9,127,10,251,9,227,6,246,1,16,253,246,248,228,246, +14,248,130,251,126,0,54,6,7,9,123,7,95,5,218,3,121,0,44,253,214,252,197,252,150,251,111,252,4,255,76,0, +44,1,249,2,251,3,178,3,8,3,183,1,111,0,93,0,64,0,40,255,54,254,2,253,148,250,52,249,8,251,108,254, +87,1,178,3,35,5,148,4,36,2,153,255,198,254,108,255,159,255,220,254,105,254,86,254,179,253,105,253,186,254,171,0, +97,2,232,4,207,7,144,8,43,7,222,5,54,4,91,0,3,252,90,250,122,251,238,253,134,1,79,6,233,10,223,12, +227,10,179,6,205,2,117,255,19,253,168,253,175,0,251,2,182,3,202,3,194,2,192,0,50,255,125,254,219,254,153,0, +15,2,89,2,42,3,207,3,177,1,157,254,86,253,219,251,248,248,164,247,216,248,200,250,79,253,97,0,147,2,158,3, +76,3,142,0,158,252,191,249,194,247,185,246,32,248,8,251,126,253,1,0,34,2,141,1,68,255,80,254,6,254,147,252, +163,251,51,253,222,255,114,1,254,1,147,2,164,2,199,0,211,253,27,252,163,251,137,251,138,253,119,2,180,6,146,7, +254,6,91,6,55,4,203,0,120,254,226,253,243,253,44,254,146,254,63,255,140,0,103,2,5,4,167,4,43,4,53,3, +99,2,40,1,26,255,165,253,193,253,29,254,240,253,14,254,76,254,54,254,0,255,204,0,91,1,32,0,227,254,242,253, +109,252,20,251,66,251,6,253,118,255,26,1,220,0,83,255,168,253,5,252,186,250,189,250,8,252,185,253,124,255,243,0, +10,1,126,255,178,253,252,252,72,253,240,253,214,254,247,255,200,0,202,0,12,0,230,254,255,253,41,254,98,255,221,0, +16,2,199,2,5,3,42,3,21,3,255,1,122,0,39,0,189,0,200,0,195,0,212,1,72,3,62,4,249,4,24,5, +239,3,98,2,161,1,116,1,123,1,200,1,2,2,250,1,66,2,192,2,162,2,255,1,123,1,12,1,132,0,236,255, +62,255,47,255,110,0,179,1,176,1,127,1,154,1,62,0,150,253,4,252,149,251,9,251,118,251,198,253,84,0,181,1, +226,1,174,0,101,254,52,252,208,250,157,250,212,251,158,253,38,255,139,0,59,1,98,0,251,254,52,254,178,253,77,253, +126,253,12,254,207,254,39,0,164,1,106,2,74,2,116,1,86,0,78,255,28,254,75,253,129,254,88,1,54,3,46,3, +61,2,198,0,20,255,50,254,165,254,39,0,71,2,79,4,104,5,208,4,90,2,102,255,130,253,81,252,137,251,97,252, +156,254,172,0,203,2,16,5,159,5,105,4,68,3,178,1,175,254,18,252,120,251,11,252,38,253,226,254,145,0,95,1, +22,1,20,0,43,255,179,254,103,254,153,254,104,255,228,255,198,255,113,255,133,254,123,253,219,253,16,255,109,255,82,255, +51,255,44,254,235,252,246,252,203,253,181,254,31,0,37,1,122,0,59,255,237,254,48,255,113,255,194,255,198,255,77,255, +235,254,177,254,52,254,251,253,243,254,185,0,38,2,196,2,151,2,204,1,35,1,237,0,84,0,91,255,74,255,238,255, +47,0,222,0,222,2,220,4,237,5,141,6,98,6,224,4,109,2,113,255,21,253,20,253,174,254,32,0,60,2,54,5, +114,6,87,5,190,3,203,1,145,255,179,254,240,254,11,255,226,255,179,1,6,3,182,3,214,3,116,2,144,0,163,255, +147,254,62,253,144,253,237,254,176,255,173,0,177,1,229,0,86,255,250,254,219,254,106,254,230,254,248,255,133,0,196,0, +83,0,183,254,107,253,87,253,96,253,115,253,106,254,90,255,44,255,175,254,105,254,159,253,161,252,178,252,166,253,95,254, +8,255,56,0,17,1,194,0,28,0,128,255,34,254,153,252,144,252,202,253,247,254,50,0,181,1,98,2,166,1,112,0, +128,255,158,254,219,253,33,254,189,255,152,1,224,2,207,3,8,4,198,2,241,0,214,255,3,255,24,254,43,254,112,255, +208,0,35,2,174,3,132,4,220,3,109,2,30,1,245,255,213,254,18,254,250,253,111,254,59,255,15,0,129,0,161,0, +228,0,52,1,72,1,63,1,173,0,47,255,231,253,143,253,41,253,23,253,205,254,207,0,246,0,110,0,15,0,89,254, +252,251,64,251,148,251,250,251,164,253,72,0,201,1,244,1,165,1,144,0,160,254,131,252,209,250,73,250,16,251,75,252, +5,254,155,0,136,2,127,2,123,1,65,0,167,254,130,253,147,253,68,254,83,255,224,0,22,2,105,2,69,2,161,1, +92,0,64,255,196,254,175,254,73,255,222,0,222,2,141,4,88,5,191,4,21,3,37,1,24,255,72,253,236,252,77,254, +92,0,171,2,71,5,4,7,180,6,199,4,11,2,239,254,151,252,8,252,206,252,104,254,227,0,48,3,222,3,78,3, +168,2,247,1,217,0,75,255,187,253,40,253,252,253,87,255,174,0,26,2,231,2,112,2,64,1,163,255,155,253,58,252, +60,252,13,253,73,254,148,255,19,0,23,0,140,0,217,0,107,0,1,0,139,255,113,254,130,253,92,253,146,253,104,254, +227,255,185,0,162,0,109,0,222,255,226,254,132,254,183,254,163,254,195,254,154,255,65,0,35,0,241,255,85,0,227,0, +185,0,32,0,29,0,48,0,173,255,252,255,115,1,192,1,176,0,92,0,51,0,7,255,179,254,249,255,230,0,131,1, +247,2,209,3,3,3,245,1,47,1,13,0,250,254,128,254,151,254,142,255,33,1,74,2,222,2,210,2,188,1,92,0, +158,255,232,254,84,254,30,255,120,0,166,0,85,0,140,0,132,0,22,0,1,0,186,255,200,254,37,254,8,254,183,253, +174,253,113,254,73,255,17,0,236,0,183,0,88,255,153,254,117,254,163,253,98,253,253,254,154,0,29,1,173,1,191,1, +16,0,4,254,212,252,215,251,154,251,1,253,213,254,83,0,1,2,245,2,98,2,153,1,25,1,20,0,34,255,204,254, +31,254,99,253,245,253,99,255,124,0,24,1,82,1,82,1,55,1,145,0,225,255,152,0,9,2,69,2,176,1,100,1, +175,0,118,255,47,255,40,0,77,1,45,2,2,3,147,3,36,3,181,1,148,0,79,0,167,255,111,254,51,254,19,255, +23,0,132,1,43,3,164,3,252,2,45,2,230,0,10,255,129,253,168,252,193,252,42,254,240,255,23,1,245,1,70,2, +104,1,68,0,116,255,85,254,137,253,217,253,62,254,151,254,227,255,236,0,144,0,147,0,97,1,220,0,93,255,192,254, +54,254,30,253,85,253,250,254,244,255,37,0,141,0,105,0,27,255,179,253,224,252,161,252,90,253,217,254,58,0,89,1, +104,2,229,2,133,2,130,1,242,255,123,254,33,254,134,254,169,254,216,254,162,255,207,0,89,2,216,3,2,4,232,2, +229,1,228,0,93,255,64,254,18,254,95,254,143,255,163,1,21,3,68,3,212,2,255,1,50,1,172,0,122,255,38,254, +231,254,229,0,102,1,24,1,175,1,15,2,154,1,90,1,140,0,72,254,169,252,108,253,229,254,34,255,244,254,26,0, +253,1,82,2,1,1,231,255,214,254,238,252,227,251,77,252,202,251,184,250,57,252,131,255,112,1,34,2,184,2,58,2, +108,0,162,254,89,253,128,252,131,252,144,253,53,255,97,0,62,0,177,255,19,0,202,0,223,0,247,0,112,1,141,1, +84,1,66,1,249,0,60,0,168,255,166,255,208,255,136,255,232,254,239,254,4,0,53,1,233,1,99,2,131,2,2,2, +70,1,135,0,160,255,241,254,205,254,219,254,234,254,25,255,82,255,195,255,197,0,243,1,184,2,24,3,250,2,224,1, +251,255,39,254,217,252,51,252,157,252,74,254,126,0,48,2,233,2,209,2,50,2,28,1,130,255,204,253,182,252,109,252, +226,252,94,254,115,0,1,2,248,2,168,3,35,3,29,1,15,255,188,253,248,252,117,253,6,255,202,255,104,255,51,255, +84,255,141,255,59,0,255,0,114,1,234,1,175,1,54,0,27,255,7,255,193,254,221,254,56,0,16,1,229,0,123,1, +245,1,162,0,115,255,195,255,141,255,155,254,255,254,67,0,162,0,159,0,49,1,180,1,80,1,82,0,178,255,179,255, +167,255,174,255,144,0,124,1,86,1,9,1,69,1,238,0,239,255,123,255,135,255,122,255,159,255,249,255,55,0,165,0, +58,1,62,1,168,0,6,0,106,255,206,254,131,254,195,254,86,255,219,255,63,0,134,0,69,0,114,255,250,254,43,255, +30,255,184,254,202,254,34,255,64,255,176,255,173,0,86,1,53,1,168,0,235,255,10,255,249,253,193,252,30,252,249,252, +232,254,184,0,18,2,20,3,56,3,48,2,165,0,8,255,85,253,135,252,180,253,194,255,6,1,244,1,45,3,138,3, +155,2,131,1,102,0,211,254,201,253,15,254,229,254,226,255,70,1,114,2,159,2,14,2,84,1,151,0,238,255,177,255, +21,0,122,0,44,0,190,255,208,255,147,255,210,254,243,254,16,0,173,0,186,0,13,1,31,1,90,0,151,255,150,255, +193,255,64,255,102,254,60,254,151,254,153,254,232,254,51,0,5,1,177,0,225,0,172,1,70,1,7,0,111,255,64,255, +2,255,240,254,200,254,178,254,83,255,35,0,151,0,35,1,99,1,204,0,85,0,58,0,135,255,208,254,253,254,90,255, +209,255,212,0,32,1,79,0,21,0,79,0,135,255,217,254,135,255,71,0,168,0,144,1,242,1,181,0,113,255,80,255, +67,255,5,255,124,255,121,0,73,1,237,1,25,2,62,1,225,255,21,255,66,255,67,0,132,1,31,2,37,2,81,2, +233,1,211,255,128,253,236,252,99,253,213,253,36,255,117,1,51,3,182,3,75,3,184,1,84,255,89,253,72,252,8,252, +167,252,230,253,93,255,198,0,140,1,116,1,31,1,187,0,40,0,253,255,45,0,186,255,28,255,85,255,112,255,159,254, +26,254,46,254,221,253,250,253,203,255,214,1,94,2,61,2,37,2,245,0,203,254,144,253,138,253,131,253,217,253,50,255, +59,0,56,0,114,0,10,1,190,0,1,0,219,255,208,255,164,255,219,255,29,0,41,0,122,0,172,0,104,0,118,0, +162,0,26,0,190,255,12,0,192,255,237,254,213,254,17,255,23,255,164,255,176,0,186,1,242,2,153,3,182,2,22,1, +52,255,171,252,223,250,25,251,7,252,30,253,120,255,29,2,64,3,91,3,226,2,84,1,164,255,216,254,45,254,96,253, +57,253,153,253,85,254,188,255,3,1,106,1,195,1,62,2,213,1,205,0,51,0,194,255,66,255,135,255,136,0,47,1, +87,1,162,1,242,1,169,1,189,0,176,255,5,255,200,254,167,254,162,254,39,255,44,0,61,1,58,2,189,2,246,1, +103,0,130,255,6,255,247,253,67,253,246,253,17,255,238,255,93,1,55,3,102,4,203,4,155,4,185,3,93,2,185,0, +234,254,192,253,190,253,99,254,131,255,2,1,242,1,34,2,44,2,118,1,176,255,76,254,115,253,168,251,181,249,145,249, +124,250,31,251,117,252,213,254,81,0,63,0,6,0,214,255,143,254,208,252,98,252,56,253,48,254,90,255,221,0,198,1, +207,1,136,1,192,0,96,255,48,254,103,253,0,253,180,253,68,255,132,0,131,1,84,2,0,2,249,0,118,0,184,255, +110,254,74,254,135,255,196,0,231,1,233,2,240,2,84,2,150,1,93,0,165,255,63,0,127,0,255,255,123,0,14,1, +240,255,197,254,143,254,151,253,120,252,51,253,162,254,135,255,233,0,60,2,5,2,42,1,39,0,12,254,66,252,152,252, +133,253,5,254,189,255,64,2,40,3,199,2,120,2,90,1,60,255,0,254,19,254,92,254,247,254,44,0,15,1,49,1, +212,0,189,255,73,254,183,253,53,254,5,255,225,255,122,0,168,0,24,1,168,1,96,1,232,0,74,1,134,1,35,1, +104,1,12,2,194,1,82,1,114,1,246,0,236,255,162,255,189,255,172,255,44,0,18,1,101,1,111,1,137,1,38,1, +95,0,180,255,22,255,206,254,73,255,253,255,106,0,241,0,140,1,163,1,55,1,205,0,149,0,114,0,115,0,198,0, +38,1,18,1,203,0,199,0,131,0,170,255,238,254,181,254,224,254,135,255,69,0,139,0,204,0,32,1,205,0,82,0, +101,0,12,0,46,255,62,255,199,255,124,255,88,255,2,0,50,0,1,0,152,0,73,1,52,1,249,0,240,0,253,0, +51,1,246,0,250,255,81,255,43,255,147,254,234,253,36,254,234,254,217,255,234,0,136,1,149,1,137,1,8,1,240,255, +66,255,30,255,203,254,188,254,114,255,44,0,181,0,131,1,37,2,40,2,246,1,83,1,213,255,136,254,78,254,112,254, +176,254,201,255,49,1,155,1,87,1,39,1,153,0,165,255,90,255,199,255,237,255,202,255,250,255,95,0,177,0,13,1, +108,1,162,1,135,1,235,0,237,255,233,254,31,254,16,254,233,254,177,255,207,255,242,255,25,0,205,255,244,255,224,0, +37,1,166,0,109,0,191,255,26,254,7,253,241,252,21,253,77,254,171,0,8,2,27,2,119,2,137,2,55,1,172,255, +209,254,19,254,131,253,162,253,46,254,209,254,97,255,210,255,134,0,52,1,221,0,237,255,160,255,193,255,179,255,228,255, +119,0,228,0,250,0,162,0,214,255,26,255,205,254,207,254,33,255,153,255,197,255,206,255,41,0,181,0,77,1,216,1, +223,1,80,1,178,0,5,0,4,255,42,254,33,254,233,254,239,255,147,0,21,1,21,2,3,3,237,2,70,2,148,1, +109,0,42,255,168,254,103,254,227,253,8,254,37,255,39,0,159,0,209,0,136,0,167,255,173,254,245,253,162,253,191,253, +14,254,108,254,7,255,161,255,184,255,133,255,154,255,217,255,11,0,116,0,250,0,23,1,12,1,113,1,202,1,109,1, +176,0,214,255,177,254,230,253,44,254,239,254,163,255,152,0,132,1,190,1,126,1,239,0,226,255,255,254,223,254,238,254, +239,254,117,255,101,0,23,1,96,1,52,1,119,0,106,255,115,254,3,254,90,254,20,255,5,0,141,1,250,2,239,2, +173,1,52,0,154,254,53,253,181,252,194,252,57,253,204,254,221,0,14,2,145,2,208,2,19,2,95,0,203,254,200,253, +53,253,63,253,30,254,169,255,16,1,147,1,194,1,60,2,36,2,55,1,170,0,112,0,145,255,196,254,196,254,173,254, +120,254,12,255,219,255,41,0,150,0,53,1,108,1,144,1,193,1,60,1,61,0,141,255,212,254,240,253,223,253,210,254, +250,255,61,1,158,2,67,3,233,2,72,2,73,1,117,255,213,253,167,253,37,254,73,254,198,254,32,0,116,1,49,2, +148,2,112,2,160,1,162,0,199,255,4,255,124,254,74,254,155,254,164,255,221,0,117,1,104,1,219,0,208,255,233,254, +116,254,217,253,155,253,208,254,123,0,36,1,98,1,176,1,52,1,49,0,183,255,106,255,193,254,108,254,202,254,104,255, +41,0,4,1,145,1,162,1,74,1,120,0,114,255,249,254,107,255,79,0,14,1,128,1,149,1,42,1,111,0,211,255, +126,255,133,255,235,255,63,0,86,0,142,0,149,0,255,255,160,255,240,255,250,255,196,255,63,0,206,0,162,0,142,0, +170,0,2,0,46,255,36,255,72,255,74,255,157,255,206,255,165,255,227,255,77,0,28,0,205,255,203,255,145,255,82,255, +150,255,2,0,71,0,109,0,22,0,76,255,193,254,137,254,137,254,62,255,129,0,97,1,150,1,99,1,189,0,202,255, +248,254,120,254,131,254,73,255,79,0,228,0,7,1,243,0,165,0,60,0,246,255,179,255,84,255,53,255,112,255,140,255, +134,255,219,255,44,0,225,255,154,255,202,255,156,255,34,255,128,255,83,0,109,0,71,0,113,0,26,0,43,255,179,254, +216,254,16,255,86,255,166,255,223,255,33,0,89,0,90,0,93,0,123,0,114,0,58,0,233,255,119,255,4,255,164,254, +134,254,43,255,75,0,201,0,183,0,234,0,215,0,234,255,64,255,101,255,96,255,35,255,145,255,62,0,68,0,252,255, +239,255,221,255,161,255,133,255,165,255,224,255,41,0,120,0,192,0,1,1,20,1,168,0,197,255,250,254,186,254,8,255, +189,255,145,0,30,1,86,1,56,1,119,0,91,255,214,254,13,255,106,255,222,255,120,0,201,0,170,0,82,0,214,255, +129,255,135,255,125,255,100,255,183,255,19,0,251,255,8,0,100,0,105,0,59,0,49,0,226,255,139,255,216,255,48,0, +14,0,36,0,111,0,36,0,177,255,199,255,228,255,192,255,226,255,51,0,74,0,70,0,51,0,229,255,152,255,139,255, +174,255,24,0,185,0,1,1,191,0,98,0,15,0,143,255,64,255,181,255,154,0,34,1,50,1,5,1,144,0,238,255, +113,255,24,255,250,254,88,255,193,255,186,255,226,255,133,0,215,0,196,0,215,0,126,0,95,255,163,254,203,254,2,255, +49,255,214,255,134,0,201,0,195,0,98,0,165,255,22,255,245,254,8,255,55,255,128,255,231,255,148,0,56,1,84,1, +31,1,211,0,21,0,28,255,173,254,137,254,27,254,18,254,31,255,125,0,93,1,233,1,23,2,126,1,115,0,132,255, +153,254,220,253,244,253,159,254,40,255,200,255,174,0,40,1,15,1,237,0,158,0,254,255,158,255,109,255,244,254,183,254, +16,255,81,255,120,255,10,0,128,0,115,0,162,0,47,1,85,1,20,1,230,0,160,0,249,255,36,255,146,254,148,254, +4,255,160,255,155,0,186,1,31,2,205,1,105,1,172,0,99,255,109,254,41,254,45,254,147,254,119,255,92,0,35,1, +194,1,149,1,151,0,179,255,57,255,224,254,202,254,42,255,212,255,126,0,209,0,175,0,83,0,189,255,246,254,134,254, +145,254,158,254,214,254,152,255,107,0,222,0,22,1,237,0,87,0,217,255,122,255,244,254,215,254,131,255,39,0,69,0, +90,0,110,0,55,0,18,0,76,0,120,0,96,0,85,0,97,0,88,0,83,0,87,0,44,0,221,255,176,255,157,255, +122,255,105,255,142,255,225,255,93,0,210,0,242,0,213,0,167,0,57,0,170,255,128,255,151,255,130,255,147,255,6,0, +106,0,171,0,14,1,55,1,223,0,125,0,59,0,198,255,50,255,216,254,216,254,51,255,183,255,29,0,113,0,195,0, +212,0,138,0,27,0,183,255,143,255,156,255,135,255,86,255,101,255,162,255,217,255,61,0,194,0,250,0,211,0,132,0, +50,0,255,255,229,255,204,255,251,255,122,0,169,0,93,0,28,0,5,0,222,255,184,255,160,255,141,255,155,255,187,255, +235,255,100,0,229,0,254,0,6,1,33,1,164,0,175,255,43,255,18,255,16,255,133,255,55,0,105,0,103,0,151,0, +107,0,240,255,235,255,45,0,46,0,56,0,92,0,25,0,163,255,145,255,209,255,18,0,82,0,140,0,163,0,161,0, +147,0,124,0,96,0,58,0,21,0,246,255,201,255,173,255,244,255,127,0,232,0,50,1,100,1,22,1,76,0,172,255, +105,255,49,255,45,255,168,255,75,0,183,0,8,1,45,1,240,0,142,0,74,0,254,255,167,255,126,255,120,255,139,255, +212,255,43,0,82,0,95,0,82,0,10,0,182,255,129,255,88,255,100,255,201,255,31,0,40,0,42,0,50,0,20,0, +239,255,218,255,204,255,228,255,4,0,234,255,213,255,244,255,233,255,195,255,241,255,44,0,36,0,70,0,162,0,178,0, +136,0,126,0,102,0,43,0,8,0,234,255,181,255,171,255,212,255,242,255,26,0,111,0,185,0,201,0,179,0,138,0, +76,0,252,255,184,255,170,255,221,255,29,0,56,0,49,0,32,0,11,0,223,255,171,255,162,255,198,255,232,255,9,0, +58,0,85,0,79,0,66,0,25,0,211,255,170,255,154,255,130,255,150,255,222,255,8,0,39,0,113,0,138,0,67,0, +15,0,7,0,217,255,178,255,216,255,242,255,206,255,192,255,227,255,240,255,212,255,166,255,131,255,157,255,251,255,72,0, +91,0,76,0,26,0,199,255,135,255,96,255,80,255,152,255,38,0,113,0,123,0,167,0,168,0,41,0,190,255,186,255, +160,255,137,255,247,255,139,0,197,0,229,0,236,0,149,0,42,0,218,255,103,255,35,255,101,255,170,255,193,255,26,0, +109,0,63,0,11,0,24,0,233,255,146,255,135,255,155,255,165,255,213,255,253,255,227,255,193,255,164,255,122,255,138,255, +210,255,234,255,224,255,1,0,31,0,6,0,214,255,147,255,65,255,17,255,17,255,48,255,123,255,214,255,2,0,14,0, +32,0,23,0,224,255,169,255,133,255,112,255,139,255,217,255,21,0,42,0,83,0,129,0,85,0,237,255,182,255,144,255, +72,255,72,255,187,255,18,0,27,0,67,0,129,0,129,0,99,0,86,0,47,0,223,255,140,255,80,255,88,255,165,255, +238,255,31,0,89,0,131,0,128,0,102,0,56,0,242,255,200,255,192,255,175,255,170,255,205,255,228,255,226,255,250,255, +38,0,58,0,52,0,27,0,240,255,206,255,197,255,211,255,226,255,203,255,169,255,214,255,46,0,34,0,197,255,184,255, +248,255,1,0,213,255,202,255,209,255,200,255,221,255,23,0,46,0,13,0,236,255,230,255,217,255,178,255,142,255,135,255, +154,255,174,255,197,255,251,255,61,0,92,0,113,0,148,0,126,0,16,0,175,255,139,255,107,255,101,255,190,255,63,0, +136,0,161,0,171,0,150,0,87,0,9,0,217,255,219,255,222,255,190,255,170,255,188,255,196,255,207,255,7,0,56,0, +53,0,49,0,63,0,54,0,35,0,28,0,4,0,221,255,201,255,202,255,223,255,3,0,17,0,1,0,255,255,1,0, +226,255,196,255,197,255,186,255,174,255,220,255,36,0,51,0,33,0,35,0,19,0,198,255,126,255,124,255,157,255,178,255, +205,255,242,255,249,255,223,255,203,255,198,255,195,255,210,255,251,255,37,0,63,0,76,0,76,0,56,0,13,0,213,255, +183,255,200,255,233,255,11,0,68,0,129,0,145,0,126,0,108,0,71,0,10,0,221,255,204,255,203,255,238,255,44,0, +77,0,71,0,64,0,55,0,33,0,16,0,18,0,40,0,78,0,100,0,79,0,39,0,7,0,231,255,205,255,199,255, +195,255,194,255,230,255,26,0,39,0,25,0,19,0,12,0,0,0,251,255,242,255,213,255,187,255,189,255,211,255,230,255, +226,255,222,255,255,255,43,0,54,0,54,0,61,0,40,0,250,255,229,255,234,255,224,255,209,255,227,255,2,0,11,0, +4,0,14,0,38,0,40,0,26,0,34,0,46,0,20,0,240,255,239,255,246,255,224,255,201,255,212,255,242,255,250,255, +237,255,241,255,19,0,42,0,45,0,70,0,102,0,76,0,18,0,1,0,14,0,252,255,213,255,195,255,203,255,221,255, +243,255,17,0,52,0,73,0,69,0,60,0,55,0,37,0,2,0,237,255,247,255,11,0,20,0,22,0,25,0,29,0, +23,0,13,0,12,0,13,0,252,255,218,255,199,255,211,255,228,255,224,255,220,255,244,255,17,0,16,0,248,255,222,255, +209,255,219,255,244,255,4,0,10,0,17,0,22,0,27,0,39,0,40,0,14,0,240,255,229,255,224,255,210,255,202,255, +217,255,250,255,18,0,33,0,52,0,65,0,55,0,34,0,6,0,223,255,215,255,3,0,42,0,46,0,53,0,59,0, +31,0,249,255,229,255,211,255,206,255,228,255,248,255,1,0,23,0,40,0,24,0,252,255,226,255,206,255,211,255,228,255, +228,255,230,255,252,255,2,0,243,255,246,255,3,0,254,255,246,255,245,255,246,255,253,255,0,0,247,255,254,255,14,0, +254,255,225,255,228,255,242,255,239,255,247,255,8,0,6,0,4,0,19,0,19,0,251,255,224,255,191,255,153,255,144,255, +172,255,208,255,236,255,255,255,1,0,247,255,245,255,248,255,246,255,240,255,236,255,237,255,248,255,8,0,18,0,17,0, +15,0,17,0,12,0,250,255,232,255,226,255,231,255,238,255,248,255,5,0,16,0,19,0,22,0,28,0,26,0,10,0, +4,0,19,0,28,0,17,0,12,0,21,0,17,0,252,255,242,255,253,255,13,0,20,0,25,0,36,0,37,0,27,0, +29,0,44,0,38,0,15,0,11,0,19,0,21,0,30,0,42,0,39,0,44,0,63,0,55,0,24,0,18,0,24,0, +17,0,22,0,37,0,26,0,10,0,19,0,33,0,40,0,54,0,58,0,46,0,38,0,27,0,8,0,8,0,20,0, +13,0,19,0,58,0,80,0,67,0,60,0,57,0,30,0,2,0,5,0,33,0,59,0,65,0,62,0,70,0,73,0, +55,0,46,0,56,0,41,0,12,0,21,0,41,0,22,0,255,255,8,0,14,0,2,0,8,0,33,0,40,0,26,0, +13,0,11,0,17,0,25,0,30,0,35,0,40,0,41,0,43,0,52,0,65,0,69,0,58,0,40,0,23,0,6,0, +246,255,240,255,242,255,248,255,6,0,19,0,13,0,255,255,0,0,3,0,244,255,227,255,236,255,11,0,34,0,28,0, +255,255,236,255,241,255,250,255,247,255,239,255,244,255,7,0,24,0,25,0,14,0,10,0,15,0,16,0,5,0,252,255, +2,0,8,0,0,0,253,255,15,0,24,0,9,0,0,0,7,0,5,0,249,255,251,255,1,0,253,255,240,255,231,255, +239,255,6,0,6,0,231,255,216,255,227,255,233,255,235,255,244,255,234,255,210,255,208,255,215,255,204,255,200,255,217,255, +224,255,218,255,224,255,241,255,253,255,8,0,17,0,13,0,249,255,226,255,217,255,214,255,200,255,191,255,212,255,240,255, +248,255,250,255,6,0,10,0,4,0,252,255,240,255,223,255,208,255,196,255,195,255,215,255,238,255,243,255,237,255,239,255, +245,255,242,255,228,255,220,255,225,255,226,255,213,255,205,255,213,255,220,255,219,255,219,255,221,255,232,255,247,255,243,255, +227,255,227,255,233,255,226,255,230,255,248,255,245,255,231,255,236,255,236,255,221,255,227,255,252,255,5,0,7,0,20,0, +28,0,27,0,29,0,30,0,23,0,17,0,6,0,244,255,240,255,248,255,250,255,249,255,250,255,249,255,245,255,249,255, +2,0,3,0,249,255,240,255,245,255,0,0,0,0,245,255,234,255,223,255,219,255,235,255,251,255,240,255,221,255,223,255, +243,255,253,255,249,255,245,255,245,255,238,255,226,255,232,255,248,255,243,255,233,255,251,255,20,0,13,0,252,255,3,0, +13,0,7,0,8,0,22,0,24,0,11,0,12,0,19,0,3,0,232,255,232,255,250,255,3,0,7,0,19,0,28,0, +23,0,16,0,19,0,29,0,28,0,6,0,249,255,8,0,17,0,1,0,252,255,15,0,24,0,17,0,11,0,1,0, +252,255,5,0,11,0,6,0,14,0,25,0,13,0,254,255,254,255,6,0,12,0,4,0,238,255,229,255,244,255,246,255, +238,255,249,255,253,255,238,255,250,255,28,0,27,0,8,0,7,0,255,255,244,255,4,0,18,0,0,0,252,255,17,0, +18,0,11,0,33,0,61,0,59,0,36,0,8,0,244,255,239,255,238,255,234,255,243,255,0,0,0,0,252,255,255,255, +250,255,243,255,249,255,1,0,248,255,226,255,211,255,218,255,238,255,244,255,239,255,246,255,6,0,10,0,7,0,5,0, +254,255,242,255,233,255,229,255,240,255,8,0,19,0,9,0,6,0,18,0,20,0,8,0,5,0,13,0,16,0,12,0, +10,0,6,0,249,255,230,255,218,255,222,255,233,255,237,255,239,255,251,255,8,0,7,0,4,0,5,0,247,255,227,255, +228,255,238,255,231,255,228,255,241,255,246,255,240,255,248,255,6,0,4,0,255,255,251,255,240,255,230,255,222,255,209,255, +210,255,225,255,227,255,225,255,247,255,12,0,2,0,249,255,0,0,4,0,6,0,10,0,0,0,242,255,243,255,248,255, +247,255,245,255,237,255,234,255,246,255,242,255,216,255,225,255,11,0,16,0,0,0,17,0,30,0,6,0,245,255,248,255, +237,255,229,255,245,255,3,0,253,255,253,255,10,0,18,0,4,0,236,255,228,255,244,255,253,255,242,255,241,255,253,255, +254,255,243,255,241,255,249,255,249,255,242,255,246,255,4,0,0,0,230,255,219,255,231,255,231,255,218,255,220,255,228,255, +227,255,233,255,247,255,244,255,238,255,243,255,236,255,215,255,220,255,1,0,27,0,24,0,10,0,1,0,249,255,238,255, +233,255,236,255,238,255,239,255,248,255,5,0,10,0,7,0,2,0,252,255,248,255,255,255,8,0,255,255,233,255,230,255, +253,255,9,0,248,255,236,255,244,255,249,255,244,255,249,255,253,255,240,255,230,255,236,255,242,255,243,255,249,255,7,0, +22,0,25,0,13,0,8,0,19,0,14,0,242,255,227,255,233,255,237,255,242,255,0,0,12,0,18,0,26,0,31,0, +26,0,21,0,18,0,12,0,5,0,252,255,247,255,1,0,14,0,12,0,13,0,26,0,23,0,7,0,8,0,23,0, +22,0,3,0,237,255,222,255,221,255,230,255,238,255,242,255,249,255,7,0,21,0,27,0,22,0,8,0,252,255,1,0, +18,0,27,0,22,0,24,0,26,0,7,0,245,255,255,255,5,0,249,255,253,255,17,0,18,0,12,0,21,0,19,0, +8,0,11,0,15,0,3,0,0,0,7,0,2,0,0,0,12,0,16,0,7,0,3,0,8,0,12,0,8,0,249,255, +244,255,7,0,22,0,11,0,255,255,8,0,22,0,23,0,10,0,250,255,247,255,253,255,0,0,6,0,17,0,22,0, +29,0,57,0,74,0,57,0,39,0,39,0,30,0,1,0,239,255,248,255,10,0,14,0,9,0,19,0,40,0,36,0, +11,0,6,0,15,0,5,0,241,255,239,255,244,255,240,255,237,255,242,255,251,255,251,255,242,255,238,255,247,255,252,255, +248,255,246,255,246,255,236,255,228,255,240,255,254,255,253,255,255,255,11,0,13,0,2,0,5,0,28,0,41,0,32,0, +15,0,8,0,9,0,19,0,34,0,44,0,48,0,45,0,39,0,35,0,29,0,19,0,20,0,29,0,23,0,10,0, +8,0,253,255,232,255,237,255,3,0,0,0,250,255,14,0,25,0,13,0,13,0,19,0,14,0,18,0,26,0,10,0, +250,255,4,0,7,0,251,255,252,255,253,255,240,255,240,255,253,255,252,255,251,255,4,0,3,0,254,255,4,0,5,0, +248,255,243,255,241,255,230,255,220,255,222,255,237,255,2,0,16,0,19,0,26,0,34,0,26,0,19,0,23,0,14,0, +254,255,255,255,252,255,239,255,246,255,12,0,16,0,14,0,28,0,42,0,45,0,47,0,46,0,39,0,35,0,25,0, +5,0,255,255,10,0,17,0,20,0,30,0,41,0,44,0,36,0,19,0,6,0,3,0,249,255,228,255,223,255,235,255, +239,255,233,255,233,255,239,255,244,255,244,255,234,255,222,255,222,255,229,255,228,255,225,255,233,255,240,255,241,255,248,255, +7,0,9,0,255,255,251,255,255,255,1,0,0,0,247,255,239,255,251,255,19,0,28,0,26,0,28,0,27,0,28,0, +36,0,32,0,11,0,8,0,25,0,27,0,19,0,19,0,17,0,14,0,20,0,15,0,254,255,252,255,2,0,253,255, +255,255,10,0,253,255,234,255,242,255,251,255,241,255,241,255,249,255,245,255,244,255,255,255,255,255,244,255,240,255,241,255, +243,255,250,255,1,0,4,0,9,0,12,0,9,0,3,0,255,255,1,0,5,0,254,255,244,255,252,255,7,0,0,0, +255,255,18,0,22,0,4,0,251,255,0,0,3,0,7,0,11,0,8,0,6,0,2,0,242,255,232,255,240,255,243,255, +236,255,246,255,14,0,20,0,11,0,7,0,8,0,4,0,247,255,240,255,249,255,3,0,0,0,252,255,252,255,245,255, +237,255,243,255,253,255,254,255,255,255,7,0,12,0,10,0,8,0,7,0,4,0,252,255,240,255,238,255,251,255,4,0, +255,255,246,255,252,255,12,0,18,0,11,0,4,0,253,255,243,255,239,255,243,255,244,255,246,255,254,255,254,255,238,255, +228,255,230,255,231,255,236,255,249,255,255,255,254,255,254,255,255,255,4,0,16,0,18,0,1,0,250,255,5,0,11,0, +12,0,18,0,17,0,2,0,245,255,245,255,252,255,6,0,7,0,3,0,10,0,22,0,18,0,8,0,12,0,18,0, +6,0,246,255,241,255,239,255,234,255,239,255,249,255,247,255,240,255,249,255,6,0,0,0,249,255,4,0,4,0,238,255, +224,255,229,255,233,255,231,255,231,255,232,255,237,255,243,255,241,255,240,255,252,255,2,0,253,255,3,0,14,0,7,0, +0,0,4,0,3,0,251,255,251,255,5,0,15,0,19,0,15,0,11,0,14,0,16,0,14,0,13,0,9,0,2,0, +4,0,2,0,247,255,252,255,18,0,15,0,249,255,248,255,3,0,254,255,247,255,254,255,4,0,2,0,255,255,255,255, +255,255,251,255,242,255,233,255,227,255,215,255,213,255,235,255,2,0,9,0,14,0,25,0,24,0,11,0,254,255,249,255, +253,255,255,255,249,255,248,255,254,255,250,255,241,255,250,255,4,0,253,255,252,255,6,0,2,0,245,255,245,255,249,255, +247,255,251,255,5,0,5,0,2,0,0,0,249,255,241,255,240,255,244,255,250,255,2,0,6,0,3,0,7,0,16,0, +14,0,6,0,5,0,5,0,254,255,248,255,244,255,235,255,235,255,252,255,9,0,9,0,14,0,20,0,8,0,251,255, +251,255,246,255,234,255,236,255,247,255,251,255,2,0,9,0,6,0,3,0,10,0,10,0,0,0,248,255,241,255,236,255, +244,255,252,255,247,255,248,255,6,0,14,0,13,0,8,0,0,0,253,255,5,0,9,0,4,0,2,0,254,255,247,255, +246,255,245,255,244,255,255,255,5,0,247,255,240,255,255,255,255,255,240,255,247,255,6,0,255,255,245,255,245,255,246,255, +247,255,253,255,2,0,4,0,8,0,4,0,252,255,255,255,8,0,13,0,15,0,7,0,250,255, +}; \ No newline at end of file diff --git a/src/locale/I18n.cpp b/src/locale/I18n.cpp new file mode 100755 index 0000000..380134c --- /dev/null +++ b/src/locale/I18n.cpp @@ -0,0 +1,121 @@ +#include "I18n.h" +#include +#include "../AppPlatform.h" +#include "../util/StringUtils.h" +#include "../world/level/tile/Tile.h" +#include "../world/item/ItemInstance.h" +#include + +I18n::Map I18n::_strings; + +void I18n::loadLanguage( AppPlatform* platform, const std::string& languageCode ) +{ + _strings.clear(); + fillTranslations(platform, "lang/en_US.lang", true); + + if (languageCode != "en_US") + fillTranslations(platform, "lang/" + languageCode + ".lang", true); +} + +bool I18n::get( const std::string& id, std::string& out ) { + Map::const_iterator cit = _strings.find(id); + if (cit != _strings.end()) { + out = cit->second; + return true; + } + return false; +} + +std::string I18n::get( const std::string& id ) +{ + Map::const_iterator cit = _strings.find(id); + if (cit != _strings.end()) + return cit->second; + + return id + '<';//lang.getElement(id); +} + +void I18n::fillTranslations( AppPlatform* platform, const std::string& filename, bool overwrite ) +{ + BinaryBlob blob = platform->readAssetFile(filename); + if (!blob.data || blob.size <= 0) + return; + + std::string data((const char*)blob.data, blob.size); + std::stringstream fin(data, std::ios_base::in); + + std::string line; + while( std::getline(fin, line) ) { + int spos = line.find('='); + if (spos == std::string::npos) + continue; + + std::string key = Util::stringTrim(line.substr(0, spos)); + Map::const_iterator cit = _strings.find(key); + if (!overwrite && cit != _strings.end()) + continue; + + std::string value = Util::stringTrim(line.substr(spos + 1)); + _strings.insert( std::make_pair(key, value ) ); + } + + delete[] blob.data; +} + +std::string I18n::getDescriptionString( const ItemInstance& item ) +{ + // Convert to lower. Normally std::transform would be used, but tolower might be + // implemented with a macro in certain C-implementations -> messing stuff up + const std::string desc = item.getDescriptionId(); + + std::string s = desc; + std::string trans; + + // Handle special cases + if (item.id == Tile::cloth->id) + return get(item.getAuxValue()? "desc.wool" : "desc.woolstring"); + else if (item.id == Tile::fenceGate->id) + return I18n::get("desc.fence"); + else if (item.id == Tile::stoneSlabHalf->id) + return I18n::get("desc.slab"); + + for (unsigned int i = 0; i < s.length(); ++i) + s[i] = ::tolower(s[i]); + + // Replace item./tile. with desc., hopefully it's enough + if (s[0] == 't') s = Util::stringReplace(s, "tile.", "desc."); + if (s[0] == 'i') s = Util::stringReplace(s, "item.", "desc."); + if (I18n::get(s, trans)) + return trans; + + // Remove all materials from the identifier, since swordWood should + // be read as just sword + const char* materials[] = { + "wood", + "iron", + "stone", + "diamond", + "gold", + "brick", + "emerald", + "lapis", + "cloth" + }; + + Util::removeAll(s, materials, sizeof(materials) / sizeof(const char*)); + if (I18n::get(s, trans)) + return trans; + + std::string mapping[] = { + "tile.workbench", "craftingtable", + }; + const char numMappings = sizeof(mapping) / sizeof(std::string); + for (int i = 0; i < numMappings; i += 2) { + if (desc == mapping[i]) { + if (I18n::get("desc." + mapping[i+1], trans)) + return trans; + } + } + + return desc + " : couldn't find desc"; +} diff --git a/src/locale/I18n.h b/src/locale/I18n.h new file mode 100755 index 0000000..cc4d432 --- /dev/null +++ b/src/locale/I18n.h @@ -0,0 +1,31 @@ +#ifndef NET_MINECRAFT_LOCALE__I18n_H__ +#define NET_MINECRAFT_LOCALE__I18n_H__ + +//package net.minecraft.locale; + +#include +#include + +class AppPlatform; +class ItemInstance; + +class I18n +{ + typedef std::map Map; +public: + static void loadLanguage(AppPlatform* platform, const std::string& languageCode); + + static bool get(const std::string& id, std::string& out); + static std::string get(const std::string& id); + + //static std::string get(const std::string& id, Object... args) { + // return lang.getElement(id, args); + //} + static std::string getDescriptionString( const ItemInstance& item ); + +private: + static void fillTranslations(AppPlatform* platform, const std::string& filename, bool overwrite); + static Map _strings; +}; + +#endif /*NET_MINECRAFT_LOCALE__I18n_H__*/ diff --git a/src/main.cpp b/src/main.cpp new file mode 100755 index 0000000..de00f66 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,46 @@ +/** + Entry point for cross compilation. + + This is ugly, yes. But it will change in the "half near" future + to a more correct system of solving the cross-platform entry + point "problem" */ + +#define _SECURE_SCL 0 + +// #ifdef WIN32 +// #include "vld.h" +// #endif + +#include "platform/log.h" + +#ifdef WIN32 +#endif +#ifdef ANDROID +#endif + + +#include "NinecraftApp.h" +#define MAIN_CLASS NinecraftApp + +#ifdef PLATFORM_WINDOWS + #include "main_win32.h" +#endif + + +#ifdef PLATFORM_GLFW + #include "main_glfw.h" +#endif + +#ifdef PLATFORM_ANDROID + #ifdef PRE_ANDROID23 + #include "main_android_java.h" + #else + #include "main_android.h" + #endif +#endif + +#ifdef PLATFORM_RPI + #include "main_rpi.h" +#endif + + diff --git a/src/main_android.cpp b/src/main_android.cpp new file mode 100755 index 0000000..db75547 --- /dev/null +++ b/src/main_android.cpp @@ -0,0 +1,194 @@ +#include "App.h" +#include "AppPlatform_android.h" + +// Horrible, I know. / A +#ifndef MAIN_CLASS +#include "main.cpp" +#endif + +#include + +// References for JNI +static pthread_mutex_t g_activityMutex = PTHREAD_MUTEX_INITIALIZER; +static jobject g_pActivity = 0; +static AppPlatform_android appPlatform; + +static void setupExternalPath(struct android_app* state, MAIN_CLASS* app) +{ + LOGI("setupExternalPath"); + + JNIEnv* env = state->activity->env; + state->activity->vm->AttachCurrentThread(&env, NULL); + + if (env) + { + LOGI("Environment exists"); + } + jclass clazz = env->FindClass("android/os/Environment"); + jmethodID method = env->GetStaticMethodID(clazz, "getExternalStorageDirectory", "()Ljava/io/File;"); + if (env->ExceptionOccurred()) { + env->ExceptionDescribe(); + } + jobject file = env->CallStaticObjectMethod(clazz, method); + + jclass fileClass = env->GetObjectClass(file); + jmethodID fileMethod = env->GetMethodID(fileClass, "getAbsolutePath", "()Ljava/lang/String;"); + jobject pathString = env->CallObjectMethod(file, fileMethod); + + const char* str = env->GetStringUTFChars((jstring) pathString, NULL); + app->externalStoragePath = str; + app->externalCacheStoragePath = str; + LOGI(str); + + env->ReleaseStringUTFChars((jstring)pathString, str); + + // We're done, detach! + state->activity->vm->DetachCurrentThread(); +} + +extern "C" { +JNIEXPORT jint JNICALL + JNI_OnLoad( JavaVM * vm, void * reserved ) + { + pthread_mutex_init(&g_activityMutex, 0); + pthread_mutex_lock(&g_activityMutex); + + LOGI("Entering OnLoad %d\n", pthread_self()); + return appPlatform.init(vm); + } + + // Register/save a reference to the java main activity instance + JNIEXPORT void JNICALL + Java_com_mojang_minecraftpe_MainActivity_nativeRegisterThis(JNIEnv* env, jobject clazz) { + LOGI("@RegisterThis %d\n", pthread_self()); + g_pActivity = (jobject)env->NewGlobalRef( clazz ); + + pthread_mutex_unlock(&g_activityMutex); + } + + // Unregister/delete the reference to the java main activity instance + JNIEXPORT void JNICALL + Java_com_mojang_minecraftpe_MainActivity_nativeUnregisterThis(JNIEnv* env, jobject clazz) { + LOGI("@UnregisterThis %d\n", pthread_self()); + env->DeleteGlobalRef( g_pActivity ); + g_pActivity = 0; + + pthread_mutex_destroy(&g_activityMutex); + } + + JNIEXPORT void JNICALL + Java_com_mojang_minecraftpe_MainActivity_nativeStopThis(JNIEnv* env, jobject clazz) { + LOGI("Lost Focus!"); + } +} + +static void internal_process_input(struct android_app* app, struct android_poll_source* source) { + AInputEvent* event = NULL; + if (AInputQueue_getEvent(app->inputQueue, &event) >= 0) { + LOGV("New input event: type=%d\n", AInputEvent_getType(event)); + bool isBackButtonDown = AKeyEvent_getKeyCode(event) == AKEYCODE_BACK && AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_DOWN; + if(!(appPlatform.isKeyboardVisible() && isBackButtonDown)) { + if (AInputQueue_preDispatchEvent(app->inputQueue, event)) { + return; + } + } + int32_t handled = 0; + if (app->onInputEvent != NULL) handled = app->onInputEvent(app, event); + AInputQueue_finishEvent(app->inputQueue, event, handled); + } else { + LOGE("Failure reading next input event: %s\n", strerror(errno)); + } +} + +void +android_main( struct android_app* state ) +{ + struct ENGINE engine; + + // Make sure glue isn't stripped. + app_dummy(); + + memset( (void*)&engine, 0, sizeof(engine) ); + state->userData = (void*)&engine; + state->onAppCmd = engine_handle_cmd; + state->onInputEvent = engine_handle_input; + state->destroyRequested = 0; + + pthread_mutex_lock(&g_activityMutex); + appPlatform.instance = g_pActivity; + pthread_mutex_unlock(&g_activityMutex); + + appPlatform.initConsts(); + + //LOGI("socket-stuff\n"); + //socketDesc = initSocket(1999); + + App* app = new MAIN_CLASS(); + + engine.userApp = app; + engine.app = state; + engine.is_inited = false; + engine.appContext.doRender = true; + engine.appContext.platform = &appPlatform; + + setupExternalPath(state, (MAIN_CLASS*)app); + + if( state->savedState != NULL ) + { + // We are starting with a previous saved state; restore from it. + app->loadState(state->savedState, state->savedStateSize); + } + + bool inited = false; + bool teardownPhase = false; + appPlatform._nativeActivity = state->activity; + // our 'main loop' + while( 1 ) + { + // Read all pending events. + int ident; + int events; + struct android_poll_source* source; + + while( (ident = ALooper_pollAll( 0, NULL, &events, (void**)&source) ) >= 0 ) + { + // Process this event. + // This will call the function pointer android_app::onInputEvent() which in our case is + // engine_handle_input() + if( source != NULL ) { + if(source->id == 2) { + // Back button is intercepted by the ime on android 4.1/4.2 resulting in the application stopping to respond. + internal_process_input( state, source ); + } else { + source->process( state, source ); + } + } + + } + // Check if we are exiting. + if( state->destroyRequested ) + { + //engine_term_display( &engine ); + delete app; + return; + } + + if (!inited && engine.is_inited) { + app->init(engine.appContext); + app->setSize(engine.width, engine.height); + inited = true; + } + + if (inited && engine.is_inited && engine.has_focus) { + app->update(); + } else { + sleepMs(50); + } + + if (!teardownPhase && app->wantToQuit()) { + teardownPhase = true; + LOGI("tearing down!"); + ANativeActivity_finish(state->activity); + } + } +} diff --git a/src/main_android.h b/src/main_android.h new file mode 100755 index 0000000..4ab1285 --- /dev/null +++ b/src/main_android.h @@ -0,0 +1,589 @@ +#ifndef MAIN_CLASS +#error "Error: MAIN_CLASS must have been defined to your main class (e.g. #define MAIN_CLASS MyApp)" +#endif + +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include +#include +#include + +#define TAG "MAIN_CLASS" + +#include "platform/log.h" +#include "platform/input/Controller.h" +#include "platform/input/Keyboard.h" +#include "platform/input/Mouse.h" +#include "platform/input/Multitouch.h" + +#include "EGLConfigPrinter.h" + +const int BroadcastPort = 9991; + +/** + * Shared state for our app. + */ +struct ENGINE +{ + struct android_app* app; + + int render; + EGLDisplay display; + EGLSurface surface; + EGLContext context; + int width; + int height; + int has_focus; + App* userApp; + bool is_inited; + //bool init_gl; + struct AppContext appContext; +}; + +/** + * Initialize an EGL context for the current display. + */ +static +int +engine_init_display( struct ENGINE* engine ) +{ + LOGI("1) Initing display. Get display\n"); + // initialize OpenGL ES 2.0 and EGL + const EGLint attribs[] = \ + { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + //EGL_BUFFER_SIZE, 32, + //EGL_BLUE_SIZE, 5, + //EGL_GREEN_SIZE, 6, + //EGL_RED_SIZE, 5, + ///EGL_ALPHA_SIZE, 8, + //0x3098, 1, + //EGL_TRANSPARENT_TYPE, EGL_TRANSPARENT_RGB, + //EGL_ALPHA_SIZE, 8,//5, + EGL_DEPTH_SIZE, 16, //8 + //EGL_STENCIL_SIZE, 8, + //EGL_DEPTH_SIZE, 16, + //EGL_CONFIG_CAVEAT, EGL_NONE, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, + EGL_NONE + }; + + EGLint w, h, format; + EGLint numConfigs; + EGLConfig config; + EGLSurface surface; + EGLContext context; + + EGLDisplay display = eglGetDisplay( EGL_DEFAULT_DISPLAY ); + + LOGI("2) Initialize egl\n"); + + if( display == NULL ) + { + LOGW( "!!! NO DISPLAY !!! eglGetDisplay" ); + } + + eglInitialize( display, 0, 0 ); + //EGLConfigPrinter::printAllConfigs(display); + LOGI("3) Choose config\n"); + + /* Here, the application chooses the configuration it desires. In this + * sample, we have a very simplified selection process, where we pick + * the first EGLConfig that matches our criteria */ + eglChooseConfig( display, attribs, &config, 1, &numConfigs ); + LOGI("4) Get config attributes\n"); + + /* EGL_NATIVE_VISUAL_ID is an attribute of the EGLConfig that is + * guaranteed to be accepted by ANativeWindow_setBuffersGeometry(). + * As soon as we picked a EGLConfig, we can safely reconfigure the + * ANativeWindow buffers to match, using EGL_NATIVE_VISUAL_ID. */ + eglGetConfigAttrib( display, config, EGL_NATIVE_VISUAL_ID, &format ); + LOGI("5) Choose config, set window geometry\n"); + + ANativeWindow_setBuffersGeometry( engine->app->window, 0, 0, format ); + + eglChooseConfig( display, attribs, NULL, 0, &numConfigs ); + + EGLConfig* configs = new EGLConfig[numConfigs]; + eglChooseConfig(display, attribs, configs, numConfigs, &numConfigs); + + for (int i = 0; i < numConfigs; ++i) { + EGLSurface surf = eglCreateWindowSurface( display, configs[i], engine->app->window, NULL ); + if (surf != EGL_NO_SURFACE) { + config = configs[i]; + surface = surf; + break; + } + } + + delete[] configs; + + + //surface = eglCreateWindowSurface( display, config, engine->app->window, NULL ); + LOGI("6) Creating context\n"); + + context = eglCreateContext( display, config, NULL, NULL ); + LOGI("7) Make current\n"); + + if( eglMakeCurrent( display, surface, surface, context ) == EGL_FALSE ) + { + LOGW("Unable to eglMakeCurrent"); + return -1; + } + LOGI("8) Query stats and set values\n"); + + eglQuerySurface( display, surface, EGL_WIDTH, &w ); + eglQuerySurface( display, surface, EGL_HEIGHT, &h ); + + if (w < h) { + int tmp = w; + w = h; + h = tmp; + } + + engine->display = engine->appContext.display = display; + engine->context = engine->appContext.context = context; + engine->surface = engine->appContext.surface = surface; + engine->width = w; + engine->height = h; + //Minecraft::width = w; + //Minecraft::height = h; + LOGI("9) Set-up viewport\n"); + + // Initialize GL state. + glViewport( 0, 0, w, h ); + LOGI("X) Graphics set-up finished!\n"); + + // Don't need to reload graphics first time + if (engine->is_inited) { + engine->userApp->onGraphicsReset(engine->appContext); + engine->userApp->setSize(w, h); + } + + eglSwapInterval(eglGetCurrentDisplay(), 2); + engine->is_inited = true; + + return 0; +} + +/** + * Tear down the EGL context currently associated with the display. + */ +static +void +engine_term_display( struct ENGINE* engine ) +{ + //LOGI( "engine_term_display" ); + + if( engine->display != EGL_NO_DISPLAY ) + { + eglMakeCurrent( engine->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT ); + + if( engine->context != EGL_NO_CONTEXT ) + { + eglDestroyContext( engine->display, engine->context ); + } + + if( engine->surface != EGL_NO_SURFACE ) + { + eglDestroySurface( engine->display, engine->surface ); + } + + eglTerminate( engine->display ); + } + + engine->display = EGL_NO_DISPLAY; + engine->context = EGL_NO_CONTEXT; + engine->surface = EGL_NO_SURFACE; +} + +static int socketDesc; + +static int broadcastData(int port, void* msg, int msgLen) +{ + struct sockaddr_in broadcastAddr; + + broadcastAddr.sin_family = AF_INET; + broadcastAddr.sin_port = htons(port); + broadcastAddr.sin_addr.s_addr = inet_addr("192.168.0.255"); + + return sendto(socketDesc, msg, msgLen, 0, (struct sockaddr*)&broadcastAddr, sizeof(broadcastAddr)); +} + +static void mouseDown(int buttonId, int x, int y) { + int msg[] = {buttonId, 0, x, y}; + //broadcastData(BroadcastPort, msg, sizeof(msg)); + + Mouse::feed(buttonId, 1, x, y); +} + +static void mouseUp(int buttonId, int x, int y) { + int msg[] = {buttonId, 0, x, y}; + //broadcastData(BroadcastPort, msg, sizeof(msg)); + + Mouse::feed(buttonId, 0, x, y); +} + +static void mouseMove(int x, int y) { + int msg[] = {0, 0, x, y}; + //broadcastData(BroadcastPort, msg, sizeof(msg)); + + Mouse::feed(0, 0, x, y); +} + +static void pointerDown(int pointerId, int x, int y) { + Multitouch::feed(1, 1, x, y, pointerId); +} +static void pointerUp(int pointerId, int x, int y) { + Multitouch::feed(1, 0, x, y, pointerId); +} +static void pointerMove(int pointerId, int x, int y) { + Multitouch::feed(0, 0, x, y, pointerId); +} + +__inline static const float padXtoSigned(int x) { + return (x - 483.0f) * 0.002070393374741201f; +} +__inline static const float padYtoSigned(int y) { + return (y - 180.0f) * 0.005555555555555556f; +} + +static void trackpadPress(int x, int y) { + Controller::feed(1, Controller::STATE_TOUCH, padXtoSigned(x), padYtoSigned(y)); +} +static void trackpadMove(int x, int y) { + Controller::feed(1, Controller::STATE_MOVE, padXtoSigned(x), padYtoSigned(y)); +} +static void trackpadRelease(int x, int y) { + Controller::feed(1, Controller::STATE_RELEASE, padXtoSigned(x), padYtoSigned(y)); +} + +static int isTouchpadTouched = 0; + +static +int32_t +handle_xperia_input( struct android_app* app, AInputEvent* event ) +{ + if( AInputEvent_getType(event) == AINPUT_EVENT_TYPE_MOTION ) + { + struct ENGINE* engine = (struct ENGINE*)app->userData; + int nPointerCount = AMotionEvent_getPointerCount( event ); + int nSourceId = AInputEvent_getSource( event ); + int nAction = AMOTION_EVENT_ACTION_MASK & AMotionEvent_getAction( event ); + int isTrackpad =(nSourceId == AINPUT_SOURCE_TOUCHPAD); + int n; + + for( n = 0 ; n < nPointerCount ; ++n ) + { + int nPointerId = AMotionEvent_getPointerId( event, n ); + + // We don't care about secondary pointers right now + if( !isTrackpad ) { + if (nAction == AMOTION_EVENT_ACTION_POINTER_DOWN || nAction == AMOTION_EVENT_ACTION_POINTER_UP ) + continue; + } + + int x = AMotionEvent_getX( event, n ); + int y = AMotionEvent_getY( event, n ); + + if( nAction == AMOTION_EVENT_ACTION_DOWN || nAction == AMOTION_EVENT_ACTION_POINTER_DOWN ) { + //LOGI("action down %d\n", isTrackpad); + if (isTrackpad) { + trackpadPress(x, y); + } else { + mouseDown(1, x, y); + //LOGI("mouse-pointer down"); + } + } + else if( nAction == AMOTION_EVENT_ACTION_UP || nAction == AMOTION_EVENT_ACTION_POINTER_UP /*|| nAction == AMOTION_EVENT_ACTION_CANCEL*/ ) { + //LOGI("action up %d\n", isTrackpad); + if (isTrackpad) { + //LOGI("trackpad-up\n"); + trackpadRelease(x, y); + } + else { + //LOGI("mouse-pointer up\n"); + mouseUp(1, x, y); + } + } else if (nAction == AMOTION_EVENT_ACTION_MOVE ) { + if (isTrackpad) + trackpadMove(x, y); + else + mouseMove(x, y); + } + } + return 1; + } +} +static int convertAndroidKeyCodeToWindowsKeyCode(int keyCode) { + switch(keyCode) { + /* + case 29: return Keyboard::KEY_A; + case 30: return Keyboard::KEY_B; + case 31: return Keyboard::KEY_C; + case 32: return Keyboard::KEY_D; + case 33: return Keyboard::KEY_E; + case 34: return Keyboard::KEY_F; + case 35: return Keyboard::KEY_G; + case 36: return Keyboard::KEY_H; + case 37: return Keyboard::KEY_I; + case 38: return Keyboard::KEY_J; + case 39: return Keyboard::KEY_K; + case 40: return Keyboard::KEY_L; + case 41: return Keyboard::KEY_M; + case 42: return Keyboard::KEY_N; + case 43: return Keyboard::KEY_O; + case 44: return Keyboard::KEY_P; + case 45: return Keyboard::KEY_Q; + case 46: return Keyboard::KEY_R; + case 47: return Keyboard::KEY_S; + case 48: return Keyboard::KEY_T; + case 49: return Keyboard::KEY_U; + case 50: return Keyboard::KEY_V; + case 51: return Keyboard::KEY_W; + case 52: return Keyboard::KEY_X; + case 53: return Keyboard::KEY_Y; + case 54: return Keyboard::KEY_Z; + */ + case 67: return Keyboard::KEY_BACKSPACE; + case 66: return Keyboard::KEY_RETURN; +// case 62: return Keyboard::KEY_SPACE; + default: return 0; + } +} +static +int32_t +handle_keyboard_input( struct android_app* app, AInputEvent* event ) +{ + if( AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY ) + { + struct ENGINE* engine = (struct ENGINE*)app->userData; + bool isDown = AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_DOWN; + int keyCode = AKeyEvent_getKeyCode(event); + int metaState = AKeyEvent_getMetaState(event); + int deviceId = AInputEvent_getDeviceId(event); + bool pressedBack = (keyCode == 4) && ((AKeyEvent_getMetaState(event) & AMETA_ALT_ON) == 0); + bool isRepeat = AKeyEvent_getRepeatCount(event) > 0; + if (!isRepeat){ + //int scanCode = AKeyEvent_getScanCode(event); + //LOGI("key-%s : %d", isDown?"key-down":"key-up", keyCode); + //LOGI("getId: %d\n", AInputEvent_getDeviceId(event)); + //LOGI("flags: %d\n", AKeyEvent_getFlags(event)); + //LOGI("scancode: %d\n", AKeyEvent_getScanCode(event)); + + //unsigned char msg[2] = {(unsigned char)(keyCode), (unsigned char)(isDown)}; + //broadcastData(BroadcastPort, msg, 2); + LOGW("New keycode: %d", keyCode); + if (!pressedBack) { + + int key = convertAndroidKeyCodeToWindowsKeyCode(keyCode); + if (key == 0) key = keyCode; + Keyboard::feed(key, isDown); + if(isDown) { + int uniChar = ((struct ENGINE*)app->userData)->appContext.platform->getKeyFromKeyCode(keyCode, metaState, deviceId); + char charI = (char)uniChar; + LOGW("Unichar: %d", uniChar); + if(charI > 31) { + LOGW("New Char %c[%d]", charI, uniChar); + Keyboard::feedText((char)charI); + } + } + } + } + if (pressedBack) + { + if (!isRepeat && !engine->userApp->handleBack(isDown)) + { + //LOGI("Returning 0 from engine_handle_input\n"); + return 0; + } + return 1; + } + + bool volumeButton = (keyCode == 24) || (keyCode == 25); + bool handled = !pressedBack && !volumeButton; + return handled; + } + + return 0; +} + +static +int32_t +handle_touch_input( struct android_app* app, AInputEvent* event ) +{ + if( AInputEvent_getType(event) != AINPUT_EVENT_TYPE_MOTION ) + return 0; + + int nSourceId = AInputEvent_getSource( event ); + if (nSourceId == AINPUT_SOURCE_TOUCHPAD) + return 0; + + struct ENGINE* engine = (struct ENGINE*)app->userData; + + int fullAction = AMotionEvent_getAction( event ); + int nAction = AMOTION_EVENT_ACTION_MASK & fullAction; + int pointerIndex = (fullAction & AMOTION_EVENT_ACTION_POINTER_INDEX_MASK) >> AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT; + int pointerId = AMotionEvent_getPointerId(event, pointerIndex); + int x = (int)AMotionEvent_getX(event, pointerIndex); + int y = (int)AMotionEvent_getY(event, pointerIndex); + + //LOGI("xy:\t%d, %d\n", x, y); + + switch (nAction) { + case AMOTION_EVENT_ACTION_POINTER_DOWN: + case AMOTION_EVENT_ACTION_DOWN: + mouseDown(1, x, y); + Multitouch::feed(1, 1, x, y, pointerId); + break; + case AMOTION_EVENT_ACTION_POINTER_UP: + case AMOTION_EVENT_ACTION_UP: + mouseUp(1, x, y); + Multitouch::feed(1, 0, x, y, pointerId); + break; + case AMOTION_EVENT_ACTION_MOVE: + int pcount = AMotionEvent_getPointerCount(event); + for (int i = 0; i < pcount; ++i) { + int pp = AMotionEvent_getPointerId(event, i); // @attn wtf? + float xx = AMotionEvent_getX(event, i); + float yy = AMotionEvent_getY(event, i); + // System.err.println(" " + p + " @ " + x + ", " + y); + //LOGI("> %.2f, %.2f\n", xx, yy); + mouseMove(xx, yy); + Multitouch::feed(0, 0, xx, yy, pp); + } + break; + } + return 0; +} + +/** + * Process the next input event. + */ +static +int32_t +engine_handle_input( struct android_app* app, AInputEvent* event ) +{ + if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY) + return handle_keyboard_input(app, event); + + const bool isTouchscreen = ((struct ENGINE*)app->userData)->appContext.platform->supportsTouchscreen();; + if (isTouchscreen) { + return handle_touch_input(app, event); + } else { + // We only have xperia by now, but in the best of worlds + // one function will feed all controllers + return handle_xperia_input(app, event); + } +} + +/** + * Process the next main command. + */ +static +void +engine_handle_cmd( struct android_app* app, int32_t cmd ) +{ + struct ENGINE* engine = (struct ENGINE*)app->userData; + switch( cmd ) + { + case APP_CMD_SAVE_STATE: + { + //LOGI("save-state\n"); + // The system has asked us to save our current state. Do so if needed + + // query first + void* savedState = 0; + int savedStateSize = 0; + engine->userApp->saveState(&savedState, &savedStateSize); + + // Seems OK - save + if (savedStateSize > 0) { + app->savedState = savedState; + app->savedStateSize = savedStateSize; + } + } + break; + + case APP_CMD_INIT_WINDOW: + //LOGI("init-window\n"); + // The window is being shown, get it ready. + if( engine->app->window != NULL ) + { + engine_init_display( engine ); + //engine->has_focus = 1; + // LOGI("has-inited-display\n"); + //ANativeWindow_setBuffersGeometry(engine->app->window, engine->width, engine->height, 1); + } + break; + + case APP_CMD_TERM_WINDOW: + //LOGI("term-window\n"); + // The window is being hidden or closed, clean it up. + engine_term_display( engine ); + break; + + case APP_CMD_GAINED_FOCUS: + //LOGI("gained-focus\n"); + //engine->has_focus = 1; + break; + + case APP_CMD_LOST_FOCUS: + //engine->has_focus = 0; + //engine_draw_frame( engine ); + break; + + case APP_CMD_PAUSE: + engine->has_focus = 0; + break; + case APP_CMD_RESUME: + engine->has_focus = 1; + break; + default: + //LOGI("unknown: %d\n", cmd); + break; + } +} + +static int initSocket(int port) +{ + int s = socket(PF_INET, SOCK_DGRAM, 0); + + struct addrinfo hints; + struct addrinfo *res; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_socktype = SOCK_DGRAM; + hints.ai_flags = AI_PASSIVE; + + getaddrinfo("192.168.0.110", "1999", &hints, &res); // ... + + int b = bind(s, res->ai_addr, res->ai_addrlen); + + int broadcast = 1; + if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, &broadcast, + sizeof(broadcast)) == -1) { + perror("setsockopt (SO_BROADCAST)"); + return 0; + } + + return s; +} + +/** + * This is the main entry point of a native application that is using + * android_native_app_glue. It runs in its own thread, with its own + * event loop for receiving input events and doing other things (rendering). + */ +void +android_main( struct android_app* state ); diff --git a/src/main_android_java.cpp b/src/main_android_java.cpp new file mode 100755 index 0000000..2de0001 --- /dev/null +++ b/src/main_android_java.cpp @@ -0,0 +1,195 @@ +#include "App.h" +#include "AppPlatform_android.h" + +//#include "main_android_java.h" +#include "platform/input/Multitouch.h" + +// Horrible, I know. / A +#ifndef MAIN_CLASS +#include "main.cpp" +#endif + + +// References for JNI +static jobject g_pActivity = 0; +static AppPlatform_android appPlatform; + +static void setupExternalPath(JNIEnv* env, MAIN_CLASS* app) +{ + //JVMAttacher ta(vm); + //JNIEnv* env = ta.getEnv(); + + LOGI("setupExternalPath"); + + if (env) + { + LOGI("Environment exists"); + } + jclass clazz = env->FindClass("android/os/Environment"); + jmethodID method = env->GetStaticMethodID(clazz, "getExternalStorageDirectory", "()Ljava/io/File;"); + if (env->ExceptionOccurred()) { + env->ExceptionDescribe(); + } + jobject file = env->CallStaticObjectMethod(clazz, method); + + jclass fileClass = env->GetObjectClass(file); + jmethodID fileMethod = env->GetMethodID(fileClass, "getAbsolutePath", "()Ljava/lang/String;"); + jobject pathString = env->CallObjectMethod(file, fileMethod); + + const char* str = env->GetStringUTFChars((jstring) pathString, NULL); + app->externalStoragePath = str; + app->externalCacheStoragePath = str; + LOGI(str); + + env->ReleaseStringUTFChars((jstring)pathString, str); +} + +static void pointerDown(int pointerId, int x, int y) { + Multitouch::feed(1, 1, x, y, pointerId); +} +static void pointerUp(int pointerId, int x, int y) { + Multitouch::feed(1, 0, x, y, pointerId); +} +static void pointerMove(int pointerId, int x, int y) { + Multitouch::feed(0, 0, x, y, pointerId); +} + + +static App* gApp = 0; +static AppContext gContext; + +extern "C" { +JNIEXPORT jint JNICALL +JNI_OnLoad( JavaVM * vm, void * reserved ) +{ + LOGI("Entering OnLoad\n"); + return appPlatform.init(vm); +} + +// Register/save a reference to the java main activity instance +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeRegisterThis(JNIEnv* env, jobject clazz) { + LOGI("@RegisterThis\n"); + g_pActivity = (jobject)env->NewGlobalRef( clazz ); +} + +// Unregister/delete the reference to the java main activity instance +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeUnregisterThis(JNIEnv* env, jobject clazz) { + LOGI("@UnregisterThis\n"); + env->DeleteGlobalRef( g_pActivity ); +} + +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeOnCreate(JNIEnv* env) { + LOGI("@nativeOnCreate\n"); + + appPlatform.instance = g_pActivity; + appPlatform.initConsts(); + gContext.doRender = false; + gContext.platform = &appPlatform; + + gApp = new MAIN_CLASS(); + setupExternalPath(env, (MAIN_CLASS*)gApp); + //gApp->init(gContext); +} + +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_GLRenderer_nativeOnSurfaceCreated(JNIEnv* env) { + LOGI("@nativeOnSurfaceCreated\n"); + + if (gApp) { +// gApp->setSize( gContext.platform->getScreenWidth(), +// gContext.platform->getScreenHeight(), +// gContext.platform->isTouchscreen()); + + // Don't call onGraphicsReset the first time + if (gApp->isInited()) + gApp->onGraphicsReset(gContext); + + if (!gApp->isInited()) + gApp->init(gContext); + } +} + +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_GLRenderer_nativeOnSurfaceChanged(JNIEnv* env, jclass cls, jint w, jint h) { + LOGI("@nativeOnSurfaceChanged: %p\n", pthread_self()); + + if (gApp) { + gApp->setSize(w, h); + + if (!gApp->isInited()) + gApp->init(gContext); + + if (!gApp->isInited()) + LOGI("nativeOnSurfaceChanged: NOT INITED!\n"); + } +} + +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeOnDestroy(JNIEnv* env) { + LOGI("@nativeOnDestroy\n"); + + delete gApp; + gApp = 0; + //gApp->onGraphicsReset(gContext); +} + +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_GLRenderer_nativeUpdate(JNIEnv* env) { + //LOGI("@nativeUpdate: %p\n", pthread_self()); + if (gApp) { + if (!gApp->isInited()) + gApp->init(gContext); + + gApp->update(); + + if (gApp->wantToQuit()) + appPlatform.finish(); + } +} + +// +// Keyboard events +// +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeOnKeyDown(JNIEnv* env, jclass cls, jint keyCode) { + LOGI("@nativeOnKeyDown: %d\n", keyCode); + Keyboard::feed(keyCode, true); +} +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeOnKeyUp(JNIEnv* env, jclass cls, jint keyCode) { + LOGI("@nativeOnKeyUp: %d\n", (int)keyCode); + Keyboard::feed(keyCode, false); +} + +JNIEXPORT jboolean JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeHandleBack(JNIEnv* env, jclass cls, jboolean isDown) { + LOGI("@nativeHandleBack: %d\n", isDown); + if (gApp) return gApp->handleBack(isDown)? JNI_TRUE : JNI_FALSE; + return JNI_FALSE; +} + +// +// Mouse events +// +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeMouseDown(JNIEnv* env, jclass cls, jint pointerId, jint buttonId, jfloat x, jfloat y) { + //LOGI("@nativeMouseDown: %f %f\n", x, y); + mouseDown(1, x, y); + pointerDown(pointerId, x, y); +} +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeMouseUp(JNIEnv* env, jclass cls, jint pointerId, jint buttonId, jfloat x, jfloat y) { + //LOGI("@nativeMouseUp: %f %f\n", x, y); + mouseUp(1, x, y); + pointerUp(pointerId, x, y); +} +JNIEXPORT void JNICALL +Java_com_mojang_minecraftpe_MainActivity_nativeMouseMove(JNIEnv* env, jclass cls, jint pointerId, jfloat x, jfloat y) { + //LOGI("@nativeMouseMove: %f %f\n", x, y); + mouseMove(x, y); + pointerMove(pointerId, x, y); +} +} diff --git a/src/main_android_java.h b/src/main_android_java.h new file mode 100755 index 0000000..3c33244 --- /dev/null +++ b/src/main_android_java.h @@ -0,0 +1,174 @@ +#ifndef MAIN_CLASS +#error "Error: MAIN_CLASS must have been defined to your main class (e.g. #define MAIN_CLASS MyApp)" +#endif + +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include + +#define TAG "MAIN_CLASS" + +#include "platform/log.h" +#include "platform/input/Keyboard.h" +#include "platform/input/Mouse.h" +#include "platform/input/Controller.h" + +#include "EGLConfigPrinter.h" + +const int BroadcastPort = 9991; + +/** + * Shared state for our app. + */ +struct ENGINE +{ + struct android_app* app; + + int render; + EGLDisplay display; + EGLSurface surface; + EGLContext context; + int width; + int height; + int has_focus; + App* userApp; + bool is_inited; + //bool init_gl; + struct AppContext appContext; +}; + +static void mouseDown(int buttonId, int x, int y) { + int msg[] = {buttonId, 0, x, y}; + //broadcastData(BroadcastPort, msg, sizeof(msg)); + + Mouse::feed(buttonId, 1, x, y); +} + +static void mouseUp(int buttonId, int x, int y) { + int msg[] = {buttonId, 0, x, y}; + //broadcastData(BroadcastPort, msg, sizeof(msg)); + + Mouse::feed(buttonId, 0, x, y); +} + +static void mouseMove(int x, int y) { + int msg[] = {0, 0, x, y}; + //broadcastData(BroadcastPort, msg, sizeof(msg)); + + Mouse::feed(0, 0, x, y); +} + +#if 0 + +/** + * Process the next input event. + */ +static +int32_t +engine_handle_input( struct android_app* app, AInputEvent* event ) +{ + struct ENGINE* engine = (struct ENGINE*)app->userData; + if( AInputEvent_getType(event) == AINPUT_EVENT_TYPE_MOTION ) + { + //engine->render = 1; + int nPointerCount = AMotionEvent_getPointerCount( event ); + int nSourceId = AInputEvent_getSource( event ); + int n; + + for( n = 0 ; n < nPointerCount ; ++n ) + { + int nPointerId = AMotionEvent_getPointerId( event, n ); + int nAction = AMOTION_EVENT_ACTION_MASK & AMotionEvent_getAction( event ); + int isTrackpad = nSourceId == AINPUT_SOURCE_TOUCHPAD; + + // We don't care about secondary pointers right now + if( !isTrackpad && (nAction == AMOTION_EVENT_ACTION_POINTER_DOWN || nAction == AMOTION_EVENT_ACTION_POINTER_UP )) + continue; + + int x = AMotionEvent_getX( event, n ); + int y = AMotionEvent_getY( event, n ); + + if( nAction == AMOTION_EVENT_ACTION_DOWN || nAction == AMOTION_EVENT_ACTION_POINTER_DOWN ) { + //LOGI("action down %d\n", isTrackpad); + if (isTrackpad) { + trackpadPress(x, y); + } else { + mouseDown(1, x, y); + //LOGI("mouse-pointer down"); + } + } + else if( nAction == AMOTION_EVENT_ACTION_UP || nAction == AMOTION_EVENT_ACTION_POINTER_UP /*|| nAction == AMOTION_EVENT_ACTION_CANCEL*/ ) { + //LOGI("action up %d\n", isTrackpad); + if (isTrackpad) { + //LOGI("trackpad-up\n"); + trackpadRelease(x, y); + } + else { + //LOGI("mouse-pointer up\n"); + mouseUp(1, x, y); + } + } else if (nAction == AMOTION_EVENT_ACTION_MOVE ) { + if (isTrackpad) + trackpadMove(x, y); + else + mouseMove(x, y); + } + } + return 1; + } + else if( AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY ) + { + bool isDown = AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_DOWN; + int keyCode = AKeyEvent_getKeyCode(event); + bool pressedBack = keyCode == 4 && AInputEvent_getDeviceId(event) == 0; + bool isRepeat = AKeyEvent_getRepeatCount(event) > 0; + if (!isRepeat){ + //int scanCode = AKeyEvent_getScanCode(event); + //LOGI("key-%s : %d", isDown?"key-down":"key-up", keyCode); + //LOGI("getId: %d\n", AInputEvent_getDeviceId(event)); + //LOGI("flags: %d\n", AKeyEvent_getFlags(event)); + //LOGI("scancode: %d\n", AKeyEvent_getScanCode(event)); + + //unsigned char msg[2] = {(unsigned char)(keyCode), (unsigned char)(isDown)}; + //broadcastData(BroadcastPort, msg, 2); + + if (!pressedBack) + Keyboard::feed(keyCode, isDown); + } + if (keyCode == 4) + { + if (!isRepeat && !engine->userApp->handleBack(isDown)) + { + //LOGI("Returning 0 from engine_handle_input\n"); + return 0; + } + return 1; + } + + bool volumeButton = (keyCode == 24) || (keyCode == 25); + bool handled = !pressedBack && !volumeButton; + return handled; + } + + return 0; +} + +#endif + +/** + * This is the main entry point of a native application that is using + * android_native_app_glue. It runs in its own thread, with its own + * event loop for receiving input events and doing other things (rendering). + */ +void +android_main( struct android_app* state ); diff --git a/src/main_dedicated.cpp b/src/main_dedicated.cpp new file mode 100755 index 0000000..2d6eb33 --- /dev/null +++ b/src/main_dedicated.cpp @@ -0,0 +1,75 @@ +#include +#include "NinecraftApp.h" +#include "AppPlatform.h" +#include +#include +#include +#include + +#include "world/level/LevelSettings.h" +#include "world/level/Level.h" +#include "server/ArgumentsSettings.h" +#include "platform/time.h" +#include "SharedConstants.h" + +#define MAIN_CLASS NinecraftApp +static App* g_app = 0; +static int g_exitCode = 0; +void signal_callback_handler(int signum) { + std::cout << "Signum caught: " << signum << std::endl; + if(signum == 2 || signum == 3){ // SIGINT || SIGQUIT + + if(g_app != 0) { + g_app->quit(); + } else { + exit(g_exitCode); + } + } +} + +int main(int numArguments, char* pszArgs[]) { + ArgumentsSettings aSettings(numArguments, pszArgs); + if(aSettings.getShowHelp()) { + ArgumentsSettings defaultSettings(0, NULL); + printf("Minecraft Pockect Edition Server %s\n", Common::getGameVersionString("").c_str()); + printf("-------------------------------------------------------\n"); + printf("--cachepath - Path to where the server can store temp stuff (not sure if this is used) [default: \"%s\"]\n", defaultSettings.getCachePath().c_str()); + printf("--externalpath - The path to the place where the server should store the levels. [default: \"%s\"]\n", defaultSettings.getExternalPath().c_str()); + printf("--levelname - The name of the server [default: \"%s\"]\n", defaultSettings.getLevelName().c_str()); + printf("--leveldir - The name of the server [default: \"%s\"]\n", defaultSettings.getLevelDir().c_str()); + printf("--help - Shows this message.\n"); + printf("--port - The port to run the server on. [default: %d]\n", defaultSettings.getPort()); + printf("--serverkey - The key that the server should use for API calls. [default: \"%s\"]\n", defaultSettings.getServerKey().c_str()); + printf("-------------------------------------------------------\n"); + return 0; + } + printf("Level Name: %s\n", aSettings.getLevelName().c_str()); + AppContext appContext; + appContext.platform = new AppPlatform(); + App* app = new MAIN_CLASS(); + signal(SIGINT, signal_callback_handler); + g_app = app; + ((MAIN_CLASS*)g_app)->externalStoragePath = aSettings.getExternalPath(); + ((MAIN_CLASS*)g_app)->externalCacheStoragePath = aSettings.getCachePath(); + + g_app->init(appContext); + LevelSettings settings(getEpochTimeS(), GameType::Creative); + float startTime = getTimeS(); + ((MAIN_CLASS*)g_app)->selectLevel(aSettings.getLevelDir(), aSettings.getLevelName(), settings); + ((MAIN_CLASS*)g_app)->hostMultiplayer(aSettings.getPort()); + + std::cout << "Level has been generated in " << getTimeS() - startTime << std::endl; + ((MAIN_CLASS*)g_app)->level->saveLevelData(); + std::cout << "Level has been saved!" << std::endl; + while(!app->wantToQuit()) { + app->update(); + //pthread_yield(); + sleep(20); + } + ((MAIN_CLASS*)g_app)->level->saveLevelData(); + delete app; + appContext.platform->finish(); + delete appContext.platform; + std::cout << "Quit correctly" << std::endl; + return g_exitCode; +} \ No newline at end of file diff --git a/src/main_glfw.h b/src/main_glfw.h new file mode 100755 index 0000000..7314088 --- /dev/null +++ b/src/main_glfw.h @@ -0,0 +1,156 @@ +#ifndef MAIN_GLFW_H__ +#define MAIN_GLFW_H__ + +#include "client/renderer/gles.h" +#include "SharedConstants.h" + +#include +#include "platform/input/Mouse.h" +#include "platform/input/Multitouch.h" +#include "util/Mth.h" +#include "AppPlatform_glfw.h" + +static App* g_app = 0; + +int transformKey(int glfwkey) { + if (glfwkey >= GLFW_KEY_F1 && glfwkey <= GLFW_KEY_F12) { + return glfwkey - 178; + } + + switch (glfwkey) { + case GLFW_KEY_ESCAPE: return Keyboard::KEY_ESCAPE; + case GLFW_KEY_BACKSPACE: return Keyboard::KEY_BACKSPACE; + case GLFW_KEY_LEFT_SHIFT: return Keyboard::KEY_LSHIFT; + default: return glfwkey; + } +} + +void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { + if(action == GLFW_REPEAT) return; + + Keyboard::feed(transformKey(key), action); +} + +void character_callback(GLFWwindow* window, unsigned int codepoint) { + Keyboard::feedText(codepoint); +} + +static void cursor_position_callback(GLFWwindow* window, double xpos, double ypos) { + static double lastX = 0.0, lastY = 0.0; + static bool firstMouse = true; + + if (firstMouse) { + lastX = xpos; + lastY = ypos; + firstMouse = false; + } + + double deltaX = xpos - lastX; + double deltaY = ypos - lastY; + + lastX = xpos; + lastY = ypos; + + if (glfwGetInputMode(window, GLFW_CURSOR) == GLFW_CURSOR_DISABLED) { + Mouse::feed(0, 0, xpos, ypos, deltaX, deltaY); + } else { + Mouse::feed( MouseAction::ACTION_MOVE, 0, xpos, ypos); + } + Multitouch::feed(0, 0, xpos, ypos, 0); +} + +void mouse_button_callback(GLFWwindow* window, int button, int action, int mods) { + double xpos, ypos; + glfwGetCursorPos(window, &xpos, &ypos); + + if (button == GLFW_MOUSE_BUTTON_LEFT) { + Mouse::feed( MouseAction::ACTION_LEFT, action, xpos, ypos); + Multitouch::feed(1, action, xpos, ypos, 0); + } + + if (button == GLFW_MOUSE_BUTTON_RIGHT) { + Mouse::feed( MouseAction::ACTION_RIGHT, action, xpos, ypos); + } +} + +void scroll_callback(GLFWwindow* window, double xoffset, double yoffset) { + double xpos, ypos; + glfwGetCursorPos(window, &xpos, &ypos); + + Mouse::feed(3, 0, xpos, ypos, 0, yoffset); +} + +void window_size_callback(GLFWwindow* window, int width, int height) { + if (g_app) g_app->setSize(width, height); +} + +void error_callback(int error, const char* desc) { + printf("Error: %s\n", desc); +} + +int main(void) { + AppContext appContext; + +#ifndef STANDALONE_SERVER + // Platform init. + appContext.platform = new AppPlatform_glfw(); + + glfwSetErrorCallback(error_callback); + + if (!glfwInit()) { + return 1; + } + + glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 1); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1); + + GLFWwindow* window = glfwCreateWindow(appContext.platform->getScreenWidth(), appContext.platform->getScreenHeight(), "main", NULL, NULL); + + if (window == NULL) { + return 1; + } + + glfwSetKeyCallback(window, key_callback); + glfwSetCharCallback(window, character_callback); + glfwSetCursorPosCallback(window, cursor_position_callback); + glfwSetMouseButtonCallback(window, mouse_button_callback); + glfwSetScrollCallback(window, scroll_callback); + glfwSetWindowSizeCallback(window, window_size_callback); + + glfwMakeContextCurrent(window); + gladLoadGLES1Loader((GLADloadproc)glfwGetProcAddress); + glfwSwapInterval(1); +#endif + App* app = new MAIN_CLASS(); + + g_app = app; + ((MAIN_CLASS*)g_app)->externalStoragePath = "."; + ((MAIN_CLASS*)g_app)->externalCacheStoragePath = "."; + g_app->init(appContext); + g_app->setSize(appContext.platform->getScreenWidth(), appContext.platform->getScreenHeight()); + + // Main event loop + while(!glfwWindowShouldClose(window) && !app->wantToQuit()) { + app->update(); + + glfwSwapBuffers(window); + glfwPollEvents(); + } + + delete app; + + appContext.platform->finish(); + + delete appContext.platform; + +#ifndef STANDALONE_SERVER + // Exit. + glfwDestroyWindow(window); + glfwTerminate(); +#endif + + return 0; +} + +#endif /*MAIN_GLFW_H__*/ diff --git a/src/main_rpi.cpp b/src/main_rpi.cpp new file mode 100755 index 0000000..f05ef00 --- /dev/null +++ b/src/main_rpi.cpp @@ -0,0 +1,21 @@ +//#include "main_rpi.h" + +#include + +void getWindowPosition(int* x, int* y, int* width, int* height) { + static SDL_SysWMinfo wmInfo; + SDL_VERSION(&wmInfo.version); + SDL_GetWMInfo(&wmInfo); + + static XWindowAttributes attr; + Display* display = wmInfo.info.x11.display; + Window window = wmInfo.info.x11.wmwindow; + Window wndvoid; + + wmInfo.info.x11.lock_func(); + int status = XGetWindowAttributes(display, window, &attr); + *width = attr.width; + *height = attr.height; + XTranslateCoordinates(display, window, attr.root, 0, 0, x, y, &wndvoid); + wmInfo.info.x11.unlock_func(); +} diff --git a/src/main_rpi.h b/src/main_rpi.h new file mode 100755 index 0000000..b2dea8c --- /dev/null +++ b/src/main_rpi.h @@ -0,0 +1,439 @@ +#ifndef MAIN_RPI_H__ +#define MAIN_RPI_H__ + +#include + +#include "bcm_host.h" + +//#include "GLES/gl.h" +#include "EGL/egl.h" +#include "EGL/eglext.h" + +#include +#include + +#include + +#define check() assert(glGetError() == 0) + +#include "App.h" +#include "platform/input/Mouse.h" +#include "platform/input/Multitouch.h" +#include "platform/input/Keyboard.h" + +int width = 848; +int height = 480; + +static void png_funcReadFile(png_structp pngPtr, png_bytep data, png_size_t length) { + ((std::istream*)png_get_io_ptr(pngPtr))->read((char*)data, length); +} + +class AppPlatform_linux: public AppPlatform +{ +public: + bool isTouchscreen() { return false; } + + TextureData loadTexture(const std::string& filename_, bool textureFolder) + { + TextureData out; + + std::string filename = textureFolder? "data/images/" + filename_ + : filename_; + std::ifstream source(filename.c_str(), std::ios::binary); + + if (source) { + png_structp pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!pngPtr) + return out; + + png_infop infoPtr = png_create_info_struct(pngPtr); + + if (!infoPtr) { + png_destroy_read_struct(&pngPtr, NULL, NULL); + return out; + } + + // Hack to get around the broken libpng for windows + png_set_read_fn(pngPtr,(voidp)&source, png_funcReadFile); + + png_read_info(pngPtr, infoPtr); + + // Set up the texdata properties + out.w = png_get_image_width(pngPtr, infoPtr); + out.h = png_get_image_height(pngPtr, infoPtr); + + png_bytep* rowPtrs = new png_bytep[out.h]; + out.data = new unsigned char[4 * out.w * out.h]; + out.memoryHandledExternally = false; + + int rowStrideBytes = 4 * out.w; + for (int i = 0; i < out.h; i++) { + rowPtrs[i] = (png_bytep)&out.data[i*rowStrideBytes]; + } + png_read_image(pngPtr, rowPtrs); + + // Teardown and return + png_destroy_read_struct(&pngPtr, &infoPtr,(png_infopp)0); + delete[] (png_bytep)rowPtrs; + source.close(); + + return out; + } + else + { + LOGI("Couldn't find file: %s\n", filename.c_str()); + return out; + } + } +}; + +static bool _inited_egl = false; +static bool _app_inited = false; +static int _app_window_normal = true; + +static void move_surface(App* app, AppContext* state, uint32_t x, uint32_t y, uint32_t w, uint32_t h); + +static void initEgl(App* app, AppContext* state, uint32_t w, uint32_t h) +{ + move_surface(app, state, 16, 16, w, h); +} + +static void deinitEgl(AppContext* state) { + //printf("deinitEgl: (inited: %d)\n", _inited_egl); + if (!_inited_egl) { + return; + } + + eglSwapBuffers(state->display, state->surface); + eglMakeCurrent(state->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglDestroySurface(state->display, state->surface); + eglDestroySurface(state->display, state->context); + eglTerminate(state->display); + + //state->doRender = false; + _inited_egl = false; +} + +void move_surface(App* app, AppContext* state, uint32_t x, uint32_t y, uint32_t w, uint32_t h) { + int32_t success = 0; + EGLBoolean result; + EGLint num_config; + + deinitEgl(state); + //printf("initEgl\n"); + + static EGL_DISPMANX_WINDOW_T nativewindow; + + DISPMANX_ELEMENT_HANDLE_T dispman_element; + DISPMANX_DISPLAY_HANDLE_T dispman_display; + DISPMANX_UPDATE_HANDLE_T dispman_update; + VC_RECT_T dst_rect; + VC_RECT_T src_rect; + + static const EGLint attribute_list[] = + { + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, + EGL_DEPTH_SIZE, 16, + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_NONE + }; + + static const EGLint context_attributes[] = + { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_NONE + }; + EGLConfig config; + + // get an EGL display connection + state->display = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(state->display!=EGL_NO_DISPLAY); + check(); + + // initialize the EGL display connection + result = eglInitialize(state->display, NULL, NULL); + assert(EGL_FALSE != result); + check(); + + // get an appropriate EGL frame buffer configuration + result = eglChooseConfig(state->display, attribute_list, &config, 1, &num_config); + assert(EGL_FALSE != result); + check(); + + // get an appropriate EGL frame buffer configuration + result = eglBindAPI(EGL_OPENGL_ES_API); + assert(EGL_FALSE != result); + check(); + + // create an EGL rendering context + state->context = eglCreateContext(state->display, config, EGL_NO_CONTEXT, context_attributes); + assert(state->context!=EGL_NO_CONTEXT); + check(); + + // create an EGL window surface + uint32_t dw, dh; + success = graphics_get_display_size(0 /* LCD */, &dw, &dh); + assert( success >= 0 ); + + dst_rect.x = x; + dst_rect.y = y; + dst_rect.width = w; + dst_rect.height = h; + + src_rect.x = 0; + src_rect.y = 0; + src_rect.width = w << 16; + src_rect.height = h << 16; + + dispman_display = vc_dispmanx_display_open( 0 /* LCD */); + dispman_update = vc_dispmanx_update_start( 0 ); + + dispman_element = vc_dispmanx_element_add ( dispman_update, dispman_display, + 0/*layer*/, &dst_rect, 0/*src*/, + &src_rect, DISPMANX_PROTECTION_NONE, 0 /*alpha*/, 0/*clamp*/, (DISPMANX_TRANSFORM_T)0/*transform*/); + + nativewindow.element = dispman_element; + nativewindow.width = w;//state->screen_width; + nativewindow.height = h;//state->screen_height; + vc_dispmanx_update_submit_sync( dispman_update ); + + check(); + + state->surface = eglCreateWindowSurface( state->display, config, &nativewindow, NULL ); + assert(state->surface != EGL_NO_SURFACE); + check(); + + // connect the context to the surface + result = eglMakeCurrent(state->display, state->surface, state->surface, state->context); + assert(EGL_FALSE != result); + check(); + + _inited_egl = true; + + if (!_app_inited) { + _app_inited = true; + app->init(*state); + } else { + app->onGraphicsReset(*state); + } + app->setSize(w, h); +} + +void teardown() { + SDL_Quit(); + bcm_host_deinit(); +} + +/* +static bool isGrabbed = false; +static void setGrabbed(bool status) { + SDL_WM_GrabInput(status? SDL_GRAB_ON : SDL_GRAB_OFF); + SDL_ShowCursor (status? 0 : 1); + isGrabbed = status; + printf("set grabbed: %d\n", isGrabbed); +} +*/ + +static unsigned char transformKey(int key) { + // Handle ALL keys here. If not handled -> return 0 ("invalid") + if (key == SDLK_LSHIFT) return Keyboard::KEY_LSHIFT; + if (key == SDLK_DOWN) return 40; + if (key == SDLK_UP) return 38; + if (key == SDLK_SPACE) return Keyboard::KEY_SPACE; + if (key == SDLK_RETURN) return 13;//Keyboard::KEY_RETURN; + if (key == SDLK_ESCAPE) return Keyboard::KEY_ESCAPE; + if (key == SDLK_TAB) return 250; + if (key >= 'a' && key <= 'z') return key - 32; + if (key >= SDLK_0 && key <= SDLK_9) return '0' + (key - SDLK_0); + return 0; +} + +int handleEvents() { + SDL_Event event; + while (SDL_PollEvent(&event)) { + if (SDL_QUIT == event.type) { + return -1; + } + if (SDL_KEYDOWN == event.type) { + int key = event.key.keysym.sym; + unsigned char transformed = transformKey(key); +/* + if (SDLK_ESCAPE == key) { + if (SDL_GRAB_ON == SDL_WM_GrabInput(SDL_GRAB_QUERY)) { + setGrabbed(false); + } + } +*/ + //printf("KeyDown: %d => %d\n", key, transformed); + if (transformed) Keyboard::feed(transformed, 1); + } + if (SDL_KEYUP == event.type) { + int key = event.key.keysym.sym; + unsigned char transformed = transformKey(key); + if (transformed) Keyboard::feed(transformed, 0); + } + if (SDL_MOUSEBUTTONDOWN == event.type) { + if (SDL_BUTTON_WHEELUP == event.button.button) { + Mouse::feed(3, 0, event.button.x, event.button.y, 0, 1); + } else + if (SDL_BUTTON_WHEELDOWN == event.button.button) { + Mouse::feed(3, 0, event.button.x, event.button.y, 0, -1); + } else { + bool left = SDL_BUTTON_LEFT == event.button.button; + char button = left? 1 : 2; + Mouse::feed(button, 1, event.button.x, event.button.y); + Multitouch::feed(button, 1, event.button.x, event.button.y, 0); + + //if (!isGrabbed) setGrabbed(true); + } + } + if (SDL_MOUSEBUTTONUP == event.type) { + bool left = SDL_BUTTON_LEFT == event.button.button; + char button = left? 1 : 2;//MouseAction::ACTION_LEFT : MouseAction::ACTION_RIGHT; + Mouse::feed(button, 0, event.button.x, event.button.y); + Multitouch::feed(button, 0, event.button.x, event.button.y, 0); + + //if (!isGrabbed) setGrabbed(true); + } + if (SDL_MOUSEMOTION == event.type) { + //printf("mouse: %d, %d\n", event.motion.xrel, event.motion.yrel); + float x = event.motion.x; + float y = event.motion.y; + Multitouch::feed(0, 0, x, y, 0); + + if (1 /*|| isGrabbed*/) { + Mouse::feed(0, 0, x, y, event.motion.xrel, event.motion.yrel); + } else { + Mouse::feed(0, 0, x, y, 0, 0); + } + } + if (SDL_ACTIVEEVENT == event.type) { + if (SDL_APPACTIVE & event.active.state) _app_window_normal = event.active.gain; + //printf("state: %d (%d), %d, %d, %d\n", event.active.state, event.active.gain, SDL_APPACTIVE, SDL_APPMOUSEFOCUS, SDL_APPINPUTFOCUS); + } +/* + if (SDL_VIDEORESIZE == event.type) { + width = event.resize.w; + height = event.resize.h; + } +*/ + } + return 0; +} + +void getWindowPosition(int* x, int* y, int* w, int* h); + +void updateWindowPosition(App* app, AppContext* state) { + static int lx = -999, ly = -999; + static int lw = -999, lh = -999; + static int resetTicks = 0; + static bool lastWindowNormal = true; + static bool allowCreate = true; + int x, y; + getWindowPosition(&x, &y, &width, &height); + + if (x != lx || y != ly || width != lw || height != lh) { + lx = x; + ly = y; + lw = width; + lh = height; + resetTicks = 8; + deinitEgl(state); + //printf("move surface! (%d)\n", _inited_egl ); + } + if (--resetTicks == 0 && allowCreate) { + move_surface(app, state, x, y, width, height); + } + + if (lastWindowNormal != _app_window_normal) { + lastWindowNormal = _app_window_normal; + allowCreate = lastWindowNormal; + //printf("lastWindowNormal: %d\n", lastWindowNormal); + + if (lastWindowNormal) { + //printf("x, y, width, height: %d, %d, %d, %d\n", x, y, width, height); + move_surface(app, state, x, y, width, height); + //resetTicks = 8; + } else { + deinitEgl(state); + lx = ly = -10000; + } +// move_surface(app, state, 0, 0, 0, 0); + } +} + +int main(int argc, char** argv) { + bcm_host_init(); + + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + printf("Couldn't initialize SDL\n"); + return -1; + } + + SDL_Surface* sdlSurface = SDL_SetVideoMode(width,height,32,SDL_SWSURFACE|SDL_RESIZABLE); + if (sdlSurface == NULL) { + printf("Couldn't create SDL window\n"); + return -2; + } + + //printf("argv[0]: %s\n", argv[0]); + + std::string path = argv[0]; + int e = path.rfind('/'); + if (e != std::string::npos) { + path = path.substr(0, e); + chdir(path.c_str()); + } + + char buf[1024]; + getcwd(buf, 1000); + //printf("getcwd: %s\n", buf); + + //printf("HOME: %s\n", getenv("HOME")); + + atexit(teardown); + SDL_WM_SetCaption("Minecraft - Pi edition", 0); + //setGrabbed(false);; + + MAIN_CLASS* app = new MAIN_CLASS(); + std::string storagePath = getenv("HOME"); + storagePath += "/.minecraft/"; + app->externalStoragePath = storagePath; + app->externalCacheStoragePath = storagePath; + + int commandPort = 0; + if (argc > 1) { + commandPort = atoi(argv[1]); + } + + if (commandPort != 0) + app->commandPort = commandPort; + + //printf("storage: %s\n", app->externalStoragePath.c_str()); + + AppContext context; + AppPlatform_linux platform; + context.doRender = true; + context.platform = &platform; + + initEgl(app, &context, width, height); + + bool running = true; + while (running) { + + updateWindowPosition(app, &context); + + running = handleEvents() == 0; + app->update(); + } + + deinitEgl(&context); + + return 0; +} + +#endif diff --git a/src/main_win32.h b/src/main_win32.h new file mode 100755 index 0000000..931ae64 --- /dev/null +++ b/src/main_win32.h @@ -0,0 +1,323 @@ +#ifndef MAIN_WIN32_H__ +#define MAIN_WIN32_H__ + +/* +#define _CRTDBG_MAP_ALLOC +#include +#include +*/ + +#include "client/renderer/gles.h" +#include +// #include +#define WIN32_LEAN_AND_MEAN 1 +#include +#include + +#include +#include +#include "SharedConstants.h" + +#include +#include "platform/input/Mouse.h" +#include "platform/input/Multitouch.h" +#include "util/Mth.h" +#include "AppPlatform_win32.h" + +static App* g_app = 0; +static volatile bool g_running = true; + +static int getBits(int bits, int startBitInclusive, int endBitExclusive, int shiftTruncate) { + int sum = 0; + for (int i = startBitInclusive; i> startBitInclusive) : sum; +} + +void resizeWindow(HWND hWnd, int nWidth, int nHeight) { + RECT rcClient, rcWindow; + POINT ptDiff; + GetClientRect(hWnd, &rcClient); + GetWindowRect(hWnd, &rcWindow); + ptDiff.x = (rcWindow.right - rcWindow.left) - rcClient.right; + ptDiff.y = (rcWindow.bottom - rcWindow.top) - rcClient.bottom; + MoveWindow(hWnd,rcWindow.left, rcWindow.top, nWidth + ptDiff.x, nHeight + ptDiff.y, TRUE); +} + +void toggleResolutions(HWND hwnd, int direction) { + static int n = 0; + static int sizes[][3] = { + {854, 480, 1}, + {800, 480, 1}, + {480, 320, 1}, + {1024, 768, 1}, + {1280, 800, 1}, + {1024, 580, 1} + }; + static int count = sizeof(sizes) / sizeof(sizes[0]); + n = (count + n + direction) % count; + + int* size = sizes[n]; + int k = size[2]; + + resizeWindow(hwnd, k * size[0], k * size[1]); +} + +LRESULT WINAPI windowProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { + LRESULT retval = 1; + + switch (uMsg) + { + case WM_KEYDOWN: { + if (wParam == 33) toggleResolutions(hWnd, -1); + if (wParam == 34) toggleResolutions(hWnd, +1); + + //if (wParam == 'Q') ((Minecraft*)g_app)->leaveGame(); + Keyboard::feed((unsigned char) wParam, 1); //(unsigned char) getBits(lParam, 16, 23, 1) + + //char* lParamConv = (char*) &lParam; + //int convertResult = ToUnicode(wParam, lParamConv[1], ) + + return 0; + } + case WM_KEYUP: { + Keyboard::feed((unsigned char) wParam, 0); //(unsigned char) getBits(lParam, 16, 23, 1) + return 0; + } + case WM_CHAR: { + //LOGW("WM_CHAR: %d\n", wParam); + if(wParam >= 32) + Keyboard::feedText(wParam); + return 0; + } + case WM_LBUTTONDOWN: { + Mouse::feed( MouseAction::ACTION_LEFT, 1, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); + Multitouch::feed(1, 1, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0); + break; + } + case WM_LBUTTONUP: { + Mouse::feed( MouseAction::ACTION_LEFT, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); + Multitouch::feed(1, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0); + break; + } + case WM_RBUTTONDOWN: { + Mouse::feed( MouseAction::ACTION_RIGHT, 1, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); + break; + } + case WM_RBUTTONUP: { + Mouse::feed( MouseAction::ACTION_RIGHT, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); + break; + } + case WM_MOUSEMOVE: { + Mouse::feed( MouseAction::ACTION_MOVE, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); + Multitouch::feed(0, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0); + break; + } + default: + if (uMsg == WM_NCDESTROY) g_running = false; + else { + if (uMsg == WM_SIZE) { + if (g_app) g_app->setSize( GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) ); + } + } + retval = DefWindowProc (hWnd, uMsg, wParam, lParam); + break; + } + return retval; +} + +void platform(HWND *result, int width, int height) { + WNDCLASS wc; + RECT wRect; + HWND hwnd; + HINSTANCE hInstance; + + wRect.left = 0L; + wRect.right = (long)width; + wRect.top = 0L; + wRect.bottom = (long)height; + + hInstance = GetModuleHandle(NULL); + + wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; + wc.lpfnWndProc = (WNDPROC)windowProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = NULL; + wc.lpszMenuName = NULL; + wc.lpszClassName = "OGLES"; + + RegisterClass(&wc); + + AdjustWindowRectEx(&wRect, WS_OVERLAPPEDWINDOW, FALSE, WS_EX_APPWINDOW | WS_EX_WINDOWEDGE); + + std::string windowName("Minecraft PE" + Common::getGameVersionString()); + + hwnd = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_WINDOWEDGE, "OGLES", windowName.c_str(), WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, 0, 0, wRect.right-wRect.left, wRect.bottom-wRect.top, NULL, NULL, hInstance, NULL); + *result = hwnd; +} + +/** Thread that reads input data via UDP network datagrams + and fills Mouse and Keyboard structures accordingly. + @note: The bound local net address is unfortunately + hard coded right now (to prevent wrong Interface) */ +void inputNetworkThread(void* userdata) +{ + // set up an UDP socket for listening + WSADATA wsaData; + if (WSAStartup(0x101, &wsaData)) { + printf("Couldn't initialize winsock\n"); + return; + } + + SOCKET s = socket(AF_INET, SOCK_DGRAM, 0); + if (s == INVALID_SOCKET) { + printf("Couldn't create socket\n"); + return; + } + + sockaddr_in addr; + addr.sin_family = AF_INET; + addr.sin_port = htons(9991); + addr.sin_addr.s_addr = inet_addr("192.168.0.119"); + + if (bind(s, (sockaddr*)&addr, sizeof(addr))) { + printf("Couldn't bind socket to port 9991\n"); + return; + } + + sockaddr fromAddr; + int fromAddrLen = sizeof(fromAddr); + + char buf[1500]; + int* iptrBuf = (int*)buf; + + printf("input-server listening...\n"); + + while (1) { + int read = recvfrom(s, buf, 1500, 0, &fromAddr, &fromAddrLen); + if (read < 0) + { + printf("recvfrom failed with code: %d\n", WSAGetLastError()); + return; + } + // Keyboard + if (read == 2) { + Keyboard::feed((unsigned char) buf[0], (int)buf[1]); + } + // Mouse + else if (read == 16) { + Mouse::feed(iptrBuf[0], iptrBuf[1], iptrBuf[2], iptrBuf[2]); + } + } +} + +int main(void) { + AppContext appContext; + MSG sMessage; + +#ifndef STANDALONE_SERVER + + EGLint aEGLAttributes[] = { + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, + EGL_DEPTH_SIZE, 16, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, + EGL_NONE + }; + EGLint aEGLContextAttributes[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_NONE + }; + + EGLConfig m_eglConfig[1]; + EGLint nConfigs; + + HWND hwnd; + g_running = true; + + // Platform init. + appContext.platform = new AppPlatform_win32(); + platform(&hwnd, appContext.platform->getScreenWidth(), appContext.platform->getScreenHeight()); + ShowWindow(hwnd, SW_SHOW); + SetForegroundWindow(hwnd); + SetFocus(hwnd); + + // EGL init. + appContext.display = eglGetDisplay(GetDC(hwnd)); + //m_eglDisplay = eglGetDisplay((EGLNativeDisplayType) EGL_DEFAULT_DISPLAY); + + eglInitialize(appContext.display, NULL, NULL); + + eglChooseConfig(appContext.display, aEGLAttributes, m_eglConfig, 1, &nConfigs); + printf("EGLConfig = %p\n", m_eglConfig[0]); + + appContext.surface = eglCreateWindowSurface(appContext.display, m_eglConfig[0], (NativeWindowType)hwnd, 0); + printf("EGLSurface = %p\n", appContext.surface); + + appContext.context = eglCreateContext(appContext.display, m_eglConfig[0], EGL_NO_CONTEXT, NULL);//aEGLContextAttributes); + printf("EGLContext = %p\n", appContext.context); + if (!appContext.context) { + printf("EGL error: %d\n", eglGetError()); + } + + eglMakeCurrent(appContext.display, appContext.surface, appContext.surface, appContext.context); + + glInit(); + +#endif + App* app = new MAIN_CLASS(); + + g_app = app; + ((MAIN_CLASS*)g_app)->externalStoragePath = "."; + ((MAIN_CLASS*)g_app)->externalCacheStoragePath = "."; + g_app->init(appContext); + g_app->setSize(appContext.platform->getScreenWidth(), appContext.platform->getScreenHeight()); + + //_beginthread(inputNetworkThread, 0, 0); + + // Main event loop + while(g_running && !app->wantToQuit()) + { + // Do Windows stuff: + while (PeekMessage (&sMessage, NULL, 0, 0, PM_REMOVE) > 0) { + if(sMessage.message == WM_QUIT) { + g_running = false; + break; + } + else { + TranslateMessage(&sMessage); + DispatchMessage(&sMessage); + } + } + app->update(); + + //Sleep(30); + } + + Sleep(50); + delete app; + Sleep(50); + appContext.platform->finish(); + Sleep(50); + delete appContext.platform; + Sleep(50); + //printf("_crtDumpMemoryLeaks: %d\n", _CrtDumpMemoryLeaks()); + +#ifndef STANDALONE_SERVER + // Exit. + eglMakeCurrent(appContext.display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglDestroyContext(appContext.display, appContext.context); + eglDestroySurface(appContext.display, appContext.surface); + eglTerminate(appContext.display); +#endif + + return 0; +} + +#endif /*MAIN_WIN32_H__*/ diff --git a/src/nbt/ByteArrayTag.h b/src/nbt/ByteArrayTag.h new file mode 100755 index 0000000..6f32f40 --- /dev/null +++ b/src/nbt/ByteArrayTag.h @@ -0,0 +1,79 @@ +#ifndef COM_MOJANG_NBT__ByteArrayTag_H__ +#define COM_MOJANG_NBT__ByteArrayTag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +#include "Tag.h" +#include + +typedef struct TagMemoryChunk { + TagMemoryChunk() + : data(NULL), + len(0) + {} + void* data; + int len; +} TagMemoryChunk; + +class ByteArrayTag: public Tag +{ + typedef Tag super; +public: + TagMemoryChunk data; + + ByteArrayTag(const std::string& name) + : super(name) + { + } + + ByteArrayTag(const std::string& name, TagMemoryChunk data) + : super(name), + data(data) + { + } + + char getId() const { + return TAG_Byte_Array; + } + + std::string toString() const { + std::stringstream ss; + ss << "[" << data.len << " bytes]"; + return ss.str(); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + ByteArrayTag& o = (ByteArrayTag&) rhs; + if (data.len != o.data.len) + return false; + + return memcmp(data.data, o.data.data, data.len) == 0; + } + return false; + } + + //@Override + Tag* copy() const { + TagMemoryChunk chunk; + chunk.data = new char[data.len]; + memcpy(chunk.data, data.data, data.len); + return new ByteArrayTag(getName(), chunk); + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeInt(data.len); + dos->writeBytes(data.data, data.len); + } + + void load(IDataInput* dis) /*throws IOException*/ { + int length = dis->readInt(); + data.data = new char[length]; + dis->readBytes(data.data, length); + } +}; + +#endif /*COM_MOJANG_NBT__ByteArrayTag_H__*/ diff --git a/src/nbt/ByteTag.h b/src/nbt/ByteTag.h new file mode 100755 index 0000000..de3f648 --- /dev/null +++ b/src/nbt/ByteTag.h @@ -0,0 +1,57 @@ +#ifndef COM_MOJANG_NBT__ByteTag_H__ +#define COM_MOJANG_NBT__ByteTag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +#include "Tag.h" +#include + +class ByteTag: public Tag +{ + typedef Tag super; +public: + char data; + + ByteTag(const std::string& name) + : super(name) + {} + + ByteTag(const std::string& name, char data) + : super(name), + data(data) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeByte(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readByte(); + } + + char getId() const { + return TAG_Byte; + } + + std::string toString() const { + return std::string(data, 1); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + return data == ((ByteTag&)rhs).data; + } + return false; + } + + //@Override + Tag* copy() const { + return new ByteTag(getName(), data); + } +}; + +#endif /*COM_MOJANG_NBT__ByteTag_H__*/ diff --git a/src/nbt/CompoundTag.h b/src/nbt/CompoundTag.h new file mode 100755 index 0000000..5873c74 --- /dev/null +++ b/src/nbt/CompoundTag.h @@ -0,0 +1,242 @@ +#ifndef COM_MOJANG_NBT__CompoundTag_H__ +#define COM_MOJANG_NBT__CompoundTag_H__ + +//package com.mojang.nbt; + +#include "Tag.h" +#include +#include +#include +#include +#include "../util/CollectionUtils.h" + +#include "ByteTag.h" +#include "ShortTag.h" +#include "IntTag.h" +#include "LongTag.h" +#include "FloatTag.h" +#include "DoubleTag.h" +#include "ListTag.h" +#include "StringTag.h" +#include "ByteArrayTag.h" + +class CompoundTag: public Tag +{ + typedef Tag super; + typedef std::map TagMap; +public: + CompoundTag() + : super("") + { + } + + CompoundTag(const std::string& name) + : super(name) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + for (TagMap::iterator it = tags.begin(); it != tags.end(); ++it) { + Tag::writeNamedTag(it->second, dos); + } + dos->writeByte(Tag::TAG_End); + } + + void load(IDataInput* dis) /*throws IOException*/ { + tags.clear(); + Tag* tag = NULL; + + while ((tag = Tag::readNamedTag(dis)) && tag->getId() != Tag::TAG_End) { + tags.insert(std::make_pair(tag->getName(), tag)); + } + // is now of type TAG_End (that's new'ed). Delete it. + delete tag; + } + + void getAllTags(std::vector& tags_) const { + //std::transform(tags.begin(), tags.end(), std::back_inserter(tags_), PairValueFunctor()); + for (TagMap::const_iterator it = tags.begin(); it != tags.end(); ++it) { + tags_.push_back(it->second); + } + } + + char getId() const { + return TAG_Compound; + } + + void put(const std::string& name, Tag* tag) { + tags.insert(std::make_pair(name, tag->setName(name))); + } + + void putByte(const std::string& name, char value) { + tags.insert(std::make_pair(name, new ByteTag(name, value))); + } + + void putShort(const std::string& name, short value) { + tags.insert(std::make_pair(name, new ShortTag(name, value))); + } + + void putInt(const std::string& name, int value) { + tags.insert(std::make_pair(name, new IntTag(name, value))); + } + + void putLong(const std::string& name, long value) { + tags.insert(std::make_pair(name, new LongTag(name, value))); + } + + void putFloat(const std::string& name, float value) { + tags.insert(std::make_pair(name, new FloatTag(name, value))); + } + + void putDouble(const std::string& name, float value) { + tags.insert(std::make_pair(name, new DoubleTag(name, value))); + } + + void putString(const std::string& name, const std::string& value) { + tags.insert(std::make_pair(name, new StringTag(name, value))); + } + + void putByteArray(const std::string& name, TagMemoryChunk mem) { + tags.insert(std::make_pair(name, new ByteArrayTag(name, mem))); + } + + void putCompound(const std::string& name, CompoundTag* value) { + tags.insert(std::make_pair(name, value->setName(name))); + } + + void putBoolean(const std::string& string, bool val) { + putByte(string, val ? (char) 1 : 0); + } + + Tag* get(const std::string& name) const { + TagMap::const_iterator it = tags.find(name); + if (it == tags.end()) + return NULL; + return it->second; + } + + __inline bool contains(const std::string& name) const { + return tags.find(name) != tags.end(); + } + bool contains(const std::string& name, int type) const { + Tag* tag = get(name); + return tag && tag->getId() == type; + } + + char getByte(const std::string& name) const { + if (!contains(name, TAG_Byte)) return (char) 0; + return ((ByteTag*) get(name))->data; + } + + short getShort(const std::string& name) const { + if (!contains(name, TAG_Short)) return (short) 0; + return ((ShortTag*) get(name))->data; + } + + int getInt(const std::string& name) const { + if (!contains(name, TAG_Int)) return (int) 0; + return ((IntTag*) get(name))->data; + } + + long long getLong(const std::string& name) const { + if (!contains(name, TAG_Long)) return (long long) 0; + return ((LongTag*) get(name))->data; + } + + float getFloat(const std::string& name) const { + if (!contains(name, TAG_Float)) return (float) 0; + return ((FloatTag*) get(name))->data; + } + + double getDouble(const std::string& name) const { + if (!contains(name, TAG_Double)) return (double) 0; + return ((DoubleTag*) get(name))->data; + } + + std::string getString(const std::string& name) const { + if (!contains(name, TAG_String)) return ""; + return ((StringTag*) get(name))->data; + } + + TagMemoryChunk getByteArray(const std::string& name) const { + if (!contains(name, TAG_Byte_Array)) return TagMemoryChunk(); + return ((ByteArrayTag*) get(name))->data; + } + + CompoundTag* getCompound(const std::string& name) const { + if (!contains(name, TAG_Compound)) return new CompoundTag(name); + return (CompoundTag*) get(name); + } + + ListTag* getList(const std::string& name) const { + if (!contains(name, TAG_List)) return new ListTag(name); + return (ListTag*) get(name); + } + + bool getBoolean(const std::string& string) const { + return getByte(string) != 0; + } + + std::string toString() const { + std::stringstream ss; + ss << tags.size() << " entries"; + return ss.str(); + } + + void print(const std::string& prefix_, PrintStream& out) const { + super::print(prefix_, out); + std::string prefix = prefix_; + out.print(prefix); out.println("{"); + prefix += " "; + for (TagMap::const_iterator it = tags.begin(); it != tags.end(); ++it) { + (it->second)->print(prefix, out); + } + out.print(prefix_); + out.println("}"); + } + + bool isEmpty() const { + return tags.empty(); + } + + Tag* copy() const { + CompoundTag* tag = new CompoundTag(getName()); + for (TagMap::const_iterator it = tags.begin(); it != tags.end(); ++it) { + //tag->put(it->first, get(it->first)->copy()); + tag->put(it->first, it->second->copy()); + } + return tag; + } + + //@Override + bool equals(const Tag& obj) const { + if (super::equals(obj)) { + CompoundTag& o = (CompoundTag&) obj; + + if (tags.size() != o.tags.size()) + return false; + + for (TagMap::const_iterator it = tags.begin(), jt = o.tags.begin(); it != tags.end(); ++it, ++jt) { + if (it->first != jt->first) return false; + if (!it->second->equals(*jt->second)) return false; + } + + return true; + } + return false; + } + + void deleteChildren() { + TagMap::iterator it = tags.begin(); + for (; it != tags.end(); ++it) { + if (!it->second) + continue; + it->second->deleteChildren(); + delete it->second; + } + } +private: + TagMap tags; +}; + +#endif /*COM_MOJANG_NBT__CompoundTag_H__*/ diff --git a/src/nbt/DoubleTag.h b/src/nbt/DoubleTag.h new file mode 100755 index 0000000..6d1a639 --- /dev/null +++ b/src/nbt/DoubleTag.h @@ -0,0 +1,57 @@ +#ifndef COM_MOJANG_NBT__DoubleTag_H__ +#define COM_MOJANG_NBT__DoubleTag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +#include "Tag.h" +#include + +class DoubleTag: public Tag { + typedef Tag super; +public: + double data; + + DoubleTag(const std::string& name) + : super(name) + {} + + DoubleTag(const std::string& name, double data) + : super(name), + data(data) + {} + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeDouble(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readDouble(); + } + + char getId() const { + return TAG_Double; + } + + std::string toString() const { + std::stringstream ss; + ss << data; + return ss.str(); + } + + //@Override + Tag* copy() const { + return new DoubleTag(getName(), data); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + return data == ((DoubleTag&)rhs).data; + } + return false; + } +}; + +#endif /*COM_MOJANG_NBT__DoubleTag_H__*/ diff --git a/src/nbt/EndTag.h b/src/nbt/EndTag.h new file mode 100755 index 0000000..6b85442 --- /dev/null +++ b/src/nbt/EndTag.h @@ -0,0 +1,41 @@ +#ifndef COM_MOJANG_NBT__EndTag_H__ +#define COM_MOJANG_NBT__EndTag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +class EndTag: public Tag { + typedef Tag super; +public: + EndTag() + : super("") + { + } + + void load(IDataInput* dis) /*throws IOException*/ { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + } + + char getId() const { + return TAG_End; + } + + std::string toString() const { + return "END"; + } + + //@Override + Tag* copy() const { + return new EndTag(); + } + + //@Override + bool equals(const Tag& rhs) const { + return super::equals(rhs); + } +}; + +#endif /*COM_MOJANG_NBT__EndTag_H__*/ diff --git a/src/nbt/FloatTag.h b/src/nbt/FloatTag.h new file mode 100755 index 0000000..884f65d --- /dev/null +++ b/src/nbt/FloatTag.h @@ -0,0 +1,59 @@ +#ifndef COM_MOJANG_NBT__FloatTag_H__ +#define COM_MOJANG_NBT__FloatTag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +#include "Tag.h" +#include + +class FloatTag: public Tag { + typedef Tag super; +public: + float data; + + FloatTag(const std::string& name) + : super(name) + { + } + + FloatTag(const std::string& name, float data) + : super(name), + data(data) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeFloat(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readFloat(); + } + + char getId() const { + return TAG_Float; + } + + std::string toString() const { + std::stringstream ss; + ss << data; + return ss.str(); + } + + //@Override + Tag* copy() const { + return new FloatTag(getName(), data); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + return data == ((FloatTag&)rhs).data; + } + return false; + } +}; + +#endif /*COM_MOJANG_NBT__FloatTag_H__*/ diff --git a/src/nbt/IntTag.h b/src/nbt/IntTag.h new file mode 100755 index 0000000..5a803af --- /dev/null +++ b/src/nbt/IntTag.h @@ -0,0 +1,58 @@ +#ifndef COM_MOJANG_NBT__IntTag_H__ +#define COM_MOJANG_NBT__IntTag_H__ + +//package com.mojang.nbt; + +#include "Tag.h" +#include +/* import java.io.* */ + +class IntTag: public Tag { + typedef Tag super; +public: + int data; + + IntTag(const std::string& name) + : super(name) + { + } + + IntTag(const std::string& name, int data) + : super(name), + data(data) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeInt(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readInt(); + } + + char getId() const { + return TAG_Int; + } + + std::string toString() const { + std::stringstream ss; + ss << data; + return ss.str(); + } + + //@Override + Tag* copy() const { + return new IntTag(getName(), data); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + return data == ((IntTag&)rhs).data; + } + return false; + } +}; + +#endif /*COM_MOJANG_NBT__IntTag_H__*/ diff --git a/src/nbt/ListTag.h b/src/nbt/ListTag.h new file mode 100755 index 0000000..5f1c913 --- /dev/null +++ b/src/nbt/ListTag.h @@ -0,0 +1,171 @@ +#ifndef COM_MOJANG_NBT__ListTag_H__ +#define COM_MOJANG_NBT__ListTag_H__ + +//package com.mojang.nbt; + +#include "Tag.h" +#include + +//template +class ListTag: public Tag +{ + typedef Tag super; + typedef Tag* T; + typedef std::vector List; + +public: + ListTag() + : super("") + { + } + + ListTag(const std::string& name) + : super(name) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + if (list.size() > 0) type = list.front()->getId(); + else type = TAG_Byte; + + dos->writeByte(type); + dos->writeInt(list.size()); + + for (List::iterator it = list.begin(); it != list.end(); ++it) { + (*it)->write(dos); + } + } + + //@SuppressWarnings("unchecked") + void load(IDataInput* dis) /*throws IOException*/ { + type = dis->readByte(); + int size = dis->readInt(); + + list.clear();// = List(); + for (int i = 0; i < size; i++) { + Tag* tag = Tag::newTag(type, NullString); + tag->load(dis); + list.insert(list.end(), tag); + } + } + + char getId() const { + return TAG_List; + } + + std::string toString() const { + std::stringstream ss; + ss << list.size() << " entries of type " << Tag::getTagName(type); + return ss.str(); + } + + void print(const std::string& prefix_, PrintStream& out) const { + super::print(prefix_, out); + + std::string prefix = prefix_; + out.print(prefix); out.println("{"); + prefix += " "; + + for (List::const_iterator it = list.begin(); it != list.end(); ++it) { + (*it)->print(prefix, out); + } + out.print(prefix_); out.println("}"); + } + + void add(T tag) { + type = tag->getId(); + list.insert(list.end(), tag); + } + + T get(int index) const { + if (index >= size()) { + errorState |= TAGERR_OUT_OF_BOUNDS; + return NULL; + } + return *(list.begin() + index); + } + float getFloat(int index) { + T tag = get(index); + if (!tag) + return 0; + if (tag->getId() != TAG_Float) { + errorState |= TAGERR_BAD_TYPE; + return 0; + } + return ((FloatTag*)tag)->data; + } + + int size() const { + return list.size(); + } + + //@Override + Tag* copy() const { + ListTag* res = new ListTag(getName()); + res->type = type; + + for (List::const_iterator it = list.begin(); it != list.end(); ++it) { + T copy = (*it)->copy(); + res->list.insert(res->list.end(), copy); + } + return res; + } + + //@SuppressWarnings("rawtypes") + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + ListTag& o = (ListTag&) rhs; + if (type == o.type && list.size() == o.list.size()) { + for (List::const_iterator it = list.begin(), jt = o.list.begin(); it != list.end(); ++it, ++jt) { + if ((*it)->equals(**jt)) + return false; + } + return true; + } + } + return false; + } + + void deleteChildren() { + for (List::iterator it = list.begin(); it != list.end(); ++it) { + if (*it) { + (*it)->deleteChildren(); + delete (*it); + } + } + } + +private: + List list; + char type; +}; + + +class ListTagFloatAdder { +public: + ListTagFloatAdder() + : tag(NULL) + {} + ListTagFloatAdder(float f) + : tag(NULL) + { + operator() (f); + } + ListTagFloatAdder(ListTag* tag) + : tag(tag) + {} + + ListTagFloatAdder& operator() (const std::string& name, float f) { + if (!tag) tag = new ListTag(); + tag->add( new FloatTag(name, f) ); + return *this; + } + ListTagFloatAdder& operator() (float f) { + return operator() ("", f); + } + + ListTag* tag; +}; + +#endif /*COM_MOJANG_NBT__ListTag_H__*/ diff --git a/src/nbt/LongTag.h b/src/nbt/LongTag.h new file mode 100755 index 0000000..d620545 --- /dev/null +++ b/src/nbt/LongTag.h @@ -0,0 +1,56 @@ +#ifndef COM_MOJANG_NBT__LongTag_H__ +#define COM_MOJANG_NBT__LongTag_H__ + +//package com.mojang.nbt; +#include "Tag.h" +#include + +class LongTag: public Tag { + typedef Tag super; +public: + long long data; + + LongTag(const std::string& name) + : super(name) + { + } + + LongTag(const std::string& name, long long data) + : super(name), + data(data) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeLongLong(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readLongLong(); + } + + char getId() const { + return TAG_Long; + } + + std::string toString() const { + std::stringstream ss; + ss << data; + return ss.str(); + } + + //@Override + Tag* copy() const { + return new LongTag(getName(), data); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + return data == ((LongTag&)rhs).data; + } + return false; + } +}; + +#endif /*COM_MOJANG_NBT__LongTag_H__*/ diff --git a/src/nbt/NbtIo.h b/src/nbt/NbtIo.h new file mode 100755 index 0000000..ee9bed3 --- /dev/null +++ b/src/nbt/NbtIo.h @@ -0,0 +1,26 @@ +#ifndef COM_MOJANG_NBT__NbtIo_H__ +#define COM_MOJANG_NBT__NbtIo_H__ + +//package com.mojang.nbt; + +#include "CompoundTag.h" +#include "../util/DataIO.h" + +class NbtIo +{ +public: + static CompoundTag* read(IDataInput* dis) { + Tag *tag = Tag::readNamedTag(dis); + if (tag && tag->getId() == Tag::TAG_Compound) + return (CompoundTag*) tag; + return NULL; + } + + static bool write(CompoundTag* tag, IDataOutput* dos) { + if (!tag) return false; + Tag::writeNamedTag(tag, dos); + return false; + } +}; + +#endif /*COM_MOJANG_NBT__NbtIo_H__*/ diff --git a/src/nbt/ShortTag.h b/src/nbt/ShortTag.h new file mode 100755 index 0000000..c2e0caf --- /dev/null +++ b/src/nbt/ShortTag.h @@ -0,0 +1,59 @@ +#ifndef COM_MOJANG_NBT__ShortTag_H__ +#define COM_MOJANG_NBT__ShortTag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +#include "Tag.h" +#include + +class ShortTag: public Tag { + typedef Tag super; +public: + short data; + + ShortTag(const std::string& name) + : super(name) + { + } + + ShortTag(const std::string& name, short data) + : super(name), + data(data) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeShort(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readShort(); + } + + char getId() const { + return TAG_Short; + } + + std::string toString() const { + std::stringstream ss; + ss << data; + return ss.str(); + } + + //@Override + Tag* copy() const { + return new ShortTag(getName(), data); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + return data == ((ShortTag&)rhs).data; + } + return false; + } +}; + +#endif /*COM_MOJANG_NBT__ShortTag_H__*/ diff --git a/src/nbt/StringTag.h b/src/nbt/StringTag.h new file mode 100755 index 0000000..8967e58 --- /dev/null +++ b/src/nbt/StringTag.h @@ -0,0 +1,62 @@ +#ifndef COM_MOJANG_NBT__StringTag_H__ +#define COM_MOJANG_NBT__StringTag_H__ + +//package com.mojang.nbt; + +#include "Tag.h" +#include + +class StringTag: public Tag +{ + typedef Tag super; +public: + std::string data; + int len; + + StringTag(const std::string& name) + : super(name), + len(name.length()) + { + } + + StringTag(const std::string& name, const std::string& data) + : super(name), + data(data), + len(name.length()) + { + } + + void write(IDataOutput* dos) /*throws IOException*/ { + dos->writeString(data); + } + + void load(IDataInput* dis) /*throws IOException*/ { + data = dis->readString(); // just a tiny bit slower, but safer + } + + char getId() const { + return TAG_String; + } + + std::string toString() const { + std::stringstream ss; + ss << data; + return ss.str(); + } + + //@Override + Tag* copy() const { + return new StringTag(getName(), data); + } + + //@Override + bool equals(const Tag& rhs) const { + if (super::equals(rhs)) { + StringTag& o = (StringTag&) rhs; + return data == o.data; + } + return false; + } +}; + +#endif /*COM_MOJANG_NBT__StringTag_H__*/ diff --git a/src/nbt/Tag.cpp b/src/nbt/Tag.cpp new file mode 100755 index 0000000..b1ce3ae --- /dev/null +++ b/src/nbt/Tag.cpp @@ -0,0 +1,139 @@ +#include "Tag.h" + +#include "EndTag.h" +#include "ByteTag.h" +#include "ShortTag.h" +#include "IntTag.h" +#include "LongTag.h" +#include "FloatTag.h" +#include "DoubleTag.h" +#include "ByteArrayTag.h" +#include "StringTag.h" +#include "ListTag.h" +#include "CompoundTag.h" + + +/*static*/ const std::string Tag::NullString = ""; + + +Tag::Tag(const std::string& name) +: name(name), + errorState(0) +{ +} + +/*virtual*/ +bool Tag::equals(const Tag& rhs) const { + return getId() == rhs.getId() + && name == rhs.name; +} + +/*virtual*/ +void Tag::print(PrintStream& out) const { + print("", out); +} + +/*virtual*/ +void Tag::print(const std::string& prefix, PrintStream& out) const { + std::string name = getName(); + + out.print(prefix); + out.print(getTagName(getId())); + if (name.length() > 0) { + out.print("(\"" + name + "\")"); + } + out.print(": "); + out.println(toString()); +} + +/*virtual*/ +Tag* Tag::setName(const std::string& name) { + this->name = name; + return this; +} + +/*virtual*/ +std::string Tag::getName() const { + return name; +} + +/*static*/ +Tag* Tag::readNamedTag(IDataInput* dis) /*throws IOException*/ { + char type = dis->readByte(); + if (type == Tag::TAG_End) return new EndTag(); + + Tag* tag = newTag(type, dis->readString()); + if (!tag) + return NULL; + + tag->load(dis); + return tag; +} + +/*static*/ +void Tag::writeNamedTag(Tag* tag, IDataOutput* dos) /*throws IOException*/ { + dos->writeByte(tag->getId()); + if (tag->getId() == Tag::TAG_End) return; + + dos->writeString(tag->getName()); + tag->write(dos); +} + +/*static*/ +Tag* Tag::newTag(char type, const std::string& name) +{ + switch (type) { + case TAG_End: + return new EndTag(); + case TAG_Byte: + return new ByteTag(name); + case TAG_Short: + return new ShortTag(name); + case TAG_Int: + return new IntTag(name); + case TAG_Long: + return new LongTag(name); + case TAG_Float: + return new FloatTag(name); + case TAG_Double: + return new DoubleTag(name); + case TAG_Byte_Array: + return new ByteArrayTag(name); + case TAG_String: + return new StringTag(name); + case TAG_List: + return new ListTag(name); + case TAG_Compound: + return new CompoundTag(name); + } + return NULL; +} + +/*static*/ +std::string Tag::getTagName(char type) { + switch (type) { + case TAG_End: + return "TAG_End"; + case TAG_Byte: + return "TAG_Byte"; + case TAG_Short: + return "TAG_Short"; + case TAG_Int: + return "TAG_Int"; + case TAG_Long: + return "TAG_Long"; + case TAG_Float: + return "TAG_Float"; + case TAG_Double: + return "TAG_Double"; + case TAG_Byte_Array: + return "TAG_Byte_Array"; + case TAG_String: + return "TAG_String"; + case TAG_List: + return "TAG_List"; + case TAG_Compound: + return "TAG_Compound"; + } + return "UNKNOWN"; +} diff --git a/src/nbt/Tag.h b/src/nbt/Tag.h new file mode 100755 index 0000000..5cfc3ff --- /dev/null +++ b/src/nbt/Tag.h @@ -0,0 +1,65 @@ +#ifndef COM_MOJANG_NBT__Tag_H__ +#define COM_MOJANG_NBT__Tag_H__ + +//package com.mojang.nbt; + +/* import java.io.* */ + +#include "../util/DataIO.h" + +#include + + +class Tag +{ +public: + virtual ~Tag() {} + virtual void deleteChildren() {} + + static const char TAG_End = 0; + static const char TAG_Byte = 1; + static const char TAG_Short = 2; + static const char TAG_Int = 3; + static const char TAG_Long = 4; + static const char TAG_Float = 5; + static const char TAG_Double = 6; + static const char TAG_Byte_Array= 7; + static const char TAG_String = 8; + static const char TAG_List = 9; + static const char TAG_Compound = 10; + + static const std::string NullString; + + virtual void write(IDataOutput* dos) = 0; ///*throws IOException*/; + virtual void load(IDataInput* dis) = 0; ///*throws IOException*/; + + virtual std::string toString() const = 0; + virtual char getId() const = 0; + + virtual bool equals(const Tag& rhs) const; + + virtual void print(PrintStream& out) const; + virtual void print(const std::string& prefix, PrintStream& out) const; + + virtual Tag* setName(const std::string& name); + virtual std::string getName() const; + + static Tag* readNamedTag(IDataInput* dis); + static void writeNamedTag(Tag* tag, IDataOutput* dos); + + static Tag* newTag(char type, const std::string& name); + + static std::string getTagName(char type); + + virtual Tag* copy() const = 0; + + mutable int errorState; + static const int TAGERR_OUT_OF_BOUNDS = 1; + static const int TAGERR_BAD_TYPE = 2; +protected: + Tag(const std::string& name); +private: + std::string name; +}; + +#endif /*COM_MOJANG_NBT__Tag_H__*/ diff --git a/src/network/ClientSideNetworkHandler.cpp b/src/network/ClientSideNetworkHandler.cpp new file mode 100755 index 0000000..a5bc1b0 --- /dev/null +++ b/src/network/ClientSideNetworkHandler.cpp @@ -0,0 +1,925 @@ + +#include "ClientSideNetworkHandler.h" +#include "packet/PacketInclude.h" +#include "RakNetInstance.h" +#include "../world/level/chunk/ChunkSource.h" +#include "../world/level/Level.h" +#include "../world/level/storage/LevelStorageSource.h" +#include "../world/entity/player/Player.h" +#include "../world/entity/player/Inventory.h" +#include "../client/Minecraft.h" +#include "../client/gamemode/GameMode.h" +#ifndef STANDALONE_SERVER +#include "../client/gui/screens/DisconnectionScreen.h" +#endif +#include "../client/player/LocalPlayer.h" +#include "../client/multiplayer/MultiPlayerLevel.h" +#include "../client/player/input/KeyboardInput.h" +#include "../client/sound/SoundEngine.h" +#include "../world/entity/MobFactory.h" +#include "../raknet/RakPeerInterface.h" +#include "../world/level/Explosion.h" +#include "../world/level/tile/entity/FurnaceTileEntity.h" +#include "../world/inventory/BaseContainerMenu.h" +#ifndef STANDALONE_SERVER +#include "../client/particle/TakeAnimationParticle.h" +#endif +#include "../world/entity/EntityFactory.h" +#include "../world/entity/item/PrimedTnt.h" +#include "../world/entity/projectile/Arrow.h" +#include "../world/level/tile/entity/ChestTileEntity.h" +#include "../client/player/RemotePlayer.h" +#include "../world/level/tile/LevelEvent.h" +#include "../world/entity/item/FallingTile.h" + +static MultiPlayerLevel* mpcast(Level* l) { return (MultiPlayerLevel*) l; } + +ClientSideNetworkHandler::ClientSideNetworkHandler(Minecraft* minecraft, IRakNetInstance* raknetInstance) +: minecraft(minecraft), + raknetInstance(raknetInstance), + level(NULL), + requestNextChunkPosition(0), + requestNextChunkIndex(0) +{ + rakPeer = raknetInstance->getPeer(); +} + +ClientSideNetworkHandler::~ClientSideNetworkHandler() +{ +} + +void ClientSideNetworkHandler::requestNextChunk() +{ + if (requestNextChunkIndex < NumRequestChunks) + { + IntPair& chunk = requestNextChunkIndexList[requestNextChunkIndex]; + RequestChunkPacket packet(chunk.x, chunk.y); + raknetInstance->send(packet); + + //LOGI("requesting chunks @ (%d, %d)\n", chunk.x, chunk.y); + + //raknetInstance->send(new RequestChunkPacket(requestNextChunkPosition % CHUNK_CACHE_WIDTH, requestNextChunkPosition / CHUNK_CACHE_WIDTH)); + requestNextChunkIndex++; + requestNextChunkPosition++; + } +} + +bool ClientSideNetworkHandler::areAllChunksLoaded() +{ + return (requestNextChunkPosition >= (CHUNK_CACHE_WIDTH * CHUNK_CACHE_WIDTH)); +} + +bool ClientSideNetworkHandler::isChunkLoaded(int x, int z) +{ + if (x < 0 || x >= CHUNK_CACHE_WIDTH || z < 0 || z >= CHUNK_CACHE_WIDTH) { + LOGE("Error: Tried to request chunk (%d, %d)\n", x, z); + return true; + } + return chunksLoaded[x * CHUNK_CACHE_WIDTH + z]; + //return areAllChunksLoaded(); +} + +void ClientSideNetworkHandler::onConnect(const RakNet::RakNetGUID& hostGuid) +{ + LOGI("onConnect, server guid: %s, local guid: %s\n", hostGuid.ToString(), rakPeer->GetMyGUID().ToString()); + serverGuid = hostGuid; + + clearChunksLoaded(); + LoginPacket packet(minecraft->user->name.c_str(), SharedConstants::NetworkProtocolVersion); + raknetInstance->send(packet); +} + +void ClientSideNetworkHandler::onUnableToConnect() +{ + LOGI("onUnableToConnect\n"); +} + +void ClientSideNetworkHandler::onDisconnect(const RakNet::RakNetGUID& guid) +{ + LOGI("onDisconnect\n"); + if (level) + { + level->isClientSide = false; + for (int i = (int)level->players.size()-1; i >= 0; --i ) { + Player* p = level->players[i]; + if (p != minecraft->player) { + p->reallyRemoveIfPlayer = true; + level->removeEntity(p); + } + } + } +#ifndef STANDALONE_SERVER + minecraft->gui.addMessage("Disconnected from server"); +#endif +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, LoginStatusPacket* packet) { + if (packet->status == LoginStatus::Success) { + raknetInstance->setIsLoggedIn(true); + return; + } + + if (packet->status == LoginStatus::Failed_ClientOld) { + LOGI("Disconnect! Client is outdated!\n"); +#ifndef STANDALONE_SERVER + minecraft->setScreen(new DisconnectionScreen("Could not connect: Outdated client!")); +#endif + } + if (packet->status == LoginStatus::Failed_ServerOld) { + LOGI("Disconnect! Server is outdated!\n"); +#ifndef STANDALONE_SERVER + minecraft->setScreen(new DisconnectionScreen("Could not connect: Outdated server!")); +#endif + } +} + + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, StartGamePacket* packet) +{ + LOGI("StartGamePacket\n"); + +#ifdef RPI + if (packet->gameType != GameType::Creative) { + minecraft->setScreen(new DisconnectionScreen("Could not connect: Incompatible server!")); + return; + } +#endif + + const std::string& levelId = LevelStorageSource::TempLevelId; + LevelStorageSource* storageSource = minecraft->getLevelSource(); + storageSource->deleteLevel(levelId); + //level = new Level(storageSource->selectLevel(levelId, true), "temp", packet->levelSeed, SharedConstants::StorageVersion); + MultiPlayerLevel* level = new MultiPlayerLevel( + storageSource->selectLevel(levelId, true), + "temp", + LevelSettings(packet->levelSeed, LevelSettings::validateGameType(packet->gameType)), + SharedConstants::StorageVersion); + level->isClientSide = true; + + bool isCreative = (packet->gameType == GameType::Creative); + LocalPlayer* player = new LocalPlayer(minecraft, level, minecraft->user, level->dimension->id, isCreative); + player->owner = rakPeer->GetMyGUID(); + player->entityId = packet->entityId; + player->moveTo(packet->x, packet->y, packet->z, player->yRot, player->xRot); + + LOGI("new pos: %f, %f [%f - %f]\n", player->x, player->z, player->bb.y0, player->bb.y1); + + minecraft->setLevel(level, "ClientSideNetworkHandler -> setLevel", player); + minecraft->setIsCreativeMode(isCreative); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MessagePacket* packet) +{ + LOGI("MessagePacket\n"); +#ifndef STANDALONE_SERVER + minecraft->gui.addMessage(packet->message.C_String()); +#endif +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, SetTimePacket* packet) +{ + if (!level) + return; + + LOGI("SetTimePacket\n"); + level->setTime(packet->time); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AddEntityPacket* packet) +{ + if (!level) + return; + + Entity* e = EntityFactory::CreateEntity(packet->type, level); + if (!e) + return; + + e->entityId = packet->entityId; + e->setPos(packet->x, packet->y, packet->z); + + // Entity Specific stuff here + switch (packet->type) + { + case EntityTypes::IdFallingTile: { + int data = -packet->data(); + FallingTile* ft = (FallingTile*) e; + ft->tile = data & 0xff; + ft->data = data >> 16; + } + case EntityTypes::IdArrow: { + Entity* owner = level->getEntity(packet->data()); + if (owner && owner->isMob()) + ((Arrow*)e)->ownerId = owner->entityId; + break; + } + default: + break; + } + + if (packet->hasMovementData()) { + /* + e->xd = packet->xd; + e->yd = packet->yd; + e->zd = packet->zd; + */ + e->lerpMotion(packet->xd, packet->yd, packet->zd); + //LOGI("Client: reading entity with %f, %f, %f\n", e->xd, e->yd, e->zd); + } + + mpcast(level)->putEntity(packet->entityId, e); +} +void ClientSideNetworkHandler::handle( const RakNet::RakNetGUID& source, AddPaintingPacket* packet ) { + if (!level) + return; + + Painting* painting = new Painting(level, packet->xTile, packet->yTile, packet->zTile, packet->dir, packet->motive); + mpcast(level)->putEntity(packet->entityId, painting); +} +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AddMobPacket* packet) +{ + LOGI("AddMobPacket (%p)\n", level); + + if (!level) { + LOGW("Trying to add a mob with no level!\n"); + //we skip this since we will get this player anyway when we request level + return; + } + if (!packet->type) { + LOGE("Trying to add a mob without a type id\n"); + return; + } + + Mob* mob = MobFactory::CreateMob(packet->type, level); + if (!mob) { + LOGE("Server tried to add an unknown mob type! :%d\n", packet->type); + return; + } + + mob->entityId = packet->entityId; + mob->moveTo(packet->x, packet->y, packet->z, packet->yRot, packet->xRot); + mob->getEntityData()->assignValues(&packet->unpack); + level->addEntity(mob); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AddPlayerPacket* packet) +{ + if (!level) { + //we skip this since we will get this player anyway when we request level + return; + } + LOGI("AddPlayerPacket\n"); + + Player* player = new RemotePlayer(level, minecraft->isCreativeMode()); + minecraft->gameMode->initAbilities(player->abilities); + player->entityId = packet->entityId; + level->addEntity(player); + + player->moveTo(packet->x, packet->y, packet->z, packet->yRot, packet->xRot); + player->name = packet->name.C_String(); + player->owner = packet->owner; + player->getEntityData()->assignValues(&packet->unpack); + int slot = Inventory::MAX_SELECTION_SIZE; + if (packet->carriedItemId == 0) { + player->inventory->clearSlot(slot); + } else { + ItemInstance newItem(packet->carriedItemId, 1, packet->carriedItemAuxValue); + player->inventory->replaceSlot(slot, &newItem); + } + player->inventory->moveToSelectedSlot(slot, true); + //player->resetPos(); + + std::string message = packet->name.C_String(); + message += " joined the game"; +#ifndef STANDALONE_SERVER + minecraft->gui.addMessage(message); +#endif +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, RemovePlayerPacket* packet) { + if (!level || source == minecraft->player->owner) return; + + if (Player* player = findPlayer(level, packet->entityId, &packet->owner)) { + player->reallyRemoveIfPlayer = true; + level->removeEntity(player); + } + + //for (int i = (int)level->players.size()-1; i >= 0; --i) { + // if (level->players[i]->owner == source) { + // level->players[i]->reallyRemoveIfPlayer = true; + // level->players.erase(level->players.begin() + i); + // break; + // } + //} + + //if (!player) return; + + //std::string message = packet->name.C_String(); + //message += " joined the game"; + //minecraft->gui.addMessage(message); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, RemoveEntityPacket* packet) +{ + if (!level) return; + + Entity* entity = level->getEntity(packet->entityId); + LOGI("RemoveEntityPacket %p %p, %d\n", entity, minecraft->player, entity?(int)(entity->isPlayer()): -1); + if (!entity) return; + + level->removeEntity(entity); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AddItemEntityPacket* packet) +{ + if (!level) return; + + ItemEntity* entity = new ItemEntity(level, packet->x, packet->y, packet->z, ItemInstance(packet->itemId, packet->itemCount, packet->auxValue)); + entity->xd = packet->xa(); + entity->yd = packet->ya(); + entity->zd = packet->za(); + //LOGI("item-entity @ client: %f, %f, %f\n", entity->xd, entity->yd, entity->zd); + + mpcast(level)->putEntity(packet->id, entity); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, TakeItemEntityPacket* packet) { + if (!level) return; + + Entity* e = level->getEntity(packet->itemId); + if (!e) + return; + + ItemInstance item; + if (e->isItemEntity()) { + item = ((ItemEntity*) e)->item; +#ifndef STANDALONE_SERVER + if (Entity* to = level->getEntity(packet->playerId)) + minecraft->particleEngine->add(new TakeAnimationParticle(level, (ItemEntity*)e, to, -0.5f)); +#endif + } + else if (e->getEntityTypeId() == EntityTypes::IdArrow) + item = ItemInstance(Item::arrow); + + if (item.isNull()) + return; + + // try take it and if we don't have space; re-throw it + if (minecraft->player->entityId == packet->playerId + && !minecraft->player->inventory->add(&item)) { + DropItemPacket dropPacket(packet->playerId, item); + minecraft->raknetInstance->send(dropPacket); + } + level->playSound(e, "random.pop", 0.2f, 1.0f * 2.f); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MovePlayerPacket* packet) +{ + if (!level) + return; + + //printf("MovePlayerPacket\n"); + Entity* entity = level->getEntity(packet->entityId); + if (entity) + { + entity->lerpTo(packet->x, packet->y, packet->z, packet->yRot, packet->xRot, 3); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MoveEntityPacket* packet) +{ + if (!level) + return; + + //printf("MovePlayerPacket\n"); + Entity* entity = level->getEntity(packet->entityId); + if (entity) + { + float xRot = packet->hasRot? packet->xRot : entity->xRot; + float yRot = packet->hasRot? packet->yRot : entity->yRot; + entity->lerpTo(packet->x, packet->y, packet->z, yRot, xRot, 3); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, UpdateBlockPacket* packet) +{ + if (!level) return; + + //LOGI("UpdateBlockPacket @ %d, %d, %d\n", packet->x, packet->y, packet->z); + + int x = packet->x, z = packet->z; + + if (isChunkLoaded(x >> 4, z >> 4)) + { + //LOGI("chunk is loaded - UPDATE @ %d, %d, %d -- %d, %d\n", x, packet->y, z, packet->blockId, packet->blockData); + + int y = packet->y; + int tileId = Tile::transformToValidBlockId(packet->blockId, x, y, z); + level->setTileAndData(x, y, z, tileId, packet->blockData); + } else { + SBufferedBlockUpdate update; + update.blockId = packet->blockId; + update.blockData = packet->blockData; + update.setData = true; + update.x = packet->x; + update.y = packet->y; + update.z = packet->z; + bufferedBlockUpdates.push_back(update); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ExplodePacket* packet) { + if (!level) return; + Explosion explosion(level, NULL, packet->x, packet->y, packet->z, packet->r); + explosion.toBlow.insert(packet->toBlow.begin(), packet->toBlow.end()); + explosion.finalizeExplosion(); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, LevelEventPacket* packet) { + if (!level) return; + if(packet->eventId == LevelEvent::ALL_PLAYERS_SLEEPING) { + minecraft->player->setAllPlayersSleeping(); + } + else { + minecraft->level->levelEvent(NULL, packet->eventId, packet->x, packet->y, packet->z, packet->data); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, TileEventPacket* packet) { + if (!level) return; + minecraft->level->tileEvent(packet->x, packet->y, packet->z, packet->b0, packet->b1); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, EntityEventPacket* packet) { + if (!level) return; + + Entity* e = level->getEntity(packet->entityId); + if (e) e->handleEntityEvent(packet->eventId); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ChunkDataPacket* packet) +{ + if (!level) { + LOGI("level @ handle ChunkDataPacket is 0\n"); + return; + } + //LOGI("ChunkDataPacket\n"); + + LevelChunk* chunk = level->getChunkSource()->create(packet->x, packet->z); + if (!chunk || chunk->isEmpty()) + { + LOGI("Failed to find write-able chunk\n"); + return; + } + + //unsigned char* blockIds = chunk->getBlockData(); + DataLayer& blockData = chunk->data; + + const int setSize = LEVEL_HEIGHT / 8; + const int setShift = 4; // power of LEVEL_HEIGHT / 8 + + bool recalcHeight = false; + + int x0 = 16, x1 = 0, z0 = 16, z1 = 0, y0 = LEVEL_HEIGHT, y1 = 0; + int rx = packet->x << 4; + int rz = packet->z << 4; + + unsigned char readBlockBuffer[setSize]; + unsigned char readDataBuffer[setSize / 2]; + + for (int i = 0; i < CHUNK_COLUMNS; i++) + { + unsigned char updateBits = 0; + packet->chunkData.Read(updateBits); + + if (updateBits > 0) + { + recalcHeight = true; + + int colX = (i % CHUNK_WIDTH); + int colZ = (i / CHUNK_WIDTH); + int colDataPosition = colX << 11 | colZ << 7; + + for (int set = 0; set < 8; set++) + { + if ((updateBits & (1 << set)) != 0) + { + packet->chunkData.Read((char*)readBlockBuffer, setSize); + packet->chunkData.Read((char*)readDataBuffer, setSize / 2); + + for (int part = 0; part < setSize; part++) + { + //if (readBlockBuffer[part] == ((Tile*)Tile::grass)->id) + // readBlockBuffer[part] = 255; + int x = rx + colX; + int y = (set << setShift) + part; + int z = rz + colZ; + + int tileId = Tile::transformToValidBlockId(readBlockBuffer[part], x, y, z); + level->setTileNoUpdate(x, y, z, tileId); + } + // ((part & 1) == 0) ? readDataBuffer[part >> 1] & 0xf : (readDataBuffer[part >> 1] & 0xf0) >> 4 + + //packet->chunkData.Read((char*)(&blockIds[colDataPosition + (set << setShift)]), setSize); + // block data is only 4 bits per block + //packet->chunkData.Read((char*)(&blockData.data[(colDataPosition + (set << setShift)) >> 1]), setSize >> 1); + + memcpy(&blockData.data[(colDataPosition + (set << setShift)) >> 1], readDataBuffer, setSize >> 1); + } + + if (((1 << set) << setShift) < y0) + { + y0 = ((1 << set) << setShift); + } + if (((1 << set) << setShift) + (LEVEL_HEIGHT / 8) - 1 > y1) + { + y1 = ((1 << set) << setShift) + (LEVEL_HEIGHT / 8) - 1; + } + } + if ((i % CHUNK_WIDTH) < x0) + { + x0 = (i % CHUNK_WIDTH); + } + if ((i % CHUNK_WIDTH) > x1) + { + x1 = (i % CHUNK_WIDTH); + } + if ((i / CHUNK_WIDTH) < z0) + { + z0 = (i / CHUNK_WIDTH); + } + if ((i / CHUNK_WIDTH) > z1) + { + z1 = (i / CHUNK_WIDTH); + } + } + } + + if (recalcHeight) + { +// chunk->recalcHeightmap(); +// //chunk->recalcBlockLights(); + level->setTilesDirty((packet->x << 4) + x0, y0, (packet->z << 4) + z0, (packet->x << 4) + x1, y1, (packet->z << 4) + z1); +// int rx = packet->x << 4; +// int rz = packet->z << 4; +// level->updateLight(LightLayer::Block, x0 + rx - 1, y0, z0 + rz - 1, x1 + rx + 1, y1, z1 + rz + 1); +// //for (int cx = x0; cx < x1; cx++) +// //{ +// // for (int cz = z0; cz < z1; cz++) +// // { +// // for (int cy = y0; cy < y1; cy++) +// // { +// //level->updateLight(LightLayer::Sky, cx + rx, cy, cz + rz, cx + rx, cy, cz + rz); +// // level->updateLight(LightLayer::Block, cx + rx - 1, cy, cz + rz - 1, cx + rx + 1, cy, cz + rz + 1); +// // } +// // } +// //} +// + } + //chunk->terrainPopulated = true; + chunk->unsaved = false; + + chunksLoaded[packet->x * CHUNK_CACHE_WIDTH + packet->z] = true; + + if (areAllChunksLoaded()) + { + ReadyPacket packet(ReadyPacket::READY_REQUESTEDCHUNKS); + raknetInstance->send(packet); + + for (unsigned int i = 0; i < bufferedBlockUpdates.size(); i++) + { + const SBufferedBlockUpdate& update = bufferedBlockUpdates[i]; + int tileId = Tile::transformToValidBlockId( update.blockId, update.x, update.y, update.z ); + if (update.setData) + level->setTileAndData(update.x, update.y, update.z, tileId, update.blockData); + else + level->setTile(update.x, update.y, update.z, tileId); + } + bufferedBlockUpdates.clear(); + } + else + { + requestNextChunk(); + } +} + +class _ChunkSorter +{ +public: + _ChunkSorter(int x, int z) + : x(x), + y(z) + { + } + + bool operator() (const IntPair& a, const IntPair& b) { + const int ax = a.x - x, ay = a.y - y; + const int bx = b.x - x, by = b.y - y; + return (ax*ax + ay*ay) < (bx*bx + by*by); + } +private: + int x; + int y; +}; + + +void ClientSideNetworkHandler::arrangeRequestChunkOrder() { + clearChunksLoaded(); + + // Default sort is around center of the world + int cx = CHUNK_CACHE_WIDTH / 2; + int cz = CHUNK_CACHE_WIDTH / 2; + + // If player exists, let's sort around him + Player* p = minecraft? minecraft->player : NULL; + if (p) { + cx = Mth::floor(p->x / (float)CHUNK_WIDTH); + cz = Mth::floor(p->z / (float)CHUNK_DEPTH); + } + + _ChunkSorter sorter(cx, cz); + std::sort(requestNextChunkIndexList, requestNextChunkIndexList + NumRequestChunks, sorter); +} + +void ClientSideNetworkHandler::levelGenerated(Level* level) +{ + this->level = level; + ReadyPacket packet(ReadyPacket::READY_CLIENTGENERATION); + raknetInstance->send(packet); + + arrangeRequestChunkOrder(); + requestNextChunk(); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, PlayerEquipmentPacket* packet) +{ + if (!level) + return; + + Entity* entity = level->getEntity(packet->entityId); + if (!entity || !entity->isPlayer()) + return; + + Player* player = (Player*)entity; + // make sure it's not our local player + if (player->owner == rakPeer->GetMyGUID()) + { + printf("Attempted to modify local player's inventory\n"); + return; + } + // override the player's inventory + //int slot = player->inventory->getSlot(packet->itemId, packet->itemAuxValue); + //if (slot >= 0) { + // player->inventory->moveToSelectedSlot(slot, true); + //item->id = packet->itemId; + //item->setAuxValue(packet->itemAuxValue); + //item->count = 63; + int slot = Inventory::MAX_SELECTION_SIZE; + if (slot >= 0) { + if (packet->itemId == 0) { + player->inventory->clearSlot(slot); + } else { + ItemInstance newItem(packet->itemId, 63, packet->itemAuxValue); + player->inventory->replaceSlot(slot, &newItem); + } + player->inventory->moveToSelectedSlot(slot, true); + } else { + LOGW("Warning: Remote player doesn't have his thing, Odd!\n"); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, PlayerArmorEquipmentPacket* packet) { + if (!level) + return; + + Entity* entity = level->getEntity(packet->entityId); + if (!entity || !entity->isPlayer()) + return; + + Player* player = (Player*)entity; + // make sure it's not our local player, since that should be UpdateArmorPacket + if (player->owner == rakPeer->GetMyGUID()) { + printf("Attempted to modify local player's armor visually\n"); + return; + } + + packet->fillIn(player); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, InteractPacket* packet) +{ + if (!level) + return; + + Entity* src = level->getEntity(packet->sourceId); + Entity* entity = level->getEntity(packet->targetId); + if (src && entity && src->isPlayer()) + { + Player* player = (Player*) src; + if (InteractPacket::Attack == packet->action) + minecraft->gameMode->attack(player, entity); + if (InteractPacket::Interact == packet->action) + minecraft->gameMode->interact(player, entity); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, SetEntityDataPacket* packet) +{ + if (!level) + return; + + LOGI("SetEntityDataPacket\n"); + + Entity* e = level->getEntity(packet->id); + if (e) { + SynchedEntityData* data = e->getEntityData(); + if (data) + data->assignValues(&packet->getUnpackedData()); + } +} + +void ClientSideNetworkHandler::handle( const RakNet::RakNetGUID& source, SetEntityMotionPacket* packet ) +{ + if (!level) + return; + + if (Entity* e = level->getEntity(packet->id)) { + /* + e->xd = packet->xd; + e->yd = packet->yd; + e->zd = packet->zd; + */ + e->lerpMotion(packet->xd, packet->yd, packet->zd); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AnimatePacket* packet) +{ + if (!level) + return; + + // Own player - Then don't play... : + if (minecraft->player->entityId == packet->entityId) { + if (packet->action == AnimatePacket::Swing) return; + } + + Entity* entity = level->getEntity(packet->entityId); + if (!entity || !entity->isPlayer()) + return; + + Player* player = (Player*) entity; + + switch (packet->action) { + case AnimatePacket::Swing: + player->swing(); + break; + case AnimatePacket::WAKE_UP: + player->stopSleepInBed(false, false, false); + break; + default: + LOGW("Unknown Animate action: %d\n", packet->action); + break; + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, UseItemPacket* packet) +{ +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, SetHealthPacket* packet) +{ + if (!level || !minecraft->player) + return; + + minecraft->player->hurtTo(packet->health); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, SetSpawnPositionPacket* packet) { + if (!level || !minecraft || !minecraft->player) return; + if (!level->inRange(packet->x, packet->y, packet->z)) return; + + minecraft->player->setRespawnPosition(Pos(packet->x, packet->y, packet->z)); + level->getLevelData()->setSpawn(packet->x, packet->y, packet->z); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, HurtArmorPacket* packet) { + if (!level || !minecraft->player) { + return; + } + + minecraft->player->hurtArmor(packet->dmg); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, RespawnPacket* packet) +{ + if (level) { + //LOGI("RespawnPacket! %d\n", findPlayer(level, packet->entityId, NULL)); + NetEventCallback::handle(level, source, packet ); + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerOpenPacket* packet) +{ + if (!level || !minecraft || !minecraft->player) + return; + + if (packet->type == ContainerType::FURNACE) { + FurnaceTileEntity* te = new FurnaceTileEntity(); + te->clientSideOnly = true; + minecraft->player->openFurnace(te); + if (minecraft->player->containerMenu) + minecraft->player->containerMenu->containerId = packet->containerId; + } + if (packet->type == ContainerType::CONTAINER) { + ChestTileEntity* te = new ChestTileEntity(); + te->clientSideOnly = true; + minecraft->player->openContainer(te); + if (minecraft->player->containerMenu) + minecraft->player->containerMenu->containerId = packet->containerId; + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerClosePacket* packet) +{ + if (minecraft && minecraft->player && minecraft->player->containerMenu) + minecraft->player->closeContainer(); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerSetContentPacket* packet) +{ + if (!minecraft || !minecraft->player) + return; + + if (packet->containerId == 0) { + for (unsigned int i = 0; i < packet->items.size(); ++i) { + minecraft->player->inventory->setItem(Inventory::MAX_SELECTION_SIZE + i, &packet->items[i]); + } + } else if (minecraft->player->containerMenu && minecraft->player->containerMenu->containerId == packet->containerId) { + for (unsigned int i = 0; i < packet->items.size(); ++i) { + minecraft->player->containerMenu->setSlot(i, &packet->items[i]); + } + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerSetSlotPacket* packet) +{ + //LOGI("ContainerSetSlot\n"); + + if (!minecraft->player + || !minecraft->player->containerMenu + || minecraft->player->containerMenu->containerId != packet->containerId) + return; + + //minecraft->player->containerMenu->setSlot(packet->slot, packet->item.isNull()? NULL : &packet->item); + minecraft->player->containerMenu->setSlot(packet->slot, &packet->item); +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerSetDataPacket* packet) +{ + //LOGI("ContainerSetData\n"); + if (minecraft->player && minecraft->player->containerMenu && minecraft->player->containerMenu->containerId == packet->containerId) { + //LOGI("client: SetData2 %d, %d\n", packet->id, packet->value); + minecraft->player->containerMenu->setData(packet->id, packet->value); + } +} + +void ClientSideNetworkHandler::handle( const RakNet::RakNetGUID& source, ChatPacket* packet ) +{ +#ifndef STANDALONE_SERVER + minecraft->gui.displayClientMessage(packet->message); +#endif +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, SignUpdatePacket* packet) +{ + if (!level) + return; + + TileEntity* te = level->getTileEntity(packet->x, packet->y, packet->z); + if (TileEntity::isType(te, TileEntityType::Sign)) { + SignTileEntity* ste = (SignTileEntity*) te; + if (ste->isEditable()) { + for (int i = 0; i < SignTileEntity::NUM_LINES; i++) { + ste->messages[i] = packet->lines[i]; + } + //ste->setChanged(); + } + } +} + +void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AdventureSettingsPacket* packet) { + if (!level) + return; + //assert(level != NULL && "level is NULL @ handle(AdventureSettingsPacket*)"); + + packet->fillIn(level->adventureSettings); +} + +void ClientSideNetworkHandler::clearChunksLoaded() +{ + // Init the chunk positions + for (int i = 0; i < NumRequestChunks; ++i) { + requestNextChunkIndexList[i].x = i/CHUNK_WIDTH; + requestNextChunkIndexList[i].y = i%CHUNK_WIDTH; + chunksLoaded[i] = false; + } +} diff --git a/src/network/ClientSideNetworkHandler.h b/src/network/ClientSideNetworkHandler.h new file mode 100755 index 0000000..1505ec7 --- /dev/null +++ b/src/network/ClientSideNetworkHandler.h @@ -0,0 +1,107 @@ +#ifndef _MINECRAFT_NETWORK_CLIENTSIDENETWORKHANDLER_H_ +#define _MINECRAFT_NETWORK_CLIENTSIDENETWORKHANDLER_H_ + + +#include "NetEventCallback.h" +#include "../raknet/RakNetTypes.h" +#include "../world/level/LevelConstants.h" + +#include + +class Minecraft; +class Level; +class IRakNetInstance; + +struct SBufferedBlockUpdate +{ + int x, z; + unsigned char y; + unsigned char blockId; + unsigned char blockData; + bool setData; +}; +typedef std::vector BlockUpdateList; + +typedef struct IntPair { + int x, y; +} IntPair; + +class ClientSideNetworkHandler : public NetEventCallback +{ +public: + ClientSideNetworkHandler(Minecraft* minecraft, IRakNetInstance* raknetInstance); + virtual ~ClientSideNetworkHandler(); + + virtual void levelGenerated(Level* level); + + virtual void onConnect(const RakNet::RakNetGUID& hostGuid); + virtual void onUnableToConnect(); + virtual void onDisconnect(const RakNet::RakNetGUID& guid); + + virtual void handle(const RakNet::RakNetGUID& source, LoginStatusPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, StartGamePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, MessagePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SetTimePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AddItemEntityPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AddPaintingPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, TakeItemEntityPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AddEntityPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AddMobPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AddPlayerPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, RemoveEntityPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, RemovePlayerPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, MovePlayerPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, MoveEntityPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, UpdateBlockPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ExplodePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, LevelEventPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, TileEventPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, EntityEventPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ChunkDataPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, PlayerEquipmentPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, PlayerArmorEquipmentPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, InteractPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SetEntityDataPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SetEntityMotionPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SetHealthPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SetSpawnPositionPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AnimatePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, UseItemPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, HurtArmorPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, RespawnPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerOpenPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerClosePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetContentPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetSlotPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetDataPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ChatPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AdventureSettingsPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SignUpdatePacket* packet); +private: + + void requestNextChunk(); + void arrangeRequestChunkOrder(); + + bool isChunkLoaded(int x, int z); + bool areAllChunksLoaded(); + void clearChunksLoaded(); +private: + + Minecraft* minecraft; + Level* level; + IRakNetInstance* raknetInstance; + RakNet::RakPeerInterface* rakPeer; + + RakNet::RakNetGUID serverGuid; + + BlockUpdateList bufferedBlockUpdates; + int requestNextChunkPosition; + + static const int NumRequestChunks = CHUNK_CACHE_WIDTH * CHUNK_CACHE_WIDTH; + + int requestNextChunkIndex; + IntPair requestNextChunkIndexList[NumRequestChunks]; + bool chunksLoaded[NumRequestChunks]; +}; + +#endif diff --git a/src/network/NATPunchHandler.cpp b/src/network/NATPunchHandler.cpp new file mode 100755 index 0000000..35108b0 --- /dev/null +++ b/src/network/NATPunchHandler.cpp @@ -0,0 +1,33 @@ +#include "NATPunchHandler.h" +#include "../raknet/TCPInterface.h" +#include "../raknet/HTTPConnection.h" +#include "PHPDirectoryServer2.h" + +using namespace RakNet; +NATPuchHandler::NATPuchHandler() { + tcpInterface = new TCPInterface; +} +NATPuchHandler::~NATPuchHandler() { + delete tcpInterface; +} + +void NATPuchHandler::initialize() { + tcpInterface->Start(0, 64); +} + +void NATPuchHandler::registerToGameList(const RakNet::RakString& serverName, int port) { + HTTPConnection httpConnection; + httpConnection.Init(tcpInterface, "johanbernhardsson.se"); + PHPDirectoryServer2 directoryServer; + directoryServer.Init(&httpConnection, "/DirectoryServer.php"); + directoryServer.UploadTable("", serverName, port, true); +} + +void NATPuchHandler::removeFromGameList() { + +} + +void NATPuchHandler::close() { + +} + diff --git a/src/network/NATPunchHandler.h b/src/network/NATPunchHandler.h new file mode 100755 index 0000000..0246c0d --- /dev/null +++ b/src/network/NATPunchHandler.h @@ -0,0 +1,24 @@ +#ifndef _MINECRAFT_NETWORK_NATPUNCHHANDLER_H_ +#define _MINECRAFT_NETWORK_NATPUNCHHANDLER_H_ +#include "../raknet/TCPInterface.h" +#include "../raknet/RakString.h" +class NATPuchHandler { +public: + enum NATPuchHandlerStatus { + NATPuchInitilized = 0, + NATPuchFetchingServerList = 1, + NATPuchConnecting = 2, + NATPuchConnected = 3, + NATPuchDissconnected = 4 + }; + NATPuchHandler(); + ~NATPuchHandler(); + void initialize(); + void registerToGameList(const RakNet::RakString& serverName, int port); + void removeFromGameList(); + void close(); +private: + RakNet::TCPInterface *tcpInterface; +}; + +#endif /* _MINECRAFT_NETWORK_NATPUNCHHANDLER_H_ */ diff --git a/src/network/NetEventCallback.cpp b/src/network/NetEventCallback.cpp new file mode 100755 index 0000000..aa10752 --- /dev/null +++ b/src/network/NetEventCallback.cpp @@ -0,0 +1,59 @@ +#include "NetEventCallback.h" +#include "../world/level/Level.h" +#include "packet/RespawnPacket.h" + +// +// Common packet handling implementation for Client and Server +// +/* +void NetEventCallback::handle( const RakNet::RakNetGUID& source, AnimatePacket* packet ) +{ + Entity* entity = level->getEntity(packet->entityId); + if (entity && entity->isPlayer()) { + Player* player = (Player*) entity; + + switch (packet->action) { + case AnimatePacket::Swing: + player->swing(); + break; + default: + LOGW("Unknown Animate action: %d\n", packet->action); + break; + } + } +} +*/ + + +Player* NetEventCallback::findPlayer(Level* level, int entityId) { + Entity* e = level->getEntity(entityId); + if (e) { + if (e->isPlayer()) return (Player*) e; + LOGE("Entity: %p is supposed to be a player but is not (type %d)!\n", e, e->getEntityTypeId()); + } + return NULL; +} + +Player* NetEventCallback::findPlayer(Level* level, const RakNet::RakNetGUID* source) { + for (unsigned int i = 0; i < level->players.size(); ++i) + if (level->players[i]->owner == *source) return level->players[i]; + return NULL; +} + +Player* NetEventCallback::findPlayer( Level* level, int entityId, const RakNet::RakNetGUID* source ) +{ + if (entityId != -1) + if (Player* p = findPlayer(level, entityId)) return p; + if (source != NULL) + if (Player* p = findPlayer(level, source)) return p; + return NULL; +} + +void NetEventCallback::handle( Level* level, const RakNet::RakNetGUID& source, RespawnPacket* packet ) +{ + if (Player* p = findPlayer(level, packet->entityId, NULL)) { + p->moveTo(packet->x, packet->y, packet->z, p->yRot, p->xRot); + p->reset(); + p->resetPos(true); + } +} diff --git a/src/network/NetEventCallback.h b/src/network/NetEventCallback.h new file mode 100755 index 0000000..53e5fa4 --- /dev/null +++ b/src/network/NetEventCallback.h @@ -0,0 +1,134 @@ +#ifndef _MINECRAFT_NETWORK_NETEVENTCALLBACK_H_ +#define _MINECRAFT_NETWORK_NETEVENTCALLBACK_H_ + +class AddItemEntityPacket; +class AddPaintingPacket; +class AdventureSettingsPacket; +class TakeItemEntityPacket; +class LoginPacket; +class ReadyPacket; +class LoginStatusPacket; +class MessagePacket; +class SetTimePacket; +class StartGamePacket; +class AddEntityPacket; +class AddMobPacket; +class AddPlayerPacket; +class RemovePlayerPacket; +class RemoveEntityPacket; +class MoveEntityPacket; +//class TeleportEntityPacket; +class MovePlayerPacket; +class PlaceBlockPacket; +class RemoveBlockPacket; +class UpdateBlockPacket; +class ExplodePacket; +class LevelEventPacket; +class TileEventPacket; +class EntityEventPacket; +class RequestChunkPacket; +class ChunkDataPacket; +class PlayerEquipmentPacket; +class PlayerArmorEquipmentPacket; +class InteractPacket; +class SetEntityDataPacket; +class SetEntityMotionPacket; +class SetHealthPacket; +class SetSpawnPositionPacket; +class SendInventoryPacket; +class DropItemPacket; +class AnimatePacket; +class UseItemPacket; +class PlayerActionPacket; +class HurtArmorPacket; +class RespawnPacket; +class ContainerAckPacket; +class ContainerOpenPacket; +class ContainerClosePacket; +class ContainerSetSlotPacket; +class ContainerSetDataPacket; +class ContainerSetContentPacket; +class ChatPacket; +class SignUpdatePacket; +class Minecraft; +class Level; + +#include "../world/level/tile/Tile.h" + +namespace RakNet +{ + struct RakNetGUID; +} + +class NetEventCallback +{ +public: + virtual void levelGenerated(Level* level) {} + virtual ~NetEventCallback() {} + + virtual void onConnect(const RakNet::RakNetGUID& hostGuid) {}; + virtual void onUnableToConnect() {}; + virtual void onNewClient(const RakNet::RakNetGUID& clientGuid) {}; + virtual void onDisconnect(const RakNet::RakNetGUID& guid) {}; + + virtual void handle(const RakNet::RakNetGUID& source, LoginPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ReadyPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, LoginStatusPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SetTimePacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, MessagePacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, StartGamePacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AddItemEntityPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AddPaintingPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, TakeItemEntityPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AddEntityPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AddMobPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AddPlayerPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, RemovePlayerPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, RemoveEntityPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, MoveEntityPacket* packet) {} + //virtual void handle(const RakNet::RakNetGUID& source, TeleportEntityPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, MovePlayerPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, PlaceBlockPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, RemoveBlockPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, UpdateBlockPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ExplodePacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, LevelEventPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, TileEventPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, EntityEventPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, RequestChunkPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ChunkDataPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, PlayerEquipmentPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, PlayerArmorEquipmentPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SetEntityDataPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SetEntityMotionPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SetHealthPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SetSpawnPositionPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, InteractPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, UseItemPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, PlayerActionPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, HurtArmorPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SendInventoryPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, DropItemPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ContainerOpenPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ContainerClosePacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ContainerAckPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetDataPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetSlotPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetContentPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, ChatPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, SignUpdatePacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AdventureSettingsPacket* packet) {} + virtual void handle(const RakNet::RakNetGUID& source, AnimatePacket* packet) {} + + // + // Common implementation for Client and Server + // + virtual void handle(const RakNet::RakNetGUID& source, RespawnPacket* packet) {} + virtual void handle(Level* level, const RakNet::RakNetGUID& source, RespawnPacket* packet); + + Player* findPlayer(Level* level, int entityId); + Player* findPlayer(Level* level, const RakNet::RakNetGUID* source); + Player* findPlayer(Level* level, int entityId, const RakNet::RakNetGUID* source); +}; + +#endif diff --git a/src/network/PHPDirectoryServer2.cpp b/src/network/PHPDirectoryServer2.cpp new file mode 100755 index 0000000..7d26e1f --- /dev/null +++ b/src/network/PHPDirectoryServer2.cpp @@ -0,0 +1,293 @@ +/// \file +/// \brief Contains WebGameList, a client for communicating with a HTTP list of game servers +/// +/// This file is part of RakNet Copyright 2008 Kevin Jenkins. +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation + +#include "PHPDirectoryServer2.h" +#include "../raknet/HTTPConnection.h" +#include "../raknet/RakSleep.h" +#include "../raknet/RakString.h" +#include "../raknet/RakNetTypes.h" +#include "../raknet/GetTime.h" +#include "../raknet/RakAssert.h" +#include +#include +#include +#include "../raknet/Itoa.h" + +// Column with this header contains the name of the game, passed to UploadTable() +static const char *GAME_NAME_COMMAND="__GAME_NAME"; +// Column with this header contains the port of the game, passed to UploadTable() +static const char *GAME_PORT_COMMAND="__GAME_PORT"; +// Column with this header contains the IP address of the game, passed to UploadTable() +static const char *SYSTEM_ADDRESS_COMMAND="_System_Address"; +// Returned from the PHP server indicating when this row was last updated. +static const char *LAST_UPDATE_COMMAND="__SEC_AFTER_EPOCH_SINCE_LAST_UPDATE"; + +using namespace RakNet; +using namespace DataStructures; + +PHPDirectoryServer2::PHPDirectoryServer2() + : nextRepost(0) +{ + Map::IMPLEMENT_DEFAULT_COMPARISON(); +} +PHPDirectoryServer2::~PHPDirectoryServer2() +{ +} +void PHPDirectoryServer2::Init(HTTPConnection *_http, const char *_path) +{ + http=_http; + pathToPHP=_path; +} + +void PHPDirectoryServer2::SetField( RakNet::RakString columnName, RakNet::RakString value ) +{ + if (columnName.IsEmpty()) + return; + + if (columnName==GAME_NAME_COMMAND || + columnName==GAME_PORT_COMMAND || + columnName==LAST_UPDATE_COMMAND) + { + RakAssert("PHPDirectoryServer2::SetField attempted to set reserved column name" && 0); + return; + } + + fields.Set(columnName, value); +} +unsigned int PHPDirectoryServer2::GetFieldCount(void) const +{ + return fields.Size(); +} +void PHPDirectoryServer2::GetField(unsigned int index, RakNet::RakString &columnName, RakNet::RakString &value) +{ + RakAssert(index < fields.Size()); + columnName=fields.GetKeyAtIndex(index); + value=fields[index]; +} +void PHPDirectoryServer2::SetFields(DataStructures::Table *table) +{ + ClearFields(); + + unsigned columnIndex, rowIndex; + DataStructures::Table::Row *row; + + for (rowIndex=0; rowIndex < table->GetRowCount(); rowIndex++) + { + row = table->GetRowByIndex(rowIndex, 0); + for (columnIndex=0; columnIndex < table->GetColumnCount(); columnIndex++) + { + SetField( table->ColumnName(columnIndex), row->cells[columnIndex]->ToString(table->GetColumnType(columnIndex)) ); + } + } +} + +void PHPDirectoryServer2::ClearFields(void) +{ + fields.Clear(); + nextRepost=0; +} + +void PHPDirectoryServer2::UploadTable(RakNet::RakString uploadPassword, RakNet::RakString gameName, unsigned short gamePort, bool autoRepost) +{ + gameNameParam=gameName; + gamePortParam=gamePort; + currentOperation=""; + currentOperation="?query=upload&uploadPassword="; + currentOperation+=uploadPassword; + SendOperation(); + + if (autoRepost) + nextRepost=RakNet::GetTimeMS()+50000; + else + nextRepost=0; +} +void PHPDirectoryServer2::DownloadTable(RakNet::RakString downloadPassword) +{ + currentOperation="?query=download&downloadPassword="; + currentOperation+=downloadPassword; + SendOperation(); +} +void PHPDirectoryServer2::UploadAndDownloadTable(RakNet::RakString uploadPassword, RakNet::RakString downloadPassword, RakNet::RakString gameName, unsigned short gamePort, bool autoRepost) +{ + gameNameParam=gameName; + gamePortParam=gamePort; + currentOperation="?query=upDown&downloadPassword="; + currentOperation+=downloadPassword; + currentOperation+="&uploadPassword="; + currentOperation+=uploadPassword; + + SendOperation(); + + if (autoRepost) + nextRepost=RakNet::GetTimeMS()+50000; + else + nextRepost=0; +} + +HTTPReadResult PHPDirectoryServer2::ProcessHTTPRead(RakNet::RakString httpRead) +{ + const char *c = (const char*) httpRead.C_String(); // current position + HTTPReadResult resultCode=HTTP_RESULT_EMPTY; + + lastDownloadedTable.Clear(); + + + if (*c=='\n') + c++; + char buff[256]; + int buffIndex; + bool isCommand=true; + DataStructures::List columns; + DataStructures::List values; + RakNet::RakString curString; + bool isComment=false; + buffIndex=0; + while(c && *c) + { + // 3 is comment + if (*c=='\003') + { + isComment=!isComment; + c++; + continue; + } + if (isComment) + { + c++; + continue; + } + + // 1 or 2 separates fields + // 4 separates rows + if (*c=='\001') + { + if (isCommand) + { + buff[buffIndex]=0; + columns.Push(RakString::NonVariadic(buff), _FILE_AND_LINE_); + isCommand=false; + if (buff[0]!=0) + resultCode=HTTP_RESULT_GOT_TABLE; + } + else + { + buff[buffIndex]=0; + values.Push(RakString::NonVariadic(buff), _FILE_AND_LINE_); + isCommand=true; + } + buffIndex=0; + } + else if (*c=='\002') + { + buff[buffIndex]=0; + buffIndex=0; + values.Push(RakString::NonVariadic(buff), _FILE_AND_LINE_); + isCommand=true; + PushColumnsAndValues(columns, values); + columns.Clear(true, _FILE_AND_LINE_); + values.Clear(true, _FILE_AND_LINE_); + + } + else + { + if (buffIndex<256-1) + buff[buffIndex++]=*c; + } + c++; + } + if (buff[0] && columns.Size()==values.Size()+1) + { + buff[buffIndex]=0; + values.Push(RakString::NonVariadic(buff), _FILE_AND_LINE_); + } + + PushColumnsAndValues(columns, values); + + return resultCode; +} +void PHPDirectoryServer2::PushColumnsAndValues(DataStructures::List &columns, DataStructures::List &values) +{ + DataStructures::Table::Row *row=0; + + unsigned int i; + for (i=0; i < columns.Size() && i < values.Size(); i++) + { + if (columns[i].IsEmpty()==false) + { + unsigned col = lastDownloadedTable.ColumnIndex(columns[i]); + if(col == (unsigned)-1) + { + col = lastDownloadedTable.AddColumn(columns[i], DataStructures::Table::STRING); + } + + if (row==0) + { + row = lastDownloadedTable.AddRow(lastDownloadedTable.GetAvailableRowId()); + } + row->UpdateCell(col,values[i].C_String()); + } + } +} +const DataStructures::Table *PHPDirectoryServer2::GetLastDownloadedTable(void) const +{ + return &lastDownloadedTable; +} +void PHPDirectoryServer2::SendOperation(void) +{ + RakString outgoingMessageBody; + char buff[64]; + + outgoingMessageBody += GAME_PORT_COMMAND; + outgoingMessageBody += '\001'; + outgoingMessageBody += Itoa(gamePortParam,buff,10); + outgoingMessageBody += '\001'; + outgoingMessageBody += GAME_NAME_COMMAND; + outgoingMessageBody += '\001'; + outgoingMessageBody += gameNameParam; + + for (unsigned i = 0; i < fields.Size(); i++) + { + RakString value = fields[i]; + value.URLEncode(); + outgoingMessageBody += RakString("\001%s\001%s", + fields.GetKeyAtIndex(i).C_String(), + value.C_String()); + } + + RakString postURL; + postURL+=pathToPHP; + postURL+=currentOperation; + http->Post(postURL.C_String(), outgoingMessageBody, "application/x-www-form-urlencoded"); + +} +void PHPDirectoryServer2::Update(void) +{ + if (http->IsBusy()) + return; + + + if (nextRepost==0 || fields.Size()==0) + return; + + RakNet::TimeMS time = GetTimeMS(); + + // Entry deletes itself after 60 seconds, so keep reposting if set to do so + if (time > nextRepost) + { + nextRepost=RakNet::GetTimeMS()+50000; + SendOperation(); + } +} diff --git a/src/network/PHPDirectoryServer2.h b/src/network/PHPDirectoryServer2.h new file mode 100755 index 0000000..40bc73c --- /dev/null +++ b/src/network/PHPDirectoryServer2.h @@ -0,0 +1,137 @@ +/// \file +/// \brief Contains PHPDirectoryServer2, a client for communicating with a HTTP list of game servers +/// +/// This file is part of RakNet Copyright 2008 Kevin Jenkins. +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#ifndef __PHP_DIRECTORY_SERVER_2 +#define __PHP_DIRECTORY_SERVER_2 + +#include "../raknet/RakString.h" +#include "../raknet/HTTPConnection.h" +#include "../raknet/RakNetTypes.h" +#include "../raknet/DS_Queue.h" +#include "../raknet/DS_Table.h" +#include "../raknet/DS_Map.h" + +namespace RakNet { + +struct SystemAddress; + +enum HTTPReadResult +{ + HTTP_RESULT_GOT_TABLE, + HTTP_RESULT_EMPTY +}; + +/// \brief Use PHPDirectoryServer2 as a C++ client to DirectoryServer.php +/// +/// PHPDirectoryServer2 works with the HTTPConnection class (which works with the TCPInterface class) in order to communiate with DirectoryServer.php found under Samples/PHPDirectoryServer2 +class PHPDirectoryServer2 +{ +public: + PHPDirectoryServer2(); + virtual ~PHPDirectoryServer2(); + + /// Associate PHPDirectoryServer2 with the HTTPConnection class it will communicate through + /// \param[in] _http The instance of HTTP connection we will communicate through + /// \param[in] _path The path to the PHP file on the remote server. For example, if the path is mysite.com/raknet/DirectoryServer.php then you would enter raknet/DirectoryServer.php + void Init(HTTPConnection *_http, const char *_path); + + /// Set a parameter (these are passed to the server) + /// To delete a column, just pass an empty string for value + /// Store the game name and port with UploadTable, rather than SetField, as these columns are required and use reserved column names + /// \param[in] columnName The name of the column to store + /// \param[in] value What value to hold for the uploaded row (only one row can be uploaded at a time) + void SetField(RakNet::RakString columnName, RakNet::RakString value); + + /// Returns the number of fields set with SetField() + unsigned int GetFieldCount(void) const; + + /// Returns a field set with SetField() + /// \param[in] index The 0 based index into the field list + /// \param[out] columnName The \a columnName parameter passed to SetField() + /// \param[out] value The \a value parameter passed to SetField() + void GetField(unsigned int index, RakNet::RakString &columnName, RakNet::RakString &value); + + /// Set all parameters at once from a table + /// \param[in] table A table containing the values you want to send. Note that all values are stored as strings in PHP + void SetFields(DataStructures::Table *table); + + /// Clear all fields + void ClearFields(void); + + /// Upload the values set with SetFields() or SetField() + /// On success: + /// 1. HTTPConnection::HasRead() will return true. + /// 2. Pass the value returned by HTTPConnection::Read() to PHPDirectoryServer2::ProcessHTTPRead(). + /// 3. The return value of PHPDirectoryServer2::ProcessHTTPRead() will be HTTP_RESULT_EMPTY + /// \param[in] uploadPassword The upload password set in the PHP page itself when you first uploaded and viewed it in the webpage. + /// \param[in] gameName Every entry must have a game name. Pass it here. + /// \param[in] gamePort Every entry must have a game port. Pass it here. The IP address will be stored automatically, or you can manually set it by passing a field named _System_Address + /// \param[in] autoRepost Tables must be uploaded every 60 seconds or they get dropped. Set autoRepost to true to automatically reupload the most recent table. + void UploadTable(RakNet::RakString uploadPassword, RakNet::RakString gameName, unsigned short gamePort, bool autoRepost); + + /// Send a download request to the PHP server. + /// On success: + /// 1. HTTPConnection::HasRead() will return true. + /// 2. Pass the value returned by HTTPConnection::Read() to PHPDirectoryServer2::ProcessHTTPRead(). + /// 3. The return value of PHPDirectoryServer2::ProcessHTTPRead() will be HTTP_RESULT_GOT_TABLE or HTTP_RESULT_EMPTY + /// 4. On HTTP_RESULT_GOT_TABLE, use GetLastDownloadedTable() to read the results. + /// \param[in] downloadPassword The download password set in the PHP page itself when you first uploaded and viewed it in the webpage. + void DownloadTable(RakNet::RakString downloadPassword); + + /// Same as calling DownloadTable immediately followed by UploadTable, except only the download result is returned + /// \param[in] uploadPassword The upload password set in the PHP page itself when you first uploaded and viewed it in the webpage. + /// \param[in] downloadPassword The download password set in the PHP page itself when you first uploaded and viewed it in the webpage. + /// \param[in] gameName Every entry must have a game name. Pass it here. + /// \param[in] gamePort Every entry must have a game port. Pass it here. The IP address will be stored automatically, or you can manually set it by passing a field named _System_Address + /// \param[in] autoRepost Tables must be uploaded every 60 seconds or they get dropped. Set autoRepost to true to automatically reupload the most recent table. + void UploadAndDownloadTable(RakNet::RakString uploadPassword, RakNet::RakString downloadPassword, RakNet::RakString gameName, unsigned short gamePort, bool autoRepost); + + /// When HTTPConnection::ProcessDataPacket() returns true, and not an error, pass HTTPConnection::Read() to this function + /// The message will be parsed into DataStructures::Table, and a copy stored internally which can be retrieved by GetLastDownloadedTable(); + /// \param[in] packetData Returned from HTTPInterface::Read() + /// \return One of the values for HTTPReadResult + HTTPReadResult ProcessHTTPRead(RakNet::RakString httpRead); + + /// Returns the last value returned from ProcessHTTPString + /// Default columns are "__GAME_NAME", "__GAME_PORT", "_System_Address" + /// \return The table created by parsing httpString + const DataStructures::Table *GetLastDownloadedTable(void) const; + + /// Call this periodically - it will handle connection states and refreshing updates to the server + void Update(void); + +private: + HTTPConnection *http; + RakNet::RakString pathToPHP; + + RakNet::RakString gameNameParam; + unsigned short gamePortParam; + + void SendOperation(void); + void PushColumnsAndValues(DataStructures::List &columns, DataStructures::List &values); + + DataStructures::Table lastDownloadedTable; + DataStructures::Map fields; + RakNet::RakString currentOperation; + RakNet::TimeMS nextRepost; + +}; + +} // namespace RakNet + +#endif + diff --git a/src/network/Packet.cpp b/src/network/Packet.cpp new file mode 100755 index 0000000..ca1b328 --- /dev/null +++ b/src/network/Packet.cpp @@ -0,0 +1,212 @@ + +#include "Packet.h" +#include "../world/level/chunk/LevelChunk.h" + +#include "packet/PacketInclude.h" + +Packet::Packet() +: priority(HIGH_PRIORITY), + reliability(RELIABLE) +{} + +Packet* MinecraftPackets::createPacket(int id) +{ + Packet* packet = NULL; + + switch (id - ID_USER_PACKET_ENUM) { + default: + break; + + case PACKET_LOGIN: + packet = new LoginPacket(); + break; + case PACKET_LOGINSTATUS: + packet = new LoginStatusPacket(); + break; + case PACKET_READY: + packet = new ReadyPacket(); + break; + case PACKET_SETTIME: + packet = new SetTimePacket(); + break; + case PACKET_MESSAGE: + packet = new MessagePacket(); + break; + case PACKET_STARTGAME: + packet = new StartGamePacket(); + break; + case PACKET_ADDENTITY: + packet = new AddEntityPacket(); + break; + case PACKET_ADDITEMENTITY: + packet = new AddItemEntityPacket(); + break; + case PACKET_TAKEITEMENTITY: + packet = new TakeItemEntityPacket(); + break; + case PACKET_ADDMOB: + packet = new AddMobPacket(); + break; + case PACKET_ADDPLAYER: + packet = new AddPlayerPacket(); + break; + case PACKET_REMOVEPLAYER: + packet = new RemovePlayerPacket(); + break; + case PACKET_MOVEENTITY: + packet = new MoveEntityPacket(); + break; + case PACKET_MOVEENTITY_POSROT: + packet = new MoveEntityPacket_PosRot(); + break; + //case PACKET_TELEPORTENTITY: + // packet = new TeleportEntityPacket(); + // break; + case PACKET_MOVEPLAYER: + packet = new MovePlayerPacket(); + break; + case PACKET_RESPAWN: + packet = new RespawnPacket(); + break; + case PACKET_REMOVEENTITY: + packet = new RemoveEntityPacket(); + break; + case PACKET_PLACEBLOCK: + packet = new PlaceBlockPacket(); + break; + case PACKET_REMOVEBLOCK: + packet = new RemoveBlockPacket(); + break; + case PACKET_UPDATEBLOCK: + packet = new UpdateBlockPacket(); + break; + case PACKET_EXPLODE: + packet = new ExplodePacket(); + break; + case PACKET_LEVELEVENT: + packet = new LevelEventPacket(); + break; + case PACKET_TILEEVENT: + packet = new TileEventPacket(); + break; + case PACKET_ENTITYEVENT: + packet = new EntityEventPacket(); + break; + case PACKET_REQUESTCHUNK: + packet = new RequestChunkPacket(); + break; + case PACKET_CHUNKDATA: + packet = new ChunkDataPacket(); + break; + case PACKET_PLAYEREQUIPMENT: + packet = new PlayerEquipmentPacket(); + break; + case PACKET_PLAYERARMOREQUIPMENT: + packet = new PlayerArmorEquipmentPacket(); + break; + case PACKET_INTERACT: + packet = new InteractPacket(); + break; + case PACKET_USEITEM: + packet = new UseItemPacket(); + break; + case PACKET_PLAYERACTION: + packet = new PlayerActionPacket(); + break; + case PACKET_HURTARMOR: + packet = new HurtArmorPacket(); + break; + case PACKET_SETENTITYDATA: + packet = new SetEntityDataPacket(); + break; + case PACKET_SETENTITYMOTION: + packet = new SetEntityMotionPacket(); + break; + case PACKET_SETHEALTH: + packet = new SetHealthPacket(); + break; + case PACKET_SETSPAWNPOSITION: + packet = new SetSpawnPositionPacket(); + break; + case PACKET_ANIMATE: + packet = new AnimatePacket(); + break; + case PACKET_SENDINVENTORY: + packet = new SendInventoryPacket(); + break; + case PACKET_DROPITEM: + packet = new DropItemPacket(); + break; + case PACKET_CONTAINERACK: + packet = new ContainerAckPacket(); + break; + case PACKET_CONTAINEROPEN: + packet = new ContainerOpenPacket(); + break; + case PACKET_CONTAINERCLOSE: + packet = new ContainerClosePacket(); + break; + case PACKET_CONTAINERSETDATA: + packet = new ContainerSetDataPacket(); + break; + case PACKET_CONTAINERSETSLOT: + packet = new ContainerSetSlotPacket(); + break; + case PACKET_CONTAINERSETCONTENT: + packet = new ContainerSetContentPacket(); + break; + case PACKET_CHAT: + packet = new ChatPacket(); + break; + case PACKET_SIGNUPDATE: + packet = new SignUpdatePacket(); + break; + case PACKET_ADDPAINTING: + packet = new AddPaintingPacket(); + break; + case PACKET_ADVENTURESETTINGS: + packet = new AdventureSettingsPacket(); + break; + } + + return packet; +} + + +namespace PacketUtil +{ + signed char Rot_degreesToChar(float rot) { + return (signed char)(rot / 360.0f * 256.0f); + } + float Rot_charToDegrees(signed char rot) { + return ((float)rot) / 256.0f * 360.0f; + } + + void Rot_entityToChar(const Entity* e, signed char& yRot, signed char& xRot) { + xRot = Rot_degreesToChar(e->xRot); + yRot = Rot_degreesToChar(e->yRot); + } + + void Rot_charToEntity(Entity* e, signed char yRot, signed char xRot) { + e->xRot = e->xRotO = Rot_charToDegrees(xRot); + e->yRot = e->yRotO = Rot_charToDegrees(yRot); + } + + void writeItemInstance(const ItemInstance& item, RakNet::BitStream* stream) { + short id = item.id; + unsigned char count = item.count; + short aux = item.getAuxValue(); + stream->Write(id); + stream->Write(count); + stream->Write(aux); + } + + ItemInstance readItemInstance(RakNet::BitStream* stream) { + short id, aux; + unsigned char count; + stream->Read(id); + stream->Read(count); + stream->Read(aux); + return ItemInstance(id, count, aux); + } +} diff --git a/src/network/Packet.h b/src/network/Packet.h new file mode 100755 index 0000000..e872219 --- /dev/null +++ b/src/network/Packet.h @@ -0,0 +1,173 @@ +#ifndef _MINECRAFT_NETWORK_PACKET_H_ +#define _MINECRAFT_NETWORK_PACKET_H_ + +#include "NetEventCallback.h" + +#include "../raknet/MessageIdentifiers.h" +#include "../raknet/RakNetTypes.h" +#include "../raknet/BitStream.h" +#include "../raknet/PacketPriority.h" + +class LevelChunk; + + +enum MinecraftPacketIds +{ + PACKET_KEEPALIVE = 0, + + PACKET_LOGIN, + PACKET_LOGINSTATUS, + PACKET_READY, + + PACKET_MESSAGE, + PACKET_SETTIME, + + PACKET_STARTGAME, + + PACKET_ADDMOB, + PACKET_ADDPLAYER, + PACKET_REMOVEPLAYER, + PACKET_TELEPORTENTITY, + + PACKET_ADDENTITY, + PACKET_REMOVEENTITY, + PACKET_ADDITEMENTITY, + PACKET_TAKEITEMENTITY, + + PACKET_MOVEENTITY, + PACKET_MOVEENTITY_POS, + PACKET_MOVEENTITY_ROT, + PACKET_MOVEENTITY_POSROT, + PACKET_MOVEPLAYER, + + PACKET_PLACEBLOCK, + PACKET_REMOVEBLOCK, + PACKET_UPDATEBLOCK, + + PACKET_ADDPAINTING, + + PACKET_EXPLODE, + + PACKET_LEVELEVENT, + PACKET_TILEEVENT, + PACKET_ENTITYEVENT, + + PACKET_REQUESTCHUNK, + PACKET_CHUNKDATA, + + PACKET_PLAYEREQUIPMENT, + PACKET_PLAYERARMOREQUIPMENT, + PACKET_INTERACT, + PACKET_USEITEM, + PACKET_PLAYERACTION, + PACKET_UPDATEARMOR, + PACKET_HURTARMOR, + + PACKET_SETENTITYDATA, + PACKET_SETENTITYMOTION, + PACKET_SETHEALTH, + PACKET_SETSPAWNPOSITION, + + PACKET_ANIMATE, + PACKET_RESPAWN, + + PACKET_SENDINVENTORY, + PACKET_DROPITEM, + + PACKET_CONTAINEROPEN, + PACKET_CONTAINERCLOSE, + PACKET_CONTAINERSETSLOT, + PACKET_CONTAINERSETDATA, + PACKET_CONTAINERSETCONTENT, + PACKET_CONTAINERACK, + + PACKET_CHAT, + PACKET_SIGNUPDATE, + + PACKET_ADVENTURESETTINGS, +/* + PACKET_PRELOGIN, + PACKET_CHAT, + PACKET_SETEQUIPPEDITEM, + PACKET_SETSPAWNPOSITION, + + PACKET_PLAYERACTION, + PACKET_SETCARRIEDITEM, + PACKET_ENTITYACTIONATPOSITION, + PACKET_PLAYERCOMMAND, + + PACKET_ADDENTITY, + PACKET_ADDMOB, + PACKET_ADDPAINTING, + PACKET_PLAYERINPUT, + PACKET_SETENTITYMOTION, + PACKET_REMOVEENTITY, + + PACKET_MOVEENTITY, + PACKET_SETRIDING, + PACKET_ENTITYDATA, + + PACKET_CHUNKVISIBILITY, + PACKET_BLOCKREGIONUPDATE, + PACKET_CHUNKBLOCKUPDATE, + PACKET_BLOCKUPDATE, + PACKET_BLOCKEVENT, + + PACKET_GAMEEVENT, + PACKET_ADDGLOBALENTITY, + + PACKET_CONTAINEROPEN, + PACKET_CONTAINERCLOSE, + PACKET_CONTAINERCLICK, + PACKET_CONTAINERSETSLOT, + PACKET_CONTAINERSETCONTENT, + PACKET_CONTAINERSETDATA, + PACKET_CONTAINERACK, + + PACKET_SIGNUPDATE, + PACKET_AWARDSTAT, + + PACKET_DISCONNECT, + */ + + PACKET_END_ID +}; + + +const int NUM_PACKETS = PACKET_END_ID; + +class Packet +{ +public: + Packet(); + virtual ~Packet() {} + + virtual void write(RakNet::BitStream* bitStream) = 0; + virtual void read(RakNet::BitStream* bitStream) = 0; + + virtual void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) = 0; + + PacketPriority priority; + PacketReliability reliability; +}; + + +class MinecraftPackets +{ +public: + + static Packet* createPacket(int id); + +}; + +namespace PacketUtil { + signed char Rot_degreesToChar(float rot); + float Rot_charToDegrees(signed char rot); + void Rot_entityToChar(const Entity* e, signed char& yRot, signed char& xRot); + void Rot_charToEntity(Entity* e, signed char yRot, signed char xRot); + + void writeItemInstance(const ItemInstance& item, RakNet::BitStream* stream); + ItemInstance readItemInstance(RakNet::BitStream* stream); +} + +#endif diff --git a/src/network/RakNetInstance.cpp b/src/network/RakNetInstance.cpp new file mode 100755 index 0000000..75a2814 --- /dev/null +++ b/src/network/RakNetInstance.cpp @@ -0,0 +1,740 @@ +#include "RakNetInstance.h" +#include "Packet.h" +#include "NetEventCallback.h" +#include "../raknet/RakPeerInterface.h" +#include "../raknet/BitStream.h" +#include "../raknet/MessageIdentifiers.h" +#include "../raknet/GetTime.h" +#include "../AppConstants.h" + +#include "../platform/log.h" + +#define APP_IDENTIFIER "MCCPP;" APP_VERSION_STRING ";" +#define APP_IDENTIFIER_MINECON "MCCPP;MINECON;" + +RakNetInstance::RakNetInstance() +: rakPeer(NULL), + _isServer(false), + _isLoggedIn(false) +{ + rakPeer = RakNet::RakPeerInterface::GetInstance(); + rakPeer->SetTimeoutTime(20000, RakNet::UNASSIGNED_SYSTEM_ADDRESS); + rakPeer->SetOccasionalPing(true); +} + +RakNetInstance::~RakNetInstance() +{ + if (rakPeer) + { + rakPeer->Shutdown(100, 0); + RakNet::RakPeerInterface::DestroyInstance(rakPeer); + rakPeer = NULL; + } +} + +bool RakNetInstance::host(const std::string& localName, int port, int maxConnections /* = 4 */) +{ + if (rakPeer->IsActive()) + { + rakPeer->Shutdown(500); + } + + RakNet::SocketDescriptor socket(port, 0); + socket.socketFamily = AF_INET; + + rakPeer->SetMaximumIncomingConnections(maxConnections); + RakNet::StartupResult result = rakPeer->Startup(maxConnections, &socket, 1); + + _isServer = true; + isPingingForServers = false; + + return (result == RakNet::RAKNET_STARTED); +} + +void RakNetInstance::announceServer(const std::string& localName) +{ + if (_isServer && rakPeer->IsActive()) + { + RakNet::RakString connectionData; + +#if defined(MINECON) + connectionData += APP_IDENTIFIER_MINECON; +#else + connectionData += APP_IDENTIFIER; +#endif + connectionData += localName.c_str(); + + RakNet::BitStream bitStream; + bitStream.Write(connectionData); + rakPeer->SetOfflinePingResponse((const char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); + } +} + +bool RakNetInstance::connect(const char* host, int port) +{ + _isLoggedIn = false; + RakNet::StartupResult result; + + RakNet::SocketDescriptor socket(0, 0); + socket.socketFamily = AF_INET; + + if (rakPeer->IsActive()) + { + rakPeer->Shutdown(500); + } + + result = rakPeer->Startup(4, &socket, 1); + + _isServer = false; + isPingingForServers = false; + + if (result == RakNet::RAKNET_STARTED) + { + RakNet::ConnectionAttemptResult connectResult = rakPeer->Connect(host, port, NULL, 0, NULL, 0, 12, 500, 0); + + return (connectResult == RakNet::CONNECTION_ATTEMPT_STARTED); + } + + return false; +} + +void RakNetInstance::disconnect() +{ + if (rakPeer->IsActive()) + { + rakPeer->Shutdown(500); + } + _isLoggedIn = false; + _isServer = false; + isPingingForServers = false; +} + +void RakNetInstance::pingForHosts(int basePort) +{ + if (!rakPeer->IsActive()) + { + RakNet::SocketDescriptor socket(0, 0); + rakPeer->Startup(4, &socket, 1); + } + + isPingingForServers = true; + pingPort = basePort; + lastPingTime = RakNet::GetTimeMS(); + + for (int i = 0; i < 4; ++i) + rakPeer->Ping("255.255.255.255", basePort + i, true); +} + +void RakNetInstance::stopPingForHosts() +{ + if (isPingingForServers) + { + rakPeer->Shutdown(0); + isPingingForServers = false; + } +} + +const ServerList& RakNetInstance::getServerList() +{ + return availableServers; +} + +void RakNetInstance::clearServerList() +{ + availableServers.clear(); + /* + for (int i = 0; i < 20; ++i) { + PingedCompatibleServer ps; + ps.isSpecial = false; + ps.name = "Fake-Real"; + ps.address.FromString("192.168.1.236|19132"); + availableServers.push_back(ps); + } + */ +} + +RakNet::RakPeerInterface* RakNetInstance::getPeer() +{ + return rakPeer; +} + +bool RakNetInstance::isProbablyBroken() { + return rakPeer->errorState < -100; +} +void RakNetInstance::resetIsBroken() { + rakPeer->errorState = 0; +} + +bool RakNetInstance::isMyLocalGuid(const RakNet::RakNetGUID& guid) +{ + return rakPeer->IsActive() && rakPeer->GetMyGUID() == guid; +} + +void RakNetInstance::runEvents(NetEventCallback* callback) +{ + RakNet::Packet* currentEvent; + + while ((currentEvent = rakPeer->Receive()) != NULL) + { + int packetId = currentEvent->data[0]; + int length = currentEvent->length; + + RakNet::BitStream activeBitStream(currentEvent->data + 1, length - 1, false); + + if (callback) { + if (packetId < ID_USER_PACKET_ENUM) + { + //LOGI("Received event: %s\n", getPacketName(packetId)); + switch (packetId) + { + case ID_NEW_INCOMING_CONNECTION: + callback->onNewClient(currentEvent->guid); + break; + case ID_CONNECTION_REQUEST_ACCEPTED: + serverGuid = currentEvent->guid; + callback->onConnect(currentEvent->guid); + break; + case ID_CONNECTION_ATTEMPT_FAILED: + callback->onUnableToConnect(); + break; + case ID_DISCONNECTION_NOTIFICATION: + case ID_CONNECTION_LOST: + callback->onDisconnect(currentEvent->guid); + break; + case ID_UNCONNECTED_PONG: + { + RakNet::TimeMS time; + RakNet::RakString data; + activeBitStream.Read(time); + activeBitStream.Read(data); + + int index = handleUnconnectedPong(data, currentEvent, APP_IDENTIFIER, false); + if (index < 0) { + // Check if it's an official Mojang MineCon server + index = handleUnconnectedPong(data, currentEvent, APP_IDENTIFIER_MINECON, true); + if (index >= 0) availableServers[index].isSpecial = true; + } + } + break; + } + } + else + { + int userPacketId = packetId - ID_USER_PACKET_ENUM; + bool isStatusPacket = userPacketId <= PACKET_READY; + + if (isStatusPacket || _isServer || _isLoggedIn) { + + if (Packet* packet = MinecraftPackets::createPacket(packetId)) { + packet->read(&activeBitStream); + packet->handle(currentEvent->guid, callback); + delete packet; + } + } + } + } + + rakPeer->DeallocatePacket(currentEvent); + //delete activeBitStream; + } + + if (isPingingForServers) + { + if (RakNet::GetTimeMS() - lastPingTime > 1000) + { + // remove servers that hasn't responded for a while + ServerList::iterator it = availableServers.begin(); + for (; it != availableServers.end(); ) + { + if (RakNet::GetTimeMS() - it->pingTime > 3000) + { + it = availableServers.erase(it); + } + else + { + ++it; + } + } + + pingForHosts(pingPort); + } + } + +} + +void RakNetInstance::send(Packet& packet) { + RakNet::BitStream bitStream; + packet.write(&bitStream); + if (_isServer) + { + // broadcast to all connected clients + rakPeer->Send(&bitStream, packet.priority, packet.reliability, 0, RakNet::UNASSIGNED_SYSTEM_ADDRESS, true); + } + else + { + // send to server + rakPeer->Send(&bitStream, packet.priority, packet.reliability, 0, serverGuid, false); + } +} + +void RakNetInstance::send(const RakNet::RakNetGUID& guid, Packet& packet) { + RakNet::BitStream bitStream; + packet.write(&bitStream); + rakPeer->Send(&bitStream, packet.priority, packet.reliability, 0, guid, false); +} + + +void RakNetInstance::send(Packet* packet) +{ + send(*packet); + delete packet; +} + +void RakNetInstance::send(const RakNet::RakNetGUID& guid, Packet* packet) +{ + send(guid, *packet); + delete packet; +} + +#ifdef _DEBUG +const char* RakNetInstance::getPacketName(int packetId) +{ + + switch (packetId) + { + case ID_CONNECTED_PING: + return "ID_CONNECTED_PING"; + + case ID_UNCONNECTED_PING: + return "ID_UNCONNECTED_PING"; + + case ID_UNCONNECTED_PING_OPEN_CONNECTIONS: + return "ID_UNCONNECTED_PING_OPEN_CONNECTIONS"; + + case ID_CONNECTED_PONG: + return "ID_CONNECTED_PONG"; + + case ID_DETECT_LOST_CONNECTIONS: + return "ID_DETECT_LOST_CONNECTIONS"; + + case ID_OPEN_CONNECTION_REQUEST_1: + return "ID_OPEN_CONNECTION_REQUEST_1"; + + case ID_OPEN_CONNECTION_REPLY_1: + return "ID_OPEN_CONNECTION_REPLY_1"; + + case ID_OPEN_CONNECTION_REQUEST_2: + return "ID_OPEN_CONNECTION_REQUEST_2"; + + case ID_OPEN_CONNECTION_REPLY_2: + return "ID_OPEN_CONNECTION_REPLY_2"; + + case ID_CONNECTION_REQUEST: + return "ID_CONNECTION_REQUEST"; + + case ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY: + return "ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY"; + + case ID_OUR_SYSTEM_REQUIRES_SECURITY: + return "ID_OUR_SYSTEM_REQUIRES_SECURITY"; + + case ID_PUBLIC_KEY_MISMATCH: + return "ID_PUBLIC_KEY_MISMATCH"; + + case ID_OUT_OF_BAND_INTERNAL: + return "ID_OUT_OF_BAND_INTERNAL"; + + case ID_SND_RECEIPT_ACKED: + return "ID_SND_RECEIPT_ACKED"; + + case ID_SND_RECEIPT_LOSS: + return "ID_SND_RECEIPT_LOSS"; + + case ID_CONNECTION_REQUEST_ACCEPTED: + return "ID_CONNECTION_REQUEST_ACCEPTED"; + + case ID_CONNECTION_ATTEMPT_FAILED: + return "ID_CONNECTION_ATTEMPT_FAILED"; + + case ID_ALREADY_CONNECTED: + return "ID_ALREADY_CONNECTED"; + + case ID_NEW_INCOMING_CONNECTION: + return "ID_NEW_INCOMING_CONNECTION"; + + case ID_NO_FREE_INCOMING_CONNECTIONS: + return "ID_NO_FREE_INCOMING_CONNECTIONS"; + + case ID_DISCONNECTION_NOTIFICATION: + return "ID_DISCONNECTION_NOTIFICATION"; + + case ID_CONNECTION_LOST: + return "ID_CONNECTION_LOST"; + + case ID_CONNECTION_BANNED: + return "ID_CONNECTION_BANNED"; + + case ID_INVALID_PASSWORD: + return "ID_INVALID_PASSWORD"; + + case ID_INCOMPATIBLE_PROTOCOL_VERSION: + return "ID_INCOMPATIBLE_PROTOCOL_VERSION"; + + case ID_IP_RECENTLY_CONNECTED: + return "ID_IP_RECENTLY_CONNECTED"; + + case ID_TIMESTAMP: + return "ID_TIMESTAMP"; + + case ID_UNCONNECTED_PONG: + return "ID_UNCONNECTED_PONG"; + + case ID_ADVERTISE_SYSTEM: + return "ID_ADVERTISE_SYSTEM"; + + case ID_DOWNLOAD_PROGRESS: + return "ID_DOWNLOAD_PROGRESS"; + + case ID_REMOTE_DISCONNECTION_NOTIFICATION: + return "ID_REMOTE_DISCONNECTION_NOTIFICATION"; + + case ID_REMOTE_CONNECTION_LOST: + return "ID_REMOTE_CONNECTION_LOST"; + + case ID_REMOTE_NEW_INCOMING_CONNECTION: + return "ID_REMOTE_NEW_INCOMING_CONNECTION"; + + case ID_FILE_LIST_TRANSFER_HEADER: + return "ID_FILE_LIST_TRANSFER_HEADER"; + + case ID_FILE_LIST_TRANSFER_FILE: + return "ID_FILE_LIST_TRANSFER_FILE"; + + case ID_FILE_LIST_REFERENCE_PUSH_ACK: + return "ID_FILE_LIST_REFERENCE_PUSH_ACK"; + + case ID_DDT_DOWNLOAD_REQUEST: + return "ID_DDT_DOWNLOAD_REQUEST"; + + case ID_TRANSPORT_STRING: + return "ID_TRANSPORT_STRING"; + + case ID_REPLICA_MANAGER_CONSTRUCTION: + return "ID_REPLICA_MANAGER_CONSTRUCTION"; + + case ID_REPLICA_MANAGER_SCOPE_CHANGE: + return "ID_REPLICA_MANAGER_SCOPE_CHANGE"; + + case ID_REPLICA_MANAGER_SERIALIZE: + return "ID_REPLICA_MANAGER_SERIALIZE"; + + case ID_REPLICA_MANAGER_DOWNLOAD_STARTED: + return "ID_REPLICA_MANAGER_DOWNLOAD_STARTED"; + + case ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE: + return "ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE"; + + case ID_RAKVOICE_OPEN_CHANNEL_REQUEST: + return "ID_RAKVOICE_OPEN_CHANNEL_REQUEST"; + + case ID_RAKVOICE_OPEN_CHANNEL_REPLY: + return "ID_RAKVOICE_OPEN_CHANNEL_REPLY"; + + case ID_RAKVOICE_CLOSE_CHANNEL: + return "ID_RAKVOICE_CLOSE_CHANNEL"; + + case ID_RAKVOICE_DATA: + return "ID_RAKVOICE_DATA"; + + case ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE: + return "ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE"; + + case ID_AUTOPATCHER_CREATION_LIST: + return "ID_AUTOPATCHER_CREATION_LIST"; + + case ID_AUTOPATCHER_DELETION_LIST: + return "ID_AUTOPATCHER_DELETION_LIST"; + + case ID_AUTOPATCHER_GET_PATCH: + return "ID_AUTOPATCHER_GET_PATCH"; + + case ID_AUTOPATCHER_PATCH_LIST: + return "ID_AUTOPATCHER_PATCH_LIST"; + + case ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR: + return "ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR"; + + case ID_AUTOPATCHER_FINISHED_INTERNAL: + return "ID_AUTOPATCHER_FINISHED_INTERNAL"; + + case ID_AUTOPATCHER_FINISHED: + return "ID_AUTOPATCHER_FINISHED"; + + case ID_AUTOPATCHER_RESTART_APPLICATION: + return "ID_AUTOPATCHER_RESTART_APPLICATION"; + + case ID_NAT_PUNCHTHROUGH_REQUEST: + return "ID_NAT_PUNCHTHROUGH_REQUEST"; + + case ID_NAT_GROUP_PUNCHTHROUGH_REQUEST: + return "ID_NAT_GROUP_PUNCHTHROUGH_REQUEST"; + + case ID_NAT_GROUP_PUNCHTHROUGH_REPLY: + return "ID_NAT_GROUP_PUNCHTHROUGH_REPLY"; + + case ID_NAT_CONNECT_AT_TIME: + return "ID_NAT_CONNECT_AT_TIME"; + + case ID_NAT_GET_MOST_RECENT_PORT: + return "ID_NAT_GET_MOST_RECENT_PORT"; + + case ID_NAT_CLIENT_READY: + return "ID_NAT_CLIENT_READY"; + + case ID_NAT_GROUP_PUNCHTHROUGH_FAILURE_NOTIFICATION: + return "ID_NAT_GROUP_PUNCHTHROUGH_FAILURE_NOTIFICATION"; + + case ID_NAT_TARGET_NOT_CONNECTED: + return "ID_NAT_TARGET_NOT_CONNECTED"; + + case ID_NAT_TARGET_UNRESPONSIVE: + return "ID_NAT_TARGET_UNRESPONSIVE"; + + case ID_NAT_CONNECTION_TO_TARGET_LOST: + return "ID_NAT_CONNECTION_TO_TARGET_LOST"; + + case ID_NAT_ALREADY_IN_PROGRESS: + return "ID_NAT_ALREADY_IN_PROGRESS"; + + case ID_NAT_PUNCHTHROUGH_FAILED: + return "ID_NAT_PUNCHTHROUGH_FAILED"; + + case ID_NAT_PUNCHTHROUGH_SUCCEEDED: + return "ID_NAT_PUNCHTHROUGH_SUCCEEDED"; + + case ID_NAT_GROUP_PUNCH_FAILED: + return "ID_NAT_GROUP_PUNCH_FAILED"; + + case ID_NAT_GROUP_PUNCH_SUCCEEDED: + return "ID_NAT_GROUP_PUNCH_SUCCEEDED"; + + case ID_READY_EVENT_SET: + return "ID_READY_EVENT_SET"; + + case ID_READY_EVENT_UNSET: + return "ID_READY_EVENT_UNSET"; + + case ID_READY_EVENT_ALL_SET: + return "ID_READY_EVENT_ALL_SET"; + + case ID_READY_EVENT_QUERY: + return "ID_READY_EVENT_QUERY"; + + case ID_LOBBY_GENERAL: + return "ID_LOBBY_GENERAL"; + + case ID_RPC_REMOTE_ERROR: + return "ID_RPC_REMOTE_ERROR"; + + case ID_RPC_PLUGIN: + return "ID_RPC_PLUGIN"; + + case ID_FILE_LIST_REFERENCE_PUSH: + return "ID_FILE_LIST_REFERENCE_PUSH"; + + case ID_READY_EVENT_FORCE_ALL_SET: + return "ID_READY_EVENT_FORCE_ALL_SET"; + + case ID_ROOMS_EXECUTE_FUNC: + return "ID_ROOMS_EXECUTE_FUNC"; + + case ID_ROOMS_LOGON_STATUS: + return "ID_ROOMS_LOGON_STATUS"; + + case ID_ROOMS_HANDLE_CHANGE: + return "ID_ROOMS_HANDLE_CHANGE"; + + case ID_LOBBY2_SEND_MESSAGE: + return "ID_LOBBY2_SEND_MESSAGE"; + + case ID_LOBBY2_SERVER_ERROR: + return "ID_LOBBY2_SERVER_ERROR"; + + case ID_FCM2_NEW_HOST: + return "ID_FCM2_NEW_HOST"; + + case ID_FCM2_REQUEST_FCMGUID: + return "ID_FCM2_REQUEST_FCMGUID"; + + case ID_FCM2_RESPOND_CONNECTION_COUNT: + return "ID_FCM2_RESPOND_CONNECTION_COUNT"; + + case ID_FCM2_INFORM_FCMGUID: + return "ID_FCM2_INFORM_FCMGUID"; + + case ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT: + return "ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT"; + + case ID_UDP_PROXY_GENERAL: + return "ID_UDP_PROXY_GENERAL"; + + case ID_SQLite3_EXEC: + return "ID_SQLite3_EXEC"; + + case ID_SQLite3_UNKNOWN_DB: + return "ID_SQLite3_UNKNOWN_DB"; + + case ID_SQLLITE_LOGGER: + return "ID_SQLLITE_LOGGER"; + + case ID_NAT_TYPE_DETECTION_REQUEST: + return "ID_NAT_TYPE_DETECTION_REQUEST"; + + case ID_NAT_TYPE_DETECTION_RESULT: + return "ID_NAT_TYPE_DETECTION_RESULT"; + + case ID_ROUTER_2_INTERNAL: + return "ID_ROUTER_2_INTERNAL"; + + case ID_ROUTER_2_FORWARDING_NO_PATH: + return "ID_ROUTER_2_FORWARDING_NO_PATH"; + + case ID_ROUTER_2_FORWARDING_ESTABLISHED: + return "ID_ROUTER_2_FORWARDING_ESTABLISHED"; + + case ID_ROUTER_2_REROUTED: + return "ID_ROUTER_2_REROUTED"; + + case ID_TEAM_BALANCER_INTERNAL: + return "ID_TEAM_BALANCER_INTERNAL"; + + case ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING: + return "ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING"; + + case ID_TEAM_BALANCER_TEAMS_LOCKED: + return "ID_TEAM_BALANCER_TEAMS_LOCKED"; + + case ID_TEAM_BALANCER_TEAM_ASSIGNED: + return "ID_TEAM_BALANCER_TEAM_ASSIGNED"; + + case ID_LIGHTSPEED_INTEGRATION: + return "ID_LIGHTSPEED_INTEGRATION"; + + case ID_XBOX_LOBBY: + return "ID_XBOX_LOBBY"; + + case ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS: + return "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS"; + + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS: + return "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS"; + + case ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE: + return "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE"; + + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE: + return "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE"; + + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT: + return "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT"; + + case ID_TWO_WAY_AUTHENTICATION_NEGOTIATION: + return "ID_TWO_WAY_AUTHENTICATION_NEGOTIATION"; + + case ID_CLOUD_POST_REQUEST: + return "ID_CLOUD_POST_REQUEST"; + + case ID_CLOUD_RELEASE_REQUEST: + return "ID_CLOUD_RELEASE_REQUEST"; + + case ID_CLOUD_GET_REQUEST: + return "ID_CLOUD_GET_REQUEST"; + + case ID_CLOUD_GET_RESPONSE: + return "ID_CLOUD_GET_RESPONSE"; + + case ID_CLOUD_UNSUBSCRIBE_REQUEST: + return "ID_CLOUD_UNSUBSCRIBE_REQUEST"; + + case ID_CLOUD_SERVER_TO_SERVER_COMMAND: + return "ID_CLOUD_SERVER_TO_SERVER_COMMAND"; + + case ID_CLOUD_SUBSCRIPTION_NOTIFICATION: + return "ID_CLOUD_SUBSCRIPTION_NOTIFICATION"; + + case ID_RESERVED_1: + return "ID_RESERVED_1"; + + case ID_RESERVED_2: + return "ID_RESERVED_2"; + + case ID_RESERVED_3: + return "ID_RESERVED_3"; + + case ID_RESERVED_4: + return "ID_RESERVED_4"; + + case ID_RESERVED_5: + return "ID_RESERVED_5"; + + case ID_RESERVED_6: + return "ID_RESERVED_6"; + + case ID_RESERVED_7: + return "ID_RESERVED_7"; + + case ID_RESERVED_8: + return "ID_RESERVED_8"; + + case ID_RESERVED_9: + return "ID_RESERVED_9"; + + default: + break; + } + return "Unknown or user-defined"; +} +#endif + +int RakNetInstance::handleUnconnectedPong(const RakNet::RakString& data, const RakNet::Packet* p, const char* appid, bool insertAtBeginning) +{ + RakNet::RakString appIdentifier(appid); + // This weird code is a result of RakString.Find being pretty useless + bool emptyNameOrLonger = data.GetLength() >= appIdentifier.GetLength(); + + if ( !emptyNameOrLonger || appIdentifier.StrCmp(data.SubStr(0, appIdentifier.GetLength())) != 0) + return -1; + + bool found = false; + for (unsigned int i = 0; i < availableServers.size(); i++) { + if (availableServers[i].address == p->systemAddress) { + availableServers[i].pingTime = RakNet::GetTimeMS(); + + bool emptyName = data.GetLength() == appIdentifier.GetLength(); + if (emptyName) + availableServers[i].name = ""; + else { + availableServers[i].name = data.SubStr(appIdentifier.GetLength(), data.GetLength() - appIdentifier.GetLength()); + } + //LOGI("Swapping name: %s\n", availableServers[i].name.C_String()); + return i; + } + } + PingedCompatibleServer server; + server.address = p->systemAddress; + server.pingTime = RakNet::GetTimeMS(); + server.isSpecial = false; + server.name = data.SubStr(appIdentifier.GetLength(), data.GetLength() - appIdentifier.GetLength()); + + if (insertAtBeginning) { + availableServers.insert(availableServers.begin(), server); + return 0; + } else { + availableServers.push_back(server); + return availableServers.size() - 1; + } +} + +void RakNetInstance::setIsLoggedIn( bool status ) { + _isLoggedIn = status; +} diff --git a/src/network/RakNetInstance.h b/src/network/RakNetInstance.h new file mode 100755 index 0000000..d3e8571 --- /dev/null +++ b/src/network/RakNetInstance.h @@ -0,0 +1,118 @@ +#ifndef _MINECRAFT_NETWORK_RAKNETINSTANCE_H_ +#define _MINECRAFT_NETWORK_RAKNETINSTANCE_H_ + +#include +#include +#include "../raknet/RakNetTypes.h" +#include "../raknet/RakString.h" + +namespace RakNet +{ + class RakPeerInterface; +} + +class Packet; +class NetEventCallback; + +typedef struct PingedCompatibleServer +{ + RakNet::RakString name; + RakNet::SystemAddress address; + RakNet::TimeMS pingTime; + bool isSpecial; +} PingedCompatibleServer; +typedef std::vector ServerList; + +class IRakNetInstance +{ +public: + virtual ~IRakNetInstance() {} + + virtual bool host(const std::string& localName, int port, int maxConnections = 4) { return false; } + virtual bool connect(const char* host, int port) { return false; } + virtual void setIsLoggedIn(bool status) {} + + virtual void pingForHosts(int port) {} + virtual void stopPingForHosts() {} + virtual const ServerList& getServerList() { static ServerList l; return l; } + virtual void clearServerList() {} + + virtual void disconnect() {} + + virtual void announceServer(const std::string& localName) {} + + virtual RakNet::RakPeerInterface* getPeer() { return NULL; } + virtual bool isMyLocalGuid(const RakNet::RakNetGUID& guid) { return true; } + + virtual void runEvents(NetEventCallback* callback) {} + + virtual void send(Packet& packet) {} + virtual void send(const RakNet::RakNetGUID& guid, Packet& packet) {} + + // @attn: Those delete the packet + virtual void send(Packet* packet) {} + virtual void send(const RakNet::RakNetGUID& guid, Packet* packet) {} + + virtual bool isServer() { return true; } + virtual bool isProbablyBroken() { return false; } + virtual void resetIsBroken() {} +}; + +class RakNetInstance: public IRakNetInstance +{ +public: + + RakNetInstance(); + virtual ~RakNetInstance(); + + bool host(const std::string& localName, int port, int maxConnections = 4); + bool connect(const char* host, int port); + void setIsLoggedIn(bool status); + + void pingForHosts(int basePort); + void stopPingForHosts(); + const ServerList& getServerList(); + void clearServerList(); + + void disconnect(); + + void announceServer(const std::string& localName); + + RakNet::RakPeerInterface* getPeer(); + bool isMyLocalGuid(const RakNet::RakNetGUID& guid); + + void runEvents(NetEventCallback* callback); + + void send(Packet& packet); + void send(const RakNet::RakNetGUID& guid, Packet& packet); + + // @attn: Those delete the packet + void send(Packet* packet); + void send(const RakNet::RakNetGUID& guid, Packet* packet); + + bool isServer() { return _isServer; } + bool isProbablyBroken(); + void resetIsBroken(); + +#ifdef _DEBUG + const char* getPacketName(int packetId); +#else + const char* getPacketName(int packetId) { return ""; } +#endif + +private: + int handleUnconnectedPong(const RakNet::RakString& data, const RakNet::Packet*, const char* appid, bool insertAtBeginning); + + RakNet::RakPeerInterface* rakPeer; + RakNet::RakNetGUID serverGuid; + + ServerList availableServers; + bool isPingingForServers; + int pingPort; + RakNet::TimeMS lastPingTime; + + bool _isServer; + bool _isLoggedIn; +}; + +#endif /*_MINECRAFT_NETWORK_RAKNETINSTANCE_H_*/ diff --git a/src/network/ServerSideNetworkHandler.cpp b/src/network/ServerSideNetworkHandler.cpp new file mode 100755 index 0000000..986fdc9 --- /dev/null +++ b/src/network/ServerSideNetworkHandler.cpp @@ -0,0 +1,705 @@ + +#include "ServerSideNetworkHandler.h" +#include "../world/level/Level.h" +#include "../world/entity/player/Player.h" +#include "../world/entity/player/Inventory.h" +#include "../world/Container.h" +#include "../world/inventory/BaseContainerMenu.h" +#include "packet/PacketInclude.h" + +#include "RakNetInstance.h" +#include "../client/Minecraft.h" +#include "../client/player/LocalPlayer.h" +#include "../client/gamemode/GameMode.h" +#include "../raknet/RakPeerInterface.h" +#include "../raknet/PacketPriority.h" +#ifndef STANDALONE_SERVER +#include "../client/sound/SoundEngine.h" +#endif +#include "../server/ServerPlayer.h" +#include "../world/entity/item/FallingTile.h" + +#define TIMES(x) for(int itc ## __LINE__ = 0; itc ## __LINE__ < x; ++ itc ## __LINE__) + +ServerSideNetworkHandler::ServerSideNetworkHandler(Minecraft* minecraft, IRakNetInstance* raknetInstance) +: minecraft(minecraft), + raknetInstance(raknetInstance), + level(NULL) +{ + allowIncomingConnections(false); + rakPeer = raknetInstance->getPeer(); +} + +ServerSideNetworkHandler::~ServerSideNetworkHandler() +{ + if (level) { + level->removeListener(this); + } + + for (unsigned int i = 0; i < _pendingPlayers.size(); ++i) + delete _pendingPlayers[i]; +} + +void ServerSideNetworkHandler::tileChanged(int x, int y, int z) +{ + //LOGI("tileChanged(%d, %d, %d)\n", x, y, z); + + // broadcast change event + UpdateBlockPacket packet(x, y, z, level->getTile(x, y, z), level->getData(x, y, z)); + RakNet::BitStream bitStream; + packet.write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, RakNet::UNASSIGNED_SYSTEM_ADDRESS, true); +} + +Packet* ServerSideNetworkHandler::getAddPacketFromEntity( Entity* entity ) { + if (entity->isMob() && !entity->isPlayer()) { //@fix: This code is duplicated. See if it can be unified. + if (minecraft->player) { + // I guess this should always be true, but it crashed somewhere in this + // function once and I only see this one as a potential problem + return new AddMobPacket((Mob*)entity); + } + } + else if (entity->isPlayer()) { + + } else if (entity->isItemEntity()) { + AddItemEntityPacket* packet = new AddItemEntityPacket((ItemEntity*)entity); + entity->xd = packet->xa(); + entity->yd = packet->ya(); + entity->zd = packet->za(); + //LOGI("item-entity @ server: %f, %f, %f\n", e->xd, e->yd, e->zd); + return packet; + } else if(entity->isHangingEntity()) { + return new AddPaintingPacket((Painting*) entity); + } else { + int type = entity->getEntityTypeId(); + int data = entity->getAuxData(); + + if (EntityTypes::IdFallingTile == type) { + FallingTile* ft = (FallingTile*) entity; + data = -(ft->tile | (ft->data << 16)); + } + + //LOGI("Server: adding entity with %f, %f, %f\n", e->xd, e->yd, e->zd); + AddEntityPacket* packet = new AddEntityPacket(entity, data); + /* + entity->xd = packet->xd; + entity->yd = packet->yd; + entity->zd = packet->zd; + */ + return packet; + } + return NULL; +} +void ServerSideNetworkHandler::entityAdded(Entity* e) { + Packet* packet = getAddPacketFromEntity(e); + if(packet != NULL) { + if (e->isMob() && !e->isPlayer()) { + redistributePacket(packet, rakPeer->GetMyGUID()); + delete packet; + } else { + raknetInstance->send(packet); + // raknetInstance->send always deletes package + } + + } +} + +void ServerSideNetworkHandler::entityRemoved(Entity* e) +{ + if (!e->isPlayer()) { //@fix: This code MIGHT be duplicated. See if it can be unified. + RemoveEntityPacket packet(e->entityId); + redistributePacket(&packet, rakPeer->GetMyGUID()); + } else { // Is a player + RemovePlayerPacket packet((Player*) e); + redistributePacket(&packet, rakPeer->GetMyGUID()); + } +} + +void ServerSideNetworkHandler::redistributePacket(Packet* packet, const RakNet::RakNetGUID& fromPlayer) +{ + // broadcast the new player to all other players + RakNet::BitStream bitStream; + packet->write(&bitStream); + rakPeer->Send(&bitStream, packet->priority, packet->reliability, 0, fromPlayer, true); +} + +void ServerSideNetworkHandler::displayGameMessage(const std::string& message) +{ +#ifndef STANDALONE_SERVER + minecraft->gui.addMessage(message); +#else + LOGI("%s\n", message.c_str()); +#endif + MessagePacket packet(message.c_str()); + raknetInstance->send(packet); +} + +void ServerSideNetworkHandler::onNewClient(const RakNet::RakNetGUID& clientGuid) +{ + LOGI("onNewClient, client guid: %s\n", clientGuid.ToString()); +} + +void ServerSideNetworkHandler::onDisconnect(const RakNet::RakNetGUID& guid) +{ + if (!level) return; + LOGI("onDisconnect\n"); + + const PlayerList& players = level->players; + for (unsigned int i = 0; i < players.size(); i++) + { + Player* player = players[i]; + + if (player->owner == guid) + { + std::string message = player->name; + message += " disconnected from the game"; + displayGameMessage(message); + + //RemoveEntityPacket packet(player->entityId); + //raknetInstance->send(packet); + player->reallyRemoveIfPlayer = true; + level->removeEntity(player); + //level->removePlayer(player); + + LOGI("&e@disc: %p", player); + + break; + } + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, LoginPacket* packet) +{ + if (!level) return; + if (!_allowIncoming) return; + + LOGI("LoginPacket\n"); + + int loginStatus = LoginStatus::Success; + // + // Bad/incompatible client version + // + bool oldClient = packet->clientNetworkVersion < SharedConstants::NetworkProtocolLowestSupportedVersion; + bool oldServer = packet->clientNetworkLowestSupportedVersion > SharedConstants::NetworkProtocolVersion; + if (oldClient || oldServer) + loginStatus = oldClient? LoginStatus::Failed_ClientOld : LoginStatus::Failed_ServerOld; + + RakNet::BitStream bitStream; + LoginStatusPacket(loginStatus).write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + + if (LoginStatus::Success != loginStatus) + return; + + // + // Valid client version + // + Player* newPlayer = new ServerPlayer(minecraft, level); + + minecraft->gameMode->initAbilities(newPlayer->abilities); + newPlayer->owner = source; + newPlayer->name = packet->clientName.C_String(); + _pendingPlayers.push_back(newPlayer); + + // Reset the player so he doesn't spawn inside blocks + while (newPlayer->y > 0) { + newPlayer->setPos(newPlayer->x, newPlayer->y, newPlayer->z); + if (level->getCubes(newPlayer, newPlayer->bb).size() == 0) break; + newPlayer->y += 1; + } + newPlayer->moveTo(newPlayer->x, newPlayer->y - newPlayer->heightOffset, newPlayer->z, newPlayer->yRot, newPlayer->xRot); + + // send world seed + { + RakNet::BitStream bitStream; + + // @todo: Read from LevelData? + int gameType = minecraft->isCreativeMode() + ? GameType::Creative + : GameType::Survival; + + StartGamePacket( + level->getSeed(), + level->getLevelData()->getGeneratorVersion(), + gameType, + newPlayer->entityId, + newPlayer->x, newPlayer->y - newPlayer->heightOffset, newPlayer->z + ).write(&bitStream); + + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ReadyPacket* packet) +{ + if (!level) return; + + if (packet->type == ReadyPacket::READY_CLIENTGENERATION) + onReady_ClientGeneration(source); + + if (packet->type == ReadyPacket::READY_REQUESTEDCHUNKS) + onReady_RequestedChunks(source); +} + +void ServerSideNetworkHandler::onReady_ClientGeneration(const RakNet::RakNetGUID& source) +{ + Player* newPlayer = popPendingPlayer(source); + if (!newPlayer) { + for (int i = 0; i < 3; ++i) + LOGE("We don't have a user associated with this player!\n"); + return; + } + // Create a bitstream that can be used by everyone (after ::reset() ) + RakNet::BitStream bitStream; + + // send level info + SetTimePacket(level->getTime()).write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + + // send all pre-existing players to the new player + const PlayerList& players = level->players; + for (unsigned int i = 0; i < players.size(); i++) { + Player* player = players[i]; + + bitStream.Reset(); + AddPlayerPacket(player).write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + + if (player->getArmorTypeHash()) { + bitStream.Reset(); + PlayerArmorEquipmentPacket(player).write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + } + } + + level->addEntity(newPlayer); +#ifndef STANDALONE_SERVER + minecraft->gui.addMessage(newPlayer->name + " joined the game"); +#else + LOGW("%s joined the game\n", newPlayer->name.c_str()); +#endif + + // Send all Entities to the new player + for (unsigned int i = 0; i < level->entities.size(); ++i) { + Entity* e = level->entities[i]; + Packet* packet = getAddPacketFromEntity(e); + if(packet != NULL) { + bitStream.Reset(); + packet->write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + delete packet; + } + } + + // Additional packets + // * set spawn + /* + bitStream.Reset(); + SetSpawnPositionPacket spawnPacket(level->getSharedSpawnPos()); + raknetInstance->send(source, spawnPacket); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + */ + + // broadcast the new player to all other players + bitStream.Reset(); + AddPlayerPacket(newPlayer).write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, true); +} + +// +// Messages to be sent after client has finished applying changes +// +void ServerSideNetworkHandler::onReady_RequestedChunks(const RakNet::RakNetGUID& source) +{ + RakNet::BitStream bitStream; + // Send all TileEntities to the new player + for (unsigned int i = 0; i < level->tileEntities.size(); ++i) { + TileEntity* e = level->tileEntities[i]; + Packet* packet = e->getUpdatePacket(); + if (packet != NULL) { + bitStream.Reset(); + packet->write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + delete packet; + } + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MovePlayerPacket* packet) +{ + if (!level) return; + + //LOGI("MovePlayerPacket\n"); + if (Entity* entity = level->getEntity(packet->entityId)) + { + entity->xd = entity->yd = entity->zd = 0; + entity->lerpTo(packet->x, packet->y, packet->z, packet->yRot, packet->xRot, 3); + + // broadcast this packet to other clients + redistributePacket(packet, source); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, RemoveBlockPacket* packet){ + if (!level) return; + + Player* player = getPlayer(source); + if (!player) return; + + player->swing(); + + int x = packet->x, y = packet->y, z = packet->z; + + // code copied from GameMode.cpp + int oldId = level->getTile(x, y, z); + int data = level->getData(x, y, z); + Tile* oldTile = Tile::tiles[oldId]; + bool changed = level->setTile(x, y, z, 0); + if (oldTile != NULL && changed) { + level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, oldTile->soundType->getBreakSound(), (oldTile->soundType->getVolume() + 1) / 2, oldTile->soundType->getPitch() * 0.8f); + + if (minecraft->gameMode->isSurvivalType() && player->canDestroy(oldTile)) + //oldTile->spawnResources(level, x, y, z, data, 1); //@todo + oldTile->playerDestroy(level, player, x, y, z, data); + + oldTile->destroy(level, x, y, z, data); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, RequestChunkPacket* packet) +{ + if (!level) + return; + + LevelChunk* chunk = level->getChunk(packet->x, packet->z); + + if (!chunk) + return; + + ChunkDataPacket cpacket(chunk->x, chunk->z, chunk); + + RakNet::BitStream bitStream; + cpacket.write(&bitStream); + rakPeer->Send(&bitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, source, false); + //LOGI("RequestChunkPacket @ (%d, %d). %d bytes\n", packet->x, packet->z, cpacket.chunkData.GetNumberOfBytesUsed()); + //LOGI("size: %d\n", bitStream.GetNumberOfBytesUsed()); + + const LevelChunk::TEMap& teMap = chunk->getTileEntityMap(); + for (LevelChunk::TEMapCIterator cit = teMap.begin(); cit != teMap.end(); ++cit) { + TileEntity* te = cit->second; + if (Packet* p = te->getUpdatePacket()) { + bitStream.Reset(); + p->write(&bitStream); + raknetInstance->send(source, p); + } + } +} + +void ServerSideNetworkHandler::levelGenerated( Level* level ) +{ + this->level = level; + + if (minecraft->player) { + minecraft->player->owner = rakPeer->GetMyGUID(); + } + + level->addListener(this); +#ifndef STANDALONE_SERVER + allowIncomingConnections(minecraft->options.serverVisible); +#else + allowIncomingConnections(true); +#endif +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, PlayerEquipmentPacket* packet) +{ + if (!level) return; + + Player* player = getPlayer(source); + if (!player) return; + if (rakPeer->GetMyGUID() == player->owner) return; + + // override the player's inventory + //int slot = player->inventory->getSlot(packet->itemId, packet->itemAuxValue); + int slot = Inventory::MAX_SELECTION_SIZE; + if (slot >= 0) { + if (packet->itemId == 0) { + player->inventory->clearSlot(slot); + } else { + // @note: 128 is an ugly hack for depletable items. + // @todo: fix + ItemInstance newItem(packet->itemId, 128, packet->itemAuxValue); + player->inventory->replaceSlot(slot, &newItem); + } + player->inventory->moveToSelectedSlot(slot, true); + redistributePacket(packet, source); + } else { + LOGW("Warning: Remote player doesn't have his thing, Odd!\n"); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, PlayerArmorEquipmentPacket* packet) { + if (!level) return; + + Player* player = getPlayer(source); + if (!player) return; + if (rakPeer->GetMyGUID() == player->owner) return; + + packet->fillIn(player); + redistributePacket(packet, source); +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, InteractPacket* packet) { + if (!level) return; + + Entity* src = level->getEntity(packet->sourceId); + Entity* entity = level->getEntity(packet->targetId); + if (src && entity && src->isPlayer()) + { + Player* player = (Player*) src; + if (InteractPacket::Attack == packet->action) { + player->swing(); + minecraft->gameMode->attack(player, entity); + } + if (InteractPacket::Interact == packet->action) { + player->swing(); + minecraft->gameMode->interact(player, entity); + } + + redistributePacket(packet, source); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, AnimatePacket* packet) +{ + if (!level) + return; + + // Own player -> invalid + if (minecraft->player && minecraft->player->entityId == packet->entityId) { + return; + } + + Entity* entity = level->getEntity(packet->entityId); + if (!entity || !entity->isPlayer()) + return; + + Player* player = (Player*) entity; + + switch (packet->action) { + case AnimatePacket::Swing: + player->swing(); + break; + default: + LOGW("Unknown Animate action: %d\n", packet->action); + break; + } + redistributePacket(packet, source); +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, UseItemPacket* packet) +{ + if (!level) return; + + LOGI("UseItemPacket\n"); + Entity* entity = level->getEntity(packet->entityId); + if (entity && entity->isPlayer()) { + Player* player = (Player*) entity; + int x = packet->x, y = packet->y, z = packet->z; + Tile* t = Tile::tiles[level->getTile(x, y, z)]; + + if (t == Tile::invisible_bedrock) return; + if (t && t->use(level, x, y, z, player)) return; + if (packet->item.isNull()) return; + + ItemInstance* item = &packet->item; + + if(packet->face == 255) { + // Special case: x,y,z means direction-of-action + player->aimDirection.set(packet->x / 32768.0f, packet->y / 32768.0f, packet->z / 32768.0f); + minecraft->gameMode->useItem(player, level, item); + } + else { + minecraft->gameMode->useItemOn(player, level, item, packet->x, packet->y, packet->z, packet->face, + Vec3(packet->clickX + packet->x, packet->clickY + packet->y, packet->clickZ + packet->z)); + } + + //LOGW("Use Item not working! Out of synch?\n"); + + // Don't have to redistribute (ugg.. this will mess up), cause tileUpdated is sent + //redistributePacket(packet, source); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, EntityEventPacket* packet) { + if (!level) return; + + if (Entity* e = level->getEntity(packet->entityId)) + e->handleEntityEvent(packet->eventId); +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, PlayerActionPacket* packet) +{ + if (!level) return; + LOGI("PlayerActionPacket\n"); + Entity* entity = level->getEntity(packet->entityId); + if (entity && entity->isPlayer()) { + Player* player = (Player*) entity; + if(packet->action == PlayerActionPacket::RELEASE_USE_ITEM) { + minecraft->gameMode->releaseUsingItem(player); + return; + } + else if(packet->action == PlayerActionPacket::STOP_SLEEPING) { + player->stopSleepInBed(true, true, true); + } + } +} + +void ServerSideNetworkHandler::handle( const RakNet::RakNetGUID& source, RespawnPacket* packet ) +{ + if (!level) return; + + NetEventCallback::handle(level, source, packet ); + redistributePacket(packet, source); +} + +void ServerSideNetworkHandler::handle( const RakNet::RakNetGUID& source, SendInventoryPacket* packet ) +{ + if (!level) return; + + Entity* entity = level->getEntity(packet->entityId); + if (entity && entity->isPlayer()) { + Player* p = (Player*)entity; + p->inventory->replace(packet->items, packet->numItems); + if ((packet->extra & SendInventoryPacket::ExtraDrop) != 0) { + p->inventory->dropAll(false); + //@todo @armor : Drop armor + } + } +} + +void ServerSideNetworkHandler::handle( const RakNet::RakNetGUID& source, DropItemPacket* packet ) +{ + if (!level) return; + + Entity* entity = level->getEntity(packet->entityId); + if (entity && entity->isPlayer()) { + Player* p = (Player*)entity; + p->drop(new ItemInstance(packet->item), packet->dropType != 0); + } +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerClosePacket* packet) { + if (!level) return; + + Player* p = findPlayer(level, &source); + if (!p) return; + + if (p != minecraft->player) + static_cast(p)->doCloseContainer(); +} + +void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, ContainerSetSlotPacket* packet) { + if (!level) return; + + Player* p = findPlayer(level, &source); + if (!p) return; + + if (p->containerMenu == NULL) { + LOGW("User has no container!\n"); + return; + } + if (p->containerMenu->containerId != packet->containerId) + { + LOGW("Wrong container id: %d vs %d\n", p->containerMenu->containerId, packet->containerId); + return; + } + + if (ContainerType::FURNACE == p->containerMenu->containerType) { + //LOGI("Server:Setting slot %d: %s\n", packet->slot, packet->item.toString().c_str()); + p->containerMenu->setSlot(packet->slot, &packet->item); + //p->containerMenu->setSlot(packet->slot, packet->item.isNull()? NULL : &packet->item); + } + if (ContainerType::CONTAINER == p->containerMenu->containerType) { + //LOGI("Server:Setting slot %d: %s\n", packet->slot, packet->item.toString().c_str()); + p->containerMenu->setSlot(packet->slot, &packet->item); + //p->containerMenu->setSlot(packet->slot, packet->item.isNull()? NULL : &packet->item); + } +} + +void ServerSideNetworkHandler::handle( const RakNet::RakNetGUID& source, SetHealthPacket* packet ) +{ + for (unsigned int i = 0; i < level->players.size(); ++i) { + Player* p = level->players[i]; + if (p->owner == source) { + if (packet->health <= -32) { + int diff = packet->health - SetHealthPacket::HEALTH_MODIFY_OFFSET; + if (diff > 0) p->hurt(NULL, diff); + else if (diff < 0) p->heal(-diff); + } + break; + } + } +} + +void ServerSideNetworkHandler::handle( const RakNet::RakNetGUID& source, SignUpdatePacket* packet ) { + redistributePacket(packet, source); + if (!level) + return; + + TileEntity* te = level->getTileEntity(packet->x, packet->y, packet->z); + if (TileEntity::isType(te, TileEntityType::Sign)) { + SignTileEntity* ste = (SignTileEntity*) te; + if (ste->isEditable()) { + for (int i = 0; i < SignTileEntity::NUM_LINES; i++) { + ste->messages[i] = packet->lines[i]; + } + //ste->setChanged(); + } + } +} + +void ServerSideNetworkHandler::allowIncomingConnections( bool doAllow ) +{ + if (doAllow) { + raknetInstance->announceServer(minecraft->options.username); + } else { + raknetInstance->announceServer(""); + } + _allowIncoming = doAllow; +} + +Player* ServerSideNetworkHandler::popPendingPlayer( const RakNet::RakNetGUID& source ) +{ + if (!level) { + LOGE("Could not add player since Level is NULL!\n"); + return NULL; + } + + for (unsigned int i = 0; i < _pendingPlayers.size(); ++i) { + Player* p = _pendingPlayers[i]; + if (p->owner == source) { + _pendingPlayers.erase(_pendingPlayers.begin() + i); + return p; + } + } + return NULL; +} + +void ServerSideNetworkHandler::levelEvent( Player* source, int type, int x, int y, int z, int data ) +{ + LevelEventPacket packet(type, x, y, z, data); + redistributePacket(&packet, source? source->owner : rakPeer->GetMyGUID()); +} + +void ServerSideNetworkHandler::tileEvent( int x, int y, int z, int b0, int b1 ) +{ + TileEventPacket packet(x, y, z, b0, b1); + raknetInstance->send(packet); +} + +Player* ServerSideNetworkHandler::getPlayer( const RakNet::RakNetGUID& source ) { + for (unsigned int i = 0; i < level->players.size(); ++i) + if (source == level->players[i]->owner) return level->players[i]; + return NULL; +} diff --git a/src/network/ServerSideNetworkHandler.h b/src/network/ServerSideNetworkHandler.h new file mode 100755 index 0000000..574b2f2 --- /dev/null +++ b/src/network/ServerSideNetworkHandler.h @@ -0,0 +1,82 @@ +#ifndef _MINECRAFT_NETWORK_SERVERSIDENETWORKHANDLER_H_ +#define _MINECRAFT_NETWORK_SERVERSIDENETWORKHANDLER_H_ + + +#include "NetEventCallback.h" +#include "../raknet/RakNetTypes.h" +#include "../world/level/LevelListener.h" +#include + +class Minecraft; +class Level; +class IRakNetInstance; +class Packet; +class Player; + +class ServerSideNetworkHandler : public NetEventCallback, public LevelListener +{ +public: + ServerSideNetworkHandler(Minecraft* minecraft, IRakNetInstance* raknetInstance); + virtual ~ServerSideNetworkHandler(); + + virtual void levelGenerated(Level* level); + + virtual void tileChanged(int x, int y, int z); + virtual void tileBrightnessChanged(int x, int y, int z) { /* do nothing */ } + virtual Packet* getAddPacketFromEntity(Entity* entity); + virtual void entityAdded(Entity* e); + virtual void entityRemoved(Entity* e); + virtual void levelEvent(Player* source, int type, int x, int y, int z, int data); + virtual void tileEvent(int x, int y, int z, int b0, int b1); + + virtual void onNewClient(const RakNet::RakNetGUID& clientGuid); + virtual void onDisconnect(const RakNet::RakNetGUID& guid); + + void onReady_ClientGeneration(const RakNet::RakNetGUID& source); + void onReady_RequestedChunks(const RakNet::RakNetGUID& source); + + virtual void handle(const RakNet::RakNetGUID& source, LoginPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ReadyPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, MovePlayerPacket* packet); + //virtual void handle(const RakNet::RakNetGUID& source, PlaceBlockPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, RemoveBlockPacket* packet); + //virtual void handle(const RakNet::RakNetGUID& source, ExplodePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, RequestChunkPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, PlayerEquipmentPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, PlayerArmorEquipmentPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SetHealthPacket* packet); + //virtual void handle(const RakNet::RakNetGUID& source, TeleportEntityPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, InteractPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, AnimatePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, UseItemPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, EntityEventPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, PlayerActionPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, RespawnPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SendInventoryPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, DropItemPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerSetSlotPacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, ContainerClosePacket* packet); + virtual void handle(const RakNet::RakNetGUID& source, SignUpdatePacket* packet); + + bool allowsIncomingConnections() { return _allowIncoming; } + void allowIncomingConnections(bool doAllow); + + Player* popPendingPlayer(const RakNet::RakNetGUID& source); +private: + + void redistributePacket(Packet* packet, const RakNet::RakNetGUID& fromPlayer); + void displayGameMessage(const std::string& message); + + Player* getPlayer(const RakNet::RakNetGUID& source); +private: + + Minecraft* minecraft; + Level* level; + IRakNetInstance* raknetInstance; + RakNet::RakPeerInterface* rakPeer; + + std::vector _pendingPlayers; + bool _allowIncoming; +}; + +#endif diff --git a/src/network/command/CommandServer.cpp b/src/network/command/CommandServer.cpp new file mode 100755 index 0000000..14417c2 --- /dev/null +++ b/src/network/command/CommandServer.cpp @@ -0,0 +1,721 @@ +#include "CommandServer.h" +#include "../../client/Minecraft.h" +#include "../../world/level/Level.h" +#include "../../world/entity/Entity.h" + +#ifdef WIN32 + #define SERR(x) (WSA ## x) +#else + #define SERR(x) (x) + #include + #include +#endif + +#include "../RakNetInstance.h" +#include "../packet/ChatPacket.h" +#include "../packet/AdventureSettingsPacket.h" +#include "../../world/level/LevelSettings.h" +#include "../../world/entity/player/Player.h" +#include "../../client/gamemode/CreatorMode.h" +#include "../../client/player/LocalPlayer.h" +#include "../RakNetInstance.h" + +const std::string NullString; +const std::string CommandServer::Ok("\n"); +const std::string CommandServer::Fail("Fail\n"); + +static bool setSocketBlocking(int socket, bool blocking); + +// Return value < 0 means socket is shut down / broken +static int Readline(ConnectedClient* client, std::string& out, int maxlen); +static int Writeline(ConnectedClient* client, const std::string& in, int maxlen); + +class CameraEntity: public Mob +{ + typedef Mob super; +public: + CameraEntity(Level* level) + : super(level), + followEntityId(-1) + { + moveTo(128, 72, 128, 0, 90.0f); + } + + void follow(int entityId) { + followEntityId = entityId; + } + + void tick() { + if (followEntityId < 0) return; + + xOld = xo = x; + yOld = yo = y; + zOld = zo = z; + xRotO = xRot; + yRotO = yRot; + + Entity* e = level->getEntity(followEntityId); + if (!e) return; + setPos(e->x, e->y + 6, e->z); + } + + int getEntityTypeId() const { return 0; } + +private: + int followEntityId; +}; + +static int getSocketError() { +#ifdef WIN32 + return WSAGetLastError(); +#else + return errno; +#endif +} + +static int t = 0; + +template +static std::string ToStringOk(const T& a) { + std::stringstream ss; + ss << a << "\n"; + return ss.str(); +} +template +static std::string ToStringOk(const T& a, const T& b) { + std::stringstream ss; + ss << a << "," << b << "\n"; + return ss.str(); +} +template +static std::string ToStringOk(const T& a, const T& b, const T& c) { + std::stringstream ss; + ss << a << "," << b << "," << c << "\n"; + return ss.str(); +} + +static bool inRange(int c, int lowInclusive, int highInclusive) { + return c >= lowInclusive && c <= highInclusive; +} + +CommandServer::CommandServer( Minecraft* mc ) +: mc(mc), + serverSocket(0), + restoreBuffer(0), + inited(false) +{ + camera = new CameraEntity(mc->level); + + Pos p = mc->level->getSharedSpawnPos(); + apiPosTranslate = OffsetPosTranslator((float)-p.x, (float)-p.y, (float)-p.z); +} + +CommandServer::~CommandServer() { + _close(); + + delete camera; + delete[] restoreBuffer; +} + +void CommandServer::_close() +{ + if (inited) { + if (serverSocket > 0) { + #ifdef WIN32 + closesocket(serverSocket); + #else + close(serverSocket); + #endif + } + inited = false; + serverSocket = 0; + } +} + +bool CommandServer::init(short port) { + _close(); + + if ((serverSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + printf("Failed creating socket - 1\n"); + return false; + } + + setSocketBlocking(serverSocket, false); + + memset(&serverAddress, 0, sizeof(serverAddress)); + serverAddress.sin_family = AF_INET; + serverAddress.sin_addr.s_addr = htonl(INADDR_ANY); + serverAddress.sin_port = htons(port); + + int enabled = 1; + setsockopt(serverSocket, SOL_SOCKET, SO_REUSEADDR, (const char*)&enabled, sizeof(enabled)); + + if (bind(serverSocket, (struct sockaddr *) &serverAddress, sizeof(serverAddress)) < 0) { + printf("Failed binding socket - 2\n"); + return false; + } + + if (listen(serverSocket, 128) < 0 ) { + printf("Failed listening on socket - 3\n"); + return false; + } + + LOGI("Listening on port %d\n", port); + inited = true; + return true; +} + +std::string CommandServer::parse(ConnectedClient& client, const std::string& s) { + int b = s.find("("); + if (b == std::string::npos) { + return Fail; + } + + int e = s.rfind(")"); + if (b == std::string::npos) { + return Fail; + } + + std::string cmd = s.substr(0, b); + std::string rest = s.substr(b+1, e-b-1); + + // + // Block related get, set and query + // + if (cmd == "world.setBlock") { + int x, y, z, id, data; + bool hasData = true; + + int c = sscanf(rest.c_str(), "%d,%d,%d,%d,%d", &x, &y, &z, &id, &data); + if (!inRange(c, 4, 5)) return Fail; + if (c == 4) hasData = false; + + id &= 255; + if (id > 0 && !Tile::tiles[id]) + return Fail; + + apiPosTranslate.from(x, y, z); + + if (hasData) + mc->level->setTileAndData(x, y, z, id, data & 15); + else + mc->level->setTile(x, y, z, id); + + return NullString; + } + + if (cmd == "world.getBlock") { + int x, y, z; + if (3 != sscanf(rest.c_str(), "%d,%d,%d", &x, &y, &z)) { + return Fail; + } + apiPosTranslate.from(x, y, z); + return ToStringOk(mc->level->getTile(x, y, z)); + } + + if (cmd == "world.setBlocks") { + int x0, y0, z0, x1, y1, z1, id, data; + bool hasData = true; + + int c = sscanf(rest.c_str(), "%d,%d,%d,%d,%d,%d,%d,%d", &x0, &y0, &z0, &x1, &y1, &z1, &id, &data); + if (!inRange(c, 7, 8)) return Fail; + if (c == 7) hasData = false; + + id &= 255; + + if (id > 0 && !Tile::tiles[id]) + return Fail; + + if (x0 > x1) std::swap(x0, x1); + if (y0 > y1) std::swap(y0, y1); + if (z0 > z1) std::swap(z0, z1); + + apiPosTranslate.from(x0, y0, z0); + apiPosTranslate.from(x1, y1, z1); + + if (x0 < 0) x0 = 0; + if (y0 < 0) y0 = 0; + if (z0 < 0) z0 = 0; + if (x1 >= LEVEL_WIDTH ) x1 = LEVEL_WIDTH - 1; + if (y1 >= LEVEL_HEIGHT) y1 = LEVEL_HEIGHT - 1; + if (z1 >= LEVEL_DEPTH ) z1 = LEVEL_DEPTH - 1; + + for (int y = y0; y <= y1; ++y) + for (int z = z0; z <= z1; ++z) + for (int x = x0; x <= x1; ++x) { + if (hasData) + mc->level->setTileAndData(x, y, z, id, data & 15); + else + mc->level->setTile(x, y, z, id); + } + return NullString; + } + + if (cmd == "world.getHeight") { + int x, z; + if (2 != sscanf(rest.c_str(), "%d,%d", &x, &z)) { + return Fail; + } + x -= (int)apiPosTranslate.xo; + z -= (int)apiPosTranslate.zo; + const int y = mc->level->getHeightmap(x, z) + (int)apiPosTranslate.yo; + return ToStringOk(y); + } + + // + // Player related get, set and query + // + if (cmd == "player.setTile") { + if (!mc->player) + return Fail; + + int x, y, z; + if (3 != sscanf(rest.c_str(), "%d,%d,%d", &x, &y, &z)) { + return Fail; + } + + apiPosTranslate.from(x, y, z); + Entity* e = (Entity*) mc->player; + e->moveTo((float)x + 0.5f, (float)y, (float)z + 0.5f, e->yRot, e->xRot); + return NullString; + } + + if (cmd == "player.getTile") { + if (!mc->player) + return Fail; + + Entity* e = (Entity*) mc->player; + + int x = (int)e->x, y = (int)(e->y - e->heightOffset), z = (int)e->z; + apiPosTranslate.to(x, y, z); + return ToStringOk(x, y, z); + } + + if (cmd == "player.setPos") { + if (!mc->player) + return Fail; + + float x, y, z; + if (3 != sscanf(rest.c_str(), "%f,%f,%f", &x, &y, &z)) { + return Fail; + } + + apiPosTranslate.from(x, y, z); + Entity* e = (Entity*) mc->player; + e->moveTo(x, y, z, e->yRot, e->xRot); + return NullString; + } + + if (cmd == "player.getPos") { + if (!mc->player) + return Fail; + + Entity* e = (Entity*) mc->player; + + float x = e->x, y = e->y - e->heightOffset, z = e->z; + apiPosTranslate.to(x, y, z); + return ToStringOk(x, y, z); + } + + // + // Entity + // + if (cmd == "entity.setTile") { + int id, x, y, z; + if (4 != sscanf(rest.c_str(), "%d,%d,%d,%d", &id, &x, &y, &z)) { + return Fail; + } + Entity* e = mc->level->getEntity(id); + if (!e) return Fail; + + apiPosTranslate.from(x, y, z); + e->moveTo((float)x + 0.5f, (float)y, (float)z + 0.5f, e->yRot, e->xRot); + return NullString; + } + + if (cmd == "entity.getTile") { + int id; + if (1 != sscanf(rest.c_str(), "%d", &id)) + return Fail; + + Entity* e = mc->level->getEntity(id); + if (!e) return Fail; + + int x = (int)e->x, y = (int)(e->y - e->heightOffset), z = (int)e->z; + apiPosTranslate.to(x, y, z); + return ToStringOk(x, y, z); + } + + if (cmd == "entity.setPos") { + int id; + float x, y, z; + if (4 != sscanf(rest.c_str(), "%d,%f,%f,%f", &id, &x, &y, &z)) { + return Fail; + } + Entity* e = mc->level->getEntity(id); + if (!e) return Fail; + + apiPosTranslate.from(x, y, z); + e->moveTo(x, y, z, e->yRot, e->xRot); + return NullString; + } + + if (cmd == "entity.getPos") { + int id; + if (1 != sscanf(rest.c_str(), "%d", &id)) + return Fail; + + Entity* e = mc->level->getEntity(id); + if (!e) return Fail; + + float x = e->x, y = e->y - e->heightOffset, z = e->z; + apiPosTranslate.to(x, y, z); + return ToStringOk(x, y, z); + } + + // + // Chat + // + if (cmd == "chat.post") { +#ifndef STANDALONE_SERVER + mc->gui.addMessage(rest); +#endif + ChatPacket p(rest, false); + dispatchPacket(p); + return NullString; + } + + // + // Camera + // + if (cmd == "camera.mode.setFixed") { + camera->follow(-1); + mc->cameraTargetPlayer = camera; + return NullString; + } + if (cmd == "camera.mode.setNormal") { + int entityId = -1; + if (!rest.empty()) { + if (1 != sscanf(rest.c_str(), "%d", &entityId)) return Fail; + } + if (entityId > 0) { + Entity* e = mc->level->getEntity(entityId); + if (e && e->isMob()) mc->cameraTargetPlayer = (Mob*)e; + } else { + mc->cameraTargetPlayer = (Mob*)mc->player; + } + return NullString; + } + + if (cmd == "camera.mode.setFollow") { + int entityId = -1; + if (!rest.empty()) { + if (1 != sscanf(rest.c_str(), "%d", &entityId)) return Fail; + } + if (entityId < 0) entityId = mc->player->entityId; + + camera->follow(entityId); + mc->cameraTargetPlayer = camera; + return NullString; + } + + if (cmd == "camera.setPos") { + float x, y, z; + if (3 != sscanf(rest.c_str(), "%f,%f,%f", &x, &y, &z)) { + return Fail; + } + + apiPosTranslate.from(x, y, z); + Entity* e = (Entity*) mc->cameraTargetPlayer; + e->moveTo((float)x + 0.5f, (float)y, (float)z + 0.5f, e->yRot, e->xRot); + return NullString; + } + + // + // Entities + // + if (cmd == "world.getPlayerIds") { + std::stringstream s; + int size = mc->level->players.size(); + for (int i = 0; i < size; ++i) { + if (i != 0) s << "|"; + s << mc->level->players[i]->entityId; + } + s << "\n"; + return s.str(); + } + + // + // Set and restore Checkpoint + // + if (cmd == "world.checkpoint.save") { + if (mc->player) { + Entity* e = (Entity*) mc->player; + + static Stopwatch sw; + sw.start(); + + // Save a cuboid around the player + const int CSize = CHUNK_CACHE_WIDTH; + int cx = (int)e->x / CSize; + int cz = (int)e->z / CSize; + + restorePos = Pos(cx, (int)e->y - 8, cz); + handleCheckpoint(false); + + sw.stop(); + sw.printEvery(1, "set-checkpoint"); + } + } + + if (cmd == "world.checkpoint.restore") { + bool success = handleCheckpoint(true); + if (success) { + int xx = 16 * (restorePos.x - 2); + int zz = 16 * (restorePos.z - 2); + mc->level->setTilesDirty(xx, restorePos.y, zz, + xx + 5 * 16, restorePos.y + RestoreHeight, zz + 5 * 16); + } + return success? NullString : Fail; + } + + // + // Event queries + // + if (cmd.find("events.") == 0) { + return handleEventPollMessage(client, cmd); + } + + // Settings + if (cmd.find("player.setting") == 0 + || cmd.find("world.setting") == 0) { + int value; + static char name[1024]; + if (rest.find(",") >= 100) return Fail; + if (2 != sscanf(rest.c_str(), "%[^,],%d", name, &value)) return Fail; + return handleSetSetting(name, value); + } + + return NullString; +} + +bool CommandServer::handleCheckpoint(bool doRestore ) { + const int cx = restorePos.x; + const int cz = restorePos.z; + const int y0 = restorePos.y; + const int y1 = y0 + RestoreHeight; + const int CSize = CHUNK_CACHE_WIDTH; + const int numChunkBytes = RestoreHeight * CSize * CSize * 20 / 8; + + if (!restoreBuffer) { + if (doRestore) return false; + + int numBytes = 5 * 5 * numChunkBytes; + restoreBuffer = new unsigned char[numBytes]; + } + + int offset = 0; + for (int z = cz - 2; z <= cz + 2; ++z) + for (int x = cx - 2; x <= cx + 2; ++x) { + LevelChunk* c = mc->level->getChunk(x, z); + if (!c) continue; + + if (doRestore) { + //LOGI("restoring: %d, %d\n", x, z); + c->setBlocksAndData(restoreBuffer, 0, y0, 0, CSize, y1, CSize, offset); + } else { + //LOGI("saving: %d, %d\n", x, z); + c->getBlocksAndData(restoreBuffer, 0, y0, 0, CSize, y1, CSize, offset); + } + offset += numChunkBytes; + } + return true; +} + +void CommandServer::tick() { + if (!inited) + return; + + _updateAccept(); + _updateClients(); + ++t; + + if (mc->cameraTargetPlayer == camera) { + camera->tick(); + } +} + +void CommandServer::_updateAccept() { + int fd = accept(serverSocket, NULL, NULL); + if (fd == -1) { + int err = getSocketError(); + if (err != SERR(EWOULDBLOCK)) { + LOGE("Error when trying to accept connections. Error ID: %d\n", err); + } + return; + } + setSocketBlocking(fd, false); + clients.push_back(ConnectedClient(fd)); + + ConnectedClient& c = clients[clients.size()-1]; + c.lastPoll_blockHit = mc->level->getTime(); +} + +void CommandServer::_updateClients() { + for (int i = clients.size() - 1; i >= 0; --i) { + if (!_updateClient(clients[i])) + clients.erase(clients.begin() + i); + } +} + +bool CommandServer::_updateClient(ConnectedClient& client) { + std::string line; + int maxReadCount = 32; + + while (--maxReadCount >= 0) { + int ret = Readline(&client, line, 1024); + //printf("Read: %s @ %d\n", client.data.c_str(), t); + if (ret) + return ret > 0; + + std::string response = parse(client, line); + if (NullString != response) + if (Writeline(&client, response, 1024) < 0) + return false; + } + return true; +} + +void CommandServer::dispatchPacket( Packet& p ) { + if (!mc->netCallback || !mc->player) return; + const RakNet::RakNetGUID& guid = ((Player*)mc->player)->owner; + mc->raknetInstance->send(p); + //p.handle(guid, mc->netCallback); +} + +std::string CommandServer::handleEventPollMessage( ConnectedClient& client, const std::string& cmd ) { + ICreator* c = mc->getCreator(); + if (!c) { + return Fail; + } + + if (cmd == "events.clear") { + long t = mc->level->getTime(); + client.lastPoll_blockHit = t; + return NullString; + } + + if (cmd == "events.block.hits") { + ICreator::EventList& events = c->getTileEvents(); + std::stringstream ss; + + events.write(ss, apiPosTranslate, client.lastPoll_blockHit); + client.lastPoll_blockHit = mc->level->getTime(); + + ss << "\n"; + return ss.str(); + } + + return Fail; +} + +void updateAdventureSettingFlag(Minecraft* mc, AdventureSettingsPacket::Flags flag, bool status) { + AdventureSettingsPacket p(mc->level->adventureSettings); + p.set(flag, status); + p.fillIn(mc->level->adventureSettings); + mc->raknetInstance->send(p); +} + +std::string CommandServer::handleSetSetting( const std::string& setting, int value ) +{ + bool status = value != 0; + + if (setting == "autojump") mc->player->autoJumpEnabled = status; + + AdventureSettingsPacket::Flags flag = (AdventureSettingsPacket::Flags)0; + if (setting == "nametags_visible") flag = AdventureSettingsPacket::ShowNameTags; + if (setting == "world_immutable") flag = AdventureSettingsPacket::WorldImmutable; + + if (flag != 0) + updateAdventureSettingFlag(mc, flag, status); + + return NullString; +} + + + +bool setSocketBlocking(int socket, bool blocking) { + if (socket< 0) { + return false; + } + +#ifdef WIN32 + unsigned long mode = blocking ? 0 : 1; + return (ioctlsocket(socket, FIONBIO, &mode) == 0) ? true : false; +#else + int flags = fcntl(socket, F_GETFL, 0); + if (flags < 0) return false; + flags = blocking ? (flags & ~O_NONBLOCK) : (flags|O_NONBLOCK); + return (fcntl(socket, F_SETFL, flags) == 0) ? true : false; +#endif +} + +int Readline(ConnectedClient* client, std::string& out, int maxlen) { + static char data[2048]; + char* buffer = data; + + if (!client->data.empty()) { + memcpy(data, client->data.c_str(), client->data.length()); + client->data.clear(); + } + + bool socketError = false; + for (int n = 1; n < maxlen; n++ ) { + int rc; + char c; + if ( (rc = recv(client->socket, &c, 1, 0)) == 1 ) { + *buffer++ = c; + + if ( c == '\n' ) { + *buffer = 0; + out.assign(data, buffer + 1); + return 0; + } + } + else if ( rc == 0 ) { + socketError = true; + break; + } + else if ( rc == -1) { + int err = getSocketError(); + if (err == SERR(EINTR)) + continue; + socketError = (err != SERR(EWOULDBLOCK)); + break; + } else { + break; + } + } + + client->data.assign(data, buffer + 1); + return socketError? -1 : 1; +} + +int Writeline(ConnectedClient* client, const std::string& in, int maxlen) { + size_t left = in.length(); + const char *buffer = in.c_str(); + + while ( left > 0 ) { + int n; + if ( (n = send(client->socket, buffer, left, 0)) <= 0 ) { + int err = getSocketError(); + if (err == SERR(EINTR)) + n = 0; + else + return (err == SERR(EWOULDBLOCK))? 1 : -1; + } + left -= n; + buffer += n; + } + return 0; +} diff --git a/src/network/command/CommandServer.h b/src/network/command/CommandServer.h new file mode 100755 index 0000000..ff80ee2 --- /dev/null +++ b/src/network/command/CommandServer.h @@ -0,0 +1,77 @@ +#ifndef COMMANDSERVER_H__ +#define COMMANDSERVER_H__ + +#include +#include + +#ifdef WIN32 + #include +#else + #include + #include +#endif + +#include "../../world/PosTranslator.h" +#include "../../world/Pos.h" + +class Minecraft; +class Packet; +class CameraEntity; + +class ConnectedClient { +public: + ConnectedClient(int socketFd) + : socket(socketFd), + lastPoll_blockHit(0) + { + } + + int socket; + std::string data; + + int lastPoll_blockHit; +}; + +class CommandServer { +public: + CommandServer(Minecraft* mc); + ~CommandServer(); + + bool init(short port); + void tick(); + //void update(); +private: + std::string parse(ConnectedClient& client, const std::string& s); + void _close(); + + void _updateAccept(); + void _updateClients(); + // return true if client is in error/should be removed, false if not + bool _updateClient(ConnectedClient& client); + + bool handleCheckpoint(bool doRestore); + + void dispatchPacket(Packet& p); + std::string handleEventPollMessage( ConnectedClient& client, const std::string& cmd ); + std::string handleSetSetting(const std::string& setting, int value); + + bool inited; + int serverSocket; + struct sockaddr_in serverAddress; + + Minecraft* mc; + OffsetPosTranslator apiPosTranslate; + + static const int RestoreHeight = 48; + unsigned char* restoreBuffer; + Pos restorePos; + + CameraEntity* camera; + + std::vector clients; + + static const std::string Ok; + static const std::string Fail; +}; + +#endif /*COMMANDSERVER_H__*/ diff --git a/src/network/packet/AddEntityPacket.h b/src/network/packet/AddEntityPacket.h new file mode 100755 index 0000000..9c31089 --- /dev/null +++ b/src/network/packet/AddEntityPacket.h @@ -0,0 +1,93 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AddEntityPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AddEntityPacket_H__ + +#include "../Packet.h" +#include "../../world/entity/Entity.h" + +class AddEntityPacket : public Packet +{ +public: + AddEntityPacket() {} + + AddEntityPacket(const Entity* e, int data = 0) + : entityId(e->entityId), + type(e->getEntityTypeId()), + x(e->x), + y(e->y), + z(e->z), + _data(data) + { + if (hasMovementData()) { + xd = e->xd; + yd = e->yd; + zd = e->zd; + } + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADDENTITY)); + bitStream->Write(entityId); + unsigned char bType = (unsigned char)type; + bitStream->Write(bType); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(_data); + + if (hasMovementData()) { + const float M = 3.9f; + short xa = (short)(8000.0f * Mth::clamp(xd, -M, M)); + short ya = (short)(8000.0f * Mth::clamp(yd, -M, M)); + short za = (short)(8000.0f * Mth::clamp(zd, -M, M)); + + bitStream->Write(xa); + bitStream->Write(ya); + bitStream->Write(za); + } + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + unsigned char bType; + bitStream->Read(bType); + type = bType; + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(_data); + + if (hasMovementData()) { + short xa, ya, za; + bitStream->Read(xa); + bitStream->Read(ya); + bitStream->Read(za); + xd = xa / 8000.0f; + yd = ya / 8000.0f; + zd = za / 8000.0f; + } + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (AddEntityPacket*)this); + } + + bool hasMovementData() { + return _data > 0; + } + int data() { + return _data; + } + +public: + int entityId; + float x, y, z; + float xd, yd, zd; + int type; +private: + int _data; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__AddEntityPacket_H__*/ diff --git a/src/network/packet/AddItemEntityPacket.h b/src/network/packet/AddItemEntityPacket.h new file mode 100755 index 0000000..5e2564a --- /dev/null +++ b/src/network/packet/AddItemEntityPacket.h @@ -0,0 +1,78 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AddItemEntityPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AddItemEntityPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" +#include "../../world/entity/item/ItemEntity.h" +#include "../../world/item/ItemInstance.h" +#include "../../util/Mth.h" + +class AddItemEntityPacket: public Packet { +public: + AddItemEntityPacket() { + } + + AddItemEntityPacket(const ItemEntity* itemEntity) + : id(itemEntity->entityId), + itemId(itemEntity->item.id), + itemCount(itemEntity->item.count), + auxValue(itemEntity->item.getAuxValue()), + x(itemEntity->x), + y(itemEntity->y), + z(itemEntity->z), + _xa((signed char) (itemEntity->xd * 128.0)), + _ya((signed char) (itemEntity->yd * 128.0)), + _za((signed char) (itemEntity->zd * 128.0)) + { + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(id); + bitStream->Read(itemId); + bitStream->Read(itemCount); + bitStream->Read(auxValue); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(_xa); + bitStream->Read(_ya); + bitStream->Read(_za); + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADDITEMENTITY)); + bitStream->Write(id); + bitStream->Write(itemId); + bitStream->Write(itemCount); + bitStream->Write(auxValue); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(_xa); + bitStream->Write(_ya); + bitStream->Write(_za); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (AddItemEntityPacket*)this); + } + + float xa() { return (float)(_xa) / 128.0f; } + float ya() { return (float)(_ya) / 128.0f; } + float za() { return (float)(_za) / 128.0f; } + + int id; + float x, y, z; + + short itemId; + short auxValue; + unsigned char itemCount; +private: + signed char _xa, _ya, _za; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__AddItemEntityPacket_H__*/ diff --git a/src/network/packet/AddMobPacket.h b/src/network/packet/AddMobPacket.h new file mode 100755 index 0000000..6ca63be --- /dev/null +++ b/src/network/packet/AddMobPacket.h @@ -0,0 +1,78 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AddMobPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AddMobPacket_H__ + +#include "../Packet.h" +#include "../../world/entity/Mob.h" +#include "../../util/RakDataIO.h" + +class AddMobPacket : public Packet +{ +public: + AddMobPacket() + : _entityData(NULL) + { + } + + ~AddMobPacket() { + for (unsigned int i = 0; i < unpack.size(); ++i) + delete unpack[i]; + } + + AddMobPacket(const Mob* mob) + : entityId(mob->entityId), + type(mob->getEntityTypeId()), + x(mob->x), + y(mob->y), + z(mob->z), + xRot(mob->xRot), + yRot(mob->yRot), + _entityData(mob->getEntityData()) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADDMOB)); + bitStream->Write(entityId); + bitStream->Write(type); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(PacketUtil::Rot_degreesToChar(yRot)); + bitStream->Write(PacketUtil::Rot_degreesToChar(xRot)); + RakDataOutput dos(*bitStream); + _entityData->packAll(&dos); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(type); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + char rx, ry; + bitStream->Read(ry); + bitStream->Read(rx); + RakDataInput dis(*bitStream); + unpack = SynchedEntityData::unpack(&dis); + yRot = PacketUtil::Rot_degreesToChar(ry); + xRot = PacketUtil::Rot_charToDegrees(rx); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (AddMobPacket*)this); + } + +public: + int entityId; + int type; + float x, y, z; + float xRot, yRot; + SynchedEntityData::DataList unpack; +private: + const SynchedEntityData* _entityData; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__AddMobPacket_H__*/ diff --git a/src/network/packet/AddPaintingPacket.h b/src/network/packet/AddPaintingPacket.h new file mode 100755 index 0000000..c842c8d --- /dev/null +++ b/src/network/packet/AddPaintingPacket.h @@ -0,0 +1,48 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AddPaintingPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AddPaintingPacket_H__ +#include "../Packet.h" +#include "../../world/entity/Painting.h" +class AddPaintingPacket : public Packet { +public: + AddPaintingPacket() : entityId(0), xTile(0), yTile(0), zTile(0), dir(-1) { + + } + AddPaintingPacket(Painting* painting) { + entityId = painting->entityId; + xTile = painting->xTile; + yTile = painting->yTile; + zTile = painting->zTile; + dir = painting->dir; + motive = painting->motive->name; + } + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADDPAINTING)); + bitStream->Write(entityId); + bitStream->Write(xTile); + bitStream->Write(yTile); + bitStream->Write(zTile); + bitStream->Write(dir); + RakNet::RakString rakMotive(motive.c_str()); + bitStream->Write(rakMotive); + } + void read(RakNet::BitStream* bitStream) { + bitStream->Read(entityId); + bitStream->Read(xTile); + bitStream->Read(yTile); + bitStream->Read(zTile); + bitStream->Read(dir); + RakNet::RakString rakMotive; + bitStream->Read(rakMotive); + motive = std::string(rakMotive.C_String()); + } + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (AddPaintingPacket*)this); + } +public: + int entityId; + int xTile, yTile, zTile; + int dir; + std::string motive; +}; + +#endif /* NET_MINECRAFT_NETWORK_PACKET__AddPaintingPacket_H__ */ \ No newline at end of file diff --git a/src/network/packet/AddPlayerPacket.h b/src/network/packet/AddPlayerPacket.h new file mode 100755 index 0000000..c7ec3aa --- /dev/null +++ b/src/network/packet/AddPlayerPacket.h @@ -0,0 +1,93 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AddPlayerPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AddPlayerPacket_H__ + +#include "../Packet.h" +#include "../../world/entity/player/Player.h" +#include "../../world/entity/player/Inventory.h" + +class AddPlayerPacket : public Packet +{ +public: + AddPlayerPacket() + : _entityData(NULL) + {} + + AddPlayerPacket(const Player* p) + : owner(p->owner), + name(p->name.c_str()), + entityId(p->entityId), + x(p->x), + y(p->y - p->heightOffset), + z(p->z), + xRot(p->xRot), + yRot(p->yRot), + carriedItemId(0), + carriedItemAuxValue(0), + _entityData(p->getEntityData()) + { + if (ItemInstance* item = p->inventory->getSelected()) { + carriedItemId = item->id; + carriedItemAuxValue = item->getAuxValue(); + } + } + + ~AddPlayerPacket() { + for (unsigned int i = 0; i < unpack.size(); ++i) + delete unpack[i]; + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADDPLAYER)); + + bitStream->Write(owner); + bitStream->Write(name); + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(PacketUtil::Rot_degreesToChar(yRot)); + bitStream->Write(PacketUtil::Rot_degreesToChar(xRot)); + bitStream->Write(carriedItemId); + bitStream->Write(carriedItemAuxValue); + RakDataOutput dos(*bitStream); + _entityData->packAll(&dos); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(owner); + bitStream->Read(name); + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + char rx, ry; + bitStream->Read(ry); + bitStream->Read(rx); + bitStream->Read(carriedItemId); + bitStream->Read(carriedItemAuxValue); + RakDataInput dis(*bitStream); + unpack = SynchedEntityData::unpack(&dis); + yRot = PacketUtil::Rot_degreesToChar(ry); + xRot = PacketUtil::Rot_charToDegrees(rx); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (AddPlayerPacket*)this); + } + + RakNet::RakNetGUID owner; + RakNet::RakString name; + int entityId; + float x, y, z; + float xRot, yRot; + short carriedItemId; + short carriedItemAuxValue; + SynchedEntityData::DataList unpack; +private: + const SynchedEntityData* _entityData; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__AddPlayerPacket_H__*/ diff --git a/src/network/packet/AdventureSettingsPacket.h b/src/network/packet/AdventureSettingsPacket.h new file mode 100755 index 0000000..3ad0865 --- /dev/null +++ b/src/network/packet/AdventureSettingsPacket.h @@ -0,0 +1,67 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AdventureSettingsPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AdventureSettingsPacket_H__ + +#include "../Packet.h" +#include "../../world/level/Level.h" + +class AdventureSettingsPacket: public Packet +{ +public: + enum Flags { + WorldImmutable = 1, + NoPvP = 2, + NoPvM = 4, + NoMvP = 8, + StaticTime = 16, + ShowNameTags = 32, + }; + + AdventureSettingsPacket() {} + + AdventureSettingsPacket(const AdventureSettings& settings) + : flags(0) + { + set(WorldImmutable, settings.immutableWorld); + set(NoPvP, settings.noPvP); + set(NoPvM, settings.noPvM); + set(NoMvP, settings.noMvP); + set(StaticTime, !settings.doTickTime); + set(ShowNameTags, settings.showNameTags); + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADVENTURESETTINGS)); + bitStream->Write(flags); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(flags); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (AdventureSettingsPacket*)this); + } + + void fillIn( AdventureSettings& adventureSettings ) const + { + adventureSettings.immutableWorld= isSet(WorldImmutable); + adventureSettings.noPvP = isSet(NoPvP); + adventureSettings.noPvM = isSet(NoPvM); + adventureSettings.noMvP = isSet(NoMvP); + adventureSettings.doTickTime = !isSet(StaticTime); + adventureSettings.showNameTags = isSet(ShowNameTags); + } + + unsigned int flags; + + void set(Flags flag, bool status) { status? set(flag) : clear(flag); } + void set(Flags flag) { flags |= flag; } + void toggle(Flags flag){ flags ^= flag; } + void clear(Flags flag) { flags &= ~flag; } + bool isSet(Flags flag) const { return (flags & flag) != 0; } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__AdventureSettingsPacket_H__*/ diff --git a/src/network/packet/AnimatePacket.h b/src/network/packet/AnimatePacket.h new file mode 100755 index 0000000..81d3bfc --- /dev/null +++ b/src/network/packet/AnimatePacket.h @@ -0,0 +1,46 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__AnimatePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__AnimatePacket_H__ + +#include "../Packet.h" + +class AnimatePacket: public Packet +{ +public: + static const int Swing = 1; + static const int WAKE_UP = 3; + + int entityId; + char action; + + AnimatePacket() {} + + AnimatePacket(int action, int entityId) + : action(action), + entityId(entityId) + {} + AnimatePacket(int action, Entity* e) + : action(action), + entityId(e->entityId) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ANIMATE)); + + bitStream->Write(action); + bitStream->Write(entityId); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(action); + bitStream->Read(entityId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (AnimatePacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__AnimatePacket_H__*/ diff --git a/src/network/packet/ChatPacket.h b/src/network/packet/ChatPacket.h new file mode 100755 index 0000000..5d992a8 --- /dev/null +++ b/src/network/packet/ChatPacket.h @@ -0,0 +1,41 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ChatPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ChatPacket_H__ +#include "../Packet.h" +#include "../..//world/entity/player/Player.h" + +class ChatPacket: public Packet +{ +public: + static const int MAX_CHAT_LENGTH = 100; + static const int MAX_LENGTH = MAX_CHAT_LENGTH + Player::MAX_NAME_LENGTH; + ChatPacket() { + } + + ChatPacket(std::string message, bool isSystem = true) { + if(message.length() > MAX_LENGTH) { + message = message.substr(0, MAX_LENGTH); + } + this->message = message; + this->isSystem = isSystem; + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CHAT)); + bitStream->Write(message.c_str()); + } + + void read(RakNet::BitStream* bitStream) { + char buff[MAX_LENGTH + 30]; + bitStream->Read(buff); + message = buff; + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ChatPacket*)this); + } + + std::string message; + bool isSystem; +}; + +#endif /* NET_MINECRAFT_NETWORK_PACKET__ChatPacket_H__ */ \ No newline at end of file diff --git a/src/network/packet/ChunkDataPacket.h b/src/network/packet/ChunkDataPacket.h new file mode 100755 index 0000000..51f1719 --- /dev/null +++ b/src/network/packet/ChunkDataPacket.h @@ -0,0 +1,77 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ChunkDataPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ChunkDataPacket_H__ + +#include "../Packet.h" +#include "../../world/level/chunk/LevelChunk.h" + +class ChunkDataPacket : public Packet +{ +public: + + int x, z; + RakNet::BitStream chunkData; + LevelChunk* chunk; + + ChunkDataPacket() + { + } + + ChunkDataPacket(int x, int z, LevelChunk* chunk) + : x(x), + z(z), + chunk(chunk) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CHUNKDATA)); + + bitStream->Write(x); + bitStream->Write(z); + + unsigned char* blockIds = chunk->getBlockData(); + DataLayer& blockData = chunk->data; + + const int setSize = LEVEL_HEIGHT / 8; + const int setShift = 4; // power of LEVEL_HEIGHT / 8 + + chunkData.Reset(); + for (int i = 0; i < CHUNK_COLUMNS; i++) + { + unsigned char updateBits = chunk->updateMap[i]; + chunkData.Write(updateBits); + + if (updateBits > 0) + { + int colDataPosition = (i % CHUNK_WIDTH) << 11 | (i / CHUNK_WIDTH) << 7; + + for (int set = 0; set < 8; set++) + { + if ((updateBits & (1 << set)) != 0) + { + chunkData.Write((const char*)(&blockIds[colDataPosition + (set << setShift)]), setSize); + // block data is only 4 bits per block + chunkData.Write((const char*)(&blockData.data[(colDataPosition + (set << setShift)) >> 1]), setSize >> 1); + } + } + } + } + + bitStream->Write(chunkData); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(z); + bitStream->Read(chunkData); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (ChunkDataPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ChunkDataPacket_H__*/ diff --git a/src/network/packet/ContainerAckPacket.h b/src/network/packet/ContainerAckPacket.h new file mode 100755 index 0000000..7d60de6 --- /dev/null +++ b/src/network/packet/ContainerAckPacket.h @@ -0,0 +1,43 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ContainerAckPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ContainerAckPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class ContainerAckPacket: public Packet +{ +public: + ContainerAckPacket() { + } + + ContainerAckPacket(int containerId, short uid, bool accepted) + : containerId(containerId), + uid(uid), + accepted(accepted) + { + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CONTAINERACK)); + bitStream->Write(containerId); + bitStream->Write(uid); + bitStream->Write(accepted); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(containerId); + bitStream->Read(uid); + bitStream->Read(accepted); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ContainerAckPacket*)this); + } + + short uid; + unsigned char containerId; + bool accepted; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ContainerAckPacket_H__*/ diff --git a/src/network/packet/ContainerClosePacket.h b/src/network/packet/ContainerClosePacket.h new file mode 100755 index 0000000..cdfe865 --- /dev/null +++ b/src/network/packet/ContainerClosePacket.h @@ -0,0 +1,35 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ContainerClosePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ContainerClosePacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class ContainerClosePacket: public Packet +{ +public: + ContainerClosePacket() { + } + + ContainerClosePacket(int containerId) + : containerId(containerId) + { + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(containerId); + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CONTAINERCLOSE)); + bitStream->Write(containerId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ContainerClosePacket*)this); + } + + unsigned char containerId; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ContainerClosePacket_H__*/ diff --git a/src/network/packet/ContainerOpenPacket.h b/src/network/packet/ContainerOpenPacket.h new file mode 100755 index 0000000..1009a37 --- /dev/null +++ b/src/network/packet/ContainerOpenPacket.h @@ -0,0 +1,47 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ContainerOpenPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ContainerOpenPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class ContainerOpenPacket: public Packet +{ +public: + ContainerOpenPacket() { + } + + ContainerOpenPacket(int containerId, int type, const std::string& title, int size) + : containerId(containerId), + type(type), + title(title.c_str()), + size(size) + { + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CONTAINEROPEN)); + bitStream->Write(containerId); + bitStream->Write(type); + bitStream->Write(size); + bitStream->Write(title); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(containerId); + bitStream->Read(type); + bitStream->Read(size); + bitStream->Read(title); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ContainerOpenPacket*)this); + } + + RakNet::RakString title; + unsigned char containerId; + unsigned char type; + unsigned char size; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ContainerOpenPacket_H__*/ diff --git a/src/network/packet/ContainerSetContentPacket.h b/src/network/packet/ContainerSetContentPacket.h new file mode 100755 index 0000000..76dd26b --- /dev/null +++ b/src/network/packet/ContainerSetContentPacket.h @@ -0,0 +1,44 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ContainerSetContentPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ContainerSetContentPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class ContainerSetContentPacket: public Packet +{ +public: + ContainerSetContentPacket() { + } + + ContainerSetContentPacket(int containerId, const std::vector& newItems) + : containerId(containerId), + items(newItems.begin(), newItems.end()) + { + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CONTAINERSETCONTENT)); + bitStream->Write(containerId); + bitStream->Write((short)items.size()); + for (unsigned int i = 0; i < items.size(); ++i) + PacketUtil::writeItemInstance(items[i], bitStream); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(containerId); + short numItems; + bitStream->Read(numItems); + for (int i = 0; i < numItems; ++i) + items.push_back( PacketUtil::readItemInstance(bitStream) ); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ContainerSetContentPacket*)this); + } + + unsigned char containerId; + std::vector items; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ContainerSetContentPacket_H__*/ diff --git a/src/network/packet/ContainerSetDataPacket.h b/src/network/packet/ContainerSetDataPacket.h new file mode 100755 index 0000000..d85b28d --- /dev/null +++ b/src/network/packet/ContainerSetDataPacket.h @@ -0,0 +1,43 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ContainerSetDataPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ContainerSetDataPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class ContainerSetDataPacket: public Packet +{ +public: + ContainerSetDataPacket() { + } + + ContainerSetDataPacket(int containerId, int id, int value) + : containerId(containerId), + id(id), + value(value) + { + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CONTAINERSETDATA)); + bitStream->Write(containerId); + bitStream->Write(id); + bitStream->Write(value); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(containerId); + bitStream->Read(id); + bitStream->Read(value); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ContainerSetDataPacket*)this); + } + + short id; + short value; + unsigned char containerId; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ContainerSetDataPacket_H__*/ diff --git a/src/network/packet/ContainerSetSlotPacket.h b/src/network/packet/ContainerSetSlotPacket.h new file mode 100755 index 0000000..fd4c73e --- /dev/null +++ b/src/network/packet/ContainerSetSlotPacket.h @@ -0,0 +1,64 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ContainerSetSlotPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ContainerSetSlotPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" +#include "../../world/item/ItemInstance.h" + +// Note: This can be seen as "ContainerWantSetSlotPacket" when sent from +// client to server. Currently, the client handles side-effects relating +// to it's own inventory, regardless of the success of the operation. +class ContainerSetSlotPacket: public Packet +{ +public: + static const char SETTYPE_SET = 0; + static const char SETTYPE_ADD = 1; + //static const int SETTYPE_SUB = 2; + static const char SETTYPE_TAKE = 5; + + ContainerSetSlotPacket() { + } + + //@todo: pointer parameter? + ContainerSetSlotPacket(int containerId, int slot, const ItemInstance& item) + : containerId(containerId), + slot(slot), + item(item), + setType(SETTYPE_SET) + //item(item? *item : ItemInstance()) + { + } + ContainerSetSlotPacket(char setType, int containerId, int slot, const ItemInstance& item) + : setType(setType), + containerId(containerId), + slot(slot), + item(item) + //item(item? *item : ItemInstance()) + { + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_CONTAINERSETSLOT)); + bitStream->Write(containerId); + bitStream->Write(slot); + PacketUtil::writeItemInstance(item, bitStream); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(containerId); + bitStream->Read(slot); + item = PacketUtil::readItemInstance(bitStream); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (ContainerSetSlotPacket*)this); + } + + unsigned char setType; + unsigned char containerId; + short slot; + ItemInstance item; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ContainerSetSlotPacket_H__*/ diff --git a/src/network/packet/DropItemPacket.h b/src/network/packet/DropItemPacket.h new file mode 100755 index 0000000..9084efa --- /dev/null +++ b/src/network/packet/DropItemPacket.h @@ -0,0 +1,45 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__DropItemPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__DropItemPacket_H__ + +#include "../Packet.h" + +class DropItemPacket: public Packet +{ +public: + DropItemPacket() + { + } + + DropItemPacket(int entityId, const ItemInstance& item) + : entityId(entityId), + item(item), + dropType(0) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_DROPITEM)); + bitStream->Write(entityId); + bitStream->Write(dropType); + PacketUtil::writeItemInstance(item, bitStream); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(dropType); + item = PacketUtil::readItemInstance(bitStream); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (DropItemPacket*)this); + } + + int entityId; + unsigned char dropType; + ItemInstance item; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__DropItemPacket_H__*/ diff --git a/src/network/packet/EntityEventPacket.h b/src/network/packet/EntityEventPacket.h new file mode 100755 index 0000000..bc2759c --- /dev/null +++ b/src/network/packet/EntityEventPacket.h @@ -0,0 +1,40 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__EntityEventPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__EntityEventPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class EntityEventPacket: public Packet { +public: + EntityEventPacket() {} + + EntityEventPacket(int entityId, char eventId) + : entityId(entityId), + eventId(eventId) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ENTITYEVENT)); + bitStream->Write(entityId); + bitStream->Write(eventId); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(eventId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (EntityEventPacket*)this); + } + + int entityId; + unsigned char eventId; + +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__EntityEventPacket_H__*/ diff --git a/src/network/packet/ExplodePacket.h b/src/network/packet/ExplodePacket.h new file mode 100755 index 0000000..9cd9adc --- /dev/null +++ b/src/network/packet/ExplodePacket.h @@ -0,0 +1,76 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ExplodePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ExplodePacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" +#include "../../world/level/Explosion.h" + +class ExplodePacket: public Packet +{ +public: + float x, y, z; + float r; + std::vector toBlow; + + ExplodePacket() {} + + ExplodePacket(float x, float y, float z, float r, const TilePosSet& tiles) + : x(x), + y(y), + z(z), + r(r), + toBlow(tiles.begin(), tiles.end()) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_EXPLODE)); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(r); + int xp = (int)x; + int yp = (int)y; + int zp = (int)z; + + int count = (int)toBlow.size(); + bitStream->Write(count); + for (int i = 0; i < count; ++i) { + const TilePos& tp = toBlow[i]; + bitStream->Write((signed char)(tp.x - xp)); + bitStream->Write((signed char)(tp.y - yp)); + bitStream->Write((signed char)(tp.z - zp)); + } + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(r); + int xp = (int)x; + int yp = (int)y; + int zp = (int)z; + + // Write the tileset for the exploded tiles + int count; + bitStream->Read(count); + toBlow.reserve(count); + for (int i = 0; i < count; ++i) { + signed char xx,yy,zz; + bitStream->Read(xx); + bitStream->Read(yy); + bitStream->Read(zz); + toBlow.push_back( TilePos(xp + xx, yp + yy, zp + zz) ); + } + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (ExplodePacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__ExplodePacket_H__*/ diff --git a/src/network/packet/HurtArmorPacket.h b/src/network/packet/HurtArmorPacket.h new file mode 100755 index 0000000..5088905 --- /dev/null +++ b/src/network/packet/HurtArmorPacket.h @@ -0,0 +1,32 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__HurtArmorPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__HurtArmorPacket_H__ + +#include "../Packet.h" + +class HurtArmorPacket: public Packet +{ +public: + HurtArmorPacket() {} + + HurtArmorPacket(int dmg) + : dmg(dmg) + {} + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_HURTARMOR)); + + bitStream->Write(dmg); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(dmg); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (HurtArmorPacket*)this); + } + + signed char dmg; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__HurtArmorPacket_H__*/ diff --git a/src/network/packet/InteractPacket.h b/src/network/packet/InteractPacket.h new file mode 100755 index 0000000..9daf160 --- /dev/null +++ b/src/network/packet/InteractPacket.h @@ -0,0 +1,47 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__InteractPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__InteractPacket_H__ + +#include "../Packet.h" + +class InteractPacket : public Packet +{ +public: + static const int Interact = 1; + static const int Attack = 2; + + char action; + int sourceId; + int targetId; + + InteractPacket() { + } + + InteractPacket(char action, int sourceId, int targetId) + : action(action), + sourceId(sourceId), + targetId(targetId) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_INTERACT)); + + bitStream->Write(action); + bitStream->Write(sourceId); + bitStream->Write(targetId); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(action); + bitStream->Read(sourceId); + bitStream->Read(targetId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (InteractPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__InteractPacket_H__*/ diff --git a/src/network/packet/LevelEventPacket.h b/src/network/packet/LevelEventPacket.h new file mode 100755 index 0000000..2cb5741 --- /dev/null +++ b/src/network/packet/LevelEventPacket.h @@ -0,0 +1,49 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__LevelEventPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__LevelEventPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class LevelEventPacket: public Packet { +public: + LevelEventPacket() {} + + LevelEventPacket(int eventId, int x, int y, int z, int data) + : eventId(eventId), + x(x), + y(y), + z(z), + data(data) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_LEVELEVENT)); + bitStream->Write(eventId); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(data); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(eventId); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(data); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (LevelEventPacket*)this); + } + + short eventId; + short x, y, z; + int data; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__LevelEventPacket_H__*/ diff --git a/src/network/packet/LoginPacket.h b/src/network/packet/LoginPacket.h new file mode 100755 index 0000000..b44a44a --- /dev/null +++ b/src/network/packet/LoginPacket.h @@ -0,0 +1,51 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__LoginPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__LoginPacket_H__ + +#include "../Packet.h" + +class LoginPacket : public Packet +{ +public: + RakNet::RakString clientName; + int clientNetworkVersion; + int clientNetworkLowestSupportedVersion; + + LoginPacket() + : clientNetworkVersion(-1), + clientNetworkLowestSupportedVersion(-1) + { + } + + LoginPacket(const RakNet::RakString& clientName, int clientVersion) + : clientName(clientName), + clientNetworkVersion(clientVersion), + clientNetworkLowestSupportedVersion(clientVersion) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_LOGIN)); + bitStream->Write(clientName); + bitStream->Write(clientNetworkVersion); + bitStream->Write(clientNetworkLowestSupportedVersion); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(clientName); + // First versions didn't send the client version + //LOGI("unread: %d\n", bitStream->GetNumberOfUnreadBits()); + if (bitStream->GetNumberOfUnreadBits() > 0) { + bitStream->Read(clientNetworkVersion); + bitStream->Read(clientNetworkLowestSupportedVersion); + } + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (LoginPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__LoginPacket_H__*/ diff --git a/src/network/packet/LoginStatusPacket.h b/src/network/packet/LoginStatusPacket.h new file mode 100755 index 0000000..b194f8f --- /dev/null +++ b/src/network/packet/LoginStatusPacket.h @@ -0,0 +1,40 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__LoginStatusPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__LoginStatusPacket_H__ + +#include "../Packet.h" + +namespace LoginStatus { + const int Success = 0; + const int Failed_ClientOld = 1; + const int Failed_ServerOld = 2; +} + +class LoginStatusPacket : public Packet { +public: + LoginStatusPacket() + { + } + LoginStatusPacket(int status) + : status(status) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_LOGINSTATUS)); + bitStream->Write(status); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(status); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (LoginStatusPacket*)this); + } + + int status; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__LoginStatusPacket_H__*/ diff --git a/src/network/packet/MessagePacket.h b/src/network/packet/MessagePacket.h new file mode 100755 index 0000000..49a274e --- /dev/null +++ b/src/network/packet/MessagePacket.h @@ -0,0 +1,39 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__MessagePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__MessagePacket_H__ + +#include "../Packet.h" + +class MessagePacket : public Packet +{ +public: + + RakNet::RakString message; + + MessagePacket() + { + } + + MessagePacket(const RakNet::RakString& message) + : message(message) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_MESSAGE)); + + bitStream->Write(message); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(message); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (MessagePacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__MessagePacket_H__*/ diff --git a/src/network/packet/MoveEntityPacket.h b/src/network/packet/MoveEntityPacket.h new file mode 100755 index 0000000..7a619f2 --- /dev/null +++ b/src/network/packet/MoveEntityPacket.h @@ -0,0 +1,78 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__MoveEntityPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__MoveEntityPacket_H__ + +#include "../Packet.h" + +class MoveEntityPacket: public Packet +{ +public: + MoveEntityPacket() + : hasRot(false) + {} + + // PACKET_MOVEENTITY is unknown and undefined (and not used) + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_MOVEENTITY)); + } + + void read(RakNet::BitStream* bitStream) {}; + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (MoveEntityPacket*)this); + } + + int entityId; + float x, y, z; + float xRot; + float yRot; + bool hasRot; +}; + +class MoveEntityPacket_PosRot: public MoveEntityPacket +{ + typedef MoveEntityPacket super; +public: + MoveEntityPacket_PosRot() { + hasRot = true; + } + + //MoveEntityPacket_PosRot(int entityId, float x, float y, float z, float yRot, float xRot) { + // set(entityId, x, y, z, yRot, xRot); + //} + + MoveEntityPacket_PosRot(const Entity* e) { + set(e->entityId, e->x, e->y - e->heightOffset, e->z, e->yRot, e->xRot); + } + + void set(int entityId, float x, float y, float z, float yRot, float xRot) { + this->entityId = entityId; + this->x = x; + this->y = y; + this->z = z; + this->xRot = xRot; + this->yRot = yRot; + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_MOVEENTITY_POSROT)); + + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(yRot); + bitStream->Write(xRot); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(yRot); + bitStream->Read(xRot); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__MoveEntityPacket_H__*/ diff --git a/src/network/packet/MovePlayerPacket.h b/src/network/packet/MovePlayerPacket.h new file mode 100755 index 0000000..8555432 --- /dev/null +++ b/src/network/packet/MovePlayerPacket.h @@ -0,0 +1,54 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__MovePlayerPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__MovePlayerPacket_H__ + +#include "../Packet.h" + +class MovePlayerPacket : public Packet +{ +public: + + int entityId; + float x, y, z, xRot, yRot; + + MovePlayerPacket() + { + } + + MovePlayerPacket(int entityId, float x, float y, float z, float xRot, float yRot) + : entityId(entityId), + x(x), + y(y), + z(z), + xRot(xRot), + yRot(yRot) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_MOVEPLAYER)); + + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(yRot); + bitStream->Write(xRot); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(yRot); + bitStream->Read(xRot); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (MovePlayerPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__MovePlayerPacket_H__*/ diff --git a/src/network/packet/PacketInclude.h b/src/network/packet/PacketInclude.h new file mode 100755 index 0000000..09aeae8 --- /dev/null +++ b/src/network/packet/PacketInclude.h @@ -0,0 +1,54 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__PacketInclude_H__ +#define NET_MINECRAFT_NETWORK_PACKET__PacketInclude_H__ + +#include "AddEntityPacket.h" +#include "AddItemEntityPacket.h" +#include "AddMobPacket.h" +#include "AddPaintingPacket.h" +#include "AddPlayerPacket.h" +#include "AnimatePacket.h" +#include "AdventureSettingsPacket.h" +#include "ChatPacket.h" +#include "ContainerAckPacket.h" +#include "ContainerOpenPacket.h" +#include "ContainerClosePacket.h" +#include "ContainerSetDataPacket.h" +#include "ContainerSetSlotPacket.h" +#include "ContainerSetContentPacket.h" +#include "ChunkDataPacket.h" +#include "DropItemPacket.h" +#include "EntityEventPacket.h" +#include "ExplodePacket.h" +#include "HurtArmorPacket.h" +#include "InteractPacket.h" +#include "LevelEventPacket.h" +#include "LoginPacket.h" +#include "LoginStatusPacket.h" +#include "MessagePacket.h" +#include "MoveEntityPacket.h" +#include "MovePlayerPacket.h" +#include "PlaceBlockPacket.h" +#include "PlayerActionPacket.h" +#include "PlayerEquipmentPacket.h" +#include "PlayerArmorEquipmentPacket.h" +#include "ReadyPacket.h" +#include "RemoveBlockPacket.h" +#include "RemoveEntityPacket.h" +#include "RemovePlayerPacket.h" +#include "RespawnPacket.h" +#include "RequestChunkPacket.h" +#include "SendInventoryPacket.h" +#include "SetEntityDataPacket.h" +#include "SetEntityMotionPacket.h" +#include "SetHealthPacket.h" +#include "SetSpawnPositionPacket.h" +#include "SetTimePacket.h" +#include "SignUpdatePacket.h" +#include "StartGamePacket.h" +#include "TakeItemEntityPacket.h" +//#include "TeleportEntityPacket.h" +#include "TileEventPacket.h" +#include "UpdateBlockPacket.h" +#include "UseItemPacket.h" + +#endif /*NET_MINECRAFT_NETWORK_PACKET__PacketInclude_H__*/ diff --git a/src/network/packet/PlaceBlockPacket.h b/src/network/packet/PlaceBlockPacket.h new file mode 100755 index 0000000..c5a8484 --- /dev/null +++ b/src/network/packet/PlaceBlockPacket.h @@ -0,0 +1,60 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__PlaceBlockPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__PlaceBlockPacket_H__ + +#include "../Packet.h" + +class PlaceBlockPacket : public Packet +{ +public: + + // the id of the player who is placing the block, used to animate the player + int entityId; + int x, z; + unsigned char y, facing, blockId, blockData; + + PlaceBlockPacket() + { + } + + PlaceBlockPacket(int entityId, int x, int y, int z, int facing, int blockId, int blockData) + : entityId(entityId), + x(x), + y((unsigned char)(y & 0xff)), + z(z), + facing ((unsigned char)(facing & 0xff)), + blockId((unsigned char)(blockId & 0xff)), + blockData((unsigned char)(blockData & 0xff)) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_PLACEBLOCK)); + + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(z); + bitStream->Write(y); + bitStream->Write(facing); + bitStream->Write(blockId); + bitStream->Write(blockData); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(z); + bitStream->Read(y); + bitStream->Read(facing); + bitStream->Read(blockId); + bitStream->Read(blockData); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (PlaceBlockPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__PlaceBlockPacket_H__*/ diff --git a/src/network/packet/PlayerActionPacket.h b/src/network/packet/PlayerActionPacket.h new file mode 100755 index 0000000..714dbd0 --- /dev/null +++ b/src/network/packet/PlayerActionPacket.h @@ -0,0 +1,62 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__PlayerActionPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__PlayerActionPacket_H__ + +#include "../Packet.h" + +class PlayerActionPacket : public Packet +{ +public: + static const int START_DESTROY_BLOCK = 0; + static const int ABORT_DESTROY_BLOCK = 1; + static const int STOP_DESTROY_BLOCK = 2; + static const int GET_UPDATED_BLOCK = 3; + static const int DROP_ITEM = 4; + static const int RELEASE_USE_ITEM = 5; + static const int STOP_SLEEPING = 6; + + PlayerActionPacket() + : x(0), + y(0), + z(0), + action(0), + face(0), + entityId(0) + {} + + PlayerActionPacket(int action, int x, int y, int z, int face, int entityId) + : x(x), + y(y), + z(z), + face(face), + action(action), + entityId(entityId) + {} + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(action); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(face); + bitStream->Read(entityId); + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_PLAYERACTION)); + + bitStream->Write(action); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(face); + bitStream->Write(entityId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (PlayerActionPacket*)this); + } + + int x, y, z, face, action, entityId; +}; + +#endif /* NET_MINECRAFT_NETWORK_PACKET__PlayerActionPacket_H__ */ diff --git a/src/network/packet/PlayerArmorEquipmentPacket.h b/src/network/packet/PlayerArmorEquipmentPacket.h new file mode 100755 index 0000000..69b28f1 --- /dev/null +++ b/src/network/packet/PlayerArmorEquipmentPacket.h @@ -0,0 +1,78 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__PlayerArmorEquipmentPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__PlayerArmorEquipmentPacket_H__ + +#include "../Packet.h" +#include "../../world/entity/player/Player.h" +#include "../../world/item/ArmorItem.h" +#include "../../world/item/ItemInstance.h" + +// @note: A visual update only +class PlayerArmorEquipmentPacket : public Packet +{ +public: + int entityId; + signed char head; + signed char torso; + signed char legs; + signed char feet; + + PlayerArmorEquipmentPacket() { + } + + PlayerArmorEquipmentPacket(Player* player) + : entityId(player->entityId) + { + get(head, player->getArmor(ArmorItem::SLOT_HEAD)); + get(torso, player->getArmor(ArmorItem::SLOT_TORSO)); + get(legs, player->getArmor(ArmorItem::SLOT_LEGS)); + get(feet, player->getArmor(ArmorItem::SLOT_FEET)); + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_PLAYERARMOREQUIPMENT)); + + bitStream->Write(entityId); + bitStream->Write(head); + bitStream->Write(torso); + bitStream->Write(legs); + bitStream->Write(feet); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(entityId); + bitStream->Read(head); + bitStream->Read(torso); + bitStream->Read(legs); + bitStream->Read(feet); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (PlayerArmorEquipmentPacket*)this); + } + + void fillIn(Player* player) { + set(player, head, ArmorItem::SLOT_HEAD); + set(player, torso, ArmorItem::SLOT_TORSO); + set(player, legs, ArmorItem::SLOT_LEGS); + set(player, feet, ArmorItem::SLOT_FEET); + } + +private: + void get(signed char& s, const ItemInstance* item) { + if (item) { + s = item->id - 256; + } else { + s = -1; + } + } + + void set(Player* p, signed char s, int slot) { + if (s < 0) p->setArmor(slot, NULL); + else { + ItemInstance item((int)s + 256, 1, 0); + p->setArmor(slot, &item); + } + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__PlayerArmorEquipmentPacket_H__*/ diff --git a/src/network/packet/PlayerEquipmentPacket.h b/src/network/packet/PlayerEquipmentPacket.h new file mode 100755 index 0000000..5dfb315 --- /dev/null +++ b/src/network/packet/PlayerEquipmentPacket.h @@ -0,0 +1,46 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__PlayerEquipmentPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__PlayerEquipmentPacket_H__ + +#include "../Packet.h" + +class PlayerEquipmentPacket : public Packet +{ +public: + int entityId; + unsigned short itemId; + unsigned short itemAuxValue; + + PlayerEquipmentPacket() + { + } + + PlayerEquipmentPacket(int entityId, int itemId, int data) + : entityId(entityId), + itemId(itemId), + itemAuxValue(data) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_PLAYEREQUIPMENT)); + + bitStream->Write(entityId); + bitStream->Write(itemId); + bitStream->Write(itemAuxValue); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(itemId); + bitStream->Read(itemAuxValue); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (PlayerEquipmentPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__PlayerEquipmentPacket_H__*/ diff --git a/src/network/packet/ReadyPacket.h b/src/network/packet/ReadyPacket.h new file mode 100755 index 0000000..fa19ce3 --- /dev/null +++ b/src/network/packet/ReadyPacket.h @@ -0,0 +1,42 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__ReadyPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__ReadyPacket_H__ + +#include "../Packet.h" + +class ReadyPacket: public Packet +{ +public: + static const char READY_UNDEFINED = 0; + static const char READY_CLIENTGENERATION = 1; + static const char READY_REQUESTEDCHUNKS = 2; + + ReadyPacket() + : type(READY_UNDEFINED) + { + } + + ReadyPacket(char type) + : type(type) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_READY)); + bitStream->Write(type); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(type); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (ReadyPacket*)this); + } + + char type; +}; + +#endif /*#NET_MINECRAFT_NETWORK_PACKET__ReadyPacket_H__*/ diff --git a/src/network/packet/RemoveBlockPacket.h b/src/network/packet/RemoveBlockPacket.h new file mode 100755 index 0000000..2f2ec5d --- /dev/null +++ b/src/network/packet/RemoveBlockPacket.h @@ -0,0 +1,52 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__RemoveBlockPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__RemoveBlockPacket_H__ + +#include "../Packet.h" +#include "../../world/entity/player/Player.h" + +class RemoveBlockPacket : public Packet +{ +public: + + // the id of the player who is placing the block, used to animate the player + int entityId; + int x, z; + unsigned char y; + + RemoveBlockPacket() + { + } + + RemoveBlockPacket(Player* p, int x, int y, int z) + : entityId(p->entityId), + x(x), + y((unsigned char)(y & 0xff)), + z(z) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_REMOVEBLOCK)); + + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(z); + bitStream->Write(y); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(z); + bitStream->Read(y); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (RemoveBlockPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__RemoveBlockPacket_H__*/ diff --git a/src/network/packet/RemoveEntityPacket.h b/src/network/packet/RemoveEntityPacket.h new file mode 100755 index 0000000..3579c29 --- /dev/null +++ b/src/network/packet/RemoveEntityPacket.h @@ -0,0 +1,39 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__RemoveEntityPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__RemoveEntityPacket_H__ + +#include "../Packet.h" + +class RemoveEntityPacket : public Packet +{ +public: + + int entityId; + + RemoveEntityPacket() + { + } + + RemoveEntityPacket(int entityId) + : entityId(entityId) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_REMOVEENTITY)); + + bitStream->Write(entityId); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (RemoveEntityPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__RemoveEntityPacket_H__*/ diff --git a/src/network/packet/RemovePlayerPacket.h b/src/network/packet/RemovePlayerPacket.h new file mode 100755 index 0000000..86840d4 --- /dev/null +++ b/src/network/packet/RemovePlayerPacket.h @@ -0,0 +1,41 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__RemovePlayerPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__RemovePlayerPacket_H__ + +#include "../Packet.h" +#include "../../world/entity/player/Player.h" + +class RemovePlayerPacket : public Packet +{ +public: + RemovePlayerPacket() {} + + RemovePlayerPacket(const Player* p) + : entityId(p->entityId), + owner(p->owner) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_REMOVEPLAYER)); + + bitStream->Write(entityId); + bitStream->Write(owner); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(owner); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (RemovePlayerPacket*)this); + } + + int entityId; + RakNet::RakNetGUID owner; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__RemovePlayerPacket_H__*/ diff --git a/src/network/packet/RequestChunkPacket.h b/src/network/packet/RequestChunkPacket.h new file mode 100755 index 0000000..e25add0 --- /dev/null +++ b/src/network/packet/RequestChunkPacket.h @@ -0,0 +1,42 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__RequestChunkPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__RequestChunkPacket_H__ + +#include "../Packet.h" + +class RequestChunkPacket : public Packet +{ +public: + + int x, z; + + RequestChunkPacket() + { + } + + RequestChunkPacket(int _x, int _z) + { + x = _x; + z = _z; + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_REQUESTCHUNK)); + + bitStream->Write(x); + bitStream->Write(z); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(z); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (RequestChunkPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__RequestChunkPacket_H__*/ diff --git a/src/network/packet/RespawnPacket.h b/src/network/packet/RespawnPacket.h new file mode 100755 index 0000000..74e2371 --- /dev/null +++ b/src/network/packet/RespawnPacket.h @@ -0,0 +1,47 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__RespawnPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__RespawnPacket_H__ + +#include "../Packet.h" + +class RespawnPacket: public Packet +{ +public: + RespawnPacket() + { + } + + RespawnPacket(const Player* p) + : x(p->x),y(p->y),z(p->z), + entityId(p->entityId) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_RESPAWN)); + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (RespawnPacket*)this); + } + + float x; + float y; + float z; + int entityId; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__RespawnPacket_H__*/ diff --git a/src/network/packet/SendInventoryPacket.h b/src/network/packet/SendInventoryPacket.h new file mode 100755 index 0000000..65d12f4 --- /dev/null +++ b/src/network/packet/SendInventoryPacket.h @@ -0,0 +1,69 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SendInventoryPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SendInventoryPacket_H__ + +#include "../Packet.h" + +class SendInventoryPacket: public Packet +{ +public: + SendInventoryPacket() + { + } + + SendInventoryPacket(Player* player, bool dropItems) + : entityId(player->entityId), + extra(dropItems? ExtraDrop : 0) + { + Inventory* inv = player->inventory; + numItems = 0; + for (int i = Inventory::MAX_SELECTION_SIZE; i < inv->getContainerSize(); ++i) { + ++numItems; + ItemInstance* item = inv->getItem(i); + items.push_back(item? *item : ItemInstance()); + } + for (int i = 0; i < NumArmorItems; ++i) { + ItemInstance* item = player->getArmor(i); + items.push_back(item? *item : ItemInstance()); + } + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SENDINVENTORY)); + bitStream->Write(entityId); + bitStream->Write(extra); + bitStream->Write(numItems); + // Inventory + for (int i = 0; i < numItems; ++i) + PacketUtil::writeItemInstance(items[i], bitStream); + // Armor + for (int i = 0; i < NumArmorItems; ++i) + PacketUtil::writeItemInstance(items[i + numItems], bitStream); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(entityId); + bitStream->Read(extra); + bitStream->Read(numItems); + items.clear(); + // Inventory, Armor + for (int i = 0; i < numItems + NumArmorItems; ++i) + items.push_back(PacketUtil::readItemInstance(bitStream)); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (SendInventoryPacket*)this); + } + + int entityId; + std::vector items; + short numItems; + unsigned char extra; + + static const int ExtraDrop = 1; + static const int NumArmorItems = 4; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SendInventoryPacket_H__*/ diff --git a/src/network/packet/SetEntityDataPacket.h b/src/network/packet/SetEntityDataPacket.h new file mode 100755 index 0000000..4588716 --- /dev/null +++ b/src/network/packet/SetEntityDataPacket.h @@ -0,0 +1,64 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SetEntityDataPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SetEntityDataPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +#include "../../world/entity/SynchedEntityData.h" +#include "../../util/RakDataIO.h" + +class SetEntityDataPacket: public Packet +{ +public: + SetEntityDataPacket() + : deletePackedItems(false) + {} + + SetEntityDataPacket(int id, SynchedEntityData& entityData) + : id(id), + deletePackedItems(false), + packedItems(entityData.packDirty()) + { + } + + ~SetEntityDataPacket() { + if (deletePackedItems) + for (unsigned int i = 0; i < packedItems.size(); ++i) + delete packedItems[i]; + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SETENTITYDATA)); + bitStream->Write(id); + + RakDataOutput dos(*bitStream); + SynchedEntityData::pack(&packedItems, &dos); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(id); + + RakDataInput dis(*bitStream); + packedItems = SynchedEntityData::unpack(&dis); + deletePackedItems = true; + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (SetEntityDataPacket*)this); + } + + SynchedEntityData::DataList& getUnpackedData() { + return packedItems; + } +public: + int id; +private: + bool deletePackedItems; + SynchedEntityData::DataList packedItems; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SetEntityDataPacket_H__*/ diff --git a/src/network/packet/SetEntityMotionPacket.h b/src/network/packet/SetEntityMotionPacket.h new file mode 100755 index 0000000..dc93b7e --- /dev/null +++ b/src/network/packet/SetEntityMotionPacket.h @@ -0,0 +1,68 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SetEntityMotionPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SetEntityMotionPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" +#include "../../world/entity/Entity.h" + +class SetEntityMotionPacket: public Packet +{ +public: + SetEntityMotionPacket() {} + + SetEntityMotionPacket(Entity* e) { + init(e->entityId, e->xd, e->yd, e->zd); + } + + SetEntityMotionPacket(int id, float xd, float yd, float zd) { + init(id, xd, yd, zd); + } + + void write(RakNet::BitStream* bitStream) + { + const float M = 3.9f; + short xa = (short)(8000.0f * Mth::clamp(xd, -M, M)); + short ya = (short)(8000.0f * Mth::clamp(yd, -M, M)); + short za = (short)(8000.0f * Mth::clamp(zd, -M, M)); + + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SETENTITYMOTION)); + bitStream->Write(id); + bitStream->Write(xa); + bitStream->Write(ya); + bitStream->Write(za); + } + + void read(RakNet::BitStream* bitStream) + { + short xa, ya, za; + bitStream->Read(id); + bitStream->Read(xa); + bitStream->Read(ya); + bitStream->Read(za); + + xd = xa / 8000.0f; + yd = ya / 8000.0f; + zd = za / 8000.0f; + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (SetEntityMotionPacket*)this); + } + +private: + void init(int entityId, float xd, float yd, float zd) { + this->id = entityId; + this->xd = xd; + this->yd = yd; + this->zd = zd; + } + +public: + int id; + float xd, yd, zd; + +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SetEntityMotionPacket_H__*/ diff --git a/src/network/packet/SetHealthPacket.h b/src/network/packet/SetHealthPacket.h new file mode 100755 index 0000000..bd6dbb2 --- /dev/null +++ b/src/network/packet/SetHealthPacket.h @@ -0,0 +1,41 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SetHealthPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SetHealthPacket_H__ + +#include "../Packet.h" + +//package net.minecraft.network.packet; + +class SetHealthPacket: public Packet { +public: + static const int HEALTH_MODIFY_OFFSET = -64; + + SetHealthPacket() { + } + + SetHealthPacket(int health) + : health(health) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SETHEALTH)); + bitStream->Write((signed char)health); + } + + void read(RakNet::BitStream* bitStream) + { + signed char tmpHealth; + bitStream->Read(tmpHealth); + health = tmpHealth; + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (SetHealthPacket*)this); + } + + int health; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SetHealthPacket_H__*/ diff --git a/src/network/packet/SetSpawnPositionPacket.h b/src/network/packet/SetSpawnPositionPacket.h new file mode 100755 index 0000000..6b409a6 --- /dev/null +++ b/src/network/packet/SetSpawnPositionPacket.h @@ -0,0 +1,52 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SetSpawnPositionPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SetSpawnPositionPacket_H__ + +#include "../Packet.h" + +class SetSpawnPositionPacket : public Packet +{ +public: + int entityId; + int x, z; + unsigned char y; + + SetSpawnPositionPacket() + { + } + + SetSpawnPositionPacket(int x, int y, int z) + : x(x), + y((unsigned char)(y & 0xff)), + z(z) + { + } + SetSpawnPositionPacket(const Pos& pos) + : x(pos.x), + y((unsigned char)(pos.y & 0xff)), + z(pos.z) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SETSPAWNPOSITION)); + + bitStream->Write(x); + bitStream->Write(z); + bitStream->Write(y); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(z); + bitStream->Read(y); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (SetSpawnPositionPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SetSpawnPositionPacket_H__*/ diff --git a/src/network/packet/SetTimePacket.h b/src/network/packet/SetTimePacket.h new file mode 100755 index 0000000..082d05e --- /dev/null +++ b/src/network/packet/SetTimePacket.h @@ -0,0 +1,36 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SetTimePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SetTimePacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class SetTimePacket: public Packet { +public: + SetTimePacket() { + } + + SetTimePacket(long time) + : time(time) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SETTIME)); + bitStream->Write(time); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(time); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (SetTimePacket*)this); + } + + long time; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SetTimePacket_H__*/ diff --git a/src/network/packet/SignUpdatePacket.h b/src/network/packet/SignUpdatePacket.h new file mode 100755 index 0000000..1fadf5d --- /dev/null +++ b/src/network/packet/SignUpdatePacket.h @@ -0,0 +1,68 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__SignUpdatePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__SignUpdatePacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" +#include "../../util/RakDataIO.h" +#include "../../world/level/tile/entity/SignTileEntity.h" + +class SignUpdatePacket: public Packet +{ +public: + SignUpdatePacket() {} + + SignUpdatePacket(int x, int y, int z, const std::string lines[]) + : x(x), + y(y), + z(z) + { + for (int i = 0; i < 4; ++i) + this->lines[i] = lines[i]; + } + + /*@Override*/ + void read(RakNet::BitStream* bitStream) { + short xx, zz; + unsigned char yy; + bitStream->Read(xx); + bitStream->Read(yy); + bitStream->Read(zz); + x = xx; + z = zz; + y = yy; + + RakDataInput dis(*bitStream); + for (int i = 0; i < 4; ++i) { + lines[i] = dis.readString(); + if (lines[i].length() > SignTileEntity::MAX_LINE_LENGTH) + lines[i].resize(SignTileEntity::MAX_LINE_LENGTH); + } + } + + /*@Override*/ + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_SIGNUPDATE)); + short xx = x; + short zz = z; + unsigned char yy = y; + bitStream->Write(xx); + bitStream->Write(yy); + bitStream->Write(zz); + + RakDataOutput dos(*bitStream); + for (int i = 0; i < 4; ++i) + dos.writeString(lines[i]); + } + + /*@Override*/ + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (SignUpdatePacket*)this); + } + +public: + int x, y, z; + std::string lines[4]; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__SignUpdatePacket_H__*/ diff --git a/src/network/packet/StartGamePacket.h b/src/network/packet/StartGamePacket.h new file mode 100755 index 0000000..31f6a78 --- /dev/null +++ b/src/network/packet/StartGamePacket.h @@ -0,0 +1,61 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__StartGamePacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__StartGamePacket_H__ + +#include "../Packet.h" + +class StartGamePacket : public Packet +{ +public: + long levelSeed; + int levelGeneratorVersion; + int gameType; + + int entityId; + float x, y, z; + + StartGamePacket() + { + } + + StartGamePacket(long seed, int levelGeneratorVersion, int gameType, int entityId, float x, float y, float z) + : levelSeed(seed), + levelGeneratorVersion(levelGeneratorVersion), + gameType(gameType), + entityId(entityId), + x(x), + y(y), + z(z) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_STARTGAME)); + + bitStream->Write(levelSeed); + bitStream->Write(levelGeneratorVersion); + bitStream->Write(gameType); + bitStream->Write(entityId); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(levelSeed); + bitStream->Read(levelGeneratorVersion); + bitStream->Read(gameType); + bitStream->Read(entityId); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (StartGamePacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__StartGamePacket_H__*/ diff --git a/src/network/packet/TakeItemEntityPacket.h b/src/network/packet/TakeItemEntityPacket.h new file mode 100755 index 0000000..ada5fed --- /dev/null +++ b/src/network/packet/TakeItemEntityPacket.h @@ -0,0 +1,42 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__TakeItemEntityPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__TakeItemEntityPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class TakeItemEntityPacket: public Packet +{ +public: + TakeItemEntityPacket() { + } + + TakeItemEntityPacket(int itemId, int playerId) + : itemId(itemId), + playerId(playerId) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_TAKEITEMENTITY)); + bitStream->Write(itemId); + bitStream->Write(playerId); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(itemId); + bitStream->Read(playerId); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (TakeItemEntityPacket*)this); + } + + int itemId; + int playerId; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__TakeItemEntityPacket_H__*/ diff --git a/src/network/packet/TeleportEntityPacket.h b/src/network/packet/TeleportEntityPacket.h new file mode 100755 index 0000000..cb3a462 --- /dev/null +++ b/src/network/packet/TeleportEntityPacket.h @@ -0,0 +1,77 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__TeleportEntityPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__TeleportEntityPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +#include "../../world/entity/Entity.h" +#include "../../util/Mth.h" + +class TeleportEntityPacket: public Packet +{ +public: + TeleportEntityPacket() { + } + + TeleportEntityPacket(Entity* e, char cause) + : id(e->entityId), + x(e->x), + y(e->y), + z(e->z), + yRot(e->yRot), + xRot(e->xRot), + cause(cause) + { + } + + TeleportEntityPacket(int id, float x, float y, float z, float yRot, float xRot, char cause) + : id(id), + x(x), + y(y), + z(z), + yRot(yRot), + xRot(xRot), + cause(cause) + { + } + + void write(RakNet::BitStream* bitStream) { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_TELEPORTENTITY)); + bitStream->Write(id); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(PacketUtil::Rot_degreesToChar(yRot)); + bitStream->Write(PacketUtil::Rot_degreesToChar(xRot)); + bitStream->Write(cause); + } + + void read(RakNet::BitStream* bitStream) { + bitStream->Read(id); + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + char rx, ry; + bitStream->Read(ry); + bitStream->Read(rx); + bitStream->Read(cause); + yRot = PacketUtil::Rot_degreesToChar(ry); + xRot = PacketUtil::Rot_charToDegrees(rx); + + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (TeleportEntityPacket*)this); + } + + int id; + float x, y, z; + float xRot, yRot; // sent as byte + char cause; + + static const int WANT_RESPAWN = 1; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__TeleportEntityPacket_H__*/ diff --git a/src/network/packet/TileEventPacket.h b/src/network/packet/TileEventPacket.h new file mode 100755 index 0000000..1319fd0 --- /dev/null +++ b/src/network/packet/TileEventPacket.h @@ -0,0 +1,48 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__TileEventPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__TileEventPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +class TileEventPacket: public Packet { +public: + TileEventPacket() {} + + TileEventPacket(int x, int y, int z, int b0, int b1) + : x(x), + y(y), + z(z), + b0(b0), + b1(b1) + {} + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_TILEEVENT)); + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(b0); + bitStream->Write(b1); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(b0); + bitStream->Read(b1); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (TileEventPacket*)this); + } + + int x, y, z; + int b0, b1; +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__TileEventPacket_H__*/ diff --git a/src/network/packet/UpdateArmorPacket.h b/src/network/packet/UpdateArmorPacket.h new file mode 100755 index 0000000..c1e812f --- /dev/null +++ b/src/network/packet/UpdateArmorPacket.h @@ -0,0 +1,28 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__UpdateArmorPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__UpdateArmorPacket_H__ + +#include "../Packet.h" + +class UpdateArmorPacket: public Packet +{ +public: + UpdateArmorPacket(Player* player) + { + } + + void write(RakNet::BitStream* bitStream){ + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_UPDATEARMOR)); + + //bitStream->Write(); + } + + void read(RakNet::BitStream* bitStream) { + //bitStream->Read(); + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) { + callback->handle(source, (UpdateArmorPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__UpdateArmorPacket_H__*/ diff --git a/src/network/packet/UpdateBlockPacket.h b/src/network/packet/UpdateBlockPacket.h new file mode 100755 index 0000000..3559034 --- /dev/null +++ b/src/network/packet/UpdateBlockPacket.h @@ -0,0 +1,55 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__UpdateBlockPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__UpdateBlockPacket_H__ + +#include "../Packet.h" + +class UpdateBlockPacket : public Packet +{ +public: + + int x, z; + unsigned char y; + unsigned char blockId; + unsigned char blockData; + + UpdateBlockPacket() + { + } + + UpdateBlockPacket(int _x, int _y, int _z, int _blockId, int _blockData) + { + x = _x; + y = (unsigned char)(_y & 0xff); + z = _z; + blockId = (unsigned char)(_blockId & 0xff); + blockData = (unsigned char)(_blockData & 0xff); + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_UPDATEBLOCK)); + + bitStream->Write(x); + bitStream->Write(z); + bitStream->Write(y); + bitStream->Write(blockId); + bitStream->Write(blockData); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(z); + bitStream->Read(y); + bitStream->Read(blockId); + bitStream->Read(blockData); + + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (UpdateBlockPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__UpdateBlockPacket_H__*/ diff --git a/src/network/packet/UseItemPacket.h b/src/network/packet/UseItemPacket.h new file mode 100755 index 0000000..e1583de --- /dev/null +++ b/src/network/packet/UseItemPacket.h @@ -0,0 +1,86 @@ +#ifndef NET_MINECRAFT_NETWORK_PACKET__UseItemPacket_H__ +#define NET_MINECRAFT_NETWORK_PACKET__UseItemPacket_H__ + +//package net.minecraft.network.packet; + +#include "../Packet.h" + +#include "../../world/item/ItemInstance.h" + +class UseItemPacket: public Packet +{ +public: + int x, y, z, face; + float clickX, clickY, clickZ; + int entityId; + short itemId; + unsigned char itemData; + ItemInstance item; + + UseItemPacket() {} + + UseItemPacket(int x, int y, int z, int face, const ItemInstance* item, int entityId, float clickX, float clickY, float clickZ) + : x(x), + y(y), + z(z), + face(face), + itemId(item? item->id : 0), + itemData(item? item->getAuxValue() : 0), + entityId(entityId), + clickX(clickX), + clickY(clickY), + clickZ(clickZ) + {} + + UseItemPacket(const ItemInstance* item, int entityId, const Vec3& aim) + : face(255), + itemId(item? item->id : 0), + itemData(item? item->getAuxValue() : 0), + entityId(entityId), + x((int)(aim.x * 32768.0f)), + y((int)(aim.y * 32768.0f)), + z((int)(aim.z * 32768.0f)) + { + } + + void write(RakNet::BitStream* bitStream) + { + bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_USEITEM)); + + bitStream->Write(x); + bitStream->Write(y); + bitStream->Write(z); + bitStream->Write(face); + bitStream->Write(itemId); + bitStream->Write(itemData); + bitStream->Write(entityId); + bitStream->Write(clickX); + bitStream->Write(clickY); + bitStream->Write(clickZ); + } + + void read(RakNet::BitStream* bitStream) + { + bitStream->Read(x); + bitStream->Read(y); + bitStream->Read(z); + bitStream->Read(face); + bitStream->Read(itemId); + bitStream->Read(itemData); + bitStream->Read(entityId); + bitStream->Read(clickX); + bitStream->Read(clickY); + bitStream->Read(clickZ); + item.id = itemId; + item.setAuxValue(itemData); + item.count = (itemId == 0 && itemData == 0)? 0 : 1; + + } + + void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) + { + callback->handle(source, (UseItemPacket*)this); + } +}; + +#endif /*NET_MINECRAFT_NETWORK_PACKET__UseItemPacket_H__*/ diff --git a/src/platform/CThread.cpp b/src/platform/CThread.cpp new file mode 100755 index 0000000..e93575e --- /dev/null +++ b/src/platform/CThread.cpp @@ -0,0 +1,72 @@ +/* + * CThread.cpp + * oxeye + * + * Created by aegzorz on 2007-02-09. + * Copyright 2007 Mojang AB. All rights reserved. + * + */ + +#include "CThread.h" + + + + CThread::CThread( pthread_fn threadFunc, void* threadParam ) + { + #ifdef WIN32 + mp_threadFunc = (LPTHREAD_START_ROUTINE) threadFunc; + + m_threadHandle = CreateThread( + NULL, // pointer to security attributes + NULL, // initial thread stack size + mp_threadFunc, // pointer to thread function + threadParam, // argument for new thread + NULL, // creation flags + &m_threadID // pointer to receive thread ID + ); + #endif + #if defined(LINUX) || defined(ANDROID) || defined(__APPLE__) || defined(POSIX) + mp_threadFunc = (pthread_fn)threadFunc; + + pthread_attr_init(&m_attributes); + pthread_attr_setdetachstate( &m_attributes, PTHREAD_CREATE_DETACHED ); + /*int error =*/ pthread_create(&m_thread, &m_attributes, mp_threadFunc,threadParam); + #endif + #ifdef MACOSX + mp_threadFunc = (TaskProc) threadFunc; + + MPCreateTask( + mp_threadFunc, // pointer to thread function + threadParam, // argument for new thread + 0, // initial thread stack size + NULL, // queue id + NULL, // termination param 1 + NULL, // termination param 2 + 0, // task options + &m_threadID // pointer to receive task ID + ); + #endif + } + + void CThread::sleep( const unsigned int millis ) + { + #ifdef WIN32 + Sleep( millis ); + #endif + #if defined(LINUX) || defined(ANDROID) || defined(__APPLE__) || defined(POSIX) + usleep(millis * 1000); + #endif + } + + CThread::~CThread() + { + #ifdef WIN32 + TerminateThread(m_threadHandle, 0); + #endif + #if defined(LINUX) || defined(ANDROID) || defined(__APPLE__) || defined(POSIX) + pthread_join(m_thread, NULL); + pthread_attr_destroy(&m_attributes); + #endif + } + + diff --git a/src/platform/CThread.h b/src/platform/CThread.h new file mode 100755 index 0000000..25e5b77 --- /dev/null +++ b/src/platform/CThread.h @@ -0,0 +1,55 @@ +/* + * CThread.h + * Created by aegzorz on 2007-02-09. + * Copyright 2007 Oxeye. All rights reserved. + */ + +#ifndef _OX_CORE_CTHREAD_H_ +#define _OX_CORE_CTHREAD_H_ + +#ifdef WIN32 + #include +#endif + +typedef void *( * pthread_fn )( void * ); + +#if defined(LINUX) || defined(ANDROID) || defined(__APPLE__) || defined(POSIX) + #include + #include + +#endif +#ifdef MACOSX + #include + #include +#endif + + class CThread + { + public: + CThread( pthread_fn threadFunc, void* threadParam ); + + virtual ~CThread(); + + static void sleep( const unsigned int millis ); + + private: + #ifdef WIN32 + LPTHREAD_START_ROUTINE mp_threadFunc; + DWORD m_threadID; + HANDLE m_threadHandle; + #endif + #if defined(LINUX) || defined(ANDROID) || defined(__APPLE__) || defined(POSIX) + pthread_fn mp_threadFunc; + pthread_t m_thread; + pthread_attr_t m_attributes; + #endif + #ifdef MACOSX + TaskProc mp_threadFunc; + MPTaskID m_threadID; + #endif + + }; + + + +#endif // _OX_CORE_CTHREAD_H_ diff --git a/src/platform/audio/SoundSystem.h b/src/platform/audio/SoundSystem.h new file mode 100755 index 0000000..7576e9f --- /dev/null +++ b/src/platform/audio/SoundSystem.h @@ -0,0 +1,29 @@ +#ifndef SoundSystem_H__ +#define SoundSystem_H__ + +#include "../../world/level/tile/Tile.h" +#include + +class SoundDesc; + +class SoundSystem +{ +public: + SoundSystem() {} + virtual ~SoundSystem() {} + + virtual bool isAvailable() { return false; } + virtual void enable(bool status) {} + + virtual void setListenerPos(float x, float y, float z){} + virtual void setListenerAngle(float deg){} + + virtual void load(const std::string& name){} + virtual void play(const std::string& name){} + virtual void pause(const std::string& name){} + virtual void stop(const std::string& name){} + + virtual void playAt(const SoundDesc& desc, float x, float y, float z, float volume, float pitch){} +}; + +#endif /*SoundSystem_H__ */ diff --git a/src/platform/audio/SoundSystemAL.cpp b/src/platform/audio/SoundSystemAL.cpp new file mode 100755 index 0000000..99de597 --- /dev/null +++ b/src/platform/audio/SoundSystemAL.cpp @@ -0,0 +1,253 @@ +//#include "ios/OpenALSupport.h" +#include "SoundSystemAL.h" +#include "../../util/Mth.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/phys/Vec3.h" +#include "../../client/sound/Sound.h" + +#include "../log.h" + +static const char* errIdString = 0; + +void checkError() { + + while (1) { + ALenum err = alGetError(); + if(err == AL_NO_ERROR) return; + + LOGI("### SoundSystemAL error: %d ####: %s\n", err, errIdString==0?"(none)":errIdString); + } +} + +//typedef ALvoid AL_APIENTRY (*alBufferDataStaticProcPtr) (const ALint bid, ALenum format, ALvoid *data, ALsizei size, ALsizei freq); +//ALvoid alBufferDataStaticProc(const ALint bid, ALenum format, ALvoid* data, ALsizei size, ALsizei freq) +//{ +// static alBufferDataStaticProcPtr proc = NULL; +// +// if (proc == NULL) { +// proc = (alBufferDataStaticProcPtr) alcGetProcAddress(NULL, (const ALCchar*) "alBufferDataStatic"); +// } +// +// if (proc) +// proc(bid, format, data, size, freq); +// +// return; +//} +// +SoundSystemAL::SoundSystemAL() +: available(true), + context(0), + device(0), + _rotation(-9999.9f) +{ + _buffers.reserve(64); + init(); +} + +SoundSystemAL::~SoundSystemAL() +{ + alDeleteSources(MaxNumSources, _sources); + + for (int i = 0; i < (int)_buffers.size(); ++i) + if (_buffers[i].inited) alDeleteBuffers(1, &_buffers[i].bufferID); + + alcMakeContextCurrent(NULL); + alcDestroyContext(context); + + // Close the device + alcCloseDevice(device); +} + +void SoundSystemAL::init() +{ + device = alcOpenDevice(NULL); + if(device) { + context = alcCreateContext(device, NULL); + alcMakeContextCurrent(context); + + alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED); + + alGenSources(MaxNumSources, _sources); + for(int index = 0; index < MaxNumSources; index++) { + ALuint sourceID = _sources[index]; + + alSourcef(sourceID, AL_REFERENCE_DISTANCE, 5.0f); + alSourcef(sourceID, AL_MAX_DISTANCE, 16.0f); + alSourcef(sourceID, AL_ROLLOFF_FACTOR, 6.0f); + } + + float listenerPos[] = {0, 0, 0}; + float listenerOri[] = {0.0, 1.0, 0.0, 0.0, 0.0, 1.0}; + float listenerVel[] = {0, 0, 0}; + alListenerfv(AL_POSITION, listenerPos); + alListenerfv(AL_ORIENTATION, listenerOri); + alListenerfv(AL_VELOCITY, listenerVel); + + errIdString = "Init audio"; + checkError(); + } +} + +void SoundSystemAL::enable(bool status) { + LOGI("Enabling? audio: %d (context %p)\n", status, context); + if (status) { + alcMakeContextCurrent(context); + errIdString = "Enable audio"; + } + else { + alcMakeContextCurrent(NULL); + errIdString = "Disable audio"; + } + + checkError(); +} + +void SoundSystemAL::destroy() {} + +void SoundSystemAL::setListenerPos( float x, float y, float z ) +{ + // Note: listener position is thought to be 0,0,0 now + + /* + if (_listenerPos.x != x || _listenerPos.y != y || _listenerPos.z != z) { + _listenerPos.set(x, y, z); + alListener3f(AL_POSITION, x, y, z); + + static int _n = 0; + if (++_n == 20) { + _n = 0; + LOGI("Setting position for listener: %f, %f, %f\n", _listenerPos.x, _listenerPos.y, _listenerPos.z); + } + } + */ +} + +void SoundSystemAL::setListenerAngle( float deg ) +{ + if (_rotation != deg) { + _rotation = deg; + + float rad = deg * Mth::DEGRAD; + + static ALfloat orientation[] = {0, 0, 0, 0, 1, 0}; + orientation[0] = -Mth::sin( rad ); + orientation[2] = Mth::cos( rad ); + alListenerfv(AL_ORIENTATION, orientation); + } +} + +void SoundSystemAL::playAt( const SoundDesc& sound, float x, float y, float z, float volume, float pitch ) +{ + if (pitch < 0.01f) pitch = 1; + + //LOGI("playing sound '%s' with volume/pitch: %f, %f @ %f, %f, %f\n", sound.name.c_str(), volume, pitch, x, y, z); + + ALuint bufferID; + if (!getBufferId(sound, &bufferID)) { + errIdString = "Get buffer (failed)"; + checkError(); + LOGE("getBufferId returned false!\n"); + return; + } + errIdString = "Get buffer"; + checkError(); + //LOGI("playing sound %d - '%s' with volume/pitch: %f, %f @ %f, %f, %f\n", bufferID, sound.name.c_str(), volume, pitch, x, y, z); + + int sourceIndex; + errIdString = "Get free index"; + if (!getFreeSourceIndex(&sourceIndex)) { + LOGI("No free sound sources left @ SoundSystemAL::playAt\n"); + return; + } + + ALuint sourceID = _sources[sourceIndex]; + checkError(); + + alSourcei(sourceID, AL_BUFFER, 0); + errIdString = "unbind"; + checkError(); + alSourcei(sourceID, AL_BUFFER, bufferID); + errIdString = "bind"; + checkError(); + + alSourcef(sourceID, AL_PITCH, pitch); + errIdString = "pitch"; + checkError(); + alSourcef(sourceID, AL_GAIN, volume); + errIdString = "gain"; + checkError(); + + alSourcei(sourceID, AL_LOOPING, AL_FALSE); + errIdString = "looping"; + checkError(); + alSource3f(sourceID, AL_POSITION, x, y, z); + errIdString = "position"; + checkError(); + + alSourcePlay(sourceID); + errIdString = "source play"; + + checkError(); +} + +/*static*/ +void SoundSystemAL::removeStoppedSounds() +{ +} + +bool SoundSystemAL::getFreeSourceIndex(int* sourceIndex) { + for (int i = 0; i < MaxNumSources; ++i) { + ALint state; + alGetSourcei(_sources[i], AL_SOURCE_STATE, &state); + if(state != AL_PLAYING) { + *sourceIndex = i; + return true; + } + } + return false; +} + +bool SoundSystemAL::getBufferId(const SoundDesc& sound, ALuint* buf) { + for (int i = 0; i < (int)_buffers.size(); ++i) { + // Points to the same data buffer -> sounds equal + if (_buffers[i].framePtr == sound.frames) { + //LOGI("Found %p for %s!\n", sound.frames, sound.name.c_str()); + *buf = _buffers[i].bufferID; + return true; + } + } + + if (!sound.isValid()) { + LOGE("Err: sound is invalid @ getBufferId! %s\n", sound.name.c_str()); + return false; + } + + ALuint bufferID; + alGenBuffers(1, &bufferID); + errIdString = "Gen buffer"; + checkError(); + + ALenum format = (sound.byteWidth==2) ? + (sound.channels==2? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16) + : (sound.channels==2? AL_FORMAT_STEREO8 : AL_FORMAT_MONO8); + + alBufferData(bufferID, format, sound.frames, sound.size, sound.frameRate); + //LOGI("Creating %d (%p) from sound: '%s'\n", bufferID, sound.frames, sound.name.c_str()); + errIdString = "Buffer data"; + //LOGI("Creating buffer with data: %d (%d), %p, %d, %d\n", format, sound.byteWidth, sound.frames, sound.size, sound.frameRate); + checkError(); + + //LOGI("Sound ch: %d, fmt: %d, frames: %p, len: %f, fr: %d, sz: %d, numfr: %d\n", sound.channels, format, sound.frames, sound.length(), sound.frameRate, sound.size, sound.numFrames); + + + Buffer buffer; + buffer.inited = true; + buffer.framePtr = sound.frames; + buffer.bufferID = bufferID; + *buf = bufferID; + _buffers.push_back(buffer); + + // @huge @attn @note @fix: The original data is free'd + sound.destroy(); + return true; +} diff --git a/src/platform/audio/SoundSystemAL.h b/src/platform/audio/SoundSystemAL.h new file mode 100755 index 0000000..ca0ac7f --- /dev/null +++ b/src/platform/audio/SoundSystemAL.h @@ -0,0 +1,73 @@ +#ifndef SoundSystemAL_H__ +#define SoundSystemAL_H__ + +#include "SoundSystem.h" + +#include +#include + +#include +#include + +// +// NOTE: This class is only the core OpenAL part of the sound engine. +// Some audio setup code can still be managed from respective app +// setup code (e.g. the main app delegate for iOS). +// + +class SoundSystemAL: public SoundSystem +{ + //typedef std::list SoundList; +public: + SoundSystemAL(); + ~SoundSystemAL(); + + virtual void init(); + virtual void destroy(); + + virtual void enable(bool status); + + virtual void setListenerPos(float x, float y, float z); + virtual void setListenerAngle(float deg); + + virtual void load(const std::string& name){} + virtual void play(const std::string& name){} + virtual void pause(const std::string& name){} + virtual void stop(const std::string& name){} + virtual void playAt(const SoundDesc& sound, float x, float y, float z, float volume, float pitch); + +private: + class Buffer { + public: + Buffer() + : inited(false) + {} + bool inited; + ALuint bufferID; + char* framePtr; + }; + + void removeStoppedSounds(); + + static const int MaxNumSources = 12; + + //SoundList playingBuffers; + + Vec3 _listenerPos; + float _rotation; + + bool available; + + ALCcontext* context; + ALCdevice* device; + + ALuint _sources[MaxNumSources]; + std::vector _buffers; + + bool getFreeSourceIndex(int* src); + bool getBufferId(const SoundDesc& sound, ALuint* buf); + +public: +}; + +#endif /*SoundSystemAL_H__ */ diff --git a/src/platform/audio/SoundSystemSL.cpp b/src/platform/audio/SoundSystemSL.cpp new file mode 100755 index 0000000..0bc8629 --- /dev/null +++ b/src/platform/audio/SoundSystemSL.cpp @@ -0,0 +1,243 @@ +#include "SoundSystemSL.h" +#include +#include +#include "../../util/Mth.h" +#include "../../world/level/tile/Tile.h" +#include "../../world/phys/Vec3.h" +#include "../../client/sound/Sound.h" + +#include "../log.h" + +// Only one engine can be created at once. You CAN (if you really want) +// start two games at once, then it will crash without objEngine being static. +/*static*/ SLObjectItf SoundSystemSL::objEngine = 0; + +typedef struct t_context { + SLObjectItf obj; + Mutex* mutex; +} t_context; + +Mutex SoundSystemSL::toRemoveMutex; +std::vector SoundSystemSL::toRemove; + +SoundSystemSL::SoundSystemSL() +: available(true), + listener(NULL), + numBuffersPlaying(0) +{ + init(); +} + +SoundSystemSL::~SoundSystemSL() +{ + toRemoveMutex.unlock(); + for (SoundList::iterator it = playingBuffers.begin(); it != playingBuffers.end(); ++it) + (**it)->Destroy(*it); + (*objOutput)->Destroy(objOutput); + + if (SoundSystemSL::objEngine != 0) { + (*SoundSystemSL::objEngine)->Destroy(SoundSystemSL::objEngine); + SoundSystemSL::objEngine = 0; + } +} + +void SoundSystemSL::init() +{ + SoundSystemSL::toRemove.clear(); + SoundSystemSL::toRemove.reserve(MAX_BUFFERS_PLAYING); + toRemoveCopy.resize(MAX_BUFFERS_PLAYING); + + SLresult res; + const int MAX_NUMBER_INTERFACES = 2; + SLboolean required[MAX_NUMBER_INTERFACES]; + SLInterfaceID iidArray[MAX_NUMBER_INTERFACES]; + + SLEngineOption EngineOption[] = {(SLuint32) + SL_ENGINEOPTION_THREADSAFE, (SLuint32) SL_BOOLEAN_TRUE}; + + /* Create OpenSL ES (destroy first if needed)*/ + if (SoundSystemSL::objEngine != 0) + (*SoundSystemSL::objEngine)->Destroy(SoundSystemSL::objEngine); + + res = slCreateEngine( &SoundSystemSL::objEngine, 1, EngineOption, 0, NULL, NULL); + checkErr(res); + + /* Realizing the SL Engine in synchronous mode. */ + res = (*SoundSystemSL::objEngine)->Realize(SoundSystemSL::objEngine, SL_BOOLEAN_FALSE); + if (checkErr(res)) { + available = false; + return; + } + + (*SoundSystemSL::objEngine)->GetInterface(SoundSystemSL::objEngine, SL_IID_ENGINE, (void*)&engEngine); + checkErr(res); + + /* Create Output Mix object to be used by player - no interfaces + required */ + res = (*engEngine)->CreateOutputMix(engEngine, &objOutput, 0, iidArray, required); + checkErr(res); + + /* Realizing the Output Mix object in synchronous mode. */ + res = (*objOutput)->Realize(objOutput, SL_BOOLEAN_FALSE); + checkErr(res); +} + +void SoundSystemSL::destroy() {} + +void SoundSystemSL::setListenerPos( float x, float y, float z ) +{ + if (!listener) { + listenerPos = Vec3(x, y, z); + return; + } + + SLVec3D pos = {1000.0f * x, 1000.0f * y, 1000.0f * z}; + SLresult res = (*listener)->SetLocationCartesian(listener, &pos); + checkErr(res); +} + +void SoundSystemSL::setListenerAngle( float deg ) +{ + if (!listener) return; + + SLresult res = (*listener)->SetOrientationAngles(listener, deg*1000.0f, 0, 0); + checkErr(res); +} + +void SoundSystemSL::playAt( const SoundDesc& sound, float x, float y, float z, float volume, float pitch ) +{ + removeStoppedSounds(); + + if (numBuffersPlaying >= MAX_BUFFERS_PLAYING) + return; + + /* Setup the data source structure for the player */ + SLDataLocator_AndroidSimpleBufferQueue uri = {SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2}; + SLDataFormat_PCM mime = { + SL_DATAFORMAT_PCM, + sound.channels, + sound.frameRate * 1000, + sound.byteWidth << 3, + sound.byteWidth << 3, + sound.channels==1? SL_SPEAKER_FRONT_CENTER : + SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT, + SL_BYTEORDER_LITTLEENDIAN + }; + SLDataSource audioSource = {&uri, &mime}; + SLDataLocator_OutputMix locator_outputmix; + SLDataSink audioSink; + SLObjectItf player; + SLPlayItf playItf; + //SL3DLocationItf locationItf; + SLVolumeItf volumeItf; + + /* Setup the data sink structure */ + locator_outputmix.locatorType = SL_DATALOCATOR_OUTPUTMIX; + locator_outputmix.outputMix = objOutput; + audioSink.pLocator = (void *)&locator_outputmix; + audioSink.pFormat = NULL; + + /* Buffer queue-able */ + static SLboolean required[2]; + static SLInterfaceID iidArray[2]; + required[0] = SL_BOOLEAN_TRUE; + iidArray[0] = SL_IID_BUFFERQUEUE; + required[1] = SL_BOOLEAN_TRUE; + iidArray[1] = SL_IID_VOLUME; + + /* Create the 3D player */ + SLresult res = (*engEngine)->CreateAudioPlayer(engEngine, &player, + &audioSource, &audioSink, 2, iidArray, required); + //printf("SL: Created audio player\n"); + checkErr(res); + + /* Realizing the player in synchronous mode. */ + res = (*player)->Realize(player, SL_BOOLEAN_FALSE); + //LOGI("SL: Realize audio player\n"); + checkErr(res); + + /* Get the play and volume interfaces */ + res = (*player)->GetInterface(player, SL_IID_PLAY, (void*)&playItf); + //LOGI("SL: Get Player interface\n"); + checkErr(res); + + res = (*player)->GetInterface(player, SL_IID_VOLUME, (void*)&volumeItf); + //LOGI("SL: Get Player interface\n"); + checkErr(res); + + SLmillibel maxVolume; + res = (*volumeItf)->GetMaxVolumeLevel(volumeItf, &maxVolume); + SLmillibel mbelVolume = maxVolume - 2000 * (1-volume);//Mth::lerp(SL_MILLIBEL_MIN, maxVolume, 0.95f + 0.05f*volume); + LOGI("min: %d, max: %d, current: %d (%f)\n", SL_MILLIBEL_MIN, maxVolume, mbelVolume, volume); + res = (*volumeItf)->SetVolumeLevel(volumeItf, mbelVolume); + checkErr(res); + + SLAndroidSimpleBufferQueueItf buffer1; + res = (*player)->GetInterface(player, SL_IID_BUFFERQUEUE, &buffer1); + checkErr(res); + + //t_context* context = new t_context(); //{ player, &toRemoveMutex }; + //context->obj = player; + //context->mutex = &toRemoveMutex; + res = (*buffer1)->RegisterCallback(buffer1, SoundSystemSL::removePlayer, (void*)player); + checkErr(res); + + res = (*buffer1)->Enqueue(buffer1, sound.frames, sound.size); + checkErr(res); + + /* Start playing the 3D source */ + res = (*playItf)->SetPlayState( playItf, SL_PLAYSTATE_PLAYING ); + //LOGI("SL: Set play state\n"); + checkErr(res); + + playingBuffers.push_back(player); + ++numBuffersPlaying; +} + +bool SoundSystemSL::checkErr( SLresult res ) +{ + if ( res != SL_RESULT_SUCCESS ) { + LOGI("OpenSL error: %d\n", res); + return true; + } + return false; +} + +/*static*/ +void SoundSystemSL::removeStoppedSounds() +{ + toRemoveMutex.lock(); + const int numBuffersToRemove = toRemove.size(); + for (int i = 0; i < numBuffersToRemove; ++i) + toRemoveCopy[i] = toRemove[i]; + SoundSystemSL::toRemove.clear(); + toRemoveMutex.unlock(); + + for (int i = 0; i < numBuffersToRemove; ++i) { + SLObjectItf obj = toRemoveCopy[i]; + + SoundList::iterator it = playingBuffers.begin(); + while (it != playingBuffers.end()) { + if (*it == obj) { + playingBuffers.erase(it); + break; + } + ++it; + } + (*obj)->Destroy(obj); + --numBuffersPlaying; + } +} + +void SoundSystemSL::removePlayer( SLAndroidSimpleBufferQueueItf bq, void *context_ ) +{ + //t_context* context = (t_context*) context_; + //context->mutex->lock(); + //SoundSystemSL::toRemove.push_back( context->obj ); + //context->mutex->unlock(); + //delete context; + + SoundSystemSL::toRemoveMutex.lock(); + SoundSystemSL::toRemove.push_back( (SLObjectItf) context_ ); + SoundSystemSL::toRemoveMutex.unlock(); +} diff --git a/src/platform/audio/SoundSystemSL.h b/src/platform/audio/SoundSystemSL.h new file mode 100755 index 0000000..0606d91 --- /dev/null +++ b/src/platform/audio/SoundSystemSL.h @@ -0,0 +1,79 @@ +#ifndef SoundSystemSL_H__ +#define SoundSystemSL_H__ + +#include "SoundSystem.h" +#include +#include + +#include +#include + +#ifdef ANDROID +#include +class Mutex { + pthread_mutex_t _mutex; +public: + Mutex() { pthread_mutex_init(&_mutex, NULL); } + ~Mutex() { pthread_mutex_destroy(&_mutex); } + void lock() { pthread_mutex_lock(&_mutex); } + void unlock() { pthread_mutex_unlock(&_mutex); } +}; +#else +class Mutex { +public: + Mutex() {} + void lock() {} + void unlock() {}; +}; +#endif + + +class SoundSystemSL: public SoundSystem +{ + typedef std::list SoundList; +public: + SoundSystemSL(); + ~SoundSystemSL(); + + virtual void init(); + virtual void destroy(); + + virtual void setListenerPos(float x, float y, float z); + virtual void setListenerAngle(float deg); + + virtual void load(const std::string& name){} + virtual void play(const std::string& name){} + virtual void pause(const std::string& name){} + virtual void stop(const std::string& name){} + virtual void playAt(const SoundDesc& sound, float x, float y, float z, float volume, float pitch); + +private: + bool checkErr( SLresult res ); + + void removeStoppedSounds(); + + SoundList playingBuffers; + + static SLObjectItf objEngine; + SLEngineItf engEngine; + + SLObjectItf objListener; + SL3DLocationItf listener; + + SLObjectItf objOutput; + + Vec3 listenerPos; + int numBuffersPlaying; + + bool available; + std::vector toRemoveCopy; + + static Mutex toRemoveMutex; + static std::vector toRemove; + static const int MAX_BUFFERS_PLAYING = 4; + +public: + static void removePlayer(SLAndroidSimpleBufferQueueItf bq, void *context); +}; + +#endif /*SoundSystemSL_H__ */ diff --git a/src/platform/file.h b/src/platform/file.h new file mode 100755 index 0000000..af57bee --- /dev/null +++ b/src/platform/file.h @@ -0,0 +1,68 @@ +#ifndef FILE_H__ +#define FILE_H__ + +bool DeleteDirectory(const std::string&, bool noRecycleBin = true); + +#ifdef WIN32 + #include + #include + #include + #include + +bool DeleteDirectory(const std::string& dir, bool noRecycleBin /*true*/) +{ + int len = strlen(dir.c_str()); + //TCHAR *pszFrom = new TCHAR[len+2]; + char* pszFrom = new char[len+2]; + strncpy(pszFrom, dir.c_str(), len); + pszFrom[len] = 0; + pszFrom[len+1] = 0; + + SHFILEOPSTRUCT fileop; + fileop.hwnd = NULL; // no status display + fileop.wFunc = FO_DELETE; // delete operation + fileop.pFrom = pszFrom; // source file name as double null terminated string + fileop.pTo = NULL; // no destination needed + fileop.fFlags = FOF_NOCONFIRMATION|FOF_SILENT; // do not prompt the user + + if(!noRecycleBin) + fileop.fFlags |= FOF_ALLOWUNDO; + + fileop.fAnyOperationsAborted = FALSE; + fileop.lpszProgressTitle = NULL; + fileop.hNameMappings = NULL; + + int ret = SHFileOperation(&fileop); + delete [] pszFrom; + return (ret == 0); +} +#else + #include + #include + +bool DeleteDirectory(const std::string& d, bool noRecycleBin /*true*/) +{ + const char* folder = d.c_str(); + + const size_t CMAX = 1024; + char fullPath[CMAX]; + DIR* dir = opendir(folder); + if (!dir) + return false; + + struct dirent *entry; + while ((entry = readdir(dir))) { + if (strcmp(".", entry->d_name) && strcmp("..", entry->d_name)) { + snprintf(fullPath, CMAX, "%s/%s", folder, entry->d_name); + remove(fullPath); + } + } + + closedir(dir); + + return remove(folder) == 0; +} + +#endif /*(ELSE) WIN32*/ + +#endif /*FILE_H__*/ diff --git a/src/platform/input/Controller.cpp b/src/platform/input/Controller.cpp new file mode 100755 index 0000000..71ccabb --- /dev/null +++ b/src/platform/input/Controller.cpp @@ -0,0 +1,75 @@ +#include "Controller.h" + +static int _abs(int x) { return x>=0? x:-x; } +static float _abs(float x) { return x>=0? x:-x; } + +/*static*/ float Controller::stickValuesX[NUM_STICKS] = {0}; +/*static*/ float Controller::stickValuesY[NUM_STICKS] = {0}; +/*static*/ bool Controller::isTouchedValues[NUM_STICKS] = {0}; + +bool Controller::isTouched( int stickIndex ) +{ + if (!isValidStick(stickIndex)) return false; + + return isTouchedValues[stickIndex-1]; +} + +void Controller::feed( int stickIndex, int state, float dx, float dy ) +{ + if (!isValidStick(stickIndex)) return; + + if (NUM_STICKS == 2) + stickIndex = dx<0? 1 : 2; + + isTouchedValues[stickIndex-1] = (state != STATE_RELEASE); + + // @note: Since I don't know where to put the Xperia Play specific + // calculations, I put them here! (normally I would probably have + // some kind of (XperiaPlay)ControllerReader but it doesn't make much + // more sense as long as we cant figure out (in code) whether or not + // we actually use an Xperia -> hardcode it here (Note#2, we CAN figure + // figure this out, at least by JNI/java-call but we arent doing it) + static float offsets[3] = {0, 0.64f, -0.64f}; + dx = linearTransform(dx + offsets[stickIndex], 0, 2.78f, true); + + stickValuesX[stickIndex-1] = dx; + stickValuesY[stickIndex-1] = dy; +} + +float Controller::getX( int stickIndex ) +{ + if (!isValidStick(stickIndex)) return 0; + return stickValuesX[stickIndex-1]; +} + +float Controller::getY( int stickIndex ) +{ + if (!isValidStick(stickIndex)) return 0; + return stickValuesY[stickIndex-1]; +} + +float Controller::getTransformedX( int stickIndex, float deadZone, float scale/*=1.0f*/, bool limit1/*=false*/ ) +{ + if (!isValidStick(stickIndex)) return 0; + return linearTransform(stickValuesX[stickIndex-1], deadZone, scale, limit1); +} + +float Controller::getTransformedY( int stickIndex, float deadZone, float scale/*=1.0f*/, bool limit1/*=false*/ ) +{ + if (!isValidStick(stickIndex)) return 0; + return linearTransform(stickValuesY[stickIndex-1], deadZone, scale, limit1); +} + +float Controller::linearTransform( float value, float deadZone, float scale/*=1.0f*/, bool limit1/*=false*/ ) +{ + float deadSigned = value >= 0? deadZone : -deadZone; + if (_abs(deadSigned) >= _abs(value)) return 0; + float ret = (value - deadSigned) * scale; + if (limit1 && _abs(ret) > 1) ret = ret>0.0f? 1.0f : -1.0f; + return ret; +} + +/*static*/ +bool Controller::isValidStick(int stick) { + return stick > 0 && stick <= NUM_STICKS; +} diff --git a/src/platform/input/Controller.h b/src/platform/input/Controller.h new file mode 100755 index 0000000..49ae289 --- /dev/null +++ b/src/platform/input/Controller.h @@ -0,0 +1,33 @@ +#ifndef CONTROLLER_H__ +#define CONTROLLER_H__ + +#include "../log.h" + +class Controller +{ +public: + static const int NUM_STICKS = 2; + static const int STATE_TOUCH = 1; + static const int STATE_RELEASE = 0; + static const int STATE_MOVE =-1; + + static bool isTouched(int stickIndex); + + static void feed(int stickIndex, int state, float dx, float dy); + + static float getX(int stickIndex); + static float getY(int stickIndex); + + static float getTransformedX(int stickIndex, float deadZone, float scale=1.0f, bool limit1=false); + static float getTransformedY(int stickIndex, float deadZone, float scale=1.0f, bool limit1=false); + +private: + static bool isValidStick(int stick); + static float linearTransform(float value, float deadZone, float scale=1.0f, bool limit1=false); + + static float stickValuesX[NUM_STICKS]; + static float stickValuesY[NUM_STICKS]; + static bool isTouchedValues[NUM_STICKS]; +}; + +#endif /*CONTROLLER_H__*/ diff --git a/src/platform/input/Keyboard.cpp b/src/platform/input/Keyboard.cpp new file mode 100755 index 0000000..78ead92 --- /dev/null +++ b/src/platform/input/Keyboard.cpp @@ -0,0 +1,20 @@ +#include "Keyboard.h" + +/* +const int KeyboardAction::KEYUP = 0; +const int KeyboardAction::KEYDOWN = 1; +*/ + +int + Keyboard::_states[256] = {0}; + +std::vector + Keyboard::_inputs; +std::vector + Keyboard::_inputText; + +int + Keyboard::_index = -1; + +int + Keyboard::_textIndex = -1; \ No newline at end of file diff --git a/src/platform/input/Keyboard.h b/src/platform/input/Keyboard.h new file mode 100755 index 0000000..aaf7a89 --- /dev/null +++ b/src/platform/input/Keyboard.h @@ -0,0 +1,137 @@ +#ifndef KEYBOARD_H__ +#define KEYBOARD_H__ + +#include + +/** A keyboard action; key-down or key-up */ +class KeyboardAction +{ +public: + static const int KEYUP = 0; + static const int KEYDOWN = 1; + + KeyboardAction(unsigned char keyCode, int state) { + this->key = keyCode; + this->state = state; + } + + int state; + unsigned char key; +}; + +/* Iterators */ +typedef std::vector KeyboardActionVec; +typedef KeyboardActionVec::iterator KeyboardActionIt; +typedef KeyboardActionVec::const_iterator KeyboardActionCIt; + +/** A static keyboard class, written to resemble the one in lwjgl somewhat */ +class Keyboard +{ +public: + static const int KEY_A = 65; + static const int KEY_B = 66; + static const int KEY_C = 67; + static const int KEY_D = 68; + static const int KEY_E = 69; + static const int KEY_F = 70; + static const int KEY_G = 71; + static const int KEY_H = 72; + static const int KEY_I = 73; + static const int KEY_J = 74; + static const int KEY_K = 75; + static const int KEY_L = 76; + static const int KEY_M = 77; + static const int KEY_N = 78; + static const int KEY_O = 79; + static const int KEY_P = 80; + static const int KEY_Q = 81; + static const int KEY_R = 82; + static const int KEY_S = 83; + static const int KEY_T = 84; + static const int KEY_U = 85; + static const int KEY_V = 86; + static const int KEY_W = 87; + static const int KEY_X = 88; + static const int KEY_Y = 89; + static const int KEY_Z = 90; + + static const int KEY_BACKSPACE = 8; + static const int KEY_RETURN = 13; + + static const int KEY_F1 = 112; + static const int KEY_F2 = 113; + static const int KEY_F3 = 114; + static const int KEY_F4 = 115; + static const int KEY_F5 = 116; + static const int KEY_F6 = 117; + static const int KEY_F7 = 118; + static const int KEY_F8 = 119; + static const int KEY_F9 = 120; + static const int KEY_F10 = 121; + static const int KEY_F11 = 122; + static const int KEY_F12 = 123; + + static const int KEY_ESCAPE = 27; + static const int KEY_SPACE = 32; + static const int KEY_LSHIFT = 10; + + static bool isKeyDown(int keyCode) { + return _states[keyCode] == KeyboardAction::KEYDOWN; + } + + static void reset() { + _inputs.clear(); + _inputText.clear(); + _index = -1; + _textIndex = -1; + } + + static void feed(unsigned char keyCode, int state) { + _inputs.push_back(KeyboardAction(keyCode, state)); + + _states[keyCode] = state; + } + static void feedText(char character) { + _inputText.push_back(character); + } + + static bool next() { + if (_index + 1 >= (int)_inputs.size()) + return false; + + ++_index; + return true; + } + + static bool nextTextChar() { + if(_textIndex + 1 >= (int)_inputText.size()) + return false; + ++_textIndex; + return true; + } + + static void rewind() { + _index = -1; + _textIndex = -1; + } + + static int getEventKey() { + return _inputs[_index].key; + } + + static int getEventKeyState() { + return _inputs[_index].state; + } + static char getChar() { + return _inputText[_textIndex]; + } +private: + static int _index; + static int _textIndex; + static int _states[256]; + static std::vector _inputs; + static std::vector _inputText; + static bool _inited; +}; + +#endif//KEYBOARD_H__ diff --git a/src/platform/input/Mouse.cpp b/src/platform/input/Mouse.cpp new file mode 100755 index 0000000..05d77ac --- /dev/null +++ b/src/platform/input/Mouse.cpp @@ -0,0 +1,169 @@ +#include "Mouse.h" + +// +// MouseAction +// +MouseAction::MouseAction(char actionButtonId, char buttonData, short x, short y, char pointerId) +{ + this->action = actionButtonId; + this->data = buttonData; + this->x = x; + this->y = y; + this->dx = this->dy = 0; + this->pointerId = pointerId; +} + +MouseAction::MouseAction(char actionButtonId, char buttonData, short x, short y, short dx, short dy, char pointerId) +{ + this->action = actionButtonId; + this->data = buttonData; + this->x = x; + this->y = y; + this->dx = dx; + this->dy = dy; + this->pointerId = pointerId; +} + +bool MouseAction::isButton() const +{ + return action == ACTION_LEFT || action == ACTION_RIGHT; +} + +// +// MouseDevice +// +MouseDevice::MouseDevice() +: _index(-1), + _x(0), _xOld(0), + _y(0), _yOld(0), + _dx(DELTA_NOTSET), _dy(DELTA_NOTSET), + _firstMovementType(0) +{ + for (int i = 0; i < MAX_NUM_BUTTONS; ++i) + _buttonStates[i] = 0; +} + +void MouseDevice::reset() { + _index = -1; + _inputs.clear(); + _buttonStates[MouseAction::ACTION_WHEEL] = 0; +} + +char MouseDevice::getButtonState(int buttonId) { + if (buttonId < MouseAction::ACTION_LEFT || buttonId > MouseAction::ACTION_WHEEL) + return 0; + return _buttonStates[buttonId]; +} + +bool MouseDevice::isButtonDown(int buttonId) { + return getButtonState(buttonId) != 0; +} + +/// Was the current movement the first movement after mouse down? +bool MouseDevice::wasFirstMovement() { + return _firstMovementType == 1; +} + +short MouseDevice::getX() { return _x; } +short MouseDevice::getY() { return _y; } + +short MouseDevice::getDX() { return (DELTA_NOTSET != _dx)? _dx : _x - _xOld; } +short MouseDevice::getDY() { return (DELTA_NOTSET != _dy)? _dy : _y - _yOld; } + +void MouseDevice::reset2() { + _xOld = _x; + _yOld = _y; + _dx = _dy = DELTA_NOTSET; +} + +bool MouseDevice::next() { + if (_index + 1 >= (int)_inputs.size()) + return false; + + ++_index; + return true; +} + +void MouseDevice::rewind() { + _index = -1; +} + +bool MouseDevice::getEventButtonState() { + return _inputs[_index].data == MouseAction::DATA_DOWN; +} + +char MouseDevice::getEventButton() { + return _inputs[_index].action; +} + +const MouseAction& MouseDevice::getEvent() { return _inputs[_index]; } + +void MouseDevice::feed(char actionButtonId, char buttonData, short x, short y) { + feed(actionButtonId, buttonData, x, y, 0, 0); +} + +void MouseDevice::feed(char actionButtonId, char buttonData, short x, short y, short dx, short dy) { + + _inputs.push_back(MouseAction(actionButtonId, buttonData, x, y, dx, dy, 0)); + + if (actionButtonId != MouseAction::ACTION_MOVE) { + _buttonStates[actionButtonId] = buttonData; + + if (actionButtonId == MouseAction::ACTION_LEFT) + _firstMovementType = -1; + } else { + if (_dx == DELTA_NOTSET) { + _dx = _dy = 0; + } + _dx += dx; + _dy += dy; + + if (_firstMovementType == -1) + _firstMovementType = 1; + else + _firstMovementType = 0; + } + + _xOld = _x; + _yOld = _y; + _x = x; + _y = y; +} + +// +// Mouse - static class wrapping a MouseDevice +// +void Mouse::reset() { _instance.reset(); } + +char Mouse::getButtonState(int buttonId) { return _instance.getButtonState(buttonId); } + +bool Mouse::isButtonDown(int buttonId) { return _instance.isButtonDown(buttonId); } + +short Mouse::getX() { return _instance.getX(); } +short Mouse::getY() { return _instance.getY(); } + +short Mouse::getDX() { return _instance.getDX(); } +short Mouse::getDY() { return _instance.getDY(); } + +void Mouse::reset2() { _instance.reset2(); } + +bool Mouse::next() { return _instance.next(); } +void Mouse::rewind() { _instance.rewind(); } + +bool Mouse::getEventButtonState() { return _instance.getEventButtonState(); } + +char Mouse::getEventButton() { return _instance.getEventButton(); } + +const MouseAction& Mouse::getEvent() { return _instance.getEvent(); } + +void Mouse::feed(char actionButtonId, char buttonData, short x, short y) { + feed(actionButtonId, buttonData, x, y, 0, 0); +} +void Mouse::feed(char actionButtonId, char buttonData, short x, short y, short dx, short dy) { + //LOGI("Mouse::feed: %d, %d, xy: %d, %d\n", actionButtonId, buttonData, x, y); + return _instance.feed(actionButtonId, buttonData, x, y, dx, dy); +} + + +MouseDevice Mouse::_instance; + diff --git a/src/platform/input/Mouse.h b/src/platform/input/Mouse.h new file mode 100755 index 0000000..f7caccc --- /dev/null +++ b/src/platform/input/Mouse.h @@ -0,0 +1,112 @@ +#ifndef MOUSE_H__ +#define MOUSE_H__ + +#include +#include "../log.h" + + +/** A mouse action such as a button press, release or mouse movement */ +class MouseAction +{ +public: + static const char ACTION_MOVE = 0; + static const char ACTION_LEFT = 1; + static const char ACTION_RIGHT = 2; + static const char ACTION_WHEEL = 3; + + static const char DATA_UP = 0; + static const char DATA_DOWN = 1; + + MouseAction(char actionButtonId, char buttonData, short x, short y, char pointerId); + MouseAction(char actionButtonId, char buttonData, short x, short y, short dx, short dy, char pointerId); + + bool isButton() const; + + short x, y; + short dx, dy; + char action; + char data; + char pointerId; +}; + +/* Iterators */ +typedef std::vector MouseActionVec; +typedef MouseActionVec::iterator MouseActionIt; +typedef MouseActionVec::const_iterator MouseActionCIt; + + +class MouseDevice +{ +public: + static const int MAX_NUM_BUTTONS = 4; + + MouseDevice(); + + char getButtonState(int buttonId); + bool isButtonDown(int buttonId); + + /// Was the current movement the first movement after mouse down? + bool wasFirstMovement(); + + short getX(); + short getY(); + + short getDX(); + short getDY(); + + void reset(); + void reset2(); + + bool next(); + void rewind(); + + bool getEventButtonState(); + char getEventButton(); + const MouseAction& getEvent(); + + void feed(char actionButtonId, char buttonData, short x, short y); + void feed(char actionButtonId, char buttonData, short x, short y, short dx, short dy); + +private: + int _index; + short _x, _y; + short _dx, _dy; + short _xOld, _yOld; + char _buttonStates[MAX_NUM_BUTTONS]; + std::vector _inputs; + int _firstMovementType; + static const int DELTA_NOTSET = -9999; +}; + +/** A static mouse class, written to resemble the one in lwjgl somewhat + UPDATE: which is very silly, since it doesn't support multi touch... */ +class Mouse +{ +public: + static char getButtonState(int buttonId); + static bool isButtonDown(int buttonId); + + static short getX(); + static short getY(); + + static short getDX(); + static short getDY(); + + static void reset(); + static void reset2(); + + static bool next(); + static void rewind(); + + static bool getEventButtonState(); + static char getEventButton(); + static const MouseAction& getEvent(); + + static void feed(char actionButtonId, char buttonData, short x, short y); + static void feed(char actionButtonId, char buttonData, short x, short y, short dx, short dy); + +private: + static MouseDevice _instance; +}; + +#endif//MOUSE_H__ diff --git a/src/platform/input/Multitouch.cpp b/src/platform/input/Multitouch.cpp new file mode 100755 index 0000000..8974536 --- /dev/null +++ b/src/platform/input/Multitouch.cpp @@ -0,0 +1,20 @@ +#include "Multitouch.h" + +int + Multitouch::_index = -1, + Multitouch::_activePointerCount = 0, + Multitouch::_activePointerList[Multitouch::MAX_POINTERS] = {-1}, + Multitouch::_activePointerThisUpdateCount = 0, + Multitouch::_activePointerThisUpdateList[Multitouch::MAX_POINTERS] = {-1}; + +bool + Multitouch::_wasPressed[Multitouch::MAX_POINTERS] = {false}, + Multitouch::_wasReleased[Multitouch::MAX_POINTERS] = {false}, + Multitouch::_wasPressedThisUpdate[Multitouch::MAX_POINTERS] = {false}, + Multitouch::_wasReleasedThisUpdate[Multitouch::MAX_POINTERS] = {false}; + +TouchPointer + Multitouch::_pointers[Multitouch::MAX_POINTERS]; + +std::vector + Multitouch::_inputs; diff --git a/src/platform/input/Multitouch.h b/src/platform/input/Multitouch.h new file mode 100755 index 0000000..2b4390d --- /dev/null +++ b/src/platform/input/Multitouch.h @@ -0,0 +1,176 @@ +#ifndef MULTITOUCH_H__ +#define MULTITOUCH_H__ + +#include "Mouse.h" +#include "../log.h" + +typedef MouseDevice TouchPointer; + +class Multitouch +{ +public: + static const int MAX_POINTERS = 12; + + static bool isPointerDown(int pointerId) { + return g(pointerId).isButtonDown(1); + } + + // Returns the first activeExtended (down OR released) pointer id + static int getFirstActivePointerIdEx() { + for (int i = 0; i < MAX_POINTERS; ++i) + if (_pointers[i].isButtonDown(1)) return i; + for (int i = 0; i < MAX_POINTERS; ++i) + if (_wasReleased[i]) return i; + return -1; + } + + // Returns the first activeExtended (down OR released) pointer id + // Compared to getFirstActivePointerIdEx, this method keeps the state the + // tick/render loop, while the former keeps it for a tick. + static int getFirstActivePointerIdExThisUpdate() { + for (int i = 0; i < MAX_POINTERS; ++i) + if (_pointers[i].isButtonDown(1)) return i; + for (int i = 0; i < MAX_POINTERS; ++i) + if (_wasReleasedThisUpdate[i]) return i; + return -1; + } + + // Get a list of all active (i.e. marked as touched/down) pointer ids + static int getActivePointerIds(const int** const ids) { + *ids = _activePointerList; + return _activePointerCount; + } + + // Get a list of all active (i.e. marked as touched/down) pointer ids + static int getActivePointerIdsThisUpdate(const int** const ids) { + *ids = _activePointerThisUpdateList; + return _activePointerThisUpdateCount; + } + + // Called when no more events will be pushed this update + static void commit() { + _activePointerCount = 0; + _activePointerThisUpdateCount = 0; + for (int i = 0; i < MAX_POINTERS; ++i) { + bool isDown = _pointers[i].isButtonDown(1); + if (isDown) { + _activePointerList[_activePointerCount++] = i; + _activePointerThisUpdateList[_activePointerThisUpdateCount++] = i; + } else if (_wasReleased[i]) { + _activePointerThisUpdateList[_activePointerThisUpdateCount++] = i; + } + } + } + + static short getX(int pointerId) { return g(pointerId).getX(); } + static short getY(int pointerId) { return g(pointerId).getY(); } + + static short getDX(int pointerId) { return g(pointerId).getDX(); } + static short getDY(int pointerId) { return g(pointerId).getDY(); } + + static bool wasFirstMovement(int pointerId) { return g(pointerId).wasFirstMovement(); } + + static bool isPressed(int pointerId) { + return _wasPressed[_clampPointerId(pointerId)]; + } + static bool isReleased(int pointerId) { + return _wasReleased[_clampPointerId(pointerId)]; + } + static bool isPressedThisUpdate(int pointerId) { + return _wasPressedThisUpdate[_clampPointerId(pointerId)]; + } + static bool isReleasedThisUpdate(int pointerId) { + return _wasReleasedThisUpdate[_clampPointerId(pointerId)]; + } + + static void reset() { + //LOGI("mtouch is reset\n"); + _inputs.clear(); + _index = -1; + + for (int i = 0; i < MAX_POINTERS; ++i) { + g(i).reset(); + + _wasPressed[i] = false; + _wasReleased[i] = false; + } + } + static void resetThisUpdate() { + for (int i = 0; i < MAX_POINTERS; ++i) { + _wasPressedThisUpdate[i] = false; + _wasReleasedThisUpdate[i] = false; + } + } + + static bool next() { + if (_index + 1 >= (int)_inputs.size()) + return false; + + ++_index; + return true; + } + + static void rewind() { + _index = -1; + } + + static MouseAction& getEvent() { + return _inputs[_index]; + } + + static void feed(char actionButtonId, char buttonData, short x, short y, char pointerId) { + pointerId = _clampPointerId(pointerId); + + _inputs.push_back(MouseAction(actionButtonId, buttonData, x, y, pointerId)); + g(pointerId).feed(actionButtonId, buttonData, x, y); + + if (actionButtonId > 0) { + if (buttonData == MouseAction::DATA_DOWN) { + _wasPressed[pointerId] = true; + _wasPressedThisUpdate[pointerId] = true; + //LOGI("isPressed %d %d\n", pointerId, isPressed(pointerId)); + } + else if (buttonData == MouseAction::DATA_UP) { + _wasReleased[pointerId] = true; + _wasReleasedThisUpdate[pointerId] = true; + //LOGI("isReleased %d %d\n", pointerId, isReleased(pointerId)); + } + } + } + + static int getMaxPointers() { + return MAX_POINTERS; + } + +private: + static TouchPointer& g(int pointerId) { + return _pointers[_clampPointerId(pointerId)]; + } + + static int _clampPointerId(int p) { + if (p < 0) return p; + if (p >= MAX_POINTERS) return MAX_POINTERS-1; + return p; + } + + // Between calls to reset() + static bool _wasPressed[MAX_POINTERS]; + static bool _wasReleased[MAX_POINTERS]; + + // Between calls to resetThisUpdate() + static bool _wasPressedThisUpdate[MAX_POINTERS]; + static bool _wasReleasedThisUpdate[MAX_POINTERS]; + + static TouchPointer _pointers[MAX_POINTERS]; + static std::vector _inputs; + + static int _activePointerList[MAX_POINTERS]; + static int _activePointerCount; + + static int _activePointerThisUpdateList[MAX_POINTERS]; + static int _activePointerThisUpdateCount; + + static int _index; +}; + +#endif /*MULTITOUCH_H__*/ diff --git a/src/platform/log.h b/src/platform/log.h new file mode 100755 index 0000000..d660a90 --- /dev/null +++ b/src/platform/log.h @@ -0,0 +1,47 @@ +#ifndef LOG_H__ +#define LOG_H__ + +#ifdef __cplusplus + #include +#else + #include +#endif + +#define __LOG_PUBLISH(...) do { __VA_ARGS__; } while(0) + +#ifdef ANDROID + #include + #ifdef ANDROID_PUBLISH + #define LOGV(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #define LOGI(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #define LOGW(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #define LOGE(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #else + // @todo @fix; Obiously the tag shouldn't be hardcoded in here.. + #define LOGV(...) ((void)__android_log_print( ANDROID_LOG_VERBOSE, "MinecraftPE", __VA_ARGS__ )) + #define LOGI(...) ((void)__android_log_print( ANDROID_LOG_INFO, "MinecraftPE", __VA_ARGS__ )) + #define LOGW(...) ((void)__android_log_print( ANDROID_LOG_WARN, "MinecraftPE", __VA_ARGS__ )) + #define LOGE(...) ((void)__android_log_print( ANDROID_LOG_ERROR, "MinecraftPE", __VA_ARGS__ )) + #define printf LOGI + #endif +#else +#ifdef PUBLISH + #define LOGV(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #define LOGI(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #define LOGW(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) + #define LOGE(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) +#else + #define LOGV(...) (printf(__VA_ARGS__)) + #define LOGI(...) (printf(__VA_ARGS__)) + #define LOGW(...) (printf(__VA_ARGS__)) + #define LOGE(...) (printf(__VA_ARGS__)) +#endif +#endif + +#ifdef _DEBUG + #define LOGVV LOGV +#else + #define LOGVV(fmt, ...) __LOG_PUBLISH(__VA_ARGS__) +#endif + +#endif /*LOG_H__*/ diff --git a/src/platform/time.cpp b/src/platform/time.cpp new file mode 100755 index 0000000..4bfb48d --- /dev/null +++ b/src/platform/time.cpp @@ -0,0 +1,224 @@ +#include "time.h" +#include + +#ifdef WIN32 + #include +#else + #include + #include +#endif + +// Ugly ass temporary solution; +// since gettimeofday() returns seconds & microseconds since +// Epoch(1970) rather than since computer started, getTimeMs() +// would overflow if just using an int -> subtract the number +// of seconds that had passed when starting the app before +// doing any calculations. +#ifdef WIN32 + static long long getStartTime() { + LARGE_INTEGER ts; + QueryPerformanceCounter(&ts); + return ts.QuadPart; + } + static unsigned long long _t_start = getStartTime(); + +#else + static int getStartTime() { + timeval now; + gettimeofday(&now, 0); + return now.tv_sec; + } + static unsigned int _t_start = getStartTime(); +#endif + +#include + +/// Returns a platform dependent time in seconds +/// This is allowed to be here, since getTimeS and getTimeMs both have t(0) +/// as base (and obviously not good for an initial random seed) +int getRawTimeS() { +#ifdef WIN32 + return (int)(GetTickCount() / 1000); +#else + timeval now; + gettimeofday(&now, 0); + return (int)now.tv_sec; +#endif +} + +float getTimeS() { +#ifdef WIN32 + // If the game seems to go with different speeds, this might most + // possibly be the cause. QueryPerformanceCounter has indeed high + // resolution, but (imho) only guaranteed to be correct for (short) + // deltas between consecutive calls + LARGE_INTEGER freq, ts; + QueryPerformanceFrequency(&freq); + QueryPerformanceCounter(&ts); + return (ts.QuadPart - _t_start) / (float)freq.QuadPart; +#else + timeval now; + gettimeofday(&now, 0); + return (float)(now.tv_sec - _t_start) + now.tv_usec / 1000000.0f; +#endif +} + +int getTimeMs() { + return (int)(getTimeS() * 1000.0f); +} + +void sleepMs(int ms) { +#ifdef WIN32 + Sleep(ms); +#else + usleep(ms * 1000); +#endif +} + +#include +int getEpochTimeS() { + return (int)std::time (NULL); +} + + +StopwatchNLast::StopwatchNLast( int numMeasurements ) +: n(numMeasurements), + k(0), + sum(0) +{ + t = new float[n]; + memset(t, 0, n * sizeof(float)); +} + +StopwatchNLast::~StopwatchNLast() { + delete[] t; +} + +float StopwatchNLast::stop() { + float total = Stopwatch::stop(); + float curr = Stopwatch::getLast(); + + float toDelete = t[k]; + if (++k == n) k = 0; + t[k] = curr; + + sum += (curr - toDelete); + + return total; +} + +void StopwatchNLast::print( const std::string& prepend /*= ""*/ ) { + LOGI("%s\tTime (AVGms for the last %d runs): %f (Max: %f)\n", + prepend.c_str(), n, (1000.0f*sum/n), 1000.0f * getMax()); +} + + +// +// Stopwatch +// +Stopwatch::Stopwatch() +: _count(0), + _printcounter(0) +{ + reset(); +} + +void Stopwatch::start() { + _st = getTimeS(); +} + +float Stopwatch::stop() { + if (_st == -1) return 0; + _last = getTimeS() - _st; + if (_last > _max) _max = _last; + _tt += _last; + _st = -1; + ++_count; + return _tt; +} + +float Stopwatch::stopContinue() { + if (_st == -1) return 0; + const float now = getTimeS(); + _last = now - _st; + if (_last > _max) _max = _last; + _tt += _last; + _st = now; + ++_count; + return _tt; +} + +float Stopwatch::getLast() { + return _last; +} + +float Stopwatch::getTotal() { + return _tt; +} + +float Stopwatch::getMax() { + return _max; +} + +int Stopwatch::getCount() { + return _count; +} + +void Stopwatch::reset() { + _st = -1; + _tt = 0; + _max = 0; +} + +void Stopwatch::printEvery( int n, const std::string& prepend /*= ""*/ ) { + if (++_printcounter >= n) { + _printcounter = 0; + print(prepend); + } +} + +void Stopwatch::print( const std::string& prepend /*= ""*/ ) { + if (!_count) return; + LOGI("%s\tTime (AVGms/LTs(MAXs)/TTs, C) : %.3f/%.6f(%.6f)/%.4f, %d\n", + prepend.c_str(), (1000.0f*_tt/_count), _last, _max, _tt, _count); +} + +// +// StopwatchHandler - a collection of StopWatch:es +// +Stopwatch& StopwatchHandler::get( const std::string& s ) { + Map::iterator it = _map.find(s); + if (it != _map.end()) + return *it->second; + + Stopwatch* watch = new Stopwatch; + _map.insert(make_pair(s, watch)); + return *watch; +} + +void StopwatchHandler::clear( const std::string& s ) { + Map::iterator it = _map.find(s); + if (it != _map.end()) { + delete it->second; + } + _map.erase(s); +} + +void StopwatchHandler::clearAll() { + for (Map::iterator it = _map.begin(); it != _map.end(); ++it) + delete it->second; + _map.clear(); +} + +void StopwatchHandler::print() { + for (Map::iterator it = _map.begin(); it != _map.end(); ++it) { + it->second->print(it->first.c_str()); + } +} + +void StopwatchHandler::printEvery( int n ) { + if (++_printcounter >= n) { + _printcounter = 0; + print(); + } +} diff --git a/src/platform/time.h b/src/platform/time.h new file mode 100755 index 0000000..a739328 --- /dev/null +++ b/src/platform/time.h @@ -0,0 +1,111 @@ +#ifndef TIME_H__ +#define TIME_H__ + +#include +#include +#include "log.h" + +float getTimeS(); +int getTimeMs(); +int getRawTimeS(); +int getEpochTimeS(); + +void sleepMs(int ms); + +class Stopwatch { +public: + Stopwatch(); + virtual ~Stopwatch() {} + + void start(); + /** Returns the total number of seconds and stops the clock */ + virtual float stop(); + /* Returns the total number of seconds, but wont stop the clock */ + virtual float stopContinue(); + /** Returns the last measured time interval in seconds */ + float getLast(); + /** Returns the total measured time in seconds */ + float getTotal(); + /** Returns the maximum time between start() and stop() */ + float getMax(); + /** Returns the number of times the watch has been started and stopped */ + int getCount(); + + void reset(); + void printEvery(int n, const std::string& prepend = ""); + virtual void print(const std::string& prepend = ""); +private: + float _st; + float _tt; + float _last; + float _max; + int _count; + int _printcounter; +}; + +class SwStartStopper { +public: + SwStartStopper(Stopwatch& stopwatch) + : _stopwatch(stopwatch) + { + _stopwatch.start(); + } + + ~SwStartStopper() { + _stopwatch.stop(); + } +private: + Stopwatch& _stopwatch; +}; + +class SwStopper { +public: + SwStopper(Stopwatch& stopwatch) + : _stopwatch(stopwatch) + {} + + ~SwStopper() { + _stopwatch.stop(); + } +private: + Stopwatch& _stopwatch; +}; + +class StopwatchHandler { +typedef std::map Map; +public: + StopwatchHandler() + : _printcounter(0) + {} + ~StopwatchHandler() { + clearAll(); + } + Stopwatch& get(const std::string& s); + void clear(const std::string& s); + void clearAll(); + void print(); + void printEvery(int n); + +private: + Map _map; + int _printcounter; +}; + +class StopwatchNLast: public Stopwatch { +public: + StopwatchNLast(int numMeasurements); + ~StopwatchNLast(); + + float stop(); + + virtual void print(const std::string& prepend = ""); +private: + int n; + int k; + float* t; + float sum; + + Stopwatch sw; +}; + +#endif /*TIME_H__*/ diff --git a/src/raknet/AutopatcherPatchContext.h b/src/raknet/AutopatcherPatchContext.h new file mode 100755 index 0000000..4fae91a --- /dev/null +++ b/src/raknet/AutopatcherPatchContext.h @@ -0,0 +1,23 @@ +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// Usage of RakNet is subject to the appropriate license agreement. +/// + +#ifndef __AUTOPATCHER_PATCH_CONTEXT_H +#define __AUTOPATCHER_PATCH_CONTEXT_H + +enum PatchContext +{ + PC_HASH_1_WITH_PATCH, + PC_HASH_2_WITH_PATCH, + PC_WRITE_FILE, + PC_ERROR_FILE_WRITE_FAILURE, + PC_ERROR_PATCH_TARGET_MISSING, + PC_ERROR_PATCH_APPLICATION_FAILURE, + PC_ERROR_PATCH_RESULT_CHECKSUM_FAILURE, + PC_NOTICE_WILL_COPY_ON_RESTART, + PC_NOTICE_FILE_DOWNLOADED, + PC_NOTICE_FILE_DOWNLOADED_PATCH, +}; + +#endif diff --git a/src/raknet/AutopatcherRepositoryInterface.h b/src/raknet/AutopatcherRepositoryInterface.h new file mode 100755 index 0000000..303d321 --- /dev/null +++ b/src/raknet/AutopatcherRepositoryInterface.h @@ -0,0 +1,72 @@ +/// +/// \file AutopatcherRepositoryInterface.h +/// \brief An interface used by AutopatcherServer to get the data necessary to run an autopatcher. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// Usage of RakNet is subject to the appropriate license agreement. +/// + +#ifndef __AUTOPATCHER_REPOSITORY_INTERFACE_H +#define __AUTOPATCHER_REPOSITORY_INTERFACE_H + +#include "IncrementalReadInterface.h" +#include "SimpleMutex.h" + +namespace RakNet +{ +/// Forward declarations +class FileList; +class BitStream; + +/// An interface used by AutopatcherServer to get the data necessary to run an autopatcher. This is up to you to implement for custom repository solutions. +class AutopatcherRepositoryInterface : public IncrementalReadInterface +{ +public: + /// Get list of files added and deleted since a certain date. This is used by AutopatcherServer and not usually explicitly called. + /// \param[in] applicationName A null terminated string identifying the application + /// \param[out] addedFiles A list of the current versions of filenames with hashes as their data that were created after \a sinceData + /// \param[out] deletedFiles A list of the current versions of filenames that were deleted after \a sinceData + /// \param[in] An input date, in whatever format your repository uses + /// \param[out] currentDate The current server date, in whatever format your repository uses + /// \return True on success, false on failure. + virtual bool GetChangelistSinceDate(const char *applicationName, FileList *addedFiles, FileList *deletedFiles, double sinceDate)=0; + + /// Get patches (or files) for every file in input, assuming that input has a hash for each of those files. + /// \param[in] applicationName A null terminated string identifying the application + /// \param[in] input A list of files with SHA1_LENGTH byte hashes to get from the database. + /// \param[out] patchList You should return list of files with either the filedata or the patch. This is a subset of \a input. The context data for each file will be either PC_WRITE_FILE (to just write the file) or PC_HASH_WITH_PATCH (to patch). If PC_HASH_WITH_PATCH, then the file contains a SHA1_LENGTH byte patch followed by the hash. The datalength is patchlength + SHA1_LENGTH + /// \param[out] currentDate The current server date, in whatever format your repository uses + /// \return True on success, false on failure. + virtual bool GetPatches(const char *applicationName, FileList *input, FileList *patchList)=0; + + /// For the most recent update, return files that were patched, added, or deleted. For files that were patched, return both the patch in \a patchedFiles and the current version in \a updatedFiles + /// The cache will be used if the client last patched between \a priorRowPatchTime and \a mostRecentRowPatchTime + /// No files changed will be returned to the client if the client last patched after mostRecentRowPatchTime + /// \param[in,out] applicationName Name of the application to get patches for. If empty, uses the most recently updated application, and the string will be updated to reflect this name. + /// \param[out] patchedFiles Given the most recent update, if a file was patched, add it to this list. The context data for each file will be PC_HASH_WITH_PATCH. The first 4 bytes of data should be a hash of the file being patched. The second 4 bytes should be the hash of the file after the patch. The remaining bytes should be the patch itself. + /// \param[out] updatedFiles The current value of the file. List should have the same length and order as \a patchedFiles + /// \param[out] updatedFileHashes The hash of the current value of the file. List should have the same length and order as \a patchedFiles + /// \param[out] deletedFiles Files that were deleted in the last patch. + /// \param[out] priorRowPatchTime When the patch before the most recent patch took place. 0 means never. + /// \param[out] mostRecentRowPatchTime When the most recent patch took place. 0 means never. + /// \return true on success, false on failure + virtual bool GetMostRecentChangelistWithPatches( + RakNet::RakString &applicationName, + FileList *patchedFiles, + FileList *updatedFiles, + FileList *updatedFileHashes, + FileList *deletedFiles, + double *priorRowPatchTime, + double *mostRecentRowPatchTime)=0; + + /// \return Whatever this function returns is sent from the AutopatcherServer to the AutopatcherClient when one of the above functions returns false. + virtual const char *GetLastError(void) const=0; + + /// \return Passed to FileListTransfer::Send() as the _chunkSize parameter. + virtual const int GetIncrementalReadChunkSize(void) const=0; +}; + +} // namespace RakNet + +#endif + diff --git a/src/raknet/BitStream.cpp b/src/raknet/BitStream.cpp new file mode 100755 index 0000000..7a0a14f --- /dev/null +++ b/src/raknet/BitStream.cpp @@ -0,0 +1,1172 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#if defined(_MSC_VER) && _MSC_VER < 1299 // VC6 doesn't support template specialization +#include "BitStream_NoTemplate.cpp" +#else + +#include "BitStream.h" +#include +#include +#include + +#include "SocketIncludes.h" +#include "RakNetDefines.h" + + + +#if defined(_WIN32) +#include // htonl +#include +#include +#include + + +#else +#include +#include +#if defined(ANDROID) +#include +#else +#include +#endif +#include +#endif + +// MSWin uses _copysign, others use copysign... +#ifndef _WIN32 +#define _copysign copysign +#endif + +using namespace RakNet; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +STATIC_FACTORY_DEFINITIONS(BitStream,BitStream) + +BitStream::BitStream() +{ + numberOfBitsUsed = 0; + //numberOfBitsAllocated = 32 * 8; + numberOfBitsAllocated = BITSTREAM_STACK_ALLOCATION_SIZE * 8; + readOffset = 0; + //data = ( unsigned char* ) rakMalloc_Ex( 32, _FILE_AND_LINE_ ); + data = ( unsigned char* ) stackData; + +#ifdef _DEBUG + // RakAssert( data ); +#endif + //memset(data, 0, 32); + copyData = true; +} + +BitStream::BitStream( const unsigned int initialBytesToAllocate ) +{ + numberOfBitsUsed = 0; + readOffset = 0; + if (initialBytesToAllocate <= BITSTREAM_STACK_ALLOCATION_SIZE) + { + data = ( unsigned char* ) stackData; + numberOfBitsAllocated = BITSTREAM_STACK_ALLOCATION_SIZE * 8; + } + else + { + data = ( unsigned char* ) rakMalloc_Ex( (size_t) initialBytesToAllocate, _FILE_AND_LINE_ ); + numberOfBitsAllocated = initialBytesToAllocate << 3; + } +#ifdef _DEBUG + RakAssert( data ); +#endif + // memset(data, 0, initialBytesToAllocate); + copyData = true; +} + +BitStream::BitStream( unsigned char* _data, const unsigned int lengthInBytes, bool _copyData ) +{ + numberOfBitsUsed = lengthInBytes << 3; + readOffset = 0; + copyData = _copyData; + numberOfBitsAllocated = lengthInBytes << 3; + + if ( copyData ) + { + if ( lengthInBytes > 0 ) + { + if (lengthInBytes < BITSTREAM_STACK_ALLOCATION_SIZE) + { + data = ( unsigned char* ) stackData; + numberOfBitsAllocated = BITSTREAM_STACK_ALLOCATION_SIZE << 3; + } + else + { + data = ( unsigned char* ) rakMalloc_Ex( (size_t) lengthInBytes, _FILE_AND_LINE_ ); + } +#ifdef _DEBUG + RakAssert( data ); +#endif + memcpy( data, _data, (size_t) lengthInBytes ); + } + else + data = 0; + } + else + data = ( unsigned char* ) _data; +} + +// Use this if you pass a pointer copy to the constructor (_copyData==false) and want to overallocate to prevent reallocation +void BitStream::SetNumberOfBitsAllocated( const BitSize_t lengthInBits ) +{ +#ifdef _DEBUG + RakAssert( lengthInBits >= ( BitSize_t ) numberOfBitsAllocated ); +#endif + numberOfBitsAllocated = lengthInBits; +} + +BitStream::~BitStream() +{ + if ( copyData && numberOfBitsAllocated > (BITSTREAM_STACK_ALLOCATION_SIZE << 3)) + rakFree_Ex( data , _FILE_AND_LINE_ ); // Use realloc and free so we are more efficient than delete and new for resizing +} + +void BitStream::Reset( void ) +{ + // Note: Do NOT reallocate memory because BitStream is used + // in places to serialize/deserialize a buffer. Reallocation + // is a dangerous operation (may result in leaks). + + if ( numberOfBitsUsed > 0 ) + { + // memset(data, 0, BITS_TO_BYTES(numberOfBitsUsed)); + } + + // Don't free memory here for speed efficiency + //free(data); // Use realloc and free so we are more efficient than delete and new for resizing + numberOfBitsUsed = 0; + + //numberOfBitsAllocated=8; + readOffset = 0; + + //data=(unsigned char*)rakMalloc_Ex(1, _FILE_AND_LINE_); + // if (numberOfBitsAllocated>0) + // memset(data, 0, BITS_TO_BYTES(numberOfBitsAllocated)); +} + +// Write an array or casted stream +void BitStream::Write( const char* inputByteArray, const unsigned int numberOfBytes ) +{ + if (numberOfBytes==0) + return; + + // Optimization: + if ((numberOfBitsUsed & 7) == 0) + { + AddBitsAndReallocate( BYTES_TO_BITS(numberOfBytes) ); + memcpy(data+BITS_TO_BYTES(numberOfBitsUsed), inputByteArray, (size_t) numberOfBytes); + numberOfBitsUsed+=BYTES_TO_BITS(numberOfBytes); + } + else + { + WriteBits( ( unsigned char* ) inputByteArray, numberOfBytes * 8, true ); + } + +} +void BitStream::Write( BitStream *bitStream) +{ + Write(bitStream, bitStream->GetNumberOfBitsUsed()-bitStream->GetReadOffset()); +} +void BitStream::Write( BitStream *bitStream, BitSize_t numberOfBits ) +{ + AddBitsAndReallocate( numberOfBits ); + BitSize_t numberOfBitsMod8; + + if ((bitStream->GetReadOffset()&7)==0 && (numberOfBitsUsed&7)==0) + { + int readOffsetBytes=bitStream->GetReadOffset()/8; + int numBytes=numberOfBits/8; + memcpy(data + (numberOfBitsUsed >> 3), bitStream->GetData()+readOffsetBytes, numBytes); + numberOfBits-=BYTES_TO_BITS(numBytes); + bitStream->SetReadOffset(BYTES_TO_BITS(numBytes+readOffsetBytes)); + numberOfBitsUsed+=BYTES_TO_BITS(numBytes); + } + + while (numberOfBits-->0 && bitStream->readOffset + 1 <= bitStream->numberOfBitsUsed) + { + numberOfBitsMod8 = numberOfBitsUsed & 7; + if ( numberOfBitsMod8 == 0 ) + { + // New byte + if (bitStream->data[ bitStream->readOffset >> 3 ] & ( 0x80 >> ( bitStream->readOffset & 7 ) ) ) + { + // Write 1 + data[ numberOfBitsUsed >> 3 ] = 0x80; + } + else + { + // Write 0 + data[ numberOfBitsUsed >> 3 ] = 0; + } + + } + else + { + // Existing byte + if (bitStream->data[ bitStream->readOffset >> 3 ] & ( 0x80 >> ( bitStream->readOffset & 7 ) ) ) + data[ numberOfBitsUsed >> 3 ] |= 0x80 >> ( numberOfBitsMod8 ); // Set the bit to 1 + // else 0, do nothing + } + + bitStream->readOffset++; + numberOfBitsUsed++; + } +} +void BitStream::Write( BitStream &bitStream, BitSize_t numberOfBits ) +{ + Write(&bitStream, numberOfBits); +} +void BitStream::Write( BitStream &bitStream ) +{ + Write(&bitStream); +} +bool BitStream::Read( BitStream *bitStream, BitSize_t numberOfBits ) +{ + if (GetNumberOfUnreadBits() < numberOfBits) + return false; + bitStream->Write(this, numberOfBits); + return true; +} +bool BitStream::Read( BitStream *bitStream ) +{ + bitStream->Write(this); + return true; +} +bool BitStream::Read( BitStream &bitStream, BitSize_t numberOfBits ) +{ + if (GetNumberOfUnreadBits() < numberOfBits) + return false; + bitStream.Write(this, numberOfBits); + return true; +} +bool BitStream::Read( BitStream &bitStream ) +{ + bitStream.Write(this); + return true; +} + +// Read an array or casted stream +bool BitStream::Read( char* outByteArray, const unsigned int numberOfBytes ) +{ + // Optimization: + if ((readOffset & 7) == 0) + { + if ( readOffset + ( numberOfBytes << 3 ) > numberOfBitsUsed ) + return false; + + // Write the data + memcpy( outByteArray, data + ( readOffset >> 3 ), (size_t) numberOfBytes ); + + readOffset += numberOfBytes << 3; + return true; + } + else + { + return ReadBits( ( unsigned char* ) outByteArray, numberOfBytes * 8 ); + } +} + +// Sets the read pointer back to the beginning of your data. +void BitStream::ResetReadPointer( void ) +{ + readOffset = 0; +} + +// Sets the write pointer back to the beginning of your data. +void BitStream::ResetWritePointer( void ) +{ + numberOfBitsUsed = 0; +} + +// Write a 0 +void BitStream::Write0( void ) +{ + AddBitsAndReallocate( 1 ); + + // New bytes need to be zeroed + if ( ( numberOfBitsUsed & 7 ) == 0 ) + data[ numberOfBitsUsed >> 3 ] = 0; + + numberOfBitsUsed++; +} + +// Write a 1 +void BitStream::Write1( void ) +{ + AddBitsAndReallocate( 1 ); + + BitSize_t numberOfBitsMod8 = numberOfBitsUsed & 7; + + if ( numberOfBitsMod8 == 0 ) + data[ numberOfBitsUsed >> 3 ] = 0x80; + else + data[ numberOfBitsUsed >> 3 ] |= 0x80 >> ( numberOfBitsMod8 ); // Set the bit to 1 + + numberOfBitsUsed++; +} + +// Returns true if the next data read is a 1, false if it is a 0 +bool BitStream::ReadBit( void ) +{ + bool result = ( data[ readOffset >> 3 ] & ( 0x80 >> ( readOffset & 7 ) ) ) !=0; + readOffset++; + return result; +} + +// Align the bitstream to the byte boundary and then write the specified number of bits. +// This is faster than WriteBits but wastes the bits to do the alignment and requires you to call +// SetReadToByteAlignment at the corresponding read position +void BitStream::WriteAlignedBytes( const unsigned char* inByteArray, const unsigned int numberOfBytesToWrite ) +{ + AlignWriteToByteBoundary(); + Write((const char*) inByteArray, numberOfBytesToWrite); +} +void BitStream::EndianSwapBytes( int byteOffset, int length ) +{ + if (DoEndianSwap()) + { + ReverseBytesInPlace(data+byteOffset, length); + } +} +/// Aligns the bitstream, writes inputLength, and writes input. Won't write beyond maxBytesToWrite +void BitStream::WriteAlignedBytesSafe( const char *inByteArray, const unsigned int inputLength, const unsigned int maxBytesToWrite ) +{ + if (inByteArray==0 || inputLength==0) + { + WriteCompressed((unsigned int)0); + return; + } + WriteCompressed(inputLength); + WriteAlignedBytes((const unsigned char*) inByteArray, inputLength < maxBytesToWrite ? inputLength : maxBytesToWrite); +} + +// Read bits, starting at the next aligned bits. Note that the modulus 8 starting offset of the +// sequence must be the same as was used with WriteBits. This will be a problem with packet coalescence +// unless you byte align the coalesced packets. +bool BitStream::ReadAlignedBytes( unsigned char* inOutByteArray, const unsigned int numberOfBytesToRead ) +{ +#ifdef _DEBUG + RakAssert( numberOfBytesToRead > 0 ); +#endif + + if ( numberOfBytesToRead <= 0 ) + return false; + + // Byte align + AlignReadToByteBoundary(); + + if ( readOffset + ( numberOfBytesToRead << 3 ) > numberOfBitsUsed ) + return false; + + // Write the data + memcpy( inOutByteArray, data + ( readOffset >> 3 ), (size_t) numberOfBytesToRead ); + + readOffset += numberOfBytesToRead << 3; + + return true; +} +bool BitStream::ReadAlignedBytesSafe( char *inOutByteArray, int &inputLength, const int maxBytesToRead ) +{ + return ReadAlignedBytesSafe(inOutByteArray,(unsigned int&) inputLength,(unsigned int)maxBytesToRead); +} +bool BitStream::ReadAlignedBytesSafe( char *inOutByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ) +{ + if (ReadCompressed(inputLength)==false) + return false; + if (inputLength > maxBytesToRead) + inputLength=maxBytesToRead; + if (inputLength==0) + return true; + return ReadAlignedBytes((unsigned char*) inOutByteArray, inputLength); +} +bool BitStream::ReadAlignedBytesSafeAlloc( char **outByteArray, int &inputLength, const unsigned int maxBytesToRead ) +{ + return ReadAlignedBytesSafeAlloc(outByteArray,(unsigned int&) inputLength, maxBytesToRead); +} +bool BitStream::ReadAlignedBytesSafeAlloc( char ** outByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ) +{ + rakFree_Ex(*outByteArray, _FILE_AND_LINE_ ); + *outByteArray=0; + if (ReadCompressed(inputLength)==false) + return false; + if (inputLength > maxBytesToRead) + inputLength=maxBytesToRead; + if (inputLength==0) + return true; + *outByteArray = (char*) rakMalloc_Ex( (size_t) inputLength, _FILE_AND_LINE_ ); + return ReadAlignedBytes((unsigned char*) *outByteArray, inputLength); +} + +// Write numberToWrite bits from the input source +void BitStream::WriteBits( const unsigned char* inByteArray, BitSize_t numberOfBitsToWrite, const bool rightAlignedBits ) +{ +// if (numberOfBitsToWrite<=0) +// return; + + AddBitsAndReallocate( numberOfBitsToWrite ); + + const BitSize_t numberOfBitsUsedMod8 = numberOfBitsUsed & 7; + + // If currently aligned and numberOfBits is a multiple of 8, just memcpy for speed + if (numberOfBitsUsedMod8==0 && (numberOfBitsToWrite&7)==0) + { + memcpy( data + ( numberOfBitsUsed >> 3 ), inByteArray, numberOfBitsToWrite>>3); + numberOfBitsUsed+=numberOfBitsToWrite; + return; + } + + unsigned char dataByte; + const unsigned char* inputPtr=inByteArray; + + // Faster to put the while at the top surprisingly enough + while ( numberOfBitsToWrite > 0 ) + //do + { + dataByte = *( inputPtr++ ); + + if ( numberOfBitsToWrite < 8 && rightAlignedBits ) // rightAlignedBits means in the case of a partial byte, the bits are aligned from the right (bit 0) rather than the left (as in the normal internal representation) + dataByte <<= 8 - numberOfBitsToWrite; // shift left to get the bits on the left, as in our internal representation + + // Writing to a new byte each time + if ( numberOfBitsUsedMod8 == 0 ) + * ( data + ( numberOfBitsUsed >> 3 ) ) = dataByte; + else + { + // Copy over the new data. + *( data + ( numberOfBitsUsed >> 3 ) ) |= dataByte >> ( numberOfBitsUsedMod8 ); // First half + + if ( 8 - ( numberOfBitsUsedMod8 ) < 8 && 8 - ( numberOfBitsUsedMod8 ) < numberOfBitsToWrite ) // If we didn't write it all out in the first half (8 - (numberOfBitsUsed%8) is the number we wrote in the first half) + { + *( data + ( numberOfBitsUsed >> 3 ) + 1 ) = (unsigned char) ( dataByte << ( 8 - ( numberOfBitsUsedMod8 ) ) ); // Second half (overlaps byte boundary) + } + } + + if ( numberOfBitsToWrite >= 8 ) + { + numberOfBitsUsed += 8; + numberOfBitsToWrite -= 8; + } + else + { + numberOfBitsUsed += numberOfBitsToWrite; + numberOfBitsToWrite=0; + } + } + // } while(numberOfBitsToWrite>0); +} + +// Set the stream to some initial data. For internal use +void BitStream::SetData( unsigned char *inByteArray ) +{ + data=inByteArray; + copyData=false; +} + +// Assume the input source points to a native type, compress and write it +void BitStream::WriteCompressed( const unsigned char* inByteArray, + const unsigned int size, const bool unsignedData ) +{ + BitSize_t currentByte = ( size >> 3 ) - 1; // PCs + + unsigned char byteMatch; + + if ( unsignedData ) + { + byteMatch = 0; + } + + else + { + byteMatch = 0xFF; + } + + // Write upper bytes with a single 1 + // From high byte to low byte, if high byte is a byteMatch then write a 1 bit. Otherwise write a 0 bit and then write the remaining bytes + while ( currentByte > 0 ) + { + if ( inByteArray[ currentByte ] == byteMatch ) // If high byte is byteMatch (0 of 0xff) then it would have the same value shifted + { + bool b = true; + Write( b ); + } + else + { + // Write the remainder of the data after writing 0 + bool b = false; + Write( b ); + + WriteBits( inByteArray, ( currentByte + 1 ) << 3, true ); + // currentByte--; + + + return ; + } + + currentByte--; + } + + // If the upper half of the last byte is a 0 (positive) or 16 (negative) then write a 1 and the remaining 4 bits. Otherwise write a 0 and the 8 bites. + if ( ( unsignedData && ( ( *( inByteArray + currentByte ) ) & 0xF0 ) == 0x00 ) || + ( unsignedData == false && ( ( *( inByteArray + currentByte ) ) & 0xF0 ) == 0xF0 ) ) + { + bool b = true; + Write( b ); + WriteBits( inByteArray + currentByte, 4, true ); + } + + else + { + bool b = false; + Write( b ); + WriteBits( inByteArray + currentByte, 8, true ); + } +} + +// Read numberOfBitsToRead bits to the output source +// alignBitsToRight should be set to true to convert internal bitstream data to userdata +// It should be false if you used WriteBits with rightAlignedBits false +bool BitStream::ReadBits( unsigned char *inOutByteArray, BitSize_t numberOfBitsToRead, const bool alignBitsToRight ) +{ +#ifdef _DEBUG + // RakAssert( numberOfBitsToRead > 0 ); +#endif + if (numberOfBitsToRead<=0) + return false; + + if ( readOffset + numberOfBitsToRead > numberOfBitsUsed ) + return false; + + + const BitSize_t readOffsetMod8 = readOffset & 7; + + // If currently aligned and numberOfBits is a multiple of 8, just memcpy for speed + if (readOffsetMod8==0 && (numberOfBitsToRead&7)==0) + { + memcpy( inOutByteArray, data + ( readOffset >> 3 ), numberOfBitsToRead>>3); + readOffset+=numberOfBitsToRead; + return true; + } + + + + BitSize_t offset = 0; + + memset( inOutByteArray, 0, (size_t) BITS_TO_BYTES( numberOfBitsToRead ) ); + + while ( numberOfBitsToRead > 0 ) + { + *( inOutByteArray + offset ) |= *( data + ( readOffset >> 3 ) ) << ( readOffsetMod8 ); // First half + + if ( readOffsetMod8 > 0 && numberOfBitsToRead > 8 - ( readOffsetMod8 ) ) // If we have a second half, we didn't read enough bytes in the first half + *( inOutByteArray + offset ) |= *( data + ( readOffset >> 3 ) + 1 ) >> ( 8 - ( readOffsetMod8 ) ); // Second half (overlaps byte boundary) + + if (numberOfBitsToRead>=8) + { + numberOfBitsToRead -= 8; + readOffset += 8; + offset++; + } + else + { + int neg = (int) numberOfBitsToRead - 8; + + if ( neg < 0 ) // Reading a partial byte for the last byte, shift right so the data is aligned on the right + { + + if ( alignBitsToRight ) + * ( inOutByteArray + offset ) >>= -neg; + + readOffset += 8 + neg; + } + else + readOffset += 8; + + offset++; + + numberOfBitsToRead=0; + } + } + + return true; +} + +// Assume the input source points to a compressed native type. Decompress and read it +bool BitStream::ReadCompressed( unsigned char* inOutByteArray, + const unsigned int size, const bool unsignedData ) +{ + unsigned int currentByte = ( size >> 3 ) - 1; + + + unsigned char byteMatch, halfByteMatch; + + if ( unsignedData ) + { + byteMatch = 0; + halfByteMatch = 0; + } + + else + { + byteMatch = 0xFF; + halfByteMatch = 0xF0; + } + + // Upper bytes are specified with a single 1 if they match byteMatch + // From high byte to low byte, if high byte is a byteMatch then write a 1 bit. Otherwise write a 0 bit and then write the remaining bytes + while ( currentByte > 0 ) + { + // If we read a 1 then the data is byteMatch. + + bool b; + + if ( Read( b ) == false ) + return false; + + if ( b ) // Check that bit + { + inOutByteArray[ currentByte ] = byteMatch; + currentByte--; + } + else + { + // Read the rest of the bytes + + if ( ReadBits( inOutByteArray, ( currentByte + 1 ) << 3 ) == false ) + return false; + + return true; + } + } + + // All but the first bytes are byteMatch. If the upper half of the last byte is a 0 (positive) or 16 (negative) then what we read will be a 1 and the remaining 4 bits. + // Otherwise we read a 0 and the 8 bytes + //RakAssert(readOffset+1 <=numberOfBitsUsed); // If this assert is hit the stream wasn't long enough to read from + if ( readOffset + 1 > numberOfBitsUsed ) + return false; + + bool b=false; + + if ( Read( b ) == false ) + return false; + + if ( b ) // Check that bit + { + + if ( ReadBits( inOutByteArray + currentByte, 4 ) == false ) + return false; + + inOutByteArray[ currentByte ] |= halfByteMatch; // We have to set the high 4 bits since these are set to 0 by ReadBits + } + else + { + if ( ReadBits( inOutByteArray + currentByte, 8 ) == false ) + return false; + } + + return true; +} + +// Reallocates (if necessary) in preparation of writing numberOfBitsToWrite +void BitStream::AddBitsAndReallocate( const BitSize_t numberOfBitsToWrite ) +{ + BitSize_t newNumberOfBitsAllocated = numberOfBitsToWrite + numberOfBitsUsed; + + if ( numberOfBitsToWrite + numberOfBitsUsed > 0 && ( ( numberOfBitsAllocated - 1 ) >> 3 ) < ( ( newNumberOfBitsAllocated - 1 ) >> 3 ) ) // If we need to allocate 1 or more new bytes + { +#ifdef _DEBUG + // If this assert hits then we need to specify true for the third parameter in the constructor + // It needs to reallocate to hold all the data and can't do it unless we allocated to begin with + // Often hits if you call Write or Serialize on a read-only bitstream + RakAssert( copyData == true ); +#endif + + // Less memory efficient but saves on news and deletes + /// Cap to 1 meg buffer to save on huge allocations + newNumberOfBitsAllocated = ( numberOfBitsToWrite + numberOfBitsUsed ) * 2; + if (newNumberOfBitsAllocated - ( numberOfBitsToWrite + numberOfBitsUsed ) > 1048576 ) + newNumberOfBitsAllocated = numberOfBitsToWrite + numberOfBitsUsed + 1048576; + + // BitSize_t newByteOffset = BITS_TO_BYTES( numberOfBitsAllocated ); + // Use realloc and free so we are more efficient than delete and new for resizing + BitSize_t amountToAllocate = BITS_TO_BYTES( newNumberOfBitsAllocated ); + if (data==(unsigned char*)stackData) + { + if (amountToAllocate > BITSTREAM_STACK_ALLOCATION_SIZE) + { + data = ( unsigned char* ) rakMalloc_Ex( (size_t) amountToAllocate, _FILE_AND_LINE_ ); + RakAssert(data); + + // need to copy the stack data over to our new memory area too + memcpy ((void *)data, (void *)stackData, (size_t) BITS_TO_BYTES( numberOfBitsAllocated )); + } + } + else + { + data = ( unsigned char* ) rakRealloc_Ex( data, (size_t) amountToAllocate, _FILE_AND_LINE_ ); + } + +#ifdef _DEBUG + RakAssert( data ); // Make sure realloc succeeded +#endif + // memset(data+newByteOffset, 0, ((newNumberOfBitsAllocated-1)>>3) - ((numberOfBitsAllocated-1)>>3)); // Set the new data block to 0 + } + + if ( newNumberOfBitsAllocated > numberOfBitsAllocated ) + numberOfBitsAllocated = newNumberOfBitsAllocated; +} +BitSize_t BitStream::GetNumberOfBitsAllocated(void) const +{ + return numberOfBitsAllocated; +} +void BitStream::PadWithZeroToByteLength( unsigned int bytes ) +{ + if (GetNumberOfBytesUsed() < bytes) + { + AlignWriteToByteBoundary(); + unsigned int numToWrite = bytes - GetNumberOfBytesUsed(); + AddBitsAndReallocate( BYTES_TO_BITS(numToWrite) ); + memset(data+BITS_TO_BYTES(numberOfBitsUsed), 0, (size_t) numToWrite); + numberOfBitsUsed+=BYTES_TO_BITS(numToWrite); + } +} + +/* +// Julius Goryavsky's version of Harley's algorithm. +// 17 elementary ops plus an indexed load, if the machine +// has "and not." + +int nlz10b(unsigned x) { + + static char table[64] = + {32,20,19, u, u,18, u, 7, 10,17, u, u,14, u, 6, u, + u, 9, u,16, u, u, 1,26, u,13, u, u,24, 5, u, u, + u,21, u, 8,11, u,15, u, u, u, u, 2,27, 0,25, u, + 22, u,12, u, u, 3,28, u, 23, u, 4,29, u, u,30,31}; + + x = x | (x >> 1); // Propagate leftmost + x = x | (x >> 2); // 1-bit to the right. + x = x | (x >> 4); + x = x | (x >> 8); + x = x & ~(x >> 16); + x = x*0xFD7049FF; // Activate this line or the following 3. +// x = (x << 9) - x; // Multiply by 511. +// x = (x << 11) - x; // Multiply by 2047. +// x = (x << 14) - x; // Multiply by 16383. + return table[x >> 26]; +} +*/ +int BitStream::NumberOfLeadingZeroes( int8_t x ) {return NumberOfLeadingZeroes((uint8_t)x);} +int BitStream::NumberOfLeadingZeroes( uint8_t x ) +{ + uint8_t y; + int n; + + n = 8; + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} +int BitStream::NumberOfLeadingZeroes( int16_t x ) {return NumberOfLeadingZeroes((uint16_t)x);} +int BitStream::NumberOfLeadingZeroes( uint16_t x ) +{ + uint16_t y; + int n; + + n = 16; + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} +int BitStream::NumberOfLeadingZeroes( int32_t x ) {return NumberOfLeadingZeroes((uint32_t)x);} +int BitStream::NumberOfLeadingZeroes( uint32_t x ) +{ + uint32_t y; + int n; + + n = 32; + y = x >>16; if (y != 0) {n = n -16; x = y;} + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} +int BitStream::NumberOfLeadingZeroes( int64_t x ) {return NumberOfLeadingZeroes((uint64_t)x);} +int BitStream::NumberOfLeadingZeroes( uint64_t x ) +{ + uint64_t y; + int n; + + n = 64; + y = x >>32; if (y != 0) {n = n -32; x = y;} + y = x >>16; if (y != 0) {n = n -16; x = y;} + y = x >> 8; if (y != 0) {n = n - 8; x = y;} + y = x >> 4; if (y != 0) {n = n - 4; x = y;} + y = x >> 2; if (y != 0) {n = n - 2; x = y;} + y = x >> 1; if (y != 0) return n - 2; + return (int)(n - x); +} + +// Should hit if reads didn't match writes +void BitStream::AssertStreamEmpty( void ) +{ + RakAssert( readOffset == numberOfBitsUsed ); +} +void BitStream::PrintBits( char *out ) const +{ + if ( numberOfBitsUsed <= 0 ) + { + strcpy(out, "No bits\n" ); + return; + } + + unsigned int strIndex=0; + for ( BitSize_t counter = 0; counter < BITS_TO_BYTES( numberOfBitsUsed ) && strIndex < 2000 ; counter++ ) + { + BitSize_t stop; + + if ( counter == ( numberOfBitsUsed - 1 ) >> 3 ) + stop = 8 - ( ( ( numberOfBitsUsed - 1 ) & 7 ) + 1 ); + else + stop = 0; + + for ( BitSize_t counter2 = 7; counter2 >= stop; counter2-- ) + { + if ( ( data[ counter ] >> counter2 ) & 1 ) + out[strIndex++]='1'; + else + out[strIndex++]='0'; + + if (counter2==0) + break; + } + + out[strIndex++]=' '; + } + + out[strIndex++]='\n'; + + out[strIndex++]=0; +} +void BitStream::PrintBits( void ) const +{ + char out[2048]; + PrintBits(out); + RAKNET_DEBUG_PRINTF("%s", out); +} +void BitStream::PrintHex( char *out ) const +{ + BitSize_t i; + for ( i=0; i < GetNumberOfBytesUsed(); i++) + { + sprintf(out+i*3, "%02x ", data[i]); + } +} +void BitStream::PrintHex( void ) const +{ + char out[2048]; + PrintHex(out); + RAKNET_DEBUG_PRINTF("%s", out); +} + +// Exposes the data for you to look at, like PrintBits does. +// Data will point to the stream. Returns the length in bits of the stream. +BitSize_t BitStream::CopyData( unsigned char** _data ) const +{ +#ifdef _DEBUG + RakAssert( numberOfBitsUsed > 0 ); +#endif + + *_data = (unsigned char*) rakMalloc_Ex( (size_t) BITS_TO_BYTES( numberOfBitsUsed ), _FILE_AND_LINE_ ); + memcpy( *_data, data, sizeof(unsigned char) * (size_t) ( BITS_TO_BYTES( numberOfBitsUsed ) ) ); + return numberOfBitsUsed; +} + +// Ignore data we don't intend to read +void BitStream::IgnoreBits( const BitSize_t numberOfBits ) +{ + readOffset += numberOfBits; +} + +void BitStream::IgnoreBytes( const unsigned int numberOfBytes ) +{ + IgnoreBits(BYTES_TO_BITS(numberOfBytes)); +} + +// Move the write pointer to a position on the array. Dangerous if you don't know what you are doing! +// Doesn't work with non-aligned data! +void BitStream::SetWriteOffset( const BitSize_t offset ) +{ + numberOfBitsUsed = offset; +} + +/* +BitSize_t BitStream::GetWriteOffset( void ) const +{ +return numberOfBitsUsed; +} + +// Returns the length in bits of the stream +BitSize_t BitStream::GetNumberOfBitsUsed( void ) const +{ +return GetWriteOffset(); +} + +// Returns the length in bytes of the stream +BitSize_t BitStream::GetNumberOfBytesUsed( void ) const +{ +return BITS_TO_BYTES( numberOfBitsUsed ); +} + +// Returns the number of bits into the stream that we have read +BitSize_t BitStream::GetReadOffset( void ) const +{ +return readOffset; +} + + +// Sets the read bit index +void BitStream::SetReadOffset( const BitSize_t newReadOffset ) +{ +readOffset=newReadOffset; +} + +// Returns the number of bits left in the stream that haven't been read +BitSize_t BitStream::GetNumberOfUnreadBits( void ) const +{ +return numberOfBitsUsed - readOffset; +} +// Exposes the internal data +unsigned char* BitStream::GetData( void ) const +{ +return data; +} + +*/ +// If we used the constructor version with copy data off, this makes sure it is set to on and the data pointed to is copied. +void BitStream::AssertCopyData( void ) +{ + if ( copyData == false ) + { + copyData = true; + + if ( numberOfBitsAllocated > 0 ) + { + unsigned char * newdata = ( unsigned char* ) rakMalloc_Ex( (size_t) BITS_TO_BYTES( numberOfBitsAllocated ), _FILE_AND_LINE_ ); +#ifdef _DEBUG + + RakAssert( data ); +#endif + + memcpy( newdata, data, (size_t) BITS_TO_BYTES( numberOfBitsAllocated ) ); + data = newdata; + } + + else + data = 0; + } +} +bool BitStream::IsNetworkOrderInternal(void) +{ + + + + + + static const bool isNetworkOrder=(htonl(12345) == 12345); + return isNetworkOrder; + +} +void BitStream::ReverseBytes(unsigned char *inByteArray, unsigned char *inOutByteArray, const unsigned int length) +{ + for (BitSize_t i=0; i < length; i++) + inOutByteArray[i]=inByteArray[length-i-1]; +} +void BitStream::ReverseBytesInPlace(unsigned char *inOutData,const unsigned int length) +{ + unsigned char temp; + BitSize_t i; + for (i=0; i < (length>>1); i++) + { + temp = inOutData[i]; + inOutData[i]=inOutData[length-i-1]; + inOutData[length-i-1]=temp; + } +} + +bool BitStream::Read(char *varString) +{ + return RakString::Deserialize(varString,this); +} +bool BitStream::Read(unsigned char *varString) +{ + return RakString::Deserialize((char*) varString,this); +} +void BitStream::WriteAlignedVar8(const char *inByteArray) +{ + RakAssert((numberOfBitsUsed&7)==0); + AddBitsAndReallocate(1*8); + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[0]; + numberOfBitsUsed+=1*8; +} +bool BitStream::ReadAlignedVar8(char *inOutByteArray) +{ + RakAssert((readOffset&7)==0); + if ( readOffset + 1*8 > numberOfBitsUsed ) + return false; + + inOutByteArray[0] = data[( readOffset >> 3 ) + 0]; + readOffset+=1*8; + return true; +} +void BitStream::WriteAlignedVar16(const char *inByteArray) +{ + RakAssert((numberOfBitsUsed&7)==0); + AddBitsAndReallocate(2*8); +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[1]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[0]; + } + else +#endif + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[0]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[1]; + } + + numberOfBitsUsed+=2*8; +} +bool BitStream::ReadAlignedVar16(char *inOutByteArray) +{ + RakAssert((readOffset&7)==0); + if ( readOffset + 2*8 > numberOfBitsUsed ) + return false; +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 1]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 0]; + } + else +#endif + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 0]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 1]; + } + + readOffset+=2*8; + return true; +} +void BitStream::WriteAlignedVar32(const char *inByteArray) +{ + RakAssert((numberOfBitsUsed&7)==0); + AddBitsAndReallocate(4*8); +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[3]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[2]; + data[( numberOfBitsUsed >> 3 ) + 2] = inByteArray[1]; + data[( numberOfBitsUsed >> 3 ) + 3] = inByteArray[0]; + } + else +#endif + { + data[( numberOfBitsUsed >> 3 ) + 0] = inByteArray[0]; + data[( numberOfBitsUsed >> 3 ) + 1] = inByteArray[1]; + data[( numberOfBitsUsed >> 3 ) + 2] = inByteArray[2]; + data[( numberOfBitsUsed >> 3 ) + 3] = inByteArray[3]; + } + + numberOfBitsUsed+=4*8; +} +bool BitStream::ReadAlignedVar32(char *inOutByteArray) +{ + RakAssert((readOffset&7)==0); + if ( readOffset + 4*8 > numberOfBitsUsed ) + return false; +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 3]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 2]; + inOutByteArray[2] = data[( readOffset >> 3 ) + 1]; + inOutByteArray[3] = data[( readOffset >> 3 ) + 0]; + } + else +#endif + { + inOutByteArray[0] = data[( readOffset >> 3 ) + 0]; + inOutByteArray[1] = data[( readOffset >> 3 ) + 1]; + inOutByteArray[2] = data[( readOffset >> 3 ) + 2]; + inOutByteArray[3] = data[( readOffset >> 3 ) + 3]; + } + + readOffset+=4*8; + return true; +} +bool BitStream::ReadFloat16( float &outFloat, float floatMin, float floatMax ) +{ + unsigned short percentile; + if (Read(percentile)) + { + RakAssert(floatMax>floatMin); + outFloat = floatMin + ((float) percentile / 65535.0f) * (floatMax-floatMin); + if (outFloatfloatMax) + outFloat=floatMax; + return true; + } + return false; +} +bool BitStream::SerializeFloat16(bool writeToBitstream, float &inOutFloat, float floatMin, float floatMax) +{ + if (writeToBitstream) + WriteFloat16(inOutFloat, floatMin, floatMax); + else + return ReadFloat16(inOutFloat, floatMin, floatMax); + return true; +} +void BitStream::WriteFloat16( float inOutFloat, float floatMin, float floatMax ) +{ + RakAssert(floatMax>floatMin); + if (inOutFloat>floatMax+.001) + { + RakAssert(inOutFloat<=floatMax+.001); + } + if (inOutFloat=floatMin-.001); + } + float percentile=65535.0f * (inOutFloat-floatMin)/(floatMax-floatMin); + if (percentile<0.0) + percentile=0.0; + if (percentile>65535.0f) + percentile=65535.0f; + Write((unsigned short)percentile); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // #if _MSC_VER < 1299 diff --git a/src/raknet/BitStream.h b/src/raknet/BitStream.h new file mode 100755 index 0000000..4a76f6a --- /dev/null +++ b/src/raknet/BitStream.h @@ -0,0 +1,2032 @@ +/// \file BitStream.h +/// \brief This class allows you to write and read native types as a string of bits. +/// \details BitStream is used extensively throughout RakNet and is designed to be used by users as well. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// + +#if defined(_MSC_VER) && _MSC_VER < 1299 // VC6 doesn't support template specialization +#include "BitStream_NoTemplate.h" +#else + +#ifndef __BITSTREAM_H +#define __BITSTREAM_H + +#include "RakMemoryOverride.h" +#include "RakNetDefines.h" +#include "Export.h" +#include "RakNetTypes.h" +#include "RakString.h" +#include "RakWString.h" +#include "RakAssert.h" +#include +#include + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +// MSWin uses _copysign, others use copysign... +#ifndef _WIN32 +#define _copysign copysign +#endif + +namespace RakNet +{ + /// This class allows you to write and read native types as a string of bits. BitStream is used extensively throughout RakNet and is designed to be used by users as well. + /// \sa BitStreamSample.txt + class RAK_DLL_EXPORT BitStream + { + + public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(BitStream) + + /// Default Constructor + BitStream(); + + /// \brief Create the bitstream, with some number of bytes to immediately allocate. + /// \details There is no benefit to calling this, unless you know exactly how many bytes you need and it is greater than BITSTREAM_STACK_ALLOCATION_SIZE. + /// In that case all it does is save you one or more realloc calls. + /// \param[in] initialBytesToAllocate the number of bytes to pre-allocate. + BitStream( const unsigned int initialBytesToAllocate ); + + /// \brief Initialize the BitStream, immediately setting the data it contains to a predefined pointer. + /// \details Set \a _copyData to true if you want to make an internal copy of the data you are passing. Set it to false to just save a pointer to the data. + /// You shouldn't call Write functions with \a _copyData as false, as this will write to unallocated memory + /// 99% of the time you will use this function to cast Packet::data to a bitstream for reading, in which case you should write something as follows: + /// \code + /// RakNet::BitStream bs(packet->data, packet->length, false); + /// \endcode + /// \param[in] _data An array of bytes. + /// \param[in] lengthInBytes Size of the \a _data. + /// \param[in] _copyData true or false to make a copy of \a _data or not. + BitStream( unsigned char* _data, const unsigned int lengthInBytes, bool _copyData ); + + // Destructor + ~BitStream(); + + /// Resets the bitstream for reuse. + void Reset( void ); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutTemplateVar The value to write + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool Serialize(bool writeToBitstream, templateType &inOutTemplateVar); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutCurrentValue The current value to write + /// \param[in] lastValue The last value to compare against. Only used if \a writeToBitstream is true. + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue); + + /// \brief Bidirectional version of SerializeDelta when you don't know what the last value is, or there is no last value. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutCurrentValue The current value to write + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutTemplateVar The value to write + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeCompressed(bool writeToBitstream, templateType &inOutTemplateVar); + + /// \brief Bidirectional serialize/deserialize any integral type to/from a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutCurrentValue The current value to write + /// \param[in] lastValue The last value to compare against. Only used if \a writeToBitstream is true. + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template + bool SerializeCompressedDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue); + + /// \brief Save as SerializeCompressedDelta(templateType ¤tValue, const templateType &lastValue) when we have an unknown second parameter + /// \return true on data read. False on insufficient data in bitstream + template + bool SerializeCompressedDelta(bool writeToBitstream, templateType &inOutTemplateVar); + + /// \brief Bidirectional serialize/deserialize an array or casted stream or raw data. This does NOT do endian swapping. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutByteArray a byte buffer + /// \param[in] numberOfBytes the size of \a input in bytes + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + bool Serialize(bool writeToBitstream, char* inOutByteArray, const unsigned int numberOfBytes ); + + /// \brief Serialize a float into 2 bytes, spanning the range between \a floatMin and \a floatMax + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutFloat The float to write + /// \param[in] floatMin Predetermined minimum value of f + /// \param[in] floatMax Predetermined maximum value of f + bool SerializeFloat16(bool writeToBitstream, float &inOutFloat, float floatMin, float floatMax); + + /// Serialize one type casted to another (smaller) type, to save bandwidth + /// serializationType should be uint8_t, uint16_t, uint24_t, or uint32_t + /// Example: int num=53; SerializeCasted(true, num); would use 1 byte to write what would otherwise be an integer (4 or 8 bytes) + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] value The value to serialize + template + bool SerializeCasted( bool writeToBitstream, sourceType &value ); + + /// Given the minimum and maximum values for an integer type, figure out the minimum number of bits to represent the range + /// Then serialize only those bits + /// \note A static is used so that the required number of bits for (maximum-minimum) is only calculated once. This does require that \a minimum and \maximum are fixed values for a given line of code for the life of the program + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] value Integer value to write, which should be between \a minimum and \a maximum + /// \param[in] minimum Minimum value of \a value + /// \param[in] maximum Maximum value of \a value + /// \param[in] allowOutsideRange If true, all sends will take an extra bit, however value can deviate from outside \a minimum and \a maximum. If false, will assert if the value deviates + template + bool SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange=false ); + /// \param[in] requiredBits Primarily for internal use, called from above function() after calculating number of bits needed to represent maximum-minimum + template + bool SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange=false ); + + /// \brief Bidirectional serialize/deserialize a normalized 3D vector, using (at most) 4 bytes + 3 bits instead of 12-24 bytes. + /// \details Will further compress y or z axis aligned vectors. + /// Accurate to 1/32767.5. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template // templateType for this function must be a float or double + bool SerializeNormVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ); + + /// \brief Bidirectional serialize/deserialize a vector, using 10 bytes instead of 12. + /// \details Loses accuracy to about 3/10ths and only saves 2 bytes, so only use if accuracy is not important. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template // templateType for this function must be a float or double + bool SerializeVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ); + + /// \brief Bidirectional serialize/deserialize a normalized quaternion in 6 bytes + 4 bits instead of 16 bytes. Slightly lossy. + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] w w + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + template // templateType for this function must be a float or double + bool SerializeNormQuat(bool writeToBitstream, templateType &w, templateType &x, templateType &y, templateType &z); + + /// \brief Bidirectional serialize/deserialize an orthogonal matrix by creating a quaternion, and writing 3 components of the quaternion in 2 bytes each. + /// \details Use 6 bytes instead of 36 + /// Lossy, although the result is renormalized + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool SerializeOrthMatrix( + bool writeToBitstream, + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ); + + /// \brief Bidirectional serialize/deserialize numberToSerialize bits to/from the input. + /// \details Right aligned data means in the case of a partial byte, the bits are aligned + /// from the right (bit 0) rather than the left (as in the normal + /// internal representation) You would set this to true when + /// writing user data, and false when copying bitstream data, such + /// as writing one bitstream to another + /// \param[in] writeToBitstream true to write from your data to this bitstream. False to read from this bitstream and write to your data + /// \param[in] inOutByteArray The data + /// \param[in] numberOfBitsToSerialize The number of bits to write + /// \param[in] rightAlignedBits if true data will be right aligned + /// \return true if \a writeToBitstream is true. true if \a writeToBitstream is false and the read was successful. false if \a writeToBitstream is false and the read was not successful. + bool SerializeBits(bool writeToBitstream, unsigned char* inOutByteArray, const BitSize_t numberOfBitsToSerialize, const bool rightAlignedBits = true ); + + /// \brief Write any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] inTemplateVar The value to write + template + void Write(const templateType &inTemplateVar); + + /// \brief Write the dereferenced pointer to any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] inTemplateVar The value to write + template + void WritePtr(templateType *inTemplateVar); + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + void WriteDelta(const templateType ¤tValue, const templateType &lastValue); + + /// \brief WriteDelta when you don't know what the last value is, or there is no last value. + /// \param[in] currentValue The current value to write + template + void WriteDelta(const templateType ¤tValue); + + /// \brief Write any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// \param[in] inTemplateVar The value to write + template + void WriteCompressed(const templateType &inTemplateVar); + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + void WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue); + + /// \brief Save as WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue) when we have an unknown second parameter + template + void WriteCompressedDelta(const templateType ¤tValue); + + /// \brief Read any integral type from a bitstream. + /// \details Define __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool Read(templateType &outTemplateVar); + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// ReadDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool ReadDelta(templateType &outTemplateVar); + + /// \brief Read any integral type from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool ReadCompressed(templateType &outTemplateVar); + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// the current value will be updated. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// ReadCompressedDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + /// \return true on success, false on failure. + template + bool ReadCompressedDelta(templateType &outTemplateVar); + + /// \brief Read one bitstream to another. + /// \param[in] numberOfBits bits to read + /// \param bitStream the bitstream to read into from + /// \return true on success, false on failure. + bool Read( BitStream *bitStream, BitSize_t numberOfBits ); + bool Read( BitStream *bitStream ); + bool Read( BitStream &bitStream, BitSize_t numberOfBits ); + bool Read( BitStream &bitStream ); + + /// \brief Write an array or casted stream or raw data. This does NOT do endian swapping. + /// \param[in] inputByteArray a byte buffer + /// \param[in] numberOfBytes the size of \a input in bytes + void Write( const char* inputByteArray, const unsigned int numberOfBytes ); + + /// \brief Write one bitstream to another. + /// \param[in] numberOfBits bits to write + /// \param bitStream the bitstream to copy from + void Write( BitStream *bitStream, BitSize_t numberOfBits ); + void Write( BitStream *bitStream ); + void Write( BitStream &bitStream, BitSize_t numberOfBits ); + void Write( BitStream &bitStream );\ + + /// \brief Write a float into 2 bytes, spanning the range between \a floatMin and \a floatMax + /// \param[in] x The float to write + /// \param[in] floatMin Predetermined minimum value of f + /// \param[in] floatMax Predetermined maximum value of f + void WriteFloat16( float x, float floatMin, float floatMax ); + + /// Write one type serialized as another (smaller) type, to save bandwidth + /// serializationType should be uint8_t, uint16_t, uint24_t, or uint32_t + /// Example: int num=53; WriteCasted(num); would use 1 byte to write what would otherwise be an integer (4 or 8 bytes) + /// \param[in] value The value to write + template + void WriteCasted( const sourceType &value ); + + /// Given the minimum and maximum values for an integer type, figure out the minimum number of bits to represent the range + /// Then write only those bits + /// \note A static is used so that the required number of bits for (maximum-minimum) is only calculated once. This does require that \a minimum and \maximum are fixed values for a given line of code for the life of the program + /// \param[in] value Integer value to write, which should be between \a minimum and \a maximum + /// \param[in] minimum Minimum value of \a value + /// \param[in] maximum Maximum value of \a value + /// \param[in] allowOutsideRange If true, all sends will take an extra bit, however value can deviate from outside \a minimum and \a maximum. If false, will assert if the value deviates. This should match the corresponding value passed to Read(). + template + void WriteBitsFromIntegerRange( const templateType value, const templateType minimum, const templateType maximum, bool allowOutsideRange=false ); + /// \param[in] requiredBits Primarily for internal use, called from above function() after calculating number of bits needed to represent maximum-minimum + template + void WriteBitsFromIntegerRange( const templateType value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange=false ); + + /// \brief Write a normalized 3D vector, using (at most) 4 bytes + 3 bits instead of 12-24 bytes. + /// \details Will further compress y or z axis aligned vectors. + /// Accurate to 1/32767.5. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + template // templateType for this function must be a float or double + void WriteNormVector( templateType x, templateType y, templateType z ); + + /// \brief Write a vector, using 10 bytes instead of 12. + /// \details Loses accuracy to about 3/10ths and only saves 2 bytes, + /// so only use if accuracy is not important. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + template // templateType for this function must be a float or double + void WriteVector( templateType x, templateType y, templateType z ); + + /// \brief Write a normalized quaternion in 6 bytes + 4 bits instead of 16 bytes. Slightly lossy. + /// \param[in] w w + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + template // templateType for this function must be a float or double + void WriteNormQuat( templateType w, templateType x, templateType y, templateType z); + + /// \brief Write an orthogonal matrix by creating a quaternion, and writing 3 components of the quaternion in 2 bytes each. + /// \details Use 6 bytes instead of 36 + /// Lossy, although the result is renormalized + template // templateType for this function must be a float or double + void WriteOrthMatrix( + templateType m00, templateType m01, templateType m02, + templateType m10, templateType m11, templateType m12, + templateType m20, templateType m21, templateType m22 ); + + /// \brief Read an array or casted stream of byte. + /// \details The array is raw data. There is no automatic endian conversion with this function + /// \param[in] output The result byte array. It should be larger than @em numberOfBytes. + /// \param[in] numberOfBytes The number of byte to read + /// \return true on success false if there is some missing bytes. + bool Read( char* output, const unsigned int numberOfBytes ); + + /// \brief Read a float into 2 bytes, spanning the range between \a floatMin and \a floatMax + /// \param[in] outFloat The float to read + /// \param[in] floatMin Predetermined minimum value of f + /// \param[in] floatMax Predetermined maximum value of f + bool ReadFloat16( float &outFloat, float floatMin, float floatMax ); + + /// Read one type serialized to another (smaller) type, to save bandwidth + /// serializationType should be uint8_t, uint16_t, uint24_t, or uint32_t + /// Example: int num; ReadCasted(num); would read 1 bytefrom the stream, and put the value in an integer + /// \param[in] value The value to write + template + bool ReadCasted( sourceType &value ); + + /// Given the minimum and maximum values for an integer type, figure out the minimum number of bits to represent the range + /// Then read only those bits + /// \note A static is used so that the required number of bits for (maximum-minimum) is only calculated once. This does require that \a minimum and \maximum are fixed values for a given line of code for the life of the program + /// \param[in] value Integer value to read, which should be between \a minimum and \a maximum + /// \param[in] minimum Minimum value of \a value + /// \param[in] maximum Maximum value of \a value + /// \param[in] allowOutsideRange If true, all sends will take an extra bit, however value can deviate from outside \a minimum and \a maximum. If false, will assert if the value deviates. This should match the corresponding value passed to Write(). + template + bool ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange=false ); + /// \param[in] requiredBits Primarily for internal use, called from above function() after calculating number of bits needed to represent maximum-minimum + template + bool ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange=false ); + + /// \brief Read a normalized 3D vector, using (at most) 4 bytes + 3 bits instead of 12-24 bytes. + /// \details Will further compress y or z axis aligned vectors. + /// Accurate to 1/32767.5. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadNormVector( templateType &x, templateType &y, templateType &z ); + + /// \brief Read 3 floats or doubles, using 10 bytes, where those float or doubles comprise a vector. + /// \details Loses accuracy to about 3/10ths and only saves 2 bytes, + /// so only use if accuracy is not important. + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadVector( templateType &x, templateType &y, templateType &z ); + + /// \brief Read a normalized quaternion in 6 bytes + 4 bits instead of 16 bytes. + /// \param[in] w w + /// \param[in] x x + /// \param[in] y y + /// \param[in] z z + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadNormQuat( templateType &w, templateType &x, templateType &y, templateType &z); + + /// \brief Read an orthogonal matrix from a quaternion, reading 3 components of the quaternion in 2 bytes each and extrapolatig the 4th. + /// \details Use 6 bytes instead of 36 + /// Lossy, although the result is renormalized + /// \return true on success, false on failure. + template // templateType for this function must be a float or double + bool ReadOrthMatrix( + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ); + + /// \brief Sets the read pointer back to the beginning of your data. + void ResetReadPointer( void ); + + /// \brief Sets the write pointer back to the beginning of your data. + void ResetWritePointer( void ); + + /// \brief This is good to call when you are done with the stream to make + /// sure you didn't leave any data left over void + void AssertStreamEmpty( void ); + + /// \brief RAKNET_DEBUG_PRINTF the bits in the stream. Great for debugging. + void PrintBits( char *out ) const; + void PrintBits( void ) const; + void PrintHex( char *out ) const; + void PrintHex( void ) const; + + /// \brief Ignore data we don't intend to read + /// \param[in] numberOfBits The number of bits to ignore + void IgnoreBits( const BitSize_t numberOfBits ); + + /// \brief Ignore data we don't intend to read + /// \param[in] numberOfBits The number of bytes to ignore + void IgnoreBytes( const unsigned int numberOfBytes ); + + /// \brief Move the write pointer to a position on the array. + /// \param[in] offset the offset from the start of the array. + /// \attention + /// \details Dangerous if you don't know what you are doing! + /// For efficiency reasons you can only write mid-stream if your data is byte aligned. + void SetWriteOffset( const BitSize_t offset ); + + /// \brief Returns the length in bits of the stream + inline BitSize_t GetNumberOfBitsUsed( void ) const {return GetWriteOffset();} + inline BitSize_t GetWriteOffset( void ) const {return numberOfBitsUsed;} + + /// \brief Returns the length in bytes of the stream + inline BitSize_t GetNumberOfBytesUsed( void ) const {return BITS_TO_BYTES( numberOfBitsUsed );} + + /// \brief Returns the number of bits into the stream that we have read + inline BitSize_t GetReadOffset( void ) const {return readOffset;} + + /// \brief Sets the read bit index + void SetReadOffset( const BitSize_t newReadOffset ) {readOffset=newReadOffset;} + + /// \brief Returns the number of bits left in the stream that haven't been read + inline BitSize_t GetNumberOfUnreadBits( void ) const {return numberOfBitsUsed - readOffset;} + + /// \brief Makes a copy of the internal data for you \a _data will point to + /// the stream. Partial bytes are left aligned. + /// \param[out] _data The allocated copy of GetData() + /// \return The length in bits of the stream. + BitSize_t CopyData( unsigned char** _data ) const; + + /// \internal + /// Set the stream to some initial data. + void SetData( unsigned char *inByteArray ); + + /// Gets the data that BitStream is writing to / reading from. + /// Partial bytes are left aligned. + /// \return A pointer to the internal state + inline unsigned char* GetData( void ) const {return data;} + + /// \brief Write numberToWrite bits from the input source. + /// \details Right aligned data means in the case of a partial byte, the bits are aligned + /// from the right (bit 0) rather than the left (as in the normal + /// internal representation) You would set this to true when + /// writing user data, and false when copying bitstream data, such + /// as writing one bitstream to another. + /// \param[in] inByteArray The data + /// \param[in] numberOfBitsToWrite The number of bits to write + /// \param[in] rightAlignedBits if true data will be right aligned + void WriteBits( const unsigned char* inByteArray, BitSize_t numberOfBitsToWrite, const bool rightAlignedBits = true ); + + /// \brief Align the bitstream to the byte boundary and then write the + /// specified number of bits. + /// \details This is faster than WriteBits but + /// wastes the bits to do the alignment and requires you to call + /// ReadAlignedBits at the corresponding read position. + /// \param[in] inByteArray The data + /// \param[in] numberOfBytesToWrite The size of input. + void WriteAlignedBytes( const unsigned char *inByteArray, const unsigned int numberOfBytesToWrite ); + + // Endian swap bytes already in the bitstream + void EndianSwapBytes( int byteOffset, int length ); + + /// \brief Aligns the bitstream, writes inputLength, and writes input. Won't write beyond maxBytesToWrite + /// \param[in] inByteArray The data + /// \param[in] inputLength The size of input. + /// \param[in] maxBytesToWrite Max bytes to write + void WriteAlignedBytesSafe( const char *inByteArray, const unsigned int inputLength, const unsigned int maxBytesToWrite ); + + /// \brief Read bits, starting at the next aligned bits. + /// \details Note that the modulus 8 starting offset of the sequence must be the same as + /// was used with WriteBits. This will be a problem with packet + /// coalescence unless you byte align the coalesced packets. + /// \param[in] inOutByteArray The byte array larger than @em numberOfBytesToRead + /// \param[in] numberOfBytesToRead The number of byte to read from the internal state + /// \return true if there is enough byte. + bool ReadAlignedBytes( unsigned char *inOutByteArray, const unsigned int numberOfBytesToRead ); + + /// \brief Reads what was written by WriteAlignedBytesSafe. + /// \param[in] inOutByteArray The data + /// \param[in] maxBytesToRead Maximum number of bytes to read + /// \return true on success, false on failure. + bool ReadAlignedBytesSafe( char *inOutByteArray, int &inputLength, const int maxBytesToRead ); + bool ReadAlignedBytesSafe( char *inOutByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ); + + /// \brief Same as ReadAlignedBytesSafe() but allocates the memory for you using new, rather than assuming it is safe to write to + /// \param[in] outByteArray outByteArray will be deleted if it is not a pointer to 0 + /// \return true on success, false on failure. + bool ReadAlignedBytesSafeAlloc( char **outByteArray, int &inputLength, const unsigned int maxBytesToRead ); + bool ReadAlignedBytesSafeAlloc( char **outByteArray, unsigned int &inputLength, const unsigned int maxBytesToRead ); + + /// \brief Align the next write and/or read to a byte boundary. + /// \details This can be used to 'waste' bits to byte align for efficiency reasons It + /// can also be used to force coalesced bitstreams to start on byte + /// boundaries so so WriteAlignedBits and ReadAlignedBits both + /// calculate the same offset when aligning. + inline void AlignWriteToByteBoundary( void ) {numberOfBitsUsed += 8 - ( (( numberOfBitsUsed - 1 ) & 7) + 1 );} + + /// \brief Align the next write and/or read to a byte boundary. + /// \details This can be used to 'waste' bits to byte align for efficiency reasons It + /// can also be used to force coalesced bitstreams to start on byte + /// boundaries so so WriteAlignedBits and ReadAlignedBits both + /// calculate the same offset when aligning. + inline void AlignReadToByteBoundary( void ) {readOffset += 8 - ( (( readOffset - 1 ) & 7 ) + 1 );} + + /// \brief Read \a numberOfBitsToRead bits to the output source. + /// \details alignBitsToRight should be set to true to convert internal + /// bitstream data to userdata. It should be false if you used + /// WriteBits with rightAlignedBits false + /// \param[in] inOutByteArray The resulting bits array + /// \param[in] numberOfBitsToRead The number of bits to read + /// \param[in] alignBitsToRight if true bits will be right aligned. + /// \return true if there is enough bits to read + bool ReadBits( unsigned char *inOutByteArray, BitSize_t numberOfBitsToRead, const bool alignBitsToRight = true ); + + /// \brief Write a 0 + void Write0( void ); + + /// \brief Write a 1 + void Write1( void ); + + /// \brief Reads 1 bit and returns true if that bit is 1 and false if it is 0. + bool ReadBit( void ); + + /// \brief If we used the constructor version with copy data off, this + /// *makes sure it is set to on and the data pointed to is copied. + void AssertCopyData( void ); + + /// \brief Use this if you pass a pointer copy to the constructor + /// *(_copyData==false) and want to overallocate to prevent + /// reallocation. + void SetNumberOfBitsAllocated( const BitSize_t lengthInBits ); + + /// \brief Reallocates (if necessary) in preparation of writing numberOfBitsToWrite + void AddBitsAndReallocate( const BitSize_t numberOfBitsToWrite ); + + /// \internal + /// \return How many bits have been allocated internally + BitSize_t GetNumberOfBitsAllocated(void) const; + + /// \brief Read strings, non reference. + bool Read(char *varString); + bool Read(unsigned char *varString); + + /// Write zeros until the bitstream is filled up to \a bytes + void PadWithZeroToByteLength( unsigned int bytes ); + + /// Get the number of leading zeros for a number + /// \param[in] x Number to test + static int NumberOfLeadingZeroes( uint8_t x ); + static int NumberOfLeadingZeroes( uint16_t x ); + static int NumberOfLeadingZeroes( uint32_t x ); + static int NumberOfLeadingZeroes( uint64_t x ); + static int NumberOfLeadingZeroes( int8_t x ); + static int NumberOfLeadingZeroes( int16_t x ); + static int NumberOfLeadingZeroes( int32_t x ); + static int NumberOfLeadingZeroes( int64_t x ); + + /// \internal Unrolled inner loop, for when performance is critical + void WriteAlignedVar8(const char *inByteArray); + /// \internal Unrolled inner loop, for when performance is critical + bool ReadAlignedVar8(char *inOutByteArray); + /// \internal Unrolled inner loop, for when performance is critical + void WriteAlignedVar16(const char *inByteArray); + /// \internal Unrolled inner loop, for when performance is critical + bool ReadAlignedVar16(char *inOutByteArray); + /// \internal Unrolled inner loop, for when performance is critical + void WriteAlignedVar32(const char *inByteArray); + /// \internal Unrolled inner loop, for when performance is critical + bool ReadAlignedVar32(char *inOutByteArray); + + inline void Write(const char * const inStringVar) + { + RakString::Serialize(inStringVar, this); + } + inline void Write(const wchar_t * const inStringVar) + { + RakWString::Serialize(inStringVar, this); + } + inline void Write(const unsigned char * const inTemplateVar) + { + Write((const char*)inTemplateVar); + } + inline void Write(char * const inTemplateVar) + { + Write((const char*)inTemplateVar); + } + inline void Write(unsigned char * const inTemplateVar) + { + Write((const char*)inTemplateVar); + } + inline void WriteCompressed(const char * const inStringVar) + { + RakString::SerializeCompressed(inStringVar,this,0,false); + } + inline void WriteCompressed(const wchar_t * const inStringVar) + { + RakWString::Serialize(inStringVar,this); + } + inline void WriteCompressed(const unsigned char * const inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + inline void WriteCompressed(char * const inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + inline void WriteCompressed(unsigned char * const inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + + /// ---- Member function template specialization declarations ---- + // Used for VC7 +#if defined(_MSC_VER) && _MSC_VER == 1300 + /// Write a bool to a bitstream. + /// \param[in] var The value to write + template <> + void Write(const bool &var); + + /// Write a systemAddress to a bitstream + /// \param[in] var The value to write + template <> + void Write(const SystemAddress &var); + + /// Write a uint24_t to a bitstream + /// \param[in] var The value to write + template <> + void Write(const uint24_t &var); + + /// Write a RakNetGUID to a bitsteam + /// \param[in] var The value to write + template <> + void Write(const RakNetGuid &var); + + /// Write a string to a bitstream + /// \param[in] var The value to write + template <> + void Write(const char* const &var); + template <> + void Write(const unsigned char* const &var); + template <> + void Write(char* const &var); + template <> + void Write(unsigned char* const &var); + template <> + void Write(const RakString &var); + template <> + void Write(const RakWString &var); + + /// \brief Write a systemAddress. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + void WriteDelta(const SystemAddress ¤tValue, const SystemAddress &lastValue); + + template <> + void WriteDelta(const uint24_t ¤tValue, const uint24_t &lastValue); + + template <> + void WriteDelta(const RakNetGUID ¤tValue, const RakNetGUID &lastValue); + + /// \brief Write a bool delta. + /// \details Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + void WriteDelta(const bool ¤tValue, const bool &lastValue); + + template <> + void WriteCompressed(const SystemAddress &var); + + template <> + void WriteCompressed(const uint24_t &var); + + template <> + void WriteCompressed(const RakNetGUID &var); + + template <> + void WriteCompressed(const bool &var); + + /// For values between -1 and 1 + template <> + void WriteCompressed(const float &var); + + /// For values between -1 and 1 + template <> + void WriteCompressed(const double &var); + + /// Compressed string + template <> + void WriteCompressed(const char* var); + template <> + void WriteCompressed(const unsigned char* var); + template <> + void WriteCompressed(char* var); + template <> + void WriteCompressed(unsigned char* var); + template <> + void WriteCompressed(const RakString &var); + template <> + void WriteCompressed(const RakWString &var); + + /// \brief Write a bool delta. + /// \details Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + void WriteCompressedDelta(const bool ¤tValue, const bool &lastValue); + + /// \brief Save as WriteCompressedDelta(bool currentValue, const templateType &lastValue) + /// when we have an unknown second bool + template <> + void WriteCompressedDelta(const bool ¤tValue); + + /// \brief Read a bool from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool Read(bool &var); + + /// \brief Read a systemAddress from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool Read(SystemAddress &var); + + template <> + bool Read(uint24_t &var); + + template <> + bool Read(RakNetGUID &var); + + /// \brief Read a String from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool Read(char *&var); + template <> + bool Read(wchar_t *&var); + template <> + bool Read(unsigned char *&var); + template <> + bool Read(RakString &var); + template <> + bool Read(RakWString &var); + + /// \brief Read a bool from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool ReadDelta(bool &var); + + template <> + bool ReadCompressed(SystemAddress &var); + + template <> + bool ReadCompressed(uint24_t &var); + + template <> + bool ReadCompressed(RakNetGUID &var); + + template <> + bool ReadCompressed(bool &var); + + template <> + bool ReadCompressed(float &var); + + /// For values between -1 and 1 + /// \return true on success, false on failure. + template <> + bool ReadCompressed(double &var); + + template <> + bool ReadCompressed(char* &var); + template <> + bool ReadCompressed(wchar_t* &var); + template <> + bool ReadCompressed(unsigned char *&var); + template <> + bool ReadCompressed(RakString &var); + template <> + bool ReadCompressed(RakWString &var); + + /// \brief Read a bool from a bitstream. + /// \param[in] var The value to read + /// \return true on success, false on failure. + template <> + bool ReadCompressedDelta(bool &var); +#endif + + inline static bool DoEndianSwap(void) { +#ifndef __BITSTREAM_NATIVE_END + return IsNetworkOrder()==false; +#else + return false; +#endif + } + inline static bool IsBigEndian(void) + { + return IsNetworkOrder(); + } + inline static bool IsNetworkOrder(void) {static const bool r = IsNetworkOrderInternal(); return r;} + // Not inline, won't compile on PC due to winsock include errors + static bool IsNetworkOrderInternal(void); + static void ReverseBytes(unsigned char *inByteArray, unsigned char *inOutByteArray, const unsigned int length); + static void ReverseBytesInPlace(unsigned char *inOutData,const unsigned int length); + + private: + + BitStream( const BitStream &invalid) { + (void) invalid; + RakAssert(0); + } + + /// \brief Assume the input source points to a native type, compress and write it. + void WriteCompressed( const unsigned char* inByteArray, const unsigned int size, const bool unsignedData ); + + /// \brief Assume the input source points to a compressed native type. Decompress and read it. + bool ReadCompressed( unsigned char* inOutByteArray, const unsigned int size, const bool unsignedData ); + + + BitSize_t numberOfBitsUsed; + + BitSize_t numberOfBitsAllocated; + + BitSize_t readOffset; + + unsigned char *data; + + /// true if the internal buffer is copy of the data passed to the constructor + bool copyData; + + /// BitStreams that use less than BITSTREAM_STACK_ALLOCATION_SIZE use the stack, rather than the heap to store data. It switches over if BITSTREAM_STACK_ALLOCATION_SIZE is exceeded + unsigned char stackData[BITSTREAM_STACK_ALLOCATION_SIZE]; + }; + + template + inline bool BitStream::Serialize(bool writeToBitstream, templateType &inOutTemplateVar) + { + if (writeToBitstream) + Write(inOutTemplateVar); + else + return Read(inOutTemplateVar); + return true; + } + + template + inline bool BitStream::SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue) + { + if (writeToBitstream) + WriteDelta(inOutCurrentValue, lastValue); + else + return ReadDelta(inOutCurrentValue); + return true; + } + + template + inline bool BitStream::SerializeDelta(bool writeToBitstream, templateType &inOutCurrentValue) + { + if (writeToBitstream) + WriteDelta(inOutCurrentValue); + else + return ReadDelta(inOutCurrentValue); + return true; + } + + template + inline bool BitStream::SerializeCompressed(bool writeToBitstream, templateType &inOutTemplateVar) + { + if (writeToBitstream) + WriteCompressed(inOutTemplateVar); + else + return ReadCompressed(inOutTemplateVar); + return true; + } + + template + inline bool BitStream::SerializeCompressedDelta(bool writeToBitstream, templateType &inOutCurrentValue, const templateType &lastValue) + { + if (writeToBitstream) + WriteCompressedDelta(inOutCurrentValue,lastValue); + else + return ReadCompressedDelta(inOutCurrentValue); + return true; + } +//Stoppedhere + template + inline bool BitStream::SerializeCompressedDelta(bool writeToBitstream, templateType &inOutCurrentValue) + { + if (writeToBitstream) + WriteCompressedDelta(inOutCurrentValue); + else + return ReadCompressedDelta(inOutCurrentValue); + return true; + } + + inline bool BitStream::Serialize(bool writeToBitstream, char* inOutByteArray, const unsigned int numberOfBytes ) + { + if (writeToBitstream) + Write(inOutByteArray, numberOfBytes); + else + return Read(inOutByteArray, numberOfBytes); + return true; + } + + template + bool BitStream::SerializeCasted( bool writeToBitstream, sourceType &value ) + { + if (writeToBitstream) WriteCasted(value); + else return ReadCasted(value); + return true; + } + + template + bool BitStream::SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange ) + { + int requiredBits=BYTES_TO_BITS(sizeof(templateType))-NumberOfLeadingZeroes(templateType(maximum-minimum)); + return SerializeBitsFromIntegerRange(writeToBitstream,value,minimum,maximum,requiredBits,allowOutsideRange); + } + template + bool BitStream::SerializeBitsFromIntegerRange( bool writeToBitstream, templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange ) + { + if (writeToBitstream) WriteBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + else return ReadBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + return true; + } + + template + inline bool BitStream::SerializeNormVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ) + { + if (writeToBitstream) + WriteNormVector(x,y,z); + else + return ReadNormVector(x,y,z); + return true; + } + + template + inline bool BitStream::SerializeVector(bool writeToBitstream, templateType &x, templateType &y, templateType &z ) + { + if (writeToBitstream) + WriteVector(x,y,z); + else + return ReadVector(x,y,z); + return true; + } + + template + inline bool BitStream::SerializeNormQuat(bool writeToBitstream, templateType &w, templateType &x, templateType &y, templateType &z) + { + if (writeToBitstream) + WriteNormQuat(w,x,y,z); + else + return ReadNormQuat(w,x,y,z); + return true; + } + + template + inline bool BitStream::SerializeOrthMatrix( + bool writeToBitstream, + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ) + { + if (writeToBitstream) + WriteOrthMatrix(m00,m01,m02,m10,m11,m12,m20,m21,m22); + else + return ReadOrthMatrix(m00,m01,m02,m10,m11,m12,m20,m21,m22); + return true; + } + + inline bool BitStream::SerializeBits(bool writeToBitstream, unsigned char* inOutByteArray, const BitSize_t numberOfBitsToSerialize, const bool rightAlignedBits ) + { + if (writeToBitstream) + WriteBits(inOutByteArray,numberOfBitsToSerialize,rightAlignedBits); + else + return ReadBits(inOutByteArray,numberOfBitsToSerialize,rightAlignedBits); + return true; + } + + template + inline void BitStream::Write(const templateType &inTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(inTemplateVar)==1) + WriteBits( ( unsigned char* ) & inTemplateVar, sizeof( templateType ) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*)&inTemplateVar, output, sizeof(templateType)); + WriteBits( ( unsigned char* ) output, sizeof(templateType) * 8, true ); + } + else +#endif + WriteBits( ( unsigned char* ) & inTemplateVar, sizeof(templateType) * 8, true ); + } + } + + template + inline void BitStream::WritePtr(templateType *inTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(templateType)==1) + WriteBits( ( unsigned char* ) inTemplateVar, sizeof( templateType ) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*) inTemplateVar, output, sizeof(templateType)); + WriteBits( ( unsigned char* ) output, sizeof(templateType) * 8, true ); + } + else +#endif + WriteBits( ( unsigned char* ) inTemplateVar, sizeof(templateType) * 8, true ); + } + } + + /// \brief Write a bool to a bitstream. + /// \param[in] inTemplateVar The value to write + template <> + inline void BitStream::Write(const bool &inTemplateVar) + { + if ( inTemplateVar ) + Write1(); + else + Write0(); + } + + + /// \brief Write a systemAddress to a bitstream. + /// \param[in] inTemplateVar The value to write + template <> + inline void BitStream::Write(const SystemAddress &inTemplateVar) + { + Write(inTemplateVar.GetIPVersion()); + if (inTemplateVar.GetIPVersion()==4) + { + // Hide the address so routers don't modify it + SystemAddress var2=inTemplateVar; + uint32_t binaryAddress=~inTemplateVar.address.addr4.sin_addr.s_addr; + // Don't endian swap the address or port + WriteBits((unsigned char*)&binaryAddress, sizeof(binaryAddress)*8, true); + unsigned short p = var2.GetPortNetworkOrder(); + WriteBits((unsigned char*)&p, sizeof(unsigned short)*8, true); + } + else + { +#if RAKNET_SUPPORT_IPV6==1 + // Don't endian swap + WriteBits((const unsigned char*) &inTemplateVar.address.addr6, sizeof(inTemplateVar.address.addr6)*8, true); +#endif + } + } + + template <> + inline void BitStream::Write(const uint24_t &inTemplateVar) + { + AlignWriteToByteBoundary(); + AddBitsAndReallocate(3*8); + + if (IsBigEndian()==false) + { + data[( numberOfBitsUsed >> 3 ) + 0] = ((char *)&inTemplateVar.val)[0]; + data[( numberOfBitsUsed >> 3 ) + 1] = ((char *)&inTemplateVar.val)[1]; + data[( numberOfBitsUsed >> 3 ) + 2] = ((char *)&inTemplateVar.val)[2]; + } + else + { + data[( numberOfBitsUsed >> 3 ) + 0] = ((char *)&inTemplateVar.val)[3]; + data[( numberOfBitsUsed >> 3 ) + 1] = ((char *)&inTemplateVar.val)[2]; + data[( numberOfBitsUsed >> 3 ) + 2] = ((char *)&inTemplateVar.val)[1]; + } + + numberOfBitsUsed+=3*8; + } + + template <> + inline void BitStream::Write(const RakNetGUID &inTemplateVar) + { + Write(inTemplateVar.g); + } + + /// \brief Write a string to a bitstream. + /// \param[in] var The value to write + template <> + inline void BitStream::Write(const RakString &inTemplateVar) + { + inTemplateVar.Serialize(this); + } + template <> + inline void BitStream::Write(const RakWString &inTemplateVar) + { + inTemplateVar.Serialize(this); + } + template <> + inline void BitStream::Write(const char * const &inStringVar) + { + RakString::Serialize(inStringVar, this); + } + template <> + inline void BitStream::Write(const wchar_t * const &inStringVar) + { + RakWString::Serialize(inStringVar, this); + } + template <> + inline void BitStream::Write(const unsigned char * const &inTemplateVar) + { + Write((const char*)inTemplateVar); + } + template <> + inline void BitStream::Write(char * const &inTemplateVar) + { + Write((const char*)inTemplateVar); + } + template <> + inline void BitStream::Write(unsigned char * const &inTemplateVar) + { + Write((const char*)inTemplateVar); + } + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + inline void BitStream::WriteDelta(const templateType ¤tValue, const templateType &lastValue) + { + if (currentValue==lastValue) + { + Write(false); + } + else + { + Write(true); + Write(currentValue); + } + } + + /// \brief Write a bool delta. Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + inline void BitStream::WriteDelta(const bool ¤tValue, const bool &lastValue) + { + (void) lastValue; + + Write(currentValue); + } + + /// \brief WriteDelta when you don't know what the last value is, or there is no last value. + /// \param[in] currentValue The current value to write + template + inline void BitStream::WriteDelta(const templateType ¤tValue) + { + Write(true); + Write(currentValue); + } + + /// \brief Write any integral type to a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] inTemplateVar The value to write + template + inline void BitStream::WriteCompressed(const templateType &inTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(inTemplateVar)==1) + WriteCompressed( ( unsigned char* ) & inTemplateVar, sizeof( templateType ) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END +#ifdef _MSC_VER +#pragma warning(disable:4244) // '=' : conversion from 'unsigned long' to 'unsigned short', possible loss of data +#endif + + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*)&inTemplateVar, output, sizeof(templateType)); + WriteCompressed( ( unsigned char* ) output, sizeof(templateType) * 8, true ); + } + else +#endif + WriteCompressed( ( unsigned char* ) & inTemplateVar, sizeof(templateType) * 8, true ); + } + } + + template <> + inline void BitStream::WriteCompressed(const SystemAddress &inTemplateVar) + { + Write(inTemplateVar); + } + + template <> + inline void BitStream::WriteCompressed(const RakNetGUID &inTemplateVar) + { + Write(inTemplateVar); + } + + template <> + inline void BitStream::WriteCompressed(const uint24_t &var) + { + Write(var); + } + + template <> + inline void BitStream::WriteCompressed(const bool &inTemplateVar) + { + Write(inTemplateVar); + } + + /// For values between -1 and 1 + template <> + inline void BitStream::WriteCompressed(const float &inTemplateVar) + { + RakAssert(inTemplateVar > -1.01f && inTemplateVar < 1.01f); + float varCopy=inTemplateVar; + if (varCopy < -1.0f) + varCopy=-1.0f; + if (varCopy > 1.0f) + varCopy=1.0f; + Write((unsigned short)((varCopy+1.0f)*32767.5f)); + } + + /// For values between -1 and 1 + template <> + inline void BitStream::WriteCompressed(const double &inTemplateVar) + { + RakAssert(inTemplateVar > -1.01 && inTemplateVar < 1.01); + double varCopy=inTemplateVar; + if (varCopy < -1.0f) + varCopy=-1.0f; + if (varCopy > 1.0f) + varCopy=1.0f; + Write((uint32_t)((varCopy+1.0)*2147483648.0)); + } + + /// Compress the string + template <> + inline void BitStream::WriteCompressed(const RakString &inTemplateVar) + { + inTemplateVar.SerializeCompressed(this,0,false); + } + template <> + inline void BitStream::WriteCompressed(const RakWString &inTemplateVar) + { + inTemplateVar.Serialize(this); + } + template <> + inline void BitStream::WriteCompressed(const char * const &inStringVar) + { + RakString::SerializeCompressed(inStringVar,this,0,false); + } + template <> + inline void BitStream::WriteCompressed(const wchar_t * const &inStringVar) + { + RakWString::Serialize(inStringVar,this); + } + template <> + inline void BitStream::WriteCompressed(const unsigned char * const &inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + template <> + inline void BitStream::WriteCompressed(char * const &inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + template <> + inline void BitStream::WriteCompressed(unsigned char * const &inTemplateVar) + { + WriteCompressed((const char*) inTemplateVar); + } + + + /// \brief Write any integral type to a bitstream. + /// \details If the current value is different from the last value + /// the current value will be written. Otherwise, a single bit will be written + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template + inline void BitStream::WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue) + { + if (currentValue==lastValue) + { + Write(false); + } + else + { + Write(true); + WriteCompressed(currentValue); + } + } + + /// \brief Write a bool delta. Same thing as just calling Write + /// \param[in] currentValue The current value to write + /// \param[in] lastValue The last value to compare against + template <> + inline void BitStream::WriteCompressedDelta(const bool ¤tValue, const bool &lastValue) + { + (void) lastValue; + + Write(currentValue); + } + + /// \brief Save as WriteCompressedDelta(const templateType ¤tValue, const templateType &lastValue) + /// when we have an unknown second parameter + template + inline void BitStream::WriteCompressedDelta(const templateType ¤tValue) + { + Write(true); + WriteCompressed(currentValue); + } + + /// \brief Save as WriteCompressedDelta(bool currentValue, const templateType &lastValue) + /// when we have an unknown second bool + template <> + inline void BitStream::WriteCompressedDelta(const bool ¤tValue) + { + Write(currentValue); + } + + /// \brief Read any integral type from a bitstream. Define __BITSTREAM_NATIVE_END if you need endian swapping. + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::Read(templateType &outTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(outTemplateVar)==1) + return ReadBits( ( unsigned char* ) &outTemplateVar, sizeof(templateType) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END +#ifdef _MSC_VER +#pragma warning(disable:4244) // '=' : conversion from 'unsigned long' to 'unsigned short', possible loss of data +#endif + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + if (ReadBits( ( unsigned char* ) output, sizeof(templateType) * 8, true )) + { + ReverseBytes(output, (unsigned char*)&outTemplateVar, sizeof(templateType)); + return true; + } + return false; + } + else +#endif + return ReadBits( ( unsigned char* ) & outTemplateVar, sizeof(templateType) * 8, true ); + } + } + + /// \brief Read a bool from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::Read(bool &outTemplateVar) + { + if ( readOffset + 1 > numberOfBitsUsed ) + return false; + + if ( data[ readOffset >> 3 ] & ( 0x80 >> ( readOffset & 7 ) ) ) // Is it faster to just write it out here? + outTemplateVar = true; + else + outTemplateVar = false; + + // Has to be on a different line for Mac + readOffset++; + + return true; + } + + /// \brief Read a systemAddress from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::Read(SystemAddress &outTemplateVar) + { + unsigned char ipVersion; + Read(ipVersion); + if (ipVersion==4) + { + outTemplateVar.address.addr4.sin_family=AF_INET; + // Read(var.binaryAddress); + // Don't endian swap the address or port + uint32_t binaryAddress; + ReadBits( ( unsigned char* ) & binaryAddress, sizeof(binaryAddress) * 8, true ); + // Unhide the IP address, done to prevent routers from changing it + outTemplateVar.address.addr4.sin_addr.s_addr=~binaryAddress; + bool b = ReadBits(( unsigned char* ) & outTemplateVar.address.addr4.sin_port, sizeof(outTemplateVar.address.addr4.sin_port) * 8, true); + outTemplateVar.debugPort=ntohs(outTemplateVar.address.addr4.sin_port); + return b; + } + else + { +#if RAKNET_SUPPORT_IPV6==1 + bool b = ReadBits((unsigned char*) &outTemplateVar.address.addr6, sizeof(outTemplateVar.address.addr6)*8, true); + outTemplateVar.debugPort=ntohs(outTemplateVar.address.addr6.sin6_port); + return b; +#else + return false; +#endif + } + } + + template <> + inline bool BitStream::Read(uint24_t &outTemplateVar) + { + AlignReadToByteBoundary(); + if ( readOffset + 3*8 > numberOfBitsUsed ) + return false; + + if (IsBigEndian()==false) + { + ((char *)&outTemplateVar.val)[0]=data[ (readOffset >> 3) + 0]; + ((char *)&outTemplateVar.val)[1]=data[ (readOffset >> 3) + 1]; + ((char *)&outTemplateVar.val)[2]=data[ (readOffset >> 3) + 2]; + ((char *)&outTemplateVar.val)[3]=0; + } + else + { + + ((char *)&outTemplateVar.val)[3]=data[ (readOffset >> 3) + 0]; + ((char *)&outTemplateVar.val)[2]=data[ (readOffset >> 3) + 1]; + ((char *)&outTemplateVar.val)[1]=data[ (readOffset >> 3) + 2]; + ((char *)&outTemplateVar.val)[0]=0; + } + + readOffset+=3*8; + return true; + } + + template <> + inline bool BitStream::Read(RakNetGUID &outTemplateVar) + { + return Read(outTemplateVar.g); + } + + + template <> + inline bool BitStream::Read(RakString &outTemplateVar) + { + return outTemplateVar.Deserialize(this); + } + template <> + inline bool BitStream::Read(RakWString &outTemplateVar) + { + return outTemplateVar.Deserialize(this); + } + template <> + inline bool BitStream::Read(char *&varString) + { + return RakString::Deserialize(varString,this); + } + template <> + inline bool BitStream::Read(wchar_t *&varString) + { + return RakWString::Deserialize(varString,this); + } + template <> + inline bool BitStream::Read(unsigned char *&varString) + { + return RakString::Deserialize((char*) varString,this); + } + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// ReadDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::ReadDelta(templateType &outTemplateVar) + { + bool dataWritten; + bool success; + success=Read(dataWritten); + if (dataWritten) + success=Read(outTemplateVar); + return success; + } + + /// \brief Read a bool from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::ReadDelta(bool &outTemplateVar) + { + return Read(outTemplateVar); + } + + /// \brief Read any integral type from a bitstream. + /// \details Undefine __BITSTREAM_NATIVE_END if you need endian swapping. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::ReadCompressed(templateType &outTemplateVar) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (sizeof(outTemplateVar)==1) + return ReadCompressed( ( unsigned char* ) &outTemplateVar, sizeof(templateType) * 8, true ); + else + { +#ifndef __BITSTREAM_NATIVE_END + if (DoEndianSwap()) + { + unsigned char output[sizeof(templateType)]; + if (ReadCompressed( ( unsigned char* ) output, sizeof(templateType) * 8, true )) + { + ReverseBytes(output, (unsigned char*)&outTemplateVar, sizeof(templateType)); + return true; + } + return false; + } + else +#endif + return ReadCompressed( ( unsigned char* ) & outTemplateVar, sizeof(templateType) * 8, true ); + } + } + + template <> + inline bool BitStream::ReadCompressed(SystemAddress &outTemplateVar) + { + return Read(outTemplateVar); + } + + template <> + inline bool BitStream::ReadCompressed(uint24_t &outTemplateVar) + { + return Read(outTemplateVar); + } + + template <> + inline bool BitStream::ReadCompressed(RakNetGUID &outTemplateVar) + { + return Read(outTemplateVar); + } + + template <> + inline bool BitStream::ReadCompressed(bool &outTemplateVar) + { + return Read(outTemplateVar); + } + + /// For values between -1 and 1 + template <> + inline bool BitStream::ReadCompressed(float &outTemplateVar) + { + unsigned short compressedFloat; + if (Read(compressedFloat)) + { + outTemplateVar = ((float)compressedFloat / 32767.5f - 1.0f); + return true; + } + return false; + } + + /// For values between -1 and 1 + template <> + inline bool BitStream::ReadCompressed(double &outTemplateVar) + { + uint32_t compressedFloat; + if (Read(compressedFloat)) + { + outTemplateVar = ((double)compressedFloat / 2147483648.0 - 1.0); + return true; + } + return false; + } + + /// For strings + template <> + inline bool BitStream::ReadCompressed(RakString &outTemplateVar) + { + return outTemplateVar.DeserializeCompressed(this,false); + } + template <> + inline bool BitStream::ReadCompressed(RakWString &outTemplateVar) + { + return outTemplateVar.Deserialize(this); + } + template <> + inline bool BitStream::ReadCompressed(char *&outTemplateVar) + { + return RakString::DeserializeCompressed(outTemplateVar,this,false); + } + template <> + inline bool BitStream::ReadCompressed(wchar_t *&outTemplateVar) + { + return RakWString::Deserialize(outTemplateVar,this); + } + template <> + inline bool BitStream::ReadCompressed(unsigned char *&outTemplateVar) + { + return RakString::DeserializeCompressed((char*) outTemplateVar,this,false); + } + + /// \brief Read any integral type from a bitstream. + /// \details If the written value differed from the value compared against in the write function, + /// var will be updated. Otherwise it will retain the current value. + /// the current value will be updated. + /// For floating point, this is lossy, using 2 bytes for a float and 4 for a double. The range must be between -1 and +1. + /// For non-floating point, this is lossless, but only has benefit if you use less than half the bits of the type + /// If you are not using __BITSTREAM_NATIVE_END the opposite is true for types larger than 1 byte + /// ReadCompressedDelta is only valid from a previous call to WriteDelta + /// \param[in] outTemplateVar The value to read + template + inline bool BitStream::ReadCompressedDelta(templateType &outTemplateVar) + { + bool dataWritten; + bool success; + success=Read(dataWritten); + if (dataWritten) + success=ReadCompressed(outTemplateVar); + return success; + } + + /// \brief Read a bool from a bitstream. + /// \param[in] outTemplateVar The value to read + template <> + inline bool BitStream::ReadCompressedDelta(bool &outTemplateVar) + { + return Read(outTemplateVar); + } + + template + void BitStream::WriteCasted( const sourceType &value ) + { + destinationType val = (destinationType) value; + Write(val); + } + + template + void BitStream::WriteBitsFromIntegerRange( const templateType value, const templateType minimum,const templateType maximum, bool allowOutsideRange ) + { + int requiredBits=BYTES_TO_BITS(sizeof(templateType))-NumberOfLeadingZeroes(templateType(maximum-minimum)); + WriteBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + } + template + void BitStream::WriteBitsFromIntegerRange( const templateType value, const templateType minimum,const templateType maximum, const int requiredBits, bool allowOutsideRange ) + { + RakAssert(maximum>=minimum); + RakAssert(allowOutsideRange==true || (value>=minimum && value<=maximum)); + if (allowOutsideRange) + { + if (valuemaximum) + { + Write(true); + Write(value); + return; + } + Write(false); + } + templateType valueOffMin=value-minimum; + if (IsBigEndian()==true) + { + unsigned char output[sizeof(templateType)]; + ReverseBytes((unsigned char*)&valueOffMin, output, sizeof(templateType)); + WriteBits(output,requiredBits); + } + else + { + WriteBits((unsigned char*) &valueOffMin,requiredBits); + } + } + + template // templateType for this function must be a float or double + void BitStream::WriteNormVector( templateType x, templateType y, templateType z ) + { +#ifdef _DEBUG + RakAssert(x <= 1.01 && y <= 1.01 && z <= 1.01 && x >= -1.01 && y >= -1.01 && z >= -1.01); +#endif + + WriteFloat16((float)x,-1.0f,1.0f); + WriteFloat16((float)y,-1.0f,1.0f); + WriteFloat16((float)z,-1.0f,1.0f); + } + + template // templateType for this function must be a float or double + void BitStream::WriteVector( templateType x, templateType y, templateType z ) + { + templateType magnitude = sqrt(x * x + y * y + z * z); + Write((float)magnitude); + if (magnitude > 0.00001f) + { + WriteCompressed((float)(x/magnitude)); + WriteCompressed((float)(y/magnitude)); + WriteCompressed((float)(z/magnitude)); + // Write((unsigned short)((x/magnitude+1.0f)*32767.5f)); + // Write((unsigned short)((y/magnitude+1.0f)*32767.5f)); + // Write((unsigned short)((z/magnitude+1.0f)*32767.5f)); + } + } + + template // templateType for this function must be a float or double + void BitStream::WriteNormQuat( templateType w, templateType x, templateType y, templateType z) + { + Write((bool)(w<0.0)); + Write((bool)(x<0.0)); + Write((bool)(y<0.0)); + Write((bool)(z<0.0)); + Write((unsigned short)(fabs(x)*65535.0)); + Write((unsigned short)(fabs(y)*65535.0)); + Write((unsigned short)(fabs(z)*65535.0)); + // Leave out w and calculate it on the target + } + + template // templateType for this function must be a float or double + void BitStream::WriteOrthMatrix( + templateType m00, templateType m01, templateType m02, + templateType m10, templateType m11, templateType m12, + templateType m20, templateType m21, templateType m22 ) + { + + double qw; + double qx; + double qy; + double qz; + + // Convert matrix to quat + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ + float sum; + sum = 1 + m00 + m11 + m22; + if (sum < 0.0f) sum=0.0f; + qw = sqrt( sum ) / 2; + sum = 1 + m00 - m11 - m22; + if (sum < 0.0f) sum=0.0f; + qx = sqrt( sum ) / 2; + sum = 1 - m00 + m11 - m22; + if (sum < 0.0f) sum=0.0f; + qy = sqrt( sum ) / 2; + sum = 1 - m00 - m11 + m22; + if (sum < 0.0f) sum=0.0f; + qz = sqrt( sum ) / 2; + if (qw < 0.0) qw=0.0; + if (qx < 0.0) qx=0.0; + if (qy < 0.0) qy=0.0; + if (qz < 0.0) qz=0.0; + qx = _copysign( (double) qx, (double) (m21 - m12) ); + qy = _copysign( (double) qy, (double) (m02 - m20) ); + qz = _copysign( (double) qz, (double) (m10 - m01) ); + + WriteNormQuat(qw,qx,qy,qz); + } + + template + bool BitStream::ReadCasted( sourceType &value ) + { + serializationType val; + bool success = Read(val); + value=(sourceType) val; + return success; + } + + template + bool BitStream::ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, bool allowOutsideRange ) + { + int requiredBits=BYTES_TO_BITS(sizeof(templateType))-NumberOfLeadingZeroes(templateType(maximum-minimum)); + return ReadBitsFromIntegerRange(value,minimum,maximum,requiredBits,allowOutsideRange); + } + template + bool BitStream::ReadBitsFromIntegerRange( templateType &value, const templateType minimum, const templateType maximum, const int requiredBits, bool allowOutsideRange ) + { + RakAssert(maximum>=minimum); + if (allowOutsideRange) + { + bool isOutsideRange; + Read(isOutsideRange); + if (isOutsideRange) + return Read(value); + } + unsigned char output[sizeof(templateType)]; + memset(output,0,sizeof(output)); + bool success = ReadBits(output,requiredBits); + if (success) + { + if (IsBigEndian()==true) + ReverseBytesInPlace(output,sizeof(output)); + memcpy(&value,output,sizeof(output)); + + value+=minimum; + } + + return success; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadNormVector( templateType &x, templateType &y, templateType &z ) + { + float xIn,yIn,zIn; + ReadFloat16(xIn,-1.0f,1.0f); + ReadFloat16(yIn,-1.0f,1.0f); + ReadFloat16(zIn,-1.0f,1.0f); + x=xIn; + y=yIn; + z=zIn; + return true; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadVector( templateType &x, templateType &y, templateType &z ) + { + float magnitude; + //unsigned short sx,sy,sz; + if (!Read(magnitude)) + return false; + if (magnitude>0.00001f) + { + // Read(sx); + // Read(sy); + // if (!Read(sz)) + // return false; + // x=((float)sx / 32767.5f - 1.0f) * magnitude; + // y=((float)sy / 32767.5f - 1.0f) * magnitude; + // z=((float)sz / 32767.5f - 1.0f) * magnitude; + float cx,cy,cz; + ReadCompressed(cx); + ReadCompressed(cy); + if (!ReadCompressed(cz)) + return false; + x=cx; + y=cy; + z=cz; + x*=magnitude; + y*=magnitude; + z*=magnitude; + } + else + { + x=0.0; + y=0.0; + z=0.0; + } + return true; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadNormQuat( templateType &w, templateType &x, templateType &y, templateType &z) + { + bool cwNeg=false, cxNeg=false, cyNeg=false, czNeg=false; + unsigned short cx,cy,cz; + Read(cwNeg); + Read(cxNeg); + Read(cyNeg); + Read(czNeg); + Read(cx); + Read(cy); + if (!Read(cz)) + return false; + + // Calculate w from x,y,z + x=(templateType)(cx/65535.0); + y=(templateType)(cy/65535.0); + z=(templateType)(cz/65535.0); + if (cxNeg) x=-x; + if (cyNeg) y=-y; + if (czNeg) z=-z; + float difference = 1.0f - x*x - y*y - z*z; + if (difference < 0.0f) + difference=0.0f; + w = (templateType)(sqrt(difference)); + if (cwNeg) + w=-w; + + return true; + } + + template // templateType for this function must be a float or double + bool BitStream::ReadOrthMatrix( + templateType &m00, templateType &m01, templateType &m02, + templateType &m10, templateType &m11, templateType &m12, + templateType &m20, templateType &m21, templateType &m22 ) + { + float qw,qx,qy,qz; + if (!ReadNormQuat(qw,qx,qy,qz)) + return false; + + // Quat to orthogonal rotation matrix + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToMatrix/index.htm + double sqw = (double)qw*(double)qw; + double sqx = (double)qx*(double)qx; + double sqy = (double)qy*(double)qy; + double sqz = (double)qz*(double)qz; + m00 = (templateType)(sqx - sqy - sqz + sqw); // since sqw + sqx + sqy + sqz =1 + m11 = (templateType)(-sqx + sqy - sqz + sqw); + m22 = (templateType)(-sqx - sqy + sqz + sqw); + + double tmp1 = (double)qx*(double)qy; + double tmp2 = (double)qz*(double)qw; + m10 = (templateType)(2.0 * (tmp1 + tmp2)); + m01 = (templateType)(2.0 * (tmp1 - tmp2)); + + tmp1 = (double)qx*(double)qz; + tmp2 = (double)qy*(double)qw; + m20 =(templateType)(2.0 * (tmp1 - tmp2)); + m02 = (templateType)(2.0 * (tmp1 + tmp2)); + tmp1 = (double)qy*(double)qz; + tmp2 = (double)qx*(double)qw; + m21 = (templateType)(2.0 * (tmp1 + tmp2)); + m12 = (templateType)(2.0 * (tmp1 - tmp2)); + + return true; + } + + template + BitStream& operator<<(BitStream& out, templateType& c) + { + out.Write(c); + return out; + } + template + BitStream& operator>>(BitStream& in, templateType& c) + { + bool success = in.Read(c); + RakAssert(success); + return in; + } + +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + +#endif // VC6 diff --git a/src/raknet/CCRakNetSlidingWindow.cpp b/src/raknet/CCRakNetSlidingWindow.cpp new file mode 100755 index 0000000..ccc9757 --- /dev/null +++ b/src/raknet/CCRakNetSlidingWindow.cpp @@ -0,0 +1,332 @@ +#include "CCRakNetSlidingWindow.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL==1 + +static const double UNSET_TIME_US=-1; + +#if CC_TIME_TYPE_BYTES==4 +static const CCTimeType SYN=10; +#else +static const CCTimeType SYN=10000; +#endif + +#include "MTUSize.h" +#include +#include +#include +#include "RakAssert.h" +#include "RakAlloca.h" + +using namespace RakNet; + +// ****************************************************** PUBLIC METHODS ****************************************************** + +CCRakNetSlidingWindow::CCRakNetSlidingWindow() +{ +} +// ---------------------------------------------------------------------------------------------------------------------------- +CCRakNetSlidingWindow::~CCRakNetSlidingWindow() +{ + +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::Init(CCTimeType curTime, uint32_t maxDatagramPayload) +{ + (void) curTime; + + RTT=UNSET_TIME_US; + MAXIMUM_MTU_INCLUDING_UDP_HEADER=maxDatagramPayload; + cwnd=maxDatagramPayload; + ssThresh=0.0; + oldestUnsentAck=0; + nextDatagramSequenceNumber=0; + nextCongestionControlBlock=0; + backoffThisBlock=speedUpThisBlock=false; + expectedNextSequenceNumber=0; + _isContinuousSend=false; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::Update(CCTimeType curTime, bool hasDataToSendOrResend) +{ + (void) curTime; + (void) hasDataToSendOrResend; +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetSlidingWindow::GetRetransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + (void) isContinuousSend; + (void) timeSinceLastTick; + + return unacknowledgedBytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetSlidingWindow::GetTransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + (void) timeSinceLastTick; + + _isContinuousSend=isContinuousSend; + + if (unacknowledgedBytes<=cwnd) + return (int) (cwnd-unacknowledgedBytes); + else + return 0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::ShouldSendACKs(CCTimeType curTime, CCTimeType estimatedTimeToNextTick) +{ + CCTimeType rto = GetSenderRTOForACK(); + (void) estimatedTimeToNextTick; + + // iphone crashes on comparison between double and int64 http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 + if (rto==(CCTimeType) UNSET_TIME_US) + { + // Unknown how long until the remote system will retransmit, so better send right away + return true; + } + + return curTime >= oldestUnsentAck + SYN; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetSlidingWindow::GetNextDatagramSequenceNumber(void) +{ + return nextDatagramSequenceNumber; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetSlidingWindow::GetAndIncrementNextDatagramSequenceNumber(void) +{ + DatagramSequenceNumberType dsnt=nextDatagramSequenceNumber; + nextDatagramSequenceNumber++; + return dsnt; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendBytes(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + (void) numBytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnGotPacketPair(DatagramSequenceNumberType datagramSequenceNumber, uint32_t sizeInBytes, CCTimeType curTime) +{ + (void) curTime; + (void) sizeInBytes; + (void) datagramSequenceNumber; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::OnGotPacket(DatagramSequenceNumberType datagramSequenceNumber, bool isContinuousSend, CCTimeType curTime, uint32_t sizeInBytes, uint32_t *skippedMessageCount) +{ + (void) curTime; + (void) sizeInBytes; + (void) isContinuousSend; + + if (oldestUnsentAck==0) + oldestUnsentAck=curTime; + + if (datagramSequenceNumber==expectedNextSequenceNumber) + { + *skippedMessageCount=0; + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else if (GreaterThan(datagramSequenceNumber, expectedNextSequenceNumber)) + { + *skippedMessageCount=datagramSequenceNumber-expectedNextSequenceNumber; + // Sanity check, just use timeout resend if this was really valid + if (*skippedMessageCount>1000) + { + // During testing, the nat punchthrough server got 51200 on the first packet. I have no idea where this comes from, but has happened twice + if (*skippedMessageCount>(uint32_t)50000) + return false; + *skippedMessageCount=1000; + } + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else + { + *skippedMessageCount=0; + } + + return true; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnResend(CCTimeType curTime) +{ + (void) curTime; + + if (_isContinuousSend && backoffThisBlock==false && cwnd>MAXIMUM_MTU_INCLUDING_UDP_HEADER*2) + { + ssThresh=cwnd/2; + if (ssThreshssThresh && ssThresh!=0) + { + cwnd=ssThresh; + cwnd+=MAXIMUM_MTU_INCLUDING_UDP_HEADER*MAXIMUM_MTU_INCLUDING_UDP_HEADER/cwnd; + } + } + } + } + else + { + if (isNewCongestionControlPeriod) + cwnd+=MAXIMUM_MTU_INCLUDING_UDP_HEADER*MAXIMUM_MTU_INCLUDING_UDP_HEADER/cwnd; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnDuplicateAck( CCTimeType curTime, DatagramSequenceNumberType sequenceNumber ) +{ + (void) sequenceNumber; + + OnResend(curTime); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendAckGetBAndAS(CCTimeType curTime, bool *hasBAndAS, BytesPerMicrosecond *_B, BytesPerMicrosecond *_AS) +{ + (void) curTime; + (void) _B; + (void) _AS; + + *hasBAndAS=false; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendAck(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + (void) numBytes; + + oldestUnsentAck=0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::OnSendNACK(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + (void) numBytes; + +} +// ---------------------------------------------------------------------------------------------------------------------------- +CCTimeType CCRakNetSlidingWindow::GetRTOForRetransmission(void) const +{ +#if CC_TIME_TYPE_BYTES==4 + const CCTimeType maxThreshold=2000; + const CCTimeType minThreshold=100; +#else + const CCTimeType maxThreshold=2000000; + const CCTimeType minThreshold=100000; +#endif + + if (RTT==UNSET_TIME_US) + { + return maxThreshold; + } + + if (RTT * 3 > maxThreshold) + return maxThreshold; + if (RTT * 3 < minThreshold) + return minThreshold; + return (CCTimeType) RTT * 3; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetSlidingWindow::SetMTU(uint32_t bytes) +{ + MAXIMUM_MTU_INCLUDING_UDP_HEADER=bytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +uint32_t CCRakNetSlidingWindow::GetMTU(void) const +{ + return MAXIMUM_MTU_INCLUDING_UDP_HEADER; +} +// ---------------------------------------------------------------------------------------------------------------------------- +BytesPerMicrosecond CCRakNetSlidingWindow::GetLocalReceiveRate(CCTimeType currentTime) const +{ + (void) currentTime; + + return 0; // TODO +} +// ---------------------------------------------------------------------------------------------------------------------------- +double CCRakNetSlidingWindow::GetRTT(void) const +{ + if (RTT==UNSET_TIME_US) + return 0.0; + return RTT; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::GreaterThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b) +{ + // a > b? + const DatagramSequenceNumberType halfSpan =(DatagramSequenceNumberType) (((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2); + return b!=a && b-a>halfSpan; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetSlidingWindow::LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b) +{ + // a < b? + const DatagramSequenceNumberType halfSpan = ((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2; + return b!=a && b-a b, accounting for variable overflow? + static bool GreaterThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); + /// Is a < b, accounting for variable overflow? + static bool LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); +// void SetTimeBetweenSendsLimit(unsigned int bitsPerSecond); + uint64_t GetBytesPerSecondLimitByCongestionControl(void) const; + + protected: + + // Maximum amount of bytes that the user can send, e.g. the size of one full datagram + uint32_t MAXIMUM_MTU_INCLUDING_UDP_HEADER; + + double RTT; + + double cwnd; // max bytes on wire + double ssThresh; // Threshhold between slow start and congestion avoidance + + /// When we get an ack, if oldestUnsentAck==0, set it to the current time + /// When we send out acks, set oldestUnsentAck to 0 + CCTimeType oldestUnsentAck; + + CCTimeType GetSenderRTOForACK(void) const; + + /// Every outgoing datagram is assigned a sequence number, which increments by 1 every assignment + DatagramSequenceNumberType nextDatagramSequenceNumber; + DatagramSequenceNumberType nextCongestionControlBlock; + bool backoffThisBlock, speedUpThisBlock; + /// Track which datagram sequence numbers have arrived. + /// If a sequence number is skipped, send a NAK for all skipped messages + DatagramSequenceNumberType expectedNextSequenceNumber; + + bool _isContinuousSend; + + bool IsInSlowStart(void) const; +}; + +} + +#endif + +#endif diff --git a/src/raknet/CCRakNetUDT.cpp b/src/raknet/CCRakNetUDT.cpp new file mode 100755 index 0000000..dcf942e --- /dev/null +++ b/src/raknet/CCRakNetUDT.cpp @@ -0,0 +1,798 @@ +#include "CCRakNetUDT.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 + +#include "Rand.h" +#include "MTUSize.h" +#include +#include +#include +//#include +#include "RakAssert.h" +#include "RakAlloca.h" + +using namespace RakNet; + +static const double UNSET_TIME_US=-1; +static const double CWND_MIN_THRESHOLD=2.0; +static const double UNDEFINED_TRANSFER_RATE=0.0; +/// Interval at which to update aspects of the system +/// 1. send acks +/// 2. update time interval between outgoing packets +/// 3, Yodate retransmit timeout +#if CC_TIME_TYPE_BYTES==4 +static const CCTimeType SYN=10; +#else +static const CCTimeType SYN=10000; +#endif + +#if CC_TIME_TYPE_BYTES==4 +#define MAX_RTT 1000 +#define RTT_TOLERANCE 30 +#else +#define MAX_RTT 1000000 +#define RTT_TOLERANCE 30000 +#endif + + +double RTTVarMultiple=4.0; + + +// ****************************************************** PUBLIC METHODS ****************************************************** + +CCRakNetUDT::CCRakNetUDT() +{ +} + +// ---------------------------------------------------------------------------------------------------------------------------- + +CCRakNetUDT::~CCRakNetUDT() +{ +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::Init(CCTimeType curTime, uint32_t maxDatagramPayload) +{ + (void) curTime; + + nextSYNUpdate=0; + packetPairRecieptHistoryWriteIndex=0; + packetArrivalHistoryWriteIndex=0; + packetArrivalHistoryWriteCount=0; + RTT=UNSET_TIME_US; + // RTTVar=UNSET_TIME_US; + isInSlowStart=true; + NAKCount=1000; + AvgNAKNum=1; + DecInterval=1; + DecCount=0; + nextDatagramSequenceNumber=0; + lastPacketPairPacketArrivalTime=0; + lastPacketPairSequenceNumber=(DatagramSequenceNumberType)(const uint32_t)-1; + lastPacketArrivalTime=0; + CWND=CWND_MIN_THRESHOLD; + lastUpdateWindowSizeAndAck=0; + lastTransmitOfBAndAS=0; + ExpCount=1.0; + totalUserDataBytesSent=0; + oldestUnsentAck=0; + MAXIMUM_MTU_INCLUDING_UDP_HEADER=maxDatagramPayload; + CWND_MAX_THRESHOLD=RESEND_BUFFER_ARRAY_LENGTH; +#if CC_TIME_TYPE_BYTES==4 + const BytesPerMicrosecond DEFAULT_TRANSFER_RATE=(BytesPerMicrosecond) 3.6; +#else + const BytesPerMicrosecond DEFAULT_TRANSFER_RATE=(BytesPerMicrosecond) .0036; +#endif + +#if CC_TIME_TYPE_BYTES==4 + lastRttOnIncreaseSendRate=1000; +#else + lastRttOnIncreaseSendRate=1000000; +#endif + nextCongestionControlBlock=0; + lastRtt=0; + + // B=DEFAULT_TRANSFER_RATE; + AS=UNDEFINED_TRANSFER_RATE; + const MicrosecondsPerByte DEFAULT_BYTE_INTERVAL=(MicrosecondsPerByte) (1.0/DEFAULT_TRANSFER_RATE); + SND=DEFAULT_BYTE_INTERVAL; + expectedNextSequenceNumber=0; + sendBAndASCount=0; + packetArrivalHistoryContinuousGapsIndex=0; + //packetPairRecipetHistoryGapsIndex=0; + hasWrittenToPacketPairReceiptHistory=false; + InitPacketArrivalHistory(); + + estimatedLinkCapacityBytesPerSecond=0; + bytesCanSendThisTick=0; + hadPacketlossThisBlock=false; + pingsLastInterval.Clear(__FILE__,__LINE__); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::SetMTU(uint32_t bytes) +{ + MAXIMUM_MTU_INCLUDING_UDP_HEADER=bytes; +} +// ---------------------------------------------------------------------------------------------------------------------------- +uint32_t CCRakNetUDT::GetMTU(void) const +{ + return MAXIMUM_MTU_INCLUDING_UDP_HEADER; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::Update(CCTimeType curTime, bool hasDataToSendOrResend) +{ + (void) hasDataToSendOrResend; + (void) curTime; + + return; + + // I suspect this is causing major lag + + /* + if (hasDataToSendOrResend==false) + halveSNDOnNoDataTime=0; + else if (halveSNDOnNoDataTime==0) + { + UpdateHalveSNDOnNoDataTime(curTime); + ExpCount=1.0; + } + + // If you send, and get no data at all from that time to RTO, then halve send rate7 + if (HasHalveSNDOnNoDataTimeElapsed(curTime)) + { + /// 2000 bytes per second + /// 0.0005 seconds per byte + /// 0.5 milliseconds per byte + /// 500 microseconds per byte + // printf("No incoming data, halving send rate\n"); + SND*=2.0; + CapMinSnd(_FILE_AND_LINE_); + ExpCount+=1.0; + if (ExpCount>8.0) + ExpCount=8.0; + + UpdateHalveSNDOnNoDataTime(curTime); + } + */ +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetUDT::GetRetransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + + if (isInSlowStart) + { + uint32_t CWNDLimit = (uint32_t) (CWND*MAXIMUM_MTU_INCLUDING_UDP_HEADER); + return CWNDLimit; + } + return GetTransmissionBandwidth(curTime,timeSinceLastTick,unacknowledgedBytes,isContinuousSend); +} +// ---------------------------------------------------------------------------------------------------------------------------- +int CCRakNetUDT::GetTransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend) +{ + (void) curTime; + + if (isInSlowStart) + { + uint32_t CWNDLimit = (uint32_t) (CWND*MAXIMUM_MTU_INCLUDING_UDP_HEADER-unacknowledgedBytes); + return CWNDLimit; + } + if (bytesCanSendThisTick>0) + bytesCanSendThisTick=0; + +#if CC_TIME_TYPE_BYTES==4 + if (isContinuousSend==false && timeSinceLastTick>100) + timeSinceLastTick=100; +#else + if (isContinuousSend==false && timeSinceLastTick>100000) + timeSinceLastTick=100000; +#endif + + bytesCanSendThisTick=(int)((double)timeSinceLastTick*((double)1.0/SND)+(double)bytesCanSendThisTick); + if (bytesCanSendThisTick>0) + return bytesCanSendThisTick; + return 0; +} +uint64_t CCRakNetUDT::GetBytesPerSecondLimitByCongestionControl(void) const +{ + if (isInSlowStart) + return 0; +#if CC_TIME_TYPE_BYTES==4 + return (uint64_t) ((double)1.0/(SND*1000.0)); +#else + return (uint64_t) ((double)1.0/(SND*1000000.0)); +#endif +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetUDT::ShouldSendACKs(CCTimeType curTime, CCTimeType estimatedTimeToNextTick) +{ + CCTimeType rto = GetSenderRTOForACK(); + + // iphone crashes on comparison between double and int64 http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 + if (rto==(CCTimeType) UNSET_TIME_US) + { + // Unknown how long until the remote system will retransmit, so better send right away + return true; + } + + + // CCTimeType remoteRetransmitTime=oldestUnsentAck+rto-RTT*.5; + // CCTimeType ackArrivalTimeIfWeDelay=RTT*.5+estimatedTimeToNextTick+curTime; + // return ackArrivalTimeIfWeDelay= oldestUnsentAck + SYN || + estimatedTimeToNextTick+curTime < oldestUnsentAck+rto-RTT; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetUDT::GetNextDatagramSequenceNumber(void) +{ + return nextDatagramSequenceNumber; +} +// ---------------------------------------------------------------------------------------------------------------------------- +DatagramSequenceNumberType CCRakNetUDT::GetAndIncrementNextDatagramSequenceNumber(void) +{ + DatagramSequenceNumberType dsnt=nextDatagramSequenceNumber; + nextDatagramSequenceNumber++; + return dsnt; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendBytes(CCTimeType curTime, uint32_t numBytes) +{ + (void) curTime; + + totalUserDataBytesSent+=numBytes; + if (isInSlowStart==false) + bytesCanSendThisTick-=numBytes; +} + +// ****************************************************** PROTECTED METHODS ****************************************************** + +void CCRakNetUDT::SetNextSYNUpdate(CCTimeType currentTime) +{ + nextSYNUpdate+=SYN; + if (nextSYNUpdate < currentTime) + nextSYNUpdate=currentTime+SYN; +} +// ---------------------------------------------------------------------------------------------------------------------------- +BytesPerMicrosecond CCRakNetUDT::ReceiverCalculateDataArrivalRate(CCTimeType curTime) const +{ + (void) curTime; + // Not an instantaneous measurement + /* + if (continuousBytesReceivedStartTime!=0 && curTime>continuousBytesReceivedStartTime) + { + #if CC_TIME_TYPE_BYTES==4 + const CCTimeType threshold=100; + #else + const CCTimeType threshold=100000; + #endif + if (curTime-continuousBytesReceivedStartTime>threshold) + return (BytesPerMicrosecond) continuousBytesReceived/(BytesPerMicrosecond) (curTime-continuousBytesReceivedStartTime); + } + + return UNDEFINED_TRANSFER_RATE; + */ + + + if (packetArrivalHistoryWriteCount=oneEighthMedian && + packetArrivalHistory[i] b? + const DatagramSequenceNumberType halfSpan =(DatagramSequenceNumberType) (((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2); + return b!=a && b-a>halfSpan; +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetUDT::LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b) +{ + // a < b? + const DatagramSequenceNumberType halfSpan = ((DatagramSequenceNumberType)(const uint32_t)-1)/(DatagramSequenceNumberType)2; + return b!=a && b-amaxThreshold) + return maxThreshold; + return ret; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnResend(CCTimeType curTime) +{ + (void) curTime; + + if (isInSlowStart) + { + if (AS!=UNDEFINED_TRANSFER_RATE) + EndSlowStart(); + return; + } + + if (hadPacketlossThisBlock==false) + { + // Logging + // printf("Sending SLOWER due to Resend, Rate=%f MBPS. Rtt=%i\n", GetLocalSendRate(), lastRtt ); + + IncreaseTimeBetweenSends(); + hadPacketlossThisBlock=true; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnNAK(CCTimeType curTime, DatagramSequenceNumberType nakSequenceNumber) +{ + (void) nakSequenceNumber; + (void) curTime; + + if (isInSlowStart) + { + if (AS!=UNDEFINED_TRANSFER_RATE) + EndSlowStart(); + return; + } + + if (hadPacketlossThisBlock==false) + { + // Logging + //printf("Sending SLOWER due to NAK, Rate=%f MBPS. Rtt=%i\n", GetLocalSendRate(), lastRtt ); + if (pingsLastInterval.Size()>10) + { + for (int i=0; i < 10; i++) + printf("%i, ", pingsLastInterval[pingsLastInterval.Size()-1-i]/1000); + } + printf("\n"); + IncreaseTimeBetweenSends(); + + hadPacketlossThisBlock=true; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::EndSlowStart(void) +{ + RakAssert(isInSlowStart==true); + RakAssert(AS!=UNDEFINED_TRANSFER_RATE); + + // This overestimates + estimatedLinkCapacityBytesPerSecond=AS * 1000000.0; + + isInSlowStart=false; + SND=1.0/AS; + CapMinSnd(_FILE_AND_LINE_); + + // printf("ENDING SLOW START\n"); +#if CC_TIME_TYPE_BYTES==4 + // printf("Initial SND=%f Kilobytes per second\n", 1.0/SND); +#else + // printf("Initial SND=%f Megabytes per second\n", 1.0/SND); +#endif + if (SND > .1) + PrintLowBandwidthWarning(); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnGotPacketPair(DatagramSequenceNumberType datagramSequenceNumber, uint32_t sizeInBytes, CCTimeType curTime) +{ + (void) datagramSequenceNumber; + (void) sizeInBytes; + (void) curTime; + +} +// ---------------------------------------------------------------------------------------------------------------------------- +bool CCRakNetUDT::OnGotPacket(DatagramSequenceNumberType datagramSequenceNumber, bool isContinuousSend, CCTimeType curTime, uint32_t sizeInBytes, uint32_t *skippedMessageCount) +{ + CC_DEBUG_PRINTF_2("R%i ",datagramSequenceNumber.val); + + if (datagramSequenceNumber==expectedNextSequenceNumber) + { + *skippedMessageCount=0; + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else if (GreaterThan(datagramSequenceNumber, expectedNextSequenceNumber)) + { + *skippedMessageCount=datagramSequenceNumber-expectedNextSequenceNumber; + // Sanity check, just use timeout resend if this was really valid + if (*skippedMessageCount>1000) + { + // During testing, the nat punchthrough server got 51200 on the first packet. I have no idea where this comes from, but has happened twice + if (*skippedMessageCount>(uint32_t)50000) + return false; + *skippedMessageCount=1000; + } + expectedNextSequenceNumber=datagramSequenceNumber+(DatagramSequenceNumberType)1; + } + else + { + *skippedMessageCount=0; + } + + if (curTime>lastPacketArrivalTime) + { + CCTimeType interval = curTime-lastPacketArrivalTime; + + // printf("Packet arrival gap is %I64u\n", (interval)); + + if (isContinuousSend) + { + continuousBytesReceived+=sizeInBytes; + if (continuousBytesReceivedStartTime==0) + continuousBytesReceivedStartTime=lastPacketArrivalTime; + + + mostRecentPacketArrivalHistory=(BytesPerMicrosecond)sizeInBytes/(BytesPerMicrosecond)interval; + + // if (mostRecentPacketArrivalHistory < (BytesPerMicrosecond)0.0035) + // { + // printf("%s:%i LIKELY BUG: Calculated packetArrivalHistory is below 28.8 Kbps modem\nReport to rakkar@jenkinssoftware.com with file and line number\n", _FILE_AND_LINE_); + // } + + packetArrivalHistoryContinuousGaps[packetArrivalHistoryContinuousGapsIndex++]=(int) interval; + packetArrivalHistoryContinuousGapsIndex&=(CC_RAKNET_UDT_PACKET_HISTORY_LENGTH-1); + + packetArrivalHistoryWriteCount++; + packetArrivalHistory[packetArrivalHistoryWriteIndex++]=mostRecentPacketArrivalHistory; + // Wrap to 0 at the end of the range + // Assumes power of 2 for CC_RAKNET_UDT_PACKET_HISTORY_LENGTH + packetArrivalHistoryWriteIndex&=(CC_RAKNET_UDT_PACKET_HISTORY_LENGTH-1); + } + else + { + continuousBytesReceivedStartTime=0; + continuousBytesReceived=0; + } + + lastPacketArrivalTime=curTime; + } + return true; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnAck(CCTimeType curTime, CCTimeType rtt, bool hasBAndAS, BytesPerMicrosecond _B, BytesPerMicrosecond _AS, double totalUserDataBytesAcked, bool isContinuousSend, DatagramSequenceNumberType sequenceNumber ) +{ +#if CC_TIME_TYPE_BYTES==4 + RakAssert(rtt < 10000); +#else + RakAssert(rtt < 10000000); +#endif + (void) _B; + + if (hasBAndAS) + { + /// RakAssert(_B!=UNDEFINED_TRANSFER_RATE && _AS!=UNDEFINED_TRANSFER_RATE); + // B=B * .875 + _B * .125; + // AS is packet arrival rate + RakAssert(_AS!=UNDEFINED_TRANSFER_RATE); + AS=_AS; + CC_DEBUG_PRINTF_4("ArrivalRate=%f linkCap=%f incomingLinkCap=%f\n", _AS,B,_B); + } + + if (oldestUnsentAck==0) + oldestUnsentAck=curTime; + + if (isInSlowStart==true) + { + nextCongestionControlBlock=nextDatagramSequenceNumber; + lastRttOnIncreaseSendRate=rtt; + UpdateWindowSizeAndAckOnAckPreSlowStart(totalUserDataBytesAcked); + } + else + { + UpdateWindowSizeAndAckOnAckPerSyn(curTime, rtt, isContinuousSend, sequenceNumber); + } + + lastUpdateWindowSizeAndAck=curTime; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendAckGetBAndAS(CCTimeType curTime, bool *hasBAndAS, BytesPerMicrosecond *_B, BytesPerMicrosecond *_AS) +{ + if (curTime>lastTransmitOfBAndAS+SYN) + { + *_B=0; + *_AS=ReceiverCalculateDataArrivalRate(curTime); + + if (*_AS==UNDEFINED_TRANSFER_RATE) + { + *hasBAndAS=false; + } + else + { + *hasBAndAS=true; + } + } + else + { + *hasBAndAS=false; + } +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendAck(CCTimeType curTime, uint32_t numBytes) +{ + (void) numBytes; + (void) curTime; + + // This is not accounted for on the remote system, and thus causes bandwidth to be underutilized + //UpdateNextAllowedSend(curTime, numBytes+UDP_HEADER_SIZE); + + oldestUnsentAck=0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::OnSendNACK(CCTimeType curTime, uint32_t numBytes) +{ + (void) numBytes; + (void) curTime; + + // This is not accounted for on the remote system, and thus causes bandwidth to be underutilized + // UpdateNextAllowedSend(curTime, numBytes+UDP_HEADER_SIZE); +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::UpdateWindowSizeAndAckOnAckPreSlowStart(double totalUserDataBytesAcked) +{ + // During slow start, max window size is the number of full packets that have been sent out + // CWND=(double) ((double)totalUserDataBytesSent/(double)MAXIMUM_MTU_INCLUDING_UDP_HEADER); + CC_DEBUG_PRINTF_3("CWND increasing from %f to %f\n", CWND, (double) ((double)totalUserDataBytesAcked/(double)MAXIMUM_MTU_INCLUDING_UDP_HEADER)); + CWND=(double) ((double)totalUserDataBytesAcked/(double)MAXIMUM_MTU_INCLUDING_UDP_HEADER); + if (CWND>=CWND_MAX_THRESHOLD) + { + CWND=CWND_MAX_THRESHOLD; + + if (AS!=UNDEFINED_TRANSFER_RATE) + EndSlowStart(); + } + if (CWNDintervalSize) + pingsLastInterval.Pop(); + if (GreaterThan(sequenceNumber, nextCongestionControlBlock) && + sequenceNumber-nextCongestionControlBlock>=intervalSize && + pingsLastInterval.Size()==intervalSize) + { + double slopeSum=0.0; + double average=(double) pingsLastInterval[0]; + int sampleSize=pingsLastInterval.Size(); + for (int i=1; i < sampleSize; i++) + { + slopeSum+=(double)pingsLastInterval[i]-(double)pingsLastInterval[i-1]; + average+=pingsLastInterval[i]; + } + average/=sampleSize; + + if (hadPacketlossThisBlock==true) + { + } + else if (slopeSum < -.10*average) + { + // Logging + //printf("Ping dropping. slope=%f%%. Rate=%f MBPS. Rtt=%i\n", 100.0*slopeSum/average, GetLocalSendRate(), rtt ); + } + else if (slopeSum > .10*average) + { + // Logging + //printf("Ping rising. slope=%f%%. Rate=%f MBPS. Rtt=%i\n", 100.0*slopeSum/average, GetLocalSendRate(), rtt ); + IncreaseTimeBetweenSends(); + } + else + { + // Logging + //printf("Ping stable. slope=%f%%. Rate=%f MBPS. Rtt=%i\n", 100.0*slopeSum/average, GetLocalSendRate(), rtt ); + + // No packetloss over time threshhold, and rtt decreased, so send faster + lastRttOnIncreaseSendRate=rtt; + DecreaseTimeBetweenSends(); + } + + pingsLastInterval.Clear(__FILE__,__LINE__); + hadPacketlossThisBlock=false; + nextCongestionControlBlock=nextDatagramSequenceNumber; + } + + lastRtt=rtt; +} + +// ---------------------------------------------------------------------------------------------------------------------------- +double CCRakNetUDT::BytesPerMicrosecondToPacketsPerMillisecond(BytesPerMicrosecond in) +{ +#if CC_TIME_TYPE_BYTES==4 + const BytesPerMicrosecond factor = 1.0 / (BytesPerMicrosecond) MAXIMUM_MTU_INCLUDING_UDP_HEADER; +#else + const BytesPerMicrosecond factor = 1000.0 / (BytesPerMicrosecond) MAXIMUM_MTU_INCLUDING_UDP_HEADER; +#endif + return in * factor; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::InitPacketArrivalHistory(void) +{ + unsigned int i; + for (i=0; i < CC_RAKNET_UDT_PACKET_HISTORY_LENGTH; i++) + { + packetArrivalHistory[i]=UNDEFINED_TRANSFER_RATE; + packetArrivalHistoryContinuousGaps[i]=0; + } + + packetArrivalHistoryWriteCount=0; + continuousBytesReceived=0; + continuousBytesReceivedStartTime=0; +} +// ---------------------------------------------------------------------------------------------------------------------------- +void CCRakNetUDT::PrintLowBandwidthWarning(void) +{ + + /* + printf("\n-------LOW BANDWIDTH -----\n"); + if (isInSlowStart==false) + printf("SND=%f Megabytes per second\n", 1.0/SND); + printf("Window size=%f\n", CWND); + printf("Pipe from packet pair = %f megabytes per second\n", B); + printf("RTT=%f milliseconds\n", RTT/1000.0); + printf("RTT Variance=%f milliseconds\n", RTTVar/1000.0); + printf("Retransmission=%i milliseconds\n", GetRTOForRetransmission()/1000); + printf("Packet arrival rate on the remote system=%f megabytes per second\n", AS); + printf("Packet arrival rate on our system=%f megabytes per second\n", ReceiverCalculateDataArrivalRate()); + printf("isInSlowStart=%i\n", isInSlowStart); + printf("---------------\n"); + */ +} +BytesPerMicrosecond CCRakNetUDT::GetLocalReceiveRate(CCTimeType currentTime) const +{ + return ReceiverCalculateDataArrivalRate(currentTime); +} +double CCRakNetUDT::GetRTT(void) const +{ + if (RTT==UNSET_TIME_US) + return 0.0; + return RTT; +} +void CCRakNetUDT::CapMinSnd(const char *file, int line) +{ + (void) file; + (void) line; + + if (SND > 500) + { + SND=500; + CC_DEBUG_PRINTF_3("%s:%i LIKELY BUG: SND has gotten above 500 microseconds between messages (28.8 modem)\nReport to rakkar@jenkinssoftware.com with file and line number\n", file, line); + } +} +void CCRakNetUDT::IncreaseTimeBetweenSends(void) +{ + // In order to converge, bigger numbers have to increase slower and decrease faster + // SND==500 then increment is .02 + // SND==0 then increment is near 0 + // (SND+1.0) brings it to the range of 1 to 501 + // Square the number, which is the range of 1 to 251001 + // Divide by 251001, which is the range of 1/251001 to 1 + + double increment; + increment = .02 * ((SND+1.0) * (SND+1.0)) / (501.0*501.0) ; + // SND=500 then increment=.02 + // SND=0 then increment=near 0 + SND*=(1.02 - increment); + + // SND=0 then fast increase, slow decrease + // SND=500 then slow increase, fast decrease + CapMinSnd(__FILE__,__LINE__); +} +void CCRakNetUDT::DecreaseTimeBetweenSends(void) +{ + double increment; + increment = .01 * ((SND+1.0) * (SND+1.0)) / (501.0*501.0) ; + // SND=500 then increment=.01 + // SND=0 then increment=near 0 + SND*=(.99 - increment); +} +/* +void CCRakNetUDT::SetTimeBetweenSendsLimit(unsigned int bitsPerSecond) +{ +// bitsPerSecond / 1000000 = bitsPerMicrosecond +// bitsPerMicrosecond / 8 = BytesPerMicrosecond +// 1 / BytesPerMicrosecond = MicrosecondsPerByte +// 1 / ( (bitsPerSecond / 1000000) / 8 ) = +// 1 / (bitsPerSecond / 8000000) = +// 8000000 / bitsPerSecond + +#if CC_TIME_TYPE_BYTES==4 + MicrosecondsPerByte limit = (MicrosecondsPerByte) 8000 / (MicrosecondsPerByte)bitsPerSecond; +#else + MicrosecondsPerByte limit = (MicrosecondsPerByte) 8000000 / (MicrosecondsPerByte)bitsPerSecond; +#endif + if (limit > SND) + SND=limit; +} +*/ + +#endif diff --git a/src/raknet/CCRakNetUDT.h b/src/raknet/CCRakNetUDT.h new file mode 100755 index 0000000..ca8a1c2 --- /dev/null +++ b/src/raknet/CCRakNetUDT.h @@ -0,0 +1,394 @@ +#include "RakNetDefines.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 + +#ifndef __CONGESTION_CONTROL_UDT_H +#define __CONGESTION_CONTROL_UDT_H + +#include "NativeTypes.h" +#include "RakNetTime.h" +#include "RakNetTypes.h" +#include "DS_Queue.h" + +/// Set to 4 if you are using the iPod Touch TG. See http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 +#define CC_TIME_TYPE_BYTES 8 + +namespace RakNet +{ + + +typedef uint64_t CCTimeType; + + + + +typedef uint24_t DatagramSequenceNumberType; +typedef double BytesPerMicrosecond; +typedef double BytesPerSecond; +typedef double MicrosecondsPerByte; + +/// CC_RAKNET_UDT_PACKET_HISTORY_LENGTH should be a power of 2 for the writeIndex variables to wrap properly +#define CC_RAKNET_UDT_PACKET_HISTORY_LENGTH 64 +#define RTT_HISTORY_LENGTH 64 + +/// Sizeof an UDP header in byte +#define UDP_HEADER_SIZE 28 + +#define CC_DEBUG_PRINTF_1(x) +#define CC_DEBUG_PRINTF_2(x,y) +#define CC_DEBUG_PRINTF_3(x,y,z) +#define CC_DEBUG_PRINTF_4(x,y,z,a) +#define CC_DEBUG_PRINTF_5(x,y,z,a,b) +//#define CC_DEBUG_PRINTF_1(x) printf(x) +//#define CC_DEBUG_PRINTF_2(x,y) printf(x,y) +//#define CC_DEBUG_PRINTF_3(x,y,z) printf(x,y,z) +//#define CC_DEBUG_PRINTF_4(x,y,z,a) printf(x,y,z,a) +//#define CC_DEBUG_PRINTF_5(x,y,z,a,b) printf(x,y,z,a,b) + +/// \brief Encapsulates UDT congestion control, as used by RakNet +/// Requirements: +///
      +///
    1. Each datagram is no more than MAXIMUM_MTU_SIZE, after accounting for the UDP header +///
    2. Each datagram containing a user message has a sequence number which is set after calling OnSendBytes(). Set it by calling GetAndIncrementNextDatagramSequenceNumber() +///
    3. System is designed to be used from a single thread. +///
    4. Each packet should have a timeout time based on GetSenderRTOForACK(). If this time elapses, add the packet to the head of the send list for retransmission. +///
    +/// +/// Recommended: +///
      +///
    1. Call sendto in its own thread. This takes a significant amount of time in high speed networks. +///
    +/// +/// Algorithm: +///
      +///
    1. On a new connection, call Init() +///
    2. On a periodic interval (SYN time is the best) call Update(). Also call ShouldSendACKs(), and send buffered ACKS if it returns true. +///
    3. Call OnSendAck() when sending acks. +///
    4. When you want to send or resend data, call GetNumberOfBytesToSend(). It will return you enough bytes to keep you busy for \a estimatedTimeToNextTick. You can send more than this to fill out a datagram, or to send packet pairs +///
    5. Call OnSendBytes() when sending datagrams. +///
    6. When data arrives, record the sequence number and buffer an ACK for it, to be sent from Update() if ShouldSendACKs() returns true +///
    7. Every 16 packets that you send, send two of them back to back (a packet pair) as long as both packets are the same size. If you don't have two packets the same size, it is fine to defer this until you do. +///
    8. When you get a packet, call OnGotPacket(). If the packet is also either of a packet pair, call OnGotPacketPair() +///
    9. If you get a packet, and the sequence number is not 1 + the last sequence number, send a NAK. On the remote system, call OnNAK() and resend that message. +///
    10. If you get an ACK, remove that message from retransmission. Call OnNonDuplicateAck(). +///
    11. If a message is not ACKed for GetRTOForRetransmission(), resend it. +///
    +class CCRakNetUDT +{ + public: + + CCRakNetUDT(); + ~CCRakNetUDT(); + + /// Reset all variables to their initial states, for a new connection + void Init(CCTimeType curTime, uint32_t maxDatagramPayload); + + /// Update over time + void Update(CCTimeType curTime, bool hasDataToSendOrResend); + + int GetRetransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend); + int GetTransmissionBandwidth(CCTimeType curTime, CCTimeType timeSinceLastTick, uint32_t unacknowledgedBytes, bool isContinuousSend); + + /// Acks do not have to be sent immediately. Instead, they can be buffered up such that groups of acks are sent at a time + /// This reduces overall bandwidth usage + /// How long they can be buffered depends on the retransmit time of the sender + /// Should call once per update tick, and send if needed + bool ShouldSendACKs(CCTimeType curTime, CCTimeType estimatedTimeToNextTick); + + /// Every data packet sent must contain a sequence number + /// Call this function to get it. The sequence number is passed into OnGotPacketPair() + DatagramSequenceNumberType GetAndIncrementNextDatagramSequenceNumber(void); + DatagramSequenceNumberType GetNextDatagramSequenceNumber(void); + + /// Call this when you send packets + /// Every 15th and 16th packets should be sent as a packet pair if possible + /// When packets marked as a packet pair arrive, pass to OnGotPacketPair() + /// When any packets arrive, (additionally) pass to OnGotPacket + /// Packets should contain our system time, so we can pass rtt to OnNonDuplicateAck() + void OnSendBytes(CCTimeType curTime, uint32_t numBytes); + + /// Call this when you get a packet pair + void OnGotPacketPair(DatagramSequenceNumberType datagramSequenceNumber, uint32_t sizeInBytes, CCTimeType curTime); + + /// Call this when you get a packet (including packet pairs) + /// If the DatagramSequenceNumberType is out of order, skippedMessageCount will be non-zero + /// In that case, send a NAK for every sequence number up to that count + bool OnGotPacket(DatagramSequenceNumberType datagramSequenceNumber, bool isContinuousSend, CCTimeType curTime, uint32_t sizeInBytes, uint32_t *skippedMessageCount); + + /// Call when you get a NAK, with the sequence number of the lost message + /// Affects the congestion control + void OnResend(CCTimeType curTime); + void OnNAK(CCTimeType curTime, DatagramSequenceNumberType nakSequenceNumber); + + /// Call this when an ACK arrives. + /// hasBAndAS are possibly written with the ack, see OnSendAck() + /// B and AS are used in the calculations in UpdateWindowSizeAndAckOnAckPerSyn + /// B and AS are updated at most once per SYN + void OnAck(CCTimeType curTime, CCTimeType rtt, bool hasBAndAS, BytesPerMicrosecond _B, BytesPerMicrosecond _AS, double totalUserDataBytesAcked, bool isContinuousSend, DatagramSequenceNumberType sequenceNumber ); + void OnDuplicateAck( CCTimeType curTime, DatagramSequenceNumberType sequenceNumber ) {} + + /// Call when you send an ack, to see if the ack should have the B and AS parameters transmitted + /// Call before calling OnSendAck() + void OnSendAckGetBAndAS(CCTimeType curTime, bool *hasBAndAS, BytesPerMicrosecond *_B, BytesPerMicrosecond *_AS); + + /// Call when we send an ack, to write B and AS if needed + /// B and AS are only written once per SYN, to prevent slow calculations + /// Also updates SND, the period between sends, since data is written out + /// Be sure to call OnSendAckGetBAndAS() before calling OnSendAck(), since whether you write it or not affects \a numBytes + void OnSendAck(CCTimeType curTime, uint32_t numBytes); + + /// Call when we send a NACK + /// Also updates SND, the period between sends, since data is written out + void OnSendNACK(CCTimeType curTime, uint32_t numBytes); + + /// Retransmission time out for the sender + /// If the time difference between when a message was last transmitted, and the current time is greater than RTO then packet is eligible for retransmission, pending congestion control + /// RTO = (RTT + 4 * RTTVar) + SYN + /// If we have been continuously sending for the last RTO, and no ACK or NAK at all, SND*=2; + /// This is per message, which is different from UDT, but RakNet supports packetloss with continuing data where UDT is only RELIABLE_ORDERED + /// Minimum value is 100 milliseconds + CCTimeType GetRTOForRetransmission(void) const; + + /// Set the maximum amount of data that can be sent in one datagram + /// Default to MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE + void SetMTU(uint32_t bytes); + + /// Return what was set by SetMTU() + uint32_t GetMTU(void) const; + + /// Query for statistics + BytesPerMicrosecond GetLocalSendRate(void) const {return 1.0 / SND;} + BytesPerMicrosecond GetLocalReceiveRate(CCTimeType currentTime) const; + BytesPerMicrosecond GetRemoveReceiveRate(void) const {return AS;} + //BytesPerMicrosecond GetEstimatedBandwidth(void) const {return B;} + BytesPerMicrosecond GetEstimatedBandwidth(void) const {return GetLinkCapacityBytesPerSecond()*1000000.0;} + double GetLinkCapacityBytesPerSecond(void) const {return estimatedLinkCapacityBytesPerSecond;}; + + /// Query for statistics + double GetRTT(void) const; + + bool GetIsInSlowStart(void) const {return isInSlowStart;} + uint32_t GetCWNDLimit(void) const {return (uint32_t) (CWND*MAXIMUM_MTU_INCLUDING_UDP_HEADER);} + + + /// Is a > b, accounting for variable overflow? + static bool GreaterThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); + /// Is a < b, accounting for variable overflow? + static bool LessThan(DatagramSequenceNumberType a, DatagramSequenceNumberType b); +// void SetTimeBetweenSendsLimit(unsigned int bitsPerSecond); + uint64_t GetBytesPerSecondLimitByCongestionControl(void) const; + + protected: + // --------------------------- PROTECTED VARIABLES --------------------------- + /// time interval between bytes, in microseconds. + /// Only used when slowStart==false + /// Increased over time as we continually get messages + /// Decreased on NAK and timeout + /// Starts at 0 (invalid) + MicrosecondsPerByte SND; + + /// Supportive window mechanism, controlling the maximum number of in-flight packets + /// Used both during and after slow-start, but primarily during slow-start + /// Starts at 2, which is also the low threshhold + /// Max is the socket receive buffer / MTU + /// CWND = AS * (RTT + SYN) + 16 + double CWND; + + /// When we do an update process on the SYN interval, nextSYNUpdate is set to the next time we should update + /// Normally this is nextSYNUpdate+=SYN, in order to update on a consistent schedule + /// However, if this would result in an immediate update yet again, it is set to SYN microseconds past the current time (in case the thread did not update for a long time) + CCTimeType nextSYNUpdate; + + + /// Index into packetPairRecieptHistory where we will next write + /// The history is always full (starting with default values) so no read index is needed + int packetPairRecieptHistoryWriteIndex; + + /// Sent to the sender by the receiver from packetPairRecieptHistory whenever a back to back packet arrives on the receiver + /// Updated by B = B * .875 + incomingB * .125 + //BytesPerMicrosecond B; + + /// Running round trip time (ping*2) + /// Only sender needs to know this + /// Initialized to UNSET + /// Set to rtt on first calculation + /// Updated gradually by RTT = RTT * 0.875 + rtt * 0.125 + double RTT; + + /// Round trip time variance + /// Only sender needs to know this + /// Initialized to UNSET + /// Set to rtt on first calculation + // double RTTVar; + /// Update: Use min/max, RTTVar follows current variance too closely resulting in packetloss + double minRTT, maxRTT; + + /// Used to calculate packet arrival rate (in UDT) but data arrival rate (in RakNet, where not all datagrams are the same size) + /// Filter is used to cull lowest half of values for bytesPerMicrosecond, to discount spikes and inactivity + /// Referred to in the documentation as AS, data arrival rate + /// AS is sent to the sender and calculated every 10th ack + /// Each node represents (curTime-lastPacketArrivalTime)/bytes + /// Used with ReceiverCalculateDataArrivalRate(); + BytesPerMicrosecond packetArrivalHistory[CC_RAKNET_UDT_PACKET_HISTORY_LENGTH]; + BytesPerMicrosecond packetArrivalHistoryContinuousGaps[CC_RAKNET_UDT_PACKET_HISTORY_LENGTH]; + unsigned char packetArrivalHistoryContinuousGapsIndex; + uint64_t continuousBytesReceived; + CCTimeType continuousBytesReceivedStartTime; + unsigned int packetArrivalHistoryWriteCount; + + /// Index into packetArrivalHistory where we will next write + /// The history is always full (starting with default values) so no read index is needed + int packetArrivalHistoryWriteIndex; + + /// Tracks the time the last packet that arrived, so BytesPerMicrosecond can be calculated for packetArrivalHistory when a new packet arrives + CCTimeType lastPacketArrivalTime; + + /// Data arrival rate from the sender to the receiver, as told to us by the receiver + /// Used to calculate initial sending rate when slow start stops + BytesPerMicrosecond AS; + + /// When the receiver last calculated and send B and AS, from packetArrivalHistory and packetPairRecieptHistory + /// Used to prevent it from being calculated and send too frequently, as they are slow operations + CCTimeType lastTransmitOfBAndAS; + + /// New connections start in slow start + /// During slow start, SND is not used, only CWND + /// Slow start ends when we get a NAK, or the maximum size of CWND is reached + /// SND is initialized to the inverse of the receiver's packet arrival rate when slow start ends + bool isInSlowStart; + + /// How many NAKs arrived this congestion period + /// Initialized to 1 when the congestion period starts + uint32_t NAKCount; + + /// How many NAKs do you get on average during a congestion period? + /// Starts at 1 + /// Used to generate a random number, DecRandom, between 1 and AvgNAKNum + uint32_t AvgNAKNum; + + /// How many times we have decremented SND this congestion period. Used to limit the number of decrements to 5 + uint32_t DecCount; + + /// Every DecInterval NAKs per congestion period, we decrease the send rate + uint32_t DecInterval; + + /// Every outgoing datagram is assigned a sequence number, which increments by 1 every assignment + DatagramSequenceNumberType nextDatagramSequenceNumber; + + /// If a packet is marked as a packet pair, lastPacketPairPacketArrivalTime is set to the time it arrives + /// This is used so when the 2nd packet of the pair arrives, we can calculate the time interval between the two + CCTimeType lastPacketPairPacketArrivalTime; + + /// If a packet is marked as a packet pair, lastPacketPairSequenceNumber is checked to see if the last packet we got + /// was the packet immediately before the one that arrived + /// If so, we can use lastPacketPairPacketArrivalTime to get the time between the two packets, and thus estimate the link capacity + /// Initialized to -1, so the first packet of a packet pair won't be treated as the second + DatagramSequenceNumberType lastPacketPairSequenceNumber; + + /// Used to cap UpdateWindowSizeAndAckOnAckPerSyn() to once speed increase per SYN + /// This is to prevent speeding up faster than congestion control can compensate for + CCTimeType lastUpdateWindowSizeAndAck; + + /// Every time SND is halved due to timeout, the RTO is increased + /// This is to prevent massive retransmissions to an unresponsive system + /// Reset on any data arriving + double ExpCount; + + /// Total number of user data bytes sent + /// Used to adjust the window size, on ACK, during slow start + uint64_t totalUserDataBytesSent; + + /// When we get an ack, if oldestUnsentAck==0, set it to the current time + /// When we send out acks, set oldestUnsentAck to 0 + CCTimeType oldestUnsentAck; + + // Maximum amount of bytes that the user can send, e.g. the size of one full datagram + uint32_t MAXIMUM_MTU_INCLUDING_UDP_HEADER; + + // Max window size + double CWND_MAX_THRESHOLD; + + /// Track which datagram sequence numbers have arrived. + /// If a sequence number is skipped, send a NAK for all skipped messages + DatagramSequenceNumberType expectedNextSequenceNumber; + + // How many times have we sent B and AS? Used to force it to send at least CC_RAKNET_UDT_PACKET_HISTORY_LENGTH times + // Otherwise, the default values in the array generate inaccuracy + uint32_t sendBAndASCount; + + /// Most recent values read into the corresponding lists + /// Used during the beginning of a connection, when the median filter is still inaccurate + BytesPerMicrosecond mostRecentPacketArrivalHistory; + + bool hasWrittenToPacketPairReceiptHistory; + +// uint32_t rttHistory[RTT_HISTORY_LENGTH]; +// uint32_t rttHistoryIndex; +// uint32_t rttHistoryWriteCount; +// uint32_t rttSum, rttLow; +// CCTimeType lastSndUpdateTime; + double estimatedLinkCapacityBytesPerSecond; + + // --------------------------- PROTECTED METHODS --------------------------- + /// Update nextSYNUpdate by SYN, or the same amount past the current time if no updates have occurred for a long time + void SetNextSYNUpdate(CCTimeType currentTime); + + /// Returns the rate of data arrival, based on packets arriving on the sender. + BytesPerMicrosecond ReceiverCalculateDataArrivalRate(CCTimeType curTime) const; + /// Returns the median of the data arrival rate + BytesPerMicrosecond ReceiverCalculateDataArrivalRateMedian(void) const; + + /// Calculates the median an array of BytesPerMicrosecond + static BytesPerMicrosecond CalculateListMedianRecursive(const BytesPerMicrosecond inputList[CC_RAKNET_UDT_PACKET_HISTORY_LENGTH], int inputListLength, int lessThanSum, int greaterThanSum); +// static uint32_t CalculateListMedianRecursive(const uint32_t inputList[RTT_HISTORY_LENGTH], int inputListLength, int lessThanSum, int greaterThanSum); + + /// Same as GetRTOForRetransmission, but does not factor in ExpCount + /// This is because the receiver does not know ExpCount for the sender, and even if it did, acks shouldn't be delayed for this reason + CCTimeType GetSenderRTOForACK(void) const; + + /// Stop slow start, and enter normal transfer rate + void EndSlowStart(void); + + /// Does the named conversion + inline double BytesPerMicrosecondToPacketsPerMillisecond(BytesPerMicrosecond in); + + /// Update the round trip time, from ACK or ACK2 + //void UpdateRTT(CCTimeType rtt); + + /// Update the corresponding variables pre-slow start + void UpdateWindowSizeAndAckOnAckPreSlowStart(double totalUserDataBytesAcked); + + /// Update the corresponding variables post-slow start + void UpdateWindowSizeAndAckOnAckPerSyn(CCTimeType curTime, CCTimeType rtt, bool isContinuousSend, DatagramSequenceNumberType sequenceNumber); + + + /// Sets halveSNDOnNoDataTime to the future, and also resets ExpCount, which is used to multiple the RTO on no data arriving at all + void ResetOnDataArrivalHalveSNDOnNoDataTime(CCTimeType curTime); + + // Init array + void InitPacketArrivalHistory(void); + + // Printf + void PrintLowBandwidthWarning(void); + + // Bug: SND can sometimes get super high - have seen 11693 + void CapMinSnd(const char *file, int line); + + void DecreaseTimeBetweenSends(void); + void IncreaseTimeBetweenSends(void); + + int bytesCanSendThisTick; + + CCTimeType lastRttOnIncreaseSendRate; + CCTimeType lastRtt; + + DatagramSequenceNumberType nextCongestionControlBlock; + bool hadPacketlossThisBlock; + DataStructures::Queue pingsLastInterval; +}; + +} + +#endif + +#endif diff --git a/src/raknet/CMakeLists.txt b/src/raknet/CMakeLists.txt new file mode 100755 index 0000000..65660a1 --- /dev/null +++ b/src/raknet/CMakeLists.txt @@ -0,0 +1 @@ +cmake_minimum_required(VERSION 2.6) diff --git a/src/raknet/CheckSum.cpp b/src/raknet/CheckSum.cpp new file mode 100755 index 0000000..4ba7fcd --- /dev/null +++ b/src/raknet/CheckSum.cpp @@ -0,0 +1,97 @@ +/** +* @file +* @brief CheckSum implementation from http://www.flounder.com/checksum.htm +* +*/ +#include "CheckSum.h" + +/**************************************************************************** +* CheckSum::add +* Inputs: +* unsigned int d: word to add +* Result: void +* +* Effect: +* Adds the bytes of the unsigned int to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned int value ) +{ + union + { + unsigned int value; + unsigned char bytes[ 4 ]; + } + + data; + data.value = value; + + for ( unsigned int i = 0; i < sizeof( data.bytes ); i++ ) + Add ( data.bytes[ i ] ) + + ; +} // CheckSum::add(unsigned int) + +/**************************************************************************** +* CheckSum::add +* Inputs: +* unsigned short value: +* Result: void +* +* Effect: +* Adds the bytes of the unsigned short value to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned short value ) +{ + union + { + unsigned short value; + unsigned char bytes[ 2 ]; + } + + data; + data.value = value; + + for ( unsigned int i = 0; i < sizeof( data.bytes ); i++ ) + Add ( data.bytes[ i ] ) + + ; +} // CheckSum::add(unsigned short) + +/**************************************************************************** +* CheckSum::add +* Inputs: +* unsigned char value: +* Result: void +* +* Effect: +* Adds the byte to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned char value ) +{ + unsigned char cipher = (unsigned char)( value ^ ( r >> 8 ) ); + r = ( cipher + r ) * c1 + c2; + sum += cipher; +} // CheckSum::add(unsigned char) + + +/**************************************************************************** +* CheckSum::add +* Inputs: +* LPunsigned char b: pointer to byte array +* unsigned int length: count +* Result: void +* +* Effect: +* Adds the bytes to the CheckSum +****************************************************************************/ + +void CheckSum::Add ( unsigned char *b, unsigned int length ) +{ + for ( unsigned int i = 0; i < length; i++ ) + Add ( b[ i ] ) + + ; +} // CheckSum::add(LPunsigned char, unsigned int) diff --git a/src/raknet/CheckSum.h b/src/raknet/CheckSum.h new file mode 100755 index 0000000..09e57f7 --- /dev/null +++ b/src/raknet/CheckSum.h @@ -0,0 +1,53 @@ +/// +/// \file CheckSum.cpp +/// \brief [Internal] CheckSum implementation from http://www.flounder.com/checksum.htm +/// + +#ifndef __CHECKSUM_H +#define __CHECKSUM_H + +#include "RakMemoryOverride.h" + +/// Generates and validates checksums +class CheckSum +{ + +public: + + /// Default constructor + + CheckSum() + { + Clear(); + } + + void Clear() + { + sum = 0; + r = 55665; + c1 = 52845; + c2 = 22719; + } + + void Add ( unsigned int w ); + + + void Add ( unsigned short w ); + + void Add ( unsigned char* b, unsigned int length ); + + void Add ( unsigned char b ); + + unsigned int Get () + { + return sum; + } + +protected: + unsigned short r; + unsigned short c1; + unsigned short c2; + unsigned int sum; +}; + +#endif diff --git a/src/raknet/CloudClient.cpp b/src/raknet/CloudClient.cpp new file mode 100755 index 0000000..cdfd2c6 --- /dev/null +++ b/src/raknet/CloudClient.cpp @@ -0,0 +1,242 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 + +#include "CloudClient.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakPeerInterface.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(CloudClient,CloudClient); + +CloudClient::CloudClient() +{ + callback=0; + allocator=&unsetDefaultAllocator; +} +CloudClient::~CloudClient() +{ +} +void CloudClient::SetDefaultCallbacks(CloudAllocator *_allocator, CloudClientCallback *_callback) +{ + callback=_callback; + allocator=_allocator; +} +void CloudClient::Post(CloudKey *cloudKey, const unsigned char *data, uint32_t dataLengthBytes, RakNetGUID systemIdentifier) +{ + RakAssert(cloudKey); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_POST_REQUEST); + cloudKey->Serialize(true,&bsOut); + if (data==0) + dataLengthBytes=0; + bsOut.Write(dataLengthBytes); + if (dataLengthBytes>0) + bsOut.WriteAlignedBytes((const unsigned char*) data, dataLengthBytes); + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +void CloudClient::Release(DataStructures::List &keys, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_RELEASE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +bool CloudClient::Get(CloudQuery *keyQuery, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_GET_REQUEST); + keyQuery->Serialize(true, &bsOut); + bsOut.WriteCasted(0); // Specific systems + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); + return true; +} +bool CloudClient::Get(CloudQuery *keyQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_GET_REQUEST); + keyQuery->Serialize(true, &bsOut); + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + bsOut.Write(specificSystems[i]); + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); + return true; +} +bool CloudClient::Get(CloudQuery *keyQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_GET_REQUEST); + keyQuery->Serialize(true, &bsOut); + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + if (specificSystems[i]->clientGUID!=UNASSIGNED_RAKNET_GUID) + { + bsOut.Write(true); + bsOut.Write(specificSystems[i]->clientGUID); + } + else + { + bsOut.Write(false); + bsOut.Write(specificSystems[i]->clientSystemAddress); + } + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); + return true; +} +void CloudClient::Unsubscribe(DataStructures::List &keys, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_UNSUBSCRIBE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + bsOut.WriteCasted(0); + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +void CloudClient::Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_UNSUBSCRIBE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + bsOut.Write(specificSystems[i]); + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +void CloudClient::Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_UNSUBSCRIBE_REQUEST); + RakAssert(keys.Size() < (uint16_t)-1 ); + bsOut.WriteCasted(keys.Size()); + for (uint16_t i=0; i < keys.Size(); i++) + { + keys[i].Serialize(true,&bsOut); + } + bsOut.WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + if (specificSystems[i]->clientGUID!=UNASSIGNED_RAKNET_GUID) + { + bsOut.Write(true); + bsOut.Write(specificSystems[i]->clientGUID); + } + else + { + bsOut.Write(false); + bsOut.Write(specificSystems[i]->clientSystemAddress); + } + } + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemIdentifier, false); +} +PluginReceiveResult CloudClient::OnReceive(Packet *packet) +{ + (void) packet; + + return RR_CONTINUE_PROCESSING; +} +void CloudClient::OnGetReponse(Packet *packet, CloudClientCallback *_callback, CloudAllocator *_allocator) +{ + if (_callback==0) + _callback=callback; + if (_allocator==0) + _allocator=allocator; + + CloudQueryResult cloudQueryResult; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + cloudQueryResult.Serialize(false,&bsIn,_allocator); + bool deallocateRowsAfterReturn=true; + _callback->OnGet(&cloudQueryResult, &deallocateRowsAfterReturn); + if (deallocateRowsAfterReturn) + { + unsigned int i; + for (i=0; i < cloudQueryResult.rowsReturned.Size(); i++) + { + _allocator->DeallocateRowData(cloudQueryResult.rowsReturned[i]->data); + _allocator->DeallocateCloudQueryRow(cloudQueryResult.rowsReturned[i]); + } + } +} +void CloudClient::OnGetReponse(CloudQueryResult *cloudQueryResult, Packet *packet, CloudAllocator *_allocator) +{ + if (_allocator==0) + _allocator=allocator; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + cloudQueryResult->Serialize(false,&bsIn,_allocator); +} +void CloudClient::OnSubscriptionNotification(Packet *packet, CloudClientCallback *_callback, CloudAllocator *_allocator) +{ + if (_callback==0) + _callback=callback; + if (_allocator==0) + _allocator=allocator; + + bool wasUpdated=false; + CloudQueryRow row; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bsIn.Read(wasUpdated); + row.Serialize(false,&bsIn,_allocator); + bool deallocateRowAfterReturn=true; + _callback->OnSubscriptionNotification(&row, wasUpdated, &deallocateRowAfterReturn); + if (deallocateRowAfterReturn) + { + _allocator->DeallocateRowData(row.data); + } +} +void CloudClient::OnSubscriptionNotification(bool *wasUpdated, CloudQueryRow *row, Packet *packet, CloudAllocator *_allocator) +{ + if (_allocator==0) + _allocator=allocator; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bool b=false; + bsIn.Read(b); + *wasUpdated=b; + row->Serialize(false,&bsIn,_allocator); +} +void CloudClient::DeallocateWithDefaultAllocator(CloudQueryResult *cloudQueryResult) +{ + unsigned int i; + for (i=0; i < cloudQueryResult->rowsReturned.Size(); i++) + { + allocator->DeallocateRowData(cloudQueryResult->rowsReturned[i]->data); + allocator->DeallocateCloudQueryRow(cloudQueryResult->rowsReturned[i]); + } +} +void CloudClient::DeallocateWithDefaultAllocator(CloudQueryRow *row) +{ + allocator->DeallocateRowData(row->data); +} +#endif diff --git a/src/raknet/CloudClient.h b/src/raknet/CloudClient.h new file mode 100755 index 0000000..293740d --- /dev/null +++ b/src/raknet/CloudClient.h @@ -0,0 +1,163 @@ +/// \file CloudClient.h +/// \brief Queries CloudMemoryServer to download data that other clients have uploaded +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 + +#ifndef __CLOUD_CLIENT_H +#define __CLOUD_CLIENT_H + +#include "PluginInterface2.h" +#include "CloudCommon.h" +#include "RakMemoryOverride.h" +#include "DS_Hash.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class CloudClientCallback; + +/// \defgroup CLOUD_GROUP CloudComputing +/// \brief Contains the CloudClient and CloudServer plugins +/// \details The CloudServer plugins operates on requests from the CloudClient plugin. The servers are in a fully connected mesh topology, which the clients are connected to any server. Clients can interact with each other by posting and subscribing to memory updates, without being directly connected or even knowing about each other. +/// \ingroup PLUGINS_GROUP + +/// \brief Performs Post() and Get() operations on CloudMemoryServer +/// \details A CloudClient is a computer connected to one or more servers in a cloud configuration. Operations by one CloudClient can be received and subscribed to by other instances of CloudClient, without those clients being connected, even on different servers. +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudClient : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(CloudClient) + + CloudClient(); + virtual ~CloudClient(); + + /// \brief Set the default callbacks for OnGetReponse(), OnSubscriptionNotification(), and OnSubscriptionDataDeleted() + /// \details Pointers to CloudAllocator and CloudClientCallback can be stored by the system if desired. If a callback is not provided to OnGetReponse(), OnSubscriptionNotification(), OnSubscriptionDataDeleted(), the callback passed here will be used instead. + /// \param[in] _allocator An instance of CloudAllocator + /// \param[in] _callback An instance of CloudClientCallback + virtual void SetDefaultCallbacks(CloudAllocator *_allocator, CloudClientCallback *_callback); + + /// \brief Uploads data to the cloud + /// \details Data uploaded to the cloud will be stored by the server sent to, identified by \a systemIdentifier. + /// As long as you are connected to this server, the data will persist. Queries for that data by the Get() operation will + /// return the RakNetGUID and SystemAddress of the uploader, as well as the data itself. + /// Furthermore, if any clients are subscribed to the particular CloudKey passed, those clients will get update notices that the data has changed + /// Passing data with the same \a cloudKey more than once will overwrite the prior value. + /// This call will silently fail if CloudServer::SetMaxUploadBytesPerClient() is exceeded + /// \param[in] cloudKey Identifies the data being uploaded + /// \param[in] data A pointer to data to upload. This pointer does not need to persist past the call + /// \param[in] dataLengthBytes The length in bytes of \a data + /// \param[in] systemIdentifier A remote system running CloudServer that we are already connected to. + virtual void Post(CloudKey *cloudKey, const unsigned char *data, uint32_t dataLengthBytes, RakNetGUID systemIdentifier); + + /// \brief Releases one or more data previously uploaded with Post() + /// \details If a remote system has subscribed to one or more of the \a keys uploaded, they will get ID_CLOUD_SUBSCRIPTION_NOTIFICATION notifications containing the last value uploaded before deletions + /// \param[in] cloudKey Identifies the data to release. It is possible to remove uploads from multiple Post() calls at once. + /// \param[in] systemIdentifier A remote system running CloudServer that we are already connected to. + virtual void Release(DataStructures::List &keys, RakNetGUID systemIdentifier); + + /// \brief Gets data from the cloud + /// \details For a given query containing one or more keys, return data that matches those keys. + /// The values will be returned in the ID_CLOUD_GET_RESPONSE packet, which should be passed to OnGetReponse() and will invoke CloudClientCallback::OnGet() + /// CloudQuery::startingRowIndex is used to skip the first n values that would normally be returned.. + /// CloudQuery::maxRowsToReturn is used to limit the number of rows returned. The number of rows returned may also be limited by CloudServer::SetMaxBytesPerDownload(); + /// CloudQuery::subscribeToResults if set to true, will cause ID_CLOUD_SUBSCRIPTION_NOTIFICATION to be returned to us when any of the keys in the query are updated or are deleted. + /// ID_CLOUD_GET_RESPONSE will be returned even if subscribing to the result list. Only later updates will return ID_CLOUD_SUBSCRIPTION_NOTIFICATION. + /// Calling Get() with CloudQuery::subscribeToResults false, when you are already subscribed, does not remove the subscription. Use Unsubscribe() for this. + /// Resubscribing using the same CloudKey but a different or no \a specificSystems overwrites the subscribed systems for those keys. + /// \param[in] cloudQuery One or more keys, and optional parameters to perform with the Get + /// \param[in] systemIdentifier A remote system running CloudServer that we are already connected to. + /// \param[in] specificSystems It is possible to get or subscribe to updates only for specific uploading CloudClient instances. Pass the desired instances here. The overload that does not have the specificSystems parameter is treated as subscribing to all updates from all clients. + virtual bool Get(CloudQuery *cloudQuery, RakNetGUID systemIdentifier); + virtual bool Get(CloudQuery *cloudQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + virtual bool Get(CloudQuery *cloudQuery, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + + /// \brief Unsubscribe from updates previously subscribed to using Get() with the CloudQuery::subscribeToResults set to true + /// The \a keys and \a specificSystems parameters are logically treated as AND when checking subscriptions on the server + /// The overload that does not take specificSystems unsubscribes to all passed keys, regardless of system + /// You cannot unsubscribe specific systems when previously subscribed to updates from any system. To do this, first Unsubscribe() from all systems, and call Get() with the \a specificSystems parameter explicilty listing the systems you want to subscribe to. + virtual void Unsubscribe(DataStructures::List &keys, RakNetGUID systemIdentifier); + virtual void Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + virtual void Unsubscribe(DataStructures::List &keys, DataStructures::List &specificSystems, RakNetGUID systemIdentifier); + + /// \brief Call this when you get ID_CLOUD_GET_RESPONSE + /// If \a callback or \a allocator are 0, the default callbacks passed to SetDefaultCallbacks() are used + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _callback Callback to be called from the function containing output parameters. If 0, default is used. + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnGetReponse(Packet *packet, CloudClientCallback *_callback=0, CloudAllocator *_allocator=0); + + /// \brief Call this when you get ID_CLOUD_GET_RESPONSE + /// Different form of OnGetReponse that returns to a structure that you pass, instead of using a callback + /// You are responsible for deallocation with this form + /// If \a allocator is 0, the default callback passed to SetDefaultCallbacks() are used + /// \param[out] cloudQueryResult A pointer to a structure that will be filled out with data + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnGetReponse(CloudQueryResult *cloudQueryResult, Packet *packet, CloudAllocator *_allocator=0); + + /// \brief Call this when you get ID_CLOUD_SUBSCRIPTION_NOTIFICATION + /// If \a callback or \a allocator are 0, the default callbacks passed to SetDefaultCallbacks() are used + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _callback Callback to be called from the function containing output parameters. If 0, default is used. + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnSubscriptionNotification(Packet *packet, CloudClientCallback *_callback=0, CloudAllocator *_allocator=0); + + /// \brief Call this when you get ID_CLOUD_SUBSCRIPTION_NOTIFICATION + /// Different form of OnSubscriptionNotification that returns to a structure that you pass, instead of using a callback + /// You are responsible for deallocation with this form + /// If \a allocator is 0, the default callback passed to SetDefaultCallbacks() are used + /// \param[out] wasUpdated If true, the row was updated. If false, it was deleted. \a result will contain the last value just before deletion + /// \param[out] row A pointer to a structure that will be filled out with data + /// \param[in] packet Packet structure returned from RakPeerInterface + /// \param[in] _allocator Allocator to be used to allocate data. If 0, default is used. + virtual void OnSubscriptionNotification(bool *wasUpdated, CloudQueryRow *row, Packet *packet, CloudAllocator *_allocator=0); + + /// If you never specified an allocator, and used the non-callback form of OnGetReponse(), deallocate cloudQueryResult with this function + virtual void DeallocateWithDefaultAllocator(CloudQueryResult *cloudQueryResult); + + /// If you never specified an allocator, and used the non-callback form of OnSubscriptionNotification(), deallocate row with this function + virtual void DeallocateWithDefaultAllocator(CloudQueryRow *row); + +protected: + PluginReceiveResult OnReceive(Packet *packet); + + CloudClientCallback *callback; + CloudAllocator *allocator; + + CloudAllocator unsetDefaultAllocator; +}; + +/// \ingroup CLOUD_GROUP +/// Parses ID_CLOUD_GET_RESPONSE and ID_CLOUD_SUBSCRIPTION_NOTIFICATION in a convenient callback form +class RAK_DLL_EXPORT CloudClientCallback +{ +public: + CloudClientCallback() {} + virtual ~CloudClientCallback() {} + + /// \brief Called in response to ID_CLOUD_GET_RESPONSE + /// \param[out] result Contains the original query passed to Get(), and a list of rows returned. + /// \param[out] deallocateRowsAfterReturn CloudQueryResult::rowsReturned will be deallocated after the function returns by default. Set to false to not deallocate these pointers. The pointers are allocated through CloudAllocator. + virtual void OnGet(RakNet::CloudQueryResult *result, bool *deallocateRowsAfterReturn) {(void) result; (void) deallocateRowsAfterReturn;} + + /// \brief Called in response to ID_CLOUD_SUBSCRIPTION_NOTIFICATION + /// \param[out] result Contains the row updated + /// \param[out] wasUpdated If true, the row was updated. If false, it was deleted. \a result will contain the last value just before deletion + /// \param[out] deallocateRowAfterReturn \a result will be deallocated after the function returns by default. Set to false to not deallocate these pointers. The pointers are allocated through CloudAllocator. + virtual void OnSubscriptionNotification(RakNet::CloudQueryRow *result, bool wasUpdated, bool *deallocateRowAfterReturn) {(void) result; (void) wasUpdated; (void) deallocateRowAfterReturn;} +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/CloudCommon.cpp b/src/raknet/CloudCommon.cpp new file mode 100755 index 0000000..7d07410 --- /dev/null +++ b/src/raknet/CloudCommon.cpp @@ -0,0 +1,159 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 || _RAKNET_SUPPORT_CloudServer==1 + +#include "CloudCommon.h" +#include "BitStream.h" + +using namespace RakNet; + +int RakNet::CloudKeyComp(const CloudKey &key, const CloudKey &data) +{ + if (key.primaryKey < data.primaryKey) + return -1; + if (key.primaryKey > data.primaryKey) + return 1; + if (key.secondaryKey < data.secondaryKey) + return -1; + if (key.secondaryKey > data.secondaryKey) + return 1; + return 0; +} + +CloudQueryRow* CloudAllocator::AllocateCloudQueryRow(void) +{ + return RakNet::OP_NEW(_FILE_AND_LINE_); +} +void CloudAllocator::DeallocateCloudQueryRow(CloudQueryRow *row) +{ + RakNet::OP_DELETE(row,_FILE_AND_LINE_); +} +unsigned char *CloudAllocator::AllocateRowData(uint32_t bytesNeededForData) +{ + return (unsigned char*) rakMalloc_Ex(bytesNeededForData,_FILE_AND_LINE_); +} +void CloudAllocator::DeallocateRowData(void *data) +{ + rakFree_Ex(data, _FILE_AND_LINE_); +} +void CloudKey::Serialize(bool writeToBitstream, BitStream *bitStream) +{ + bitStream->Serialize(writeToBitstream, primaryKey); + bitStream->Serialize(writeToBitstream, secondaryKey); +} +void CloudQuery::Serialize(bool writeToBitstream, BitStream *bitStream) +{ + bool startingRowIndexIsZero=0; + bool maxRowsToReturnIsZero=0; + startingRowIndexIsZero=startingRowIndex==0; + maxRowsToReturnIsZero=maxRowsToReturn==0; + bitStream->Serialize(writeToBitstream,startingRowIndexIsZero); + bitStream->Serialize(writeToBitstream,maxRowsToReturnIsZero); + bitStream->Serialize(writeToBitstream,subscribeToResults); + if (startingRowIndexIsZero==false) + bitStream->Serialize(writeToBitstream,startingRowIndex); + if (maxRowsToReturnIsZero==false) + bitStream->Serialize(writeToBitstream,maxRowsToReturn); + RakAssert(keys.Size()<(uint16_t)-1); + uint16_t numKeys = (uint16_t) keys.Size(); + bitStream->Serialize(writeToBitstream,numKeys); + if (writeToBitstream) + { + for (uint16_t i=0; i < numKeys; i++) + { + keys[i].Serialize(true,bitStream); + } + } + else + { + CloudKey cmdk; + for (uint16_t i=0; i < numKeys; i++) + { + cmdk.Serialize(false,bitStream); + keys.Push(cmdk, _FILE_AND_LINE_); + } + } +} +void CloudQueryRow::Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator) +{ + key.Serialize(writeToBitstream,bitStream); + bitStream->Serialize(writeToBitstream,serverSystemAddress); + bitStream->Serialize(writeToBitstream,clientSystemAddress); + bitStream->Serialize(writeToBitstream,serverGUID); + bitStream->Serialize(writeToBitstream,clientGUID); + bitStream->Serialize(writeToBitstream,length); + if (writeToBitstream) + { + bitStream->WriteAlignedBytes((const unsigned char*) data,length); + } + else + { + if (length>0) + { + data = allocator->AllocateRowData(length); + if (data) + { + bitStream->ReadAlignedBytes((unsigned char *) data,length); + } + else + { + notifyOutOfMemory(_FILE_AND_LINE_); + } + } + else + data=0; + } +} +void CloudQueryResult::SerializeHeader(bool writeToBitstream, BitStream *bitStream) +{ + cloudQuery.Serialize(writeToBitstream,bitStream); + bitStream->Serialize(writeToBitstream,subscribeToResults); +} +void CloudQueryResult::SerializeNumRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream) +{ + bitStream->Serialize(writeToBitstream,numRows); +} +void CloudQueryResult::SerializeCloudQueryRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream, CloudAllocator *allocator) +{ + if (writeToBitstream) + { + for (uint16_t i=0; i < numRows; i++) + { + rowsReturned[i]->Serialize(true,bitStream, allocator); + } + } + else + { + CloudQueryRow* cmdr; + for (uint16_t i=0; i < numRows; i++) + { + cmdr = allocator->AllocateCloudQueryRow(); + if (cmdr) + { + cmdr->Serialize(false,bitStream,allocator); + if (cmdr->data==0 && cmdr->length>0) + { + allocator->DeallocateCloudQueryRow(cmdr); + notifyOutOfMemory(_FILE_AND_LINE_); + numRows=i; + return; + } + rowsReturned.Push(cmdr, _FILE_AND_LINE_); + } + else + { + notifyOutOfMemory(_FILE_AND_LINE_); + numRows=i; + return; + } + } + } +} +void CloudQueryResult::Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator) +{ + SerializeHeader(writeToBitstream, bitStream); + uint32_t numRows = (uint32_t) rowsReturned.Size(); + SerializeNumRows(writeToBitstream, numRows, bitStream); + SerializeCloudQueryRows(writeToBitstream, numRows, bitStream, allocator); +} + +#endif // #if _RAKNET_SUPPORT_CloudMemoryClient==1 || _RAKNET_SUPPORT_CloudMemoryServer==1 diff --git a/src/raknet/CloudCommon.h b/src/raknet/CloudCommon.h new file mode 100755 index 0000000..dddb2cc --- /dev/null +++ b/src/raknet/CloudCommon.h @@ -0,0 +1,141 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudClient==1 || _RAKNET_SUPPORT_CloudServer==1 + +#ifndef __CLOUD_COMMON_H +#define __CLOUD_COMMON_H + +#include "RakNetTypes.h" +#include "RakString.h" + +namespace RakNet +{ + +class BitStream; +struct CloudQueryRow; + +/// Allocates CloudQueryRow and the row data. Override to use derived classes or different allocators +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudAllocator +{ +public: + CloudAllocator() {} + virtual ~CloudAllocator() {} + + /// \brief Allocate a row + virtual CloudQueryRow* AllocateCloudQueryRow(void); + /// \brief Free a row + virtual void DeallocateCloudQueryRow(CloudQueryRow *row); + /// \brief Allocate CloudQueryRow::data + virtual unsigned char *AllocateRowData(uint32_t bytesNeededForData); + /// \brief Free CloudQueryRow::data + virtual void DeallocateRowData(void *data); +}; + +/// Serves as a key to identify data uploaded to or queried from the server. +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudKey +{ + CloudKey() {} + CloudKey(RakNet::RakString _primaryKey, uint32_t _secondaryKey) : primaryKey(_primaryKey), secondaryKey(_secondaryKey) {} + ~CloudKey() {} + + /// Identifies the primary key. This is intended to be a major category, such as the name of the application + /// Must be non-empty + RakNet::RakString primaryKey; + + /// Identifies the secondary key. This is intended to be a subcategory enumeration, such as PLAYER_LIST or RUNNING_SCORES + uint32_t secondaryKey; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream); +}; + +/// \internal +int CloudKeyComp(const CloudKey &key, const CloudKey &data); + +/// Data members used to query the cloud +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudQuery +{ + CloudQuery() {startingRowIndex=0; maxRowsToReturn=0; subscribeToResults=false;} + + /// List of keys to query. Must be at least of length 1. + /// This query is run on uploads from all clients, and those that match the combination of primaryKey and secondaryKey are potentially returned + /// If you pass more than one key at a time, the results are concatenated so if you need to differentiate between queries then send two different queries + DataStructures::List keys; + + /// If limiting the number of rows to return, this is the starting offset into the list. Has no effect unless maxRowsToReturn is > 0 + uint32_t startingRowIndex; + + /// Maximum number of rows to return. Actual number may still be less than this. Pass 0 to mean no-limit. + uint32_t maxRowsToReturn; + + /// If true, automatically get updates as the results returned to you change. Unsubscribe with CloudMemoryClient::Unsubscribe() + bool subscribeToResults; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream); +}; + +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudQueryRow +{ + /// Key used to identify this data + CloudKey key; + + /// Data uploaded + unsigned char *data; + + /// Length of data uploaded + uint32_t length; + + /// System address of server that is holding this data, and the client is connected to + SystemAddress serverSystemAddress; + + /// System address of client that uploaded this data + SystemAddress clientSystemAddress; + + /// RakNetGUID of server that is holding this data, and the client is connected to + RakNetGUID serverGUID; + + /// RakNetGUID of client that uploaded this data + RakNetGUID clientGUID; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator); +}; + +/// \ingroup CLOUD_GROUP +struct RAK_DLL_EXPORT CloudQueryResult +{ + /// Query originally passed to Download() + CloudQuery cloudQuery; + + /// Results returned from query. If there were multiple keys in CloudQuery::keys then see resultKeyIndices + DataStructures::List rowsReturned; + + /// If there were multiple keys in CloudQuery::keys, then each key is processed in order and the result concatenated to rowsReturned + /// The starting index of each query is written to resultKeyIndices + /// For example, if CloudQuery::keys had 4 keys, returning 3 rows, 0, rows, 5 rows, and 12 rows then + /// resultKeyIndices would be 0, 3, 3, 8 + DataStructures::List resultKeyIndices; + + + /// Whatever was passed to CloudClient::Get() as CloudQuery::subscribeToResults + bool subscribeToResults; + + /// \internal + void Serialize(bool writeToBitstream, BitStream *bitStream, CloudAllocator *allocator); + /// \internal + void SerializeHeader(bool writeToBitstream, BitStream *bitStream); + /// \internal + void SerializeNumRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream); + /// \internal + void SerializeCloudQueryRows(bool writeToBitstream, uint32_t &numRows, BitStream *bitStream, CloudAllocator *allocator); +}; + +} // Namespace RakNet + +#endif // __CLOUD_COMMON_H + +#endif // #if _RAKNET_SUPPORT_CloudClient==1 || _RAKNET_SUPPORT_CloudServer==1 diff --git a/src/raknet/CloudServer.cpp b/src/raknet/CloudServer.cpp new file mode 100755 index 0000000..d5fc8c1 --- /dev/null +++ b/src/raknet/CloudServer.cpp @@ -0,0 +1,1673 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudServer==1 + +#include "CloudServer.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakPeerInterface.h" + +enum ServerToServerCommands +{ + STSC_PROCESS_GET_REQUEST, + STSC_PROCESS_GET_RESPONSE, + STSC_ADD_UPLOADED_AND_SUBSCRIBED_KEYS, + STSC_ADD_UPLOADED_KEY, + STSC_ADD_SUBSCRIBED_KEY, + STSC_REMOVE_UPLOADED_KEY, + STSC_REMOVE_SUBSCRIBED_KEY, + STSC_DATA_CHANGED, +}; + +using namespace RakNet; + +int CloudServer::RemoteServerComp(const RakNetGUID &key, RemoteServer* const &data ) +{ + if (key < data->serverAddress) + return -1; + if (key > data->serverAddress) + return 1; + return 0; +} +int CloudServer::KeySubscriberIDComp(const CloudKey &key, KeySubscriberID * const &data ) +{ + if (key.primaryKey < data->key.primaryKey) + return -1; + if (key.primaryKey > data->key.primaryKey) + return 1; + if (key.secondaryKey < data->key.secondaryKey) + return -1; + if (key.secondaryKey > data->key.secondaryKey) + return 1; + return 0; +} +int CloudServer::KeyDataPtrComp( const RakNetGUID &key, CloudData* const &data ) +{ + if (key < data->clientGUID) + return -1; + if (key > data->clientGUID) + return 1; + return 0; +} +int CloudServer::KeyDataListComp( const CloudKey &key, CloudDataList * const &data ) +{ + if (key.primaryKey < data->key.primaryKey) + return -1; + if (key.primaryKey > data->key.primaryKey) + return 1; + if (key.secondaryKey < data->key.secondaryKey) + return -1; + if (key.secondaryKey > data->key.secondaryKey) + return 1; + return 0; +} +int CloudServer::BufferedGetResponseFromServerComp(const RakNetGUID &key, CloudServer::BufferedGetResponseFromServer* const &data ) +{ + if (key < data->serverAddress) + return -1; + if (key > data->serverAddress) + return 1; + return 0; +} +int CloudServer::GetRequestComp(const uint32_t &key, CloudServer::GetRequest* const &data ) +{ + if (key < data->requestId) + return -1; + if (key > data->requestId) + return -1; + return 0; +} +void CloudServer::CloudQueryWithAddresses::Serialize(bool writeToBitstream, BitStream *bitStream) +{ + cloudQuery.Serialize(writeToBitstream, bitStream); + + if (writeToBitstream) + { + bitStream->WriteCasted(specificSystems.Size()); + RakAssert(specificSystems.Size() < (uint16_t)-1 ); + for (uint16_t i=0; i < specificSystems.Size(); i++) + { + bitStream->Write(specificSystems[i]); + } + } + else + { + uint16_t specificSystemsCount; + RakNetGUID addressOrGuid; + bitStream->Read(specificSystemsCount); + for (uint16_t i=0; i < specificSystemsCount; i++) + { + bitStream->Read(addressOrGuid); + specificSystems.Push(addressOrGuid, _FILE_AND_LINE_); + } + } +} +bool CloudServer::GetRequest::AllRemoteServersHaveResponded(void) const +{ + unsigned int i; + for (i=0; i < remoteServerResponses.Size(); i++) + if (remoteServerResponses[i]->gotResult==false) + return false; + return true; +} +void CloudServer::GetRequest::Clear(CloudAllocator *allocator) +{ + unsigned int i; + for (i=0; i < remoteServerResponses.Size(); i++) + { + remoteServerResponses[i]->Clear(allocator); + RakNet::OP_DELETE(remoteServerResponses[i], _FILE_AND_LINE_); + } + remoteServerResponses.Clear(false, _FILE_AND_LINE_); +} +void CloudServer::BufferedGetResponseFromServer::Clear(CloudAllocator *allocator) +{ + unsigned int i; + for (i=0; i < queryResult.rowsReturned.Size(); i++) + { + allocator->DeallocateRowData(queryResult.rowsReturned[i]->data); + allocator->DeallocateCloudQueryRow(queryResult.rowsReturned[i]); + } + queryResult.rowsReturned.Clear(false, _FILE_AND_LINE_); +} +CloudServer::CloudServer() +{ + maxUploadBytesPerClient=0; + maxBytesPerDowload=0; + nextGetRequestId=0; + nextGetRequestsCheck=0; +} +CloudServer::~CloudServer() +{ + Clear(); +} +void CloudServer::SetMaxUploadBytesPerClient(uint64_t bytes) +{ + maxUploadBytesPerClient=bytes; +} +void CloudServer::SetMaxBytesPerDownload(uint64_t bytes) +{ + maxBytesPerDowload=bytes; +} +void CloudServer::Update(void) +{ + // Timeout getRequests + RakNet::Time time = RakNet::Time(); + if (time > nextGetRequestsCheck) + { + nextGetRequestsCheck=time+1000; + + unsigned int i=0; + while (i < getRequests.Size()) + { + if (time - getRequests[i]->requestStartTime > 3000) + { + // Remote server is not responding, just send back data with whoever did respond + ProcessAndTransmitGetRequest(getRequests[i]); + getRequests[i]->Clear(this); + RakNet::OP_DELETE(getRequests[i],_FILE_AND_LINE_); + getRequests.RemoveAtIndex(i); + } + else + { + i++; + } + } + } +} +PluginReceiveResult CloudServer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_CLOUD_POST_REQUEST: + OnPostRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_RELEASE_REQUEST: + OnReleaseRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_GET_REQUEST: + OnGetRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_UNSUBSCRIBE_REQUEST: + OnUnsubscribeRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_CLOUD_SERVER_TO_SERVER_COMMAND: + if (packet->length>1) + { + switch (packet->data[1]) + { + case STSC_PROCESS_GET_REQUEST: + OnServerToServerGetRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_PROCESS_GET_RESPONSE: + OnServerToServerGetResponse(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_ADD_UPLOADED_AND_SUBSCRIBED_KEYS: + OnSendUploadedAndSubscribedKeysToServer(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_ADD_UPLOADED_KEY: + OnSendUploadedKeyToServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_ADD_SUBSCRIBED_KEY: + OnSendSubscribedKeyToServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_REMOVE_UPLOADED_KEY: + OnRemoveUploadedKeyFromServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_REMOVE_SUBSCRIBED_KEY: + OnRemoveSubscribedKeyFromServers(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case STSC_DATA_CHANGED: + OnServerDataChanged(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void CloudServer::OnPostRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + CloudKey key; + key.Serialize(false,&bsIn); + uint32_t dataLengthBytes; + bsIn.Read(dataLengthBytes); + if (maxUploadBytesPerClient>0 && dataLengthBytes>maxUploadBytesPerClient) + return; // Exceeded max upload bytes + + bsIn.AlignReadToByteBoundary(); + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnPostRequest(packet->guid, packet->systemAddress, key, dataLengthBytes, (const char*) bsIn.GetData()+BITS_TO_BYTES(bsIn.GetReadOffset()))==false) + return; + } + + unsigned char *data; + if (dataLengthBytes>CLOUD_SERVER_DATA_STACK_SIZE) + { + data = (unsigned char *) rakMalloc_Ex(dataLengthBytes,_FILE_AND_LINE_); + if (data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return; + } + bsIn.ReadAlignedBytes(data,dataLengthBytes); + } + else + data=0; + + // Add this system to remoteSystems if they aren't there already + DataStructures::HashIndex remoteSystemsHashIndex = remoteSystems.GetIndexOf(packet->guid); + RemoteCloudClient *remoteCloudClient; + if (remoteSystemsHashIndex.IsInvalid()) + { + remoteCloudClient = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteCloudClient->uploadedKeys.Insert(key,key,true,_FILE_AND_LINE_); + remoteCloudClient->uploadedBytes=0; + remoteSystems.Push(packet->guid, remoteCloudClient, _FILE_AND_LINE_); + } + else + { + remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemsHashIndex); + bool objectExists; + // Add to RemoteCloudClient::uploadedKeys if it isn't there already + unsigned int uploadedKeysIndex = remoteCloudClient->uploadedKeys.GetIndexFromKey(key,&objectExists); + if (objectExists==false) + { + remoteCloudClient->uploadedKeys.InsertAtIndex(key, uploadedKeysIndex, _FILE_AND_LINE_); + } + } + + bool cloudDataAlreadyUploaded; + unsigned int dataRepositoryIndex; + bool dataRepositoryExists; + CloudDataList* cloudDataList = GetOrAllocateCloudDataList(key, &dataRepositoryExists, dataRepositoryIndex); + if (dataRepositoryExists==false) + { + cloudDataList->uploaderCount=1; + cloudDataAlreadyUploaded=false; + } + else + { + cloudDataAlreadyUploaded=cloudDataList->uploaderCount>0; + cloudDataList->uploaderCount++; + } + + CloudData *cloudData; + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(packet->guid, &keyDataListExists); + if (keyDataListExists==false) + { + if (maxUploadBytesPerClient>0 && remoteCloudClient->uploadedBytes+dataLengthBytes>maxUploadBytesPerClient) + { + // Undo prior insertion of cloudDataList into cloudData if needed + if (keyDataListExists==false) + { + RakNet::OP_DELETE(cloudDataList,_FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + + if (remoteCloudClient->IsUnused()) + { + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.Remove(packet->guid, _FILE_AND_LINE_); + } + + if (dataLengthBytes>CLOUD_SERVER_DATA_STACK_SIZE) + rakFree_Ex(data, _FILE_AND_LINE_); + + return; + } + + cloudData = RakNet::OP_NEW(_FILE_AND_LINE_); + cloudData->dataLengthBytes=dataLengthBytes; + cloudData->isUploaded=true; + if (forceAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + cloudData->serverSystemAddress=forceAddress; + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetExternalID(packet->systemAddress).GetPort()); + } + else + { + cloudData->serverSystemAddress=rakPeerInterface->GetExternalID(packet->systemAddress); + } + if (cloudData->serverSystemAddress.GetPort()==0) + { + // Fix localhost port + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetSocket(UNASSIGNED_SYSTEM_ADDRESS)->boundAddress.GetPort()); + } + cloudData->clientSystemAddress=packet->systemAddress; + cloudData->serverGUID=rakPeerInterface->GetMyGUID(); + cloudData->clientGUID=packet->guid; + cloudDataList->keyData.Insert(packet->guid,cloudData,true,_FILE_AND_LINE_); + } + else + { + cloudData = cloudDataList->keyData[keyDataListIndex]; + + if (cloudDataAlreadyUploaded==false) + { + if (forceAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + cloudData->serverSystemAddress=forceAddress; + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetExternalID(packet->systemAddress).GetPort()); + } + else + { + cloudData->serverSystemAddress=rakPeerInterface->GetExternalID(packet->systemAddress); + } + if (cloudData->serverSystemAddress.GetPort()==0) + { + // Fix localhost port + cloudData->serverSystemAddress.SetPort(rakPeerInterface->GetSocket(UNASSIGNED_SYSTEM_ADDRESS)->boundAddress.GetPort()); + } + + cloudData->clientSystemAddress=packet->systemAddress; + } + + if (maxUploadBytesPerClient>0 && remoteCloudClient->uploadedBytes-cloudData->dataLengthBytes+dataLengthBytes>maxUploadBytesPerClient) + { + // Undo prior insertion of cloudDataList into cloudData if needed + if (dataRepositoryExists==false) + { + RakNet::OP_DELETE(cloudDataList,_FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + return; + } + else + { + // Subtract already used bytes we are overwriting + remoteCloudClient->uploadedBytes-=cloudData->dataLengthBytes; + } + + if (cloudData->allocatedData!=0) + rakFree_Ex(cloudData->allocatedData,_FILE_AND_LINE_); + } + + if (dataLengthBytes>CLOUD_SERVER_DATA_STACK_SIZE) + { + // Data already allocated + cloudData->allocatedData=data; + cloudData->dataPtr=data; + } + else + { + // Read to stack + if (dataLengthBytes>0) + bsIn.ReadAlignedBytes(cloudData->stackData,dataLengthBytes); + cloudData->allocatedData=0; + cloudData->dataPtr=cloudData->stackData; + } + // Update how many bytes were written for this data + cloudData->dataLengthBytes=dataLengthBytes; + remoteCloudClient->uploadedBytes+=dataLengthBytes; + + if (cloudDataAlreadyUploaded==false) + { + // New data field + SendUploadedKeyToServers(cloudDataList->key); + } + + // Existing data field changed + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudData->specificSubscribers, true ); + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudDataList->nonSpecificSubscribers, true ); + + // Send update to all remote servers that subscribed to this key + NotifyServerSubscribersOfDataChange(cloudData, cloudDataList->key, true); + + // I could have also subscribed to a key not yet updated locally + // This means I have to go through every RemoteClient that wants this key + // Seems like cloudData->specificSubscribers is unnecessary in that case +} +void CloudServer::OnReleaseRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + + uint16_t keyCount; + bsIn.Read(keyCount); + + if (keyCount==0) + return; + + DataStructures::HashIndex remoteSystemIndex = remoteSystems.GetIndexOf(packet->guid); + if (remoteSystemIndex.IsInvalid()==true) + return; + + RemoteCloudClient* remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemIndex); + + CloudKey key; + + // Read all in a list first so I can run filter on it + DataStructures::List cloudKeys; + for (uint16_t keyCountIndex=0; keyCountIndex < keyCount; keyCountIndex++) + { + key.Serialize(false, &bsIn); + cloudKeys.Push(key, _FILE_AND_LINE_); + } + + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnReleaseRequest(packet->guid, packet->systemAddress, cloudKeys)) + return; + } + + for (uint16_t keyCountIndex=0; keyCountIndex < keyCount; keyCountIndex++) + { + // Serialize in list above so I can run the filter on it + // key.Serialize(false, &bsIn); + key=cloudKeys[keyCountIndex]; + + // Remove remote systems uploaded keys + bool objectExists; + unsigned int uploadedKeysIndex = remoteCloudClient->uploadedKeys.GetIndexFromKey(key,&objectExists); + if (objectExists) + { + bool dataRepositoryExists; + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(key, &dataRepositoryExists); + CloudDataList* cloudDataList = dataRepository[dataRepositoryIndex]; + RakAssert(cloudDataList); + + CloudData *cloudData; + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(packet->guid, &keyDataListExists); + cloudData = cloudDataList->keyData[keyDataListIndex]; + + remoteCloudClient->uploadedKeys.RemoveAtIndex(uploadedKeysIndex); + remoteCloudClient->uploadedBytes-=cloudData->dataLengthBytes; + cloudDataList->uploaderCount--; + + // Broadcast destruction of this key to subscribers + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudData->specificSubscribers, false ); + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudDataList->nonSpecificSubscribers, false ); + NotifyServerSubscribersOfDataChange(cloudData, cloudDataList->key, false ); + + cloudData->Clear(); + + if (cloudData->IsUnused()) + { + RakNet::OP_DELETE(cloudData, _FILE_AND_LINE_); + cloudDataList->keyData.RemoveAtIndex(keyDataListIndex); + if (cloudDataList->IsNotUploaded()) + { + // Tell other servers that this key is no longer uploaded, so they do not request it from us + RemoveUploadedKeyFromServers(cloudDataList->key); + } + + if (cloudDataList->IsUnused()) + { + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + } + + if (remoteCloudClient->IsUnused()) + { + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(remoteSystemIndex, _FILE_AND_LINE_); + break; + } + } + } +} +void CloudServer::OnGetRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + uint16_t specificSystemsCount; + CloudKey cloudKey; + + // Create a new GetRequest + GetRequest *getRequest; + getRequest = RakNet::OP_NEW(_FILE_AND_LINE_); + getRequest->cloudQueryWithAddresses.cloudQuery.Serialize(false, &bsIn); + getRequest->requestingClient=packet->guid; + + RakNetGUID addressOrGuid; + bsIn.Read(specificSystemsCount); + for (uint16_t i=0; i < specificSystemsCount; i++) + { + bsIn.Read(addressOrGuid); + getRequest->cloudQueryWithAddresses.specificSystems.Push(addressOrGuid, _FILE_AND_LINE_); + } + + if (getRequest->cloudQueryWithAddresses.cloudQuery.keys.Size()==0) + { + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); + return; + } + + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnGetRequest(packet->guid, packet->systemAddress, getRequest->cloudQueryWithAddresses.cloudQuery, getRequest->cloudQueryWithAddresses.specificSystems )==false) + return; + } + + getRequest->requestStartTime=RakNet::GetTime(); + getRequest->requestId=nextGetRequestId++; + + // Send request to servers that have this data + DataStructures::List remoteServersWithData; + GetServersWithUploadedKeys(getRequest->cloudQueryWithAddresses.cloudQuery.keys, remoteServersWithData); + + if (remoteServersWithData.Size()==0) + { + ProcessAndTransmitGetRequest(getRequest); + } + else + { + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_PROCESS_GET_REQUEST); + getRequest->cloudQueryWithAddresses.Serialize(true, &bsOut); + bsOut.Write(getRequest->requestId); + + for (unsigned int remoteServerIndex=0; remoteServerIndex < remoteServersWithData.Size(); remoteServerIndex++) + { + BufferedGetResponseFromServer* bufferedGetResponseFromServer = RakNet::OP_NEW(_FILE_AND_LINE_); + bufferedGetResponseFromServer->serverAddress=remoteServersWithData[remoteServerIndex]->serverAddress; + bufferedGetResponseFromServer->gotResult=false; + getRequest->remoteServerResponses.Insert(remoteServersWithData[remoteServerIndex]->serverAddress, bufferedGetResponseFromServer, true, _FILE_AND_LINE_); + + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServersWithData[remoteServerIndex]->serverAddress, false); + } + + // Record that this system made this request + getRequests.Insert(getRequest->requestId, getRequest, true, _FILE_AND_LINE_); + } + + if (getRequest->cloudQueryWithAddresses.cloudQuery.subscribeToResults) + { + // Add to key subscription list for the client, which contains a keyId / specificUploaderList pair + DataStructures::HashIndex remoteSystemsHashIndex = remoteSystems.GetIndexOf(packet->guid); + RemoteCloudClient *remoteCloudClient; + if (remoteSystemsHashIndex.IsInvalid()) + { + remoteCloudClient = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteCloudClient->uploadedBytes=0; + remoteSystems.Push(packet->guid, remoteCloudClient, _FILE_AND_LINE_); + } + else + { + remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemsHashIndex); + } + + unsigned int keyIndex; + for (keyIndex=0; keyIndex < getRequest->cloudQueryWithAddresses.cloudQuery.keys.Size(); keyIndex++) + { + cloudKey = getRequest->cloudQueryWithAddresses.cloudQuery.keys[keyIndex]; + + unsigned int keySubscriberIndex; + bool hasKeySubscriber; + keySubscriberIndex = remoteCloudClient->subscribedKeys.GetIndexFromKey(cloudKey, &hasKeySubscriber); + KeySubscriberID* keySubscriberId; + if (hasKeySubscriber) + { + DataStructures::List specificSystems; + UnsubscribeFromKey(remoteCloudClient, packet->guid, keySubscriberIndex, cloudKey, specificSystems); + } + + keySubscriberId = RakNet::OP_NEW(_FILE_AND_LINE_); + keySubscriberId->key=cloudKey; + + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < getRequest->cloudQueryWithAddresses.specificSystems.Size(); specificSystemIndex++) + { + keySubscriberId->specificSystemsSubscribedTo.Insert(getRequest->cloudQueryWithAddresses.specificSystems[specificSystemIndex], getRequest->cloudQueryWithAddresses.specificSystems[specificSystemIndex], true, _FILE_AND_LINE_); + } + + remoteCloudClient->subscribedKeys.InsertAtIndex(keySubscriberId, keySubscriberIndex, _FILE_AND_LINE_); + + // Add CloudData in a similar way + unsigned int dataRepositoryIndex; + bool dataRepositoryExists; + CloudDataList* cloudDataList = GetOrAllocateCloudDataList(cloudKey, &dataRepositoryExists, dataRepositoryIndex); + + // If this is the first local client to subscribe to this key, call SendSubscribedKeyToServers + if (cloudDataList->subscriberCount==0) + SendSubscribedKeyToServers(cloudKey); + + // If the subscription is specific, may have to also allocate CloudData + if (getRequest->cloudQueryWithAddresses.specificSystems.Size()) + { + CloudData *cloudData; + bool keyDataListExists; + + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < getRequest->cloudQueryWithAddresses.specificSystems.Size(); specificSystemIndex++) + { + RakNetGUID specificSystem = getRequest->cloudQueryWithAddresses.specificSystems[specificSystemIndex]; + + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(specificSystem, &keyDataListExists); + if (keyDataListExists==false) + { + cloudData = RakNet::OP_NEW(_FILE_AND_LINE_); + cloudData->dataLengthBytes=0; + cloudData->allocatedData=0; + cloudData->isUploaded=false; + cloudData->dataPtr=0; + cloudData->serverSystemAddress=UNASSIGNED_SYSTEM_ADDRESS; + cloudData->clientSystemAddress=UNASSIGNED_SYSTEM_ADDRESS; + cloudData->serverGUID=rakPeerInterface->GetMyGUID(); + cloudData->clientGUID=specificSystem; + cloudDataList->keyData.Insert(specificSystem,cloudData,true,_FILE_AND_LINE_); + } + else + { + cloudData = cloudDataList->keyData[keyDataListIndex]; + } + + ++cloudDataList->subscriberCount; + cloudData->specificSubscribers.Insert(packet->guid, packet->guid, true, _FILE_AND_LINE_); + } + } + else + { + ++cloudDataList->subscriberCount; + cloudDataList->nonSpecificSubscribers.Insert(packet->guid, packet->guid, true, _FILE_AND_LINE_); + + // Remove packet->guid from CloudData::specificSubscribers among all instances of cloudDataList->keyData + unsigned int subscribedKeysIndex; + bool subscribedKeysIndexExists; + subscribedKeysIndex = remoteCloudClient->subscribedKeys.GetIndexFromKey(cloudDataList->key, &subscribedKeysIndexExists); + if (subscribedKeysIndexExists) + { + KeySubscriberID* keySubscriberId; + keySubscriberId = remoteCloudClient->subscribedKeys[subscribedKeysIndex]; + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < keySubscriberId->specificSystemsSubscribedTo.Size(); specificSystemIndex++) + { + bool keyDataExists; + unsigned int keyDataIndex = cloudDataList->keyData.GetIndexFromKey(keySubscriberId->specificSystemsSubscribedTo[specificSystemIndex], &keyDataExists); + if (keyDataExists) + { + CloudData *keyData = cloudDataList->keyData[keyDataIndex]; + keyData->specificSubscribers.Remove(packet->guid); + --cloudDataList->subscriberCount; + } + } + } + } + } + + if (remoteCloudClient->subscribedKeys.Size()==0) + { + // Didn't do anything + remoteSystems.Remove(packet->guid, _FILE_AND_LINE_); + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + } + } + + if (remoteServersWithData.Size()==0) + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); +} +void CloudServer::OnUnsubscribeRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + + DataStructures::HashIndex remoteSystemIndex = remoteSystems.GetIndexOf(packet->guid); + if (remoteSystemIndex.IsInvalid()==true) + return; + + RemoteCloudClient* remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemIndex); + + uint16_t keyCount, specificSystemCount; + DataStructures::List cloudKeys; + DataStructures::List specificSystems; + uint16_t index; + + CloudKey cloudKey; + bsIn.Read(keyCount); + for (index=0; index < keyCount; index++) + { + cloudKey.Serialize(false, &bsIn); + cloudKeys.Push(cloudKey, _FILE_AND_LINE_); + } + + RakNetGUID specificSystem; + bsIn.Read(specificSystemCount); + for (index=0; index < specificSystemCount; index++) + { + bsIn.Read(specificSystem); + specificSystems.Push(specificSystem, _FILE_AND_LINE_); + } + + for (unsigned int filterIndex=0; filterIndex < queryFilters.Size(); filterIndex++) + { + if (queryFilters[filterIndex]->OnUnsubscribeRequest(packet->guid, packet->systemAddress, cloudKeys, specificSystems )==false) + return; + } + +// CloudDataList *cloudDataList; + bool dataRepositoryExists; +// unsigned int dataRepositoryIndex; + + for (index=0; index < keyCount; index++) + { + CloudKey cloudKey = cloudKeys[index]; + + // dataRepositoryIndex = + dataRepository.GetIndexFromKey(cloudKey, &dataRepositoryExists); + if (dataRepositoryExists==false) + continue; +// cloudDataList = dataRepository[dataRepositoryIndex]; + + unsigned int keySubscriberIndex; + bool hasKeySubscriber; + keySubscriberIndex = remoteCloudClient->subscribedKeys.GetIndexFromKey(cloudKey, &hasKeySubscriber); + + if (hasKeySubscriber==false) + continue; + + UnsubscribeFromKey(remoteCloudClient, packet->guid, keySubscriberIndex, cloudKey, specificSystems); + } + + if (remoteCloudClient->IsUnused()) + { + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(remoteSystemIndex, _FILE_AND_LINE_); + } +} +void CloudServer::OnServerToServerGetRequest(Packet *packet) +{ +// unsigned int remoteServerIndex; + bool objectExists; + //remoteServerIndex = + remoteServers.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists==false) + return; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + CloudQueryWithAddresses cloudQueryWithAddresses; + uint32_t requestId; + cloudQueryWithAddresses.Serialize(false, &bsIn); + bsIn.Read(requestId); + + DataStructures::List cloudDataResultList; + DataStructures::List cloudKeyResultList; + ProcessCloudQueryWithAddresses(cloudQueryWithAddresses, cloudDataResultList, cloudKeyResultList); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_PROCESS_GET_RESPONSE); + bsOut.Write(requestId); + WriteCloudQueryRowFromResultList(cloudDataResultList, cloudKeyResultList, &bsOut); + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, packet->guid, false); +} +void CloudServer::OnServerToServerGetResponse(Packet *packet) +{ + unsigned int remoteServerIndex; + bool objectExists; + remoteServerIndex = remoteServers.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists==false) + return; + + RemoteServer *remoteServer = remoteServers[remoteServerIndex]; + if (remoteServer==0) + return; + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + uint32_t requestId; + bsIn.Read(requestId); + + // Lookup request id + bool hasGetRequest; + unsigned int getRequestIndex; + getRequestIndex = getRequests.GetIndexFromKey(requestId, &hasGetRequest); + if (hasGetRequest==false) + return; + GetRequest *getRequest = getRequests[getRequestIndex]; + bool hasRemoteServer; + unsigned int remoteServerResponsesIndex; + remoteServerResponsesIndex = getRequest->remoteServerResponses.GetIndexFromKey(packet->guid, &hasRemoteServer); + if (hasRemoteServer==false) + return; + BufferedGetResponseFromServer *bufferedGetResponseFromServer; + bufferedGetResponseFromServer = getRequest->remoteServerResponses[remoteServerResponsesIndex]; + if (bufferedGetResponseFromServer->gotResult==true) + return; + bufferedGetResponseFromServer->gotResult=true; + uint32_t numRows; + bufferedGetResponseFromServer->queryResult.SerializeNumRows(false, numRows, &bsIn); + bufferedGetResponseFromServer->queryResult.SerializeCloudQueryRows(false, numRows, &bsIn, this); + + // If all results returned, then also process locally, and return to user + if (getRequest->AllRemoteServersHaveResponded()) + { + ProcessAndTransmitGetRequest(getRequest); + + getRequest->Clear(this); + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); + + getRequests.RemoveAtIndex(getRequestIndex); + } +} +void CloudServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + + unsigned int remoteServerIndex; + bool objectExists; + remoteServerIndex = remoteServers.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { + // Update remoteServerResponses by removing this server and sending the response if it is now complete + unsigned int getRequestIndex=0; + while (getRequestIndex < getRequests.Size()) + { + GetRequest *getRequest = getRequests[getRequestIndex]; + bool waitingForThisServer; + unsigned int remoteServerResponsesIndex = getRequest->remoteServerResponses.GetIndexFromKey(rakNetGUID, &waitingForThisServer); + if (waitingForThisServer) + { + getRequest->remoteServerResponses[remoteServerResponsesIndex]->Clear(this); + RakNet::OP_DELETE(getRequest->remoteServerResponses[remoteServerResponsesIndex], _FILE_AND_LINE_); + getRequest->remoteServerResponses.RemoveAtIndex(remoteServerResponsesIndex); + + if (getRequest->AllRemoteServersHaveResponded()) + { + ProcessAndTransmitGetRequest(getRequest); + getRequest->Clear(this); + RakNet::OP_DELETE(getRequest, _FILE_AND_LINE_); + + getRequests.RemoveAtIndex(getRequestIndex); + } + else + getRequestIndex++; + } + else + getRequestIndex++; + } + + RakNet::OP_DELETE(remoteServers[remoteServerIndex],_FILE_AND_LINE_); + remoteServers.RemoveAtIndex(remoteServerIndex); + } + + DataStructures::HashIndex remoteSystemIndex = remoteSystems.GetIndexOf(rakNetGUID); + if (remoteSystemIndex.IsInvalid()==false) + { + RemoteCloudClient* remoteCloudClient = remoteSystems.ItemAtIndex(remoteSystemIndex); + unsigned int uploadedKeysIndex; + for (uploadedKeysIndex=0; uploadedKeysIndex < remoteCloudClient->uploadedKeys.Size(); uploadedKeysIndex++) + { + // Delete keys this system has uploaded + bool keyDataRepositoryExists; + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(remoteCloudClient->uploadedKeys[uploadedKeysIndex], &keyDataRepositoryExists); + if (keyDataRepositoryExists) + { + CloudDataList* cloudDataList = dataRepository[dataRepositoryIndex]; + bool keyDataExists; + unsigned int keyDataIndex = cloudDataList->keyData.GetIndexFromKey(rakNetGUID, &keyDataExists); + if (keyDataExists) + { + CloudData *cloudData = cloudDataList->keyData[keyDataIndex]; + cloudDataList->uploaderCount--; + + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudData->specificSubscribers, false ); + NotifyClientSubscribersOfDataChange(cloudData, cloudDataList->key, cloudDataList->nonSpecificSubscribers, false ); + NotifyServerSubscribersOfDataChange(cloudData, cloudDataList->key, false ); + + cloudData->Clear(); + + if (cloudData->IsUnused()) + { + RakNet::OP_DELETE(cloudData,_FILE_AND_LINE_); + cloudDataList->keyData.RemoveAtIndex(keyDataIndex); + + if (cloudDataList->IsNotUploaded()) + { + // Tell other servers that this key is no longer uploaded, so they do not request it from us + RemoveUploadedKeyFromServers(cloudDataList->key); + } + + if (cloudDataList->IsUnused()) + { + // Tell other servers that this key is no longer uploaded, so they do not request it from us + RemoveUploadedKeyFromServers(cloudDataList->key); + + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } + } + } + } + } + + unsigned int subscribedKeysIndex; + for (subscribedKeysIndex=0; subscribedKeysIndex < remoteCloudClient->subscribedKeys.Size(); subscribedKeysIndex++) + { + KeySubscriberID* keySubscriberId; + keySubscriberId = remoteCloudClient->subscribedKeys[subscribedKeysIndex]; + + bool keyDataRepositoryExists; + unsigned int keyDataRepositoryIndex = dataRepository.GetIndexFromKey(remoteCloudClient->subscribedKeys[subscribedKeysIndex]->key, &keyDataRepositoryExists); + if (keyDataRepositoryExists) + { + CloudDataList* cloudDataList = dataRepository[keyDataRepositoryIndex]; + if (keySubscriberId->specificSystemsSubscribedTo.Size()==0) + { + cloudDataList->nonSpecificSubscribers.Remove(rakNetGUID); + --cloudDataList->subscriberCount; + } + else + { + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < keySubscriberId->specificSystemsSubscribedTo.Size(); specificSystemIndex++) + { + bool keyDataExists; + unsigned int keyDataIndex = cloudDataList->keyData.GetIndexFromKey(keySubscriberId->specificSystemsSubscribedTo[specificSystemIndex], &keyDataExists); + if (keyDataExists) + { + CloudData *keyData = cloudDataList->keyData[keyDataIndex]; + keyData->specificSubscribers.Remove(rakNetGUID); + --cloudDataList->subscriberCount; + } + } + } + } + + RakNet::OP_DELETE(keySubscriberId, _FILE_AND_LINE_); + } + + // Delete and remove from remoteSystems + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(remoteSystemIndex, _FILE_AND_LINE_); + } +} +void CloudServer::OnRakPeerShutdown(void) +{ + Clear(); +} +void CloudServer::Clear(void) +{ + unsigned int i,j; + for (i=0; i < dataRepository.Size(); i++) + { + CloudDataList *cloudDataList = dataRepository[i]; + for (j=0; j < cloudDataList->keyData.Size(); j++) + { + cloudDataList->keyData[j]->Clear(); + RakNet::OP_DELETE(cloudDataList->keyData[j], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + } + dataRepository.Clear(false, _FILE_AND_LINE_); + + for (i=0; i < remoteServers.Size(); i++) + { + RakNet::OP_DELETE(remoteServers[i], _FILE_AND_LINE_); + } + remoteServers.Clear(false, _FILE_AND_LINE_); + + for (i=0; i < getRequests.Size(); i++) + { + GetRequest *getRequest = getRequests[i]; + getRequest->Clear(this); + RakNet::OP_DELETE(getRequests[i], _FILE_AND_LINE_); + } + getRequests.Clear(false, _FILE_AND_LINE_); + + DataStructures::List keyList; + DataStructures::List itemList; + remoteSystems.GetAsList(itemList, keyList, _FILE_AND_LINE_); + for (i=0; i < itemList.Size(); i++) + { + RemoteCloudClient* remoteCloudClient = itemList[i]; + for (j=0; j < remoteCloudClient->subscribedKeys.Size(); j++) + { + RakNet::OP_DELETE(remoteCloudClient->subscribedKeys[j], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(remoteCloudClient, _FILE_AND_LINE_); + } + remoteSystems.Clear(_FILE_AND_LINE_); +} +void CloudServer::WriteCloudQueryRowFromResultList(DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut) +{ + bsOut->WriteCasted(cloudKeyResultList.Size()); + unsigned int i; + for (i=0; i < cloudKeyResultList.Size(); i++) + { + WriteCloudQueryRowFromResultList(i, cloudDataResultList, cloudKeyResultList, bsOut); + } +} +void CloudServer::WriteCloudQueryRowFromResultList(unsigned int i, DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut) +{ + CloudQueryRow cloudQueryRow; + CloudData *cloudData = cloudDataResultList[i]; + cloudQueryRow.key=cloudKeyResultList[i]; + cloudQueryRow.data=cloudData->dataPtr; + cloudQueryRow.length=cloudData->dataLengthBytes; + cloudQueryRow.serverSystemAddress=cloudData->serverSystemAddress; + cloudQueryRow.clientSystemAddress=cloudData->clientSystemAddress; + cloudQueryRow.serverGUID=cloudData->serverGUID; + cloudQueryRow.clientGUID=cloudData->clientGUID; + cloudQueryRow.Serialize(true, bsOut, 0); +} +void CloudServer::NotifyClientSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, DataStructures::OrderedList &subscribers, bool wasUpdated ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID) ID_CLOUD_SUBSCRIPTION_NOTIFICATION); + bsOut.Write(wasUpdated); + CloudQueryRow row; + row.key=key; + row.data=cloudData->dataPtr; + row.length=cloudData->dataLengthBytes; + row.serverSystemAddress=cloudData->serverSystemAddress; + row.clientSystemAddress=cloudData->clientSystemAddress; + row.serverGUID=cloudData->serverGUID; + row.clientGUID=cloudData->clientGUID; + row.Serialize(true,&bsOut,0); + + unsigned int i; + for (i=0; i < subscribers.Size(); i++) + { + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, subscribers[i], false); + } +} +void CloudServer::NotifyClientSubscribersOfDataChange( CloudQueryRow *row, DataStructures::OrderedList &subscribers, bool wasUpdated ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID) ID_CLOUD_SUBSCRIPTION_NOTIFICATION); + bsOut.Write(wasUpdated); + row->Serialize(true,&bsOut,0); + + unsigned int i; + for (i=0; i < subscribers.Size(); i++) + { + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, subscribers[i], false); + } +} +void CloudServer::NotifyServerSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, bool wasUpdated ) +{ + // Find every server that has subscribed + // Send them change notifications + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_DATA_CHANGED); + bsOut.Write(wasUpdated); + CloudQueryRow row; + row.key=key; + row.data=cloudData->dataPtr; + row.length=cloudData->dataLengthBytes; + row.serverSystemAddress=cloudData->serverSystemAddress; + row.clientSystemAddress=cloudData->clientSystemAddress; + row.serverGUID=cloudData->serverGUID; + row.clientGUID=cloudData->clientGUID; + row.Serialize(true,&bsOut,0); + + unsigned int i; + for (i=0; i < remoteServers.Size(); i++) + { + if (remoteServers[i]->gotSubscribedAndUploadedKeys==false || remoteServers[i]->subscribedKeys.HasData(key)) + { + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); + } + } +} +void CloudServer::AddServer(RakNetGUID systemIdentifier) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(systemIdentifier); + if (cs==IS_DISCONNECTED || cs==IS_NOT_CONNECTED) + return; + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(systemIdentifier,&objectExists); + if (objectExists==false) + { + RemoteServer *remoteServer = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteServer->gotSubscribedAndUploadedKeys=false; + remoteServer->serverAddress=systemIdentifier; + remoteServers.InsertAtIndex(remoteServer, index, _FILE_AND_LINE_); + + SendUploadedAndSubscribedKeysToServer(systemIdentifier); + } +} +void CloudServer::RemoveServer(RakNetGUID systemAddress) +{ + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(systemAddress,&objectExists); + if (objectExists==true) + { + RakNet::OP_DELETE(remoteServers[index],_FILE_AND_LINE_); + remoteServers.RemoveAtIndex(index); + } +} +void CloudServer::GetRemoteServers(DataStructures::List &remoteServersOut) +{ + remoteServersOut.Clear(true, _FILE_AND_LINE_); + + unsigned int i; + for (i=0; i < remoteServers.Size(); i++) + { + remoteServersOut.Push(remoteServers[i]->serverAddress, _FILE_AND_LINE_); + } +} +void CloudServer::ProcessAndTransmitGetRequest(GetRequest *getRequest) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID) ID_CLOUD_GET_RESPONSE); + + // BufferedGetResponseFromServer getResponse; + CloudQueryResult cloudQueryResult; + cloudQueryResult.cloudQuery=getRequest->cloudQueryWithAddresses.cloudQuery; + cloudQueryResult.subscribeToResults=getRequest->cloudQueryWithAddresses.cloudQuery.subscribeToResults; + cloudQueryResult.SerializeHeader(true, &bsOut); + + DataStructures::List cloudDataResultList; + DataStructures::List cloudKeyResultList; + ProcessCloudQueryWithAddresses(getRequest->cloudQueryWithAddresses, cloudDataResultList, cloudKeyResultList); + bool unlimitedRows=getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn==0; + + uint32_t localNumRows = (uint32_t) cloudDataResultList.Size(); + if (unlimitedRows==false && + localNumRows > getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex && + localNumRows - getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex > getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn ) + localNumRows=getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex + getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn; + + BitSize_t bitStreamOffset = bsOut.GetWriteOffset(); + uint32_t localRowsToWrite; + unsigned int skipRows; + if (localNumRows>getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex) + { + localRowsToWrite=localNumRows-getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex; + skipRows=0; + } + else + { + localRowsToWrite=0; + skipRows=getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex-localNumRows; + } + cloudQueryResult.SerializeNumRows(true, localRowsToWrite, &bsOut); + for (unsigned int i=getRequest->cloudQueryWithAddresses.cloudQuery.startingRowIndex; i < localNumRows; i++) + { + WriteCloudQueryRowFromResultList(i, cloudDataResultList, cloudKeyResultList, &bsOut); + } + + // Append remote systems for remaining rows + if (unlimitedRows==true || getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn>localRowsToWrite) + { + uint32_t remainingRows=0; + uint32_t additionalRowsWritten=0; + if (unlimitedRows==false) + remainingRows=getRequest->cloudQueryWithAddresses.cloudQuery.maxRowsToReturn-localRowsToWrite; + + unsigned int remoteServerResponseIndex; + for (remoteServerResponseIndex=0; remoteServerResponseIndex < getRequest->remoteServerResponses.Size(); remoteServerResponseIndex++) + { + BufferedGetResponseFromServer *bufferedGetResponseFromServer = getRequest->remoteServerResponses[remoteServerResponseIndex]; + unsigned int cloudQueryRowIndex; + for (cloudQueryRowIndex=0; cloudQueryRowIndex < bufferedGetResponseFromServer->queryResult.rowsReturned.Size(); cloudQueryRowIndex++) + { + if (skipRows>0) + { + --skipRows; + continue; + } + bufferedGetResponseFromServer->queryResult.rowsReturned[cloudQueryRowIndex]->Serialize(true, &bsOut, this); + + ++additionalRowsWritten; + if (unlimitedRows==false && --remainingRows==0) + break; + } + + if (unlimitedRows==false && remainingRows==0) + break; + } + + if (additionalRowsWritten>0) + { + BitSize_t curOffset = bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(bitStreamOffset); + localRowsToWrite+=additionalRowsWritten; + cloudQueryResult.SerializeNumRows(true, localRowsToWrite, &bsOut); + bsOut.SetWriteOffset(curOffset); + } + } + + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, getRequest->requestingClient, false); +} +void CloudServer::ProcessCloudQueryWithAddresses( CloudServer::CloudQueryWithAddresses &cloudQueryWithAddresses, DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList ) +{ + CloudQueryResult cloudQueryResult; + CloudQueryRow cloudQueryRow; + unsigned int queryIndex; + bool dataRepositoryExists; + CloudDataList* cloudDataList; + unsigned int keyDataIndex; + + // If specificSystems list empty, applies to all systems + // For each of keys in cloudQueryWithAddresses, return that data, limited by maxRowsToReturn + for (queryIndex=0; queryIndex < cloudQueryWithAddresses.cloudQuery.keys.Size(); queryIndex++) + { + const CloudKey &key = cloudQueryWithAddresses.cloudQuery.keys[queryIndex]; + + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(key, &dataRepositoryExists); + if (dataRepositoryExists) + { + cloudDataList=dataRepository[dataRepositoryIndex]; + + if (cloudDataList->uploaderCount>0) + { + // Return all keyData that was uploaded by specificSystems, or all if not specified + if (cloudQueryWithAddresses.specificSystems.Size()>0) + { + // Return data for matching systems + unsigned int specificSystemIndex; + for (specificSystemIndex=0; specificSystemIndex < cloudQueryWithAddresses.specificSystems.Size(); specificSystemIndex++) + { + bool uploaderExists; + keyDataIndex = cloudDataList->keyData.GetIndexFromKey(cloudQueryWithAddresses.specificSystems[specificSystemIndex], &uploaderExists); + if (uploaderExists) + { + cloudDataResultList.Push(cloudDataList->keyData[keyDataIndex], _FILE_AND_LINE_); + cloudKeyResultList.Push(key, _FILE_AND_LINE_); + } + } + } + else + { + // Return data for all systems + for (keyDataIndex=0; keyDataIndex < cloudDataList->keyData.Size(); keyDataIndex++) + { + cloudDataResultList.Push(cloudDataList->keyData[keyDataIndex], _FILE_AND_LINE_); + cloudKeyResultList.Push(key, _FILE_AND_LINE_); + } + } + } + } + } +} +void CloudServer::SendUploadedAndSubscribedKeysToServer( RakNetGUID systemAddress ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_ADD_UPLOADED_AND_SUBSCRIBED_KEYS); + bsOut.WriteCasted(dataRepository.Size()); + for (unsigned int i=0; i < dataRepository.Size(); i++) + dataRepository[i]->key.Serialize(true, &bsOut); + + BitSize_t startOffset, endOffset; + uint16_t subscribedKeyCount=0; + startOffset=bsOut.GetWriteOffset(); + bsOut.WriteCasted(subscribedKeyCount); + for (unsigned int i=0; i < dataRepository.Size(); i++) + { + if (dataRepository[i]->subscriberCount>0) + { + dataRepository[i]->key.Serialize(true, &bsOut); + subscribedKeyCount++; + } + } + endOffset=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(startOffset); + bsOut.WriteCasted(subscribedKeyCount); + bsOut.SetWriteOffset(endOffset); + + if (dataRepository.Size()>0 || subscribedKeyCount>0) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, systemAddress, false); +} +void CloudServer::SendUploadedKeyToServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_ADD_UPLOADED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::SendSubscribedKeyToServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_ADD_SUBSCRIBED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::RemoveUploadedKeyFromServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_REMOVE_UPLOADED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::RemoveSubscribedKeyFromServers( CloudKey &cloudKey ) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_CLOUD_SERVER_TO_SERVER_COMMAND); + bsOut.Write((MessageID)STSC_REMOVE_SUBSCRIBED_KEY); + cloudKey.Serialize(true, &bsOut); + for (unsigned int i=0; i < remoteServers.Size(); i++) + SendUnified(&bsOut, HIGH_PRIORITY, RELIABLE_ORDERED, 0, remoteServers[i]->serverAddress, false); +} +void CloudServer::OnSendUploadedAndSubscribedKeysToServer( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + remoteServer->gotSubscribedAndUploadedKeys=true; + +// unsigned int insertionIndex; + bool alreadyHasKey; + uint16_t numUploadedKeys, numSubscribedKeys; + bsIn.Read(numUploadedKeys); + for (uint16_t i=0; i < numUploadedKeys; i++) + { + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + + // insertionIndex = + remoteServer->uploadedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==false) + remoteServer->uploadedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); + } + + bsIn.Read(numSubscribedKeys); + for (uint16_t i=0; i < numSubscribedKeys; i++) + { + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + + //insertionIndex = + remoteServer->subscribedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==false) + remoteServer->subscribedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); + } + + // Potential todo - join servers + // For each uploaded key that we subscribe to, query it + // For each subscribed key that we have, send it +} +void CloudServer::OnSendUploadedKeyToServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); +// unsigned int insertionIndex; + bool alreadyHasKey; +// insertionIndex = + remoteServer->uploadedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==false) + remoteServer->uploadedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); +} +void CloudServer::OnSendSubscribedKeyToServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); +// unsigned int insertionIndex; + bool alreadyHasKey; +// insertionIndex = + remoteServer->subscribedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + + // Do not need to send current values, the Get request will do that as the Get request is sent at the same time + if (alreadyHasKey==false) + remoteServer->subscribedKeys.Insert(cloudKey,cloudKey,true,_FILE_AND_LINE_); +} +void CloudServer::OnRemoveUploadedKeyFromServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + unsigned int insertionIndex; + bool alreadyHasKey; + insertionIndex = remoteServer->uploadedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==true) + remoteServer->uploadedKeys.RemoveAtIndex(insertionIndex); +} +void CloudServer::OnRemoveSubscribedKeyFromServers( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + unsigned int index = remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + RemoteServer *remoteServer = remoteServers[index]; + CloudKey cloudKey; + cloudKey.Serialize(false, &bsIn); + unsigned int insertionIndex; + bool alreadyHasKey; + insertionIndex = remoteServer->subscribedKeys.GetIndexFromKey(cloudKey, &alreadyHasKey); + if (alreadyHasKey==true) + remoteServer->subscribedKeys.RemoveAtIndex(insertionIndex); +} +void CloudServer::OnServerDataChanged( Packet *packet ) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + bool objectExists; + remoteServers.GetIndexFromKey(packet->guid,&objectExists); + if (objectExists==false) + return; + + // Find everyone that cares about this change and relay + bool wasUpdated=false; + bsIn.Read(wasUpdated); + CloudQueryRow row; + row.Serialize(false, &bsIn, this); + + CloudDataList *cloudDataList; + bool dataRepositoryExists; + unsigned int dataRepositoryIndex; + dataRepositoryIndex = dataRepository.GetIndexFromKey(row.key, &dataRepositoryExists); + if (dataRepositoryExists==false) + { + DeallocateRowData(row.data); + return; + } + cloudDataList = dataRepository[dataRepositoryIndex]; + CloudData *cloudData; + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(row.clientGUID, &keyDataListExists); + if (keyDataListExists==true) + { + cloudData = cloudDataList->keyData[keyDataListIndex]; + NotifyClientSubscribersOfDataChange(&row, cloudData->specificSubscribers, wasUpdated ); + } + + NotifyClientSubscribersOfDataChange(&row, cloudDataList->nonSpecificSubscribers, wasUpdated ); + DeallocateRowData(row.data); +} +void CloudServer::GetServersWithUploadedKeys( + DataStructures::List &keys, + DataStructures::List &remoteServersWithData + ) +{ + remoteServersWithData.Clear(true, _FILE_AND_LINE_); + + unsigned int i,j; + for (i=0; i < remoteServers.Size(); i++) + { + remoteServers[i]->workingFlag=false; + } + + for (i=0; i < remoteServers.Size(); i++) + { + if (remoteServers[i]->workingFlag==false) + { + if (remoteServers[i]->gotSubscribedAndUploadedKeys==false) + { + remoteServers[i]->workingFlag=true; + remoteServersWithData.Push(remoteServers[i], _FILE_AND_LINE_); + } + else + { + remoteServers[i]->workingFlag=false; + for (j=0; j < keys.Size(); j++) + { + if (remoteServers[i]->workingFlag==false && remoteServers[i]->uploadedKeys.HasData(keys[j])) + { + remoteServers[i]->workingFlag=true; + remoteServersWithData.Push(remoteServers[i], _FILE_AND_LINE_); + break; + } + } + } + } + } +} + +CloudServer::CloudDataList *CloudServer::GetOrAllocateCloudDataList(CloudKey key, bool *dataRepositoryExists, unsigned int &dataRepositoryIndex) +{ + CloudDataList *cloudDataList; + + dataRepositoryIndex = dataRepository.GetIndexFromKey(key, dataRepositoryExists); + if (*dataRepositoryExists==false) + { + cloudDataList = RakNet::OP_NEW(_FILE_AND_LINE_); + cloudDataList->key=key; + cloudDataList->uploaderCount=0; + cloudDataList->subscriberCount=0; + dataRepository.InsertAtIndex(cloudDataList,dataRepositoryIndex,_FILE_AND_LINE_); + } + else + { + cloudDataList = dataRepository[dataRepositoryIndex]; + } + + return cloudDataList; +} + +void CloudServer::UnsubscribeFromKey(RemoteCloudClient *remoteCloudClient, RakNetGUID remoteCloudClientGuid, unsigned int keySubscriberIndex, CloudKey &cloudKey, DataStructures::List &specificSystems) +{ + KeySubscriberID* keySubscriberId = remoteCloudClient->subscribedKeys[keySubscriberIndex]; + + // If removing specific systems, but global subscription, fail + if (keySubscriberId->specificSystemsSubscribedTo.Size()==0 && specificSystems.Size()>0) + return; + + bool dataRepositoryExists; + CloudDataList *cloudDataList; + unsigned int dataRepositoryIndex = dataRepository.GetIndexFromKey(cloudKey, &dataRepositoryExists); + if (dataRepositoryExists==false) + return; + + unsigned int i,j; + + cloudDataList = dataRepository[dataRepositoryIndex]; + if (specificSystems.Size()==0) + { + // Remove global subscriber. If returns false, have to remove specific subscribers + if (cloudDataList->RemoveSubscriber(remoteCloudClientGuid)==false) + { + for (i=0; i < keySubscriberId->specificSystemsSubscribedTo.Size(); i++) + { + RemoveSpecificSubscriber(keySubscriberId->specificSystemsSubscribedTo[i], cloudDataList, remoteCloudClientGuid); + } + } + keySubscriberId->specificSystemsSubscribedTo.Clear(true, _FILE_AND_LINE_); + } + else + { + for (j=0; j < specificSystems.Size(); j++) + { + unsigned int specificSystemsSubscribedToIndex; + bool hasSpecificSystemsSubscribedTo; + specificSystemsSubscribedToIndex=keySubscriberId->specificSystemsSubscribedTo.GetIndexFromKey(specificSystems[j], &hasSpecificSystemsSubscribedTo); + if (hasSpecificSystemsSubscribedTo) + { + RemoveSpecificSubscriber(specificSystems[j], cloudDataList, remoteCloudClientGuid); + keySubscriberId->specificSystemsSubscribedTo.RemoveAtIndex(specificSystemsSubscribedToIndex); + } + } + } + + if (keySubscriberId->specificSystemsSubscribedTo.Size()==0) + { + RakNet::OP_DELETE(keySubscriberId, _FILE_AND_LINE_); + remoteCloudClient->subscribedKeys.RemoveAtIndex(keySubscriberIndex); + } + + if (cloudDataList->subscriberCount==0) + RemoveSubscribedKeyFromServers(cloudKey); + + if (cloudDataList->IsUnused()) + { + RakNet::OP_DELETE(cloudDataList, _FILE_AND_LINE_); + dataRepository.RemoveAtIndex(dataRepositoryIndex); + } +} +void CloudServer::RemoveSpecificSubscriber(RakNetGUID specificSubscriber, CloudDataList *cloudDataList, RakNetGUID remoteCloudClientGuid) +{ + bool keyDataListExists; + unsigned int keyDataListIndex = cloudDataList->keyData.GetIndexFromKey(specificSubscriber, &keyDataListExists); + if (keyDataListExists==false) + return; + CloudData *cloudData = cloudDataList->keyData[keyDataListIndex]; + bool hasSpecificSubscriber; + unsigned int specificSubscriberIndex = cloudData->specificSubscribers.GetIndexFromKey(remoteCloudClientGuid, &hasSpecificSubscriber); + if (hasSpecificSubscriber) + { + cloudData->specificSubscribers.RemoveAtIndex(specificSubscriberIndex); + cloudDataList->subscriberCount--; + + if (cloudData->IsUnused()) + { + RakNet::OP_DELETE(cloudData, _FILE_AND_LINE_); + cloudDataList->keyData.RemoveAtIndex(keyDataListIndex); + } + } +} + +void CloudServer::ForceExternalSystemAddress(SystemAddress forcedAddress) +{ + forceAddress=forcedAddress; +} +void CloudServer::AddQueryFilter(CloudServerQueryFilter* filter) +{ + if (queryFilters.GetIndexOf(filter)!=(unsigned int) -1) + return; + queryFilters.Push(filter, _FILE_AND_LINE_); +} +void CloudServer::RemoveQueryFilter(CloudServerQueryFilter* filter) +{ + unsigned int index; + index = queryFilters.GetIndexOf(filter); + if (index != (unsigned int) -1) + queryFilters.RemoveAtIndex(index); +} +void CloudServer::RemoveAllQueryFilters(void) +{ + queryFilters.Clear(true, _FILE_AND_LINE_); +} + +#endif diff --git a/src/raknet/CloudServer.h b/src/raknet/CloudServer.h new file mode 100755 index 0000000..cf4f78f --- /dev/null +++ b/src/raknet/CloudServer.h @@ -0,0 +1,375 @@ +/// \file CloudServer.h +/// \brief Stores client data, and allows cross-server communication to retrieve this data +/// \details TODO +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_CloudServer==1 + +#ifndef __CLOUD_SERVER_H +#define __CLOUD_SERVER_H + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "RakString.h" +#include "DS_Hash.h" +#include "CloudCommon.h" +#include "DS_OrderedList.h" + +/// If the data is smaller than this value, an allocation is avoid. However, this value exists for every row +#define CLOUD_SERVER_DATA_STACK_SIZE 32 + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief Zero or more instances of CloudServerQueryFilter can be attached to CloudServer to restrict client queries +/// All attached instances of CloudServerQueryFilter on each corresponding operation, from all directly connected clients +/// If any attached instance returns false for a given operation, that operation is silently rejected +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudServerQueryFilter +{ +public: + CloudServerQueryFilter() {} + virtual ~CloudServerQueryFilter() {} + + /// Called when a local client wants to post data + /// \return true to allow, false to reject + virtual bool OnPostRequest(RakNetGUID clientGuid, SystemAddress clientAddress, CloudKey key, uint32_t dataLength, const char *data)=0; + + /// Called when a local client wants to release data that it has previously uploaded + /// \return true to allow, false to reject + virtual bool OnReleaseRequest(RakNetGUID clientGuid, SystemAddress clientAddress, DataStructures::List &cloudKeys)=0; + + /// Called when a local client wants to query data + /// If you return false, the client will get no response at all + /// \return true to allow, false to reject + virtual bool OnGetRequest(RakNetGUID clientGuid, SystemAddress clientAddress, CloudQuery &query, DataStructures::List &specificSystems)=0; + + /// Called when a local client wants to stop getting updates for data + /// If you return false, the client will keep getting updates for that data + /// \return true to allow, false to reject + virtual bool OnUnsubscribeRequest(RakNetGUID clientGuid, SystemAddress clientAddress, DataStructures::List &cloudKeys, DataStructures::List &specificSystems)=0; +}; + +/// \brief Stores client data, and allows cross-server communication to retrieve this data +/// \ingroup CLOUD_GROUP +class RAK_DLL_EXPORT CloudServer : public PluginInterface2, CloudAllocator +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(CloudServer) + + CloudServer(); + virtual ~CloudServer(); + + /// \brief Max bytes a client can upload + /// Data in excess of this value is silently ignored + /// defaults to 0 (unlimited) + /// \param[in] bytes Max bytes a client can upload. 0 means unlimited. + void SetMaxUploadBytesPerClient(uint64_t bytes); + + /// \brief Max bytes returned by a download. If the number of bytes would exceed this amount, the returned list is truncated + /// However, if this would result in no rows downloaded, then one row will be returned. + /// \param[in] bytes Max bytes a client can download from a single Get(). 0 means unlimited. + void SetMaxBytesPerDownload(uint64_t bytes); + + /// \brief Add a server, which is assumed to be connected in a fully connected mesh to all other servers and also running the CloudServer plugin + /// The other system must also call AddServer before getting the subscription data, or it will be rejected. + /// Sending a message telling the other system to call AddServer(), followed by calling AddServer() locally, would be sufficient for this to work. + /// \note This sends subscription data to the other system, using RELIABLE_ORDERED on channel 0 + /// \param[in] systemIdentifier Identifier of the remote system + void AddServer(RakNetGUID systemIdentifier); + + /// \brief Removes a server added through AddServer() + /// \param[in] systemIdentifier Identifier of the remote system + void RemoveServer(RakNetGUID systemIdentifier); + + /// Return list of servers added with AddServer() + /// \param[out] remoteServers List of servers added + void GetRemoteServers(DataStructures::List &remoteServersOut); + + /// \brief Frees all memory. Does not remove query filters + void Clear(void); + + /// \brief Report the specified SystemAddress to client queries, rather than what RakPeer reads. + /// This is useful if you already know your public IP + /// This only applies to future updates, so call it before updating to apply to all queries + /// \param[in] forcedAddress The systmeAddress to return in queries. Use UNASSIGNED_SYSTEM_ADDRESS (default) to use what RakPeer returns + void ForceExternalSystemAddress(SystemAddress forcedAddress); + + /// \brief Adds a callback called on each query. If all filters returns true for an operation, the operation is allowed. + /// If the filter was already added, the function silently fails + /// \param[in] filter An externally allocated instance of CloudServerQueryFilter. The instance must remain valid until it is removed with RemoveQueryFilter() or RemoveAllQueryFilters() + void AddQueryFilter(CloudServerQueryFilter* filter); + + /// \brief Removes a callback added with AddQueryFilter() + /// The instance is not deleted, only unreferenced. It is up to the user to delete the instance, if necessary + /// \param[in] filter An externally allocated instance of CloudServerQueryFilter. The instance must remain valid until it is removed with RemoveQueryFilter() or RemoveAllQueryFilters() + void RemoveQueryFilter(CloudServerQueryFilter* filter); + + /// \brief Removes all instances of CloudServerQueryFilter added with AddQueryFilter(). + /// The instances are not deleted, only unreferenced. It is up to the user to delete the instances, if necessary + void RemoveAllQueryFilters(void); + +protected: + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnRakPeerShutdown(void); + + + virtual void OnPostRequest(Packet *packet); + virtual void OnReleaseRequest(Packet *packet); + virtual void OnGetRequest(Packet *packet); + virtual void OnUnsubscribeRequest(Packet *packet); + virtual void OnServerToServerGetRequest(Packet *packet); + virtual void OnServerToServerGetResponse(Packet *packet); + + uint64_t maxUploadBytesPerClient, maxBytesPerDowload; + + // ---------------------------------------------------------------------------- + // For a given data key, quickly look up one or all systems that have uploaded + // ---------------------------------------------------------------------------- + struct CloudData + { + CloudData() {} + ~CloudData() {if (allocatedData) rakFree_Ex(allocatedData, _FILE_AND_LINE_);} + bool IsUnused(void) const {return isUploaded==false && specificSubscribers.Size()==0;} + void Clear(void) {if (dataPtr==allocatedData) rakFree_Ex(allocatedData, _FILE_AND_LINE_); allocatedData=0; dataPtr=0; dataLengthBytes=0; isUploaded=false;} + + unsigned char stackData[CLOUD_SERVER_DATA_STACK_SIZE]; + unsigned char *allocatedData; // Uses allocatedData instead of stackData if length of data exceeds CLOUD_SERVER_DATA_STACK_SIZE + unsigned char *dataPtr; // Points to either stackData or allocatedData + uint32_t dataLengthBytes; + bool isUploaded; + + /// System address of server that is holding this data, and the client is connected to + SystemAddress serverSystemAddress; + + /// System address of client that uploaded this data + SystemAddress clientSystemAddress; + + /// RakNetGUID of server that is holding this data, and the client is connected to + RakNetGUID serverGUID; + + /// RakNetGUID of client that uploaded this data + RakNetGUID clientGUID; + + /// When the key data changes from this particular system, notify these subscribers + /// This list mutually exclusive with CloudDataList::nonSpecificSubscribers + DataStructures::OrderedList specificSubscribers; + }; + void WriteCloudQueryRowFromResultList(unsigned int i, DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut); + void WriteCloudQueryRowFromResultList(DataStructures::List &cloudDataResultList, DataStructures::List &cloudKeyResultList, BitStream *bsOut); + + static int KeyDataPtrComp( const RakNetGUID &key, CloudData* const &data ); + struct CloudDataList + { + bool IsUnused(void) const {return keyData.Size()==0 && nonSpecificSubscribers.Size()==0;} + bool IsNotUploaded(void) const {return uploaderCount==0;} + bool RemoveSubscriber(RakNetGUID g) { + bool objectExists; + unsigned int index; + index = nonSpecificSubscribers.GetIndexFromKey(g, &objectExists); + if (objectExists) + { + subscriberCount--; + nonSpecificSubscribers.RemoveAtIndex(index); + return true; + } + return false; + } + + unsigned int uploaderCount, subscriberCount; + CloudKey key; + + // Data uploaded from or subscribed to for various systems + DataStructures::OrderedList keyData; + + /// When the key data changes from any system, notify these subscribers + /// This list mutually exclusive with CloudData::specificSubscribers + DataStructures::OrderedList nonSpecificSubscribers; + }; + + static int KeyDataListComp( const CloudKey &key, CloudDataList * const &data ); + DataStructures::OrderedList dataRepository; + + struct KeySubscriberID + { + CloudKey key; + DataStructures::OrderedList specificSystemsSubscribedTo; + }; + static int KeySubscriberIDComp(const CloudKey &key, KeySubscriberID * const &data ); + + // Remote systems + struct RemoteCloudClient + { + bool IsUnused(void) const {return uploadedKeys.Size()==0 && subscribedKeys.Size()==0;} + + DataStructures::OrderedList uploadedKeys; + DataStructures::OrderedList subscribedKeys; + uint64_t uploadedBytes; + }; + DataStructures::Hash remoteSystems; + + // For a given user, release all subscribed and uploaded keys + void ReleaseSystem(RakNetGUID clientAddress ); + + // For a given user, release a set of keys + void ReleaseKeys(RakNetGUID clientAddress, DataStructures::List &keys ); + + void NotifyClientSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, DataStructures::OrderedList &subscribers, bool wasUpdated ); + void NotifyClientSubscribersOfDataChange( CloudQueryRow *row, DataStructures::OrderedList &subscribers, bool wasUpdated ); + void NotifyServerSubscribersOfDataChange( CloudData *cloudData, CloudKey &key, bool wasUpdated ); + + struct RemoteServer + { + RakNetGUID serverAddress; + // This server needs to know about these keys when they are updated or deleted + DataStructures::OrderedList subscribedKeys; + // This server has uploaded these keys, and needs to know about Get() requests + DataStructures::OrderedList uploadedKeys; + + // Just for processing + bool workingFlag; + + // If false, we don't know what keys they have yet, so send everything + bool gotSubscribedAndUploadedKeys; + }; + + static int RemoteServerComp(const RakNetGUID &key, RemoteServer* const &data ); + DataStructures::OrderedList remoteServers; + + struct BufferedGetResponseFromServer + { + void Clear(CloudAllocator *allocator); + + RakNetGUID serverAddress; + CloudQueryResult queryResult; + bool gotResult; + }; + + struct CloudQueryWithAddresses + { + // Inputs + CloudQuery cloudQuery; + DataStructures::List specificSystems; + + void Serialize(bool writeToBitstream, BitStream *bitStream); + }; + + static int BufferedGetResponseFromServerComp(const RakNetGUID &key, BufferedGetResponseFromServer* const &data ); + struct GetRequest + { + void Clear(CloudAllocator *allocator); + bool AllRemoteServersHaveResponded(void) const; + CloudQueryWithAddresses cloudQueryWithAddresses; + + // When request started. If takes too long for a response from another system, can abort remaining systems + RakNet::Time requestStartTime; + + // Assigned by server that gets the request to identify response. See nextGetRequestId + uint32_t requestId; + + RakNetGUID requestingClient; + + DataStructures::OrderedList remoteServerResponses; + }; + static int GetRequestComp(const uint32_t &key, GetRequest* const &data ); + DataStructures::OrderedList getRequests; + RakNet::Time nextGetRequestsCheck; + + uint32_t nextGetRequestId; + + void ProcessAndTransmitGetRequest(GetRequest *getRequest); + + void ProcessCloudQueryWithAddresses( + CloudServer::CloudQueryWithAddresses &cloudQueryWithAddresses, + DataStructures::List &cloudDataResultList, + DataStructures::List &cloudKeyResultList + ); + + void SendUploadedAndSubscribedKeysToServer( RakNetGUID systemAddress ); + void SendUploadedKeyToServers( CloudKey &cloudKey ); + void SendSubscribedKeyToServers( CloudKey &cloudKey ); + void RemoveUploadedKeyFromServers( CloudKey &cloudKey ); + void RemoveSubscribedKeyFromServers( CloudKey &cloudKey ); + + void OnSendUploadedAndSubscribedKeysToServer( Packet *packet ); + void OnSendUploadedKeyToServers( Packet *packet ); + void OnSendSubscribedKeyToServers( Packet *packet ); + void OnRemoveUploadedKeyFromServers( Packet *packet ); + void OnRemoveSubscribedKeyFromServers( Packet *packet ); + void OnServerDataChanged( Packet *packet ); + + void GetServersWithUploadedKeys( + DataStructures::List &keys, + DataStructures::List &remoteServersWithData + ); + + CloudServer::CloudDataList *GetOrAllocateCloudDataList(CloudKey key, bool *dataRepositoryExists, unsigned int &dataRepositoryIndex); + + void UnsubscribeFromKey(RemoteCloudClient *remoteCloudClient, RakNetGUID remoteCloudClientGuid, unsigned int keySubscriberIndex, CloudKey &cloudKey, DataStructures::List &specificSystems); + void RemoveSpecificSubscriber(RakNetGUID specificSubscriber, CloudDataList *cloudDataList, RakNetGUID remoteCloudClientGuid); + + DataStructures::List queryFilters; + + SystemAddress forceAddress; +}; + + +} // namespace RakNet + +#endif + + +// Key subscription +// +// A given system can subscribe to one or more keys. +// The subscription can be further be defined as only subscribing to keys uploaded by or changed by a given system. +// It is possible to subscribe to keys not yet uploaded, or uploaded to another system +// +// Operations: +// +// 1. SubscribeToKey() - Get() operation with subscription +// A. Add to key subscription list for the client, which contains a keyId / specificUploaderList pair +// B. Send to remote servers that for this key, they should send us updates +// C. (Done, get operation returns current values) +// +// 2. UpdateData() - Post() operation +// A. Find all subscribers to this data, for the uploading system. +// B. Send them the uploaded data +// C. Find all servers that subscribe to this data +// D. Send them the uploaded data +// +// 3. DeleteData() - Release() operation +// A. Find all subscribers to this data, for the deleting system. +// B. Inform them of the deletion +// C. Find all servers that subscribe to this data +// D. Inform them of the deletion +// +// 4. Unsubscribe() +// A. Find this subscriber, and remove their subscription +// B. If no one else is subscribing to this key for any system, notify remote servers we no longer need subscription updates +// +// Internal operations: +// +// 1. Find if any connected client has subscribed to a given key +// A. This is used add and remove our subscription for this key to remote servers +// +// 2. For a given key and updating address, find all connected clients that care +// A. First find connected clients that have subscribed to this key, regardless of address +// B. Then find connected clients that have subscribed to this key for this particular address +// +// 3. Find all remote servers that have subscribed to a given key +// A. This is so when the key is updated or deleted, we know who to send it to +// +// 4. For a given client (such as on disconnect), remove all records of their subscriptions + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/CommandParserInterface.cpp b/src/raknet/CommandParserInterface.cpp new file mode 100755 index 0000000..33d6695 --- /dev/null +++ b/src/raknet/CommandParserInterface.cpp @@ -0,0 +1,161 @@ +#include "CommandParserInterface.h" +#include "TransportInterface.h" +#include +#include "RakAssert.h" +#include + + +#if defined(_WIN32) +// IP_DONTFRAGMENT is different between winsock 1 and winsock 2. Therefore, Winsock2.h must be linked againt Ws2_32.lib +// winsock.h must be linked against WSock32.lib. If these two are mixed up the flag won't work correctly +#include + +#else +#include +#include +#include +#endif + +#include "LinuxStrings.h" + +using namespace RakNet; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +const unsigned char CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS=255; + +int RakNet::RegisteredCommandComp( const char* const & key, const RegisteredCommand &data ) +{ + return _stricmp(key,data.command); +} + +CommandParserInterface::CommandParserInterface() {} +CommandParserInterface::~CommandParserInterface() {} + +void CommandParserInterface::ParseConsoleString(char *str, const char delineator, unsigned char delineatorToggle, unsigned *numParameters, char **parameterList, unsigned parameterListLength) +{ + unsigned strIndex, parameterListIndex; + unsigned strLen; + bool replaceDelineator=true; + + strLen = (unsigned) strlen(str); + + // Replace every instance of delineator, \n, \r with 0 + for (strIndex=0; strIndex < strLen; strIndex++) + { + if (str[strIndex]==delineator && replaceDelineator) + str[strIndex]=0; + + if (str[strIndex]=='\n' || str[strIndex]=='\r') + str[strIndex]=0; + + if (str[strIndex]==delineatorToggle) + { + str[strIndex]=0; + replaceDelineator=!replaceDelineator; + } + } + + // Fill up parameterList starting at each non-0 + for (strIndex=0, parameterListIndex=0; strIndex < strLen; ) + { + if (str[strIndex]!=0) + { + parameterList[parameterListIndex]=str+strIndex; + parameterListIndex++; + RakAssert(parameterListIndex < parameterListLength); + if (parameterListIndex >= parameterListLength) + break; + + strIndex++; + while (str[strIndex]!=0 && strIndex < strLen) + strIndex++; + } + else + strIndex++; + } + + parameterList[parameterListIndex]=0; + *numParameters=parameterListIndex; +} +void CommandParserInterface::SendCommandList(TransportInterface *transport, const SystemAddress &systemAddress) +{ + unsigned i; + if (commandList.Size()) + { + for (i=0; i < commandList.Size(); i++) + { + transport->Send(systemAddress, "%s", commandList[i].command); + if (i < commandList.Size()-1) + transport->Send(systemAddress, ", "); + } + transport->Send(systemAddress, "\r\n"); + } + else + transport->Send(systemAddress, "No registered commands\r\n"); +} +void CommandParserInterface::RegisterCommand(unsigned char parameterCount, const char *command, const char *commandHelp) +{ + RegisteredCommand rc; + rc.command=command; + rc.commandHelp=commandHelp; + rc.parameterCount=parameterCount; + commandList.Insert( command, rc, true, _FILE_AND_LINE_); +} +bool CommandParserInterface::GetRegisteredCommand(const char *command, RegisteredCommand *rc) +{ + bool objectExists; + unsigned index; + index=commandList.GetIndexFromKey(command, &objectExists); + if (objectExists) + *rc=commandList[index]; + return objectExists; +} +void CommandParserInterface::OnTransportChange(TransportInterface *transport) +{ + (void) transport; +} +void CommandParserInterface::OnNewIncomingConnection(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) systemAddress; + (void) transport; +} +void CommandParserInterface::OnConnectionLost(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) systemAddress; + (void) transport; +} +void CommandParserInterface::ReturnResult(bool res, const char *command,TransportInterface *transport, const SystemAddress &systemAddress) +{ + if (res) + transport->Send(systemAddress, "%s returned true.\r\n", command); + else + transport->Send(systemAddress, "%s returned false.\r\n", command); +} +void CommandParserInterface::ReturnResult(int res, const char *command,TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "%s returned %i.\r\n", command, res); +} +void CommandParserInterface::ReturnResult(const char *command, TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "Successfully called %s.\r\n", command); +} +void CommandParserInterface::ReturnResult(char *res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "%s returned %s.\r\n", command, res); +} +void CommandParserInterface::ReturnResult(SystemAddress res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress) +{ + char addr[128]; + systemAddress.ToString(false,addr); + char addr2[128]; + res.ToString(false,addr2); + transport->Send(systemAddress, "%s returned %s %s:%i\r\n", command,addr,addr2,res.GetPort()); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + diff --git a/src/raknet/CommandParserInterface.h b/src/raknet/CommandParserInterface.h new file mode 100755 index 0000000..7a9cc5b --- /dev/null +++ b/src/raknet/CommandParserInterface.h @@ -0,0 +1,140 @@ +/// \file CommandParserInterface.h +/// \brief Contains CommandParserInterface , from which you derive custom command parsers +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __COMMAND_PARSER_INTERFACE +#define __COMMAND_PARSER_INTERFACE + +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "DS_OrderedList.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class TransportInterface; + +/// \internal +/// Contains the information related to one command registered with RegisterCommand() +/// Implemented so I can have an automatic help system via SendCommandList() +struct RAK_DLL_EXPORT RegisteredCommand +{ + const char *command; + const char *commandHelp; + unsigned char parameterCount; +}; + +/// List of commands registered with RegisterCommand() +int RAK_DLL_EXPORT RegisteredCommandComp( const char* const & key, const RegisteredCommand &data ); + +/// \brief The interface used by command parsers. +/// \details CommandParserInterface provides a set of functions and interfaces that plug into the ConsoleServer class. +/// Each CommandParserInterface works at the same time as other interfaces in the system. +class RAK_DLL_EXPORT CommandParserInterface +{ +public: + CommandParserInterface(); + virtual ~CommandParserInterface(); + + /// You are responsible for overriding this function and returning a static string, which will identifier your parser. + /// This should return a static string + /// \return The name that you return. + virtual const char *GetName(void) const=0; + + /// \brief A callback for when \a systemAddress has connected to us. + /// \param[in] systemAddress The player that has connected. + /// \param[in] transport The transport interface that sent us this information. Can be used to send messages to this or other players. + virtual void OnNewIncomingConnection(const SystemAddress &systemAddress, TransportInterface *transport); + + /// \brief A callback for when \a systemAddress has disconnected, either gracefully or forcefully + /// \param[in] systemAddress The player that has disconnected. + /// \param[in] transport The transport interface that sent us this information. + virtual void OnConnectionLost(const SystemAddress &systemAddress, TransportInterface *transport); + + /// \brief A callback for when you are expected to send a brief description of your parser to \a systemAddress + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that requested help. + virtual void SendHelp(TransportInterface *transport, const SystemAddress &systemAddress)=0; + + /// \brief Given \a command with parameters \a parameterList , do whatever processing you wish. + /// \param[in] command The command to process + /// \param[in] numParameters How many parameters were passed along with the command + /// \param[in] parameterList The list of parameters. parameterList[0] is the first parameter and so on. + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that sent this command. + /// \param[in] originalString The string that was actually sent over the network, in case you want to do your own parsing + virtual bool OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString)=0; + + /// \brief This is called every time transport interface is registered. + /// \details If you want to save a copy of the TransportInterface pointer + /// This is the place to do it + /// \param[in] transport The new TransportInterface + virtual void OnTransportChange(TransportInterface *transport); + + /// \internal + /// Scan commandList and return the associated array + /// \param[in] command The string to find + /// \param[out] rc Contains the result of this operation + /// \return True if we found the command, false otherwise + virtual bool GetRegisteredCommand(const char *command, RegisteredCommand *rc); + + /// \internal + /// Goes through str, replacing the delineating character with 0's. + /// \param[in] str The string sent by the transport interface + /// \param[in] delineator The character to scan for to use as a delineator + /// \param[in] delineatorToggle When encountered the delineator replacement is toggled on and off + /// \param[out] numParameters How many pointers were written to \a parameterList + /// \param[out] parameterList An array of pointers to characters. Will hold pointers to locations inside \a str + /// \param[in] parameterListLength How big the \a parameterList array is + static void ParseConsoleString(char *str, const char delineator, unsigned char delineatorToggle, unsigned *numParameters, char **parameterList, unsigned parameterListLength); + + /// \internal + /// Goes through the variable commandList and sends the command portion of each struct + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player to write to + virtual void SendCommandList(TransportInterface *transport, const SystemAddress &systemAddress); + + static const unsigned char VARIABLE_NUMBER_OF_PARAMETERS; + + // Currently only takes static strings - doesn't make a copy of what you pass. + // parameterCount is the number of parameters that the sender has to include with the command. + // Pass 255 to parameterCount to indicate variable number of parameters + + /// Registers a command. + /// \param[in] parameterCount How many parameters your command requires. If you want to accept a variable number of commands, pass CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS + /// \param[in] command A pointer to a STATIC string that has your command. I keep a copy of the pointer here so don't deallocate the string. + /// \param[in] commandHelp A pointer to a STATIC string that has the help information for your command. I keep a copy of the pointer here so don't deallocate the string. + virtual void RegisterCommand(unsigned char parameterCount, const char *command, const char *commandHelp); + + /// \brief Just writes a string to the remote system based on the result ( \a res ) of your operation + /// \details This is not necessary to call, but makes it easier to return results of function calls. + /// \param[in] res The result to write + /// \param[in] command The command that this result came from + /// \param[in] transport The transport interface that will be written to + /// \param[in] systemAddress The player this result will be sent to + virtual void ReturnResult(bool res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress); + virtual void ReturnResult(char *res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress); + virtual void ReturnResult(SystemAddress res, const char *command, TransportInterface *transport, const SystemAddress &systemAddress); + virtual void ReturnResult(int res, const char *command,TransportInterface *transport, const SystemAddress &systemAddress); + + /// \brief Just writes a string to the remote system when you are calling a function that has no return value. + /// \details This is not necessary to call, but makes it easier to return results of function calls. + /// \param[in] res The result to write + /// \param[in] command The command that this result came from + /// \param[in] transport The transport interface that will be written to + /// \param[in] systemAddress The player this result will be sent to + virtual void ReturnResult(const char *command,TransportInterface *transport, const SystemAddress &systemAddress); + +protected: + DataStructures::OrderedList commandList; +}; + +} // namespace RakNet + +#endif + diff --git a/src/raknet/ConnectionGraph2.cpp b/src/raknet/ConnectionGraph2.cpp new file mode 100755 index 0000000..683c28f --- /dev/null +++ b/src/raknet/ConnectionGraph2.cpp @@ -0,0 +1,299 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConnectionGraph2==1 + +#include "ConnectionGraph2.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(ConnectionGraph2,ConnectionGraph2); + +int RakNet::ConnectionGraph2::RemoteSystemComp( const RakNetGUID &key, RemoteSystem * const &data ) +{ + if (key < data->guid) + return -1; + if (key > data->guid) + return 1; + return 0; +} + +int RakNet::ConnectionGraph2::SystemAddressAndGuidComp( const SystemAddressAndGuid &key, const SystemAddressAndGuid &data ) +{ + if (key.guiddata.guid) + return 1; + return 0; +} +ConnectionGraph2::ConnectionGraph2() +{ + autoProcessNewConnections=true; +} +ConnectionGraph2::~ConnectionGraph2() +{ + +} +bool ConnectionGraph2::GetConnectionListForRemoteSystem(RakNetGUID remoteSystemGuid, SystemAddress *saOut, RakNetGUID *guidOut, unsigned int *outLength) +{ + if ((saOut==0 && guidOut==0) || outLength==0 || *outLength==0 || remoteSystemGuid==UNASSIGNED_RAKNET_GUID) + { + *outLength=0; + return false; + } + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(remoteSystemGuid, &objectExists); + if (objectExists==false) + { + *outLength=0; + return false; + } + + unsigned int idx2; + if (remoteSystems[idx]->remoteConnections.Size() < *outLength) + *outLength=remoteSystems[idx]->remoteConnections.Size(); + for (idx2=0; idx2 < *outLength; idx2++) + { + if (guidOut) + guidOut[idx2]=remoteSystems[idx]->remoteConnections[idx2].guid; + if (saOut) + saOut[idx2]=remoteSystems[idx]->remoteConnections[idx2].systemAddress; + } + return true; +} +bool ConnectionGraph2::ConnectionExists(RakNetGUID g1, RakNetGUID g2) +{ + if (g1==g2) + return false; + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(g1, &objectExists); + if (objectExists==false) + { + return false; + } + SystemAddressAndGuid sag; + sag.guid=g2; + return remoteSystems[idx]->remoteConnections.HasData(sag); +} +uint16_t ConnectionGraph2::GetPingBetweenSystems(RakNetGUID g1, RakNetGUID g2) const +{ + if (g1==g2) + return 0; + + if (g1==rakPeerInterface->GetMyGUID()) + return (uint16_t) rakPeerInterface->GetAveragePing(g2); + if (g2==rakPeerInterface->GetMyGUID()) + return (uint16_t) rakPeerInterface->GetAveragePing(g1); + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(g1, &objectExists); + if (objectExists==false) + { + return (uint16_t) -1; + } + + SystemAddressAndGuid sag; + sag.guid=g2; + unsigned int idx2 = remoteSystems[idx]->remoteConnections.GetIndexFromKey(sag, &objectExists); + if (objectExists==false) + { + return (uint16_t) -1; + } + return remoteSystems[idx]->remoteConnections[idx2].sendersPingToThatSystem; +} + +/// Returns the system with the lowest total ping among all its connections. This can be used as the 'best host' for a peer to peer session +RakNetGUID ConnectionGraph2::GetLowestAveragePingSystem(void) const +{ + float lowestPing=-1.0; + unsigned int lowestPingIdx=(unsigned int) -1; + float thisAvePing=0.0f; + unsigned int idx, idx2; + int ap, count=0; + + for (idx=0; idxGetAveragePing(remoteSystems[idx]->guid); + if (ap!=-1) + { + thisAvePing+=(float) ap; + count++; + } + } + + if (count>0) + { + lowestPing=thisAvePing/count; + } + + for (idx=0; idxremoteConnections.Size(); idx2++) + { + ap=remoteSystem->remoteConnections[idx2].sendersPingToThatSystem; + if (ap!=-1) + { + thisAvePing+=(float) ap; + count++; + } + } + + if (count>0 && (lowestPing==-1.0f || thisAvePing/count < lowestPing)) + { + lowestPing=thisAvePing/count; + lowestPingIdx=idx; + } + } + + if (lowestPingIdx==(unsigned int) -1) + return rakPeerInterface->GetMyGUID(); + return remoteSystems[lowestPingIdx]->guid; +} + +void ConnectionGraph2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + // Send notice to all existing connections + RakNet::BitStream bs; + if (lostConnectionReason==LCR_CONNECTION_LOST) + bs.Write((MessageID)ID_REMOTE_CONNECTION_LOST); + else + bs.Write((MessageID)ID_REMOTE_DISCONNECTION_NOTIFICATION); + bs.Write(systemAddress); + bs.Write(rakNetGUID); + SendUnified(&bs,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,true); + + bool objectExists; + unsigned int idx = remoteSystems.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { + RakNet::OP_DELETE(remoteSystems[idx],_FILE_AND_LINE_); + remoteSystems.RemoveAtIndex(idx); + } +} +void ConnectionGraph2::SetAutoProcessNewConnections(bool b) +{ + autoProcessNewConnections=b; +} +bool ConnectionGraph2::GetAutoProcessNewConnections(void) const +{ + return autoProcessNewConnections; +} +void ConnectionGraph2::AddParticipant(const SystemAddress &systemAddress, RakNetGUID rakNetGUID) +{ + // Relay the new connection to other systems. + RakNet::BitStream bs; + bs.Write((MessageID)ID_REMOTE_NEW_INCOMING_CONNECTION); + bs.Write((uint32_t)1); + bs.Write(systemAddress); + bs.Write(rakNetGUID); + bs.WriteCasted(rakPeerInterface->GetAveragePing(rakNetGUID)); + SendUnified(&bs,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,true); + + // Send everyone to the new guy + DataStructures::List addresses; + DataStructures::List guids; + rakPeerInterface->GetSystemList(addresses, guids); + bs.Reset(); + bs.Write((MessageID)ID_REMOTE_NEW_INCOMING_CONNECTION); + BitSize_t writeOffset = bs.GetWriteOffset(); + bs.Write((uint32_t) addresses.Size()); + + unsigned int i; + uint32_t count=0; + for (i=0; i < addresses.Size(); i++) + { + if (addresses[i]==systemAddress) + continue; + + bs.Write(addresses[i]); + bs.Write(guids[i]); + bs.WriteCasted(rakPeerInterface->GetAveragePing(guids[i])); + count++; + } + + if (count>0) + { + BitSize_t writeOffset2 = bs.GetWriteOffset(); + bs.SetWriteOffset(writeOffset); + bs.Write(count); + bs.SetWriteOffset(writeOffset2); + SendUnified(&bs,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,false); + } + + bool objectExists; + unsigned int ii = remoteSystems.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists==false) + { + RemoteSystem* remoteSystem = RakNet::OP_NEW(_FILE_AND_LINE_); + remoteSystem->guid=rakNetGUID; + remoteSystems.InsertAtIndex(remoteSystem,ii,_FILE_AND_LINE_); + } +} +void ConnectionGraph2::GetParticipantList(DataStructures::OrderedList &participantList) +{ + participantList.Clear(true, _FILE_AND_LINE_); + unsigned int i; + for (i=0; i < remoteSystems.Size(); i++) + participantList.InsertAtEnd(remoteSystems[i]->guid, _FILE_AND_LINE_); +} +void ConnectionGraph2::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) isIncoming; + if (autoProcessNewConnections) + AddParticipant(systemAddress, rakNetGUID); +} +PluginReceiveResult ConnectionGraph2::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_REMOTE_CONNECTION_LOST || packet->data[0]==ID_REMOTE_DISCONNECTION_NOTIFICATION) + { + bool objectExists; + unsigned idx = remoteSystems.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists) + { + RakNet::BitStream bs(packet->data,packet->length,false); + bs.IgnoreBytes(1); + SystemAddressAndGuid saag; + bs.Read(saag.systemAddress); + bs.Read(saag.guid); + unsigned long idx2 = remoteSystems[idx]->remoteConnections.GetIndexFromKey(saag, &objectExists); + if (objectExists) + remoteSystems[idx]->remoteConnections.RemoveAtIndex(idx2); + } + } + else if (packet->data[0]==ID_REMOTE_NEW_INCOMING_CONNECTION) + { + bool objectExists; + unsigned idx = remoteSystems.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists) + { + uint32_t numAddresses; + RakNet::BitStream bs(packet->data,packet->length,false); + bs.IgnoreBytes(1); + bs.Read(numAddresses); + for (unsigned int idx2=0; idx2 < numAddresses; idx2++) + { + SystemAddressAndGuid saag; + bs.Read(saag.systemAddress); + bs.Read(saag.guid); + bs.Read(saag.sendersPingToThatSystem); + bool objectExists; + unsigned int ii = remoteSystems[idx]->remoteConnections.GetIndexFromKey(saag, &objectExists); + if (objectExists==false) + remoteSystems[idx]->remoteConnections.InsertAtIndex(saag,ii,_FILE_AND_LINE_); + } + } + } + + return RR_CONTINUE_PROCESSING; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ConnectionGraph2.h b/src/raknet/ConnectionGraph2.h new file mode 100755 index 0000000..b639879 --- /dev/null +++ b/src/raknet/ConnectionGraph2.h @@ -0,0 +1,118 @@ +/// \file ConnectionGraph2.h +/// \brief Connection graph plugin, version 2. Tells new systems about existing and new connections +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConnectionGraph2==1 + +#ifndef __CONNECTION_GRAPH_2_H +#define __CONNECTION_GRAPH_2_H + +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "DS_List.h" +#include "DS_WeightedGraph.h" +#include "GetTime.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief A one hop connection graph. +/// \details Sends ID_REMOTE_CONNECTION_LOST, ID_REMOTE_DISCONNECTION_NOTIFICATION, ID_REMOTE_NEW_INCOMING_CONNECTION
    +/// All identifiers are followed by SystemAddress, then RakNetGUID +/// Also stores the list for you, which you can access with GetConnectionListForRemoteSystem +/// \ingroup CONNECTION_GRAPH_GROUP +class RAK_DLL_EXPORT ConnectionGraph2 : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(ConnectionGraph2) + + ConnectionGraph2(); + ~ConnectionGraph2(); + + /// \brief Given a remote system identified by RakNetGUID, return the list of SystemAddresses and RakNetGUIDs they are connected to + /// \param[in] remoteSystemGuid Which system we are referring to. This only works for remote systems, not ourselves. + /// \param[out] saOut A preallocated array to hold the output list of SystemAddress. Can be 0 if you don't care. + /// \param[out] guidOut A preallocated array to hold the output list of RakNetGUID. Can be 0 if you don't care. + /// \param[in,out] outLength On input, the size of \a saOut and \a guidOut. On output, modified to reflect the number of elements actually written + /// \return True if \a remoteSystemGuid was found. Otherwise false, and \a saOut, \a guidOut remain unchanged. \a outLength will be set to 0. + bool GetConnectionListForRemoteSystem(RakNetGUID remoteSystemGuid, SystemAddress *saOut, RakNetGUID *guidOut, unsigned int *outLength); + + /// Returns if g1 is connected to g2 + bool ConnectionExists(RakNetGUID g1, RakNetGUID g2); + + /// Returns the average ping between two systems in the connection graph. Returns -1 if no connection exists between those systems + uint16_t GetPingBetweenSystems(RakNetGUID g1, RakNetGUID g2) const; + + /// Returns the system with the lowest average ping among all its connections. + /// If you need one system in the peer to peer group to relay data, have the FullyConnectedMesh2 host call this function after host migration, and use that system + RakNetGUID GetLowestAveragePingSystem(void) const; + + /// \brief If called with false, then new connections are only added to the connection graph when you call ProcessNewConnection(); + /// \details This is useful if you want to perform validation before connecting a system to a mesh, or if you want a submesh (for example a server cloud) + /// \param[in] b True to automatically call ProcessNewConnection() on any new connection, false to not do so. Defaults to true. + void SetAutoProcessNewConnections(bool b); + + /// \brief Returns value passed to SetAutoProcessNewConnections() + /// \return Value passed to SetAutoProcessNewConnections(), or the default of true if it was never called + bool GetAutoProcessNewConnections(void) const; + + /// \brief If you call SetAutoProcessNewConnections(false);, then you will need to manually call ProcessNewConnection() on new connections + /// \details On ID_NEW_INCOMING_CONNECTION or ID_CONNECTION_REQUEST_ACCEPTED, adds that system to the graph + /// Do not call ProcessNewConnection() manually otherwise + /// \param[in] The packet->SystemAddress member + /// \param[in] The packet->guid member + void AddParticipant(const SystemAddress &systemAddress, RakNetGUID rakNetGUID); + + /// Get the participants added with AddParticipant() + /// \param[out] participantList Participants added with AddParticipant(); + void GetParticipantList(DataStructures::OrderedList &participantList); + + /// \internal + struct SystemAddressAndGuid + { + SystemAddress systemAddress; + RakNetGUID guid; + uint16_t sendersPingToThatSystem; + }; + /// \internal + static int SystemAddressAndGuidComp( const SystemAddressAndGuid &key, const SystemAddressAndGuid &data ); + + /// \internal + struct RemoteSystem + { + DataStructures::OrderedList remoteConnections; + RakNetGUID guid; + }; + /// \internal + static int RemoteSystemComp( const RakNetGUID &key, RemoteSystem * const &data ); + +protected: + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + + // List of systems I am connected to, which in turn stores which systems they are connected to + DataStructures::OrderedList remoteSystems; + + bool autoProcessNewConnections; + +}; + +} // namespace RakNet + +#endif // #ifndef __CONNECTION_GRAPH_2_H + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ConsoleServer.cpp b/src/raknet/ConsoleServer.cpp new file mode 100755 index 0000000..1b20dfe --- /dev/null +++ b/src/raknet/ConsoleServer.cpp @@ -0,0 +1,311 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConsoleServer==1 + +#include "ConsoleServer.h" +#include "TransportInterface.h" +#include "CommandParserInterface.h" +#include +#include + +#define COMMAND_DELINATOR ' ' +#define COMMAND_DELINATOR_TOGGLE '"' + +#include "LinuxStrings.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(ConsoleServer,ConsoleServer); + +ConsoleServer::ConsoleServer() +{ + transport=0; + password[0]=0; + prompt=0; +} +ConsoleServer::~ConsoleServer() +{ + if (prompt) + rakFree_Ex(prompt, _FILE_AND_LINE_); +} +void ConsoleServer::SetTransportProvider(TransportInterface *transportInterface, unsigned short port) +{ + // Replace the current TransportInterface, stopping the old one, if present, and starting the new one. + if (transportInterface) + { + if (transport) + { + RemoveCommandParser(transport->GetCommandParser()); + transport->Stop(); + } + transport=transportInterface; + transport->Start(port, true); + + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + commandParserList[i]->OnTransportChange(transport); + + // The transport itself might have a command parser - for example password for the RakNet transport + AddCommandParser(transport->GetCommandParser()); + } +} +void ConsoleServer::AddCommandParser(CommandParserInterface *commandParserInterface) +{ + if (commandParserInterface==0) + return; + + // Non-duplicate insertion + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + { + if (commandParserList[i]==commandParserInterface) + return; + + if (_stricmp(commandParserList[i]->GetName(), commandParserInterface->GetName())==0) + { + // Naming conflict between two command parsers + RakAssert(0); + return; + } + } + + commandParserList.Insert(commandParserInterface, _FILE_AND_LINE_); + if (transport) + commandParserInterface->OnTransportChange(transport); +} +void ConsoleServer::RemoveCommandParser(CommandParserInterface *commandParserInterface) +{ + if (commandParserInterface==0) + return; + + // Overwrite the element we are removing from the back of the list and delete the back of the list + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + { + if (commandParserList[i]==commandParserInterface) + { + commandParserList[i]=commandParserList[commandParserList.Size()-1]; + commandParserList.RemoveFromEnd(); + return; + } + } +} +void ConsoleServer::Update(void) +{ + unsigned i; + char *parameterList[20]; // Up to 20 parameters + unsigned numParameters; + RakNet::SystemAddress newOrLostConnectionId; + RakNet::Packet *p; + RakNet::RegisteredCommand rc; + + p = transport->Receive(); + newOrLostConnectionId=transport->HasNewIncomingConnection(); + + if (newOrLostConnectionId!=UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < commandParserList.Size(); i++) + { + commandParserList[i]->OnNewIncomingConnection(newOrLostConnectionId, transport); + } + + transport->Send(newOrLostConnectionId, "Connected to remote command console.\r\nType 'help' for help.\r\n"); + ListParsers(newOrLostConnectionId); + ShowPrompt(newOrLostConnectionId); + } + + newOrLostConnectionId=transport->HasLostConnection(); + if (newOrLostConnectionId!=UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < commandParserList.Size(); i++) + commandParserList[i]->OnConnectionLost(newOrLostConnectionId, transport); + } + + while (p) + { + bool commandParsed=false; + char copy[REMOTE_MAX_TEXT_INPUT]; + memcpy(copy, p->data, p->length); + copy[p->length]=0; + RakNet::CommandParserInterface::ParseConsoleString((char*)p->data, COMMAND_DELINATOR, COMMAND_DELINATOR_TOGGLE, &numParameters, parameterList, 20); // Up to 20 parameters + if (numParameters==0) + { + transport->DeallocatePacket(p); + p = transport->Receive(); + continue; + } + if (_stricmp(*parameterList, "help")==0 && numParameters<=2) + { + // Find the parser specified and display help for it + if (numParameters==1) + { + transport->Send(p->systemAddress, "\r\nINSTRUCTIONS:\r\n"); + transport->Send(p->systemAddress, "Enter commands on your keyboard, using spaces to delineate parameters.\r\n"); + transport->Send(p->systemAddress, "You can use quotation marks to toggle space delineation.\r\n"); + transport->Send(p->systemAddress, "You can connect multiple times from the same computer.\r\n"); + transport->Send(p->systemAddress, "You can direct commands to a parser by prefixing the parser name or number.\r\n"); + transport->Send(p->systemAddress, "COMMANDS:\r\n"); + transport->Send(p->systemAddress, "help Show this display.\r\n"); + transport->Send(p->systemAddress, "help Show help on a particular parser.\r\n"); + transport->Send(p->systemAddress, "help Show help on a particular command.\r\n"); + transport->Send(p->systemAddress, "quit Disconnects from the server.\r\n"); + transport->Send(p->systemAddress, "[] [] Execute a command\r\n"); + transport->Send(p->systemAddress, "[] [] Execute a command\r\n"); + ListParsers(p->systemAddress); + //ShowPrompt(p->systemAddress); + } + else // numParameters == 2, including the help tag + { + for (i=0; i < commandParserList.Size(); i++) + { + if (_stricmp(parameterList[1], commandParserList[i]->GetName())==0) + { + commandParsed=true; + commandParserList[i]->SendHelp(transport, p->systemAddress); + transport->Send(p->systemAddress, "COMMAND LIST:\r\n"); + commandParserList[i]->SendCommandList(transport, p->systemAddress); + transport->Send(p->systemAddress, "\r\n"); + break; + } + } + + if (commandParsed==false) + { + // Try again, for all commands for all parsers. + RakNet::RegisteredCommand rc; + for (i=0; i < commandParserList.Size(); i++) + { + if (commandParserList[i]->GetRegisteredCommand(parameterList[1], &rc)) + { + if (rc.parameterCount==RakNet::CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS) + transport->Send(p->systemAddress, "(Variable parms): %s %s\r\n", rc.command, rc.commandHelp); + else + transport->Send(p->systemAddress, "(%i parms): %s %s\r\n", rc.parameterCount, rc.command, rc.commandHelp); + commandParsed=true; + break; + } + } + } + + if (commandParsed==false) + { + // Don't know what to do + transport->Send(p->systemAddress, "Unknown help topic: %s.\r\n", parameterList[1]); + } + //ShowPrompt(p->systemAddress); + } + } + else if (_stricmp(*parameterList, "quit")==0 && numParameters==1) + { + transport->Send(p->systemAddress, "Goodbye!\r\n"); + transport->CloseConnection(p->systemAddress); + } + else + { + bool tryAllParsers=true; + bool failed=false; + + if (numParameters >=2) // At minimum + { + unsigned commandParserIndex=(unsigned)-1; + // Prefixing with numbers directs to a particular parser + if (**parameterList>='0' && **parameterList<='9') + { + commandParserIndex=atoi(*parameterList); // Use specified parser unless it's an invalid number + commandParserIndex--; // Subtract 1 since we displayed numbers starting at index+1 + if (commandParserIndex >= commandParserList.Size()) + { + transport->Send(p->systemAddress, "Invalid index.\r\n"); + failed=true; + } + } + else + { + // // Prefixing with the name of a command parser directs to that parser. See if the first word matches a parser + for (i=0; i < commandParserList.Size(); i++) + { + if (_stricmp(parameterList[0], commandParserList[i]->GetName())==0) + { + commandParserIndex=i; // Matches parser at index i + break; + } + } + } + + if (failed==false) + { + // -1 means undirected, so otherwise this is directed to a target + if (commandParserIndex!=(unsigned)-1) + { + // Only this parser should use this command + tryAllParsers=false; + if (commandParserList[commandParserIndex]->GetRegisteredCommand(parameterList[1], &rc)) + { + commandParsed=true; + if (rc.parameterCount==CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS || rc.parameterCount==numParameters-2) + commandParserList[commandParserIndex]->OnCommand(rc.command, numParameters-2, parameterList+2, transport, p->systemAddress, copy); + else + transport->Send(p->systemAddress, "Invalid parameter count.\r\n(%i parms): %s %s\r\n", rc.parameterCount, rc.command, rc.commandHelp); + } + } + } + } + + if (failed == false && tryAllParsers) + { + for (i=0; i < commandParserList.Size(); i++) + { + // Undirected command. Try all the parsers to see if they understand the command + // Pass the 1nd element as the command, and the remainder as the parameter list + if (commandParserList[i]->GetRegisteredCommand(parameterList[0], &rc)) + { + commandParsed=true; + + if (rc.parameterCount==CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS || rc.parameterCount==numParameters-1) + commandParserList[i]->OnCommand(rc.command, numParameters-1, parameterList+1, transport, p->systemAddress, copy); + else + transport->Send(p->systemAddress, "Invalid parameter count.\r\n(%i parms): %s %s\r\n", rc.parameterCount, rc.command, rc.commandHelp); + } + } + } + if (commandParsed==false && commandParserList.Size() > 0) + { + transport->Send(p->systemAddress, "Unknown command: Type 'help' for help.\r\n"); + } + + } + + ShowPrompt(p->systemAddress); + + transport->DeallocatePacket(p); + p = transport->Receive(); + } +} + +void ConsoleServer::ListParsers(SystemAddress systemAddress) +{ + transport->Send(systemAddress,"INSTALLED PARSERS:\r\n"); + unsigned i; + for (i=0; i < commandParserList.Size(); i++) + { + transport->Send(systemAddress, "%i. %s\r\n", i+1, commandParserList[i]->GetName()); + } +} +void ConsoleServer::ShowPrompt(SystemAddress systemAddress) +{ + transport->Send(systemAddress, prompt); +} +void ConsoleServer::SetPrompt(const char *_prompt) +{ + if (prompt) + rakFree_Ex(prompt,_FILE_AND_LINE_); + if (_prompt && _prompt[0]) + { + size_t len = strlen(_prompt); + prompt = (char*) rakMalloc_Ex(len+1,_FILE_AND_LINE_); + strcpy(prompt,_prompt); + } + else + prompt=0; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ConsoleServer.h b/src/raknet/ConsoleServer.h new file mode 100755 index 0000000..d65fc96 --- /dev/null +++ b/src/raknet/ConsoleServer.h @@ -0,0 +1,77 @@ +/// \file ConsoleServer.h +/// \brief Contains ConsoleServer , used to plugin to your game to accept remote console-based connections +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ConsoleServer==1 + +#ifndef __CONSOLE_SERVER_H +#define __CONSOLE_SERVER_H + +#include "RakMemoryOverride.h" +#include "DS_List.h" +#include "RakNetTypes.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class TransportInterface; +class CommandParserInterface; + + +/// \brief The main entry point for the server portion of your remote console application support. +/// \details ConsoleServer takes one TransportInterface and one or more CommandParserInterface (s) +/// The TransportInterface will be used to send data between the server and the client. The connecting client must support the +/// protocol used by your derivation of TransportInterface . TelnetTransport and RakNetTransport are two such derivations . +/// When a command is sent by a remote console, it will be processed by your implementations of CommandParserInterface +class RAK_DLL_EXPORT ConsoleServer +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(ConsoleServer) + + ConsoleServer(); + ~ConsoleServer(); + + /// \brief Call this with a derivation of TransportInterface so that the console server can send and receive commands + /// \param[in] transportInterface Your interface to use. + /// \param[in] port The port to host on. Telnet uses port 23 by default. RakNet can use whatever you want. + void SetTransportProvider(TransportInterface *transportInterface, unsigned short port); + + /// \brief Add an implementation of CommandParserInterface to the list of command parsers. + /// \param[in] commandParserInterface The command parser referred to + void AddCommandParser(CommandParserInterface *commandParserInterface); + + /// \brief Remove an implementation of CommandParserInterface previously added with AddCommandParser(). + /// \param[in] commandParserInterface The command parser referred to + void RemoveCommandParser(CommandParserInterface *commandParserInterface); + + /// \brief Call update to read packet sent from your TransportInterface. + /// You should do this fairly frequently. + void Update(void); + + /// \brief Sets a prompt to show when waiting for user input. + /// \details Pass an empty string to clear the prompt + /// Defaults to no prompt + /// \param[in] _prompt Null-terminated string of the prompt to use. If you want a newline, be sure to use /r/n + void SetPrompt(const char *_prompt); + +protected: + void ListParsers(SystemAddress systemAddress); + void ShowPrompt(SystemAddress systemAddress); + TransportInterface *transport; + DataStructures::List commandParserList; + char* password[256]; + char *prompt; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/DS_BPlusTree.h b/src/raknet/DS_BPlusTree.h new file mode 100755 index 0000000..768bfd8 --- /dev/null +++ b/src/raknet/DS_BPlusTree.h @@ -0,0 +1,1146 @@ +/// \file DS_BPlusTree.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __B_PLUS_TREE_CPP +#define __B_PLUS_TREE_CPP + +#include "DS_MemoryPool.h" +#include "DS_Queue.h" +#include +#include "Export.h" + +// Java +// http://www.seanster.com/BplusTree/BplusTree.html + +// Overview +// http://babbage.clarku.edu/~achou/cs160/B+Trees/B+Trees.htm + +// Deletion +// http://dbpubs.stanford.edu:8090/pub/1995-19 + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// Used in the BPlusTree. Used for both leaf and index nodes. + /// Don't use a constructor or destructor, due to the memory pool I am using + template + struct RAK_DLL_EXPORT Page + { + // We use the same data structure for both leaf and index nodes. + // It uses a little more memory for index nodes but reduces + // memory fragmentation, allocations, and deallocations. + bool isLeaf; + + // Used for both leaf and index nodes. + // For a leaf it means the number of elements in data + // For an index it means the number of keys and is one less than the number of children pointers. + int size; + + // Used for both leaf and index nodes. + KeyType keys[order]; + + // Used only for leaf nodes. Data is the actual data, while next is the pointer to the next leaf (for B+) + DataType data[order]; + Page *next; + Page *previous; + + // Used only for index nodes. Pointers to the children of this node. + Page *children[order+1]; + }; + + /// A BPlus tree + /// Written with efficiency and speed in mind. + template + class RAK_DLL_EXPORT BPlusTree + { + public: + struct ReturnAction + { + KeyType key1; + KeyType key2; + enum + { + NO_ACTION, + REPLACE_KEY1_WITH_KEY2, + PUSH_KEY_TO_PARENT, + SET_BRANCH_KEY, + } action; // 0=none, 1=replace key1 with key2 + }; + + BPlusTree(); + ~BPlusTree(); + void SetPoolPageSize(int size); // Set the page size for the memory pool. Optionsl + bool Get(const KeyType key, DataType &out) const; + bool Delete(const KeyType key); + bool Delete(const KeyType key, DataType &out); + bool Insert(const KeyType key, const DataType &data); + void Clear(void); + unsigned Size(void) const; + bool IsEmpty(void) const; + Page *GetListHead(void) const; + DataType GetDataHead(void) const; + void PrintLeaves(void); + void ForEachLeaf(void (*func)(Page * leaf, int index)); + void ForEachData(void (*func)(DataType input, int index)); + void PrintGraph(void); + protected: + void ValidateTreeRecursive(Page *cur); + void DeleteFromPageAtIndex(const int index, Page *cur); + static void PrintLeaf(Page * leaf, int index); + void FreePages(void); + bool GetIndexOf(const KeyType key, Page *page, int *out) const; + void ShiftKeysLeft(Page *cur); + bool CanRotateLeft(Page *cur, int childIndex); + bool CanRotateRight(Page *cur, int childIndex); + void RotateRight(Page *cur, int childIndex, ReturnAction *returnAction); + void RotateLeft(Page *cur, int childIndex, ReturnAction *returnAction); + Page* InsertIntoNode(const KeyType key, const DataType &childData, int insertionIndex, Page *nodeData, Page *cur, ReturnAction* returnAction); + Page* InsertBranchDown(const KeyType key, const DataType &data,Page *cur, ReturnAction* returnAction, bool *success); + Page* GetLeafFromKey(const KeyType key) const; + bool FindDeleteRebalance(const KeyType key, Page *cur, bool *underflow, KeyType rightRootKey, ReturnAction *returnAction, DataType &out); + bool FixUnderflow(int branchIndex, Page *cur, KeyType rightRootKey, ReturnAction *returnAction); + void ShiftNodeLeft(Page *cur); + void ShiftNodeRight(Page *cur); + + MemoryPool > pagePool; + Page *root, *leftmostLeaf; + }; + + template + BPlusTree::BPlusTree () + { + RakAssert(order>1); + root=0; + leftmostLeaf=0; + } + template + BPlusTree::~BPlusTree () + { + Clear(); + } + template + void BPlusTree::SetPoolPageSize(int size) + { + pagePool.SetPageSize(size); + } + template + bool BPlusTree::Get(const KeyType key, DataType &out) const + { + if (root==0) + return false; + + Page* leaf = GetLeafFromKey(key); + int childIndex; + + if (GetIndexOf(key, leaf, &childIndex)) + { + out=leaf->data[childIndex]; + return true; + } + return false; + } + template + void BPlusTree::DeleteFromPageAtIndex(const int index, Page *cur) + { + int i; + for (i=index; i < cur->size-1; i++) + cur->keys[i]=cur->keys[i+1]; + if (cur->isLeaf) + { + for (i=index; i < cur->size-1; i++) + cur->data[i]=cur->data[i+1]; + } + else + { + for (i=index; i < cur->size-1; i++) + cur->children[i+1]=cur->children[i+2]; + } + cur->size--; + } + template + bool BPlusTree::Delete(const KeyType key) + { + DataType temp; + return Delete(key, temp); + } + template + bool BPlusTree::Delete(const KeyType key, DataType &out) + { + if (root==0) + return false; + + ReturnAction returnAction; + returnAction.action=ReturnAction::NO_ACTION; + int childIndex; + bool underflow=false; + if (root==leftmostLeaf) + { + if (GetIndexOf(key, root, &childIndex)==false) + return false; + out=root->data[childIndex]; + DeleteFromPageAtIndex(childIndex,root); + if (root->size==0) + { + pagePool.Release(root, _FILE_AND_LINE_); + root=0; + leftmostLeaf=0; + } + return true; + } + else if (FindDeleteRebalance(key, root, &underflow,root->keys[0], &returnAction, out)==false) + return false; + +// RakAssert(returnAction.action==ReturnAction::NO_ACTION); + + if (underflow && root->size==0) + { + // Move the root down. + Page *oldRoot=root; + root=root->children[0]; + pagePool.Release(oldRoot, _FILE_AND_LINE_); + // memset(oldRoot,0,sizeof(root)); + } + + return true; + } + template + bool BPlusTree::FindDeleteRebalance(const KeyType key, Page *cur, bool *underflow, KeyType rightRootKey, ReturnAction *returnAction, DataType &out) + { + // Get index of child to follow. + int branchIndex, childIndex; + if (GetIndexOf(key, cur, &childIndex)) + branchIndex=childIndex+1; + else + branchIndex=childIndex; + + // If child is not a leaf, call recursively + if (cur->children[branchIndex]->isLeaf==false) + { + if (branchIndexsize) + rightRootKey=cur->keys[branchIndex]; // Shift right to left + else + rightRootKey=cur->keys[branchIndex-1]; // Shift center to left + + if (FindDeleteRebalance(key, cur->children[branchIndex], underflow, rightRootKey, returnAction, out)==false) + return false; + + // Call again in case the root key changed + if (branchIndexsize) + rightRootKey=cur->keys[branchIndex]; // Shift right to left + else + rightRootKey=cur->keys[branchIndex-1]; // Shift center to left + + if (returnAction->action==ReturnAction::SET_BRANCH_KEY && branchIndex!=childIndex) + { + returnAction->action=ReturnAction::NO_ACTION; + cur->keys[childIndex]=returnAction->key1; + + if (branchIndexsize) + rightRootKey=cur->keys[branchIndex]; // Shift right to left + else + rightRootKey=cur->keys[branchIndex-1]; // Shift center to left + } + } + else + { + // If child is a leaf, get the index of the key. If the item is not found, cancel delete. + if (GetIndexOf(key, cur->children[branchIndex], &childIndex)==false) + return false; + + // Delete: + // Remove childIndex from the child at branchIndex + out=cur->children[branchIndex]->data[childIndex]; + DeleteFromPageAtIndex(childIndex, cur->children[branchIndex]); + + if (childIndex==0) + { + if (branchIndex>0) + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + + if (branchIndex==0) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=cur->children[0]->keys[0]; + } + } + + if (cur->children[branchIndex]->size < order/2) + *underflow=true; + else + *underflow=false; + } + + // Fix underflow: + if (*underflow) + { + *underflow=FixUnderflow(branchIndex, cur, rightRootKey, returnAction); + } + + return true; + } + template + bool BPlusTree::FixUnderflow(int branchIndex, Page *cur, KeyType rightRootKey, ReturnAction *returnAction) + { + // Borrow from a neighbor that has excess. + Page *source; + Page *dest; + + if (branchIndex>0 && cur->children[branchIndex-1]->size > order/2) + { + dest=cur->children[branchIndex]; + source=cur->children[branchIndex-1]; + + // Left has excess + ShiftNodeRight(dest); + if (dest->isLeaf) + { + dest->keys[0]=source->keys[source->size-1]; + dest->data[0]=source->data[source->size-1]; + } + else + { + dest->children[0]=source->children[source->size]; + dest->keys[0]=cur->keys[branchIndex-1]; + } + // Update the parent key for the child (middle) + cur->keys[branchIndex-1]=source->keys[source->size-1]; + source->size--; + + // if (branchIndex==0) + // { + // returnAction->action=ReturnAction::SET_BRANCH_KEY; + // returnAction->key1=dest->keys[0]; + // } + + // No underflow + return false; + } + else if (branchIndexsize && cur->children[branchIndex+1]->size > order/2) + { + dest=cur->children[branchIndex]; + source=cur->children[branchIndex+1]; + + // Right has excess + if (dest->isLeaf) + { + dest->keys[dest->size]=source->keys[0]; + dest->data[dest->size]=source->data[0]; + + // The first key in the leaf after shifting is the parent key for the right branch + cur->keys[branchIndex]=source->keys[1]; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (order<=3 && dest->size==0) + { + if (branchIndex==0) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=dest->keys[0]; + } + else + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + } + } + else + { + if (returnAction->action==ReturnAction::NO_ACTION) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=dest->keys[0]; + } + + dest->keys[dest->size]=rightRootKey; + dest->children[dest->size+1]=source->children[0]; + + // The shifted off key is the leftmost key for a node + cur->keys[branchIndex]=source->keys[0]; + } + + + dest->size++; + ShiftNodeLeft(source); + + //cur->keys[branchIndex]=source->keys[0]; + +// returnAction->action=ReturnAction::SET_BRANCH_KEY; +// returnAction->key1=dest->keys[dest->size-1]; + + // No underflow + return false; + } + else + { + int sourceIndex; + + // If no neighbors have excess, merge two branches. + // + // To merge two leaves, just copy the data and keys over. + // + // To merge two branches, copy the pointers and keys over, using rightRootKey as the key for the extra pointer + if (branchIndexsize) + { + // Merge right child to current child and delete right child. + dest=cur->children[branchIndex]; + source=cur->children[branchIndex+1]; + } + else + { + // Move current child to left and delete current child + dest=cur->children[branchIndex-1]; + source=cur->children[branchIndex]; + } + + // Merge + if (dest->isLeaf) + { + for (sourceIndex=0; sourceIndexsize; sourceIndex++) + { + dest->keys[dest->size]=source->keys[sourceIndex]; + dest->data[dest->size++]=source->data[sourceIndex]; + } + } + else + { + // We want the tree root key of the source, not the current. + dest->keys[dest->size]=rightRootKey; + dest->children[dest->size++ + 1]=source->children[0]; + for (sourceIndex=0; sourceIndexsize; sourceIndex++) + { + dest->keys[dest->size]=source->keys[sourceIndex]; + dest->children[dest->size++ + 1]=source->children[sourceIndex + 1]; + } + } + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (order<=3 && branchIndex>0 && cur->children[branchIndex]->isLeaf) // With order==2 it is possible to delete data[0], which is not possible with higher orders. + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + + if (branchIndexsize) + { + // Update the parent key, removing the source (right) + DeleteFromPageAtIndex(branchIndex, cur); + } + else + { + if (branchIndex>0) + { + // Update parent key, removing the source (current) + DeleteFromPageAtIndex(branchIndex-1, cur); + } + } + + if (branchIndex==0 && dest->isLeaf) + { + returnAction->action=ReturnAction::SET_BRANCH_KEY; + returnAction->key1=dest->keys[0]; + } + + if (source==leftmostLeaf) + leftmostLeaf=source->next; + + if (source->isLeaf) + { + if (source->previous) + source->previous->next=source->next; + if (source->next) + source->next->previous=source->previous; + } + + // Free the source node + pagePool.Release(source, _FILE_AND_LINE_); + // memset(source,0,sizeof(root)); + + // Return underflow or not of parent. + return cur->size < order/2; + } + } + template + void BPlusTree::ShiftNodeRight(Page *cur) + { + int i; + for (i=cur->size; i>0; i--) + cur->keys[i]=cur->keys[i-1]; + if (cur->isLeaf) + { + for (i=cur->size; i>0; i--) + cur->data[i]=cur->data[i-1]; + } + else + { + for (i=cur->size+1; i>0; i--) + cur->children[i]=cur->children[i-1]; + } + + cur->size++; + } + template + void BPlusTree::ShiftNodeLeft(Page *cur) + { + int i; + for (i=0; i < cur->size-1; i++) + cur->keys[i]=cur->keys[i+1]; + if (cur->isLeaf) + { + for (i=0; i < cur->size; i++) + cur->data[i]=cur->data[i+1]; + } + else + { + for (i=0; i < cur->size; i++) + cur->children[i]=cur->children[i+1]; + } + cur->size--; + } + template + Page* BPlusTree::InsertIntoNode(const KeyType key, const DataType &leafData, int insertionIndex, Page *nodeData, Page *cur, ReturnAction* returnAction) + { + int i; + if (cur->size < order) + { + for (i=cur->size; i > insertionIndex; i--) + cur->keys[i]=cur->keys[i-1]; + if (cur->isLeaf) + { + for (i=cur->size; i > insertionIndex; i--) + cur->data[i]=cur->data[i-1]; + } + else + { + for (i=cur->size+1; i > insertionIndex+1; i--) + cur->children[i]=cur->children[i-1]; + } + cur->keys[insertionIndex]=key; + if (cur->isLeaf) + cur->data[insertionIndex]=leafData; + else + cur->children[insertionIndex+1]=nodeData; + + cur->size++; + } + else + { + Page* newPage = pagePool.Allocate( _FILE_AND_LINE_ ); + newPage->isLeaf=cur->isLeaf; + if (cur->isLeaf) + { + newPage->next=cur->next; + if (cur->next) + cur->next->previous=newPage; + newPage->previous=cur; + cur->next=newPage; + } + + int destIndex, sourceIndex; + + if (insertionIndex>=(order+1)/2) + { + destIndex=0; + sourceIndex=order/2; + + for (; sourceIndex < insertionIndex; sourceIndex++, destIndex++) + { + newPage->keys[destIndex]=cur->keys[sourceIndex]; + } + newPage->keys[destIndex++]=key; + for (; sourceIndex < order; sourceIndex++, destIndex++) + { + newPage->keys[destIndex]=cur->keys[sourceIndex]; + } + + destIndex=0; + sourceIndex=order/2; + if (cur->isLeaf) + { + for (; sourceIndex < insertionIndex; sourceIndex++, destIndex++) + { + newPage->data[destIndex]=cur->data[sourceIndex]; + } + newPage->data[destIndex++]=leafData; + for (; sourceIndex < order; sourceIndex++, destIndex++) + { + newPage->data[destIndex]=cur->data[sourceIndex]; + } + } + else + { + + for (; sourceIndex < insertionIndex; sourceIndex++, destIndex++) + { + newPage->children[destIndex]=cur->children[sourceIndex+1]; + } + newPage->children[destIndex++]=nodeData; + + // sourceIndex+1 is sort of a hack but it works - because there is one extra child than keys + // skip past the last child for cur + for (; sourceIndex+1 < cur->size+1; sourceIndex++, destIndex++) + { + newPage->children[destIndex]=cur->children[sourceIndex+1]; + } + + // the first key is the middle key. Remove it from the page and push it to the parent + returnAction->action=ReturnAction::PUSH_KEY_TO_PARENT; + returnAction->key1=newPage->keys[0]; + for (int i=0; i < destIndex-1; i++) + newPage->keys[i]=newPage->keys[i+1]; + + } + cur->size=order/2; + } + else + { + destIndex=0; + sourceIndex=(order+1)/2-1; + for (; sourceIndex < order; sourceIndex++, destIndex++) + newPage->keys[destIndex]=cur->keys[sourceIndex]; + destIndex=0; + if (cur->isLeaf) + { + sourceIndex=(order+1)/2-1; + for (; sourceIndex < order; sourceIndex++, destIndex++) + newPage->data[destIndex]=cur->data[sourceIndex]; + } + else + { + sourceIndex=(order+1)/2; + for (; sourceIndex < order+1; sourceIndex++, destIndex++) + newPage->children[destIndex]=cur->children[sourceIndex]; + + // the first key is the middle key. Remove it from the page and push it to the parent + returnAction->action=ReturnAction::PUSH_KEY_TO_PARENT; + returnAction->key1=newPage->keys[0]; + for (int i=0; i < destIndex-1; i++) + newPage->keys[i]=newPage->keys[i+1]; + } + cur->size=(order+1)/2-1; + if (cur->size) + { + bool b = GetIndexOf(key, cur, &insertionIndex); + (void) b; + RakAssert(b==false); + } + else + insertionIndex=0; + InsertIntoNode(key, leafData, insertionIndex, nodeData, cur, returnAction); + } + + newPage->size=destIndex; + + return newPage; + } + + return 0; + } + + template + bool BPlusTree::CanRotateLeft(Page *cur, int childIndex) + { + return childIndex>0 && cur->children[childIndex-1]->size + void BPlusTree::RotateLeft(Page *cur, int childIndex, ReturnAction *returnAction) + { + Page *dest = cur->children[childIndex-1]; + Page *source = cur->children[childIndex]; + returnAction->key1=source->keys[0]; + dest->keys[dest->size]=source->keys[0]; + dest->data[dest->size]=source->data[0]; + dest->size++; + for (int i=0; i < source->size-1; i++) + { + source->keys[i]=source->keys[i+1]; + source->data[i]=source->data[i+1]; + } + source->size--; + cur->keys[childIndex-1]=source->keys[0]; + returnAction->key2=source->keys[0]; + } + + template + bool BPlusTree::CanRotateRight(Page *cur, int childIndex) + { + return childIndex < cur->size && cur->children[childIndex+1]->size + void BPlusTree::RotateRight(Page *cur, int childIndex, ReturnAction *returnAction) + { + Page *dest = cur->children[childIndex+1]; + Page *source = cur->children[childIndex]; + returnAction->key1=dest->keys[0]; + for (int i= dest->size; i > 0; i--) + { + dest->keys[i]=dest->keys[i-1]; + dest->data[i]=dest->data[i-1]; + } + dest->keys[0]=source->keys[source->size-1]; + dest->data[0]=source->data[source->size-1]; + dest->size++; + source->size--; + + cur->keys[childIndex]=dest->keys[0]; + returnAction->key2=dest->keys[0]; + } + template + Page* BPlusTree::GetLeafFromKey(const KeyType key) const + { + Page* cur = root; + int childIndex; + while (cur->isLeaf==false) + { + // When searching, if we match the exact key we go down the pointer after that index + if (GetIndexOf(key, cur, &childIndex)) + childIndex++; + cur = cur->children[childIndex]; + } + return cur; + } + + template + Page* BPlusTree::InsertBranchDown(const KeyType key, const DataType &data,Page *cur, ReturnAction *returnAction, bool *success) + { + int childIndex; + int branchIndex; + if (GetIndexOf(key, cur, &childIndex)) + branchIndex=childIndex+1; + else + branchIndex=childIndex; + Page* newPage; + if (cur->isLeaf==false) + { + if (cur->children[branchIndex]->isLeaf==true && cur->children[branchIndex]->size==order) + { + if (branchIndex==childIndex+1) + { + *success=false; + return 0; // Already exists + } + + if (CanRotateLeft(cur, branchIndex)) + { + returnAction->action=ReturnAction::REPLACE_KEY1_WITH_KEY2; + if (key > cur->children[branchIndex]->keys[0]) + { + RotateLeft(cur, branchIndex, returnAction); + + int insertionIndex; + GetIndexOf(key, cur->children[branchIndex], &insertionIndex); + InsertIntoNode(key, data, insertionIndex, 0, cur->children[branchIndex], 0); + } + else + { + // Move head element to left and replace it with key,data + Page* dest=cur->children[branchIndex-1]; + Page* source=cur->children[branchIndex]; + returnAction->key1=source->keys[0]; + returnAction->key2=key; + dest->keys[dest->size]=source->keys[0]; + dest->data[dest->size]=source->data[0]; + dest->size++; + source->keys[0]=key; + source->data[0]=data; + } + cur->keys[branchIndex-1]=cur->children[branchIndex]->keys[0]; + + return 0; + } + else if (CanRotateRight(cur, branchIndex)) + { + returnAction->action=ReturnAction::REPLACE_KEY1_WITH_KEY2; + + if (key < cur->children[branchIndex]->keys[cur->children[branchIndex]->size-1]) + { + RotateRight(cur, branchIndex, returnAction); + + int insertionIndex; + GetIndexOf(key, cur->children[branchIndex], &insertionIndex); + InsertIntoNode(key, data, insertionIndex, 0, cur->children[branchIndex], 0); + + } + else + { + // Insert to the head of the right leaf instead and change our key + returnAction->key1=cur->children[branchIndex+1]->keys[0]; + InsertIntoNode(key, data, 0, 0, cur->children[branchIndex+1], 0); + returnAction->key2=key; + } + cur->keys[branchIndex]=cur->children[branchIndex+1]->keys[0]; + return 0; + } + } + + newPage=InsertBranchDown(key,data,cur->children[branchIndex], returnAction, success); + if (returnAction->action==ReturnAction::REPLACE_KEY1_WITH_KEY2) + { + if (branchIndex>0 && cur->keys[branchIndex-1]==returnAction->key1) + cur->keys[branchIndex-1]=returnAction->key2; + } + if (newPage) + { + if (newPage->isLeaf==false) + { + RakAssert(returnAction->action==ReturnAction::PUSH_KEY_TO_PARENT); + newPage->size--; + return InsertIntoNode(returnAction->key1, data, branchIndex, newPage, cur, returnAction); + } + else + { + return InsertIntoNode(newPage->keys[0], data, branchIndex, newPage, cur, returnAction); + } + } + } + else + { + if (branchIndex==childIndex+1) + { + *success=false; + return 0; // Already exists + } + else + { + return InsertIntoNode(key, data, branchIndex, 0, cur, returnAction); + } + } + + return 0; + } + template + bool BPlusTree::Insert(const KeyType key, const DataType &data) + { + if (root==0) + { + // Allocate root and make root a leaf + root = pagePool.Allocate( _FILE_AND_LINE_ ); + root->isLeaf=true; + leftmostLeaf=root; + root->size=1; + root->keys[0]=key; + root->data[0]=data; + root->next=0; + root->previous=0; + } + else + { + bool success=true; + ReturnAction returnAction; + returnAction.action=ReturnAction::NO_ACTION; + Page* newPage = InsertBranchDown(key, data, root, &returnAction, &success); + if (success==false) + return false; + if (newPage) + { + KeyType newKey; + if (newPage->isLeaf==false) + { + // One key is pushed up through the stack. I store that at keys[0] but it has to be removed for the page to be correct + RakAssert(returnAction.action==ReturnAction::PUSH_KEY_TO_PARENT); + newKey=returnAction.key1; + newPage->size--; + } + else + newKey = newPage->keys[0]; + // propagate the root + Page* newRoot = pagePool.Allocate( _FILE_AND_LINE_ ); + newRoot->isLeaf=false; + newRoot->size=1; + newRoot->keys[0]=newKey; + newRoot->children[0]=root; + newRoot->children[1]=newPage; + root=newRoot; + } + } + + return true; + } + template + void BPlusTree::ShiftKeysLeft(Page *cur) + { + int i; + for (i=0; i < cur->size; i++) + cur->keys[i]=cur->keys[i+1]; + } + template + void BPlusTree::Clear(void) + { + if (root) + { + FreePages(); + leftmostLeaf=0; + root=0; + } + pagePool.Clear(_FILE_AND_LINE_); + } + template + unsigned BPlusTree::Size(void) const + { + int count=0; + DataStructures::Page *cur = GetListHead(); + while (cur) + { + count+=cur->size; + cur=cur->next; + } + return count; + } + template + bool BPlusTree::IsEmpty(void) const + { + return root==0; + } + template + bool BPlusTree::GetIndexOf(const KeyType key, Page *page, int *out) const + { + RakAssert(page->size>0); + int index, upperBound, lowerBound; + upperBound=page->size-1; + lowerBound=0; + index = page->size/2; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + if (key==page->keys[index]) + { + *out=index; + return true; + } + else if (keykeys[index]) + upperBound=index-1; + else + lowerBound=index+1; + + index=lowerBound+(upperBound-lowerBound)/2; + + if (lowerBound>upperBound) + { + *out=lowerBound; + return false; // No match + } + } + } + template + void BPlusTree::FreePages(void) + { + DataStructures::Queue *> queue; + DataStructures::Page *ptr; + int i; + queue.Push(root, _FILE_AND_LINE_ ); + while (queue.Size()) + { + ptr=queue.Pop(); + if (ptr->isLeaf==false) + { + for (i=0; i < ptr->size+1; i++) + queue.Push(ptr->children[i], _FILE_AND_LINE_ ); + } + pagePool.Release(ptr, _FILE_AND_LINE_); + // memset(ptr,0,sizeof(root)); + }; + } + template + Page *BPlusTree::GetListHead(void) const + { + return leftmostLeaf; + } + template + DataType BPlusTree::GetDataHead(void) const + { + return leftmostLeaf->data[0]; + } + template + void BPlusTree::ForEachLeaf(void (*func)(Page * leaf, int index)) + { + int count=0; + DataStructures::Page *cur = GetListHead(); + while (cur) + { + func(cur, count++); + cur=cur->next; + } + } + template + void BPlusTree::ForEachData(void (*func)(DataType input, int index)) + { + int count=0,i; + DataStructures::Page *cur = GetListHead(); + while (cur) + { + for (i=0; i < cur->size; i++) + func(cur->data[i], count++); + cur=cur->next; + } + } + template + void BPlusTree::PrintLeaf(Page * leaf, int index) + { + int i; + RAKNET_DEBUG_PRINTF("%i] SELF=%p\n", index+1, leaf); + for (i=0; i < leaf->size; i++) + RAKNET_DEBUG_PRINTF(" %i. %i\n", i+1, leaf->data[i]); + } + template + void BPlusTree::PrintLeaves(void) + { + ForEachLeaf(PrintLeaf); + } + + template + void BPlusTree::ValidateTreeRecursive(Page *cur) + { + RakAssert(cur==root || cur->size>=order/2); + + if (cur->children[0]->isLeaf) + { + RakAssert(cur->children[0]->keys[0] < cur->keys[0]); + for (int i=0; i < cur->size; i++) + { + RakAssert(cur->children[i+1]->keys[0]==cur->keys[i]); + } + } + else + { + for (int i=0; i < cur->size+1; i++) + ValidateTreeRecursive(cur->children[i]); + } + } + + template + void BPlusTree::PrintGraph(void) + { + DataStructures::Queue *> queue; + queue.Push(root,_FILE_AND_LINE_); + queue.Push(0,_FILE_AND_LINE_); + DataStructures::Page *ptr; + int i,j; + if (root) + { + RAKNET_DEBUG_PRINTF("%p(", root); + for (i=0; i < root->size; i++) + { + RAKNET_DEBUG_PRINTF("%i ", root->keys[i]); + } + RAKNET_DEBUG_PRINTF(") "); + RAKNET_DEBUG_PRINTF("\n"); + } + while (queue.Size()) + { + ptr=queue.Pop(); + if (ptr==0) + RAKNET_DEBUG_PRINTF("\n"); + else if (ptr->isLeaf==false) + { + for (i=0; i < ptr->size+1; i++) + { + RAKNET_DEBUG_PRINTF("%p(", ptr->children[i]); + //RAKNET_DEBUG_PRINTF("(", ptr->children[i]); + for (j=0; j < ptr->children[i]->size; j++) + RAKNET_DEBUG_PRINTF("%i ", ptr->children[i]->keys[j]); + RAKNET_DEBUG_PRINTF(") "); + queue.Push(ptr->children[i],_FILE_AND_LINE_); + } + queue.Push(0,_FILE_AND_LINE_); + RAKNET_DEBUG_PRINTF(" -- "); + } + } + RAKNET_DEBUG_PRINTF("\n"); + } +} +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + +// Code to test this hellish data structure. +/* +#include "DS_BPlusTree.h" +#include + +// Handle underflow on root. If there is only one item left then I can go downwards. +// Make sure I keep the leftmost pointer valid by traversing it +// When I free a leaf, be sure to adjust the pointers around it. + +#include "Rand.h" + +void main(void) +{ + DataStructures::BPlusTree btree; + DataStructures::List haveList, removedList; + int temp; + int i, j, index; + int testSize; + bool b; + + for (testSize=0; testSize < 514; testSize++) + { + RAKNET_DEBUG_PRINTF("TestSize=%i\n", testSize); + + for (i=0; i < testSize; i++) + haveList.Insert(i); + + for (i=0; i < testSize; i++) + { + index=i+randomMT()%(testSize-i); + temp=haveList[index]; + haveList[index]=haveList[i]; + haveList[i]=temp; + } + + for (i=0; i + * + * OR + * + * AVLBalancedBinarySearchTree + * + * Use the AVL balanced tree if you want the tree to be balanced after every deletion and addition. This avoids the potential + * worst case scenario where ordered input to a binary search tree gives linear search time results. It's not needed + * if input will be evenly distributed, in which case the search time is O (log n). The search time for the AVL + * balanced binary tree is O (log n) irregardless of input. + * + * Has the following member functions + * unsigned int Height() - Returns the height of the tree at the optional specified starting index. Default is the root + * add(element) - adds an element to the BinarySearchTree + * bool del(element) - deletes the node containing element if the element is in the tree as defined by a comparison with the == operator. Returns true on success, false if the element is not found + * bool IsInelement) - returns true if element is in the tree as defined by a comparison with the == operator. Otherwise returns false + * DisplayInorder(array) - Fills an array with an inorder search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * DisplayPreorder(array) - Fills an array with an preorder search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * DisplayPostorder(array) - Fills an array with an postorder search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * DisplayBreadthFirstSearch(array) - Fills an array with a breadth first search of the elements in the tree. USER IS REPONSIBLE FOR ALLOCATING THE ARRAY!. + * clear - Destroys the tree. Same as calling the destructor + * unsigned int Height() - Returns the height of the tree + * unsigned int size() - returns the size of the BinarySearchTree + * GetPointerToNode(element) - returns a pointer to the comparision element in the tree, allowing for direct modification when necessary with complex data types. + * Be warned, it is possible to corrupt the tree if the element used for comparisons is modified. Returns NULL if the item is not found + * + * + * EXAMPLE + * @code + * BinarySearchTree A; + * A.Add(10); + * A.Add(15); + * A.Add(5); + * int* array = RakNet::OP_NEW(A.Size(), _FILE_AND_LINE_ ); + * A.DisplayInorder(array); + * array[0]; // returns 5 + * array[1]; // returns 10 + * array[2]; // returns 15 + * @endcode + * compress - reallocates memory to fit the number of elements. Best used when the number of elements decreases + * + * clear - empties the BinarySearchTree and returns storage + * The assignment and copy constructors are defined + * + * \note The template type must have the copy constructor and + * assignment operator defined and must work with >, <, and == All + * elements in the tree MUST be distinct The assignment operator is + * defined between BinarySearchTree and AVLBalancedBinarySearchTree + * as long as they are of the same template type. However, passing a + * BinarySearchTree to an AVLBalancedBinarySearchTree will lose its + * structure unless it happened to be AVL balanced to begin with + * Requires queue_linked_list.cpp for the breadth first search used + * in the copy constructor, overloaded assignment operator, and + * display_breadth_first_search. + * + * + */ + template + class RAK_DLL_EXPORT BinarySearchTree + { + + public: + + struct node + { + BinarySearchTreeType* item; + node* left; + node* right; + }; + + BinarySearchTree(); + virtual ~BinarySearchTree(); + BinarySearchTree( const BinarySearchTree& original_type ); + BinarySearchTree& operator= ( const BinarySearchTree& original_copy ); + unsigned int Size( void ); + void Clear( const char *file, unsigned int line ); + unsigned int Height( node* starting_node = 0 ); + node* Add ( const BinarySearchTreeType& input, const char *file, unsigned int line ); + node* Del( const BinarySearchTreeType& input, const char *file, unsigned int line ); + bool IsIn( const BinarySearchTreeType& input ); + void DisplayInorder( BinarySearchTreeType* return_array ); + void DisplayPreorder( BinarySearchTreeType* return_array ); + void DisplayPostorder( BinarySearchTreeType* return_array ); + void DisplayBreadthFirstSearch( BinarySearchTreeType* return_array ); + BinarySearchTreeType*& GetPointerToNode( const BinarySearchTreeType& element ); + + protected: + + node* root; + + enum Direction_Types + { + NOT_FOUND, LEFT, RIGHT, ROOT + } direction; + unsigned int HeightRecursive( node* current ); + unsigned int BinarySearchTree_size; + node*& Find( const BinarySearchTreeType& element, node** parent ); + node*& FindParent( const BinarySearchTreeType& element ); + void DisplayPostorderRecursive( node* current, BinarySearchTreeType* return_array, unsigned int& index ); + void FixTree( node* current ); + + }; + + /// An AVLBalancedBinarySearchTree is a binary tree that is always balanced + template + class RAK_DLL_EXPORT AVLBalancedBinarySearchTree : public BinarySearchTree + { + + public: + AVLBalancedBinarySearchTree() {} + virtual ~AVLBalancedBinarySearchTree(); + void Add ( const BinarySearchTreeType& input ); + void Del( const BinarySearchTreeType& input ); + BinarySearchTree& operator= ( BinarySearchTree& original_copy ) + { + return BinarySearchTree::operator= ( original_copy ); + } + + private: + void BalanceTree( typename BinarySearchTree::node* current, bool rotateOnce ); + void RotateRight( typename BinarySearchTree::node *C ); + void RotateLeft( typename BinarySearchTree::node* C ); + void DoubleRotateRight( typename BinarySearchTree::node *A ); + void DoubleRotateLeft( typename BinarySearchTree::node* A ); + bool RightHigher( typename BinarySearchTree::node* A ); + bool LeftHigher( typename BinarySearchTree::node* A ); + }; + + template + void AVLBalancedBinarySearchTree::BalanceTree( typename BinarySearchTree::node* current, bool rotateOnce ) + { + int left_height, right_height; + + while ( current ) + { + if ( current->left == 0 ) + left_height = 0; + else + left_height = Height( current->left ); + + if ( current->right == 0 ) + right_height = 0; + else + right_height = Height( current->right ); + + if ( right_height - left_height == 2 ) + { + if ( RightHigher( current->right ) ) + RotateLeft( current->right ); + else + DoubleRotateLeft( current ); + + if ( rotateOnce ) + break; + } + + else + if ( right_height - left_height == -2 ) + { + if ( LeftHigher( current->left ) ) + RotateRight( current->left ); + else + DoubleRotateRight( current ); + + if ( rotateOnce ) + break; + } + + if ( current == this->root ) + break; + + current = FindParent( *( current->item ) ); + + } + } + + template + void AVLBalancedBinarySearchTree::Add ( const BinarySearchTreeType& input ) + { + + typename BinarySearchTree::node * current = BinarySearchTree::Add ( input, _FILE_AND_LINE_ ); + BalanceTree( current, true ); + } + + template + void AVLBalancedBinarySearchTree::Del( const BinarySearchTreeType& input ) + { + typename BinarySearchTree::node * current = BinarySearchTree::Del( input, _FILE_AND_LINE_ ); + BalanceTree( current, false ); + + } + + template + bool AVLBalancedBinarySearchTree::RightHigher( typename BinarySearchTree::node *A ) + { + if ( A == 0 ) + return false; + + return Height( A->right ) > Height( A->left ); + } + + template + bool AVLBalancedBinarySearchTree::LeftHigher( typename BinarySearchTree::node *A ) + { + if ( A == 0 ) + return false; + + return Height( A->left ) > Height( A->right ); + } + + template + void AVLBalancedBinarySearchTree::RotateRight( typename BinarySearchTree::node *C ) + { + typename BinarySearchTree::node * A, *B, *D; + /* + RIGHT ROTATION + + A = parent(b) + b= parent(c) + c = node to rotate around + + A + | // Either direction + B + / \ + C + / \ + D + + TO + + A + | // Either Direction + C + / \ + B + / \ + D + + + + + */ + + B = FindParent( *( C->item ) ); + A = FindParent( *( B->item ) ); + D = C->right; + + if ( A ) + { + // Direction was set by the last find_parent call + + if ( this->direction == this->LEFT ) + A->left = C; + else + A->right = C; + } + + else + this->root = C; // If B has no parent parent then B must have been the root node + + B->left = D; + + C->right = B; + } + + template + void AVLBalancedBinarySearchTree::DoubleRotateRight( typename BinarySearchTree::node *A ) + { + // The left side of the left child must be higher for the tree to balance with a right rotation. If it isn't, rotate it left before the normal rotation so it is. + RotateLeft( A->left->right ); + RotateRight( A->left ); + } + + template + void AVLBalancedBinarySearchTree::RotateLeft( typename BinarySearchTree::node *C ) + { + typename BinarySearchTree::node * A, *B, *D; + /* + RIGHT ROTATION + + A = parent(b) + b= parent(c) + c = node to rotate around + + A + | // Either direction + B + / \ + C + / \ + D + + TO + + A + | // Either Direction + C + / \ + B + / \ + D + + + + + */ + + B = FindParent( *( C->item ) ); + A = FindParent( *( B->item ) ); + D = C->left; + + if ( A ) + { + // Direction was set by the last find_parent call + + if ( this->direction == this->LEFT ) + A->left = C; + else + A->right = C; + } + + else + this->root = C; // If B has no parent parent then B must have been the root node + + B->right = D; + + C->left = B; + } + + template + void AVLBalancedBinarySearchTree::DoubleRotateLeft( typename BinarySearchTree::node *A ) + { + // The left side of the right child must be higher for the tree to balance with a left rotation. If it isn't, rotate it right before the normal rotation so it is. + RotateRight( A->right->left ); + RotateLeft( A->right ); + } + + template + AVLBalancedBinarySearchTree::~AVLBalancedBinarySearchTree() + { + this->Clear(_FILE_AND_LINE_); + } + + template + unsigned int BinarySearchTree::Size( void ) + { + return BinarySearchTree_size; + } + + template + unsigned int BinarySearchTree::Height( typename BinarySearchTree::node* starting_node ) + { + if ( BinarySearchTree_size == 0 || starting_node == 0 ) + return 0; + else + return HeightRecursive( starting_node ); + } + + // Recursively return the height of a binary tree + template + unsigned int BinarySearchTree::HeightRecursive( typename BinarySearchTree::node* current ) + { + unsigned int left_height = 0, right_height = 0; + + if ( ( current->left == 0 ) && ( current->right == 0 ) ) + return 1; // Leaf + + if ( current->left != 0 ) + left_height = 1 + HeightRecursive( current->left ); + + if ( current->right != 0 ) + right_height = 1 + HeightRecursive( current->right ); + + if ( left_height > right_height ) + return left_height; + else + return right_height; + } + + template + BinarySearchTree::BinarySearchTree() + { + BinarySearchTree_size = 0; + root = 0; + } + + template + BinarySearchTree::~BinarySearchTree() + { + this->Clear(_FILE_AND_LINE_); + } + + template + BinarySearchTreeType*& BinarySearchTree::GetPointerToNode( const BinarySearchTreeType& element ) + { + static typename BinarySearchTree::node * tempnode; + static BinarySearchTreeType* dummyptr = 0; + tempnode = Find ( element, &tempnode ); + + if ( this->direction == this->NOT_FOUND ) + return dummyptr; + + return tempnode->item; + } + + template + typename BinarySearchTree::node*& BinarySearchTree::Find( const BinarySearchTreeType& element, typename BinarySearchTree::node** parent ) + { + static typename BinarySearchTree::node * current; + + current = this->root; + *parent = 0; + this->direction = this->ROOT; + + if ( BinarySearchTree_size == 0 ) + { + this->direction = this->NOT_FOUND; + return current = 0; + } + + // Check if the item is at the root + if ( element == *( current->item ) ) + { + this->direction = this->ROOT; + return current; + } + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) + { + // Move pointer + + if ( element < *( current->item ) ) + { + *parent = current; + this->direction = this->LEFT; + current = current->left; + } + + else + if ( element > *( current->item ) ) + { + *parent = current; + this->direction = this->RIGHT; + current = current->right; + } + + if ( current == 0 ) + break; + + // Check if new position holds the item + if ( element == *( current->item ) ) + { + return current; + } + } + + + this->direction = this->NOT_FOUND; + return current = 0; + } + + template + typename BinarySearchTree::node*& BinarySearchTree::FindParent( const BinarySearchTreeType& element ) + { + static typename BinarySearchTree::node * parent; + Find ( element, &parent ); + return parent; + } + + // Performs a series of value swaps starting with current to fix the tree if needed + template + void BinarySearchTree::FixTree( typename BinarySearchTree::node* current ) + { + BinarySearchTreeType temp; + + while ( 1 ) + { + if ( ( ( current->left ) != 0 ) && ( *( current->item ) < *( current->left->item ) ) ) + { + // Swap the current value with the one to the left + temp = *( current->left->item ); + *( current->left->item ) = *( current->item ); + *( current->item ) = temp; + current = current->left; + } + + else + if ( ( ( current->right ) != 0 ) && ( *( current->item ) > *( current->right->item ) ) ) + { + // Swap the current value with the one to the right + temp = *( current->right->item ); + *( current->right->item ) = *( current->item ); + *( current->item ) = temp; + current = current->right; + } + + else + break; // current points to the right place so quit + } + } + + template + typename BinarySearchTree::node* BinarySearchTree::Del( const BinarySearchTreeType& input, const char *file, unsigned int line ) + { + typename BinarySearchTree::node * node_to_delete, *current, *parent; + + if ( BinarySearchTree_size == 0 ) + return 0; + + if ( BinarySearchTree_size == 1 ) + { + Clear(file, line); + return 0; + } + + node_to_delete = Find( input, &parent ); + + if ( direction == NOT_FOUND ) + return 0; // Couldn't find the element + + current = node_to_delete; + + // Replace the deleted node with the appropriate value + if ( ( current->right ) == 0 && ( current->left ) == 0 ) // Leaf node, just remove it + { + + if ( parent ) + { + if ( direction == LEFT ) + parent->left = 0; + else + parent->right = 0; + } + + RakNet::OP_DELETE(node_to_delete->item, file, line); + RakNet::OP_DELETE(node_to_delete, file, line); + BinarySearchTree_size--; + return parent; + } + else + if ( ( current->right ) != 0 && ( current->left ) == 0 ) // Node has only one child, delete it and cause the parent to point to that child + { + + if ( parent ) + { + if ( direction == RIGHT ) + parent->right = current->right; + else + parent->left = current->right; + } + + else + root = current->right; // Without a parent this must be the root node + + RakNet::OP_DELETE(node_to_delete->item, file, line); + + RakNet::OP_DELETE(node_to_delete, file, line); + + BinarySearchTree_size--; + + return parent; + } + else + if ( ( current->right ) == 0 && ( current->left ) != 0 ) // Node has only one child, delete it and cause the parent to point to that child + { + + if ( parent ) + { + if ( direction == RIGHT ) + parent->right = current->left; + else + parent->left = current->left; + } + + else + root = current->left; // Without a parent this must be the root node + + RakNet::OP_DELETE(node_to_delete->item, file, line); + + RakNet::OP_DELETE(node_to_delete, file, line); + + BinarySearchTree_size--; + + return parent; + } + else // Go right, then as left as far as you can + { + parent = current; + direction = RIGHT; + current = current->right; // Must have a right branch because the if statements above indicated that it has 2 branches + + while ( current->left ) + { + direction = LEFT; + parent = current; + current = current->left; + } + + // Replace the value held by the node to RakNet::OP_DELETE(with the value pointed to by current, _FILE_AND_LINE_); + *( node_to_delete->item ) = *( current->item ); + + // Delete current. + // If it is a leaf node just delete it + if ( current->right == 0 ) + { + if ( direction == RIGHT ) + parent->right = 0; + else + parent->left = 0; + + RakNet::OP_DELETE(current->item, file, line); + + RakNet::OP_DELETE(current, file, line); + + BinarySearchTree_size--; + + return parent; + } + + else + { + // Skip this node and make its parent point to its right branch + + if ( direction == RIGHT ) + parent->right = current->right; + else + parent->left = current->right; + + RakNet::OP_DELETE(current->item, file, line); + + RakNet::OP_DELETE(current, file, line); + + BinarySearchTree_size--; + + return parent; + } + } + } + + template + typename BinarySearchTree::node* BinarySearchTree::Add ( const BinarySearchTreeType& input, const char *file, unsigned int line ) + { + typename BinarySearchTree::node * current; + + // Add the new element to the tree according to the following alogrithm: + // 1. If the current node is empty add the new leaf + // 2. If the element is less than the current node then go down the left branch + // 3. If the element is greater than the current node then go down the right branch + + if ( BinarySearchTree_size == 0 ) + { + BinarySearchTree_size = 1; + root = RakNet::OP_NEW( file, line ); + root->item = RakNet::OP_NEW( file, line ); + *( root->item ) = input; + root->left = 0; + root->right = 0; + + return root; + } + + else + { + // start at the root + current = root; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) // This loop traverses the tree to find a spot for insertion + { + + if ( input < *( current->item ) ) + { + if ( current->left == 0 ) + { + current->left = RakNet::OP_NEW( file, line ); + current->left->item = RakNet::OP_NEW( file, line ); + current = current->left; + current->left = 0; + current->right = 0; + *( current->item ) = input; + + BinarySearchTree_size++; + return current; + } + + else + { + current = current->left; + } + } + + else + if ( input > *( current->item ) ) + { + if ( current->right == 0 ) + { + current->right = RakNet::OP_NEW( file, line ); + current->right->item = RakNet::OP_NEW( file, line ); + current = current->right; + current->left = 0; + current->right = 0; + *( current->item ) = input; + + BinarySearchTree_size++; + return current; + } + + else + { + current = current->right; + } + } + + else + return 0; // ((input == current->item) == true) which is not allowed since the tree only takes discrete values. Do nothing + } + } + } + + template + bool BinarySearchTree::IsIn( const BinarySearchTreeType& input ) + { + typename BinarySearchTree::node * parent; + find( input, &parent ); + + if ( direction != NOT_FOUND ) + return true; + else + return false; + } + + + template + void BinarySearchTree::DisplayInorder( BinarySearchTreeType* return_array ) + { + typename BinarySearchTree::node * current, *parent; + bool just_printed = false; + + unsigned int index = 0; + + current = root; + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + + direction = ROOT; // Reset the direction + + while ( index != BinarySearchTree_size ) + { + // direction is set by the find function and holds the direction of the parent to the last node visited. It is used to prevent revisiting nodes + + if ( ( current->left != 0 ) && ( direction != LEFT ) && ( direction != RIGHT ) ) + { + // Go left if the following 2 conditions are true + // I can go left + // I did not just move up from a right child + // I did not just move up from a left child + + current = current->left; + direction = ROOT; // Reset the direction + } + + else + if ( ( direction != RIGHT ) && ( just_printed == false ) ) + { + // Otherwise, print the current node if the following 3 conditions are true: + // I did not just move up from a right child + // I did not print this ndoe last cycle + + return_array[ index++ ] = *( current->item ); + just_printed = true; + } + + else + if ( ( current->right != 0 ) && ( direction != RIGHT ) ) + { + // Otherwise, go right if the following 2 conditions are true + // I did not just move up from a right child + // I can go right + + current = current->right; + direction = ROOT; // Reset the direction + just_printed = false; + } + + else + { + // Otherwise I've done everything I can. Move up the tree one node + parent = FindParent( *( current->item ) ); + current = parent; + just_printed = false; + } + } + } + + template + void BinarySearchTree::DisplayPreorder( BinarySearchTreeType* return_array ) + { + typename BinarySearchTree::node * current, *parent; + + unsigned int index = 0; + + current = root; + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + + direction = ROOT; // Reset the direction + return_array[ index++ ] = *( current->item ); + + while ( index != BinarySearchTree_size ) + { + // direction is set by the find function and holds the direction of the parent to the last node visited. It is used to prevent revisiting nodes + + if ( ( current->left != 0 ) && ( direction != LEFT ) && ( direction != RIGHT ) ) + { + + current = current->left; + direction = ROOT; + + // Everytime you move a node print it + return_array[ index++ ] = *( current->item ); + } + + else + if ( ( current->right != 0 ) && ( direction != RIGHT ) ) + { + current = current->right; + direction = ROOT; + + // Everytime you move a node print it + return_array[ index++ ] = *( current->item ); + } + + else + { + // Otherwise I've done everything I can. Move up the tree one node + parent = FindParent( *( current->item ) ); + current = parent; + } + } + } + + template + inline void BinarySearchTree::DisplayPostorder( BinarySearchTreeType* return_array ) + { + unsigned int index = 0; + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + DisplayPostorderRecursive( root, return_array, index ); + } + + + // Recursively do a postorder traversal + template + void BinarySearchTree::DisplayPostorderRecursive( typename BinarySearchTree::node* current, BinarySearchTreeType* return_array, unsigned int& index ) + { + if ( current->left != 0 ) + DisplayPostorderRecursive( current->left, return_array, index ); + + if ( current->right != 0 ) + DisplayPostorderRecursive( current->right, return_array, index ); + + return_array[ index++ ] = *( current->item ); + + } + + + template + void BinarySearchTree::DisplayBreadthFirstSearch( BinarySearchTreeType* return_array ) + { + typename BinarySearchTree::node * current; + unsigned int index = 0; + + // Display the tree using a breadth first search + // Put the children of the current node into the queue + // Pop the queue, put its children into the queue, repeat until queue is empty + + if ( BinarySearchTree_size == 0 ) + return ; // Do nothing for an empty tree + + else + if ( BinarySearchTree_size == 1 ) + { + return_array[ 0 ] = *( root->item ); + return ; + } + + else + { + DataStructures::QueueLinkedList tree_queue; + + // Add the root of the tree I am copying from + tree_queue.Push( root ); + + do + { + current = tree_queue.Pop(); + return_array[ index++ ] = *( current->item ); + + // Add the child or children of the tree I am copying from to the queue + + if ( current->left != 0 ) + tree_queue.Push( current->left ); + + if ( current->right != 0 ) + tree_queue.Push( current->right ); + + } + + while ( tree_queue.Size() > 0 ); + } + } + + + template + BinarySearchTree::BinarySearchTree( const BinarySearchTree& original_copy ) + { + typename BinarySearchTree::node * current; + // Copy the tree using a breadth first search + // Put the children of the current node into the queue + // Pop the queue, put its children into the queue, repeat until queue is empty + + // This is a copy of the constructor. A bug in Visual C++ made it so if I just put the constructor call here the variable assignments were ignored. + BinarySearchTree_size = 0; + root = 0; + + if ( original_copy.BinarySearchTree_size == 0 ) + { + BinarySearchTree_size = 0; + } + + else + { + DataStructures::QueueLinkedList tree_queue; + + // Add the root of the tree I am copying from + tree_queue.Push( original_copy.root ); + + do + { + current = tree_queue.Pop(); + + Add ( *( current->item ), _FILE_AND_LINE_ ) + + ; + + // Add the child or children of the tree I am copying from to the queue + if ( current->left != 0 ) + tree_queue.Push( current->left ); + + if ( current->right != 0 ) + tree_queue.Push( current->right ); + + } + + while ( tree_queue.Size() > 0 ); + } + } + + template + BinarySearchTree& BinarySearchTree::operator= ( const BinarySearchTree& original_copy ) + { + typename BinarySearchTree::node * current; + + if ( ( &original_copy ) == this ) + return *this; + + Clear( _FILE_AND_LINE_ ); // Remove the current tree + + // This is a copy of the constructor. A bug in Visual C++ made it so if I just put the constructor call here the variable assignments were ignored. + BinarySearchTree_size = 0; + + root = 0; + + + // Copy the tree using a breadth first search + // Put the children of the current node into the queue + // Pop the queue, put its children into the queue, repeat until queue is empty + if ( original_copy.BinarySearchTree_size == 0 ) + { + BinarySearchTree_size = 0; + } + + else + { + DataStructures::QueueLinkedList tree_queue; + + // Add the root of the tree I am copying from + tree_queue.Push( original_copy.root ); + + do + { + current = tree_queue.Pop(); + + Add ( *( current->item ), _FILE_AND_LINE_ ) + + ; + + // Add the child or children of the tree I am copying from to the queue + if ( current->left != 0 ) + tree_queue.Push( current->left ); + + if ( current->right != 0 ) + tree_queue.Push( current->right ); + + } + + while ( tree_queue.Size() > 0 ); + } + + return *this; + } + + template + inline void BinarySearchTree::Clear ( const char *file, unsigned int line ) + { + typename BinarySearchTree::node * current, *parent; + + current = root; + + while ( BinarySearchTree_size > 0 ) + { + if ( BinarySearchTree_size == 1 ) + { + RakNet::OP_DELETE(root->item, file, line); + RakNet::OP_DELETE(root, file, line); + root = 0; + BinarySearchTree_size = 0; + } + + else + { + if ( current->left != 0 ) + { + current = current->left; + } + + else + if ( current->right != 0 ) + { + current = current->right; + } + + else // leaf + { + // Not root node so must have a parent + parent = FindParent( *( current->item ) ); + + if ( ( parent->left ) == current ) + parent->left = 0; + else + parent->right = 0; + + RakNet::OP_DELETE(current->item, file, line); + + RakNet::OP_DELETE(current, file, line); + + current = parent; + + BinarySearchTree_size--; + } + } + } + } + +} // End namespace + +#endif + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/src/raknet/DS_BytePool.cpp b/src/raknet/DS_BytePool.cpp new file mode 100755 index 0000000..823461d --- /dev/null +++ b/src/raknet/DS_BytePool.cpp @@ -0,0 +1,149 @@ +#include "DS_BytePool.h" +#include "RakAssert.h" +#ifndef __APPLE__ +// Use stdlib and not malloc for compatibility +#include +#endif + +using namespace DataStructures; + +BytePool::BytePool() +{ + pool128.SetPageSize(8192*4); + pool512.SetPageSize(8192*4); + pool2048.SetPageSize(8192*4); + pool8192.SetPageSize(8192*4); +} +BytePool::~BytePool() +{ +} +void BytePool::SetPageSize(int size) +{ + pool128.SetPageSize(size); + pool512.SetPageSize(size); + pool2048.SetPageSize(size); + pool8192.SetPageSize(size); +} +unsigned char *BytePool::Allocate(int bytesWanted, const char *file, unsigned int line) +{ +#ifdef _DISABLE_BYTE_POOL + return rakMalloc_Ex(bytesWanted, _FILE_AND_LINE_); +#endif + unsigned char *out; + if (bytesWanted <= 127) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Lock(); + #endif + out = (unsigned char*) pool128.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Unlock(); + #endif + out[0]=0; + return ((unsigned char*) out)+1; + } + if (bytesWanted <= 511) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Lock(); + #endif + out = (unsigned char*) pool512.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Unlock(); + #endif + out[0]=1; + return ((unsigned char*) out)+1; + } + if (bytesWanted <= 2047) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Lock(); + #endif + out = (unsigned char*) pool2048.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Unlock(); + #endif + out[0]=2; + return ((unsigned char*) out)+1; + } + if (bytesWanted <= 8191) + { + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Lock(); + #endif + out = (unsigned char*) pool8192.Allocate(file, line); + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Unlock(); + #endif + out[0]=3; + return ((unsigned char*) out)+1; + } + + out = (unsigned char*) rakMalloc_Ex(bytesWanted+1, _FILE_AND_LINE_); + out[0]=(unsigned char)255; + return out+1; +} +void BytePool::Release(unsigned char *data, const char *file, unsigned int line) +{ +#ifdef _DISABLE_BYTE_POOL + _rakFree_Ex(data, _FILE_AND_LINE_ ); +#endif + unsigned char *realData = data-1; + switch (realData[0]) + { + case 0: + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Lock(); + #endif + pool128.Release((unsigned char(*)[128]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex128.Unlock(); + #endif + break; + case 1: + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Lock(); + #endif + pool512.Release((unsigned char(*)[512]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex512.Unlock(); + #endif + break; + case 2: + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Lock(); + #endif + pool2048.Release((unsigned char(*)[2048]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex2048.Unlock(); + #endif + break; + case 3: + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Lock(); + #endif + pool8192.Release((unsigned char(*)[8192]) realData, file, line ); + #ifdef _THREADSAFE_BYTE_POOL + mutex8192.Unlock(); + #endif + break; + case 255: + rakFree_Ex(realData, file, line ); + break; + default: + RakAssert(0); + break; + } +} +void BytePool::Clear(const char *file, unsigned int line) +{ + (void) file; + (void) line; + +#ifdef _THREADSAFE_BYTE_POOL + pool128.Clear(file, line); + pool512.Clear(file, line); + pool2048.Clear(file, line); + pool8192.Clear(file, line); +#endif +} diff --git a/src/raknet/DS_BytePool.h b/src/raknet/DS_BytePool.h new file mode 100755 index 0000000..bdb8301 --- /dev/null +++ b/src/raknet/DS_BytePool.h @@ -0,0 +1,46 @@ +/// \file DS_BytePool.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __BYTE_POOL_H +#define __BYTE_POOL_H + +#include "RakMemoryOverride.h" +#include "DS_MemoryPool.h" +#include "Export.h" +#include "SimpleMutex.h" +#include "RakAssert.h" + +// #define _DISABLE_BYTE_POOL +// #define _THREADSAFE_BYTE_POOL + +namespace DataStructures +{ + // Allocate some number of bytes from pools. Uses the heap if necessary. + class RAK_DLL_EXPORT BytePool + { + public: + BytePool(); + ~BytePool(); + // Should be at least 8 times bigger than 8192 + void SetPageSize(int size); + unsigned char* Allocate(int bytesWanted, const char *file, unsigned int line); + void Release(unsigned char *data, const char *file, unsigned int line); + void Clear(const char *file, unsigned int line); + protected: + MemoryPool pool128; + MemoryPool pool512; + MemoryPool pool2048; + MemoryPool pool8192; +#ifdef _THREADSAFE_BYTE_POOL + SimpleMutex mutex128; + SimpleMutex mutex512; + SimpleMutex mutex2048; + SimpleMutex mutex8192; +#endif + }; +} + +#endif diff --git a/src/raknet/DS_ByteQueue.cpp b/src/raknet/DS_ByteQueue.cpp new file mode 100755 index 0000000..5e0ffd8 --- /dev/null +++ b/src/raknet/DS_ByteQueue.cpp @@ -0,0 +1,127 @@ +#include "DS_ByteQueue.h" +#include // Memmove +#include // realloc +#include + + +using namespace DataStructures; + +ByteQueue::ByteQueue() +{ + readOffset=writeOffset=lengthAllocated=0; + data=0; +} +ByteQueue::~ByteQueue() +{ + Clear(_FILE_AND_LINE_); + + +} +void ByteQueue::WriteBytes(const char *in, unsigned length, const char *file, unsigned int line) +{ + unsigned bytesWritten; + bytesWritten=GetBytesWritten(); + if (lengthAllocated==0 || length > lengthAllocated-bytesWritten-1) + { + unsigned oldLengthAllocated=lengthAllocated; + // Always need to waste 1 byte for the math to work, else writeoffset==readoffset + unsigned newAmountToAllocate=length+oldLengthAllocated+1; + if (newAmountToAllocate<256) + newAmountToAllocate=256; + lengthAllocated=lengthAllocated + newAmountToAllocate; + data=(char*)rakRealloc_Ex(data, lengthAllocated, file, line); + if (writeOffset < readOffset) + { + if (writeOffset <= newAmountToAllocate) + { + memcpy(data + oldLengthAllocated, data, writeOffset); + writeOffset=readOffset+bytesWritten; + } + else + { + memcpy(data + oldLengthAllocated, data, newAmountToAllocate); + memmove(data, data+newAmountToAllocate, writeOffset-newAmountToAllocate); + writeOffset-=newAmountToAllocate; + } + } + } + + if (length <= lengthAllocated-writeOffset) + memcpy(data+writeOffset, in, length); + else + { + // Wrap + memcpy(data+writeOffset, in, lengthAllocated-writeOffset); + memcpy(data, in+(lengthAllocated-writeOffset), length-(lengthAllocated-writeOffset)); + } + writeOffset=(writeOffset+length) % lengthAllocated; +} +bool ByteQueue::ReadBytes(char *out, unsigned maxLengthToRead, bool peek) +{ + unsigned bytesWritten = GetBytesWritten(); + unsigned bytesToRead = bytesWritten < maxLengthToRead ? bytesWritten : maxLengthToRead; + if (bytesToRead==0) + return false; + if (writeOffset>=readOffset) + { + memcpy(out, data+readOffset, bytesToRead); + } + else + { + unsigned availableUntilWrap = lengthAllocated-readOffset; + if (bytesToRead <= availableUntilWrap) + { + memcpy(out, data+readOffset, bytesToRead); + } + else + { + memcpy(out, data+readOffset, availableUntilWrap); + memcpy(out+availableUntilWrap, data, bytesToRead-availableUntilWrap); + } + } + + if (peek==false) + IncrementReadOffset(bytesToRead); + + return true; +} +char* ByteQueue::PeekContiguousBytes(unsigned int *outLength) const +{ + if (writeOffset>=readOffset) + *outLength=writeOffset-readOffset; + else + *outLength=lengthAllocated-readOffset; + return data+readOffset; +} +void ByteQueue::Clear(const char *file, unsigned int line) +{ + if (lengthAllocated) + rakFree_Ex(data, file, line ); + readOffset=writeOffset=lengthAllocated=0; + data=0; +} +unsigned ByteQueue::GetBytesWritten(void) const +{ + if (writeOffset>=readOffset) + return writeOffset-readOffset; + else + return writeOffset+(lengthAllocated-readOffset); +} +void ByteQueue::IncrementReadOffset(unsigned length) +{ + readOffset=(readOffset+length) % lengthAllocated; +} +void ByteQueue::DecrementReadOffset(unsigned length) +{ + if (length>readOffset) + readOffset=lengthAllocated-(length-readOffset); + else + readOffset-=length; +} +void ByteQueue::Print(void) +{ + unsigned i; + for (i=readOffset; i!=writeOffset; i++) + RAKNET_DEBUG_PRINTF("%i ", data[i]); + RAKNET_DEBUG_PRINTF("\n"); +} diff --git a/src/raknet/DS_ByteQueue.h b/src/raknet/DS_ByteQueue.h new file mode 100755 index 0000000..e6a0e31 --- /dev/null +++ b/src/raknet/DS_ByteQueue.h @@ -0,0 +1,40 @@ +/// \file DS_ByteQueue.h +/// \internal +/// \brief Byte queue +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __BYTE_QUEUE_H +#define __BYTE_QUEUE_H + +#include "RakMemoryOverride.h" +#include "Export.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + class ByteQueue + { + public: + ByteQueue(); + ~ByteQueue(); + void WriteBytes(const char *in, unsigned length, const char *file, unsigned int line); + bool ReadBytes(char *out, unsigned maxLengthToRead, bool peek); + unsigned GetBytesWritten(void) const; + char* PeekContiguousBytes(unsigned int *outLength) const; + void IncrementReadOffset(unsigned length); + void DecrementReadOffset(unsigned length); + void Clear(const char *file, unsigned int line); + void Print(void); + + protected: + char *data; + unsigned readOffset, writeOffset, lengthAllocated; + }; +} + +#endif diff --git a/src/raknet/DS_Hash.h b/src/raknet/DS_Hash.h new file mode 100755 index 0000000..39848d3 --- /dev/null +++ b/src/raknet/DS_Hash.h @@ -0,0 +1,344 @@ +/// \internal +/// \brief Hashing container +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HASH_H +#define __HASH_H + +#include "RakAssert.h" +#include // memmove +#include "Export.h" +#include "RakMemoryOverride.h" +#include "RakString.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + struct HashIndex + { + unsigned int primaryIndex; + unsigned int secondaryIndex; + bool IsInvalid(void) const {return primaryIndex==(unsigned int) -1;} + void SetInvalid(void) {primaryIndex=(unsigned int) -1; secondaryIndex=(unsigned int) -1;} + }; + + /// \brief Using a string as a identifier for a node, store an allocated pointer to that node + template + class RAK_DLL_EXPORT Hash + { + public: + /// Default constructor + Hash(); + + // Destructor + ~Hash(); + + void Push(key_type key, const data_type &input, const char *file, unsigned int line ); + data_type* Peek(key_type key ); + bool Pop(data_type& out, key_type key, const char *file, unsigned int line ); + bool RemoveAtIndex(HashIndex index, const char *file, unsigned int line ); + bool Remove(key_type key, const char *file, unsigned int line ); + HashIndex GetIndexOf(key_type key); + bool HasData(key_type key); + data_type& ItemAtIndex(const HashIndex &index); + key_type KeyAtIndex(const HashIndex &index); + void GetAsList(DataStructures::List &itemList,DataStructures::List &keyList,const char *file, unsigned int line) const; + unsigned int Size(void) const; + + /// \brief Clear the list + void Clear( const char *file, unsigned int line ); + + struct Node + { + Node(key_type strIn, const data_type &_data) {string=strIn; data=_data;} + key_type string; + data_type data; + // Next in the list for this key + Node *next; + }; + + protected: + void ClearIndex(unsigned int index,const char *file, unsigned int line); + Node **nodeList; + unsigned int size; + }; + + template + Hash::Hash() + { + nodeList=0; + size=0; + } + + template + Hash::~Hash() + { + Clear(_FILE_AND_LINE_); + } + + template + void Hash::Push(key_type key, const data_type &input, const char *file, unsigned int line ) + { + unsigned long hashIndex = (*hashFunction)(key) % HASH_SIZE; + if (nodeList==0) + { + nodeList=RakNet::OP_NEW_ARRAY(HASH_SIZE,file,line); + memset(nodeList,0,sizeof(Node *)*HASH_SIZE); + } + + Node *newNode=RakNet::OP_NEW_2(file,line,key,input); + newNode->next=nodeList[hashIndex]; + nodeList[hashIndex]=newNode; + + size++; + } + + template + data_type* Hash::Peek(key_type key ) + { + unsigned long hashIndex = (*hashFunction)(key) % HASH_SIZE; + Node *node = nodeList[hashIndex]; + while (node!=0) + { + if (node->string==key) + return &node->data; + node=node->next; + } + return 0; + } + + template + bool Hash::Pop(data_type& out, key_type key, const char *file, unsigned int line ) + { + unsigned long hashIndex = (*hashFunction)(key) % HASH_SIZE; + Node *node = nodeList[hashIndex]; + if (node==0) + return false; + if (node->next==0) + { + // Only one item. + if (node->string==key) + { + // Delete last item + out=node->data; + ClearIndex(hashIndex,_FILE_AND_LINE_); + return true; + } + else + { + // Single item doesn't match + return false; + } + } + else if (node->string==key) + { + // First item does match, but more than one item + out=node->data; + nodeList[hashIndex]=node->next; + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + + Node *last=node; + node=node->next; + + while (node!=0) + { + // First item does not match, but subsequent item might + if (node->string==key) + { + out=node->data; + // Skip over subsequent item + last->next=node->next; + // Delete existing item + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + last=node; + node=node->next; + } + return false; + } + + template + bool Hash::RemoveAtIndex(HashIndex index, const char *file, unsigned int line ) + { + if (index.IsInvalid()) + return false; + + Node *node = nodeList[index.primaryIndex]; + if (node==0) + return false; + if (node->next==0) + { + // Delete last item + ClearIndex(index.primaryIndex,file,line); + return true; + } + else if (index.secondaryIndex==0) + { + // First item does match, but more than one item + nodeList[index.primaryIndex]=node->next; + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + + Node *last=node; + node=node->next; + --index.secondaryIndex; + + while (index.secondaryIndex!=0) + { + last=node; + node=node->next; + --index.secondaryIndex; + } + + // Skip over subsequent item + last->next=node->next; + // Delete existing item + RakNet::OP_DELETE(node,file,line); + size--; + return true; + } + + template + bool Hash::Remove(key_type key, const char *file, unsigned int line ) + { + return RemoveAtIndex(GetIndexOf(key),file,line); + } + + template + HashIndex Hash::GetIndexOf(key_type key) + { + if (nodeList==0) + { + HashIndex temp; + temp.SetInvalid(); + return temp; + } + HashIndex idx; + idx.primaryIndex=(*hashFunction)(key) % HASH_SIZE; + Node *node = nodeList[idx.primaryIndex]; + if (node==0) + { + idx.SetInvalid(); + return idx; + } + idx.secondaryIndex=0; + while (node!=0) + { + if (node->string==key) + { + return idx; + } + node=node->next; + idx.secondaryIndex++; + } + + idx.SetInvalid(); + return idx; + } + + template + bool Hash::HasData(key_type key) + { + return GetIndexOf(key).IsInvalid()==false; + } + + template + data_type& Hash::ItemAtIndex(const HashIndex &index) + { + Node *node = nodeList[index.primaryIndex]; + RakAssert(node); + unsigned int i; + for (i=0; i < index.secondaryIndex; i++) + { + node=node->next; + RakAssert(node); + } + return node->data; + } + + template + key_type Hash::KeyAtIndex(const HashIndex &index) + { + Node *node = nodeList[index.primaryIndex]; + RakAssert(node); + unsigned int i; + for (i=0; i < index.secondaryIndex; i++) + { + node=node->next; + RakAssert(node); + } + return node->string; + } + + template + void Hash::Clear(const char *file, unsigned int line) + { + if (nodeList) + { + unsigned int i; + for (i=0; i < HASH_SIZE; i++) + ClearIndex(i,file,line); + RakNet::OP_DELETE_ARRAY(nodeList,file,line); + nodeList=0; + size=0; + } + } + + template + void Hash::ClearIndex(unsigned int index,const char *file, unsigned int line) + { + Node *node = nodeList[index]; + Node *next; + while (node) + { + next=node->next; + RakNet::OP_DELETE(node,file,line); + node=next; + size--; + } + nodeList[index]=0; + } + + template + void Hash::GetAsList(DataStructures::List &itemList,DataStructures::List &keyList,const char *file, unsigned int line) const + { + if (nodeList==0) + return; + itemList.Clear(false,_FILE_AND_LINE_); + keyList.Clear(false,_FILE_AND_LINE_); + + Node *node; + unsigned int i; + for (i=0; i < HASH_SIZE; i++) + { + if (nodeList[i]) + { + node=nodeList[i]; + while (node) + { + itemList.Push(node->data,file,line); + keyList.Push(node->string,file,line); + node=node->next; + } + } + } + } + template + unsigned int Hash::Size(void) const + { + return size; + } +} +#endif diff --git a/src/raknet/DS_Heap.h b/src/raknet/DS_Heap.h new file mode 100755 index 0000000..92bca66 --- /dev/null +++ b/src/raknet/DS_Heap.h @@ -0,0 +1,297 @@ +/// \file DS_Heap.h +/// \internal +/// \brief Heap (Also serves as a priority queue) +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAKNET_HEAP_H +#define __RAKNET_HEAP_H + +#include "RakMemoryOverride.h" +#include "DS_List.h" +#include "Export.h" +#include "RakAssert.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + class RAK_DLL_EXPORT Heap + { + public: + struct HeapNode + { + HeapNode() {} + HeapNode(const weight_type &w, const data_type &d) : weight(w), data(d) {} + weight_type weight; // I'm assuming key is a native numerical type - float or int + data_type data; + }; + + Heap(); + ~Heap(); + void Push(const weight_type &weight, const data_type &data, const char *file, unsigned int line); + /// Call before calling PushSeries, for a new series of items + void StartSeries(void) {optimizeNextSeriesPush=false;} + /// If you are going to push a list of items, where the weights of the items on the list are in order and follow the heap order, PushSeries is faster than Push() + void PushSeries(const weight_type &weight, const data_type &data, const char *file, unsigned int line); + data_type Pop(const unsigned startingIndex); + data_type Peek(const unsigned startingIndex=0) const; + weight_type PeekWeight(const unsigned startingIndex=0) const; + void Clear(bool doNotDeallocateSmallBlocks, const char *file, unsigned int line); + data_type& operator[] ( const unsigned int position ) const; + unsigned Size(void) const; + + protected: + unsigned LeftChild(const unsigned i) const; + unsigned RightChild(const unsigned i) const; + unsigned Parent(const unsigned i) const; + void Swap(const unsigned i, const unsigned j); + DataStructures::List heap; + bool optimizeNextSeriesPush; + }; + + template + Heap::Heap() + { + optimizeNextSeriesPush=false; + } + + template + Heap::~Heap() + { + //Clear(true, _FILE_AND_LINE_); + } + + template + void Heap::PushSeries(const weight_type &weight, const data_type &data, const char *file, unsigned int line) + { + if (optimizeNextSeriesPush==false) + { + // If the weight of what we are inserting is greater than / less than in order of the heap of every sibling and sibling of parent, then can optimize next push + unsigned currentIndex = heap.Size(); + unsigned parentIndex; + if (currentIndex>0) + { + for (parentIndex = Parent(currentIndex); parentIndex < currentIndex; parentIndex++) + { +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + if (isMaxHeap) + { + // Every child is less than its parent + if (weight>heap[parentIndex].weight) + { + // Can't optimize + Push(weight,data,file,line); + return; + } + } + else + { + // Every child is greater than than its parent + if (weight + void Heap::Push(const weight_type &weight, const data_type &data, const char *file, unsigned int line) + { + unsigned currentIndex = heap.Size(); + unsigned parentIndex; + heap.Insert(HeapNode(weight, data), file, line); + while (currentIndex!=0) + { + parentIndex = Parent(currentIndex); +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (isMaxHeap) + { + if (heap[parentIndex].weight < weight) + { + Swap(currentIndex, parentIndex); + currentIndex=parentIndex; + } + else + break; + } + else + { + if (heap[parentIndex].weight > weight) + { + Swap(currentIndex, parentIndex); + currentIndex=parentIndex; + } + else + break; + } + } + } + + template + data_type Heap::Pop(const unsigned startingIndex) + { + // While we have children, swap out with the larger of the two children. + + // This line will assert on an empty heap + data_type returnValue=heap[startingIndex].data; + + // Move the last element to the head, and re-heapify + heap[startingIndex]=heap[heap.Size()-1]; + + unsigned currentIndex,leftChild,rightChild; + weight_type currentWeight; + currentIndex=startingIndex; + currentWeight=heap[startingIndex].weight; + heap.RemoveFromEnd(); + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + leftChild=LeftChild(currentIndex); + rightChild=RightChild(currentIndex); + if (leftChild >= heap.Size()) + { + // Done + return returnValue; + } + if (rightChild >= heap.Size()) + { + // Only left node. + if ((isMaxHeap==true && currentWeight < heap[leftChild].weight) || + (isMaxHeap==false && currentWeight > heap[leftChild].weight)) + Swap(leftChild, currentIndex); + + return returnValue; + } + else + { + // Swap with the bigger/smaller of the two children and continue + if (isMaxHeap) + { + if (heap[leftChild].weight <= currentWeight && heap[rightChild].weight <= currentWeight) + return returnValue; + + if (heap[leftChild].weight > heap[rightChild].weight) + { + Swap(leftChild, currentIndex); + currentIndex=leftChild; + } + else + { + Swap(rightChild, currentIndex); + currentIndex=rightChild; + } + } + else + { + if (heap[leftChild].weight >= currentWeight && heap[rightChild].weight >= currentWeight) + return returnValue; + + if (heap[leftChild].weight < heap[rightChild].weight) + { + Swap(leftChild, currentIndex); + currentIndex=leftChild; + } + else + { + Swap(rightChild, currentIndex); + currentIndex=rightChild; + } + } + } + } + } + + template + inline data_type Heap::Peek(const unsigned startingIndex) const + { + return heap[startingIndex].data; + } + + template + inline weight_type Heap::PeekWeight(const unsigned startingIndex) const + { + return heap[startingIndex].weight; + } + + template + void Heap::Clear(bool doNotDeallocateSmallBlocks, const char *file, unsigned int line) + { + heap.Clear(doNotDeallocateSmallBlocks, file, line); + } + + template + inline data_type& Heap::operator[] ( const unsigned int position ) const + { + return heap[position].data; + } + template + unsigned Heap::Size(void) const + { + return heap.Size(); + } + + template + inline unsigned Heap::LeftChild(const unsigned i) const + { + return i*2+1; + } + + template + inline unsigned Heap::RightChild(const unsigned i) const + { + return i*2+2; + } + + template + inline unsigned Heap::Parent(const unsigned i) const + { +#ifdef _DEBUG + RakAssert(i!=0); +#endif + return (i-1)/2; + } + + template + void Heap::Swap(const unsigned i, const unsigned j) + { + HeapNode temp; + temp=heap[i]; + heap[i]=heap[j]; + heap[j]=temp; + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/src/raknet/DS_HuffmanEncodingTree.cpp b/src/raknet/DS_HuffmanEncodingTree.cpp new file mode 100755 index 0000000..3b03f40 --- /dev/null +++ b/src/raknet/DS_HuffmanEncodingTree.cpp @@ -0,0 +1,299 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "DS_HuffmanEncodingTree.h" +#include "DS_Queue.h" +#include "BitStream.h" +#include "RakAssert.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +HuffmanEncodingTree::HuffmanEncodingTree() +{ + root = 0; +} + +HuffmanEncodingTree::~HuffmanEncodingTree() +{ + FreeMemory(); +} + +void HuffmanEncodingTree::FreeMemory( void ) +{ + if ( root == 0 ) + return ; + + // Use an in-order traversal to delete the tree + DataStructures::Queue nodeQueue; + + HuffmanEncodingTreeNode *node; + + nodeQueue.Push( root, _FILE_AND_LINE_ ); + + while ( nodeQueue.Size() > 0 ) + { + node = nodeQueue.Pop(); + + if ( node->left ) + nodeQueue.Push( node->left, _FILE_AND_LINE_ ); + + if ( node->right ) + nodeQueue.Push( node->right, _FILE_AND_LINE_ ); + + RakNet::OP_DELETE(node, _FILE_AND_LINE_); + } + + // Delete the encoding table + for ( int i = 0; i < 256; i++ ) + rakFree_Ex(encodingTable[ i ].encoding, _FILE_AND_LINE_ ); + + root = 0; +} + + +////#include + +// Given a frequency table of 256 elements, all with a frequency of 1 or more, generate the tree +void HuffmanEncodingTree::GenerateFromFrequencyTable( unsigned int frequencyTable[ 256 ] ) +{ + int counter; + HuffmanEncodingTreeNode * node; + HuffmanEncodingTreeNode *leafList[ 256 ]; // Keep a copy of the pointers to all the leaves so we can generate the encryption table bottom-up, which is easier + // 1. Make 256 trees each with a weight equal to the frequency of the corresponding character + DataStructures::LinkedList huffmanEncodingTreeNodeList; + + FreeMemory(); + + for ( counter = 0; counter < 256; counter++ ) + { + node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + node->left = 0; + node->right = 0; + node->value = (unsigned char) counter; + node->weight = frequencyTable[ counter ]; + + if ( node->weight == 0 ) + node->weight = 1; // 0 weights are illegal + + leafList[ counter ] = node; // Used later to generate the encryption table + + InsertNodeIntoSortedList( node, &huffmanEncodingTreeNodeList ); // Insert and maintain sort order. + } + + + // 2. While there is more than one tree, take the two smallest trees and merge them so that the two trees are the left and right + // children of a new node, where the new node has the weight the sum of the weight of the left and right child nodes. +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( 1 ) + { + huffmanEncodingTreeNodeList.Beginning(); + HuffmanEncodingTreeNode *lesser, *greater; + lesser = huffmanEncodingTreeNodeList.Pop(); + greater = huffmanEncodingTreeNodeList.Pop(); + node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + node->left = lesser; + node->right = greater; + node->weight = lesser->weight + greater->weight; + lesser->parent = node; // This is done to make generating the encryption table easier + greater->parent = node; // This is done to make generating the encryption table easier + + if ( huffmanEncodingTreeNodeList.Size() == 0 ) + { + // 3. Assign the one remaining node in the list to the root node. + root = node; + root->parent = 0; + break; + } + + // Put the new node back into the list at the correct spot to maintain the sort. Linear search time + InsertNodeIntoSortedList( node, &huffmanEncodingTreeNodeList ); + } + + bool tempPath[ 256 ]; // Maximum path length is 256 + unsigned short tempPathLength; + HuffmanEncodingTreeNode *currentNode; + RakNet::BitStream bitStream; + + // Generate the encryption table. From before, we have an array of pointers to all the leaves which contain pointers to their parents. + // This can be done more efficiently but this isn't bad and it's way easier to program and debug + + for ( counter = 0; counter < 256; counter++ ) + { + // Already done at the end of the loop and before it! + tempPathLength = 0; + + // Set the current node at the leaf + currentNode = leafList[ counter ]; + + do + { + if ( currentNode->parent->left == currentNode ) // We're storing the paths in reverse order.since we are going from the leaf to the root + tempPath[ tempPathLength++ ] = false; + else + tempPath[ tempPathLength++ ] = true; + + currentNode = currentNode->parent; + } + + while ( currentNode != root ); + + // Write to the bitstream in the reverse order that we stored the path, which gives us the correct order from the root to the leaf + while ( tempPathLength-- > 0 ) + { + if ( tempPath[ tempPathLength ] ) // Write 1's and 0's because writing a bool will write the BitStream TYPE_CHECKING validation bits if that is defined along with the actual data bit, which is not what we want + bitStream.Write1(); + else + bitStream.Write0(); + } + + // Read data from the bitstream, which is written to the encoding table in bits and bitlength. Note this function allocates the encodingTable[counter].encoding pointer + encodingTable[ counter ].bitLength = ( unsigned char ) bitStream.CopyData( &encodingTable[ counter ].encoding ); + + // Reset the bitstream for the next iteration + bitStream.Reset(); + } +} + +// Pass an array of bytes to array and a preallocated BitStream to receive the output +void HuffmanEncodingTree::EncodeArray( unsigned char *input, size_t sizeInBytes, RakNet::BitStream * output ) +{ + unsigned counter; + + // For each input byte, Write out the corresponding series of 1's and 0's that give the encoded representation + for ( counter = 0; counter < sizeInBytes; counter++ ) + { + output->WriteBits( encodingTable[ input[ counter ] ].encoding, encodingTable[ input[ counter ] ].bitLength, false ); // Data is left aligned + } + + // Byte align the output so the unassigned remaining bits don't equate to some actual value + if ( output->GetNumberOfBitsUsed() % 8 != 0 ) + { + // Find an input that is longer than the remaining bits. Write out part of it to pad the output to be byte aligned. + unsigned char remainingBits = (unsigned char) ( 8 - ( output->GetNumberOfBitsUsed() % 8 ) ); + + for ( counter = 0; counter < 256; counter++ ) + if ( encodingTable[ counter ].bitLength > remainingBits ) + { + output->WriteBits( encodingTable[ counter ].encoding, remainingBits, false ); // Data is left aligned + break; + } + +#ifdef _DEBUG + RakAssert( counter != 256 ); // Given 256 elements, we should always be able to find an input that would be >= 7 bits + +#endif + + } +} + +unsigned HuffmanEncodingTree::DecodeArray( RakNet::BitStream * input, BitSize_t sizeInBits, size_t maxCharsToWrite, unsigned char *output ) +{ + HuffmanEncodingTreeNode * currentNode; + + unsigned outputWriteIndex; + outputWriteIndex = 0; + currentNode = root; + + // For each bit, go left if it is a 0 and right if it is a 1. When we reach a leaf, that gives us the desired value and we restart from the root + + for ( unsigned counter = 0; counter < sizeInBits; counter++ ) + { + if ( input->ReadBit() == false ) // left! + currentNode = currentNode->left; + else + currentNode = currentNode->right; + + if ( currentNode->left == 0 && currentNode->right == 0 ) // Leaf + { + + if ( outputWriteIndex < maxCharsToWrite ) + output[ outputWriteIndex ] = currentNode->value; + + outputWriteIndex++; + + currentNode = root; + } + } + + return outputWriteIndex; +} + +// Pass an array of encoded bytes to array and a preallocated BitStream to receive the output +void HuffmanEncodingTree::DecodeArray( unsigned char *input, BitSize_t sizeInBits, RakNet::BitStream * output ) +{ + HuffmanEncodingTreeNode * currentNode; + + if ( sizeInBits <= 0 ) + return ; + + RakNet::BitStream bitStream( input, BITS_TO_BYTES(sizeInBits), false ); + + currentNode = root; + + // For each bit, go left if it is a 0 and right if it is a 1. When we reach a leaf, that gives us the desired value and we restart from the root + for ( unsigned counter = 0; counter < sizeInBits; counter++ ) + { + if ( bitStream.ReadBit() == false ) // left! + currentNode = currentNode->left; + else + currentNode = currentNode->right; + + if ( currentNode->left == 0 && currentNode->right == 0 ) // Leaf + { + output->WriteBits( &( currentNode->value ), sizeof( char ) * 8, true ); // Use WriteBits instead of Write(char) because we want to avoid TYPE_CHECKING + currentNode = root; + } + } +} + +// Insertion sort. Slow but easy to write in this case +void HuffmanEncodingTree::InsertNodeIntoSortedList( HuffmanEncodingTreeNode * node, DataStructures::LinkedList *huffmanEncodingTreeNodeList ) const +{ + if ( huffmanEncodingTreeNodeList->Size() == 0 ) + { + huffmanEncodingTreeNodeList->Insert( node ); + return ; + } + + huffmanEncodingTreeNodeList->Beginning(); + + unsigned counter = 0; +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( 1 ) + { + if ( huffmanEncodingTreeNodeList->Peek()->weight < node->weight ) + ++( *huffmanEncodingTreeNodeList ); + else + { + huffmanEncodingTreeNodeList->Insert( node ); + break; + } + + // Didn't find a spot in the middle - add to the end + if ( ++counter == huffmanEncodingTreeNodeList->Size() ) + { + huffmanEncodingTreeNodeList->End(); + + huffmanEncodingTreeNodeList->Add( node ) + + ; // Add to the end + break; + } + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/src/raknet/DS_HuffmanEncodingTree.h b/src/raknet/DS_HuffmanEncodingTree.h new file mode 100755 index 0000000..41cae1f --- /dev/null +++ b/src/raknet/DS_HuffmanEncodingTree.h @@ -0,0 +1,67 @@ +/// \file DS_HuffmanEncodingTree.h +/// \brief \b [Internal] Generates a huffman encoding tree, used for string and global compression. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HUFFMAN_ENCODING_TREE +#define __HUFFMAN_ENCODING_TREE + +#include "RakMemoryOverride.h" +#include "DS_HuffmanEncodingTreeNode.h" +#include "BitStream.h" +#include "Export.h" +#include "DS_LinkedList.h" + +namespace RakNet +{ + +/// This generates special cases of the huffman encoding tree using 8 bit keys with the additional condition that unused combinations of 8 bits are treated as a frequency of 1 +class RAK_DLL_EXPORT HuffmanEncodingTree +{ + +public: + HuffmanEncodingTree(); + ~HuffmanEncodingTree(); + + /// \brief Pass an array of bytes to array and a preallocated BitStream to receive the output. + /// \param [in] input Array of bytes to encode + /// \param [in] sizeInBytes size of \a input + /// \param [out] output The bitstream to write to + void EncodeArray( unsigned char *input, size_t sizeInBytes, RakNet::BitStream * output ); + + // \brief Decodes an array encoded by EncodeArray(). + unsigned DecodeArray( RakNet::BitStream * input, BitSize_t sizeInBits, size_t maxCharsToWrite, unsigned char *output ); + void DecodeArray( unsigned char *input, BitSize_t sizeInBits, RakNet::BitStream * output ); + + /// \brief Given a frequency table of 256 elements, all with a frequency of 1 or more, generate the tree. + void GenerateFromFrequencyTable( unsigned int frequencyTable[ 256 ] ); + + /// \brief Free the memory used by the tree. + void FreeMemory( void ); + +private: + + /// The root node of the tree + + HuffmanEncodingTreeNode *root; + + /// Used to hold bit encoding for one character + + + struct CharacterEncoding + { + unsigned char* encoding; + unsigned short bitLength; + }; + + CharacterEncoding encodingTable[ 256 ]; + + void InsertNodeIntoSortedList( HuffmanEncodingTreeNode * node, DataStructures::LinkedList *huffmanEncodingTreeNodeList ) const; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/DS_HuffmanEncodingTreeFactory.h b/src/raknet/DS_HuffmanEncodingTreeFactory.h new file mode 100755 index 0000000..c6a6acc --- /dev/null +++ b/src/raknet/DS_HuffmanEncodingTreeFactory.h @@ -0,0 +1,57 @@ +/// \file DS_HuffmanEncodingTreeFactory.h +/// \internal +/// \brief Creates instances of the class HuffmanEncodingTree +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HUFFMAN_ENCODING_TREE_FACTORY +#define __HUFFMAN_ENCODING_TREE_FACTORY + +#include "RakMemoryOverride.h" + +namespace RakNet { +/// Forward declarations +class HuffmanEncodingTree; + +/// \brief Creates instances of the class HuffmanEncodingTree +/// \details This class takes a frequency table and given that frequence table, will generate an instance of HuffmanEncodingTree +class HuffmanEncodingTreeFactory +{ +public: + /// Default constructor + HuffmanEncodingTreeFactory(); + + /// \brief Reset the frequency table. + /// \details You don't need to call this unless you want to reuse the class for a new tree + void Reset( void ); + + /// \brief Pass an array of bytes to this to add those elements to the frequency table. + /// \param[in] array the data to insert into the frequency table + /// \param[in] size the size of the data to insert + void AddToFrequencyTable( unsigned char *array, int size ); + + /// \brief Copies the frequency table to the array passed. Retrieve the frequency table. + /// \param[in] _frequency The frequency table used currently + void GetFrequencyTable( unsigned int _frequency[ 256 ] ); + + /// \brief Returns the frequency table as a pointer. + /// \return the address of the frenquency table + unsigned int * GetFrequencyTable( void ); + + /// \brief Generate a HuffmanEncodingTree. + /// \details You can also use GetFrequencyTable and GenerateFromFrequencyTable in the tree itself + /// \return The generated instance of HuffmanEncodingTree + HuffmanEncodingTree * GenerateTree( void ); + +private: + + /// Frequency table + unsigned int frequency[ 256 ]; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/DS_HuffmanEncodingTreeNode.h b/src/raknet/DS_HuffmanEncodingTreeNode.h new file mode 100755 index 0000000..40523e1 --- /dev/null +++ b/src/raknet/DS_HuffmanEncodingTreeNode.h @@ -0,0 +1,21 @@ +/// \file +/// \brief \b [Internal] A single node in the Huffman Encoding Tree. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __HUFFMAN_ENCODING_TREE_NODE +#define __HUFFMAN_ENCODING_TREE_NODE + +struct HuffmanEncodingTreeNode +{ + unsigned char value; + unsigned weight; + HuffmanEncodingTreeNode *left; + HuffmanEncodingTreeNode *right; + HuffmanEncodingTreeNode *parent; +}; + +#endif diff --git a/src/raknet/DS_LinkedList.h b/src/raknet/DS_LinkedList.h new file mode 100755 index 0000000..4002855 --- /dev/null +++ b/src/raknet/DS_LinkedList.h @@ -0,0 +1,1252 @@ +/// \file DS_LinkedList.h +/// \internal +/// \brief Straightforward linked list data structure. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __LINKED_LIST_H +#define __LINKED_LIST_H + +#include "Export.h" +#include "RakMemoryOverride.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + // Prototype to prevent error in CircularLinkedList class when a reference is made to a LinkedList class + template + class RAK_DLL_EXPORT LinkedList; + + /** + * \brief (Circular) Linked List ADT (Doubly Linked Pointer to Node Style) - + * + * \details + * By Kevin Jenkins (http://www.rakkar.org) + * Initilize with the following command + * LinkedList + * OR + * CircularLinkedList + * + * Has the following member functions + * - size: returns number of elements in the linked list + * - insert(item): inserts @em item at the current position in + * the LinkedList. + * - add(item): inserts @em item after the current position in + * the LinkedList. Does not increment the position + * - replace(item): replaces the element at the current position @em item. + * - peek: returns the element at the current position + * - pop: returns the element at the current position and deletes it + * - del: deletes the current element. Does nothing for an empty list. + * - clear: empties the LinkedList and returns storage + * - bool IsInitem): Does a linear search for @em item. Does not set + * the position to it, only returns true on item found, false otherwise + * - bool find(item): Does a linear search for @em item and sets the current + * position to point to it if and only if the item is found. Returns true + * on item found, false otherwise + * - sort: Sorts the elements of the list with a mergesort and sets the + * current pointer to the first element + * - concatenate(list L): This appends L to the current list + * - ++(prefix): moves the pointer one element up in the list and returns the + * appropriate copy of the element in the list + * - --(prefix): moves the pointer one element back in the list and returns + * the appropriate copy of the element in the list + * - beginning - moves the pointer to the start of the list. For circular + * linked lists this is first 'position' created. You should call this + * after the sort function to read the first value. + * - end - moves the pointer to the end of the list. For circular linked + * lists this is one less than the first 'position' created + * The assignment and copy constructor operators are defined + * + * \note + * 1. LinkedList and CircularLinkedList are exactly the same except LinkedList + * won't let you wrap around the root and lets you jump to two positions + * relative to the root/ + * 2. Postfix ++ and -- can be used but simply call the prefix versions. + * + * + * EXAMPLE: + * @code + * LinkedList A; // Creates a Linked List of integers called A + * CircularLinkedList B; // Creates a Circular Linked List of + * // integers called B + * + * A.Insert(20); // Adds 20 to A. A: 20 - current is 20 + * A.Insert(5); // Adds 5 to A. A: 5 20 - current is 5 + * A.Insert(1); // Adds 1 to A. A: 1 5 20 - current is 1 + * + * A.IsIn1); // returns true + * A.IsIn200); // returns false + * A.Find(5); // returns true and sets current to 5 + * A.Peek(); // returns 5 + * A.Find(1); // returns true and sets current to 1 + * + * (++A).Peek(); // Returns 5 + * A.Peek(); // Returns 5 + * + * A.Replace(10); // Replaces 5 with 10. + * A.Peek(); // Returns 10 + * + * A.Beginning(); // Current points to the beginning of the list at 1 + * + * (++A).Peek(); // Returns 5 + * A.Peek(); // Returns 10 + * + * A.Del(); // Deletes 10. Current points to the next element, which is 20 + * A.Peek(); // Returns 20 + * + * A.Beginning(); // Current points to the beginning of the list at 1 + * + * (++A).Peek(); // Returns 5 + * A.Peek(); // Returns 20 + * + * A.Clear(_FILE_AND_LINE_); // Deletes all nodes in A + * + * A.Insert(5); // A: 5 - current is 5 + * A.Insert(6); // A: 6 5 - current is 6 + * A.Insert(7); // A: 7 6 5 - current is 7 + * + * A.Clear(_FILE_AND_LINE_); + * B.Clear(_FILE_AND_LINE_); + * + * B.Add(10); + * B.Add(20); + * B.Add(30); + * B.Add(5); + * B.Add(2); + * B.Add(25); + * // Sorts the numbers in the list and sets the current pointer to the + * // first element + * B.sort(); + * + * // Postfix ++ just calls the prefix version and has no functional + * // difference. + * B.Peek(); // Returns 2 + * B++; + * B.Peek(); // Returns 5 + * B++; + * B.Peek(); // Returns 10 + * B++; + * B.Peek(); // Returns 20 + * B++; + * B.Peek(); // Returns 25 + * B++; + * B.Peek(); // Returns 30 + * @endcode + */ + template + + class CircularLinkedList + { + + public: + + struct node + { + CircularLinkedListType item; + + node* previous; + node* next; + }; + + CircularLinkedList(); + ~CircularLinkedList(); + CircularLinkedList( const CircularLinkedList& original_copy ); + // CircularLinkedList(LinkedList original_copy) {CircularLinkedList(original_copy);} // Converts linked list to circular type + bool operator= ( const CircularLinkedList& original_copy ); + CircularLinkedList& operator++(); // CircularLinkedList A; ++A; + CircularLinkedList& operator++( int ); // Circular_Linked List A; A++; + CircularLinkedList& operator--(); // CircularLinkedList A; --A; + CircularLinkedList& operator--( int ); // Circular_Linked List A; A--; + bool IsIn( const CircularLinkedListType& input ); + bool Find( const CircularLinkedListType& input ); + void Insert( const CircularLinkedListType& input ); + + CircularLinkedListType& Add ( const CircularLinkedListType& input ) + + ; // Adds after the current position + void Replace( const CircularLinkedListType& input ); + + void Del( void ); + + unsigned int Size( void ); + + CircularLinkedListType& Peek( void ); + + CircularLinkedListType Pop( void ); + + void Clear( void ); + + void Sort( void ); + + void Beginning( void ); + + void End( void ); + + void Concatenate( const CircularLinkedList& L ); + + protected: + unsigned int list_size; + + node *root; + + node *position; + + node* FindPointer( const CircularLinkedListType& input ); + + private: + CircularLinkedList Merge( CircularLinkedList L1, CircularLinkedList L2 ); + + CircularLinkedList Mergesort( const CircularLinkedList& L ); + }; + + template + + class LinkedList : public CircularLinkedList + { + + public: + LinkedList() + {} + + LinkedList( const LinkedList& original_copy ); + ~LinkedList(); + bool operator= ( const LinkedList& original_copy ); + LinkedList& operator++(); // LinkedList A; ++A; + LinkedList& operator++( int ); // Linked List A; A++; + LinkedList& operator--(); // LinkedList A; --A; + LinkedList& operator--( int ); // Linked List A; A--; + + private: + LinkedList Merge( LinkedList L1, LinkedList L2 ); + LinkedList Mergesort( const LinkedList& L ); + + }; + + + template + inline void CircularLinkedList::Beginning( void ) + { + if ( this->root ) + this->position = this->root; + } + + template + inline void CircularLinkedList::End( void ) + { + if ( this->root ) + this->position = this->root->previous; + } + + template + bool LinkedList::operator= ( const LinkedList& original_copy ) + { + typename LinkedList::node * original_copy_pointer, *last, *save_position; + + if ( ( &original_copy ) != this ) + { + + this->Clear(); + + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + + + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = this->position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + + return true; + } + + + template + CircularLinkedList::CircularLinkedList() + { + this->root = 0; + this->position = 0; + this->list_size = 0; + } + + template + CircularLinkedList::~CircularLinkedList() + { + this->Clear(); + } + + template + LinkedList::~LinkedList() + { + this->Clear(); + } + + template + LinkedList::LinkedList( const LinkedList& original_copy ) + { + typename LinkedList::node * original_copy_pointer, *last, *save_position; + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + return ; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item) = *((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = this->position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + +#ifdef _MSC_VER +#pragma warning( disable : 4701 ) // warning C4701: local variable may be used without having been initialized +#endif + template + CircularLinkedList::CircularLinkedList( const CircularLinkedList& original_copy ) + { + node * original_copy_pointer; + node *last; + node *save_position; + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + return ; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item) = *((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + + + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = position; + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + +#ifdef _MSC_VER +#pragma warning( disable : 4701 ) // warning C4701: local variable may be used without having been initialized +#endif + template + bool CircularLinkedList::operator= ( const CircularLinkedList& original_copy ) + { + node * original_copy_pointer; + node *last; + node *save_position; + + if ( ( &original_copy ) != this ) + { + + this->Clear(); + + + if ( original_copy.list_size == 0 ) + { + this->root = 0; + this->position = 0; + this->list_size = 0; + } + + else + if ( original_copy.list_size == 1 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + } + + else + { + // Setup the first part of the root node + original_copy_pointer = original_copy.root; + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->position = this->root; + // *(root->item)=*((original_copy.root)->item); + this->root->item = original_copy.root->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + do + { + // Save the current element + last = this->position; + + // Point to the next node in the source list + original_copy_pointer = original_copy_pointer->next; + + // Create a new node and point position to it + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // Copy the item to the new node + // *(position->item)=*(original_copy_pointer->item); + this->position->item = original_copy_pointer->item; + + if ( original_copy_pointer == original_copy.position ) + save_position = this->position; + + // Set the previous pointer for the new node + ( this->position->previous ) = last; + + // Set the next pointer for the old node to the new node + ( last->next ) = this->position; + + } + + while ( ( original_copy_pointer->next ) != ( original_copy.root ) ); + + // Complete the circle. Set the next pointer of the newest node to the root and the previous pointer of the root to the newest node + this->position->next = this->root; + + this->root->previous = this->position; + + this->list_size = original_copy.list_size; + + this->position = save_position; + } + } + + return true; + } + + template + void CircularLinkedList::Insert( const CircularLinkedListType& input ) + { + node * new_node; + + if ( list_size == 0 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + //*(root->item)=input; + this->root->item = input; + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + } + + else + if ( list_size == 1 ) + { + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->position; + this->root->previous = this->position; + this->position->previous = this->root; + this->position->next = this->root; + // *(position->item)=input; + this->position->item = input; + this->root = this->position; // Since we're inserting into a 1 element list the old root is now the second item + this->list_size = 2; + } + + else + { + /* + + B + | + A --- C + + position->previous=A + new_node=B + position=C + + Note that the order of the following statements is important */ + + new_node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // new_node->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // *(new_node->item)=input; + new_node->item = input; + + // Point next of A to B + ( this->position->previous ) ->next = new_node; + + // Point last of B to A + new_node->previous = this->position->previous; + + // Point last of C to B + this->position->previous = new_node; + + // Point next of B to C + new_node->next = this->position; + + // Since the root pointer is bound to a node rather than an index this moves it back if you insert an element at the root + + if ( this->position == this->root ) + { + this->root = new_node; + this->position = this->root; + } + + // Increase the recorded size of the list by one + this->list_size++; + } + } + + template + CircularLinkedListType& CircularLinkedList::Add ( const CircularLinkedListType& input ) + { + node * new_node; + + if ( this->list_size == 0 ) + { + this->root = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // root->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // *(root->item)=input; + this->root->item = input; + this->root->next = this->root; + this->root->previous = this->root; + this->list_size = 1; + this->position = this->root; + // return *(position->item); + return this->position->item; + } + + else + if ( list_size == 1 ) + { + this->position = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // position->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + this->root->next = this->position; + this->root->previous = this->position; + this->position->previous = this->root; + this->position->next = this->root; + // *(position->item)=input; + this->position->item = input; + this->list_size = 2; + this->position = this->root; // Don't move the position from the root + // return *(position->item); + return this->position->item; + } + + else + { + /* + + B + | + A --- C + + new_node=B + position=A + position->next=C + + Note that the order of the following statements is important */ + + new_node = RakNet::OP_NEW( _FILE_AND_LINE_ ); + // new_node->item = RakNet::OP_NEW( _FILE_AND_LINE_ ); + + // *(new_node->item)=input; + new_node->item = input; + + // Point last of B to A + new_node->previous = this->position; + + // Point next of B to C + new_node->next = ( this->position->next ); + + // Point last of C to B + ( this->position->next ) ->previous = new_node; + + // Point next of A to B + ( this->position->next ) = new_node; + + // Increase the recorded size of the list by one + this->list_size++; + + // return *(new_node->item); + return new_node->item; + } + } + + template + inline void CircularLinkedList::Replace( const CircularLinkedListType& input ) + { + if ( this->list_size > 0 ) + // *(position->item)=input; + this->position->item = input; + } + + template + void CircularLinkedList::Del() + { + node * new_position; + + if ( this->list_size == 0 ) + return ; + + else + if ( this->list_size == 1 ) + { + // RakNet::OP_DELETE(root->item, _FILE_AND_LINE_); + RakNet::OP_DELETE(this->root, _FILE_AND_LINE_); + this->root = this->position = 0; + this->list_size = 0; + } + + else + { + ( this->position->previous ) ->next = this->position->next; + ( this->position->next ) ->previous = this->position->previous; + new_position = this->position->next; + + if ( this->position == this->root ) + this->root = new_position; + + // RakNet::OP_DELETE(position->item, _FILE_AND_LINE_); + RakNet::OP_DELETE(this->position, _FILE_AND_LINE_); + + this->position = new_position; + + this->list_size--; + } + } + + template + bool CircularLinkedList::IsIn(const CircularLinkedListType& input ) + { + node * return_value, *old_position; + + old_position = this->position; + + return_value = FindPointer( input ); + this->position = old_position; + + if ( return_value != 0 ) + return true; + else + return false; // Can't find the item don't do anything + } + + template + bool CircularLinkedList::Find( const CircularLinkedListType& input ) + { + node * return_value; + + return_value = FindPointer( input ); + + if ( return_value != 0 ) + { + this->position = return_value; + return true; + } + + else + return false; // Can't find the item don't do anything + } + + template + typename CircularLinkedList::node* CircularLinkedList::FindPointer( const CircularLinkedListType& input ) + { + node * current; + + if ( this->list_size == 0 ) + return 0; + + current = this->root; + + // Search for the item starting from the root node and incrementing the pointer after every check + // If you wind up pointing at the root again you looped around the list so didn't find the item, in which case return 0 + do + { + // if (*(current->item) == input) return current; + + if ( current->item == input ) + return current; + + current = current->next; + } + + while ( current != this->root ); + + return 0; + + } + + template + inline unsigned int CircularLinkedList::Size( void ) + { + return this->list_size; + } + + template + inline CircularLinkedListType& CircularLinkedList::Peek( void ) + { + // return *(position->item); + return this->position->item; + } + + template + CircularLinkedListType CircularLinkedList::Pop( void ) + { + CircularLinkedListType element; + element = Peek(); + Del(); + return CircularLinkedListType( element ); // return temporary + } + + // Prefix + template + CircularLinkedList& CircularLinkedList::operator++() + { + if ( this->list_size != 0 ) + position = position->next; + + return *this; + } + + /* + // Postfix + template + CircularLinkedList& CircularLinkedList::operator++(int) + { + CircularLinkedList before; + before=*this; + operator++(); + return before; + } + */ + + template + CircularLinkedList& CircularLinkedList::operator++( int ) + { + return this->operator++(); + } + + // Prefix + template + CircularLinkedList& CircularLinkedList::operator--() + { + if ( this->list_size != 0 ) + this->position = this->position->previous; + + return *this; + } + + /* + // Postfix + template + CircularLinkedList& CircularLinkedList::operator--(int) + { + CircularLinkedList before; + before=*this; + operator--(); + return before; + } + */ + + template + CircularLinkedList& CircularLinkedList::operator--( int ) + { + return this->operator--(); + } + + template + void CircularLinkedList::Clear( void ) + { + if ( this->list_size == 0 ) + return ; + else + if ( this->list_size == 1 ) // {RakNet::OP_DELETE(root->item); RakNet::OP_DELETE(root, _FILE_AND_LINE_);} + { + RakNet::OP_DELETE(this->root, _FILE_AND_LINE_); + } + + else + { + node* current; + node* temp; + + current = this->root; + + do + { + temp = current; + current = current->next; + // RakNet::OP_DELETE(temp->item, _FILE_AND_LINE_); + RakNet::OP_DELETE(temp, _FILE_AND_LINE_); + } + + while ( current != this->root ); + } + + this->list_size = 0; + this->root = 0; + this->position = 0; + } + + template + inline void CircularLinkedList::Concatenate( const CircularLinkedList& L ) + { + unsigned int counter; + node* ptr; + + if ( L.list_size == 0 ) + return ; + + if ( this->list_size == 0 ) + * this = L; + + ptr = L.root; + + this->position = this->root->previous; + + // Cycle through each element in L and add it to the current list + for ( counter = 0; counter < L.list_size; counter++ ) + { + // Add item after the current item pointed to + // add(*(ptr->item)); + + Add ( ptr->item ); + + // Update pointers. Moving ptr keeps the current pointer at the end of the list since the add function does not move the pointer + ptr = ptr->next; + + this->position = this->position->next; + } + } + + template + inline void CircularLinkedList::Sort( void ) + { + if ( this->list_size <= 1 ) + return ; + + // Call equal operator to assign result of mergesort to current object + *this = Mergesort( *this ); + + this->position = this->root; + } + + template + CircularLinkedList CircularLinkedList::Mergesort( const CircularLinkedList& L ) + { + unsigned int counter; + node* location; + CircularLinkedList L1; + CircularLinkedList L2; + + location = L.root; + + // Split the list into two equal size sublists, L1 and L2 + + for ( counter = 0; counter < L.list_size / 2; counter++ ) + { + // L1.add (*(location->item)); + L1.Add ( location->item ); + location = location->next; + } + + for ( ;counter < L.list_size; counter++ ) + { + // L2.Add(*(location->item)); + L2.Add ( location->item ); + location = location->next; + } + + // Recursively sort the sublists + if ( L1.list_size > 1 ) + L1 = Mergesort( L1 ); + + if ( L2.list_size > 1 ) + L2 = Mergesort( L2 ); + + // Merge the two sublists + return Merge( L1, L2 ); + } + + template + CircularLinkedList CircularLinkedList::Merge( CircularLinkedList L1, CircularLinkedList L2 ) + { + CircularLinkedList X; + CircularLinkedListType element; + L1.position = L1.root; + L2.position = L2.root; + + // While neither list is empty + + while ( ( L1.list_size != 0 ) && ( L2.list_size != 0 ) ) + { + // Compare the first items of L1 and L2 + // Remove the smaller of the two items from the list + + if ( ( ( L1.root ) ->item ) < ( ( L2.root ) ->item ) ) + // if ((*((L1.root)->item)) < (*((L2.root)->item))) + { + // element = *((L1.root)->item); + element = ( L1.root ) ->item; + L1.Del(); + } + else + { + // element = *((L2.root)->item); + element = ( L2.root ) ->item; + L2.Del(); + } + + // Add this item to the end of X + X.Add( element ); + + X++; + } + + // Add the remaining list to X + if ( L1.list_size != 0 ) + X.Concatenate( L1 ); + else + X.Concatenate( L2 ); + + return X; + } + + template + LinkedList LinkedList::Mergesort( const LinkedList& L ) + { + unsigned int counter; + typename LinkedList::node* location; + LinkedList L1; + LinkedList L2; + + location = L.root; + + // Split the list into two equal size sublists, L1 and L2 + + for ( counter = 0; counter < L.LinkedList_size / 2; counter++ ) + { + // L1.add (*(location->item)); + L1.Add ( location->item ); + location = location->next; + } + + for ( ;counter < L.LinkedList_size; counter++ ) + { + // L2.Add(*(location->item)); + L2.Add ( location->item ); + location = location->next; + } + + // Recursively sort the sublists + if ( L1.list_size > 1 ) + L1 = Mergesort( L1 ); + + if ( L2.list_size > 1 ) + L2 = Mergesort( L2 ); + + // Merge the two sublists + return Merge( L1, L2 ); + } + + template + LinkedList LinkedList::Merge( LinkedList L1, LinkedList L2 ) + { + LinkedList X; + LinkedListType element; + L1.position = L1.root; + L2.position = L2.root; + + // While neither list is empty + + while ( ( L1.LinkedList_size != 0 ) && ( L2.LinkedList_size != 0 ) ) + { + // Compare the first items of L1 and L2 + // Remove the smaller of the two items from the list + + if ( ( ( L1.root ) ->item ) < ( ( L2.root ) ->item ) ) + // if ((*((L1.root)->item)) < (*((L2.root)->item))) + { + element = ( L1.root ) ->item; + // element = *((L1.root)->item); + L1.Del(); + } + else + { + element = ( L2.root ) ->item; + // element = *((L2.root)->item); + L2.Del(); + } + + // Add this item to the end of X + X.Add( element ); + } + + // Add the remaining list to X + if ( L1.LinkedList_size != 0 ) + X.concatenate( L1 ); + else + X.concatenate( L2 ); + + return X; + } + + + // Prefix + template + LinkedList& LinkedList::operator++() + { + if ( ( this->list_size != 0 ) && ( this->position->next != this->root ) ) + this->position = this->position->next; + + return *this; + } + + /* + // Postfix + template + LinkedList& LinkedList::operator++(int) + { + LinkedList before; + before=*this; + operator++(); + return before; + } + */ + // Postfix + template + LinkedList& LinkedList::operator++( int ) + { + return this->operator++(); + } + + // Prefix + template + LinkedList& LinkedList::operator--() + { + if ( ( this->list_size != 0 ) && ( this->position != this->root ) ) + this->position = this->position->previous; + + return *this; + } + + /* + // Postfix + template + LinkedList& LinkedList::operator--(int) + { + LinkedList before; + before=*this; + operator--(); + return before; + } + */ + + // Postfix + template + LinkedList& LinkedList::operator--( int ) + { + return this->operator--(); + } + +} // End namespace + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/src/raknet/DS_List.h b/src/raknet/DS_List.h new file mode 100755 index 0000000..a360053 --- /dev/null +++ b/src/raknet/DS_List.h @@ -0,0 +1,518 @@ +/// \file DS_List.h +/// \internal +/// \brief Array based list. +/// \details Usually the Queue class is used instead, since it has all the same functionality and is only worse at random access. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __LIST_H +#define __LIST_H + +#include "RakAssert.h" +#include // memmove +#include "Export.h" +#include "RakMemoryOverride.h" + +/// Maximum unsigned long +static const unsigned int MAX_UNSIGNED_LONG = 4294967295U; + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief Array based implementation of a list. + /// \note ONLY USE THIS FOR SHALLOW COPIES. I don't bother with operator= to improve performance. + template + class RAK_DLL_EXPORT List + { + public: + /// Default constructor + List(); + + // Destructor + ~List(); + + /// \brief Copy constructor. + /// \param[in] original_copy The list to duplicate + List( const List& original_copy ); + + /// \brief Assign one list to another. + List& operator= ( const List& original_copy ); + + /// \brief Access an element by its index in the array. + /// \param[in] position The index into the array. + /// \return The element at position \a position. + list_type& operator[] ( const unsigned int position ) const; + + /// \brief Access an element by its index in the array. + /// \param[in] position The index into the array. + /// \return The element at position \a position. + list_type& Get ( const unsigned int position ) const; + + /// \brief Push an element at the end of the stack. + /// \param[in] input The new element. + void Push(const list_type &input, const char *file, unsigned int line ); + + /// \brief Pop an element from the end of the stack. + /// \pre Size()>0 + /// \return The element at the end. + list_type& Pop(void); + + /// \brief Insert an element at position \a position in the list. + /// \param[in] input The new element. + /// \param[in] position The position of the new element. + void Insert( const list_type &input, const unsigned int position, const char *file, unsigned int line ); + + /// \brief Insert at the end of the list. + /// \param[in] input The new element. + void Insert( const list_type &input, const char *file, unsigned int line ); + + /// \brief Replace the value at \a position by \a input. + /// \details If the size of the list is less than @em position, it increase the capacity of + /// the list and fill slot with @em filler. + /// \param[in] input The element to replace at position @em position. + /// \param[in] filler The element use to fill new allocated capacity. + /// \param[in] position The position of input in the list. + void Replace( const list_type &input, const list_type filler, const unsigned int position, const char *file, unsigned int line ); + + /// \brief Replace the last element of the list by \a input. + /// \param[in] input The element used to replace the last element. + void Replace( const list_type &input ); + + /// \brief Delete the element at position \a position. + /// \param[in] position The index of the element to delete + void RemoveAtIndex( const unsigned int position ); + + /// \brief Delete the element at position \a position. + /// \note - swaps middle with end of list, only use if list order does not matter + /// \param[in] position The index of the element to delete + void RemoveAtIndexFast( const unsigned int position ); + + /// \brief Delete the element at the end of the list. + void RemoveFromEnd(const unsigned num=1); + + /// \brief Returns the index of the specified item or MAX_UNSIGNED_LONG if not found. + /// \param[in] input The element to check for + /// \return The index or position of @em input in the list. + /// \retval MAX_UNSIGNED_LONG The object is not in the list + /// \retval [Integer] The index of the element in the list + unsigned int GetIndexOf( const list_type &input ) const; + + /// \return The number of elements in the list + unsigned int Size( void ) const; + + /// \brief Clear the list + void Clear( bool doNotDeallocateSmallBlocks, const char *file, unsigned int line ); + + /// \brief Preallocate the list, so it needs fewer reallocations at runtime. + void Preallocate( unsigned countNeeded, const char *file, unsigned int line ); + + /// \brief Frees overallocated members, to use the minimum memory necessary. + /// \attention + /// This is a slow operation + void Compress( const char *file, unsigned int line ); + + private: + /// An array of user values + list_type* listArray; + + /// Number of elements in the list + unsigned int list_size; + + /// Size of \a array + unsigned int allocation_size; + }; + template + List::List() + { + allocation_size = 0; + listArray = 0; + list_size = 0; + } + + template + List::~List() + { + if (allocation_size>0) + RakNet::OP_DELETE_ARRAY(listArray, _FILE_AND_LINE_); + } + + + template + List::List( const List& original_copy ) + { + // Allocate memory for copy + + if ( original_copy.list_size == 0 ) + { + list_size = 0; + allocation_size = 0; + } + else + { + listArray = RakNet::OP_NEW_ARRAY( original_copy.list_size , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.list_size; ++counter ) + listArray[ counter ] = original_copy.listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(listArray, original_copy.listArray, original_copy.list_size*sizeof(list_type)); + + list_size = allocation_size = original_copy.list_size; + } + } + + template + List& List::operator= ( const List& original_copy ) + { + if ( ( &original_copy ) != this ) + { + Clear( false, _FILE_AND_LINE_ ); + + // Allocate memory for copy + + if ( original_copy.list_size == 0 ) + { + list_size = 0; + allocation_size = 0; + } + + else + { + listArray = RakNet::OP_NEW_ARRAY( original_copy.list_size , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.list_size; ++counter ) + listArray[ counter ] = original_copy.listArray[ counter ]; + // Don't call constructors, assignment operators, etc. + //memcpy(listArray, original_copy.listArray, original_copy.list_size*sizeof(list_type)); + + list_size = allocation_size = original_copy.list_size; + } + } + + return *this; + } + + + template + inline list_type& List::operator[] ( const unsigned int position ) const + { + #ifdef _DEBUG + if (position>=list_size) + { + RakAssert ( position < list_size ); + } + #endif + return listArray[ position ]; + } + + // Just here for debugging + template + inline list_type& List::Get ( const unsigned int position ) const + { + return listArray[ position ]; + } + + template + void List::Push(const list_type &input, const char *file, unsigned int line) + { + Insert(input, file, line); + } + + template + inline list_type& List::Pop(void) + { +#ifdef _DEBUG + RakAssert(list_size>0); +#endif + --list_size; + return listArray[list_size]; + } + + template + void List::Insert( const list_type &input, const unsigned int position, const char *file, unsigned int line ) + { +#ifdef _DEBUG + if (position>list_size) + { + RakAssert( position <= list_size ); + } +#endif + + // Reallocate list if necessary + if ( list_size == allocation_size ) + { + // allocate twice the currently allocated memory + list_type * new_array; + + if ( allocation_size == 0 ) + allocation_size = 16; + else + allocation_size *= 2; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated and twice as large array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + + listArray = new_array; + } + + // Move the elements in the list to make room + for ( unsigned int counter = list_size; counter != position; counter-- ) + listArray[ counter ] = listArray[ counter - 1 ]; + + // Don't call constructors, assignment operators, etc. + //memmove(listArray+position+1, listArray+position, (list_size-position)*sizeof(list_type)); + + // Insert the new item at the correct spot + listArray[ position ] = input; + + ++list_size; + + } + + + template + void List::Insert( const list_type &input, const char *file, unsigned int line ) + { + // Reallocate list if necessary + + if ( list_size == allocation_size ) + { + // allocate twice the currently allocated memory + list_type * new_array; + + if ( allocation_size == 0 ) + allocation_size = 16; + else + allocation_size *= 2; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + if (listArray) + { + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated and twice as large array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + } + + listArray = new_array; + } + + // Insert the new item at the correct spot + listArray[ list_size ] = input; + + ++list_size; + } + + template + inline void List::Replace( const list_type &input, const list_type filler, const unsigned int position, const char *file, unsigned int line ) + { + if ( ( list_size > 0 ) && ( position < list_size ) ) + { + // Direct replacement + listArray[ position ] = input; + } + else + { + if ( position >= allocation_size ) + { + // Reallocate the list to size position and fill in blanks with filler + list_type * new_array; + allocation_size = position + 1; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + // copy old array over + + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + + listArray = new_array; + } + + // Fill in holes with filler + while ( list_size < position ) + listArray[ list_size++ ] = filler; + + // Fill in the last element with the new item + listArray[ list_size++ ] = input; + +#ifdef _DEBUG + + RakAssert( list_size == position + 1 ); + +#endif + + } + } + + template + inline void List::Replace( const list_type &input ) + { + if ( list_size > 0 ) + listArray[ list_size - 1 ] = input; + } + + template + void List::RemoveAtIndex( const unsigned int position ) + { +#ifdef _DEBUG + if (position >= list_size) + { + RakAssert( position < list_size ); + return; + } +#endif + + if ( position < list_size ) + { + // Compress the array + for ( unsigned int counter = position; counter < list_size - 1 ; ++counter ) + listArray[ counter ] = listArray[ counter + 1 ]; + // Don't call constructors, assignment operators, etc. + // memmove(listArray+position, listArray+position+1, (list_size-1-position) * sizeof(list_type)); + + RemoveFromEnd(); + } + } + + template + void List::RemoveAtIndexFast( const unsigned int position ) + { +#ifdef _DEBUG + if (position >= list_size) + { + RakAssert( position < list_size ); + return; + } +#endif + --list_size; + listArray[position]=listArray[list_size]; + } + + template + inline void List::RemoveFromEnd( const unsigned num ) + { + // Delete the last elements on the list. No compression needed +#ifdef _DEBUG + RakAssert(list_size>=num); +#endif + list_size-=num; + } + + template + unsigned int List::GetIndexOf( const list_type &input ) const + { + for ( unsigned int i = 0; i < list_size; ++i ) + if ( listArray[ i ] == input ) + return i; + + return MAX_UNSIGNED_LONG; + } + + template + inline unsigned int List::Size( void ) const + { + return list_size; + } + + template + void List::Clear( bool doNotDeallocateSmallBlocks, const char *file, unsigned int line ) + { + if ( allocation_size == 0 ) + return; + + if (allocation_size>512 || doNotDeallocateSmallBlocks==false) + { + RakNet::OP_DELETE_ARRAY(listArray, file, line); + allocation_size = 0; + listArray = 0; + } + list_size = 0; + } + + template + void List::Compress( const char *file, unsigned int line ) + { + list_type * new_array; + + if ( allocation_size == 0 ) + return ; + + new_array = RakNet::OP_NEW_ARRAY( allocation_size , file, line ); + + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + + listArray = new_array; + } + + template + void List::Preallocate( unsigned countNeeded, const char *file, unsigned int line ) + { + unsigned amountToAllocate = allocation_size; + if (allocation_size==0) + amountToAllocate=16; + while (amountToAllocate < countNeeded) + amountToAllocate<<=1; + + if ( allocation_size < amountToAllocate) + { + // allocate twice the currently allocated memory + list_type * new_array; + + allocation_size=amountToAllocate; + + new_array = RakNet::OP_NEW_ARRAY< list_type >( allocation_size , file, line ); + + if (listArray) + { + // copy old array over + for ( unsigned int counter = 0; counter < list_size; ++counter ) + new_array[ counter ] = listArray[ counter ]; + + // Don't call constructors, assignment operators, etc. + //memcpy(new_array, listArray, list_size*sizeof(list_type)); + + // set old array to point to the newly allocated and twice as large array + RakNet::OP_DELETE_ARRAY(listArray, file, line); + } + + listArray = new_array; + } + } + +} // End namespace + +#endif diff --git a/src/raknet/DS_Map.h b/src/raknet/DS_Map.h new file mode 100755 index 0000000..2e789da --- /dev/null +++ b/src/raknet/DS_Map.h @@ -0,0 +1,321 @@ +/// \file DS_Map.h +/// \internal +/// \brief Map +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAKNET_MAP_H +#define __RAKNET_MAP_H + +#include "DS_OrderedList.h" +#include "Export.h" +#include "RakMemoryOverride.h" +#include "RakAssert.h" + +// If I want to change this to a red-black tree, this is a good site: http://www.cs.auckland.ac.nz/software/AlgAnim/red_black.html +// This makes insertions and deletions faster. But then traversals are slow, while they are currently fast. + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// The default comparison has to be first so it can be called as a default parameter. + /// It then is followed by MapNode, followed by NodeComparisonFunc + template + int defaultMapKeyComparison(const key_type &a, const key_type &b) + { + if (a > + class RAK_DLL_EXPORT Map + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultMapKeyComparison(key_type(),key_type());} + + struct MapNode + { + MapNode() {} + MapNode(key_type _key, data_type _data) : mapNodeKey(_key), mapNodeData(_data) {} + MapNode& operator = ( const MapNode& input ) {mapNodeKey=input.mapNodeKey; mapNodeData=input.mapNodeData; return *this;} + MapNode( const MapNode & input) {mapNodeKey=input.mapNodeKey; mapNodeData=input.mapNodeData;} + key_type mapNodeKey; + data_type mapNodeData; + }; + + // Has to be a static because the comparison callback for DataStructures::OrderedList is a C function + static int NodeComparisonFunc(const key_type &a, const MapNode &b) + { +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + return key_comparison_func(a, b.mapNodeKey); + } + + Map(); + ~Map(); + Map( const Map& original_copy ); + Map& operator= ( const Map& original_copy ); + + data_type& Get(const key_type &key) const; + data_type Pop(const key_type &key); + // Add if needed + void Set(const key_type &key, const data_type &data); + // Must already exist + void SetExisting(const key_type &key, const data_type &data); + // Must add + void SetNew(const key_type &key, const data_type &data); + bool Has(const key_type &key) const; + bool Delete(const key_type &key); + data_type& operator[] ( const unsigned int position ) const; + key_type GetKeyAtIndex( const unsigned int position ) const; + unsigned GetIndexAtKey( const key_type &key ); + void RemoveAtIndex(const unsigned index); + void Clear(void); + unsigned Size(void) const; + + protected: + DataStructures::OrderedList< key_type,MapNode,&Map::NodeComparisonFunc > mapNodeList; + + void SaveLastSearch(const key_type &key, unsigned index) const; + bool HasSavedSearchResult(const key_type &key) const; + + unsigned lastSearchIndex; + key_type lastSearchKey; + bool lastSearchIndexValid; + }; + + template + Map::Map() + { + lastSearchIndexValid=false; + } + + template + Map::~Map() + { + Clear(); + } + + template + Map::Map( const Map& original_copy ) + { + mapNodeList=original_copy.mapNodeList; + lastSearchIndex=original_copy.lastSearchIndex; + lastSearchKey=original_copy.lastSearchKey; + lastSearchIndexValid=original_copy.lastSearchIndexValid; + } + + template + Map& Map::operator= ( const Map& original_copy ) + { + mapNodeList=original_copy.mapNodeList; + lastSearchIndex=original_copy.lastSearchIndex; + lastSearchKey=original_copy.lastSearchKey; + lastSearchIndexValid=original_copy.lastSearchIndexValid; + return *this; + } + + template + data_type& Map::Get(const key_type &key) const + { + if (HasSavedSearchResult(key)) + return mapNodeList[lastSearchIndex].mapNodeData; + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists); + SaveLastSearch(key,index); + return mapNodeList[index].mapNodeData; + } + + template + unsigned Map::GetIndexAtKey( const key_type &key ) + { + if (HasSavedSearchResult(key)) + return lastSearchIndex; + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + if (objectExists==false) + { + RakAssert(objectExists); + } + SaveLastSearch(key,index); + return index; + } + + template + void Map::RemoveAtIndex(const unsigned index) + { + mapNodeList.RemoveAtIndex(index); + lastSearchIndexValid=false; + } + + template + data_type Map::Pop(const key_type &key) + { + bool objectExists; + unsigned index; + if (HasSavedSearchResult(key)) + index=lastSearchIndex; + else + { + index=mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists); + } + data_type tmp = mapNodeList[index].mapNodeData; + mapNodeList.RemoveAtIndex(index); + lastSearchIndexValid=false; + return tmp; + } + + template + void Map::Set(const key_type &key, const data_type &data) + { + bool objectExists; + unsigned index; + + if (HasSavedSearchResult(key)) + { + mapNodeList[lastSearchIndex].mapNodeData=data; + return; + } + + index=mapNodeList.GetIndexFromKey(key, &objectExists); + + if (objectExists) + { + SaveLastSearch(key,index); + mapNodeList[index].mapNodeData=data; + } + else + { + SaveLastSearch(key,mapNodeList.Insert(key,MapNode(key,data), true, _FILE_AND_LINE_)); + } + } + + template + void Map::SetExisting(const key_type &key, const data_type &data) + { + bool objectExists; + unsigned index; + + if (HasSavedSearchResult(key)) + { + index=lastSearchIndex; + } + else + { + index=mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists); + SaveLastSearch(key,index); + } + + mapNodeList[index].mapNodeData=data; + } + + template + void Map::SetNew(const key_type &key, const data_type &data) + { +#ifdef _DEBUG + bool objectExists; + mapNodeList.GetIndexFromKey(key, &objectExists); + RakAssert(objectExists==false); +#endif + SaveLastSearch(key,mapNodeList.Insert(key,MapNode(key,data), true, _FILE_AND_LINE_)); + } + + template + bool Map::Has(const key_type &key) const + { + if (HasSavedSearchResult(key)) + return true; + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + if (objectExists) + SaveLastSearch(key,index); + return objectExists; + } + + template + bool Map::Delete(const key_type &key) + { + if (HasSavedSearchResult(key)) + { + lastSearchIndexValid=false; + mapNodeList.RemoveAtIndex(lastSearchIndex); + return true; + } + + bool objectExists; + unsigned index; + index=mapNodeList.GetIndexFromKey(key, &objectExists); + if (objectExists) + { + lastSearchIndexValid=false; + mapNodeList.RemoveAtIndex(index); + return true; + } + else + return false; + } + + template + void Map::Clear(void) + { + lastSearchIndexValid=false; + mapNodeList.Clear(false, _FILE_AND_LINE_); + } + + template + data_type& Map::operator[]( const unsigned int position ) const + { + return mapNodeList[position].mapNodeData; + } + + template + key_type Map::GetKeyAtIndex( const unsigned int position ) const + { + return mapNodeList[position].mapNodeKey; + } + + template + unsigned Map::Size(void) const + { + return mapNodeList.Size(); + } + + template + void Map::SaveLastSearch(const key_type &key, const unsigned index) const + { + (void) key; + (void) index; + + /* + lastSearchIndex=index; + lastSearchKey=key; + lastSearchIndexValid=true; + */ + } + + template + bool Map::HasSavedSearchResult(const key_type &key) const + { + (void) key; + + // Not threadsafe! + return false; + // return lastSearchIndexValid && key_comparison_func(key,lastSearchKey)==0; + } +} + +#endif diff --git a/src/raknet/DS_MemoryPool.h b/src/raknet/DS_MemoryPool.h new file mode 100755 index 0000000..62ebe8b --- /dev/null +++ b/src/raknet/DS_MemoryPool.h @@ -0,0 +1,294 @@ +/// \file DS_MemoryPool.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __MEMORY_POOL_H +#define __MEMORY_POOL_H + +#ifndef __APPLE__ +// Use stdlib and not malloc for compatibility +#include +#endif +#include "RakAssert.h" +#include "Export.h" + +#include "RakMemoryOverride.h" + +// DS_MEMORY_POOL_MAX_FREE_PAGES must be > 1 +#define DS_MEMORY_POOL_MAX_FREE_PAGES 4 + +//#define _DISABLE_MEMORY_POOL + +namespace DataStructures +{ + /// Very fast memory pool for allocating and deallocating structures that don't have constructors or destructors. + /// Contains a list of pages, each of which has an array of the user structures + template + class RAK_DLL_EXPORT MemoryPool + { + public: + struct Page; + struct MemoryWithPage + { + MemoryBlockType userMemory; + Page *parentPage; + }; + struct Page + { + MemoryWithPage** availableStack; + int availableStackSize; + MemoryWithPage* block; + Page *next, *prev; + }; + + MemoryPool(); + ~MemoryPool(); + void SetPageSize(int size); // Defaults to 16384 bytes + MemoryBlockType *Allocate(const char *file, unsigned int line); + void Release(MemoryBlockType *m, const char *file, unsigned int line); + void Clear(const char *file, unsigned int line); + + int GetAvailablePagesSize(void) const {return availablePagesSize;} + int GetUnavailablePagesSize(void) const {return unavailablePagesSize;} + int GetMemoryPoolPageSize(void) const {return memoryPoolPageSize;} + protected: + int BlocksPerPage(void) const; + void AllocateFirst(void); + bool InitPage(Page *page, Page *prev, const char *file, unsigned int line); + + // availablePages contains pages which have room to give the user new blocks. We return these blocks from the head of the list + // unavailablePages are pages which are totally full, and from which we do not return new blocks. + // Pages move from the head of unavailablePages to the tail of availablePages, and from the head of availablePages to the tail of unavailablePages + Page *availablePages, *unavailablePages; + int availablePagesSize, unavailablePagesSize; + int memoryPoolPageSize; + }; + + template + MemoryPool::MemoryPool() + { +#ifndef _DISABLE_MEMORY_POOL + //AllocateFirst(); + availablePagesSize=0; + unavailablePagesSize=0; + memoryPoolPageSize=16384; +#endif + } + template + MemoryPool::~MemoryPool() + { +#ifndef _DISABLE_MEMORY_POOL + Clear(_FILE_AND_LINE_); +#endif + } + + template + void MemoryPool::SetPageSize(int size) + { + memoryPoolPageSize=size; + } + + template + MemoryBlockType* MemoryPool::Allocate(const char *file, unsigned int line) + { +#ifdef _DISABLE_MEMORY_POOL + return (MemoryBlockType*) rakMalloc_Ex(sizeof(MemoryBlockType), file, line); +#else + + if (availablePagesSize>0) + { + MemoryBlockType *retVal; + Page *curPage; + curPage=availablePages; + retVal = (MemoryBlockType*) curPage->availableStack[--(curPage->availableStackSize)]; + if (curPage->availableStackSize==0) + { + --availablePagesSize; + availablePages=curPage->next; + RakAssert(availablePagesSize==0 || availablePages->availableStackSize>0); + curPage->next->prev=curPage->prev; + curPage->prev->next=curPage->next; + + if (unavailablePagesSize++==0) + { + unavailablePages=curPage; + curPage->next=curPage; + curPage->prev=curPage; + } + else + { + curPage->next=unavailablePages; + curPage->prev=unavailablePages->prev; + unavailablePages->prev->next=curPage; + unavailablePages->prev=curPage; + } + } + + RakAssert(availablePagesSize==0 || availablePages->availableStackSize>0); + return retVal; + } + + availablePages = (Page *) rakMalloc_Ex(sizeof(Page), file, line); + if (availablePages==0) + return 0; + availablePagesSize=1; + if (InitPage(availablePages, availablePages, file, line)==false) + return 0; + // If this assert hits, we couldn't allocate even 1 block per page. Increase the page size + RakAssert(availablePages->availableStackSize>1); + + return (MemoryBlockType *) availablePages->availableStack[--availablePages->availableStackSize]; +#endif + } + template + void MemoryPool::Release(MemoryBlockType *m, const char *file, unsigned int line) + { +#ifdef _DISABLE_MEMORY_POOL + rakFree_Ex(m, file, line); + return; +#else + // Find the page this block is in and return it. + Page *curPage; + MemoryWithPage *memoryWithPage = (MemoryWithPage*)m; + curPage=memoryWithPage->parentPage; + + if (curPage->availableStackSize==0) + { + // The page is in the unavailable list so move it to the available list + curPage->availableStack[curPage->availableStackSize++]=memoryWithPage; + unavailablePagesSize--; + + // As this page is no longer totally empty, move it to the end of available pages + curPage->next->prev=curPage->prev; + curPage->prev->next=curPage->next; + + if (unavailablePagesSize>0 && curPage==unavailablePages) + unavailablePages=unavailablePages->next; + + if (availablePagesSize++==0) + { + availablePages=curPage; + curPage->next=curPage; + curPage->prev=curPage; + } + else + { + curPage->next=availablePages; + curPage->prev=availablePages->prev; + availablePages->prev->next=curPage; + availablePages->prev=curPage; + } + } + else + { + curPage->availableStack[curPage->availableStackSize++]=memoryWithPage; + + if (curPage->availableStackSize==BlocksPerPage() && + availablePagesSize>=DS_MEMORY_POOL_MAX_FREE_PAGES) + { + // After a certain point, just deallocate empty pages rather than keep them around + if (curPage==availablePages) + { + availablePages=curPage->next; + RakAssert(availablePages->availableStackSize>0); + } + curPage->prev->next=curPage->next; + curPage->next->prev=curPage->prev; + availablePagesSize--; + rakFree_Ex(curPage->availableStack, file, line ); + rakFree_Ex(curPage->block, file, line ); + rakFree_Ex(curPage, file, line ); + } + } +#endif + } + template + void MemoryPool::Clear(const char *file, unsigned int line) + { +#ifdef _DISABLE_MEMORY_POOL + return; +#else + Page *cur, *freed; + + if (availablePagesSize>0) + { + cur = availablePages; +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + while (true) + // do + { + rakFree_Ex(cur->availableStack, file, line ); + rakFree_Ex(cur->block, file, line ); + freed=cur; + cur=cur->next; + if (cur==availablePages) + { + rakFree_Ex(freed, file, line ); + break; + } + rakFree_Ex(freed, file, line ); + }// while(cur!=availablePages); + } + + if (unavailablePagesSize>0) + { + cur = unavailablePages; + while (1) + //do + { + rakFree_Ex(cur->availableStack, file, line ); + rakFree_Ex(cur->block, file, line ); + freed=cur; + cur=cur->next; + if (cur==unavailablePages) + { + rakFree_Ex(freed, file, line ); + break; + } + rakFree_Ex(freed, file, line ); + } // while(cur!=unavailablePages); + } + + availablePagesSize=0; + unavailablePagesSize=0; +#endif + } + template + int MemoryPool::BlocksPerPage(void) const + { + return memoryPoolPageSize / sizeof(MemoryWithPage); + } + template + bool MemoryPool::InitPage(Page *page, Page *prev, const char *file, unsigned int line) + { + int i=0; + const int bpp = BlocksPerPage(); + page->block=(MemoryWithPage*) rakMalloc_Ex(memoryPoolPageSize, file, line); + if (page->block==0) + return false; + page->availableStack=(MemoryWithPage**)rakMalloc_Ex(sizeof(MemoryWithPage*)*bpp, file, line); + if (page->availableStack==0) + { + rakFree_Ex(page->block, file, line ); + return false; + } + MemoryWithPage *curBlock = page->block; + MemoryWithPage **curStack = page->availableStack; + while (i < bpp) + { + curBlock->parentPage=page; + curStack[i]=curBlock++; + i++; + } + page->availableStackSize=bpp; + page->next=availablePages; + page->prev=prev; + return true; + } +} + +#endif diff --git a/src/raknet/DS_Multilist.h b/src/raknet/DS_Multilist.h new file mode 100755 index 0000000..e6acdb8 --- /dev/null +++ b/src/raknet/DS_Multilist.h @@ -0,0 +1,1644 @@ +/// \file DS_Multilist.h +/// \internal +/// \brief ADT that can represent an unordered list, ordered list, stack, or queue with a common interface +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __MULTILIST_H +#define __MULTILIST_H + +#include "RakAssert.h" +#include // memmove +#include "Export.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" + + +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#pragma warning( disable : 4512 ) // warning C4512: assignment operator could not be generated +#endif + +/// What algorithm to use to store the data for the Multilist +enum MultilistType +{ + /// Removing from the middle of the list will swap the end of the list rather than shift the elements. Push and Pop operate on the tail. + ML_UNORDERED_LIST, + /// A normal list, with the list order preserved. Push and Pop operate on the tail. + ML_STACK, + /// A queue. Push and Pop operate on the head + ML_QUEUE, + /// A list that is always kept in order. Elements must be unique, and compare against each other consistently using <, ==, and > + ML_ORDERED_LIST, + /// A list whose type can change at runtime + ML_VARIABLE_DURING_RUNTIME +}; + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// Can be used with Multilist::ForEach + /// Assuming the Multilist holds pointers, will delete those pointers + template + void DeletePtr_RakNet(templateType &ptr, const char *file, unsigned int line ) {RakNet::OP_DELETE(ptr, file, line);} + + /// Can be used with Multilist::ForEach + /// Assuming the Multilist holds pointers, will delete those pointers + template + void DeletePtr(templateType &ptr) {delete ptr;} + + /// The following is invalid. + /// bool operator<( const MyClass *myClass, const int &inputKey ) {return myClass->value < inputKey;} + /// At least one type has to be a reference to a class + /// MLKeyRef is a helper class to turn a native type into a class, so you can compare that native type against a pointer to a different class + /// Used for he Multilist, when _DataType != _KeyType + template < class templateType > + class MLKeyRef + { + public: + MLKeyRef(const templateType& input) : val(input) {} + const templateType &Get(void) const {return val;} + bool operator<( const templateType &right ) {return val < right;} + bool operator>( const templateType &right ) {return val > right;} + bool operator==( const templateType &right ) {return val == right;} + protected: + const templateType &val; + }; + + /// For the Multilist, when _DataType != _KeyType, you must define the comparison operators between the key and the data + /// This is non-trivial due to the need to use MLKeyRef in case the type held is a pointer to a structure or class and the key type is not a class + /// For convenience, this macro will implement the comparison operators under the following conditions + /// 1. _DataType is a pointer to a class or structure + /// 2. The key is a member variable of _DataType + #define DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS( _CLASS_NAME_, _KEY_TYPE_, _MEMBER_VARIABLE_NAME_ ) \ + bool operator<( const DataStructures::MLKeyRef<_KEY_TYPE_> &inputKey, const _CLASS_NAME_ *cls ) {return inputKey.Get() < cls->_MEMBER_VARIABLE_NAME_;} \ + bool operator>( const DataStructures::MLKeyRef<_KEY_TYPE_> &inputKey, const _CLASS_NAME_ *cls ) {return inputKey.Get() > cls->_MEMBER_VARIABLE_NAME_;} \ + bool operator==( const DataStructures::MLKeyRef<_KEY_TYPE_> &inputKey, const _CLASS_NAME_ *cls ) {return inputKey.Get() == cls->_MEMBER_VARIABLE_NAME_;} + + typedef uint32_t DefaultIndexType; + + /// \brief The multilist, representing an abstract data type that generally holds lists. + /// \param[in] _MultilistType What type of list this is, \sa MultilistType + /// \param[in] _DataType What type of data this list holds. + /// \param[in] _KeyType If a function takes a key to sort on, what type of key this is. The comparison operator between _DataType and _KeyType must be defined + /// \param[in] _IndexType What variable type to use for indices + template + class RAK_DLL_EXPORT Multilist + { + public: + Multilist(); + ~Multilist(); + Multilist( const Multilist& source ); + Multilist& operator= ( const Multilist& source ); + _DataType& operator[] ( const _IndexType position ) const; + /// Unordered list, stack is LIFO + /// QUEUE is FIFO + /// Ordered list is inserted in order + void Push(const _DataType &d, const char *file=__FILE__, unsigned int line=__LINE__ ); + void Push(const _DataType &d, const _KeyType &key, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Gets or removes and gets an element from the list, according to the same rules as Push(). + /// Ordered list is LIFO for the purposes of Pop and Peek. + _DataType &Pop(const char *file=__FILE__, unsigned int line=__LINE__); + _DataType &Peek(void) const; + + /// \brief Same as Push(), except FIFO and LIFO are reversed. + /// Ordered list still inserts in order. + void PushOpposite(const _DataType &d, const char *file=__FILE__, unsigned int line=__LINE__ ); + void PushOpposite(const _DataType &d, const _KeyType &key, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Same as Pop() and Peek(), except FIFO and LIFO are reversed. + _DataType &PopOpposite(const char *file=__FILE__, unsigned int line=__LINE__); + _DataType &PeekOpposite(void) const; + + /// \brief Stack,Queue: Inserts at index indicated, elements are shifted. + /// Ordered list: Inserts, position is ignored + void InsertAtIndex(const _DataType &d, _IndexType index, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Unordered list, removes at index indicated, swaps last element with that element. + /// Otherwise, array is shifted left to overwrite removed element + /// \details Index[0] returns the same as Pop() for a queue. + /// Same as PopOpposite() for the list and ordered list + void RemoveAtIndex(_IndexType position, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Find the index of \a key, and remove at that index. + bool RemoveAtKey(_KeyType key, bool assertIfDoesNotExist, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Finds the index of \a key. Return -1 if the key is not found. + _IndexType GetIndexOf(_KeyType key) const; + + /// \brief Returns where in the list we should insert the item, to preserve list order. + /// Returns -1 if the item is already in the list + _IndexType GetInsertionIndex(_KeyType key) const; + + /// \brief Finds the index of \a key. Return 0 if the key is not found. Useful if _DataType is always non-zero pointers. + _DataType GetPtr(_KeyType key) const; + + /// \brief Iterate over the list, calling the function pointer on each element. + void ForEach(void (*func)(_DataType &item, const char *file, unsigned int line), const char *file, unsigned int line); + void ForEach(void (*func)(_DataType &item)); + + /// \brief Returns if the list is empty. + bool IsEmpty(void) const; + + /// \brief Returns the number of elements used in the list. + _IndexType GetSize(void) const; + + /// \brief Empties the list. The list is not deallocated if it is small, + /// unless \a deallocateSmallBlocks is true + void Clear( bool deallocateSmallBlocks=true, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Empties the list, first calling RakNet::OP_Delete on all items. + /// \details The list is not deallocated if it is small, unless \a deallocateSmallBlocks is true + void ClearPointers( bool deallocateSmallBlocks=true, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Empty one item from the list, first calling RakNet::OP_Delete on that item. + void ClearPointer( _KeyType key, const char *file=__FILE__, unsigned int line=__LINE__ ); + + /// \brief Reverses the elements in the list, and flips the sort order + /// returned by GetSortOrder() if IsSorted() returns true at the time the function is called + void ReverseList(void); + + /// \brief Reallocates the list to a larger size. + /// If \a size is smaller than the value returned by GetSize(), the call does nothing. + void Reallocate(_IndexType size, const char *file=__FILE__, unsigned int line=__LINE__); + + /// \brief Sorts the list unless it is an ordered list, in which it does nothing as the list is assumed to already be sorted. + /// \details However, if \a force is true, it will also resort the ordered list, useful if the comparison operator between _KeyType and _DataType would now return different results + /// Once the list is sorted, further operations to lookup by key will be log2(n) until the list is modified + void Sort(bool force); + + /// \brief Sets the list to be remembered as sorted. + /// \details Optimization if the source is sorted already + void TagSorted(void); + + /// \brief Defaults to ascending. + /// \details Used by Sort(), and by ML_ORDERED_LIST + void SetSortOrder(bool ascending); + + /// \brief Returns true if ascending. + bool GetSortOrder(void) const; + + /// \brief Returns true if the list is currently believed to be in a sorted state. + /// \details Doesn't actually check for sortedness, just if Sort() + /// was recently called, or MultilistType is ML_ORDERED_LIST + bool IsSorted(void) const; + + /// Returns what type of list this is + MultilistType GetMultilistType(void) const; + + /// \brief Changes what type of list this is. + /// \pre Template must be defined with ML_VARIABLE_DURING_RUNTIME for this to do anything + /// \param[in] mlType Any value of the enum MultilistType, except ML_VARIABLE_DURING_RUNTIME + void SetMultilistType(MultilistType newType); + + /// \brief Returns the intersection of two lists. + /// Intersection is items common to both lists. + static void FindIntersection( + Multilist& source1, + Multilist& source2, + Multilist& intersection, + Multilist& uniqueToSource1, + Multilist& uniqueToSource2); + + protected: + void ReallocateIfNeeded(const char *file, unsigned int line); + void DeallocateIfNeeded(const char *file, unsigned int line); + void ReallocToSize(_IndexType newAllocationSize, const char *file, unsigned int line); + void ReverseListInternal(void); + void InsertInOrderedList(const _DataType &d, const _KeyType &key); + _IndexType GetIndexFromKeyInSortedList(const _KeyType &key, bool *objectExists) const; + void InsertShiftArrayRight(const _DataType &d, _IndexType index); + void DeleteShiftArrayLeft(_IndexType index); + void QSortAscending(_IndexType left, _IndexType right); + void QSortDescending(_IndexType left, _IndexType right); + void CopySource( const Multilist& source ); + + /// An array of user values + _DataType* data; + + /// Number of elements in the list + _IndexType dataSize; + + /// Size of \a array + _IndexType allocationSize; + + /// Array index for the head of the queue + _IndexType queueHead; + + /// Array index for the tail of the queue + _IndexType queueTail; + + /// How many bytes the user chose to preallocate + /// Won't automatically deallocate below this + _IndexType preallocationSize; + + enum + { + ML_UNSORTED, + ML_SORTED_ASCENDING, + ML_SORTED_DESCENDING + } sortState; + + bool ascendingSort; + + // In case we are using the variable type multilist + MultilistType variableMultilistType; + }; + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Multilist() + { + data=0; + dataSize=0; + allocationSize=0; + ascendingSort=true; + sortState=ML_UNSORTED; + queueHead=0; + queueTail=0; + preallocationSize=0; + + if (_MultilistType==ML_ORDERED_LIST) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_UNSORTED; + + if (_MultilistType==ML_VARIABLE_DURING_RUNTIME) + variableMultilistType=ML_UNORDERED_LIST; + } + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::~Multilist() + { + if (data!=0) + RakNet::OP_DELETE_ARRAY(data, _FILE_AND_LINE_); + } + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Multilist( const Multilist& source ) + { + CopySource(source); + } + + template + Multilist<_MultilistType, _DataType, _KeyType, _IndexType>& Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::operator= ( const Multilist& source ) + { + Clear(true); + CopySource(source); + return *this; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::CopySource( const Multilist& source ) + { + dataSize=source.GetSize(); + ascendingSort=source.ascendingSort; + sortState=source.sortState; + queueHead=0; + queueTail=dataSize; + preallocationSize=source.preallocationSize; + variableMultilistType=source.variableMultilistType; + if (source.data==0) + { + data=0; + allocationSize=0; + } + else + { + allocationSize=dataSize; + data = RakNet::OP_NEW_ARRAY<_DataType>(dataSize,_FILE_AND_LINE_); + _IndexType i; + for (i=0; i < dataSize; i++) + data[i]=source[i]; + } + } + + template + _DataType& Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::operator[] ( const _IndexType position ) const + { + RakAssert(position= allocationSize ) + return data[ queueHead + position - allocationSize ]; + else + return data[ queueHead + position ]; + } + + return data[position]; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Push(const _DataType &d, const char *file, unsigned int line ) + { + Push(d,d,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Push(const _DataType &d, const _KeyType &key, const char *file, unsigned int line ) + { + ReallocateIfNeeded(file,line); + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK) + { + data[dataSize]=d; + dataSize++; + } + else if (GetMultilistType()==ML_QUEUE) + { + data[queueTail++] = d; + + if ( queueTail == allocationSize ) + queueTail = 0; + dataSize++; + } + else + { + RakAssert(GetMultilistType()==ML_ORDERED_LIST); + InsertInOrderedList(d,key); + } + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_QUEUE) + { + // Break sort if no longer sorted + if (sortState!=ML_UNSORTED && dataSize>1) + { + if (ascendingSort) + { + if ( MLKeyRef<_KeyType>(key) < operator[](dataSize-2) ) + sortState=ML_UNSORTED; + } + else + { + if ( MLKeyRef<_KeyType>(key) > operator[](dataSize-2) ) + sortState=ML_UNSORTED; + } + + sortState=ML_UNSORTED; + } + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Pop(const char *file, unsigned int line) + { + RakAssert(IsEmpty()==false); + DeallocateIfNeeded(file,line); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + dataSize--; + return data[dataSize]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + + if ( ++queueHead == allocationSize ) + queueHead = 0; + + if ( queueHead == 0 ) + return data[ allocationSize -1 ]; + + dataSize--; + return data[ queueHead -1 ]; + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Peek(void) const + { + RakAssert(IsEmpty()==false); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + return data[dataSize-1]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + return data[ queueHead ]; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PushOpposite(const _DataType &d, const char *file, unsigned int line ) + { + PushOpposite(d,d,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PushOpposite(const _DataType &d, const _KeyType &key, const char *file, unsigned int line ) + { + ReallocateIfNeeded(file,line); + + // Unordered list Push at back + if (GetMultilistType()==ML_UNORDERED_LIST) + { + data[dataSize]=d; + dataSize++; + } + else if (GetMultilistType()==ML_STACK) + { + // Stack push at front of the list, instead of back as normal + InsertAtIndex(d,0,file,line); + } + else if (GetMultilistType()==ML_QUEUE) + { + // Queue push at front of the list, instead of back as normal + InsertAtIndex(d,0,file,line); + } + else + { + RakAssert(GetMultilistType()==ML_ORDERED_LIST); + InsertInOrderedList(d,key); + } + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_QUEUE) + { + // Break sort if no longer sorted + if (sortState!=ML_UNSORTED && dataSize>1) + { + if (ascendingSort) + { + if ( MLKeyRef<_KeyType>(key) > operator[](1) ) + sortState=ML_UNSORTED; + } + else + { + if ( MLKeyRef<_KeyType>(key) < operator[](1) ) + sortState=ML_UNSORTED; + } + } + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PopOpposite(const char *file, unsigned int line) + { + RakAssert(IsEmpty()==false); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + // Copy leftmost to end + ReallocateIfNeeded(file,line); + data[dataSize]=data[0]; + DeleteShiftArrayLeft(0); + --dataSize; + // Assuming still leaves at least one element past the end of the list allocated + DeallocateIfNeeded(file,line); + // Return end + return data[dataSize+1]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + // Deallocate first, since we are returning off the existing list + DeallocateIfNeeded(file,line); + dataSize--; + + if (queueTail==0) + queueTail=allocationSize-1; + else + --queueTail; + + return data[queueTail]; + } + } + + template + _DataType &Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::PeekOpposite(void) const + { + RakAssert(IsEmpty()==false); + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + return data[0]; + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + _IndexType priorIndex; + if (queueTail==0) + priorIndex=allocationSize-1; + else + priorIndex=queueTail-1; + + return data[priorIndex]; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::InsertAtIndex(const _DataType &d, _IndexType index, const char *file, unsigned int line) + { + ReallocateIfNeeded(file,line); + + if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + if (index>=dataSize) + { + // insert at end + data[dataSize]=d; + + dataSize++; + } + else + { + // insert at index + InsertShiftArrayRight(d,index); + } + } + else + { + data[queueTail++] = d; + + if ( queueTail == allocationSize ) + queueTail = 0; + + ++dataSize; + + if (dataSize==1) + return; + + _IndexType writeIndex, readIndex, trueWriteIndex, trueReadIndex; + writeIndex=dataSize-1; + readIndex=writeIndex-1; + while (readIndex >= index) + { + if ( queueHead + writeIndex >= allocationSize ) + trueWriteIndex = queueHead + writeIndex - allocationSize; + else + trueWriteIndex = queueHead + writeIndex; + + if ( queueHead + readIndex >= allocationSize ) + trueReadIndex = queueHead + readIndex - allocationSize; + else + trueReadIndex = queueHead + readIndex; + + data[trueWriteIndex]=data[trueReadIndex]; + + if (readIndex==0) + break; + writeIndex--; + readIndex--; + } + + if ( queueHead + index >= allocationSize ) + trueWriteIndex = queueHead + index - allocationSize; + else + trueWriteIndex = queueHead + index; + + data[trueWriteIndex]=d; + } + + if (_MultilistType!=ML_ORDERED_LIST) + sortState=ML_UNSORTED; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::RemoveAtIndex(_IndexType position, const char *file, unsigned int line) + { + RakAssert(position < dataSize); + RakAssert(IsEmpty()==false); + + if (GetMultilistType()==ML_UNORDERED_LIST) + { + // Copy tail to current + data[position]=data[dataSize-1]; + } + else if (GetMultilistType()==ML_STACK || GetMultilistType()==ML_ORDERED_LIST) + { + DeleteShiftArrayLeft(position); + } + else + { + RakAssert(GetMultilistType()==ML_QUEUE); + + _IndexType index, next; + + if ( queueHead + position >= allocationSize ) + index = queueHead + position - allocationSize; + else + index = queueHead + position; + + next = index + 1; + + if ( next == allocationSize ) + next = 0; + + while ( next != queueTail ) + { + // Overwrite the previous element + data[ index ] = data[ next ]; + index = next; + //next = (next + 1) % allocationSize; + + if ( ++next == allocationSize ) + next = 0; + } + + // Move the queueTail back + if ( queueTail == 0 ) + queueTail = allocationSize - 1; + else + --queueTail; + } + + + dataSize--; + DeallocateIfNeeded(file,line); + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::RemoveAtKey(_KeyType key, bool assertIfDoesNotExist, const char *file, unsigned int line) + { + _IndexType index = GetIndexOf(key); + if (index==(_IndexType)-1) + { + RakAssert(assertIfDoesNotExist==false && "RemoveAtKey element not found"); + return false; + } + RemoveAtIndex(index,file,line); + return true; + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetIndexOf(_KeyType key) const + { + _IndexType i; + if (IsSorted()) + { + bool objectExists; + i=GetIndexFromKeyInSortedList(key, &objectExists); + if (objectExists) + return i; + return (_IndexType)-1; + } + else if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK) + { + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==data[i]) + return i; + } + return (_IndexType)-1; + } + else + { + RakAssert( GetMultilistType()==ML_QUEUE ); + + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==operator[](i)) + return i; + } + return (_IndexType)-1; + } + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetInsertionIndex(_KeyType key) const + { + _IndexType i; + if (IsSorted()) + { + bool objectExists; + i=GetIndexFromKeyInSortedList(key, &objectExists); + if (objectExists) + return (_IndexType)-1; + return i; + } + else if (GetMultilistType()==ML_UNORDERED_LIST || GetMultilistType()==ML_STACK) + { + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==data[i]) + return (_IndexType)-1; + } + return dataSize; + } + else + { + RakAssert( GetMultilistType()==ML_QUEUE ); + + for (i=0; i < dataSize; i++) + { + if (MLKeyRef<_KeyType>(key)==operator[](i)) + return (_IndexType)-1; + } + return dataSize; + } + } + + template + _DataType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetPtr(_KeyType key) const + { + _IndexType i = GetIndexOf(key); + if (i==(_IndexType)-1) + return 0; + return data[i]; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ForEach(void (*func)(_DataType &item, const char *file, unsigned int line), const char *file, unsigned int line) + { + _IndexType i; + for (i=0; i < dataSize; i++) + func(operator[](i), file, line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ForEach(void (*func)(_DataType &item)) + { + _IndexType i; + for (i=0; i < dataSize; i++) + func(operator[](i)); + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::IsEmpty(void) const + { + return dataSize==0; + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetSize(void) const + { + return dataSize; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Clear( bool deallocateSmallBlocks, const char *file, unsigned int line ) + { + dataSize=0; + if (GetMultilistType()==ML_ORDERED_LIST) + if (ascendingSort) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_SORTED_DESCENDING; + else + sortState=ML_UNSORTED; + queueHead=0; + queueTail=0; + + if (deallocateSmallBlocks && allocationSize < 128 && data) + { + RakNet::OP_DELETE_ARRAY(data,file,line); + data=0; + allocationSize=0; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ClearPointers( bool deallocateSmallBlocks, const char *file, unsigned int line ) + { + _IndexType i; + for (i=0; i < dataSize; i++) + RakNet::OP_DELETE(operator[](i), file, line); + Clear(deallocateSmallBlocks, file, line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ClearPointer( _KeyType key, const char *file, unsigned int line ) + { + _IndexType i; + i = GetIndexOf(key); + if (i!=-1) + { + RakNet::OP_DELETE(operator[](i), file, line); + RemoveAtIndex(i); + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReverseList(void) + { + if (IsSorted()) + ascendingSort=!ascendingSort; + + ReverseListInternal(); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Reallocate(_IndexType size, const char *file, unsigned int line) + { + _IndexType newAllocationSize; + if (size < dataSize) + newAllocationSize=dataSize; + else + newAllocationSize=size; + preallocationSize=size; + ReallocToSize(newAllocationSize,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::Sort(bool force) + { + if (IsSorted() && force==false) + return; + + if (dataSize>1) + { + if (ascendingSort) + QSortAscending(0,dataSize-1); + else + QSortDescending(0,dataSize-1); + } + + TagSorted(); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::TagSorted(void) + { + if (ascendingSort) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_SORTED_DESCENDING; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::QSortAscending(_IndexType leftEdge, _IndexType rightEdge) + { + _DataType temp; + _IndexType left=leftEdge; + _IndexType right=rightEdge; + _IndexType pivotIndex=left++; + + while (left data[pivotIndex]) + { + --left; + + data[pivotIndex]=data[left]; + data[left]=temp; + } + else + { + data[pivotIndex]=data[left]; + data[left]=temp; + + --left; + } + + if (left!=leftEdge) + QSortAscending(leftEdge, left); + + if (right!=rightEdge) + QSortAscending(right, rightEdge); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::QSortDescending(_IndexType leftEdge, _IndexType rightEdge) + { + _DataType temp; + _IndexType left=leftEdge; + _IndexType right=rightEdge; + _IndexType pivotIndex=left++; + + while (left= data[pivotIndex]) + { + ++left; + } + else + { + temp=data[left]; + data[left]=data[right]; + data[right]=temp; + --right; + } + } + + temp=data[pivotIndex]; + + // Move pivot to center + if (data[left] < data[pivotIndex]) + { + --left; + + data[pivotIndex]=data[left]; + data[left]=temp; + } + else + { + data[pivotIndex]=data[left]; + data[left]=temp; + + --left; + } + + if (left!=leftEdge) + QSortDescending(leftEdge, left); + + if (right!=rightEdge) + QSortDescending(right, rightEdge); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::SetSortOrder(bool ascending) + { + if (ascendingSort!=ascending && IsSorted()) + { + ascendingSort=ascending; + // List is sorted, and the sort order has changed. So reverse the list + ReverseListInternal(); + } + else + ascendingSort=ascending; + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetSortOrder(void) const + { + return ascendingSort; + } + + template + bool Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::IsSorted(void) const + { + return GetMultilistType()==ML_ORDERED_LIST || sortState!=ML_UNSORTED; + } + + template + MultilistType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetMultilistType(void) const + { + if (_MultilistType==ML_VARIABLE_DURING_RUNTIME) + return variableMultilistType; + return _MultilistType; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::SetMultilistType(MultilistType newType) + { + RakAssert(_MultilistType==ML_VARIABLE_DURING_RUNTIME); + switch (variableMultilistType) + { + case ML_UNORDERED_LIST: + switch (newType) + { + case ML_UNORDERED_LIST: + // No change + break; + case ML_STACK: + // Same data format + break; + case ML_QUEUE: + queueHead=0; + queueTail=dataSize; + break; + case ML_ORDERED_LIST: + Sort(false); + break; + } + break; + case ML_STACK: + switch (newType) + { + case ML_UNORDERED_LIST: + // Same data format + break; + case ML_STACK: + // No change + break; + case ML_QUEUE: + queueHead=0; + queueTail=dataSize; + break; + case ML_ORDERED_LIST: + Sort(false); + break; + } + break; + case ML_QUEUE: + switch (newType) + { + case ML_UNORDERED_LIST: + case ML_STACK: + case ML_ORDERED_LIST: + if (queueTail < queueHead) + { + // Realign data if wrapped + ReallocToSize(dataSize, _FILE_AND_LINE_); + } + else + { + // Else can just copy starting at head + _IndexType i; + for (i=0; i < dataSize; i++) + data[i]=operator[](i); + } + if (newType==ML_ORDERED_LIST) + Sort(false); + break; + case ML_QUEUE: + // No change + break; + } + break; + case ML_ORDERED_LIST: + switch (newType) + { + case ML_UNORDERED_LIST: + case ML_STACK: + case ML_QUEUE: + // Same data format + // Tag as sorted + if (ascendingSort) + sortState=ML_SORTED_ASCENDING; + else + sortState=ML_SORTED_DESCENDING; + if (newType==ML_QUEUE) + { + queueHead=0; + queueTail=dataSize; + } + break; + case ML_ORDERED_LIST: + // No change + break; + } + break; + } + + variableMultilistType=newType; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::FindIntersection( + Multilist& source1, + Multilist& source2, + Multilist& intersection, + Multilist& uniqueToSource1, + Multilist& uniqueToSource2) + { + _IndexType index1=0, index2=0; + source1.SetSortOrder(true); + source2.SetSortOrder(true); + source1.Sort(false); + source2.Sort(false); + intersection.Clear(true,_FILE_AND_LINE_); + uniqueToSource1.Clear(true,_FILE_AND_LINE_); + uniqueToSource2.Clear(true,_FILE_AND_LINE_); + + while (index1 < source1.GetSize() && index2 < source2.GetSize()) + { + if (source1[index1] + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReallocateIfNeeded(const char *file, unsigned int line) + { + if (dataSize65536) + newAllocationSize=allocationSize+65536; + else + { + newAllocationSize=allocationSize<<1; // * 2 + // Protect against underflow + if (newAllocationSize < allocationSize) + newAllocationSize=allocationSize+65536; + } + + ReallocToSize(newAllocationSize,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::DeallocateIfNeeded(const char *file, unsigned int line) + { + if (allocationSize<512) + return; + if (dataSize >= allocationSize/3 ) + return; + if (dataSize <= preallocationSize ) + return; + + _IndexType newAllocationSize = dataSize<<1; // * 2 + + ReallocToSize(newAllocationSize,file,line); + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReallocToSize(_IndexType newAllocationSize, const char *file, unsigned int line) + { + _DataType* newData = RakNet::OP_NEW_ARRAY<_DataType>(newAllocationSize,file,line); + _IndexType i; + for (i=0; i < dataSize; i++) + newData[i]=operator[](i); + if (dataSize>0) + { + RakNet::OP_DELETE_ARRAY(data,file,line); + if (GetMultilistType()==ML_QUEUE) + { + queueHead=0; + queueTail=dataSize; + } + } + data=newData; + allocationSize=newAllocationSize; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::ReverseListInternal(void) + { + _DataType temp; + _IndexType i; + for (i=0; i < dataSize/2; i++) + { + temp=operator[](i); + operator[](i)=operator[](dataSize-1-i); + operator[](dataSize-1-i)=temp; + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::InsertInOrderedList(const _DataType &d, const _KeyType &key) + { + RakAssert(GetMultilistType()==ML_ORDERED_LIST); + + bool objectExists; + _IndexType index; + index = GetIndexFromKeyInSortedList(key, &objectExists); + + // if (objectExists) + // { + // Ordered list only allows unique insertions + // RakAssert("Duplicate insertion into ordered list" && false); + // return; + // } + + if (index>=dataSize) + { + // insert at end + data[dataSize]=d; + dataSize++; + } + else + { + // insert at index + InsertShiftArrayRight(d,index); + } + } + + template + _IndexType Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::GetIndexFromKeyInSortedList(const _KeyType &key, bool *objectExists) const + { + RakAssert(IsSorted()); + _IndexType index, upperBound, lowerBound; + + if (dataSize==0) + { + *objectExists=false; + return 0; + } + + upperBound=dataSize-1; + lowerBound=0; + index = dataSize/2; + +#ifdef _MSC_VER + #pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + if (MLKeyRef<_KeyType>(key) > operator[](index) ) + { + if (ascendingSort) + lowerBound=index+1; + else + upperBound=index-1; + } + else if (MLKeyRef<_KeyType>(key) < operator[](index) ) + { + if (ascendingSort) + upperBound=index-1; + else + lowerBound=index+1; + } + else + { + // == + *objectExists=true; + return index; + } + + index=lowerBound+(upperBound-lowerBound)/2; + + if (lowerBound>upperBound || upperBound==(_IndexType)-1) + { + *objectExists=false; + return lowerBound; // No match + } + } + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::InsertShiftArrayRight(const _DataType &d, _IndexType index) + { + RakAssert(_MultilistType!=ML_QUEUE); + + // Move the elements in the list to make room + _IndexType i; + for ( i = dataSize; i != index; i-- ) + data[ i ] = data[ i - 1 ]; + + // Insert the new item at the correct spot + data[ index ] = d; + + ++dataSize; + } + + template + void Multilist<_MultilistType, _DataType, _KeyType, _IndexType>::DeleteShiftArrayLeft( _IndexType index ) + { + RakAssert(index < dataSize); + RakAssert(_MultilistType!=ML_QUEUE); + + _IndexType i; + for ( i = index; i < dataSize-1; i++ ) + data[i]=data[i+1]; + } +}; + +/* +struct KeyAndValue +{ + int key; + short value; +}; + +DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS(KeyAndValue,int,key) + +void MultilistUnitTest(void) +{ + DataStructures::DefaultIndexType oldSize; + DataStructures::Multilist ml1; + ml1.Reallocate(64); + RakAssert(ml1.IsEmpty()); + ml1.Push(53); + RakAssert(ml1.Peek()==53); + RakAssert(ml1.IsEmpty()==false); + RakAssert(ml1.Pop()==53); + RakAssert(ml1.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml1.Push(i); + RakAssert(ml1.GetIndexOf(200)==200); + RakAssert(ml1.PeekOpposite()==0); + RakAssert(ml1.PopOpposite()==0); + RakAssert(ml1.PeekOpposite()==1); + RakAssert(ml1.Peek()==511); + ml1.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml1[i]==511-i); + RakAssert(ml1.PeekOpposite()==511); + RakAssert(ml1.Peek()==1); + oldSize = ml1.GetSize(); + ml1.RemoveAtIndex(0); + RakAssert(ml1.GetSize()==oldSize-1); + RakAssert(ml1.PeekOpposite()==1); + ml1.Clear(_FILE_AND_LINE_); + RakAssert(ml1.IsEmpty()==true); + + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(100); + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(50); + ml1.Push(100); + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(100); + ml1.Push(50); + ml1.Sort(true); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(100); + ml1.Push(50); + ml1.Push(150); + ml1.Push(25); + ml1.Push(175); + ml1.Sort(true); + RakAssert(ml1[0]==25); + RakAssert(ml1[1]==50); + RakAssert(ml1[2]==100); + RakAssert(ml1[3]==150); + RakAssert(ml1[4]==175); + RakAssert(ml1.GetIndexOf(25)==0); + RakAssert(ml1.GetIndexOf(50)==1); + RakAssert(ml1.GetIndexOf(100)==2); + RakAssert(ml1.GetIndexOf(150)==3); + RakAssert(ml1.GetIndexOf(175)==4); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(1); + ml1.Push(2); + ml1.Push(3); + ml1.Push(4); + ml1.Push(5); + ml1.Sort(true); + RakAssert(ml1[0]==1); + RakAssert(ml1[1]==2); + RakAssert(ml1[2]==3); + RakAssert(ml1[3]==4); + RakAssert(ml1[4]==5); + RakAssert(ml1.GetIndexOf(1)==0); + RakAssert(ml1.GetIndexOf(2)==1); + RakAssert(ml1.GetIndexOf(3)==2); + RakAssert(ml1.GetIndexOf(4)==3); + RakAssert(ml1.GetIndexOf(5)==4); + ml1.Clear(_FILE_AND_LINE_); + + ml1.Push(5); + ml1.Push(4); + ml1.Push(3); + ml1.Push(2); + ml1.Push(1); + ml1.Sort(true); + RakAssert(ml1[0]==1); + RakAssert(ml1[1]==2); + RakAssert(ml1[2]==3); + RakAssert(ml1[3]==4); + RakAssert(ml1[4]==5); + RakAssert(ml1.GetIndexOf(1)==0); + RakAssert(ml1.GetIndexOf(2)==1); + RakAssert(ml1.GetIndexOf(3)==2); + RakAssert(ml1.GetIndexOf(4)==3); + RakAssert(ml1.GetIndexOf(5)==4); + ml1.Sort(true); + RakAssert(ml1[0]==1); + RakAssert(ml1[1]==2); + RakAssert(ml1[2]==3); + RakAssert(ml1[3]==4); + RakAssert(ml1[4]==5); + RakAssert(ml1.GetIndexOf(1)==0); + RakAssert(ml1.GetIndexOf(2)==1); + RakAssert(ml1.GetIndexOf(3)==2); + RakAssert(ml1.GetIndexOf(4)==3); + RakAssert(ml1.GetIndexOf(5)==4); + ml1.Clear(_FILE_AND_LINE_); + + DataStructures::Multilist ml2; + ml2.Reallocate(64); + RakAssert(ml2.IsEmpty()); + ml2.Push(53); + RakAssert(ml2.Peek()==53); + RakAssert(ml2.IsEmpty()==false); + RakAssert(ml2.Pop()==53); + RakAssert(ml2.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml2.Push(i); + RakAssert(ml2.GetIndexOf(200)==200); + RakAssert(ml2.PeekOpposite()==0); + RakAssert(ml2.PopOpposite()==0); + RakAssert(ml2.PeekOpposite()==1); + RakAssert(ml2.Peek()==511); + ml2.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml2[i]==511-i); + RakAssert(ml2.PeekOpposite()==511); + RakAssert(ml2.Peek()==1); + oldSize = ml2.GetSize(); + ml2.RemoveAtIndex(0); + RakAssert(ml2.GetSize()==oldSize-1); + RakAssert(ml2.Peek()==1); + RakAssert(ml2.PeekOpposite()==510); + ml2.Clear(_FILE_AND_LINE_); + RakAssert(ml2.IsEmpty()==true); + + DataStructures::Multilist ml3; + RakAssert(ml3.IsEmpty()); + ml3.Push(53); + RakAssert(ml3.Peek()==53); + RakAssert(ml3.IsEmpty()==false); + RakAssert(ml3.Pop()==53); + RakAssert(ml3.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml3.Push(i); + RakAssert(ml3.GetIndexOf(200)==200); + RakAssert(ml3.PeekOpposite()==511); + RakAssert(ml3.PopOpposite()==511); + RakAssert(ml3.PeekOpposite()==510); + RakAssert(ml3.Peek()==0); + ml3.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml3[i]==511-1-i); + RakAssert(ml3.PeekOpposite()==0); + RakAssert(ml3.Peek()==510); + oldSize = ml3.GetSize(); + ml3.RemoveAtIndex(0); + RakAssert(ml3.GetSize()==oldSize-1); + RakAssert(ml3.Peek()==509); + RakAssert(ml3.PeekOpposite()==0); + ml3.Clear(_FILE_AND_LINE_); + RakAssert(ml3.IsEmpty()==true); + + ml3.PushOpposite(100); + ml3.PushOpposite(50); + ml3.PushOpposite(150); + ml3.PushOpposite(25); + ml3.PushOpposite(175); + ml3.Sort(true); + RakAssert(ml3[0]==25); + RakAssert(ml3[1]==50); + RakAssert(ml3[2]==100); + RakAssert(ml3[3]==150); + RakAssert(ml3[4]==175); + RakAssert(ml3.GetIndexOf(25)==0); + RakAssert(ml3.GetIndexOf(50)==1); + RakAssert(ml3.GetIndexOf(100)==2); + RakAssert(ml3.GetIndexOf(150)==3); + RakAssert(ml3.GetIndexOf(175)==4); + ml3.Clear(_FILE_AND_LINE_); + + ml3.PushOpposite(1); + ml3.PushOpposite(2); + ml3.PushOpposite(3); + ml3.PushOpposite(4); + ml3.PushOpposite(5); + ml3.Sort(true); + RakAssert(ml3[0]==1); + RakAssert(ml3[1]==2); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==4); + RakAssert(ml3[4]==5); + RakAssert(ml3.GetIndexOf(1)==0); + RakAssert(ml3.GetIndexOf(2)==1); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==3); + RakAssert(ml3.GetIndexOf(5)==4); + ml3.Clear(_FILE_AND_LINE_); + + ml3.PushOpposite(5); + ml3.PushOpposite(4); + ml3.PushOpposite(3); + ml3.PushOpposite(2); + ml3.PushOpposite(1); + ml3.Sort(true); + RakAssert(ml3[0]==1); + RakAssert(ml3[1]==2); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==4); + RakAssert(ml3[4]==5); + RakAssert(ml3.GetIndexOf(1)==0); + RakAssert(ml3.GetIndexOf(2)==1); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==3); + RakAssert(ml3.GetIndexOf(5)==4); + ml3.Sort(true); + RakAssert(ml3[0]==1); + RakAssert(ml3[1]==2); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==4); + RakAssert(ml3[4]==5); + RakAssert(ml3.GetIndexOf(1)==0); + RakAssert(ml3.GetIndexOf(2)==1); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==3); + RakAssert(ml3.GetIndexOf(5)==4); + + ml3.SetSortOrder(false); + ml3.Sort(false); + RakAssert(ml3[0]==5); + RakAssert(ml3[1]==4); + RakAssert(ml3[2]==3); + RakAssert(ml3[3]==2); + RakAssert(ml3[4]==1); + RakAssert(ml3.GetIndexOf(1)==4); + RakAssert(ml3.GetIndexOf(2)==3); + RakAssert(ml3.GetIndexOf(3)==2); + RakAssert(ml3.GetIndexOf(4)==1); + RakAssert(ml3.GetIndexOf(5)==0); + + ml3.Clear(_FILE_AND_LINE_); + + DataStructures::Multilist ml4; + ml4.Reallocate(64); + RakAssert(ml4.IsEmpty()); + ml4.Push(53); + RakAssert(ml4.Peek()==53); + RakAssert(ml4.IsEmpty()==false); + RakAssert(ml4.Pop()==53); + RakAssert(ml4.IsEmpty()==true); + for (int i=0; i < 512; i++) + ml4.Push(i); + RakAssert(ml4.GetIndexOf(200)==200); + RakAssert(ml4.PeekOpposite()==0); + RakAssert(ml4.PopOpposite()==0); + RakAssert(ml4.PeekOpposite()==1); + RakAssert(ml4.Peek()==511); + ml4.ReverseList(); + for (int i=0; i < 511; i++) + RakAssert(ml4[i]==511-i); + RakAssert(ml4.PeekOpposite()==511); + RakAssert(ml4.Peek()==1); + oldSize = ml4.GetSize(); + ml4.RemoveAtIndex(0); + RakAssert(ml4.GetSize()==oldSize-1); + RakAssert(ml4.Peek()==1); + RakAssert(ml4.PeekOpposite()==510); + ml4.Clear(_FILE_AND_LINE_); + RakAssert(ml4.IsEmpty()==true); + + DataStructures::Multilist ml5; + + for (int i=0; i < 16; i++) + { + KeyAndValue *kav = new KeyAndValue; + kav->key=i; + kav->value=i+100; + ml5.Push(kav,kav->key); + } + + RakAssert(ml5.GetIndexOf(0)==0); + RakAssert(ml5.GetIndexOf(5)==5); + RakAssert(ml5.GetIndexOf(15)==15); + RakAssert(ml5.GetIndexOf(16)==-1); + ml5.RemoveAtKey(0,true); + RakAssert(ml5.GetIndexOf(1)==0); + KeyAndValue *iPtr = ml5.GetPtr(5); + RakAssert(iPtr); + RakAssert(iPtr->value=105); + iPtr = ml5.GetPtr(1234); + RakAssert(iPtr==0); + ml5.ForEach(DataStructures::DeletePtr); + + + DataStructures::Multilist ml6; + ml6.Push(2); + ml6.Push(1); + ml6.Push(6); + ml6.Push(3); + RakAssert(ml6.Peek()==3); + ml6.SetMultilistType(ML_STACK); + RakAssert(ml6.Peek()==3); + ml6.SetMultilistType(ML_QUEUE); + RakAssert(ml6.Peek()==2); + ml6.SetMultilistType(ML_ORDERED_LIST); + RakAssert(ml6.Peek()=6); + ml6.SetMultilistType(ML_STACK); + RakAssert(ml6.Peek()==6); + ml6.SetMultilistType(ML_QUEUE); + RakAssert(ml6.Peek()==1); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif +*/ + +#endif diff --git a/src/raknet/DS_OrderedChannelHeap.h b/src/raknet/DS_OrderedChannelHeap.h new file mode 100755 index 0000000..104391e --- /dev/null +++ b/src/raknet/DS_OrderedChannelHeap.h @@ -0,0 +1,244 @@ +/// \file DS_OrderedChannelHeap.h +/// \internal +/// \brief Ordered Channel Heap . This is a heap where you add to it on multiple ordered channels, with each channel having a different weight. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAKNET_ORDERED_CHANNEL_HEAP_H +#define __RAKNET_ORDERED_CHANNEL_HEAP_H + +#include "DS_Heap.h" +#include "DS_Map.h" +#include "DS_Queue.h" +#include "Export.h" +#include "RakAssert.h" +#include "Rand.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template > + class RAK_DLL_EXPORT OrderedChannelHeap + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultMapKeyComparison(channel_key_type(),channel_key_type());} + + OrderedChannelHeap(); + ~OrderedChannelHeap(); + void Push(const channel_key_type &channelID, const heap_data_type &data); + void PushAtHead(const unsigned index, const channel_key_type &channelID, const heap_data_type &data); + heap_data_type Pop(const unsigned startingIndex=0); + heap_data_type Peek(const unsigned startingIndex) const; + void AddChannel(const channel_key_type &channelID, const double weight); + void RemoveChannel(channel_key_type channelID); + void Clear(void); + heap_data_type& operator[] ( const unsigned int position ) const; + unsigned ChannelSize(const channel_key_type &channelID); + unsigned Size(void) const; + + struct QueueAndWeight + { + DataStructures::Queue randResultQueue; + double weight; + bool signalDeletion; + }; + + struct HeapChannelAndData + { + HeapChannelAndData() {} + HeapChannelAndData(const channel_key_type &_channel, const heap_data_type &_data) : data(_data), channel(_channel) {} + heap_data_type data; + channel_key_type channel; + }; + + protected: + DataStructures::Map map; + DataStructures::Heap heap; + void GreatestRandResult(void); + }; + + template + OrderedChannelHeap::OrderedChannelHeap() + { + } + + template + OrderedChannelHeap::~OrderedChannelHeap() + { + Clear(); + } + + template + void OrderedChannelHeap::Push(const channel_key_type &channelID, const heap_data_type &data) + { + PushAtHead(MAX_UNSIGNED_LONG, channelID, data); + } + + template + void OrderedChannelHeap::GreatestRandResult(void) + { + double greatest; + unsigned i; + greatest=0.0; + for (i=0; i < map.Size(); i++) + { + if (map[i]->randResultQueue.Size() && map[i]->randResultQueue[0]>greatest) + greatest=map[i]->randResultQueue[0]; + } + return greatest; + } + + template + void OrderedChannelHeap::PushAtHead(const unsigned index, const channel_key_type &channelID, const heap_data_type &data) + { + // If an assert hits here then this is an unknown channel. Call AddChannel first. + QueueAndWeight *queueAndWeight=map.Get(channelID); + double maxRange, minRange, rnd; + if (queueAndWeight->randResultQueue.Size()==0) + { + // Set maxRange to the greatest random number waiting to be returned, rather than 1.0 necessarily + // This is so weights are scaled similarly among channels. For example, if the head weight for a used channel was .25 + // and then we added another channel, the new channel would need to choose between .25 and 0 + // If we chose between 1.0 and 0, it would be 1/.25 (4x) more likely to be at the head of the heap than it should be + maxRange=GreatestRandResult(); + if (maxRange==0.0) + maxRange=1.0; + minRange=0.0; + } + else if (index >= queueAndWeight->randResultQueue.Size()) + { + maxRange=queueAndWeight->randResultQueue[queueAndWeight->randResultQueue.Size()-1]*.99999999; + minRange=0.0; + } + else + { + if (index==0) + { + maxRange=GreatestRandResult(); + if (maxRange==queueAndWeight->randResultQueue[0]) + maxRange=1.0; + } + else if (index >= queueAndWeight->randResultQueue.Size()) + maxRange=queueAndWeight->randResultQueue[queueAndWeight->randResultQueue.Size()-1]*.99999999; + else + maxRange=queueAndWeight->randResultQueue[index-1]*.99999999; + + minRange=maxRange=queueAndWeight->randResultQueue[index]*1.00000001; + } + +#ifdef _DEBUG + RakAssert(maxRange!=0.0); +#endif + rnd=frandomMT() * (maxRange - minRange); + if (rnd==0.0) + rnd=maxRange/2.0; + + if (index >= queueAndWeight->randResultQueue.Size()) + queueAndWeight->randResultQueue.Push(rnd); + else + queueAndWeight->randResultQueue.PushAtHead(rnd, index); + + heap.Push(rnd*queueAndWeight->weight, HeapChannelAndData(channelID, data)); + } + + template + heap_data_type OrderedChannelHeap::Pop(const unsigned startingIndex) + { + RakAssert(startingIndex < heap.Size()); + + QueueAndWeight *queueAndWeight=map.Get(heap[startingIndex].channel); + if (startingIndex!=0) + { + // Ugly - have to count in the heap how many nodes have the same channel, so we know where to delete from in the queue + unsigned indiceCount=0; + unsigned i; + for (i=0; i < startingIndex; i++) + if (channel_key_comparison_func(heap[i].channel,heap[startingIndex].channel)==0) + indiceCount++; + queueAndWeight->randResultQueue.RemoveAtIndex(indiceCount); + } + else + { + // TODO - ordered channel heap uses progressively lower values as items are inserted. But this won't give relative ordering among channels. I have to renormalize after every pop. + queueAndWeight->randResultQueue.Pop(); + } + + // Try to remove the channel after every pop, because doing so is not valid while there are elements in the list. + if (queueAndWeight->signalDeletion) + RemoveChannel(heap[startingIndex].channel); + + return heap.Pop(startingIndex).data; + } + + template + heap_data_type OrderedChannelHeap::Peek(const unsigned startingIndex) const + { + HeapChannelAndData heapChannelAndData = heap.Peek(startingIndex); + return heapChannelAndData.data; + } + + template + void OrderedChannelHeap::AddChannel(const channel_key_type &channelID, const double weight) + { + QueueAndWeight *qaw = RakNet::OP_NEW( _FILE_AND_LINE_ ); + qaw->weight=weight; + qaw->signalDeletion=false; + map.SetNew(channelID, qaw); + } + + template + void OrderedChannelHeap::RemoveChannel(channel_key_type channelID) + { + if (map.Has(channelID)) + { + unsigned i; + i=map.GetIndexAtKey(channelID); + if (map[i]->randResultQueue.Size()==0) + { + RakNet::OP_DELETE(map[i], _FILE_AND_LINE_); + map.RemoveAtIndex(i); + } + else + { + // Signal this channel for deletion later, because the heap has nodes with this channel right now + map[i]->signalDeletion=true; + } + } + } + + template + unsigned OrderedChannelHeap::Size(void) const + { + return heap.Size(); + } + + template + heap_data_type& OrderedChannelHeap::operator[]( const unsigned int position ) const + { + return heap[position].data; + } + + + template + unsigned OrderedChannelHeap::ChannelSize(const channel_key_type &channelID) + { + QueueAndWeight *queueAndWeight=map.Get(channelID); + return queueAndWeight->randResultQueue.Size(); + } + + template + void OrderedChannelHeap::Clear(void) + { + unsigned i; + for (i=0; i < map.Size(); i++) + RakNet::OP_DELETE(map[i], _FILE_AND_LINE_); + map.Clear(_FILE_AND_LINE_); + heap.Clear(_FILE_AND_LINE_); + } +} + +#endif diff --git a/src/raknet/DS_OrderedList.h b/src/raknet/DS_OrderedList.h new file mode 100755 index 0000000..efbff60 --- /dev/null +++ b/src/raknet/DS_OrderedList.h @@ -0,0 +1,263 @@ +/// \file DS_OrderedList.h +/// \internal +/// \brief Quicksort ordered list. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "DS_List.h" +#include "RakMemoryOverride.h" +#include "Export.h" + +#ifndef __ORDERED_LIST_H +#define __ORDERED_LIST_H + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + int defaultOrderedListComparison(const key_type &a, const data_type &b) + { + if (a > + class RAK_DLL_EXPORT OrderedList + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultOrderedListComparison(key_type(),data_type());} + + OrderedList(); + ~OrderedList(); + OrderedList( const OrderedList& original_copy ); + OrderedList& operator= ( const OrderedList& original_copy ); + + /// comparisonFunction must take a key_type and a data_type and return <0, ==0, or >0 + /// If the data type has comparison operators already defined then you can just use defaultComparison + bool HasData(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + // GetIndexFromKey returns where the insert should go at the same time checks if it is there + unsigned GetIndexFromKey(const key_type &key, bool *objectExists, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + data_type GetElementFromKey(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + bool GetElementFromKey(const key_type &key, data_type &element, int (*cf)(const key_type&, const data_type&)=default_comparison_function) const; + unsigned Insert(const key_type &key, const data_type &data, bool assertOnDuplicate, const char *file, unsigned int line, int (*cf)(const key_type&, const data_type&)=default_comparison_function); + unsigned Remove(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function); + unsigned RemoveIfExists(const key_type &key, int (*cf)(const key_type&, const data_type&)=default_comparison_function); + data_type& operator[] ( const unsigned int position ) const; + void RemoveAtIndex(const unsigned index); + void InsertAtIndex(const data_type &data, const unsigned index, const char *file, unsigned int line); + void InsertAtEnd(const data_type &data, const char *file, unsigned int line); + void RemoveFromEnd(const unsigned num=1); + void Clear(bool doNotDeallocate, const char *file, unsigned int line); + unsigned Size(void) const; + + protected: + DataStructures::List orderedList; + }; + + template + OrderedList::OrderedList() + { + } + + template + OrderedList::~OrderedList() + { + Clear(false, _FILE_AND_LINE_); + } + + template + OrderedList::OrderedList( const OrderedList& original_copy ) + { + orderedList=original_copy.orderedList; + } + + template + OrderedList& OrderedList::operator= ( const OrderedList& original_copy ) + { + orderedList=original_copy.orderedList; + return *this; + } + + template + bool OrderedList::HasData(const key_type &key, int (*cf)(const key_type&, const data_type&)) const + { + bool objectExists; + GetIndexFromKey(key, &objectExists, cf); + return objectExists; + } + + template + data_type OrderedList::GetElementFromKey(const key_type &key, int (*cf)(const key_type&, const data_type&)) const + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + RakAssert(objectExists); + return orderedList[index]; + } + template + bool OrderedList::GetElementFromKey(const key_type &key, data_type &element, int (*cf)(const key_type&, const data_type&)) const + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + if (objectExists) + element = orderedList[index]; + return objectExists; + } + template + unsigned OrderedList::GetIndexFromKey(const key_type &key, bool *objectExists, int (*cf)(const key_type&, const data_type&)) const + { + int index, upperBound, lowerBound; + int res; + + if (orderedList.Size()==0) + { + *objectExists=false; + return 0; + } + + upperBound=(int)orderedList.Size()-1; + lowerBound=0; + index = (int)orderedList.Size()/2; + +#ifdef _MSC_VER + #pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + res = cf(key,orderedList[index]); + if (res==0) + { + *objectExists=true; + return index; + } + else if (res<0) + { + upperBound=index-1; + } + else// if (res>0) + { + lowerBound=index+1; + } + + index=lowerBound+(upperBound-lowerBound)/2; + + if (lowerBound>upperBound) + { + *objectExists=false; + return lowerBound; // No match + } + } + } + + template + unsigned OrderedList::Insert(const key_type &key, const data_type &data, bool assertOnDuplicate, const char *file, unsigned int line, int (*cf)(const key_type&, const data_type&)) + { + (void) assertOnDuplicate; + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + + // Don't allow duplicate insertion. + if (objectExists) + { + // This is usually a bug! + RakAssert(assertOnDuplicate==false); + return (unsigned)-1; + } + + if (index>=orderedList.Size()) + { + orderedList.Insert(data, file, line); + return orderedList.Size()-1; + } + else + { + orderedList.Insert(data,index, file, line); + return index; + } + } + + template + unsigned OrderedList::Remove(const key_type &key, int (*cf)(const key_type&, const data_type&)) + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + + // Can't find the element to remove if this assert hits + // RakAssert(objectExists==true); + if (objectExists==false) + { + RakAssert(objectExists==true); + return 0; + } + + orderedList.RemoveAtIndex(index); + return index; + } + + template + unsigned OrderedList::RemoveIfExists(const key_type &key, int (*cf)(const key_type&, const data_type&)) + { + bool objectExists; + unsigned index; + index = GetIndexFromKey(key, &objectExists, cf); + + // Can't find the element to remove if this assert hits + if (objectExists==false) + return 0; + + orderedList.RemoveAtIndex(index); + return index; + } + + template + void OrderedList::RemoveAtIndex(const unsigned index) + { + orderedList.RemoveAtIndex(index); + } + + template + void OrderedList::InsertAtIndex(const data_type &data, const unsigned index, const char *file, unsigned int line) + { + orderedList.Insert(data, index, file, line); + } + + template + void OrderedList::InsertAtEnd(const data_type &data, const char *file, unsigned int line) + { + orderedList.Insert(data, file, line); + } + + template + void OrderedList::RemoveFromEnd(const unsigned num) + { + orderedList.RemoveFromEnd(num); + } + + template + void OrderedList::Clear(bool doNotDeallocate, const char *file, unsigned int line) + { + orderedList.Clear(doNotDeallocate, file, line); + } + + template + data_type& OrderedList::operator[]( const unsigned int position ) const + { + return orderedList[position]; + } + + template + unsigned OrderedList::Size(void) const + { + return orderedList.Size(); + } +} + +#endif diff --git a/src/raknet/DS_Queue.h b/src/raknet/DS_Queue.h new file mode 100755 index 0000000..6fd0004 --- /dev/null +++ b/src/raknet/DS_Queue.h @@ -0,0 +1,435 @@ +/// \file DS_Queue.h +/// \internal +/// \brief A queue used by RakNet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __QUEUE_H +#define __QUEUE_H + +// Template classes have to have all the code in the header file +#include "RakAssert.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief A queue implemented as an array with a read and write index. + template + class RAK_DLL_EXPORT Queue + { + public: + Queue(); + ~Queue(); + Queue( Queue& original_copy ); + bool operator= ( const Queue& original_copy ); + void Push( const queue_type& input, const char *file, unsigned int line ); + void PushAtHead( const queue_type& input, unsigned index, const char *file, unsigned int line ); + queue_type& operator[] ( unsigned int position ) const; // Not a normal thing you do with a queue but can be used for efficiency + void RemoveAtIndex( unsigned int position ); // Not a normal thing you do with a queue but can be used for efficiency + inline queue_type Peek( void ) const; + inline queue_type PeekTail( void ) const; + inline queue_type Pop( void ); + // Debug: Set pointer to 0, for memory leak detection + inline queue_type PopDeref( void ); + inline unsigned int Size( void ) const; + inline bool IsEmpty(void) const; + inline unsigned int AllocationSize( void ) const; + inline void Clear( const char *file, unsigned int line ); + void Compress( const char *file, unsigned int line ); + bool Find ( queue_type q ); + void ClearAndForceAllocation( int size, const char *file, unsigned int line ); // Force a memory allocation to a certain larger size + + private: + queue_type* array; + unsigned int head; // Array index for the head of the queue + unsigned int tail; // Array index for the tail of the queue + unsigned int allocation_size; + }; + + + template + inline unsigned int Queue::Size( void ) const + { + if ( head <= tail ) + return tail -head; + else + return allocation_size -head + tail; + } + + template + inline bool Queue::IsEmpty(void) const + { + return head==tail; + } + + template + inline unsigned int Queue::AllocationSize( void ) const + { + return allocation_size; + } + + template + Queue::Queue() + { + //allocation_size = 16; + //array = RakNet::OP_NEW_ARRAY(allocation_size, _FILE_AND_LINE_ ); + allocation_size = 0; + array=0; + head = 0; + tail = 0; + } + + template + Queue::~Queue() + { + if (allocation_size>0) + RakNet::OP_DELETE_ARRAY(array, _FILE_AND_LINE_); + } + + template + inline queue_type Queue::Pop( void ) + { +#ifdef _DEBUG + RakAssert( head != tail); +#endif + //head=(head+1) % allocation_size; + + if ( ++head == allocation_size ) + head = 0; + + if ( head == 0 ) + return ( queue_type ) array[ allocation_size -1 ]; + + return ( queue_type ) array[ head -1 ]; + } + + template + inline queue_type Queue::PopDeref( void ) + { + if ( ++head == allocation_size ) + head = 0; + + queue_type q; + if ( head == 0 ) + { + q=array[ allocation_size -1 ]; + array[ allocation_size -1 ]=0; + return q; + } + + q=array[ head -1 ]; + array[ head -1 ]=0; + return q; + } + + template + void Queue::PushAtHead( const queue_type& input, unsigned index, const char *file, unsigned int line ) + { + RakAssert(index <= Size()); + + // Just force a reallocation, will be overwritten + Push(input, file, line ); + + if (Size()==1) + return; + + unsigned writeIndex, readIndex, trueWriteIndex, trueReadIndex; + writeIndex=Size()-1; + readIndex=writeIndex-1; + while (readIndex >= index) + { + if ( head + writeIndex >= allocation_size ) + trueWriteIndex = head + writeIndex - allocation_size; + else + trueWriteIndex = head + writeIndex; + + if ( head + readIndex >= allocation_size ) + trueReadIndex = head + readIndex - allocation_size; + else + trueReadIndex = head + readIndex; + + array[trueWriteIndex]=array[trueReadIndex]; + + if (readIndex==0) + break; + writeIndex--; + readIndex--; + } + + if ( head + index >= allocation_size ) + trueWriteIndex = head + index - allocation_size; + else + trueWriteIndex = head + index; + + array[trueWriteIndex]=input; + } + + + template + inline queue_type Queue::Peek( void ) const + { +#ifdef _DEBUG + RakAssert( head != tail ); +#endif + + return ( queue_type ) array[ head ]; + } + + template + inline queue_type Queue::PeekTail( void ) const + { +#ifdef _DEBUG + RakAssert( head != tail ); +#endif + if (tail!=0) + return ( queue_type ) array[ tail-1 ]; + else + return ( queue_type ) array[ allocation_size-1 ]; + } + + template + void Queue::Push( const queue_type& input, const char *file, unsigned int line ) + { + if ( allocation_size == 0 ) + { + array = RakNet::OP_NEW_ARRAY(16, file, line ); + head = 0; + tail = 1; + array[ 0 ] = input; + allocation_size = 16; + return ; + } + + array[ tail++ ] = input; + + if ( tail == allocation_size ) + tail = 0; + + if ( tail == head ) + { + // unsigned int index=tail; + + // Need to allocate more memory. + queue_type * new_array; + new_array = RakNet::OP_NEW_ARRAY(allocation_size * 2, file, line ); +#ifdef _DEBUG + RakAssert( new_array ); +#endif + if (new_array==0) + return; + + for ( unsigned int counter = 0; counter < allocation_size; ++counter ) + new_array[ counter ] = array[ ( head + counter ) % ( allocation_size ) ]; + + head = 0; + + tail = allocation_size; + + allocation_size *= 2; + + // Delete the old array and move the pointer to the new array + RakNet::OP_DELETE_ARRAY(array, file, line); + + array = new_array; + } + + } + + template + Queue::Queue( Queue& original_copy ) + { + // Allocate memory for copy + + if ( original_copy.Size() == 0 ) + { + allocation_size = 0; + } + + else + { + array = RakNet::OP_NEW_ARRAY( original_copy.Size() + 1 , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.Size(); ++counter ) + array[ counter ] = original_copy.array[ ( original_copy.head + counter ) % ( original_copy.allocation_size ) ]; + + head = 0; + + tail = original_copy.Size(); + + allocation_size = original_copy.Size() + 1; + } + } + + template + bool Queue::operator= ( const Queue& original_copy ) + { + if ( ( &original_copy ) == this ) + return false; + + Clear(_FILE_AND_LINE_); + + // Allocate memory for copy + if ( original_copy.Size() == 0 ) + { + allocation_size = 0; + } + + else + { + array = RakNet::OP_NEW_ARRAY( original_copy.Size() + 1 , _FILE_AND_LINE_ ); + + for ( unsigned int counter = 0; counter < original_copy.Size(); ++counter ) + array[ counter ] = original_copy.array[ ( original_copy.head + counter ) % ( original_copy.allocation_size ) ]; + + head = 0; + + tail = original_copy.Size(); + + allocation_size = original_copy.Size() + 1; + } + + return true; + } + + template + inline void Queue::Clear ( const char *file, unsigned int line ) + { + if ( allocation_size == 0 ) + return ; + + if (allocation_size > 32) + { + RakNet::OP_DELETE_ARRAY(array, file, line); + allocation_size = 0; + } + + head = 0; + tail = 0; + } + + template + void Queue::Compress ( const char *file, unsigned int line ) + { + queue_type* new_array; + unsigned int newAllocationSize; + if (allocation_size==0) + return; + + newAllocationSize=1; + while (newAllocationSize <= Size()) + newAllocationSize<<=1; // Must be a better way to do this but I'm too dumb to figure it out quickly :) + + new_array = RakNet::OP_NEW_ARRAY(newAllocationSize, file, line ); + + for (unsigned int counter=0; counter < Size(); ++counter) + new_array[counter] = array[(head + counter)%(allocation_size)]; + + tail=Size(); + allocation_size=newAllocationSize; + head=0; + + // Delete the old array and move the pointer to the new array + RakNet::OP_DELETE_ARRAY(array, file, line); + array=new_array; + } + + template + bool Queue::Find ( queue_type q ) + { + if ( allocation_size == 0 ) + return false; + + unsigned int counter = head; + + while ( counter != tail ) + { + if ( array[ counter ] == q ) + return true; + + counter = ( counter + 1 ) % allocation_size; + } + + return false; + } + + template + void Queue::ClearAndForceAllocation( int size, const char *file, unsigned int line ) + { + RakNet::OP_DELETE_ARRAY(array, file, line); + if (size>0) + array = RakNet::OP_NEW_ARRAY(size, file, line ); + else + array=0; + allocation_size = size; + head = 0; + tail = 0; + } + + template + inline queue_type& Queue::operator[] ( unsigned int position ) const + { +#ifdef _DEBUG + RakAssert( position < Size() ); +#endif + //return array[(head + position) % allocation_size]; + + if ( head + position >= allocation_size ) + return array[ head + position - allocation_size ]; + else + return array[ head + position ]; + } + + template + void Queue::RemoveAtIndex( unsigned int position ) + { +#ifdef _DEBUG + RakAssert( position < Size() ); + RakAssert( head != tail ); +#endif + + if ( head == tail || position >= Size() ) + return ; + + unsigned int index; + + unsigned int next; + + //index = (head + position) % allocation_size; + if ( head + position >= allocation_size ) + index = head + position - allocation_size; + else + index = head + position; + + //next = (index + 1) % allocation_size; + next = index + 1; + + if ( next == allocation_size ) + next = 0; + + while ( next != tail ) + { + // Overwrite the previous element + array[ index ] = array[ next ]; + index = next; + //next = (next + 1) % allocation_size; + + if ( ++next == allocation_size ) + next = 0; + } + + // Move the tail back + if ( tail == 0 ) + tail = allocation_size - 1; + else + --tail; + } +} // End namespace + +#endif + diff --git a/src/raknet/DS_QueueLinkedList.h b/src/raknet/DS_QueueLinkedList.h new file mode 100755 index 0000000..0e1d234 --- /dev/null +++ b/src/raknet/DS_QueueLinkedList.h @@ -0,0 +1,103 @@ +/// \file DS_QueueLinkedList.h +/// \internal +/// \brief A queue implemented as a linked list. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __QUEUE_LINKED_LIST_H +#define __QUEUE_LINKED_LIST_H + +#include "DS_LinkedList.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief A queue implemented using a linked list. Rarely used. + template + class RAK_DLL_EXPORT QueueLinkedList + { + + public: + QueueLinkedList(); + QueueLinkedList( const QueueLinkedList& original_copy ); + bool operator= ( const QueueLinkedList& original_copy ); + QueueType Pop( void ); + QueueType& Peek( void ); + QueueType& EndPeek( void ); + void Push( const QueueType& input ); + unsigned int Size( void ); + void Clear( void ); + void Compress( void ); + + private: + LinkedList data; + }; + + template + QueueLinkedList::QueueLinkedList() + { + } + + template + inline unsigned int QueueLinkedList::Size() + { + return data.Size(); + } + + template + inline QueueType QueueLinkedList::Pop( void ) + { + data.Beginning(); + return ( QueueType ) data.Pop(); + } + + template + inline QueueType& QueueLinkedList::Peek( void ) + { + data.Beginning(); + return ( QueueType ) data.Peek(); + } + + template + inline QueueType& QueueLinkedList::EndPeek( void ) + { + data.End(); + return ( QueueType ) data.Peek(); + } + + template + void QueueLinkedList::Push( const QueueType& input ) + { + data.End(); + data.Add( input ); + } + + template + QueueLinkedList::QueueLinkedList( const QueueLinkedList& original_copy ) + { + data = original_copy.data; + } + + template + bool QueueLinkedList::operator= ( const QueueLinkedList& original_copy ) + { + if ( ( &original_copy ) == this ) + return false; + + data = original_copy.data; + } + + template + void QueueLinkedList::Clear ( void ) + { + data.Clear(); + } +} // End namespace + +#endif diff --git a/src/raknet/DS_RangeList.h b/src/raknet/DS_RangeList.h new file mode 100755 index 0000000..b40b859 --- /dev/null +++ b/src/raknet/DS_RangeList.h @@ -0,0 +1,236 @@ +/// \file DS_RangeList.h +/// \internal +/// \brief A queue implemented as a linked list. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RANGE_LIST_H +#define __RANGE_LIST_H + +#include "DS_OrderedList.h" +#include "BitStream.h" +#include "RakMemoryOverride.h" +#include "RakAssert.h" + +namespace DataStructures +{ + template + struct RangeNode + { + RangeNode() {} + ~RangeNode() {} + RangeNode(range_type min, range_type max) {minIndex=min; maxIndex=max;} + range_type minIndex; + range_type maxIndex; + }; + + + template + int RangeNodeComp(const range_type &a, const RangeNode &b) + { + if (a + class RAK_DLL_EXPORT RangeList + { + public: + RangeList(); + ~RangeList(); + void Insert(range_type index); + void Clear(void); + unsigned Size(void) const; + unsigned RangeSum(void) const; + RakNet::BitSize_t Serialize(RakNet::BitStream *in, RakNet::BitSize_t maxBits, bool clearSerialized); + bool Deserialize(RakNet::BitStream *out); + + DataStructures::OrderedList , RangeNodeComp > ranges; + }; + + template + RakNet::BitSize_t RangeList::Serialize(RakNet::BitStream *in, RakNet::BitSize_t maxBits, bool clearSerialized) + { + RakAssert(ranges.Size() < (unsigned short)-1); + RakNet::BitStream tempBS; + RakNet::BitSize_t bitsWritten; + unsigned short countWritten; + unsigned i; + countWritten=0; + bitsWritten=0; + for (i=0; i < ranges.Size(); i++) + { + if ((int)sizeof(unsigned short)*8+bitsWritten+(int)sizeof(range_type)*8*2+1>maxBits) + break; + unsigned char minEqualsMax; + if (ranges[i].minIndex==ranges[i].maxIndex) + minEqualsMax=1; + else + minEqualsMax=0; + tempBS.Write(minEqualsMax); // Use one byte, intead of one bit, for speed, as this is done a lot + tempBS.Write(ranges[i].minIndex); + bitsWritten+=sizeof(range_type)*8+8; + if (ranges[i].minIndex!=ranges[i].maxIndex) + { + tempBS.Write(ranges[i].maxIndex); + bitsWritten+=sizeof(range_type)*8; + } + countWritten++; + } + + in->AlignWriteToByteBoundary(); + RakNet::BitSize_t before=in->GetWriteOffset(); + in->Write(countWritten); + bitsWritten+=in->GetWriteOffset()-before; + // RAKNET_DEBUG_PRINTF("%i ", in->GetNumberOfBitsUsed()); + in->Write(&tempBS, tempBS.GetNumberOfBitsUsed()); + // RAKNET_DEBUG_PRINTF("%i %i \n", tempBS.GetNumberOfBitsUsed(),in->GetNumberOfBitsUsed()); + + if (clearSerialized && countWritten) + { + unsigned rangeSize=ranges.Size(); + for (i=0; i < rangeSize-countWritten; i++) + { + ranges[i]=ranges[i+countWritten]; + } + ranges.RemoveFromEnd(countWritten); + } + + return bitsWritten; + } + template + bool RangeList::Deserialize(RakNet::BitStream *out) + { + ranges.Clear(true, _FILE_AND_LINE_); + unsigned short count; + out->AlignReadToByteBoundary(); + out->Read(count); + unsigned short i; + range_type min,max; + unsigned char maxEqualToMin=0; + + for (i=0; i < count; i++) + { + out->Read(maxEqualToMin); + if (out->Read(min)==false) + return false; + if (maxEqualToMin==false) + { + if (out->Read(max)==false) + return false; + if (max(min,max), _FILE_AND_LINE_); + } + return true; + } + + template + RangeList::RangeList() + { + RangeNodeComp(0, RangeNode()); + } + + template + RangeList::~RangeList() + { + Clear(); + } + + template + void RangeList::Insert(range_type index) + { + if (ranges.Size()==0) + { + ranges.Insert(index, RangeNode(index, index), true, _FILE_AND_LINE_); + return; + } + + bool objectExists; + unsigned insertionIndex=ranges.GetIndexFromKey(index, &objectExists); + if (insertionIndex==ranges.Size()) + { + if (index == ranges[insertionIndex-1].maxIndex+(range_type)1) + ranges[insertionIndex-1].maxIndex++; + else if (index > ranges[insertionIndex-1].maxIndex+(range_type)1) + { + // Insert at end + ranges.Insert(index, RangeNode(index, index), true, _FILE_AND_LINE_); + } + + return; + } + + if (index < ranges[insertionIndex].minIndex-(range_type)1) + { + // Insert here + ranges.InsertAtIndex(RangeNode(index, index), insertionIndex, _FILE_AND_LINE_); + + return; + } + else if (index == ranges[insertionIndex].minIndex-(range_type)1) + { + // Decrease minIndex and join left + ranges[insertionIndex].minIndex--; + if (insertionIndex>0 && ranges[insertionIndex-1].maxIndex+(range_type)1==ranges[insertionIndex].minIndex) + { + ranges[insertionIndex-1].maxIndex=ranges[insertionIndex].maxIndex; + ranges.RemoveAtIndex(insertionIndex); + } + + return; + } + else if (index >= ranges[insertionIndex].minIndex && index <= ranges[insertionIndex].maxIndex) + { + // Already exists + return; + } + else if (index == ranges[insertionIndex].maxIndex+(range_type)1) + { + // Increase maxIndex and join right + ranges[insertionIndex].maxIndex++; + if (insertionIndex + void RangeList::Clear(void) + { + ranges.Clear(true, _FILE_AND_LINE_); + } + + template + unsigned RangeList::Size(void) const + { + return ranges.Size(); + } + + template + unsigned RangeList::RangeSum(void) const + { + unsigned sum=0,i; + for (i=0; i < ranges.Size(); i++) + sum+=ranges[i].maxIndex-ranges[i].minIndex+1; + return sum; + } + +} + +#endif diff --git a/src/raknet/DS_Table.cpp b/src/raknet/DS_Table.cpp new file mode 100755 index 0000000..281a60f --- /dev/null +++ b/src/raknet/DS_Table.cpp @@ -0,0 +1,1118 @@ +#include "DS_Table.h" +#include "DS_OrderedList.h" +#include +#include "RakAssert.h" +#include "RakAssert.h" +#include "Itoa.h" + +using namespace DataStructures; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +void ExtendRows(Table::Row* input, int index) +{ + (void) index; + input->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_ ); +} +void FreeRow(Table::Row* input, int index) +{ + (void) index; + + unsigned i; + for (i=0; i < input->cells.Size(); i++) + { + RakNet::OP_DELETE(input->cells[i], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(input, _FILE_AND_LINE_); +} +Table::Cell::Cell() +{ + isEmpty=true; + c=0; + ptr=0; + i=0.0; +} +Table::Cell::~Cell() +{ + Clear(); +} +Table::Cell& Table::Cell::operator = ( const Table::Cell& input ) +{ + isEmpty=input.isEmpty; + i=input.i; + ptr=input.ptr; + if (c) + rakFree_Ex(c, _FILE_AND_LINE_); + if (input.c) + { + c = (char*) rakMalloc_Ex( (int) i, _FILE_AND_LINE_ ); + memcpy(c, input.c, (int) i); + } + else + c=0; + return *this; +} +Table::Cell::Cell( const Table::Cell & input) +{ + isEmpty=input.isEmpty; + i=input.i; + ptr=input.ptr; + if (input.c) + { + if (c) + rakFree_Ex(c, _FILE_AND_LINE_); + c = (char*) rakMalloc_Ex( (int) i, _FILE_AND_LINE_ ); + memcpy(c, input.c, (int) i); + } +} +void Table::Cell::Set(double input) +{ + Clear(); + i=input; + c=0; + ptr=0; + isEmpty=false; +} +void Table::Cell::Set(unsigned int input) +{ + Set((int) input); +} +void Table::Cell::Set(int input) +{ + Clear(); + i=(double) input; + c=0; + ptr=0; + isEmpty=false; +} + +void Table::Cell::Set(const char *input) +{ + Clear(); + + if (input) + { + i=(int)strlen(input)+1; + c = (char*) rakMalloc_Ex( (int) i, _FILE_AND_LINE_ ); + strcpy(c, input); + } + else + { + c=0; + i=0; + } + ptr=0; + isEmpty=false; +} +void Table::Cell::Set(const char *input, int inputLength) +{ + Clear(); + if (input) + { + c = (char*) rakMalloc_Ex( inputLength, _FILE_AND_LINE_ ); + i=inputLength; + memcpy(c, input, inputLength); + } + else + { + c=0; + i=0; + } + ptr=0; + isEmpty=false; +} +void Table::Cell::SetPtr(void* p) +{ + Clear(); + c=0; + ptr=p; + isEmpty=false; +} +void Table::Cell::Get(int *output) +{ + RakAssert(isEmpty==false); + int o = (int) i; + *output=o; +} +void Table::Cell::Get(double *output) +{ + RakAssert(isEmpty==false); + *output=i; +} +void Table::Cell::Get(char *output) +{ + RakAssert(isEmpty==false); + strcpy(output, c); +} +void Table::Cell::Get(char *output, int *outputLength) +{ + RakAssert(isEmpty==false); + memcpy(output, c, (int) i); + if (outputLength) + *outputLength=(int) i; +} +RakNet::RakString Table::Cell::ToString(ColumnType columnType) +{ + if (isEmpty) + return RakNet::RakString(); + + if (columnType==NUMERIC) + { + return RakNet::RakString("%f", i); + } + else if (columnType==STRING) + { + return RakNet::RakString(c); + } + else if (columnType==BINARY) + { + return RakNet::RakString(""); + } + else if (columnType==POINTER) + { + return RakNet::RakString("%p", ptr); + } + + return RakNet::RakString(); +} +Table::Cell::Cell(double numericValue, char *charValue, void *ptr, ColumnType type) +{ + SetByType(numericValue,charValue,ptr,type); +} +void Table::Cell::SetByType(double numericValue, char *charValue, void *ptr, ColumnType type) +{ + isEmpty=true; + if (type==NUMERIC) + { + Set(numericValue); + } + else if (type==STRING) + { + Set(charValue); + } + else if (type==BINARY) + { + Set(charValue, (int) numericValue); + } + else if (type==POINTER) + { + SetPtr(ptr); + } + else + { + ptr=(void*) charValue; + } +} +Table::ColumnType Table::Cell::EstimateColumnType(void) const +{ + if (c) + if (i!=0.0f) + return BINARY; + else + return STRING; + if (ptr) + return POINTER; + return NUMERIC; +} +void Table::Cell::Clear(void) +{ + if (isEmpty==false && c) + { + rakFree_Ex(c, _FILE_AND_LINE_); + c=0; + } + isEmpty=true; +} +Table::ColumnDescriptor::ColumnDescriptor() +{ + +} +Table::ColumnDescriptor::~ColumnDescriptor() +{ + +} +Table::ColumnDescriptor::ColumnDescriptor(const char cn[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType ct) +{ + columnType=ct; + strcpy(columnName, cn); +} +void Table::Row::UpdateCell(unsigned columnIndex, double value) +{ + cells[columnIndex]->Clear(); + cells[columnIndex]->Set(value); + +// cells[columnIndex]->i=value; +// cells[columnIndex]->c=0; +// cells[columnIndex]->isEmpty=false; +} +void Table::Row::UpdateCell(unsigned columnIndex, const char *str) +{ + cells[columnIndex]->Clear(); + cells[columnIndex]->Set(str); +} +void Table::Row::UpdateCell(unsigned columnIndex, int byteLength, const char *data) +{ + cells[columnIndex]->Clear(); + cells[columnIndex]->Set(data,byteLength); +} +Table::Table() +{ +} +Table::~Table() +{ + Clear(); +} +unsigned Table::AddColumn(const char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType columnType) +{ + if (columnName[0]==0) + return (unsigned) -1; + + // Add this column. + columns.Insert(Table::ColumnDescriptor(columnName, columnType), _FILE_AND_LINE_); + + // Extend the rows by one + rows.ForEachData(ExtendRows); + + return columns.Size()-1; +} +void Table::RemoveColumn(unsigned columnIndex) +{ + if (columnIndex >= columns.Size()) + return; + + columns.RemoveAtIndex(columnIndex); + + // Remove this index from each row. + int i; + DataStructures::Page *cur = rows.GetListHead(); + while (cur) + { + for (i=0; i < cur->size; i++) + { + RakNet::OP_DELETE(cur->data[i]->cells[columnIndex], _FILE_AND_LINE_); + cur->data[i]->cells.RemoveAtIndex(columnIndex); + } + + cur=cur->next; + } +} +unsigned Table::ColumnIndex(const char *columnName) const +{ + unsigned columnIndex; + for (columnIndex=0; columnIndex= columns.Size()) + return 0; + else + return (char*)columns[index].columnName; +} +Table::ColumnType Table::GetColumnType(unsigned index) const +{ + if (index >= columns.Size()) + return (Table::ColumnType) 0; + else + return columns[index].columnType; +} +unsigned Table::GetColumnCount(void) const +{ + return columns.Size(); +} +unsigned Table::GetRowCount(void) const +{ + return rows.Size(); +} +Table::Row* Table::AddRow(unsigned rowId) +{ + Row *newRow; + newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + if (rows.Insert(rowId, newRow)==false) + { + RakNet::OP_DELETE(newRow, _FILE_AND_LINE_); + return 0; // Already exists + } + unsigned rowIndex; + for (rowIndex=0; rowIndex < columns.Size(); rowIndex++) + newRow->cells.Insert( RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_ ); + return newRow; +} +Table::Row* Table::AddRow(unsigned rowId, DataStructures::List &initialCellValues) +{ + Row *newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + unsigned rowIndex; + for (rowIndex=0; rowIndex < columns.Size(); rowIndex++) + { + if (rowIndex < initialCellValues.Size() && initialCellValues[rowIndex].isEmpty==false) + { + Table::Cell *c; + c = RakNet::OP_NEW(_FILE_AND_LINE_); + c->SetByType(initialCellValues[rowIndex].i,initialCellValues[rowIndex].c,initialCellValues[rowIndex].ptr,columns[rowIndex].columnType); + newRow->cells.Insert(c, _FILE_AND_LINE_ ); + } + else + newRow->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_ ); + } + rows.Insert(rowId, newRow); + return newRow; +} +Table::Row* Table::AddRow(unsigned rowId, DataStructures::List &initialCellValues, bool copyCells) +{ + Row *newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + unsigned rowIndex; + for (rowIndex=0; rowIndex < columns.Size(); rowIndex++) + { + if (rowIndex < initialCellValues.Size() && initialCellValues[rowIndex] && initialCellValues[rowIndex]->isEmpty==false) + { + if (copyCells==false) + newRow->cells.Insert(RakNet::OP_NEW_4( _FILE_AND_LINE_, initialCellValues[rowIndex]->i, initialCellValues[rowIndex]->c, initialCellValues[rowIndex]->ptr, columns[rowIndex].columnType), _FILE_AND_LINE_); + else + { + Table::Cell *c = RakNet::OP_NEW( _FILE_AND_LINE_ ); + newRow->cells.Insert(c, _FILE_AND_LINE_); + *c=*(initialCellValues[rowIndex]); + } + } + else + newRow->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_); + } + rows.Insert(rowId, newRow); + return newRow; +} +Table::Row* Table::AddRowColumns(unsigned rowId, Row *row, DataStructures::List columnIndices) +{ + Row *newRow = RakNet::OP_NEW( _FILE_AND_LINE_ ); + unsigned columnIndex; + for (columnIndex=0; columnIndex < columnIndices.Size(); columnIndex++) + { + if (row->cells[columnIndices[columnIndex]]->isEmpty==false) + { + newRow->cells.Insert(RakNet::OP_NEW_4( _FILE_AND_LINE_, + row->cells[columnIndices[columnIndex]]->i, + row->cells[columnIndices[columnIndex]]->c, + row->cells[columnIndices[columnIndex]]->ptr, + columns[columnIndex].columnType + ), _FILE_AND_LINE_); + } + else + { + newRow->cells.Insert(RakNet::OP_NEW(_FILE_AND_LINE_), _FILE_AND_LINE_); + } + } + rows.Insert(rowId, newRow); + return newRow; +} +bool Table::RemoveRow(unsigned rowId) +{ + Row *out; + if (rows.Delete(rowId, out)) + { + DeleteRow(out); + return true; + } + return false; +} +void Table::RemoveRows(Table *tableContainingRowIDs) +{ + unsigned i; + DataStructures::Page *cur = tableContainingRowIDs->GetRows().GetListHead(); + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + rows.Delete(cur->keys[i]); + } + cur=cur->next; + } + return; +} +bool Table::UpdateCell(unsigned rowId, unsigned columnIndex, int value) +{ + RakAssert(columns[columnIndex].columnType==NUMERIC); + + Row *row = GetRowByID(rowId); + if (row) + { + row->UpdateCell(columnIndex, value); + return true; + } + return false; +} +bool Table::UpdateCell(unsigned rowId, unsigned columnIndex, char *str) +{ + RakAssert(columns[columnIndex].columnType==STRING); + + Row *row = GetRowByID(rowId); + if (row) + { + row->UpdateCell(columnIndex, str); + return true; + } + return false; +} +bool Table::UpdateCell(unsigned rowId, unsigned columnIndex, int byteLength, char *data) +{ + RakAssert(columns[columnIndex].columnType==BINARY); + + Row *row = GetRowByID(rowId); + if (row) + { + row->UpdateCell(columnIndex, byteLength, data); + return true; + } + return false; +} +bool Table::UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int value) +{ + RakAssert(columns[columnIndex].columnType==NUMERIC); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->UpdateCell(columnIndex, value); + return true; + } + return false; +} +bool Table::UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, char *str) +{ + RakAssert(columns[columnIndex].columnType==STRING); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->UpdateCell(columnIndex, str); + return true; + } + return false; +} +bool Table::UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int byteLength, char *data) +{ + RakAssert(columns[columnIndex].columnType==BINARY); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->UpdateCell(columnIndex, byteLength, data); + return true; + } + return false; +} +void Table::GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, int *output) +{ + RakAssert(columns[columnIndex].columnType==NUMERIC); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->cells[columnIndex]->Get(output); + } +} +void Table::GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output) +{ + RakAssert(columns[columnIndex].columnType==STRING); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->cells[columnIndex]->Get(output); + } +} +void Table::GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output, int *outputLength) +{ + RakAssert(columns[columnIndex].columnType==BINARY); + + Row *row = GetRowByIndex(rowIndex,0); + if (row) + { + row->cells[columnIndex]->Get(output, outputLength); + } +} +Table::FilterQuery::FilterQuery() +{ + columnName[0]=0; +} +Table::FilterQuery::~FilterQuery() +{ + +} +Table::FilterQuery::FilterQuery(unsigned column, Cell *cell, FilterQueryType op) +{ + columnIndex=column; + cellValue=cell; + operation=op; +} +Table::Row* Table::GetRowByID(unsigned rowId) const +{ + Row *row; + if (rows.Get(rowId, row)) + return row; + return 0; +} + +Table::Row* Table::GetRowByIndex(unsigned rowIndex, unsigned *key) const +{ + DataStructures::Page *cur = rows.GetListHead(); + while (cur) + { + if (rowIndex < (unsigned)cur->size) + { + if (key) + *key=cur->keys[rowIndex]; + return cur->data[rowIndex]; + } + if (rowIndex <= (unsigned)cur->size) + rowIndex-=cur->size; + else + return 0; + cur=cur->next; + } + return 0; +} + +void Table::QueryTable(unsigned *columnIndicesSubset, unsigned numColumnSubset, FilterQuery *inclusionFilters, unsigned numInclusionFilters, unsigned *rowIds, unsigned numRowIDs, Table *result) +{ + unsigned i; + DataStructures::List columnIndicesToReturn; + + // Clear the result table. + result->Clear(); + + if (columnIndicesSubset && numColumnSubset>0) + { + for (i=0; i < numColumnSubset; i++) + { + if (columnIndicesSubset[i]AddColumn(columns[columnIndicesToReturn[i]].columnName,columns[columnIndicesToReturn[i]].columnType); + } + + // Get the column indices of the filter queries. + DataStructures::List inclusionFilterColumnIndices; + if (inclusionFilters && numInclusionFilters>0) + { + for (i=0; i < numInclusionFilters; i++) + { + if (inclusionFilters[i].columnName[0]) + inclusionFilters[i].columnIndex=ColumnIndex(inclusionFilters[i].columnName); + if (inclusionFilters[i].columnIndex *cur = rows.GetListHead(); + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + QueryRow(inclusionFilterColumnIndices, columnIndicesToReturn, cur->keys[i], cur->data[i], inclusionFilters, result); + } + cur=cur->next; + } + } + else + { + // Specific rows + Row *row; + for (i=0; i < numRowIDs; i++) + { + if (rows.Get(rowIds[i], row)) + { + QueryRow(inclusionFilterColumnIndices, columnIndicesToReturn, rowIds[i], row, inclusionFilters, result); + } + } + } +} + +void Table::QueryRow(DataStructures::List &inclusionFilterColumnIndices, DataStructures::List &columnIndicesToReturn, unsigned key, Table::Row* row, FilterQuery *inclusionFilters, Table *result) +{ + bool pass=false; + unsigned columnIndex; + unsigned j; + + // If no inclusion filters, just add the row + if (inclusionFilterColumnIndices.Size()==0) + { + result->AddRowColumns(key, row, columnIndicesToReturn); + } + else + { + // Go through all inclusion filters. Only add this row if all filters pass. + for (j=0; jcells[columnIndex]->isEmpty==false ) + { + if (columns[inclusionFilterColumnIndices[j]].columnType==STRING && + (row->cells[columnIndex]->c==0 || + inclusionFilters[j].cellValue->c==0) ) + continue; + + switch (inclusionFilters[j].operation) + { + case QF_EQUAL: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i==inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)==0; + break; + case BINARY: + pass=row->cells[columnIndex]->i==inclusionFilters[j].cellValue->i && + memcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c, (int) row->cells[columnIndex]->i)==0; + break; + case POINTER: + pass=row->cells[columnIndex]->ptr==inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_NOT_EQUAL: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i!=inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)!=0; + break; + case BINARY: + pass=row->cells[columnIndex]->i==inclusionFilters[j].cellValue->i && + memcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c, (int) row->cells[columnIndex]->i)==0; + break; + case POINTER: + pass=row->cells[columnIndex]->ptr!=inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_GREATER_THAN: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i>inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)>0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptr>inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_GREATER_THAN_EQ: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i>=inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)>=0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptr>=inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_LESS_THAN: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->ii; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)<0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptrptr; + break; + } + break; + case QF_LESS_THAN_EQ: + switch(columns[inclusionFilterColumnIndices[j]].columnType) + { + case NUMERIC: + pass=row->cells[columnIndex]->i<=inclusionFilters[j].cellValue->i; + break; + case STRING: + pass=strcmp(row->cells[columnIndex]->c,inclusionFilters[j].cellValue->c)<=0; + break; + case BINARY: + break; + case POINTER: + pass=row->cells[columnIndex]->ptr<=inclusionFilters[j].cellValue->ptr; + break; + } + break; + case QF_IS_EMPTY: + pass=false; + break; + case QF_NOT_EMPTY: + pass=true; + break; + default: + pass=false; + RakAssert(0); + break; + } + } + else + { + if (inclusionFilters[j].operation==QF_IS_EMPTY) + pass=true; + else + pass=false; // No value for this cell + } + + if (pass==false) + break; + } + + if (pass) + { + result->AddRowColumns(key, row, columnIndicesToReturn); + } + } +} + +static Table::SortQuery *_sortQueries; +static unsigned _numSortQueries; +static DataStructures::List *_columnIndices; +static DataStructures::List *_columns; +int RowSort(Table::Row* const &first, Table::Row* const &second) // first is the one inserting, second is the one already there. +{ + unsigned i, columnIndex; + for (i=0; i<_numSortQueries; i++) + { + columnIndex=(*_columnIndices)[i]; + if (columnIndex==(unsigned)-1) + continue; + + if (first->cells[columnIndex]->isEmpty==true && second->cells[columnIndex]->isEmpty==false) + return 1; // Empty cells always go at the end + + if (first->cells[columnIndex]->isEmpty==false && second->cells[columnIndex]->isEmpty==true) + return -1; // Empty cells always go at the end + + if (_sortQueries[i].operation==Table::QS_INCREASING_ORDER) + { + if ((*_columns)[columnIndex].columnType==Table::NUMERIC) + { + if (first->cells[columnIndex]->i>second->cells[columnIndex]->i) + return 1; + if (first->cells[columnIndex]->icells[columnIndex]->i) + return -1; + } + else + { + // String + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)>0) + return 1; + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)<0) + return -1; + } + } + else + { + if ((*_columns)[columnIndex].columnType==Table::NUMERIC) + { + if (first->cells[columnIndex]->icells[columnIndex]->i) + return 1; + if (first->cells[columnIndex]->i>second->cells[columnIndex]->i) + return -1; + } + else + { + // String + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)<0) + return 1; + if (strcmp(first->cells[columnIndex]->c,second->cells[columnIndex]->c)>0) + return -1; + } + } + } + + return 0; +} +void Table::SortTable(Table::SortQuery *sortQueries, unsigned numSortQueries, Table::Row** out) +{ + unsigned i; + unsigned outLength; + DataStructures::List columnIndices; + _sortQueries=sortQueries; + _numSortQueries=numSortQueries; + _columnIndices=&columnIndices; + _columns=&columns; + bool anyValid=false; + + for (i=0; i < numSortQueries; i++) + { + if (sortQueries[i].columnIndex *cur; + cur = rows.GetListHead(); + if (anyValid==false) + { + outLength=0; + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + out[(outLength)++]=cur->data[i]; + } + cur=cur->next; + } + return; + } + + // Start adding to ordered list. + DataStructures::OrderedList orderedList; + while (cur) + { + for (i=0; i < (unsigned)cur->size; i++) + { + RakAssert(cur->data[i]); + orderedList.Insert(cur->data[i],cur->data[i], true, _FILE_AND_LINE_); + } + cur=cur->next; + } + + outLength=0; + for (i=0; i < orderedList.Size(); i++) + out[(outLength)++]=orderedList[i]; +} +void Table::PrintColumnHeaders(char *out, int outLength, char columnDelineator) const +{ + if (outLength<=0) + return; + if (outLength==1) + { + *out=0; + return; + } + + unsigned i; + out[0]=0; + int len; + for (i=0; i < columns.Size(); i++) + { + if (i!=0) + { + len = (int) strlen(out); + if (len < outLength-1) + sprintf(out+len, "%c", columnDelineator); + else + return; + } + + len = (int) strlen(out); + if (len < outLength-(int) strlen(columns[i].columnName)) + sprintf(out+len, "%s", columns[i].columnName); + else + return; + } +} +void Table::PrintRow(char *out, int outLength, char columnDelineator, bool printDelineatorForBinary, Table::Row* inputRow) const +{ + if (outLength<=0) + return; + if (outLength==1) + { + *out=0; + return; + } + + if (inputRow->cells.Size()!=columns.Size()) + { + strncpy(out, "Cell width does not match column width.\n", outLength); + out[outLength-1]=0; + return; + } + + char buff[512]; + unsigned i; + int len; + out[0]=0; + for (i=0; i < columns.Size(); i++) + { + if (columns[i].columnType==NUMERIC) + { + if (inputRow->cells[i]->isEmpty==false) + { + sprintf(buff, "%f", inputRow->cells[i]->i); + len=(int)strlen(buff); + } + else + len=0; + if (i+1!=columns.Size()) + buff[len++]=columnDelineator; + buff[len]=0; + } + else if (columns[i].columnType==STRING) + { + if (inputRow->cells[i]->isEmpty==false && inputRow->cells[i]->c) + { + strncpy(buff, inputRow->cells[i]->c, 512-2); + buff[512-2]=0; + len=(int)strlen(buff); + } + else + len=0; + if (i+1!=columns.Size()) + buff[len++]=columnDelineator; + buff[len]=0; + } + else if (columns[i].columnType==POINTER) + { + if (inputRow->cells[i]->isEmpty==false && inputRow->cells[i]->ptr) + { + sprintf(buff, "%p", inputRow->cells[i]->ptr); + len=(int)strlen(buff); + } + else + len=0; + if (i+1!=columns.Size()) + buff[len++]=columnDelineator; + buff[len]=0; + } + else + { + if (printDelineatorForBinary) + { + if (i+1!=columns.Size()) + buff[0]=columnDelineator; + buff[1]=0; + } + else + buff[0]=0; + + } + + len=(int)strlen(out); + if (outLength==len+1) + break; + strncpy(out+len, buff, outLength-len); + out[outLength-1]=0; + } +} + +void Table::Clear(void) +{ + rows.ForEachData(FreeRow); + rows.Clear(); + columns.Clear(true, _FILE_AND_LINE_); +} +const List& Table::GetColumns(void) const +{ + return columns; +} +const DataStructures::BPlusTree& Table::GetRows(void) const +{ + return rows; +} +DataStructures::Page * Table::GetListHead(void) +{ + return rows.GetListHead(); +} +unsigned Table::GetAvailableRowId(void) const +{ + bool setKey=false; + unsigned key=0; + int i; + DataStructures::Page *cur = rows.GetListHead(); + + while (cur) + { + for (i=0; i < cur->size; i++) + { + if (setKey==false) + { + key=cur->keys[i]+1; + setKey=true; + } + else + { + if (key!=cur->keys[i]) + return key; + key++; + } + } + + cur=cur->next; + } + return key; +} +void Table::DeleteRow(Table::Row *row) +{ + unsigned rowIndex; + for (rowIndex=0; rowIndex < row->cells.Size(); rowIndex++) + { + RakNet::OP_DELETE(row->cells[rowIndex], _FILE_AND_LINE_); + } + RakNet::OP_DELETE(row, _FILE_AND_LINE_); +} +Table& Table::operator = ( const Table& input ) +{ + Clear(); + + unsigned int i; + for (i=0; i < input.GetColumnCount(); i++) + AddColumn(input.ColumnName(i), input.GetColumnType(i)); + + DataStructures::Page *cur = input.GetRows().GetListHead(); + while (cur) + { + for (i=0; i < (unsigned int) cur->size; i++) + { + AddRow(cur->keys[i], cur->data[i]->cells, false); + } + + cur=cur->next; + } + + return *this; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/src/raknet/DS_Table.h b/src/raknet/DS_Table.h new file mode 100755 index 0000000..56d08fb --- /dev/null +++ b/src/raknet/DS_Table.h @@ -0,0 +1,343 @@ +/// \file DS_Table.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __TABLE_H +#define __TABLE_H + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +#include "DS_List.h" +#include "DS_BPlusTree.h" +#include "RakMemoryOverride.h" +#include "Export.h" +#include "RakString.h" + +#define _TABLE_BPLUS_TREE_ORDER 16 +#define _TABLE_MAX_COLUMN_NAME_LENGTH 64 + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + + /// \brief Holds a set of columns, a set of rows, and rows times columns cells. + /// \details The table data structure is useful if you want to store a set of structures and perform queries on those structures.
    + /// This is a relatively simple and fast implementation of the types of tables commonly used in databases.
    + /// See TableSerializer to serialize data members of the table.
    + /// See LightweightDatabaseClient and LightweightDatabaseServer to transmit the table over the network. + class RAK_DLL_EXPORT Table + { + public: + + enum ColumnType + { + // Cell::i used + NUMERIC, + + // Cell::c used to hold a null terminated string. + STRING, + + // Cell::c holds data. Cell::i holds data length of c in bytes. + BINARY, + + // Cell::c holds data. Not deallocated. Set manually by assigning ptr. + POINTER, + }; + + + /// Holds the actual data in the table + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT Cell + { + Cell(); + ~Cell(); + Cell(double numericValue, char *charValue, void *ptr, ColumnType type); + void SetByType(double numericValue, char *charValue, void *ptr, ColumnType type); + void Clear(void); + + /// Numeric + void Set(int input); + void Set(unsigned int input); + void Set(double input); + + /// String + void Set(const char *input); + + /// Binary + void Set(const char *input, int inputLength); + + /// Pointer + void SetPtr(void* p); + + /// Numeric + void Get(int *output); + void Get(double *output); + + /// String + void Get(char *output); + + /// Binary + void Get(char *output, int *outputLength); + + RakNet::RakString ToString(ColumnType columnType); + + // assignment operator and copy constructor + Cell& operator = ( const Cell& input ); + Cell( const Cell & input); + + ColumnType EstimateColumnType(void) const; + + bool isEmpty; + double i; + char *c; + void *ptr; + }; + + /// Stores the name and type of the column + /// \internal + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT ColumnDescriptor + { + ColumnDescriptor(); + ~ColumnDescriptor(); + ColumnDescriptor(const char cn[_TABLE_MAX_COLUMN_NAME_LENGTH],ColumnType ct); + + char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]; + ColumnType columnType; + }; + + /// Stores the list of cells for this row, and a special flag used for internal sorting + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT Row + { + // list of cells + DataStructures::List cells; + + /// Numeric + void UpdateCell(unsigned columnIndex, double value); + + /// String + void UpdateCell(unsigned columnIndex, const char *str); + + /// Binary + void UpdateCell(unsigned columnIndex, int byteLength, const char *data); + }; + + // Operations to perform for cell comparison + enum FilterQueryType + { + QF_EQUAL, + QF_NOT_EQUAL, + QF_GREATER_THAN, + QF_GREATER_THAN_EQ, + QF_LESS_THAN, + QF_LESS_THAN_EQ, + QF_IS_EMPTY, + QF_NOT_EMPTY, + }; + + // Compare the cell value for a row at columnName to the cellValue using operation. + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT FilterQuery + { + FilterQuery(); + ~FilterQuery(); + FilterQuery(unsigned column, Cell *cell, FilterQueryType op); + + // If columnName is specified, columnIndex will be looked up using it. + char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]; + unsigned columnIndex; + Cell *cellValue; + FilterQueryType operation; + }; + + /// Increasing or decreasing sort order + enum SortQueryType + { + QS_INCREASING_ORDER, + QS_DECREASING_ORDER, + }; + + // Sort on increasing or decreasing order for a particular column + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct RAK_DLL_EXPORT SortQuery + { + /// The index of the table column we are sorting on + unsigned columnIndex; + + /// See SortQueryType + SortQueryType operation; + }; + + // Constructor + Table(); + + // Destructor + ~Table(); + + /// \brief Adds a column to the table + /// \param[in] columnName The name of the column + /// \param[in] columnType What type of data this column will hold + /// \return The index of the new column + unsigned AddColumn(const char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH], ColumnType columnType); + + /// \brief Removes a column by index + /// \param[in] columnIndex The index of the column to remove + void RemoveColumn(unsigned columnIndex); + + /// \brief Gets the index of a column by name + /// \details Column indices are stored in the order they are added. + /// \param[in] columnName The name of the column + /// \return The index of the column, or (unsigned)-1 if no such column + unsigned ColumnIndex(char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]) const; + unsigned ColumnIndex(const char *columnName) const; + + /// \brief Gives the string name of the column at a certain index + /// \param[in] index The index of the column + /// \return The name of the column, or 0 if an invalid index + char* ColumnName(unsigned index) const; + + /// \brief Returns the type of a column, referenced by index + /// \param[in] index The index of the column + /// \return The type of the column + ColumnType GetColumnType(unsigned index) const; + + /// Returns the number of columns + /// \return The number of columns in the table + unsigned GetColumnCount(void) const; + + /// Returns the number of rows + /// \return The number of rows in the table + unsigned GetRowCount(void) const; + + /// \brief Adds a row to the table + /// \details New rows are added with empty values for all cells. However, if you specify initialCelLValues you can specify initial values + /// It's up to you to ensure that the values in the specific cells match the type of data used by that row + /// rowId can be considered the primary key for the row. It is much faster to lookup a row by its rowId than by searching keys. + /// rowId must be unique + /// Rows are stored in sorted order in the table, using rowId as the sort key + /// \param[in] rowId The UNIQUE primary key for the row. This can never be changed. + /// \param[in] initialCellValues Initial values to give the row (optional) + /// \return The newly added row + Table::Row* AddRow(unsigned rowId); + Table::Row* AddRow(unsigned rowId, DataStructures::List &initialCellValues); + Table::Row* AddRow(unsigned rowId, DataStructures::List &initialCellValues, bool copyCells=false); + + /// \brief Removes a row specified by rowId. + /// \param[in] rowId The ID of the row + /// \return true if the row was deleted. False if not. + bool RemoveRow(unsigned rowId); + + /// \brief Removes all the rows with IDs that the specified table also has. + /// \param[in] tableContainingRowIDs The IDs of the rows + void RemoveRows(Table *tableContainingRowIDs); + + /// \brief Updates a particular cell in the table. + /// \note If you are going to update many cells of a particular row, it is more efficient to call GetRow and perform the operations on the row directly. + /// \note Row pointers do not change, so you can also write directly to the rows for more efficiency. + /// \param[in] rowId The ID of the row + /// \param[in] columnIndex The column of the cell + /// \param[in] value The data to set + bool UpdateCell(unsigned rowId, unsigned columnIndex, int value); + bool UpdateCell(unsigned rowId, unsigned columnIndex, char *str); + bool UpdateCell(unsigned rowId, unsigned columnIndex, int byteLength, char *data); + bool UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int value); + bool UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, char *str); + bool UpdateCellByIndex(unsigned rowIndex, unsigned columnIndex, int byteLength, char *data); + + /// \brief Note this is much less efficient to call than GetRow, then working with the cells directly. + /// Numeric, string, binary + void GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, int *output); + void GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output); + void GetCellValueByIndex(unsigned rowIndex, unsigned columnIndex, char *output, int *outputLength); + + /// \brief Gets a row. More efficient to do this and access Row::cells than to repeatedly call GetCell. + /// You can also update cells in rows from this function. + /// \param[in] rowId The ID of the row + /// \return The desired row, or 0 if no such row. + Row* GetRowByID(unsigned rowId) const; + + /// \brief Gets a row at a specific index. + /// rowIndex should be less than GetRowCount() + /// \param[in] rowIndex The index of the row + /// \param[out] key The ID of the row returned + /// \return The desired row, or 0 if no such row. + Row* GetRowByIndex(unsigned rowIndex, unsigned *key) const; + + /// \brief Queries the table, optionally returning only a subset of columns and rows. + /// \param[in] columnSubset An array of column indices. Only columns in this array are returned. Pass 0 for all columns + /// \param[in] numColumnSubset The number of elements in \a columnSubset + /// \param[in] inclusionFilters An array of FilterQuery. All filters must pass for the row to be returned. + /// \param[in] numInclusionFilters The number of elements in \a inclusionFilters + /// \param[in] rowIds An arrow of row IDs. Only these rows with these IDs are returned. Pass 0 for all rows. + /// \param[in] numRowIDs The number of elements in \a rowIds + /// \param[out] result The result of the query. If no rows are returned, the table will only have columns. + void QueryTable(unsigned *columnIndicesSubset, unsigned numColumnSubset, FilterQuery *inclusionFilters, unsigned numInclusionFilters, unsigned *rowIds, unsigned numRowIDs, Table *result); + + /// \brief Sorts the table by rows + /// \details You can sort the table in ascending or descending order on one or more columns + /// Columns have precedence in the order they appear in the \a sortQueries array + /// If a row cell on column n has the same value as a a different row on column n, then the row will be compared on column n+1 + /// \param[in] sortQueries A list of SortQuery structures, defining the sorts to perform on the table + /// \param[in] numColumnSubset The number of elements in \a numSortQueries + /// \param[out] out The address of an array of Rows, which will receive the sorted output. The array must be long enough to contain all returned rows, up to GetRowCount() + void SortTable(Table::SortQuery *sortQueries, unsigned numSortQueries, Table::Row** out); + + /// \brief Frees all memory in the table. + void Clear(void); + + /// \brief Prints out the names of all the columns. + /// \param[out] out A pointer to an array of bytes which will hold the output. + /// \param[in] outLength The size of the \a out array + /// \param[in] columnDelineator What character to print to delineate columns + void PrintColumnHeaders(char *out, int outLength, char columnDelineator) const; + + /// \brief Writes a text representation of the row to \a out. + /// \param[out] out A pointer to an array of bytes which will hold the output. + /// \param[in] outLength The size of the \a out array + /// \param[in] columnDelineator What character to print to delineate columns + /// \param[in] printDelineatorForBinary Binary output is not printed. True to still print the delineator. + /// \param[in] inputRow The row to print + void PrintRow(char *out, int outLength, char columnDelineator, bool printDelineatorForBinary, Table::Row* inputRow) const; + + /// \brief Direct access to make things easier. + const DataStructures::List& GetColumns(void) const; + + /// \brief Direct access to make things easier. + const DataStructures::BPlusTree& GetRows(void) const; + + /// \brief Get the head of a linked list containing all the row data. + DataStructures::Page * GetListHead(void); + + /// \brief Get the first free row id. + /// This could be made more efficient. + unsigned GetAvailableRowId(void) const; + + Table& operator = ( const Table& input ); + + protected: + Table::Row* AddRowColumns(unsigned rowId, Row *row, DataStructures::List columnIndices); + + void DeleteRow(Row *row); + + void QueryRow(DataStructures::List &inclusionFilterColumnIndices, DataStructures::List &columnIndicesToReturn, unsigned key, Table::Row* row, FilterQuery *inclusionFilters, Table *result); + + // 16 is arbitrary and is the order of the BPlus tree. Higher orders are better for searching while lower orders are better for + // Insertions and deletions. + DataStructures::BPlusTree rows; + + // Columns in the table. + DataStructures::List columns; + }; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/src/raknet/DS_ThreadsafeAllocatingQueue.h b/src/raknet/DS_ThreadsafeAllocatingQueue.h new file mode 100755 index 0000000..a9a1248 --- /dev/null +++ b/src/raknet/DS_ThreadsafeAllocatingQueue.h @@ -0,0 +1,143 @@ +/// \file DS_ThreadsafeAllocatingQueue.h +/// \internal +/// A threadsafe queue, that also uses a memory pool for allocation + +#ifndef __THREADSAFE_ALLOCATING_QUEUE +#define __THREADSAFE_ALLOCATING_QUEUE + +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "DS_MemoryPool.h" + +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + +namespace DataStructures +{ + +template +class RAK_DLL_EXPORT ThreadsafeAllocatingQueue +{ +public: + // Queue operations + void Push(structureType *s); + structureType *PopInaccurate(void); + structureType *Pop(void); + void SetPageSize(int size); + bool IsEmpty(void); + + // Memory pool operations + structureType *Allocate(const char *file, unsigned int line); + void Deallocate(structureType *s, const char *file, unsigned int line); + void Clear(const char *file, unsigned int line); +protected: + + MemoryPool memoryPool; + RakNet::SimpleMutex memoryPoolMutex; + Queue queue; + RakNet::SimpleMutex queueMutex; +}; + +template +void ThreadsafeAllocatingQueue::Push(structureType *s) +{ + queueMutex.Lock(); + queue.Push(s, _FILE_AND_LINE_ ); + queueMutex.Unlock(); +} + +template +structureType *ThreadsafeAllocatingQueue::PopInaccurate(void) +{ + structureType *s; + if (queue.IsEmpty()) + return 0; + queueMutex.Lock(); + if (queue.IsEmpty()==false) + s=queue.Pop(); + else + s=0; + queueMutex.Unlock(); + return s; +} + +template +structureType *ThreadsafeAllocatingQueue::Pop(void) +{ + structureType *s; + queueMutex.Lock(); + if (queue.IsEmpty()) + { + queueMutex.Unlock(); + return 0; + } + s=queue.Pop(); + queueMutex.Unlock(); + return s; +} + +template +structureType *ThreadsafeAllocatingQueue::Allocate(const char *file, unsigned int line) +{ + structureType *s; + memoryPoolMutex.Lock(); + s=memoryPool.Allocate(file, line); + memoryPoolMutex.Unlock(); + // Call new operator, memoryPool doesn't do this + s = new ((void*)s) structureType; + return s; +} +template +void ThreadsafeAllocatingQueue::Deallocate(structureType *s, const char *file, unsigned int line) +{ + // Call delete operator, memory pool doesn't do this + s->~structureType(); + memoryPoolMutex.Lock(); + memoryPool.Release(s, file, line); + memoryPoolMutex.Unlock(); +} + +template +void ThreadsafeAllocatingQueue::Clear(const char *file, unsigned int line) +{ + memoryPoolMutex.Lock(); + for (unsigned int i=0; i < queue.Size(); i++) + { + queue[i]->~structureType(); + memoryPool.Release(queue[i], file, line); + } + queue.Clear(file, line); + memoryPoolMutex.Unlock(); + memoryPoolMutex.Lock(); + memoryPool.Clear(file, line); + memoryPoolMutex.Unlock(); +} + +template +void ThreadsafeAllocatingQueue::SetPageSize(int size) +{ + memoryPool.SetPageSize(size); +} + +template +bool ThreadsafeAllocatingQueue::IsEmpty(void) +{ + bool isEmpty; + queueMutex.Lock(); + isEmpty=queue.IsEmpty(); + queueMutex.Unlock(); + return isEmpty; +} + +}; + + +// #if defined(RMO_NEW_UNDEF_ALLOCATING_QUEUE) +// #pragma pop_macro("new") +// #undef RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + +#endif diff --git a/src/raknet/DS_Tree.h b/src/raknet/DS_Tree.h new file mode 100755 index 0000000..50b723c --- /dev/null +++ b/src/raknet/DS_Tree.h @@ -0,0 +1,98 @@ +/// \file DS_Tree.h +/// \internal +/// \brief Just a regular tree +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __DS_TREE_H +#define __DS_TREE_H + +#include "Export.h" +#include "DS_List.h" +#include "DS_Queue.h" +#include "RakMemoryOverride.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + class RAK_DLL_EXPORT Tree + { + public: + Tree(); + Tree(TreeType &inputData); + ~Tree(); + void LevelOrderTraversal(DataStructures::List &output); + void AddChild(TreeType &newData); + void DeleteDecendants(void); + + TreeType data; + DataStructures::List children; + }; + + template + Tree::Tree() + { + + } + + template + Tree::Tree(TreeType &inputData) + { + data=inputData; + } + + template + Tree::~Tree() + { + DeleteDecendants(); + } + + template + void Tree::LevelOrderTraversal(DataStructures::List &output) + { + unsigned i; + Tree *node; + DataStructures::Queue*> queue; + + for (i=0; i < children.Size(); i++) + queue.Push(children[i]); + + while (queue.Size()) + { + node=queue.Pop(); + output.Insert(node, _FILE_AND_LINE_); + for (i=0; i < node->children.Size(); i++) + queue.Push(node->children[i]); + } + } + + template + void Tree::AddChild(TreeType &newData) + { + children.Insert(RakNet::OP_NEW(newData, _FILE_AND_LINE_)); + } + + template + void Tree::DeleteDecendants(void) + { + /* + DataStructures::List output; + LevelOrderTraversal(output); + unsigned i; + for (i=0; i < output.Size(); i++) + RakNet::OP_DELETE(output[i], _FILE_AND_LINE_); +*/ + + // Already recursive to do this + unsigned int i; + for (i=0; i < children.Size(); i++) + RakNet::OP_DELETE(children[i], _FILE_AND_LINE_); + } +} + +#endif diff --git a/src/raknet/DS_WeightedGraph.h b/src/raknet/DS_WeightedGraph.h new file mode 100755 index 0000000..28f4424 --- /dev/null +++ b/src/raknet/DS_WeightedGraph.h @@ -0,0 +1,537 @@ +/// \file DS_WeightedGraph.h +/// \internal +/// \brief Weighted graph. +/// \details I'm assuming the indices are complex map types, rather than sequential numbers (which could be implemented much more efficiently). +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __WEIGHTED_GRAPH_H +#define __WEIGHTED_GRAPH_H + +#include "DS_OrderedList.h" +#include "DS_Map.h" +#include "DS_Heap.h" +#include "DS_Queue.h" +#include "DS_Tree.h" +#include "RakAssert.h" +#include "RakMemoryOverride.h" +#ifdef _DEBUG +#include +#endif + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + template + class RAK_DLL_EXPORT WeightedGraph + { + public: + static void IMPLEMENT_DEFAULT_COMPARISON(void) {DataStructures::defaultMapKeyComparison(node_type(),node_type());} + + WeightedGraph(); + ~WeightedGraph(); + WeightedGraph( const WeightedGraph& original_copy ); + WeightedGraph& operator= ( const WeightedGraph& original_copy ); + void AddNode(const node_type &node); + void RemoveNode(const node_type &node); + void AddConnection(const node_type &node1, const node_type &node2, weight_type weight); + void RemoveConnection(const node_type &node1, const node_type &node2); + bool HasConnection(const node_type &node1, const node_type &node2); + void Print(void); + void Clear(void); + bool GetShortestPath(DataStructures::List &path, node_type startNode, node_type endNode, weight_type INFINITE_WEIGHT); + bool GetSpanningTree(DataStructures::Tree &outTree, DataStructures::List *inputNodes, node_type startNode, weight_type INFINITE_WEIGHT ); + unsigned GetNodeCount(void) const; + unsigned GetConnectionCount(unsigned nodeIndex) const; + void GetConnectionAtIndex(unsigned nodeIndex, unsigned connectionIndex, node_type &outNode, weight_type &outWeight) const; + node_type GetNodeAtIndex(unsigned nodeIndex) const; + + protected: + void ClearDijkstra(void); + void GenerateDisjktraMatrix(node_type startNode, weight_type INFINITE_WEIGHT); + + DataStructures::Map *> adjacencyLists; + + // All these variables are for path finding with Dijkstra + // 08/23/06 Won't compile as a DLL inside this struct + // struct + // { + bool isValidPath; + node_type rootNode; + DataStructures::OrderedList costMatrixIndices; + weight_type *costMatrix; + node_type *leastNodeArray; + // } dijkstra; + + struct NodeAndParent + { + DataStructures::Tree*node; + DataStructures::Tree*parent; + }; + }; + + template + WeightedGraph::WeightedGraph() + { + isValidPath=false; + costMatrix=0; + } + + template + WeightedGraph::~WeightedGraph() + { + Clear(); + } + + template + WeightedGraph::WeightedGraph( const WeightedGraph& original_copy ) + { + adjacencyLists=original_copy.adjacencyLists; + + isValidPath=original_copy.isValidPath; + if (isValidPath) + { + rootNode=original_copy.rootNode; + costMatrixIndices=original_copy.costMatrixIndices; + costMatrix = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size() * costMatrixIndices.Size(), _FILE_AND_LINE_ ); + leastNodeArray = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size(), _FILE_AND_LINE_ ); + memcpy(costMatrix, original_copy.costMatrix, costMatrixIndices.Size() * costMatrixIndices.Size() * sizeof(weight_type)); + memcpy(leastNodeArray, original_copy.leastNodeArray, costMatrixIndices.Size() * sizeof(weight_type)); + } + } + + template + WeightedGraph& WeightedGraph::operator=( const WeightedGraph& original_copy ) + { + adjacencyLists=original_copy.adjacencyLists; + + isValidPath=original_copy.isValidPath; + if (isValidPath) + { + rootNode=original_copy.rootNode; + costMatrixIndices=original_copy.costMatrixIndices; + costMatrix = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size() * costMatrixIndices.Size(), _FILE_AND_LINE_ ); + leastNodeArray = RakNet::OP_NEW_ARRAY(costMatrixIndices.Size(), _FILE_AND_LINE_ ); + memcpy(costMatrix, original_copy.costMatrix, costMatrixIndices.Size() * costMatrixIndices.Size() * sizeof(weight_type)); + memcpy(leastNodeArray, original_copy.leastNodeArray, costMatrixIndices.Size() * sizeof(weight_type)); + } + + return *this; + } + + template + void WeightedGraph::AddNode(const node_type &node) + { + adjacencyLists.SetNew(node, RakNet::OP_NEW >( _FILE_AND_LINE_) ); + } + + template + void WeightedGraph::RemoveNode(const node_type &node) + { + unsigned i; + DataStructures::Queue removeNodeQueue; + + removeNodeQueue.Push(node, _FILE_AND_LINE_ ); + while (removeNodeQueue.Size()) + { + RakNet::OP_DELETE(adjacencyLists.Pop(removeNodeQueue.Pop()), _FILE_AND_LINE_); + + // Remove this node from all of the other lists as well + for (i=0; i < adjacencyLists.Size(); i++) + { + adjacencyLists[i]->Delete(node); + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (allow_unlinkedNodes==false && adjacencyLists[i]->Size()==0) + removeNodeQueue.Push(adjacencyLists.GetKeyAtIndex(i), _FILE_AND_LINE_ ); + } + } + + ClearDijkstra(); + } + + template + bool WeightedGraph::HasConnection(const node_type &node1, const node_type &node2) + { + if (node1==node2) + return false; + if (adjacencyLists.Has(node1)==false) + return false; + return adjacencyLists.Get(node1)->Has(node2); + } + + template + void WeightedGraph::AddConnection(const node_type &node1, const node_type &node2, weight_type weight) + { + if (node1==node2) + return; + + if (adjacencyLists.Has(node1)==false) + AddNode(node1); + adjacencyLists.Get(node1)->Set(node2, weight); + if (adjacencyLists.Has(node2)==false) + AddNode(node2); + adjacencyLists.Get(node2)->Set(node1, weight); + } + + template + void WeightedGraph::RemoveConnection(const node_type &node1, const node_type &node2) + { + adjacencyLists.Get(node2)->Delete(node1); + adjacencyLists.Get(node1)->Delete(node2); + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + if (allow_unlinkedNodes==false) // If we do not allow _unlinked nodes, then if there are no connections, remove the node + { + if (adjacencyLists.Get(node1)->Size()==0) + RemoveNode(node1); // Will also remove node1 from the adjacency list of node2 + if (adjacencyLists.Has(node2) && adjacencyLists.Get(node2)->Size()==0) + RemoveNode(node2); + } + + ClearDijkstra(); + } + + template + void WeightedGraph::Clear(void) + { + unsigned i; + for (i=0; i < adjacencyLists.Size(); i++) + RakNet::OP_DELETE(adjacencyLists[i], _FILE_AND_LINE_); + adjacencyLists.Clear(); + + ClearDijkstra(); + } + + template + bool WeightedGraph::GetShortestPath(DataStructures::List &path, node_type startNode, node_type endNode, weight_type INFINITE_WEIGHT) + { + path.Clear(false, _FILE_AND_LINE_); + if (startNode==endNode) + { + path.Insert(startNode, _FILE_AND_LINE_); + path.Insert(endNode, _FILE_AND_LINE_); + return true; + } + + if (isValidPath==false || rootNode!=startNode) + { + ClearDijkstra(); + GenerateDisjktraMatrix(startNode, INFINITE_WEIGHT); + } + + // return the results + bool objectExists; + unsigned col,row; + weight_type currentWeight; + DataStructures::Queue outputQueue; + col=costMatrixIndices.GetIndexFromKey(endNode, &objectExists); + if (costMatrixIndices.Size()<2) + { + return false; + } + if (objectExists==false) + { + return false; + } + node_type vertex; + row=costMatrixIndices.Size()-2; + if (row==0) + { + path.Insert(startNode, _FILE_AND_LINE_); + path.Insert(endNode, _FILE_AND_LINE_); + return true; + } + currentWeight=costMatrix[row*adjacencyLists.Size() + col]; + if (currentWeight==INFINITE_WEIGHT) + { + // No path + return true; + } + vertex=endNode; + outputQueue.PushAtHead(vertex, 0, _FILE_AND_LINE_); + row--; +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + while (costMatrix[row*adjacencyLists.Size() + col] == currentWeight) + { + if (row==0) + { + path.Insert(startNode, _FILE_AND_LINE_); + for (col=0; outputQueue.Size(); col++) + path.Insert(outputQueue.Pop(), _FILE_AND_LINE_); + return true; + } + --row; + } + + vertex=leastNodeArray[row]; + outputQueue.PushAtHead(vertex, 0, _FILE_AND_LINE_); + if (row==0) + break; + col=costMatrixIndices.GetIndexFromKey(vertex, &objectExists); + currentWeight=costMatrix[row*adjacencyLists.Size() + col]; + } + + path.Insert(startNode, _FILE_AND_LINE_); + for (col=0; outputQueue.Size(); col++) + path.Insert(outputQueue.Pop(), _FILE_AND_LINE_); + return true; + } + + template + node_type WeightedGraph::GetNodeAtIndex(unsigned nodeIndex) const + { + return adjacencyLists.GetKeyAtIndex(nodeIndex); + } + + template + unsigned WeightedGraph::GetNodeCount(void) const + { + return adjacencyLists.Size(); + } + + template + unsigned WeightedGraph::GetConnectionCount(unsigned nodeIndex) const + { + return adjacencyLists[nodeIndex]->Size(); + } + + template + void WeightedGraph::GetConnectionAtIndex(unsigned nodeIndex, unsigned connectionIndex, node_type &outNode, weight_type &outWeight) const + { + outWeight=adjacencyLists[nodeIndex]->operator[](connectionIndex); + outNode=adjacencyLists[nodeIndex]->GetKeyAtIndex(connectionIndex); + } + + template + bool WeightedGraph::GetSpanningTree(DataStructures::Tree &outTree, DataStructures::List *inputNodes, node_type startNode, weight_type INFINITE_WEIGHT ) + { + // Find the shortest path from the start node to each of the input nodes. Add this path to a new WeightedGraph if the result is reachable + DataStructures::List path; + DataStructures::WeightedGraph outGraph; + bool res; + unsigned i,j; + for (i=0; i < inputNodes->Size(); i++) + { + res=GetShortestPath(path, startNode, (*inputNodes)[i], INFINITE_WEIGHT); + if (res && path.Size()>0) + { + for (j=0; j < path.Size()-1; j++) + { + // Don't bother looking up the weight + outGraph.AddConnection(path[j], path[j+1], INFINITE_WEIGHT); + } + } + } + + // Copy the graph to a tree. + DataStructures::Queue nodesToProcess; + DataStructures::Tree *current; + DataStructures::Map *adjacencyList; + node_type key; + NodeAndParent nap, nap2; + outTree.DeleteDecendants(); + outTree.data=startNode; + current=&outTree; + if (outGraph.adjacencyLists.Has(startNode)==false) + return false; + adjacencyList = outGraph.adjacencyLists.Get(startNode); + + for (i=0; i < adjacencyList->Size(); i++) + { + nap2.node=RakNet::OP_NEW >( _FILE_AND_LINE_ ); + nap2.node->data=adjacencyList->GetKeyAtIndex(i); + nap2.parent=current; + nodesToProcess.Push(nap2, _FILE_AND_LINE_ ); + current->children.Insert(nap2.node, _FILE_AND_LINE_); + } + + while (nodesToProcess.Size()) + { + nap=nodesToProcess.Pop(); + current=nap.node; + adjacencyList = outGraph.adjacencyLists.Get(nap.node->data); + + for (i=0; i < adjacencyList->Size(); i++) + { + key=adjacencyList->GetKeyAtIndex(i); + if (key!=nap.parent->data) + { + nap2.node=RakNet::OP_NEW >( _FILE_AND_LINE_ ); + nap2.node->data=key; + nap2.parent=current; + nodesToProcess.Push(nap2, _FILE_AND_LINE_ ); + current->children.Insert(nap2.node, _FILE_AND_LINE_); + } + } + } + + return true; + } + + template + void WeightedGraph::GenerateDisjktraMatrix(node_type startNode, weight_type INFINITE_WEIGHT) + { + if (adjacencyLists.Size()==0) + return; + + costMatrix = RakNet::OP_NEW_ARRAY(adjacencyLists.Size() * adjacencyLists.Size(), _FILE_AND_LINE_ ); + leastNodeArray = RakNet::OP_NEW_ARRAY(adjacencyLists.Size(), _FILE_AND_LINE_ ); + + node_type currentNode; + unsigned col, row, row2, openSetIndex; + node_type adjacentKey; + unsigned adjacentIndex; + weight_type edgeWeight, currentNodeWeight, adjacentNodeWeight; + DataStructures::Map *adjacencyList; + DataStructures::Heap minHeap; + DataStructures::Map openSet; + + for (col=0; col < adjacencyLists.Size(); col++) + { + // This should be already sorted, so it's a bit inefficient to do an insertion sort, but what the heck + costMatrixIndices.Insert(adjacencyLists.GetKeyAtIndex(col),adjacencyLists.GetKeyAtIndex(col), true, _FILE_AND_LINE_); + } + for (col=0; col < adjacencyLists.Size() * adjacencyLists.Size(); col++) + costMatrix[col]=INFINITE_WEIGHT; + currentNode=startNode; + row=0; + currentNodeWeight=0; + rootNode=startNode; + + // Clear the starting node column + if (adjacencyLists.Size()) + { + adjacentIndex=adjacencyLists.GetIndexAtKey(startNode); + for (row2=0; row2 < adjacencyLists.Size(); row2++) + costMatrix[row2*adjacencyLists.Size() + adjacentIndex]=0; + } + + while (row < adjacencyLists.Size()-1) + { + adjacencyList = adjacencyLists.Get(currentNode); + // Go through all connections from the current node. If the new weight is less than the current weight, then update that weight. + for (col=0; col < adjacencyList->Size(); col++) + { + edgeWeight=(*adjacencyList)[col]; + adjacentKey=adjacencyList->GetKeyAtIndex(col); + adjacentIndex=adjacencyLists.GetIndexAtKey(adjacentKey); + adjacentNodeWeight=costMatrix[row*adjacencyLists.Size() + adjacentIndex]; + + if (currentNodeWeight + edgeWeight < adjacentNodeWeight) + { + // Update the weight for the adjacent node + for (row2=row; row2 < adjacencyLists.Size(); row2++) + costMatrix[row2*adjacencyLists.Size() + adjacentIndex]=currentNodeWeight + edgeWeight; + openSet.Set(adjacentKey, currentNodeWeight + edgeWeight); + } + } + + // Find the lowest in the open set + minHeap.Clear(true,_FILE_AND_LINE_); + for (openSetIndex=0; openSetIndex < openSet.Size(); openSetIndex++) + minHeap.Push(openSet[openSetIndex], openSet.GetKeyAtIndex(openSetIndex),_FILE_AND_LINE_); + + /* + unsigned i,j; + for (i=0; i < adjacencyLists.Size()-1; i++) + { + for (j=0; j < adjacencyLists.Size(); j++) + { + RAKNET_DEBUG_PRINTF("%2i ", costMatrix[i*adjacencyLists.Size() + j]); + } + RAKNET_DEBUG_PRINTF("Node=%i", leastNodeArray[i]); + RAKNET_DEBUG_PRINTF("\n"); + } + */ + + if (minHeap.Size()==0) + { + // Unreachable nodes + isValidPath=true; + return; + } + + currentNodeWeight=minHeap.PeekWeight(0); + leastNodeArray[row]=minHeap.Pop(0); + currentNode=leastNodeArray[row]; + openSet.Delete(currentNode); + row++; + } + + /* +#ifdef _DEBUG + unsigned i,j; + for (i=0; i < adjacencyLists.Size()-1; i++) + { + for (j=0; j < adjacencyLists.Size(); j++) + { + RAKNET_DEBUG_PRINTF("%2i ", costMatrix[i*adjacencyLists.Size() + j]); + } + RAKNET_DEBUG_PRINTF("Node=%i", leastNodeArray[i]); + RAKNET_DEBUG_PRINTF("\n"); + } +#endif + */ + + isValidPath=true; + } + + template + void WeightedGraph::ClearDijkstra(void) + { + if (isValidPath) + { + isValidPath=false; + RakNet::OP_DELETE_ARRAY(costMatrix, _FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(leastNodeArray, _FILE_AND_LINE_); + costMatrixIndices.Clear(false, _FILE_AND_LINE_); + } + } + + template + void WeightedGraph::Print(void) + { +#ifdef _DEBUG + unsigned i,j; + for (i=0; i < adjacencyLists.Size(); i++) + { + //RAKNET_DEBUG_PRINTF("%i connected to ", i); + RAKNET_DEBUG_PRINTF("%s connected to ", adjacencyLists.GetKeyAtIndex(i).systemAddress.ToString()); + + if (adjacencyLists[i]->Size()==0) + RAKNET_DEBUG_PRINTF(""); + else + { + for (j=0; j < adjacencyLists[i]->Size(); j++) + // RAKNET_DEBUG_PRINTF("%i (%.2f) ", adjacencyLists.GetIndexAtKey(adjacencyLists[i]->GetKeyAtIndex(j)), (float) adjacencyLists[i]->operator[](j) ); + RAKNET_DEBUG_PRINTF("%s (%.2f) ", adjacencyLists[i]->GetKeyAtIndex(j).systemAddress.ToString(), (float) adjacencyLists[i]->operator[](j) ); + } + + RAKNET_DEBUG_PRINTF("\n"); + } +#endif + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif diff --git a/src/raknet/DataCompressor.cpp b/src/raknet/DataCompressor.cpp new file mode 100755 index 0000000..f281ff2 --- /dev/null +++ b/src/raknet/DataCompressor.cpp @@ -0,0 +1,63 @@ +#include "DataCompressor.h" +#include "DS_HuffmanEncodingTree.h" +#include "RakAssert.h" +#include // Use string.h rather than memory.h for a console + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(DataCompressor,DataCompressor) + +void DataCompressor::Compress( unsigned char *userData, unsigned sizeInBytes, RakNet::BitStream * output ) +{ + // Don't use this for small files as you will just make them bigger! + RakAssert(sizeInBytes > 2048); + + unsigned int frequencyTable[ 256 ]; + unsigned int i; + memset(frequencyTable,0,256*sizeof(unsigned int)); + for (i=0; i < sizeInBytes; i++) + ++frequencyTable[userData[i]]; + HuffmanEncodingTree tree; + BitSize_t writeOffset1, writeOffset2, bitsUsed1, bitsUsed2; + tree.GenerateFromFrequencyTable(frequencyTable); + output->WriteCompressed(sizeInBytes); + for (i=0; i < 256; i++) + output->WriteCompressed(frequencyTable[i]); + output->AlignWriteToByteBoundary(); + writeOffset1=output->GetWriteOffset(); + output->Write((unsigned int)0); // Dummy value + bitsUsed1=output->GetNumberOfBitsUsed(); + tree.EncodeArray(userData, sizeInBytes, output); + bitsUsed2=output->GetNumberOfBitsUsed(); + writeOffset2=output->GetWriteOffset(); + output->SetWriteOffset(writeOffset1); + output->Write(bitsUsed2-bitsUsed1); // Go back and write how many bits were used for the encoding + output->SetWriteOffset(writeOffset2); +} + +unsigned DataCompressor::DecompressAndAllocate( RakNet::BitStream * input, unsigned char **output ) +{ + HuffmanEncodingTree tree; + unsigned int bitsUsed, destinationSizeInBytes; + unsigned int decompressedBytes; + unsigned int frequencyTable[ 256 ]; + unsigned i; + + input->ReadCompressed(destinationSizeInBytes); + for (i=0; i < 256; i++) + input->ReadCompressed(frequencyTable[i]); + input->AlignReadToByteBoundary(); + if (input->Read(bitsUsed)==false) + { + // Read error +#ifdef _DEBUG + RakAssert(0); +#endif + return 0; + } + *output = (unsigned char*) rakMalloc_Ex(destinationSizeInBytes, _FILE_AND_LINE_); + tree.GenerateFromFrequencyTable(frequencyTable); + decompressedBytes=tree.DecodeArray(input, bitsUsed, destinationSizeInBytes, *output ); + RakAssert(decompressedBytes==destinationSizeInBytes); + return destinationSizeInBytes; +} diff --git a/src/raknet/DataCompressor.h b/src/raknet/DataCompressor.h new file mode 100755 index 0000000..9152396 --- /dev/null +++ b/src/raknet/DataCompressor.h @@ -0,0 +1,33 @@ +/// \file DataCompressor.h +/// \brief DataCompressor does compression on a block of data. +/// \details Not very good compression, but it's small and fast so is something you can use per-message at runtime. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __DATA_COMPRESSOR_H +#define __DATA_COMPRESSOR_H + +#include "RakMemoryOverride.h" +#include "DS_HuffmanEncodingTree.h" +#include "Export.h" + +namespace RakNet +{ + +/// \brief Does compression on a block of data. Not very good compression, but it's small and fast so is something you can compute at runtime. +class RAK_DLL_EXPORT DataCompressor +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(DataCompressor) + + static void Compress( unsigned char *userData, unsigned sizeInBytes, RakNet::BitStream * output ); + static unsigned DecompressAndAllocate( RakNet::BitStream * input, unsigned char **output ); +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/DirectoryDeltaTransfer.cpp b/src/raknet/DirectoryDeltaTransfer.cpp new file mode 100755 index 0000000..e612c92 --- /dev/null +++ b/src/raknet/DirectoryDeltaTransfer.cpp @@ -0,0 +1,242 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DirectoryDeltaTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#include "DirectoryDeltaTransfer.h" +#include "FileList.h" +#include "StringCompressor.h" +#include "RakPeerInterface.h" +#include "FileListTransfer.h" +#include "FileListTransferCBInterface.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "FileOperations.h" +#include "IncrementalReadInterface.h" + +using namespace RakNet; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +class DDTCallback : public FileListTransferCBInterface +{ +public: + unsigned subdirLen; + char outputSubdir[512]; + FileListTransferCBInterface *onFileCallback; + + DDTCallback() {} + virtual ~DDTCallback() {} + + virtual bool OnFile(OnFileStruct *onFileStruct) + { + char fullPathToDir[1024]; + + if (onFileStruct->fileName && onFileStruct->fileData && subdirLen < strlen(onFileStruct->fileName)) + { + strcpy(fullPathToDir, outputSubdir); + strcat(fullPathToDir, onFileStruct->fileName+subdirLen); + WriteFileWithDirectories(fullPathToDir, (char*)onFileStruct->fileData, (unsigned int ) onFileStruct->byteLengthOfThisFile); + } + else + fullPathToDir[0]=0; + + return onFileCallback->OnFile(onFileStruct); + } + + virtual void OnFileProgress(FileProgressStruct *fps) + { + char fullPathToDir[1024]; + + if (fps->onFileStruct->fileName && subdirLen < strlen(fps->onFileStruct->fileName)) + { + strcpy(fullPathToDir, outputSubdir); + strcat(fullPathToDir, fps->onFileStruct->fileName+subdirLen); + } + else + fullPathToDir[0]=0; + + onFileCallback->OnFileProgress(fps); + } + virtual bool OnDownloadComplete(DownloadCompleteStruct *dcs) + { + return onFileCallback->OnDownloadComplete(dcs); + } +}; + +STATIC_FACTORY_DEFINITIONS(DirectoryDeltaTransfer,DirectoryDeltaTransfer); + +DirectoryDeltaTransfer::DirectoryDeltaTransfer() +{ + applicationDirectory[0]=0; + fileListTransfer=0; + availableUploads = RakNet::OP_NEW( _FILE_AND_LINE_ ); + priority=HIGH_PRIORITY; + orderingChannel=0; + incrementalReadInterface=0; +} +DirectoryDeltaTransfer::~DirectoryDeltaTransfer() +{ + RakNet::OP_DELETE(availableUploads, _FILE_AND_LINE_); +} +void DirectoryDeltaTransfer::SetFileListTransferPlugin(FileListTransfer *flt) +{ + if (fileListTransfer) + { + DataStructures::List fileListProgressList; + fileListTransfer->GetCallbacks(fileListProgressList); + unsigned int i; + for (i=0; i < fileListProgressList.Size(); i++) + availableUploads->RemoveCallback(fileListProgressList[i]); + } + + fileListTransfer=flt; + + if (flt) + { + DataStructures::List fileListProgressList; + flt->GetCallbacks(fileListProgressList); + unsigned int i; + for (i=0; i < fileListProgressList.Size(); i++) + availableUploads->AddCallback(fileListProgressList[i]); + } + else + { + availableUploads->ClearCallbacks(); + } +} +void DirectoryDeltaTransfer::SetApplicationDirectory(const char *pathToApplication) +{ + if (pathToApplication==0 || pathToApplication[0]==0) + applicationDirectory[0]=0; + else + { + strncpy(applicationDirectory, pathToApplication, 510); + if (applicationDirectory[strlen(applicationDirectory)-1]!='/' && applicationDirectory[strlen(applicationDirectory)-1]!='\\') + strcat(applicationDirectory, "/"); + applicationDirectory[511]=0; + } +} +void DirectoryDeltaTransfer::SetUploadSendParameters(PacketPriority _priority, char _orderingChannel) +{ + priority=_priority; + orderingChannel=_orderingChannel; +} +void DirectoryDeltaTransfer::AddUploadsFromSubdirectory(const char *subdir) +{ + availableUploads->AddFilesFromDirectory(applicationDirectory, subdir, true, false, true, FileListNodeContext(0,0)); +} +unsigned short DirectoryDeltaTransfer::DownloadFromSubdirectory(FileList &localFiles, const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb) +{ + RakAssert(host!=UNASSIGNED_SYSTEM_ADDRESS); + + DDTCallback *transferCallback; + + localFiles.AddCallback(cb); + + // Prepare the callback data + transferCallback = RakNet::OP_NEW( _FILE_AND_LINE_ ); + if (subdir && subdir[0]) + { + transferCallback->subdirLen=(unsigned int)strlen(subdir); + if (subdir[transferCallback->subdirLen-1]!='/' && subdir[transferCallback->subdirLen-1]!='\\') + transferCallback->subdirLen++; + } + else + transferCallback->subdirLen=0; + if (prependAppDirToOutputSubdir) + strcpy(transferCallback->outputSubdir, applicationDirectory); + else + transferCallback->outputSubdir[0]=0; + if (outputSubdir) + strcat(transferCallback->outputSubdir, outputSubdir); + if (transferCallback->outputSubdir[strlen(transferCallback->outputSubdir)-1]!='/' && transferCallback->outputSubdir[strlen(transferCallback->outputSubdir)-1]!='\\') + strcat(transferCallback->outputSubdir, "/"); + transferCallback->onFileCallback=onFileCallback; + + // Setup the transfer plugin to get the response to this download request + unsigned short setId = fileListTransfer->SetupReceive(transferCallback, true, host); + + // Send to the host, telling it to process this request + RakNet::BitStream outBitstream; + outBitstream.Write((MessageID)ID_DDT_DOWNLOAD_REQUEST); + outBitstream.Write(setId); + StringCompressor::Instance()->EncodeString(subdir, 256, &outBitstream); + StringCompressor::Instance()->EncodeString(outputSubdir, 256, &outBitstream); + localFiles.Serialize(&outBitstream); + SendUnified(&outBitstream, _priority, RELIABLE_ORDERED, _orderingChannel, host, false); + + return setId; +} +unsigned short DirectoryDeltaTransfer::DownloadFromSubdirectory(const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb) +{ + FileList localFiles; + // Get a hash of all the files that we already have (if any) + localFiles.AddFilesFromDirectory(prependAppDirToOutputSubdir ? applicationDirectory : 0, outputSubdir, true, false, true, FileListNodeContext(0,0)); + return DownloadFromSubdirectory(localFiles, subdir, outputSubdir, prependAppDirToOutputSubdir, host, onFileCallback, _priority, _orderingChannel, cb); +} +void DirectoryDeltaTransfer::GenerateHashes(FileList &localFiles, const char *outputSubdir, bool prependAppDirToOutputSubdir) +{ + localFiles.AddFilesFromDirectory(prependAppDirToOutputSubdir ? applicationDirectory : 0, outputSubdir, true, false, true, FileListNodeContext(0,0)); +} +void DirectoryDeltaTransfer::ClearUploads(void) +{ + availableUploads->Clear(); +} +void DirectoryDeltaTransfer::OnDownloadRequest(Packet *packet) +{ + char subdir[256]; + char remoteSubdir[256]; + RakNet::BitStream inBitstream(packet->data, packet->length, false); + FileList remoteFileHash; + FileList delta; + unsigned short setId; + inBitstream.IgnoreBits(8); + inBitstream.Read(setId); + StringCompressor::Instance()->DecodeString(subdir, 256, &inBitstream); + StringCompressor::Instance()->DecodeString(remoteSubdir, 256, &inBitstream); + if (remoteFileHash.Deserialize(&inBitstream)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + + availableUploads->GetDeltaToCurrent(&remoteFileHash, &delta, subdir, remoteSubdir); + if (incrementalReadInterface==0) + delta.PopulateDataFromDisk(applicationDirectory, true, false, true); + else + delta.FlagFilesAsReferences(); + + // This will call the ddtCallback interface that was passed to FileListTransfer::SetupReceive on the remote system + fileListTransfer->Send(&delta, rakPeerInterface, packet->systemAddress, setId, priority, orderingChannel, incrementalReadInterface, chunkSize); +} +PluginReceiveResult DirectoryDeltaTransfer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_DDT_DOWNLOAD_REQUEST: + OnDownloadRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} + +unsigned DirectoryDeltaTransfer::GetNumberOfFilesForUpload(void) const +{ + return availableUploads->fileList.Size(); +} + +void DirectoryDeltaTransfer::SetDownloadRequestIncrementalReadInterface(IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize) +{ + incrementalReadInterface=_incrementalReadInterface; + chunkSize=_chunkSize; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/DirectoryDeltaTransfer.h b/src/raknet/DirectoryDeltaTransfer.h new file mode 100755 index 0000000..5c78622 --- /dev/null +++ b/src/raknet/DirectoryDeltaTransfer.h @@ -0,0 +1,164 @@ +/// \file DirectoryDeltaTransfer.h +/// \brief Simple class to send changes between directories. +/// \details In essence, a simple autopatcher that can be used for transmitting levels, skins, etc. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DirectoryDeltaTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __DIRECTORY_DELTA_TRANSFER_H +#define __DIRECTORY_DELTA_TRANSFER_H + +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "DS_Map.h" +#include "PacketPriority.h" + +/// \defgroup DIRECTORY_DELTA_TRANSFER_GROUP DirectoryDeltaTransfer +/// \brief Simple class to send changes between directories +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Simple class to send changes between directories. In essence, a simple autopatcher that can be used for transmitting levels, skins, etc. +/// \details +/// \sa AutopatcherClient class for database driven patching, including binary deltas and search by date. +/// +/// To use, first set the path to your application. For example "C:/Games/MyRPG/"
    +/// To allow other systems to download files, call AddUploadsFromSubdirectory, where the parameter is a path relative
    +/// to the path to your application. This includes subdirectories.
    +/// For example:
    +/// SetApplicationDirectory("C:/Games/MyRPG/");
    +/// AddUploadsFromSubdirectory("Mods/Skins/");
    +/// would allow downloads from
    +/// "C:/Games/MyRPG/Mods/Skins/*.*" as well as "C:/Games/MyRPG/Mods/Skins/Level1/*.*"
    +/// It would NOT allow downloads from C:/Games/MyRPG/Levels, nor would it allow downloads from C:/Windows
    +/// While pathToApplication can be anything you want, applicationSubdirectory must match either partially or fully between systems. +/// \ingroup DIRECTORY_DELTA_TRANSFER_GROUP + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class FileList; +struct Packet; +struct InternalPacket; +struct DownloadRequest; +class FileListTransfer; +class FileListTransferCBInterface; +class FileListProgress; +class IncrementalReadInterface; + +class RAK_DLL_EXPORT DirectoryDeltaTransfer : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(DirectoryDeltaTransfer) + + // Constructor + DirectoryDeltaTransfer(); + + // Destructor + virtual ~DirectoryDeltaTransfer(); + + /// \brief This plugin has a dependency on the FileListTransfer plugin, which it uses to actually send the files. + /// \details So you need an instance of that plugin registered with RakPeerInterface, and a pointer to that interface should be passed here. + /// \param[in] flt A pointer to a registered instance of FileListTransfer + void SetFileListTransferPlugin(FileListTransfer *flt); + + /// \brief Set the local root directory to base all file uploads and downloads off of. + /// \param[in] pathToApplication This path will be prepended to \a applicationSubdirectory in AddUploadsFromSubdirectory to find the actual path on disk. + void SetApplicationDirectory(const char *pathToApplication); + + /// \brief What parameters to use for the RakPeerInterface::Send() call when uploading files. + /// \param[in] _priority See RakPeerInterface::Send() + /// \param[in] _orderingChannel See RakPeerInterface::Send() + void SetUploadSendParameters(PacketPriority _priority, char _orderingChannel); + + /// \brief Add all files in the specified subdirectory recursively. + /// \details \a subdir is appended to \a pathToApplication in SetApplicationDirectory(). + /// All files in the resultant directory and subdirectories are then hashed so that users can download them. + /// \pre You must call SetFileListTransferPlugin with a valid FileListTransfer plugin + /// \param[in] subdir Concatenated with pathToApplication to form the final path from which to allow uploads. + void AddUploadsFromSubdirectory(const char *subdir); + + /// \brief Downloads files from the matching parameter \a subdir in AddUploadsFromSubdirectory. + /// \details \a subdir must contain all starting characters in \a subdir in AddUploadsFromSubdirectory + /// Therefore, + /// AddUploadsFromSubdirectory("Levels/Level1/"); would allow you to download using DownloadFromSubdirectory("Levels/Level1/Textures/"... + /// but it would NOT allow you to download from DownloadFromSubdirectory("Levels/"... or DownloadFromSubdirectory("Levels/Level2/"... + /// \pre You must call SetFileListTransferPlugin with a valid FileListTransfer plugin + /// \note Blocking. Will block while hashes of the local files are generated + /// \param[in] subdir A directory passed to AddUploadsFromSubdirectory on the remote system. The passed dir can be more specific than the remote dir. + /// \param[in] outputSubdir The directory to write the output to. Usually this will match \a subdir but it can be different if you want. + /// \param[in] prependAppDirToOutputSubdir True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. + /// \param[in] host The address of the remote system to send the message to. + /// \param[in] onFileCallback Callback to call per-file (optional). When fileIndex+1==setCount in the callback then the download is done + /// \param[in] _priority See RakPeerInterface::Send() + /// \param[in] _orderingChannel See RakPeerInterface::Send() + /// \param[in] cb Callback to get progress updates. Pass 0 to not use. + /// \return A set ID, identifying this download set. Returns 65535 on host unreachable. + unsigned short DownloadFromSubdirectory(const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb); + + /// \brief Downloads files from the matching parameter \a subdir in AddUploadsFromSubdirectory. + /// \details \a subdir must contain all starting characters in \a subdir in AddUploadsFromSubdirectory + /// Therefore, + /// AddUploadsFromSubdirectory("Levels/Level1/"); would allow you to download using DownloadFromSubdirectory("Levels/Level1/Textures/"... + /// but it would NOT allow you to download from DownloadFromSubdirectory("Levels/"... or DownloadFromSubdirectory("Levels/Level2/"... + /// \pre You must call SetFileListTransferPlugin with a valid FileListTransfer plugin + /// \note Nonblocking, but requires call to GenerateHashes() + /// \param[in] localFiles Hashes of local files already on the harddrive. Populate with GenerateHashes(), which you may wish to call from a thread + /// \param[in] subdir A directory passed to AddUploadsFromSubdirectory on the remote system. The passed dir can be more specific than the remote dir. + /// \param[in] outputSubdir The directory to write the output to. Usually this will match \a subdir but it can be different if you want. + /// \param[in] prependAppDirToOutputSubdir True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. + /// \param[in] host The address of the remote system to send the message to. + /// \param[in] onFileCallback Callback to call per-file (optional). When fileIndex+1==setCount in the callback then the download is done + /// \param[in] _priority See RakPeerInterface::Send() + /// \param[in] _orderingChannel See RakPeerInterface::Send() + /// \param[in] cb Callback to get progress updates. Pass 0 to not use. + /// \return A set ID, identifying this download set. Returns 65535 on host unreachable. + unsigned short DownloadFromSubdirectory(FileList &localFiles, const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb); + + /// Hash files already on the harddrive, in preparation for a call to DownloadFromSubdirectory(). Passed to second version of DownloadFromSubdirectory() + /// This is slow, and it is exposed so you can call it from a thread before calling DownloadFromSubdirectory() + /// \param[out] localFiles List of hashed files populated from \a outputSubdir and \a prependAppDirToOutputSubdir + /// \param[in] outputSubdir The directory to write the output to. Usually this will match \a subdir but it can be different if you want. + /// \param[in] prependAppDirToOutputSubdir True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. + void GenerateHashes(FileList &localFiles, const char *outputSubdir, bool prependAppDirToOutputSubdir); + + /// \brief Clear all allowed uploads previously set with AddUploadsFromSubdirectory + void ClearUploads(void); + + /// \brief Returns how many files are available for upload + /// \return How many files are available for upload + unsigned GetNumberOfFilesForUpload(void) const; + + /// \brief Normally, if a remote system requests files, those files are all loaded into memory and sent immediately. + /// \details This function allows the files to be read in incremental chunks, saving memory + /// \param[in] _incrementalReadInterface If a file in \a fileList has no data, filePullInterface will be used to read the file in chunks of size \a chunkSize + /// \param[in] _chunkSize How large of a block of a file to send at once + void SetDownloadRequestIncrementalReadInterface(IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); +protected: + void OnDownloadRequest(Packet *packet); + + char applicationDirectory[512]; + FileListTransfer *fileListTransfer; + FileList *availableUploads; + PacketPriority priority; + char orderingChannel; + IncrementalReadInterface *incrementalReadInterface; + unsigned int chunkSize; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/DynDNS.cpp b/src/raknet/DynDNS.cpp new file mode 100755 index 0000000..3e189ee --- /dev/null +++ b/src/raknet/DynDNS.cpp @@ -0,0 +1,236 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DynDNS==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "TCPInterface.h" +#include "SocketLayer.h" +#include "DynDNS.h" +#include "GetTime.h" + +using namespace RakNet; + +struct DynDnsResult +{ + const char *description; + const char *code; + DynDnsResultCode resultCode; +}; + +DynDnsResult resultTable[13] = +{ + // See http://www.dyndns.com/developers/specs/flow.pdf + {"DNS update success.\nPlease wait up to 60 seconds for the change to take effect.\n", "good", RC_SUCCESS}, // Even with success, it takes time for the cache to update! + {"No change", "nochg", RC_NO_CHANGE}, + {"Host has been blocked. You will need to contact DynDNS to reenable.", "abuse", RC_ABUSE}, + {"Useragent is blocked", "badagent", RC_BAD_AGENT}, + {"Username/password pair bad", "badauth", RC_BAD_AUTH}, + {"Bad system parameter", "badsys", RC_BAD_SYS}, + {"DNS inconsistency", "dnserr", RC_DNS_ERROR}, + {"Paid account feature", "!donator", RC_NOT_DONATOR}, + {"No such host in system", "nohost", RC_NO_HOST}, + {"Invalid hostname format", "notfqdn", RC_NOT_FQDN}, + {"Serious error", "numhost", RC_NUM_HOST}, + {"This host exists, but does not belong to you", "!yours", RC_NOT_YOURS}, + {"911", "911", RC_911}, +}; +DynDNS::DynDNS() +{ + connectPhase=CP_IDLE; + tcp=0; +} +DynDNS::~DynDNS() +{ + if (tcp) + RakNet::OP_DELETE(tcp, _FILE_AND_LINE_); +} +void DynDNS::Stop(void) +{ + tcp->Stop(); + connectPhase = CP_IDLE; + RakNet::OP_DELETE(tcp, _FILE_AND_LINE_); + tcp=0; +} + + +// newIPAddress is optional - if left out, DynDNS will use whatever it receives +void DynDNS::UpdateHostIP(const char *dnsHost, const char *newIPAddress, const char *usernameAndPassword ) +{ + myIPStr[0]=0; + + if (tcp==0) + tcp = RakNet::OP_NEW(_FILE_AND_LINE_); + connectPhase = CP_IDLE; + host = dnsHost; + + if (tcp->Start(0, 1)==false) + { + SetCompleted(RC_TCP_FAILED_TO_START, "TCP failed to start"); + return; + } + + connectPhase = CP_CONNECTING_TO_CHECKIP; + tcp->Connect("checkip.dyndns.org", 80, false); + + // See https://www.dyndns.com/developers/specs/syntax.html + getString="GET /nic/update?hostname="; + getString+=dnsHost; + if (newIPAddress) + { + getString+="&myip="; + getString+=newIPAddress; + } + getString+="&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG HTTP/1.0\n"; + getString+="Host: members.dyndns.org\n"; + getString+="Authorization: Basic "; + char outputData[512]; + TCPInterface::Base64Encoding(usernameAndPassword, (int) strlen(usernameAndPassword), outputData); + getString+=outputData; + getString+="User-Agent: Jenkins Software LLC - PC - 1.0\n\n"; +} +void DynDNS::Update(void) +{ + if (connectPhase==CP_IDLE) + return; + + serverAddress=tcp->HasFailedConnectionAttempt(); + if (serverAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + SetCompleted(RC_TCP_DID_NOT_CONNECT, "Could not connect to DynDNS"); + return; + } + + serverAddress=tcp->HasCompletedConnectionAttempt(); + if (serverAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + if (connectPhase == CP_CONNECTING_TO_CHECKIP) + { + checkIpAddress=serverAddress; + connectPhase = CP_WAITING_FOR_CHECKIP_RESPONSE; + tcp->Send("GET\n\n", (unsigned int) strlen("GET\n\n"), serverAddress, false); // Needs 2 newlines! This is not documented and wasted a lot of my time + } + else + { + connectPhase = CP_WAITING_FOR_DYNDNS_RESPONSE; + tcp->Send(getString.C_String(), (unsigned int) getString.GetLength(), serverAddress, false); + } + phaseTimeout=RakNet::GetTime()+1000; + } + + if (connectPhase==CP_WAITING_FOR_CHECKIP_RESPONSE && RakNet::GetTime()>phaseTimeout) + { + connectPhase = CP_CONNECTING_TO_DYNDNS; + tcp->CloseConnection(checkIpAddress); + tcp->Connect("members.dyndns.org", 80, false); + } + else if (connectPhase==CP_WAITING_FOR_DYNDNS_RESPONSE && RakNet::GetTime()>phaseTimeout) + { + SetCompleted(RC_DYNDNS_TIMEOUT, "DynDNS did not respond"); + return; + } + + Packet *packet = tcp->Receive(); + if (packet) + { + if (connectPhase==CP_WAITING_FOR_DYNDNS_RESPONSE) + { + unsigned int i; + + char *result; + result=strstr((char*) packet->data, "Connection: close"); + if (result!=0) + { + result+=strlen("Connection: close"); + while (*result && (*result=='\r') || (*result=='\n') || (*result==' ') ) + result++; + for (i=0; i < 13; i++) + { + if (strncmp(resultTable[i].code, result, strlen(resultTable[i].code))==0) + { + if (resultTable[i].resultCode==RC_SUCCESS) + { + // Read my external IP into myIPStr + // Advance until we hit a number + while (*result && ((*result<'0') || (*result>'9')) ) + result++; + if (*result) + { + SystemAddress parser; + parser.FromString(result); + parser.ToString(false, myIPStr); + } + } + tcp->DeallocatePacket(packet); + SetCompleted(resultTable[i].resultCode, resultTable[i].description); + break; + } + } + if (i==13) + { + tcp->DeallocatePacket(packet); + SetCompleted(RC_UNKNOWN_RESULT, "DynDNS returned unknown result"); + } + } + else + { + tcp->DeallocatePacket(packet); + SetCompleted(RC_PARSING_FAILURE, "Parsing failure on returned string from DynDNS"); + } + + return; + } + else + { + /* + HTTP/1.1 200 OK + Content-Type: text/html + Server: DynDNS-CheckIP/1.0 + Connection: close + Cache-Control: no-cache + Pragma: no-cache + Content-Length: 105 + + Current IP CheckCurrent IP Address: 98.1 + 89.219.22 + + + Connection to host lost. + */ + + char *result; + result=strstr((char*) packet->data, "Current IP Address: "); + if (result!=0) + { + result+=strlen("Current IP Address: "); + SystemAddress myIp; + myIp.FromString(result); + myIp.ToString(false, myIPStr); + + // Resolve DNS we are setting. If equal to current then abort + const char *existingHost = ( char* ) SocketLayer::DomainNameToIP( host.C_String() ); + if (existingHost && strcmp(existingHost, myIPStr)==0) + { + // DynDNS considers setting the IP to what it is already set abuse + tcp->DeallocatePacket(packet); + SetCompleted(RC_DNS_ALREADY_SET, "No action needed"); + return; + } + } + + tcp->DeallocatePacket(packet); + tcp->CloseConnection(packet->systemAddress); + + connectPhase = CP_CONNECTING_TO_DYNDNS; + tcp->Connect("members.dyndns.org", 80, false); + } + } + + if (tcp->HasLostConnection()!=UNASSIGNED_SYSTEM_ADDRESS) + { + if (connectPhase==CP_WAITING_FOR_DYNDNS_RESPONSE) + { + SetCompleted(RC_CONNECTION_LOST_WITHOUT_RESPONSE, "Connection lost to DynDNS during GET operation"); + } + } +} + + +#endif // _RAKNET_SUPPORT_DynDNS diff --git a/src/raknet/DynDNS.h b/src/raknet/DynDNS.h new file mode 100755 index 0000000..ed30bdd --- /dev/null +++ b/src/raknet/DynDNS.h @@ -0,0 +1,100 @@ +/// \file DynDNS.h +/// \brief Helper to class to update DynDNS +/// This can be used to determine what permissions are should be allowed to the other system +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_DynDNS==1 && _RAKNET_SUPPORT_TCPInterface==1 + +class TCPInterface; + +#ifndef __DYN_DNS_H +#define __DYN_DNS_H + +namespace RakNet +{ + +enum DynDnsResultCode +{ + // ----- Success ----- + RC_SUCCESS, + RC_DNS_ALREADY_SET, // RakNet detects no action is needed + + // ----- Ignorable failure (treat same as success) ----- + RC_NO_CHANGE, // DynDNS detects no action is needed (treated as abuse though) + + // ----- User error ----- + RC_NOT_DONATOR, // You have to pay to do this + RC_NO_HOST, // This host does not exist at all + RC_BAD_AUTH, // You set the wrong password + RC_NOT_YOURS, // This is not your host + + // ----- Permanent failure ----- + RC_ABUSE, // Your host has been blocked, too many failures disable your account + RC_TCP_FAILED_TO_START, // TCP port already in use + RC_TCP_DID_NOT_CONNECT, // DynDNS down? + RC_UNKNOWN_RESULT, // DynDNS returned a result code that was not documented as of 12/4/2010 on http://www.dyndns.com/developers/specs/flow.pdf + RC_PARSING_FAILURE, // Can't read the result returned, format change? + RC_CONNECTION_LOST_WITHOUT_RESPONSE, // Lost the connection to DynDNS while communicating + RC_BAD_AGENT, // ??? + RC_BAD_SYS, // ??? + RC_DNS_ERROR, // ??? + RC_NOT_FQDN, // ??? + RC_NUM_HOST, // ??? + RC_911, // ??? + RC_DYNDNS_TIMEOUT, // DynDNS did not respond +}; + +// Can only process one at a time with the current implementation +class RAK_DLL_EXPORT DynDNS +{ +public: + DynDNS(); + ~DynDNS(); + + // Pass 0 for newIPAddress to autodetect whatever you are uploading from + // usernameAndPassword should be in the format username:password + void UpdateHostIP(const char *dnsHost, const char *newIPAddress, const char *usernameAndPassword ); + void Update(void); + + // Output + bool IsRunning(void) const {return connectPhase!=CP_IDLE;} + bool IsCompleted(void) const {return connectPhase==CP_IDLE;} + RakNet::DynDnsResultCode GetCompletedResultCode(void) {return result;} + const char *GetCompletedDescription(void) const {return resultDescription;} + bool WasResultSuccessful(void) const {return result==RC_SUCCESS || result==RC_DNS_ALREADY_SET || result==RC_NO_CHANGE;} + char *GetMyPublicIP(void) const {return (char*) myIPStr;} // We get our public IP as part of the process. This is valid once completed + +protected: + void Stop(void); + void SetCompleted(RakNet::DynDnsResultCode _result, const char *_resultDescription) {Stop(); result=_result; resultDescription=_resultDescription;} + + enum ConnectPhase + { + CP_CONNECTING_TO_CHECKIP, + CP_WAITING_FOR_CHECKIP_RESPONSE, + CP_CONNECTING_TO_DYNDNS, + CP_WAITING_FOR_DYNDNS_RESPONSE, + CP_IDLE, + }; + + TCPInterface *tcp; + RakNet::RakString getString; + SystemAddress serverAddress; + ConnectPhase connectPhase; + RakNet::RakString host; + RakNet::Time phaseTimeout; + SystemAddress checkIpAddress; + const char *resultDescription; + RakNet::DynDnsResultCode result; + char myIPStr[32]; +}; + +} // namespace RakNet + +#endif // __DYN_DNS_H + +#endif // _RAKNET_SUPPORT_DynDNS diff --git a/src/raknet/EmailSender.cpp b/src/raknet/EmailSender.cpp new file mode 100755 index 0000000..4b38481 --- /dev/null +++ b/src/raknet/EmailSender.cpp @@ -0,0 +1,362 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_EmailSender==1 && _RAKNET_SUPPORT_TCPInterface==1 && _RAKNET_SUPPORT_FileOperations==1 + +// Useful sites +// http://www.faqs.org\rfcs\rfc2821.html +// http://www2.rad.com\networks/1995/mime/examples.htm + +#include "EmailSender.h" +#include "TCPInterface.h" +#include "GetTime.h" +#include "Rand.h" +#include "FileList.h" +#include "BitStream.h" +#include + + + + + +#include "RakSleep.h" + +using namespace RakNet; + + +STATIC_FACTORY_DEFINITIONS(EmailSender,EmailSender); + +const char *EmailSender::Send(const char *hostAddress, unsigned short hostPort, const char *sender, const char *recipient, const char *senderName, const char *recipientName, const char *subject, const char *body, FileList *attachedFiles, bool doPrintf, const char *password) +{ + RakNet::Packet *packet; + char query[1024]; + TCPInterface tcpInterface; + SystemAddress emailServer; + if (tcpInterface.Start(0, 0)==false) + return "Unknown error starting TCP"; + emailServer=tcpInterface.Connect(hostAddress, hostPort,true); + if (emailServer==UNASSIGNED_SYSTEM_ADDRESS) + return "Failed to connect to host"; +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcpInterface.StartSSLClient(emailServer); +#endif + RakNet::TimeMS timeoutTime = RakNet::GetTimeMS()+3000; + packet=0; + while (RakNet::GetTimeMS() < timeoutTime) + { + packet = tcpInterface.Receive(); + if (packet) + { + if (doPrintf) + RAKNET_DEBUG_PRINTF("%s", packet->data); + break; + } + RakSleep(250); + } + + if (packet==0) + return "Timeout while waiting for initial data from server."; + + tcpInterface.Send("EHLO\r\n", 6, emailServer,false); + const char *response; + bool authenticate=false; +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif + while (1) + { + response=GetResponse(&tcpInterface, emailServer, doPrintf); + + if (response!=0 && strcmp(response, "AUTHENTICATE")==0) + { + authenticate=true; + break; + } + + // Something other than continue? + if (response!=0 && strcmp(response, "CONTINUE")!=0) + return response; + + // Success? + if (response==0) + break; + } + + if (authenticate) + { + sprintf(query, "EHLO %s\r\n", sender); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + if (password==0) + return "Password needed"; + char *outputData = RakNet::OP_NEW_ARRAY((const int) (strlen(sender)+strlen(password)+2)*3, _FILE_AND_LINE_ ); + RakNet::BitStream bs; + char zero=0; + bs.Write(&zero,1); + bs.Write(sender,(const unsigned int)strlen(sender)); + //bs.Write("jms1@jms1.net",(const unsigned int)strlen("jms1@jms1.net")); + bs.Write(&zero,1); + bs.Write(password,(const unsigned int)strlen(password)); + bs.Write(&zero,1); + //bs.Write("not.my.real.password",(const unsigned int)strlen("not.my.real.password")); + TCPInterface::Base64Encoding((const char*)bs.GetData(), bs.GetNumberOfBytesUsed(), outputData); + sprintf(query, "AUTH PLAIN %s", outputData); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + } + + + if (sender) + sprintf(query, "MAIL From: <%s>\r\n", sender); + else + sprintf(query, "MAIL From: <>\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + if (recipient) + sprintf(query, "RCPT TO: <%s>\r\n", recipient); + else + sprintf(query, "RCPT TO: <>\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + tcpInterface.Send("DATA\r\n", (unsigned int)strlen("DATA\r\n"), emailServer,false); + + // Wait for 354... + + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + if (subject) + { + sprintf(query, "Subject: %s\r\n", subject); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + if (senderName) + { + sprintf(query, "From: %s\r\n", senderName); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + if (recipientName) + { + sprintf(query, "To: %s\r\n", recipientName); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + + const int boundarySize=60; + char boundary[boundarySize+1]; + int i,j; + if (attachedFiles && attachedFiles->fileList.Size()) + { + rakNetRandom.SeedMT((unsigned int) RakNet::GetTimeMS()); + // Random multipart message boundary + for (i=0; i < boundarySize; i++) + boundary[i]=TCPInterface::Base64Map()[rakNetRandom.RandomMT()%64]; + boundary[boundarySize]=0; + } + + sprintf(query, "MIME-version: 1.0\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + if (attachedFiles && attachedFiles->fileList.Size()) + { + sprintf(query, "Content-type: multipart/mixed; BOUNDARY=\"%s\"\r\n\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + sprintf(query, "This is a multi-part message in MIME format.\r\n\r\n--%s\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + + sprintf(query, "Content-Type: text/plain; charset=\"US-ASCII\"\r\n\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + // Write the body of the email, doing some lame shitty shit where I have to make periods at the start of a newline have a second period. + char *newBody; + int bodyLength; + bodyLength=(int)strlen(body); + newBody = (char*) rakMalloc_Ex( bodyLength*3, _FILE_AND_LINE_ ); + if (bodyLength>0) + newBody[0]=body[0]; + for (i=1, j=1; i < bodyLength; i++) + { + // Transform \n . \r \n into \n . . \r \n + if (i < bodyLength-2 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='\r' && + body[i+2]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=2; + } + // Transform \n . . \r \n into \n . . . \r \n + // Having to process .. is a bug in the mail server - the spec says ONLY \r\n.\r\n should be transformed + else if (i <= bodyLength-3 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='.' && + body[i+2]=='\r' && + body[i+3]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=3; + } + // Transform \n . \n into \n . . \r \n (this is a bug in the mail server - the spec says do not count \n alone but it does) + else if (i < bodyLength-1 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=1; + } + // Transform \n . . \n into \n . . . \r \n (this is a bug in the mail server - the spec says do not count \n alone but it does) + // In fact having to process .. is a bug too - because the spec says ONLY \r\n.\r\n should be transformed + else if (i <= bodyLength-2 && + body[i-1]=='\n' && + body[i+0]=='.' && + body[i+1]=='.' && + body[i+2]=='\n') + { + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='.'; + newBody[j++]='\r'; + newBody[j++]='\n'; + i+=2; + } + else + newBody[j++]=body[i]; + } + + newBody[j++]='\r'; + newBody[j++]='\n'; + tcpInterface.Send(newBody, j, emailServer,false); + + rakFree_Ex(newBody, _FILE_AND_LINE_ ); + int outputOffset; + + // What a pain in the rear. I have to map the binary to printable characters using 6 bits per character. + if (attachedFiles && attachedFiles->fileList.Size()) + { + for (i=0; i < (int) attachedFiles->fileList.Size(); i++) + { + // Write boundary + sprintf(query, "\r\n--%s\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + sprintf(query, "Content-Type: APPLICATION/Octet-Stream; SizeOnDisk=%i; name=\"%s\"\r\nContent-Transfer-Encoding: BASE64\r\nContent-Description: %s\r\n\r\n", attachedFiles->fileList[i].dataLengthBytes, attachedFiles->fileList[i].filename.C_String(), attachedFiles->fileList[i].filename.C_String()); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + + newBody = (char*) rakMalloc_Ex( (size_t) (attachedFiles->fileList[i].dataLengthBytes*3)/2, _FILE_AND_LINE_ ); + + outputOffset=TCPInterface::Base64Encoding(attachedFiles->fileList[i].data, (int) attachedFiles->fileList[i].dataLengthBytes, newBody); + + // Send the base64 mapped file. + tcpInterface.Send(newBody, outputOffset, emailServer,false); + rakFree_Ex(newBody, _FILE_AND_LINE_ ); + + } + + // Write last boundary + sprintf(query, "\r\n--%s--\r\n", boundary); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + } + + + sprintf(query, "\r\n.\r\n"); + tcpInterface.Send(query, (unsigned int)strlen(query), emailServer,false); + response=GetResponse(&tcpInterface, emailServer, doPrintf); + if (response!=0) + return response; + + tcpInterface.Send("QUIT\r\n", (unsigned int)strlen("QUIT\r\n"), emailServer,false); + + RakSleep(30); + if (doPrintf) + { + packet = tcpInterface.Receive(); + while (packet) + { + RAKNET_DEBUG_PRINTF("%s", packet->data); + packet = tcpInterface.Receive(); + } + } + tcpInterface.Stop(); + return 0; // Success +} + +const char *EmailSender::GetResponse(TCPInterface *tcpInterface, const SystemAddress &emailServer, bool doPrintf) +{ + RakNet::Packet *packet; + RakNet::TimeMS timeout; + timeout=RakNet::GetTimeMS()+5000; +#ifdef _MSC_VER + #pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while (1) + { + if (tcpInterface->HasLostConnection()==emailServer) + return "Connection to server lost."; + packet = tcpInterface->Receive(); + if (packet) + { + if (doPrintf) + { + RAKNET_DEBUG_PRINTF("%s", packet->data); + } +#if OPEN_SSL_CLIENT_SUPPORT==1 + if (strstr((const char*)packet->data, "220")) + { + tcpInterface->StartSSLClient(packet->systemAddress); + return "AUTHENTICATE"; // OK + } +// if (strstr((const char*)packet->data, "250-AUTH LOGIN PLAIN")) +// { +// tcpInterface->StartSSLClient(packet->systemAddress); +// return "AUTHENTICATE"; // OK +// } +#endif + if (strstr((const char*)packet->data, "235")) + return 0; // Authentication accepted + if (strstr((const char*)packet->data, "354")) + return 0; // Go ahead +#if OPEN_SSL_CLIENT_SUPPORT==1 + if (strstr((const char*)packet->data, "250-STARTTLS")) + { + tcpInterface->Send("STARTTLS\r\n", (unsigned int) strlen("STARTTLS\r\n"), packet->systemAddress, false); + return "CONTINUE"; + } +#endif + if (strstr((const char*)packet->data, "250")) + return 0; // OK + if (strstr((const char*)packet->data, "550")) + return "Failed on error code 550"; + if (strstr((const char*)packet->data, "553")) + return "Failed on error code 553"; + } + if (RakNet::GetTimeMS() > timeout) + return "Timed out"; + RakSleep(100); + } +} + + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/EmailSender.h b/src/raknet/EmailSender.h new file mode 100755 index 0000000..b2a75b4 --- /dev/null +++ b/src/raknet/EmailSender.h @@ -0,0 +1,58 @@ +/// \file EmailSender.h +/// \brief Rudimentary class to send email from code. Don't expect anything fancy. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_EmailSender==1 && _RAKNET_SUPPORT_TCPInterface==1 && _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __EMAIL_SENDER_H +#define __EMAIL_SENDER_H + +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "Export.h" +#include "Rand.h" +#include "TCPInterface.h" + +namespace RakNet +{ +/// Forward declarations +class FileList; +class TCPInterface; + +/// \brief Rudimentary class to send email from code. +class RAK_DLL_EXPORT EmailSender +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(EmailSender) + + /// \brief Sends an email. + /// \param[in] hostAddress The address of the email server. + /// \param[in] hostPort The port of the email server (usually 25) + /// \param[in] sender The email address you are sending from. + /// \param[in] recipient The email address you are sending to. + /// \param[in] senderName The email address you claim to be sending from + /// \param[in] recipientName The email address you claim to be sending to + /// \param[in] subject Email subject + /// \param[in] body Email body + /// \param[in] attachedFiles List of files to attach to the email. (Can be 0 to send none). + /// \param[in] doPrintf true to output SMTP info to console(for debugging?) + /// \param[in] password Used if the server uses AUTHENTICATE PLAIN over TLS (such as gmail) + /// \return 0 on success, otherwise a string indicating the error message + const char *Send(const char *hostAddress, unsigned short hostPort, const char *sender, const char *recipient, const char *senderName, const char *recipientName, const char *subject, const char *body, FileList *attachedFiles, bool doPrintf, const char *password); + +protected: + const char *GetResponse(TCPInterface *tcpInterface, const SystemAddress &emailServer, bool doPrintf); + RakNetRandom rakNetRandom; +}; + +} // namespace RakNet + +#endif + + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/EncodeClassName.cpp b/src/raknet/EncodeClassName.cpp new file mode 100755 index 0000000..d3f5a12 --- /dev/null +++ b/src/raknet/EncodeClassName.cpp @@ -0,0 +1 @@ + diff --git a/src/raknet/EpochTimeToString.cpp b/src/raknet/EpochTimeToString.cpp new file mode 100755 index 0000000..b3410ca --- /dev/null +++ b/src/raknet/EpochTimeToString.cpp @@ -0,0 +1,35 @@ +#include "FormatString.h" +#include "EpochTimeToString.h" +#include +#include +#include +// localtime +#include +#include "LinuxStrings.h" + +char * EpochTimeToString(long long time) +{ + static int textIndex=0; + static char text[4][64]; + + if (++textIndex==4) + textIndex=0; + + struct tm * timeinfo; + time_t t = time; + timeinfo = localtime ( &t ); + strftime (text[textIndex],64,"%c.",timeinfo); + + /* + time_t + // Copied from the docs + struct tm *newtime; + newtime = _localtime64(& time); + asctime_s( text[textIndex], sizeof(text[textIndex]), newtime ); + + while (text[textIndex][0] && (text[textIndex][strlen(text[textIndex])-1]=='\n' || text[textIndex][strlen(text[textIndex])-1]=='\r')) + text[textIndex][strlen(text[textIndex])-1]=0; + */ + + return text[textIndex]; +} diff --git a/src/raknet/EpochTimeToString.h b/src/raknet/EpochTimeToString.h new file mode 100755 index 0000000..8644dc4 --- /dev/null +++ b/src/raknet/EpochTimeToString.h @@ -0,0 +1,15 @@ +/// \file EpochTimeToString.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __EPOCH_TIME_TO_STRING_H +#define __EPOCH_TIME_TO_STRING_H + +#include "Export.h" + +RAK_DLL_EXPORT char * EpochTimeToString(long long time); + +#endif + diff --git a/src/raknet/Export.h b/src/raknet/Export.h new file mode 100755 index 0000000..5c90a19 --- /dev/null +++ b/src/raknet/Export.h @@ -0,0 +1,13 @@ +#include "RakNetDefines.h" + +#if defined(_WIN32) && !(defined(__GNUC__) || defined(__GCCXML__)) && !defined(_RAKNET_LIB) && defined(_RAKNET_DLL) +#define RAK_DLL_EXPORT __declspec(dllexport) +#else +#define RAK_DLL_EXPORT +#endif + +#define STATIC_FACTORY_DECLARATIONS(x) static x* GetInstance(void); \ +static void DestroyInstance( x *i); + +#define STATIC_FACTORY_DEFINITIONS(x,y) x* x::GetInstance(void) {return RakNet::OP_NEW( _FILE_AND_LINE_ );} \ +void x::DestroyInstance( x *i) {RakNet::OP_DELETE(( y* ) i, _FILE_AND_LINE_);} diff --git a/src/raknet/FileList.cpp b/src/raknet/FileList.cpp new file mode 100755 index 0000000..f4345c2 --- /dev/null +++ b/src/raknet/FileList.cpp @@ -0,0 +1,794 @@ +#include "FileList.h" + +#if _RAKNET_SUPPORT_FileOperations==1 + +#include // RAKNET_DEBUG_PRINTF +#include "RakAssert.h" +#if defined(ANDROID) +#include +#elif defined(_WIN32) || defined(__CYGWIN__) +#include + + +#elif !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) && !defined ( __PPC__ ) && !defined ( __FreeBSD__ ) && !defined ( __S3E__ ) +#include +#endif + + +#ifdef _WIN32 +// For mkdir +#include + + +#else +#include +#endif + +//#include "SHA1.h" +#include "DS_Queue.h" +#include "StringCompressor.h" +#include "BitStream.h" +#include "FileOperations.h" +#include "SuperFastHash.h" +#include "RakAssert.h" +#include "LinuxStrings.h" + +#define MAX_FILENAME_LENGTH 512 +static const unsigned HASH_LENGTH=4; + +using namespace RakNet; + +// alloca + +#if defined(_WIN32) +#include + + +#else +#if !defined ( __FreeBSD__ ) +#include +#endif +#include +#include +#include +#include "_FindFirst.h" +#include //defines intptr_t +#endif + +#include "RakAlloca.h" + +//int RAK_DLL_EXPORT FileListNodeComp( char * const &key, const FileListNode &data ) +//{ +// return strcmp(key, data.filename); +//} + + +STATIC_FACTORY_DEFINITIONS(FileListProgress,FileListProgress) +STATIC_FACTORY_DEFINITIONS(FLP_Printf,FLP_Printf) +STATIC_FACTORY_DEFINITIONS(FileList,FileList) + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// First callback called when FileList::AddFilesFromDirectory() starts +void FLP_Printf::OnAddFilesFromDirectoryStarted(FileList *fileList, char *dir) { + (void) fileList; + RAKNET_DEBUG_PRINTF("Adding files from directory %s\n",dir);} + +/// Called for each directory, when that directory begins processing +void FLP_Printf::OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining) { + (void) fileList; + RAKNET_DEBUG_PRINTF("Adding %s. %i remaining.\n", dir, directoriesRemaining);} +void FLP_Printf::OnFilePushesComplete( SystemAddress systemAddress, unsigned short setID ) +{ + (void) setID; + + char str[32]; + systemAddress.ToString(true, (char*) str); + RAKNET_DEBUG_PRINTF("File pushes complete to %s\n", str); +} +void FLP_Printf::OnSendAborted( SystemAddress systemAddress ) +{ + char str[32]; + systemAddress.ToString(true, (char*) str); + RAKNET_DEBUG_PRINTF("Send aborted to %s\n", str); +} +FileList::FileList() +{ +} +FileList::~FileList() +{ + Clear(); +} +void FileList::AddFile(const char *filepath, const char *filename, FileListNodeContext context) +{ + if (filepath==0 || filename==0) + return; + + char *data; + //std::fstream file; + //file.open(filename, std::ios::in | std::ios::binary); + + FILE *fp = fopen(filepath, "rb"); + if (fp==0) + return; + fseek(fp, 0, SEEK_END); + int length = ftell(fp); + fseek(fp, 0, SEEK_SET); + + if (length > (int) ((unsigned int)-1 / 8)) + { + // If this assert hits, split up your file. You could also change BitSize_t in RakNetTypes.h to unsigned long long but this is not recommended for performance reasons + RakAssert("Cannot add files over 536 MB" && 0); + fclose(fp); + return; + } + + + + bool usedAlloca=false; + if (length < MAX_ALLOCA_STACK_ALLOCATION) + { + data = ( char* ) alloca( length ); + usedAlloca=true; + } + else + + { + data = (char*) rakMalloc_Ex( length, _FILE_AND_LINE_ ); + } + + fread(data, 1, length, fp); + AddFile(filename, filepath, data, length, length, context); + fclose(fp); + + + if (usedAlloca==false) + + rakFree_Ex(data, _FILE_AND_LINE_ ); + +} +void FileList::AddFile(const char *filename, const char *fullPathToFile, const char *data, const unsigned dataLength, const unsigned fileLength, FileListNodeContext context, bool isAReference, bool takeDataPointer) +{ + if (filename==0) + return; + if (strlen(filename)>MAX_FILENAME_LENGTH) + { + // Should be enough for anyone + RakAssert(0); + return; + } + // If adding a reference, do not send data + RakAssert(isAReference==false || data==0); + // Avoid duplicate insertions unless the data is different, in which case overwrite the old data + unsigned i; + for (i=0; i dirList; + char root[260]; + char fullPath[520]; + _finddata_t fileInfo; + intptr_t dir; + FILE *fp; + char *dirSoFar, *fileData; + dirSoFar=(char*) rakMalloc_Ex( 520, _FILE_AND_LINE_ ); + + if (applicationDirectory) + strcpy(root, applicationDirectory); + else + root[0]=0; + + int rootLen=(int)strlen(root); + if (rootLen) + { + strcpy(dirSoFar, root); + if (FixEndingSlash(dirSoFar)) + rootLen++; + } + else + dirSoFar[0]=0; + + if (subDirectory) + { + strcat(dirSoFar, subDirectory); + FixEndingSlash(dirSoFar); + } + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnAddFilesFromDirectoryStarted(this, dirSoFar); + // RAKNET_DEBUG_PRINTF("Adding files from directory %s\n",dirSoFar); + dirList.Push(dirSoFar, _FILE_AND_LINE_ ); + while (dirList.Size()) + { + dirSoFar=dirList.Pop(); + strcpy(fullPath, dirSoFar); + // Changed from *.* to * for Linux compatibility + strcat(fullPath, "*"); + + + dir=_findfirst(fullPath, &fileInfo ); + if (dir==-1) + { + _findclose(dir); + rakFree_Ex(dirSoFar, _FILE_AND_LINE_ ); + unsigned i; + for (i=0; i < dirList.Size(); i++) + rakFree_Ex(dirList[i], _FILE_AND_LINE_ ); + return; + } + +// RAKNET_DEBUG_PRINTF("Adding %s. %i remaining.\n", fullPath, dirList.Size()); + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnDirectory(this, fullPath, dirList.Size()); + + do + { + // no guarantee these entries are first... + if (strcmp("." , fileInfo.name) == 0 || + strcmp("..", fileInfo.name) == 0) + { + continue; + } + + if ((fileInfo.attrib & (_A_HIDDEN | _A_SUBDIR | _A_SYSTEM))==0) + { + strcpy(fullPath, dirSoFar); + strcat(fullPath, fileInfo.name); + fileData=0; + + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnFile(this, dirSoFar, fileInfo.name, fileInfo.size); + + if (writeData && writeHash) + { + fp = fopen(fullPath, "rb"); + if (fp) + { + fileData= (char*) rakMalloc_Ex( fileInfo.size+HASH_LENGTH, _FILE_AND_LINE_ ); + fread(fileData+HASH_LENGTH, fileInfo.size, 1, fp); + fclose(fp); + + unsigned int hash = SuperFastHash(fileData+HASH_LENGTH, fileInfo.size); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + memcpy(fileData, &hash, HASH_LENGTH); + + // sha1.Reset(); + // sha1.Update( ( unsigned char* ) fileData+HASH_LENGTH, fileInfo.size ); + // sha1.Final(); + // memcpy(fileData, sha1.GetHash(), HASH_LENGTH); + // File data and hash + AddFile((const char*)fullPath+rootLen, fullPath, fileData, fileInfo.size+HASH_LENGTH, fileInfo.size, context); + } + } + else if (writeHash) + { +// sha1.Reset(); +// sha1.HashFile((char*)fullPath); +// sha1.Final(); + + unsigned int hash = SuperFastHashFile(fullPath); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + + // Hash only + // AddFile((const char*)fullPath+rootLen, (const char*)sha1.GetHash(), HASH_LENGTH, fileInfo.size, context); + AddFile((const char*)fullPath+rootLen, fullPath, (const char*)&hash, HASH_LENGTH, fileInfo.size, context); + } + else if (writeData) + { + fileData= (char*) rakMalloc_Ex( fileInfo.size, _FILE_AND_LINE_ ); + fp = fopen(fullPath, "rb"); + fread(fileData, fileInfo.size, 1, fp); + fclose(fp); + + // File data only + AddFile(fullPath+rootLen, fullPath, fileData, fileInfo.size, fileInfo.size, context); + } + else + { + // Just the filename + AddFile(fullPath+rootLen, fullPath, 0, 0, fileInfo.size, context); + } + + if (fileData) + rakFree_Ex(fileData, _FILE_AND_LINE_ ); + } + else if ((fileInfo.attrib & _A_SUBDIR) && (fileInfo.attrib & (_A_HIDDEN | _A_SYSTEM))==0 && recursive) + { + char *newDir=(char*) rakMalloc_Ex( 520, _FILE_AND_LINE_ ); + strcpy(newDir, dirSoFar); + strcat(newDir, fileInfo.name); + strcat(newDir, "/"); + dirList.Push(newDir, _FILE_AND_LINE_ ); + } + + } while (_findnext(dir, &fileInfo ) != -1); + + _findclose(dir); + rakFree_Ex(dirSoFar, _FILE_AND_LINE_ ); + } + +} +void FileList::Clear(void) +{ + unsigned i; + for (i=0; iWriteCompressed(fileList.Size()); + unsigned i; + for (i=0; i < fileList.Size(); i++) + { + outBitStream->WriteCompressed(fileList[i].context.op); + outBitStream->WriteCompressed(fileList[i].context.fileId); + StringCompressor::Instance()->EncodeString(fileList[i].filename.C_String(), MAX_FILENAME_LENGTH, outBitStream); + + bool writeFileData = fileList[i].dataLengthBytes>0==true; + outBitStream->Write(writeFileData); + if (writeFileData) + { + outBitStream->WriteCompressed(fileList[i].dataLengthBytes); + outBitStream->Write(fileList[i].data, fileList[i].dataLengthBytes); + } + + outBitStream->Write((bool)(fileList[i].fileLengthBytes==fileList[i].dataLengthBytes)); + if (fileList[i].fileLengthBytes!=fileList[i].dataLengthBytes) + outBitStream->WriteCompressed(fileList[i].fileLengthBytes); + } +} +bool FileList::Deserialize(RakNet::BitStream *inBitStream) +{ + bool b, dataLenNonZero=false, fileLenMatchesDataLen=false; + char filename[512]; + unsigned int fileListSize; + FileListNode n; + b=inBitStream->ReadCompressed(fileListSize); +#ifdef _DEBUG + RakAssert(b); + RakAssert(fileListSize < 10000); +#endif + if (b==false || fileListSize > 10000) + return false; // Sanity check + Clear(); + unsigned i; + for (i=0; i < fileListSize; i++) + { + inBitStream->ReadCompressed(n.context.op); + inBitStream->ReadCompressed(n.context.fileId); + StringCompressor::Instance()->DecodeString((char*)filename, MAX_FILENAME_LENGTH, inBitStream); + inBitStream->Read(dataLenNonZero); + if (dataLenNonZero) + { + inBitStream->ReadCompressed(n.dataLengthBytes); + // sanity check + if (n.dataLengthBytes>2000000000) + { +#ifdef _DEBUG + RakAssert(n.dataLengthBytes<=2000000000); +#endif + return false; + } + n.data=(char*) rakMalloc_Ex( (size_t) n.dataLengthBytes, _FILE_AND_LINE_ ); + inBitStream->Read(n.data, n.dataLengthBytes); + } + else + { + n.dataLengthBytes=0; + n.data=0; + } + + b=inBitStream->Read(fileLenMatchesDataLen); + if (fileLenMatchesDataLen) + n.fileLengthBytes=(unsigned) n.dataLengthBytes; + else + b=inBitStream->ReadCompressed(n.fileLengthBytes); +#ifdef _DEBUG + RakAssert(b); +#endif + if (b==0) + { + Clear(); + return false; + } + n.filename=filename; + n.fullPathToFile=filename; + fileList.Insert(n, _FILE_AND_LINE_); + } + + return true; +} +void FileList::GetDeltaToCurrent(FileList *input, FileList *output, const char *dirSubset, const char *remoteSubdir) +{ + // For all files in this list that do not match the input list, write them to the output list. + // dirSubset allows checking only a portion of the files in this list. + unsigned thisIndex, inputIndex; + unsigned dirSubsetLen, localPathLen, remoteSubdirLen; + bool match; + if (dirSubset) + dirSubsetLen = (unsigned int) strlen(dirSubset); + else + dirSubsetLen = 0; + if (remoteSubdir && remoteSubdir[0]) + { + remoteSubdirLen=(unsigned int) strlen(remoteSubdir); + if (IsSlash(remoteSubdir[remoteSubdirLen-1])) + remoteSubdirLen--; + } + else + remoteSubdirLen=0; + + for (thisIndex=0; thisIndex < fileList.Size(); thisIndex++) + { + localPathLen = (unsigned int) fileList[thisIndex].filename.GetLength(); + while (localPathLen>0) + { + if (IsSlash(fileList[thisIndex].filename[localPathLen-1])) + { + localPathLen--; + break; + } + localPathLen--; + } + + // fileList[thisIndex].filename has to match dirSubset and be shorter or equal to it in length. + if (dirSubsetLen>0 && + (localPathLendirSubsetLen && IsSlash(fileList[thisIndex].filename[dirSubsetLen])==false))) + continue; + + match=false; + for (inputIndex=0; inputIndex < input->fileList.Size(); inputIndex++) + { + // If the filenames, hashes, and lengths match then skip this element in fileList. Otherwise write it to output + if (_stricmp(input->fileList[inputIndex].filename.C_String()+remoteSubdirLen,fileList[thisIndex].filename.C_String()+dirSubsetLen)==0) + { + match=true; + if (input->fileList[inputIndex].fileLengthBytes==fileList[thisIndex].fileLengthBytes && + input->fileList[inputIndex].dataLengthBytes==fileList[thisIndex].dataLengthBytes && + memcmp(input->fileList[inputIndex].data,fileList[thisIndex].data,(size_t) fileList[thisIndex].dataLengthBytes)==0) + { + // File exists on both machines and is the same. + break; + } + else + { + // File exists on both machines and is not the same. + output->AddFile(fileList[thisIndex].filename, fileList[thisIndex].fullPathToFile, 0,0, fileList[thisIndex].fileLengthBytes, FileListNodeContext(0,0), false); + break; + } + } + } + if (match==false) + { + // Other system does not have the file at all + output->AddFile(fileList[thisIndex].filename, fileList[thisIndex].fullPathToFile, 0,0, fileList[thisIndex].fileLengthBytes, FileListNodeContext(0,0), false); + } + } +} +void FileList::ListMissingOrChangedFiles(const char *applicationDirectory, FileList *missingOrChangedFiles, bool alwaysWriteHash, bool neverWriteHash) +{ + unsigned fileLength; +// CSHA1 sha1; + FILE *fp; + char fullPath[512]; + unsigned i; +// char *fileData; + + for (i=0; i < fileList.Size(); i++) + { + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath,fileList[i].filename); + fp=fopen(fullPath, "rb"); + if (fp==0) + { + missingOrChangedFiles->AddFile(fileList[i].filename, fileList[i].fullPathToFile, 0, 0, 0, FileListNodeContext(0,0), false); + } + else + { + fseek(fp, 0, SEEK_END); + fileLength = ftell(fp); + fseek(fp, 0, SEEK_SET); + + if (fileLength != fileList[i].fileLengthBytes && alwaysWriteHash==false) + { + missingOrChangedFiles->AddFile(fileList[i].filename, fileList[i].fullPathToFile, 0, 0, fileLength, FileListNodeContext(0,0), false); + } + else + { + +// fileData= (char*) rakMalloc_Ex( fileLength, _FILE_AND_LINE_ ); +// fread(fileData, fileLength, 1, fp); + +// sha1.Reset(); +// sha1.Update( ( unsigned char* ) fileData, fileLength ); +// sha1.Final(); + +// rakFree_Ex(fileData, _FILE_AND_LINE_ ); + + unsigned int hash = SuperFastHashFilePtr(fp); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + + //if (fileLength != fileList[i].fileLength || memcmp( sha1.GetHash(), fileList[i].data, HASH_LENGTH)!=0) + if (fileLength != fileList[i].fileLengthBytes || memcmp( &hash, fileList[i].data, HASH_LENGTH)!=0) + { + if (neverWriteHash==false) + // missingOrChangedFiles->AddFile((const char*)fileList[i].filename, (const char*)sha1.GetHash(), HASH_LENGTH, fileLength, 0); + missingOrChangedFiles->AddFile((const char*)fileList[i].filename, (const char*)fileList[i].fullPathToFile, (const char *) &hash, HASH_LENGTH, fileLength, FileListNodeContext(0,0), false); + else + missingOrChangedFiles->AddFile((const char*)fileList[i].filename, (const char*)fileList[i].fullPathToFile, 0, 0, fileLength, FileListNodeContext(0,0), false); + } + } + fclose(fp); + } + } +} +void FileList::PopulateDataFromDisk(const char *applicationDirectory, bool writeFileData, bool writeFileHash, bool removeUnknownFiles) +{ + FILE *fp; + char fullPath[512]; + unsigned i; +// CSHA1 sha1; + + i=0; + while (i < fileList.Size()) + { + rakFree_Ex(fileList[i].data, _FILE_AND_LINE_ ); + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath,fileList[i].filename.C_String()); + fp=fopen(fullPath, "rb"); + if (fp) + { + if (writeFileHash || writeFileData) + { + fseek(fp, 0, SEEK_END); + fileList[i].fileLengthBytes = ftell(fp); + fseek(fp, 0, SEEK_SET); + if (writeFileHash) + { + if (writeFileData) + { + // Hash + data so offset the data by HASH_LENGTH + fileList[i].data=(char*) rakMalloc_Ex( fileList[i].fileLengthBytes+HASH_LENGTH, _FILE_AND_LINE_ ); + fread(fileList[i].data+HASH_LENGTH, fileList[i].fileLengthBytes, 1, fp); +// sha1.Reset(); +// sha1.Update((unsigned char*)fileList[i].data+HASH_LENGTH, fileList[i].fileLength); +// sha1.Final(); + unsigned int hash = SuperFastHash(fileList[i].data+HASH_LENGTH, fileList[i].fileLengthBytes); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); +// memcpy(fileList[i].data, sha1.GetHash(), HASH_LENGTH); + memcpy(fileList[i].data, &hash, HASH_LENGTH); + } + else + { + // Hash only + fileList[i].dataLengthBytes=HASH_LENGTH; + if (fileList[i].fileLengthBytes < HASH_LENGTH) + fileList[i].data=(char*) rakMalloc_Ex( HASH_LENGTH, _FILE_AND_LINE_ ); + else + fileList[i].data=(char*) rakMalloc_Ex( fileList[i].fileLengthBytes, _FILE_AND_LINE_ ); + fread(fileList[i].data, fileList[i].fileLengthBytes, 1, fp); + // sha1.Reset(); + // sha1.Update((unsigned char*)fileList[i].data, fileList[i].fileLength); + // sha1.Final(); + unsigned int hash = SuperFastHash(fileList[i].data, fileList[i].fileLengthBytes); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &hash, sizeof(hash)); + // memcpy(fileList[i].data, sha1.GetHash(), HASH_LENGTH); + memcpy(fileList[i].data, &hash, HASH_LENGTH); + } + } + else + { + // Data only + fileList[i].dataLengthBytes=fileList[i].fileLengthBytes; + fileList[i].data=(char*) rakMalloc_Ex( fileList[i].fileLengthBytes, _FILE_AND_LINE_ ); + fread(fileList[i].data, fileList[i].fileLengthBytes, 1, fp); + } + + fclose(fp); + i++; + } + else + { + fileList[i].data=0; + fileList[i].dataLengthBytes=0; + } + } + else + { + if (removeUnknownFiles) + { + fileList.RemoveAtIndex(i); + } + else + i++; + } + } +} +void FileList::FlagFilesAsReferences(void) +{ + for (unsigned int i=0; i < fileList.Size(); i++) + { + fileList[i].isAReference=true; + fileList[i].dataLengthBytes=fileList[i].fileLengthBytes; + } +} +void FileList::WriteDataToDisk(const char *applicationDirectory) +{ + char fullPath[512]; + unsigned i,j; + + for (i=0; i < fileList.Size(); i++) + { + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath,fileList[i].filename.C_String()); + + // Security - Don't allow .. in the filename anywhere so you can't write outside of the root directory + for (j=1; j < fileList[i].filename.GetLength(); j++) + { + if (fileList[i].filename[j]=='.' && fileList[i].filename[j-1]=='.') + { +#ifdef _DEBUG + RakAssert(0); +#endif + // Just cancel the write entirely + return; + } + } + + WriteFileWithDirectories(fullPath, fileList[i].data, (unsigned int) fileList[i].dataLengthBytes); + } +} + +#ifdef _MSC_VER +#pragma warning( disable : 4966 ) // unlink declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. +#endif +void FileList::DeleteFiles(const char *applicationDirectory) +{ + + + + char fullPath[512]; + unsigned i,j; + + for (i=0; i < fileList.Size(); i++) + { + // The filename should not have .. in the path - if it does ignore it + for (j=1; j < fileList[i].filename.GetLength(); j++) + { + if (fileList[i].filename[j]=='.' && fileList[i].filename[j-1]=='.') + { +#ifdef _DEBUG + RakAssert(0); +#endif + // Just cancel the deletion entirely + return; + } + } + + strcpy(fullPath, applicationDirectory); + FixEndingSlash(fullPath); + strcat(fullPath, fileList[i].filename.C_String()); + +#ifdef _MSC_VER +#pragma warning( disable : 4966 ) // unlink declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. +#endif + int result = unlink(fullPath); + if (result!=0) + { + RAKNET_DEBUG_PRINTF("FileList::DeleteFiles: unlink (%s) failed.\n", fullPath); + } + } + +} + +void FileList::AddCallback(FileListProgress *cb) +{ + if (cb==0) + return; + + if ((unsigned int) fileListProgressCallbacks.GetIndexOf(cb)==(unsigned int)-1) + fileListProgressCallbacks.Push(cb, _FILE_AND_LINE_); +} +void FileList::RemoveCallback(FileListProgress *cb) +{ + unsigned int idx = fileListProgressCallbacks.GetIndexOf(cb); + if (idx!=(unsigned int) -1) + fileListProgressCallbacks.RemoveAtIndex(idx); +} +void FileList::ClearCallbacks(void) +{ + fileListProgressCallbacks.Clear(true, _FILE_AND_LINE_); +} +void FileList::GetCallbacks(DataStructures::List &callbacks) +{ + callbacks = fileListProgressCallbacks; +} + + +bool FileList::FixEndingSlash(char *str) +{ +#ifdef _WIN32 + if (str[strlen(str)-1]!='/' && str[strlen(str)-1]!='\\') + { + strcat(str, "\\"); // Only \ works with system commands, used by AutopatcherClient + return true; + } +#else + if (str[strlen(str)-1]!='\\' && str[strlen(str)-1]!='/') + { + strcat(str, "/"); // Only / works with Linux + return true; + } +#endif + + return false; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_FileOperations diff --git a/src/raknet/FileList.h b/src/raknet/FileList.h new file mode 100755 index 0000000..6469a1f --- /dev/null +++ b/src/raknet/FileList.h @@ -0,0 +1,258 @@ +/// \file FileList.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __FILE_LIST +#define __FILE_LIST + +#include "Export.h" +#include "DS_List.h" +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "FileListNodeContext.h" +#include "RakString.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + class BitStream; +} + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class FileList; + + +/// Represents once instance of a file +struct FileListNode +{ + /// Name of the file + RakNet::RakString filename; + + /// Full path to the file, which may be different than filename + RakNet::RakString fullPathToFile; + + /// File data (may be null if not ready) + char *data; + + /// Length of \a data. May be greater than fileLength if prepended with a file hash + BitSize_t dataLengthBytes; + + /// Length of the file + unsigned fileLengthBytes; + + /// User specific data for whatever, describing this file. + FileListNodeContext context; + + /// If true, data and dataLengthBytes should be empty. This is just storing the filename + bool isAReference; +}; + +/// Callback interface set with FileList::SetCallback() in case you want progress notifications when FileList::AddFilesFromDirectory() is called +class RAK_DLL_EXPORT FileListProgress +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FileListProgress) + + FileListProgress() {} + virtual ~FileListProgress() {} + + /// First callback called when FileList::AddFilesFromDirectory() starts + virtual void OnAddFilesFromDirectoryStarted(FileList *fileList, char *dir) { + (void) fileList; + (void) dir; + } + + /// Called for each directory, when that directory begins processing + virtual void OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining) { + (void) fileList; + (void) dir; + (void) directoriesRemaining; + } + + /// Called for each file, when that file begins processing + virtual void OnFile(FileList *fileList, char *dir, char *fileName, unsigned int fileSize) { + (void) fileList; + (void) dir; + (void) fileName; + (void) fileSize; + } + + /// \brief This function is called when we are sending a file to a remote system. + /// \param[in] fileName The name of the file being sent + /// \param[in] fileLengthBytes How long the file is + /// \param[in] offset The offset in bytes into the file that we are sending + /// \param[in] bytesBeingSent How many bytes we are sending this push + /// \param[in] done If this file is now done with this push + /// \param[in] targetSystem Who we are sending to + virtual void OnFilePush(const char *fileName, unsigned int fileLengthBytes, unsigned int offset, unsigned int bytesBeingSent, bool done, SystemAddress targetSystem, unsigned short setId) + { + (void) fileName; + (void) fileLengthBytes; + (void) offset; + (void) bytesBeingSent; + (void) done; + (void) targetSystem; + (void) setId; + } + + /// \brief This function is called when all files have been read and are being transferred to a remote system + virtual void OnFilePushesComplete( SystemAddress systemAddress, unsigned short setId ) + { + (void) systemAddress; + (void) setId; + } + + /// \brief This function is called when a send to a system was aborted (probably due to disconnection) + virtual void OnSendAborted( SystemAddress systemAddress ) + { + (void) systemAddress; + } +}; + +/// Implementation of FileListProgress to use RAKNET_DEBUG_PRINTF +class RAK_DLL_EXPORT FLP_Printf : public FileListProgress +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FLP_Printf) + + FLP_Printf() {} + virtual ~FLP_Printf() {} + + /// First callback called when FileList::AddFilesFromDirectory() starts + virtual void OnAddFilesFromDirectoryStarted(FileList *fileList, char *dir); + + /// Called for each directory, when that directory begins processing + virtual void OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining); + + /// \brief This function is called when all files have been transferred to a particular remote system + virtual void OnFilePushesComplete( SystemAddress systemAddress, unsigned short setID ); + + /// \brief This function is called when a send to a system was aborted (probably due to disconnection) + virtual void OnSendAborted( SystemAddress systemAddress ); +}; + +class RAK_DLL_EXPORT FileList +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FileList) + + FileList(); + ~FileList(); + /// \brief Add all the files at a given directory. + /// \param[in] applicationDirectory The first part of the path. This is not stored as part of the filename. Use \ as the path delineator. + /// \param[in] subDirectory The rest of the path to the file. This is stored as a prefix to the filename + /// \param[in] writeHash The first 4 bytes is a hash of the file, with the remainder the actual file data (should \a writeData be true) + /// \param[in] writeData Write the contents of each file + /// \param[in] recursive Whether or not to visit subdirectories + /// \param[in] context User defined byte to store with each file. Use for whatever you want. + void AddFilesFromDirectory(const char *applicationDirectory, const char *subDirectory, bool writeHash, bool writeData, bool recursive, FileListNodeContext context); + + /// Deallocate all memory + void Clear(void); + + /// Write all encoded data into a bitstream + void Serialize(RakNet::BitStream *outBitStream); + + /// Read all encoded data from a bitstream. Clear() is called before deserializing. + bool Deserialize(RakNet::BitStream *inBitStream); + + /// \brief Given the existing set of files, search applicationDirectory for the same files. + /// \details For each file that is missing or different, add that file to \a missingOrChangedFiles. Note: the file contents are not written, and only the hash if written if \a alwaysWriteHash is true + /// alwaysWriteHash and neverWriteHash are optimizations to avoid reading the file contents to generate the hash if not necessary because the file is missing or has different lengths anyway. + /// \param[in] applicationDirectory The first part of the path. This is not stored as part of the filename. Use \ as the path delineator. + /// \param[out] missingOrChangedFiles Output list written to + /// \param[in] alwaysWriteHash If true, and neverWriteHash is false, will hash the file content of the file on disk, and write that as the file data with a length of SHA1_LENGTH bytes. If false, if the file length is different, will only write the filename. + /// \param[in] neverWriteHash If true, will never write the hash, even if available. If false, will write the hash if the file lengths are the same and it was forced to do a comparison. + void ListMissingOrChangedFiles(const char *applicationDirectory, FileList *missingOrChangedFiles, bool alwaysWriteHash, bool neverWriteHash); + + /// \brief Return the files that need to be written to make \a input match this current FileList. + /// \details Specify dirSubset to only consider files that start with this path + /// specify remoteSubdir to assume that all filenames in input start with this path, so strip it off when comparing filenames. + /// \param[in] input Full list of files + /// \param[out] output Files that we need to match input + /// \param[in] dirSubset If the filename does not start with this path, just skip this file. + /// \param[in] remoteSubdir Remove this from the filenames of \a input when comparing to existing filenames. + void GetDeltaToCurrent(FileList *input, FileList *output, const char *dirSubset, const char *remoteSubdir); + + /// \brief Assuming FileList contains a list of filenames presumably without data, read the data for these filenames + /// \param[in] applicationDirectory Prepend this path to each filename. Trailing slash will be added if necessary. Use \ as the path delineator. + /// \param[in] writeFileData True to read and store the file data. The first SHA1_LENGTH bytes will contain the hash if \a writeFileHash is true + /// \param[in] writeFileHash True to read and store the hash of the file data. The first SHA1_LENGTH bytes will contain the hash if \a writeFileHash is true + /// \param[in] removeUnknownFiles If a file does not exist on disk but is in the file list, remove it from the file list? + void PopulateDataFromDisk(const char *applicationDirectory, bool writeFileData, bool writeFileHash, bool removeUnknownFiles); + + /// By default, GetDeltaToCurrent tags files as non-references, meaning they are assumed to be populated later + /// This tags all files as references, required for IncrementalReadInterface to process them incrementally + void FlagFilesAsReferences(void); + + /// \brief Write all files to disk, prefixing the paths with applicationDirectory + /// \param[in] applicationDirectory path prefix + void WriteDataToDisk(const char *applicationDirectory); + + /// \brief Add a file, given data already in memory. + /// \param[in] filename Name of a file, optionally prefixed with a partial or complete path. Use \ as the path delineator. + /// \param[in] fullPathToFile Full path to the file on disk + /// \param[in] data Contents to write + /// \param[in] dataLength length of the data, which may be greater than fileLength should you prefix extra data, such as the hash + /// \param[in] fileLength Length of the file + /// \param[in] context User defined byte to store with each file. Use for whatever you want. + /// \param[in] isAReference Means that this is just a reference to a file elsewhere - does not actually have any data + /// \param[in] takeDataPointer If true, do not allocate dataLength. Just take the pointer passed to the \a data parameter + void AddFile(const char *filename, const char *fullPathToFile, const char *data, const unsigned dataLength, const unsigned fileLength, FileListNodeContext context, bool isAReference=false, bool takeDataPointer=false); + + /// \brief Add a file, reading it from disk. + /// \param[in] filepath Complete path to the file, including the filename itself + /// \param[in] filename filename to store internally, anything you want, but usually either the complete path or a subset of the complete path. + /// \param[in] context User defined byte to store with each file. Use for whatever you want. + void AddFile(const char *filepath, const char *filename, FileListNodeContext context); + + /// \brief Delete all files stored in the file list. + /// \param[in] applicationDirectory Prefixed to the path to each filename. Use \ as the path delineator. + void DeleteFiles(const char *applicationDirectory); + + /// \brief Adds a callback to get progress reports about what the file list instances do. + /// \param[in] cb A pointer to an externally defined instance of FileListProgress. This pointer is held internally, so should remain valid as long as this class is valid. + void AddCallback(FileListProgress *cb); + + /// \brief Removes a callback + /// \param[in] cb A pointer to an externally defined instance of FileListProgress that was previously added with AddCallback() + void RemoveCallback(FileListProgress *cb); + + /// \brief Removes all callbacks + void ClearCallbacks(void); + + /// Returns all callbacks added with AddCallback() + /// \param[out] callbacks The list is set to the list of callbacks + void GetCallbacks(DataStructures::List &callbacks); + + // Here so you can read it, but don't modify it + DataStructures::List fileList; + + static bool FixEndingSlash(char *str); +protected: + DataStructures::List fileListProgressCallbacks; +}; + +} // namespace RakNet + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + +#endif // _RAKNET_SUPPORT_FileOperations diff --git a/src/raknet/FileListNodeContext.h b/src/raknet/FileListNodeContext.h new file mode 100755 index 0000000..c0fd2e7 --- /dev/null +++ b/src/raknet/FileListNodeContext.h @@ -0,0 +1,39 @@ +/// \file FileListNodeContext.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __FILE_LIST_NODE_CONTEXT_H +#define __FILE_LIST_NODE_CONTEXT_H + +#include "BitStream.h" + +struct FileListNodeContext +{ + FileListNodeContext() {dataPtr=0; dataLength=0;} + FileListNodeContext(unsigned char o, unsigned int f) : op(o), fileId(f) {dataPtr=0; dataLength=0;} + ~FileListNodeContext() {} + + unsigned char op; + unsigned int fileId; + void *dataPtr; + unsigned int dataLength; +}; + +inline RakNet::BitStream& operator<<(RakNet::BitStream& out, FileListNodeContext& in) +{ + out.Write(in.op); + out.Write(in.fileId); + return out; +} +inline RakNet::BitStream& operator>>(RakNet::BitStream& in, FileListNodeContext& out) +{ + in.Read(out.op); + bool success = in.Read(out.fileId); + (void) success; + assert(success); + return in; +} + +#endif diff --git a/src/raknet/FileListTransfer.cpp b/src/raknet/FileListTransfer.cpp new file mode 100755 index 0000000..887fb7e --- /dev/null +++ b/src/raknet/FileListTransfer.cpp @@ -0,0 +1,1086 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileListTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#include "FileListTransfer.h" +#include "DS_HuffmanEncodingTree.h" +#include "FileListTransferCBInterface.h" +#include "StringCompressor.h" +#include "FileList.h" +#include "DS_Queue.h" +#include "MessageIdentifiers.h" +#include "RakNetTypes.h" +#include "RakPeerInterface.h" +#include "RakNetStatistics.h" +#include "IncrementalReadInterface.h" +#include "RakAssert.h" +#include "RakAlloca.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + +struct FLR_MemoryBlock +{ + char *flrMemoryBlock; +}; + +struct FileListReceiver +{ + FileListReceiver(); + ~FileListReceiver(); + FileListTransferCBInterface *downloadHandler; + SystemAddress allowedSender; + unsigned short setID; + unsigned setCount; + unsigned setTotalCompressedTransmissionLength; + unsigned setTotalFinalLength; + unsigned setTotalDownloadedLength; + bool gotSetHeader; + bool deleteDownloadHandler; + bool isCompressed; + int filesReceived; + DataStructures::Map pushedFiles; + + // Notifications + unsigned int partLength; + +}; + +} // namespace RakNet + +using namespace RakNet; + +FileListReceiver::FileListReceiver() {filesReceived=0; setTotalDownloadedLength=0; partLength=1; DataStructures::Map::IMPLEMENT_DEFAULT_COMPARISON();} +FileListReceiver::~FileListReceiver() { + unsigned int i=0; + for (i=0; i < pushedFiles.Size(); i++) + rakFree_Ex(pushedFiles[i].flrMemoryBlock, _FILE_AND_LINE_ ); +} + +STATIC_FACTORY_DEFINITIONS(FileListTransfer,FileListTransfer) + +void FileListTransfer::FileToPushRecipient::DeleteThis(void) +{ + for (unsigned int j=0; j < filesToPush.Size(); j++) + RakNet::OP_DELETE(filesToPush[j],_FILE_AND_LINE_); + RakNet::OP_DELETE(this,_FILE_AND_LINE_); +} +void FileListTransfer::FileToPushRecipient::AddRef(void) +{ + refCountMutex.Lock(); + ++refCount; + refCountMutex.Unlock(); +} +void FileListTransfer::FileToPushRecipient::Deref(void) +{ + refCountMutex.Lock(); + --refCount; + if (refCount==0) + { + refCountMutex.Unlock(); + DeleteThis(); + return; + } + refCountMutex.Unlock(); +} +FileListTransfer::FileListTransfer() +{ + setId=0; + DataStructures::Map::IMPLEMENT_DEFAULT_COMPARISON(); +} +FileListTransfer::~FileListTransfer() +{ + threadPool.StopThreads(); + Clear(); +} +void FileListTransfer::StartIncrementalReadThreads(int numThreads, int threadPriority) +{ + (void) threadPriority; + + threadPool.StartThreads(numThreads, 0); +} +unsigned short FileListTransfer::SetupReceive(FileListTransferCBInterface *handler, bool deleteHandler, SystemAddress allowedSender) +{ + if (rakPeerInterface && rakPeerInterface->GetConnectionState(allowedSender)!=IS_CONNECTED) + return (unsigned short)-1; + FileListReceiver *receiver; + + if (fileListReceivers.Has(setId)) + { + receiver=fileListReceivers.Get(setId); + receiver->downloadHandler->OnDereference(); + if (receiver->deleteDownloadHandler) + RakNet::OP_DELETE(receiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(receiver, _FILE_AND_LINE_); + fileListReceivers.Delete(setId); + } + + unsigned short oldId; + receiver = RakNet::OP_NEW( _FILE_AND_LINE_ ); + RakAssert(handler); + receiver->downloadHandler=handler; + receiver->allowedSender=allowedSender; + receiver->gotSetHeader=false; + receiver->deleteDownloadHandler=deleteHandler; + receiver->setID=setId; + fileListReceivers.Set(setId, receiver); + oldId=setId; + if (++setId==(unsigned short)-1) + setId=0; + return oldId; +} + +void FileListTransfer::Send(FileList *fileList, RakNet::RakPeerInterface *rakPeer, SystemAddress recipient, unsigned short setID, PacketPriority priority, char orderingChannel, IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize) +{ + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileList->AddCallback(fileListProgressCallbacks[flpcIndex]); + + unsigned int i, totalLength; + RakNet::BitStream outBitstream; + bool sendReference; + const char *dataBlocks[2]; + int lengths[2]; + totalLength=0; + for (i=0; i < fileList->fileList.Size(); i++) + { + const FileListNode &fileListNode = fileList->fileList[i]; + totalLength+=fileListNode.fileLengthBytes; + } + + // Write the chunk header, which contains the frequency table, the total number of files, and the total number of bytes + bool anythingToWrite; + outBitstream.Write((MessageID)ID_FILE_LIST_TRANSFER_HEADER); + outBitstream.Write(setID); + anythingToWrite=fileList->fileList.Size()>0; + outBitstream.Write(anythingToWrite); + if (anythingToWrite) + { + outBitstream.WriteCompressed(fileList->fileList.Size()); + outBitstream.WriteCompressed(totalLength); + + if (rakPeer) + rakPeer->Send(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + else + SendUnified(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + + DataStructures::Queue filesToPush; + + for (i=0; i < fileList->fileList.Size(); i++) + { + sendReference = fileList->fileList[i].isAReference && _incrementalReadInterface!=0; + if (sendReference) + { + FileToPush *fileToPush = RakNet::OP_NEW(_FILE_AND_LINE_); + fileToPush->fileListNode.context=fileList->fileList[i].context; + fileToPush->setIndex=i; + fileToPush->fileListNode.filename=fileList->fileList[i].filename; + fileToPush->fileListNode.fullPathToFile=fileList->fileList[i].fullPathToFile; + fileToPush->fileListNode.fileLengthBytes=fileList->fileList[i].fileLengthBytes; + fileToPush->fileListNode.dataLengthBytes=fileList->fileList[i].dataLengthBytes; + // fileToPush->systemAddress=recipient; + fileToPush->setID=setID; + fileToPush->packetPriority=priority; + fileToPush->orderingChannel=orderingChannel; + fileToPush->currentOffset=0; + fileToPush->incrementalReadInterface=_incrementalReadInterface; + fileToPush->chunkSize=_chunkSize; + filesToPush.Push(fileToPush,_FILE_AND_LINE_); + } + else + { + outBitstream.Reset(); + outBitstream.Write((MessageID)ID_FILE_LIST_TRANSFER_FILE); + outBitstream << fileList->fileList[i].context; + // outBitstream.Write(fileList->fileList[i].context); + outBitstream.Write(setID); + StringCompressor::Instance()->EncodeString(fileList->fileList[i].filename, 512, &outBitstream); + + outBitstream.WriteCompressed(i); + outBitstream.WriteCompressed(fileList->fileList[i].dataLengthBytes); // Original length in bytes + + outBitstream.AlignWriteToByteBoundary(); + + dataBlocks[0]=(char*) outBitstream.GetData(); + lengths[0]=outBitstream.GetNumberOfBytesUsed(); + dataBlocks[1]=fileList->fileList[i].data; + lengths[1]=fileList->fileList[i].dataLengthBytes; + SendListUnified(dataBlocks,lengths,2,priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + } + } + + if (filesToPush.IsEmpty()==false) + { + FileToPushRecipient *ftpr=0; + + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]->systemAddress==recipient) + { + ftpr=fileToPushRecipientList[i]; + ftpr->AddRef(); + break; + } + } + fileToPushRecipientListMutex.Unlock(); + + if (ftpr==0) + { + ftpr = RakNet::OP_NEW(_FILE_AND_LINE_); + ftpr->systemAddress=recipient; + ftpr->refCount=2; // Allocated and in the list + fileToPushRecipientList.Push(ftpr, _FILE_AND_LINE_); + } + while (filesToPush.IsEmpty()==false) + { + ftpr->filesToPush.Push(filesToPush.Pop(), _FILE_AND_LINE_); + } + // ftpr out of scope + ftpr->Deref(); + SendIRIToAddress(recipient); + return; + } + else + { + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnFilePushesComplete(recipient, setID); + } + } + else + { + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnFilePushesComplete(recipient, setID); + + if (rakPeer) + rakPeer->Send(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + else + SendUnified(&outBitstream, priority, RELIABLE_ORDERED, orderingChannel, recipient, false); + } +} + +bool FileListTransfer::DecodeSetHeader(Packet *packet) +{ + bool anythingToWrite=false; + unsigned short setID; + RakNet::BitStream inBitStream(packet->data, packet->length, false); + inBitStream.IgnoreBits(8); + inBitStream.Read(setID); + FileListReceiver *fileListReceiver; + if (fileListReceivers.Has(setID)==false) + { + // If this assert hits you didn't call SetupReceive +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + fileListReceiver=fileListReceivers.Get(setID); + if (fileListReceiver->allowedSender!=packet->systemAddress) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + +#ifdef _DEBUG + RakAssert(fileListReceiver->gotSetHeader==false); +#endif + + inBitStream.Read(anythingToWrite); + + if (anythingToWrite) + { + inBitStream.ReadCompressed(fileListReceiver->setCount); + if (inBitStream.ReadCompressed(fileListReceiver->setTotalFinalLength)) + { + fileListReceiver->setTotalCompressedTransmissionLength=fileListReceiver->setTotalFinalLength; + fileListReceiver->gotSetHeader=true; + return true; + } + + } + else + { + FileListTransferCBInterface::DownloadCompleteStruct dcs; + dcs.setID=fileListReceiver->setID; + dcs.numberOfFilesInThisSet=fileListReceiver->setCount; + dcs.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + dcs.senderSystemAddress=packet->systemAddress; + dcs.senderGuid=packet->guid; + + if (fileListReceiver->downloadHandler->OnDownloadComplete(&dcs)==false) + { + fileListReceiver->downloadHandler->OnDereference(); + fileListReceivers.Delete(setID); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + } + + return true; + } + + return false; +} + +bool FileListTransfer::DecodeFile(Packet *packet, bool isTheFileAndIsNotDownloadProgress) +{ + FileListTransferCBInterface::OnFileStruct onFileStruct; + RakNet::BitStream inBitStream(packet->data, packet->length, false); + inBitStream.IgnoreBits(8); + + onFileStruct.senderSystemAddress=packet->systemAddress; + onFileStruct.senderGuid=packet->guid; + + unsigned int partCount=0; + unsigned int partTotal=0; + unsigned int partLength=0; + onFileStruct.fileData=0; + if (isTheFileAndIsNotDownloadProgress==false) + { + // Disable endian swapping on reading this, as it's generated locally in ReliabilityLayer.cpp + inBitStream.ReadBits( (unsigned char* ) &partCount, BYTES_TO_BITS(sizeof(partCount)), true ); + inBitStream.ReadBits( (unsigned char* ) &partTotal, BYTES_TO_BITS(sizeof(partTotal)), true ); + inBitStream.ReadBits( (unsigned char* ) &partLength, BYTES_TO_BITS(sizeof(partLength)), true ); + inBitStream.IgnoreBits(8); + // The header is appended to every chunk, which we continue to read after this statement flrMemoryBlock + } + inBitStream >> onFileStruct.context; + // inBitStream.Read(onFileStruct.context); + inBitStream.Read(onFileStruct.setID); + FileListReceiver *fileListReceiver; + if (fileListReceivers.Has(onFileStruct.setID)==false) + { + return false; + } + fileListReceiver=fileListReceivers.Get(onFileStruct.setID); + if (fileListReceiver->allowedSender!=packet->systemAddress) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + +#ifdef _DEBUG + RakAssert(fileListReceiver->gotSetHeader==true); +#endif + + if (StringCompressor::Instance()->DecodeString(onFileStruct.fileName, 512, &inBitStream)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return false; + } + + inBitStream.ReadCompressed(onFileStruct.fileIndex); + inBitStream.ReadCompressed(onFileStruct.byteLengthOfThisFile); + onFileStruct.bytesDownloadedForThisFile=onFileStruct.byteLengthOfThisFile; + + if (isTheFileAndIsNotDownloadProgress) + { + // Support SendLists + inBitStream.AlignReadToByteBoundary(); + + onFileStruct.fileData = (char*) rakMalloc_Ex( (size_t) onFileStruct.byteLengthOfThisFile, _FILE_AND_LINE_ ); + + inBitStream.Read((char*)onFileStruct.fileData, onFileStruct.byteLengthOfThisFile); + + fileListReceiver->setTotalDownloadedLength+=onFileStruct.byteLengthOfThisFile; + } + + + onFileStruct.numberOfFilesInThisSet=fileListReceiver->setCount; +// onFileStruct.setTotalCompressedTransmissionLength=fileListReceiver->setTotalCompressedTransmissionLength; + onFileStruct.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + + // User callback for this file. + if (isTheFileAndIsNotDownloadProgress) + { + onFileStruct.bytesDownloadedForThisSet=fileListReceiver->setTotalDownloadedLength; + + FileListTransferCBInterface::FileProgressStruct fps; + fps.onFileStruct=&onFileStruct; + fps.partCount=1; + fps.partTotal=1; + fps.dataChunkLength=onFileStruct.byteLengthOfThisFile; + fps.firstDataChunk=onFileStruct.fileData; + fps.iriDataChunk=onFileStruct.fileData; + fps.allocateIrIDataChunkAutomatically=true; + fps.iriWriteOffset=0; + fps.senderSystemAddress=packet->systemAddress; + fps.senderGuid=packet->guid; + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + // Got a complete file + // Either we are using IncrementalReadInterface and it was a small file or + // We are not using IncrementalReadInterface + if (fileListReceiver->downloadHandler->OnFile(&onFileStruct)) + rakFree_Ex(onFileStruct.fileData, _FILE_AND_LINE_ ); + + fileListReceiver->filesReceived++; + + // If this set is done, free the memory for it. + if ((int) fileListReceiver->setCount==fileListReceiver->filesReceived) + { + FileListTransferCBInterface::DownloadCompleteStruct dcs; + dcs.setID=fileListReceiver->setID; + dcs.numberOfFilesInThisSet=fileListReceiver->setCount; + dcs.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + dcs.senderSystemAddress=packet->systemAddress; + dcs.senderGuid=packet->guid; + + if (fileListReceiver->downloadHandler->OnDownloadComplete(&dcs)==false) + { + fileListReceiver->downloadHandler->OnDereference(); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + fileListReceivers.Delete(onFileStruct.setID); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + } + } + + } + else + { + inBitStream.AlignReadToByteBoundary(); + + char *firstDataChunk; + unsigned int unreadBits = inBitStream.GetNumberOfUnreadBits(); + unsigned int unreadBytes = BITS_TO_BYTES(unreadBits); + firstDataChunk=(char*) inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()); + + onFileStruct.bytesDownloadedForThisSet=fileListReceiver->setTotalDownloadedLength+unreadBytes; + onFileStruct.bytesDownloadedForThisFile=onFileStruct.byteLengthOfThisFile; + + FileListTransferCBInterface::FileProgressStruct fps; + fps.onFileStruct=&onFileStruct; + fps.partCount=partCount; + fps.partTotal=partTotal; + fps.dataChunkLength=unreadBytes; + fps.firstDataChunk=firstDataChunk; + fps.iriDataChunk=0; + fps.allocateIrIDataChunkAutomatically=true; + fps.iriWriteOffset=0; + fps.senderSystemAddress=packet->systemAddress; + fps.senderGuid=packet->guid; + + // Remote system is sending a complete file, but the file is large enough that we get ID_PROGRESS_NOTIFICATION from the transport layer + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + } + + return true; +} +PluginReceiveResult FileListTransfer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_FILE_LIST_TRANSFER_HEADER: + DecodeSetHeader(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FILE_LIST_TRANSFER_FILE: + DecodeFile(packet, true); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FILE_LIST_REFERENCE_PUSH: + OnReferencePush(packet, true); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FILE_LIST_REFERENCE_PUSH_ACK: + OnReferencePushAck(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_DOWNLOAD_PROGRESS: + if (packet->length>sizeof(MessageID)+sizeof(unsigned int)*3) + { + if (packet->data[sizeof(MessageID)+sizeof(unsigned int)*3]==ID_FILE_LIST_TRANSFER_FILE) + { + DecodeFile(packet, false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + if (packet->data[sizeof(MessageID)+sizeof(unsigned int)*3]==ID_FILE_LIST_REFERENCE_PUSH) + { + OnReferencePush(packet, false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + break; + } + + return RR_CONTINUE_PROCESSING; +} +void FileListTransfer::OnRakPeerShutdown(void) +{ + threadPool.StopThreads(); + threadPool.ClearInput(); + Clear(); +} +void FileListTransfer::Clear(void) +{ + unsigned i; + for (i=0; i < fileListReceivers.Size(); i++) + { + fileListReceivers[i]->downloadHandler->OnDereference(); + if (fileListReceivers[i]->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceivers[i]->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceivers[i], _FILE_AND_LINE_); + } + fileListReceivers.Clear(); + + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + FileToPushRecipient *ftpr = fileToPushRecipientList[i]; + // Taken out of the list + ftpr->Deref(); + } + fileToPushRecipientList.Clear(false,_FILE_AND_LINE_); + fileToPushRecipientListMutex.Unlock(); + + //filesToPush.Clear(false, _FILE_AND_LINE_); +} +void FileListTransfer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + RemoveReceiver(systemAddress); +} +void FileListTransfer::CancelReceive(unsigned short setId) +{ + if (fileListReceivers.Has(setId)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + FileListReceiver *fileListReceiver=fileListReceivers.Get(setId); + fileListReceiver->downloadHandler->OnDereference(); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + fileListReceivers.Delete(setId); +} +void FileListTransfer::RemoveReceiver(SystemAddress systemAddress) +{ + unsigned i; + i=0; + threadPool.LockInput(); + while (i < threadPool.InputSize()) + { + if (threadPool.GetInputAtIndex(i).systemAddress==systemAddress) + { + threadPool.RemoveInputAtIndex(i); + } + else + i++; + } + threadPool.UnlockInput(); + + i=0; + while (i < fileListReceivers.Size()) + { + if (fileListReceivers[i]->allowedSender==systemAddress) + { + fileListReceivers[i]->downloadHandler->OnDereference(); + if (fileListReceivers[i]->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceivers[i]->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceivers[i], _FILE_AND_LINE_); + fileListReceivers.RemoveAtIndex(i); + } + else + i++; + } + + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]->systemAddress==systemAddress) + { + FileToPushRecipient *ftpr = fileToPushRecipientList[i]; + + // Tell the user that this recipient was lost + for (unsigned int flpcIndex=0; flpcIndex < fileListProgressCallbacks.Size(); flpcIndex++) + fileListProgressCallbacks[flpcIndex]->OnSendAborted(ftpr->systemAddress); + + fileToPushRecipientList.RemoveAtIndex(i); + // Taken out of the list + ftpr->Deref(); + break; + } + } + fileToPushRecipientListMutex.Unlock(); +} +bool FileListTransfer::IsHandlerActive(unsigned short setId) +{ + return fileListReceivers.Has(setId); +} +void FileListTransfer::AddCallback(FileListProgress *cb) +{ + if (cb==0) + return; + + if (fileListProgressCallbacks.GetIndexOf(cb)==(unsigned int) -1) + fileListProgressCallbacks.Push(cb, _FILE_AND_LINE_); +} +void FileListTransfer::RemoveCallback(FileListProgress *cb) +{ + unsigned int idx = fileListProgressCallbacks.GetIndexOf(cb); + if (idx!=(unsigned int) -1) + fileListProgressCallbacks.RemoveAtIndex(idx); +} +void FileListTransfer::ClearCallbacks(void) +{ + fileListProgressCallbacks.Clear(true, _FILE_AND_LINE_); +} +void FileListTransfer::GetCallbacks(DataStructures::List &callbacks) +{ + callbacks = fileListProgressCallbacks; +} + +void FileListTransfer::Update(void) +{ + unsigned i; + i=0; + while (i < fileListReceivers.Size()) + { + if (fileListReceivers[i]->downloadHandler->Update()==false) + { + fileListReceivers[i]->downloadHandler->OnDereference(); + if (fileListReceivers[i]->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceivers[i]->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceivers[i], _FILE_AND_LINE_); + fileListReceivers.RemoveAtIndex(i); + } + else + i++; + } +} +void FileListTransfer::OnReferencePush(Packet *packet, bool isTheFileAndIsNotDownloadProgress) +{ + RakNet::BitStream refPushAck; + if (isTheFileAndIsNotDownloadProgress) + { + // This is not a progress notification, it is actually the entire packet + refPushAck.Write((MessageID)ID_FILE_LIST_REFERENCE_PUSH_ACK); + SendUnified(&refPushAck,HIGH_PRIORITY, RELIABLE, 0, packet->systemAddress, false); + } + else + { + // 12/23/09 Why do I care about ID_DOWNLOAD_PROGRESS for reference pushes? + return; + } + + FileListTransferCBInterface::OnFileStruct onFileStruct; + RakNet::BitStream inBitStream(packet->data, packet->length, false); + inBitStream.IgnoreBits(8); + + unsigned int partCount=0; + unsigned int partTotal=1; + unsigned int partLength=0; + onFileStruct.fileData=0; + if (isTheFileAndIsNotDownloadProgress==false) + { + // UNREACHABLE CODE + // Disable endian swapping on reading this, as it's generated locally in ReliabilityLayer.cpp + inBitStream.ReadBits( (unsigned char* ) &partCount, BYTES_TO_BITS(sizeof(partCount)), true ); + inBitStream.ReadBits( (unsigned char* ) &partTotal, BYTES_TO_BITS(sizeof(partTotal)), true ); + inBitStream.ReadBits( (unsigned char* ) &partLength, BYTES_TO_BITS(sizeof(partLength)), true ); + inBitStream.IgnoreBits(8); + // The header is appended to every chunk, which we continue to read after this statement flrMemoryBlock + } + + inBitStream >> onFileStruct.context; + // inBitStream.Read(onFileStruct.context); + inBitStream.Read(onFileStruct.setID); + FileListReceiver *fileListReceiver; + if (fileListReceivers.Has(onFileStruct.setID)==false) + { + return; + } + fileListReceiver=fileListReceivers.Get(onFileStruct.setID); + if (fileListReceiver->allowedSender!=packet->systemAddress) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + +#ifdef _DEBUG + RakAssert(fileListReceiver->gotSetHeader==true); +#endif + + if (StringCompressor::Instance()->DecodeString(onFileStruct.fileName, 512, &inBitStream)==false) + { +#ifdef _DEBUG + RakAssert(0); +#endif + return; + } + + inBitStream.ReadCompressed(onFileStruct.fileIndex); + inBitStream.ReadCompressed(onFileStruct.byteLengthOfThisFile); + unsigned int offset; + unsigned int chunkLength; + inBitStream.ReadCompressed(offset); + inBitStream.ReadCompressed(chunkLength); + + bool lastChunk=false; + inBitStream.Read(lastChunk); + bool finished = lastChunk && isTheFileAndIsNotDownloadProgress; + + if (isTheFileAndIsNotDownloadProgress==false) + fileListReceiver->partLength=partLength; + + FLR_MemoryBlock mb; + if (fileListReceiver->pushedFiles.Has(onFileStruct.fileIndex)==false) + { + mb.flrMemoryBlock=(char*) rakMalloc_Ex(onFileStruct.byteLengthOfThisFile, _FILE_AND_LINE_); + fileListReceiver->pushedFiles.SetNew(onFileStruct.fileIndex, mb); + } + else + { + mb=fileListReceiver->pushedFiles.Get(onFileStruct.fileIndex); + } + + unsigned int unreadBits = inBitStream.GetNumberOfUnreadBits(); + unsigned int unreadBytes = BITS_TO_BYTES(unreadBits); + unsigned int amountToRead; + if (isTheFileAndIsNotDownloadProgress) + amountToRead=chunkLength; + else + amountToRead=unreadBytes; + + inBitStream.AlignReadToByteBoundary(); + + FileListTransferCBInterface::FileProgressStruct fps; + + if (isTheFileAndIsNotDownloadProgress) + { + if (mb.flrMemoryBlock) + { + // Either the very first block, or a subsequent block and allocateIrIDataChunkAutomatically was true for the first block + memcpy(mb.flrMemoryBlock+offset, inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()), amountToRead); + fps.iriDataChunk=mb.flrMemoryBlock+offset; + } + else + { + // In here mb.flrMemoryBlock is null + // This means the first block explicitly deallocated the memory, and no blocks will be permanently held by RakNet + fps.iriDataChunk=(char*) inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()); + } + + onFileStruct.bytesDownloadedForThisFile=offset+amountToRead; + } + else + { + fileListReceiver->setTotalDownloadedLength+=partLength; + onFileStruct.bytesDownloadedForThisFile=partCount*partLength; + fps.iriDataChunk=(char*) inBitStream.GetData()+BITS_TO_BYTES(inBitStream.GetReadOffset()); + } + onFileStruct.bytesDownloadedForThisSet=fileListReceiver->setTotalDownloadedLength; + + onFileStruct.numberOfFilesInThisSet=fileListReceiver->setCount; +// onFileStruct.setTotalCompressedTransmissionLength=fileListReceiver->setTotalCompressedTransmissionLength; + onFileStruct.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + // Note: mb.flrMemoryBlock may be null here + onFileStruct.fileData=mb.flrMemoryBlock; + onFileStruct.senderSystemAddress=packet->systemAddress; + onFileStruct.senderGuid=packet->guid; + + unsigned int totalNotifications; + unsigned int currentNotificationIndex; + if (chunkLength==0 || chunkLength==onFileStruct.byteLengthOfThisFile) + totalNotifications=1; + else + totalNotifications = onFileStruct.byteLengthOfThisFile / chunkLength + 1; + + if (chunkLength==0) + currentNotificationIndex = 0; + else + currentNotificationIndex = offset / chunkLength; + + fps.onFileStruct=&onFileStruct; + fps.partCount=currentNotificationIndex; + fps.partTotal=totalNotifications; + fps.dataChunkLength=amountToRead; + fps.firstDataChunk=mb.flrMemoryBlock; + fps.allocateIrIDataChunkAutomatically=true; + fps.onFileStruct->fileData=mb.flrMemoryBlock; + fps.iriWriteOffset=offset; + fps.senderSystemAddress=packet->systemAddress; + fps.senderGuid=packet->guid; + + if (finished) + { + char *oldFileData=fps.onFileStruct->fileData; + if (fps.partCount==0) + fps.firstDataChunk=fps.iriDataChunk; + if (fps.partTotal==1) + fps.onFileStruct->fileData=fps.iriDataChunk; + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + // Incremental read interface sent us a file chunk + // This is the last file chunk we were waiting for to consider the file done + if (fileListReceiver->downloadHandler->OnFile(&onFileStruct)) + rakFree_Ex(oldFileData, _FILE_AND_LINE_ ); + fileListReceiver->pushedFiles.Delete(onFileStruct.fileIndex); + + fileListReceiver->filesReceived++; + + // If this set is done, free the memory for it. + if ((int) fileListReceiver->setCount==fileListReceiver->filesReceived) + { + FileListTransferCBInterface::DownloadCompleteStruct dcs; + dcs.setID=fileListReceiver->setID; + dcs.numberOfFilesInThisSet=fileListReceiver->setCount; + dcs.byteLengthOfThisSet=fileListReceiver->setTotalFinalLength; + dcs.senderSystemAddress=packet->systemAddress; + dcs.senderGuid=packet->guid; + + if (fileListReceiver->downloadHandler->OnDownloadComplete(&dcs)==false) + { + fileListReceiver->downloadHandler->OnDereference(); + fileListReceivers.Delete(onFileStruct.setID); + if (fileListReceiver->deleteDownloadHandler) + RakNet::OP_DELETE(fileListReceiver->downloadHandler, _FILE_AND_LINE_); + RakNet::OP_DELETE(fileListReceiver, _FILE_AND_LINE_); + } + } + } + else + { + if (isTheFileAndIsNotDownloadProgress) + { + // 12/23/09 Don't use OnReferencePush anymore, just use OnFileProgress + fileListReceiver->downloadHandler->OnFileProgress(&fps); + + if (fps.allocateIrIDataChunkAutomatically==false) + { + rakFree_Ex(fileListReceiver->pushedFiles.Get(onFileStruct.fileIndex).flrMemoryBlock, _FILE_AND_LINE_ ); + fileListReceiver->pushedFiles.Get(onFileStruct.fileIndex).flrMemoryBlock=0; + } + } + else + { + // This is a download progress notification for a file chunk using incremental read interface + // We don't have all the data for this chunk yet + + // UNREACHABLE CODE + totalNotifications = onFileStruct.byteLengthOfThisFile / fileListReceiver->partLength + 1; + if (isTheFileAndIsNotDownloadProgress==false) + currentNotificationIndex = (offset+partCount*fileListReceiver->partLength) / fileListReceiver->partLength ; + else + currentNotificationIndex = (offset+chunkLength) / fileListReceiver->partLength ; + unreadBytes = onFileStruct.byteLengthOfThisFile - ((currentNotificationIndex+1) * fileListReceiver->partLength); + + if (rakPeerInterface) + { + // Thus chunk is incomplete + fps.iriDataChunk=0; + + fileListReceiver->downloadHandler->OnFileProgress(&fps); + } + } + } + + return; +} +namespace RakNet +{ +int SendIRIToAddressCB(FileListTransfer::ThreadData threadData, bool *returnOutput, void* perThreadData) +{ + (void) perThreadData; + + FileListTransfer *fileListTransfer = threadData.fileListTransfer; + SystemAddress systemAddress = threadData.systemAddress; + *returnOutput=false; + + // Was previously using GetStatistics to get outgoing buffer size, but TCP with UnifiedSend doesn't have this + unsigned int bytesRead; + const char *dataBlocks[2]; + int lengths[2]; + unsigned int smallFileTotalSize=0; + RakNet::BitStream outBitstream; + unsigned int ftpIndex; + + fileListTransfer->fileToPushRecipientListMutex.Lock(); + for (ftpIndex=0; ftpIndex < fileListTransfer->fileToPushRecipientList.Size(); ftpIndex++) + { + FileListTransfer::FileToPushRecipient *ftpr = fileListTransfer->fileToPushRecipientList[ftpIndex]; + // Referenced by both ftpr and list + ftpr->AddRef(); + + fileListTransfer->fileToPushRecipientListMutex.Unlock(); + + if (ftpr->systemAddress==systemAddress) + { + FileListTransfer::FileToPush *ftp = ftpr->filesToPush.Peek(); + + // Read and send chunk. If done, delete at this index + void *buff = rakMalloc_Ex(ftp->chunkSize, _FILE_AND_LINE_); + if (buff==0) + { + ftpr->Deref(); + notifyOutOfMemory(_FILE_AND_LINE_); + return 0; + } + + // Read the next file chunk + bytesRead=ftp->incrementalReadInterface->GetFilePart(ftp->fileListNode.fullPathToFile, ftp->currentOffset, ftp->chunkSize, buff, ftp->fileListNode.context); + + bool done = ftp->fileListNode.dataLengthBytes == ftp->currentOffset+bytesRead; + while (done && ftp->currentOffset==0 && ftpr->filesToPush.Size()>=2 && smallFileTotalSizechunkSize) + { + // Send all small files at once, rather than wait for ID_FILE_LIST_REFERENCE_PUSH. But at least one ID_FILE_LIST_REFERENCE_PUSH must be sent + outBitstream.Reset(); + outBitstream.Write((MessageID)ID_FILE_LIST_TRANSFER_FILE); + // outBitstream.Write(ftp->fileListNode.context); + outBitstream << ftp->fileListNode.context; + outBitstream.Write(ftp->setID); + StringCompressor::Instance()->EncodeString(ftp->fileListNode.filename, 512, &outBitstream); + outBitstream.WriteCompressed(ftp->setIndex); + outBitstream.WriteCompressed(ftp->fileListNode.dataLengthBytes); // Original length in bytes + outBitstream.AlignWriteToByteBoundary(); + dataBlocks[0]=(char*) outBitstream.GetData(); + lengths[0]=outBitstream.GetNumberOfBytesUsed(); + dataBlocks[1]=(const char*) buff; + lengths[1]=bytesRead; + + fileListTransfer->SendListUnified(dataBlocks,lengths,2,ftp->packetPriority, RELIABLE_ORDERED, ftp->orderingChannel, systemAddress, false); + + // LWS : fixed freed pointer reference +// unsigned int chunkSize = ftp->chunkSize; + RakNet::OP_DELETE(ftp,_FILE_AND_LINE_); + ftpr->filesToPush.Pop(); + smallFileTotalSize+=bytesRead; + //done = bytesRead!=ftp->chunkSize; + ftp = ftpr->filesToPush.Peek(); + + bytesRead=ftp->incrementalReadInterface->GetFilePart(ftp->fileListNode.fullPathToFile, ftp->currentOffset, ftp->chunkSize, buff, ftp->fileListNode.context); + done = ftp->fileListNode.dataLengthBytes == ftp->currentOffset+bytesRead; + } + + + outBitstream.Reset(); + outBitstream.Write((MessageID)ID_FILE_LIST_REFERENCE_PUSH); + // outBitstream.Write(ftp->fileListNode.context); + outBitstream << ftp->fileListNode.context; + outBitstream.Write(ftp->setID); + StringCompressor::Instance()->EncodeString(ftp->fileListNode.filename, 512, &outBitstream); + outBitstream.WriteCompressed(ftp->setIndex); + outBitstream.WriteCompressed(ftp->fileListNode.dataLengthBytes); // Original length in bytes + outBitstream.WriteCompressed(ftp->currentOffset); + ftp->currentOffset+=bytesRead; + outBitstream.WriteCompressed(bytesRead); + outBitstream.Write(done); + + for (unsigned int flpcIndex=0; flpcIndex < fileListTransfer->fileListProgressCallbacks.Size(); flpcIndex++) + fileListTransfer->fileListProgressCallbacks[flpcIndex]->OnFilePush(ftp->fileListNode.filename, ftp->fileListNode.fileLengthBytes, ftp->currentOffset-bytesRead, bytesRead, done, systemAddress, ftp->setID); + + dataBlocks[0]=(char*) outBitstream.GetData(); + lengths[0]=outBitstream.GetNumberOfBytesUsed(); + dataBlocks[1]=(char*) buff; + lengths[1]=bytesRead; + //rakPeerInterface->SendList(dataBlocks,lengths,2,ftp->packetPriority, RELIABLE_ORDERED, ftp->orderingChannel, ftp->systemAddress, false); + fileListTransfer->SendListUnified(dataBlocks,lengths,2,ftp->packetPriority, RELIABLE_ORDERED, ftp->orderingChannel, systemAddress, false); + + // Mutex state: FileToPushRecipient (ftpr) has AddRef. fileToPushRecipientListMutex not locked. + if (done) + { + // Done + unsigned short setId = ftp->setID; + RakNet::OP_DELETE(ftp,_FILE_AND_LINE_); + ftpr->filesToPush.Pop(); + + if (ftpr->filesToPush.Size()==0) + { + for (unsigned int flpcIndex=0; flpcIndex < fileListTransfer->fileListProgressCallbacks.Size(); flpcIndex++) + fileListTransfer->fileListProgressCallbacks[flpcIndex]->OnFilePushesComplete(systemAddress, setId); + + // Remove ftpr from fileToPushRecipientList + fileListTransfer->RemoveFromList(ftpr); + } + } + + // ftpr out of scope + ftpr->Deref(); + + rakFree_Ex(buff, _FILE_AND_LINE_ ); + return 0; + } + else + { + ftpr->Deref(); + fileListTransfer->fileToPushRecipientListMutex.Lock(); + } + } + + fileListTransfer->fileToPushRecipientListMutex.Unlock(); + + return 0; +} +} +void FileListTransfer::SendIRIToAddress(SystemAddress systemAddress) +{ + ThreadData threadData; + threadData.fileListTransfer=this; + threadData.systemAddress=systemAddress; + + if (threadPool.WasStarted()) + { + threadPool.AddInput(SendIRIToAddressCB, threadData); + } + else + { + bool doesNothing; + SendIRIToAddressCB(threadData, &doesNothing, 0); + } +} +void FileListTransfer::OnReferencePushAck(Packet *packet) +{ + SendIRIToAddress(packet->systemAddress); +} +void FileListTransfer::RemoveFromList(FileToPushRecipient *ftpr) +{ + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]==ftpr) + { + fileToPushRecipientList.RemoveAtIndex(i); + // List no longer references + ftpr->Deref(); + fileToPushRecipientListMutex.Unlock(); + return; + } + } + fileToPushRecipientListMutex.Unlock(); +} +unsigned int FileListTransfer::GetPendingFilesToAddress(SystemAddress recipient) +{ + fileToPushRecipientListMutex.Lock(); + for (unsigned int i=0; i < fileToPushRecipientList.Size(); i++) + { + if (fileToPushRecipientList[i]->systemAddress==recipient) + { + unsigned int size = fileToPushRecipientList[i]->filesToPush.Size(); + fileToPushRecipientListMutex.Unlock(); + return size; + } + } + fileToPushRecipientListMutex.Unlock(); + + return 0; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/FileListTransfer.h b/src/raknet/FileListTransfer.h new file mode 100755 index 0000000..11bc4ad --- /dev/null +++ b/src/raknet/FileListTransfer.h @@ -0,0 +1,173 @@ +/// \file FileListTransfer.h +/// \brief A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileListTransfer==1 && _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __FILE_LIST_TRANFER_H +#define __FILE_LIST_TRANFER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "DS_Map.h" +#include "RakNetTypes.h" +#include "PacketPriority.h" +#include "RakMemoryOverride.h" +#include "FileList.h" +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "ThreadPool.h" + +namespace RakNet +{ +/// Forward declarations +class IncrementalReadInterface; +class FileListTransferCBInterface; +class FileListProgress; +struct FileListReceiver; + +/// \defgroup FILE_LIST_TRANSFER_GROUP FileListTransfer +/// \brief A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. +/// \details Similar to the DirectoryDeltaTransfer plugin, except that it doesn't send deltas based on pre-existing files or actually write the files to disk. +/// +/// Usage: +/// Call SetupReceive to allow one file set to arrive. The value returned by FileListTransfer::SetupReceive() +/// is the setID that is allowed. +/// It's up to you to transmit this value to the other system, along with information indicating what kind of files you want to get. +/// The other system should then prepare a FileList and call FileListTransfer::Send(), passing the return value of FileListTransfer::SetupReceive() +/// as the \a setID parameter to FileListTransfer::Send() +/// \ingroup FILE_LIST_TRANSFER_GROUP +class RAK_DLL_EXPORT FileListTransfer : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FileListTransfer) + + FileListTransfer(); + virtual ~FileListTransfer(); + + /// \brief Optionally start worker threads when using _incrementalReadInterface for the Send() operation + /// \param[in] numThreads how many worker threads to start + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + void StartIncrementalReadThreads(int numThreads, int threadPriority=-99999); + + /// \brief Allows one corresponding Send() call from another system to arrive. + /// \param[in] handler The class to call on each file + /// \param[in] deleteHandler True to delete the handler when it is no longer needed. False to not do so. + /// \param[in] allowedSender Which system to allow files from. + /// \return A set ID value, which should be passed as the \a setID value to the Send() call on the other system. This value will be returned in the callback and is unique per file set. Returns 65535 on failure (not connected to sender) + unsigned short SetupReceive(FileListTransferCBInterface *handler, bool deleteHandler, SystemAddress allowedSender); + + /// \brief Send the FileList structure to another system, which must have previously called SetupReceive(). + /// \param[in] fileList A list of files. The data contained in FileList::data will be sent incrementally and compressed among all files in the set + /// \param[in] rakPeer The instance of RakNet to use to send the message. Pass 0 to use the instance the plugin is attached to + /// \param[in] recipient The address of the system to send to + /// \param[in] setID The return value of SetupReceive() which was previously called on \a recipient + /// \param[in] priority Passed to RakPeerInterface::Send() + /// \param[in] orderingChannel Passed to RakPeerInterface::Send() + /// \param[in] _incrementalReadInterface If a file in \a fileList has no data, _incrementalReadInterface will be used to read the file in chunks of size \a chunkSize + /// \param[in] _chunkSize How large of a block of a file to send at once + void Send(FileList *fileList, RakNet::RakPeerInterface *rakPeer, SystemAddress recipient, unsigned short setID, PacketPriority priority, char orderingChannel, IncrementalReadInterface *_incrementalReadInterface=0, unsigned int _chunkSize=262144*4*16); + + /// Return number of files waiting to go out to a particular address + unsigned int GetPendingFilesToAddress(SystemAddress recipient); + + /// \brief Stop a download. + void CancelReceive(unsigned short setId); + + /// \brief Remove all handlers associated with a particular system address. + void RemoveReceiver(SystemAddress systemAddress); + + /// \brief Is a handler passed to SetupReceive still running? + bool IsHandlerActive(unsigned short setId); + + /// \brief Adds a callback to get progress reports about what the file list instances do. + /// \param[in] cb A pointer to an externally defined instance of FileListProgress. This pointer is held internally, so should remain valid as long as this class is valid. + void AddCallback(FileListProgress *cb); + + /// \brief Removes a callback + /// \param[in] cb A pointer to an externally defined instance of FileListProgress that was previously added with AddCallback() + void RemoveCallback(FileListProgress *cb); + + /// \brief Removes all callbacks + void ClearCallbacks(void); + + /// Returns all callbacks added with AddCallback() + /// \param[out] callbacks The list is set to the list of callbacks + void GetCallbacks(DataStructures::List &callbacks); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal For plugin handling + virtual void OnRakPeerShutdown(void); + /// \internal For plugin handling + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal For plugin handling + virtual void Update(void); + +protected: + bool DecodeSetHeader(Packet *packet); + bool DecodeFile(Packet *packet, bool fullFile); + + void Clear(void); + + void OnReferencePush(Packet *packet, bool fullFile); + void OnReferencePushAck(Packet *packet); + void SendIRIToAddress(SystemAddress systemAddress); + + DataStructures::Map fileListReceivers; + unsigned short setId; + DataStructures::List fileListProgressCallbacks; + + struct FileToPush + { + FileListNode fileListNode; + PacketPriority packetPriority; + char orderingChannel; + unsigned int currentOffset; + unsigned short setID; + unsigned int setIndex; + IncrementalReadInterface *incrementalReadInterface; + unsigned int chunkSize; + }; + struct FileToPushRecipient + { + unsigned int refCount; + SimpleMutex refCountMutex; + void DeleteThis(void); + void AddRef(void); + void Deref(void); + + SystemAddress systemAddress; + DataStructures::Queue filesToPush; + }; + DataStructures::List< FileToPushRecipient* > fileToPushRecipientList; + SimpleMutex fileToPushRecipientListMutex; + void RemoveFromList(FileToPushRecipient *ftpr); + + struct ThreadData + { + FileListTransfer *fileListTransfer; + SystemAddress systemAddress; + }; + + ThreadPool threadPool; + + friend int SendIRIToAddressCB(FileListTransfer::ThreadData threadData, bool *returnOutput, void* perThreadData); +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/FileListTransferCBInterface.h b/src/raknet/FileListTransferCBInterface.h new file mode 100755 index 0000000..7337317 --- /dev/null +++ b/src/raknet/FileListTransferCBInterface.h @@ -0,0 +1,154 @@ +/// \file FileListTransferCBInterface.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __FILE_LIST_TRANSFER_CALLBACK_INTERFACE_H +#define __FILE_LIST_TRANSFER_CALLBACK_INTERFACE_H + +#include "RakMemoryOverride.h" +#include "FileListNodeContext.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + +/// \brief Used by FileListTransfer plugin as a callback for when we get a file. +/// \details You get the last file when fileIndex==numberOfFilesInThisSet +/// \sa FileListTransfer +class FileListTransferCBInterface +{ +public: + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct OnFileStruct + { + /// \brief The index into the set of files, from 0 to numberOfFilesInThisSet + unsigned fileIndex; + + /// \brief The name of the file + char fileName[512]; + + /// \brief The data pointed to by the file + char *fileData; + + /// \brief The actual length of this file. + BitSize_t byteLengthOfThisFile; + + /// \brief How many bytes of this file has been downloaded + BitSize_t bytesDownloadedForThisFile; + + /// \brief Files are transmitted in sets, where more than one set of files can be transmitted at the same time. + /// \details This is the identifier for the set, which is returned by FileListTransfer::SetupReceive + unsigned short setID; + + /// \brief The number of files that are in this set. + unsigned numberOfFilesInThisSet; + + /// \brief The total length of the transmitted files for this set, after being uncompressed + unsigned byteLengthOfThisSet; + + /// \brief The total length, in bytes, downloaded for this set. + unsigned bytesDownloadedForThisSet; + + /// \brief User data passed to one of the functions in the FileList class. + /// \details However, on error, this is instead changed to one of the enumerations in the PatchContext structure. + FileListNodeContext context; + + /// \brief Who sent this file + SystemAddress senderSystemAddress; + + /// \brief Who sent this file. Not valid when using TCP, only RakPeer (UDP) + RakNetGUID senderGuid; + }; + + // Note: If this structure is changed the struct in the swig files need to be changed as well + struct FileProgressStruct + { + /// \param[out] onFileStruct General information about this file, such as the filename and the first \a partLength bytes. You do NOT need to save this data yourself. The complete file will arrive normally. + OnFileStruct *onFileStruct; + /// \param[out] partCount The zero based index into partTotal. The percentage complete done of this file is 100 * (partCount+1)/partTotal + unsigned int partCount; + /// \param[out] partTotal The total number of parts this file was split into. Each part will be roughly the MTU size, minus the UDP header and RakNet headers + unsigned int partTotal; + /// \param[out] dataChunkLength How many bytes long firstDataChunk and iriDataChunk are + unsigned int dataChunkLength; + /// \param[out] firstDataChunk The first \a partLength of the final file. If you store identifying information about the file in the first \a partLength bytes, you can read them while the download is taking place. If this hasn't arrived yet, firstDataChunk will be 0 + char *firstDataChunk; + /// \param[out] iriDataChunk If the remote system is sending this file using IncrementalReadInterface, then this is the chunk we just downloaded. It will not exist in memory after this callback. You should either store this to disk, or in memory. If it is 0, then the file is smaller than one chunk, and will be held in memory automatically + char *iriDataChunk; + /// \param[out] iriWriteOffset Offset in bytes from the start of the file for the data pointed to by iriDataChunk + unsigned int iriWriteOffset; + /// \param[out] Who sent this file + SystemAddress senderSystemAddress; + /// \param[out] Who sent this file. Not valid when using TCP, only RakPeer (UDP) + RakNetGUID senderGuid; + /// \param[in] allocateIrIDataChunkAutomatically If true, then RakNet will hold iriDataChunk for you and return it in OnFile. Defaults to true + bool allocateIrIDataChunkAutomatically; + }; + + struct DownloadCompleteStruct + { + /// \brief Files are transmitted in sets, where more than one set of files can be transmitted at the same time. + /// \details This is the identifier for the set, which is returned by FileListTransfer::SetupReceive + unsigned short setID; + + /// \brief The number of files that are in this set. + unsigned numberOfFilesInThisSet; + + /// \brief The total length of the transmitted files for this set, after being uncompressed + unsigned byteLengthOfThisSet; + + /// \brief Who sent this file + SystemAddress senderSystemAddress; + + /// \brief Who sent this file. Not valid when using TCP, only RakPeer (UDP) + RakNetGUID senderGuid; + }; + + FileListTransferCBInterface() {} + virtual ~FileListTransferCBInterface() {} + + /// \brief Got a file. + /// \details This structure is only valid for the duration of this function call. + /// \return Return true to have RakNet delete the memory allocated to hold this file for this function call. + virtual bool OnFile(OnFileStruct *onFileStruct)=0; + + /// \brief Got part of a big file internally in RakNet + /// \details This is called in one of two circumstances: Either the transport layer is returning ID_PROGRESS_NOTIFICATION, or you got a block via IncrementalReadInterface + /// If the transport layer is returning ID_PROGRESS_NOTIFICATION (see RakPeer::SetSplitMessageProgressInterval()) then FileProgressStruct::iriDataChunk will be 0. + /// If this is a block via IncrementalReadInterface, then iriDataChunk will point to the block just downloaded. + /// If not using IncrementalReadInterface, then you only care about partCount and partTotal to tell how far the download has progressed. YOu can use firstDataChunk to read the first part of the file if desired. The file is usable when you get the OnFile callback. + /// If using IncrementalReadInterface and you let RakNet buffer the files in memory (default), then it is the same as above. The file is usable when you get the OnFile callback. + /// If using IncrementalReadInterface and you do not let RakNet buffer the files in memory, then set allocateIrIDataChunkAutomatically to false. Write the file to disk whenever you get OnFileProgress and iriDataChunk is not 0, and ignore OnFile. + virtual void OnFileProgress(FileProgressStruct *fps)=0; + + /// \brief Called while the handler is active by FileListTransfer + /// \details Return false when you are done with the class. + /// At that point OnDereference will be called and the class will no longer be maintained by the FileListTransfer plugin. + virtual bool Update(void) {return true;} + + /// \brief Called when the download is completed. + /// \details If you are finished with this class, return false. + /// At that point OnDereference will be called and the class will no longer be maintained by the FileListTransfer plugin. + /// Otherwise return true, and Update will continue to be called. + virtual bool OnDownloadComplete(DownloadCompleteStruct *dcs) {(void) dcs; return false;} + + /// \brief This function is called when this instance is about to be dereferenced by the FileListTransfer plugin. + /// \details Update will no longer be called. + /// It will will be deleted automatically if true was passed to FileListTransfer::SetupReceive::deleteHandler + /// Otherwise it is up to you to delete it yourself. + virtual void OnDereference(void) {} +}; + +} // namespace RakNet + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + diff --git a/src/raknet/FileOperations.cpp b/src/raknet/FileOperations.cpp new file mode 100755 index 0000000..93f6f31 --- /dev/null +++ b/src/raknet/FileOperations.cpp @@ -0,0 +1,173 @@ +#include "FileOperations.h" +#if _RAKNET_SUPPORT_FileOperations==1 +#include "RakMemoryOverride.h" +#include "_FindFirst.h" // For linux +#include +#include +#ifdef _WIN32 +// For mkdir +#include +#include +#else +#include +#include +#include "_FindFirst.h" +#endif +#include "errno.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +#ifdef _MSC_VER +#pragma warning( disable : 4966 ) // mkdir declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. +#endif +bool WriteFileWithDirectories( const char *path, char *data, unsigned dataLength ) +{ + int index; + FILE *fp; + char *pathCopy; + int res; + + if ( path == 0 || path[ 0 ] == 0 ) + return false; + + pathCopy = (char*) rakMalloc_Ex( strlen( path ) + 1, _FILE_AND_LINE_ ); + + strcpy( pathCopy, path ); + + // Ignore first / if there is one + if (pathCopy[0]) + { + index = 1; + while ( pathCopy[ index ] ) + { + if ( pathCopy[ index ] == '/' || pathCopy[ index ] == '\\') + { + pathCopy[ index ] = 0; + + #ifdef _WIN32 + #pragma warning( disable : 4966 ) // mkdir declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. + res = mkdir( pathCopy ); + #else + + res = mkdir( pathCopy, 0744 ); + #endif + if (res<0 && errno!=EEXIST && errno!=EACCES) + { + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + return false; + } + + pathCopy[ index ] = '/'; + } + + index++; + } + } + + if (data) + { + fp = fopen( path, "wb" ); + + if ( fp == 0 ) + { + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + return false; + } + + fwrite( data, 1, dataLength, fp ); + + fclose( fp ); + } + else + { +#ifdef _WIN32 +#pragma warning( disable : 4966 ) // mkdir declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated. + res = mkdir( pathCopy ); +#else + res = mkdir( pathCopy, 0744 ); +#endif + + if (res<0 && errno!=EEXIST) + { + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + return false; + } + } + + rakFree_Ex(pathCopy, _FILE_AND_LINE_ ); + + return true; +} +bool IsSlash(unsigned char c) +{ + return c=='/' || c=='\\'; +} + +void AddSlash( char *input ) +{ + if (input==0 || input[0]==0) + return; + + int lastCharIndex=(int) strlen(input)-1; + if (input[lastCharIndex]=='\\') + input[lastCharIndex]='/'; + else if (input[lastCharIndex]!='/') + { + input[lastCharIndex+1]='/'; + input[lastCharIndex+2]=0; + } +} +bool DirectoryExists(const char *directory) +{ + _finddata_t fileInfo; + intptr_t dir; + char baseDirWithStars[560]; + strcpy(baseDirWithStars, directory); + AddSlash(baseDirWithStars); + strcat(baseDirWithStars, "*.*"); + dir=_findfirst(baseDirWithStars, &fileInfo ); + if (dir==-1) + return false; + _findclose(dir); + return true; +} +void QuoteIfSpaces(char *str) +{ + unsigned i; + bool hasSpace=false; + for (i=0; str[i]; i++) + { + if (str[i]==' ') + { + hasSpace=true; + break; + } + } + if (hasSpace) + { + int len=(int)strlen(str); + memmove(str+1, str, len); + str[0]='\"'; + str[len]='\"'; + str[len+1]=0; + } +} +unsigned int GetFileLength(const char *path) +{ + FILE *fp = fopen(path, "rb"); + if (fp==0) return 0; + fseek(fp, 0, SEEK_END); + unsigned int fileLength = ftell(fp); + fclose(fp); + return fileLength; + +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_FileOperations + diff --git a/src/raknet/FileOperations.h b/src/raknet/FileOperations.h new file mode 100755 index 0000000..fc7be06 --- /dev/null +++ b/src/raknet/FileOperations.h @@ -0,0 +1,24 @@ +/// \file FileOperations.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FileOperations==1 + +#ifndef __FILE_OPERATIONS_H +#define __FILE_OPERATIONS_H + +#include "Export.h" + +bool RAK_DLL_EXPORT WriteFileWithDirectories( const char *path, char *data, unsigned dataLength ); +bool RAK_DLL_EXPORT IsSlash(unsigned char c); +void RAK_DLL_EXPORT AddSlash( char *input ); +void RAK_DLL_EXPORT QuoteIfSpaces(char *str); +bool RAK_DLL_EXPORT DirectoryExists(const char *directory); +unsigned int RAK_DLL_EXPORT GetFileLength(const char *path); + +#endif + +#endif // _RAKNET_SUPPORT_FileOperations diff --git a/src/raknet/FormatString.cpp b/src/raknet/FormatString.cpp new file mode 100755 index 0000000..f91ae31 --- /dev/null +++ b/src/raknet/FormatString.cpp @@ -0,0 +1,30 @@ +#include "FormatString.h" +#include +#include +#include +#include "LinuxStrings.h" + +char * FormatString(const char *format, ...) +{ + static int textIndex=0; + static char text[4][8096]; + va_list ap; + va_start(ap, format); + + if (++textIndex==4) + textIndex=0; + _vsnprintf(text[textIndex], 8096, format, ap); + va_end(ap); + text[textIndex][8096-1]=0; + + return text[textIndex]; +} + +char * FormatStringTS(char *output, const char *format, ...) +{ + va_list ap; + va_start(ap, format); + _vsnprintf(output, 512, format, ap); + va_end(ap); + return output; +} diff --git a/src/raknet/FormatString.h b/src/raknet/FormatString.h new file mode 100755 index 0000000..9badba8 --- /dev/null +++ b/src/raknet/FormatString.h @@ -0,0 +1,22 @@ +/// \file FormatString.h +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef __FORMAT_STRING_H +#define __FORMAT_STRING_H + +#include "Export.h" + +extern "C" { +char * FormatString(const char *format, ...); +} +// Threadsafe +extern "C" { +char * FormatStringTS(char *output, const char *format, ...); +} + + +#endif + diff --git a/src/raknet/FullyConnectedMesh2.cpp b/src/raknet/FullyConnectedMesh2.cpp new file mode 100755 index 0000000..fb9877e --- /dev/null +++ b/src/raknet/FullyConnectedMesh2.cpp @@ -0,0 +1,552 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FullyConnectedMesh2==1 + +#include "FullyConnectedMesh2.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakAssert.h" +#include "GetTime.h" +#include "Rand.h" +#include "DS_OrderedList.h" + +using namespace RakNet; + +int FCM2ParticipantComp( const FullyConnectedMesh2::FCM2Participant &key, const FullyConnectedMesh2::FCM2Participant &data ) +{ + if (key.fcm2Guid < data.fcm2Guid) + return -1; + if (key.fcm2Guid > data.fcm2Guid) + return 1; + return 0; +} + +STATIC_FACTORY_DEFINITIONS(FullyConnectedMesh2,FullyConnectedMesh2); + +FullyConnectedMesh2::FullyConnectedMesh2() +{ + startupTime=0; + totalConnectionCount=0; + ourFCMGuid=0; + autoParticipateConnections=true; + + + + + connectOnNewRemoteConnections=true; + + hostRakNetGuid=UNASSIGNED_RAKNET_GUID; +} +FullyConnectedMesh2::~FullyConnectedMesh2() +{ + Clear(); +} +RakNetGUID FullyConnectedMesh2::GetConnectedHost(void) const +{ + if (ourFCMGuid==0) + return UNASSIGNED_RAKNET_GUID; + return hostRakNetGuid; +} +SystemAddress FullyConnectedMesh2::GetConnectedHostAddr(void) const +{ + if (ourFCMGuid==0) + return UNASSIGNED_SYSTEM_ADDRESS; + return rakPeerInterface->GetSystemAddressFromGuid(hostRakNetGuid); +} +RakNetGUID FullyConnectedMesh2::GetHostSystem(void) const +{ + if (ourFCMGuid==0) + return rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + + return hostRakNetGuid; +} +bool FullyConnectedMesh2::IsHostSystem(void) const +{ + return GetHostSystem()==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +void FullyConnectedMesh2::GetHostOrder(DataStructures::List &hostList) +{ + hostList.Clear(true, _FILE_AND_LINE_); + + if (ourFCMGuid==0 || fcm2ParticipantList.Size()==0) + { + hostList.Push(rakPeerInterface->GetMyGUID(), _FILE_AND_LINE_); + return; + } + + FCM2Participant fcm2; + fcm2.fcm2Guid=ourFCMGuid; + fcm2.rakNetGuid=rakPeerInterface->GetMyGUID(); + + DataStructures::OrderedList olist; + olist.Insert(fcm2, fcm2, true, _FILE_AND_LINE_); + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + olist.Insert(fcm2ParticipantList[i], fcm2ParticipantList[i], true, _FILE_AND_LINE_); + + for (unsigned int i=0; i < olist.Size(); i++) + { + hostList.Push(olist[i].rakNetGuid, _FILE_AND_LINE_); + } +} +bool FullyConnectedMesh2::IsConnectedHost(void) const +{ + return GetConnectedHost()==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +void FullyConnectedMesh2::SetAutoparticipateConnections(bool b) +{ + autoParticipateConnections=b; +} +void FullyConnectedMesh2::ResetHostCalculation(void) +{ + hostRakNetGuid=UNASSIGNED_RAKNET_GUID; + startupTime=RakNet::GetTimeUS(); + totalConnectionCount=0; + ourFCMGuid=0; + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + SendFCMGuidRequest(fcm2ParticipantList[i].rakNetGuid); +} +bool FullyConnectedMesh2::AddParticipantInternal( RakNetGUID rakNetGuid, FCM2Guid theirFCMGuid ) +{ + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + { + if (fcm2ParticipantList[i].rakNetGuid==rakNetGuid) + { + if (theirFCMGuid!=0) + fcm2ParticipantList[i].fcm2Guid=theirFCMGuid; + return false; + } + } + + FCM2Participant participant; + participant.rakNetGuid=rakNetGuid; + participant.fcm2Guid=theirFCMGuid; + fcm2ParticipantList.Push(participant,_FILE_AND_LINE_); + + SendFCMGuidRequest(rakNetGuid); + + return true; +} +void FullyConnectedMesh2::AddParticipant( RakNetGUID rakNetGuid ) +{ + if (rakPeerInterface->GetConnectionState(rakPeerInterface->GetSystemAddressFromGuid(rakNetGuid))!=IS_CONNECTED) + { +#ifdef DEBUG_FCM2 + printf("AddParticipant to %s failed (not connected)\n", rakNetGuid.ToString()); +#endif + return; + } + + AddParticipantInternal(rakNetGuid,0); +} +void FullyConnectedMesh2::GetParticipantList(DataStructures::List &participantList) +{ + participantList.Clear(true, _FILE_AND_LINE_); + unsigned int i; + for (i=0; i < fcm2ParticipantList.Size(); i++) + participantList.Push(fcm2ParticipantList[i].rakNetGuid, _FILE_AND_LINE_); +} +PluginReceiveResult FullyConnectedMesh2::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_REMOTE_NEW_INCOMING_CONNECTION: + { + if (connectOnNewRemoteConnections) + ConnectToRemoteNewIncomingConnections(packet); + } + break; + case ID_FCM2_REQUEST_FCMGUID: + OnRequestFCMGuid(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_RESPOND_CONNECTION_COUNT: + OnRespondConnectionCount(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_INFORM_FCMGUID: + OnInformFCMGuid(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT: + OnUpdateMinTotalConnectionCount(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_FCM2_NEW_HOST: + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + break; + } + return RR_CONTINUE_PROCESSING; +} +void FullyConnectedMesh2::OnRakPeerStartup(void) +{ + Clear(); + startupTime=RakNet::GetTimeUS(); +} +void FullyConnectedMesh2::OnAttach(void) +{ + Clear(); + // In case Startup() was called first + if (rakPeerInterface->IsActive()) + startupTime=RakNet::GetTimeUS(); +} +void FullyConnectedMesh2::OnRakPeerShutdown(void) +{ + Clear(); + startupTime=0; +} +void FullyConnectedMesh2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + (void) rakNetGUID; + + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + { + if (fcm2ParticipantList[idx].rakNetGuid==rakNetGUID) + { + fcm2ParticipantList[idx]=fcm2ParticipantList[fcm2ParticipantList.Size()-1]; +#ifdef DEBUG_FCM2 + printf("Popping participant %s\n", fcm2ParticipantList[fcm2ParticipantList.Size()-1].rakNetGuid.ToString()); +#endif + + fcm2ParticipantList.Pop(); + if (rakNetGUID==hostRakNetGuid && ourFCMGuid!=0) + { + if (fcm2ParticipantList.Size()==0) + { + hostRakNetGuid=rakPeerInterface->GetMyGUID(); + hostFCM2Guid=ourFCMGuid; + } + else + { + CalculateHost(&hostRakNetGuid, &hostFCM2Guid); + } + PushNewHost(hostRakNetGuid, rakNetGUID); + } + return; + } + } + +} +RakNet::TimeUS FullyConnectedMesh2::GetElapsedRuntime(void) +{ + RakNet::TimeUS curTime=RakNet::GetTimeUS(); + if (curTime>startupTime) + return curTime-startupTime; + else + return 0; +} +void FullyConnectedMesh2::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) isIncoming; + (void) rakNetGUID; + (void) systemAddress; + + if (autoParticipateConnections) + AddParticipant(rakNetGUID); +} +void FullyConnectedMesh2::Clear(void) +{ + fcm2ParticipantList.Clear(false, _FILE_AND_LINE_); + + totalConnectionCount=0; + ourFCMGuid=0; + lastPushedHost=UNASSIGNED_RAKNET_GUID; +} +void FullyConnectedMesh2::PushNewHost(const RakNetGUID &guid, RakNetGUID oldHost) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(oldHost)); + RakNet::BitStream bs(p->data,p->length,false); + bs.SetWriteOffset(0); + bs.Write((MessageID)ID_FCM2_NEW_HOST); + bs.Write(oldHost); + p->systemAddress=rakPeerInterface->GetSystemAddressFromGuid(guid); + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=guid; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); + + lastPushedHost=guid; +} +void FullyConnectedMesh2::SendFCMGuidRequest(RakNetGUID rakNetGuid) +{ + if (rakNetGuid==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_REQUEST_FCMGUID); + if (ourFCMGuid==0) + { + bsOut.Write(false); + bsOut.Write(GetElapsedRuntime()); + } + else + { + bsOut.Write(true); + bsOut.Write(totalConnectionCount); + bsOut.Write(ourFCMGuid); + } + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,rakNetGuid,false); +} +void FullyConnectedMesh2::SendOurFCMGuid(SystemAddress addr) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_INFORM_FCMGUID); + RakAssert(ourFCMGuid!=0); // Can't inform others of our FCM2Guid if it's unset! + bsOut.Write(ourFCMGuid); + bsOut.Write(totalConnectionCount); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,addr,false); +} +void FullyConnectedMesh2::SendConnectionCountResponse(SystemAddress addr, unsigned int responseTotalConnectionCount) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_RESPOND_CONNECTION_COUNT); + bsOut.Write(responseTotalConnectionCount); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,addr,false); +} +void FullyConnectedMesh2::AssignOurFCMGuid(void) +{ + // Only assigned once ever + RakAssert(ourFCMGuid==0); + unsigned int randomNumber = randomMT(); + randomNumber ^= (unsigned int) (RakNet::GetTimeUS() & 0xFFFFFFFF); + randomNumber ^= (unsigned int) (rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS).g & 0xFFFFFFFF); + ourFCMGuid |= randomNumber; + uint64_t reponse64 = totalConnectionCount; + ourFCMGuid |= reponse64<<32; +} +void FullyConnectedMesh2::CalculateHost(RakNetGUID *rakNetGuid, FCM2Guid *fcm2Guid) +{ + // Can't calculate host without knowing our own + RakAssert(ourFCMGuid!=0); + + // Can't calculate host without being connected to anyone else + RakAssert(fcm2ParticipantList.Size()>0); + + // Return the lowest value of all FCM2Guid + FCM2Guid lowestFCMGuid=ourFCMGuid; + // SystemAddress associatedSystemAddress=UNASSIGNED_SYSTEM_ADDRESS; + RakNetGUID associatedRakNetGuid=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + { + if (fcm2ParticipantList[idx].fcm2Guid!=0 && fcm2ParticipantList[idx].fcm2Guiddata,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bool hasRemoteFCMGuid=false; + bsIn.Read(hasRemoteFCMGuid); + RakNet::TimeUS senderElapsedRuntime=0; + unsigned int remoteTotalConnectionCount=0; + FCM2Guid theirFCMGuid=0; + if (hasRemoteFCMGuid) + { + bsIn.Read(remoteTotalConnectionCount); + bsIn.Read(theirFCMGuid); + } + else + { + bsIn.Read(senderElapsedRuntime); + } + AddParticipantInternal(packet->guid,theirFCMGuid); + if (ourFCMGuid==0) + { + if (hasRemoteFCMGuid==false) + { + // Nobody has a fcmGuid + + RakNet::TimeUS ourElapsedRuntime = GetElapsedRuntime(); + if (ourElapsedRuntime>senderElapsedRuntime) + { + // We are probably host + SendConnectionCountResponse(packet->systemAddress, 2); + } + else + { + // They are probably host + SendConnectionCountResponse(packet->systemAddress, 1); + } + } + else + { + // They have a fcmGuid, we do not + IncrementTotalConnectionCount(remoteTotalConnectionCount+1); + + AssignOurFCMGuid(); + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + SendOurFCMGuid(rakPeerInterface->GetSystemAddressFromGuid(fcm2ParticipantList[idx].rakNetGuid)); + } + } + else + { + if (hasRemoteFCMGuid==false) + { + // We have a fcmGuid they do not + SendConnectionCountResponse(packet->systemAddress, totalConnectionCount+1); + } + else + { + // We both have fcmGuids + IncrementTotalConnectionCount(remoteTotalConnectionCount); + + SendOurFCMGuid(packet->systemAddress); + } + } + CalculateAndPushHost(); +} +void FullyConnectedMesh2::OnRespondConnectionCount(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + unsigned int responseTotalConnectionCount; + bsIn.Read(responseTotalConnectionCount); + IncrementTotalConnectionCount(responseTotalConnectionCount); + bool wasAssigned; + if (ourFCMGuid==0) + { + wasAssigned=true; + AssignOurFCMGuid(); + } + else + wasAssigned=false; + + // 1 is returned to give us lower priority, but the actual minimum is 2 + IncrementTotalConnectionCount(2); + + if (wasAssigned==true) + { + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + SendOurFCMGuid(rakPeerInterface->GetSystemAddressFromGuid(fcm2ParticipantList[idx].rakNetGuid)); + CalculateAndPushHost(); + } +} +void FullyConnectedMesh2::OnInformFCMGuid(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + + FCM2Guid theirFCMGuid; + unsigned int theirTotalConnectionCount; + bsIn.Read(theirFCMGuid); + bsIn.Read(theirTotalConnectionCount); + IncrementTotalConnectionCount(theirTotalConnectionCount); + + if (AddParticipantInternal(packet->guid,theirFCMGuid)) + { + // 1/19/2010 - Relay increased total connection count in case new participant only connects to part of the mesh + unsigned int idx; + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT); + bsOut.Write(totalConnectionCount); + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + { + if (packet->guid!=fcm2ParticipantList[idx].rakNetGuid) + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,fcm2ParticipantList[idx].rakNetGuid,false); + } + } + + if (ourFCMGuid==0) + { + AssignOurFCMGuid(); + unsigned int idx; + for (idx=0; idx < fcm2ParticipantList.Size(); idx++) + SendOurFCMGuid(rakPeerInterface->GetSystemAddressFromGuid(fcm2ParticipantList[idx].rakNetGuid)); + } + + CalculateAndPushHost(); +} +void FullyConnectedMesh2::OnUpdateMinTotalConnectionCount(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + unsigned int newMin; + bsIn.Read(newMin); + IncrementTotalConnectionCount(newMin); +} +void FullyConnectedMesh2::GetParticipantCount(unsigned int *participantListSize) const +{ + *participantListSize=fcm2ParticipantList.Size(); +} + +unsigned int FullyConnectedMesh2::GetParticipantCount(void) const +{ + return fcm2ParticipantList.Size(); +} +void FullyConnectedMesh2::CalculateAndPushHost(void) +{ + RakNetGUID newHostGuid; + FCM2Guid newFcmGuid; + if (ParticipantListComplete()) + { + CalculateHost(&newHostGuid, &newFcmGuid); + if (newHostGuid!=lastPushedHost) + { + hostRakNetGuid=newHostGuid; + hostFCM2Guid=newFcmGuid; + PushNewHost(hostRakNetGuid, hostRakNetGuid); + } + } +} +bool FullyConnectedMesh2::ParticipantListComplete(void) +{ + for (unsigned int i=0; i < fcm2ParticipantList.Size(); i++) + { + if (fcm2ParticipantList[i].fcm2Guid==0) + return false; + } + return true; +} +void FullyConnectedMesh2::IncrementTotalConnectionCount(unsigned int i) +{ + if (i>totalConnectionCount) + { + totalConnectionCount=i; + // printf("totalConnectionCount=%i\n",i); + } +} +void FullyConnectedMesh2::SetConnectOnNewRemoteConnection(bool attemptConnection, RakNet::RakString pw) +{ + connectOnNewRemoteConnections=attemptConnection; + connectionPassword=pw; +} + +void FullyConnectedMesh2::ConnectToRemoteNewIncomingConnections(Packet *packet) +{ + unsigned int count; + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bsIn.Read(count); + SystemAddress remoteAddress; + RakNetGUID remoteGuid; + char str[64]; + for (unsigned int i=0; i < count; i++) + { + bsIn.Read(remoteAddress); + bsIn.Read(remoteGuid); + remoteAddress.ToString(false,str); + rakPeerInterface->Connect(str,remoteAddress.GetPort(),connectionPassword.C_String(),(int) connectionPassword.GetLength()); + } +} +unsigned int FullyConnectedMesh2::GetTotalConnectionCount(void) const +{ + return totalConnectionCount; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/FullyConnectedMesh2.h b/src/raknet/FullyConnectedMesh2.h new file mode 100755 index 0000000..f3859ea --- /dev/null +++ b/src/raknet/FullyConnectedMesh2.h @@ -0,0 +1,253 @@ +/// \file FullyConnectedMesh2.h +/// \brief Fully connected mesh plugin, revision 2. +/// \details This will connect RakPeer to all connecting peers, and all peers the connecting peer knows about. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_FullyConnectedMesh2==1 + +#ifndef __FULLY_CONNECTED_MESH_2_H +#define __FULLY_CONNECTED_MESH_2_H + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "DS_List.h" +#include "RakString.h" + +typedef int64_t FCM2Guid; + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief Fully connected mesh plugin, revision 2 +/// \details This will connect RakPeer to all connecting peers, and all peers the connecting peer knows about.
    +/// It will also calculate which system has been running longest, to find out who should be host, if you need one system to act as a host +/// \pre You must also install the ConnectionGraph2 plugin in order to use SetConnectOnNewRemoteConnection() +/// \ingroup FULLY_CONNECTED_MESH_GROUP +class RAK_DLL_EXPORT FullyConnectedMesh2 : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(FullyConnectedMesh2) + + FullyConnectedMesh2(); + virtual ~FullyConnectedMesh2(); + + /// When the message ID_REMOTE_NEW_INCOMING_CONNECTION arrives, we try to connect to that system + /// If \a attemptConnection is false, you can manually connect to all systems listed in ID_REMOTE_NEW_INCOMING_CONNECTION with ConnectToRemoteNewIncomingConnections() + /// \note This will not work on any console. It will also not work if NAT punchthrough is needed. Generally, this should be false and you should connect manually. It is here for legacy reasons. + /// \param[in] attemptConnection If true, we try to connect to any systems we are notified about with ID_REMOTE_NEW_INCOMING_CONNECTION, which comes from the ConnectionGraph2 plugin. Defaults to true. + /// \param[in] pw The password to use to connect with. Only used if \a attemptConnection is true + void SetConnectOnNewRemoteConnection(bool attemptConnection, RakNet::RakString pw); + + /// \brief The connected host is whichever system we are connected to that has been running the longest. + /// \details Will return UNASSIGNED_RAKNET_GUID if we are not connected to anyone, or if we are connected and are calculating the host + /// If includeCalculating is true, will return the estimated calculated host as long as the calculation is nearly complete + /// includeCalculating should be true if you are taking action based on another system becoming host, because not all host calculations may complete at the exact same time + /// \sa ConnectionGraph2::GetLowestAveragePingSystem() . If you need one system in the peer to peer group to relay data, have the host call this function after host migration, and use that system + /// \return System address of whichever system is host. + RakNetGUID GetConnectedHost(void) const; + SystemAddress GetConnectedHostAddr(void) const; + + /// \return System address of whichever system is host. Always returns something, even though it may be our own system. + RakNetGUID GetHostSystem(void) const; + + /// \return If our system is host + bool IsHostSystem(void) const; + + /// Get the list of connected systems, from oldest connected to newest + /// This is also the order that the hosts will be chosen in + void GetHostOrder(DataStructures::List &hostList); + + /// \param[in] includeCalculating If true, and we are currently calculating a new host, return the new host if the calculation is nearly complete + /// \return If our system is host + bool IsConnectedHost(void) const; + + /// \brief Automatically add new connections to the fully connected mesh. + /// Each remote system that you want to check should be added as a participant, either through SetAutoparticipateConnections() or by calling this function + /// \details Defaults to true. + /// \param[in] b As stated + void SetAutoparticipateConnections(bool b); + + /// Clear our own host order, and recalculate as if we had just reconnected + /// Call this to reset the running time of the host just before joining/creating a game room for networking + void ResetHostCalculation(void); + + /// \brief if SetAutoparticipateConnections() is called with false, then you need to use AddParticipant before these systems will be added to the mesh + /// FullyConnectedMesh2 will track who is the who host among a fully connected mesh of participants + /// Each remote system that you want to check should be added as a participant, either through SetAutoparticipateConnections() or by calling this function + /// \param[in] participant The new participant + void AddParticipant(RakNetGUID rakNetGuid); + + /// Get the participants added with AddParticipant() + /// \param[out] participantList Participants added with AddParticipant(); + void GetParticipantList(DataStructures::List &participantList); + + /// Connect to all systems from ID_REMOTE_NEW_INCOMING_CONNECTION + /// You can call this if SetConnectOnNewRemoteConnection is false + /// \param[in] packet The packet containing ID_REMOTE_NEW_INCOMING_CONNECTION + /// \param[in] connectionPassword Password passed to RakPeerInterface::Connect() + /// \param[in] connectionPasswordLength Password length passed to RakPeerInterface::Connect() + void ConnectToRemoteNewIncomingConnections(Packet *packet); + + /// \brief Clear all memory and reset everything + void Clear(void); + + unsigned int GetParticipantCount(void) const; + void GetParticipantCount(unsigned int *participantListSize) const; + /// \internal + RakNet::TimeUS GetElapsedRuntime(void); + + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnRakPeerStartup(void); + /// \internal + virtual void OnAttach(void); + /// \internal + virtual void OnRakPeerShutdown(void); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + + /// \internal + struct FCM2Participant + { + FCM2Participant() {} + FCM2Participant(const FCM2Guid &_fcm2Guid, const RakNetGUID &_rakNetGuid) : fcm2Guid(_fcm2Guid), rakNetGuid(_rakNetGuid) {} + + // Low half is a random number. + // High half is the order we connected in (totalConnectionCount) + FCM2Guid fcm2Guid; + RakNetGUID rakNetGuid; + }; + + /// \internal for debugging + unsigned int GetTotalConnectionCount(void) const; + +protected: + void PushNewHost(const RakNetGUID &guid, RakNetGUID oldHost); + void SendOurFCMGuid(SystemAddress addr); + void SendFCMGuidRequest(RakNetGUID rakNetGuid); + void SendConnectionCountResponse(SystemAddress addr, unsigned int responseTotalConnectionCount); + void OnRequestFCMGuid(Packet *packet); + void OnRespondConnectionCount(Packet *packet); + void OnInformFCMGuid(Packet *packet); + void OnUpdateMinTotalConnectionCount(Packet *packet); + void AssignOurFCMGuid(void); + void CalculateHost(RakNetGUID *rakNetGuid, FCM2Guid *fcm2Guid); + bool AddParticipantInternal( RakNetGUID rakNetGuid, FCM2Guid theirFCMGuid ); + void CalculateAndPushHost(void); + bool ParticipantListComplete(void); + void IncrementTotalConnectionCount(unsigned int i); + + // Used to track how long RakNet has been running. This is so we know who has been running longest + RakNet::TimeUS startupTime; + + // Option for SetAutoparticipateConnections + bool autoParticipateConnections; + + // totalConnectionCount is roughly maintained across all systems, and increments by 1 each time a new system connects to the mesh + // It is always kept at the highest known value + // It is used as the high 4 bytes for new FCMGuids. This causes newer values of FCM2Guid to be higher than lower values. The lowest value is the host. + unsigned int totalConnectionCount; + + // Our own ourFCMGuid. Starts at unassigned (0). Assigned once we send ID_FCM2_REQUEST_FCMGUID and get back ID_FCM2_RESPOND_CONNECTION_COUNT + FCM2Guid ourFCMGuid; + + /// List of systems we know the FCM2Guid for + DataStructures::List fcm2ParticipantList; + + RakNetGUID lastPushedHost; + + // Optimization: Store last calculated host in these variables. + RakNetGUID hostRakNetGuid; + FCM2Guid hostFCM2Guid; + + RakNet::RakString connectionPassword; + bool connectOnNewRemoteConnections; +}; + +} // namespace RakNet + +/* +Startup() +ourFCMGuid=unknown +totalConnectionCount=0 +Set startupTime + +AddParticipant() +if (sender by guid is a participant) +return; +AddParticipantInternal(guid); +if (ourFCMGuid==unknown) +Send to that system a request for their fcmGuid, totalConnectionCount. Inform startupTime. +else +Send to that system a request for their fcmGuid. Inform total connection count, our fcmGuid + +OnRequestGuid() +if (sender by guid is not a participant) +{ + // They added us as a participant, but we didn't add them. This can be caused by lag where both participants are not added at the same time. + // It doesn't affect the outcome as long as we still process the data + AddParticipantInternal(guid); +} +if (ourFCMGuid==unknown) +{ + if (includedStartupTime) + { + // Nobody has a fcmGuid + + if (their startup time is greater than our startup time) + ReplyConnectionCount(1); + else + ReplyConnectionCount(2); + } + else + { + // They have a fcmGuid, we do not + + SetMaxTotalConnectionCount(remoteCount); + AssignTheirGuid() + GenerateOurGuid(); + SendOurGuid(all); + } +} +else +{ + if (includedStartupTime) + { + // We have a fcmGuid they do not + + ReplyConnectionCount(totalConnectionCount+1); + SendOurGuid(sender); + } + else + { + // We both have fcmGuids + + SetMaxTotalConnectionCount(remoteCount); + AssignTheirGuid(); + SendOurGuid(sender); + } +} + +OnReplyConnectionCount() +SetMaxTotalConnectionCount(remoteCount); +GenerateOurGuid(); +SendOurGuid(allParticipants); + +OnReceiveTheirGuid() +AssignTheirGuid() +*/ + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/GetTime.cpp b/src/raknet/GetTime.cpp new file mode 100755 index 0000000..4f868f8 --- /dev/null +++ b/src/raknet/GetTime.cpp @@ -0,0 +1,220 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#if defined(_WIN32) +#include "WindowsIncludes.h" +// To call timeGetTime +// on Code::Blocks, this needs to be libwinmm.a instead +#pragma comment(lib, "Winmm.lib") +#endif + +#include "GetTime.h" + + + + +#if defined(_WIN32) +DWORD mProcMask; +DWORD mSysMask; +HANDLE mThread; + + + + + + + + + +#else +#include +#include +RakNet::TimeUS initialTime; +#endif + +static bool initialized=false; + +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +#include "SimpleMutex.h" +RakNet::TimeUS lastNormalizedReturnedValue=0; +RakNet::TimeUS lastNormalizedInputValue=0; +/// This constraints timer forward jumps to 1 second, and does not let it jump backwards +/// See http://support.microsoft.com/kb/274323 where the timer can sometimes jump forward by hours or days +/// This also has the effect where debugging a sending system won't treat the time spent halted past 1 second as elapsed network time +RakNet::TimeUS NormalizeTime(RakNet::TimeUS timeIn) +{ + RakNet::TimeUS diff, lastNormalizedReturnedValueCopy; + static RakNet::SimpleMutex mutex; + + mutex.Lock(); + if (timeIn>=lastNormalizedInputValue) + { + diff = timeIn-lastNormalizedInputValue; + if (diff > GET_TIME_SPIKE_LIMIT) + lastNormalizedReturnedValue+=GET_TIME_SPIKE_LIMIT; + else + lastNormalizedReturnedValue+=diff; + } + else + lastNormalizedReturnedValue+=GET_TIME_SPIKE_LIMIT; + + lastNormalizedInputValue=timeIn; + lastNormalizedReturnedValueCopy=lastNormalizedReturnedValue; + mutex.Unlock(); + + return lastNormalizedReturnedValueCopy; +} +#endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +RakNet::Time RakNet::GetTime( void ) +{ + return (RakNet::Time)(GetTimeUS()/1000); +} +RakNet::TimeMS RakNet::GetTimeMS( void ) +{ + return (RakNet::TimeMS)(GetTimeUS()/1000); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if defined(_WIN32) +RakNet::TimeUS GetTimeUS_Windows( void ) +{ + if ( initialized == false) + { + initialized = true; + + // Save the current process +#if !defined(_WIN32_WCE) + HANDLE mProc = GetCurrentProcess(); + + // Get the current Affinity +#if _MSC_VER >= 1400 && defined (_M_X64) + GetProcessAffinityMask(mProc, (PDWORD_PTR)&mProcMask, (PDWORD_PTR)&mSysMask); +#else + GetProcessAffinityMask(mProc, &mProcMask, &mSysMask); +#endif + mThread = GetCurrentThread(); + +#endif // _WIN32_WCE + } + + // 9/26/2010 In China running LuDaShi, QueryPerformanceFrequency has to be called every time because CPU clock speeds can be different + RakNet::TimeUS curTime; + LARGE_INTEGER PerfVal; + LARGE_INTEGER yo1; + + QueryPerformanceFrequency( &yo1 ); + QueryPerformanceCounter( &PerfVal ); + + __int64 quotient, remainder; + quotient=((PerfVal.QuadPart) / yo1.QuadPart); + remainder=((PerfVal.QuadPart) % yo1.QuadPart); + curTime = (RakNet::TimeUS) quotient*(RakNet::TimeUS)1000000 + (remainder*(RakNet::TimeUS)1000000 / yo1.QuadPart); + +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 + return NormalizeTime(curTime); +#else + return curTime; +#endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +} +#elif defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) +RakNet::TimeUS GetTimeUS_Linux( void ) +{ + timeval tp; + if ( initialized == false) + { + gettimeofday( &tp, 0 ); + initialized=true; + // I do this because otherwise RakNet::Time in milliseconds won't work as it will underflow when dividing by 1000 to do the conversion + initialTime = ( tp.tv_sec ) * (RakNet::TimeUS) 1000000 + ( tp.tv_usec ); + } + + // GCC + RakNet::TimeUS curTime; + gettimeofday( &tp, 0 ); + + curTime = ( tp.tv_sec ) * (RakNet::TimeUS) 1000000 + ( tp.tv_usec ); + +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 + return NormalizeTime(curTime - initialTime); +#else + return curTime - initialTime; +#endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 +} +#endif + +RakNet::TimeUS RakNet::GetTimeUS( void ) +{ + + + + + + +#if defined(_WIN32) + return GetTimeUS_Windows(); +#else + return GetTimeUS_Linux(); +#endif +} +bool RakNet::GreaterThan(RakNet::Time a, RakNet::Time b) +{ + // a > b? + const RakNet::Time halfSpan =(RakNet::Time) (((RakNet::Time)(const RakNet::Time)-1)/(RakNet::Time)2); + return b!=a && b-a>halfSpan; +} +bool RakNet::LessThan(RakNet::Time a, RakNet::Time b) +{ + // a < b? + const RakNet::Time halfSpan = ((RakNet::Time)(const RakNet::Time)-1)/(RakNet::Time)2; + return b!=a && b-a b? + extern RAK_DLL_EXPORT bool GreaterThan(RakNet::Time a, RakNet::Time b); + /// a < b? + extern RAK_DLL_EXPORT bool LessThan(RakNet::Time a, RakNet::Time b); +} + +#endif diff --git a/src/raknet/Getche.cpp b/src/raknet/Getche.cpp new file mode 100755 index 0000000..c6b6e21 --- /dev/null +++ b/src/raknet/Getche.cpp @@ -0,0 +1,27 @@ + + +#if defined(_WIN32) +#include /* getche() */ +#elif defined(__S3E__) + +#else + +#include "Getche.h" + +char getche() +{ + + + struct termios oldt, + newt; + char ch; + tcgetattr( STDIN_FILENO, &oldt ); + newt = oldt; + newt.c_lflag &= ~( ICANON | ECHO ); + tcsetattr( STDIN_FILENO, TCSANOW, &newt ); + ch = getchar(); + tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); + return ch; + +} +#endif diff --git a/src/raknet/Getche.h b/src/raknet/Getche.h new file mode 100755 index 0000000..70326d9 --- /dev/null +++ b/src/raknet/Getche.h @@ -0,0 +1,11 @@ + + +#if defined(_WIN32) +#include /* getche() */ + +#else +#include +#include +#include +char getche(); +#endif diff --git a/src/raknet/Gets.cpp b/src/raknet/Gets.cpp new file mode 100755 index 0000000..2ff468a --- /dev/null +++ b/src/raknet/Gets.cpp @@ -0,0 +1,25 @@ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +char * Gets ( char * str, int num ) +{ + fgets(str, num, stdin); + if (str[0]=='\n' || str[0]=='\r') + str[0]=0; + + size_t len=strlen(str); + if (len>0 && (str[len-1]=='\n' || str[len-1]=='\r')) + str[len-1]=0; + if (len>1 && (str[len-2]=='\n' || str[len-2]=='\r')) + str[len-2]=0; + + return str; +} + +#ifdef __cplusplus +} +#endif diff --git a/src/raknet/Gets.h b/src/raknet/Gets.h new file mode 100755 index 0000000..78bcb6d --- /dev/null +++ b/src/raknet/Gets.h @@ -0,0 +1,14 @@ +#ifndef __GETS__H_ +#define __GETS__H_ + +#ifdef __cplusplus +extern "C" { +#endif + +char * Gets ( char * str, int num ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/raknet/GridSectorizer.cpp b/src/raknet/GridSectorizer.cpp new file mode 100755 index 0000000..1fafc30 --- /dev/null +++ b/src/raknet/GridSectorizer.cpp @@ -0,0 +1,191 @@ +#include "RakAssert.h" +#include "GridSectorizer.h" +//#include +#include + +GridSectorizer::GridSectorizer() +{ + grid=0; +} +GridSectorizer::~GridSectorizer() +{ + if (grid) + RakNet::OP_DELETE_ARRAY(grid, _FILE_AND_LINE_); +} +void GridSectorizer::Init(const float _maxCellWidth, const float _maxCellHeight, const float minX, const float minY, const float maxX, const float maxY) +{ + RakAssert(_maxCellWidth > 0.0f && _maxCellHeight > 0.0f); + if (grid) + RakNet::OP_DELETE_ARRAY(grid, _FILE_AND_LINE_); + + cellOriginX=minX; + cellOriginY=minY; + gridWidth=maxX-minX; + gridHeight=maxY-minY; + gridCellWidthCount=(int) ceil(gridWidth/_maxCellWidth); + gridCellHeightCount=(int) ceil(gridHeight/_maxCellHeight); + // Make the cells slightly smaller, so we allocate an extra unneeded cell if on the edge. This way we don't go outside the array on rounding errors. + cellWidth=gridWidth/gridCellWidthCount; + cellHeight=gridHeight/gridCellHeightCount; + invCellWidth = 1.0f / cellWidth; + invCellHeight = 1.0f / cellHeight; + +#ifdef _USE_ORDERED_LIST + grid = RakNet::OP_NEW>(gridCellWidthCount*gridCellHeightCount, _FILE_AND_LINE_ ); + DataStructures::OrderedList::IMPLEMENT_DEFAULT_COMPARISON(); +#else + grid = RakNet::OP_NEW_ARRAY >(gridCellWidthCount*gridCellHeightCount, _FILE_AND_LINE_ ); +#endif +} +void GridSectorizer::AddEntry(void *entry, const float minX, const float minY, const float maxX, const float maxY) +{ + RakAssert(cellWidth>0.0f); + RakAssert(minX < maxX && minY < maxY); + + int xStart, yStart, xEnd, yEnd, xCur, yCur; + xStart=WorldToCellXOffsetAndClamped(minX); + yStart=WorldToCellYOffsetAndClamped(minY); + xEnd=WorldToCellXOffsetAndClamped(maxX); + yEnd=WorldToCellYOffsetAndClamped(maxY); + + for (xCur=xStart; xCur <= xEnd; ++xCur) + { + for (yCur=yStart; yCur <= yEnd; ++yCur) + { +#ifdef _USE_ORDERED_LIST + grid[yCur*gridCellWidthCount+xCur].Insert(entry,entry, true); +#else + grid[yCur*gridCellWidthCount+xCur].Insert(entry, _FILE_AND_LINE_); +#endif + } + } +} +#ifdef _USE_ORDERED_LIST +void GridSectorizer::RemoveEntry(void *entry, const float minX, const float minY, const float maxX, const float maxY) +{ + RakAssert(cellWidth>0.0f); + RakAssert(minX <= maxX && minY <= maxY); + + int xStart, yStart, xEnd, yEnd, xCur, yCur; + xStart=WorldToCellXOffsetAndClamped(minX); + yStart=WorldToCellYOffsetAndClamped(minY); + xEnd=WorldToCellXOffsetAndClamped(maxX); + yEnd=WorldToCellYOffsetAndClamped(maxY); + + for (xCur=xStart; xCur <= xEnd; ++xCur) + { + for (yCur=yStart; yCur <= yEnd; ++yCur) + { + grid[yCur*gridCellWidthCount+xCur].RemoveIfExists(entry); + } + } +} +void GridSectorizer::MoveEntry(void *entry, const float sourceMinX, const float sourceMinY, const float sourceMaxX, const float sourceMaxY, + const float destMinX, const float destMinY, const float destMaxX, const float destMaxY) +{ + RakAssert(cellWidth>0.0f); + RakAssert(sourceMinX < sourceMaxX && sourceMinY < sourceMaxY); + RakAssert(destMinX < destMaxX && destMinY < destMaxY); + + if (PositionCrossesCells(sourceMinX, sourceMinY, destMinX, destMinY)==false && + PositionCrossesCells(destMinX, destMinY, destMinX, destMinY)==false) + return; + + int xStartSource, yStartSource, xEndSource, yEndSource; + int xStartDest, yStartDest, xEndDest, yEndDest; + int xCur, yCur; + xStartSource=WorldToCellXOffsetAndClamped(sourceMinX); + yStartSource=WorldToCellYOffsetAndClamped(sourceMinY); + xEndSource=WorldToCellXOffsetAndClamped(sourceMaxX); + yEndSource=WorldToCellYOffsetAndClamped(sourceMaxY); + + xStartDest=WorldToCellXOffsetAndClamped(destMinX); + yStartDest=WorldToCellYOffsetAndClamped(destMinY); + xEndDest=WorldToCellXOffsetAndClamped(destMaxX); + yEndDest=WorldToCellYOffsetAndClamped(destMaxY); + + // Remove source that is not in dest + for (xCur=xStartSource; xCur <= xEndSource; ++xCur) + { + for (yCur=yStartSource; yCur <= yEndSource; ++yCur) + { + if (xCur < xStartDest || xCur > xEndDest || + yCur < yStartDest || yCur > yEndDest) + { + grid[yCur*gridCellWidthCount+xCur].RemoveIfExists(entry); + } + } + } + + // Add dest that is not in source + for (xCur=xStartDest; xCur <= xEndDest; ++xCur) + { + for (yCur=yStartDest; yCur <= yEndDest; ++yCur) + { + if (xCur < xStartSource || xCur > xEndSource || + yCur < yStartSource || yCur > yEndSource) + { + grid[yCur*gridCellWidthCount+xCur].Insert(entry,entry, true); + } + } + } +} +#endif +void GridSectorizer::GetEntries(DataStructures::List& intersectionList, const float minX, const float minY, const float maxX, const float maxY) +{ +#ifdef _USE_ORDERED_LIST + DataStructures::OrderedList* cell; +#else + DataStructures::List* cell; +#endif + int xStart, yStart, xEnd, yEnd, xCur, yCur; + unsigned index; + xStart=WorldToCellXOffsetAndClamped(minX); + yStart=WorldToCellYOffsetAndClamped(minY); + xEnd=WorldToCellXOffsetAndClamped(maxX); + yEnd=WorldToCellYOffsetAndClamped(maxY); + + intersectionList.Clear(true, _FILE_AND_LINE_); + for (xCur=xStart; xCur <= xEnd; ++xCur) + { + for (yCur=yStart; yCur <= yEnd; ++yCur) + { + cell = grid+yCur*gridCellWidthCount+xCur; + for (index=0; index < cell->Size(); ++index) + intersectionList.Insert(cell->operator [](index), _FILE_AND_LINE_); + } + } +} +bool GridSectorizer::PositionCrossesCells(const float originX, const float originY, const float destinationX, const float destinationY) const +{ + return originX/cellWidth!=destinationX/cellWidth || originY/cellHeight!=destinationY/cellHeight; +} +int GridSectorizer::WorldToCellX(const float input) const +{ + return (int)((input-cellOriginX)*invCellWidth); +} +int GridSectorizer::WorldToCellY(const float input) const +{ + return (int)((input-cellOriginY)*invCellHeight); +} +int GridSectorizer::WorldToCellXOffsetAndClamped(const float input) const +{ + int cell=WorldToCellX(input); + cell = cell > 0 ? cell : 0; // __max(cell,0); + cell = gridCellWidthCount-1 < cell ? gridCellWidthCount-1 : cell; // __min(gridCellWidthCount-1, cell); + return cell; +} +int GridSectorizer::WorldToCellYOffsetAndClamped(const float input) const +{ + int cell=WorldToCellY(input); + cell = cell > 0 ? cell : 0; // __max(cell,0); + cell = gridCellHeightCount-1 < cell ? gridCellHeightCount-1 : cell; // __min(gridCellHeightCount-1, cell); + return cell; +} +void GridSectorizer::Clear(void) +{ + int cur; + int count = gridCellWidthCount*gridCellHeightCount; + for (cur=0; cur& intersectionList, const float minX, const float minY, const float maxX, const float maxY); + + void Clear(void); + +protected: + int WorldToCellX(const float input) const; + int WorldToCellY(const float input) const; + int WorldToCellXOffsetAndClamped(const float input) const; + int WorldToCellYOffsetAndClamped(const float input) const; + + // Returns true or false if a position crosses cells in the grid. If false, you don't need to move entries + bool PositionCrossesCells(const float originX, const float originY, const float destinationX, const float destinationY) const; + + float cellOriginX, cellOriginY; + float cellWidth, cellHeight; + float invCellWidth, invCellHeight; + float gridWidth, gridHeight; + int gridCellWidthCount, gridCellHeightCount; + + + // int gridWidth, gridHeight; + +#ifdef _USE_ORDERED_LIST + DataStructures::OrderedList* grid; +#else + DataStructures::List* grid; +#endif +}; + +#endif diff --git a/src/raknet/HTTPConnection.cpp b/src/raknet/HTTPConnection.cpp new file mode 100755 index 0000000..dd541fb --- /dev/null +++ b/src/raknet/HTTPConnection.cpp @@ -0,0 +1,313 @@ +/// \file +/// \brief Contains HTTPConnection, used to communicate with web servers +/// +/// This file is part of RakNet Copyright 2008 Kevin Jenkins. +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_HTTPConnection==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "TCPInterface.h" +#include "HTTPConnection.h" +#include "RakSleep.h" +#include "RakString.h" +#include "RakAssert.h" +#include +#include +#include +#include + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(HTTPConnection,HTTPConnection); + +HTTPConnection::HTTPConnection() : connectionState(CS_NONE) +{ + tcp=0; +} + +void HTTPConnection::Init(TCPInterface* _tcp, const char *_host, unsigned short _port) +{ + tcp=_tcp; + host=_host; + port=_port; +} + +void HTTPConnection::Post(const char *remote_path, const char *data, const char *_contentType) +{ + OutgoingCommand op; + op.contentType=_contentType; + op.data=data; + op.remotePath=remote_path; + op.isPost=true; + outgoingCommand.Push(op, _FILE_AND_LINE_ ); + //printf("Adding outgoing post\n"); +} + +void HTTPConnection::Get(const char *path) +{ + OutgoingCommand op; + op.remotePath=path; + op.isPost=false; + outgoingCommand.Push(op, _FILE_AND_LINE_ ); +} + +bool HTTPConnection::HasBadResponse(int *code, RakNet::RakString *data) +{ + if(badResponses.IsEmpty()) + return false; + + if (code) + *code = badResponses.Peek().code; + if (data) + *data = badResponses.Pop().data; + return true; +} +void HTTPConnection::CloseConnection() +{ + connectionState=CS_DISCONNECTING; +} +void HTTPConnection::Update(void) +{ + SystemAddress sa; + sa = tcp->HasCompletedConnectionAttempt(); + while (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { +// printf("Connected\n"); + connectionState=CS_CONNECTED; + server=sa; + sa = tcp->HasCompletedConnectionAttempt(); + } + + sa = tcp->HasFailedConnectionAttempt(); + while (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + //printf("Failed connected\n"); + CloseConnection(); + sa = tcp->HasFailedConnectionAttempt(); + } + + sa = tcp->HasLostConnection(); + while (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + //printf("Lost connection\n"); + CloseConnection(); + sa = tcp->HasLostConnection(); + } + + + switch (connectionState) + { + case CS_NONE: + { + if (outgoingCommand.IsEmpty()) + return; + + //printf("Connecting\n"); + server = tcp->Connect(host, port, false); + connectionState = CS_CONNECTING; + } + break; + case CS_DISCONNECTING: + { + if (tcp->ReceiveHasPackets()==false) + { + if (incomingData.IsEmpty()==false) + { + results.Push(incomingData, _FILE_AND_LINE_ ); + } + incomingData.Clear(); + tcp->CloseConnection(server); + connectionState=CS_NONE; + } + } + break; + case CS_CONNECTING: + { + } + break; + case CS_CONNECTED: + { + //printf("Connected\n"); + if (outgoingCommand.IsEmpty()) + { + //printf("Closed connection (nothing to do)\n"); + CloseConnection(); + return; + } + +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcp->StartSSLClient(server); +#endif + + //printf("Sending request\n"); + currentProcessingCommand = outgoingCommand.Pop(); + RakString request; + if (currentProcessingCommand.isPost) + { + request.Set("POST %s HTTP/1.0\r\n" + "Host: %s:%i\r\n" + "Content-Type: %s\r\n" + "Content-Length: %u\r\n" + "\r\n" + "%s", + currentProcessingCommand.remotePath.C_String(), + host.C_String(), + port, + currentProcessingCommand.contentType.C_String(), + (unsigned) currentProcessingCommand.data.GetLength(), + currentProcessingCommand.data.C_String()); + } + else + { + // request.Set("GET %s\r\n", host.C_String()); + // http://www.jenkinssoftware.com/forum/index.php?topic=4601.0;topicseen + request.Set("GET %s HTTP/1.0\r\n" + "Host: %s:%i\r\n" + "\r\n", + currentProcessingCommand.remotePath.C_String(), + host.C_String(), + port); + } + + // printf(request.C_String()); + // request.URLEncode(); + tcp->Send(request.C_String(), (unsigned int) request.GetLength(), server,false); + connectionState=CS_PROCESSING; + } + break; + case CS_PROCESSING: + { + } + } + +// if (connectionState==CS_PROCESSING && currentProcessingCommand.data.IsEmpty()==false) +// outgoingCommand.PushAtHead(currentProcessingCommand); +} +bool HTTPConnection::HasRead(void) const +{ + return results.IsEmpty()==false; +} +RakString HTTPConnection::Read(void) +{ + if (results.IsEmpty()) + return RakString(); + + RakNet::RakString resultStr = results.Pop(); + // const char *start_of_body = strstr(resultStr.C_String(), "\r\n\r\n"); + const char *start_of_body = strpbrk(resultStr.C_String(), "\001\002\003%"); + + if(start_of_body) + return RakNet::RakString::NonVariadic(start_of_body); + else + return resultStr; +} +SystemAddress HTTPConnection::GetServerAddress(void) const +{ + return server; +} +void HTTPConnection::ProcessTCPPacket(Packet *packet) +{ + RakAssert(packet); + + // read all the packets possible + if(packet->systemAddress == server) + { + if(incomingData.GetLength() == 0) + { + int response_code = atoi((char *)packet->data + strlen("HTTP/1.0 ")); + + if(response_code > 299) + { + badResponses.Push(BadResponse(packet->data, response_code), _FILE_AND_LINE_ ); + //printf("Closed connection (Bad response 2)\n"); + CloseConnection(); + return; + } + } + + RakNet::RakString incomingTemp = RakNet::RakString::NonVariadic((const char*) packet->data); + incomingTemp.URLDecode(); + incomingData += incomingTemp; + + // printf((const char*) packet->data); + // printf("\n"); + + RakAssert(strlen((char *)packet->data) == packet->length); // otherwise it contains Null bytes + + const char *start_of_body = strstr(incomingData, "\r\n\r\n"); + + // besides having the server close the connection, they may + // provide a length header and supply that many bytes + if( + // Why was start_of_body here? Makes the GET command fail + // start_of_body && + connectionState == CS_PROCESSING) + { + /* + // The stupid programmer that wrote this originally didn't think that just because the header contains this value doesn't mean you got the whole message + if (strstr((const char*) packet->data, "\r\nConnection: close\r\n")) + { + CloseConnection(); + } + else + { + */ + long length_of_headers; + if (start_of_body) + { + length_of_headers = (long)(start_of_body + 4 - incomingData.C_String()); + const char *length_header = strstr(incomingData, "\r\nLength: "); + + if(length_header) + { + long length = atol(length_header + 10) + length_of_headers; + + if((long) incomingData.GetLength() >= length) + { + //printf("Closed connection (Got all data due to length header)\n"); + CloseConnection(); + } + } + } + else + { + // No processing needed + } + + + //} + } + } +} + +bool HTTPConnection::IsBusy(void) const +{ + return connectionState != CS_NONE; +} + +int HTTPConnection::GetState(void) const +{ + return connectionState; +} + + +HTTPConnection::~HTTPConnection(void) +{ + if (tcp) + tcp->CloseConnection(server); +} + + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/HTTPConnection.h b/src/raknet/HTTPConnection.h new file mode 100755 index 0000000..cd1b0c6 --- /dev/null +++ b/src/raknet/HTTPConnection.h @@ -0,0 +1,176 @@ +/// \file HTTPConnection.h +/// \brief Contains HTTPConnection, used to communicate with web servers +/// +/// This file is part of RakNet Copyright 2008 Kevin Jenkins. +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_HTTPConnection==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __HTTP_CONNECTION +#define __HTTP_CONNECTION + +#include "Export.h" +#include "RakString.h" +#include "RakMemoryOverride.h" +#include "RakNetTypes.h" +#include "DS_Queue.h" + +namespace RakNet +{ +/// Forward declarations +class TCPInterface; +struct SystemAddress; + +/// \brief Use HTTPConnection to communicate with a web server. +/// \details Start an instance of TCPInterface via the Start() command. +/// Instantiate a new instance of HTTPConnection, and associate TCPInterface with the class in the constructor. +/// Use Post() to send commands to the web server, and ProcessDataPacket() to update the connection with packets returned from TCPInterface that have the system address of the web server +/// This class will handle connecting and reconnecting as necessary. +/// +/// Note that only one Post() can be handled at a time. +class RAK_DLL_EXPORT HTTPConnection +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(HTTPConnection) + + /// Returns a HTTP object associated with this tcp connection + HTTPConnection(); + virtual ~HTTPConnection(); + + /// \pre tcp should already be started + void Init(TCPInterface *_tcp, const char *host, unsigned short port=80); + + /// Submit data to the HTTP server + /// HTTP only allows one request at a time per connection + /// + /// \pre IsBusy()==false + /// \param path the path on the remote server you want to POST to. For example "index.html" + /// \param data A NULL terminated string to submit to the server + /// \param contentType "Content-Type:" passed to post. + void Post(const char *path, const char *data, const char *_contentType="application/x-www-form-urlencoded"); + + /// Get a file from a webserver + /// \param path the path on the remote server you want to GET from. For example "index.html" + void Get(const char *path); + + /// Is there a Read result ready? + bool HasRead(void) const; + + /// Get one result from the server + /// \pre HasResult must return true + RakNet::RakString Read(void); + + /// Call periodically to do time-based updates + void Update(void); + + /// Returns the address of the server we are connected to + SystemAddress GetServerAddress(void) const; + + /// Process an HTTP data packet returned from TCPInterface + /// Returns true when we have gotten all the data from the HTTP server. + /// If this returns true then it's safe to Post() another request + /// Deallocate the packet as usual via TCPInterface + /// \param packet NULL or a packet associated with our host and port + void ProcessTCPPacket(Packet *packet); + + /// Results of HTTP requests. Standard response codes are < 999 + /// ( define HTTP codes and our internal codes as needed ) + enum ResponseCodes { NoBody=1001, OK=200, Deleted=1002 }; + + HTTPConnection& operator=(const HTTPConnection& rhs){(void) rhs; return *this;} + + /// Encapsulates a raw HTTP response and response code + struct BadResponse + { + public: + BadResponse() {code=0;} + + BadResponse(const unsigned char *_data, int _code) + : data((const char *)_data), code(_code) {} + + BadResponse(const char *_data, int _code) + : data(_data), code(_code) {} + + operator int () const { return code; } + + RakNet::RakString data; + int code; // ResponseCodes + }; + + /// Queued events of failed exchanges with the HTTP server + bool HasBadResponse(int *code, RakNet::RakString *data); + + /// Returns false if the connection is not doing anything else + bool IsBusy(void) const; + + /// \internal + int GetState(void) const; + + struct OutgoingCommand + { + RakNet::RakString remotePath; + RakNet::RakString data; + RakNet::RakString contentType; + bool isPost; + }; + + DataStructures::Queue outgoingCommand; + OutgoingCommand currentProcessingCommand; + +private: + SystemAddress server; + TCPInterface *tcp; + RakNet::RakString host; + unsigned short port; + DataStructures::Queue badResponses; + + enum ConnectionState + { + CS_NONE, + CS_DISCONNECTING, + CS_CONNECTING, + CS_CONNECTED, + CS_PROCESSING, + } connectionState; + + RakNet::RakString incomingData; + DataStructures::Queue results; + + void CloseConnection(); + + /* + enum { RAK_HTTP_INITIAL, + RAK_HTTP_STARTING, + RAK_HTTP_CONNECTING, + RAK_HTTP_ESTABLISHED, + RAK_HTTP_REQUEST_SENT, + RAK_HTTP_IDLE } state; + + RakNet::RakString outgoing, incoming, path, contentType; + void Process(Packet *packet); // the workhorse + + // this helps check the various status lists in TCPInterface + typedef SystemAddress (TCPInterface::*StatusCheckFunction)(void); + bool InList(StatusCheckFunction func); + */ + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/IncrementalReadInterface.cpp b/src/raknet/IncrementalReadInterface.cpp new file mode 100755 index 0000000..2809380 --- /dev/null +++ b/src/raknet/IncrementalReadInterface.cpp @@ -0,0 +1,15 @@ +#include "IncrementalReadInterface.h" +#include + +using namespace RakNet; + +unsigned int IncrementalReadInterface::GetFilePart( const char *filename, unsigned int startReadBytes, unsigned int numBytesToRead, void *preallocatedDestination, FileListNodeContext context) +{ + FILE *fp = fopen(filename, "rb"); + if (fp==0) + return 0; + fseek(fp,startReadBytes,SEEK_SET); + unsigned int numRead = (unsigned int) fread(preallocatedDestination,1,numBytesToRead, fp); + fclose(fp); + return numRead; +} diff --git a/src/raknet/IncrementalReadInterface.h b/src/raknet/IncrementalReadInterface.h new file mode 100755 index 0000000..0bf56a8 --- /dev/null +++ b/src/raknet/IncrementalReadInterface.h @@ -0,0 +1,28 @@ +#ifndef __INCREMENTAL_READ_INTERFACE_H +#define __INCREMENTAL_READ_INTERFACE_H + +#include "FileListNodeContext.h" +#include "Export.h" + +namespace RakNet +{ + +class RAK_DLL_EXPORT IncrementalReadInterface +{ +public: + IncrementalReadInterface() {} + virtual ~IncrementalReadInterface() {} + + /// Read part of a file into \a destination + /// Return the number of bytes written. Return 0 when file is done. + /// \param[in] filename Filename to read + /// \param[in] startReadBytes What offset from the start of the file to read from + /// \param[in] numBytesToRead How many bytes to read. This is also how many bytes have been allocated to preallocatedDestination + /// \param[out] preallocatedDestination Write your data here + /// \return The number of bytes read, or 0 if none + virtual unsigned int GetFilePart( const char *filename, unsigned int startReadBytes, unsigned int numBytesToRead, void *preallocatedDestination, FileListNodeContext context); +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/InternalPacket.h b/src/raknet/InternalPacket.h new file mode 100755 index 0000000..4461cce --- /dev/null +++ b/src/raknet/InternalPacket.h @@ -0,0 +1,131 @@ +/// \file +/// \brief \b [Internal] A class which stores a user message, and all information associated with sending and receiving that message. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. +/// GPL license users are subject to the GNU General Public +/// License as published by the Free +/// Software Foundation; either version 2 of the License, or (at your +/// option) any later version. + +#ifndef __INTERNAL_PACKET_H +#define __INTERNAL_PACKET_H + +#include "PacketPriority.h" +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "RakNetDefines.h" +#include "NativeTypes.h" +#include "RakNetDefines.h" +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 +#include "CCRakNetUDT.h" +#else +#include "CCRakNetSlidingWindow.h" +#endif + +namespace RakNet { + +typedef uint16_t SplitPacketIdType; +typedef uint32_t SplitPacketIndexType; + +/// This is the counter used for holding packet numbers, so we can detect duplicate packets. It should be large enough that if the variables +/// Internally assumed to be 4 bytes, but written as 3 bytes in ReliabilityLayer::WriteToBitStreamFromInternalPacket +typedef uint24_t MessageNumberType; + +/// This is the counter used for holding ordered packet numbers, so we can detect out-of-order packets. It should be large enough that if the variables +/// were to wrap, the newly wrapped values would no longer be in use. Warning: Too large of a value wastes bandwidth! +typedef MessageNumberType OrderingIndexType; + +typedef RakNet::TimeUS RemoteSystemTimeType; + +struct InternalPacketFixedSizeTransmissionHeader +{ + /// A unique numerical identifier given to this user message. Used to identify reliable messages on the network + MessageNumberType reliableMessageNumber; + ///The ID used as identification for ordering messages. Also included in sequenced messages + OrderingIndexType orderingIndex; + // Used only with sequenced messages + OrderingIndexType sequencingIndex; + ///What ordering channel this packet is on, if the reliability type uses ordering channels + unsigned char orderingChannel; + ///The ID of the split packet, if we have split packets. This is the maximum number of split messages we can send simultaneously per connection. + SplitPacketIdType splitPacketId; + ///If this is a split packet, the index into the array of subsplit packets + SplitPacketIndexType splitPacketIndex; + ///The size of the array of subsplit packets + SplitPacketIndexType splitPacketCount;; + ///How many bits long the data is + BitSize_t dataBitLength; + ///What type of reliability algorithm to use with this packet + PacketReliability reliability; + // Not endian safe + // unsigned char priority : 3; + // unsigned char reliability : 5; +}; + +/// Used in InternalPacket when pointing to sharedDataBlock, rather than allocating itself +struct InternalPacketRefCountedData +{ + unsigned char *sharedDataBlock; + unsigned int refCount; +}; + +/// Holds a user message, and related information +/// Don't use a constructor or destructor, due to the memory pool I am using +struct InternalPacket : public InternalPacketFixedSizeTransmissionHeader +{ + /// Identifies the order in which this number was sent. Used locally + MessageNumberType messageInternalOrder; + /// Has this message number been assigned yet? We don't assign until the message is actually sent. + /// This fixes a bug where pre-determining message numbers and then sending a message on a different channel creates a huge gap. + /// This causes performance problems and causes those messages to timeout. + bool messageNumberAssigned; + /// Was this packet number used this update to track windowing drops or increases? Each packet number is only used once per update. +// bool allowWindowUpdate; + ///When this packet was created + RakNet::TimeUS creationTime; + ///The resendNext time to take action on this packet + RakNet::TimeUS nextActionTime; + // Size of the header when encoded into a bitstream + BitSize_t headerLength; + /// Buffer is a pointer to the actual data, assuming this packet has data at all + unsigned char *data; + /// How to alloc and delete the data member + enum AllocationScheme + { + /// Data is allocated using rakMalloc. Just free it + NORMAL, + + /// data points to a larger block of data, where the larger block is reference counted. internalPacketRefCountedData is used in this case + REF_COUNTED, + + /// If allocation scheme is STACK, data points to stackData and should not be deallocated + /// This is only used when sending. Received packets are deallocated in RakPeer + STACK + } allocationScheme; + InternalPacketRefCountedData *refCountedData; + /// How many attempts we made at sending this message +// unsigned char timesSent; + /// The priority level of this packet + PacketPriority priority; + /// If the reliability type requires a receipt, then return this number with it + uint32_t sendReceiptSerial; + + // Used for the resend queue + // Linked list implementation so I can remove from the list via a pointer, without finding it in the list + InternalPacket *resendPrev, *resendNext,*unreliablePrev,*unreliableNext; + + unsigned char stackData[128]; +}; + +} // namespace RakNet + +#endif + diff --git a/src/raknet/Itoa.cpp b/src/raknet/Itoa.cpp new file mode 100755 index 0000000..c5dc1a7 --- /dev/null +++ b/src/raknet/Itoa.cpp @@ -0,0 +1,52 @@ +#ifdef __cplusplus +extern "C" { +#endif + +// Fast itoa from http://www.jb.man.ac.uk/~slowe/cpp/itoa.html for Linux since it seems like Linux doesn't support this function. +// I modified it to remove the std dependencies. +char* Itoa( int value, char* result, int base ) + { + // check that the base if valid + if (base < 2 || base > 16) { *result = 0; return result; } + char* out = result; + int quotient = value; + + int absQModB; + + do { + // KevinJ - get rid of this dependency + //*out = "0123456789abcdef"[ std::abs( quotient % base ) ]; + absQModB=quotient % base; + if (absQModB < 0) + absQModB=-absQModB; + *out = "0123456789abcdef"[ absQModB ]; + ++out; + quotient /= base; + } while ( quotient ); + + // Only apply negative sign for base 10 + if ( value < 0 && base == 10) *out++ = '-'; + + // KevinJ - get rid of this dependency + // std::reverse( result, out ); + *out = 0; + + // KevinJ - My own reverse code + char *start = result; + char temp; + out--; + while (start < out) + { + temp=*start; + *start=*out; + *out=temp; + start++; + out--; + } + + return result; +} + +#ifdef __cplusplus +} +#endif diff --git a/src/raknet/Itoa.h b/src/raknet/Itoa.h new file mode 100755 index 0000000..1b41ad7 --- /dev/null +++ b/src/raknet/Itoa.h @@ -0,0 +1,15 @@ +#ifndef __RAK_ITOA_H +#define __RAK_ITOA_H + +#ifdef __cplusplus +extern "C" { +#endif + +char* Itoa( int value, char* result, int base ); + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/src/raknet/Kbhit.h b/src/raknet/Kbhit.h new file mode 100755 index 0000000..c311c15 --- /dev/null +++ b/src/raknet/Kbhit.h @@ -0,0 +1,84 @@ +/***************************************************************************** +kbhit() and getch() for Linux/UNIX +Chris Giese http://my.execpc.com/~geezer +Release date: ? +This code is public domain (no copyright). +You can do whatever you want with it. +*****************************************************************************/ +#if defined(_WIN32) +#include /* kbhit(), getch() */ + +#else +#include /* struct timeval, select() */ +/* ICANON, ECHO, TCSANOW, struct termios */ +#include /* tcgetattr(), tcsetattr() */ +#include /* atexit(), exit() */ +#include /* read() */ +#include /* printf() */ +#include /* memcpy */ + +static struct termios g_old_kbd_mode; +/***************************************************************************** +*****************************************************************************/ +static void cooked(void) +{ + tcsetattr(0, TCSANOW, &g_old_kbd_mode); +} +/***************************************************************************** +*****************************************************************************/ +static void raw(void) +{ + static char init; +/**/ + struct termios new_kbd_mode; + + if(init) + return; +/* put keyboard (stdin, actually) in raw, unbuffered mode */ + tcgetattr(0, &g_old_kbd_mode); + memcpy(&new_kbd_mode, &g_old_kbd_mode, sizeof(struct termios)); + new_kbd_mode.c_lflag &= ~(ICANON /*| ECHO */ ); + new_kbd_mode.c_cc[VTIME] = 0; + new_kbd_mode.c_cc[VMIN] = 1; + tcsetattr(0, TCSANOW, &new_kbd_mode); +/* when we exit, go back to normal, "cooked" mode */ + atexit(cooked); + + init = 1; +} +/***************************************************************************** +*****************************************************************************/ +static int kbhit(void) +{ + struct timeval timeout; + fd_set read_handles; + int status; + + raw(); +/* check stdin (fd 0) for activity */ + FD_ZERO(&read_handles); + FD_SET(0, &read_handles); + timeout.tv_sec = timeout.tv_usec = 0; + status = select(0 + 1, &read_handles, NULL, NULL, &timeout); + if(status < 0) + { + printf("select() failed in kbhit()\n"); + exit(1); + } + return status; +} +/***************************************************************************** +*****************************************************************************/ +static int getch(void) +{ + unsigned char temp; + + raw(); +/* stdin = fd 0 */ + if(read(0, &temp, 1) != 1) + return 0; + return temp; +} +#endif + + diff --git a/src/raknet/LinuxStrings.cpp b/src/raknet/LinuxStrings.cpp new file mode 100755 index 0000000..e29ed14 --- /dev/null +++ b/src/raknet/LinuxStrings.cpp @@ -0,0 +1,26 @@ +#if (defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__)) && !defined(_WIN32) +#include +#ifndef _stricmp +int _stricmp(const char* s1, const char* s2) +{ + return strcasecmp(s1,s2); +} +#endif +int _strnicmp(const char* s1, const char* s2, size_t n) +{ + return strncasecmp(s1,s2,n); +} +#ifndef __APPLE__ +char *_strlwr(char * str ) +{ + if (str==0) + return 0; + for (int i=0; str[i]; i++) + { + if (str[i]>='A' && str[i]<='Z') + str[i]+='a'-'A'; + } + return str; +} +#endif +#endif diff --git a/src/raknet/LinuxStrings.h b/src/raknet/LinuxStrings.h new file mode 100755 index 0000000..11c8589 --- /dev/null +++ b/src/raknet/LinuxStrings.h @@ -0,0 +1,26 @@ +#ifndef _GCC_WIN_STRINGS +#define _GCC_WIN_STRINGS + + + + + + + + + + #if (defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__)) && !defined(_WIN32) + #ifndef _stricmp + int _stricmp(const char* s1, const char* s2); + #endif + int _strnicmp(const char* s1, const char* s2, size_t n); +#ifndef __APPLE__ + char *_strlwr(char * str ); //this won't compile on OSX for some reason +#endif + #ifndef _vsnprintf + #define _vsnprintf vsnprintf + #endif + #endif + + +#endif // _GCC_WIN_STRINGS diff --git a/src/raknet/LocklessTypes.cpp b/src/raknet/LocklessTypes.cpp new file mode 100755 index 0000000..501e33b --- /dev/null +++ b/src/raknet/LocklessTypes.cpp @@ -0,0 +1,42 @@ +#include "LocklessTypes.h" + +using namespace RakNet; + +LocklessUint32_t::LocklessUint32_t() +{ + value=0; +} +LocklessUint32_t::LocklessUint32_t(uint32_t initial) +{ + value=initial; +} +uint32_t LocklessUint32_t::Increment(void) +{ +#ifdef _WIN32 + return (uint32_t) InterlockedIncrement(&value); +#elif defined(ANDROID) || defined(__S3E__) + uint32_t v; + mutex.Lock(); + ++value; + v=value; + mutex.Unlock(); + return v; +#else + return __sync_fetch_and_add (&value, (uint32_t) 1); +#endif +} +uint32_t LocklessUint32_t::Decrement(void) +{ +#ifdef _WIN32 + return (uint32_t) InterlockedDecrement(&value); +#elif defined(ANDROID) || defined(__S3E__) + uint32_t v; + mutex.Lock(); + --value; + v=value; + mutex.Unlock(); + return v; +#else + return __sync_fetch_and_add (&value, (uint32_t) -1); +#endif +} diff --git a/src/raknet/LocklessTypes.h b/src/raknet/LocklessTypes.h new file mode 100755 index 0000000..441e6bd --- /dev/null +++ b/src/raknet/LocklessTypes.h @@ -0,0 +1,40 @@ +#ifndef __LOCKLESS_TYPES_H +#define __LOCKLESS_TYPES_H + +#include "Export.h" +#include "NativeTypes.h" +#include "WindowsIncludes.h" +#if defined(ANDROID) || defined(__S3E__) +// __sync_fetch_and_add not supported apparently +#include "SimpleMutex.h" +#endif + +namespace RakNet +{ + +class RAK_DLL_EXPORT LocklessUint32_t +{ +public: + LocklessUint32_t(); + explicit LocklessUint32_t(uint32_t initial); + // Returns variable value after changing it + uint32_t Increment(void); + // Returns variable value after changing it + uint32_t Decrement(void); + volatile uint32_t GetValue(void) const {return value;} + +protected: +#ifdef _WIN32 + volatile LONG value; +#elif defined(ANDROID) || defined(__S3E__) + // __sync_fetch_and_add not supported apparently + SimpleMutex mutex; + uint32_t value; +#else + volatile uint32_t value; +#endif +}; + +}; + +#endif diff --git a/src/raknet/LogCommandParser.cpp b/src/raknet/LogCommandParser.cpp new file mode 100755 index 0000000..50ed7fa --- /dev/null +++ b/src/raknet/LogCommandParser.cpp @@ -0,0 +1,279 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_LogCommandParser==1 + +#include "LogCommandParser.h" +#include "TransportInterface.h" + +#include + +#include +#include +#include + +#include "LinuxStrings.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(LogCommandParser,LogCommandParser); + +LogCommandParser::LogCommandParser() +{ + RegisterCommand(CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS,"Subscribe","[] - Subscribes to a named channel, or all channels"); + RegisterCommand(CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS,"Unsubscribe","[] - Unsubscribes from a named channel, or all channels"); + memset(channelNames,0,sizeof(channelNames)); +} +LogCommandParser::~LogCommandParser() +{ +} +bool LogCommandParser::OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString) +{ + (void) originalString; + + if (strcmp(command, "Subscribe")==0) + { + unsigned channelIndex; + if (numParameters==0) + { + Subscribe(systemAddress, 0); + transport->Send(systemAddress, "Subscribed to all channels.\r\n"); + } + else if (numParameters==1) + { + if ((channelIndex=Subscribe(systemAddress, parameterList[0]))!=(unsigned)-1) + { + transport->Send(systemAddress, "You are now subscribed to channel %s.\r\n", channelNames[channelIndex]); + } + else + { + transport->Send(systemAddress, "Cannot find channel %s.\r\n", parameterList[0]); + PrintChannels(systemAddress, transport); + } + } + else + { + transport->Send(systemAddress, "Subscribe takes either 0 or 1 parameters.\r\n"); + } + } + else if (strcmp(command, "Unsubscribe")==0) + { + unsigned channelIndex; + if (numParameters==0) + { + Unsubscribe(systemAddress, 0); + transport->Send(systemAddress, "Unsubscribed from all channels.\r\n"); + } + else if (numParameters==1) + { + if ((channelIndex=Unsubscribe(systemAddress, parameterList[0]))!=(unsigned)-1) + { + transport->Send(systemAddress, "You are now unsubscribed from channel %s.\r\n", channelNames[channelIndex]); + } + else + { + transport->Send(systemAddress, "Cannot find channel %s.\r\n", parameterList[0]); + PrintChannels(systemAddress, transport); + } + } + else + { + transport->Send(systemAddress, "Unsubscribe takes either 0 or 1 parameters.\r\n"); + } + } + + return true; +} +const char *LogCommandParser::GetName(void) const +{ + return "Logger"; +} +void LogCommandParser::SendHelp(TransportInterface *transport, const SystemAddress &systemAddress) +{ + transport->Send(systemAddress, "The logger will accept user log data via the Log(...) function.\r\n"); + transport->Send(systemAddress, "Each log is associated with a named channel.\r\n"); + transport->Send(systemAddress, "You can subscribe to or unsubscribe from named channels.\r\n"); + PrintChannels(systemAddress, transport); +} +void LogCommandParser::AddChannel(const char *channelName) +{ + unsigned channelIndex=0; + channelIndex = GetChannelIndexFromName(channelName); + // Each channel can only be added once. + RakAssert(channelIndex==(unsigned)-1); + + unsigned i; + for (i=0; i < 32; i++) + { + if (channelNames[i]==0) + { + // Assuming a persistent static string. + channelNames[i]=channelName; + return; + } + } + + // No more available channels - max 32 with this implementation where I save subscribed channels with bit operations + RakAssert(0); +} +void LogCommandParser::WriteLog(const char *channelName, const char *format, ...) +{ + if (channelName==0 || format==0) + return; + + unsigned channelIndex; + channelIndex = GetChannelIndexFromName(channelName); + if (channelIndex==(unsigned)-1) + { + AddChannel(channelName); + } + + char text[REMOTE_MAX_TEXT_INPUT]; + va_list ap; + va_start(ap, format); + _vsnprintf(text, REMOTE_MAX_TEXT_INPUT, format, ap); + va_end(ap); + text[REMOTE_MAX_TEXT_INPUT-1]=0; + + // Make sure that text ends in \r\n + int textLen; + textLen=(int)strlen(text); + if (textLen==0) + return; + if (text[textLen-1]=='\n') + { + text[textLen-1]=0; + } + if (textLen < REMOTE_MAX_TEXT_INPUT-4) + strcat(text, "\r\n"); + else + { + text[textLen-3]='\r'; + text[textLen-2]='\n'; + text[textLen-1]=0; + } + + // For each user that subscribes to this channel, send to them. + unsigned i; + for (i=0; i < remoteUsers.Size(); i++) + { + if (remoteUsers[i].channels & (1 << channelIndex)) + { + trans->Send(remoteUsers[i].systemAddress, text); + } + } +} +void LogCommandParser::PrintChannels(const SystemAddress &systemAddress, TransportInterface *transport) const +{ + unsigned i; + bool anyChannels=false; + transport->Send(systemAddress, "CHANNELS:\r\n"); + for (i=0; i < 32; i++) + { + if (channelNames[i]) + { + transport->Send(systemAddress, "%i. %s\r\n", i+1,channelNames[i]); + anyChannels=true; + } + } + if (anyChannels==false) + transport->Send(systemAddress, "None.\r\n"); +} +void LogCommandParser::OnNewIncomingConnection(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) systemAddress; + (void) transport; +} +void LogCommandParser::OnConnectionLost(const SystemAddress &systemAddress, TransportInterface *transport) +{ + (void) transport; + Unsubscribe(systemAddress, 0); +} +unsigned LogCommandParser::Unsubscribe(const SystemAddress &systemAddress, const char *channelName) +{ + unsigned i; + for (i=0; i < remoteUsers.Size(); i++) + { + if (remoteUsers[i].systemAddress==systemAddress) + { + if (channelName==0) + { + // Unsubscribe from all and delete this user. + remoteUsers[i]=remoteUsers[remoteUsers.Size()-1]; + remoteUsers.RemoveFromEnd(); + return 0; + } + else + { + unsigned channelIndex; + channelIndex = GetChannelIndexFromName(channelName); + if (channelIndex!=(unsigned)-1) + { + remoteUsers[i].channels&=0xFFFF ^ (1< remoteUsers; + + /// Names of the channels at each bit, or 0 for an unused channel + const char *channelNames[32]; + + /// This is so I can save the current transport provider, solely so I can use it without having the user pass it to Log + TransportInterface *trans; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/MTUSize.h b/src/raknet/MTUSize.h new file mode 100755 index 0000000..0786b4f --- /dev/null +++ b/src/raknet/MTUSize.h @@ -0,0 +1,31 @@ +/// \file +/// \brief \b [Internal] Defines the default maximum transfer unit. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef MAXIMUM_MTU_SIZE + +/// \li \em 17914 16 Mbit/Sec Token Ring +/// \li \em 4464 4 Mbits/Sec Token Ring +/// \li \em 4352 FDDI +/// \li \em 1500. The largest Ethernet packet size \b recommended. This is the typical setting for non-PPPoE, non-VPN connections. The default value for NETGEAR routers, adapters and switches. +/// \li \em 1492. The size PPPoE prefers. +/// \li \em 1472. Maximum size to use for pinging. (Bigger packets are fragmented.) +/// \li \em 1468. The size DHCP prefers. +/// \li \em 1460. Usable by AOL if you don't have large email attachments, etc. +/// \li \em 1430. The size VPN and PPTP prefer. +/// \li \em 1400. Maximum size for AOL DSL. +/// \li \em 576. Typical value to connect to dial-up ISPs. +/// The largest value for an UDP datagram + + + +#define MAXIMUM_MTU_SIZE 1492 + + +#define MINIMUM_MTU_SIZE 400 + +#endif diff --git a/src/raknet/MessageFilter.cpp b/src/raknet/MessageFilter.cpp new file mode 100755 index 0000000..28fa423 --- /dev/null +++ b/src/raknet/MessageFilter.cpp @@ -0,0 +1,408 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_MessageFilter==1 + +#include "MessageFilter.h" +#include "RakAssert.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "RakAssert.h" +#include "RakPeerInterface.h" +#include "PacketizedTCP.h" +#include "BitStream.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +int RakNet::MessageFilterStrComp( char *const &key,char *const &data ) +{ + return strcmp(key,data); +} + +int RakNet::FilterSetComp( const int &key, FilterSet * const &data ) +{ + if (key < data->filterSetID) + return -1; + else if (key==data->filterSetID) + return 0; + else + return 1; +} +STATIC_FACTORY_DEFINITIONS(MessageFilter,MessageFilter); + +MessageFilter::MessageFilter() +{ + whenLastTimeoutCheck=RakNet::GetTime(); +} +MessageFilter::~MessageFilter() +{ + Clear(); +} +void MessageFilter::SetAutoAddNewConnectionsToFilter(int filterSetID) +{ + autoAddNewConnectionsToFilter=filterSetID; +} +void MessageFilter::SetAllowMessageID(bool allow, int messageIDStart, int messageIDEnd,int filterSetID) +{ + RakAssert(messageIDStart <= messageIDEnd); + FilterSet *filterSet = GetFilterSetByID(filterSetID); + int i; + for (i=messageIDStart; i <= messageIDEnd; ++i) + filterSet->allowedIDs[i]=allow; +} +void MessageFilter::SetAllowRPC4(bool allow, const char* uniqueID, int filterSetID) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + bool objectExists; + unsigned int idx = filterSet->allowedRPC4.GetIndexFromKey(uniqueID, &objectExists); + if (allow) + { + if (objectExists==false) + { + filterSet->allowedRPC4.InsertAtIndex(uniqueID, idx, _FILE_AND_LINE_); + filterSet->allowedIDs[ID_RPC_PLUGIN]=true; + } + } + else + { + if (objectExists==true) + { + filterSet->allowedRPC4.RemoveAtIndex(idx); + if (filterSet->allowedRPC4.Size()==0) + { + filterSet->allowedIDs[ID_RPC_PLUGIN]=false; + } + } + } +} +void MessageFilter::SetActionOnDisallowedMessage(bool kickOnDisallowed, bool banOnDisallowed, RakNet::TimeMS banTimeMS, int filterSetID) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->kickOnDisallowedMessage=kickOnDisallowed; + filterSet->disallowedMessageBanTimeMS=banTimeMS; + filterSet->banOnDisallowedMessage=banOnDisallowed; +} +void MessageFilter::SetDisallowedMessageCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData, unsigned char messageID)) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->invalidMessageCallback=invalidMessageCallback; + filterSet->disallowedCallbackUserData=userData; +} +void MessageFilter::SetTimeoutCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData)) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->timeoutCallback=invalidMessageCallback; + filterSet->timeoutUserData=userData; +} +void MessageFilter::SetFilterMaxTime(int allowedTimeMS, bool banOnExceed, RakNet::TimeMS banTimeMS, int filterSetID) +{ + FilterSet *filterSet = GetFilterSetByID(filterSetID); + filterSet->maxMemberTimeMS=allowedTimeMS; + filterSet->banOnFilterTimeExceed=banOnExceed; + filterSet->timeExceedBanTimeMS=banTimeMS; +} +int MessageFilter::GetSystemFilterSet(AddressOrGUID systemAddress) +{ +// bool objectExists; +// unsigned index = systemList.GetIndexFromKey(systemAddress, &objectExists); +// if (objectExists==false) +// return -1; +// else +// return systemList[index].filter->filterSetID; + + DataStructures::HashIndex index = systemList.GetIndexOf(systemAddress); + if (index.IsInvalid()) + return -1; + else + return systemList.ItemAtIndex(index).filter->filterSetID; +} +void MessageFilter::SetSystemFilterSet(AddressOrGUID addressOrGUID, int filterSetID) +{ + // Allocate this filter set if it doesn't exist. + RakAssert(addressOrGUID.IsUndefined()==false); +// bool objectExists; +// unsigned index = systemList.GetIndexFromKey(addressOrGUID, &objectExists); +// if (objectExists==false) + DataStructures::HashIndex index = systemList.GetIndexOf(addressOrGUID); + if (index.IsInvalid()) + { + if (filterSetID<0) + return; + + FilteredSystem filteredSystem; + filteredSystem.filter = GetFilterSetByID(filterSetID); + // filteredSystem.addressOrGUID=addressOrGUID; + filteredSystem.timeEnteredThisSet=RakNet::GetTimeMS(); + // systemList.Insert(addressOrGUID, filteredSystem, true, _FILE_AND_LINE_); + systemList.Push(addressOrGUID,filteredSystem,_FILE_AND_LINE_); + } + else + { + if (filterSetID>=0) + { + FilterSet *filterSet = GetFilterSetByID(filterSetID); + systemList.ItemAtIndex(index).timeEnteredThisSet=RakNet::GetTimeMS(); + systemList.ItemAtIndex(index).filter=filterSet; + } + else + { + systemList.RemoveAtIndex(index, _FILE_AND_LINE_); + } + } +} +unsigned MessageFilter::GetSystemCount(int filterSetID) const +{ + if (filterSetID==-1) + { + return systemList.Size(); + } + else + { + unsigned i; + unsigned count=0; + DataStructures::List< FilteredSystem > itemList; + DataStructures::List< AddressOrGUID > keyList; + systemList.GetAsList(itemList, keyList, _FILE_AND_LINE_); + for (i=0; i < itemList.Size(); i++) + if (itemList[i].filter->filterSetID==filterSetID) + ++count; + return count; + } +} +unsigned MessageFilter::GetFilterSetCount(void) const +{ + return filterList.Size(); +} +int MessageFilter::GetFilterSetIDByIndex(unsigned index) +{ + return filterList[index]->filterSetID; +} +void MessageFilter::DeleteFilterSet(int filterSetID) +{ + FilterSet *filterSet; + bool objectExists; + unsigned i,index; + index = filterList.GetIndexFromKey(filterSetID, &objectExists); + if (objectExists) + { + filterSet=filterList[index]; + DeallocateFilterSet(filterSet); + filterList.RemoveAtIndex(index); + + DataStructures::List< FilteredSystem > itemList; + DataStructures::List< AddressOrGUID > keyList; + systemList.GetAsList(itemList, keyList, _FILE_AND_LINE_); + for (i=0; i < itemList.Size(); i++) + { + if (itemList[i].filter==filterSet) + { + systemList.Remove(keyList[i], _FILE_AND_LINE_); + } + } + + /* + // Don't reference this pointer any longer + i=0; + while (i < systemList.Size()) + { + if (systemList[i].filter==filterSet) + systemList.RemoveAtIndex(i); + else + ++i; + } + */ + } +} +void MessageFilter::Clear(void) +{ + unsigned i; + systemList.Clear(_FILE_AND_LINE_); + for (i=0; i < filterList.Size(); i++) + DeallocateFilterSet(filterList[i]); + filterList.Clear(false, _FILE_AND_LINE_); +} +void MessageFilter::DeallocateFilterSet(FilterSet* filterSet) +{ + RakNet::OP_DELETE(filterSet, _FILE_AND_LINE_); +} +FilterSet* MessageFilter::GetFilterSetByID(int filterSetID) +{ + RakAssert(filterSetID>=0); + bool objectExists; + unsigned index; + index = filterList.GetIndexFromKey(filterSetID, &objectExists); + if (objectExists) + return filterList[index]; + else + { + FilterSet *newFilterSet = RakNet::OP_NEW( _FILE_AND_LINE_ ); + memset(newFilterSet->allowedIDs, 0, MESSAGE_FILTER_MAX_MESSAGE_ID * sizeof(bool)); + newFilterSet->banOnFilterTimeExceed=false; + newFilterSet->kickOnDisallowedMessage=false; + newFilterSet->banOnDisallowedMessage=false; + newFilterSet->disallowedMessageBanTimeMS=0; + newFilterSet->timeExceedBanTimeMS=0; + newFilterSet->maxMemberTimeMS=0; + newFilterSet->filterSetID=filterSetID; + newFilterSet->invalidMessageCallback=0; + newFilterSet->timeoutCallback=0; + newFilterSet->timeoutUserData=0; + filterList.Insert(filterSetID, newFilterSet, true, _FILE_AND_LINE_); + return newFilterSet; + } +} +void MessageFilter::OnInvalidMessage(FilterSet *filterSet, AddressOrGUID systemAddress, unsigned char messageID) +{ + if (filterSet->invalidMessageCallback) + filterSet->invalidMessageCallback(rakPeerInterface, systemAddress, filterSet->filterSetID, filterSet->disallowedCallbackUserData, messageID); + if (filterSet->banOnDisallowedMessage && rakPeerInterface) + { + char str1[64]; + systemAddress.systemAddress.ToString(false, str1); + rakPeerInterface->AddToBanList(str1, filterSet->disallowedMessageBanTimeMS); + } + if (filterSet->kickOnDisallowedMessage) + { + if (rakPeerInterface) + rakPeerInterface->CloseConnection(systemAddress, true, 0); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->CloseConnection(systemAddress.systemAddress); +#endif + } +} +void MessageFilter::Update(void) +{ + // Update all timers for all systems. If those systems' filter sets are expired, take the appropriate action. + RakNet::Time curTime = RakNet::GetTime(); + if (GreaterThan(curTime - 1000, whenLastTimeoutCheck)) + { + DataStructures::List< FilteredSystem > itemList; + DataStructures::List< AddressOrGUID > keyList; + systemList.GetAsList(itemList, keyList, _FILE_AND_LINE_); + + unsigned int index; + for (index=0; index < itemList.Size(); index++) + { + if (itemList[index].filter && + itemList[index].filter->maxMemberTimeMS>0 && + curTime-itemList[index].timeEnteredThisSet >= itemList[index].filter->maxMemberTimeMS) + { + if (itemList[index].filter->timeoutCallback) + itemList[index].filter->timeoutCallback(rakPeerInterface, keyList[index], itemList[index].filter->filterSetID, itemList[index].filter->timeoutUserData); + + if (itemList[index].filter->banOnFilterTimeExceed && rakPeerInterface) + { + char str1[64]; + keyList[index].ToString(false, str1); + rakPeerInterface->AddToBanList(str1, itemList[index].filter->timeExceedBanTimeMS); + } + if (rakPeerInterface) + rakPeerInterface->CloseConnection(keyList[index], true, 0); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->CloseConnection(keyList[index].systemAddress); +#endif + + systemList.Remove(keyList[index], _FILE_AND_LINE_); + } + } + + whenLastTimeoutCheck=curTime+1000; + } +} +void MessageFilter::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) systemAddress; + (void) rakNetGUID; + (void) isIncoming; + + AddressOrGUID aog; + aog.rakNetGuid=rakNetGUID; + aog.systemAddress=systemAddress; + + // New system, automatically assign to filter set if appropriate + if (autoAddNewConnectionsToFilter>=0 && systemList.HasData(aog)==false) + SetSystemFilterSet(aog, autoAddNewConnectionsToFilter); +} +void MessageFilter::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) rakNetGUID; + (void) lostConnectionReason; + + AddressOrGUID aog; + aog.rakNetGuid=rakNetGUID; + aog.systemAddress=systemAddress; + + // Lost system, remove from the list + systemList.Remove(aog, _FILE_AND_LINE_); +} + PluginReceiveResult MessageFilter::OnReceive(Packet *packet) +{ + DataStructures::HashIndex index; + unsigned char messageId; + + switch (packet->data[0]) + { + case ID_NEW_INCOMING_CONNECTION: + case ID_CONNECTION_REQUEST_ACCEPTED: + case ID_CONNECTION_LOST: + case ID_DISCONNECTION_NOTIFICATION: + case ID_CONNECTION_ATTEMPT_FAILED: + case ID_NO_FREE_INCOMING_CONNECTIONS: + case ID_IP_RECENTLY_CONNECTED: + case ID_CONNECTION_BANNED: + case ID_INVALID_PASSWORD: + case ID_UNCONNECTED_PONG: + case ID_ALREADY_CONNECTED: + case ID_ADVERTISE_SYSTEM: + case ID_REMOTE_DISCONNECTION_NOTIFICATION: + case ID_REMOTE_CONNECTION_LOST: + case ID_REMOTE_NEW_INCOMING_CONNECTION: + case ID_DOWNLOAD_PROGRESS: + break; + default: + if (packet->data[0]==ID_TIMESTAMP) + { + if (packet->lengthdata[sizeof(MessageID) + sizeof(RakNet::TimeMS)]; + } + else + messageId=packet->data[0]; + // If this system is filtered, check if this message is allowed. If not allowed, return RR_STOP_PROCESSING_AND_DEALLOCATE + // index = systemList.GetIndexFromKey(packet->addressOrGUID, &objectExists); + index = systemList.GetIndexOf(packet); + if (index.IsInvalid()) + break; + if (systemList.ItemAtIndex(index).filter->allowedIDs[messageId]==false) + { + OnInvalidMessage(systemList.ItemAtIndex(index).filter, packet, packet->data[0]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + if (packet->data[0]==ID_RPC_PLUGIN) + { + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + RakNet::RakString functionName; + bsIn.ReadCompressed(functionName); + if (systemList.ItemAtIndex(index).filter->allowedRPC4.HasData(functionName)==false) + { + OnInvalidMessage(systemList.ItemAtIndex(index).filter, packet, packet->data[0]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + break; + } + + return RR_CONTINUE_PROCESSING; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/MessageFilter.h b/src/raknet/MessageFilter.h new file mode 100755 index 0000000..011bb36 --- /dev/null +++ b/src/raknet/MessageFilter.h @@ -0,0 +1,191 @@ +/// \file +/// \brief Message filter plugin. Assigns systems to FilterSets. Each FilterSet limits what messages are allowed. This is a security related plugin. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_MessageFilter==1 + +#ifndef __MESSAGE_FILTER_PLUGIN_H +#define __MESSAGE_FILTER_PLUGIN_H + +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "DS_OrderedList.h" +#include "DS_Hash.h" +#include "Export.h" + +/// MessageIdentifier (ID_*) values shoudln't go higher than this. Change it if you do. +#define MESSAGE_FILTER_MAX_MESSAGE_ID 256 + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \internal Has to be public so some of the shittier compilers can use it. +int RAK_DLL_EXPORT MessageFilterStrComp( char *const &key,char *const &data ); + +/// \internal Has to be public so some of the shittier compilers can use it. +struct FilterSet +{ + bool banOnFilterTimeExceed; + bool kickOnDisallowedMessage; + bool banOnDisallowedMessage; + RakNet::TimeMS disallowedMessageBanTimeMS; + RakNet::TimeMS timeExceedBanTimeMS; + RakNet::TimeMS maxMemberTimeMS; + void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData, unsigned char messageID); + void *disallowedCallbackUserData; + void (*timeoutCallback)(RakPeerInterface *peer, AddressOrGUID systemAddress, int filterSetID, void *userData); + void *timeoutUserData; + int filterSetID; + bool allowedIDs[MESSAGE_FILTER_MAX_MESSAGE_ID]; + DataStructures::OrderedList allowedRPC4; +}; + +/// \internal Has to be public so some of the shittier compilers can use it. +int RAK_DLL_EXPORT FilterSetComp( const int &key, FilterSet * const &data ); + +/// \internal Has to be public so some of the shittier compilers can use it. +struct FilteredSystem +{ + FilterSet *filter; + RakNet::TimeMS timeEnteredThisSet; +}; + +/// \defgroup MESSAGEFILTER_GROUP MessageFilter +/// \brief Remote incoming packets from unauthorized systems +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Assigns systems to FilterSets. Each FilterSet limits what kinds of messages are allowed. +/// \details The MessageFilter plugin is used for security where you limit what systems can send what kind of messages.
    +/// You implicitly define FilterSets, and add allowed message IDs to these FilterSets.
    +/// You then add systems to these filters, such that those systems are limited to sending what the filters allows.
    +/// You can automatically assign systems to a filter.
    +/// You can automatically kick and possibly ban users that stay in a filter too long, or send the wrong message.
    +/// Each system is a member of either zero or one filters.
    +/// Add this plugin before any plugin you wish to filter (most likely just add this plugin before any other). +/// \ingroup MESSAGEFILTER_GROUP +class RAK_DLL_EXPORT MessageFilter : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(MessageFilter) + + MessageFilter(); + virtual ~MessageFilter(); + + // -------------------------------------------------------------------------------------------- + // User functions + // -------------------------------------------------------------------------------------------- + + /// Automatically add all new systems to a particular filter + /// Defaults to -1 + /// \param[in] filterSetID Which filter to add new systems to. <0 for do not add. + void SetAutoAddNewConnectionsToFilter(int filterSetID); + + /// Allow a range of message IDs + /// Always allowed by default: ID_CONNECTION_REQUEST_ACCEPTED through ID_DOWNLOAD_PROGRESS + /// Usually you specify a range to make it easier to add new enumerations without having to constantly refer back to this function. + /// \param[in] allow True to allow this message ID, false to disallow. By default, all messageIDs except the noted types are disallowed. This includes messages from other plugins! + /// \param[in] messageIDStart The first ID_* message to allow in the range. Inclusive. + /// \param[in] messageIDEnd The last ID_* message to allow in the range. Inclusive. + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetAllowMessageID(bool allow, int messageIDStart, int messageIDEnd,int filterSetID); + + /// Allow a specific RPC4 call + /// \pre MessageFilter must be attached before RPC4 + /// \param[in] uniqueID Identifier passed to RegisterFunction() + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetAllowRPC4(bool allow, const char* uniqueID, int filterSetID); + + /// What action to take on a disallowed message. You can kick or not. You can add them to the ban list for some time + /// By default no action is taken. The message is simply ignored. + /// param[in] 0 for permanent ban, >0 for ban time in milliseconds. + /// \param[in] kickOnDisallowed kick the system that sent a disallowed message. + /// \param[in] banOnDisallowed ban the system that sent a disallowed message. See \a banTimeMS for the ban duration + /// \param[in] banTimeMS Passed to the milliseconds parameter of RakPeer::AddToBanList. + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetActionOnDisallowedMessage(bool kickOnDisallowed, bool banOnDisallowed, RakNet::TimeMS banTimeMS, int filterSetID); + + /// Set a user callback to be called on an invalid message for a particular filterSet + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + /// \param[in] userData A pointer passed with the callback + /// \param[in] invalidMessageCallback A pointer to a C function to be called back with the specified parameters. + void SetDisallowedMessageCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID addressOrGUID, int filterSetID, void *userData, unsigned char messageID)); + + /// Set a user callback to be called when a user is disconnected due to SetFilterMaxTime + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + /// \param[in] userData A pointer passed with the callback + /// \param[in] invalidMessageCallback A pointer to a C function to be called back with the specified parameters. + void SetTimeoutCallback(int filterSetID, void *userData, void (*invalidMessageCallback)(RakPeerInterface *peer, AddressOrGUID addressOrGUID, int filterSetID, void *userData)); + + /// Limit how long a connection can stay in a particular filterSetID. After this time, the connection is kicked and possibly banned. + /// By default there is no limit to how long a connection can stay in a particular filter set. + /// \param[in] allowedTimeMS How many milliseconds to allow a connection to stay in this filter set. + /// \param[in] banOnExceed True or false to ban the system, or not, when \a allowedTimeMS is exceeded + /// \param[in] banTimeMS Passed to the milliseconds parameter of RakPeer::AddToBanList. + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. + void SetFilterMaxTime(int allowedTimeMS, bool banOnExceed, RakNet::TimeMS banTimeMS, int filterSetID); + + /// Get the filterSetID a system is using. Returns -1 for none. + /// \param[in] addressOrGUID The system we are referring to + int GetSystemFilterSet(AddressOrGUID addressOrGUID); + + /// Assign a system to a filter set. + /// Systems are automatically added to filter sets (or not) based on SetAutoAddNewConnectionsToFilter() + /// This function is used to change the filter set a system is using, to add it to a new filter set, or to remove it from all existin filter sets. + /// \param[in] addressOrGUID The system we are referring to + /// \param[in] filterSetID A user defined ID to represent a filter set. If no filter with this ID exists, one will be created with default settings. If -1, the system will be removed from all filter sets. + void SetSystemFilterSet(AddressOrGUID addressOrGUID, int filterSetID); + + /// Returns the number of systems subscribed to a particular filter set + /// Using anything other than -1 for \a filterSetID is slow, so you should store the returned value. + /// \param[in] filterSetID The filter set to limit to. Use -1 for none (just returns the total number of filter systems in that case). + unsigned GetSystemCount(int filterSetID) const; + + /// Returns the total number of filter sets. + /// \return The total number of filter sets. + unsigned GetFilterSetCount(void) const; + + /// Returns the ID of a filter set, by index + /// \param[in] An index between 0 and GetFilterSetCount()-1 inclusive + int GetFilterSetIDByIndex(unsigned index); + + /// Delete a FilterSet. All systems formerly subscribed to this filter are now unrestricted. + /// \param[in] filterSetID The ID of the filter set to delete. + void DeleteFilterSet(int filterSetID); + + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + +protected: + + void Clear(void); + void DeallocateFilterSet(FilterSet *filterSet); + FilterSet* GetFilterSetByID(int filterSetID); + void OnInvalidMessage(FilterSet *filterSet, AddressOrGUID systemAddress, unsigned char messageID); + + DataStructures::OrderedList filterList; + // Change to guid + DataStructures::Hash systemList; + + int autoAddNewConnectionsToFilter; + RakNet::Time whenLastTimeoutCheck; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/MessageIdentifiers.h b/src/raknet/MessageIdentifiers.h new file mode 100755 index 0000000..65917db --- /dev/null +++ b/src/raknet/MessageIdentifiers.h @@ -0,0 +1,403 @@ +/// \file +/// \brief All the message identifiers used by RakNet. Message identifiers comprise the first byte of any message. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __MESSAGE_IDENTIFIERS_H +#define __MESSAGE_IDENTIFIERS_H + +#if defined(RAKNET_USE_CUSTOM_PACKET_IDS) +#include "CustomPacketIdentifiers.h" +#else + +enum OutOfBandIdentifiers +{ + ID_NAT_ESTABLISH_UNIDIRECTIONAL, + ID_NAT_ESTABLISH_BIDIRECTIONAL, + ID_NAT_TYPE_DETECT, + ID_ROUTER_2_REPLY_TO_SENDER_PORT, + ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT, + ID_ROUTER_2_MINI_PUNCH_REPLY, + ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE, + ID_XBOX_360_VOICE, + ID_XBOX_360_GET_NETWORK_ROOM, + ID_XBOX_360_RETURN_NETWORK_ROOM, +}; + +/// You should not edit the file MessageIdentifiers.h as it is a part of RakNet static library +/// To define your own message id, define an enum following the code example that follows. +/// +/// \code +/// enum { +/// ID_MYPROJECT_MSG_1 = ID_USER_PACKET_ENUM, +/// ID_MYPROJECT_MSG_2, +/// ... +/// }; +/// \endcode +/// +/// \note All these enumerations should be casted to (unsigned char) before writing them to RakNet::BitStream +enum DefaultMessageIDTypes +{ + // + // RESERVED TYPES - DO NOT CHANGE THESE + // All types from RakPeer + // + /// These types are never returned to the user. + /// Ping from a connected system. Update timestamps (internal use only) + ID_CONNECTED_PING, + /// Ping from an unconnected system. Reply but do not update timestamps. (internal use only) + ID_UNCONNECTED_PING, + /// Ping from an unconnected system. Only reply if we have open connections. Do not update timestamps. (internal use only) + ID_UNCONNECTED_PING_OPEN_CONNECTIONS, + /// Pong from a connected system. Update timestamps (internal use only) + ID_CONNECTED_PONG, + /// A reliable packet to detect lost connections (internal use only) + ID_DETECT_LOST_CONNECTIONS, + /// C2S: Initial query: Header(1), OfflineMesageID(16), Protocol number(1), Pad(toMTU), sent with no fragment set. + /// If protocol fails on server, returns ID_INCOMPATIBLE_PROTOCOL_VERSION to client + ID_OPEN_CONNECTION_REQUEST_1, + /// S2C: Header(1), OfflineMesageID(16), server GUID(8), HasSecurity(1), Cookie(4, if HasSecurity) + /// , public key (if do security is true), MTU(2). If public key fails on client, returns ID_PUBLIC_KEY_MISMATCH + ID_OPEN_CONNECTION_REPLY_1, + /// C2S: Header(1), OfflineMesageID(16), Cookie(4, if HasSecurity is true on the server), clientSupportsSecurity(1 bit), + /// handshakeChallenge (if has security on both server and client), remoteBindingAddress(6), MTU(2), client GUID(8) + /// Connection slot allocated if cookie is valid, server is not full, GUID and IP not already in use. + ID_OPEN_CONNECTION_REQUEST_2, + /// S2C: Header(1), OfflineMesageID(16), server GUID(8), mtu(2), doSecurity(1 bit), handshakeAnswer (if do security is true) + ID_OPEN_CONNECTION_REPLY_2, + /// C2S: Header(1), GUID(8), Timestamp, HasSecurity(1), Proof(32) + ID_CONNECTION_REQUEST, + /// RakPeer - Remote system requires secure connections, pass a public key to RakPeerInterface::Connect() + ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY, + /// RakPeer - We passed a public key to RakPeerInterface::Connect(), but the other system did not have security turned on + ID_OUR_SYSTEM_REQUIRES_SECURITY, + /// RakPeer - Wrong public key passed to RakPeerInterface::Connect() + ID_PUBLIC_KEY_MISMATCH, + /// RakPeer - Same as ID_ADVERTISE_SYSTEM, but intended for internal use rather than being passed to the user. + /// Second byte indicates type. Used currently for NAT punchthrough for receiver port advertisement. See ID_NAT_ADVERTISE_RECIPIENT_PORT + ID_OUT_OF_BAND_INTERNAL, + /// If RakPeerInterface::Send() is called where PacketReliability contains _WITH_ACK_RECEIPT, then on a later call to + /// RakPeerInterface::Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS. The message will be 5 bytes long, + /// and bytes 1-4 inclusive will contain a number in native order containing a number that identifies this message. + /// This number will be returned by RakPeerInterface::Send() or RakPeerInterface::SendList(). ID_SND_RECEIPT_ACKED means that + /// the message arrived + ID_SND_RECEIPT_ACKED, + /// If RakPeerInterface::Send() is called where PacketReliability contains UNRELIABLE_WITH_ACK_RECEIPT, then on a later call to + /// RakPeerInterface::Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS. The message will be 5 bytes long, + /// and bytes 1-4 inclusive will contain a number in native order containing a number that identifies this message. This number + /// will be returned by RakPeerInterface::Send() or RakPeerInterface::SendList(). ID_SND_RECEIPT_LOSS means that an ack for the + /// message did not arrive (it may or may not have been delivered, probably not). On disconnect or shutdown, you will not get + /// ID_SND_RECEIPT_LOSS for unsent messages, you should consider those messages as all lost. + ID_SND_RECEIPT_LOSS, + + + // + // USER TYPES - DO NOT CHANGE THESE + // + + /// RakPeer - In a client/server environment, our connection request to the server has been accepted. + ID_CONNECTION_REQUEST_ACCEPTED, + /// RakPeer - Sent to the player when a connection request cannot be completed due to inability to connect. + ID_CONNECTION_ATTEMPT_FAILED, + /// RakPeer - Sent a connect request to a system we are currently connected to. + ID_ALREADY_CONNECTED, + /// RakPeer - A remote system has successfully connected. + ID_NEW_INCOMING_CONNECTION, + /// RakPeer - The system we attempted to connect to is not accepting new connections. + ID_NO_FREE_INCOMING_CONNECTIONS, + /// RakPeer - The system specified in Packet::systemAddress has disconnected from us. For the client, this would mean the + /// server has shutdown. + ID_DISCONNECTION_NOTIFICATION, + /// RakPeer - Reliable packets cannot be delivered to the system specified in Packet::systemAddress. The connection to that + /// system has been closed. + ID_CONNECTION_LOST, + /// RakPeer - We are banned from the system we attempted to connect to. + ID_CONNECTION_BANNED, + /// RakPeer - The remote system is using a password and has refused our connection because we did not set the correct password. + ID_INVALID_PASSWORD, + // RAKNET_PROTOCOL_VERSION in RakNetVersion.h does not match on the remote system what we have on our system + // This means the two systems cannot communicate. + // The 2nd byte of the message contains the value of RAKNET_PROTOCOL_VERSION for the remote system + ID_INCOMPATIBLE_PROTOCOL_VERSION, + // Means that this IP address connected recently, and can't connect again as a security measure. See + /// RakPeer::SetLimitIPConnectionFrequency() + ID_IP_RECENTLY_CONNECTED, + /// RakPeer - The sizeof(RakNetTime) bytes following this byte represent a value which is automatically modified by the difference + /// in system times between the sender and the recipient. Requires that you call SetOccasionalPing. + ID_TIMESTAMP, + /// RakPeer - Pong from an unconnected system. First byte is ID_UNCONNECTED_PONG, second sizeof(RakNet::TimeMS) bytes is the ping, + /// following bytes is system specific enumeration data. + /// Read using bitstreams + ID_UNCONNECTED_PONG, + /// RakPeer - Inform a remote system of our IP/Port. On the recipient, all data past ID_ADVERTISE_SYSTEM is whatever was passed to + /// the data parameter + ID_ADVERTISE_SYSTEM, + // RakPeer - Downloading a large message. Format is ID_DOWNLOAD_PROGRESS (MessageID), partCount (unsigned int), + /// partTotal (unsigned int), + /// partLength (unsigned int), first part data (length <= MAX_MTU_SIZE). See the three parameters partCount, partTotal + /// and partLength in OnFileProgress in FileListTransferCBInterface.h + ID_DOWNLOAD_PROGRESS, + + /// ConnectionGraph2 plugin - In a client/server environment, a client other than ourselves has disconnected gracefully. + /// Packet::systemAddress is modified to reflect the systemAddress of this client. + ID_REMOTE_DISCONNECTION_NOTIFICATION, + /// ConnectionGraph2 plugin - In a client/server environment, a client other than ourselves has been forcefully dropped. + /// Packet::systemAddress is modified to reflect the systemAddress of this client. + ID_REMOTE_CONNECTION_LOST, + /// ConnectionGraph2 plugin: Bytes 1-4 = count. for (count items) contains {SystemAddress, RakNetGUID, 2 byte ping} + ID_REMOTE_NEW_INCOMING_CONNECTION, + + /// FileListTransfer plugin - Setup data + ID_FILE_LIST_TRANSFER_HEADER, + /// FileListTransfer plugin - A file + ID_FILE_LIST_TRANSFER_FILE, + // Ack for reference push, to send more of the file + ID_FILE_LIST_REFERENCE_PUSH_ACK, + + /// DirectoryDeltaTransfer plugin - Request from a remote system for a download of a directory + ID_DDT_DOWNLOAD_REQUEST, + + /// RakNetTransport plugin - Transport provider message, used for remote console + ID_TRANSPORT_STRING, + + /// ReplicaManager plugin - Create an object + ID_REPLICA_MANAGER_CONSTRUCTION, + /// ReplicaManager plugin - Changed scope of an object + ID_REPLICA_MANAGER_SCOPE_CHANGE, + /// ReplicaManager plugin - Serialized data of an object + ID_REPLICA_MANAGER_SERIALIZE, + /// ReplicaManager plugin - New connection, about to send all world objects + ID_REPLICA_MANAGER_DOWNLOAD_STARTED, + /// ReplicaManager plugin - Finished downloading all serialized objects + ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE, + + /// RakVoice plugin - Open a communication channel + ID_RAKVOICE_OPEN_CHANNEL_REQUEST, + /// RakVoice plugin - Communication channel accepted + ID_RAKVOICE_OPEN_CHANNEL_REPLY, + /// RakVoice plugin - Close a communication channel + ID_RAKVOICE_CLOSE_CHANNEL, + /// RakVoice plugin - Voice data + ID_RAKVOICE_DATA, + + /// Autopatcher plugin - Get a list of files that have changed since a certain date + ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE, + /// Autopatcher plugin - A list of files to create + ID_AUTOPATCHER_CREATION_LIST, + /// Autopatcher plugin - A list of files to delete + ID_AUTOPATCHER_DELETION_LIST, + /// Autopatcher plugin - A list of files to get patches for + ID_AUTOPATCHER_GET_PATCH, + /// Autopatcher plugin - A list of patches for a list of files + ID_AUTOPATCHER_PATCH_LIST, + /// Autopatcher plugin - Returned to the user: An error from the database repository for the autopatcher. + ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR, + /// Autopatcher plugin - Finished getting all files from the autopatcher + ID_AUTOPATCHER_FINISHED_INTERNAL, + ID_AUTOPATCHER_FINISHED, + /// Autopatcher plugin - Returned to the user: You must restart the application to finish patching. + ID_AUTOPATCHER_RESTART_APPLICATION, + + /// NATPunchthrough plugin: internal + ID_NAT_PUNCHTHROUGH_REQUEST, + /// NATPunchthrough plugin: internal + ID_NAT_GROUP_PUNCHTHROUGH_REQUEST, + /// NATPunchthrough plugin: internal + ID_NAT_GROUP_PUNCHTHROUGH_REPLY, + /// NATPunchthrough plugin: internal + ID_NAT_CONNECT_AT_TIME, + /// NATPunchthrough plugin: internal + ID_NAT_GET_MOST_RECENT_PORT, + /// NATPunchthrough plugin: internal + ID_NAT_CLIENT_READY, + /// NATPunchthrough plugin: internal + ID_NAT_GROUP_PUNCHTHROUGH_FAILURE_NOTIFICATION, + + /// NATPunchthrough plugin: Destination system is not connected to the server. Bytes starting at offset 1 contains the + /// RakNetGUID destination field of NatPunchthroughClient::OpenNAT(). + ID_NAT_TARGET_NOT_CONNECTED, + /// NATPunchthrough plugin: Destination system is not responding to ID_NAT_GET_MOST_RECENT_PORT. Possibly the plugin is not installed. + /// Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT(). + ID_NAT_TARGET_UNRESPONSIVE, + /// NATPunchthrough plugin: The server lost the connection to the destination system while setting up punchthrough. + /// Possibly the plugin is not installed. Bytes starting at offset 1 contains the RakNetGUID destination + /// field of NatPunchthroughClient::OpenNAT(). + ID_NAT_CONNECTION_TO_TARGET_LOST, + /// NATPunchthrough plugin: This punchthrough is already in progress. Possibly the plugin is not installed. + /// Bytes starting at offset 1 contains the RakNetGUID destination field of NatPunchthroughClient::OpenNAT(). + ID_NAT_ALREADY_IN_PROGRESS, + /// NATPunchthrough plugin: This message is generated on the local system, and does not come from the network. + /// packet::guid contains the destination field of NatPunchthroughClient::OpenNAT(). Byte 1 contains 1 if you are the sender, 0 if not + ID_NAT_PUNCHTHROUGH_FAILED, + /// NATPunchthrough plugin: Punchthrough succeeded. See packet::systemAddress and packet::guid. Byte 1 contains 1 if you are the sender, + /// 0 if not. You can now use RakPeer::Connect() or other calls to communicate with this system. + ID_NAT_PUNCHTHROUGH_SUCCEEDED, + /// NATPunchthrough plugin: OpenNATGroup failed. + /// packet::guid contains the facilitator field of NatPunchthroughClient::OpenNAT() + /// Data format starts at byte 1:
    + /// (char) passedSystemsCount,
    + /// (RakNetGuid, SystemAddress) (for passedSystemsCount),
    + /// (char) ignoredSystemsCount (caused by ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_CONNECTION_TO_TARGET_LOST, ID_NAT_TARGET_UNRESPONSIVE),
    + /// RakNetGuid (for ignoredSystemsCount),
    + /// (char) failedSystemsCount,
    + /// RakNetGuid (for failedSystemsCount)
    + ID_NAT_GROUP_PUNCH_FAILED, + /// NATPunchthrough plugin: OpenNATGroup succeeded. + /// packet::guid contains the facilitator field of NatPunchthroughClient::OpenNAT() + /// See ID_NAT_GROUP_PUNCH_FAILED for data format + ID_NAT_GROUP_PUNCH_SUCCEEDED, + + /// ReadyEvent plugin - Set the ready state for a particular system + /// First 4 bytes after the message contains the id + ID_READY_EVENT_SET, + /// ReadyEvent plugin - Unset the ready state for a particular system + /// First 4 bytes after the message contains the id + ID_READY_EVENT_UNSET, + /// All systems are in state ID_READY_EVENT_SET + /// First 4 bytes after the message contains the id + ID_READY_EVENT_ALL_SET, + /// \internal, do not process in your game + /// ReadyEvent plugin - Request of ready event state - used for pulling data when newly connecting + ID_READY_EVENT_QUERY, + + /// Lobby packets. Second byte indicates type. + ID_LOBBY_GENERAL, + + // RPC3, RPC4Plugin error + ID_RPC_REMOTE_ERROR, + /// Plugin based replacement for RPC system + ID_RPC_PLUGIN, + + /// FileListTransfer transferring large files in chunks that are read only when needed, to save memory + ID_FILE_LIST_REFERENCE_PUSH, + /// Force the ready event to all set + ID_READY_EVENT_FORCE_ALL_SET, + + /// Rooms function + ID_ROOMS_EXECUTE_FUNC, + ID_ROOMS_LOGON_STATUS, + ID_ROOMS_HANDLE_CHANGE, + + /// Lobby2 message + ID_LOBBY2_SEND_MESSAGE, + ID_LOBBY2_SERVER_ERROR, + + /// Informs user of a new host GUID. Packet::Guid contains this new host RakNetGuid. The old host can be read out using BitStream->Read(RakNetGuid) starting on byte 1 + /// This is not returned until connected to a remote system + /// If the oldHost is UNASSIGNED_RAKNET_GUID, then this is the first time the host has been determined + ID_FCM2_NEW_HOST, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_REQUEST_FCMGUID, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_RESPOND_CONNECTION_COUNT, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_INFORM_FCMGUID, + /// \internal For FullyConnectedMesh2 plugin + ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT, + + /// UDP proxy messages. Second byte indicates type. + ID_UDP_PROXY_GENERAL, + + /// SQLite3Plugin - execute + ID_SQLite3_EXEC, + /// SQLite3Plugin - Remote database is unknown + ID_SQLite3_UNKNOWN_DB, + /// Events happening with SQLiteClientLoggerPlugin + ID_SQLLITE_LOGGER, + + /// Sent to NatTypeDetectionServer + ID_NAT_TYPE_DETECTION_REQUEST, + /// Sent to NatTypeDetectionClient. Byte 1 contains the type of NAT detected. + ID_NAT_TYPE_DETECTION_RESULT, + + /// Used by the router2 plugin + ID_ROUTER_2_INTERNAL, + /// No path is available or can be established to the remote system + /// Packet::guid contains the endpoint guid that we were trying to reach + ID_ROUTER_2_FORWARDING_NO_PATH, + /// \brief You can now call connect, ping, or other operations to the destination system. + /// + /// Connect as follows: + /// + /// RakNet::BitStream bs(packet->data, packet->length, false); + /// bs.IgnoreBytes(sizeof(MessageID)); + /// RakNetGUID endpointGuid; + /// bs.Read(endpointGuid); + /// unsigned short sourceToDestPort; + /// bs.Read(sourceToDestPort); + /// char ipAddressString[32]; + /// packet->systemAddress.ToString(false, ipAddressString); + /// rakPeerInterface->Connect(ipAddressString, sourceToDestPort, 0,0); + ID_ROUTER_2_FORWARDING_ESTABLISHED, + /// The IP address for a forwarded connection has changed + /// Read endpointGuid and port as per ID_ROUTER_2_FORWARDING_ESTABLISHED + ID_ROUTER_2_REROUTED, + + /// \internal Used by the team balancer plugin + ID_TEAM_BALANCER_INTERNAL, + /// Cannot switch to the desired team because it is full. However, if someone on that team leaves, you will + /// get ID_TEAM_BALANCER_SET_TEAM later. Byte 1 contains the team you requested to join. Following bytes contain NetworkID of which member. + ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING, + /// Cannot switch to the desired team because all teams are locked. However, if someone on that team leaves, + /// you will get ID_TEAM_BALANCER_SET_TEAM later. Byte 1 contains the team you requested to join. + ID_TEAM_BALANCER_TEAMS_LOCKED, + /// Team balancer plugin informing you of your team. Byte 1 contains the team you requested to join. Following bytes contain NetworkID of which member. + ID_TEAM_BALANCER_TEAM_ASSIGNED, + + /// Gamebryo Lightspeed integration + ID_LIGHTSPEED_INTEGRATION, + + /// XBOX integration + ID_XBOX_LOBBY, + + /// The password we used to challenge the other system passed, meaning the other system has called TwoWayAuthentication::AddPassword() with the same password we passed to TwoWayAuthentication::Challenge() + /// You can read the identifier used to challenge as follows: + /// RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(RakNet::MessageID)); RakNet::RakString password; bs.Read(password); + ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS, + ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS, + /// A remote system sent us a challenge using TwoWayAuthentication::Challenge(), and the challenge failed. + /// If the other system must pass the challenge to stay connected, you should call RakPeer::CloseConnection() to terminate the connection to the other system. + ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE, + /// The other system did not add the password we used to TwoWayAuthentication::AddPassword() + /// You can read the identifier used to challenge as follows: + /// RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(MessageID)); RakNet::RakString password; bs.Read(password); + ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE, + /// The other system did not respond within a timeout threshhold. Either the other system is not running the plugin or the other system was blocking on some operation for a long time. + /// You can read the identifier used to challenge as follows: + /// RakNet::BitStream bs(packet->data, packet->length, false); bs.IgnoreBytes(sizeof(MessageID)); RakNet::RakString password; bs.Read(password); + ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, + /// \internal + ID_TWO_WAY_AUTHENTICATION_NEGOTIATION, + + /// CloudClient / CloudServer + ID_CLOUD_POST_REQUEST, + ID_CLOUD_RELEASE_REQUEST, + ID_CLOUD_GET_REQUEST, + ID_CLOUD_GET_RESPONSE, + ID_CLOUD_UNSUBSCRIBE_REQUEST, + ID_CLOUD_SERVER_TO_SERVER_COMMAND, + ID_CLOUD_SUBSCRIPTION_NOTIFICATION, + + // So I can add more without changing user enumerations + ID_RESERVED_1, + ID_RESERVED_2, + ID_RESERVED_3, + ID_RESERVED_4, + ID_RESERVED_5, + ID_RESERVED_6, + ID_RESERVED_7, + ID_RESERVED_8, + ID_RESERVED_9, + + // For the user to use. Start your first enumeration at this value. + ID_USER_PACKET_ENUM, + //------------------------------------------------------------------------------------------------------------- + +}; + +#endif // RAKNET_USE_CUSTOM_PACKET_IDS + +#endif diff --git a/src/raknet/NatPunchthroughClient.cpp b/src/raknet/NatPunchthroughClient.cpp new file mode 100755 index 0000000..da1c948 --- /dev/null +++ b/src/raknet/NatPunchthroughClient.cpp @@ -0,0 +1,970 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughClient==1 + +#include "NatPunchthroughClient.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "GetTime.h" +#include "PacketLogger.h" +#include "Itoa.h" + +using namespace RakNet; + +void NatPunchthroughDebugInterface_Printf::OnClientMessage(const char *msg) +{ + printf("%s\n", msg); +} +#if _RAKNET_SUPPORT_PacketLogger==1 +void NatPunchthroughDebugInterface_PacketLogger::OnClientMessage(const char *msg) +{ + if (pl) + { + pl->WriteMiscellaneous("Nat", msg); + } +} +#endif + +STATIC_FACTORY_DEFINITIONS(NatPunchthroughClient,NatPunchthroughClient); + +NatPunchthroughClient::NatPunchthroughClient() +{ + natPunchthroughDebugInterface=0; + mostRecentNewExternalPort=0; + sp.nextActionTime=0; +} +NatPunchthroughClient::~NatPunchthroughClient() +{ + rakPeerInterface=0; + Clear(); +} +bool NatPunchthroughClient::OpenNAT(RakNetGUID destination, const SystemAddress &facilitator) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(facilitator); + if (cs!=IS_CONNECTED) + return false; + + SendPunchthrough(destination, facilitator); + return true; +} +bool NatPunchthroughClient::OpenNATGroup(DataStructures::List destinationSystems, const SystemAddress &facilitator) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(facilitator); + if (cs!=IS_CONNECTED) + return false; + + unsigned long i; + for (i=0; i < destinationSystems.Size(); i++) + { + SendPunchthrough(destinationSystems[i], facilitator); + } + + GroupPunchRequest *gpr = RakNet::OP_NEW(_FILE_AND_LINE_); + gpr->facilitator=facilitator; + gpr->pendingList=destinationSystems; + groupPunchRequests.Push(gpr, _FILE_AND_LINE_); + + return true; +} +void NatPunchthroughClient::SetDebugInterface(NatPunchthroughDebugInterface *i) +{ + natPunchthroughDebugInterface=i; +} +void NatPunchthroughClient::Update(void) +{ + RakNet::Time time = RakNet::GetTime(); + if (sp.nextActionTime && sp.nextActionTime < time) + { + RakNet::Time delta = time - sp.nextActionTime; + if (sp.testMode==SendPing::TESTING_INTERNAL_IPS) + { + SendOutOfBand(sp.internalIds[sp.attemptCount],ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + if (++sp.retryCount>=pc.UDP_SENDS_PER_PORT_INTERNAL) + { + ++sp.attemptCount; + sp.retryCount=0; + } + + if (sp.attemptCount>=pc.MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK) + { + sp.testMode=SendPing::WAITING_FOR_INTERNAL_IPS_RESPONSE; + if (pc.INTERNAL_IP_WAIT_AFTER_ATTEMPTS>0) + { + sp.nextActionTime=time+pc.INTERNAL_IP_WAIT_AFTER_ATTEMPTS-delta; + } + else + { + // TESTING: Try sending to unused ports on the remote system to reserve our own ports while not getting banned + sp.testMode=SendPing::SEND_WITH_TTL; + // sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + sp.attemptCount=0; + } + } + else + { + sp.nextActionTime=time+pc.TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL-delta; + } + } + else if (sp.testMode==SendPing::WAITING_FOR_INTERNAL_IPS_RESPONSE) + { + // TESTING: Try sending to unused ports on the remote system to reserve our own ports while not getting banned + sp.testMode=SendPing::SEND_WITH_TTL; + // sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + sp.attemptCount=0; + } + else if (sp.testMode==SendPing::SEND_WITH_TTL) + { + // See http://www.jenkinssoftware.com/forum/index.php?topic=4021.0 + // For Linux 2.6.32 soft-router (ip-tables) + /* + If I understand correctly, getting a datagram on a particular address that was not previously used causes that the port for that address to not be used for when a reply would have otherwise been sent back from that address. + + PHASE 1: + 1. System 1 and 2 send to each other. + 2. Due to latency, system 1 sends first using the server port. + 3. System 2 gets the datagram and no longer uses the server port. Instead, it replies using port 1024. + 4. System 1 gets the reply. The source port is wrong, so it is rejected. + + To put it another way, if a router gets a datagram on a port that was not previously used, it will not reply on that port. However, if it doesn't reply on that port, the message will not be accepted by the remote system. + */ + + // Send to unused port. We do not want the message to arrive, just to open our router's table + SystemAddress sa=sp.targetAddress; + int ttlSendIndex; + for (ttlSendIndex=0; ttlSendIndex <= pc.MAX_PREDICTIVE_PORT_RANGE; ttlSendIndex++) + { + sa.SetPort((unsigned short) (sp.targetAddress.GetPort()+ttlSendIndex)); + SendTTL(sa); + } + + // Only do this stage once + // Wait 250 milliseconds for next stage. The delay is so that even with timing errors both systems send out the + // datagram with TTL before either sends a real one + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + sp.nextActionTime=time-delta+250; + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT) + { + SystemAddress sa=sp.targetAddress; + sa.SetPort((unsigned short) (sa.GetPort()+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + sp.testMode=SendPing::WAITING_AFTER_ALL_ATTEMPTS; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS-delta; + + // Skip TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT, etc. + /* + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT; + sp.attemptCount=0; + */ + } + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT) + { + SystemAddress sa=sp.targetAddress; + if ( sp.targetGuid < rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS) ) + sa.SetPort((unsigned short) (1024+sp.attemptCount)); + else + sa.SetPort((unsigned short) (sa.GetPort()+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + // From 1024 disabled, never helps as I've seen, but slows down the process by half + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_1024; + sp.attemptCount=0; + } + + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_1024) + { + SystemAddress sa=sp.targetAddress; + if ( sp.targetGuid > rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS) ) + sa.SetPort((unsigned short) (1024+sp.attemptCount)); + else + sa.SetPort((unsigned short) (sa.GetPort()+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + // From 1024 disabled, never helps as I've seen, but slows down the process by half + sp.testMode=SendPing::TESTING_EXTERNAL_IPS_1024_TO_1024; + sp.attemptCount=0; + } + } + else if (sp.testMode==SendPing::TESTING_EXTERNAL_IPS_1024_TO_1024) + { + SystemAddress sa=sp.targetAddress; + sa.SetPort((unsigned short) (1024+sp.attemptCount)); + SendOutOfBand(sa,ID_NAT_ESTABLISH_UNIDIRECTIONAL); + + IncrementExternalAttemptCount(time, delta); + + if (sp.attemptCount>pc.MAX_PREDICTIVE_PORT_RANGE) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Likely bidirectional punchthrough failure to guid %s, system address %s.", guidString, ipAddressString)); + } + + sp.testMode=SendPing::WAITING_AFTER_ALL_ATTEMPTS; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS-delta; + } + } + else if (sp.testMode==SendPing::WAITING_AFTER_ALL_ATTEMPTS) + { + // Failed. Tell the user + OnPunchthroughFailure(); + UpdateGroupPunchOnNatResult(sp.facilitator, sp.targetGuid, sp.targetAddress, 1); + } + + if (sp.testMode==SendPing::PUNCHING_FIXED_PORT) + { + SendOutOfBand(sp.targetAddress,ID_NAT_ESTABLISH_BIDIRECTIONAL); + if (++sp.retryCount>=sp.punchingFixedPortAttempts) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Likely unidirectional punchthrough failure to guid %s, system address %s.", guidString, ipAddressString)); + } + + sp.testMode=SendPing::WAITING_AFTER_ALL_ATTEMPTS; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS-delta; + } + else + { + if ((sp.retryCount%pc.UDP_SENDS_PER_PORT_EXTERNAL)==0) + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_BETWEEN_PORTS-delta; + else + sp.nextActionTime=time+pc.TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL-delta; + } + } + } + + // Remove elapsed groupRequestsInProgress + unsigned int i; + i=0; + while (i < groupRequestsInProgress.Size()) + { + if (time > groupRequestsInProgress[i].time) + groupRequestsInProgress.RemoveAtIndexFast(i); + else + i++; + } +} +void NatPunchthroughClient::PushFailure(void) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)); + p->data[0]=ID_NAT_PUNCHTHROUGH_FAILED; + p->systemAddress=sp.targetAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=sp.targetGuid; + if (sp.weAreSender) + p->data[1]=1; + else + p->data[1]=0; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); +} +void NatPunchthroughClient::OnPunchthroughFailure(void) +{ + if (pc.retryOnFailure==false) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Failed punchthrough once. Returning failure to guid %s, system address %s to user.", guidString, ipAddressString)); + } + + PushFailure(); + OnReadyForNextPunchthrough(); + return; + } + + unsigned int i; + for (i=0; i < failedAttemptList.Size(); i++) + { + if (failedAttemptList[i].guid==sp.targetGuid) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Failed punchthrough twice. Returning failure to guid %s, system address %s to user.", guidString, ipAddressString)); + } + + // Failed a second time, so return failed to user + PushFailure(); + + OnReadyForNextPunchthrough(); + + failedAttemptList.RemoveAtIndexFast(i); + return; + } + } + + if (rakPeerInterface->GetConnectionState(sp.facilitator)!=IS_CONNECTED) + { + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Not connected to facilitator, so cannot retry punchthrough after first failure. Returning failure onj guid %s, system address %s to user.", guidString, ipAddressString)); + } + + // Failed, and can't try again because no facilitator + PushFailure(); + return; + } + + if (natPunchthroughDebugInterface) + { + char ipAddressString[32]; + sp.targetAddress.ToString(true, ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("First punchthrough failure on guid %s, system address %s. Reattempting.", guidString, ipAddressString)); + } + + // Failed the first time. Add to the failure queue and try again + AddrAndGuid aag; + aag.addr=sp.targetAddress; + aag.guid=sp.targetGuid; + failedAttemptList.Push(aag, _FILE_AND_LINE_); + + // Tell the server we are ready + OnReadyForNextPunchthrough(); + + // If we are the sender, try again, immediately if possible, else added to the queue on the faciltiator + if (sp.weAreSender) + SendPunchthrough(sp.targetGuid, sp.facilitator); +} +PluginReceiveResult NatPunchthroughClient::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_NAT_GET_MOST_RECENT_PORT: + { + OnGetMostRecentPort(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_NAT_PUNCHTHROUGH_FAILED: + case ID_NAT_PUNCHTHROUGH_SUCCEEDED: + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + break; + case ID_OUT_OF_BAND_INTERNAL: + if (packet->length>=2 && + (packet->data[1]==ID_NAT_ESTABLISH_UNIDIRECTIONAL || packet->data[1]==ID_NAT_ESTABLISH_BIDIRECTIONAL) && + sp.nextActionTime!=0) + { + RakNet::BitStream bs(packet->data,packet->length,false); + bs.IgnoreBytes(2); + uint16_t sessionId; + bs.Read(sessionId); +// RakAssert(sessionId<100); + if (sessionId!=sp.sessionId) + break; + + char ipAddressString[32]; + packet->systemAddress.ToString(true,ipAddressString); + // sp.targetGuid==packet->guid is because the internal IP addresses reported may include loopbacks not reported by RakPeer::IsLocalIP() + if (packet->data[1]==ID_NAT_ESTABLISH_UNIDIRECTIONAL && sp.targetGuid==packet->guid) + { + if (natPunchthroughDebugInterface) + { + char guidString[128]; + sp.targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Received ID_NAT_ESTABLISH_UNIDIRECTIONAL from guid %s, system address %s.", guidString, ipAddressString)); + } + if (sp.testMode!=SendPing::PUNCHING_FIXED_PORT) + { + sp.testMode=SendPing::PUNCHING_FIXED_PORT; + sp.retryCount+=sp.attemptCount*pc.UDP_SENDS_PER_PORT_EXTERNAL; + sp.targetAddress=packet->systemAddress; + // Keeps trying until the other side gives up too, in case it is unidirectional + sp.punchingFixedPortAttempts=pc.UDP_SENDS_PER_PORT_EXTERNAL*(pc.MAX_PREDICTIVE_PORT_RANGE+1); + } + + SendOutOfBand(sp.targetAddress,ID_NAT_ESTABLISH_BIDIRECTIONAL); + } + else if (packet->data[1]==ID_NAT_ESTABLISH_BIDIRECTIONAL && + sp.targetGuid==packet->guid) + { + // They send back our port + bs.Read(mostRecentNewExternalPort); + + SendOutOfBand(packet->systemAddress,ID_NAT_ESTABLISH_BIDIRECTIONAL); + + // Tell the user about the success + sp.targetAddress=packet->systemAddress; + PushSuccess(); + UpdateGroupPunchOnNatResult(sp.facilitator, sp.targetGuid, sp.targetAddress, 1); + OnReadyForNextPunchthrough(); + bool removedFromFailureQueue=RemoveFromFailureQueue(); + + if (natPunchthroughDebugInterface) + { + char guidString[128]; + sp.targetGuid.ToString(guidString); + if (removedFromFailureQueue) + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough to guid %s, system address %s succeeded on 2nd attempt.", guidString, ipAddressString)); + else + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough to guid %s, system address %s succeeded on 1st attempt.", guidString, ipAddressString)); + } + } + + // mostRecentNewExternalPort=packet->systemAddress.GetPort(); + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_NAT_ALREADY_IN_PROGRESS: + { + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID targetGuid; + incomingBs.Read(targetGuid); + // Don't update group, just use later message + // UpdateGroupPunchOnNatResult(packet->systemAddress, targetGuid, UNASSIGNED_SYSTEM_ADDRESS, 2); + if (natPunchthroughDebugInterface) + { + char guidString[128]; + targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough retry to guid %s failed due to ID_NAT_ALREADY_IN_PROGRESS. Returning failure.", guidString)); + } + + } + break; + case ID_NAT_TARGET_NOT_CONNECTED: + case ID_NAT_CONNECTION_TO_TARGET_LOST: + case ID_NAT_TARGET_UNRESPONSIVE: + { + const char *reason; + if (packet->data[0]==ID_NAT_TARGET_NOT_CONNECTED) + reason=(char *)"ID_NAT_TARGET_NOT_CONNECTED"; + else if (packet->data[0]==ID_NAT_CONNECTION_TO_TARGET_LOST) + reason=(char *)"ID_NAT_CONNECTION_TO_TARGET_LOST"; + else + reason=(char *)"ID_NAT_TARGET_UNRESPONSIVE"; + + + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + + RakNetGUID targetGuid; + incomingBs.Read(targetGuid); + UpdateGroupPunchOnNatResult(packet->systemAddress, targetGuid, UNASSIGNED_SYSTEM_ADDRESS, 2); + + if (packet->data[0]==ID_NAT_CONNECTION_TO_TARGET_LOST || + packet->data[0]==ID_NAT_TARGET_UNRESPONSIVE) + { + uint16_t sessionId; + incomingBs.Read(sessionId); + if (sessionId!=sp.sessionId) + break; + } + + unsigned int i; + for (i=0; i < failedAttemptList.Size(); i++) + { + if (failedAttemptList[i].guid==targetGuid) + { + if (natPunchthroughDebugInterface) + { + char guidString[128]; + targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough retry to guid %s failed due to %s.", guidString, reason)); + + } + + // If the retry target is not connected, or loses connection, or is not responsive, then previous failures cannot be retried. + + // Don't need to return failed, the other messages indicate failure anyway + /* + Packet *p = AllocatePacketUnified(sizeof(MessageID)); + p->data[0]=ID_NAT_PUNCHTHROUGH_FAILED; + p->systemAddress=failedAttemptList[i].addr; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=failedAttemptList[i].guid; + rakPeerInterface->PushBackPacket(p, false); + */ + + failedAttemptList.RemoveAtIndexFast(i); + break; + } + } + + if (natPunchthroughDebugInterface) + { + char guidString[128]; + targetGuid.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Punchthrough attempt to guid %s failed due to %s.", guidString, reason)); + } + + // Stop trying punchthrough + sp.nextActionTime=0; + + /* + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID failedSystem; + bs.Read(failedSystem); + bool deletedFirst=false; + unsigned int i=0; + while (i < pendingOpenNAT.Size()) + { + if (pendingOpenNAT[i].destination==failedSystem) + { + if (i==0) + deletedFirst=true; + pendingOpenNAT.RemoveAtIndex(i); + } + else + i++; + } + // Failed while in progress. Go to next in attempt queue + if (deletedFirst && pendingOpenNAT.Size()) + { + SendPunchthrough(pendingOpenNAT[0].destination, pendingOpenNAT[0].facilitator); + sp.nextActionTime=0; + } + */ + } + break; + case ID_TIMESTAMP: + if (packet->data[sizeof(MessageID)+sizeof(RakNet::Time)]==ID_NAT_CONNECT_AT_TIME) + { + OnConnectAtTime(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + break; + } + return RR_CONTINUE_PROCESSING; +} +/* +void NatPunchthroughClient::ProcessNextPunchthroughQueue(void) +{ + // Go to the next attempt + if (pendingOpenNAT.Size()) + pendingOpenNAT.RemoveAtIndex(0); + + // Do next punchthrough attempt + if (pendingOpenNAT.Size()) + SendPunchthrough(pendingOpenNAT[0].destination, pendingOpenNAT[0].facilitator); + + sp.nextActionTime=0; +} +*/ +void NatPunchthroughClient::OnConnectAtTime(Packet *packet) +{ +// RakAssert(sp.nextActionTime==0); + + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.Read(sp.nextActionTime); + bs.IgnoreBytes(sizeof(MessageID)); + bs.Read(sp.sessionId); + bs.Read(sp.targetAddress); + int j; +// int k; +// k=0; + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) + bs.Read(sp.internalIds[j]); + + // Prevents local testing + /* + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) + { + SystemAddress id; + bs.Read(id); + char str[32]; + id.ToString(false,str); + if (rakPeerInterface->IsLocalIP(str)==false) + sp.internalIds[k++]=id; + } + */ + sp.attemptCount=0; + sp.retryCount=0; + if (pc.MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK>0) + { + sp.testMode=SendPing::TESTING_INTERNAL_IPS; + } + else + { + // TESTING: Try sending to unused ports on the remote system to reserve our own ports while not getting banned + sp.testMode=SendPing::SEND_WITH_TTL; + // sp.testMode=SendPing::TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT; + } + bs.Read(sp.targetGuid); + bs.Read(sp.weAreSender); +} +void NatPunchthroughClient::SendTTL(const SystemAddress &sa) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + if (sa.GetPort()==0) + return; + + char ipAddressString[32]; + sa.ToString(false, ipAddressString); + // TTL of 1 doesn't get past the router, 2 might hit the other system on a LAN + rakPeerInterface->SendTTL(ipAddressString,sa.GetPort(), 2); +} +void NatPunchthroughClient::SendOutOfBand(SystemAddress sa, MessageID oobId) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + if (sa.GetPort()==0) + return; + + RakNet::BitStream oob; + oob.Write(oobId); + oob.Write(sp.sessionId); +// RakAssert(sp.sessionId<100); + if (oobId==ID_NAT_ESTABLISH_BIDIRECTIONAL) + oob.Write(sa.GetPort()); + char ipAddressString[32]; + sa.ToString(false, ipAddressString); + rakPeerInterface->SendOutOfBand((const char*) ipAddressString,sa.GetPort(),(const char*) oob.GetData(),oob.GetNumberOfBytesUsed()); + + if (natPunchthroughDebugInterface) + { + sa.ToString(true,ipAddressString); + char guidString[128]; + sp.targetGuid.ToString(guidString); + + if (oobId==ID_NAT_ESTABLISH_UNIDIRECTIONAL) + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Sent OOB ID_NAT_ESTABLISH_UNIDIRECTIONAL to guid %s, system address %s.", guidString, ipAddressString)); + else + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Sent OOB ID_NAT_ESTABLISH_BIDIRECTIONAL to guid %s, system address %s.", guidString, ipAddressString)); + } +} +void NatPunchthroughClient::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) rakNetGUID; + (void) isIncoming; + + // Try to track new port mappings on the router. Not reliable, but better than nothing. + SystemAddress ourExternalId = rakPeerInterface->GetExternalID(systemAddress); + if (ourExternalId!=UNASSIGNED_SYSTEM_ADDRESS) + mostRecentNewExternalPort=ourExternalId.GetPort(); + + unsigned int i; + i=0; + while (i < groupRequestsInProgress.Size()) + { + if (groupRequestsInProgress[i].guid==rakNetGUID) + { + groupRequestsInProgress.RemoveAtIndexFast(i); + } + else + { + i++; + } + } +} + +void NatPunchthroughClient::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) systemAddress; + (void) rakNetGUID; + (void) lostConnectionReason; + + if (sp.facilitator==systemAddress) + { + // If we lose the connection to the facilitator, all previous failures not currently in progress are returned as such + unsigned int i=0; + while (i < failedAttemptList.Size()) + { + if (sp.nextActionTime!=0 && sp.targetGuid==failedAttemptList[i].guid) + { + i++; + continue; + } + + PushFailure(); + + failedAttemptList.RemoveAtIndexFast(i); + } + } + + unsigned int i; + i=0; + while (i < groupPunchRequests.Size()) + { + if (groupPunchRequests[i]->facilitator==systemAddress) + { + RakNet::OP_DELETE(groupPunchRequests[i],_FILE_AND_LINE_); + groupPunchRequests.RemoveAtIndexFast(i); + } + else + { + i++; + } + } + +} +void NatPunchthroughClient::GetUPNPPortMappings(char *externalPort, char *internalPort, const SystemAddress &natPunchthroughServerAddress) +{ + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + Itoa(sockets[0]->boundAddress.GetPort(),internalPort,10); + if (mostRecentNewExternalPort==0) + mostRecentNewExternalPort=rakPeerInterface->GetExternalID(natPunchthroughServerAddress).GetPort(); + Itoa(mostRecentNewExternalPort,externalPort,10); +} +void NatPunchthroughClient::OnFailureNotification(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data,packet->length,false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID senderGuid; + incomingBs.Read(senderGuid); + + unsigned int i; + i=0; + while (i < groupRequestsInProgress.Size()) + { + if (groupRequestsInProgress[i].guid==senderGuid) + { + groupRequestsInProgress.RemoveAtIndexFast(i); + break; + } + else + { + i++; + } + } +} +void NatPunchthroughClient::OnGetMostRecentPort(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data,packet->length,false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + uint16_t sessionId; + incomingBs.Read(sessionId); + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_GET_MOST_RECENT_PORT); + outgoingBs.Write(sessionId); + if (mostRecentNewExternalPort==0) + mostRecentNewExternalPort=rakPeerInterface->GetExternalID(packet->systemAddress).GetPort(); + RakAssert(mostRecentNewExternalPort!=0); + outgoingBs.Write(mostRecentNewExternalPort); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + sp.facilitator=packet->systemAddress; +} +/* +unsigned int NatPunchthroughClient::GetPendingOpenNATIndex(RakNetGUID destination, const SystemAddress &facilitator) +{ + unsigned int i; + for (i=0; i < pendingOpenNAT.Size(); i++) + { + if (pendingOpenNAT[i].destination==destination && pendingOpenNAT[i].facilitator==facilitator) + return i; + } + return (unsigned int) -1; +} +*/ +void NatPunchthroughClient::SendPunchthrough(RakNetGUID destination, const SystemAddress &facilitator) +{ + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_PUNCHTHROUGH_REQUEST); + outgoingBs.Write(destination); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,facilitator,false); + +// RakAssert(rakPeerInterface->GetSystemAddressFromGuid(destination)==UNASSIGNED_SYSTEM_ADDRESS); + + if (natPunchthroughDebugInterface) + { + char guidString[128]; + destination.ToString(guidString); + natPunchthroughDebugInterface->OnClientMessage(RakNet::RakString("Starting ID_NAT_PUNCHTHROUGH_REQUEST to guid %s.", guidString)); + } +} +void NatPunchthroughClient::OnAttach(void) +{ + Clear(); +} +void NatPunchthroughClient::OnDetach(void) +{ + Clear(); +} +void NatPunchthroughClient::OnRakPeerShutdown(void) +{ + Clear(); +} +void NatPunchthroughClient::Clear(void) +{ + OnReadyForNextPunchthrough(); + + failedAttemptList.Clear(false, _FILE_AND_LINE_); + groupRequestsInProgress.Clear(false, _FILE_AND_LINE_); + unsigned int i; + for (i=0; i < groupPunchRequests.Size(); i++) + { + RakNet::OP_DELETE(groupPunchRequests[i],_FILE_AND_LINE_); + } + groupPunchRequests.Clear(true, _FILE_AND_LINE_); +} +PunchthroughConfiguration* NatPunchthroughClient::GetPunchthroughConfiguration(void) +{ + return &pc; +} +void NatPunchthroughClient::OnReadyForNextPunchthrough(void) +{ + if (rakPeerInterface==0) + return; + + sp.nextActionTime=0; + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_CLIENT_READY); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,sp.facilitator,false); +} + +void NatPunchthroughClient::PushSuccess(void) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)); + p->data[0]=ID_NAT_PUNCHTHROUGH_SUCCEEDED; + p->systemAddress=sp.targetAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=sp.targetGuid; + if (sp.weAreSender) + p->data[1]=1; + else + p->data[1]=0; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); +} +bool NatPunchthroughClient::RemoveFromFailureQueue(void) +{ + unsigned int i; + for (i=0; i < failedAttemptList.Size(); i++) + { + if (failedAttemptList[i].guid==sp.targetGuid) + { + // Remove from failure queue + failedAttemptList.RemoveAtIndexFast(i); + return true; + } + } + return false; +} + +void NatPunchthroughClient::IncrementExternalAttemptCount(RakNet::Time time, RakNet::Time delta) +{ + if (++sp.retryCount>=pc.UDP_SENDS_PER_PORT_EXTERNAL) + { + ++sp.attemptCount; + sp.retryCount=0; + sp.nextActionTime=time+pc.EXTERNAL_IP_WAIT_BETWEEN_PORTS-delta; + } + else + { + sp.nextActionTime=time+pc.TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL-delta; + } +} +// 0=failed, 1=success, 2=ignore +void NatPunchthroughClient::UpdateGroupPunchOnNatResult(SystemAddress facilitator, RakNetGUID targetSystem, SystemAddress targetSystemAddress, int result) +{ + GroupPunchRequest *gpr; + unsigned long i,j,k; + i=0; + while (i < groupPunchRequests.Size()) + { + gpr = groupPunchRequests[i]; + if (gpr->facilitator==facilitator) + { + j=0; + while (j < gpr->pendingList.Size()) + { + if (gpr->pendingList[j]==targetSystem) + { + if (result==0) + { + gpr->failedList.Push(targetSystem, _FILE_AND_LINE_); + } + else if (result==1) + { + gpr->passedListGuid.Push(targetSystem, _FILE_AND_LINE_); + gpr->passedListAddress.Push(targetSystemAddress, _FILE_AND_LINE_); + } + else + { + gpr->ignoredList.Push(targetSystem, _FILE_AND_LINE_); + } + gpr->pendingList.RemoveAtIndex(j); + } + else + j++; + } + } + if (gpr->pendingList.Size()==0) + { + RakNet::BitStream output; + if (gpr->failedList.Size()==0) + { + output.Write(ID_NAT_GROUP_PUNCH_SUCCEEDED); + } + else + { + output.Write(ID_NAT_GROUP_PUNCH_FAILED); + } + + output.WriteCasted(gpr->passedListGuid.Size()); + for (k=0; k < gpr->passedListGuid.Size(); k++) + { + output.Write(gpr->passedListGuid[k]); + output.Write(gpr->passedListAddress[k]); + } + output.WriteCasted(gpr->ignoredList.Size()); + for (k=0; k < gpr->ignoredList.Size(); k++) + { + output.Write(gpr->ignoredList[k]); + } + output.WriteCasted(gpr->failedList.Size()); + for (k=0; k < gpr->failedList.Size(); k++) + { + output.Write(gpr->failedList[k]); + } + + Packet *p = AllocatePacketUnified(output.GetNumberOfBytesUsed()); + p->systemAddress=gpr->facilitator; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=rakPeerInterface->GetGuidFromSystemAddress(gpr->facilitator); + p->wasGeneratedLocally=true; + memcpy(p->data, output.GetData(), output.GetNumberOfBytesUsed()); + rakPeerInterface->PushBackPacket(p, true); + + groupPunchRequests.RemoveAtIndex(i); + RakNet::OP_DELETE(gpr, _FILE_AND_LINE_); + } + else + i++; + } +} + +#endif // _RAKNET_SUPPORT_* + diff --git a/src/raknet/NatPunchthroughClient.h b/src/raknet/NatPunchthroughClient.h new file mode 100755 index 0000000..827de71 --- /dev/null +++ b/src/raknet/NatPunchthroughClient.h @@ -0,0 +1,265 @@ + +/// \file +/// \brief Contains the NAT-punchthrough plugin for the client. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughClient==1 + +#ifndef __NAT_PUNCHTHROUGH_CLIENT_H +#define __NAT_PUNCHTHROUGH_CLIENT_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_List.h" +#include "RakString.h" + +// Trendnet TEW-632BRP sometimes starts at port 1024 and increments sequentially. +// Zonnet zsr1134we. Replies go out on the net, but are always absorbed by the remote router?? +// Dlink ebr2310 to Trendnet ok +// Trendnet TEW-652BRP to Trendnet 632BRP OK +// Trendnet TEW-632BRP to Trendnet 632BRP OK +// Buffalo WHR-HP-G54 OK +// Netgear WGR614 ok + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; +#if _RAKNET_SUPPORT_PacketLogger==1 +class PacketLogger; +#endif + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT PunchthroughConfiguration +{ + /// internal: (15 ms * 2 tries + 30 wait) * 5 ports * 8 players = 2.4 seconds + /// external: (50 ms * 8 sends + 100 wait) * 2 port * 8 players = 8 seconds + /// Total: 8 seconds + PunchthroughConfiguration() { + TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL=15; + TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL=50; + UDP_SENDS_PER_PORT_INTERNAL=2; + UDP_SENDS_PER_PORT_EXTERNAL=8; + INTERNAL_IP_WAIT_AFTER_ATTEMPTS=30; + MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK=5; /// set to 0 to not do lan connects + MAX_PREDICTIVE_PORT_RANGE=2; + EXTERNAL_IP_WAIT_BETWEEN_PORTS=100; + EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS=EXTERNAL_IP_WAIT_BETWEEN_PORTS; + retryOnFailure=false; + } + + /// How much time between each UDP send + RakNet::Time TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL; + RakNet::Time TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL; + + /// How many tries for one port before giving up and going to the next port + int UDP_SENDS_PER_PORT_INTERNAL; + int UDP_SENDS_PER_PORT_EXTERNAL; + + /// After giving up on one internal port, how long to wait before trying the next port + int INTERNAL_IP_WAIT_AFTER_ATTEMPTS; + + /// How many external ports to try past the last known starting port + int MAX_PREDICTIVE_PORT_RANGE; + + /// After giving up on one external port, how long to wait before trying the next port + int EXTERNAL_IP_WAIT_BETWEEN_PORTS; + + /// After trying all external ports, how long to wait before returning ID_NAT_PUNCHTHROUGH_FAILED + int EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS; + + /// Maximum number of internal IP address to try to connect to. + /// Cannot be greater than MAXIMUM_NUMBER_OF_INTERNAL_IDS + /// Should be high enough to try all internal IP addresses on the majority of computers + int MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK; + + /// If the first punchthrough attempt fails, try again + /// This sometimes works because the remote router was looking for an incoming message on a higher numbered port before responding to a lower numbered port from the other system + bool retryOnFailure; +}; + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughDebugInterface +{ + NatPunchthroughDebugInterface() {} + virtual ~NatPunchthroughDebugInterface() {} + virtual void OnClientMessage(const char *msg)=0; +}; + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughDebugInterface_Printf : public NatPunchthroughDebugInterface +{ + virtual void OnClientMessage(const char *msg); +}; + +#if _RAKNET_SUPPORT_PacketLogger==1 +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughDebugInterface_PacketLogger : public NatPunchthroughDebugInterface +{ + // Set to non-zero to write to the packetlogger! + PacketLogger *pl; + + NatPunchthroughDebugInterface_PacketLogger() {pl=0;} + ~NatPunchthroughDebugInterface_PacketLogger() {} + virtual void OnClientMessage(const char *msg); +}; +#endif + +/// \brief Client code for NATPunchthrough +/// \details Maintain connection to NatPunchthroughServer to process incoming connection attempts through NatPunchthroughClient
    +/// Client will send datagrams to port to estimate next port
    +/// Will simultaneously connect with another client once ports are estimated. +/// \sa NatTypeDetectionClient +/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html +/// \ingroup NAT_PUNCHTHROUGH_GROUP +class RAK_DLL_EXPORT NatPunchthroughClient : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NatPunchthroughClient) + + NatPunchthroughClient(); + ~NatPunchthroughClient(); + + /// Punchthrough a NAT. Doesn't connect, just tries to setup the routing table + /// \param[in] destination The system to punch. Must already be connected to \a facilitator + /// \param[in] facilitator A system we are already connected to running the NatPunchthroughServer plugin + /// \sa OpenNATGroup() + /// You will get ID_NAT_PUNCHTHROUGH_SUCCEEDED on success + /// You will get ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_TARGET_UNRESPONSIVE, ID_NAT_CONNECTION_TO_TARGET_LOST, ID_NAT_ALREADY_IN_PROGRESS, or ID_NAT_PUNCHTHROUGH_FAILED on failures of various types + /// However, if you lose connection to the facilitator, you may not necessarily get above + bool OpenNAT(RakNetGUID destination, const SystemAddress &facilitator); + + /// Same as calling OpenNAT for a list of systems, but reply is delayed until all systems pass. + /// This is useful for peer to peer games where you want to connect to every system in the remote session, not just one particular system + /// \note For cloud computing, all systems in the group must be connected to the same facilitator since we're only specifying one + /// You will get ID_NAT_GROUP_PUNCH_SUCCEEDED on success + /// You will get ID_NAT_TARGET_NOT_CONNECTED, ID_NAT_ALREADY_IN_PROGRESS, or ID_NAT_GROUP_PUNCH_FAILED on failures of various types + /// However, if you lose connection to the facilitator, you may not necessarily get above + bool OpenNATGroup(DataStructures::List destinationSystems, const SystemAddress &facilitator); + + /// Modify the system configuration if desired + /// Don't modify the variables in the structure while punchthrough is in progress + PunchthroughConfiguration* GetPunchthroughConfiguration(void); + + /// Sets a callback to be called with debug messages + /// \param[in] i Pointer to an interface. The pointer is stored, so don't delete it while in progress. Pass 0 to clear. + void SetDebugInterface(NatPunchthroughDebugInterface *i); + + /// Get the port mappings you should pass to UPNP (for miniupnpc-1.5, for the function UPNP_AddPortMapping) + void GetUPNPPortMappings(char *externalPort, char *internalPort, const SystemAddress &natPunchthroughServerAddress); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + + /// \internal For plugin handling + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + + /// \internal For plugin handling + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + virtual void OnAttach(void); + virtual void OnDetach(void); + virtual void OnRakPeerShutdown(void); + void Clear(void); + +protected: + unsigned short mostRecentNewExternalPort; + void OnNatGroupPunchthroughRequest(Packet *packet); + void OnFailureNotification(Packet *packet); + void OnNatGroupPunchthroughReply(Packet *packet); + void OnGetMostRecentPort(Packet *packet); + void OnConnectAtTime(Packet *packet); + unsigned int GetPendingOpenNATIndex(RakNetGUID destination, const SystemAddress &facilitator); + void SendPunchthrough(RakNetGUID destination, const SystemAddress &facilitator); + void SendTTL(const SystemAddress &sa); + void SendOutOfBand(SystemAddress sa, MessageID oobId); + void OnPunchthroughFailure(void); + void OnReadyForNextPunchthrough(void); + void PushFailure(void); + bool RemoveFromFailureQueue(void); + void PushSuccess(void); + + struct SendPing + { + RakNet::Time nextActionTime; + SystemAddress targetAddress; + SystemAddress facilitator; + SystemAddress internalIds[MAXIMUM_NUMBER_OF_INTERNAL_IDS]; + RakNetGUID targetGuid; + bool weAreSender; + int attemptCount; + int retryCount; + int punchingFixedPortAttempts; // only used for TestMode::PUNCHING_FIXED_PORT + uint16_t sessionId; + // Give priority to internal IP addresses because if we are on a LAN, we don't want to try to connect through the internet + enum TestMode + { + TESTING_INTERNAL_IPS, + WAITING_FOR_INTERNAL_IPS_RESPONSE, + SEND_WITH_TTL, + TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_FACILITATOR_PORT, + TESTING_EXTERNAL_IPS_1024_TO_FACILITATOR_PORT, + TESTING_EXTERNAL_IPS_FACILITATOR_PORT_TO_1024, + TESTING_EXTERNAL_IPS_1024_TO_1024, + WAITING_AFTER_ALL_ATTEMPTS, + + // The trendnet remaps the remote port to 1024. + // If you continue punching on a different port for the same IP it bans you and the communication becomes unidirectioal + PUNCHING_FIXED_PORT, + + // try port 1024-1028 + } testMode; + } sp; + + PunchthroughConfiguration pc; + NatPunchthroughDebugInterface *natPunchthroughDebugInterface; + + // The first time we fail a NAT attempt, we add it to failedAttemptList and try again, since sometimes trying again later fixes the problem + // The second time we fail, we return ID_NAT_PUNCHTHROUGH_FAILED + struct AddrAndGuid + { + SystemAddress addr; + RakNetGUID guid; + }; + DataStructures::List failedAttemptList; + + void IncrementExternalAttemptCount(RakNet::Time time, RakNet::Time delta); + + struct TimeAndGuid + { + RakNet::Time time; + RakNetGUID guid; + }; + DataStructures::List groupRequestsInProgress; + + struct GroupPunchRequest + { + SystemAddress facilitator; + DataStructures::List pendingList; + DataStructures::List passedListGuid; + DataStructures::List passedListAddress; + DataStructures::List failedList; + DataStructures::List ignoredList; + }; + DataStructures::List groupPunchRequests; + void UpdateGroupPunchOnNatResult(SystemAddress facilitator, RakNetGUID targetSystem, SystemAddress targetSystemAddress, int result); // 0=failed, 1=success, 2=ignore +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NatPunchthroughServer.cpp b/src/raknet/NatPunchthroughServer.cpp new file mode 100755 index 0000000..4130b65 --- /dev/null +++ b/src/raknet/NatPunchthroughServer.cpp @@ -0,0 +1,563 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughServer==1 + +#include "NatPunchthroughServer.h" +#include "SocketLayer.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "MTUSize.h" +#include "GetTime.h" +#include "PacketLogger.h" + +using namespace RakNet; + +void NatPunchthroughServerDebugInterface_Printf::OnServerMessage(const char *msg) +{ + printf("%s\n", msg); +} +#if _RAKNET_SUPPORT_PacketLogger==1 +void NatPunchthroughServerDebugInterface_PacketLogger::OnServerMessage(const char *msg) +{ + if (pl) + { + pl->WriteMiscellaneous("Nat", msg); + } +} +#endif + +void NatPunchthroughServer::User::DeleteConnectionAttempt(NatPunchthroughServer::ConnectionAttempt *ca) +{ + unsigned int index = connectionAttempts.GetIndexOf(ca); + if ((unsigned int)index!=(unsigned int)-1) + { + RakNet::OP_DELETE(ca,_FILE_AND_LINE_); + connectionAttempts.RemoveAtIndex(index); + } +} +void NatPunchthroughServer::User::DerefConnectionAttempt(NatPunchthroughServer::ConnectionAttempt *ca) +{ + unsigned int index = connectionAttempts.GetIndexOf(ca); + if ((unsigned int)index!=(unsigned int)-1) + { + connectionAttempts.RemoveAtIndex(index); + } +} +bool NatPunchthroughServer::User::HasConnectionAttemptToUser(User *user) +{ + unsigned int index; + for (index=0; index < connectionAttempts.Size(); index++) + { + if (connectionAttempts[index]->recipient->guid==user->guid || + connectionAttempts[index]->sender->guid==user->guid) + return true; + } + return false; +} +void NatPunchthroughServer::User::LogConnectionAttempts(RakNet::RakString &rs) +{ + rs.Clear(); + unsigned int index; + char guidStr[128], ipStr[128]; + guid.ToString(guidStr); + systemAddress.ToString(true,ipStr); + rs=RakNet::RakString("User systemAddress=%s guid=%s\n", ipStr, guidStr); + rs+=RakNet::RakString("%i attempts in list:\n", connectionAttempts.Size()); + for (index=0; index < connectionAttempts.Size(); index++) + { + rs+=RakNet::RakString("%i. SessionID=%i ", index+1, connectionAttempts[index]->sessionId); + if (connectionAttempts[index]->sender==this) + rs+="(We are sender) "; + else + rs+="(We are recipient) "; + if (isReady) + rs+="(READY TO START) "; + else + rs+="(NOT READY TO START) "; + if (connectionAttempts[index]->attemptPhase==NatPunchthroughServer::ConnectionAttempt::NAT_ATTEMPT_PHASE_NOT_STARTED) + rs+="(NOT_STARTED). "; + else + rs+="(GETTING_RECENT_PORTS). "; + if (connectionAttempts[index]->sender==this) + { + connectionAttempts[index]->recipient->guid.ToString(guidStr); + connectionAttempts[index]->recipient->systemAddress.ToString(true,ipStr); + } + else + { + connectionAttempts[index]->sender->guid.ToString(guidStr); + connectionAttempts[index]->sender->systemAddress.ToString(true,ipStr); + } + + rs+=RakNet::RakString("Target systemAddress=%s, guid=%s.\n", ipStr, guidStr); + } +} + +int RakNet::NatPunchthroughServer::NatPunchthroughUserComp( const RakNetGUID &key, User * const &data ) +{ + if (key < data->guid) + return -1; + if (key > data->guid) + return 1; + return 0; +} + +STATIC_FACTORY_DEFINITIONS(NatPunchthroughServer,NatPunchthroughServer); + +NatPunchthroughServer::NatPunchthroughServer() +{ + lastUpdate=0; + sessionId=0; + natPunchthroughServerDebugInterface=0; +} +NatPunchthroughServer::~NatPunchthroughServer() +{ + User *user, *otherUser; + ConnectionAttempt *connectionAttempt; + unsigned int j; + while(users.Size()) + { + user = users[0]; + for (j=0; j < user->connectionAttempts.Size(); j++) + { + connectionAttempt=user->connectionAttempts[j]; + if (connectionAttempt->sender==user) + otherUser=connectionAttempt->recipient; + else + otherUser=connectionAttempt->sender; + otherUser->DeleteConnectionAttempt(connectionAttempt); + } + RakNet::OP_DELETE(user,_FILE_AND_LINE_); + users[0]=users[users.Size()-1]; + users.RemoveAtIndex(users.Size()-1); + } +} +void NatPunchthroughServer::SetDebugInterface(NatPunchthroughServerDebugInterface *i) +{ + natPunchthroughServerDebugInterface=i; +} +void NatPunchthroughServer::Update(void) +{ + ConnectionAttempt *connectionAttempt; + User *user, *recipient; + unsigned int i,j; + RakNet::Time time = RakNet::GetTime(); + if (time > lastUpdate+250) + { + lastUpdate=time; + + for (i=0; i < users.Size(); i++) + { + user=users[i]; + for (j=0; j < user->connectionAttempts.Size(); j++) + { + connectionAttempt=user->connectionAttempts[j]; + if (connectionAttempt->sender==user) + { + if (connectionAttempt->attemptPhase!=ConnectionAttempt::NAT_ATTEMPT_PHASE_NOT_STARTED && + time > connectionAttempt->startTime && + time > 10000 + connectionAttempt->startTime ) // Formerly 5000, but sometimes false positives + { + RakNet::BitStream outgoingBs; + + // that other system might not be running the plugin + outgoingBs.Write((MessageID)ID_NAT_TARGET_UNRESPONSIVE); + outgoingBs.Write(connectionAttempt->recipient->guid); + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,connectionAttempt->sender->systemAddress,false); + + // 05/28/09 Previously only told sender about ID_NAT_CONNECTION_TO_TARGET_LOST + // However, recipient may be expecting it due to external code + // In that case, recipient would never get any response if the sender dropped + outgoingBs.Reset(); + outgoingBs.Write((MessageID)ID_NAT_TARGET_UNRESPONSIVE); + outgoingBs.Write(connectionAttempt->sender->guid); + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,connectionAttempt->recipient->systemAddress,false); + + connectionAttempt->sender->isReady=true; + connectionAttempt->recipient->isReady=true; + recipient=connectionAttempt->recipient; + + + if (natPunchthroughServerDebugInterface) + { + char str[1024]; + char addr1[128], addr2[128]; + // 8/01/09 Fixed bug where this was after DeleteConnectionAttempt() + connectionAttempt->sender->systemAddress.ToString(true,addr1); + connectionAttempt->recipient->systemAddress.ToString(true,addr2); + sprintf(str, "Sending ID_NAT_TARGET_UNRESPONSIVE to sender %s and recipient %s.", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(str); + RakNet::RakString log; + connectionAttempt->sender->LogConnectionAttempts(log); + connectionAttempt->recipient->LogConnectionAttempts(log); + } + + + connectionAttempt->sender->DerefConnectionAttempt(connectionAttempt); + connectionAttempt->recipient->DeleteConnectionAttempt(connectionAttempt); + + StartPunchthroughForUser(user); + StartPunchthroughForUser(recipient); + + break; + } + } + } + } + } +} +PluginReceiveResult NatPunchthroughServer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_NAT_PUNCHTHROUGH_REQUEST: + OnNATPunchthroughRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_NAT_GET_MOST_RECENT_PORT: + OnGetMostRecentPort(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_NAT_CLIENT_READY: + OnClientReady(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void NatPunchthroughServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + + unsigned int i=0; + bool objectExists; + i = users.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { + RakNet::BitStream outgoingBs; + DataStructures::List freedUpInProgressUsers; + User *user = users[i]; + User *otherUser; + unsigned int connectionAttemptIndex; + ConnectionAttempt *connectionAttempt; + for (connectionAttemptIndex=0; connectionAttemptIndex < user->connectionAttempts.Size(); connectionAttemptIndex++) + { + connectionAttempt=user->connectionAttempts[connectionAttemptIndex]; + outgoingBs.Reset(); + if (connectionAttempt->recipient==user) + { + otherUser=connectionAttempt->sender; + } + else + { + otherUser=connectionAttempt->recipient; + } + + // 05/28/09 Previously only told sender about ID_NAT_CONNECTION_TO_TARGET_LOST + // However, recipient may be expecting it due to external code + // In that case, recipient would never get any response if the sender dropped + outgoingBs.Write((MessageID)ID_NAT_CONNECTION_TO_TARGET_LOST); + outgoingBs.Write(rakNetGUID); + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,otherUser->systemAddress,false); + + // 4/22/09 - Bug: was checking inProgress, legacy variable not used elsewhere + if (connectionAttempt->attemptPhase==ConnectionAttempt::NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS) + { + otherUser->isReady=true; + freedUpInProgressUsers.Insert(otherUser, _FILE_AND_LINE_ ); + } + + otherUser->DeleteConnectionAttempt(connectionAttempt); + } + + RakNet::OP_DELETE(users[i], _FILE_AND_LINE_); + users.RemoveAtIndex(i); + + for (i=0; i < freedUpInProgressUsers.Size(); i++) + { + StartPunchthroughForUser(freedUpInProgressUsers[i]); + } + } + + // Also remove from groupPunchthroughRequests + for (i=0; i < users.Size(); i++) + { + bool objectExists; + unsigned int gprIndex; + gprIndex = users[i]->groupPunchthroughRequests.GetIndexFromKey(rakNetGUID, &objectExists); + if (objectExists) + { +// printf("DEBUG %i\n", __LINE__); + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_TARGET_NOT_CONNECTED); + outgoingBs.Write(rakNetGUID); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,users[i]->systemAddress,false); + + users[i]->groupPunchthroughRequests.RemoveAtIndex(gprIndex); + } + } +} + +void NatPunchthroughServer::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) systemAddress; + (void) isIncoming; + + User *user = RakNet::OP_NEW(_FILE_AND_LINE_); + user->guid=rakNetGUID; + user->mostRecentPort=0; + user->systemAddress=systemAddress; + user->isReady=true; + users.Insert(rakNetGUID, user, true, _FILE_AND_LINE_); + +// printf("Adding to users %s\n", rakNetGUID.ToString()); +// printf("DEBUG users[0] guid=%s\n", users[0]->guid.ToString()); +} +void NatPunchthroughServer::OnNATPunchthroughRequest(Packet *packet) +{ + RakNet::BitStream outgoingBs; + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID recipientGuid, senderGuid; + incomingBs.Read(recipientGuid); + senderGuid=packet->guid; + unsigned int i; + bool objectExists; + i = users.GetIndexFromKey(senderGuid, &objectExists); + RakAssert(objectExists); + + ConnectionAttempt *ca = RakNet::OP_NEW(_FILE_AND_LINE_); + ca->sender=users[i]; + ca->sessionId=sessionId++; + i = users.GetIndexFromKey(recipientGuid, &objectExists); + if (objectExists==false) + { +// printf("DEBUG %i\n", __LINE__); +// printf("DEBUG recipientGuid=%s\n", recipientGuid.ToString()); +// printf("DEBUG users[0] guid=%s\n", users[0]->guid.ToString()); + + outgoingBs.Write((MessageID)ID_NAT_TARGET_NOT_CONNECTED); + outgoingBs.Write(recipientGuid); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + RakNet::OP_DELETE(ca,_FILE_AND_LINE_); + return; + } + ca->recipient=users[i]; + if (ca->recipient->HasConnectionAttemptToUser(ca->sender)) + { + outgoingBs.Write((MessageID)ID_NAT_ALREADY_IN_PROGRESS); + outgoingBs.Write(recipientGuid); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + RakNet::OP_DELETE(ca,_FILE_AND_LINE_); + return; + } + + ca->sender->connectionAttempts.Insert(ca, _FILE_AND_LINE_ ); + ca->recipient->connectionAttempts.Insert(ca, _FILE_AND_LINE_ ); + + StartPunchthroughForUser(ca->sender); +} +void NatPunchthroughServer::OnClientReady(Packet *packet) +{ + unsigned int i; + bool objectExists; + i = users.GetIndexFromKey(packet->guid, &objectExists); + if (objectExists) + { + users[i]->isReady=true; + StartPunchthroughForUser(users[i]); + } +} +void NatPunchthroughServer::OnGetMostRecentPort(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)); + uint16_t sessionId; + unsigned short mostRecentPort; + bsIn.Read(sessionId); + bsIn.Read(mostRecentPort); + + unsigned int i,j; + User *user; + ConnectionAttempt *connectionAttempt; + bool objectExists; + i = users.GetIndexFromKey(packet->guid, &objectExists); + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + packet->systemAddress.ToString(true,addr1); + packet->guid.ToString(addr2); + log=RakNet::RakString("Got ID_NAT_GET_MOST_RECENT_PORT from systemAddress %s guid %s. port=%i. sessionId=%i. userFound=%i.", addr1, addr2, mostRecentPort, sessionId, objectExists); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + if (objectExists) + { + user=users[i]; + user->mostRecentPort=mostRecentPort; + RakNet::Time time = RakNet::GetTime(); + + for (j=0; j < user->connectionAttempts.Size(); j++) + { + connectionAttempt=user->connectionAttempts[j]; + if (connectionAttempt->attemptPhase==ConnectionAttempt::NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS && + connectionAttempt->sender->mostRecentPort!=0 && + connectionAttempt->recipient->mostRecentPort!=0 && + // 04/29/08 add sessionId to prevent processing for other systems + connectionAttempt->sessionId==sessionId) + { + SystemAddress senderSystemAddress = connectionAttempt->sender->systemAddress; + SystemAddress recipientSystemAddress = connectionAttempt->recipient->systemAddress; + SystemAddress recipientTargetAddress = recipientSystemAddress; + SystemAddress senderTargetAddress = senderSystemAddress; + recipientTargetAddress.SetPort(connectionAttempt->recipient->mostRecentPort); + senderTargetAddress.SetPort(connectionAttempt->sender->mostRecentPort); + + // Pick a time far enough in the future that both systems will have gotten the message + int targetPing = rakPeerInterface->GetAveragePing(recipientTargetAddress); + int senderPing = rakPeerInterface->GetAveragePing(senderSystemAddress); + RakNet::Time simultaneousAttemptTime; + if (targetPing==-1 || senderPing==-1) + simultaneousAttemptTime = time + 1500; + else + { + int largerPing = targetPing > senderPing ? targetPing : senderPing; + if (largerPing * 4 < 100) + simultaneousAttemptTime = time + 100; + else + simultaneousAttemptTime = time + (largerPing * 4); + } + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + recipientSystemAddress.ToString(true,addr1); + connectionAttempt->recipient->guid.ToString(addr2); + log=RakNet::RakString("Sending ID_NAT_CONNECT_AT_TIME to recipient systemAddress %s guid %s", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + // Send to recipient timestamped message to connect at time + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TIMESTAMP); + bsOut.Write(simultaneousAttemptTime); + bsOut.Write((MessageID)ID_NAT_CONNECT_AT_TIME); + bsOut.Write(connectionAttempt->sessionId); + bsOut.Write(senderTargetAddress); // Public IP, using most recent port + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) // Internal IP + bsOut.Write(rakPeerInterface->GetInternalID(senderSystemAddress,j)); + bsOut.Write(connectionAttempt->sender->guid); + bsOut.Write(false); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,recipientSystemAddress,false); + + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + senderSystemAddress.ToString(true,addr1); + connectionAttempt->sender->guid.ToString(addr2); + log=RakNet::RakString("Sending ID_NAT_CONNECT_AT_TIME to sender systemAddress %s guid %s", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + + // Same for sender + bsOut.Reset(); + bsOut.Write((MessageID)ID_TIMESTAMP); + bsOut.Write(simultaneousAttemptTime); + bsOut.Write((MessageID)ID_NAT_CONNECT_AT_TIME); + bsOut.Write(connectionAttempt->sessionId); + bsOut.Write(recipientTargetAddress); // Public IP, using most recent port + for (j=0; j < MAXIMUM_NUMBER_OF_INTERNAL_IDS; j++) // Internal IP + bsOut.Write(rakPeerInterface->GetInternalID(recipientSystemAddress,j)); + bsOut.Write(connectionAttempt->recipient->guid); + bsOut.Write(true); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,senderSystemAddress,false); + + connectionAttempt->recipient->DerefConnectionAttempt(connectionAttempt); + connectionAttempt->sender->DeleteConnectionAttempt(connectionAttempt); + + // 04/29/08 missing return + return; + } + } + } + else + { + + if (natPunchthroughServerDebugInterface) + { + RakNet::RakString log; + char addr1[128], addr2[128]; + packet->systemAddress.ToString(true,addr1); + packet->guid.ToString(addr2); + log=RakNet::RakString("Ignoring ID_NAT_GET_MOST_RECENT_PORT from systemAddress %s guid %s", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(log.C_String()); + } + + } +} +void NatPunchthroughServer::StartPunchthroughForUser(User *user) +{ + if (user->isReady==false) + return; + + ConnectionAttempt *connectionAttempt; + User *sender,*recipient,*otherUser; + unsigned int i; + for (i=0; i < user->connectionAttempts.Size(); i++) + { + connectionAttempt=user->connectionAttempts[i]; + if (connectionAttempt->sender==user) + { + otherUser=connectionAttempt->recipient; + sender=user; + recipient=otherUser; + } + else + { + otherUser=connectionAttempt->sender; + recipient=user; + sender=otherUser; + } + + if (otherUser->isReady) + { + if (natPunchthroughServerDebugInterface) + { + char str[1024]; + char addr1[128], addr2[128]; + sender->systemAddress.ToString(true,addr1); + recipient->systemAddress.ToString(true,addr2); + sprintf(str, "Sending NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS to sender %s and recipient %s.", addr1, addr2); + natPunchthroughServerDebugInterface->OnServerMessage(str); + } + + sender->isReady=false; + recipient->isReady=false; + connectionAttempt->attemptPhase=ConnectionAttempt::NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS; + connectionAttempt->startTime=RakNet::GetTime(); + + sender->mostRecentPort=0; + recipient->mostRecentPort=0; + + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_NAT_GET_MOST_RECENT_PORT); + // 4/29/09 Write sessionID so we don't use returned port for a system we don't want + outgoingBs.Write(connectionAttempt->sessionId); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,sender->systemAddress,false); + rakPeerInterface->Send(&outgoingBs,HIGH_PRIORITY,RELIABLE_ORDERED,0,recipient->systemAddress,false); + + // 4/22/09 - BUG: missing break statement here + break; + } + } +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NatPunchthroughServer.h b/src/raknet/NatPunchthroughServer.h new file mode 100755 index 0000000..3b4f6df --- /dev/null +++ b/src/raknet/NatPunchthroughServer.h @@ -0,0 +1,145 @@ +/// \file +/// \brief Contains the NAT-punchthrough plugin for the server. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatPunchthroughServer==1 + +#ifndef __NAT_PUNCHTHROUGH_SERVER_H +#define __NAT_PUNCHTHROUGH_SERVER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_OrderedList.h" +#include "RakString.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; +#if _RAKNET_SUPPORT_PacketLogger==1 +class PacketLogger; +#endif + +/// \defgroup NAT_PUNCHTHROUGH_GROUP NatPunchthrough +/// \brief Connect systems despite both systems being behind a router +/// \details +/// \ingroup PLUGINS_GROUP + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughServerDebugInterface +{ + NatPunchthroughServerDebugInterface() {} + virtual ~NatPunchthroughServerDebugInterface() {} + virtual void OnServerMessage(const char *msg)=0; +}; + +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughServerDebugInterface_Printf : public NatPunchthroughServerDebugInterface +{ + virtual void OnServerMessage(const char *msg); +}; + +#if _RAKNET_SUPPORT_PacketLogger==1 +/// \ingroup NAT_PUNCHTHROUGH_GROUP +struct RAK_DLL_EXPORT NatPunchthroughServerDebugInterface_PacketLogger : public NatPunchthroughServerDebugInterface +{ + // Set to non-zero to write to the packetlogger! + PacketLogger *pl; + + NatPunchthroughServerDebugInterface_PacketLogger() {pl=0;} + ~NatPunchthroughServerDebugInterface_PacketLogger() {} + virtual void OnServerMessage(const char *msg); +}; +#endif + +/// \brief Server code for NATPunchthrough +/// \details Maintain connection to NatPunchthroughServer to process incoming connection attempts through NatPunchthroughClient
    +/// Server maintains two sockets clients can connect to so as to estimate the next port choice
    +/// Server tells other client about port estimate, current public port to the server, and a time to start connection attempts +/// \sa NatTypeDetectionClient +/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html +/// \ingroup NAT_PUNCHTHROUGH_GROUP +class RAK_DLL_EXPORT NatPunchthroughServer : public PluginInterface2 +{ +public: + + STATIC_FACTORY_DECLARATIONS(NatPunchthroughServer) + + // Constructor + NatPunchthroughServer(); + + // Destructor + virtual ~NatPunchthroughServer(); + + /// Sets a callback to be called with debug messages + /// \param[in] i Pointer to an interface. The pointer is stored, so don't delete it while in progress. Pass 0 to clear. + void SetDebugInterface(NatPunchthroughServerDebugInterface *i); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + + /// \internal For plugin handling + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + + // Each connected user has a ready state. Ready means ready for nat punchthrough. + struct User; + struct ConnectionAttempt + { + ConnectionAttempt() {sender=0; recipient=0; startTime=0; attemptPhase=NAT_ATTEMPT_PHASE_NOT_STARTED;} + User *sender, *recipient; + uint16_t sessionId; + RakNet::Time startTime; + enum + { + NAT_ATTEMPT_PHASE_NOT_STARTED, + NAT_ATTEMPT_PHASE_GETTING_RECENT_PORTS, + } attemptPhase; + }; + struct User + { + RakNetGUID guid; + SystemAddress systemAddress; + unsigned short mostRecentPort; + bool isReady; + DataStructures::OrderedList groupPunchthroughRequests; + + DataStructures::List connectionAttempts; + bool HasConnectionAttemptToUser(User *user); + void DerefConnectionAttempt(ConnectionAttempt *ca); + void DeleteConnectionAttempt(ConnectionAttempt *ca); + void LogConnectionAttempts(RakNet::RakString &rs); + }; + RakNet::Time lastUpdate; + static int NatPunchthroughUserComp( const RakNetGUID &key, User * const &data ); +protected: + void OnNATPunchthroughRequest(Packet *packet); + DataStructures::OrderedList users; + + void OnGetMostRecentPort(Packet *packet); + void OnClientReady(Packet *packet); + + void SendTimestamps(void); + void StartPendingPunchthrough(void); + void StartPunchthroughForUser(User*user); + uint16_t sessionId; + NatPunchthroughServerDebugInterface *natPunchthroughServerDebugInterface; + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NatTypeDetectionClient.cpp b/src/raknet/NatTypeDetectionClient.cpp new file mode 100755 index 0000000..89e28fd --- /dev/null +++ b/src/raknet/NatTypeDetectionClient.cpp @@ -0,0 +1,170 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionClient==1 + +#include "NatTypeDetectionClient.h" +#include "RakNetSocket.h" +#include "RakNetSmartPtr.h" +#include "BitStream.h" +#include "SocketIncludes.h" +#include "RakString.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "SocketLayer.h" +#include "SocketDefines.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(NatTypeDetectionClient,NatTypeDetectionClient); + +NatTypeDetectionClient::NatTypeDetectionClient() +{ + c2=INVALID_SOCKET; +} +NatTypeDetectionClient::~NatTypeDetectionClient() +{ + if (c2!=INVALID_SOCKET) + { + closesocket__(c2); + } +} +void NatTypeDetectionClient::DetectNATType(SystemAddress _serverAddress) +{ + if (IsInProgress()) + return; + + if (c2==INVALID_SOCKET) + { + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + SystemAddress sockAddr; + SocketLayer::GetSystemAddress(sockets[0]->s, &sockAddr); + char str[64]; + sockAddr.ToString(false,str); + c2=CreateNonblockingBoundSocket(str); + c2Port=SocketLayer::GetLocalPort(c2); + } + + + serverAddress=_serverAddress; + + RakNet::BitStream bs; + bs.Write((unsigned char)ID_NAT_TYPE_DETECTION_REQUEST); + bs.Write(true); // IsRequest + bs.Write(c2Port); + rakPeerInterface->Send(&bs,MEDIUM_PRIORITY,RELIABLE,0,serverAddress,false); +} +void NatTypeDetectionClient::OnCompletion(NATTypeDetectionResult result) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)*2); + printf("Returning nat detection result to the user\n"); + p->data[0]=ID_NAT_TYPE_DETECTION_RESULT; + p->systemAddress=serverAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=rakPeerInterface->GetGuidFromSystemAddress(serverAddress); + p->data[1]=(unsigned char) result; + p->wasGeneratedLocally=true; + rakPeerInterface->PushBackPacket(p, true); + + // Symmetric and port restricted are determined by server, so no need to notify server we are done + if (result!=NAT_TYPE_PORT_RESTRICTED && result!=NAT_TYPE_SYMMETRIC) + { + // Otherwise tell the server we got this message, so it stops sending tests to us + RakNet::BitStream bs; + bs.Write((unsigned char)ID_NAT_TYPE_DETECTION_REQUEST); + bs.Write(false); // Done + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,serverAddress,false); + } + + Shutdown(); +} +bool NatTypeDetectionClient::IsInProgress(void) const +{ + return serverAddress!=UNASSIGNED_SYSTEM_ADDRESS; +} +void NatTypeDetectionClient::Update(void) +{ + if (IsInProgress()) + { + char data[ MAXIMUM_MTU_SIZE ]; + int len; + SystemAddress sender; + len=NatTypeRecvFrom(data, c2, sender); + if (len==1 && data[0]==NAT_TYPE_NONE) + { + OnCompletion(NAT_TYPE_NONE); + RakAssert(IsInProgress()==false); + } + } +} +PluginReceiveResult NatTypeDetectionClient::OnReceive(Packet *packet) +{ + if (IsInProgress()) + { + switch (packet->data[0]) + { + case ID_OUT_OF_BAND_INTERNAL: + { + if (packet->length>=3 && packet->data[1]==ID_NAT_TYPE_DETECT) + { + OnCompletion((NATTypeDetectionResult)packet->data[2]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + break; + case ID_NAT_TYPE_DETECTION_RESULT: + if (packet->wasGeneratedLocally==false) + { + OnCompletion((NATTypeDetectionResult)packet->data[1]); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else + break; + case ID_NAT_TYPE_DETECTION_REQUEST: + OnTestPortRestricted(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + return RR_CONTINUE_PROCESSING; +} +void NatTypeDetectionClient::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + if (IsInProgress() && systemAddress==serverAddress) + Shutdown(); +} +void NatTypeDetectionClient::OnTestPortRestricted(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + RakNet::RakString s3p4StrAddress; + bsIn.Read(s3p4StrAddress); + unsigned short s3p4Port; + bsIn.Read(s3p4Port); + + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + SystemAddress s3p4Addr = sockets[0]->boundAddress; + s3p4Addr.FromStringExplicitPort(s3p4StrAddress.C_String(), s3p4Port); + + // Send off the RakNet socket to the specified address, message is unformatted + // Server does this twice, so don't have to unduly worry about packetloss + RakNet::BitStream bsOut; + bsOut.Write((MessageID) NAT_TYPE_PORT_RESTRICTED); + bsOut.Write(rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + SocketLayer::SendTo_PC( sockets[0]->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), s3p4Addr, __FILE__, __LINE__ ); +} +void NatTypeDetectionClient::Shutdown(void) +{ + serverAddress=UNASSIGNED_SYSTEM_ADDRESS; + if (c2!=INVALID_SOCKET) + { + closesocket__(c2); + c2=INVALID_SOCKET; + } + +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NatTypeDetectionClient.h b/src/raknet/NatTypeDetectionClient.h new file mode 100755 index 0000000..86cc74e --- /dev/null +++ b/src/raknet/NatTypeDetectionClient.h @@ -0,0 +1,81 @@ +/// \file +/// \brief Contains the NAT-type detection code for the client +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionClient==1 + +#ifndef __NAT_TYPE_DETECTION_CLIENT_H +#define __NAT_TYPE_DETECTION_CLIENT_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_OrderedList.h" +#include "RakString.h" +#include "NatTypeDetectionCommon.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; + + /// \brief Client code for NatTypeDetection + /// \details See NatTypeDetectionServer.h for algorithm + /// To use, just connect to the server, and call DetectNAT + /// You will get back ID_NAT_TYPE_DETECTION_RESULT with one of the enumerated values of NATTypeDetectionResult found in NATTypeDetectionCommon.h + /// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html + /// \sa NatPunchthroughClient + /// \sa NatTypeDetectionServer + /// \ingroup NAT_TYPE_DETECTION_GROUP + class RAK_DLL_EXPORT NatTypeDetectionClient : public PluginInterface2 + { + public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NatTypeDetectionClient) + + // Constructor + NatTypeDetectionClient(); + + // Destructor + virtual ~NatTypeDetectionClient(); + + /// Send the message to the server to detect the nat type + /// Server must be running NatTypeDetectionServer + /// We must already be connected to the server + /// \param[in] serverAddress address of the server + void DetectNATType(SystemAddress _serverAddress); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + protected: + SOCKET c2; + unsigned short c2Port; + void Shutdown(void); + void OnCompletion(NATTypeDetectionResult result); + bool IsInProgress(void) const; + + void OnTestPortRestricted(Packet *packet); + SystemAddress serverAddress; + }; + + +} + + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NatTypeDetectionCommon.cpp b/src/raknet/NatTypeDetectionCommon.cpp new file mode 100755 index 0000000..ddfc5d1 --- /dev/null +++ b/src/raknet/NatTypeDetectionCommon.cpp @@ -0,0 +1,116 @@ +#include "NatTypeDetectionCommon.h" +#include "SocketLayer.h" +#include "SocketIncludes.h" +#include "SocketDefines.h" + +using namespace RakNet; + +bool RakNet::CanConnect(NATTypeDetectionResult type1, NATTypeDetectionResult type2) +{ + /// If one system is NAT_TYPE_SYMMETRIC, the other must be NAT_TYPE_ADDRESS_RESTRICTED or less + /// If one system is NAT_TYPE_PORT_RESTRICTED, the other must be NAT_TYPE_PORT_RESTRICTED or less + bool connectionGraph[NAT_TYPE_COUNT][NAT_TYPE_COUNT] = + { + // None, Full Cone, Address Restricted, Port Restricted, Symmetric, Unknown, InProgress, Supports_UPNP + {true, true, true, true, true, false, false, false}, // None + {true, true, true, true, true, false, false, false}, // Full Cone + {true, true, true, true, true, false, false, false}, // Address restricted + {true, true, true, true, false, false, false, false}, // Port restricted + {true, true, true, false, false, false, false, false}, // Symmetric + {false, false, false, false, false, false, false, false}, // Unknown + {false, false, false, false, false, false, false, false}, // InProgress + {false, false, false, false, false, false, false, false} // Supports_UPNP + }; + + return connectionGraph[(int) type1][(int) type2]; +} + +const char *RakNet::NATTypeDetectionResultToString(NATTypeDetectionResult type) +{ + switch (type) + { + case NAT_TYPE_NONE: + return "None"; + case NAT_TYPE_FULL_CONE: + return "Full cone"; + case NAT_TYPE_ADDRESS_RESTRICTED: + return "Address restricted"; + case NAT_TYPE_PORT_RESTRICTED: + return "Port restricted"; + case NAT_TYPE_SYMMETRIC: + return "Symmetric"; + case NAT_TYPE_UNKNOWN: + return "Unknown"; + case NAT_TYPE_DETECTION_IN_PROGRESS: + return "In Progress"; + case NAT_TYPE_SUPPORTS_UPNP: + return "Supports UPNP"; + case NAT_TYPE_COUNT: + return "NAT_TYPE_COUNT"; + } + return "Error, unknown enum in NATTypeDetectionResult"; +} + +// None and relaxed can connect to anything +// Moderate can connect to moderate or less +// Strict can connect to relaxed or less +const char *RakNet::NATTypeDetectionResultToStringFriendly(NATTypeDetectionResult type) +{ + switch (type) + { + case NAT_TYPE_NONE: + return "Open"; + case NAT_TYPE_FULL_CONE: + return "Relaxed"; + case NAT_TYPE_ADDRESS_RESTRICTED: + return "Relaxed"; + case NAT_TYPE_PORT_RESTRICTED: + return "Moderate"; + case NAT_TYPE_SYMMETRIC: + return "Strict"; + case NAT_TYPE_UNKNOWN: + return "Unknown"; + case NAT_TYPE_DETECTION_IN_PROGRESS: + return "In Progress"; + case NAT_TYPE_SUPPORTS_UPNP: + return "Supports UPNP"; + case NAT_TYPE_COUNT: + return "NAT_TYPE_COUNT"; + } + return "Error, unknown enum in NATTypeDetectionResult"; +} + + +SOCKET RakNet::CreateNonblockingBoundSocket(const char *bindAddr ) +{ + SOCKET s = SocketLayer::CreateBoundSocket( 0, false, bindAddr, true, 0, AF_INET ); + #ifdef _WIN32 + unsigned long nonblocking = 1; + ioctlsocket__( s, FIONBIO, &nonblocking ); + + + + #else + fcntl( s, F_SETFL, O_NONBLOCK ); + #endif + return s; +} + +int RakNet::NatTypeRecvFrom(char *data, SOCKET socket, SystemAddress &sender) +{ + sockaddr_in sa; + socklen_t len2; + const int flag=0; + len2 = sizeof( sa ); + sa.sin_family = AF_INET; + sa.sin_port=0; + int len = recvfrom__( socket, data, MAXIMUM_MTU_SIZE, flag, ( sockaddr* ) & sa, ( socklen_t* ) & len2 ); + if (len>0) + { + sender.address.addr4.sin_family=AF_INET; + sender.address.addr4.sin_addr.s_addr = sa.sin_addr.s_addr; + //sender.SetPort( ntohs( sa.sin_port ) ); + sender.SetPort( ntohs( sa.sin_port ) ); + } + return len; +} diff --git a/src/raknet/NatTypeDetectionCommon.h b/src/raknet/NatTypeDetectionCommon.h new file mode 100755 index 0000000..1fbdacf --- /dev/null +++ b/src/raknet/NatTypeDetectionCommon.h @@ -0,0 +1,56 @@ +/// \defgroup NAT_TYPE_DETECTION_GROUP NatTypeDetection +/// \brief Use a remote server with multiple IP addresses to determine what type of NAT your router is using +/// \details +/// \ingroup PLUGINS_GROUP + +#ifndef __NAT_TYPE_DETECTION_COMMON_H +#define __NAT_TYPE_DETECTION_COMMON_H + +#include "SocketIncludes.h" +#include "RakNetTypes.h" + +namespace RakNet +{ + /// All possible types of NATs (except NAT_TYPE_COUNT, which is an internal value) + enum NATTypeDetectionResult + { + /// Works with anyone + NAT_TYPE_NONE, + /// Accepts any datagrams to a port that has been previously used. Will accept the first datagram from the remote peer. + NAT_TYPE_FULL_CONE, + /// Accepts datagrams to a port as long as the datagram source IP address is a system we have already sent to. Will accept the first datagram if both systems send simultaneously. Otherwise, will accept the first datagram after we have sent one datagram. + NAT_TYPE_ADDRESS_RESTRICTED, + /// Same as address-restricted cone NAT, but we had to send to both the correct remote IP address and correct remote port. The same source address and port to a different destination uses the same mapping. + NAT_TYPE_PORT_RESTRICTED, + /// A different port is chosen for every remote destination. The same source address and port to a different destination uses a different mapping. Since the port will be different, the first external punchthrough attempt will fail. For this to work it requires port-prediction (MAX_PREDICTIVE_PORT_RANGE>1) and that the router chooses ports sequentially. + NAT_TYPE_SYMMETRIC, + /// Hasn't been determined. NATTypeDetectionClient does not use this, but other plugins might + NAT_TYPE_UNKNOWN, + /// In progress. NATTypeDetectionClient does not use this, but other plugins might + NAT_TYPE_DETECTION_IN_PROGRESS, + /// Didn't bother figuring it out, as we support UPNP, so it is equivalent to NAT_TYPE_NONE. NATTypeDetectionClient does not use this, but other plugins might + NAT_TYPE_SUPPORTS_UPNP, + /// \internal Must be last + NAT_TYPE_COUNT + }; + + /// \return Can one system with NATTypeDetectionResult \a type1 connect to \a type2 + bool RAK_DLL_EXPORT CanConnect(NATTypeDetectionResult type1, NATTypeDetectionResult type2); + + /// Return a technical string representin the enumeration + RAK_DLL_EXPORT const char * NATTypeDetectionResultToString(NATTypeDetectionResult type); + + /// Return a friendly string representing the enumeration + /// None and relaxed can connect to anything + /// Moderate can connect to moderate or less + /// Strict can connect to relaxed or less + RAK_DLL_EXPORT const char * NATTypeDetectionResultToStringFriendly(NATTypeDetectionResult type); + + /// \internal + SOCKET RAK_DLL_EXPORT CreateNonblockingBoundSocket(const char *bindAddr); + + /// \internal + int NatTypeRecvFrom(char *data, SOCKET socket, SystemAddress &sender); +} + +#endif diff --git a/src/raknet/NatTypeDetectionServer.cpp b/src/raknet/NatTypeDetectionServer.cpp new file mode 100755 index 0000000..cf9e7be --- /dev/null +++ b/src/raknet/NatTypeDetectionServer.cpp @@ -0,0 +1,263 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionServer==1 + +#include "NatTypeDetectionServer.h" +#include "SocketLayer.h" +#include "RakNetSocket.h" +#include "RakNetSmartPtr.h" +#include "SocketIncludes.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "GetTime.h" +#include "BitStream.h" +#include "SocketDefines.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(NatTypeDetectionServer,NatTypeDetectionServer); + +NatTypeDetectionServer::NatTypeDetectionServer() +{ + s1p2=s2p3=s3p4=s4p5=INVALID_SOCKET; +} +NatTypeDetectionServer::~NatTypeDetectionServer() +{ + Shutdown(); +} +void NatTypeDetectionServer::Startup( + const char *nonRakNetIP2, + const char *nonRakNetIP3, + const char *nonRakNetIP4) +{ + DataStructures::List > sockets; + rakPeerInterface->GetSockets(sockets); + char str[64]; + sockets[0]->boundAddress.ToString(false,str); + s1p2=CreateNonblockingBoundSocket(str); + s1p2Port=SocketLayer::GetLocalPort(s1p2); + s2p3=CreateNonblockingBoundSocket(nonRakNetIP2); + s2p3Port=SocketLayer::GetLocalPort(s2p3); + s3p4=CreateNonblockingBoundSocket(nonRakNetIP3); + s3p4Port=SocketLayer::GetLocalPort(s3p4); + s4p5=CreateNonblockingBoundSocket(nonRakNetIP4); + s4p5Port=SocketLayer::GetLocalPort(s4p5); + strcpy(s3p4Address, nonRakNetIP3); +} +void NatTypeDetectionServer::Shutdown() +{ + if (s1p2!=INVALID_SOCKET) + { + closesocket__(s1p2); + s1p2=INVALID_SOCKET; + } + if (s2p3!=INVALID_SOCKET) + { + closesocket__(s2p3); + s2p3=INVALID_SOCKET; + } + if (s3p4!=INVALID_SOCKET) + { + closesocket__(s3p4); + s3p4=INVALID_SOCKET; + } + if (s4p5!=INVALID_SOCKET) + { + closesocket__(s4p5); + s4p5=INVALID_SOCKET; + } +} +void NatTypeDetectionServer::Update(void) +{ + int i=0; + RakNet::TimeMS time = RakNet::GetTimeMS(); + RakNet::BitStream bs; + SystemAddress boundAddress; + + // Only socket that receives messages is s3p4, to see if the external address is different than that of the connection to rakPeerInterface + char data[ MAXIMUM_MTU_SIZE ]; + int len; + SystemAddress senderAddr; + len=NatTypeRecvFrom(data, s3p4, senderAddr); + // Client is asking us if this is port restricted. Only client requests of this type come in on s3p4 + while (len>0 && data[0]==NAT_TYPE_PORT_RESTRICTED) + { + RakNet::BitStream bsIn((unsigned char*) data,len,false); + RakNetGUID senderGuid; + bsIn.IgnoreBytes(sizeof(MessageID)); + bool readSuccess = bsIn.Read(senderGuid); + RakAssert(readSuccess); + if (readSuccess) + { + unsigned int i = GetDetectionAttemptIndex(senderGuid); + if (i!=(unsigned int)-1) + { + bs.Reset(); + bs.Write((unsigned char) ID_NAT_TYPE_DETECTION_RESULT); + // If different, then symmetric + if (senderAddr!=natDetectionAttempts[i].systemAddress) + { + printf("Determined client is symmetric\n"); + bs.Write((unsigned char) NAT_TYPE_SYMMETRIC); + } + else + { + // else port restricted + printf("Determined client is port restricted\n"); + bs.Write((unsigned char) NAT_TYPE_PORT_RESTRICTED); + } + + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,natDetectionAttempts[i].systemAddress,false); + + // Done + natDetectionAttempts.RemoveAtIndexFast(i); + } + else + { + // RakAssert("i==0 in Update when looking up GUID in NatTypeDetectionServer.cpp. Either a bug or a late resend" && 0); + } + } + else + { + // RakAssert("Didn't read GUID in Update in NatTypeDetectionServer.cpp. Message format error" && 0); + } + + len=NatTypeRecvFrom(data, s3p4, senderAddr); + } + + + while (i < (int) natDetectionAttempts.Size()) + { + if (time > natDetectionAttempts[i].nextStateTime) + { + natDetectionAttempts[i].detectionState=(NATDetectionState)((int)natDetectionAttempts[i].detectionState+1); + natDetectionAttempts[i].nextStateTime=time+natDetectionAttempts[i].timeBetweenAttempts; + SystemAddress saOut; + unsigned char c; + bs.Reset(); + switch (natDetectionAttempts[i].detectionState) + { + case STATE_TESTING_NONE_1: + case STATE_TESTING_NONE_2: + c = NAT_TYPE_NONE; + printf("Testing NAT_TYPE_NONE\n"); + // S4P5 sends to C2. If arrived, no NAT. Done. (Else S4P5 potentially banned, do not use again). + saOut=natDetectionAttempts[i].systemAddress; + saOut.SetPort(natDetectionAttempts[i].c2Port); + SocketLayer::SendTo_PC( s4p5, (const char*) &c, 1, saOut, __FILE__, __LINE__ ); + break; + case STATE_TESTING_FULL_CONE_1: + case STATE_TESTING_FULL_CONE_2: + printf("Testing NAT_TYPE_FULL_CONE\n"); + rakPeerInterface->WriteOutOfBandHeader(&bs); + bs.Write((unsigned char) ID_NAT_TYPE_DETECT); + bs.Write((unsigned char) NAT_TYPE_FULL_CONE); + // S2P3 sends to C1 (Different address, different port, to previously used port on client). If received, Full-cone nat. Done. (Else S2P3 potentially banned, do not use again). + saOut=natDetectionAttempts[i].systemAddress; + saOut.SetPort(natDetectionAttempts[i].systemAddress.GetPort()); + SocketLayer::SendTo_PC( s2p3, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), saOut, __FILE__, __LINE__ ); + break; + case STATE_TESTING_ADDRESS_RESTRICTED_1: + case STATE_TESTING_ADDRESS_RESTRICTED_2: + printf("Testing NAT_TYPE_ADDRESS_RESTRICTED\n"); + rakPeerInterface->WriteOutOfBandHeader(&bs); + bs.Write((unsigned char) ID_NAT_TYPE_DETECT); + bs.Write((unsigned char) NAT_TYPE_ADDRESS_RESTRICTED); + // S1P2 sends to C1 (Same address, different port, to previously used port on client). If received, address-restricted cone nat. Done. + saOut=natDetectionAttempts[i].systemAddress; + saOut.SetPort(natDetectionAttempts[i].systemAddress.GetPort()); + SocketLayer::SendTo_PC( s1p2, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), saOut, __FILE__, __LINE__ ); + break; + case STATE_TESTING_PORT_RESTRICTED_1: + case STATE_TESTING_PORT_RESTRICTED_2: + // C1 sends to S3P4. If address of C1 as seen by S3P4 is the same as the address of C1 as seen by S1P1, then port-restricted cone nat. Done + printf("Testing NAT_TYPE_PORT_RESTRICTED\n"); + bs.Write((unsigned char) ID_NAT_TYPE_DETECTION_REQUEST); + bs.Write(RakString::NonVariadic(s3p4Address)); + bs.Write(s3p4Port); + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,natDetectionAttempts[i].systemAddress,false); + break; + default: + printf("Warning, exceeded final check STATE_TESTING_PORT_RESTRICTED_2.\nExpected that client would have sent NAT_TYPE_PORT_RESTRICTED on s3p4.\nDefaulting to Symmetric\n"); + bs.Write((unsigned char) ID_NAT_TYPE_DETECTION_RESULT); + bs.Write((unsigned char) NAT_TYPE_SYMMETRIC); + rakPeerInterface->Send(&bs,HIGH_PRIORITY,RELIABLE,0,natDetectionAttempts[i].systemAddress,false); + natDetectionAttempts.RemoveAtIndexFast(i); + i--; + break; + } + + } + i++; + } +} +PluginReceiveResult NatTypeDetectionServer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_NAT_TYPE_DETECTION_REQUEST: + OnDetectionRequest(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void NatTypeDetectionServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + unsigned int i = GetDetectionAttemptIndex(systemAddress); + if (i==(unsigned int)-1) + return; + natDetectionAttempts.RemoveAtIndexFast(i); +} +void NatTypeDetectionServer::OnDetectionRequest(Packet *packet) +{ + unsigned int i = GetDetectionAttemptIndex(packet->systemAddress); + + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(1); + bool isRequest=false; + bsIn.Read(isRequest); + if (isRequest) + { + if (i!=(unsigned int)-1) + return; // Already in progress + + NATDetectionAttempt nda; + nda.detectionState=STATE_NONE; + nda.systemAddress=packet->systemAddress; + nda.guid=packet->guid; + bsIn.Read(nda.c2Port); + nda.nextStateTime=0; + nda.timeBetweenAttempts=rakPeerInterface->GetLastPing(nda.systemAddress)*3+50; + natDetectionAttempts.Push(nda, _FILE_AND_LINE_); + } + else + { + if (i==(unsigned int)-1) + return; // Unknown + // They are done + natDetectionAttempts.RemoveAtIndexFast(i); + } + +} +unsigned int NatTypeDetectionServer::GetDetectionAttemptIndex(const SystemAddress &sa) +{ + for (unsigned int i=0; i < natDetectionAttempts.Size(); i++) + { + if (natDetectionAttempts[i].systemAddress==sa) + return i; + } + return (unsigned int) -1; +} +unsigned int NatTypeDetectionServer::GetDetectionAttemptIndex(RakNetGUID guid) +{ + for (unsigned int i=0; i < natDetectionAttempts.Size(); i++) + { + if (natDetectionAttempts[i].guid==guid) + return i; + } + return (unsigned int) -1; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NatTypeDetectionServer.h b/src/raknet/NatTypeDetectionServer.h new file mode 100755 index 0000000..093382d --- /dev/null +++ b/src/raknet/NatTypeDetectionServer.h @@ -0,0 +1,120 @@ +/// \file +/// \brief Contains the NAT-type detection code for the server +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_NatTypeDetectionServer==1 + +#ifndef __NAT_TYPE_DETECTION_SERVER_H +#define __NAT_TYPE_DETECTION_SERVER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "SocketIncludes.h" +#include "DS_OrderedList.h" +#include "RakString.h" +#include "NatTypeDetectionCommon.h" + + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +struct Packet; + +/// \brief Server code for NatTypeDetection +/// \details +/// Sends to a remote system on certain ports and addresses to determine what type of router, if any, that client is behind +/// Requires that the server have 4 external IP addresses +///
      +///
    1. Server has 1 instance of RakNet. Server has four external ip addresses S1 to S4. Five ports are used in total P1 to P5. RakNet is bound to S1P1. Sockets are bound to S1P2, S2P3, S3P4, S4P5 +///
    2. Client with one port using RakNet (C1). Another port not using anything (C2). +///
    3. C1 connects to S1P1 for normal communication. +///
    4. S4P5 sends to C2. If arrived, no NAT. Done. (If didn't arrive, S4P5 potentially banned, do not use again). +///
    5. S2P3 sends to C1 (Different address, different port, to previously used port on client). If received, Full-cone nat. Done. (If didn't arrive, S2P3 potentially banned, do not use again). +///
    6. S1P2 sends to C1 (Same address, different port, to previously used port on client). If received, address-restricted cone nat. Done. +///
    7. Server via RakNet connection tells C1 to send to to S3P4. If address of C1 as seen by S3P4 is the same as the address of C1 as seen by S1P1 (RakNet connection), then port-restricted cone nat. Done +///
    8. Else symmetric nat. Done. +///
    +/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html +/// \sa NatPunchthroughServer +/// \sa NatTypeDetectionClient +/// \ingroup NAT_TYPE_DETECTION_GROUP +class RAK_DLL_EXPORT NatTypeDetectionServer : public PluginInterface2 +{ +public: + + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NatTypeDetectionServer) + + // Constructor + NatTypeDetectionServer(); + + // Destructor + virtual ~NatTypeDetectionServer(); + + /// Start the system, binding to 3 external IPs not already in useS + /// \param[in] nonRakNetIP2 First unused external IP + /// \param[in] nonRakNetIP3 Second unused external IP + /// \param[in] nonRakNetIP4 Third unused external IP + void Startup( + const char *nonRakNetIP2, + const char *nonRakNetIP3, + const char *nonRakNetIP4); + + // Releases the sockets created in Startup(); + void Shutdown(void); + + /// \internal For plugin handling + virtual void Update(void); + + /// \internal For plugin handling + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + enum NATDetectionState + { + STATE_NONE, + STATE_TESTING_NONE_1, + STATE_TESTING_NONE_2, + STATE_TESTING_FULL_CONE_1, + STATE_TESTING_FULL_CONE_2, + STATE_TESTING_ADDRESS_RESTRICTED_1, + STATE_TESTING_ADDRESS_RESTRICTED_2, + STATE_TESTING_PORT_RESTRICTED_1, + STATE_TESTING_PORT_RESTRICTED_2, + STATE_DONE, + }; + + struct NATDetectionAttempt + { + SystemAddress systemAddress; + NATDetectionState detectionState; + RakNet::TimeMS nextStateTime; + RakNet::TimeMS timeBetweenAttempts; + unsigned short c2Port; + RakNetGUID guid; + }; + +protected: + void OnDetectionRequest(Packet *packet); + DataStructures::List natDetectionAttempts; + unsigned int GetDetectionAttemptIndex(const SystemAddress &sa); + unsigned int GetDetectionAttemptIndex(RakNetGUID guid); + + // s1p1 is rakpeer itself + SOCKET s1p2,s2p3,s3p4,s4p5; + unsigned short s1p2Port, s2p3Port, s3p4Port, s4p5Port; + char s3p4Address[64]; +}; +} + + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/NativeFeatureIncludes.h b/src/raknet/NativeFeatureIncludes.h new file mode 100755 index 0000000..1a8df4d --- /dev/null +++ b/src/raknet/NativeFeatureIncludes.h @@ -0,0 +1,175 @@ +// If you want to change these defines, put them in NativeFeatureIncludesOverrides so your changes are not lost when updating RakNet +// The user should not edit this file +#include "NativeFeatureIncludesOverrides.h" + +#ifndef __NATIVE_FEATURE_INCLDUES_H +#define __NATIVE_FEATURE_INCLDUES_H + +// Uncomment below defines, and paste to NativeFeatureIncludesOverrides.h, to exclude plugins that you do not want to build into the static library, or DLL +// These are not all the plugins, only those that are in the core library +// Other plugins are located in DependentExtensions +// #define _RAKNET_SUPPORT_ConnectionGraph2 0 +// #define _RAKNET_SUPPORT_DirectoryDeltaTransfer 0 +// #define _RAKNET_SUPPORT_FileListTransfer 0 +// #define _RAKNET_SUPPORT_FullyConnectedMesh2 0 +// #define _RAKNET_SUPPORT_MessageFilter 0 +// #define _RAKNET_SUPPORT_NatPunchthroughClient 0 +// #define _RAKNET_SUPPORT_NatPunchthroughServer 0 +// #define _RAKNET_SUPPORT_NatTypeDetectionClient 0 +// #define _RAKNET_SUPPORT_NatTypeDetectionServer 0 +// #define _RAKNET_SUPPORT_PacketLogger 0 +// #define _RAKNET_SUPPORT_ReadyEvent 0 +// #define _RAKNET_SUPPORT_ReplicaManager3 0 +// #define _RAKNET_SUPPORT_Router2 0 +// #define _RAKNET_SUPPORT_RPC4Plugin 0 +// #define _RAKNET_SUPPORT_TeamBalancer 0 +// #define _RAKNET_SUPPORT_UDPProxyClient 0 +// #define _RAKNET_SUPPORT_UDPProxyCoordinator 0 +// #define _RAKNET_SUPPORT_UDPProxyServer 0 +// #define _RAKNET_SUPPORT_ConsoleServer 0 +// #define _RAKNET_SUPPORT_RakNetTransport 0 +// #define _RAKNET_SUPPORT_TelnetTransport 0 +// #define _RAKNET_SUPPORT_TCPInterface 0 +// #define _RAKNET_SUPPORT_LogCommandParser 0 +// #define _RAKNET_SUPPORT_RakNetCommandParser 0 +// #define _RAKNET_SUPPORT_EmailSender 0 +// #define _RAKNET_SUPPORT_HTTPConnection 0 +// #define _RAKNET_SUPPORT_PacketizedTCP 0 +// #define _RAKNET_SUPPORT_TwoWayAuthentication 0 + +// SET DEFAULTS IF UNDEFINED +#ifndef LIBCAT_SECURITY +#define LIBCAT_SECURITY 0 +#endif +#ifndef _RAKNET_SUPPORT_ConnectionGraph2 +#define _RAKNET_SUPPORT_ConnectionGraph2 1 +#endif +#ifndef _RAKNET_SUPPORT_DirectoryDeltaTransfer +#define _RAKNET_SUPPORT_DirectoryDeltaTransfer 1 +#endif +#ifndef _RAKNET_SUPPORT_FileListTransfer +#define _RAKNET_SUPPORT_FileListTransfer 1 +#endif +#ifndef _RAKNET_SUPPORT_FullyConnectedMesh +#define _RAKNET_SUPPORT_FullyConnectedMesh 1 +#endif +#ifndef _RAKNET_SUPPORT_FullyConnectedMesh2 +#define _RAKNET_SUPPORT_FullyConnectedMesh2 1 +#endif +#ifndef _RAKNET_SUPPORT_MessageFilter +#define _RAKNET_SUPPORT_MessageFilter 1 +#endif +#ifndef _RAKNET_SUPPORT_NatPunchthroughClient +#define _RAKNET_SUPPORT_NatPunchthroughClient 1 +#endif +#ifndef _RAKNET_SUPPORT_NatPunchthroughServer +#define _RAKNET_SUPPORT_NatPunchthroughServer 1 +#endif +#ifndef _RAKNET_SUPPORT_NatTypeDetectionClient +#define _RAKNET_SUPPORT_NatTypeDetectionClient 1 +#endif +#ifndef _RAKNET_SUPPORT_NatTypeDetectionServer +#define _RAKNET_SUPPORT_NatTypeDetectionServer 1 +#endif +#ifndef _RAKNET_SUPPORT_PacketLogger +#define _RAKNET_SUPPORT_PacketLogger 1 +#endif +#ifndef _RAKNET_SUPPORT_ReadyEvent +#define _RAKNET_SUPPORT_ReadyEvent 1 +#endif +#ifndef _RAKNET_SUPPORT_ReplicaManager3 +#define _RAKNET_SUPPORT_ReplicaManager3 1 +#endif +#ifndef _RAKNET_SUPPORT_Router2 +#define _RAKNET_SUPPORT_Router2 1 +#endif +#ifndef _RAKNET_SUPPORT_RPC4Plugin +#define _RAKNET_SUPPORT_RPC4Plugin 1 +#endif +#ifndef _RAKNET_SUPPORT_TeamBalancer +#define _RAKNET_SUPPORT_TeamBalancer 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPProxyClient +#define _RAKNET_SUPPORT_UDPProxyClient 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPProxyCoordinator +#define _RAKNET_SUPPORT_UDPProxyCoordinator 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPProxyServer +#define _RAKNET_SUPPORT_UDPProxyServer 1 +#endif +#ifndef _RAKNET_SUPPORT_ConsoleServer +#define _RAKNET_SUPPORT_ConsoleServer 1 +#endif +#ifndef _RAKNET_SUPPORT_RakNetTransport +#define _RAKNET_SUPPORT_RakNetTransport 1 +#endif +#ifndef _RAKNET_SUPPORT_TelnetTransport +#define _RAKNET_SUPPORT_TelnetTransport 1 +#endif +#ifndef _RAKNET_SUPPORT_TCPInterface +#define _RAKNET_SUPPORT_TCPInterface 1 +#endif +#ifndef _RAKNET_SUPPORT_LogCommandParser +#define _RAKNET_SUPPORT_LogCommandParser 1 +#endif +#ifndef _RAKNET_SUPPORT_RakNetCommandParser +#define _RAKNET_SUPPORT_RakNetCommandParser 1 +#endif +#ifndef _RAKNET_SUPPORT_EmailSender +#define _RAKNET_SUPPORT_EmailSender 1 +#endif +#ifndef _RAKNET_SUPPORT_HTTPConnection +#define _RAKNET_SUPPORT_HTTPConnection 1 +#endif +#ifndef _RAKNET_SUPPORT_PacketizedTCP +#define _RAKNET_SUPPORT_PacketizedTCP 1 +#endif +#ifndef _RAKNET_SUPPORT_TwoWayAuthentication +#define _RAKNET_SUPPORT_TwoWayAuthentication 1 +#endif +#ifndef _RAKNET_SUPPORT_CloudClient +#define _RAKNET_SUPPORT_CloudClient 1 +#endif +#ifndef _RAKNET_SUPPORT_CloudServer +#define _RAKNET_SUPPORT_CloudServer 1 +#endif +#ifndef _RAKNET_SUPPORT_DynDNS +#define _RAKNET_SUPPORT_DynDNS 1 +#endif +#ifndef _RAKNET_SUPPORT_Rackspace +#define _RAKNET_SUPPORT_Rackspace 1 +#endif +#ifndef _RAKNET_SUPPORT_FileOperations +#define _RAKNET_SUPPORT_FileOperations 1 +#endif +#ifndef _RAKNET_SUPPORT_UDPForwarder +#define _RAKNET_SUPPORT_UDPForwarder 1 +#endif + +// Take care of dependencies + +#undef _RAKNET_SUPPORT_FileListTransfer +#define _RAKNET_SUPPORT_FileListTransfer 1 + + +#undef _RAKNET_SUPPORT_ConnectionGraph2 +#define _RAKNET_SUPPORT_ConnectionGraph2 1 + + +#undef _RAKNET_SUPPORT_PacketizedTCP +#define _RAKNET_SUPPORT_PacketizedTCP 1 + + +#undef _RAKNET_SUPPORT_TCPInterface +#define _RAKNET_SUPPORT_TCPInterface 1 + + + + + + + + + +#endif // __NATIVE_FEATURE_INCLDUES_H diff --git a/src/raknet/NativeFeatureIncludesOverrides.h b/src/raknet/NativeFeatureIncludesOverrides.h new file mode 100755 index 0000000..820f7ab --- /dev/null +++ b/src/raknet/NativeFeatureIncludesOverrides.h @@ -0,0 +1,9 @@ +// USER EDITABLE FILE +// See NativeFeatureIncludes.h + +#ifndef __NATIVE_FEATURE_INCLDUES_OVERRIDES_H +#define __NATIVE_FEATURE_INCLDUES_OVERRIDES_H + +//#define LIBCAT_SECURITY 1 + +#endif diff --git a/src/raknet/NativeTypes.h b/src/raknet/NativeTypes.h new file mode 100755 index 0000000..f1ee4cf --- /dev/null +++ b/src/raknet/NativeTypes.h @@ -0,0 +1,23 @@ +#ifndef __NATIVE_TYPES_H +#define __NATIVE_TYPES_H + +#if defined(__GNUC__) || defined(__GCCXML__) || defined(__SNC__) || defined(__S3E__) +#include +#elif !defined(_STDINT_H) && !defined(_SN_STDINT_H) && !defined(_SYS_STDINT_H_) && !defined(_STDINT) && !defined(_MACHTYPES_H_) && !defined(_STDINT_H_) + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned __int32 uint32_t; + typedef signed char int8_t; + typedef signed short int16_t; + typedef __int32 int32_t; + #if defined(_MSC_VER) && _MSC_VER < 1300 + typedef unsigned __int64 uint64_t; + typedef signed __int64 int64_t; + #else + typedef unsigned long long int uint64_t; + typedef signed long long int64_t; + #endif +#endif + + +#endif diff --git a/src/raknet/NetworkIDManager.cpp b/src/raknet/NetworkIDManager.cpp new file mode 100755 index 0000000..35f429a --- /dev/null +++ b/src/raknet/NetworkIDManager.cpp @@ -0,0 +1,108 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NetworkIDManager.h" +#include "NetworkIDObject.h" +#include "RakAssert.h" +#include "GetTime.h" +#include "RakSleep.h" +#include "SuperFastHash.h" +#include "RakPeerInterface.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(NetworkIDManager,NetworkIDManager) + +NetworkIDManager::NetworkIDManager() +{ + startingOffset = RakPeerInterface::Get64BitUniqueRandomNumber(); + memset(networkIdHash,0,sizeof(networkIdHash)); +} +NetworkIDManager::~NetworkIDManager(void) +{ + +} +NetworkIDObject *NetworkIDManager::GET_BASE_OBJECT_FROM_ID(NetworkID x) +{ + unsigned int hashIndex=NetworkIDToHashIndex(x); + NetworkIDObject *nio=networkIdHash[hashIndex]; + while (nio) + { + if (nio->GetNetworkID()==x) + return nio; + nio=nio->nextInstanceForNetworkIDManager; + } + return 0; +} +NetworkID NetworkIDManager::GetNewNetworkID(void) +{ + while (GET_BASE_OBJECT_FROM_ID(++startingOffset)) + ; + return startingOffset; +} +unsigned int NetworkIDManager::NetworkIDToHashIndex(NetworkID networkId) +{ +// return SuperFastHash((const char*) &networkId.guid.g,sizeof(networkId.guid.g)) % NETWORK_ID_MANAGER_HASH_LENGTH; + return (unsigned int) (networkId % NETWORK_ID_MANAGER_HASH_LENGTH); +} +void NetworkIDManager::TrackNetworkIDObject(NetworkIDObject *networkIdObject) +{ + RakAssert(networkIdObject->GetNetworkID()!=UNASSIGNED_NETWORK_ID); + unsigned int hashIndex=NetworkIDToHashIndex(networkIdObject->GetNetworkID()); +// printf("TrackNetworkIDObject hashIndex=%i guid=%s\n",hashIndex, networkIdObject->GetNetworkID().guid.ToString()); // removeme + if (networkIdHash[hashIndex]==0) + { + networkIdHash[hashIndex]=networkIdObject; + return; + } + NetworkIDObject *nio=networkIdHash[hashIndex]; + // Duplicate insertion? + RakAssert(nio!=networkIdObject); + // Random GUID conflict? + RakAssert(nio->GetNetworkID()!=networkIdObject->GetNetworkID()); + + while (nio->nextInstanceForNetworkIDManager!=0) + { + nio=nio->nextInstanceForNetworkIDManager; + + // Duplicate insertion? + RakAssert(nio!=networkIdObject); + // Random GUID conflict? + RakAssert(nio->GetNetworkID()!=networkIdObject->GetNetworkID()); + } + + networkIdObject->nextInstanceForNetworkIDManager=0; + nio->nextInstanceForNetworkIDManager=networkIdObject; +} +void NetworkIDManager::StopTrackingNetworkIDObject(NetworkIDObject *networkIdObject) +{ + RakAssert(networkIdObject->GetNetworkID()!=UNASSIGNED_NETWORK_ID); + unsigned int hashIndex=NetworkIDToHashIndex(networkIdObject->GetNetworkID()); +// printf("hashIndex=%i\n",hashIndex); // removeme + NetworkIDObject *nio=networkIdHash[hashIndex]; + if (nio==0) + { + RakAssert("NetworkIDManager::StopTrackingNetworkIDObject didn't find object" && 0); + return; + } + if (nio==networkIdObject) + { + networkIdHash[hashIndex]=nio->nextInstanceForNetworkIDManager; + return; + } + + while (nio) + { + if (nio->nextInstanceForNetworkIDManager==networkIdObject) + { + nio->nextInstanceForNetworkIDManager=networkIdObject->nextInstanceForNetworkIDManager; + return; + } + nio=nio->nextInstanceForNetworkIDManager; + } + + RakAssert("NetworkIDManager::StopTrackingNetworkIDObject didn't find object" && 0); +} diff --git a/src/raknet/NetworkIDManager.h b/src/raknet/NetworkIDManager.h new file mode 100755 index 0000000..0afd057 --- /dev/null +++ b/src/raknet/NetworkIDManager.h @@ -0,0 +1,70 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __NETWORK_ID_MANAGER_H +#define __NETWORK_ID_MANAGER_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "RakMemoryOverride.h" +#include "NetworkIDObject.h" +#include "Rand.h" + +namespace RakNet +{ + +/// Increase this value if you plan to have many persistent objects +/// This value must match on all systems +#define NETWORK_ID_MANAGER_HASH_LENGTH 1024 + +/// This class is simply used to generate a unique number for a group of instances of NetworkIDObject +/// An instance of this class is required to use the ObjectID to pointer lookup system +/// You should have one instance of this class per game instance. +/// Call SetIsNetworkIDAuthority before using any functions of this class, or of NetworkIDObject +class RAK_DLL_EXPORT NetworkIDManager +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(NetworkIDManager) + + NetworkIDManager(); + virtual ~NetworkIDManager(void); + + /// Returns the parent object, or this instance if you don't use a parent. + /// Supports NetworkIDObject anywhere in the inheritance hierarchy + /// \pre You must first call SetNetworkIDManager before using this function + template + returnType GET_OBJECT_FROM_ID(NetworkID x) { + NetworkIDObject *nio = GET_BASE_OBJECT_FROM_ID(x); + if (nio==0) + return 0; + if (nio->GetParent()) + return (returnType) nio->GetParent(); + return (returnType) nio; + } + + /// \internal + NetworkIDObject *GET_BASE_OBJECT_FROM_ID(NetworkID x); + + /// \internal + void TrackNetworkIDObject(NetworkIDObject *networkIdObject); + void StopTrackingNetworkIDObject(NetworkIDObject *networkIdObject); + +protected: + friend class NetworkIDObject; + + NetworkIDObject *networkIdHash[NETWORK_ID_MANAGER_HASH_LENGTH]; + unsigned int NetworkIDToHashIndex(NetworkID networkId); + uint64_t startingOffset; + /// \internal + NetworkID GetNewNetworkID(void); + +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/NetworkIDObject.cpp b/src/raknet/NetworkIDObject.cpp new file mode 100755 index 0000000..89b4209 --- /dev/null +++ b/src/raknet/NetworkIDObject.cpp @@ -0,0 +1,62 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "NetworkIDObject.h" +#include "NetworkIDManager.h" +#include "RakAssert.h" +#include "RakAlloca.h" + +using namespace RakNet; + +NetworkIDObject::NetworkIDObject() +{ + networkID=UNASSIGNED_NETWORK_ID; + parent=0; + networkIDManager=0; + nextInstanceForNetworkIDManager=0; +} +NetworkIDObject::~NetworkIDObject() +{ + if (networkID!=UNASSIGNED_NETWORK_ID) + networkIDManager->StopTrackingNetworkIDObject(this); +} +void NetworkIDObject::SetNetworkIDManager( NetworkIDManager *manager) +{ + networkIDManager=manager; +} +NetworkIDManager * NetworkIDObject::GetNetworkIDManager( void ) +{ + return networkIDManager; +} +NetworkID NetworkIDObject::GetNetworkID( void ) +{ + if (networkID==UNASSIGNED_NETWORK_ID) + { + RakAssert(networkIDManager); + networkID = networkIDManager->GetNewNetworkID(); + networkIDManager->TrackNetworkIDObject(this); + } + return networkID; +} +void NetworkIDObject::SetNetworkID( NetworkID id ) +{ + if (id==networkID) + return; + + if (networkID!=UNASSIGNED_NETWORK_ID) + networkIDManager->StopTrackingNetworkIDObject(this); + networkID = id; + networkIDManager->TrackNetworkIDObject(this); +} +void NetworkIDObject::SetParent( void *_parent ) +{ + parent=_parent; +} +void* NetworkIDObject::GetParent( void ) const +{ + return parent; +} diff --git a/src/raknet/NetworkIDObject.h b/src/raknet/NetworkIDObject.h new file mode 100755 index 0000000..b53b702 --- /dev/null +++ b/src/raknet/NetworkIDObject.h @@ -0,0 +1,81 @@ +/// \file +/// \brief A class you can derive from to make it easier to represent every networked object with an integer. This way you can refer to objects over the network. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#if !defined(__NETWORK_ID_GENERATOR) +#define __NETWORK_ID_GENERATOR + +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class NetworkIDManager; + +typedef uint32_t NetworkIDType; + +/// \brief Unique shared ids for each object instance +/// \details A class you can derive from to make it easier to represent every networked object with an integer. This way you can refer to objects over the network. +/// One system should return true for IsNetworkIDAuthority() and the rest should return false. When an object needs to be created, have the the one system create the object. +/// Then have that system send a message to all other systems, and include the value returned from GetNetworkID() in that packet. All other systems should then create the same +/// class of object, and call SetNetworkID() on that class with the NetworkID in the packet. +/// \see the manual for more information on this. +class RAK_DLL_EXPORT NetworkIDObject +{ +public: + // Constructor. NetworkIDs, if IsNetworkIDAuthority() is true, are created here. + NetworkIDObject(); + + // Destructor. Used NetworkIDs, if any, are freed here. + virtual ~NetworkIDObject(); + + /// Sets the manager class from which to request unique network IDs + /// Unlike previous versions, the NetworkIDObject relies on a manager class to provide IDs, rather than using statics, + /// So you can have more than one set of IDs on the same system. + virtual void SetNetworkIDManager( NetworkIDManager *manager); + + /// Returns what was passed to SetNetworkIDManager + virtual NetworkIDManager * GetNetworkIDManager( void ); + + /// Returns the NetworkID that you can use to refer to this object over the network. + /// \pre You must first call SetNetworkIDManager before using this function + /// \retval UNASSIGNED_NETWORK_ID UNASSIGNED_NETWORK_ID is returned IsNetworkIDAuthority() is false and SetNetworkID() was not previously called. This is also returned if you call this function in the constructor. + /// \retval 0-65534 Any other value is a valid NetworkID. NetworkIDs start at 0 and go to 65534, wrapping at that point. + virtual NetworkID GetNetworkID( void ); + + /// Sets the NetworkID for this instance. Usually this is called by the clients and determined from the servers. However, if you save multiplayer games you would likely use + /// This on load as well. + virtual void SetNetworkID( NetworkID id ); + + /// Your class does not have to derive from NetworkIDObject, although that is the easiest way to implement this. + /// If you want this to be a member object of another class, rather than inherit, then call SetParent() with a pointer to the parent class instance. + /// GET_OBJECT_FROM_ID will then return the parent rather than this instance. + virtual void SetParent( void *_parent ); + + /// Return what was passed to SetParent + /// \return The value passed to SetParent, or 0 if it was never called. + virtual void* GetParent( void ) const; + +protected: + /// The network ID of this object + NetworkID networkID; + + NetworkIDManager *networkIDManager; + + /// The parent set by SetParent() + void *parent; + + /// \internal, used by NetworkIDManager + friend class NetworkIDManager; + NetworkIDObject *nextInstanceForNetworkIDManager; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/PS3Includes.h b/src/raknet/PS3Includes.h new file mode 100755 index 0000000..5d0e340 --- /dev/null +++ b/src/raknet/PS3Includes.h @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/PacketConsoleLogger.cpp b/src/raknet/PacketConsoleLogger.cpp new file mode 100755 index 0000000..4d69f99 --- /dev/null +++ b/src/raknet/PacketConsoleLogger.cpp @@ -0,0 +1,26 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_LogCommandParser==1 && _RAKNET_SUPPORT_PacketLogger==1 +#include "PacketConsoleLogger.h" +#include "LogCommandParser.h" +#include + +using namespace RakNet; + +PacketConsoleLogger::PacketConsoleLogger() +{ + logCommandParser=0; +} + +void PacketConsoleLogger::SetLogCommandParser(LogCommandParser *lcp) +{ + logCommandParser=lcp; + if (logCommandParser) + logCommandParser->AddChannel("PacketConsoleLogger"); +} +void PacketConsoleLogger::WriteLog(const char *str) +{ + if (logCommandParser) + logCommandParser->WriteLog("PacketConsoleLogger", str); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketConsoleLogger.h b/src/raknet/PacketConsoleLogger.h new file mode 100755 index 0000000..28aaef9 --- /dev/null +++ b/src/raknet/PacketConsoleLogger.h @@ -0,0 +1,38 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to the log command parser, which can be accessed through Telnet +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_LogCommandParser==1 && _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_CONSOLE_LOGGER_H_ +#define __PACKET_CONSOLE_LOGGER_H_ + +#include "PacketLogger.h" + +namespace RakNet +{ +/// Forward declarations +class LogCommandParser; + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Packetlogger that logs to a remote command console +class RAK_DLL_EXPORT PacketConsoleLogger : public PacketLogger +{ +public: + PacketConsoleLogger(); + // Writes to the command parser used for logging, which is accessed through a secondary communication layer (such as Telnet or RakNet) - See ConsoleServer.h + virtual void SetLogCommandParser(LogCommandParser *lcp); + virtual void WriteLog(const char *str); +protected: + LogCommandParser *logCommandParser; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketFileLogger.cpp b/src/raknet/PacketFileLogger.cpp new file mode 100755 index 0000000..18631c2 --- /dev/null +++ b/src/raknet/PacketFileLogger.cpp @@ -0,0 +1,45 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 +#include "PacketFileLogger.h" +#include "GetTime.h" + +using namespace RakNet; + +PacketFileLogger::PacketFileLogger() +{ + packetLogFile=0; +} +PacketFileLogger::~PacketFileLogger() +{ + if (packetLogFile) + { + fflush(packetLogFile); + fclose(packetLogFile); + } +} +void PacketFileLogger::StartLog(const char *filenamePrefix) +{ + // Open file for writing + char filename[256]; + if (filenamePrefix) + sprintf(filename, "%s_%i.csv", filenamePrefix, (int) RakNet::GetTimeMS()); + else + sprintf(filename, "PacketLog_%i.csv", (int) RakNet::GetTimeMS()); + packetLogFile = fopen(filename, "wt"); + LogHeader(); + if (packetLogFile) + { + fflush(packetLogFile); + } +} + +void PacketFileLogger::WriteLog(const char *str) +{ + if (packetLogFile) + { + fprintf(packetLogFile, "%s\n", str); + fflush(packetLogFile); + } +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketFileLogger.h b/src/raknet/PacketFileLogger.h new file mode 100755 index 0000000..48f5ce2 --- /dev/null +++ b/src/raknet/PacketFileLogger.h @@ -0,0 +1,37 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to a file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_FILE_LOGGER_H_ +#define __PACKET_FILE_LOGGER_H_ + +#include "PacketLogger.h" +#include + +namespace RakNet +{ + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Packetlogger that outputs to a file +class RAK_DLL_EXPORT PacketFileLogger : public PacketLogger +{ +public: + PacketFileLogger(); + virtual ~PacketFileLogger(); + void StartLog(const char *filenamePrefix); + virtual void WriteLog(const char *str); +protected: + FILE *packetLogFile; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketLogger.cpp b/src/raknet/PacketLogger.cpp new file mode 100755 index 0000000..35e8c68 --- /dev/null +++ b/src/raknet/PacketLogger.cpp @@ -0,0 +1,456 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#include "PacketLogger.h" +#include "BitStream.h" +#include "DS_List.h" +#include "InternalPacket.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "StringCompressor.h" +#include "GetTime.h" +#include +#include +#include +#include "Itoa.h" +#include +#include "SocketIncludes.h" +#include "gettimeofday.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(PacketLogger,PacketLogger); + +PacketLogger::PacketLogger() +{ + printId=true; + printAcks=true; + prefix[0]=0; + suffix[0]=0; + logDirectMessages=true; +} +PacketLogger::~PacketLogger() +{ +} +void PacketLogger::FormatLine( +char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame, unsigned char id +, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, +unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex) +{ + char numericID[16]; + const char* idToPrint = NULL; + if(printId) + { + if (splitPacketCount>0 && splitPacketCount!=(unsigned int)-1) + idToPrint="(SPLIT PACKET)"; + else + idToPrint = IDTOString(id); + } + // If printId is false, idToPrint will be NULL, as it will + // in the case of an unrecognized id. Testing printId for false + // would just be redundant. + if(idToPrint == NULL) + { + sprintf(numericID, "%5u", id); + idToPrint = numericID; + } + + FormatLine(into, dir, type, reliableMessageNumber, frame, idToPrint, bitLen, time, local, remote,splitPacketId,splitPacketIndex,splitPacketCount, orderingIndex); +} + +void PacketLogger::FormatLine( +char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame, const char* idToPrint +, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, +unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex) +{ + char str1[64], str2[62]; + local.ToString(true, str1); + remote.ToString(true, str2); + char localtime[128]; + GetLocalTime(localtime); + char str3[64]; + if (reliableMessageNumber==(unsigned int)-1) + { + str3[0]='N'; + str3[1]='/'; + str3[2]='A'; + str3[3]=0; + } + else + { + sprintf(str3,"%5u",reliableMessageNumber); + } + + sprintf(into, "%s,%s%s,%s,%s,%5u,%s,%u,%llu,%s,%s,%i,%i,%i,%i,%s," + , localtime + , prefix + , dir + , type + , str3 + , frame + , idToPrint + , bitLen + , time + , str1 + , str2 + , splitPacketId + , splitPacketIndex + , splitPacketCount + , orderingIndex + , suffix + ); +} +void PacketLogger::OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + if (logDirectMessages==false) + return; + + char str[256]; + FormatLine(str, "Snd", "Raw", 0, 0, data[0], bitsUsed, RakNet::GetTimeMS(), rakPeerInterface->GetExternalID(remoteSystemAddress), remoteSystemAddress, (unsigned int)-1,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1); + AddToLog(str); +} + +void PacketLogger::LogHeader(void) +{ + // Last 5 are splitpacket id, split packet index, split packet count, ordering index, suffix + AddToLog("Clock,S|R,Typ,Reliable#,Frm #,PktID,BitLn,Time ,Local IP:Port ,RemoteIP:Port,SPID,SPIN,SPCO,OI,Suffix,Miscellaneous\n"); +} +void PacketLogger::OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + if (logDirectMessages==false) + return; + + char str[256]; + FormatLine(str, "Rcv", "Raw", 0, 0, data[0], bitsUsed, RakNet::GetTime(), rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS), remoteSystemAddress,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1); + AddToLog(str); +} +void PacketLogger::OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + char str[1024]; + FormatLine(str, "RcvErr", errorMessage, 0, 0, "", bitsUsed, RakNet::GetTime(), rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS), remoteSystemAddress,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1,(unsigned int)-1); + AddToLog(str); +} +void PacketLogger::OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time) +{ + char str[256]; + char str1[64], str2[62]; + SystemAddress localSystemAddress = rakPeerInterface->GetExternalID(remoteSystemAddress); + localSystemAddress.ToString(true, str1); + remoteSystemAddress.ToString(true, str2); + char localtime[128]; + GetLocalTime(localtime); + + sprintf(str, "%s,Rcv,Ack,%i,,,,%llu,%s,%s,,,,,," + , localtime + , messageNumber + , (unsigned long long) time + , str1 + , str2 + ); + AddToLog(str); +} +void PacketLogger::OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) +{ + char str[256]; + char str1[64], str2[62]; + SystemAddress localSystemAddress = rakPeerInterface->GetExternalID(remoteSystemAddress); + localSystemAddress.ToString(true, str1); + remoteSystemAddress.ToString(true, str2); + RakNet::TimeMS time = RakNet::GetTimeMS(); + char localtime[128]; + GetLocalTime(localtime); + + sprintf(str, "%s,Lcl,PBP,,,%s,%i,%llu,%s,%s,,,,,," + , localtime + , BaseIDTOString(data[0]) + , bitsUsed + , (unsigned long long) time + , str1 + , str2 + ); + AddToLog(str); +} +void PacketLogger::OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time, int isSend) +{ + char str[256]; + const char *sendTypes[] = + { + "Rcv", + "Snd", + "Err1", + "Err2", + "Err3", + "Err4", + "Err5", + "Err6", + }; + const char *sendType = sendTypes[isSend]; + SystemAddress localSystemAddress = rakPeerInterface->GetExternalID(remoteSystemAddress); + + unsigned int reliableMessageNumber; + if (internalPacket->reliability==UNRELIABLE || internalPacket->reliability==UNRELIABLE_SEQUENCED || internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT) + reliableMessageNumber=(unsigned int)-1; + else + reliableMessageNumber=internalPacket->reliableMessageNumber; + + if (internalPacket->data[0]==ID_TIMESTAMP) + { + FormatLine(str, sendType, "Tms", reliableMessageNumber, frameNumber, internalPacket->data[1+sizeof(RakNet::Time)], internalPacket->dataBitLength, (unsigned long long)time, localSystemAddress, remoteSystemAddress, internalPacket->splitPacketId, internalPacket->splitPacketIndex, internalPacket->splitPacketCount, internalPacket->orderingIndex); + } + else + { + FormatLine(str, sendType, "Nrm", reliableMessageNumber, frameNumber, internalPacket->data[0], internalPacket->dataBitLength, (unsigned long long)time, localSystemAddress, remoteSystemAddress, internalPacket->splitPacketId, internalPacket->splitPacketIndex, internalPacket->splitPacketCount, internalPacket->orderingIndex); + } + + AddToLog(str); +} +void PacketLogger::AddToLog(const char *str) +{ + WriteLog(str); +} +void PacketLogger::WriteLog(const char *str) +{ + RAKNET_DEBUG_PRINTF("%s\n", str); +} +void PacketLogger::WriteMiscellaneous(const char *type, const char *msg) +{ + char str[1024]; + char str1[64]; + SystemAddress localSystemAddress = rakPeerInterface->GetInternalID(); + localSystemAddress.ToString(true, str1); + RakNet::TimeMS time = RakNet::GetTimeMS(); + char localtime[128]; + GetLocalTime(localtime); + + sprintf(str, "%s,Lcl,%s,,,,,%llu,%s,,,,,,,%s" + , localtime + , type + , (unsigned long long) time + , str1 + , msg + ); + + AddToLog(msg); +} +void PacketLogger::SetPrintID(bool print) +{ + printId=print; +} +void PacketLogger::SetPrintAcks(bool print) +{ + printAcks=print; +} +const char* PacketLogger::BaseIDTOString(unsigned char Id) +{ + if (Id >= ID_USER_PACKET_ENUM) + return 0; + + const char *IDTable[((int)ID_USER_PACKET_ENUM)+1]= + { + "ID_CONNECTED_PING", + "ID_UNCONNECTED_PING", + "ID_UNCONNECTED_PING_OPEN_CONNECTIONS", + "ID_CONNECTED_PONG", + "ID_DETECT_LOST_CONNECTIONS", + "ID_OPEN_CONNECTION_REQUEST_1", + "ID_OPEN_CONNECTION_REPLY_1", + "ID_OPEN_CONNECTION_REQUEST_2", + "ID_OPEN_CONNECTION_REPLY_2", + "ID_CONNECTION_REQUEST", + "ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY", + "ID_OUR_SYSTEM_REQUIRES_SECURITY", + "ID_PUBLIC_KEY_MISMATCH", + "ID_OUT_OF_BAND_INTERNAL", + "ID_SND_RECEIPT_ACKED", + "ID_SND_RECEIPT_LOSS", + "ID_CONNECTION_REQUEST_ACCEPTED", + "ID_CONNECTION_ATTEMPT_FAILED", + "ID_ALREADY_CONNECTED", + "ID_NEW_INCOMING_CONNECTION", + "ID_NO_FREE_INCOMING_CONNECTIONS", + "ID_DISCONNECTION_NOTIFICATION", + "ID_CONNECTION_LOST", + "ID_CONNECTION_BANNED", + "ID_INVALID_PASSWORD", + "ID_INCOMPATIBLE_PROTOCOL_VERSION", + "ID_IP_RECENTLY_CONNECTED", + "ID_TIMESTAMP", + "ID_UNCONNECTED_PONG", + "ID_ADVERTISE_SYSTEM", + "ID_DOWNLOAD_PROGRESS", + "ID_REMOTE_DISCONNECTION_NOTIFICATION", + "ID_REMOTE_CONNECTION_LOST", + "ID_REMOTE_NEW_INCOMING_CONNECTION", + "ID_FILE_LIST_TRANSFER_HEADER", + "ID_FILE_LIST_TRANSFER_FILE", + "ID_FILE_LIST_REFERENCE_PUSH_ACK", + "ID_DDT_DOWNLOAD_REQUEST", + "ID_TRANSPORT_STRING", + "ID_REPLICA_MANAGER_CONSTRUCTION", + "ID_REPLICA_MANAGER_SCOPE_CHANGE", + "ID_REPLICA_MANAGER_SERIALIZE", + "ID_REPLICA_MANAGER_DOWNLOAD_STARTED", + "ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE", + "ID_RAKVOICE_OPEN_CHANNEL_REQUEST", + "ID_RAKVOICE_OPEN_CHANNEL_REPLY", + "ID_RAKVOICE_CLOSE_CHANNEL", + "ID_RAKVOICE_DATA", + "ID_AUTOPATCHER_GET_CHANGELIST_SINCE_DATE", + "ID_AUTOPATCHER_CREATION_LIST", + "ID_AUTOPATCHER_DELETION_LIST", + "ID_AUTOPATCHER_GET_PATCH", + "ID_AUTOPATCHER_PATCH_LIST", + "ID_AUTOPATCHER_REPOSITORY_FATAL_ERROR", + "ID_AUTOPATCHER_FINISHED_INTERNAL", + "ID_AUTOPATCHER_FINISHED", + "ID_AUTOPATCHER_RESTART_APPLICATION", + "ID_NAT_PUNCHTHROUGH_REQUEST", + "ID_NAT_GROUP_PUNCHTHROUGH_REQUEST", + "ID_NAT_GROUP_PUNCHTHROUGH_REPLY", + "ID_NAT_CONNECT_AT_TIME", + "ID_NAT_GET_MOST_RECENT_PORT", + "ID_NAT_CLIENT_READY", + "ID_NAT_GROUP_PUNCHTHROUGH_FAILURE_NOTIFICATION", + "ID_NAT_TARGET_NOT_CONNECTED", + "ID_NAT_TARGET_UNRESPONSIVE", + "ID_NAT_CONNECTION_TO_TARGET_LOST", + "ID_NAT_ALREADY_IN_PROGRESS", + "ID_NAT_PUNCHTHROUGH_FAILED", + "ID_NAT_PUNCHTHROUGH_SUCCEEDED", + "ID_NAT_GROUP_PUNCH_FAILED", + "ID_NAT_GROUP_PUNCH_SUCCEEDED", + "ID_READY_EVENT_SET", + "ID_READY_EVENT_UNSET", + "ID_READY_EVENT_ALL_SET", + "ID_READY_EVENT_QUERY", + "ID_LOBBY_GENERAL", + "ID_RPC_REMOTE_ERROR", + "ID_RPC_PLUGIN", + "ID_FILE_LIST_REFERENCE_PUSH", + "ID_READY_EVENT_FORCE_ALL_SET", + "ID_ROOMS_EXECUTE_FUNC", + "ID_ROOMS_LOGON_STATUS", + "ID_ROOMS_HANDLE_CHANGE", + "ID_LOBBY2_SEND_MESSAGE", + "ID_LOBBY2_SERVER_ERROR", + "ID_FCM2_NEW_HOST", + "ID_FCM2_REQUEST_FCMGUID", + "ID_FCM2_RESPOND_CONNECTION_COUNT", + "ID_FCM2_INFORM_FCMGUID", + "ID_FCM2_UPDATE_MIN_TOTAL_CONNECTION_COUNT", + "ID_UDP_PROXY_GENERAL", + "ID_SQLite3_EXEC", + "ID_SQLite3_UNKNOWN_DB", + "ID_SQLLITE_LOGGER", + "ID_NAT_TYPE_DETECTION_REQUEST", + "ID_NAT_TYPE_DETECTION_RESULT", + "ID_ROUTER_2_INTERNAL", + "ID_ROUTER_2_FORWARDING_NO_PATH", + "ID_ROUTER_2_FORWARDING_ESTABLISHED", + "ID_ROUTER_2_REROUTED", + "ID_TEAM_BALANCER_INTERNAL", + "ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING", + "ID_TEAM_BALANCER_TEAMS_LOCKED", + "ID_TEAM_BALANCER_TEAM_ASSIGNED", + "ID_LIGHTSPEED_INTEGRATION", + "ID_XBOX_LOBBY", + "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS", + "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS", + "ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE", + "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE", + "ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT", + "ID_TWO_WAY_AUTHENTICATION_NEGOTIATION", + "ID_CLOUD_POST_REQUEST", + "ID_CLOUD_RELEASE_REQUEST", + "ID_CLOUD_GET_REQUEST", + "ID_CLOUD_GET_RESPONSE", + "ID_CLOUD_UNSUBSCRIBE_REQUEST", + "ID_CLOUD_SERVER_TO_SERVER_COMMAND", + "ID_CLOUD_SUBSCRIPTION_NOTIFICATION", + "ID_RESERVED_1", + "ID_RESERVED_2", + "ID_RESERVED_3", + "ID_RESERVED_4", + "ID_RESERVED_5", + "ID_RESERVED_6", + "ID_RESERVED_7", + "ID_RESERVED_8", + "ID_RESERVED_9", + "ID_USER_PACKET_ENUM", + }; + + return (char*)IDTable[Id]; +} +const char* PacketLogger::UserIDTOString(unsigned char Id) +{ + // Users should override this + static char str[256]; + Itoa(Id, str, 10); + return (const char*) str; +} +const char* PacketLogger::IDTOString(unsigned char Id) +{ + const char *out; + out=BaseIDTOString(Id); + if (out) + return out; + return UserIDTOString(Id); +} +void PacketLogger::SetPrefix(const char *_prefix) +{ + strncpy(prefix, _prefix, 255); + prefix[255]=0; +} +void PacketLogger::SetSuffix(const char *_suffix) +{ + strncpy(suffix, _suffix, 255); + suffix[255]=0; +} +void PacketLogger::GetLocalTime(char buffer[128]) +{ +#if defined(_WIN32) && !defined(__GNUC__) && !defined(__GCCXML__) + time_t rawtime; + struct timeval tv; + // If you get an arror about an incomplete type, just delete this file + struct timezone tz; + gettimeofday(&tv, &tz); + // time ( &rawtime ); + rawtime=tv.tv_sec; + + struct tm * timeinfo; + timeinfo = localtime ( &rawtime ); + strftime (buffer,128,"%x %X",timeinfo); + char buff[32]; + sprintf(buff, ".%i", tv.tv_usec); + strcat(buffer,buff); + + // Commented version puts the time first + /* + struct tm * timeinfo; + timeinfo = localtime ( &rawtime ); + strftime (buffer,128,"%X",timeinfo); + char buff[32]; + sprintf(buff, ".%i ", tv.tv_usec); + strcat(buffer,buff); + char buff2[32]; + strftime (buff2,32,"%x",timeinfo); + strcat(buffer,buff2); + */ +#else + buffer[0]=0; +#endif +} +void PacketLogger::SetLogDirectMessages(bool send) +{ + logDirectMessages=send; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketLogger.h b/src/raknet/PacketLogger.h new file mode 100755 index 0000000..740620f --- /dev/null +++ b/src/raknet/PacketLogger.h @@ -0,0 +1,101 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to the local console screen. See derived functions for other outputs +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_LOGGER_H +#define __PACKET_LOGGER_H + +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \defgroup PACKETLOGGER_GROUP PacketLogger +/// \brief Print out incoming messages to a target destination +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Writes incoming and outgoing messages to the screen. +/// This will write all incoming and outgoing messages to the console window, or to a file if you override it and give it this functionality. +/// \ingroup PACKETLOGGER_GROUP +class RAK_DLL_EXPORT PacketLogger : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(PacketLogger) + + PacketLogger(); + virtual ~PacketLogger(); + + // Translate the supplied parameters into an output line - overloaded version that takes a MessageIdentifier + // and translates it into a string (numeric or textual representation based on printId); this calls the + // second version which takes a const char* argument for the messageIdentifier + virtual void FormatLine(char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame + , unsigned char messageIdentifier, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, + unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex); + virtual void FormatLine(char* into, const char* dir, const char* type, unsigned int reliableMessageNumber, unsigned int frame + , const char* idToPrint, const BitSize_t bitLen, unsigned long long time, const SystemAddress& local, const SystemAddress& remote, + unsigned int splitPacketId, unsigned int splitPacketIndex, unsigned int splitPacketCount, unsigned int orderingIndex); + + /// Events on low level sends and receives. These functions may be called from different threads at the same time. + virtual void OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + virtual void OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + virtual void OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + virtual void OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time, int isSend); + virtual void OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time); + virtual void OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress); + + /// Logs out a header for all the data + virtual void LogHeader(void); + + /// Override this to log strings to wherever. Log should be threadsafe + virtual void WriteLog(const char *str); + + // Write informational messages + virtual void WriteMiscellaneous(const char *type, const char *msg); + + + // Set to true to print ID_* instead of numbers + virtual void SetPrintID(bool print); + // Print or hide acks (clears up the screen not to print them but is worse for debugging) + virtual void SetPrintAcks(bool print); + + /// Prepend this string to output logs. + virtual void SetPrefix(const char *_prefix); + + /// Append this string to output logs. (newline is useful here) + virtual void SetSuffix(const char *_suffix); + static const char* BaseIDTOString(unsigned char Id); + + /// Log the direct sends and receives or not. Default true + void SetLogDirectMessages(bool send); +protected: + + virtual bool UsesReliabilityLayer(void) const {return true;} + const char* IDTOString(unsigned char Id); + virtual void AddToLog(const char *str); + // Users should override this + virtual const char* UserIDTOString(unsigned char Id); + void GetLocalTime(char buffer[128]); + bool logDirectMessages; + + bool printId, printAcks; + char prefix[256]; + char suffix[256]; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketOutputWindowLogger.cpp b/src/raknet/PacketOutputWindowLogger.cpp new file mode 100755 index 0000000..b5ffb5f --- /dev/null +++ b/src/raknet/PacketOutputWindowLogger.cpp @@ -0,0 +1,39 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#if defined(UNICODE) +#include "RakWString.h" +#endif + +#include "PacketOutputWindowLogger.h" +#include "RakString.h" +#if defined(_WIN32) && !defined(X360__) +#include "WindowsIncludes.h" +#endif + +using namespace RakNet; + +PacketOutputWindowLogger::PacketOutputWindowLogger() +{ +} +PacketOutputWindowLogger::~PacketOutputWindowLogger() +{ +} +void PacketOutputWindowLogger::WriteLog(const char *str) +{ +#if defined(_WIN32) && !defined(X360__) + + #if defined(UNICODE) + RakNet::RakWString str2 = str; + str2+="\n"; + OutputDebugString(str2.C_String()); + #else + RakNet::RakString str2 = str; + str2+="\n"; + OutputDebugString(str2.C_String()); + #endif + +#endif +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketOutputWindowLogger.h b/src/raknet/PacketOutputWindowLogger.h new file mode 100755 index 0000000..f2655a0 --- /dev/null +++ b/src/raknet/PacketOutputWindowLogger.h @@ -0,0 +1,34 @@ +/// \file +/// \brief This will write all incoming and outgoing network messages to a file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __PACKET_OUTPUT_WINDOW_LOGGER_H_ +#define __PACKET_OUTPUT_WINDOW_LOGGER_H_ + +#include "PacketLogger.h" + +namespace RakNet +{ + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Packetlogger that outputs to the output window in the debugger. Windows only. +class RAK_DLL_EXPORT PacketOutputWindowLogger : public PacketLogger +{ +public: + PacketOutputWindowLogger(); + virtual ~PacketOutputWindowLogger(); + virtual void WriteLog(const char *str); +protected: +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketPool.h b/src/raknet/PacketPool.h new file mode 100755 index 0000000..b534cac --- /dev/null +++ b/src/raknet/PacketPool.h @@ -0,0 +1 @@ +// REMOVEME \ No newline at end of file diff --git a/src/raknet/PacketPriority.h b/src/raknet/PacketPriority.h new file mode 100755 index 0000000..83bcd57 --- /dev/null +++ b/src/raknet/PacketPriority.h @@ -0,0 +1,79 @@ +/// \file +/// \brief This file contains enumerations for packet priority and reliability enumerations. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __PACKET_PRIORITY_H +#define __PACKET_PRIORITY_H + +/// These enumerations are used to describe when packets are delivered. +enum PacketPriority +{ + /// The highest possible priority. These message trigger sends immediately, and are generally not buffered or aggregated into a single datagram. + IMMEDIATE_PRIORITY, + + /// For every 2 IMMEDIATE_PRIORITY messages, 1 HIGH_PRIORITY will be sent. + /// Messages at this priority and lower are buffered to be sent in groups at 10 millisecond intervals to reduce UDP overhead and better measure congestion control. + HIGH_PRIORITY, + + /// For every 2 HIGH_PRIORITY messages, 1 MEDIUM_PRIORITY will be sent. + /// Messages at this priority and lower are buffered to be sent in groups at 10 millisecond intervals to reduce UDP overhead and better measure congestion control. + MEDIUM_PRIORITY, + + /// For every 2 MEDIUM_PRIORITY messages, 1 LOW_PRIORITY will be sent. + /// Messages at this priority and lower are buffered to be sent in groups at 10 millisecond intervals to reduce UDP overhead and better measure congestion control. + LOW_PRIORITY, + + /// \internal + NUMBER_OF_PRIORITIES +}; + +/// These enumerations are used to describe how packets are delivered. +/// \note Note to self: I write this with 3 bits in the stream. If I add more remember to change that +/// \note In ReliabilityLayer::WriteToBitStreamFromInternalPacket I assume there are 5 major types +/// \note Do not reorder, I check on >= UNRELIABLE_WITH_ACK_RECEIPT +enum PacketReliability +{ + /// Same as regular UDP, except that it will also discard duplicate datagrams. RakNet adds (6 to 17) + 21 bits of overhead, 16 of which is used to detect duplicate packets and 6 to 17 of which is used for message length. + UNRELIABLE, + + /// Regular UDP with a sequence counter. Out of order messages will be discarded. + /// Sequenced and ordered messages sent on the same channel will arrive in the order sent. + UNRELIABLE_SEQUENCED, + + /// The message is sent reliably, but not necessarily in any order. Same overhead as UNRELIABLE. + RELIABLE, + + /// This message is reliable and will arrive in the order you sent it. Messages will be delayed while waiting for out of order messages. Same overhead as UNRELIABLE_SEQUENCED. + /// Sequenced and ordered messages sent on the same channel will arrive in the order sent. + RELIABLE_ORDERED, + + /// This message is reliable and will arrive in the sequence you sent it. Out or order messages will be dropped. Same overhead as UNRELIABLE_SEQUENCED. + /// Sequenced and ordered messages sent on the same channel will arrive in the order sent. + RELIABLE_SEQUENCED, + + /// Same as UNRELIABLE, however the user will get either ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS based on the result of sending this message when calling RakPeerInterface::Receive(). Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. + UNRELIABLE_WITH_ACK_RECEIPT, + + /// Same as UNRELIABLE_SEQUENCED, however the user will get either ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS based on the result of sending this message when calling RakPeerInterface::Receive(). Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. + /// 05/04/10 You can't have sequenced and ack receipts, because you don't know if the other system discarded the message, meaning you don't know if the message was processed + // UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT, + + /// Same as RELIABLE. The user will also get ID_SND_RECEIPT_ACKED after the message is delivered when calling RakPeerInterface::Receive(). ID_SND_RECEIPT_ACKED is returned when the message arrives, not necessarily the order when it was sent. Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. This does not return ID_SND_RECEIPT_LOSS. + RELIABLE_WITH_ACK_RECEIPT, + + /// Same as RELIABLE_ORDERED_ACK_RECEIPT. The user will also get ID_SND_RECEIPT_ACKED after the message is delivered when calling RakPeerInterface::Receive(). ID_SND_RECEIPT_ACKED is returned when the message arrives, not necessarily the order when it was sent. Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. This does not return ID_SND_RECEIPT_LOSS. + RELIABLE_ORDERED_WITH_ACK_RECEIPT, + + /// Same as RELIABLE_SEQUENCED. The user will also get ID_SND_RECEIPT_ACKED after the message is delivered when calling RakPeerInterface::Receive(). Bytes 1-4 will contain the number returned from the Send() function. On disconnect or shutdown, all messages not previously acked should be considered lost. + /// 05/04/10 You can't have sequenced and ack receipts, because you don't know if the other system discarded the message, meaning you don't know if the message was processed + // RELIABLE_SEQUENCED_WITH_ACK_RECEIPT, + + /// \internal + NUMBER_OF_RELIABILITIES +}; + +#endif diff --git a/src/raknet/PacketizedTCP.cpp b/src/raknet/PacketizedTCP.cpp new file mode 100755 index 0000000..bffab02 --- /dev/null +++ b/src/raknet/PacketizedTCP.cpp @@ -0,0 +1,408 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "PacketizedTCP.h" +#include "NativeTypes.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakAlloca.h" + +using namespace RakNet; + +typedef uint32_t PTCPHeader; + +STATIC_FACTORY_DEFINITIONS(PacketizedTCP,PacketizedTCP); + +PacketizedTCP::PacketizedTCP() +{ + +} +PacketizedTCP::~PacketizedTCP() +{ + ClearAllConnections(); +} + +bool PacketizedTCP::Start(unsigned short port, unsigned short maxIncomingConnections, int threadPriority, unsigned short socketFamily) +{ + bool success = TCPInterface::Start(port, maxIncomingConnections,0,threadPriority, socketFamily); + if (success) + { + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnRakPeerStartup(); + } + return success; +} + +void PacketizedTCP::Stop(void) +{ + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnRakPeerShutdown(); + for (i=0; i < waitingPackets.Size(); i++) + DeallocatePacket(waitingPackets[i]); + TCPInterface::Stop(); + ClearAllConnections(); +} + +void PacketizedTCP::Send( const char *data, unsigned length, const SystemAddress &systemAddress, bool broadcast ) +{ + PTCPHeader dataLength; + dataLength=length; +#ifndef __BITSTREAM_NATIVE_END + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytes((unsigned char*) &length,(unsigned char*) &dataLength,sizeof(dataLength)); +#else + dataLength=length; +#endif + + unsigned int lengthsArray[2]; + const char *dataArray[2]; + dataArray[0]=(char*) &dataLength; + dataArray[1]=data; + lengthsArray[0]=sizeof(dataLength); + lengthsArray[1]=length; + TCPInterface::SendList(dataArray,lengthsArray,2,systemAddress,broadcast); +} +bool PacketizedTCP::SendList( const char **data, const int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ) +{ + if (isStarted==false) + return false; + if (data==0) + return false; + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS && broadcast==false) + return false; + PTCPHeader totalLengthOfUserData=0; + int i; + for (i=0; i < numParameters; i++) + { + if (lengths[i]>0) + totalLengthOfUserData+=lengths[i]; + } + if (totalLengthOfUserData==0) + return false; + + PTCPHeader dataLength; +#ifndef __BITSTREAM_NATIVE_END + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytes((unsigned char*) &totalLengthOfUserData,(unsigned char*) &dataLength,sizeof(dataLength)); +#else + dataLength=totalLengthOfUserData; +#endif + + + unsigned int lengthsArray[512]; + const char *dataArray[512]; + dataArray[0]=(char*) &dataLength; + lengthsArray[0]=sizeof(dataLength); + for (int i=0; i < 512 && i < numParameters; i++) + { + dataArray[i+1]=data[i]; + lengthsArray[i+1]=lengths[i]; + } + return TCPInterface::SendList(dataArray,lengthsArray,numParameters+1,systemAddress,broadcast); +} +void PacketizedTCP::PushNotificationsToQueues(void) +{ + SystemAddress sa; + sa = TCPInterface::HasNewIncomingConnection(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _newIncomingConnections.Push(sa, _FILE_AND_LINE_ ); + AddToConnectionList(sa); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnNewConnection(sa, UNASSIGNED_RAKNET_GUID, true); + } + + sa = TCPInterface::HasFailedConnectionAttempt(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _failedConnectionAttempts.Push(sa, _FILE_AND_LINE_ ); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + { + Packet p; + p.systemAddress=sa; + p.data=0; + p.length=0; + p.bitSize=0; + messageHandlerList[i]->OnFailedConnectionAttempt(&p, FCAR_CONNECTION_ATTEMPT_FAILED); + } + } + + sa = TCPInterface::HasLostConnection(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _lostConnections.Push(sa, _FILE_AND_LINE_ ); + RemoveFromConnectionList(sa); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnClosedConnection(sa, UNASSIGNED_RAKNET_GUID, LCR_DISCONNECTION_NOTIFICATION); + } + + sa = TCPInterface::HasCompletedConnectionAttempt(); + if (sa!=UNASSIGNED_SYSTEM_ADDRESS) + { + _completedConnectionAttempts.Push(sa, _FILE_AND_LINE_ ); + AddToConnectionList(sa); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnNewConnection(sa, UNASSIGNED_RAKNET_GUID, true); + } +} +Packet* PacketizedTCP::Receive( void ) +{ + PushNotificationsToQueues(); + + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->Update(); + + Packet *outgoingPacket=ReturnOutgoingPacket(); + if (outgoingPacket) + return outgoingPacket; + + Packet *incomingPacket; + incomingPacket = TCPInterface::Receive(); + unsigned int index; + + while (incomingPacket) + { + if (connections.Has(incomingPacket->systemAddress)) + index = connections.GetIndexAtKey(incomingPacket->systemAddress); + else + index=(unsigned int) -1; + if ((unsigned int)index==(unsigned int)-1) + { + DeallocatePacket(incomingPacket); + incomingPacket = TCPInterface::Receive(); + continue; + } + + + if (incomingPacket->deleteData==true) + { + // Came from network + SystemAddress systemAddressFromPacket; + if (index < connections.Size()) + { + DataStructures::ByteQueue *bq = connections[index]; + // Buffer data + bq->WriteBytes((const char*) incomingPacket->data,incomingPacket->length, _FILE_AND_LINE_); + systemAddressFromPacket=incomingPacket->systemAddress; + PTCPHeader dataLength; + + // Peek the header to see if a full message is waiting + bq->ReadBytes((char*) &dataLength,sizeof(PTCPHeader),true); + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &dataLength,sizeof(dataLength)); + // Header indicates packet length. If enough data is available, read out and return one packet + if (bq->GetBytesWritten()>=dataLength+sizeof(PTCPHeader)) + { + do + { + bq->IncrementReadOffset(sizeof(PTCPHeader)); + outgoingPacket = RakNet::OP_NEW(_FILE_AND_LINE_); + outgoingPacket->length=dataLength; + outgoingPacket->bitSize=BYTES_TO_BITS(dataLength); + outgoingPacket->guid=UNASSIGNED_RAKNET_GUID; + outgoingPacket->systemAddress=systemAddressFromPacket; + outgoingPacket->deleteData=false; // Did not come from the network + outgoingPacket->data=(unsigned char*) rakMalloc_Ex(dataLength, _FILE_AND_LINE_); + if (outgoingPacket->data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + RakNet::OP_DELETE(outgoingPacket,_FILE_AND_LINE_); + return 0; + } + bq->ReadBytes((char*) outgoingPacket->data,dataLength,false); + + waitingPackets.Push(outgoingPacket, _FILE_AND_LINE_ ); + + // Peek the header to see if a full message is waiting + if (bq->ReadBytes((char*) &dataLength,sizeof(PTCPHeader),true)) + { + if (RakNet::BitStream::DoEndianSwap()) + RakNet::BitStream::ReverseBytesInPlace((unsigned char*) &dataLength,sizeof(dataLength)); + } + else + break; + } while (bq->GetBytesWritten()>=dataLength+sizeof(PTCPHeader)); + } + else + { + + unsigned int oldWritten = bq->GetBytesWritten()-incomingPacket->length; + unsigned int newWritten = bq->GetBytesWritten(); + + // Return ID_DOWNLOAD_PROGRESS + if (newWritten/65536!=oldWritten/65536) + { + outgoingPacket = RakNet::OP_NEW(_FILE_AND_LINE_); + outgoingPacket->length=sizeof(MessageID) + + sizeof(unsigned int)*2 + + sizeof(unsigned int) + + 65536; + outgoingPacket->bitSize=BYTES_TO_BITS(incomingPacket->length); + outgoingPacket->guid=UNASSIGNED_RAKNET_GUID; + outgoingPacket->systemAddress=incomingPacket->systemAddress; + outgoingPacket->deleteData=false; + outgoingPacket->data=(unsigned char*) rakMalloc_Ex(outgoingPacket->length, _FILE_AND_LINE_); + if (outgoingPacket->data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + RakNet::OP_DELETE(outgoingPacket,_FILE_AND_LINE_); + return 0; + } + + outgoingPacket->data[0]=(MessageID)ID_DOWNLOAD_PROGRESS; + unsigned int totalParts=dataLength/65536; + unsigned int partIndex=newWritten/65536; + unsigned int oneChunkSize=65536; + memcpy(outgoingPacket->data+sizeof(MessageID), &partIndex, sizeof(unsigned int)); + memcpy(outgoingPacket->data+sizeof(MessageID)+sizeof(unsigned int)*1, &totalParts, sizeof(unsigned int)); + memcpy(outgoingPacket->data+sizeof(MessageID)+sizeof(unsigned int)*2, &oneChunkSize, sizeof(unsigned int)); + bq->IncrementReadOffset(sizeof(PTCPHeader)); + bq->ReadBytes((char*) outgoingPacket->data+sizeof(MessageID)+sizeof(unsigned int)*3,oneChunkSize,true); + bq->DecrementReadOffset(sizeof(PTCPHeader)); + + waitingPackets.Push(outgoingPacket, _FILE_AND_LINE_ ); + } + } + + } + + DeallocatePacket(incomingPacket); + incomingPacket=0; + } + else + waitingPackets.Push(incomingPacket, _FILE_AND_LINE_ ); + + incomingPacket = TCPInterface::Receive(); + } + + return ReturnOutgoingPacket(); +} +Packet *PacketizedTCP::ReturnOutgoingPacket(void) +{ + Packet *outgoingPacket=0; + unsigned int i; + while (outgoingPacket==0 && waitingPackets.IsEmpty()==false) + { + outgoingPacket=waitingPackets.Pop(); + PluginReceiveResult pluginResult; + for (i=0; i < messageHandlerList.Size(); i++) + { + pluginResult=messageHandlerList[i]->OnReceive(outgoingPacket); + if (pluginResult==RR_STOP_PROCESSING_AND_DEALLOCATE) + { + DeallocatePacket( outgoingPacket ); + outgoingPacket=0; // Will do the loop again and get another packet + break; // break out of the enclosing for + } + else if (pluginResult==RR_STOP_PROCESSING) + { + outgoingPacket=0; + break; + } + } + } + + return outgoingPacket; +} + +void PacketizedTCP::AttachPlugin( PluginInterface2 *plugin ) +{ + if (messageHandlerList.GetIndexOf(plugin)==MAX_UNSIGNED_LONG) + { + messageHandlerList.Insert(plugin, _FILE_AND_LINE_); + plugin->SetPacketizedTCP(this); + plugin->OnAttach(); + } +} +void PacketizedTCP::DetachPlugin( PluginInterface2 *plugin ) +{ + if (plugin==0) + return; + + unsigned int index; + index = messageHandlerList.GetIndexOf(plugin); + if (index!=MAX_UNSIGNED_LONG) + { + messageHandlerList[index]->OnDetach(); + // Unordered list so delete from end for speed + messageHandlerList[index]=messageHandlerList[messageHandlerList.Size()-1]; + messageHandlerList.RemoveFromEnd(); + plugin->SetPacketizedTCP(0); + } +} +void PacketizedTCP::CloseConnection( SystemAddress systemAddress ) +{ + RemoveFromConnectionList(systemAddress); + unsigned int i; + for (i=0; i < messageHandlerList.Size(); i++) + messageHandlerList[i]->OnClosedConnection(systemAddress, UNASSIGNED_RAKNET_GUID, LCR_CLOSED_BY_USER); + TCPInterface::CloseConnection(systemAddress); +} +void PacketizedTCP::RemoveFromConnectionList(const SystemAddress &sa) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + if (connections.Has(sa)) + { + unsigned int index = connections.GetIndexAtKey(sa); + if (index!=(unsigned int)-1) + { + RakNet::OP_DELETE(connections[index],_FILE_AND_LINE_); + connections.RemoveAtIndex(index); + } + } +} +void PacketizedTCP::AddToConnectionList(const SystemAddress &sa) +{ + if (sa==UNASSIGNED_SYSTEM_ADDRESS) + return; + connections.SetNew(sa, RakNet::OP_NEW(_FILE_AND_LINE_)); +} +void PacketizedTCP::ClearAllConnections(void) +{ + unsigned int i; + for (i=0; i < connections.Size(); i++) + RakNet::OP_DELETE(connections[i],_FILE_AND_LINE_); + connections.Clear(); +} +SystemAddress PacketizedTCP::HasCompletedConnectionAttempt(void) +{ + PushNotificationsToQueues(); + + if (_completedConnectionAttempts.IsEmpty()==false) + return _completedConnectionAttempts.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress PacketizedTCP::HasFailedConnectionAttempt(void) +{ + PushNotificationsToQueues(); + + if (_failedConnectionAttempts.IsEmpty()==false) + return _failedConnectionAttempts.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress PacketizedTCP::HasNewIncomingConnection(void) +{ + PushNotificationsToQueues(); + + if (_newIncomingConnections.IsEmpty()==false) + return _newIncomingConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress PacketizedTCP::HasLostConnection(void) +{ + PushNotificationsToQueues(); + + if (_lostConnections.IsEmpty()==false) + return _lostConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PacketizedTCP.h b/src/raknet/PacketizedTCP.h new file mode 100755 index 0000000..9a08fe3 --- /dev/null +++ b/src/raknet/PacketizedTCP.h @@ -0,0 +1,93 @@ +/// \file +/// \brief A simple TCP based server allowing sends and receives. Can be connected by any TCP client, including telnet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __PACKETIZED_TCP +#define __PACKETIZED_TCP + +#include "TCPInterface.h" +#include "DS_ByteQueue.h" +#include "PluginInterface2.h" +#include "DS_Map.h" + +namespace RakNet +{ + +class RAK_DLL_EXPORT PacketizedTCP : public TCPInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(PacketizedTCP) + + PacketizedTCP(); + virtual ~PacketizedTCP(); + + /// Starts the TCP server on the indicated port + /// \param[in] port Which port to listen on. + /// \param[in] maxIncomingConnections Max incoming connections we will accept + /// \param[in] maxConnections Max total connections, which should be >= maxIncomingConnections + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \param[in] socketFamily IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + bool Start(unsigned short port, unsigned short maxIncomingConnections, int threadPriority=-99999, unsigned short socketFamily=AF_INET); + + /// Stops the TCP server + void Stop(void); + + /// Sends a byte stream + void Send( const char *data, unsigned length, const SystemAddress &systemAddress, bool broadcast ); + + // Sends a concatenated list of byte streams + bool SendList( const char **data, const int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ); + + /// Returns data received + Packet* Receive( void ); + + /// Disconnects a player/address + void CloseConnection( SystemAddress systemAddress ); + + /// Has a previous call to connect succeeded? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasCompletedConnectionAttempt(void); + + /// Has a previous call to connect failed? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasFailedConnectionAttempt(void); + + /// Queued events of new incoming connections + SystemAddress HasNewIncomingConnection(void); + + /// Queued events of lost connections + SystemAddress HasLostConnection(void); + + // Only currently tested with FileListTransfer! + void AttachPlugin( PluginInterface2 *plugin ); + void DetachPlugin( PluginInterface2 *plugin ); + +protected: + void ClearAllConnections(void); + void RemoveFromConnectionList(const SystemAddress &sa); + void AddToConnectionList(const SystemAddress &sa); + void PushNotificationsToQueues(void); + Packet *ReturnOutgoingPacket(void); + + // Plugins + DataStructures::List messageHandlerList; + // A single TCP recieve may generate multiple split packets. They are stored in the waitingPackets list until Receive is called + DataStructures::Queue waitingPackets; + DataStructures::Map connections; + + // Mirrors single producer / consumer, but processes them in Receive() before returning to user + DataStructures::Queue _newIncomingConnections, _lostConnections, _failedConnectionAttempts, _completedConnectionAttempts; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/PluginInterface2.cpp b/src/raknet/PluginInterface2.cpp new file mode 100755 index 0000000..706962d --- /dev/null +++ b/src/raknet/PluginInterface2.cpp @@ -0,0 +1,89 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "PluginInterface2.h" +#include "PacketizedTCP.h" +#include "RakPeerInterface.h" +#include "BitStream.h" + +using namespace RakNet; + +PluginInterface2::PluginInterface2() +{ + rakPeerInterface=0; +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + packetizedTCP=0; +#endif +} +PluginInterface2::~PluginInterface2() +{ + +} +void PluginInterface2::SendUnified( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ) +{ + if (rakPeerInterface) + rakPeerInterface->Send(bitStream,priority,reliability,orderingChannel,systemIdentifier,broadcast); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->Send((const char*) bitStream->GetData(), bitStream->GetNumberOfBytesUsed(), systemIdentifier.systemAddress, broadcast); +#endif +} +Packet *PluginInterface2::AllocatePacketUnified(unsigned dataSize) +{ + if (rakPeerInterface) + return rakPeerInterface->AllocatePacket(dataSize); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + return packetizedTCP->AllocatePacket(dataSize); +#else + return 0; +#endif + +} +void PluginInterface2::PushBackPacketUnified(Packet *packet, bool pushAtHead) +{ + if (rakPeerInterface) + rakPeerInterface->PushBackPacket(packet,pushAtHead); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->PushBackPacket(packet,pushAtHead); +#endif +} +void PluginInterface2::DeallocPacketUnified(Packet *packet) +{ + if (rakPeerInterface) + rakPeerInterface->DeallocatePacket(packet); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + packetizedTCP->DeallocatePacket(packet); +#endif +} +bool PluginInterface2::SendListUnified( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ) +{ + if (rakPeerInterface) + { + return rakPeerInterface->SendList(data,lengths,numParameters,priority,reliability,orderingChannel,systemIdentifier,broadcast)!=0; + } +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + { + return packetizedTCP->SendList(data,lengths,numParameters,systemIdentifier.systemAddress,broadcast ); + } +#else + return false; +#endif +} +void PluginInterface2::SetRakPeerInterface( RakPeerInterface *ptr ) +{ + rakPeerInterface=ptr; +} +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 +void PluginInterface2::SetPacketizedTCP( PacketizedTCP *ptr ) +{ + packetizedTCP=ptr; +} +#endif diff --git a/src/raknet/PluginInterface2.h b/src/raknet/PluginInterface2.h new file mode 100755 index 0000000..549885d --- /dev/null +++ b/src/raknet/PluginInterface2.h @@ -0,0 +1,200 @@ +/// \file +/// \brief \b RakNet's plugin functionality system, version 2. You can derive from this to create your own plugins. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __PLUGIN_INTERFACE_2_H +#define __PLUGIN_INTERFACE_2_H + +#include "NativeFeatureIncludes.h" +#include "RakNetTypes.h" +#include "Export.h" +#include "PacketPriority.h" + +namespace RakNet { + +/// Forward declarations +class RakPeerInterface; +class PacketizedTCP; +struct Packet; +struct InternalPacket; + +/// \defgroup PLUGIN_INTERFACE_GROUP PluginInterface2 + +/// \defgroup PLUGINS_GROUP Plugins +/// \ingroup PLUGIN_INTERFACE_GROUP + +/// For each message that arrives on an instance of RakPeer, the plugins get an opportunity to process them first. This enumeration represents what to do with the message +/// \ingroup PLUGIN_INTERFACE_GROUP +enum PluginReceiveResult +{ + /// The plugin used this message and it shouldn't be given to the user. + RR_STOP_PROCESSING_AND_DEALLOCATE=0, + + /// This message will be processed by other plugins, and at last by the user. + RR_CONTINUE_PROCESSING, + + /// The plugin is going to hold on to this message. Do not deallocate it but do not pass it to other plugins either. + RR_STOP_PROCESSING, +}; + +/// Reasons why a connection was lost +/// \ingroup PLUGIN_INTERFACE_GROUP +enum PI2_LostConnectionReason +{ + /// Called RakPeer::CloseConnection() + LCR_CLOSED_BY_USER, + + /// Got ID_DISCONNECTION_NOTIFICATION + LCR_DISCONNECTION_NOTIFICATION, + + /// GOT ID_CONNECTION_LOST + LCR_CONNECTION_LOST +}; + +/// Returns why a connection attempt failed +/// \ingroup PLUGIN_INTERFACE_GROUP +enum PI2_FailedConnectionAttemptReason +{ + FCAR_CONNECTION_ATTEMPT_FAILED, + FCAR_ALREADY_CONNECTED, + FCAR_NO_FREE_INCOMING_CONNECTIONS, + FCAR_SECURITY_PUBLIC_KEY_MISMATCH, + FCAR_CONNECTION_BANNED, + FCAR_INVALID_PASSWORD, + FCAR_INCOMPATIBLE_PROTOCOL, + FCAR_IP_RECENTLY_CONNECTED, + FCAR_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY, + FCAR_OUR_SYSTEM_REQUIRES_SECURITY, + FCAR_PUBLIC_KEY_MISMATCH, +}; + +/// RakNet's plugin system. Each plugin processes the following events: +/// -Connection attempts +/// -The result of connection attempts +/// -Each incoming message +/// -Updates over time, when RakPeer::Receive() is called +/// +/// \ingroup PLUGIN_INTERFACE_GROUP +class RAK_DLL_EXPORT PluginInterface2 +{ +public: + PluginInterface2(); + virtual ~PluginInterface2(); + + /// Called when the interface is attached + virtual void OnAttach(void) {} + + /// Called when the interface is detached + virtual void OnDetach(void) {} + + /// Update is called every time a packet is checked for . + virtual void Update(void) {} + + /// OnReceive is called for every packet. + /// \param[in] packet the packet that is being returned to the user + /// \return True to allow the game and other plugins to get this message, false to absorb it + virtual PluginReceiveResult OnReceive(Packet *packet) {(void) packet; return RR_CONTINUE_PROCESSING;} + + /// Called when RakPeer is initialized + virtual void OnRakPeerStartup(void) {} + + /// Called when RakPeer is shutdown + virtual void OnRakPeerShutdown(void) {} + + /// Called when a connection is dropped because the user called RakPeer::CloseConnection() for a particular system + /// \param[in] systemAddress The system whose connection was closed + /// \param[in] rakNetGuid The guid of the specified system + /// \param[in] lostConnectionReason How the connection was closed: manually, connection lost, or notification of disconnection + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ){(void) systemAddress; (void) rakNetGUID; (void) lostConnectionReason;} + + /// Called when we got a new connection + /// \param[in] systemAddress Address of the new connection + /// \param[in] rakNetGuid The guid of the specified system + /// \param[in] isIncoming If true, this is ID_NEW_INCOMING_CONNECTION, or the equivalent + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) {(void) systemAddress; (void) rakNetGUID; (void) isIncoming;} + + /// Called when a connection attempt fails + /// \param[in] packet Packet to be returned to the user + /// \param[in] failedConnectionReason Why the connection failed + virtual void OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason) {(void) packet; (void) failedConnectionAttemptReason;} + + /// Queried when attached to RakPeer + /// Return true to call OnDirectSocketSend(), OnDirectSocketReceive(), OnReliabilityLayerPacketError(), OnInternalPacket(), and OnAck() + /// If true, then you cannot call RakPeer::AttachPlugin() or RakPeer::DetachPlugin() for this plugin, while RakPeer is active + virtual bool UsesReliabilityLayer(void) const {return false;} + + /// Called on a send to the socket, per datagram, that does not go through the reliability layer + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] data The data being sent + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress Which system this message is being sent to + virtual void OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;} + + /// Called on a receive from the socket, per datagram, that does not go through the reliability layer + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] data The data being sent + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress Which system this message is being sent to + virtual void OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;} + + /// Called when the reliability layer rejects a send or receive + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress Which system this message is being sent to + virtual void OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) errorMessage; (void) bitsUsed; (void) remoteSystemAddress;} + + /// Called on a send or receive of a message within the reliability layer + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] internalPacket The user message, along with all send data. + /// \param[in] frameNumber The number of frames sent or received so far for this player depending on \a isSend . Indicates the frame of this user message. + /// \param[in] remoteSystemAddress The player we sent or got this packet from + /// \param[in] time The current time as returned by RakNet::GetTimeMS() + /// \param[in] isSend Is this callback representing a send event or receive event? + virtual void OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time, int isSend) {(void) internalPacket; (void) frameNumber; (void) remoteSystemAddress; (void) time; (void) isSend;} + + /// Called when we get an ack for a message we reliably sent + /// \pre To be called, UsesReliabilityLayer() must return true + /// \param[in] messageNumber The numerical identifier for which message this is + /// \param[in] remoteSystemAddress The player we sent or got this packet from + /// \param[in] time The current time as returned by RakNet::GetTimeMS() + virtual void OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNet::TimeMS time) {(void) messageNumber; (void) remoteSystemAddress; (void) time;} + + /// System called RakPeerInterface::PushBackPacket + /// \param[in] data The data being sent + /// \param[in] bitsUsed How many bits long \a data is + /// \param[in] remoteSystemAddress The player we sent or got this packet from + virtual void OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;} + + RakPeerInterface *GetRakPeerInterface(void) const {return rakPeerInterface;} + + /// \internal + void SetRakPeerInterface( RakPeerInterface *ptr ); + +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + /// \internal + void SetPacketizedTCP( PacketizedTCP *ptr ); +#endif +protected: + // Send through either rakPeerInterface or packetizedTCP, whichever is available + void SendUnified( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ); + bool SendListUnified( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ); + + Packet *AllocatePacketUnified(unsigned dataSize); + void PushBackPacketUnified(Packet *packet, bool pushAtHead); + void DeallocPacketUnified(Packet *packet); + + // Filled automatically in when attached + RakPeerInterface *rakPeerInterface; +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + PacketizedTCP *packetizedTCP; +#endif +}; + +} // namespace RakNet + +#endif + diff --git a/src/raknet/RPC4Plugin.cpp b/src/raknet/RPC4Plugin.cpp new file mode 100755 index 0000000..7583d28 --- /dev/null +++ b/src/raknet/RPC4Plugin.cpp @@ -0,0 +1,594 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RPC4Plugin==1 + +#include "RPC4Plugin.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "PacketizedTCP.h" +#include "RakSleep.h" +#include "RakNetDefines.h" +#include "DS_Queue.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(RPC4,RPC4); + +struct GlobalRegistration +{ + void ( *registerFunctionPointer ) ( RakNet::BitStream *userData, Packet *packet ); + void ( *registerBlockingFunctionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet ); + char functionName[RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH]; + MessageID messageId; + int callPriority; +}; +static GlobalRegistration globalRegistrationBuffer[RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS]; +static unsigned int globalRegistrationIndex=0; + +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=functionPointer; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].callPriority=0xFFFFFFFF; + globalRegistrationIndex++; +} +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=functionPointer; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=0; + RakAssert(callPriority!=0xFFFFFFFF); + globalRegistrationBuffer[globalRegistrationIndex].callPriority=callPriority; + globalRegistrationIndex++; +} +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=functionPointer; + globalRegistrationIndex++; +} +RPC4GlobalRegistration::RPC4GlobalRegistration(const char* uniqueID, MessageID messageId) +{ + RakAssert(globalRegistrationIndex!=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS); + unsigned int i; + for (i=0; uniqueID[i]; i++) + { + RakAssert(i<=RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH-1); + globalRegistrationBuffer[globalRegistrationIndex].functionName[i]=uniqueID[i]; + } + globalRegistrationBuffer[globalRegistrationIndex].registerFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].registerBlockingFunctionPointer=0; + globalRegistrationBuffer[globalRegistrationIndex].messageId=messageId; + globalRegistrationIndex++; +} + +enum RPC4Identifiers +{ + ID_RPC4_CALL, + ID_RPC4_RETURN, + ID_RPC4_SIGNAL, +}; +int RPC4::LocalSlotObjectComp( const LocalSlotObject &key, const LocalSlotObject &data ) +{ + if (key.callPriority>data.callPriority) + return -1; + if (key.callPriority==data.callPriority) + { + if (key.registrationCountmessageId) + return -1; + if (key > data->messageId) + return 1; + return 0; +} + +RPC4::RPC4() +{ + gotBlockingReturnValue=false; + nextSlotRegistrationCount=0; + interruptSignal=false; +} +RPC4::~RPC4() +{ + unsigned int i; + for (i=0; i < localCallbacks.Size(); i++) + { + RakNet::OP_DELETE(localCallbacks[i],_FILE_AND_LINE_); + } + + DataStructures::List keyList; + DataStructures::List outputList; + localSlots.GetAsList(outputList,keyList,_FILE_AND_LINE_); + unsigned int j; + for (j=0; j < outputList.Size(); j++) + { + RakNet::OP_DELETE(outputList[j],_FILE_AND_LINE_); + } + localSlots.Clear(_FILE_AND_LINE_); +} +bool RPC4::RegisterFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )) +{ + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(uniqueID); + if (skhi.IsInvalid()==false) + return false; + + registeredNonblockingFunctions.Push(uniqueID,functionPointer,_FILE_AND_LINE_); + return true; +} +void RPC4::RegisterSlot(const char *sharedIdentifier, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority) +{ + LocalSlotObject lso(nextSlotRegistrationCount++, callPriority, functionPointer); + DataStructures::HashIndex idx = GetLocalSlotIndex(sharedIdentifier); + LocalSlot *localSlot; + if (idx.IsInvalid()) + { + localSlot = RakNet::OP_NEW(_FILE_AND_LINE_); + localSlots.Push(sharedIdentifier, localSlot,_FILE_AND_LINE_); + } + else + { + localSlot=localSlots.ItemAtIndex(idx); + } + localSlot->slotObjects.Insert(lso,lso,true,_FILE_AND_LINE_); +} +bool RPC4::RegisterBlockingFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )) +{ + DataStructures::HashIndex skhi = registeredBlockingFunctions.GetIndexOf(uniqueID); + if (skhi.IsInvalid()==false) + return false; + + registeredBlockingFunctions.Push(uniqueID,functionPointer,_FILE_AND_LINE_); + return true; +} +void RPC4::RegisterLocalCallback(const char* uniqueID, MessageID messageId) +{ + bool objectExists; + unsigned int index; + LocalCallback *lc; + RakNet::RakString str; + str=uniqueID; + index = localCallbacks.GetIndexFromKey(messageId,&objectExists); + if (objectExists) + { + lc = localCallbacks[index]; + index = lc->functions.GetIndexFromKey(str,&objectExists); + if (objectExists==false) + lc->functions.InsertAtIndex(str,index,_FILE_AND_LINE_); + } + else + { + lc = RakNet::OP_NEW(_FILE_AND_LINE_); + lc->messageId=messageId; + lc->functions.Insert(str,str,false,_FILE_AND_LINE_); + localCallbacks.InsertAtIndex(lc,index,_FILE_AND_LINE_); + } +} +bool RPC4::UnregisterFunction(const char* uniqueID) +{ + void ( *f ) ( RakNet::BitStream *, Packet * ); + return registeredNonblockingFunctions.Pop(f,uniqueID,_FILE_AND_LINE_); +} +bool RPC4::UnregisterBlockingFunction(const char* uniqueID) +{ + void ( *f ) ( RakNet::BitStream *, RakNet::BitStream *,Packet * ); + return registeredBlockingFunctions.Pop(f,uniqueID,_FILE_AND_LINE_); +} +bool RPC4::UnregisterLocalCallback(const char* uniqueID, MessageID messageId) +{ + bool objectExists; + unsigned int index, index2; + LocalCallback *lc; + RakNet::RakString str; + str=uniqueID; + index = localCallbacks.GetIndexFromKey(messageId,&objectExists); + if (objectExists) + { + lc = localCallbacks[index]; + index2 = lc->functions.GetIndexFromKey(str,&objectExists); + if (objectExists) + { + lc->functions.RemoveAtIndex(index2); + if (lc->functions.Size()==0) + { + RakNet::OP_DELETE(lc,_FILE_AND_LINE_); + localCallbacks.RemoveAtIndex(index); + return true; + } + } + } + return false; +} +bool RPC4::UnregisterSlot(const char* sharedIdentifier) +{ + DataStructures::HashIndex hi = localSlots.GetIndexOf(sharedIdentifier); + if (hi.IsInvalid()==false) + { + LocalSlot *ls = localSlots.ItemAtIndex(hi); + RakNet::OP_DELETE(ls, _FILE_AND_LINE_); + localSlots.RemoveAtIndex(hi, _FILE_AND_LINE_); + return true; + } + + return false; +} +void RPC4::CallLoopback( const char* uniqueID, RakNet::BitStream * bitStream ) +{ + Packet *p=0; + + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(uniqueID); + + if (skhi.IsInvalid()==true) + { + if (rakPeerInterface) + p=AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)+(unsigned int) strlen(uniqueID)+1); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p=packetizedTCP->AllocatePacket(sizeof(MessageID)+sizeof(unsigned char)+(unsigned int) strlen(uniqueID)+1); +#endif + + if (rakPeerInterface) + p->guid=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p->guid=UNASSIGNED_RAKNET_GUID; +#endif + + p->systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->data[0]=ID_RPC_REMOTE_ERROR; + p->data[1]=RPC_ERROR_FUNCTION_NOT_REGISTERED; + strcpy((char*) p->data+2, uniqueID); + + PushBackPacketUnified(p,false); + + return; + } + + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_CALL); + out.WriteCompressed(uniqueID); + out.Write(false); // nonblocking + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + if (rakPeerInterface) + p=AllocatePacketUnified(out.GetNumberOfBytesUsed()); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p=packetizedTCP->AllocatePacket(out.GetNumberOfBytesUsed()); +#endif + + if (rakPeerInterface) + p->guid=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +#if _RAKNET_SUPPORT_PacketizedTCP==1 && _RAKNET_SUPPORT_TCPInterface==1 + else + p->guid=UNASSIGNED_RAKNET_GUID; +#endif + p->systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + p->systemAddress.systemIndex=(SystemIndex)-1; + memcpy(p->data,out.GetData(),out.GetNumberOfBytesUsed()); + PushBackPacketUnified(p,false); + return; +} +void RPC4::Call( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ) +{ + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_CALL); + out.WriteCompressed(uniqueID); + out.Write(false); // Nonblocking + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + SendUnified(&out,priority,reliability,orderingChannel,systemIdentifier,broadcast); +} +bool RPC4::CallBlocking( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, RakNet::BitStream *returnData ) +{ + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_CALL); + out.WriteCompressed(uniqueID); + out.Write(true); // Blocking + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + RakAssert(returnData); + RakAssert(rakPeerInterface); + ConnectionState cs; + cs = rakPeerInterface->GetConnectionState(systemIdentifier); + if (cs!=IS_CONNECTED) + return false; + + SendUnified(&out,priority,reliability,orderingChannel,systemIdentifier,false); + + returnData->Reset(); + blockingReturnValue.Reset(); + gotBlockingReturnValue=false; + Packet *packet; + DataStructures::Queue packetQueue; + while (gotBlockingReturnValue==false) + { + // TODO - block, filter until gotBlockingReturnValue==true or ID_CONNECTION_LOST or ID_DISCONNECTION_NOTIFICXATION or ID_RPC_REMOTE_ERROR/RPC_ERROR_FUNCTION_NOT_REGISTERED + RakSleep(30); + + packet=rakPeerInterface->Receive(); + + if (packet) + { + if ( + (packet->data[0]==ID_CONNECTION_LOST || packet->data[0]==ID_DISCONNECTION_NOTIFICATION) && + ((systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID && packet->guid==systemIdentifier.rakNetGuid) || + (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS && packet->systemAddress==systemIdentifier.systemAddress)) + ) + { + // Push back to head in reverse order + rakPeerInterface->PushBackPacket(packet,true); + while (packetQueue.Size()) + rakPeerInterface->PushBackPacket(packetQueue.Pop(),true); + return false; + } + else if (packet->data[0]==ID_RPC_REMOTE_ERROR && packet->data[1]==RPC_ERROR_FUNCTION_NOT_REGISTERED) + { + RakNet::RakString functionName; + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + bsIn.Read(functionName); + if (functionName==uniqueID) + { + // Push back to head in reverse order + rakPeerInterface->PushBackPacket(packet,true); + while (packetQueue.Size()) + rakPeerInterface->PushBackPacket(packetQueue.Pop(),true); + return false; + } + else + { + packetQueue.PushAtHead(packet,0,_FILE_AND_LINE_); + } + } + else + { + packetQueue.PushAtHead(packet,0,_FILE_AND_LINE_); + } + } + } + + returnData->Read(blockingReturnValue); + return true; +} +void RPC4::Signal(const char *sharedIdentifier, RakNet::BitStream *bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool invokeLocal) +{ + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_SIGNAL); + out.WriteCompressed(sharedIdentifier); + if (bitStream) + { + bitStream->ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(bitStream); + } + SendUnified(&out,priority,reliability,orderingChannel,systemIdentifier,broadcast); + + if (invokeLocal) + { + DataStructures::HashIndex functionIndex; + functionIndex = localSlots.GetIndexOf(sharedIdentifier); + if (functionIndex.IsInvalid()) + return; + + Packet p; + p.guid=rakPeerInterface->GetMyGUID(); + p.systemAddress=rakPeerInterface->GetMyBoundAddress(0); + p.wasGeneratedLocally=true; + RakNet::BitStream *bsptr, bstemp; + if (bitStream) + { + bitStream->ResetReadPointer(); + p.length=bitStream->GetNumberOfBytesUsed(); + p.bitSize=bitStream->GetNumberOfBitsUsed(); + bsptr=bitStream; + } + else + { + p.length=0; + p.bitSize=0; + bsptr=&bstemp; + } + InvokeSignal(functionIndex, bsptr, &p); + } +} +void RPC4::InvokeSignal(DataStructures::HashIndex functionIndex, RakNet::BitStream *serializedParameters, Packet *packet) +{ + if (functionIndex.IsInvalid()) + return; + + interruptSignal=false; + LocalSlot *localSlot = localSlots.ItemAtIndex(functionIndex); + unsigned int i; + i=0; + while (i < localSlot->slotObjects.Size()) + { + localSlot->slotObjects[i].functionPointer(serializedParameters, packet); + + // Not threadsafe + if (interruptSignal==true) + break; + + serializedParameters->ResetReadPointer(); + + i++; + } +} +void RPC4::InterruptSignal(void) +{ + interruptSignal=true; +} +void RPC4::OnAttach(void) +{ + unsigned int i; + for (i=0; i < globalRegistrationIndex; i++) + { + if (globalRegistrationBuffer[i].registerFunctionPointer) + { + if (globalRegistrationBuffer[i].callPriority==(int)0xFFFFFFFF) + RegisterFunction(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].registerFunctionPointer); + else + RegisterSlot(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].registerFunctionPointer, globalRegistrationBuffer[i].callPriority); + } + else if (globalRegistrationBuffer[i].registerBlockingFunctionPointer) + RegisterBlockingFunction(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].registerBlockingFunctionPointer); + else + RegisterLocalCallback(globalRegistrationBuffer[i].functionName, globalRegistrationBuffer[i].messageId); + } +} +PluginReceiveResult RPC4::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_RPC_PLUGIN) + { + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + + if (packet->data[1]==ID_RPC4_CALL) + { + RakNet::RakString functionName; + bsIn.ReadCompressed(functionName); + bool isBlocking=false; + bsIn.Read(isBlocking); + if (isBlocking==false) + { + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(functionName.C_String()); + if (skhi.IsInvalid()) + { + RakNet::BitStream bsOut; + bsOut.Write((unsigned char) ID_RPC_REMOTE_ERROR); + bsOut.Write((unsigned char) RPC_ERROR_FUNCTION_NOT_REGISTERED); + bsOut.Write(functionName.C_String(),(unsigned int) functionName.GetLength()+1); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + void ( *fp ) ( RakNet::BitStream *, Packet * ); + fp = registeredNonblockingFunctions.ItemAtIndex(skhi); + bsIn.AlignReadToByteBoundary(); + fp(&bsIn,packet); + } + else + { + DataStructures::HashIndex skhi = registeredBlockingFunctions.GetIndexOf(functionName.C_String()); + if (skhi.IsInvalid()) + { + RakNet::BitStream bsOut; + bsOut.Write((unsigned char) ID_RPC_REMOTE_ERROR); + bsOut.Write((unsigned char) RPC_ERROR_FUNCTION_NOT_REGISTERED); + bsOut.Write(functionName.C_String(),(unsigned int) functionName.GetLength()+1); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + void ( *fp ) ( RakNet::BitStream *, RakNet::BitStream *, Packet * ); + fp = registeredBlockingFunctions.ItemAtIndex(skhi); + RakNet::BitStream returnData; + bsIn.AlignReadToByteBoundary(); + fp(&bsIn, &returnData, packet); + + RakNet::BitStream out; + out.Write((MessageID) ID_RPC_PLUGIN); + out.Write((MessageID) ID_RPC4_RETURN); + returnData.ResetReadPointer(); + out.AlignWriteToByteBoundary(); + out.Write(returnData); + SendUnified(&out,IMMEDIATE_PRIORITY,RELIABLE_ORDERED,0,packet->systemAddress,false); + } + } + else if (packet->data[1]==ID_RPC4_SIGNAL) + { + RakNet::RakString sharedIdentifier; + bsIn.ReadCompressed(sharedIdentifier); + DataStructures::HashIndex functionIndex; + functionIndex = localSlots.GetIndexOf(sharedIdentifier); + RakNet::BitStream serializedParameters; + bsIn.AlignReadToByteBoundary(); + bsIn.Read(&serializedParameters); + InvokeSignal(functionIndex, &serializedParameters, packet); + } + else + { + RakAssert(packet->data[1]==ID_RPC4_RETURN); + blockingReturnValue.Reset(); + blockingReturnValue.Read(bsIn); + gotBlockingReturnValue=true; + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + bool objectExists; + unsigned int index, index2; + index = localCallbacks.GetIndexFromKey(packet->data[0],&objectExists); + if (objectExists) + { + LocalCallback *lc; + lc = localCallbacks[index]; + for (index2=0; index2 < lc->functions.Size(); index2++) + { + RakNet::BitStream bsIn(packet->data, packet->length, false); + + DataStructures::HashIndex skhi = registeredNonblockingFunctions.GetIndexOf(lc->functions[index2].C_String()); + if (skhi.IsInvalid()==false) + { + void ( *fp ) ( RakNet::BitStream *, Packet * ); + fp = registeredNonblockingFunctions.ItemAtIndex(skhi); + bsIn.AlignReadToByteBoundary(); + fp(&bsIn,packet); + } + } + } + + return RR_CONTINUE_PROCESSING; +} +DataStructures::HashIndex RPC4::GetLocalSlotIndex(const char *sharedIdentifier) +{ + return localSlots.GetIndexOf(sharedIdentifier); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/RPC4Plugin.h b/src/raknet/RPC4Plugin.h new file mode 100755 index 0000000..d5296a6 --- /dev/null +++ b/src/raknet/RPC4Plugin.h @@ -0,0 +1,236 @@ +/// \file +/// \brief Remote procedure call, supporting C functions only. No external dependencies required. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RPC4Plugin==1 + +#ifndef __RPC_4_PLUGIN_H +#define __RPC_4_PLUGIN_H + +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "RakNetTypes.h" +#include "BitStream.h" +#include "RakString.h" +#include "NetworkIDObject.h" +#include "DS_Hash.h" +#include "DS_OrderedList.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +/// \defgroup RPC_PLUGIN_GROUP RPC +/// \brief Remote procedure calls, without external dependencies. +/// \details This should not be used at the same time as RPC3. This is a less functional version of RPC3, and is here for users that do not want the Boost dependency of RPC3. +/// \ingroup PLUGINS_GROUP + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; +class NetworkIDManager; + + /// \brief Error codes returned by a remote system as to why an RPC function call cannot execute + /// \details Error code follows packet ID ID_RPC_REMOTE_ERROR, that is packet->data[1]
    + /// Name of the function will be appended starting at packet->data[2] + /// \ingroup RPC_PLUGIN_GROUP + enum RPCErrorCodes + { + /// Named function was not registered with RegisterFunction(). Check your spelling. + RPC_ERROR_FUNCTION_NOT_REGISTERED, + }; + + /// \brief Instantiate this class globally if you want to register a function with RPC4 at the global space + class RAK_DLL_EXPORT RPC4GlobalRegistration + { + public: + /// \brief Queue a call to RPC4::RegisterFunction() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )); + + /// \brief Queue a call to RPC4::RegisterSlot() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority); + + /// \brief Queue a call to RPC4::RegisterBlockingFunction() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )); + + /// \brief Queue a call to RPC4::RegisterLocalCallback() globally. Actual call occurs once RPC4 is attached to an instance of RakPeer or TCPInterface. + RPC4GlobalRegistration(const char* uniqueID, MessageID messageId); + }; + + /// \brief The RPC4 plugin is just an association between a C function pointer and a string. + /// \details It is for users that want to use RPC, but do not want to use boost. + /// You do not have the automatic serialization or other features of RPC3, and C++ member calls are not supported. + /// \note You cannot use RPC4 at the same time as RPC3Plugin + /// \ingroup RPC_PLUGIN_GROUP + class RAK_DLL_EXPORT RPC4 : public PluginInterface2 + { + public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RPC4) + + // Constructor + RPC4(); + + // Destructor + virtual ~RPC4(); + + /// \deprecated Use RegisterSlot + /// \brief Register a function pointer to be callable from a remote system + /// \details The hash of the function name will be stored as an association with the function pointer + /// When a call is made to call this function from the \a Call() or CallLoopback() function, the function pointer will be invoked with the passed bitStream to Call() and the actual Packet that RakNet got. + /// \sa RegisterPacketCallback() + /// \param[in] uniqueID Identifier to be associated with \a functionPointer. If this identifier is already in use, the call will return false. + /// \param[in] functionPointer C function pointer to be called + /// \return True if the hash of uniqueID is not in use, false otherwise. + bool RegisterFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet )); + + /// Register a slot, which is a function pointer to one or more implementations that supports this function signature + /// When a signal occurs, all slots with the same identifier are called. + /// \param[in] sharedIdentifier A string to identify the slot. Recommended to be the same as the name of the function. + /// \param[in] functionPtr Pointer to the function. For C, just pass the name of the function. For C++, use ARPC_REGISTER_CPP_FUNCTION + /// \param[in] callPriority Slots are called by order of the highest callPriority first. For slots with the same priority, they are called in the order they are registered + void RegisterSlot(const char *sharedIdentifier, void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ), int callPriority); + + /// \brief Same as \a RegisterFunction, but is called with CallBlocking() instead of Call() and returns a value to the caller + bool RegisterBlockingFunction(const char* uniqueID, void ( *functionPointer ) ( RakNet::BitStream *userData, RakNet::BitStream *returnData, Packet *packet )); + + /// \deprecated Use RegisterSlot and invoke on self only when the packet you want arrives + /// When a RakNet Packet with the specified identifier is returned, execute CallLoopback() on a function previously registered with RegisterFunction() + /// For example, you could call "OnClosedConnection" whenever you get ID_DISCONNECTION_NOTIFICATION or ID_CONNECTION_LOST + /// \param[in] uniqueID Identifier passed to RegisterFunction() + /// \param[in] messageId What RakNet packet ID to call on, for example ID_DISCONNECTION_NOTIFICATION or ID_CONNECTION_LOST + void RegisterLocalCallback(const char* uniqueID, MessageID messageId); + + /// \brief Unregister a function pointer previously registered with RegisterFunction() + /// \param[in] Identifier originally passed to RegisterFunction() + /// \return True if the hash of uniqueID was in use, and hence removed. false otherwise. + bool UnregisterFunction(const char* uniqueID); + + /// \brief Same as UnregisterFunction, except for a blocking function + bool UnregisterBlockingFunction(const char* uniqueID); + + /// Remove the association created with RegisterPacketCallback() + /// \param[in] uniqueID Identifier passed as uniqueID to RegisterLocalCallback() + /// \param[in] messageId Identifier passed as messageId to RegisterLocalCallback() + /// \return True if the combination of uniqueID and messageId was in use, and hence removed + bool UnregisterLocalCallback(const char* uniqueID, MessageID messageId); + + /// Remove the association created with RegisterSlot() + /// \param[in] sharedIdentifier Identifier passed as sharedIdentifier to RegisterSlot() + bool UnregisterSlot(const char* sharedIdentifier); + + /// \deprecated Use RegisterSlot() and Signal() with your own RakNetGUID as the send target + /// Send to the attached instance of RakPeer. See RakPeerInterface::SendLoopback() + /// \param[in] Identifier originally passed to RegisterFunction() on the local system + /// \param[in] bitStream bitStream encoded data to send to the function callback + void CallLoopback( const char* uniqueID, RakNet::BitStream * bitStream ); + + /// \deprecated, use Signal() + /// Send to the specified remote instance of RakPeer. + /// \param[in] uniqueID Identifier originally passed to RegisterFunction() on the remote system(s) + /// \param[in] bitStream bitStream encoded data to send to the function callback + /// \param[in] priority See RakPeerInterface::Send() + /// \param[in] reliability See RakPeerInterface::Send() + /// \param[in] orderingChannel See RakPeerInterface::Send() + /// \param[in] systemIdentifier See RakPeerInterface::Send() + /// \param[in] broadcast See RakPeerInterface::Send() + void Call( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast ); + + /// \brief Same as call, but don't return until the remote system replies. + /// Broadcasting parameter does not exist, this can only call one remote system + /// \note This function does not return until the remote system responds, disconnects, or was never connected to begin with + /// \param[in] Identifier originally passed to RegisterBlockingFunction() on the remote system(s) + /// \param[in] bitStream bitStream encoded data to send to the function callback + /// \param[in] priority See RakPeerInterface::Send() + /// \param[in] reliability See RakPeerInterface::Send() + /// \param[in] orderingChannel See RakPeerInterface::Send() + /// \param[in] systemIdentifier See RakPeerInterface::Send() + /// \param[out] returnData Written to by the function registered with RegisterBlockingFunction. + /// \return true if successfully called. False on disconnect, function not registered, or not connected to begin with + bool CallBlocking( const char* uniqueID, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, RakNet::BitStream *returnData ); + + /// Calls zero or more functions identified by sharedIdentifier registered with RegisterSlot() + /// \param[in] sharedIdentifier parameter of the same name passed to RegisterSlot() on the remote system + /// \param[in] bitStream bitStream encoded data to send to the function callback + /// \param[in] priority See RakPeerInterface::Send() + /// \param[in] reliability See RakPeerInterface::Send() + /// \param[in] orderingChannel See RakPeerInterface::Send() + /// \param[in] systemIdentifier See RakPeerInterface::Send() + /// \param[in] broadcast See RakPeerInterface::Send() + /// \param[in] invokeLocal If true, also sends to self. + void Signal(const char *sharedIdentifier, RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool invokeLocal); + + /// If called while processing a slot, no further slots for the currently executing signal will be executed + void InterruptSignal(void); + + /// \internal + struct LocalCallback + { + MessageID messageId; + DataStructures::OrderedList functions; + }; + static int LocalCallbackComp(const MessageID &key, LocalCallback* const &data ); + + /// \internal + // Callable object, along with priority to call relative to other objects + struct LocalSlotObject + { + LocalSlotObject() {} + LocalSlotObject(unsigned int _registrationCount,int _callPriority, void ( *_functionPointer ) ( RakNet::BitStream *userData, Packet *packet )) + {registrationCount=_registrationCount;callPriority=_callPriority;functionPointer=_functionPointer;} + ~LocalSlotObject() {} + + // Used so slots are called in the order they are registered + unsigned int registrationCount; + int callPriority; + void ( *functionPointer ) ( RakNet::BitStream *userData, Packet *packet ); + }; + + static int LocalSlotObjectComp( const LocalSlotObject &key, const LocalSlotObject &data ); + + /// \internal + struct LocalSlot + { + DataStructures::OrderedList slotObjects; + }; + DataStructures::Hash localSlots; + + protected: + + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual void OnAttach(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + + DataStructures::Hash registeredNonblockingFunctions; + DataStructures::Hash registeredBlockingFunctions; + DataStructures::OrderedList localCallbacks; + + RakNet::BitStream blockingReturnValue; + bool gotBlockingReturnValue; + + DataStructures::HashIndex GetLocalSlotIndex(const char *sharedIdentifier); + + /// Used so slots are called in the order they are registered + unsigned int nextSlotRegistrationCount; + + bool interruptSignal; + + void InvokeSignal(DataStructures::HashIndex functionIndex, RakNet::BitStream *serializedParameters, Packet *packet); + }; + +} // End namespace + +#endif + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/Rackspace.cpp b/src/raknet/Rackspace.cpp new file mode 100755 index 0000000..9d0dfe8 --- /dev/null +++ b/src/raknet/Rackspace.cpp @@ -0,0 +1,655 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_Rackspace==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "Rackspace.h" +#include "RakString.h" +#include "TCPInterface.h" + +using namespace RakNet; + +Rackspace::Rackspace() +{ + tcpInterface=0; +} + +Rackspace::~Rackspace() +{ + +} + +void Rackspace::AddEventCallback(RackspaceEventCallback *callback) +{ + unsigned int idx = eventCallbacks.GetIndexOf(callback); + if (idx == (unsigned int)-1) + eventCallbacks.Push(callback,_FILE_AND_LINE_); +} +void Rackspace::RemoveEventCallback(RackspaceEventCallback *callback) +{ + unsigned int idx = eventCallbacks.GetIndexOf(callback); + if (idx != (unsigned int)-1) + eventCallbacks.RemoveAtIndex(idx); +} +void Rackspace::ClearEventCallbacks(void) +{ + eventCallbacks.Clear(true, _FILE_AND_LINE_); +} +SystemAddress Rackspace::Authenticate(TCPInterface *_tcpInterface, const char *_authenticationURL, const char *_rackspaceCloudUsername, const char *_apiAccessKey) +{ + unsigned int index = GetOperationOfTypeIndex(RO_CONNECT_AND_AUTHENTICATE); + if (index!=(unsigned int)-1) + { + // In progress + return operations[index].connectionAddress; + } + + tcpInterface=_tcpInterface; + + rackspaceCloudUsername=_rackspaceCloudUsername; + apiAccessKey=_apiAccessKey; + + unsigned int i; + + RackspaceOperation ro; + ro.type=RO_CONNECT_AND_AUTHENTICATE; + ro.isPendingAuthentication=false; + + RakAssert(tcpInterface->WasStarted()); + ro.connectionAddress=tcpInterface->Connect(_authenticationURL,443,true); + if (ro.connectionAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnConnectionAttemptFailure(RO_CONNECT_AND_AUTHENTICATE, _authenticationURL); + + return UNASSIGNED_SYSTEM_ADDRESS; + } + +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcpInterface->StartSSLClient(ro.connectionAddress); +#endif + + RakNet::RakString command( + "GET /v1.0 HTTP/1.1\n" + "Host: %s\n" + "X-Auth-User: %s\n" + "X-Auth-Key: %s\n\n" + ,_authenticationURL, _rackspaceCloudUsername, _apiAccessKey); + tcpInterface->Send(command.C_String(), (unsigned int) command.GetLength(), ro.connectionAddress, false); + + operations.Insert(ro,_FILE_AND_LINE_); + return ro.connectionAddress; +} + +const char * Rackspace::EventTypeToString(RackspaceEventType eventType) +{ + switch (eventType) + { + case RET_Success_200: + return "Success_200"; + case RET_Success_201: + return "Success_201"; + case RET_Success_202: + return "Success_202"; + case RET_Success_203: + return "Success_203"; + case RET_Success_204: + return "Success_204"; + case RET_Cloud_Servers_Fault_500: + return "Cloud_Servers_Fault_500"; + case RET_Service_Unavailable_503: + return "Service_Unavailable_503"; + case RET_Unauthorized_401: + return "Unauthorized_401"; + case RET_Bad_Request_400: + return "Bad_Request_400"; + case RET_Over_Limit_413: + return "Over_Limit_413"; + case RET_Bad_Media_Type_415: + return "Bad_Media_Type_415"; + case RET_Item_Not_Found_404: + return "Item_Not_Found_404"; + case RET_Build_In_Progress_409: + return "Build_In_Progress_409"; + case RET_Resize_Not_Allowed_403: + return "Resize_Not_Allowed_403"; + case RET_Connection_Closed_Without_Reponse: + return "Connection_Closed_Without_Reponse"; + case RET_Unknown_Failure: + return "Unknown_Failure"; + } + return "Unknown event type (bug)"; +} +void Rackspace::AddOperation(RackspaceOperationType type, RakNet::RakString httpCommand, RakNet::RakString operation, RakNet::RakString xml) +{ + RackspaceOperation ro; + ro.type=type; + ro.httpCommand=httpCommand; + ro.operation=operation; + ro.xml=xml; + ro.isPendingAuthentication=HasOperationOfType(RO_CONNECT_AND_AUTHENTICATE); + if (ro.isPendingAuthentication==false) + { + if (ExecuteOperation(ro)) + operations.Insert(ro,_FILE_AND_LINE_); + } + else + operations.Insert(ro,_FILE_AND_LINE_); +} +void Rackspace::ListServers(void) +{ + AddOperation(RO_LIST_SERVERS, "GET", "servers", ""); +} +void Rackspace::ListServersWithDetails(void) +{ + AddOperation(RO_LIST_SERVERS_WITH_DETAILS, "GET", "servers/detail", ""); +} +void Rackspace::CreateServer(RakNet::RakString name, RakNet::RakString imageId, RakNet::RakString flavorId) +{ + RakNet::RakString xml( + "" + "" + "" + ,name.C_String() ,imageId.C_String(), flavorId.C_String()); + AddOperation(RO_CREATE_SERVER, "POST", "servers", xml); +} +void Rackspace::GetServerDetails(RakNet::RakString serverId) +{ + AddOperation(RO_GET_SERVER_DETAILS, "GET", RakNet::RakString("servers/%s", serverId.C_String()), ""); +} +void Rackspace::UpdateServerNameOrPassword(RakNet::RakString serverId, RakNet::RakString newName, RakNet::RakString newPassword) +{ + if (newName.IsEmpty() && newPassword.IsEmpty()) + return; + RakNet::RakString xml( + "" + "" + "", + rebootType.C_String()); + + AddOperation(RO_REBOOT_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::RebuildServer(RakNet::RakString serverId, RakNet::RakString imageId) +{ + RakNet::RakString xml( + "" + "", + imageId.C_String()); + + AddOperation(RO_REBUILD_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::ResizeServer(RakNet::RakString serverId, RakNet::RakString flavorId) +{ + RakNet::RakString xml( + "" + "", + flavorId.C_String()); + + AddOperation(RO_RESIZE_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::ConfirmResizedServer(RakNet::RakString serverId) +{ + RakNet::RakString xml( + "" + ""); + AddOperation(RO_CONFIRM_RESIZED_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::RevertResizedServer(RakNet::RakString serverId) +{ + RakNet::RakString xml( + "" + ""); + AddOperation(RO_REVERT_RESIZED_SERVER, "POST", RakNet::RakString("servers/%s/action", serverId.C_String()), xml); +} +void Rackspace::ListFlavors(void) +{ + AddOperation(RO_LIST_FLAVORS, "GET", "flavors", ""); +} +void Rackspace::GetFlavorDetails(RakNet::RakString flavorId) +{ + AddOperation(RO_GET_FLAVOR_DETAILS, "GET", RakNet::RakString("flavors/%s", flavorId.C_String()), ""); +} +void Rackspace::ListImages(void) +{ + AddOperation(RO_LIST_IMAGES, "GET", "images", ""); +} +void Rackspace::CreateImage(RakNet::RakString serverId, RakNet::RakString imageName) +{ + RakNet::RakString xml( + "" + "", + imageName.C_String(),serverId.C_String()); + + AddOperation(RO_CREATE_IMAGE, "POST", "images", xml); +} +void Rackspace::GetImageDetails(RakNet::RakString imageId) +{ + AddOperation(RO_GET_IMAGE_DETAILS, "GET", RakNet::RakString("images/%s", imageId.C_String()), ""); +} +void Rackspace::DeleteImage(RakNet::RakString imageId) +{ + AddOperation(RO_DELETE_IMAGE, "DELETE", RakNet::RakString("images/%s", imageId.C_String()), ""); +} +void Rackspace::ListSharedIPGroups(void) +{ + AddOperation(RO_LIST_SHARED_IP_GROUPS, "GET", "shared_ip_groups", ""); +} +void Rackspace::ListSharedIPGroupsWithDetails(void) +{ + AddOperation(RO_LIST_SHARED_IP_GROUPS_WITH_DETAILS, "GET", "shared_ip_groups/detail", ""); +} +void Rackspace::CreateSharedIPGroup(RakNet::RakString name, RakNet::RakString optionalServerId) +{ + RakNet::RakString xml( + "" + "", name.C_String()); + if (optionalServerId.IsEmpty()==false) + xml+=RakNet::RakString("", optionalServerId.C_String()); + xml+=""; + + AddOperation(RO_CREATE_SHARED_IP_GROUP, "POST", "shared_ip_groups", xml); +} +void Rackspace::GetSharedIPGroupDetails(RakNet::RakString groupId) +{ + AddOperation(RO_GET_SHARED_IP_GROUP_DETAILS, "GET", RakNet::RakString("shared_ip_groups/%s", groupId.C_String()), ""); +} +void Rackspace::DeleteSharedIPGroup(RakNet::RakString groupId) +{ + AddOperation(RO_DELETE_SHARED_IP_GROUP, "DELETE", RakNet::RakString("shared_ip_groups/%s", groupId.C_String()), ""); +} +void Rackspace::OnClosedConnection(SystemAddress systemAddress) +{ + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS) + return; + + unsigned int i, operationsIndex; + operationsIndex=0; + while (operationsIndex < operations.Size()) + { + if (operations[operationsIndex].isPendingAuthentication==false && operations[operationsIndex].connectionAddress==systemAddress) + { + RackspaceOperation ro = operations[operationsIndex]; + operations.RemoveAtIndex(operationsIndex); + + RakNet::RakString packetDataString = ro.incomingStream; + const char *packetData = packetDataString.C_String(); + + char resultCodeStr[32]; + int resultCodeInt; + + RackspaceEventType rackspaceEventType; + char *result; + result=strstr((char*) packetData, "HTTP/1.1 "); + if (result!=0) + { + result+=strlen("HTTP/1.1 "); + for (i=0; i < sizeof(resultCodeStr)-1 && result[i] && result[i]>='0' && result[i]<='9'; i++) + resultCodeStr[i]=result[i]; + resultCodeStr[i]=0; + resultCodeInt=atoi(resultCodeStr); + + switch (resultCodeInt) + { + case 200: rackspaceEventType=RET_Success_200; break; + case 201: rackspaceEventType=RET_Success_201; break; + case 202: rackspaceEventType=RET_Success_202; break; + case 203: rackspaceEventType=RET_Success_203; break; + case 204: rackspaceEventType=RET_Success_204; break; + case 500: rackspaceEventType=RET_Cloud_Servers_Fault_500; break; + case 503: rackspaceEventType=RET_Service_Unavailable_503; break; + case 401: rackspaceEventType=RET_Unauthorized_401; break; + case 400: rackspaceEventType=RET_Bad_Request_400; break; + case 413: rackspaceEventType=RET_Over_Limit_413; break; + case 415: rackspaceEventType=RET_Bad_Media_Type_415; break; + case 404: rackspaceEventType=RET_Item_Not_Found_404; break; + case 409: rackspaceEventType=RET_Build_In_Progress_409; break; + case 403: rackspaceEventType=RET_Resize_Not_Allowed_403; break; + default: rackspaceEventType=RET_Unknown_Failure; break; + } + } + else + { + rackspaceEventType=RET_Connection_Closed_Without_Reponse; + } + + switch (ro.type) + { + case RO_CONNECT_AND_AUTHENTICATE: + { + if (rackspaceEventType==RET_Success_204) + { + RakNet::RakString header; + ReadLine(packetData, "X-Server-Management-Url: ", serverManagementURL); + serverManagementURL.SplitURI(header, serverManagementDomain, serverManagementPath); + ReadLine(packetData, "X-Storage-Url: ", storageURL); + storageURL.SplitURI(header, storageDomain, storagePath); + ReadLine(packetData, "X-CDN-Management-Url: ", cdnManagementURL); + cdnManagementURL.SplitURI(header, cdnManagementDomain, cdnManagementPath); + ReadLine(packetData, "X-Auth-Token: ", authToken); + ReadLine(packetData, "X-Storage-Token: ", storageToken); + + operationsIndex=0; + while (operationsIndex < operations.Size()) + { + if (operations[operationsIndex].isPendingAuthentication==true) + { + operations[operationsIndex].isPendingAuthentication=false; + if (ExecuteOperation(operations[operationsIndex])==false) + { + operations.RemoveAtIndex(operationsIndex); + } + else + operationsIndex++; + } + else + operationsIndex++; + } + + // Restart in list + operationsIndex=0; + } + + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnAuthenticationResult(rackspaceEventType, (const char*) packetData); + + break; + } + case RO_LIST_SERVERS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListServersResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SERVERS_WITH_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListServersWithDetailsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CREATE_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnCreateServerResult(rackspaceEventType, (const char*) packetData); + break; + } + + case RO_GET_SERVER_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetServerDetails(rackspaceEventType, (const char*) packetData); + break; + } + case RO_UPDATE_SERVER_NAME_OR_PASSWORD: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnUpdateServerNameOrPassword(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SERVER_ADDRESSES: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListServerAddresses(rackspaceEventType, (const char*) packetData); + break; + } + case RO_SHARE_SERVER_ADDRESS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnShareServerAddress(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_SERVER_ADDRESS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteServerAddress(rackspaceEventType, (const char*) packetData); + break; + } + case RO_REBOOT_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnRebootServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_REBUILD_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnRebuildServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_RESIZE_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnResizeServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CONFIRM_RESIZED_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnConfirmResizedServer(rackspaceEventType, (const char*) packetData); + break; + } + case RO_REVERT_RESIZED_SERVER: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnRevertResizedServer(rackspaceEventType, (const char*) packetData); + break; + } + + + case RO_LIST_FLAVORS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListFlavorsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_GET_FLAVOR_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetFlavorDetailsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_IMAGES: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListImagesResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CREATE_IMAGE: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnCreateImageResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_GET_IMAGE_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetImageDetailsResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_IMAGE: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteImageResult(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SHARED_IP_GROUPS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListSharedIPGroups(rackspaceEventType, (const char*) packetData); + break; + } + case RO_LIST_SHARED_IP_GROUPS_WITH_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnListSharedIPGroupsWithDetails(rackspaceEventType, (const char*) packetData); + break; + } + case RO_CREATE_SHARED_IP_GROUP: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnCreateSharedIPGroup(rackspaceEventType, (const char*) packetData); + break; + } + case RO_GET_SHARED_IP_GROUP_DETAILS: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnGetSharedIPGroupDetails(rackspaceEventType, (const char*) packetData); + break; + } + case RO_DELETE_SHARED_IP_GROUP: + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnDeleteSharedIPGroup(rackspaceEventType, (const char*) packetData); + break; + } + default: + break; + + } + } + else + { + operationsIndex++; + } + } +} +void Rackspace::OnReceive(Packet *packet) +{ + unsigned int operationsIndex; + for (operationsIndex=0; operationsIndex < operations.Size(); operationsIndex++) + { + if (operations[operationsIndex].isPendingAuthentication==false && operations[operationsIndex].connectionAddress==packet->systemAddress) + { + operations[operationsIndex].incomingStream+=packet->data; + } + } +} +bool Rackspace::ExecuteOperation(RackspaceOperation &ro) +{ + if (ConnectToServerManagementDomain(ro)==false) + return false; + + RakNet::RakString command( + "%s %s/%s HTTP/1.1\n" + "Host: %s\n" + "Content-Type: application/xml\n" + "Content-Length: %i\n" + "Accept: application/xml\n" + "X-Auth-Token: %s\n", + ro.httpCommand.C_String(), serverManagementPath.C_String(), ro.operation.C_String(), serverManagementDomain.C_String(), + ro.xml.GetLength(), + authToken.C_String()); + + if (ro.xml.IsEmpty()==false) + { + command+="\n"; + command+=ro.xml; + command+="\n"; + } + + command+="\n"; + + //printf(command.C_String()); + + tcpInterface->Send(command.C_String(), (unsigned int) command.GetLength(), ro.connectionAddress, false); + return true; +} +void Rackspace::ReadLine(const char *data, const char *stringStart, RakNet::RakString &output) +{ + output.Clear(); + + char *result, *resultEnd; + + result=strstr((char*) data, stringStart); + result+=strlen(stringStart); + if (result==0) + { + RakAssert(0); + return; + } + + output=result; + resultEnd=result; + while (*resultEnd && (*resultEnd!='\r') && (*resultEnd!='\n') ) + resultEnd++; + output.Truncate((unsigned int) (resultEnd-result)); +} + + +bool Rackspace::ConnectToServerManagementDomain(RackspaceOperation &ro) +{ + unsigned int i; + + ro.connectionAddress=tcpInterface->Connect(serverManagementDomain.C_String(),443,true); + if (ro.connectionAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < eventCallbacks.Size(); i++) + eventCallbacks[i]->OnConnectionAttemptFailure(ro.type, serverManagementURL); + return false; + } + +#if OPEN_SSL_CLIENT_SUPPORT==1 + tcpInterface->StartSSLClient(ro.connectionAddress); +#endif + + return true; +} +bool Rackspace::HasOperationOfType(RackspaceOperationType t) +{ + unsigned int i; + for (i=0; i < operations.Size(); i++) + { + if (operations[i].type==t) + return true; + } + return false; +} +unsigned int Rackspace::GetOperationOfTypeIndex(RackspaceOperationType t) +{ + unsigned int i; + for (i=0; i < operations.Size(); i++) + { + if (operations[i].type==t) + return i; + } + return (unsigned int) -1; +} + +#endif diff --git a/src/raknet/Rackspace.h b/src/raknet/Rackspace.h new file mode 100755 index 0000000..145e55c --- /dev/null +++ b/src/raknet/Rackspace.h @@ -0,0 +1,405 @@ +/// \file Rackspace.h +/// \brief Helper to class to manage Rackspace servers +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" + +#if _RAKNET_SUPPORT_Rackspace==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "Export.h" +#include "DS_List.h" +#include "RakNetTypes.h" +#include "DS_Queue.h" +#include "RakString.h" + +#ifndef __RACKSPACE_H +#define __RACKSPACE_H + +namespace RakNet +{ + + class TCPInterface; + struct Packet; + + /// \brief Result codes for Rackspace commands + /// /sa Rackspace::EventTypeToString() + enum RackspaceEventType + { + RET_Success_200, + RET_Success_201, + RET_Success_202, + RET_Success_203, + RET_Success_204, + RET_Cloud_Servers_Fault_500, + RET_Service_Unavailable_503, + RET_Unauthorized_401, + RET_Bad_Request_400, + RET_Over_Limit_413, + RET_Bad_Media_Type_415, + RET_Item_Not_Found_404, + RET_Build_In_Progress_409, + RET_Resize_Not_Allowed_403, + RET_Connection_Closed_Without_Reponse, + RET_Unknown_Failure, + }; + + /// \internal + enum RackspaceOperationType + { + RO_CONNECT_AND_AUTHENTICATE, + RO_LIST_SERVERS, + RO_LIST_SERVERS_WITH_DETAILS, + RO_CREATE_SERVER, + RO_GET_SERVER_DETAILS, + RO_UPDATE_SERVER_NAME_OR_PASSWORD, + RO_DELETE_SERVER, + RO_LIST_SERVER_ADDRESSES, + RO_SHARE_SERVER_ADDRESS, + RO_DELETE_SERVER_ADDRESS, + RO_REBOOT_SERVER, + RO_REBUILD_SERVER, + RO_RESIZE_SERVER, + RO_CONFIRM_RESIZED_SERVER, + RO_REVERT_RESIZED_SERVER, + RO_LIST_FLAVORS, + RO_GET_FLAVOR_DETAILS, + RO_LIST_IMAGES, + RO_CREATE_IMAGE, + RO_GET_IMAGE_DETAILS, + RO_DELETE_IMAGE, + RO_LIST_SHARED_IP_GROUPS, + RO_LIST_SHARED_IP_GROUPS_WITH_DETAILS, + RO_CREATE_SHARED_IP_GROUP, + RO_GET_SHARED_IP_GROUP_DETAILS, + RO_DELETE_SHARED_IP_GROUP, + + RO_NONE, + }; + + /// \brief Callback interface to receive the results of operations + class RAK_DLL_EXPORT RackspaceEventCallback + { + public: + RackspaceEventCallback() {} + virtual ~RackspaceEventCallback() {} + virtual void OnAuthenticationResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListServersResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListServersWithDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnCreateServerResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetServerDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnUpdateServerNameOrPassword(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListServerAddresses(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnShareServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnRebootServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnRebuildServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnResizeServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnConfirmResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnRevertResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListFlavorsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetFlavorDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListImagesResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnCreateImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetImageDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListSharedIPGroups(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnListSharedIPGroupsWithDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnCreateSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnGetSharedIPGroupDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + virtual void OnDeleteSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo)=0; + + virtual void OnConnectionAttemptFailure(RackspaceOperationType operationType, const char *url)=0; + }; + + /// \brief Callback interface to receive the results of operations, with a default result + class RAK_DLL_EXPORT RackspaceEventCallback_Default : public RackspaceEventCallback + { + public: + virtual void ExecuteDefault(const char *callbackName, RackspaceEventType eventType, const char *htmlAdditionalInfo) {(void) callbackName; (void) eventType; (void) htmlAdditionalInfo;} + + virtual void OnAuthenticationResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnAuthenticationResult", eventType, htmlAdditionalInfo);} + virtual void OnListServersResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListServersResult", eventType, htmlAdditionalInfo);} + virtual void OnListServersWithDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListServersWithDetailsResult", eventType, htmlAdditionalInfo);} + virtual void OnCreateServerResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnCreateServerResult", eventType, htmlAdditionalInfo);} + virtual void OnGetServerDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetServerDetails", eventType, htmlAdditionalInfo);} + virtual void OnUpdateServerNameOrPassword(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnUpdateServerNameOrPassword", eventType, htmlAdditionalInfo);} + virtual void OnDeleteServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteServer", eventType, htmlAdditionalInfo);} + virtual void OnListServerAddresses(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListServerAddresses", eventType, htmlAdditionalInfo);} + virtual void OnShareServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnShareServerAddress", eventType, htmlAdditionalInfo);} + virtual void OnDeleteServerAddress(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteServerAddress", eventType, htmlAdditionalInfo);} + virtual void OnRebootServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnRebootServer", eventType, htmlAdditionalInfo);} + virtual void OnRebuildServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnRebuildServer", eventType, htmlAdditionalInfo);} + virtual void OnResizeServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnResizeServer", eventType, htmlAdditionalInfo);} + virtual void OnConfirmResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnConfirmResizedServer", eventType, htmlAdditionalInfo);} + virtual void OnRevertResizedServer(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnRevertResizedServer", eventType, htmlAdditionalInfo);} + virtual void OnListFlavorsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListFlavorsResult", eventType, htmlAdditionalInfo);} + virtual void OnGetFlavorDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetFlavorDetailsResult", eventType, htmlAdditionalInfo);} + virtual void OnListImagesResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListImagesResult", eventType, htmlAdditionalInfo);} + virtual void OnCreateImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnCreateImageResult", eventType, htmlAdditionalInfo);} + virtual void OnGetImageDetailsResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetImageDetailsResult", eventType, htmlAdditionalInfo);} + virtual void OnDeleteImageResult(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteImageResult", eventType, htmlAdditionalInfo);} + virtual void OnListSharedIPGroups(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListSharedIPGroups", eventType, htmlAdditionalInfo);} + virtual void OnListSharedIPGroupsWithDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnListSharedIPGroupsWithDetails", eventType, htmlAdditionalInfo);} + virtual void OnCreateSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnCreateSharedIPGroup", eventType, htmlAdditionalInfo);} + virtual void OnGetSharedIPGroupDetails(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnGetSharedIPGroupDetails", eventType, htmlAdditionalInfo);} + virtual void OnDeleteSharedIPGroup(RackspaceEventType eventType, const char *htmlAdditionalInfo) {ExecuteDefault("OnDeleteSharedIPGroup", eventType, htmlAdditionalInfo);} + + virtual void OnConnectionAttemptFailure(RackspaceOperationType operationType, const char *url) {(void) operationType; (void) url;} + }; + + /// \brief Code that uses the TCPInterface class to communicate with the Rackspace API servers + /// \pre Compile RakNet with OPEN_SSL_CLIENT_SUPPORT set to 1 + /// \pre Packets returned from TCPInterface::OnReceive() must be passed to Rackspace::OnReceive() + /// \pre Packets returned from TCPInterface::HasLostConnection() must be passed to Rackspace::OnClosedConnection() + class RAK_DLL_EXPORT Rackspace + { + public: + Rackspace(); + ~Rackspace(); + + /// \brief Authenticate with Rackspace servers, required before executing any commands. + /// \details All requests to authenticate and operate against Cloud Servers are performed using SSL over HTTP (HTTPS) on TCP port 443. + /// Times out after 24 hours - if you get RET_Authenticate_Unauthorized in the RackspaceEventCallback callback, call again + /// \sa RackspaceEventCallback::OnAuthenticationResult() + /// \param[in] _tcpInterface An instance of TCPInterface, build with OPEN_SSL_CLIENT_SUPPORT 1 and already started + /// \param[in] _authenticationURL See http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf . US-based accounts authenticate through auth.api.rackspacecloud.com. UK-based accounts authenticate through lon.auth.api.rackspacecloud.com + /// \param[in] _rackspaceCloudUsername Username you registered with Rackspace on their website + /// \param[in] _apiAccessKey Obtain your API access key from the Rackspace Cloud Control Panel in the Your Account API Access section. + /// \return The address of the authentication server, or UNASSIGNED_SYSTEM_ADDRESS if the connection attempt failed + SystemAddress Authenticate(TCPInterface *_tcpInterface, const char *_authenticationURL, const char *_rackspaceCloudUsername, const char *_apiAccessKey); + + /// \brief Get a list of running servers + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListServersResult() + void ListServers(void); + + /// \brief Get a list of running servers, with extended details on each server + /// \sa GetServerDetails() + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListServersWithDetailsResult() + void ListServersWithDetails(void); + + /// \brief Create a server + /// \details Create a server with a given image (harddrive contents) and flavor (hardware configuration) + /// Get the available images with ListImages() + /// Get the available flavors with ListFlavors() + /// It is possible to configure the server in more detail. See the XML schema at http://docs.rackspacecloud.com/servers/api/v1.0 + /// You can execute such a custom command by calling AddOperation() manually. See the implementation of CreateServer for how to do so. + /// The server takes a while to build. Call GetServerDetails() to get the current build status. Server id to pass to GetServerDetails() is returned in the field + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnCreateServerResult() + /// \param[in] name Name of the server. Only alphanumeric characters, periods, and hyphens are valid. Server Name cannot start or end with a period or hyphen. + /// \param[in] imageId Which image (harddrive contents, including OS) to use + /// \param[in] flavorId Which flavor (hardware config) to use, primarily how much memory is available. + void CreateServer(RakNet::RakString name, RakNet::RakString imageId, RakNet::RakString flavorId); + + /// \brief Get details on a particular server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnGetServerDetailsResult() + /// \param[in] serverId Which server to get details on. You can call ListServers() to get the list of active servers. + void GetServerDetails(RakNet::RakString serverId); + + /// \brief Changes the name or password for a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnUpdateServerNameOrPasswordResult() + /// \param[in] serverId Which server to get details on. You can call ListServers() to get the list of active servers. + /// \param[in] newName The new server name. Leave blank to leave unchanged. Only alphanumeric characters, periods, and hyphens are valid. Server Name cannot start or end with a period or hyphen. + /// \param[in] newPassword The new server password. Leave blank to leave unchanged. + void UpdateServerNameOrPassword(RakNet::RakString serverId, RakNet::RakString newName, RakNet::RakString newPassword); + + /// \brief Deletes a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnDeleteServerResult() + /// \param[in] serverId Which server to get details on. You can call ListServers() to get the list of active servers. + void DeleteServer(RakNet::RakString serverId); + + /// \brief Lists the IP addresses available to a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListServerAddressesResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + void ListServerAddresses(RakNet::RakString serverId); + + /// \brief Shares an IP address with a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnShareServerAddressResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] ipAddress Which IP address. You can call ListServerAddresses() to get the list of addresses for the specified server + void ShareServerAddress(RakNet::RakString serverId, RakNet::RakString ipAddress); + + /// \brief Stops sharing an IP address with a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnDeleteServerAddressResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] ipAddress Which IP address. You can call ListServerAddresses() to get the list of addresses for the specified server + void DeleteServerAddress(RakNet::RakString serverId, RakNet::RakString ipAddress); + + /// \brief Reboots a server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnRebootServerResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] rebootType Should be either "HARD" or "SOFT" + void RebootServer(RakNet::RakString serverId, RakNet::RakString rebootType); + + /// \brief Rebuilds a server with a different image (harddrive contents) + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnRebuildServerResult() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] imageId Which image (harddrive contents, including OS) to use + void RebuildServer(RakNet::RakString serverId, RakNet::RakString imageId); + + /// \brief Changes the hardware configuration of a server. This does not take effect until you call ConfirmResizedServer() + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnResizeServerResult() + /// \sa RevertResizedServer() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] flavorId Which flavor (hardware config) to use, primarily how much memory is available. + void ResizeServer(RakNet::RakString serverId, RakNet::RakString flavorId); + + /// \brief Confirm a resize for the specified server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnConfirmResizedServerResult() + /// \sa ResizeServer() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + void ConfirmResizedServer(RakNet::RakString serverId); + + /// \brief Reverts a resize for the specified server + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnRevertResizedServerResult() + /// \sa ResizeServer() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + void RevertResizedServer(RakNet::RakString serverId); + + /// \brief List all flavors (hardware configs, primarily memory) + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListFlavorsResult() + void ListFlavors(void); + + /// \brief Get extended details about a specific flavor + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnGetFlavorDetailsResult() + /// \sa ListFlavors() + /// \param[in] flavorId Which flavor (hardware config) + void GetFlavorDetails(RakNet::RakString flavorId); + + /// \brief List all images (software configs, including operating systems), which includes images you create yourself + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListImagesResult() + /// \sa CreateImage() + void ListImages(void); + + /// \brief Images a running server. This essentially copies the harddrive, and lets you start a server with the same harddrive contents later + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnCreateImageResult() + /// \sa ListImages() + /// \param[in] serverId Which server to operate on. You can call ListServers() to get the list of active servers. + /// \param[in] imageName What to call this image + void CreateImage(RakNet::RakString serverId, RakNet::RakString imageName); + + /// \brief Get extended details about a particular image + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnGetImageDetailsResult() + /// \sa ListImages() + /// \param[in] imageId Which image + void GetImageDetails(RakNet::RakString imageId); + + /// \brief Delete a custom image created with CreateImage() + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnDeleteImageResult() + /// \sa ListImages() + /// \param[in] imageId Which image + void DeleteImage(RakNet::RakString imageId); + + /// \brief List IP groups + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListSharedIPGroupsResult() + void ListSharedIPGroups(void); + + /// \brief List IP groups with extended details + /// \sa http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110112.pdf + /// \sa RackspaceEventCallback::OnListSharedIPGroupsWithDetailsResult() + void ListSharedIPGroupsWithDetails(void); + + // I don't know what this does + void CreateSharedIPGroup(RakNet::RakString name, RakNet::RakString optionalServerId); + // I don't know what this does + void GetSharedIPGroupDetails(RakNet::RakString groupId); + // I don't know what this does + void DeleteSharedIPGroup(RakNet::RakString groupId); + + /// \brief Adds a callback to the list of callbacks to be called when any of the above functions finish executing + /// The callbacks are called in the order they are added + void AddEventCallback(RackspaceEventCallback *callback); + /// \brief Removes a callback from the list of callbacks to be called when any of the above functions finish executing + /// The callbacks are called in the order they are added + void RemoveEventCallback(RackspaceEventCallback *callback); + /// \brief Removes all callbacks + void ClearEventCallbacks(void); + + /// Call this anytime TCPInterface returns a packet + void OnReceive(Packet *packet); + + /// Call this when TCPInterface returns something other than UNASSIGNED_SYSTEM_ADDRESS from HasLostConnection() + void OnClosedConnection(SystemAddress systemAddress); + + /// String representation of each RackspaceEventType + static const char * EventTypeToString(RackspaceEventType eventType); + + /// \brief Mostly for internal use, but you can use it to execute an operation with more complex xml if desired + /// See the Rackspace.cpp on how to use it + void AddOperation(RackspaceOperationType type, RakNet::RakString httpCommand, RakNet::RakString operation, RakNet::RakString xml); + protected: + + DataStructures::List eventCallbacks; + + struct RackspaceOperation + { + RackspaceOperationType type; + // RakNet::RakString stringInfo; + SystemAddress connectionAddress; + bool isPendingAuthentication; + RakNet::RakString incomingStream; + RakNet::RakString httpCommand; + RakNet::RakString operation; + RakNet::RakString xml; + }; + + TCPInterface *tcpInterface; + + // RackspaceOperationType currentOperation; + // DataStructures::Queue nextOperationQueue; + + DataStructures::List operations; + bool HasOperationOfType(RackspaceOperationType t); + unsigned int GetOperationOfTypeIndex(RackspaceOperationType t); + + RakNet::RakString serverManagementURL; + RakNet::RakString serverManagementDomain; + RakNet::RakString serverManagementPath; + RakNet::RakString storageURL; + RakNet::RakString storageDomain; + RakNet::RakString storagePath; + RakNet::RakString cdnManagementURL; + RakNet::RakString cdnManagementDomain; + RakNet::RakString cdnManagementPath; + + RakNet::RakString storageToken; + RakNet::RakString authToken; + RakNet::RakString rackspaceCloudUsername; + RakNet::RakString apiAccessKey; + + bool ExecuteOperation(RackspaceOperation &ro); + void ReadLine(const char *data, const char *stringStart, RakNet::RakString &output); + bool ConnectToServerManagementDomain(RackspaceOperation &ro); + + + }; + +} // namespace RakNet + +#endif // __RACKSPACE_API_H + +#endif // _RAKNET_SUPPORT_Rackspace diff --git a/src/raknet/RakAlloca.h b/src/raknet/RakAlloca.h new file mode 100755 index 0000000..b25e5ba --- /dev/null +++ b/src/raknet/RakAlloca.h @@ -0,0 +1,16 @@ +#if defined(__FreeBSD__) +#include + + + + +#elif defined ( __APPLE__ ) || defined ( __APPLE_CC__ ) +#include +#include +#elif defined(_WIN32) +#include +#else +#include +// Alloca needed on Ubuntu apparently +#include +#endif diff --git a/src/raknet/RakAssert.h b/src/raknet/RakAssert.h new file mode 100755 index 0000000..4521d5f --- /dev/null +++ b/src/raknet/RakAssert.h @@ -0,0 +1,2 @@ +#include +#include "RakNetDefines.h" diff --git a/src/raknet/RakMemoryOverride.cpp b/src/raknet/RakMemoryOverride.cpp new file mode 100755 index 0000000..8e20f8f --- /dev/null +++ b/src/raknet/RakMemoryOverride.cpp @@ -0,0 +1,294 @@ +#include "RakMemoryOverride.h" +#include "RakAssert.h" +#include + +#ifdef _RAKNET_SUPPORT_DL_MALLOC +#include "rdlmalloc.h" +#endif + + + + + +using namespace RakNet; + +#if _USE_RAK_MEMORY_OVERRIDE==1 + #if defined(malloc) + #pragma push_macro("malloc") + #undef malloc + #define RMO_MALLOC_UNDEF + #endif + + #if defined(realloc) + #pragma push_macro("realloc") + #undef realloc + #define RMO_REALLOC_UNDEF + #endif + + #if defined(free) + #pragma push_macro("free") + #undef free + #define RMO_FREE_UNDEF + #endif +#endif + +void DefaultOutOfMemoryHandler(const char *file, const long line) +{ + (void) file; + (void) line; + RakAssert(0); +} + +void * (*rakMalloc) (size_t size) = RakNet::_RakMalloc; +void* (*rakRealloc) (void *p, size_t size) = RakNet::_RakRealloc; +void (*rakFree) (void *p) = RakNet::_RakFree; +void* (*rakMalloc_Ex) (size_t size, const char *file, unsigned int line) = RakNet::_RakMalloc_Ex; +void* (*rakRealloc_Ex) (void *p, size_t size, const char *file, unsigned int line) = RakNet::_RakRealloc_Ex; +void (*rakFree_Ex) (void *p, const char *file, unsigned int line) = RakNet::_RakFree_Ex; +void (*notifyOutOfMemory) (const char *file, const long line)=DefaultOutOfMemoryHandler; +void * (*dlMallocMMap) (size_t size) = RakNet::_DLMallocMMap; +void * (*dlMallocDirectMMap) (size_t size) = RakNet::_DLMallocDirectMMap; +int (*dlMallocMUnmap) (void* ptr, size_t size) = RakNet::_DLMallocMUnmap; + +void SetMalloc( void* (*userFunction)(size_t size) ) +{ + rakMalloc=userFunction; +} +void SetRealloc( void* (*userFunction)(void *p, size_t size) ) +{ + rakRealloc=userFunction; +} +void SetFree( void (*userFunction)(void *p) ) +{ + rakFree=userFunction; +} +void SetMalloc_Ex( void* (*userFunction)(size_t size, const char *file, unsigned int line) ) +{ + rakMalloc_Ex=userFunction; +} +void SetRealloc_Ex( void* (*userFunction)(void *p, size_t size, const char *file, unsigned int line) ) +{ + rakRealloc_Ex=userFunction; +} +void SetFree_Ex( void (*userFunction)(void *p, const char *file, unsigned int line) ) +{ + rakFree_Ex=userFunction; +} +void SetNotifyOutOfMemory( void (*userFunction)(const char *file, const long line) ) +{ + notifyOutOfMemory=userFunction; +} +void SetDLMallocMMap( void* (*userFunction)(size_t size) ) +{ + dlMallocMMap=userFunction; +} +void SetDLMallocDirectMMap( void* (*userFunction)(size_t size) ) +{ + dlMallocDirectMMap=userFunction; +} +void SetDLMallocMUnmap( int (*userFunction)(void* ptr, size_t size) ) +{ + dlMallocMUnmap=userFunction; +} +void * (*GetMalloc()) (size_t size) +{ + return rakMalloc; +} +void * (*GetRealloc()) (void *p, size_t size) +{ + return rakRealloc; +} +void (*GetFree()) (void *p) +{ + return rakFree; +} +void * (*GetMalloc_Ex()) (size_t size, const char *file, unsigned int line) +{ + return rakMalloc_Ex; +} +void * (*GetRealloc_Ex()) (void *p, size_t size, const char *file, unsigned int line) +{ + return rakRealloc_Ex; +} +void (*GetFree_Ex()) (void *p, const char *file, unsigned int line) +{ + return rakFree_Ex; +} +void *(*GetDLMallocMMap())(size_t size) +{ + return dlMallocMMap; +} +void *(*GetDLMallocDirectMMap())(size_t size) +{ + return dlMallocDirectMMap; +} +int (*GetDLMallocMUnmap())(void* ptr, size_t size) +{ + return dlMallocMUnmap; +} +void* RakNet::_RakMalloc (size_t size) +{ + return malloc(size); +} + +void* RakNet::_RakRealloc (void *p, size_t size) +{ + return realloc(p,size); +} + +void RakNet::_RakFree (void *p) +{ + free(p); +} + +void* RakNet::_RakMalloc_Ex (size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return malloc(size); +} + +void* RakNet::_RakRealloc_Ex (void *p, size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return realloc(p,size); +} + +void RakNet::_RakFree_Ex (void *p, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + free(p); +} +#ifdef _RAKNET_SUPPORT_DL_MALLOC +void * RakNet::_DLMallocMMap (size_t size) +{ + return RAK_MMAP_DEFAULT(size); +} +void * RakNet::_DLMallocDirectMMap (size_t size) +{ + return RAK_DIRECT_MMAP_DEFAULT(size); +} +int RakNet::_DLMallocMUnmap (void *p, size_t size) +{ + return RAK_MUNMAP_DEFAULT(p,size); +} + +static mspace rakNetFixedHeapMSpace=0; + +void* _DLMalloc(size_t size) +{ + return rak_mspace_malloc(rakNetFixedHeapMSpace,size); +} + +void* _DLRealloc(void *p, size_t size) +{ + return rak_mspace_realloc(rakNetFixedHeapMSpace,p,size); +} + +void _DLFree(void *p) +{ + if (p) + rak_mspace_free(rakNetFixedHeapMSpace,p); +} +void* _DLMalloc_Ex (size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return rak_mspace_malloc(rakNetFixedHeapMSpace,size); +} + +void* _DLRealloc_Ex (void *p, size_t size, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + return rak_mspace_realloc(rakNetFixedHeapMSpace,p,size); +} + +void _DLFree_Ex (void *p, const char *file, unsigned int line) +{ + (void) file; + (void) line; + + if (p) + rak_mspace_free(rakNetFixedHeapMSpace,p); +} + +void UseRaknetFixedHeap(size_t initialCapacity, + void * (*yourMMapFunction) (size_t size), + void * (*yourDirectMMapFunction) (size_t size), + int (*yourMUnmapFunction) (void *p, size_t size)) +{ + SetDLMallocMMap(yourMMapFunction); + SetDLMallocDirectMMap(yourDirectMMapFunction); + SetDLMallocMUnmap(yourMUnmapFunction); + SetMalloc(_DLMalloc); + SetRealloc(_DLRealloc); + SetFree(_DLFree); + SetMalloc_Ex(_DLMalloc_Ex); + SetRealloc_Ex(_DLRealloc_Ex); + SetFree_Ex(_DLFree_Ex); + + rakNetFixedHeapMSpace=rak_create_mspace(initialCapacity, 0); +} +void FreeRakNetFixedHeap(void) +{ + if (rakNetFixedHeapMSpace) + { + rak_destroy_mspace(rakNetFixedHeapMSpace); + rakNetFixedHeapMSpace=0; + } + + SetMalloc(_RakMalloc); + SetRealloc(_RakRealloc); + SetFree(_RakFree); + SetMalloc_Ex(_RakMalloc_Ex); + SetRealloc_Ex(_RakRealloc_Ex); + SetFree_Ex(_RakFree_Ex); +} +#else +void * RakNet::_DLMallocMMap (size_t size) {(void) size; return 0;} +void * RakNet::_DLMallocDirectMMap (size_t size) {(void) size; return 0;} +int RakNet::_DLMallocMUnmap (void *p, size_t size) {(void) size; (void) p; return 0;} +void* _DLMalloc(size_t size) {(void) size; return 0;} +void* _DLRealloc(void *p, size_t size) {(void) p; (void) size; return 0;} +void _DLFree(void *p) {(void) p;} +void* _DLMalloc_Ex (size_t size, const char *file, unsigned int line) {(void) size; (void) file; (void) line; return 0;} +void* _DLRealloc_Ex (void *p, size_t size, const char *file, unsigned int line) {(void) p; (void) size; (void) file; (void) line; return 0;} +void _DLFree_Ex (void *p, const char *file, unsigned int line) {(void) p; (void) file; (void) line;} + +void UseRaknetFixedHeap(size_t initialCapacity, + void * (*yourMMapFunction) (size_t size), + void * (*yourDirectMMapFunction) (size_t size), + int (*yourMUnmapFunction) (void *p, size_t size)) +{ + (void) initialCapacity; + (void) yourMMapFunction; + (void) yourDirectMMapFunction; + (void) yourMUnmapFunction; +} +void FreeRakNetFixedHeap(void) {} +#endif + +#if _USE_RAK_MEMORY_OVERRIDE==1 + + #pragma pop_macro("malloc") + #undef RMO_MALLOC_UNDEF + + + + #pragma pop_macro("realloc") + #undef RMO_REALLOC_UNDEF + + + + #pragma pop_macro("free") + #undef RMO_FREE_UNDEF + +#endif diff --git a/src/raknet/RakMemoryOverride.h b/src/raknet/RakMemoryOverride.h new file mode 100755 index 0000000..57b0de6 --- /dev/null +++ b/src/raknet/RakMemoryOverride.h @@ -0,0 +1,236 @@ +/// \file +/// \brief If _USE_RAK_MEMORY_OVERRIDE is defined, memory allocations go through rakMalloc, rakRealloc, and rakFree +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAK_MEMORY_H +#define __RAK_MEMORY_H + +#include "Export.h" +#include "RakNetDefines.h" +#include + + + + + + + +#include "RakAlloca.h" + +// #if _USE_RAK_MEMORY_OVERRIDE==1 +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RMO_NEW_UNDEF +// #endif +// #endif + + +// These pointers are statically and globally defined in RakMemoryOverride.cpp +// Change them to point to your own allocators if you want. +// Use the functions for a DLL, or just reassign the variable if using source +extern RAK_DLL_EXPORT void * (*rakMalloc) (size_t size); +extern RAK_DLL_EXPORT void * (*rakRealloc) (void *p, size_t size); +extern RAK_DLL_EXPORT void (*rakFree) (void *p); +extern RAK_DLL_EXPORT void * (*rakMalloc_Ex) (size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void * (*rakRealloc_Ex) (void *p, size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void (*rakFree_Ex) (void *p, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void (*notifyOutOfMemory) (const char *file, const long line); +extern RAK_DLL_EXPORT void * (*dlMallocMMap) (size_t size); +extern RAK_DLL_EXPORT void * (*dlMallocDirectMMap) (size_t size); +extern RAK_DLL_EXPORT int (*dlMallocMUnmap) (void* ptr, size_t size); + +// Change to a user defined allocation function +void RAK_DLL_EXPORT SetMalloc( void* (*userFunction)(size_t size) ); +void RAK_DLL_EXPORT SetRealloc( void* (*userFunction)(void *p, size_t size) ); +void RAK_DLL_EXPORT SetFree( void (*userFunction)(void *p) ); +void RAK_DLL_EXPORT SetMalloc_Ex( void* (*userFunction)(size_t size, const char *file, unsigned int line) ); +void RAK_DLL_EXPORT SetRealloc_Ex( void* (*userFunction)(void *p, size_t size, const char *file, unsigned int line) ); +void RAK_DLL_EXPORT SetFree_Ex( void (*userFunction)(void *p, const char *file, unsigned int line) ); +// Change to a user defined out of memory function +void RAK_DLL_EXPORT SetNotifyOutOfMemory( void (*userFunction)(const char *file, const long line) ); +void RAK_DLL_EXPORT SetDLMallocMMap( void* (*userFunction)(size_t size) ); +void RAK_DLL_EXPORT SetDLMallocDirectMMap( void* (*userFunction)(size_t size) ); +void RAK_DLL_EXPORT SetDLMallocMUnmap( int (*userFunction)(void* ptr, size_t size) ); + +extern RAK_DLL_EXPORT void * (*GetMalloc()) (size_t size); +extern RAK_DLL_EXPORT void * (*GetRealloc()) (void *p, size_t size); +extern RAK_DLL_EXPORT void (*GetFree()) (void *p); +extern RAK_DLL_EXPORT void * (*GetMalloc_Ex()) (size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void * (*GetRealloc_Ex()) (void *p, size_t size, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void (*GetFree_Ex()) (void *p, const char *file, unsigned int line); +extern RAK_DLL_EXPORT void *(*GetDLMallocMMap())(size_t size); +extern RAK_DLL_EXPORT void *(*GetDLMallocDirectMMap())(size_t size); +extern RAK_DLL_EXPORT int (*GetDLMallocMUnmap())(void* ptr, size_t size); + +namespace RakNet +{ + + template + RAK_DLL_EXPORT Type* OP_NEW(const char *file, unsigned int line) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type; + return t; +#else + (void) file; + (void) line; + return new Type; +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_1(const char *file, unsigned int line, const P1 &p1) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1); + return t; +#else + (void) file; + (void) line; + return new Type(p1); +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_2(const char *file, unsigned int line, const P1 &p1, const P2 &p2) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1, p2); + return t; +#else + (void) file; + (void) line; + return new Type(p1, p2); +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_3(const char *file, unsigned int line, const P1 &p1, const P2 &p2, const P3 &p3) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1, p2, p3); + return t; +#else + (void) file; + (void) line; + return new Type(p1, p2, p3); +#endif + } + + template + RAK_DLL_EXPORT Type* OP_NEW_4(const char *file, unsigned int line, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + char *buffer = (char *) (GetMalloc_Ex())(sizeof(Type), file, line); + Type *t = new (buffer) Type(p1, p2, p3, p4); + return t; +#else + (void) file; + (void) line; + return new Type(p1, p2, p3, p4); +#endif + } + + + template + RAK_DLL_EXPORT Type* OP_NEW_ARRAY(const int count, const char *file, unsigned int line) + { + if (count==0) + return 0; + +#if _USE_RAK_MEMORY_OVERRIDE==1 +// Type *t; + char *buffer = (char *) (GetMalloc_Ex())(sizeof(int)+sizeof(Type)*count, file, line); + ((int*)buffer)[0]=count; + for (int i=0; i + RAK_DLL_EXPORT void OP_DELETE(Type *buff, const char *file, unsigned int line) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + if (buff==0) return; + buff->~Type(); + (GetFree_Ex())((char*)buff, file, line ); +#else + (void) file; + (void) line; + delete buff; +#endif + + } + + template + RAK_DLL_EXPORT void OP_DELETE_ARRAY(Type *buff, const char *file, unsigned int line) + { +#if _USE_RAK_MEMORY_OVERRIDE==1 + if (buff==0) + return; + + int count = ((int*)((char*)buff-sizeof(int)))[0]; + Type *t; + for (int i=0; i~Type(); + } + (GetFree_Ex())((char*)buff-sizeof(int), file, line ); +#else + (void) file; + (void) line; + delete [] buff; +#endif + + } + + void RAK_DLL_EXPORT * _RakMalloc (size_t size); + void RAK_DLL_EXPORT * _RakRealloc (void *p, size_t size); + void RAK_DLL_EXPORT _RakFree (void *p); + void RAK_DLL_EXPORT * _RakMalloc_Ex (size_t size, const char *file, unsigned int line); + void RAK_DLL_EXPORT * _RakRealloc_Ex (void *p, size_t size, const char *file, unsigned int line); + void RAK_DLL_EXPORT _RakFree_Ex (void *p, const char *file, unsigned int line); + void RAK_DLL_EXPORT * _DLMallocMMap (size_t size); + void RAK_DLL_EXPORT * _DLMallocDirectMMap (size_t size); + int RAK_DLL_EXPORT _DLMallocMUnmap (void *p, size_t size); + +} + +// Call to make RakNet allocate a large block of memory, and do all subsequent allocations in that memory block +// Initial and reallocations will be done through whatever function is pointed to by yourMMapFunction, and yourDirectMMapFunction (default is malloc) +// Allocations will be freed through whatever function is pointed to by yourMUnmapFunction (default free) +void UseRaknetFixedHeap(size_t initialCapacity, + void * (*yourMMapFunction) (size_t size) = RakNet::_DLMallocMMap, + void * (*yourDirectMMapFunction) (size_t size) = RakNet::_DLMallocDirectMMap, + int (*yourMUnmapFunction) (void *p, size_t size) = RakNet::_DLMallocMUnmap); + +// Free memory allocated from UseRaknetFixedHeap +void FreeRakNetFixedHeap(void); + +// #if _USE_RAK_MEMORY_OVERRIDE==1 +// #if defined(RMO_NEW_UNDEF) +// #pragma pop_macro("new") +// #undef RMO_NEW_UNDEF +// #endif +// #endif + +#endif diff --git a/src/raknet/RakNet.vcproj b/src/raknet/RakNet.vcproj new file mode 100755 index 0000000..b8f5f07 --- /dev/null +++ b/src/raknet/RakNet.vcproj @@ -0,0 +1,845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/RakNetCommandParser.cpp b/src/raknet/RakNetCommandParser.cpp new file mode 100755 index 0000000..8e156d1 --- /dev/null +++ b/src/raknet/RakNetCommandParser.cpp @@ -0,0 +1,302 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RakNetCommandParser==1 + +#include "RakNetCommandParser.h" +#include "TransportInterface.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "RakAssert.h" +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(RakNetCommandParser,RakNetCommandParser); + +RakNetCommandParser::RakNetCommandParser() +{ + RegisterCommand(4, "Startup","( unsigned short maxConnections, unsigned short localPort, const char *forceHostAddress );"); + RegisterCommand(0,"InitializeSecurity","();"); + RegisterCommand(0,"DisableSecurity","( void );"); + RegisterCommand(1,"AddToSecurityExceptionList","( const char *ip );"); + RegisterCommand(1,"RemoveFromSecurityExceptionList","( const char *ip );"); + RegisterCommand(1,"IsInSecurityExceptionList","( const char *ip );"); + RegisterCommand(1,"SetMaximumIncomingConnections","( unsigned short numberAllowed );"); + RegisterCommand(0,"GetMaximumIncomingConnections","( void ) const;"); + RegisterCommand(4,"Connect","( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength );"); + RegisterCommand(2,"Disconnect","( unsigned int blockDuration, unsigned char orderingChannel=0 );"); + RegisterCommand(0,"IsActive","( void ) const;"); + RegisterCommand(0,"GetConnectionList","() const;"); + RegisterCommand(3,"CloseConnection","( const SystemAddress target, bool sendDisconnectionNotification, unsigned char orderingChannel=0 );"); + RegisterCommand(2,"IsConnected","( );"); + RegisterCommand(1,"GetIndexFromSystemAddress","( const SystemAddress systemAddress );"); + RegisterCommand(1,"GetSystemAddressFromIndex","( int index );"); + RegisterCommand(2,"AddToBanList","( const char *IP, RakNet::TimeMS milliseconds=0 );"); + RegisterCommand(1,"RemoveFromBanList","( const char *IP );"); + RegisterCommand(0,"ClearBanList","( void );"); + RegisterCommand(1,"IsBanned","( const char *IP );"); + RegisterCommand(1,"Ping1","( const SystemAddress target );"); + RegisterCommand(3,"Ping2","( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections );"); + RegisterCommand(1,"GetAveragePing","( const SystemAddress systemAddress );"); + RegisterCommand(1,"GetLastPing","( const SystemAddress systemAddress ) const;"); + RegisterCommand(1,"GetLowestPing","( const SystemAddress systemAddress ) const;"); + RegisterCommand(1,"SetOccasionalPing","( bool doPing );"); + RegisterCommand(2,"SetOfflinePingResponse","( const char *data, const unsigned int length );"); + RegisterCommand(0,"GetInternalID","( void ) const;"); + RegisterCommand(1,"GetExternalID","( const SystemAddress target ) const;"); + RegisterCommand(2,"SetTimeoutTime","( RakNet::TimeMS timeMS, const SystemAddress target );"); +// RegisterCommand(1,"SetMTUSize","( int size );"); + RegisterCommand(0,"GetMTUSize","( void ) const;"); + RegisterCommand(0,"GetNumberOfAddresses","( void );"); + RegisterCommand(1,"GetLocalIP","( unsigned int index );"); + RegisterCommand(1,"AllowConnectionResponseIPMigration","( bool allow );"); + RegisterCommand(4,"AdvertiseSystem","( const char *host, unsigned short remotePort, const char *data, int dataLength );"); + RegisterCommand(2,"SetIncomingPassword","( const char* passwordData, int passwordDataLength );"); + RegisterCommand(0,"GetIncomingPassword","( void );"); + RegisterCommand(0,"IsNetworkSimulatorActive","( void );"); +} +RakNetCommandParser::~RakNetCommandParser() +{ +} +void RakNetCommandParser::SetRakPeerInterface(RakNet::RakPeerInterface *rakPeer) +{ + peer=rakPeer; +} +bool RakNetCommandParser::OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString) +{ + (void) originalString; + (void) numParameters; + + if (peer==0) + return false; + + if (strcmp(command, "Startup")==0) + { + RakNet::SocketDescriptor socketDescriptor((unsigned short)atoi(parameterList[1]), parameterList[2]); + ReturnResult(peer->Startup((unsigned short)atoi(parameterList[0]), &socketDescriptor, 1), command, transport, systemAddress); + } + else if (strcmp(command, "InitializeSecurity")==0) + { + ReturnResult(peer->InitializeSecurity(parameterList[0],parameterList[1]), command, transport, systemAddress); + } + else if (strcmp(command, "DisableSecurity")==0) + { + peer->DisableSecurity(); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "AddToSecurityExceptionList")==0) + { + peer->AddToSecurityExceptionList(parameterList[1]); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "RemoveFromSecurityExceptionList")==0) + { + peer->RemoveFromSecurityExceptionList(parameterList[1]); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "IsInSecurityExceptionList")==0) + { + ReturnResult(peer->IsInSecurityExceptionList(parameterList[1]),command, transport, systemAddress); + } + else if (strcmp(command, "SetMaximumIncomingConnections")==0) + { + peer->SetMaximumIncomingConnections((unsigned short)atoi(parameterList[0])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetMaximumIncomingConnections")==0) + { + ReturnResult(peer->GetMaximumIncomingConnections(), command, transport, systemAddress); + } + else if (strcmp(command, "Connect")==0) + { + ReturnResult(peer->Connect(parameterList[0], (unsigned short)atoi(parameterList[1]),parameterList[2],atoi(parameterList[3]))==RakNet::CONNECTION_ATTEMPT_STARTED, command, transport, systemAddress); + } + else if (strcmp(command, "Disconnect")==0) + { + peer->Shutdown(atoi(parameterList[0]), (unsigned char)atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "IsActive")==0) + { + ReturnResult(peer->IsActive(), command, transport, systemAddress); + } + else if (strcmp(command, "GetConnectionList")==0) + { + SystemAddress remoteSystems[32]; + unsigned short count=32; + unsigned i; + if (peer->GetConnectionList(remoteSystems, &count)) + { + if (count==0) + { + transport->Send(systemAddress, "GetConnectionList() returned no systems connected.\r\n"); + } + else + { + transport->Send(systemAddress, "GetConnectionList() returned:\r\n"); + for (i=0; i < count; i++) + { + char str1[64]; + remoteSystems[i].ToString(true, str1); + transport->Send(systemAddress, "%i %s\r\n", i, str1); + } + } + } + else + transport->Send(systemAddress, "GetConnectionList() returned false.\r\n"); + } + else if (strcmp(command, "CloseConnection")==0) + { + peer->CloseConnection(SystemAddress(parameterList[0]), atoi(parameterList[1])!=0,(unsigned char)atoi(parameterList[2])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetConnectionState")==0) + { + ReturnResult((int) peer->GetConnectionState(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetIndexFromSystemAddress")==0) + { + ReturnResult(peer->GetIndexFromSystemAddress(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetSystemAddressFromIndex")==0) + { + ReturnResult(peer->GetSystemAddressFromIndex(atoi(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "AddToBanList")==0) + { + peer->AddToBanList(parameterList[0], atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "RemoveFromBanList")==0) + { + peer->RemoveFromBanList(parameterList[0]); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "ClearBanList")==0) + { + peer->ClearBanList(); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "IsBanned")==0) + { + ReturnResult(peer->IsBanned(parameterList[0]), command, transport, systemAddress); + } + else if (strcmp(command, "Ping1")==0) + { + peer->Ping(SystemAddress(parameterList[0])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "Ping2")==0) + { + peer->Ping(parameterList[0], (unsigned short) atoi(parameterList[1]), atoi(parameterList[2])!=0); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetAveragePing")==0) + { + ReturnResult(peer->GetAveragePing(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetLastPing")==0) + { + ReturnResult(peer->GetLastPing(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "GetLowestPing")==0) + { + ReturnResult(peer->GetLowestPing(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "SetOccasionalPing")==0) + { + peer->SetOccasionalPing(atoi(parameterList[0])!=0); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "SetOfflinePingResponse")==0) + { + peer->SetOfflinePingResponse(parameterList[0], atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetInternalID")==0) + { + ReturnResult(peer->GetInternalID(), command, transport, systemAddress); + } + else if (strcmp(command, "GetExternalID")==0) + { + ReturnResult(peer->GetExternalID(SystemAddress(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "SetTimeoutTime")==0) + { + peer->SetTimeoutTime(atoi(parameterList[0]), SystemAddress(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + /* + else if (strcmp(command, "SetMTUSize")==0) + { + ReturnResult(peer->SetMTUSize(atoi(parameterList[0]), UNASSIGNED_SYSTEM_ADDRESS), command, transport, systemAddress); + } + */ + else if (strcmp(command, "GetMTUSize")==0) + { + ReturnResult(peer->GetMTUSize(UNASSIGNED_SYSTEM_ADDRESS), command, transport, systemAddress); + } + else if (strcmp(command, "GetNumberOfAddresses")==0) + { + ReturnResult((int)peer->GetNumberOfAddresses(), command, transport, systemAddress); + } + else if (strcmp(command, "GetLocalIP")==0) + { + ReturnResult((char*) peer->GetLocalIP(atoi(parameterList[0])), command, transport, systemAddress); + } + else if (strcmp(command, "AllowConnectionResponseIPMigration")==0) + { + peer->AllowConnectionResponseIPMigration(atoi(parameterList[0])!=0); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "AdvertiseSystem")==0) + { + peer->AdvertiseSystem(parameterList[0], (unsigned short) atoi(parameterList[1]),parameterList[2],atoi(parameterList[3])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "SetIncomingPassword")==0) + { + peer->SetIncomingPassword(parameterList[0], atoi(parameterList[1])); + ReturnResult(command, transport, systemAddress); + } + else if (strcmp(command, "GetIncomingPassword")==0) + { + char password[256]; + int passwordLength; + peer->GetIncomingPassword(password, &passwordLength); + if (passwordLength) + ReturnResult((char*)password, command, transport, systemAddress); + else + ReturnResult(0, command, transport, systemAddress); + } + + return true; +} +const char *RakNetCommandParser::GetName(void) const +{ + return "RakNet"; +} +void RakNetCommandParser::SendHelp(TransportInterface *transport, const SystemAddress &systemAddress) +{ + if (peer) + { + transport->Send(systemAddress, "The RakNet parser provides mirror functions to RakPeer\r\n"); + transport->Send(systemAddress, "SystemAddresss take two parameters: send .\r\n"); + transport->Send(systemAddress, "For bool, send 1 or 0.\r\n"); + } + else + { + transport->Send(systemAddress, "Parser not active. Call SetRakPeerInterface.\r\n"); + } +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/RakNetCommandParser.h b/src/raknet/RakNetCommandParser.h new file mode 100755 index 0000000..3b684e4 --- /dev/null +++ b/src/raknet/RakNetCommandParser.h @@ -0,0 +1,63 @@ +/// \file +/// \brief Contains RakNetCommandParser , used to send commands to an instance of RakPeer +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_RakNetCommandParser==1 + +#ifndef __RAKNET_COMMAND_PARSER +#define __RAKNET_COMMAND_PARSER + +#include "CommandParserInterface.h" +#include "Export.h" + +namespace RakNet +{ +class RakPeerInterface; + +/// \brief This allows a console client to call most of the functions in RakPeer +class RAK_DLL_EXPORT RakNetCommandParser : public CommandParserInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RakNetCommandParser) + + RakNetCommandParser(); + ~RakNetCommandParser(); + + /// Given \a command with parameters \a parameterList , do whatever processing you wish. + /// \param[in] command The command to process + /// \param[in] numParameters How many parameters were passed along with the command + /// \param[in] parameterList The list of parameters. parameterList[0] is the first parameter and so on. + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that sent this command. + /// \param[in] originalString The string that was actually sent over the network, in case you want to do your own parsing + bool OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString); + + /// You are responsible for overriding this function and returning a static string, which will identifier your parser. + /// This should return a static string + /// \return The name that you return. + const char *GetName(void) const; + + /// A callback for when you are expected to send a brief description of your parser to \a systemAddress + /// \param[in] transport The transport interface we can use to write to + /// \param[in] systemAddress The player that requested help. + void SendHelp(TransportInterface *transport, const SystemAddress &systemAddress); + + /// Records the instance of RakPeer to perform the desired commands on + /// \param[in] rakPeer The RakPeer instance, or a derived class (e.g. RakPeer or RakPeer) + void SetRakPeerInterface(RakNet::RakPeerInterface *rakPeer); +protected: + + /// Which instance of RakPeer we are working on. Set from SetRakPeerInterface() + RakPeerInterface *peer; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/RakNetDefines.h b/src/raknet/RakNetDefines.h new file mode 100755 index 0000000..78822f6 --- /dev/null +++ b/src/raknet/RakNetDefines.h @@ -0,0 +1,169 @@ +#ifndef __RAKNET_DEFINES_H +#define __RAKNET_DEFINES_H + +// If you want to change these defines, put them in RakNetDefinesOverrides so your changes are not lost when updating RakNet +// The user should not edit this file +#include "RakNetDefinesOverrides.h" + +/// Define __GET_TIME_64BIT to have RakNet::TimeMS use a 64, rather than 32 bit value. A 32 bit value will overflow after about 5 weeks. +/// However, this doubles the bandwidth use for sending times, so don't do it unless you have a reason to. +/// Comment out if you are using the iPod Touch TG. See http://www.jenkinssoftware.com/forum/index.php?topic=2717.0 +/// This must be the same on all systems, or they won't connect +#ifndef __GET_TIME_64BIT +#define __GET_TIME_64BIT 1 +#endif + +// Define _FILE_AND_LINE_ to "",0 if you want to strip out file and line info for memory tracking from the EXE +#ifndef _FILE_AND_LINE_ +#define _FILE_AND_LINE_ __FILE__,__LINE__ +#endif + +/// Define __BITSTREAM_NATIVE_END to NOT support endian swapping in the BitStream class. This is faster and is what you should use +/// unless you actually plan to have different endianness systems connect to each other +/// Enabled by default. +// #define __BITSTREAM_NATIVE_END + +/// Maximum (stack) size to use with _alloca before using new and delete instead. +#ifndef MAX_ALLOCA_STACK_ALLOCATION +#define MAX_ALLOCA_STACK_ALLOCATION 1048576 +#endif + +// Use WaitForSingleObject instead of sleep. +// Defining it plays nicer with other systems, and uses less CPU, but gives worse RakNet performance +// Undefining it uses more CPU time, but is more responsive and faster. +#ifndef _WIN32_WCE +#define USE_WAIT_FOR_MULTIPLE_EVENTS +#endif + +/// Uncomment to use RakMemoryOverride for custom memory tracking +/// See RakMemoryOverride.h. +#ifndef _USE_RAK_MEMORY_OVERRIDE +#define _USE_RAK_MEMORY_OVERRIDE 0 +#endif + +/// If defined, OpenSSL is enabled for the class TCPInterface +/// This is necessary to use the SendEmail class with Google POP servers +/// Note that OpenSSL carries its own license restrictions that you should be aware of. If you don't agree, don't enable this define +/// This also requires that you enable header search paths to DependentExtensions\openssl-0.9.8g +// #define OPEN_SSL_CLIENT_SUPPORT +#ifndef OPEN_SSL_CLIENT_SUPPORT +#define OPEN_SSL_CLIENT_SUPPORT 0 +#endif + +/// Threshold at which to do a malloc / free rather than pushing data onto a fixed stack for the bitstream class +/// Arbitrary size, just picking something likely to be larger than most packets +#ifndef BITSTREAM_STACK_ALLOCATION_SIZE +#define BITSTREAM_STACK_ALLOCATION_SIZE 256 +#endif + +// Redefine if you want to disable or change the target for debug RAKNET_DEBUG_PRINTF +#ifndef RAKNET_DEBUG_PRINTF +#define RAKNET_DEBUG_PRINTF printf +#endif + +// Maximum number of local IP addresses supported +#ifndef MAXIMUM_NUMBER_OF_INTERNAL_IDS +#define MAXIMUM_NUMBER_OF_INTERNAL_IDS 10 +#endif + +#ifndef RakAssert + + + + +#if defined(_DEBUG) +#define RakAssert(x) assert(x); +#else +#define RakAssert(x) +#endif + +#endif + +/// This controls the amount of memory used per connection. +/// This many datagrams are tracked by datagramNumber. If more than this many datagrams are sent, then an ack for an older datagram would be ignored +/// This results in an unnecessary resend in that case +#ifndef DATAGRAM_MESSAGE_ID_ARRAY_LENGTH +#define DATAGRAM_MESSAGE_ID_ARRAY_LENGTH 512 +#endif + +/// This is the maximum number of reliable user messages that can be on the wire at a time +/// If this is too low, then high ping connections with a large throughput will be underutilized +/// This will be evident because RakNetStatistics::messagesInSend buffer will increase over time, yet at the same time the outgoing bandwidth per second is less than your connection supports +#ifndef RESEND_BUFFER_ARRAY_LENGTH +#define RESEND_BUFFER_ARRAY_LENGTH 512 +#define RESEND_BUFFER_ARRAY_MASK 511 +#endif + +/// Uncomment if you want to link in the DLMalloc library to use with RakMemoryOverride +// #define _LINK_DL_MALLOC + +#ifndef GET_TIME_SPIKE_LIMIT +/// Workaround for http://support.microsoft.com/kb/274323 +/// If two calls between RakNet::GetTime() happen farther apart than this time in microseconds, this delta will be returned instead +/// Note: This will cause ID_TIMESTAMP to be temporarily inaccurate if you set a breakpoint that pauses the UpdateNetworkLoop() thread in RakPeer +/// Define in RakNetDefinesOverrides.h to enable (non-zero) or disable (0) +#define GET_TIME_SPIKE_LIMIT 0 +#endif + +// Use sliding window congestion control instead of ping based congestion control +#ifndef USE_SLIDING_WINDOW_CONGESTION_CONTROL +#define USE_SLIDING_WINDOW_CONGESTION_CONTROL 1 +#endif + +// When a large message is arriving, preallocate the memory for the entire block +// This results in large messages not taking up time to reassembly with memcpy, but is vulnerable to attackers causing the host to run out of memory +#ifndef PREALLOCATE_LARGE_MESSAGES +#define PREALLOCATE_LARGE_MESSAGES 0 +#endif + +#ifndef RAKNET_SUPPORT_IPV6 +#define RAKNET_SUPPORT_IPV6 0 +#endif + + + + + + + + + + + +#ifndef RAKSTRING_TYPE +#if defined(_UNICODE) +#define RAKSTRING_TYPE RakWString +#define RAKSTRING_TYPE_IS_UNICODE 1 +#else +#define RAKSTRING_TYPE RakString +#define RAKSTRING_TYPE_IS_UNICODE 0 +#endif +#endif + +#ifndef RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS +#define RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS 32 +#endif + +#ifndef RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH +#define RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH 32 +#endif + +#ifndef XBOX_BYPASS_SECURITY +#define XBOX_BYPASS_SECURITY 1 +#endif + +// Controls how many allocations occur at once for the memory pool of incoming datagrams waiting to be transferred between the recvfrom thread and the main update thread +// Has large effect on memory usage, per instance of RakPeer. Approximately MAXIMUM_MTU_SIZE*BUFFERED_PACKETS_PAGE_SIZE bytes, once after calling RakPeer::Startup() +#ifndef BUFFERED_PACKETS_PAGE_SIZE +#define BUFFERED_PACKETS_PAGE_SIZE 8 +#endif + +// Controls how many allocations occur at once for the memory pool of incoming or outgoing datagrams. +// Has small effect on memory usage per connection. Uses about 256 bytes*INTERNAL_PACKET_PAGE_SIZE per connection +#ifndef INTERNAL_PACKET_PAGE_SIZE +#define INTERNAL_PACKET_PAGE_SIZE 8 +#endif + +//#define USE_THREADED_SEND + +#endif // __RAKNET_DEFINES_H diff --git a/src/raknet/RakNetDefinesOverrides.h b/src/raknet/RakNetDefinesOverrides.h new file mode 100755 index 0000000..7613ea2 --- /dev/null +++ b/src/raknet/RakNetDefinesOverrides.h @@ -0,0 +1,2 @@ +// USER EDITABLE FILE + diff --git a/src/raknet/RakNetSmartPtr.h b/src/raknet/RakNetSmartPtr.h new file mode 100755 index 0000000..fb9b9d8 --- /dev/null +++ b/src/raknet/RakNetSmartPtr.h @@ -0,0 +1,173 @@ +#ifndef __RAKNET_SMART_PTR_H +#define __RAKNET_SMART_PTR_H + +// From http://www.codeproject.com/KB/cpp/SmartPointers.aspx +// with bugs fixed + +#include "RakMemoryOverride.h" +#include "Export.h" + +//static int allocCount=0; +//static int deallocCount=0; + +namespace RakNet +{ + +class RAK_DLL_EXPORT ReferenceCounter +{ +private: + int refCount; + +public: + ReferenceCounter() {refCount=0;} + ~ReferenceCounter() {} + void AddRef() {refCount++;} + int Release() {return --refCount;} + int GetRefCount(void) const {return refCount;} +}; + +template < typename T > class RAK_DLL_EXPORT RakNetSmartPtr +{ +private: + T* ptr; // pointer + ReferenceCounter* reference; // Reference refCount + +public: + RakNetSmartPtr() : ptr(0), reference(0) + { + // Do not allocate by default, wasteful if we just have a list of preallocated and unassigend smart pointers + } + + RakNetSmartPtr(T* pValue) : ptr(pValue) + { + reference = RakNet::OP_NEW(_FILE_AND_LINE_); + reference->AddRef(); + +// allocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + + RakNetSmartPtr(const RakNetSmartPtr& sp) : ptr(sp.ptr), reference(sp.reference) + { + if (reference) + reference->AddRef(); + } + + ~RakNetSmartPtr() + { + if(reference && reference->Release() == 0) + { + RakNet::OP_DELETE(ptr, _FILE_AND_LINE_); + RakNet::OP_DELETE(reference, _FILE_AND_LINE_); + +// deallocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + } + + bool IsNull(void) const + { + return ptr==0; + } + + void SetNull(void) + { + if(reference && reference->Release() == 0) + { + RakNet::OP_DELETE(ptr, _FILE_AND_LINE_); + RakNet::OP_DELETE(reference, _FILE_AND_LINE_); + +// deallocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + ptr=0; + reference=0; + } + + bool IsUnique(void) const + { + return reference->GetRefCount()==1; + } + + // Allow you to change the values of the internal contents of the pointer, without changing what is pointed to by other instances of the smart pointer + void Clone(bool copyContents) + { + if (IsUnique()==false) + { + reference->Release(); + + reference = RakNet::OP_NEW(_FILE_AND_LINE_); + reference->AddRef(); + T* oldPtr=ptr; + ptr=RakNet::OP_NEW(_FILE_AND_LINE_); + if (copyContents) + *ptr=*oldPtr; + } + } + + int GetRefCount(void) const + { + return reference->GetRefCount(); + } + + T& operator* () + { + return *ptr; + } + + const T& operator* () const + { + return *ptr; + } + + T* operator-> () + { + return ptr; + } + + const T* operator-> () const + { + return ptr; + } + + bool operator == (const RakNetSmartPtr& sp) + { + return ptr == sp.ptr; + } + bool operator<( const RakNetSmartPtr &right ) {return ptr < right.ptr;} + bool operator>( const RakNetSmartPtr &right ) {return ptr > right.ptr;} + + bool operator != (const RakNetSmartPtr& sp) + { + return ptr != sp.ptr; + } + + RakNetSmartPtr& operator = (const RakNetSmartPtr& sp) + { + // Assignment operator + + if (this != &sp) // Avoid self assignment + { + if(reference && reference->Release() == 0) + { + RakNet::OP_DELETE(ptr, _FILE_AND_LINE_); + RakNet::OP_DELETE(reference, _FILE_AND_LINE_); + +// deallocCount+=2; +// printf("allocCount=%i deallocCount=%i Line=%i\n",allocCount, deallocCount, __LINE__); + } + + ptr = sp.ptr; + reference = sp.reference; + if (reference) + reference->AddRef(); + } + return *this; + } + + +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/RakNetSocket.cpp b/src/raknet/RakNetSocket.cpp new file mode 100755 index 0000000..a3903b1 --- /dev/null +++ b/src/raknet/RakNetSocket.cpp @@ -0,0 +1,25 @@ +#include "RakNetSocket.h" +#include "SocketIncludes.h" +#include "SocketDefines.h" + +using namespace RakNet; + +RakNetSocket::RakNetSocket() { + s = (unsigned int)-1; +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + recvEvent=INVALID_HANDLE_VALUE; +#endif +} +RakNetSocket::~RakNetSocket() +{ + if ((SOCKET)s != (SOCKET)-1) + closesocket__(s); + +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + if (recvEvent!=INVALID_HANDLE_VALUE) + { + CloseHandle( recvEvent ); + recvEvent = INVALID_HANDLE_VALUE; + } +#endif +} diff --git a/src/raknet/RakNetSocket.h b/src/raknet/RakNetSocket.h new file mode 100755 index 0000000..49c9557 --- /dev/null +++ b/src/raknet/RakNetSocket.h @@ -0,0 +1,38 @@ +#ifndef __RAKNET_SOCKET_H +#define __RAKNET_SOCKET_H + +#include "RakNetTypes.h" +#include "RakNetDefines.h" +#include "Export.h" + +namespace RakNet +{ + +struct RAK_DLL_EXPORT RakNetSocket +{ + RakNetSocket(); + ~RakNetSocket(); + // SocketIncludes.h includes Windows.h, which messes up a lot of compiles + // SOCKET s; + unsigned int s; + unsigned int userConnectionSocketIndex; + SystemAddress boundAddress; + unsigned short socketFamily; + +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + void* recvEvent; +#endif + + + + + + + unsigned short remotePortRakNetWasStartedOn_PS3_PSP2; + + unsigned int extraSocketOptions; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/RakNetStatistics.cpp b/src/raknet/RakNetStatistics.cpp new file mode 100755 index 0000000..eba7885 --- /dev/null +++ b/src/raknet/RakNetStatistics.cpp @@ -0,0 +1,148 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "RakNetStatistics.h" +#include // sprintf +#include "GetTime.h" +#include "RakString.h" + +using namespace RakNet; + +// Verbosity level currently supports 0 (low), 1 (medium), 2 (high) +// Buffer must be hold enough to hold the output string. See the source to get an idea of how many bytes will be output +void RAK_DLL_EXPORT RakNet::StatisticsToString( RakNetStatistics *s, char *buffer, int verbosityLevel ) +{ + if ( s == 0 ) + { + sprintf( buffer, "stats is a NULL pointer in statsToString\n" ); + return ; + } + + if (verbosityLevel==0) + { + sprintf(buffer, + "Bytes per second sent %llu\n" + "Bytes per second received %llu\n" + "Current packetloss %.1f%%\n", + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_RECEIVED], + s->packetlossLastSecond*100.0f + ); + } + else if (verbosityLevel==1) + { + sprintf(buffer, + "Actual bytes per second sent %llu\n" + "Actual bytes per second received %llu\n" + "Message bytes per second pushed %llu\n" + "Total actual bytes sent %llu\n" + "Total actual bytes received %llu\n" + "Total message bytes pushed %llu\n" + "Current packetloss %.1f%%\n" + "Average packetloss %.1f%%\n" + "Elapsed connection time in seconds %llu\n", + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_PUSHED], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_SENT], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_PUSHED], + s->packetlossLastSecond*100.0f, + s->packetlossTotal*100.0f, + (long long unsigned int) (uint64_t)((RakNet::GetTimeUS()-s->connectionStartTime)/1000000) + ); + + if (s->BPSLimitByCongestionControl!=0) + { + char buff2[128]; + sprintf(buff2, + "Send capacity %llu bytes per second (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByCongestionControl, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByCongestionControl + ); + strcat(buffer,buff2); + } + if (s->BPSLimitByOutgoingBandwidthLimit!=0) + { + char buff2[128]; + sprintf(buff2, + "Send limit %llu (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByOutgoingBandwidthLimit, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByOutgoingBandwidthLimit + ); + strcat(buffer,buff2); + } + } + else + { + sprintf(buffer, + "Actual bytes per second sent %llu\n" + "Actual bytes per second received %llu\n" + "Message bytes per second sent %llu\n" + "Message bytes per second resent %llu\n" + "Message bytes per second pushed %llu\n" + "Message bytes per second processed %llu\n" + "Message bytes per second ignored %llu\n" + "Total bytes sent %llu\n" + "Total bytes received %llu\n" + "Total message bytes sent %llu\n" + "Total message bytes resent %llu\n" + "Total message bytes pushed %llu\n" + "Total message bytes received %llu\n" + "Total message bytes ignored %llu\n" + "Messages in send buffer, by priority %i,%i,%i,%i\n" + "Bytes in send buffer, by priority %i,%i,%i,%i\n" + "Messages in resend buffer %i\n" + "Bytes in resend buffer %llu\n" + "Current packetloss %.1f%%\n" + "Average packetloss %.1f%%\n" + "Elapsed connection time in seconds %llu\n", + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_SENT], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_PUSHED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_RECEIVED_PROCESSED], + (long long unsigned int) s->valueOverLastSecond[USER_MESSAGE_BYTES_RECEIVED_IGNORED], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_SENT], + (long long unsigned int) s->runningTotal[ACTUAL_BYTES_RECEIVED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_SENT], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_RESENT], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_PUSHED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_RECEIVED_PROCESSED], + (long long unsigned int) s->runningTotal[USER_MESSAGE_BYTES_RECEIVED_IGNORED], + s->messageInSendBuffer[IMMEDIATE_PRIORITY],s->messageInSendBuffer[HIGH_PRIORITY],s->messageInSendBuffer[MEDIUM_PRIORITY],s->messageInSendBuffer[LOW_PRIORITY], + (unsigned int) s->bytesInSendBuffer[IMMEDIATE_PRIORITY],(unsigned int) s->bytesInSendBuffer[HIGH_PRIORITY],(unsigned int) s->bytesInSendBuffer[MEDIUM_PRIORITY],(unsigned int) s->bytesInSendBuffer[LOW_PRIORITY], + s->messagesInResendBuffer, + (long long unsigned int) s->bytesInResendBuffer, + s->packetlossLastSecond*100.0f, + s->packetlossTotal*100.0f, + (long long unsigned int) (uint64_t)((RakNet::GetTimeUS()-s->connectionStartTime)/1000000) + ); + + if (s->BPSLimitByCongestionControl!=0) + { + char buff2[128]; + sprintf(buff2, + "Send capacity %llu bytes per second (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByCongestionControl, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByCongestionControl + ); + strcat(buffer,buff2); + } + if (s->BPSLimitByOutgoingBandwidthLimit!=0) + { + char buff2[128]; + sprintf(buff2, + "Send limit %llu (%.0f%%)\n", + (long long unsigned int) s->BPSLimitByOutgoingBandwidthLimit, + 100.0f * s->valueOverLastSecond[ACTUAL_BYTES_SENT] / s->BPSLimitByOutgoingBandwidthLimit + ); + strcat(buffer,buff2); + } + } +} diff --git a/src/raknet/RakNetStatistics.h b/src/raknet/RakNetStatistics.h new file mode 100755 index 0000000..4f9cd6b --- /dev/null +++ b/src/raknet/RakNetStatistics.h @@ -0,0 +1,126 @@ +/// \file +/// \brief A structure that holds all statistical data returned by RakNet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + + +#ifndef __RAK_NET_STATISTICS_H +#define __RAK_NET_STATISTICS_H + +#include "PacketPriority.h" +#include "Export.h" +#include "RakNetTypes.h" + +namespace RakNet +{ + +enum RNSPerSecondMetrics +{ + /// How many bytes per pushed via a call to RakPeerInterface::Send() + USER_MESSAGE_BYTES_PUSHED, + + /// How many user message bytes were sent via a call to RakPeerInterface::Send(). This is less than or equal to USER_MESSAGE_BYTES_PUSHED. + /// A message would be pushed, but not yet sent, due to congestion control + USER_MESSAGE_BYTES_SENT, + + /// How many user message bytes were resent. A message is resent if it is marked as reliable, and either the message didn't arrive or the message ack didn't arrive. + USER_MESSAGE_BYTES_RESENT, + + /// How many user message bytes were received, and processed successfully. + USER_MESSAGE_BYTES_RECEIVED_PROCESSED, + + /// How many user message bytes were received, but ignored due to data format errors. This will usually be 0. + USER_MESSAGE_BYTES_RECEIVED_IGNORED, + + /// How many actual bytes were sent, including per-message and per-datagram overhead, and reliable message acks + ACTUAL_BYTES_SENT, + + /// How many actual bytes were received, including overead and acks. + ACTUAL_BYTES_RECEIVED, + + /// \internal + RNS_PER_SECOND_METRICS_COUNT +}; + +/// \brief Network Statisics Usage +/// +/// Store Statistics information related to network usage +struct RAK_DLL_EXPORT RakNetStatistics +{ + /// For each type in RNSPerSecondMetrics, what is the value over the last 1 second? + uint64_t valueOverLastSecond[RNS_PER_SECOND_METRICS_COUNT]; + + /// For each type in RNSPerSecondMetrics, what is the total value over the lifetime of the connection? + uint64_t runningTotal[RNS_PER_SECOND_METRICS_COUNT]; + + /// When did the connection start? + /// \sa RakNet::GetTimeUS() + RakNet::TimeUS connectionStartTime; + + /// Is our current send rate throttled by congestion control? + /// This value should be true if you send more data per second than your bandwidth capacity + bool isLimitedByCongestionControl; + + /// If \a isLimitedByCongestionControl is true, what is the limit, in bytes per second? + uint64_t BPSLimitByCongestionControl; + + /// Is our current send rate throttled by a call to RakPeer::SetPerConnectionOutgoingBandwidthLimit()? + bool isLimitedByOutgoingBandwidthLimit; + + /// If \a isLimitedByOutgoingBandwidthLimit is true, what is the limit, in bytes per second? + uint64_t BPSLimitByOutgoingBandwidthLimit; + + /// For each priority level, how many messages are waiting to be sent out? + unsigned int messageInSendBuffer[NUMBER_OF_PRIORITIES]; + + /// For each priority level, how many bytes are waiting to be sent out? + double bytesInSendBuffer[NUMBER_OF_PRIORITIES]; + + /// How many messages are waiting in the resend buffer? This includes messages waiting for an ack, so should normally be a small value + /// If the value is rising over time, you are exceeding the bandwidth capacity. See BPSLimitByCongestionControl + unsigned int messagesInResendBuffer; + + /// How many bytes are waiting in the resend buffer. See also messagesInResendBuffer + uint64_t bytesInResendBuffer; + + /// Over the last second, what was our packetloss? This number will range from 0.0 (for none) to 1.0 (for 100%) + float packetlossLastSecond; + + /// What is the average total packetloss over the lifetime of the connection? + float packetlossTotal; + + RakNetStatistics& operator +=(const RakNetStatistics& other) + { + unsigned i; + for (i=0; i < NUMBER_OF_PRIORITIES; i++) + { + messageInSendBuffer[i]+=other.messageInSendBuffer[i]; + bytesInSendBuffer[i]+=other.bytesInSendBuffer[i]; + } + + for (i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + valueOverLastSecond[i]+=other.valueOverLastSecond[i]; + runningTotal[i]+=other.runningTotal[i]; + } + + return *this; + } +}; + +/// Verbosity level currently supports 0 (low), 1 (medium), 2 (high) +/// \param[in] s The Statistical information to format out +/// \param[in] buffer The buffer containing a formated report +/// \param[in] verbosityLevel +/// 0 low +/// 1 medium +/// 2 high +/// 3 debugging congestion control +void RAK_DLL_EXPORT StatisticsToString( RakNetStatistics *s, char *buffer, int verbosityLevel ); + +} // namespace RakNet + +#endif diff --git a/src/raknet/RakNetTime.h b/src/raknet/RakNetTime.h new file mode 100755 index 0000000..f9e7cd9 --- /dev/null +++ b/src/raknet/RakNetTime.h @@ -0,0 +1,23 @@ +#ifndef __RAKNET_TIME_H +#define __RAKNET_TIME_H + +#include "NativeTypes.h" +#include "RakNetDefines.h" + +namespace RakNet { + +// Define __GET_TIME_64BIT if you want to use large types for GetTime (takes more bandwidth when you transmit time though!) +// You would want to do this if your system is going to run long enough to overflow the millisecond counter (over a month) +#if __GET_TIME_64BIT==1 +typedef uint64_t Time; +typedef uint32_t TimeMS; +typedef uint64_t TimeUS; +#else +typedef uint32_t Time; +typedef uint32_t TimeMS; +typedef uint64_t TimeUS; +#endif + +}; // namespace RakNet + +#endif diff --git a/src/raknet/RakNetTransport2.cpp b/src/raknet/RakNetTransport2.cpp new file mode 100755 index 0000000..514318f --- /dev/null +++ b/src/raknet/RakNetTransport2.cpp @@ -0,0 +1,128 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 + +#include "RakNetTransport2.h" + +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include +#include +#include +#include "LinuxStrings.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(RakNetTransport2,RakNetTransport2); + +RakNetTransport2::RakNetTransport2() +{ +} +RakNetTransport2::~RakNetTransport2() +{ + Stop(); +} +bool RakNetTransport2::Start(unsigned short port, bool serverMode) +{ + (void) port; + (void) serverMode; + return true; +} +void RakNetTransport2::Stop(void) +{ + newConnections.Clear(_FILE_AND_LINE_); + lostConnections.Clear(_FILE_AND_LINE_); + for (unsigned int i=0; i < packetQueue.Size(); i++) + { + rakFree_Ex(packetQueue[i]->data,_FILE_AND_LINE_); + RakNet::OP_DELETE(packetQueue[i],_FILE_AND_LINE_); + } + packetQueue.Clear(_FILE_AND_LINE_); +} +void RakNetTransport2::Send( SystemAddress systemAddress, const char *data, ... ) +{ + if (data==0 || data[0]==0) return; + + char text[REMOTE_MAX_TEXT_INPUT]; + va_list ap; + va_start(ap, data); + _vsnprintf(text, REMOTE_MAX_TEXT_INPUT, data, ap); + va_end(ap); + text[REMOTE_MAX_TEXT_INPUT-1]=0; + + RakNet::BitStream str; + str.Write((MessageID)ID_TRANSPORT_STRING); + str.Write(text, (int) strlen(text)); + str.Write((unsigned char) 0); // Null terminate the string + rakPeerInterface->Send(&str, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, systemAddress, (systemAddress==UNASSIGNED_SYSTEM_ADDRESS)!=0); +} +void RakNetTransport2::CloseConnection( SystemAddress systemAddress ) +{ + rakPeerInterface->CloseConnection(systemAddress, true, 0); +} +Packet* RakNetTransport2::Receive( void ) +{ + if (packetQueue.Size()==0) + return 0; + return packetQueue.Pop(); +} +SystemAddress RakNetTransport2::HasNewIncomingConnection(void) +{ + if (newConnections.Size()) + return newConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +SystemAddress RakNetTransport2::HasLostConnection(void) +{ + if (lostConnections.Size()) + return lostConnections.Pop(); + return UNASSIGNED_SYSTEM_ADDRESS; +} +void RakNetTransport2::DeallocatePacket( Packet *packet ) +{ + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(packet, _FILE_AND_LINE_ ); +} +PluginReceiveResult RakNetTransport2::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_TRANSPORT_STRING: + { + if (packet->length==sizeof(MessageID)) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + Packet *p = RakNet::OP_NEW(_FILE_AND_LINE_); + *p=*packet; + p->bitSize-=8; + p->length--; + p->data=(unsigned char*) rakMalloc_Ex(p->length,_FILE_AND_LINE_); + memcpy(p->data, packet->data+1, p->length); + packetQueue.Push(p, _FILE_AND_LINE_ ); + + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + return RR_CONTINUE_PROCESSING; +} +void RakNetTransport2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) rakNetGUID; + (void) lostConnectionReason; + lostConnections.Push(systemAddress, _FILE_AND_LINE_ ); +} +void RakNetTransport2::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) rakNetGUID; + (void) isIncoming; + newConnections.Push(systemAddress, _FILE_AND_LINE_ ); +} +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/RakNetTransport2.h b/src/raknet/RakNetTransport2.h new file mode 100755 index 0000000..a8b522d --- /dev/null +++ b/src/raknet/RakNetTransport2.h @@ -0,0 +1,102 @@ +/// \file +/// \brief Contains RakNetTransportCommandParser and RakNetTransport used to provide a secure console connection. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 + +#ifndef __RAKNET_TRANSPORT_2 +#define __RAKNET_TRANSPORT_2 + +#include "TransportInterface.h" +#include "DS_Queue.h" +#include "CommandParserInterface.h" +#include "PluginInterface2.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class BitStream; +class RakPeerInterface; +class RakNetTransport; + +/// \defgroup RAKNET_TRANSPORT_GROUP RakNetTransport +/// \brief UDP based transport implementation for the ConsoleServer +/// \details +/// \ingroup PLUGINS_GROUP + +/// \brief Use RakNetTransport if you need a secure connection between the client and the console server. +/// \details RakNetTransport automatically initializes security for the system. Use the project CommandConsoleClient to connect +/// To the ConsoleServer if you use RakNetTransport +/// \ingroup RAKNET_TRANSPORT_GROUP +class RAK_DLL_EXPORT RakNetTransport2 : public TransportInterface, public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RakNetTransport2) + + RakNetTransport2(); + virtual ~RakNetTransport2(); + + /// Start the transport provider on the indicated port. + /// \param[in] port The port to start the transport provider on + /// \param[in] serverMode If true, you should allow incoming connections (I don't actually use this anywhere) + /// \return Return true on success, false on failure. + bool Start(unsigned short port, bool serverMode); + + /// Stop the transport provider. You can clear memory and shutdown threads here. + void Stop(void); + + /// Send a null-terminated string to \a systemAddress + /// If your transport method requires particular formatting of the outgoing data (e.g. you don't just send strings) you can do it here + /// and parse it out in Receive(). + /// \param[in] systemAddress The player to send the string to + /// \param[in] data format specifier - same as RAKNET_DEBUG_PRINTF + /// \param[in] ... format specification arguments - same as RAKNET_DEBUG_PRINTF + void Send( SystemAddress systemAddress, const char *data, ... ); + + /// Disconnect \a systemAddress . The binary address and port defines the SystemAddress structure. + /// \param[in] systemAddress The player/address to disconnect + void CloseConnection( SystemAddress systemAddress ); + + /// Return a string. The string should be allocated and written to Packet::data . + /// The byte length should be written to Packet::length . The player/address should be written to Packet::systemAddress + /// If your transport protocol adds special formatting to the data stream you should parse it out before returning it in the packet + /// and thus only return a string in Packet::data + /// \return The packet structure containing the result of Receive, or 0 if no data is available + Packet* Receive( void ); + + /// Deallocate the Packet structure returned by Receive + /// \param[in] The packet to deallocate + void DeallocatePacket( Packet *packet ); + + /// If a new system connects to you, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + SystemAddress HasNewIncomingConnection(void); + + /// If a system loses the connection, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + SystemAddress HasLostConnection(void); + + virtual CommandParserInterface* GetCommandParser(void) {return 0;} + + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); +protected: + DataStructures::Queue newConnections, lostConnections; + DataStructures::Queue packetQueue; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/RakNetTypes.cpp b/src/raknet/RakNetTypes.cpp new file mode 100755 index 0000000..d39af87 --- /dev/null +++ b/src/raknet/RakNetTypes.cpp @@ -0,0 +1,725 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "RakNetTypes.h" +#include "RakAssert.h" +#include +#include +#include "WindowsIncludes.h" +#include "WSAStartupSingleton.h" +#include "SocketDefines.h" + + +#if defined(_WIN32) +// extern __int64 _strtoui64(const char*, char**, int); // needed for Code::Blocks. Does not compile on Visual Studio 2010 +// IP_DONTFRAGMENT is different between winsock 1 and winsock 2. Therefore, Winsock2.h must be linked againt Ws2_32.lib +// winsock.h must be linked against WSock32.lib. If these two are mixed up the flag won't work correctly +#include + +#else +#include +#include +#include +#endif + +#include // strncasecmp +#include "Itoa.h" +#include "SocketLayer.h" +#include "SuperFastHash.h" +#include + +using namespace RakNet; + +const char *IPV6_LOOPBACK="::1"; +const char *IPV4_LOOPBACK="127.0.0.1"; + +AddressOrGUID::AddressOrGUID( Packet *packet ) +{ + rakNetGuid=packet->guid; + systemAddress=packet->systemAddress; +} + +unsigned long AddressOrGUID::ToInteger( const AddressOrGUID &aog ) +{ + if (aog.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return RakNetGUID::ToUint32(aog.rakNetGuid); + return SystemAddress::ToInteger(aog.systemAddress); +} +const char *AddressOrGUID::ToString(bool writePort) const +{ + if (rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return rakNetGuid.ToString(); + return systemAddress.ToString(writePort); +} +void AddressOrGUID::ToString(bool writePort, char *dest) const +{ + if (rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return rakNetGuid.ToString(dest); + return systemAddress.ToString(writePort,dest); +} +bool RakNet::NonNumericHostString( const char *host ) +{ + if ( host[ 0 ] >= '0' && host[ 0 ] <= '9' ) + return false; + + if ( (host[ 0 ] == '-') && ( host[ 1 ] >= '0' && host[ 1 ] <= '9' ) ) + return false; + + if ( strstr(host,":") ) + return false; + + return true; +} + +SocketDescriptor::SocketDescriptor() {port=0; hostAddress[0]=0; remotePortRakNetWasStartedOn_PS3_PSP2=0; extraSocketOptions=0; socketFamily=AF_INET;} +SocketDescriptor::SocketDescriptor(unsigned short _port, const char *_hostAddress) +{ + remotePortRakNetWasStartedOn_PS3_PSP2=0; + port=_port; + if (_hostAddress) + strcpy(hostAddress, _hostAddress); + else + hostAddress[0]=0; + extraSocketOptions=0; + socketFamily=AF_INET; +} + +// Defaults to not in peer to peer mode for NetworkIDs. This only sends the localSystemAddress portion in the BitStream class +// This is what you want for client/server, where the server assigns all NetworkIDs and it is unnecessary to transmit the full structure. +// For peer to peer, this will transmit the systemAddress of the system that created the object in addition to localSystemAddress. This allows +// Any system to create unique ids locally. +// All systems must use the same value for this variable. +//bool RAK_DLL_EXPORT NetworkID::peerToPeerMode=false; + +SystemAddress& SystemAddress::operator = ( const SystemAddress& input ) +{ + memcpy(&address, &input.address, sizeof(address)); + systemIndex = input.systemIndex; + debugPort = input.debugPort; + return *this; +} +bool SystemAddress::EqualsExcludingPort( const SystemAddress& right ) const +{ + return (address.addr4.sin_family==AF_INET && address.addr4.sin_addr.s_addr==right.address.addr4.sin_addr.s_addr) +#if RAKNET_SUPPORT_IPV6==1 + || (address.addr4.sin_family==AF_INET6 && memcmp(address.addr6.sin6_addr.s6_addr, right.address.addr6.sin6_addr.s6_addr, sizeof(address.addr6.sin6_addr.s6_addr))==0) +#endif + ; +} +unsigned short SystemAddress::GetPort(void) const +{ + return ntohs(address.addr4.sin_port); +} +unsigned short SystemAddress::GetPortNetworkOrder(void) const +{ + return address.addr4.sin_port; +} +void SystemAddress::SetPort(unsigned short s) +{ + address.addr4.sin_port=htons(s); + debugPort=s; +} +void SystemAddress::SetPortNetworkOrder(unsigned short s) +{ + address.addr4.sin_port=s; + debugPort=ntohs(s); +} +bool SystemAddress::operator==( const SystemAddress& right ) const +{ + return address.addr4.sin_port == right.address.addr4.sin_port && EqualsExcludingPort(right); +} + +bool SystemAddress::operator!=( const SystemAddress& right ) const +{ + return (*this==right)==false; +} + +bool SystemAddress::operator>( const SystemAddress& right ) const +{ + if (address.addr4.sin_port == right.address.addr4.sin_port) + { +#if RAKNET_SUPPORT_IPV6==1 + if (address.addr4.sin_family==AF_INET) + return address.addr4.sin_addr.s_addr>right.address.addr4.sin_addr.s_addr; + return memcmp(address.addr6.sin6_addr.s6_addr, right.address.addr6.sin6_addr.s6_addr, sizeof(address.addr6.sin6_addr.s6_addr))>0; +#else + return address.addr4.sin_addr.s_addr>right.address.addr4.sin_addr.s_addr; +#endif + } + return address.addr4.sin_port>right.address.addr4.sin_port; +} + +bool SystemAddress::operator<( const SystemAddress& right ) const +{ + if (address.addr4.sin_port == right.address.addr4.sin_port) + { +#if RAKNET_SUPPORT_IPV6==1 + if (address.addr4.sin_family==AF_INET) + return address.addr4.sin_addr.s_addr0; +#else + return address.addr4.sin_addr.s_addr'9')) + break; + IPPart[index]=str[index]; + } + IPPart[index]=0; + portPart[0]=0; + if (str[index] && str[index+1]) + { + index++; + for (portIndex=0; portIndex<10 && str[index] && index < 22+10; index++, portIndex++) + { + if (str[index]<'0' || str[index]>'9') + break; + + portPart[portIndex]=str[index]; + } + portPart[portIndex]=0; + } + + + + + + + + + + + + + + if (IPPart[0]) + { + + + + address.addr4.sin_addr.s_addr=inet_addr__(IPPart); + + } + + + if (portPart[0]) + { + address.addr4.sin_port=htons((unsigned short) atoi(portPart)); + debugPort=ntohs(address.addr4.sin_port); + } + //#endif + } +} + +bool SystemAddress::FromString(const char *str, char portDelineator, int ipVersion) +{ +#if RAKNET_SUPPORT_IPV6!=1 + (void) ipVersion; + SetBinaryAddress(str,portDelineator); + return true; +#else + if (str==0) + { + memset(&address,0,sizeof(address)); + address.addr4.sin_family=AF_INET; + return true; + } +#if RAKNET_SUPPORT_IPV6==1 + char ipPart[INET6_ADDRSTRLEN]; +#else + char ipPart[INET_ADDRSTRLEN]; +#endif + char portPart[32]; + int i=0,j; + + // TODO - what about 255.255.255.255? + if (ipVersion==4 && strcmp(str, IPV6_LOOPBACK)==0) + { + strcpy(ipPart,IPV4_LOOPBACK); + } + else if (ipVersion==6 && strcmp(str, IPV4_LOOPBACK)==0) + { + address.addr4.sin_family=AF_INET6; + strcpy(ipPart,IPV6_LOOPBACK); + } + else if (NonNumericHostString(str)==false) + { + for (; i < sizeof(ipPart) && str[i]!=0 && str[i]!=portDelineator; i++) + { + if ((str[i]<'0' || str[i]>'9') && (str[i]<'a' || str[i]>'f') && (str[i]<'A' || str[i]>'F') && str[i]!='.' && str[i]!=':' && str[i]!='%' && str[i]!='-' && str[i]!='/') + break; + + ipPart[i]=str[i]; + } + ipPart[i]=0; + } + else + { + strncpy(ipPart,str,sizeof(ipPart)); + ipPart[sizeof(ipPart)-1]=0; + } + + j=0; + if (str[i]==portDelineator && portDelineator!=0) + { + i++; + for (; j < sizeof(portPart) && str[i]!=0; i++, j++) + { + portPart[j]=str[i]; + } + } + portPart[j]=0; + + + + + + + + + + + // needed for getaddrinfo + WSAStartupSingleton::AddRef(); + + // This could be a domain, or a printable address such as "192.0.2.1" or "2001:db8:63b3:1::3490" + // I want to convert it to its binary representation + addrinfo hints, *servinfo=0; + memset(&hints, 0, sizeof hints); + hints.ai_socktype = SOCK_DGRAM; + if (ipVersion==6) + hints.ai_family = AF_INET6; + else if (ipVersion==4) + hints.ai_family = AF_INET; + else + hints.ai_family = AF_UNSPEC; + getaddrinfo(ipPart, "", &hints, &servinfo); + if (servinfo==0) + return false; + RakAssert(servinfo); + + unsigned short oldPort = address.addr4.sin_port; +#if RAKNET_SUPPORT_IPV6==1 + if (servinfo->ai_family == AF_INET) + { +// if (ipVersion==6) +// { + address.addr4.sin_family=AF_INET6; +// memset(&address.addr6,0,sizeof(address.addr6)); +// memcpy(address.addr6.sin6_addr.s6_addr+12,&((struct sockaddr_in *)servinfo->ai_addr)->sin_addr.s_addr,sizeof(unsigned long)); +// } +// else +// { + address.addr4.sin_family=AF_INET; + memcpy(&address.addr4, (struct sockaddr_in *)servinfo->ai_addr,sizeof(struct sockaddr_in)); +// } + } + else + { + address.addr4.sin_family=AF_INET6; + memcpy(&address.addr6, (struct sockaddr_in6 *)servinfo->ai_addr,sizeof(struct sockaddr_in6)); + } +#else + address.addr4.sin_family=AF_INET4; + memcpy(&address.addr4, (struct sockaddr_in *)servinfo->ai_addr,sizeof(struct sockaddr_in)); +#endif + + freeaddrinfo(servinfo); // free the linked list + + // needed for getaddrinfo + WSAStartupSingleton::Deref(); + + // PORT + if (portPart[0]) + { + address.addr4.sin_port=htons((unsigned short) atoi(portPart)); + debugPort=ntohs(address.addr4.sin_port); + } + else + { + address.addr4.sin_port=oldPort; + } +#endif // #if RAKNET_SUPPORT_IPV6!=1 + + return true; +} +bool SystemAddress::FromStringExplicitPort(const char *str, unsigned short port, int ipVersion) +{ + bool b = FromString(str,(char) 0,ipVersion); + if (b==false) + return false; + address.addr4.sin_port=htons(port); + debugPort=ntohs(address.addr4.sin_port); + return true; +} +void SystemAddress::CopyPort( const SystemAddress& right ) +{ + address.addr4.sin_port=right.address.addr4.sin_port; + debugPort=right.debugPort; +} +RakNetGUID::RakNetGUID() +{ + systemIndex=(SystemIndex)-1; + *this=UNASSIGNED_RAKNET_GUID; +} +bool RakNetGUID::operator==( const RakNetGUID& right ) const +{ + return g==right.g; +} +bool RakNetGUID::operator!=( const RakNetGUID& right ) const +{ + return g!=right.g; +} +bool RakNetGUID::operator > ( const RakNetGUID& right ) const +{ + return g > right.g; +} +bool RakNetGUID::operator < ( const RakNetGUID& right ) const +{ + return g < right.g; +} +const char *RakNetGUID::ToString(void) const +{ + static unsigned char strIndex=0; + static char str[8][64]; + + unsigned char lastStrIndex=strIndex; + strIndex++; + ToString(str[lastStrIndex&7]); + return (char*) str[lastStrIndex&7]; +} +void RakNetGUID::ToString(char *dest) const +{ + if (*this==UNASSIGNED_RAKNET_GUID) + strcpy(dest, "UNASSIGNED_RAKNET_GUID"); + + //sprintf(dest, "%u.%u.%u.%u.%u.%u", g[0], g[1], g[2], g[3], g[4], g[5]); + sprintf(dest, "%" PRINTF_64_BIT_MODIFIER "u", (long long unsigned int) g); + // sprintf(dest, "%u.%u.%u.%u.%u.%u", g[0], g[1], g[2], g[3], g[4], g[5]); +} +bool RakNetGUID::FromString(const char *source) +{ + if (source==0) + return false; + + + +#if defined(WIN32) + g=_strtoui64(source, NULL, 10); + + +#else + // Changed from g=strtoull(source,0,10); for android + g=strtoull(source, (char **)NULL, 10); +#endif + return true; + +} +unsigned long RakNetGUID::ToUint32( const RakNetGUID &g ) +{ + return ((unsigned long) (g.g >> 32)) ^ ((unsigned long) (g.g & 0xFFFFFFFF)); +} diff --git a/src/raknet/RakNetTypes.h b/src/raknet/RakNetTypes.h new file mode 100755 index 0000000..befcfc1 --- /dev/null +++ b/src/raknet/RakNetTypes.h @@ -0,0 +1,482 @@ +/// \file +/// \brief Types used by RakNet, most of which involve user code. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __NETWORK_TYPES_H +#define __NETWORK_TYPES_H + +#include "RakNetDefines.h" +#include "NativeTypes.h" +#include "RakNetTime.h" +#include "Export.h" +#include "SocketIncludes.h" +#include "WindowsIncludes.h" +#include "XBox360Includes.h" + + + + + +namespace RakNet { +/// Forward declarations +class RakPeerInterface; +class BitStream; +struct Packet; + +enum StartupResult +{ + RAKNET_STARTED, + RAKNET_ALREADY_STARTED, + INVALID_SOCKET_DESCRIPTORS, + INVALID_MAX_CONNECTIONS, + SOCKET_FAMILY_NOT_SUPPORTED, + SOCKET_PORT_ALREADY_IN_USE, + SOCKET_FAILED_TO_BIND, + SOCKET_FAILED_TEST_SEND, + PORT_CANNOT_BE_ZERO, + FAILED_TO_CREATE_NETWORK_THREAD, + STARTUP_OTHER_FAILURE, +}; + + +enum ConnectionAttemptResult +{ + CONNECTION_ATTEMPT_STARTED, + INVALID_PARAMETER, + CANNOT_RESOLVE_DOMAIN_NAME, + ALREADY_CONNECTED_TO_ENDPOINT, + CONNECTION_ATTEMPT_ALREADY_IN_PROGRESS, + SECURITY_INITIALIZATION_FAILED +}; + +/// Returned from RakPeerInterface::GetConnectionState() +enum ConnectionState +{ + /// Connect() was called, but the process hasn't started yet + IS_PENDING, + /// Processing the connection attempt + IS_CONNECTING, + /// Is connected and able to communicate + IS_CONNECTED, + /// Was connected, but will disconnect as soon as the remaining messages are delivered + IS_DISCONNECTING, + /// A connection attempt failed and will be aborted + IS_SILENTLY_DISCONNECTING, + /// No longer connected + IS_DISCONNECTED, + /// Was never connected, or else was disconnected long enough ago that the entry has been discarded + IS_NOT_CONNECTED, +}; + +/// Given a number of bits, return how many bytes are needed to represent that. +#define BITS_TO_BYTES(x) (((x)+7)>>3) +#define BYTES_TO_BITS(x) ((x)<<3) + +/// \sa NetworkIDObject.h +typedef unsigned char UniqueIDType; +typedef unsigned short SystemIndex; +typedef unsigned char RPCIndex; +const int MAX_RPC_MAP_SIZE=((RPCIndex)-1)-1; +const int UNDEFINED_RPC_INDEX=((RPCIndex)-1); + +/// First byte of a network message +typedef unsigned char MessageID; + +typedef uint32_t BitSize_t; + +#if defined(_MSC_VER) && _MSC_VER > 0 +#define PRINTF_64_BIT_MODIFIER "I64" +#else +#define PRINTF_64_BIT_MODIFIER "ll" +#endif + +/// Used with the PublicKey structure +enum PublicKeyMode +{ + /// The connection is insecure. You can also just pass 0 for the pointer to PublicKey in RakPeerInterface::Connect() + PKM_INSECURE_CONNECTION, + + /// Accept whatever public key the server gives us. This is vulnerable to man in the middle, but does not require + /// distribution of the public key in advance of connecting. + PKM_ACCEPT_ANY_PUBLIC_KEY, + + /// Use a known remote server public key. PublicKey::remoteServerPublicKey must be non-zero. + /// This is the recommended mode for secure connections. + PKM_USE_KNOWN_PUBLIC_KEY, + + /// Use a known remote server public key AND provide a public key for the connecting client. + /// PublicKey::remoteServerPublicKey, myPublicKey and myPrivateKey must be all be non-zero. + /// The server must cooperate for this mode to work. + /// I recommend not using this mode except for server-to-server communication as it significantly increases the CPU requirements during connections for both sides. + /// Furthermore, when it is used, a connection password should be used as well to avoid DoS attacks. + PKM_USE_TWO_WAY_AUTHENTICATION +}; + +/// Passed to RakPeerInterface::Connect() +struct RAK_DLL_EXPORT PublicKey +{ + /// How to interpret the public key, see above + PublicKeyMode publicKeyMode; + + /// Pointer to a public key of length cat::EasyHandshake::PUBLIC_KEY_BYTES. See the Encryption sample. + char *remoteServerPublicKey; + + /// (Optional) Pointer to a public key of length cat::EasyHandshake::PUBLIC_KEY_BYTES + char *myPublicKey; + + /// (Optional) Pointer to a private key of length cat::EasyHandshake::PRIVATE_KEY_BYTES + char *myPrivateKey; +}; + +/// Describes the local socket to use for RakPeer::Startup +struct RAK_DLL_EXPORT SocketDescriptor +{ + SocketDescriptor(); + SocketDescriptor(unsigned short _port, const char *_hostAddress); + + /// The local port to bind to. Pass 0 to have the OS autoassign a port. + unsigned short port; + + /// The local network card address to bind to, such as "127.0.0.1". Pass an empty string to use INADDR_ANY. + char hostAddress[32]; + + /// IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + /// IPV6 is the newer internet protocol. Instead of addresses such as 94.198.81.195, you may have an address such as fe80::7c:31f7:fec4:27de%14. + /// Encoding takes 16 bytes instead of 4, so IPV6 is less efficient for bandwidth. + /// On the positive side, NAT Punchthrough is not needed and should not be used with IPV6 because there are enough addresses that routers do not need to create address mappings. + /// RakPeer::Startup() will fail if this IP version is not supported. + /// \pre RAKNET_SUPPORT_IPV6 must be set to 1 in RakNetDefines.h for AF_INET6 + short socketFamily; + + + + + + + + + + unsigned short remotePortRakNetWasStartedOn_PS3_PSP2; + + /// XBOX only: set IPPROTO_VDP if you want to use VDP. If enabled, this socket does not support broadcast to 255.255.255.255 + unsigned int extraSocketOptions; +}; + +extern bool NonNumericHostString( const char *host ); + +/// \brief Network address for a system +/// \details Corresponds to a network address
    +/// This is not necessarily a unique identifier. For example, if a system has both LAN and internet connections, the system may be identified by either one, depending on who is communicating
    +/// Therefore, you should not transmit the SystemAddress over the network and expect it to identify a system, or use it to connect to that system, except in the case where that system is not behind a NAT (such as with a dedciated server) +/// Use RakNetGUID for a unique per-instance of RakPeer to identify systems +struct RAK_DLL_EXPORT SystemAddress +{ + /// Constructors + SystemAddress(); + SystemAddress(const char *str); + SystemAddress(const char *str, unsigned short port); + + + + + + + + /// SystemAddress, with RAKNET_SUPPORT_IPV6 defined, holds both an sockaddr_in6 and a sockaddr_in + union// In6OrIn4 + { +#if RAKNET_SUPPORT_IPV6==1 + struct sockaddr_in6 addr6; +#endif + + struct sockaddr_in addr4; + } address; + + /// This is not used internally, but holds a copy of the port held in the address union, so for debugging it's easier to check what port is being held + unsigned short debugPort; + + /// \internal Return the size to write to a bitStream + static int size(void); + + /// Hash the system address + static unsigned long ToInteger( const SystemAddress &sa ); + + /// Return the IP version, either IPV4 or IPV6 + /// \return Either 4 or 6 + unsigned char GetIPVersion(void) const; + + /// \internal Returns either IPPROTO_IP or IPPROTO_IPV6 + /// \sa GetIPVersion + unsigned int GetIPPROTO(void) const; + + /// Call SetToLoopback(), with whatever IP version is currently held. Defaults to IPV4 + void SetToLoopback(void); + + /// Call SetToLoopback() with a specific IP version + /// \param[in] ipVersion Either 4 for IPV4 or 6 for IPV6 + void SetToLoopback(unsigned char ipVersion); + + /// \return If was set to 127.0.0.1 or ::1 + bool IsLoopback(void) const; + + // Return the systemAddress as a string in the format | + // Returns a static string + // NOT THREADSAFE + // portDelineator should not be '.', ':', '%', '-', '/', a number, or a-f + const char *ToString(bool writePort=true, char portDelineator='|') const; + + // Return the systemAddress as a string in the format | + // dest must be large enough to hold the output + // portDelineator should not be '.', ':', '%', '-', '/', a number, or a-f + // THREADSAFE + void ToString(bool writePort, char *dest, char portDelineator='|') const; + + /// Set the system address from a printable IP string, for example "192.0.2.1" or "2001:db8:63b3:1::3490" + /// You can write the port as well, using the portDelineator, for example "192.0.2.1|1234" + /// \param[in] str A printable IP string, for example "192.0.2.1" or "2001:db8:63b3:1::3490". Pass 0 for \a str to set to UNASSIGNED_SYSTEM_ADDRESS + /// \param[in] portDelineator if \a str contains a port, delineate the port with this character. portDelineator should not be '.', ':', '%', '-', '/', a number, or a-f + /// \param[in] ipVersion Only used if str is a pre-defined address in the wrong format, such as 127.0.0.1 but you want ip version 6, so you can pass 6 here to do the conversion + /// \note The current port is unchanged if a port is not specified in \a str + /// \return True on success, false on ipVersion does not match type of passed string + bool FromString(const char *str, char portDelineator='|', int ipVersion=0); + + /// Same as FromString(), but you explicitly set a port at the same time + bool FromStringExplicitPort(const char *str, unsigned short port, int ipVersion=0); + + /// Copy the port from another SystemAddress structure + void CopyPort( const SystemAddress& right ); + + /// Returns if two system addresses have the same IP (port is not checked) + bool EqualsExcludingPort( const SystemAddress& right ) const; + + /// Returns the port in host order (this is what you normally use) + unsigned short GetPort(void) const; + + /// \internal Returns the port in network order + unsigned short GetPortNetworkOrder(void) const; + + /// Sets the port. The port value should be in host order (this is what you normally use) + void SetPort(unsigned short s); + + /// \internal Sets the port. The port value should already be in network order. + void SetPortNetworkOrder(unsigned short s); + + /// Old version, for crap platforms that don't support newer socket functions + void SetBinaryAddress(const char *str, char portDelineator=':'); + /// Old version, for crap platforms that don't support newer socket functions + void ToString_Old(bool writePort, char *dest, char portDelineator=':') const; + + /// \internal sockaddr_in6 requires extra data beyond just the IP and port. Copy that extra data from an existing SystemAddress that already has it + void FixForIPVersion(const SystemAddress &boundAddressToSocket); + + SystemAddress& operator = ( const SystemAddress& input ); + bool operator==( const SystemAddress& right ) const; + bool operator!=( const SystemAddress& right ) const; + bool operator > ( const SystemAddress& right ) const; + bool operator < ( const SystemAddress& right ) const; + + /// \internal Used internally for fast lookup. Optional (use -1 to do regular lookup). Don't transmit this. + SystemIndex systemIndex; + + private: + +#if RAKNET_SUPPORT_IPV6==1 + void ToString_New(bool writePort, char *dest, char portDelineator) const; +#endif +}; + +/// Uniquely identifies an instance of RakPeer. Use RakPeer::GetGuidFromSystemAddress() and RakPeer::GetSystemAddressFromGuid() to go between SystemAddress and RakNetGUID +/// Use RakPeer::GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS) to get your own GUID +struct RAK_DLL_EXPORT RakNetGUID +{ + RakNetGUID(); + explicit RakNetGUID(uint64_t _g) {g=_g; systemIndex=(SystemIndex)-1;} +// uint32_t g[6]; + uint64_t g; + + // Return the GUID as a string + // Returns a static string + // NOT THREADSAFE + const char *ToString(void) const; + + // Return the GUID as a string + // dest must be large enough to hold the output + // THREADSAFE + void ToString(char *dest) const; + + bool FromString(const char *source); + + static unsigned long ToUint32( const RakNetGUID &g ); + + RakNetGUID& operator = ( const RakNetGUID& input ) + { + g=input.g; + systemIndex=input.systemIndex; + return *this; + } + + // Used internally for fast lookup. Optional (use -1 to do regular lookup). Don't transmit this. + SystemIndex systemIndex; + static int size() {return (int) sizeof(uint64_t);} + + bool operator==( const RakNetGUID& right ) const; + bool operator!=( const RakNetGUID& right ) const; + bool operator > ( const RakNetGUID& right ) const; + bool operator < ( const RakNetGUID& right ) const; +}; + +/// Index of an invalid SystemAddress +//const SystemAddress UNASSIGNED_SYSTEM_ADDRESS = +//{ +// 0xFFFFFFFF, 0xFFFF +//}; +#ifndef SWIG +const SystemAddress UNASSIGNED_SYSTEM_ADDRESS; +const RakNetGUID UNASSIGNED_RAKNET_GUID((uint64_t)-1); +#endif +//{ +// {0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF} +// 0xFFFFFFFFFFFFFFFF +//}; + + +struct RAK_DLL_EXPORT AddressOrGUID +{ + RakNetGUID rakNetGuid; + SystemAddress systemAddress; + + SystemIndex GetSystemIndex(void) const {if (rakNetGuid!=UNASSIGNED_RAKNET_GUID) return rakNetGuid.systemIndex; else return systemAddress.systemIndex;} + bool IsUndefined(void) const {return rakNetGuid==UNASSIGNED_RAKNET_GUID && systemAddress==UNASSIGNED_SYSTEM_ADDRESS;} + void SetUndefined(void) {rakNetGuid=UNASSIGNED_RAKNET_GUID; systemAddress=UNASSIGNED_SYSTEM_ADDRESS;} + static unsigned long ToInteger( const AddressOrGUID &aog ); + const char *ToString(bool writePort=true) const; + void ToString(bool writePort, char *dest) const; + + AddressOrGUID() {} + AddressOrGUID( const AddressOrGUID& input ) + { + rakNetGuid=input.rakNetGuid; + systemAddress=input.systemAddress; + } + AddressOrGUID( const SystemAddress& input ) + { + rakNetGuid=UNASSIGNED_RAKNET_GUID; + systemAddress=input; + } + AddressOrGUID( Packet *packet ); + AddressOrGUID( const RakNetGUID& input ) + { + rakNetGuid=input; + systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + } + AddressOrGUID& operator = ( const AddressOrGUID& input ) + { + rakNetGuid=input.rakNetGuid; + systemAddress=input.systemAddress; + return *this; + } + + AddressOrGUID& operator = ( const SystemAddress& input ) + { + rakNetGuid=UNASSIGNED_RAKNET_GUID; + systemAddress=input; + return *this; + } + + AddressOrGUID& operator = ( const RakNetGUID& input ) + { + rakNetGuid=input; + systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + return *this; + } + + inline bool operator==( const AddressOrGUID& right ) const {return (rakNetGuid!=UNASSIGNED_RAKNET_GUID && rakNetGuid==right.rakNetGuid) || (systemAddress!=UNASSIGNED_SYSTEM_ADDRESS && systemAddress==right.systemAddress);} +}; + +typedef uint64_t NetworkID; + +/// This represents a user message from another system. +struct Packet +{ + /// The system that send this packet. + SystemAddress systemAddress; + + /// A unique identifier for the system that sent this packet, regardless of IP address (internal / external / remote system) + /// Only valid once a connection has been established (ID_CONNECTION_REQUEST_ACCEPTED, or ID_NEW_INCOMING_CONNECTION) + /// Until that time, will be UNASSIGNED_RAKNET_GUID + RakNetGUID guid; + + /// The length of the data in bytes + unsigned int length; + + /// The length of the data in bits + BitSize_t bitSize; + + /// The data from the sender + unsigned char* data; + + /// @internal + /// Indicates whether to delete the data, or to simply delete the packet. + bool deleteData; + + /// @internal + /// If true, this message is meant for the user, not for the plugins, so do not process it through plugins + bool wasGeneratedLocally; +}; + +/// Index of an unassigned player +const SystemIndex UNASSIGNED_PLAYER_INDEX = 65535; + +/// Unassigned object ID +const NetworkID UNASSIGNED_NETWORK_ID = (uint64_t) -1; + +const int PING_TIMES_ARRAY_SIZE = 5; + +struct RAK_DLL_EXPORT uint24_t +{ + uint32_t val; + + uint24_t() {} + inline operator uint32_t() { return val; } + inline operator uint32_t() const { return val; } + + inline uint24_t(const uint24_t& a) {val=a.val;} + inline uint24_t operator++() {++val; val&=0x00FFFFFF; return *this;} + inline uint24_t operator--() {--val; val&=0x00FFFFFF; return *this;} + inline uint24_t operator++(int) {uint24_t temp(val); ++val; val&=0x00FFFFFF; return temp;} + inline uint24_t operator--(int) {uint24_t temp(val); --val; val&=0x00FFFFFF; return temp;} + inline uint24_t operator&(const uint24_t& a) {return uint24_t(val&a.val);} + inline uint24_t& operator=(const uint24_t& a) { val=a.val; return *this; } + inline uint24_t& operator+=(const uint24_t& a) { val+=a.val; val&=0x00FFFFFF; return *this; } + inline uint24_t& operator-=(const uint24_t& a) { val-=a.val; val&=0x00FFFFFF; return *this; } + inline bool operator==( const uint24_t& right ) const {return val==right.val;} + inline bool operator!=( const uint24_t& right ) const {return val!=right.val;} + inline bool operator > ( const uint24_t& right ) const {return val>right.val;} + inline bool operator < ( const uint24_t& right ) const {return val ( const uint32_t& right ) const {return val>(right&0x00FFFFFF);} + inline bool operator < ( const uint32_t& right ) const {return val<(right&0x00FFFFFF);} + inline const uint24_t operator+( const uint32_t &other ) const { return uint24_t(val+other); } + inline const uint24_t operator-( const uint32_t &other ) const { return uint24_t(val-other); } + inline const uint24_t operator/( const uint32_t &other ) const { return uint24_t(val/other); } + inline const uint24_t operator*( const uint32_t &other ) const { return uint24_t(val*other); } +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/RakNetVersion.h b/src/raknet/RakNetVersion.h new file mode 100755 index 0000000..4e61675 --- /dev/null +++ b/src/raknet/RakNetVersion.h @@ -0,0 +1,8 @@ +#define RAKNET_VERSION "4.036" +#define RAKNET_VERSION_NUMBER 4.036 + +#define RAKNET_DATE "2/1/2012" + +// What compatible protocol version RakNet is using. When this value changes, it indicates this version of RakNet cannot connection to an older version. +// ID_INCOMPATIBLE_PROTOCOL_VERSION will be returned on connection attempt in this case +#define RAKNET_PROTOCOL_VERSION 5 diff --git a/src/raknet/RakNet_vc8.vcproj b/src/raknet/RakNet_vc8.vcproj new file mode 100755 index 0000000..694c818 --- /dev/null +++ b/src/raknet/RakNet_vc8.vcproj @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/RakNet_vc9.vcproj b/src/raknet/RakNet_vc9.vcproj new file mode 100755 index 0000000..694c818 --- /dev/null +++ b/src/raknet/RakNet_vc9.vcproj @@ -0,0 +1,849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/RakPeer.cpp b/src/raknet/RakPeer.cpp new file mode 100755 index 0000000..e00660a --- /dev/null +++ b/src/raknet/RakPeer.cpp @@ -0,0 +1,5964 @@ +// \file +// +// This file is part of RakNet Copyright 2003 Jenkins Software LLC +// +// Usage of RakNet is subject to the appropriate license agreement. + + +#define CAT_NEUTER_EXPORT /* Neuter dllimport for libcat */ + +#include "RakNetDefines.h" +#include "RakPeer.h" +#include "RakNetTypes.h" + +#ifdef _WIN32 + +#else +#include +#endif + +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + +#include +#include // toupper +#include +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "DS_HuffmanEncodingTree.h" +#include "Rand.h" +#include "PluginInterface2.h" +#include "StringCompressor.h" +#include "StringTable.h" +#include "NetworkIDObject.h" +#include "RakNetTypes.h" +#include "SHA1.h" +#include "RakSleep.h" +#include "RakAssert.h" +#include "RakNetVersion.h" +#include "NetworkIDManager.h" +#include "gettimeofday.h" +#include "SignaledEvent.h" +#include "SuperFastHash.h" +#include "RakAlloca.h" +#include "WSAStartupSingleton.h" + +#ifdef USE_THREADED_SEND +#include "SendToThread.h" +#endif + +#ifdef CAT_AUDIT +#define CAT_AUDIT_PRINTF(...) printf(__VA_ARGS__) +#else +#define CAT_AUDIT_PRINTF(...) +#endif + +namespace RakNet +{ +RAK_THREAD_DECLARATION(UpdateNetworkLoop); +RAK_THREAD_DECLARATION(RecvFromLoop); +RAK_THREAD_DECLARATION(UDTConnect); +} +#define REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE 8 + +#if !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) +#include // malloc +#endif + + + +#if defined(_WIN32) +// +#else +/* +#include // Console 2 +#include +extern bool _extern_Console2LoadModules(void); +extern int _extern_Console2GetConnectionStatus(void); +extern int _extern_Console2GetLobbyStatus(void); +//extern bool Console2StartupFluff(unsigned int *); +extern void Console2ShutdownFluff(void); +//extern unsigned int Console2ActivateConnection(unsigned int, void *); +//extern bool Console2BlockOnEstablished(void); +extern void Console2GetIPAndPort(unsigned int, char *, unsigned short *, unsigned int ); +//extern void Console2DeactivateConnection(unsigned int, unsigned int); +*/ +#endif + + +static const int NUM_MTU_SIZES=3; + + + +static const int mtuSizes[NUM_MTU_SIZES]={MAXIMUM_MTU_SIZE, 1200, 576}; + + +// Note to self - if I change this it might affect RECIPIENT_OFFLINE_MESSAGE_INTERVAL in Natpunchthrough.cpp +//static const int MAX_OPEN_CONNECTION_REQUESTS=8; +//static const int TIME_BETWEEN_OPEN_CONNECTION_REQUESTS=500; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +static RakNetRandom rnr; + +struct RakPeerAndIndex +{ + SOCKET s; + unsigned short remotePortRakNetWasStartedOn_PS3; + RakPeer *rakPeer; + unsigned int extraSocketOptions; +}; + +static const unsigned int MAX_OFFLINE_DATA_LENGTH=400; // I set this because I limit ID_CONNECTION_REQUEST to 512 bytes, and the password is appended to that packet. + +// Used to distinguish between offline messages with data, and messages from the reliability layer +// Should be different than any message that could result from messages from the reliability layer +#if !defined(__GNUC__) +#pragma warning(disable:4309) // 'initializing' : truncation of constant value +#endif +// Make sure highest bit is 0, so isValid in DatagramHeaderFormat is false +static const char OFFLINE_MESSAGE_DATA_ID[16]={0x00,(char)0xFF,(char)0xFF,0x00,(char)0xFE,(char)0xFE,(char)0xFE,(char)0xFE,(char)0xFD,(char)0xFD,(char)0xFD, (char)0xFD,0x12,0x34,0x56,0x78}; + +struct PacketFollowedByData +{ + Packet p; + unsigned char data[1]; +}; + +Packet *RakPeer::AllocPacket(unsigned dataSize, const char *file, unsigned int line) +{ + // Crashes when dataSize is 4 bytes - not sure why +// unsigned char *data = (unsigned char *) rakMalloc_Ex(sizeof(PacketFollowedByData)+dataSize, file, line); +// Packet *p = &((PacketFollowedByData *)data)->p; +// p->data=((PacketFollowedByData *)data)->data; +// p->length=dataSize; +// p->bitSize=BYTES_TO_BITS(dataSize); +// p->deleteData=false; +// p->guid=UNASSIGNED_RAKNET_GUID; +// return p; + + RakNet::Packet *p; + packetAllocationPoolMutex.Lock(); + p = packetAllocationPool.Allocate(file,line); + packetAllocationPoolMutex.Unlock(); + p = new ((void*)p) Packet; + p->data=(unsigned char*) rakMalloc_Ex(dataSize,file,line); + p->length=dataSize; + p->bitSize=BYTES_TO_BITS(dataSize); + p->deleteData=true; + p->guid=UNASSIGNED_RAKNET_GUID; + p->wasGeneratedLocally=false; + return p; +} + +Packet *RakPeer::AllocPacket(unsigned dataSize, unsigned char *data, const char *file, unsigned int line) +{ + // Packet *p = (Packet *)rakMalloc_Ex(sizeof(Packet), file, line); + RakNet::Packet *p; + packetAllocationPoolMutex.Lock(); + p = packetAllocationPool.Allocate(file,line); + packetAllocationPoolMutex.Unlock(); + p = new ((void*)p) Packet; + RakAssert(p); + p->data=data; + p->length=dataSize; + p->bitSize=BYTES_TO_BITS(dataSize); + p->deleteData=true; + p->guid=UNASSIGNED_RAKNET_GUID; + p->wasGeneratedLocally=false; + return p; +} + +STATIC_FACTORY_DEFINITIONS(RakPeerInterface,RakPeer) + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Constructor +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RakPeer() +{ + errorState = 0; +#if LIBCAT_SECURITY==1 + // Encryption and security + CAT_AUDIT_PRINTF("AUDIT: Initializing RakPeer security flags: using_security = false, server_handshake = null, cookie_jar = null\n"); + _using_security = false; + _server_handshake = 0; + _cookie_jar = 0; +#endif + + StringCompressor::AddReference(); + RakNet::StringTable::AddReference(); + WSAStartupSingleton::AddRef(); + + defaultMTUSize = mtuSizes[NUM_MTU_SIZES-1]; + trackFrequencyTable = false; + maximumIncomingConnections = 0; + maximumNumberOfPeers = 0; + //remoteSystemListSize=0; + remoteSystemList = 0; + activeSystemList = 0; + activeSystemListSize=0; + remoteSystemLookup=0; + bytesSentPerSecond = bytesReceivedPerSecond = 0; + endThreads = true; + isMainLoopThreadActive = false; + + + + + + // isRecvfromThreadActive=false; +#if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 + occasionalPing = true; +#else + occasionalPing = false; +#endif + allowInternalRouting=false; + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + ipList[i]=UNASSIGNED_SYSTEM_ADDRESS; + allowConnectionResponseIPMigration = false; + //incomingPasswordLength=outgoingPasswordLength=0; + incomingPasswordLength=0; + splitMessageProgressInterval=0; + //unreliableTimeout=0; + unreliableTimeout=1000; + maxOutgoingBPS=0; + firstExternalID=UNASSIGNED_SYSTEM_ADDRESS; + myGuid=UNASSIGNED_RAKNET_GUID; + userUpdateThreadPtr=0; + userUpdateThreadData=0; + +#ifdef _DEBUG + // Wait longer to disconnect in debug so I don't get disconnected while tracing + defaultTimeoutTime=30000; +#else + defaultTimeoutTime=10000; +#endif + +#ifdef _DEBUG + _packetloss=0.0; + _minExtraPing=0; + _extraPingVariance=0; +#endif + + bufferedCommands.SetPageSize(sizeof(BufferedCommandStruct)*16); + socketQueryOutput.SetPageSize(sizeof(SocketQueryOutput)*8); + bufferedPackets.SetPageSize(sizeof(RecvFromStruct)*BUFFERED_PACKETS_PAGE_SIZE); // This is big, keep the size down + + packetAllocationPoolMutex.Lock(); + packetAllocationPool.SetPageSize(sizeof(DataStructures::MemoryPool::MemoryWithPage)*32); + packetAllocationPoolMutex.Unlock(); + + remoteSystemIndexPool.SetPageSize(sizeof(DataStructures::MemoryPool::MemoryWithPage)*32); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GenerateGUID(); + + quitAndDataEvents.InitEvent(); + limitConnectionFrequencyFromTheSameIP=false; + ResetSendReceipt(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Destructor +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::~RakPeer() +{ + Shutdown( 0, 0 ); + + // Free the ban list. + ClearBanList(); + + StringCompressor::RemoveReference(); + RakNet::StringTable::RemoveReference(); + WSAStartupSingleton::Deref(); + + quitAndDataEvents.CloseEvent(); + +#if LIBCAT_SECURITY==1 + // Encryption and security + CAT_AUDIT_PRINTF("AUDIT: Deleting RakPeer security objects, handshake = %x, cookie jar = %x\n", _server_handshake, _cookie_jar); + if (_server_handshake) RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + if (_cookie_jar) RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); +#endif + + + + + + + + + + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// \brief Starts the network threads, opens the listen port. +// You must call this before calling Connect(). +// Multiple calls while already active are ignored. To call this function again with different settings, you must first call Shutdown(). +// \note Call SetMaximumIncomingConnections if you want to accept incoming connections +// \param[in] maxConnections The maximum number of connections between this instance of RakPeer and another instance of RakPeer. Required so the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.- A hybrid would set it to the sum of both types of connections +// \param[in] localPort The port to listen for connections on. +// \param[in] _threadSleepTimer How many ms to Sleep each internal update cycle. With new congestion control, the best results will be obtained by passing 10. +// \param[in] socketDescriptors An array of SocketDescriptor structures to force RakNet to listen on a particular IP address or port (or both). Each SocketDescriptor will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass &socketDescriptor, 1SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); +// \param[in] socketDescriptorCount The size of the \a socketDescriptors array. Pass 1 if you are not sure what to pass. +// \return False on failure (can't create socket or thread), true on success. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +StartupResult RakPeer::Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority ) +{ + errorState = 0; + + if (IsActive()) + return RAKNET_ALREADY_STARTED; + + if (threadPriority==-99999) + { + + +#if defined(_WIN32) + threadPriority=0; + + +#else + threadPriority=1000; +#endif + } + + + // Fill out ipList structure + unsigned int i; + + SocketLayer::GetMyIP( ipList ); +// for (i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) +// { +// if (ipList[i]!=UNASSIGNED_SYSTEM_ADDRESS) +// { +// char str[128]; +// ipList[i].ToString(false,str); +// printf("%s\n",str); +// } +// } + + + if (myGuid==UNASSIGNED_RAKNET_GUID) + { + rnr.SeedMT( GenerateSeedFromGuid() ); + } + + RakPeerAndIndex rpai[32]; + RakAssert(socketDescriptorCount<32); + + RakAssert(socketDescriptors && socketDescriptorCount>=1); + + if (socketDescriptors==0 || socketDescriptorCount<1) + return INVALID_SOCKET_DESCRIPTORS; + + //unsigned short localPort; + //localPort=socketDescriptors[0].port; + + RakAssert( maxConnections > 0 ); + + if ( maxConnections <= 0 ) + return INVALID_MAX_CONNECTIONS; + + DerefAllSockets(); + + + // Go through all socket descriptors and precreate sockets on the specified addresses + for (i=0; i rns(RakNet::OP_NEW(_FILE_AND_LINE_)); + if (socketDescriptors[i].remotePortRakNetWasStartedOn_PS3_PSP2==0) + { + rns->s = (unsigned int) SocketLayer::CreateBoundSocket( socketDescriptors[i].port, true, addrToBind, 100, socketDescriptors[i].extraSocketOptions, socketDescriptors[i].socketFamily ); + } + else + { + + + + + + } + + if ((SOCKET)rns->s==(SOCKET)-1) + { + DerefAllSockets(); + return SOCKET_FAILED_TO_BIND; + } + + SocketLayer::GetSystemAddress( rns->s, &rns->boundAddress ); + + rns->remotePortRakNetWasStartedOn_PS3_PSP2=socketDescriptors[i].remotePortRakNetWasStartedOn_PS3_PSP2; + rns->extraSocketOptions=socketDescriptors[i].extraSocketOptions; + rns->userConnectionSocketIndex=i; + +#if RAKNET_SUPPORT_IPV6==0 + if (addrToBind==0) + rns->boundAddress.SetToLoopback(4); +#endif + + int zero=0; + if (SocketLayer::SendTo((SOCKET)rns->s, (const char*) &zero,4,rns->boundAddress, rns->remotePortRakNetWasStartedOn_PS3_PSP2, rns->extraSocketOptions, _FILE_AND_LINE_)!=0) + { + DerefAllSockets(); + return SOCKET_FAILED_TEST_SEND; + } + + socketList.Push(rns, _FILE_AND_LINE_ ); + + } + + + if ( maximumNumberOfPeers == 0 ) + { + // Don't allow more incoming connections than we have peers. + if ( maximumIncomingConnections > maxConnections ) + maximumIncomingConnections = maxConnections; + + maximumNumberOfPeers = maxConnections; + // 04/19/2006 - Don't overallocate because I'm no longer allowing connected pings. + // The disconnects are not consistently processed and the process was sloppy and complicated. + // Allocate 10% extra to handle new connections from players trying to connect when the server is full + //remoteSystemListSize = maxConnections;// * 11 / 10 + 1; + + // remoteSystemList in Single thread + //remoteSystemList = RakNet::OP_NEW( _FILE_AND_LINE_ ); + remoteSystemList = RakNet::OP_NEW_ARRAY(maximumNumberOfPeers, _FILE_AND_LINE_ ); + + remoteSystemLookup = RakNet::OP_NEW_ARRAY((unsigned int) maximumNumberOfPeers * REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE, _FILE_AND_LINE_ ); + + activeSystemList = RakNet::OP_NEW_ARRAY(maximumNumberOfPeers, _FILE_AND_LINE_ ); + + for ( i = 0; i < maximumNumberOfPeers; i++ ) + //for ( i = 0; i < remoteSystemListSize; i++ ) + { + // remoteSystemList in Single thread + remoteSystemList[ i ].isActive = false; + remoteSystemList[ i ].systemAddress = UNASSIGNED_SYSTEM_ADDRESS; + remoteSystemList[ i ].guid = UNASSIGNED_RAKNET_GUID; + remoteSystemList[ i ].myExternalSystemAddress = UNASSIGNED_SYSTEM_ADDRESS; + remoteSystemList[ i ].connectMode=RemoteSystemStruct::NO_ACTION; + remoteSystemList[ i ].MTUSize = defaultMTUSize; + remoteSystemList[ i ].remoteSystemIndex = (SystemIndex) i; +#ifdef _DEBUG + remoteSystemList[ i ].reliabilityLayer.ApplyNetworkSimulator(_packetloss, _minExtraPing, _extraPingVariance); +#endif + + // All entries in activeSystemList have valid pointers all the time. + activeSystemList[ i ] = &remoteSystemList[ i ]; + } + + for (unsigned int i=0; i < (unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE; i++) + { + remoteSystemLookup[i]=0; + } + } + + // For histogram statistics + // nextReadBytesTime=0; + // lastSentBytes=lastReceivedBytes=0; + + if ( endThreads ) + { + updateCycleIsRunning = false; + endThreads = false; + + ClearBufferedCommands(); + ClearBufferedPackets(); + ClearSocketQueryOutput(); + + if ( isMainLoopThreadActive == false ) + { + int errorCode; + + + + + + + + errorCode = RakNet::RakThread::Create(UpdateNetworkLoop, this, threadPriority); + + + if ( errorCode != 0 ) + { + Shutdown( 0, 0 ); + return FAILED_TO_CREATE_NETWORK_THREAD; + } + + RakAssert(isRecvFromLoopThreadActive.GetValue()==0); + for (i=0; is; + rpai[i].rakPeer=this; + + + + + + errorCode = RakNet::RakThread::Create(RecvFromLoop, &rpai[i], threadPriority); + + + if ( errorCode != 0 ) + { + Shutdown( 0, 0 ); + return FAILED_TO_CREATE_NETWORK_THREAD; + } + } + + + while ( isRecvFromLoopThreadActive.GetValue() < (uint32_t) socketDescriptorCount ) + RakSleep(10); + } + + // Wait for the threads to activate. When they are active they will set these variables to true + + while ( isMainLoopThreadActive == false ) + RakSleep(10); + + } + + for (i=0; i < pluginListTS.Size(); i++) + { + pluginListTS[i]->OnRakPeerStartup(); + } + + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginListNTS[i]->OnRakPeerStartup(); + } + +#ifdef USE_THREADED_SEND + RakNet::SendToThread::AddRef(); +#endif + + return RAKNET_STARTED; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Must be called while offline +// +// If you accept connections, you must call this or else security will not be enabled for incoming connections. +// +// This feature requires more round trips, bandwidth, and CPU time for the connection handshake +// x64 builds require under 25% of the CPU time of other builds +// +// See the Encryption sample for example usage +// +// Parameters: +// publicKey = A pointer to the public key for accepting new connections +// privateKey = A pointer to the private key for accepting new connections +// If the private keys are 0, then a new key will be generated when this function is called +// bRequireClientKey: Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::InitializeSecurity(const char *public_key, const char *private_key, bool bRequireClientKey) +{ +#if LIBCAT_SECURITY==1 + if ( endThreads == false ) + return false; + + // Copy client public key requirement flag + _require_client_public_key = bRequireClientKey; + + if (_server_handshake) + { + CAT_AUDIT_PRINTF("AUDIT: Deleting old server_handshake %x\n", _server_handshake); + RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + } + if (_cookie_jar) + { + CAT_AUDIT_PRINTF("AUDIT: Deleting old cookie jar %x\n", _cookie_jar); + RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); + } + + _server_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + _cookie_jar = RakNet::OP_NEW(_FILE_AND_LINE_); + + CAT_AUDIT_PRINTF("AUDIT: Created new server_handshake %x\n", _server_handshake); + CAT_AUDIT_PRINTF("AUDIT: Created new cookie jar %x\n", _cookie_jar); + CAT_AUDIT_PRINTF("AUDIT: Running _server_handshake->Initialize()\n"); + + if (_server_handshake->Initialize(public_key, private_key)) + { + CAT_AUDIT_PRINTF("AUDIT: Successfully initialized, filling cookie jar with goodies, storing public key and setting using security flag to true\n"); + + _server_handshake->FillCookieJar(_cookie_jar); + + memcpy(my_public_key, public_key, sizeof(my_public_key)); + + _using_security = true; + return true; + } + + CAT_AUDIT_PRINTF("AUDIT: Failure to initialize so deleting server handshake and cookie jar; also setting using_security flag = false\n"); + + RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + _server_handshake=0; + RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); + _cookie_jar=0; + _using_security = false; + return false; +#else + (void) public_key; + (void) private_key; + (void) bRequireClientKey; + + return false; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description +// Must be called while offline +// Disables security for incoming connections. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DisableSecurity( void ) +{ +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: DisableSecurity() called, so deleting _server_handshake %x and cookie_jar %x\n", _server_handshake, _cookie_jar); + RakNet::OP_DELETE(_server_handshake,_FILE_AND_LINE_); + _server_handshake=0; + RakNet::OP_DELETE(_cookie_jar,_FILE_AND_LINE_); + _cookie_jar=0; + + _using_security = false; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AddToSecurityExceptionList(const char *ip) +{ + securityExceptionMutex.Lock(); + securityExceptionList.Insert(RakString(ip), _FILE_AND_LINE_); + securityExceptionMutex.Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::RemoveFromSecurityExceptionList(const char *ip) +{ + if (securityExceptionList.Size()==0) + return; + + if (ip==0) + { + securityExceptionMutex.Lock(); + securityExceptionList.Clear(false, _FILE_AND_LINE_); + securityExceptionMutex.Unlock(); + } + else + { + unsigned i=0; + securityExceptionMutex.Lock(); + while (i < securityExceptionList.Size()) + { + if (securityExceptionList[i].IPAddressMatch(ip)) + { + securityExceptionList[i]=securityExceptionList[securityExceptionList.Size()-1]; + securityExceptionList.RemoveAtIndex(securityExceptionList.Size()-1); + } + else + i++; + } + securityExceptionMutex.Unlock(); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsInSecurityExceptionList(const char *ip) +{ + if (securityExceptionList.Size()==0) + return false; + + unsigned i=0; + securityExceptionMutex.Lock(); + for (; i < securityExceptionList.Size(); i++) + { + if (securityExceptionList[i].IPAddressMatch(ip)) + { + securityExceptionMutex.Unlock(); + return true; + } + } + securityExceptionMutex.Unlock(); + return false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sets how many incoming connections are allowed. If this is less than the number of players currently connected, no +// more players will be allowed to connect. If this is greater than the maximum number of peers allowed, it will be reduced +// to the maximum number of peers allowed. Defaults to 0. +// +// Parameters: +// numberAllowed - Maximum number of incoming connections allowed. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetMaximumIncomingConnections( unsigned short numberAllowed ) +{ + maximumIncomingConnections = numberAllowed; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the maximum number of incoming connections, which is always <= maxConnections +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::GetMaximumIncomingConnections( void ) const +{ + return maximumIncomingConnections; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns how many open connections there are at this time +// \return the number of open connections +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::NumberOfConnections(void) const +{ + DataStructures::List addresses; + DataStructures::List guids; + GetSystemList(addresses, guids); + return (unsigned short) addresses.Size(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sets the password incoming connections must match in the call to Connect (defaults to none) +// Pass 0 to passwordData to specify no password +// +// Parameters: +// passwordData: A data block that incoming connections must match. This can be just a password, or can be a stream of data. +// - Specify 0 for no password data +// passwordDataLength: The length in bytes of passwordData +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetIncomingPassword( const char* passwordData, int passwordDataLength ) +{ + //if (passwordDataLength > MAX_OFFLINE_DATA_LENGTH) + // passwordDataLength=MAX_OFFLINE_DATA_LENGTH; + + if (passwordDataLength > 255) + passwordDataLength=255; + + if (passwordData==0) + passwordDataLength=0; + + // Not threadsafe but it's not important enough to lock. Who is going to change the password a lot during runtime? + // It won't overflow at least because incomingPasswordLength is an unsigned char + if (passwordDataLength>0) + memcpy(incomingPassword, passwordData, passwordDataLength); + incomingPasswordLength=(unsigned char)passwordDataLength; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetIncomingPassword( char* passwordData, int *passwordDataLength ) +{ + if (passwordData==0) + { + *passwordDataLength=incomingPasswordLength; + return; + } + + if (*passwordDataLength > incomingPasswordLength) + *passwordDataLength=incomingPasswordLength; + + if (*passwordDataLength>0) + memcpy(passwordData, incomingPassword, *passwordDataLength); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Call this to connect to the specified host (ip or domain name) and server port. +// Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. Calling both acts as a true peer. +// This is a non-blocking connection. You know the connection is successful when IsConnected() returns true +// or receive gets a packet with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. If the connection is not +// successful, such as rejected connection or no response then neither of these things will happen. +// Requires that you first call Initialize +// +// Parameters: +// host: Either a dotted IP address or a domain name +// remotePort: Which port to connect to on the remote machine. +// passwordData: A data block that must match the data block on the server. This can be just a password, or can be a stream of data +// passwordDataLength: The length in bytes of passwordData +// +// Returns: +// True on successful initiation. False on incorrect parameters, internal error, or too many existing peers +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ConnectionAttemptResult RakPeer::Connect( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime ) +{ + // If endThreads is true here you didn't call Startup() first. + if ( host == 0 || endThreads || connectionSocketIndex>=socketList.Size() ) + return INVALID_PARAMETER; + + RakAssert(remotePort!=0); + + connectionSocketIndex=GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + + if (passwordDataLength>255) + passwordDataLength=255; + + if (passwordData==0) + passwordDataLength=0; + + // Not threadsafe but it's not important enough to lock. Who is going to change the password a lot during runtime? + // It won't overflow at least because outgoingPasswordLength is an unsigned char +// if (passwordDataLength>0) +// memcpy(outgoingPassword, passwordData, passwordDataLength); +// outgoingPasswordLength=(unsigned char) passwordDataLength; + + // 04/02/09 - Can't remember why I disabled connecting to self, but it seems to work + // Connecting to ourselves in the same instance of the program? +// if ( ( strcmp( host, "127.0.0.1" ) == 0 || strcmp( host, "0.0.0.0" ) == 0 ) && remotePort == mySystemAddress[0].port ) +// return false; + + return SendConnectionRequest( host, remotePort, passwordData, passwordDataLength, publicKey, connectionSocketIndex, 0, sendConnectionAttemptCount, timeBetweenSendConnectionAttemptsMS, timeoutTime); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ConnectionAttemptResult RakPeer::ConnectWithSocket(const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSmartPtr socket, PublicKey *publicKey, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime) +{ + if ( host == 0 || endThreads || socket.IsNull() ) + return INVALID_PARAMETER; + + if (passwordDataLength>255) + passwordDataLength=255; + + if (passwordData==0) + passwordDataLength=0; + + return SendConnectionRequest( host, remotePort, passwordData, passwordDataLength, publicKey, 0, 0, sendConnectionAttemptCount, timeBetweenSendConnectionAttemptsMS, timeoutTime, socket ); + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Stops the network threads and close all connections. Multiple calls are ok. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::Shutdown( unsigned int blockDuration, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ + unsigned i,j; + bool anyActive; + RakNet::TimeMS startWaitingTime; +// SystemAddress systemAddress; + RakNet::TimeMS time; + //unsigned short systemListSize = remoteSystemListSize; // This is done for threading reasons + unsigned short systemListSize = maximumNumberOfPeers; + + if ( blockDuration > 0 ) + { + for ( i = 0; i < systemListSize; i++ ) + { + // remoteSystemList in user thread + if (remoteSystemList[i].isActive) + NotifyAndFlagForShutdown(remoteSystemList[i].systemAddress, false, orderingChannel, disconnectionNotificationPriority); + } + + time = RakNet::GetTimeMS(); + startWaitingTime = time; + while ( time - startWaitingTime < blockDuration ) + { + anyActive=false; + for (j=0; j < systemListSize; j++) + { + // remoteSystemList in user thread + if (remoteSystemList[j].isActive) + { + anyActive=true; + break; + } + } + + // If this system is out of packets to send, then stop waiting + if ( anyActive==false ) + break; + + // This will probably cause the update thread to run which will probably + // send the disconnection notification + + RakSleep(15); + time = RakNet::GetTimeMS(); + } + } + for (i=0; i < pluginListTS.Size(); i++) + { + pluginListTS[i]->OnRakPeerShutdown(); + } + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginListNTS[i]->OnRakPeerShutdown(); + } + + activeSystemListSize=0; + + quitAndDataEvents.SetEvent(); + + endThreads = true; + // Get recvfrom to unblock + for (i=0; i < socketList.Size(); i++) + { + SystemAddress sa2 = socketList[i]->boundAddress; + if (SocketLayer::SendTo(socketList[i]->s, (const char*) &i,1,sa2, socketList[i]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[i]->extraSocketOptions, _FILE_AND_LINE_)!=0) + break; + } + while ( isMainLoopThreadActive ) + { + endThreads = true; + RakSleep(15); + } + + RakNet::TimeMS timeout = RakNet::GetTimeMS()+1000; + while ( isRecvFromLoopThreadActive.GetValue()>0 && RakNet::GetTimeMS()boundAddress; + SocketLayer::SendTo(socketList[i]->s, (const char*) &i,1,sa2, socketList[i]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[i]->extraSocketOptions, _FILE_AND_LINE_); + } + + RakSleep(30); + } + +// char c=0; +// unsigned int socketIndex; + // remoteSystemList in Single thread + for ( i = 0; i < systemListSize; i++ ) + { + // Reserve this reliability layer for ourselves + remoteSystemList[ i ].isActive = false; + + // Remove any remaining packets + remoteSystemList[ i ].reliabilityLayer.Reset(false, remoteSystemList[ i ].MTUSize, false); + remoteSystemList[ i ].rakNetSocket.SetNull(); + + } + + + // Setting maximumNumberOfPeers to 0 allows remoteSystemList to be reallocated in Initialize. + // Setting remoteSystemListSize prevents threads from accessing the reliability layer + maximumNumberOfPeers = 0; + //remoteSystemListSize = 0; + + // Free any packets the user didn't deallocate + packetReturnMutex.Lock(); + for (i=0; i < packetReturnQueue.Size(); i++) + DeallocatePacket(packetReturnQueue[i]); + packetReturnQueue.Clear(_FILE_AND_LINE_); + packetReturnMutex.Unlock(); + packetAllocationPoolMutex.Lock(); + packetAllocationPool.Clear(_FILE_AND_LINE_); + packetAllocationPoolMutex.Unlock(); + + if (isRecvFromLoopThreadActive.GetValue()>0) + { + timeout = RakNet::GetTimeMS()+1000; + while ( isRecvFromLoopThreadActive.GetValue()>0 && RakNet::GetTimeMS() addresses; + DataStructures::List guids; + GetSystemList(addresses, guids); + if (remoteSystems) + { + unsigned short i; + for (i=0; i < *numberOfSystems && i < addresses.Size(); i++) + remoteSystems[i]=addresses[i]; + *numberOfSystems=i; + } + else + { + *numberOfSystems=(unsigned short) addresses.Size(); + } + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::GetNextSendReceipt(void) +{ + sendReceiptSerialMutex.Lock(); + uint32_t retVal = sendReceiptSerial; + sendReceiptSerialMutex.Unlock(); + return retVal; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::IncrementNextSendReceipt(void) +{ + sendReceiptSerialMutex.Lock(); + uint32_t returned = sendReceiptSerial; + if (++sendReceiptSerial==0) + sendReceiptSerial=1; + sendReceiptSerialMutex.Unlock(); + return returned; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sends a block of data to the specified system that you are connected to. +// This function only works while the client is connected (Use the Connect function). +// The first byte should be a message identifier starting at ID_USER_PACKET_ENUM +// +// Parameters: +// data: The block of data to send +// length: The size in bytes of the data to send +// bitStream: The bitstream to send +// priority: What priority level to send on. +// reliability: How reliability to send this data +// orderingChannel: When using ordered or sequenced packets, what channel to order these on. +// - Packets are only ordered relative to other packets on the same stream +// systemAddress: Who to send this packet to, or in the case of broadcasting who not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none +// broadcast: True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. +// Returns: +// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::Send( const char *data, const int length, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber ) +{ +#ifdef _DEBUG + RakAssert( data && length > 0 ); +#endif + RakAssert( !( reliability >= NUMBER_OF_RELIABILITIES || reliability < 0 ) ); + RakAssert( !( priority > NUMBER_OF_PRIORITIES || priority < 0 ) ); + RakAssert( !( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) ); + + if ( data == 0 || length < 0 ) + return 0; + + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + if ( broadcast == false && systemIdentifier.IsUndefined()) + return 0; + + uint32_t usedSendReceipt; + if (forceReceiptNumber!=0) + usedSendReceipt=forceReceiptNumber; + else + usedSendReceipt=IncrementNextSendReceipt(); + + if (broadcast==false && IsLoopbackAddress(systemIdentifier,true)) + { + SendLoopback(data,length); + + if (reliability>=UNRELIABLE_WITH_ACK_RECEIPT) + { + char buff[5]; + buff[0]=ID_SND_RECEIPT_ACKED; + sendReceiptSerialMutex.Lock(); + memcpy(buff+1, &sendReceiptSerial, 4); + sendReceiptSerialMutex.Unlock(); + SendLoopback( buff, 5 ); + } + + return usedSendReceipt; + } + + SendBuffered(data, length*8, priority, reliability, orderingChannel, systemIdentifier, broadcast, RemoteSystemStruct::NO_ACTION, usedSendReceipt); + + return usedSendReceipt; +} + +void RakPeer::SendLoopback( const char *data, const int length ) +{ + if ( data == 0 || length < 0 ) + return; + + Packet *packet = AllocPacket(length, _FILE_AND_LINE_); + memcpy(packet->data, data, length); + packet->systemAddress = GetLoopbackAddress(); + packet->guid=myGuid; + PushBackPacket(packet, false); +} + +uint32_t RakPeer::Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber ) +{ +#ifdef _DEBUG + RakAssert( bitStream->GetNumberOfBytesUsed() > 0 ); +#endif + + RakAssert( !( reliability >= NUMBER_OF_RELIABILITIES || reliability < 0 ) ); + RakAssert( !( priority > NUMBER_OF_PRIORITIES || priority < 0 ) ); + RakAssert( !( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) ); + + if ( bitStream->GetNumberOfBytesUsed() == 0 ) + return 0; + + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + if ( broadcast == false && systemIdentifier.IsUndefined() ) + return 0; + + uint32_t usedSendReceipt; + if (forceReceiptNumber!=0) + usedSendReceipt=forceReceiptNumber; + else + usedSendReceipt=IncrementNextSendReceipt(); + + if (broadcast==false && IsLoopbackAddress(systemIdentifier,true)) + { + SendLoopback((const char*) bitStream->GetData(),bitStream->GetNumberOfBytesUsed()); + if (reliability>=UNRELIABLE_WITH_ACK_RECEIPT) + { + char buff[5]; + buff[0]=ID_SND_RECEIPT_ACKED; + sendReceiptSerialMutex.Lock(); + memcpy(buff+1, &sendReceiptSerial,4); + sendReceiptSerialMutex.Unlock(); + SendLoopback( buff, 5 ); + } + return usedSendReceipt; + } + + // Sends need to be buffered and processed in the update thread because the systemAddress associated with the reliability layer can change, + // from that thread, resulting in a send to the wrong player! While I could mutex the systemAddress, that is much slower than doing this + SendBuffered((const char*)bitStream->GetData(), bitStream->GetNumberOfBitsUsed(), priority, reliability, orderingChannel, systemIdentifier, broadcast, RemoteSystemStruct::NO_ACTION, usedSendReceipt); + + + return usedSendReceipt; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Sends multiple blocks of data, concatenating them automatically. +// +// This is equivalent to: +// RakNet::BitStream bs; +// bs.WriteAlignedBytes(block1, blockLength1); +// bs.WriteAlignedBytes(block2, blockLength2); +// bs.WriteAlignedBytes(block3, blockLength3); +// Send(&bs, ...) +// +// This function only works while the connected +// \param[in] data An array of pointers to blocks of data +// \param[in] lengths An array of integers indicating the length of each block of data +// \param[in] numParameters Length of the arrays data and lengths +// \param[in] priority What priority level to send on. See PacketPriority.h +// \param[in] reliability How reliability to send this data. See PacketPriority.h +// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream +// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none +// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. +// \return False if we are not connected to the specified recipient. True otherwise +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +uint32_t RakPeer::SendList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber ) +{ +#ifdef _DEBUG + RakAssert( data ); +#endif + + if ( data == 0 || lengths == 0 ) + return 0; + + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + if (numParameters==0) + return 0; + + if (lengths==0) + return 0; + + if ( broadcast == false && systemIdentifier.IsUndefined() ) + return 0; + + uint32_t usedSendReceipt; + if (forceReceiptNumber!=0) + usedSendReceipt=forceReceiptNumber; + else + usedSendReceipt=IncrementNextSendReceipt(); + + SendBufferedList(data, lengths, numParameters, priority, reliability, orderingChannel, systemIdentifier, broadcast, RemoteSystemStruct::NO_ACTION, usedSendReceipt); + + return usedSendReceipt; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Gets a packet from the incoming packet queue. Use DeallocatePacket to deallocate the packet after you are done with it. +// Check the Packet struct at the top of CoreNetworkStructures.h for the format of the struct +// +// Returns: +// 0 if no packets are waiting to be handled, otherwise an allocated packet +// If the client is not active this will also return 0, as all waiting packets are flushed when the client is Disconnected +// This also updates all memory blocks associated with synchronized memory and distributed objects +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#ifdef _MSC_VER +#pragma warning( disable : 4701 ) // warning C4701: local variable may be used without having been initialized +#endif +Packet* RakPeer::Receive( void ) +{ + if ( !( IsActive() ) ) + return 0; + + RakNet::Packet *packet; +// Packet **threadPacket; + PluginReceiveResult pluginResult; + + int offset; + unsigned int i; + + for (i=0; i < pluginListTS.Size(); i++) + { + pluginListTS[i]->Update(); + } + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginListNTS[i]->Update(); + } + + do + { + packetReturnMutex.Lock(); + if (packetReturnQueue.IsEmpty()) + packet=0; + else + packet = packetReturnQueue.Pop(); + packetReturnMutex.Unlock(); + if (packet==0) + return 0; + +// unsigned char msgId; + if ( ( packet->length >= sizeof(unsigned char) + sizeof( RakNet::Time ) ) && + ( (unsigned char) packet->data[ 0 ] == ID_TIMESTAMP ) ) + { + offset = sizeof(unsigned char); + ShiftIncomingTimestamp( packet->data + offset, packet->systemAddress ); +// msgId=packet->data[sizeof(unsigned char) + sizeof( RakNet::Time )]; + } +// else + // msgId=packet->data[0]; + + // Some locally generated packets need to be processed by plugins, for example ID_FCM2_NEW_HOST + // The plugin itself should intercept these messages generated remotely +// if (packet->wasGeneratedLocally) +// return packet; + + + CallPluginCallbacks(pluginListTS, packet); + CallPluginCallbacks(pluginListNTS, packet); + + for (i=0; i < pluginListTS.Size(); i++) + { + pluginResult=pluginListTS[i]->OnReceive(packet); + if (pluginResult==RR_STOP_PROCESSING_AND_DEALLOCATE) + { + DeallocatePacket( packet ); + packet=0; // Will do the loop again and get another packet + break; // break out of the enclosing for + } + else if (pluginResult==RR_STOP_PROCESSING) + { + packet=0; + break; + } + } + + for (i=0; i < pluginListNTS.Size(); i++) + { + pluginResult=pluginListNTS[i]->OnReceive(packet); + if (pluginResult==RR_STOP_PROCESSING_AND_DEALLOCATE) + { + DeallocatePacket( packet ); + packet=0; // Will do the loop again and get another packet + break; // break out of the enclosing for + } + else if (pluginResult==RR_STOP_PROCESSING) + { + packet=0; + break; + } + } + + } while(packet==0); + +#ifdef _DEBUG + RakAssert( packet->data ); +#endif + + return packet; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Call this to deallocate a packet returned by Receive +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DeallocatePacket( Packet *packet ) +{ + if ( packet == 0 ) + return; + + if (packet->deleteData) + { + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + packet->~Packet(); + packetAllocationPoolMutex.Lock(); + packetAllocationPool.Release(packet,_FILE_AND_LINE_); + packetAllocationPoolMutex.Unlock(); + } + else + { + rakFree_Ex(packet, _FILE_AND_LINE_ ); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Return the total number of connections we are allowed +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::GetMaximumNumberOfPeers( void ) const +{ + return maximumNumberOfPeers; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). +// +// Parameters: +// target: Which connection to close +// sendDisconnectionNotification: True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. +// channel: If blockDuration > 0, the disconnect packet will be sent on this channel +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::CloseConnection( const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ + /* + // This only be called from the user thread, for the user shutting down. + // From the network thread, this should occur because of ID_DISCONNECTION_NOTIFICATION and ID_CONNECTION_LOST + unsigned j; + for (j=0; j < messageHandlerList.Size(); j++) + { + messageHandlerList[j]->OnClosedConnection( + target.systemAddress==UNASSIGNED_SYSTEM_ADDRESS ? GetSystemAddressFromGuid(target.rakNetGuid) : target.systemAddress, + target.rakNetGuid==UNASSIGNED_RAKNET_GUID ? GetGuidFromSystemAddress(target.systemAddress) : target.rakNetGuid, + LCR_CLOSED_BY_USER); + } + */ + + CloseConnectionInternal(target, sendDisconnectionNotification, false, orderingChannel, disconnectionNotificationPriority); + + // 12/14/09 Return ID_CONNECTION_LOST when calling CloseConnection with sendDisconnectionNotification==false, elsewise it is never returned + if (sendDisconnectionNotification==false && GetConnectionState(target)==IS_CONNECTED) + { + Packet *packet=AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_CONNECTION_LOST; // DeadConnection + packet->guid = target.rakNetGuid==UNASSIGNED_RAKNET_GUID ? GetGuidFromSystemAddress(target.systemAddress) : target.rakNetGuid; + packet->systemAddress = target.systemAddress==UNASSIGNED_SYSTEM_ADDRESS ? GetSystemAddressFromGuid(target.rakNetGuid) : target.systemAddress; + packet->systemAddress.systemIndex = (SystemIndex) GetIndexFromSystemAddress(packet->systemAddress); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + packet->wasGeneratedLocally=true; // else processed twice + AddPacketToProducer(packet); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Cancel a pending connection attempt +// If we are already connected, the connection stays open +// \param[in] target Which system to cancel +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::CancelConnectionAttempt( const SystemAddress target ) +{ + unsigned int i; + + // Cancel pending connection attempt, if there is one + i=0; + requestedConnectionQueueMutex.Lock(); + while (i < requestedConnectionQueue.Size()) + { + if (requestedConnectionQueue[i]->systemAddress==target) + { +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Deleting requestedConnectionQueue %i client_handshake %x\n", i, requestedConnectionQueue[ i ]->client_handshake); + RakNet::OP_DELETE(requestedConnectionQueue[i]->client_handshake, _FILE_AND_LINE_ ); +#endif + RakNet::OP_DELETE(requestedConnectionQueue[i], _FILE_AND_LINE_ ); + requestedConnectionQueue.RemoveAtIndex(i); + break; + } + else + i++; + } + requestedConnectionQueueMutex.Unlock(); + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ConnectionState RakPeer::GetConnectionState(const AddressOrGUID systemIdentifier) +{ + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + unsigned int i=0; + requestedConnectionQueueMutex.Lock(); + for (; i < requestedConnectionQueue.Size(); i++) + { + if (requestedConnectionQueue[i]->systemAddress==systemIdentifier.systemAddress) + { + requestedConnectionQueueMutex.Unlock(); + return IS_PENDING; + } + } + requestedConnectionQueueMutex.Unlock(); + } + + int index; + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + index = GetIndexFromSystemAddress(systemIdentifier.systemAddress, false); + } + else + { + index = GetIndexFromGuid(systemIdentifier.rakNetGuid); + } + + if (index==-1) + return IS_NOT_CONNECTED; + + if (remoteSystemList[index].isActive==false) + return IS_DISCONNECTED; + + switch (remoteSystemList[index].connectMode) + { + case RemoteSystemStruct::DISCONNECT_ASAP: + return IS_DISCONNECTING; + case RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY: + return IS_SILENTLY_DISCONNECTING; + case RemoteSystemStruct::DISCONNECT_ON_NO_ACK: + return IS_DISCONNECTING; + case RemoteSystemStruct::REQUESTED_CONNECTION: + return IS_CONNECTING; + case RemoteSystemStruct::HANDLING_CONNECTION_REQUEST: + return IS_CONNECTING; + case RemoteSystemStruct::UNVERIFIED_SENDER: + return IS_CONNECTING; + case RemoteSystemStruct::CONNECTED: + return IS_CONNECTED; + default: + return IS_NOT_CONNECTED; + } + + return IS_NOT_CONNECTED; +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Given a systemAddress, returns an index from 0 to the maximum number of players allowed - 1. +// +// Parameters +// systemAddress - The systemAddress to search for +// +// Returns +// An integer from 0 to the maximum number of peers -1, or -1 if that player is not found +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetIndexFromSystemAddress( const SystemAddress systemAddress ) const +{ + return GetIndexFromSystemAddress(systemAddress, false); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// This function is only useful for looping through all players. +// +// Parameters +// index - an integer between 0 and the maximum number of players allowed - 1. +// +// Returns +// A valid systemAddress or UNASSIGNED_SYSTEM_ADDRESS if no such player at that index +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetSystemAddressFromIndex( int index ) +{ + // remoteSystemList in user thread + //if ( index >= 0 && index < remoteSystemListSize ) + if ( index >= 0 && index < maximumNumberOfPeers ) + if (remoteSystemList[index].isActive && remoteSystemList[ index ].connectMode==RakPeer::RemoteSystemStruct::CONNECTED) // Don't give the user players that aren't fully connected, since sends will fail + return remoteSystemList[ index ].systemAddress; + + return UNASSIGNED_SYSTEM_ADDRESS; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Same as GetSystemAddressFromIndex but returns RakNetGUID +// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. +// \return The RakNetGUID +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakNetGUID RakPeer::GetGUIDFromIndex( int index ) +{ + // remoteSystemList in user thread + //if ( index >= 0 && index < remoteSystemListSize ) + if ( index >= 0 && index < maximumNumberOfPeers ) + if (remoteSystemList[index].isActive && remoteSystemList[ index ].connectMode==RakPeer::RemoteSystemStruct::CONNECTED) // Don't give the user players that aren't fully connected, since sends will fail + return remoteSystemList[ index ].guid; + + return UNASSIGNED_RAKNET_GUID; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient +// Indices match each other, so \a addresses[0] and \a guids[0] refer to the same system +// \param[out] addresses All system addresses. Size of the list is the number of connections. Size of the list will match the size of the \a guids list. +// \param[out] guids All guids. Size of the list is the number of connections. Size of the list will match the size of the \a addresses list. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetSystemList(DataStructures::List &addresses, DataStructures::List &guids) const +{ + addresses.Clear(false, _FILE_AND_LINE_); + guids.Clear(false, _FILE_AND_LINE_); + + if ( remoteSystemList == 0 || endThreads == true ) + return; + + unsigned int i; + for (i=0; i < activeSystemListSize; i++) + { + if ((activeSystemList[i])->isActive && + (activeSystemList[i])->connectMode==RakPeer::RemoteSystemStruct::CONNECTED) + { + addresses.Push((activeSystemList[i])->systemAddress, _FILE_AND_LINE_ ); + guids.Push((activeSystemList[i])->guid, _FILE_AND_LINE_ ); + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Bans an IP from connecting. Banned IPs persist between connections. +// +// Parameters +// IP - Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will ban +// All IP addresses starting with 128.0.0 +// milliseconds - how many ms for a temporary ban. Use 0 for a permanent ban +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AddToBanList( const char *IP, RakNet::TimeMS milliseconds ) +{ + unsigned index; + RakNet::TimeMS time = RakNet::GetTimeMS(); + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return ; + + // If this guy is already in the ban list, do nothing + index = 0; + + banListMutex.Lock(); + + for ( ; index < banList.Size(); index++ ) + { + if ( strcmp( IP, banList[ index ]->IP ) == 0 ) + { + // Already in the ban list. Just update the time + if (milliseconds==0) + banList[ index ]->timeout=0; // Infinite + else + banList[ index ]->timeout=time+milliseconds; + banListMutex.Unlock(); + return; + } + } + + banListMutex.Unlock(); + + BanStruct *banStruct = RakNet::OP_NEW( _FILE_AND_LINE_ ); + banStruct->IP = (char*) rakMalloc_Ex( 16, _FILE_AND_LINE_ ); + if (milliseconds==0) + banStruct->timeout=0; // Infinite + else + banStruct->timeout=time+milliseconds; + strcpy( banStruct->IP, IP ); + banListMutex.Lock(); + banList.Insert( banStruct, _FILE_AND_LINE_ ); + banListMutex.Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Allows a previously banned IP to connect. +// +// Parameters +// IP - Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will ban +// All IP addresses starting with 128.0.0 +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::RemoveFromBanList( const char *IP ) +{ + unsigned index; + BanStruct *temp; + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return ; + + index = 0; + temp=0; + + banListMutex.Lock(); + + for ( ; index < banList.Size(); index++ ) + { + if ( strcmp( IP, banList[ index ]->IP ) == 0 ) + { + temp = banList[ index ]; + banList[ index ] = banList[ banList.Size() - 1 ]; + banList.RemoveAtIndex( banList.Size() - 1 ); + break; + } + } + + banListMutex.Unlock(); + + if (temp) + { + rakFree_Ex(temp->IP, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(temp, _FILE_AND_LINE_); + } + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Allows all previously banned IPs to connect. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearBanList( void ) +{ + unsigned index; + index = 0; + banListMutex.Lock(); + + for ( ; index < banList.Size(); index++ ) + { + rakFree_Ex(banList[ index ]->IP, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(banList[ index ], _FILE_AND_LINE_); + } + + banList.Clear(false, _FILE_AND_LINE_); + + banListMutex.Unlock(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetLimitIPConnectionFrequency(bool b) +{ + limitConnectionFrequencyFromTheSameIP=b; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Determines if a particular IP is banned. +// +// Parameters +// IP - Complete dotted IP address +// +// Returns +// True if IP matches any IPs in the ban list, accounting for any wildcards. +// False otherwise. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsBanned( const char *IP ) +{ + unsigned banListIndex, characterIndex; + RakNet::TimeMS time; + BanStruct *temp; + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return false; + + banListIndex = 0; + + if ( banList.Size() == 0 ) + return false; // Skip the mutex if possible + + time = RakNet::GetTimeMS(); + + banListMutex.Lock(); + + while ( banListIndex < banList.Size() ) + { + if (banList[ banListIndex ]->timeout>0 && banList[ banListIndex ]->timeoutIP, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(temp, _FILE_AND_LINE_); + } + else + { + characterIndex = 0; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) + { + if ( banList[ banListIndex ]->IP[ characterIndex ] == IP[ characterIndex ] ) + { + // Equal characters + + if ( IP[ characterIndex ] == 0 ) + { + banListMutex.Unlock(); + // End of the string and the strings match + + return true; + } + + characterIndex++; + } + + else + { + if ( banList[ banListIndex ]->IP[ characterIndex ] == 0 || IP[ characterIndex ] == 0 ) + { + // End of one of the strings + break; + } + + // Characters do not match + if ( banList[ banListIndex ]->IP[ characterIndex ] == '*' ) + { + banListMutex.Unlock(); + + // Domain is banned. + return true; + } + + // Characters do not match and it is not a * + break; + } + } + + banListIndex++; + } + } + + banListMutex.Unlock(); + + // No match found. + return false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Send a ping to the specified connected system. +// +// Parameters: +// target - who to ping +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::Ping( const SystemAddress target ) +{ + PingInternal(target, false, UNRELIABLE); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Send a ping to the specified unconnected system. +// The remote system, if it is Initialized, will respond with ID_UNCONNECTED_PONG. +// The final ping time will be encoded in the following sizeof(RakNet::TimeMS) bytes. (Default is 4 bytes - See __GET_TIME_64BIT in RakNetTypes.h +// +// Parameters: +// host: Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. +// remotePort: Which port to connect to on the remote machine. +// onlyReplyOnAcceptingConnections: Only request a reply if the remote system has open connections +// connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::Ping( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex ) +{ + if ( host == 0 ) + return false; + + // If this assert hits then Startup wasn't called or the call failed. + RakAssert(connectionSocketIndex < socketList.Size()); + +// if ( IsActive() == false ) +// return; + + RakNet::BitStream bitStream( sizeof(unsigned char) + sizeof(RakNet::Time) ); + if ( onlyReplyOnAcceptingConnections ) + bitStream.Write((MessageID)ID_UNCONNECTED_PING_OPEN_CONNECTIONS); + else + bitStream.Write((MessageID)ID_UNCONNECTED_PING); + + bitStream.Write(RakNet::GetTime()); + + bitStream.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + + // No timestamp for 255.255.255.255 + unsigned int realIndex = GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + + SystemAddress systemAddress; + systemAddress.FromStringExplicitPort(host,remotePort, socketList[realIndex]->boundAddress.GetIPVersion()); + systemAddress.FixForIPVersion(socketList[realIndex]->boundAddress); + + unsigned i; + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnDirectSocketSend((const char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( socketList[realIndex]->s, (const char*)bitStream.GetData(), (int) bitStream.GetNumberOfBytesUsed(), systemAddress, socketList[realIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[realIndex]->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the average of all ping times read for a specified target +// +// Parameters: +// target - whose time to read +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetAveragePing( const AddressOrGUID systemIdentifier ) +{ + int sum, quantity; + RemoteSystemStruct *remoteSystem = GetRemoteSystem( systemIdentifier, false, false ); + + if ( remoteSystem == 0 ) + return -1; + + for ( sum = 0, quantity = 0; quantity < PING_TIMES_ARRAY_SIZE; quantity++ ) + { + if ( remoteSystem->pingAndClockDifferential[ quantity ].pingTime == 65535 ) + break; + else + sum += remoteSystem->pingAndClockDifferential[ quantity ].pingTime; + } + + if ( quantity > 0 ) + return sum / quantity; + else + return -1; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the last ping time read for the specific player or -1 if none read yet +// +// Parameters: +// target - whose time to read +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetLastPing( const AddressOrGUID systemIdentifier ) const +{ + RemoteSystemStruct * remoteSystem = GetRemoteSystem( systemIdentifier, false, false ); + + if ( remoteSystem == 0 ) + return -1; + +// return (int)(remoteSystem->reliabilityLayer.GetAckPing()/(RakNet::TimeUS)1000); + + if ( remoteSystem->pingAndClockDifferentialWriteIndex == 0 ) + return remoteSystem->pingAndClockDifferential[ PING_TIMES_ARRAY_SIZE - 1 ].pingTime; + else + return remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex - 1 ].pingTime; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the lowest ping time read or -1 if none read yet +// +// Parameters: +// target - whose time to read +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetLowestPing( const AddressOrGUID systemIdentifier ) const +{ + RemoteSystemStruct * remoteSystem = GetRemoteSystem( systemIdentifier, false, false ); + + if ( remoteSystem == 0 ) + return -1; + + return remoteSystem->lowestPing; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Ping the remote systems every so often. This is off by default +// This will work anytime +// +// Parameters: +// doPing - True to start occasional pings. False to stop them. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetOccasionalPing( bool doPing ) +{ + occasionalPing = doPing; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Length should be under 400 bytes, as a security measure against flood attacks +// Sets the data to send with an (LAN server discovery) /(offline ping) response +// See the Ping sample project for how this is used. +// data: a block of data to store, or 0 for none +// length: The length of data in bytes, or 0 for none +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetOfflinePingResponse( const char *data, const unsigned int length ) +{ + RakAssert(length < 400); + + rakPeerMutexes[ offlinePingResponse_Mutex ].Lock(); + offlinePingResponse.Reset(); + + if ( data && length > 0 ) + offlinePingResponse.Write( data, length ); + + rakPeerMutexes[ offlinePingResponse_Mutex ].Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns pointers to a copy of the data passed to SetOfflinePingResponse +// \param[out] data A pointer to a copy of the data passed to \a SetOfflinePingResponse() +// \param[out] length A pointer filled in with the length parameter passed to SetOfflinePingResponse() +// \sa SetOfflinePingResponse +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetOfflinePingResponse( char **data, unsigned int *length ) +{ + rakPeerMutexes[ offlinePingResponse_Mutex ].Lock(); + *data = (char*) offlinePingResponse.GetData(); + *length = (int) offlinePingResponse.GetNumberOfBytesUsed(); + rakPeerMutexes[ offlinePingResponse_Mutex ].Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Return the unique SystemAddress that represents you on the the network +// Note that unlike in previous versions, this is a struct and is not sequential +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetInternalID( const SystemAddress systemAddress, const int index ) const +{ + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + return ipList[index]; + } + else + { + +// SystemAddress returnValue; + RemoteSystemStruct * remoteSystem = GetRemoteSystemFromSystemAddress( systemAddress, false, true ); + if (remoteSystem==0) + return UNASSIGNED_SYSTEM_ADDRESS; + + return remoteSystem->theirInternalSystemAddress[index]; + /* + sockaddr_in sa; + socklen_t len = sizeof(sa); + if (getsockname__(connectionSockets[remoteSystem->connectionSocketIndex], (sockaddr*)&sa, &len)!=0) + return UNASSIGNED_SYSTEM_ADDRESS; + returnValue.port=ntohs(sa.sin_port); + returnValue.binaryAddress=sa.sin_addr.s_addr; + return returnValue; +*/ + + + + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Return the unique address identifier that represents you on the the network and is based on your external +// IP / port (the IP / port the specified player uses to communicate with you) +// Note that unlike in previous versions, this is a struct and is not sequential +// +// Parameters: +// target: Which remote system you are referring to for your external ID +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetExternalID( const SystemAddress target ) const +{ + unsigned i; + SystemAddress inactiveExternalId; + + inactiveExternalId=UNASSIGNED_SYSTEM_ADDRESS; + + if (target==UNASSIGNED_SYSTEM_ADDRESS) + return firstExternalID; + + // First check for active connection with this systemAddress + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].systemAddress == target ) + { + if ( remoteSystemList[ i ].isActive ) + return remoteSystemList[ i ].myExternalSystemAddress; + else if (remoteSystemList[ i ].myExternalSystemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + inactiveExternalId=remoteSystemList[ i ].myExternalSystemAddress; + } + } + + return inactiveExternalId; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +const RakNetGUID RakPeer::GetMyGUID(void) const +{ + return myGuid; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetMyBoundAddress(const int socketIndex) +{ + DataStructures::List > sockets; + GetSockets( sockets ); + if (sockets.Size()>0) + return sockets[socketIndex]->boundAddress; + else + return UNASSIGNED_SYSTEM_ADDRESS; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +const RakNetGUID& RakPeer::GetGuidFromSystemAddress( const SystemAddress input ) const +{ + if (input==UNASSIGNED_SYSTEM_ADDRESS) + return myGuid; + + if (input.systemIndex!=(SystemIndex)-1 && input.systemIndexreliabilityLayer.SetTimeoutTime(timeMS); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNet::TimeMS RakPeer::GetTimeoutTime( const SystemAddress target ) +{ + if (target==UNASSIGNED_SYSTEM_ADDRESS) + { + return defaultTimeoutTime; + } + else + { + RemoteSystemStruct * remoteSystem = GetRemoteSystemFromSystemAddress( target, false, true ); + + if ( remoteSystem != 0 ) + remoteSystem->reliabilityLayer.GetTimeoutTime(); + } + return defaultTimeoutTime; +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the current MTU size +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetMTUSize( const SystemAddress target ) const +{ + if (target!=UNASSIGNED_SYSTEM_ADDRESS) + { + RemoteSystemStruct *rss=GetRemoteSystemFromSystemAddress(target, false, true); + if (rss) + return rss->MTUSize; + } + return defaultMTUSize; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Returns the number of IP addresses we have +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetNumberOfAddresses( void ) +{ + + int i = 0; + + while ( ipList[ i ]!=UNASSIGNED_SYSTEM_ADDRESS ) + i++; + + return i; + + + + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns an IP address at index 0 to GetNumberOfAddresses-1 +// \param[in] index index into the list of IP addresses +// \return The local IP address at this index +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +const char* RakPeer::GetLocalIP( unsigned int index ) +{ + if (IsActive()==false) + { + // Fill out ipList structure + + SocketLayer::GetMyIP( ipList ); + + } + + + static char str[128]; + ipList[index].ToString(false,str); + return str; + + + + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Is this a local IP? +// \param[in] An IP address to check +// \return True if this is one of the IP addresses returned by GetLocalIP +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsLocalIP( const char *ip ) +{ + if (ip==0 || ip[0]==0) + return false; + + + if (strcmp(ip, "127.0.0.1")==0 || strcmp(ip, "localhost")==0) + return true; + + int num = GetNumberOfAddresses(); + int i; + for (i=0; i < num; i++) + { + if (strcmp(ip, GetLocalIP(i))==0) + return true; + } + + + + + return false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Allow or disallow connection responses from any IP. Normally this should be false, but may be necessary +// when connection to servers with multiple IP addresses +// +// Parameters: +// allow - True to allow this behavior, false to not allow. Defaults to false. Value persists between connections +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AllowConnectionResponseIPMigration( bool allow ) +{ + allowConnectionResponseIPMigration = allow; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Description: +// Sends a message ID_ADVERTISE_SYSTEM to the remote unconnected system. +// This will tell the remote system our external IP outside the LAN, and can be used for NAT punch through +// +// Requires: +// The sender and recipient must already be started via a successful call to Initialize +// +// host: Either a dotted IP address or a domain name +// remotePort: Which port to connect to on the remote machine. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::AdvertiseSystem( const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex ) +{ + RakNet::BitStream bs; + bs.Write((MessageID)ID_ADVERTISE_SYSTEM); + bs.WriteAlignedBytes((const unsigned char*) data,dataLength); + return SendOutOfBand(host, remotePort, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), connectionSocketIndex ); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. +// ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived +// As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. +// Defaults to 0 (never return this notification) +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetSplitMessageProgressInterval(int interval) +{ + RakAssert(interval>=0); + splitMessageProgressInterval=interval; + for ( unsigned short i = 0; i < maximumNumberOfPeers; i++ ) + remoteSystemList[ i ].reliabilityLayer.SetSplitMessageProgressInterval(splitMessageProgressInterval); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns what was passed to SetSplitMessageProgressInterval() +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetSplitMessageProgressInterval(void) const +{ + return splitMessageProgressInterval; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Set how long to wait before giving up on sending an unreliable message +// Useful if the network is clogged up. +// Set to 0 or less to never timeout. Defaults to 0. +// timeoutMS How many ms to wait before simply not sending an unreliable message. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetUnreliableTimeout(RakNet::TimeMS timeoutMS) +{ + unreliableTimeout=timeoutMS; + for ( unsigned short i = 0; i < maximumNumberOfPeers; i++ ) + remoteSystemList[ i ].reliabilityLayer.SetUnreliableTimeout(unreliableTimeout); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Send a message to host, with the IP socket option TTL set to 3 +// This message will not reach the host, but will open the router. +// Used for NAT-Punchthrough +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SendTTL( const char* host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex ) +{ + char fakeData[2]; + fakeData[0]=0; + fakeData[1]=1; + unsigned int realIndex = GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + SystemAddress systemAddress = socketList[realIndex]->boundAddress; + systemAddress.FromStringExplicitPort(host,remotePort); + SocketLayer::SendToTTL( socketList[realIndex]->s, (char*)fakeData, 2, systemAddress, ttl ); +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Attatches a Plugin interface to run code automatically on message receipt in the Receive call +// +// \param messageHandler Pointer to a plugin to attach +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AttachPlugin( PluginInterface2 *plugin ) +{ + bool isNotThreadsafe = plugin->UsesReliabilityLayer(); + if (isNotThreadsafe) + { + if (pluginListNTS.GetIndexOf(plugin)==MAX_UNSIGNED_LONG) + { + plugin->SetRakPeerInterface(this); + plugin->OnAttach(); + pluginListNTS.Insert(plugin, _FILE_AND_LINE_); + } + } + else + { + if (pluginListTS.GetIndexOf(plugin)==MAX_UNSIGNED_LONG) + { + plugin->SetRakPeerInterface(this); + plugin->OnAttach(); + pluginListTS.Insert(plugin, _FILE_AND_LINE_); + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Detaches a Plugin interface to run code automatically on message receipt +// +// \param messageHandler Pointer to a plugin to detach +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DetachPlugin( PluginInterface2 *plugin ) +{ + if (plugin==0) + return; + + unsigned int index; + + bool isNotThreadsafe = plugin->UsesReliabilityLayer(); + if (isNotThreadsafe) + { + index = pluginListNTS.GetIndexOf(plugin); + if (index!=MAX_UNSIGNED_LONG) + { + // Unordered list so delete from end for speed + pluginListNTS[index]=pluginListNTS[pluginListNTS.Size()-1]; + pluginListNTS.RemoveFromEnd(); + } + } + else + { + index = pluginListTS.GetIndexOf(plugin); + if (index!=MAX_UNSIGNED_LONG) + { + // Unordered list so delete from end for speed + pluginListTS[index]=pluginListTS[pluginListTS.Size()-1]; + pluginListTS.RemoveFromEnd(); + } + } + plugin->OnDetach(); + plugin->SetRakPeerInterface(0); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Put a packet back at the end of the receive queue in case you don't want to deal with it immediately +// +// packet The packet you want to push back. +// pushAtHead True to push the packet so that the next receive call returns it. False to push it at the end of the queue (obviously pushing it at the end makes the packets out of order) +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::PushBackPacket( Packet *packet, bool pushAtHead) +{ + if (packet==0) + return; + + unsigned i; + for (i=0; i < pluginListTS.Size(); i++) + pluginListTS[i]->OnPushBackPacket((const char*) packet->data, packet->bitSize, packet->systemAddress); + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnPushBackPacket((const char*) packet->data, packet->bitSize, packet->systemAddress); + + packetReturnMutex.Lock(); + if (pushAtHead) + packetReturnQueue.PushAtHead(packet,0,_FILE_AND_LINE_); + else + packetReturnQueue.Push(packet,_FILE_AND_LINE_); + packetReturnMutex.Unlock(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ChangeSystemAddress(RakNetGUID guid, const SystemAddress &systemAddress) +{ + BufferedCommandStruct *bcs; + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->data = 0; + bcs->systemIdentifier.systemAddress=systemAddress; + bcs->systemIdentifier.rakNetGuid=guid; + bcs->command=BufferedCommandStruct::BCS_CHANGE_SYSTEM_ADDRESS; + bufferedCommands.Push(bcs); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Packet* RakPeer::AllocatePacket(unsigned dataSize) +{ + return AllocPacket(dataSize, _FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakNetSmartPtr RakPeer::GetSocket( const SystemAddress target ) +{ + // Send a query to the thread to get the socket, and return when we got it + BufferedCommandStruct *bcs; + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->command=BufferedCommandStruct::BCS_GET_SOCKET; + bcs->systemIdentifier=target; + bcs->data=0; + bufferedCommands.Push(bcs); + + // Block up to one second to get the socket, although it should actually take virtually no time + SocketQueryOutput *sqo; + RakNet::TimeMS stopWaiting = RakNet::GetTimeMS()+1000; + DataStructures::List > output; + while (RakNet::GetTimeMS() < stopWaiting) + { + if (isMainLoopThreadActive==false) + return RakNetSmartPtr(); + + RakSleep(0); + + sqo = socketQueryOutput.Pop(); + if (sqo) + { + output=sqo->sockets; + sqo->sockets.Clear(false, _FILE_AND_LINE_); + socketQueryOutput.Deallocate(sqo, _FILE_AND_LINE_); + if (output.Size()) + return output[0]; + break; + } + } + return RakNetSmartPtr(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GetSockets( DataStructures::List > &sockets ) +{ + sockets.Clear(false, _FILE_AND_LINE_); + + // Send a query to the thread to get the socket, and return when we got it + BufferedCommandStruct *bcs; + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->command=BufferedCommandStruct::BCS_GET_SOCKET; + bcs->systemIdentifier=UNASSIGNED_SYSTEM_ADDRESS; + bcs->data=0; + bufferedCommands.Push(bcs); + + // Block up to one second to get the socket, although it should actually take virtually no time + SocketQueryOutput *sqo; + RakNetSmartPtr output; + while (1) + { + if (isMainLoopThreadActive==false) + return; + + RakSleep(0); + + sqo = socketQueryOutput.Pop(); + if (sqo) + { + sockets=sqo->sockets; + sqo->sockets.Clear(false, _FILE_AND_LINE_); + socketQueryOutput.Deallocate(sqo, _FILE_AND_LINE_); + return; + } + } + return; +} +void RakPeer::ReleaseSockets( DataStructures::List > &sockets ) +{ + sockets.Clear(false,_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Adds simulated ping and packet loss to the outgoing data flow. +// To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and maxSendBPS value on each. +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ApplyNetworkSimulator( float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance) +{ +#ifdef _DEBUG + if (remoteSystemList) + { + unsigned short i; + for (i=0; i < maximumNumberOfPeers; i++) + //for (i=0; i < remoteSystemListSize; i++) + remoteSystemList[i].reliabilityLayer.ApplyNetworkSimulator(packetloss, minExtraPing, extraPingVariance); + } + + _packetloss=packetloss; + _minExtraPing=minExtraPing; + _extraPingVariance=extraPingVariance; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void RakPeer::SetPerConnectionOutgoingBandwidthLimit( unsigned maxBitsPerSecond ) +{ + maxOutgoingBPS=maxBitsPerSecond; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Returns if you previously called ApplyNetworkSimulator +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsNetworkSimulatorActive( void ) +{ +#ifdef _DEBUG + return _packetloss>0 || _minExtraPing>0 || _extraPingVariance>0; +#else + return false; +#endif +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::WriteOutOfBandHeader(RakNet::BitStream *bitStream) +{ + bitStream->Write((MessageID)ID_OUT_OF_BAND_INTERNAL); + bitStream->Write(myGuid); + bitStream->WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SetUserUpdateThread(void (*_userUpdateThreadPtr)(RakPeerInterface *, void *), void *_userUpdateThreadData) +{ + userUpdateThreadPtr=_userUpdateThreadPtr; + userUpdateThreadData=_userUpdateThreadData; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::SendOutOfBand(const char *host, unsigned short remotePort, const char *data, BitSize_t dataLength, unsigned connectionSocketIndex ) +{ + if ( IsActive() == false ) + return false; + + if (host==0 || host[0]==0) + return false; + + // If this assert hits then Startup wasn't called or the call failed. + RakAssert(connectionSocketIndex < socketList.Size()); + + // This is a security measure. Don't send data longer than this value + RakAssert(dataLength <= (MAX_OFFLINE_DATA_LENGTH + sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID))); + + if (host==0) + return false; + + // 34 bytes + RakNet::BitStream bitStream; + WriteOutOfBandHeader(&bitStream); + + if (dataLength>0) + { + bitStream.Write(data, dataLength); + } + + unsigned int realIndex = GetRakNetSocketFromUserConnectionSocketIndex(connectionSocketIndex); + + SystemAddress systemAddress; + systemAddress.FromStringExplicitPort(host,remotePort, socketList[realIndex]->boundAddress.GetIPVersion()); + systemAddress.FixForIPVersion(socketList[realIndex]->boundAddress); + + unsigned i; + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnDirectSocketSend((const char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), systemAddress); + + SocketLayer::SendTo( socketList[realIndex]->s, (const char*)bitStream.GetData(), (int) bitStream.GetNumberOfBytesUsed(), systemAddress, socketList[realIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[realIndex]->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakNetStatistics * RakPeer::GetStatistics( const SystemAddress systemAddress, RakNetStatistics *rns ) +{ + static RakNetStatistics staticStatistics; + RakNetStatistics *systemStats; + if (rns==0) + systemStats=&staticStatistics; + else + systemStats=rns; + + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS) + { + bool firstWrite=false; + // Return a crude sum + for ( unsigned short i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].isActive) + { + RakNetStatistics rnsTemp; + remoteSystemList[ i ].reliabilityLayer.GetStatistics(&rnsTemp); + + if (firstWrite==false) + { + memcpy(systemStats, &rnsTemp, sizeof(RakNetStatistics)); + firstWrite=true; + } + else + (*systemStats)+=rnsTemp; + } + } + return systemStats; + } + else + { + RemoteSystemStruct * rss; + rss = GetRemoteSystemFromSystemAddress( systemAddress, false, false ); + if ( rss && endThreads==false ) + { + rss->reliabilityLayer.GetStatistics(systemStats); + return systemStats; + } + } + + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::GetStatistics( const int index, RakNetStatistics *rns ) +{ + if (index < maximumNumberOfPeers && remoteSystemList[ index ].isActive) + { + remoteSystemList[ index ].reliabilityLayer.GetStatistics(rns); + return true; + } + return false; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetReceiveBufferSize(void) +{ + unsigned int size; + packetReturnMutex.Lock(); + size=packetReturnQueue.Size(); + packetReturnMutex.Unlock(); + return size; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetIndexFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread ) const +{ + unsigned i; + + if ( systemAddress == UNASSIGNED_SYSTEM_ADDRESS ) + return -1; + + if (systemAddress.systemIndex!=(SystemIndex)-1 && systemAddress.systemIndex < maximumNumberOfPeers && remoteSystemList[systemAddress.systemIndex].systemAddress==systemAddress && remoteSystemList[ systemAddress.systemIndex ].isActive) + return systemAddress.systemIndex; + + if (calledFromNetworkThread) + { + return GetRemoteSystemIndex(systemAddress); + } + else + { + // remoteSystemList in user and network thread + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].isActive && remoteSystemList[ i ].systemAddress == systemAddress ) + return i; + + // If no active results found, try previously active results. + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].systemAddress == systemAddress ) + return i; + } + + return -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +int RakPeer::GetIndexFromGuid( const RakNetGUID guid ) +{ + unsigned i; + + if ( guid == UNASSIGNED_RAKNET_GUID ) + return -1; + + if (guid.systemIndex!=(SystemIndex)-1 && guid.systemIndex < maximumNumberOfPeers && remoteSystemList[guid.systemIndex].guid==guid && remoteSystemList[ guid.systemIndex ].isActive) + return guid.systemIndex; + + // remoteSystemList in user and network thread + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].isActive && remoteSystemList[ i ].guid == guid ) + return i; + + // If no active results found, try previously active results. + for ( i = 0; i < maximumNumberOfPeers; i++ ) + if ( remoteSystemList[ i ].guid == guid ) + return i; + + return -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#if LIBCAT_SECURITY==1 +bool RakPeer::GenerateConnectionRequestChallenge(RequestedConnectionStruct *rcs,PublicKey *publicKey) +{ + CAT_AUDIT_PRINTF("AUDIT: In GenerateConnectionRequestChallenge()\n"); + + rcs->client_handshake = 0; + rcs->publicKeyMode = PKM_INSECURE_CONNECTION; + + if (!publicKey) return true; + + switch (publicKey->publicKeyMode) + { + default: + case PKM_INSECURE_CONNECTION: + break; + + case PKM_ACCEPT_ANY_PUBLIC_KEY: + CAT_OBJCLR(rcs->remote_public_key); + rcs->client_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + + rcs->publicKeyMode = PKM_ACCEPT_ANY_PUBLIC_KEY; + break; + + case PKM_USE_TWO_WAY_AUTHENTICATION: + if (publicKey->myPublicKey == 0 || publicKey->myPrivateKey == 0 || + publicKey->remoteServerPublicKey == 0) + { + return false; + } + + rcs->client_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + memcpy(rcs->remote_public_key, publicKey->remoteServerPublicKey, cat::EasyHandshake::PUBLIC_KEY_BYTES); + + if (!rcs->client_handshake->Initialize(publicKey->remoteServerPublicKey) || + !rcs->client_handshake->SetIdentity(publicKey->myPublicKey, publicKey->myPrivateKey) || + !rcs->client_handshake->GenerateChallenge(rcs->handshakeChallenge)) + { + CAT_AUDIT_PRINTF("AUDIT: Failure initializing new client_handshake object with identity for this RequestedConnectionStruct\n"); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + rcs->client_handshake=0; + return false; + } + + CAT_AUDIT_PRINTF("AUDIT: Success initializing new client handshake object with identity for this RequestedConnectionStruct -- pre-generated challenge\n"); + + rcs->publicKeyMode = PKM_USE_TWO_WAY_AUTHENTICATION; + break; + + case PKM_USE_KNOWN_PUBLIC_KEY: + if (publicKey->remoteServerPublicKey == 0) + return false; + + rcs->client_handshake = RakNet::OP_NEW(_FILE_AND_LINE_); + memcpy(rcs->remote_public_key, publicKey->remoteServerPublicKey, cat::EasyHandshake::PUBLIC_KEY_BYTES); + + if (!rcs->client_handshake->Initialize(publicKey->remoteServerPublicKey) || + !rcs->client_handshake->GenerateChallenge(rcs->handshakeChallenge)) + { + CAT_AUDIT_PRINTF("AUDIT: Failure initializing new client_handshake object for this RequestedConnectionStruct\n"); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + rcs->client_handshake=0; + return false; + } + + CAT_AUDIT_PRINTF("AUDIT: Success initializing new client handshake object for this RequestedConnectionStruct -- pre-generated challenge\n"); + + rcs->publicKeyMode = PKM_USE_KNOWN_PUBLIC_KEY; + break; + } + + return true; +} +#endif +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ConnectionAttemptResult RakPeer::SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime ) +{ + RakAssert(passwordDataLength <= 256); + RakAssert(remotePort!=0); + SystemAddress systemAddress; + if (!systemAddress.FromStringExplicitPort(host,remotePort,socketList[connectionSocketIndex]->boundAddress.GetIPVersion())) + return CANNOT_RESOLVE_DOMAIN_NAME; + + // Already connected? + if (GetRemoteSystemFromSystemAddress(systemAddress, false, true)) + return ALREADY_CONNECTED_TO_ENDPOINT; + + //RequestedConnectionStruct *rcs = (RequestedConnectionStruct *) rakMalloc_Ex(sizeof(RequestedConnectionStruct), _FILE_AND_LINE_); + RequestedConnectionStruct *rcs = RakNet::OP_NEW(_FILE_AND_LINE_); + + rcs->systemAddress=systemAddress; + rcs->nextRequestTime=RakNet::GetTimeMS(); + rcs->requestsMade=0; + rcs->data=0; + rcs->extraData=extraData; + rcs->socketIndex=connectionSocketIndex; + rcs->actionToTake=RequestedConnectionStruct::CONNECT; + rcs->sendConnectionAttemptCount=sendConnectionAttemptCount; + rcs->timeBetweenSendConnectionAttemptsMS=timeBetweenSendConnectionAttemptsMS; + memcpy(rcs->outgoingPassword, passwordData, passwordDataLength); + rcs->outgoingPasswordLength=(unsigned char) passwordDataLength; + rcs->timeoutTime=timeoutTime; + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: In SendConnectionRequest()\n"); + if (!GenerateConnectionRequestChallenge(rcs,publicKey)) + return SECURITY_INITIALIZATION_FAILED; +#else + (void) publicKey; +#endif + + // Return false if already pending, else push on queue + unsigned int i=0; + requestedConnectionQueueMutex.Lock(); + for (; i < requestedConnectionQueue.Size(); i++) + { + if (requestedConnectionQueue[i]->systemAddress==systemAddress) + { + requestedConnectionQueueMutex.Unlock(); + // Not necessary + //RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + return CONNECTION_ATTEMPT_ALREADY_IN_PROGRESS; + } + } + requestedConnectionQueue.Push(rcs, _FILE_AND_LINE_ ); + requestedConnectionQueueMutex.Unlock(); + + return CONNECTION_ATTEMPT_STARTED; +} +ConnectionAttemptResult RakPeer::SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime, RakNetSmartPtr socket ) +{ + RakAssert(passwordDataLength <= 256); + SystemAddress systemAddress; + systemAddress.FromStringExplicitPort(host,remotePort); + + // Already connected? + if (GetRemoteSystemFromSystemAddress(systemAddress, false, true)) + return ALREADY_CONNECTED_TO_ENDPOINT; + + //RequestedConnectionStruct *rcs = (RequestedConnectionStruct *) rakMalloc_Ex(sizeof(RequestedConnectionStruct), _FILE_AND_LINE_); + RequestedConnectionStruct *rcs = RakNet::OP_NEW(_FILE_AND_LINE_); + + rcs->systemAddress=systemAddress; + rcs->nextRequestTime=RakNet::GetTimeMS(); + rcs->requestsMade=0; + rcs->data=0; + rcs->extraData=extraData; + rcs->socketIndex=connectionSocketIndex; + rcs->actionToTake=RequestedConnectionStruct::CONNECT; + rcs->sendConnectionAttemptCount=sendConnectionAttemptCount; + rcs->timeBetweenSendConnectionAttemptsMS=timeBetweenSendConnectionAttemptsMS; + memcpy(rcs->outgoingPassword, passwordData, passwordDataLength); + rcs->outgoingPasswordLength=(unsigned char) passwordDataLength; + rcs->timeoutTime=timeoutTime; + rcs->socket=socket; + +#if LIBCAT_SECURITY==1 + if (!GenerateConnectionRequestChallenge(rcs,publicKey)) + return SECURITY_INITIALIZATION_FAILED; +#else + (void) publicKey; +#endif + + // Return false if already pending, else push on queue + unsigned int i=0; + requestedConnectionQueueMutex.Lock(); + for (; i < requestedConnectionQueue.Size(); i++) + { + if (requestedConnectionQueue[i]->systemAddress==systemAddress) + { + requestedConnectionQueueMutex.Unlock(); + // Not necessary + //RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + return CONNECTION_ATTEMPT_ALREADY_IN_PROGRESS; + } + } + requestedConnectionQueue.Push(rcs, _FILE_AND_LINE_ ); + requestedConnectionQueueMutex.Unlock(); + + return CONNECTION_ATTEMPT_STARTED; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ValidateRemoteSystemLookup(void) const +{ +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct *RakPeer::GetRemoteSystem( const AddressOrGUID systemIdentifier, bool calledFromNetworkThread, bool onlyActive ) const +{ + if (systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return GetRemoteSystemFromGUID(systemIdentifier.rakNetGuid, onlyActive); + else + return GetRemoteSystemFromSystemAddress(systemIdentifier.systemAddress, calledFromNetworkThread, onlyActive); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct *RakPeer::GetRemoteSystemFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread, bool onlyActive ) const +{ + unsigned i; + + if ( systemAddress == UNASSIGNED_SYSTEM_ADDRESS ) + return 0; + + if (calledFromNetworkThread) + { + unsigned int index = GetRemoteSystemIndex(systemAddress); + if (index!=(unsigned int) -1) + { + if (onlyActive==false || remoteSystemList[ index ].isActive==true ) + { + RakAssert(remoteSystemList[index].systemAddress==systemAddress); + return remoteSystemList + index; + } + } + } + else + { + int deadConnectionIndex=-1; + + // Active connections take priority. But if there are no active connections, return the first systemAddress match found + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].systemAddress == systemAddress) + { + if ( remoteSystemList[ i ].isActive ) + return remoteSystemList + i; + else if (deadConnectionIndex==-1) + deadConnectionIndex=i; + } + } + + if (deadConnectionIndex!=-1 && onlyActive==false) + return remoteSystemList + deadConnectionIndex; + } + + return 0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct *RakPeer::GetRemoteSystemFromGUID( const RakNetGUID guid, bool onlyActive ) const +{ + if (guid==UNASSIGNED_RAKNET_GUID) + return 0; + + unsigned i; + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if (remoteSystemList[ i ].guid == guid && (onlyActive==false || remoteSystemList[ i ].isActive)) + { + return remoteSystemList + i; + } + } + return 0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ParseConnectionRequestPacket( RakPeer::RemoteSystemStruct *remoteSystem, const SystemAddress &systemAddress, const char *data, int byteSize ) +{ + RakNet::BitStream bs((unsigned char*) data,byteSize,false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID guid; + bs.Read(guid); + RakNet::Time incomingTimestamp; + bs.Read(incomingTimestamp); + unsigned char doSecurity; + bs.Read(doSecurity); + +#if LIBCAT_SECURITY==1 + unsigned char doClientKey; + if (_using_security) + { + // Ignore message on bad state + if (doSecurity != 1 || !remoteSystem->reliabilityLayer.GetAuthenticatedEncryption()) + return; + + // Validate client proof of key + unsigned char proof[cat::EasyHandshake::PROOF_BYTES]; + bs.ReadAlignedBytes(proof, sizeof(proof)); + if (!remoteSystem->reliabilityLayer.GetAuthenticatedEncryption()->ValidateProof(proof, sizeof(proof))) + { + remoteSystem->connectMode = RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + + CAT_OBJCLR(remoteSystem->client_public_key); + + bs.Read(doClientKey); + + // Check if client wants to prove identity + if (doClientKey == 1) + { + // Read identity proof + unsigned char ident[cat::EasyHandshake::IDENTITY_BYTES]; + bs.ReadAlignedBytes(ident, sizeof(ident)); + + // If we are listening to these proofs, + if (_require_client_public_key) + { + // Validate client identity + if (!_server_handshake->VerifyInitiatorIdentity(remoteSystem->answer, ident, remoteSystem->client_public_key)) + { + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY); // Report an error since the client is not providing an identity when it is necessary to connect + bitStream.Write((unsigned char)2); // Indicate client identity is invalid + SendImmediate((char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0); + remoteSystem->connectMode = RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + } + + // Otherwise ignore the client public key + } + else + { + // If no client key was provided but it is required, + if (_require_client_public_key) + { + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY); // Report an error since the client is not providing an identity when it is necessary to connect + bitStream.Write((unsigned char)1); // Indicate client identity is missing + SendImmediate((char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0); + remoteSystem->connectMode = RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + } + } +#endif // LIBCAT_SECURITY + + unsigned char *password = bs.GetData()+BITS_TO_BYTES(bs.GetReadOffset()); + int passwordLength = byteSize - BITS_TO_BYTES(bs.GetReadOffset()); + if ( incomingPasswordLength != passwordLength || + memcmp( password, incomingPassword, incomingPasswordLength ) != 0 ) + { + CAT_AUDIT_PRINTF("AUDIT: Invalid password\n"); + // This one we only send once since we don't care if it arrives. + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_INVALID_PASSWORD); + bitStream.Write(GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + SendImmediate((char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0); + remoteSystem->connectMode=RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + return; + } + + // OK + remoteSystem->connectMode=RemoteSystemStruct::HANDLING_CONNECTION_REQUEST; + + OnConnectionRequest( remoteSystem, incomingTimestamp ); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::OnConnectionRequest( RakPeer::RemoteSystemStruct *remoteSystem, RakNet::Time incomingTimestamp ) +{ + RakNet::BitStream bitStream; + bitStream.Write((MessageID)ID_CONNECTION_REQUEST_ACCEPTED); + bitStream.Write(remoteSystem->systemAddress); + SystemIndex systemIndex = (SystemIndex) GetIndexFromSystemAddress( remoteSystem->systemAddress, true ); + RakAssert(systemIndex!=65535); + bitStream.Write(systemIndex); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + bitStream.Write(ipList[i]); + bitStream.Write(incomingTimestamp); + bitStream.Write(RakNet::GetTime()); + + SendImmediate((char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, RELIABLE_ORDERED, 0, remoteSystem->systemAddress, false, false, RakNet::GetTimeUS(), 0); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::NotifyAndFlagForShutdown( const SystemAddress systemAddress, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ + RakNet::BitStream temp( sizeof(unsigned char) ); + temp.Write( (MessageID)ID_DISCONNECTION_NOTIFICATION ); + if (performImmediate) + { + SendImmediate((char*)temp.GetData(), temp.GetNumberOfBitsUsed(), disconnectionNotificationPriority, RELIABLE_ORDERED, orderingChannel, systemAddress, false, false, RakNet::GetTimeUS(), 0); + RemoteSystemStruct *rss=GetRemoteSystemFromSystemAddress(systemAddress, true, true); + rss->connectMode=RemoteSystemStruct::DISCONNECT_ASAP; + } + else + { + SendBuffered((const char*)temp.GetData(), temp.GetNumberOfBitsUsed(), disconnectionNotificationPriority, RELIABLE_ORDERED, orderingChannel, systemAddress, false, RemoteSystemStruct::DISCONNECT_ASAP, 0); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned short RakPeer::GetNumberOfRemoteInitiatedConnections( void ) const +{ + if ( remoteSystemList == 0 || endThreads == true ) + return 0; + + unsigned short numberOfIncomingConnections; + numberOfIncomingConnections = 0; + unsigned int i; + for (i=0; i < activeSystemListSize; i++) + { + if ((activeSystemList[i])->isActive && + (activeSystemList[i])->connectMode==RakPeer::RemoteSystemStruct::CONNECTED && + (activeSystemList[i])->weInitiatedTheConnection==false + ) + { + numberOfIncomingConnections++; + } + } + return numberOfIncomingConnections; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct * RakPeer::AssignSystemAddressToRemoteSystemList( const SystemAddress systemAddress, RemoteSystemStruct::ConnectMode connectionMode, RakNetSmartPtr incomingRakNetSocket, bool *thisIPConnectedRecently, SystemAddress bindingAddress, int incomingMTU, RakNetGUID guid, bool useSecurity ) +{ + RemoteSystemStruct * remoteSystem; + unsigned i,j,assignedIndex; + RakNet::TimeMS time = RakNet::GetTimeMS(); +#ifdef _DEBUG + RakAssert(systemAddress!=UNASSIGNED_SYSTEM_ADDRESS); +#endif + + if (limitConnectionFrequencyFromTheSameIP) + { + if (IsLoopbackAddress(systemAddress,false)==false) + { + for ( i = 0; i < maximumNumberOfPeers; i++ ) + { + if ( remoteSystemList[ i ].isActive==true && + remoteSystemList[ i ].systemAddress.EqualsExcludingPort(systemAddress) && + time >= remoteSystemList[ i ].connectionTime && + time - remoteSystemList[ i ].connectionTime < 100 + ) + { + // 4/13/09 Attackers can flood ID_OPEN_CONNECTION_REQUEST and use up all available connection slots + // Ignore connection attempts if this IP address connected within the last 100 milliseconds + *thisIPConnectedRecently=true; + ValidateRemoteSystemLookup(); + return 0; + } + } + } + } + + // Don't use a different port than what we received on + bindingAddress.CopyPort(incomingRakNetSocket->boundAddress); + + *thisIPConnectedRecently=false; + for ( assignedIndex = 0; assignedIndex < maximumNumberOfPeers; assignedIndex++ ) + { + if ( remoteSystemList[ assignedIndex ].isActive==false ) + { + remoteSystem=remoteSystemList+assignedIndex; + ReferenceRemoteSystem(systemAddress, assignedIndex); + remoteSystem->MTUSize=defaultMTUSize; + remoteSystem->guid=guid; + remoteSystem->isActive = true; // This one line causes future incoming packets to go through the reliability layer + // Reserve this reliability layer for ourselves. + if (incomingMTU > remoteSystem->MTUSize) + remoteSystem->MTUSize=incomingMTU; + remoteSystem->reliabilityLayer.Reset(true, remoteSystem->MTUSize, useSecurity); + remoteSystem->reliabilityLayer.SetSplitMessageProgressInterval(splitMessageProgressInterval); + remoteSystem->reliabilityLayer.SetUnreliableTimeout(unreliableTimeout); + remoteSystem->reliabilityLayer.SetTimeoutTime(defaultTimeoutTime); + AddToActiveSystemList(assignedIndex); + if (incomingRakNetSocket->boundAddress==bindingAddress) + { + remoteSystem->rakNetSocket=incomingRakNetSocket; + } + else + { + char str[256]; + bindingAddress.ToString(true,str); + // See if this is an internal IP address. + // If so, force binding on it so we reply on the same IP address as they sent to. + unsigned int ipListIndex, foundIndex=(unsigned int)-1; + + for (ipListIndex=0; ipListIndex < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ipListIndex++) + { + if (ipList[ipListIndex]==UNASSIGNED_SYSTEM_ADDRESS) + break; + + if (bindingAddress.EqualsExcludingPort(ipList[ipListIndex])) + { + foundIndex=ipListIndex; + break; + } + } + + // 06/26/09 Unconfirmed report that Vista firewall blocks the reply if we force a binding + // For now use the incoming socket only + // Originally this code was to force a machine with multiple IP addresses to reply back on the IP + // that the datagram came in on + if (1 || foundIndex==(unsigned int)-1) + { + // Must not be an internal LAN address. Just use whatever socket it came in on + remoteSystem->rakNetSocket=incomingRakNetSocket; + } + else + { + // Force binding + unsigned int socketListIndex; + for (socketListIndex=0; socketListIndex < socketList.Size(); socketListIndex++) + { + if (socketList[socketListIndex]->boundAddress==bindingAddress) + { + // Force binding with existing socket + remoteSystem->rakNetSocket=socketList[socketListIndex]; + break; + } + } + + if (socketListIndex==socketList.Size()) + { + char ipListFoundIndexStr[128]; + ipList[foundIndex].ToString(false,str); + + // Force binding with new socket + RakNetSmartPtr rns(RakNet::OP_NEW(_FILE_AND_LINE_)); + if (incomingRakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2==0) + rns->s = (unsigned int) SocketLayer::CreateBoundSocket( bindingAddress.GetPort(), true, ipListFoundIndexStr, 0, incomingRakNetSocket->extraSocketOptions, incomingRakNetSocket->socketFamily ); + else + rns->s = (unsigned int) SocketLayer::CreateBoundSocket_PS3Lobby( bindingAddress.GetPort(), true, ipListFoundIndexStr, incomingRakNetSocket->socketFamily ); + if ((SOCKET)rns->s==(SOCKET)-1) + { + // Can't bind. Just use whatever socket it came in on + remoteSystem->rakNetSocket=incomingRakNetSocket; + } + else + { + rns->boundAddress=bindingAddress; + rns->remotePortRakNetWasStartedOn_PS3_PSP2=incomingRakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2; + rns->extraSocketOptions=incomingRakNetSocket->extraSocketOptions; + rns->userConnectionSocketIndex=(unsigned int)-1; + socketList.Push(rns, _FILE_AND_LINE_ ); + remoteSystem->rakNetSocket=rns; + + RakPeerAndIndex rpai; + rpai.remotePortRakNetWasStartedOn_PS3=rns->remotePortRakNetWasStartedOn_PS3_PSP2; + rpai.extraSocketOptions=rns->extraSocketOptions; + rpai.s=rns->s; + rpai.rakPeer=this; +#ifdef _WIN32 + int highPriority=THREAD_PRIORITY_ABOVE_NORMAL; +#else + int highPriority=-10; +#endif + +//#if !defined(_XBOX) && !defined(X360) + highPriority=0; +//#endif + + + + + + + + RakNet::RakThread::Create(RecvFromLoop, &rpai, highPriority); + + RakSleep(10); + + + /* +#if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + if (threadSleepTimer>0) + { + rns->recvEvent=CreateEvent(0,FALSE,FALSE,0); + WSAEventSelect(rns->s,rns->recvEvent,FD_READ); + } +#endif + */ + } + } + } + } + + for ( j = 0; j < (unsigned) PING_TIMES_ARRAY_SIZE; j++ ) + { + remoteSystem->pingAndClockDifferential[ j ].pingTime = 65535; + remoteSystem->pingAndClockDifferential[ j ].clockDifferential = 0; + } + + remoteSystem->connectMode=connectionMode; + remoteSystem->pingAndClockDifferentialWriteIndex = 0; + remoteSystem->lowestPing = 65535; + remoteSystem->nextPingTime = 0; // Ping immediately + remoteSystem->weInitiatedTheConnection = false; + remoteSystem->connectionTime = time; + remoteSystem->myExternalSystemAddress = UNASSIGNED_SYSTEM_ADDRESS; + remoteSystem->lastReliableSend=time; + +#ifdef _DEBUG + int indexLoopupCheck=GetIndexFromSystemAddress( systemAddress, true ); + if ((int) indexLoopupCheck!=(int) assignedIndex) + { + RakAssert((int) indexLoopupCheck==(int) assignedIndex); + } +#endif + + return remoteSystem; + } + } + + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Adjust the first four bytes (treated as unsigned int) of the pointer +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ShiftIncomingTimestamp( unsigned char *data, const SystemAddress &systemAddress ) const +{ +#ifdef _DEBUG + RakAssert( IsActive() ); + RakAssert( data ); +#endif + + RakNet::BitStream timeBS( data, sizeof(RakNet::Time), false); + RakNet::Time encodedTimestamp; + timeBS.Read(encodedTimestamp); + + encodedTimestamp = encodedTimestamp - GetBestClockDifferential( systemAddress ); + timeBS.SetWriteOffset(0); + timeBS.Write(encodedTimestamp); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// Thanks to Chris Taylor (cat02e@fsu.edu) for the improved timestamping algorithm +RakNet::Time RakPeer::GetBestClockDifferential( const SystemAddress systemAddress ) const +{ + int counter, lowestPingSoFar; + RakNet::Time clockDifferential; + RemoteSystemStruct *remoteSystem = GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + + if ( remoteSystem == 0 ) + return 0; + + lowestPingSoFar = 65535; + + clockDifferential = 0; + + for ( counter = 0; counter < PING_TIMES_ARRAY_SIZE; counter++ ) + { + if ( remoteSystem->pingAndClockDifferential[ counter ].pingTime == 65535 ) + break; + + if ( remoteSystem->pingAndClockDifferential[ counter ].pingTime < lowestPingSoFar ) + { + clockDifferential = remoteSystem->pingAndClockDifferential[ counter ].clockDifferential; + lowestPingSoFar = remoteSystem->pingAndClockDifferential[ counter ].pingTime; + } + } + + return clockDifferential; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::RemoteSystemLookupHashIndex(const SystemAddress &sa) const +{ + return SystemAddress::ToInteger(sa) % ((unsigned int) maximumNumberOfPeers * REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ReferenceRemoteSystem(const SystemAddress &sa, unsigned int remoteSystemListIndex) +{ +// #ifdef _DEBUG +// for ( int remoteSystemIndex = 0; remoteSystemIndex < maximumNumberOfPeers; ++remoteSystemIndex ) +// { +// if (remoteSystemList[remoteSystemIndex].isActive ) +// { +// unsigned int hashIndex = GetRemoteSystemIndex(remoteSystemList[remoteSystemIndex].systemAddress); +// RakAssert(hashIndex==remoteSystemIndex); +// } +// } +// #endif + + + SystemAddress oldAddress = remoteSystemList[remoteSystemListIndex].systemAddress; + if (oldAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + // The system might be active if rerouting +// RakAssert(remoteSystemList[remoteSystemListIndex].isActive==false); + + // Remove the reference if the reference is pointing to this inactive system + if (GetRemoteSystem(oldAddress)==&remoteSystemList[remoteSystemListIndex]) + DereferenceRemoteSystem(oldAddress); + } + DereferenceRemoteSystem(sa); + +// #ifdef _DEBUG +// for ( int remoteSystemIndex = 0; remoteSystemIndex < maximumNumberOfPeers; ++remoteSystemIndex ) +// { +// if (remoteSystemList[remoteSystemIndex].isActive ) +// { +// unsigned int hashIndex = GetRemoteSystemIndex(remoteSystemList[remoteSystemIndex].systemAddress); +// if (hashIndex!=remoteSystemIndex) +// { +// RakAssert(hashIndex==remoteSystemIndex); +// } +// } +// } +// #endif + + + remoteSystemList[remoteSystemListIndex].systemAddress=sa; + + unsigned int hashIndex = RemoteSystemLookupHashIndex(sa); + RemoteSystemIndex *rsi; + rsi = remoteSystemIndexPool.Allocate(_FILE_AND_LINE_); + if (remoteSystemLookup[hashIndex]==0) + { + rsi->next=0; + rsi->index=remoteSystemListIndex; + remoteSystemLookup[hashIndex]=rsi; + } + else + { + RemoteSystemIndex *cur = remoteSystemLookup[hashIndex]; + while (cur->next!=0) + { + cur=cur->next; + } + + rsi = remoteSystemIndexPool.Allocate(_FILE_AND_LINE_); + rsi->next=0; + rsi->index=remoteSystemListIndex; + cur->next=rsi; + } + +// #ifdef _DEBUG +// for ( int remoteSystemIndex = 0; remoteSystemIndex < maximumNumberOfPeers; ++remoteSystemIndex ) +// { +// if (remoteSystemList[remoteSystemIndex].isActive ) +// { +// unsigned int hashIndex = GetRemoteSystemIndex(remoteSystemList[remoteSystemIndex].systemAddress); +// RakAssert(hashIndex==remoteSystemIndex); +// } +// } +// #endif + + + RakAssert(GetRemoteSystemIndex(sa)==remoteSystemListIndex); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DereferenceRemoteSystem(const SystemAddress &sa) +{ + unsigned int hashIndex = RemoteSystemLookupHashIndex(sa); + RemoteSystemIndex *cur = remoteSystemLookup[hashIndex]; + RemoteSystemIndex *last = 0; + while (cur!=0) + { + if (remoteSystemList[cur->index].systemAddress==sa) + { + if (last==0) + { + remoteSystemLookup[hashIndex]=cur->next; + } + else + { + last->next=cur->next; + } + remoteSystemIndexPool.Release(cur,_FILE_AND_LINE_); + break; + } + last=cur; + cur=cur->next; + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetRemoteSystemIndex(const SystemAddress &sa) const +{ + unsigned int hashIndex = RemoteSystemLookupHashIndex(sa); + RemoteSystemIndex *cur = remoteSystemLookup[hashIndex]; + while (cur!=0) + { + if (remoteSystemList[cur->index].systemAddress==sa) + return cur->index; + cur=cur->next; + } + return (unsigned int) -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RakPeer::RemoteSystemStruct* RakPeer::GetRemoteSystem(const SystemAddress &sa) const +{ + unsigned int remoteSystemIndex = GetRemoteSystemIndex(sa); + if (remoteSystemIndex==(unsigned int)-1) + return 0; + return remoteSystemList + remoteSystemIndex; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearRemoteSystemLookup(void) +{ + remoteSystemIndexPool.Clear(_FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(remoteSystemLookup,_FILE_AND_LINE_); + remoteSystemLookup=0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::AddToActiveSystemList(unsigned int remoteSystemListIndex) +{ + activeSystemList[activeSystemListSize++]=remoteSystemList+remoteSystemListIndex; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::RemoveFromActiveSystemList(const SystemAddress &sa) +{ + unsigned int i; + for (i=0; i < activeSystemListSize; i++) + { + RemoteSystemStruct *rss=activeSystemList[i]; + if (rss->systemAddress==sa) + { + activeSystemList[i]=activeSystemList[activeSystemListSize-1]; + activeSystemListSize--; + return; + } + } + RakAssert("activeSystemList invalid, entry not found in RemoveFromActiveSystemList. Ensure that AddToActiveSystemList and RemoveFromActiveSystemList are called by the same thread." && 0); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +/* +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::LookupIndexUsingHashIndex(const SystemAddress &sa) const +{ + unsigned int scanCount=0; + unsigned int index = RemoteSystemLookupHashIndex(sa); + if (remoteSystemLookup[index].index==(unsigned int)-1) + return (unsigned int) -1; + while (remoteSystemList[remoteSystemLookup[index].index].systemAddress!=sa) + { + if (++index==(unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE) + index=0; + if (++scanCount>(unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE) + return (unsigned int) -1; + if (remoteSystemLookup[index].index==-1) + return (unsigned int) -1; + } + return index; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::RemoteSystemListIndexUsingHashIndex(const SystemAddress &sa) const +{ + unsigned int index = LookupIndexUsingHashIndex(sa); + if (index!=(unsigned int) -1) + { + return remoteSystemLookup[index].index; + } + return (unsigned int) -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::FirstFreeRemoteSystemLookupIndex(const SystemAddress &sa) const +{ +// unsigned int collisionCount=0; + unsigned int index = RemoteSystemLookupHashIndex(sa); + while (remoteSystemLookup[index].index!=(unsigned int)-1) + { + if (++index==(unsigned int) maximumNumberOfPeers*REMOTE_SYSTEM_LOOKUP_HASH_MULTIPLE) + index=0; +// collisionCount++; + } +// printf("%i collisions. Using index %i\n", collisionCount, index); + return index; +} +*/ +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::IsLoopbackAddress(const AddressOrGUID &systemIdentifier, bool matchPort) const +{ + if (systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + return systemIdentifier.rakNetGuid==myGuid; + + for (int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS && ipList[i]!=UNASSIGNED_SYSTEM_ADDRESS; i++) + { + if (matchPort) + { + if (ipList[i]==systemIdentifier.systemAddress) + return true; + } + else + { + if (ipList[i].EqualsExcludingPort(systemIdentifier.systemAddress)) + return true; + } + } + + return (matchPort==true && systemIdentifier.systemAddress==firstExternalID) || + (matchPort==false && systemIdentifier.systemAddress.EqualsExcludingPort(firstExternalID)); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SystemAddress RakPeer::GetLoopbackAddress(void) const +{ + + return ipList[0]; + + + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::AllowIncomingConnections(void) const +{ + return GetNumberOfRemoteInitiatedConnections() < GetMaximumIncomingConnections(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::PingInternal( const SystemAddress target, bool performImmediate, PacketReliability reliability ) +{ + if ( IsActive() == false ) + return ; + + RakNet::BitStream bitStream(sizeof(unsigned char)+sizeof(RakNet::Time)); + bitStream.Write((MessageID)ID_CONNECTED_PING); + bitStream.Write(RakNet::GetTime()); + if (performImmediate) + SendImmediate( (char*)bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, reliability, 0, target, false, false, RakNet::GetTimeUS(), 0 ); + else + Send( &bitStream, IMMEDIATE_PRIORITY, reliability, 0, target, false ); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::CloseConnectionInternal( const AddressOrGUID& systemIdentifier, bool sendDisconnectionNotification, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ) +{ +#ifdef _DEBUG + RakAssert(orderingChannel < 32); +#endif + + if (systemIdentifier.IsUndefined()) + return; + + if ( remoteSystemList == 0 || endThreads == true ) + return; + + SystemAddress target; + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + target=systemIdentifier.systemAddress; + } + else + { + target=GetSystemAddressFromGuid(systemIdentifier.rakNetGuid); + } + + if (target!=UNASSIGNED_SYSTEM_ADDRESS && performImmediate) + target.FixForIPVersion(socketList[0]->boundAddress); + + if (sendDisconnectionNotification) + { + NotifyAndFlagForShutdown(target, performImmediate, orderingChannel, disconnectionNotificationPriority); + } + else + { + if (performImmediate) + { + unsigned int index = GetRemoteSystemIndex(target); + if (index!=(unsigned int) -1) + { + if ( remoteSystemList[index].isActive ) + { + RemoveFromActiveSystemList(target); + + // Found the index to stop + remoteSystemList[index].isActive = false; + + remoteSystemList[index].guid=UNASSIGNED_RAKNET_GUID; + + // Reserve this reliability layer for ourselves + //remoteSystemList[ remoteSystemLookup[index].index ].systemAddress = UNASSIGNED_SYSTEM_ADDRESS; + + // Clear any remaining messages + remoteSystemList[index].reliabilityLayer.Reset(false, remoteSystemList[index].MTUSize, false); + + // Not using this socket + remoteSystemList[index].rakNetSocket.SetNull(); + } + } + } + else + { + BufferedCommandStruct *bcs; + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->command=BufferedCommandStruct::BCS_CLOSE_CONNECTION; + bcs->systemIdentifier=target; + bcs->data=0; + bcs->orderingChannel=orderingChannel; + bcs->priority=disconnectionNotificationPriority; + bufferedCommands.Push(bcs); + } + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SendBuffered( const char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ) +{ + BufferedCommandStruct *bcs; + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->data = (char*) rakMalloc_Ex( (size_t) BITS_TO_BYTES(numberOfBitsToSend), _FILE_AND_LINE_ ); // Making a copy doesn't lose efficiency because I tell the reliability layer to use this allocation for its own copy + if (bcs->data==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + bufferedCommands.Deallocate(bcs, _FILE_AND_LINE_); + return; + } + memcpy(bcs->data, data, (size_t) BITS_TO_BYTES(numberOfBitsToSend)); + bcs->numberOfBitsToSend=numberOfBitsToSend; + bcs->priority=priority; + bcs->reliability=reliability; + bcs->orderingChannel=orderingChannel; + bcs->systemIdentifier=systemIdentifier; + bcs->broadcast=broadcast; + bcs->connectionMode=connectionMode; + bcs->receipt=receipt; + bcs->command=BufferedCommandStruct::BCS_SEND; + bufferedCommands.Push(bcs); + + if (priority==IMMEDIATE_PRIORITY) + { + // Forces pending sends to go out now, rather than waiting to the next update interval + quitAndDataEvents.SetEvent(); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::SendBufferedList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ) +{ + BufferedCommandStruct *bcs; + unsigned int totalLength=0; + unsigned int lengthOffset; + int i; + for (i=0; i < numParameters; i++) + { + if (lengths[i]>0) + totalLength+=lengths[i]; + } + if (totalLength==0) + return; + + char *dataAggregate; + dataAggregate = (char*) rakMalloc_Ex( (size_t) totalLength, _FILE_AND_LINE_ ); // Making a copy doesn't lose efficiency because I tell the reliability layer to use this allocation for its own copy + if (dataAggregate==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return; + } + for (i=0, lengthOffset=0; i < numParameters; i++) + { + if (lengths[i]>0) + { + memcpy(dataAggregate+lengthOffset, data[i], lengths[i]); + lengthOffset+=lengths[i]; + } + } + + if (broadcast==false && IsLoopbackAddress(systemIdentifier,true)) + { + SendLoopback(dataAggregate,totalLength); + rakFree_Ex(dataAggregate,_FILE_AND_LINE_); + return; + } + + bcs=bufferedCommands.Allocate( _FILE_AND_LINE_ ); + bcs->data = dataAggregate; + bcs->numberOfBitsToSend=BYTES_TO_BITS(totalLength); + bcs->priority=priority; + bcs->reliability=reliability; + bcs->orderingChannel=orderingChannel; + bcs->systemIdentifier=systemIdentifier; + bcs->broadcast=broadcast; + bcs->connectionMode=connectionMode; + bcs->receipt=receipt; + bcs->command=BufferedCommandStruct::BCS_SEND; + bufferedCommands.Push(bcs); + + if (priority==IMMEDIATE_PRIORITY) + { + // Forces pending sends to go out now, rather than waiting to the next update interval + quitAndDataEvents.SetEvent(); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::SendImmediate( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool useCallerDataAllocation, RakNet::TimeUS currentTime, uint32_t receipt ) +{ + unsigned *sendList; + unsigned sendListSize; + bool callerDataAllocationUsed; + unsigned int remoteSystemIndex, sendListIndex; // Iterates into the list of remote systems +// unsigned numberOfBytesUsed = (unsigned) BITS_TO_BYTES(numberOfBitsToSend); + callerDataAllocationUsed=false; + + sendListSize=0; + + if (systemIdentifier.systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + remoteSystemIndex=GetIndexFromSystemAddress( systemIdentifier.systemAddress, true ); + else if (systemIdentifier.rakNetGuid!=UNASSIGNED_RAKNET_GUID) + remoteSystemIndex=GetSystemIndexFromGuid(systemIdentifier.rakNetGuid); + else + remoteSystemIndex=(unsigned int) -1; + + // 03/06/06 - If broadcast is false, use the optimized version of GetIndexFromSystemAddress + if (broadcast==false) + { + if (remoteSystemIndex==(unsigned int) -1) + { +#ifdef _DEBUG +// int debugIndex = GetRemoteSystemIndex(systemIdentifier.systemAddress); +#endif + return false; + } + + + sendList=(unsigned *)alloca(sizeof(unsigned)); + + + + + if (remoteSystemList[remoteSystemIndex].isActive && + remoteSystemList[remoteSystemIndex].connectMode!=RemoteSystemStruct::DISCONNECT_ASAP && + remoteSystemList[remoteSystemIndex].connectMode!=RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY && + remoteSystemList[remoteSystemIndex].connectMode!=RemoteSystemStruct::DISCONNECT_ON_NO_ACK) + { + sendList[0]=remoteSystemIndex; + sendListSize=1; + } + } + else + { + + //sendList=(unsigned *)alloca(sizeof(unsigned)*remoteSystemListSize); + sendList=(unsigned *)alloca(sizeof(unsigned)*maximumNumberOfPeers); + + + + + + // remoteSystemList in network thread + unsigned int idx; + for ( idx = 0; idx < maximumNumberOfPeers; idx++ ) + { + if (remoteSystemIndex!=(unsigned int) -1 && idx==remoteSystemIndex) + continue; + + if ( remoteSystemList[ idx ].isActive && remoteSystemList[ idx ].systemAddress != UNASSIGNED_SYSTEM_ADDRESS ) + sendList[sendListSize++]=idx; + } + } + + if (sendListSize==0) + { + + + + return false; + } + + for (sendListIndex=0; sendListIndex < sendListSize; sendListIndex++) + { + // Send may split the packet and thus deallocate data. Don't assume data is valid if we use the callerAllocationData + bool useData = useCallerDataAllocation && callerDataAllocationUsed==false && sendListIndex+1==sendListSize; + remoteSystemList[sendList[sendListIndex]].reliabilityLayer.Send( data, numberOfBitsToSend, priority, reliability, orderingChannel, useData==false, remoteSystemList[sendList[sendListIndex]].MTUSize, currentTime, receipt ); + if (useData) + callerDataAllocationUsed=true; + + if (reliability==RELIABLE || + reliability==RELIABLE_ORDERED || + reliability==RELIABLE_SEQUENCED || + reliability==RELIABLE_WITH_ACK_RECEIPT || + reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT +// || +// reliability==RELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + remoteSystemList[sendList[sendListIndex]].lastReliableSend=(RakNet::TimeMS)(currentTime/(RakNet::TimeUS)1000); + } + + + + + + // Return value only meaningful if true was passed for useCallerDataAllocation. Means the reliability layer used that data copy, so the caller should not deallocate it + return callerDataAllocationUsed; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ResetSendReceipt(void) +{ + sendReceiptSerialMutex.Lock(); + sendReceiptSerial=1; + sendReceiptSerialMutex.Unlock(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::OnConnectedPong(RakNet::Time sendPingTime, RakNet::Time sendPongTime, RemoteSystemStruct *remoteSystem) +{ + RakNet::Time ping; +// RakNet::TimeMS lastPing; + RakNet::Time time = RakNet::GetTime(); // Update the time value to be accurate + if (time > sendPingTime) + ping = time - sendPingTime; + else + ping=0; + +// lastPing = remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex ].pingTime; + + remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex ].pingTime = ( unsigned short ) ping; + // Thanks to Chris Taylor (cat02e@fsu.edu) for the improved timestamping algorithm + // Divide each integer by 2, rather than the sum by 2, to prevent overflow + remoteSystem->pingAndClockDifferential[ remoteSystem->pingAndClockDifferentialWriteIndex ].clockDifferential = sendPongTime - ( time/2 + sendPingTime/2 ); + + if ( remoteSystem->lowestPing == (unsigned short)-1 || remoteSystem->lowestPing > (int) ping ) + remoteSystem->lowestPing = (unsigned short) ping; + + if ( ++( remoteSystem->pingAndClockDifferentialWriteIndex ) == (RakNet::Time) PING_TIMES_ARRAY_SIZE ) + remoteSystem->pingAndClockDifferentialWriteIndex = 0; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearBufferedCommands(void) +{ + BufferedCommandStruct *bcs; + + while ((bcs=bufferedCommands.Pop())!=0) + { + if (bcs->data) + rakFree_Ex(bcs->data, _FILE_AND_LINE_ ); + + bufferedCommands.Deallocate(bcs, _FILE_AND_LINE_); + } + bufferedCommands.Clear(_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearBufferedPackets(void) +{ + RecvFromStruct *bcs; + + while ((bcs=bufferedPackets.Pop())!=0) + { + bufferedPackets.Deallocate(bcs, _FILE_AND_LINE_); + } + bufferedPackets.Clear(_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearSocketQueryOutput(void) +{ + socketQueryOutput.Clear(_FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::ClearRequestedConnectionList(void) +{ + DataStructures::Queue freeQueue; + requestedConnectionQueueMutex.Lock(); + while (requestedConnectionQueue.Size()) + freeQueue.Push(requestedConnectionQueue.Pop(), _FILE_AND_LINE_ ); + requestedConnectionQueueMutex.Unlock(); + unsigned i; + for (i=0; i < freeQueue.Size(); i++) + { +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: In ClearRequestedConnectionList(), Deleting freeQueue index %i client_handshake %x\n", i, freeQueue[i]->client_handshake); + RakNet::OP_DELETE(freeQueue[i]->client_handshake,_FILE_AND_LINE_); +#endif + RakNet::OP_DELETE(freeQueue[i], _FILE_AND_LINE_ ); + } +} +inline void RakPeer::AddPacketToProducer(RakNet::Packet *p) +{ + packetReturnMutex.Lock(); + packetReturnQueue.Push(p,_FILE_AND_LINE_); + packetReturnMutex.Unlock(); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +union Buff6AndBuff8 +{ + unsigned char buff6[6]; + uint64_t buff8; +}; +uint64_t RakPeerInterface::Get64BitUniqueRandomNumber(void) +{ + // Mac address is a poor solution because you can't have multiple connections from the same system + + + + + + + + + + + + + +#if defined(_WIN32) + uint64_t g=RakNet::GetTimeUS(); + + RakNet::TimeUS lastTime, thisTime; + int j; + // Sleep a small random time, then use the last 4 bits as a source of randomness + for (j=0; j < 8; j++) + { + lastTime = RakNet::GetTimeUS(); + RakSleep(1); + RakSleep(0); + thisTime = RakNet::GetTimeUS(); + RakNet::TimeUS diff = thisTime-lastTime; + unsigned int diff4Bits = (unsigned int) (diff & 15); + diff4Bits <<= 32-4; + diff4Bits >>= j*4; + ((char*)&g)[j] ^= diff4Bits; + } + return g; + +#else + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_usec + tv.tv_sec * 1000000; +#endif +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::GenerateGUID(void) +{ + myGuid.g=Get64BitUniqueRandomNumber(); + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// void RakNet::ProcessPortUnreachable( SystemAddress systemAddress, RakPeer *rakPeer ) +// { +// (void) binaryAddress; +// (void) port; +// (void) rakPeer; +// +// } +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +namespace RakNet { +bool ProcessOfflineNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, bool *isOfflineMessage, RakNet::TimeUS timeRead ) +{ + (void) timeRead; + RakPeer::RemoteSystemStruct *remoteSystem; + RakNet::Packet *packet; + unsigned i; + + + char str1[64]; + systemAddress.ToString(false, str1); + if (rakPeer->IsBanned( str1 )) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bs; + bs.Write((MessageID)ID_CONNECTION_BANNED); + bs.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bs.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + + unsigned i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((char*) bs.GetData(), bs.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (char*) bs.GetData(), bs.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + + + + // The reason for all this is that the reliability layer has no way to tell between offline messages that arrived late for a player that is now connected, + // and a regular encoding. So I insert OFFLINE_MESSAGE_DATA_ID into the stream, the encoding of which is essentially impossible to hit by chance + if (length <=2) + { + *isOfflineMessage=true; + } + else if ( + ((unsigned char)data[0] == ID_UNCONNECTED_PING || + (unsigned char)data[0] == ID_UNCONNECTED_PING_OPEN_CONNECTIONS) && + length == sizeof(unsigned char) + sizeof(RakNet::Time) + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(unsigned char) + sizeof(RakNet::Time), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if ((unsigned char)data[0] == ID_UNCONNECTED_PONG && (size_t) length >= sizeof(unsigned char) + sizeof(RakNet::TimeMS) + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(unsigned char) + sizeof(RakNet::Time) + RakNetGUID::size(), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if ( + (unsigned char)data[0] == ID_OUT_OF_BAND_INTERNAL && + (size_t) length >= sizeof(MessageID) + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(MessageID) + RakNetGUID::size(), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if ( + ( + (unsigned char)data[0] == ID_OPEN_CONNECTION_REPLY_1 || + (unsigned char)data[0] == ID_OPEN_CONNECTION_REPLY_2 || + (unsigned char)data[0] == ID_OPEN_CONNECTION_REQUEST_1 || + (unsigned char)data[0] == ID_OPEN_CONNECTION_REQUEST_2 || + (unsigned char)data[0] == ID_CONNECTION_ATTEMPT_FAILED || + (unsigned char)data[0] == ID_NO_FREE_INCOMING_CONNECTIONS || + (unsigned char)data[0] == ID_CONNECTION_BANNED || + (unsigned char)data[0] == ID_ALREADY_CONNECTED || + (unsigned char)data[0] == ID_IP_RECENTLY_CONNECTED) && + (size_t) length >= sizeof(MessageID) + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID)) + { + *isOfflineMessage=memcmp(data+sizeof(MessageID), OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else if (((unsigned char)data[0] == ID_INCOMPATIBLE_PROTOCOL_VERSION&& + (size_t) length == sizeof(MessageID)*2 + RakNetGUID::size() + sizeof(OFFLINE_MESSAGE_DATA_ID))) + { + *isOfflineMessage=memcmp(data+sizeof(MessageID)*2, OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID))==0; + } + else + { + *isOfflineMessage=false; + } + + if (*isOfflineMessage) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + // These are all messages from unconnected systems. Messages here can be any size, but are never processed from connected systems. + if ( ( (unsigned char) data[ 0 ] == ID_UNCONNECTED_PING_OPEN_CONNECTIONS + || (unsigned char)(data)[0] == ID_UNCONNECTED_PING) && length == sizeof(unsigned char)+sizeof(RakNet::Time)+sizeof(OFFLINE_MESSAGE_DATA_ID) ) + { + if ( (unsigned char)(data)[0] == ID_UNCONNECTED_PING || + rakPeer->AllowIncomingConnections() ) // Open connections with players + { +// #if !defined(_XBOX) && !defined(X360) + RakNet::BitStream inBitStream( (unsigned char *) data, length, false ); + inBitStream.IgnoreBits(8); + RakNet::Time sendPingTime; + inBitStream.Read(sendPingTime); + + RakNet::BitStream outBitStream; + outBitStream.Write((MessageID)ID_UNCONNECTED_PONG); // Should be named ID_UNCONNECTED_PONG eventually + outBitStream.Write(sendPingTime); + outBitStream.Write(rakPeer->myGuid); + outBitStream.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + + rakPeer->rakPeerMutexes[ RakPeer::offlinePingResponse_Mutex ].Lock(); + // They are connected, so append offline ping data + outBitStream.Write( (char*)rakPeer->offlinePingResponse.GetData(), rakPeer->offlinePingResponse.GetNumberOfBytesUsed() ); + rakPeer->rakPeerMutexes[ RakPeer::offlinePingResponse_Mutex ].Unlock(); + + unsigned i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*)outBitStream.GetData(), outBitStream.GetNumberOfBytesUsed(), systemAddress); + + SocketLayer::SendTo( rakNetSocket->s, (const char*)outBitStream.GetData(), (unsigned int) outBitStream.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + packet=rakPeer->AllocPacket(sizeof(MessageID), _FILE_AND_LINE_); + packet->data[0]=data[0]; + packet->systemAddress = systemAddress; + packet->guid=UNASSIGNED_RAKNET_GUID; + packet->systemAddress.systemIndex = ( SystemIndex ) rakPeer->GetIndexFromSystemAddress( systemAddress, true ); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + rakPeer->AddPacketToProducer(packet); +// #endif + } + } + // UNCONNECTED MESSAGE Pong with no data. + else if ((unsigned char) data[ 0 ] == ID_UNCONNECTED_PONG && (size_t) length >= sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID) && (size_t) length < sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID)+MAX_OFFLINE_DATA_LENGTH) + { + packet=rakPeer->AllocPacket((unsigned int) (length-sizeof(OFFLINE_MESSAGE_DATA_ID)-RakNetGUID::size()-sizeof(RakNet::Time)+sizeof(RakNet::TimeMS)), _FILE_AND_LINE_); + RakNet::BitStream bsIn((unsigned char*) data, length, false); + bsIn.IgnoreBytes(sizeof(unsigned char)); + RakNet::Time ping; + bsIn.Read(ping); + bsIn.Read(packet->guid); + + RakNet::BitStream bsOut((unsigned char*) packet->data, packet->length, false); + bsOut.ResetWritePointer(); + bsOut.Write((unsigned char)ID_UNCONNECTED_PONG); + RakNet::TimeMS pingMS=(RakNet::TimeMS)ping; + bsOut.Write(pingMS); + bsOut.WriteAlignedBytes( + (const unsigned char*)data+sizeof(unsigned char)+sizeof(RakNet::Time)+RakNetGUID::size()+sizeof(OFFLINE_MESSAGE_DATA_ID), + length-sizeof(unsigned char)-sizeof(RakNet::Time)-RakNetGUID::size()-sizeof(OFFLINE_MESSAGE_DATA_ID) + ); + + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = ( SystemIndex ) rakPeer->GetIndexFromSystemAddress( systemAddress, true ); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + rakPeer->AddPacketToProducer(packet); + } + else if ((unsigned char) data[ 0 ] == ID_OUT_OF_BAND_INTERNAL && + (size_t) length < MAX_OFFLINE_DATA_LENGTH+sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID)+RakNetGUID::size()) + { + unsigned int dataLength = (unsigned int) (length-sizeof(OFFLINE_MESSAGE_DATA_ID)-RakNetGUID::size()-sizeof(MessageID)); + RakAssert(dataLength<1024); + packet=rakPeer->AllocPacket(dataLength+1, _FILE_AND_LINE_); + RakAssert(packet->length<1024); + + RakNet::BitStream bs2((unsigned char*) data, length, false); + bs2.IgnoreBytes(sizeof(MessageID)); + bs2.Read(packet->guid); + + if (data[sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID) + RakNetGUID::size()]==ID_ADVERTISE_SYSTEM) + { + packet->length--; + packet->bitSize=BYTES_TO_BITS(packet->length); + packet->data[0]=ID_ADVERTISE_SYSTEM; + memcpy(packet->data+1, data+sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID)*2 + RakNetGUID::size(), dataLength-1); + } + else + { + packet->data[0]=ID_OUT_OF_BAND_INTERNAL; + memcpy(packet->data+1, data+sizeof(OFFLINE_MESSAGE_DATA_ID)+sizeof(MessageID) + RakNetGUID::size(), dataLength); + } + + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = ( SystemIndex ) rakPeer->GetIndexFromSystemAddress( systemAddress, true ); + packet->guid.systemIndex=packet->systemAddress.systemIndex; + rakPeer->AddPacketToProducer(packet); + } + else if ((unsigned char)(data)[0] == (MessageID)ID_OPEN_CONNECTION_REPLY_1) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bsIn((unsigned char*) data,length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + bsIn.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + RakNetGUID serverGuid; + bsIn.Read(serverGuid); + unsigned char serverHasSecurity; + uint32_t cookie; + (void) cookie; + bsIn.Read(serverHasSecurity); + // Even if the server has security, it may not be required of us if we are in the security exception list + if (serverHasSecurity) + { + bsIn.Read(cookie); + } + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_OPEN_CONNECTION_REQUEST_2); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + if (serverHasSecurity) + bsOut.Write(cookie); + + unsigned i; + rakPeer->requestedConnectionQueueMutex.Lock(); + for (i=0; i < rakPeer->requestedConnectionQueue.Size(); i++) + { + RakPeer::RequestedConnectionStruct *rcs; + rcs=rakPeer->requestedConnectionQueue[i]; + if (rcs->systemAddress==systemAddress) + { + if (serverHasSecurity) + { +#if LIBCAT_SECURITY==1 + unsigned char public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; + bsIn.ReadAlignedBytes(public_key, sizeof(public_key)); + + if (rcs->publicKeyMode==PKM_ACCEPT_ANY_PUBLIC_KEY) + { + memcpy(rcs->remote_public_key, public_key, cat::EasyHandshake::PUBLIC_KEY_BYTES); + if (!rcs->client_handshake->Initialize(public_key) || + !rcs->client_handshake->GenerateChallenge(rcs->handshakeChallenge)) + { + CAT_AUDIT_PRINTF("AUDIT: Server passed a bad public key with PKM_ACCEPT_ANY_PUBLIC_KEY"); + return true; + } + } + + if (cat::SecureEqual(public_key, + rcs->remote_public_key, + cat::EasyHandshake::PUBLIC_KEY_BYTES)==false) + { + rakPeer->requestedConnectionQueueMutex.Unlock(); + CAT_AUDIT_PRINTF("AUDIT: Expected public key does not match what was sent by server -- Reporting back ID_PUBLIC_KEY_MISMATCH to user\n"); + + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_PUBLIC_KEY_MISMATCH; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=serverGuid; + rakPeer->AddPacketToProducer(packet); + return true; + } + + if (rcs->client_handshake==0) + { + // Message does not contain a challenge + // We might still pass if we are in the security exception list + bsOut.Write((unsigned char)0); + } + else + { + // Message contains a challenge + bsOut.Write((unsigned char)1); + // challenge + CAT_AUDIT_PRINTF("AUDIT: Sending challenge\n"); + bsOut.WriteAlignedBytes((const unsigned char*) rcs->handshakeChallenge,cat::EasyHandshake::CHALLENGE_BYTES); + } +#else // LIBCAT_SECURITY + // Message does not contain a challenge + bsOut.Write((unsigned char)0); +#endif // LIBCAT_SECURITY + } + else + { + // Server does not need security +#if LIBCAT_SECURITY==1 + if (rcs->client_handshake!=0) + { + rakPeer->requestedConnectionQueueMutex.Unlock(); + CAT_AUDIT_PRINTF("AUDIT: Security disabled by server but we expected security (indicated by client_handshake not null) so failing!\n"); + + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_OUR_SYSTEM_REQUIRES_SECURITY; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=serverGuid; + rakPeer->AddPacketToProducer(packet); + return true; + } +#endif // LIBCAT_SECURITY + + } + + uint16_t mtu; + bsIn.Read(mtu); + + // Binding address + bsOut.Write(rcs->systemAddress); + rakPeer->requestedConnectionQueueMutex.Unlock(); + // MTU + bsOut.Write(mtu); + // Our guid + bsOut.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), rcs->systemAddress); + + SocketLayer::SendTo( rakPeer->socketList[rcs->socketIndex]->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), rcs->systemAddress, rakPeer->socketList[rcs->socketIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, rakPeer->socketList[rcs->socketIndex]->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + } + rakPeer->requestedConnectionQueueMutex.Unlock(); + } + else if ((unsigned char)(data)[0] == (MessageID)ID_OPEN_CONNECTION_REPLY_2) + { + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bs((unsigned char*) data,length,false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + RakNetGUID guid; + bs.Read(guid); + SystemAddress bindingAddress; + bool b = bs.Read(bindingAddress); + RakAssert(b); + uint16_t mtu; + b=bs.Read(mtu); + RakAssert(b); + bool doSecurity=false; + b=bs.Read(doSecurity); + RakAssert(b); + +#if LIBCAT_SECURITY==1 + char answer[cat::EasyHandshake::ANSWER_BYTES]; + CAT_AUDIT_PRINTF("AUDIT: Got ID_OPEN_CONNECTION_REPLY_2 and given doSecurity=%i\n", (int)doSecurity); + if (doSecurity) + { + CAT_AUDIT_PRINTF("AUDIT: Reading cookie and public key\n"); + bs.ReadAlignedBytes((unsigned char*) answer, sizeof(answer)); + } + cat::ClientEasyHandshake *client_handshake=0; +#endif // LIBCAT_SECURITY + + RakPeer::RequestedConnectionStruct *rcs; + bool unlock=true; + unsigned i; + rakPeer->requestedConnectionQueueMutex.Lock(); + for (i=0; i < rakPeer->requestedConnectionQueue.Size(); i++) + { + rcs=rakPeer->requestedConnectionQueue[i]; + + + if (rcs->systemAddress==systemAddress) + { +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: System address matches an entry in the requestedConnectionQueue and doSecurity=%i\n", (int)doSecurity); + if (doSecurity) + { + if (rcs->client_handshake==0) + { + CAT_AUDIT_PRINTF("AUDIT: Server wants security but we didn't set a public key -- Reporting back ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY to user\n"); + rakPeer->requestedConnectionQueueMutex.Unlock(); + + packet=rakPeer->AllocPacket(2, _FILE_AND_LINE_); + packet->data[ 0 ] = ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY; // Attempted a connection and couldn't + packet->data[ 1 ] = 0; // Indicate server public key is missing + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=guid; + rakPeer->AddPacketToProducer(packet); + return true; + } + + CAT_AUDIT_PRINTF("AUDIT: Looks good, preparing to send challenge to server! client_handshake = %x\n", client_handshake); + } + +#endif // LIBCAT_SECURITY + + rakPeer->requestedConnectionQueueMutex.Unlock(); + unlock=false; + + RakAssert(rcs->actionToTake==RakPeer::RequestedConnectionStruct::CONNECT); + // You might get this when already connected because of cross-connections + bool thisIPConnectedRecently=false; + remoteSystem=rakPeer->GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + if (remoteSystem==0) + { + if (rcs->socket.IsNull()) + { + remoteSystem=rakPeer->AssignSystemAddressToRemoteSystemList(systemAddress, RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER, rakNetSocket, &thisIPConnectedRecently, bindingAddress, mtu, guid, doSecurity); + } + else + { + remoteSystem=rakPeer->AssignSystemAddressToRemoteSystemList(systemAddress, RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER, rcs->socket, &thisIPConnectedRecently, bindingAddress, mtu, guid, doSecurity); + } + } + + // 4/13/09 Attackers can flood ID_OPEN_CONNECTION_REQUEST and use up all available connection slots + // Ignore connection attempts if this IP address connected within the last 100 milliseconds + if (thisIPConnectedRecently==false) + { + // Don't check GetRemoteSystemFromGUID, server will verify + if (remoteSystem) + { + // Move pointer from RequestedConnectionStruct to RemoteSystemStruct +#if LIBCAT_SECURITY==1 + cat::u8 ident[cat::EasyHandshake::IDENTITY_BYTES]; + bool doIdentity = false; + + if (rcs->client_handshake) + { + CAT_AUDIT_PRINTF("AUDIT: Processing answer\n"); + if (rcs->publicKeyMode == PKM_USE_TWO_WAY_AUTHENTICATION) + { + if (!rcs->client_handshake->ProcessAnswerWithIdentity(answer, ident, remoteSystem->reliabilityLayer.GetAuthenticatedEncryption())) + { + CAT_AUDIT_PRINTF("AUDIT: Processing answer -- Invalid Answer\n"); + rakPeer->requestedConnectionQueueMutex.Unlock(); + + return true; + } + + doIdentity = true; + } + else + { + if (!rcs->client_handshake->ProcessAnswer(answer, remoteSystem->reliabilityLayer.GetAuthenticatedEncryption())) + { + CAT_AUDIT_PRINTF("AUDIT: Processing answer -- Invalid Answer\n"); + rakPeer->requestedConnectionQueueMutex.Unlock(); + + return true; + } + } + CAT_AUDIT_PRINTF("AUDIT: Success!\n"); + + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); + rcs->client_handshake=0; + } +#endif // LIBCAT_SECURITY + + remoteSystem->weInitiatedTheConnection=true; + remoteSystem->connectMode=RakPeer::RemoteSystemStruct::REQUESTED_CONNECTION; + if (rcs->timeoutTime!=0) + remoteSystem->reliabilityLayer.SetTimeoutTime(rcs->timeoutTime); + + RakNet::BitStream temp; + temp.Write( (MessageID)ID_CONNECTION_REQUEST); + temp.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + temp.Write(RakNet::GetTime()); + +#if LIBCAT_SECURITY==1 + temp.Write((unsigned char)(doSecurity ? 1 : 0)); + + if (doSecurity) + { + unsigned char proof[32]; + remoteSystem->reliabilityLayer.GetAuthenticatedEncryption()->GenerateProof(proof, sizeof(proof)); + temp.WriteAlignedBytes(proof, sizeof(proof)); + + temp.Write((unsigned char)(doIdentity ? 1 : 0)); + + if (doIdentity) + { + temp.WriteAlignedBytes(ident, sizeof(ident)); + } + } +#else + temp.Write((unsigned char)0); +#endif // LIBCAT_SECURITY + + if ( rcs->outgoingPasswordLength > 0 ) + temp.Write( ( char* ) rcs->outgoingPassword, rcs->outgoingPasswordLength ); + + rakPeer->SendImmediate((char*)temp.GetData(), temp.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, RELIABLE, 0, systemAddress, false, false, timeRead, 0 ); + } + else + { + // Failed, no connections available anymore + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_CONNECTION_ATTEMPT_FAILED; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + packet->guid=guid; + rakPeer->AddPacketToProducer(packet); + } + } + + rakPeer->requestedConnectionQueueMutex.Lock(); + for (unsigned int k=0; k < rakPeer->requestedConnectionQueue.Size(); k++) + { + if (rakPeer->requestedConnectionQueue[k]->systemAddress==systemAddress) + { + rakPeer->requestedConnectionQueue.RemoveAtIndex(k); + break; + } + } + rakPeer->requestedConnectionQueueMutex.Unlock(); + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Deleting client_handshake object %x and rcs->client_handshake object %x\n", client_handshake, rcs->client_handshake); + RakNet::OP_DELETE(client_handshake,_FILE_AND_LINE_); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); +#endif // LIBCAT_SECURITY + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + + break; + } + } + + if (unlock) + rakPeer->requestedConnectionQueueMutex.Unlock(); + + return true; + + } + else if ((unsigned char)(data)[0] == (MessageID)ID_CONNECTION_ATTEMPT_FAILED || + (unsigned char)(data)[0] == (MessageID)ID_NO_FREE_INCOMING_CONNECTIONS || + (unsigned char)(data)[0] == (MessageID)ID_CONNECTION_BANNED || + (unsigned char)(data)[0] == (MessageID)ID_ALREADY_CONNECTED || + (unsigned char)(data)[0] == (MessageID)ID_INVALID_PASSWORD || + (unsigned char)(data)[0] == (MessageID)ID_IP_RECENTLY_CONNECTED || + (unsigned char)(data)[0] == (MessageID)ID_INCOMPATIBLE_PROTOCOL_VERSION) + { + + RakNet::BitStream bs((unsigned char*) data,length,false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + if ((unsigned char)(data)[0] == (MessageID)ID_INCOMPATIBLE_PROTOCOL_VERSION) + bs.IgnoreBytes(sizeof(unsigned char)); + + RakNetGUID guid; + bs.Read(guid); + + RakPeer::RequestedConnectionStruct *rcs; + bool connectionAttemptCancelled=false; + unsigned i; + rakPeer->requestedConnectionQueueMutex.Lock(); + for (i=0; i < rakPeer->requestedConnectionQueue.Size(); i++) + { + rcs=rakPeer->requestedConnectionQueue[i]; + if (rcs->actionToTake==RakPeer::RequestedConnectionStruct::CONNECT && rcs->systemAddress==systemAddress) + { + connectionAttemptCancelled=true; + rakPeer->requestedConnectionQueue.RemoveAtIndex(i); + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Connection attempt canceled so deleting rcs->client_handshake object %x\n", rcs->client_handshake); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); +#endif // LIBCAT_SECURITY + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + break; + } + } + + rakPeer->requestedConnectionQueueMutex.Unlock(); + + if (connectionAttemptCancelled) + { + // Tell user of connection attempt failed + packet=rakPeer->AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = data[0]; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = systemAddress; + packet->guid=guid; + rakPeer->AddPacketToProducer(packet); + } + } + else if ((unsigned char)(data)[0] == ID_OPEN_CONNECTION_REQUEST_1 && length > (int) (1+sizeof(OFFLINE_MESSAGE_DATA_ID))) + {/* + static int x = 0; + ++x; + + SystemAddress *addr = (SystemAddress*)&systemAddress; + addr->binaryAddress += x;*/ + + unsigned int i; + //RAKNET_DEBUG_PRINTF("%i:IOCR, ", __LINE__); + char remoteProtocol=data[1+sizeof(OFFLINE_MESSAGE_DATA_ID)]; + if (remoteProtocol!=RAKNET_PROTOCOL_VERSION) + { + RakNet::BitStream bs; + bs.Write((MessageID)ID_INCOMPATIBLE_PROTOCOL_VERSION); + bs.Write((unsigned char)RAKNET_PROTOCOL_VERSION); + bs.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bs.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((char*)bs.GetData(), bs.GetNumberOfBitsUsed(), systemAddress); + + SocketLayer::SendTo( rakNetSocket->s, (char*)bs.GetData(), bs.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + return true; + } + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketReceive(data, length*8, systemAddress); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_OPEN_CONNECTION_REPLY_1); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); +#if LIBCAT_SECURITY==1 + if (rakPeer->_using_security) + { + bsOut.Write((unsigned char) 1); // HasCookie Yes + // Write cookie + uint32_t cookie = rakPeer->_cookie_jar->Generate(&systemAddress.address,sizeof(systemAddress.address)); + CAT_AUDIT_PRINTF("AUDIT: Writing cookie %i to %i:%i\n", cookie, systemAddress); + bsOut.Write(cookie); + // Write my public key + bsOut.WriteAlignedBytes((const unsigned char *) rakPeer->my_public_key,sizeof(rakPeer->my_public_key)); + } + else +#endif // LIBCAT_SECURITY + bsOut.Write((unsigned char) 0); // HasCookie No + + // MTU + bsOut.Write((uint16_t) (length+UDP_HEADER_SIZE)); + + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + } + else if ((unsigned char)(data)[0] == ID_OPEN_CONNECTION_REQUEST_2) + { + SystemAddress bindingAddress; + RakNetGUID guid; + RakNet::BitStream bsOut; + RakNet::BitStream bs((unsigned char*) data, length, false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + + bool requiresSecurityOfThisClient=false; +#if LIBCAT_SECURITY==1 + char remoteHandshakeChallenge[cat::EasyHandshake::CHALLENGE_BYTES]; + + if (rakPeer->_using_security) + { + char str1[64]; + systemAddress.ToString(false, str1); + requiresSecurityOfThisClient=rakPeer->IsInSecurityExceptionList(str1)==false; + + uint32_t cookie; + bs.Read(cookie); + CAT_AUDIT_PRINTF("AUDIT: Got cookie %i from %i:%i\n", cookie, systemAddress); + if (rakPeer->_cookie_jar->Verify(&systemAddress.address,sizeof(systemAddress.address), cookie)==false) + { + return true; + } + CAT_AUDIT_PRINTF("AUDIT: Cookie good!\n"); + + unsigned char clientWroteChallenge; + bs.Read(clientWroteChallenge); + + if (requiresSecurityOfThisClient==true && clientWroteChallenge==0) + { + // Fail, client doesn't support security, and it is required + return true; + } + + if (clientWroteChallenge) + { + bs.ReadAlignedBytes((unsigned char*) remoteHandshakeChallenge, cat::EasyHandshake::CHALLENGE_BYTES); +#ifdef CAT_AUDIT + printf("AUDIT: RECV CHALLENGE "); + for (int ii = 0; ii < sizeof(remoteHandshakeChallenge); ++ii) + { + printf("%02x", (cat::u8)remoteHandshakeChallenge[ii]); + } + printf("\n"); +#endif + } + } +#endif // LIBCAT_SECURITY + + bs.Read(bindingAddress); + uint16_t mtu; + bs.Read(mtu); + bs.Read(guid); + + RakPeer::RemoteSystemStruct *rssFromSA = rakPeer->GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + bool IPAddrInUse = rssFromSA != 0 && rssFromSA->isActive; + RakPeer::RemoteSystemStruct *rssFromGuid = rakPeer->GetRemoteSystemFromGUID(guid, true); + bool GUIDInUse = rssFromGuid != 0 && rssFromGuid->isActive; + + // IPAddrInUse, GuidInUse, outcome + // TRUE, , TRUE , ID_OPEN_CONNECTION_REPLY if they are the same, else ID_ALREADY_CONNECTED + // FALSE, , TRUE , ID_ALREADY_CONNECTED (someone else took this guid) + // TRUE, , FALSE , ID_ALREADY_CONNECTED (silently disconnected, restarted rakNet) + // FALSE , FALSE , Allow connection + + int outcome; + if (IPAddrInUse & GUIDInUse) + { + if (rssFromSA==rssFromGuid && rssFromSA->connectMode==RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER) + { + // ID_OPEN_CONNECTION_REPLY if they are the same + outcome=1; + } + else + { + // ID_ALREADY_CONNECTED (restarted raknet, connected again from same ip, plus someone else took this guid) + outcome=2; + } + } + else if (IPAddrInUse==false && GUIDInUse==true) + { + // ID_ALREADY_CONNECTED (someone else took this guid) + outcome=3; + } + else if (IPAddrInUse==true && GUIDInUse==false) + { + // ID_ALREADY_CONNECTED (silently disconnected, restarted rakNet) + outcome=4; + } + else + { + // Allow connection + outcome=0; + } + + RakNet::BitStream bsAnswer; + bsAnswer.Write((MessageID)ID_OPEN_CONNECTION_REPLY_2); + bsAnswer.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsAnswer.Write(rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)); + bsAnswer.Write(systemAddress); + bsAnswer.Write(mtu); + bsAnswer.Write(requiresSecurityOfThisClient); + + if (outcome==1) + { + // Duplicate connection request packet from packetloss + // Send back the same answer +#if LIBCAT_SECURITY==1 + if (requiresSecurityOfThisClient) + { + CAT_AUDIT_PRINTF("AUDIT: Resending public key and answer from packetloss. Sending ID_OPEN_CONNECTION_REPLY_2\n"); + bsAnswer.WriteAlignedBytes((const unsigned char *) rssFromSA->answer,sizeof(rssFromSA->answer)); + } +#endif // LIBCAT_SECURITY + + unsigned int i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + else if (outcome!=0) + { + bsOut.Write((MessageID)ID_ALREADY_CONNECTED); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(guid); + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + + if (rakPeer->AllowIncomingConnections()==false) + { + bsOut.Write((MessageID)ID_NO_FREE_INCOMING_CONNECTIONS); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(guid); + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + + bool thisIPConnectedRecently=false; + rssFromSA = rakPeer->AssignSystemAddressToRemoteSystemList(systemAddress, RakPeer::RemoteSystemStruct::UNVERIFIED_SENDER, rakNetSocket, &thisIPConnectedRecently, bindingAddress, mtu, guid, requiresSecurityOfThisClient); + + if (thisIPConnectedRecently==true) + { + bsOut.Write((MessageID)ID_IP_RECENTLY_CONNECTED); + bsOut.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bsOut.Write(guid); + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsOut.GetData(), bsOut.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsOut.GetData(), bsOut.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + + return true; + } + +#if LIBCAT_SECURITY==1 + if (requiresSecurityOfThisClient) + { + CAT_AUDIT_PRINTF("AUDIT: Writing public key. Sending ID_OPEN_CONNECTION_REPLY_2\n"); + if (rakPeer->_server_handshake->ProcessChallenge(remoteHandshakeChallenge, rssFromSA->answer, rssFromSA->reliabilityLayer.GetAuthenticatedEncryption() )) + { + CAT_AUDIT_PRINTF("AUDIT: Challenge good!\n"); + // Keep going to OK block + } + else + { + CAT_AUDIT_PRINTF("AUDIT: Challenge BAD!\n"); + + // Unassign this remote system + rakPeer->DereferenceRemoteSystem(systemAddress); + return true; + } + + bsAnswer.WriteAlignedBytes((const unsigned char *) rssFromSA->answer,sizeof(rssFromSA->answer)); + } +#endif // LIBCAT_SECURITY + + unsigned int i; + for (i=0; i < rakPeer->pluginListNTS.Size(); i++) + rakPeer->pluginListNTS[i]->OnDirectSocketSend((const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBitsUsed(), systemAddress); + SocketLayer::SendTo( rakNetSocket->s, (const char*) bsAnswer.GetData(), bsAnswer.GetNumberOfBytesUsed(), systemAddress, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, _FILE_AND_LINE_ ); + } + return true; + } + + return false; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void ProcessNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNet::TimeUS timeRead, BitStream &updateBitStream ) +{ + ProcessNetworkPacket(systemAddress,data,length,rakPeer,rakPeer->socketList[0],timeRead, updateBitStream); +} +void ProcessNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, RakNet::TimeUS timeRead, BitStream &updateBitStream ) +{ +#if LIBCAT_SECURITY==1 +#ifdef CAT_AUDIT + printf("AUDIT: RECV "); + for (int ii = 0; ii < length; ++ii) + { + printf("%02x", (cat::u8)data[ii]); + } + printf("\n"); +#endif +#endif // LIBCAT_SECURITY + + RakAssert(systemAddress.GetPort()); + bool isOfflineMessage; + if (ProcessOfflineNetworkPacket(systemAddress, data, length, rakPeer, rakNetSocket, &isOfflineMessage, timeRead)) + { + return; + } + +// RakNet::Packet *packet; + RakPeer::RemoteSystemStruct *remoteSystem; + + // See if this datagram came from a connected system + remoteSystem = rakPeer->GetRemoteSystemFromSystemAddress( systemAddress, true, true ); + if ( remoteSystem ) + { + // Handle regular incoming data + // HandleSocketReceiveFromConnectedPlayer is only safe to be called from the same thread as Update, which is this thread + if ( isOfflineMessage==false) + { + remoteSystem->reliabilityLayer.HandleSocketReceiveFromConnectedPlayer( + data, length, systemAddress, rakPeer->pluginListNTS, remoteSystem->MTUSize, + rakNetSocket->s, &rnr, rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, rakNetSocket->extraSocketOptions, timeRead, updateBitStream); + } + } +} + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GenerateSeedFromGuid(void) +{ + /* + // Construct a random seed based on the initial guid value, and the last digits of the difference to each subsequent number + // This assumes that only the last 3 bits of each guidId integer has a meaningful amount of randomness between it and the prior number + unsigned int t = guid.g[0]; + unsigned int i; + for (i=1; i < sizeof(guid.g) / sizeof(guid.g[0]); i++) + { + unsigned int diff = guid.g[i]-guid.g[i-1]; + unsigned int diff3Bits = diff & 0x0007; + diff3Bits <<= 29; + diff3Bits >>= (i-1)*3; + t ^= diff3Bits; + } + + return t; + */ + return (unsigned int) ((myGuid.g >> 32) ^ myGuid.g); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void RakPeer::DerefAllSockets(void) +{ + unsigned int i; + for (i=0; i < socketList.Size(); i++) + { + socketList[i].SetNull(); + } + socketList.Clear(false, _FILE_AND_LINE_); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +unsigned int RakPeer::GetRakNetSocketFromUserConnectionSocketIndex(unsigned int userIndex) const +{ + unsigned int i; + for (i=0; i < socketList.Size(); i++) + { + if (socketList[i]->userConnectionSocketIndex==userIndex) + return i; + } + RakAssert("GetRakNetSocketFromUserConnectionSocketIndex failed" && 0); + return (unsigned int) -1; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +bool RakPeer::RunUpdateCycle( RakNet::TimeUS timeNS, RakNet::Time timeMS, BitStream &updateBitStream ) +{ + RakPeer::RemoteSystemStruct * remoteSystem; + unsigned int activeSystemListIndex; + Packet *packet; + // int currentSentBytes,currentReceivedBytes; +// unsigned numberOfBytesUsed; +// BitSize_t numberOfBitsUsed; + //SystemAddress authoritativeClientSystemAddress; + BitSize_t bitSize; + unsigned int byteSize; + unsigned char *data; + SystemAddress systemAddress; + BufferedCommandStruct *bcs; + bool callerDataAllocationUsed; + RakNetStatistics *rnss; + + // This is here so RecvFromBlocking actually gets data from the same thread + if (SocketLayer::GetSocketLayerOverride()) + { + int len; + SystemAddress sender; + char dataOut[ MAXIMUM_MTU_SIZE ]; + do { + len = SocketLayer::GetSocketLayerOverride()->RakNetRecvFrom(socketList[0]->s,this,dataOut,&sender,true); + if (len>0) + ProcessNetworkPacket( sender, dataOut, len, this, socketList[0], RakNet::GetTimeUS(), updateBitStream ); + } while (len>0); + } + + unsigned int socketListIndex; + RakPeer::RecvFromStruct *recvFromStruct; + while ((recvFromStruct=bufferedPackets.PopInaccurate())!=0) + { + for (socketListIndex=0; socketListIndex < socketList.Size(); socketListIndex++) + { + if ((SOCKET) socketList[socketListIndex]->s==recvFromStruct->s) + break; + } + if (socketListIndex!=socketList.Size()) + ProcessNetworkPacket(recvFromStruct->systemAddress, recvFromStruct->data, recvFromStruct->bytesRead, this, socketList[socketListIndex], recvFromStruct->timeRead, updateBitStream); + bufferedPackets.Deallocate(recvFromStruct, _FILE_AND_LINE_); + } + + while ((bcs=bufferedCommands.PopInaccurate())!=0) + { + if (bcs->command==BufferedCommandStruct::BCS_SEND) + { + // GetTime is a very slow call so do it once and as late as possible + if (timeNS==0) + { + timeNS = RakNet::GetTimeUS(); + timeMS = (RakNet::TimeMS)(timeNS/(RakNet::TimeUS)1000); + } + + callerDataAllocationUsed=SendImmediate((char*)bcs->data, bcs->numberOfBitsToSend, bcs->priority, bcs->reliability, bcs->orderingChannel, bcs->systemIdentifier, bcs->broadcast, true, timeNS, bcs->receipt); + if ( callerDataAllocationUsed==false ) + rakFree_Ex(bcs->data, _FILE_AND_LINE_ ); + + // Set the new connection state AFTER we call sendImmediate in case we are setting it to a disconnection state, which does not allow further sends + if (bcs->connectionMode!=RemoteSystemStruct::NO_ACTION ) + { + remoteSystem=GetRemoteSystem( bcs->systemIdentifier, true, true ); + if (remoteSystem) + remoteSystem->connectMode=bcs->connectionMode; + } + } + else if (bcs->command==BufferedCommandStruct::BCS_CLOSE_CONNECTION) + { + CloseConnectionInternal(bcs->systemIdentifier, false, true, bcs->orderingChannel, bcs->priority); + } + else if (bcs->command==BufferedCommandStruct::BCS_CHANGE_SYSTEM_ADDRESS) + { + // Reroute + RakPeer::RemoteSystemStruct *rssFromGuid = GetRemoteSystem(bcs->systemIdentifier.rakNetGuid,true,true); + if (rssFromGuid!=0) + { + unsigned int existingSystemIndex = GetRemoteSystemIndex(rssFromGuid->systemAddress); + ReferenceRemoteSystem(bcs->systemIdentifier.systemAddress, existingSystemIndex); + } + } + else if (bcs->command==BufferedCommandStruct::BCS_GET_SOCKET) + { + SocketQueryOutput *sqo; + if (bcs->systemIdentifier.IsUndefined()) + { + sqo = socketQueryOutput.Allocate( _FILE_AND_LINE_ ); + sqo->sockets=socketList; + socketQueryOutput.Push(sqo); + } + else + { + remoteSystem=GetRemoteSystem( bcs->systemIdentifier, true, true ); + sqo = socketQueryOutput.Allocate( _FILE_AND_LINE_ ); + + sqo->sockets.Clear(false, _FILE_AND_LINE_); + if (remoteSystem) + { + sqo->sockets.Push(remoteSystem->rakNetSocket, _FILE_AND_LINE_ ); + } + else + { + // Leave empty smart pointer + } + socketQueryOutput.Push(sqo); + } + + } + +#ifdef _DEBUG + bcs->data=0; +#endif + + bufferedCommands.Deallocate(bcs, _FILE_AND_LINE_); + } + + if (requestedConnectionQueue.IsEmpty()==false) + { + if (timeNS==0) + { + timeNS = RakNet::GetTimeUS(); + timeMS = (RakNet::TimeMS)(timeNS/(RakNet::TimeUS)1000); + } + + bool condition1, condition2; + unsigned requestedConnectionQueueIndex=0; + requestedConnectionQueueMutex.Lock(); + while (requestedConnectionQueueIndex < requestedConnectionQueue.Size()) + { + RequestedConnectionStruct *rcs; + rcs = requestedConnectionQueue[requestedConnectionQueueIndex]; + requestedConnectionQueueMutex.Unlock(); + if (rcs->nextRequestTime < timeMS) + { + condition1=rcs->requestsMade==rcs->sendConnectionAttemptCount+1; + condition2=(bool)((rcs->systemAddress==UNASSIGNED_SYSTEM_ADDRESS)==1); + // If too many requests made or a hole then remove this if possible, otherwise invalidate it + if (condition1 || condition2) + { + if (rcs->data) + { + rakFree_Ex(rcs->data, _FILE_AND_LINE_ ); + rcs->data=0; + } + + if (condition1 && !condition2 && rcs->actionToTake==RequestedConnectionStruct::CONNECT) + { + // Tell user of connection attempt failed + packet=AllocPacket(sizeof( char ), _FILE_AND_LINE_); + packet->data[ 0 ] = ID_CONNECTION_ATTEMPT_FAILED; // Attempted a connection and couldn't + packet->bitSize = ( sizeof( char ) * 8); + packet->systemAddress = rcs->systemAddress; + AddPacketToProducer(packet); + } + +#if LIBCAT_SECURITY==1 + CAT_AUDIT_PRINTF("AUDIT: Connection attempt FAILED so deleting rcs->client_handshake object %x\n", rcs->client_handshake); + RakNet::OP_DELETE(rcs->client_handshake,_FILE_AND_LINE_); +#endif + RakNet::OP_DELETE(rcs,_FILE_AND_LINE_); + + requestedConnectionQueueMutex.Lock(); + for (unsigned int k=0; k < requestedConnectionQueue.Size(); k++) + { + if (requestedConnectionQueue[k]==rcs) + { + requestedConnectionQueue.RemoveAtIndex(k); + break; + } + } + requestedConnectionQueueMutex.Unlock(); + } + else + { + + int MTUSizeIndex = rcs->requestsMade / (rcs->sendConnectionAttemptCount/NUM_MTU_SIZES); + if (MTUSizeIndex>=NUM_MTU_SIZES) + MTUSizeIndex=NUM_MTU_SIZES-1; + rcs->requestsMade++; + rcs->nextRequestTime=timeMS+rcs->timeBetweenSendConnectionAttemptsMS; + + RakNet::BitStream bitStream; + //WriteOutOfBandHeader(&bitStream, ID_USER_PACKET_ENUM); + bitStream.Write((MessageID)ID_OPEN_CONNECTION_REQUEST_1); + bitStream.WriteAlignedBytes((const unsigned char*) OFFLINE_MESSAGE_DATA_ID, sizeof(OFFLINE_MESSAGE_DATA_ID)); + bitStream.Write((MessageID)RAKNET_PROTOCOL_VERSION); + bitStream.PadWithZeroToByteLength(mtuSizes[MTUSizeIndex]-UDP_HEADER_SIZE); + + char str[256]; + rcs->systemAddress.ToString(true,str); + + //RAKNET_DEBUG_PRINTF("%i:IOCR, ", __LINE__); + + unsigned i; + for (i=0; i < pluginListNTS.Size(); i++) + pluginListNTS[i]->OnDirectSocketSend((const char*) bitStream.GetData(), bitStream.GetNumberOfBitsUsed(), rcs->systemAddress); + + if (rcs->socket.IsNull()) + { + rcs->systemAddress.FixForIPVersion(socketList[rcs->socketIndex]->boundAddress); + SocketLayer::SetDoNotFragment(socketList[rcs->socketIndex]->s, 1, socketList[rcs->socketIndex]->boundAddress.GetIPPROTO()); + RakNet::Time sendToStart=RakNet::GetTime(); + if (SocketLayer::SendTo( socketList[rcs->socketIndex]->s, (const char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), rcs->systemAddress, socketList[rcs->socketIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[rcs->socketIndex]->extraSocketOptions, _FILE_AND_LINE_ )==-10040) + { + // Don't use this MTU size again + rcs->requestsMade = (unsigned char) ((MTUSizeIndex + 1) * (rcs->sendConnectionAttemptCount/NUM_MTU_SIZES)); + rcs->nextRequestTime=timeMS; + } + else + { + RakNet::Time sendToEnd=RakNet::GetTime(); + if (sendToEnd-sendToStart>100) + { + // Drop to lowest MTU + int lowestMtuIndex = rcs->sendConnectionAttemptCount/NUM_MTU_SIZES * (NUM_MTU_SIZES - 1); + if (lowestMtuIndex > rcs->requestsMade) + { + rcs->requestsMade = (unsigned char) lowestMtuIndex; + rcs->nextRequestTime=timeMS; + } + else + rcs->requestsMade=(unsigned char)(rcs->sendConnectionAttemptCount+1); + } + } + SocketLayer::SetDoNotFragment(socketList[rcs->socketIndex]->s, 0, socketList[rcs->socketIndex]->boundAddress.GetIPPROTO()); + } + else + { + rcs->systemAddress.FixForIPVersion(rcs->socket->boundAddress); + SocketLayer::SetDoNotFragment(rcs->socket->s, 1, rcs->socket->boundAddress.GetIPPROTO()); + RakNet::Time sendToStart=RakNet::GetTime(); + if (SocketLayer::SendTo( rcs->socket->s, (const char*) bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), rcs->systemAddress, socketList[rcs->socketIndex]->remotePortRakNetWasStartedOn_PS3_PSP2, socketList[rcs->socketIndex]->extraSocketOptions, _FILE_AND_LINE_ )==-10040) + { + // Don't use this MTU size again + rcs->requestsMade = (unsigned char) ((MTUSizeIndex + 1) * (rcs->sendConnectionAttemptCount/NUM_MTU_SIZES)); + rcs->nextRequestTime=timeMS; + } + else + { + RakNet::Time sendToEnd=RakNet::GetTime(); + if (sendToEnd-sendToStart>100) + { + // Drop to lowest MTU + int lowestMtuIndex = rcs->sendConnectionAttemptCount/NUM_MTU_SIZES * (NUM_MTU_SIZES - 1); + if (lowestMtuIndex > rcs->requestsMade) + { + rcs->requestsMade = (unsigned char) lowestMtuIndex; + rcs->nextRequestTime=timeMS; + } + else + rcs->requestsMade= (unsigned char) rcs->sendConnectionAttemptCount+1; + } + } + SocketLayer::SetDoNotFragment(rcs->socket->s, 0, rcs->socket->boundAddress.GetIPPROTO()); + } + + requestedConnectionQueueIndex++; + } + } + else + requestedConnectionQueueIndex++; + + requestedConnectionQueueMutex.Lock(); + } + requestedConnectionQueueMutex.Unlock(); + } + + // remoteSystemList in network thread + for ( activeSystemListIndex = 0; activeSystemListIndex < activeSystemListSize; ++activeSystemListIndex ) + //for ( remoteSystemIndex = 0; remoteSystemIndex < remoteSystemListSize; ++remoteSystemIndex ) + { + // I'm using systemAddress from remoteSystemList but am not locking it because this loop is called very frequently and it doesn't + // matter if we miss or do an extra update. The reliability layers themselves never care which player they are associated with + //systemAddress = remoteSystemList[ remoteSystemIndex ].systemAddress; + // Allow the systemAddress for this remote system list to change. We don't care if it changes now. + // remoteSystemList[ remoteSystemIndex ].allowSystemAddressAssigment=true; + + + // Found an active remote system + remoteSystem = activeSystemList[ activeSystemListIndex ]; + systemAddress = remoteSystem->systemAddress; + RakAssert(systemAddress!=UNASSIGNED_SYSTEM_ADDRESS); + // Update is only safe to call from the same thread that calls HandleSocketReceiveFromConnectedPlayer, + // which is this thread + + if (timeNS==0) + { + timeNS = RakNet::GetTimeUS(); + timeMS = (RakNet::TimeMS)(timeNS/(RakNet::TimeUS)1000); + //RAKNET_DEBUG_PRINTF("timeNS = %I64i timeMS=%i\n", timeNS, timeMS); + } + + + if (timeMS > remoteSystem->lastReliableSend && timeMS-remoteSystem->lastReliableSend > remoteSystem->reliabilityLayer.GetTimeoutTime()/2 && remoteSystem->connectMode==RemoteSystemStruct::CONNECTED) + { + // If no reliable packets are waiting for an ack, do a one byte reliable send so that disconnections are noticed + RakNetStatistics rakNetStatistics; + rnss=remoteSystem->reliabilityLayer.GetStatistics(&rakNetStatistics); + if (rnss->messagesInResendBuffer==0) + { + PingInternal( systemAddress, true, RELIABLE ); + + //remoteSystem->lastReliableSend=timeMS+remoteSystem->reliabilityLayer.GetTimeoutTime(); + remoteSystem->lastReliableSend=timeMS; + } + } + + remoteSystem->reliabilityLayer.Update( remoteSystem->rakNetSocket->s, systemAddress, remoteSystem->MTUSize, timeNS, maxOutgoingBPS, pluginListNTS, &rnr, remoteSystem->rakNetSocket->remotePortRakNetWasStartedOn_PS3_PSP2, remoteSystem->rakNetSocket->extraSocketOptions, updateBitStream ); // systemAddress only used for the internet simulator test + + // Check for failure conditions + if ( remoteSystem->reliabilityLayer.IsDeadConnection() || + ((remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ASAP || remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY) && remoteSystem->reliabilityLayer.IsOutgoingDataWaiting()==false) || + (remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ON_NO_ACK && (remoteSystem->reliabilityLayer.AreAcksWaiting()==false || remoteSystem->reliabilityLayer.AckTimeout(timeMS)==true)) || + (( + (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION || + remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST || + remoteSystem->connectMode==RemoteSystemStruct::UNVERIFIED_SENDER) + && timeMS > remoteSystem->connectionTime && timeMS - remoteSystem->connectionTime > 10000)) + ) + { + // RAKNET_DEBUG_PRINTF("timeMS=%i remoteSystem->connectionTime=%i\n", timeMS, remoteSystem->connectionTime ); + + // Failed. Inform the user? + // TODO - RakNet 4.0 - Return a different message identifier for DISCONNECT_ASAP_SILENTLY and DISCONNECT_ASAP than for DISCONNECT_ON_NO_ACK + // The first two mean we called CloseConnection(), the last means the other system sent us ID_DISCONNECTION_NOTIFICATION + if (remoteSystem->connectMode==RemoteSystemStruct::CONNECTED || remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION + || remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ASAP || remoteSystem->connectMode==RemoteSystemStruct::DISCONNECT_ON_NO_ACK) + { + +// RakNet::BitStream undeliveredMessages; +// remoteSystem->reliabilityLayer.GetUndeliveredMessages(&undeliveredMessages,remoteSystem->MTUSize); + +// packet=AllocPacket(sizeof( char ) + undeliveredMessages.GetNumberOfBytesUsed()); + packet=AllocPacket(sizeof( char ), _FILE_AND_LINE_); + if (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION) + packet->data[ 0 ] = ID_CONNECTION_ATTEMPT_FAILED; // Attempted a connection and couldn't + else if (remoteSystem->connectMode==RemoteSystemStruct::CONNECTED) + packet->data[ 0 ] = ID_CONNECTION_LOST; // DeadConnection + else + packet->data[ 0 ] = ID_DISCONNECTION_NOTIFICATION; // DeadConnection + +// memcpy(packet->data+1, undeliveredMessages.GetData(), undeliveredMessages.GetNumberOfBytesUsed()); + + packet->guid = remoteSystem->guid; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + + AddPacketToProducer(packet); + } + // else connection shutting down, don't bother telling the user + +#ifdef _DO_PRINTF + RAKNET_DEBUG_PRINTF("Connection dropped for player %i:%i\n", systemAddress); +#endif + CloseConnectionInternal( systemAddress, false, true, 0, LOW_PRIORITY ); + continue; + } + + // Ping this guy if it is time to do so + if ( remoteSystem->connectMode==RemoteSystemStruct::CONNECTED && timeMS > remoteSystem->nextPingTime && ( occasionalPing || remoteSystem->lowestPing == (unsigned short)-1 ) ) + { + remoteSystem->nextPingTime = timeMS + 5000; + PingInternal( systemAddress, true, UNRELIABLE ); + + // Update again immediately after this tick so the ping goes out right away + quitAndDataEvents.SetEvent(); + } + + // Find whoever has the lowest player ID + //if (systemAddress < authoritativeClientSystemAddress) + // authoritativeClientSystemAddress=systemAddress; + + // Does the reliability layer have any packets waiting for us? + // To be thread safe, this has to be called in the same thread as HandleSocketReceiveFromConnectedPlayer + bitSize = remoteSystem->reliabilityLayer.Receive( &data ); + + while ( bitSize > 0 ) + { + // These types are for internal use and should never arrive from a network packet + if (data[0]==ID_CONNECTION_ATTEMPT_FAILED) + { + RakAssert(0); + bitSize=0; + continue; + } + + // Fast and easy - just use the data that was returned + byteSize = (unsigned int) BITS_TO_BYTES( bitSize ); + + // For unknown senders we only accept a few specific packets + if (remoteSystem->connectMode==RemoteSystemStruct::UNVERIFIED_SENDER) + { + if ( (unsigned char)(data)[0] == ID_CONNECTION_REQUEST ) + { + ParseConnectionRequestPacket(remoteSystem, systemAddress, (const char*)data, byteSize); + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else + { + CloseConnectionInternal( systemAddress, false, true, 0, LOW_PRIORITY ); +#ifdef _DO_PRINTF + RAKNET_DEBUG_PRINTF("Temporarily banning %i:%i for sending nonsense data\n", systemAddress); +#endif + + char str1[64]; + systemAddress.ToString(false, str1); + AddToBanList(str1, remoteSystem->reliabilityLayer.GetTimeoutTime()); + + + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else + { + // However, if we are connected we still take a connection request in case both systems are trying to connect to each other + // at the same time + if ( (unsigned char)(data)[0] == ID_CONNECTION_REQUEST ) + { + // 04/27/06 This is wrong. With cross connections, we can both have initiated the connection are in state REQUESTED_CONNECTION + // 04/28/06 Downgrading connections from connected will close the connection due to security at ((remoteSystem->connectMode!=RemoteSystemStruct::CONNECTED && time > remoteSystem->connectionTime && time - remoteSystem->connectionTime > 10000)) + if (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION) + { + ParseConnectionRequestPacket(remoteSystem, systemAddress, (const char*)data, byteSize); + } + else + { + + RakNet::BitStream bs((unsigned char*) data,byteSize,false); + bs.IgnoreBytes(sizeof(MessageID)); + bs.IgnoreBytes(sizeof(OFFLINE_MESSAGE_DATA_ID)); + bs.IgnoreBytes(RakNetGUID::size()); + RakNet::Time incomingTimestamp; + bs.Read(incomingTimestamp); + + // Got a connection request message from someone we are already connected to. Just reply normally. + // This can happen due to race conditions with the fully connected mesh + OnConnectionRequest( remoteSystem, incomingTimestamp ); + } + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char) data[ 0 ] == ID_NEW_INCOMING_CONNECTION && byteSize > sizeof(unsigned char)+sizeof(unsigned int)+sizeof(unsigned short)+sizeof(RakNet::Time)*2 ) + { + if (remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST) + { + remoteSystem->connectMode=RemoteSystemStruct::CONNECTED; + PingInternal( systemAddress, true, UNRELIABLE ); + + // Update again immediately after this tick so the ping goes out right away + quitAndDataEvents.SetEvent(); + + RakNet::BitStream inBitStream((unsigned char *) data, byteSize, false); + SystemAddress bsSystemAddress; + + inBitStream.IgnoreBits(8); + inBitStream.Read(bsSystemAddress); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + inBitStream.Read(remoteSystem->theirInternalSystemAddress[i]); + + RakNet::Time sendPingTime, sendPongTime; + inBitStream.Read(sendPingTime); + inBitStream.Read(sendPongTime); + OnConnectedPong(sendPingTime,sendPongTime,remoteSystem); + + // Overwrite the data in the packet + // NewIncomingConnectionStruct newIncomingConnectionStruct; + // RakNet::BitStream nICS_BS( data, NewIncomingConnectionStruct_Size, false ); + // newIncomingConnectionStruct.Deserialize( nICS_BS ); + + remoteSystem->myExternalSystemAddress = bsSystemAddress; + firstExternalID=bsSystemAddress; + firstExternalID.debugPort=ntohs(firstExternalID.address.addr4.sin_port); + + // Send this info down to the game + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = bitSize; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + } + else + { + // Send to game even if already connected. This could happen when connecting to 127.0.0.1 + // Ignore, already connected + // rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else if ( (unsigned char) data[ 0 ] == ID_CONNECTED_PONG && byteSize == sizeof(unsigned char)+sizeof(RakNet::Time)*2 ) + { + RakNet::Time sendPingTime, sendPongTime; + + // Copy into the ping times array the current time - the value returned + // First extract the sent ping + RakNet::BitStream inBitStream( (unsigned char *) data, byteSize, false ); + //PingStruct ps; + //ps.Deserialize(psBS); + inBitStream.IgnoreBits(8); + inBitStream.Read(sendPingTime); + inBitStream.Read(sendPongTime); + + OnConnectedPong(sendPingTime,sendPongTime,remoteSystem); + + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char)data[0] == ID_CONNECTED_PING && byteSize == sizeof(unsigned char)+sizeof(RakNet::Time) ) + { + RakNet::BitStream inBitStream( (unsigned char *) data, byteSize, false ); + inBitStream.IgnoreBits(8); + RakNet::Time sendPingTime; + inBitStream.Read(sendPingTime); + + RakNet::BitStream outBitStream; + outBitStream.Write((MessageID)ID_CONNECTED_PONG); + outBitStream.Write(sendPingTime); + outBitStream.Write(RakNet::GetTime()); + SendImmediate( (char*)outBitStream.GetData(), outBitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, UNRELIABLE, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0 ); + + // Update again immediately after this tick so the ping goes out right away + quitAndDataEvents.SetEvent(); + + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char) data[ 0 ] == ID_DISCONNECTION_NOTIFICATION ) + { + // We shouldn't close the connection immediately because we need to ack the ID_DISCONNECTION_NOTIFICATION + remoteSystem->connectMode=RemoteSystemStruct::DISCONNECT_ON_NO_ACK; + rakFree_Ex(data, _FILE_AND_LINE_ ); + + // AddPacketToProducer(packet); + } + else if ( (unsigned char)(data)[0] == ID_DETECT_LOST_CONNECTIONS && byteSize == sizeof(unsigned char) ) + { + // Do nothing + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + else if ( (unsigned char)(data)[0] == ID_INVALID_PASSWORD ) + { + if (remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION) + { + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = bitSize; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + + remoteSystem->connectMode=RemoteSystemStruct::DISCONNECT_ASAP_SILENTLY; + } + else + { + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else if ( (unsigned char)(data)[0] == ID_CONNECTION_REQUEST_ACCEPTED ) + { + if (byteSize > sizeof(MessageID)+sizeof(unsigned int)+sizeof(unsigned short)+sizeof(SystemIndex)+sizeof(RakNet::Time)*2) + { + // Make sure this connection accept is from someone we wanted to connect to + bool allowConnection, alreadyConnected; + + if (remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST || + remoteSystem->connectMode==RemoteSystemStruct::REQUESTED_CONNECTION || + allowConnectionResponseIPMigration) + allowConnection=true; + else + allowConnection=false; + + if (remoteSystem->connectMode==RemoteSystemStruct::HANDLING_CONNECTION_REQUEST) + alreadyConnected=true; + else + alreadyConnected=false; + + if ( allowConnection ) + { + SystemAddress externalID; + SystemIndex systemIndex; +// SystemAddress internalID; + + RakNet::BitStream inBitStream((unsigned char *) data, byteSize, false); + inBitStream.IgnoreBits(8); + // inBitStream.Read(remotePort); + inBitStream.Read(externalID); + inBitStream.Read(systemIndex); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + inBitStream.Read(remoteSystem->theirInternalSystemAddress[i]); + + RakNet::Time sendPingTime, sendPongTime; + inBitStream.Read(sendPingTime); + inBitStream.Read(sendPongTime); + OnConnectedPong(sendPingTime, sendPongTime, remoteSystem); + + // Find a free remote system struct to use + // RakNet::BitStream casBitS(data, byteSize, false); + // ConnectionAcceptStruct cas; + // cas.Deserialize(casBitS); + // systemAddress.GetPort() = remotePort; + + // The remote system told us our external IP, so save it + remoteSystem->myExternalSystemAddress = externalID; + remoteSystem->connectMode=RemoteSystemStruct::CONNECTED; + + firstExternalID=externalID; + firstExternalID.debugPort=ntohs(firstExternalID.address.addr4.sin_port); + + // Send the connection request complete to the game + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = byteSize * 8; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = ( SystemIndex ) GetIndexFromSystemAddress( systemAddress, true ); + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + + RakNet::BitStream outBitStream; + outBitStream.Write((MessageID)ID_NEW_INCOMING_CONNECTION); + outBitStream.Write(systemAddress); + for (unsigned int i=0; i < MAXIMUM_NUMBER_OF_INTERNAL_IDS; i++) + outBitStream.Write(ipList[i]); + outBitStream.Write(sendPongTime); + outBitStream.Write(RakNet::GetTime()); + + + // We turned on encryption with SetEncryptionKey. This pads packets to up to a multiple of 16 bytes. + // As soon as a multiple of 16 byte packet arrives on the remote system, we will turn on AES. This works because all encrypted packets are multiples of 16 and the + // packets I happen to be sending before this are not a multiple of 16 bytes. Otherwise there is no way to know if a packet that arrived is + // encrypted or not so the other side won't know to turn on encryption or not. + RakAssert((outBitStream.GetNumberOfBytesUsed()&15)!=0); + SendImmediate( (char*)outBitStream.GetData(), outBitStream.GetNumberOfBitsUsed(), IMMEDIATE_PRIORITY, RELIABLE_ORDERED, 0, systemAddress, false, false, RakNet::GetTimeUS(), 0 ); + + if (alreadyConnected==false) + { + PingInternal( systemAddress, true, UNRELIABLE ); + } + } + else + { + // Ignore, already connected + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else + { + // Version mismatch error? + RakAssert(0); + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + else + { + // What do I do if I get a message from a system, before I am fully connected? + // I can either ignore it or give it to the user + // It seems like giving it to the user is a better option + if ((data[0]>=(MessageID)ID_TIMESTAMP || data[0]==ID_SND_RECEIPT_ACKED || data[0]==ID_SND_RECEIPT_LOSS) && + remoteSystem->isActive + ) + { + packet=AllocPacket(byteSize, data, _FILE_AND_LINE_); + packet->bitSize = bitSize; + packet->systemAddress = systemAddress; + packet->systemAddress.systemIndex = remoteSystem->remoteSystemIndex; + packet->guid = remoteSystem->guid; + packet->guid.systemIndex=packet->systemAddress.systemIndex; + AddPacketToProducer(packet); + } + else + { + rakFree_Ex(data, _FILE_AND_LINE_ ); + } + } + } + + // Does the reliability layer have any more packets waiting for us? + // To be thread safe, this has to be called in the same thread as HandleSocketReceiveFromConnectedPlayer + bitSize = remoteSystem->reliabilityLayer.Receive( &data ); + } + + } + + return true; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RAK_THREAD_DECLARATION(RakNet::RecvFromLoop) +{ + + + + RakPeerAndIndex *rpai = ( RakPeerAndIndex * ) arguments; + + RakPeer * rakPeer = rpai->rakPeer; + SOCKET s = rpai->s; + unsigned short remotePortRakNetWasStartedOn_PS3 = rpai->remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions = rpai->extraSocketOptions; + + rakPeer->isRecvFromLoopThreadActive.Increment(); + + RakPeer::RecvFromStruct *recvFromStruct; + while ( rakPeer->endThreads == false ) + { + recvFromStruct=rakPeer->bufferedPackets.Allocate( _FILE_AND_LINE_ ); + if (recvFromStruct != NULL) + { + recvFromStruct->s=s; + recvFromStruct->remotePortRakNetWasStartedOn_PS3=remotePortRakNetWasStartedOn_PS3; + recvFromStruct->extraSocketOptions=extraSocketOptions; + SocketLayer::RecvFromBlocking(s, rakPeer, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, recvFromStruct->data, &recvFromStruct->bytesRead, &recvFromStruct->systemAddress, &recvFromStruct->timeRead); + + if (recvFromStruct->bytesRead>0) + { + RakAssert(recvFromStruct->systemAddress.GetPort()); + rakPeer->bufferedPackets.Push(recvFromStruct); + rakPeer->quitAndDataEvents.SetEvent(); + rakPeer->errorState = 0; + } + else + { + if (recvFromStruct->bytesRead < 0) { + --rakPeer->errorState; + RakSleep(30); + } + rakPeer->bufferedPackets.Deallocate(recvFromStruct, _FILE_AND_LINE_); + } + } + else + RakSleep(30); + } + rakPeer->isRecvFromLoopThreadActive.Decrement(); + + + + + return 0; + +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +RAK_THREAD_DECLARATION(RakNet::UpdateNetworkLoop) +{ + + + + RakPeer * rakPeer = ( RakPeer * ) arguments; + + +/* + // 11/15/05 - this is slower than Sleep() +#ifdef _WIN32 +#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) + // Lets see if these timers give better performance than Sleep + HANDLE timerHandle; + LARGE_INTEGER dueTime; + + if ( rakPeer->threadSleepTimer <= 0 ) + rakPeer->threadSleepTimer = 1; + + // 2nd parameter of false means synchronization timer instead of manual-reset timer + timerHandle = CreateWaitableTimer( NULL, FALSE, 0 ); + + RakAssert( timerHandle ); + + dueTime.QuadPart = -10000 * rakPeer->threadSleepTimer; // 10000 is 1 ms? + + BOOL success = SetWaitableTimer( timerHandle, &dueTime, rakPeer->threadSleepTimer, NULL, NULL, FALSE ); + (void) success; + RakAssert( success ); + +#endif +#endif +*/ + + BitStream updateBitStream( MAXIMUM_MTU_SIZE +#if LIBCAT_SECURITY==1 + + cat::AuthenticatedEncryption::OVERHEAD_BYTES +#endif + ); + + RakNet::TimeUS timeNS; + RakNet::TimeMS timeMS; + + rakPeer->isMainLoopThreadActive = true; + + while ( rakPeer->endThreads == false ) + { + // Set inside RunUpdateCycle() itself, this is here for testing + timeNS=0; + timeMS=0; + +// #ifdef _DEBUG +// // Sanity check, make sure RunUpdateCycle does not block or not otherwise get called for a long time +// RakNetTime thisCall=RakNet::GetTime(); +// RakAssert(thisCall-lastCall<250); +// lastCall=thisCall; +// #endif + if (rakPeer->userUpdateThreadPtr) + rakPeer->userUpdateThreadPtr(rakPeer, rakPeer->userUpdateThreadData); + + rakPeer->RunUpdateCycle(timeNS, timeMS, updateBitStream); + + // Pending sends go out this often, unless quitAndDataEvents is set + rakPeer->quitAndDataEvents.WaitOnEvent(10); + + /* + +// #if ((_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)) && +#if defined(USE_WAIT_FOR_MULTIPLE_EVENTS) && defined(_WIN32) + + if (rakPeer->threadSleepTimer>0) + { + WSAEVENT eventArray[256]; + unsigned int i, eventArrayIndex; + for (i=0,eventArrayIndex=0; i < rakPeer->socketList.Size(); i++) + { + if (rakPeer->socketList[i]->recvEvent!=INVALID_HANDLE_VALUE) + { + eventArray[eventArrayIndex]=rakPeer->socketList[i]->recvEvent; + eventArrayIndex++; + if (eventArrayIndex==256) + break; + } + } + WSAWaitForMultipleEvents(eventArrayIndex,(const HANDLE*) &eventArray,FALSE,rakPeer->threadSleepTimer,FALSE); + } + else + { + RakSleep(0); + } + +#else // ((_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS) + #pragma message("-- RakNet: Using Sleep(). Uncomment USE_WAIT_FOR_MULTIPLE_EVENTS in RakNetDefines.h if you want to use WaitForSingleObject instead. --") + + RakSleep( rakPeer->threadSleepTimer ); +#endif + */ + } + + rakPeer->isMainLoopThreadActive = false; + + /* +#ifdef _WIN32 +#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) + CloseHandle(timerHandle); +#endif +#endif + */ + + + + + return 0; + +} + +void RakPeer::CallPluginCallbacks(DataStructures::List &pluginList, Packet *packet) +{ + for (unsigned int i=0; i < pluginList.Size(); i++) + { + switch (packet->data[0]) + { + case ID_DISCONNECTION_NOTIFICATION: + pluginList[i]->OnClosedConnection(packet->systemAddress, packet->guid, LCR_DISCONNECTION_NOTIFICATION); + break; + case ID_CONNECTION_LOST: + pluginList[i]->OnClosedConnection(packet->systemAddress, packet->guid, LCR_CONNECTION_LOST); + break; + case ID_NEW_INCOMING_CONNECTION: + pluginList[i]->OnNewConnection(packet->systemAddress, packet->guid, true); + break; + case ID_CONNECTION_REQUEST_ACCEPTED: + pluginList[i]->OnNewConnection(packet->systemAddress, packet->guid, false); + break; + case ID_CONNECTION_ATTEMPT_FAILED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_CONNECTION_ATTEMPT_FAILED); + break; + case ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY); + break; + case ID_OUR_SYSTEM_REQUIRES_SECURITY: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_OUR_SYSTEM_REQUIRES_SECURITY); + break; + case ID_PUBLIC_KEY_MISMATCH: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_PUBLIC_KEY_MISMATCH); + break; + case ID_ALREADY_CONNECTED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_ALREADY_CONNECTED); + break; + case ID_NO_FREE_INCOMING_CONNECTIONS: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_NO_FREE_INCOMING_CONNECTIONS); + break; + case ID_CONNECTION_BANNED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_CONNECTION_BANNED); + break; + case ID_INVALID_PASSWORD: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_INVALID_PASSWORD); + break; + case ID_INCOMPATIBLE_PROTOCOL_VERSION: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_INCOMPATIBLE_PROTOCOL); + break; + case ID_IP_RECENTLY_CONNECTED: + pluginList[i]->OnFailedConnectionAttempt(packet, FCAR_IP_RECENTLY_CONNECTED); + break; + } + } +} + +// #if defined(RMO_NEW_UNDEF_ALLOCATING_QUEUE) +// #pragma pop_macro("new") +// #undef RMO_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/src/raknet/RakPeer.h b/src/raknet/RakPeer.h new file mode 100755 index 0000000..8fff5c7 --- /dev/null +++ b/src/raknet/RakPeer.h @@ -0,0 +1,984 @@ +/// \file +/// \brief Declares RakPeer class. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +// TODO - RakNet 4 - Add network simulator +// TODO - RakNet 4 - Enable disabling flow control per connections + +#ifndef __RAK_PEER_H +#define __RAK_PEER_H + +#include "ReliabilityLayer.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "SingleProducerConsumer.h" +#include "SimpleMutex.h" +#include "DS_OrderedList.h" +#include "Export.h" +#include "RakString.h" +#include "RakThread.h" +#include "RakNetSocket.h" +#include "RakNetSmartPtr.h" +#include "DS_ThreadsafeAllocatingQueue.h" +#include "SignaledEvent.h" +#include "NativeFeatureIncludes.h" +#include "SecureHandshake.h" +#include "LocklessTypes.h" + +namespace RakNet { +/// Forward declarations +class HuffmanEncodingTree; +class PluginInterface2; + +// Sucks but this struct has to be outside the class. Inside and DevCPP won't let you refer to the struct as RakPeer::RemoteSystemIndex while GCC +// forces you to do RakPeer::RemoteSystemIndex +struct RemoteSystemIndex{unsigned index; RemoteSystemIndex *next;}; +//int RAK_DLL_EXPORT SystemAddressAndIndexComp( const SystemAddress &key, const RemoteSystemIndex &data ); // GCC requires RakPeer::RemoteSystemIndex or it won't compile + +///\brief Main interface for network communications. +/// \details It implements most of RakNet's functionality and is the primary interface for RakNet. +/// +/// Inherits RakPeerInterface. +/// +/// See the individual functions for what the class can do. +/// +class RAK_DLL_EXPORT RakPeer : public RakPeerInterface +{ +public: + ///Constructor + RakPeer(); + + ///Destructor + virtual ~RakPeer(); + + // --------------------------------------------------------------------------------------------Major Low Level Functions - Functions needed by most users-------------------------------------------------------------------------------------------- + /// \brief Starts the network threads and opens the listen port. + /// \details You must call this before calling Connect(). + /// \pre On the PS3, call Startup() after Client_Login() + /// \note Multiple calls while already active are ignored. To call this function again with different settings, you must first call Shutdown(). + /// \note Call SetMaximumIncomingConnections if you want to accept incoming connections. + /// \param[in] maxConnections Maximum number of connections between this instance of RakPeer and another instance of RakPeer. Required so that the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.A hybrid would set it to the sum of both types of connections. + /// \param[in] localPort The port to listen for connections on. On linux the system may be set up so thast ports under 1024 are restricted for everything but the root user. Use a higher port for maximum compatibility. + /// \param[in] socketDescriptors An array of SocketDescriptor structures to force RakNet to listen on a particular IP address or port (or both). Each SocketDescriptor will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); However, on the XBOX be sure to use IPPROTO_VDP + /// \param[in] socketDescriptorCount The size of the \a socketDescriptors array. Pass 1 if you are not sure what to pass. + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \return RAKNET_STARTED on success, otherwise appropriate failure enumeration. + StartupResult Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority=-99999 ); + + /// If you accept connections, you must call this or else security will not be enabled for incoming connections. + /// This feature requires more round trips, bandwidth, and CPU time for the connection handshake + /// x64 builds require under 25% of the CPU time of other builds + /// See the Encryption sample for example usage + /// \pre Must be called while offline + /// \pre LIBCAT_SECURITY must be defined to 1 in NativeFeatureIncludes.h for this function to have any effect + /// \param[in] publicKey A pointer to the public key for accepting new connections + /// \param[in] privateKey A pointer to the private key for accepting new connections + /// \param[in] bRequireClientKey: Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection + bool InitializeSecurity( const char *publicKey, const char *privateKey, bool bRequireClientKey = false ); + + /// Disables security for incoming connections. + /// \note Must be called while offline + void DisableSecurity( void ); + + /// \brief This is useful if you have a fixed-address internal server behind a LAN. + /// + /// Secure connections are determined by the recipient of an incoming connection. This has no effect if called on the system attempting to connect. + /// \note If secure connections are on, do not use secure connections for a specific IP address. + /// \param[in] ip IP address to add. * wildcards are supported. + void AddToSecurityExceptionList(const char *ip); + + /// \brief Remove a specific connection previously added via AddToSecurityExceptionList. + /// \param[in] ip IP address to remove. Pass 0 to remove all IP addresses. * wildcards are supported. + void RemoveFromSecurityExceptionList(const char *ip); + + /// \brief Checks to see if a given IP is in the security exception list. + /// \param[in] IP address to check. + /// \return True if the IP address is found in security exception list, else returns false. + bool IsInSecurityExceptionList(const char *ip); + + /// \brief Sets the maximum number of incoming connections allowed. + /// \details If the number of incoming connections is less than the number of players currently connected, + /// no more players will be allowed to connect. If this is greater than the maximum number of peers allowed, + /// it will be reduced to the maximum number of peers allowed. + /// + /// Defaults to 0, meaning by default, nobody can connect to you + /// \param[in] numberAllowed Maximum number of incoming connections allowed. + void SetMaximumIncomingConnections( unsigned short numberAllowed ); + + /// \brief Returns the value passed to SetMaximumIncomingConnections(). + /// \return Maximum number of incoming connections, which is always <= maxConnections + unsigned short GetMaximumIncomingConnections( void ) const; + + /// \brief Returns how many open connections exist at this time. + /// \return Number of open connections. + unsigned short NumberOfConnections(void) const; + + /// \brief Sets the password for the incoming connections. + /// \details The password must match in the call to Connect (defaults to none). + /// Pass 0 to passwordData to specify no password. + /// This is a way to set a low level password for all incoming connections. To selectively reject connections, implement your own scheme using CloseConnection() to remove unwanted connections. + /// \param[in] passwordData A data block that incoming connections must match. This can be just a password, or can be a stream of data. Specify 0 for no password data + /// \param[in] passwordDataLength The length in bytes of passwordData + void SetIncomingPassword( const char* passwordData, int passwordDataLength ); + + /// \brief Gets the password passed to SetIncomingPassword + /// \param[out] passwordData Should point to a block large enough to hold the password data you passed to SetIncomingPassword() + /// \param[in,out] passwordDataLength Maximum size of the passwordData array. Modified to hold the number of bytes actually written. + void GetIncomingPassword( char* passwordData, int *passwordDataLength ); + + /// \brief Connect to the specified host (ip or domain name) and server port. + /// \details Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. + /// Calling both acts as a true peer. + /// + /// This is a non-blocking connection. + /// + /// The connection is successful when GetConnectionState() returns IS_CONNECTED or Receive() gets a message with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. + /// If the connection is not successful, such as a rejected connection or no response then neither of these things will happen. + /// \pre Requires that you first call Initialize. + /// \param[in] host Either a dotted IP address or a domain name. + /// \param[in] remotePort Port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword(). This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData. + /// \param[in] publicKey The public key the server is using. If 0, the server is not using security. If non-zero, the publicKeyMode member determines how to connect + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to determine the one to send on. + /// \param[in] sendConnectionAttemptCount Number of datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime Time to elapse before dropping the connection if a reliable message could not be sent. 0 to use the default value from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + /// \note It is possible to immediately get back ID_CONNECTION_ATTEMPT_FAILED if you exceed the maxConnections parameter passed to Startup(). This could happen if you call CloseConnection() with sendDisconnectionNotificaiton true, then immediately call Connect() before the connection has closed. + ConnectionAttemptResult Connect( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey=0, unsigned connectionSocketIndex=0, unsigned sendConnectionAttemptCount=6, unsigned timeBetweenSendConnectionAttemptsMS=1000, RakNet::TimeMS timeoutTime=0 ); + + /// \brief Connect to the specified host (ip or domain name) and server port. + /// \param[in] host Either a dotted IP address or a domain name. + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword(). This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData. + /// \param[in] socket A bound socket returned by another instance of RakPeerInterface. + /// \param[in] sendConnectionAttemptCount Number of datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned.. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime Time to elapse before dropping the connection if a reliable message could not be sent. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + virtual ConnectionAttemptResult ConnectWithSocket(const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSmartPtr socket, PublicKey *publicKey=0, unsigned sendConnectionAttemptCount=6, unsigned timeBetweenSendConnectionAttemptsMS=1000, RakNet::TimeMS timeoutTime=0); + + /* /// \brief Connect to the specified network ID (Platform specific console function) + /// \details Does built-in NAT traversal + /// \param[in] networkServiceId Network ID structure for the online service + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword(). This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData. + //bool Console2LobbyConnect( void *networkServiceId, const char *passwordData, int passwordDataLength );*/ + + /// \brief Stops the network threads and closes all connections. + /// \param[in] blockDuration Wait time(milli seconds) for all remaining messages to go out, including ID_DISCONNECTION_NOTIFICATION. If 0, it doesn't wait at all. + /// \param[in] orderingChannel Channel on which ID_DISCONNECTION_NOTIFICATION will be sent, if blockDuration > 0. + /// \param[in] disconnectionNotificationPriority Priority of sending ID_DISCONNECTION_NOTIFICATION. + /// If set to 0, the disconnection notification won't be sent. + void Shutdown( unsigned int blockDuration, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY ); + + /// \brief Returns true if the network thread is running. + /// \return True if the network thread is running, False otherwise + bool IsActive( void ) const; + + /// \brief Fills the array remoteSystems with the SystemAddress of all the systems we are connected to. + /// \param[out] remoteSystems An array of SystemAddress structures, to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to get the number of systems we are connected to. + /// \param[in, out] numberOfSystems As input, the size of remoteSystems array. As output, the number of elements put into the array. + bool GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const; + + /// Returns the next uint32_t that Send() will return + /// \note If using RakPeer from multiple threads, this may not be accurate for your thread. Use IncrementNextSendReceipt() in that case. + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t GetNextSendReceipt(void); + + /// Returns the next uint32_t that Send() will return, and increments the value by one + /// \note If using RakPeer from multiple threads, pass this to forceReceipt in the send function + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t IncrementNextSendReceipt(void); + + /// \brief Sends a block of data to the specified system that you are connected to. + /// \note This function only works while the connected. + /// \note The first byte should be a message identifier starting at ID_USER_PACKET_ENUM. + /// \param[in] data Block of data to send. + /// \param[in] length Size in bytes of the data to send. + /// \param[in] priority Priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliably to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, the channel to order these on. Messages are only ordered relative to other messages on the same stream. + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + uint32_t Send( const char *data, const int length, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 ); + + /// \brief "Send" to yourself rather than a remote system. + /// \details The message will be processed through the plugins and returned to the game as usual. + /// This function works anytime + /// \note The first byte should be a message identifier starting at ID_USER_PACKET_ENUM + /// \param[in] data Block of data to send. + /// \param[in] length Size in bytes of the data to send. + void SendLoopback( const char *data, const int length ); + + /// \brief Sends a block of data to the specified system that you are connected to. + /// + /// Same as the above version, but takes a BitStream as input. + /// \param[in] bitStream Bitstream to send + /// \param[in] priority Priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliably to send this data. See PacketPriority.h + /// \param[in] orderingChannel Channel to order the messages on, when using ordered or sequenced messages. Messages are only ordered relative to other messages on the same stream. + /// \param[in] systemIdentifier System Address or RakNetGUID to send this packet to, or in the case of broadcasting, the address not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none. + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + /// \note COMMON MISTAKE: When writing the first byte, bitStream->Write((unsigned char) ID_MY_TYPE) be sure it is casted to a byte, and you are not writing a 4 byte enumeration. + uint32_t Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 ); + + /// \brief Sends multiple blocks of data, concatenating them automatically. + /// + /// This is equivalent to: + /// RakNet::BitStream bs; + /// bs.WriteAlignedBytes(block1, blockLength1); + /// bs.WriteAlignedBytes(block2, blockLength2); + /// bs.WriteAlignedBytes(block3, blockLength3); + /// Send(&bs, ...) + /// + /// This function only works when connected. + /// \param[in] data An array of pointers to blocks of data + /// \param[in] lengths An array of integers indicating the length of each block of data + /// \param[in] numParameters Length of the arrays data and lengths + /// \param[in] priority Priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliably to send this data. See PacketPriority.h + /// \param[in] orderingChannel Channel to order the messages on, when using ordered or sequenced messages. Messages are only ordered relative to other messages on the same stream. + /// \param[in] systemIdentifier System Address or RakNetGUID to send this packet to, or in the case of broadcasting, the address not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none. + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + uint32_t SendList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 ); + + /// \brief Gets a message from the incoming message queue. + /// \details Use DeallocatePacket() to deallocate the message after you are done with it. + /// User-thread functions, such as RPC calls and the plugin function PluginInterface::Update occur here. + /// \return 0 if no packets are waiting to be handled, otherwise a pointer to a packet. + /// \note COMMON MISTAKE: Be sure to call this in a loop, once per game tick, until it returns 0. If you only process one packet per game tick they will buffer up. + /// \sa RakNetTypes.h contains struct Packet. + Packet* Receive( void ); + + /// \brief Call this to deallocate a message returned by Receive() when you are done handling it. + /// \param[in] packet Message to deallocate. + void DeallocatePacket( Packet *packet ); + + /// \brief Return the total number of connections we are allowed. + /// \return Total number of connections allowed. + unsigned short GetMaximumNumberOfPeers( void ) const; + + // -------------------------------------------------------------------------------------------- Connection Management Functions-------------------------------------------------------------------------------------------- + /// \brief Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). + /// \details This method closes the connection irrespective of who initiated the connection. + /// \param[in] target Which system to close the connection to. + /// \param[in] sendDisconnectionNotification True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. + /// \param[in] channel Which ordering channel to send the disconnection notification on, if any + /// \param[in] disconnectionNotificationPriority Priority to send ID_DISCONNECTION_NOTIFICATION on. + void CloseConnection( const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY ); + + /// \brief Cancel a pending connection attempt. + /// \details If we are already connected, the connection stays open + /// \param[in] target Target system to cancel. + void CancelConnectionAttempt( const SystemAddress target ); + /// Returns if a system is connected, disconnected, connecting in progress, or various other states + /// \param[in] systemIdentifier The system we are referring to + /// \note This locks a mutex, do not call too frequently during connection attempts or the attempt will take longer and possibly even timeout + /// \return What state the remote system is in + ConnectionState GetConnectionState(const AddressOrGUID systemIdentifier); + + /// \brief Given \a systemAddress, returns its index into remoteSystemList. + /// \details Values range from 0 to the maximum number of players allowed - 1. + /// This includes systems which were formerly connected, but are now not connected. + /// \param[in] systemAddress The SystemAddress we are referring to + /// \return The index of this SystemAddress or -1 on system not found. + int GetIndexFromSystemAddress( const SystemAddress systemAddress ) const; + + /// \brief Given \a index into remoteSystemList, will return a SystemAddress. + /// This function is only useful for looping through all systems. + /// + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The SystemAddress structure corresponding to \a index in remoteSystemList. + SystemAddress GetSystemAddressFromIndex( int index ); + + /// \brief Same as GetSystemAddressFromIndex but returns RakNetGUID + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The RakNetGUID + RakNetGUID GetGUIDFromIndex( int index ); + + /// \brief Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient + /// Indices match each other, so \a addresses[0] and \a guids[0] refer to the same system + /// \param[out] addresses All system addresses. Size of the list is the number of connections. Size of the \a addresses list will match the size of the \a guids list. + /// \param[out] guids All guids. Size of the list is the number of connections. Size of the list will match the size of the \a addresses list. + void GetSystemList(DataStructures::List &addresses, DataStructures::List &guids) const; + + /// \brief Bans an IP from connecting. + /// \details Banned IPs persist between connections but are not saved on shutdown nor loaded on startup. + /// \param[in] IP Dotted IP address. You can use * for a wildcard address, such as 128.0.0. * will ban all IP addresses starting with 128.0.0. + /// \param[in] milliseconds Gives time in milli seconds for a temporary ban of the IP address. Use 0 for a permanent ban. + void AddToBanList( const char *IP, RakNet::TimeMS milliseconds=0 ); + + /// \brief Allows a previously banned IP to connect. + /// param[in] Dotted IP address. You can use * as a wildcard. An IP such as 128.0.0.* will ban all IP addresses starting with 128.0.0. + void RemoveFromBanList( const char *IP ); + + /// \brief Allows all previously banned IPs to connect. + void ClearBanList( void ); + + /// \brief Returns true or false indicating if a particular IP is banned. + /// \param[in] IP Dotted IP address. + /// \return True if IP matches any IPs in the ban list, accounting for any wildcards. False otherwise. + bool IsBanned( const char *IP ); + + /// \brief Enable or disable allowing frequent connections from the same IP adderss + /// \details This is a security measure which is disabled by default, but can be set to true to prevent attackers from using up all connection slots. + /// \param[in] b True to limit connections from the same ip to at most 1 per 100 milliseconds. + void SetLimitIPConnectionFrequency(bool b); + + // --------------------------------------------------------------------------------------------Pinging Functions - Functions dealing with the automatic ping mechanism-------------------------------------------------------------------------------------------- + /// Send a ping to the specified connected system. + /// \pre The sender and recipient must already be started via a successful call to Startup() + /// \param[in] target Which system to ping + void Ping( const SystemAddress target ); + + /// \brief Send a ping to the specified unconnected system. + /// \details The remote system, if it is Initialized, will respond with ID_PONG followed by sizeof(RakNet::TimeMS) containing the system time the ping was sent. Default is 4 bytes - See __GET_TIME_64BIT in RakNetTypes.h + /// System should reply with ID_PONG if it is active + /// \param[in] host Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] onlyReplyOnAcceptingConnections Only request a reply if the remote system is accepting connections + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return true on success, false on failure (unknown hostname) + bool Ping( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex=0 ); + + /// \brief Returns the average of all ping times read for the specific system or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The ping time for this system, or -1 + int GetAveragePing( const AddressOrGUID systemIdentifier ); + + /// \brief Returns the last ping time read for the specific system or -1 if none read yet. + /// \param[in] systemAddress Which system we are referring to + /// \return The last ping time for this system, or -1. + int GetLastPing( const AddressOrGUID systemIdentifier ) const; + + /// \brief Returns the lowest ping time read or -1 if none read yet. + /// \param[in] systemAddress Which system we are referring to + /// \return The lowest ping time for this system, or -1. + int GetLowestPing( const AddressOrGUID systemIdentifier ) const; + + /// Ping the remote systems every so often, or not. Can be called anytime. + /// By default this is true. Recommended to leave on, because congestion control uses it to determine how often to resend lost packets. + /// It would be true by default to prevent timestamp drift, since in the event of a clock spike, the timestamp deltas would no longer be accurate + /// \param[in] doPing True to start occasional pings. False to stop them. + void SetOccasionalPing( bool doPing ); + + // --------------------------------------------------------------------------------------------Static Data Functions - Functions dealing with API defined synchronized memory-------------------------------------------------------------------------------------------- + /// \brief Sets the data to send along with a LAN server discovery or offline ping reply. + /// \param[in] data Block of data to send, or 0 for none + /// \param[in] length Length of the data in bytes, or 0 for none + /// \note \a length should be under 400 bytes, as a security measure against flood attacks + /// \sa Ping.cpp + void SetOfflinePingResponse( const char *data, const unsigned int length ); + + /// \brief Returns pointers to a copy of the \a data passed to SetOfflinePingResponse. + /// \param[out] data A pointer to a copy of the data passed to SetOfflinePingResponse() + /// \param[out] length A pointer filled in with the length parameter passed to SetOfflinePingResponse() + /// \sa SetOfflinePingResponse + void GetOfflinePingResponse( char **data, unsigned int *length ); + + //--------------------------------------------------------------------------------------------Network Functions - Functions dealing with the network in general-------------------------------------------------------------------------------------------- + /// \brief Returns the unique address identifier that represents you or another system on the the network and is based on your local IP / port. + /// \note Not supported by the XBOX + /// \param[in] systemAddress Use UNASSIGNED_SYSTEM_ADDRESS to get your behind-LAN address. Use a connected system to get their behind-LAN address + /// \param[in] index When you have multiple internal IDs, which index to return? Currently limited to MAXIMUM_NUMBER_OF_INTERNAL_IDS (so the maximum value of this variable is MAXIMUM_NUMBER_OF_INTERNAL_IDS-1) + /// \return Identifier of your system internally, which may not be how other systems see if you if you are behind a NAT or proxy + SystemAddress GetInternalID( const SystemAddress systemAddress=UNASSIGNED_SYSTEM_ADDRESS, const int index=0 ) const; + + /// \brief Returns the unique address identifier that represents the target on the the network and is based on the target's external IP / port. + /// \param[in] target The SystemAddress of the remote system. Usually the same for all systems, unless you have two or more network cards. + SystemAddress GetExternalID( const SystemAddress target ) const; + + /// Return my own GUID + const RakNetGUID GetMyGUID(void) const; + + /// Return the address bound to a socket at the specified index + SystemAddress GetMyBoundAddress(const int socketIndex=0); + + /// \brief Given a connected system address, this method gives the unique GUID representing that instance of RakPeer. + /// This will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different. + /// Complexity is O(log2(n)). + /// If \a input is UNASSIGNED_SYSTEM_ADDRESS, will return your own GUID + /// \pre Call Startup() first, or the function will return UNASSIGNED_RAKNET_GUID + /// \param[in] input The system address of the target system we are connected to. + const RakNetGUID& GetGuidFromSystemAddress( const SystemAddress input ) const; + + /// \brief Gives the system address of a connected system, given its GUID. + /// The GUID will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different. + /// Currently O(log(n)), but this may be improved in the future + /// If \a input is UNASSIGNED_RAKNET_GUID, UNASSIGNED_SYSTEM_ADDRESS is returned. + /// \param[in] input The RakNetGUID of the target system. + SystemAddress GetSystemAddressFromGuid( const RakNetGUID input ) const; + + /// Given the SystemAddress of a connected system, get the public key they provided as an identity + /// Returns false if system address was not found or client public key is not known + /// \param[in] input The RakNetGUID of the system + /// \param[in] client_public_key The connected client's public key is copied to this address. Buffer must be cat::EasyHandshake::PUBLIC_KEY_BYTES bytes in length. + bool GetClientPublicKeyFromSystemAddress( const SystemAddress input, char *client_public_key ) const; + + /// \brief Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. + + /// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. + /// Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. + /// Do not set different values for different computers that are connected to each other, or you won't be able to reconnect after ID_CONNECTION_LOST + /// \param[in] timeMS Time, in MS + /// \param[in] target SystemAddress structure of the target system. Pass UNASSIGNED_SYSTEM_ADDRESS for all systems. + void SetTimeoutTime( RakNet::TimeMS timeMS, const SystemAddress target ); + + /// \brief Returns the Timeout time for the given system. + /// \param[in] target Target system to get the TimeoutTime for. Pass UNASSIGNED_SYSTEM_ADDRESS to get the default value. + /// \return Timeout time for a given system. + RakNet::TimeMS GetTimeoutTime( const SystemAddress target ); + + /// \brief Returns the current MTU size + /// \param[in] target Which system to get MTU for. UNASSIGNED_SYSTEM_ADDRESS to get the default + /// \return The current MTU size of the target system. + int GetMTUSize( const SystemAddress target ) const; + + /// \brief Returns the number of IP addresses this system has internally. + /// \details Get the actual addresses from GetLocalIP() + unsigned GetNumberOfAddresses( void ); + + /// Returns an IP address at index 0 to GetNumberOfAddresses-1 in ipList array. + /// \param[in] index index into the list of IP addresses + /// \return The local IP address at this index + const char* GetLocalIP( unsigned int index ); + + /// Is this a local IP? + /// Checks if this ip is in the ipList array. + /// \param[in] An IP address to check, excluding the port. + /// \return True if this is one of the IP addresses returned by GetLocalIP + bool IsLocalIP( const char *ip ); + + /// \brief Allow or disallow connection responses from any IP. + /// \details Normally this should be false, but may be necessary when connecting to servers with multiple IP addresses. + /// \param[in] allow - True to allow this behavior, false to not allow. Defaults to false. Value persists between connections. + void AllowConnectionResponseIPMigration( bool allow ); + + /// \brief Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. + /// This will send our external IP outside the LAN along with some user data to the remote system. + /// \pre The sender and recipient must already be started via a successful call to Initialize + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] data Optional data to append to the packet. + /// \param[in] dataLength Length of data in bytes. Use 0 if no data. + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return False if IsActive()==false or the host is unresolvable. True otherwise. + bool AdvertiseSystem( const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex=0 ); + + /// \brief Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. + /// \details ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived. + /// As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. + /// Defaults to 0 (never return this notification). + /// \param[in] interval How many messages to use as an interval before a download progress notification is returned. + void SetSplitMessageProgressInterval(int interval); + + /// \brief Returns what was passed to SetSplitMessageProgressInterval(). + /// \return Number of messages to be recieved before a download progress notification is returned. Default to 0. + int GetSplitMessageProgressInterval(void) const; + + /// \brief Set how long to wait before giving up on sending an unreliable message. + /// Useful if the network is clogged up. + /// Set to 0 or less to never timeout. Defaults to 0. + /// \param[in] timeoutMS How many ms to wait before simply not sending an unreliable message. + void SetUnreliableTimeout(RakNet::TimeMS timeoutMS); + + /// \brief Send a message to a host, with the IP socket option TTL set to 3. + /// \details This message will not reach the host, but will open the router. + /// \param[in] host The address of the remote host in dotted notation. + /// \param[in] remotePort The port number to send to. + /// \param[in] ttl Max hops of datagram, set to 3 + /// \param[in] connectionSocketIndex userConnectionSocketIndex. + /// \remarks Used for NAT-Punchthrough + void SendTTL( const char* host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex=0 ); + + // -------------------------------------------------------------------------------------------- Plugin Functions-------------------------------------------------------------------------------------------- + /// \brief Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code automatically on message receipt in the Receive call. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to the plugin to attach. + void AttachPlugin( PluginInterface2 *plugin ); + + /// \brief Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is attached to. + /// \details This method disables the plugin code from running automatically on base class's updates or message receipt. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to a plugin to detach. + void DetachPlugin( PluginInterface2 *messageHandler ); + + // --------------------------------------------------------------------------------------------Miscellaneous Functions-------------------------------------------------------------------------------------------- + /// \brief Puts a message back in the receive queue in case you don't want to deal with it immediately. + /// \param[in] packet The pointer to the packet you want to push back. + /// \param[in] pushAtHead True to push the packet at the start of the queue so that the next receive call returns it. False to push it at the end of the queue. + /// \note Setting pushAtHead to false end makes the packets out of order. + void PushBackPacket( Packet *packet, bool pushAtHead ); + + /// \internal + /// \brief For a given system identified by \a guid, change the SystemAddress to send to. + /// \param[in] guid The connection we are referring to + /// \param[in] systemAddress The new address to send to + void ChangeSystemAddress(RakNetGUID guid, const SystemAddress &systemAddress); + + /// \brief Returns a packet for you to write to if you want to create a Packet for some reason. + /// You can add it to the receive buffer with PushBackPacket + /// \param[in] dataSize How many bytes to allocate for the buffer + /// \return A packet. + Packet* AllocatePacket(unsigned dataSize); + + /// \brief Get the socket used with a particular active connection. + /// The smart pointer reference counts the RakNetSocket object, so the socket will remain active as long as the smart pointer does, even if RakNet were to shutdown or close the connection. + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[in] target Which system. + /// \return A smart pointer object containing the socket information about the target. Be sure to check IsNull() which is returned if the update thread is unresponsive, shutting down, or if this system is not connected. + virtual RakNetSmartPtr GetSocket( const SystemAddress target ); + + /// \brief Gets all sockets in use. + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[out] sockets List of RakNetSocket structures in use. Sockets will not be closed until \a sockets goes out of scope + virtual void GetSockets( DataStructures::List > &sockets ); + virtual void ReleaseSockets( DataStructures::List > &sockets ); + + /// \internal + virtual void WriteOutOfBandHeader(RakNet::BitStream *bitStream); + + /// If you need code to run in the same thread as RakNet's update thread, this function can be used for that + /// \param[in] _userUpdateThreadPtr C callback function + /// \param[in] _userUpdateThreadData Passed to C callback function + virtual void SetUserUpdateThread(void (*_userUpdateThreadPtr)(RakPeerInterface *, void *), void *_userUpdateThreadData); + + // --------------------------------------------------------------------------------------------Network Simulator Functions-------------------------------------------------------------------------------------------- + /// Adds simulated ping and packet loss to the outgoing data flow. + /// To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and packetloss value on each. + /// You can exclude network simulator code with the _RELEASE #define to decrease code size + /// \deprecated Use http://www.jenkinssoftware.com/forum/index.php?topic=1671.0 instead. + /// \note Doesn't work past version 3.6201 + /// \param[in] packetloss Chance to lose a packet. Ranges from 0 to 1. + /// \param[in] minExtraPing The minimum time to delay sends. + /// \param[in] extraPingVariance The additional random time to delay sends. + virtual void ApplyNetworkSimulator( float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance); + + /// Limits how much outgoing bandwidth can be sent per-connection. + /// This limit does not apply to the sum of all connections! + /// Exceeding the limit queues up outgoing traffic + /// \param[in] maxBitsPerSecond Maximum bits per second to send. Use 0 for unlimited (default). Once set, it takes effect immedately and persists until called again. + virtual void SetPerConnectionOutgoingBandwidthLimit( unsigned maxBitsPerSecond ); + + /// Returns if you previously called ApplyNetworkSimulator + /// \return If you previously called ApplyNetworkSimulator + virtual bool IsNetworkSimulatorActive( void ); + + // --------------------------------------------------------------------------------------------Statistical Functions - Functions dealing with API performance-------------------------------------------------------------------------------------------- + + /// \brief Returns a structure containing a large set of network statistics for the specified system. + /// You can map this data to a string using the C style StatisticsToString() function + /// \param[in] systemAddress Which connected system to get statistics for. + /// \param[in] rns If you supply this structure,the network statistics will be written to it. Otherwise the method uses a static struct to write the data, which is not threadsafe. + /// \return 0 if the specified system can't be found. Otherwise a pointer to the struct containing the specified system's network statistics. + /// \sa RakNetStatistics.h + RakNetStatistics * GetStatistics( const SystemAddress systemAddress, RakNetStatistics *rns=0 ); + /// \brief Returns the network statistics of the system at the given index in the remoteSystemList. + /// \return True if the index is less than the maximum number of peers allowed and the system is active. False otherwise. + bool GetStatistics( const int index, RakNetStatistics *rns ); + + /// \Returns how many messages are waiting when you call Receive() + virtual unsigned int GetReceiveBufferSize(void); + + // --------------------------------------------------------------------------------------------EVERYTHING AFTER THIS COMMENT IS FOR INTERNAL USE ONLY-------------------------------------------------------------------------------------------- + + /// \internal + bool SendOutOfBand(const char *host, unsigned short remotePort, const char *data, BitSize_t dataLength, unsigned connectionSocketIndex=0 ); + + // static Packet *AllocPacket(unsigned dataSize, const char *file, unsigned int line); + + /// \internal + /// \brief Holds the clock differences between systems, along with the ping + struct PingAndClockDifferential + { + unsigned short pingTime; + RakNet::Time clockDifferential; + }; + + /// \internal + /// \brief All the information representing a connected system + struct RemoteSystemStruct + { + bool isActive; // Is this structure in use? + SystemAddress systemAddress; /// Their external IP on the internet + SystemAddress myExternalSystemAddress; /// Your external IP on the internet, from their perspective + SystemAddress theirInternalSystemAddress[MAXIMUM_NUMBER_OF_INTERNAL_IDS]; /// Their internal IP, behind the LAN + ReliabilityLayer reliabilityLayer; /// The reliability layer associated with this player + bool weInitiatedTheConnection; /// True if we started this connection via Connect. False if someone else connected to us. + PingAndClockDifferential pingAndClockDifferential[ PING_TIMES_ARRAY_SIZE ]; /// last x ping times and calculated clock differentials with it + RakNet::Time pingAndClockDifferentialWriteIndex; /// The index we are writing into the pingAndClockDifferential circular buffer + unsigned short lowestPing; ///The lowest ping value encountered + RakNet::Time nextPingTime; /// When to next ping this player + RakNet::Time lastReliableSend; /// When did the last reliable send occur. Reliable sends must occur at least once every timeoutTime/2 units to notice disconnects + RakNet::Time connectionTime; /// connection time, if active. +// int connectionSocketIndex; // index into connectionSockets to send back on. + RakNetGUID guid; + int MTUSize; + // Reference counted socket to send back on + RakNetSmartPtr rakNetSocket; + SystemIndex remoteSystemIndex; + +#if LIBCAT_SECURITY==1 + // Cached answer used internally by RakPeer to prevent DoS attacks based on the connexion handshake + char answer[cat::EasyHandshake::ANSWER_BYTES]; + + // If the server has bRequireClientKey = true, then this is set to the validated public key of the connected client + // Valid after connectMode reaches HANDLING_CONNECTION_REQUEST + char client_public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; +#endif + + enum ConnectMode {NO_ACTION, DISCONNECT_ASAP, DISCONNECT_ASAP_SILENTLY, DISCONNECT_ON_NO_ACK, REQUESTED_CONNECTION, HANDLING_CONNECTION_REQUEST, UNVERIFIED_SENDER, CONNECTED} connectMode; + }; + +protected: + + friend RAK_THREAD_DECLARATION(UpdateNetworkLoop); + friend RAK_THREAD_DECLARATION(RecvFromLoop); + friend RAK_THREAD_DECLARATION(UDTConnect); + + friend bool ProcessOfflineNetworkPacket( SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, bool *isOfflineMessage, RakNet::TimeUS timeRead ); + friend void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNet::TimeUS timeRead, BitStream &updateBitStream ); + friend void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, RakNet::TimeUS timeRead, BitStream &updateBitStream ); + + int GetIndexFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread ) const; + int GetIndexFromGuid( const RakNetGUID guid ); + + //void RemoveFromRequestedConnectionsList( const SystemAddress systemAddress ); + // Two versions needed because some buggy compilers strip the last parameter if unused, and crashes + ConnectionAttemptResult SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime, RakNetSmartPtr socket ); + ConnectionAttemptResult SendConnectionRequest( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey, unsigned connectionSocketIndex, unsigned int extraData, unsigned sendConnectionAttemptCount, unsigned timeBetweenSendConnectionAttemptsMS, RakNet::TimeMS timeoutTime ); + ///Get the reliability layer associated with a systemAddress. + /// \param[in] systemAddress The player identifier + /// \return 0 if none + RemoteSystemStruct *GetRemoteSystemFromSystemAddress( const SystemAddress systemAddress, bool calledFromNetworkThread, bool onlyActive ) const; + RakPeer::RemoteSystemStruct *GetRemoteSystem( const AddressOrGUID systemIdentifier, bool calledFromNetworkThread, bool onlyActive ) const; + void ValidateRemoteSystemLookup(void) const; + RemoteSystemStruct *GetRemoteSystemFromGUID( const RakNetGUID guid, bool onlyActive ) const; + ///Parse out a connection request packet + void ParseConnectionRequestPacket( RakPeer::RemoteSystemStruct *remoteSystem, const SystemAddress &systemAddress, const char *data, int byteSize); + void OnConnectionRequest( RakPeer::RemoteSystemStruct *remoteSystem, RakNet::Time incomingTimestamp ); + ///Send a reliable disconnect packet to this player and disconnect them when it is delivered + void NotifyAndFlagForShutdown( const SystemAddress systemAddress, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ); + ///Returns how many remote systems initiated a connection to us + unsigned short GetNumberOfRemoteInitiatedConnections( void ) const; + /// \brief Get a free remote system from the list and assign our systemAddress to it. + /// \note Should only be called from the update thread - not the user thread. + /// \param[in] systemAddress systemAddress to be assigned + /// \param[in] connectionMode connection mode of the RemoteSystem. + /// \param[in] rakNetSocket + /// \param[in] thisIPConnectedRecently Is this IP connected recently? set to False; + /// \param[in] bindingAddress Address to be binded with the remote system + /// \param[in] incomingMTU MTU for the remote system + RemoteSystemStruct * AssignSystemAddressToRemoteSystemList( const SystemAddress systemAddress, RemoteSystemStruct::ConnectMode connectionMode, RakNetSmartPtr incomingRakNetSocket, bool *thisIPConnectedRecently, SystemAddress bindingAddress, int incomingMTU, RakNetGUID guid, bool useSecurity ); + /// \brief Adjust the timestamp of the incoming packet to be relative to this system. + /// \param[in] data Data in the incoming packet. + /// \param[in] systemAddress Sender of the incoming packet. + void ShiftIncomingTimestamp( unsigned char *data, const SystemAddress &systemAddress ) const; + /// Get the most accurate clock differential for a certain player. + /// \param[in] systemAddress The player with whose clock the time difference is calculated. + /// \returns The clock differential for a certain player. + RakNet::Time GetBestClockDifferential( const SystemAddress systemAddress ) const; + + bool IsLoopbackAddress(const AddressOrGUID &systemIdentifier, bool matchPort) const; + SystemAddress GetLoopbackAddress(void) const; + + ///Set this to true to terminate the Peer thread execution + volatile bool endThreads; + ///true if the peer thread is active. + volatile bool isMainLoopThreadActive; + + RakNet::LocklessUint32_t isRecvFromLoopThreadActive; + + + bool occasionalPing; /// Do we occasionally ping the other systems?*/ + ///Store the maximum number of peers allowed to connect + unsigned short maximumNumberOfPeers; + //05/02/06 Just using maximumNumberOfPeers instead + ///Store the maximum number of peers able to connect, including reserved connection slots for pings, etc. + //unsigned short remoteSystemListSize; + ///Store the maximum incoming connection allowed + unsigned short maximumIncomingConnections; + RakNet::BitStream offlinePingResponse; + ///Local Player ID + // SystemAddress mySystemAddress[MAXIMUM_NUMBER_OF_INTERNAL_IDS]; + char incomingPassword[256]; + unsigned char incomingPasswordLength; + + /// This is an array of pointers to RemoteSystemStruct + /// This allows us to preallocate the list when starting, so we don't have to allocate or delete at runtime. + /// Another benefit is that is lets us add and remove active players simply by setting systemAddress + /// and moving elements in the list by copying pointers variables without affecting running threads, even if they are in the reliability layer + RemoteSystemStruct* remoteSystemList; + /// activeSystemList holds a list of pointers and is preallocated to be the same size as remoteSystemList. It is updated only by the network thread, but read by both threads + /// When the isActive member of RemoteSystemStruct is set to true or false, that system is added to this list of pointers + /// Threadsafe because RemoteSystemStruct is preallocated, and the list is only added to, not removed from + RemoteSystemStruct** activeSystemList; + unsigned int activeSystemListSize; + + // Use a hash, with binaryAddress plus port mod length as the index + RemoteSystemIndex **remoteSystemLookup; + unsigned int RemoteSystemLookupHashIndex(const SystemAddress &sa) const; + void ReferenceRemoteSystem(const SystemAddress &sa, unsigned int remoteSystemListIndex); + void DereferenceRemoteSystem(const SystemAddress &sa); + RemoteSystemStruct* GetRemoteSystem(const SystemAddress &sa) const; + unsigned int GetRemoteSystemIndex(const SystemAddress &sa) const; + void ClearRemoteSystemLookup(void); + DataStructures::MemoryPool remoteSystemIndexPool; + + void AddToActiveSystemList(unsigned int remoteSystemListIndex); + void RemoveFromActiveSystemList(const SystemAddress &sa); + +// unsigned int LookupIndexUsingHashIndex(const SystemAddress &sa) const; +// unsigned int RemoteSystemListIndexUsingHashIndex(const SystemAddress &sa) const; +// unsigned int FirstFreeRemoteSystemLookupIndex(const SystemAddress &sa) const; + + enum + { + // Only put these mutexes in user thread functions! + requestedConnectionList_Mutex, + offlinePingResponse_Mutex, + NUMBER_OF_RAKPEER_MUTEXES + }; + SimpleMutex rakPeerMutexes[ NUMBER_OF_RAKPEER_MUTEXES ]; + ///RunUpdateCycle is not thread safe but we don't need to mutex calls. Just skip calls if it is running already + + bool updateCycleIsRunning; + ///The list of people we have tried to connect to recently + + //DataStructures::Queue requestedConnectionsList; + ///Data that both the client and the server needs + + unsigned int bytesSentPerSecond, bytesReceivedPerSecond; + // bool isSocketLayerBlocking; + // bool continualPing,isRecvfromThreadActive,isMainLoopThreadActive, endThreads, isSocketLayerBlocking; + unsigned int validationInteger; + SimpleMutex incomingQueueMutex, banListMutex; //,synchronizedMemoryQueueMutex, automaticVariableSynchronizationMutex; + //DataStructures::Queue incomingpacketSingleProducerConsumer; //, synchronizedMemorypacketSingleProducerConsumer; + // BitStream enumerationData; + + struct BanStruct + { + char *IP; + RakNet::TimeMS timeout; // 0 for none + }; + + struct RequestedConnectionStruct + { + SystemAddress systemAddress; + RakNet::Time nextRequestTime; + unsigned char requestsMade; + char *data; + unsigned short dataLength; + char outgoingPassword[256]; + unsigned char outgoingPasswordLength; + unsigned socketIndex; + unsigned int extraData; + unsigned sendConnectionAttemptCount; + unsigned timeBetweenSendConnectionAttemptsMS; + RakNet::TimeMS timeoutTime; + PublicKeyMode publicKeyMode; + RakNetSmartPtr socket; + enum {CONNECT=1, /*PING=2, PING_OPEN_CONNECTIONS=4,*/ /*ADVERTISE_SYSTEM=2*/} actionToTake; + +#if LIBCAT_SECURITY==1 + char handshakeChallenge[cat::EasyHandshake::CHALLENGE_BYTES]; + cat::ClientEasyHandshake *client_handshake; + char remote_public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; +// char remote_challenge[cat::EasyHandshake::CHALLENGE_BYTES]; + // char random[16]; +#endif + }; +#if LIBCAT_SECURITY==1 + bool GenerateConnectionRequestChallenge(RequestedConnectionStruct *rcs,PublicKey *publicKey); +#endif + + //DataStructures::List* > automaticVariableSynchronizationList; + DataStructures::List banList; + // Threadsafe, and not thread safe + DataStructures::List pluginListTS, pluginListNTS; + + DataStructures::Queue requestedConnectionQueue; + SimpleMutex requestedConnectionQueueMutex; + + bool RunUpdateCycle( RakNet::TimeUS timeNS, RakNet::Time timeMS, BitStream &updateBitStream ); + // void RunMutexedUpdateCycle(void); + + struct BufferedCommandStruct + { + BitSize_t numberOfBitsToSend; + PacketPriority priority; + PacketReliability reliability; + char orderingChannel; + AddressOrGUID systemIdentifier; + bool broadcast; + RemoteSystemStruct::ConnectMode connectionMode; + NetworkID networkID; + bool blockingCommand; // Only used for RPC + char *data; + bool haveRakNetCloseSocket; + unsigned connectionSocketIndex; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + SOCKET socket; + unsigned short port; + uint32_t receipt; + enum {BCS_SEND, BCS_CLOSE_CONNECTION, BCS_GET_SOCKET, BCS_CHANGE_SYSTEM_ADDRESS,/* BCS_USE_USER_SOCKET, BCS_REBIND_SOCKET_ADDRESS, BCS_RPC, BCS_RPC_SHIFT,*/ BCS_DO_NOTHING} command; + }; + + // Single producer single consumer queue using a linked list + //BufferedCommandStruct* bufferedCommandReadIndex, bufferedCommandWriteIndex; + + DataStructures::ThreadsafeAllocatingQueue bufferedCommands; + + + // Constructor not called! + struct RecvFromStruct + { + + + + char data[MAXIMUM_MTU_SIZE]; + + int bytesRead; + SystemAddress systemAddress; + RakNet::TimeUS timeRead; + SOCKET s; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + }; + + + DataStructures::ThreadsafeAllocatingQueue bufferedPackets; + + + struct SocketQueryOutput + { + SocketQueryOutput() {} + ~SocketQueryOutput() {} + DataStructures::List > sockets; + }; + + DataStructures::ThreadsafeAllocatingQueue socketQueryOutput; + + + bool AllowIncomingConnections(void) const; + + void PingInternal( const SystemAddress target, bool performImmediate, PacketReliability reliability ); + // This stores the user send calls to be handled by the update thread. This way we don't have thread contention over systemAddresss + void CloseConnectionInternal( const AddressOrGUID& systemIdentifier, bool sendDisconnectionNotification, bool performImmediate, unsigned char orderingChannel, PacketPriority disconnectionNotificationPriority ); + void SendBuffered( const char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ); + void SendBufferedList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, RemoteSystemStruct::ConnectMode connectionMode, uint32_t receipt ); + bool SendImmediate( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, bool useCallerDataAllocation, RakNet::TimeUS currentTime, uint32_t receipt ); + //bool HandleBufferedRPC(BufferedCommandStruct *bcs, RakNet::TimeMS time); + void ClearBufferedCommands(void); + void ClearBufferedPackets(void); + void ClearSocketQueryOutput(void); + void ClearRequestedConnectionList(void); + void AddPacketToProducer(RakNet::Packet *p); + unsigned int GenerateSeedFromGuid(void); + SimpleMutex securityExceptionMutex; + + //DataStructures::AVLBalancedBinarySearchTree rpcTree; + int defaultMTUSize; + bool trackFrequencyTable; + + // Smart pointer so I can return the object to the user + DataStructures::List > socketList; + void DerefAllSockets(void); + unsigned int GetRakNetSocketFromUserConnectionSocketIndex(unsigned int userIndex) const; + // Used for RPC replies + RakNet::BitStream *replyFromTargetBS; + SystemAddress replyFromTargetPlayer; + bool replyFromTargetBroadcast; + + RakNet::TimeMS defaultTimeoutTime; + + // Generate and store a unique GUID + void GenerateGUID(void); + unsigned int GetSystemIndexFromGuid( const RakNetGUID input ) const; + RakNetGUID myGuid; + + unsigned maxOutgoingBPS; + + // Nobody would use the internet simulator in a final build. +#ifdef _DEBUG + double _packetloss; + unsigned short _minExtraPing, _extraPingVariance; +#endif + + ///How long it has been since things were updated by a call to receiveUpdate thread uses this to determine how long to sleep for + //unsigned int lastUserUpdateCycle; + /// True to allow connection accepted packets from anyone. False to only allow these packets from servers we requested a connection to. + bool allowConnectionResponseIPMigration; + + SystemAddress firstExternalID; + int splitMessageProgressInterval; + RakNet::TimeMS unreliableTimeout; + + // Systems in this list will not go through the secure connection process, even when secure connections are turned on. Wildcards are accepted. + DataStructures::List securityExceptionList; + + SystemAddress ipList[ MAXIMUM_NUMBER_OF_INTERNAL_IDS ]; + + bool allowInternalRouting; + + void (*userUpdateThreadPtr)(RakPeerInterface *, void *); + void *userUpdateThreadData; + + + SignaledEvent quitAndDataEvents; + bool limitConnectionFrequencyFromTheSameIP; + + SimpleMutex packetAllocationPoolMutex; + DataStructures::MemoryPool packetAllocationPool; + + SimpleMutex packetReturnMutex; + DataStructures::Queue packetReturnQueue; + Packet *AllocPacket(unsigned dataSize, const char *file, unsigned int line); + Packet *AllocPacket(unsigned dataSize, unsigned char *data, const char *file, unsigned int line); + + /// This is used to return a number to the user when they call Send identifying the message + /// This number will be returned back with ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS and is only returned + /// with the reliability types that contain RECEIPT in the name + SimpleMutex sendReceiptSerialMutex; + uint32_t sendReceiptSerial; + void ResetSendReceipt(void); + void OnConnectedPong(RakNet::Time sendPingTime, RakNet::Time sendPongTime, RemoteSystemStruct *remoteSystem); + void CallPluginCallbacks(DataStructures::List &pluginList, Packet *packet); + +#if LIBCAT_SECURITY==1 + // Encryption and security + bool _using_security, _require_client_public_key; + char my_public_key[cat::EasyHandshake::PUBLIC_KEY_BYTES]; + cat::ServerEasyHandshake *_server_handshake; + cat::CookieJar *_cookie_jar; + bool InitializeClientSecurity(RequestedConnectionStruct *rcs, const char *public_key); +#endif + + + + + +} +// #if defined(SN_TARGET_PSP2) +// __attribute__((aligned(8))) +// #endif +; + +} // namespace RakNet + +#endif diff --git a/src/raknet/RakPeerInterface.h b/src/raknet/RakPeerInterface.h new file mode 100755 index 0000000..599980d --- /dev/null +++ b/src/raknet/RakPeerInterface.h @@ -0,0 +1,571 @@ +/// \file +/// \brief An interface for RakPeer. Simply contains all user functions as pure virtuals. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __RAK_PEER_INTERFACE_H +#define __RAK_PEER_INTERFACE_H + +#include "PacketPriority.h" +#include "RakNetTypes.h" +#include "RakMemoryOverride.h" +#include "Export.h" +#include "DS_List.h" +#include "RakNetSmartPtr.h" +#include "RakNetSocket.h" + +namespace RakNet +{ +// Forward declarations +class BitStream; +class PluginInterface2; +struct RPCMap; +struct RakNetStatistics; +struct RakNetBandwidth; +class RouterInterface; +class NetworkIDManager; + +/// The primary interface for RakNet, RakPeer contains all major functions for the library. +/// See the individual functions for what the class can do. +/// \brief The main interface for network communications +class RAK_DLL_EXPORT RakPeerInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(RakPeerInterface) + + ///Destructor + virtual ~RakPeerInterface() {} + + // --------------------------------------------------------------------------------------------Major Low Level Functions - Functions needed by most users-------------------------------------------------------------------------------------------- + /// \brief Starts the network threads, opens the listen port. + /// \details You must call this before calling Connect(). + /// \pre On the PS3, call Startup() after Client_Login() + /// \pre On Android, add the necessary permission to your application's androidmanifest.xml: + /// Multiple calls while already active are ignored. To call this function again with different settings, you must first call Shutdown(). + /// \note Call SetMaximumIncomingConnections if you want to accept incoming connections + /// \param[in] maxConnections The maximum number of connections between this instance of RakPeer and another instance of RakPeer. Required so the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.- A hybrid would set it to the sum of both types of connections + /// \param[in] localPort The port to listen for connections on. On linux the system may be set up so thast ports under 1024 are restricted for everything but the root user. Use a higher port for maximum compatibility. + /// \param[in] socketDescriptors An array of SocketDescriptor structures to force RakNet to listen on a particular IP address or port (or both). Each SocketDescriptor will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); However, on the XBOX be sure to use IPPROTO_VDP + /// \param[in] socketDescriptorCount The size of the \a socketDescriptors array. Pass 1 if you are not sure what to pass. + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \return RAKNET_STARTED on success, otherwise appropriate failure enumeration. + virtual StartupResult Startup( unsigned short maxConnections, SocketDescriptor *socketDescriptors, unsigned socketDescriptorCount, int threadPriority=-99999 )=0; + + /// If you accept connections, you must call this or else security will not be enabled for incoming connections. + /// This feature requires more round trips, bandwidth, and CPU time for the connection handshake + /// x64 builds require under 25% of the CPU time of other builds + /// See the Encryption sample for example usage + /// \pre Must be called while offline + /// \pre LIBCAT_SECURITY must be defined to 1 in NativeFeatureIncludes.h for this function to have any effect + /// \param[in] publicKey A pointer to the public key for accepting new connections + /// \param[in] privateKey A pointer to the private key for accepting new connections + /// \param[in] bRequireClientKey: Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection + virtual bool InitializeSecurity( const char *publicKey, const char *privateKey, bool bRequireClientKey = false )=0; + + /// Disables security for incoming connections. + /// \note Must be called while offline + virtual void DisableSecurity( void )=0; + + /// If secure connections are on, do not use secure connections for a specific IP address. + /// This is useful if you have a fixed-address internal server behind a LAN. + /// \note Secure connections are determined by the recipient of an incoming connection. This has no effect if called on the system attempting to connect. + /// \param[in] ip IP address to add. * wildcards are supported. + virtual void AddToSecurityExceptionList(const char *ip)=0; + + /// Remove a specific connection previously added via AddToSecurityExceptionList + /// \param[in] ip IP address to remove. Pass 0 to remove all IP addresses. * wildcards are supported. + virtual void RemoveFromSecurityExceptionList(const char *ip)=0; + + /// Checks to see if a given IP is in the security exception list + /// \param[in] IP address to check. + virtual bool IsInSecurityExceptionList(const char *ip)=0; + + /// Sets how many incoming connections are allowed. If this is less than the number of players currently connected, + /// no more players will be allowed to connect. If this is greater than the maximum number of peers allowed, + /// it will be reduced to the maximum number of peers allowed. + /// Defaults to 0, meaning by default, nobody can connect to you + /// \param[in] numberAllowed Maximum number of incoming connections allowed. + virtual void SetMaximumIncomingConnections( unsigned short numberAllowed )=0; + + /// Returns the value passed to SetMaximumIncomingConnections() + /// \return the maximum number of incoming connections, which is always <= maxConnections + virtual unsigned short GetMaximumIncomingConnections( void ) const=0; + + /// Returns how many open connections there are at this time + /// \return the number of open connections + virtual unsigned short NumberOfConnections(void) const=0; + + /// Sets the password incoming connections must match in the call to Connect (defaults to none). Pass 0 to passwordData to specify no password + /// This is a way to set a low level password for all incoming connections. To selectively reject connections, implement your own scheme using CloseConnection() to remove unwanted connections + /// \param[in] passwordData A data block that incoming connections must match. This can be just a password, or can be a stream of data. Specify 0 for no password data + /// \param[in] passwordDataLength The length in bytes of passwordData + virtual void SetIncomingPassword( const char* passwordData, int passwordDataLength )=0; + + /// Gets the password passed to SetIncomingPassword + /// \param[out] passwordData Should point to a block large enough to hold the password data you passed to SetIncomingPassword() + /// \param[in,out] passwordDataLength Maximum size of the array passwordData. Modified to hold the number of bytes actually written + virtual void GetIncomingPassword( char* passwordData, int *passwordDataLength )=0; + + /// \brief Connect to the specified host (ip or domain name) and server port. + /// Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. + /// Calling both acts as a true peer. This is a non-blocking connection. + /// You know the connection is successful when GetConnectionState() returns IS_CONNECTED or Receive() gets a message with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. + /// If the connection is not successful, such as a rejected connection or no response then neither of these things will happen. + /// \pre Requires that you first call Initialize + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword. This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData + /// \param[in] publicKey The public key the server is using. If 0, the server is not using security. If non-zero, the publicKeyMode member determines how to connect + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \param[in] sendConnectionAttemptCount How many datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime How long to keep the connection alive before dropping it on unable to send a reliable message. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + /// \note It is possible to immediately get back ID_CONNECTION_ATTEMPT_FAILED if you exceed the maxConnections parameter passed to Startup(). This could happen if you call CloseConnection() with sendDisconnectionNotificaiton true, then immediately call Connect() before the connection has closed. + virtual ConnectionAttemptResult Connect( const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, PublicKey *publicKey=0, unsigned connectionSocketIndex=0, unsigned sendConnectionAttemptCount=12, unsigned timeBetweenSendConnectionAttemptsMS=500, RakNet::TimeMS timeoutTime=0 )=0; + + /// \brief Connect to the specified host (ip or domain name) and server port, using a shared socket from another instance of RakNet + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword. This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData + /// \param[in] socket A bound socket returned by another instance of RakPeerInterface + /// \param[in] sendConnectionAttemptCount How many datagrams to send to the other system to try to connect. + /// \param[in] timeBetweenSendConnectionAttemptsMS Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. + /// \param[in] timeoutTime How long to keep the connection alive before dropping it on unable to send a reliable message. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); + /// \return CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. + /// \note CONNECTION_ATTEMPT_STARTED does not mean you are already connected! + virtual ConnectionAttemptResult ConnectWithSocket(const char* host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSmartPtr socket, PublicKey *publicKey=0, unsigned sendConnectionAttemptCount=12, unsigned timeBetweenSendConnectionAttemptsMS=500, RakNet::TimeMS timeoutTime=0)=0; + + /// \brief Connect to the specified network ID (Platform specific console function) + /// \details Does built-in NAt traversal + /// \param[in] passwordData A data block that must match the data block on the server passed to SetIncomingPassword. This can be a string or can be a stream of data. Use 0 for no password. + /// \param[in] passwordDataLength The length in bytes of passwordData + //virtual bool Console2LobbyConnect( void *networkServiceId, const char *passwordData, int passwordDataLength )=0; + + /// \brief Stops the network threads and closes all connections. + /// \param[in] blockDuration How long, in milliseconds, you should wait for all remaining messages to go out, including ID_DISCONNECTION_NOTIFICATION. If 0, it doesn't wait at all. + /// \param[in] orderingChannel If blockDuration > 0, ID_DISCONNECTION_NOTIFICATION will be sent on this channel + /// \param[in] disconnectionNotificationPriority Priority to send ID_DISCONNECTION_NOTIFICATION on. + /// If you set it to 0 then the disconnection notification won't be sent + virtual void Shutdown( unsigned int blockDuration, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY )=0; + + /// Returns if the network thread is running + /// \return true if the network thread is running, false otherwise + virtual bool IsActive( void ) const=0; + + /// Fills the array remoteSystems with the SystemAddress of all the systems we are connected to + /// \param[out] remoteSystems An array of SystemAddress structures to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to only get the number of systems we are connected to + /// \param[in, out] numberOfSystems As input, the size of remoteSystems array. As output, the number of elements put into the array + virtual bool GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const=0; + + /// Returns the next uint32_t that Send() will return + /// \note If using RakPeer from multiple threads, this may not be accurate for your thread. Use IncrementNextSendReceipt() in that case. + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t GetNextSendReceipt(void)=0; + + /// Returns the next uint32_t that Send() will return, and increments the value by one + /// \note If using RakPeer from multiple threads, pass this to forceReceipt in the send function + /// \return The next uint32_t that Send() or SendList will return + virtual uint32_t IncrementNextSendReceipt(void)=0; + + /// Sends a block of data to the specified system that you are connected to. + /// This function only works while the connected + /// The first byte should be a message identifier starting at ID_USER_PACKET_ENUM + /// \param[in] data The block of data to send + /// \param[in] length The size in bytes of the data to send + /// \param[in] priority What priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliability to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + virtual uint32_t Send( const char *data, const int length, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 )=0; + + /// "Send" to yourself rather than a remote system. The message will be processed through the plugins and returned to the game as usual + /// This function works anytime + /// The first byte should be a message identifier starting at ID_USER_PACKET_ENUM + /// \param[in] data The block of data to send + /// \param[in] length The size in bytes of the data to send + virtual void SendLoopback( const char *data, const int length )=0; + + /// Sends a block of data to the specified system that you are connected to. Same as the above version, but takes a BitStream as input. + /// \param[in] bitStream The bitstream to send + /// \param[in] priority What priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliability to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + /// \note COMMON MISTAKE: When writing the first byte, bitStream->Write((unsigned char) ID_MY_TYPE) be sure it is casted to a byte, and you are not writing a 4 byte enumeration. + virtual uint32_t Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 )=0; + + /// Sends multiple blocks of data, concatenating them automatically. + /// + /// This is equivalent to: + /// RakNet::BitStream bs; + /// bs.WriteAlignedBytes(block1, blockLength1); + /// bs.WriteAlignedBytes(block2, blockLength2); + /// bs.WriteAlignedBytes(block3, blockLength3); + /// Send(&bs, ...) + /// + /// This function only works while the connected + /// \param[in] data An array of pointers to blocks of data + /// \param[in] lengths An array of integers indicating the length of each block of data + /// \param[in] numParameters Length of the arrays data and lengths + /// \param[in] priority What priority level to send on. See PacketPriority.h + /// \param[in] reliability How reliability to send this data. See PacketPriority.h + /// \param[in] orderingChannel When using ordered or sequenced messages, what channel to order these on. Messages are only ordered relative to other messages on the same stream + /// \param[in] systemIdentifier Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a SystemAddress structure or a RakNetGUID structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none + /// \param[in] broadcast True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. + /// \param[in] forceReceipt If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. + /// \return 0 on bad input. Otherwise a number that identifies this message. If \a reliability is a type that returns a receipt, on a later call to Receive() you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number + virtual uint32_t SendList( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0 )=0; + + /// Gets a message from the incoming message queue. + /// Use DeallocatePacket() to deallocate the message after you are done with it. + /// User-thread functions, such as RPC calls and the plugin function PluginInterface::Update occur here. + /// \return 0 if no packets are waiting to be handled, otherwise a pointer to a packet. + /// \note COMMON MISTAKE: Be sure to call this in a loop, once per game tick, until it returns 0. If you only process one packet per game tick they will buffer up. + /// sa RakNetTypes.h contains struct Packet + virtual Packet* Receive( void )=0; + + /// Call this to deallocate a message returned by Receive() when you are done handling it. + /// \param[in] packet The message to deallocate. + virtual void DeallocatePacket( Packet *packet )=0; + + /// Return the total number of connections we are allowed + virtual unsigned short GetMaximumNumberOfPeers( void ) const=0; + + // -------------------------------------------------------------------------------------------- Connection Management Functions-------------------------------------------------------------------------------------------- + /// Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). + /// \param[in] target Which system to close the connection to. + /// \param[in] sendDisconnectionNotification True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. + /// \param[in] channel Which ordering channel to send the disconnection notification on, if any + /// \param[in] disconnectionNotificationPriority Priority to send ID_DISCONNECTION_NOTIFICATION on. + virtual void CloseConnection( const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel=0, PacketPriority disconnectionNotificationPriority=LOW_PRIORITY )=0; + + /// Returns if a system is connected, disconnected, connecting in progress, or various other states + /// \param[in] systemIdentifier The system we are referring to + /// \note This locks a mutex, do not call too frequently during connection attempts or the attempt will take longer and possibly even timeout + /// \return What state the remote system is in + virtual ConnectionState GetConnectionState(const AddressOrGUID systemIdentifier)=0; + + /// Cancel a pending connection attempt + /// If we are already connected, the connection stays open + /// \param[in] target Which system to cancel + virtual void CancelConnectionAttempt( const SystemAddress target )=0; + + /// Given a systemAddress, returns an index from 0 to the maximum number of players allowed - 1. + /// \param[in] systemAddress The SystemAddress we are referring to + /// \return The index of this SystemAddress or -1 on system not found. + virtual int GetIndexFromSystemAddress( const SystemAddress systemAddress ) const=0; + + /// This function is only useful for looping through all systems + /// Given an index, will return a SystemAddress. + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The SystemAddress + virtual SystemAddress GetSystemAddressFromIndex( int index )=0; + + /// Same as GetSystemAddressFromIndex but returns RakNetGUID + /// \param[in] index Index should range between 0 and the maximum number of players allowed - 1. + /// \return The RakNetGUID + virtual RakNetGUID GetGUIDFromIndex( int index )=0; + + /// Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient + /// Indices match each other, so \a addresses[0] and \a guids[0] refer to the same system + /// \param[out] addresses All system addresses. Size of the list is the number of connections. Size of the list will match the size of the \a guids list. + /// \param[out] guids All guids. Size of the list is the number of connections. Size of the list will match the size of the \a addresses list. + virtual void GetSystemList(DataStructures::List &addresses, DataStructures::List &guids) const=0; + + /// Bans an IP from connecting. Banned IPs persist between connections but are not saved on shutdown nor loaded on startup. + /// param[in] IP Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will ban all IP addresses starting with 128.0.0 + /// \param[in] milliseconds how many ms for a temporary ban. Use 0 for a permanent ban + virtual void AddToBanList( const char *IP, RakNet::TimeMS milliseconds=0 )=0; + + /// Allows a previously banned IP to connect. + /// param[in] Dotted IP address. Can use * as a wildcard, such as 128.0.0.* will banAll IP addresses starting with 128.0.0 + virtual void RemoveFromBanList( const char *IP )=0; + + /// Allows all previously banned IPs to connect. + virtual void ClearBanList( void )=0; + + /// Returns true or false indicating if a particular IP is banned. + /// \param[in] IP - Dotted IP address. + /// \return true if IP matches any IPs in the ban list, accounting for any wildcards. False otherwise. + virtual bool IsBanned( const char *IP )=0; + + /// Enable or disable allowing frequent connections from the same IP adderss + /// This is a security measure which is disabled by default, but can be set to true to prevent attackers from using up all connection slots + /// \param[in] b True to limit connections from the same ip to at most 1 per 100 milliseconds. + virtual void SetLimitIPConnectionFrequency(bool b)=0; + + // --------------------------------------------------------------------------------------------Pinging Functions - Functions dealing with the automatic ping mechanism-------------------------------------------------------------------------------------------- + /// Send a ping to the specified connected system. + /// \pre The sender and recipient must already be started via a successful call to Startup() + /// \param[in] target Which system to ping + virtual void Ping( const SystemAddress target )=0; + + /// Send a ping to the specified unconnected system. The remote system, if it is Initialized, will respond with ID_PONG followed by sizeof(RakNet::TimeMS) containing the system time the ping was sent.(Default is 4 bytes - See __GET_TIME_64BIT in RakNetTypes.h + /// System should reply with ID_PONG if it is active + /// \param[in] host Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] onlyReplyOnAcceptingConnections Only request a reply if the remote system is accepting connections + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return true on success, false on failure (unknown hostname) + virtual bool Ping( const char* host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex=0 )=0; + + /// Returns the average of all ping times read for the specific system or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The ping time for this system, or -1 + virtual int GetAveragePing( const AddressOrGUID systemIdentifier )=0; + + /// Returns the last ping time read for the specific system or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The last ping time for this system, or -1 + virtual int GetLastPing( const AddressOrGUID systemIdentifier ) const=0; + + /// Returns the lowest ping time read or -1 if none read yet + /// \param[in] systemAddress Which system we are referring to + /// \return The lowest ping time for this system, or -1 + virtual int GetLowestPing( const AddressOrGUID systemIdentifier ) const=0; + + /// Ping the remote systems every so often, or not. Can be called anytime. + /// By default this is true. Recommended to leave on, because congestion control uses it to determine how often to resend lost packets. + /// It would be true by default to prevent timestamp drift, since in the event of a clock spike, the timestamp deltas would no longer be accurate + /// \param[in] doPing True to start occasional pings. False to stop them. + virtual void SetOccasionalPing( bool doPing )=0; + + // --------------------------------------------------------------------------------------------Static Data Functions - Functions dealing with API defined synchronized memory-------------------------------------------------------------------------------------------- + /// Sets the data to send along with a LAN server discovery or offline ping reply. + /// \a length should be under 400 bytes, as a security measure against flood attacks + /// \param[in] data a block of data to store, or 0 for none + /// \param[in] length The length of data in bytes, or 0 for none + /// \sa Ping.cpp + virtual void SetOfflinePingResponse( const char *data, const unsigned int length )=0; + + /// Returns pointers to a copy of the data passed to SetOfflinePingResponse + /// \param[out] data A pointer to a copy of the data passed to \a SetOfflinePingResponse() + /// \param[out] length A pointer filled in with the length parameter passed to SetOfflinePingResponse() + /// \sa SetOfflinePingResponse + virtual void GetOfflinePingResponse( char **data, unsigned int *length )=0; + + //--------------------------------------------------------------------------------------------Network Functions - Functions dealing with the network in general-------------------------------------------------------------------------------------------- + /// Return the unique address identifier that represents you or another system on the the network and is based on your local IP / port. + /// \note Not supported by the XBOX + /// \param[in] systemAddress Use UNASSIGNED_SYSTEM_ADDRESS to get your behind-LAN address. Use a connected system to get their behind-LAN address + /// \param[in] index When you have multiple internal IDs, which index to return? Currently limited to MAXIMUM_NUMBER_OF_INTERNAL_IDS (so the maximum value of this variable is MAXIMUM_NUMBER_OF_INTERNAL_IDS-1) + /// \return the identifier of your system internally, which may not be how other systems see if you if you are behind a NAT or proxy + virtual SystemAddress GetInternalID( const SystemAddress systemAddress=UNASSIGNED_SYSTEM_ADDRESS, const int index=0 ) const=0; + + /// Return the unique address identifier that represents you on the the network and is based on your externalIP / port + /// (the IP / port the specified player uses to communicate with you) + /// \param[in] target Which remote system you are referring to for your external ID. Usually the same for all systems, unless you have two or more network cards. + virtual SystemAddress GetExternalID( const SystemAddress target ) const=0; + + /// Return my own GUID + virtual const RakNetGUID GetMyGUID(void) const=0; + + /// Return the address bound to a socket at the specified index + virtual SystemAddress GetMyBoundAddress(const int socketIndex=0)=0; + + /// Get a random number (to generate a GUID) + static uint64_t Get64BitUniqueRandomNumber(void); + + /// Given a connected system, give us the unique GUID representing that instance of RakPeer. + /// This will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different + /// Currently O(log(n)), but this may be improved in the future. If you use this frequently, you may want to cache the value as it won't change. + /// Returns UNASSIGNED_RAKNET_GUID if system address can't be found. + /// If \a input is UNASSIGNED_SYSTEM_ADDRESS, will return your own GUID + /// \pre Call Startup() first, or the function will return UNASSIGNED_RAKNET_GUID + /// \param[in] input The system address of the system we are connected to + virtual const RakNetGUID& GetGuidFromSystemAddress( const SystemAddress input ) const=0; + + /// Given the GUID of a connected system, give us the system address of that system. + /// The GUID will be the same on all systems connected to that instance of RakPeer, even if the external system addresses are different + /// Currently O(log(n)), but this may be improved in the future. If you use this frequently, you may want to cache the value as it won't change. + /// If \a input is UNASSIGNED_RAKNET_GUID, will return UNASSIGNED_SYSTEM_ADDRESS + /// \param[in] input The RakNetGUID of the system we are checking to see if we are connected to + virtual SystemAddress GetSystemAddressFromGuid( const RakNetGUID input ) const=0; + + /// Given the SystemAddress of a connected system, get the public key they provided as an identity + /// Returns false if system address was not found or client public key is not known + /// \param[in] input The RakNetGUID of the system + /// \param[in] client_public_key The connected client's public key is copied to this address. Buffer must be cat::EasyHandshake::PUBLIC_KEY_BYTES bytes in length. + virtual bool GetClientPublicKeyFromSystemAddress( const SystemAddress input, char *client_public_key ) const=0; + + /// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. + /// Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. + /// Do not set different values for different computers that are connected to each other, or you won't be able to reconnect after ID_CONNECTION_LOST + /// \param[in] timeMS Time, in MS + /// \param[in] target Which system to do this for. Pass UNASSIGNED_SYSTEM_ADDRESS for all systems. + virtual void SetTimeoutTime( RakNet::TimeMS timeMS, const SystemAddress target )=0; + + /// \param[in] target Which system to do this for. Pass UNASSIGNED_SYSTEM_ADDRESS to get the default value + /// \return timeoutTime for a given system. + virtual RakNet::TimeMS GetTimeoutTime( const SystemAddress target )=0; + + /// Returns the current MTU size + /// \param[in] target Which system to get this for. UNASSIGNED_SYSTEM_ADDRESS to get the default + /// \return The current MTU size + virtual int GetMTUSize( const SystemAddress target ) const=0; + + /// Returns the number of IP addresses this system has internally. Get the actual addresses from GetLocalIP() + virtual unsigned GetNumberOfAddresses( void )=0; + + /// Returns an IP address at index 0 to GetNumberOfAddresses-1 + /// \param[in] index index into the list of IP addresses + /// \return The local IP address at this index + virtual const char* GetLocalIP( unsigned int index )=0; + + /// Is this a local IP? + /// \param[in] An IP address to check, excluding the port + /// \return True if this is one of the IP addresses returned by GetLocalIP + virtual bool IsLocalIP( const char *ip )=0; + + /// Allow or disallow connection responses from any IP. Normally this should be false, but may be necessary + /// when connecting to servers with multiple IP addresses. + /// \param[in] allow - True to allow this behavior, false to not allow. Defaults to false. Value persists between connections + virtual void AllowConnectionResponseIPMigration( bool allow )=0; + + /// Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. + /// This will tell the remote system our external IP outside the LAN along with some user data. + /// \pre The sender and recipient must already be started via a successful call to Initialize + /// \param[in] host Either a dotted IP address or a domain name + /// \param[in] remotePort Which port to connect to on the remote machine. + /// \param[in] data Optional data to append to the packet. + /// \param[in] dataLength length of data in bytes. Use 0 if no data. + /// \param[in] connectionSocketIndex Index into the array of socket descriptors passed to socketDescriptors in RakPeer::Startup() to send on. + /// \return false if IsActive()==false or the host is unresolvable. True otherwise + virtual bool AdvertiseSystem( const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex=0 )=0; + + /// Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. + /// ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived + /// As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. + /// Defaults to 0 (never return this notification) + /// \param[in] interval How many messages to use as an interval + virtual void SetSplitMessageProgressInterval(int interval)=0; + + /// Returns what was passed to SetSplitMessageProgressInterval() + /// \return What was passed to SetSplitMessageProgressInterval(). Default to 0. + virtual int GetSplitMessageProgressInterval(void) const=0; + + /// Set how long to wait before giving up on sending an unreliable message + /// Useful if the network is clogged up. + /// Set to 0 or less to never timeout. Defaults to 0. + /// \param[in] timeoutMS How many ms to wait before simply not sending an unreliable message. + virtual void SetUnreliableTimeout(RakNet::TimeMS timeoutMS)=0; + + /// Send a message to host, with the IP socket option TTL set to 3 + /// This message will not reach the host, but will open the router. + /// Used for NAT-Punchthrough + virtual void SendTTL( const char* host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex=0 )=0; + + // -------------------------------------------------------------------------------------------- Plugin Functions-------------------------------------------------------------------------------------------- + /// \brief Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code automatically on message receipt in the Receive call. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to the plugin to attach. + virtual void AttachPlugin( PluginInterface2 *plugin )=0; + + /// \brief Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is attached to. + /// \details This method disables the plugin code from running automatically on base class's updates or message receipt. + /// If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except PacketLogger, you can call AttachPlugin() and DetachPlugin() for this plugin while RakPeer is active. + /// \param[in] messageHandler Pointer to a plugin to detach. + virtual void DetachPlugin( PluginInterface2 *messageHandler )=0; + + // --------------------------------------------------------------------------------------------Miscellaneous Functions-------------------------------------------------------------------------------------------- + /// Put a message back at the end of the receive queue in case you don't want to deal with it immediately + /// \param[in] packet The packet you want to push back. + /// \param[in] pushAtHead True to push the packet so that the next receive call returns it. False to push it at the end of the queue (obviously pushing it at the end makes the packets out of order) + virtual void PushBackPacket( Packet *packet, bool pushAtHead )=0; + + /// \internal + /// \brief For a given system identified by \a guid, change the SystemAddress to send to. + /// \param[in] guid The connection we are referring to + /// \param[in] systemAddress The new address to send to + virtual void ChangeSystemAddress(RakNetGUID guid, const SystemAddress &systemAddress)=0; + + /// \returns a packet for you to write to if you want to create a Packet for some reason. + /// You can add it to the receive buffer with PushBackPacket + /// \param[in] dataSize How many bytes to allocate for the buffer + /// \return A packet you can write to + virtual Packet* AllocatePacket(unsigned dataSize)=0; + + /// Get the socket used with a particular active connection + /// The smart pointer reference counts the RakNetSocket object, so the socket will remain active as long as the smart pointer does, even if RakNet were to shutdown or close the connection. + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[in] target Which system + /// \return A smart pointer object containing the socket information about the socket. Be sure to check IsNull() which is returned if the update thread is unresponsive, shutting down, or if this system is not connected + virtual RakNetSmartPtr GetSocket( const SystemAddress target )=0; + + /// Get all sockets in use + /// \note This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. + /// \param[out] sockets List of RakNetSocket structures in use. Sockets will not be closed until \a sockets goes out of scope + virtual void GetSockets( DataStructures::List > &sockets )=0; + virtual void ReleaseSockets( DataStructures::List > &sockets )=0; + + virtual void WriteOutOfBandHeader(RakNet::BitStream *bitStream)=0; + + /// If you need code to run in the same thread as RakNet's update thread, this function can be used for that + /// \param[in] _userUpdateThreadPtr C callback function + /// \param[in] _userUpdateThreadData Passed to C callback function + virtual void SetUserUpdateThread(void (*_userUpdateThreadPtr)(RakPeerInterface *, void *), void *_userUpdateThreadData)=0; + + // --------------------------------------------------------------------------------------------Network Simulator Functions-------------------------------------------------------------------------------------------- + /// Adds simulated ping and packet loss to the outgoing data flow. + /// To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and packetloss value on each. + /// You can exclude network simulator code with the _RELEASE #define to decrease code size + /// \deprecated Use http://www.jenkinssoftware.com/forum/index.php?topic=1671.0 instead. + /// \note Doesn't work past version 3.6201 + /// \param[in] packetloss Chance to lose a packet. Ranges from 0 to 1. + /// \param[in] minExtraPing The minimum time to delay sends. + /// \param[in] extraPingVariance The additional random time to delay sends. + virtual void ApplyNetworkSimulator( float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance)=0; + + /// Limits how much outgoing bandwidth can be sent per-connection. + /// This limit does not apply to the sum of all connections! + /// Exceeding the limit queues up outgoing traffic + /// \param[in] maxBitsPerSecond Maximum bits per second to send. Use 0 for unlimited (default). Once set, it takes effect immedately and persists until called again. + virtual void SetPerConnectionOutgoingBandwidthLimit( unsigned maxBitsPerSecond )=0; + + /// Returns if you previously called ApplyNetworkSimulator + /// \return If you previously called ApplyNetworkSimulator + virtual bool IsNetworkSimulatorActive( void )=0; + + // --------------------------------------------------------------------------------------------Statistical Functions - Functions dealing with API performance-------------------------------------------------------------------------------------------- + + /// Returns a structure containing a large set of network statistics for the specified system. + /// You can map this data to a string using the C style StatisticsToString() function + /// \param[in] systemAddress: Which connected system to get statistics for + /// \param[in] rns If you supply this structure, it will be written to it. Otherwise it will use a static struct, which is not threadsafe + /// \return 0 on can't find the specified system. A pointer to a set of data otherwise. + /// \sa RakNetStatistics.h + virtual RakNetStatistics * GetStatistics( const SystemAddress systemAddress, RakNetStatistics *rns=0 )=0; + virtual bool GetStatistics( const int index, RakNetStatistics *rns )=0; + + /// \Returns how many messages are waiting when you call Receive() + virtual unsigned int GetReceiveBufferSize(void)=0; + + // --------------------------------------------------------------------------------------------EVERYTHING AFTER THIS COMMENT IS FOR INTERNAL USE ONLY-------------------------------------------------------------------------------------------- + + /// \internal + virtual bool SendOutOfBand(const char *host, unsigned short remotePort, const char *data, BitSize_t dataLength, unsigned connectionSocketIndex=0 )=0; + + int errorState; +} +// #if defined(SN_TARGET_PSP2) +// __attribute__((aligned(8))) +// #endif +; + +} // namespace RakNet + +#endif diff --git a/src/raknet/RakSleep.cpp b/src/raknet/RakSleep.cpp new file mode 100755 index 0000000..41bc904 --- /dev/null +++ b/src/raknet/RakSleep.cpp @@ -0,0 +1,53 @@ + + +#if defined(_WIN32) +#include "WindowsIncludes.h" // Sleep + + + + + +#else +#include +#include +#include +#endif + +#include "RakSleep.h" + +void RakSleep(unsigned int ms) +{ +#ifdef _WIN32 + Sleep(ms); + + + + + +#else + //Single thread sleep code thanks to Furquan Shaikh, http://somethingswhichidintknow.blogspot.com/2009/09/sleep-in-pthread.html + //Modified slightly from the original + pthread_mutex_t fakeMutex = PTHREAD_MUTEX_INITIALIZER; + pthread_cond_t fakeCond = PTHREAD_COND_INITIALIZER; + struct timespec timeToWait; + struct timeval now; + int rt; + + gettimeofday(&now,NULL); + + long seconds = ms/1000; + long nanoseconds = (ms - seconds * 1000) * 1000000; + timeToWait.tv_sec = now.tv_sec + seconds; + timeToWait.tv_nsec = now.tv_usec*1000 + nanoseconds; + + if (timeToWait.tv_nsec >= 1000000000) + { + timeToWait.tv_nsec -= 1000000000; + timeToWait.tv_sec++; + } + + pthread_mutex_lock(&fakeMutex); + rt = pthread_cond_timedwait(&fakeCond, &fakeMutex, &timeToWait); + pthread_mutex_unlock(&fakeMutex); +#endif +} diff --git a/src/raknet/RakSleep.h b/src/raknet/RakSleep.h new file mode 100755 index 0000000..f1a4148 --- /dev/null +++ b/src/raknet/RakSleep.h @@ -0,0 +1,8 @@ +#ifndef __RAK_SLEEP_H +#define __RAK_SLEEP_H + +#include "Export.h" + +void RAK_DLL_EXPORT RakSleep(unsigned int ms); + +#endif diff --git a/src/raknet/RakString.cpp b/src/raknet/RakString.cpp new file mode 100755 index 0000000..b51c955 --- /dev/null +++ b/src/raknet/RakString.cpp @@ -0,0 +1,1422 @@ +#include "RakString.h" +#include "RakAssert.h" +#include "RakMemoryOverride.h" +#include "BitStream.h" +#include +#include +#include "LinuxStrings.h" +#include "StringCompressor.h" +#include "SimpleMutex.h" + +using namespace RakNet; + +//DataStructures::MemoryPool RakString::pool; +RakString::SharedString RakString::emptyString={0,0,0,(char*) "",(char*) ""}; +//RakString::SharedString *RakString::sharedStringFreeList=0; +//unsigned int RakString::sharedStringFreeListAllocationCount=0; +DataStructures::List RakString::freeList; + +class RakStringCleanup +{ +public: + ~RakStringCleanup() + { + RakNet::RakString::FreeMemoryNoMutex(); + } +}; + +static RakStringCleanup cleanup; + +SimpleMutex& GetPoolMutex(void) +{ + static SimpleMutex poolMutex; + return poolMutex; +} + +int RakNet::RakString::RakStringComp( RakString const &key, RakString const &data ) +{ + return key.StrCmp(data); +} + +RakString::RakString() +{ + sharedString=&emptyString; +} +RakString::RakString( RakString::SharedString *_sharedString ) +{ + sharedString=_sharedString; +} +RakString::RakString(char input) +{ + char str[2]; + str[0]=input; + str[1]=0; + Assign(str); +} +RakString::RakString(unsigned char input) +{ + char str[2]; + str[0]=(char) input; + str[1]=0; + Assign(str); +} +RakString::RakString(const unsigned char *format, ...){ + va_list ap; + va_start(ap, format); + Assign((const char*) format,ap); +} +RakString::RakString(const char *format, ...){ + va_list ap; + va_start(ap, format); + Assign(format,ap); +} +RakString::RakString( const RakString & rhs) +{ + if (rhs.sharedString==&emptyString) + { + sharedString=&emptyString; + return; + } + + rhs.sharedString->refCountMutex->Lock(); + if (rhs.sharedString->refCount==0) + { + sharedString=&emptyString; + } + else + { + rhs.sharedString->refCount++; + sharedString=rhs.sharedString; + } + rhs.sharedString->refCountMutex->Unlock(); +} +RakString::~RakString() +{ + Free(); +} +RakString& RakString::operator = ( const RakString& rhs ) +{ + Free(); + if (rhs.sharedString==&emptyString) + return *this; + + rhs.sharedString->refCountMutex->Lock(); + if (rhs.sharedString->refCount==0) + { + sharedString=&emptyString; + } + else + { + sharedString=rhs.sharedString; + sharedString->refCount++; + } + rhs.sharedString->refCountMutex->Unlock(); + return *this; +} +RakString& RakString::operator = ( const char *str ) +{ + Free(); + Assign(str); + return *this; +} +RakString& RakString::operator = ( char *str ) +{ + return operator = ((const char*)str); +} +RakString& RakString::operator = ( const unsigned char *str ) +{ + return operator = ((const char*)str); +} +RakString& RakString::operator = ( char unsigned *str ) +{ + return operator = ((const char*)str); +} +RakString& RakString::operator = ( const char c ) +{ + char buff[2]; + buff[0]=c; + buff[1]=0; + return operator = ((const char*)buff); +} +void RakString::Realloc(SharedString *sharedString, size_t bytes) +{ + if (bytes<=sharedString->bytesUsed) + return; + RakAssert(bytes>0); + size_t oldBytes = sharedString->bytesUsed; + size_t newBytes; + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + newBytes = GetSizeToAllocate(bytes); + if (oldBytes <=(size_t) smallStringSize && newBytes > (size_t) smallStringSize) + { + sharedString->bigString=(char*) rakMalloc_Ex(newBytes, _FILE_AND_LINE_); + strcpy(sharedString->bigString, sharedString->smallString); + sharedString->c_str=sharedString->bigString; + } + else if (oldBytes > smallStringSize) + { + sharedString->bigString=(char*) rakRealloc_Ex(sharedString->bigString,newBytes, _FILE_AND_LINE_); + sharedString->c_str=sharedString->bigString; + } + sharedString->bytesUsed=newBytes; +} +RakString& RakString::operator +=( const RakString& rhs) +{ + if (rhs.IsEmpty()) + return *this; + + if (IsEmpty()) + { + return operator=(rhs); + } + else + { + Clone(); + size_t strLen=rhs.GetLength()+GetLength()+1; + Realloc(sharedString, strLen+GetLength()); + strcat(sharedString->c_str,rhs.C_String()); + } + return *this; +} +RakString& RakString::operator +=( const char *str ) +{ + if (str==0 || str[0]==0) + return *this; + + if (IsEmpty()) + { + Assign(str); + } + else + { + Clone(); + size_t strLen=strlen(str)+GetLength()+1; + Realloc(sharedString, strLen); + strcat(sharedString->c_str,str); + } + return *this; +} +RakString& RakString::operator +=( char *str ) +{ + return operator += ((const char*)str); +} +RakString& RakString::operator +=( const unsigned char *str ) +{ + return operator += ((const char*)str); +} +RakString& RakString::operator +=( unsigned char *str ) +{ + return operator += ((const char*)str); +} +RakString& RakString::operator +=( const char c ) +{ + char buff[2]; + buff[0]=c; + buff[1]=0; + return operator += ((const char*)buff); +} +unsigned char RakString::operator[] ( const unsigned int position ) const +{ + RakAssert(positionc_str[position]; +} +bool RakString::operator==(const RakString &rhs) const +{ + return strcmp(sharedString->c_str,rhs.sharedString->c_str)==0; +} +bool RakString::operator==(const char *str) const +{ + return strcmp(sharedString->c_str,str)==0; +} +bool RakString::operator==(char *str) const +{ + return strcmp(sharedString->c_str,str)==0; +} +bool RakString::operator < ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) < 0; +} +bool RakString::operator <= ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) <= 0; +} +bool RakString::operator > ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) > 0; +} +bool RakString::operator >= ( const RakString& right ) const +{ + return strcmp(sharedString->c_str,right.C_String()) >= 0; +} +bool RakString::operator!=(const RakString &rhs) const +{ + return strcmp(sharedString->c_str,rhs.sharedString->c_str)!=0; +} +bool RakString::operator!=(const char *str) const +{ + return strcmp(sharedString->c_str,str)!=0; +} +bool RakString::operator!=(char *str) const +{ + return strcmp(sharedString->c_str,str)!=0; +} +const RakNet::RakString operator+(const RakNet::RakString &lhs, const RakNet::RakString &rhs) +{ + if (lhs.IsEmpty() && rhs.IsEmpty()) + { + return RakString(&RakString::emptyString); + } + if (lhs.IsEmpty()) + { + rhs.sharedString->refCountMutex->Lock(); + if (rhs.sharedString->refCount==0) + { + rhs.sharedString->refCountMutex->Unlock(); + lhs.sharedString->refCountMutex->Lock(); + lhs.sharedString->refCount++; + lhs.sharedString->refCountMutex->Unlock(); + return RakString(lhs.sharedString); + } + else + { + rhs.sharedString->refCount++; + rhs.sharedString->refCountMutex->Unlock(); + return RakString(rhs.sharedString); + } + // rhs.sharedString->refCountMutex->Unlock(); + } + if (rhs.IsEmpty()) + { + lhs.sharedString->refCountMutex->Lock(); + lhs.sharedString->refCount++; + lhs.sharedString->refCountMutex->Unlock(); + return RakString(lhs.sharedString); + } + + size_t len1 = lhs.GetLength(); + size_t len2 = rhs.GetLength(); + size_t allocatedBytes = len1 + len2 + 1; + allocatedBytes = RakString::GetSizeToAllocate(allocatedBytes); + RakString::SharedString *sharedString; + + RakString::LockMutex(); + // sharedString = RakString::pool.Allocate( _FILE_AND_LINE_ ); + if (RakString::freeList.Size()==0) + { + //RakString::sharedStringFreeList=(RakString::SharedString*) rakRealloc_Ex(RakString::sharedStringFreeList,(RakString::sharedStringFreeListAllocationCount+1024)*sizeof(RakString::SharedString), _FILE_AND_LINE_); + unsigned i; + for (i=0; i < 128; i++) + { + // RakString::freeList.Insert(RakString::sharedStringFreeList+i+RakString::sharedStringFreeListAllocationCount); + RakString::SharedString *ss; + ss = (RakString::SharedString*) rakMalloc_Ex(sizeof(RakString::SharedString), _FILE_AND_LINE_); + ss->refCountMutex=RakNet::OP_NEW(_FILE_AND_LINE_); + RakString::freeList.Insert(ss, _FILE_AND_LINE_); + + } + //RakString::sharedStringFreeListAllocationCount+=1024; + } + sharedString = RakString::freeList[RakString::freeList.Size()-1]; + RakString::freeList.RemoveAtIndex(RakString::freeList.Size()-1); + RakString::UnlockMutex(); + + const int smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + sharedString->bytesUsed=allocatedBytes; + sharedString->refCount=1; + if (allocatedBytes <= (size_t) smallStringSize) + { + sharedString->c_str=sharedString->smallString; + } + else + { + sharedString->bigString=(char*)rakMalloc_Ex(sharedString->bytesUsed, _FILE_AND_LINE_); + sharedString->c_str=sharedString->bigString; + } + + strcpy(sharedString->c_str, lhs); + strcat(sharedString->c_str, rhs); + + return RakString(sharedString); +} +const char * RakString::ToLower(void) +{ + Clone(); + + size_t strLen = strlen(sharedString->c_str); + unsigned i; + for (i=0; i < strLen; i++) + sharedString->c_str[i]=ToLower(sharedString->c_str[i]); + return sharedString->c_str; +} +const char * RakString::ToUpper(void) +{ + Clone(); + + size_t strLen = strlen(sharedString->c_str); + unsigned i; + for (i=0; i < strLen; i++) + sharedString->c_str[i]=ToUpper(sharedString->c_str[i]); + return sharedString->c_str; +} +void RakString::Set(const char *format, ...) +{ + va_list ap; + va_start(ap, format); + Clear(); + Assign(format,ap); +} +bool RakString::IsEmpty(void) const +{ + return sharedString==&emptyString; +} +size_t RakString::GetLength(void) const +{ + return strlen(sharedString->c_str); +} +// http://porg.es/blog/counting-characters-in-utf-8-strings-is-faster +int porges_strlen2(char *s) +{ + int i = 0; + int iBefore = 0; + int count = 0; + + while (s[i] > 0) +ascii: i++; + + count += i-iBefore; + while (s[i]) + { + if (s[i] > 0) + { + iBefore = i; + goto ascii; + } + else + switch (0xF0 & s[i]) + { + case 0xE0: i += 3; break; + case 0xF0: i += 4; break; + default: i += 2; break; + } + ++count; + } + return count; +} +size_t RakString::GetLengthUTF8(void) const +{ + return porges_strlen2(sharedString->c_str); +} +void RakString::Replace(unsigned index, unsigned count, unsigned char c) +{ + RakAssert(index+count < GetLength()); + Clone(); + unsigned countIndex=0; + while (countIndexc_str[index]=c; + index++; + countIndex++; + } +} +void RakString::SetChar( unsigned index, unsigned char c ) +{ + RakAssert(index < GetLength()); + Clone(); + sharedString->c_str[index]=c; +} +void RakString::SetChar( unsigned index, RakNet::RakString s ) +{ + RakAssert(index < GetLength()); + Clone(); + RakNet::RakString firstHalf = SubStr(0, index); + RakNet::RakString secondHalf = SubStr(index+1, (unsigned int)-1); + *this = firstHalf; + *this += s; + *this += secondHalf; +} + +#ifdef _WIN32 +WCHAR * RakString::ToWideChar(void) +{ + // + // Special case of NULL or empty input string + // + if ( (sharedString->c_str == NULL) || (*sharedString->c_str == '\0') ) + { + // Return empty string + return L""; + } + + // + // Get size of destination UTF-16 buffer, in WCHAR's + // + int cchUTF16 = ::MultiByteToWideChar( + CP_UTF8, // convert from UTF-8 + 0, // Flags + sharedString->c_str, // source UTF-8 string + GetLength()+1, // total length of source UTF-8 string, + // in CHAR's (= bytes), including end-of-string \0 + NULL, // unused - no conversion done in this step + 0 // request size of destination buffer, in WCHAR's + ); + + if ( cchUTF16 == 0 ) + { + RakAssert("RakString::ToWideChar exception from cchUTF16==0" && 0); + return 0; + } + + // + // Allocate destination buffer to store UTF-16 string + // + WCHAR * pszUTF16 = RakNet::OP_NEW_ARRAY(cchUTF16,__FILE__,__LINE__); + + // + // Do the conversion from UTF-8 to UTF-16 + // + int result = ::MultiByteToWideChar( + CP_UTF8, // convert from UTF-8 + 0, // Buffer + sharedString->c_str, // source UTF-8 string + GetLength()+1, // total length of source UTF-8 string, + // in CHAR's (= bytes), including end-of-string \0 + pszUTF16, // destination buffer + cchUTF16 // size of destination buffer, in WCHAR's + ); + + if ( result == 0 ) + { + RakAssert("RakString::ToWideChar exception from MultiByteToWideChar" && 0); + return 0; + } + + return pszUTF16; +} +void RakString::DeallocWideChar(WCHAR * w) +{ + RakNet::OP_DELETE_ARRAY(w,__FILE__,__LINE__); +} +#endif + +size_t RakString::Find(const char *stringToFind,size_t pos) +{ + size_t len=GetLength(); + if (pos>=len || stringToFind==0 || stringToFind[0]==0) + { + return (size_t) -1; + } + size_t matchLen= strlen(stringToFind); + size_t matchPos=0; + size_t iStart=0; + + for (size_t i=pos;ic_str[i]) + { + if(matchPos==0) + { + iStart=i; + } + matchPos++; + } + else + { + matchPos=0; + } + + if (matchPos>=matchLen) + { + return iStart; + } + } + + return (size_t) -1; +} + +void RakString::TruncateUTF8(unsigned int length) +{ + int i = 0; + unsigned int count = 0; + + while (sharedString->c_str[i]!=0) + { + if (count==length) + { + sharedString->c_str[i]=0; + return; + } + else if (sharedString->c_str[i]>0) + { + i++; + } + else + { + switch (0xF0 & sharedString->c_str[i]) + { + case 0xE0: i += 3; break; + case 0xF0: i += 4; break; + default: i += 2; break; + } + } + + count++; + } +} + +void RakString::Truncate(unsigned int length) +{ + if (length < GetLength()) + { + SetChar(length, 0); + } +} + +RakString RakString::SubStr(unsigned int index, unsigned int count) const +{ + size_t length = GetLength(); + if (index >= length || count==0) + return RakString(); + RakString copy; + size_t numBytes = length-index; + if (count < numBytes) + numBytes=count; + copy.Allocate(numBytes+1); + size_t i; + for (i=0; i < numBytes; i++) + copy.sharedString->c_str[i]=sharedString->c_str[index+i]; + copy.sharedString->c_str[i]=0; + return copy; +} +void RakString::Erase(unsigned int index, unsigned int count) +{ + size_t len = GetLength(); + RakAssert(index+count <= len); + + Clone(); + unsigned i; + for (i=index; i < len-count; i++) + { + sharedString->c_str[i]=sharedString->c_str[i+count]; + } + sharedString->c_str[i]=0; +} +void RakString::TerminateAtLastCharacter(char c) +{ + int i, len=(int) GetLength(); + for (i=len-1; i >= 0; i--) + { + if (sharedString->c_str[i]==c) + { + Clone(); + sharedString->c_str[i]=0; + return; + } + } +} +void RakString::TerminateAtFirstCharacter(char c) +{ + unsigned int i, len=(unsigned int) GetLength(); + for (i=0; i < len; i++) + { + if (sharedString->c_str[i]==c) + { + Clone(); + sharedString->c_str[i]=0; + return; + } + } +} +void RakString::RemoveCharacter(char c) +{ + if (c==0) + return; + + unsigned int readIndex, writeIndex=0; + for (readIndex=0; sharedString->c_str[readIndex]; readIndex++) + { + if (sharedString->c_str[readIndex]!=c) + sharedString->c_str[writeIndex++]=sharedString->c_str[readIndex]; + else + Clone(); + } + sharedString->c_str[writeIndex]=0; +} +int RakString::StrCmp(const RakString &rhs) const +{ + return strcmp(sharedString->c_str, rhs); +} +int RakString::StrICmp(const RakString &rhs) const +{ + return _stricmp(sharedString->c_str, rhs); +} +void RakString::Printf(void) +{ + RAKNET_DEBUG_PRINTF("%s", sharedString->c_str); +} +void RakString::FPrintf(FILE *fp) +{ + fprintf(fp,"%s", sharedString->c_str); +} +bool RakString::IPAddressMatch(const char *IP) +{ + unsigned characterIndex; + + if ( IP == 0 || IP[ 0 ] == 0 || strlen( IP ) > 15 ) + return false; + + characterIndex = 0; + +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + while ( true ) + { + if (sharedString->c_str[ characterIndex ] == IP[ characterIndex ] ) + { + // Equal characters + if ( IP[ characterIndex ] == 0 ) + { + // End of the string and the strings match + + return true; + } + + characterIndex++; + } + + else + { + if ( sharedString->c_str[ characterIndex ] == 0 || IP[ characterIndex ] == 0 ) + { + // End of one of the strings + break; + } + + // Characters do not match + if ( sharedString->c_str[ characterIndex ] == '*' ) + { + // Domain is banned. + return true; + } + + // Characters do not match and it is not a * + break; + } + } + + + // No match found. + return false; +} +bool RakString::ContainsNonprintableExceptSpaces(void) const +{ + size_t strLen = strlen(sharedString->c_str); + unsigned i; + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i] < ' ' || sharedString->c_str[i] >126) + return true; + } + return false; +} +bool RakString::IsEmailAddress(void) const +{ + if (IsEmpty()) + return false; + size_t strLen = strlen(sharedString->c_str); + if (strLen < 6) // a@b.de + return false; + if (sharedString->c_str[strLen-4]!='.' && sharedString->c_str[strLen-3]!='.') // .com, .net., .org, .de + return false; + unsigned i; + // Has non-printable? + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i] <= ' ' || sharedString->c_str[i] >126) + return false; + } + int atCount=0; + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i]=='@') + { + atCount++; + } + } + if (atCount!=1) + return false; + int dotCount=0; + for (i=0; i < strLen; i++) + { + if (sharedString->c_str[i]=='.') + { + dotCount++; + } + } + if (dotCount==0) + return false; + + // There's more I could check, but this is good enough + return true; +} +RakNet::RakString& RakString::URLEncode(void) +{ + RakString result; + size_t strLen = strlen(sharedString->c_str); + result.Allocate(strLen*3); + char *output=result.sharedString->c_str; + unsigned int outputIndex=0; + unsigned i; + char c; + for (i=0; i < strLen; i++) + { + c=sharedString->c_str[i]; + if ( + (c<=47) || + (c>=58 && c<=64) || + (c>=91 && c<=96) || + (c>=123) + ) + { + RakNet::RakString tmp("%2X", c); + output[outputIndex++]='%'; + output[outputIndex++]=tmp.sharedString->c_str[0]; + output[outputIndex++]=tmp.sharedString->c_str[1]; + } + else + { + output[outputIndex++]=c; + } + } + + output[outputIndex]=0; + + *this = result; + return *this; +} +RakNet::RakString& RakString::URLDecode(void) +{ + RakString result; + size_t strLen = strlen(sharedString->c_str); + result.Allocate(strLen); + char *output=result.sharedString->c_str; + unsigned int outputIndex=0; + char c; + char hexDigits[2]; + char hexValues[2]; + unsigned int i; + for (i=0; i < strLen; i++) + { + c=sharedString->c_str[i]; + if (c=='%') + { + hexDigits[0]=sharedString->c_str[++i]; + hexDigits[1]=sharedString->c_str[++i]; + if (hexDigits[0]==' ') + hexValues[0]=0; + else if (hexDigits[0]>='A') + hexValues[0]=hexDigits[0]-'A'+10; + else + hexValues[0]=hexDigits[0]-'0'; + if (hexDigits[1]>='A') + hexValues[1]=hexDigits[1]-'A'+10; + else + hexValues[1]=hexDigits[1]-'0'; + output[outputIndex++]=hexValues[0]*16+hexValues[1]; + } + else + { + output[outputIndex++]=c; + } + } + + output[outputIndex]=0; + + *this = result; + return *this; +} +void RakString::SplitURI(RakNet::RakString &header, RakNet::RakString &domain, RakNet::RakString &path) +{ + header.Clear(); + domain.Clear(); + path.Clear(); + + size_t strLen = strlen(sharedString->c_str); + + char c; + unsigned int i=0; + if (strncmp(sharedString->c_str, "http://", 7)==0) + i+=(unsigned int) strlen("http://"); + else if (strncmp(sharedString->c_str, "https://", 8)==0) + i+=(unsigned int) strlen("https://"); + + if (strncmp(sharedString->c_str, "www.", 4)==0) + i+=(unsigned int) strlen("www."); + + if (i!=0) + { + header.Allocate(i+1); + strncpy(header.sharedString->c_str, sharedString->c_str, i); + header.sharedString->c_str[i]=0; + } + + + domain.Allocate(strLen-i+1); + char *domainOutput=domain.sharedString->c_str; + unsigned int outputIndex=0; + for (; i < strLen; i++) + { + c=sharedString->c_str[i]; + if (c=='/') + { + break; + } + else + { + domainOutput[outputIndex++]=sharedString->c_str[i]; + } + } + + domainOutput[outputIndex]=0; + + path.Allocate(strLen-header.GetLength()-outputIndex+1); + outputIndex=0; + char *pathOutput=path.sharedString->c_str; + for (; i < strLen; i++) + { + pathOutput[outputIndex++]=sharedString->c_str[i]; + } + pathOutput[outputIndex]=0; +} +RakNet::RakString& RakString::SQLEscape(void) +{ + int strLen=(int)GetLength(); + int escapedCharacterCount=0; + int index; + for (index=0; index < strLen; index++) + { + if (sharedString->c_str[index]=='\'' || + sharedString->c_str[index]=='"' || + sharedString->c_str[index]=='\\') + escapedCharacterCount++; + } + if (escapedCharacterCount==0) + return *this; + + Clone(); + Realloc(sharedString, strLen+escapedCharacterCount); + int writeIndex, readIndex; + writeIndex = strLen+escapedCharacterCount; + readIndex=strLen; + while (readIndex>=0) + { + if (sharedString->c_str[readIndex]=='\'' || + sharedString->c_str[readIndex]=='"' || + sharedString->c_str[readIndex]=='\\') + { + sharedString->c_str[writeIndex--]=sharedString->c_str[readIndex--]; + sharedString->c_str[writeIndex--]='\\'; + } + else + { + sharedString->c_str[writeIndex--]=sharedString->c_str[readIndex--]; + } + } + return *this; +} +RakNet::RakString& RakString::MakeFilePath(void) +{ + if (IsEmpty()) + return *this; + + RakNet::RakString fixedString = *this; + fixedString.Clone(); + for (int i=0; fixedString.sharedString->c_str[i]; i++) + { +#ifdef _WIN32 + if (fixedString.sharedString->c_str[i]=='/') + fixedString.sharedString->c_str[i]='\\'; +#else + if (fixedString.sharedString->c_str[i]=='\\') + fixedString.sharedString->c_str[i]='/'; +#endif + } + +#ifdef _WIN32 + if (fixedString.sharedString->c_str[strlen(fixedString.sharedString->c_str)-1]!='\\') + { + fixedString+='\\'; + } +#else + if (fixedString.sharedString->c_str[strlen(fixedString.sharedString->c_str)-1]!='/') + { + fixedString+='/'; + } +#endif + + if (fixedString!=*this) + *this = fixedString; + return *this; +} +void RakString::FreeMemory(void) +{ + LockMutex(); + FreeMemoryNoMutex(); + UnlockMutex(); +} +void RakString::FreeMemoryNoMutex(void) +{ + for (unsigned int i=0; i < freeList.Size(); i++) + { + RakNet::OP_DELETE(freeList[i]->refCountMutex,_FILE_AND_LINE_); + rakFree_Ex(freeList[i], _FILE_AND_LINE_ ); + } + freeList.Clear(false, _FILE_AND_LINE_); +} +void RakString::Serialize(BitStream *bs) const +{ + Serialize(sharedString->c_str, bs); +} +void RakString::Serialize(const char *str, BitStream *bs) +{ + unsigned short l = (unsigned short) strlen(str); + bs->Write(l); + bs->WriteAlignedBytes((const unsigned char*) str, (const unsigned int) l); +} +void RakString::SerializeCompressed(BitStream *bs, uint8_t languageId, bool writeLanguageId) const +{ + SerializeCompressed(C_String(), bs, languageId, writeLanguageId); +} +void RakString::SerializeCompressed(const char *str, BitStream *bs, uint8_t languageId, bool writeLanguageId) +{ + if (writeLanguageId) + bs->WriteCompressed(languageId); + StringCompressor::Instance()->EncodeString(str,0xFFFF,bs,languageId); +} +bool RakString::Deserialize(BitStream *bs) +{ + Clear(); + + bool b; + unsigned short l; + b=bs->Read(l); + if (l>0) + { + Allocate(((unsigned int) l)+1); + b=bs->ReadAlignedBytes((unsigned char*) sharedString->c_str, l); + if (b) + sharedString->c_str[l]=0; + else + Clear(); + } + else + bs->AlignReadToByteBoundary(); + return b; +} +bool RakString::Deserialize(char *str, BitStream *bs) +{ + bool b; + unsigned short l; + b=bs->Read(l); + if (b && l>0) + b=bs->ReadAlignedBytes((unsigned char*) str, l); + + if (b==false) + str[0]=0; + + str[l]=0; + return b; +} +bool RakString::DeserializeCompressed(BitStream *bs, bool readLanguageId) +{ + uint8_t languageId; + if (readLanguageId) + bs->ReadCompressed(languageId); + else + languageId=0; + return StringCompressor::Instance()->DecodeString(this,0xFFFF,bs,languageId); +} +bool RakString::DeserializeCompressed(char *str, BitStream *bs, bool readLanguageId) +{ + uint8_t languageId; + if (readLanguageId) + bs->ReadCompressed(languageId); + else + languageId=0; + return StringCompressor::Instance()->DecodeString(str,0xFFFF,bs,languageId); +} +const char *RakString::ToString(int64_t i) +{ + static int index=0; + static char buff[64][64]; +#if defined(_WIN32) + sprintf(buff[index], "%I64d", i); +#else + sprintf(buff[index], "%lld", (long long unsigned int) i); +#endif + int lastIndex=index; + if (++index==64) + index=0; + return buff[lastIndex]; +} +const char *RakString::ToString(uint64_t i) +{ + static int index=0; + static char buff[64][64]; +#if defined(_WIN32) + sprintf(buff[index], "%I64u", i); +#else + sprintf(buff[index], "%llu", (long long unsigned int) i); +#endif + int lastIndex=index; + if (++index==64) + index=0; + return buff[lastIndex]; +} +void RakString::Clear(void) +{ + Free(); +} +void RakString::Allocate(size_t len) +{ + RakString::LockMutex(); + // sharedString = RakString::pool.Allocate( _FILE_AND_LINE_ ); + if (RakString::freeList.Size()==0) + { + //RakString::sharedStringFreeList=(RakString::SharedString*) rakRealloc_Ex(RakString::sharedStringFreeList,(RakString::sharedStringFreeListAllocationCount+1024)*sizeof(RakString::SharedString), _FILE_AND_LINE_); + unsigned i; + for (i=0; i < 128; i++) + { + // RakString::freeList.Insert(RakString::sharedStringFreeList+i+RakString::sharedStringFreeListAllocationCount); + // RakString::freeList.Insert((RakString::SharedString*)rakMalloc_Ex(sizeof(RakString::SharedString), _FILE_AND_LINE_), _FILE_AND_LINE_); + + RakString::SharedString *ss; + ss = (RakString::SharedString*) rakMalloc_Ex(sizeof(RakString::SharedString), _FILE_AND_LINE_); + ss->refCountMutex=RakNet::OP_NEW(_FILE_AND_LINE_); + RakString::freeList.Insert(ss, _FILE_AND_LINE_); + } + //RakString::sharedStringFreeListAllocationCount+=1024; + } + sharedString = RakString::freeList[RakString::freeList.Size()-1]; + RakString::freeList.RemoveAtIndex(RakString::freeList.Size()-1); + RakString::UnlockMutex(); + + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + sharedString->refCount=1; + if (len <= smallStringSize) + { + sharedString->bytesUsed=smallStringSize; + sharedString->c_str=sharedString->smallString; + } + else + { + sharedString->bytesUsed=len<<1; + sharedString->bigString=(char*)rakMalloc_Ex(sharedString->bytesUsed, _FILE_AND_LINE_); + sharedString->c_str=sharedString->bigString; + } +} +void RakString::Assign(const char *str) +{ + if (str==0 || str[0]==0) + { + sharedString=&emptyString; + return; + } + + size_t len = strlen(str)+1; + Allocate(len); + memcpy(sharedString->c_str, str, len); +} +void RakString::Assign(const char *str, va_list ap) +{ + char stackBuff[512]; + if (_vsnprintf(stackBuff, 512, str, ap)!=-1 +#ifndef _WIN32 + // Here Windows will return -1 if the string is too long; Linux just truncates the string. + && strlen(str) <511 +#endif + ) + { + Assign(stackBuff); + return; + } + char *buff=0, *newBuff; + size_t buffSize=8096; + while (1) + { + newBuff = (char*) rakRealloc_Ex(buff, buffSize,__FILE__,__LINE__); + if (newBuff==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + if (buff!=0) + { + Assign(buff); + rakFree_Ex(buff,__FILE__,__LINE__); + } + else + { + Assign(stackBuff); + } + return; + } + buff=newBuff; + if (_vsnprintf(buff, buffSize, str, ap)!=-1) + { + Assign(buff); + rakFree_Ex(buff,__FILE__,__LINE__); + return; + } + buffSize*=2; + } +} +RakNet::RakString RakString::Assign(const char *str,size_t pos, size_t n ) +{ + size_t incomingLen=strlen(str); + + Clone(); + + if (str==0 || str[0]==0||pos>=incomingLen) + { + sharedString=&emptyString; + return (*this); + } + + if (pos+n>=incomingLen) + { + n=incomingLen-pos; + + } + const char * tmpStr=&(str[pos]); + + size_t len = n+1; + Allocate(len); + memcpy(sharedString->c_str, tmpStr, len); + sharedString->c_str[n]=0; + + return (*this); +} + +RakNet::RakString RakString::NonVariadic(const char *str) +{ + RakNet::RakString rs; + rs=str; + return rs; +} +unsigned long RakString::ToInteger(const char *str) +{ + unsigned long hash = 0; + int c; + + while ((c = *str++)) + hash = c + (hash << 6) + (hash << 16) - hash; + + return hash; +} +unsigned long RakString::ToInteger(const RakString &rs) +{ + return RakString::ToInteger(rs.C_String()); +} +void RakString::AppendBytes(const char *bytes, unsigned int count) +{ + Clone(); + Realloc(sharedString, count); + unsigned int length=(unsigned int) GetLength(); + memcpy(sharedString->c_str+length, bytes, count); + sharedString->c_str[length+count]=0; +} +void RakString::Clone(void) +{ + if (sharedString==&emptyString) + { + return; + } + + // Empty or solo then no point to cloning + sharedString->refCountMutex->Lock(); + if (sharedString->refCount==1) + { + sharedString->refCountMutex->Unlock(); + return; + } + + sharedString->refCount--; + sharedString->refCountMutex->Unlock(); + Assign(sharedString->c_str); +} +void RakString::Free(void) +{ + if (sharedString==&emptyString) + return; + sharedString->refCountMutex->Lock(); + sharedString->refCount--; + if (sharedString->refCount==0) + { + sharedString->refCountMutex->Unlock(); + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + if (sharedString->bytesUsed>smallStringSize) + rakFree_Ex(sharedString->bigString, _FILE_AND_LINE_ ); + /* + poolMutex->Lock(); + pool.Release(sharedString); + poolMutex->Unlock(); + */ + + RakString::LockMutex(); + RakString::freeList.Insert(sharedString, _FILE_AND_LINE_); + RakString::UnlockMutex(); + + sharedString=&emptyString; + } + else + { + sharedString->refCountMutex->Unlock(); + } + sharedString=&emptyString; +} +unsigned char RakString::ToLower(unsigned char c) +{ + if (c >= 'A' && c <= 'Z') + return c-'A'+'a'; + return c; +} +unsigned char RakString::ToUpper(unsigned char c) +{ + if (c >= 'a' && c <= 'z') + return c-'a'+'A'; + return c; +} +void RakString::LockMutex(void) +{ + GetPoolMutex().Lock(); +} +void RakString::UnlockMutex(void) +{ + GetPoolMutex().Unlock(); +} + +/* +#include "RakString.h" +#include +#include "GetTime.h" + +using namespace RakNet; + +int main(void) +{ + RakString s3("Hello world"); + RakString s5=s3; + + RakString s1; + RakString s2('a'); + + RakString s4("%i %f", 5, 6.0); + + RakString s6=s3; + RakString s7=s6; + RakString s8=s6; + RakString s9; + s9=s9; + RakString s10(s3); + RakString s11=s10 + s4 + s9 + s2; + s11+=RakString("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + RakString s12("Test"); + s12+=s11; + bool b1 = s12==s12; + s11=s5; + s12.ToUpper(); + s12.ToLower(); + RakString s13; + bool b3 = s13.IsEmpty(); + s13.Set("blah %s", s12.C_String()); + bool b4 = s13.IsEmpty(); + size_t i1=s13.GetLength(); + s3.Clear(_FILE_AND_LINE_); + s4.Clear(_FILE_AND_LINE_); + s5.Clear(_FILE_AND_LINE_); + s5.Clear(_FILE_AND_LINE_); + s6.Printf(); + s7.Printf(); + RAKNET_DEBUG_PRINTF("\n"); + + static const int repeatCount=750; + DataStructures::List rakStringList; + DataStructures::List stdStringList; + DataStructures::List referenceStringList; + char *c; + unsigned i; + RakNet::TimeMS beforeReferenceList, beforeRakString, beforeStdString, afterStdString; + + unsigned loop; + for (loop=0; loop<2; loop++) + { + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + c = RakNet::OP_NEW_ARRAY(56,_FILE_AND_LINE_ ); + strcpy(c, "Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + referenceStringList.Insert(c); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + beforeStdString=RakNet::GetTimeMS(); + + for (i=0; i < repeatCount; i++) + stdStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("Insertion 1 Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + RakNet::OP_DELETE_ARRAY(referenceStringList[0], _FILE_AND_LINE_); + referenceStringList.RemoveAtIndex(0); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.RemoveAtIndex(0); + beforeStdString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + stdStringList.RemoveAtIndex(0); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("RemoveHead Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + c = RakNet::OP_NEW_ARRAY(56, _FILE_AND_LINE_ ); + strcpy(c, "Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + referenceStringList.Insert(0); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + beforeStdString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + stdStringList.Insert("Aalsdkj alsdjf laksdjf ;lasdfj ;lasjfd"); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("Insertion 2 Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + beforeReferenceList=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + { + RakNet::OP_DELETE_ARRAY(referenceStringList[referenceStringList.Size()-1], _FILE_AND_LINE_); + referenceStringList.RemoveAtIndex(referenceStringList.Size()-1); + } + beforeRakString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + rakStringList.RemoveAtIndex(rakStringList.Size()-1); + beforeStdString=RakNet::GetTimeMS(); + for (i=0; i < repeatCount; i++) + stdStringList.RemoveAtIndex(stdStringList.Size()-1); + afterStdString=RakNet::GetTimeMS(); + RAKNET_DEBUG_PRINTF("RemoveTail Ref=%i Rak=%i, Std=%i\n", beforeRakString-beforeReferenceList, beforeStdString-beforeRakString, afterStdString-beforeStdString); + + } + + printf("Done."); + char str[128]; + Gets(str, sizeof(str)); + return 1; +} +*/ diff --git a/src/raknet/RakString.h b/src/raknet/RakString.h new file mode 100755 index 0000000..125586e --- /dev/null +++ b/src/raknet/RakString.h @@ -0,0 +1,307 @@ +#ifndef __RAK_STRING_H +#define __RAK_STRING_H + +#include "Export.h" +#include "DS_List.h" +#include "RakNetTypes.h" // int64_t +#include +#include "stdarg.h" + + +#ifdef _WIN32 + + + +#include "WindowsIncludes.h" +#endif + +namespace RakNet +{ +/// Forward declarations +class SimpleMutex; +class BitStream; + +/// \brief String class +/// \details Has the following improvements over std::string +/// -Reference counting: Suitable to store in lists +/// -Variadic assignment operator +/// -Doesn't cause linker errors +class RAK_DLL_EXPORT RakString +{ +public: + // Constructors + RakString(); + RakString(char input); + RakString(unsigned char input); + RakString(const unsigned char *format, ...); + RakString(const char *format, ...); + ~RakString(); + RakString( const RakString & rhs); + + /// Implicit return of const char* + operator const char* () const {return sharedString->c_str;} + + /// Same as std::string::c_str + const char *C_String(void) const {return sharedString->c_str;} + + // Lets you modify the string. Do not make the string longer - however, you can make it shorter, or change the contents. + // Pointer is only valid in the scope of RakString itself + char *C_StringUnsafe(void) {Clone(); return sharedString->c_str;} + + /// Assigment operators + RakString& operator = ( const RakString& rhs ); + RakString& operator = ( const char *str ); + RakString& operator = ( char *str ); + RakString& operator = ( const unsigned char *str ); + RakString& operator = ( char unsigned *str ); + RakString& operator = ( const char c ); + + /// Concatenation + RakString& operator +=( const RakString& rhs); + RakString& operator += ( const char *str ); + RakString& operator += ( char *str ); + RakString& operator += ( const unsigned char *str ); + RakString& operator += ( char unsigned *str ); + RakString& operator += ( const char c ); + + /// Character index. Do not use to change the string however. + unsigned char operator[] ( const unsigned int position ) const; + +#ifdef _WIN32 + // Return as Wide char + // Deallocate with DeallocWideChar + WCHAR * ToWideChar(void); + void DeallocWideChar(WCHAR * w); +#endif + + ///String class find replacement + ///Searches the string for the content specified in stringToFind and returns the position of the first occurrence in the string. + ///Search only includes characters on or after position pos, ignoring any possible occurrences in previous locations. + /// \param[in] stringToFind The string to find inside of this object's string + /// \param[in] pos The position in the string to start the search + /// \return Returns the position of the first occurrence in the string. + size_t Find(const char *stringToFind,size_t pos = 0 ); + + /// Equality + bool operator==(const RakString &rhs) const; + bool operator==(const char *str) const; + bool operator==(char *str) const; + + // Comparison + bool operator < ( const RakString& right ) const; + bool operator <= ( const RakString& right ) const; + bool operator > ( const RakString& right ) const; + bool operator >= ( const RakString& right ) const; + + /// Inequality + bool operator!=(const RakString &rhs) const; + bool operator!=(const char *str) const; + bool operator!=(char *str) const; + + /// Change all characters to lowercase + const char * ToLower(void); + + /// Change all characters to uppercase + const char * ToUpper(void); + + /// Set the value of the string + void Set(const char *format, ...); + + /// Sets a copy of a substring of str as the new content. The substring is the portion of str + /// that begins at the character position pos and takes up to n characters + /// (it takes less than n if the end of str is reached before). + /// \param[in] str The string to copy in + /// \param[in] pos The position on str to start the copy + /// \param[in] n How many chars to copy + /// \return Returns the string, note that the current string is set to that value as well + RakString Assign(const char *str,size_t pos, size_t n ); + + /// Returns if the string is empty. Also, C_String() would return "" + bool IsEmpty(void) const; + + /// Returns the length of the string + size_t GetLength(void) const; + size_t GetLengthUTF8(void) const; + + /// Replace character(s) in starting at index, for count, with c + void Replace(unsigned index, unsigned count, unsigned char c); + + /// Replace character at index with c + void SetChar( unsigned index, unsigned char c ); + + /// Replace character at index with string s + void SetChar( unsigned index, RakNet::RakString s ); + + /// Make sure string is no longer than \a length + void Truncate(unsigned int length); + void TruncateUTF8(unsigned int length); + + // Gets the substring starting at index for count characters + RakString SubStr(unsigned int index, unsigned int count) const; + + /// Erase characters out of the string at index for count + void Erase(unsigned int index, unsigned int count); + + /// Set the first instance of c with a NULL terminator + void TerminateAtFirstCharacter(char c); + /// Set the last instance of c with a NULL terminator + void TerminateAtLastCharacter(char c); + + /// Remove all instances of c + void RemoveCharacter(char c); + + /// Create a RakString with a value, without doing printf style parsing + /// Equivalent to assignment operator + static RakNet::RakString NonVariadic(const char *str); + + /// Has the string into an unsigned int + static unsigned long ToInteger(const char *str); + static unsigned long ToInteger(const RakString &rs); + + // Like strncat, but for a fixed length + void AppendBytes(const char *bytes, unsigned int count); + + /// Compare strings (case sensitive) + int StrCmp(const RakString &rhs) const; + + /// Compare strings (not case sensitive) + int StrICmp(const RakString &rhs) const; + + /// Clear the string + void Clear(void); + + /// Print the string to the screen + void Printf(void); + + /// Print the string to a file + void FPrintf(FILE *fp); + + /// Does the given IP address match the IP address encoded into this string, accounting for wildcards? + bool IPAddressMatch(const char *IP); + + /// Does the string contain non-printable characters other than spaces? + bool ContainsNonprintableExceptSpaces(void) const; + + /// Is this a valid email address? + bool IsEmailAddress(void) const; + + /// URL Encode the string. See http://www.codeguru.com/cpp/cpp/cpp_mfc/article.php/c4029/ + RakNet::RakString& URLEncode(void); + + /// URL decode the string + RakNet::RakString& URLDecode(void); + + /// https://servers.api.rackspacecloud.com/v1.0 to https://, servers.api.rackspacecloud.com, /v1.0 + void SplitURI(RakNet::RakString &header, RakNet::RakString &domain, RakNet::RakString &path); + + /// Scan for quote, double quote, and backslash and prepend with backslash + RakNet::RakString& SQLEscape(void); + + /// Fix to be a file path, ending with / + RakNet::RakString& MakeFilePath(void); + + /// RakString uses a freeList of old no-longer used strings + /// Call this function to clear this memory on shutdown + static void FreeMemory(void); + /// \internal + static void FreeMemoryNoMutex(void); + + /// Serialize to a bitstream, uncompressed (slightly faster) + /// \param[out] bs Bitstream to serialize to + void Serialize(BitStream *bs) const; + + /// Static version of the Serialize function + static void Serialize(const char *str, BitStream *bs); + + /// Serialize to a bitstream, compressed (better bandwidth usage) + /// \param[out] bs Bitstream to serialize to + /// \param[in] languageId languageId to pass to the StringCompressor class + /// \param[in] writeLanguageId encode the languageId variable in the stream. If false, 0 is assumed, and DeserializeCompressed will not look for this variable in the stream (saves bandwidth) + /// \pre StringCompressor::AddReference must have been called to instantiate the class (Happens automatically from RakPeer::Startup()) + void SerializeCompressed(BitStream *bs, uint8_t languageId=0, bool writeLanguageId=false) const; + + /// Static version of the SerializeCompressed function + static void SerializeCompressed(const char *str, BitStream *bs, uint8_t languageId=0, bool writeLanguageId=false); + + /// Deserialize what was written by Serialize + /// \param[in] bs Bitstream to serialize from + /// \return true if the deserialization was successful + bool Deserialize(BitStream *bs); + + /// Static version of the Deserialize() function + static bool Deserialize(char *str, BitStream *bs); + + /// Deserialize compressed string, written by SerializeCompressed + /// \param[in] bs Bitstream to serialize from + /// \param[in] readLanguageId If true, looks for the variable langaugeId in the data stream. Must match what was passed to SerializeCompressed + /// \return true if the deserialization was successful + /// \pre StringCompressor::AddReference must have been called to instantiate the class (Happens automatically from RakPeer::Startup()) + bool DeserializeCompressed(BitStream *bs, bool readLanguageId=false); + + /// Static version of the DeserializeCompressed() function + static bool DeserializeCompressed(char *str, BitStream *bs, bool readLanguageId=false); + + static const char *ToString(int64_t i); + static const char *ToString(uint64_t i); + + /// \internal + static size_t GetSizeToAllocate(size_t bytes) + { + const size_t smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2; + if (bytes<=smallStringSize) + return smallStringSize; + else + return bytes*2; + } + + /// \internal + struct SharedString + { + SimpleMutex *refCountMutex; + unsigned int refCount; + size_t bytesUsed; + char *bigString; + char *c_str; + char smallString[128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2]; + }; + + /// \internal + RakString( SharedString *_sharedString ); + + /// \internal + SharedString *sharedString; + +// static SimpleMutex poolMutex; +// static DataStructures::MemoryPool pool; + /// \internal + static SharedString emptyString; + + //static SharedString *sharedStringFreeList; + //static unsigned int sharedStringFreeListAllocationCount; + /// \internal + /// List of free objects to reduce memory reallocations + static DataStructures::List freeList; + + static int RakStringComp( RakString const &key, RakString const &data ); + + static void LockMutex(void); + static void UnlockMutex(void); + +protected: + void Allocate(size_t len); + void Assign(const char *str); + void Assign(const char *str, va_list ap); + + void Clone(void); + void Free(void); + unsigned char ToLower(unsigned char c); + unsigned char ToUpper(unsigned char c); + void Realloc(SharedString *sharedString, size_t bytes); +}; + +} + +const RakNet::RakString RAK_DLL_EXPORT operator+(const RakNet::RakString &lhs, const RakNet::RakString &rhs); + + +#endif diff --git a/src/raknet/RakThread.cpp b/src/raknet/RakThread.cpp new file mode 100755 index 0000000..268ee3a --- /dev/null +++ b/src/raknet/RakThread.cpp @@ -0,0 +1,163 @@ +#include "RakThread.h" +#include "RakAssert.h" +#include "RakNetDefines.h" +#include "RakSleep.h" +#include "RakMemoryOverride.h" + +using namespace RakNet; + + + + +#if defined(_WIN32) +#include "WindowsIncludes.h" +#include + #if !defined(_WIN32_WCE) + #include + #endif + + + + +#else +#include +#endif + + +#if defined(_WIN32_WCE) +int RakThread::Create( LPTHREAD_START_ROUTINE start_address, void *arglist, int priority) +#elif defined(_WIN32) +int RakThread::Create( unsigned __stdcall start_address( void* ), void *arglist, int priority) + + + +#else +int RakThread::Create( void* start_address( void* ), void *arglist, int priority) +#endif +{ +#ifdef _WIN32 + HANDLE threadHandle; + unsigned threadID = 0; + + +#if defined (_WIN32_WCE) + threadHandle = CreateThread(NULL,MAX_ALLOCA_STACK_ALLOCATION*2,start_address,arglist,0,(DWORD*)&threadID); + SetThreadPriority(threadHandle, priority); +#else + threadHandle = (HANDLE) _beginthreadex( NULL, MAX_ALLOCA_STACK_ALLOCATION*2, start_address, arglist, 0, &threadID ); +#endif + SetThreadPriority(threadHandle, priority); + + if (threadHandle==0) + { + return 1; + } + else + { + CloseHandle( threadHandle ); + return 0; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#else + pthread_t threadHandle; + // Create thread linux + pthread_attr_t attr; + sched_param param; + param.sched_priority=priority; + pthread_attr_init( &attr ); + pthread_attr_setschedparam(&attr, ¶m); + + + + + + pthread_attr_setstacksize(&attr, MAX_ALLOCA_STACK_ALLOCATION*2); + + pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_DETACHED ); + int res = pthread_create( &threadHandle, &attr, start_address, arglist ); + RakAssert(res==0 && "pthread_create in RakThread.cpp failed.") + return res; +#endif +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/RakThread.h b/src/raknet/RakThread.h new file mode 100755 index 0000000..e6bf005 --- /dev/null +++ b/src/raknet/RakThread.h @@ -0,0 +1,88 @@ +#ifndef __RAK_THREAD_H +#define __RAK_THREAD_H + +#if defined(_WIN32_WCE) +#include "WindowsIncludes.h" +#endif + +#include "Export.h" + + + + + + +namespace RakNet +{ + +/// To define a thread, use RAK_THREAD_DECLARATION(functionName); +#if defined(_WIN32_WCE) +#define RAK_THREAD_DECLARATION(functionName) DWORD WINAPI functionName(LPVOID arguments) + + +#elif defined(_WIN32) +#define RAK_THREAD_DECLARATION(functionName) unsigned __stdcall functionName( void* arguments ) + + +#else +#define RAK_THREAD_DECLARATION(functionName) void* functionName( void* arguments ) +#endif + +class RAK_DLL_EXPORT RakThread +{ +public: + + + + + /// Create a thread, simplified to be cross platform without all the extra junk + /// To then start that thread, call RakCreateThread(functionName, arguments); + /// \param[in] start_address Function you want to call + /// \param[in] arglist Arguments to pass to the function + /// \return 0=success. >0 = error code + + /* + nice value Win32 Priority + -20 to -16 THREAD_PRIORITY_HIGHEST + -15 to -6 THREAD_PRIORITY_ABOVE_NORMAL + -5 to +4 THREAD_PRIORITY_NORMAL + +5 to +14 THREAD_PRIORITY_BELOW_NORMAL + +15 to +19 THREAD_PRIORITY_LOWEST + */ +#if defined(_WIN32_WCE) + static int Create( LPTHREAD_START_ROUTINE start_address, void *arglist, int priority=0); + + +#elif defined(_WIN32) + static int Create( unsigned __stdcall start_address( void* ), void *arglist, int priority=0); + + + +#else + static int Create( void* start_address( void* ), void *arglist, int priority=0); +#endif + + + + + + + + + + + + + + + + + + + + +}; + +} + +#endif diff --git a/src/raknet/RakWString.cpp b/src/raknet/RakWString.cpp new file mode 100755 index 0000000..fbaea50 --- /dev/null +++ b/src/raknet/RakWString.cpp @@ -0,0 +1,345 @@ +#include "RakWString.h" +#include "BitStream.h" +#include +#include +#include + +using namespace RakNet; + +// From http://www.joelonsoftware.com/articles/Unicode.html +// Only code points 128 and above are stored using 2, 3, in fact, up to 6 bytes. +//#define MAX_BYTES_PER_UNICODE_CHAR 6 +#define MAX_BYTES_PER_UNICODE_CHAR 2 + +RakWString::RakWString() +{ + c_str=0; + c_strCharLength=0; +} +RakWString::RakWString( const RakString &right ) +{ + c_str=0; + c_strCharLength=0; + *this=right; +} +RakWString::RakWString( const char *input ) +{ + c_str=0; + c_strCharLength=0; + *this = input; +} +RakWString::RakWString( const wchar_t *input ) +{ + c_str=0; + c_strCharLength=0; + *this = input; +} +RakWString::RakWString( const RakWString & right) +{ + c_str=0; + c_strCharLength=0; + *this = right; +} +RakWString::~RakWString() +{ + rakFree_Ex(c_str,_FILE_AND_LINE_); +} +RakWString& RakWString::operator = ( const RakWString& right ) +{ + Clear(); + if (right.IsEmpty()) + return *this; + c_str = (wchar_t *) rakMalloc_Ex( (right.GetLength() + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + c_strCharLength=0; + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + c_strCharLength = right.GetLength(); + memcpy(c_str,right.C_String(),(right.GetLength() + 1) * MAX_BYTES_PER_UNICODE_CHAR); + + return *this; +} +RakWString& RakWString::operator = ( const RakString& right ) +{ + return *this = right.C_String(); +} +RakWString& RakWString::operator = ( const wchar_t * const str ) +{ + Clear(); + if (str==0) + return *this; + c_strCharLength = wcslen(str); + if (c_strCharLength==0) + return *this; + c_str = (wchar_t *) rakMalloc_Ex( (c_strCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + c_strCharLength=0; + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + wcscpy(c_str,str); + + return *this; +} +RakWString& RakWString::operator = ( wchar_t *str ) +{ + *this = ( const wchar_t * const) str; + return *this; +} +RakWString& RakWString::operator = ( const char * const str ) +{ + Clear(); + +// Not supported on android +#if !defined(ANDROID) + if (str==0) + return *this; + if (str[0]==0) + return *this; + + c_strCharLength = mbstowcs(NULL, str, 0); + c_str = (wchar_t *) rakMalloc_Ex( (c_strCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + c_strCharLength=0; + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + + c_strCharLength = mbstowcs(c_str, str, c_strCharLength+1); + if (c_strCharLength == (size_t) (-1)) + { + RAKNET_DEBUG_PRINTF("Couldn't convert string--invalid multibyte character.\n"); + Clear(); + return *this; + } +#else + // mbstowcs not supported on android + RakAssert("mbstowcs not supported on Android" && 0); +#endif // defined(ANDROID) + + return *this; +} +RakWString& RakWString::operator = ( char *str ) +{ + *this = ( const char * const) str; + return *this; +} +RakWString& RakWString::operator +=( const RakWString& right) +{ + if (right.IsEmpty()) + return *this; + size_t newCharLength = c_strCharLength + right.GetLength(); + wchar_t *newCStr; + bool isEmpty = IsEmpty(); + if (isEmpty) + newCStr = (wchar_t *) rakMalloc_Ex( (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + else + newCStr = (wchar_t *) rakRealloc_Ex( c_str, (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!newCStr) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + c_str = newCStr; + c_strCharLength = newCharLength; + if (isEmpty) + { + memcpy(newCStr,right.C_String(),(right.GetLength() + 1) * MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + wcscat(c_str, right.C_String()); + } + + return *this; +} +RakWString& RakWString::operator += ( const wchar_t * const right ) +{ + if (right==0) + return *this; + size_t rightLength = wcslen(right); + size_t newCharLength = c_strCharLength + rightLength; + wchar_t *newCStr; + bool isEmpty = IsEmpty(); + if (isEmpty) + newCStr = (wchar_t *) rakMalloc_Ex( (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + else + newCStr = (wchar_t *) rakRealloc_Ex( c_str, (newCharLength + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!newCStr) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return *this; + } + c_str = newCStr; + c_strCharLength = newCharLength; + if (isEmpty) + { + memcpy(newCStr,right,(rightLength + 1) * MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + wcscat(c_str, right); + } + + return *this; +} +RakWString& RakWString::operator += ( wchar_t *right ) +{ + return *this += (const wchar_t * const) right; +} +bool RakWString::operator==(const RakWString &right) const +{ + if (GetLength()!=right.GetLength()) + return false; + return wcscmp(c_str,right.C_String())==0; +} +bool RakWString::operator < ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())<0; +} +bool RakWString::operator <= ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())<=0; +} +bool RakWString::operator > ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())>0; +} +bool RakWString::operator >= ( const RakWString& right ) const +{ + return wcscmp(c_str,right.C_String())>=0; +} +bool RakWString::operator!=(const RakWString &right) const +{ + if (GetLength()!=right.GetLength()) + return true; + return wcscmp(c_str,right.C_String())!=0; +} +void RakWString::Set( wchar_t *str ) +{ + *this = str; +} +bool RakWString::IsEmpty(void) const +{ + return GetLength()==0; +} +size_t RakWString::GetLength(void) const +{ + return c_strCharLength; +} +unsigned long RakWString::ToInteger(const RakWString &rs) +{ + unsigned long hash = 0; + int c; + + const char *str = (const char *)rs.C_String(); + size_t i; + for (i=0; i < rs.GetLength()*MAX_BYTES_PER_UNICODE_CHAR*sizeof(wchar_t); i++) + { + c = *str++; + hash = c + (hash << 6) + (hash << 16) - hash; + } + + return hash; +} +int RakWString::StrCmp(const RakWString &right) const +{ + return wcscmp(C_String(), right.C_String()); +} +int RakWString::StrICmp(const RakWString &right) const +{ +#ifdef _WIN32 + return wcsicmp(C_String(), right.C_String()); +#else + // Not supported + return wcscmp(C_String(), right.C_String()); +#endif +} +void RakWString::Clear(void) +{ + rakFree_Ex(c_str,_FILE_AND_LINE_); + c_str=0; + c_strCharLength=0; +} +void RakWString::Printf(void) +{ + printf("%ls", C_String()); +} +void RakWString::FPrintf(FILE *fp) +{ + fprintf(fp,"%ls", C_String()); +} +void RakWString::Serialize(BitStream *bs) const +{ + bs->WriteCasted(c_strCharLength); + bs->WriteAlignedBytes((const unsigned char*) c_str,(const unsigned int) (c_strCharLength+1)*MAX_BYTES_PER_UNICODE_CHAR); +} +void RakWString::Serialize(const wchar_t * const str, BitStream *bs) +{ + size_t length = wcslen(str); + bs->WriteCasted(length); + bs->WriteAlignedBytes((const unsigned char*) str,(const unsigned int) length*MAX_BYTES_PER_UNICODE_CHAR); +} +bool RakWString::Deserialize(BitStream *bs) +{ + Clear(); + size_t length; + bs->ReadCasted(length); + if (length>0) + { + c_str = (wchar_t *) rakMalloc_Ex( (length + 1) * MAX_BYTES_PER_UNICODE_CHAR, _FILE_AND_LINE_); + if (!c_str) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return false; + } + c_strCharLength = (size_t) length; + return bs->ReadAlignedBytes((unsigned char*) c_str,(const unsigned int) (c_strCharLength+1)*MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + return true; + } +} +bool RakWString::Deserialize(wchar_t *str, BitStream *bs) +{ + size_t length; + bs->ReadCasted(length); + if (length>0) + { + return bs->ReadAlignedBytes((unsigned char*) str,(const unsigned int) (length+1)*MAX_BYTES_PER_UNICODE_CHAR); + } + else + { + wcscpy(str,L""); + } + return true; +} + +/* +RakNet::BitStream bsTest; +RakNet::RakWString testString("cat"), testString2; +testString = "Hllo"; +testString = L"Hello"; +testString += L" world"; +testString2 += testString2; +RakNet::RakWString ts3(L" from here"); +testString2+=ts3; +RakNet::RakWString ts4(L" 222"); +testString2=ts4; +RakNet::RakString rs("rakstring"); +testString2+=rs; +testString2=rs; +bsTest.Write(L"one"); +bsTest.Write(testString2); +bsTest.SetReadOffset(0); +RakNet::RakWString ts5, ts6; +wchar_t buff[99]; +wchar_t *wptr = (wchar_t*)buff; +bsTest.Read(wptr); +bsTest.Read(ts5); +*/ diff --git a/src/raknet/RakWString.h b/src/raknet/RakWString.h new file mode 100755 index 0000000..e3baa7e --- /dev/null +++ b/src/raknet/RakWString.h @@ -0,0 +1,113 @@ +#ifndef __RAK_W_STRING_H +#define __RAK_W_STRING_H + +#include "Export.h" +#include "RakNetTypes.h" // int64_t +#include "RakString.h" + +#ifdef _WIN32 + + + +#include "WindowsIncludes.h" +#endif + +namespace RakNet +{ + /// \brief String class for Unicode + class RAK_DLL_EXPORT RakWString + { + public: + // Constructors + RakWString(); + RakWString( const RakString &right ); + RakWString( const wchar_t *input ); + RakWString( const RakWString & right); + RakWString( const char *input ); + ~RakWString(); + + /// Implicit return of wchar_t* + operator wchar_t* () const {if (c_str) return c_str; return (wchar_t*) L"";} + + /// Same as std::string::c_str + const wchar_t* C_String(void) const {if (c_str) return c_str; return (const wchar_t*) L"";} + + /// Assignment operators + RakWString& operator = ( const RakWString& right ); + RakWString& operator = ( const RakString& right ); + RakWString& operator = ( const wchar_t * const str ); + RakWString& operator = ( wchar_t *str ); + RakWString& operator = ( const char * const str ); + RakWString& operator = ( char *str ); + + /// Concatenation + RakWString& operator +=( const RakWString& right); + RakWString& operator += ( const wchar_t * const right ); + RakWString& operator += ( wchar_t *right ); + + /// Equality + bool operator==(const RakWString &right) const; + + // Comparison + bool operator < ( const RakWString& right ) const; + bool operator <= ( const RakWString& right ) const; + bool operator > ( const RakWString& right ) const; + bool operator >= ( const RakWString& right ) const; + + /// Inequality + bool operator!=(const RakWString &right) const; + + /// Set the value of the string + void Set( wchar_t *str ); + + /// Returns if the string is empty. Also, C_String() would return "" + bool IsEmpty(void) const; + + /// Returns the length of the string + size_t GetLength(void) const; + + /// Has the string into an unsigned int + static unsigned long ToInteger(const RakWString &rs); + + /// Compare strings (case sensitive) + int StrCmp(const RakWString &right) const; + + /// Compare strings (not case sensitive) + int StrICmp(const RakWString &right) const; + + /// Clear the string + void Clear(void); + + /// Print the string to the screen + void Printf(void); + + /// Print the string to a file + void FPrintf(FILE *fp); + + /// Serialize to a bitstream, uncompressed (slightly faster) + /// \param[out] bs Bitstream to serialize to + void Serialize(BitStream *bs) const; + + /// Static version of the Serialize function + static void Serialize(const wchar_t * const str, BitStream *bs); + + /// Deserialize what was written by Serialize + /// \param[in] bs Bitstream to serialize from + /// \return true if the deserialization was successful + bool Deserialize(BitStream *bs); + + /// Static version of the Deserialize() function + static bool Deserialize(wchar_t *str, BitStream *bs); + + + protected: + wchar_t* c_str; + size_t c_strCharLength; + }; + +} + +const RakNet::RakWString RAK_DLL_EXPORT operator+(const RakNet::RakWString &lhs, const RakNet::RakWString &rhs); + + +#endif diff --git a/src/raknet/Rand.cpp b/src/raknet/Rand.cpp new file mode 100755 index 0000000..c3d8413 --- /dev/null +++ b/src/raknet/Rand.cpp @@ -0,0 +1,274 @@ +/** +* +* Grabbed by Kevin from http://www.math.keio.ac.jp/~matumoto/cokus.c +* This is the ``Mersenne Twister'' random number generator MT19937, which +* generates pseudorandom integers uniformly distributed in 0..(2^32 - 1) +* starting from any odd seed in 0..(2^32 - 1). This version is a recode +* by Shawn Cokus (Cokus@math.washington.edu) on March 8, 1998 of a version by +* Takuji Nishimura (who had suggestions from Topher Cooper and Marc Rieffel in +* July-August 1997). +* +* Effectiveness of the recoding (on Goedel2.math.washington.edu, a DEC Alpha +* running OSF/1) using GCC -O3 as a compiler: before recoding: 51.6 sec. to +* generate 300 million random numbers; after recoding: 24.0 sec. for the same +* (i.e., 46.5% of original time), so speed is now about 12.5 million random +* number generations per second on this machine. +* +* According to the URL +* (and paraphrasing a bit in places), the Mersenne Twister is ``designed +* with consideration of the flaws of various existing generators,'' has +* a period of 2^19937 - 1, gives a sequence that is 623-dimensionally +* equidistributed, and ``has passed many stringent tests, including the +* die-hard test of G. Marsaglia and the load test of P. Hellekalek and +* S. Wegenkittl.'' It is efficient in memory usage (typically using 2506 +* to 5012 bytes of static data, depending on data type sizes, and the code +* is quite short as well). It generates random numbers in batches of 624 +* at a time, so the caching and pipelining of modern systems is exploited. +* It is also divide- and mod-free. +* +* Licensing is free http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/elicense.html +* +* The code as Shawn received it included the following notice: +* +* Copyright (C) 1997 Makoto Matsumoto and Takuji Nishimura. When +* you use this, send an e-mail to with +* an appropriate reference to your work. +* +* It would be nice to CC: when you write. +*/ + +#include +#include +#include +#include "Rand.h" + +// +// uint32 must be an unsigned integer type capable of holding at least 32 +// bits; exactly 32 should be fastest, but 64 is better on an Alpha with +// GCC at -O3 optimization so try your options and see what's best for you +// + +//typedef unsigned int uint32; + +#define N (624) // length of state vector +#define M (397) // a period parameter +#define K (0x9908B0DFU) // a magic constant +#define hiBit(u) ((u) & 0x80000000U) // mask all but highest bit of u +#define loBit(u) ((u) & 0x00000001U) // mask all but lowest bit of u +#define loBits(u) ((u) & 0x7FFFFFFFU) // mask the highest bit of u +#define mixBits(u, v) (hiBit(u)|loBits(v)) // move hi bit of u to hi bit of v + +static unsigned int _state[ N + 1 ]; // state vector + 1 extra to not violate ANSI C +static unsigned int *_next; // next random value is computed from here +static int _left = -1; // can *next++ this many times before reloading + +using namespace RakNet; + +void seedMT( unsigned int seed, unsigned int *state, unsigned int *&next, int &left ); +unsigned int reloadMT( unsigned int *state, unsigned int *&next, int &left ); +unsigned int randomMT( unsigned int *state, unsigned int *&next, int &left ); +void fillBufferMT( void *buffer, unsigned int bytes, unsigned int *state, unsigned int *&next, int &left ); +float frandomMT( unsigned int *state, unsigned int *&next, int &left ); + +// Uses global vars +void seedMT( unsigned int seed ) +{ + seedMT(seed, _state, _next, _left); +} +unsigned int reloadMT( void ) +{ + return reloadMT(_state, _next, _left); +} +unsigned int randomMT( void ) +{ + return randomMT(_state, _next, _left); +} +float frandomMT( void ) +{ + return frandomMT(_state, _next, _left); +} +void fillBufferMT( void *buffer, unsigned int bytes ) +{ + fillBufferMT(buffer, bytes, _state, _next, _left); +} + +void seedMT( unsigned int seed, unsigned int *state, unsigned int *&next, int &left ) // Defined in cokus_c.c +{ + (void) next; + + // + // We initialize state[0..(N-1)] via the generator + // + // x_new = (69069 * x_old) mod 2^32 + // + // from Line 15 of Table 1, p. 106, Sec. 3.3.4 of Knuth's + // _The Art of Computer Programming_, Volume 2, 3rd ed. + // + // Notes (SJC): I do not know what the initial state requirements + // of the Mersenne Twister are, but it seems this seeding generator + // could be better. It achieves the maximum period for its modulus + // (2^30) iff x_initial is odd (p. 20-21, Sec. 3.2.1.2, Knuth); if + // x_initial can be even, you have sequences like 0, 0, 0, ...; + // 2^31, 2^31, 2^31, ...; 2^30, 2^30, 2^30, ...; 2^29, 2^29 + 2^31, + // 2^29, 2^29 + 2^31, ..., etc. so I force seed to be odd below. + // + // Even if x_initial is odd, if x_initial is 1 mod 4 then + // + // the lowest bit of x is always 1, + // the next-to-lowest bit of x is always 0, + // the 2nd-from-lowest bit of x alternates ... 0 1 0 1 0 1 0 1 ... , + // the 3rd-from-lowest bit of x 4-cycles ... 0 1 1 0 0 1 1 0 ... , + // the 4th-from-lowest bit of x has the 8-cycle ... 0 0 0 1 1 1 1 0 ... , + // ... + // + // and if x_initial is 3 mod 4 then + // + // the lowest bit of x is always 1, + // the next-to-lowest bit of x is always 1, + // the 2nd-from-lowest bit of x alternates ... 0 1 0 1 0 1 0 1 ... , + // the 3rd-from-lowest bit of x 4-cycles ... 0 0 1 1 0 0 1 1 ... , + // the 4th-from-lowest bit of x has the 8-cycle ... 0 0 1 1 1 1 0 0 ... , + // ... + // + // The generator's potency (min. s>=0 with (69069-1)^s = 0 mod 2^32) is + // 16, which seems to be alright by p. 25, Sec. 3.2.1.3 of Knuth. It + // also does well in the dimension 2..5 spectral tests, but it could be + // better in dimension 6 (Line 15, Table 1, p. 106, Sec. 3.3.4, Knuth). + // + // Note that the random number user does not see the values generated + // here directly since reloadMT() will always munge them first, so maybe + // none of all of this matters. In fact, the seed values made here could + // even be extra-special desirable if the Mersenne Twister theory says + // so-- that's why the only change I made is to restrict to odd seeds. + // + + register unsigned int x = ( seed | 1U ) & 0xFFFFFFFFU, *s = state; + register int j; + + for ( left = 0, *s++ = x, j = N; --j; + *s++ = ( x *= 69069U ) & 0xFFFFFFFFU ) + + ; +} + + +unsigned int reloadMT( unsigned int *state, unsigned int *&next, int &left ) +{ + register unsigned int * p0 = state, *p2 = state + 2, *pM = state + M, s0, s1; + register int j; + + if ( left < -1 ) + seedMT( 4357U ); + + left = N - 1, next = state + 1; + + for ( s0 = state[ 0 ], s1 = state[ 1 ], j = N - M + 1; --j; s0 = s1, s1 = *p2++ ) + * p0++ = *pM++ ^ ( mixBits( s0, s1 ) >> 1 ) ^ ( loBit( s1 ) ? K : 0U ); + + for ( pM = state, j = M; --j; s0 = s1, s1 = *p2++ ) + * p0++ = *pM++ ^ ( mixBits( s0, s1 ) >> 1 ) ^ ( loBit( s1 ) ? K : 0U ); + + s1 = state[ 0 ], *p0 = *pM ^ ( mixBits( s0, s1 ) >> 1 ) ^ ( loBit( s1 ) ? K : 0U ); + + s1 ^= ( s1 >> 11 ); + + s1 ^= ( s1 << 7 ) & 0x9D2C5680U; + + s1 ^= ( s1 << 15 ) & 0xEFC60000U; + + return ( s1 ^ ( s1 >> 18 ) ); +} + + +unsigned int randomMT( unsigned int *state, unsigned int *&next, int &left ) +{ + unsigned int y; + + if ( --left < 0 ) + return ( reloadMT(state, next, left) ); + + y = *next++; + + y ^= ( y >> 11 ); + + y ^= ( y << 7 ) & 0x9D2C5680U; + + y ^= ( y << 15 ) & 0xEFC60000U; + + return ( y ^ ( y >> 18 ) ); + + // This change made so the value returned is in the same range as what rand() returns + // return(y ^ (y >> 18)) % 32767; +} + +void fillBufferMT( void *buffer, unsigned int bytes, unsigned int *state, unsigned int *&next, int &left ) +{ + unsigned int offset=0; + unsigned int r; + while (bytes-offset>=sizeof(r)) + { + r = randomMT(state, next, left); + memcpy((char*)buffer+offset, &r, sizeof(r)); + offset+=sizeof(r); + } + + r = randomMT(state, next, left); + memcpy((char*)buffer+offset, &r, bytes-offset); +} + +float frandomMT( unsigned int *state, unsigned int *&next, int &left ) +{ + return ( float ) ( ( double ) randomMT(state, next, left) / 4294967296.0 ); +} +RakNetRandom::RakNetRandom() +{ + left=-1; +} +RakNetRandom::~RakNetRandom() +{ +} +void RakNetRandom::SeedMT( unsigned int seed ) +{ + printf("%i\n",seed); + seedMT(seed, state, next, left); +} + +unsigned int RakNetRandom::ReloadMT( void ) +{ + return reloadMT(state, next, left); +} + +unsigned int RakNetRandom::RandomMT( void ) +{ + return randomMT(state, next, left); +} + +float RakNetRandom::FrandomMT( void ) +{ + return frandomMT(state, next, left); +} + +void RakNetRandom::FillBufferMT( void *buffer, unsigned int bytes ) +{ + fillBufferMT(buffer, bytes, state, next, left); +} + +/* +int main(void) +{ +int j; + +// you can seed with any uint32, but the best are odds in 0..(2^32 - 1) + +seedMT(4357U); + +// print the first 2,002 random numbers seven to a line as an example + +for(j=0; j<2002; j++) +RAKNET_DEBUG_PRINTF(" %10lu%s", (unsigned int) randomMT(), (j%7)==6 ? "\n" : ""); + +return(EXIT_SUCCESS); +} + +*/ + diff --git a/src/raknet/Rand.h b/src/raknet/Rand.h new file mode 100755 index 0000000..c7efab3 --- /dev/null +++ b/src/raknet/Rand.h @@ -0,0 +1,60 @@ +/// \file +/// \brief \b [Internal] Random number generator +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + + +#ifndef __RAND_H +#define __RAND_H + +#include "Export.h" + +/// Initialise seed for Random Generator +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +/// \param[in] seed The seed value for the random number generator. +extern void RAK_DLL_EXPORT seedMT( unsigned int seed ); + +/// \internal +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +extern unsigned int RAK_DLL_EXPORT reloadMT( void ); + +/// Gets a random unsigned int +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +/// \return an integer random value. +extern unsigned int RAK_DLL_EXPORT randomMT( void ); + +/// Gets a random float +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +/// \return 0 to 1.0f, inclusive +extern float RAK_DLL_EXPORT frandomMT( void ); + +/// Randomizes a buffer +/// \note not threadSafe, use an instance of RakNetRandom if necessary per thread +extern void RAK_DLL_EXPORT fillBufferMT( void *buffer, unsigned int bytes ); + +namespace RakNet { + +// Same thing as above functions, but not global +class RAK_DLL_EXPORT RakNetRandom +{ +public: + RakNetRandom(); + ~RakNetRandom(); + void SeedMT( unsigned int seed ); + unsigned int ReloadMT( void ); + unsigned int RandomMT( void ); + float FrandomMT( void ); + void FillBufferMT( void *buffer, unsigned int bytes ); + +protected: + unsigned int state[ 624 + 1 ]; + unsigned int *next; + int left; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/ReadyEvent.cpp b/src/raknet/ReadyEvent.cpp new file mode 100755 index 0000000..277efb4 --- /dev/null +++ b/src/raknet/ReadyEvent.cpp @@ -0,0 +1,564 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReadyEvent==1 + +#include "ReadyEvent.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakAssert.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +int RakNet::ReadyEvent::RemoteSystemCompBySystemAddress( const SystemAddress &key, const RemoteSystem &data ) +{ + if (key < data.systemAddress) + return -1; + else if (key==data.systemAddress) + return 0; + else + return 1; +} + +int RakNet::ReadyEvent::ReadyEventNodeComp( const int &key, ReadyEvent::ReadyEventNode * const &data ) +{ + if (key < data->eventId) + return -1; + else if (key==data->eventId) + return 0; + else + return 1; +} + +STATIC_FACTORY_DEFINITIONS(ReadyEvent,ReadyEvent); + +ReadyEvent::ReadyEvent() +{ + channel=0; +} + +ReadyEvent::~ReadyEvent() +{ + Clear(); +} + + +bool ReadyEvent::SetEvent(int eventId, bool isReady) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists==false) + { + // Totally new event + CreateNewEvent(eventId, isReady); + } + else + { + return SetEventByIndex(eventIndex, isReady); + } + return true; +} +bool ReadyEvent::ForceCompletion(int eventId) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists==false) + { + // Totally new event + CreateNewEvent(eventId, true); + eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + } + + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + ren->eventStatus=ID_READY_EVENT_FORCE_ALL_SET; + UpdateReadyStatus(eventIndex); + + return true; +} +bool ReadyEvent::DeleteEvent(int eventId) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + RakNet::OP_DELETE(readyEventNodeList[eventIndex], _FILE_AND_LINE_); + readyEventNodeList.RemoveAtIndex(eventIndex); + return true; + } + return false; +} +bool ReadyEvent::IsEventSet(int eventId) +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[eventIndex]->eventStatus==ID_READY_EVENT_SET || readyEventNodeList[eventIndex]->eventStatus==ID_READY_EVENT_ALL_SET; + } + return false; +} +bool ReadyEvent::IsEventCompletionProcessing(int eventId) const +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + bool anyAllReady=false; + bool allAllReady=true; + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return false; + for (unsigned i=0; i < ren->systemList.Size(); i++) + { + if (ren->systemList[i].lastReceivedStatus==ID_READY_EVENT_ALL_SET) + anyAllReady=true; + else + allAllReady=false; + } + return anyAllReady==true && allAllReady==false; + } + return false; +} +bool ReadyEvent::IsEventCompleted(int eventId) const +{ + bool objectExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return IsEventCompletedByIndex(eventIndex); + } + return false; +} + +bool ReadyEvent::HasEvent(int eventId) +{ + return readyEventNodeList.HasData(eventId); +} + +unsigned ReadyEvent::GetEventListSize(void) const +{ + return readyEventNodeList.Size(); +} + +int ReadyEvent::GetEventAtIndex(unsigned index) const +{ + return readyEventNodeList[index]->eventId; +} + +bool ReadyEvent::AddToWaitList(int eventId, SystemAddress address) +{ + bool eventExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &eventExists); + if (eventExists==false) + eventIndex=CreateNewEvent(eventId, false); + + // Don't do this, otherwise if we are trying to start a 3 player game, it will not allow the 3rd player to hit ready if the first two players have already done so + //if (IsLocked(eventIndex)) + // return false; // Not in the list, but event is already completed, or is starting to complete, and adding more waiters would fail this. + + unsigned i; + unsigned numAdded=0; + if (address==UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < rakPeerInterface->GetMaximumNumberOfPeers(); i++) + { + SystemAddress internalAddress = rakPeerInterface->GetSystemAddressFromIndex(i); + if (internalAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + numAdded+=AddToWaitListInternal(eventIndex, internalAddress); + } + } + } + else + { + numAdded=AddToWaitListInternal(eventIndex, address); + } + + if (numAdded>0) + UpdateReadyStatus(eventIndex); + return numAdded>0; +} +bool ReadyEvent::RemoveFromWaitList(int eventId, SystemAddress address) +{ + bool eventExists; + unsigned eventIndex = readyEventNodeList.GetIndexFromKey(eventId, &eventExists); + if (eventExists) + { + if (address==UNASSIGNED_SYSTEM_ADDRESS) + { + // Remove all waiters + readyEventNodeList[eventIndex]->systemList.Clear(false, _FILE_AND_LINE_); + UpdateReadyStatus(eventIndex); + } + else + { + bool systemExists; + unsigned systemIndex = readyEventNodeList[eventIndex]->systemList.GetIndexFromKey(address, &systemExists); + if (systemExists) + { + bool isCompleted = IsEventCompletedByIndex(eventIndex); + readyEventNodeList[eventIndex]->systemList.RemoveAtIndex(systemIndex); + + if (isCompleted==false && IsEventCompletedByIndex(eventIndex)) + PushCompletionPacket(readyEventNodeList[eventIndex]->eventId); + + UpdateReadyStatus(eventIndex); + + return true; + } + } + } + + return false; +} +bool ReadyEvent::IsInWaitList(int eventId, SystemAddress address) +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[readyIndex]->systemList.HasData(address); + } + return false; +} + +unsigned ReadyEvent::GetRemoteWaitListSize(int eventId) const +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[readyIndex]->systemList.Size(); + } + return 0; +} + +SystemAddress ReadyEvent::GetFromWaitListAtIndex(int eventId, unsigned index) const +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + return readyEventNodeList[readyIndex]->systemList[index].systemAddress; + } + return UNASSIGNED_SYSTEM_ADDRESS; +} +ReadyEventSystemStatus ReadyEvent::GetReadyStatus(int eventId, SystemAddress address) +{ + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + ReadyEventNode *ren = readyEventNodeList[readyIndex]; + unsigned systemIndex = ren->systemList.GetIndexFromKey(address, &objectExists); + if (objectExists==false) + return RES_NOT_WAITING; + if (ren->systemList[systemIndex].lastReceivedStatus==ID_READY_EVENT_SET) + return RES_READY; + if (ren->systemList[systemIndex].lastReceivedStatus==ID_READY_EVENT_UNSET) + return RES_WAITING; + if (ren->systemList[systemIndex].lastReceivedStatus==ID_READY_EVENT_ALL_SET) + return RES_ALL_READY; + } + + return RES_UNKNOWN_EVENT; +} +void ReadyEvent::SetSendChannel(unsigned char newChannel) +{ + channel=newChannel; +} +PluginReceiveResult ReadyEvent::OnReceive(Packet *packet) +{ + unsigned char packetIdentifier; + packetIdentifier = ( unsigned char ) packet->data[ 0 ]; + +// bool doPrint = packet->systemAddress.GetPort()==60002 || rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).GetPort()==60002; + + switch (packetIdentifier) + { + case ID_READY_EVENT_UNSET: + case ID_READY_EVENT_SET: + case ID_READY_EVENT_ALL_SET: +// if (doPrint) {if (packet->systemAddress.GetPort()==60002) RAKNET_DEBUG_PRINTF("FROM 60002: "); else if (rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).port==60002) RAKNET_DEBUG_PRINTF("TO 60002: "); RAKNET_DEBUG_PRINTF("ID_READY_EVENT_SET\n");} + OnReadyEventPacketUpdate(packet); + return RR_CONTINUE_PROCESSING; + case ID_READY_EVENT_FORCE_ALL_SET: + OnReadyEventForceAllSet(packet); + return RR_CONTINUE_PROCESSING; + case ID_READY_EVENT_QUERY: +// if (doPrint) {if (packet->systemAddress.GetPort()==60002) RAKNET_DEBUG_PRINTF("FROM 60002: "); else if (rakPeerInterface->GetInternalID(UNASSIGNED_SYSTEM_ADDRESS).port==60002) RAKNET_DEBUG_PRINTF("TO 60002: "); RAKNET_DEBUG_PRINTF("ID_READY_EVENT_QUERY\n");} + OnReadyEventQuery(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} +bool ReadyEvent::AddToWaitListInternal(unsigned eventIndex, SystemAddress address) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + bool objectExists; + unsigned systemIndex = ren->systemList.GetIndexFromKey(address, &objectExists); + if (objectExists==false) + { + RemoteSystem rs; + rs.lastReceivedStatus=ID_READY_EVENT_UNSET; + rs.lastSentStatus=ID_READY_EVENT_UNSET; + rs.systemAddress=address; + ren->systemList.InsertAtIndex(rs,systemIndex, _FILE_AND_LINE_); + + SendReadyStateQuery(ren->eventId, address); + return true; + } + return false; +} +void ReadyEvent::OnReadyEventForceAllSet(Packet *packet) +{ + RakNet::BitStream incomingBitStream(packet->data, packet->length, false); + incomingBitStream.IgnoreBits(8); + int eventId; + incomingBitStream.Read(eventId); + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + ReadyEventNode *ren = readyEventNodeList[readyIndex]; + if (ren->eventStatus!=ID_READY_EVENT_FORCE_ALL_SET) + { + ren->eventStatus=ID_READY_EVENT_FORCE_ALL_SET; + PushCompletionPacket(ren->eventId); + } + } +} +void ReadyEvent::OnReadyEventPacketUpdate(Packet *packet) +{ + RakNet::BitStream incomingBitStream(packet->data, packet->length, false); + incomingBitStream.IgnoreBits(8); + int eventId; + incomingBitStream.Read(eventId); + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + ReadyEventNode *ren = readyEventNodeList[readyIndex]; + bool systemExists; + unsigned systemIndex = ren->systemList.GetIndexFromKey(packet->systemAddress, &systemExists); + if (systemExists) + { + // Just return if no change + if (ren->systemList[systemIndex].lastReceivedStatus==packet->data[0]) + return; + + bool wasCompleted = IsEventCompletedByIndex(readyIndex); + ren->systemList[systemIndex].lastReceivedStatus=packet->data[0]; + // If forced all set, doesn't matter what the new packet is + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return; + UpdateReadyStatus(readyIndex); + if (wasCompleted==false && IsEventCompletedByIndex(readyIndex)) + PushCompletionPacket(readyIndex); + } + } +} +void ReadyEvent::OnReadyEventQuery(Packet *packet) +{ + RakNet::BitStream incomingBitStream(packet->data, packet->length, false); + incomingBitStream.IgnoreBits(8); + int eventId; + incomingBitStream.Read(eventId); + bool objectExists; + unsigned readyIndex = readyEventNodeList.GetIndexFromKey(eventId, &objectExists); + if (objectExists) + { + unsigned systemIndex = readyEventNodeList[readyIndex]->systemList.GetIndexFromKey(packet->systemAddress,&objectExists); + // Force the non-default send, because our initial send may have arrived at a system that didn't yet create the ready event + if (objectExists) + SendReadyUpdate(readyIndex, systemIndex, true); + } +} +void ReadyEvent::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) systemAddress; + (void) rakNetGUID; + (void) lostConnectionReason; + + RemoveFromAllLists(systemAddress); +} +void ReadyEvent::OnRakPeerShutdown(void) +{ + Clear(); +} + +bool ReadyEvent::SetEventByIndex(int eventIndex, bool isReady) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + if ((ren->eventStatus==ID_READY_EVENT_ALL_SET || ren->eventStatus==ID_READY_EVENT_SET) && isReady==true) + return true; // Success - no change + if (ren->eventStatus==ID_READY_EVENT_UNSET && isReady==false) + return true; // Success - no change + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return true; // Can't change + + if (isReady) + ren->eventStatus=ID_READY_EVENT_SET; + else + ren->eventStatus=ID_READY_EVENT_UNSET; + + UpdateReadyStatus(eventIndex); + + // Check if now completed, and if so, tell the user about it + if (IsEventCompletedByIndex(eventIndex)) + { + PushCompletionPacket(ren->eventId); + } + + return true; +} + +bool ReadyEvent::IsEventCompletedByIndex(unsigned eventIndex) const +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + unsigned i; + if (ren->eventStatus==ID_READY_EVENT_FORCE_ALL_SET) + return true; + if (ren->eventStatus!=ID_READY_EVENT_ALL_SET) + return false; + for (i=0; i < ren->systemList.Size(); i++) + if (ren->systemList[i].lastReceivedStatus!=ID_READY_EVENT_ALL_SET) + return false; + return true; +} + +void ReadyEvent::Clear(void) +{ + unsigned i; + for (i=0; i < readyEventNodeList.Size(); i++) + { + RakNet::OP_DELETE(readyEventNodeList[i], _FILE_AND_LINE_); + } + readyEventNodeList.Clear(false, _FILE_AND_LINE_); +} + +unsigned ReadyEvent::CreateNewEvent(int eventId, bool isReady) +{ + ReadyEventNode *ren = RakNet::OP_NEW( _FILE_AND_LINE_ ); + ren->eventId=eventId; + if (isReady==false) + ren->eventStatus=ID_READY_EVENT_UNSET; + else + ren->eventStatus=ID_READY_EVENT_SET; + return readyEventNodeList.Insert(eventId, ren, true, _FILE_AND_LINE_); +} +void ReadyEvent::UpdateReadyStatus(unsigned eventIndex) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + bool anyUnset; + unsigned i; + if (ren->eventStatus==ID_READY_EVENT_SET) + { + // If you are set, and no other systems are ID_READY_EVENT_UNSET, then change your status to ID_READY_EVENT_ALL_SET + anyUnset=false; + for (i=0; i < ren->systemList.Size(); i++) + { + if (ren->systemList[i].lastReceivedStatus==ID_READY_EVENT_UNSET) + { + anyUnset=true; + break; + } + } + if (anyUnset==false) + { + ren->eventStatus=ID_READY_EVENT_ALL_SET; + } + } + else if (ren->eventStatus==ID_READY_EVENT_ALL_SET) + { + // If you are all set, and any systems are ID_READY_EVENT_UNSET, then change your status to ID_READY_EVENT_SET + anyUnset=false; + for (i=0; i < ren->systemList.Size(); i++) + { + if (ren->systemList[i].lastReceivedStatus==ID_READY_EVENT_UNSET) + { + anyUnset=true; + break; + } + } + if (anyUnset==true) + { + ren->eventStatus=ID_READY_EVENT_SET; + } + } + BroadcastReadyUpdate(eventIndex, false); +} +void ReadyEvent::SendReadyUpdate(unsigned eventIndex, unsigned systemIndex, bool forceIfNotDefault) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + RakNet::BitStream bs; + // I do this rather than write true or false, so users that do not use BitStreams can still read the data + if ((ren->eventStatus!=ren->systemList[systemIndex].lastSentStatus) || + (forceIfNotDefault && ren->eventStatus!=ID_READY_EVENT_UNSET)) + { + bs.Write(ren->eventStatus); + bs.Write(ren->eventId); + SendUnified(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, channel, ren->systemList[systemIndex].systemAddress, false); + + ren->systemList[systemIndex].lastSentStatus=ren->eventStatus; + } + +} +void ReadyEvent::BroadcastReadyUpdate(unsigned eventIndex, bool forceIfNotDefault) +{ + ReadyEventNode *ren = readyEventNodeList[eventIndex]; + unsigned systemIndex; + for (systemIndex=0; systemIndex < ren->systemList.Size(); systemIndex++) + { + SendReadyUpdate(eventIndex, systemIndex, forceIfNotDefault); + } +} +void ReadyEvent::SendReadyStateQuery(unsigned eventId, SystemAddress address) +{ + RakNet::BitStream bs; + bs.Write((MessageID)ID_READY_EVENT_QUERY); + bs.Write(eventId); + SendUnified(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, channel, address, false); +} +void ReadyEvent::RemoveFromAllLists(SystemAddress address) +{ + unsigned eventIndex; + for (eventIndex=0; eventIndex < readyEventNodeList.Size(); eventIndex++) + { + bool isCompleted = IsEventCompletedByIndex(eventIndex); + bool systemExists; + unsigned systemIndex; + + systemIndex = readyEventNodeList[eventIndex]->systemList.GetIndexFromKey(address, &systemExists); + if (systemExists) + readyEventNodeList[eventIndex]->systemList.RemoveAtIndex(systemIndex); + + UpdateReadyStatus(eventIndex); + + if (isCompleted==false && IsEventCompletedByIndex(eventIndex)) + PushCompletionPacket(readyEventNodeList[eventIndex]->eventId); + } +} +void ReadyEvent::PushCompletionPacket(unsigned eventId) +{ + (void) eventId; + // Not necessary + /* + // Pass a packet to the user that we are now completed, as setting ourselves to signaled was the last thing being waited on + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(int)); + RakNet::BitStream bs(p->data, sizeof(MessageID)+sizeof(int), false); + bs.SetWriteOffset(0); + bs.Write((MessageID)ID_READY_EVENT_ALL_SET); + bs.Write(eventId); + rakPeerInterface->PushBackPacket(p, false); + */ +} +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ReadyEvent.h b/src/raknet/ReadyEvent.h new file mode 100755 index 0000000..a6d516d --- /dev/null +++ b/src/raknet/ReadyEvent.h @@ -0,0 +1,234 @@ +/// \file +/// \brief Ready event plugin. This enables a set of systems to create a signal event, set this signal as ready or unready, and to trigger the event when all systems are ready +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReadyEvent==1 + +#ifndef __READY_EVENT_H +#define __READY_EVENT_H + +#include "PluginInterface2.h" +#include "DS_OrderedList.h" + +namespace RakNet { + +class RakPeerInterface; + +/// \defgroup READY_EVENT_GROUP ReadyEvent +/// \brief Peer to peer synchronized ready and unready events +/// \details +/// \ingroup PLUGINS_GROUP + +/// \ingroup READY_EVENT_GROUP +/// Returns the status of a remote system when querying with ReadyEvent::GetReadyStatus +enum ReadyEventSystemStatus +{ + /// ----------- Normal states --------------- + /// The remote system is not in the wait list, and we have never gotten a ready or complete message from it. + /// This is the default state for valid events + RES_NOT_WAITING, + /// We are waiting for this remote system to call SetEvent(thisEvent,true). + RES_WAITING, + /// The remote system called SetEvent(thisEvent,true), but it still waiting for other systems before completing the ReadyEvent. + RES_READY, + /// The remote system called SetEvent(thisEvent,true), and is no longer waiting for any other systems. + /// This remote system has completed the ReadyEvent + RES_ALL_READY, + + /// Error code, we couldn't look up the system because the event was unknown + RES_UNKNOWN_EVENT, +}; + +/// \brief Peer to peer synchronized ready and unready events +/// \details For peer to peer networks in a fully connected mesh.
    +/// Solves the problem of how to tell if all peers, relative to all other peers, are in a certain ready state.
    +/// For example, if A is connected to B and C, A may see that B and C are ready, but does not know if B is ready to C, or vice-versa.
    +/// This plugin uses two stages to solve that problem, first, everyone I know about is ready. Second, everyone I know about is ready to everyone they know about.
    +/// The user will get ID_READY_EVENT_SET and ID_READY_EVENT_UNSET as the signal flag is set or unset
    +/// The user will get ID_READY_EVENT_ALL_SET when all systems are done waiting for all other systems, in which case the event is considered complete, and no longer tracked.
    +/// \sa FullyConnectedMesh2 +/// \ingroup READY_EVENT_GROUP +class ReadyEvent : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(ReadyEvent) + + // Constructor + ReadyEvent(); + + // Destructor + virtual ~ReadyEvent(); + + // -------------------------------------------------------------------------------------------- + // User functions + // -------------------------------------------------------------------------------------------- + /// Sets or updates the initial ready state for our local system. + /// If eventId is an unknown event the event is created. + /// If eventId was previously used and you want to reuse it, call DeleteEvent first, or else you will keep the same event signals from before + /// Systems previously or later added through AddToWaitList() with the same \a eventId when isReady=true will get ID_READY_EVENT_SET + /// Systems previously added through AddToWaitList with the same \a eventId will get ID_READY_EVENT_UNSET + /// For both ID_READY_EVENT_SET and ID_READY_EVENT_UNSET, eventId is encoded in bytes 1 through 1+sizeof(int) + /// \param[in] eventId A user-defined identifier to wait on. This can be a sequence counter, an event identifier, or anything else you want. + /// \param[in] isReady True to signal we are ready to proceed with this event, false to unsignal + /// \return True on success. False (failure) on unknown eventId + bool SetEvent(int eventId, bool isReady); + + /// When systems can call SetEvent() with isReady==false, it is possible for one system to return true from IsEventCompleted() while the other systems return false + /// This can occur if a system SetEvent() with isReady==false while the completion message is still being transmitted. + /// If your game has the situation where some action should be taken on all systems when IsEventCompleted() is true for any system, then call ForceCompletion() when the action begins. + /// This will force all systems to return true from IsEventCompleted(). + /// \param[in] eventId A user-defined identifier to immediately set as completed + bool ForceCompletion(int eventId); + + /// Deletes an event. We will no longer wait for this event, and any systems that we know have set the event will be forgotten. + /// Call this to clear memory when events are completed and you know you will never need them again. + /// \param[in] eventId A user-defined identifier + /// \return True on success. False (failure) on unknown eventId + bool DeleteEvent(int eventId); + + /// Returns what was passed to SetEvent() + /// \return The value of isReady passed to SetEvent(). Also returns false on unknown event. + bool IsEventSet(int eventId); + + /// Returns if the event is about to be ready and we are negotiating the final packets. + /// This will usually only be true for a very short time, after which IsEventCompleted should return true. + /// While this is true you cannot add to the wait list, or SetEvent() isReady to false anymore. + /// \param[in] eventId A user-defined identifier + /// \return True if any other system has completed processing. Will always be true if IsEventCompleted() is true + bool IsEventCompletionProcessing(int eventId) const; + + /// Returns if the wait list is a subset of the completion list. + /// Call this after all systems you want to wait for have been added with AddToWaitList + /// If you are waiting for a specific number of systems (such as players later connecting), also check GetRemoteWaitListSize(eventId) to be equal to 1 less than the total number of participants. + /// \param[in] eventId A user-defined identifier + /// \return True on completion. False (failure) on unknown eventId, or the set is not completed. + bool IsEventCompleted(int eventId) const; + + /// Returns if this is a known event. + /// Events may be known even if we never ourselves referenced them with SetEvent, because other systems created them via ID_READY_EVENT_SET. + /// \param[in] eventId A user-defined identifier + /// \return true if we have this event, false otherwise + bool HasEvent(int eventId); + + /// Returns the total number of events stored in the system. + /// \return The total number of events stored in the system. + unsigned GetEventListSize(void) const; + + /// Returns the event ID stored at a particular index. EventIDs are stored sorted from least to greatest. + /// \param[in] index Index into the array, from 0 to GetEventListSize() + /// \return The event ID stored at a particular index + int GetEventAtIndex(unsigned index) const; + + /// Adds a system to wait for to signal an event before considering the event complete and returning ID_READY_EVENT_ALL_SET. + /// As we add systems, if this event was previously set to true with SetEvent, these systems will get ID_READY_EVENT_SET. + /// As these systems disconnect (directly or indirectly through the router) they are removed. + /// \note If the event completion process has already started, you cannot add more systems, as this would cause the completion process to fail + /// \param[in] eventId A user-defined number previously passed to SetEvent that has not yet completed + /// \param[in] addressArray An address to wait for event replies from. Pass UNASSIGNED_SYSTEM_ADDRESS for all currently connected systems. Until all systems in this list have called SetEvent with this ID and true, and have this system in the list, we won't get ID_READY_EVENT_COMPLETE + /// \return True on success, false on unknown eventId (this should be considered an error), or if the completion process has already started. + bool AddToWaitList(int eventId, SystemAddress address); + + /// Removes systems from the wait list, which should have been previously added with AddToWaitList + /// \note Systems that directly or indirectly disconnect from us are automatically removed from the wait list + /// \param[in] address The system to remove from the wait list. Pass UNASSIGNED_SYSTEM_ADDRESS for all currently connected systems. + /// \return True on success, false on unknown eventId (this should be considered an error) + bool RemoveFromWaitList(int eventId, SystemAddress address); + + /// Returns if a particular system is waiting on a particular event. + /// \param[in] eventId A user-defined identifier + /// \param[in] The address of the system we are checking up on + /// \return True if this system is waiting on this event, false otherwise. + bool IsInWaitList(int eventId, SystemAddress address); + + /// Returns the total number of systems we are waiting on for this event. + /// Does not include yourself + /// \param[in] eventId A user-defined identifier + /// \return The total number of systems we are waiting on for this event. + unsigned GetRemoteWaitListSize(int eventId) const; + + /// Returns the system address of a system at a particular index, for this event. + /// \param[in] eventId A user-defined identifier + /// \param[in] index Index into the array, from 0 to GetWaitListSize() + /// \return The system address of a system at a particular index, for this event. + SystemAddress GetFromWaitListAtIndex(int eventId, unsigned index) const; + + /// For a remote system, find out what their ready status is (waiting, signaled, complete). + /// \param[in] eventId A user-defined identifier + /// \param[in] address Which system we are checking up on + /// \return The status of this system, for this particular event. \sa ReadyEventSystemStatus + ReadyEventSystemStatus GetReadyStatus(int eventId, SystemAddress address); + + /// This channel will be used for all RakPeer::Send calls + /// \param[in] newChannel The channel to use for internal RakPeer::Send calls from this system. Defaults to 0. + void SetSendChannel(unsigned char newChannel); + + // ---------------------------- ALL INTERNAL AFTER HERE ---------------------------- + /// \internal + /// Status of a remote system + struct RemoteSystem + { + MessageID lastSentStatus, lastReceivedStatus; + SystemAddress systemAddress; + }; + static int RemoteSystemCompBySystemAddress( const SystemAddress &key, const RemoteSystem &data ); + /// \internal + /// An event, with a set of systems we are waiting for, a set of systems that are signaled, and a set of systems with completed events + struct ReadyEventNode + { + int eventId; // Sorted on this + MessageID eventStatus; + DataStructures::OrderedList systemList; + }; + static int ReadyEventNodeComp( const int &key, ReadyEvent::ReadyEventNode * const &data ); + + +protected: + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnRakPeerShutdown(void); + + void Clear(void); + /* + bool AnyWaitersCompleted(unsigned eventIndex) const; + bool AllWaitersCompleted(unsigned eventIndex) const; + bool AllWaitersReady(unsigned eventIndex) const; + void SendAllReady(unsigned eventId, SystemAddress address); + void BroadcastAllReady(unsigned eventIndex); + void SendReadyStateQuery(unsigned eventId, SystemAddress address); + void BroadcastReadyUpdate(unsigned eventIndex); + bool AddToWaitListInternal(unsigned eventIndex, SystemAddress address); + bool IsLocked(unsigned eventIndex) const; + bool IsAllReadyByIndex(unsigned eventIndex) const; + */ + + void SendReadyStateQuery(unsigned eventId, SystemAddress address); + void SendReadyUpdate(unsigned eventIndex, unsigned systemIndex, bool forceIfNotDefault); + void BroadcastReadyUpdate(unsigned eventIndex, bool forceIfNotDefault); + void RemoveFromAllLists(SystemAddress address); + void OnReadyEventQuery(Packet *packet); + void PushCompletionPacket(unsigned eventId); + bool AddToWaitListInternal(unsigned eventIndex, SystemAddress address); + void OnReadyEventForceAllSet(Packet *packet); + void OnReadyEventPacketUpdate(Packet *packet); + void UpdateReadyStatus(unsigned eventIndex); + bool IsEventCompletedByIndex(unsigned eventIndex) const; + unsigned CreateNewEvent(int eventId, bool isReady); + bool SetEventByIndex(int eventIndex, bool isReady); + + DataStructures::OrderedList readyEventNodeList; + unsigned char channel; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/RefCountedObj.h b/src/raknet/RefCountedObj.h new file mode 100755 index 0000000..221ec81 --- /dev/null +++ b/src/raknet/RefCountedObj.h @@ -0,0 +1,25 @@ +/// \file +/// \brief \b Reference counted object. Very simple class for quick and dirty uses. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __REF_COUNTED_OBJ_H +#define __REF_COUNTED_OBJ_H + +#include "RakMemoryOverride.h" + +/// World's simplest class :) +class RefCountedObj +{ + public: + RefCountedObj() {refCount=1;} + virtual ~RefCountedObj() {} + void AddRef(void) {refCount++;} + void Deref(void) {if (--refCount==0) RakNet::OP_DELETE(this, _FILE_AND_LINE_);} + int refCount; +}; + +#endif diff --git a/src/raknet/ReliabilityLayer.cpp b/src/raknet/ReliabilityLayer.cpp new file mode 100755 index 0000000..3ac9cfa --- /dev/null +++ b/src/raknet/ReliabilityLayer.cpp @@ -0,0 +1,3827 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "ReliabilityLayer.h" +#include "GetTime.h" +#include "SocketLayer.h" +#include "PluginInterface2.h" +#include "RakAssert.h" +#include "Rand.h" +#include "MessageIdentifiers.h" +#ifdef USE_THREADED_SEND +#include "SendToThread.h" +#endif +#include + +using namespace RakNet; + +// Can't figure out which library has this function on the PS3 +double Ceil(double d) {if (((double)((int)d))==d) return d; return (int) (d+1.0);} + +// #if defined(new) +// #pragma push_macro("new") +// #undef new +// #define RELIABILITY_LAYER_NEW_UNDEF_ALLOCATING_QUEUE +// #endif + + +//#define _DEBUG_LOGGER + +#if CC_TIME_TYPE_BYTES==4 +static const CCTimeType MAX_TIME_BETWEEN_PACKETS= 350; // 350 milliseconds +static const CCTimeType HISTOGRAM_RESTART_CYCLE=10000; // Every 10 seconds reset the histogram +#else +static const CCTimeType MAX_TIME_BETWEEN_PACKETS= 350000; // 350 milliseconds +//static const CCTimeType HISTOGRAM_RESTART_CYCLE=10000000; // Every 10 seconds reset the histogram +#endif +static const int DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE=512; +static const CCTimeType STARTING_TIME_BETWEEN_PACKETS=MAX_TIME_BETWEEN_PACKETS; +//static const long double TIME_BETWEEN_PACKETS_INCREASE_MULTIPLIER_DEFAULT=.02; +//static const long double TIME_BETWEEN_PACKETS_DECREASE_MULTIPLIER_DEFAULT=1.0 / 9.0; + +typedef uint32_t BitstreamLengthEncoding; + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +//#define PRINT_TO_FILE_ROT +#ifdef PRINT_TO_FILE_ROT +static FILE *fp=0; +#endif + +BPSTracker::TimeAndValue2::TimeAndValue2() {} +BPSTracker::TimeAndValue2::~TimeAndValue2() {} +BPSTracker::TimeAndValue2::TimeAndValue2(RakNet::TimeUS t, uint64_t v1) : value1(v1), time(t) {} +//BPSTracker::TimeAndValue2::TimeAndValue2(RakNet::TimeUS t, uint64_t v1, uint64_t v2) : time(t), value1(v1), value2(v2) {} +BPSTracker::BPSTracker() {Reset(_FILE_AND_LINE_);} +BPSTracker::~BPSTracker() {} +//void BPSTracker::Reset(const char *file, unsigned int line) {total1=total2=lastSec1=lastSec2=0; dataQueue.Clear(file,line);} +void BPSTracker::Reset(const char *file, unsigned int line) {total1=lastSec1=0; dataQueue.Clear(file,line);} +//void BPSTracker::Push2(RakNetTimeUS time, uint64_t value1, uint64_t value2) {dataQueue.Push(TimeAndValue2(time,value1,value2),_FILE_AND_LINE_); total1+=value1; lastSec1+=value1; total2+=value2; lastSec2+=value2;} +//uint64_t BPSTracker::GetBPS2(RakNetTimeUS time) {ClearExpired2(time); return lastSec2;} +//void BPSTracker::GetBPS1And2(RakNetTimeUS time, uint64_t &out1, uint64_t &out2) {ClearExpired2(time); out1=lastSec1; out2=lastSec2;} +uint64_t BPSTracker::GetTotal1(void) const {return total1;} +//uint64_t BPSTracker::GetTotal2(void) const {return total2;} + +// void BPSTracker::ClearExpired2(RakNet::TimeUS time) { +// RakNet::TimeUS threshold=time; +// if (threshold < 1000000) +// return; +// threshold-=1000000; +// while (dataQueue.IsEmpty()==false && dataQueue.Peek().time < threshold) +// { +// lastSec1-=dataQueue.Peek().value1; +// lastSec2-=dataQueue.Peek().value2; +// dataQueue.Pop(); +// } +// } +void BPSTracker::ClearExpired1(RakNet::TimeUS time) +{ + while (dataQueue.IsEmpty()==false && +#if CC_TIME_TYPE_BYTES==8 + dataQueue.Peek().time+1000000 < time +#else + dataQueue.Peek().time+1000 < time +#endif + ) + { + lastSec1-=dataQueue.Peek().value1; + dataQueue.Pop(); + } +} + +struct DatagramHeaderFormat +{ +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + CCTimeType sourceSystemTime; +#endif + DatagramSequenceNumberType datagramNumber; + + // Use floats to save bandwidth + // float B; // Link capacity + float AS; // Data arrival rate + bool isACK; + bool isNAK; + bool isPacketPair; + bool hasBAndAS; + bool isContinuousSend; + bool needsBAndAs; + bool isValid; // To differentiate between what I serialized, and offline data + + static BitSize_t GetDataHeaderBitLength() + { + return BYTES_TO_BITS(GetDataHeaderByteLength()); + } + + static unsigned int GetDataHeaderByteLength() + { + //return 2 + 3 + sizeof(RakNet::TimeMS) + sizeof(float)*2; + return 2 + 3 + +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + sizeof(RakNetTimeMS) + +#endif + sizeof(float)*1; + } + + void Serialize(RakNet::BitStream *b) + { + // Not endian safe + // RakAssert(GetDataHeaderByteLength()==sizeof(DatagramHeaderFormat)); + // b->WriteAlignedBytes((const unsigned char*) this, sizeof(DatagramHeaderFormat)); + // return; + + b->Write(true); // IsValid + if (isACK) + { + b->Write(true); + b->Write(hasBAndAS); + b->AlignWriteToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMSLow=(RakNet::TimeMS) sourceSystemTime&0xFFFFFFFF; b->Write(timeMSLow); +#endif + if (hasBAndAS) + { + // b->Write(B); + b->Write(AS); + } + } + else if (isNAK) + { + b->Write(false); + b->Write(true); + } + else + { + b->Write(false); + b->Write(false); + b->Write(isPacketPair); + b->Write(isContinuousSend); + b->Write(needsBAndAs); + b->AlignWriteToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMSLow=(RakNet::TimeMS) sourceSystemTime&0xFFFFFFFF; b->Write(timeMSLow); +#endif + b->Write(datagramNumber); + } + } + void Deserialize(RakNet::BitStream *b) + { + // Not endian safe + // b->ReadAlignedBytes((unsigned char*) this, sizeof(DatagramHeaderFormat)); + // return; + + b->Read(isValid); + b->Read(isACK); + if (isACK) + { + isNAK=false; + isPacketPair=false; + b->Read(hasBAndAS); + b->AlignReadToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMS; b->Read(timeMS); sourceSystemTime=(CCTimeType) timeMS; +#endif + if (hasBAndAS) + { + // b->Read(B); + b->Read(AS); + } + } + else + { + b->Read(isNAK); + if (isNAK) + { + isPacketPair=false; + } + else + { + b->Read(isPacketPair); + b->Read(isContinuousSend); + b->Read(needsBAndAs); + b->AlignReadToByteBoundary(); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMS; b->Read(timeMS); sourceSystemTime=(CCTimeType) timeMS; +#endif + b->Read(datagramNumber); + } + } + } +}; + +#if !defined(__GNUC__) && !defined(__ARMCC) +#pragma warning(disable:4702) // unreachable code +#endif + +#ifdef _WIN32 +//#define _DEBUG_LOGGER +#ifdef _DEBUG_LOGGER +#include "WindowsIncludes.h" +#endif +#endif + +//#define DEBUG_SPLIT_PACKET_PROBLEMS +#if defined (DEBUG_SPLIT_PACKET_PROBLEMS) +static int waitFlag=-1; +#endif + +using namespace RakNet; + +int RakNet::SplitPacketChannelComp( SplitPacketIdType const &key, SplitPacketChannel* const &data ) +{ +#if PREALLOCATE_LARGE_MESSAGES==1 + if (key < data->returnedPacket->splitPacketId) + return -1; + if (key == data->returnedPacket->splitPacketId) + return 0; +#else + if (key < data->splitPacketList[0]->splitPacketId) + return -1; + if (key == data->splitPacketList[0]->splitPacketId) + return 0; +#endif + return 1; +} + +// DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS( InternalPacket, SplitPacketIndexType, splitPacketIndex ) +/* +bool operator<( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get() < cls->splitPacketIndex; +} +bool operator>( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get() > cls->splitPacketIndex; +} +bool operator==( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get() == cls->splitPacketIndex; +} +/// Semi-hack: This is necessary to call Sort() +bool operator<( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get()->splitPacketIndex < cls->splitPacketIndex; +} +bool operator>( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get()->splitPacketIndex > cls->splitPacketIndex; +} +bool operator==( const DataStructures::MLKeyRef &inputKey, const InternalPacket *cls ) +{ + return inputKey.Get()->splitPacketIndex == cls->splitPacketIndex; +} +*/ + +int SplitPacketIndexComp( SplitPacketIndexType const &key, InternalPacket* const &data ) +{ +if (key < data->splitPacketIndex) +return -1; +if (key == data->splitPacketIndex) +return 0; +return 1; +} + +//------------------------------------------------------------------------------------------------------- +// Constructor +//------------------------------------------------------------------------------------------------------- +// Add 21 to the default MTU so if we encrypt it can hold potentially 21 more bytes of extra data + padding. +ReliabilityLayer::ReliabilityLayer() +{ + +#ifdef _DEBUG + // Wait longer to disconnect in debug so I don't get disconnected while tracing + timeoutTime=30000; +#else + timeoutTime=10000; +#endif + +#ifdef _DEBUG + minExtraPing=extraPingVariance=0; + packetloss=(double) minExtraPing; +#endif + + +#ifdef PRINT_TO_FILE_ROT + if (fp==0 && 0) + { + fp = fopen("reliableorderedoutput.txt", "wt"); + } +#endif + + InitializeVariables(); +//int i = sizeof(InternalPacket); + datagramHistoryMessagePool.SetPageSize(sizeof(MessageNumberNode)*128); + internalPacketPool.SetPageSize(sizeof(InternalPacket)*INTERNAL_PACKET_PAGE_SIZE); + refCountedDataPool.SetPageSize(sizeof(InternalPacketRefCountedData)*32); +} + +//------------------------------------------------------------------------------------------------------- +// Destructor +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::~ReliabilityLayer() +{ + FreeMemory( true ); // Free all memory immediately +} +//------------------------------------------------------------------------------------------------------- +// Resets the layer for reuse +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::Reset( bool resetVariables, int MTUSize, bool _useSecurity ) +{ + + FreeMemory( true ); // true because making a memory reset pending in the update cycle causes resets after reconnects. Instead, just call Reset from a single thread + if (resetVariables) + { + InitializeVariables(); + +#if LIBCAT_SECURITY==1 + useSecurity = _useSecurity; + + if (_useSecurity) + MTUSize -= cat::AuthenticatedEncryption::OVERHEAD_BYTES; +#else + (void) _useSecurity; +#endif // LIBCAT_SECURITY + congestionManager.Init(RakNet::GetTimeUS(), MTUSize - UDP_HEADER_SIZE); + } +} + +//------------------------------------------------------------------------------------------------------- +// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable packet +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SetTimeoutTime( RakNet::TimeMS time ) +{ + timeoutTime=time; +} + +//------------------------------------------------------------------------------------------------------- +// Returns the value passed to SetTimeoutTime. or the default if it was never called +//------------------------------------------------------------------------------------------------------- +RakNet::TimeMS ReliabilityLayer::GetTimeoutTime(void) +{ + return timeoutTime; +} + +//------------------------------------------------------------------------------------------------------- +// Initialize the variables +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InitializeVariables( void ) +{ + memset( orderedWriteIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType)); + memset( sequencedWriteIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType) ); + memset( orderedReadIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType) ); + memset( highestSequencedReadIndex, 0, NUMBER_OF_ORDERED_STREAMS * sizeof(OrderingIndexType) ); + memset( &statistics, 0, sizeof( statistics ) ); + memset( &heapIndexOffsets, 0, sizeof( heapIndexOffsets ) ); + + statistics.connectionStartTime = RakNet::GetTimeUS(); + splitPacketId = 0; + elapsedTimeSinceLastUpdate=0; + throughputCapCountdown=0; + sendReliableMessageNumberIndex = 0; + internalOrderIndex=0; + timeToNextUnreliableCull=0; + unreliableLinkedListHead=0; + lastUpdateTime= RakNet::GetTimeUS(); + bandwidthExceededStatistic=false; + remoteSystemTime=0; + unreliableTimeout=0; + lastBpsClear=0; + + // Disable packet pairs + countdownToNextPacketPair=15; + + nextAllowedThroughputSample=0; + deadConnection = cheater = false; + timeOfLastContinualSend=0; + + // timeResendQueueNonEmpty = 0; + timeLastDatagramArrived=RakNet::GetTimeMS(); + // packetlossThisSample=false; + // backoffThisSample=0; + // packetlossThisSampleResendCount=0; + // lastPacketlossTime=0; + statistics.messagesInResendBuffer=0; + statistics.bytesInResendBuffer=0; + + receivedPacketsBaseIndex=0; + resetReceivedPackets=true; + receivePacketCount=0; + + // SetPing( 1000 ); + + timeBetweenPackets=STARTING_TIME_BETWEEN_PACKETS; + + ackPingIndex=0; + ackPingSum=(CCTimeType)0; + + nextSendTime=lastUpdateTime; + //nextLowestPingReset=(CCTimeType)0; + // continuousSend=false; + + // histogramStart=(CCTimeType)0; + // histogramBitsSent=0; + unacknowledgedBytes=0; + resendLinkedListHead=0; + totalUserDataBytesAcked=0; + + datagramHistoryPopCount=0; + + InitHeapWeights(); + for (int i=0; i < NUMBER_OF_PRIORITIES; i++) + { + statistics.messageInSendBuffer[i]=0; + statistics.bytesInSendBuffer[i]=0.0; + } + + for (int i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + bpsMetrics[i].Reset(_FILE_AND_LINE_); + } +} + +//------------------------------------------------------------------------------------------------------- +// Frees all allocated memory +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::FreeMemory( bool freeAllImmediately ) +{ + (void) freeAllImmediately; + FreeThreadSafeMemory(); +} + +void ReliabilityLayer::FreeThreadSafeMemory( void ) +{ + unsigned i,j; + InternalPacket *internalPacket; + + ClearPacketsAndDatagrams(); + + for (i=0; i < splitPacketChannelList.Size(); i++) + { + for (j=0; j < splitPacketChannelList[i]->splitPacketList.Size(); j++) + { + FreeInternalPacketData(splitPacketChannelList[i]->splitPacketList[j], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( splitPacketChannelList[i]->splitPacketList[j] ); + } +#if PREALLOCATE_LARGE_MESSAGES==1 + if (splitPacketChannelList[i]->returnedPacket) + { + FreeInternalPacketData(splitPacketChannelList[i]->returnedPacket, __FILE__, __LINE__ ); + ReleaseToInternalPacketPool( splitPacketChannelList[i]->returnedPacket ); + } +#endif + RakNet::OP_DELETE(splitPacketChannelList[i], __FILE__, __LINE__); + } + splitPacketChannelList.Clear(false, _FILE_AND_LINE_); + + while ( outputQueue.Size() > 0 ) + { + internalPacket = outputQueue.Pop(); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + } + + outputQueue.ClearAndForceAllocation( 32, _FILE_AND_LINE_ ); + + /* + for ( i = 0; i < orderingList.Size(); i++ ) + { + if ( orderingList[ i ] ) + { + DataStructures::LinkedList* theList = orderingList[ i ]; + + if ( theList ) + { + while ( theList->Size() ) + { + internalPacket = orderingList[ i ]->Pop(); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + } + + RakNet::OP_DELETE(theList, _FILE_AND_LINE_); + } + } + } + + orderingList.Clear(false, _FILE_AND_LINE_); + */ + + for (i=0; i < NUMBER_OF_ORDERED_STREAMS; i++) + { + for (j=0; j < orderingHeaps[i].Size(); j++) + { + FreeInternalPacketData(orderingHeaps[i][j], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( orderingHeaps[i][j] ); + } + orderingHeaps[i].Clear(true, _FILE_AND_LINE_); + } + + //resendList.ForEachData(DeleteInternalPacket); + // resendTree.Clear(_FILE_AND_LINE_); + memset(resendBuffer, 0, sizeof(resendBuffer)); + statistics.messagesInResendBuffer=0; + statistics.bytesInResendBuffer=0; + + if (resendLinkedListHead) + { + InternalPacket *prev; + InternalPacket *iter = resendLinkedListHead; + while (1) + { + if (iter->data) + FreeInternalPacketData(iter, _FILE_AND_LINE_ ); + prev=iter; + iter=iter->resendNext; + if (iter==resendLinkedListHead) + { + ReleaseToInternalPacketPool(prev); + break; + } + ReleaseToInternalPacketPool(prev); + } + resendLinkedListHead=0; + } + unacknowledgedBytes=0; + + // acknowlegements.Clear(_FILE_AND_LINE_); + + for ( j=0 ; j < outgoingPacketBuffer.Size(); j++ ) + { + if ( outgoingPacketBuffer[ j ]->data) + FreeInternalPacketData( outgoingPacketBuffer[ j ], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( outgoingPacketBuffer[ j ] ); + } + + outgoingPacketBuffer.Clear(true, _FILE_AND_LINE_); + +#ifdef _DEBUG + for (unsigned i = 0; i < delayList.Size(); i++ ) + RakNet::OP_DELETE(delayList[ i ], __FILE__, __LINE__); + delayList.Clear(__FILE__, __LINE__); +#endif + + unreliableWithAckReceiptHistory.Clear(false, _FILE_AND_LINE_); + + packetsToSendThisUpdate.Clear(false, _FILE_AND_LINE_); + packetsToSendThisUpdate.Preallocate(512, _FILE_AND_LINE_); + packetsToDeallocThisUpdate.Clear(false, _FILE_AND_LINE_); + packetsToDeallocThisUpdate.Preallocate(512, _FILE_AND_LINE_); + packetsToSendThisUpdateDatagramBoundaries.Clear(false, _FILE_AND_LINE_); + packetsToSendThisUpdateDatagramBoundaries.Preallocate(128, _FILE_AND_LINE_); + datagramSizesInBytes.Clear(false, _FILE_AND_LINE_); + datagramSizesInBytes.Preallocate(128, _FILE_AND_LINE_); + + internalPacketPool.Clear(_FILE_AND_LINE_); + + refCountedDataPool.Clear(_FILE_AND_LINE_); + + /* + DataStructures::Page *cur = datagramMessageIDTree.GetListHead(); + while (cur) + { + int treeIndex; + for (treeIndex=0; treeIndex < cur->size; treeIndex++) + ReleaseToDatagramMessageIDPool(cur->data[treeIndex]); + cur=cur->resendNext; + } + datagramMessageIDTree.Clear(_FILE_AND_LINE_); + datagramMessageIDPool.Clear(_FILE_AND_LINE_); + */ + + while (datagramHistory.Size()) + { + RemoveFromDatagramHistory(datagramHistoryPopCount); + datagramHistory.Pop(); + datagramHistoryPopCount++; + } + datagramHistoryMessagePool.Clear(_FILE_AND_LINE_); + datagramHistoryPopCount=0; + + acknowlegements.Clear(); + NAKs.Clear(); + + unreliableLinkedListHead=0; +} + +//------------------------------------------------------------------------------------------------------- +// Packets are read directly from the socket layer and skip the reliability +//layer because unconnected players do not use the reliability layer +// This function takes packet data after a player has been confirmed as +//connected. The game should not use that data directly +// because some data is used internally, such as packet acknowledgment and +//split packets +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::HandleSocketReceiveFromConnectedPlayer( + const char *buffer, unsigned int length, SystemAddress &systemAddress, DataStructures::List &messageHandlerList, int MTUSize, + SOCKET s, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType timeRead, + BitStream &updateBitStream) +{ +#ifdef _DEBUG + RakAssert( !( buffer == 0 ) ); +#endif + +#if CC_TIME_TYPE_BYTES==4 + timeRead/=1000; +#endif + + + bpsMetrics[(int) ACTUAL_BYTES_RECEIVED].Push1(timeRead,length); + + (void) MTUSize; + + if ( length <= 2 || buffer == 0 ) // Length of 1 is a connection request resend that we just ignore + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("length <= 2 || buffer == 0", BYTES_TO_BITS(length), systemAddress); + return true; + } + + timeLastDatagramArrived=RakNet::GetTimeMS(); + + // CCTimeType time; +// bool indexFound; +// int count, size; + DatagramSequenceNumberType holeCount; + unsigned i; + +#if LIBCAT_SECURITY==1 + if (useSecurity) + { + unsigned int received = length; + + if (!auth_enc.Decrypt((cat::u8*)buffer, received)) + return false; + + length = received; + } +#endif + + RakNet::BitStream socketData( (unsigned char*) buffer, length, false ); // Convert the incoming data to a bitstream for easy parsing + // time = RakNet::GetTimeUS(); + + // Set to the current time if it is not zero, and we get incoming data + // if (timeResendQueueNonEmpty!=0) + // timeResendQueueNonEmpty=timeRead; + + DatagramHeaderFormat dhf; + dhf.Deserialize(&socketData); + if (dhf.isValid==false) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("dhf.isValid==false", BYTES_TO_BITS(length), systemAddress); + + return true; + } + if (dhf.isACK) + { + DatagramSequenceNumberType datagramNumber; + // datagramNumber=dhf.datagramNumber; + +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + RakNet::TimeMS timeMSLow=(RakNet::TimeMS) timeRead&0xFFFFFFFF; + CCTimeType rtt = timeMSLow-dhf.sourceSystemTime; +#if CC_TIME_TYPE_BYTES==4 + if (rtt > 10000) +#else + if (rtt > 10000000) +#endif + { + // Sanity check. This could happen due to type overflow, especially since I only send the low 4 bytes to reduce bandwidth + rtt=(CCTimeType) congestionManager.GetRTT(); + } + // RakAssert(rtt < 500000); + // printf("%i ", (RakNet::TimeMS)(rtt/1000)); + ackPing=rtt; +#endif + +#ifdef _DEBUG + if (dhf.hasBAndAS==false) + { + // dhf.B=0; + dhf.AS=0; + } +#endif + // congestionManager.OnAck(timeRead, rtt, dhf.hasBAndAS, dhf.B, dhf.AS, totalUserDataBytesAcked ); + + + incomingAcks.Clear(); + if (incomingAcks.Deserialize(&socketData)==false) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingAcks.Deserialize failed", BYTES_TO_BITS(length), systemAddress); + + return false; + } + for (i=0; iincomingAcks.ranges[i].maxIndex) + { + RakAssert(incomingAcks.ranges[i].minIndex<=incomingAcks.ranges[i].maxIndex); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingAcks minIndex > maxIndex", BYTES_TO_BITS(length), systemAddress); + return false; + } + for (datagramNumber=incomingAcks.ranges[i].minIndex; datagramNumber >= incomingAcks.ranges[i].minIndex && datagramNumber <= incomingAcks.ranges[i].maxIndex; datagramNumber++) + { + CCTimeType whenSent; + + if (unreliableWithAckReceiptHistory.Size()>0) + { + unsigned int k=0; + while (k < unreliableWithAckReceiptHistory.Size()) + { + if (unreliableWithAckReceiptHistory[k].datagramNumber == datagramNumber) + { + InternalPacket *ackReceipt = AllocateFromInternalPacketPool(); + AllocInternalPacketData(ackReceipt, 5, false, _FILE_AND_LINE_ ); + ackReceipt->dataBitLength=BYTES_TO_BITS(5); + ackReceipt->data[0]=(MessageID)ID_SND_RECEIPT_ACKED; + memcpy(ackReceipt->data+sizeof(MessageID), &unreliableWithAckReceiptHistory[k].sendReceiptSerial, sizeof(uint32_t)); + outputQueue.Push(ackReceipt, _FILE_AND_LINE_ ); + + // Remove, swap with last + unreliableWithAckReceiptHistory.RemoveAtIndex(k); + } + else + k++; + } + } + + MessageNumberNode *messageNumberNode = GetMessageNumberNodeByDatagramIndex(datagramNumber, &whenSent); + if (messageNumberNode) + { + // printf("%p Got ack for %i\n", this, datagramNumber.val); +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + congestionManager.OnAck(timeRead, rtt, dhf.hasBAndAS, 0, dhf.AS, totalUserDataBytesAcked, bandwidthExceededStatistic, datagramNumber ); +#else + CCTimeType ping; + if (timeRead>whenSent) + ping=timeRead-whenSent; + else + ping=0; + congestionManager.OnAck(timeRead, ping, dhf.hasBAndAS, 0, dhf.AS, totalUserDataBytesAcked, bandwidthExceededStatistic, datagramNumber ); +#endif + while (messageNumberNode) + { + // TESTING1 +// printf("Remove %i on ack for datagramNumber=%i.\n", messageNumberNode->messageNumber.val, datagramNumber.val); + + RemovePacketFromResendListAndDeleteOlderReliableSequenced( messageNumberNode->messageNumber, timeRead, messageHandlerList, systemAddress ); + messageNumberNode=messageNumberNode->next; + } + + RemoveFromDatagramHistory(datagramNumber); + } +// else if (isReliable) +// { +// // Previously used slot, rather than empty unreliable slot +// printf("%p Ack %i is duplicate\n", this, datagramNumber.val); +// +// congestionManager.OnDuplicateAck(timeRead, datagramNumber); +// } + } + } + } + else if (dhf.isNAK) + { + DatagramSequenceNumberType messageNumber; + DataStructures::RangeList incomingNAKs; + if (incomingNAKs.Deserialize(&socketData)==false) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingNAKs.Deserialize failed", BYTES_TO_BITS(length), systemAddress); + + return false; + } + for (i=0; iincomingNAKs.ranges[i].maxIndex) + { + RakAssert(incomingNAKs.ranges[i].minIndex<=incomingNAKs.ranges[i].maxIndex); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("incomingNAKs minIndex>maxIndex", BYTES_TO_BITS(length), systemAddress); + + return false; + } + // Sanity check + RakAssert(incomingNAKs.ranges[i].maxIndex.val-incomingNAKs.ranges[i].minIndex.val<1000); + for (messageNumber=incomingNAKs.ranges[i].minIndex; messageNumber >= incomingNAKs.ranges[i].minIndex && messageNumber <= incomingNAKs.ranges[i].maxIndex; messageNumber++) + { + congestionManager.OnNAK(timeRead, messageNumber); + + // REMOVEME + // printf("%p NAK %i\n", this, dhf.datagramNumber.val); + + + CCTimeType timeSent; + MessageNumberNode *messageNumberNode = GetMessageNumberNodeByDatagramIndex(messageNumber, &timeSent); + while (messageNumberNode) + { + // Update timers so resends occur immediately + InternalPacket *internalPacket = resendBuffer[messageNumberNode->messageNumber & (uint32_t) RESEND_BUFFER_ARRAY_MASK]; + if (internalPacket) + { + if (internalPacket->nextActionTime!=0) + { + internalPacket->nextActionTime=timeRead; + } + } + + messageNumberNode=messageNumberNode->next; + } + } + } + } + else + { + uint32_t skippedMessageCount; + if (!congestionManager.OnGotPacket(dhf.datagramNumber, dhf.isContinuousSend, timeRead, length, &skippedMessageCount)) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("congestionManager.OnGotPacket failed", BYTES_TO_BITS(length), systemAddress); + + return true; + } + if (dhf.isPacketPair) + congestionManager.OnGotPacketPair(dhf.datagramNumber, length, timeRead); + + DatagramHeaderFormat dhfNAK; + dhfNAK.isNAK=true; + uint32_t skippedMessageOffset; + for (skippedMessageOffset=skippedMessageCount; skippedMessageOffset > 0; skippedMessageOffset--) + { + NAKs.Insert(dhf.datagramNumber-skippedMessageOffset); + } + remoteSystemNeedsBAndAS=dhf.needsBAndAs; + + // Ack dhf.datagramNumber + // Ack even unreliable messages for congestion control, just don't resend them on no ack +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + SendAcknowledgementPacket( dhf.datagramNumber, dhf.sourceSystemTime); +#else + SendAcknowledgementPacket( dhf.datagramNumber, 0); +#endif + + InternalPacket* internalPacket = CreateInternalPacketFromBitStream( &socketData, timeRead ); + if (internalPacket==0) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("CreateInternalPacketFromBitStream failed", BYTES_TO_BITS(length), systemAddress); + + return true; + } + + while ( internalPacket ) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, receivePacketCount, systemAddress, timeRead, false); +#else + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, receivePacketCount, systemAddress, (RakNet::TimeMS)(timeRead/(CCTimeType)1000), false); +#endif + } + + { + + // resetReceivedPackets is set from a non-threadsafe function. + // We do the actual reset in this function so the data is not modified by multiple threads + if (resetReceivedPackets) + { + hasReceivedPacketQueue.ClearAndForceAllocation(DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE, _FILE_AND_LINE_); + receivedPacketsBaseIndex=0; + resetReceivedPackets=false; + } + + // Check for corrupt orderingChannel + if ( + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED + ) + { + if ( internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + { + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS", BYTES_TO_BITS(length), systemAddress); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + + // 8/12/09 was previously not checking if the message was reliable. However, on packetloss this would mean you'd eventually exceed the + // hole count because unreliable messages were never resent, and you'd stop getting messages + if (internalPacket->reliability == RELIABLE || internalPacket->reliability == RELIABLE_SEQUENCED || internalPacket->reliability == RELIABLE_ORDERED ) + { + // If the following conditional is true then this either a duplicate packet + // or an older out of order packet + // The subtraction unsigned overflow is intentional + holeCount = (DatagramSequenceNumberType)(internalPacket->reliableMessageNumber-receivedPacketsBaseIndex); + const DatagramSequenceNumberType typeRange = (DatagramSequenceNumberType)(const uint32_t)-1; + + // TESTING1 +// printf("waiting on reliableMessageNumber=%i holeCount=%i datagramNumber=%i\n", receivedPacketsBaseIndex.val, holeCount.val, dhf.datagramNumber.val); + + if (holeCount==(DatagramSequenceNumberType) 0) + { + // Got what we were expecting + if (hasReceivedPacketQueue.Size()) + hasReceivedPacketQueue.Pop(); + ++receivedPacketsBaseIndex; + } + else if (holeCount > typeRange/(DatagramSequenceNumberType) 2) + { + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Duplicate packet + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + else if ((unsigned int) holeCountdataBitLength)); + + // Duplicate packet + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + else // holeCount>=receivedPackets.Size() + { + if (holeCount > (DatagramSequenceNumberType) 1000000) + { + RakAssert("Hole count too high. See ReliabilityLayer.h" && 0); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("holeCount > 1000000", BYTES_TO_BITS(length), systemAddress); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Would crash due to out of memory! + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + + // Fix - sending on a higher priority gives us a very very high received packets base index if we formerly had pre-split a lot of messages and + // used that as the message number. Because of this, a lot of time is spent in this linear loop and the timeout time expires because not + // all of the message is sent in time. + // Fixed by late assigning message IDs on the sender + + // Add 0 times to the queue until (reliableMessageNumber - baseIndex) < queue size. + while ((unsigned int)(holeCount) > hasReceivedPacketQueue.Size()) + hasReceivedPacketQueue.Push(true, _FILE_AND_LINE_ ); // time+(CCTimeType)60 * (CCTimeType)1000 * (CCTimeType)1000); // Didn't get this packet - set the time to give up waiting + hasReceivedPacketQueue.Push(false, _FILE_AND_LINE_ ); // Got the packet +#ifdef _DEBUG + // If this assert hits then DatagramSequenceNumberType has overflowed + RakAssert(hasReceivedPacketQueue.Size() < (unsigned int)((DatagramSequenceNumberType)(const uint32_t)(-1))); +#endif + } + + while ( hasReceivedPacketQueue.Size()>0 && hasReceivedPacketQueue.Peek()==false ) + { + hasReceivedPacketQueue.Pop(); + ++receivedPacketsBaseIndex; + } + } + + // If the allocated buffer is > DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE and it is 3x greater than the number of elements actually being used + if (hasReceivedPacketQueue.AllocationSize() > (unsigned int) DEFAULT_HAS_RECEIVED_PACKET_QUEUE_SIZE && hasReceivedPacketQueue.AllocationSize() > hasReceivedPacketQueue.Size() * 3) + hasReceivedPacketQueue.Compress(_FILE_AND_LINE_); + + + /* + if ( internalPacket->reliability == RELIABLE_SEQUENCED || internalPacket->reliability == UNRELIABLE_SEQUENCED ) + { +#ifdef _DEBUG + RakAssert( internalPacket->orderingChannel < NUMBER_OF_ORDERED_STREAMS ); +#endif + + if ( internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + { + + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + messageHandlerList[messageHandlerIndex]->OnReliabilityLayerPacketError("internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS", BYTES_TO_BITS(length), systemAddress); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + if ( IsOlderOrderedPacket( internalPacket->orderingIndex, waitingForSequencedPacketReadIndex[ internalPacket->orderingChannel ] ) == false ) + { + // Is this a split packet? + if ( internalPacket->splitPacketCount > 0 ) + { + // Generate the split + // Verify some parameters to make sure we don't get junk data + + + // Check for a rebuilt packet + InsertIntoSplitPacketList( internalPacket, timeRead ); + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Sequenced + internalPacket = BuildPacketFromSplitPacketList( internalPacket->splitPacketId, timeRead, + s, systemAddress, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions); + + if ( internalPacket ) + { + // Update our index to the newest packet + waitingForSequencedPacketReadIndex[ internalPacket->orderingChannel ] = internalPacket->orderingIndex + (OrderingIndexType)1; + + // If there is a rebuilt packet, add it to the output queue + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + internalPacket = 0; + } + + // else don't have all the parts yet + } + else + { + // Update our index to the newest packet + waitingForSequencedPacketReadIndex[ internalPacket->orderingChannel ] = internalPacket->orderingIndex + (OrderingIndexType)1; + + // Not a split packet. Add the packet to the output queue + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + internalPacket = 0; + } + } + else + { + // Older sequenced packet. Discard it + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + } + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + // Is this an unsequenced split packet? + if ( internalPacket->splitPacketCount > 0 ) + { + // Check for a rebuilt packet + if ( internalPacket->reliability != RELIABLE_ORDERED ) + internalPacket->orderingChannel = 255; // Use 255 to designate not sequenced and not ordered + + InsertIntoSplitPacketList( internalPacket, timeRead ); + + internalPacket = BuildPacketFromSplitPacketList( internalPacket->splitPacketId, timeRead, + s, systemAddress, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions); + + if ( internalPacket == 0 ) + { + + // Don't have all the parts yet + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + */ + + /* + if ( internalPacket->reliability == RELIABLE_ORDERED ) + { +#ifdef _DEBUG + RakAssert( internalPacket->orderingChannel < NUMBER_OF_ORDERED_STREAMS ); +#endif + + if ( internalPacket->orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + { + // Invalid packet + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_IGNORED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + if ( waitingForOrderedPacketReadIndex[ internalPacket->orderingChannel ] == internalPacket->orderingIndex ) + { + // Get the list to hold ordered packets for this stream + DataStructures::LinkedList *orderingListAtOrderingStream; + unsigned char orderingChannelCopy = internalPacket->orderingChannel; + + // Push the packet for the user to read + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + internalPacket = 0; // Don't reference this any longer since other threads access it + + // Wait for the resendNext ordered packet in sequence + waitingForOrderedPacketReadIndex[ orderingChannelCopy ] ++; // This wraps + + orderingListAtOrderingStream = GetOrderingListAtOrderingStream( orderingChannelCopy ); + + if ( orderingListAtOrderingStream != 0) + { + while ( orderingListAtOrderingStream->Size() > 0 ) + { + // Cycle through the list until nothing is found + orderingListAtOrderingStream->Beginning(); + indexFound=false; + size=orderingListAtOrderingStream->Size(); + count=0; + + while (count++ < size) + { + if ( orderingListAtOrderingStream->Peek()->orderingIndex == waitingForOrderedPacketReadIndex[ orderingChannelCopy ] ) + { + outputQueue.Push( orderingListAtOrderingStream->Pop(), _FILE_AND_LINE_ ); + waitingForOrderedPacketReadIndex[ orderingChannelCopy ]++; + indexFound=true; + } + else + (*orderingListAtOrderingStream)++; + } + + if (indexFound==false) + break; + } + } + internalPacket = 0; + } + else + { + // This is a newer ordered packet than we are waiting for. Store it for future use + AddToOrderingList( internalPacket ); + } + + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + */ + + // Is this a split packet? If so then reassemble + if ( internalPacket->splitPacketCount > 0 ) + { + // Check for a rebuilt packet + if ( internalPacket->reliability != RELIABLE_ORDERED && internalPacket->reliability!=RELIABLE_SEQUENCED && internalPacket->reliability!=UNRELIABLE_SEQUENCED) + internalPacket->orderingChannel = 255; // Use 255 to designate not sequenced and not ordered + + InsertIntoSplitPacketList( internalPacket, timeRead ); + + internalPacket = BuildPacketFromSplitPacketList( internalPacket->splitPacketId, timeRead, + s, systemAddress, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, updateBitStream); + + if ( internalPacket == 0 ) + { + // Don't have all the parts yet + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + + if (internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED) + { +#ifdef PRINT_TO_FILE_ROT + // ___________________ + BitStream bitStream(internalPacket->data, BITS_TO_BYTES(internalPacket->dataBitLength), false); + unsigned int receivedPacketNumber; + RakNet::Time receivedTime; + unsigned char streamNumber; + PacketReliability reliability; + // ___________________ + + + bitStream.IgnoreBits(8); // Ignore ID_TIMESTAMP + bitStream.Read(receivedTime); + bitStream.IgnoreBits(8); // Ignore ID_USER_ENUM+1 + bitStream.Read(receivedPacketNumber); + bitStream.Read(streamNumber); + bitStream.Read(reliability); + char *type="UNDEFINED"; + if (reliability==UNRELIABLE_SEQUENCED) + type="UNRELIABLE_SEQUENCED"; + else if (reliability==RELIABLE_ORDERED) + type="RELIABLE_ORDERED"; + // ___________________ +#endif + + + if (internalPacket->orderingIndex==orderedReadIndex[internalPacket->orderingChannel]) + { + // Has current ordering index + if (internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED) + { + // Is sequenced + if (IsOlderOrderedPacket(internalPacket->sequencingIndex,highestSequencedReadIndex[internalPacket->orderingChannel])==false) + { + // Expected or highest known value + + // Update highest sequence + highestSequencedReadIndex[internalPacket->orderingChannel] = internalPacket->sequencingIndex; + +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "Returning %i, %s by fallthrough. OI=%i. SI=%i.\n", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + // Fallthrough, returned to user below + } + else + { +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "Discarding %i, %s late sequenced. OI=%i. SI=%i.\n", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + // Lower than highest known value + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + else + { + // Push to output buffer immediately + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "outputting immediate %i, %s. OI=%i. SI=%i.", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + if (orderingHeaps[internalPacket->orderingChannel].Size()==0) + fprintf(fp, "heap empty\n"); + else + fprintf(fp, "heap head=%i\n", orderingHeaps[internalPacket->orderingChannel].Peek()->orderingIndex.val); + fflush(fp); + } +#endif + + orderedReadIndex[internalPacket->orderingChannel]++; + highestSequencedReadIndex[internalPacket->orderingChannel] = 0; + + // Return off heap until order lost + while (orderingHeaps[internalPacket->orderingChannel].Size()>0 && + orderingHeaps[internalPacket->orderingChannel].Peek()->orderingIndex==orderedReadIndex[internalPacket->orderingChannel]) + { + internalPacket = orderingHeaps[internalPacket->orderingChannel].Pop(0); + +#ifdef PRINT_TO_FILE_ROT + BitStream bitStream2(internalPacket->data, BITS_TO_BYTES(internalPacket->dataBitLength), false); + bitStream2.IgnoreBits(8); // Ignore ID_TIMESTAMP + bitStream2.Read(receivedTime); + bitStream2.IgnoreBits(8); // Ignore ID_USER_ENUM+1 + bitStream2.Read(receivedPacketNumber); + bitStream2.Read(streamNumber); + bitStream2.Read(reliability); + char *type="UNDEFINED"; + if (reliability==UNRELIABLE_SEQUENCED) + type="UNRELIABLE_SEQUENCED"; + else if (reliability==RELIABLE_ORDERED) + type="RELIABLE_ORDERED"; + + if (fp) + { + fprintf(fp, "Heap pop %i, %s. OI=%i. SI=%i.\n", receivedPacketNumber, type, internalPacket->orderingIndex.val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + + if (internalPacket->reliability == RELIABLE_ORDERED) + { + orderedReadIndex[internalPacket->orderingChannel]++; + } + else + { + highestSequencedReadIndex[internalPacket->orderingChannel] = internalPacket->sequencingIndex; + } + } + + // Done + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + } + else if (IsOlderOrderedPacket(internalPacket->orderingIndex,orderedReadIndex[internalPacket->orderingChannel])==false) + { + // internalPacket->_orderingIndex is greater + // If a message has a greater ordering index, and is sequenced or ordered, buffer it + // Sequenced has a lower heap weight, ordered has max sequenced weight + + // Keep orderedHoleCount count small + if (orderingHeaps[internalPacket->orderingChannel].Size()==0) + heapIndexOffsets[internalPacket->orderingChannel]=orderedReadIndex[internalPacket->orderingChannel]; + + reliabilityHeapWeightType orderedHoleCount = internalPacket->orderingIndex-heapIndexOffsets[internalPacket->orderingChannel]; + reliabilityHeapWeightType weight = orderedHoleCount*1048576; + if (internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED) + weight+=internalPacket->sequencingIndex; + else + weight+=(1048576-1); + orderingHeaps[internalPacket->orderingChannel].Push(weight, internalPacket, _FILE_AND_LINE_); + +#ifdef PRINT_TO_FILE_ROT + if (fp) + { + fprintf(fp, "Heap push %i, %s, weight=%llu. OI=%i. waiting on %i. SI=%i.\n", receivedPacketNumber, type, weight, internalPacket->orderingIndex.val, orderedReadIndex[internalPacket->orderingChannel].val, internalPacket->sequencingIndex); + fflush(fp); + } +#endif + + // Buffered, nothing to do + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + else + { + // Out of order + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + // Ignored, nothing to do + goto CONTINUE_SOCKET_DATA_PARSE_LOOP; + } + + } + + bpsMetrics[(int) USER_MESSAGE_BYTES_RECEIVED_PROCESSED].Push1(timeRead,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Nothing special about this packet. Add it to the output queue + outputQueue.Push( internalPacket, _FILE_AND_LINE_ ); + + internalPacket = 0; + } + + // Used for a goto to jump to the resendNext packet immediately + +CONTINUE_SOCKET_DATA_PARSE_LOOP: + // Parse the bitstream to create an internal packet + internalPacket = CreateInternalPacketFromBitStream( &socketData, timeRead ); + } + + } + + + receivePacketCount++; + + return true; +} + +//------------------------------------------------------------------------------------------------------- +// This gets an end-user packet already parsed out. Returns number of BITS put into the buffer +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::Receive( unsigned char **data ) +{ + InternalPacket * internalPacket; + + if ( outputQueue.Size() > 0 ) + { + // #ifdef _DEBUG + // RakAssert(bitStream->GetNumberOfBitsUsed()==0); + // #endif + internalPacket = outputQueue.Pop(); + + BitSize_t bitLength; + *data = internalPacket->data; + bitLength = internalPacket->dataBitLength; + ReleaseToInternalPacketPool( internalPacket ); + return bitLength; + } + + else + { + return 0; + } + +} + +//------------------------------------------------------------------------------------------------------- +// Puts data on the send queue +// bitStream contains the data to send +// priority is what priority to send the data at +// reliability is what reliability to use +// ordering channel is from 0 to 255 and specifies what stream to use +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::Send( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, unsigned char orderingChannel, bool makeDataCopy, int MTUSize, CCTimeType currentTime, uint32_t receipt ) +{ +#ifdef _DEBUG + RakAssert( !( reliability >= NUMBER_OF_RELIABILITIES || reliability < 0 ) ); + RakAssert( !( priority > NUMBER_OF_PRIORITIES || priority < 0 ) ); + RakAssert( !( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) ); + RakAssert( numberOfBitsToSend > 0 ); +#endif + +#if CC_TIME_TYPE_BYTES==4 + currentTime/=1000; +#endif + + (void) MTUSize; + + // int a = BITS_TO_BYTES(numberOfBitsToSend); + + // Fix any bad parameters + if ( reliability > RELIABLE_ORDERED_WITH_ACK_RECEIPT || reliability < 0 ) + reliability = RELIABLE; + + if ( priority > NUMBER_OF_PRIORITIES || priority < 0 ) + priority = HIGH_PRIORITY; + + if ( orderingChannel >= NUMBER_OF_ORDERED_STREAMS ) + orderingChannel = 0; + + unsigned int numberOfBytesToSend=(unsigned int) BITS_TO_BYTES(numberOfBitsToSend); + if ( numberOfBitsToSend == 0 ) + { + return false; + } + InternalPacket * internalPacket = AllocateFromInternalPacketPool(); + if (internalPacket==0) + { + notifyOutOfMemory(_FILE_AND_LINE_); + return false; // Out of memory + } + + bpsMetrics[(int) USER_MESSAGE_BYTES_PUSHED].Push1(currentTime,numberOfBytesToSend); + + internalPacket->creationTime = currentTime; + + if ( makeDataCopy ) + { + AllocInternalPacketData(internalPacket, numberOfBytesToSend, true, _FILE_AND_LINE_ ); + //internalPacket->data = (unsigned char*) rakMalloc_Ex( numberOfBytesToSend, _FILE_AND_LINE_ ); + memcpy( internalPacket->data, data, numberOfBytesToSend ); + } + else + { + // Allocated the data elsewhere, delete it in here + //internalPacket->data = ( unsigned char* ) data; + AllocInternalPacketData(internalPacket, (unsigned char*) data ); + } + + internalPacket->dataBitLength = numberOfBitsToSend; + internalPacket->messageInternalOrder = internalOrderIndex++; + internalPacket->priority = priority; + internalPacket->reliability = reliability; + internalPacket->sendReceiptSerial=receipt; + + // Calculate if I need to split the packet + // int headerLength = BITS_TO_BYTES( GetMessageHeaderLengthBits( internalPacket, true ) ); + + unsigned int maxDataSizeBytes = GetMaxDatagramSizeExcludingMessageHeaderBytes() - BITS_TO_BYTES(GetMaxMessageHeaderLengthBits()); + + bool splitPacket = numberOfBytesToSend > maxDataSizeBytes; + + // If a split packet, we might have to upgrade the reliability + if ( splitPacket ) + { + // Split packets cannot be unreliable, in case that one part doesn't arrive and the whole cannot be reassembled. + // One part could not arrive either due to packetloss or due to unreliable discard + if (internalPacket->reliability==UNRELIABLE) + internalPacket->reliability=RELIABLE; + else if (internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT) + internalPacket->reliability=RELIABLE_WITH_ACK_RECEIPT; + else if (internalPacket->reliability==UNRELIABLE_SEQUENCED) + internalPacket->reliability=RELIABLE_SEQUENCED; +// else if (internalPacket->reliability==UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT) +// internalPacket->reliability=RELIABLE_SEQUENCED_WITH_ACK_RECEIPT; + } + + // ++sendMessageNumberIndex; + + if ( internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == UNRELIABLE_SEQUENCED +// || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// internalPacket->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + // Assign the sequence stream and index + internalPacket->orderingChannel = orderingChannel; + internalPacket->orderingIndex = orderedWriteIndex[ orderingChannel ]; + internalPacket->sequencingIndex = sequencedWriteIndex[ orderingChannel ]++; + + // This packet supersedes all other sequenced packets on the same ordering channel + // Delete all packets in all send lists that are sequenced and on the same ordering channel + // UPDATE: + // Disabled. We don't have enough info to consistently do this. Sometimes newer data does supercede + // older data such as with constantly declining health, but not in all cases. + // For example, with sequenced unreliable sound packets just because you send a newer one doesn't mean you + // don't need the older ones because the odds are they will still arrive in order + /* + for (int i=0; i < NUMBER_OF_PRIORITIES; i++) + { + DeleteSequencedPacketsInList(orderingChannel, sendQueue[i]); + } + */ + } + else if ( internalPacket->reliability == RELIABLE_ORDERED || internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT ) + { + // Assign the ordering channel and index + internalPacket->orderingChannel = orderingChannel; + internalPacket->orderingIndex = orderedWriteIndex[ orderingChannel ] ++; + sequencedWriteIndex[ orderingChannel ]=0; + } + + if ( splitPacket ) // If it uses a secure header it will be generated here + { + // Must split the packet. This will also generate the SHA1 if it is required. It also adds it to the send list. + //InternalPacket packetCopy; + //memcpy(&packetCopy, internalPacket, sizeof(InternalPacket)); + //sendPacketSet[priority].CancelWriteLock(internalPacket); + //SplitPacket( &packetCopy, MTUSize ); + SplitPacket( internalPacket ); + //RakNet::OP_DELETE_ARRAY(packetCopy.data, _FILE_AND_LINE_); + return true; + } + + RakAssert(internalPacket->dataBitLengthdataBitLengthmessageNumberAssigned==false); + outgoingPacketBuffer.Push( GetNextWeight(internalPacket->priority), internalPacket, _FILE_AND_LINE_ ); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthpriority]++; + statistics.bytesInSendBuffer[(int)internalPacket->priority]+=(double) BITS_TO_BYTES(internalPacket->dataBitLength); + + // sendPacketSet[priority].WriteUnlock(); + return true; +} +//------------------------------------------------------------------------------------------------------- +// Run this once per game cycle. Handles internal lists and actually does the send +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::Update( SOCKET s, SystemAddress &systemAddress, int MTUSize, CCTimeType time, + unsigned bitsPerSecondLimit, + DataStructures::List &messageHandlerList, + RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, + BitStream &updateBitStream) + +{ + (void) MTUSize; + + RakNet::TimeMS timeMs; +#if CC_TIME_TYPE_BYTES==4 + time/=1000; + timeMs=time; +#else + timeMs=(RakNet::TimeMS) (time/(CCTimeType)1000); +#endif + +#ifdef _DEBUG + while (delayList.Size()) + { + if (delayList.Peek()->sendTime <= timeMs) + { + DataAndTime *dat = delayList.Pop(); + SocketLayer::SendTo( dat->s, dat->data, dat->length, systemAddress, dat->remotePortRakNetWasStartedOn_PS3, dat->extraSocketOptions, __FILE__, __LINE__ ); + RakNet::OP_DELETE(dat,__FILE__,__LINE__); + } + break; + } +#endif + + // This line is necessary because the timer isn't accurate + if (time <= lastUpdateTime) + { + // Always set the last time in case of overflow + lastUpdateTime=time; + return; + } + + CCTimeType timeSinceLastTick = time - lastUpdateTime; + lastUpdateTime=time; +#if CC_TIME_TYPE_BYTES==4 + if (timeSinceLastTick>100) + timeSinceLastTick=100; +#else + if (timeSinceLastTick>100000) + timeSinceLastTick=100000; +#endif + + if (unreliableTimeout>0) + { + if (timeSinceLastTick>=timeToNextUnreliableCull) + { + if (unreliableLinkedListHead) + { + // Cull out all unreliable messages that have exceeded the timeout + InternalPacket *cur = unreliableLinkedListHead; + InternalPacket *end = unreliableLinkedListHead->unreliablePrev; + while (1) + { + if (time > cur->creationTime+(CCTimeType)unreliableTimeout) + { + // Flag invalid, and clear the memory. Still needs to be removed from the sendPacketSet later + // This fixes a problem where a remote system disconnects, but we don't know it yet, and memory consumption increases to a huge value + FreeInternalPacketData(cur, _FILE_AND_LINE_ ); + cur->data=0; + InternalPacket *next = cur->unreliableNext; + RemoveFromUnreliableLinkedList(cur); + + if (cur==end) + break; + + cur=next; + } + else + { + // if (cur==end) + // break; + // + // cur=cur->unreliableNext; + + // They should be inserted in-order, so no need to iterate past the first failure + break; + } + } + } + + timeToNextUnreliableCull=unreliableTimeout/(CCTimeType)2; + } + else + { + timeToNextUnreliableCull-=timeSinceLastTick; + } + } + + + // Due to thread vagarities and the way I store the time to avoid slow calls to RakNet::GetTime + // time may be less than lastAck +#if CC_TIME_TYPE_BYTES==4 + if ( statistics.messagesInResendBuffer!=0 && AckTimeout(time) ) +#else + if ( statistics.messagesInResendBuffer!=0 && AckTimeout(RakNet::TimeMS(time/(CCTimeType)1000)) ) +#endif + { + // SHOW - dead connection + // We've waited a very long time for a reliable packet to get an ack and it never has + deadConnection = true; + return; + } + + if (congestionManager.ShouldSendACKs(time,timeSinceLastTick)) + { + SendACKs(s, systemAddress, time, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, updateBitStream); + } + + if (NAKs.Size()>0) + { + updateBitStream.Reset(); + DatagramHeaderFormat dhfNAK; + dhfNAK.isNAK=true; + dhfNAK.isACK=false; + dhfNAK.isPacketPair=false; + dhfNAK.Serialize(&updateBitStream); + NAKs.Serialize(&updateBitStream, GetMaxDatagramSizeExcludingMessageHeaderBits(), true); + SendBitStream( s, systemAddress, &updateBitStream, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, time ); + } + + DatagramHeaderFormat dhf; + dhf.needsBAndAs=congestionManager.GetIsInSlowStart(); + dhf.isContinuousSend=bandwidthExceededStatistic; + // bandwidthExceededStatistic=sendPacketSet[0].IsEmpty()==false || + // sendPacketSet[1].IsEmpty()==false || + // sendPacketSet[2].IsEmpty()==false || + // sendPacketSet[3].IsEmpty()==false; + bandwidthExceededStatistic=outgoingPacketBuffer.Size()>0; + + const bool hasDataToSendOrResend = IsResendQueueEmpty()==false || bandwidthExceededStatistic; + RakAssert(NUMBER_OF_PRIORITIES==4); + congestionManager.Update(time, hasDataToSendOrResend); + + statistics.BPSLimitByOutgoingBandwidthLimit = BITS_TO_BYTES(bitsPerSecondLimit); + statistics.BPSLimitByCongestionControl = congestionManager.GetBytesPerSecondLimitByCongestionControl(); + + unsigned int i; + if (time > lastBpsClear+ +#if CC_TIME_TYPE_BYTES==4 + 100 +#else + 100000 +#endif + ) + { + for (i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + bpsMetrics[i].ClearExpired1(time); + } + + lastBpsClear=time; + } + + if (unreliableWithAckReceiptHistory.Size()>0) + { + i=0; + while (i < unreliableWithAckReceiptHistory.Size()) + { + if (unreliableWithAckReceiptHistory[i].nextActionTime < time) + { + InternalPacket *ackReceipt = AllocateFromInternalPacketPool(); + AllocInternalPacketData(ackReceipt, 5, false, _FILE_AND_LINE_ ); + ackReceipt->dataBitLength=BYTES_TO_BITS(5); + ackReceipt->data[0]=(MessageID)ID_SND_RECEIPT_LOSS; + memcpy(ackReceipt->data+sizeof(MessageID), &unreliableWithAckReceiptHistory[i].sendReceiptSerial, sizeof(uint32_t)); + outputQueue.Push(ackReceipt, _FILE_AND_LINE_ ); + + // Remove, swap with last + unreliableWithAckReceiptHistory.RemoveAtIndex(i); + } + else + i++; + } + } + + if (hasDataToSendOrResend==true) + { + InternalPacket *internalPacket; + // bool forceSend=false; + bool pushedAnything; + BitSize_t nextPacketBitLength; + dhf.isACK=false; + dhf.isNAK=false; + dhf.hasBAndAS=false; + ResetPacketsAndDatagrams(); + + int transmissionBandwidth = congestionManager.GetTransmissionBandwidth(time, timeSinceLastTick, unacknowledgedBytes,dhf.isContinuousSend); + int retransmissionBandwidth = congestionManager.GetRetransmissionBandwidth(time, timeSinceLastTick, unacknowledgedBytes,dhf.isContinuousSend); + if (retransmissionBandwidth>0 || transmissionBandwidth>0) + { + statistics.isLimitedByCongestionControl=false; + + allDatagramSizesSoFar=0; + + // Keep filling datagrams until we exceed retransmission bandwidth + while ((int)BITS_TO_BYTES(allDatagramSizesSoFar)messageNumberAssigned==true); + + if ( internalPacket->nextActionTime < time ) + { + nextPacketBitLength = internalPacket->headerLength + internalPacket->dataBitLength; + if ( datagramSizeSoFar + nextPacketBitLength > GetMaxDatagramSizeExcludingMessageHeaderBits() ) + { + // Gathers all PushPackets() + PushDatagram(); + break; + } + + PopListHead(false); + + CC_DEBUG_PRINTF_2("Rs %i ", internalPacket->reliableMessageNumber.val); + + bpsMetrics[(int) USER_MESSAGE_BYTES_RESENT].Push1(time,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Testing1 +// if (internalPacket->reliability==RELIABLE_ORDERED || internalPacket->reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT) +// printf("RESEND reliableMessageNumber %i with datagram %i\n", internalPacket->reliableMessageNumber.val, congestionManager.GetNextDatagramSequenceNumber().val); + + PushPacket(time,internalPacket,true); // Affects GetNewTransmissionBandwidth() +// internalPacket->timesSent++; + internalPacket->nextActionTime = congestionManager.GetRTOForRetransmission()+time; +#if CC_TIME_TYPE_BYTES==4 + if (internalPacket->nextActionTime-time > 10000) +#else + if (internalPacket->nextActionTime-time > 10000000) +#endif + { + // int a=5; + RakAssert(0); + } + + congestionManager.OnResend(time); + + pushedAnything=true; + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS) time, true); +#else + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS)(time/(CCTimeType)1000), true); +#endif + } + + // Put the packet back into the resend list at the correct spot + // Don't make a copy since I'm reinserting an allocated struct + InsertPacketIntoResendList( internalPacket, time, false, false ); + + // Removeme + // printf("Resend:%i ", internalPacket->reliableMessageNumber); + } + else + { + // Filled one datagram. + // If the 2nd and it's time to send a datagram pair, will be marked as a pair + PushDatagram(); + break; + } + } + + if (pushedAnything==false) + break; + } + } + else + { + statistics.isLimitedByCongestionControl=true; + } + + if ((int)BITS_TO_BYTES(allDatagramSizesSoFar)messageNumberAssigned==false); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthdata==0) + { + //sendPacketSet[ i ].Pop(); + outgoingPacketBuffer.Pop(0); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthpriority]--; + statistics.bytesInSendBuffer[(int)internalPacket->priority]-=(double) BITS_TO_BYTES(internalPacket->dataBitLength); + ReleaseToInternalPacketPool( internalPacket ); + continue; + } + + internalPacket->headerLength=GetMessageHeaderLengthBits(internalPacket); + nextPacketBitLength = internalPacket->headerLength + internalPacket->dataBitLength; + if ( datagramSizeSoFar + nextPacketBitLength > GetMaxDatagramSizeExcludingMessageHeaderBits() ) + { + // Hit MTU. May still push packets if smaller ones exist at a lower priority + RakAssert(datagramSizeSoFar!=0); + RakAssert(internalPacket->dataBitLengthreliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + isReliable = true; + else + isReliable = false; + + //sendPacketSet[ i ].Pop(); + outgoingPacketBuffer.Pop(0); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthmessageNumberAssigned==false); + statistics.messageInSendBuffer[(int)internalPacket->priority]--; + statistics.bytesInSendBuffer[(int)internalPacket->priority]-=(double) BITS_TO_BYTES(internalPacket->dataBitLength); + if (isReliable + /* + I thought about this and agree that UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT and RELIABLE_SEQUENCED_WITH_ACK_RECEIPT is not useful unless you also know if the message was discarded. + + The problem is that internally, message numbers are only assigned to reliable messages, because message numbers are only used to discard duplicate message receipt and only reliable messages get sent more than once. However, without message numbers getting assigned and transmitted, there is no way to tell the sender about which messages were discarded. In fact, in looking this over I realized that UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT introduced a bug, because the remote system assumes all message numbers are used (no holes). With that send type, on packetloss, a permanent hole would have been created which eventually would cause the system to discard all further packets. + + So I have two options. Either do not support ack receipts when sending sequenced, or write complex and major new systems. UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT would need to send the message ID number on a special channel which allows for non-delivery. And both of them would need to have a special range list to indicate which message numbers were not delivered, so when acks are sent that can be indicated as well. A further problem is that the ack itself can be lost - it is possible that the message can arrive but be discarded, yet the ack is lost. On resend, the resent message would be ignored as duplicate, and you'd never get the discard message either (unless I made a special buffer for that case too). +*/ +// || + // If needs an ack receipt, keep the internal packet around in the list +// internalPacket->reliability == UNRELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + internalPacket->messageNumberAssigned=true; + internalPacket->reliableMessageNumber=sendReliableMessageNumberIndex; + internalPacket->nextActionTime = congestionManager.GetRTOForRetransmission()+time; +#if CC_TIME_TYPE_BYTES==4 + const CCTimeType threshhold = 10000; +#else + const CCTimeType threshhold = 10000000; +#endif + if (internalPacket->nextActionTime-time > threshhold) + { + // int a=5; + RakAssert(time-internalPacket->nextActionTime < threshhold); + } + //resendTree.Insert( internalPacket->reliableMessageNumber, internalPacket); + if (resendBuffer[internalPacket->reliableMessageNumber & (uint32_t) RESEND_BUFFER_ARRAY_MASK]!=0) + { + // bool overflow = ResendBufferOverflow(); + RakAssert(0); + } + resendBuffer[internalPacket->reliableMessageNumber & (uint32_t) RESEND_BUFFER_ARRAY_MASK] = internalPacket; + statistics.messagesInResendBuffer++; + statistics.bytesInResendBuffer+=BITS_TO_BYTES(internalPacket->dataBitLength); + + // printf("pre:%i ", unacknowledgedBytes); + + InsertPacketIntoResendList( internalPacket, time, true, isReliable); + + + // printf("post:%i ", unacknowledgedBytes); + sendReliableMessageNumberIndex++; + } + else if (internalPacket->reliability == UNRELIABLE_WITH_ACK_RECEIPT) + { + unreliableWithAckReceiptHistory.Push(UnreliableWithAckReceiptNode( + congestionManager.GetNextDatagramSequenceNumber() + packetsToSendThisUpdateDatagramBoundaries.Size(), + internalPacket->sendReceiptSerial, + congestionManager.GetRTOForRetransmission()+time + ), _FILE_AND_LINE_); + } + +// internalPacket->timesSent=1; + // If isReliable is false, the packet and its contents will be added to a list to be freed in ClearPacketsAndDatagrams + // However, the internalPacket structure will remain allocated and be in the resendBuffer list if it requires a receipt + bpsMetrics[(int) USER_MESSAGE_BYTES_SENT].Push1(time,BITS_TO_BYTES(internalPacket->dataBitLength)); + + // Testing1 +// if (internalPacket->reliability==RELIABLE_ORDERED || internalPacket->reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT) +// printf("SEND reliableMessageNumber %i in datagram %i\n", internalPacket->reliableMessageNumber.val, congestionManager.GetNextDatagramSequenceNumber().val); + + PushPacket(time,internalPacket, isReliable); + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS)time, true); +#else + messageHandlerList[messageHandlerIndex]->OnInternalPacket(internalPacket, packetsToSendThisUpdateDatagramBoundaries.Size()+congestionManager.GetNextDatagramSequenceNumber(), systemAddress, (RakNet::TimeMS)(time/(CCTimeType)1000), true); +#endif + } + pushedAnything=true; + + if (ResendBufferOverflow()) + break; + } + // if (ResendBufferOverflow()) + // break; + // }z + + // No datagrams pushed? + if (datagramSizeSoFar==0) + break; + + // Filled one datagram. + // If the 2nd and it's time to send a datagram pair, will be marked as a pair + PushDatagram(); + } + } + + + for (unsigned int datagramIndex=0; datagramIndex < packetsToSendThisUpdateDatagramBoundaries.Size(); datagramIndex++) + { + if (datagramIndex>0) + dhf.isContinuousSend=true; + MessageNumberNode* messageNumberNode = 0; + dhf.datagramNumber=congestionManager.GetAndIncrementNextDatagramSequenceNumber(); + dhf.isPacketPair=datagramsToSendThisUpdateIsPair[datagramIndex]; + + //printf("%p pushing datagram %i\n", this, dhf.datagramNumber.val); + + bool isSecondOfPacketPair=dhf.isPacketPair && datagramIndex>0 && datagramsToSendThisUpdateIsPair[datagramIndex-1]; + unsigned int msgIndex, msgTerm; + if (datagramIndex==0) + { + msgIndex=0; + msgTerm=packetsToSendThisUpdateDatagramBoundaries[0]; + } + else + { + msgIndex=packetsToSendThisUpdateDatagramBoundaries[datagramIndex-1]; + msgTerm=packetsToSendThisUpdateDatagramBoundaries[datagramIndex]; + } + + // More accurate time to reset here +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + dhf.sourceSystemTime=RakNet::GetTimeUS(); +#endif + updateBitStream.Reset(); + dhf.Serialize(&updateBitStream); + CC_DEBUG_PRINTF_2("S%i ",dhf.datagramNumber.val); + + while (msgIndex < msgTerm) + { + // If reliable or needs receipt + if ( packetsToSendThisUpdate[msgIndex]->reliability != UNRELIABLE && + packetsToSendThisUpdate[msgIndex]->reliability != UNRELIABLE_SEQUENCED + ) + { + if (messageNumberNode==0) + { + messageNumberNode = AddFirstToDatagramHistory(dhf.datagramNumber, packetsToSendThisUpdate[msgIndex]->reliableMessageNumber, time); + } + else + { + messageNumberNode = AddSubsequentToDatagramHistory(messageNumberNode, packetsToSendThisUpdate[msgIndex]->reliableMessageNumber); + } + } + + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + WriteToBitStreamFromInternalPacket( &updateBitStream, packetsToSendThisUpdate[msgIndex], time ); + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + msgIndex++; + } + + if (isSecondOfPacketPair) + { + // Pad to size of first datagram + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + updateBitStream.PadWithZeroToByteLength(datagramSizesInBytes[datagramIndex-1]); + RakAssert(updateBitStream.GetNumberOfBytesUsed()<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + } + + if (messageNumberNode==0) + { + // Unreliable, add dummy node + AddFirstToDatagramHistory(dhf.datagramNumber, time); + } + + // Store what message ids were sent with this datagram + // datagramMessageIDTree.Insert(dhf.datagramNumber,idList); + + congestionManager.OnSendBytes(time,UDP_HEADER_SIZE+DatagramHeaderFormat::GetDataHeaderByteLength()); + + SendBitStream( s, systemAddress, &updateBitStream, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, time ); + + bandwidthExceededStatistic=outgoingPacketBuffer.Size()>0; + // bandwidthExceededStatistic=sendPacketSet[0].IsEmpty()==false || + // sendPacketSet[1].IsEmpty()==false || + // sendPacketSet[2].IsEmpty()==false || + // sendPacketSet[3].IsEmpty()==false; + + + + if (bandwidthExceededStatistic==true) + timeOfLastContinualSend=time; + else + timeOfLastContinualSend=0; + } + + ClearPacketsAndDatagrams(); + + // Any data waiting to send after attempting to send, then bandwidth is exceeded + bandwidthExceededStatistic=outgoingPacketBuffer.Size()>0; + // bandwidthExceededStatistic=sendPacketSet[0].IsEmpty()==false || + // sendPacketSet[1].IsEmpty()==false || + // sendPacketSet[2].IsEmpty()==false || + // sendPacketSet[3].IsEmpty()==false; + } + + + // Keep on top of deleting old unreliable split packets so they don't clog the list. + //DeleteOldUnreliableSplitPackets( time ); +} + +//------------------------------------------------------------------------------------------------------- +// Writes a bitstream to the socket +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SendBitStream( SOCKET s, SystemAddress &systemAddress, RakNet::BitStream *bitStream, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType currentTime) +{ + (void) systemAddress; + (void) rnr; + + unsigned int length; + + length = (unsigned int) bitStream->GetNumberOfBytesUsed(); + + +#ifdef _DEBUG + if (packetloss > 0.0) + { + if (frandomMT() < packetloss) + return; + } + + if (minExtraPing > 0 || extraPingVariance > 0) + { + RakNet::TimeMS delay = minExtraPing; + if (extraPingVariance>0) + delay += (randomMT() % extraPingVariance); + if (delay > 0) + { + DataAndTime *dat = RakNet::OP_NEW(__FILE__,__LINE__); + memcpy(dat->data, ( char* ) bitStream->GetData(), length ); + dat->s=s; + dat->length=length; + dat->sendTime = RakNet::GetTimeMS() + delay; + dat->remotePortRakNetWasStartedOn_PS3=remotePortRakNetWasStartedOn_PS3; + dat->extraSocketOptions=extraSocketOptions; + for (unsigned int i=0; i < delayList.Size(); i++) + { + if (dat->sendTime < delayList[i]->sendTime) + { + delayList.PushAtHead(dat, i, __FILE__, __LINE__); + dat=0; + break; + } + } + if (dat!=0) + delayList.Push(dat,__FILE__,__LINE__); + return; + } + } +#endif + +#if LIBCAT_SECURITY==1 + if (useSecurity) + { + unsigned char *buffer = reinterpret_cast( bitStream->GetData() ); + + int buffer_size = bitStream->GetNumberOfBitsAllocated() / 8; + + // Verify there is enough room for encrypted output and encrypt + // Encrypt() will increase length + bool success = auth_enc.Encrypt(buffer, buffer_size, length); + RakAssert(success); + } +#endif + + bpsMetrics[(int) ACTUAL_BYTES_SENT].Push1(currentTime,length); + + RakAssert(length <= congestionManager.GetMTU()); + +#ifdef USE_THREADED_SEND + SendToThread::SendToThreadBlock *block = SendToThread::AllocateBlock(); + memcpy(block->data, bitStream->GetData(), length); + block->dataWriteOffset=length; + block->extraSocketOptions=extraSocketOptions; + block->remotePortRakNetWasStartedOn_PS3=remotePortRakNetWasStartedOn_PS3; + block->s=s; + block->systemAddress=systemAddress; + SendToThread::ProcessBlock(block); +#else + SocketLayer::SendTo( s, ( char* ) bitStream->GetData(), length, systemAddress, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, __FILE__, __LINE__ ); +#endif +} + +//------------------------------------------------------------------------------------------------------- +// Are we waiting for any data to be sent out or be processed by the player? +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsOutgoingDataWaiting(void) +{ + if (outgoingPacketBuffer.Size()>0) + return true; + + // unsigned i; + // for ( i = 0; i < NUMBER_OF_PRIORITIES; i++ ) + // { + // if (sendPacketSet[ i ].Size() > 0) + // return true; + // } + + return + //acknowlegements.Size() > 0 || + //resendTree.IsEmpty()==false;// || outputQueue.Size() > 0 || orderingList.Size() > 0 || splitPacketChannelList.Size() > 0; + statistics.messagesInResendBuffer!=0; +} +bool ReliabilityLayer::AreAcksWaiting(void) +{ + return acknowlegements.Size() > 0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ApplyNetworkSimulator( double _packetloss, RakNet::TimeMS _minExtraPing, RakNet::TimeMS _extraPingVariance ) +{ +#ifdef _DEBUG + packetloss=_packetloss; + minExtraPing=_minExtraPing; + extraPingVariance=_extraPingVariance; + // if (ping < (unsigned int)(minExtraPing+extraPingVariance)*2) + // ping=(minExtraPing+extraPingVariance)*2; +#endif +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SetSplitMessageProgressInterval(int interval) +{ + splitMessageProgressInterval=interval; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SetUnreliableTimeout(RakNet::TimeMS timeoutMS) +{ +#if CC_TIME_TYPE_BYTES==4 + unreliableTimeout=timeoutMS; +#else + unreliableTimeout=(CCTimeType)timeoutMS*(CCTimeType)1000; +#endif +} + +//------------------------------------------------------------------------------------------------------- +// This will return true if we should not send at this time +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsSendThrottled( int MTUSize ) +{ + (void) MTUSize; + + return false; + // return resendList.Size() > windowSize; + + // Disabling this, because it can get stuck here forever + /* + unsigned packetsWaiting; + unsigned resendListDataSize=0; + unsigned i; + for (i=0; i < resendList.Size(); i++) + { + if (resendList[i]) + resendListDataSize+=resendList[i]->dataBitLength; + } + packetsWaiting = 1 + ((BITS_TO_BYTES(resendListDataSize)) / (MTUSize - UDP_HEADER_SIZE - 10)); // 10 to roughly estimate the raknet header + + return packetsWaiting >= windowSize; + */ +} + +//------------------------------------------------------------------------------------------------------- +// We lost a packet +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::UpdateWindowFromPacketloss( CCTimeType time ) +{ + (void) time; +} + +//------------------------------------------------------------------------------------------------------- +// Increase the window size +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::UpdateWindowFromAck( CCTimeType time ) +{ + (void) time; +} + +//------------------------------------------------------------------------------------------------------- +// Does what the function name says +//------------------------------------------------------------------------------------------------------- +unsigned ReliabilityLayer::RemovePacketFromResendListAndDeleteOlderReliableSequenced( const MessageNumberType messageNumber, CCTimeType time, DataStructures::List &messageHandlerList, const SystemAddress &systemAddress ) +{ + (void) time; + (void) messageNumber; + InternalPacket * internalPacket; + //InternalPacket *temp; +// PacketReliability reliability; // What type of reliability algorithm to use with this packet +// unsigned char orderingChannel; // What ordering channel this packet is on, if the reliability type uses ordering channels +// OrderingIndexType orderingIndex; // The ID used as identification for ordering channels + // unsigned j; + + for (unsigned int messageHandlerIndex=0; messageHandlerIndex < messageHandlerList.Size(); messageHandlerIndex++) + { +#if CC_TIME_TYPE_BYTES==4 + messageHandlerList[messageHandlerIndex]->OnAck(messageNumber, systemAddress, time); +#else + messageHandlerList[messageHandlerIndex]->OnAck(messageNumber, systemAddress, (RakNet::TimeMS)(time/(CCTimeType)1000)); +#endif + } + + // Testing1 +// if (resendLinkedListHead) +// { +// InternalPacket *internalPacket = resendLinkedListHead; +// do +// { +// internalPacket=internalPacket->resendNext; +// printf("%i ", internalPacket->reliableMessageNumber.val); +// } while (internalPacket!=resendLinkedListHead); +// printf("\n"); +// } + + // bool deleted; + // deleted=resendTree.Delete(messageNumber, internalPacket); + internalPacket = resendBuffer[messageNumber & RESEND_BUFFER_ARRAY_MASK]; + // May ask to remove twice, for example resend twice, then second ack + if (internalPacket && internalPacket->reliableMessageNumber==messageNumber) + { + // ValidateResendList(); + resendBuffer[messageNumber & RESEND_BUFFER_ARRAY_MASK]=0; + CC_DEBUG_PRINTF_2("AckRcv %i ", messageNumber); + + statistics.messagesInResendBuffer--; + statistics.bytesInResendBuffer-=BITS_TO_BYTES(internalPacket->dataBitLength); + +// orderingIndex = internalPacket->orderingIndex; + totalUserDataBytesAcked+=(double) BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength); + + // Return receipt if asked for + if (internalPacket->reliability>=RELIABLE_WITH_ACK_RECEIPT && + (internalPacket->splitPacketCount==0 || internalPacket->splitPacketIndex+1==internalPacket->splitPacketCount) + ) + { + InternalPacket *ackReceipt = AllocateFromInternalPacketPool(); + AllocInternalPacketData(ackReceipt, 5, false, _FILE_AND_LINE_ ); + ackReceipt->dataBitLength=BYTES_TO_BITS(5); + ackReceipt->data[0]=(MessageID)ID_SND_RECEIPT_ACKED; + memcpy(ackReceipt->data+sizeof(MessageID), &internalPacket->sendReceiptSerial, sizeof(internalPacket->sendReceiptSerial)); + outputQueue.Push(ackReceipt, _FILE_AND_LINE_ ); + } + + bool isReliable; + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + isReliable = true; + else + isReliable = false; + + RemoveFromList(internalPacket, isReliable); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + + return 0; + } + else + { + + } + + return (unsigned)-1; +} + +//------------------------------------------------------------------------------------------------------- +// Acknowledge receipt of the packet with the specified messageNumber +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SendAcknowledgementPacket( const DatagramSequenceNumberType messageNumber, CCTimeType time ) +{ + + // REMOVEME + // printf("%p Send ack %i\n", this, messageNumber.val); + + nextAckTimeToSend=time; + acknowlegements.Insert(messageNumber); + + //printf("ACK_DG:%i ", messageNumber.val); + + CC_DEBUG_PRINTF_2("AckPush %i ", messageNumber); + +} + +//------------------------------------------------------------------------------------------------------- +// Parse an internalPacket and figure out how many header bits would be +// written. Returns that number +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::GetMaxMessageHeaderLengthBits( void ) +{ + InternalPacket ip; + ip.reliability=RELIABLE_SEQUENCED; + ip.splitPacketCount=1; + return GetMessageHeaderLengthBits(&ip); +} +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::GetMessageHeaderLengthBits( const InternalPacket *const internalPacket ) +{ + BitSize_t bitLength; + + // bitStream->AlignWriteToByteBoundary(); // Potentially unaligned + // tempChar=(unsigned char)internalPacket->reliability; bitStream->WriteBits( (const unsigned char *)&tempChar, 3, true ); // 3 bits to write reliability. + // bool hasSplitPacket = internalPacket->splitPacketCount>0; bitStream->Write(hasSplitPacket); // Write 1 bit to indicate if splitPacketCount>0 + bitLength = 8*1; + + // bitStream->AlignWriteToByteBoundary(); + // RakAssert(internalPacket->dataBitLength < 65535); + // unsigned short s; s = (unsigned short) internalPacket->dataBitLength; bitStream->WriteAlignedVar16((const char*)& s); + bitLength += 8*2; + + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + bitLength += 8*3; // bitStream->Write(internalPacket->reliableMessageNumber); // Message sequence number + // bitStream->AlignWriteToByteBoundary(); // Potentially nothing else to write + + + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED + ) + { + bitLength += 8*3;; // bitStream->Write(internalPacket->_sequencingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + } + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + { + bitLength += 8*3; // bitStream->Write(internalPacket->orderingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + bitLength += 8*1; // tempChar=internalPacket->orderingChannel; bitStream->WriteAlignedVar8((const char*)& tempChar); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 5 bits needed, write one byte + } + if (internalPacket->splitPacketCount>0) + { + bitLength += 8*4; // bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketCount); RakAssert(sizeof(SplitPacketIndexType)==4); // Only needed if splitPacketCount>0. 4 bytes + bitLength += 8*sizeof(SplitPacketIdType); // bitStream->WriteAlignedVar16((const char*)& internalPacket->splitPacketId); RakAssert(sizeof(SplitPacketIdType)==2); // Only needed if splitPacketCount>0. + bitLength += 8*4; // bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketIndex); // Only needed if splitPacketCount>0. 4 bytes + } + + return bitLength; +} + +//------------------------------------------------------------------------------------------------------- +// Parse an internalPacket and create a bitstream to represent this data +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::WriteToBitStreamFromInternalPacket( RakNet::BitStream *bitStream, const InternalPacket *const internalPacket, CCTimeType curTime ) +{ + (void) curTime; + + BitSize_t start = bitStream->GetNumberOfBitsUsed(); + unsigned char tempChar; + + // (Incoming data may be all zeros due to padding) + bitStream->AlignWriteToByteBoundary(); // Potentially unaligned + if (internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT) + tempChar=UNRELIABLE; + else if (internalPacket->reliability==RELIABLE_WITH_ACK_RECEIPT) + tempChar=RELIABLE; + else if (internalPacket->reliability==RELIABLE_ORDERED_WITH_ACK_RECEIPT) + tempChar=RELIABLE_ORDERED; + else + tempChar=(unsigned char)internalPacket->reliability; + + bitStream->WriteBits( (const unsigned char *)&tempChar, 3, true ); // 3 bits to write reliability. + + bool hasSplitPacket = internalPacket->splitPacketCount>0; bitStream->Write(hasSplitPacket); // Write 1 bit to indicate if splitPacketCount>0 + bitStream->AlignWriteToByteBoundary(); + RakAssert(internalPacket->dataBitLength < 65535); + unsigned short s; s = (unsigned short) internalPacket->dataBitLength; bitStream->WriteAlignedVar16((const char*)& s); + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + bitStream->Write(internalPacket->reliableMessageNumber); // Used for all reliable types + bitStream->AlignWriteToByteBoundary(); // Potentially nothing else to write + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED + ) + { + bitStream->Write(internalPacket->sequencingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + } + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + { + bitStream->Write(internalPacket->orderingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + tempChar=internalPacket->orderingChannel; bitStream->WriteAlignedVar8((const char*)& tempChar); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 5 bits needed, write one byte + } + + if (internalPacket->splitPacketCount>0) + { + // printf("Write before\n"); + // bitStream->PrintBits(); + + bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketCount); RakAssert(sizeof(SplitPacketIndexType)==4); // Only needed if splitPacketCount>0. 4 bytes + bitStream->WriteAlignedVar16((const char*)& internalPacket->splitPacketId); RakAssert(sizeof(SplitPacketIdType)==2); // Only needed if splitPacketCount>0. + bitStream->WriteAlignedVar32((const char*)& internalPacket->splitPacketIndex); // Only needed if splitPacketCount>0. 4 bytes + + // printf("Write after\n"); + // bitStream->PrintBits(); + } + + // Write the actual data. + bitStream->WriteAlignedBytes( ( unsigned char* ) internalPacket->data, BITS_TO_BYTES( internalPacket->dataBitLength ) ); + + return bitStream->GetNumberOfBitsUsed() - start; +} + +//------------------------------------------------------------------------------------------------------- +// Parse a bitstream and create an internal packet to represent this data +//------------------------------------------------------------------------------------------------------- +InternalPacket* ReliabilityLayer::CreateInternalPacketFromBitStream( RakNet::BitStream *bitStream, CCTimeType time ) +{ + bool bitStreamSucceeded; + InternalPacket* internalPacket; + unsigned char tempChar; + bool hasSplitPacket=false; + bool readSuccess; + + if ( bitStream->GetNumberOfUnreadBits() < (int) sizeof( internalPacket->reliableMessageNumber ) * 8 ) + return 0; // leftover bits + + internalPacket = AllocateFromInternalPacketPool(); + if (internalPacket==0) + { + // Out of memory + RakAssert(0); + return 0; + } + internalPacket->creationTime = time; + + // (Incoming data may be all zeros due to padding) + bitStream->AlignReadToByteBoundary(); // Potentially unaligned + bitStream->ReadBits( ( unsigned char* ) ( &( tempChar ) ), 3 ); + internalPacket->reliability = ( const PacketReliability ) tempChar; + readSuccess=bitStream->Read(hasSplitPacket); // Read 1 bit to indicate if splitPacketCount>0 + bitStream->AlignReadToByteBoundary(); + unsigned short s; bitStream->ReadAlignedVar16((char*)&s); internalPacket->dataBitLength=s; // Length of message (2 bytes) + if ( internalPacket->reliability == RELIABLE || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED + // I don't write ACK_RECEIPT to the remote system +// || +// internalPacket->reliability == RELIABLE_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + bitStream->Read(internalPacket->reliableMessageNumber); // Message sequence number + else + internalPacket->reliableMessageNumber=(MessageNumberType)(const uint32_t)-1; + bitStream->AlignReadToByteBoundary(); // Potentially nothing else to Read + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED + ) + { + bitStream->Read(internalPacket->sequencingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. + } + + if ( internalPacket->reliability == UNRELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_SEQUENCED || + internalPacket->reliability == RELIABLE_ORDERED || + internalPacket->reliability == RELIABLE_ORDERED_WITH_ACK_RECEIPT + ) + { + bitStream->Read(internalPacket->orderingIndex); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 4 bytes. + readSuccess=bitStream->ReadAlignedVar8((char*)& internalPacket->orderingChannel); // Used for UNRELIABLE_SEQUENCED, RELIABLE_SEQUENCED, RELIABLE_ORDERED. 5 bits needed, Read one byte + } + else + internalPacket->orderingChannel=0; + + if (hasSplitPacket) + { +// printf("Read before\n"); +// bitStream->PrintBits(); + + bitStream->ReadAlignedVar32((char*)& internalPacket->splitPacketCount); // Only needed if splitPacketCount>0. 4 bytes + bitStream->ReadAlignedVar16((char*)& internalPacket->splitPacketId); // Only needed if splitPacketCount>0. + readSuccess=bitStream->ReadAlignedVar32((char*)& internalPacket->splitPacketIndex); // Only needed if splitPacketCount>0. 4 bytes + RakAssert(readSuccess); + +// printf("Read after\n"); +// bitStream->PrintBits(); + } + else + { + internalPacket->splitPacketCount=0; + } + + if (readSuccess==false || + internalPacket->dataBitLength==0 || + internalPacket->reliability>=NUMBER_OF_RELIABILITIES || + internalPacket->orderingChannel>=32 || + (hasSplitPacket && (internalPacket->splitPacketIndex >= internalPacket->splitPacketCount))) + { + // If this assert hits, encoding is garbage + RakAssert("Encoding is garbage" && 0); + ReleaseToInternalPacketPool( internalPacket ); + return 0; + } + + // Allocate memory to hold our data + AllocInternalPacketData(internalPacket, BITS_TO_BYTES( internalPacket->dataBitLength ), false, _FILE_AND_LINE_ ); + RakAssert(BITS_TO_BYTES( internalPacket->dataBitLength )data == 0) + { + RakAssert("Out of memory in ReliabilityLayer::CreateInternalPacketFromBitStream" && 0); + notifyOutOfMemory(_FILE_AND_LINE_); + ReleaseToInternalPacketPool( internalPacket ); + return 0; + } + + // Set the last byte to 0 so if ReadBits does not read a multiple of 8 the last bits are 0'ed out + internalPacket->data[ BITS_TO_BYTES( internalPacket->dataBitLength ) - 1 ] = 0; + + // Read the data the packet holds + bitStreamSucceeded = bitStream->ReadAlignedBytes( ( unsigned char* ) internalPacket->data, BITS_TO_BYTES( internalPacket->dataBitLength ) ); + + if ( bitStreamSucceeded == false ) + { + // If this hits, most likely the variable buff is too small in RunUpdateCycle in RakPeer.cpp + RakAssert("Couldn't read all the data" && 0); + + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + return 0; + } + + return internalPacket; +} + + +//------------------------------------------------------------------------------------------------------- +// Get the SHA1 code +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::GetSHA1( unsigned char * const buffer, unsigned int + nbytes, char code[ SHA1_LENGTH ] ) +{ + CSHA1 sha1; + + sha1.Reset(); + sha1.Update( ( unsigned char* ) buffer, nbytes ); + sha1.Final(); + memcpy( code, sha1.GetHash(), SHA1_LENGTH ); +} + +//------------------------------------------------------------------------------------------------------- +// Check the SHA1 code +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::CheckSHA1( char code[ SHA1_LENGTH ], unsigned char * + const buffer, unsigned int nbytes ) +{ + char code2[ SHA1_LENGTH ]; + GetSHA1( buffer, nbytes, code2 ); + + for ( int i = 0; i < SHA1_LENGTH; i++ ) + if ( code[ i ] != code2[ i ] ) + return false; + + return true; +} + +//------------------------------------------------------------------------------------------------------- +// Search the specified list for sequenced packets on the specified ordering +// stream, optionally skipping those with splitPacketId, and delete them +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::List&theList, int splitPacketId ) +{ + unsigned i = 0; + + while ( i < theList.Size() ) + { + if ( ( + theList[ i ]->reliability == RELIABLE_SEQUENCED || + theList[ i ]->reliability == UNRELIABLE_SEQUENCED +// || +// theList[ i ]->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// theList[ i ]->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) && + theList[ i ]->orderingChannel == orderingChannel && ( splitPacketId == -1 || theList[ i ]->splitPacketId != (unsigned int) splitPacketId ) ) + { + InternalPacket * internalPacket = theList[ i ]; + theList.RemoveAtIndex( i ); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + } + + else + i++; + } +} + +//------------------------------------------------------------------------------------------------------- +// Search the specified list for sequenced packets with a value less than orderingIndex and delete them +// Note - I added functionality so you can use the Queue as a list (in this case for searching) but it is less efficient to do so than a regular list +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::Queue&theList ) +{ + InternalPacket * internalPacket; + int listSize = theList.Size(); + int i = 0; + + while ( i < listSize ) + { + if ( ( + theList[ i ]->reliability == RELIABLE_SEQUENCED || + theList[ i ]->reliability == UNRELIABLE_SEQUENCED +// || +// theList[ i ]->reliability == RELIABLE_SEQUENCED_WITH_ACK_RECEIPT || +// theList[ i ]->reliability == UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) && theList[ i ]->orderingChannel == orderingChannel ) + { + internalPacket = theList[ i ]; + theList.RemoveAtIndex( i ); + FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + listSize--; + } + + else + i++; + } +} + +//------------------------------------------------------------------------------------------------------- +// Returns true if newPacketOrderingIndex is older than the waitingForPacketOrderingIndex +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsOlderOrderedPacket( OrderingIndexType newPacketOrderingIndex, OrderingIndexType waitingForPacketOrderingIndex ) +{ + OrderingIndexType maxRange = (OrderingIndexType) (const uint32_t)-1; + + if ( waitingForPacketOrderingIndex > maxRange/(OrderingIndexType)2 ) + { + if ( newPacketOrderingIndex >= waitingForPacketOrderingIndex - maxRange/(OrderingIndexType)2+(OrderingIndexType)1 && newPacketOrderingIndex < waitingForPacketOrderingIndex ) + { + return true; + } + } + + else + if ( newPacketOrderingIndex >= ( OrderingIndexType ) ( waitingForPacketOrderingIndex - (( OrderingIndexType ) maxRange/(OrderingIndexType)2+(OrderingIndexType)1) ) || + newPacketOrderingIndex < waitingForPacketOrderingIndex ) + { + return true; + } + + // Old packet + return false; +} + +//------------------------------------------------------------------------------------------------------- +// Split the passed packet into chunks under MTU_SIZEbytes (including headers) and save those new chunks +// Optimized version +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SplitPacket( InternalPacket *internalPacket ) +{ + // Doing all sizes in bytes in this function so I don't write partial bytes with split packets + internalPacket->splitPacketCount = 1; // This causes GetMessageHeaderLengthBits to account for the split packet header + unsigned int headerLength = (unsigned int) BITS_TO_BYTES( GetMessageHeaderLengthBits( internalPacket ) ); + unsigned int dataByteLength = (unsigned int) BITS_TO_BYTES( internalPacket->dataBitLength ); + int maximumSendBlockBytes, byteOffset, bytesToSend; + SplitPacketIndexType splitPacketIndex; + int i; + InternalPacket **internalPacketArray; + + maximumSendBlockBytes = GetMaxDatagramSizeExcludingMessageHeaderBytes() - BITS_TO_BYTES(GetMaxMessageHeaderLengthBits()); + + // Calculate how many packets we need to create + internalPacket->splitPacketCount = ( ( dataByteLength - 1 ) / ( maximumSendBlockBytes ) + 1 ); + + // Optimization + // internalPacketArray = RakNet::OP_NEW(internalPacket->splitPacketCount, _FILE_AND_LINE_ ); + bool usedAlloca=false; + + if (sizeof( InternalPacket* ) * internalPacket->splitPacketCount < MAX_ALLOCA_STACK_ALLOCATION) + { + internalPacketArray = ( InternalPacket** ) alloca( sizeof( InternalPacket* ) * internalPacket->splitPacketCount ); + usedAlloca=true; + } + else + + internalPacketArray = (InternalPacket**) rakMalloc_Ex( sizeof(InternalPacket*) * internalPacket->splitPacketCount, _FILE_AND_LINE_ ); + + for ( i = 0; i < ( int ) internalPacket->splitPacketCount; i++ ) + { + internalPacketArray[ i ] = AllocateFromInternalPacketPool(); + + //internalPacketArray[ i ] = (InternalPacket*) alloca( sizeof( InternalPacket ) ); + // internalPacketArray[ i ] = sendPacketSet[internalPacket->priority].WriteLock(); + *internalPacketArray[ i ]=*internalPacket; + internalPacketArray[ i ]->messageNumberAssigned=false; + + if (i!=0) + internalPacket->messageInternalOrder = internalOrderIndex++; + } + + // This identifies which packet this is in the set + splitPacketIndex = 0; + + InternalPacketRefCountedData *refCounter=0; + + // Do a loop to send out all the packets + do + { + byteOffset = splitPacketIndex * maximumSendBlockBytes; + bytesToSend = dataByteLength - byteOffset; + + if ( bytesToSend > maximumSendBlockBytes ) + bytesToSend = maximumSendBlockBytes; + + // Copy over our chunk of data + + AllocInternalPacketData(internalPacketArray[ splitPacketIndex ], &refCounter, internalPacket->data, internalPacket->data + byteOffset); + // internalPacketArray[ splitPacketIndex ]->data = (unsigned char*) rakMalloc_Ex( bytesToSend, _FILE_AND_LINE_ ); + // memcpy( internalPacketArray[ splitPacketIndex ]->data, internalPacket->data + byteOffset, bytesToSend ); + + if ( bytesToSend != maximumSendBlockBytes ) + internalPacketArray[ splitPacketIndex ]->dataBitLength = internalPacket->dataBitLength - splitPacketIndex * ( maximumSendBlockBytes << 3 ); + else + internalPacketArray[ splitPacketIndex ]->dataBitLength = bytesToSend << 3; + + internalPacketArray[ splitPacketIndex ]->splitPacketIndex = splitPacketIndex; + internalPacketArray[ splitPacketIndex ]->splitPacketId = splitPacketId; + internalPacketArray[ splitPacketIndex ]->splitPacketCount = internalPacket->splitPacketCount; + RakAssert(internalPacketArray[ splitPacketIndex ]->dataBitLengthsplitPacketCount ); + + splitPacketId++; // It's ok if this wraps to 0 + + // InternalPacket *workingPacket; + + // Tell the heap we are going to push a list of elements where each element in the list follows the heap order + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthsplitPacketCount; i++ ) + { + internalPacketArray[ i ]->headerLength=headerLength; + RakAssert(internalPacketArray[ i ]->dataBitLengthpriority ].Push( internalPacketArray[ i ], _FILE_AND_LINE_ ); + RakAssert(internalPacketArray[ i ]->dataBitLengthmessageNumberAssigned==false); + outgoingPacketBuffer.PushSeries(GetNextWeight(internalPacketArray[ i ]->priority), internalPacketArray[ i ], _FILE_AND_LINE_); + RakAssert(outgoingPacketBuffer.Size()==0 || outgoingPacketBuffer.Peek()->dataBitLengthpriority]++; + statistics.bytesInSendBuffer[(int)(int)internalPacketArray[ i ]->priority]+=(double) BITS_TO_BYTES(internalPacketArray[ i ]->dataBitLength); + // workingPacket=sendPacketSet[internalPacket->priority].WriteLock(); + // memcpy(workingPacket, internalPacketArray[ i ], sizeof(InternalPacket)); + // sendPacketSet[internalPacket->priority].WriteUnlock(); + } + + // Do not delete, original is referenced by all split packets to avoid numerous allocations. See AllocInternalPacketData above + // FreeInternalPacketData(internalPacket, _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool( internalPacket ); + + if (usedAlloca==false) + rakFree_Ex(internalPacketArray, _FILE_AND_LINE_ ); +} + +//------------------------------------------------------------------------------------------------------- +// Insert a packet into the split packet list +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InsertIntoSplitPacketList( InternalPacket * internalPacket, CCTimeType time ) +{ + bool objectExists; + unsigned index; + index=splitPacketChannelList.GetIndexFromKey(internalPacket->splitPacketId, &objectExists); + if (objectExists==false) + { + SplitPacketChannel *newChannel = RakNet::OP_NEW( __FILE__, __LINE__ ); +#if PREALLOCATE_LARGE_MESSAGES==1 + index=splitPacketChannelList.Insert(internalPacket->splitPacketId, newChannel, true, __FILE__,__LINE__); + newChannel->returnedPacket=CreateInternalPacketCopy( internalPacket, 0, 0, time ); + newChannel->gotFirstPacket=false; + newChannel->splitPacketsArrived=0; + AllocInternalPacketData(newChannel->returnedPacket, BITS_TO_BYTES( internalPacket->dataBitLength*internalPacket->splitPacketCount ), false, __FILE__, __LINE__ ); + RakAssert(newChannel->returnedPacket->data); +#else + newChannel->firstPacket=0; + index=splitPacketChannelList.Insert(internalPacket->splitPacketId, newChannel, true, __FILE__,__LINE__); + // Preallocate to the final size, to avoid runtime copies + newChannel->splitPacketList.Preallocate(internalPacket->splitPacketCount, __FILE__,__LINE__); + +#endif + } + +#if PREALLOCATE_LARGE_MESSAGES==1 + splitPacketChannelList[index]->lastUpdateTime=time; + splitPacketChannelList[index]->splitPacketsArrived++; + splitPacketChannelList[index]->returnedPacket->dataBitLength+=internalPacket->dataBitLength; + + bool dealloc; + if (internalPacket->splitPacketIndex==0) + { + splitPacketChannelList[index]->gotFirstPacket=true; + splitPacketChannelList[index]->stride=BITS_TO_BYTES(internalPacket->dataBitLength); + + for (unsigned int j=0; j < splitPacketChannelList[index]->splitPacketList.Size(); j++) + { + memcpy(splitPacketChannelList[index]->returnedPacket->data+internalPacket->splitPacketIndex*splitPacketChannelList[index]->stride, internalPacket->data, (size_t) BITS_TO_BYTES(internalPacket->dataBitLength)); + FreeInternalPacketData(splitPacketChannelList[index]->splitPacketList[j], __FILE__, __LINE__ ); + ReleaseToInternalPacketPool(splitPacketChannelList[index]->splitPacketList[j]); + } + + memcpy(splitPacketChannelList[index]->returnedPacket->data, internalPacket->data, (size_t) BITS_TO_BYTES(internalPacket->dataBitLength)); + splitPacketChannelList[index]->splitPacketList.Clear(true,__FILE__,__LINE__); + dealloc=true; + } + else + { + if (splitPacketChannelList[index]->gotFirstPacket==true) + { + memcpy(splitPacketChannelList[index]->returnedPacket->data+internalPacket->splitPacketIndex*splitPacketChannelList[index]->stride, internalPacket->data, (size_t) BITS_TO_BYTES(internalPacket->dataBitLength)); + dealloc=true; + } + else + { + splitPacketChannelList[index]->splitPacketList.Push(internalPacket,__FILE__,__LINE__); + dealloc=false; + } + } + + if (splitPacketChannelList[index]->gotFirstPacket==true && + splitMessageProgressInterval && + // splitPacketChannelList[index]->firstPacket && + // splitPacketChannelList[index]->splitPacketList.Size()!=splitPacketChannelList[index]->firstPacket->splitPacketCount && + // (splitPacketChannelList[index]->splitPacketList.Size()%splitMessageProgressInterval)==0 + splitPacketChannelList[index]->gotFirstPacket && + splitPacketChannelList[index]->splitPacketsArrived!=splitPacketChannelList[index]->returnedPacket->splitPacketCount && + (splitPacketChannelList[index]->splitPacketsArrived%splitMessageProgressInterval)==0 + ) + { + // Return ID_DOWNLOAD_PROGRESS + // Write splitPacketIndex (SplitPacketIndexType) + // Write splitPacketCount (SplitPacketIndexType) + // Write byteLength (4) + // Write data, splitPacketChannelList[index]->splitPacketList[0]->data + InternalPacket *progressIndicator = AllocateFromInternalPacketPool(); + // unsigned int len = sizeof(MessageID) + sizeof(unsigned int)*2 + sizeof(unsigned int) + (unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + unsigned int l = (unsigned int) splitPacketChannelList[index]->stride; + const unsigned int len = sizeof(MessageID) + sizeof(unsigned int)*2 + sizeof(unsigned int) + l; + AllocInternalPacketData(progressIndicator, len, false, __FILE__, __LINE__ ); + progressIndicator->dataBitLength=BYTES_TO_BITS(len); + progressIndicator->data[0]=(MessageID)ID_DOWNLOAD_PROGRESS; + unsigned int temp; + // temp=splitPacketChannelList[index]->splitPacketList.Size(); + temp=splitPacketChannelList[index]->splitPacketsArrived; + memcpy(progressIndicator->data+sizeof(MessageID), &temp, sizeof(unsigned int)); + temp=(unsigned int)internalPacket->splitPacketCount; + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*1, &temp, sizeof(unsigned int)); + // temp=(unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + temp=(unsigned int) BITS_TO_BYTES(l); + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*2, &temp, sizeof(unsigned int)); + //memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*3, splitPacketChannelList[index]->firstPacket->data, (size_t) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength)); + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*3, splitPacketChannelList[index]->returnedPacket->data, (size_t) BITS_TO_BYTES(l)); + } + + if (dealloc) + { + FreeInternalPacketData(internalPacket, __FILE__, __LINE__ ); + ReleaseToInternalPacketPool(internalPacket); + } +#else + splitPacketChannelList[index]->splitPacketList.Insert(internalPacket, __FILE__, __LINE__ ); + splitPacketChannelList[index]->lastUpdateTime=time; + + if (internalPacket->splitPacketIndex==0) + splitPacketChannelList[index]->firstPacket=internalPacket; + + if (splitMessageProgressInterval && + splitPacketChannelList[index]->firstPacket && + splitPacketChannelList[index]->splitPacketList.Size()!=splitPacketChannelList[index]->firstPacket->splitPacketCount && + (splitPacketChannelList[index]->splitPacketList.Size()%splitMessageProgressInterval)==0) + { + // Return ID_DOWNLOAD_PROGRESS + // Write splitPacketIndex (SplitPacketIndexType) + // Write splitPacketCount (SplitPacketIndexType) + // Write byteLength (4) + // Write data, splitPacketChannelList[index]->splitPacketList[0]->data + InternalPacket *progressIndicator = AllocateFromInternalPacketPool(); + unsigned int length = sizeof(MessageID) + sizeof(unsigned int)*2 + sizeof(unsigned int) + (unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + AllocInternalPacketData(progressIndicator, length, false, __FILE__, __LINE__ ); + progressIndicator->dataBitLength=BYTES_TO_BITS(length); + progressIndicator->data[0]=(MessageID)ID_DOWNLOAD_PROGRESS; + unsigned int temp; + temp=splitPacketChannelList[index]->splitPacketList.Size(); + memcpy(progressIndicator->data+sizeof(MessageID), &temp, sizeof(unsigned int)); + temp=(unsigned int)internalPacket->splitPacketCount; + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*1, &temp, sizeof(unsigned int)); + temp=(unsigned int) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength); + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*2, &temp, sizeof(unsigned int)); + + memcpy(progressIndicator->data+sizeof(MessageID)+sizeof(unsigned int)*3, splitPacketChannelList[index]->firstPacket->data, (size_t) BITS_TO_BYTES(splitPacketChannelList[index]->firstPacket->dataBitLength)); + outputQueue.Push(progressIndicator, __FILE__, __LINE__ ); + } + +#endif +} + +//------------------------------------------------------------------------------------------------------- +// Take all split chunks with the specified splitPacketId and try to +//reconstruct a packet. If we can, allocate and return it. Otherwise return 0 +// Optimized version +//------------------------------------------------------------------------------------------------------- +InternalPacket * ReliabilityLayer::BuildPacketFromSplitPacketList( SplitPacketChannel *splitPacketChannel, CCTimeType time ) +{ +#if PREALLOCATE_LARGE_MESSAGES==1 + InternalPacket *returnedPacket=splitPacketChannel->returnedPacket; + RakNet::OP_DELETE(splitPacketChannel, __FILE__, __LINE__); + (void) time; + return returnedPacket; +#else + unsigned int j; + InternalPacket * internalPacket, *splitPacket; + int splitPacketPartLength; + + // Reconstruct + internalPacket = CreateInternalPacketCopy( splitPacketChannel->splitPacketList[0], 0, 0, time ); + internalPacket->dataBitLength=0; + for (j=0; j < splitPacketChannel->splitPacketList.Size(); j++) + internalPacket->dataBitLength+=splitPacketChannel->splitPacketList[j]->dataBitLength; + splitPacketPartLength=BITS_TO_BYTES(splitPacketChannel->firstPacket->dataBitLength); + + internalPacket->data = (unsigned char*) rakMalloc_Ex( (size_t) BITS_TO_BYTES( internalPacket->dataBitLength ), _FILE_AND_LINE_ ); + internalPacket->allocationScheme=InternalPacket::NORMAL; + + for (j=0; j < splitPacketChannel->splitPacketList.Size(); j++) + { + splitPacket=splitPacketChannel->splitPacketList[j]; + memcpy(internalPacket->data+splitPacket->splitPacketIndex*splitPacketPartLength, splitPacket->data, (size_t) BITS_TO_BYTES(splitPacketChannel->splitPacketList[j]->dataBitLength)); + } + + for (j=0; j < splitPacketChannel->splitPacketList.Size(); j++) + { + FreeInternalPacketData(splitPacketChannel->splitPacketList[j], _FILE_AND_LINE_ ); + ReleaseToInternalPacketPool(splitPacketChannel->splitPacketList[j]); + } + RakNet::OP_DELETE(splitPacketChannel, __FILE__, __LINE__); + + return internalPacket; +#endif +} +//------------------------------------------------------------------------------------------------------- +InternalPacket * ReliabilityLayer::BuildPacketFromSplitPacketList( SplitPacketIdType splitPacketId, CCTimeType time, + SOCKET s, SystemAddress &systemAddress, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, + BitStream &updateBitStream) +{ + unsigned int i; + bool objectExists; + SplitPacketChannel *splitPacketChannel; + InternalPacket * internalPacket; + + i=splitPacketChannelList.GetIndexFromKey(splitPacketId, &objectExists); + splitPacketChannel=splitPacketChannelList[i]; + +#if PREALLOCATE_LARGE_MESSAGES==1 + if (splitPacketChannel->splitPacketsArrived==splitPacketChannel->returnedPacket->splitPacketCount) +#else + if (splitPacketChannel->splitPacketList.Size()==splitPacketChannel->splitPacketList[0]->splitPacketCount) +#endif + { + // Ack immediately, because for large files this can take a long time + SendACKs(s, systemAddress, time, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, updateBitStream); + internalPacket=BuildPacketFromSplitPacketList(splitPacketChannel,time); + splitPacketChannelList.RemoveAtIndex(i); + return internalPacket; + } + else + { + return 0; + } +} +/* +//------------------------------------------------------------------------------------------------------- +// Delete any unreliable split packets that have long since expired +void ReliabilityLayer::DeleteOldUnreliableSplitPackets( CCTimeType time ) +{ +unsigned i,j; +i=0; +while (i < splitPacketChannelList.Size()) +{ +#if CC_TIME_TYPE_BYTES==4 +if (time > splitPacketChannelList[i]->lastUpdateTime + timeoutTime && +#else +if (time > splitPacketChannelList[i]->lastUpdateTime + (CCTimeType)timeoutTime*(CCTimeType)1000 && +#endif +(splitPacketChannelList[i]->splitPacketList[0]->reliability==UNRELIABLE || splitPacketChannelList[i]->splitPacketList[0]->reliability==UNRELIABLE_SEQUENCED)) +{ +for (j=0; j < splitPacketChannelList[i]->splitPacketList.Size(); j++) +{ +RakNet::OP_DELETE_ARRAY(splitPacketChannelList[i]->splitPacketList[j]->data, _FILE_AND_LINE_); +ReleaseToInternalPacketPool(splitPacketChannelList[i]->splitPacketList[j]); +} +RakNet::OP_DELETE(splitPacketChannelList[i], _FILE_AND_LINE_); +splitPacketChannelList.RemoveAtIndex(i); +} +else +i++; +} +} +*/ + +//------------------------------------------------------------------------------------------------------- +// Creates a copy of the specified internal packet with data copied from the original starting at dataByteOffset for dataByteLength bytes. +// Does not copy any split data parameters as that information is always generated does not have any reason to be copied +//------------------------------------------------------------------------------------------------------- +InternalPacket * ReliabilityLayer::CreateInternalPacketCopy( InternalPacket *original, int dataByteOffset, int dataByteLength, CCTimeType time ) +{ + InternalPacket * copy = AllocateFromInternalPacketPool(); +#ifdef _DEBUG + // Remove accessing undefined memory error + memset( copy, 255, sizeof( InternalPacket ) ); +#endif + // Copy over our chunk of data + + if ( dataByteLength > 0 ) + { + AllocInternalPacketData(copy, BITS_TO_BYTES(dataByteLength ), false, _FILE_AND_LINE_ ); + memcpy( copy->data, original->data + dataByteOffset, dataByteLength ); + } + else + copy->data = 0; + + copy->dataBitLength = dataByteLength << 3; + copy->creationTime = time; + copy->nextActionTime = 0; + copy->orderingIndex = original->orderingIndex; + copy->sequencingIndex = original->sequencingIndex; + copy->orderingChannel = original->orderingChannel; + copy->reliableMessageNumber = original->reliableMessageNumber; + copy->priority = original->priority; + copy->reliability = original->reliability; +#if PREALLOCATE_LARGE_MESSAGES==1 + copy->splitPacketCount = original->splitPacketCount; + copy->splitPacketId = original->splitPacketId; + copy->splitPacketIndex = original->splitPacketIndex; +#endif + + return copy; +} + +//------------------------------------------------------------------------------------------------------- +// Get the specified ordering list +//------------------------------------------------------------------------------------------------------- +/* +DataStructures::LinkedList *ReliabilityLayer::GetOrderingListAtOrderingStream( unsigned char orderingChannel ) +{ + if ( orderingChannel >= orderingList.Size() ) + return 0; + + return orderingList[ orderingChannel ]; +} + +//------------------------------------------------------------------------------------------------------- +// Add the internal packet to the ordering list in order based on order index +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddToOrderingList( InternalPacket * internalPacket ) +{ + } +*/ + +//------------------------------------------------------------------------------------------------------- +// Inserts a packet into the resend list in order +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InsertPacketIntoResendList( InternalPacket *internalPacket, CCTimeType time, bool firstResend, bool modifyUnacknowledgedBytes ) +{ + (void) firstResend; + (void) time; + (void) internalPacket; + + AddToListTail(internalPacket, modifyUnacknowledgedBytes); + RakAssert(internalPacket->nextActionTime!=0); + +} + +//------------------------------------------------------------------------------------------------------- +// Were you ever unable to deliver a packet despite retries? +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsDeadConnection( void ) const +{ + return deadConnection; +} + +//------------------------------------------------------------------------------------------------------- +// Causes IsDeadConnection to return true +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::KillConnection( void ) +{ + deadConnection=true; +} + + +//------------------------------------------------------------------------------------------------------- +// Statistics +//------------------------------------------------------------------------------------------------------- +RakNetStatistics * ReliabilityLayer::GetStatistics( RakNetStatistics *rns ) +{ + unsigned i; + RakNet::TimeUS time = RakNet::GetTimeUS(); + uint64_t uint64Denominator; + double doubleDenominator; + + for (i=0; i < RNS_PER_SECOND_METRICS_COUNT; i++) + { + statistics.valueOverLastSecond[i]=bpsMetrics[i].GetBPS1Threadsafe(time); + statistics.runningTotal[i]=bpsMetrics[i].GetTotal1(); + } + + memcpy(rns, &statistics, sizeof(statistics)); + + if (rns->valueOverLastSecond[USER_MESSAGE_BYTES_SENT]+rns->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT]>0) + rns->packetlossLastSecond=(float)((double) rns->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT]/((double) rns->valueOverLastSecond[USER_MESSAGE_BYTES_SENT]+(double) rns->valueOverLastSecond[USER_MESSAGE_BYTES_RESENT])); + else + rns->packetlossLastSecond=0.0f; + + rns->packetlossTotal=0.0f; + uint64Denominator=(rns->runningTotal[USER_MESSAGE_BYTES_SENT]+rns->runningTotal[USER_MESSAGE_BYTES_RESENT]); + if (uint64Denominator!=0&&rns->runningTotal[USER_MESSAGE_BYTES_SENT]/uint64Denominator>0) + { + doubleDenominator=((double) rns->runningTotal[USER_MESSAGE_BYTES_SENT]+(double) rns->runningTotal[USER_MESSAGE_BYTES_RESENT]); + if(doubleDenominator!=0) + { + rns->packetlossTotal=(float)((double) rns->runningTotal[USER_MESSAGE_BYTES_RESENT]/doubleDenominator); + } + } + + rns->isLimitedByCongestionControl=statistics.isLimitedByCongestionControl; + rns->BPSLimitByCongestionControl=statistics.BPSLimitByCongestionControl; + rns->isLimitedByOutgoingBandwidthLimit=statistics.isLimitedByOutgoingBandwidthLimit; + rns->BPSLimitByOutgoingBandwidthLimit=statistics.BPSLimitByOutgoingBandwidthLimit; + + return rns; +} + +//------------------------------------------------------------------------------------------------------- +// Returns the number of packets in the resend queue, not counting holes +//------------------------------------------------------------------------------------------------------- +unsigned int ReliabilityLayer::GetResendListDataSize(void) const +{ + // Not accurate but thread-safe. The commented version might crash if the queue is cleared while we loop through it + // return resendTree.Size(); + return statistics.messagesInResendBuffer; +} + +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::AckTimeout(RakNet::Time curTime) +{ + // I check timeLastDatagramArrived-curTime because with threading it is possible that timeLastDatagramArrived is + // slightly greater than curTime, in which case this is NOT an ack timeout + return (timeLastDatagramArrived-curTime)>10000 && curTime-timeLastDatagramArrived>timeoutTime; +} +//------------------------------------------------------------------------------------------------------- +CCTimeType ReliabilityLayer::GetNextSendTime(void) const +{ + return nextSendTime; +} +//------------------------------------------------------------------------------------------------------- +CCTimeType ReliabilityLayer::GetTimeBetweenPackets(void) const +{ + return timeBetweenPackets; +} +//------------------------------------------------------------------------------------------------------- +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 +CCTimeType ReliabilityLayer::GetAckPing(void) const +{ + return ackPing; +} +#endif +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ResetPacketsAndDatagrams(void) +{ + packetsToSendThisUpdate.Clear(true, _FILE_AND_LINE_); + packetsToDeallocThisUpdate.Clear(true, _FILE_AND_LINE_); + packetsToSendThisUpdateDatagramBoundaries.Clear(true, _FILE_AND_LINE_); + datagramsToSendThisUpdateIsPair.Clear(true, _FILE_AND_LINE_); + datagramSizesInBytes.Clear(true, _FILE_AND_LINE_); + datagramSizeSoFar=0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::PushPacket(CCTimeType time, InternalPacket *internalPacket, bool isReliable) +{ + BitSize_t bitsForThisPacket=BYTES_TO_BITS(BITS_TO_BYTES(internalPacket->dataBitLength)+BITS_TO_BYTES(internalPacket->headerLength)); + datagramSizeSoFar+=bitsForThisPacket; + RakAssert(BITS_TO_BYTES(datagramSizeSoFar)headerLength==GetMessageHeaderLengthBits(internalPacket)); + +// This code tells me how much time elapses between when you send, and when the message actually goes out +// if (internalPacket->data[0]==0) +// { +// RakNet::TimeMS t; +// RakNet::BitStream bs(internalPacket->data+1,sizeof(t),false); +// bs.Read(t); +// RakNet::TimeMS curTime=RakNet::GetTimeMS(); +// RakNet::TimeMS diff = curTime-t; +// } + + congestionManager.OnSendBytes(time, BITS_TO_BYTES(internalPacket->dataBitLength)+BITS_TO_BYTES(internalPacket->headerLength)); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::PushDatagram(void) +{ + if (datagramSizeSoFar>0) + { + packetsToSendThisUpdateDatagramBoundaries.Push(packetsToSendThisUpdate.Size(), _FILE_AND_LINE_ ); + datagramsToSendThisUpdateIsPair.Push(false, _FILE_AND_LINE_ ); + RakAssert(BITS_TO_BYTES(datagramSizeSoFar)=2) + { + datagramsToSendThisUpdateIsPair[datagramsToSendThisUpdateIsPair.Size()-2]=true; + datagramsToSendThisUpdateIsPair[datagramsToSendThisUpdateIsPair.Size()-1]=true; + return true; + } + return false; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ClearPacketsAndDatagrams(void) +{ + unsigned int i; + for (i=0; i < packetsToDeallocThisUpdate.Size(); i++) + { + // packetsToDeallocThisUpdate holds a boolean indicating if packetsToSendThisUpdate at this index should be freed + if (packetsToDeallocThisUpdate[i]) + { + RemoveFromUnreliableLinkedList(packetsToSendThisUpdate[i]); + FreeInternalPacketData(packetsToSendThisUpdate[i], _FILE_AND_LINE_ ); + // if (keepInternalPacketIfNeedsAck==false || packetsToSendThisUpdate[i]->reliabilityresendNext=internalPacket; + internalPacket->resendPrev=internalPacket; + resendLinkedListHead=internalPacket; + return; + } + internalPacket->resendPrev->resendNext = internalPacket->resendNext; + internalPacket->resendNext->resendPrev = internalPacket->resendPrev; + internalPacket->resendNext=resendLinkedListHead; + internalPacket->resendPrev=resendLinkedListHead->resendPrev; + internalPacket->resendPrev->resendNext=internalPacket; + resendLinkedListHead->resendPrev=internalPacket; + resendLinkedListHead=internalPacket; + RakAssert(internalPacket->headerLength+internalPacket->dataBitLength>0); + + //ValidateResendList(); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::RemoveFromList(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes) +{ + InternalPacket *newPosition; + internalPacket->resendPrev->resendNext = internalPacket->resendNext; + internalPacket->resendNext->resendPrev = internalPacket->resendPrev; + newPosition = internalPacket->resendNext; + if ( internalPacket == resendLinkedListHead ) + resendLinkedListHead = newPosition; + if (resendLinkedListHead==internalPacket) + resendLinkedListHead=0; + + if (modifyUnacknowledgedBytes) + { + RakAssert(unacknowledgedBytes>=BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength)); + unacknowledgedBytes-=BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength); + // printf("-unacknowledgedBytes:%i ", unacknowledgedBytes); + + +// ValidateResendList(); + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddToListTail(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes) +{ + if (modifyUnacknowledgedBytes) + { + unacknowledgedBytes+=BITS_TO_BYTES(internalPacket->headerLength+internalPacket->dataBitLength); + // printf("+unacknowledgedBytes:%i ", unacknowledgedBytes); + } + + if (resendLinkedListHead==0) + { + internalPacket->resendNext=internalPacket; + internalPacket->resendPrev=internalPacket; + resendLinkedListHead=internalPacket; + return; + } + internalPacket->resendNext=resendLinkedListHead; + internalPacket->resendPrev=resendLinkedListHead->resendPrev; + internalPacket->resendPrev->resendNext=internalPacket; + resendLinkedListHead->resendPrev=internalPacket; + +// ValidateResendList(); + +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::PopListHead(bool modifyUnacknowledgedBytes) +{ + RakAssert(resendLinkedListHead!=0); + RemoveFromList(resendLinkedListHead, modifyUnacknowledgedBytes); +} +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::IsResendQueueEmpty(void) const +{ + return resendLinkedListHead==0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::SendACKs(SOCKET s, SystemAddress &systemAddress, CCTimeType time, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream) +{ + BitSize_t maxDatagramPayload = GetMaxDatagramSizeExcludingMessageHeaderBits(); + + while (acknowlegements.Size()>0) + { + // Send acks + updateBitStream.Reset(); + DatagramHeaderFormat dhf; + dhf.isACK=true; + dhf.isNAK=false; + dhf.isPacketPair=false; +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + dhf.sourceSystemTime=time; +#endif + double B; + double AS; + bool hasBAndAS; + if (remoteSystemNeedsBAndAS) + { + congestionManager.OnSendAckGetBAndAS(time, &hasBAndAS,&B,&AS); + dhf.AS=(float)AS; + dhf.hasBAndAS=hasBAndAS; + } + else + dhf.hasBAndAS=false; +#if INCLUDE_TIMESTAMP_WITH_DATAGRAMS==1 + dhf.sourceSystemTime=nextAckTimeToSend; +#endif + // dhf.B=(float)B; + updateBitStream.Reset(); + dhf.Serialize(&updateBitStream); + CC_DEBUG_PRINTF_1("AckSnd "); + acknowlegements.Serialize(&updateBitStream, maxDatagramPayload, true); + SendBitStream( s, systemAddress, &updateBitStream, rnr, remotePortRakNetWasStartedOn_PS3, extraSocketOptions, time ); + congestionManager.OnSendAck(time,updateBitStream.GetNumberOfBytesUsed()); + + // I think this is causing a bug where if the estimated bandwidth is very low for the recipient, only acks ever get sent + // congestionManager.OnSendBytes(time,UDP_HEADER_SIZE+updateBitStream.GetNumberOfBytesUsed()); + } +} +/* +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::DatagramMessageIDList* ReliabilityLayer::AllocateFromDatagramMessageIDPool(void) +{ +DatagramMessageIDList*s; +s=datagramMessageIDPool.Allocate( _FILE_AND_LINE_ ); +// Call new operator, memoryPool doesn't do this +s = new ((void*)s) DatagramMessageIDList; +return s; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ReleaseToDatagramMessageIDPool(DatagramMessageIDList* d) +{ +d->~DatagramMessageIDList(); +datagramMessageIDPool.Release(d); +} +*/ +//------------------------------------------------------------------------------------------------------- +InternalPacket* ReliabilityLayer::AllocateFromInternalPacketPool(void) +{ + InternalPacket *ip = internalPacketPool.Allocate( _FILE_AND_LINE_ ); + ip->reliableMessageNumber = (MessageNumberType) (const uint32_t)-1; + ip->messageNumberAssigned=false; + ip->nextActionTime = 0; + ip->splitPacketCount = 0; + ip->allocationScheme=InternalPacket::NORMAL; + ip->data=0; + return ip; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ReleaseToInternalPacketPool(InternalPacket *ip) +{ + internalPacketPool.Release(ip, _FILE_AND_LINE_); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::RemoveFromUnreliableLinkedList(InternalPacket *internalPacket) +{ + if (internalPacket->reliability==UNRELIABLE || + internalPacket->reliability==UNRELIABLE_SEQUENCED || + internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT +// || +// internalPacket->reliability==UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + InternalPacket *newPosition; + internalPacket->unreliablePrev->unreliableNext = internalPacket->unreliableNext; + internalPacket->unreliableNext->unreliablePrev = internalPacket->unreliablePrev; + newPosition = internalPacket->unreliableNext; + if ( internalPacket == unreliableLinkedListHead ) + unreliableLinkedListHead = newPosition; + if (unreliableLinkedListHead==internalPacket) + unreliableLinkedListHead=0; + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddToUnreliableLinkedList(InternalPacket *internalPacket) +{ + if (internalPacket->reliability==UNRELIABLE || + internalPacket->reliability==UNRELIABLE_SEQUENCED || + internalPacket->reliability==UNRELIABLE_WITH_ACK_RECEIPT +// || +// internalPacket->reliability==UNRELIABLE_SEQUENCED_WITH_ACK_RECEIPT + ) + { + if (unreliableLinkedListHead==0) + { + internalPacket->unreliableNext=internalPacket; + internalPacket->unreliablePrev=internalPacket; + unreliableLinkedListHead=internalPacket; + return; + } + internalPacket->unreliableNext=unreliableLinkedListHead; + internalPacket->unreliablePrev=unreliableLinkedListHead->unreliablePrev; + internalPacket->unreliablePrev->unreliableNext=internalPacket; + unreliableLinkedListHead->unreliablePrev=internalPacket; + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::ValidateResendList(void) const +{ +// unsigned int count1=0, count2=0; +// for (unsigned int i=0; i < RESEND_BUFFER_ARRAY_LENGTH; i++) +// if (resendBuffer[i]) +// count1++; +// +// if (resendLinkedListHead) +// { +// InternalPacket *internalPacket = resendLinkedListHead; +// do +// { +// count2++; +// internalPacket=internalPacket->resendNext; +// } while (internalPacket!=resendLinkedListHead); +// } +// RakAssert(count1==count2); +// RakAssert(count2<=RESEND_BUFFER_ARRAY_LENGTH); +} +//------------------------------------------------------------------------------------------------------- +bool ReliabilityLayer::ResendBufferOverflow(void) const +{ + int index1 = sendReliableMessageNumberIndex & (uint32_t) RESEND_BUFFER_ARRAY_MASK; + // int index2 = (sendReliableMessageNumberIndex+(uint32_t)1) & (uint32_t) RESEND_BUFFER_ARRAY_MASK; + RakAssert(index1= datagramHistory.Size()) + return 0; + + *timeSent=datagramHistory[offsetIntoList].timeSent; + return datagramHistory[offsetIntoList].head; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::RemoveFromDatagramHistory(DatagramSequenceNumberType index) +{ + DatagramSequenceNumberType offsetIntoList = index - datagramHistoryPopCount; + MessageNumberNode *mnm = datagramHistory[offsetIntoList].head; + MessageNumberNode *next; + while (mnm) + { + next=mnm->next; + datagramHistoryMessagePool.Release(mnm, _FILE_AND_LINE_); + mnm=next; + } + datagramHistory[offsetIntoList].head=0; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, CCTimeType timeSent) +{ + (void) datagramNumber; + if (datagramHistory.Size()>DATAGRAM_MESSAGE_ID_ARRAY_LENGTH) + { + RemoveFromDatagramHistory(datagramHistoryPopCount); + datagramHistory.Pop(); + datagramHistoryPopCount++; + } + + datagramHistory.Push(DatagramHistoryNode(0, timeSent), _FILE_AND_LINE_); + // printf("%p Pushed empty DatagramHistoryNode to datagram history at index %i\n", this, datagramHistory.Size()-1); +} +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::MessageNumberNode* ReliabilityLayer::AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, DatagramSequenceNumberType messageNumber, CCTimeType timeSent) +{ + (void) datagramNumber; +// RakAssert(datagramHistoryPopCount+(unsigned int) datagramHistory.Size()==datagramNumber); + if (datagramHistory.Size()>DATAGRAM_MESSAGE_ID_ARRAY_LENGTH) + { + RemoveFromDatagramHistory(datagramHistoryPopCount); + datagramHistory.Pop(); + datagramHistoryPopCount++; + } + + MessageNumberNode *mnm = datagramHistoryMessagePool.Allocate(_FILE_AND_LINE_); + mnm->next=0; + mnm->messageNumber=messageNumber; + datagramHistory.Push(DatagramHistoryNode(mnm, timeSent), _FILE_AND_LINE_); + // printf("%p Pushed message %i to DatagramHistoryNode to datagram history at index %i\n", this, messageNumber.val, datagramHistory.Size()-1); + return mnm; +} +//------------------------------------------------------------------------------------------------------- +ReliabilityLayer::MessageNumberNode* ReliabilityLayer::AddSubsequentToDatagramHistory(MessageNumberNode *messageNumberNode, DatagramSequenceNumberType messageNumber) +{ + messageNumberNode->next=datagramHistoryMessagePool.Allocate(_FILE_AND_LINE_); + messageNumberNode->next->messageNumber=messageNumber; + messageNumberNode->next->next=0; + return messageNumberNode->next; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AllocInternalPacketData(InternalPacket *internalPacket, InternalPacketRefCountedData **refCounter, unsigned char *externallyAllocatedPtr, unsigned char *ourOffset) +{ + internalPacket->allocationScheme=InternalPacket::REF_COUNTED; + internalPacket->data=ourOffset; + if (*refCounter==0) + { + *refCounter = refCountedDataPool.Allocate(_FILE_AND_LINE_); + // *refCounter = RakNet::OP_NEW(_FILE_AND_LINE_); + (*refCounter)->refCount=1; + (*refCounter)->sharedDataBlock=externallyAllocatedPtr; + } + else + (*refCounter)->refCount++; + internalPacket->refCountedData=(*refCounter); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AllocInternalPacketData(InternalPacket *internalPacket, unsigned char *externallyAllocatedPtr) +{ + internalPacket->allocationScheme=InternalPacket::NORMAL; + internalPacket->data=externallyAllocatedPtr; +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::AllocInternalPacketData(InternalPacket *internalPacket, unsigned int numBytes, bool allowStack, const char *file, unsigned int line) +{ + if (allowStack && numBytes <= sizeof(internalPacket->stackData)) + { + internalPacket->allocationScheme=InternalPacket::STACK; + internalPacket->data=internalPacket->stackData; + } + else + { + internalPacket->allocationScheme=InternalPacket::NORMAL; + internalPacket->data=(unsigned char*) rakMalloc_Ex(numBytes,file,line); + } +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::FreeInternalPacketData(InternalPacket *internalPacket, const char *file, unsigned int line) +{ + if (internalPacket==0) + return; + + if (internalPacket->allocationScheme==InternalPacket::REF_COUNTED) + { + if (internalPacket->refCountedData==0) + return; + + internalPacket->refCountedData->refCount--; + if (internalPacket->refCountedData->refCount==0) + { + rakFree_Ex(internalPacket->refCountedData->sharedDataBlock, file, line ); + internalPacket->refCountedData->sharedDataBlock=0; + // RakNet::OP_DELETE(internalPacket->refCountedData,file, line); + refCountedDataPool.Release(internalPacket->refCountedData,file, line); + internalPacket->refCountedData=0; + } + } + else if (internalPacket->allocationScheme==InternalPacket::NORMAL) + { + if (internalPacket->data==0) + return; + + rakFree_Ex(internalPacket->data, file, line ); + internalPacket->data=0; + } + else + { + // Data was on stack + internalPacket->data=0; + } +} +//------------------------------------------------------------------------------------------------------- +unsigned int ReliabilityLayer::GetMaxDatagramSizeExcludingMessageHeaderBytes(void) +{ + unsigned int val = congestionManager.GetMTU() - DatagramHeaderFormat::GetDataHeaderByteLength(); + +#if LIBCAT_SECURITY==1 + if (useSecurity) + val -= cat::AuthenticatedEncryption::OVERHEAD_BYTES; +#endif + + return val; +} +//------------------------------------------------------------------------------------------------------- +BitSize_t ReliabilityLayer::GetMaxDatagramSizeExcludingMessageHeaderBits(void) +{ + return BYTES_TO_BITS(GetMaxDatagramSizeExcludingMessageHeaderBytes()); +} +//------------------------------------------------------------------------------------------------------- +void ReliabilityLayer::InitHeapWeights(void) +{ + for (int priorityLevel=0; priorityLevel < NUMBER_OF_PRIORITIES; priorityLevel++) + outgoingPacketBufferNextWeights[priorityLevel]=(1<0) + { + int peekPL = outgoingPacketBuffer.Peek()->priority; + reliabilityHeapWeightType weight = outgoingPacketBuffer.PeekWeight(); + reliabilityHeapWeightType min = weight - (1< +{ + CCTimeType lastUpdateTime; + + DataStructures::List splitPacketList; + +#if PREALLOCATE_LARGE_MESSAGES==1 + InternalPacket *returnedPacket; + bool gotFirstPacket; + unsigned int stride; + unsigned int splitPacketsArrived; +#else + // This is here for progress notifications, since progress notifications return the first packet data, if available + InternalPacket *firstPacket; +#endif + +}; +int RAK_DLL_EXPORT SplitPacketChannelComp( SplitPacketIdType const &key, SplitPacketChannel* const &data ); + +// Helper class +struct BPSTracker +{ + BPSTracker(); + ~BPSTracker(); + void Reset(const char *file, unsigned int line); + inline void Push1(CCTimeType time, uint64_t value1) {dataQueue.Push(TimeAndValue2(time,value1),_FILE_AND_LINE_); total1+=value1; lastSec1+=value1;} +// void Push2(RakNet::TimeUS time, uint64_t value1, uint64_t value2); + inline uint64_t GetBPS1(CCTimeType time) {(void) time; return lastSec1;} + inline uint64_t GetBPS1Threadsafe(CCTimeType time) {(void) time; return lastSec1;} +// uint64_t GetBPS2(RakNetTimeUS time); +// void GetBPS1And2(RakNetTimeUS time, uint64_t &out1, uint64_t &out2); + uint64_t GetTotal1(void) const; +// uint64_t GetTotal2(void) const; + + struct TimeAndValue2 + { + TimeAndValue2(); + ~TimeAndValue2(); + TimeAndValue2(CCTimeType t, uint64_t v1); + // TimeAndValue2(RakNet::TimeUS t, uint64_t v1, uint64_t v2); + // uint64_t value1, value2; + uint64_t value1; + CCTimeType time; + }; + + uint64_t total1, lastSec1; +// uint64_t total2, lastSec2; + DataStructures::Queue dataQueue; + void ClearExpired1(CCTimeType time); +// void ClearExpired2(RakNet::TimeUS time); +}; + +/// Datagram reliable, ordered, unordered and sequenced sends. Flow control. Message splitting, reassembly, and coalescence. +class ReliabilityLayer// +{ +public: + + // Constructor + ReliabilityLayer(); + + // Destructor + ~ReliabilityLayer(); + + /// Resets the layer for reuse + void Reset( bool resetVariables, int MTUSize, bool _useSecurity ); + + /// Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable packet + /// Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. + /// \param[in] time Time, in MS + void SetTimeoutTime( RakNet::TimeMS time ); + + /// Returns the value passed to SetTimeoutTime. or the default if it was never called + /// \param[out] the value passed to SetTimeoutTime + RakNet::TimeMS GetTimeoutTime(void); + + /// Packets are read directly from the socket layer and skip the reliability layer because unconnected players do not use the reliability layer + /// This function takes packet data after a player has been confirmed as connected. + /// \param[in] buffer The socket data + /// \param[in] length The length of the socket data + /// \param[in] systemAddress The player that this data is from + /// \param[in] messageHandlerList A list of registered plugins + /// \param[in] MTUSize maximum datagram size + /// \retval true Success + /// \retval false Modified packet + bool HandleSocketReceiveFromConnectedPlayer( + const char *buffer, unsigned int length, SystemAddress &systemAddress, DataStructures::List &messageHandlerList, int MTUSize, + SOCKET s, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType timeRead, BitStream &updateBitStream); + + /// This allocates bytes and writes a user-level message to those bytes. + /// \param[out] data The message + /// \return Returns number of BITS put into the buffer + BitSize_t Receive( unsigned char**data ); + + /// Puts data on the send queue + /// \param[in] data The data to send + /// \param[in] numberOfBitsToSend The length of \a data in bits + /// \param[in] priority The priority level for the send + /// \param[in] reliability The reliability type for the send + /// \param[in] orderingChannel 0 to 31. Specifies what channel to use, for relational ordering and sequencing of packets. + /// \param[in] makeDataCopy If true \a data will be copied. Otherwise, only a pointer will be stored. + /// \param[in] MTUSize maximum datagram size + /// \param[in] currentTime Current time, as per RakNet::GetTimeMS() + /// \param[in] receipt This number will be returned back with ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS and is only returned with the reliability types that contain RECEIPT in the name + /// \return True or false for success or failure. + bool Send( char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, unsigned char orderingChannel, bool makeDataCopy, int MTUSize, CCTimeType currentTime, uint32_t receipt ); + + /// Call once per game cycle. Handles internal lists and actually does the send. + /// \param[in] s the communication end point + /// \param[in] systemAddress The Unique Player Identifier who shouldhave sent some packets + /// \param[in] MTUSize maximum datagram size + /// \param[in] time current system time + /// \param[in] maxBitsPerSecond if non-zero, enforces that outgoing bandwidth does not exceed this amount + /// \param[in] messageHandlerList A list of registered plugins + void Update( SOCKET s, SystemAddress &systemAddress, int MTUSize, CCTimeType time, + unsigned bitsPerSecondLimit, + DataStructures::List &messageHandlerList, + RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream); + + /// Were you ever unable to deliver a packet despite retries? + /// \return true means the connection has been lost. Otherwise not. + bool IsDeadConnection( void ) const; + + /// Causes IsDeadConnection to return true + void KillConnection(void); + + /// Get Statistics + /// \return A pointer to a static struct, filled out with current statistical information. + RakNetStatistics * GetStatistics( RakNetStatistics *rns ); + + ///Are we waiting for any data to be sent out or be processed by the player? + bool IsOutgoingDataWaiting(void); + bool AreAcksWaiting(void); + + // Set outgoing lag and packet loss properties + void ApplyNetworkSimulator( double _maxSendBPS, RakNet::TimeMS _minExtraPing, RakNet::TimeMS _extraPingVariance ); + + /// Returns if you previously called ApplyNetworkSimulator + /// \return If you previously called ApplyNetworkSimulator + bool IsNetworkSimulatorActive( void ); + + void SetSplitMessageProgressInterval(int interval); + void SetUnreliableTimeout(RakNet::TimeMS timeoutMS); + /// Has a lot of time passed since the last ack + bool AckTimeout(RakNet::Time curTime); + CCTimeType GetNextSendTime(void) const; + CCTimeType GetTimeBetweenPackets(void) const; + + + + RakNet::TimeMS GetTimeLastDatagramArrived(void) const {return timeLastDatagramArrived;} + + // If true, will update time between packets quickly based on ping calculations + //void SetDoFastThroughputReactions(bool fast); + + // Encoded as numMessages[unsigned int], message1BitLength[unsigned int], message1Data (aligned), ... + //void GetUndeliveredMessages(RakNet::BitStream *messages, int MTUSize); + +private: + /// Send the contents of a bitstream to the socket + /// \param[in] s The socket used for sending data + /// \param[in] systemAddress The address and port to send to + /// \param[in] bitStream The data to send. + void SendBitStream( SOCKET s, SystemAddress &systemAddress, RakNet::BitStream *bitStream, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType currentTime); + + ///Parse an internalPacket and create a bitstream to represent this data + /// \return Returns number of bits used + BitSize_t WriteToBitStreamFromInternalPacket( RakNet::BitStream *bitStream, const InternalPacket *const internalPacket, CCTimeType curTime ); + + + /// Parse a bitstream and create an internal packet to represent this data + InternalPacket* CreateInternalPacketFromBitStream( RakNet::BitStream *bitStream, CCTimeType time ); + + /// Does what the function name says + unsigned RemovePacketFromResendListAndDeleteOlderReliableSequenced( const MessageNumberType messageNumber, CCTimeType time, DataStructures::List &messageHandlerList, const SystemAddress &systemAddress ); + + /// Acknowledge receipt of the packet with the specified messageNumber + void SendAcknowledgementPacket( const DatagramSequenceNumberType messageNumber, CCTimeType time); + + /// This will return true if we should not send at this time + bool IsSendThrottled( int MTUSize ); + + /// We lost a packet + void UpdateWindowFromPacketloss( CCTimeType time ); + + /// Increase the window size + void UpdateWindowFromAck( CCTimeType time ); + + /// Parse an internalPacket and figure out how many header bits would be written. Returns that number + BitSize_t GetMaxMessageHeaderLengthBits( void ); + BitSize_t GetMessageHeaderLengthBits( const InternalPacket *const internalPacket ); + + /// Get the SHA1 code + void GetSHA1( unsigned char * const buffer, unsigned int nbytes, char code[ SHA1_LENGTH ] ); + + /// Check the SHA1 code + bool CheckSHA1( char code[ SHA1_LENGTH ], unsigned char * const buffer, unsigned int nbytes ); + + /// Search the specified list for sequenced packets on the specified ordering channel, optionally skipping those with splitPacketId, and delete them + void DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::List&theList, int splitPacketId = -1 ); + + /// Search the specified list for sequenced packets with a value less than orderingIndex and delete them + void DeleteSequencedPacketsInList( unsigned char orderingChannel, DataStructures::Queue&theList ); + + /// Returns true if newPacketOrderingIndex is older than the waitingForPacketOrderingIndex + bool IsOlderOrderedPacket( OrderingIndexType newPacketOrderingIndex, OrderingIndexType waitingForPacketOrderingIndex ); + + /// Split the passed packet into chunks under MTU_SIZE bytes (including headers) and save those new chunks + void SplitPacket( InternalPacket *internalPacket ); + + /// Insert a packet into the split packet list + void InsertIntoSplitPacketList( InternalPacket * internalPacket, CCTimeType time ); + + /// Take all split chunks with the specified splitPacketId and try to reconstruct a packet. If we can, allocate and return it. Otherwise return 0 + InternalPacket * BuildPacketFromSplitPacketList( SplitPacketIdType splitPacketId, CCTimeType time, + SOCKET s, SystemAddress &systemAddress, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream); + InternalPacket * BuildPacketFromSplitPacketList( SplitPacketChannel *splitPacketChannel, CCTimeType time ); + + /// Delete any unreliable split packets that have long since expired + //void DeleteOldUnreliableSplitPackets( CCTimeType time ); + + /// Creates a copy of the specified internal packet with data copied from the original starting at dataByteOffset for dataByteLength bytes. + /// Does not copy any split data parameters as that information is always generated does not have any reason to be copied + InternalPacket * CreateInternalPacketCopy( InternalPacket *original, int dataByteOffset, int dataByteLength, CCTimeType time ); + + /// Get the specified ordering list + // DataStructures::LinkedList *GetOrderingListAtOrderingStream( unsigned char orderingChannel ); + + /// Add the internal packet to the ordering list in order based on order index + // void AddToOrderingList( InternalPacket * internalPacket ); + + /// Inserts a packet into the resend list in order + void InsertPacketIntoResendList( InternalPacket *internalPacket, CCTimeType time, bool firstResend, bool modifyUnacknowledgedBytes ); + + /// Memory handling + void FreeMemory( bool freeAllImmediately ); + + /// Memory handling + void FreeThreadSafeMemory( void ); + + // Initialize the variables + void InitializeVariables( void ); + + /// Given the current time, is this time so old that we should consider it a timeout? + bool IsExpiredTime(unsigned int input, CCTimeType currentTime) const; + + // Make it so we don't do resends within a minimum threshold of time + void UpdateNextActionTime(void); + + + /// Does this packet number represent a packet that was skipped (out of order?) + //unsigned int IsReceivedPacketHole(unsigned int input, RakNet::TimeMS currentTime) const; + + /// Skip an element in the received packets list + //unsigned int MakeReceivedPacketHole(unsigned int input) const; + + /// How many elements are waiting to be resent? + unsigned int GetResendListDataSize(void) const; + + /// Update all memory which is not threadsafe + void UpdateThreadedMemory(void); + + void CalculateHistogramAckSize(void); + + // Used ONLY for RELIABLE_ORDERED + // RELIABLE_SEQUENCED just returns the newest one + // DataStructures::List*> orderingList; + DataStructures::Queue outputQueue; + int splitMessageProgressInterval; + CCTimeType unreliableTimeout; + + struct MessageNumberNode + { + DatagramSequenceNumberType messageNumber; + MessageNumberNode *next; + }; + struct DatagramHistoryNode + { + DatagramHistoryNode() {} + DatagramHistoryNode(MessageNumberNode *_head, CCTimeType ts + ) : + head(_head), timeSent(ts) + {} + MessageNumberNode *head; + CCTimeType timeSent; + }; + // Queue length is programmatically restricted to DATAGRAM_MESSAGE_ID_ARRAY_LENGTH + // This is essentially an O(1) lookup to get a DatagramHistoryNode given an index + // datagramHistory holds a linked list of MessageNumberNode. Each MessageNumberNode refers to one element in resendList which can be cleared on an ack. + DataStructures::Queue datagramHistory; + DataStructures::MemoryPool datagramHistoryMessagePool; + + struct UnreliableWithAckReceiptNode + { + UnreliableWithAckReceiptNode() {} + UnreliableWithAckReceiptNode(DatagramSequenceNumberType _datagramNumber, uint32_t _sendReceiptSerial, RakNet::TimeUS _nextActionTime) : + datagramNumber(_datagramNumber), sendReceiptSerial(_sendReceiptSerial), nextActionTime(_nextActionTime) + {} + DatagramSequenceNumberType datagramNumber; + uint32_t sendReceiptSerial; + RakNet::TimeUS nextActionTime; + }; + DataStructures::List unreliableWithAckReceiptHistory; + + void RemoveFromDatagramHistory(DatagramSequenceNumberType index); + MessageNumberNode* GetMessageNumberNodeByDatagramIndex(DatagramSequenceNumberType index, CCTimeType *timeSent); + void AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, CCTimeType timeSent); + MessageNumberNode* AddFirstToDatagramHistory(DatagramSequenceNumberType datagramNumber, DatagramSequenceNumberType messageNumber, CCTimeType timeSent); + MessageNumberNode* AddSubsequentToDatagramHistory(MessageNumberNode *messageNumberNode, DatagramSequenceNumberType messageNumber); + DatagramSequenceNumberType datagramHistoryPopCount; + + DataStructures::MemoryPool internalPacketPool; + // DataStructures::BPlusTree resendTree; + InternalPacket *resendBuffer[RESEND_BUFFER_ARRAY_LENGTH]; + InternalPacket *resendLinkedListHead; + InternalPacket *unreliableLinkedListHead; + void RemoveFromUnreliableLinkedList(InternalPacket *internalPacket); + void AddToUnreliableLinkedList(InternalPacket *internalPacket); +// unsigned int numPacketsOnResendBuffer; + //unsigned int blockWindowIncreaseUntilTime; + // DataStructures::RangeList acknowlegements; + // Resend list is a tree of packets we need to resend + + // Set to the current time when the resend queue is no longer empty + // Set to zero when it becomes empty + // Set to the current time if it is not zero, and we get incoming data + // If the current time - timeResendQueueNonEmpty is greater than a threshold, we are disconnected +// CCTimeType timeResendQueueNonEmpty; + RakNet::TimeMS timeLastDatagramArrived; + + + // If we backoff due to packetloss, don't remeasure until all waiting resends have gone out or else we overcount +// bool packetlossThisSample; +// int backoffThisSample; +// unsigned packetlossThisSampleResendCount; +// CCTimeType lastPacketlossTime; + + //DataStructures::Queue sendPacketSet[ NUMBER_OF_PRIORITIES ]; + DataStructures::Heap outgoingPacketBuffer; + reliabilityHeapWeightType outgoingPacketBufferNextWeights[NUMBER_OF_PRIORITIES]; + void InitHeapWeights(void); + reliabilityHeapWeightType GetNextWeight(int priorityLevel); +// unsigned int messageInSendBuffer[NUMBER_OF_PRIORITIES]; +// double bytesInSendBuffer[NUMBER_OF_PRIORITIES]; + + + DataStructures::OrderedList splitPacketChannelList; + + MessageNumberType sendReliableMessageNumberIndex; + MessageNumberType internalOrderIndex; + //unsigned int windowSize; + //RakNet::BitStream updateBitStream; + bool deadConnection, cheater; + SplitPacketIdType splitPacketId; + RakNet::TimeMS timeoutTime; // How long to wait in MS before timing someone out + //int MAX_AVERAGE_PACKETS_PER_SECOND; // Name says it all +// int RECEIVED_PACKET_LOG_LENGTH, requestedReceivedPacketLogLength; // How big the receivedPackets array is +// unsigned int *receivedPackets; + RakNetStatistics statistics; + + // Algorithm for blending ordered and sequenced on the same channel: + // 1. Each ordered message transmits OrderingIndexType orderedWriteIndex. There are NUMBER_OF_ORDERED_STREAMS independent values of these. The value + // starts at 0. Every time an ordered message is sent, the value increments by 1 + // 2. Each sequenced message contains the current value of orderedWriteIndex for that channel, and additionally OrderingIndexType sequencedWriteIndex. + // sequencedWriteIndex resets to 0 every time orderedWriteIndex increments. It increments by 1 every time a sequenced message is sent. + // 3. The receiver maintains the next expected value for the orderedWriteIndex, stored in orderedReadIndex. + // 4. As messages arrive: + // If a message has the current ordering index, and is sequenced, and is < the current highest sequence value, discard + // If a message has the current ordering index, and is sequenced, and is >= the current highest sequence value, return immediately + // If a message has a greater ordering index, and is sequenced or ordered, buffer it + // If a message has the current ordering index, and is ordered, buffer, then push off messages from buffer + // 5. Pushing off messages from buffer: + // Messages in buffer are put in a minheap. The value of each node is calculated such that messages are returned: + // A. (lowest ordering index, lowest sequence index) + // B. (lowest ordering index, no sequence index) + // Messages are pushed off until the heap is empty, or the next message to be returned does not preserve the ordered index + // For an empty heap, the heap weight should start at the lowest value based on the next expected ordering index, to avoid variable overflow + + // Sender increments this by 1 for every ordered message sent + OrderingIndexType orderedWriteIndex[NUMBER_OF_ORDERED_STREAMS]; + // Sender increments by 1 for every sequenced message sent. Resets to 0 when an ordered message is sent + OrderingIndexType sequencedWriteIndex[NUMBER_OF_ORDERED_STREAMS]; + // Next expected index for ordered messages. + OrderingIndexType orderedReadIndex[NUMBER_OF_ORDERED_STREAMS]; + // Highest value received for sequencedWriteIndex for the current value of orderedReadIndex on the same channel. + OrderingIndexType highestSequencedReadIndex[NUMBER_OF_ORDERED_STREAMS]; + DataStructures::Heap orderingHeaps[NUMBER_OF_ORDERED_STREAMS]; + OrderingIndexType heapIndexOffsets[NUMBER_OF_ORDERED_STREAMS]; + + + + + + + +// CCTimeType histogramStart; +// unsigned histogramBitsSent; + + + /// Memory-efficient receivedPackets algorithm: + /// receivedPacketsBaseIndex is the packet number we are expecting + /// Everything under receivedPacketsBaseIndex is a packet we already got + /// Everything over receivedPacketsBaseIndex is stored in hasReceivedPacketQueue + /// It stores the time to stop waiting for a particular packet number, where the packet number is receivedPacketsBaseIndex + the index into the queue + /// If 0, we got got that packet. Otherwise, the time to give up waiting for that packet. + /// If we get a packet number where (receivedPacketsBaseIndex-packetNumber) is less than half the range of receivedPacketsBaseIndex then it is a duplicate + /// Otherwise, it is a duplicate packet (and ignore it). + // DataStructures::Queue hasReceivedPacketQueue; + DataStructures::Queue hasReceivedPacketQueue; + DatagramSequenceNumberType receivedPacketsBaseIndex; + bool resetReceivedPackets; + + CCTimeType lastUpdateTime; + CCTimeType timeBetweenPackets, nextSendTime; + + + +// CCTimeType ackPingSamples[ACK_PING_SAMPLES_SIZE]; // Must be range of unsigned char to wrap ackPingIndex properly + CCTimeType ackPingSum; + unsigned char ackPingIndex; + //CCTimeType nextLowestPingReset; + RemoteSystemTimeType remoteSystemTime; +// bool continuousSend; +// CCTimeType lastTimeBetweenPacketsIncrease,lastTimeBetweenPacketsDecrease; + // Limit changes in throughput to once per ping - otherwise even if lag starts we don't know about it + // In the meantime the connection is flooded and overrun. + CCTimeType nextAllowedThroughputSample; + bool bandwidthExceededStatistic; + + // If Update::maxBitsPerSecond > 0, then throughputCapCountdown is used as a timer to prevent sends for some amount of time after each send, depending on + // the amount of data sent + long long throughputCapCountdown; + + unsigned receivePacketCount; + +#ifdef _DEBUG + struct DataAndTime// + { + SOCKET s; + char data[ MAXIMUM_MTU_SIZE ]; + unsigned int length; + RakNet::TimeMS sendTime; + // SystemAddress systemAddress; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + }; + DataStructures::Queue delayList; + + // Internet simulator + double packetloss; + RakNet::TimeMS minExtraPing, extraPingVariance; +#endif + + CCTimeType elapsedTimeSinceLastUpdate; + + CCTimeType nextAckTimeToSend; + + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL==1 + RakNet::CCRakNetSlidingWindow congestionManager; +#else + RakNet::CCRakNetUDT congestionManager; +#endif + + + uint32_t unacknowledgedBytes; + + bool ResendBufferOverflow(void) const; + void ValidateResendList(void) const; + void ResetPacketsAndDatagrams(void); + void PushPacket(CCTimeType time, InternalPacket *internalPacket, bool isReliable); + void PushDatagram(void); + bool TagMostRecentPushAsSecondOfPacketPair(void); + void ClearPacketsAndDatagrams(void); + void MoveToListHead(InternalPacket *internalPacket); + void RemoveFromList(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes); + void AddToListTail(InternalPacket *internalPacket, bool modifyUnacknowledgedBytes); + void PopListHead(bool modifyUnacknowledgedBytes); + bool IsResendQueueEmpty(void) const; + void SortSplitPacketList(DataStructures::List &data, unsigned int leftEdge, unsigned int rightEdge) const; + void SendACKs(SOCKET s, SystemAddress &systemAddress, CCTimeType time, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream); + + DataStructures::List packetsToSendThisUpdate; + DataStructures::List packetsToDeallocThisUpdate; + // boundary is in packetsToSendThisUpdate, inclusive + DataStructures::List packetsToSendThisUpdateDatagramBoundaries; + DataStructures::List datagramsToSendThisUpdateIsPair; + DataStructures::List datagramSizesInBytes; + BitSize_t datagramSizeSoFar; + BitSize_t allDatagramSizesSoFar; + double totalUserDataBytesAcked; + CCTimeType timeOfLastContinualSend; + CCTimeType timeToNextUnreliableCull; + + // This doesn't need to be a member, but I do it to avoid reallocations + DataStructures::RangeList incomingAcks; + + // Every 16 datagrams, we make sure the 17th datagram goes out the same update tick, and is the same size as the 16th + int countdownToNextPacketPair; + InternalPacket* AllocateFromInternalPacketPool(void); + void ReleaseToInternalPacketPool(InternalPacket *ip); + + DataStructures::RangeList acknowlegements; + DataStructures::RangeList NAKs; + bool remoteSystemNeedsBAndAS; + + unsigned int GetMaxDatagramSizeExcludingMessageHeaderBytes(void); + BitSize_t GetMaxDatagramSizeExcludingMessageHeaderBits(void); + + // ourOffset refers to a section within externallyAllocatedPtr. Do not deallocate externallyAllocatedPtr until all references are lost + void AllocInternalPacketData(InternalPacket *internalPacket, InternalPacketRefCountedData **refCounter, unsigned char *externallyAllocatedPtr, unsigned char *ourOffset); + // Set the data pointer to externallyAllocatedPtr, do not allocate + void AllocInternalPacketData(InternalPacket *internalPacket, unsigned char *externallyAllocatedPtr); + // Allocate new + void AllocInternalPacketData(InternalPacket *internalPacket, unsigned int numBytes, bool allowStack, const char *file, unsigned int line); + void FreeInternalPacketData(InternalPacket *internalPacket, const char *file, unsigned int line); + DataStructures::MemoryPool refCountedDataPool; + + BPSTracker bpsMetrics[RNS_PER_SECOND_METRICS_COUNT]; + CCTimeType lastBpsClear; + +#if LIBCAT_SECURITY==1 +public: + cat::AuthenticatedEncryption* GetAuthenticatedEncryption(void) { return &auth_enc; } + +protected: + cat::AuthenticatedEncryption auth_enc; + bool useSecurity; +#endif // LIBCAT_SECURITY +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/ReplicaEnums.h b/src/raknet/ReplicaEnums.h new file mode 100755 index 0000000..93aeef8 --- /dev/null +++ b/src/raknet/ReplicaEnums.h @@ -0,0 +1,43 @@ +/// \file +/// \brief Contains enumerations used by the ReplicaManager system. This file is a lightweight header, so you can include it without worrying about linking in lots of other crap +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __REPLICA_ENUMS_H +#define __REPLICA_ENUMS_H + +/// Replica interface flags, used to enable and disable function calls on the Replica object +/// Passed to ReplicaManager::EnableReplicaInterfaces and ReplicaManager::DisableReplicaInterfaces +enum +{ + REPLICA_RECEIVE_DESTRUCTION=1<<0, + REPLICA_RECEIVE_SERIALIZE=1<<1, + REPLICA_RECEIVE_SCOPE_CHANGE=1<<2, + REPLICA_SEND_CONSTRUCTION=1<<3, + REPLICA_SEND_DESTRUCTION=1<<4, + REPLICA_SEND_SCOPE_CHANGE=1<<5, + REPLICA_SEND_SERIALIZE=1<<6, + REPLICA_SET_ALL = 0xFF // Allow all of the above +}; + +enum ReplicaReturnResult +{ + /// This means call the function again later, with the same parameters + REPLICA_PROCESS_LATER, + /// This means we are done processing (the normal result to return) + REPLICA_PROCESSING_DONE, + /// This means cancel the processing - don't send any network messages and don't change the current state. + REPLICA_CANCEL_PROCESS, + /// Same as REPLICA_PROCESSING_DONE, where a message is sent, but does not clear the send bit. + /// Useful for multi-part sends with different reliability levels. + /// Only currently used by Replica::Serialize + REPLICA_PROCESS_AGAIN, + /// Only returned from the Replica::SendConstruction interface, means act as if the other system had this object but don't actually + /// Send a construction packet. This way you will still send scope and serialize packets to that system + REPLICA_PROCESS_IMPLICIT +}; + +#endif diff --git a/src/raknet/ReplicaManager3.cpp b/src/raknet/ReplicaManager3.cpp new file mode 100755 index 0000000..0bf0958 --- /dev/null +++ b/src/raknet/ReplicaManager3.cpp @@ -0,0 +1,2250 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReplicaManager3==1 + +#include "ReplicaManager3.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "NetworkIDManager.h" + +using namespace RakNet; + +// DEFINE_MULTILIST_PTR_TO_MEMBER_COMPARISONS(LastSerializationResult,Replica3*,replica); + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool PRO::operator==( const PRO& right ) const +{ + return priority == right.priority && reliability == right.reliability && orderingChannel == right.orderingChannel && sendReceipt == right.sendReceipt; +} + +bool PRO::operator!=( const PRO& right ) const +{ + return priority != right.priority || reliability != right.reliability || orderingChannel != right.orderingChannel || sendReceipt != right.sendReceipt; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +int Connection_RM3::Replica3LSRComp( Replica3 * const &replica3, LastSerializationResult * const &data ) +{ + if (replica3->GetNetworkID() < data->replica->GetNetworkID()) + return -1; + if (replica3->GetNetworkID() > data->replica->GetNetworkID()) + return 1; + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +LastSerializationResult::LastSerializationResult() +{ + replica=0; + lastSerializationResultBS=0; +} +LastSerializationResult::~LastSerializationResult() +{ + if (lastSerializationResultBS) + RakNet::OP_DELETE(lastSerializationResultBS,_FILE_AND_LINE_); +} +void LastSerializationResult::AllocBS(void) +{ + if (lastSerializationResultBS==0) + { + lastSerializationResultBS=RakNet::OP_NEW(_FILE_AND_LINE_); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ReplicaManager3::ReplicaManager3() +{ + defaultSendParameters.orderingChannel=0; + defaultSendParameters.priority=HIGH_PRIORITY; + defaultSendParameters.reliability=RELIABLE_ORDERED; + defaultSendParameters.sendReceipt=0; + autoSerializeInterval=30; + lastAutoSerializeOccurance=0; + worldId=0; + autoCreateConnections=true; + autoDestroyConnections=true; + networkIDManager=0; + currentlyDeallocatingReplica=0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +ReplicaManager3::~ReplicaManager3() +{ + if (autoDestroyConnections) + { + // Clear() calls DeallocConnection(), which is pure virtual and cannot be called from the destructor + RakAssert(connectionList.Size()==0); + } + Clear(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetAutoManageConnections(bool autoCreate, bool autoDestroy) +{ + autoCreateConnections=autoCreate; + autoDestroyConnections=autoDestroy; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool ReplicaManager3::PushConnection(RakNet::Connection_RM3 *newConnection) +{ + if (newConnection==0) + return false; + if (GetConnectionByGUID(newConnection->GetRakNetGUID())) + return false; + unsigned int index = connectionList.GetIndexOf(newConnection); + if (index==(unsigned int)-1) + { + connectionList.Push(newConnection,_FILE_AND_LINE_); + + // Send message to validate the connection + newConnection->SendValidation(rakPeerInterface, worldId); + + Connection_RM3::ConstructionMode constructionMode = newConnection->QueryConstructionMode(); + if (constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int pushIdx; + for (pushIdx=0; pushIdx < userReplicaList.Size(); pushIdx++) + newConnection->OnLocalReference(userReplicaList[pushIdx], this); + } + } + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::DeallocReplicaNoBroadcastDestruction(RakNet::Connection_RM3 *connection, RakNet::Replica3 *replica3) +{ + currentlyDeallocatingReplica=replica3; + replica3->DeallocReplica(connection); + currentlyDeallocatingReplica=0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNet::Connection_RM3 * ReplicaManager3::PopConnection(unsigned int index) +{ + DataStructures::List replicaList; + DataStructures::List destructionList; + DataStructures::List broadcastList; + RakNet::Connection_RM3 *connection; + unsigned int index2; + RM3ActionOnPopConnection action; + + connection=connectionList[index]; + + // Clear out downloadGroup + connection->ClearDownloadGroup(rakPeerInterface); + + RakNetGUID guid = connection->GetRakNetGUID(); + // This might be wrong, I am relying on the variable creatingSystemGuid which is transmitted + // automatically from the first system to reference the object. However, if an object changes + // owners then it is not going to be returned here, and therefore QueryActionOnPopConnection() + // will not be called for the new owner. + GetReplicasCreatedByGuid(guid, replicaList); + + for (index2=0; index2 < replicaList.Size(); index2++) + { + action = replicaList[index2]->QueryActionOnPopConnection(connection); + replicaList[index2]->OnPoppedConnection(connection); + if (action==RM3AOPC_DELETE_REPLICA) + { + destructionList.Push( replicaList[index2], _FILE_AND_LINE_ ); + } + else if (action==RM3AOPC_DELETE_REPLICA_AND_BROADCAST_DESTRUCTION) + { + destructionList.Push( replicaList[index2], _FILE_AND_LINE_ ); + + broadcastList.Push( replicaList[index2], _FILE_AND_LINE_ ); + } + } + + BroadcastDestructionList(broadcastList, connection->GetSystemAddress()); + for (index2=0; index2 < destructionList.Size(); index2++) + { + destructionList[index2]->PreDestruction(connection); + destructionList[index2]->DeallocReplica(connection); + } + + connectionList.RemoveAtIndex(index); + return connection; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNet::Connection_RM3 * ReplicaManager3::PopConnection(RakNetGUID guid) +{ + unsigned int index; + + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->GetRakNetGUID()==guid) + { + return PopConnection(index); + } + } + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::Reference(RakNet::Replica3 *replica3) +{ + unsigned int index = ReferenceInternal(replica3); + + if (index!=(unsigned int)-1) + { + unsigned int pushIdx; + for (pushIdx=0; pushIdx < connectionList.Size(); pushIdx++) + { + Connection_RM3::ConstructionMode constructionMode = connectionList[pushIdx]->QueryConstructionMode(); + if (constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==Connection_RM3::QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + connectionList[pushIdx]->OnLocalReference(replica3, this); + } + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned int ReplicaManager3::ReferenceInternal(RakNet::Replica3 *replica3) +{ + unsigned int index; + index = userReplicaList.GetIndexOf(replica3); + if (index==(unsigned int)-1) + { + RakAssert(networkIDManager); + replica3->SetNetworkIDManager(networkIDManager); + if (replica3->creatingSystemGUID==UNASSIGNED_RAKNET_GUID) + replica3->creatingSystemGUID=rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + replica3->replicaManager=this; + userReplicaList.Push(replica3,_FILE_AND_LINE_); + index=userReplicaList.Size()-1; + } + return index; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::Dereference(RakNet::Replica3 *replica3) +{ + unsigned int index, index2; + for (index=0; index < userReplicaList.Size(); index++) + { + if (userReplicaList[index]==replica3) + { + userReplicaList.RemoveAtIndex(index); + break; + } + } + + // Remove from all connections + for (index2=0; index2 < connectionList.Size(); index2++) + { + connectionList[index2]->OnDereference(replica3, this); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::DereferenceList(DataStructures::List &replicaListIn) +{ + unsigned int index; + for (index=0; index < replicaListIn.Size(); index++) + Dereference(replicaListIn[index]); +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetReplicasCreatedByMe(DataStructures::List &replicaListOut) +{ + RakNetGUID myGuid = rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + GetReplicasCreatedByGuid(rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS), replicaListOut); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetReferencedReplicaList(DataStructures::List &replicaListOut) +{ + replicaListOut=userReplicaList; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetReplicasCreatedByGuid(RakNetGUID guid, DataStructures::List &replicaListOut) +{ + replicaListOut.Clear(false,_FILE_AND_LINE_); + unsigned int index; + for (index=0; index < userReplicaList.Size(); index++) + { + if (userReplicaList[index]->creatingSystemGUID==guid) + replicaListOut.Push(userReplicaList[index],_FILE_AND_LINE_); + } +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned ReplicaManager3::GetReplicaCount(void) const +{ + return userReplicaList.Size(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3 *ReplicaManager3::GetReplicaAtIndex(unsigned index) +{ + return userReplicaList[index]; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned int ReplicaManager3::GetConnectionCount(void) const +{ + return connectionList.Size(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3* ReplicaManager3::GetConnectionAtIndex(unsigned index) const +{ + return connectionList[index]; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3* ReplicaManager3::GetConnectionBySystemAddress(const SystemAddress &sa) const +{ + unsigned int index; + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->GetSystemAddress()==sa) + { + return connectionList[index]; + } + } + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3* ReplicaManager3::GetConnectionByGUID(RakNetGUID guid) const +{ + unsigned int index; + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->GetRakNetGUID()==guid) + { + return connectionList[index]; + } + } + return 0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetDefaultOrderingChannel(char def) +{ + defaultSendParameters.orderingChannel=def; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetDefaultPacketPriority(PacketPriority def) +{ + defaultSendParameters.priority=def; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetDefaultPacketReliability(PacketReliability def) +{ + defaultSendParameters.reliability=def; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetAutoSerializeInterval(RakNet::Time intervalMS) +{ + autoSerializeInterval=intervalMS; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::GetConnectionsThatHaveReplicaConstructed(Replica3 *replica, DataStructures::List &connectionsThatHaveConstructedThisReplica) +{ + connectionsThatHaveConstructedThisReplica.Clear(false,_FILE_AND_LINE_); + unsigned int index; + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->HasReplicaConstructed(replica)) + connectionsThatHaveConstructedThisReplica.Push(connectionList[index],_FILE_AND_LINE_); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::Clear(void) +{ + if (autoDestroyConnections) + { + for (unsigned int i=0; i < connectionList.Size(); i++) + DeallocConnection(connectionList[i]); + } + else + { + // Clear out downloadGroup even if not auto destroying the connection, since the packets need to go back to RakPeer + for (unsigned int i=0; i < connectionList.Size(); i++) + connectionList[i]->ClearDownloadGroup(rakPeerInterface); + } + + + + connectionList.Clear(true,_FILE_AND_LINE_); + userReplicaList.Clear(true,_FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PRO ReplicaManager3::GetDefaultSendParameters(void) const +{ + return defaultSendParameters; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetWorldID(unsigned char id) +{ + worldId=id; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +unsigned char ReplicaManager3::GetWorldID(void) const +{ + return worldId; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +NetworkIDManager *ReplicaManager3::GetNetworkIDManager(void) const +{ + return networkIDManager; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::SetNetworkIDManager(NetworkIDManager *_networkIDManager) +{ + networkIDManager=_networkIDManager; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnReceive(Packet *packet) +{ + if (packet->length<2) + return RR_CONTINUE_PROCESSING; + + unsigned char incomingWorldId; + + RakNet::Time timestamp=0; + unsigned char packetIdentifier, packetDataOffset; + if ( ( unsigned char ) packet->data[ 0 ] == ID_TIMESTAMP ) + { + if ( packet->length > sizeof( unsigned char ) + sizeof( RakNet::Time ) ) + { + packetIdentifier = ( unsigned char ) packet->data[ sizeof( unsigned char ) + sizeof( RakNet::Time ) ]; + // Required for proper endian swapping + RakNet::BitStream tsBs(packet->data+sizeof(MessageID),packet->length-1,false); + tsBs.Read(timestamp); + incomingWorldId=packet->data[sizeof( unsigned char )*2 + sizeof( RakNet::Time )]; + packetDataOffset=sizeof( unsigned char )*3 + sizeof( RakNet::Time ); + } + else + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else + { + packetIdentifier = ( unsigned char ) packet->data[ 0 ]; + incomingWorldId=packet->data[sizeof( unsigned char )]; + packetDataOffset=sizeof( unsigned char )*2; + } + + switch (packetIdentifier) + { + case ID_REPLICA_MANAGER_CONSTRUCTION: + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnConstruction(packet, packet->data, packet->length, packet->guid, packetDataOffset); + case ID_REPLICA_MANAGER_SERIALIZE: + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnSerialize(packet, packet->data, packet->length, packet->guid, timestamp, packetDataOffset); + case ID_REPLICA_MANAGER_DOWNLOAD_STARTED: + if (packet->wasGeneratedLocally==false) + { + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnDownloadStarted(packet, packet->data, packet->length, packet->guid, packetDataOffset); + } + else + break; + case ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE: + if (packet->wasGeneratedLocally==false) + { + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + return OnDownloadComplete(packet, packet->data, packet->length, packet->guid, packetDataOffset); + } + else + break; + case ID_REPLICA_MANAGER_SCOPE_CHANGE: + { + if (incomingWorldId!=worldId) + return RR_CONTINUE_PROCESSING; + + Connection_RM3 *connection = GetConnectionByGUID(packet->guid); + if (connection && connection->isValidated==false) + { + // This connection is now confirmed bidirectional + connection->isValidated=true; + // Reply back on validation + connection->SendValidation(rakPeerInterface,worldId); + } + } + } + + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::AutoConstructByQuery(ReplicaManager3 *replicaManager3) +{ + ValidateLists(replicaManager3); + + ConstructionMode constructionMode = QueryConstructionMode(); + + unsigned int index; + RM3ConstructionState constructionState; + LastSerializationResult *lsr; + index=0; + + constructedReplicasCulled.Clear(false,_FILE_AND_LINE_); + destroyedReplicasCulled.Clear(false,_FILE_AND_LINE_); + + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + while (index < queryToConstructReplicaList.Size()) + { + lsr=queryToConstructReplicaList[index]; + constructionState=lsr->replica->QueryConstruction(this, replicaManager3); + if (constructionState==RM3CS_ALREADY_EXISTS_REMOTELY || constructionState==RM3CS_ALREADY_EXISTS_REMOTELY_DO_NOT_CONSTRUCT) + { + OnReplicaAlreadyExists(index, replicaManager3); + if (constructionState==RM3CS_ALREADY_EXISTS_REMOTELY) + constructedReplicasCulled.Push(lsr->replica,_FILE_AND_LINE_); + + /* + if (constructionState==RM3CS_ALREADY_EXISTS_REMOTELY) + { + // Serialize construction data to this connection + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_REPLICA_MANAGER_3_SERIALIZE_CONSTRUCTION_EXISTING); + bsOut.Write(replicaManager3->GetWorldID()); + NetworkID networkId; + networkId=lsr->replica->GetNetworkID(); + bsOut.Write(networkId); + BitSize_t bitsWritten = bsOut.GetNumberOfBitsUsed(); + lsr->replica->SerializeConstructionExisting(&bsOut, this); + if (bsOut.GetNumberOfBitsUsed()!=bitsWritten) + replicaManager3->SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,GetSystemAddress(), false); + } + + // Serialize first serialization to this connection. + // This is done here, as it isn't done in PushConstruction + SerializeParameters sp; + RakNet::BitStream emptyBs; + for (index=0; index < (unsigned int) RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; index++) + { + sp.lastSentBitstream[index]=&emptyBs; + sp.pro[index]=replicaManager3->GetDefaultSendParameters(); + } + sp.bitsWrittenSoFar=0; + sp.destinationConnection=this; + sp.messageTimestamp=0; + sp.whenLastSerialized=0; + + RakNet::Replica3 *replica = lsr->replica; + + RM3SerializationResult res = replica->Serialize(&sp); + if (res!=RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION && + res!=RM3SR_DO_NOT_SERIALIZE && + res!=RM3SR_SERIALIZED_UNIQUELY) + { + bool allIndices[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp.bitsWrittenSoFar+=sp.outputBitstream[z].GetNumberOfBitsUsed(); + allIndices[z]=true; + } + if (SendSerialize(replica, allIndices, sp.outputBitstream, sp.messageTimestamp, sp.pro, replicaManager3->GetRakPeerInterface(), replicaManager3->GetWorldID())==SSICR_SENT_DATA) + lsr->replica->whenLastSerialized=RakNet::GetTimeMS(); + } + */ + } + else if (constructionState==RM3CS_SEND_CONSTRUCTION) + { + OnConstructToThisConnection(index, replicaManager3); + constructedReplicasCulled.Push(lsr->replica,_FILE_AND_LINE_); + } + else if (constructionState==RM3CS_NEVER_CONSTRUCT) + { + OnNeverConstruct(index, replicaManager3); + } + else// if (constructionState==RM3CS_NO_ACTION) + { + // Do nothing + index++; + } + } + + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + RM3DestructionState destructionState; + index=0; + while (index < queryToDestructReplicaList.Size()) + { + lsr=queryToDestructReplicaList[index]; + destructionState=lsr->replica->QueryDestruction(this, replicaManager3); + if (destructionState==RM3DS_SEND_DESTRUCTION) + { + OnSendDestructionFromQuery(index, replicaManager3); + destroyedReplicasCulled.Push(lsr->replica,_FILE_AND_LINE_); + } + else if (destructionState==RM3DS_DO_NOT_QUERY_DESTRUCTION) + { + OnDoNotQueryDestruction(index, replicaManager3); + } + else// if (destructionState==RM3CS_NO_ACTION) + { + // Do nothing + index++; + } + } + } + } + else if (constructionMode==QUERY_CONNECTION_FOR_REPLICA_LIST) + { + QueryReplicaList(constructedReplicasCulled,destroyedReplicasCulled); + + unsigned int idx1, idx2; + + // Create new + for (idx2=0; idx2 < constructedReplicasCulled.Size(); idx2++) + OnConstructToThisConnection(constructedReplicasCulled[idx2], replicaManager3); + + bool exists; + for (idx2=0; idx2 < destroyedReplicasCulled.Size(); idx2++) + { + exists=false; + bool objectExists; + idx1=constructedReplicaList.GetIndexFromKey(destroyedReplicasCulled[idx2], &objectExists); + RakAssert(objectExists); + if (objectExists) + { + OnSendDestructionFromQuery(idx1,replicaManager3); + } + + // If this assert hits, the user tried to destroy a replica that doesn't exist on the remote system + RakAssert(exists); + } + } + + SendConstruction(constructedReplicasCulled,destroyedReplicasCulled,replicaManager3->defaultSendParameters,replicaManager3->rakPeerInterface,replicaManager3->worldId,replicaManager3); +} +void ReplicaManager3::Update(void) +{ + unsigned int index,index2; + + for (index=0; index < connectionList.Size(); index++) + { + if (connectionList[index]->isValidated==false) + continue; + connectionList[index]->AutoConstructByQuery(this); + } + + RakNet::Time time = RakNet::GetTimeMS(); + + if (time - lastAutoSerializeOccurance >= autoSerializeInterval) + { + for (index=0; index < userReplicaList.Size(); index++) + { + userReplicaList[index]->forceSendUntilNextUpdate=false; + userReplicaList[index]->OnUserReplicaPreSerializeTick(); + } + + + unsigned int index; + SerializeParameters sp; + sp.curTime=time; + Connection_RM3 *connection; + SendSerializeIfChangedResult ssicr; + sp.messageTimestamp=0; + for (int i=0; i < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; i++) + sp.pro[i]=defaultSendParameters; + index2=0; + for (index=0; index < connectionList.Size(); index++) + { + connection = connectionList[index]; + sp.bitsWrittenSoFar=0; + index2=0; + while (index2 < connection->queryToSerializeReplicaList.Size()) + { + sp.destinationConnection=connection; + sp.whenLastSerialized=connection->queryToSerializeReplicaList[index2]->replica->whenLastSerialized; + ssicr=connection->SendSerializeIfChanged(index2, &sp, GetRakPeerInterface(), GetWorldID(), this); + if (ssicr==SSICR_SENT_DATA) + { + connection->queryToSerializeReplicaList[index2]->replica->whenLastSerialized=time; + index2++; + } + else if (ssicr==SSICR_NEVER_SERIALIZE) + { + // Removed from the middle of the list + } + else + index2++; + } + } + + lastAutoSerializeOccurance=time; + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + if (autoDestroyConnections) + { + Connection_RM3 *connection = PopConnection(rakNetGUID); + if (connection) + DeallocConnection(connection); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming) +{ + (void) isIncoming; + if (autoCreateConnections) + { + Connection_RM3 *connection = AllocConnection(systemAddress, rakNetGUID); + if (connection) + PushConnection(connection); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnRakPeerShutdown(void) +{ + if (autoDestroyConnections) + { + while (connectionList.Size()) + { + Connection_RM3 *connection = PopConnection(connectionList.Size()-1); + if (connection) + DeallocConnection(connection); + } + } + + Clear(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void ReplicaManager3::OnDetach(void) +{ + OnRakPeerShutdown(); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnConstruction(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + { + // Almost certainly a bug + RakAssert("Got OnConstruction but no connection yet" && 0); + return RR_CONTINUE_PROCESSING; + } + if (connection->groupConstructionAndSerialize) + { + connection->downloadGroup.Push(packet, __FILE__, __LINE__); + return RR_STOP_PROCESSING; + } + + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + uint16_t constructionObjectListSize, destructionObjectListSize, index, index2; + BitSize_t streamEnd, writeAllocationIDEnd; + Replica3 *replica; + NetworkID networkId; + RakNetGUID creatingSystemGuid; + bool actuallyCreateObject=false; + + DataStructures::List actuallyCreateObjectList; + DataStructures::List constructionTickStack; + + RakAssert(networkIDManager); + + bsIn.Read(constructionObjectListSize); + for (index=0; index < constructionObjectListSize; index++) + { + bsIn.Read(streamEnd); + bsIn.Read(networkId); + Replica3* existingReplica = networkIDManager->GET_OBJECT_FROM_ID(networkId); + bsIn.Read(actuallyCreateObject); + actuallyCreateObjectList.Push(actuallyCreateObject, _FILE_AND_LINE_); + bsIn.AlignReadToByteBoundary(); + + if (actuallyCreateObject) + { + bsIn.Read(creatingSystemGuid); + bsIn.Read(writeAllocationIDEnd); + + //printf("OnConstruction: %i\n",networkId.guid.g); // Removeme + if (existingReplica) + { + existingReplica->replicaManager=this; + + // Network ID already in use + connection->OnDownloadExisting(existingReplica, this); + + constructionTickStack.Push(0, _FILE_AND_LINE_); + bsIn.SetReadOffset(streamEnd); + continue; + } + + bsIn.AlignReadToByteBoundary(); + replica = connection->AllocReplica(&bsIn, this); + if (replica==0) + { + constructionTickStack.Push(0, _FILE_AND_LINE_); + bsIn.SetReadOffset(streamEnd); + continue; + } + + // Go past the bitStream written to with WriteAllocationID(). Necessary in case the user didn't read out the bitStream the same way it was written + // bitOffset2 is already aligned + bsIn.SetReadOffset(writeAllocationIDEnd); + + replica->SetNetworkIDManager(networkIDManager); + replica->SetNetworkID(networkId); + + replica->replicaManager=this; + replica->creatingSystemGUID=creatingSystemGuid; + + if (!replica->QueryRemoteConstruction(connection) || + !replica->DeserializeConstruction(&bsIn, connection)) + { + DeallocReplicaNoBroadcastDestruction(connection, replica); + bsIn.SetReadOffset(streamEnd); + constructionTickStack.Push(0, _FILE_AND_LINE_); + continue; + } + + constructionTickStack.Push(replica, _FILE_AND_LINE_); + + // Register the replica + ReferenceInternal(replica); + } + else + { + if (existingReplica) + { + existingReplica->DeserializeConstructionExisting(&bsIn, connection); + constructionTickStack.Push(existingReplica, _FILE_AND_LINE_); + } + else + { + constructionTickStack.Push(0, _FILE_AND_LINE_); + } + } + + + bsIn.SetReadOffset(streamEnd); + bsIn.AlignReadToByteBoundary(); + } + + RakAssert(constructionTickStack.Size()==constructionObjectListSize); + RakAssert(actuallyCreateObjectList.Size()==constructionObjectListSize); + + RakNet::BitStream empty; + for (index=0; index < constructionObjectListSize; index++) + { + bool pdcWritten=false; + bsIn.Read(pdcWritten); + if (pdcWritten) + { + bsIn.AlignReadToByteBoundary(); + bsIn.Read(streamEnd); + bsIn.Read(networkId); + if (constructionTickStack[index]!=0) + { + bsIn.AlignReadToByteBoundary(); + if (actuallyCreateObjectList[index]) + constructionTickStack[index]->PostDeserializeConstruction(&bsIn, connection); + else + constructionTickStack[index]->PostDeserializeConstructionExisting(&bsIn, connection); + } + bsIn.SetReadOffset(streamEnd); + } + else + { + if (constructionTickStack[index]!=0) + constructionTickStack[index]->PostDeserializeConstruction(&empty, connection); + } + } + + for (index=0; index < constructionObjectListSize; index++) + { + if (constructionTickStack[index]!=0) + { + if (actuallyCreateObjectList[index]) + { + // Tell the connection(s) that this object exists since they just sent it to us + connection->OnDownloadFromThisSystem(constructionTickStack[index], this); + + for (index2=0; index2 < connectionList.Size(); index2++) + { + if (connectionList[index2]!=connection) + connectionList[index2]->OnDownloadFromOtherSystem(constructionTickStack[index], this); + } + } + } + } + + // Destructions + bool b = bsIn.Read(destructionObjectListSize); + (void) b; + RakAssert(b); + for (index=0; index < destructionObjectListSize; index++) + { + bsIn.Read(networkId); + bsIn.Read(streamEnd); + replica = networkIDManager->GET_OBJECT_FROM_ID(networkId); + if (replica==0) + { + // Unknown object + bsIn.SetReadOffset(streamEnd); + continue; + } + bsIn.Read(replica->deletingSystemGUID); + if (replica->DeserializeDestruction(&bsIn,connection)) + { + // Make sure it wasn't deleted in DeserializeDestruction + if (networkIDManager->GET_OBJECT_FROM_ID(networkId)) + { + replica->PreDestruction(connection); + + // Forward deletion by remote system + if (replica->QueryRelayDestruction(connection)) + BroadcastDestruction(replica,connection->GetSystemAddress()); + Dereference(replica); + DeallocReplicaNoBroadcastDestruction(connection, replica); + } + } + else + { + replica->PreDestruction(connection); + connection->OnDereference(replica, this); + } + + bsIn.AlignReadToByteBoundary(); + } + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnSerialize(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, RakNet::Time timestamp, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + return RR_CONTINUE_PROCESSING; + if (connection->groupConstructionAndSerialize) + { + connection->downloadGroup.Push(packet, __FILE__, __LINE__); + return RR_STOP_PROCESSING; + } + RakAssert(networkIDManager); + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + + struct DeserializeParameters ds; + ds.timeStamp=timestamp; + ds.sourceConnection=connection; + + Replica3 *replica; + NetworkID networkId; + BitSize_t bitsUsed; + bsIn.Read(networkId); + //printf("OnSerialize: %i\n",networkId.guid.g); // Removeme + replica = networkIDManager->GET_OBJECT_FROM_ID(networkId); + if (replica) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + bsIn.Read(ds.bitstreamWrittenTo[z]); + if (ds.bitstreamWrittenTo[z]) + { + bsIn.ReadCompressed(bitsUsed); + bsIn.AlignReadToByteBoundary(); + bsIn.Read(ds.serializationBitstream[z], bitsUsed); + } + } + replica->Deserialize(&ds); + } + return RR_CONTINUE_PROCESSING; +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnDownloadStarted(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + return RR_CONTINUE_PROCESSING; + if (connection->QueryGroupDownloadMessages() && + // ID_DOWNLOAD_STARTED will be processed twice, being processed the second time once ID_DOWNLOAD_COMPLETE arrives. + // However, the second time groupConstructionAndSerialize will be set to true so it won't be processed a third time + connection->groupConstructionAndSerialize==false + ) + { + // These messages will be held by the plugin and returned when the download is complete + connection->groupConstructionAndSerialize=true; + RakAssert(connection->downloadGroup.Size()==0); + connection->downloadGroup.Push(packet, __FILE__, __LINE__); + return RR_STOP_PROCESSING; + } + + connection->groupConstructionAndSerialize=false; + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + connection->DeserializeOnDownloadStarted(&bsIn); + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +PluginReceiveResult ReplicaManager3::OnDownloadComplete(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset) +{ + Connection_RM3 *connection = GetConnectionByGUID(senderGuid); + if (connection==0) + return RR_CONTINUE_PROCESSING; + + if (connection->groupConstructionAndSerialize==true && connection->downloadGroup.Size()>0) + { + // Push back buffered packets in front of this one + unsigned int i; + for (i=0; i < connection->downloadGroup.Size(); i++) + rakPeerInterface->PushBackPacket(connection->downloadGroup[i],false); + + // Push this one to be last too. It will be processed again, but the second time + // groupConstructionAndSerialize will be false and downloadGroup will be empty, so it will go past this block + connection->downloadGroup.Clear(__FILE__,__LINE__); + rakPeerInterface->PushBackPacket(packet,false); + + return RR_STOP_PROCESSING; + } + + RakNet::BitStream bsIn(packetData,packetDataLength,false); + bsIn.IgnoreBytes(packetDataOffset); + connection->DeserializeOnDownloadComplete(&bsIn); + return RR_CONTINUE_PROCESSING; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3* ReplicaManager3::GetReplicaByNetworkID(NetworkID networkId) +{ + unsigned int i; + for (i=0; i < userReplicaList.Size(); i++) + { + if (userReplicaList[i]->GetNetworkID()==networkId) + return userReplicaList[i]; + } + return 0; +} + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +void ReplicaManager3::BroadcastDestructionList(DataStructures::List &replicaListSource, const SystemAddress &exclusionAddress) +{ + RakNet::BitStream bsOut; + unsigned int i,j; + + DataStructures::List replicaList; + + for (i=0; i < replicaListSource.Size(); i++) + { + if (replicaListSource[i]==currentlyDeallocatingReplica) + continue; + replicaList.Push(replicaListSource[i], __FILE__, __LINE__); + } + + if (replicaList.Size()==0) + return; + + for (i=0; i < replicaList.Size(); i++) + { + if (replicaList[i]->deletingSystemGUID==UNASSIGNED_RAKNET_GUID) + replicaList[i]->deletingSystemGUID=GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + } + + for (j=0; j < connectionList.Size(); j++) + { + if (connectionList[j]->GetSystemAddress()==exclusionAddress) + continue; + + bsOut.Reset(); + bsOut.Write((MessageID)ID_REPLICA_MANAGER_CONSTRUCTION); + bsOut.Write(worldId); + uint16_t cnt=0; + bsOut.Write(cnt); // No construction + cnt=(uint16_t) replicaList.Size(); + BitSize_t cntOffset=bsOut.GetWriteOffset();; + bsOut.Write(cnt); // Overwritten at send call + cnt=0; + + for (i=0; i < replicaList.Size(); i++) + { + if (connectionList[j]->HasReplicaConstructed(replicaList[i])==false) + continue; + cnt++; + + NetworkID networkId; + networkId=replicaList[i]->GetNetworkID(); + bsOut.Write(networkId); + BitSize_t offsetStart, offsetEnd; + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); + bsOut.Write(replicaList[i]->deletingSystemGUID); + replicaList[i]->SerializeDestruction(&bsOut, connectionList[j]); + bsOut.AlignWriteToByteBoundary(); + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + + if (cnt>0) + { + BitSize_t curOffset=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(cntOffset); + bsOut.Write(cnt); + bsOut.SetWriteOffset(curOffset); + rakPeerInterface->Send(&bsOut,defaultSendParameters.priority,defaultSendParameters.reliability,defaultSendParameters.orderingChannel,connectionList[j]->GetSystemAddress(),false, defaultSendParameters.sendReceipt); + } + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +void ReplicaManager3::BroadcastDestruction(Replica3 *replica, const SystemAddress &exclusionAddress) +{ + DataStructures::List replicaList; + replicaList.Push(replica, _FILE_AND_LINE_ ); + BroadcastDestructionList(replicaList,exclusionAddress); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3::Connection_RM3(const SystemAddress &_systemAddress, RakNetGUID _guid) +: systemAddress(_systemAddress), guid(_guid) +{ + isValidated=false; + isFirstConstruction=true; + groupConstructionAndSerialize=false; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Connection_RM3::~Connection_RM3() +{ + unsigned int i; + for (i=0; i < constructedReplicaList.Size(); i++) + RakNet::OP_DELETE(constructedReplicaList[i], _FILE_AND_LINE_); + for (i=0; i < queryToConstructReplicaList.Size(); i++) + RakNet::OP_DELETE(queryToConstructReplicaList[i], _FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::GetConstructedReplicas(DataStructures::List &objectsTheyDoHave) +{ + objectsTheyDoHave.Clear(true,_FILE_AND_LINE_); + for (unsigned int idx=0; idx < constructedReplicaList.Size(); idx++) + { + objectsTheyDoHave.Push(constructedReplicaList[idx]->replica, _FILE_AND_LINE_ ); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Connection_RM3::HasReplicaConstructed(RakNet::Replica3 *replica) +{ + bool objectExists; + constructedReplicaList.GetIndexFromKey(replica, &objectExists); + return objectExists; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void Connection_RM3::SendSerializeHeader(RakNet::Replica3 *replica, RakNet::Time timestamp, RakNet::BitStream *bs, unsigned char worldId) +{ + bs->Reset(); + + if (timestamp!=0) + { + bs->Write((MessageID)ID_TIMESTAMP); + bs->Write(timestamp); + } + bs->Write((MessageID)ID_REPLICA_MANAGER_SERIALIZE); + bs->Write(worldId); + bs->Write(replica->GetNetworkID()); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void Connection_RM3::ClearDownloadGroup(RakPeerInterface *rakPeerInterface) +{ + unsigned int i; + for (i=0; i < downloadGroup.Size(); i++) + rakPeerInterface->DeallocatePacket(downloadGroup[i]); + downloadGroup.Clear(__FILE__,__LINE__); +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +SendSerializeIfChangedResult Connection_RM3::SendSerialize(RakNet::Replica3 *replica, bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::BitStream serializationData[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::Time timestamp, PRO sendParameters[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakPeerInterface *rakPeer, unsigned char worldId) +{ + bool channelHasData; + BitSize_t sum=0; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (indicesToSend[z]) + sum+=serializationData[z].GetNumberOfBitsUsed(); + } + if (sum==0) + return SSICR_DID_NOT_SEND_DATA; + + RakAssert(replica->GetNetworkID()!=UNASSIGNED_NETWORK_ID); + + RakNet::BitStream out; + BitSize_t bitsUsed; + + int channelIndex; + PRO lastPro=sendParameters[0]; + + for (channelIndex=0; channelIndex < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; channelIndex++) + { + if (channelIndex==0) + { + SendSerializeHeader(replica, timestamp, &out, worldId); + } + else if (lastPro!=sendParameters[channelIndex]) + { + // Write out remainder + for (int channelIndex2=channelIndex; channelIndex2 < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; channelIndex2++) + out.Write(false); + + // Send remainder + replica->OnSerializeTransmission(&out, systemAddress); + rakPeer->Send(&out,lastPro.priority,lastPro.reliability,lastPro.orderingChannel,systemAddress,false,lastPro.sendReceipt); + + // If no data left to send, quit out + bool anyData=false; + for (int channelIndex2=channelIndex; channelIndex2 < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; channelIndex2++) + { + if (serializationData[channelIndex2].GetNumberOfBitsUsed()>0) + { + anyData=true; + break; + } + } + if (anyData==false) + return SSICR_SENT_DATA; + + // Restart stream + SendSerializeHeader(replica, timestamp, &out, worldId); + + for (int channelIndex2=0; channelIndex2 < channelIndex; channelIndex2++) + out.Write(false); + lastPro=sendParameters[channelIndex]; + } + + bitsUsed=serializationData[channelIndex].GetNumberOfBitsUsed(); + channelHasData = indicesToSend[channelIndex]==true && bitsUsed>0; + out.Write(channelHasData); + if (channelHasData) + { + out.WriteCompressed(bitsUsed); + out.AlignWriteToByteBoundary(); + out.Write(serializationData[channelIndex]); + // Crap, forgot this line, was a huge bug in that I'd only send to the first 3 systems + serializationData[channelIndex].ResetReadPointer(); + } + } + replica->OnSerializeTransmission(&out, systemAddress); + rakPeer->Send(&out,lastPro.priority,lastPro.reliability,lastPro.orderingChannel,systemAddress,false,lastPro.sendReceipt); + return SSICR_SENT_DATA; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +SendSerializeIfChangedResult Connection_RM3::SendSerializeIfChanged(unsigned int queryToSerializeIndex, SerializeParameters *sp, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager) +{ + RakNet::Replica3 *replica = queryToSerializeReplicaList[queryToSerializeIndex]->replica; + + if (replica->GetNetworkID()==UNASSIGNED_NETWORK_ID) + return SSICR_DID_NOT_SEND_DATA; + + RM3QuerySerializationResult rm3qsr = replica->QuerySerialization(this); + if (rm3qsr==RM3QSR_NEVER_CALL_SERIALIZE) + { + // Never again for this connection and replica pair + OnNeverSerialize(queryToSerializeIndex, replicaManager); + return SSICR_NEVER_SERIALIZE; + } + + if (rm3qsr==RM3QSR_DO_NOT_CALL_SERIALIZE) + return SSICR_DID_NOT_SEND_DATA; + + if (replica->forceSendUntilNextUpdate) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (replica->lastSentSerialization.indicesToSend[z]) + sp->bitsWrittenSoFar+=replica->lastSentSerialization.bitStream[z].GetNumberOfBitsUsed(); + } + return SendSerialize(replica, replica->lastSentSerialization.indicesToSend, replica->lastSentSerialization.bitStream, sp->messageTimestamp, sp->pro, rakPeer, worldId); + } + + for (int i=0; i < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; i++) + { + sp->outputBitstream[i].Reset(); + if (queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS) + sp->lastSentBitstream[i]=&queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[i]; + else + sp->lastSentBitstream[i]=&replica->lastSentSerialization.bitStream[i]; + } + + RM3SerializationResult serializationResult = replica->Serialize(sp); + + if (serializationResult==RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION) + { + // Never again for this connection and replica pair + OnNeverSerialize(queryToSerializeIndex, replicaManager); + return SSICR_NEVER_SERIALIZE; + } + + if (serializationResult==RM3SR_DO_NOT_SERIALIZE) + { + // Don't serialize this tick only + return SSICR_DID_NOT_SEND_DATA; + } + + // This is necessary in case the user in the Serialize() function for some reason read the bitstream they also wrote + // WIthout this code, the Write calls to another bitstream would not write the entire bitstream + BitSize_t sum=0; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp->outputBitstream[z].ResetReadPointer(); + sum+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + } + + if (sum==0) + { + // Don't serialize this tick only + return SSICR_DID_NOT_SEND_DATA; + } + + if (serializationResult==RM3SR_SERIALIZED_ALWAYS) + { + bool allIndices[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + allIndices[z]=true; + + queryToSerializeReplicaList[queryToSerializeIndex]->AllocBS(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Reset(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + } + return SendSerialize(replica, allIndices, sp->outputBitstream, sp->messageTimestamp, sp->pro, rakPeer, worldId); + } + + if (serializationResult==RM3SR_SERIALIZED_ALWAYS_IDENTICALLY) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + replica->lastSentSerialization.indicesToSend[z]=sp->outputBitstream[z].GetNumberOfBitsUsed()>0; + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + replica->lastSentSerialization.bitStream[z].Reset(); + replica->lastSentSerialization.bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + replica->forceSendUntilNextUpdate=true; + } + return SendSerialize(replica, replica->lastSentSerialization.indicesToSend, sp->outputBitstream, sp->messageTimestamp, sp->pro, rakPeer, worldId); + } + + bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + if (serializationResult==RM3SR_BROADCAST_IDENTICALLY || serializationResult==RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION) + { + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (sp->outputBitstream[z].GetNumberOfBitsUsed() > 0 && + (serializationResult==RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION || + ((sp->outputBitstream[z].GetNumberOfBitsUsed()!=replica->lastSentSerialization.bitStream[z].GetNumberOfBitsUsed() || + memcmp(sp->outputBitstream[z].GetData(), replica->lastSentSerialization.bitStream[z].GetData(), sp->outputBitstream[z].GetNumberOfBytesUsed())!=0)))) + { + indicesToSend[z]=true; + replica->lastSentSerialization.indicesToSend[z]=true; + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + replica->lastSentSerialization.bitStream[z].Reset(); + replica->lastSentSerialization.bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + replica->forceSendUntilNextUpdate=true; + } + else + { + indicesToSend[z]=false; + replica->lastSentSerialization.indicesToSend[z]=false; + } + } + } + else + { + queryToSerializeReplicaList[queryToSerializeIndex]->AllocBS(); + + // RM3SR_SERIALIZED_UNIQUELY + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + if (sp->outputBitstream[z].GetNumberOfBitsUsed() > 0 && + (sp->outputBitstream[z].GetNumberOfBitsUsed()!=queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].GetNumberOfBitsUsed() || + memcmp(sp->outputBitstream[z].GetData(), queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].GetData(), sp->outputBitstream[z].GetNumberOfBytesUsed())!=0) + ) + { + indicesToSend[z]=true; + sp->bitsWrittenSoFar+=sp->outputBitstream[z].GetNumberOfBitsUsed(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Reset(); + queryToSerializeReplicaList[queryToSerializeIndex]->lastSerializationResultBS->bitStream[z].Write(&sp->outputBitstream[z]); + sp->outputBitstream[z].ResetReadPointer(); + } + else + { + indicesToSend[z]=false; + } + } + } + + + if (serializationResult==RM3SR_BROADCAST_IDENTICALLY || serializationResult==RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION) + replica->forceSendUntilNextUpdate=true; + + // Send out the data + return SendSerialize(replica, indicesToSend, sp->outputBitstream, sp->messageTimestamp, sp->pro, rakPeer, worldId); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +void Connection_RM3::OnLocalReference(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) replicaManager; + (void) constructionMode; + + LastSerializationResult* lsr=RakNet::OP_NEW(_FILE_AND_LINE_); + lsr->replica=replica3; + queryToConstructReplicaList.Push(lsr,_FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDereference(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + + LastSerializationResult* lsr=0; + unsigned int idx; + + bool objectExists; + idx=constructedReplicaList.GetIndexFromKey(replica3, &objectExists); + if (objectExists) + { + lsr=constructedReplicaList[idx]; + constructedReplicaList.RemoveAtIndex(idx); + } + + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + if (queryToConstructReplicaList[idx]->replica==replica3) + { + lsr=queryToConstructReplicaList[idx]; + queryToConstructReplicaList.RemoveAtIndex(idx); + break; + } + } + + for (idx=0; idx < queryToSerializeReplicaList.Size(); idx++) + { + if (queryToSerializeReplicaList[idx]->replica==replica3) + { + lsr=queryToSerializeReplicaList[idx]; + queryToSerializeReplicaList.RemoveAtIndex(idx); + break; + } + } + + for (idx=0; idx < queryToDestructReplicaList.Size(); idx++) + { + if (queryToDestructReplicaList[idx]->replica==replica3) + { + lsr=queryToDestructReplicaList[idx]; + queryToDestructReplicaList.RemoveAtIndex(idx); + break; + } + } + + ValidateLists(replicaManager); + + if (lsr) + RakNet::OP_DELETE(lsr,_FILE_AND_LINE_); + + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDownloadFromThisSystem(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + LastSerializationResult* lsr=RakNet::OP_NEW(_FILE_AND_LINE_); + lsr->replica=replica3; + + ConstructionMode constructionMode = QueryConstructionMode(); + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int j; + for (j=0; j < queryToConstructReplicaList.Size(); j++) + { + if (queryToConstructReplicaList[j]->replica->GetNetworkID()==replica3->GetNetworkID() ) + { + queryToConstructReplicaList.RemoveAtIndex(j); + break; + } + } + + queryToDestructReplicaList.Push(lsr,_FILE_AND_LINE_); + } + + constructedReplicaList.Insert(lsr->replica, lsr, true, _FILE_AND_LINE_); + //assert(queryToSerializeReplicaList.GetIndexOf(replica3)==(unsigned int)-1); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); + + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDownloadFromOtherSystem(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int j; + for (j=0; j < queryToConstructReplicaList.Size(); j++) + { + if (queryToConstructReplicaList[j]->replica->GetNetworkID()==replica3->GetNetworkID() ) + { + return; + } + } + + OnLocalReference(replica3, replicaManager); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnNeverConstruct(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToConstructReplicaList[queryToConstructIdx]; + queryToConstructReplicaList.RemoveAtIndex(queryToConstructIdx); + RakNet::OP_DELETE(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnConstructToThisConnection(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToConstructReplicaList[queryToConstructIdx]; + queryToConstructReplicaList.RemoveAtIndex(queryToConstructIdx); + //assert(constructedReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + constructedReplicaList.Insert(lsr->replica,lsr,true,_FILE_AND_LINE_); + //assert(queryToDestructReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToDestructReplicaList.Push(lsr,_FILE_AND_LINE_); + //assert(queryToSerializeReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnConstructToThisConnection(Replica3 *replica, ReplicaManager3 *replicaManager) +{ + RakAssert(QueryConstructionMode()==QUERY_CONNECTION_FOR_REPLICA_LIST); + (void) replicaManager; + + LastSerializationResult* lsr=RakNet::OP_NEW(_FILE_AND_LINE_); + lsr->replica=replica; + constructedReplicaList.Insert(replica,lsr,true,_FILE_AND_LINE_); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnNeverSerialize(unsigned int queryToSerializeIndex, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + queryToSerializeReplicaList.RemoveAtIndex(queryToSerializeIndex); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnReplicaAlreadyExists(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToConstructReplicaList[queryToConstructIdx]; + queryToConstructReplicaList.RemoveAtIndex(queryToConstructIdx); + //assert(constructedReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + constructedReplicaList.Insert(lsr->replica,lsr,true,_FILE_AND_LINE_); + //assert(queryToDestructReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToDestructReplicaList.Push(lsr,_FILE_AND_LINE_); + //assert(queryToSerializeReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToSerializeReplicaList.Push(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDownloadExisting(Replica3* replica3, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + + ConstructionMode constructionMode = QueryConstructionMode(); + if (constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION) + { + unsigned int idx; + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + if (queryToConstructReplicaList[idx]->replica==replica3) + { + OnConstructToThisConnection(idx, replicaManager); + return; + } + } + } + else + { + OnConstructToThisConnection(replica3, replicaManager); + } +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnSendDestructionFromQuery(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager) +{ + ConstructionMode constructionMode = QueryConstructionMode(); + RakAssert(constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION || constructionMode==QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION); + (void) constructionMode; + + ValidateLists(replicaManager); + LastSerializationResult* lsr = queryToDestructReplicaList[queryToDestructIdx]; + queryToDestructReplicaList.RemoveAtIndex(queryToDestructIdx); + unsigned int j; + for (j=0; j < queryToSerializeReplicaList.Size(); j++) + { + if (queryToSerializeReplicaList[j]->replica->GetNetworkID()==lsr->replica->GetNetworkID() ) + { + queryToSerializeReplicaList.RemoveAtIndex(j); + break; + } + } + for (j=0; j < constructedReplicaList.Size(); j++) + { + if (constructedReplicaList[j]->replica->GetNetworkID()==lsr->replica->GetNetworkID() ) + { + constructedReplicaList.RemoveAtIndex(j); + break; + } + } + //assert(queryToConstructReplicaList.GetIndexOf(lsr->replica)==(unsigned int)-1); + queryToConstructReplicaList.Push(lsr,_FILE_AND_LINE_); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::OnDoNotQueryDestruction(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager) +{ + ValidateLists(replicaManager); + queryToDestructReplicaList.RemoveAtIndex(queryToDestructIdx); + ValidateLists(replicaManager); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::ValidateLists(ReplicaManager3 *replicaManager) const +{ + (void) replicaManager; + /* +#ifdef _DEBUG + // Each object should exist only once in either constructedReplicaList or queryToConstructReplicaList + // replicaPointer from LastSerializationResult should be same among all lists + unsigned int idx, idx2; + for (idx=0; idx < constructedReplicaList.Size(); idx++) + { + idx2=queryToConstructReplicaList.GetIndexOf(constructedReplicaList[idx]->replica); + if (idx2!=(unsigned int)-1) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + idx2=constructedReplicaList.GetIndexOf(queryToConstructReplicaList[idx]->replica); + if (idx2!=(unsigned int)-1) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + LastSerializationResult *lsr, *lsr2; + for (idx=0; idx < constructedReplicaList.Size(); idx++) + { + lsr=constructedReplicaList[idx]; + + idx2=queryToSerializeReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToSerializeReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + idx2=queryToDestructReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToDestructReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + } + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + lsr=queryToConstructReplicaList[idx]; + + idx2=queryToSerializeReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToSerializeReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + idx2=queryToDestructReplicaList.GetIndexOf(lsr->replica); + if (idx2!=(unsigned int)-1) + { + lsr2=queryToDestructReplicaList[idx2]; + if (lsr2!=lsr) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + } + + // Verify pointer integrity + for (idx=0; idx < constructedReplicaList.Size(); idx++) + { + if (constructedReplicaList[idx]->replica->replicaManager!=replicaManager) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } + + // Verify pointer integrity + for (idx=0; idx < queryToConstructReplicaList.Size(); idx++) + { + if (queryToConstructReplicaList[idx]->replica->replicaManager!=replicaManager) + { + int a=5; + assert(a==0); + int *b=0; + *b=5; + } + } +#endif + */ +} +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::SendConstruction(DataStructures::List &newObjects, DataStructures::List &deletedObjects, PRO sendParameters, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager3) +{ + if (newObjects.Size()==0 && deletedObjects.Size()==0) + return; + + // All construction and destruction takes place in the same network message + // Otherwise, if objects rely on each other being created the same tick to be valid, this won't always be true + // DataStructures::List serializedObjects; + BitSize_t offsetStart, offsetStart2, offsetEnd; + unsigned int newListIndex, oldListIndex; + RakNet::BitStream bsOut; + NetworkID networkId; + if (isFirstConstruction) + { + bsOut.Write((MessageID)ID_REPLICA_MANAGER_DOWNLOAD_STARTED); + bsOut.Write(worldId); + SerializeOnDownloadStarted(&bsOut); + rakPeer->Send(&bsOut,sendParameters.priority,RELIABLE_ORDERED,sendParameters.orderingChannel,systemAddress,false,sendParameters.sendReceipt); + } + + // LastSerializationResult* lsr; + bsOut.Reset(); + bsOut.Write((MessageID)ID_REPLICA_MANAGER_CONSTRUCTION); + bsOut.Write(worldId); + uint16_t objectSize = (uint16_t) newObjects.Size(); + bsOut.Write(objectSize); + + // Construction + for (newListIndex=0; newListIndex < newObjects.Size(); newListIndex++) + { + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); // overwritten to point to the end of the stream + networkId=newObjects[newListIndex]->GetNetworkID(); + bsOut.Write(networkId); + + RM3ConstructionState cs = newObjects[newListIndex]->QueryConstruction(this, replicaManager3); + bool actuallyCreateObject = cs==RM3CS_SEND_CONSTRUCTION; + bsOut.Write(actuallyCreateObject); + bsOut.AlignWriteToByteBoundary(); + + if (actuallyCreateObject) + { + // Actually create the object + bsOut.Write(newObjects[newListIndex]->creatingSystemGUID); + offsetStart2=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart2); // overwritten to point to after the call to WriteAllocationID + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + newObjects[newListIndex]->WriteAllocationID(this, &bsOut); + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart2); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + newObjects[newListIndex]->SerializeConstruction(&bsOut, this); + } + else + { + newObjects[newListIndex]->SerializeConstructionExisting(&bsOut, this); + } + + bsOut.AlignWriteToByteBoundary(); + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + + RakNet::BitStream bsOut2; + for (newListIndex=0; newListIndex < newObjects.Size(); newListIndex++) + { + bsOut2.Reset(); + RM3ConstructionState cs = newObjects[newListIndex]->QueryConstruction(this, replicaManager3); + if (cs==RM3CS_SEND_CONSTRUCTION) + { + newObjects[newListIndex]->PostSerializeConstruction(&bsOut2, this); + } + else + { + RakAssert(cs==RM3CS_ALREADY_EXISTS_REMOTELY); + newObjects[newListIndex]->PostSerializeConstructionExisting(&bsOut2, this); + } + if (bsOut2.GetNumberOfBitsUsed()>0) + { + bsOut.Write(true); + bsOut.AlignWriteToByteBoundary(); + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); // overwritten to point to the end of the stream + networkId=newObjects[newListIndex]->GetNetworkID(); + bsOut.Write(networkId); + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + bsOut.Write(&bsOut2); + bsOut.AlignWriteToByteBoundary(); // Give the user an aligned bitStream in case they use memcpy + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + else + bsOut.Write(false); + } + bsOut.AlignWriteToByteBoundary(); + + // Destruction + objectSize = (uint16_t) deletedObjects.Size(); + bsOut.Write(objectSize); + for (oldListIndex=0; oldListIndex < deletedObjects.Size(); oldListIndex++) + { + networkId=deletedObjects[oldListIndex]->GetNetworkID(); + bsOut.Write(networkId); + offsetStart=bsOut.GetWriteOffset(); + bsOut.Write(offsetStart); + deletedObjects[oldListIndex]->deletingSystemGUID=rakPeer->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); + bsOut.Write(deletedObjects[oldListIndex]->deletingSystemGUID); + deletedObjects[oldListIndex]->SerializeDestruction(&bsOut, this); + bsOut.AlignWriteToByteBoundary(); + offsetEnd=bsOut.GetWriteOffset(); + bsOut.SetWriteOffset(offsetStart); + bsOut.Write(offsetEnd); + bsOut.SetWriteOffset(offsetEnd); + } + rakPeer->Send(&bsOut,sendParameters.priority,RELIABLE_ORDERED,sendParameters.orderingChannel,systemAddress,false,sendParameters.sendReceipt); + + // TODO - shouldn't this be part of construction? + + // Initial Download serialize to a new system + // Immediately send serialize after construction if the replica object already has saved data + // If the object was serialized identically, and does not change later on, then the new connection never gets the data + SerializeParameters sp; + sp.whenLastSerialized=0; + RakNet::BitStream emptyBs; + for (int index=0; index < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; index++) + { + sp.lastSentBitstream[index]=&emptyBs; + sp.pro[index]=sendParameters; + sp.pro[index].reliability=RELIABLE_ORDERED; + } + + sp.bitsWrittenSoFar=0; + RakNet::Time t = RakNet::GetTimeMS(); + for (newListIndex=0; newListIndex < newObjects.Size(); newListIndex++) + { + sp.destinationConnection=this; + sp.messageTimestamp=0; + RakNet::Replica3 *replica = newObjects[newListIndex]; + // 8/22/09 Forgot ResetWritePointer + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp.outputBitstream[z].ResetWritePointer(); + } + + RM3SerializationResult res = replica->Serialize(&sp); + if (res!=RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION && + res!=RM3SR_DO_NOT_SERIALIZE && + res!=RM3SR_SERIALIZED_UNIQUELY) + { + bool allIndices[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + for (int z=0; z < RM3_NUM_OUTPUT_BITSTREAM_CHANNELS; z++) + { + sp.bitsWrittenSoFar+=sp.outputBitstream[z].GetNumberOfBitsUsed(); + allIndices[z]=true; + } + SendSerialize(replica, allIndices, sp.outputBitstream, sp.messageTimestamp, sp.pro, rakPeer, worldId); + newObjects[newListIndex]->whenLastSerialized=t; + + } + // else wait for construction request accepted before serializing + } + + if (isFirstConstruction) + { + bsOut.Reset(); + bsOut.Write((MessageID)ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE); + bsOut.Write(worldId); + SerializeOnDownloadComplete(&bsOut); + rakPeer->Send(&bsOut,sendParameters.priority,RELIABLE_ORDERED,sendParameters.orderingChannel,systemAddress,false,sendParameters.sendReceipt); + } + + isFirstConstruction=false; + +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Connection_RM3::SendValidation(RakNet::RakPeerInterface *rakPeer, unsigned char worldId) +{ + // Hijack to mean sendValidation + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_REPLICA_MANAGER_SCOPE_CHANGE); + bsOut.Write(worldId); + rakPeer->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,systemAddress,false); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3::Replica3() +{ + creatingSystemGUID=UNASSIGNED_RAKNET_GUID; + deletingSystemGUID=UNASSIGNED_RAKNET_GUID; + replicaManager=0; + forceSendUntilNextUpdate=false; + whenLastSerialized=0; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Replica3::~Replica3() +{ + if (replicaManager) + { + replicaManager->Dereference(this); + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +void Replica3::BroadcastDestruction(void) +{ + replicaManager->BroadcastDestruction(this,UNASSIGNED_SYSTEM_ADDRESS); +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RakNetGUID Replica3::GetCreatingSystemGUID(void) const +{ + return creatingSystemGUID; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ConstructionState Replica3::QueryConstruction_ClientConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + (void) destinationConnection; + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3CS_SEND_CONSTRUCTION; + // Send back to the owner client too, because they couldn't assign the network ID + if (isThisTheServer) + return RM3CS_SEND_CONSTRUCTION; + return RM3CS_NEVER_CONSTRUCT; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Replica3::QueryRemoteConstruction_ClientConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer) +{ + (void) sourceConnection; + (void) isThisTheServer; + + // OK to create + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ConstructionState Replica3::QueryConstruction_ServerConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + (void) destinationConnection; + + if (isThisTheServer) + return RM3CS_SEND_CONSTRUCTION; + return RM3CS_NEVER_CONSTRUCT; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Replica3::QueryRemoteConstruction_ServerConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer) +{ + (void) sourceConnection; + if (isThisTheServer) + return false; + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ConstructionState Replica3::QueryConstruction_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode) +{ + (void) destinationConnection; + + if (p2pMode==R3P2PM_SINGLE_OWNER) + { + // We send to all, others do nothing + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3CS_SEND_CONSTRUCTION; + + // RM3CS_NEVER_CONSTRUCT will not send the object, and will not Serialize() it + return RM3CS_NEVER_CONSTRUCT; + } + else if (p2pMode==R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE) + { + return RM3CS_SEND_CONSTRUCTION; + } + else + { + RakAssert(p2pMode==R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE); + + // RM3CS_ALREADY_EXISTS_REMOTELY will not send the object, but WILL call QuerySerialization() and Serialize() on it. + return RM3CS_ALREADY_EXISTS_REMOTELY; + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +bool Replica3::QueryRemoteConstruction_PeerToPeer(RakNet::Connection_RM3 *sourceConnection) +{ + (void) sourceConnection; + + return true; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3QuerySerializationResult Replica3::QuerySerialization_ClientSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + // Owner client sends to all + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3QSR_CALL_SERIALIZE; + // Server sends to all but owner client + if (isThisTheServer && destinationConnection->GetRakNetGUID()!=creatingSystemGUID) + return RM3QSR_CALL_SERIALIZE; + // Remote clients do not send + return RM3QSR_NEVER_CALL_SERIALIZE; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3QuerySerializationResult Replica3::QuerySerialization_ServerSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer) +{ + (void) destinationConnection; + // Server sends to all + if (isThisTheServer) + return RM3QSR_CALL_SERIALIZE; + + // Clients do not send + return RM3QSR_NEVER_CALL_SERIALIZE; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3QuerySerializationResult Replica3::QuerySerialization_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode) +{ + (void) destinationConnection; + + if (p2pMode==R3P2PM_SINGLE_OWNER) + { + // Owner peer sends to all + if (creatingSystemGUID==replicaManager->GetRakPeerInterface()->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS)) + return RM3QSR_CALL_SERIALIZE; + + // Remote peers do not send + return RM3QSR_NEVER_CALL_SERIALIZE; + } + else if (p2pMode==R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE) + { + return RM3QSR_CALL_SERIALIZE; + } + else + { + RakAssert(p2pMode==R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE); + return RM3QSR_DO_NOT_CALL_SERIALIZE; + } +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ActionOnPopConnection Replica3::QueryActionOnPopConnection_Client(RakNet::Connection_RM3 *droppedConnection) const +{ + (void) droppedConnection; + return RM3AOPC_DELETE_REPLICA; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ActionOnPopConnection Replica3::QueryActionOnPopConnection_Server(RakNet::Connection_RM3 *droppedConnection) const +{ + (void) droppedConnection; + return RM3AOPC_DELETE_REPLICA_AND_BROADCAST_DESTRUCTION; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +RM3ActionOnPopConnection Replica3::QueryActionOnPopConnection_PeerToPeer(RakNet::Connection_RM3 *droppedConnection) const +{ + (void) droppedConnection; + return RM3AOPC_DELETE_REPLICA; +} + +// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ReplicaManager3.h b/src/raknet/ReplicaManager3.h new file mode 100755 index 0000000..d256ad9 --- /dev/null +++ b/src/raknet/ReplicaManager3.h @@ -0,0 +1,1040 @@ +/// \file +/// \brief Contains the third iteration of the ReplicaManager class. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_ReplicaManager3==1 + +#ifndef __REPLICA_MANAGER_3 +#define __REPLICA_MANAGER_3 + +#include "RakNetTypes.h" +#include "RakNetTime.h" +#include "BitStream.h" +#include "PacketPriority.h" +#include "PluginInterface2.h" +#include "NetworkIDObject.h" +#include "DS_OrderedList.h" +#include "DS_Queue.h" + +/// \defgroup REPLICA_MANAGER_GROUP3 ReplicaManager3 +/// \brief Third implementation of object replication +/// \details +/// \ingroup REPLICA_MANAGER_GROUP + +namespace RakNet +{ +class Connection_RM3; +class Replica3; + + +/// \internal +/// \ingroup REPLICA_MANAGER_GROUP3 +struct PRO +{ + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketPriority(). + PacketPriority priority; + + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketReliability(). + PacketReliability reliability; + + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultOrderingChannel(). + char orderingChannel; + + /// Passed to RakPeerInterface::Send(). Defaults to 0. + uint32_t sendReceipt; + + bool operator==( const PRO& right ) const; + bool operator!=( const PRO& right ) const; +}; + + +/// \brief System to help automate game object construction, destruction, and serialization +/// \details ReplicaManager3 tracks your game objects and automates the networking for replicating them across the network
    +/// As objects are created, destroyed, or serialized differently, those changes are pushed out to other systems.
    +/// To use:
    +///
      +///
    1. Derive from Connection_RM3 and implement Connection_RM3::AllocReplica(). This is a factory function where given a user-supplied identifier for a class (such as name) return an instance of that class. Should be able to return any networked object in your game. +///
    2. Derive from ReplicaManager3 and implement AllocConnection() and DeallocConnection() to return the class you created in step 1. +///
    3. Derive your networked game objects from Replica3. All pure virtuals have to be implemented, however defaults are provided for Replica3::QueryConstruction(), Replica3::QueryRemoteConstruction(), and Replica3::QuerySerialization() depending on your network architecture. +///
    4. When a new game object is created on the local system, pass it to ReplicaManager3::Reference(). +///
    5. When a game object is destroyed on the local system, and you want other systems to know about it, call Replica3::BroadcastDestruction() +///
    +///
    +/// At this point, all new connections will automatically download, get construction messages, get destruction messages, and update serialization automatically. +/// \ingroup REPLICA_MANAGER_GROUP3 +class RAK_DLL_EXPORT ReplicaManager3 : public PluginInterface2 +{ +public: + ReplicaManager3(); + virtual ~ReplicaManager3(); + + /// \brief Implement to return a game specific derivation of Connection_RM3 + /// \details The connection object represents a remote system connected to you that is using the ReplicaManager3 system.
    + /// It has functions to perform operations per-connection.
    + /// AllocConnection() and DeallocConnection() are factory functions to create and destroy instances of the connection object.
    + /// It is used if autoCreate is true via SetAutoManageConnections() (true by default). Otherwise, the function is not called, and you will have to call PushConnection() manually
    + /// \note If you do not want a new network connection to immediately download game objects, SetAutoManageConnections() and PushConnection() are how you do this. + /// \sa SetAutoManageConnections() + /// \param[in] systemAddress Address of the system you are adding + /// \param[in] rakNetGUID GUID of the system you are adding. See Packet::rakNetGUID or RakPeerInterface::GetGUIDFromSystemAddress() + /// \return The new connection instance. + virtual Connection_RM3* AllocConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID) const=0; + + /// \brief Implement to destroy a class instanced returned by AllocConnection() + /// \details Most likely just implement as {delete connection;}
    + /// It is used if autoDestroy is true via SetAutoManageConnections() (true by default). Otherwise, the function is not called and you would then be responsible for deleting your own connection objects. + /// \param[in] connection The pointer instance to delete + virtual void DeallocConnection(Connection_RM3 *connection) const=0; + + /// \brief Enable or disable automatically assigning connections to new instances of Connection_RM3 + /// \details ReplicaManager3 can automatically create and/or destroy Connection_RM3 as systems connect or disconnect from RakPeerInterface.
    + /// By default this is on, to make the system easier to learn and setup.
    + /// If you don't want all connections to take part in the game, or you want to delay when a connection downloads the game, set \a autoCreate to false.
    + /// If you want to delay deleting a connection that has dropped, set \a autoDestroy to false. If you do this, then you must call PopConnection() to remove that connection from being internally tracked. You'll also have to delete the connection instance on your own.
    + /// \param[in] autoCreate Automatically call ReplicaManager3::AllocConnection() for each new connection. Defaults to true. + /// \param[in] autoDestroy Automatically call ReplicaManager3::DeallocConnection() for each dropped connection. Defaults to true. + void SetAutoManageConnections(bool autoCreate, bool autoDestroy); + + /// \brief Track a new Connection_RM3 instance + /// \details If \a autoCreate is false for SetAutoManageConnections(), then you need this function to add new instances of Connection_RM3 yourself.
    + /// You don't need to track this pointer yourself, you can get it with GetConnectionAtIndex(), GetConnectionByGUID(), or GetConnectionBySystemAddress().
    + /// \param[in] newConnection The new connection instance to track. + bool PushConnection(RakNet::Connection_RM3 *newConnection); + + /// \brief Stop tracking a connection + /// \details On call, for each replica returned by GetReplicasCreatedByGuid(), QueryActionOnPopConnection() will be called. Depending on the return value, this may delete the corresponding replica.
    + /// If autoDestroy is true in the call to SetAutoManageConnections() (true by default) then this is called automatically when the connection is lost. In that case, the returned connection instance is deleted.
    + /// \param[in] guid of the connection to get. Passed to ReplicaManager3::AllocConnection() originally. + RakNet::Connection_RM3 * PopConnection(RakNetGUID guid); + + /// \brief Adds a replicated object to the system. + /// \details Anytime you create a new object that derives from Replica3, and you want ReplicaManager3 to use it, pass it to Reference().
    + /// Remote systems already connected will potentially download this object the next time ReplicaManager3::Update() is called, which happens every time you call RakPeerInterface::Receive().
    + /// You can also call ReplicaManager3::Update() manually to send referenced objects right away + /// \param[in] replica3 The object to start tracking + void Reference(RakNet::Replica3 *replica3); + + /// \brief Removes a replicated object from the system. + /// \details The object is not deallocated, it is up to the caller to do so.
    + /// This is called automatically from the destructor of Replica3, so you don't need to call it manually unless you want to stop tracking an object before it is destroyed. + /// \param[in] replica3 The object to stop tracking + void Dereference(RakNet::Replica3 *replica3); + + /// \brief Removes multiple replicated objects from the system. + /// \details Same as Dereference(), but for a list of objects.
    + /// Useful with the lists returned by GetReplicasCreatedByGuid(), GetReplicasCreatedByMe(), or GetReferencedReplicaList().
    + /// \param[in] replicaListIn List of objects + void DereferenceList(DataStructures::List &replicaListIn); + + /// \brief Returns all objects originally created by a particular system + /// \details Originally created is defined as the value of Replica3::creatingSystemGUID, which is automatically assigned in ReplicaManager3::Reference().
    + /// You do not have to be directly connected to that system to get the objects originally created by that system.
    + /// \param[in] guid GUID of the system we are referring to. Originally passed as the \a guid parameter to ReplicaManager3::AllocConnection() + /// \param[out] List of Replica3 instances to be returned + void GetReplicasCreatedByGuid(RakNetGUID guid, DataStructures::List &replicaListOut); + + /// \brief Returns all objects originally created by your system + /// \details Calls GetReplicasCreatedByGuid() for your own system guid. + /// \param[out] List of Replica3 instances to be returned + void GetReplicasCreatedByMe(DataStructures::List &replicaListOut); + + /// \brief Returns the entire list of Replicas that we know about. + /// \details This is all Replica3 instances passed to Reference, as well as instances we downloaded and created via Connection_RM3::AllocReference() + /// \param[out] List of Replica3 instances to be returned + void GetReferencedReplicaList(DataStructures::List &replicaListOut); + + /// \brief Returns the number of replicas known about + /// \details Returns the size of the list that would be returned by GetReferencedReplicaList() + /// \return How many replica objects are in the list of replica objects + unsigned GetReplicaCount(void) const; + + /// \brief Returns a replica by index + /// \details Returns one of the items in the list that would be returned by GetReferencedReplicaList() + /// \param[in] index An index, from 0 to GetReplicaCount()-1. + /// \return A Replica3 instance + Replica3 *GetReplicaAtIndex(unsigned index); + + /// \brief Returns the number of connections + /// \details Returns the number of connections added with ReplicaManager3::PushConnection(), minus the number removed with ReplicaManager3::PopConnection() + /// \return The number of registered connections + unsigned int GetConnectionCount(void) const; + + /// \brief Returns a connection pointer previously added with PushConnection() + /// \param[in] index An index, from 0 to GetConnectionCount()-1. + /// \return A Connection_RM3 pointer + Connection_RM3* GetConnectionAtIndex(unsigned index) const; + + /// \brief Returns a connection pointer previously added with PushConnection() + /// \param[in] sa The system address of the connection to return + /// \return A Connection_RM3 pointer, or 0 if not found + Connection_RM3* GetConnectionBySystemAddress(const SystemAddress &sa) const; + + /// \brief Returns a connection pointer previously added with PushConnection.() + /// \param[in] guid The guid of the connection to return + /// \return A Connection_RM3 pointer, or 0 if not found + Connection_RM3* GetConnectionByGUID(RakNetGUID guid) const; + + /// \param[in] Default ordering channel to use for object creation, destruction, and serializations + void SetDefaultOrderingChannel(char def); + + /// \param[in] Default packet priority to use for object creation, destruction, and serializations + void SetDefaultPacketPriority(PacketPriority def); + + /// \param[in] Default packet reliability to use for object creation, destruction, and serializations + void SetDefaultPacketReliability(PacketReliability def); + + /// \details Every \a intervalMS milliseconds, Connection_RM3::OnAutoserializeInterval() will be called.
    + /// Defaults to 30.
    + /// Pass with <0 to disable. Pass 0 to Serialize() every time RakPeer::Recieve() is called
    + /// If you want to control the update interval with more granularity, use the return values from Replica3::Serialize().
    + /// \param[in] intervalMS How frequently to autoserialize all objects. This controls the maximum number of game object updates per second. + void SetAutoSerializeInterval(RakNet::Time intervalMS); + + /// \brief Return the connections that we think have an instance of the specified Replica3 instance + /// \details This can be wrong, for example if that system locally deleted the outside the scope of ReplicaManager3, if QueryRemoteConstruction() returned false, or if DeserializeConstruction() returned false. + /// \param[in] replica The replica to check against. + /// \param[out] connectionsThatHaveConstructedThisReplica Populated with connection instances that we believe have \a replica allocated + void GetConnectionsThatHaveReplicaConstructed(Replica3 *replica, DataStructures::List &connectionsThatHaveConstructedThisReplica); + + /// \brief Defines the unique instance of ReplicaManager3 if multiple instances are on the same instance of RakPeerInterface + /// \details ReplicaManager3 supports multiple instances of itself attached to the same instance of rakPeer, in case your game has multiple worlds.
    + /// Call SetWorldID with a different number for each instance.
    + /// The default worldID is 0.
    + /// To use multiple worlds, you will also need to call ReplicaManager3::SetNetworkIDManager() to have a different NetworkIDManager instance per world + void SetWorldID(unsigned char id); + + /// \return Whatever was passed to SetWorldID(), or 0 if it was never called. + unsigned char GetWorldID(void) const; + + /// \details Sets the networkIDManager instance that this plugin relys upon.
    + /// Uses whatever instance is attached to RakPeerInterface if unset.
    + /// To support multiple worlds, you should set it to a different manager for each instance of the plugin + /// \param[in] _networkIDManager The externally allocated NetworkIDManager instance for this plugin to use. + void SetNetworkIDManager(NetworkIDManager *_networkIDManager); + + /// Returns what was passed to SetNetworkIDManager(), or the instance on RakPeerInterface if unset. + NetworkIDManager *GetNetworkIDManager(void) const; + + /// \details Send a network command to destroy one or more Replica3 instances + /// Usually you won't need this, but use Replica3::BroadcastDestruction() instead. + /// The objects are unaffected locally + /// \param[in] replicaList List of Replica3 objects to tell other systems to destroy. + /// \param[in] exclusionAddress Which system to not send to. UNASSIGNED_SYSTEM_ADDRESS to send to all. + void BroadcastDestructionList(DataStructures::List &replicaListSource, const SystemAddress &exclusionAddress); + + /// \internal + /// \details Tell other systems that have this replica to destroy this replica.
    + /// You shouldn't need to call this, as it happens in the Replica3 destructor + void BroadcastDestruction(Replica3 *replica, const SystemAddress &exclusionAddress); + + /// \internal + /// \details Frees internal lists.
    + /// Externally allocated pointers are not deallocated + void Clear(void); + + /// \internal + PRO GetDefaultSendParameters(void) const; + + /// Call interfaces, send data + virtual void Update(void); +protected: + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnNewConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, bool isIncoming); + virtual void OnRakPeerShutdown(void); + virtual void OnDetach(void); + + PluginReceiveResult OnConstruction(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset); + PluginReceiveResult OnSerialize(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, RakNet::Time timestamp, unsigned char packetDataOffset); + PluginReceiveResult OnDownloadStarted(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset); + PluginReceiveResult OnDownloadComplete(Packet *packet, unsigned char *packetData, int packetDataLength, RakNetGUID senderGuid, unsigned char packetDataOffset); + + void DeallocReplicaNoBroadcastDestruction(RakNet::Connection_RM3 *connection, RakNet::Replica3 *replica3); + RakNet::Connection_RM3 * PopConnection(unsigned int index); + Replica3* GetReplicaByNetworkID(NetworkID networkId); + unsigned int ReferenceInternal(RakNet::Replica3 *replica3); + + DataStructures::List connectionList; + DataStructures::List userReplicaList; + + PRO defaultSendParameters; + RakNet::Time autoSerializeInterval; + RakNet::Time lastAutoSerializeOccurance; + unsigned char worldId; + NetworkIDManager *networkIDManager; + bool autoCreateConnections, autoDestroyConnections; + Replica3 *currentlyDeallocatingReplica; + + friend class Connection_RM3; +}; + +static const int RM3_NUM_OUTPUT_BITSTREAM_CHANNELS=16; + +/// \ingroup REPLICA_MANAGER_GROUP3 +struct LastSerializationResultBS +{ + RakNet::BitStream bitStream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; +}; + +/// Represents the serialized data for an object the last time it was sent. Used by Connection_RM3::OnAutoserializeInterval() and Connection_RM3::SendSerializeIfChanged() +/// \ingroup REPLICA_MANAGER_GROUP3 +struct LastSerializationResult +{ + LastSerializationResult(); + ~LastSerializationResult(); + + /// The replica instance we serialized + RakNet::Replica3 *replica; + //bool neverSerialize; +// bool isConstructed; + + void AllocBS(void); + LastSerializationResultBS* lastSerializationResultBS; +}; + +/// Parameters passed to Replica3::Serialize() +/// \ingroup REPLICA_MANAGER_GROUP3 +struct SerializeParameters +{ + /// Write your output for serialization here + /// If nothing is written, the serialization will not occur + /// Write to any or all of the NUM_OUTPUT_BITSTREAM_CHANNELS channels available. Channels can hold independent data + RakNet::BitStream outputBitstream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + + /// Last bitstream we sent for this replica to this system. + /// Read, but DO NOT MODIFY + RakNet::BitStream* lastSentBitstream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + + /// Set to non-zero to transmit a timestamp with this message. + /// Defaults to 0 + /// Use RakNet::GetTime() for this + RakNet::Time messageTimestamp; + + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketPriority(). + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultPacketReliability(). + /// Passed to RakPeerInterface::Send(). Defaults to ReplicaManager3::SetDefaultOrderingChannel(). + PRO pro[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + + /// Passed to RakPeerInterface::Send(). + RakNet::Connection_RM3 *destinationConnection; + + /// For prior serializations this tick, for the same connection, how many bits have we written so far? + /// Use this to limit how many objects you send to update per-tick if desired + BitSize_t bitsWrittenSoFar; + + /// When this object was last serialized to the connection + /// 0 means never + RakNet::Time whenLastSerialized; + + /// Current time, in milliseconds. + /// curTime - whenLastSerialized is how long it has been since this object was last sent + RakNet::Time curTime; +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +struct DeserializeParameters +{ + RakNet::BitStream serializationBitstream[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + bool bitstreamWrittenTo[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS]; + RakNet::Time timeStamp; + RakNet::Connection_RM3 *sourceConnection; +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +enum SendSerializeIfChangedResult +{ + SSICR_SENT_DATA, + SSICR_DID_NOT_SEND_DATA, + SSICR_NEVER_SERIALIZE, +}; + +/// \brief Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instances have been allocated +/// \details Important function: AllocReplica() - must be overridden to create an object given an identifier for that object, which you define for all objects in your game +/// \ingroup REPLICA_MANAGER_GROUP3 +class RAK_DLL_EXPORT Connection_RM3 +{ +public: + + Connection_RM3(const SystemAddress &_systemAddress, RakNetGUID _guid); + virtual ~Connection_RM3(); + + /// \brief Class factory to create a Replica3 instance, given a user-defined identifier + /// \details Identifier is returned by Replica3::WriteAllocationID() for what type of class to create.
    + /// This is called when you download a replica from another system.
    + /// See Replica3::Dealloc for the corresponding destruction message.
    + /// Return 0 if unable to create the intended object. Note, in that case the other system will still think we have the object and will try to serialize object updates to us. Generally, you should not send objects the other system cannot create.
    + /// \sa Replica3::WriteAllocationID(). + /// Sample implementation:
    + /// {RakNet::RakString typeName; allocationIdBitstream->Read(typeName); if (typeName=="Soldier") return new Soldier; return 0;}
    + /// \param[in] allocationIdBitstream user-defined bitstream uniquely identifying a game object type + /// \param[in] replicaManager3 Instance of ReplicaManager3 that controls this connection + /// \return The new replica instance + virtual Replica3 *AllocReplica(RakNet::BitStream *allocationIdBitstream, ReplicaManager3 *replicaManager3)=0; + + /// \brief Get list of all replicas that are constructed for this connection + /// \param[out] objectsTheyDoHave Destination list. Returned in sorted ascending order, sorted on the value of the Replica3 pointer. + virtual void GetConstructedReplicas(DataStructures::List &objectsTheyDoHave); + + /// Returns true if we think this remote connection has this replica constructed + /// \param[in] replica3 Which replica we are querying + /// \return True if constructed, false othewise + bool HasReplicaConstructed(RakNet::Replica3 *replica); + + /// When a new connection connects, before sending any objects, SerializeOnDownloadStarted() is called + /// \param[out] bitStream Passed to DeserializeOnDownloadStarted() + virtual void SerializeOnDownloadStarted(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// Receives whatever was written in SerializeOnDownloadStarted() + /// \param[in] bitStream Written in SerializeOnDownloadStarted() + virtual void DeserializeOnDownloadStarted(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// When a new connection connects, after constructing and serialization all objects, SerializeOnDownloadComplete() is called + /// \param[out] bitStream Passed to DeserializeOnDownloadComplete() + virtual void SerializeOnDownloadComplete(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// Receives whatever was written in DeserializeOnDownloadComplete() + /// \param[in] bitStream Written in SerializeOnDownloadComplete() + virtual void DeserializeOnDownloadComplete(RakNet::BitStream *bitStream) {(void) bitStream;} + + /// \return The system address passed to the constructor of this object + SystemAddress GetSystemAddress(void) const {return systemAddress;} + + /// \return Returns the RakNetGUID passed to the constructor of this object + RakNetGUID GetRakNetGUID(void) const {return guid;} + + /// List of enumerations for how to get the list of valid objects for other systems + enum ConstructionMode + { + /// For every object that does not exist on the remote system, call Replica3::QueryConstruction() every tick. + /// Do not call Replica3::QueryDestruction() + /// Do not call Connection_RM3::QueryReplicaList() + QUERY_REPLICA_FOR_CONSTRUCTION, + + /// For every object that does not exist on the remote system, call Replica3::QueryConstruction() every tick. Based on the call, the object may be sent to the other system. + /// For every object that does exist on the remote system, call Replica3::QueryDestruction() every tick. Based on the call, the object may be deleted on the other system. + /// Do not call Connection_RM3::QueryReplicaList() + QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION, + + /// Do not call Replica3::QueryConstruction() or Replica3::QueryDestruction() + /// Call Connection_RM3::QueryReplicaList() to determine which objects exist on remote systems + /// This can be faster than QUERY_REPLICA_FOR_CONSTRUCTION and QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION for large worlds + /// See GridSectorizer.h under /Source for code that can help with this + QUERY_CONNECTION_FOR_REPLICA_LIST + }; + + /// \brief Return whether or not downloads to our system should all be processed the same tick (call to RakPeer::Receive() ) + /// \details Normally the system will send ID_REPLICA_MANAGER_DOWNLOAD_STARTED, ID_REPLICA_MANAGER_CONSTRUCTION for all downloaded objects, + /// ID_REPLICA_MANAGER_SERIALIZE for each downloaded object, and lastly ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE. + /// This enables the application to show a downloading splash screen on ID_REPLICA_MANAGER_DOWNLOAD_STARTED, a progress bar, and to close the splash screen and activate all objects on ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE + /// However, if the application was not set up for this then it would result in incomplete objects spread out over time, and cause problems + /// If you return true from QueryGroupDownloadMessages(), then these messages will be returned all in one tick, returned only when the download is complete + /// \note ID_REPLICA_MANAGER_DOWNLOAD_STARTED calls the callback DeserializeOnDownloadStarted() + /// \note ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE calls the callback DeserializeOnDownloadComplete() + virtual bool QueryGroupDownloadMessages(void) const {return false;} + + /// \brief Queries how to get the list of objects that exist on remote systems + /// \details The default of calling QueryConstruction for every known object is easy to use, but not efficient, especially for large worlds where many objects are outside of the player's circle of influence.
    + /// QueryDestruction is also not necessarily useful or efficient, as object destruction tends to happen in known cases, and can be accomplished by calling Replica3::BroadcastDestruction() + /// QueryConstructionMode() allows you to specify more efficient algorithms than the default when overriden. + /// \return How to get the list of objects that exist on the remote system. You should always return the same value for a given connection + virtual ConstructionMode QueryConstructionMode(void) const {return QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION;} + + /// \brief Callback used when QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST + /// \details This advantage of this callback is if that there are many objects that a particular connection does not have, then we do not have to iterate through those + /// objects calling QueryConstruction() for each of them.
    + ///
    + /// The following code uses a sorted merge sort to quickly find new and deleted objects, given a list of objects we know should exist.
    + ///
    + /// DataStructures::List objectsTheyShouldHave; // You have to fill in this list
    + /// DataStructures::List objectsTheyCurrentlyHave,objectsTheyStillHave,existingReplicasToDestro,newReplicasToCreatey;
    + /// GetConstructedReplicas(objectsTheyCurrentlyHave);
    + /// DataStructures::Multilist::FindIntersection(objectsTheyCurrentlyHave, objectsTheyShouldHave, objectsTheyStillHave, existingReplicasToDestroy, newReplicasToCreate);
    + ///
    + /// See GridSectorizer in the Source directory as a method to find all objects within a certain radius in a fast way.
    + ///
    + /// \param[out] newReplicasToCreate Anything in this list will be created on the remote system + /// \param[out] existingReplicasToDestroy Anything in this list will be destroyed on the remote system + virtual void QueryReplicaList( + DataStructures::List newReplicasToCreate, + DataStructures::List existingReplicasToDestroy) {} + + /// \internal This is used internally - however, you can also call it manually to send a data update for a remote replica.
    + /// \brief Sends over a serialization update for \a replica.
    + /// NetworkID::GetNetworkID() is written automatically, serializationData is the object data.
    + /// \param[in] replica Which replica to serialize + /// \param[in] serializationData Serialized object data + /// \param[in] timestamp 0 means no timestamp. Otherwise message is prepended with ID_TIMESTAMP + /// \param[in] sendParameters Parameters on how to send + /// \param[in] rakPeer Instance of RakPeerInterface to send on + /// \param[in] worldId Which world, see ReplicaManager3::SetWorldID() + virtual SendSerializeIfChangedResult SendSerialize(RakNet::Replica3 *replica, bool indicesToSend[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::BitStream serializationData[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::Time timestamp, PRO sendParameters[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::RakPeerInterface *rakPeer, unsigned char worldId); + + /// \internal + /// \details Calls Connection_RM3::SendSerialize() if Replica3::Serialize() returns a different result than what is contained in \a lastSerializationResult.
    + /// Used by autoserialization in Connection_RM3::OnAutoserializeInterval() + /// \param[in] queryToSerializeIndex Index into queryToSerializeReplicaList for whichever replica this is + /// \param[in] sp Controlling parameters over the serialization + /// \param[in] rakPeer Instance of RakPeerInterface to send on + /// \param[in] worldId Which world, see ReplicaManager3::SetWorldID() + virtual SendSerializeIfChangedResult SendSerializeIfChanged(unsigned int queryToSerializeIndex, SerializeParameters *sp, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager); + + /// \internal + /// \brief Given a list of objects that were created and destroyed, serialize and send them to another system. + /// \param[in] newObjects Objects to serialize construction + /// \param[in] deletedObjects Objects to serialize destruction + /// \param[in] sendParameters Controlling parameters over the serialization + /// \param[in] rakPeer Instance of RakPeerInterface to send on + /// \param[in] worldId Which world, see ReplicaManager3::SetWorldID() + /// \param[in] replicaManager3 ReplicaManager3 instance + virtual void SendConstruction(DataStructures::List &newObjects, DataStructures::List &deletedObjects, PRO sendParameters, RakNet::RakPeerInterface *rakPeer, unsigned char worldId, ReplicaManager3 *replicaManager3); + + /// \internal + /// Remove from \a newObjectsIn objects that already exist and save to \a newObjectsOut + /// Remove from \a deletedObjectsIn objects that do not exist, and save to \a deletedObjectsOut + void CullUniqueNewAndDeletedObjects(DataStructures::List &newObjectsIn, + DataStructures::List &deletedObjectsIn, + DataStructures::List &newObjectsOut, + DataStructures::List &deletedObjectsOut); + + /// \internal + void SendValidation(RakNet::RakPeerInterface *rakPeer, unsigned char worldId); + + /// \internal + void AutoConstructByQuery(ReplicaManager3 *replicaManager3); + + + // Internal - does the other system have this connection too? Validated means we can now use it + bool isValidated; + // Internal - Used to see if we should send download started + bool isFirstConstruction; + + static int Replica3LSRComp( Replica3 * const &replica3, LastSerializationResult * const &data ); + +protected: + + SystemAddress systemAddress; + RakNetGUID guid; + + /* + Operations: + + Locally reference a new replica: + Add to queryToConstructReplicaList for all objects + + Add all objects to queryToConstructReplicaList + + Download: + Add to constructedReplicaList for connection that send the object to us + Add to queryToSerializeReplicaList for connection that send the object to us + Add to queryToConstructReplicaList for all other connections + + Never construct for this connection: + Remove from queryToConstructReplicaList + + Construct to this connection + Remove from queryToConstructReplicaList + Add to constructedReplicaList for this connection + Add to queryToSerializeReplicaList for this connection + + Serialize: + Iterate through queryToSerializeReplicaList + + Never serialize for this connection + Remove from queryToSerializeReplicaList + + Reference (this system has this object already) + Remove from queryToConstructReplicaList + Add to constructedReplicaList for this connection + Add to queryToSerializeReplicaList for this connection + + Downloaded an existing object + if replica is in queryToConstructReplicaList, OnConstructToThisConnection() + else ignore + + Send destruction from query + Remove from queryToDestructReplicaList + Remove from queryToSerializeReplicaList + Remove from constructedReplicaList + Add to queryToConstructReplicaList + + Do not query destruction again + Remove from queryToDestructReplicaList + */ + void OnLocalReference(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnDereference(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnDownloadFromThisSystem(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnDownloadFromOtherSystem(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnNeverConstruct(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager); + void OnConstructToThisConnection(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager); + void OnConstructToThisConnection(Replica3 *replica, ReplicaManager3 *replicaManager); + void OnNeverSerialize(unsigned int queryToSerializeIndex, ReplicaManager3 *replicaManager); + void OnReplicaAlreadyExists(unsigned int queryToConstructIdx, ReplicaManager3 *replicaManager); + void OnDownloadExisting(Replica3* replica3, ReplicaManager3 *replicaManager); + void OnSendDestructionFromQuery(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager); + void OnDoNotQueryDestruction(unsigned int queryToDestructIdx, ReplicaManager3 *replicaManager); + void ValidateLists(ReplicaManager3 *replicaManager) const; + void SendSerializeHeader(RakNet::Replica3 *replica, RakNet::Time timestamp, RakNet::BitStream *bs, unsigned char worldId); + + // The list of objects that our local system and this remote system both have + // Either we sent this object to them, or they sent this object to us + // A given Replica can be either in queryToConstructReplicaList or constructedReplicaList but not both at the same time + DataStructures::OrderedList constructedReplicaList; + + // Objects that we have, but this system does not, and we will query each tick to see if it should be sent to them + // If we do send it to them, the replica is moved to constructedReplicaList + // A given Replica can be either in queryToConstructReplicaList or constructedReplicaList but not both at the same time + DataStructures::List queryToConstructReplicaList; + + // Objects that this system has constructed are added at the same time to queryToSerializeReplicaList + // This list is used to serialize all objects that this system has to this connection + DataStructures::List queryToSerializeReplicaList; + + // Objects that are constructed on this system are also queried if they should be destroyed to this system + DataStructures::List queryToDestructReplicaList; + + // Working lists + DataStructures::List constructedReplicasCulled, destroyedReplicasCulled; + + // This is used if QueryGroupDownloadMessages() returns true when ID_REPLICA_MANAGER_DOWNLOAD_STARTED arrives + // Packets will be gathered and not returned until ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE arrives + bool groupConstructionAndSerialize; + DataStructures::Queue downloadGroup; + void ClearDownloadGroup(RakPeerInterface *rakPeerInterface); + + friend class ReplicaManager3; +private: + Connection_RM3() {}; + + ConstructionMode constructionMode; +}; + +/// \brief Return codes for Connection_RM3::GetConstructionState() and Replica3::QueryConstruction() +/// \details Indicates what state the object should be in for the remote system +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3ConstructionState +{ + /// This object should exist on the remote system. Send a construction message if necessary + /// If the NetworkID is already in use, it will not do anything + /// If it is not in use, it will create the object, and then call DeserializeConstruction + RM3CS_SEND_CONSTRUCTION, + + /// This object should exist on the remote system. + /// The other system already has the object, and the object will never be deleted. + /// This is true of objects that are loaded with the level, for example. + /// Treat it as if it existed, without sending a construction message. + /// Will call Serialize() and SerializeConstructionExisting() to the object on the remote system + RM3CS_ALREADY_EXISTS_REMOTELY, + + /// Same as RM3CS_ALREADY_EXISTS_REMOTELY but does not call SerializeConstructionExisting() + RM3CS_ALREADY_EXISTS_REMOTELY_DO_NOT_CONSTRUCT, + + /// This object will never be sent to the target system + /// This object will never be serialized from this system to the target system + RM3CS_NEVER_CONSTRUCT, + + /// Don't do anything this tick. Will query again next tick + RM3CS_NO_ACTION, + + /// Max enum + RM3CS_MAX, +}; + +/// If this object already exists for this system, should it be removed? +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3DestructionState +{ + /// This object should not exist on the remote system. Send a destruction message if necessary. + RM3DS_SEND_DESTRUCTION, + + /// This object will never be destroyed by a per-tick query. Don't call again + RM3DS_DO_NOT_QUERY_DESTRUCTION, + + /// Don't do anything this tick. Will query again next tick + RM3DS_NO_ACTION, + + /// Max enum + RM3DS_MAX, +}; + +/// Return codes when constructing an object +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3SerializationResult +{ + /// This object serializes identically no matter who we send to + /// We also send it to every connection (broadcast). + /// Efficient for memory, speed, and bandwidth but only if the object is always broadcast identically. + RM3SR_BROADCAST_IDENTICALLY, + + /// Same as RM3SR_BROADCAST_IDENTICALLY, but assume the object needs to be serialized, do not check with a memcmp + /// Assume the object changed, and serialize it + /// Use this if you know exactly when your object needs to change. Can be faster than RM3SR_BROADCAST_IDENTICALLY. + /// An example of this is if every member variable has an accessor, changing a member sets a flag, and you check that flag in Replica3::QuerySerialization() + /// The opposite of this is RM3SR_DO_NOT_SERIALIZE, in case the object did not change + RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION, + + /// Either this object serializes differently depending on who we send to or we send it to some systems and not others. + /// Inefficient for memory and speed, but efficient for bandwidth + /// However, if you don't know what to return, return this + RM3SR_SERIALIZED_UNIQUELY, + + /// Do not compare against last sent value. Just send even if the data is the same as the last tick + /// If the data is always changing anyway, or you want to send unreliably, this is a good method of serialization + /// Can send unique data per connection if desired. If same data is sent to all connections, use RM3SR_SERIALIZED_ALWAYS_IDENTICALLY for even better performance + /// Efficient for memory and speed, but not necessarily bandwidth + RM3SR_SERIALIZED_ALWAYS, + + /// Even faster than RM3SR_SERIALIZED_ALWAYS + /// Serialize() will only be called for the first system. The remaining systems will get the same data as the first system. + RM3SR_SERIALIZED_ALWAYS_IDENTICALLY, + + /// Do not serialize this object this tick, for this connection. Will query again next autoserialize timer + RM3SR_DO_NOT_SERIALIZE, + + /// Never serialize this object for this connection + /// Useful for objects that are downloaded, and never change again + /// Efficient + RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION, + + /// Max enum + RM3SR_MAX, +}; + +/// First pass at topology to see if an object should be serialized +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3QuerySerializationResult +{ + /// Call Serialize() to see if this object should be serializable for this connection + RM3QSR_CALL_SERIALIZE, + /// Do not call Serialize() this tick to see if this object should be serializable for this connection + RM3QSR_DO_NOT_CALL_SERIALIZE, + /// Never call Serialize() for this object and connection. This system will not serialize this object for this topology + RM3QSR_NEVER_CALL_SERIALIZE, + /// Max enum + RM3QSR_MAX, +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +enum RM3ActionOnPopConnection +{ + RM3AOPC_DO_NOTHING, + RM3AOPC_DELETE_REPLICA, + RM3AOPC_DELETE_REPLICA_AND_BROADCAST_DESTRUCTION, + RM3AOPC_MAX, +}; + +/// \ingroup REPLICA_MANAGER_GROUP3 +/// Used for Replica3::QueryConstruction_PeerToPeer() and Replica3::QuerySerialization_PeerToPeer() to describe how the object replicates between hosts +enum Replica3P2PMode +{ + /// The Replica3 instance is constructed and serialized by one system only. + /// Example: Your avatar. No other player serializes or can create your avatar. + R3P2PM_SINGLE_OWNER, + /// The Replica3 instance is constructed and/or serialized by different systems + /// This system is currently in charge of construction and/or serialization + /// Example: A pickup. When an avatar holds it, that avatar controls it. When it is on the ground, the host controls it. + R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE, + /// The Replica3 instance is constructed and/or serialized by different systems + /// Another system is in charge of construction and/or serialization, but this system may be in charge at a later time + /// Example: A pickup held by another player. That player sends creation of that object to new connections, and serializes it until it is dropped. + R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE, +}; + +/// \brief Base class for your replicated objects for the ReplicaManager3 system. +/// \details To use, derive your class, or a member of your class, from Replica3.
    +/// \ingroup REPLICA_MANAGER_GROUP3 +class RAK_DLL_EXPORT Replica3 : public NetworkIDObject +{ +public: + Replica3(); + + /// Before deleting a local instance of Replica3, call Replica3::BroadcastDestruction() for the deletion notification to go out on the network. + /// It is not necessary to call ReplicaManager3::Dereference(), as this happens automatically in the destructor + virtual ~Replica3(); + + /// \brief Write a unique identifer that can be read on a remote system to create an object of this same class. + /// \details The value written to \a allocationIdBitstream will be passed to Connection_RM3::AllocReplica().
    + /// Sample implementation:
    + /// {allocationIdBitstream->Write(RakNet::RakString("Soldier");}
    + /// \param[out] allocationIdBitstream Bitstream for the user to write to, to identify this class + virtual void WriteAllocationID(RakNet::Connection_RM3 *destinationConnection, RakNet::BitStream *allocationIdBitstream) const=0; + + /// \brief Ask if this object, which does not exist on \a destinationConnection should (now) be sent to that system. + /// \details If ReplicaManager3::QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST or QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION (default), + /// then QueyrConstruction() is called once per tick from ReplicaManager3::Update() to determine if an object should exist on a given system.
    + /// Based on the return value, a network message may be sent to the other system to create the object.
    + /// If QueryConstructionMode() is overriden to return QUERY_CONNECTION_FOR_REPLICA_LIST, this function is unused.
    + /// \note Defaults are provided: QueryConstruction_PeerToPeer(), QueryConstruction_ServerConstruction(), QueryConstruction_ClientConstruction(). Return one of these functions for a working default for the relevant topology. + /// \param[in] destinationConnection Which system we will send to + /// \param[in] replicaManager3 Plugin instance for this Replica3 + /// \return What action to take + virtual RM3ConstructionState QueryConstruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3)=0; + + /// \brief Ask if this object, which does exist on \a destinationConnection should be removed from the remote system + /// \details If ReplicaManager3::QueryConstructionMode() returns QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION (default), + /// then QueryDestruction() is called once per tick from ReplicaManager3::Update() to determine if an object that exists on a remote system should be destroyed for a given system.
    + /// Based on the return value, a network message may be sent to the other system to destroy the object.
    + /// Note that you can also destroy objects with BroadcastDestruction(), so this function is not useful unless you plan to delete objects for only a particular connection.
    + /// If QueryConstructionMode() is overriden to return QUERY_CONNECTION_FOR_REPLICA_LIST, this function is unused.
    + /// \param[in] destinationConnection Which system we will send to + /// \param[in] replicaManager3 Plugin instance for this Replica3 + /// \return What action to take. Only RM3CS_SEND_DESTRUCTION does anything at this time. + virtual RM3DestructionState QueryDestruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3) {(void) destinationConnection; (void) replicaManager3; return RM3DS_DO_NOT_QUERY_DESTRUCTION;} + + /// \brief We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns false, this object is deleted instead. + /// \details By default, QueryRemoteConstruction_ServerConstruction() does not allow clients to create objects. The client will get Replica3::DeserializeConstructionRequestRejected().
    + /// If you want the client to be able to potentially create objects for client/server, override accordingly.
    + /// Other variants of QueryRemoteConstruction_* just return true. + /// \note Defaults are provided: QueryRemoteConstruction_PeerToPeer(), QueryRemoteConstruction_ServerConstruction(), QueryRemoteConstruction_ClientConstruction(). Return one of these functions for a working default for the relevant topology. + /// \param[in] sourceConnection Which system sent us the object creation request message. + /// \return True to allow the object to pass onto DeserializeConstruction() (where it may also be rejected), false to immediately reject the remote construction request + virtual bool QueryRemoteConstruction(RakNet::Connection_RM3 *sourceConnection)=0; + + /// \brief We got a message from a connection to destroy this replica + /// Return true to automatically relay the destruction message to all our other connections + /// For a client in client/server, it does not matter what this funtion returns + /// For a server in client/server, this should normally return true + /// For a peer in peer to peer, you can normally return false since the original destroying peer would have told all other peers about the destruction + /// If a system gets a destruction command for an object that was already destroyed, the destruction message is ignored + virtual bool QueryRelayDestruction(Connection_RM3 *sourceConnection) const {(void) sourceConnection; return true;} + + /// \brief Write data to be sent only when the object is constructed on a remote system. + /// \details SerializeConstruction is used to write out data that you need to create this object in the context of your game, such as health, score, name. Use it for data you only need to send when the object is created.
    + /// After SerializeConstruction() is called, Serialize() will be called immediately thereafter. However, they are sent in different messages, so Serialize() may arrive a later frame than SerializeConstruction() + /// For that reason, the object should be valid after a call to DeserializeConstruction() for at least a short time.
    + /// \note The object's NetworkID and allocation id are handled by the system automatically, you do not need to write these values to \a constructionBitstream + /// \param[out] constructionBitstream Destination bitstream to write your data to + /// \param[in] destinationConnection System that will receive this network message. + virtual void SerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection)=0; + + /// \brief Read data written by Replica3::SerializeConstruction() + /// \details Reads whatever data was written to \a constructionBitstream in Replica3::SerializeConstruction() + /// \param[out] constructionBitstream Bitstream written to in Replica3::SerializeConstruction() + /// \param[in] sourceConnection System that sent us this network message. + /// \return true to accept construction of the object. false to reject, in which case the object will be deleted via Replica3::DeallocReplica() + virtual bool DeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection)=0; + + /// Same as SerializeConstruction(), but for an object that already exists on the remote system. + /// Used if you return RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void SerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {(void) constructionBitstream; (void) destinationConnection;}; + + /// Same as DeserializeConstruction(), but for an object that already exists on the remote system. + /// Used if you return RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void DeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {(void) constructionBitstream; (void) sourceConnection;}; + + /// \brief Write extra data to send with the object deletion event, if desired + /// \details Replica3::SerializeDestruction() will be called to write any object destruction specific data you want to send with this event. + /// \a destructionBitstream can be read in DeserializeDestruction() + /// \param[out] destructionBitstream Bitstream for you to write to + /// \param[in] destinationConnection System that will receive this network message. + virtual void SerializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *destinationConnection)=0; + + /// \brief Read data written by Replica3::SerializeDestruction() + /// \details Return true to delete the object. BroadcastDestruction() will be called automatically, followed by ReplicaManager3::Dereference.
    + /// Return false to not delete it. If you delete it at a later point, you are responsible for calling BroadcastDestruction() yourself. + virtual bool DeserializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *sourceConnection)=0; + + /// \brief The system is asking what to do with this replica when the connection is dropped + /// \details Return QueryActionOnPopConnection_Client, QueryActionOnPopConnection_Server, or QueryActionOnPopConnection_PeerToPeer + virtual RakNet::RM3ActionOnPopConnection QueryActionOnPopConnection(RakNet::Connection_RM3 *droppedConnection) const=0; + + /// Notification called for each of our replicas when a connection is popped + virtual void OnPoppedConnection(RakNet::Connection_RM3 *droppedConnection) {(void) droppedConnection;} + + /// \brief Override with {delete this;} + /// \details + ///
      + ///
    1. Got a remote message to delete this object which passed DeserializeDestruction(), OR + ///
    2. ReplicaManager3::SetAutoManageConnections() was called autoDestroy true (which is the default setting), and a remote system that owns this object disconnected) OR + /// <\OL> + ///
      + /// Override with {delete this;} to actually delete the object (and any other processing you wish).
      + /// If you don't want to delete the object, just do nothing, however, the system will not know this so you are responsible for deleting it yoruself later.
      + /// destructionBitstream may be 0 if the object was deleted locally + virtual void DeallocReplica(RakNet::Connection_RM3 *sourceConnection)=0; + + /// \brief Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer() + /// \details QuerySerialization() is a first pass query to check if a given object should serializable to a given system. The intent is that the user implements with one of the defaults for client, server, or peer to peer.
      + /// Without this function, a careless implementation would serialize an object anytime it changed to all systems. This would give you feedback loops as the sender gets the same message back from the recipient it just sent to.
      + /// If more than one system can serialize the same object then you will need to override to return true, and control the serialization result from Replica3::Serialize(). Be careful not to send back the same data to the system that just sent to you! + /// \return True to allow calling Replica3::Serialize() for this connection, false to not call. + virtual RakNet::RM3QuerySerializationResult QuerySerialization(RakNet::Connection_RM3 *destinationConnection)=0; + + /// \brief Called for each replica owned by the user, once per Serialization tick, before Serialize() is called. + /// If you want to do some kind of operation on the Replica objects that you own, just before Serialization(), then overload this function + virtual void OnUserReplicaPreSerializeTick(void) {} + + /// \brief Serialize our class to a bitstream + /// \details User should implement this function to write the contents of this class to SerializationParamters::serializationBitstream.
      + /// If data only needs to be written once, you can write it to SerializeConstruction() instead for efficiency.
      + /// Transmitted over the network if it changed from the last time we called Serialize().
      + /// Called every time the time interval to ReplicaManager3::SetAutoSerializeInterval() elapses and ReplicaManager3::Update is subsequently called. + /// \param[in/out] serializeParameters Parameters controlling the serialization, including destination bitstream to write to + /// \return Whether to serialize, and if so, how to optimize the results + virtual RM3SerializationResult Serialize(RakNet::SerializeParameters *serializeParameters)=0; + + /// \brief Called when the class is actually transmitted via Serialize() + /// \details Use to track how much bandwidth this class it taking + virtual void OnSerializeTransmission(RakNet::BitStream *bitStream, const SystemAddress &systemAddress) {(void) bitStream; (void) systemAddress; } + + /// \brief Read what was written in Serialize() + /// \details Reads the contents of the class from SerializationParamters::serializationBitstream.
      + /// Called whenever Serialize() is called with different data from the last send. + /// \param[in] serializationBitstream Bitstream passed to Serialize() + /// \param[in] timeStamp 0 if unused, else contains the time the message originated on the remote system + /// \param[in] sourceConnection Which system sent to us + virtual void Deserialize(RakNet::DeserializeParameters *deserializeParameters)=0; + + /// \brief Called after SerializeConstruction completes for all objects in a given update tick.
      + /// Writes to PostDeserializeConstruction(), which is called after all objects are created for a given Construction tick(). + /// Override to send data to PostDeserializeConstruction(), such as the NetworkID of other objects to resolve pointers to + virtual void PostSerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {(void) constructionBitstream; (void) destinationConnection;} + + /// Called after DeserializeConstruction completes for all objects in a given update tick.
      + /// This is used to resolve dependency chains, where two objects would refer to each other in DeserializeConstruction, yet one had not been constructed yet + /// In PostDeserializeConstruction(), you know that all objects have already been created, so can resolve NetworkIDs to pointers safely. + /// You can also use it to trigger some sort of event when you know the object has completed deserialization. + /// \param[in] constructionBitstream BitStream written in PostSerializeConstruction() + /// \param[in] sourceConnection System that sent us this network message. + virtual void PostDeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {(void) constructionBitstream; (void) sourceConnection;} + + /// Same as PostSerializeConstruction(), but for objects that returned RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void PostSerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {(void) constructionBitstream; (void) destinationConnection;} + + /// Same as PostDeserializeConstruction(), but for objects that returned RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction + virtual void PostDeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {(void) constructionBitstream; (void) sourceConnection;} + + /// Called after DeserializeDestruction completes for the object successfully, but obviously before the object is deleted.
      + /// Override to trigger some sort of event when you know the object has completed destruction. + /// \param[in] sourceConnection System that sent us this network message. + virtual void PreDestruction(RakNet::Connection_RM3 *sourceConnection) {(void) sourceConnection;} + + /// \brief Default call for QueryConstruction(). + /// \details Both the client and the server is allowed to create this object. The network topology is client/server + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RM3ConstructionState QueryConstruction_ClientConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// Default call for QueryRemoteConstruction(). + /// \details Both the client and the server is allowed to create this object. The network topology is client/server + /// \param[in] sourceConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual bool QueryRemoteConstruction_ClientConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer); + + /// \brief Default call for QueryConstruction(). + /// \details Only the server is allowed to create this object. The network topology is client/server + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RM3ConstructionState QueryConstruction_ServerConstruction(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// \brief Default call for QueryRemoteConstruction(). Allow the server to create this object, but not the client. + /// \details Only the server is allowed to create this object. The network topology is client/server + /// \param[in] sourceConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual bool QueryRemoteConstruction_ServerConstruction(RakNet::Connection_RM3 *sourceConnection, bool isThisTheServer); + + /// \brief Default call for QueryConstruction(). + /// \details All clients are allowed to create all objects. The object is not relayed when remotely created + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] p2pMode If controlled only by this system ever, pass R3P2PM_SINGLE_OWNER. Otherwise pass R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE or R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE + virtual RM3ConstructionState QueryConstruction_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode=R3P2PM_SINGLE_OWNER); + /// \brief Default call for QueryRemoteConstruction(). + /// \details All clients are allowed to create all objects. The object is not relayed when remotely created + /// \param[in] sourceConnection destinationConnection parameter passed to QueryConstruction() + virtual bool QueryRemoteConstruction_PeerToPeer(RakNet::Connection_RM3 *sourceConnection); + + /// \brief Default call for QuerySerialization(). + /// \details Use if the values you are serializing are generated by the client that owns the object. The serialization will be relayed through the server to the other clients. + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RakNet::RM3QuerySerializationResult QuerySerialization_ClientSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// \brief Default call for QuerySerialization(). + /// \details Use if the values you are serializing are generated only by the server. The serialization will be sent to all clients, but the clients will not send back to the server. + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] isThisTheServer True if this system is the server, false if not. + virtual RakNet::RM3QuerySerializationResult QuerySerialization_ServerSerializable(RakNet::Connection_RM3 *destinationConnection, bool isThisTheServer); + /// \brief Default call for QuerySerialization(). + /// \details Use if the values you are serializing are on a peer to peer network. The peer that owns the object will send to all. Remote peers will not send. + /// \param[in] destinationConnection destinationConnection parameter passed to QueryConstruction() + /// \param[in] p2pMode If controlled only by this system ever, pass R3P2PM_SINGLE_OWNER. Otherwise pass R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE or R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE + virtual RakNet::RM3QuerySerializationResult QuerySerialization_PeerToPeer(RakNet::Connection_RM3 *destinationConnection, Replica3P2PMode p2pMode=R3P2PM_SINGLE_OWNER); + + /// Default: If we are a client, and the connection is lost, delete the server's objects + virtual RM3ActionOnPopConnection QueryActionOnPopConnection_Client(RakNet::Connection_RM3 *droppedConnection) const; + /// Default: If we are a client, and the connection is lost, delete the client's objects and broadcast the destruction + virtual RM3ActionOnPopConnection QueryActionOnPopConnection_Server(RakNet::Connection_RM3 *droppedConnection) const; + /// Default: If we are a peer, and the connection is lost, delete the peer's objects + virtual RM3ActionOnPopConnection QueryActionOnPopConnection_PeerToPeer(RakNet::Connection_RM3 *droppedConnection) const; + + /// Call to send a network message to delete this object on other systems.
      + /// Call it before deleting the object + virtual void BroadcastDestruction(void); + + /// creatingSystemGUID is set the first time Reference() is called, or if we get the object from another system + /// \return System that originally created this object + RakNetGUID GetCreatingSystemGUID(void) const; + + /// \return If ReplicaManager3::Reference() was called on this object. + bool WasReferenced(void) const {return replicaManager!=0;} + + /// GUID of the system that first called Reference() on this object. + /// Transmitted automatically when the object is constructed + RakNetGUID creatingSystemGUID; + /// GUID of the system that caused the item to send a deletion command over the network + RakNetGUID deletingSystemGUID; + + /// \internal + /// ReplicaManager3 plugin associated with this object + ReplicaManager3 *replicaManager; + + LastSerializationResultBS lastSentSerialization; + RakNet::Time whenLastSerialized; + bool forceSendUntilNextUpdate; +}; + +/// \brief Use Replica3 through composition instead of inheritance by containing an instance of this templated class +/// Calls to parent class for all functions +/// Parent class must still define and functions though! +/// \pre Parent class must call SetParent() on this object +template +class RAK_DLL_EXPORT Replica3Composite : public Replica3 +{ +protected: + parent_type *r3CompositeOwner; +public: + void SetCompositeOwner(parent_type *p) {r3CompositeOwner=p;} + parent_type* GetCompositeOwner(void) const {return r3CompositeOwner;}; + virtual void WriteAllocationID(RakNet::Connection_RM3 *destinationConnection, RakNet::BitStream *allocationIdBitstream) const {r3CompositeOwner->WriteAllocationID(destinationConnection, allocationIdBitstream);} + virtual RM3ConstructionState QueryConstruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3) {return r3CompositeOwner->QueryConstruction(destinationConnection, replicaManager3);} + virtual RM3DestructionState QueryDestruction(RakNet::Connection_RM3 *destinationConnection, ReplicaManager3 *replicaManager3) {return r3CompositeOwner->QueryDestruction(destinationConnection, replicaManager3);} + virtual bool QueryRemoteConstruction(RakNet::Connection_RM3 *sourceConnection) {return r3CompositeOwner->QueryRemoteConstruction(sourceConnection);} + virtual bool QueryRelayDestruction(Connection_RM3 *sourceConnection) const {return r3CompositeOwner->QueryRelayDestruction(sourceConnection);} + virtual void SerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->SerializeConstruction(constructionBitstream, destinationConnection);} + virtual bool DeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {return r3CompositeOwner->DeserializeConstruction(constructionBitstream, sourceConnection);} + virtual void SerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->SerializeConstructionExisting(constructionBitstream, destinationConnection);} + virtual void DeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->DeserializeConstructionExisting(constructionBitstream, sourceConnection);} + virtual void SerializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->SerializeDestruction(destructionBitstream, destinationConnection);} + virtual bool DeserializeDestruction(RakNet::BitStream *destructionBitstream, RakNet::Connection_RM3 *sourceConnection) {return r3CompositeOwner->DeserializeDestruction(destructionBitstream, sourceConnection);} + virtual RakNet::RM3ActionOnPopConnection QueryActionOnPopConnection(RakNet::Connection_RM3 *droppedConnection) const {return r3CompositeOwner->QueryActionOnPopConnection(droppedConnection);} + virtual void OnPoppedConnection(RakNet::Connection_RM3 *droppedConnection) {r3CompositeOwner->OnPoppedConnection(droppedConnection);} + virtual void DeallocReplica(RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->DeallocReplica(sourceConnection);} + virtual RakNet::RM3QuerySerializationResult QuerySerialization(RakNet::Connection_RM3 *destinationConnection) {return r3CompositeOwner->QuerySerialization(destinationConnection);} + virtual void OnUserReplicaPreSerializeTick(void) {r3CompositeOwner->OnUserReplicaPreSerializeTick();} + virtual RM3SerializationResult Serialize(RakNet::SerializeParameters *serializeParameters) {return r3CompositeOwner->Serialize(serializeParameters);} + virtual void OnSerializeTransmission(RakNet::BitStream *bitStream, const SystemAddress &systemAddress) {r3CompositeOwner->OnSerializeTransmission(bitStream, systemAddress);} + virtual void Deserialize(RakNet::DeserializeParameters *deserializeParameters) {r3CompositeOwner->Deserialize(deserializeParameters);} + virtual void PostSerializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->PostSerializeConstruction(constructionBitstream, destinationConnection);} + virtual void PostDeserializeConstruction(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->PostDeserializeConstruction(constructionBitstream, sourceConnection);} + virtual void PostSerializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *destinationConnection) {r3CompositeOwner->PostSerializeConstructionExisting(constructionBitstream, destinationConnection);} + virtual void PostDeserializeConstructionExisting(RakNet::BitStream *constructionBitstream, RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->PostDeserializeConstructionExisting(constructionBitstream, sourceConnection);} + virtual void PreDestruction(RakNet::Connection_RM3 *sourceConnection) {r3CompositeOwner->PreDestruction(sourceConnection);} +}; + +} // namespace RakNet + + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/Router2.cpp b/src/raknet/Router2.cpp new file mode 100755 index 0000000..a442fb5 --- /dev/null +++ b/src/raknet/Router2.cpp @@ -0,0 +1,1329 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_Router2==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#include "Router2.h" +#include "RakPeerInterface.h" +#include "BitStream.h" +#include "RakNetTime.h" +#include "GetTime.h" +#include "DS_OrderedList.h" +#include "SocketLayer.h" +#include "FormatString.h" + +using namespace RakNet; + +/* +Algorithm: + +1. Sender calls ConnectInternal(). A ConnnectRequest structure is allocated and stored in the connectionRequests list, containing a list of every system we are connected to. ID_ROUTER_2_QUERY_FORWARDING is sent to all connected systems. + +2. Upon the router getting ID_ROUTER_2_QUERY_FORWARDING, ID_ROUTER_2_REPLY_FORWARDING is sent to the sender indicating if that router is connected to the endpoint, along with the ping from the router to the endpoint. + +3. Upon the sender getting ID_ROUTER_2_REPLY_FORWARDING, the connection request structure is looked up in Router2::UpdateForwarding. The ping is stored in that structure. Once all systems have replied, the system continues to the next state. If every system in step 1 has been exhausted, and routing has occured at least once, then ID_CONNECTION_LOST is returned. If every system in step 1 has been exhausted and routing has never occured, then ID_ROUTER_2_FORWARDING_NO_PATH is returned. Otherwise, the router with the lowest ping is chosen, and RequestForwarding() is called with that system, which sends ID_ROUTER_2_REQUEST_FORWARDING to the router. + +4. When the router gets ID_ROUTER_2_REQUEST_FORWARDING, a MiniPunchRequest structure is allocated and stored in the miniPunchesInProgress list. The function SendOOBMessages() sends ID_ROUTER_2_REPLY_TO_SENDER_PORT from the routing sockets to both the sender and endpoint. It also sends ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT through the regular RakNet connection. + +5. The sender and endpoint should get ID_ROUTER_2_REPLY_TO_SENDER_PORT and/or ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT depending on what type of router they have. If ID_ROUTER_2_REPLY_TO_SENDER_PORT arrives, then this will reply back to the routing socket directly. If ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT arrives, then the reply port is modified to be the port specified by the router system. In both cases, ID_ROUTER_2_MINI_PUNCH_REPLY is sent. As the router has already setup the forwarding, ID_ROUTER_2_MINI_PUNCH_REPLY will actually arrive to the endpoint from the sender, and from the sender to the endpoint. + +6. When ID_ROUTER_2_MINI_PUNCH_REPLY arrives, ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE will be sent to the router. This is to tell the router that the forwarding has succeeded. + +7. When ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE arrives on the router, the router will find the two systems in the miniPunchesInProgress list, which was added in step 4 (See OnMiniPunchReplyBounce()). gotReplyFromSource or gotReplyFromEndpoint will be set to true, depending on the sender. When both gotReplyFromSource and gotReplyFromEndpoint have replied, then ID_ROUTER_2_REROUTE is sent to the endpoint, and ID_ROUTER_2_FORWARDING_ESTABLISHED is sent to the sender. + +8. When the endpoint gets ID_ROUTER_2_REROUTE, the system address is updated for the guid of the sender using RakPeer::ChangeSystemAddress(). This happens in OnRerouted(). + +9. When the sender gets ID_ROUTER_2_FORWARDING_ESTABLISHED, then in OnForwardingSuccess() the endpoint is removed from the connectionRequest list and moved to the forwardedConnectionList. + +10. In OnClosedConnection(), for the sender, if the closed connection is the endpoint, then the endpoint is removed from the forwardedConnectionList (this is a graceful disconnect). If the connection was instead lost to the router, then ConnectInternal() gets called, which goes back to step 1. If instead this was a connection requset in progress, then UpdateForwarding() gets called, which goes back to step 3. + +11. When the user connects the endpoint and sender, then the sender will get ID_CONNECTION_REQUEST_ACCEPTED. The sender will look up the endpoint in the forwardedConnectionList, and send ID_ROUTER_2_INCREASE_TIMEOUT to the endpoint. This message will call SetTimeoutTime() on the endpoint, so that if the router disconnects, enough time is available for the reroute to complete. +*/ + +#define MIN_MINIPUNCH_TIMEOUT 5000 + + + + +void Router2DebugInterface::ShowFailure(const char *message) +{ + printf("%s", message); +} +void Router2DebugInterface::ShowDiagnostic(const char *message) +{ + printf("%s", message); +} + +enum Router2MessageIdentifiers +{ + ID_ROUTER_2_QUERY_FORWARDING, + ID_ROUTER_2_REPLY_FORWARDING, + ID_ROUTER_2_REQUEST_FORWARDING, + ID_ROUTER_2_INCREASE_TIMEOUT, +}; +Router2::ConnnectRequest::ConnnectRequest() +{ + +} +Router2::ConnnectRequest::~ConnnectRequest() +{ + +} + +STATIC_FACTORY_DEFINITIONS(Router2,Router2); + +Router2::Router2() +{ + udpForwarder=0; + maximumForwardingRequests=0; + debugInterface=0; + socketFamily=AF_INET; +} +Router2::~Router2() +{ + ClearAll(); + + if (udpForwarder) + { + udpForwarder->Shutdown(); + RakNet::OP_DELETE(udpForwarder,_FILE_AND_LINE_); + } +} +void Router2::ClearMinipunches(void) +{ + miniPunchesInProgressMutex.Lock(); + miniPunchesInProgress.Clear(false,_FILE_AND_LINE_); + miniPunchesInProgressMutex.Unlock(); +} +void Router2::ClearConnectionRequests(void) +{ + connectionRequestsMutex.Lock(); + for (unsigned int i=0; i < connectionRequests.Size(); i++) + { + RakNet::OP_DELETE(connectionRequests[i],_FILE_AND_LINE_); + } + connectionRequests.Clear(false,_FILE_AND_LINE_); + connectionRequestsMutex.Unlock(); +} +bool Router2::ConnectInternal(RakNetGUID endpointGuid, bool returnConnectionLostOnFailure) +{ + int largestPing = GetLargestPingAmongConnectedSystems(); + if (largestPing<0) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2: ConnectInternal(%I64d) failed at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + + // Not connected to anyone + return false; + } + + // ALready in progress? + connectionRequestsMutex.Lock(); + if (GetConnectionRequestIndex(endpointGuid)!=(unsigned int)-1) + { + connectionRequestsMutex.Unlock(); + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2: ConnectInternal(%I64d) failed at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + + return false; + } + connectionRequestsMutex.Unlock(); + + // StoreRequest(endpointGuid, Largest(ping*2), systemsSentTo). Set state REQUEST_STATE_QUERY_FORWARDING + Router2::ConnnectRequest *cr = RakNet::OP_NEW(_FILE_AND_LINE_); + DataStructures::List addresses; + DataStructures::List guids; + rakPeerInterface->GetSystemList(addresses, guids); + if (guids.Size()==0) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i\n", _FILE_AND_LINE_)); + + return false; + } + cr->requestState=R2RS_REQUEST_STATE_QUERY_FORWARDING; + cr->pingTimeout=RakNet::GetTimeMS()+largestPing*2+1000; + cr->endpointGuid=endpointGuid; + cr->returnConnectionLostOnFailure=returnConnectionLostOnFailure; + for (unsigned int i=0; i < guids.Size(); i++) + { + ConnectionRequestSystem crs; + if (guids[i]!=endpointGuid) + { + crs.guid=guids[i]; + crs.pingToEndpoint=-1; + cr->connectionRequestSystemsMutex.Lock(); + cr->connectionRequestSystems.Push(crs,_FILE_AND_LINE_); + cr->connectionRequestSystemsMutex.Unlock(); + + // Broadcast(ID_ROUTER_2_QUERY_FORWARDING, endpointGuid); + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_QUERY_FORWARDING); + bsOut.Write(endpointGuid); + uint32_t pack_id = rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,crs.guid,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Router2::ConnectInternal: at %s:%i, pack_id = %d", __FILE__, __LINE__,pack_id)); + } + + } + else + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Router2::ConnectInternal: at %s:%i [else ..].: %I64d==%I64d", __FILE__, __LINE__, + guids[i].g,endpointGuid.g)); + } + } + } + connectionRequestsMutex.Lock(); + connectionRequests.Push(cr,_FILE_AND_LINE_); + connectionRequestsMutex.Unlock(); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Broadcasting ID_ROUTER_2_QUERY_FORWARDING to %I64d at %s:%i\n", endpointGuid.g , __FILE__, __LINE__)); + } + + return true; +} +void Router2::SetSocketFamily(unsigned short _socketFamily) +{ + socketFamily=_socketFamily; +} +void Router2::EstablishRouting(RakNetGUID endpointGuid) +{ + ConnectionState cs = rakPeerInterface->GetConnectionState(endpointGuid); + if (cs!=IS_DISCONNECTED && cs!=IS_NOT_CONNECTED) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i " + "(already connected to the %I64d)\n", __FILE__, __LINE__, endpointGuid.g )); + return; + } + + ConnectInternal(endpointGuid,false); +} +void Router2::SetMaximumForwardingRequests(int max) +{ + if (max>0 && maximumForwardingRequests<=0) + { + udpForwarder = RakNet::OP_NEW(_FILE_AND_LINE_); + udpForwarder->Startup(); + } + else if (max<=0 && maximumForwardingRequests>0) + { + udpForwarder->Shutdown(); + RakNet::OP_DELETE(udpForwarder,_FILE_AND_LINE_); + udpForwarder=0; + } + + maximumForwardingRequests=max; +} +PluginReceiveResult Router2::OnReceive(Packet *packet) +{ + SystemAddress sa; + RakNet::BitStream bs(packet->data,packet->length,false); + if (packet->data[0]==ID_ROUTER_2_INTERNAL) + { + switch (packet->data[1]) + { + case ID_ROUTER_2_QUERY_FORWARDING: + { + OnQueryForwarding(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_REPLY_FORWARDING: + { + OnQueryForwardingReply(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_REQUEST_FORWARDING: + { + + if (debugInterface) + { + char buff[512]; + char buff2[32]; + packet->systemAddress.ToString(true,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REQUEST_FORWARDING on ip %s from %I64d, ", + buff2,packet->guid.g)); + } + + OnRequestForwarding(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_INCREASE_TIMEOUT: + { + /// The routed system wants more time to stay alive on no communication, in case the router drops or crashes + rakPeerInterface->SetTimeoutTime(rakPeerInterface->GetTimeoutTime(packet->systemAddress)+10000, packet->systemAddress); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + } + else if (packet->data[0]==ID_OUT_OF_BAND_INTERNAL && packet->length>=2) + { + switch (packet->data[1]) + { + case ID_ROUTER_2_REPLY_TO_SENDER_PORT: + { + RakNet::BitStream bsOut; + bsOut.Write(packet->guid); + SendOOBFromRakNetPort(ID_ROUTER_2_MINI_PUNCH_REPLY, &bsOut, packet->systemAddress); + + if (debugInterface) + { + char buff[512]; + char buff2[32]; + sa.ToString(false,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_TO_SENDER_PORT %i on address %s, replying with ID_ROUTER_2_MINI_PUNCH_REPLY at %s:%i\n", sa.GetPort(), buff2, _FILE_AND_LINE_)); + +// packet->systemAddress.ToString(true,buff2); +// debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_TO_SENDER_PORT on address %s (%I64d), " +// "replying with ID_ROUTER_2_MINI_PUNCH_REPLY at %s:%i\n", buff2,packet->guid.g, __FILE__, __LINE__)); + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT: + { + RakNet::BitStream bsOut; + bsOut.Write(packet->guid); + bs.IgnoreBytes(2); + sa=packet->systemAddress; + unsigned short port; + bs.Read(port); + sa.SetPort(port); + RakAssert(sa.GetPort()!=0); + SendOOBFromRakNetPort(ID_ROUTER_2_MINI_PUNCH_REPLY, &bsOut, sa); + + if (debugInterface) + { + char buff[512]; + char buff2[32]; + sa.ToString(false,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT %i on address %s, " + "replying with ID_ROUTER_2_MINI_PUNCH_REPLY at %s:%i\n", sa.GetPort(), buff2, __FILE__, __LINE__)); + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_ROUTER_2_MINI_PUNCH_REPLY: + OnMiniPunchReply(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE: + OnMiniPunchReplyBounce(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + else if (packet->data[0]==ID_ROUTER_2_FORWARDING_ESTABLISHED) + { +// printf("Got ID_ROUTER_2_FORWARDING_ESTABLISHED\n"); + if (OnForwardingSuccess(packet)==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else if (packet->data[0]==ID_ROUTER_2_REROUTED) + { + OnRerouted(packet); + } + else if (packet->data[0]==ID_CONNECTION_REQUEST_ACCEPTED) + { + unsigned int forwardingIndex; + forwardedConnectionListMutex.Lock(); + for (forwardingIndex=0; forwardingIndex < forwardedConnectionList.Size(); forwardingIndex++) + { + if (forwardedConnectionList[forwardingIndex].endpointGuid==packet->guid && forwardedConnectionList[forwardingIndex].weInitiatedForwarding) + break; + } + + if (forwardingIndexSend(&bsOut,HIGH_PRIORITY,RELIABLE,0,packet->guid,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_CONNECTION_REQUEST_ACCEPTED, " + "sending ID_ROUTER_2_INCREASE_TIMEOUT to the %I64d at %s:%i\n", packet->guid.g, __FILE__, __LINE__)); + } + + // Also take longer ourselves + rakPeerInterface->SetTimeoutTime(rakPeerInterface->GetTimeoutTime(packet->systemAddress)+10000, packet->systemAddress); + } + else { + // ~Gwynn: Fix for Receive hanging up problem on Windows XP + // See http://blog.delphi-jedi.net/2008/04/23/the-case-of-the-unexplained-dead-lock-in-a-single-thread/ for details + forwardedConnectionListMutex.Unlock(); + } + } + else if (packet->data[0]==ID_ROUTER_2_FORWARDING_NO_PATH) + { + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} +void Router2::Update(void) +{ + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + unsigned int connectionRequestIndex=0; + connectionRequestsMutex.Lock(); + while (connectionRequestIndex < connectionRequests.Size()) + { + ConnnectRequest* connectionRequest = connectionRequests[connectionRequestIndex]; + + // pingTimeout is only used with R2RS_REQUEST_STATE_QUERY_FORWARDING + if (connectionRequest->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING && + connectionRequest->pingTimeout < curTime) + { + bool anyRemoved=false; + unsigned int connectionRequestGuidIndex=0; + connectionRequest->connectionRequestSystemsMutex.Lock(); + while (connectionRequestGuidIndex < connectionRequest->connectionRequestSystems.Size()) + { + if (connectionRequest->connectionRequestSystems[connectionRequestGuidIndex].pingToEndpoint<0) + { + anyRemoved=true; + connectionRequest->connectionRequestSystems.RemoveAtIndexFast(connectionRequestGuidIndex); + } + else + { + connectionRequestGuidIndex++; + } + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + if (anyRemoved) + { + if (connectionRequestIndex!=(unsigned int)-1) + { + // connectionRequestsMutex should be locked before calling this function + if (UpdateForwarding(connectionRequest)==false) + { + RemoveConnectionRequest(connectionRequestIndex); + } + else + { + connectionRequestIndex++; + } + } + else + { + connectionRequestIndex++; + } + } + else + { + connectionRequestIndex++; + } + } + else + { + connectionRequestIndex++; + } + } + connectionRequestsMutex.Unlock(); + + unsigned int i=0; + miniPunchesInProgressMutex.Lock(); + while (i < miniPunchesInProgress.Size()) + { + if (miniPunchesInProgress[i].timeoutminiPunchesInProgress[i].nextAction) + { + miniPunchesInProgress[i].nextAction=curTime+100; + SendOOBMessages(&miniPunchesInProgress[i]); + } + else + i++; + } + miniPunchesInProgressMutex.Unlock(); + +} +void Router2::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) systemAddress; + + + unsigned int forwardedConnectionIndex=0; + forwardedConnectionListMutex.Lock(); + while (forwardedConnectionIndexShowDiagnostic(FormatStringTS(buff,"Closed connection to the %I64d, removing forwarding from list at %s:%i\n", rakNetGUID.g, __FILE__, __LINE__)); + } + + // No longer need forwarding + forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + } + else if (forwardedConnectionList[forwardedConnectionIndex].intermediaryGuid==rakNetGUID && forwardedConnectionList[forwardedConnectionIndex].weInitiatedForwarding) + { + // Lost connection to intermediary. Restart process to connect to endpoint. If failed, push ID_CONNECTION_LOST. Also remove connection request if it already is in the list, to restart it + connectionRequestsMutex.Lock(); + unsigned int pos = GetConnectionRequestIndex(forwardedConnectionList[forwardedConnectionIndex].endpointGuid); + if((unsigned int)-1 != pos) {RakNet::OP_DELETE(connectionRequests[pos], __FILE__, __LINE__); connectionRequests.RemoveAtIndexFast(pos);} + connectionRequestsMutex.Unlock(); + + ConnectInternal(forwardedConnectionList[forwardedConnectionIndex].endpointGuid, true); + + forwardedConnectionIndex++; + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Closed connection %I64d, restarting forwarding at %s:%i\n",rakNetGUID.g, __FILE__, __LINE__)); + } + + // This should not be removed - the connection is still forwarded, but perhaps through another system +// forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + } + else + forwardedConnectionIndex++; + } + forwardedConnectionListMutex.Unlock(); + + unsigned int connectionRequestIndex=0; + connectionRequestsMutex.Lock(); + while (connectionRequestIndex < connectionRequests.Size()) + { + ConnnectRequest *cr = connectionRequests[connectionRequestIndex]; + cr->connectionRequestSystemsMutex.Lock(); + unsigned int connectionRequestGuidIndex = cr->GetGuidIndex(rakNetGUID); + if (connectionRequestGuidIndex!=(unsigned int)-1) + { + cr->connectionRequestSystems.RemoveAtIndexFast(connectionRequestGuidIndex); + cr->connectionRequestSystemsMutex.Unlock(); + if (UpdateForwarding(cr)==false) // If returns false, no connection request systems left + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Aborted connection to the %I64d, aborted forwarding at %s:%i\n", rakNetGUID.g, __FILE__, __LINE__)); + } + + RemoveConnectionRequest(connectionRequestIndex); + } + else // Else a system in the connection request list dropped. If cr->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING then we are still waiting for other systems to respond. + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Aborted connection attempt to %I64d, restarting forwarding to %I64d at %s:%i\n", rakNetGUID.g,cr->endpointGuid.g,__FILE__, __LINE__)); + } +// if(volatile bool is_my_fix_a_truth = true) { // A system in the list of potential systems to try routing to dropped. There is no need to restart the whole process. +// connectionRequestsMutex.Lock(); +// connectionRequests.RemoveAtIndexFast(connectionRequestIndex); +// connectionRequestsMutex.Unlock(); +// +// if(false == ConnectInternal(cr->endpointGuid,cr->returnConnectionLostOnFailure)) +// if (debugInterface) +// { +// char buff[512]; +// debugInterface->ShowDiagnostic(FormatStringTS(buff,"ConnectInternal(cr->endpointGuid,cr->returnConnectionLostOnFailure) is false. at %s:%i\n", __FILE__, __LINE__)); +// } +// } + + connectionRequestIndex++; + } + } + else + { + cr->connectionRequestSystemsMutex.Unlock(); + connectionRequestIndex++; + } + } + connectionRequestsMutex.Unlock(); + + + unsigned int i=0; + miniPunchesInProgressMutex.Lock(); + while (i < miniPunchesInProgress.Size()) + { + if (miniPunchesInProgress[i].sourceGuid==rakNetGUID || miniPunchesInProgress[i].endpointGuid==rakNetGUID) + { + if (miniPunchesInProgress[i].sourceGuid!=rakNetGUID) + { + SendFailureOnCannotForward(miniPunchesInProgress[i].sourceGuid, miniPunchesInProgress[i].endpointGuid); + } + miniPunchesInProgress.RemoveAtIndexFast(i); + } + else + i++; + } + miniPunchesInProgressMutex.Unlock(); +} +void Router2::OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason) +{ + (void) failedConnectionAttemptReason; + (void) packet; + + unsigned int forwardedConnectionIndex=0; + forwardedConnectionListMutex.Lock(); + while (forwardedConnectionIndexsystemAddress) + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Failed connection attempt to forwarded system (%I64d : %s) at %s:%i\n", + forwardedConnectionList[forwardedConnectionIndex].endpointGuid.g, packet->systemAddress.ToString(true), __FILE__, __LINE__)); + } + + packet->guid=forwardedConnectionList[forwardedConnectionIndex].endpointGuid; + forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + } + else + forwardedConnectionIndex++; + } + forwardedConnectionListMutex.Unlock(); +} +void Router2::OnRakPeerShutdown(void) +{ + ClearAll(); +} +// connectionRequestsMutex should already be locked +bool Router2::UpdateForwarding(ConnnectRequest* connectionRequest) +{ + connectionRequest->connectionRequestSystemsMutex.Lock(); + + // RAKNET_DEBUG_PRINTF(__FUNCTION__": connectionRequest->connectionRequestSystems.Size = %d", connectionRequest->connectionRequestSystems.Size()); + + if (connectionRequest->connectionRequestSystems.Size()==0) + { + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + // printf("Router2 failed at %s:%i\n", __FILE__, __LINE__); + if (connectionRequest->returnConnectionLostOnFailure) { + ReturnToUser(ID_CONNECTION_LOST, connectionRequest->endpointGuid, UNASSIGNED_SYSTEM_ADDRESS, true); // This is a connection which was previously established. Rerouting is not possible. +// bool sendDisconnectionNotification = false; +// rakPeerInterface->CloseConnection(rakPeerInterface->GetSystemAddressFromGuid(connectionRequest->endpointGuid), sendDisconnectionNotification); +// RAKNET_DEBUG_PRINTF(__FUNCTION__": call rakPeerInterface->CloseConnection(%I64d)" , connectionRequest->endpointGuid.g); + } + else + ReturnToUser(ID_ROUTER_2_FORWARDING_NO_PATH, connectionRequest->endpointGuid, UNASSIGNED_SYSTEM_ADDRESS, false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Forwarding failed, no remaining systems at %s:%i\n", _FILE_AND_LINE_)); + } + + forwardedConnectionListMutex.Lock(); + + for (unsigned int forwardedConnectionIndex=0; forwardedConnectionIndex < forwardedConnectionList.Size(); forwardedConnectionIndex++) + { + if (forwardedConnectionList[forwardedConnectionIndex].endpointGuid==connectionRequest->endpointGuid && forwardedConnectionList[forwardedConnectionIndex].weInitiatedForwarding) + { + forwardedConnectionList.RemoveAtIndexFast(forwardedConnectionIndex); + break; + } + } + forwardedConnectionListMutex.Unlock(); + + return false; + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + if (connectionRequest->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING) + { + connectionRequest->connectionRequestSystemsMutex.Lock(); + + for (unsigned int i=0; i < connectionRequest->connectionRequestSystems.Size(); i++) + { + if (connectionRequest->connectionRequestSystems[i].pingToEndpoint<0) + { + connectionRequest->connectionRequestSystemsMutex.Unlock(); + return true; // Forward query still in progress, just return + } + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + RequestForwarding(connectionRequest); + } +// else if (connectionRequest->requestState==REQUEST_STATE_REQUEST_FORWARDING) +// { +// RequestForwarding(connectionRequestIndex); +// } + + return true; +} +// connectionRequestsMutex should already be locked +void Router2::RemoveConnectionRequest(unsigned int connectionRequestIndex) +{ + RakNet::OP_DELETE(connectionRequests[connectionRequestIndex],_FILE_AND_LINE_); + connectionRequests.RemoveAtIndexFast(connectionRequestIndex); +} +int ConnectionRequestSystemComp( const Router2::ConnectionRequestSystem & key, const Router2::ConnectionRequestSystem &data ) +{ + if (key.pingToEndpoint * (key.usedForwardingEntries+1) < data.pingToEndpoint * (data.usedForwardingEntries+1)) + return -1; + if (key.pingToEndpoint * (key.usedForwardingEntries+1) == data.pingToEndpoint * (data.usedForwardingEntries+1)) + return 1; + if (key.guid < data.guid) + return -1; + if (key.guid > data.guid) + return -1; + return 0; +} +// connectionRequestsMutex should already be locked +void Router2::RequestForwarding(ConnnectRequest* connectionRequest) +{ + RakAssert(connectionRequest->requestState==R2RS_REQUEST_STATE_QUERY_FORWARDING); + connectionRequest->requestState=REQUEST_STATE_REQUEST_FORWARDING; + + if (connectionRequest->GetGuidIndex(connectionRequest->lastRequestedForwardingSystem)!=(unsigned int)-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i\n", _FILE_AND_LINE_)); + return; + } + + // Prioritize systems to request forwarding + DataStructures::OrderedList commandList; + unsigned int connectionRequestGuidIndex; + connectionRequest->connectionRequestSystemsMutex.Lock(); + for (connectionRequestGuidIndex=0; connectionRequestGuidIndex < connectionRequest->connectionRequestSystems.Size(); connectionRequestGuidIndex++) + { + RakAssert(connectionRequest->connectionRequestSystems[connectionRequestGuidIndex].pingToEndpoint>=0); + commandList.Insert(connectionRequest->connectionRequestSystems[connectionRequestGuidIndex], + connectionRequest->connectionRequestSystems[connectionRequestGuidIndex], + true, + _FILE_AND_LINE_); + } + connectionRequest->connectionRequestSystemsMutex.Unlock(); + + connectionRequest->lastRequestedForwardingSystem=commandList[0].guid; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_REQUEST_FORWARDING); + bsOut.Write(connectionRequest->endpointGuid); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,connectionRequest->lastRequestedForwardingSystem,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_REQUEST_FORWARDING " + "(connectionRequest->lastRequestedForwardingSystem = %I64d, connectionRequest->endpointGuid = %I64d) at %s:%i\n", + connectionRequest->lastRequestedForwardingSystem.g,connectionRequest->endpointGuid.g, __FILE__, __LINE__)); + } +} +void Router2::SendFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid) +{ + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_REPLY_FORWARDING); + bsOut.Write(endpointGuid); + bsOut.Write(false); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,sourceGuid,false); +} +int Router2::ReturnFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid) +{ + // If the number of systems we are currently forwarding>=maxForwarding, return ID_ROUTER_2_REPLY_FORWARDING,endpointGuid,false + if (udpForwarder==0 || udpForwarder->GetUsedForwardEntries()/2>maximumForwardingRequests) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d -> %I64d) at %s:%i\n", + sourceGuid.g, endpointGuid.g,__FILE__, __LINE__)); + SendFailureOnCannotForward(sourceGuid,endpointGuid); + return -1; + } + + // We cannot forward connections which are themselves forwarded. Return fail in that case + forwardedConnectionListMutex.Lock(); + for (unsigned int i=0; i < forwardedConnectionList.Size(); i++) + { + if ((forwardedConnectionList[i].endpointGuid==endpointGuid) + || (forwardedConnectionList[i].endpointGuid==sourceGuid)) // sourceGuid is here so you do not respond to routing requests from systems you are already routing through. + { + forwardedConnectionListMutex.Unlock(); + + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i\n", __FILE__, __LINE__)); + SendFailureOnCannotForward(sourceGuid,endpointGuid); + return -1; + } + } + forwardedConnectionListMutex.Unlock(); + + int pingToEndpoint; + pingToEndpoint = rakPeerInterface->GetAveragePing(endpointGuid); + if (pingToEndpoint==-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d -> %I64d) at %s:%i\n", + sourceGuid.g, endpointGuid.g,__FILE__, __LINE__)); + + SendFailureOnCannotForward(sourceGuid,endpointGuid); + return -1; + } + return pingToEndpoint; +} +void Router2::OnQueryForwarding(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID endpointGuid; + // Read endpointGuid + bs.Read(endpointGuid); + + int pingToEndpoint = ReturnFailureOnCannotForward(packet->guid, endpointGuid); + if (pingToEndpoint==-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d) at %s:%i\n", packet->guid.g, __FILE__, __LINE__)); + return; + } + + // If we are connected to endpointGuid, reply ID_ROUTER_2_REPLY_FORWARDING,endpointGuid,true,ping,numCurrentlyForwarding + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_ROUTER_2_INTERNAL); + bsOut.Write((unsigned char) ID_ROUTER_2_REPLY_FORWARDING); + bsOut.Write(endpointGuid); + bsOut.Write(true); + bsOut.Write((unsigned short) pingToEndpoint); + bsOut.Write((unsigned short) udpForwarder->GetUsedForwardEntries()/2); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,packet->guid,false); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_REPLY_FORWARDING to the %I64d at %s:%i\n", packet->guid.g, __FILE__, __LINE__)); + } +} +void Router2::OnQueryForwardingReply(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + // Find endpointGuid among stored requests + bool canForward=false; + bs.Read(canForward); + + + connectionRequestsMutex.Lock(); + unsigned int connectionRequestIndex = GetConnectionRequestIndex(endpointGuid); + if (connectionRequestIndex==(unsigned int)-1) + { + connectionRequestsMutex.Unlock(); + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d) at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + return; + } + + connectionRequests[connectionRequestIndex]->connectionRequestSystemsMutex.Lock(); + unsigned int connectionRequestGuidIndex = connectionRequests[connectionRequestIndex]->GetGuidIndex(packet->guid); + if (connectionRequestGuidIndex==(unsigned int)-1) + { + connectionRequests[connectionRequestIndex]->connectionRequestSystemsMutex.Unlock(); + connectionRequestsMutex.Unlock(); + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (%I64d) at %s:%i\n", endpointGuid.g, __FILE__, __LINE__)); + return; + } + + if (debugInterface) + { + char buff[512]; + char buff2[512]; + packet->systemAddress.ToString(true,buff2); + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REPLY_FORWARDING on address %s(%I64d -> %I64d) canForward=%i at %s:%i\n", + buff2, packet->guid.g, endpointGuid.g, canForward, __FILE__, __LINE__)); + } + + if (canForward) + { + unsigned short pingToEndpoint; + unsigned short usedEntries; + bs.Read(pingToEndpoint); + bs.Read(usedEntries); + connectionRequests[connectionRequestIndex]->connectionRequestSystems[connectionRequestGuidIndex].usedForwardingEntries=usedEntries; + connectionRequests[connectionRequestIndex]->connectionRequestSystems[connectionRequestGuidIndex].pingToEndpoint=rakPeerInterface->GetAveragePing(packet->guid)+pingToEndpoint; + } + else + { + connectionRequests[connectionRequestIndex]->connectionRequestSystems.RemoveAtIndex(connectionRequestGuidIndex); + } + connectionRequests[connectionRequestIndex]->connectionRequestSystemsMutex.Unlock(); + + if (UpdateForwarding(connectionRequests[connectionRequestIndex])==false) + { + RemoveConnectionRequest(connectionRequestIndex); + } + connectionRequestsMutex.Unlock(); +} +void Router2::SendForwardingSuccess(MessageID messageId, RakNetGUID sourceGuid, RakNetGUID endpointGuid, unsigned short sourceToDstPort) +{ + RakNet::BitStream bsOut; + bsOut.Write(messageId); + bsOut.Write(endpointGuid); + bsOut.Write(sourceToDstPort); + rakPeerInterface->Send(&bsOut,MEDIUM_PRIORITY,RELIABLE_ORDERED,0,sourceGuid,false); + + if (debugInterface) + { + char buff[512]; + if (messageId==ID_ROUTER_2_FORWARDING_ESTABLISHED) + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_FORWARDING_ESTABLISHED at %s:%i\n", _FILE_AND_LINE_ )); + else + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_REROUTED at %s:%i\n", _FILE_AND_LINE_ )); + } +} +void Router2::SendOOBFromRakNetPort(OutOfBandIdentifiers oob, BitStream *extraData, SystemAddress sa) +{ + RakNet::BitStream oobBs; + oobBs.Write((unsigned char)oob); + if (extraData) + { + extraData->ResetReadPointer(); + oobBs.Write(*extraData); + } + char ipAddressString[32]; + sa.ToString(false, ipAddressString); + rakPeerInterface->SendOutOfBand((const char*) ipAddressString,sa.GetPort(),(const char*) oobBs.GetData(),oobBs.GetNumberOfBytesUsed()); +} +void Router2::SendOOBFromSpecifiedSocket(OutOfBandIdentifiers oob, SystemAddress sa, SOCKET socket) +{ + RakNet::BitStream bs; + rakPeerInterface->WriteOutOfBandHeader(&bs); + bs.Write((unsigned char) oob); + SocketLayer::SendTo_PC( socket, (const char*) bs.GetData(), bs.GetNumberOfBytesUsed(), sa, __FILE__, __LINE__ ); +} +void Router2::SendOOBMessages(Router2::MiniPunchRequest *mpr) +{ + // Mini NAT punch + // Send from srcToDestPort to packet->systemAddress (source). If the message arrives, the remote system should reply. + SendOOBFromSpecifiedSocket(ID_ROUTER_2_REPLY_TO_SENDER_PORT, mpr->sourceAddress, mpr->forwardingSocket); + + // Send from destToSourcePort to endpointSystemAddress (destination). If the message arrives, the remote system should reply. + SendOOBFromSpecifiedSocket(ID_ROUTER_2_REPLY_TO_SENDER_PORT, mpr->endpointAddress, mpr->forwardingSocket); + + + if (debugInterface) { + char buff [512]; + + char buff2[128]; + + mpr->sourceAddress .ToString(true,buff2); + + debugInterface->ShowDiagnostic(FormatStringTS(buff,"call SendOOBFromSpecifiedSocket(...,%s,...)", buff2)); + + mpr->endpointAddress .ToString(true,buff2); + + debugInterface->ShowDiagnostic(FormatStringTS(buff,"call SendOOBFromSpecifiedSocket(...,%s,...)", buff2)); + } + + // Tell source to send to forwardingPort + RakNet::BitStream extraData; + extraData.Write(mpr->forwardingPort); + RakAssert(mpr->forwardingPort!=0); + SendOOBFromRakNetPort(ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT, &extraData, mpr->sourceAddress); + + // Tell destination to send to forwardingPort + extraData.Reset(); + extraData.Write(mpr->forwardingPort); + RakAssert(mpr->forwardingPort); + SendOOBFromRakNetPort(ID_ROUTER_2_REPLY_TO_SPECIFIED_PORT, &extraData, mpr->endpointAddress); +} +void Router2::OnRequestForwarding(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + + int pingToEndpoint = ReturnFailureOnCannotForward(packet->guid, endpointGuid); + if (pingToEndpoint==-1) + { + char buff[512]; + if (debugInterface) debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed (packet->guid =%I64d, endpointGuid = %I64d) at %s:%i\n", + packet->guid.g, endpointGuid.g, __FILE__, __LINE__)); + return; + } + + unsigned short forwardingPort=0; + SOCKET forwardingSocket=0; + SystemAddress endpointSystemAddress = rakPeerInterface->GetSystemAddressFromGuid(endpointGuid); + UDPForwarderResult result = udpForwarder->StartForwarding( + packet->systemAddress, endpointSystemAddress, 30000, 0, socketFamily, + &forwardingPort, &forwardingSocket); + + if (result==UDPFORWARDER_FORWARDING_ALREADY_EXISTS) + { + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REQUEST_FORWARDING, result=UDPFORWARDER_FORWARDING_ALREADY_EXISTS " + "(packet->guid =%I64d, endpointGuid = %I64d) at %s:%i\n", + packet->guid.g, endpointGuid.g,__FILE__, __LINE__)); + } + + SendForwardingSuccess(ID_ROUTER_2_FORWARDING_ESTABLISHED, packet->guid, endpointGuid, forwardingPort); + } + else if (result==UDPFORWARDER_NO_SOCKETS) + { + char buff[512]; + char buff2[64]; + char buff3[64]; + packet->systemAddress.ToString(true,buff2); + endpointSystemAddress.ToString(true,buff3); + if (debugInterface) + debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i with UDPFORWARDER_NO_SOCKETS, packet->systemAddress=%s, endpointSystemAddress=%s, forwardingPort=%i, forwardingSocket=%i\n", + __FILE__, __LINE__, buff2, buff3, forwardingPort, forwardingSocket)); + SendFailureOnCannotForward(packet->guid, endpointGuid); + } + else if (result==UDPFORWARDER_INVALID_PARAMETERS) + { + char buff[512]; + char buff2[64]; + char buff3[64]; + packet->systemAddress.ToString(true,buff2); + endpointSystemAddress.ToString(true,buff3); + if (debugInterface) + debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i with UDPFORWARDER_INVALID_PARAMETERS, packet->systemAddress=%s, endpointSystemAddress=%s, forwardingPort=%i, forwardingSocket=%i\n", + __FILE__, __LINE__, buff2, buff3, forwardingPort, forwardingSocket)); + SendFailureOnCannotForward(packet->guid, endpointGuid); + } + else if (result==UDPFORWARDER_BIND_FAILED) + { + char buff[512]; + char buff2[64]; + char buff3[64]; + packet->systemAddress.ToString(true,buff2); + endpointSystemAddress.ToString(true,buff3); + if (debugInterface) + debugInterface->ShowFailure(FormatStringTS(buff,"Router2 failed at %s:%i with UDPFORWARDER_BIND_FAILED, packet->systemAddress=%s, endpointSystemAddress=%s, forwardingPort=%i, forwardingSocket=%i\n", + __FILE__, __LINE__, buff2, buff3, forwardingPort, forwardingSocket)); + SendFailureOnCannotForward(packet->guid, endpointGuid); + } + else + { + if (debugInterface) + { + char buff2[32]; + char buff3[32]; + endpointSystemAddress.ToString(true,buff2); + packet->systemAddress.ToString(true,buff3); + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REQUEST_FORWARDING.\n" + "endpointAddress=%s\nsourceAddress=%s\nforwardingPort=%i\n " + "calling SendOOBMessages at %s:%i\n", buff2,buff3,forwardingPort,_FILE_AND_LINE_)); + } + + // Store the punch request + MiniPunchRequest miniPunchRequest; + miniPunchRequest.endpointAddress=endpointSystemAddress; + miniPunchRequest.endpointGuid=endpointGuid; + miniPunchRequest.gotReplyFromEndpoint=false; + miniPunchRequest.gotReplyFromSource=false; + miniPunchRequest.sourceGuid=packet->guid; + miniPunchRequest.sourceAddress=packet->systemAddress; + miniPunchRequest.forwardingPort=forwardingPort; + miniPunchRequest.forwardingSocket=forwardingSocket; + int ping1 = rakPeerInterface->GetAveragePing(packet->guid); + int ping2 = rakPeerInterface->GetAveragePing(endpointGuid); + if (ping1>ping2) + miniPunchRequest.timeout=RakNet::GetTimeMS() + ping1*8+300; + else + miniPunchRequest.timeout=RakNet::GetTimeMS() + ping2*8+300; + miniPunchRequest.nextAction=RakNet::GetTimeMS()+100; + SendOOBMessages(&miniPunchRequest); + miniPunchesInProgressMutex.Lock(); + miniPunchesInProgress.Push(miniPunchRequest,_FILE_AND_LINE_); + miniPunchesInProgressMutex.Unlock(); + } +} +void Router2::OnMiniPunchReplyBounce(Packet *packet) +{ + // Find stored punch request + unsigned int i=0; + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE from guid=%I64d (miniPunchesInProgress.Size() = %d)", + packet->guid.g, miniPunchesInProgress.Size())); + } + + miniPunchesInProgressMutex.Lock(); + while (i < miniPunchesInProgress.Size()) + { + if (miniPunchesInProgress[i].sourceGuid==packet->guid || miniPunchesInProgress[i].endpointGuid==packet->guid) + { + if (miniPunchesInProgress[i].sourceGuid==packet->guid) + miniPunchesInProgress[i].gotReplyFromSource=true; + if (miniPunchesInProgress[i].endpointGuid==packet->guid) + miniPunchesInProgress[i].gotReplyFromEndpoint=true; + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Processing ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE, gotReplyFromSource=%i gotReplyFromEndpoint=%i at %s:%i\n", miniPunchesInProgress[i].gotReplyFromSource, miniPunchesInProgress[i].gotReplyFromEndpoint, __FILE__, __LINE__)); + } + + if (miniPunchesInProgress[i].gotReplyFromEndpoint==true && + miniPunchesInProgress[i].gotReplyFromSource==true) + { + SendForwardingSuccess(ID_ROUTER_2_REROUTED, miniPunchesInProgress[i].endpointGuid, miniPunchesInProgress[i].sourceGuid, miniPunchesInProgress[i].forwardingPort); + SendForwardingSuccess(ID_ROUTER_2_FORWARDING_ESTABLISHED, miniPunchesInProgress[i].sourceGuid, miniPunchesInProgress[i].endpointGuid, miniPunchesInProgress[i].forwardingPort); + miniPunchesInProgress.RemoveAtIndexFast(i); + } + else + { + i++; + } + } + else + i++; + } + miniPunchesInProgressMutex.Unlock(); +} +void Router2::OnMiniPunchReply(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID) + sizeof(unsigned char)); + RakNetGUID routerGuid; + bs.Read(routerGuid); + SendOOBFromRakNetPort(ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE, 0, rakPeerInterface->GetSystemAddressFromGuid(routerGuid)); + + if (debugInterface) + { + char buff[512]; + + char buff2[512]; + + rakPeerInterface->GetSystemAddressFromGuid(routerGuid).ToString(true,buff2); + + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Sending ID_ROUTER_2_MINI_PUNCH_REPLY_BOUNCE (%s) at %s:%i\n", buff2, __FILE__, __LINE__)); + } +} +void Router2::OnRerouted(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + unsigned short sourceToDestPort; + bs.Read(sourceToDestPort); + + // Return rerouted notice + SystemAddress intermediaryAddress=packet->systemAddress; + intermediaryAddress.SetPort(sourceToDestPort); + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + unsigned int forwardingIndex; + forwardedConnectionListMutex.Lock(); + for (forwardingIndex=0; forwardingIndex < forwardedConnectionList.Size(); forwardingIndex++) + { + if (forwardedConnectionList[forwardingIndex].endpointGuid==endpointGuid) + break; + } + + if (forwardingIndexsystemAddress; + ref_fc.intermediaryAddress.SetPort(sourceToDestPort); + ref_fc.intermediaryGuid = packet->guid; + + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"FIX: Got ID_ROUTER_2_REROUTE, returning ID_ROUTER_2_REROUTED," + " Calling RakPeer::ChangeSystemAddress(%I64d, %s) at %s:%i\n",endpointGuid.g, intermediaryAddress.ToString(true), __FILE__, __LINE__)); + } + } + else + { + ForwardedConnection fc; + fc.endpointGuid=endpointGuid; + fc.intermediaryAddress=packet->systemAddress; + fc.intermediaryAddress.SetPort(sourceToDestPort); + fc.intermediaryGuid=packet->guid; + fc.weInitiatedForwarding=false; + // add to forwarding list. This is only here to avoid reporting direct connections in Router2::ReturnFailureOnCannotForward + forwardedConnectionList.Push (fc,__FILE__, __LINE__); + forwardedConnectionListMutex.Unlock(); + + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_REROUTE, returning ID_ROUTER_2_REROUTED, Calling RakPeer::ChangeSystemAddress at %s:%i\n", __FILE__, __LINE__)); + } + } + +} +bool Router2::OnForwardingSuccess(Packet *packet) +{ + RakNet::BitStream bs(packet->data, packet->length, false); + bs.IgnoreBytes(sizeof(MessageID)); + RakNetGUID endpointGuid; + bs.Read(endpointGuid); + unsigned short sourceToDestPort; + bs.Read(sourceToDestPort); + + unsigned int forwardingIndex; + forwardedConnectionListMutex.Lock(); + for (forwardingIndex=0; forwardingIndex < forwardedConnectionList.Size(); forwardingIndex++) + { + if (forwardedConnectionList[forwardingIndex].endpointGuid==endpointGuid) + break; + } + + if (forwardingIndexsystemAddress; + intermediaryAddress.SetPort(sourceToDestPort); + rakPeerInterface->ChangeSystemAddress(endpointGuid, intermediaryAddress); + + //////////////////////////////////////////////////////////////////////////// + ForwardedConnection& ref_fc = forwardedConnectionList[forwardingIndex]; + ref_fc.intermediaryAddress = packet->systemAddress; + ref_fc.intermediaryAddress.SetPort(sourceToDestPort); + ref_fc.intermediaryGuid = packet->guid; + //////////////////////////////////////////////////////////////////////////// + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got ID_ROUTER_2_FORWARDING_ESTABLISHED, returning ID_ROUTER_2_REROUTED, Calling RakPeer::ChangeSystemAddress at %s:%i\n", _FILE_AND_LINE_)); + } + + packet->data[0]=ID_ROUTER_2_REROUTED; + + forwardedConnectionListMutex.Unlock(); + return true; // Return packet to user + } + else + { + forwardedConnectionListMutex.Unlock(); + + // removeFrom connectionRequests; + ForwardedConnection fc; + connectionRequestsMutex.Lock(); + unsigned int connectionRequestIndex = GetConnectionRequestIndex(endpointGuid); + fc.returnConnectionLostOnFailure=connectionRequests[connectionRequestIndex]->returnConnectionLostOnFailure; + connectionRequests.RemoveAtIndexFast(connectionRequestIndex); + connectionRequestsMutex.Unlock(); + fc.endpointGuid=endpointGuid; + fc.intermediaryAddress=packet->systemAddress; + fc.intermediaryAddress.SetPort(sourceToDestPort); + fc.intermediaryGuid=packet->guid; + fc.weInitiatedForwarding=true; + + // add to forwarding list + forwardedConnectionListMutex.Lock(); + forwardedConnectionList.Push (fc,_FILE_AND_LINE_); + forwardedConnectionListMutex.Unlock(); + + if (debugInterface) + { + char buff[512]; + debugInterface->ShowDiagnostic(FormatStringTS(buff,"Got and returning to user ID_ROUTER_2_FORWARDING_ESTABLISHED at %s:%i\n", _FILE_AND_LINE_)); + } + + } + return true; // Return packet to user +} +int Router2::GetLargestPingAmongConnectedSystems(void) const +{ + int avePing; + int largestPing=-1; + unsigned short maxPeers = rakPeerInterface->GetMaximumNumberOfPeers(); + if (maxPeers==0) + return 9999; + unsigned short index; + for (index=0; index < rakPeerInterface->GetMaximumNumberOfPeers(); index++) + { + RakNetGUID g = rakPeerInterface->GetGUIDFromIndex(index); + if (g!=UNASSIGNED_RAKNET_GUID) + { + avePing=rakPeerInterface->GetAveragePing(rakPeerInterface->GetGUIDFromIndex(index)); + if (avePing>largestPing) + largestPing=avePing; + } + } + return largestPing; +} + +unsigned int Router2::GetConnectionRequestIndex(RakNetGUID endpointGuid) +{ + unsigned int i; + for (i=0; i < connectionRequests.Size(); i++) + { + if (connectionRequests[i]->endpointGuid==endpointGuid) + return i; + } + return (unsigned int) -1; +} +unsigned int Router2::ConnnectRequest::GetGuidIndex(RakNetGUID guid) +{ + unsigned int i; + for (i=0; i < connectionRequestSystems.Size(); i++) + { + if (connectionRequestSystems[i].guid==guid) + return i; + } + return (unsigned int) -1; +} +void Router2::ReturnToUser(MessageID messageId, RakNetGUID endpointGuid, const SystemAddress &systemAddress, bool wasGeneratedLocally) +{ + Packet *p = AllocatePacketUnified(sizeof(MessageID)+sizeof(unsigned char)); + p->data[0]=messageId; + p->systemAddress=systemAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=endpointGuid; + p->wasGeneratedLocally=wasGeneratedLocally; + rakPeerInterface->PushBackPacket(p, true); +} +void Router2::ClearForwardedConnections(void) +{ + forwardedConnectionListMutex.Lock(); + forwardedConnectionList.Clear(false,_FILE_AND_LINE_); + forwardedConnectionListMutex.Unlock(); +} +void Router2::ClearAll(void) +{ + ClearConnectionRequests(); + ClearMinipunches(); + ClearForwardedConnections(); +} +void Router2::SetDebugInterface(Router2DebugInterface *_debugInterface) +{ + debugInterface=_debugInterface; +} +Router2DebugInterface *Router2::GetDebugInterface(void) const +{ + return debugInterface; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/Router2.h b/src/raknet/Router2.h new file mode 100755 index 0000000..b4debe0 --- /dev/null +++ b/src/raknet/Router2.h @@ -0,0 +1,195 @@ +/// \file +/// \brief Router2 plugin. Allows you to connect to a system by routing packets through another system that is connected to both you and the destination. Useful for getting around NATs. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_Router2==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __ROUTER_2_PLUGIN_H +#define __ROUTER_2_PLUGIN_H + +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "PacketPriority.h" +#include "Export.h" +#include "UDPForwarder.h" +#include "MessageIdentifiers.h" +#include "DS_List.h" +#include "SimpleMutex.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +struct Router2DebugInterface +{ + Router2DebugInterface() {} + virtual ~Router2DebugInterface() {} + virtual void ShowFailure(const char *message); + virtual void ShowDiagnostic(const char *message); +}; + +/// \defgroup ROUTER_2_GROUP Router2 +/// \brief Part of the NAT punchthrough solution, allowing you to connect to systems by routing through a shared connection. +/// \details Router2 routes datagrams between two systems that are not directly connected by using the bandwidth of a third system, to which the other two systems were connected +/// It is of benefit when a fully connected mesh topology is desired, but could not be completely established due to routers and/or firewalls +/// As the system address of a remote system will be the system address of the intermediary, it is necessary to use the RakNetGUID object to refer to systems, including with other plugins +/// \ingroup PLUGINS_GROUP + +/// \ingroup ROUTER_2_GROUP +/// \brief Class interface for the Router2 system +/// \details +class RAK_DLL_EXPORT Router2 : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(Router2) + + Router2(); + virtual ~Router2(); + + /// Sets the socket family to use, either IPV4 or IPV6 + /// \param[in] socketFamily For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + void SetSocketFamily(unsigned short _socketFamily); + + /// \brief Query all connected systems to connect through them to a third system. + /// System will return ID_ROUTER_2_FORWARDING_NO_PATH if unable to connect. + /// Else you will get ID_ROUTER_2_FORWARDING_ESTABLISHED + /// + /// On ID_ROUTER_2_FORWARDING_ESTABLISHED, EstablishRouting as follows: + /// + /// RakNet::BitStream bs(packet->data, packet->length, false); + /// bs.IgnoreBytes(sizeof(MessageID)); + /// RakNetGUID endpointGuid; + /// bs.Read(endpointGuid); + /// unsigned short sourceToDestPort; + /// bs.Read(sourceToDestPort); + /// char ipAddressString[32]; + /// packet->systemAddress.ToString(false, ipAddressString); + /// rakPeerInterface->EstablishRouting(ipAddressString, sourceToDestPort, 0,0); + /// + /// \note The SystemAddress for a connection should not be used - always use RakNetGuid as the address can change at any time. + /// When the address changes, you will get ID_ROUTER_2_REROUTED + void EstablishRouting(RakNetGUID endpointGuid); + + /// Set the maximum number of bidirectional connections this system will support + /// Defaults to 0 + void SetMaximumForwardingRequests(int max); + + /// For testing and debugging + void SetDebugInterface(Router2DebugInterface *_debugInterface); + + /// Get the pointer passed to SetDebugInterface() + Router2DebugInterface *GetDebugInterface(void) const; + + // -------------------------------------------------------------------------------------------- + // Packet handling functions + // -------------------------------------------------------------------------------------------- + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void Update(void); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason); + virtual void OnRakPeerShutdown(void); + + + enum Router2RequestStates + { + R2RS_REQUEST_STATE_QUERY_FORWARDING, + REQUEST_STATE_REQUEST_FORWARDING, + }; + + struct ConnectionRequestSystem + { + RakNetGUID guid; + int pingToEndpoint; + unsigned short usedForwardingEntries; + }; + + struct ConnnectRequest + { + ConnnectRequest(); + ~ConnnectRequest(); + + DataStructures::List connectionRequestSystems; + SimpleMutex connectionRequestSystemsMutex; + Router2RequestStates requestState; + RakNet::TimeMS pingTimeout; + RakNetGUID endpointGuid; + RakNetGUID lastRequestedForwardingSystem; + bool returnConnectionLostOnFailure; + unsigned int GetGuidIndex(RakNetGUID guid); + }; + + unsigned int GetConnectionRequestIndex(RakNetGUID endpointGuid); + + struct MiniPunchRequest + { + RakNetGUID endpointGuid; + SystemAddress endpointAddress; + bool gotReplyFromEndpoint; + RakNetGUID sourceGuid; + SystemAddress sourceAddress; + bool gotReplyFromSource; + RakNet::TimeMS timeout; + RakNet::TimeMS nextAction; + unsigned short forwardingPort; + SOCKET forwardingSocket; + }; + + struct ForwardedConnection + { + RakNetGUID endpointGuid; + RakNetGUID intermediaryGuid; + SystemAddress intermediaryAddress; + bool returnConnectionLostOnFailure; + bool weInitiatedForwarding; + }; + +protected: + + bool UpdateForwarding(ConnnectRequest* connectionRequest); + void RemoveConnectionRequest(unsigned int connectionRequestIndex); + void RequestForwarding(ConnnectRequest* connectionRequest); + void OnQueryForwarding(Packet *packet); + void OnQueryForwardingReply(Packet *packet); + void OnRequestForwarding(Packet *packet); + void OnRerouted(Packet *packet); + void OnMiniPunchReply(Packet *packet); + void OnMiniPunchReplyBounce(Packet *packet); + bool OnForwardingSuccess(Packet *packet); + int GetLargestPingAmongConnectedSystems(void) const; + void ReturnToUser(MessageID messageId, RakNetGUID endpointGuid, const SystemAddress &systemAddress, bool wasGeneratedLocally); + bool ConnectInternal(RakNetGUID endpointGuid, bool returnConnectionLostOnFailure); + + UDPForwarder *udpForwarder; + int maximumForwardingRequests; + SimpleMutex connectionRequestsMutex, miniPunchesInProgressMutex, forwardedConnectionListMutex; + DataStructures::List connectionRequests; + DataStructures::List miniPunchesInProgress; + // Forwarding we have initiated + DataStructures::List forwardedConnectionList; + + void ClearConnectionRequests(void); + void ClearMinipunches(void); + void ClearForwardedConnections(void); + void ClearAll(void); + int ReturnFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid); + void SendFailureOnCannotForward(RakNetGUID sourceGuid, RakNetGUID endpointGuid); + void SendForwardingSuccess(MessageID messageId, RakNetGUID sourceGuid, RakNetGUID endpointGuid, unsigned short sourceToDstPort); + void SendOOBFromRakNetPort(OutOfBandIdentifiers oob, BitStream *extraData, SystemAddress sa); + void SendOOBFromSpecifiedSocket(OutOfBandIdentifiers oob, SystemAddress sa, SOCKET socket); + void SendOOBMessages(MiniPunchRequest *mpr); + + Router2DebugInterface *debugInterface; + unsigned short socketFamily; +}; + +} + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/SHA1.cpp b/src/raknet/SHA1.cpp new file mode 100755 index 0000000..b53b72c --- /dev/null +++ b/src/raknet/SHA1.cpp @@ -0,0 +1,326 @@ +/** +* @brief SHA-1 Hash key computation +* +* 100% free public domain implementation of the SHA-1 +* algorithm by Dominik Reichl +* +* +* === Test Vectors (from FIPS PUB 180-1) === +* +* "abc" +* A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +* +* "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" +* 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +* +* A million repetitions of "a" +* 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + + +#include "SHA1.h" +#include + + +CSHA1::CSHA1() +{ + Reset(); +} + +CSHA1::~CSHA1() +{ + Reset(); +} + + +void CSHA1::Reset() +{ + // SHA1 initialization constants + m_state[ 0 ] = 0x67452301; + m_state[ 1 ] = 0xEFCDAB89; + m_state[ 2 ] = 0x98BADCFE; + m_state[ 3 ] = 0x10325476; + m_state[ 4 ] = 0xC3D2E1F0; + + m_count[ 0 ] = 0; + m_count[ 1 ] = 0; +} + +void CSHA1::Transform( unsigned int state[ 5 ], unsigned char buffer[ 64 ] ) +{ + unsigned int a = 0, b = 0, c = 0, d = 0, e = 0; + + SHA1_WORKSPACE_BLOCK* block; + // static unsigned char workspace[64]; + block = ( SHA1_WORKSPACE_BLOCK * ) workspace; + memcpy( block, buffer, 64 ); + + // Copy state[] to working vars + a = state[ 0 ]; + b = state[ 1 ]; + c = state[ 2 ]; + d = state[ 3 ]; + e = state[ 4 ]; + + // 4 rounds of 20 operations each. Loop unrolled. + R0( a, b, c, d, e, 0 ); + R0( e, a, b, c, d, 1 ); + R0( d, e, a, b, c, 2 ); + R0( c, d, e, a, b, 3 ); + R0( b, c, d, e, a, 4 ); + R0( a, b, c, d, e, 5 ); + R0( e, a, b, c, d, 6 ); + R0( d, e, a, b, c, 7 ); + R0( c, d, e, a, b, 8 ); + R0( b, c, d, e, a, 9 ); + R0( a, b, c, d, e, 10 ); + R0( e, a, b, c, d, 11 ); + R0( d, e, a, b, c, 12 ); + R0( c, d, e, a, b, 13 ); + R0( b, c, d, e, a, 14 ); + R0( a, b, c, d, e, 15 ); + R1( e, a, b, c, d, 16 ); + R1( d, e, a, b, c, 17 ); + R1( c, d, e, a, b, 18 ); + R1( b, c, d, e, a, 19 ); + R2( a, b, c, d, e, 20 ); + R2( e, a, b, c, d, 21 ); + R2( d, e, a, b, c, 22 ); + R2( c, d, e, a, b, 23 ); + R2( b, c, d, e, a, 24 ); + R2( a, b, c, d, e, 25 ); + R2( e, a, b, c, d, 26 ); + R2( d, e, a, b, c, 27 ); + R2( c, d, e, a, b, 28 ); + R2( b, c, d, e, a, 29 ); + R2( a, b, c, d, e, 30 ); + R2( e, a, b, c, d, 31 ); + R2( d, e, a, b, c, 32 ); + R2( c, d, e, a, b, 33 ); + R2( b, c, d, e, a, 34 ); + R2( a, b, c, d, e, 35 ); + R2( e, a, b, c, d, 36 ); + R2( d, e, a, b, c, 37 ); + R2( c, d, e, a, b, 38 ); + R2( b, c, d, e, a, 39 ); + R3( a, b, c, d, e, 40 ); + R3( e, a, b, c, d, 41 ); + R3( d, e, a, b, c, 42 ); + R3( c, d, e, a, b, 43 ); + R3( b, c, d, e, a, 44 ); + R3( a, b, c, d, e, 45 ); + R3( e, a, b, c, d, 46 ); + R3( d, e, a, b, c, 47 ); + R3( c, d, e, a, b, 48 ); + R3( b, c, d, e, a, 49 ); + R3( a, b, c, d, e, 50 ); + R3( e, a, b, c, d, 51 ); + R3( d, e, a, b, c, 52 ); + R3( c, d, e, a, b, 53 ); + R3( b, c, d, e, a, 54 ); + R3( a, b, c, d, e, 55 ); + R3( e, a, b, c, d, 56 ); + R3( d, e, a, b, c, 57 ); + R3( c, d, e, a, b, 58 ); + R3( b, c, d, e, a, 59 ); + R4( a, b, c, d, e, 60 ); + R4( e, a, b, c, d, 61 ); + R4( d, e, a, b, c, 62 ); + R4( c, d, e, a, b, 63 ); + R4( b, c, d, e, a, 64 ); + R4( a, b, c, d, e, 65 ); + R4( e, a, b, c, d, 66 ); + R4( d, e, a, b, c, 67 ); + R4( c, d, e, a, b, 68 ); + R4( b, c, d, e, a, 69 ); + R4( a, b, c, d, e, 70 ); + R4( e, a, b, c, d, 71 ); + R4( d, e, a, b, c, 72 ); + R4( c, d, e, a, b, 73 ); + R4( b, c, d, e, a, 74 ); + R4( a, b, c, d, e, 75 ); + R4( e, a, b, c, d, 76 ); + R4( d, e, a, b, c, 77 ); + R4( c, d, e, a, b, 78 ); + R4( b, c, d, e, a, 79 ); + + // Add the working vars back into state[] + state[ 0 ] += a; + state[ 1 ] += b; + state[ 2 ] += c; + state[ 3 ] += d; + state[ 4 ] += e; + + // Wipe variables + a = 0; + b = 0; + c = 0; + d = 0; + e = 0; +} + +// Use this function to hash in binary data and strings +void CSHA1::Update( unsigned char* data, unsigned int len ) +{ + unsigned int i = 0, j = 0; + + j = ( m_count[ 0 ] >> 3 ) & 63; + + if ( ( m_count[ 0 ] += len << 3 ) < ( len << 3 ) ) + m_count[ 1 ] ++; + + m_count[ 1 ] += ( len >> 29 ); + + if ( ( j + len ) > 63 ) + { + memcpy( &m_buffer[ j ], data, ( i = 64 - j ) ); + Transform( m_state, m_buffer ); + + for ( ; i + 63 < len; i += 64 ) + { + Transform( m_state, &data[ i ] ); + } + + j = 0; + } + + else + i = 0; + + memcpy( &m_buffer[ j ], &data[ i ], len - i ); +} + +// Hash in file contents +bool CSHA1::HashFile( char *szFileName ) +{ + unsigned long ulFileSize = 0, ulRest = 0, ulBlocks = 0; + unsigned long i = 0; + unsigned char uData[ MAX_FILE_READ_BUFFER ]; + FILE *fIn = NULL; + + if ( ( fIn = fopen( szFileName, "rb" ) ) == NULL ) + return ( false ); + + fseek( fIn, 0, SEEK_END ); + + ulFileSize = ftell( fIn ); + + fseek( fIn, 0, SEEK_SET ); + + // This is faster + div_t temp; + + temp = div( ulFileSize, MAX_FILE_READ_BUFFER ); + + ulRest = temp.rem; + + ulBlocks = temp.quot; + + // ulRest = ulFileSize % MAX_FILE_READ_BUFFER; + // ulBlocks = ulFileSize / MAX_FILE_READ_BUFFER; + + for ( i = 0; i < ulBlocks; i++ ) + { + fread( uData, 1, MAX_FILE_READ_BUFFER, fIn ); + Update( uData, MAX_FILE_READ_BUFFER ); + } + + if ( ulRest != 0 ) + { + fread( uData, 1, ulRest, fIn ); + Update( uData, ulRest ); + } + + fclose( fIn ); + fIn = NULL; + + return ( true ); +} + +void CSHA1::Final() +{ + unsigned int i = 0; + unsigned char finalcount[ 8 ] = + { + 0, 0, 0, 0, 0, 0, 0, 0 + }; + + for ( i = 0; i < 8; i++ ) + finalcount[ i ] = (unsigned char) ( ( m_count[ ( i >= 4 ? 0 : 1 ) ] + >> ( ( 3 - ( i & 3 ) ) * 8 ) ) & 255 ); // Endian independent + + Update( ( unsigned char * ) "\200", 1 ); + + while ( ( m_count[ 0 ] & 504 ) != 448 ) + Update( ( unsigned char * ) "\0", 1 ); + + Update( finalcount, 8 ); // Cause a SHA1Transform() + + for ( i = 0; i < 20; i++ ) + { + m_digest[ i ] = (unsigned char) ( ( m_state[ i >> 2 ] >> ( ( 3 - ( i & 3 ) ) * 8 ) ) & 255 ); + } + + // Wipe variables for security reasons + i = 0; + +// j = 0; + + memset( m_buffer, 0, 64 ); + + memset( m_state, 0, 20 ); + + memset( m_count, 0, 8 ); + + memset( finalcount, 0, 8 ); + + Transform( m_state, m_buffer ); +} + +// Get the final hash as a pre-formatted string +void CSHA1::ReportHash( char *szReport, unsigned char uReportType ) +{ + unsigned char i = 0; + char szTemp[ 4 ]; + + if ( uReportType == REPORT_HEX ) + { + sprintf( szTemp, "%02X", m_digest[ 0 ] ); + strcat( szReport, szTemp ); + + for ( i = 1; i < 20; i++ ) + { + sprintf( szTemp, " %02X", m_digest[ i ] ); + strcat( szReport, szTemp ); + } + } + + else + if ( uReportType == REPORT_DIGIT ) + { + sprintf( szTemp, "%u", m_digest[ 0 ] ); + strcat( szReport, szTemp ); + + for ( i = 1; i < 20; i++ ) + { + sprintf( szTemp, " %u", m_digest[ i ] ); + strcat( szReport, szTemp ); + } + } + + else + strcpy( szReport, "Error: Unknown report type!" ); +} + +// Get the raw message digest +void CSHA1::GetHash( unsigned char *uDest ) +{ + memcpy( uDest, m_digest, 20 ); +} + +// Get the raw message digest +// Added by Kevin to be quicker +unsigned char * CSHA1::GetHash( void ) const +{ + return ( unsigned char * ) m_digest; +} diff --git a/src/raknet/SHA1.h b/src/raknet/SHA1.h new file mode 100755 index 0000000..8437807 --- /dev/null +++ b/src/raknet/SHA1.h @@ -0,0 +1,87 @@ +/// \brief \b [Internal] SHA-1 computation class +/// +/// 100% free public domain implementation of the SHA-1 +/// algorithm by Dominik Reichl +/// +/// +/// === Test Vectors (from FIPS PUB 180-1) === +/// +/// "abc" +/// A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +/// +/// "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" +/// 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +/// +/// A million repetitions of "a" +/// 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F + +#ifndef ___SHA1_H___ +#define ___SHA1_H___ + +#include "RakMemoryOverride.h" +#include // Needed for file access + +#include // Needed for memset and memcpy + +#include // Needed for strcat and strcpy +#include "Export.h" + +#define MAX_FILE_READ_BUFFER 8000 + +#define SHA1_LENGTH 20 + +class RAK_DLL_EXPORT CSHA1 +{ + +public: + // Rotate x bits to the left + #define ROL32(value, bits) (((value)<<(bits))|((value)>>(32-(bits)))) + +#ifdef LITTLE_ENDIAN +#define SHABLK0(i) (block->l[i] = (ROL32(block->l[i],24) & 0xFF00FF00) \ + | (ROL32(block->l[i],8) & 0x00FF00FF)) +#else +#define SHABLK0(i) (block->l[i]) +#endif + +#define SHABLK(i) (block->l[i&15] = ROL32(block->l[(i+13)&15] ^ block->l[(i+8)&15] \ + ^ block->l[(i+2)&15] ^ block->l[i&15],1)) + + // SHA-1 rounds +#define R0(v,width,x,y,z,i) { z+=((width&(x^y))^y)+SHABLK0(i)+0x5A827999+ROL32(v,5); width=ROL32(width,30); } +#define R1(v,width,x,y,z,i) { z+=((width&(x^y))^y)+SHABLK(i)+0x5A827999+ROL32(v,5); width=ROL32(width,30); } +#define R2(v,width,x,y,z,i) { z+=(width^x^y)+SHABLK(i)+0x6ED9EBA1+ROL32(v,5); width=ROL32(width,30); } +#define R3(v,width,x,y,z,i) { z+=(((width|x)&y)|(width&x))+SHABLK(i)+0x8F1BBCDC+ROL32(v,5); width=ROL32(width,30); } +#define R4(v,width,x,y,z,i) { z+=(width^x^y)+SHABLK(i)+0xCA62C1D6+ROL32(v,5); width=ROL32(width,30); } + + typedef union { + unsigned char c[ 64 ]; + unsigned int l[ 16 ]; + } SHA1_WORKSPACE_BLOCK; + /* Two different formats for ReportHash(...) + */ + enum { REPORT_HEX = 0, + REPORT_DIGIT = 1}; + + CSHA1(); + virtual ~CSHA1(); + + unsigned int m_state[ 5 ]; + unsigned int m_count[ 2 ]; + unsigned char m_buffer[ 64 ]; + unsigned char m_digest[ 20 ]; + void Reset(); + void Update( unsigned char* data, unsigned int len ); + bool HashFile( char *szFileName ); + void Final(); + void ReportHash( char *szReport, unsigned char uReportType = REPORT_HEX ); + void GetHash( unsigned char *uDest ); + unsigned char * GetHash( void ) const; + +private: + void Transform( unsigned int state[ 5 ], unsigned char buffer[ 64 ] ); + unsigned char workspace[ 64 ]; +}; + +#endif // ___SHA1_H___ + diff --git a/src/raknet/SecureHandshake.cpp b/src/raknet/SecureHandshake.cpp new file mode 100755 index 0000000..e3b3c71 --- /dev/null +++ b/src/raknet/SecureHandshake.cpp @@ -0,0 +1,54 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" + +#if LIBCAT_SECURITY==1 + +// If building a RakNet DLL, be sure to tweak the CAT_EXPORT macro meaning +#if !defined(_RAKNET_LIB) && defined(_RAKNET_DLL) +# define CAT_BUILD_DLL +#else +# define CAT_NEUTER_EXPORT +#endif + +#include "cat/src/port/EndianNeutral.cpp" +#include "cat/src/port/AlignedAlloc.cpp" +#include "cat/src/time/Clock.cpp" +#include "cat/src/threads/Mutex.cpp" +#include "cat/src/threads/Thread.cpp" +#include "cat/src/threads/WaitableFlag.cpp" +#include "cat/src/hash/MurmurHash2.cpp" +#include "cat/src/lang/Strings.cpp" + +#include "cat/src/math/BigRTL.cpp" +#include "cat/src/math/BigPseudoMersenne.cpp" +#include "cat/src/math/BigTwistedEdwards.cpp" + +#include "cat/src/crypt/SecureCompare.cpp" +#include "cat/src/crypt/cookie/CookieJar.cpp" +#include "cat/src/crypt/hash/HMAC_MD5.cpp" +#include "cat/src/crypt/privatekey/ChaCha.cpp" +#include "cat/src/crypt/hash/Skein.cpp" +#include "cat/src/crypt/hash/Skein256.cpp" +#include "cat/src/crypt/hash/Skein512.cpp" +#include "cat/src/crypt/pass/Passwords.cpp" + +#include "cat/src/crypt/rand/EntropyWindows.cpp" +#include "cat/src/crypt/rand/EntropyLinux.cpp" +#include "cat/src/crypt/rand/EntropyWindowsCE.cpp" +#include "cat/src/crypt/rand/EntropyGeneric.cpp" +#include "cat/src/crypt/rand/Fortuna.cpp" + +#include "cat/src/crypt/tunnel/KeyAgreement.cpp" +#include "cat/src/crypt/tunnel/AuthenticatedEncryption.cpp" +#include "cat/src/crypt/tunnel/KeyAgreementInitiator.cpp" +#include "cat/src/crypt/tunnel/KeyAgreementResponder.cpp" +#include "cat/src/crypt/tunnel/KeyMaker.cpp" + +#include "cat/src/crypt/tunnel/EasyHandshake.cpp" + +#endif // LIBCAT_SECURITY diff --git a/src/raknet/SecureHandshake.h b/src/raknet/SecureHandshake.h new file mode 100755 index 0000000..b289ff5 --- /dev/null +++ b/src/raknet/SecureHandshake.h @@ -0,0 +1,25 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#ifndef SECURE_HANDSHAKE_H +#define SECURE_HANDSHAKE_H + +#include "NativeFeatureIncludes.h" + +#if LIBCAT_SECURITY==1 + +// If building a RakNet DLL, be sure to tweak the CAT_EXPORT macro meaning +#if !defined(_RAKNET_LIB) && defined(_RAKNET_DLL) +# define CAT_BUILD_DLL +#else +# define CAT_NEUTER_EXPORT +#endif + +#include "cat/AllTunnel.hpp" + +#endif // LIBCAT_SECURITY + +#endif // SECURE_HANDSHAKE_H diff --git a/src/raknet/SendToThread.cpp b/src/raknet/SendToThread.cpp new file mode 100755 index 0000000..0c3d313 --- /dev/null +++ b/src/raknet/SendToThread.cpp @@ -0,0 +1,77 @@ +#include "SendToThread.h" +#ifdef USE_THREADED_SEND +#include "RakThread.h" +#include "InternalPacket.h" +#include "GetTime.h" + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 +#include "CCRakNetUDT.h" +#else +#include "CCRakNetSlidingWindow.h" +#endif + +using namespace RakNet; + +int SendToThread::refCount=0; +DataStructures::ThreadsafeAllocatingQueue SendToThread::objectQueue; +ThreadPool SendToThread::threadPool; + +SendToThread::SendToThreadBlock* SendToWorkerThread(SendToThread::SendToThreadBlock* input, bool *returnOutput, void* perThreadData) +{ + (void) perThreadData; + *returnOutput=false; +// RakNet::TimeUS *mostRecentTime=(RakNet::TimeUS *)input->data; +// *mostRecentTime=RakNet::GetTimeUS(); + SocketLayer::SendTo(input->s, input->data, input->dataWriteOffset, input->systemAddress, input->remotePortRakNetWasStartedOn_PS3, input->extraSocketOptions, _FILE_AND_LINE_); + SendToThread::objectQueue.Push(input); + return 0; +} +SendToThread::SendToThread() +{ +} +SendToThread::~SendToThread() +{ + +} +void SendToThread::AddRef(void) +{ + if (++refCount==1) + { + threadPool.StartThreads(1,0); + } +} +void SendToThread::Deref(void) +{ + if (refCount>0) + { + if (--refCount==0) + { + threadPool.StopThreads(); + RakAssert(threadPool.NumThreadsWorking()==0); + + unsigned i; + SendToThreadBlock* info; + for (i=0; i < threadPool.InputSize(); i++) + { + info = threadPool.GetInputAtIndex(i); + objectQueue.Push(info); + } + threadPool.ClearInput(); + objectQueue.Clear(_FILE_AND_LINE_); + } + } +} +SendToThread::SendToThreadBlock* SendToThread::AllocateBlock(void) +{ + SendToThread::SendToThreadBlock *b; + b=objectQueue.Pop(); + if (b==0) + b=objectQueue.Allocate(_FILE_AND_LINE_); + return b; +} +void SendToThread::ProcessBlock(SendToThread::SendToThreadBlock* threadedSend) +{ + RakAssert(threadedSend->dataWriteOffset>0 && threadedSend->dataWriteOffset<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); + threadPool.AddInput(SendToWorkerThread,threadedSend); +} +#endif diff --git a/src/raknet/SendToThread.h b/src/raknet/SendToThread.h new file mode 100755 index 0000000..676a5f4 --- /dev/null +++ b/src/raknet/SendToThread.h @@ -0,0 +1,47 @@ +#ifndef __SENDTO_THREAD +#define __SENDTO_THREAD + +#include "RakNetDefines.h" + +#ifdef USE_THREADED_SEND + +#include "InternalPacket.h" +#include "SocketLayer.h" +#include "DS_ThreadsafeAllocatingQueue.h" +#include "ThreadPool.h" + +namespace RakNet +{ +class SendToThread +{ +public: + SendToThread(); + ~SendToThread(); + + struct SendToThreadBlock + { + SOCKET s; + SystemAddress systemAddress; + unsigned short remotePortRakNetWasStartedOn_PS3; + unsigned int extraSocketOptions; + char data[MAXIMUM_MTU_SIZE]; + unsigned short dataWriteOffset; + }; + + static SendToThreadBlock* AllocateBlock(void); + static void ProcessBlock(SendToThreadBlock* threadedSend); + + static void AddRef(void); + static void Deref(void); + static DataStructures::ThreadsafeAllocatingQueue objectQueue; +protected: + static int refCount; + static ThreadPool threadPool; + +}; +} + + +#endif + +#endif diff --git a/src/raknet/SignaledEvent.cpp b/src/raknet/SignaledEvent.cpp new file mode 100755 index 0000000..6e0ca07 --- /dev/null +++ b/src/raknet/SignaledEvent.cpp @@ -0,0 +1,245 @@ +#include "SignaledEvent.h" +#include "RakAssert.h" +#include "RakSleep.h" + +#if defined(__GNUC__) +#include +#include +#endif + +using namespace RakNet; + + + + + +SignaledEvent::SignaledEvent() +{ +#ifdef _WIN32 + eventList=INVALID_HANDLE_VALUE; + + +#else + isSignaled=false; +#endif +} +SignaledEvent::~SignaledEvent() +{ + // Intentionally do not close event, so it doesn't close twice on linux +} + +void SignaledEvent::InitEvent(void) +{ +#ifdef _WIN32 + eventList=CreateEvent(0, false, false, 0); + + + + + + + + + +#else + +#if !defined(ANDROID) + pthread_condattr_init( &condAttr ); + pthread_cond_init(&eventList, &condAttr); +#else + pthread_cond_init(&eventList, 0); +#endif + pthread_mutexattr_init( &mutexAttr ); + pthread_mutex_init(&hMutex, &mutexAttr); +#endif +} + +void SignaledEvent::CloseEvent(void) +{ +#ifdef _WIN32 + if (eventList!=INVALID_HANDLE_VALUE) + { + CloseHandle(eventList); + eventList=INVALID_HANDLE_VALUE; + } + + + + + + + + + +#else + pthread_cond_destroy(&eventList); + pthread_mutex_destroy(&hMutex); +#if !defined(ANDROID) + pthread_condattr_destroy( &condAttr ); +#endif + pthread_mutexattr_destroy( &mutexAttr ); +#endif +} + +void SignaledEvent::SetEvent(void) +{ +#ifdef _WIN32 + ::SetEvent(eventList); + + + + + + + + + + +#else + // Different from SetEvent which stays signaled. + // We have to record manually that the event was signaled + isSignaledMutex.Lock(); + isSignaled=true; + isSignaledMutex.Unlock(); + + // Unblock waiting threads + pthread_cond_broadcast(&eventList); +#endif +} + +void SignaledEvent::WaitOnEvent(int timeoutMs) +{ +#ifdef _WIN32 +// WaitForMultipleObjects( +// 2, +// eventList, +// false, +// timeoutMs); + WaitForSingleObject(eventList,timeoutMs); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#else + + // If was previously set signaled, just unset and return + isSignaledMutex.Lock(); + if (isSignaled==true) + { + isSignaled=false; + isSignaledMutex.Unlock(); + return; + } + isSignaledMutex.Unlock(); + + + struct timespec ts; + + // Else wait for SetEvent to be called + + + + + + + + + + + + + + + int rc; + struct timeval tp; + rc = gettimeofday(&tp, NULL); + ts.tv_sec = tp.tv_sec; + ts.tv_nsec = tp.tv_usec * 1000; + + + while (timeoutMs > 30) + { + // Wait 30 milliseconds for the signal, then check again. + // This is in case we missed the signal between the top of this function and pthread_cond_timedwait, or after the end of the loop and pthread_cond_timedwait + ts.tv_nsec += 30*1000000; + if (ts.tv_nsec >= 1000000000) + { + ts.tv_nsec -= 1000000000; + ts.tv_sec++; + } + + // [SBC] added mutex lock/unlock around cond_timedwait. + // this prevents airplay from generating a whole much of errors. + // not sure how this works on other platforms since according to + // the docs you are suppost to hold the lock before you wait + // on the cond. + pthread_mutex_lock(&hMutex); + pthread_cond_timedwait(&eventList, &hMutex, &ts); + pthread_mutex_unlock(&hMutex); + + timeoutMs-=30; + + isSignaledMutex.Lock(); + if (isSignaled==true) + { + isSignaled=false; + isSignaledMutex.Unlock(); + return; + } + isSignaledMutex.Unlock(); + } + + // Wait the remaining time, and turn off the signal in case it was set + ts.tv_nsec += timeoutMs*1000000; + if (ts.tv_nsec >= 1000000000) + { + ts.tv_nsec -= 1000000000; + ts.tv_sec++; + } + + pthread_mutex_lock(&hMutex); + pthread_cond_timedwait(&eventList, &hMutex, &ts); + pthread_mutex_unlock(&hMutex); + + isSignaledMutex.Lock(); + isSignaled=false; + isSignaledMutex.Unlock(); +#endif +} diff --git a/src/raknet/SignaledEvent.h b/src/raknet/SignaledEvent.h new file mode 100755 index 0000000..b744b40 --- /dev/null +++ b/src/raknet/SignaledEvent.h @@ -0,0 +1,59 @@ +#ifndef __SIGNALED_EVENT_H +#define __SIGNALED_EVENT_H + + + +#if defined(_WIN32) +#include + + + +#else + #include + #include + #include "SimpleMutex.h" + + + + +#endif + +#include "Export.h" + +namespace RakNet +{ + +class RAK_DLL_EXPORT SignaledEvent +{ +public: + SignaledEvent(); + ~SignaledEvent(); + + void InitEvent(void); + void CloseEvent(void); + void SetEvent(void); + void WaitOnEvent(int timeoutMs); + +protected: +#ifdef _WIN32 + HANDLE eventList; + + + + + +#else + SimpleMutex isSignaledMutex; + bool isSignaled; +#if !defined(ANDROID) + pthread_condattr_t condAttr; +#endif + pthread_cond_t eventList; + pthread_mutex_t hMutex; + pthread_mutexattr_t mutexAttr; +#endif +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/SimpleMutex.cpp b/src/raknet/SimpleMutex.cpp new file mode 100755 index 0000000..0f5eae7 --- /dev/null +++ b/src/raknet/SimpleMutex.cpp @@ -0,0 +1,181 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "SimpleMutex.h" +#include "RakAssert.h" + +using namespace RakNet; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SimpleMutex::SimpleMutex() //: isInitialized(false) +{ + + + + + + + + // Prior implementation of Initializing in Lock() was not threadsafe + Init(); +} + +SimpleMutex::~SimpleMutex() +{ +// if (isInitialized==false) +// return; +#ifdef _WIN32 + // CloseHandle(hMutex); + DeleteCriticalSection(&criticalSection); + + + + + + +#else + pthread_mutex_destroy(&hMutex); +#endif + + + + + + + +} + +#ifdef _WIN32 +#ifdef _DEBUG +#include +#endif +#endif + +void SimpleMutex::Lock(void) +{ +// if (isInitialized==false) +// Init(); + +#ifdef _WIN32 + /* + DWORD d = WaitForSingleObject(hMutex, INFINITE); + #ifdef _DEBUG + if (d==WAIT_FAILED) + { + LPVOID messageBuffer; + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &messageBuffer, + 0, + NULL + ); + // Process any inserts in messageBuffer. + // ... + // Display the string. + //MessageBox( NULL, (LPCTSTR)messageBuffer, "Error", MB_OK | MB_ICONINFORMATION ); + RAKNET_DEBUG_PRINTF("SimpleMutex error: %s", messageBuffer); + // Free the buffer. + LocalFree( messageBuffer ); + + } + + RakAssert(d==WAIT_OBJECT_0); + */ + EnterCriticalSection(&criticalSection); + + + + + + +#else + int error = pthread_mutex_lock(&hMutex); + (void) error; + RakAssert(error==0); +#endif +} + +void SimpleMutex::Unlock(void) +{ +// if (isInitialized==false) +// return; +#ifdef _WIN32 + // ReleaseMutex(hMutex); + LeaveCriticalSection(&criticalSection); + + + + + + +#else + int error = pthread_mutex_unlock(&hMutex); + (void) error; + RakAssert(error==0); +#endif +} + +void SimpleMutex::Init(void) +{ +#ifdef _WIN32 + // hMutex = CreateMutex(NULL, FALSE, 0); + // RakAssert(hMutex); + InitializeCriticalSection(&criticalSection); + + + + + + + + +#else + int error = pthread_mutex_init(&hMutex, 0); + (void) error; + RakAssert(error==0); +#endif +// isInitialized=true; +} diff --git a/src/raknet/SimpleMutex.h b/src/raknet/SimpleMutex.h new file mode 100755 index 0000000..cf28355 --- /dev/null +++ b/src/raknet/SimpleMutex.h @@ -0,0 +1,70 @@ +/// \file +/// \brief \b [Internal] Encapsulates a mutex +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __SIMPLE_MUTEX_H +#define __SIMPLE_MUTEX_H + +#include "RakMemoryOverride.h" + + +#if defined(_WIN32) +#include "WindowsIncludes.h" + + +#else +#include +#include +#endif +#include "Export.h" + +namespace RakNet +{ + +/// \brief An easy to use mutex. +/// +/// I wrote this because the version that comes with Windows is too complicated and requires too much code to use. +/// @remark Previously I used this everywhere, and in fact for a year or two RakNet was totally threadsafe. While doing profiling, I saw that this function was incredibly slow compared to the blazing performance of everything else, so switched to single producer / consumer everywhere. Now the user thread of RakNet is not threadsafe, but it's 100X faster than before. +class RAK_DLL_EXPORT SimpleMutex +{ +public: + + // Constructor + SimpleMutex(); + + // Destructor + ~SimpleMutex(); + + // Locks the mutex. Slow! + void Lock(void); + + // Unlocks the mutex. + void Unlock(void); + + + + + + + +private: + void Init(void); +#ifdef _WIN32 + CRITICAL_SECTION criticalSection; /// Docs say this is faster than a mutex for single process access + + +#else + pthread_mutex_t hMutex; +#endif + // Not threadsafe + // bool isInitialized; +}; + +} // namespace RakNet + +#endif + diff --git a/src/raknet/SimpleTCPServer.h b/src/raknet/SimpleTCPServer.h new file mode 100755 index 0000000..1181cd0 --- /dev/null +++ b/src/raknet/SimpleTCPServer.h @@ -0,0 +1 @@ +// Eraseme \ No newline at end of file diff --git a/src/raknet/SingleProducerConsumer.h b/src/raknet/SingleProducerConsumer.h new file mode 100755 index 0000000..8897e40 --- /dev/null +++ b/src/raknet/SingleProducerConsumer.h @@ -0,0 +1,259 @@ +/// \file +/// \brief \b [Internal] Passes queued data between threads using a circular buffer with read and write pointers +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __SINGLE_PRODUCER_CONSUMER_H +#define __SINGLE_PRODUCER_CONSUMER_H + +#include "RakAssert.h" + +static const int MINIMUM_LIST_SIZE=8; + +#include "RakMemoryOverride.h" +#include "Export.h" + +/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures +/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish. +namespace DataStructures +{ + /// \brief A single producer consumer implementation without critical sections. + template + class RAK_DLL_EXPORT SingleProducerConsumer + { + public: + // Constructor + SingleProducerConsumer(); + + // Destructor + ~SingleProducerConsumer(); + + /// WriteLock must be immediately followed by WriteUnlock. These two functions must be called in the same thread. + /// \return A pointer to a block of data you can write to. + SingleProducerConsumerType* WriteLock(void); + + /// Call if you don't want to write to a block of data from WriteLock() after all. + /// Cancelling locks cancels all locks back up to the data passed. So if you lock twice and cancel using the first lock, the second lock is ignored + /// \param[in] cancelToLocation Which WriteLock() to cancel. + void CancelWriteLock(SingleProducerConsumerType* cancelToLocation); + + /// Call when you are done writing to a block of memory returned by WriteLock() + void WriteUnlock(void); + + /// ReadLock must be immediately followed by ReadUnlock. These two functions must be called in the same thread. + /// \retval 0 No data is availble to read + /// \retval Non-zero The data previously written to, in another thread, by WriteLock followed by WriteUnlock. + SingleProducerConsumerType* ReadLock(void); + + // Cancelling locks cancels all locks back up to the data passed. So if you lock twice and cancel using the first lock, the second lock is ignored + /// param[in] Which ReadLock() to cancel. + void CancelReadLock(SingleProducerConsumerType* cancelToLocation); + + /// Signals that we are done reading the the data from the least recent call of ReadLock. + /// At this point that pointer is no longer valid, and should no longer be read. + void ReadUnlock(void); + + /// Clear is not thread-safe and none of the lock or unlock functions should be called while it is running. + void Clear(void); + + /// This function will estimate how many elements are waiting to be read. It's threadsafe enough that the value returned is stable, but not threadsafe enough to give accurate results. + /// \return An ESTIMATE of how many data elements are waiting to be read + int Size(void) const; + + /// Make sure that the pointer we done reading for the call to ReadUnlock is the right pointer. + /// param[in] A previous pointer returned by ReadLock() + bool CheckReadUnlockOrder(const SingleProducerConsumerType* data) const; + + /// Returns if ReadUnlock was called before ReadLock + /// \return If the read is locked + bool ReadIsLocked(void) const; + + private: + struct DataPlusPtr + { + DataPlusPtr () {readyToRead=false;} + SingleProducerConsumerType object; + + // Ready to read is so we can use an equality boolean comparison, in case the writePointer var is trashed while context switching. + volatile bool readyToRead; + volatile DataPlusPtr *next; + }; + volatile DataPlusPtr *readAheadPointer; + volatile DataPlusPtr *writeAheadPointer; + volatile DataPlusPtr *readPointer; + volatile DataPlusPtr *writePointer; + unsigned readCount, writeCount; + }; + + template + SingleProducerConsumer::SingleProducerConsumer() + { + // Preallocate + readPointer = RakNet::OP_NEW( _FILE_AND_LINE_ ); + writePointer=readPointer; + readPointer->next = RakNet::OP_NEW( _FILE_AND_LINE_ ); + int listSize; +#ifdef _DEBUG + RakAssert(MINIMUM_LIST_SIZE>=3); +#endif + for (listSize=2; listSize < MINIMUM_LIST_SIZE; listSize++) + { + readPointer=readPointer->next; + readPointer->next = RakNet::OP_NEW( _FILE_AND_LINE_ ); + } + readPointer->next->next=writePointer; // last to next = start + readPointer=writePointer; + readAheadPointer=readPointer; + writeAheadPointer=writePointer; + readCount=writeCount=0; + } + + template + SingleProducerConsumer::~SingleProducerConsumer() + { + volatile DataPlusPtr *next; + readPointer=writeAheadPointer->next; + while (readPointer!=writeAheadPointer) + { + next=readPointer->next; + RakNet::OP_DELETE((char*) readPointer, _FILE_AND_LINE_); + readPointer=next; + } + RakNet::OP_DELETE((char*) readPointer, _FILE_AND_LINE_); + } + + template + SingleProducerConsumerType* SingleProducerConsumer::WriteLock( void ) + { + if (writeAheadPointer->next==readPointer || + writeAheadPointer->next->readyToRead==true) + { + volatile DataPlusPtr *originalNext=writeAheadPointer->next; + writeAheadPointer->next=RakNet::OP_NEW(_FILE_AND_LINE_); + RakAssert(writeAheadPointer->next); + writeAheadPointer->next->next=originalNext; + } + + volatile DataPlusPtr *last; + last=writeAheadPointer; + writeAheadPointer=writeAheadPointer->next; + + return (SingleProducerConsumerType*) last; + } + + template + void SingleProducerConsumer::CancelWriteLock( SingleProducerConsumerType* cancelToLocation ) + { + writeAheadPointer=(DataPlusPtr *)cancelToLocation; + } + + template + void SingleProducerConsumer::WriteUnlock( void ) + { + // DataPlusPtr *dataContainer = (DataPlusPtr *)structure; + +#ifdef _DEBUG + RakAssert(writePointer->next!=readPointer); + RakAssert(writePointer!=writeAheadPointer); +#endif + + writeCount++; + // User is done with the data, allow send by updating the write pointer + writePointer->readyToRead=true; + writePointer=writePointer->next; + } + + template + SingleProducerConsumerType* SingleProducerConsumer::ReadLock( void ) + { + if (readAheadPointer==writePointer || + readAheadPointer->readyToRead==false) + { + return 0; + } + + volatile DataPlusPtr *last; + last=readAheadPointer; + readAheadPointer=readAheadPointer->next; + return (SingleProducerConsumerType*)last; + } + + template + void SingleProducerConsumer::CancelReadLock( SingleProducerConsumerType* cancelToLocation ) + { +#ifdef _DEBUG + RakAssert(readPointer!=writePointer); +#endif + readAheadPointer=(DataPlusPtr *)cancelToLocation; + } + + template + void SingleProducerConsumer::ReadUnlock( void ) + { +#ifdef _DEBUG + RakAssert(readAheadPointer!=readPointer); // If hits, then called ReadUnlock before ReadLock + RakAssert(readPointer!=writePointer); // If hits, then called ReadUnlock when Read returns 0 +#endif + readCount++; + + // Allow writes to this memory block + readPointer->readyToRead=false; + readPointer=readPointer->next; + } + + template + void SingleProducerConsumer::Clear( void ) + { + // Shrink the list down to MINIMUM_LIST_SIZE elements + volatile DataPlusPtr *next; + writePointer=readPointer->next; + + int listSize=1; + next=readPointer->next; + while (next!=readPointer) + { + listSize++; + next=next->next; + } + + while (listSize-- > MINIMUM_LIST_SIZE) + { + next=writePointer->next; +#ifdef _DEBUG + RakAssert(writePointer!=readPointer); +#endif + RakNet::OP_DELETE((char*) writePointer, _FILE_AND_LINE_); + writePointer=next; + } + + readPointer->next=writePointer; + writePointer=readPointer; + readAheadPointer=readPointer; + writeAheadPointer=writePointer; + readCount=writeCount=0; + } + + template + int SingleProducerConsumer::Size( void ) const + { + return writeCount-readCount; + } + + template + bool SingleProducerConsumer::CheckReadUnlockOrder(const SingleProducerConsumerType* data) const + { + return const_cast(&readPointer->object) == data; + } + + + template + bool SingleProducerConsumer::ReadIsLocked(void) const + { + return readAheadPointer!=readPointer; + } +} + +#endif diff --git a/src/raknet/SocketDefines.h b/src/raknet/SocketDefines.h new file mode 100755 index 0000000..f6548ab --- /dev/null +++ b/src/raknet/SocketDefines.h @@ -0,0 +1,69 @@ +#ifndef __SOCKET_DEFINES_H +#define __SOCKET_DEFINES_H + +/// Internal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #if defined(_WIN32) + #define closesocket__ closesocket + #define select__ select + #else + #define closesocket__ close + #define select__ select + #endif +#define accept__ accept +#define connect__ connect +#define socket__ socket +#define bind__ bind +#define getsockname__ getsockname +#define getsockopt__ getsockopt +#define inet_addr__ inet_addr +#define ioctlsocket__ ioctlsocket +#define listen__ listen +#define recv__ recv +#define recvfrom__ recvfrom +#define sendto__ sendto +#define send__ send +#define setsockopt__ setsockopt +#define shutdown__ shutdown +#define WSASendTo__ WSASendTo + + +#endif diff --git a/src/raknet/SocketIncludes.h b/src/raknet/SocketIncludes.h new file mode 100755 index 0000000..3c530c5 --- /dev/null +++ b/src/raknet/SocketIncludes.h @@ -0,0 +1,31 @@ +// All this crap just to include type SOCKET + + + + + + + + + + +#if defined(_WIN32) +typedef int socklen_t; +// IP_DONTFRAGMENT is different between winsock 1 and winsock 2. Therefore, Winsock2.h must be linked againt Ws2_32.lib +// winsock.h must be linked against WSock32.lib. If these two are mixed up the flag won't work correctly +#include +#else +#define closesocket close +#include +#include +#include +#include +#include +#include +#include +#include +#define INVALID_SOCKET -1 +//#include "RakMemoryOverride.h" +/// Unix/Linux uses ints for sockets +typedef int SOCKET; +#endif diff --git a/src/raknet/SocketLayer.cpp b/src/raknet/SocketLayer.cpp new file mode 100755 index 0000000..ae11076 --- /dev/null +++ b/src/raknet/SocketLayer.cpp @@ -0,0 +1,1851 @@ +/// \file +/// \brief SocketLayer class implementation +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "SocketLayer.h" +#include "RakAssert.h" +#include "RakNetTypes.h" +#include "GetTime.h" +#include "LinuxStrings.h" +#include "SocketDefines.h" + +using namespace RakNet; + +#if USE_SLIDING_WINDOW_CONGESTION_CONTROL!=1 +#include "CCRakNetUDT.h" +#else +#include "CCRakNetSlidingWindow.h" +#endif + +SocketLayerOverride *SocketLayer::slo=0; + +#ifdef _WIN32 +#else +#include // memcpy +#include +#include +#include +#include // error numbers +#include // RAKNET_DEBUG_PRINTF +#if !defined(ANDROID) +#include +#endif +#include +#include +#include +#include +#include + +#endif + + + + + + + + + + + + + +#if defined(_WIN32) +#include "WSAStartupSingleton.h" +#include // 'IP_DONTFRAGMENT' 'IP_TTL' +#elif defined SN_TARGET_PSP2 +#else +#include +#endif + +#include "RakSleep.h" +#include +#include "Itoa.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +namespace RakNet +{ + extern void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNet::TimeUS timeRead ); + extern void ProcessNetworkPacket( const SystemAddress systemAddress, const char *data, const int length, RakPeer *rakPeer, RakNetSmartPtr rakNetSocket, RakNet::TimeUS timeRead ); +} + +#ifdef _DEBUG +#include +#endif + +// http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#ip4to6 +// http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#getaddrinfo + +#if RAKNET_SUPPORT_IPV6==1 +void PrepareAddrInfoHints(addrinfo *hints) +{ + memset(hints, 0, sizeof (addrinfo)); // make sure the struct is empty + hints->ai_socktype = SOCK_DGRAM; // UDP sockets + hints->ai_flags = AI_PASSIVE; // fill in my IP for me +} +#endif + +// Frogwares: Define this +// #define DEBUG_SENDTO_SPIKES + +bool SocketLayer::IsPortInUse_Old(unsigned short port, const char *hostAddress) +{ + SOCKET listenSocket; + sockaddr_in listenerSocketAddress; + memset(&listenerSocketAddress,0,sizeof(sockaddr_in)); + // Listen on our designated Port# + listenerSocketAddress.sin_port = htons( port ); + listenSocket = socket__( AF_INET, SOCK_DGRAM, 0 ); + if ( listenSocket == (SOCKET) -1 ) + return true; + // bind our name to the socket + // Fill in the rest of the address structure + listenerSocketAddress.sin_family = AF_INET; + + if ( hostAddress && hostAddress[0] ) + { + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( hostAddress ); + + } + else + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + + + + + + + + int ret = bind__( listenSocket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + closesocket__(listenSocket); + + + + + // #if defined(_DEBUG) + // if (ret == -1) + // perror("Failed to bind to address:"); + // #endif + return ret <= -1; + +} +bool SocketLayer::IsSocketFamilySupported(const char *hostAddress, unsigned short socketFamily) +{ + (void) hostAddress; + (void) socketFamily; + +#if RAKNET_SUPPORT_IPV6!=1 + return socketFamily==AF_INET; +#else + struct addrinfo hints; +#if RAKNET_SUPPORT_IPV6==1 + PrepareAddrInfoHints(&hints); +#endif + hints.ai_family = socketFamily; + struct addrinfo *servinfo=0; + int error; + // On Ubuntu, "" returns "No address associated with hostname" while 0 works. + if (hostAddress && + (_stricmp(hostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0 || hostAddress[0]==0)) + { + getaddrinfo(0, "0", &hints, &servinfo); + } + else + { + getaddrinfo(hostAddress, "0", &hints, &servinfo); + } + + + (void) error; + if (servinfo) + { + freeaddrinfo(servinfo); + return true; + } + else + { +#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(_WIN32) + printf("IsSocketFamilySupported failed. hostAddress=%s. %s\n", hostAddress, gai_strerror(error)); +#endif + } + return false; +#endif +} +bool SocketLayer::IsPortInUse(unsigned short port, const char *hostAddress, unsigned short socketFamily) +{ +#if RAKNET_SUPPORT_IPV6!=1 + (void) socketFamily; + return IsPortInUse_Old(port, hostAddress); +#else + SOCKET listenSocket; + struct addrinfo hints; + struct addrinfo *servinfo=0, *aip; // will point to the results + PrepareAddrInfoHints(&hints); + hints.ai_family = socketFamily; + char portStr[32]; + Itoa(port,portStr,10); + + // On Ubuntu, "" returns "No address associated with hostname" while 0 works. + if (hostAddress && + (_stricmp(hostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0 || hostAddress[0]==0)) + { + getaddrinfo(0, portStr, &hints, &servinfo); + } + else + { + getaddrinfo(hostAddress, portStr, &hints, &servinfo); + } + + // Try all returned addresses until one works + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + listenSocket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (listenSocket != -1) + { + int ret = bind__( listenSocket, aip->ai_addr, (int) aip->ai_addrlen ); + closesocket__(listenSocket); + if (ret>=0) + { + freeaddrinfo(servinfo); // free the linked-list + return false; + } + } + + // If the user didn't specify which host address, then only apply the first + if (hostAddress==0 || hostAddress[0]==0) + break; + } + + freeaddrinfo(servinfo); // free the linked-list + return true; +#endif // #if RAKNET_SUPPORT_IPV6!=1 +} +void SocketLayer::SetDoNotFragment( SOCKET listenSocket, int opt, int IPPROTO ) +{ +#if defined(IP_DONTFRAGMENT ) + +#if defined(_WIN32) && defined(_DEBUG) + // If this assert hit you improperly linked against WSock32.h + RakAssert(IP_DONTFRAGMENT==14); +#endif + + if ( setsockopt__( listenSocket, IPPROTO, IP_DONTFRAGMENT, ( char * ) & opt, sizeof ( opt ) ) == -1 ) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // I see this hit on XP with IPV6 for some reason + RAKNET_DEBUG_PRINTF( "Warning: setsockopt__(IP_DONTFRAGMENT) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + LocalFree( messageBuffer ); +#endif + } +#endif +} + +void SocketLayer::SetNonBlocking( SOCKET listenSocket) +{ +#ifdef _WIN32 + unsigned long nonBlocking = 1; + ioctlsocket__( listenSocket, FIONBIO, &nonBlocking ); + + + +#else + int flags = fcntl(listenSocket, F_GETFL, 0); + fcntl(listenSocket, F_SETFL, flags | O_NONBLOCK); +#endif +} + +void SocketLayer::SetSocketOptions( SOCKET listenSocket) +{ + int sock_opt = 1; + // // On Vista, can get WSAEACCESS (10013) + /* + if ( setsockopt__( listenSocket, SOL_SOCKET, SO_REUSEADDR, ( char * ) & sock_opt, sizeof ( sock_opt ) ) == -1 ) + { + #if defined(_WIN32) && !defined(_XBOX) && defined(_DEBUG) && !defined(X360) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "setsockopt__(SO_REUSEADDR) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); + #endif + } + */ + + // This doubles the max throughput rate + sock_opt=1024*256; + setsockopt__(listenSocket, SOL_SOCKET, SO_RCVBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + // Immediate hard close. Don't linger the socket, or recreating the socket quickly on Vista fails. + // Fail with voice and xbox + + sock_opt=0; + setsockopt__(listenSocket, SOL_SOCKET, SO_LINGER, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + + + // This doesn't make much difference: 10% maybe + // Not supported on console 2 + sock_opt=1024*16; + setsockopt__(listenSocket, SOL_SOCKET, SO_SNDBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + +#ifdef __APPLE__ + // Preventing SEGPIPE on "broken" socket + int set = 1; + setsockopt__(listenSocket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int)); +#endif + + /* + #ifdef _WIN32 + unsigned long nonblocking = 1; + ioctlsocket__( listenSocket, FIONBIO, &nonblocking ); + #elif defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) + sock_opt=1; + setsockopt__(listenSocket, SOL_SOCKET, SO_NBIO, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + #else + fcntl( listenSocket, F_SETFL, O_NONBLOCK ); + #endif + */ + + // TODO - teston ipv6 + + // Note: Fails with VDP but not xbox + // Set broadcast capable + sock_opt=1; + if ( setsockopt__( listenSocket, SOL_SOCKET, SO_BROADCAST, ( char * ) & sock_opt, sizeof( sock_opt ) ) == -1 ) + { +#if defined(_WIN32) && defined(_DEBUG) + + DWORD dwIOError = GetLastError(); + // On Vista, can get WSAEACCESS (10013) + // See http://support.microsoft.com/kb/819124 + // http://blogs.msdn.com/wndp/archive/2007/03/19/winsock-so-exclusiveaddruse-on-vista.aspx + // http://msdn.microsoft.com/en-us/library/ms740621(VS.85).aspx + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "setsockopt__(SO_BROADCAST) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); + +#endif + + } +} +SOCKET SocketLayer::CreateBoundSocket_PS3Lobby( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ) +{ + (void) port; + (void) blockingSocket; + (void) forceHostAddress; + (void) socketFamily; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return 0; + +} +SOCKET SocketLayer::CreateBoundSocket_PSP2( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ) +{ + (void) port; + (void) blockingSocket; + (void) forceHostAddress; + (void) socketFamily; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return 0; + +} +SOCKET SocketLayer::CreateBoundSocket_Old( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions ) +{ + (void) blockingSocket; + + int ret; + SOCKET listenSocket; + sockaddr_in listenerSocketAddress; + memset(&listenerSocketAddress,0,sizeof(sockaddr_in)); + // Listen on our designated Port# + listenerSocketAddress.sin_port = htons( port ); + + listenSocket = socket__( AF_INET, SOCK_DGRAM, extraSocketOptions ); + + if ( listenSocket == (SOCKET) -1 ) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "socket__(...) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + char str[512]; + strcpy(str,(const char*) messageBuffer); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + + return (SOCKET) -1; + } + + SetSocketOptions(listenSocket); + + // Fill in the rest of the address structure + listenerSocketAddress.sin_family = AF_INET; + + if (forceHostAddress && forceHostAddress[0]) + { + // RAKNET_DEBUG_PRINTF("Force binding %s:%i\n", forceHostAddress, port); + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( forceHostAddress ); + + } + else + { + // RAKNET_DEBUG_PRINTF("Binding any on port %i\n", port); + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + } + + + + + + + + + // bind our name to the socket + ret = bind__( listenSocket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + + if ( ret <= -1 ) + { + + + + + + + +#if defined(_WIN32) + DWORD dwIOError = GetLastError(); + if (dwIOError==10048) + { + if (sleepOn10048==0) + return (SOCKET) -1; + // Vista has a bug where it returns WSAEADDRINUSE (10048) if you create, shutdown, then rebind the socket port unless you wait a while first. + // Wait, then rebind + RakSleep(100); + + closesocket__(listenSocket); + listenerSocketAddress.sin_port = htons( port ); + listenSocket = socket__( AF_INET, SOCK_DGRAM, 0 ); + if ( listenSocket == (SOCKET) -1 ) + return false; + SetSocketOptions(listenSocket); + + // Fill in the rest of the address structure + listenerSocketAddress.sin_family = AF_INET; + if (forceHostAddress && forceHostAddress[0]) + { + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( forceHostAddress ); + + } + else + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + + // bind our name to the socket + ret = bind__( listenSocket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + + if ( ret >= 0 ) + return listenSocket; + } + dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "bind__(...) failed:Error code - %d\n%s", (unsigned int) dwIOError, (char*) messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#elif (defined(__GNUC__) || defined(__GCCXML__) ) && !defined(_WIN32) + switch (ret) + { + case EBADF: + RAKNET_DEBUG_PRINTF("bind__(): sockfd is not a valid descriptor.\n"); break; + + case ENOTSOCK: + RAKNET_DEBUG_PRINTF("bind__(): Argument is a descriptor for a file, not a socket.\n"); break; + + case EINVAL: + RAKNET_DEBUG_PRINTF("bind__(): The addrlen is wrong, or the socket was not in the AF_UNIX family.\n"); break; + case EROFS: + RAKNET_DEBUG_PRINTF("bind__(): The socket inode would reside on a read-only file system.\n"); break; + case EFAULT: + RAKNET_DEBUG_PRINTF("bind__(): my_addr points outside the user's accessible address space.\n"); break; + case ENAMETOOLONG: + RAKNET_DEBUG_PRINTF("bind__(): my_addr is too long.\n"); break; + case ENOENT: + RAKNET_DEBUG_PRINTF("bind__(): The file does not exist.\n"); break; + case ENOMEM: + RAKNET_DEBUG_PRINTF("bind__(): Insufficient kernel memory was available.\n"); break; + case ENOTDIR: + RAKNET_DEBUG_PRINTF("bind__(): A component of the path prefix is not a directory.\n"); break; + case EACCES: + RAKNET_DEBUG_PRINTF("bind__(): Search permission is denied on a component of the path prefix.\n"); break; + + case ELOOP: + RAKNET_DEBUG_PRINTF("bind__(): Too many symbolic links were encountered in resolving my_addr.\n"); break; + + default: + RAKNET_DEBUG_PRINTF("Unknown bind__() error %i.\n", ret); break; + } +#endif + + return (SOCKET) -1; + } + + return listenSocket; +} +SOCKET SocketLayer::CreateBoundSocket( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions, unsigned short socketFamily ) +{ + (void) blockingSocket; + (void) extraSocketOptions; + (void) socketFamily; + +#if RAKNET_SUPPORT_IPV6!=1 + return CreateBoundSocket_Old(port,blockingSocket,forceHostAddress,sleepOn10048,extraSocketOptions); +#else + +#ifdef _WIN32 + // Vista has a bug where it returns WSAEADDRINUSE (10048) if you create, shutdown, then rebind the socket port unless you wait a while first. + if (sleepOn10048==0) + RakSleep(100); +#endif + + int ret=0; + SOCKET listenSocket; + struct addrinfo hints; + struct addrinfo *servinfo=0, *aip; // will point to the results + PrepareAddrInfoHints(&hints); + hints.ai_family=socketFamily; + char portStr[32]; + Itoa(port,portStr,10); + + // On Ubuntu, "" returns "No address associated with hostname" while 0 works. + if (forceHostAddress && + (_stricmp(forceHostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0 || forceHostAddress[0]==0)) + { + getaddrinfo(0, portStr, &hints, &servinfo); + } + else + { + getaddrinfo(forceHostAddress, portStr, &hints, &servinfo); + } + + // Try all returned addresses until one works + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + listenSocket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (listenSocket != -1) + { + ret = bind__( listenSocket, aip->ai_addr, (int) aip->ai_addrlen ); + if (ret>=0) + { + // Is this valid? + sockaddr_in6 addr6; + memcpy(&addr6, aip->ai_addr, sizeof(addr6)); + + freeaddrinfo(servinfo); // free the linked-list + + SetSocketOptions(listenSocket); + return listenSocket; + } + } + } + +#if defined(_WIN32) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + + RAKNET_DEBUG_PRINTF( "bind__(...) failed:Error code - %d\n%s", (unsigned int) dwIOError, (char*) messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#elif defined(__GNUC__) || defined(__GCCXML__) && !defined(_WIN32) + switch (ret) + { + case EBADF: + RAKNET_DEBUG_PRINTF("bind__(): sockfd is not a valid descriptor.\n"); break; + + case ENOTSOCK: + RAKNET_DEBUG_PRINTF("bind__(): Argument is a descriptor for a file, not a socket.\n"); break; + + case EINVAL: + RAKNET_DEBUG_PRINTF("bind__(): The addrlen is wrong, or the socket was not in the AF_UNIX family.\n"); break; + case EROFS: + RAKNET_DEBUG_PRINTF("bind__(): The socket inode would reside on a read-only file system.\n"); break; + case EFAULT: + RAKNET_DEBUG_PRINTF("bind__(): my_addr points outside the user's accessible address space.\n"); break; + case ENAMETOOLONG: + RAKNET_DEBUG_PRINTF("bind__(): my_addr is too long.\n"); break; + case ENOENT: + RAKNET_DEBUG_PRINTF("bind__(): The file does not exist.\n"); break; + case ENOMEM: + RAKNET_DEBUG_PRINTF("bind__(): Insufficient kernel memory was available.\n"); break; + case ENOTDIR: + RAKNET_DEBUG_PRINTF("bind__(): A component of the path prefix is not a directory.\n"); break; + case EACCES: + RAKNET_DEBUG_PRINTF("bind__(): Search permission is denied on a component of the path prefix.\n"); break; + + case ELOOP: + RAKNET_DEBUG_PRINTF("bind__(): Too many symbolic links were encountered in resolving my_addr.\n"); break; + + default: + RAKNET_DEBUG_PRINTF("Unknown bind__() error %i.\n", ret); break; + } +#endif + + +#endif + + return (SOCKET) -1; +} +const char* SocketLayer::DomainNameToIP_Old( const char *domainName ) +{ + struct in_addr addr; + memset(&addr,0,sizeof(in_addr)); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // Use inet_addr instead? What is the difference? + struct hostent * phe = gethostbyname( domainName ); + + if ( phe == 0 || phe->h_addr_list[ 0 ] == 0 ) + { + //cerr << "Yow! Bad host lookup." << endl; + return 0; + } + + if (phe->h_addr_list[ 0 ]==0) + return 0; + + memcpy( &addr, phe->h_addr_list[ 0 ], sizeof( struct in_addr ) ); + return inet_ntoa( addr ); + + + return ""; +} +const char* SocketLayer::DomainNameToIP( const char *domainName ) +{ +#if RAKNET_SUPPORT_IPV6!=1 + return DomainNameToIP_Old(domainName); +#else + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + struct addrinfo hints, *res, *p; + int status; + static char ipstr[INET6_ADDRSTRLEN]; + memset(&hints, 0, sizeof hints); + hints.ai_family = AF_UNSPEC; // AF_INET or AF_INET6 to force version + hints.ai_socktype = SOCK_DGRAM; + + if ((status = getaddrinfo(domainName, NULL, &hints, &res)) != 0) { + return 0; + } + + p=res; +// for(p = res;p != NULL; p = p->ai_next) { + void *addr; +// char *ipver; + + // get the pointer to the address itself, + // different fields in IPv4 and IPv6: + if (p->ai_family == AF_INET) + { + struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr; + addr = &(ipv4->sin_addr); + strcpy(ipstr, inet_ntoa( ipv4->sin_addr )); + } + else + { + // TODO - test + struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; + addr = &(ipv6->sin6_addr); + // inet_ntop function does not exist on windows + // http://www.mail-archive.com/users@ipv6.org/msg02107.html + getnameinfo((struct sockaddr *)ipv6, sizeof(struct sockaddr_in6), ipstr, 1, NULL, 0, NI_NUMERICHOST); + } + freeaddrinfo(res); // free the linked list + return ipstr; +// } + + + + return ""; + +#endif // #if RAKNET_SUPPORT_IPV6!=1 +} + + +void SocketLayer::Write( const SOCKET writeSocket, const char* data, const int length ) +{ +#ifdef _DEBUG + RakAssert( writeSocket != (SOCKET) -1 ); +#endif + + send__( writeSocket, data, length, 0 ); +} +void SocketLayer::RecvFromBlocking_Old( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ) +{ + (void) rakPeer; + + sockaddr* sockAddrPtr; + socklen_t sockLen; + socklen_t* socketlenPtr=(socklen_t*) &sockLen; + sockaddr_in sa; + memset(&sa,0,sizeof(sockaddr_in)); + int dataOutSize; + const int flag=0; + + (void) remotePortRakNetWasStartedOn_PS3; + (void) extraSocketOptions; + + + + + + + + + + + + + + + + + + + + + { + sockLen=sizeof(sa); + sa.sin_family = AF_INET; + sa.sin_port=0; + sockAddrPtr=(sockaddr*) &sa; + } + + + + + dataOutSize=MAXIMUM_MTU_SIZE; + + + *bytesReadOut = recvfrom__( s, dataOut, dataOutSize, flag, sockAddrPtr, socketlenPtr ); + + + + + + + + + + if (*bytesReadOut<=0) + return; + *timeRead=RakNet::GetTimeUS(); + + + + + + + + + + { + systemAddressOut->SetPortNetworkOrder( sa.sin_port ); + systemAddressOut->address.addr4.sin_addr.s_addr=sa.sin_addr.s_addr; + } +} + +void SocketLayer::RecvFromBlocking( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ) +{ +#if RAKNET_SUPPORT_IPV6!=1 + RecvFromBlocking_Old(s,rakPeer,remotePortRakNetWasStartedOn_PS3,extraSocketOptions,dataOut,bytesReadOut,systemAddressOut,timeRead); +#else + (void) rakPeer; + sockaddr_storage their_addr; + sockaddr* sockAddrPtr; + socklen_t sockLen; + socklen_t* socketlenPtr=(socklen_t*) &sockLen; + memset(&their_addr,0,sizeof(their_addr)); + int dataOutSize; + const int flag=0; + + (void) remotePortRakNetWasStartedOn_PS3; + (void) extraSocketOptions; + + + + + + + + + + + + { + sockLen=sizeof(their_addr); + sockAddrPtr=(sockaddr*) &their_addr; + } + + + + + dataOutSize=MAXIMUM_MTU_SIZE; + + + *bytesReadOut = recvfrom__( s, dataOut, dataOutSize, flag, sockAddrPtr, socketlenPtr ); + + + + + + + + + + if (*bytesReadOut<=0) + return; + *timeRead=RakNet::GetTimeUS(); + + + + + + + + + + { + if (their_addr.ss_family==AF_INET) + { + memcpy(&systemAddressOut->address.addr4,(sockaddr_in *)&their_addr,sizeof(sockaddr_in)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr4.sin_port); + // systemAddressOut->address.addr4.sin_port=ntohs( systemAddressOut->address.addr4.sin_port ); + } + else + { + memcpy(&systemAddressOut->address.addr6,(sockaddr_in6 *)&their_addr,sizeof(sockaddr_in6)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr6.sin6_port); + // systemAddressOut->address.addr6.sin6_port=ntohs( systemAddressOut->address.addr6.sin6_port ); + } + } + +#endif // defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) +} + +int SocketLayer::SendTo_PS3Lobby( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ) +{ + (void) s; + (void) data; + (void) length; + (void) remotePortRakNetWasStartedOn_PS3; + (void) systemAddress; + + int len=0; + + + + + + + + + + + + + + + return len; +} +int SocketLayer::SendTo_PSP2( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ) +{ + (void) s; + (void) data; + (void) length; + (void) remotePortRakNetWasStartedOn_PS3; + (void) systemAddress; + + int len=0; + + + + + + + + + + + + + + return len; +} +int SocketLayer::SendTo_360( SOCKET s, const char *data, int length, const char *voiceData, int voiceLength, const SystemAddress &systemAddress, unsigned int extraSocketOptions ) +{ + (void) s; + (void) data; + (void) length; + (void) voiceData; + (void) voiceLength; + (void) extraSocketOptions; + (void) systemAddress; + + int len=0; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return len; +} +int SocketLayer::SendTo_PC( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, const char *file, const long line ) +{ + // TODO + // http://www.linuxquestions.org/questions/linux-software-2/ipv6-linux-sendto-problems-519485/ + +// #if RAKNET_SUPPORT_IPV6==1 +// RakAssert( +// systemAddress.address.addr4.sin_family!=AF_MAX && +// (systemAddress.address.addr4.sin_family==AF_INET || (systemAddress.address.addr6.sin6_scope_id!=0)) +// ); +// #endif + + /* + sockaddr_in sa; + memset(&sa,0,sizeof(sockaddr_in)); + sa.sin_port = htons( port ); // User port + sa.sin_addr.s_addr = binaryAddress; + sa.sin_family = socketFamily; + */ + + int len=0; + do + { +#ifdef DEBUG_SENDTO_SPIKES + RakNetTime start = RakNet::GetTime(); +#else + (void) file; + (void) line; +#endif + if (systemAddress.address.addr4.sin_family==AF_INET) + { + //systemAddress.address.addr4.sin_port=htons(systemAddress.address.addr4.sin_port); + len = sendto__( s, data, length, 0, ( const sockaddr* ) & systemAddress.address.addr4, sizeof( sockaddr_in ) ); + //systemAddress.address.addr4.sin_port=ntohs(systemAddress.address.addr4.sin_port); + } + else + { +#if RAKNET_SUPPORT_IPV6==1 + // systemAddress.address.addr6.sin6_port=htons(systemAddress.address.addr6.sin6_port); + len = sendto__( s, data, length, 0, ( const sockaddr* ) & systemAddress.address.addr6, sizeof( sockaddr_in6 ) ); + //systemAddress.address.addr6.sin6_port=ntohs(systemAddress.address.addr6.sin6_port); +#endif + } + +#ifdef DEBUG_SENDTO_SPIKES + RakNetTime end = RakNet::GetTime(); + static unsigned int callCount=1; + RAKNET_DEBUG_PRINTF("%i. SendTo_PC, time=%llu, elapsed=%llu, length=%i, returned=%i, binaryAddress=%i, port=%i, file=%s, line=%i\n", callCount++, end, end-start, length, len, binaryAddress, port, file, line); +#endif + if (len<0) + { + RAKNET_DEBUG_PRINTF("sendto failed with code %i for char %i and length %i.\n", len, data[0], length); + } + } + while ( len == 0 ); + return len; +} + +#ifdef _MSC_VER +#pragma warning( disable : 4702 ) // warning C4702: unreachable code +#endif +int SocketLayer::SendTo( SOCKET s, const char *data, int length, SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ) +{ + (void) extraSocketOptions; + + int len=0; + RakAssert(length<=MAXIMUM_MTU_SIZE-UDP_HEADER_SIZE); +#if !defined(__S3E__) + RakAssert(systemAddress.address.addr4.sin_family!=AF_MAX); +#endif + + if (slo) + { + len = slo->RakNetSendTo(s,data,length,systemAddress); + if ( len != -1 ) + return 0; + return 1; + } + + if ( s == (SOCKET) -1 ) + { + return -1; + } + + + if (remotePortRakNetWasStartedOn_PS3!=0) + { + + + + + + } + else + { + + + + + + + len = SendTo_PC(s,data,length,systemAddress,file,line); + + } + + if ( len != -1 ) + return 0; + +#if defined(_WIN32) && !defined(_WIN32_WCE) + + DWORD dwIOError = WSAGetLastError(); + + if ( dwIOError == WSAECONNRESET ) + { +#if defined(_DEBUG) + RAKNET_DEBUG_PRINTF( "A previous send operation resulted in an ICMP Port Unreachable message.\n" ); +#endif + + } + else if ( dwIOError != WSAEWOULDBLOCK && dwIOError != WSAEADDRNOTAVAIL) + { +#if defined(_WIN32) && defined(_DEBUG) + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "sendto failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); +#endif + + } + + return dwIOError; +#endif + + return 1; // error +} +// Not enough info for IPV6 +// int SocketLayer::SendTo( SOCKET s, const char *data, int length, const char ip[ 16 ], unsigned short port, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ) +// { +// SystemAddress systemAddress; +// systemAddress.FromStringAndPort(ip,port); +// return SendTo( s, data, length, systemAddress,remotePortRakNetWasStartedOn_PS3, extraSocketOptions, file, line ); +// } +int SocketLayer::SendToTTL( SOCKET s, const char *data, int length, SystemAddress &systemAddress, int ttl ) +{ + if (slo) + return slo->RakNetSendTo(s,data,length,systemAddress); + + + int oldTTL; + socklen_t opLen=sizeof(oldTTL); + // Get the current TTL + if (getsockopt__(s, systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & oldTTL, &opLen ) == -1) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "getsockopt__(IPPROTO_IP,IP_TTL) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + } + + // Set to TTL + int newTTL=ttl; + if (setsockopt__(s, systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & newTTL, sizeof ( newTTL ) ) == -1) + { + +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "setsockopt__(IPPROTO_IP,IP_TTL) failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + } + + // Send + int res = SendTo(s,data,length,systemAddress,0,0, __FILE__, __LINE__ ); + + // Restore the old TTL + setsockopt__(s, systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & oldTTL, opLen ); + + return res; + + + +} + + +RakNet::RakString SocketLayer::GetSubNetForSocketAndIp(SOCKET inSock, RakNet::RakString inIpString) +{ + RakNet::RakString netMaskString; + RakNet::RakString ipString; + + + + + +#if defined(_WIN32) + INTERFACE_INFO InterfaceList[20]; + unsigned long nBytesReturned; + if (WSAIoctl(inSock, SIO_GET_INTERFACE_LIST, 0, 0, &InterfaceList, + sizeof(InterfaceList), &nBytesReturned, 0, 0) == SOCKET_ERROR) { + return ""; + } + + int nNumInterfaces = nBytesReturned / sizeof(INTERFACE_INFO); + + for (int i = 0; i < nNumInterfaces; ++i) + { + sockaddr_in *pAddress; + pAddress = (sockaddr_in *) & (InterfaceList[i].iiAddress); + ipString=inet_ntoa(pAddress->sin_addr); + + if (inIpString==ipString) + { + pAddress = (sockaddr_in *) & (InterfaceList[i].iiNetmask); + netMaskString=inet_ntoa(pAddress->sin_addr); + return netMaskString; + } + } + return ""; +#else + + int fd,fd2; + fd2 = socket__(AF_INET, SOCK_DGRAM, 0); + + if(fd2 < 0) + { + return ""; + } + + struct ifconf ifc; + char buf[1999]; + ifc.ifc_len = sizeof(buf); + ifc.ifc_buf = buf; + if(ioctl(fd2, SIOCGIFCONF, &ifc) < 0) + { + return ""; + } + + struct ifreq *ifr; + ifr = ifc.ifc_req; + int intNum = ifc.ifc_len / sizeof(struct ifreq); + for(int i = 0; i < intNum; i++) + { + ipString=inet_ntoa(((struct sockaddr_in *)&ifr[i].ifr_addr)->sin_addr); + + if (inIpString==ipString) + { + struct ifreq ifr2; + fd = socket__(AF_INET, SOCK_DGRAM, 0); + if(fd < 0) + { + return ""; + } + ifr2.ifr_addr.sa_family = AF_INET; + + strncpy(ifr2.ifr_name, ifr[i].ifr_name, IFNAMSIZ-1); + + ioctl(fd, SIOCGIFNETMASK, &ifr2); + + close(fd); + close(fd2); + netMaskString=inet_ntoa(((struct sockaddr_in *)&ifr2.ifr_addr)->sin_addr); + + return netMaskString; + } + } + + close(fd2); + return ""; + +#endif + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +void GetMyIP_Win32( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ) +{ + char ac[ 80 ]; + if ( gethostname( ac, sizeof( ac ) ) == -1 ) + { + #if defined(_WIN32) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "gethostname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); + #endif + return ; + } + + +#if RAKNET_SUPPORT_IPV6==1 + struct addrinfo hints; + struct addrinfo *servinfo=0, *aip; // will point to the results + PrepareAddrInfoHints(&hints); + getaddrinfo(ac, "", &hints, &servinfo); + + int idx; + for (idx=0, aip = servinfo; aip != NULL && idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; aip = aip->ai_next, idx++) + { + if (aip->ai_family == AF_INET) + { + struct sockaddr_in *ipv4 = (struct sockaddr_in *)aip->ai_addr; + memcpy(&addresses[idx].address.addr4,ipv4,sizeof(sockaddr_in)); + } + else + { + struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)aip->ai_addr; + memcpy(&addresses[idx].address.addr4,ipv6,sizeof(sockaddr_in6)); + } + + } + + freeaddrinfo(servinfo); // free the linked-list +#else + struct hostent *phe = gethostbyname( ac ); + + if ( phe == 0 ) + { + #ifdef _WIN32 + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "gethostbyname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); + #endif + return ; + } + int idx; + for ( idx = 0; idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ++idx ) + { + if (phe->h_addr_list[ idx ] == 0) + break; + + memcpy(&addresses[idx].address.addr4.sin_addr,phe->h_addr_list[ idx ],sizeof(struct in_addr)); + + } +#endif + + + while (idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS) + { + addresses[idx]=UNASSIGNED_SYSTEM_ADDRESS; + idx++; + } +} +// #else +/* +void GetMyIP_Linux( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ) +{ + struct ifaddrs *ifaddr, *ifa; + int family, s; + char host[NI_MAXHOST]; + struct in_addr linux_in_addr; + + if (getifaddrs(&ifaddr) == -1) { + printf( "Error getting interface list\n"); + } + + int idx = 0; + for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { + if (!ifa->ifa_addr) continue; + family = ifa->ifa_addr->sa_family; + + if (family == AF_INET) { + s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (s != 0) { + // printf ("getnameinfo() failed: %s\n", gai_strerror(s)); + } + else if (strcmp(host,"127.0.0.1")!=0) + { + if (inet_aton(host, &addresses[idx].address.addr4.sin_addr)!=0) + idx++; + } + } +#if RAKNET_SUPPORT_IPV6==1 + else + { + s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (s != 0) { + // printf ("getnameinfo() failed: %s\n", gai_strerror(s)); + } + else if (strcmp(host,"::1")!=0) + { + if (inet_pton(family, host, &addresses[idx].address.addr6.sin6_addr)!=0) + idx++; + } + } +#endif + } + + for ( ; idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ++idx ) + { + addresses[idx]=UNASSIGNED_SYSTEM_ADDRESS; + } + + freeifaddrs(ifaddr); +} +*/ + + + +void SocketLayer::GetMyIP( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ) +{ + + + + +#if defined(_WIN32) + GetMyIP_Win32(addresses); +#else +// GetMyIP_Linux(addresses); + GetMyIP_Win32(addresses); +#endif +} + + +unsigned short SocketLayer::GetLocalPort(SOCKET s) +{ + SystemAddress sa; + GetSystemAddress(s,&sa); + return sa.GetPort(); +} +void SocketLayer::GetSystemAddress_Old ( SOCKET s, SystemAddress *systemAddressOut ) +{ + sockaddr_in sa; + memset(&sa,0,sizeof(sockaddr_in)); + socklen_t len = sizeof(sa); + if (getsockname__(s, (sockaddr*)&sa, &len)!=0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "getsockname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); +#endif + *systemAddressOut = UNASSIGNED_SYSTEM_ADDRESS; + return; + } + + systemAddressOut->SetPortNetworkOrder(sa.sin_port); + systemAddressOut->address.addr4.sin_addr.s_addr=sa.sin_addr.s_addr; +} +void SocketLayer::GetSystemAddress ( SOCKET s, SystemAddress *systemAddressOut ) +{ +#if RAKNET_SUPPORT_IPV6!=1 + GetSystemAddress_Old(s,systemAddressOut); +#else + socklen_t slen; + sockaddr_storage ss; + slen = sizeof(ss); + + if (getsockname__(s, (struct sockaddr *)&ss, &slen)!=0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "getsockname failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); +#endif + systemAddressOut->FromString(0); + return; + } + + if (ss.ss_family==AF_INET) + { + memcpy(&systemAddressOut->address.addr4,(sockaddr_in *)&ss,sizeof(sockaddr_in)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr4.sin_port); + + uint32_t zero = 0; + if (memcmp(&systemAddressOut->address.addr4.sin_addr.s_addr, &zero, sizeof(zero))==0) + systemAddressOut->SetToLoopback(4); + // systemAddressOut->address.addr4.sin_port=ntohs(systemAddressOut->address.addr4.sin_port); + } + else + { + memcpy(&systemAddressOut->address.addr6,(sockaddr_in6 *)&ss,sizeof(sockaddr_in6)); + systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr6.sin6_port); + + char zero[16]; + memset(zero,0,sizeof(zero)); + if (memcmp(&systemAddressOut->address.addr4.sin_addr.s_addr, &zero, sizeof(zero))==0) + systemAddressOut->SetToLoopback(6); + + // systemAddressOut->address.addr6.sin6_port=ntohs(systemAddressOut->address.addr6.sin6_port); + } +#endif // #if RAKNET_SUPPORT_IPV6!=1 +} + +void SocketLayer::SetSocketLayerOverride(SocketLayerOverride *_slo) +{ + slo=_slo; +} + +bool SocketLayer::GetFirstBindableIP(char firstBindable[128], int ipProto) +{ + SystemAddress ipList[ MAXIMUM_NUMBER_OF_INTERNAL_IDS ]; + SocketLayer::GetMyIP( ipList ); + + + if (ipProto==AF_UNSPEC) + + { + ipList[0].ToString(false,firstBindable); + return true; + } + + // Find the first valid host address + unsigned int l; + for (l=0; l < MAXIMUM_NUMBER_OF_INTERNAL_IDS; l++) + { + if (ipList[l]==UNASSIGNED_SYSTEM_ADDRESS) + break; + if (ipList[l].GetIPVersion()==4 && ipProto==AF_INET) + break; + if (ipList[l].GetIPVersion()==6 && ipProto==AF_INET6) + break; + } + + if (ipList[l]==UNASSIGNED_SYSTEM_ADDRESS || l==MAXIMUM_NUMBER_OF_INTERNAL_IDS) + return false; +// RAKNET_DEBUG_PRINTF("%i %i %i %i\n", +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[0], +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[1], +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[2], +// ((char*)(&ipList[l].address.addr4.sin_addr.s_addr))[3] +// ); + ipList[l].ToString(false,firstBindable); + return true; + +} + + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif diff --git a/src/raknet/SocketLayer.h b/src/raknet/SocketLayer.h new file mode 100755 index 0000000..01265d5 --- /dev/null +++ b/src/raknet/SocketLayer.h @@ -0,0 +1,164 @@ +/// \file +/// \brief SocketLayer class implementation +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + + +#ifndef __SOCKET_LAYER_H +#define __SOCKET_LAYER_H + +#include "RakMemoryOverride.h" +#include "SocketIncludes.h" +#include "RakNetTypes.h" +#include "RakNetSmartPtr.h" +#include "RakNetSocket.h" +#include "Export.h" +#include "MTUSize.h" +#include "RakString.h" + +//#include "ClientContextStruct.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeer; + +class RAK_DLL_EXPORT SocketLayerOverride +{ +public: + SocketLayerOverride() {} + virtual ~SocketLayerOverride() {} + + /// Called when SendTo would otherwise occur. + virtual int RakNetSendTo( SOCKET s, const char *data, int length, const SystemAddress &systemAddress )=0; + + /// Called when RecvFrom would otherwise occur. Return number of bytes read. Write data into dataOut + // Return -1 to use RakNet's normal recvfrom, 0 to abort RakNet's normal recvfrom, and positive to return data + virtual int RakNetRecvFrom( const SOCKET sIn, RakPeer *rakPeerIn, char dataOut[ MAXIMUM_MTU_SIZE ], SystemAddress *senderOut, bool calledFromMainThread )=0; +}; + + +// A platform independent implementation of Berkeley sockets, with settings used by RakNet +class RAK_DLL_EXPORT SocketLayer +{ + +public: + + /// Default Constructor + SocketLayer(); + + // Destructor + ~SocketLayer(); + + /// Creates a bound socket to listen for incoming connections on the specified port + /// \param[in] port the port number + /// \param[in] blockingSocket + /// \return A new socket used for accepting clients + static SOCKET CreateBoundSocket( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions, unsigned short socketFamily ); + static SOCKET CreateBoundSocket_Old( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned int sleepOn10048, unsigned int extraSocketOptions ); + static SOCKET CreateBoundSocket_PS3Lobby( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ); + static SOCKET CreateBoundSocket_PSP2( unsigned short port, bool blockingSocket, const char *forceHostAddress, unsigned short socketFamily ); + + /// Returns if this specified port is in use, for UDP + /// \param[in] port the port number + /// \return If this port is already in use + static bool IsPortInUse_Old(unsigned short port, const char *hostAddress); + static bool IsPortInUse(unsigned short port, const char *hostAddress, unsigned short socketFamily ); + static bool IsSocketFamilySupported(const char *hostAddress, unsigned short socketFamily); + + static const char* DomainNameToIP_Old( const char *domainName ); + static const char* DomainNameToIP( const char *domainName ); + + /// Write \a data of length \a length to \a writeSocket + /// \param[in] writeSocket The socket to write to + /// \param[in] data The data to write + /// \param[in] length The length of \a data + static void Write( const SOCKET writeSocket, const char* data, const int length ); + + /// Read data from a socket + /// \param[in] s the socket + /// \param[in] rakPeer The instance of rakPeer containing the recvFrom C callback + /// \param[in] errorCode An error code if an error occured . + /// \param[in] connectionSocketIndex Which of the sockets in RakPeer we are using + /// \return Returns true if you successfully read data, false on error. + static void RecvFromBlocking_Old( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ); + static void RecvFromBlocking( const SOCKET s, RakPeer *rakPeer, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, char *dataOut, int *bytesReadOut, SystemAddress *systemAddressOut, RakNet::TimeUS *timeRead ); + + /// Given a socket and IP, retrieves the subnet mask, on linux the socket is unused + /// \param[in] inSock the socket + /// \param[in] inIpString The ip of the interface you wish to retrieve the subnet mask from + /// \return Returns the ip dotted subnet mask if successful, otherwise returns empty string ("") + static RakNet::RakString GetSubNetForSocketAndIp(SOCKET inSock, RakNet::RakString inIpString); + + + /// Sets the socket flags to nonblocking + /// \param[in] listenSocket the socket to set + static void SetNonBlocking( SOCKET listenSocket); + + + /// Retrieve all local IP address in a string format. + /// \param[in] s The socket whose port we are referring to + /// \param[in] ipList An array of ip address in dotted notation. + static void GetMyIP( SystemAddress addresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] ); + + + /// Call sendto (UDP obviously) + /// \param[in] s the socket + /// \param[in] data The byte buffer to send + /// \param[in] length The length of the \a data in bytes + /// \param[in] ip The address of the remote host in dotted notation. + /// \param[in] port The port number to send to. + /// \return 0 on success, nonzero on failure. +// static int SendTo( SOCKET s, const char *data, int length, const char ip[ 16 ], unsigned short port, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ); + + /// Call sendto (UDP obviously) + /// It won't reach the recipient, except on a LAN + /// However, this is good for opening routers / firewalls + /// \param[in] s the socket + /// \param[in] data The byte buffer to send + /// \param[in] length The length of the \a data in bytes + /// \param[in] ip The address of the remote host in dotted notation. + /// \param[in] port The port number to send to. + /// \param[in] ttl Max hops of datagram + /// \return 0 on success, nonzero on failure. + static int SendToTTL( SOCKET s, const char *data, int length, SystemAddress &systemAddress, int ttl ); + + /// Call sendto (UDP obviously) + /// \param[in] s the socket + /// \param[in] data The byte buffer to send + /// \param[in] length The length of the \a data in bytes + /// \param[in] binaryAddress The address of the remote host in binary format. + /// \param[in] port The port number to send to. + /// \return 0 on success, nonzero on failure. + static int SendTo( SOCKET s, const char *data, int length, SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, const char *file, const long line ); + + static unsigned short GetLocalPort(SOCKET s); + static void GetSystemAddress_Old ( SOCKET s, SystemAddress *systemAddressOut ); + static void GetSystemAddress ( SOCKET s, SystemAddress *systemAddressOut ); + + static void SetSocketLayerOverride(SocketLayerOverride *_slo); + static SocketLayerOverride* GetSocketLayerOverride(void) {return slo;} + + static int SendTo_PS3Lobby( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ); + static int SendTo_PSP2( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, unsigned short remotePortRakNetWasStartedOn_PS3 ); + static int SendTo_360( SOCKET s, const char *data, int length, const char *voiceData, int voiceLength, const SystemAddress &systemAddress, unsigned int extraSocketOptions ); + static int SendTo_PC( SOCKET s, const char *data, int length, const SystemAddress &systemAddress, const char *file, const long line ); + + static void SetDoNotFragment( SOCKET listenSocket, int opt, int IPPROTO ); + + + // AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + static bool GetFirstBindableIP(char firstBindable[128], int ipProto); + +private: + + static void SetSocketOptions( SOCKET listenSocket); + static SocketLayerOverride *slo; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/StringCompressor.cpp b/src/raknet/StringCompressor.cpp new file mode 100755 index 0000000..8516a33 --- /dev/null +++ b/src/raknet/StringCompressor.cpp @@ -0,0 +1,499 @@ +/// \file +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "StringCompressor.h" +#include "DS_HuffmanEncodingTree.h" +#include "BitStream.h" +#include "RakString.h" +#include "RakAssert.h" +#include + +#include + + + + + +using namespace RakNet; + +StringCompressor* StringCompressor::instance=0; +int StringCompressor::referenceCount=0; + +void StringCompressor::AddReference(void) +{ + if (++referenceCount==1) + { + instance = RakNet::OP_NEW( _FILE_AND_LINE_ ); + } +} +void StringCompressor::RemoveReference(void) +{ + RakAssert(referenceCount > 0); + + if (referenceCount > 0) + { + if (--referenceCount==0) + { + RakNet::OP_DELETE(instance, _FILE_AND_LINE_); + instance=0; + } + } +} + +StringCompressor* StringCompressor::Instance(void) +{ + return instance; +} + +unsigned int englishCharacterFrequencies[ 256 ] = +{ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 722, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11084, + 58, + 63, + 1, + 0, + 31, + 0, + 317, + 64, + 64, + 44, + 0, + 695, + 62, + 980, + 266, + 69, + 67, + 56, + 7, + 73, + 3, + 14, + 2, + 69, + 1, + 167, + 9, + 1, + 2, + 25, + 94, + 0, + 195, + 139, + 34, + 96, + 48, + 103, + 56, + 125, + 653, + 21, + 5, + 23, + 64, + 85, + 44, + 34, + 7, + 92, + 76, + 147, + 12, + 14, + 57, + 15, + 39, + 15, + 1, + 1, + 1, + 2, + 3, + 0, + 3611, + 845, + 1077, + 1884, + 5870, + 841, + 1057, + 2501, + 3212, + 164, + 531, + 2019, + 1330, + 3056, + 4037, + 848, + 47, + 2586, + 2919, + 4771, + 1707, + 535, + 1106, + 152, + 1243, + 100, + 0, + 2, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 +}; + +StringCompressor::StringCompressor() +{ + DataStructures::Map::IMPLEMENT_DEFAULT_COMPARISON(); + + // Make a default tree immediately, since this is used for RPC possibly from multiple threads at the same time + HuffmanEncodingTree *huffmanEncodingTree = RakNet::OP_NEW( _FILE_AND_LINE_ ); + huffmanEncodingTree->GenerateFromFrequencyTable( englishCharacterFrequencies ); + + huffmanEncodingTrees.Set(0, huffmanEncodingTree); +} +void StringCompressor::GenerateTreeFromStrings( unsigned char *input, unsigned inputLength, uint8_t languageId ) +{ + HuffmanEncodingTree *huffmanEncodingTree; + if (huffmanEncodingTrees.Has(languageId)) + { + huffmanEncodingTree = huffmanEncodingTrees.Get(languageId); + RakNet::OP_DELETE(huffmanEncodingTree, _FILE_AND_LINE_); + } + + unsigned index; + unsigned int frequencyTable[ 256 ]; + + if ( inputLength == 0 ) + return ; + + // Zero out the frequency table + memset( frequencyTable, 0, sizeof( frequencyTable ) ); + + // Generate the frequency table from the strings + for ( index = 0; index < inputLength; index++ ) + frequencyTable[ input[ index ] ] ++; + + // Build the tree + huffmanEncodingTree = RakNet::OP_NEW( _FILE_AND_LINE_ ); + huffmanEncodingTree->GenerateFromFrequencyTable( frequencyTable ); + huffmanEncodingTrees.Set(languageId, huffmanEncodingTree); +} + +StringCompressor::~StringCompressor() +{ + for (unsigned i=0; i < huffmanEncodingTrees.Size(); i++) + RakNet::OP_DELETE(huffmanEncodingTrees[i], _FILE_AND_LINE_); +} + +void StringCompressor::EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId ) +{ + HuffmanEncodingTree *huffmanEncodingTree; + if (huffmanEncodingTrees.Has(languageId)==false) + return; + huffmanEncodingTree=huffmanEncodingTrees.Get(languageId); + + if ( input == 0 ) + { + output->WriteCompressed( (uint32_t) 0 ); + return ; + } + + RakNet::BitStream encodedBitStream; + + uint32_t stringBitLength; + + int charsToWrite; + + if ( maxCharsToWrite<=0 || ( int ) strlen( input ) < maxCharsToWrite ) + charsToWrite = ( int ) strlen( input ); + else + charsToWrite = maxCharsToWrite - 1; + + huffmanEncodingTree->EncodeArray( ( unsigned char* ) input, charsToWrite, &encodedBitStream ); + + stringBitLength = (uint32_t) encodedBitStream.GetNumberOfBitsUsed(); + + output->WriteCompressed( stringBitLength ); + + output->WriteBits( encodedBitStream.GetData(), stringBitLength ); +} + +bool StringCompressor::DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + HuffmanEncodingTree *huffmanEncodingTree; + if (huffmanEncodingTrees.Has(languageId)==false) + return false; + if (maxCharsToWrite<=0) + return false; + huffmanEncodingTree=huffmanEncodingTrees.Get(languageId); + + uint32_t stringBitLength; + int bytesInStream; + + output[ 0 ] = 0; + + if ( input->ReadCompressed( stringBitLength ) == false ) + return false; + + if ( (unsigned) input->GetNumberOfUnreadBits() < stringBitLength ) + return false; + + bytesInStream = huffmanEncodingTree->DecodeArray( input, stringBitLength, maxCharsToWrite, ( unsigned char* ) output ); + + if ( bytesInStream < maxCharsToWrite ) + output[ bytesInStream ] = 0; + else + output[ maxCharsToWrite - 1 ] = 0; + + return true; +} +#ifdef _CSTRING_COMPRESSOR +void StringCompressor::EncodeString( const CString &input, int maxCharsToWrite, RakNet::BitStream *output ) +{ + LPTSTR p = input; + EncodeString(p, maxCharsToWrite*sizeof(TCHAR), output, languageID); +} +bool StringCompressor::DecodeString( CString &output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + LPSTR p = output.GetBuffer(maxCharsToWrite*sizeof(TCHAR)); + DecodeString(p,maxCharsToWrite*sizeof(TCHAR), input, languageID); + output.ReleaseBuffer(0) + +} +#endif +#ifdef _STD_STRING_COMPRESSOR +void StringCompressor::EncodeString( const std::string &input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId ) +{ + EncodeString(input.c_str(), maxCharsToWrite, output, languageID); +} +bool StringCompressor::DecodeString( std::string *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + if (maxCharsToWrite <= 0) + { + output->clear(); + return true; + } + + char *destinationBlock; + bool out; + + + if (maxCharsToWrite < MAX_ALLOCA_STACK_ALLOCATION) + { + destinationBlock = (char*) alloca(maxCharsToWrite); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageID); + *output=destinationBlock; + } + else + + { + destinationBlock = (char*) rakMalloc_Ex( maxCharsToWrite, _FILE_AND_LINE_ ); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageId); + *output=destinationBlock; + rakFree_Ex(destinationBlock, _FILE_AND_LINE_ ); + } + + return out; +} +#endif +void StringCompressor::EncodeString( const RakString *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId ) +{ + EncodeString(input->C_String(), maxCharsToWrite, output, languageId); +} +bool StringCompressor::DecodeString( RakString *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId ) +{ + if (maxCharsToWrite <= 0) + { + output->Clear(); + return true; + } + + char *destinationBlock; + bool out; + + + if (maxCharsToWrite < MAX_ALLOCA_STACK_ALLOCATION) + { + destinationBlock = (char*) alloca(maxCharsToWrite); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageId); + *output=destinationBlock; + } + else + + { + destinationBlock = (char*) rakMalloc_Ex( maxCharsToWrite, _FILE_AND_LINE_ ); + out=DecodeString(destinationBlock, maxCharsToWrite, input, languageId); + *output=destinationBlock; + rakFree_Ex(destinationBlock, _FILE_AND_LINE_ ); + } + + return out; +} diff --git a/src/raknet/StringCompressor.h b/src/raknet/StringCompressor.h new file mode 100755 index 0000000..6852ce8 --- /dev/null +++ b/src/raknet/StringCompressor.h @@ -0,0 +1,105 @@ +/// \file +/// \brief \b Compresses/Decompresses ASCII strings and writes/reads them to BitStream class instances. You can use this to easily serialize and deserialize your own strings. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __STRING_COMPRESSOR_H +#define __STRING_COMPRESSOR_H + +#include "Export.h" +#include "DS_Map.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" + +#ifdef _STD_STRING_COMPRESSOR +#include +#endif + +/// Forward declaration +namespace RakNet +{ + class BitStream; + class RakString; +}; + + +namespace RakNet +{ +/// Forward declarations +class HuffmanEncodingTree; + +/// \brief Writes and reads strings to and from bitstreams. +/// +/// Only works with ASCII strings. The default compression is for English. +/// You can call GenerateTreeFromStrings to compress and decompress other languages efficiently as well. +class RAK_DLL_EXPORT StringCompressor +{ +public: + + // Destructor + ~StringCompressor(); + + /// static function because only static functions can access static members + /// The RakPeer constructor adds a reference to this class, so don't call this until an instance of RakPeer exists, or unless you call AddReference yourself. + /// \return the unique instance of the StringCompressor + static StringCompressor* Instance(void); + + /// Given an array of strings, such as a chat log, generate the optimal encoding tree for it. + /// This function is optional and if it is not called a default tree will be used instead. + /// \param[in] input An array of bytes which should point to text. + /// \param[in] inputLength Length of \a input + /// \param[in] languageID An identifier for the language / string table to generate the tree for. English is automatically created with ID 0 in the constructor. + void GenerateTreeFromStrings( unsigned char *input, unsigned inputLength, uint8_t languageId ); + + /// Writes input to output, compressed. Takes care of the null terminator for you. + /// \param[in] input Pointer to an ASCII string + /// \param[in] maxCharsToWrite The max number of bytes to write of \a input. Use 0 to mean no limit. + /// \param[out] output The bitstream to write the compressed string to + /// \param[in] languageID Which language to use + void EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + + /// Writes input to output, uncompressed. Takes care of the null terminator for you. + /// \param[out] output A block of bytes to receive the output + /// \param[in] maxCharsToWrite Size, in bytes, of \a output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. + /// \param[in] input The bitstream containing the compressed string + /// \param[in] languageID Which language to use + bool DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); + +#ifdef _CSTRING_COMPRESSOR + void EncodeString( const CString &input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + bool DecodeString( CString &output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); +#endif + +#ifdef _STD_STRING_COMPRESSOR + void EncodeString( const std::string &input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + bool DecodeString( std::string *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); +#endif + + void EncodeString( const RakNet::RakString *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0 ); + bool DecodeString( RakNet::RakString *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0 ); + + /// Used so I can allocate and deallocate this singleton at runtime + static void AddReference(void); + + /// Used so I can allocate and deallocate this singleton at runtime + static void RemoveReference(void); + + StringCompressor(); + +private: + + /// Singleton instance + static StringCompressor *instance; + + /// Pointer to the huffman encoding trees. + DataStructures::Map huffmanEncodingTrees; + + static int referenceCount; +}; + +} // namespace RakNet + +#endif diff --git a/src/raknet/StringTable.cpp b/src/raknet/StringTable.cpp new file mode 100755 index 0000000..48665d8 --- /dev/null +++ b/src/raknet/StringTable.cpp @@ -0,0 +1,140 @@ +#include "StringTable.h" +#include +#include "RakAssert.h" +#include +#include "BitStream.h" +#include "StringCompressor.h" +using namespace RakNet; + +StringTable* StringTable::instance=0; +int StringTable::referenceCount=0; + + +int RakNet::StrAndBoolComp( char *const &key, const StrAndBool &data ) +{ + return strcmp(key,(const char*)data.str); +} + +StringTable::StringTable() +{ + +} + +StringTable::~StringTable() +{ + unsigned i; + for (i=0; i < orderedStringList.Size(); i++) + { + if (orderedStringList[i].b) + rakFree_Ex(orderedStringList[i].str, _FILE_AND_LINE_ ); + } +} + +void StringTable::AddReference(void) +{ + if (++referenceCount==1) + { + instance = RakNet::OP_NEW( _FILE_AND_LINE_ ); + } +} +void StringTable::RemoveReference(void) +{ + RakAssert(referenceCount > 0); + + if (referenceCount > 0) + { + if (--referenceCount==0) + { + RakNet::OP_DELETE(instance, _FILE_AND_LINE_); + instance=0; + } + } +} + +StringTable* StringTable::Instance(void) +{ + return instance; +} + +void StringTable::AddString(const char *str, bool copyString) +{ + StrAndBool sab; + sab.b=copyString; + if (copyString) + { + sab.str = (char*) rakMalloc_Ex( strlen(str)+1, _FILE_AND_LINE_ ); + strcpy(sab.str, str); + } + else + { + sab.str=(char*)str; + } + + // If it asserts inside here you are adding duplicate strings. + orderedStringList.Insert(sab.str,sab, true, _FILE_AND_LINE_); + + // If this assert hits you need to increase the range of StringTableType + RakAssert(orderedStringList.Size() < (StringTableType)-1); + +} +void StringTable::EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output ) +{ + unsigned index; + bool objectExists; + // This is fast because the list is kept ordered. + index=orderedStringList.GetIndexFromKey((char*)input, &objectExists); + if (objectExists) + { + output->Write(true); + output->Write((StringTableType)index); + } + else + { + LogStringNotFound(input); + output->Write(false); + StringCompressor::Instance()->EncodeString(input, maxCharsToWrite, output); + } +} + +bool StringTable::DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input ) +{ + bool hasIndex=false; + RakAssert(maxCharsToWrite>0); + + if (maxCharsToWrite==0) + return false; + if (!input->Read(hasIndex)) + return false; + if (hasIndex==false) + { + StringCompressor::Instance()->DecodeString(output, maxCharsToWrite, input); + } + else + { + StringTableType index; + if (!input->Read(index)) + return false; + if (index >= orderedStringList.Size()) + { +#ifdef _DEBUG + // Critical error - got a string index out of range, which means AddString was called more times on the remote system than on this system. + // All systems must call AddString the same number of types, with the same strings in the same order. + RakAssert(0); +#endif + return false; + } + + strncpy(output, orderedStringList[index].str, maxCharsToWrite); + output[maxCharsToWrite-1]=0; + } + + return true; +} +void StringTable::LogStringNotFound(const char *strName) +{ + (void) strName; + +#ifdef _DEBUG + RAKNET_DEBUG_PRINTF("Efficiency Warning! Unregistered String %s sent to StringTable.\n", strName); +#endif +} diff --git a/src/raknet/StringTable.h b/src/raknet/StringTable.h new file mode 100755 index 0000000..f886bb7 --- /dev/null +++ b/src/raknet/StringTable.h @@ -0,0 +1,96 @@ +/// \file +/// \brief A simple class to encode and decode known strings based on a lookup table. Similar to the StringCompressor class. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __STRING_TABLE_H +#define __STRING_TABLE_H + +#include "DS_OrderedList.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +/// Forward declaration +namespace RakNet +{ + class BitStream; +}; + +/// StringTableType should be the smallest type possible, or else it defeats the purpose of the StringTable class, which is to save bandwidth. +typedef unsigned char StringTableType; + +/// The string plus a bool telling us if this string was copied or not. +struct StrAndBool +{ + char *str; + bool b; +}; + +namespace RakNet +{ + int RAK_DLL_EXPORT StrAndBoolComp( char *const &key, const StrAndBool &data ); + + /// \details This is an even more efficient alternative to StringCompressor in that it writes a single byte from a lookup table and only does compression.
      + /// if the string does not already exist in the table.
      + /// All string tables must match on all systems - hence you must add all the strings in the same order on all systems.
      + /// Furthermore, this must be done before sending packets that use this class, since the strings are ordered for fast lookup. Adding after that time would mess up all the indices so don't do it.
      + /// Don't use this class to write strings which were not previously registered with AddString, since you just waste bandwidth then. Use StringCompressor instead. + /// \brief Writes a string index, instead of the whole string + class RAK_DLL_EXPORT StringTable + { + public: + + // Destructor + ~StringTable(); + + /// static function because only static functions can access static members + /// The RakPeer constructor adds a reference to this class, so don't call this until an instance of RakPeer exists, or unless you call AddReference yourself. + /// \return the unique instance of the StringTable + static StringTable* Instance(void); + + /// Add a string to the string table. + /// \param[in] str The string to add to the string table + /// \param[in] copyString true to make a copy of the passed string (takes more memory), false to not do so (if your string is in static memory). + void AddString(const char *str, bool copyString); + + /// Writes input to output, compressed. Takes care of the null terminator for you. + /// Relies on the StringCompressor class, which is automatically reference counted in the constructor and destructor in RakPeer. You can call the reference counting functions yourself if you wish too. + /// \param[in] input Pointer to an ASCII string + /// \param[in] maxCharsToWrite The size of \a input + /// \param[out] output The bitstream to write the compressed string to + void EncodeString( const char *input, int maxCharsToWrite, RakNet::BitStream *output ); + + /// Writes input to output, uncompressed. Takes care of the null terminator for you. + /// Relies on the StringCompressor class, which is automatically reference counted in the constructor and destructor in RakPeer. You can call the reference counting functions yourself if you wish too. + /// \param[out] output A block of bytes to receive the output + /// \param[in] maxCharsToWrite Size, in bytes, of \a output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. + /// \param[in] input The bitstream containing the compressed string + bool DecodeString( char *output, int maxCharsToWrite, RakNet::BitStream *input ); + + /// Used so I can allocate and deallocate this singleton at runtime + static void AddReference(void); + + /// Used so I can allocate and deallocate this singleton at runtime + static void RemoveReference(void); + + /// Private Constructor + StringTable(); + + protected: + /// Called when you mess up and send a string using this class that was not registered with AddString + /// \param[in] maxCharsToWrite Size, in bytes, of \a output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. + void LogStringNotFound(const char *strName); + + /// Singleton instance + static StringTable *instance; + static int referenceCount; + + DataStructures::OrderedList orderedStringList; + }; +} + + +#endif diff --git a/src/raknet/SuperFastHash.cpp b/src/raknet/SuperFastHash.cpp new file mode 100755 index 0000000..f5626e9 --- /dev/null +++ b/src/raknet/SuperFastHash.cpp @@ -0,0 +1,119 @@ +#include "SuperFastHash.h" +#include "NativeTypes.h" +#include + +#if !defined(_WIN32) +#include +#endif + +#undef get16bits + +#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ + || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) +#define get16bits(d) (*((const uint16_t *) (d))) +#else +#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif + +static const int INCREMENTAL_READ_BLOCK=65536; + +uint32_t SuperFastHash (const char * data, int length) +{ + // All this is necessary or the hash does not match SuperFastHashIncremental + int bytesRemaining=length; + unsigned int lastHash = length; + int offset=0; + while (bytesRemaining>=INCREMENTAL_READ_BLOCK) + { + lastHash=SuperFastHashIncremental (data+offset, INCREMENTAL_READ_BLOCK, lastHash ); + bytesRemaining-=INCREMENTAL_READ_BLOCK; + offset+=INCREMENTAL_READ_BLOCK; + } + if (bytesRemaining>0) + { + lastHash=SuperFastHashIncremental (data+offset, bytesRemaining, lastHash ); + } + return lastHash; + +// return SuperFastHashIncremental(data,len,len); +} +uint32_t SuperFastHashIncremental (const char * data, int len, unsigned int lastHash ) +{ + uint32_t hash = (uint32_t) lastHash; + uint32_t tmp; + int rem; + + if (len <= 0 || data == NULL) return 0; + + rem = len & 3; + len >>= 2; + + /* Main loop */ + for (;len > 0; len--) { + hash += get16bits (data); + tmp = (get16bits (data+2) << 11) ^ hash; + hash = (hash << 16) ^ tmp; + data += 2*sizeof (uint16_t); + hash += hash >> 11; + } + + /* Handle end cases */ + switch (rem) { + case 3: hash += get16bits (data); + hash ^= hash << 16; + hash ^= data[sizeof (uint16_t)] << 18; + hash += hash >> 11; + break; + case 2: hash += get16bits (data); + hash ^= hash << 11; + hash += hash >> 17; + break; + case 1: hash += *data; + hash ^= hash << 10; + hash += hash >> 1; + } + + /* Force "avalanching" of final 127 bits */ + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + + return (uint32_t) hash; + +} + +uint32_t SuperFastHashFile (const char * filename) +{ + FILE *fp = fopen(filename, "rb"); + if (fp==0) + return 0; + uint32_t hash = SuperFastHashFilePtr(fp); + fclose(fp); + return hash; +} + +uint32_t SuperFastHashFilePtr (FILE *fp) +{ + fseek(fp, 0, SEEK_END); + int length = ftell(fp); + fseek(fp, 0, SEEK_SET); + int bytesRemaining=length; + unsigned int lastHash = length; + char readBlock[INCREMENTAL_READ_BLOCK]; + while (bytesRemaining>=(int) sizeof(readBlock)) + { + fread(readBlock, sizeof(readBlock), 1, fp); + lastHash=SuperFastHashIncremental (readBlock, (int) sizeof(readBlock), lastHash ); + bytesRemaining-=(int) sizeof(readBlock); + } + if (bytesRemaining>0) + { + fread(readBlock, bytesRemaining, 1, fp); + lastHash=SuperFastHashIncremental (readBlock, bytesRemaining, lastHash ); + } + return lastHash; +} diff --git a/src/raknet/SuperFastHash.h b/src/raknet/SuperFastHash.h new file mode 100755 index 0000000..fd8463c --- /dev/null +++ b/src/raknet/SuperFastHash.h @@ -0,0 +1,17 @@ +#ifndef __SUPER_FAST_HASH_H +#define __SUPER_FAST_HASH_H + +#include +#include "NativeTypes.h" + +// From http://www.azillionmonkeys.com/qed/hash.html +// Author of main code is Paul Hsieh +// I just added some convenience functions +// Also note http://burtleburtle.net/bob/hash/doobs.html, which shows that this is 20% faster than the one on that page but has more collisions + +uint32_t SuperFastHash (const char * data, int length); +uint32_t SuperFastHashIncremental (const char * data, int len, unsigned int lastHash ); +uint32_t SuperFastHashFile (const char * filename); +uint32_t SuperFastHashFilePtr (FILE *fp); + +#endif diff --git a/src/raknet/TCPInterface.cpp b/src/raknet/TCPInterface.cpp new file mode 100755 index 0000000..78826af --- /dev/null +++ b/src/raknet/TCPInterface.cpp @@ -0,0 +1,1218 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TCPInterface==1 + +/// \file +/// \brief A simple TCP based server allowing sends and receives. Can be connected to by a telnet client. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "TCPInterface.h" +#ifdef _WIN32 +typedef int socklen_t; + + +#else +#include +#include +#include +#endif +#include +#include "RakAssert.h" +#include +#include "RakAssert.h" +#include "RakSleep.h" +#include "StringCompressor.h" +#include "StringTable.h" +#include "Itoa.h" +#include "SocketLayer.h" +#include "SocketDefines.h" + +#ifdef _DO_PRINTF +#endif + +#ifdef _WIN32 +#include "WSAStartupSingleton.h" +#endif +namespace RakNet +{ +RAK_THREAD_DECLARATION(UpdateTCPInterfaceLoop); +RAK_THREAD_DECLARATION(ConnectionAttemptLoop); +} +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(TCPInterface,TCPInterface); + +TCPInterface::TCPInterface() +{ + isStarted=false; + threadRunning=false; + listenSocket=(SOCKET) -1; + remoteClients=0; + remoteClientsLength=0; + + StringCompressor::AddReference(); + RakNet::StringTable::AddReference(); + +#if OPEN_SSL_CLIENT_SUPPORT==1 + ctx=0; + meth=0; +#endif + +#ifdef _WIN32 + WSAStartupSingleton::AddRef(); +#endif +} +TCPInterface::~TCPInterface() +{ + Stop(); +#ifdef _WIN32 + WSAStartupSingleton::Deref(); +#endif + + RakNet::OP_DELETE_ARRAY(remoteClients,_FILE_AND_LINE_); + + StringCompressor::RemoveReference(); + RakNet::StringTable::RemoveReference(); +} +bool TCPInterface::Start(unsigned short port, unsigned short maxIncomingConnections, unsigned short maxConnections, int _threadPriority, unsigned short socketFamily) +{ + (void) socketFamily; + + if (isStarted) + return false; + + threadPriority=_threadPriority; + + if (threadPriority==-99999) + { + + +#if defined(_WIN32) + threadPriority=0; + + +#else + threadPriority=1000; +#endif + } + + isStarted=true; + if (maxConnections==0) + maxConnections=maxIncomingConnections; + if (maxConnections==0) + maxConnections=1; + remoteClientsLength=maxConnections; + remoteClients=RakNet::OP_NEW_ARRAY(maxConnections,_FILE_AND_LINE_); + + +#if RAKNET_SUPPORT_IPV6!=1 + if (maxIncomingConnections>0) + { + listenSocket = socket__(AF_INET, SOCK_STREAM, 0); + if ((int)listenSocket ==-1) + return false; + + struct sockaddr_in serverAddress; + memset(&serverAddress,0,sizeof(sockaddr_in)); + serverAddress.sin_family = AF_INET; + + serverAddress.sin_addr.s_addr = htonl(INADDR_ANY); + + serverAddress.sin_port = htons(port); + + if (bind__(listenSocket,(struct sockaddr *) &serverAddress,sizeof(serverAddress)) < 0) + return false; + + listen__(listenSocket, maxIncomingConnections); + } +#else + listenSocket=INVALID_SOCKET; + if (maxIncomingConnections>0) + { + struct addrinfo hints; + memset(&hints, 0, sizeof (addrinfo)); // make sure the struct is empty + hints.ai_family = socketFamily; // don't care IPv4 or IPv6 + hints.ai_socktype = SOCK_STREAM; // TCP sockets + hints.ai_flags = AI_PASSIVE; // fill in my IP for me + struct addrinfo *servinfo=0, *aip; // will point to the results + char portStr[32]; + Itoa(port,portStr,10); + + getaddrinfo(0, portStr, &hints, &servinfo); + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + listenSocket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (listenSocket != INVALID_SOCKET) + { + int ret = bind__( listenSocket, aip->ai_addr, (int) aip->ai_addrlen ); + if (ret>=0) + { + break; + } + else + { + closesocket__(listenSocket); + listenSocket=INVALID_SOCKET; + } + } + } + + if (listenSocket==INVALID_SOCKET) + return false; + + listen__(listenSocket, maxIncomingConnections); + } +#endif // #if RAKNET_SUPPORT_IPV6!=1 + + + // Start the update thread + int errorCode; + + + + + + errorCode = RakNet::RakThread::Create(UpdateTCPInterfaceLoop, this, threadPriority); + + + if (errorCode!=0) + return false; + + while (threadRunning==false) + RakSleep(0); + + return true; +} +void TCPInterface::Stop(void) +{ + if (isStarted==false) + return; + + unsigned i; +#if OPEN_SSL_CLIENT_SUPPORT==1 + for (i=0; i < remoteClientsLength; i++) + remoteClients[i].DisconnectSSL(); +#endif + + isStarted=false; + + if (listenSocket!=(SOCKET) -1) + { +#ifdef _WIN32 + shutdown__(listenSocket, SD_BOTH); + +#else + shutdown__(listenSocket, SHUT_RDWR); +#endif + closesocket__(listenSocket); + listenSocket=(SOCKET) -1; + } + + // Abort waiting connect calls + blockingSocketListMutex.Lock(); + for (i=0; i < blockingSocketList.Size(); i++) + { + closesocket__(blockingSocketList[i]); + } + blockingSocketListMutex.Unlock(); + + // Wait for the thread to stop + while ( threadRunning ) + RakSleep(15); + + RakSleep(100); + + // Stuff from here on to the end of the function is not threadsafe + for (i=0; i < (unsigned int) remoteClientsLength; i++) + { + closesocket__(remoteClients[i].socket); +#if OPEN_SSL_CLIENT_SUPPORT==1 + remoteClients[i].FreeSSL(); +#endif + } + remoteClientsLength=0; + RakNet::OP_DELETE_ARRAY(remoteClients,_FILE_AND_LINE_); + remoteClients=0; + + incomingMessages.Clear(_FILE_AND_LINE_); + newIncomingConnections.Clear(_FILE_AND_LINE_); + newRemoteClients.Clear(_FILE_AND_LINE_); + lostConnections.Clear(_FILE_AND_LINE_); + requestedCloseConnections.Clear(_FILE_AND_LINE_); + failedConnectionAttempts.Clear(_FILE_AND_LINE_); + completedConnectionAttempts.Clear(_FILE_AND_LINE_); + failedConnectionAttempts.Clear(_FILE_AND_LINE_); + for (i=0; i < headPush.Size(); i++) + DeallocatePacket(headPush[i]); + headPush.Clear(_FILE_AND_LINE_); + for (i=0; i < tailPush.Size(); i++) + DeallocatePacket(tailPush[i]); + tailPush.Clear(_FILE_AND_LINE_); + +#if OPEN_SSL_CLIENT_SUPPORT==1 + SSL_CTX_free (ctx); + startSSL.Clear(_FILE_AND_LINE_); + activeSSLConnections.Clear(false, _FILE_AND_LINE_); +#endif + + + + + +} +SystemAddress TCPInterface::Connect(const char* host, unsigned short remotePort, bool block, unsigned short socketFamily) +{ + if (threadRunning==false) + return UNASSIGNED_SYSTEM_ADDRESS; + + int newRemoteClientIndex=-1; + for (newRemoteClientIndex=0; newRemoteClientIndex < remoteClientsLength; newRemoteClientIndex++) + { + remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + if (remoteClients[newRemoteClientIndex].isActive==false) + { + remoteClients[newRemoteClientIndex].SetActive(true); + remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + break; + } + remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + } + if (newRemoteClientIndex==-1) + return UNASSIGNED_SYSTEM_ADDRESS; + + if (block) + { + SystemAddress systemAddress; + systemAddress.FromString(host); + systemAddress.SetPort(remotePort); + systemAddress.systemIndex=(SystemIndex) newRemoteClientIndex; + char buffout[128]; + systemAddress.ToString(false,buffout); + + SOCKET sockfd = SocketConnect(buffout, remotePort, socketFamily); + if (sockfd==(SOCKET)-1) + { + remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + remoteClients[newRemoteClientIndex].SetActive(false); + remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + + failedConnectionAttemptMutex.Lock(); + failedConnectionAttempts.Push(systemAddress, _FILE_AND_LINE_ ); + failedConnectionAttemptMutex.Unlock(); + + return UNASSIGNED_SYSTEM_ADDRESS; + } + + remoteClients[newRemoteClientIndex].socket=sockfd; + remoteClients[newRemoteClientIndex].systemAddress=systemAddress; + + completedConnectionAttemptMutex.Lock(); + completedConnectionAttempts.Push(remoteClients[newRemoteClientIndex].systemAddress, _FILE_AND_LINE_ ); + completedConnectionAttemptMutex.Unlock(); + + return remoteClients[newRemoteClientIndex].systemAddress; + } + else + { + ThisPtrPlusSysAddr *s = RakNet::OP_NEW( _FILE_AND_LINE_ ); + s->systemAddress.FromStringExplicitPort(host,remotePort); + s->systemAddress.systemIndex=(SystemIndex) newRemoteClientIndex; + s->tcpInterface=this; + s->socketFamily=socketFamily; + + // Start the connection thread + int errorCode; + + + + + errorCode = RakNet::RakThread::Create(ConnectionAttemptLoop, s, threadPriority); + + if (errorCode!=0) + { + RakNet::OP_DELETE(s, _FILE_AND_LINE_); + failedConnectionAttempts.Push(s->systemAddress, _FILE_AND_LINE_ ); + } + return UNASSIGNED_SYSTEM_ADDRESS; + } +} +#if OPEN_SSL_CLIENT_SUPPORT==1 +void TCPInterface::StartSSLClient(SystemAddress systemAddress) +{ + if (ctx==0) + { + sharedSslMutex.Lock(); + SSLeay_add_ssl_algorithms(); + meth = (SSL_METHOD*) SSLv2_client_method(); + SSL_load_error_strings(); + ctx = SSL_CTX_new (meth); + RakAssert(ctx!=0); + sharedSslMutex.Unlock(); + } + + SystemAddress *id = startSSL.Allocate( _FILE_AND_LINE_ ); + *id=systemAddress; + startSSL.Push(id); + unsigned index = activeSSLConnections.GetIndexOf(systemAddress); + if (index==(unsigned)-1) + activeSSLConnections.Insert(systemAddress,_FILE_AND_LINE_); +} +bool TCPInterface::IsSSLActive(SystemAddress systemAddress) +{ + return activeSSLConnections.GetIndexOf(systemAddress)!=-1; +} +#endif +void TCPInterface::Send( const char *data, unsigned length, const SystemAddress &systemAddress, bool broadcast ) +{ + SendList( &data, &length, 1, systemAddress,broadcast ); +} +bool TCPInterface::SendList( const char **data, const unsigned int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ) +{ + if (isStarted==false) + return false; + if (data==0) + return false; + if (systemAddress==UNASSIGNED_SYSTEM_ADDRESS && broadcast==false) + return false; + unsigned int totalLength=0; + int i; + for (i=0; i < numParameters; i++) + { + if (lengths[i]>0) + totalLength+=lengths[i]; + } + if (totalLength==0) + return false; + + if (broadcast) + { + // Send to all, possible exception system + for (i=0; i < remoteClientsLength; i++) + { + if (remoteClients[i].systemAddress!=systemAddress) + { + remoteClients[i].SendOrBuffer(data, lengths, numParameters); + } + } + } + else + { + // Send to this player + if (systemAddress.systemIndexdeleteData) + { + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + incomingMessages.Deallocate(packet, _FILE_AND_LINE_); + } + else + { + // Came from userspace AllocatePacket + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + RakNet::OP_DELETE(packet, _FILE_AND_LINE_); + } +} +Packet* TCPInterface::AllocatePacket(unsigned dataSize) +{ + Packet*p = RakNet::OP_NEW(_FILE_AND_LINE_); + p->data=(unsigned char*) rakMalloc_Ex(dataSize,_FILE_AND_LINE_); + p->length=dataSize; + p->bitSize=BYTES_TO_BITS(dataSize); + p->deleteData=false; + p->guid=UNASSIGNED_RAKNET_GUID; + p->systemAddress=UNASSIGNED_SYSTEM_ADDRESS; + p->systemAddress.systemIndex=(SystemIndex)-1; + return p; +} +void TCPInterface::PushBackPacket( Packet *packet, bool pushAtHead ) +{ + if (pushAtHead) + headPush.Push(packet, _FILE_AND_LINE_ ); + else + tailPush.Push(packet, _FILE_AND_LINE_ ); +} +bool TCPInterface::WasStarted(void) const +{ + return threadRunning==true; +} +int TCPInterface::Base64Encoding(const char *inputData, int dataLength, char *outputData) +{ + // http://en.wikipedia.org/wiki/Base64 + + int outputOffset, charCount; + int write3Count; + outputOffset=0; + charCount=0; + int j; + + write3Count=dataLength/3; + for (j=0; j < write3Count; j++) + { + // 6 leftmost bits from first byte, shifted to bits 7,8 are 0 + outputData[outputOffset++]=Base64Map()[inputData[j*3+0] >> 2]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Remaining 2 bits from first byte, placed in position, and 4 high bits from the second byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+0] << 4) | (inputData[j*3+1] >> 4)) & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // 4 low bits from the second byte and the two high bits from the third byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+1] << 2) | (inputData[j*3+2] >> 6)) & 63]; // Third 6 bits + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Last 6 bits from the third byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[inputData[j*3+2] & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + } + + if (dataLength % 3==1) + { + // One input byte remaining + outputData[outputOffset++]=Base64Map()[inputData[j*3+0] >> 2]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Remaining 2 bits from first byte, placed in position, and 4 high bits from the second byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+0] << 4) | (inputData[j*3+1] >> 4)) & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Pad with two equals + outputData[outputOffset++]='='; + outputData[outputOffset++]='='; + } + else if (dataLength % 3==2) + { + // Two input bytes remaining + + // 6 leftmost bits from first byte, shifted to bits 7,8 are 0 + outputData[outputOffset++]=Base64Map()[inputData[j*3+0] >> 2]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Remaining 2 bits from first byte, placed in position, and 4 high bits from the second byte, masked to ignore bits 7,8 + outputData[outputOffset++]=Base64Map()[((inputData[j*3+0] << 4) | (inputData[j*3+1] >> 4)) & 63]; + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // 4 low bits from the second byte, followed by 00 + outputData[outputOffset++]=Base64Map()[(inputData[j*3+1] << 2) & 63]; // Third 6 bits + if ((++charCount % 76)==0) {outputData[outputOffset++]='\r'; outputData[outputOffset++]='\n'; charCount=0;} + + // Pad with one equal + outputData[outputOffset++]='='; + //outputData[outputOffset++]='='; + } + + // Append \r\n + outputData[outputOffset++]='\r'; + outputData[outputOffset++]='\n'; + outputData[outputOffset]=0; + + return outputOffset; +} +SystemAddress TCPInterface::HasCompletedConnectionAttempt(void) +{ + SystemAddress sysAddr=UNASSIGNED_SYSTEM_ADDRESS; + completedConnectionAttemptMutex.Lock(); + if (completedConnectionAttempts.IsEmpty()==false) + sysAddr=completedConnectionAttempts.Pop(); + completedConnectionAttemptMutex.Unlock(); + return sysAddr; +} +SystemAddress TCPInterface::HasFailedConnectionAttempt(void) +{ + SystemAddress sysAddr=UNASSIGNED_SYSTEM_ADDRESS; + failedConnectionAttemptMutex.Lock(); + if (failedConnectionAttempts.IsEmpty()==false) + sysAddr=failedConnectionAttempts.Pop(); + failedConnectionAttemptMutex.Unlock(); + return sysAddr; +} +SystemAddress TCPInterface::HasNewIncomingConnection(void) +{ + SystemAddress *out, out2; + out = newIncomingConnections.PopInaccurate(); + if (out) + { + out2=*out; + newIncomingConnections.Deallocate(out, _FILE_AND_LINE_); + return *out; + } + else + { + return UNASSIGNED_SYSTEM_ADDRESS; + } +} +SystemAddress TCPInterface::HasLostConnection(void) +{ + SystemAddress *out, out2; + out = lostConnections.PopInaccurate(); + if (out) + { + out2=*out; + lostConnections.Deallocate(out, _FILE_AND_LINE_); + return *out; + } + else + { + return UNASSIGNED_SYSTEM_ADDRESS; + } +} +void TCPInterface::GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const +{ + unsigned short systemCount=0; + unsigned short maxToWrite=*numberOfSystems; + for (int i=0; i < remoteClientsLength; i++) + { + if (remoteClients[i].isActive) + { + if (systemCount < maxToWrite) + remoteSystems[systemCount]=remoteClients[i].systemAddress; + systemCount++; + } + } + *numberOfSystems=systemCount; +} +unsigned short TCPInterface::GetConnectionCount(void) const +{ + unsigned short systemCount=0; + for (int i=0; i < remoteClientsLength; i++) + { + if (remoteClients[i].isActive) + systemCount++; + } + return systemCount; +} + +unsigned int TCPInterface::GetOutgoingDataBufferSize(SystemAddress systemAddress) const +{ + unsigned bytesWritten=0; + if (systemAddress.systemIndexh_addr, server->h_length); + + + + + + + blockingSocketListMutex.Lock(); + blockingSocketList.Insert(sockfd, _FILE_AND_LINE_); + blockingSocketListMutex.Unlock(); + + // This is blocking + connectResult = connect__( sockfd, ( struct sockaddr * ) &serverAddress, sizeof( struct sockaddr ) ); + +#else + + + struct addrinfo hints, *res; + int sockfd; + memset(&hints, 0, sizeof hints); + hints.ai_family = socketFamily; + hints.ai_socktype = SOCK_STREAM; + char portStr[32]; + Itoa(remotePort,portStr,10); + getaddrinfo(host, portStr, &hints, &res); + sockfd = socket__(res->ai_family, res->ai_socktype, res->ai_protocol); + blockingSocketListMutex.Lock(); + blockingSocketList.Insert(sockfd, _FILE_AND_LINE_); + blockingSocketListMutex.Unlock(); + connectResult=connect__(sockfd, res->ai_addr, res->ai_addrlen); + freeaddrinfo(res); // free the linked-list + +#endif // #if RAKNET_SUPPORT_IPV6!=1 + + if (connectResult==-1) + { + unsigned sockfdIndex; + blockingSocketListMutex.Lock(); + sockfdIndex=blockingSocketList.GetIndexOf(sockfd); + if (sockfdIndex!=(unsigned)-1) + blockingSocketList.RemoveAtIndexFast(sockfdIndex); + blockingSocketListMutex.Unlock(); + + closesocket__(sockfd); + return (SOCKET) -1; + } + + return sockfd; +} + +RAK_THREAD_DECLARATION(RakNet::ConnectionAttemptLoop) +{ + + + + TCPInterface::ThisPtrPlusSysAddr *s = (TCPInterface::ThisPtrPlusSysAddr *) arguments; + + + + SystemAddress systemAddress = s->systemAddress; + TCPInterface *tcpInterface = s->tcpInterface; + int newRemoteClientIndex=systemAddress.systemIndex; + unsigned short socketFamily = s->socketFamily; + RakNet::OP_DELETE(s, _FILE_AND_LINE_); + + char str1[64]; + systemAddress.ToString(false, str1); + SOCKET sockfd = tcpInterface->SocketConnect(str1, systemAddress.GetPort(), socketFamily); + if (sockfd==(SOCKET)-1) + { + tcpInterface->remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + tcpInterface->remoteClients[newRemoteClientIndex].SetActive(false); + tcpInterface->remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + + tcpInterface->failedConnectionAttemptMutex.Lock(); + tcpInterface->failedConnectionAttempts.Push(systemAddress, _FILE_AND_LINE_ ); + tcpInterface->failedConnectionAttemptMutex.Unlock(); + return 0; + } + + tcpInterface->remoteClients[newRemoteClientIndex].socket=sockfd; + tcpInterface->remoteClients[newRemoteClientIndex].systemAddress=systemAddress; + + // Notify user that the connection attempt has completed. + if (tcpInterface->threadRunning) + { + tcpInterface->completedConnectionAttemptMutex.Lock(); + tcpInterface->completedConnectionAttempts.Push(systemAddress, _FILE_AND_LINE_ ); + tcpInterface->completedConnectionAttemptMutex.Unlock(); + } + + + + + return 0; + +} + +RAK_THREAD_DECLARATION(RakNet::UpdateTCPInterfaceLoop) +{ + + + + TCPInterface * sts = ( TCPInterface * ) arguments; + + +// const int BUFF_SIZE=8096; + const unsigned int BUFF_SIZE=1048576; + //char data[ BUFF_SIZE ]; + char * data = (char*) rakMalloc_Ex(BUFF_SIZE,_FILE_AND_LINE_); + Packet *incomingMessage; + fd_set readFD, exceptionFD, writeFD; + sts->threadRunning=true; + +#if RAKNET_SUPPORT_IPV6!=1 + sockaddr_in sockAddr; + int sockAddrSize = sizeof(sockAddr); +#else + struct sockaddr_storage sockAddr; + socklen_t sockAddrSize = sizeof(sockAddr); +#endif + + int len; + SOCKET newSock; + int selectResult; + + + timeval tv; + tv.tv_sec=0; + tv.tv_usec=30000; + + + while (sts->isStarted) + { +#if OPEN_SSL_CLIENT_SUPPORT==1 + SystemAddress *sslSystemAddress; + sslSystemAddress = sts->startSSL.PopInaccurate(); + if (sslSystemAddress) + { + if (sslSystemAddress->systemIndex>=0 && + sslSystemAddress->systemIndexremoteClientsLength && + sts->remoteClients[sslSystemAddress->systemIndex].systemAddress==*sslSystemAddress) + { + sts->remoteClients[sslSystemAddress->systemIndex].InitSSL(sts->ctx,sts->meth); + } + else + { + for (int i=0; i < sts->remoteClientsLength; i++) + { + sts->remoteClients[i].isActiveMutex.Lock(); + if (sts->remoteClients[i].isActive && sts->remoteClients[i].systemAddress==*sslSystemAddress) + { + if (sts->remoteClients[i].ssl==0) + sts->remoteClients[i].InitSSL(sts->ctx,sts->meth); + } + sts->remoteClients[i].isActiveMutex.Unlock(); + } + } + sts->startSSL.Deallocate(sslSystemAddress,_FILE_AND_LINE_); + } +#endif + + + SOCKET largestDescriptor=0; // see select__()'s first parameter's documentation under linux + + + // Linux' select__() implementation changes the timeout + + tv.tv_sec=0; + tv.tv_usec=30000; + + + while (1) + { + // Reset readFD, writeFD, and exceptionFD since select seems to clear it + FD_ZERO(&readFD); + FD_ZERO(&exceptionFD); + FD_ZERO(&writeFD); +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + largestDescriptor=0; + if (sts->listenSocket!=(SOCKET) -1) + { + FD_SET(sts->listenSocket, &readFD); + FD_SET(sts->listenSocket, &exceptionFD); + largestDescriptor = sts->listenSocket; // @see largestDescriptor def + } + + unsigned i; + for (i=0; i < (unsigned int) sts->remoteClientsLength; i++) + { + sts->remoteClients[i].isActiveMutex.Lock(); + if (sts->remoteClients[i].isActive && sts->remoteClients[i].socket!=INVALID_SOCKET) + { + FD_SET(sts->remoteClients[i].socket, &readFD); + FD_SET(sts->remoteClients[i].socket, &exceptionFD); + if (sts->remoteClients[i].outgoingData.GetBytesWritten()>0) + FD_SET(sts->remoteClients[i].socket, &writeFD); + if(sts->remoteClients[i].socket > largestDescriptor) // @see largestDescriptorDef + largestDescriptor = sts->remoteClients[i].socket; + } + sts->remoteClients[i].isActiveMutex.Unlock(); + } + +#ifdef _MSC_VER +#pragma warning( disable : 4244 ) // warning C4127: conditional expression is constant +#endif + + + selectResult=(int) select__(largestDescriptor+1, &readFD, &writeFD, &exceptionFD, &tv); + + + + + if (selectResult<=0) + break; + + if (sts->listenSocket!=(SOCKET) -1 && FD_ISSET(sts->listenSocket, &readFD)) + { + newSock = accept__(sts->listenSocket, (sockaddr*)&sockAddr, (socklen_t*)&sockAddrSize); + + if (newSock != (SOCKET) -1) + { + int newRemoteClientIndex=-1; + for (newRemoteClientIndex=0; newRemoteClientIndex < sts->remoteClientsLength; newRemoteClientIndex++) + { + sts->remoteClients[newRemoteClientIndex].isActiveMutex.Lock(); + if (sts->remoteClients[newRemoteClientIndex].isActive==false) + { + sts->remoteClients[newRemoteClientIndex].socket=newSock; + +#if RAKNET_SUPPORT_IPV6!=1 + sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4.sin_addr.s_addr=sockAddr.sin_addr.s_addr; + sts->remoteClients[newRemoteClientIndex].systemAddress.SetPortNetworkOrder( sockAddr.sin_port); + sts->remoteClients[newRemoteClientIndex].systemAddress.systemIndex=newRemoteClientIndex; +#else + if (sockAddr.ss_family==AF_INET) + { + memcpy(&sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4,(sockaddr_in *)&sockAddr,sizeof(sockaddr_in)); + // sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4.sin_port=ntohs( sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr4.sin_port ); + } + else + { + memcpy(&sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr6,(sockaddr_in6 *)&sockAddr,sizeof(sockaddr_in6)); + // sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr6.sin6_port=ntohs( sts->remoteClients[newRemoteClientIndex].systemAddress.address.addr6.sin6_port ); + } + +#endif // #if RAKNET_SUPPORT_IPV6!=1 + sts->remoteClients[newRemoteClientIndex].SetActive(true); + sts->remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + + + SystemAddress *newConnectionSystemAddress=sts->newIncomingConnections.Allocate( _FILE_AND_LINE_ ); + *newConnectionSystemAddress=sts->remoteClients[newRemoteClientIndex].systemAddress; + sts->newIncomingConnections.Push(newConnectionSystemAddress); + + break; + } + sts->remoteClients[newRemoteClientIndex].isActiveMutex.Unlock(); + } + if (newRemoteClientIndex==-1) + { + closesocket__(sts->listenSocket); + } + } + else + { +#ifdef _DO_PRINTF + RAKNET_DEBUG_PRINTF("Error: connection failed\n"); +#endif + } + } + else if (sts->listenSocket!=(SOCKET) -1 && FD_ISSET(sts->listenSocket, &exceptionFD)) + { +#ifdef _DO_PRINTF + int err; + int errlen = sizeof(err); + getsockopt__(sts->listenSocket, SOL_SOCKET, SO_ERROR,(char*)&err, &errlen); + RAKNET_DEBUG_PRINTF("Socket error %s on listening socket\n", err); +#endif + } + + { + i=0; + while (i < (unsigned int) sts->remoteClientsLength) + { + if (sts->remoteClients[i].isActive==false) + { + i++; + continue; + } + + if (FD_ISSET(sts->remoteClients[i].socket, &exceptionFD)) + { +// #ifdef _DO_PRINTF +// if (sts->listenSocket!=-1) +// { +// int err; +// int errlen = sizeof(err); +// getsockopt__(sts->listenSocket, SOL_SOCKET, SO_ERROR,(char*)&err, &errlen); +// in_addr in; +// in.s_addr = sts->remoteClients[i].systemAddress.binaryAddress; +// RAKNET_DEBUG_PRINTF("Socket error %i on %s:%i\n", err,inet_ntoa( in ), sts->remoteClients[i].systemAddress.GetPort() ); +// } +// +// #endif + // Connection lost abruptly + SystemAddress *lostConnectionSystemAddress=sts->lostConnections.Allocate( _FILE_AND_LINE_ ); + *lostConnectionSystemAddress=sts->remoteClients[i].systemAddress; + sts->lostConnections.Push(lostConnectionSystemAddress); + sts->remoteClients[i].isActiveMutex.Lock(); + sts->remoteClients[i].SetActive(false); + sts->remoteClients[i].isActiveMutex.Unlock(); + } + else + { + if (FD_ISSET(sts->remoteClients[i].socket, &readFD)) + { + // if recv returns 0 this was a graceful close + len = sts->remoteClients[i].Recv(data,BUFF_SIZE); + + + // removeme +// data[len]=0; +// printf(data); + + if (len>0) + { + incomingMessage=sts->incomingMessages.Allocate( _FILE_AND_LINE_ ); + incomingMessage->data = (unsigned char*) rakMalloc_Ex( len+1, _FILE_AND_LINE_ ); + memcpy(incomingMessage->data, data, len); + incomingMessage->data[len]=0; // Null terminate this so we can print it out as regular strings. This is different from RakNet which does not do this. +// printf("RECV: %s\n",incomingMessage->data); + incomingMessage->length=len; + incomingMessage->deleteData=true; // actually means came from SPSC, rather than AllocatePacket + incomingMessage->systemAddress=sts->remoteClients[i].systemAddress; + sts->incomingMessages.Push(incomingMessage); + } + else + { + // Connection lost gracefully + SystemAddress *lostConnectionSystemAddress=sts->lostConnections.Allocate( _FILE_AND_LINE_ ); + *lostConnectionSystemAddress=sts->remoteClients[i].systemAddress; + sts->lostConnections.Push(lostConnectionSystemAddress); + sts->remoteClients[i].isActiveMutex.Lock(); + sts->remoteClients[i].SetActive(false); + sts->remoteClients[i].isActiveMutex.Unlock(); + continue; + } + } + if (FD_ISSET(sts->remoteClients[i].socket, &writeFD)) + { + RemoteClient *rc = &sts->remoteClients[i]; + unsigned int bytesInBuffer; + int bytesAvailable; + int bytesSent; + rc->outgoingDataMutex.Lock(); + bytesInBuffer=rc->outgoingData.GetBytesWritten(); + if (bytesInBuffer>0) + { + unsigned int contiguousLength; + char* contiguousBytesPointer = rc->outgoingData.PeekContiguousBytes(&contiguousLength); + if (contiguousLength < (unsigned int) BUFF_SIZE && contiguousLength BUFF_SIZE) + bytesAvailable=BUFF_SIZE; + else + bytesAvailable=bytesInBuffer; + rc->outgoingData.ReadBytes(data,bytesAvailable,true); + bytesSent=rc->Send(data,bytesAvailable); + } + else + { + bytesSent=rc->Send(contiguousBytesPointer,contiguousLength); + } + + rc->outgoingData.IncrementReadOffset(bytesSent); + bytesInBuffer=rc->outgoingData.GetBytesWritten(); + } + rc->outgoingDataMutex.Unlock(); + } + + i++; // Nothing deleted so increment the index + } + } + } + } + + // Sleep 0 on Linux monopolizes the CPU + RakSleep(30); + } + sts->threadRunning=false; + + rakFree_Ex(data,_FILE_AND_LINE_); + + + + + return 0; + +} + +void RemoteClient::SetActive(bool a) +{ + if (isActive != a) + { + isActive=a; + Reset(); + if (isActive==false && socket!=INVALID_SOCKET) + { + closesocket__(socket); + socket=INVALID_SOCKET; + } + } +} +void RemoteClient::SendOrBuffer(const char **data, const unsigned int *lengths, const int numParameters) +{ + // True can save memory and buffer copies, but gives worse performance overall + // Do not use true for the XBOX, as it just locks up + const bool ALLOW_SEND_FROM_USER_THREAD=false; + + int parameterIndex; + if (isActive==false) + return; + parameterIndex=0; + for (; parameterIndex < numParameters; parameterIndex++) + { + outgoingDataMutex.Lock(); + if (ALLOW_SEND_FROM_USER_THREAD && outgoingData.GetBytesWritten()==0) + { + outgoingDataMutex.Unlock(); + int bytesSent = Send(data[parameterIndex],lengths[parameterIndex]); + if (bytesSent<(int) lengths[parameterIndex]) + { + // Push remainder + outgoingDataMutex.Lock(); + outgoingData.WriteBytes(data[parameterIndex]+bytesSent,lengths[parameterIndex]-bytesSent,_FILE_AND_LINE_); + outgoingDataMutex.Unlock(); + } + } + else + { + outgoingData.WriteBytes(data[parameterIndex],lengths[parameterIndex],_FILE_AND_LINE_); + outgoingDataMutex.Unlock(); + } + } +} +#if OPEN_SSL_CLIENT_SUPPORT==1 +void RemoteClient::InitSSL(SSL_CTX* ctx, SSL_METHOD *meth) +{ + (void) meth; + + ssl = SSL_new (ctx); + RakAssert(ssl); + SSL_set_fd (ssl, socket); + SSL_connect (ssl); +} +void RemoteClient::DisconnectSSL(void) +{ + if (ssl) + SSL_shutdown (ssl); /* send SSL/TLS close_notify */ +} +void RemoteClient::FreeSSL(void) +{ + if (ssl) + SSL_free (ssl); +} +int RemoteClient::Send(const char *data, unsigned int length) +{ + int err; + if (ssl) + { + return SSL_write (ssl, data, length); + } + else + return send__(socket, data, length, 0); +} +int RemoteClient::Recv(char *data, const int dataSize) +{ + if (ssl) + return SSL_read (ssl, data, dataSize); + else + return recv__(socket, data, dataSize, 0); +} +#else +int RemoteClient::Send(const char *data, unsigned int length) +{ + return send__(socket, data, length, 0); +} +int RemoteClient::Recv(char *data, const int dataSize) +{ + return recv__(socket, data, dataSize, 0); +} +#endif + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/TCPInterface.h b/src/raknet/TCPInterface.h new file mode 100755 index 0000000..e7bc8a0 --- /dev/null +++ b/src/raknet/TCPInterface.h @@ -0,0 +1,240 @@ +/// \file +/// \brief A simple TCP based server allowing sends and receives. Can be connected by any TCP client, including telnet. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __SIMPLE_TCP_SERVER +#define __SIMPLE_TCP_SERVER + +#include "RakMemoryOverride.h" +#include "DS_List.h" +#include "RakNetTypes.h" +#include "Export.h" +#include "RakThread.h" +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "RakNetDefines.h" +#include "SocketIncludes.h" +#include "DS_ByteQueue.h" +#include "DS_ThreadsafeAllocatingQueue.h" + +#if OPEN_SSL_CLIENT_SUPPORT==1 +#include +#include +#include +#include +#include +#endif + +namespace RakNet +{ +/// Forward declarations +struct RemoteClient; + +/// \internal +/// \brief As the name says, a simple multithreaded TCP server. Used by TelnetTransport +class RAK_DLL_EXPORT TCPInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TCPInterface) + + TCPInterface(); + virtual ~TCPInterface(); + + /// Starts the TCP server on the indicated port + /// \param[in] port Which port to listen on. + /// \param[in] maxIncomingConnections Max incoming connections we will accept + /// \param[in] maxConnections Max total connections, which should be >= maxIncomingConnections + /// \param[in] threadPriority Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. + /// \param[in] socketFamily IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + bool Start(unsigned short port, unsigned short maxIncomingConnections, unsigned short maxConnections=0, int _threadPriority=-99999, unsigned short socketFamily=AF_INET); + + /// Stops the TCP server + void Stop(void); + + /// Connect to the specified host on the specified port + SystemAddress Connect(const char* host, unsigned short remotePort, bool block=true, unsigned short socketFamily=AF_INET); + +#if OPEN_SSL_CLIENT_SUPPORT==1 + /// Start SSL on an existing connection, notified with HasCompletedConnectionAttempt + void StartSSLClient(SystemAddress systemAddress); + + /// Was SSL started on this socket? + bool IsSSLActive(SystemAddress systemAddress); +#endif + + /// Sends a byte stream + void Send( const char *data, unsigned int length, const SystemAddress &systemAddress, bool broadcast ); + + // Sends a concatenated list of byte streams + bool SendList( const char **data, const unsigned int *lengths, const int numParameters, const SystemAddress &systemAddress, bool broadcast ); + + // Get how many bytes are waiting to be sent. If too many, you may want to skip sending + unsigned int GetOutgoingDataBufferSize(SystemAddress systemAddress) const; + + /// Returns if Receive() will return data + bool ReceiveHasPackets( void ); + + /// Returns data received + Packet* Receive( void ); + + /// Disconnects a player/address + void CloseConnection( SystemAddress systemAddress ); + + /// Deallocates a packet returned by Receive + void DeallocatePacket( Packet *packet ); + + /// Fills the array remoteSystems with the SystemAddress of all the systems we are connected to + /// \param[out] remoteSystems An array of SystemAddress structures to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to only get the number of systems we are connected to + /// \param[in, out] numberOfSystems As input, the size of remoteSystems array. As output, the number of elements put into the array + void GetConnectionList( SystemAddress *remoteSystems, unsigned short *numberOfSystems ) const; + + /// Returns just the number of connections we have + unsigned short GetConnectionCount(void) const; + + /// Has a previous call to connect succeeded? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasCompletedConnectionAttempt(void); + + /// Has a previous call to connect failed? + /// \return UNASSIGNED_SYSTEM_ADDRESS = no. Anything else means yes. + SystemAddress HasFailedConnectionAttempt(void); + + /// Queued events of new incoming connections + SystemAddress HasNewIncomingConnection(void); + + /// Queued events of lost connections + SystemAddress HasLostConnection(void); + + /// Return an allocated but empty packet, for custom use + Packet* AllocatePacket(unsigned dataSize); + + // Push a packet back to the queue + virtual void PushBackPacket( Packet *packet, bool pushAtHead ); + + static const char *Base64Map(void) {return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";} + + /// \brief Returns how many bytes were written. + static int Base64Encoding(const char *inputData, int dataLength, char *outputData); + + /// Returns if Start() was called successfully + bool WasStarted(void) const; + +protected: + + bool isStarted, threadRunning; + SOCKET listenSocket; + + DataStructures::Queue headPush, tailPush; + RemoteClient* remoteClients; + int remoteClientsLength; + + // Assuming remoteClients is only used by one thread! + // DataStructures::List remoteClients; + // Use this thread-safe queue to add to remoteClients + // DataStructures::Queue remoteClientsInsertionQueue; + // SimpleMutex remoteClientsInsertionQueueMutex; + + /* + struct OutgoingMessage + { + unsigned char* data; + SystemAddress systemAddress; + bool broadcast; + unsigned int length; + }; + */ +// DataStructures::SingleProducerConsumer outgoingMessages; +// DataStructures::SingleProducerConsumer incomingMessages; +// DataStructures::SingleProducerConsumer newIncomingConnections, lostConnections, requestedCloseConnections; +// DataStructures::SingleProducerConsumer newRemoteClients; +// DataStructures::ThreadsafeAllocatingQueue outgoingMessages; + DataStructures::ThreadsafeAllocatingQueue incomingMessages; + DataStructures::ThreadsafeAllocatingQueue newIncomingConnections, lostConnections, requestedCloseConnections; + DataStructures::ThreadsafeAllocatingQueue newRemoteClients; + SimpleMutex completedConnectionAttemptMutex, failedConnectionAttemptMutex; + DataStructures::Queue completedConnectionAttempts, failedConnectionAttempts; + + int threadPriority; + + DataStructures::List blockingSocketList; + SimpleMutex blockingSocketListMutex; + + + + + + friend RAK_THREAD_DECLARATION(UpdateTCPInterfaceLoop); + friend RAK_THREAD_DECLARATION(ConnectionAttemptLoop); + +// void DeleteRemoteClient(RemoteClient *remoteClient, fd_set *exceptionFD); +// void InsertRemoteClient(RemoteClient* remoteClient); + SOCKET SocketConnect(const char* host, unsigned short remotePort, unsigned short socketFamily); + + struct ThisPtrPlusSysAddr + { + TCPInterface *tcpInterface; + SystemAddress systemAddress; + bool useSSL; + unsigned short socketFamily; + }; + +#if OPEN_SSL_CLIENT_SUPPORT==1 + SSL_CTX* ctx; + SSL_METHOD *meth; + DataStructures::ThreadsafeAllocatingQueue startSSL; + DataStructures::List activeSSLConnections; + SimpleMutex sharedSslMutex; +#endif +}; + +/// Stores information about a remote client. +struct RemoteClient +{ + RemoteClient() { +#if OPEN_SSL_CLIENT_SUPPORT==1 + ssl=0; +#endif + isActive=false; + socket=INVALID_SOCKET; + } + SOCKET socket; + SystemAddress systemAddress; + DataStructures::ByteQueue outgoingData; + bool isActive; + SimpleMutex outgoingDataMutex; + SimpleMutex isActiveMutex; + +#if OPEN_SSL_CLIENT_SUPPORT==1 + SSL* ssl; + void InitSSL(SSL_CTX* ctx, SSL_METHOD *meth); + void DisconnectSSL(void); + void FreeSSL(void); + int Send(const char *data, unsigned int length); + int Recv(char *data, const int dataSize); +#else + int Send(const char *data, unsigned int length); + int Recv(char *data, const int dataSize); +#endif + void Reset(void) + { + outgoingDataMutex.Lock(); + outgoingData.Clear(_FILE_AND_LINE_); + outgoingDataMutex.Unlock(); + } + void SetActive(bool a); + void SendOrBuffer(const char **data, const unsigned int *lengths, const int numParameters); +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* + diff --git a/src/raknet/TableSerializer.cpp b/src/raknet/TableSerializer.cpp new file mode 100755 index 0000000..17b5373 --- /dev/null +++ b/src/raknet/TableSerializer.cpp @@ -0,0 +1,320 @@ +#include "TableSerializer.h" +#include "DS_Table.h" +#include "BitStream.h" +#include "StringCompressor.h" +#include "RakAssert.h" + +using namespace RakNet; + +void TableSerializer::SerializeTable(DataStructures::Table *in, RakNet::BitStream *out) +{ + DataStructures::Page *cur = in->GetRows().GetListHead(); + const DataStructures::List &columns=in->GetColumns(); + SerializeColumns(in, out); + out->Write((unsigned)in->GetRows().Size()); + unsigned rowIndex; + while (cur) + { + for (rowIndex=0; rowIndex < (unsigned)cur->size; rowIndex++) + { + SerializeRow(cur->data[rowIndex], cur->keys[rowIndex], columns, out); + } + cur=cur->next; + } +} +void TableSerializer::SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out) +{ + const DataStructures::List &columns=in->GetColumns(); + out->Write((unsigned)columns.Size()); + unsigned i; + for (i=0; iEncodeString(columns[i].columnName, _TABLE_MAX_COLUMN_NAME_LENGTH, out); + out->Write((unsigned char)columns[i].columnType); + } +} +void TableSerializer::SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out, DataStructures::List &skipColumnIndices) +{ + const DataStructures::List &columns=in->GetColumns(); + out->Write((unsigned)columns.Size()-skipColumnIndices.Size()); + unsigned i; + for (i=0; iEncodeString(columns[i].columnName, _TABLE_MAX_COLUMN_NAME_LENGTH, out); + out->Write((unsigned char)columns[i].columnType); + } + } +} +bool TableSerializer::DeserializeTable(unsigned char *serializedTable, unsigned int dataLength, DataStructures::Table *out) +{ + RakNet::BitStream in((unsigned char*) serializedTable, dataLength, false); + return DeserializeTable(&in, out); +} +bool TableSerializer::DeserializeTable(RakNet::BitStream *in, DataStructures::Table *out) +{ + unsigned rowSize; + DeserializeColumns(in,out); + if (in->Read(rowSize)==false || rowSize>100000) + { + RakAssert(0); + return false; // Hacker crash prevention + } + + unsigned rowIndex; + for (rowIndex=0; rowIndex < rowSize; rowIndex++) + { + if (DeserializeRow(in, out)==false) + return false; + } + return true; +} +bool TableSerializer::DeserializeColumns(RakNet::BitStream *in, DataStructures::Table *out) +{ + unsigned columnSize; + unsigned char columnType; + char columnName[_TABLE_MAX_COLUMN_NAME_LENGTH]; + if (in->Read(columnSize)==false || columnSize > 10000) + return false; // Hacker crash prevention + + out->Clear(); + unsigned i; + for (i=0; iDecodeString(columnName, 32, in); + in->Read(columnType); + out->AddColumn(columnName, (DataStructures::Table::ColumnType)columnType); + } + return true; +} +void TableSerializer::SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out) +{ + unsigned cellIndex; + out->Write(keyIn); + unsigned int columnsSize = columns.Size(); + out->Write(columnsSize); + for (cellIndex=0; cellIndexWrite(cellIndex); + SerializeCell(out, in->cells[cellIndex], columns[cellIndex].columnType); + } +} +void TableSerializer::SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out, DataStructures::List &skipColumnIndices) +{ + unsigned cellIndex; + out->Write(keyIn); + unsigned int numEntries=0; + for (cellIndex=0; cellIndexWrite(numEntries); + + for (cellIndex=0; cellIndexWrite(cellIndex); + SerializeCell(out, in->cells[cellIndex], columns[cellIndex].columnType); + } + } +} +bool TableSerializer::DeserializeRow(RakNet::BitStream *in, DataStructures::Table *out) +{ + const DataStructures::List &columns=out->GetColumns(); + unsigned numEntries; + DataStructures::Table::Row *row; + unsigned key; + if (in->Read(key)==false) + return false; + row=out->AddRow(key); + unsigned int cnt; + in->Read(numEntries); + for (cnt=0; cntRead(cellIndex); + if (DeserializeCell(in, row->cells[cellIndex], columns[cellIndex].columnType)==false) + { + out->RemoveRow(key); + return false; + } + } + return true; +} +void TableSerializer::SerializeCell(RakNet::BitStream *out, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType) +{ + out->Write(cell->isEmpty); + if (cell->isEmpty==false) + { + if (columnType==DataStructures::Table::NUMERIC) + { + out->Write(cell->i); + } + else if (columnType==DataStructures::Table::STRING) + { + StringCompressor::Instance()->EncodeString(cell->c, 65535, out); + } + else if (columnType==DataStructures::Table::POINTER) + { + out->Write(cell->ptr); + } + else + { + // Binary + RakAssert(columnType==DataStructures::Table::BINARY); + RakAssert(cell->i>0); + unsigned binaryLength; + binaryLength=(unsigned)cell->i; + out->Write(binaryLength); + out->WriteAlignedBytes((const unsigned char*) cell->c, (const unsigned int) cell->i); + } + } +} +bool TableSerializer::DeserializeCell(RakNet::BitStream *in, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType) +{ + bool isEmpty=false; + double value; + void *ptr; + char tempString[65535]; + cell->Clear(); + + if (in->Read(isEmpty)==false) + return false; + if (isEmpty==false) + { + if (columnType==DataStructures::Table::NUMERIC) + { + if (in->Read(value)==false) + return false; + cell->Set(value); + } + else if (columnType==DataStructures::Table::STRING) + { + if (StringCompressor::Instance()->DecodeString(tempString, 65535, in)==false) + return false; + cell->Set(tempString); + } + else if (columnType==DataStructures::Table::POINTER) + { + if (in->Read(ptr)==false) + return false; + cell->SetPtr(ptr); + } + else + { + unsigned binaryLength; + // Binary + RakAssert(columnType==DataStructures::Table::BINARY); + if (in->Read(binaryLength)==false || binaryLength > 10000000) + return false; // Sanity check to max binary cell of 10 megabytes + in->AlignReadToByteBoundary(); + if (BITS_TO_BYTES(in->GetNumberOfUnreadBits())<(BitSize_t)binaryLength) + return false; + cell->Set((char*) in->GetData()+BITS_TO_BYTES(in->GetReadOffset()), (int) binaryLength); + in->IgnoreBits(BYTES_TO_BITS((int) binaryLength)); + } + } + return true; +} +void TableSerializer::SerializeFilterQuery(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query) +{ + StringCompressor::Instance()->EncodeString(query->columnName,_TABLE_MAX_COLUMN_NAME_LENGTH,in,0); + in->WriteCompressed(query->columnIndex); + in->Write((unsigned char) query->operation); + in->Write(query->cellValue->isEmpty); + if (query->cellValue->isEmpty==false) + { + in->Write(query->cellValue->i); + in->WriteAlignedBytesSafe((const char*)query->cellValue->c,(const unsigned int)query->cellValue->i,10000000); // Sanity check to max binary cell of 10 megabytes + in->Write(query->cellValue->ptr); + + } +} +bool TableSerializer::DeserializeFilterQuery(RakNet::BitStream *out, DataStructures::Table::FilterQuery *query) +{ + bool b; + RakAssert(query->cellValue); + StringCompressor::Instance()->DecodeString(query->columnName,_TABLE_MAX_COLUMN_NAME_LENGTH,out,0); + out->ReadCompressed(query->columnIndex); + unsigned char op; + out->Read(op); + query->operation=(DataStructures::Table::FilterQueryType) op; + query->cellValue->Clear(); + b=out->Read(query->cellValue->isEmpty); + if (query->cellValue->isEmpty==false) + { + // HACK - cellValue->i is used for integer, character, and binary data. However, for character and binary c will be 0. So use that to determine if the data was integer or not. + out->Read(query->cellValue->i); + unsigned int inputLength; + out->ReadAlignedBytesSafeAlloc(&query->cellValue->c,inputLength,10000000); // Sanity check to max binary cell of 10 megabytes + if (query->cellValue->c) + query->cellValue->i=inputLength; + b=out->Read(query->cellValue->ptr); + } + return b; +} +void TableSerializer::SerializeFilterQueryList(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query, unsigned int numQueries, unsigned int maxQueries) +{ + (void) maxQueries; + in->Write((bool)(query && numQueries>0)); + if (query==0 || numQueries<=0) + return; + + RakAssert(numQueries<=maxQueries); + in->WriteCompressed(numQueries); + unsigned i; + for (i=0; i < numQueries; i++) + { + SerializeFilterQuery(in, query); + } +} +bool TableSerializer::DeserializeFilterQueryList(RakNet::BitStream *out, DataStructures::Table::FilterQuery **query, unsigned int *numQueries, unsigned int maxQueries, int allocateExtraQueries) +{ + bool b, anyQueries=false; + out->Read(anyQueries); + if (anyQueries==false) + { + if (allocateExtraQueries<=0) + *query=0; + else + *query=new DataStructures::Table::FilterQuery[allocateExtraQueries]; + + *numQueries=0; + return true; + } + b=out->ReadCompressed(*numQueries); + if (*numQueries>maxQueries) + { + RakAssert(0); + *numQueries=maxQueries; + } + if (*numQueries==0) + return b; + + *query=new DataStructures::Table::FilterQuery[*numQueries+allocateExtraQueries]; + DataStructures::Table::FilterQuery *queryPtr = *query; + + unsigned i; + for (i=0; i < *numQueries; i++) + { + queryPtr[i].cellValue=new DataStructures::Table::Cell; + b=DeserializeFilterQuery(out, queryPtr+i); + } + + return b; +} +void TableSerializer::DeallocateQueryList(DataStructures::Table::FilterQuery *query, unsigned int numQueries) +{ + if (query==0 || numQueries==0) + return; + + unsigned i; + for (i=0; i < numQueries; i++) + RakNet::OP_DELETE(query[i].cellValue, _FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(query, _FILE_AND_LINE_); +} diff --git a/src/raknet/TableSerializer.h b/src/raknet/TableSerializer.h new file mode 100755 index 0000000..fb15bf8 --- /dev/null +++ b/src/raknet/TableSerializer.h @@ -0,0 +1,208 @@ +#ifndef __TABLE_SERIALIZER_H +#define __TABLE_SERIALIZER_H + +#include "RakMemoryOverride.h" +#include "DS_Table.h" +#include "Export.h" + +namespace RakNet +{ + class BitStream; +} + +namespace RakNet +{ + +class RAK_DLL_EXPORT TableSerializer +{ +public: + static void SerializeTable(DataStructures::Table *in, RakNet::BitStream *out); + static bool DeserializeTable(unsigned char *serializedTable, unsigned int dataLength, DataStructures::Table *out); + static bool DeserializeTable(RakNet::BitStream *in, DataStructures::Table *out); + static void SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out); + static void SerializeColumns(DataStructures::Table *in, RakNet::BitStream *out, DataStructures::List &skipColumnIndices); + static bool DeserializeColumns(RakNet::BitStream *in, DataStructures::Table *out); + static void SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out); + static void SerializeRow(DataStructures::Table::Row *in, unsigned keyIn, const DataStructures::List &columns, RakNet::BitStream *out, DataStructures::List &skipColumnIndices); + static bool DeserializeRow(RakNet::BitStream *in, DataStructures::Table *out); + static void SerializeCell(RakNet::BitStream *out, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType); + static bool DeserializeCell(RakNet::BitStream *in, DataStructures::Table::Cell *cell, DataStructures::Table::ColumnType columnType); + static void SerializeFilterQuery(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query); + // Note that this allocates query->cell->c! + static bool DeserializeFilterQuery(RakNet::BitStream *out, DataStructures::Table::FilterQuery *query); + static void SerializeFilterQueryList(RakNet::BitStream *in, DataStructures::Table::FilterQuery *query, unsigned int numQueries, unsigned int maxQueries); + // Note that this allocates queries, cells, and query->cell->c!. Use DeallocateQueryList to free. + static bool DeserializeFilterQueryList(RakNet::BitStream *out, DataStructures::Table::FilterQuery **query, unsigned int *numQueries, unsigned int maxQueries, int allocateExtraQueries=0); + static void DeallocateQueryList(DataStructures::Table::FilterQuery *query, unsigned int numQueries); +}; + +} // namespace RakNet + +#endif + +// Test code for the table +/* +#include "LightweightDatabaseServer.h" +#include "LightweightDatabaseClient.h" +#include "TableSerializer.h" +#include "BitStream.h" +#include "StringCompressor.h" +#include "DS_Table.h" +void main(void) +{ + DataStructures::Table table; + DataStructures::Table::Row *row; + unsigned int dummydata=12345; + + // Add columns Name (string), IP (binary), score (int), and players (int). + table.AddColumn("Name", DataStructures::Table::STRING); + table.AddColumn("IP", DataStructures::Table::BINARY); + table.AddColumn("Score", DataStructures::Table::NUMERIC); + table.AddColumn("Players", DataStructures::Table::NUMERIC); + table.AddColumn("Empty Test Column", DataStructures::Table::STRING); + RakAssert(table.GetColumnCount()==5); + row=table.AddRow(0); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,5); + row->UpdateCell(3,10); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(1); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,5); + row->UpdateCell(3,15); + + row=table.AddRow(2); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,5); + row->UpdateCell(3,20); + + row=table.AddRow(3); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,15); + row->UpdateCell(3,5); + row->UpdateCell(4,"col index 4"); + + row=table.AddRow(4); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + //row->UpdateCell(2,25); + row->UpdateCell(3,30); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(5); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + //row->UpdateCell(2,25); + row->UpdateCell(3,5); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(6); + RakAssert(row); + row->UpdateCell(0,"Kevin Jenkins"); + row->UpdateCell(1,sizeof(dummydata), (char*)&dummydata); + row->UpdateCell(2,35); + //row->UpdateCell(3,40); + //row->UpdateCell(4,"should be unique"); + + row=table.AddRow(7); + RakAssert(row); + row->UpdateCell(0,"Bob Jenkins"); + + row=table.AddRow(8); + RakAssert(row); + row->UpdateCell(0,"Zack Jenkins"); + + // Test multi-column sorting + DataStructures::Table::Row *rows[30]; + DataStructures::Table::SortQuery queries[4]; + queries[0].columnIndex=0; + queries[0].operation=DataStructures::Table::QS_INCREASING_ORDER; + queries[1].columnIndex=1; + queries[1].operation=DataStructures::Table::QS_INCREASING_ORDER; + queries[2].columnIndex=2; + queries[2].operation=DataStructures::Table::QS_INCREASING_ORDER; + queries[3].columnIndex=3; + queries[3].operation=DataStructures::Table::QS_DECREASING_ORDER; + table.SortTable(queries, 4, rows); + unsigned i; + char out[256]; + RAKNET_DEBUG_PRINTF("Sort: Ascending except for column index 3\n"); + for (i=0; i < table.GetRowCount(); i++) + { + table.PrintRow(out,256,',',true, rows[i]); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + // Test query: + // Don't return column 3, and swap columns 0 and 2 + unsigned columnsToReturn[4]; + columnsToReturn[0]=2; + columnsToReturn[1]=1; + columnsToReturn[2]=0; + columnsToReturn[3]=4; + DataStructures::Table resultsTable; + table.QueryTable(columnsToReturn,4,0,0,&resultsTable); + RAKNET_DEBUG_PRINTF("Query: Don't return column 3, and swap columns 0 and 2:\n"); + for (i=0; i < resultsTable.GetRowCount(); i++) + { + resultsTable.PrintRow(out,256,',',true, resultsTable.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + // Test filter: + // Only return rows with column index 4 empty + DataStructures::Table::FilterQuery inclusionFilters[3]; + inclusionFilters[0].columnIndex=4; + inclusionFilters[0].operation=DataStructures::Table::QF_IS_EMPTY; + // inclusionFilters[0].cellValue; // Unused for IS_EMPTY + table.QueryTable(0,0,inclusionFilters,1,&resultsTable); + RAKNET_DEBUG_PRINTF("Filter: Only return rows with column index 4 empty:\n"); + for (i=0; i < resultsTable.GetRowCount(); i++) + { + resultsTable.PrintRow(out,256,',',true, resultsTable.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + // Column 5 empty and column 0 == Kevin Jenkins + inclusionFilters[0].columnIndex=4; + inclusionFilters[0].operation=DataStructures::Table::QF_IS_EMPTY; + inclusionFilters[1].columnIndex=0; + inclusionFilters[1].operation=DataStructures::Table::QF_EQUAL; + inclusionFilters[1].cellValue.Set("Kevin Jenkins"); + table.QueryTable(0,0,inclusionFilters,2,&resultsTable); + RAKNET_DEBUG_PRINTF("Filter: Column 5 empty and column 0 == Kevin Jenkins:\n"); + for (i=0; i < resultsTable.GetRowCount(); i++) + { + resultsTable.PrintRow(out,256,',',true, resultsTable.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + + RakNet::BitStream bs; + RAKNET_DEBUG_PRINTF("PreSerialize:\n"); + for (i=0; i < table.GetRowCount(); i++) + { + table.PrintRow(out,256,',',true, table.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + StringCompressor::AddReference(); + TableSerializer::Serialize(&table, &bs); + TableSerializer::Deserialize(&bs, &table); + StringCompressor::RemoveReference(); + RAKNET_DEBUG_PRINTF("PostDeserialize:\n"); + for (i=0; i < table.GetRowCount(); i++) + { + table.PrintRow(out,256,',',true, table.GetRowByIndex(i)); + RAKNET_DEBUG_PRINTF("%s\n", out); + } + int a=5; +} +*/ diff --git a/src/raknet/TeamBalancer.cpp b/src/raknet/TeamBalancer.cpp new file mode 100755 index 0000000..1c1eb0d --- /dev/null +++ b/src/raknet/TeamBalancer.cpp @@ -0,0 +1,874 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TeamBalancer==1 + +#include "TeamBalancer.h" +#include "BitStream.h" +#include "MessageIdentifiers.h" +#include "RakPeerInterface.h" +#include "Rand.h" + +using namespace RakNet; + +enum TeamBalancerOperations +{ + ID_STATUS_UPDATE_TO_NEW_HOST, + ID_CANCEL_TEAM_REQUEST, + ID_REQUEST_ANY_TEAM, + ID_REQUEST_SPECIFIC_TEAM +}; + +STATIC_FACTORY_DEFINITIONS(TeamBalancer,TeamBalancer); + +TeamBalancer::TeamBalancer() +{ + defaultAssigmentAlgorithm=SMALLEST_TEAM; + forceTeamsToBeEven=false; + lockTeams=false; + hostGuid=UNASSIGNED_RAKNET_GUID; +} +TeamBalancer::~TeamBalancer() +{ + +} +void TeamBalancer::SetTeamSizeLimit(TeamId team, unsigned short limit) +{ + teamLimits.Replace(limit,0,team,_FILE_AND_LINE_); + if (teamLimits.Size() > teamMemberCounts.Size()) + teamMemberCounts.Replace(0,0,teamLimits.Size()-1,_FILE_AND_LINE_); +} +void TeamBalancer::SetDefaultAssignmentAlgorithm(DefaultAssigmentAlgorithm daa) +{ + // Just update the default. Currently active teams are not affected. + defaultAssigmentAlgorithm=daa; +} +void TeamBalancer::SetForceEvenTeams(bool force) +{ + // Set flag to indicate that teams should be even. + forceTeamsToBeEven=force; + + // If teams are locked, just return. + if (lockTeams==true) + return; + + if (forceTeamsToBeEven==true) + { + // Run the even team algorithm + EvenTeams(); + } +} +void TeamBalancer::SetLockTeams(bool lock) +{ + if (lock==lockTeams) + return; + + // Set flag to indicate that teams can no longer be changed. + lockTeams=lock; + + // If lock is false, and teams were set to be forced as even, then run through the even team algorithm + if (lockTeams==false) + { + // Process even swaps + TeamId i,j; + for (i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].requestedTeam!=UNASSIGNED_TEAM_ID) + { + for (j=i+1; j < teamMembers.Size(); j++) + { + if (teamMembers[j].requestedTeam==teamMembers[i].currentTeam && + teamMembers[i].requestedTeam==teamMembers[j].currentTeam) + { + SwapTeamMembersByRequest(i,j); + NotifyTeamAssigment(i); + NotifyTeamAssigment(j); + } + } + } + } + + if (forceTeamsToBeEven==true) + { + EvenTeams(); + } + else + { + // Process requested team changes + // Process movement while not full + for (i=0; i < teamMembers.Size(); i++) + { + TeamId requestedTeam = teamMembers[i].requestedTeam; + if (requestedTeam!=UNASSIGNED_TEAM_ID) + { + if (teamMemberCounts[requestedTeam]Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); +} +void TeamBalancer::CancelRequestSpecificTeam(NetworkID memberId) +{ + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + myTeamMembers[i].requestedTeam=UNASSIGNED_TEAM_ID; + + // Send packet to the host to remove our request flag. + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_INTERNAL); + bsOut.Write((MessageID)ID_CANCEL_TEAM_REQUEST); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); + + return; + } + } +} +void TeamBalancer::RequestAnyTeam(NetworkID memberId) +{ + bool foundMatch=false; + + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + foundMatch=true; + if (myTeamMembers[i].currentTeam!=UNASSIGNED_TEAM_ID) + return; + else + myTeamMembers[i].requestedTeam=UNASSIGNED_TEAM_ID; + break; + } + } + + if (foundMatch==false) + { + MyTeamMembers mtm; + mtm.currentTeam=UNASSIGNED_TEAM_ID; + mtm.memberId=memberId; + mtm.requestedTeam=UNASSIGNED_TEAM_ID; + myTeamMembers.Push(mtm, _FILE_AND_LINE_); + } + + // Else send to the current host that we need a team. + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_INTERNAL); + bsOut.Write((MessageID)ID_REQUEST_ANY_TEAM); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); +} +TeamId TeamBalancer::GetMyTeam(NetworkID memberId) const +{ + // Return team returned by last ID_TEAM_BALANCER_TEAM_ASSIGNED packet + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + return myTeamMembers[i].currentTeam; + } + } + + return UNASSIGNED_TEAM_ID; +} +void TeamBalancer::DeleteMember(NetworkID memberId) +{ + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==memberId) + { + myTeamMembers.RemoveAtIndexFast(i); + break; + } + } + + for (unsigned int i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].memberId==memberId) + { + RemoveTeamMember(i); + break; + } + } +} +PluginReceiveResult TeamBalancer::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_FCM2_NEW_HOST: + { + hostGuid=packet->guid; + + if (myTeamMembers.Size()>0) + { + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_INTERNAL); + bsOut.Write((MessageID)ID_STATUS_UPDATE_TO_NEW_HOST); + + bsOut.WriteCasted(myTeamMembers.Size()); + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + bsOut.Write(myTeamMembers[i].memberId); + bsOut.Write(myTeamMembers[i].currentTeam); + bsOut.Write(myTeamMembers[i].requestedTeam); + } + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,hostGuid,false); + } + } + break; + case ID_TEAM_BALANCER_INTERNAL: + { + if (packet->length>=2) + { + switch (packet->data[1]) + { + case ID_STATUS_UPDATE_TO_NEW_HOST: + OnStatusUpdateToNewHost(packet); + break; + case ID_CANCEL_TEAM_REQUEST: + OnCancelTeamRequest(packet); + break; + case ID_REQUEST_ANY_TEAM: + OnRequestAnyTeam(packet); + break; + case ID_REQUEST_SPECIFIC_TEAM: + OnRequestSpecificTeam(packet); + break; + } + } + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + case ID_TEAM_BALANCER_TEAM_ASSIGNED: + { + return OnTeamAssigned(packet); + } + + case ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING: + { + return OnRequestedTeamChangePending(packet); + } + + case ID_TEAM_BALANCER_TEAMS_LOCKED: + { + return OnTeamsLocked(packet); + } + } + + // Got RequestSpecificTeam + // If teams are locked + // - If this user already has a team, return ID_TEAM_BALANCER_TEAMS_LOCKED + // - This user does not already have a team. Assign a team as if the user called RequestAnyTeam(), with a preference for the requested team. Return ID_TEAM_BALANCER_TEAM_ASSIGNED once the team has been assigned. + // If teams are not locked + // - If even team balancing is on, only assign this user if this would not cause teams to be unbalanced. If teams WOULD be unbalanced, then flag this user as wanting to join this team. Return ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING + // - If the destination team is full, flag this user as wanting to join this team. Return ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING + // - Else, join this team. Return ID_TEAM_BALANCER_TEAM_ASSIGNED + + // Got RequestAnyTeam + // Put user on a team following the algorithm. No team is set as preferred. + + return RR_CONTINUE_PROCESSING; +} +void TeamBalancer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) systemAddress; + (void) lostConnectionReason; + + RemoveByGuid(rakNetGUID); +} +void TeamBalancer::OnAttach(void) +{ + hostGuid = rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +void TeamBalancer::RemoveByGuid(RakNetGUID rakNetGUID) +{ + // If we are the host, and the closed connection has a team, and teams are not locked: + if (WeAreHost()) + { + unsigned int droppedMemberIndex=0; + while (droppedMemberIndex < teamMembers.Size()) + { + if (teamMembers[droppedMemberIndex].memberGuid==rakNetGUID) + { + TeamId droppedTeam = teamMembers[droppedMemberIndex].currentTeam; + RemoveTeamMember(droppedMemberIndex); + if (lockTeams==false) + { + if (forceTeamsToBeEven) + { + // - teams were forced to be even, then run the even team algorithm + EvenTeams(); + } + else + { + // - teams were NOT forced to be even, and the team the dropped player on was full, then move users wanting to join that team (if any) + if (teamMemberCounts[ droppedTeam ]==teamLimits[ droppedTeam ]-1) + { + MoveMemberThatWantsToJoinTeam(droppedTeam); + } + } + } + } + else + { + droppedMemberIndex++; + } + } + } +} +void TeamBalancer::OnStatusUpdateToNewHost(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + uint8_t requestedTeamChangeListSize; + bsIn.Read(requestedTeamChangeListSize); + TeamMember tm; + tm.memberGuid=packet->guid; + for (uint8_t i=0; i < requestedTeamChangeListSize; i++) + { + bsIn.Read(tm.memberId); + bsIn.Read(tm.currentTeam); + bsIn.Read(tm.requestedTeam); + + if (tm.currentTeam!=UNASSIGNED_TEAM_ID && tm.currentTeam>teamLimits.Size()) + { + RakAssert("Current team out of range in TeamBalancer::OnStatusUpdateToNewHost" && 0); + return; + } + + if (tm.requestedTeam!=UNASSIGNED_TEAM_ID && tm.requestedTeam>teamLimits.Size()) + { + RakAssert("Requested team out of range in TeamBalancer::OnStatusUpdateToNewHost" && 0); + return; + } + + if (tm.currentTeam==UNASSIGNED_TEAM_ID && tm.requestedTeam==UNASSIGNED_TEAM_ID) + return; + + unsigned int memberIndex = GetMemberIndex(tm.memberId, packet->guid); + if (memberIndex==(unsigned int) -1) + { + // Add this system (by GUID) to the list of members if he is not already there + // Also update his requested team flag. + // Do not process balancing on requested teams, since we don't necessarily have all data from all systems yet and hopefully the state during the host migration was stable. + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + // Assign a default team, then add team member + if (tm.requestedTeam==UNASSIGNED_TEAM_ID) + { + // Assign a default team + tm.currentTeam=GetNextDefaultTeam(); + } + else + { + // Assign to requested team if possible. Otherwise, assign to a default team + if (TeamWouldBeOverpopulatedOnAddition(tm.requestedTeam, teamMembers.Size())==false) + { + tm.currentTeam=tm.requestedTeam; + } + else + { + tm.currentTeam=GetNextDefaultTeam(); + } + } + } + + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + RakAssert("Too many members asking for teams!" && 0); + return; + } + NotifyTeamAssigment(AddTeamMember(tm)); + } + } +} +void TeamBalancer::OnCancelTeamRequest(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + NetworkID memberId; + bsIn.Read(memberId); + + unsigned int memberIndex = GetMemberIndex(memberId, packet->guid); + if (memberIndex!=(unsigned int)-1) + teamMembers[memberIndex].requestedTeam=UNASSIGNED_TEAM_ID; +} +void TeamBalancer::OnRequestAnyTeam(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + NetworkID memberId; + bsIn.Read(memberId); + + unsigned int memberIndex = GetMemberIndex(memberId, packet->guid); + if (memberIndex==(unsigned int)-1) + { + TeamMember tm; + tm.currentTeam=GetNextDefaultTeam(); + tm.requestedTeam=UNASSIGNED_TEAM_ID; + tm.memberGuid=packet->guid; + tm.memberId=memberId; + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + RakAssert("Too many members asking for teams!" && 0); + return; + } + NotifyTeamAssigment(AddTeamMember(tm)); + } +} +void TeamBalancer::OnRequestSpecificTeam(Packet *packet) +{ + if (WeAreHost()==false) + return; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(2); + TeamMember tm; + bsIn.Read(tm.memberId); + bsIn.Read(tm.requestedTeam); + + unsigned int memberIndex = GetMemberIndex(tm.memberId, packet->guid); + if (tm.requestedTeam==UNASSIGNED_TEAM_ID) + { + NotifyNoTeam(tm.memberId, packet->guid); + RemoveTeamMember(memberIndex); + return; + } + + if (tm.requestedTeam>teamLimits.Size()) + { + RakAssert("Requested team out of range in TeamBalancer::OnRequestSpecificTeam" && 0); + return; + } + if (memberIndex==(unsigned int) -1) + { + tm.memberGuid=packet->guid; + + // Assign to requested team if possible. Otherwise, assign to a default team + if (TeamWouldBeOverpopulatedOnAddition(tm.requestedTeam, teamMembers.Size())==false) + { + tm.currentTeam=tm.requestedTeam; + tm.requestedTeam=UNASSIGNED_TEAM_ID; + } + else + { + tm.currentTeam=GetNextDefaultTeam(); + } + if (tm.currentTeam==UNASSIGNED_TEAM_ID) + { + RakAssert("Too many members asking for teams!" && 0); + return; + } + NotifyTeamAssigment(AddTeamMember(tm)); + } + else + { + teamMembers[memberIndex].requestedTeam=tm.requestedTeam; + TeamId oldTeamThisUserWasOn = teamMembers[memberIndex].currentTeam; + + if (lockTeams) + { + NotifyTeamsLocked(packet->guid, tm.requestedTeam); + return; + } + + // Assign to requested team if possible. Otherwise, assign to a default team + if (TeamsWouldBeEvenOnSwitch(tm.requestedTeam,oldTeamThisUserWasOn)==true) + { + SwitchMemberTeam(memberIndex,tm.requestedTeam); + NotifyTeamAssigment(memberIndex); + } + else + { + // If someone wants to join this user's old team, and we want to join their team, they can swap + unsigned int swappableMemberIndex; + for (swappableMemberIndex=0; swappableMemberIndex < teamMembers.Size(); swappableMemberIndex++) + { + if (teamMembers[swappableMemberIndex].currentTeam==tm.requestedTeam && teamMembers[swappableMemberIndex].requestedTeam==oldTeamThisUserWasOn) + break; + } + + if (swappableMemberIndex!=teamMembers.Size()) + { + SwapTeamMembersByRequest(memberIndex,swappableMemberIndex); + NotifyTeamAssigment(memberIndex); + NotifyTeamAssigment(swappableMemberIndex); + } + else + { + // Full or would not be even + NotifyTeamSwitchPending(packet->guid, tm.requestedTeam, tm.memberId); + } + } + } +} +unsigned int TeamBalancer::GetMemberIndex(NetworkID memberId, RakNetGUID guid) const +{ + for (unsigned int i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].memberGuid==guid && teamMembers[i].memberId==memberId) + return i; + } + return (unsigned int) -1; +} +unsigned int TeamBalancer::AddTeamMember(const TeamMember &tm) +{ + if (tm.currentTeam>teamLimits.Size()) + { + RakAssert("TeamBalancer::AddTeamMember team index out of bounds" && 0); + return (unsigned int) -1; + } + + RakAssert(tm.currentTeam!=UNASSIGNED_TEAM_ID); + + teamMembers.Push(tm,_FILE_AND_LINE_); + if (teamMemberCounts.Size() overpopulatedTeams; + TeamId teamMemberCountsIndex; + unsigned int memberIndexToSwitch; + for (teamMemberCountsIndex=0; teamMemberCountsIndex0); + memberIndexToSwitch=GetMemberIndexToSwitchTeams(overpopulatedTeams,teamMemberCountsIndex); + RakAssert(memberIndexToSwitch!=(unsigned int)-1); + SwitchMemberTeam(memberIndexToSwitch,teamMemberCountsIndex); + // Tell this member he switched teams + NotifyTeamAssigment(memberIndexToSwitch); + } + } +} +unsigned int TeamBalancer::GetMemberIndexToSwitchTeams(const DataStructures::List &sourceTeamNumbers, TeamId targetTeamNumber) +{ + DataStructures::List preferredSwapIndices; + DataStructures::List potentialSwapIndices; + unsigned int i,j; + for (j=0; j < sourceTeamNumbers.Size(); j++) + { + RakAssert(sourceTeamNumbers[j]!=targetTeamNumber); + for (i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].currentTeam==sourceTeamNumbers[j]) + { + if (teamMembers[i].requestedTeam==targetTeamNumber) + preferredSwapIndices.Push(i,_FILE_AND_LINE_); + else + potentialSwapIndices.Push(i,_FILE_AND_LINE_); + } + } + } + + if (preferredSwapIndices.Size()>0) + { + return preferredSwapIndices[ randomMT() % preferredSwapIndices.Size() ]; + } + else if (potentialSwapIndices.Size()>0) + { + return potentialSwapIndices[ randomMT() % potentialSwapIndices.Size() ]; + } + else + { + return (unsigned int) -1; + } +} +void TeamBalancer::SwitchMemberTeam(unsigned int teamMemberIndex, TeamId destinationTeam) +{ + teamMemberCounts[ teamMembers[teamMemberIndex].currentTeam ]=teamMemberCounts[ teamMembers[teamMemberIndex].currentTeam ]-1; + teamMemberCounts[ destinationTeam ]=teamMemberCounts[ destinationTeam ]+1; + teamMembers[teamMemberIndex].currentTeam=destinationTeam; + if (teamMembers[teamMemberIndex].requestedTeam==destinationTeam) + teamMembers[teamMemberIndex].requestedTeam=UNASSIGNED_TEAM_ID; +} +void TeamBalancer::GetOverpopulatedTeams(DataStructures::List &overpopulatedTeams, int maxTeamSize) +{ + overpopulatedTeams.Clear(true,_FILE_AND_LINE_); + for (TeamId i=0; i < teamMemberCounts.Size(); i++) + { + if (teamMemberCounts[i]>=maxTeamSize) + overpopulatedTeams.Push(i,_FILE_AND_LINE_); + } +} +void TeamBalancer::NotifyTeamAssigment(unsigned int teamMemberIndex) +{ + RakAssert(teamMemberIndex < teamMembers.Size()); + if (teamMemberIndex>=teamMembers.Size()) + return; + + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_TEAM_ASSIGNED); + bsOut.Write(teamMembers[teamMemberIndex].currentTeam); + bsOut.Write(teamMembers[teamMemberIndex].memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,teamMembers[teamMemberIndex].memberGuid,false); +} +bool TeamBalancer::WeAreHost(void) const +{ + return hostGuid==rakPeerInterface->GetGuidFromSystemAddress(UNASSIGNED_SYSTEM_ADDRESS); +} +PluginReceiveResult TeamBalancer::OnTeamAssigned(Packet *packet) +{ + if (packet->guid!=hostGuid) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(1); + + MyTeamMembers mtm; + bsIn.Read(mtm.currentTeam); + bsIn.Read(mtm.memberId); + mtm.requestedTeam=UNASSIGNED_TEAM_ID; + + bool foundMatch=false; + for (unsigned int i=0; i < myTeamMembers.Size(); i++) + { + if (myTeamMembers[i].memberId==mtm.memberId) + { + foundMatch=true; + if (myTeamMembers[i].requestedTeam==mtm.currentTeam) + myTeamMembers[i].requestedTeam=UNASSIGNED_TEAM_ID; + myTeamMembers[i].currentTeam=mtm.currentTeam; + break; + } + } + + if (foundMatch==false) + { + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + + return RR_CONTINUE_PROCESSING; +} +PluginReceiveResult TeamBalancer::OnRequestedTeamChangePending(Packet *packet) +{ + if (packet->guid!=hostGuid) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + return RR_CONTINUE_PROCESSING; +} +PluginReceiveResult TeamBalancer::OnTeamsLocked(Packet *packet) +{ + if (packet->guid!=hostGuid) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + return RR_CONTINUE_PROCESSING; +} +TeamId TeamBalancer::GetNextDefaultTeam(void) +{ + // Accounting for team balancing and team limits, get the team a player should be placed on + switch (defaultAssigmentAlgorithm) + { + case SMALLEST_TEAM: + { + return GetSmallestNonFullTeam(); + } + + case FILL_IN_ORDER: + { + return GetFirstNonFullTeam(); + } + + default: + { + RakAssert("TeamBalancer::GetNextDefaultTeam unknown algorithm enumeration" && 0); + return UNASSIGNED_TEAM_ID; + } + } +} +bool TeamBalancer::TeamWouldBeOverpopulatedOnAddition(TeamId teamId, unsigned int teamMemberSize) +{ + // Accounting for team balancing and team limits, would this team be overpopulated if a member was added to it? + if (teamMemberCounts[teamId]>=teamLimits[teamId]) + { + return true; + } + + if (forceTeamsToBeEven) + { + int allowedLimit = teamMemberSize/teamLimits.Size() + 1; + return teamMemberCounts[teamId]>=allowedLimit; + } + + return false; +} +bool TeamBalancer::TeamWouldBeUnderpopulatedOnLeave(TeamId teamId, unsigned int teamMemberSize) +{ + if (forceTeamsToBeEven) + { + unsigned int minMembersOnASingleTeam = (teamMemberSize-1)/teamLimits.Size(); + return teamMemberCounts[teamId]<=minMembersOnASingleTeam; + } + return false; +} +TeamId TeamBalancer::GetSmallestNonFullTeam(void) const +{ + TeamId idx; + unsigned long smallestTeamCount=MAX_UNSIGNED_LONG; + TeamId smallestTeamIndex = UNASSIGNED_TEAM_ID; + for (idx=0; idx < teamMemberCounts.Size(); idx++) + { + if (teamMemberCounts[idx] membersThatWantToJoinTheTeam; + for (TeamId i=0; i < teamMembers.Size(); i++) + { + if (teamMembers[i].requestedTeam==teamId) + membersThatWantToJoinTheTeam.Push(i,_FILE_AND_LINE_); + } + + if (membersThatWantToJoinTheTeam.Size()>0) + { + TeamId oldTeam; + unsigned int swappedMemberIndex = membersThatWantToJoinTheTeam[ randomMT() % membersThatWantToJoinTheTeam.Size() ]; + oldTeam=teamMembers[swappedMemberIndex].currentTeam; + SwitchMemberTeam(swappedMemberIndex,teamId); + NotifyTeamAssigment(swappedMemberIndex); + return oldTeam; + } + return UNASSIGNED_TEAM_ID; +} +void TeamBalancer::NotifyTeamsLocked(RakNetGUID target, TeamId requestedTeam) +{ + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_TEAMS_LOCKED); + bsOut.Write(requestedTeam); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,target,false); +} +void TeamBalancer::NotifyTeamSwitchPending(RakNetGUID target, TeamId requestedTeam, NetworkID memberId) +{ + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING); + bsOut.Write(requestedTeam); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,target,false); +} +void TeamBalancer::SwapTeamMembersByRequest(unsigned int memberIndex1, unsigned int memberIndex2) +{ + TeamId index1Team = teamMembers[memberIndex1].currentTeam; + teamMembers[memberIndex1].currentTeam=teamMembers[memberIndex2].currentTeam; + teamMembers[memberIndex2].currentTeam=index1Team; + teamMembers[memberIndex1].requestedTeam=UNASSIGNED_TEAM_ID; + teamMembers[memberIndex2].requestedTeam=UNASSIGNED_TEAM_ID; +} +void TeamBalancer::NotifyNoTeam(NetworkID memberId, RakNetGUID target) +{ + BitStream bsOut; + bsOut.Write((MessageID)ID_TEAM_BALANCER_TEAM_ASSIGNED); + bsOut.Write((unsigned char)UNASSIGNED_TEAM_ID); + bsOut.Write(memberId); + rakPeerInterface->Send(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,target,false); +} +bool TeamBalancer::TeamsWouldBeEvenOnSwitch(TeamId t1, TeamId t2) +{ + RakAssert(teamMembers.Size()!=0); + return TeamWouldBeOverpopulatedOnAddition(t1, teamMembers.Size()-1)==false && + TeamWouldBeUnderpopulatedOnLeave(t2, teamMembers.Size()-1)==false; +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/TeamBalancer.h b/src/raknet/TeamBalancer.h new file mode 100755 index 0000000..1776aca --- /dev/null +++ b/src/raknet/TeamBalancer.h @@ -0,0 +1,194 @@ +/// \file TeamBalancer.h +/// \brief Set and network team selection (supports peer to peer or client/server) +/// \details Automatically handles transmission and resolution of team selection, including team switching and balancing +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TeamBalancer==1 + +#ifndef __TEAM_BALANCER_H +#define __TEAM_BALANCER_H + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "DS_List.h" +#include "RakString.h" + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \defgroup TEAM_BALANCER_GROUP TeamBalancer +/// \brief Set and network team selection (supports peer to peer or client/server) +/// \details Automatically handles transmission and resolution of team selection, including team switching and balancing +/// \ingroup PLUGINS_GROUP + +/// 0...254 for your team number identifiers. 255 is reserved as undefined. +/// \ingroup TEAM_BALANCER_GROUP +typedef unsigned char TeamId; + +#define UNASSIGNED_TEAM_ID 255 + +/// \brief Set and network team selection (supports peer to peer or client/server) +/// \details Automatically handles transmission and resolution of team selection, including team switching and balancing.
      +/// Usage: TODO +/// \ingroup TEAM_BALANCER_GROUP +class RAK_DLL_EXPORT TeamBalancer : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TeamBalancer) + + TeamBalancer(); + virtual ~TeamBalancer(); + + /// \brief Set the limit to the number of players on the specified team + /// \details SetTeamSizeLimit() must be called on the host, so the host can enforce the maximum number of players on each team. + /// SetTeamSizeLimit() can be called on all systems if desired - for example, in a P2P environment you may wish to call it on all systems in advanced in case you become host. + /// \param[in] team Which team to set the limit for + /// \param[in] limit The maximum number of people on this team + void SetTeamSizeLimit(TeamId team, unsigned short limit); + + enum DefaultAssigmentAlgorithm + { + /// Among all the teams, join the team with the smallest number of players + SMALLEST_TEAM, + /// Join the team with the lowest index that has open slots. + FILL_IN_ORDER + }; + /// \brief Determine how players' teams will be set when they call RequestAnyTeam() + /// \details Based on the specified enumeration, a player will join a team automatically + /// Defaults to SMALLEST_TEAM + /// This function is only used by the host + /// \param[in] daa Enumeration describing the algorithm to use + void SetDefaultAssignmentAlgorithm(DefaultAssigmentAlgorithm daa); + + /// \brief By default, teams can be unbalanced up to the team size limit defined by SetTeamSizeLimits() + /// \details If SetForceEvenTeams(true) is called on the host, then teams cannot be unbalanced by more than 1 player + /// If teams are uneven at the time that SetForceEvenTeams(true) is called, players at randomly will be switched, and will be notified of ID_TEAM_BALANCER_TEAM_ASSIGNED + /// If players disconnect from the host such that teams would not be even, and teams are not locked, then a player from the largest team is randomly moved to even the teams. + /// Defaults to false + /// \note SetLockTeams(true) takes priority over SetForceEvenTeams(), so if teams are currently locked, this function will have no effect until teams become unlocked. + /// \param[in] force True to force even teams. False to allow teams to not be evenly matched + void SetForceEvenTeams(bool force); + + /// \brief If set, calls to RequestSpecificTeam() and RequestAnyTeam() will return the team you are currently on. + /// \details However, if those functions are called and you do not have a team, then you will be assigned to a default team according to SetDefaultAssignmentAlgorithm() and possibly SetForceEvenTeams(true) + /// If \a lock is false, and SetForceEvenTeams() was called with \a force as true, and teams are currently uneven, they will be made even, and those players randomly moved will get ID_TEAM_BALANCER_TEAM_ASSIGNED + /// Defaults to false + /// \param[in] lock True to lock teams, false to unlock + void SetLockTeams(bool lock); + + /// Set your requested team. UNASSIGNED_TEAM_ID means no team. + /// After enough time for network communication, ID_TEAM_BALANCER_SET_TEAM will be returned with your current team, or + /// If team switch is not possible, ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING or ID_TEAM_BALANCER_TEAMS_LOCKED will be returned. + /// In the case of ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING the request will stay in memory. ID_TEAM_BALANCER_SET_TEAM will be returned when someone on the desired team leaves or wants to switch to your team. + /// If SetLockTeams(true) is called while you have a request pending, you will get ID_TEAM_BALANCER_TEAMS_LOCKED + /// \pre Call SetTeamSizeLimits() on the host and call SetHostGuid() on this system. If the host is not running the TeamBalancer plugin or did not have SetTeamSizeLimits() called, then you will not get any response. + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + /// \param[in] desiredTeam An index representing your team number. The index should range from 0 to one less than the size of the list passed to SetTeamSizeLimits() on the host. You can also pass UNASSIGNED_TEAM_ID to not be on any team (such as if spectating) + void RequestSpecificTeam(NetworkID memberId, TeamId desiredTeam); + + /// If ID_TEAM_BALANCER_REQUESTED_TEAM_CHANGE_PENDING is returned after a call to RequestSpecificTeam(), the request will stay in memory on the host and execute when available, or until the teams become locked. + /// You can cancel the request by calling CancelRequestSpecificTeam(), in which case you will stay on your existing team. + /// \note Due to latency, even after calling CancelRequestSpecificTeam() you may still get ID_TEAM_BALANCER_SET_TEAM if the packet was already in transmission. + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + void CancelRequestSpecificTeam(NetworkID memberId); + + /// Allow host to pick your team, based on whatever algorithm it uses for default team assignments. + /// This only has an effect if you are not currently on a team (GetMyTeam() returns UNASSIGNED_TEAM_ID) + /// \pre Call SetTeamSizeLimits() on the host and call SetHostGuid() on this system + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + void RequestAnyTeam(NetworkID memberId); + + /// Returns your team. + /// As your team changes, you are notified through the ID_TEAM_BALANCER_TEAM_ASSIGNED packet in byte 1. + /// Returns UNASSIGNED_TEAM_ID initially + /// \pre For this to return anything other than UNASSIGNED_TEAM_ID, connect to a properly initialized host and RequestSpecificTeam() or RequestAnyTeam() first + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + /// \return UNASSIGNED_TEAM_ID for no team. Otherwise, the index should range from 0 to one less than the size of the list passed to SetTeamSizeLimits() on the host + TeamId GetMyTeam(NetworkID memberId) const; + + /// If you called RequestSpecificTeam() or RequestAnyTeam() with a value for \a memberId that + /// Has since been deleted, call DeleteMember(). to notify this plugin of that event. + /// Not necessary with only one team member per system + /// \param[in] memberId If there is more than one player per computer, this number identifies that player. Use any consistent value, such as UNASSINGED_NETWORK_ID if there is only one player. + void DeleteMember(NetworkID memberId); + + struct TeamMember + { + RakNetGUID memberGuid; + NetworkID memberId; + TeamId currentTeam; + TeamId requestedTeam; + }; + struct MyTeamMembers + { + NetworkID memberId; + TeamId currentTeam; + TeamId requestedTeam; + }; + +protected: + + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + /// \internal + void OnAttach(void); + + void OnStatusUpdateToNewHost(Packet *packet); + void OnCancelTeamRequest(Packet *packet); + void OnRequestAnyTeam(Packet *packet); + void OnRequestSpecificTeam(Packet *packet); + + RakNetGUID hostGuid; + DefaultAssigmentAlgorithm defaultAssigmentAlgorithm; + bool forceTeamsToBeEven; + bool lockTeams; + // So if we lose the connection while processing, we request the same info of the new host + DataStructures::List myTeamMembers; + + DataStructures::List teamLimits; + DataStructures::List teamMemberCounts; + DataStructures::List teamMembers; + unsigned int GetMemberIndex(NetworkID memberId, RakNetGUID guid) const; + unsigned int AddTeamMember(const TeamMember &tm); // Returns index of new member + void RemoveTeamMember(unsigned int index); + void EvenTeams(void); + unsigned int GetMemberIndexToSwitchTeams(const DataStructures::List &sourceTeamNumbers, TeamId targetTeamNumber); + void GetOverpopulatedTeams(DataStructures::List &overpopulatedTeams, int maxTeamSize); + void SwitchMemberTeam(unsigned int teamMemberIndex, TeamId destinationTeam); + void NotifyTeamAssigment(unsigned int teamMemberIndex); + bool WeAreHost(void) const; + PluginReceiveResult OnTeamAssigned(Packet *packet); + PluginReceiveResult OnRequestedTeamChangePending(Packet *packet); + PluginReceiveResult OnTeamsLocked(Packet *packet); + void GetMinMaxTeamMembers(int &minMembersOnASingleTeam, int &maxMembersOnASingleTeam); + TeamId GetNextDefaultTeam(void); // Accounting for team balancing and team limits, get the team a player should be placed on + bool TeamWouldBeOverpopulatedOnAddition(TeamId teamId, unsigned int teamMemberSize); // Accounting for team balancing and team limits, would this team be overpopulated if a member was added to it? + bool TeamWouldBeUnderpopulatedOnLeave(TeamId teamId, unsigned int teamMemberSize); + TeamId GetSmallestNonFullTeam(void) const; + TeamId GetFirstNonFullTeam(void) const; + void MoveMemberThatWantsToJoinTeam(TeamId teamId); + TeamId MoveMemberThatWantsToJoinTeamInternal(TeamId teamId); + void NotifyTeamsLocked(RakNetGUID target, TeamId requestedTeam); + void NotifyTeamSwitchPending(RakNetGUID target, TeamId requestedTeam, NetworkID memberId); + void NotifyNoTeam(NetworkID memberId, RakNetGUID target); + void SwapTeamMembersByRequest(unsigned int memberIndex1, unsigned int memberIndex2); + void RemoveByGuid(RakNetGUID rakNetGUID); + bool TeamsWouldBeEvenOnSwitch(TeamId t1, TeamId t2); + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/TelnetTransport.cpp b/src/raknet/TelnetTransport.cpp new file mode 100755 index 0000000..cc20897 --- /dev/null +++ b/src/raknet/TelnetTransport.cpp @@ -0,0 +1,364 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#include "TelnetTransport.h" +#include "TCPInterface.h" +#include +#include +#include +#include "LinuxStrings.h" + +// #define _PRINTF_DEBUG + +#define ECHO_INPUT + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(TelnetTransport,TelnetTransport); + +TelnetTransport::TelnetTransport() +{ + tcpInterface=0; + sendSuffix=0; + sendPrefix=0; +} +TelnetTransport::~TelnetTransport() +{ + Stop(); + if (sendSuffix) + rakFree_Ex(sendSuffix, _FILE_AND_LINE_ ); + if (sendPrefix) + rakFree_Ex(sendPrefix, _FILE_AND_LINE_ ); +} +bool TelnetTransport::Start(unsigned short port, bool serverMode) +{ + (void) serverMode; + AutoAllocate(); + RakAssert(serverMode); + return tcpInterface->Start(port, 64); +} +void TelnetTransport::Stop(void) +{ + if (tcpInterface==0) return; + tcpInterface->Stop(); + unsigned i; + for (i=0; i < remoteClients.Size(); i++) + RakNet::OP_DELETE(remoteClients[i], _FILE_AND_LINE_); + remoteClients.Clear(false, _FILE_AND_LINE_); + RakNet::OP_DELETE(tcpInterface, _FILE_AND_LINE_); + tcpInterface=0; +} +void TelnetTransport::Send( SystemAddress systemAddress, const char *data,... ) +{ + if (tcpInterface==0) return; + + if (data==0 || data[0]==0) + return; + + char text[REMOTE_MAX_TEXT_INPUT]; + size_t prefixLength; + if (sendPrefix) + { + strcpy(text, sendPrefix); + prefixLength = strlen(sendPrefix); + } + else + { + text[0]=0; + prefixLength=0; + } + va_list ap; + va_start(ap, data); + _vsnprintf(text+prefixLength, REMOTE_MAX_TEXT_INPUT-prefixLength, data, ap); + va_end(ap); + text[REMOTE_MAX_TEXT_INPUT-1]=0; + + if (sendSuffix) + { + size_t length = strlen(text); + size_t availableChars = REMOTE_MAX_TEXT_INPUT-length-1; + strncat(text, sendSuffix, availableChars); + } + + tcpInterface->Send(text, (unsigned int) strlen(text), systemAddress, false); +} +void TelnetTransport::CloseConnection( SystemAddress systemAddress ) +{ + tcpInterface->CloseConnection(systemAddress); +} +Packet* TelnetTransport::Receive( void ) +{ + if (tcpInterface==0) return 0; + Packet *p = tcpInterface->Receive(); + if (p==0) + return 0; + + /* + if (p->data[0]==255) + { + unsigned i; + for (i=0; i < p->length; i++) + { + RAKNET_DEBUG_PRINTF("%i ", p->data[i]); + } + RAKNET_DEBUG_PRINTF("\n"); + tcpInterface->DeallocatePacket(p); + return 0; + } + */ + + // Get this guy's cursor buffer. This is real bullcrap that I have to do this. + unsigned i; + TelnetClient *remoteClient=0; + for (i=0; i < remoteClients.Size(); i++) + { + if (remoteClients[i]->systemAddress==p->systemAddress) + remoteClient=remoteClients[i]; + } + //RakAssert(remoteClient); + if (remoteClient==0) + { + tcpInterface->DeallocatePacket(p); + return 0; + } + + + if (p->length==3 && p->data[0]==27 && p->data[1]==91 && p->data[2]==65) + { + if (remoteClient->lastSentTextInput[0]) + { + // Up arrow, return last string + for (int i=0; remoteClient->textInput[i]; i++) + remoteClient->textInput[i]=8; + strcat(remoteClient->textInput, remoteClient->lastSentTextInput); + tcpInterface->Send((const char *)remoteClient->textInput, (unsigned int) strlen(remoteClient->textInput), p->systemAddress, false); + strcpy(remoteClient->textInput,remoteClient->lastSentTextInput); + remoteClient->cursorPosition=(unsigned int) strlen(remoteClient->textInput); + } + + return 0; + } + + + // 127 is delete - ignore that + // 9 is tab + // 27 is escape + if (p->data[0]>=127 || p->data[0]==9 || p->data[0]==27) + { + tcpInterface->DeallocatePacket(p); + return 0; + } + + // Hack - I don't know what the hell this is about but cursor keys send 3 characters at a time. I can block these + //Up=27,91,65 + //Down=27,91,66 + //Right=27,91,67 + //Left=27,91,68 + if (p->length==3 && p->data[0]==27 && p->data[1]==91 && p->data[2]>=65 && p->data[2]<=68) + { + tcpInterface->DeallocatePacket(p); + return 0; + } + + + + // Echo + + tcpInterface->Send((const char *)p->data, p->length, p->systemAddress, false); + + + bool gotLine; + // Process each character in turn + for (i=0; i < p->length; i++) + { + + + if (p->data[i]==8) + { + char spaceThenBack[2]; + spaceThenBack[0]=' '; + spaceThenBack[1]=8; + tcpInterface->Send((const char *)spaceThenBack, 2, p->systemAddress, false); + } + + + gotLine=ReassembleLine(remoteClient, p->data[i]); + if (gotLine && remoteClient->textInput[0]) + { + + Packet *reassembledLine = (Packet*) rakMalloc_Ex(sizeof(Packet), _FILE_AND_LINE_); + reassembledLine->length=(unsigned int) strlen(remoteClient->textInput); + memcpy(remoteClient->lastSentTextInput, remoteClient->textInput, reassembledLine->length+1); + RakAssert(reassembledLine->length < REMOTE_MAX_TEXT_INPUT); + reassembledLine->data= (unsigned char*) rakMalloc_Ex( reassembledLine->length+1, _FILE_AND_LINE_ ); + memcpy(reassembledLine->data, remoteClient->textInput, reassembledLine->length); +#ifdef _PRINTF_DEBUG + memset(remoteClient->textInput, 0, REMOTE_MAX_TEXT_INPUT); +#endif + reassembledLine->data[reassembledLine->length]=0; + reassembledLine->systemAddress=p->systemAddress; + tcpInterface->DeallocatePacket(p); + return reassembledLine; + } + } + + tcpInterface->DeallocatePacket(p); + return 0; +} +void TelnetTransport::DeallocatePacket( Packet *packet ) +{ + if (tcpInterface==0) return; + rakFree_Ex(packet->data, _FILE_AND_LINE_ ); + rakFree_Ex(packet, _FILE_AND_LINE_ ); +} +SystemAddress TelnetTransport::HasNewIncomingConnection(void) +{ + unsigned i; + SystemAddress newConnection; + newConnection = tcpInterface->HasNewIncomingConnection(); + // 03/16/06 Can't force the stupid windows telnet to use line mode or local echo so now I have to track all the remote players and their + // input buffer + if (newConnection != UNASSIGNED_SYSTEM_ADDRESS) + { + unsigned char command[10]; + // http://www.pcmicro.com/netfoss/RFC857.html + // IAC WON'T ECHO + command[0]=255; // IAC + //command[1]=253; // WON'T + command[1]=251; // WILL + command[2]=1; // ECHO + tcpInterface->Send((const char*)command, 3, newConnection, false); + + /* + // Tell the other side to use line mode + // http://www.faqs.org/rfcs/rfc1184.html + // IAC DO LINEMODE + // command[0]=255; // IAC + // command[1]=252; // DO + // command[2]=34; // LINEMODE + // tcpInterface->Send((const char*)command, 3, newConnection); + + */ + + TelnetClient *remoteClient=0; + for (i=0; i < remoteClients.Size(); i++) + { + if (remoteClients[i]->systemAddress==newConnection) + { + remoteClient=remoteClients[i]; + remoteClient->cursorPosition=0; + } + } + + if (remoteClient==0) + { + remoteClient=new TelnetClient; + remoteClient->lastSentTextInput[0]=0; + remoteClient->cursorPosition=0; + remoteClient->systemAddress=newConnection; +#ifdef _PRINTF_DEBUG + memset(remoteClient->textInput, 0, REMOTE_MAX_TEXT_INPUT); +#endif + } + + remoteClients.Insert(remoteClient, _FILE_AND_LINE_); + } + return newConnection; +} +SystemAddress TelnetTransport::HasLostConnection(void) +{ + SystemAddress systemAddress; + unsigned i; + systemAddress=tcpInterface->HasLostConnection(); + if (systemAddress!=UNASSIGNED_SYSTEM_ADDRESS) + { + for (i=0; i < remoteClients.Size(); i++) + { + if (remoteClients[i]->systemAddress==systemAddress) + { + RakNet::OP_DELETE(remoteClients[i], _FILE_AND_LINE_); + remoteClients[i]=remoteClients[remoteClients.Size()-1]; + remoteClients.RemoveFromEnd(); + } + } + } + return systemAddress; +} +CommandParserInterface* TelnetTransport::GetCommandParser(void) +{ + return 0; +} +void TelnetTransport::SetSendSuffix(const char *suffix) +{ + if (sendSuffix) + { + rakFree_Ex(sendSuffix, _FILE_AND_LINE_ ); + sendSuffix=0; + } + if (suffix) + { + sendSuffix = (char*) rakMalloc_Ex(strlen(suffix)+1, _FILE_AND_LINE_); + strcpy(sendSuffix, suffix); + } +} +void TelnetTransport::SetSendPrefix(const char *prefix) +{ + if (sendPrefix) + { + rakFree_Ex(sendPrefix, _FILE_AND_LINE_ ); + sendPrefix=0; + } + if (prefix) + { + sendPrefix = (char*) rakMalloc_Ex(strlen(prefix)+1, _FILE_AND_LINE_); + strcpy(sendPrefix, prefix); + } +} +void TelnetTransport::AutoAllocate(void) +{ + if (tcpInterface==0) + tcpInterface=new TCPInterface; +} +bool TelnetTransport::ReassembleLine(TelnetTransport::TelnetClient* remoteClient, unsigned char c) +{ + if (c=='\n') + { + remoteClient->textInput[remoteClient->cursorPosition]=0; + remoteClient->cursorPosition=0; +#ifdef _PRINTF_DEBUG + RAKNET_DEBUG_PRINTF("[Done] %s\n", remoteClient->textInput); +#endif + return true; + } + else if (c==8) // backspace + { + if (remoteClient->cursorPosition>0) + { + remoteClient->textInput[--remoteClient->cursorPosition]=0; +#ifdef _PRINTF_DEBUG + RAKNET_DEBUG_PRINTF("[Back] %s\n", remoteClient->textInput); +#endif + } + } + else if (c>=32 && c <127) + { + if (remoteClient->cursorPosition < REMOTE_MAX_TEXT_INPUT) + { + remoteClient->textInput[remoteClient->cursorPosition++]=c; +#ifdef _PRINTF_DEBUG + RAKNET_DEBUG_PRINTF("[Norm] %s\n", remoteClient->textInput); +#endif + } + } + return false; +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/TelnetTransport.h b/src/raknet/TelnetTransport.h new file mode 100755 index 0000000..e5e515b --- /dev/null +++ b/src/raknet/TelnetTransport.h @@ -0,0 +1,72 @@ +/// \file +/// \brief Contains TelnetTransport , used to supports the telnet transport protocol. Insecure +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TelnetTransport==1 && _RAKNET_SUPPORT_TCPInterface==1 + +#ifndef __TELNET_TRANSPORT +#define __TELNET_TRANSPORT + +#include "TransportInterface.h" +#include "DS_List.h" +#include "Export.h" + +namespace RakNet +{ +/// Forward declarations +class TCPInterface; +struct TelnetClient; + +/// \brief Use TelnetTransport to easily allow windows telnet to connect to your ConsoleServer +/// \details To run Windows telnet, go to your start menu, click run, and in the edit box type "telnet " where is the ip address.
      +/// of your ConsoleServer (most likely the same IP as your game).
      +/// This implementation always echos commands. +class RAK_DLL_EXPORT TelnetTransport : public TransportInterface +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TelnetTransport) + + TelnetTransport(); + virtual ~TelnetTransport(); + bool Start(unsigned short port, bool serverMode); + void Stop(void); + void Send( SystemAddress systemAddress, const char *data, ... ); + void CloseConnection( SystemAddress systemAddress ); + Packet* Receive( void ); + void DeallocatePacket( Packet *packet ); + SystemAddress HasNewIncomingConnection(void); + SystemAddress HasLostConnection(void); + CommandParserInterface* GetCommandParser(void); + void SetSendSuffix(const char *suffix); + void SetSendPrefix(const char *prefix); +protected: + + struct TelnetClient + { + SystemAddress systemAddress; + char textInput[REMOTE_MAX_TEXT_INPUT]; + char lastSentTextInput[REMOTE_MAX_TEXT_INPUT]; + unsigned cursorPosition; + }; + + TCPInterface *tcpInterface; + void AutoAllocate(void); + bool ReassembleLine(TelnetTransport::TelnetClient* telnetClient, unsigned char c); + + // Crap this sucks but because windows telnet won't send line at a time, I have to reconstruct the lines at the server per player + DataStructures::List remoteClients; + + char *sendSuffix, *sendPrefix; + +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ThreadPool.h b/src/raknet/ThreadPool.h new file mode 100755 index 0000000..087460e --- /dev/null +++ b/src/raknet/ThreadPool.h @@ -0,0 +1,620 @@ +#ifndef __THREAD_POOL_H +#define __THREAD_POOL_H + +#include "RakMemoryOverride.h" +#include "DS_Queue.h" +#include "SimpleMutex.h" +#include "Export.h" +#include "RakThread.h" +#include "SignaledEvent.h" + +#ifdef _MSC_VER +#pragma warning( push ) +#endif + +class ThreadDataInterface +{ +public: + ThreadDataInterface() {} + virtual ~ThreadDataInterface() {} + + virtual void* PerThreadFactory(void *context)=0; + virtual void PerThreadDestructor(void* factoryResult, void *context)=0; +}; +/// A simple class to create worker threads that processes a queue of functions with data. +/// This class does not allocate or deallocate memory. It is up to the user to handle memory management. +/// InputType and OutputType are stored directly in a queue. For large structures, if you plan to delete from the middle of the queue, +/// you might wish to store pointers rather than the structures themselves so the array can shift efficiently. +template +struct RAK_DLL_EXPORT ThreadPool +{ + ThreadPool(); + ~ThreadPool(); + + /// Start the specified number of threads. + /// \param[in] numThreads The number of threads to start + /// \param[in] stackSize 0 for default (except on consoles). + /// \param[in] _perThreadInit User callback to return data stored per thread. Pass 0 if not needed. + /// \param[in] _perThreadDeinit User callback to destroy data stored per thread, created by _perThreadInit. Pass 0 if not needed. + /// \return True on success, false on failure. + bool StartThreads(int numThreads, int stackSize, void* (*_perThreadInit)()=0, void (*_perThreadDeinit)(void*)=0); + + // Alternate form of _perThreadDataFactory, _perThreadDataDestructor + void SetThreadDataInterface(ThreadDataInterface *tdi, void *context); + + /// Stops all threads + void StopThreads(void); + + /// Adds a function to a queue with data to pass to that function. This function will be called from the thread + /// Memory management is your responsibility! This class does not allocate or deallocate memory. + /// The best way to deallocate \a inputData is in userCallback. If you call EndThreads such that callbacks were not called, you + /// can iterate through the inputQueue and deallocate all pending input data there + /// The best way to deallocate output is as it is returned to you from GetOutput. Similarly, if you end the threads such that + /// not all output was returned, you can iterate through outputQueue and deallocate it there. + /// \param[in] workerThreadCallback The function to call from the thread + /// \param[in] inputData The parameter to pass to \a userCallback + void AddInput(OutputType (*workerThreadCallback)(InputType, bool *returnOutput, void* perThreadData), InputType inputData); + + /// Adds to the output queue + /// Use it if you want to inject output into the same queue that the system uses. Normally you would not use this. Consider it a convenience function. + /// \param[in] outputData The output to inject + void AddOutput(OutputType outputData); + + /// Returns true if output from GetOutput is waiting. + /// \return true if output is waiting, false otherwise + bool HasOutput(void); + + /// Inaccurate but fast version of HasOutput. If this returns true, you should still check HasOutput for the real value. + /// \return true if output is probably waiting, false otherwise + bool HasOutputFast(void); + + /// Returns true if input from GetInput is waiting. + /// \return true if input is waiting, false otherwise + bool HasInput(void); + + /// Inaccurate but fast version of HasInput. If this returns true, you should still check HasInput for the real value. + /// \return true if input is probably waiting, false otherwise + bool HasInputFast(void); + + /// Gets the output of a call to \a userCallback + /// HasOutput must return true before you call this function. Otherwise it will assert. + /// \return The output of \a userCallback. If you have different output signatures, it is up to you to encode the data to indicate this + OutputType GetOutput(void); + + /// Clears internal buffers + void Clear(void); + + /// Lock the input buffer before calling the functions InputSize, InputAtIndex, and RemoveInputAtIndex + /// It is only necessary to lock the input or output while the threads are running + void LockInput(void); + + /// Unlock the input buffer after you are done with the functions InputSize, GetInputAtIndex, and RemoveInputAtIndex + void UnlockInput(void); + + /// Length of the input queue + unsigned InputSize(void); + + /// Get the input at a specified index + InputType GetInputAtIndex(unsigned index); + + /// Remove input from a specific index. This does NOT do memory deallocation - it only removes the item from the queue + void RemoveInputAtIndex(unsigned index); + + /// Lock the output buffer before calling the functions OutputSize, OutputAtIndex, and RemoveOutputAtIndex + /// It is only necessary to lock the input or output while the threads are running + void LockOutput(void); + + /// Unlock the output buffer after you are done with the functions OutputSize, GetOutputAtIndex, and RemoveOutputAtIndex + void UnlockOutput(void); + + /// Length of the output queue + unsigned OutputSize(void); + + /// Get the output at a specified index + OutputType GetOutputAtIndex(unsigned index); + + /// Remove output from a specific index. This does NOT do memory deallocation - it only removes the item from the queue + void RemoveOutputAtIndex(unsigned index); + + /// Removes all items from the input queue + void ClearInput(void); + + /// Removes all items from the output queue + void ClearOutput(void); + + /// Are any of the threads working, or is input or output available? + bool IsWorking(void); + + /// The number of currently active threads. + int NumThreadsWorking(void); + + /// Did we call Start? + bool WasStarted(void); + + // Block until all threads are stopped. + bool Pause(void); + + // Continue running + void Resume(void); + +protected: + // It is valid to cancel input before it is processed. To do so, lock the inputQueue with inputQueueMutex, + // Scan the list, and remove the item you don't want. + RakNet::SimpleMutex inputQueueMutex, outputQueueMutex, workingThreadCountMutex, runThreadsMutex; + + void* (*perThreadDataFactory)(); + void (*perThreadDataDestructor)(void*); + + // inputFunctionQueue & inputQueue are paired arrays so if you delete from one at a particular index you must delete from the other + // at the same index + DataStructures::Queue inputFunctionQueue; + DataStructures::Queue inputQueue; + DataStructures::Queue outputQueue; + + ThreadDataInterface *threadDataInterface; + void *tdiContext; + + + template + friend RAK_THREAD_DECLARATION(WorkerThread); + + /* +#ifdef _WIN32 + friend unsigned __stdcall WorkerThread( LPVOID arguments ); +#else + friend void* WorkerThread( void* arguments ); +#endif + */ + + /// \internal + bool runThreads; + /// \internal + int numThreadsRunning; + /// \internal + int numThreadsWorking; + /// \internal + RakNet::SimpleMutex numThreadsRunningMutex; + + RakNet::SignaledEvent quitAndIncomingDataEvents; + +// #if defined(SN_TARGET_PSP2) +// RakNet::RakThread::UltUlThreadRuntime *runtime; +// #endif +}; + +#include "ThreadPool.h" +#include "RakSleep.h" +#ifdef _WIN32 + +#else +#include +#endif + +#ifdef _MSC_VER +#pragma warning(disable:4127) +#pragma warning( disable : 4701 ) // potentially uninitialized local variable 'inputData' used +#endif + +template +RAK_THREAD_DECLARATION(WorkerThread) +/* +#ifdef _WIN32 +unsigned __stdcall WorkerThread( LPVOID arguments ) +#else +void* WorkerThread( void* arguments ) +#endif +*/ +{ + + + + ThreadPool *threadPool = (ThreadPool*) arguments; + + + bool returnOutput; + ThreadOutputType (*userCallback)(ThreadInputType, bool *, void*); + ThreadInputType inputData; + ThreadOutputType callbackOutput; + + userCallback=0; + + void *perThreadData; + if (threadPool->perThreadDataFactory) + perThreadData=threadPool->perThreadDataFactory(); + else if (threadPool->threadDataInterface) + perThreadData=threadPool->threadDataInterface->PerThreadFactory(threadPool->tdiContext); + else + perThreadData=0; + + // Increase numThreadsRunning + threadPool->numThreadsRunningMutex.Lock(); + ++threadPool->numThreadsRunning; + threadPool->numThreadsRunningMutex.Unlock(); + + while (1) + { +#ifdef _WIN32 + if (userCallback==0) + { + threadPool->quitAndIncomingDataEvents.WaitOnEvent(INFINITE); + } +#endif + + threadPool->runThreadsMutex.Lock(); + if (threadPool->runThreads==false) + { + threadPool->runThreadsMutex.Unlock(); + break; + } + threadPool->runThreadsMutex.Unlock(); + + threadPool->workingThreadCountMutex.Lock(); + ++threadPool->numThreadsWorking; + threadPool->workingThreadCountMutex.Unlock(); + + // Read input data + userCallback=0; + threadPool->inputQueueMutex.Lock(); + if (threadPool->inputFunctionQueue.Size()) + { + userCallback=threadPool->inputFunctionQueue.Pop(); + inputData=threadPool->inputQueue.Pop(); + } + threadPool->inputQueueMutex.Unlock(); + + if (userCallback) + { + callbackOutput=userCallback(inputData, &returnOutput,perThreadData); + if (returnOutput) + { + threadPool->outputQueueMutex.Lock(); + threadPool->outputQueue.Push(callbackOutput, _FILE_AND_LINE_ ); + threadPool->outputQueueMutex.Unlock(); + } + } + + threadPool->workingThreadCountMutex.Lock(); + --threadPool->numThreadsWorking; + threadPool->workingThreadCountMutex.Unlock(); + } + + // Decrease numThreadsRunning + threadPool->numThreadsRunningMutex.Lock(); + --threadPool->numThreadsRunning; + threadPool->numThreadsRunningMutex.Unlock(); + + if (threadPool->perThreadDataDestructor) + threadPool->perThreadDataDestructor(perThreadData); + else if (threadPool->threadDataInterface) + threadPool->threadDataInterface->PerThreadDestructor(perThreadData, threadPool->tdiContext); + + + + + return 0; + +} +template +ThreadPool::ThreadPool() +{ + runThreads=false; + numThreadsRunning=0; + threadDataInterface=0; + tdiContext=0; + numThreadsWorking=0; + +} +template +ThreadPool::~ThreadPool() +{ + StopThreads(); + Clear(); +} +template +bool ThreadPool::StartThreads(int numThreads, int stackSize, void* (*_perThreadDataFactory)(), void (*_perThreadDataDestructor)(void *)) +{ + (void) stackSize; + +// #if defined(SN_TARGET_PSP2) +// runtime = RakNet::RakThread::AllocRuntime(numThreads); +// #endif + + runThreadsMutex.Lock(); + if (runThreads==true) + { + // Already running + runThreadsMutex.Unlock(); + return false; + } + runThreadsMutex.Unlock(); + + quitAndIncomingDataEvents.InitEvent(); + + perThreadDataFactory=_perThreadDataFactory; + perThreadDataDestructor=_perThreadDataDestructor; + + runThreadsMutex.Lock(); + runThreads=true; + runThreadsMutex.Unlock(); + + numThreadsWorking=0; + unsigned threadId = 0; + (void) threadId; + int i; + for (i=0; i < numThreads; i++) + { + int errorCode; + + + + + errorCode = RakNet::RakThread::Create(WorkerThread, this); + + if (errorCode!=0) + { + StopThreads(); + return false; + } + } + // Wait for number of threads running to increase to numThreads + bool done=false; + while (done==false) + { + RakSleep(50); + numThreadsRunningMutex.Lock(); + if (numThreadsRunning==numThreads) + done=true; + numThreadsRunningMutex.Unlock(); + } + + return true; +} +template +void ThreadPool::SetThreadDataInterface(ThreadDataInterface *tdi, void *context) +{ + threadDataInterface=tdi; + tdiContext=context; +} +template +void ThreadPool::StopThreads(void) +{ + runThreadsMutex.Lock(); + if (runThreads==false) + { + runThreadsMutex.Unlock(); + return; + } + + runThreads=false; + runThreadsMutex.Unlock(); + + // Wait for number of threads running to decrease to 0 + bool done=false; + while (done==false) + { + quitAndIncomingDataEvents.SetEvent(); + + RakSleep(50); + numThreadsRunningMutex.Lock(); + if (numThreadsRunning==0) + done=true; + numThreadsRunningMutex.Unlock(); + } + + quitAndIncomingDataEvents.CloseEvent(); + +// #if defined(SN_TARGET_PSP2) +// RakNet::RakThread::DeallocRuntime(runtime); +// runtime=0; +// #endif + +} +template +void ThreadPool::AddInput(OutputType (*workerThreadCallback)(InputType, bool *returnOutput, void* perThreadData), InputType inputData) +{ + inputQueueMutex.Lock(); + inputQueue.Push(inputData, _FILE_AND_LINE_ ); + inputFunctionQueue.Push(workerThreadCallback, _FILE_AND_LINE_ ); + inputQueueMutex.Unlock(); + + quitAndIncomingDataEvents.SetEvent(); +} +template +void ThreadPool::AddOutput(OutputType outputData) +{ + outputQueueMutex.Lock(); + outputQueue.Push(outputData, _FILE_AND_LINE_ ); + outputQueueMutex.Unlock(); +} +template +bool ThreadPool::HasOutputFast(void) +{ + return outputQueue.IsEmpty()==false; +} +template +bool ThreadPool::HasOutput(void) +{ + bool res; + outputQueueMutex.Lock(); + res=outputQueue.IsEmpty()==false; + outputQueueMutex.Unlock(); + return res; +} +template +bool ThreadPool::HasInputFast(void) +{ + return inputQueue.IsEmpty()==false; +} +template +bool ThreadPool::HasInput(void) +{ + bool res; + inputQueueMutex.Lock(); + res=inputQueue.IsEmpty()==false; + inputQueueMutex.Unlock(); + return res; +} +template +OutputType ThreadPool::GetOutput(void) +{ + // Real output check + OutputType output; + outputQueueMutex.Lock(); + output=outputQueue.Pop(); + outputQueueMutex.Unlock(); + return output; +} +template +void ThreadPool::Clear(void) +{ + runThreadsMutex.Lock(); + if (runThreads) + { + runThreadsMutex.Unlock(); + inputQueueMutex.Lock(); + inputFunctionQueue.Clear(_FILE_AND_LINE_); + inputQueue.Clear(_FILE_AND_LINE_); + inputQueueMutex.Unlock(); + + outputQueueMutex.Lock(); + outputQueue.Clear(_FILE_AND_LINE_); + outputQueueMutex.Unlock(); + } + else + { + inputFunctionQueue.Clear(_FILE_AND_LINE_); + inputQueue.Clear(_FILE_AND_LINE_); + outputQueue.Clear(_FILE_AND_LINE_); + } +} +template +void ThreadPool::LockInput(void) +{ + inputQueueMutex.Lock(); +} +template +void ThreadPool::UnlockInput(void) +{ + inputQueueMutex.Unlock(); +} +template +unsigned ThreadPool::InputSize(void) +{ + return inputQueue.Size(); +} +template +InputType ThreadPool::GetInputAtIndex(unsigned index) +{ + return inputQueue[index]; +} +template +void ThreadPool::RemoveInputAtIndex(unsigned index) +{ + inputQueue.RemoveAtIndex(index); + inputFunctionQueue.RemoveAtIndex(index); +} +template +void ThreadPool::LockOutput(void) +{ + outputQueueMutex.Lock(); +} +template +void ThreadPool::UnlockOutput(void) +{ + outputQueueMutex.Unlock(); +} +template +unsigned ThreadPool::OutputSize(void) +{ + return outputQueue.Size(); +} +template +OutputType ThreadPool::GetOutputAtIndex(unsigned index) +{ + return outputQueue[index]; +} +template +void ThreadPool::RemoveOutputAtIndex(unsigned index) +{ + outputQueue.RemoveAtIndex(index); +} +template +void ThreadPool::ClearInput(void) +{ + inputQueue.Clear(_FILE_AND_LINE_); + inputFunctionQueue.Clear(_FILE_AND_LINE_); +} + +template +void ThreadPool::ClearOutput(void) +{ + outputQueue.Clear(_FILE_AND_LINE_); +} +template +bool ThreadPool::IsWorking(void) +{ + bool isWorking; +// workingThreadCountMutex.Lock(); +// isWorking=numThreadsWorking!=0; +// workingThreadCountMutex.Unlock(); + +// if (isWorking) +// return true; + + // Bug fix: Originally the order of these two was reversed. + // It's possible with the thread timing that working could have been false, then it picks up the data in the other thread, then it checks + // here and sees there is no data. So it thinks the thread is not working when it was. + if (HasOutputFast() && HasOutput()) + return true; + + if (HasInputFast() && HasInput()) + return true; + + // Need to check is working again, in case the thread was between the first and second checks + workingThreadCountMutex.Lock(); + isWorking=numThreadsWorking!=0; + workingThreadCountMutex.Unlock(); + + return isWorking; +} + +template +int ThreadPool::NumThreadsWorking(void) +{ + return numThreadsWorking; +} + +template +bool ThreadPool::WasStarted(void) +{ + bool b; + runThreadsMutex.Lock(); + b = runThreads; + runThreadsMutex.Unlock(); + return b; +} +template +bool ThreadPool::Pause(void) +{ + if (WasStarted()==false) + return false; + + workingThreadCountMutex.Lock(); + while (numThreadsWorking>0) + { + RakSleep(30); + } + return true; +} +template +void ThreadPool::Resume(void) +{ + workingThreadCountMutex.Unlock(); +} + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#endif + diff --git a/src/raknet/ThreadsafePacketLogger.cpp b/src/raknet/ThreadsafePacketLogger.cpp new file mode 100755 index 0000000..a749da0 --- /dev/null +++ b/src/raknet/ThreadsafePacketLogger.cpp @@ -0,0 +1,38 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#include "ThreadsafePacketLogger.h" +#include + +using namespace RakNet; + +ThreadsafePacketLogger::ThreadsafePacketLogger() +{ + +} +ThreadsafePacketLogger::~ThreadsafePacketLogger() +{ + char **msg; + while ((msg = logMessages.ReadLock()) != 0) + { + rakFree_Ex((*msg), _FILE_AND_LINE_ ); + } +} +void ThreadsafePacketLogger::Update(void) +{ + char **msg; + while ((msg = logMessages.ReadLock()) != 0) + { + WriteLog(*msg); + rakFree_Ex((*msg), _FILE_AND_LINE_ ); + } +} +void ThreadsafePacketLogger::AddToLog(const char *str) +{ + char **msg = logMessages.WriteLock(); + *msg = (char*) rakMalloc_Ex( strlen(str)+1, _FILE_AND_LINE_ ); + strcpy(*msg, str); + logMessages.WriteUnlock(); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/ThreadsafePacketLogger.h b/src/raknet/ThreadsafePacketLogger.h new file mode 100755 index 0000000..bca5cf2 --- /dev/null +++ b/src/raknet/ThreadsafePacketLogger.h @@ -0,0 +1,40 @@ +/// \file +/// \brief Derivation of the packet logger to defer the call to WriteLog until the user thread. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_PacketLogger==1 + +#ifndef __THREADSAFE_PACKET_LOGGER_H +#define __THREADSAFE_PACKET_LOGGER_H + +#include "PacketLogger.h" +#include "SingleProducerConsumer.h" + +namespace RakNet +{ + +/// \ingroup PACKETLOGGER_GROUP +/// \brief Same as PacketLogger, but writes output in the user thread. +class RAK_DLL_EXPORT ThreadsafePacketLogger : public PacketLogger +{ +public: + ThreadsafePacketLogger(); + virtual ~ThreadsafePacketLogger(); + + virtual void Update(void); + +protected: + virtual void AddToLog(const char *str); + + DataStructures::SingleProducerConsumer logMessages; +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/TransportInterface.h b/src/raknet/TransportInterface.h new file mode 100755 index 0000000..f4f8076 --- /dev/null +++ b/src/raknet/TransportInterface.h @@ -0,0 +1,83 @@ +/// \file +/// \brief Contains TransportInterface from which you can derive custom transport providers for ConsoleServer. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#ifndef __TRANSPORT_INTERFACE_H +#define __TRANSPORT_INTERFACE_H + +#include "RakNetTypes.h" +#include "Export.h" +#include "RakMemoryOverride.h" + +#define REMOTE_MAX_TEXT_INPUT 2048 + +namespace RakNet +{ + +class CommandParserInterface; + + +/// \brief Defines an interface that is used to send and receive null-terminated strings. +/// \details In practice this is only used by the CommandParser system for for servers. +class RAK_DLL_EXPORT TransportInterface +{ +public: + TransportInterface() {} + virtual ~TransportInterface() {} + + /// Start the transport provider on the indicated port. + /// \param[in] port The port to start the transport provider on + /// \param[in] serverMode If true, you should allow incoming connections (I don't actually use this anywhere) + /// \return Return true on success, false on failure. + virtual bool Start(unsigned short port, bool serverMode)=0; + + /// Stop the transport provider. You can clear memory and shutdown threads here. + virtual void Stop(void)=0; + + /// Send a null-terminated string to \a systemAddress + /// If your transport method requires particular formatting of the outgoing data (e.g. you don't just send strings) you can do it here + /// and parse it out in Receive(). + /// \param[in] systemAddress The player to send the string to + /// \param[in] data format specifier - same as RAKNET_DEBUG_PRINTF + /// \param[in] ... format specification arguments - same as RAKNET_DEBUG_PRINTF + virtual void Send( SystemAddress systemAddress, const char *data, ... )=0; + + /// Disconnect \a systemAddress . The binary address and port defines the SystemAddress structure. + /// \param[in] systemAddress The player/address to disconnect + virtual void CloseConnection( SystemAddress systemAddress )=0; + + /// Return a string. The string should be allocated and written to Packet::data . + /// The byte length should be written to Packet::length . The player/address should be written to Packet::systemAddress + /// If your transport protocol adds special formatting to the data stream you should parse it out before returning it in the packet + /// and thus only return a string in Packet::data + /// \return The packet structure containing the result of Receive, or 0 if no data is available + virtual Packet* Receive( void )=0; + + /// Deallocate the Packet structure returned by Receive + /// \param[in] The packet to deallocate + virtual void DeallocatePacket( Packet *packet )=0; + + /// If a new system connects to you, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + virtual SystemAddress HasNewIncomingConnection(void)=0; + + /// If a system loses the connection, you should queue that event and return the systemAddress/address of that player in this function. + /// \return The SystemAddress/address of the system + virtual SystemAddress HasLostConnection(void)=0; + + /// Your transport provider can itself have command parsers if the transport layer has user-modifiable features + /// For example, your transport layer may have a password which you want remote users to be able to set or you may want + /// to allow remote users to turn on or off command echo + /// \return 0 if you do not need a command parser - otherwise the desired derivation of CommandParserInterface + virtual CommandParserInterface* GetCommandParser(void)=0; +protected: +}; + +} // namespace RakNet + +#endif + diff --git a/src/raknet/TwoWayAuthentication.cpp b/src/raknet/TwoWayAuthentication.cpp new file mode 100755 index 0000000..17648e7 --- /dev/null +++ b/src/raknet/TwoWayAuthentication.cpp @@ -0,0 +1,431 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TwoWayAuthentication==1 + +#include "TwoWayAuthentication.h" +#include "Rand.h" +#include "GetTime.h" +#include "MessageIdentifiers.h" +#include "BitStream.h" +#include "RakPeerInterface.h" + +#if LIBCAT_SECURITY==1 +static const int HASH_BITS = 256; +static const int HASH_BYTES = HASH_BITS / 8; +static const int STRENGTHENING_FACTOR = 256; +#include +#endif + +using namespace RakNet; + +enum NegotiationIdentifiers +{ + ID_NONCE_REQUEST, + ID_NONCE_REPLY, + ID_HASHED_NONCE_AND_PASSWORD, +}; + +TwoWayAuthentication::NonceGenerator::NonceGenerator() {nextRequestId=0;} +TwoWayAuthentication::NonceGenerator::~NonceGenerator() +{ + Clear(); +} +void TwoWayAuthentication::NonceGenerator::GetNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short *requestId, RakNet::AddressOrGUID remoteSystem) +{ + TwoWayAuthentication::NonceAndRemoteSystemRequest *narsr = RakNet::OP_NEW(_FILE_AND_LINE_); + narsr->remoteSystem=remoteSystem; + GenerateNonce(narsr->nonce); + narsr->requestId=nextRequestId++; + *requestId=narsr->requestId; + memcpy(nonce,narsr->nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + narsr->whenGenerated=RakNet::GetTime(); + generatedNonces.Push(narsr,_FILE_AND_LINE_); +} +void TwoWayAuthentication::NonceGenerator::GenerateNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]) +{ + fillBufferMT(nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); +} +bool TwoWayAuthentication::NonceGenerator::GetNonceById(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short requestId, RakNet::AddressOrGUID remoteSystem, bool popIfFound) +{ + unsigned int i; + for (i=0; i < generatedNonces.Size(); i++) + { + if (generatedNonces[i]->requestId==requestId) + { + if (remoteSystem==generatedNonces[i]->remoteSystem) + { + memcpy(nonce,generatedNonces[i]->nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + if (popIfFound) + { + RakNet::OP_DELETE(generatedNonces[i],_FILE_AND_LINE_); + generatedNonces.RemoveAtIndex(i); + } + return true; + } + else + { + return false; + } + } + } + return false; +} +void TwoWayAuthentication::NonceGenerator::Clear(void) +{ + unsigned int i; + for (i=0; i < generatedNonces.Size(); i++) + RakNet::OP_DELETE(generatedNonces[i],_FILE_AND_LINE_); + generatedNonces.Clear(true,_FILE_AND_LINE_); +} +void TwoWayAuthentication::NonceGenerator::ClearByAddress(RakNet::AddressOrGUID remoteSystem) +{ + unsigned int i=0; + while (i < generatedNonces.Size()) + { + if (generatedNonces[i]->remoteSystem==remoteSystem) + { + RakNet::OP_DELETE(generatedNonces[i],_FILE_AND_LINE_); + generatedNonces.RemoveAtIndex(i); + } + else + { + i++; + } + } +} +void TwoWayAuthentication::NonceGenerator::Update(RakNet::Time curTime) +{ + if (generatedNonces.Size()>0 && GreaterThan(curTime-5000, generatedNonces[0]->whenGenerated)) + { + RakNet::OP_DELETE(generatedNonces[0], _FILE_AND_LINE_); + generatedNonces.RemoveAtIndex(0); + } +} +TwoWayAuthentication::TwoWayAuthentication() +{ + whenLastTimeoutCheck=RakNet::GetTime(); + seedMT(RakNet::GetTimeMS()); +} +TwoWayAuthentication::~TwoWayAuthentication() +{ + Clear(); +} +bool TwoWayAuthentication::AddPassword(RakNet::RakString identifier, RakNet::RakString password) +{ + if (password.IsEmpty()) + return false; + + if (identifier.IsEmpty()) + return false; + + if (password==identifier) + return false; // Insecure + + if (passwords.GetIndexOf(identifier.C_String()).IsInvalid()==false) + return false; // This identifier already in use + + passwords.Push(identifier, password,_FILE_AND_LINE_); + return true; +} +bool TwoWayAuthentication::Challenge(RakNet::RakString identifier, AddressOrGUID remoteSystem) +{ + DataStructures::HashIndex skhi = passwords.GetIndexOf(identifier.C_String()); + if (skhi.IsInvalid()) + return false; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_NEGOTIATION); + bsOut.Write((MessageID)ID_NONCE_REQUEST); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,remoteSystem,false); + + PendingChallenge pc; + pc.identifier=identifier; + pc.remoteSystem=remoteSystem; + pc.time=RakNet::GetTime(); + pc.sentHash=false; + outgoingChallenges.Push(pc,_FILE_AND_LINE_); + + return true; +} +void TwoWayAuthentication::Update(void) +{ + RakNet::Time curTime = RakNet::GetTime(); + nonceGenerator.Update(curTime); + if (GreaterThan(curTime - CHALLENGE_MINIMUM_TIMEOUT, whenLastTimeoutCheck)) + { + while (outgoingChallenges.Size() && GreaterThan(curTime - CHALLENGE_MINIMUM_TIMEOUT, outgoingChallenges.Peek().time)) + { + PendingChallenge pc = outgoingChallenges.Pop(); + + // Tell the user about the timeout + PushToUser(ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, pc.identifier, pc.remoteSystem); + } + + whenLastTimeoutCheck=curTime+CHALLENGE_MINIMUM_TIMEOUT; + } +} +PluginReceiveResult TwoWayAuthentication::OnReceive(Packet *packet) +{ + switch (packet->data[0]) + { + case ID_TWO_WAY_AUTHENTICATION_NEGOTIATION: + { + if (packet->length>=sizeof(MessageID)*2) + { + switch (packet->data[sizeof(MessageID)]) + { + case ID_NONCE_REQUEST: + { + OnNonceRequest(packet); + } + break; + case ID_NONCE_REPLY: + { + OnNonceReply(packet); + } + break; + case ID_HASHED_NONCE_AND_PASSWORD: + { + return OnHashedNonceAndPassword(packet); + } + break; + } + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE: + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS: + { + if (packet->wasGeneratedLocally==false) + { + OnPasswordResult(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + else + break; + } + break; + // These should only be generated locally + case ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS: + case ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE: + case ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT: + if (packet->wasGeneratedLocally==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + break; + } + + return RR_CONTINUE_PROCESSING; +} +void TwoWayAuthentication::OnRakPeerShutdown(void) +{ + Clear(); +} +void TwoWayAuthentication::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + + // Remove from pending challenges + unsigned int i=0; + while (i < outgoingChallenges.Size()) + { + if ((rakNetGUID!=UNASSIGNED_RAKNET_GUID && outgoingChallenges[i].remoteSystem.rakNetGuid==rakNetGUID) || + (systemAddress!=UNASSIGNED_SYSTEM_ADDRESS && outgoingChallenges[i].remoteSystem.systemAddress==systemAddress)) + { + outgoingChallenges.RemoveAtIndex(i); + } + else + { + i++; + } + } + + if (rakNetGUID!=UNASSIGNED_RAKNET_GUID) + nonceGenerator.ClearByAddress(rakNetGUID); + else + nonceGenerator.ClearByAddress(systemAddress); +} +void TwoWayAuthentication::Clear(void) +{ + outgoingChallenges.Clear(_FILE_AND_LINE_); + passwords.Clear(_FILE_AND_LINE_); + nonceGenerator.Clear(); +} +void TwoWayAuthentication::PushToUser(MessageID messageId, RakNet::RakString password, RakNet::AddressOrGUID remoteSystem) +{ + RakNet::BitStream output; + output.Write(messageId); + if (password.IsEmpty()==false) + output.Write(password); + Packet *p = AllocatePacketUnified(output.GetNumberOfBytesUsed()); + p->systemAddress=remoteSystem.systemAddress; + p->systemAddress.systemIndex=(SystemIndex)-1; + p->guid=remoteSystem.rakNetGuid; + p->wasGeneratedLocally=true; + memcpy(p->data, output.GetData(), output.GetNumberOfBytesUsed()); + rakPeerInterface->PushBackPacket(p, true); +} +void TwoWayAuthentication::OnNonceRequest(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + unsigned short requestId; + nonceGenerator.GetNonce(nonce,&requestId,packet); + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_NEGOTIATION); + bsOut.Write((MessageID)ID_NONCE_REPLY); + bsOut.Write(requestId); + bsOut.WriteAlignedBytes((const unsigned char*) nonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); +} +void TwoWayAuthentication::OnNonceReply(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + char thierNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + unsigned short requestId; + bsIn.Read(requestId); + bsIn.ReadAlignedBytes((unsigned char *) thierNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + + // Lookup one of the negotiations for this guid/system address + AddressOrGUID aog(packet); + unsigned int i; + for (i=0; i < outgoingChallenges.Size(); i++) + { + if (outgoingChallenges[i].remoteSystem==aog && outgoingChallenges[i].sentHash==false) + { + outgoingChallenges[i].sentHash=true; + + // Get the password for this identifier + DataStructures::HashIndex skhi = passwords.GetIndexOf(outgoingChallenges[i].identifier.C_String()); + if (skhi.IsInvalid()==false) + { + RakNet::RakString password = passwords.ItemAtIndex(skhi); + + // Hash their nonce with password and reply + char hashedNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + Hash(thierNonce, password, hashedNonceAndPw); + + // Send + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_NEGOTIATION); + bsOut.Write((MessageID)ID_HASHED_NONCE_AND_PASSWORD); + bsOut.Write(requestId); + bsOut.Write(outgoingChallenges[i].identifier); // Identifier helps the other system lookup the password quickly. + bsOut.WriteAlignedBytes((const unsigned char*) hashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); + } + + return; + } + } +} +PluginReceiveResult TwoWayAuthentication::OnHashedNonceAndPassword(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*2); + + char remoteHashedNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + unsigned short requestId; + bsIn.Read(requestId); + RakNet::RakString passwordIdentifier; + bsIn.Read(passwordIdentifier); + bsIn.ReadAlignedBytes((unsigned char *) remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + + // Look up used nonce from requestId + char usedNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + if (nonceGenerator.GetNonceById(usedNonce, requestId, packet, true)==false) + return RR_STOP_PROCESSING_AND_DEALLOCATE; + + DataStructures::HashIndex skhi = passwords.GetIndexOf(passwordIdentifier.C_String()); + if (skhi.IsInvalid()==false) + { + char hashedThisNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + Hash(usedNonce, passwords.ItemAtIndex(skhi), hashedThisNonceAndPw); + if (memcmp(hashedThisNonceAndPw, remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH)==0) + { + // Pass + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_SUCCESS); + bsOut.WriteAlignedBytes((const unsigned char*) usedNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + bsOut.WriteAlignedBytes((const unsigned char*) remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + bsOut.Write(passwordIdentifier); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); + + // Incoming success, modify packet header to tell user + PushToUser(ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_SUCCESS, passwordIdentifier, packet); + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + // Incoming failure, modify arrived packet header to tell user + packet->data[0]=(MessageID) ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILURE; + + RakNet::BitStream bsOut; + bsOut.Write((MessageID)ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILURE); + bsOut.WriteAlignedBytes((const unsigned char*) usedNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + bsOut.WriteAlignedBytes((const unsigned char*) remoteHashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + bsOut.Write(passwordIdentifier); + SendUnified(&bsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,packet,false); + + return RR_CONTINUE_PROCESSING; +} +void TwoWayAuthentication::OnPasswordResult(Packet *packet) +{ + RakNet::BitStream bsIn(packet->data, packet->length, false); + bsIn.IgnoreBytes(sizeof(MessageID)*1); + char usedNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + bsIn.ReadAlignedBytes((unsigned char *)usedNonce,TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + char hashedNonceAndPw[HASHED_NONCE_AND_PW_LENGTH]; + bsIn.ReadAlignedBytes((unsigned char *)hashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH); + RakNet::RakString passwordIdentifier; + bsIn.Read(passwordIdentifier); + + DataStructures::HashIndex skhi = passwords.GetIndexOf(passwordIdentifier.C_String()); + if (skhi.IsInvalid()==false) + { + RakNet::RakString password = passwords.ItemAtIndex(skhi); + char testHash[HASHED_NONCE_AND_PW_LENGTH]; + Hash(usedNonce, password, testHash); + if (memcmp(testHash,hashedNonceAndPw,HASHED_NONCE_AND_PW_LENGTH)==0) + { + // Lookup the outgoing challenge and remove it from the list + unsigned int i; + AddressOrGUID aog(packet); + for (i=0; i < outgoingChallenges.Size(); i++) + { + if (outgoingChallenges[i].identifier==passwordIdentifier && + outgoingChallenges[i].remoteSystem==aog && + outgoingChallenges[i].sentHash==true) + { + outgoingChallenges.RemoveAtIndex(i); + + PushToUser(packet->data[0], passwordIdentifier, packet); + return; + } + } + } + } +} +void TwoWayAuthentication::Hash(char thierNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], RakNet::RakString password, char out[HASHED_NONCE_AND_PW_LENGTH]) +{ +#if LIBCAT_SECURITY==1 + cat::Skein hash; + if (!hash.BeginKey(HASH_BITS)) return; + hash.Crunch(thierNonce, TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + hash.Crunch(password.C_String(), (int) password.GetLength()); + hash.End(); + hash.Generate(out, HASH_BYTES, STRENGTHENING_FACTOR); +#else + CSHA1 sha1; + sha1.Update((unsigned char *) thierNonce, TWO_WAY_AUTHENTICATION_NONCE_LENGTH); + sha1.Update((unsigned char *) password.C_String(), (unsigned int) password.GetLength()); + sha1.Final(); + sha1.GetHash((unsigned char *) out); +#endif +} + +#endif diff --git a/src/raknet/TwoWayAuthentication.h b/src/raknet/TwoWayAuthentication.h new file mode 100755 index 0000000..7993f8e --- /dev/null +++ b/src/raknet/TwoWayAuthentication.h @@ -0,0 +1,146 @@ +/// \file TwoWayAuthentication.h +/// \brief Implements two way authentication +/// \details Given two systems, each of whom known a common password, verify the password without transmitting it +/// This can be used to determine what permissions are should be allowed to the other system +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_TwoWayAuthentication==1 + +#ifndef __TWO_WAY_AUTHENTICATION_H +#define __TWO_WAY_AUTHENTICATION_H + +// How often to change the nonce. +#define NONCE_TIMEOUT_MS 10000 +// How often to check for ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, and the minimum timeout time. Maximum is double this value. +#define CHALLENGE_MINIMUM_TIMEOUT 3000 + +#if LIBCAT_SECURITY==1 +// From CPP FILE: +// static const int HASH_BITS = 256; +// static const int HASH_BYTES = HASH_BITS / 8; +// static const int STRENGTHENING_FACTOR = 1000; +#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH 32 +#define HASHED_NONCE_AND_PW_LENGTH 32 +#else +#include "SHA1.h" +#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH 20 +#define HASHED_NONCE_AND_PW_LENGTH SHA1_LENGTH +#endif + +#include "PluginInterface2.h" +#include "RakMemoryOverride.h" +#include "NativeTypes.h" +#include "RakString.h" +#include "DS_Hash.h" +#include "DS_Queue.h" + +typedef int64_t FCM2Guid; + +namespace RakNet +{ +/// Forward declarations +class RakPeerInterface; + +/// \brief Implements two way authentication +/// \details Given two systems, each of whom known a common password / identifier pair, verify the password without transmitting it +/// This can be used to determine what permissions are should be allowed to the other system +/// If the other system should not send any data until authentication passes, you can use the MessageFilter plugin for this. Call MessageFilter::SetAllowMessageID() including ID_TWO_WAY_AUTHENTICATION_NEGOTIATION when doing so. Also attach MessageFilter first in the list of plugins +/// \note If other systems challenges us, and fails, you will get ID_TWO_WAY_AUTHENTICATION_INCOMING_CHALLENGE_FAILED. +/// \ingroup PLUGINS_GROUP +class RAK_DLL_EXPORT TwoWayAuthentication : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(TwoWayAuthentication) + + TwoWayAuthentication(); + virtual ~TwoWayAuthentication(); + + /// \brief Adds a password to the list of passwords the system will accept + /// \details Each password, which is secret and not transmitted, is identified by \a identifier. + /// \a identifier is transmitted in plaintext with the request. It is only needed because the system supports multiple password. + /// It is used to only hash against once password on the remote system, rather than having to hash against every known password. + /// \param[in] identifier A unique identifier representing this password. This is transmitted in plaintext and should be considered insecure + /// \param[in] password The password to add + /// \return True on success, false on identifier==password, either identifier or password is blank, or identifier is already in use + bool AddPassword(RakNet::RakString identifier, RakNet::RakString password); + + /// \brief Challenge another system for the specified identifier + /// \details After calling Challenge, you will get back ID_TWO_WAY_AUTHENTICATION_SUCCESS, ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, or ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_FAILED + /// ID_TWO_WAY_AUTHENTICATION_SUCCESS will be returned if and only if the other system has called AddPassword() with the same identifier\password pair as this system. + /// \param[in] identifier A unique identifier representing this password. This is transmitted in plaintext and should be considered insecure + /// \return True on success, false on remote system not connected, or identifier not previously added with AddPassword() + bool Challenge(RakNet::RakString identifier, AddressOrGUID remoteSystem); + + /// \brief Free all memory + void Clear(void); + + /// \internal + virtual void Update(void); + /// \internal + virtual PluginReceiveResult OnReceive(Packet *packet); + /// \internal + virtual void OnRakPeerShutdown(void); + /// \internal + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + /// \internal + struct PendingChallenge + { + RakNet::RakString identifier; + AddressOrGUID remoteSystem; + RakNet::Time time; + bool sentHash; + }; + + DataStructures::Queue outgoingChallenges; + + /// \internal + struct NonceAndRemoteSystemRequest + { + char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]; + RakNet::AddressOrGUID remoteSystem; + unsigned short requestId; + RakNet::Time whenGenerated; + }; + /// \internal + struct RAK_DLL_EXPORT NonceGenerator + { + NonceGenerator(); + ~NonceGenerator(); + void GetNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short *requestId, RakNet::AddressOrGUID remoteSystem); + void GenerateNonce(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]); + bool GetNonceById(char nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], unsigned short requestId, RakNet::AddressOrGUID remoteSystem, bool popIfFound); + void Clear(void); + void ClearByAddress(RakNet::AddressOrGUID remoteSystem); + void Update(RakNet::Time curTime); + + DataStructures::List generatedNonces; + unsigned short nextRequestId; + }; + +protected: + void PushToUser(MessageID messageId, RakNet::RakString password, RakNet::AddressOrGUID remoteSystem); + // Key is identifier, data is password + DataStructures::Hash passwords; + + RakNet::Time whenLastTimeoutCheck; + + NonceGenerator nonceGenerator; + + void OnNonceRequest(Packet *packet); + void OnNonceReply(Packet *packet); + PluginReceiveResult OnHashedNonceAndPassword(Packet *packet); + void OnPasswordResult(Packet *packet); + void Hash(char thierNonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], RakNet::RakString password, char out[HASHED_NONCE_AND_PW_LENGTH]); +}; + +} // namespace RakNet + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/UDPForwarder.cpp b/src/raknet/UDPForwarder.cpp new file mode 100755 index 0000000..c043e5e --- /dev/null +++ b/src/raknet/UDPForwarder.cpp @@ -0,0 +1,816 @@ +#include "UDPForwarder.h" + +#if _RAKNET_SUPPORT_UDPForwarder==1 + +#include "GetTime.h" +#include "MTUSize.h" +#include "SocketLayer.h" +#include "WSAStartupSingleton.h" +#include "RakSleep.h" +#include "DS_OrderedList.h" +#include "LinuxStrings.h" +#include "SocketDefines.h" +#include "VitaIncludes.h" + +using namespace RakNet; +static const unsigned short DEFAULT_MAX_FORWARD_ENTRIES=64; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED +namespace RakNet +{ + RAK_THREAD_DECLARATION(UpdateUDPForwarder); +} +#endif + +int UDPForwarder::SrcAndDestForwardEntryComp( const UDPForwarder::SrcAndDest &inputKey, UDPForwarder::ForwardEntry * const &cls ) +{ + if (inputKey.source < cls->srcAndDest.source) + return -1; + + if (inputKey.source > cls->srcAndDest.source) + return 1; + + if (inputKey.dest < cls->srcAndDest.dest) + return -1; + + if (inputKey.dest > cls->srcAndDest.dest) + return 1; + + return 0; +} +/* +bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPForwarder::ForwardEntry *cls ) +{ + return inputKey.Get().source < cls->srcAndDest.source || + (inputKey.Get().source == cls->srcAndDest.source && inputKey.Get().dest < cls->srcAndDest.dest); +} +bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPForwarder::ForwardEntry *cls ) +{ + return inputKey.Get().source > cls->srcAndDest.source || + (inputKey.Get().source == cls->srcAndDest.source && inputKey.Get().dest > cls->srcAndDest.dest); +} +bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPForwarder::ForwardEntry *cls ) +{ + return inputKey.Get().source == cls->srcAndDest.source && inputKey.Get().dest == cls->srcAndDest.dest; +} +*/ + + +UDPForwarder::ForwardEntry::ForwardEntry() {socket=INVALID_SOCKET; timeLastDatagramForwarded=RakNet::GetTimeMS(); updatedSourcePort=false; updatedDestPort=false;} +UDPForwarder::ForwardEntry::~ForwardEntry() { + if (socket!=INVALID_SOCKET) + closesocket__(socket); +} + +UDPForwarder::UDPForwarder() +{ +#ifdef _WIN32 + WSAStartupSingleton::AddRef(); +#endif + + maxForwardEntries=DEFAULT_MAX_FORWARD_ENTRIES; + isRunning=false; + threadRunning=false; + + + + +} +UDPForwarder::~UDPForwarder() +{ + Shutdown(); + +#ifdef _WIN32 + WSAStartupSingleton::Deref(); +#endif +} +void UDPForwarder::Startup(void) +{ + if (isRunning==true) + return; + + isRunning=true; + threadRunning=false; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED + + + + + + int errorCode; + + + + + errorCode = RakNet::RakThread::Create(UpdateUDPForwarder, this); + + if ( errorCode != 0 ) + { + RakAssert(0); + return; + } + + while (threadRunning==false) + RakSleep(30); +#endif +} +void UDPForwarder::Shutdown(void) +{ + if (isRunning==false) + return; + + isRunning=false; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED + while (threadRunning==true) + RakSleep(30); +#endif + + unsigned int j; + for (j=0; j < forwardList.Size(); j++) + RakNet::OP_DELETE(forwardList[j],_FILE_AND_LINE_); + forwardList.Clear(false, _FILE_AND_LINE_); + + + + + + +} +void UDPForwarder::Update(void) +{ +#ifndef UDP_FORWARDER_EXECUTE_THREADED + #if RAKNET_SUPPORT_IPV6!=1 + UpdateThreaded_Old(); + #else + UpdateThreaded(); + #endif +#endif +} +void UDPForwarder::UpdateThreaded_Old(void) +{ + fd_set readFD; + //fd_set exceptionFD; + FD_ZERO(&readFD); + // FD_ZERO(&exceptionFD); + int selectResult; + + + timeval tv; + tv.tv_sec=0; + tv.tv_usec=0; + + + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + + SOCKET largestDescriptor=0; + unsigned int i; + + // Remove unused entries + i=0; + while (i < forwardList.Size()) + { + if (curTime > forwardList[i]->timeLastDatagramForwarded && // Account for timestamp wrap + curTime > forwardList[i]->timeLastDatagramForwarded+forwardList[i]->timeoutOnNoDataMS) + { + RakNet::OP_DELETE(forwardList[i],_FILE_AND_LINE_); + forwardList.RemoveAtIndex(i); + } + else + i++; + } + + if (forwardList.Size()==0) + return; + + for (i=0; i < forwardList.Size(); i++) + { +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + FD_SET(forwardList[i]->socket, &readFD); + // FD_SET(forwardList[i]->readSocket, &exceptionFD); + + if (forwardList[i]->socket > largestDescriptor) + largestDescriptor = forwardList[i]->socket; + } + + + selectResult=(int) select__((int) largestDescriptor+1, &readFD, 0, 0, &tv); + + + + + char data[ MAXIMUM_MTU_SIZE ]; + sockaddr_in sa; + socklen_t len2; + + if (selectResult > 0) + { + DataStructures::Queue entriesToRead; + ForwardEntry *forwardEntry; + + for (i=0; i < forwardList.Size(); i++) + { + forwardEntry = forwardList[i]; + // I do this because I'm updating the forwardList, and don't want to lose FD_ISSET as the list is no longer in order + if (FD_ISSET(forwardEntry->socket, &readFD)) + entriesToRead.Push(forwardEntry,_FILE_AND_LINE_); + } + + while (entriesToRead.IsEmpty()==false) + { + forwardEntry=entriesToRead.Pop(); + + const int flag=0; + int receivedDataLen, len=0; + unsigned short portnum=0; + len2 = sizeof( sa ); + sa.sin_family = AF_INET; + receivedDataLen = recvfrom__( forwardEntry->socket, data, MAXIMUM_MTU_SIZE, flag, ( sockaddr* ) & sa, ( socklen_t* ) & len2 ); + + if (receivedDataLen<0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = WSAGetLastError(); + + if (dwIOError!=WSAECONNRESET && dwIOError!=WSAEINTR && dwIOError!=WSAETIMEDOUT) + { + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "recvfrom failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); + } +#endif + continue; + } + + portnum = ntohs( sa.sin_port ); + if (forwardEntry->srcAndDest.source.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->updatedSourcePort==false && forwardEntry->srcAndDest.dest.GetPort()!=portnum) + { + forwardEntry->updatedSourcePort=true; + + if (forwardEntry->srcAndDest.source.GetPort()!=portnum) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.dest, forwardEntry->srcAndDest.source); + bool objectExists; + index = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists) + { + forwardList.RemoveAtIndex(index); + } + forwardEntry->srcAndDest.source.SetPort(portnum); + forwardList.Insert(forwardEntry->srcAndDest,forwardEntry,true,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.source.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->srcAndDest.source.GetPort()==portnum) + { + // Forward to dest + len=0; + sockaddr_in saOut; + saOut.sin_port = forwardEntry->srcAndDest.dest.GetPortNetworkOrder(); // User port + saOut.sin_addr.s_addr = forwardEntry->srcAndDest.dest.address.addr4.sin_addr.s_addr; + saOut.sin_family = AF_INET; + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & saOut, sizeof( saOut ) ); + } + while ( len == 0 ); + + // printf("1. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + + if (forwardEntry->srcAndDest.dest.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->updatedDestPort==false && forwardEntry->srcAndDest.source.GetPort()!=portnum) + { + forwardEntry->updatedDestPort=true; + + if (forwardEntry->srcAndDest.dest.GetPort()!=portnum) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.source, forwardEntry->srcAndDest.dest); + bool objectExists; + index = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists) + { + forwardList.RemoveAtIndex(index); + } + forwardEntry->srcAndDest.dest.SetPort(portnum); + forwardList.Insert(forwardEntry->srcAndDest,forwardEntry,true,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.dest.address.addr4.sin_addr.s_addr==sa.sin_addr.s_addr && forwardEntry->srcAndDest.dest.GetPort()==portnum) + { + // Forward to source + len=0; + sockaddr_in saOut; + saOut.sin_port = forwardEntry->srcAndDest.source.GetPortNetworkOrder(); // User port + saOut.sin_addr.s_addr = forwardEntry->srcAndDest.source.address.addr4.sin_addr.s_addr; + saOut.sin_family = AF_INET; + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & saOut, sizeof( saOut ) ); + } + while ( len == 0 ); + + // printf("2. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + } + } +} +#if RAKNET_SUPPORT_IPV6==1 +void UDPForwarder::UpdateThreaded(void) +{ + fd_set readFD; + //fd_set exceptionFD; + FD_ZERO(&readFD); +// FD_ZERO(&exceptionFD); + timeval tv; + int selectResult; + tv.tv_sec=0; + tv.tv_usec=0; + + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + + SOCKET largestDescriptor=0; + unsigned int i; + + // Remove unused entries + i=0; + while (i < forwardList.Size()) + { + if (curTime > forwardList[i]->timeLastDatagramForwarded && // Account for timestamp wrap + curTime > forwardList[i]->timeLastDatagramForwarded+forwardList[i]->timeoutOnNoDataMS) + { + RakNet::OP_DELETE(forwardList[i],_FILE_AND_LINE_); + forwardList.RemoveAtIndex(i); + } + else + i++; + } + + if (forwardList.Size()==0) + return; + + for (i=0; i < forwardList.Size(); i++) + { +#ifdef _MSC_VER +#pragma warning( disable : 4127 ) // warning C4127: conditional expression is constant +#endif + FD_SET(forwardList[i]->socket, &readFD); +// FD_SET(forwardList[i]->readSocket, &exceptionFD); + + if (forwardList[i]->socket > largestDescriptor) + largestDescriptor = forwardList[i]->socket; + } + + selectResult=(int) select__((int) largestDescriptor+1, &readFD, 0, 0, &tv); + + char data[ MAXIMUM_MTU_SIZE ]; + sockaddr_storage their_addr; + sockaddr* sockAddrPtr; + socklen_t sockLen; + socklen_t* socketlenPtr=(socklen_t*) &sockLen; + sockaddr_in *sockAddrIn; + sockaddr_in6 *sockAddrIn6; + SystemAddress receivedAddr; + sockLen=sizeof(their_addr); + sockAddrPtr=(sockaddr*) &their_addr; + + if (selectResult > 0) + { + DataStructures::Queue entriesToRead; + ForwardEntry *forwardEntry; + + for (i=0; i < forwardList.Size(); i++) + { + forwardEntry = forwardList[i]; + // I do this because I'm updating the forwardList, and don't want to lose FD_ISSET as the list is no longer in order + if (FD_ISSET(forwardEntry->socket, &readFD)) + entriesToRead.Push(forwardEntry,_FILE_AND_LINE_); + } + + while (entriesToRead.IsEmpty()==false) + { + forwardEntry=entriesToRead.Pop(); + + const int flag=0; + int receivedDataLen, len=0; + receivedDataLen = recvfrom__( forwardEntry->socket, data, MAXIMUM_MTU_SIZE, flag, sockAddrPtr, socketlenPtr ); + + if (receivedDataLen<0) + { +#if defined(_WIN32) && defined(_DEBUG) + DWORD dwIOError = WSAGetLastError(); + + if (dwIOError!=WSAECONNRESET && dwIOError!=WSAEINTR && dwIOError!=WSAETIMEDOUT) + { + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "recvfrom failed:Error code - %d\n%s", dwIOError, messageBuffer ); + + //Free the buffer. + LocalFree( messageBuffer ); + } +#endif + continue; + } + + if (their_addr.ss_family==AF_INET) + { + sockAddrIn=(sockaddr_in *)&their_addr; + sockAddrIn6=0; + memcpy(&receivedAddr.address.addr4,sockAddrIn,sizeof(sockaddr_in)); + // receivedAddr.address.addr4.sin_port=ntohs( sockAddrIn->sin_port ); + } + else + { + sockAddrIn=0; + sockAddrIn6=(sockaddr_in6 *)&their_addr; + memcpy(&receivedAddr.address.addr6,sockAddrIn6,sizeof(sockaddr_in6)); + // receivedAddr.address.addr6.sin6_port=ntohs( sockAddrIn6->sin6_port ); + } + + if (forwardEntry->srcAndDest.source.EqualsExcludingPort(receivedAddr) && forwardEntry->updatedSourcePort==false && forwardEntry->srcAndDest.dest.GetPort()!=receivedAddr.GetPort()) + { + forwardEntry->updatedSourcePort=true; + + if (forwardEntry->srcAndDest.source.GetPort()!=receivedAddr.GetPort()) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.dest, forwardEntry->srcAndDest.source); + bool objectExists; + index=forwardList.GetIndexFromKey(srcAndDest, &objectExists); + forwardList.RemoveAtIndex(index); + forwardEntry->srcAndDest.source.SetPort(receivedAddr.GetPort()); + forwardList.Push(forwardEntry,forwardEntry->srcAndDest,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.source.EqualsExcludingPort(receivedAddr) && forwardEntry->srcAndDest.source.GetPort()==receivedAddr.GetPort()) + { + // Forward to dest + len=0; + + if (forwardEntry->srcAndDest.dest.address.addr4.sin_family==AF_INET) + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.dest.address.addr4, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + else + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.dest.address.addr6, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + + + // printf("1. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + + if (forwardEntry->srcAndDest.dest.EqualsExcludingPort(receivedAddr) && forwardEntry->updatedDestPort==false && forwardEntry->srcAndDest.source.GetPort()!=receivedAddr.GetPort()) + { + forwardEntry->updatedDestPort=true; + + if (forwardEntry->srcAndDest.dest.GetPort()!=receivedAddr.GetPort()) + { + unsigned int index; + SrcAndDest srcAndDest(forwardEntry->srcAndDest.source, forwardEntry->srcAndDest.dest); + index=forwardList.GetIndexOf(srcAndDest); + forwardList.RemoveAtIndex(index); + forwardEntry->srcAndDest.dest.SetPort(receivedAddr.GetPort()); + forwardList.Push(forwardEntry,forwardEntry->srcAndDest,_FILE_AND_LINE_); + } + } + + if (forwardEntry->srcAndDest.dest.EqualsExcludingPort(receivedAddr) && forwardEntry->srcAndDest.dest.GetPort()==receivedAddr.GetPort()) + { + // Forward to source + len=0; + if (forwardEntry->srcAndDest.source.address.addr4.sin_family==AF_INET) + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.source.address.addr4, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + else + { + do + { + len = sendto__( forwardEntry->socket, data, receivedDataLen, 0, ( const sockaddr* ) & forwardEntry->srcAndDest.source.address.addr6, sizeof( sockaddr_in ) ); + } + while ( len == 0 ); + } + + // printf("2. Forwarding after %i ms\n", curTime-forwardEntry->timeLastDatagramForwarded); + + forwardEntry->timeLastDatagramForwarded=curTime; + } + } + } +} +#endif // #if RAKNET_SUPPORT_IPV6!=1 +void UDPForwarder::SetMaxForwardEntries(unsigned short maxEntries) +{ + RakAssert(maxEntries>0 && maxEntries<65535/2); + maxForwardEntries=maxEntries; +} +int UDPForwarder::GetMaxForwardEntries(void) const +{ + return maxForwardEntries; +} +int UDPForwarder::GetUsedForwardEntries(void) const +{ + return (int) forwardList.Size(); +} +UDPForwarderResult UDPForwarder::AddForwardingEntry(SrcAndDest srcAndDest, RakNet::TimeMS timeoutOnNoDataMS, unsigned short *port, const char *forceHostAddress, short socketFamily) +{ + (void) socketFamily; + + unsigned int insertionIndex; + bool objectExists; + insertionIndex = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists==false) + { +#if RAKNET_SUPPORT_IPV6!=1 + int sock_opt; + sockaddr_in listenerSocketAddress; + listenerSocketAddress.sin_port = 0; + ForwardEntry *fe = RakNet::OP_NEW(_FILE_AND_LINE_); + fe->srcAndDest=srcAndDest; + fe->timeoutOnNoDataMS=timeoutOnNoDataMS; + fe->socket = socket__( AF_INET, SOCK_DGRAM, 0 ); + + //printf("Made socket %i\n", fe->readSocket); + + // This doubles the max throughput rate + sock_opt=1024*256; + setsockopt__(fe->socket, SOL_SOCKET, SO_RCVBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + // Immediate hard close. Don't linger the readSocket, or recreating the readSocket quickly on Vista fails. + sock_opt=0; + setsockopt__(fe->socket, SOL_SOCKET, SO_LINGER, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + listenerSocketAddress.sin_family = AF_INET; + + if (forceHostAddress && forceHostAddress[0]) + { + + + + listenerSocketAddress.sin_addr.s_addr = inet_addr__( forceHostAddress ); + + } + else + { + listenerSocketAddress.sin_addr.s_addr = INADDR_ANY; + } + + int ret = bind__( fe->socket, ( struct sockaddr * ) & listenerSocketAddress, sizeof( listenerSocketAddress ) ); + if (ret==-1) + { + RakNet::OP_DELETE(fe,_FILE_AND_LINE_); + return UDPFORWARDER_BIND_FAILED; + } +#else + ForwardEntry *fe = RakNet::OP_NEW(_FILE_AND_LINE_); + fe->srcAndDest=srcAndDest; + fe->timeoutOnNoDataMS=timeoutOnNoDataMS; + fe->socket=INVALID_SOCKET; + + struct addrinfo hints; + memset(&hints, 0, sizeof (addrinfo)); // make sure the struct is empty + hints.ai_family = socketFamily; + hints.ai_socktype = SOCK_DGRAM; // UDP sockets + hints.ai_flags = AI_PASSIVE; // fill in my IP for me + struct addrinfo *servinfo=0, *aip; // will point to the results + + + RakAssert(forceHostAddress==0 || forceHostAddress[0]!=0); + if (_stricmp(forceHostAddress,"UNASSIGNED_SYSTEM_ADDRESS")==0) + { + getaddrinfo(0, "0", &hints, &servinfo); + } + else + { + getaddrinfo(forceHostAddress, "0", &hints, &servinfo); + } + + for (aip = servinfo; aip != NULL; aip = aip->ai_next) + { + // Open socket. The address type depends on what + // getaddrinfo() gave us. + fe->socket = socket__(aip->ai_family, aip->ai_socktype, aip->ai_protocol); + if (fe->socket != INVALID_SOCKET) + { + int ret = bind__( fe->socket, aip->ai_addr, (int) aip->ai_addrlen ); + if (ret>=0) + { + break; + } + else + { + closesocket__(fe->socket); + fe->socket=INVALID_SOCKET; + } + } + } + + if (fe->socket==INVALID_SOCKET) + return UDPFORWARDER_BIND_FAILED; + + //printf("Made socket %i\n", fe->readSocket); + + // This doubles the max throughput rate + int sock_opt; + sock_opt=1024*256; + setsockopt__(fe->socket, SOL_SOCKET, SO_RCVBUF, ( char * ) & sock_opt, sizeof ( sock_opt ) ); + + // Immediate hard close. Don't linger the readSocket, or recreating the readSocket quickly on Vista fails. + sock_opt=0; + setsockopt__(fe->socket, SOL_SOCKET, SO_LINGER, ( char * ) & sock_opt, sizeof ( sock_opt ) ); +#endif // #if RAKNET_SUPPORT_IPV6!=1 + +// unsigned int oldSize = forwardList.Size(); + forwardList.InsertAtIndex(fe,insertionIndex,_FILE_AND_LINE_); + // RakAssert(forwardList.GetIndexOf(fe->srcAndDest)!=(unsigned int) -1); + *port = SocketLayer::GetLocalPort ( fe->socket ); + return UDPFORWARDER_SUCCESS; + } + + return UDPFORWARDER_FORWARDING_ALREADY_EXISTS; +} +UDPForwarderResult UDPForwarder::StartForwarding(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket) +{ + // Invalid parameters? + if (timeoutOnNoDataMS == 0 || timeoutOnNoDataMS > UDP_FORWARDER_MAXIMUM_TIMEOUT || source==UNASSIGNED_SYSTEM_ADDRESS || destination==UNASSIGNED_SYSTEM_ADDRESS) + return UDPFORWARDER_INVALID_PARAMETERS; + +#ifdef UDP_FORWARDER_EXECUTE_THREADED + ThreadOperation threadOperation; + threadOperation.source=source; + threadOperation.destination=destination; + threadOperation.timeoutOnNoDataMS=timeoutOnNoDataMS; + threadOperation.forceHostAddress=forceHostAddress; + threadOperation.socketFamily=socketFamily; + threadOperation.operation=ThreadOperation::TO_START_FORWARDING; + threadOperationIncomingMutex.Lock(); + threadOperationIncomingQueue.Push(threadOperation, _FILE_AND_LINE_ ); + threadOperationIncomingMutex.Unlock(); + + while (1) + { + RakSleep(0); + threadOperationOutgoingMutex.Lock(); + if (threadOperationOutgoingQueue.Size()!=0) + { + threadOperation=threadOperationOutgoingQueue.Pop(); + threadOperationOutgoingMutex.Unlock(); + if (forwardingPort) + *forwardingPort=threadOperation.forwardingPort; + if (forwardingSocket) + *forwardingSocket=threadOperation.forwardingSocket; + return threadOperation.result; + } + threadOperationOutgoingMutex.Unlock(); + + } +#else + return StartForwardingThreaded(source, destination, timeoutOnNoDataMS, forceHostAddress, socketFamily, srcToDestPort, destToSourcePort, srcToDestSocket, destToSourceSocket); +#endif + +} +UDPForwarderResult UDPForwarder::StartForwardingThreaded(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket) +{ + SrcAndDest srcAndDest(source, destination); + + UDPForwarderResult result = AddForwardingEntry(srcAndDest, timeoutOnNoDataMS, forwardingPort, forceHostAddress, socketFamily); + + if (result!=UDPFORWARDER_SUCCESS) + return result; + + if (*forwardingSocket) + { + unsigned int idx; + bool objectExists; + idx = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + RakAssert(objectExists); + *forwardingSocket=forwardList[idx]->socket; + } + + return UDPFORWARDER_SUCCESS; +} +void UDPForwarder::StopForwarding(SystemAddress source, SystemAddress destination) +{ +#ifdef UDP_FORWARDER_EXECUTE_THREADED + ThreadOperation threadOperation; + threadOperation.source=source; + threadOperation.destination=destination; + threadOperation.operation=ThreadOperation::TO_STOP_FORWARDING; + threadOperationIncomingMutex.Lock(); + threadOperationIncomingQueue.Push(threadOperation, _FILE_AND_LINE_ ); + threadOperationIncomingMutex.Unlock(); +#else + StopForwardingThreaded(source, destination); +#endif +} +void UDPForwarder::StopForwardingThreaded(SystemAddress source, SystemAddress destination) +{ + SrcAndDest srcAndDest(destination,source); + + bool objectExists; + unsigned int idx = forwardList.GetIndexFromKey(srcAndDest, &objectExists); + if (objectExists) + { + RakNet::OP_DELETE(forwardList[idx],_FILE_AND_LINE_); + forwardList.RemoveAtIndex(idx); + } +} +namespace RakNet { +#ifdef UDP_FORWARDER_EXECUTE_THREADED +RAK_THREAD_DECLARATION(UpdateUDPForwarder) +{ + + + + UDPForwarder * udpForwarder = ( UDPForwarder * ) arguments; + + + udpForwarder->threadRunning=true; + UDPForwarder::ThreadOperation threadOperation; + while (udpForwarder->isRunning) + { + udpForwarder->threadOperationIncomingMutex.Lock(); + while (udpForwarder->threadOperationIncomingQueue.Size()) + { + threadOperation=udpForwarder->threadOperationIncomingQueue.Pop(); + udpForwarder->threadOperationIncomingMutex.Unlock(); + if (threadOperation.operation==UDPForwarder::ThreadOperation::TO_START_FORWARDING) + { + threadOperation.result=udpForwarder->StartForwardingThreaded(threadOperation.source, threadOperation.destination, threadOperation.timeoutOnNoDataMS, + threadOperation.forceHostAddress, threadOperation.socketFamily, &threadOperation.forwardingPort, &threadOperation.forwardingSocket); + udpForwarder->threadOperationOutgoingMutex.Lock(); + udpForwarder->threadOperationOutgoingQueue.Push(threadOperation, _FILE_AND_LINE_ ); + udpForwarder->threadOperationOutgoingMutex.Unlock(); + } + else + { + udpForwarder->StopForwardingThreaded(threadOperation.source, threadOperation.destination); + } + + + udpForwarder->threadOperationIncomingMutex.Lock(); + } + udpForwarder->threadOperationIncomingMutex.Unlock(); + +#if RAKNET_SUPPORT_IPV6!=1 + udpForwarder->UpdateThreaded_Old(); +#else + udpForwarder->UpdateThreaded(); +#endif + + + // 12/1/2010 Do not change from 0 + // See http://www.jenkinssoftware.com/forum/index.php?topic=4033.0;topicseen + // Avoid 100% reported CPU usage + RakSleep(0); + } + udpForwarder->threadRunning=false; + + + + + return 0; + + +} +} // namespace RakNet +#endif + +#endif // #if _RAKNET_SUPPORT_FileOperations==1 diff --git a/src/raknet/UDPForwarder.h b/src/raknet/UDPForwarder.h new file mode 100755 index 0000000..372352e --- /dev/null +++ b/src/raknet/UDPForwarder.h @@ -0,0 +1,177 @@ +/// \file +/// \brief Forwards UDP datagrams. Independent of RakNet's protocol. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. + + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __UDP_FORWARDER_H +#define __UDP_FORWARDER_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "SocketIncludes.h" +#include "UDPProxyCommon.h" +#include "SimpleMutex.h" +#include "RakString.h" +#include "RakThread.h" +#include "DS_Queue.h" +#include "DS_OrderedList.h" + +#define UDP_FORWARDER_EXECUTE_THREADED + +namespace RakNet +{ + +enum UDPForwarderResult +{ + UDPFORWARDER_FORWARDING_ALREADY_EXISTS, + UDPFORWARDER_NO_SOCKETS, + UDPFORWARDER_BIND_FAILED, + UDPFORWARDER_INVALID_PARAMETERS, + UDPFORWARDER_SUCCESS, + +}; + +/// \brief Forwards UDP datagrams. Independent of RakNet's protocol. +/// \ingroup NAT_PUNCHTHROUGH_GROUP +class RAK_DLL_EXPORT UDPForwarder +{ +public: + UDPForwarder(); + ~UDPForwarder(); + + /// Starts the system. + /// Required to call before StartForwarding + void Startup(void); + + /// Stops the system, and frees all sockets + void Shutdown(void); + + /// Call on a regular basis, unless using UDP_FORWARDER_EXECUTE_THREADED. + /// Will call select__() on all sockets and forward messages. + void Update(void); + + /// Sets the maximum number of forwarding entries allowed + /// Set according to your available bandwidth and the estimated average bandwidth per forwarded address. + /// A single connection requires 2 entries, as connections are bi-directional. + /// \param[in] maxEntries The maximum number of simultaneous forwarding entries. Defaults to 64 (32 connections) + void SetMaxForwardEntries(unsigned short maxEntries); + + /// \return The \a maxEntries parameter passed to SetMaxForwardEntries(), or the default if it was never called + int GetMaxForwardEntries(void) const; + + /// \note Each call to StartForwarding uses up two forwarding entries, since communications are bidirectional + /// \return How many entries have been used + int GetUsedForwardEntries(void) const; + + /// Forwards datagrams from source to destination, and vice-versa + /// Does nothing if this forward entry already exists via a previous call + /// \pre Call Startup() + /// \note RakNet's protocol will ensure a message is sent at least every 15 seconds, so if routing RakNet messages, it is a reasonable value for timeoutOnNoDataMS, plus an some extra seconds for latency + /// \param[in] source The source IP and port + /// \param[in] destination Where to forward to (and vice-versa) + /// \param[in] timeoutOnNoDataMS If no messages are forwarded for this many MS, then automatically remove this entry. Currently hardcoded to UDP_FORWARDER_MAXIMUM_TIMEOUT (else the call fails) + /// \param[in] forceHostAddress Force binding on a particular address. 0 to use any. + /// \param[in] socketFamily IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + short socketFamily; + /// \param[out] forwardingPort New opened port for forwarding + /// \param[out] forwardingSocket New opened socket for forwarding + /// \return UDPForwarderResult + UDPForwarderResult StartForwarding(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket); + + /// No longer forward datagrams from source to destination + /// \param[in] source The source IP and port + /// \param[in] destination Where to forward to + void StopForwarding(SystemAddress source, SystemAddress destination); + + struct SrcAndDest + { + SrcAndDest() {} + SrcAndDest(SystemAddress sa1, SystemAddress sa2) + { + if (sa1 < sa2) + { + source=sa1; + dest=sa2; + } + else + { + source=sa2; + dest=sa1; + } + } + SystemAddress source; + SystemAddress dest; + }; + + struct ForwardEntry + { + ForwardEntry(); + ~ForwardEntry(); + SrcAndDest srcAndDest; + RakNet::TimeMS timeLastDatagramForwarded; + SOCKET socket; + RakNet::TimeMS timeoutOnNoDataMS; + bool updatedSourcePort, updatedDestPort; + short socketFamily; + }; + + +protected: + + static int SrcAndDestForwardEntryComp( const SrcAndDest &inputKey, ForwardEntry * const &cls ); + + + friend RAK_THREAD_DECLARATION(UpdateUDPForwarder); + struct ThreadOperation + { + enum { + TO_NONE, + TO_START_FORWARDING, + TO_STOP_FORWARDING, + } operation; + + SystemAddress source; + SystemAddress destination; + RakNet::TimeMS timeoutOnNoDataMS; + RakNet::RakString forceHostAddress; + unsigned short forwardingPort; + SOCKET forwardingSocket; + UDPForwarderResult result; + unsigned short socketFamily; + }; + SimpleMutex threadOperationIncomingMutex,threadOperationOutgoingMutex; + DataStructures::Queue threadOperationIncomingQueue; + DataStructures::Queue threadOperationOutgoingQueue; + +#if RAKNET_SUPPORT_IPV6==1 + void UpdateThreaded(void); +#endif + void UpdateThreaded_Old(void); + UDPForwarderResult StartForwardingThreaded(SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, + unsigned short *forwardingPort, SOCKET *forwardingSocket); + void StopForwardingThreaded(SystemAddress source, SystemAddress destination); + + DataStructures::OrderedList forwardList; + unsigned short maxForwardEntries; + + UDPForwarderResult AddForwardingEntry(SrcAndDest srcAndDest, RakNet::TimeMS timeoutOnNoDataMS, unsigned short *port, const char *forceHostAddress, short socketFamily); + + + bool isRunning, threadRunning; + + + +}; + +} // End namespace + +#endif + +#endif // #if _RAKNET_SUPPORT_UDPForwarder==1 diff --git a/src/raknet/UDPProxyClient.cpp b/src/raknet/UDPProxyClient.cpp new file mode 100755 index 0000000..3ce9a2d --- /dev/null +++ b/src/raknet/UDPProxyClient.cpp @@ -0,0 +1,301 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyClient==1 + +#include "UDPProxyClient.h" +#include "BitStream.h" +#include "UDPProxyCommon.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "GetTime.h" + +using namespace RakNet; +static const int DEFAULT_UNRESPONSIVE_PING_TIME=1000; + +// bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPProxyClient::ServerWithPing &cls ) {return inputKey.Get().serverAddress < cls.serverAddress;} +// bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPProxyClient::ServerWithPing &cls ) {return inputKey.Get().serverAddress > cls.serverAddress;} +// bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPProxyClient::ServerWithPing &cls ) {return inputKey.Get().serverAddress == cls.serverAddress;} + +STATIC_FACTORY_DEFINITIONS(UDPProxyClient,UDPProxyClient); + +UDPProxyClient::UDPProxyClient() +{ + resultHandler=0; +} +UDPProxyClient::~UDPProxyClient() +{ + Clear(); +} +void UDPProxyClient::SetResultHandler(UDPProxyClientResultHandler *rh) +{ + resultHandler=rh; +} +bool UDPProxyClient::RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, RakNetGUID targetGuid, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream) +{ + // Return false if not connected + ConnectionState cs = rakPeerInterface->GetConnectionState(proxyCoordinator); + if (cs!=IS_CONNECTED) + return false; + + // Pretty much a bug not to set the result handler, as otherwise you won't know if the operation succeeed or not + RakAssert(resultHandler!=0); + if (resultHandler==0) + return false; + + BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(false); + outgoingBs.Write(targetGuid); + outgoingBs.Write(timeoutOnNoDataMS); + if (serverSelectionBitstream && serverSelectionBitstream->GetNumberOfBitsUsed()>0) + { + outgoingBs.Write(true); + outgoingBs.Write(serverSelectionBitstream); + } + else + { + outgoingBs.Write(false); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, proxyCoordinator, false); + + return true; +} +bool UDPProxyClient::RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddressAsSeenFromCoordinator, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream) +{ + // Return false if not connected + ConnectionState cs = rakPeerInterface->GetConnectionState(proxyCoordinator); + if (cs!=IS_CONNECTED) + return false; + + // Pretty much a bug not to set the result handler, as otherwise you won't know if the operation succeeed or not + RakAssert(resultHandler!=0); + if (resultHandler==0) + return false; + + BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(true); + outgoingBs.Write(targetAddressAsSeenFromCoordinator); + outgoingBs.Write(timeoutOnNoDataMS); + if (serverSelectionBitstream && serverSelectionBitstream->GetNumberOfBitsUsed()>0) + { + outgoingBs.Write(true); + outgoingBs.Write(serverSelectionBitstream); + } + else + { + outgoingBs.Write(false); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, proxyCoordinator, false); + + return true; +} +void UDPProxyClient::Update(void) +{ + unsigned int idx1=0; + while (idx1 < pingServerGroups.Size()) + { + PingServerGroup *psg = pingServerGroups[idx1]; + + if (psg->serversToPing.Size() > 0 && + RakNet::GetTimeMS() > psg->startPingTime+DEFAULT_UNRESPONSIVE_PING_TIME) + { + // If they didn't reply within DEFAULT_UNRESPONSIVE_PING_TIME, just give up on them + psg->SendPingedServersToCoordinator(rakPeerInterface); + + RakNet::OP_DELETE(psg,_FILE_AND_LINE_); + pingServerGroups.RemoveAtIndex(idx1); + } + else + idx1++; + } + +} +PluginReceiveResult UDPProxyClient::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_UNCONNECTED_PONG) + { + unsigned int idx1, idx2; + PingServerGroup *psg; + for (idx1=0; idx1 < pingServerGroups.Size(); idx1++) + { + psg = pingServerGroups[idx1]; + for (idx2=0; idx2 < psg->serversToPing.Size(); idx2++) + { + if (psg->serversToPing[idx2].serverAddress==packet->systemAddress) + { + RakNet::BitStream bsIn(packet->data,packet->length,false); + bsIn.IgnoreBytes(sizeof(MessageID)); + RakNet::TimeMS sentTime; + bsIn.Read(sentTime); + RakNet::TimeMS curTime=RakNet::GetTimeMS(); + int ping; + if (curTime>sentTime) + ping=(int) (curTime-sentTime); + else + ping=0; + psg->serversToPing[idx2].ping=(unsigned short) ping; + + // If all servers to ping are now pinged, reply to coordinator + if (psg->AreAllServersPinged()) + { + psg->SendPingedServersToCoordinator(rakPeerInterface); + RakNet::OP_DELETE(psg,_FILE_AND_LINE_); + pingServerGroups.RemoveAtIndex(idx1); + } + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + + } + } + else if (packet->data[0]==ID_UDP_PROXY_GENERAL && packet->length>1) + { + switch (packet->data[1]) + { + case ID_UDP_PROXY_PING_SERVERS_FROM_COORDINATOR_TO_CLIENT: + { + OnPingServers(packet); + } + break; + case ID_UDP_PROXY_FORWARDING_SUCCEEDED: + case ID_UDP_PROXY_ALL_SERVERS_BUSY: + case ID_UDP_PROXY_IN_PROGRESS: + case ID_UDP_PROXY_NO_SERVERS_ONLINE: + case ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR: + case ID_UDP_PROXY_FORWARDING_NOTIFICATION: + { + RakNetGUID targetGuid; + SystemAddress senderAddress, targetAddress; + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(sizeof(MessageID)*2); + incomingBs.Read(senderAddress); + incomingBs.Read(targetAddress); + incomingBs.Read(targetGuid); + + switch (packet->data[1]) + { + case ID_UDP_PROXY_FORWARDING_NOTIFICATION: + case ID_UDP_PROXY_FORWARDING_SUCCEEDED: + { + unsigned short forwardingPort; + RakNet::RakString serverIP; + incomingBs.Read(serverIP); + incomingBs.Read(forwardingPort); + if (packet->data[1]==ID_UDP_PROXY_FORWARDING_SUCCEEDED) + { + if (resultHandler) + resultHandler->OnForwardingSuccess(serverIP.C_String(), forwardingPort, packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + } + else + { + // Send a datagram to the proxy, so if we are behind a router, that router adds an entry to the routing table. + // Otherwise the router would block the incoming datagrams from source + // It doesn't matter if the message actually arrives as long as it goes through the router + rakPeerInterface->Ping(serverIP.C_String(), forwardingPort, false); + + if (resultHandler) + resultHandler->OnForwardingNotification(serverIP.C_String(), forwardingPort, packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + } + } + break; + case ID_UDP_PROXY_ALL_SERVERS_BUSY: + if (resultHandler) + resultHandler->OnAllServersBusy(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + case ID_UDP_PROXY_IN_PROGRESS: + if (resultHandler) + resultHandler->OnForwardingInProgress(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + case ID_UDP_PROXY_NO_SERVERS_ONLINE: + if (resultHandler) + resultHandler->OnNoServersOnline(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + case ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR: + { + if (resultHandler) + resultHandler->OnRecipientNotConnected(packet->systemAddress, senderAddress, targetAddress, targetGuid, this); + break; + } + } + + } + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + return RR_CONTINUE_PROCESSING; +} +void UDPProxyClient::OnRakPeerShutdown(void) +{ + Clear(); +} +void UDPProxyClient::OnPingServers(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + + PingServerGroup *psg = RakNet::OP_NEW(_FILE_AND_LINE_); + + ServerWithPing swp; + incomingBs.Read(psg->sata.senderClientAddress); + incomingBs.Read(psg->sata.targetClientAddress); + psg->startPingTime=RakNet::GetTimeMS(); + psg->coordinatorAddressForPings=packet->systemAddress; + unsigned short serverListSize; + incomingBs.Read(serverListSize); + SystemAddress serverAddress; + unsigned short serverListIndex; + char ipStr[64]; + for (serverListIndex=0; serverListIndexserversToPing.Push(swp, _FILE_AND_LINE_ ); + swp.serverAddress.ToString(false,ipStr); + rakPeerInterface->Ping(ipStr,swp.serverAddress.GetPort(),false,0); + } + pingServerGroups.Push(psg,_FILE_AND_LINE_); +} + +bool UDPProxyClient::PingServerGroup::AreAllServersPinged(void) const +{ + unsigned int serversToPingIndex; + for (serversToPingIndex=0; serversToPingIndex < serversToPing.Size(); serversToPingIndex++) + { + if (serversToPing[serversToPingIndex].ping==DEFAULT_UNRESPONSIVE_PING_TIME) + return false; + } + return true; +} + +void UDPProxyClient::PingServerGroup::SendPingedServersToCoordinator(RakPeerInterface *rakPeerInterface) +{ + BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_PING_SERVERS_REPLY_FROM_CLIENT_TO_COORDINATOR); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + unsigned short serversToPingSize = (unsigned short) serversToPing.Size(); + outgoingBs.Write(serversToPingSize); + unsigned int serversToPingIndex; + for (serversToPingIndex=0; serversToPingIndex < serversToPingSize; serversToPingIndex++) + { + outgoingBs.Write(serversToPing[serversToPingIndex].serverAddress); + outgoingBs.Write(serversToPing[serversToPingIndex].ping); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, coordinatorAddressForPings, false); +} +void UDPProxyClient::Clear(void) +{ + for (unsigned int i=0; i < pingServerGroups.Size(); i++) + RakNet::OP_DELETE(pingServerGroups[i],_FILE_AND_LINE_); + pingServerGroups.Clear(false, _FILE_AND_LINE_); +} + + +#endif // _RAKNET_SUPPORT_* + diff --git a/src/raknet/UDPProxyClient.h b/src/raknet/UDPProxyClient.h new file mode 100755 index 0000000..fe49847 --- /dev/null +++ b/src/raknet/UDPProxyClient.h @@ -0,0 +1,178 @@ +/// \file +/// \brief A RakNet plugin performing networking to communicate with UDPProxyCoordinator. Ultimately used to tell UDPProxyServer to forward UDP packets. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyClient==1 + +#ifndef __UDP_PROXY_CLIENT_H +#define __UDP_PROXY_CLIENT_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "DS_List.h" + +/// \defgroup UDP_PROXY_GROUP UDPProxy +/// \brief Forwards UDP datagrams from one system to another. Protocol independent +/// \details Used when NatPunchthroughClient fails +/// \ingroup PLUGINS_GROUP + +namespace RakNet +{ +class UDPProxyClient; + +/// Callback to handle results of calling UDPProxyClient::RequestForwarding() +/// \ingroup UDP_PROXY_GROUP +struct UDPProxyClientResultHandler +{ + UDPProxyClientResultHandler() {} + virtual ~UDPProxyClientResultHandler() {} + + /// Called when our forwarding request was completed. We can now connect to \a targetAddress by using \a proxyAddress instead + /// \param[out] proxyIPAddress IP Address of the proxy server, which will forward messages to targetAddress + /// \param[out] proxyPort Remote port to use on the proxy server, which will forward messages to targetAddress + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnForwardingSuccess(const char *proxyIPAddress, unsigned short proxyPort, + SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when another system has setup forwarding, with our system as the target address. + /// Plugin automatically sends a datagram to proxyIPAddress before this callback, to open our router if necessary. + /// \param[out] proxyIPAddress IP Address of the proxy server, which will forward messages to targetAddress + /// \param[out] proxyPort Remote port to use on the proxy server, which will forward messages to targetAddress + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. This is originating source IP address of the remote system that will be sending to us. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding. This is our external IP address. + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnForwardingNotification(const char *proxyIPAddress, unsigned short proxyPort, + SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request failed, because no UDPProxyServers are connected to UDPProxyCoordinator + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnNoServersOnline(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request failed, because no UDPProxyServers are connected to UDPProxyCoordinator + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnRecipientNotConnected(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request failed, because all UDPProxyServers that are connected to UDPProxyCoordinator are at their capacity + /// Either add more servers, or increase capacity via UDPForwarder::SetMaxForwardEntries() + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnAllServersBusy(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; + + /// Called when our forwarding request is already in progress on the \a proxyCoordinator. + /// This can be ignored, but indicates an unneeded second request + /// \param[out] proxyCoordinator \a proxyCoordinator parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] sourceAddress \a sourceAddress parameter passed to UDPProxyClient::RequestForwarding. If it was UNASSIGNED_SYSTEM_ADDRESS, it is now our external IP address. + /// \param[out] targetAddress \a targetAddress parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] targetGuid \a targetGuid parameter originally passed to UDPProxyClient::RequestForwarding + /// \param[out] proxyClient The plugin that is calling this callback + virtual void OnForwardingInProgress(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddress, RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin)=0; +}; + + +/// \brief Communicates with UDPProxyCoordinator, in order to find a UDPProxyServer to forward our datagrams. +/// \details When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa.
      +/// The class to forward messages is UDPForwarder, and it is triggered over the network via the UDPProxyServer plugin.
      +/// The UDPProxyClient connects to UDPProxyCoordinator to get a list of servers running UDPProxyServer, and the coordinator will relay our forwarding request +/// \sa NatPunchthroughServer +/// \sa NatPunchthroughClient +/// \ingroup UDP_PROXY_GROUP +class RAK_DLL_EXPORT UDPProxyClient : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(UDPProxyClient) + + UDPProxyClient(); + ~UDPProxyClient(); + + /// Receives the results of calling RequestForwarding() + /// Set before calling RequestForwarding or you won't know what happened + /// \param[in] resultHandler + void SetResultHandler(UDPProxyClientResultHandler *rh); + + /// Sends a request to proxyCoordinator to find a server and have that server setup UDPForwarder::StartForwarding() on our address to \a targetAddressAsSeenFromCoordinator + /// The forwarded datagrams can be from any UDP source, not just RakNet + /// \pre Must be connected to \a proxyCoordinator + /// \pre Systems running UDPProxyServer must be connected to \a proxyCoordinator and logged in via UDPProxyCoordinator::LoginServer() or UDPProxyServer::LoginToCoordinator() + /// \note May still fail, if all proxy servers have no open connections. + /// \note RakNet's protocol will ensure a message is sent at least every 5 seconds, so if routing RakNet messages, it is a reasonable value for timeoutOnNoDataMS, plus an extra few seconds for latency. + /// \param[in] proxyCoordinator System we are connected to that is running the UDPProxyCoordinator plugin + /// \param[in] sourceAddress External IP address of the system we want to forward messages from. This does not have to be our own system. To specify our own system, you can pass UNASSIGNED_SYSTEM_ADDRESS which the coordinator will treat as our external IP address. + /// \param[in] targetAddressAsSeenFromCoordinator External IP address of the system we want to forward messages to. If this system is connected to UDPProxyCoordinator at this address using RakNet, that system will ping the server and thus open the router for incoming communication. In any other case, you are responsible for doing your own network communication to have that system ping the server. See also targetGuid in the other version of RequestForwarding(), to avoid the need to know the IP address to the coordinator of the destination. + /// \param[in] timeoutOnNoData If no data is sent by the forwarded systems, how long before removing the forward entry from UDPForwarder? UDP_FORWARDER_MAXIMUM_TIMEOUT is the maximum value. Recommended high enough to not drop valid connections, but low enough to not waste forwarding slots on the proxy server. + /// \param[in] serverSelectionBitstream If you want to send data to UDPProxyCoordinator::GetBestServer(), write it here + /// \return true if the request was sent, false if we are not connected to proxyCoordinator + bool RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, SystemAddress targetAddressAsSeenFromCoordinator, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream=0); + + /// Same as above, but specify the target with a GUID, in case you don't know what its address is to the coordinator + /// If requesting forwarding to a RakNet enabled system, then it is easier to use targetGuid instead of targetAddressAsSeenFromCoordinator + bool RequestForwarding(SystemAddress proxyCoordinator, SystemAddress sourceAddress, RakNetGUID targetGuid, RakNet::TimeMS timeoutOnNoDataMS, RakNet::BitStream *serverSelectionBitstream=0); + + /// \internal + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnRakPeerShutdown(void); + + struct ServerWithPing + { + unsigned short ping; + SystemAddress serverAddress; + }; + struct SenderAndTargetAddress + { + SystemAddress senderClientAddress; + SystemAddress targetClientAddress; + }; + struct PingServerGroup + { + SenderAndTargetAddress sata; + RakNet::TimeMS startPingTime; + SystemAddress coordinatorAddressForPings; + //DataStructures::Multilist serversToPing; + DataStructures::List serversToPing; + bool AreAllServersPinged(void) const; + void SendPingedServersToCoordinator(RakPeerInterface *rakPeerInterface); + }; + //DataStructures::Multilist pingServerGroups; + DataStructures::List pingServerGroups; +protected: + + void OnPingServers(Packet *packet); + void Clear(void); + UDPProxyClientResultHandler *resultHandler; + +}; + +} // End namespace + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/UDPProxyCommon.h b/src/raknet/UDPProxyCommon.h new file mode 100755 index 0000000..29699f3 --- /dev/null +++ b/src/raknet/UDPProxyCommon.h @@ -0,0 +1,57 @@ +#ifndef __UDP_PROXY_COMMON_H +#define __UDP_PROXY_COMMON_H + +// System flow: +/* +UDPProxyClient: End user +UDPProxyServer: open server, to route messages from end users that can't connect to each other using UDPForwarder class. +UDPProxyCoordinator: Server somewhere, connected to by RakNet, to maintain a list of UDPProxyServer + +UDPProxyServer + On startup, log into UDPProxyCoordinator and register self + +UDPProxyClient + Wish to open route to X + Send message to UDPProxyCoordinator containing X, desired timeout + Wait for success or failure + +UDPProxyCoordinator: +* Get openRouteRequest + If no servers registered, return failure + Add entry to memory + chooseBestUDPProxyServer() (overridable, chooses at random by default) + Query this server to StartForwarding(). Return success or failure + If failure, choose another server from the remaining list. If none remaining, return failure. Else return success. +* Disconnect: + If disconnected system is pending client on openRouteRequest, delete that request + If disconnected system is UDPProxyServer, remove from list. For each pending client for this server, choose from remaining servers. +* Login: + Add to UDPProxyServer list, validating password if set +*/ + +// Stored in the second byte after ID_UDP_PROXY_GENERAL +// Otherwise MessageIdentifiers.h is too cluttered and will hit the limit on enumerations in a single byte +enum UDPProxyMessages +{ + ID_UDP_PROXY_FORWARDING_SUCCEEDED, + ID_UDP_PROXY_FORWARDING_NOTIFICATION, + ID_UDP_PROXY_NO_SERVERS_ONLINE, + ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR, + ID_UDP_PROXY_ALL_SERVERS_BUSY, + ID_UDP_PROXY_IN_PROGRESS, + ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR, + ID_UDP_PROXY_PING_SERVERS_FROM_COORDINATOR_TO_CLIENT, + ID_UDP_PROXY_PING_SERVERS_REPLY_FROM_CLIENT_TO_COORDINATOR, + ID_UDP_PROXY_FORWARDING_REQUEST_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_FORWARDING_REPLY_FROM_SERVER_TO_COORDINATOR, + ID_UDP_PROXY_LOGIN_REQUEST_FROM_SERVER_TO_COORDINATOR, + ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER, + ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER +}; + + +#define UDP_FORWARDER_MAXIMUM_TIMEOUT (60000 * 10) + +#endif diff --git a/src/raknet/UDPProxyCoordinator.cpp b/src/raknet/UDPProxyCoordinator.cpp new file mode 100755 index 0000000..9e063cd --- /dev/null +++ b/src/raknet/UDPProxyCoordinator.cpp @@ -0,0 +1,543 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyCoordinator==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#include "UDPProxyCoordinator.h" +#include "BitStream.h" +#include "UDPProxyCommon.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" +#include "Rand.h" +#include "GetTime.h" +#include "UDPForwarder.h" + +// Larger than the client version +static const int DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME=2000; +static const int DEFAULT_UNRESPONSIVE_PING_TIME=DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME+1000; + +using namespace RakNet; + +// bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ServerWithPing &cls ) {return inputKey.Get() < cls.ping;} +// bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ServerWithPing &cls ) {return inputKey.Get() > cls.ping;} +// bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ServerWithPing &cls ) {return inputKey.Get() == cls.ping;} + +int UDPProxyCoordinator::ServerWithPingComp( const unsigned short &key, const UDPProxyCoordinator::ServerWithPing &data ) +{ + if (key < data.ping) + return -1; + if (key > data.ping) + return 1; + return 0; +} + +int UDPProxyCoordinator::ForwardingRequestComp( const SenderAndTargetAddress &key, ForwardingRequest* const &data) +{ + if (key.senderClientAddress < data->sata.senderClientAddress ) + return -1; + if (key.senderClientAddress > data->sata.senderClientAddress ) + return -1; + if (key.targetClientAddress < data->sata.targetClientAddress ) + return -1; + if (key.targetClientAddress > data->sata.targetClientAddress ) + return 1; + return 0; +} +// +// bool operator<( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ForwardingRequest *cls ) +// { +// return inputKey.Get().senderClientAddress < cls->sata.senderClientAddress || +// (inputKey.Get().senderClientAddress == cls->sata.senderClientAddress && inputKey.Get().targetClientAddress < cls->sata.targetClientAddress); +// } +// bool operator>( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ForwardingRequest *cls ) +// { +// return inputKey.Get().senderClientAddress > cls->sata.senderClientAddress || +// (inputKey.Get().senderClientAddress == cls->sata.senderClientAddress && inputKey.Get().targetClientAddress > cls->sata.targetClientAddress); +// } +// bool operator==( const DataStructures::MLKeyRef &inputKey, const UDPProxyCoordinator::ForwardingRequest *cls ) +// { +// return inputKey.Get().senderClientAddress == cls->sata.senderClientAddress && inputKey.Get().targetClientAddress == cls->sata.targetClientAddress; +// } + +STATIC_FACTORY_DEFINITIONS(UDPProxyCoordinator,UDPProxyCoordinator); + +UDPProxyCoordinator::UDPProxyCoordinator() +{ + +} +UDPProxyCoordinator::~UDPProxyCoordinator() +{ + Clear(); +} +void UDPProxyCoordinator::SetRemoteLoginPassword(RakNet::RakString password) +{ + remoteLoginPassword=password; +} +void UDPProxyCoordinator::Update(void) +{ + unsigned int idx; + RakNet::TimeMS curTime = RakNet::GetTimeMS(); + ForwardingRequest *fw; + idx=0; + while (idx < forwardingRequestList.Size()) + { + fw=forwardingRequestList[idx]; + if (fw->timeRequestedPings!=0 && + curTime > fw->timeRequestedPings + DEFAULT_UNRESPONSIVE_PING_TIME) + { + fw->OrderRemainingServersToTry(); + fw->timeRequestedPings=0; + TryNextServer(fw->sata, fw); + idx++; + } + else if (fw->timeoutAfterSuccess!=0 && + curTime > fw->timeoutAfterSuccess) + { + // Forwarding request succeeded, we waited a bit to prevent duplicates. Can forget about the entry now. + RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + forwardingRequestList.RemoveAtIndex(idx); + } + else + idx++; + } +} +PluginReceiveResult UDPProxyCoordinator::OnReceive(Packet *packet) +{ + if (packet->data[0]==ID_UDP_PROXY_GENERAL && packet->length>1) + { + switch (packet->data[1]) + { + case ID_UDP_PROXY_FORWARDING_REQUEST_FROM_CLIENT_TO_COORDINATOR: + OnForwardingRequestFromClientToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_UDP_PROXY_LOGIN_REQUEST_FROM_SERVER_TO_COORDINATOR: + OnLoginRequestFromServerToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_UDP_PROXY_FORWARDING_REPLY_FROM_SERVER_TO_COORDINATOR: + OnForwardingReplyFromServerToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + case ID_UDP_PROXY_PING_SERVERS_REPLY_FROM_CLIENT_TO_COORDINATOR: + OnPingServersReplyFromClientToCoordinator(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + return RR_CONTINUE_PROCESSING; +} +void UDPProxyCoordinator::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + unsigned int idx, idx2; + + idx=0; + while (idx < forwardingRequestList.Size()) + { + if (forwardingRequestList[idx]->requestingAddress==systemAddress) + { + // Guy disconnected before the attempt completed + RakNet::OP_DELETE(forwardingRequestList[idx], _FILE_AND_LINE_); + forwardingRequestList.RemoveAtIndex(idx ); + } + else + idx++; + } + + idx = serverList.GetIndexOf(systemAddress); + if (idx!=(unsigned int)-1) + { + ForwardingRequest *fw; + // For each pending client for this server, choose from remaining servers. + for (idx2=0; idx2 < forwardingRequestList.Size(); idx2++) + { + fw = forwardingRequestList[idx2]; + if (fw->currentlyAttemptedServerAddress==systemAddress) + { + // Try the next server + TryNextServer(fw->sata, fw); + } + } + + // Remove dead server + serverList.RemoveAtIndexFast(idx); + } +} +void UDPProxyCoordinator::OnForwardingRequestFromClientToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + SystemAddress sourceAddress; + incomingBs.Read(sourceAddress); + if (sourceAddress==UNASSIGNED_SYSTEM_ADDRESS) + sourceAddress=packet->systemAddress; + SystemAddress targetAddress; + RakNetGUID targetGuid; + bool usesAddress=false; + incomingBs.Read(usesAddress); + if (usesAddress) + { + incomingBs.Read(targetAddress); + targetGuid=rakPeerInterface->GetGuidFromSystemAddress(targetAddress); + } + else + { + incomingBs.Read(targetGuid); + targetAddress=rakPeerInterface->GetSystemAddressFromGuid(targetGuid); + } + ForwardingRequest *fw = RakNet::OP_NEW(_FILE_AND_LINE_); + fw->timeoutAfterSuccess=0; + incomingBs.Read(fw->timeoutOnNoDataMS); + bool hasServerSelectionBitstream=false; + incomingBs.Read(hasServerSelectionBitstream); + if (hasServerSelectionBitstream) + incomingBs.Read(&(fw->serverSelectionBitstream)); + + RakNet::BitStream outgoingBs; + SenderAndTargetAddress sata; + sata.senderClientAddress=sourceAddress; + sata.targetClientAddress=targetAddress; + sata.targetClientGuid=targetGuid; + sata.senderClientGuid=rakPeerInterface->GetGuidFromSystemAddress(sourceAddress); + SenderAndTargetAddress sataReversed; + sataReversed.senderClientAddress=targetAddress; + sataReversed.targetClientAddress=sourceAddress; + sataReversed.senderClientGuid=sata.targetClientGuid; + sataReversed.targetClientGuid=sata.senderClientGuid; + + unsigned int insertionIndex; + bool objectExists1, objectExists2; + insertionIndex=forwardingRequestList.GetIndexFromKey(sata, &objectExists1); + forwardingRequestList.GetIndexFromKey(sataReversed, &objectExists2); + + if (objectExists1 || objectExists2) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_IN_PROGRESS); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + RakNet::OP_DELETE(fw, _FILE_AND_LINE_); + return; + } + + if (serverList.Size()==0) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_NO_SERVERS_ONLINE); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + RakNet::OP_DELETE(fw, _FILE_AND_LINE_); + return; + } + + if (rakPeerInterface->GetConnectionState(targetAddress)!=IS_CONNECTED && usesAddress==false) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_RECIPIENT_GUID_NOT_CONNECTED_TO_COORDINATOR); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + RakNet::OP_DELETE(fw, _FILE_AND_LINE_); + return; + } + + fw->sata=sata; + fw->requestingAddress=packet->systemAddress; + + if (serverList.Size()>1) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_PING_SERVERS_FROM_COORDINATOR_TO_CLIENT); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(targetGuid); + unsigned short serverListSize = (unsigned short) serverList.Size(); + outgoingBs.Write(serverListSize); + unsigned int idx; + for (idx=0; idx < serverList.Size(); idx++) + outgoingBs.Write(serverList[idx]); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, sourceAddress, false); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, targetAddress, false); + fw->timeRequestedPings=RakNet::GetTimeMS(); + unsigned int copyIndex; + for (copyIndex=0; copyIndex < serverList.Size(); copyIndex++) + fw->remainingServersToTry.Push(serverList[copyIndex], _FILE_AND_LINE_ ); + forwardingRequestList.InsertAtIndex(fw, insertionIndex, _FILE_AND_LINE_ ); + } + else + { + fw->timeRequestedPings=0; + fw->currentlyAttemptedServerAddress=serverList[0]; + forwardingRequestList.InsertAtIndex(fw, insertionIndex, _FILE_AND_LINE_ ); + SendForwardingRequest(sourceAddress, targetAddress, fw->currentlyAttemptedServerAddress, fw->timeoutOnNoDataMS); + } +} + +void UDPProxyCoordinator::SendForwardingRequest(SystemAddress sourceAddress, SystemAddress targetAddress, SystemAddress serverAddress, RakNet::TimeMS timeoutOnNoDataMS) +{ + RakNet::BitStream outgoingBs; + // Send request to desired server + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REQUEST_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write(timeoutOnNoDataMS); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, serverAddress, false); +} +void UDPProxyCoordinator::OnLoginRequestFromServerToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + RakNet::RakString password; + incomingBs.Read(password); + RakNet::BitStream outgoingBs; + + if (remoteLoginPassword.IsEmpty()) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + return; + } + + if (remoteLoginPassword!=password) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + return; + } + + unsigned int insertionIndex; + insertionIndex=serverList.GetIndexOf(packet->systemAddress); + if (insertionIndex!=(unsigned int)-1) + { + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); + return; + } + serverList.Push(packet->systemAddress, _FILE_AND_LINE_ ); + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); +} +void UDPProxyCoordinator::OnForwardingReplyFromServerToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + SenderAndTargetAddress sata; + incomingBs.Read(sata.senderClientAddress); + incomingBs.Read(sata.targetClientAddress); + bool objectExists; + unsigned int index = forwardingRequestList.GetIndexFromKey(sata, &objectExists); + if (objectExists==false) + { + // The guy disconnected before the request finished + return; + } + ForwardingRequest *fw = forwardingRequestList[index]; + sata.senderClientGuid = fw->sata.senderClientGuid; + sata.targetClientGuid = fw->sata.targetClientGuid; + + UDPForwarderResult success; + unsigned char c; + incomingBs.Read(c); + success=(UDPForwarderResult)c; + + RakNet::BitStream outgoingBs; + if (success==UDPFORWARDER_SUCCESS) + { + char serverIP[64]; + packet->systemAddress.ToString(false,serverIP); + unsigned short forwardingPort; + incomingBs.Read(forwardingPort); + + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_SUCCEEDED); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + outgoingBs.Write(sata.targetClientGuid); + outgoingBs.Write(RakNet::RakString(serverIP)); + outgoingBs.Write(forwardingPort); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, fw->requestingAddress, false); + + outgoingBs.Reset(); + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_NOTIFICATION); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + outgoingBs.Write(sata.targetClientGuid); + outgoingBs.Write(RakNet::RakString(serverIP)); + outgoingBs.Write(forwardingPort); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, sata.targetClientAddress, false); + + // 05/18/09 Keep the entry around for some time after success, so duplicates are reported if attempting forwarding from the target system before notification of success + fw->timeoutAfterSuccess=RakNet::GetTimeMS()+fw->timeoutOnNoDataMS; + // forwardingRequestList.RemoveAtIndex(index); + // RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + + return; + } + else if (success==UDPFORWARDER_NO_SOCKETS) + { + // Try next server + TryNextServer(sata, fw); + } + else + { + RakAssert(success==UDPFORWARDER_FORWARDING_ALREADY_EXISTS); + + // Return in progress + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_IN_PROGRESS); + outgoingBs.Write(sata.senderClientAddress); + outgoingBs.Write(sata.targetClientAddress); + outgoingBs.Write(sata.targetClientGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, fw->requestingAddress, false); + forwardingRequestList.RemoveAtIndex(index); + RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + } +} +void UDPProxyCoordinator::OnPingServersReplyFromClientToCoordinator(Packet *packet) +{ + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + unsigned short serversToPingSize; + SystemAddress serverAddress; + SenderAndTargetAddress sata; + incomingBs.Read(sata.senderClientAddress); + incomingBs.Read(sata.targetClientAddress); + bool objectExists; + unsigned int index = forwardingRequestList.GetIndexFromKey(sata, &objectExists); + if (objectExists==false) + return; + unsigned short idx; + ServerWithPing swp; + ForwardingRequest *fw = forwardingRequestList[index]; + if (fw->timeRequestedPings==0) + return; + + incomingBs.Read(serversToPingSize); + if (packet->systemAddress==sata.senderClientAddress) + { + for (idx=0; idx < serversToPingSize; idx++) + { + incomingBs.Read(swp.serverAddress); + incomingBs.Read(swp.ping); + unsigned int index2; + for (index2=0; index2 < fw->sourceServerPings.Size(); index2++) + { + if (fw->sourceServerPings[index2].ping >= swp.ping ) + break; + } + fw->sourceServerPings.Insert(swp, index2, _FILE_AND_LINE_); + } + } + else + { + for (idx=0; idx < serversToPingSize; idx++) + { + incomingBs.Read(swp.serverAddress); + incomingBs.Read(swp.ping); + + unsigned int index2; + for (index2=0; index2 < fw->targetServerPings.Size(); index2++) + { + if (fw->targetServerPings[index2].ping >= swp.ping ) + break; + } + fw->sourceServerPings.Insert(swp, index2, _FILE_AND_LINE_); + } + } + + // Both systems have to give us pings to progress here. Otherwise will timeout in Update() + if (fw->sourceServerPings.Size()>0 && + fw->targetServerPings.Size()>0) + { + fw->OrderRemainingServersToTry(); + fw->timeRequestedPings=0; + TryNextServer(fw->sata, fw); + } +} +void UDPProxyCoordinator::TryNextServer(SenderAndTargetAddress sata, ForwardingRequest *fw) +{ + bool pickedGoodServer=false; + while(fw->remainingServersToTry.Size()>0) + { + fw->currentlyAttemptedServerAddress=fw->remainingServersToTry.Pop(); + if (serverList.GetIndexOf(fw->currentlyAttemptedServerAddress)!=(unsigned int)-1) + { + pickedGoodServer=true; + break; + } + } + + if (pickedGoodServer==false) + { + SendAllBusy(sata.senderClientAddress, sata.targetClientAddress, sata.targetClientGuid, fw->requestingAddress); + forwardingRequestList.Remove(sata); + RakNet::OP_DELETE(fw,_FILE_AND_LINE_); + return; + } + + SendForwardingRequest(sata.senderClientAddress, sata.targetClientAddress, fw->currentlyAttemptedServerAddress, fw->timeoutOnNoDataMS); +} +void UDPProxyCoordinator::SendAllBusy(SystemAddress senderClientAddress, SystemAddress targetClientAddress, RakNetGUID targetClientGuid, SystemAddress requestingAddress) +{ + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_ALL_SERVERS_BUSY); + outgoingBs.Write(senderClientAddress); + outgoingBs.Write(targetClientAddress); + outgoingBs.Write(targetClientGuid); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, requestingAddress, false); +} +void UDPProxyCoordinator::Clear(void) +{ + serverList.Clear(true, _FILE_AND_LINE_); + for (unsigned int i=0; i < forwardingRequestList.Size(); i++) + { + RakNet::OP_DELETE(forwardingRequestList[i],_FILE_AND_LINE_); + } + forwardingRequestList.Clear(false, _FILE_AND_LINE_); +} +void UDPProxyCoordinator::ForwardingRequest::OrderRemainingServersToTry(void) +{ + //DataStructures::Multilist swpList; + DataStructures::OrderedList swpList; + // swpList.SetSortOrder(true); + + if (sourceServerPings.Size()==0 && targetServerPings.Size()==0) + return; + + unsigned int idx; + UDPProxyCoordinator::ServerWithPing swp; + for (idx=0; idx < remainingServersToTry.Size(); idx++) + { + swp.serverAddress=remainingServersToTry[idx]; + swp.ping=0; + if (sourceServerPings.Size()) + swp.ping+=(unsigned short) (sourceServerPings[idx].ping); + else + swp.ping+=(unsigned short) (DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME); + if (targetServerPings.Size()) + swp.ping+=(unsigned short) (targetServerPings[idx].ping); + else + swp.ping+=(unsigned short) (DEFAULT_CLIENT_UNRESPONSIVE_PING_TIME); + swpList.Insert(swp.ping, swp, false, _FILE_AND_LINE_); + } + remainingServersToTry.Clear(_FILE_AND_LINE_ ); + for (idx=0; idx < swpList.Size(); idx++) + { + remainingServersToTry.Push(swpList[idx].serverAddress, _FILE_AND_LINE_ ); + } +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/UDPProxyCoordinator.h b/src/raknet/UDPProxyCoordinator.h new file mode 100755 index 0000000..783e061 --- /dev/null +++ b/src/raknet/UDPProxyCoordinator.h @@ -0,0 +1,115 @@ +/// \file +/// \brief Essentially maintains a list of servers running UDPProxyServer, and some state management for UDPProxyClient to find a free server to forward datagrams +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyCoordinator==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __UDP_PROXY_COORDINATOR_H +#define __UDP_PROXY_COORDINATOR_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "RakString.h" +#include "BitStream.h" +#include "DS_Queue.h" +#include "DS_OrderedList.h" + +namespace RakNet +{ + /// When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa + /// The class to forward messages is UDPForwarder, and it is triggered over the network via the UDPProxyServer plugin. + /// The UDPProxyClient connects to UDPProxyCoordinator to get a list of servers running UDPProxyServer, and the coordinator will relay our forwarding request + /// \brief Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server. + /// \ingroup NAT_PUNCHTHROUGH_GROUP + class RAK_DLL_EXPORT UDPProxyCoordinator : public PluginInterface2 + { + public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(UDPProxyCoordinator) + + UDPProxyCoordinator(); + virtual ~UDPProxyCoordinator(); + + /// For UDPProxyServers logging in remotely, they must pass a password to UDPProxyServer::LoginToCoordinator(). It must match the password set here. + /// If no password is set, they cannot login remotely. + /// By default, no password is set + void SetRemoteLoginPassword(RakNet::RakString password); + + /// \internal + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + + struct SenderAndTargetAddress + { + SystemAddress senderClientAddress; + RakNetGUID senderClientGuid; + SystemAddress targetClientAddress; + RakNetGUID targetClientGuid; + }; + + struct ServerWithPing + { + unsigned short ping; + SystemAddress serverAddress; + }; + + struct ForwardingRequest + { + RakNet::TimeMS timeoutOnNoDataMS; + RakNet::TimeMS timeoutAfterSuccess; + SenderAndTargetAddress sata; + SystemAddress requestingAddress; // Which system originally sent the network message to start forwarding + SystemAddress currentlyAttemptedServerAddress; + DataStructures::Queue remainingServersToTry; + RakNet::BitStream serverSelectionBitstream; + + DataStructures::List sourceServerPings, targetServerPings; + RakNet::TimeMS timeRequestedPings; + // Order based on sourceServerPings and targetServerPings + void OrderRemainingServersToTry(void); + + }; + protected: + + static int ServerWithPingComp( const unsigned short &key, const UDPProxyCoordinator::ServerWithPing &data ); + static int ForwardingRequestComp( const SenderAndTargetAddress &key, ForwardingRequest* const &data); + + void OnForwardingRequestFromClientToCoordinator(Packet *packet); + void OnLoginRequestFromServerToCoordinator(Packet *packet); + void OnForwardingReplyFromServerToCoordinator(Packet *packet); + void OnPingServersReplyFromClientToCoordinator(Packet *packet); + void TryNextServer(SenderAndTargetAddress sata, ForwardingRequest *fw); + void SendAllBusy(SystemAddress senderClientAddress, SystemAddress targetClientAddress, RakNetGUID targetClientGuid, SystemAddress requestingAddress); + void Clear(void); + + void SendForwardingRequest(SystemAddress sourceAddress, SystemAddress targetAddress, SystemAddress serverAddress, RakNet::TimeMS timeoutOnNoDataMS); + + // Logged in servers + //DataStructures::Multilist serverList; + DataStructures::List serverList; + + // Forwarding requests in progress + //DataStructures::Multilist forwardingRequestList; + DataStructures::OrderedList forwardingRequestList; + + RakNet::RakString remoteLoginPassword; + + }; + +} // End namespace + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/UDPProxyServer.cpp b/src/raknet/UDPProxyServer.cpp new file mode 100755 index 0000000..f999627 --- /dev/null +++ b/src/raknet/UDPProxyServer.cpp @@ -0,0 +1,167 @@ +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyServer==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#include "UDPProxyServer.h" +#include "BitStream.h" +#include "UDPProxyCommon.h" +#include "RakPeerInterface.h" +#include "MessageIdentifiers.h" + +using namespace RakNet; + +STATIC_FACTORY_DEFINITIONS(UDPProxyServer,UDPProxyServer); + +UDPProxyServer::UDPProxyServer() +{ + resultHandler=0; + socketFamily=AF_INET; +} +UDPProxyServer::~UDPProxyServer() +{ + +} +void UDPProxyServer::SetSocketFamily(unsigned short _socketFamily) +{ + socketFamily=_socketFamily; +} +void UDPProxyServer::SetResultHandler(UDPProxyServerResultHandler *rh) +{ + resultHandler=rh; +} +bool UDPProxyServer::LoginToCoordinator(RakNet::RakString password, SystemAddress coordinatorAddress) +{ + unsigned int insertionIndex; + bool objectExists; + insertionIndex=loggingInCoordinators.GetIndexFromKey(coordinatorAddress,&objectExists); + if (objectExists==true) + return false; + loggedInCoordinators.GetIndexFromKey(coordinatorAddress,&objectExists); + if (objectExists==true) + return false; + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_LOGIN_REQUEST_FROM_SERVER_TO_COORDINATOR); + outgoingBs.Write(password); + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, coordinatorAddress, false); + loggingInCoordinators.InsertAtIndex(coordinatorAddress, insertionIndex, _FILE_AND_LINE_ ); + return true; +} +void UDPProxyServer::Update(void) +{ + udpForwarder.Update(); +} +PluginReceiveResult UDPProxyServer::OnReceive(Packet *packet) +{ + // Make sure incoming messages from from UDPProxyCoordinator + + if (packet->data[0]==ID_UDP_PROXY_GENERAL && packet->length>1) + { + bool objectExists; + + switch (packet->data[1]) + { + case ID_UDP_PROXY_FORWARDING_REQUEST_FROM_COORDINATOR_TO_SERVER: + if (loggedInCoordinators.GetIndexFromKey(packet->systemAddress, &objectExists)!=(unsigned int)-1) + { + OnForwardingRequestFromCoordinatorToServer(packet); + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + break; + case ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER: + case ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER: + case ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER: + case ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER: + { + unsigned int removalIndex = loggingInCoordinators.GetIndexFromKey(packet->systemAddress, &objectExists); + if (objectExists) + { + loggingInCoordinators.RemoveAtIndex(removalIndex); + + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + RakNet::RakString password; + incomingBs.Read(password); + switch (packet->data[1]) + { + case ID_UDP_PROXY_NO_PASSWORD_SET_FROM_COORDINATOR_TO_SERVER: + if (resultHandler) + resultHandler->OnNoPasswordSet(password, this); + break; + case ID_UDP_PROXY_WRONG_PASSWORD_FROM_COORDINATOR_TO_SERVER: + if (resultHandler) + resultHandler->OnWrongPassword(password, this); + break; + case ID_UDP_PROXY_ALREADY_LOGGED_IN_FROM_COORDINATOR_TO_SERVER: + if (resultHandler) + resultHandler->OnAlreadyLoggedIn(password, this); + break; + case ID_UDP_PROXY_LOGIN_SUCCESS_FROM_COORDINATOR_TO_SERVER: + // RakAssert(loggedInCoordinators.GetIndexOf(packet->systemAddress)==(unsigned int)-1); + loggedInCoordinators.Insert(packet->systemAddress, packet->systemAddress, true, _FILE_AND_LINE_); + if (resultHandler) + resultHandler->OnLoginSuccess(password, this); + break; + } + } + + + return RR_STOP_PROCESSING_AND_DEALLOCATE; + } + } + } + return RR_CONTINUE_PROCESSING; +} +void UDPProxyServer::OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ) +{ + (void) lostConnectionReason; + (void) rakNetGUID; + + loggingInCoordinators.RemoveIfExists(systemAddress); + loggedInCoordinators.RemoveIfExists(systemAddress); +} +void UDPProxyServer::OnRakPeerStartup(void) +{ + udpForwarder.Startup(); +} +void UDPProxyServer::OnRakPeerShutdown(void) +{ + udpForwarder.Shutdown(); + loggingInCoordinators.Clear(true,_FILE_AND_LINE_); + loggedInCoordinators.Clear(true,_FILE_AND_LINE_); +} +void UDPProxyServer::OnAttach(void) +{ + if (rakPeerInterface->IsActive()) + OnRakPeerStartup(); +} +void UDPProxyServer::OnDetach(void) +{ + OnRakPeerShutdown(); +} +void UDPProxyServer::OnForwardingRequestFromCoordinatorToServer(Packet *packet) +{ + SystemAddress sourceAddress, targetAddress; + RakNet::BitStream incomingBs(packet->data, packet->length, false); + incomingBs.IgnoreBytes(2); + incomingBs.Read(sourceAddress); + incomingBs.Read(targetAddress); + RakNet::TimeMS timeoutOnNoDataMS; + incomingBs.Read(timeoutOnNoDataMS); + RakAssert(timeoutOnNoDataMS > 0 && timeoutOnNoDataMS <= UDP_FORWARDER_MAXIMUM_TIMEOUT); + + unsigned short forwardingPort; + UDPForwarderResult success = udpForwarder.StartForwarding(sourceAddress, targetAddress, timeoutOnNoDataMS, 0, socketFamily, &forwardingPort, 0); + RakNet::BitStream outgoingBs; + outgoingBs.Write((MessageID)ID_UDP_PROXY_GENERAL); + outgoingBs.Write((MessageID)ID_UDP_PROXY_FORWARDING_REPLY_FROM_SERVER_TO_COORDINATOR); + outgoingBs.Write(sourceAddress); + outgoingBs.Write(targetAddress); + outgoingBs.Write((unsigned char) success); + if (success==UDPFORWARDER_SUCCESS) + { + outgoingBs.Write(forwardingPort); + } + rakPeerInterface->Send(&outgoingBs, MEDIUM_PRIORITY, RELIABLE_ORDERED, 0, packet->systemAddress, false); +} + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/UDPProxyServer.h b/src/raknet/UDPProxyServer.h new file mode 100755 index 0000000..d3b776e --- /dev/null +++ b/src/raknet/UDPProxyServer.h @@ -0,0 +1,118 @@ +/// \file +/// \brief A RakNet plugin performing networking to communicate with UDPProxyServer. It allows UDPProxyServer to control our instance of UDPForwarder. +/// +/// This file is part of RakNet Copyright 2003 Jenkins Software LLC +/// +/// Usage of RakNet is subject to the appropriate license agreement. +/// Creative Commons Licensees are subject to the +/// license found at +/// http://creativecommons.org/licenses/by-nc/2.5/ +/// Single application licensees are subject to the license found at +/// http://www.jenkinssoftware.com/SingleApplicationLicense.html +/// Custom license users are subject to the terms therein. + +#include "NativeFeatureIncludes.h" +#if _RAKNET_SUPPORT_UDPProxyServer==1 && _RAKNET_SUPPORT_UDPForwarder==1 + +#ifndef __UDP_PROXY_SERVER_H +#define __UDP_PROXY_SERVER_H + +#include "Export.h" +#include "RakNetTypes.h" +#include "PluginInterface2.h" +#include "UDPForwarder.h" +#include "RakString.h" + +namespace RakNet +{ +class UDPProxyServer; + +/// Callback to handle results of calling UDPProxyServer::LoginToCoordinator() +/// \ingroup UDP_PROXY_GROUP +struct UDPProxyServerResultHandler +{ + UDPProxyServerResultHandler() {} + virtual ~UDPProxyServerResultHandler() {} + + /// Called when our login succeeds + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnLoginSuccess(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; + + /// We are already logged in. + /// This login failed, but the system is operational as if it succeeded + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnAlreadyLoggedIn(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; + + /// The coordinator operator forgot to call UDPProxyCoordinator::SetRemoteLoginPassword() + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnNoPasswordSet(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; + + /// The coordinator operator set a different password in UDPProxyCoordinator::SetRemoteLoginPassword() than what we passed + /// \param[out] usedPassword The password we passed to UDPProxyServer::LoginToCoordinator() + /// \param[out] proxyServer The plugin calling this callback + virtual void OnWrongPassword(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0; +}; + +/// \brief UDPProxyServer to control our instance of UDPForwarder +/// \details When NAT Punchthrough fails, it is possible to use a non-NAT system to forward messages from us to the recipient, and vice-versa.
      +/// The class to forward messages is UDPForwarder, and it is triggered over the network via the UDPProxyServer plugin.
      +/// The UDPProxyServer connects to UDPProxyServer to get a list of servers running UDPProxyServer, and the coordinator will relay our forwarding request. +/// \ingroup UDP_PROXY_GROUP +class RAK_DLL_EXPORT UDPProxyServer : public PluginInterface2 +{ +public: + // GetInstance() and DestroyInstance(instance*) + STATIC_FACTORY_DECLARATIONS(UDPProxyServer) + + UDPProxyServer(); + ~UDPProxyServer(); + + /// Sets the socket family to use, either IPV4 or IPV6 + /// \param[in] socketFamily For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. + void SetSocketFamily(unsigned short _socketFamily); + + /// Receives the results of calling LoginToCoordinator() + /// Set before calling LoginToCoordinator or you won't know what happened + /// \param[in] resultHandler + void SetResultHandler(UDPProxyServerResultHandler *rh); + + /// Before the coordinator will register the UDPProxyServer, you must login + /// \pre Must be connected to the coordinator + /// \pre Coordinator must have set a password with UDPProxyCoordinator::SetRemoteLoginPassword() + /// \returns false if already logged in, or logging in. Returns true otherwise + bool LoginToCoordinator(RakNet::RakString password, SystemAddress coordinatorAddress); + + /// Operative class that performs the forwarding + /// Exposed so you can call UDPForwarder::SetMaxForwardEntries() if you want to change away from the default + /// UDPForwarder::Startup(), UDPForwarder::Shutdown(), and UDPForwarder::Update() are called automatically by the plugin + UDPForwarder udpForwarder; + + virtual void OnAttach(void); + virtual void OnDetach(void); + + /// \internal + virtual void Update(void); + virtual PluginReceiveResult OnReceive(Packet *packet); + virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ); + virtual void OnRakPeerStartup(void); + virtual void OnRakPeerShutdown(void); + +protected: + void OnForwardingRequestFromCoordinatorToServer(Packet *packet); + + DataStructures::OrderedList loggingInCoordinators; + DataStructures::OrderedList loggedInCoordinators; + + UDPProxyServerResultHandler *resultHandler; + unsigned short socketFamily; + +}; + +} // End namespace + +#endif + +#endif // _RAKNET_SUPPORT_* diff --git a/src/raknet/VariableDeltaSerializer.cpp b/src/raknet/VariableDeltaSerializer.cpp new file mode 100755 index 0000000..92ff24c --- /dev/null +++ b/src/raknet/VariableDeltaSerializer.cpp @@ -0,0 +1,275 @@ +#include "VariableDeltaSerializer.h" + +using namespace RakNet; + +VariableDeltaSerializer::VariableDeltaSerializer() {didComparisonThisTick=false;} +VariableDeltaSerializer::~VariableDeltaSerializer() {RemoveRemoteSystemVariableHistory();} + +VariableDeltaSerializer::SerializationContext::SerializationContext() {variableHistoryIdentical=0; variableHistoryUnique=0;} +VariableDeltaSerializer::SerializationContext::~SerializationContext() {} + +void VariableDeltaSerializer::OnMessageReceipt(RakNetGUID guid, uint32_t receiptId, bool messageArrived) +{ + // Module? + if (messageArrived) + FreeVarsAssociatedWithReceipt(guid, receiptId); + else + DirtyAndFreeVarsAssociatedWithReceipt(guid, receiptId); + +} + +void VariableDeltaSerializer::BeginUnreliableAckedSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream, uint32_t _sendReceipt) +{ + RakAssert(_guid!=UNASSIGNED_RAKNET_GUID); + context->anyVariablesWritten=false; + context->guid=_guid; + context->bitStream=_bitStream; + if (context->variableHistoryUnique==0) + context->variableHistoryUnique=StartVariableHistoryWrite(_guid); + context->variableHistory=context->variableHistoryUnique; + context->sendReceipt=_sendReceipt; + context->changedVariables = AllocChangedVariablesList(); + context->newSystemSend=false; + context->serializationMode=UNRELIABLE_WITH_ACK_RECEIPT; +} + +void VariableDeltaSerializer::BeginUniqueSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream) +{ + RakAssert(_guid!=UNASSIGNED_RAKNET_GUID); + context->anyVariablesWritten=false; + context->guid=_guid; + context->bitStream=_bitStream; + if (context->variableHistoryUnique==0) + context->variableHistoryUnique=StartVariableHistoryWrite(_guid); + context->variableHistory=context->variableHistoryUnique; + context->newSystemSend=false; + + context->serializationMode=RELIABLE; +} + + +void VariableDeltaSerializer::BeginIdenticalSerialize(SerializationContext *context, bool _isFirstSendToRemoteSystem, BitStream *_bitStream) +{ + context->anyVariablesWritten=false; + context->guid=UNASSIGNED_RAKNET_GUID; + context->bitStream=_bitStream; + context->serializationMode=RELIABLE; + if (context->variableHistoryIdentical==0) + context->variableHistoryIdentical=StartVariableHistoryWrite(UNASSIGNED_RAKNET_GUID); + context->variableHistory=context->variableHistoryIdentical; + context->newSystemSend=_isFirstSendToRemoteSystem; +} + +void VariableDeltaSerializer::EndSerialize(SerializationContext *context) +{ + if (context->serializationMode==UNRELIABLE_WITH_ACK_RECEIPT) + { + if (context->anyVariablesWritten==false) + { + context->bitStream->Reset(); + FreeChangedVariablesList(context->changedVariables); + return; + } + + StoreChangedVariablesList(context->variableHistory, context->changedVariables, context->sendReceipt); + } + else + { + if (context->variableHistoryIdentical) + { + if (didComparisonThisTick==false) + { + didComparisonThisTick=true; + identicalSerializationBs.Reset(); + + if (context->anyVariablesWritten==false) + { + context->bitStream->Reset(); + return; + } + + identicalSerializationBs.Write(context->bitStream); + context->bitStream->ResetReadPointer(); + } + else + { + context->bitStream->Write(&identicalSerializationBs); + identicalSerializationBs.ResetReadPointer(); + } + } + else if (context->anyVariablesWritten==false) + { + context->bitStream->Reset(); + return; + } + } +} + +void VariableDeltaSerializer::BeginDeserialize(DeserializationContext *context, BitStream *_bitStream) +{ + context->bitStream=_bitStream; +} + +void VariableDeltaSerializer::EndDeserialize(DeserializationContext *context) +{ + (void) context; +} + +void VariableDeltaSerializer::AddRemoteSystemVariableHistory(RakNetGUID guid) +{ + (void) guid; +} + +void VariableDeltaSerializer::RemoveRemoteSystemVariableHistory(RakNetGUID guid) +{ + unsigned int idx,idx2; + idx = GetVarsWrittenPerRemoteSystemListIndex(guid); + if (idx==(unsigned int)-1) + return; + + if (remoteSystemVariableHistoryList[idx]->guid==guid) + { + // Memory pool doesn't call destructor + for (idx2=0; idx2 < remoteSystemVariableHistoryList[idx]->updatedVariablesHistory.Size(); idx2++) + { + FreeChangedVariablesList(remoteSystemVariableHistoryList[idx]->updatedVariablesHistory[idx2]); + } + + delete remoteSystemVariableHistoryList[idx]; + remoteSystemVariableHistoryList.RemoveAtIndexFast(idx); + return; + } +} + +int RakNet::VariableDeltaSerializer::UpdatedVariablesListPtrComp( const uint32_t &key, ChangedVariablesList* const &data ) +{ + if (keysendReceipt) + return -1; + if (key==data->sendReceipt) + return 0; + return 1; +} + +void VariableDeltaSerializer::FreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId) +{ + unsigned int idx, idx2; + idx = GetVarsWrittenPerRemoteSystemListIndex(guid); + if (idx==(unsigned int)-1) + return; + + RemoteSystemVariableHistory* vprs = remoteSystemVariableHistoryList[idx]; + bool objectExists; + idx2=vprs->updatedVariablesHistory.GetIndexFromKey(receiptId,&objectExists); + if (objectExists) + { + // Free this history node + FreeChangedVariablesList(vprs->updatedVariablesHistory[idx2]); + vprs->updatedVariablesHistory.RemoveAtIndex(idx2); + } +} + +void VariableDeltaSerializer::DirtyAndFreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId) +{ + unsigned int idx, idx2; + idx = GetVarsWrittenPerRemoteSystemListIndex(guid); + if (idx==(unsigned int)-1) + return; + + RemoteSystemVariableHistory* vprs = remoteSystemVariableHistoryList[idx]; + bool objectExists; + idx2=vprs->updatedVariablesHistory.GetIndexFromKey(receiptId,&objectExists); + if (objectExists) + { + // 'Dirty' all variables sent this update, meaning they will be resent the next time Serialize() is called + vprs->variableListDeltaTracker.FlagDirtyFromBitArray(vprs->updatedVariablesHistory[idx2]->bitField); + + // Free this history node + FreeChangedVariablesList(vprs->updatedVariablesHistory[idx2]); + vprs->updatedVariablesHistory.RemoveAtIndex(idx2); + } +} +unsigned int VariableDeltaSerializer::GetVarsWrittenPerRemoteSystemListIndex(RakNetGUID guid) +{ + unsigned int idx; + for (idx=0; idx < remoteSystemVariableHistoryList.Size(); idx++) + { + if (remoteSystemVariableHistoryList[idx]->guid==guid) + return idx; + } + return (unsigned int) -1; +} +void VariableDeltaSerializer::RemoveRemoteSystemVariableHistory(void) +{ + unsigned int idx,idx2; + for (idx=0; idx < remoteSystemVariableHistoryList.Size(); idx++) + { + for (idx2=0; idx2 < remoteSystemVariableHistoryList[idx]->updatedVariablesHistory.Size(); idx2++) + { + FreeChangedVariablesList(remoteSystemVariableHistoryList[idx]->updatedVariablesHistory[idx2]); + } + + delete remoteSystemVariableHistoryList[idx]; + } + remoteSystemVariableHistoryList.Clear(false,_FILE_AND_LINE_); +} + +VariableDeltaSerializer::RemoteSystemVariableHistory* VariableDeltaSerializer::GetRemoteSystemVariableHistory(RakNetGUID guid) +{ + unsigned int rshli = GetRemoteSystemHistoryListIndex(guid); + return remoteSystemVariableHistoryList[rshli]; +} + +VariableDeltaSerializer::ChangedVariablesList *VariableDeltaSerializer::AllocChangedVariablesList(void) +{ + VariableDeltaSerializer::ChangedVariablesList *p = updatedVariablesMemoryPool.Allocate(_FILE_AND_LINE_); + p->bitWriteIndex=0; + p->bitField[0]=0; + return p; +} +void VariableDeltaSerializer::FreeChangedVariablesList(ChangedVariablesList *changedVariables) +{ + updatedVariablesMemoryPool.Release(changedVariables, _FILE_AND_LINE_); +} +void VariableDeltaSerializer::StoreChangedVariablesList(RemoteSystemVariableHistory *variableHistory, ChangedVariablesList *changedVariables, uint32_t sendReceipt) +{ + changedVariables->sendReceipt=sendReceipt; + variableHistory->updatedVariablesHistory.Insert(changedVariables->sendReceipt,changedVariables,true,_FILE_AND_LINE_); +} + +VariableDeltaSerializer::RemoteSystemVariableHistory *VariableDeltaSerializer::StartVariableHistoryWrite(RakNetGUID guid) +{ + RemoteSystemVariableHistory *variableHistory; + + unsigned int rshli = GetRemoteSystemHistoryListIndex(guid); + if (rshli==(unsigned int) -1) + { + variableHistory = new RemoteSystemVariableHistory; + variableHistory->guid=guid; + remoteSystemVariableHistoryList.Push(variableHistory,_FILE_AND_LINE_); + } + else + { + variableHistory=remoteSystemVariableHistoryList[rshli]; + } + + variableHistory->variableListDeltaTracker.StartWrite(); + return variableHistory; +} +unsigned int VariableDeltaSerializer::GetRemoteSystemHistoryListIndex(RakNetGUID guid) +{ + // Find the variable tracker for the target system + unsigned int idx; + for (idx=0; idx < remoteSystemVariableHistoryList.Size(); idx++) + { + if (remoteSystemVariableHistoryList[idx]->guid==guid) + { + return idx; + } + } + return (unsigned int) -1; +} + +void VariableDeltaSerializer::OnPreSerializeTick(void) +{ + didComparisonThisTick=false; +} diff --git a/src/raknet/VariableDeltaSerializer.h b/src/raknet/VariableDeltaSerializer.h new file mode 100755 index 0000000..257426d --- /dev/null +++ b/src/raknet/VariableDeltaSerializer.h @@ -0,0 +1,257 @@ +#ifndef __VARIABLE_DELTA_SERIALIZER_H +#define __VARIABLE_DELTA_SERIALIZER_H + +#include "VariableListDeltaTracker.h" +#include "DS_MemoryPool.h" +#include "NativeTypes.h" +#include "BitStream.h" +#include "PacketPriority.h" +#include "DS_OrderedList.h" + +namespace RakNet +{ + +/// \brief Class to compare memory values of variables in a current state to a prior state +/// Results of the comparisons will be written to a bitStream, such that only changed variables get written
      +/// Can be used with ReplicaManager3 to Serialize a Replica3 per-variable, rather than comparing the entire object against itself
      +/// Usage:
      +///
      +/// 1. Call BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize(). In the case of Replica3, this would be in the Serialize() call
      +/// 2. For each variable of the type in step 1, call Serialize(). The same variables must be serialized every tick()
      +/// 3. Call EndSerialize()
      +/// 4. Repeat step 1 for each of the other categories of how to send varaibles +/// +/// On the receiver: +/// +/// 1. Call BeginDeserialize(). In the case of Replica3, this would be in the Deserialize() call +/// 2. Call DeserializeVariable() for each variable, in the same order as was Serialized() +/// 3. Call EndSerialize() +/// \sa The ReplicaManager3 sample +class VariableDeltaSerializer +{ +protected: + struct RemoteSystemVariableHistory; + struct ChangedVariablesList; + +public: + VariableDeltaSerializer(); + ~VariableDeltaSerializer(); + + struct SerializationContext + { + SerializationContext(); + ~SerializationContext(); + + RakNetGUID guid; + BitStream *bitStream; + uint32_t rakPeerSendReceipt; + RemoteSystemVariableHistory *variableHistory; + RemoteSystemVariableHistory *variableHistoryIdentical; + RemoteSystemVariableHistory *variableHistoryUnique; + ChangedVariablesList *changedVariables; + uint32_t sendReceipt; + PacketReliability serializationMode; + bool anyVariablesWritten; + bool newSystemSend; // Force send all, do not record + }; + + struct DeserializationContext + { + BitStream *bitStream; + }; + + /// \brief Call before doing one or more SerializeVariable calls when the data will be sent UNRELIABLE_WITH_ACK_RECEIPT + /// The last value of each variable will be saved per remote system. Additionally, a history of \a _sendReceipts is stored to determine what to resend on packetloss. + /// When variables are lost, they will be flagged dirty and always resent to the system that lost it + /// Disadvantages: Every variable for every remote system is copied internally, in addition to a history list of what variables changed for which \a _sendReceipt. Very memory and CPU intensive for multiple connections. + /// Advantages: When data needs to be resent by RakNet, RakNet can only resend the value it currently has. This allows the application to control the resend, sending the most recent value of the variable. The end result is that bandwidth is used more efficiently because old data is never sent. + /// \pre Upon getting ID_SND_RECEIPT_LOSS or ID_SND_RECEIPT_ACKED call OnMessageReceipt() + /// \pre AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() must be called for new and lost connections + /// \param[in] context Holds the context of this group of serialize calls. This can be a stack object just passed to the function. + /// \param[in] _guid Which system we are sending to + /// \param[in] _bitSteam Which bitStream to write to + /// \param[in] _sendReceipt Returned from RakPeer::IncrementNextSendReceipt() and passed to the Send() or SendLists() function. Identifies this update for ID_SND_RECEIPT_LOSS and ID_SND_RECEIPT_ACKED + void BeginUnreliableAckedSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream, uint32_t _sendReceipt); + + /// \brief Call before doing one or more SerializeVariable calls for data that may be sent differently to every remote system (such as an invisibility flag that only teammates can see) + /// The last value of each variable will be saved per remote system. + /// Unlike BeginUnreliableAckedSerialize(), send receipts are not necessary + /// Disadvantages: Every variable for every remote system is copied internally. Very memory and CPU intensive for multiple connections. + /// Advantages: When data is sent differently depending on the recipient, this system can make things easier to use and is as efficient as it can be. + /// \pre AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() must be called for new and lost connections + /// \param[in] context Holds the context of this group of serialize calls. This can be a stack object just passed to the function. + /// \param[in] _guid Which system we are sending to + /// \param[in] _bitSteam Which bitStream to write to + void BeginUniqueSerialize(SerializationContext *context, RakNetGUID _guid, BitStream *_bitStream); + + /// \brief Call before doing one or more SerializeVariable calls for data that is sent with the same value to every remote system (such as health, position, etc.) + /// This is the most common type of serialization, and also the most efficient + /// Disadvantages: A copy of every variable still needs to be held, although only once + /// Advantages: After the first serialization, the last serialized bitStream will be used for subsequent sends + /// \pre Call OnPreSerializeTick() before doing any calls to BeginIdenticalSerialize() for each of your objects, once per game tick + /// \param[in] context Holds the context of this group of serialize calls. This can be a stack object just passed to the function. + /// \param[in] _isFirstSerializeToThisSystem Pass true if this is the first time ever serializing to this system (the initial download). This way all variables will be written, rather than checking against prior sent values. + /// \param[in] _bitSteam Which bitStream to write to + void BeginIdenticalSerialize(SerializationContext *context, bool _isFirstSerializeToThisSystem, BitStream *_bitStream); + + /// \brief Call after BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize(), then after calling SerializeVariable() one or more times + /// \param[in] context Same context pointer passed to BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize() + void EndSerialize(SerializationContext *context); + + /// \brief Call when you receive the BitStream written by SerializeVariable(), before calling DeserializeVariable() + /// \param[in] context Holds the context of this group of deserialize calls. This can be a stack object just passed to the function. + /// \param[in] _bitStream Pass the bitStream originally passed to and written to by serialize calls + void BeginDeserialize(DeserializationContext *context, BitStream *_bitStream); + + /// \param[in] context Same context pointer passed to BeginDeserialize() + void EndDeserialize(DeserializationContext *context); + + /// BeginUnreliableAckedSerialize() and BeginUniqueSerialize() require knowledge of when connections are added and dropped + /// Call AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() to notify the system of these events + /// \param[in] _guid Which system we are sending to + void AddRemoteSystemVariableHistory(RakNetGUID guid); + + /// BeginUnreliableAckedSerialize() and BeginUniqueSerialize() require knowledge of when connections are added and dropped + /// Call AddRemoteSystemVariableHistory() and RemoveRemoteSystemVariableHistory() to notify the system of these events + /// \param[in] _guid Which system we are sending to + void RemoveRemoteSystemVariableHistory(RakNetGUID guid); + + /// BeginIdenticalSerialize() requires knowledge of when serialization has started for an object across multiple systems + /// This way it can setup the flag to do new comparisons against the last sent values, rather than just resending the last sent bitStream + /// For Replica3, overload and call this from Replica3::OnUserReplicaPreSerializeTick() + void OnPreSerializeTick(void); + + /// Call when getting ID_SND_RECEIPT_LOSS or ID_SND_RECEIPT_ACKED for a particular system + /// Example: + /// + /// uint32_t msgNumber; + /// memcpy(&msgNumber, packet->data+1, 4); + /// DataStructures::List replicaListOut; + /// replicaManager.GetReplicasCreatedByMe(replicaListOut); + /// unsigned int idx; + /// for (idx=0; idx < replicaListOut.GetSize(); idx++) + /// { + /// ((SampleReplica*)replicaListOut[idx])->NotifyReplicaOfMessageDeliveryStatus(packet->guid,msgNumber, packet->data[0]==ID_SND_RECEIPT_ACKED); + /// } + /// + /// \param[in] guid Which system we are sending to + /// \param[in] receiptId Encoded in bytes 1-4 inclusive of ID_SND_RECEIPT_LOSS and ID_SND_RECEIPT_ACKED + /// \param[in] messageArrived True for ID_SND_RECEIPT_ACKED, false otherwise + void OnMessageReceipt(RakNetGUID guid, uint32_t receiptId, bool messageArrived); + + /// Call to Serialize a variable + /// Will write to the bitSteam passed to \a context true, variableValue if the variable has changed or has never been written. Otherwise will write false. + /// \pre You have called BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize() + /// \pre Will also require calling OnPreSerializeTick() if using BeginIdenticalSerialize() + /// \note Be sure to call EndSerialize() after finishing all serializations + /// \param[in] context Same context pointer passed to BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize() + /// \param[in] variable A variable to write to the bitStream passed to \a context + template + void SerializeVariable(SerializationContext *context, const VarType &variable) + { + if (context->newSystemSend) + { + if (context->variableHistory->variableListDeltaTracker.IsPastEndOfList()==false) + { + // previously sent data to another system + context->bitStream->Write(true); + context->bitStream->Write(variable); + context->anyVariablesWritten=true; + } + else + { + // never sent data to another system + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream); + context->anyVariablesWritten=true; + } + } + else if (context->serializationMode==UNRELIABLE_WITH_ACK_RECEIPT) + { + context->anyVariablesWritten|= + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream, context->changedVariables->bitField, context->changedVariables->bitWriteIndex++); + } + else + { + if (context->variableHistoryIdentical) + { + // Identical serialization to a number of systems + if (didComparisonThisTick==false) + context->anyVariablesWritten|= + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream); + // Else bitstream is written to at the end + } + else + { + // Per-system serialization + context->anyVariablesWritten|= + context->variableHistory->variableListDeltaTracker.WriteVarToBitstream(variable, context->bitStream); + } + } + } + + /// Call to deserialize into a variable + /// \pre You have called BeginDeserialize() + /// \note Be sure to call EndDeserialize() after finishing all deserializations + /// \param[in] context Same context pointer passed to BeginDeserialize() + /// \param[in] variable A variable to write to the bitStream passed to \a context + template + bool DeserializeVariable(DeserializationContext *context, VarType &variable) + { + return VariableListDeltaTracker::ReadVarFromBitstream(variable, context->bitStream); + } + + + +protected: + + // For a given send receipt from RakPeer::Send() track which variables we updated + // That way if that send does not arrive (ID_SND_RECEIPT_LOSS) we can mark those variables as dirty to resend them with current values + struct ChangedVariablesList + { + uint32_t sendReceipt; + unsigned short bitWriteIndex; + unsigned char bitField[56]; + }; + + // static int Replica2ObjectComp( const uint32_t &key, ChangedVariablesList* const &data ); + + static int UpdatedVariablesListPtrComp( const uint32_t &key, ChangedVariablesList* const &data ); + + // For each remote system, track the last values of variables we sent to them, and the history of what values changed per call to Send() + // Every serialize if a variable changes from its last value, send it out again + // Also if a send does not arrive (ID_SND_RECEIPT_LOSS) we use updatedVariablesHistory to mark those variables as dirty, to resend them unreliably with the current values + struct RemoteSystemVariableHistory + { + RakNetGUID guid; + VariableListDeltaTracker variableListDeltaTracker; + DataStructures::OrderedList updatedVariablesHistory; + }; + /// A list of RemoteSystemVariableHistory indexed by guid, one per connection that we serialize to + /// List is added to when SerializeConstruction is called, and removed from when SerializeDestruction is called, or when a given connection is dropped + DataStructures::List remoteSystemVariableHistoryList; + + // Because the ChangedVariablesList is created every serialize and destroyed every receipt I use a pool to avoid fragmentation + DataStructures::MemoryPool updatedVariablesMemoryPool; + + bool didComparisonThisTick; + RakNet::BitStream identicalSerializationBs; + + void FreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId); + void DirtyAndFreeVarsAssociatedWithReceipt(RakNetGUID guid, uint32_t receiptId); + unsigned int GetVarsWrittenPerRemoteSystemListIndex(RakNetGUID guid); + void RemoveRemoteSystemVariableHistory(void); + + RemoteSystemVariableHistory* GetRemoteSystemVariableHistory(RakNetGUID guid); + + ChangedVariablesList *AllocChangedVariablesList(void); + void FreeChangedVariablesList(ChangedVariablesList *changedVariables); + void StoreChangedVariablesList(RemoteSystemVariableHistory *variableHistory, ChangedVariablesList *changedVariables, uint32_t sendReceipt); + + RemoteSystemVariableHistory *StartVariableHistoryWrite(RakNetGUID guid); + unsigned int GetRemoteSystemHistoryListIndex(RakNetGUID guid); + +}; + +} + +#endif diff --git a/src/raknet/VariableListDeltaTracker.cpp b/src/raknet/VariableListDeltaTracker.cpp new file mode 100755 index 0000000..5523a99 --- /dev/null +++ b/src/raknet/VariableListDeltaTracker.cpp @@ -0,0 +1,40 @@ +#include "VariableListDeltaTracker.h" + +using namespace RakNet; + +VariableListDeltaTracker::VariableListDeltaTracker() {nextWriteIndex=0;} +VariableListDeltaTracker::~VariableListDeltaTracker() +{ + unsigned int i; + for (i=0; i < variableList.Size(); i++) + rakFree_Ex(variableList[i].lastData,_FILE_AND_LINE_); +} + +// Call before using a series of WriteVar +void VariableListDeltaTracker::StartWrite(void) {nextWriteIndex=0;} + +void VariableListDeltaTracker::FlagDirtyFromBitArray(unsigned char *bArray) +{ + unsigned short readOffset=0; + for (readOffset=0; readOffset < variableList.Size(); readOffset++) + { + bool result = ( bArray[ readOffset >> 3 ] & ( 0x80 >> ( readOffset & 7 ) ) ) !=0; + + if (result==true) + variableList[readOffset].isDirty=true; + } +} +VariableListDeltaTracker::VariableLastValueNode::VariableLastValueNode() +{ + lastData=0; +} +VariableListDeltaTracker::VariableLastValueNode::VariableLastValueNode(const unsigned char *data, int _byteLength) +{ + lastData=(char*) rakMalloc_Ex(_byteLength,_FILE_AND_LINE_); + memcpy(lastData,data,_byteLength); + byteLength=_byteLength; + isDirty=false; +} +VariableListDeltaTracker::VariableLastValueNode::~VariableLastValueNode() +{ +} diff --git a/src/raknet/VariableListDeltaTracker.h b/src/raknet/VariableListDeltaTracker.h new file mode 100755 index 0000000..5b55d3e --- /dev/null +++ b/src/raknet/VariableListDeltaTracker.h @@ -0,0 +1,131 @@ +#include "NativeTypes.h" +#include "DS_List.h" +#include "RakMemoryOverride.h" +#include "BitStream.h" + +namespace RakNet +{ +/// Class to write a series of variables, copy the contents to memory, and return if the newly written value is different than what was last written +/// Can also encode the reads, writes, and results directly to/from a bitstream +class VariableListDeltaTracker +{ +public: + VariableListDeltaTracker(); + ~VariableListDeltaTracker(); + + // Call before using a series of WriteVar + void StartWrite(void); + + bool IsPastEndOfList(void) const {return nextWriteIndex>=variableList.Size();} + + /// Records the passed value of the variable to memory, and returns true if the value is different from the write before that (or if it is the first write) + /// \pre Call StartWrite() before doing the first of a series of calls to WriteVar or other functions that call WriteVar + /// \note Variables must be of the same type, written in the same order, each time + template + bool WriteVar(const VarType &varData) + { + RakNet::BitStream temp; + temp.Write(varData); + if (nextWriteIndex>=variableList.Size()) + { + variableList.Push(VariableLastValueNode(temp.GetData(),temp.GetNumberOfBytesUsed()),_FILE_AND_LINE_); + nextWriteIndex++; + return true; // Different because it's new + } + + if (temp.GetNumberOfBytesUsed()!=variableList[nextWriteIndex].byteLength) + { + variableList[nextWriteIndex].lastData=(char*) rakRealloc_Ex(variableList[nextWriteIndex].lastData, temp.GetNumberOfBytesUsed(),_FILE_AND_LINE_); + variableList[nextWriteIndex].byteLength=temp.GetNumberOfBytesUsed(); + memcpy(variableList[nextWriteIndex].lastData,temp.GetData(),temp.GetNumberOfBytesUsed()); + nextWriteIndex++; + variableList[nextWriteIndex].isDirty=false; + return true; // Different because the serialized size is different + } + if (variableList[nextWriteIndex].isDirty==false && memcmp(temp.GetData(),variableList[nextWriteIndex].lastData, variableList[nextWriteIndex].byteLength)==0) + { + nextWriteIndex++; + return false; // Same because not dirty and memcmp is the same + } + + variableList[nextWriteIndex].isDirty=false; + memcpy(variableList[nextWriteIndex].lastData,temp.GetData(),temp.GetNumberOfBytesUsed()); + nextWriteIndex++; + return true; // Different because dirty or memcmp was different + } + /// Calls WriteVar. If the variable has changed, writes true, and writes the variable. Otherwise writes false. + template + bool WriteVarToBitstream(const VarType &varData, RakNet::BitStream *bitStream) + { + bool wasDifferent = WriteVar(varData); + bitStream->Write(wasDifferent); + if (wasDifferent) + { + bitStream->Write(varData); + return true; + } + return false; + } + /// Calls WriteVarToBitstream(). Additionally, adds the boolean result of WriteVar() to boolean bit array + template + bool WriteVarToBitstream(const VarType &varData, RakNet::BitStream *bitStream, unsigned char *bArray, unsigned short writeOffset) + { + if (WriteVarToBitstream(varData,bitStream)==true) + { + BitSize_t numberOfBitsMod8 = writeOffset & 7; + + if ( numberOfBitsMod8 == 0 ) + bArray[ writeOffset >> 3 ] = 0x80; + else + bArray[ writeOffset >> 3 ] |= 0x80 >> ( numberOfBitsMod8 ); // Set the bit to 1 + + return true; + } + else + { + if ( ( writeOffset & 7 ) == 0 ) + bArray[ writeOffset >> 3 ] = 0; + + return false; + } + } + + /// Paired with a call to WriteVarToBitstream(), will read a variable if it had changed. Otherwise the values remains the same. + template + static bool ReadVarFromBitstream(const VarType &varData, RakNet::BitStream *bitStream) + { + bool wasWritten; + if (bitStream->Read(wasWritten)==false) + return false; + if (wasWritten) + { + if (bitStream->Read(varData)==false) + return false; + } + return wasWritten; + } + + /// Variables flagged dirty will cause WriteVar() to return true, even if the variable had not otherwise changed + /// This updates all the variables in the list, where in each index \a varsWritten is true, so will the variable at the corresponding index be flagged dirty + void FlagDirtyFromBitArray(unsigned char *bArray); + + /// \internal + struct VariableLastValueNode + { + VariableLastValueNode(); + VariableLastValueNode(const unsigned char *data, int _byteLength); + ~VariableLastValueNode(); + char *lastData; + unsigned int byteLength; + bool isDirty; + }; + +protected: + /// \internal + DataStructures::List variableList; + /// \internal + unsigned int nextWriteIndex; +}; + + +} diff --git a/src/raknet/VariadicSQLParser.cpp b/src/raknet/VariadicSQLParser.cpp new file mode 100755 index 0000000..bc8e3fc --- /dev/null +++ b/src/raknet/VariadicSQLParser.cpp @@ -0,0 +1,150 @@ +#include "VariadicSQLParser.h" +#include "BitStream.h" +#include + +using namespace VariadicSQLParser; + +struct TypeMapping +{ + char inputType; + const char *type; +}; +const int NUM_TYPE_MAPPINGS=7; +TypeMapping typeMappings[NUM_TYPE_MAPPINGS] = +{ + {'i', "int"}, + {'d', "int"}, + {'s', "text"}, + {'b', "bool"}, + {'f', "numeric"}, + {'g', "double precision"}, + {'a', "bytea"}, +}; +unsigned int GetTypeMappingIndex(char c) +{ + unsigned int i; + for (i=0; i < (unsigned int) NUM_TYPE_MAPPINGS; i++ ) + if (typeMappings[i].inputType==c) + return i; + return (unsigned int)-1; +} +const char* VariadicSQLParser::GetTypeMappingAtIndex(int i) +{ + return typeMappings[i].type; +} +void VariadicSQLParser::GetTypeMappingIndices( const char *format, DataStructures::List &indices ) +{ + bool previousCharWasPercentSign; + unsigned int i; + unsigned int typeMappingIndex; + indices.Clear(false, _FILE_AND_LINE_); + unsigned int len = (unsigned int) strlen(format); + previousCharWasPercentSign=false; + for (i=0; i < len; i++) + { + if (previousCharWasPercentSign==true ) + { + typeMappingIndex = GetTypeMappingIndex(format[i]); + if (typeMappingIndex!=(unsigned int) -1) + { + IndexAndType iat; + iat.strIndex=i-1; + iat.typeMappingIndex=typeMappingIndex; + indices.Insert(iat, _FILE_AND_LINE_ ); + } + } + + previousCharWasPercentSign=format[i]=='%'; + } +} +void VariadicSQLParser::ExtractArguments( va_list argptr, const DataStructures::List &indices, char ***argumentBinary, int **argumentLengths ) +{ + if (indices.Size()==0) + return; + + unsigned int i; + *argumentBinary=RakNet::OP_NEW_ARRAY(indices.Size(), _FILE_AND_LINE_); + *argumentLengths=RakNet::OP_NEW_ARRAY(indices.Size(), _FILE_AND_LINE_); + + char **paramData=*argumentBinary; + int *paramLength=*argumentLengths; + + int variadicArgIndex; + for (variadicArgIndex=0, i=0; i < indices.Size(); i++, variadicArgIndex++) + { + switch (typeMappings[indices[i].typeMappingIndex].inputType) + { + case 'i': + case 'd': + { + int val = va_arg( argptr, int ); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + case 's': + { + char* val = va_arg( argptr, char* ); + paramLength[i]=(int) strlen(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i]+1, _FILE_AND_LINE_); + memcpy(paramData[i], val, paramLength[i]+1); + } + break; + case 'b': + { + bool val = (va_arg( argptr, int )!=0); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + /* + case 'f': + { + // On MSVC at least, this only works with double as the 2nd param + float val = (float) va_arg( argptr, double ); + //float val = va_arg( argptr, float ); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + */ + // On MSVC at least, this only works with double as the 2nd param + case 'f': + case 'g': + { + double val = va_arg( argptr, double ); + paramLength[i]=sizeof(val); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], &val, paramLength[i]); + if (RakNet::BitStream::IsNetworkOrder()==false) RakNet::BitStream::ReverseBytesInPlace((unsigned char*) paramData[i], paramLength[i]); + } + break; + case 'a': + { + char* val = va_arg( argptr, char* ); + paramLength[i]=va_arg( argptr, unsigned int ); + paramData[i]=(char*) rakMalloc_Ex(paramLength[i], _FILE_AND_LINE_); + memcpy(paramData[i], val, paramLength[i]); + } + break; + } + } + +} +void VariadicSQLParser::FreeArguments(const DataStructures::List &indices, char **argumentBinary, int *argumentLengths) +{ + if (indices.Size()==0) + return; + + unsigned int i; + for (i=0; i < indices.Size(); i++) + rakFree_Ex(argumentBinary[i],_FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(argumentBinary,_FILE_AND_LINE_); + RakNet::OP_DELETE_ARRAY(argumentLengths,_FILE_AND_LINE_); +} diff --git a/src/raknet/VariadicSQLParser.h b/src/raknet/VariadicSQLParser.h new file mode 100755 index 0000000..a176751 --- /dev/null +++ b/src/raknet/VariadicSQLParser.h @@ -0,0 +1,24 @@ +#ifndef __VARIADIC_SQL_PARSER_H +#define __VARIADIC_SQL_PARSER_H + +#include "DS_List.h" + +#include + +namespace VariadicSQLParser +{ + struct IndexAndType + { + unsigned int strIndex; + unsigned int typeMappingIndex; + }; + const char* GetTypeMappingAtIndex(int i); + void GetTypeMappingIndices( const char *format, DataStructures::List &indices ); + // Given an SQL string with variadic arguments, allocate argumentBinary and argumentLengths, and hold the parameters in binary format + // Last 2 parameters are out parameters + void ExtractArguments( va_list argptr, const DataStructures::List &indices, char ***argumentBinary, int **argumentLengths ); + void FreeArguments(const DataStructures::List &indices, char **argumentBinary, int *argumentLengths); +} + + +#endif diff --git a/src/raknet/VitaIncludes.cpp b/src/raknet/VitaIncludes.cpp new file mode 100755 index 0000000..fa0e62d --- /dev/null +++ b/src/raknet/VitaIncludes.cpp @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/VitaIncludes.h b/src/raknet/VitaIncludes.h new file mode 100755 index 0000000..062dad9 --- /dev/null +++ b/src/raknet/VitaIncludes.h @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/WSAStartupSingleton.cpp b/src/raknet/WSAStartupSingleton.cpp new file mode 100755 index 0000000..17e848b --- /dev/null +++ b/src/raknet/WSAStartupSingleton.cpp @@ -0,0 +1,75 @@ +#include "WSAStartupSingleton.h" + + + + + +#if defined(_WIN32) +#include +#include + + + + + +#endif +#include "RakNetDefines.h" +#include + +int WSAStartupSingleton::refCount=0; + +WSAStartupSingleton::WSAStartupSingleton() {} +WSAStartupSingleton::~WSAStartupSingleton() {} +void WSAStartupSingleton::AddRef(void) +{ +#ifdef _WIN32 + + refCount++; + + if (refCount!=1) + return; + + + + + + WSADATA winsockInfo; + if ( WSAStartup( MAKEWORD( 2, 2 ), &winsockInfo ) != 0 ) + { +#if defined(_DEBUG) + DWORD dwIOError = GetLastError(); + LPVOID messageBuffer; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language + ( LPTSTR ) & messageBuffer, 0, NULL ); + // something has gone wrong here... + RAKNET_DEBUG_PRINTF( "WSAStartup failed:Error code - %d\n%s", dwIOError, messageBuffer ); + //Free the buffer. + LocalFree( messageBuffer ); +#endif + } + +#endif +} +void WSAStartupSingleton::Deref(void) +{ +#ifdef _WIN32 + if (refCount==0) + return; + + if (refCount>1) + { + refCount--; + return; + } + + WSACleanup(); + + + + + + + refCount=0; +#endif +} diff --git a/src/raknet/WSAStartupSingleton.h b/src/raknet/WSAStartupSingleton.h new file mode 100755 index 0000000..d2930fe --- /dev/null +++ b/src/raknet/WSAStartupSingleton.h @@ -0,0 +1,16 @@ +#ifndef __WSA_STARTUP_SINGLETON_H +#define __WSA_STARTUP_SINGLETON_H + +class WSAStartupSingleton +{ +public: + WSAStartupSingleton(); + ~WSAStartupSingleton(); + static void AddRef(void); + static void Deref(void); + +protected: + static int refCount; +}; + +#endif diff --git a/src/raknet/WindowsIncludes.h b/src/raknet/WindowsIncludes.h new file mode 100755 index 0000000..7e504dc --- /dev/null +++ b/src/raknet/WindowsIncludes.h @@ -0,0 +1,17 @@ +#if defined(X360__) +#elif defined (_WIN32) +#include +#include +#include + +// Must always include Winsock2.h before windows.h +// or else: +// winsock2.h(99) : error C2011: 'fd_set' : 'struct' type redefinition +// winsock2.h(134) : warning C4005: 'FD_SET' : macro redefinition +// winsock.h(83) : see previous definition of 'FD_SET' +// winsock2.h(143) : error C2011: 'timeval' : 'struct' type redefinition +// winsock2.h(199) : error C2011: 'hostent' : 'struct' type redefinition +// winsock2.h(212) : error C2011: 'netent' : 'struct' type redefinition +// winsock2.h(219) : error C2011: 'servent' : 'struct' type redefinition + +#endif diff --git a/src/raknet/XBox360Includes.h b/src/raknet/XBox360Includes.h new file mode 100755 index 0000000..7896bec --- /dev/null +++ b/src/raknet/XBox360Includes.h @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/raknet/_FindFirst.cpp b/src/raknet/_FindFirst.cpp new file mode 100755 index 0000000..6db92ac --- /dev/null +++ b/src/raknet/_FindFirst.cpp @@ -0,0 +1,159 @@ +/** +* Original file by the_viking, fixed by R√¥mulo Fernandes, fixed by Emmanuel Nars +* Should emulate windows finddata structure +*/ +#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(_WIN32) +#include "_FindFirst.h" +#include "DS_List.h" + +#include + +#include + + +static DataStructures::List< _findinfo_t* > fileInfo; + +#include "RakMemoryOverride.h" +#include "RakAssert.h" + +/** +* _findfirst - equivalent +*/ +long _findfirst(const char *name, _finddata_t *f) +{ + RakNet::RakString nameCopy = name; + RakNet::RakString filter; + + // This is linux only, so don't bother with '\' + const char* lastSep = strrchr(name,'/'); + if(!lastSep) + { + // filter pattern only is given, search current directory. + filter = nameCopy; + nameCopy = "."; + } else + { + // strip filter pattern from directory name, leave + // trailing '/' intact. + filter = lastSep+1; + unsigned sepIndex = lastSep - name; + nameCopy.Erase(sepIndex+1, nameCopy.GetLength() - sepIndex-1); + } + + DIR* dir = opendir(nameCopy); + + if(!dir) return -1; + + _findinfo_t* fi = RakNet::OP_NEW<_findinfo_t>( _FILE_AND_LINE_ ); + fi->filter = filter; + fi->dirName = nameCopy; // we need to remember this for stat() + fi->openedDir = dir; + fileInfo.Insert(fi, _FILE_AND_LINE_); + + long ret = fileInfo.Size()-1; + + // Retrieve the first file. We cannot rely on the first item + // being '.' + if (_findnext(ret, f) == -1) return -1; + else return ret; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +int _findnext(long h, _finddata_t *f) +{ + RakAssert(h >= 0 && h < (long)fileInfo.Size()); + if (h < 0 || h >= (long)fileInfo.Size()) return -1; + + _findinfo_t* fi = fileInfo[h]; + + while(true) + { + dirent* entry = readdir(fi->openedDir); + if(entry == 0) return -1; + + // Only report stuff matching our filter + if (fnmatch(fi->filter, entry->d_name, FNM_PATHNAME) != 0) continue; + + // To reliably determine the entry's type, we must do + // a stat... don't rely on entry->d_type, as this + // might be unavailable! + struct stat filestat; + RakNet::RakString fullPath = fi->dirName + entry->d_name; + if (stat(fullPath, &filestat) != 0) + { + RAKNET_DEBUG_PRINTF("Cannot stat %s\n", fullPath.C_String()); + continue; + } + + if (S_ISREG(filestat.st_mode)) + { + f->attrib = _A_NORMAL; + } else if (S_ISDIR(filestat.st_mode)) + { + f->attrib = _A_SUBDIR; + } else continue; // We are interested in files and + // directories only. Links currently + // are not supported. + + f->size = filestat.st_size; + strncpy(f->name, entry->d_name, STRING_BUFFER_SIZE); + + return 0; + } + + return -1; +} + + + + + +/** + * _findclose - equivalent + */ +int _findclose(long h) +{ + if (h==-1) return 0; + + if (h < 0 || h >= (long)fileInfo.Size()) + { + RakAssert(false); + return -1; + } + + _findinfo_t* fi = fileInfo[h]; + closedir(fi->openedDir); + fileInfo.RemoveAtIndex(h); + RakNet::OP_DELETE(fi, _FILE_AND_LINE_); + return 0; +} +#endif diff --git a/src/raknet/_FindFirst.h b/src/raknet/_FindFirst.h new file mode 100755 index 0000000..a664222 --- /dev/null +++ b/src/raknet/_FindFirst.h @@ -0,0 +1,56 @@ +/// +/// Original file by the_viking, fixed by Rômulo Fernandes +/// Should emulate windows finddata structure +/// + +#ifndef GCC_FINDFIRST_H +#define GCC_FINDFIRST_H + +#if (defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(__WIN32) + +#include + +#include "RakString.h" + +#define _A_NORMAL 0x00 // Normal file +#define _A_RDONLY 0x01 // Read-only file +#define _A_HIDDEN 0x02 // Hidden file +#define _A_SYSTEM 0x04 // System file +#define _A_VOLID 0x08 // Volume ID +#define _A_SUBDIR 0x10 // Subdirectory +#define _A_ARCH 0x20 // File changed since last archive +#define FA_NORMAL 0x00 // Synonym of _A_NORMAL +#define FA_RDONLY 0x01 // Synonym of _A_RDONLY +#define FA_HIDDEN 0x02 // Synonym of _A_HIDDEN +#define FA_SYSTEM 0x04 // Synonym of _A_SYSTEM +#define FA_LABEL 0x08 // Synonym of _A_VOLID +#define FA_DIREC 0x10 // Synonym of _A_SUBDIR +#define FA_ARCH 0x20 // Synonym of _A_ARCH + + +const unsigned STRING_BUFFER_SIZE = 512; + +typedef struct _finddata_t +{ + char name[STRING_BUFFER_SIZE]; + int attrib; + unsigned long size; +} _finddata; + +/** + * Hold information about the current search + */ +typedef struct _findinfo_t +{ + DIR* openedDir; + RakNet::RakString filter; + RakNet::RakString dirName; +} _findinfo; + +long _findfirst(const char *name, _finddata_t *f); +int _findnext(long h, _finddata_t *f); +int _findclose(long h); + +#endif +#endif + diff --git a/src/raknet/gettimeofday.cpp b/src/raknet/gettimeofday.cpp new file mode 100755 index 0000000..6b2e1c0 --- /dev/null +++ b/src/raknet/gettimeofday.cpp @@ -0,0 +1,55 @@ + + + + +#if defined(_WIN32) && !defined(__GNUC__) &&!defined(__GCCXML__) + +#include "gettimeofday.h" + +// From http://www.openasthra.com/c-tidbits/gettimeofday-function-for-windows/ + +#include "WindowsIncludes.h" + +#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) + #define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 +#else + #define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL +#endif + +int gettimeofday(struct timeval *tv, struct timezone *tz) +{ + FILETIME ft; + unsigned __int64 tmpres = 0; + static int tzflag; + + if (NULL != tv) + { + GetSystemTimeAsFileTime(&ft); + + tmpres |= ft.dwHighDateTime; + tmpres <<= 32; + tmpres |= ft.dwLowDateTime; + + /*converting file time to unix epoch*/ + tmpres /= 10; /*convert into microseconds*/ + tmpres -= DELTA_EPOCH_IN_MICROSECS; + tv->tv_sec = (long)(tmpres / 1000000UL); + tv->tv_usec = (long)(tmpres % 1000000UL); + } + + if (NULL != tz) + { + if (!tzflag) + { + _tzset(); + tzflag++; + } + tz->tz_minuteswest = _timezone / 60; + tz->tz_dsttime = _daylight; + } + + return 0; +} + +#endif + diff --git a/src/raknet/gettimeofday.h b/src/raknet/gettimeofday.h new file mode 100755 index 0000000..52c4207 --- /dev/null +++ b/src/raknet/gettimeofday.h @@ -0,0 +1,56 @@ +#ifndef __GET_TIME_OF_DAY_H +#define __GET_TIME_OF_DAY_H + +#if defined(_WIN32) && !defined(__GNUC__) &&!defined(__GCCXML__) +#include < time.h > +struct timezone +{ + int tz_minuteswest; /* minutes W of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; +int gettimeofday(struct timeval *tv, struct timezone *tz); + + +#else + + + + +#include + +#include + +// Uncomment this if you need to +/* +// http://www.halcode.com/archives/2008/08/26/retrieving-system-time-gettimeofday/ +struct timezone +{ + int tz_minuteswest; + int tz_dsttime; +}; + +#ifdef __cplusplus + +void GetSystemTimeAsFileTime(FILETIME*); + +inline int gettimeofday(struct timeval* p, void* tz ) +{ + union { + long long ns100; // time since 1 Jan 1601 in 100ns units + FILETIME ft; + } now; + + GetSystemTimeAsFileTime( &(now.ft) ); + p->tv_usec=(long)((now.ns100 / 10LL) % 1000000LL ); + p->tv_sec= (long)((now.ns100-(116444736000000000LL))/10000000LL); + return 0; +} + +#else + int gettimeofday(struct timeval* p, void* tz ); +#endif +*/ + +#endif + +#endif diff --git a/src/raknet/rdlmalloc-options.h b/src/raknet/rdlmalloc-options.h new file mode 100755 index 0000000..37e9887 --- /dev/null +++ b/src/raknet/rdlmalloc-options.h @@ -0,0 +1,28 @@ +#ifdef _RAKNET_SUPPORT_DL_MALLOC + +#ifndef __DLMALLOC_OPTIONS_H +#define __DLMALLOC_OPTIONS_H + +#include "NativeTypes.h" +#include "Export.h" +#include +#include + +#define MSPACES 1 +#define ONLY_MSPACES 1 +#define USE_DL_PREFIX 1 +#define NO_MALLINFO 1 +// Make it threadsafe +#define USE_LOCKS 1 + +extern RAK_DLL_EXPORT void * (*dlMallocMMap) (size_t size); +extern RAK_DLL_EXPORT void * (*dlMallocDirectMMap) (size_t size); +extern RAK_DLL_EXPORT int (*dlMallocMUnmap) (void* ptr, size_t size); + +#define MMAP(s) dlMallocMMap(s) +#define MUNMAP(a, s) dlMallocMUnmap((a), (s)) +#define DIRECT_MMAP(s) dlMallocDirectMMap(s) + +#endif + +#endif // _RAKNET_SUPPORT_DL_MALLOC \ No newline at end of file diff --git a/src/raknet/rdlmalloc.cpp b/src/raknet/rdlmalloc.cpp new file mode 100755 index 0000000..2eb71f0 --- /dev/null +++ b/src/raknet/rdlmalloc.cpp @@ -0,0 +1,4161 @@ +#ifdef _RAKNET_SUPPORT_DL_MALLOC + +#include "rdlmalloc.h" + +/* --------------------------- Lock preliminaries ------------------------ */ + +/* +When locks are defined, there is one global lock, plus +one per-mspace lock. + +The global lock_ensures that mparams.magic and other unique +mparams values are initialized only once. It also protects +sequences of calls to MORECORE. In many cases sys_alloc requires +two calls, that should not be interleaved with calls by other +threads. This does not protect against direct calls to MORECORE +by other threads not using this lock, so there is still code to +cope the best we can on interference. + +Per-mspace locks surround calls to malloc, free, etc. To enable use +in layered extensions, per-mspace locks are reentrant. + +Because lock-protected regions generally have bounded times, it is +OK to use the supplied simple spinlocks in the custom versions for +x86. Spinlocks are likely to improve performance for lightly +contended applications, but worsen performance under heavy +contention. + +If USE_LOCKS is > 1, the definitions of lock routines here are +bypassed, in which case you will need to define the type MLOCK_T, +and at least INITIAL_LOCK, ACQUIRE_LOCK, RELEASE_LOCK and possibly +TRY_LOCK (which is not used in this malloc, but commonly needed in +extensions.) You must also declare a +static MLOCK_T malloc_global_mutex = { initialization values };. + +*/ + +#if USE_LOCKS == 1 + +#if USE_SPIN_LOCKS && SPIN_LOCKS_AVAILABLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#if !defined(DL_PLATFORM_WIN32) + +/* Custom pthread-style spin locks on x86 and x64 for gcc */ +struct pthread_mlock_t { + volatile unsigned int l; + unsigned int c; + pthread_t threadid; +}; +#define MLOCK_T struct pthread_mlock_t +#define CURRENT_THREAD pthread_self() +#define INITIAL_LOCK(sl) ((sl)->threadid = 0, (sl)->l = (sl)->c = 0, 0) +#define ACQUIRE_LOCK(sl) pthread_acquire_lock(sl) +#define RELEASE_LOCK(sl) pthread_release_lock(sl) +#define TRY_LOCK(sl) pthread_try_lock(sl) +#define SPINS_PER_YIELD 63 + +static MLOCK_T malloc_global_mutex = { 0, 0, 0}; + +static FORCEINLINE int pthread_acquire_lock (MLOCK_T *sl) { + int spins = 0; + volatile unsigned int* lp = &sl->l; + for (;;) { + if (*lp != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 0; + } + } + else { + /* place args to cmpxchgl in locals to evade oddities in some gccs */ + int cmp = 0; + int val = 1; + int ret; + __asm__ __volatile__ ("lock; cmpxchgl %1, %2" + : "=a" (ret) + : "r" (val), "m" (*(lp)), "0"(cmp) + : "memory", "cc"); + if (!ret) { + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 0; + } + } + if ((++spins & SPINS_PER_YIELD) == 0) { +#if defined (__SVR4) && defined (__sun) /* solaris */ + thr_yield(); +#else +#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) + sched_yield(); +#else /* no-op yield on unknown systems */ + ; +#endif /* __linux__ || __FreeBSD__ || __APPLE__ */ +#endif /* solaris */ + } + } +} + +static FORCEINLINE void pthread_release_lock (MLOCK_T *sl) { + volatile unsigned int* lp = &sl->l; + assert(*lp != 0); + assert(sl->threadid == CURRENT_THREAD); + if (--sl->c == 0) { + sl->threadid = 0; + int prev = 0; + int ret; + __asm__ __volatile__ ("lock; xchgl %0, %1" + : "=r" (ret) + : "m" (*(lp)), "0"(prev) + : "memory"); + } +} + +static FORCEINLINE int pthread_try_lock (MLOCK_T *sl) { + volatile unsigned int* lp = &sl->l; + if (*lp != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 1; + } + } + else { + int cmp = 0; + int val = 1; + int ret; + __asm__ __volatile__ ("lock; cmpxchgl %1, %2" + : "=a" (ret) + : "r" (val), "m" (*(lp)), "0"(cmp) + : "memory", "cc"); + if (!ret) { + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 1; + } + } + return 0; +} + + +#else /* DL_PLATFORM_WIN32 */ +/* Custom win32-style spin locks on x86 and x64 for MSC */ +struct win32_mlock_t { + volatile long l; + unsigned int c; + long threadid; +}; + +#define MLOCK_T struct win32_mlock_t +#define CURRENT_THREAD GetCurrentThreadId() +#define INITIAL_LOCK(sl) ((sl)->threadid = 0, (sl)->l = (sl)->c = 0, 0) +#define ACQUIRE_LOCK(sl) win32_acquire_lock(sl) +#define RELEASE_LOCK(sl) win32_release_lock(sl) +#define TRY_LOCK(sl) win32_try_lock(sl) +#define SPINS_PER_YIELD 63 + +static MLOCK_T malloc_global_mutex = { 0, 0, 0}; + +static FORCEINLINE int win32_acquire_lock (MLOCK_T *sl) { + int spins = 0; + for (;;) { + if (sl->l != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 0; + } + } + else { + if (!interlockedexchange(&sl->l, 1)) { + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 0; + } + } + if ((++spins & SPINS_PER_YIELD) == 0) + SleepEx(0, FALSE); + } +} + +static FORCEINLINE void win32_release_lock (MLOCK_T *sl) { + assert(sl->threadid == CURRENT_THREAD); + assert(sl->l != 0); + if (--sl->c == 0) { + sl->threadid = 0; + interlockedexchange (&sl->l, 0); + } +} + +static FORCEINLINE int win32_try_lock (MLOCK_T *sl) { + if (sl->l != 0) { + if (sl->threadid == CURRENT_THREAD) { + ++sl->c; + return 1; + } + } + else { + if (!interlockedexchange(&sl->l, 1)){ + assert(!sl->threadid); + sl->threadid = CURRENT_THREAD; + sl->c = 1; + return 1; + } + } + return 0; +} + +#endif /* DL_PLATFORM_WIN32 */ +#else /* USE_SPIN_LOCKS */ + +#ifndef DL_PLATFORM_WIN32 +/* pthreads-based locks */ + +#define MLOCK_T pthread_mutex_t +#define CURRENT_THREAD pthread_self() +#define INITIAL_LOCK(sl) pthread_init_lock(sl) +#define ACQUIRE_LOCK(sl) pthread_mutex_lock(sl) +#define RELEASE_LOCK(sl) pthread_mutex_unlock(sl) +#define TRY_LOCK(sl) (!pthread_mutex_trylock(sl)) + +static MLOCK_T malloc_global_mutex = PTHREAD_MUTEX_INITIALIZER; + +/* Cope with old-style linux recursive lock initialization by adding */ +/* skipped internal declaration from pthread.h */ +#ifdef linux +#ifndef PTHREAD_MUTEX_RECURSIVE +extern int pthread_mutexattr_setkind_np __P ((pthread_mutexattr_t *__attr, + int __kind)); +#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP +#define pthread_mutexattr_settype(x,y) pthread_mutexattr_setkind_np(x,y) +#endif +#endif + +static int pthread_init_lock (MLOCK_T *sl) { + pthread_mutexattr_t attr; + if (pthread_mutexattr_init(&attr)) return 1; + if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1; + if (pthread_mutex_init(sl, &attr)) return 1; + if (pthread_mutexattr_destroy(&attr)) return 1; + return 0; +} + +#else /* DL_PLATFORM_WIN32 */ +/* Win32 critical sections */ +#define MLOCK_T CRITICAL_SECTION +#define CURRENT_THREAD GetCurrentThreadId() +#define INITIAL_LOCK(s) (!InitializeCriticalSectionAndSpinCount((s), 0x80000000|4000)) +#define ACQUIRE_LOCK(s) (EnterCriticalSection(sl), 0) +#define RELEASE_LOCK(s) LeaveCriticalSection(sl) +#define TRY_LOCK(s) TryEnterCriticalSection(sl) +#define NEED_GLOBAL_LOCK_INIT + +static MLOCK_T malloc_global_mutex; +static volatile long malloc_global_mutex_status; + +/* Use spin loop to initialize global lock */ +static void init_malloc_global_mutex() { + for (;;) { + long stat = malloc_global_mutex_status; + if (stat > 0) + return; + /* transition to < 0 while initializing, then to > 0) */ + if (stat == 0 && + interlockedcompareexchange(&malloc_global_mutex_status, -1, 0) == 0) { + InitializeCriticalSection(&malloc_global_mutex); + interlockedexchange(&malloc_global_mutex_status,1); + return; + } + SleepEx(0, FALSE); + } +} + +#endif /* DL_PLATFORM_WIN32 */ +#endif /* USE_SPIN_LOCKS */ +#endif /* USE_LOCKS == 1 */ + +/* ----------------------- User-defined locks ------------------------ */ + +#if USE_LOCKS > 1 +/* Define your own lock implementation here */ +/* #define INITIAL_LOCK(sl) ... */ +/* #define ACQUIRE_LOCK(sl) ... */ +/* #define RELEASE_LOCK(sl) ... */ +/* #define TRY_LOCK(sl) ... */ +/* static MLOCK_T malloc_global_mutex = ... */ +#endif /* USE_LOCKS > 1 */ + +/* ----------------------- Lock-based state ------------------------ */ + +#if USE_LOCKS +#define USE_LOCK_BIT (2U) +#else /* USE_LOCKS */ +#define USE_LOCK_BIT (0U) +#define INITIAL_LOCK(l) +#endif /* USE_LOCKS */ + +#if USE_LOCKS +#ifndef ACQUIRE_MALLOC_GLOBAL_LOCK +#define ACQUIRE_MALLOC_GLOBAL_LOCK() ACQUIRE_LOCK(&malloc_global_mutex); +#endif +#ifndef RELEASE_MALLOC_GLOBAL_LOCK +#define RELEASE_MALLOC_GLOBAL_LOCK() RELEASE_LOCK(&malloc_global_mutex); +#endif +#else /* USE_LOCKS */ +#define ACQUIRE_MALLOC_GLOBAL_LOCK() +#define RELEASE_MALLOC_GLOBAL_LOCK() +#endif /* USE_LOCKS */ + + +/* ----------------------- Chunk representations ------------------------ */ + +/* +(The following includes lightly edited explanations by Colin Plumb.) + +The malloc_chunk declaration below is misleading (but accurate and +necessary). It declares a "view" into memory allowing access to +necessary fields at known offsets from a given base. + +Chunks of memory are maintained using a `boundary tag' method as +originally described by Knuth. (See the paper by Paul Wilson +ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a survey of such +techniques.) Sizes of free chunks are stored both in the front of +each chunk and at the end. This makes consolidating fragmented +chunks into bigger chunks fast. The head fields also hold bits +representing whether chunks are free or in use. + +Here are some pictures to make it clearer. They are "exploded" to +show that the state of a chunk can be thought of as extending from +the high 31 bits of the head field of its header through the +prev_foot and PINUSE_BIT bit of the following chunk header. + +A chunk that's in use looks like: + +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of previous chunk (if P = 0) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| +| Size of this chunk 1| +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| | ++- -+ +| | ++- -+ +| : ++- size - sizeof(size_t) available payload bytes -+ +: | +chunk-> +- -+ +| | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| +| Size of next chunk (may or may not be in use) | +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +And if it's free, it looks like this: + +chunk-> +- -+ +| User payload (must be in use, or we would have merged!) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| +| Size of this chunk 0| +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Next pointer | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Prev pointer | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| : ++- size - sizeof(struct chunk) unused bytes -+ +: | +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of this chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| +| Size of next chunk (must be in use, or we would have merged)| +-+ +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| : ++- User payload -+ +: | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +|0| ++-+ +Note that since we always merge adjacent free chunks, the chunks +adjacent to a free chunk must be in use. + +Given a pointer to a chunk (which can be derived trivially from the +payload pointer) we can, in O(1) time, find out whether the adjacent +chunks are free, and if so, unlink them from the lists that they +are on and merge them with the current chunk. + +Chunks always begin on even word boundaries, so the mem portion +(which is returned to the user) is also on an even word boundary, and +thus at least double-word aligned. + +The P (PINUSE_BIT) bit, stored in the unused low-order bit of the +chunk size (which is always a multiple of two words), is an in-use +bit for the *previous* chunk. If that bit is *clear*, then the +word before the current chunk size contains the previous chunk +size, and can be used to find the front of the previous chunk. +The very first chunk allocated always has this bit set, preventing +access to non-existent (or non-owned) memory. If pinuse is set for +any given chunk, then you CANNOT determine the size of the +previous chunk, and might even get a memory addressing fault when +trying to do so. + +The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of +the chunk size redundantly records whether the current chunk is +inuse (unless the chunk is mmapped). This redundancy enables usage +checks within free and realloc, and reduces indirection when freeing +and consolidating chunks. + +Each freshly allocated chunk must have both cinuse and pinuse set. +That is, each allocated chunk borders either a previously allocated +and still in-use chunk, or the base of its memory arena. This is +ensured by making all allocations from the the `lowest' part of any +found chunk. Further, no free chunk physically borders another one, +so each free chunk is known to be preceded and followed by either +inuse chunks or the ends of memory. + +Note that the `foot' of the current chunk is actually represented +as the prev_foot of the NEXT chunk. This makes it easier to +deal with alignments etc but can be very confusing when trying +to extend or adapt this code. + +The exceptions to all this are + +1. The special chunk `top' is the top-most available chunk (i.e., +the one bordering the end of available memory). It is treated +specially. Top is never included in any bin, is used only if +no other chunk is available, and is released back to the +system if it is very large (see M_TRIM_THRESHOLD). In effect, +the top chunk is treated as larger (and thus less well +fitting) than any other available chunk. The top chunk +doesn't update its trailing size field since there is no next +contiguous chunk that would have to index off it. However, +space is still allocated for it (TOP_FOOT_SIZE) to enable +separation or merging when space is extended. + +3. Chunks allocated via mmap, have both cinuse and pinuse bits +cleared in their head fields. Because they are allocated +one-by-one, each must carry its own prev_foot field, which is +also used to hold the offset this chunk has within its mmapped +region, which is needed to preserve alignment. Each mmapped +chunk is trailed by the first two fields of a fake next-chunk +for sake of usage checks. + +*/ + +struct malloc_chunk { + size_t prev_foot; /* Size of previous chunk (if free). */ + size_t head; /* Size and inuse bits. */ + struct malloc_chunk* fd; /* double links -- used only if free. */ + struct malloc_chunk* bk; +}; + +typedef struct malloc_chunk mchunk; +typedef struct malloc_chunk* mchunkptr; +typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */ +typedef unsigned int bindex_t; /* Described below */ +typedef unsigned int binmap_t; /* Described below */ +typedef unsigned int flag_t; /* The type of various bit flag sets */ + +/* ------------------- Chunks sizes and alignments ----------------------- */ + +#define MCHUNK_SIZE (sizeof(mchunk)) + +#if FOOTERS +#define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +#else /* FOOTERS */ +#define CHUNK_OVERHEAD (SIZE_T_SIZE) +#endif /* FOOTERS */ + +/* MMapped chunks need a second word of overhead ... */ +#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +/* ... and additional padding for fake next-chunk at foot */ +#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES) + +/* The smallest size we can malloc is an aligned minimal chunk */ +#define MIN_CHUNK_SIZE\ + ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* conversion from malloc headers to user pointers, and back */ +#define chunk2mem(p) ((void*)((char*)(p) + TWO_SIZE_T_SIZES)) +#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - TWO_SIZE_T_SIZES)) +/* chunk associated with aligned address A */ +#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A))) + +/* Bounds on request (not chunk) sizes. */ +#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2) +#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE) + +/* pad request bytes into a usable size */ +#define pad_request(req) \ + (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* pad request, checking for minimum (but not maximum) */ +#define request2size(req) \ + (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req)) + + +/* ------------------ Operations on head and foot fields ----------------- */ + +/* +The head field of a chunk is or'ed with PINUSE_BIT when previous +adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in +use, unless mmapped, in which case both bits are cleared. + +FLAG4_BIT is not used by this malloc, but might be useful in extensions. +*/ + +#define PINUSE_BIT (SIZE_T_ONE) +#define CINUSE_BIT (SIZE_T_TWO) +#define FLAG4_BIT (SIZE_T_FOUR) +#define INUSE_BITS (PINUSE_BIT|CINUSE_BIT) +#define FLAG_BITS (PINUSE_BIT|CINUSE_BIT|FLAG4_BIT) + +/* Head value for fenceposts */ +#define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE) + +/* extraction of fields from head words */ +#define cinuse(p) ((p)->head & CINUSE_BIT) +#define pinuse(p) ((p)->head & PINUSE_BIT) +#define is_inuse(p) (((p)->head & INUSE_BITS) != PINUSE_BIT) +#define is_mmapped(p) (((p)->head & INUSE_BITS) == 0) + +#define chunksize(p) ((p)->head & ~(FLAG_BITS)) + +#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT) + +/* Treat space at ptr +/- offset as a chunk */ +#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) +#define chunk_minus_offset(p, s) ((mchunkptr)(((char*)(p)) - (s))) + +/* Ptr to next or previous physical malloc_chunk. */ +#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->head & ~FLAG_BITS))) +#define prev_chunk(p) ((mchunkptr)( ((char*)(p)) - ((p)->prev_foot) )) + +/* extract next chunk's pinuse bit */ +#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT) + +/* Get/set size at footer */ +#define get_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot) +#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot = (s)) + +/* Set size, pinuse bit, and foot */ +#define set_size_and_pinuse_of_free_chunk(p, s)\ + ((p)->head = (s|PINUSE_BIT), set_foot(p, s)) + +/* Set size, pinuse bit, foot, and clear next pinuse */ +#define set_free_with_pinuse(p, s, n)\ + (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s)) + +/* Get the internal overhead associated with chunk p */ +#define overhead_for(p)\ + (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) + +/* Return true if malloced space is not necessarily cleared */ +#if MMAP_CLEARS +#define calloc_must_clear(p) (!is_mmapped(p)) +#else /* MMAP_CLEARS */ +#define calloc_must_clear(p) (1) +#endif /* MMAP_CLEARS */ + +/* ---------------------- Overlaid data structures ----------------------- */ + +/* +When chunks are not in use, they are treated as nodes of either +lists or trees. + +"Small" chunks are stored in circular doubly-linked lists, and look +like this: + +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of previous chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`head:' | Size of chunk, in bytes |P| +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Forward pointer to next chunk in list | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Back pointer to previous chunk in list | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Unused space (may be 0 bytes long) . +. . +. | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`foot:' | Size of chunk, in bytes | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Larger chunks are kept in a form of bitwise digital trees (aka +tries) keyed on chunksizes. Because malloc_tree_chunks are only for +free chunks greater than 256 bytes, their size doesn't impose any +constraints on user chunk sizes. Each node looks like: + +chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Size of previous chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`head:' | Size of chunk, in bytes |P| +mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Forward pointer to next chunk of same size | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Back pointer to previous chunk of same size | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Pointer to left child (child[0]) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Pointer to right child (child[1]) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Pointer to parent | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| bin index of this chunk | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Unused space . +. | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +`foot:' | Size of chunk, in bytes | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Each tree holding treenodes is a tree of unique chunk sizes. Chunks +of the same size are arranged in a circularly-linked list, with only +the oldest chunk (the next to be used, in our FIFO ordering) +actually in the tree. (Tree members are distinguished by a non-null +parent pointer.) If a chunk with the same size an an existing node +is inserted, it is linked off the existing node using pointers that +work in the same way as fd/bk pointers of small chunks. + +Each tree contains a power of 2 sized range of chunk sizes (the +smallest is 0x100 <= x < 0x180), which is is divided in half at each +tree level, with the chunks in the smaller half of the range (0x100 +<= x < 0x140 for the top nose) in the left subtree and the larger +half (0x140 <= x < 0x180) in the right subtree. This is, of course, +done by inspecting individual bits. + +Using these rules, each node's left subtree contains all smaller +sizes than its right subtree. However, the node at the root of each +subtree has no particular ordering relationship to either. (The +dividing line between the subtree sizes is based on trie relation.) +If we remove the last chunk of a given size from the interior of the +tree, we need to replace it with a leaf node. The tree ordering +rules permit a node to be replaced by any leaf below it. + +The smallest chunk in a tree (a common operation in a best-fit +allocator) can be found by walking a path to the leftmost leaf in +the tree. Unlike a usual binary tree, where we follow left child +pointers until we reach a null, here we follow the right child +pointer any time the left one is null, until we reach a leaf with +both child pointers null. The smallest chunk in the tree will be +somewhere along that path. + +The worst case number of steps to add, find, or remove a node is +bounded by the number of bits differentiating chunks within +bins. Under current bin calculations, this ranges from 6 up to 21 +(for 32 bit sizes) or up to 53 (for 64 bit sizes). The typical case +is of course much better. +*/ + +struct malloc_tree_chunk { + /* The first four fields must be compatible with malloc_chunk */ + size_t prev_foot; + size_t head; + struct malloc_tree_chunk* fd; + struct malloc_tree_chunk* bk; + + struct malloc_tree_chunk* child[2]; + struct malloc_tree_chunk* parent; + bindex_t index; +}; + +typedef struct malloc_tree_chunk tchunk; +typedef struct malloc_tree_chunk* tchunkptr; +typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */ + +/* A little helper macro for trees */ +#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1]) + +/* ----------------------------- Segments -------------------------------- */ + +/* +Each malloc space may include non-contiguous segments, held in a +list headed by an embedded malloc_segment record representing the +top-most space. Segments also include flags holding properties of +the space. Large chunks that are directly allocated by mmap are not +included in this list. They are instead independently created and +destroyed without otherwise keeping track of them. + +Segment management mainly comes into play for spaces allocated by +MMAP. Any call to MMAP might or might not return memory that is +adjacent to an existing segment. MORECORE normally contiguously +extends the current space, so this space is almost always adjacent, +which is simpler and faster to deal with. (This is why MORECORE is +used preferentially to MMAP when both are available -- see +sys_alloc.) When allocating using MMAP, we don't use any of the +hinting mechanisms (inconsistently) supported in various +implementations of unix mmap, or distinguish reserving from +committing memory. Instead, we just ask for space, and exploit +contiguity when we get it. It is probably possible to do +better than this on some systems, but no general scheme seems +to be significantly better. + +Management entails a simpler variant of the consolidation scheme +used for chunks to reduce fragmentation -- new adjacent memory is +normally prepended or appended to an existing segment. However, +there are limitations compared to chunk consolidation that mostly +reflect the fact that segment processing is relatively infrequent +(occurring only when getting memory from system) and that we +don't expect to have huge numbers of segments: + +* Segments are not indexed, so traversal requires linear scans. (It +would be possible to index these, but is not worth the extra +overhead and complexity for most programs on most platforms.) +* New segments are only appended to old ones when holding top-most +memory; if they cannot be prepended to others, they are held in +different segments. + +Except for the top-most segment of an mstate, each segment record +is kept at the tail of its segment. Segments are added by pushing +segment records onto the list headed by &mstate.seg for the +containing mstate. + +Segment flags control allocation/merge/deallocation policies: +* If EXTERN_BIT set, then we did not allocate this segment, +and so should not try to deallocate or merge with others. +(This currently holds only for the initial segment passed +into rak_create_mspace_with_base.) +* If USE_MMAP_BIT set, the segment may be merged with +other surrounding mmapped segments and trimmed/de-allocated +using munmap. +* If neither bit is set, then the segment was obtained using +MORECORE so can be merged with surrounding MORECORE'd segments +and deallocated/trimmed using MORECORE with negative arguments. +*/ + +struct malloc_segment { + char* base; /* base address */ + size_t size; /* allocated size */ + struct malloc_segment* next; /* ptr to next segment */ + flag_t sflags; /* mmap and extern flag */ +}; + +#define is_mmapped_segment(S) ((S)->sflags & USE_MMAP_BIT) +#define is_extern_segment(S) ((S)->sflags & EXTERN_BIT) + +typedef struct malloc_segment msegment; +typedef struct malloc_segment* msegmentptr; + +/* ---------------------------- malloc_state ----------------------------- */ + +/* +A malloc_state holds all of the bookkeeping for a space. +The main fields are: + +Top +The topmost chunk of the currently active segment. Its size is +cached in topsize. The actual size of topmost space is +topsize+TOP_FOOT_SIZE, which includes space reserved for adding +fenceposts and segment records if necessary when getting more +space from the system. The size at which to autotrim top is +cached from mparams in trim_check, except that it is disabled if +an autotrim fails. + +Designated victim (dv) +This is the preferred chunk for servicing small requests that +don't have exact fits. It is normally the chunk split off most +recently to service another small request. Its size is cached in +dvsize. The link fields of this chunk are not maintained since it +is not kept in a bin. + +SmallBins +An array of bin headers for free chunks. These bins hold chunks +with sizes less than MIN_LARGE_SIZE bytes. Each bin contains +chunks of all the same size, spaced 8 bytes apart. To simplify +use in double-linked lists, each bin header acts as a malloc_chunk +pointing to the real first node, if it exists (else pointing to +itself). This avoids special-casing for headers. But to avoid +waste, we allocate only the fd/bk pointers of bins, and then use +repositioning tricks to treat these as the fields of a chunk. + +TreeBins +Treebins are pointers to the roots of trees holding a range of +sizes. There are 2 equally spaced treebins for each power of two +from TREE_SHIFT to TREE_SHIFT+16. The last bin holds anything +larger. + +Bin maps +There is one bit map for small bins ("smallmap") and one for +treebins ("treemap). Each bin sets its bit when non-empty, and +clears the bit when empty. Bit operations are then used to avoid +bin-by-bin searching -- nearly all "search" is done without ever +looking at bins that won't be selected. The bit maps +conservatively use 32 bits per map word, even if on 64bit system. +For a good description of some of the bit-based techniques used +here, see Henry S. Warren Jr's book "Hacker's Delight" (and +supplement at http://hackersdelight.org/). Many of these are +intended to reduce the branchiness of paths through malloc etc, as +well as to reduce the number of memory locations read or written. + +Segments +A list of segments headed by an embedded malloc_segment record +representing the initial space. + +Address check support +The least_addr field is the least address ever obtained from +MORECORE or MMAP. Attempted frees and reallocs of any address less +than this are trapped (unless INSECURE is defined). + +Magic tag +A cross-check field that should always hold same value as mparams.magic. + +Flags +Bits recording whether to use MMAP, locks, or contiguous MORECORE + +Statistics +Each space keeps track of current and maximum system memory +obtained via MORECORE or MMAP. + +Trim support +Fields holding the amount of unused topmost memory that should trigger +timming, and a counter to force periodic scanning to release unused +non-topmost segments. + +Locking +If USE_LOCKS is defined, the "mutex" lock is acquired and released +around every public call using this mspace. + +Extension support +A void* pointer and a size_t field that can be used to help implement +extensions to this malloc. +*/ + +/* Bin types, widths and sizes */ +#define NSMALLBINS (32U) +#define NTREEBINS (32U) +#define SMALLBIN_SHIFT (3U) +#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT) +#define TREEBIN_SHIFT (8U) +#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT) +#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE) +#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD) + +struct malloc_state { + binmap_t smallmap; + binmap_t treemap; + size_t dvsize; + size_t topsize; + char* least_addr; + mchunkptr dv; + mchunkptr top; + size_t trim_check; + size_t release_checks; + size_t magic; + mchunkptr smallbins[(NSMALLBINS+1)*2]; + tbinptr treebins[NTREEBINS]; + size_t footprint; + size_t max_footprint; + flag_t mflags; +#if USE_LOCKS + MLOCK_T mutex; /* locate lock among fields that rarely change */ +#endif /* USE_LOCKS */ + msegment seg; + void* extp; /* Unused but available for extensions */ + size_t exts; +}; + +typedef struct malloc_state* mstate; + +/* ------------- Global malloc_state and malloc_params ------------------- */ + +/* +malloc_params holds global properties, including those that can be +dynamically set using mallopt. There is a single instance, mparams, +initialized in init_mparams. Note that the non-zeroness of "magic" +also serves as an initialization flag. +*/ + +struct malloc_params { + volatile size_t magic; + size_t page_size; + size_t granularity; + size_t mmap_threshold; + size_t trim_threshold; + flag_t default_mflags; +}; + +static struct malloc_params mparams; + +/* Ensure mparams initialized */ +#define ensure_initialization() (void)(mparams.magic != 0 || init_mparams()) + +#if !ONLY_MSPACES + +/* The global malloc_state used for all non-"mspace" calls */ +static struct malloc_state _gm_; +#define gm (&_gm_) +#define is_global(M) ((M) == &_gm_) + +#endif /* !ONLY_MSPACES */ + +#define is_initialized(M) ((M)->top != 0) + +/* -------------------------- system alloc setup ------------------------- */ + +/* Operations on mflags */ + +#define use_lock(M) ((M)->mflags & USE_LOCK_BIT) +#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT) +#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT) + +#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT) +#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT) +#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT) + +#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT) +#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT) + +#define set_lock(M,L)\ + ((M)->mflags = (L)?\ + ((M)->mflags | USE_LOCK_BIT) :\ + ((M)->mflags & ~USE_LOCK_BIT)) + +/* page-align a size */ +#define page_align(S)\ + (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE)) + +/* granularity-align a size */ +#define granularity_align(S)\ + (((S) + (mparams.granularity - SIZE_T_ONE))\ + & ~(mparams.granularity - SIZE_T_ONE)) + + +/* For mmap, use granularity alignment on windows, else page-align */ +#ifdef DL_PLATFORM_WIN32 +#define mmap_align(S) granularity_align(S) +#else +#define mmap_align(S) page_align(S) +#endif + +/* For sys_alloc, enough padding to ensure can malloc request on success */ +#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT) + +#define is_page_aligned(S)\ + (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0) +#define is_granularity_aligned(S)\ + (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0) + +/* True if segment S holds address A */ +#define segment_holds(S, A)\ + ((char*)(A) >= S->base && (char*)(A) < S->base + S->size) + +/* Return segment holding given address */ +static msegmentptr segment_holding(mstate m, char* addr) { + msegmentptr sp = &m->seg; + for (;;) { + if (addr >= sp->base && addr < sp->base + sp->size) + return sp; + if ((sp = sp->next) == 0) + return 0; + } +} + +/* Return true if segment contains a segment link */ +static int has_segment_link(mstate m, msegmentptr ss) { + msegmentptr sp = &m->seg; + for (;;) { + if ((char*)sp >= ss->base && (char*)sp < ss->base + ss->size) + return 1; + if ((sp = sp->next) == 0) + return 0; + } +} + +#ifndef MORECORE_CANNOT_TRIM +#define should_trim(M,s) ((s) > (M)->trim_check) +#else /* MORECORE_CANNOT_TRIM */ +#define should_trim(M,s) (0) +#endif /* MORECORE_CANNOT_TRIM */ + +/* +TOP_FOOT_SIZE is padding at the end of a segment, including space +that may be needed to place segment records and fenceposts when new +noncontiguous segments are added. +*/ +#define TOP_FOOT_SIZE\ + (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE) + + +/* ------------------------------- Hooks -------------------------------- */ + +/* +PREACTION should be defined to return 0 on success, and nonzero on +failure. If you are not using locking, you can redefine these to do +anything you like. +*/ + +#if USE_LOCKS + +#define PREACTION(M) ((use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0) +#define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); } +#else /* USE_LOCKS */ + +#ifndef PREACTION +#define PREACTION(M) (0) +#endif /* PREACTION */ + +#ifndef POSTACTION +#define POSTACTION(M) +#endif /* POSTACTION */ + +#endif /* USE_LOCKS */ + +/* +CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses. +USAGE_ERROR_ACTION is triggered on detected bad frees and +reallocs. The argument p is an address that might have triggered the +fault. It is ignored by the two predefined actions, but might be +useful in custom actions that try to help diagnose errors. +*/ + +#if PROCEED_ON_ERROR + +/* A count of the number of corruption errors causing resets */ +int malloc_corruption_error_count; + +/* default corruption action */ +static void reset_on_error(mstate m); + +#define CORRUPTION_ERROR_ACTION(m) reset_on_error(m) +#define USAGE_ERROR_ACTION(m, p) + +#else /* PROCEED_ON_ERROR */ + +#ifndef CORRUPTION_ERROR_ACTION +#define CORRUPTION_ERROR_ACTION(m) ABORT +#endif /* CORRUPTION_ERROR_ACTION */ + +#ifndef USAGE_ERROR_ACTION +#define USAGE_ERROR_ACTION(m,p) ABORT +#endif /* USAGE_ERROR_ACTION */ + +#endif /* PROCEED_ON_ERROR */ + +/* -------------------------- Debugging setup ---------------------------- */ + +#if ! DEBUG + +#define check_free_chunk(M,P) +#define check_inuse_chunk(M,P) +#define check_malloced_chunk(M,P,N) +#define check_mmapped_chunk(M,P) +#define check_malloc_state(M) +#define check_top_chunk(M,P) + +#else /* DEBUG */ +#define check_free_chunk(M,P) do_check_free_chunk(M,P) +#define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P) +#define check_top_chunk(M,P) do_check_top_chunk(M,P) +#define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N) +#define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P) +#define check_malloc_state(M) do_check_malloc_state(M) + +static void do_check_any_chunk(mstate m, mchunkptr p); +static void do_check_top_chunk(mstate m, mchunkptr p); +static void do_check_mmapped_chunk(mstate m, mchunkptr p); +static void do_check_inuse_chunk(mstate m, mchunkptr p); +static void do_check_free_chunk(mstate m, mchunkptr p); +static void do_check_malloced_chunk(mstate m, void* mem, size_t s); +static void do_check_tree(mstate m, tchunkptr t); +static void do_check_treebin(mstate m, bindex_t i); +static void do_check_smallbin(mstate m, bindex_t i); +static void do_check_malloc_state(mstate m); +static int bin_find(mstate m, mchunkptr x); +static size_t traverse_and_check(mstate m); +#endif /* DEBUG */ + +/* ---------------------------- Indexing Bins ---------------------------- */ + +#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) +#define small_index(s) ((s) >> SMALLBIN_SHIFT) +#define small_index2size(i) ((i) << SMALLBIN_SHIFT) +#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE)) + +/* addressing by index. See above about smallbin repositioning */ +#define smallbin_at(M, i) ((sbinptr)((char*)&((M)->smallbins[(i)<<1]))) +#define treebin_at(M,i) (&((M)->treebins[i])) + +/* assign tree index for size S to variable I. Use x86 asm if possible */ +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define compute_tree_index(S, I)\ +{\ + unsigned int X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K;\ + __asm__("bsrl\t%1, %0\n\t" : "=r" (K) : "g" (X));\ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ +}\ +} + +#elif defined (__INTEL_COMPILER) +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K = _bit_scan_reverse (X); \ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ +}\ +} + +#elif defined(_MSC_VER) && _MSC_VER>=1300 && defined(DL_PLATFORM_WIN32) +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K;\ + _BitScanReverse((DWORD *) &K, X);\ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ +}\ +} + +#else /* GNUC */ +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int Y = (unsigned int)X;\ + unsigned int N = ((Y - 0x100) >> 16) & 8;\ + unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4;\ + N += K;\ + N += K = (((Y <<= K) - 0x4000) >> 16) & 2;\ + K = 14 - N + ((Y <<= K) >> 15);\ + I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1));\ +}\ +} +#endif /* GNUC */ + +/* Bit representing maximum resolved size in a treebin at i */ +#define bit_for_tree_index(i) \ + (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2) + +/* Shift placing maximum resolved bit in a treebin at i as sign bit */ +#define leftshift_for_tree_index(i) \ + ((i == NTREEBINS-1)? 0 : \ + ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2))) + +/* The size of the smallest chunk held in bin with index i */ +#define minsize_for_tree_index(i) \ + ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | \ + (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1))) + + +/* ------------------------ Operations on bin maps ----------------------- */ + +/* bit corresponding to given index */ +#define idx2bit(i) ((binmap_t)(1) << (i)) + +/* Mark/Clear bits with given index */ +#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i)) +#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i)) +#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i)) + +#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i)) +#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i)) +#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i)) + +/* isolate the least set bit of a bitmap */ +#define least_bit(x) ((x) & -(x)) + +/* mask with all bits to left of least bit of x on */ +#define left_bits(x) ((x<<1) | -(x<<1)) + +/* mask with all bits to left of or equal to least bit of x on */ +#define same_or_left_bits(x) ((x) | -(x)) + +/* index corresponding to given bit. Use x86 asm if possible */ + +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + __asm__("bsfl\t%1, %0\n\t" : "=r" (J) : "g" (X));\ + I = (bindex_t)J;\ +} + +#elif defined (__INTEL_COMPILER) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + J = _bit_scan_forward (X); \ + I = (bindex_t)J;\ +} + +#elif defined(_MSC_VER) && _MSC_VER>=1300 && defined(DL_PLATFORM_WIN32) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + _BitScanForward((DWORD *) &J, X);\ + I = (bindex_t)J;\ +} + +#elif USE_BUILTIN_FFS +#define compute_bit2idx(X, I) I = ffs(X)-1 + +#else +#define compute_bit2idx(X, I)\ +{\ + unsigned int Y = X - 1;\ + unsigned int K = Y >> (16-4) & 16;\ + unsigned int N = K; Y >>= K;\ + N += K = Y >> (8-3) & 8; Y >>= K;\ + N += K = Y >> (4-2) & 4; Y >>= K;\ + N += K = Y >> (2-1) & 2; Y >>= K;\ + N += K = Y >> (1-0) & 1; Y >>= K;\ + I = (bindex_t)(N + Y);\ +} +#endif /* GNUC */ + + +/* ----------------------- Runtime Check Support ------------------------- */ + +/* +For security, the main invariant is that malloc/free/etc never +writes to a static address other than malloc_state, unless static +malloc_state itself has been corrupted, which cannot occur via +malloc (because of these checks). In essence this means that we +believe all pointers, sizes, maps etc held in malloc_state, but +check all of those linked or offsetted from other embedded data +structures. These checks are interspersed with main code in a way +that tends to minimize their run-time cost. + +When FOOTERS is defined, in addition to range checking, we also +verify footer fields of inuse chunks, which can be used guarantee +that the mstate controlling malloc/free is intact. This is a +streamlined version of the approach described by William Robertson +et al in "Run-time Detection of Heap-based Overflows" LISA'03 +http://www.usenix.org/events/lisa03/tech/robertson.html The footer +of an inuse chunk holds the xor of its mstate and a random seed, +that is checked upon calls to free() and realloc(). This is +(probablistically) unguessable from outside the program, but can be +computed by any code successfully malloc'ing any chunk, so does not +itself provide protection against code that has already broken +security through some other means. Unlike Robertson et al, we +always dynamically check addresses of all offset chunks (previous, +next, etc). This turns out to be cheaper than relying on hashes. +*/ + +#if !INSECURE +/* Check if address a is at least as high as any from MORECORE or MMAP */ +#define ok_address(M, a) ((char*)(a) >= (M)->least_addr) +/* Check if address of next chunk n is higher than base chunk p */ +#define ok_next(p, n) ((char*)(p) < (char*)(n)) +/* Check if p has inuse status */ +#define ok_inuse(p) is_inuse(p) +/* Check if p has its pinuse bit on */ +#define ok_pinuse(p) pinuse(p) + +#else /* !INSECURE */ +#define ok_address(M, a) (1) +#define ok_next(b, n) (1) +#define ok_inuse(p) (1) +#define ok_pinuse(p) (1) +#endif /* !INSECURE */ + +#if (FOOTERS && !INSECURE) +/* Check if (alleged) mstate m has expected magic field */ +#define ok_magic(M) ((M)->magic == mparams.magic) +#else /* (FOOTERS && !INSECURE) */ +#define ok_magic(M) (1) +#endif /* (FOOTERS && !INSECURE) */ + + +/* In gcc, use __builtin_expect to minimize impact of checks */ +#if !INSECURE +#if defined(__GNUC__) && __GNUC__ >= 3 +#define RTCHECK(e) __builtin_expect(e, 1) +#else /* GNUC */ +#define RTCHECK(e) (e) +#endif /* GNUC */ +#else /* !INSECURE */ +#define RTCHECK(e) (1) +#endif /* !INSECURE */ + +/* macros to set up inuse chunks with or without footers */ + +#if !FOOTERS + +#define mark_inuse_foot(M,p,s) + +/* Macros for setting head/foot of non-mmapped chunks */ + +/* Set cinuse bit and pinuse bit of next chunk */ +#define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT) + +/* Set cinuse and pinuse of this chunk and pinuse of next chunk */ +#define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT) + +/* Set size, cinuse and pinuse bit of this chunk */ +#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT)) + +#else /* FOOTERS */ + +/* Set foot of inuse chunk to be xor of mstate and seed */ +#define mark_inuse_foot(M,p,s)\ + (((mchunkptr)((char*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic)) + +#define get_mstate_for(p)\ + ((mstate)(((mchunkptr)((char*)(p) +\ + (chunksize(p))))->prev_foot ^ mparams.magic)) + +#define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT), \ + mark_inuse_foot(M,p,s)) + +#define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT),\ + mark_inuse_foot(M,p,s)) + +#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + mark_inuse_foot(M, p, s)) + +#endif /* !FOOTERS */ + +/* ---------------------------- setting mparams -------------------------- */ + +/* Initialize mparams */ +static int init_mparams(void) { + + if (malloc_global_mutex_status <= 0) + init_malloc_global_mutex(); + + + ACQUIRE_MALLOC_GLOBAL_LOCK(); + if (mparams.magic == 0) { + size_t magic; + size_t psize; + size_t gsize; + +#ifndef DL_PLATFORM_WIN32 + psize = malloc_getpagesize; + gsize = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : psize); +#else /* DL_PLATFORM_WIN32 */ + { + SYSTEM_INFO system_info; + GetSystemInfo(&system_info); + psize = system_info.dwPageSize; + gsize = ((DEFAULT_GRANULARITY != 0)? +DEFAULT_GRANULARITY : system_info.dwAllocationGranularity); + } +#endif /* DL_PLATFORM_WIN32 */ + + /* Sanity-check configuration: + size_t must be unsigned and as wide as pointer type. + ints must be at least 4 bytes. + alignment must be at least 8. + Alignment, min chunk size, and page size must all be powers of 2. + */ + if ((sizeof(size_t) != sizeof(char*)) || + (MAX_SIZE_T < MIN_CHUNK_SIZE) || + (sizeof(int) < 4) || + (MALLOC_ALIGNMENT < (size_t)8U) || + ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || + ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || + ((gsize & (gsize-SIZE_T_ONE)) != 0) || + ((psize & (psize-SIZE_T_ONE)) != 0)) + ABORT; + + mparams.granularity = gsize; + mparams.page_size = psize; + mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD; + mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD; +#if MORECORE_CONTIGUOUS + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT; +#else /* MORECORE_CONTIGUOUS */ + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT; +#endif /* MORECORE_CONTIGUOUS */ + +#if !ONLY_MSPACES + /* Set up lock for main malloc area */ + gm->mflags = mparams.default_mflags; + INITIAL_LOCK(&gm->mutex); +#endif + + { +#if USE_DEV_RANDOM + int fd; + unsigned char buf[sizeof(size_t)]; + /* Try to use /dev/urandom, else fall back on using time */ + if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 && + read(fd, buf, sizeof(buf)) == sizeof(buf)) { + magic = *((size_t *) buf); + close(fd); + } + else +#endif /* USE_DEV_RANDOM */ + + + +#if defined(DL_PLATFORM_WIN32) + magic = (size_t)(GetTickCount() ^ (size_t)0x55555555U); +#else + magic = (size_t)(time(0) ^ (size_t)0x55555555U); +#endif + magic |= (size_t)8U; /* ensure nonzero */ + magic &= ~(size_t)7U; /* improve chances of fault for bad values */ + mparams.magic = magic; + } + } + + RELEASE_MALLOC_GLOBAL_LOCK(); + return 1; +} + +/* support for mallopt */ +static int change_mparam(int param_number, int value) { + size_t val; + ensure_initialization(); + val = (value == -1)? MAX_SIZE_T : (size_t)value; + switch(param_number) { + case M_TRIM_THRESHOLD: + mparams.trim_threshold = val; + return 1; + case M_GRANULARITY: + if (val >= mparams.page_size && ((val & (val-1)) == 0)) { + mparams.granularity = val; + return 1; + } + else + return 0; + case M_MMAP_THRESHOLD: + mparams.mmap_threshold = val; + return 1; + default: + return 0; + } +} + +#if DEBUG +/* ------------------------- Debugging Support --------------------------- */ + +/* Check properties of any chunk, whether free, inuse, mmapped etc */ +static void do_check_any_chunk(mstate m, mchunkptr p) { + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); +} + +/* Check properties of top chunk */ +static void do_check_top_chunk(mstate m, mchunkptr p) { + msegmentptr sp = segment_holding(m, (char*)p); + size_t sz = p->head & ~INUSE_BITS; /* third-lowest bit can be set! */ + assert(sp != 0); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); + assert(sz == m->topsize); + assert(sz > 0); + assert(sz == ((sp->base + sp->size) - (char*)p) - TOP_FOOT_SIZE); + assert(pinuse(p)); + assert(!pinuse(chunk_plus_offset(p, sz))); +} + +/* Check properties of (inuse) mmapped chunks */ +static void do_check_mmapped_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + size_t len = (sz + (p->prev_foot) + MMAP_FOOT_PAD); + assert(is_mmapped(p)); + assert(use_mmap(m)); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); + assert(!is_small(sz)); + assert((len & (mparams.page_size-SIZE_T_ONE)) == 0); + assert(chunk_plus_offset(p, sz)->head == FENCEPOST_HEAD); + assert(chunk_plus_offset(p, sz+SIZE_T_SIZE)->head == 0); +} + +/* Check properties of inuse chunks */ +static void do_check_inuse_chunk(mstate m, mchunkptr p) { + do_check_any_chunk(m, p); + assert(is_inuse(p)); + assert(next_pinuse(p)); + /* If not pinuse and not mmapped, previous chunk has OK offset */ + assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p); + if (is_mmapped(p)) + do_check_mmapped_chunk(m, p); +} + +/* Check properties of free chunks */ +static void do_check_free_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + mchunkptr next = chunk_plus_offset(p, sz); + do_check_any_chunk(m, p); + assert(!is_inuse(p)); + assert(!next_pinuse(p)); + assert (!is_mmapped(p)); + if (p != m->dv && p != m->top) { + if (sz >= MIN_CHUNK_SIZE) { + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(is_aligned(chunk2mem(p))); + assert(next->prev_foot == sz); + assert(pinuse(p)); + assert (next == m->top || is_inuse(next)); + assert(p->fd->bk == p); + assert(p->bk->fd == p); + } + else /* markers are always of size SIZE_T_SIZE */ + assert(sz == SIZE_T_SIZE); + } +} + +/* Check properties of malloced chunks at the point they are malloced */ +static void do_check_malloced_chunk(mstate m, void* mem, size_t s) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + size_t sz = p->head & ~INUSE_BITS; + do_check_inuse_chunk(m, p); + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(sz >= MIN_CHUNK_SIZE); + assert(sz >= s); + /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */ + assert(is_mmapped(p) || sz < (s + MIN_CHUNK_SIZE)); + } +} + +/* Check a tree and its subtrees. */ +static void do_check_tree(mstate m, tchunkptr t) { + tchunkptr head = 0; + tchunkptr u = t; + bindex_t tindex = t->index; + size_t tsize = chunksize(t); + bindex_t idx; + compute_tree_index(tsize, idx); + assert(tindex == idx); + assert(tsize >= MIN_LARGE_SIZE); + assert(tsize >= minsize_for_tree_index(idx)); + assert((idx == NTREEBINS-1) || (tsize < minsize_for_tree_index((idx+1)))); + + do { /* traverse through chain of same-sized nodes */ + do_check_any_chunk(m, ((mchunkptr)u)); + assert(u->index == tindex); + assert(chunksize(u) == tsize); + assert(!is_inuse(u)); + assert(!next_pinuse(u)); + assert(u->fd->bk == u); + assert(u->bk->fd == u); + if (u->parent == 0) { + assert(u->child[0] == 0); + assert(u->child[1] == 0); + } + else { + assert(head == 0); /* only one node on chain has parent */ + head = u; + assert(u->parent != u); + assert (u->parent->child[0] == u || + u->parent->child[1] == u || + *((tbinptr*)(u->parent)) == u); + if (u->child[0] != 0) { + assert(u->child[0]->parent == u); + assert(u->child[0] != u); + do_check_tree(m, u->child[0]); + } + if (u->child[1] != 0) { + assert(u->child[1]->parent == u); + assert(u->child[1] != u); + do_check_tree(m, u->child[1]); + } + if (u->child[0] != 0 && u->child[1] != 0) { + assert(chunksize(u->child[0]) < chunksize(u->child[1])); + } + } + u = u->fd; + } while (u != t); + assert(head != 0); +} + +/* Check all the chunks in a treebin. */ +static void do_check_treebin(mstate m, bindex_t i) { + tbinptr* tb = treebin_at(m, i); + tchunkptr t = *tb; + int empty = (m->treemap & (1U << i)) == 0; + if (t == 0) + assert(empty); + if (!empty) + do_check_tree(m, t); +} + +/* Check all the chunks in a smallbin. */ +static void do_check_smallbin(mstate m, bindex_t i) { + sbinptr b = smallbin_at(m, i); + mchunkptr p = b->bk; + unsigned int empty = (m->smallmap & (1U << i)) == 0; + if (p == b) + assert(empty); + if (!empty) { + for (; p != b; p = p->bk) { + size_t size = chunksize(p); + mchunkptr q; + /* each chunk claims to be free */ + do_check_free_chunk(m, p); + /* chunk belongs in bin */ + assert(small_index(size) == i); + assert(p->bk == b || chunksize(p->bk) == chunksize(p)); + /* chunk is followed by an inuse chunk */ + q = next_chunk(p); + if (q->head != FENCEPOST_HEAD) + do_check_inuse_chunk(m, q); + } + } +} + +/* Find x in a bin. Used in other check functions. */ +static int bin_find(mstate m, mchunkptr x) { + size_t size = chunksize(x); + if (is_small(size)) { + bindex_t sidx = small_index(size); + sbinptr b = smallbin_at(m, sidx); + if (smallmap_is_marked(m, sidx)) { + mchunkptr p = b; + do { + if (p == x) + return 1; + } while ((p = p->fd) != b); + } + } + else { + bindex_t tidx; + compute_tree_index(size, tidx); + if (treemap_is_marked(m, tidx)) { + tchunkptr t = *treebin_at(m, tidx); + size_t sizebits = size << leftshift_for_tree_index(tidx); + while (t != 0 && chunksize(t) != size) { + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + sizebits <<= 1; + } + if (t != 0) { + tchunkptr u = t; + do { + if (u == (tchunkptr)x) + return 1; + } while ((u = u->fd) != t); + } + } + } + return 0; +} + +/* Traverse each chunk and check it; return total */ +static size_t traverse_and_check(mstate m) { + size_t sum = 0; + if (is_initialized(m)) { + msegmentptr s = &m->seg; + sum += m->topsize + TOP_FOOT_SIZE; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + mchunkptr lastq = 0; + assert(pinuse(q)); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + sum += chunksize(q); + if (is_inuse(q)) { + assert(!bin_find(m, q)); + do_check_inuse_chunk(m, q); + } + else { + assert(q == m->dv || bin_find(m, q)); + assert(lastq == 0 || is_inuse(lastq)); /* Not 2 consecutive free */ + do_check_free_chunk(m, q); + } + lastq = q; + q = next_chunk(q); + } + s = s->next; + } + } + return sum; +} + +/* Check all properties of malloc_state. */ +static void do_check_malloc_state(mstate m) { + bindex_t i; + size_t total; + /* check bins */ + for (i = 0; i < NSMALLBINS; ++i) + do_check_smallbin(m, i); + for (i = 0; i < NTREEBINS; ++i) + do_check_treebin(m, i); + + if (m->dvsize != 0) { /* check dv chunk */ + do_check_any_chunk(m, m->dv); + assert(m->dvsize == chunksize(m->dv)); + assert(m->dvsize >= MIN_CHUNK_SIZE); + assert(bin_find(m, m->dv) == 0); + } + + if (m->top != 0) { /* check top chunk */ + do_check_top_chunk(m, m->top); + /*assert(m->topsize == chunksize(m->top)); redundant */ + assert(m->topsize > 0); + assert(bin_find(m, m->top) == 0); + } + + total = traverse_and_check(m); + assert(total <= m->footprint); + assert(m->footprint <= m->max_footprint); +} +#endif /* DEBUG */ + +/* ----------------------------- statistics ------------------------------ */ + +#if !NO_MALLINFO +static struct mallinfo internal_mallinfo(mstate m) { + struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + ensure_initialization(); + if (!PREACTION(m)) { + check_malloc_state(m); + if (is_initialized(m)) { + size_t nfree = SIZE_T_ONE; /* top always free */ + size_t mfree = m->topsize + TOP_FOOT_SIZE; + size_t sum = mfree; + msegmentptr s = &m->seg; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + size_t sz = chunksize(q); + sum += sz; + if (!is_inuse(q)) { + mfree += sz; + ++nfree; + } + q = next_chunk(q); + } + s = s->next; + } + + nm.arena = sum; + nm.ordblks = nfree; + nm.hblkhd = m->footprint - sum; + nm.usmblks = m->max_footprint; + nm.uordblks = m->footprint - mfree; + nm.fordblks = mfree; + nm.keepcost = m->topsize; + } + + POSTACTION(m); + } + return nm; +} +#endif /* !NO_MALLINFO */ + +static void internal_malloc_stats(mstate m) { + ensure_initialization(); + if (!PREACTION(m)) { + size_t maxfp = 0; + size_t fp = 0; + size_t used = 0; + check_malloc_state(m); + if (is_initialized(m)) { + msegmentptr s = &m->seg; + maxfp = m->max_footprint; + fp = m->footprint; + used = fp - (m->topsize + TOP_FOOT_SIZE); + + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + if (!is_inuse(q)) + used -= chunksize(q); + q = next_chunk(q); + } + s = s->next; + } + } + + fprintf(stderr, "max system bytes = %10lu\n", (unsigned long)(maxfp)); + fprintf(stderr, "system bytes = %10lu\n", (unsigned long)(fp)); + fprintf(stderr, "in use bytes = %10lu\n", (unsigned long)(used)); + + POSTACTION(m); + } +} + +/* ----------------------- Operations on smallbins ----------------------- */ + +/* +Various forms of linking and unlinking are defined as macros. Even +the ones for trees, which are very long but have very short typical +paths. This is ugly but reduces reliance on inlining support of +compilers. +*/ + +/* Link a free chunk into a smallbin */ +#define insert_small_chunk(M, P, S) {\ + bindex_t I = small_index(S);\ + mchunkptr B = smallbin_at(M, I);\ + mchunkptr F = B;\ + assert(S >= MIN_CHUNK_SIZE);\ + if (!smallmap_is_marked(M, I))\ + mark_smallmap(M, I);\ + else if (RTCHECK(ok_address(M, B->fd)))\ + F = B->fd;\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ + B->fd = P;\ + F->bk = P;\ + P->fd = F;\ + P->bk = B;\ +} + +/* Unlink a chunk from a smallbin */ +#define unlink_small_chunk(M, P, S) {\ + mchunkptr F = P->fd;\ + mchunkptr B = P->bk;\ + bindex_t I = small_index(S);\ + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ + if (F == B)\ + clear_smallmap(M, I);\ + else if (RTCHECK((F == smallbin_at(M,I) || ok_address(M, F)) &&\ + (B == smallbin_at(M,I) || ok_address(M, B)))) {\ + F->bk = B;\ + B->fd = F;\ +}\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ +} + +/* Unlink the first chunk from a smallbin */ +#define unlink_first_small_chunk(M, B, P, I) {\ + mchunkptr F = P->fd;\ + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ + if (B == F)\ + clear_smallmap(M, I);\ + else if (RTCHECK(ok_address(M, F))) {\ + B->fd = F;\ + F->bk = B;\ +}\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ +} + + + +/* Replace dv node, binning the old one */ +/* Used only when dvsize known to be small */ +#define replace_dv(M, P, S) {\ + size_t DVS = M->dvsize;\ + if (DVS != 0) {\ + mchunkptr DV = M->dv;\ + assert(is_small(DVS));\ + insert_small_chunk(M, DV, DVS);\ + }\ + M->dvsize = S;\ + M->dv = P;\ +} + +/* ------------------------- Operations on trees ------------------------- */ + +/* Insert chunk into tree */ +#define insert_large_chunk(M, X, S) {\ + tbinptr* H;\ + bindex_t I;\ + compute_tree_index(S, I);\ + H = treebin_at(M, I);\ + X->index = I;\ + X->child[0] = X->child[1] = 0;\ + if (!treemap_is_marked(M, I)) {\ + mark_treemap(M, I);\ + *H = X;\ + X->parent = (tchunkptr)H;\ + X->fd = X->bk = X;\ + }\ + else {\ + tchunkptr T = *H;\ + size_t K = S << leftshift_for_tree_index(I);\ + for (;;) {\ + if (chunksize(T) != S) {\ + tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]);\ + K <<= 1;\ + if (*C != 0)\ + T = *C;\ + else if (RTCHECK(ok_address(M, C))) {\ + *C = X;\ + X->parent = T;\ + X->fd = X->bk = X;\ + break;\ +}\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + break;\ +}\ + }\ + else {\ + tchunkptr F = T->fd;\ + if (RTCHECK(ok_address(M, T) && ok_address(M, F))) {\ + T->fd = F->bk = X;\ + X->fd = F;\ + X->bk = T;\ + X->parent = 0;\ + break;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + break;\ +}\ +}\ + }\ +}\ +} + +/* +Unlink steps: + +1. If x is a chained node, unlink it from its same-sized fd/bk links +and choose its bk node as its replacement. +2. If x was the last node of its size, but not a leaf node, it must +be replaced with a leaf node (not merely one with an open left or +right), to make sure that lefts and rights of descendents +correspond properly to bit masks. We use the rightmost descendent +of x. We could use any other leaf, but this is easy to locate and +tends to counteract removal of leftmosts elsewhere, and so keeps +paths shorter than minimally guaranteed. This doesn't loop much +because on average a node in a tree is near the bottom. +3. If x is the base of a chain (i.e., has parent links) relink +x's parent and children to x's replacement (or null if none). +*/ + +#define unlink_large_chunk(M, X) {\ + tchunkptr XP = X->parent;\ + tchunkptr R;\ + if (X->bk != X) {\ + tchunkptr F = X->fd;\ + R = X->bk;\ + if (RTCHECK(ok_address(M, F))) {\ + F->bk = R;\ + R->fd = F;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ + }\ + else {\ + tchunkptr* RP;\ + if (((R = *(RP = &(X->child[1]))) != 0) ||\ + ((R = *(RP = &(X->child[0]))) != 0)) {\ + tchunkptr* CP;\ + while ((*(CP = &(R->child[1])) != 0) ||\ + (*(CP = &(R->child[0])) != 0)) {\ + R = *(RP = CP);\ +}\ + if (RTCHECK(ok_address(M, RP)))\ + *RP = 0;\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +}\ +}\ +}\ + if (XP != 0) {\ + tbinptr* H = treebin_at(M, X->index);\ + if (X == *H) {\ + if ((*H = R) == 0) \ + clear_treemap(M, X->index);\ + }\ + else if (RTCHECK(ok_address(M, XP))) {\ + if (XP->child[0] == X) \ + XP->child[0] = R;\ + else \ + XP->child[1] = R;\ +}\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + if (R != 0) {\ + if (RTCHECK(ok_address(M, R))) {\ + tchunkptr C0, C1;\ + R->parent = XP;\ + if ((C0 = X->child[0]) != 0) {\ + if (RTCHECK(ok_address(M, C0))) {\ + R->child[0] = C0;\ + C0->parent = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + if ((C1 = X->child[1]) != 0) {\ + if (RTCHECK(ok_address(M, C1))) {\ + R->child[1] = C1;\ + C1->parent = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ +} + +/* Relays to large vs small bin operations */ + +#define insert_chunk(M, P, S)\ + if (is_small(S)) insert_small_chunk(M, P, S)\ + else { tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); } + +#define unlink_chunk(M, P, S)\ + if (is_small(S)) unlink_small_chunk(M, P, S)\ + else { tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); } + + +/* Relays to internal calls to malloc/free from realloc, memalign etc */ + +#if ONLY_MSPACES +#define internal_malloc(m, b) rak_mspace_malloc(m, b) +#define internal_free(m, mem) rak_mspace_free(m,mem); +#else /* ONLY_MSPACES */ +#if MSPACES +#define internal_malloc(m, b)\ + (m == gm)? rdlmalloc(b) : rak_mspace_malloc(m, b) +#define internal_free(m, mem)\ + if (m == gm) rdlfree(mem); else rak_mspace_free(m,mem); +#else /* MSPACES */ +#define internal_malloc(m, b) rdlmalloc(b) +#define internal_free(m, mem) rdlfree(mem) +#endif /* MSPACES */ +#endif /* ONLY_MSPACES */ + +/* ----------------------- Direct-mmapping chunks ----------------------- */ + +/* +Directly mmapped chunks are set up with an offset to the start of +the mmapped region stored in the prev_foot field of the chunk. This +allows reconstruction of the required argument to MUNMAP when freed, +and also allows adjustment of the returned chunk to meet alignment +requirements (especially in memalign). +*/ + +/* Malloc using mmap */ +static void* mmap_alloc(mstate m, size_t nb) { + size_t mmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + if (mmsize > nb) { /* Check for wrap around 0 */ + char* mm = (char*)(CALL_DIRECT_MMAP(mmsize)); + if (mm != CMFAIL) { + size_t offset = align_offset(chunk2mem(mm)); + size_t psize = mmsize - offset - MMAP_FOOT_PAD; + mchunkptr p = (mchunkptr)(mm + offset); + p->prev_foot = offset; + p->head = psize; + mark_inuse_foot(m, p, psize); + chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0; + + if (m->least_addr == 0 || mm < m->least_addr) + m->least_addr = mm; + if ((m->footprint += mmsize) > m->max_footprint) + m->max_footprint = m->footprint; + assert(is_aligned(chunk2mem(p))); + check_mmapped_chunk(m, p); + return chunk2mem(p); + } + } + return 0; +} + +/* Realloc using mmap */ +static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb) { + size_t oldsize = chunksize(oldp); + if (is_small(nb)) /* Can't shrink mmap regions below small size */ + return 0; + /* Keep old chunk if big enough but not too big */ + if (oldsize >= nb + SIZE_T_SIZE && + (oldsize - nb) <= (mparams.granularity << 1)) + return oldp; + else { + size_t offset = oldp->prev_foot; + size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD; + size_t newmmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + char* cp = (char*)CALL_MREMAP((char*)oldp - offset, + oldmmsize, newmmsize, 1); + if (cp != CMFAIL) { + mchunkptr newp = (mchunkptr)(cp + offset); + size_t psize = newmmsize - offset - MMAP_FOOT_PAD; + newp->head = psize; + mark_inuse_foot(m, newp, psize); + chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0; + + if (cp < m->least_addr) + m->least_addr = cp; + if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint) + m->max_footprint = m->footprint; + check_mmapped_chunk(m, newp); + return newp; + } + } + return 0; +} + +/* -------------------------- mspace management -------------------------- */ + +/* Initialize top chunk and its size */ +static void init_top(mstate m, mchunkptr p, size_t psize) { + /* Ensure alignment */ + size_t offset = align_offset(chunk2mem(p)); + p = (mchunkptr)((char*)p + offset); + psize -= offset; + + m->top = p; + m->topsize = psize; + p->head = psize | PINUSE_BIT; + /* set size of fake trailing chunk holding overhead space only once */ + chunk_plus_offset(p, psize)->head = TOP_FOOT_SIZE; + m->trim_check = mparams.trim_threshold; /* reset on each update */ +} + +/* Initialize bins for a new mstate that is otherwise zeroed out */ +static void init_bins(mstate m) { + /* Establish circular links for smallbins */ + bindex_t i; + for (i = 0; i < NSMALLBINS; ++i) { + sbinptr bin = smallbin_at(m,i); + bin->fd = bin->bk = bin; + } +} + +#if PROCEED_ON_ERROR + +/* default corruption action */ +static void reset_on_error(mstate m) { + int i; + ++malloc_corruption_error_count; + /* Reinitialize fields to forget about all memory */ + m->smallbins = m->treebins = 0; + m->dvsize = m->topsize = 0; + m->seg.base = 0; + m->seg.size = 0; + m->seg.next = 0; + m->top = m->dv = 0; + for (i = 0; i < NTREEBINS; ++i) + *treebin_at(m, i) = 0; + init_bins(m); +} +#endif /* PROCEED_ON_ERROR */ + +/* Allocate chunk and prepend remainder with chunk in successor base. */ +static void* prepend_alloc(mstate m, char* newbase, char* oldbase, + size_t nb) { + mchunkptr p = align_as_chunk(newbase); + mchunkptr oldfirst = align_as_chunk(oldbase); + size_t psize = (char*)oldfirst - (char*)p; + mchunkptr q = chunk_plus_offset(p, nb); + size_t qsize = psize - nb; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + + assert((char*)oldfirst > (char*)q); + assert(pinuse(oldfirst)); + assert(qsize >= MIN_CHUNK_SIZE); + + /* consolidate remainder with first chunk of old base */ + if (oldfirst == m->top) { + size_t tsize = m->topsize += qsize; + m->top = q; + q->head = tsize | PINUSE_BIT; + check_top_chunk(m, q); + } + else if (oldfirst == m->dv) { + size_t dsize = m->dvsize += qsize; + m->dv = q; + set_size_and_pinuse_of_free_chunk(q, dsize); + } + else { + if (!is_inuse(oldfirst)) { + size_t nsize = chunksize(oldfirst); + unlink_chunk(m, oldfirst, nsize); + oldfirst = chunk_plus_offset(oldfirst, nsize); + qsize += nsize; + } + set_free_with_pinuse(q, qsize, oldfirst); + insert_chunk(m, q, qsize); + check_free_chunk(m, q); + } + + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); +} + +/* Add a segment to hold a new noncontiguous region */ +static void add_segment(mstate m, char* tbase, size_t tsize, flag_t mmapped) { + /* Determine locations and sizes of segment, fenceposts, old top */ + char* old_top = (char*)m->top; + msegmentptr oldsp = segment_holding(m, old_top); + char* old_end = oldsp->base + oldsp->size; + size_t ssize = pad_request(sizeof(struct malloc_segment)); + char* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + size_t offset = align_offset(chunk2mem(rawsp)); + char* asp = rawsp + offset; + char* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp; + mchunkptr sp = (mchunkptr)csp; + msegmentptr ss = (msegmentptr)(chunk2mem(sp)); + mchunkptr tnext = chunk_plus_offset(sp, ssize); + mchunkptr p = tnext; + int nfences = 0; + + /* reset top to new space */ + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + + /* Set up segment record */ + assert(is_aligned(ss)); + set_size_and_pinuse_of_inuse_chunk(m, sp, ssize); + *ss = m->seg; /* Push current record */ + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmapped; + m->seg.next = ss; + + /* Insert trailing fenceposts */ + for (;;) { + mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE); + p->head = FENCEPOST_HEAD; + ++nfences; + if ((char*)(&(nextp->head)) < old_end) + p = nextp; + else + break; + } + assert(nfences >= 2); + + /* Insert the rest of old top into a bin as an ordinary free chunk */ + if (csp != old_top) { + mchunkptr q = (mchunkptr)old_top; + size_t psize = csp - old_top; + mchunkptr tn = chunk_plus_offset(q, psize); + set_free_with_pinuse(q, psize, tn); + insert_chunk(m, q, psize); + } + + check_top_chunk(m, m->top); +} + +/* -------------------------- System allocation -------------------------- */ + +/* Get memory from system using MORECORE or MMAP */ +static void* sys_alloc(mstate m, size_t nb) { + char* tbase = CMFAIL; + size_t tsize = 0; + flag_t mmap_flag = 0; + + ensure_initialization(); + + /* Directly map large chunks, but only if already initialized */ + if (use_mmap(m) && nb >= mparams.mmap_threshold && m->topsize != 0) { + void* mem = mmap_alloc(m, nb); + if (mem != 0) + return mem; + } + + /* + Try getting memory in any of three ways (in most-preferred to + least-preferred order): + 1. A call to MORECORE that can normally contiguously extend memory. + (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or + or main space is mmapped or a previous contiguous call failed) + 2. A call to MMAP new space (disabled if not HAVE_MMAP). + Note that under the default settings, if MORECORE is unable to + fulfill a request, and HAVE_MMAP is true, then mmap is + used as a noncontiguous system allocator. This is a useful backup + strategy for systems with holes in address spaces -- in this case + sbrk cannot contiguously expand the heap, but mmap may be able to + find space. + 3. A call to MORECORE that cannot usually contiguously extend memory. + (disabled if not HAVE_MORECORE) + + In all cases, we need to request enough bytes from system to ensure + we can malloc nb bytes upon success, so pad with enough space for + top_foot, plus alignment-pad to make sure we don't lose bytes if + not on boundary, and round this up to a granularity unit. + */ + + if (MORECORE_CONTIGUOUS && !use_noncontiguous(m)) { + char* br = CMFAIL; + msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (char*)m->top); + size_t asize = 0; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + + if (ss == 0) { /* First time through or recovery */ + char* base = (char*)CALL_MORECORE(0); + if (base != CMFAIL) { + asize = granularity_align(nb + SYS_ALLOC_PADDING); + /* Adjust to end on a page boundary */ + if (!is_page_aligned(base)) + asize += (page_align((size_t)base) - (size_t)base); + /* Can't call MORECORE if size is negative when treated as signed */ + if (asize < HALF_MAX_SIZE_T && + (br = (char*)(CALL_MORECORE(asize))) == base) { + tbase = base; + tsize = asize; + } + } + } + else { + /* Subtract out existing available top space from MORECORE request. */ + asize = granularity_align(nb - m->topsize + SYS_ALLOC_PADDING); + /* Use mem here only if it did continuously extend old space */ + if (asize < HALF_MAX_SIZE_T && + (br = (char*)(CALL_MORECORE(asize))) == ss->base+ss->size) { + tbase = br; + tsize = asize; + } + } + + if (tbase == CMFAIL) { /* Cope with partial failure */ + if (br != CMFAIL) { /* Try to use/extend the space we did get */ + if (asize < HALF_MAX_SIZE_T && + asize < nb + SYS_ALLOC_PADDING) { + size_t esize = granularity_align(nb + SYS_ALLOC_PADDING - asize); + if (esize < HALF_MAX_SIZE_T) { + char* end = (char*)CALL_MORECORE(esize); + if (end != CMFAIL) + asize += esize; + else { /* Can't use; try to release */ + (void) CALL_MORECORE(-asize); + br = CMFAIL; + } + } + } + } + if (br != CMFAIL) { /* Use the space we did get */ + tbase = br; + tsize = asize; + } + else + disable_contiguous(m); /* Don't try contiguous path in the future */ + } + + RELEASE_MALLOC_GLOBAL_LOCK(); + } + + if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */ + size_t rsize = granularity_align(nb + SYS_ALLOC_PADDING); + if (rsize > nb) { /* Fail if wraps around zero */ + char* mp = (char*)(CALL_MMAP(rsize)); + if (mp != CMFAIL) { + tbase = mp; + tsize = rsize; + mmap_flag = USE_MMAP_BIT; + } + } + } + + if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */ + size_t asize = granularity_align(nb + SYS_ALLOC_PADDING); + if (asize < HALF_MAX_SIZE_T) { + char* br = CMFAIL; + char* end = CMFAIL; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + br = (char*)(CALL_MORECORE(asize)); + end = (char*)(CALL_MORECORE(0)); + RELEASE_MALLOC_GLOBAL_LOCK(); + if (br != CMFAIL && end != CMFAIL && br < end) { + size_t ssize = end - br; + if (ssize > nb + TOP_FOOT_SIZE) { + tbase = br; + tsize = ssize; + } + } + } + } + + if (tbase != CMFAIL) { + + if ((m->footprint += tsize) > m->max_footprint) + m->max_footprint = m->footprint; + + if (!is_initialized(m)) { /* first-time initialization */ + if (m->least_addr == 0 || tbase < m->least_addr) + m->least_addr = tbase; + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmap_flag; + m->magic = mparams.magic; + m->release_checks = MAX_RELEASE_CHECK_RATE; + init_bins(m); +#if !ONLY_MSPACES + if (is_global(m)) + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + else +#endif + { + /* Offset top by embedded malloc_state */ + mchunkptr mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) -TOP_FOOT_SIZE); + } + } + + else { + /* Try to merge with an existing segment */ + msegmentptr sp = &m->seg; + /* Only consider most recent segment if traversal suppressed */ + while (sp != 0 && tbase != sp->base + sp->size) + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & USE_MMAP_BIT) == mmap_flag && + segment_holds(sp, m->top)) { /* append */ + sp->size += tsize; + init_top(m, m->top, m->topsize + tsize); + } + else { + if (tbase < m->least_addr) + m->least_addr = tbase; + sp = &m->seg; + while (sp != 0 && sp->base != tbase + tsize) + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & USE_MMAP_BIT) == mmap_flag) { + char* oldbase = sp->base; + sp->base = tbase; + sp->size += tsize; + return prepend_alloc(m, tbase, oldbase, nb); + } + else + add_segment(m, tbase, tsize, mmap_flag); + } + } + + if (nb < m->topsize) { /* Allocate from new or extended top space */ + size_t rsize = m->topsize -= nb; + mchunkptr p = m->top; + mchunkptr r = m->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + check_top_chunk(m, m->top); + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); + } + } + + MALLOC_FAILURE_ACTION; + return 0; +} + +/* ----------------------- system deallocation -------------------------- */ + +/* Unmap and unlink any mmapped segments that don't contain used chunks */ +static size_t release_unused_segments(mstate m) { + size_t released = 0; + int nsegs = 0; + msegmentptr pred = &m->seg; + msegmentptr sp = pred->next; + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + msegmentptr next = sp->next; + ++nsegs; + if (is_mmapped_segment(sp) && !is_extern_segment(sp)) { + mchunkptr p = align_as_chunk(base); + size_t psize = chunksize(p); + /* Can unmap if first chunk holds entire segment and not pinned */ + if (!is_inuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) { + tchunkptr tp = (tchunkptr)p; + assert(segment_holds(sp, (char*)sp)); + if (p == m->dv) { + m->dv = 0; + m->dvsize = 0; + } + else { + unlink_large_chunk(m, tp); + } + if (CALL_MUNMAP(base, size) == 0) { + released += size; + m->footprint -= size; + /* unlink obsoleted record */ + sp = pred; + sp->next = next; + } + else { /* back out if cannot unmap */ + insert_large_chunk(m, tp, psize); + } + } + } + if (NO_SEGMENT_TRAVERSAL) /* scan only first segment */ + break; + pred = sp; + sp = next; + } + /* Reset check counter */ + m->release_checks = ((nsegs > MAX_RELEASE_CHECK_RATE)? +nsegs : MAX_RELEASE_CHECK_RATE); + return released; +} + +static int sys_trim(mstate m, size_t pad) { + size_t released = 0; + ensure_initialization(); + if (pad < MAX_REQUEST && is_initialized(m)) { + pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ + + if (m->topsize > pad) { + /* Shrink top space in granularity-size units, keeping at least one */ + size_t unit = mparams.granularity; + size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit - + SIZE_T_ONE) * unit; + msegmentptr sp = segment_holding(m, (char*)m->top); + + if (!is_extern_segment(sp)) { + if (is_mmapped_segment(sp)) { + if (HAVE_MMAP && + sp->size >= extra && + !has_segment_link(m, sp)) { /* can't shrink if pinned */ + size_t newsize = sp->size - extra; + /* Prefer mremap, fall back to munmap */ + if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) || + (CALL_MUNMAP(sp->base + newsize, extra) == 0)) { + released = extra; + } + } + } + else if (HAVE_MORECORE) { + if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */ + extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + { + /* Make sure end of memory is where we last set it. */ + char* old_br = (char*)(CALL_MORECORE(0)); + if (old_br == sp->base + sp->size) { + char* rel_br = (char*)(CALL_MORECORE(-extra)); + char* new_br = (char*)(CALL_MORECORE(0)); + if (rel_br != CMFAIL && new_br < old_br) + released = old_br - new_br; + } + } + RELEASE_MALLOC_GLOBAL_LOCK(); + } + } + + if (released != 0) { + sp->size -= released; + m->footprint -= released; + init_top(m, m->top, m->topsize - released); + check_top_chunk(m, m->top); + } + } + + /* Unmap any unused mmapped segments */ + if (HAVE_MMAP) + released += release_unused_segments(m); + + /* On failure, disable autotrim to avoid repeated failed future calls */ + if (released == 0 && m->topsize > m->trim_check) + m->trim_check = MAX_SIZE_T; + } + + return (released != 0)? 1 : 0; +} + + +/* ---------------------------- malloc support --------------------------- */ + +/* allocate a large request from the best fitting chunk in a treebin */ +static void* tmalloc_large(mstate m, size_t nb) { + tchunkptr v = 0; + size_t rsize = -nb; /* Unsigned negation */ + tchunkptr t; + bindex_t idx; + compute_tree_index(nb, idx); + if ((t = *treebin_at(m, idx)) != 0) { + /* Traverse tree for this bin looking for node with size == nb */ + size_t sizebits = nb << leftshift_for_tree_index(idx); + tchunkptr rst = 0; /* The deepest untaken right subtree */ + for (;;) { + tchunkptr rt; + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + v = t; + if ((rsize = trem) == 0) + break; + } + rt = t->child[1]; + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + if (rt != 0 && rt != t) + rst = rt; + if (t == 0) { + t = rst; /* set t to least subtree holding sizes > nb */ + break; + } + sizebits <<= 1; + } + } + if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */ + binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap; + if (leftbits != 0) { + bindex_t i; + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + t = *treebin_at(m, i); + } + } + + while (t != 0) { /* find smallest of tree or subtree */ + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + t = leftmost_child(t); + } + + /* If dv is a better fit, return 0 so malloc will use it */ + if (v != 0 && rsize < (size_t)(m->dvsize - nb)) { + if (RTCHECK(ok_address(m, v))) { /* split */ + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + insert_chunk(m, r, rsize); + } + return chunk2mem(v); + } + } + CORRUPTION_ERROR_ACTION(m); + } + return 0; +} + +/* allocate a small request from the best fitting chunk in a treebin */ +static void* tmalloc_small(mstate m, size_t nb) { + tchunkptr t, v; + size_t rsize; + bindex_t i; + binmap_t leastbit = least_bit(m->treemap); + compute_bit2idx(leastbit, i); + v = t = *treebin_at(m, i); + rsize = chunksize(t) - nb; + + while ((t = leftmost_child(t)) != 0) { + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + } + + if (RTCHECK(ok_address(m, v))) { + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(m, r, rsize); + } + return chunk2mem(v); + } + } + + CORRUPTION_ERROR_ACTION(m); + return 0; +} + +/* --------------------------- realloc support --------------------------- */ + +static void* internal_realloc(mstate m, void* oldmem, size_t bytes) { + if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + return 0; + } + if (!PREACTION(m)) { + mchunkptr oldp = mem2chunk(oldmem); + size_t oldsize = chunksize(oldp); + mchunkptr next = chunk_plus_offset(oldp, oldsize); + mchunkptr newp = 0; + void* extra = 0; + + /* Try to either shrink or extend into top. Else malloc-copy-free */ + + if (RTCHECK(ok_address(m, oldp) && ok_inuse(oldp) && + ok_next(oldp, next) && ok_pinuse(next))) { + size_t nb = request2size(bytes); + if (is_mmapped(oldp)) + newp = mmap_resize(m, oldp, nb); + else if (oldsize >= nb) { /* already big enough */ + size_t rsize = oldsize - nb; + newp = oldp; + if (rsize >= MIN_CHUNK_SIZE) { + mchunkptr remainder = chunk_plus_offset(newp, nb); + set_inuse(m, newp, nb); + set_inuse_and_pinuse(m, remainder, rsize); + extra = chunk2mem(remainder); + } + } + else if (next == m->top && oldsize + m->topsize > nb) { + /* Expand into top */ + size_t newsize = oldsize + m->topsize; + size_t newtopsize = newsize - nb; + mchunkptr newtop = chunk_plus_offset(oldp, nb); + set_inuse(m, oldp, nb); + newtop->head = newtopsize |PINUSE_BIT; + m->top = newtop; + m->topsize = newtopsize; + newp = oldp; + } + } + else { + USAGE_ERROR_ACTION(m, oldmem); + POSTACTION(m); + return 0; + } +#if DEBUG + if (newp != 0) { + check_inuse_chunk(m, newp); /* Check requires lock */ + } +#endif + + POSTACTION(m); + + if (newp != 0) { + if (extra != 0) { + internal_free(m, extra); + } + return chunk2mem(newp); + } + else { + void* newmem = internal_malloc(m, bytes); + if (newmem != 0) { + size_t oc = oldsize - overhead_for(oldp); + memcpy(newmem, oldmem, (oc < bytes)? oc : bytes); + internal_free(m, oldmem); + } + return newmem; + } + } + return 0; +} + +/* --------------------------- memalign support -------------------------- */ + +static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { + if (alignment <= MALLOC_ALIGNMENT) /* Can just use malloc */ + return internal_malloc(m, bytes); + if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */ + alignment = MIN_CHUNK_SIZE; + if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */ + size_t a = MALLOC_ALIGNMENT << 1; + while (a < alignment) a <<= 1; + alignment = a; + } + + if (bytes >= MAX_REQUEST - alignment) { + if (m != 0) { /* Test isn't needed but avoids compiler warning */ + MALLOC_FAILURE_ACTION; + } + } + else { + size_t nb = request2size(bytes); + size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD; + char* mem = (char*)internal_malloc(m, req); + if (mem != 0) { + void* leader = 0; + void* trailer = 0; + mchunkptr p = mem2chunk(mem); + + if (PREACTION(m)) return 0; + if ((((size_t)(mem)) % alignment) != 0) { /* misaligned */ + /* + Find an aligned spot inside chunk. Since we need to give + back leading space in a chunk of at least MIN_CHUNK_SIZE, if + the first calculation places us at a spot with less than + MIN_CHUNK_SIZE leader, we can move to the next aligned spot. + We've allocated enough total room so that this is always + possible. + */ + char* br = (char*)mem2chunk((size_t)(((size_t)(mem + + alignment - + SIZE_T_ONE)) & + -alignment)); + char* pos = ((size_t)(br - (char*)(p)) >= MIN_CHUNK_SIZE)? +br : br+alignment; + mchunkptr newp = (mchunkptr)pos; + size_t leadsize = pos - (char*)(p); + size_t newsize = chunksize(p) - leadsize; + + if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */ + newp->prev_foot = p->prev_foot + leadsize; + newp->head = newsize; + } + else { /* Otherwise, give back leader, use the rest */ + set_inuse(m, newp, newsize); + set_inuse(m, p, leadsize); + leader = chunk2mem(p); + } + p = newp; + } + + /* Give back spare room at the end */ + if (!is_mmapped(p)) { + size_t size = chunksize(p); + if (size > nb + MIN_CHUNK_SIZE) { + size_t remainder_size = size - nb; + mchunkptr remainder = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + set_inuse(m, remainder, remainder_size); + trailer = chunk2mem(remainder); + } + } + + assert (chunksize(p) >= nb); + assert((((size_t)(chunk2mem(p))) % alignment) == 0); + check_inuse_chunk(m, p); + POSTACTION(m); + if (leader != 0) { + internal_free(m, leader); + } + if (trailer != 0) { + internal_free(m, trailer); + } + return chunk2mem(p); + } + } + return 0; +} + +/* ------------------------ comalloc/coalloc support --------------------- */ + +static void** ialloc(mstate m, + size_t n_elements, + size_t* sizes, + int opts, + void* chunks[]) { + /* + This provides common support for independent_X routines, handling + all of the combinations that can result. + + The opts arg has: + bit 0 set if all elements are same size (using sizes[0]) + bit 1 set if elements should be zeroed + */ + + size_t element_size; /* chunksize of each element, if all same */ + size_t contents_size; /* total size of elements */ + size_t array_size; /* request size of pointer array */ + void* mem; /* malloced aggregate space */ + mchunkptr p; /* corresponding chunk */ + size_t remainder_size; /* remaining bytes while splitting */ + void** marray; /* either "chunks" or malloced ptr array */ + mchunkptr array_chunk; /* chunk for malloced ptr array */ + flag_t was_enabled; /* to disable mmap */ + size_t size; + size_t i; + + ensure_initialization(); + /* compute array length, if needed */ + if (chunks != 0) { + if (n_elements == 0) + return chunks; /* nothing to do */ + marray = chunks; + array_size = 0; + } + else { + /* if empty req, must still return chunk representing empty array */ + if (n_elements == 0) + return (void**)internal_malloc(m, 0); + marray = 0; + array_size = request2size(n_elements * (sizeof(void*))); + } + + /* compute total element size */ + if (opts & 0x1) { /* all-same-size */ + element_size = request2size(*sizes); + contents_size = n_elements * element_size; + } + else { /* add up all the sizes */ + element_size = 0; + contents_size = 0; + for (i = 0; i != n_elements; ++i) + contents_size += request2size(sizes[i]); + } + + size = contents_size + array_size; + + /* + Allocate the aggregate chunk. First disable direct-mmapping so + malloc won't use it, since we would not be able to later + free/realloc space internal to a segregated mmap region. + */ + was_enabled = use_mmap(m); + disable_mmap(m); + mem = internal_malloc(m, size - CHUNK_OVERHEAD); + if (was_enabled) + enable_mmap(m); + if (mem == 0) + return 0; + + if (PREACTION(m)) return 0; + p = mem2chunk(mem); + remainder_size = chunksize(p); + + assert(!is_mmapped(p)); + + if (opts & 0x2) { /* optionally clear the elements */ + memset((size_t*)mem, 0, remainder_size - SIZE_T_SIZE - array_size); + } + + /* If not provided, allocate the pointer array as final part of chunk */ + if (marray == 0) { + size_t array_chunk_size; + array_chunk = chunk_plus_offset(p, contents_size); + array_chunk_size = remainder_size - contents_size; + marray = (void**) (chunk2mem(array_chunk)); + set_size_and_pinuse_of_inuse_chunk(m, array_chunk, array_chunk_size); + remainder_size = contents_size; + } + + /* split out elements */ + for (i = 0; ; ++i) { + marray[i] = chunk2mem(p); + if (i != n_elements-1) { + if (element_size != 0) + size = element_size; + else + size = request2size(sizes[i]); + remainder_size -= size; + set_size_and_pinuse_of_inuse_chunk(m, p, size); + p = chunk_plus_offset(p, size); + } + else { /* the final element absorbs any overallocation slop */ + set_size_and_pinuse_of_inuse_chunk(m, p, remainder_size); + break; + } + } + +#if DEBUG + if (marray != chunks) { + /* final element must have exactly exhausted chunk */ + if (element_size != 0) { + assert(remainder_size == element_size); + } + else { + assert(remainder_size == request2size(sizes[i])); + } + check_inuse_chunk(m, mem2chunk(marray)); + } + for (i = 0; i != n_elements; ++i) + check_inuse_chunk(m, mem2chunk(marray[i])); + +#endif /* DEBUG */ + + POSTACTION(m); + return marray; +} + + +/* -------------------------- public routines ---------------------------- */ + +#if !ONLY_MSPACES + +void* rdlmalloc(size_t bytes) { + /* + Basic algorithm: + If a small request (< 256 bytes minus per-chunk overhead): + 1. If one exists, use a remainderless chunk in associated smallbin. + (Remainderless means that there are too few excess bytes to + represent as a chunk.) + 2. If it is big enough, use the dv chunk, which is normally the + chunk adjacent to the one used for the most recent small request. + 3. If one exists, split the smallest available chunk in a bin, + saving remainder in dv. + 4. If it is big enough, use the top chunk. + 5. If available, get memory from system and use it + Otherwise, for a large request: + 1. Find the smallest available binned chunk that fits, and use it + if it is better fitting than dv chunk, splitting if necessary. + 2. If better fitting than any binned chunk, use the dv chunk. + 3. If it is big enough, use the top chunk. + 4. If request size >= mmap threshold, try to directly mmap this chunk. + 5. If available, get memory from system and use it + + The ugly goto's here ensure that postaction occurs along all paths. + */ + +#if USE_LOCKS + ensure_initialization(); /* initialize in sys_alloc if not using locks */ +#endif + + if (!PREACTION(gm)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = gm->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(gm, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(gm, b, p, idx); + set_inuse_and_pinuse(gm, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb > gm->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(gm, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(gm, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(gm, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(gm, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + + if (nb <= gm->dvsize) { + size_t rsize = gm->dvsize - nb; + mchunkptr p = gm->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = gm->dv = chunk_plus_offset(p, nb); + gm->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + } + else { /* exhaust dv */ + size_t dvs = gm->dvsize; + gm->dvsize = 0; + gm->dv = 0; + set_inuse_and_pinuse(gm, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb < gm->topsize) { /* Split top */ + size_t rsize = gm->topsize -= nb; + mchunkptr p = gm->top; + mchunkptr r = gm->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + mem = chunk2mem(p); + check_top_chunk(gm, gm->top); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + mem = sys_alloc(gm, nb); + +postaction: + POSTACTION(gm); + return mem; + } + + return 0; +} + +void rdlfree(void* mem) { + /* + Consolidate freed chunks with preceeding or succeeding bordering + free chunks, if they exist, and then place in a bin. Intermixed + with special cases for top, dv, mmapped chunks, and usage errors. + */ + + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + if (!ok_magic(fm)) { + USAGE_ERROR_ACTION(fm, p); + return; + } +#else /* FOOTERS */ +#define fm gm +#endif /* FOOTERS */ + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + else { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ + if (p != fm->dv) { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == fm->top) { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + + if (is_small(psize)) { + insert_small_chunk(fm, p, psize); + check_free_chunk(fm, p); + } + else { + tchunkptr tp = (tchunkptr)p; + insert_large_chunk(fm, tp, psize); + check_free_chunk(fm, p); + if (--fm->release_checks == 0) + release_unused_segments(fm); + } + goto postaction; + } + } +erroraction: + USAGE_ERROR_ACTION(fm, p); +postaction: + POSTACTION(fm); + } + } +#if !FOOTERS +#undef fm +#endif /* FOOTERS */ +} + +void* rdlcalloc(size_t n_elements, size_t elem_size) { + void* mem; + size_t req = 0; + if (n_elements != 0) { + req = n_elements * elem_size; + if (((n_elements | elem_size) & ~(size_t)0xffff) && + (req / n_elements != elem_size)) + req = MAX_SIZE_T; /* force downstream failure on overflow */ + } + mem = rdlmalloc(req); + if (mem != 0 && calloc_must_clear(mem2chunk(mem))) + memset(mem, 0, req); + return mem; +} + +void* rdlrealloc(void* oldmem, size_t bytes) { + if (oldmem == 0) + return rdlmalloc(bytes); +#ifdef REALLOC_ZERO_BYTES_FREES + if (bytes == 0) { + rdlfree(oldmem); + return 0; + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { +#if ! FOOTERS + mstate m = gm; +#else /* FOOTERS */ + mstate m = get_mstate_for(mem2chunk(oldmem)); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + return internal_realloc(m, oldmem, bytes); + } +} + +void* rdlmemalign(size_t alignment, size_t bytes) { + return internal_memalign(gm, alignment, bytes); +} + +void** rdlindependent_calloc(size_t n_elements, size_t elem_size, + void* chunks[]) { + size_t sz = elem_size; /* serves as 1-element array */ + return ialloc(gm, n_elements, &sz, 3, chunks); +} + +void** rdlindependent_comalloc(size_t n_elements, size_t sizes[], + void* chunks[]) { + return ialloc(gm, n_elements, sizes, 0, chunks); +} + +void* rdlvalloc(size_t bytes) { + size_t pagesz; + ensure_initialization(); + pagesz = mparams.page_size; + return rdlmemalign(pagesz, bytes); +} + +void* rdlpvalloc(size_t bytes) { + size_t pagesz; + ensure_initialization(); + pagesz = mparams.page_size; + return rdlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE)); +} + +int rdlmalloc_trim(size_t pad) { + int result = 0; + ensure_initialization(); + if (!PREACTION(gm)) { + result = sys_trim(gm, pad); + POSTACTION(gm); + } + return result; +} + +size_t rdlmalloc_footprint(void) { + return gm->footprint; +} + +size_t dlmalloc_max_footprint(void) { + return gm->max_footprint; +} + +#if !NO_MALLINFO +struct mallinfo rdlmallinfo(void) { + return internal_mallinfo(gm); +} +#endif /* NO_MALLINFO */ + +void rdlmalloc_stats() { + internal_malloc_stats(gm); +} + +int rdlmallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +#endif /* !ONLY_MSPACES */ + +size_t rdlmalloc_usable_size(void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +} + +/* ----------------------------- user mspaces ---------------------------- */ + +#if MSPACES + +static mstate init_user_mstate(char* tbase, size_t tsize) { + size_t msize = pad_request(sizeof(struct malloc_state)); + mchunkptr mn; + mchunkptr msp = align_as_chunk(tbase); + mstate m = (mstate)(chunk2mem(msp)); + memset(m, 0, msize); + INITIAL_LOCK(&m->mutex); + msp->head = (msize|INUSE_BITS); + m->seg.base = m->least_addr = tbase; + m->seg.size = m->footprint = m->max_footprint = tsize; + m->magic = mparams.magic; + m->release_checks = MAX_RELEASE_CHECK_RATE; + m->mflags = mparams.default_mflags; + m->extp = 0; + m->exts = 0; + disable_contiguous(m); + init_bins(m); + mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) - TOP_FOOT_SIZE); + check_top_chunk(m, m->top); + return m; +} + +mspace rak_create_mspace(size_t capacity, int locked) { + mstate m = 0; + size_t msize; + ensure_initialization(); + msize = pad_request(sizeof(struct malloc_state)); + if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + size_t rs = ((capacity == 0)? mparams.granularity : + (capacity + TOP_FOOT_SIZE + msize)); + size_t tsize = granularity_align(rs); + char* tbase = (char*)(CALL_MMAP(tsize)); + if (tbase != CMFAIL) { + m = init_user_mstate(tbase, tsize); + m->seg.sflags = USE_MMAP_BIT; + set_lock(m, locked); + } + } + return (mspace)m; +} + +mspace rak_create_mspace_with_base(void* base, size_t capacity, int locked) { + mstate m = 0; + size_t msize; + ensure_initialization(); + msize = pad_request(sizeof(struct malloc_state)); + if (capacity > msize + TOP_FOOT_SIZE && + capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + m = init_user_mstate((char*)base, capacity); + m->seg.sflags = EXTERN_BIT; + set_lock(m, locked); + } + return (mspace)m; +} + +int rak_mspace_track_large_chunks(mspace msp, int enable) { + int ret = 0; + mstate ms = (mstate)msp; + if (!PREACTION(ms)) { + if (!use_mmap(ms)) + ret = 1; + if (!enable) + enable_mmap(ms); + else + disable_mmap(ms); + POSTACTION(ms); + } + return ret; +} + +size_t rak_destroy_mspace(mspace msp) { + size_t freed = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + msegmentptr sp = &ms->seg; + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + flag_t flag = sp->sflags; + sp = sp->next; + if ((flag & USE_MMAP_BIT) && !(flag & EXTERN_BIT) && + CALL_MUNMAP(base, size) == 0) + freed += size; + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return freed; +} + +/* +mspace versions of routines are near-clones of the global +versions. This is not so nice but better than the alternatives. +*/ + + +void* rak_mspace_malloc(mspace msp, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (!PREACTION(ms)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = ms->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(ms, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(ms, b, p, idx); + set_inuse_and_pinuse(ms, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (nb > ms->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(ms, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(ms, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(ms, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(ms, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (ms->treemap != 0 && (mem = tmalloc_small(ms, nb)) != 0) { + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (ms->treemap != 0 && (mem = tmalloc_large(ms, nb)) != 0) { + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + } + + if (nb <= ms->dvsize) { + size_t rsize = ms->dvsize - nb; + mchunkptr p = ms->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = ms->dv = chunk_plus_offset(p, nb); + ms->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + } + else { /* exhaust dv */ + size_t dvs = ms->dvsize; + ms->dvsize = 0; + ms->dv = 0; + set_inuse_and_pinuse(ms, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (nb < ms->topsize) { /* Split top */ + size_t rsize = ms->topsize -= nb; + mchunkptr p = ms->top; + mchunkptr r = ms->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + mem = chunk2mem(p); + check_top_chunk(ms, ms->top); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + mem = sys_alloc(ms, nb); + +postaction: + POSTACTION(ms); + return mem; + } + + return 0; +} + +void rak_mspace_free(mspace msp, void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + msp = msp; /* placate people compiling -Wunused */ +#else /* FOOTERS */ + mstate fm = (mstate)msp; +#endif /* FOOTERS */ + if (!ok_magic(fm)) { + USAGE_ERROR_ACTION(fm, p); + return; + } + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + else { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ + if (p != fm->dv) { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == fm->top) { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + + if (is_small(psize)) { + insert_small_chunk(fm, p, psize); + check_free_chunk(fm, p); + } + else { + tchunkptr tp = (tchunkptr)p; + insert_large_chunk(fm, tp, psize); + check_free_chunk(fm, p); + if (--fm->release_checks == 0) + release_unused_segments(fm); + } + goto postaction; + } + } +erroraction: + USAGE_ERROR_ACTION(fm, p); +postaction: + POSTACTION(fm); + } + } +} + +void* rak_mspace_calloc(mspace msp, size_t n_elements, size_t elem_size) { + void* mem; + size_t req = 0; + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (n_elements != 0) { + req = n_elements * elem_size; + if (((n_elements | elem_size) & ~(size_t)0xffff) && + (req / n_elements != elem_size)) + req = MAX_SIZE_T; /* force downstream failure on overflow */ + } + mem = internal_malloc(ms, req); + if (mem != 0 && calloc_must_clear(mem2chunk(mem))) + memset(mem, 0, req); + return mem; +} + +void* rak_mspace_realloc(mspace msp, void* oldmem, size_t bytes) { + if (oldmem == 0) + return rak_mspace_malloc(msp, bytes); +#ifdef REALLOC_ZERO_BYTES_FREES + if (bytes == 0) { + rak_mspace_free(msp, oldmem); + return 0; + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { +#if FOOTERS + mchunkptr p = mem2chunk(oldmem); + mstate ms = get_mstate_for(p); +#else /* FOOTERS */ + mstate ms = (mstate)msp; +#endif /* FOOTERS */ + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return internal_realloc(ms, oldmem, bytes); + } +} + +void* rak_mspace_memalign(mspace msp, size_t alignment, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return internal_memalign(ms, alignment, bytes); +} + +void** rak_mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]) { + size_t sz = elem_size; /* serves as 1-element array */ + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return ialloc(ms, n_elements, &sz, 3, chunks); +} + +void** rak_mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return ialloc(ms, n_elements, sizes, 0, chunks); +} + +int rak_mspace_trim(mspace msp, size_t pad) { + int result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + if (!PREACTION(ms)) { + result = sys_trim(ms, pad); + POSTACTION(ms); + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +void rak_mspace_malloc_stats(mspace msp) { + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + internal_malloc_stats(ms); + } + else { + USAGE_ERROR_ACTION(ms,ms); + } +} + +size_t rak_mspace_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + result = ms->footprint; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + + +size_t mspace_max_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + result = ms->max_footprint; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + + +#if !NO_MALLINFO +struct mallinfo rak_mspace_mallinfo(mspace msp) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + } + return internal_mallinfo(ms); +} +#endif /* NO_MALLINFO */ + +size_t rak_mspace_usable_size(void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +} + +int rak_mspace_mallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +#endif /* MSPACES */ + + +/* -------------------- Alternative MORECORE functions ------------------- */ + +/* +Guidelines for creating a custom version of MORECORE: + +* For best performance, MORECORE should allocate in multiples of pagesize. +* MORECORE may allocate more memory than requested. (Or even less, +but this will usually result in a malloc failure.) +* MORECORE must not allocate memory when given argument zero, but +instead return one past the end address of memory from previous +nonzero call. +* For best performance, consecutive calls to MORECORE with positive +arguments should return increasing addresses, indicating that +space has been contiguously extended. +* Even though consecutive calls to MORECORE need not return contiguous +addresses, it must be OK for malloc'ed chunks to span multiple +regions in those cases where they do happen to be contiguous. +* MORECORE need not handle negative arguments -- it may instead +just return MFAIL when given negative arguments. +Negative arguments are always multiples of pagesize. MORECORE +must not misinterpret negative args as large positive unsigned +args. You can suppress all such calls from even occurring by defining +MORECORE_CANNOT_TRIM, + +As an example alternative MORECORE, here is a custom allocator +kindly contributed for pre-OSX macOS. It uses virtually but not +necessarily physically contiguous non-paged memory (locked in, +present and won't get swapped out). You can use it by uncommenting +this section, adding some #includes, and setting up the appropriate +defines above: + +#define MORECORE osMoreCore + +There is also a shutdown routine that should somehow be called for +cleanup upon program exit. + +#define MAX_POOL_ENTRIES 100 +#define MINIMUM_MORECORE_SIZE (64 * 1024U) +static int next_os_pool; +void *our_os_pools[MAX_POOL_ENTRIES]; + +void *osMoreCore(int size) +{ +void *ptr = 0; +static void *sbrk_top = 0; + +if (size > 0) +{ +if (size < MINIMUM_MORECORE_SIZE) +size = MINIMUM_MORECORE_SIZE; +if (CurrentExecutionLevel() == kTaskLevel) +ptr = PoolAllocateResident(size + RM_PAGE_SIZE, 0); +if (ptr == 0) +{ +return (void *) MFAIL; +} +// save ptrs so they can be freed during cleanup +our_os_pools[next_os_pool] = ptr; +next_os_pool++; +ptr = (void *) ((((size_t) ptr) + RM_PAGE_MASK) & ~RM_PAGE_MASK); +sbrk_top = (char *) ptr + size; +return ptr; +} +else if (size < 0) +{ +// we don't currently support shrink behavior +return (void *) MFAIL; +} +else +{ +return sbrk_top; +} +} + +// cleanup any allocated memory pools +// called as last thing before shutting down driver + +void osCleanupMem(void) +{ +void **ptr; + +for (ptr = our_os_pools; ptr < &our_os_pools[MAX_POOL_ENTRIES]; ptr++) +if (*ptr) +{ +PoolDeallocate(*ptr); +*ptr = 0; +} +} + +*/ + + +/* ----------------------------------------------------------------------- +History: +V2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee) +* Use zeros instead of prev foot for is_mmapped +* Add rak_mspace_track_large_chunks; thanks to Jean Brouwers +* Fix set_inuse in internal_realloc; thanks to Jean Brouwers +* Fix insufficient sys_alloc padding when using 16byte alignment +* Fix bad error check in rak_mspace_footprint +* Adaptations for ptmalloc; thanks to Wolfram Gloger. +* Reentrant spin locks; thanks to Earl Chew and others +* Win32 improvements; thanks to Niall Douglas and Earl Chew +* Add NO_SEGMENT_TRAVERSAL and MAX_RELEASE_CHECK_RATE options +* Extension hook in malloc_state +* Various small adjustments to reduce warnings on some compilers +* Various configuration extensions/changes for more platforms. Thanks +to all who contributed these. + +V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee) +* Add max_footprint functions +* Ensure all appropriate literals are size_t +* Fix conditional compilation problem for some #define settings +* Avoid concatenating segments with the one provided +in rak_create_mspace_with_base +* Rename some variables to avoid compiler shadowing warnings +* Use explicit lock initialization. +* Better handling of sbrk interference. +* Simplify and fix segment insertion, trimming and mspace_destroy +* Reinstate REALLOC_ZERO_BYTES_FREES option from 2.7.x +* Thanks especially to Dennis Flanagan for help on these. + +V2.8.2 Sun Jun 12 16:01:10 2005 Doug Lea (dl at gee) +* Fix memalign brace error. + +V2.8.1 Wed Jun 8 16:11:46 2005 Doug Lea (dl at gee) +* Fix improper #endif nesting in C++ +* Add explicit casts needed for C++ + +V2.8.0 Mon May 30 14:09:02 2005 Doug Lea (dl at gee) +* Use trees for large bins +* Support mspaces +* Use segments to unify sbrk-based and mmap-based system allocation, +removing need for emulation on most platforms without sbrk. +* Default safety checks +* Optional footer checks. Thanks to William Robertson for the idea. +* Internal code refactoring +* Incorporate suggestions and platform-specific changes. +Thanks to Dennis Flanagan, Colin Plumb, Niall Douglas, +Aaron Bachmann, Emery Berger, and others. +* Speed up non-fastbin processing enough to remove fastbins. +* Remove useless cfree() to avoid conflicts with other apps. +* Remove internal memcpy, memset. Compilers handle builtins better. +* Remove some options that no one ever used and rename others. + +V2.7.2 Sat Aug 17 09:07:30 2002 Doug Lea (dl at gee) +* Fix malloc_state bitmap array misdeclaration + +V2.7.1 Thu Jul 25 10:58:03 2002 Doug Lea (dl at gee) +* Allow tuning of FIRST_SORTED_BIN_SIZE +* Use PTR_UINT as type for all ptr->int casts. Thanks to John Belmonte. +* Better detection and support for non-contiguousness of MORECORE. +Thanks to Andreas Mueller, Conal Walsh, and Wolfram Gloger +* Bypass most of malloc if no frees. Thanks To Emery Berger. +* Fix freeing of old top non-contiguous chunk im sysmalloc. +* Raised default trim and map thresholds to 256K. +* Fix mmap-related #defines. Thanks to Lubos Lunak. +* Fix copy macros; added LACKS_FCNTL_H. Thanks to Neal Walfield. +* Branch-free bin calculation +* Default trim and mmap thresholds now 256K. + +V2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee) +* Introduce independent_comalloc and independent_calloc. +Thanks to Michael Pachos for motivation and help. +* Make optional .h file available +* Allow > 2GB requests on 32bit systems. +* new DL_PLATFORM_WIN32 sbrk, mmap, munmap, lock code from . +Thanks also to Andreas Mueller , +and Anonymous. +* Allow override of MALLOC_ALIGNMENT (Thanks to Ruud Waij for +helping test this.) +* memalign: check alignment arg +* realloc: don't try to shift chunks backwards, since this +leads to more fragmentation in some programs and doesn't +seem to help in any others. +* Collect all cases in malloc requiring system memory into sysmalloc +* Use mmap as backup to sbrk +* Place all internal state in malloc_state +* Introduce fastbins (although similar to 2.5.1) +* Many minor tunings and cosmetic improvements +* Introduce USE_PUBLIC_MALLOC_WRAPPERS, USE_MALLOC_LOCK +* Introduce MALLOC_FAILURE_ACTION, MORECORE_CONTIGUOUS +Thanks to Tony E. Bennett and others. +* Include errno.h to support default failure action. + +V2.6.6 Sun Dec 5 07:42:19 1999 Doug Lea (dl at gee) +* return null for negative arguments +* Added Several DL_PLATFORM_WIN32 cleanups from Martin C. Fong +* Add 'LACKS_SYS_PARAM_H' for those systems without 'sys/param.h' +(e.g. DL_PLATFORM_WIN32 platforms) +* Cleanup header file inclusion for DL_PLATFORM_WIN32 platforms +* Cleanup code to avoid Microsoft Visual C++ compiler complaints +* Add 'USE_DL_PREFIX' to quickly allow co-existence with existing +memory allocation routines +* Set 'malloc_getpagesize' for DL_PLATFORM_WIN32 platforms (needs more work) +* Use 'assert' rather than 'ASSERT' in DL_PLATFORM_WIN32 code to conform to +usage of 'assert' in non-DL_PLATFORM_WIN32 code +* Improve DL_PLATFORM_WIN32 'sbrk()' emulation's 'findRegion()' routine to +avoid infinite loop +* Always call 'fREe()' rather than 'free()' + +V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee) +* Fixed ordering problem with boundary-stamping + +V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee) +* Added pvalloc, as recommended by H.J. Liu +* Added 64bit pointer support mainly from Wolfram Gloger +* Added anonymously donated DL_PLATFORM_WIN32 sbrk emulation +* Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen +* malloc_extend_top: fix mask error that caused wastage after +foreign sbrks +* Add linux mremap support code from HJ Liu + +V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee) +* Integrated most documentation with the code. +* Add support for mmap, with help from +Wolfram Gloger (Gloger@lrz.uni-muenchen.de). +* Use last_remainder in more cases. +* Pack bins using idea from colin@nyx10.cs.du.edu +* Use ordered bins instead of best-fit threshhold +* Eliminate block-local decls to simplify tracing and debugging. +* Support another case of realloc via move into top +* Fix error occuring when initial sbrk_base not word-aligned. +* Rely on page size for units instead of SBRK_UNIT to +avoid surprises about sbrk alignment conventions. +* Add mallinfo, mallopt. Thanks to Raymond Nijssen +(raymond@es.ele.tue.nl) for the suggestion. +* Add `pad' argument to malloc_trim and top_pad mallopt parameter. +* More precautions for cases where other routines call sbrk, +courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de). +* Added macros etc., allowing use in linux libc from +H.J. Lu (hjl@gnu.ai.mit.edu) +* Inverted this history list + +V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee) +* Re-tuned and fixed to behave more nicely with V2.6.0 changes. +* Removed all preallocation code since under current scheme +the work required to undo bad preallocations exceeds +the work saved in good cases for most test programs. +* No longer use return list or unconsolidated bins since +no scheme using them consistently outperforms those that don't +given above changes. +* Use best fit for very large chunks to prevent some worst-cases. +* Added some support for debugging + +V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee) +* Removed footers when chunks are in use. Thanks to +Paul Wilson (wilson@cs.texas.edu) for the suggestion. + +V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee) +* Added malloc_trim, with help from Wolfram Gloger +(wmglo@Dent.MED.Uni-Muenchen.DE). + +V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g) + +V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g) +* realloc: try to expand in both directions +* malloc: swap order of clean-bin strategy; +* realloc: only conditionally expand backwards +* Try not to scavenge used bins +* Use bin counts as a guide to preallocation +* Occasionally bin return list chunks in first scan +* Add a few optimizations from colin@nyx10.cs.du.edu + +V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g) +* faster bin computation & slightly different binning +* merged all consolidations to one part of malloc proper +(eliminating old malloc_find_space & malloc_clean_bin) +* Scan 2 returns chunks (not just 1) +* Propagate failure in realloc if malloc returns 0 +* Add stuff to allow compilation on non-ANSI compilers +from kpv@research.att.com + +V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu) +* removed potential for odd address access in prev_chunk +* removed dependency on getpagesize.h +* misc cosmetics and a bit more internal documentation +* anticosmetics: mangled names in macros to evade debugger strangeness +* tested on sparc, hp-700, dec-mips, rs6000 +with gcc & native cc (hp, dec only) allowing +Detlefs & Zorn comparison study (in SIGPLAN Notices.) + +Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu) +* Based loosely on libg++-1.2X malloc. (It retains some of the overall +structure of old version, but most details differ.) + +*/ + +#endif // _RAKNET_SUPPORT_DL_MALLOC diff --git a/src/raknet/rdlmalloc.h b/src/raknet/rdlmalloc.h new file mode 100755 index 0000000..1458c02 --- /dev/null +++ b/src/raknet/rdlmalloc.h @@ -0,0 +1,2261 @@ +#ifdef _RAKNET_SUPPORT_DL_MALLOC + +/* +Default header file for malloc-2.8.x, written by Doug Lea +and released to the public domain, as explained at +http://creativecommons.org/licenses/publicdomain. + +last update: Wed May 27 14:25:17 2009 Doug Lea (dl at gee) + +This header is for ANSI C/C++ only. You can set any of +the following #defines before including: + +* If USE_DL_PREFIX is defined, it is assumed that malloc.c +was also compiled with this option, so all routines +have names starting with "dl". + +* If HAVE_USR_INCLUDE_MALLOC_H is defined, it is assumed that this +file will be #included AFTER . This is needed only if +your system defines a struct mallinfo that is incompatible with the +standard one declared here. Otherwise, you can include this file +INSTEAD of your system system . At least on ANSI, all +declarations should be compatible with system versions + +* If MSPACES is defined, declarations for mspace versions are included. +*/ + +#ifndef MALLOC_280_H +#define MALLOC_280_H + +#include "rdlmalloc-options.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include /* for size_t */ + +#ifndef ONLY_MSPACES +#define ONLY_MSPACES 0 /* define to a value */ +#endif /* ONLY_MSPACES */ +#ifndef NO_MALLINFO +#define NO_MALLINFO 0 +#endif /* NO_MALLINFO */ + + +#if !ONLY_MSPACES + +#ifndef USE_DL_PREFIX +#define rdlcalloc calloc +#define rdlfree free +#define rdlmalloc malloc +#define rdlmemalign memalign +#define rdlrealloc realloc +#define rdlvalloc valloc +#define rdlpvalloc pvalloc +#define rdlmallinfo mallinfo +#define rdlmallopt mallopt +#define rdlmalloc_trim malloc_trim +#define rdlmalloc_stats malloc_stats +#define rdlmalloc_usable_size malloc_usable_size +#define rdlmalloc_footprint malloc_footprint +#define rdlindependent_calloc independent_calloc +#define rdlindependent_comalloc independent_comalloc +#endif /* USE_DL_PREFIX */ +#if !NO_MALLINFO +#ifndef HAVE_USR_INCLUDE_MALLOC_H +#ifndef _MALLOC_H +#ifndef MALLINFO_FIELD_TYPE +#define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ +#ifndef STRUCT_MALLINFO_DECLARED +#define STRUCT_MALLINFO_DECLARED 1 + struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ + }; +#endif /* STRUCT_MALLINFO_DECLARED */ +#endif /* _MALLOC_H */ +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +#endif /* !NO_MALLINFO */ + + /* + malloc(size_t n) + Returns a pointer to a newly allocated chunk of at least n bytes, or + null if no space is available, in which case errno is set to ENOMEM + on ANSI C systems. + + If n is zero, malloc returns a minimum-sized chunk. (The minimum + size is 16 bytes on most 32bit systems, and 32 bytes on 64bit + systems.) Note that size_t is an unsigned type, so calls with + arguments that would be negative if signed are interpreted as + requests for huge amounts of space, which will often fail. The + maximum supported value of n differs across systems, but is in all + cases less than the maximum representable value of a size_t. + */ + void* rdlmalloc(size_t); + + /* + free(void* p) + Releases the chunk of memory pointed to by p, that had been previously + allocated using malloc or a related routine such as realloc. + It has no effect if p is null. If p was not malloced or already + freed, free(p) will by default cuase the current program to abort. + */ + void rdlfree(void*); + + /* + calloc(size_t n_elements, size_t element_size); + Returns a pointer to n_elements * element_size bytes, with all locations + set to zero. + */ + void* rdlcalloc(size_t, size_t); + + /* + realloc(void* p, size_t n) + Returns a pointer to a chunk of size n that contains the same data + as does chunk p up to the minimum of (n, p's size) bytes, or null + if no space is available. + + The returned pointer may or may not be the same as p. The algorithm + prefers extending p in most cases when possible, otherwise it + employs the equivalent of a malloc-copy-free sequence. + + If p is null, realloc is equivalent to malloc. + + If space is not available, realloc returns null, errno is set (if on + ANSI) and p is NOT freed. + + if n is for fewer bytes than already held by p, the newly unused + space is lopped off and freed if possible. realloc with a size + argument of zero (re)allocates a minimum-sized chunk. + + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is not supported. + */ + + void* rdlrealloc(void*, size_t); + + /* + memalign(size_t alignment, size_t n); + Returns a pointer to a newly allocated chunk of n bytes, aligned + in accord with the alignment argument. + + The alignment argument should be a power of two. If the argument is + not a power of two, the nearest greater power is used. + 8-byte alignment is guaranteed by normal malloc calls, so don't + bother calling memalign with an argument of 8 or less. + + Overreliance on memalign is a sure way to fragment space. + */ + void* rdlmemalign(size_t, size_t); + + /* + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system. If the pagesize is unknown, 4096 is used. + */ + void* rdlvalloc(size_t); + + /* + mallopt(int parameter_number, int parameter_value) + Sets tunable parameters The format is to provide a + (parameter-number, parameter-value) pair. mallopt then sets the + corresponding parameter to the argument value if it can (i.e., so + long as the value is meaningful), and returns 1 if successful else + 0. SVID/XPG/ANSI defines four standard param numbers for mallopt, + normally defined in malloc.h. None of these are use in this malloc, + so setting them has no effect. But this malloc also supports other + options in mallopt: + + Symbol param # default allowed param values + M_TRIM_THRESHOLD -1 2*1024*1024 any (-1U disables trimming) + M_GRANULARITY -2 page size any power of 2 >= page size + M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support) + */ + int rdlmallopt(int, int); + +#define M_TRIM_THRESHOLD (-1) +#define M_GRANULARITY (-2) +#define M_MMAP_THRESHOLD (-3) + + + /* + malloc_footprint(); + Returns the number of bytes obtained from the system. The total + number of bytes allocated by malloc, realloc etc., is less than this + value. Unlike mallinfo, this function returns only a precomputed + result, so can be called frequently to monitor memory consumption. + Even if locks are otherwise defined, this function does not use them, + so results might not be up to date. + */ + size_t rdlmalloc_footprint(); + +#if !NO_MALLINFO + /* + mallinfo() + Returns (by copy) a struct containing various summary statistics: + + arena: current total non-mmapped bytes allocated from system + ordblks: the number of free chunks + smblks: always zero. + hblks: current number of mmapped regions + hblkhd: total bytes held in mmapped regions + usmblks: the maximum total allocated space. This will be greater + than current total if trimming has occurred. + fsmblks: always zero + uordblks: current total allocated space (normal or mmapped) + fordblks: total free space + keepcost: the maximum number of bytes that could ideally be released + back to system via malloc_trim. ("ideally" means that + it ignores page restrictions etc.) + + Because these fields are ints, but internal bookkeeping may + be kept as longs, the reported values may wrap around zero and + thus be inaccurate. + */ + + struct mallinfo rdlmallinfo(void); +#endif /* NO_MALLINFO */ + + /* + independent_calloc(size_t n_elements, size_t element_size, void* chunks[]); + + independent_calloc is similar to calloc, but instead of returning a + single cleared space, it returns an array of pointers to n_elements + independent elements that can hold contents of size elem_size, each + of which starts out cleared, and can be independently freed, + realloc'ed etc. The elements are guaranteed to be adjacently + allocated (this is not guaranteed to occur with multiple callocs or + mallocs), which may also improve cache locality in some + applications. + + The "chunks" argument is optional (i.e., may be null, which is + probably the most typical usage). If it is null, the returned array + is itself dynamically allocated and should also be freed when it is + no longer needed. Otherwise, the chunks array must be of at least + n_elements in length. It is filled in with the pointers to the + chunks. + + In either case, independent_calloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and "chunks" + is null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use regular calloc and assign pointers into this + space to represent elements. (In this case though, you cannot + independently free elements.) + + independent_calloc simplifies and speeds up implementations of many + kinds of pools. It may also be useful when constructing large data + structures that initially have a fixed number of fixed-sized nodes, + but the number is not known at compile time, and some of the nodes + may later need to be freed. For example: + + struct Node { int item; struct Node* next; }; + + struct Node* build_list() { + struct Node** pool; + int n = read_number_of_nodes_needed(); + if (n <= 0) return 0; + pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0); + if (pool == 0) die(); + // organize into a linked list... + struct Node* first = pool[0]; + for (i = 0; i < n-1; ++i) + pool[i]->next = pool[i+1]; + free(pool); // Can now free the array (or not, if it is needed later) + return first; + } + */ + void** rdlindependent_calloc(size_t, size_t, void**); + + /* + independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]); + + independent_comalloc allocates, all at once, a set of n_elements + chunks with sizes indicated in the "sizes" array. It returns + an array of pointers to these elements, each of which can be + independently freed, realloc'ed etc. The elements are guaranteed to + be adjacently allocated (this is not guaranteed to occur with + multiple callocs or mallocs), which may also improve cache locality + in some applications. + + The "chunks" argument is optional (i.e., may be null). If it is null + the returned array is itself dynamically allocated and should also + be freed when it is no longer needed. Otherwise, the chunks array + must be of at least n_elements in length. It is filled in with the + pointers to the chunks. + + In either case, independent_comalloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and chunks is + null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use a single regular malloc, and assign pointers at + particular offsets in the aggregate space. (In this case though, you + cannot independently free elements.) + + independent_comallac differs from independent_calloc in that each + element may have a different size, and also that it does not + automatically clear elements. + + independent_comalloc can be used to speed up allocation in cases + where several structs or objects must always be allocated at the + same time. For example: + + struct Head { ... } + struct Foot { ... } + + void send_message(char* msg) { + int msglen = strlen(msg); + size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) }; + void* chunks[3]; + if (independent_comalloc(3, sizes, chunks) == 0) + die(); + struct Head* head = (struct Head*)(chunks[0]); + char* body = (char*)(chunks[1]); + struct Foot* foot = (struct Foot*)(chunks[2]); + // ... + } + + In general though, independent_comalloc is worth using only for + larger values of n_elements. For small values, you probably won't + detect enough difference from series of malloc calls to bother. + + Overuse of independent_comalloc can increase overall memory usage, + since it cannot reuse existing noncontiguous small chunks that + might be available for some of the elements. + */ + void** rdlindependent_comalloc(size_t, size_t*, void**); + + + /* + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + */ + void* rdlpvalloc(size_t); + + /* + malloc_trim(size_t pad); + + If possible, gives memory back to the system (via negative arguments + to sbrk) if there is unused memory at the `high' end of the malloc + pool or in unused MMAP segments. You can call this after freeing + large blocks of memory to potentially reduce the system-level memory + requirements of a program. However, it cannot guarantee to reduce + memory. Under some allocation patterns, some large free blocks of + memory will be locked between two used chunks, so they cannot be + given back to the system. + + The `pad' argument to malloc_trim represents the amount of free + trailing space to leave untrimmed. If this argument is zero, only + the minimum amount of memory to maintain internal data structures + will be left. Non-zero arguments can be supplied to maintain enough + trailing space to service future expected allocations without having + to re-obtain memory from the system. + + Malloc_trim returns 1 if it actually released any memory, else 0. + */ + int rdlmalloc_trim(size_t); + + /* + malloc_stats(); + Prints on stderr the amount of space obtained from the system (both + via sbrk and mmap), the maximum amount (which may be more than + current if malloc_trim and/or munmap got called), and the current + number of bytes allocated via malloc (or realloc, etc) but not yet + freed. Note that this is the number of bytes allocated, not the + number requested. It will be larger than the number requested + because of alignment and bookkeeping overhead. Because it includes + alignment wastage as being in use, this figure may be greater than + zero even when no user-level chunks are allocated. + + The reported current and maximum system memory can be inaccurate if + a program makes other calls to system memory allocation functions + (normally sbrk) outside of malloc. + + malloc_stats prints only the most commonly interesting statistics. + More information can be obtained by calling mallinfo. + */ + void rdlmalloc_stats(); + +#endif /* !ONLY_MSPACES */ + + /* + malloc_usable_size(void* p); + + Returns the number of bytes you can actually use in + an allocated chunk, which may be more than you requested (although + often not) due to alignment and minimum size constraints. + You can use this many bytes without worrying about + overwriting other allocated objects. This is not a particularly great + programming practice. malloc_usable_size can be more useful in + debugging and assertions, for example: + + p = malloc(n); + assert(malloc_usable_size(p) >= 256); + */ + size_t rdlmalloc_usable_size(void*); + + +#if MSPACES + + /* + mspace is an opaque type representing an independent + region of space that supports rak_mspace_malloc, etc. + */ + typedef void* mspace; + + /* + rak_create_mspace creates and returns a new independent space with the + given initial capacity, or, if 0, the default granularity size. It + returns null if there is no system memory available to create the + space. If argument locked is non-zero, the space uses a separate + lock to control access. The capacity of the space will grow + dynamically as needed to service rak_mspace_malloc requests. You can + control the sizes of incremental increases of this space by + compiling with a different DEFAULT_GRANULARITY or dynamically + setting with mallopt(M_GRANULARITY, value). + */ + mspace rak_create_mspace(size_t capacity, int locked); + + /* + rak_destroy_mspace destroys the given space, and attempts to return all + of its memory back to the system, returning the total number of + bytes freed. After destruction, the results of access to all memory + used by the space become undefined. + */ + size_t rak_destroy_mspace(mspace msp); + + /* + rak_create_mspace_with_base uses the memory supplied as the initial base + of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this + space is used for bookkeeping, so the capacity must be at least this + large. (Otherwise 0 is returned.) When this initial space is + exhausted, additional memory will be obtained from the system. + Destroying this space will deallocate all additionally allocated + space (if possible) but not the initial base. + */ + mspace rak_create_mspace_with_base(void* base, size_t capacity, int locked); + + /* + rak_mspace_track_large_chunks controls whether requests for large chunks + are allocated in their own untracked mmapped regions, separate from + others in this mspace. By default large chunks are not tracked, + which reduces fragmentation. However, such chunks are not + necessarily released to the system upon rak_destroy_mspace. Enabling + tracking by setting to true may increase fragmentation, but avoids + leakage when relying on rak_destroy_mspace to release all memory + allocated using this space. The function returns the previous + setting. + */ + int rak_mspace_track_large_chunks(mspace msp, int enable); + + /* + rak_mspace_malloc behaves as malloc, but operates within + the given space. + */ + void* rak_mspace_malloc(mspace msp, size_t bytes); + + /* + rak_mspace_free behaves as free, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_free is not actually needed. + free may be called instead of rak_mspace_free because freed chunks from + any space are handled by their originating spaces. + */ + void rak_mspace_free(mspace msp, void* mem); + + /* + rak_mspace_realloc behaves as realloc, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_realloc is not actually + needed. realloc may be called instead of rak_mspace_realloc because + realloced chunks from any space are handled by their originating + spaces. + */ + void* rak_mspace_realloc(mspace msp, void* mem, size_t newsize); + + /* + rak_mspace_calloc behaves as calloc, but operates within + the given space. + */ + void* rak_mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + + /* + rak_mspace_memalign behaves as memalign, but operates within + the given space. + */ + void* rak_mspace_memalign(mspace msp, size_t alignment, size_t bytes); + + /* + rak_mspace_independent_calloc behaves as independent_calloc, but + operates within the given space. + */ + void** rak_mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]); + + /* + rak_mspace_independent_comalloc behaves as independent_comalloc, but + operates within the given space. + */ + void** rak_mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]); + + /* + rak_mspace_footprint() returns the number of bytes obtained from the + system for this space. + */ + size_t rak_mspace_footprint(mspace msp); + + +#if !NO_MALLINFO + /* + rak_mspace_mallinfo behaves as mallinfo, but reports properties of + the given space. + */ + struct mallinfo rak_mspace_mallinfo(mspace msp); +#endif /* NO_MALLINFO */ + + /* + malloc_usable_size(void* p) behaves the same as malloc_usable_size; + */ + size_t rak_mspace_usable_size(void* mem); + + /* + rak_mspace_malloc_stats behaves as malloc_stats, but reports + properties of the given space. + */ + void rak_mspace_malloc_stats(mspace msp); + + /* + rak_mspace_trim behaves as malloc_trim, but + operates within the given space. + */ + int rak_mspace_trim(mspace msp, size_t pad); + + /* + An alias for mallopt. + */ + int rak_mspace_mallopt(int, int); + +#endif /* MSPACES */ + +#ifdef __cplusplus +}; /* end of extern "C" */ +#endif + +/* +This is a version (aka rdlmalloc) of malloc/free/realloc written by +Doug Lea and released to the public domain, as explained at +http://creativecommons.org/licenses/publicdomain. Send questions, +comments, complaints, performance data, etc to dl@cs.oswego.edu + +* Version 2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee) + +Note: There may be an updated version of this malloc obtainable at +ftp://gee.cs.oswego.edu/pub/misc/malloc.c +Check before installing! + +* Quickstart + +This library is all in one file to simplify the most common usage: +ftp it, compile it (-O3), and link it into another program. All of +the compile-time options default to reasonable values for use on +most platforms. You might later want to step through various +compile-time and dynamic tuning options. + +For convenience, an include file for code using this malloc is at: +ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.4.h +You don't really need this .h file unless you call functions not +defined in your system include files. The .h file contains only the +excerpts from this file needed for using this malloc on ANSI C/C++ +systems, so long as you haven't changed compile-time options about +naming and tuning parameters. If you do, then you can create your +own malloc.h that does include all settings by cutting at the point +indicated below. Note that you may already by default be using a C +library containing a malloc that is based on some version of this +malloc (for example in linux). You might still want to use the one +in this file to customize settings or to avoid overheads associated +with library versions. + +* Vital statistics: + +Supported pointer/size_t representation: 4 or 8 bytes +size_t MUST be an unsigned type of the same width as +pointers. (If you are using an ancient system that declares +size_t as a signed type, or need it to be a different width +than pointers, you can use a previous release of this malloc +(e.g. 2.7.2) supporting these.) + +Alignment: 8 bytes (default) +This suffices for nearly all current machines and C compilers. +However, you can define MALLOC_ALIGNMENT to be wider than this +if necessary (up to 128bytes), at the expense of using more space. + +Minimum overhead per allocated chunk: 4 or 8 bytes (if 4byte sizes) +8 or 16 bytes (if 8byte sizes) +Each malloced chunk has a hidden word of overhead holding size +and status information, and additional cross-check word +if FOOTERS is defined. + +Minimum allocated size: 4-byte ptrs: 16 bytes (including overhead) +8-byte ptrs: 32 bytes (including overhead) + +Even a request for zero bytes (i.e., malloc(0)) returns a +pointer to something of the minimum allocatable size. +The maximum overhead wastage (i.e., number of extra bytes +allocated than were requested in malloc) is less than or equal +to the minimum size, except for requests >= mmap_threshold that +are serviced via mmap(), where the worst case wastage is about +32 bytes plus the remainder from a system page (the minimal +mmap unit); typically 4096 or 8192 bytes. + +Security: static-safe; optionally more or less +The "security" of malloc refers to the ability of malicious +code to accentuate the effects of errors (for example, freeing +space that is not currently malloc'ed or overwriting past the +ends of chunks) in code that calls malloc. This malloc +guarantees not to modify any memory locations below the base of +heap, i.e., static variables, even in the presence of usage +errors. The routines additionally detect most improper frees +and reallocs. All this holds as long as the static bookkeeping +for malloc itself is not corrupted by some other means. This +is only one aspect of security -- these checks do not, and +cannot, detect all possible programming errors. + +If FOOTERS is defined nonzero, then each allocated chunk +carries an additional check word to verify that it was malloced +from its space. These check words are the same within each +execution of a program using malloc, but differ across +executions, so externally crafted fake chunks cannot be +freed. This improves security by rejecting frees/reallocs that +could corrupt heap memory, in addition to the checks preventing +writes to statics that are always on. This may further improve +security at the expense of time and space overhead. (Note that +FOOTERS may also be worth using with MSPACES.) + +By default detected errors cause the program to abort (calling +"abort()"). You can override this to instead proceed past +errors by defining PROCEED_ON_ERROR. In this case, a bad free +has no effect, and a malloc that encounters a bad address +caused by user overwrites will ignore the bad address by +dropping pointers and indices to all known memory. This may +be appropriate for programs that should continue if at all +possible in the face of programming errors, although they may +run out of memory because dropped memory is never reclaimed. + +If you don't like either of these options, you can define +CORRUPTION_ERROR_ACTION and USAGE_ERROR_ACTION to do anything +else. And if if you are sure that your program using malloc has +no errors or vulnerabilities, you can define INSECURE to 1, +which might (or might not) provide a small performance improvement. + +Thread-safety: NOT thread-safe unless USE_LOCKS defined +When USE_LOCKS is defined, each public call to malloc, free, +etc is surrounded with either a pthread mutex or a win32 +spinlock (depending on DL_PLATFORM_WIN32). This is not especially fast, and +can be a major bottleneck. It is designed only to provide +minimal protection in concurrent environments, and to provide a +basis for extensions. If you are using malloc in a concurrent +program, consider instead using nedmalloc +(http://www.nedprod.com/programs/portable/nedmalloc/) or +ptmalloc (See http://www.malloc.de), which are derived +from versions of this malloc. + +System requirements: Any combination of MORECORE and/or MMAP/MUNMAP +This malloc can use unix sbrk or any emulation (invoked using +the CALL_MORECORE macro) and/or mmap/munmap or any emulation +(invoked using CALL_MMAP/CALL_MUNMAP) to get and release system +memory. On most unix systems, it tends to work best if both +MORECORE and MMAP are enabled. On Win32, it uses emulations +based on VirtualAlloc. It also uses common C library functions +like memset. + +Compliance: I believe it is compliant with the Single Unix Specification +(See http://www.unix.org). Also SVID/XPG, ANSI C, and probably +others as well. + +* Overview of algorithms + +This is not the fastest, most space-conserving, most portable, or +most tunable malloc ever written. However it is among the fastest +while also being among the most space-conserving, portable and +tunable. Consistent balance across these factors results in a good +general-purpose allocator for malloc-intensive programs. + +In most ways, this malloc is a best-fit allocator. Generally, it +chooses the best-fitting existing chunk for a request, with ties +broken in approximately least-recently-used order. (This strategy +normally maintains low fragmentation.) However, for requests less +than 256bytes, it deviates from best-fit when there is not an +exactly fitting available chunk by preferring to use space adjacent +to that used for the previous small request, as well as by breaking +ties in approximately most-recently-used order. (These enhance +locality of series of small allocations.) And for very large requests +(>= 256Kb by default), it relies on system memory mapping +facilities, if supported. (This helps avoid carrying around and +possibly fragmenting memory used only for large chunks.) + +All operations (except malloc_stats and mallinfo) have execution +times that are bounded by a constant factor of the number of bits in +a size_t, not counting any clearing in calloc or copying in realloc, +or actions surrounding MORECORE and MMAP that have times +proportional to the number of non-contiguous regions returned by +system allocation routines, which is often just 1. In real-time +applications, you can optionally suppress segment traversals using +NO_SEGMENT_TRAVERSAL, which assures bounded execution even when +system allocators return non-contiguous spaces, at the typical +expense of carrying around more memory and increased fragmentation. + +The implementation is not very modular and seriously overuses +macros. Perhaps someday all C compilers will do as good a job +inlining modular code as can now be done by brute-force expansion, +but now, enough of them seem not to. + +Some compilers issue a lot of warnings about code that is +dead/unreachable only on some platforms, and also about intentional +uses of negation on unsigned types. All known cases of each can be +ignored. + +For a longer but out of date high-level description, see +http://gee.cs.oswego.edu/dl/html/malloc.html + +* MSPACES +If MSPACES is defined, then in addition to malloc, free, etc., +this file also defines rak_mspace_malloc, rak_mspace_free, etc. These +are versions of malloc routines that take an "mspace" argument +obtained using rak_create_mspace, to control all internal bookkeeping. +If ONLY_MSPACES is defined, only these versions are compiled. +So if you would like to use this allocator for only some allocations, +and your system malloc for others, you can compile with +ONLY_MSPACES and then do something like... +static mspace mymspace = rak_create_mspace(0,0); // for example +#define mymalloc(bytes) rak_mspace_malloc(mymspace, bytes) + +(Note: If you only need one instance of an mspace, you can instead +use "USE_DL_PREFIX" to relabel the global malloc.) + +You can similarly create thread-local allocators by storing +mspaces as thread-locals. For example: +static __thread mspace tlms = 0; +void* tlmalloc(size_t bytes) { +if (tlms == 0) tlms = rak_create_mspace(0, 0); +return rak_mspace_malloc(tlms, bytes); +} +void tlfree(void* mem) { rak_mspace_free(tlms, mem); } + +Unless FOOTERS is defined, each mspace is completely independent. +You cannot allocate from one and free to another (although +conformance is only weakly checked, so usage errors are not always +caught). If FOOTERS is defined, then each chunk carries around a tag +indicating its originating mspace, and frees are directed to their +originating spaces. + +------------------------- Compile-time options --------------------------- + +Be careful in setting #define values for numerical constants of type +size_t. On some systems, literal values are not automatically extended +to size_t precision unless they are explicitly casted. You can also +use the symbolic values MAX_SIZE_T, SIZE_T_ONE, etc below. + +DL_PLATFORM_WIN32 default: defined if _WIN32 defined +Defining DL_PLATFORM_WIN32 sets up defaults for MS environment and compilers. +Otherwise defaults are for unix. Beware that there seem to be some +cases where this malloc might not be a pure drop-in replacement for +Win32 malloc: Random-looking failures from Win32 GDI API's (eg; +SetDIBits()) may be due to bugs in some video driver implementations +when pixel buffers are malloc()ed, and the region spans more than +one VirtualAlloc()ed region. Because rdlmalloc uses a small (64Kb) +default granularity, pixel buffers may straddle virtual allocation +regions more often than when using the Microsoft allocator. You can +avoid this by using VirtualAlloc() and VirtualFree() for all pixel +buffers rather than using malloc(). If this is not possible, +recompile this malloc with a larger DEFAULT_GRANULARITY. + +MALLOC_ALIGNMENT default: (size_t)8 +Controls the minimum alignment for malloc'ed chunks. It must be a +power of two and at least 8, even on machines for which smaller +alignments would suffice. It may be defined as larger than this +though. Note however that code and data structures are optimized for +the case of 8-byte alignment. + +MSPACES default: 0 (false) +If true, compile in support for independent allocation spaces. +This is only supported if HAVE_MMAP is true. + +ONLY_MSPACES default: 0 (false) +If true, only compile in mspace versions, not regular versions. + +USE_LOCKS default: 0 (false) +Causes each call to each public routine to be surrounded with +pthread or DL_PLATFORM_WIN32 mutex lock/unlock. (If set true, this can be +overridden on a per-mspace basis for mspace versions.) If set to a +non-zero value other than 1, locks are used, but their +implementation is left out, so lock functions must be supplied manually, +as described below. + +USE_SPIN_LOCKS default: 1 iff USE_LOCKS and on x86 using gcc or MSC +If true, uses custom spin locks for locking. This is currently +supported only for x86 platforms using gcc or recent MS compilers. +Otherwise, posix locks or win32 critical sections are used. + +FOOTERS default: 0 +If true, provide extra checking and dispatching by placing +information in the footers of allocated chunks. This adds +space and time overhead. + +INSECURE default: 0 +If true, omit checks for usage errors and heap space overwrites. + +USE_DL_PREFIX default: NOT defined +Causes compiler to prefix all public routines with the string 'dl'. +This can be useful when you only want to use this malloc in one part +of a program, using your regular system malloc elsewhere. + +ABORT default: defined as abort() +Defines how to abort on failed checks. On most systems, a failed +check cannot die with an "assert" or even print an informative +message, because the underlying print routines in turn call malloc, +which will fail again. Generally, the best policy is to simply call +abort(). It's not very useful to do more than this because many +errors due to overwriting will show up as address faults (null, odd +addresses etc) rather than malloc-triggered checks, so will also +abort. Also, most compilers know that abort() does not return, so +can better optimize code conditionally calling it. + +PROCEED_ON_ERROR default: defined as 0 (false) +Controls whether detected bad addresses cause them to bypassed +rather than aborting. If set, detected bad arguments to free and +realloc are ignored. And all bookkeeping information is zeroed out +upon a detected overwrite of freed heap space, thus losing the +ability to ever return it from malloc again, but enabling the +application to proceed. If PROCEED_ON_ERROR is defined, the +static variable malloc_corruption_error_count is compiled in +and can be examined to see if errors have occurred. This option +generates slower code than the default abort policy. + +DEBUG default: NOT defined +The DEBUG setting is mainly intended for people trying to modify +this code or diagnose problems when porting to new platforms. +However, it may also be able to better isolate user errors than just +using runtime checks. The assertions in the check routines spell +out in more detail the assumptions and invariants underlying the +algorithms. The checking is fairly extensive, and will slow down +execution noticeably. Calling malloc_stats or mallinfo with DEBUG +set will attempt to check every non-mmapped allocated and free chunk +in the course of computing the summaries. + +ABORT_ON_ASSERT_FAILURE default: defined as 1 (true) +Debugging assertion failures can be nearly impossible if your +version of the assert macro causes malloc to be called, which will +lead to a cascade of further failures, blowing the runtime stack. +ABORT_ON_ASSERT_FAILURE cause assertions failures to call abort(), +which will usually make debugging easier. + +MALLOC_FAILURE_ACTION default: sets errno to ENOMEM, or no-op on win32 +The action to take before "return 0" when malloc fails to be able to +return memory because there is none available. + +HAVE_MORECORE default: 1 (true) unless win32 or ONLY_MSPACES +True if this system supports sbrk or an emulation of it. + +MORECORE default: sbrk +The name of the sbrk-style system routine to call to obtain more +memory. See below for guidance on writing custom MORECORE +functions. The type of the argument to sbrk/MORECORE varies across +systems. It cannot be size_t, because it supports negative +arguments, so it is normally the signed type of the same width as +size_t (sometimes declared as "intptr_t"). It doesn't much matter +though. Internally, we only call it with arguments less than half +the max value of a size_t, which should work across all reasonable +possibilities, although sometimes generating compiler warnings. + +MORECORE_CONTIGUOUS default: 1 (true) if HAVE_MORECORE +If true, take advantage of fact that consecutive calls to MORECORE +with positive arguments always return contiguous increasing +addresses. This is true of unix sbrk. It does not hurt too much to +set it true anyway, since malloc copes with non-contiguities. +Setting it false when definitely non-contiguous saves time +and possibly wasted space it would take to discover this though. + +MORECORE_CANNOT_TRIM default: NOT defined +True if MORECORE cannot release space back to the system when given +negative arguments. This is generally necessary only if you are +using a hand-crafted MORECORE function that cannot handle negative +arguments. + +NO_SEGMENT_TRAVERSAL default: 0 +If non-zero, suppresses traversals of memory segments +returned by either MORECORE or CALL_MMAP. This disables +merging of segments that are contiguous, and selectively +releasing them to the OS if unused, but bounds execution times. + +HAVE_MMAP default: 1 (true) +True if this system supports mmap or an emulation of it. If so, and +HAVE_MORECORE is not true, MMAP is used for all system +allocation. If set and HAVE_MORECORE is true as well, MMAP is +primarily used to directly allocate very large blocks. It is also +used as a backup strategy in cases where MORECORE fails to provide +space from system. Note: A single call to MUNMAP is assumed to be +able to unmap memory that may have be allocated using multiple calls +to MMAP, so long as they are adjacent. + +HAVE_MREMAP default: 1 on linux, else 0 +If true realloc() uses mremap() to re-allocate large blocks and +extend or shrink allocation spaces. + +MMAP_CLEARS default: 1 except on WINCE. +True if mmap clears memory so calloc doesn't need to. This is true +for standard unix mmap using /dev/zero and on DL_PLATFORM_WIN32 except for WINCE. + +USE_BUILTIN_FFS default: 0 (i.e., not used) +Causes malloc to use the builtin ffs() function to compute indices. +Some compilers may recognize and intrinsify ffs to be faster than the +supplied C version. Also, the case of x86 using gcc is special-cased +to an asm instruction, so is already as fast as it can be, and so +this setting has no effect. Similarly for Win32 under recent MS compilers. +(On most x86s, the asm version is only slightly faster than the C version.) + +malloc_getpagesize default: derive from system includes, or 4096. +The system page size. To the extent possible, this malloc manages +memory from the system in page-size units. This may be (and +usually is) a function rather than a constant. This is ignored +if DL_PLATFORM_WIN32, where page size is determined using getSystemInfo during +initialization. + +USE_DEV_RANDOM default: 0 (i.e., not used) +Causes malloc to use /dev/random to initialize secure magic seed for +stamping footers. Otherwise, the current time is used. + +NO_MALLINFO default: 0 +If defined, don't compile "mallinfo". This can be a simple way +of dealing with mismatches between system declarations and +those in this file. + +MALLINFO_FIELD_TYPE default: size_t +The type of the fields in the mallinfo struct. This was originally +defined as "int" in SVID etc, but is more usefully defined as +size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set + +REALLOC_ZERO_BYTES_FREES default: not defined +This should be set if a call to realloc with zero bytes should +be the same as a call to free. Some people think it should. Otherwise, +since this malloc returns a unique pointer for malloc(0), so does +realloc(p, 0). + +LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H +LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H +LACKS_STDLIB_H default: NOT defined unless on DL_PLATFORM_WIN32 +Define these if your system does not have these header files. +You might need to manually insert some of the declarations they provide. + +DEFAULT_GRANULARITY default: page size if MORECORE_CONTIGUOUS, +system_info.dwAllocationGranularity in DL_PLATFORM_WIN32, +otherwise 64K. +Also settable using mallopt(M_GRANULARITY, x) +The unit for allocating and deallocating memory from the system. On +most systems with contiguous MORECORE, there is no reason to +make this more than a page. However, systems with MMAP tend to +either require or encourage larger granularities. You can increase +this value to prevent system allocation functions to be called so +often, especially if they are slow. The value must be at least one +page and must be a power of two. Setting to 0 causes initialization +to either page size or win32 region size. (Note: In previous +versions of malloc, the equivalent of this option was called +"TOP_PAD") + +DEFAULT_TRIM_THRESHOLD default: 2MB +Also settable using mallopt(M_TRIM_THRESHOLD, x) +The maximum amount of unused top-most memory to keep before +releasing via malloc_trim in free(). Automatic trimming is mainly +useful in long-lived programs using contiguous MORECORE. Because +trimming via sbrk can be slow on some systems, and can sometimes be +wasteful (in cases where programs immediately afterward allocate +more large chunks) the value should be high enough so that your +overall system performance would improve by releasing this much +memory. As a rough guide, you might set to a value close to the +average size of a process (program) running on your system. +Releasing this much memory would allow such a process to run in +memory. Generally, it is worth tuning trim thresholds when a +program undergoes phases where several large chunks are allocated +and released in ways that can reuse each other's storage, perhaps +mixed with phases where there are no such chunks at all. The trim +value must be greater than page size to have any useful effect. To +disable trimming completely, you can set to MAX_SIZE_T. Note that the trick +some people use of mallocing a huge space and then freeing it at +program startup, in an attempt to reserve system memory, doesn't +have the intended effect under automatic trimming, since that memory +will immediately be returned to the system. + +DEFAULT_MMAP_THRESHOLD default: 256K +Also settable using mallopt(M_MMAP_THRESHOLD, x) +The request size threshold for using MMAP to directly service a +request. Requests of at least this size that cannot be allocated +using already-existing space will be serviced via mmap. (If enough +normal freed space already exists it is used instead.) Using mmap +segregates relatively large chunks of memory so that they can be +individually obtained and released from the host system. A request +serviced through mmap is never reused by any other request (at least +not directly; the system may just so happen to remap successive +requests to the same locations). Segregating space in this way has +the benefits that: Mmapped space can always be individually released +back to the system, which helps keep the system level memory demands +of a long-lived program low. Also, mapped memory doesn't become +`locked' between other chunks, as can happen with normally allocated +chunks, which means that even trimming via malloc_trim would not +release them. However, it has the disadvantage that the space +cannot be reclaimed, consolidated, and then used to service later +requests, as happens with normal chunks. The advantages of mmap +nearly always outweigh disadvantages for "large" chunks, but the +value of "large" may vary across systems. The default is an +empirically derived value that works well in most systems. You can +disable mmap by setting to MAX_SIZE_T. + +MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP +The number of consolidated frees between checks to release +unused segments when freeing. When using non-contiguous segments, +especially with multiple mspaces, checking only for topmost space +doesn't always suffice to trigger trimming. To compensate for this, +free() will, with a period of MAX_RELEASE_CHECK_RATE (or the +current number of segments, if greater) try to release unused +segments to the OS when freeing chunks that result in +consolidation. The best value for this parameter is a compromise +between slowing down frees with relatively costly checks that +rarely trigger versus holding on to unused memory. To effectively +disable, set to MAX_SIZE_T. This may lead to a very slight speed +improvement at the expense of carrying around more memory. +*/ + +/* Version identifier to allow people to support multiple versions */ +#ifndef DLMALLOC_VERSION +#define DLMALLOC_VERSION 20804 +#endif /* DLMALLOC_VERSION */ + +#include "rdlmalloc-options.h" + +#ifndef WIN32 +#if defined(_XBOX) || defined(X360) +#else +#if defined(_WIN32) +#define DL_PLATFORM_WIN32 1 +#endif /* _WIN32 */ +#ifdef _WIN32_WCE +#define LACKS_FCNTL_H +#define DL_PLATFORM_WIN32 1 +#endif /* _WIN32_WCE */ +#endif +#else +#define DL_PLATFORM_WIN32 1 +#endif /* DL_PLATFORM_WIN32 */ + +#if defined(_XBOX) || defined(X360) +#define HAVE_MMAP 1 +#define HAVE_MORECORE 0 +#define LACKS_UNISTD_H +#define LACKS_SYS_PARAM_H +#define LACKS_SYS_MMAN_H +#define LACKS_STRING_H +#define LACKS_STRINGS_H +#define LACKS_SYS_TYPES_H +#define LACKS_ERRNO_H +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION +#endif +#define MMAP_CLEARS 1 +#endif + +#if defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) +#define LACKS_SYS_PARAM_H +#include "sysutil\sysutil_sysparam.h" +#define LACKS_SYS_MMAN_H +#endif + + +#ifdef DL_PLATFORM_WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#define HAVE_MMAP 1 +#define HAVE_MORECORE 0 +#define LACKS_UNISTD_H +#define LACKS_SYS_PARAM_H +#define LACKS_SYS_MMAN_H +#define LACKS_STRING_H +#define LACKS_STRINGS_H +#define LACKS_SYS_TYPES_H +#define LACKS_ERRNO_H +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION +#endif /* MALLOC_FAILURE_ACTION */ +#ifdef _WIN32_WCE /* WINCE reportedly does not clear */ +#define MMAP_CLEARS 0 +#else +#define MMAP_CLEARS 1 +#endif /* _WIN32_WCE */ +#endif /* DL_PLATFORM_WIN32 */ + +#if defined(DARWIN) || defined(_DARWIN) +/* Mac OSX docs advise not to use sbrk; it seems better to use mmap */ +#ifndef HAVE_MORECORE +#define HAVE_MORECORE 0 +#define HAVE_MMAP 1 +/* OSX allocators provide 16 byte alignment */ +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGNMENT ((size_t)16U) +#endif +#endif /* HAVE_MORECORE */ +#endif /* DARWIN */ + +#ifndef LACKS_SYS_TYPES_H +#include /* For size_t */ +#endif /* LACKS_SYS_TYPES_H */ + +#if (defined(__GNUC__) && ((defined(__i386__) || defined(__x86_64__)))) || (defined(_MSC_VER) && _MSC_VER>=1310) +#define SPIN_LOCKS_AVAILABLE 1 +#else +#define SPIN_LOCKS_AVAILABLE 0 +#endif + +/* The maximum possible size_t value has all bits set */ +#define MAX_SIZE_T (~(size_t)0) + +#ifndef ONLY_MSPACES +#define ONLY_MSPACES 0 /* define to a value */ +#else +#define ONLY_MSPACES 1 +#endif /* ONLY_MSPACES */ +#ifndef MSPACES +#if ONLY_MSPACES +#define MSPACES 1 +#else /* ONLY_MSPACES */ +#define MSPACES 0 +#endif /* ONLY_MSPACES */ +#endif /* MSPACES */ +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGNMENT ((size_t)8U) +#endif /* MALLOC_ALIGNMENT */ +#ifndef FOOTERS +#define FOOTERS 0 +#endif /* FOOTERS */ +#ifndef ABORT +#define ABORT abort() +#endif /* ABORT */ +#ifndef ABORT_ON_ASSERT_FAILURE +#define ABORT_ON_ASSERT_FAILURE 1 +#endif /* ABORT_ON_ASSERT_FAILURE */ +#ifndef PROCEED_ON_ERROR +#define PROCEED_ON_ERROR 0 +#endif /* PROCEED_ON_ERROR */ +#ifndef USE_LOCKS +#define USE_LOCKS 0 +#endif /* USE_LOCKS */ +#ifndef USE_SPIN_LOCKS +#if USE_LOCKS && SPIN_LOCKS_AVAILABLE +#define USE_SPIN_LOCKS 1 +#else +#define USE_SPIN_LOCKS 0 +#endif /* USE_LOCKS && SPIN_LOCKS_AVAILABLE. */ +#endif /* USE_SPIN_LOCKS */ +#ifndef INSECURE +#define INSECURE 0 +#endif /* INSECURE */ +#ifndef HAVE_MMAP +#define HAVE_MMAP 1 +#endif /* HAVE_MMAP */ +#ifndef MMAP_CLEARS +#define MMAP_CLEARS 1 +#endif /* MMAP_CLEARS */ +#ifndef HAVE_MREMAP +#ifdef linux +#define HAVE_MREMAP 1 +#else /* linux */ +#define HAVE_MREMAP 0 +#endif /* linux */ +#endif /* HAVE_MREMAP */ +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION errno = ENOMEM; +#endif /* MALLOC_FAILURE_ACTION */ +#ifndef HAVE_MORECORE +#if ONLY_MSPACES +#define HAVE_MORECORE 0 +#else /* ONLY_MSPACES */ +#define HAVE_MORECORE 1 +#endif /* ONLY_MSPACES */ +#endif /* HAVE_MORECORE */ +#if !HAVE_MORECORE +#define MORECORE_CONTIGUOUS 0 +#else /* !HAVE_MORECORE */ +#define MORECORE_DEFAULT sbrk +#ifndef MORECORE_CONTIGUOUS +#define MORECORE_CONTIGUOUS 1 +#endif /* MORECORE_CONTIGUOUS */ +#endif /* HAVE_MORECORE */ +#ifndef DEFAULT_GRANULARITY +#if (MORECORE_CONTIGUOUS || defined(DL_PLATFORM_WIN32)) +#define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */ +#else /* MORECORE_CONTIGUOUS */ +#define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U) +#endif /* MORECORE_CONTIGUOUS */ +#endif /* DEFAULT_GRANULARITY */ +#ifndef DEFAULT_TRIM_THRESHOLD +#ifndef MORECORE_CANNOT_TRIM +#define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U) +#else /* MORECORE_CANNOT_TRIM */ +#define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T +#endif /* MORECORE_CANNOT_TRIM */ +#endif /* DEFAULT_TRIM_THRESHOLD */ +#ifndef DEFAULT_MMAP_THRESHOLD +#if HAVE_MMAP +#define DEFAULT_MMAP_THRESHOLD ((size_t)256U * (size_t)1024U) +#else /* HAVE_MMAP */ +#define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T +#endif /* HAVE_MMAP */ +#endif /* DEFAULT_MMAP_THRESHOLD */ +#ifndef MAX_RELEASE_CHECK_RATE +#if HAVE_MMAP +#define MAX_RELEASE_CHECK_RATE 4095 +#else +#define MAX_RELEASE_CHECK_RATE MAX_SIZE_T +#endif /* HAVE_MMAP */ +#endif /* MAX_RELEASE_CHECK_RATE */ +#ifndef USE_BUILTIN_FFS +#define USE_BUILTIN_FFS 0 +#endif /* USE_BUILTIN_FFS */ +#ifndef USE_DEV_RANDOM +#define USE_DEV_RANDOM 0 +#endif /* USE_DEV_RANDOM */ +#ifndef NO_MALLINFO +#define NO_MALLINFO 0 +#endif /* NO_MALLINFO */ +#ifndef MALLINFO_FIELD_TYPE +#define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ +#ifndef NO_SEGMENT_TRAVERSAL +#define NO_SEGMENT_TRAVERSAL 0 +#endif /* NO_SEGMENT_TRAVERSAL */ + +/* +mallopt tuning options. SVID/XPG defines four standard parameter +numbers for mallopt, normally defined in malloc.h. None of these +are used in this malloc, so setting them has no effect. But this +malloc does support the following options. +*/ + +#define M_TRIM_THRESHOLD (-1) +#define M_GRANULARITY (-2) +#define M_MMAP_THRESHOLD (-3) + +/* ------------------------ Mallinfo declarations ------------------------ */ + +#if !NO_MALLINFO +/* +This version of malloc supports the standard SVID/XPG mallinfo +routine that returns a struct containing usage properties and +statistics. It should work on any system that has a +/usr/include/malloc.h defining struct mallinfo. The main +declaration needed is the mallinfo struct that is returned (by-copy) +by mallinfo(). The malloinfo struct contains a bunch of fields that +are not even meaningful in this version of malloc. These fields are +are instead filled by mallinfo() with other numbers that might be of +interest. + +HAVE_USR_INCLUDE_MALLOC_H should be set if you have a +/usr/include/malloc.h file that includes a declaration of struct +mallinfo. If so, it is included; else a compliant version is +declared below. These must be precisely the same for mallinfo() to +work. The original SVID version of this struct, defined on most +systems with mallinfo, declares all fields as ints. But some others +define as unsigned long. If your system defines the fields using a +type of different width than listed here, you MUST #include your +system version and #define HAVE_USR_INCLUDE_MALLOC_H. +*/ + +/* #define HAVE_USR_INCLUDE_MALLOC_H */ + +#ifdef HAVE_USR_INCLUDE_MALLOC_H +#include "/usr/include/malloc.h" +#else /* HAVE_USR_INCLUDE_MALLOC_H */ +#ifndef STRUCT_MALLINFO_DECLARED +#define STRUCT_MALLINFO_DECLARED 1 +struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ +}; +#endif /* STRUCT_MALLINFO_DECLARED */ +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +#endif /* NO_MALLINFO */ + +/* +Try to persuade compilers to inline. The most critical functions for +inlining are defined as macros, so these aren't used for them. +*/ + +#ifndef FORCEINLINE +#if defined(__GNUC__) +#define FORCEINLINE __inline __attribute__ ((always_inline)) +#elif defined(_MSC_VER) +#define FORCEINLINE __forceinline +#endif +#endif +#ifndef NOINLINE +#if defined(__GNUC__) +#define NOINLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +#define NOINLINE __declspec(noinline) +#else +#define NOINLINE +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#ifndef FORCEINLINE +#define FORCEINLINE inline +#endif +#endif /* __cplusplus */ +#ifndef FORCEINLINE +#define FORCEINLINE +#endif + +#if !ONLY_MSPACES + + /* ------------------- Declarations of public routines ------------------- */ + +#ifndef USE_DL_PREFIX +#define rdlcalloc calloc +#define rdlfree free +#define rdlmalloc malloc +#define rdlmemalign memalign +#define rdlrealloc realloc +#define rdlvalloc valloc +#define rdlpvalloc pvalloc +#define rdlmallinfo mallinfo +#define rdlmallopt mallopt +#define rdlmalloc_trim malloc_trim +#define rdlmalloc_stats malloc_stats +#define rdlmalloc_usable_size malloc_usable_size +#define rdlmalloc_footprint malloc_footprint +#define dlmalloc_max_footprint malloc_max_footprint +#define rdlindependent_calloc independent_calloc +#define rdlindependent_comalloc independent_comalloc +#endif /* USE_DL_PREFIX */ + + + /* + malloc(size_t n) + Returns a pointer to a newly allocated chunk of at least n bytes, or + null if no space is available, in which case errno is set to ENOMEM + on ANSI C systems. + + If n is zero, malloc returns a minimum-sized chunk. (The minimum + size is 16 bytes on most 32bit systems, and 32 bytes on 64bit + systems.) Note that size_t is an unsigned type, so calls with + arguments that would be negative if signed are interpreted as + requests for huge amounts of space, which will often fail. The + maximum supported value of n differs across systems, but is in all + cases less than the maximum representable value of a size_t. + */ + void* rdlmalloc(size_t); + + /* + free(void* p) + Releases the chunk of memory pointed to by p, that had been previously + allocated using malloc or a related routine such as realloc. + It has no effect if p is null. If p was not malloced or already + freed, free(p) will by default cause the current program to abort. + */ + void rdlfree(void*); + + /* + calloc(size_t n_elements, size_t element_size); + Returns a pointer to n_elements * element_size bytes, with all locations + set to zero. + */ + void* rdlcalloc(size_t, size_t); + + /* + realloc(void* p, size_t n) + Returns a pointer to a chunk of size n that contains the same data + as does chunk p up to the minimum of (n, p's size) bytes, or null + if no space is available. + + The returned pointer may or may not be the same as p. The algorithm + prefers extending p in most cases when possible, otherwise it + employs the equivalent of a malloc-copy-free sequence. + + If p is null, realloc is equivalent to malloc. + + If space is not available, realloc returns null, errno is set (if on + ANSI) and p is NOT freed. + + if n is for fewer bytes than already held by p, the newly unused + space is lopped off and freed if possible. realloc with a size + argument of zero (re)allocates a minimum-sized chunk. + + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is not supported. + */ + + void* rdlrealloc(void*, size_t); + + /* + memalign(size_t alignment, size_t n); + Returns a pointer to a newly allocated chunk of n bytes, aligned + in accord with the alignment argument. + + The alignment argument should be a power of two. If the argument is + not a power of two, the nearest greater power is used. + 8-byte alignment is guaranteed by normal malloc calls, so don't + bother calling memalign with an argument of 8 or less. + + Overreliance on memalign is a sure way to fragment space. + */ + void* rdlmemalign(size_t, size_t); + + /* + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system. If the pagesize is unknown, 4096 is used. + */ + void* rdlvalloc(size_t); + + /* + mallopt(int parameter_number, int parameter_value) + Sets tunable parameters The format is to provide a + (parameter-number, parameter-value) pair. mallopt then sets the + corresponding parameter to the argument value if it can (i.e., so + long as the value is meaningful), and returns 1 if successful else + 0. To workaround the fact that mallopt is specified to use int, + not size_t parameters, the value -1 is specially treated as the + maximum unsigned size_t value. + + SVID/XPG/ANSI defines four standard param numbers for mallopt, + normally defined in malloc.h. None of these are use in this malloc, + so setting them has no effect. But this malloc also supports other + options in mallopt. See below for details. Briefly, supported + parameters are as follows (listed defaults are for "typical" + configurations). + + Symbol param # default allowed param values + M_TRIM_THRESHOLD -1 2*1024*1024 any (-1 disables) + M_GRANULARITY -2 page size any power of 2 >= page size + M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support) + */ + int rdlmallopt(int, int); + + /* + malloc_footprint(); + Returns the number of bytes obtained from the system. The total + number of bytes allocated by malloc, realloc etc., is less than this + value. Unlike mallinfo, this function returns only a precomputed + result, so can be called frequently to monitor memory consumption. + Even if locks are otherwise defined, this function does not use them, + so results might not be up to date. + */ + size_t rdlmalloc_footprint(void); + + /* + malloc_max_footprint(); + Returns the maximum number of bytes obtained from the system. This + value will be greater than current footprint if deallocated space + has been reclaimed by the system. The peak number of bytes allocated + by malloc, realloc etc., is less than this value. Unlike mallinfo, + this function returns only a precomputed result, so can be called + frequently to monitor memory consumption. Even if locks are + otherwise defined, this function does not use them, so results might + not be up to date. + */ + size_t dlmalloc_max_footprint(void); + +#if !NO_MALLINFO + /* + mallinfo() + Returns (by copy) a struct containing various summary statistics: + + arena: current total non-mmapped bytes allocated from system + ordblks: the number of free chunks + smblks: always zero. + hblks: current number of mmapped regions + hblkhd: total bytes held in mmapped regions + usmblks: the maximum total allocated space. This will be greater + than current total if trimming has occurred. + fsmblks: always zero + uordblks: current total allocated space (normal or mmapped) + fordblks: total free space + keepcost: the maximum number of bytes that could ideally be released + back to system via malloc_trim. ("ideally" means that + it ignores page restrictions etc.) + + Because these fields are ints, but internal bookkeeping may + be kept as longs, the reported values may wrap around zero and + thus be inaccurate. + */ + struct mallinfo rdlmallinfo(void); +#endif /* NO_MALLINFO */ + + /* + independent_calloc(size_t n_elements, size_t element_size, void* chunks[]); + + independent_calloc is similar to calloc, but instead of returning a + single cleared space, it returns an array of pointers to n_elements + independent elements that can hold contents of size elem_size, each + of which starts out cleared, and can be independently freed, + realloc'ed etc. The elements are guaranteed to be adjacently + allocated (this is not guaranteed to occur with multiple callocs or + mallocs), which may also improve cache locality in some + applications. + + The "chunks" argument is optional (i.e., may be null, which is + probably the most typical usage). If it is null, the returned array + is itself dynamically allocated and should also be freed when it is + no longer needed. Otherwise, the chunks array must be of at least + n_elements in length. It is filled in with the pointers to the + chunks. + + In either case, independent_calloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and "chunks" + is null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use regular calloc and assign pointers into this + space to represent elements. (In this case though, you cannot + independently free elements.) + + independent_calloc simplifies and speeds up implementations of many + kinds of pools. It may also be useful when constructing large data + structures that initially have a fixed number of fixed-sized nodes, + but the number is not known at compile time, and some of the nodes + may later need to be freed. For example: + + struct Node { int item; struct Node* next; }; + + struct Node* build_list() { + struct Node** pool; + int n = read_number_of_nodes_needed(); + if (n <= 0) return 0; + pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0); + if (pool == 0) die(); + // organize into a linked list... + struct Node* first = pool[0]; + for (i = 0; i < n-1; ++i) + pool[i]->next = pool[i+1]; + free(pool); // Can now free the array (or not, if it is needed later) + return first; + } + */ + void** rdlindependent_calloc(size_t, size_t, void**); + + /* + independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]); + + independent_comalloc allocates, all at once, a set of n_elements + chunks with sizes indicated in the "sizes" array. It returns + an array of pointers to these elements, each of which can be + independently freed, realloc'ed etc. The elements are guaranteed to + be adjacently allocated (this is not guaranteed to occur with + multiple callocs or mallocs), which may also improve cache locality + in some applications. + + The "chunks" argument is optional (i.e., may be null). If it is null + the returned array is itself dynamically allocated and should also + be freed when it is no longer needed. Otherwise, the chunks array + must be of at least n_elements in length. It is filled in with the + pointers to the chunks. + + In either case, independent_comalloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and chunks is + null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be individually freed when it is no longer + needed. If you'd like to instead be able to free all at once, you + should instead use a single regular malloc, and assign pointers at + particular offsets in the aggregate space. (In this case though, you + cannot independently free elements.) + + independent_comallac differs from independent_calloc in that each + element may have a different size, and also that it does not + automatically clear elements. + + independent_comalloc can be used to speed up allocation in cases + where several structs or objects must always be allocated at the + same time. For example: + + struct Head { ... } + struct Foot { ... } + + void send_message(char* msg) { + int msglen = strlen(msg); + size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) }; + void* chunks[3]; + if (independent_comalloc(3, sizes, chunks) == 0) + die(); + struct Head* head = (struct Head*)(chunks[0]); + char* body = (char*)(chunks[1]); + struct Foot* foot = (struct Foot*)(chunks[2]); + // ... + } + + In general though, independent_comalloc is worth using only for + larger values of n_elements. For small values, you probably won't + detect enough difference from series of malloc calls to bother. + + Overuse of independent_comalloc can increase overall memory usage, + since it cannot reuse existing noncontiguous small chunks that + might be available for some of the elements. + */ + void** rdlindependent_comalloc(size_t, size_t*, void**); + + + /* + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + */ + void* rdlpvalloc(size_t); + + /* + malloc_trim(size_t pad); + + If possible, gives memory back to the system (via negative arguments + to sbrk) if there is unused memory at the `high' end of the malloc + pool or in unused MMAP segments. You can call this after freeing + large blocks of memory to potentially reduce the system-level memory + requirements of a program. However, it cannot guarantee to reduce + memory. Under some allocation patterns, some large free blocks of + memory will be locked between two used chunks, so they cannot be + given back to the system. + + The `pad' argument to malloc_trim represents the amount of free + trailing space to leave untrimmed. If this argument is zero, only + the minimum amount of memory to maintain internal data structures + will be left. Non-zero arguments can be supplied to maintain enough + trailing space to service future expected allocations without having + to re-obtain memory from the system. + + Malloc_trim returns 1 if it actually released any memory, else 0. + */ + int rdlmalloc_trim(size_t); + + /* + malloc_stats(); + Prints on stderr the amount of space obtained from the system (both + via sbrk and mmap), the maximum amount (which may be more than + current if malloc_trim and/or munmap got called), and the current + number of bytes allocated via malloc (or realloc, etc) but not yet + freed. Note that this is the number of bytes allocated, not the + number requested. It will be larger than the number requested + because of alignment and bookkeeping overhead. Because it includes + alignment wastage as being in use, this figure may be greater than + zero even when no user-level chunks are allocated. + + The reported current and maximum system memory can be inaccurate if + a program makes other calls to system memory allocation functions + (normally sbrk) outside of malloc. + + malloc_stats prints only the most commonly interesting statistics. + More information can be obtained by calling mallinfo. + */ + void rdlmalloc_stats(void); + +#endif /* ONLY_MSPACES */ + + /* + malloc_usable_size(void* p); + + Returns the number of bytes you can actually use in + an allocated chunk, which may be more than you requested (although + often not) due to alignment and minimum size constraints. + You can use this many bytes without worrying about + overwriting other allocated objects. This is not a particularly great + programming practice. malloc_usable_size can be more useful in + debugging and assertions, for example: + + p = malloc(n); + assert(malloc_usable_size(p) >= 256); + */ + size_t rdlmalloc_usable_size(void*); + + +#if MSPACES + + /* + mspace is an opaque type representing an independent + region of space that supports rak_mspace_malloc, etc. + */ + typedef void* mspace; + + /* + rak_create_mspace creates and returns a new independent space with the + given initial capacity, or, if 0, the default granularity size. It + returns null if there is no system memory available to create the + space. If argument locked is non-zero, the space uses a separate + lock to control access. The capacity of the space will grow + dynamically as needed to service rak_mspace_malloc requests. You can + control the sizes of incremental increases of this space by + compiling with a different DEFAULT_GRANULARITY or dynamically + setting with mallopt(M_GRANULARITY, value). + */ + mspace rak_create_mspace(size_t capacity, int locked); + + /* + rak_destroy_mspace destroys the given space, and attempts to return all + of its memory back to the system, returning the total number of + bytes freed. After destruction, the results of access to all memory + used by the space become undefined. + */ + size_t rak_destroy_mspace(mspace msp); + + /* + rak_create_mspace_with_base uses the memory supplied as the initial base + of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this + space is used for bookkeeping, so the capacity must be at least this + large. (Otherwise 0 is returned.) When this initial space is + exhausted, additional memory will be obtained from the system. + Destroying this space will deallocate all additionally allocated + space (if possible) but not the initial base. + */ + mspace rak_create_mspace_with_base(void* base, size_t capacity, int locked); + + /* + rak_mspace_track_large_chunks controls whether requests for large chunks + are allocated in their own untracked mmapped regions, separate from + others in this mspace. By default large chunks are not tracked, + which reduces fragmentation. However, such chunks are not + necessarily released to the system upon rak_destroy_mspace. Enabling + tracking by setting to true may increase fragmentation, but avoids + leakage when relying on rak_destroy_mspace to release all memory + allocated using this space. The function returns the previous + setting. + */ + int rak_mspace_track_large_chunks(mspace msp, int enable); + + + /* + rak_mspace_malloc behaves as malloc, but operates within + the given space. + */ + void* rak_mspace_malloc(mspace msp, size_t bytes); + + /* + rak_mspace_free behaves as free, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_free is not actually needed. + free may be called instead of rak_mspace_free because freed chunks from + any space are handled by their originating spaces. + */ + void rak_mspace_free(mspace msp, void* mem); + + /* + rak_mspace_realloc behaves as realloc, but operates within + the given space. + + If compiled with FOOTERS==1, rak_mspace_realloc is not actually + needed. realloc may be called instead of rak_mspace_realloc because + realloced chunks from any space are handled by their originating + spaces. + */ + void* rak_mspace_realloc(mspace msp, void* mem, size_t newsize); + + /* + rak_mspace_calloc behaves as calloc, but operates within + the given space. + */ + void* rak_mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + + /* + rak_mspace_memalign behaves as memalign, but operates within + the given space. + */ + void* rak_mspace_memalign(mspace msp, size_t alignment, size_t bytes); + + /* + rak_mspace_independent_calloc behaves as independent_calloc, but + operates within the given space. + */ + void** rak_mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]); + + /* + rak_mspace_independent_comalloc behaves as independent_comalloc, but + operates within the given space. + */ + void** rak_mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]); + + /* + rak_mspace_footprint() returns the number of bytes obtained from the + system for this space. + */ + size_t rak_mspace_footprint(mspace msp); + + /* + mspace_max_footprint() returns the peak number of bytes obtained from the + system for this space. + */ + size_t mspace_max_footprint(mspace msp); + + +#if !NO_MALLINFO + /* + rak_mspace_mallinfo behaves as mallinfo, but reports properties of + the given space. + */ + struct mallinfo rak_mspace_mallinfo(mspace msp); +#endif /* NO_MALLINFO */ + + /* + malloc_usable_size(void* p) behaves the same as malloc_usable_size; + */ + size_t rak_mspace_usable_size(void* mem); + + /* + rak_mspace_malloc_stats behaves as malloc_stats, but reports + properties of the given space. + */ + void rak_mspace_malloc_stats(mspace msp); + + /* + rak_mspace_trim behaves as malloc_trim, but + operates within the given space. + */ + int rak_mspace_trim(mspace msp, size_t pad); + + /* + An alias for mallopt. + */ + int rak_mspace_mallopt(int, int); + +#endif /* MSPACES */ + +#ifdef __cplusplus +}; /* end of extern "C" */ +#endif /* __cplusplus */ + +/* +======================================================================== +To make a fully customizable malloc.h header file, cut everything +above this line, put into file malloc.h, edit to suit, and #include it +on the next line, as well as in programs that use this malloc. +======================================================================== +*/ + +/* #include "malloc.h" */ + +/*------------------------------ internal #includes ---------------------- */ + +#ifdef DL_PLATFORM_WIN32 +#pragma warning( disable : 4146 ) /* no "unsigned" warnings */ +#endif /* DL_PLATFORM_WIN32 */ + +#include /* for printing in malloc_stats */ + +#ifndef LACKS_ERRNO_H +#include /* for MALLOC_FAILURE_ACTION */ +#endif /* LACKS_ERRNO_H */ + +#if FOOTERS || DEBUG +#include /* for magic initialization */ +#endif /* FOOTERS */ + +#ifndef LACKS_STDLIB_H +#include /* for abort() */ +#endif /* LACKS_STDLIB_H */ + +#ifdef DEBUG +#if ABORT_ON_ASSERT_FAILURE +#undef assert +#define assert(x) if(!(x)) ABORT +#else /* ABORT_ON_ASSERT_FAILURE */ +#include +#endif /* ABORT_ON_ASSERT_FAILURE */ +#else /* DEBUG */ +#ifndef assert +#define assert(x) +#endif +#define DEBUG 0 +#endif /* DEBUG */ + +#ifndef LACKS_STRING_H +#include /* for memset etc */ +#endif /* LACKS_STRING_H */ + +#if USE_BUILTIN_FFS +#ifndef LACKS_STRINGS_H +#include /* for ffs */ +#endif /* LACKS_STRINGS_H */ +#endif /* USE_BUILTIN_FFS */ + +#if HAVE_MMAP +#ifndef LACKS_SYS_MMAN_H +/* On some versions of linux, mremap decl in mman.h needs __USE_GNU set */ +#if (defined(linux) && !defined(__USE_GNU)) +#define __USE_GNU 1 +#include /* for mmap */ +#undef __USE_GNU +#else +#include /* for mmap */ +#endif /* linux */ +#endif /* LACKS_SYS_MMAN_H */ +#ifndef LACKS_FCNTL_H +#include +#endif /* LACKS_FCNTL_H */ +#endif /* HAVE_MMAP */ + +#ifndef LACKS_UNISTD_H +#include /* for sbrk, sysconf */ +#else /* LACKS_UNISTD_H */ +#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) +extern void* sbrk(ptrdiff_t); +#endif /* FreeBSD etc */ +#endif /* LACKS_UNISTD_H */ + +/* Declarations for locking */ +#if USE_LOCKS +#if defined(_XBOX) || defined(X360) +#pragma intrinsic (_InterlockedCompareExchange) +#pragma intrinsic (_InterlockedExchange) +#define interlockedcompareexchange _InterlockedCompareExchange +#define interlockedexchange _InterlockedExchange +#elif !defined(DL_PLATFORM_WIN32) +#include +#if defined (__SVR4) && defined (__sun) /* solaris */ +#include +#endif /* solaris */ +#else +#ifndef _M_AMD64 +/* These are already defined on AMD64 builds */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp); + LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value); +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* _M_AMD64 */ +#pragma intrinsic (_InterlockedCompareExchange) +#pragma intrinsic (_InterlockedExchange) +#define interlockedcompareexchange _InterlockedCompareExchange +#define interlockedexchange _InterlockedExchange +#endif /* Win32 */ +#endif /* USE_LOCKS */ + +/* Declarations for bit scanning on win32 */ +#if defined(_MSC_VER) && _MSC_VER>=1300 && defined(DL_PLATFORM_WIN32) +#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + unsigned char _BitScanForward(unsigned long *index, unsigned long mask); + unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#define BitScanForward _BitScanForward +#define BitScanReverse _BitScanReverse +#pragma intrinsic(_BitScanForward) +#pragma intrinsic(_BitScanReverse) +#endif /* BitScanForward */ +#endif /* defined(_MSC_VER) && _MSC_VER>=1300 */ + +#ifndef DL_PLATFORM_WIN32 +#ifndef malloc_getpagesize +# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ +# ifndef _SC_PAGE_SIZE +# define _SC_PAGE_SIZE _SC_PAGESIZE +# endif +# endif +# ifdef _SC_PAGE_SIZE +# define malloc_getpagesize sysconf(_SC_PAGE_SIZE) +# else +# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) +extern size_t getpagesize(); +# define malloc_getpagesize getpagesize() +# else +# ifdef DL_PLATFORM_WIN32 /* use supplied emulation of getpagesize */ +# define malloc_getpagesize getpagesize() +# else +# ifndef LACKS_SYS_PARAM_H +# include +# endif +# ifdef EXEC_PAGESIZE +# define malloc_getpagesize EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define malloc_getpagesize NBPG +# else +# define malloc_getpagesize (NBPG * CLSIZE) +# endif +# else +# ifdef NBPC +# define malloc_getpagesize NBPC +# else +# ifdef PAGESIZE +# define malloc_getpagesize PAGESIZE +# else /* just guess */ +# define malloc_getpagesize ((size_t)4096U) +# endif +# endif +# endif +# endif +# endif +# endif +# endif +#endif +#endif + + + +/* ------------------- size_t and alignment properties -------------------- */ + +/* The byte and bit size of a size_t */ +#define SIZE_T_SIZE (sizeof(size_t)) +#define SIZE_T_BITSIZE (sizeof(size_t) << 3) + +/* Some constants coerced to size_t */ +/* Annoying but necessary to avoid errors on some platforms */ +#define SIZE_T_ZERO ((size_t)0) +#define SIZE_T_ONE ((size_t)1) +#define SIZE_T_TWO ((size_t)2) +#define SIZE_T_FOUR ((size_t)4) +#define TWO_SIZE_T_SIZES (SIZE_T_SIZE<<1) +#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE<<2) +#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES+TWO_SIZE_T_SIZES) +#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U) + +/* The bit mask value corresponding to MALLOC_ALIGNMENT */ +#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE) + +/* True if address a has acceptable alignment */ +#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) + +/* the number of bytes to offset an address to align it */ +#define align_offset(A)\ + ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\ + ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK)) + +/* -------------------------- MMAP preliminaries ------------------------- */ + +/* +If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and +checks to fail so compiler optimizer can delete code rather than +using so many "#if"s. +*/ + + +/* MORECORE and MMAP must return MFAIL on failure */ +#define MFAIL ((void*)(MAX_SIZE_T)) +#define CMFAIL ((char*)(MFAIL)) /* defined for convenience */ + +#if HAVE_MMAP + +#if defined(_XBOX) || defined(X360) + /* Win32 MMAP via VirtualAlloc */ + static void* win32mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* For direct MMAP, use MEM_TOP_DOWN to minimize interference */ + static void* win32direct_mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN, + PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* This function supports releasing coalesed segments */ + static int win32munmap(void* ptr, size_t size) { + MEMORY_BASIC_INFORMATION minfo; + char* cptr = (char*)ptr; + while (size) { + if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0) + return -1; + if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr || + minfo.State != MEM_COMMIT || minfo.RegionSize > size) + return -1; + if (VirtualFree(cptr, 0, MEM_RELEASE) == 0) + return -1; + cptr += minfo.RegionSize; + size -= minfo.RegionSize; + } + return 0; + } + + #define RAK_MMAP_DEFAULT(s) win32mmap(s) + #define RAK_MUNMAP_DEFAULT(a, s) win32munmap((a), (s)) + #define RAK_DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s) +#elif defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(SN_TARGET_PSP2) + +inline int ___freeit_dlmalloc_default__(void* s) {free(s); return 0;} +#define RAK_MMAP_DEFAULT(s) malloc(s); +#define RAK_MUNMAP_DEFAULT(a, s) ___freeit_dlmalloc_default__(a); +#define RAK_DIRECT_MMAP_DEFAULT(s) malloc(s); + +#elif !defined(DL_PLATFORM_WIN32) + #define RAK_MUNMAP_DEFAULT(a, s) munmap((a), (s)) + #define MMAP_PROT (PROT_READ|PROT_WRITE) + #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) + #define MAP_ANONYMOUS MAP_ANON + #endif /* MAP_ANON */ + #ifdef MAP_ANONYMOUS + #define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS) + #define RAK_MMAP_DEFAULT(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0) + #else /* MAP_ANONYMOUS */ + /* + Nearly all versions of mmap support MAP_ANONYMOUS, so the following + is unlikely to be needed, but is supplied just in case. + */ + #define MMAP_FLAGS (MAP_PRIVATE) + static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */ + #define RAK_MMAP_DEFAULT(s) ((dev_zero_fd < 0) ? \ + (dev_zero_fd = open("/dev/zero", O_RDWR), \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) + #endif /* MAP_ANONYMOUS */ + + #define RAK_DIRECT_MMAP_DEFAULT(s) RAK_MMAP_DEFAULT(s) + +#else /* DL_PLATFORM_WIN32 */ + + /* Win32 MMAP via VirtualAlloc */ + static FORCEINLINE void* win32mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* For direct MMAP, use MEM_TOP_DOWN to minimize interference */ + static FORCEINLINE void* win32direct_mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN, + PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; + } + + /* This function supports releasing coalesed segments */ + static FORCEINLINE int win32munmap(void* ptr, size_t size) { + MEMORY_BASIC_INFORMATION minfo; + char* cptr = (char*)ptr; + while (size) { + if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0) + return -1; + if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr || + minfo.State != MEM_COMMIT || minfo.RegionSize > size) + return -1; + if (VirtualFree(cptr, 0, MEM_RELEASE) == 0) + return -1; + cptr += minfo.RegionSize; + size -= minfo.RegionSize; + } + return 0; + } + + #define RAK_MMAP_DEFAULT(s) win32mmap(s) + #define RAK_MUNMAP_DEFAULT(a, s) win32munmap((a), (s)) + #define RAK_DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s) +#endif /* DL_PLATFORM_WIN32 */ +#endif /* HAVE_MMAP */ + +#if HAVE_MREMAP +#ifndef DL_PLATFORM_WIN32 +#define MREMAP_DEFAULT(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv)) +#endif /* DL_PLATFORM_WIN32 */ +#endif /* HAVE_MREMAP */ + + +/** +* Define CALL_MORECORE +*/ +#if HAVE_MORECORE +#ifdef MORECORE +#define CALL_MORECORE(S) MORECORE(S) +#else /* MORECORE */ +#define CALL_MORECORE(S) MORECORE_DEFAULT(S) +#endif /* MORECORE */ +#else /* HAVE_MORECORE */ +#define CALL_MORECORE(S) MFAIL +#endif /* HAVE_MORECORE */ + +/** +* Define CALL_MMAP/CALL_MUNMAP/CALL_DIRECT_MMAP +*/ +#if HAVE_MMAP +#define USE_MMAP_BIT (SIZE_T_ONE) + +#ifdef MMAP +#define CALL_MMAP(s) MMAP(s) +#else /* MMAP */ +#define CALL_MMAP(s) RAK_MMAP_DEFAULT(s) +#endif /* MMAP */ +#ifdef MUNMAP +#define CALL_MUNMAP(a, s) MUNMAP((a), (s)) +#else /* MUNMAP */ +#define CALL_MUNMAP(a, s) RAK_MUNMAP_DEFAULT((a), (s)) +#endif /* MUNMAP */ +#ifdef DIRECT_MMAP +#define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) +#else /* DIRECT_MMAP */ +#define CALL_DIRECT_MMAP(s) RAK_DIRECT_MMAP_DEFAULT(s) +#endif /* DIRECT_MMAP */ +#else /* HAVE_MMAP */ +#define USE_MMAP_BIT (SIZE_T_ZERO) + +#define MMAP(s) MFAIL +#define MUNMAP(a, s) (-1) +#define DIRECT_MMAP(s) MFAIL +#define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) +#define CALL_MMAP(s) MMAP(s) +#define CALL_MUNMAP(a, s) MUNMAP((a), (s)) +#endif /* HAVE_MMAP */ + +/** +* Define CALL_MREMAP +*/ +#if HAVE_MMAP && HAVE_MREMAP +#ifdef MREMAP +#define CALL_MREMAP(addr, osz, nsz, mv) MREMAP((addr), (osz), (nsz), (mv)) +#else /* MREMAP */ +#define CALL_MREMAP(addr, osz, nsz, mv) MREMAP_DEFAULT((addr), (osz), (nsz), (mv)) +#endif /* MREMAP */ +#else /* HAVE_MMAP && HAVE_MREMAP */ +#define CALL_MREMAP(addr, osz, nsz, mv) MFAIL +#endif /* HAVE_MMAP && HAVE_MREMAP */ + +/* mstate bit set if continguous morecore disabled or failed */ +#define USE_NONCONTIGUOUS_BIT (4U) + +/* segment bit set in rak_create_mspace_with_base */ +#define EXTERN_BIT (8U) + + +#endif /* MALLOC_280_H */ + +#endif // _RAKNET_SUPPORT_DL_MALLOC \ No newline at end of file diff --git a/src/server/ArgumentsSettings.cpp b/src/server/ArgumentsSettings.cpp new file mode 100755 index 0000000..88bcd51 --- /dev/null +++ b/src/server/ArgumentsSettings.cpp @@ -0,0 +1,62 @@ +#include "ArgumentsSettings.h" +#include +#include +#include +ArgumentsSettings::ArgumentsSettings(int numArguments, char** arguments) +: externalPath("."), levelName("level"), showHelp(false), port(19132), serverKey(""), cachePath("."), levelDir("level") { + for(int a = 0; a < numArguments; ++a) { + if(strcmp(arguments[a], "--help") == 0) { + showHelp = true; + } else if(strcmp(arguments[a], "--externalpath") == 0) { + if(a + 1 < numArguments) { + externalPath = std::string(arguments[a+1]); + a++; // Skip the next argument since it's part of this one. + } + } else if(strcmp(arguments[a], "--levelname") == 0) { + if(a + 1 < numArguments) { + levelName = std::string(arguments[a+1]); + a++; // Skip the next argument since it's part of this one. + } + } else if(strcmp(arguments[a], "--leveldir") == 0) { + if(a + 1 < numArguments) { + levelDir = std::string(arguments[a+1]); + a++; // Skip the next argument since it's part of this one. + } + } else if(strcmp(arguments[a], "--port") == 0) { + if(a + 1 < numArguments) { + port = atoi(arguments[a+1]); + a++; // Skip the next argument since it's part of this one. + } + } else if(strcmp(arguments[a], "--serverkey") == 0) { + if(a + 1 < numArguments) { + serverKey = std::string(arguments[a+1]); + a++; // Skip the next argument since it's part of this one. + } + } else if(strcmp(arguments[a], "--cachepath") == 0) { + if(a + 1 < numArguments) { + cachePath = std::string(arguments[a+1]); + } + } + } +} +std::string ArgumentsSettings::getExternalPath() { + return externalPath; +} +std::string ArgumentsSettings::getLevelName() { + return levelName; +} +std::string ArgumentsSettings::getServerKey() { + return serverKey; +} +std::string ArgumentsSettings::getCachePath() { + return cachePath; +} +std::string ArgumentsSettings::getLevelDir() { + return levelDir; +} +bool ArgumentsSettings::getShowHelp() { + return showHelp; +} +int ArgumentsSettings::getPort() { + return port; +} diff --git a/src/server/ArgumentsSettings.h b/src/server/ArgumentsSettings.h new file mode 100755 index 0000000..0dcd781 --- /dev/null +++ b/src/server/ArgumentsSettings.h @@ -0,0 +1,24 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL__ArgumentsSettings_H__ +#define NET_MINECRAFT_WORLD_LEVEL__ArgumentsSettings_H__ +#include +class ArgumentsSettings { +public: + ArgumentsSettings(int numArguments, char** arguments); + std::string getExternalPath(); + std::string getLevelName(); + std::string getServerKey(); + std::string getCachePath(); + std::string getLevelDir(); + bool getShowHelp(); + int getPort(); +private: + std::string cachePath; + std::string externalPath; + std::string levelName; + std::string levelDir; + std::string serverKey; + bool showHelp; + int port; +}; + +#endif diff --git a/src/server/CreatorLevel.cpp b/src/server/CreatorLevel.cpp new file mode 100755 index 0000000..bbef786 --- /dev/null +++ b/src/server/CreatorLevel.cpp @@ -0,0 +1,28 @@ +#include "CreatorLevel.h" +#include "../world/level/chunk/ChunkSource.h" +#include "../util/PerfTimer.h" + +CreatorLevel::CreatorLevel(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int generatorVersion, Dimension* fixedDimension /* = NULL */) +: super(levelStorage, levelName, settings, generatorVersion, fixedDimension) +{ +} + +void CreatorLevel::tick() { + TIMER_PUSH("chunkSource"); + _chunkSource->tick(); + + long time = levelData.getTime() + 1; + levelData.setTime(time); + + TIMER_POP_PUSH("tickPending"); + tickPendingTicks(false); + + TIMER_POP(); +} + +/* +void CreatorLevel::addToTickNextTick(int x, int y, int z, int tileId, int tickDelay) { + if (tileId >= Tile::water->id && tileId <= calmLava) + super::addToTickNextTick(x, y, z, tileId, tickDelay); +} +*/ diff --git a/src/server/CreatorLevel.h b/src/server/CreatorLevel.h new file mode 100755 index 0000000..e375d18 --- /dev/null +++ b/src/server/CreatorLevel.h @@ -0,0 +1,15 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL__CreatorLevel_H__ +#define NET_MINECRAFT_WORLD_LEVEL__CreatorLevel_H__ + +#include "../world/level/Level.h" + +class CreatorLevel: public Level +{ + typedef Level super; +public: + CreatorLevel(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int generatorVersion, Dimension* fixedDimension = NULL); + + void tick(); +}; + +#endif /* NET_MINECRAFT_WORLD_LEVEL__CreatorLevel_H__ */ diff --git a/src/server/ServerLevel.cpp b/src/server/ServerLevel.cpp new file mode 100755 index 0000000..e57d6b8 --- /dev/null +++ b/src/server/ServerLevel.cpp @@ -0,0 +1,67 @@ +#include "ServerLevel.h" +#include "../network/RakNetInstance.h" +#include "../network/packet/SetTimePacket.h" +#include "../network/packet/SetHealthPacket.h" +#include "../world/level/tile/LevelEvent.h" +ServerLevel::ServerLevel(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int generatorVersion, Dimension* fixedDimension /* = NULL */) + : super(levelStorage, levelName, settings, generatorVersion, fixedDimension), + allPlayersAreSleeping(false){ + +} + +void ServerLevel::updateSleepingPlayerList() { + bool allPlayersWasSleeping = allPlayersAreSleeping; + allPlayersAreSleeping = !players.empty(); + for(PlayerList::iterator it = players.begin(); it != players.end(); ++it) { + Player* player = *it; + if(!player->isSleeping()) { + allPlayersAreSleeping = false; + break; + } + } + if(!allPlayersWasSleeping && allPlayersAreSleeping) { + levelEvent(NULL, LevelEvent::ALL_PLAYERS_SLEEPING, 0, 0, 0, 0); + for(PlayerList::iterator it = players.begin(); it != players.end(); ++it) { + (*it)->setAllPlayersSleeping(); + } + } +} + +void ServerLevel::awakenAllPlayers() { + allPlayersAreSleeping = false; + for(PlayerList::iterator it = players.begin(); it != players.end(); ++it) { + Player* player = *it; + if(player->isSleeping()) { + player->stopSleepInBed(false, false, true); + player->health = Player::MAX_HEALTH; + player->lastHealth = Player::MAX_HEALTH; + } + } + SetHealthPacket packet(Player::MAX_HEALTH); + raknetInstance->send(packet); +} + +bool ServerLevel::allPlayersSleeping() { + if(allPlayersAreSleeping && !isClientSide) { + // all players are sleeping, but have they slept long enough? + for(PlayerList::iterator it = players.begin(); it != players.end(); ++it) { + if(!(*it)->isSleepingLongEnough()) { + return false; + } + } + // yep + return true; + } + return false; +} + +void ServerLevel::tick(){ + super::tick(); + if(allPlayersSleeping()) { + long newTime = levelData.getTime() + TICKS_PER_DAY; + levelData.setTime(newTime - (newTime % TICKS_PER_DAY)); + SetTimePacket packet(levelData.getTime()); + raknetInstance->send(packet); + awakenAllPlayers(); + } +} diff --git a/src/server/ServerLevel.h b/src/server/ServerLevel.h new file mode 100755 index 0000000..688c40d --- /dev/null +++ b/src/server/ServerLevel.h @@ -0,0 +1,20 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL__ServerLevel_H__ +#define NET_MINECRAFT_WORLD_LEVEL__ServerLevel_H__ + +#include "../world/level/Level.h" + +class ServerLevel: public Level +{ + typedef Level super; +public: + ServerLevel(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int generatorVersion, Dimension* fixedDimension = NULL); + + void updateSleepingPlayerList(); + void awakenAllPlayers(); + bool allPlayersSleeping(); + void tick(); +protected: + bool allPlayersAreSleeping; +}; + +#endif /* NET_MINECRAFT_WORLD_LEVEL__ServerLevel_H__ */ diff --git a/src/server/ServerPlayer.cpp b/src/server/ServerPlayer.cpp new file mode 100755 index 0000000..cc9a3a2 --- /dev/null +++ b/src/server/ServerPlayer.cpp @@ -0,0 +1,165 @@ +#include "ServerPlayer.h" + +#include "../network/RakNetInstance.h" +#include "../network/packet/ContainerOpenPacket.h" +#include "../network/packet/ContainerClosePacket.h" +#include "../network/packet/ContainerSetDataPacket.h" +#include "../network/packet/ContainerSetSlotPacket.h" +#include "../network/packet/ContainerSetContentPacket.h" +#include "../network/packet/ChatPacket.h" +#include "../network/packet/EntityEventPacket.h" +#include "../network/packet/SetHealthPacket.h" +#include "../network/packet/TakeItemEntityPacket.h" +#include "../client/Minecraft.h" +#include "../world/level/tile/entity/FurnaceTileEntity.h" +#include "../world/inventory/FurnaceMenu.h" +#include "../world/inventory/FillingContainer.h" +#include "../world/inventory/ContainerMenu.h" +#include "../world/entity/EntityEvent.h" +#include "../network/packet/AnimatePacket.h" +#include "../world/level/tile/entity/ChestTileEntity.h" +#include "../network/packet/HurtArmorPacket.h" + +ServerPlayer::ServerPlayer( Minecraft* minecraft, Level* level ) +: super(level, minecraft->isCreativeMode()), + _mc(minecraft), + _sentHealth(-999), + _containerCounter(0) +{ + hasFakeInventory = true; + footSize = 0; +} + +ServerPlayer::~ServerPlayer() { + setContainerMenu(NULL); +} + +void ServerPlayer::stopSleepInBed(bool forcefulWakeUp, bool updateLevelList, bool saveRespawnPoint) { + if(isSleeping()) { + AnimatePacket packet(AnimatePacket::WAKE_UP, this); + _mc->raknetInstance->send(owner, packet); + } + super::stopSleepInBed(forcefulWakeUp, updateLevelList, saveRespawnPoint); +} + + +void ServerPlayer::aiStep() { + updateAttackAnim(); + super::aiStep(); +} + +void ServerPlayer::tick() { + super::tick(); + + if(!useItem.isNull()) + useItemDuration--; + + //LOGI("Server:tick. Cmenu: %p\n", containerMenu); + if (containerMenu) + containerMenu->broadcastChanges(); + + if (health != _sentHealth) { + _sentHealth = health; + SetHealthPacket packet(health); + _mc->raknetInstance->send(owner, packet); + } +} + +void ServerPlayer::take( Entity* e, int orgCount ) { + TakeItemEntityPacket packet(e->entityId, entityId); + _mc->raknetInstance->send(packet); + + super::take(e, orgCount); +} + +void ServerPlayer::hurtArmor(int dmg) { + super::hurtArmor(dmg); + HurtArmorPacket packet(dmg); + _mc->raknetInstance->send(owner, packet); +} + +void ServerPlayer::openContainer( ChestTileEntity* container) { + LOGI("Client is opening a container\n"); + nextContainerCounter(); + ContainerOpenPacket packet(_containerCounter, ContainerType::CONTAINER, container->getName(), container->getContainerSize()); + _mc->raknetInstance->send(owner, packet); + setContainerMenu(new ContainerMenu(container, container->runningId)); +} + +void ServerPlayer::openFurnace( FurnaceTileEntity* furnace ) { + LOGI("Client is opening a furnace\n"); + nextContainerCounter(); + ContainerOpenPacket packet(_containerCounter, ContainerType::FURNACE, furnace->getName(), furnace->getContainerSize()); + _mc->raknetInstance->send(owner, packet); + setContainerMenu(new FurnaceMenu(furnace)); +} + +void ServerPlayer::closeContainer() { + LOGI("Client is closing a container\n"); + ContainerClosePacket packet(containerMenu->containerId); + _mc->raknetInstance->send(owner, packet); + doCloseContainer(); +} + +void ServerPlayer::doCloseContainer() { + if (!containerMenu) { + LOGE("Container is missing @ doCloseContainer!\n"); + } + setContainerMenu(NULL); +} + +bool ServerPlayer::hasResource( int id ) { + return true; +} + +// +// IContainerListener +// +void ServerPlayer::setContainerData( BaseContainerMenu* menu, int id, int value ) { + ContainerSetDataPacket p(menu->containerId, id, value); + _mc->raknetInstance->send(owner, p); + //LOGI("Setting container data for id %d: %d\n", id, value); +} + +void ServerPlayer::slotChanged( BaseContainerMenu* menu, int slot, const ItemInstance& item, bool isResultSlot ) { + if (isResultSlot) return; + ContainerSetSlotPacket p(menu->containerId, slot, item); + _mc->raknetInstance->send(owner, p); + //LOGI("Slot %d changed\n", slot); +} + +void ServerPlayer::refreshContainer( BaseContainerMenu* menu, const std::vector& items ) { + ContainerSetContentPacket p(menu->containerId, menu->getItems()); + _mc->raknetInstance->send(owner, p); + //LOGI("Refreshing container with %d items\n", items.size()); +} + +void ServerPlayer::nextContainerCounter() { + if (++_containerCounter >= 100) + _containerCounter = 0; +} + +void ServerPlayer::setContainerMenu( BaseContainerMenu* menu ) { + if (containerMenu == menu) + return; + + if (containerMenu) + delete containerMenu; + + containerMenu = menu; + if (containerMenu) { + containerMenu->containerId = _containerCounter; + containerMenu->setListener(this); + } +} + +void ServerPlayer::completeUsingItem() { + EntityEventPacket p(entityId, EntityEvent::USE_ITEM_COMPLETE); + _mc->raknetInstance->send(owner, p); + super::completeUsingItem(); +} + +void ServerPlayer::displayClientMessage( const std::string& messageId ) { + ChatPacket package(messageId); + _mc->raknetInstance->send(owner, package); +} diff --git a/src/server/ServerPlayer.h b/src/server/ServerPlayer.h new file mode 100755 index 0000000..48fb02e --- /dev/null +++ b/src/server/ServerPlayer.h @@ -0,0 +1,55 @@ +#ifndef ServerPlayer_H__ +#define ServerPlayer_H__ + +#include "../world/entity/player/Player.h" +#include "../world/inventory/BaseContainerMenu.h" + +class Minecraft; +class FurnaceTileEntity; +class ItemInstance; +class FillingContainer; +class ChestTileEntity; + +class ServerPlayer: public Player, + public IContainerListener +{ + typedef Player super; +public: + ServerPlayer(Minecraft* minecraft, Level* level); + + ~ServerPlayer(); + + void aiStep(); + void tick(); + void take(Entity* e, int orgCount); + + void hurtArmor(int dmg); + + void displayClientMessage(const std::string& messageId); + + void openContainer(ChestTileEntity* furnace); + void openFurnace(FurnaceTileEntity* furnace); + void closeContainer(); + void doCloseContainer(); + + bool hasResource( int id ); + // + // IContainerListener + // + void setContainerData(BaseContainerMenu* menu, int id, int value); + void slotChanged(BaseContainerMenu* menu, int slot, const ItemInstance& item, bool isResultSlot); + void refreshContainer(BaseContainerMenu* menu, const std::vector& items); + + virtual void stopSleepInBed(bool forcefulWakeUp, bool updateLevelList, bool saveRespawnPoint); + + void completeUsingItem(); +private: + void nextContainerCounter(); + void setContainerMenu( BaseContainerMenu* menu ); + + Minecraft* _mc; + int _sentHealth; + int _containerCounter; +}; + +#endif /*ServerPlayer_H__*/ diff --git a/src/terrain_4444.h b/src/terrain_4444.h new file mode 100755 index 0000000..c222eb9 --- /dev/null +++ b/src/terrain_4444.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.20 + * PVRTC Library v 1.106. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_4444[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00008010, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f000, /* dwRBitMask */ +0x00000f00, /* dwGBitMask */ +0x000000f0, /* dwBBitMask */ +0x0000000f, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x999f999f,0x888f999f,0x888f888f,0x888f777f,0x999f999f,0x888f888f,0x888f888f,0x888f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x964fb85f,0x753f964f,0xb85f753f,0x964f964f,0x753f753f,0x753f532f,0xb85f753f,0xb85f753f,0x7b4f7b4f,0x6a3f7b4f,0x6a4f6a3f,0x6a4f593f,0x7b4f7b5f,0x6a3f6a4f,0x6a3f6a3f,0x6a4f592f, +0x984fb96f,0x984f984f,0xb96f984f,0xb95fb96f,0xb96f984f,0xb96fb96f,0xb96fb96f,0x984fb96f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafcccf,0x888f888f,0x888f888f,0x888f888f,0x999f999f,0x999f777f,0x888f888f,0x888f888f,0x888f888f,0x943f943f,0xcccf943f,0x943f943f,0xa53f943f,0xa53f943f,0xdddf843f,0xa53f943f,0x943f943f, +0xc31fd41f,0xa31fb31f,0xc31fd41f,0xa31fb31f,0xc31fd41f,0xa31fb31f,0xc31fd41f,0xa31fb31f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x888f999f,0x999faaaf,0x888f999f,0x888f888f,0xaaaf777f,0x999faaaf,0x888f888f,0x888f888f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x964f753f,0x753f532f,0x964f753f,0x532f888f,0xb85f753f,0x753f964f,0x964f753f,0x532f532f,0x6a4f7b4f,0x8b5f8b5f,0x532f8b5f,0x6a3f6a3f,0x9c6f593f,0x7b4f9b6f,0x6a4f6a3f,0x6a4f6a3f, +0xb96fb96f,0x753fb95f,0xb95fb95f,0x984f984f,0x984f984f,0xb95f984f,0xb95f984f,0x984fb96f,0xaaafcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf,0xaaaf888f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf,0x732f732f,0xeeef842f,0x732fb54f,0x632f632f,0x732f732f,0xdddf842f,0x732f943f,0x732f732f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4c2f0000,0x00000000,0x00000000, +0xbbbfaaaf,0x888fbbbf,0x888f888f,0x999f999f,0x999f999f,0xaaafaaaf,0x777f888f,0xbbbf888f,0x666f777f,0x777f777f,0x777f666f,0x777f777f,0x777f888f,0x777f777f,0x888f777f,0x777f777f,0x753fb85f,0x532f753f,0x753fb85f,0x753f753f,0x753fb85f,0x753f753f,0x532f532f,0x753fb85f,0x532f8b5f,0x6a3f9c6f,0x532f6a3f,0x532f7b4f,0x7b5f7b4f,0x9c6f9c6f,0x592f532f,0x532f6a3f, +0xb96fb96f,0x984f984f,0x984f984f,0xb95fb95f,0xb96fb96f,0xb95fb96f,0xb96f753f,0x984fb96f,0x999fcccf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf,0x999f888f,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf,0x843f732f,0xdddf632f,0x732f943f,0x732f732f,0x732f732f,0xdddf732f,0x943f842f,0x843f732f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f555f,0x888fd41f,0x000f555f,0x555f000f,0x921f888f,0x555fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x4c2f4c2f,0x00000000,0x00000000,0x060f4c2f,0x0000060f,0x00000000, +0x888f777f,0x999f888f,0x999f999f,0x777f777f,0x888f777f,0x999f888f,0x888f888f,0x777f888f,0x888f777f,0x777f777f,0x666f777f,0x888f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f964f,0x753fb85f,0x532f964f,0xb85f753f,0x964f964f,0x964f753f,0xb85f753f,0x753f964f,0x666f532f,0x532f532f,0x532f7b4f,0x532f532f,0x532f593f,0x532f6a4f,0x532f753f,0x753f532f, +0x653f653f,0x753f653f,0x753f753f,0x753f753f,0x753f753f,0x653f653f,0x653f653f,0x753f753f,0xbbbfcccf,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xbbbf888f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x921fa31f,0x555f921f,0x921fa31f,0x921f555f,0x000f555f,0x921f921f,0x921f555f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x060f4c2f,0x4c2f0000,0x060f4c2f,0x060f0000,0x0000962f,0x00000000, +0x888faaaf,0x888faaaf,0xaaafaaaf,0xaaaf888f,0x777fbbbf,0xaaaf888f,0x777faaaf,0x888f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x753f964f,0xb85f964f,0x964f532f,0x753f753f,0x532f964f,0x666f753f,0x964f753f,0x753f532f,0x753f964f,0xb85f964f,0x964f532f,0x753f753f,0x532f532f,0x666f532f,0x964f753f,0x753f532f, +0x984fb96f,0x984f984f,0xb96f984f,0x984fb96f,0x984fb96f,0x753f984f,0xb95fb95f,0xb96fb95f,0xbbbfcccf,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf,0xbbbf888f,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf,0x943f843f,0x943f943f,0x943f943f,0xdddf943f,0xa53fa53f,0x943fa43f,0x943f943f,0xdddf943f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xd41fd41f,0xa31fd41f,0xd41f555f,0xa31f555f,0xd41f555f,0x000f000f,0xd41f555f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x4c2f0000,0x060f962f,0x0000060f,0x060f060f,0x962f530f,0x060f962f,0x00000000, +0x999f999f,0xaaaf777f,0x999f888f,0x999f999f,0x999f888f,0x888f888f,0x888f777f,0x999f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f666f,0x532f753f,0x964f964f,0x964f753f,0x532f532f,0x753f532f,0x532f753f,0x753f753f,0xb85f753f,0x532f753f,0x964f964f,0x964f753f,0x532f532f,0x753f532f,0x532f753f,0x753f753f,0xb85f753f, +0x984f984f,0xb95f753f,0xb95fb95f,0x984fb96f,0xb95fb95f,0xb95fb95f,0x984f984f,0x984f984f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x888f999f,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x888f999f,0x732f943f,0x732f943f,0x732f632f,0xdddf732f,0x732f943f,0x732f732f,0x732f632f,0xdddf732f, +0xdddfdddf,0xcccfdddf,0xdddfdddf,0xdddfdddf,0xdddfcccf,0xcccfdddf,0xdddfcccf,0xcccfdddf,0x888fd41f,0x921f888f,0x000fd41f,0x921f000f,0x888f555f,0x555f555f,0x888f000f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3bef0000,0x00003bef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f0000,0x060f530f,0x0000060f,0x962f060f,0x530f962f,0x962f530f,0x00000000, +0x999f777f,0x999faaaf,0x888f999f,0x777f888f,0x888f888f,0xaaafbbbf,0xaaaf999f,0x888f999f,0x888f888f,0x888f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x888f888f,0x666f888f,0x532fb85f,0x753f753f,0x753f888f,0xb85f753f,0x753fb85f,0xb85fb85f,0x964f753f,0x964f753f,0x532fb85f,0x753f753f,0x753f888f,0xb85f753f,0x753fb85f,0xb85fb85f,0x964f753f,0x964f753f, +0xb96fb96f,0xb95fb96f,0xb96fb96f,0x984fb96f,0x984f984f,0xb96f753f,0xb96fb96f,0xb96fb96f,0xbbbfcccf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0x777fbbbf,0xbbbf999f,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0x777fbbbf,0x522f943f,0x632f842f,0x632f732f,0xdddf732f,0x632fa53f,0x732f842f,0x732f732f,0xdddf732f, +0xdddfcccf,0x000f000f,0xcccf000f,0xcccf000f,0x000fdddf,0x000fcccf,0x000f000f,0xcccfdddf,0x888fd41f,0x555f555f,0x888fd41f,0x555f000f,0x555f000f,0x555f000f,0x000f555f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x379f3bef,0x39bf3acf,0x00003acf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x530f0000,0x530f962f,0x962f962f,0x060f530f,0x4c2f0000,0x0000060f, +0x888f888f,0x888f999f,0x777f999f,0x888faaaf,0xaaaf999f,0x888f888f,0xaaaf888f,0xaaaf777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x753fb85f,0xb85fb85f,0x964f964f,0x753f753f,0x532f964f,0x964f964f,0x753f753f,0x964f964f,0x753fb85f,0xb85fb85f,0x964f964f,0x753f753f,0x532f964f,0x964f964f,0x753f753f,0x964f964f, +0x753f753f,0x653f653f,0x653f653f,0x753f653f,0x753f753f,0x653f653f,0x653f653f,0x753f753f,0x888faaaf,0x888f888f,0x888f888f,0x888f888f,0x777f888f,0x888f888f,0x888f888f,0x888f888f,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf, +0xcccfcccf,0x000fcccf,0xcccfcccf,0x000f000f,0x000fcccf,0xcccfcccf,0xcccf000f,0xcccfcccf,0x921fa31f,0x921f921f,0x000f555f,0x000f000f,0x000f000f,0x921f555f,0x000fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3acf0000,0x3acf3acf,0x379f3bef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x4c2f0000,0x0000060f,0x962f530f,0x4c2f4c2f,0x00000000,0x060f4c2f,0x0000060f, +0x999f888f,0xaaafbbbf,0x888faaaf,0x999faaaf,0xaaafbbbf,0x999f888f,0x999f888f,0x777f777f,0x888f777f,0x666f888f,0x777f888f,0x777f777f,0x888f777f,0x888f888f,0x888f888f,0x888f888f,0x753f964f,0x964f753f,0x964f753f,0x532f753f,0x964f753f,0x753f964f,0x753f753f,0x753f532f,0x753f964f,0x964f753f,0x964f753f,0x532f753f,0x964f753f,0x753f964f,0x753f753f,0x753f532f, +0xb96fb96f,0xb96fb96f,0x753fb96f,0xb96f984f,0xb95fb96f,0xb95fb95f,0xb96fb96f,0x984fb96f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xbbbf888f,0x999fbbbf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0xbbbfbbbf,0xbbbfbbbf,0x999fbbbf,0x943fa43f,0xdddf943f,0x943f943f,0xb54fa53f,0x943fa43f,0xdddf943f,0x943f943f,0x732fb54f, +0xcccfcccf,0x000fcccf,0xcccfcccf,0xcccf000f,0x000f000f,0xcccfcccf,0xcccf000f,0xcccfcccf,0xd41fd41f,0xa31fd41f,0xd41fd41f,0x000f000f,0x555f000f,0x555fd41f,0x000f555f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x39bf3bef,0x379f379f,0x00003acf,0x00000000,0x00000000,0x00000000,0x00000000,0xcd0f0000,0x0000ff0f,0xbb0fff0f,0x0000ff0f,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f0000,0x962f0000,0x962f962f,0x060f060f,0x530f060f,0x060f0000,0x00000000, +0x888f999f,0x888fbbbf,0x999f888f,0x888faaaf,0x999f888f,0xaaaf999f,0xbbbf888f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0x777f888f,0x964f964f,0x753f532f,0x532f753f,0x753f532f,0x753f753f,0x753f753f,0xb85fb85f,0x964f753f,0x964f964f,0x753f532f,0x532f753f,0x753f532f,0x753f753f,0x753f753f,0xb85fb85f,0x964f753f, +0x984f984f,0x984f984f,0xb96f984f,0xb95fb95f,0x984f984f,0x753f984f,0x984fb96f,0x984f984f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0x888fbbbf,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0x888fbbbf,0x732f732f,0xcccf732f,0x732f943f,0x732f732f,0x843f842f,0xcccf732f,0x842f943f,0x732f732f, +0xaaafcccf,0x000faaaf,0xaaafcccf,0xcccf000f,0x000fcccf,0xcccfcccf,0xaaaf000f,0xcccfaaaf,0x888fd41f,0x555f555f,0x000f000f,0x000f000f,0x000f000f,0x921f888f,0x555f000f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x180f3acf,0x0000160f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcd0fcd0f,0x890fff0f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x962f060f,0x962f530f,0x060f962f,0x962f962f,0x962f962f,0x00004c2f, +0x999f999f,0xaaaf999f,0xbbbf888f,0x999f888f,0x777fcccf,0x888faaaf,0x888f888f,0x888f888f,0x777f777f,0x777f888f,0x888f777f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x964f964f,0xb85f753f,0x753fb85f,0x964fb85f,0xb85f532f,0x753fb85f,0x964f964f,0x753f888f,0x964f964f,0xb85f753f,0x753fb85f,0x964fb85f,0xb85f532f,0x753fb85f,0x964f964f,0x753f888f, +0xb95fb96f,0xb95fb95f,0xb96fb96f,0x984f984f,0x984f984f,0xb95fb95f,0xb95fb95f,0x984fb95f,0xaaafcccf,0xaaafbbbf,0xbbbfaaaf,0xaaafbbbf,0xaaaf999f,0xbbbfbbbf,0xaaafbbbf,0x888faaaf,0xaaaf888f,0xaaafbbbf,0xbbbfaaaf,0xaaafbbbf,0xaaaf999f,0xbbbfbbbf,0xaaafbbbf,0x888faaaf,0x732f843f,0xdddf842f,0x732f943f,0x732f522f,0x842f632f,0xdddf732f,0x732f943f,0x732f842f, +0xaaafaaaf,0xaaafcccf,0xcccfaaaf,0xaaafaaaf,0xcccfaaaf,0xaaafaaaf,0xaaafcccf,0xaaafaaaf,0x888fd41f,0x921f888f,0x000fd41f,0x000f000f,0x888f000f,0x921f555f,0x888f000f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x543f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xff0f0000,0xbb0fff0f,0x890f890f,0x0000cd0f,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x4c2f0000,0x530f060f,0x4c2f0000,0x530f060f,0x4c2f530f,0x0000060f,0x060f060f, +0xaaaf888f,0xaaaf888f,0x888f999f,0x888f999f,0x999f999f,0x777f888f,0x777f777f,0x888f777f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x888f777f,0x666f888f,0x753f964f,0x964f753f,0xb85f964f,0x964f753f,0x964f666f,0x753f964f,0x964f532f,0x532f753f,0x753f964f,0x964f753f,0xb85f964f,0x964f753f,0x964f666f,0x753f964f,0x964f532f,0x532f753f, +0x653f753f,0x753f753f,0x653f653f,0x753f653f,0x753f753f,0x753f753f,0x653f653f,0x753f653f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xbbbfaaaf,0x777fbbbf,0xaaaf777f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xbbbfaaaf,0x777fbbbf,0xbbbfbbbf,0xdddfaaaf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf, +0xa31fb31f,0x720f821f,0xa31fb31f,0x720f821f,0xa31fb31f,0x720f821f,0xa31fb31f,0x720f821f,0x921fa31f,0x921f921f,0x921f000f,0x921f000f,0x555f000f,0x000f921f,0x921f555f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x180f543f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f0000,0x0000180f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f4c2f,0x060f060f,0x060f0000,0x962f060f,0x0000530f,0x00000000,0x060f0000, +0x999fbbbf,0x888f888f,0x999f999f,0x777f888f,0x999f666f,0x777f888f,0xaaaf999f,0x888f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x532f753f,0x753f964f,0x964f964f,0x753fb85f,0x753f753f,0x753f753f,0x753f753f,0xb85fb85f,0x532f753f,0x753f964f,0x964f964f,0x753fb85f,0x753f753f,0x753f753f,0x753f753f,0xb85fb85f, +0xb96fb96f,0xb96fb96f,0x984fb96f,0x984fb96f,0x984f984f,0x984f984f,0x753fb95f,0xb96fb96f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0xa43f943f,0x943fa53f,0x943f943f,0xcccf943f,0xb54f943f,0x943f943f,0x943f943f,0xeeef943f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xd41fd41f,0x555fd41f,0xd41fd41f,0xa31f555f,0x000f555f,0x555f000f,0xd41f555f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0xd41fd41f,0xa31fd41f,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x160f0000,0x0000180f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f0000,0x180f160f,0x0000160f,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x060f060f,0x060f0000,0x530f0000,0x4c2f962f,0x00004c2f,0x00000000,0x00000000, +0xaaafbbbf,0x777f777f,0x888f777f,0xcccf888f,0xcccfaaaf,0x999faaaf,0x888faaaf,0xaaafaaaf,0x888f777f,0x888f777f,0x777f666f,0x777f777f,0x777f777f,0x777f666f,0x777f777f,0x888f888f,0x964f753f,0x753f753f,0x753f754f,0x964f964f,0x532f753f,0x532fb85f,0xb85f753f,0x964f964f,0x964f753f,0x753f753f,0x753f532f,0x964f964f,0x532f753f,0x532fb85f,0xb85f753f,0x964f964f, +0x984fb95f,0xb96f753f,0xb96fb96f,0x984fb96f,0xb95fb96f,0x984fb95f,0x984f984f,0xb95f984f,0xbbbfcccf,0xbbbfaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0x999fbbbf,0xbbbf888f,0xbbbfaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0x999fbbbf,0x732f943f,0x732f732f,0x732f732f,0xcccf632f,0x732f943f,0x732f732f,0x732f732f,0xdddf832f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f555f,0x888fd41f,0x921f888f,0x555fd41f,0x921f888f,0x555fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x543f180f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x160f0000,0x180f180f,0x160f160f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x962f0000,0x530f962f,0x0000060f,0x00000000,0x00000000, +0xaaafaaaf,0x777f888f,0xaaafbbbf,0x999f999f,0x999f777f,0x888f999f,0x999faaaf,0xaaaf888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x753f964f,0xb85f532f,0x532f753f,0x532f753f,0x753f753f,0x532f753f,0x753f753f,0x964f964f,0x753f964f,0xb85f532f,0x532f753f,0x532f753f,0x753f753f,0x532f753f,0x753f753f,0x964f964f, +0xb96fb96f,0x984f984f,0xb96f984f,0x984fb96f,0xb96fb96f,0xb95f984f,0xb96fb96f,0xb96fb96f,0xaaafcccf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0x888faaaf,0xaaaf888f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0x888faaaf,0x521f943f,0x732f842f,0x732f732f,0xdddf732f,0x732f943f,0x732f732f,0x732f842f,0xdddf832f, +0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0xc31fd41f,0x921fa31f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0x888fd41f,0x921f888f,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x543f0000,0x0000160f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f160f,0x0000160f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x962f0000,0x530f962f,0x00000000,0x00000000,0x00000000, +0x999f888f,0x777f888f,0x999faaaf,0xbbbf999f,0xbbbf888f,0x888f777f,0x999f888f,0x999f888f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x753f964f,0x964fb85f,0x753f964f,0x964f888f,0x964f964f,0x753f753f,0x964f964f,0x532f753f,0x753f964f,0x964fb85f,0x753f964f,0x964f888f,0x964f964f,0x753f753f,0x964f964f,0x532f753f, +0x753f753f,0x763f753f,0x653f653f,0x653f763f,0x753f753f,0x653f753f,0x653f432f,0x753f653f,0x888faaaf,0x888f888f,0x999f777f,0x888f999f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x999f777f,0x888f999f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xdddfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xcccfbbbf, +0xb31fc31f,0x921fa31f,0xb31fc31f,0x921fa31f,0xb31fc31f,0x921fa31f,0xb31fc31f,0x921fa31f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x921fa31f,0x921f921f,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000160f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x180f0000,0x0000160f,0x00000000,0x00000000,0x00000000,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x02ff02ff,0x00000000,0x00000000,0x00000000,0x530f0000,0x530f962f,0x00000000,0x00000000,0x00000000, +0xbbbfbbbf,0xaaafbbbf,0x777f999f,0x555f666f,0xbbbf555f,0xbbbfbbbf,0x555f888f,0x888fbbbf,0x333f555f,0x333f333f,0x555f333f,0x999f999f,0x999f000f,0x333f555f,0x333f333f,0x555f333f,0xddaf995f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdc9f,0xddafedaf,0xdd9fdd9f,0xdc9fdc9f,0xdd9fcc8f,0xbbbf554f,0x988f656f,0x988f988f,0x656f988f,0x656f777f,0x988f988f,0xa99f887f,0x988f766f, +0x653f432f,0x974f653f,0x653f331f,0x432f974f,0x653f653f,0x763f653f,0x763f653f,0x974f653f,0x653f653f,0x653f321f,0x653f653f,0x321f321f,0x653f321f,0x321f653f,0x653f653f,0x653f653f,0xaaafaaaf,0xbbbfaaaf,0xdddfcccf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xeeefdddf,0xc81fc82f,0xda2fc91f,0xec3fdb2f,0xec3fed3f,0xec3fec3f,0xed4fed4f,0xed4fed4f,0xfe5ffd5f, +0x087f087f,0x098f087f,0x0bbf0aaf,0x0bbf0cbf,0x0bbf0bbf,0x0cbf0cbf,0x1ccf0ccf,0x4ddf1ccf,0x322f221f,0x322f322f,0x332f322f,0x332f332f,0x332f322f,0x332f332f,0x332f332f,0x221f332f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xbbbfbbbf,0x777f666f,0x555f222f,0xbbbfbbbf,0x777f555f,0x777f888f,0x333f999f,0x999f666f,0x555f555f,0x999f999f,0x999f999f,0x999f999f,0x999f333f,0x999f999f,0x555f000f,0x333f555f,0xdd9fddaf,0xedbfedaf,0xdc9fbb8f,0xdc9fdc9f,0xedafcb8f,0xdd9fffdf,0xdd9fdc9f,0xeeafdd9f,0x988f877f,0xbaaf988f,0xa9af878f,0x656f999f,0xbaafbaaf,0x988f665f,0xa99f544f,0x988f867f, +0x652f331f,0x321f653f,0x974f331f,0x653f432f,0x331f974f,0x974f653f,0x763f432f,0x974f432f,0xb95f653f,0xb95fb85f,0xb95fb95f,0xb95fb95f,0xb85fa85f,0xb95fb95f,0xb96fb95f,0x642fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xfe6fec4f,0xfe5ffe5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xec3fff4f, +0x6ddf0bbf,0x6edf6ddf,0x8eef8eef,0x8eef8eef,0x7edf7edf,0x8eef8eef,0x7edf7edf,0x0bbf7edf,0x862f332f,0x962f962f,0x962f962f,0x752f752f,0x752f752f,0x962f752f,0x962f752f,0x322f862f,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x777f555f,0x222f777f,0xbbbf555f,0x888fbbbf,0x222f333f,0x777f888f,0x555f333f,0x888f555f,0x000f555f,0x333f333f,0x333f000f,0x333f333f,0x333f999f,0x555f555f,0x999f555f,0x555f555f,0xeebfedaf,0xdc9ffecf,0xdd9fdd9f,0xdd9fdd9f,0xedafdd9f,0xedbfedaf,0xcc9fcc8f,0xfecfdc9f,0x766f876f,0xbaaf656f,0x888fbaaf,0x877fbbbf,0x544f656f,0xcbbf666f,0x876fcbbf,0x656f656f, +0x542f321f,0x432f642f,0x974f653f,0x653f331f,0x321f974f,0x763f653f,0x763f432f,0x974f432f,0xb95f321f,0x984f984f,0x974f984f,0x984f984f,0x984fa85f,0x984f984f,0xa85f984f,0x653fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff6fed4f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff4fff5f,0xff4fff4f,0xec2fff3f, +0x8eef0cbf,0x8eef8eef,0x8eef9eef,0x8eef8eef,0x8eef8eef,0x8eef8eef,0x6ddf7edf,0x0bbf5ddf,0x962f332f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x322f962f,0xa72f433f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x221fa72f,0xa72f433f,0x861f861f,0x861f861f,0x851fa72f,0xa72f862f,0xa72fa72f,0xa72fa61f,0x221fa72f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x444f777f,0x555f333f,0x666fbbbf,0x777f999f,0x555f333f,0x333f333f,0xaaaf555f,0x555fbbbf,0x999f555f,0x555f555f,0x000f555f,0x999f555f,0x555f555f,0x333f333f,0x333f333f,0x555f333f,0xdc9fcc8f,0xddafdd9f,0xddafdc9f,0xcc9fdc9f,0xdc9fdc9f,0xedafdd9f,0xdd9fdd9f,0xbb8fdd9f,0x777f888f,0xbaafbbbf,0x988f988f,0x656f877f,0x888f888f,0x766f998f,0x766f766f,0xa99fbaaf, +0x432f653f,0x432f642f,0x763f763f,0x653f331f,0x321f974f,0x974f653f,0x974f331f,0x763f432f,0xb95f653f,0xb95fa85f,0xb96fb96f,0xb96fb96f,0xb95fb96f,0xb95fb96f,0x984fb96f,0x321fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xffffffff,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff4fff4f,0xff4fff4f,0xec3fff4f, +0x9eef0cbf,0x8eef9eef,0x9eef8eef,0x9eef9eef,0x8eef9eef,0x8eef8eef,0x7edf7edf,0x0bbf7edf,0x862f322f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x322f962f,0xa62f433f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x221fa61f,0xa62f433f,0xa61fa62f,0xa61fa61f,0xcccf851f,0x851faaaf,0xa62fa62f,0xa62fa62f,0x221fa61f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0xbbbfbbbf,0x555f555f,0x888fbbbf,0x333f888f,0xaaaf555f,0x999f999f,0x777f555f,0x555faaaf,0x999f555f,0x333f999f,0x333f333f,0x333f333f,0x333f333f,0x999f999f,0x999f999f,0x000f999f,0xdc9fedaf,0xdc9fedbf,0xedbfedbf,0xedbfedaf,0xcc9fedaf,0xedafdc9f,0xcb8fdc9f,0xcc8fddaf,0xa99f656f,0x544f544f,0x555f999f,0x656f777f,0x766f999f,0xaaaf655f,0x888f988f,0x988faaaf, +0x432f653f,0x653f653f,0x763f763f,0x653f653f,0x432f653f,0x974f653f,0x974f331f,0x763f321f,0xb85f432f,0xb96f984f,0xb95fb95f,0xb95fb95f,0xb95fb95f,0xb95fb95f,0x984fb96f,0x653fb95f,0xffffdddf,0xeeefeeef,0xffffeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff5fff5f,0xff4fff4f,0xff5fff4f,0xff5fff5f,0xff4fff4f,0xff4fff4f,0xed3fff4f, +0x9eef0cbf,0x9eef8eef,0x9eef8eef,0x9eef9eef,0x9eef9eef,0x7edf8eef,0x7edf7edf,0x0cbf7edf,0x752f332f,0x861f861f,0xa72f861f,0x861fa72f,0x861fa72f,0xa61f861f,0xa72fa72f,0x332f962f,0x752f433f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x221f962f,0x752f433f,0x752f752f,0x962f752f,0xcccf752f,0x531f888f,0x962f752f,0x962f962f,0x221f962f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x888f777f,0x555f777f,0x888f777f,0x333f777f,0xcccfaaaf,0x888f777f,0x555f666f,0x333f222f,0x333f333f,0x555f555f,0x333f555f,0x333f333f,0x000f555f,0x555f555f,0x333f333f,0x555f000f,0xddafcc8f,0xffffcc9f,0xeeafdc9f,0xddafddaf,0xfebfdd9f,0xcb8fdd9f,0xdc9fcc9f,0xcb8fdd9f,0xbbbf999f,0xa99f767f,0xaaaf778f,0x444f877f,0x765f444f,0xbbbf877f,0x555fcbcf,0x444f666f, +0x542f653f,0x653f653f,0x653f974f,0x653f653f,0x331f653f,0x864f653f,0x763f331f,0x653f432f,0xb95f321f,0xb96f984f,0x984fb95f,0xa85fa85f,0x984f984f,0xb95f984f,0x984fb95f,0x653fb95f,0xffffdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff4fff5f,0xff4fff4f,0xff4fff4f,0xff5fff5f,0xff4fff4f,0xff4fff4f,0xed3fff4f, +0x9eef0cbf,0x6ddf9eef,0x8eef6ddf,0x8eef8eef,0x8eef8eef,0x8eef8eef,0x7edf8eef,0x0cbf7edf,0x752f322f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0xa72fa72f,0x861f861f,0x322f752f,0x322f432f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x111f322f,0x322f432f,0x332f322f,0x332f332f,0xaaaf221f,0x221f777f,0x332f332f,0x322f322f,0x111f322f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00f0000, +0x777f777f,0x555f777f,0x333f666f,0x666f333f,0x888f666f,0x777faaaf,0x777f777f,0x555f777f,0x999f999f,0x666f555f,0x333f555f,0x999f999f,0x555f555f,0x555f555f,0x999f999f,0x000f999f,0xddafbb7f,0xdd9fcb9f,0xedafbb8f,0xdc9fdd9f,0xdd9fdc9f,0xffcfedbf,0xedafdd9f,0xdcafddaf,0xa99fa99f,0x988f777f,0xa99f988f,0xbaaf878f,0x766f998f,0x444f877f,0x888f444f,0x656f888f, +0x763f653f,0x653f432f,0x642f974f,0x321f653f,0x321f974f,0x542f763f,0x763f321f,0x653f331f,0xb95f321f,0xb96f984f,0x984fb95f,0xb96fb96f,0xb96fb96f,0xb95f984f,0x984fb95f,0x321fb95f,0xeeefdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff5fed4f,0xff4fff5f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xec3fff4f, +0x9eef0cbf,0x8eef8eef,0x7edf8eef,0x8eef8eef,0x8eef8eef,0x8eef8eef,0x7edf8eef,0x0cbf6edf,0x962f332f,0xa72fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0xa72fa61f,0xa72fa72f,0x332f962f,0x753f433f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x221f753f,0x753f433f,0x752f753f,0x753f753f,0x999f642f,0x431f777f,0x753f752f,0x753f753f,0x221f753f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x555f333f,0xbbbfaaaf,0x555f555f,0x444f555f,0x888f333f,0x333f777f,0xcccf666f,0x555f555f,0x333f555f,0x333f333f,0x333f333f,0x000f333f,0x333f333f,0x333f333f,0x555f555f,0xdd9fdd9f,0xdd9fedaf,0xdc9fdd9f,0xffbfedaf,0xdc9fddaf,0xdc9fdd9f,0xedafddaf,0xedafdc9f,0x656f656f,0xbbbfbbbf,0x888faaaf,0x444f988f,0xa88f656f,0x656f888f,0x666f877f,0x767f778f, +0x974f653f,0x653f331f,0x331f974f,0x432f974f,0x321f974f,0x432f763f,0x763f653f,0x653f331f,0xb95f321f,0xca6f984f,0x984fb95f,0xb95fb96f,0xb96fb95f,0xa85fa84f,0x984fb96f,0x753fb95f,0xffffdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xff6fed3f,0xff4fff5f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xec3fff3f, +0x9eef0cbf,0x8eef8eef,0x6ddf6ddf,0x6ddf6ddf,0x6edf6ddf,0x7edf7edf,0x7edf8eef,0x0bbf5ddf,0x962f322f,0xa62fa62f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x322f962f,0x962f432f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x221f852f,0x962f432f,0x862f862f,0x862f862f,0x641f741f,0x751f641f,0x862f862f,0x862f862f,0x221f852f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x222f777f,0xbbbf555f,0x777fbbbf,0xbbbf666f,0x777faaaf,0x444f555f,0x222f333f,0xbbbfcccf,0x999f555f,0x000f999f,0x333f999f,0x555f555f,0x999f555f,0x999f999f,0x999f999f,0x999f999f,0xddafedaf,0xedafeebf,0xdc9fedaf,0xddafedbf,0xffdffebf,0xdd9fcb8f,0xdcafdc9f,0xdd9fdc9f,0x555f666f,0x544f544f,0x988f988f,0x877faa9f,0x655f999f,0x988f656f,0x656fbaaf,0x566f988f, +0x974f653f,0x753f331f,0x432f974f,0x432f653f,0x432f653f,0x321f974f,0x653f653f,0x763f331f,0xb95f653f,0xb96fa95f,0x984fb95f,0xb95fb96f,0xb96fb95f,0xb95f984f,0x984fb96f,0x653fb95f,0xffffdddf,0xeeefffff,0xeeefffff,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xcccfeeef,0xff6fed4f,0xff4fff6f,0xff4fff6f,0xff4fff4f,0xff4fff4f,0xff4fff4f,0xfe3fff4f,0xec2ffe3f, +0x9eef0cbf,0x8eefaeef,0x6ddfaeef,0x6ddf6ddf,0x6ddf6ddf,0x6ddf6ddf,0x5ddf6ddf,0x0bbf3dcf,0x962f332f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x322f962f,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x555f888f,0xbbbfbbbf,0x333f888f,0x666fbbbf,0x999fbbbf,0x555f999f,0xcccf555f,0x777f777f,0x333f555f,0x333f333f,0x333f333f,0x555f333f,0x555f000f,0x333f555f,0x333f333f,0x555f999f,0xba7fcb8f,0xdd9fedaf,0xddafdd9f,0xdc9fedaf,0xdd9fdd9f,0xeebfdd9f,0xedafdd9f,0xeeafcb8f,0x656f988f,0xaaafaaaf,0x656f877f,0xcbcfcbcf,0x877f444f,0x765fbbbf,0x988f877f,0x444f666f, +0x974f653f,0x653f432f,0x974f653f,0x653f432f,0x321f653f,0x432f974f,0x974f653f,0x763f432f,0xb95f653f,0xb96f984f,0x974fb85f,0xb96fb96f,0xb96fb96f,0xb95f984f,0x984fb96f,0x653fb95f,0xffffdddf,0xeeefffff,0xffffffff,0xffffeeef,0xffffffff,0xffffffff,0xeeefffff,0xdddfeeef,0xff6fed4f,0xff4fff6f,0xff6fff6f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xec3fff4f, +0x9eef0cbf,0x8eefaeef,0x9eef9eef,0x9eef9eef,0x9eef9eef,0x9eef9eef,0x8eef9eef,0x0cbf8eef,0x752f322f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x322f752f,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0xaaaf555f,0x777f777f,0x333f777f,0x999fbbbf,0x777f777f,0x333f888f,0x555f555f,0x888f999f,0x555f555f,0x333f999f,0x999f333f,0x333f999f,0x333f000f,0x999f999f,0x555f999f,0x555f555f,0xedafddaf,0xedafaa6f,0xeebfcc8f,0xdcafdd9f,0xfebffebf,0xdc9feeaf,0xdd9fdd9f,0xdd9fdd9f,0xbaaf656f,0x444fbaaf,0x544fa88f,0x766f665f,0x766f988f,0x988f656f,0x776f877f,0x655fbbbf, +0x763f432f,0x653f432f,0x974f653f,0x642f321f,0x542f331f,0x432f975f,0x974f653f,0x974f432f,0xb85f653f,0xb95f984f,0x984fb95f,0x984f984f,0x984f984f,0xb95f984f,0x984fb96f,0x653fb95f,0xffffdddf,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xeeefffff,0xcccfeeef,0xff7fed4f,0xff7fff7f,0xff6fff6f,0xff6fff6f,0xff6fff6f,0xff5fff5f,0xff5fff5f,0xec3ffe4f, +0xaeef0cbf,0xaeefaeef,0xaeefaeef,0xaeefaeef,0xaeefaeef,0xaeef9eef,0x8eef9eef,0x0baf6ddf,0x962f332f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x322f962f,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f, +0x00000000,0x00000000,0x00000000,0xf22ff22f,0xe11ff22f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc97fc97f,0x965fc97f,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x555f555f,0x777faaaf,0x333f666f,0x888f777f,0x777f999f,0x555f333f,0x555faaaf,0x333f555f,0x555f000f,0x555f555f,0x555f333f,0x555f555f,0x999f999f,0x555f555f,0x999f555f,0x000f999f,0xedafcc9f,0xcb9fedaf,0xdc9fddaf,0xdd9fdd9f,0xdd9fddaf,0xffcfdd9f,0xdc9fdc9f,0xbb7fdc9f,0xbaaf656f,0x655fbaaf,0x888f765f,0x555f777f,0x544fa99f,0x544faaaf,0x656f655f,0x988f777f, +0x763f331f,0x653f331f,0x974f653f,0x974f432f,0x542f321f,0x331f974f,0x974f653f,0x974f321f,0xb85f321f,0xb96f984f,0xb95fb85f,0xb85fb95f,0xb95fb95f,0xb95fb95f,0xa85fb96f,0x652fb95f,0xffffdddf,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xeeefffff,0xeeefeeef,0xcccfdddf,0xff7fed5f,0xff7fff7f,0xff7fff7f,0xff6fff7f,0xff6fff6f,0xff5fff6f,0xfe4ffe4f,0xeb2ffd4f, +0xaeef0cbf,0xaeefaeef,0xaeefaeef,0xaeefaeef,0x9eefaeef,0x8eef9eef,0x3dcf5ddf,0x0baf2dcf,0x862f322f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x322f862f,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f, +0x00000000,0x00000000,0xf22f0000,0xe11fffff,0xc12fe11f,0x0000911f,0x00000000,0x00000000,0x00000000,0x00000000,0xc97f0000,0x965fc97f,0x965f965f,0x0000754f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000,0xf00ff00f, +0xbbbfbbbf,0x333f333f,0x333f333f,0x777f666f,0x333f444f,0x999fbbbf,0x777f777f,0x555f555f,0x333f555f,0x333f333f,0x333f333f,0x333f333f,0x999f999f,0x333f333f,0x333f333f,0x555f333f,0xddafeebf,0xeebfdc9f,0xdc9fddaf,0xbb7fedaf,0xdd9fcb8f,0xdc9fdd9f,0xedafedaf,0xdc9fdc9f,0xa99fbaaf,0x545f988f,0xbaafbaaf,0x877fa9af,0x999faaaf,0xaaaf877f,0x554fa99f,0x887f877f, +0x974f321f,0x653f321f,0x974f653f,0x653f321f,0x652f331f,0x321f974f,0x642f653f,0x974f432f,0xb95f321f,0xb96f984f,0xb95fb96f,0xb96fb96f,0xb96fb96f,0xb96fb96f,0x984fb96f,0x321fb95f,0xffffdddf,0xffffffff,0xffffffff,0xffffffff,0xeeefffff,0xeeefeeef,0xdddfdddf,0xcccfdddf,0xff7fed5f,0xff7fff7f,0xff7fff7f,0xff6fff6f,0xff6fff6f,0xfe4fff5f,0xfd3ffd3f,0xeb2ffd3f, +0xaeef0cbf,0xaeefaeef,0xaeefaeef,0xaeefaeef,0x8eef9eef,0x5ddf7edf,0x0ccf1ccf,0x0baf0cbf,0x962f332f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x332f962f,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f, +0x00000000,0x00000000,0xe11ff22f,0xe11fe11f,0xcccfe11f,0x911f911f,0x00000000,0x00000000,0x00000000,0x00000000,0x965f0000,0x965f965f,0x754f965f,0x0000754f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x0000f00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777fbbbf,0xbbbf777f,0xbbbfaaaf,0x333f555f,0xcccf666f,0x777faaaf,0x777f999f,0x333f888f,0x999f555f,0x999f333f,0x555f000f,0x333f555f,0x333f333f,0x333f000f,0x555f555f,0x999f999f,0xedafffdf,0xba7fcc8f,0xdc9fdc9f,0xfebfdc9f,0xfebfedaf,0xddafedaf,0xdd9fedaf,0xdc9fedaf,0x998fbaaf,0xbaafbbbf,0x877fa99f,0xaaaf999f,0x877f888f,0x988f999f,0xb99f555f,0x544fbbbf, +0x653f432f,0x653f542f,0x763f653f,0x653f432f,0x642f653f,0x331f653f,0x974f653f,0x321f974f,0xb95f321f,0x984f974f,0x984fa85f,0x984f984f,0xa84f974f,0xa85f984f,0xa85fa85f,0x321fb85f,0xffffdddf,0xeeefffff,0xffffffff,0xffffffff,0xeeefeeef,0xeeefeeef,0xdddfdddf,0xcccfdddf,0xff6fed4f,0xff6fff6f,0xff6fff6f,0xff6fff6f,0xff5fff5f,0xfe3ffe4f,0xfd3ffd3f,0xeb2ffd3f, +0xaeef0cbf,0x9eef9eef,0xaeefaeef,0x9eefaeef,0x7edf8eef,0x2dcf4ddf,0x0ccf1ccf,0x0baf0ccf,0x752f332f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x332f752f,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f, +0x00000000,0x00000000,0xe11fcccf,0xcccfc12f,0x911fc12f,0x999f911f,0x00000000,0x00000000,0x00000000,0x00000000,0x965f0000,0x754f754f,0x754f754f,0x0000754f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0x00000000,0x0000f00f,0x0000f60f,0x00000000,0xf60f0000,0x0000f60f,0xf00ff00f, +0x888f777f,0xaaaf444f,0x777f888f,0x555f777f,0x555f555f,0x999f777f,0x999f888f,0x333f333f,0x555f555f,0x333f555f,0x333f333f,0x333f333f,0x555f555f,0x999f999f,0x333f555f,0x555f333f,0xdcafedaf,0xcc9fdc9f,0xdc9fddaf,0xedafdd9f,0xddafba7f,0xdd9fbb7f,0xcb9fedaf,0xedafcc9f,0x776f998f,0x877f666f,0x999f656f,0x544f877f,0xbaafbbbf,0xa99f887f,0x655f877f,0x877f766f, +0x653f321f,0x432f974f,0x763f653f,0x331f432f,0x653f974f,0x321f974f,0x763f652f,0x653f331f,0xb95f432f,0xb95fb95f,0xb95fb95f,0xa85fa85f,0xb95fb95f,0xb95fa85f,0xb95fb95f,0x653fb95f,0xffffdddf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xdddfeeef,0xdddfdddf,0xcccfdddf,0xff5fed4f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xff5fff5f,0xfd3ffe4f,0xfc2ffd3f,0xeb2ffc2f, +0x9eef0cbf,0x7edf8eef,0x8eef8eef,0x7edf8eef,0x6edf7edf,0x0ccf3dcf,0x0cbf0cbf,0x0a9f0cbf,0x862f332f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x332f862f,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f, +0x00000000,0x00000000,0xc12f0000,0x911f911f,0x911f911f,0x0000911f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x655f0000,0x0000443f,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf60ff00f,0xf60ff00f,0xf60ff00f,0x0000f00f,0xf00f0000,0xf00ff60f,0xf60ff00f,0xf00ff00f, +0x777f777f,0x444f777f,0x222f222f,0x555f333f,0x888faaaf,0x555f555f,0x444f444f,0x666f333f,0x333f333f,0x333f333f,0x999f000f,0x555f999f,0x555f555f,0x333f555f,0x333f333f,0x555f555f,0xedafdc9f,0xcb8fdd9f,0xddafffdf,0xeebfcc8f,0xfebfdd9f,0xdc9fdc9f,0xdd9fdc9f,0xcc8fdd9f,0x988f544f,0xa99f444f,0x656f988f,0x988f544f,0x544f544f,0xa98f444f,0x656fbaaf,0x999fb88f, +0x653f542f,0x331f763f,0x653f642f,0x432f653f,0x653f653f,0x321f653f,0x653f653f,0x763f652f,0x653f653f,0x653f321f,0x653f653f,0x653f321f,0x653f653f,0x653f653f,0x321f321f,0x653f321f,0xeeefeeef,0xeeefeeef,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xcccfdddf,0xff4fff4f,0xfe4ffe4f,0xfd3ffd3f,0xfc3ffd3f,0xfd3ffc3f,0xfc3ffc3f,0xfc3ffc3f,0xfb3ffc3f, +0x6ddf7edf,0x4ddf5ddf,0x1ccf2dcf,0x0cbf0cbf,0x0ccf0cbf,0x0cbf0cbf,0x0cbf0cbf,0x0bbf0bbf,0x322f221f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f, +0x00000000,0x00000000,0x00000000,0x744f0000,0x0000522f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x655f0000,0x0000443f,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0xb96fb96f,0xb95fb96f,0xb96fb96f,0x984fb96f,0x984f984f,0xb96f753f,0xb96fb96f,0x984fb96f, +0xbbbfbbbf,0xaaafbbbf,0x777f999f,0x141f242f,0xbbbf555f,0xbbbfbbbf,0x555f888f,0x888fbbbf,0x111f111f,0x001f111f,0x111f001f,0x001f001f,0x000f111f,0x111f001f,0x111f112f,0x111f000f,0x324f436f,0x038f000f,0x325f018f,0x112f325f,0x001f112f,0x000f038f,0x112f112f,0x112f000f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x221f433f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f,0x110f110f,0x110f000f,0x110f110f,0x000f000f,0x110f000f,0x000f110f,0x110f110f,0x110f110f, +0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x221fb96f,0x211f211f,0x211f211f,0x570f781f,0x221f221f,0x211f211f,0x211f211f,0x984f221f, +0xbbbfbbbf,0x777f666f,0x141f222f,0x383f383f,0x777f141f,0x777f888f,0x121f999f,0x999f666f,0x111f001f,0x000f000f,0x111f000f,0x111f001f,0x325f000f,0x111f111f,0x000f111f,0x111f335f,0x324f436f,0x038f213f,0x325f018f,0x112f325f,0x325f112f,0x324f325f,0x001f324f,0x325f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x861f861f,0x861f861f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f,0xb95f110f,0x221fb85f,0xa74fa74f,0xa74fa74f,0xa74fa64f,0xa74fa74f,0xb96f221f,0x110fb95f, +0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x666f777f,0x777f777f,0x777ffe4f,0x777f777f,0x777f888f,0x777f777f,0xfe4fffbf,0x777f777f,0x666f777f,0x777f777f,0x777fb98f,0x777f777f,0x777f888f,0x777f777f,0xb98fda9f,0x777f777f,0x666f777f,0x777f777f,0x777f333f,0x777f777f,0x777f888f,0x777f777f,0x333f333f,0x777f777f,0xb11fb96f,0x221f911f,0x247f358f,0x570f781f,0x321f321f,0x781f321f,0x321f570f,0x984f431f, +0x777f141f,0x121f777f,0x383f141f,0x262fbbbf,0x010f333f,0x777f888f,0x141f121f,0x888f141f,0x000f111f,0x335f325f,0x001f335f,0x000f001f,0x112f335f,0x001f111f,0x335f000f,0x111f112f,0x324f000f,0x038f038f,0x213f213f,0x112f112f,0x112f000f,0x213f213f,0x325f324f,0x038f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x531fa72f,0xa72f531f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x221fa72f,0xb95f000f,0xa63f211f,0x963fa63f,0xa63fa63f,0xa63fa74f,0xa63fa63f,0x221fa63f,0x110fb95f, +0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x555f222f,0x555f777f,0x555f666f,0x777f555f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x888f777f,0x777f777f,0x666f777f,0xffbf777f,0x777ffa2f,0x777f777f,0x777f777f,0x777f777f,0x888f777f,0x777f777f,0x666f777f,0xda9f777f,0x777fa87f,0x777f777f,0x777f777f,0x777f777f,0x888f777f,0x777f777f,0x666f777f,0x333f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0xbbbf653f,0x186f888f,0x247f358f,0x570f781f,0x911fb11f,0x781f321f,0x186f570f,0x753f065f, +0x131f252f,0x141f121f,0x252fbbbf,0x777f999f,0x141f333f,0x333f121f,0xaaaf141f,0x141fbbbf,0x000f001f,0x212f112f,0x111f001f,0x436f111f,0x112f112f,0x111f001f,0x001f000f,0x111f111f,0x324f000f,0x018f038f,0x000f112f,0x324f436f,0x325f325f,0x213f112f,0x112f001f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f433f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0xcccf851f,0x851faaaf,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x221fa61f,0x221f110f,0x532fa64f,0x532f421f,0x532f532f,0x421f421f,0x532f532f,0xa63f532f,0x000f221f, +0x555f222f,0x666f555f,0x222f666f,0x333f333f,0x222f222f,0x444f222f,0x888f666f,0x222f666f,0x555f222f,0x666f555f,0x666f999f,0x888f888f,0x666f555f,0x555f555f,0x888f666f,0x222f666f,0x555f222f,0xcccf555f,0x555fcccf,0x666f555f,0x666f666f,0xcccf666f,0x888fcccf,0x222f666f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0xb11fb96f,0x186f911f,0x247f358f,0x333f444f,0x911fb11f,0x781f321f,0xbbbf570f,0xb96f888f, +0xbbbfbbbf,0x141f555f,0x888fbbbf,0x333f888f,0x373f141f,0x373f999f,0x777f141f,0x555faaaf,0x000f001f,0x111f112f,0x111f111f,0x111f001f,0x001f000f,0x001f111f,0x001f112f,0x111f111f,0x112f000f,0x018f038f,0x000f112f,0x213f436f,0x038f214f,0x213f038f,0x112f001f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x752f433f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0xcccf752f,0x531f888f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x221f962f,0xa74f100f,0x532fa63f,0xa53f953f,0xa74f532f,0x421fa74f,0xb74f953f,0xa63f532f,0x110fa74f, +0x777f333f,0x444f777f,0x000f333f,0x000f000f,0x000f000f,0x333f000f,0x888f555f,0x222f777f,0x777f333f,0x666f777f,0x777f888f,0x555f777f,0x888f666f,0x999f999f,0x888f777f,0x222f777f,0x777f333f,0xbbbf888f,0xbbbfbbbf,0x555f333f,0x888f888f,0xbbbfcccf,0x777fbbbf,0x222f777f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000, +0x777f777f,0x777f777f,0xffff777f,0x777fffbf,0x666f777f,0xffbfffff,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0xecaf777f,0x777fda9f,0x666f777f,0xda9fecaf,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0x444f777f,0x777f333f,0x666f777f,0x333f444f,0x777f777f,0x777f666f,0xb11f984f,0x186f911f,0x247f358f,0x333f444f,0xb11f431f,0x781f911f,0x186f570f,0x984f065f, +0x888f777f,0x141f777f,0x888f252f,0x121f777f,0xcccf383f,0x262f777f,0x555f666f,0x121f121f,0x111f111f,0x001f111f,0x000f000f,0x000f000f,0x001f111f,0x111f000f,0x111f111f,0x001f001f,0x112f000f,0x018f038f,0x436f112f,0x213f436f,0x038f213f,0x213f018f,0x325f001f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x322f432f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0xaaaf221f,0x221f777f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x111f322f,0xa74f000f,0x532fa63f,0xa63fa74f,0x952f421f,0x431fa63f,0x953f852f,0xa63f532f,0x110fa74f, +0x555f222f,0x222f777f,0x000f000f,0x000f000f,0x000f000f,0x000f000f,0x666faaaf,0x222f333f,0x555f222f,0x666f777f,0x777f777f,0x555f777f,0x999f999f,0x888f777f,0x666f777f,0x222f333f,0x555f222f,0x777f777f,0xbbbfbbbf,0x666f888f,0xcccf555f,0x777fbbbf,0x666f777f,0x222f333f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00f0000, +0x888f888f,0xffff777f,0xfe4fffbf,0xfa2ffe4f,0x777f777f,0xfa2ffe4f,0x888f888f,0x666f888f,0x888f888f,0xecaf777f,0xb98fda9f,0xa87fb98f,0x777f777f,0xa87fb98f,0x888f888f,0x666f888f,0x888f888f,0x444f777f,0x333f333f,0x333f333f,0x777f777f,0x333f333f,0x888f888f,0x666f888f,0xb11fb96f,0x186f911f,0x247f358f,0x570f781f,0xb11f321f,0x781f911f,0x186f570f,0xb96f065f, +0x777f777f,0x141f262f,0x121f252f,0x242f333f,0x363f242f,0x262faaaf,0x777f777f,0x555f262f,0x111f111f,0x111f111f,0x335f335f,0x335f335f,0x000f001f,0x001f335f,0x000f000f,0x001f000f,0x112f325f,0x018f038f,0x111f112f,0x111f436f,0x038f111f,0x325f018f,0x213f324f,0x018f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x753f433f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x999f642f,0x431f777f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x221f753f,0xa74f000f,0x532fa63f,0x431f532f,0x532f532f,0x532f421f,0x421f431f,0xa63f532f,0x000fa74f, +0x666f333f,0x222f777f,0x000f000f,0x111f000f,0x111f111f,0x000f111f,0x888faaaf,0x222f666f,0x666f333f,0x666f777f,0x555f777f,0x777f666f,0x888f777f,0x777f888f,0x888f888f,0x222f666f,0x666f333f,0x666f777f,0x666f555f,0x555f555f,0x666f555f,0x666f777f,0x888f555f,0x222f666f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x753f753f,0x653f653f,0x653f653f,0x753f653f,0x753f753f,0x653f653f,0x653f653f,0x753f753f, +0x777f777f,0x141f121f,0xbbbf383f,0x131f141f,0x131f242f,0x888f333f,0x333f777f,0xcccf242f,0x111f111f,0x001f000f,0x112f111f,0x112f112f,0x000f111f,0x000f112f,0x335f324f,0x112f112f,0x112f000f,0x018f213f,0x111f112f,0x325f325f,0x038f111f,0x213f018f,0x000f213f,0x112f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f432f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x641f741f,0x751f641f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x221f852f,0xa74f000f,0x532fa63f,0xa63fa74f,0xa74f532f,0x532fa74f,0xa64fa63f,0xa63f532f,0x110fa74f, +0x555f222f,0x222f555f,0xbbbf777f,0xaaafaaaf,0xaaafaaaf,0x666faaaf,0x555faaaf,0x333f555f,0x555f222f,0x666f555f,0x888f888f,0x666f666f,0x555f666f,0x777f555f,0x555f888f,0x333f555f,0x555f222f,0x666f666f,0x444f777f,0x888f444f,0x555f888f,0x444f666f,0x555f666f,0x333f555f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0xffbf777f,0x666ffe4f,0x777f888f,0x777f777f,0xffbfffff,0x888f888f,0x888f888f,0x888f888f,0xda9f777f,0x666fb98f,0x777f888f,0x777f777f,0xda9fecaf,0x888f888f,0x888f888f,0x888f888f,0x333f777f,0x666f333f,0x777f888f,0x777f777f,0x333f444f,0x888f888f,0x888f888f,0x888f888f,0x984fb96f,0x984f984f,0xb96f984f,0xb95fb95f,0x984f984f,0x753f984f,0x984fb96f,0x984f984f, +0x010f777f,0xbbbf141f,0x262f383f,0xbbbf252f,0x262faaaf,0x131f242f,0x222f131f,0xbbbfcccf,0x000f001f,0x112f335f,0x111f001f,0x112f213f,0x001f111f,0x000f111f,0x112f112f,0x111f001f,0x112f000f,0x018f213f,0x111f112f,0x038f038f,0x038f111f,0x001f018f,0x000f038f,0x112f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa74f110f,0x532f953f,0xa63fa74f,0xa74f532f,0x532fa74f,0xa74fa63f,0xa63f532f,0x110fb74f, +0x444f222f,0x888f777f,0x555f555f,0x555f444f,0x555f555f,0x444f555f,0x555f777f,0x333f777f,0x444f222f,0x888f777f,0x777f999f,0x999f777f,0x888f999f,0x666f777f,0x555f666f,0x333f777f,0x444f222f,0x888f777f,0x555f555f,0x222f888f,0x666f222f,0x666f555f,0x555f777f,0x333f777f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x777f777f,0x777f777f,0xffbf777f,0xfa2ffa2f,0x777ffa2f,0x777f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0xda9f777f,0xa87fa87f,0x777fa87f,0x777f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x777f333f,0x777f777f,0x777f888f,0x211f984f,0x211f211f,0x211f211f,0x221f211f,0x221f221f,0x211f211f,0x247f358f,0x984f221f, +0x555f888f,0xbbbfbbbf,0x121f262f,0x666fbbbf,0x373fbbbf,0x141f999f,0xcccf555f,0x777f777f,0x111f001f,0x111f111f,0x111f111f,0x212f111f,0x001f001f,0x001f001f,0x001f112f,0x111f111f,0x000f000f,0x213f213f,0x324f112f,0x018f038f,0x038f111f,0x324f325f,0x000f038f,0x112f038f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f,0xb74f110f,0x421f842f,0x431f532f,0x532f532f,0x532f421f,0x532f431f,0xa63f532f,0x110fa74f, +0x888f444f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0x333f888f,0x888f444f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0x333f888f,0x888f444f,0xcccfcccf,0xcccfcccf,0x000f222f,0x222f000f,0xcccfcccf,0xcccfcccf,0x333f888f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f777f,0x777f888f,0x888ffe4f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x777f777f,0x777f888f,0x888fb98f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x777f777f,0x777f888f,0x888f333f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x211fb96f,0x321f321f,0x911fb11f,0x321f321f,0xa90f321f,0x221f870f,0x247f358f,0x984f321f, +0x383f555f,0x777f777f,0x333f777f,0x999fbbbf,0x262f777f,0x333f888f,0x555f242f,0x888f999f,0x111f111f,0x001f111f,0x111f001f,0x001f001f,0x000f111f,0x112f001f,0x001f111f,0x111f111f,0x112f324f,0x112f112f,0x213f000f,0x018f038f,0x038f213f,0x038f038f,0x000f038f,0x112f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f,0xa74f110f,0x421fa63f,0xa63f953f,0xa63f431f,0x421f852f,0xb74fa63f,0xa63f532f,0x110fa74f, +0x777f444f,0xbbbfbbbf,0x777fbbbf,0x444f444f,0x444f333f,0xbbbf777f,0xaaaf999f,0x333f777f,0x777f444f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x333f777f,0x777f444f,0xbbbfbbbf,0xbbbfaaaf,0x111f222f,0x222f111f,0xbbbfcccf,0xaaaf999f,0x333f777f,0xf60ff00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xffbf777f,0x888ffa2f,0x666f888f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xda9f777f,0x888fa87f,0x666f888f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x333f777f,0x888f333f,0x666f888f,0x830f753f,0x620f730f,0x911fb11f,0x431f321f,0xbbbf570f,0x911f888f,0x247f358f,0x753f186f, +0x141f141f,0x777f373f,0x333f666f,0x888f777f,0x777f999f,0x131f121f,0x141f383f,0x333f141f,0x000f112f,0x111f000f,0x001f001f,0x001f111f,0x335f000f,0x111f001f,0x435f000f,0x111f112f,0x112f214f,0x325f213f,0x213f000f,0x018f038f,0x325f213f,0x018f038f,0x000f038f,0x112f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f,0xa74f000f,0x532fa63f,0xb74f953f,0xa74f532f,0x532fa74f,0xb74f953f,0xa64f532f,0x110fa74f, +0x777f444f,0x777faaaf,0x333f333f,0x000f000f,0x000f000f,0x333f333f,0xaaaf777f,0x333f777f,0x777f444f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x333f777f,0x777f444f,0xbbbfaaaf,0xbbbfbbbf,0x111fbbbf,0xcccf111f,0xbbbfaaaf,0xaaafbbbf,0x333f777f,0xf00ff00f,0x0000f60f,0x00000000,0x00000000,0x00000000,0x00000000,0xf60f0000,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xffffffbf,0xfe4fffbf,0xfa2ffe4f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xecafda9f,0xb98fda9f,0xa87fb98f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x444f333f,0x333f333f,0x333f333f,0x777f777f,0x830fb96f,0x620f730f,0x911fb11f,0x321f358f,0xbbbf570f,0x911f888f,0x247f358f,0xb96f186f, +0xbbbfbbbf,0x121f121f,0x121f121f,0x777f242f,0x121f131f,0x999fbbbf,0x777f262f,0x141f141f,0x335f111f,0x212f325f,0x000f001f,0x001f101f,0x325f000f,0x111f112f,0x111f111f,0x001f001f,0x112f213f,0x000f112f,0x000f000f,0x213f038f,0x324f213f,0x018f038f,0x324f000f,0x214f213f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x861fa72f,0x861f861f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f,0x221f000f,0x532fa63f,0x421f532f,0x532f532f,0x532f532f,0x532f532f,0xa63f532f,0x000f221f, +0x777f444f,0x333f777f,0x000f000f,0x000f000f,0x000f000f,0x000f000f,0xbbbf444f,0x222f777f,0x777f444f,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfbbbf,0x222f777f,0x777f444f,0xbbbfbbbf,0xaaafbbbf,0xcccfbbbf,0xaaafcccf,0xbbbfbbbf,0xbbbfaaaf,0x222f777f,0xf60ff00f,0x0000f00f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf00ff60f, +0x888f777f,0xffbf777f,0x777ffa2f,0x777f777f,0xfa2f777f,0x777ffa2f,0x777f777f,0x888f888f,0x888f777f,0xda9f777f,0x777fa87f,0x777f777f,0xa87f777f,0x777fa87f,0x777f777f,0x888f888f,0x888f777f,0x333f777f,0x777f333f,0x777f777f,0x333f777f,0x777f333f,0x777f777f,0x888f888f,0x830fb95f,0x620f730f,0x911fb11f,0x570f358f,0xa90f321f,0x911f870f,0x247f358f,0xb95f186f, +0x777fbbbf,0xbbbf252f,0xbbbf383f,0x333f141f,0xcccf242f,0x777faaaf,0x777f999f,0x333f888f,0x111f002f,0x112f112f,0x000f111f,0x111f112f,0x213f000f,0x112f112f,0x111f111f,0x111f001f,0x000f112f,0x325f112f,0x324f325f,0x213f213f,0x325f111f,0x018f038f,0x000f325f,0x213f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x861fa72f,0xa72fa72f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f,0xb95f000f,0xa63f211f,0xa63fa64f,0xa63fa63f,0xa63f963f,0xa64fa63f,0x221fa74f,0x000fb85f, +0x777f444f,0x000f333f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0xbbbf000f,0x333f777f,0x777f444f,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0xaaafaaaf,0xaaafaaaf,0x333f777f,0x777f444f,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafbbbf,0x333f777f,0xf60ff00f,0x00000000,0x0000f00f,0x0000f60f,0x00000000,0xf60f0000,0x0000f60f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x830fb96f,0x620f730f,0x911fb11f,0x570f358f,0xa90f431f,0x911f870f,0x247f358f,0xb96f186f, +0x888f777f,0xaaaf131f,0x777f888f,0x141f777f,0x141f141f,0x999f777f,0x999f888f,0x121f333f,0x111f111f,0x112f111f,0x111f111f,0x001f001f,0x112f000f,0x112f112f,0x111f112f,0x001f001f,0x324f000f,0x213f325f,0x038f038f,0x324f213f,0x213f111f,0x214f038f,0x000f213f,0x112f325f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x752f962f,0x962f962f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f,0xb95f100f,0x221fb95f,0xb74fa74f,0xa64fa64f,0xa74fa74f,0xa74fa64f,0xb95f221f,0x110fb95f, +0x777f444f,0x111f333f,0x222f222f,0x222f222f,0x222f222f,0x222f222f,0xbbbf111f,0x222f777f,0x777f444f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x222f777f,0x777f444f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x222f777f,0xf60ff00f,0xf60ff00f,0xf60ff00f,0x0000f00f,0xf00f0000,0xf00ff60f,0xf60ff00f,0xf00ff00f, +0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x753f753f,0x763f753f,0x653f653f,0x653f763f,0x753f753f,0x653f753f,0x653f432f,0x753f653f, +0x777f777f,0x131f777f,0x010f020f,0x141f121f,0x888f383f,0x242f555f,0x131f131f,0x666f121f,0x001f111f,0x001f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f001f,0x436f436f,0x213f000f,0x018f038f,0x324f112f,0x213f111f,0x213f038f,0x325f112f,0x112f000f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f,0x110f110f,0x110f000f,0x521f110f,0x521f421f,0x521f521f,0x110f521f,0x000f000f,0x110f000f, +0x666f333f,0x222f333f,0x222f222f,0x222f222f,0x222f222f,0x222f222f,0xaaaf222f,0x333f666f,0x333f333f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x333f333f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f333f,0x333f333f,0x222f222f,0x333f222f,0x333f333f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f,0xf00ff00f, +0xcc4fdd4f,0xcc4fbb2f,0xcc4fcc4f,0xcc4fcc4f,0xcc4fdd5f,0xee4f550f,0xcc4fdd5f,0xcc4fcc4f,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xcfffffff,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f, +0x0000999f,0x999faaaf,0x0000555f,0x00000000,0x0000777f,0x00000000,0x555f0000,0xaaaf0000,0x222f999f,0x999faaaf,0x222f555f,0x222f222f,0x222f777f,0x222f222f,0x555f222f,0xaaaf222f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x432f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x221f433f,0x433f433f,0x432f432f,0x433f432f,0x433f433f,0x433f432f,0x433f433f,0x433f433f,0x322f433f,0x984f110f,0x984f984f,0x221f984f,0x521fb74f,0xb74f521f,0xb96f221f,0xb96fb96f,0x110fb96f, +0x984f110f,0x984f984f,0x221f984f,0x521fb74f,0xb74f521f,0xb96f221f,0xb96fb96f,0x110fb96f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x330fcc3f,0xcc4fee4f,0xcc4fcc3f,0x330f330f,0xdd4fcc4f,0xcc4fcc4f,0xcc4fcc4f,0xcc4f220f,0x0000ffff,0x00000000,0x00000000,0xcfff0000,0x00000000,0x00000000,0x00000000,0xbddf0000,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f, +0x0000888f,0x999fbbbf,0x555f0000,0x00000000,0x444f555f,0xbbbf0000,0x555fbbbf,0x555f0000,0x222f888f,0x999fbbbf,0x555f222f,0x222f222f,0x444f555f,0xbbbf222f,0x555fbbbf,0x555f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x861f861f,0x861f861f,0xa61fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72f861f,0x221fa72f,0xb96f110f,0x753fb95f,0xb95fb95f,0x521f221f,0x221f521f,0xb95f984f,0xb95f984f,0x110fb96f, +0xb96f110f,0x753fb95f,0xb95fb95f,0x521f221f,0x221f521f,0xb95f984f,0xb95f984f,0x110fb96f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc4fcc4f,0xdd4fcc4f,0xdd5fcc4f,0x660f550f,0xcc4fdd4f,0xee5fbb3f,0xcc4f330f,0xcc4fff6f,0x0000ffff,0xffff0000,0x00000000,0x0000cfff,0x00000000,0x00000000,0x00000000,0x00000000,0x666f777f,0x777f777f,0x777f7cff,0x777f777f,0x777f888f,0x777f777f,0x7cffceff,0x777f777f,0x666f777f,0x777f777f,0x777f900f,0x777f777f,0x777f888f,0x777f777f,0x900ff00f,0x777f777f, +0x00000000,0x0000888f,0xaaaf555f,0x0000aaaf,0xaaaf999f,0xbbbf555f,0x0000999f,0xaaafbbbf,0x222f222f,0x222f888f,0xaaaf555f,0x222faaaf,0xaaaf999f,0xbbbf555f,0x222f999f,0xaaafbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72fa61f,0x221fa72f,0xb96f110f,0x984f984f,0x984f753f,0x221fb95f,0xb96f221f,0xb95fb96f,0xb96f753f,0x110fb96f, +0xb96f110f,0x984f984f,0x984f753f,0x221fb95f,0xb96f221f,0xb95fb96f,0xb96f753f,0x110fb96f,0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0x555f222f,0x555f777f,0x888f666f,0x777f888f,0x555f666f,0x777f888f,0x777f555f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc3fcc4f,0x330fdd5f,0xdd4f330f,0x330fee4f,0xcc3fee4f,0x220fcc3f,0xcc3f660f,0xdd5fcc4f,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xbddfcfff,0x888f777f,0x777f777f,0x666f777f,0xceff777f,0x777f5eff,0x777f777f,0x777f777f,0x777f777f,0x888f777f,0x777f777f,0x666f777f,0xf00f777f,0x777f800f,0x777f777f,0x777f777f,0x777f777f, +0x00000000,0x00000000,0xaaaf0000,0x0000888f,0x999faaaf,0xaaaf444f,0x0000888f,0x999faaaf,0x222f222f,0x222f222f,0xaaaf222f,0x222f888f,0x999faaaf,0xaaaf444f,0x222f888f,0x999faaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f433f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0xa61fa61f,0xa61fa61f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa62fa62f,0x221fa61f,0x653f110f,0x432f653f,0x753f432f,0x110f753f,0x753f110f,0x653f432f,0x653f653f,0x110f753f, +0x653f110f,0x432f653f,0x753f432f,0x110f753f,0x753f110f,0x210f432f,0x210f210f,0x110f753f,0x555f222f,0x666f555f,0x222f666f,0x333f333f,0x222f222f,0x444f222f,0x888f666f,0x222f666f,0x555f222f,0x666f555f,0x666f999f,0x888f888f,0x666f555f,0x555f555f,0x888f666f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc4fcc4f,0x660fcc4f,0xcc4f660f,0xcc3faa1f,0xbb3fcc4f,0xcc4fcc4f,0xcc4fee4f,0xcc4fff7f,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xcfff0000,0xbddf0000,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f, +0xaaaf0000,0x0000aaaf,0xaaaf0000,0x0000555f,0x888f999f,0x00000000,0x0000888f,0x888f999f,0xaaaf222f,0x222faaaf,0xaaaf222f,0x222f555f,0x888f999f,0x222f222f,0x222f888f,0x888f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x752f433f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x752f962f,0x752f962f,0x752f752f,0x962f752f,0x752f962f,0x752f962f,0x962f752f,0x962f962f,0x221f962f,0x984f110f,0x753f984f,0xb96f984f,0x221fb96f,0x984f221f,0x753f753f,0xb95fb95f,0x110fb95f, +0x984f110f,0x753f984f,0xb96f984f,0x221fb96f,0x984f221f,0x210f753f,0x210f753f,0x110f753f,0x777f333f,0x444f777f,0x000f333f,0x000f000f,0x000f000f,0x333f000f,0x888f555f,0x222f777f,0x777f333f,0x666f777f,0x777f888f,0x555f777f,0x888f666f,0x999f999f,0x888f777f,0x222f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xbb3fcc4f,0xcc4fcc4f,0xbb3fee4f,0xdd4fcc4f,0xcc4f220f,0xcc4fdd4f,0xdd5f660f,0xcc4fdd4f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000cfff,0x00000000,0x777f777f,0x777f777f,0xffff777f,0x777fceff,0x666f777f,0xceffffff,0x777f777f,0x777f666f,0x777f777f,0x777f777f,0xf00f777f,0x777fa00f,0x666f777f,0xa00ff00f,0x777f777f,0x777f666f, +0xbbbf0000,0x0000888f,0x888f444f,0x0000555f,0x999f555f,0x555f0000,0x555f0000,0x888f0000,0xbbbf222f,0x222f888f,0x888f444f,0x222f555f,0x999f555f,0x555f222f,0x555f222f,0x888f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x322f432f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x322f332f,0x332f332f,0x332f322f,0x332f332f,0x322f332f,0x332f332f,0x332f332f,0x322f322f,0x111f322f,0x984f110f,0x210f753f,0x210fb95f,0x221fb96f,0xb95f221f,0xb95f963f,0x984f984f,0x110f984f, +0x984f110f,0x210f753f,0xb95fb95f,0x221fb96f,0xb95f221f,0x210f963f,0x210f210f,0x110f653f,0x555f222f,0x222f777f,0x000f000f,0x000f000f,0x000f000f,0x000f000f,0x666faaaf,0x222f333f,0x555f222f,0x666f777f,0x777f777f,0x555f777f,0x999f999f,0x888f777f,0x666f777f,0x222f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x330fdd5f,0xee6fcc4f,0xcc4f660f,0xcc4fcc4f,0xdd4fee4f,0xbb2fcc4f,0xee4fff6f,0xcc4fcc4f,0x00000000,0x00000000,0x00000000,0xcfff0000,0x00000000,0x00000000,0x00000000,0xbddf0000,0x888f888f,0xffff777f,0x7cffceff,0x5eff7cff,0x777f777f,0x5eff7cff,0x888f888f,0x666f888f,0x888f888f,0xb00f777f,0x900fa00f,0x800f900f,0x777f777f,0x800f900f,0x888f888f,0x666f888f, +0x999f555f,0x555f0000,0x0000555f,0xaaafaaaf,0x00000000,0x0000666f,0x555f0000,0x555f555f,0x999f555f,0x555f222f,0x222f555f,0xaaafaaaf,0x222f222f,0x222f666f,0x555f222f,0x555f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x753f433f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x652f753f,0x652f652f,0x752f753f,0x753f753f,0x652f753f,0x652f652f,0x753f752f,0x753f753f,0x221f753f,0xb96f110f,0x210fb96f,0x210f753f,0x221f753f,0x984f221f,0xb96f432f,0xb96fb96f,0x110fb96f, +0xb96f110f,0x210fb96f,0xb96fb96f,0x221fb96f,0x984f221f,0xdddf432f,0xbbbfdddf,0x110f753f,0x666f333f,0x222f777f,0x000f000f,0x111f000f,0x111f111f,0x000f111f,0x888faaaf,0x222f666f,0x666f333f,0x666f777f,0x555f777f,0x777f666f,0x888f777f,0x777f888f,0x888f888f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x660fbb3f,0xdd4fee4f,0xdd5fee4f,0xcc4fcc3f,0xcc4fcc4f,0xbb2fdd4f,0xcc4f991f,0xcc4fdd5f,0x0000ffff,0x0000cfff,0x00000000,0x0000cfff,0x00000000,0x00000000,0x00000000,0xbddf0000,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f, +0xbbbfaaaf,0xaaaf0000,0x555fbbbf,0x999faaaf,0xaaaf0000,0x555fbbbf,0x555f0000,0x666f0000,0xbbbfaaaf,0xaaaf222f,0x555fbbbf,0x999faaaf,0xaaaf222f,0x555fbbbf,0x555f222f,0x666f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f432f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x962f862f,0x962f962f,0x862f862f,0x862f862f,0x221f852f,0x753f110f,0x653f653f,0x653fdddf,0x110f653f,0x753f110f,0x432f653f,0x653f653f,0x110f753f, +0x753f110f,0x210f653f,0x653f653f,0x110f653f,0x753f110f,0xffff653f,0xbbbfdddf,0x110f432f,0x555f222f,0x222f555f,0xbbbf777f,0xaaafaaaf,0xaaafaaaf,0x666faaaf,0x555faaaf,0x333f555f,0x555f222f,0x666f555f,0x888f888f,0x666f666f,0x555f666f,0x777f555f,0x555f888f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xee4fcc4f,0xdd4fdd4f,0xcc4fdd4f,0x330fcc3f,0x330fee4f,0x330f330f,0xcc4fbb2f,0xcc4f330f,0xcfffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xbddf0000,0xceff777f,0x666f7cff,0x777f888f,0x777f777f,0xceffffff,0x888f888f,0x888f888f,0x888f888f,0xf00f777f,0x666f900f,0x777f888f,0x777f777f,0xa00ff00f,0x888f888f,0x888f888f,0x888f888f, +0x888fbbbf,0x999f0000,0x555f999f,0x999f999f,0x999f0000,0x0000999f,0xbbbf0000,0x555f999f,0x888fbbbf,0x999f222f,0x555f999f,0x999f999f,0x999f222f,0x222f999f,0xbbbf222f,0x555f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa61fa72f,0xa72f861f,0xa72fa72f,0xa72fa72f,0xa72fa72f,0x221f962f,0xb96f110f,0xdddfb96f,0xdddf753f,0x221f653f,0xb95f221f,0xb95fb95f,0xb96fb96f,0x110fb96f, +0xb96f110f,0x210fb96f,0x753fbbbf,0x221f984f,0xb95f221f,0x753fb95f,0xbbbfdddf,0x110f753f,0x444f222f,0x888f777f,0x888f555f,0x999f888f,0x999f999f,0x444f888f,0x555f777f,0x333f777f,0x444f222f,0x888f777f,0x777faaaf,0x999f666f,0x888f999f,0x666f777f,0x444f555f,0x333f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc4fcc4f,0x330fcc4f,0xcc4fcc4f,0xdd4fdd5f,0x660fcc4f,0x660f550f,0x330fee4f,0x660f660f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x777f777f,0x777f777f,0x777f777f,0xceff777f,0x5eff5eff,0x777f5eff,0x777f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0xa00f777f,0x800f800f,0x777f800f,0x777f777f,0x777f888f, +0x444f888f,0x555f0000,0x0000888f,0x0000999f,0x0000555f,0x0000999f,0xaaaf555f,0x0000999f,0x444f888f,0x555f222f,0x222f888f,0x222f999f,0x222f555f,0x222f999f,0xaaaf555f,0x222f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f432f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72f861f,0xa72fa72f,0x861f861f,0xa61f861f,0x861fa72f,0x221f752f,0x984f110f,0xbbbf984f,0xbbbf653f,0x221f753f,0x984f221f,0x753f984f,0x984fb96f,0x110f984f, +0x984f110f,0xdddfbbbf,0x753fbbbf,0x221fb95f,0x984f221f,0x753f984f,0xbbbfffff,0x110f653f,0x888f444f,0xdddfcccf,0xeeefdddf,0xffffffff,0xffffffff,0xdddfeeef,0xcccfdddf,0x333f888f,0x555f222f,0x999f999f,0x555f777f,0x777f999f,0x888f999f,0x666f888f,0x999f666f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd4fcc4f,0xee4fcc4f,0xcc3fcc4f,0xdd4f110f,0xdd5fee6f,0xee4fee5f,0xff6fcc4f,0xcc3f550f,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x777f777f,0x777f888f,0x888f7cff,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f,0x777f777f,0x777f888f,0x888f900f,0x777f888f,0x777f666f,0x888f888f,0x777f888f,0x777f777f, +0x0000555f,0x00000000,0x444f0000,0x0000555f,0xaaafaaaf,0x00000000,0x999f555f,0x00000000,0x222f555f,0x222f222f,0x444f222f,0x222f555f,0xaaafaaaf,0x222f222f,0x999f555f,0x222f222f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x861f861f,0x861f861f,0xa72fa72f,0xa72fa72f,0x221f962f,0xb95f110f,0xb95fb95f,0xb96fb96f,0x110f984f,0x984f221f,0xb95fb95f,0xb95f963f,0x110fb95f, +0xb95f110f,0x753f753f,0x753fbbbf,0x110f984f,0x984f221f,0xb95fb95f,0xbbbfdddf,0x110f753f,0x777f444f,0xdddfcccf,0xeeefeeef,0x444f444f,0x444f333f,0xeeefeeef,0xcccfdddf,0x333f777f,0x555f222f,0x777f777f,0x555f777f,0x888f999f,0x777f777f,0x555f777f,0x666f666f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd4f110f,0xcc4fcc4f,0xcc4fcc4f,0xdd4fdd3f,0xcc4fcc4f,0x110fcc4f,0xcc4fcc4f,0xcc4fee4f,0x0000ffff,0x00000000,0x00000000,0x0000cfff,0x00000000,0x00000000,0x0000ffff,0xbddf0000,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xceff777f,0x888f5eff,0x666f888f,0x777f666f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0xf00f777f,0x888f800f,0x666f888f, +0x0000aaaf,0xbbbfaaaf,0x00000000,0x00000000,0x999faaaf,0xaaaf0000,0x0000888f,0xaaaf555f,0x222faaaf,0xbbbfaaaf,0x222f222f,0x222f222f,0x999faaaf,0xaaaf222f,0x222f888f,0xaaaf555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa62f432f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0xa61fa62f,0xa61fa61f,0xa61fa61f,0xa62fa62f,0x221f862f,0x653f110f,0x753f753f,0x653f653f,0x100f653f,0x753f110f,0x753f753f,0x653f432f,0x110f653f, +0x653f110f,0x753f753f,0x431f431f,0x100f653f,0x753f110f,0x753f753f,0xbbbf221f,0x110f431f,0xaaaf444f,0xdddfdddf,0x333f333f,0xc00ff00f,0xc00ff00f,0x333f333f,0xdddfdddf,0x333faaaf,0x777f333f,0x777f888f,0x555f777f,0x777f777f,0x777f888f,0x666f555f,0x666f888f,0x222f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xff5f660f,0x330fcc4f,0xdd4f110f,0xcc3fcc4f,0x220f330f,0xcc4fdd4f,0xaa2fdd4f,0xee4f660f,0xcfff0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xbddf0000,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xffffceff,0x7cffceff,0x5eff7cff,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0xf00fa00f,0x900fa00f,0x800f900f,0x777f777f, +0x0000888f,0x999fbbbf,0xaaaf0000,0x0000bbbf,0x888f0000,0x999f0000,0x0000999f,0xaaaf444f,0x222f888f,0x999fbbbf,0xaaaf222f,0x222fbbbf,0x888f222f,0x999f222f,0x222f999f,0xaaaf444f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa72f433f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x861fa72f,0x861f861f,0xa72fa72f,0x861fa72f,0x861fa72f,0x861f861f,0x861f861f,0xa61fa72f,0x221f962f,0xb96f110f,0xa73fb96f,0x984fb96f,0x110fb96f,0x984f221f,0x984f984f,0x753f963f,0x110fb96f, +0xb96f110f,0xa73fb96f,0x984fb96f,0x110fb96f,0x984f221f,0x984f984f,0xffff963f,0x110f753f,0xcccf888f,0x333feeef,0xc00fc00f,0xc00ffa0f,0xf00ffa0f,0xc00fc00f,0xeeef444f,0x222faaaf,0x555f222f,0x555f555f,0x555f555f,0x777f666f,0x555f666f,0x888f999f,0x777f777f,0x222f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xee4fee4f,0x660fdd4f,0xee4f660f,0x330fcc3f,0x660f660f,0xdd4f550f,0xcc4fcc4f,0xcc4fcc4f,0x0000cfff,0x00000000,0x00000000,0x00000000,0x00000000,0x0000cfff,0x00000000,0xbddf0000,0x888f777f,0xceff777f,0x777f5eff,0x777f777f,0x5eff777f,0x777f5eff,0x777f777f,0x888f888f,0x888f777f,0xf00f777f,0x777f800f,0x777f777f,0x800f777f,0x777f800f,0x777f777f,0x888f888f, +0x0000999f,0x999f555f,0xaaaf0000,0x0000888f,0x555f0000,0x999f0000,0xaaaf444f,0x0000aaaf,0x222f999f,0x999f555f,0xaaaf222f,0x222f888f,0x555f222f,0x999f222f,0xaaaf444f,0x222faaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x861f433f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x861fa72f,0xa72fa72f,0xa72fa61f,0xa72fa72f,0x861fa72f,0xa72fa72f,0x861fa72f,0x861f861f,0x221f752f,0x984f110f,0xa73f753f,0xb96fb96f,0x221fb96f,0xb95f221f,0x984fb95f,0x984f984f,0x110f984f, +0x984f110f,0xa73f753f,0xb96fb96f,0x221fb96f,0xb95f221f,0x984fb95f,0x653f984f,0x110f653f,0xdddf888f,0xf00f333f,0xfa0ffa0f,0xf00ffa0f,0xfa0fff0f,0xf00ff00f,0xeeeff00f,0x333faaaf,0x666f333f,0x999f777f,0x999f888f,0x555f666f,0x999f666f,0x777f888f,0x777f888f,0x222f666f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcc3fcc4f,0xee6fbb3f,0xbb2fee4f,0xcc4fdd5f,0x660f660f,0xcc4fee4f,0xee4f660f,0xcc3fcc4f,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcfff0000,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x777f777f,0x777f777f, +0x0000666f,0x555f0000,0x888f555f,0x00000000,0x666f0000,0x999f555f,0xbbbf0000,0x555f999f,0x222f666f,0x555f222f,0x888f555f,0x222f222f,0x666f222f,0x999f555f,0xbbbf222f,0x555f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x962f433f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x752f962f,0x962f962f,0x752f752f,0x962f752f,0x752f962f,0x962f962f,0x962f752f,0x962f962f,0x221f862f,0xb96f110f,0x753f984f,0xb96f984f,0x221fb96f,0xb96f221f,0xb95f984f,0xb96fb96f,0x110fb96f, +0xb96f110f,0x753f984f,0xb96f984f,0x221fb96f,0xb96f221f,0xb95f984f,0xb96fb96f,0x110fb96f,0xeeef888f,0xfa0f333f,0xff0fff0f,0xfa0fff0f,0xff0ffa0f,0xfa0fff0f,0xeeeffa0f,0x222faaaf,0x666f333f,0x666f555f,0x555f444f,0x777f777f,0x666f444f,0x666f666f,0x444f555f,0x333f555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xbb3fee5f,0xcc4fbb2f,0xcc4fbb2f,0xcc4fdd4f,0xee5fff6f,0xdd4fdd5f,0xcc4fee4f,0xcc4fcc4f,0xbddfcfff,0xbddfbddf,0xbddfbddf,0x00000000,0xbddfbddf,0xbddf0000,0xbddfbddf,0xcfffbddf,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x0000aaaf,0x00000000,0x999f0000,0x555f0000,0xaaafaaaf,0x0000555f,0x888f0000,0xaaaf555f,0x222faaaf,0x222f222f,0x999f222f,0x555f222f,0xaaafaaaf,0x222f555f,0x888f222f,0xaaaf555f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x221f221f,0x211f221f,0x753f110f,0x763f753f,0x653f653f,0x110f763f,0x753f110f,0x653f753f,0x653f432f,0x110f653f, +0x753f110f,0x763f753f,0x653f653f,0x110f763f,0x753f110f,0x653f753f,0x653f432f,0x110f653f,0xdddf888f,0xf00f333f,0xf00ffa0f,0xff0ffa0f,0xfa0ff00f,0xfa0fff0f,0xeeeff00f,0x333f999f,0x333f333f,0x333f333f,0x222f333f,0x222f222f,0x333f222f,0x333f333f,0x222f222f,0x333f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfcccf,0xcccfcccf,0xeeefdddf,0xdddfcccf,0xeeefeeef,0xcccfbbbf,0xeeefeeef,0xcccfcccf,0x157f235f,0x157f245f,0x245f046f,0x036f258f,0x157f157f,0x157f245f,0x356f258f,0x245f157f,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xffffffff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x041f0000,0x181f181f,0x181f182f,0x061f182f,0x172f041f,0x182f172f,0x181f182f,0x0000061f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xaabf889f,0x9abfaabf,0x9abf9aaf,0x9aaf9aaf,0xaabfaabf,0x9aaf9aaf,0x9aaf9aaf,0x9aaf99af,0xeedf0000,0x00009c6f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x222f322f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x222f322f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0xeeefdddf,0xffffffff,0xeeefeeef,0xdddfdddf,0xcccfcccf,0xdddfdddf,0xcccfbbbf,0xdddfdddf,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x147f0000,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xffffefff,0xefffefff,0xffffefff,0xefffffff,0x7af97af9,0x7af97af9,0x7af97af9,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0xffffffff,0xefffffff,0x532fefff,0xefffefff,0xffffefff,0xefffefff,0xffffefff,0xefffffff,0x061f0000,0x000f061f,0x061f020f,0x000f020f,0x061f061f,0x000f061f,0x061f020f,0x0000061f,0x041f0000,0x181f171f,0x182f071f,0x000f051f,0x171f041f,0x182f172f,0x181f182f,0x0000061f,0x061f0000,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x0000061f, +0x9aafaabf,0xaabfaabf,0x9aaf99af,0x9aaf9aaf,0xaabf99af,0xaabfabcf,0x9aaf9aaf,0xaabf9aaf,0x8a5f0000,0x0000684f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xeedf0000,0x00009c6f,0x754f322f,0x853f854f,0x854f854f,0x753f753f,0x753f753f,0x854f753f,0x854f753f,0x322f754f,0x754f322f,0x853f854f,0x854f854f,0x753f753f,0x753f753f,0x854f753f,0x854f753f,0x322f754f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffeeef,0xdddfdddf,0xffffffff,0xdddfeeef,0xffffeeef,0xeeefeeef,0xffffffff,0xeeefeeef,0x157f134f,0x157f245f,0x356f157f,0x157f157f,0x157f147f,0x157f134f,0x235f157f,0x245f036f,0xffffefff,0xefffefff,0xefffefff,0xefffefff,0xefffffff,0xefffefff,0xffffffff,0xefffefff,0x7af97af9,0xfff97af9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x532fefff,0xefffefff,0x532fefff,0x532fefff,0xefffffff,0xefffefff,0xffff532f,0x532fefff,0x061f0000,0x051f182f,0x171f181f,0x051f171f,0x181f182f,0x061f182f,0x181f182f,0x0000061f,0x000f000f,0x171f061f,0x182f071f,0x031f061f,0x171f041f,0x182f172f,0x051f182f,0x000f000f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fddaf,0x0000061f, +0xaabfaabf,0x9aafabcf,0x9aaf9aaf,0x9abf9abf,0xaabfaabf,0xaabfaabf,0x9aaf99af,0xabcf9aaf,0xad7f0000,0x9e3f8a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x7c2f8a5f,0x8a5f0000,0x0000684f,0x854f322f,0x853f532f,0x853f532f,0x954f532f,0x964f532f,0x954f532f,0x964f532f,0x322f854f,0x854f322f,0x853f853f,0x853f853f,0x753f954f,0x964f753f,0x954f964f,0x964f953f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xffffeeef,0xdddfdddf,0xffffdddf,0xdddfcccf,0xffffffff,0xdddfdddf,0xffffffff,0x0000157f,0x0000157f,0x258f0000,0x00000000,0x00000000,0x0000258f,0x157f0000,0x258f0000,0xefffffff,0xefffefff,0xffffffff,0xffffefff,0xefffffff,0xefffefff,0xffffffff,0xefffefff,0x7af97af9,0x7af9fff9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af98bf9, +0x666f532f,0x532f532f,0x532fffff,0x532f532f,0x532fffff,0x532fefff,0x532f753f,0x753f532f,0x000f0000,0x192f051f,0x182f181f,0x000f061f,0x181f061f,0x000f061f,0x181f061f,0x0000061f,0x020f0000,0x171f061f,0x182f071f,0x061f171f,0x051f000f,0x182f172f,0x071f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fddaf,0x0000061f, +0x9aaf99af,0xaabf9aaf,0xaabf9aaf,0x9aaf9aaf,0x9aaf9aaf,0xaabf9aaf,0x9aaf9abf,0x99af9abf,0xad7f0000,0x7c2f8a5f,0xad7f0000,0x9e3f8a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x853f322f,0x953f421f,0x953f421f,0x953f421f,0x953f421f,0x954f421f,0x954f421f,0x322f853f,0x853f322f,0x953f954f,0x953f953f,0x111f753f,0x753f111f,0x954f954f,0x954f954f,0x322f853f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfeeef,0xdddfcccf,0xeeefeeef,0xbbbfbbbf,0xeeefdddf,0xcccfdddf,0xeeefeeef,0xbbbfcccf,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x046f0000,0xffffffff,0xefffefff,0xffffefff,0xffffefff,0xefffefff,0xffffefff,0xefffffff,0xefffefff,0xfff97af9,0x7af97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9,0x8bf97af9,0x7af97af9, +0x753f964f,0xb85f964f,0x964f532f,0x753f753f,0x532f532f,0x666f532f,0x964f753f,0x753f532f,0x020f0000,0x181f182f,0x182f061f,0x061f182f,0x181f182f,0x061f182f,0x181f182f,0x0000061f,0x041f0000,0x181f071f,0x182f172f,0x061f181f,0x061f020f,0x182f181f,0x171f182f,0x0000061f,0x061f0000,0xddafdd9f,0xddafdd9f,0xddafddaf,0xddafdd9f,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0x9aafaabf,0x9aafaabf,0xaabfaabf,0xaabfaabf,0x99afaabf,0xaabf9aaf,0x99af9abf,0x99afaabf,0xad7f0000,0x00008a5f,0xeedf0000,0x7c2f9c6f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x753f322f,0x532f853f,0x532f853f,0x532f964f,0x532f964f,0x532f853f,0x532f954f,0x322f854f,0x753f322f,0x853f853f,0x964f853f,0x111f753f,0x753f111f,0x953f853f,0x954f954f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xbbbfcccf,0xffffcccf,0xbbbfcccf,0xdddfcccf,0xbbbfcccf,0xdddfdddf,0xdddfcccf,0xdddfcccf,0x157f245f,0x258f245f,0x346f157f,0x157f157f,0x258f157f,0x258f245f,0x245f157f,0x245f157f,0xefffefff,0xefffefff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xefffefff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af9fff9,0x7af97af9,0x7af98bf9,0x7af97af9, +0x532f753f,0x964f964f,0x964f753f,0x532f532f,0x753f532f,0x532f753f,0x753f753f,0xb85f753f,0x061f0000,0x061f181f,0x061f000f,0x181f171f,0x181f171f,0x182f182f,0x051f182f,0x0000000f,0x041f0000,0x181f061f,0x172f172f,0x061f172f,0x171f041f,0x182f181f,0x071f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xdd9fdd9f,0xdd9fdd9f,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0xaabf99af,0xabdf9aaf,0xaabf9aaf,0xaabfaabf,0xaabf9aaf,0x99afaabf,0x9aaf9aaf,0x99af9abf,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xeedf0000,0x00009c6f,0xad7f0000,0x00008a5f,0x753f322f,0x422f953f,0x422f954f,0x321f964f,0x422f954f,0x422f954f,0x321f853f,0x322f753f,0x753f322f,0x954f953f,0x954f954f,0x111f753f,0x753f111f,0x954f954f,0x853f853f,0x322f753f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffffff,0xeeefeeef,0xdddfdddf,0xeeefdddf,0xffffeeef,0xdddfeeef,0xffffffff,0xeeefeeef,0x0000157f,0x0000046f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x035f0000,0x157f0000,0xefffffff,0xefffefff,0xefffffff,0xffffefff,0xefffefff,0xffffefff,0xefffefff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x532fb85f,0x753f753f,0x753f888f,0xb85f753f,0x753fb85f,0xb85fb85f,0x964f753f,0x964f753f,0x020f0000,0x192f071f,0x182f181f,0x181f182f,0x000f061f,0x181f171f,0x181f181f,0x0000061f,0x000f000f,0x071f171f,0x171f181f,0x061f172f,0x171f041f,0x171f182f,0x051f182f,0x000f000f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0x0000061f, +0xaabf99af,0x9abf99af,0xaabf99af,0x9aaf9aaf,0x9aaf9aaf,0xabcfaabf,0xaabfaabf,0x9abfaabf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xad7f0000,0x9e3f8a5f,0x854f322f,0x954f532f,0x964f532f,0x853f532f,0x853f532f,0x964f532f,0x964f532f,0x322f854f,0x854f322f,0x954f964f,0x964f964f,0x111f753f,0x753f111f,0x964f953f,0x964f964f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xffffffff,0xeeefeeef,0xffffffff,0xdddfcccf,0xffffeeef,0xeeefeeef,0xffffffff,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x258f0000,0x147f0000,0xffffffff,0xefffefff,0xefffefff,0xefffefff,0xffffffff,0xefffefff,0xefffffff,0xefffefff,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753fb85f,0xb85fb85f,0x964f964f,0x753f753f,0x532f964f,0x964f964f,0x753f753f,0x964f964f,0x000f0000,0x181f051f,0x192f061f,0x181f182f,0x061f182f,0x182f181f,0x181f061f,0x0000020f,0x041f0000,0x171f182f,0x171f181f,0x061f182f,0x051f000f,0x071f182f,0x061f182f,0x0000031f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fddaf,0xdd9fdd9f,0xdd9fdd9f,0x0000061f, +0x9aaf9abf,0x9aafaabf,0x9aaf9abf,0xabbfaabf,0x99afaabf,0x9aaf9aaf,0xaabfaabf,0xaabf9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x7c2f8a5f,0x853f322f,0x954f421f,0x954f421f,0x953f421f,0x953f421f,0x954f421f,0x954f421f,0x322f853f,0x853f322f,0x954f954f,0x954f954f,0x111f753f,0x753f111f,0x954f954f,0x954f954f,0x322f853f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xeeefeeef,0xdddfcccf,0xeeefffff,0xdddfcccf,0xdddfdddf,0xcccfdddf,0xdddfdddf,0xcccfcccf,0x0000258f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x157f0000,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xffffffff,0xefffffff,0xffffffff,0xefffefff,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753f964f,0x964f753f,0x964f753f,0x532f753f,0x964f753f,0x753f964f,0x753f753f,0x753f532f,0x061f0000,0x061f182f,0x061f000f,0x061f171f,0x181f181f,0x061f181f,0x061f000f,0x0000000f,0x041f0000,0x071f182f,0x071f181f,0x061f181f,0x061f020f,0x171f182f,0x071f181f,0x0000061f,0x061f0000,0xddafdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fddaf,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0xaabfaabf,0xaabfaabf,0x9aafaabf,0xaabfaabf,0xabcfaabf,0xaabf99af,0x9abf9aaf,0x9abf9aaf,0xeedf9e3f,0x00009c6f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x854f322f,0x532f964f,0x532f964f,0x532f853f,0x532f964f,0x532f954f,0x532f964f,0x322f854f,0x854f322f,0x964f964f,0x953f964f,0x111f753f,0x753f111f,0x954f954f,0x964f964f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xeeefdddf,0xbbbfbbbf,0xeeefdddf,0xeeefcccf,0xffffffff,0xeeefdddf,0xffffffff,0x0000157f,0x0000157f,0x258f0000,0x00000000,0x00000000,0x0000147f,0x147f0000,0x157f0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xefffffff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af9fff9,0x7af97af9,0x7af97af9,0x7af97af9, +0x964f964f,0x753f532f,0x532f753f,0x753f532f,0x753f753f,0x753f753f,0xb85fb85f,0x964f753f,0x061f0000,0x181f182f,0x182f061f,0x000f061f,0x181f061f,0x182f181f,0x181f061f,0x0000061f,0x041f0000,0x171f182f,0x182f172f,0x000f051f,0x071f041f,0x071f182f,0x071f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xddafdd9f,0xdd9fdd9f,0x0000061f, +0x899f99af,0x9aafaabf,0xaabf9aaf,0x9aafaabf,0xaabf9abf,0xaabfaabf,0xaabf9abf,0xaabf99af,0x8a5f7c2f,0x0000684f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xeedf0000,0x00009c6f,0x753f322f,0x321f853f,0x432f853f,0x422f954f,0x321f853f,0x421f853f,0x321f964f,0x322f753f,0x753f322f,0x853f853f,0x964f853f,0x111f753f,0x753f111f,0x953f853f,0x853f964f,0x322f753f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffffff,0xeeefeeef,0xffffffff,0xeeefeeef,0xeeefffff,0xeeefdddf,0xdddfeeef,0xdddfcccf,0x157f023f,0x157f134f,0x234f157f,0x157f046f,0x157f269f,0x157f245f,0x245f147f,0x134f268f,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xffffefff,0xefffffff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9, +0x964f964f,0xb85f753f,0x753fb85f,0x964fb85f,0xb85f532f,0x753fb85f,0x964f964f,0x753f888f,0x000f0000,0x181f051f,0x181f182f,0x182f181f,0x061f181f,0x061f171f,0x181f182f,0x0000061f,0x041f000f,0x071f182f,0x182f181f,0x031f061f,0x171f041f,0x071f182f,0x051f182f,0x000f000f,0x061f0000,0xdd9fdd9f,0xdd9fddaf,0xdd9fdd9f,0xdd9fdd9f,0xddafdd9f,0xdd9fddaf,0x0000061f, +0xaabfaabf,0xaabf889f,0xaabf99af,0x9abf9aaf,0xaabfaabf,0x9aafaabf,0x9aaf9abf,0x9abf9aaf,0xad7f0000,0x00008a5f,0xeedf7c2f,0x00009c6f,0xad7f9e3f,0x00008a5f,0x8a5f0000,0x0000684f,0x854f322f,0x954f532f,0x964f532f,0x853f532f,0x853f532f,0x954f532f,0x954f532f,0x322f854f,0x854f322f,0x954f954f,0x964f964f,0x111f753f,0x753f111f,0x954f954f,0x954f954f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccfcccf,0xeeefeeef,0xdddfdddf,0xeeefeeef,0xcccfcccf,0xeeefdddf,0xbbbfbbbf,0xeeefdddf,0x0000046f,0x0000258f,0x268f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x157f0000,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xefffefff,0xffffefff,0xefffefff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af9fff9,0x7af97af9, +0x753f964f,0x964f753f,0xb85f964f,0x964f753f,0x964f666f,0x753f964f,0x964f532f,0x532f753f,0x061f0000,0x181f182f,0x061f182f,0x182f181f,0x000f061f,0x000f061f,0x181f061f,0x0000000f,0x041f0000,0x071f182f,0x182f172f,0x061f071f,0x171f041f,0x171f182f,0x061f182f,0x0000031f,0x061f0000,0xdd9fdd9f,0xddafddaf,0xdd9fdd9f,0xddafddaf,0xddafddaf,0xdd9fdd9f,0x0000061f, +0xaabf99af,0x99afaabf,0x9aafaabf,0x9aafaabf,0xaabfaabf,0xabcf9aaf,0x9aaf9aaf,0x99af9aaf,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xad7f7c2f,0x00008a5f,0xad7f0000,0x00008a5f,0x853f322f,0x953f421f,0x954f421f,0x953f421f,0x953f421f,0x953f421f,0x954f421f,0x322f853f,0x853f322f,0x953f953f,0x954f954f,0x111f753f,0x753f111f,0x953f953f,0x954f954f,0x322f853f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdddfdddf,0xbbbfbbbf,0xffffffff,0xbbbfcccf,0xeeefdddf,0xeeefeeef,0xffffffff,0xcccfeeef,0x0000157f,0x0000157f,0x157f0000,0x00000000,0x00000000,0x0000157f,0x157f0000,0x157f0000,0xffffefff,0xefffefff,0xefffefff,0xffffefff,0xffffffff,0xefffefff,0xefffefff,0xefffefff,0x8bf97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0xfff97af9,0x7af97af9,0x7af97af9, +0x532f753f,0x753f964f,0x964f964f,0x753fb85f,0x753f753f,0x753f753f,0x753f753f,0xb85fb85f,0x061f0000,0x181f182f,0x000f061f,0x182f181f,0x061f182f,0x061f181f,0x182f182f,0x0000061f,0x000f000f,0x071f061f,0x182f172f,0x061f071f,0x051f000f,0x171f182f,0x071f171f,0x000f061f,0x061f0000,0xdd9fdd9f,0xddafdd9f,0xdd9fdd9f,0xdd9fdd9f,0xddafddaf,0xdd9fddaf,0x0000061f, +0xaabfaabf,0xaabf9aaf,0x9aafaabf,0x99afaabf,0xaabf99af,0x9aaf9aaf,0xaabfaabf,0x9aaf9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x854f322f,0x532f964f,0x532f964f,0x532f964f,0x532f853f,0x532f853f,0x532f954f,0x322f854f,0x854f322f,0x964f964f,0x853f964f,0x111f753f,0x753f111f,0x853f853f,0x953f954f,0x322f854f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xeeefeeef,0xffffffff,0xeeefffff,0xdddfeeef,0xdddfbbbf,0xffffeeef,0xdddfdddf,0xffffffff,0x147f245f,0x157f245f,0x245f157f,0x157f157f,0x258f157f,0x147f245f,0x134f157f,0x245f157f,0xefffefff,0xefffefff,0xefffefff,0xefffefff,0xefffffff,0xefffefff,0xffffffff,0xefffefff,0x7af98bf9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af98bf9,0x7af97af9,0x7af97af9, +0x964f753f,0x753f753f,0x753f532f,0x964f964f,0x532f753f,0x532fb85f,0xb85f753f,0x964f964f,0x061f0000,0x181f051f,0x061f182f,0x071f051f,0x051f182f,0x182f181f,0x051f051f,0x0000061f,0x020f0000,0x171f071f,0x182f181f,0x061f071f,0x061f020f,0x171f172f,0x182f182f,0x0000061f,0x061f0000,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0xdd9fdd9f,0x0000061f, +0xaabfabcf,0x899f99af,0x9aaf9aaf,0xaabf9aaf,0xaabfaabf,0xaabfaabf,0x9aafaabf,0x9abfaabf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xeedf0000,0x00009c6f,0xad7f7c2f,0x00008a5f,0x753f322f,0x432f953f,0x432f964f,0x321f964f,0x422f964f,0x321f954f,0x321f853f,0x322f753f,0x753f322f,0x964f953f,0x964f964f,0x753f964f,0x954f753f,0x853f954f,0x853f853f,0x322f753f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xffffffff,0xdddfdddf,0xeeefffff,0xeeefeeef,0xeeefffff,0xdddfdddf,0xeeefeeef,0xcccfdddf,0x0000046f,0x0000258f,0x157f0000,0x00000000,0x00000000,0x0000258f,0x147f0000,0x157f0000,0xefffffff,0xefffffff,0xefffefff,0xffffefff,0xffffffff,0xffffffff,0xefffffff,0xefffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753f964f,0xb85f532f,0x532f753f,0x532f753f,0x753f753f,0x532f753f,0x753f753f,0x964f964f,0x061f0000,0x020f000f,0x061f061f,0x061f000f,0x000f020f,0x061f061f,0x020f000f,0x0000061f,0x041f0000,0x182f172f,0x182f071f,0x000f051f,0x172f041f,0x171f182f,0x171f182f,0x0000061f,0x061f0000,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x061f061f,0x0000061f, +0x9abfaabf,0x9aaf9aaf,0x9abfaabf,0xaabfaabf,0xaabf899f,0x9aaf99af,0x99afaabf,0xaabf9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x8a5f0000,0x0000684f,0xad7f0000,0x00008a5f,0x754f322f,0x753f753f,0x854f753f,0x753f854f,0x854f854f,0x854f753f,0x854f854f,0x322f754f,0x754f322f,0x753f753f,0x854f753f,0x753f854f,0x854f854f,0x854f753f,0x854f854f,0x322f754f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccfcccf,0xeeefffff,0xdddfcccf,0xffffffff,0xdddfdddf,0xffffeeef,0xcccfcccf,0xffffeeef,0x157f245f,0x157f245f,0x245f157f,0x157f157f,0x157f258f,0x157f124f,0x356f157f,0x245f157f,0xffffffff,0xefffffff,0xefffefff,0xefffefff,0xefffefff,0xffffefff,0xefffefff,0xffffefff,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9,0x7af97af9, +0x753f964f,0x964fb85f,0x753f964f,0x964f888f,0x964f964f,0x753f753f,0x964f964f,0x532f753f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x041f0000,0x182f172f,0x181f171f,0x031f061f,0x181f041f,0x071f172f,0x171f181f,0x0000061f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xaabf9aaf,0x99af9aaf,0xaabfabcf,0xaabf99af,0xaabf9abf,0x9aaf9aaf,0x9abf9aaf,0x99af9aaf,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0xad7f0000,0x00008a5f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f222f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f,0x322f322f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa84fb95f,0xa84fa84f,0xb95fa84f,0xa94fb95f,0xb95fa84f,0xb95fb95f,0xb95fb95f,0x863fb95f,0xaaafaaaf,0xaaafaaaf,0xbbbfbbbf,0xbbbfcccf,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0x00000000,0x542f873f,0x00000000,0x00000000,0x00000000,0x00000000,0x652fa85f,0x00000000, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x420f741f,0x631f731f,0x420f420f,0x631f631f,0x310f420f,0x420f631f,0x631f531f,0x731f420f,0x632f964f,0x964f964f,0x632f632f,0x964f964f,0x421f632f,0x632f964f,0x964f753f,0x964f632f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000661f,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x752f863f,0x863f863f,0x863f863f,0x863f863f,0x863f863f,0x863f863f,0x641f963f,0xcccfbbbf,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafcccf,0xa84f0000,0x431fa84f,0x873f873f,0xa84fa84f,0xa85fa85f,0xa84fa85f,0x642f873f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f420f,0x521f531f,0x420f520f,0x631f310f,0x310f420f,0x420f520f,0x420f420f,0x731f310f,0x421f632f,0x753f753f,0x632f753f,0x964f421f,0x421f632f,0x632f753f,0x632f632f,0x964f421f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005b0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x280f9b0f,0x00000000,0x00000000,0x00000000,0x00000000,0x761f0000,0x00000000,0x00000000,0x110f871f,0x00000000,0x00000000,0x0000761f,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x752f752f,0x752f752f,0x863f852f,0x852f852f,0x852f852f,0x963f642f,0x641f963f,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xcccfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xcccfbbbf,0xaaafbbbf,0x642f0000,0x542f873f,0x642f642f,0x642f642f,0x642f642f,0x542f542f,0x652f642f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f731f,0x631f631f,0x420f520f,0x420f210f,0x210f420f,0x420f631f,0x420f420f,0x531f420f,0x421f964f,0x964f964f,0x632f753f,0x753f421f,0x421f753f,0x632f964f,0x632f632f,0x753f632f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x160f5b0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x360f890f,0x00000000,0x00000000,0x00000000,0x00000000,0x761f0000,0x0000220f,0x00000000,0x871f0000,0x00000000,0x00000000,0x220f871f,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x752f973f,0x0000642f,0x00000000,0x973f0000,0x0000642f,0x00000000,0x963f0000,0x531f752f,0xbbbfbbbf,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafbbbf,0x00000000,0x431f542f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f542f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x333f631f,0x320f520f,0x531f320f,0x210f420f,0x420f420f,0x420f420f,0x631f310f,0x632f753f,0x555f964f,0x632f753f,0x964f632f,0x421f753f,0x753f753f,0x632f632f,0x964f421f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x160f5c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x591f0000,0x00000000,0x00000000,0x5a0f0000,0x00000000,0x00000000,0x00006b0f,0x00000000,0x00000000,0x0000970f,0x761f0000,0x9a0f0000,0x0000330f,0x970f0000,0x330f0000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x752f333f,0x0000752f,0x00000000,0xa84f0000,0x0000852f,0x00000000,0xa84f0000,0x742f863f,0xbbbf444f,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafcccf,0x00000000,0x542f873f,0x00000000,0x00000000,0x00000000,0x00000000,0x642fa84f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x520f520f,0x320f320f,0x420f531f,0x210f420f,0x222f531f,0x420f420f,0x631f310f,0x632f753f,0x753f753f,0x632f632f,0x753f964f,0x421f753f,0x555f964f,0x632f753f,0x964f421f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x180f0a0f,0x00000000,0x00000000,0x00000000,0x00000000,0x5a0f0000,0x00000000,0x00000000,0x481f0000,0x00000000,0x00000000,0x00005c0f,0x00000000,0x6b0f0000,0x0000150f,0x6c0f0000,0x9c0f0000,0x0000160f,0x00000000,0x160f5a0f,0x00000000,0x00000000,0x440f9b0f,0x970f0000,0x9a0f220f,0x761f350f,0x9a0f0000,0x00000000,0x0000761f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863f666f,0x0000642f,0x00000000,0xa84f0000,0x0000852f,0x00000000,0xa84f0000,0x641f863f,0xcccf888f,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafcccf,0xa84f0000,0x642f642f,0xa85fa85f,0x873fa85f,0x873f873f,0xa85f642f,0x542f873f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f420f,0x420f631f,0x320f320f,0x521f210f,0x310f310f,0x210f521f,0x420f420f,0x631f631f,0x632f632f,0x632f964f,0x632f632f,0x964f421f,0x632f632f,0x421f964f,0x632f753f,0x964f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000090f,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x060f0c0f,0x00000000,0x00000000,0x00000000,0x00000000,0x5c0f0000,0x0000160f,0x591f0000,0x5a0f0000,0x0000030f,0x00000000,0x170f5c0f,0x00000000,0x00000000,0x00005a0f,0x6b0f0000,0x9b0f270f,0x0000481f,0x591f0000,0x160f0000,0x00000000,0x0000551f,0x460f9a0f,0x0000871f,0x890f440f,0x871f350f,0xab0f220f,0x00000000,0x110f871f, +0x00000000,0x00000000,0x00000000,0xfd0f0000,0x0000f80f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x963f963f,0xa84fa84f,0xa84fa84f,0x863f863f,0x973fa84f,0xa84fa84f,0x742f963f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafcccf,0x642f0000,0x642fa85f,0x542f542f,0x642f542f,0x642f642f,0x542f542f,0x652fa85f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x520f631f,0x420f631f,0x210f320f,0x420f210f,0x210f310f,0x420f521f,0x420f420f,0x520f631f,0x753f964f,0x753f964f,0x421f632f,0x753f421f,0x421f632f,0x753f964f,0x632f753f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x040f0c0f,0x00000000,0x00000000,0x00000000,0x00000000, +0x0c0f0000,0x00000000,0x00000000,0x0a0f0000,0x00000000,0x00000000,0x00000d0f,0x00000000,0x00000000,0x00005b0f,0x5c0f0000,0x5a0f050f,0x0000160f,0x5a0f0000,0x00000000,0x00000000,0x00000000,0x160f8a0f,0x00006d0f,0x8a0f160f,0x6d0f370f,0x8a0f0000,0x00000000,0x00000000,0x000f871f,0x350fab0f,0x330f9a0f,0x780f0000,0x9a0f240f,0x780f330f,0x761f0000,0x330f0000, +0x00000000,0x00000000,0x00000000,0xff9f0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x752f973f,0x642f642f,0x642f642f,0x752f642f,0x642f642f,0x642f642f,0x752f642f,0x531f752f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x431f542f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f542f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f631f,0x420f520f,0x210f320f,0x520f210f,0x210f310f,0x420f420f,0x320f320f,0x520f631f,0x421f964f,0x753f753f,0x421f632f,0x964f421f,0x421f632f,0x753f753f,0x632f632f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x191f0b0f,0x00000000,0x00000000,0x00000000,0x00000000, +0x0c0f0000,0x0000180f,0x0a0f0000,0x491f0000,0x0000060f,0x00000000,0x291f0c0f,0x00000000,0x00000000,0x170f5a0f,0x00006c0f,0x5b0f280f,0x5b0f050f,0x5a0f0000,0x00000000,0x00000000,0x00000000,0x350f9c0f,0x291f8a0f,0x9b0f0000,0x9b0f350f,0x8a0f291f,0x00000000,0x00006b0f,0x440f9a0f,0x470fab0f,0x350fab0f,0x890f0000,0x9a0f130f,0xab0f360f,0x9a0f0000,0x0000220f, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x0000852f,0x00000000,0xa84f0000,0x0000852f,0x00000000,0xa84f0000,0x641f963f,0xcccfcccf,0x0000cccf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafbbbf,0x00000000,0x652fa85f,0x00000000,0x00000000,0x00000000,0x00000000,0x652fa85f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f531f,0x420f520f,0x310f320f,0x520f210f,0x210f310f,0x310f521f,0x210f320f,0x420f520f,0x421f753f,0x753f753f,0x632f632f,0x964f421f,0x421f632f,0x632f964f,0x421f632f,0x632f753f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0000081f,0x00000000,0x00000000,0x00000000,0x00000000,0x0b0f0000,0x00000000,0x00000000,0x0c0f0000,0x00000000,0x00000000,0x00000b0f,0x00000000, +0x00000000,0x00000b0f,0x0b0f0000,0x5c0f060f,0x0000040f,0x0a0f0000,0x180f0000,0x00000000,0x00000000,0x160f5c0f,0x280f5c0f,0x790f0000,0x591f170f,0x5c0f160f,0x00000000,0x00005b0f,0x00006b0f,0x470f9b0f,0x250f890f,0x8a0f0000,0x8a0f360f,0x9a0f370f,0x481f0000,0x170f0000,0x350fab0f,0x470f9a0f,0x470f890f,0x9a0f0000,0x9a0f240f,0x780f350f,0x780f0000,0x0000360f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x863fa84f,0x0000752f,0x00000000,0xa84f0000,0x0000752f,0x00000000,0xa84f0000,0x641f863f,0xcccfcccf,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafcccf,0xa84f0000,0x542f873f,0xa85fa85f,0x873f873f,0x873f873f,0xa84fa84f,0x542fa85f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f531f,0x420f631f,0x420f320f,0x521f310f,0x310f420f,0x320f521f,0x210f320f,0x520f631f,0x421f753f,0x632f964f,0x753f632f,0x964f632f,0x632f753f,0x632f964f,0x421f632f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x030f091f,0x00000000,0x00000000,0x00000000,0x00000000,0x0a0f0000,0x0000060f,0x0c0f0000,0x4b0f0000,0x0000180f,0x00000000,0x170f0c0f,0x00000000, +0x00000000,0x170f5c0f,0x00000a0f,0x5b0f170f,0x0a0f170f,0x5b0f0000,0x00000000,0x00000000,0x00005b0f,0x170f5b0f,0x170f5c0f,0x9c0f0000,0x5a0f140f,0x5c0f050f,0x5a0f0000,0x160f0000,0x170f9b0f,0x370f780f,0x250f8a0f,0x890f0000,0x8a0f350f,0x8a0f250f,0x9a0f0000,0x0000030f,0x470f890f,0x360f890f,0x240f9b0f,0x890f0000,0x780f360f,0x780f360f,0x780f0000,0x0000130f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x863fb95f,0x0000852f,0x00000000,0xa84f0000,0x0000752f,0x00000000,0xa84f0000,0x641f863f,0xcccfcccf,0x0000bbbf,0x00000000,0xcccf0000,0x0000bbbf,0x00000000,0xcccf0000,0xaaafbbbf,0x642f0000,0x642fa84f,0x542f542f,0x642f542f,0x642f642f,0x642f642f,0x642fa84f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x631f631f,0x320f420f,0x420f210f,0x310f420f,0x531f210f,0x631f320f,0x420f333f,0x632f753f,0x964f964f,0x632f753f,0x753f421f,0x632f753f,0x964f421f,0x964f632f,0x632f666f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000b1f,0x00000000,0x00000000,0x00000000,0x00000000,0x0d0f0000,0x00000000,0x00000000,0x0b1f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000b0f,0x090f0000,0x4b0f180f,0x0000060f,0x0a0f0000,0x180f0000,0x00000000, +0x00000000,0x170f5b0f,0x160f4a0f,0x790f0000,0x5b0f160f,0x5b0f160f,0x00000000,0x00000e0f,0x170f5a0f,0x170f790f,0x280f8b0f,0x8b0f0000,0x9c0f470f,0x5b0f150f,0x5b0f0000,0x0000150f,0x360f8a0f,0x130f890f,0x350f890f,0x890f0000,0x780f240f,0x8a0f250f,0x8a0f0000,0x0000360f,0x240f9a0f,0x240f780f,0x460fab0f,0x890f0000,0x780f240f,0x890f130f,0x9a0f0000,0x0000120f, +0x00000000,0x00000000,0x00000000,0x975f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x752f973f,0x973f752f,0x963f963f,0x973f963f,0x973f752f,0x973f973f,0x963f963f,0x531f752f,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xbbbfbbbf,0x999fbbbf,0x00000000,0x431f642f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f542f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f531f,0x631f420f,0x320f520f,0x420f320f,0x420f222f,0x631f210f,0x631f420f,0x310f420f,0x632f753f,0x964f632f,0x632f753f,0x753f632f,0x753f555f,0x964f421f,0x964f632f,0x421f632f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x070f0a1f,0x00000000,0x00000000,0x00000000,0x00000000,0x0c1f0000,0x0000191f,0x00000000,0x4b0f0000,0x0000070f,0x00000000,0x00000b1f,0x00000000,0x00000000,0x170f491f,0x00000c0f,0x4b0f050f,0x080f170f,0x4b0f0000,0x00000000,0x00000000, +0x0000090f,0x170f5b0f,0x060f481f,0x690f0000,0x491f140f,0x491f170f,0x080f0000,0x2a1f0000,0x160f5b0f,0x240f8a0f,0x370f560f,0x790f0000,0x790f360f,0x790f470f,0x790f0000,0x0000160f,0x250f9a0f,0x250f890f,0x240f780f,0x780f0000,0x780f240f,0x780f130f,0x8a0f0000,0x0000350f,0x350f890f,0x130f780f,0x470f890f,0x671f0000,0x780f240f,0x671f130f,0x890f0000,0x0000350f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x963fb95f,0xa84f963f,0xa84fa84f,0xa84fa84f,0xa84f863f,0xa84fa84f,0x973fa84f,0x742f963f,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xaaafbbbf,0x00000000,0x652fa85f,0x00000000,0x00000000,0x00000000,0x00000000,0x431fa84f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x310f420f,0x631f420f,0x420f520f,0x631f210f,0x420f320f,0x520f420f,0x631f420f,0x631f631f,0x421f632f,0x964f632f,0x632f753f,0x964f421f,0x632f632f,0x753f632f,0x964f632f,0x964f964f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0e1f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000d0f,0x0c0f0000,0x4a0f0000,0x0000060f,0x0a1f0000,0x070f0000,0x00000000,0x00000000,0x050f4c0f,0x191f4a0f,0x7c0f0000,0x4a0f060f,0x4a0f030f,0x00000000,0x00000b0f, +0x040f5c0f,0x170f8a0f,0x030f790f,0x680f0000,0x790f140f,0x491f040f,0x491f0000,0x0000040f,0x160f790f,0x360f790f,0x010f790f,0x670f0000,0x670f140f,0x790f140f,0x8a0f0000,0x0000250f,0x360f790f,0x240f780f,0x130f890f,0x671f0000,0x671f130f,0x671f130f,0x671f0000,0x0000360f,0x240f780f,0x130f670f,0x240f671f,0x671f0000,0x671f020f,0x670f130f,0x671f0000,0x0000240f, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000331f,0x00000000,0x00000000,0x00000000,0x863fa94f,0x852f642f,0x852f852f,0x863f852f,0x852f852f,0x752f852f,0x863f752f,0x742f863f,0xcccfcccf,0xbbbfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0xa84f0000,0x652f642f,0xa85f873f,0x873fa85f,0xa85fa85f,0xa84f873f,0x542f873f,0x0000a84f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x531f420f,0x521f420f,0x420f421f,0x631f420f,0x420f631f,0x520f310f,0x310f420f,0x531f531f,0x753f632f,0x753f632f,0x632f542f,0x964f632f,0x632f964f,0x753f421f,0x421f632f,0x753f753f, +0x00000000,0x00000000,0x00000000,0x00000b1f,0x00000000,0x00000000,0x00000000,0x00000000,0x0b1f0000,0x00000000,0x00000000,0x3b0f0000,0x00001a1f,0x00000000,0x00000c1f,0x00000000,0x00000000,0x1a1f381f,0x00000a1f,0x391f181f,0x091f060f,0x391f0000,0x00000000,0x00000000,0x00000b0f,0x170f4b0f,0x050f391f,0x7a0f0000,0x491f370f,0x4c0f050f,0x090f0000,0x070f0000, +0x170f491f,0x260f790f,0x250f680f,0x570f0000,0x790f030f,0x680f240f,0x571f0000,0x0000040f,0x140f680f,0x140f680f,0x240f671f,0x670f0000,0x571f020f,0x790f020f,0x670f0000,0x0000360f,0x140f780f,0x130f670f,0x240f671f,0x671f0000,0x440f020f,0x671f020f,0x671f0000,0x0000020f,0x020f671f,0x020f780f,0x020f670f,0x660f0000,0x661f020f,0x561f020f,0x560f0000,0x0000020f, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f752f,0x963f863f,0xa84f963f,0x963f852f,0x444f863f,0x111f222f,0x742f742f,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xcccfbbbf,0xbbbfbbbf,0xaaafbbbf,0x999faaaf,0x642f0000,0x542f873f,0x542f542f,0x542f652f,0x642f642f,0x542f642f,0x652fa85f,0x0000642f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x420f631f,0x631f310f,0x420f631f,0x420f310f,0x420f631f,0x520f310f,0x310f420f,0x531f731f,0x632f753f,0x964f421f,0x632f964f,0x632f421f,0x632f964f,0x753f421f,0x421f632f,0x753f964f, +0x00000000,0x00000000,0x00000000,0x0a1f0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000d1f,0x00000000,0x3b0f0000,0x0000070f,0x0e1f0000,0x181f0000,0x00000000,0x00000000,0x030f4a1f,0x050f381f,0x580f0000,0x391f050f,0x381f040f,0x00000000,0x00000000,0x170f4b0f,0x060f690f,0x040f690f,0x680f0000,0x7a0f260f,0x4a0f040f,0x381f0000,0x0000040f, +0x040f680f,0x240f670f,0x130f680f,0x561f0000,0x680f020f,0x670f140f,0x680f0000,0x0000020f,0x030f570f,0x030f460f,0x020f450f,0x560f0000,0x560f020f,0x680f020f,0x571f0000,0x0000020f,0x130f561f,0x010f560f,0x020f671f,0x450f0000,0x560f020f,0x560f000f,0x671f0000,0x0000020f,0x020f670f,0x130f560f,0x010f671f,0x560f0000,0x560f010f,0x560f010f,0x660f0000,0x0000000f, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x752f333f,0x752f642f,0x752f752f,0x963f752f,0x752f642f,0x111f752f,0x963f531f,0x531f531f,0xbbbf444f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfaaaf,0xbbbfbbbf,0x999faaaf,0x00000000,0x432f642f,0x00000000,0x00000000,0x00000000,0x00000000,0x431f431f,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x631f631f,0x731f310f,0x531f531f,0x631f420f,0x420f531f,0x631f420f,0x420f531f,0x310f731f,0x753f753f,0x964f421f,0x753f753f,0x964f632f,0x632f753f,0x964f632f,0x632f753f,0x421f964f, +0x00000000,0x00000b1f,0x00000000,0x0e1f0000,0x0000060f,0x0c1f0000,0x00000000,0x00000000,0x00000000,0x191f3c0f,0x0000091f,0x3a0f0000,0x0b1f060f,0x391f0000,0x00000000,0x00000000,0x0000091f,0x050f690f,0x030f580f,0x6a0f0000,0x571f030f,0x680f050f,0x081f0000,0x00000000,0x060f381f,0x140f690f,0x140f690f,0x690f0000,0x580f130f,0x571f250f,0x580f0000,0x0000030f, +0x020f670f,0x020f571f,0x130f680f,0x680f0000,0x561f010f,0x561f030f,0x571f0000,0x0000030f,0x020f560f,0x000f560f,0x000f450f,0x450f0000,0x450f000f,0x561f000f,0x680f0000,0x0000010f,0x010f560f,0x010f671f,0x010f671f,0x671f0000,0x450f000f,0x671f010f,0x560f0000,0x0000020f,0x020f550f,0x000f670f,0x010f550f,0x550f0000,0x440f000f,0x661f000f,0x450f0000,0x0000010f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863f666f,0x863f752f,0x963f863f,0xa84f963f,0x963f752f,0x963f963f,0xa84f963f,0x641f963f,0xcccf888f,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0xa50fa50f,0xd71fd71f,0xd71fa50f,0xa50fd71f,0xd71fa50f,0xd71fd71f,0xd71fa50f,0xa50fa50f,0xa55fc77f,0x955fa55f,0x733fc86f,0x422f522f,0x800f422f,0xa55fc77f,0x422f733f,0x844fa55f, +0x643f543f,0x432f321f,0x422f321f,0x321f321f,0x432f432f,0x654f432f,0x321f432f,0x543f321f,0x752ffb5f,0x764f752f,0x764f764f,0x752ffb5f,0x764f764f,0xfb5f764f,0xc84ffb5f,0x764f752f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x973f863f,0xa84fa84f,0xa84fa84f,0xa84f863f,0xa84fa84f,0xa84fa84f,0x641f963f,0xcccfdddf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xea4fa50f,0xea4fa50f,0xd71fe91f,0xd71fa50f,0xa50fe91f,0xe91fe91f,0xd71fe91f,0xa50fa50f,0xa55fc77f,0x844f400f,0x422f100f,0x800fc77f,0x500f422f,0x500f955f,0x622f600f,0xa66f633f, +0x543f432f,0x643f654f,0x643f654f,0x533f765f,0x321f321f,0x644f644f,0x321f321f,0x433f543f,0xffff752f,0x431fc84f,0xfb5f764f,0xffffc84f,0x764f431f,0x752ffb5f,0xfffffd9f,0x431fc84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f863f,0x863f863f,0x863f863f,0x963f963f,0x863f963f,0x963f752f,0x641f963f,0xcccfdddf,0xcccfcccf,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xea4fd71f,0xa50fea4f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fe91f,0xa50fea4f,0xd71fd71f,0x733f533f,0x211f844f,0x800f422f,0x500fc77f,0x100f200f,0x500f744f,0x533f211f,0x855f300f, +0x432f654f,0x321f644f,0x643f321f,0x543f321f,0x321f543f,0x321f865f,0x422f432f,0x422f543f,0x752f752f,0x764f431f,0x764f752f,0x752f431f,0x764f431f,0x431f764f,0xc84fc84f,0x764f431f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x752f973f,0x642f642f,0x642f642f,0x752f642f,0x642f642f,0x642f642f,0x752f642f,0x531f752f,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fd71f,0xe91fe91f,0xe91fa50f,0xe91fa50f,0xa50fe91f,0xd71fe91f,0xd71fa50f,0xd71fe91f,0x422f744f,0x533f100f,0x633fa55f,0xa75fa55f,0x422f311f,0x311f211f,0xb66f422f,0x533f800f, +0x321f432f,0x321f765f,0x644f765f,0x543f321f,0x321f432f,0x432f432f,0x432f432f,0x976f432f,0x431f764f,0xfb5f764f,0x752f752f,0x431f764f,0xfb5f764f,0x764f752f,0x431f431f,0x431f764f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863fb95f,0x863f752f,0x963f863f,0xa84f963f,0x863f852f,0x752f863f,0xa84f863f,0x742f863f,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd71fa50f,0xe91fe91f,0xd71fd71f,0xe91fa50f,0xe91fd71f,0xa50fe91f,0xea4fe91f,0xa50fd71f,0xc77fea8f,0x533f853f,0x855fc77f,0x200f855f,0x955f533f,0xa66f944f,0xa65f422f,0x533f700f, +0x432f533f,0x755f654f,0x321f321f,0x865f432f,0x654f432f,0x765f543f,0x432f865f,0x543f533f,0x764f764f,0xc84ffb5f,0xc84ffd9f,0x764f431f,0xc84ffb5f,0x431f752f,0x764f764f,0x431ffb5f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x863fa84f,0x863f642f,0x863f863f,0xa84f963f,0x863f852f,0x863f863f,0xa84f863f,0x641f863f,0xcccfcccf,0xcccfbbbf,0xcccfcccf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0xf00f0000,0x0000f00f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fa50f,0xa50fa50f,0xa50fe91f,0x320f320f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xa50fa50f,0x855f400f,0x533f733f,0x600f633f,0x311f844f,0xd88fb66f,0x955f844f,0x533f954f,0x211f100f, +0x321f432f,0x644f321f,0x533f321f,0x654f321f,0x432f321f,0x321f543f,0x754f654f,0x422f876f,0x752f764f,0xfd9f752f,0xfd9fffff,0x764f431f,0xffffc84f,0x431f431f,0xfb5f764f,0x431fc84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x777f0000,0x0000777f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f852f,0x963f963f,0xa84f963f,0x863f752f,0x963f752f,0xa84f963f,0x742f963f,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfaaaf,0xbbbfbbbf,0xaaafbbbf,0x00000000,0x00000000,0x00000000,0xfd0ff00f,0xf00ff80f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fd71f,0xe91fe91f,0x320fa50f,0xb80fea0f,0xa50f320f,0xd71fe91f,0xe91fa50f,0xd71fd71f,0x844f500f,0x533f733f,0x100f522f,0x522f311f,0x600f633f,0x844fb66f,0x844f633f,0x300f500f, +0x654f321f,0x432f321f,0x654f865f,0x321f654f,0x321f432f,0x321f865f,0x654f644f,0x654f432f,0x431f764f,0xc84f431f,0xc84ffd9f,0x764f431f,0x431f752f,0x764f764f,0xc84f752f,0x431fffff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x888f0000,0x0000777f,0x00000000,0x00000000,0x00000000,0x752f973f,0x963f752f,0x963f963f,0x973f963f,0x973f752f,0x963f963f,0x963f963f,0x531f752f,0xaaafbbbf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafaaaf,0x888faaaf,0x00000000,0x00000000,0x00000000,0xff9ff00f,0xf00fffff,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd71fa50f,0xe91fd71f,0x320fe91f,0xea0fb80f,0x320fb80f,0xa50fa50f,0xe91fe91f,0xd71fea4f,0x844f733f,0x522f211f,0xc77f955f,0x422f422f,0x200f633f,0x955f311f,0x311f500f,0x911f400f, +0x644f654f,0x432f654f,0x432f432f,0x432f321f,0x654f543f,0x543f644f,0x644f644f,0x754f321f,0x764f764f,0x431f764f,0x752f752f,0x764f431f,0x764f431f,0x752ffb5f,0x752f764f,0x431ffd9f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x963f963f,0x752f963f,0x963f863f,0x863f963f,0x863f863f,0x963f963f,0x641f963f,0xaaafaaaf,0xaaafaaaf,0x999faaaf,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0xf00f0000,0x0000a00f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fd71f,0xa50fa50f,0xa50fa50f,0xb80f320f,0xa50fea0f,0xd71fe91f,0xa50fa50f,0xa50fa50f,0x100f733f,0x800f533f,0xa75f800f,0xa55f964f,0x733fb66f,0x422f522f,0x000f211f,0xda7fd88f, +0x987f654f,0x432f754f,0x654f543f,0x321f432f,0x432f432f,0x321f644f,0x321f321f,0x644f643f,0xc84ffb5f,0x764f752f,0x752f431f,0x764f431f,0xfb5f764f,0x752fc84f,0x764f431f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000432f,0x00000000,0x00000000,0x00000000,0x863fa84f,0x752f752f,0x852f752f,0x863f852f,0x752f752f,0x642f752f,0x863f852f,0x641f863f,0x999faaaf,0x999f999f,0x999f999f,0x999f999f,0x888f999f,0x888f888f,0x999f999f,0x888f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xea4fd71f,0xe91fe91f,0xe91fe91f,0x320fa50f,0xa50fa50f,0xa50fe91f,0xd71fe91f,0xd71fd71f,0x422f744f,0x800fc77f,0x311f600f,0x400fa55f,0x844fea8f,0x533fb86f,0xd77f522f,0x500f500f, +0x543f422f,0x643f532f,0x865f765f,0x321f765f,0x765f543f,0x321f432f,0x321f321f,0x654f422f,0xfffffb5f,0x431ffd9f,0x431f764f,0xfb5f764f,0xc84f752f,0xc84fffff,0x764f431f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x863f333f,0x863f852f,0x963f963f,0xa84f863f,0x863f752f,0x863f863f,0xa84f863f,0x641f863f,0x999f444f,0x999f999f,0x999f999f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fa50f,0xa50fd71f,0xa50fa50f,0xa50fea4f,0xa50fe91f,0xd71fea4f,0xe91fa50f,0xd71fea4f,0x700f422f,0x844fa65f,0x100f733f,0x600fa55f,0x733f844f,0x100f744f,0x422f633f,0x733f700f, +0x432f432f,0x754f654f,0x321f321f,0x432f754f,0x654f432f,0x543f654f,0x321f644f,0x654f321f,0x752f752f,0x764f431f,0x764f764f,0x764f764f,0x752f431f,0x752fc84f,0x764f431f,0x764f431f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x752f666f,0x752f642f,0x752f752f,0x973f752f,0x752f642f,0x752f752f,0x963f752f,0x531f752f,0x999f888f,0x999f888f,0x888f999f,0x999f888f,0x999f888f,0x888f888f,0x999f888f,0x777f888f,0x00000000,0x00000000,0x00000000,0x975f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fa50f,0xe91fd71f,0xa50fe91f,0xa50fe91f,0xd71fe91f,0xe91fd71f,0xd71fa50f,0xa50fe91f,0x300f533f,0x844fa66f,0x100f633f,0x500f844f,0x733f955f,0x300f211f,0x422fb66f,0x311f300f, +0x644f543f,0x765f321f,0x321f644f,0x432f643f,0x321f644f,0x654f976f,0x654f643f,0x432f876f,0x431f764f,0x752f764f,0x764f431f,0xfb5ffb5f,0x431f764f,0x431f752f,0x752f764f,0x764f764f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x963f852f,0x863f963f,0xa84f963f,0x863f752f,0x863f863f,0x973f863f,0x742f963f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd71fd71f,0xe91fd71f,0xa50fe91f,0xa50fe91f,0xe91fea4f,0xe91fa50f,0xa50fe91f,0xd71fe91f,0xa55fc77f,0x311f211f,0x100f211f,0x500f633f,0x100f422f,0x700fc77f,0x733f844f,0x533f853f, +0x754f321f,0x754f321f,0x644f321f,0x432f643f,0x543f432f,0x654f432f,0x543f643f,0x533f432f,0x764f764f,0xc84ffb5f,0x764f431f,0x752f431f,0x764fffff,0x764f431f,0xc84ffb5f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x863fa94f,0xa84f752f,0xa84fa84f,0xa84fa84f,0xa84f963f,0xa84fa84f,0xa84fa84f,0x742f863f,0x999f999f,0x999f888f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000331f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fd71f,0xe91fea4f,0xd71fa50f,0xa50fd71f,0xe91fea4f,0xa50fd71f,0xe91fe91f,0xd71fa50f,0x844fc77f,0xc77f633f,0xa55f700f,0x100f533f,0x911f633f,0x500fb66f,0x500f955f,0x311f744f, +0x876f422f,0x321f643f,0x321f321f,0x422f754f,0x765f543f,0x432f865f,0x432f432f,0x432f432f,0xfb5f764f,0xffffc84f,0x431ffd9f,0x431f764f,0x431fc84f,0xfb5f764f,0xffffc84f,0x431fc84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x763f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x963fb95f,0x863f863f,0x963f863f,0x863f963f,0x963f963f,0x863f863f,0x963f963f,0x742f963f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x999f999f,0x777f999f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xe91fa50f,0xd71fe91f,0xe91fa50f,0xa50fd71f,0xe91fd71f,0xa50fe91f,0xe91fd71f,0xa50fe91f,0x955f633f,0xa66f200f,0x633f500f,0x300f500f,0x300f422f,0x600fa75f,0x844f955f,0x311f211f, +0x543f533f,0x321f865f,0x432f433f,0x321f876f,0x765f432f,0x543f543f,0x422f422f,0x765f432f,0x752f764f,0xc84f752f,0x752f752f,0x764f431f,0x431f431f,0x752f764f,0x752f752f,0x431f752f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x974f0000,0x0000653f,0x00000000,0x00000000,0x00000000,0x531f752f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f431f,0x531f531f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xa50fa50f,0xd71fa50f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0x633f633f,0x311f400f,0x100f511f,0x300f211f,0xa75fa55f,0x954f422f,0x311f311f,0x522f311f, +0x543f865f,0x754f654f,0x765f543f,0x321f432f,0x321f321f,0x433f543f,0x321f321f,0x876f865f,0x431f764f,0x431f431f,0x431f431f,0x764f764f,0x764f764f,0x431f764f,0x431f431f,0x431f431f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f100f,0x111f111f,0x111f111f,0x333f333f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f100f,0x531f320f,0x320f100f,0x100f431f,0x210f210f,0x321f210f,0x321f320f,0x531f210f,0xeedfbbbf,0xeeefeeef,0xbbbfeeef,0xdddfeeef,0xeeefeddf,0xffffffff,0xeeefffff,0xbbafeeef,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f, +0xa50fa50f,0xa50fd71f,0xfd2fe91f,0xa50fd71f,0xd71fa50f,0xa50fe91f,0xd71fd71f,0xa50fa50f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcccf0000,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0x0000cccf,0xcccf0000,0xdddfdddf,0xdddfdddf,0x720fdddf,0x610f610f,0xdddfdddf,0xdddfdddf,0x0000cccf, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x864f0000,0x0000873f,0x00000000,0x111f111f,0x222f222f,0x111f211f,0x111f111f,0x111f111f,0x111f111f,0x111f100f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f100f,0x000f321f,0x531f100f,0x210f100f,0x100f531f,0x531f210f,0x321f110f,0x431f110f,0xeeeffeef,0xdddfdddf,0xeeefdddf,0xeeefeeef,0xeedfeeef,0xeeefeeef,0xeeefeedf,0xeeeffedf,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xa50fe91f, +0xea4fa50f,0xe91fe91f,0xff3fff2f,0xd71ffd3f,0xfd3fa50f,0xe91fff3f,0xe91fd71f,0xa50fe91f,0xdddf0000,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0x0000dddf,0xcccf0000,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0x0000cccf,0x941f0000,0xeeef720f,0x720f720f,0x720f720f,0x720f720f,0x720f720f,0x720f720f,0x0000941f, +0xa52f0000,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x542f0000,0xaaafaaaf,0xaaafaaaf,0x211f211f,0x111f111f,0x211f211f,0x111f111f,0x211f111f,0x111f111f,0x222f211f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f100f,0x100f210f,0x531f210f,0x210f100f,0x100f531f,0x321f210f,0x321f110f,0x531f110f,0xefefdddf,0xeeefeeef,0xeddfeeef,0xdddfeeef,0xdddfdddf,0xbbbfeeef,0xeeefeeef,0xdddfdddf,0xd71fa50f,0xa50fe91f,0xe91fa50f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fe91f,0xa50fe91f,0xd71fa50f,0xa50fe91f,0x200f200f,0xe91fe91f,0xea4fa50f,0xa50f200f,0xe91fe91f,0xa50fe91f, +0xd71fa50f,0xeb1fe91f,0x400f400f,0xfd3fff3f,0xff9fe91f,0xeb1f400f,0xe91ffd3f,0xa50fe91f,0xdddf0000,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0x0000dddf,0xcccf0000,0xcccfeeef,0xdddfcccf,0xcccfeeef,0xdddfcccf,0xcccfeeef,0xdddfcccf,0x0000cccf,0x941f0000,0x820f720f,0x720f820f,0x820f720f,0x720f720f,0x820f820f,0x720f820f,0x0000941f, +0xa52f0000,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xaaafaaaf,0x666f666f,0x666f666f,0x111f111f,0x211f111f,0x111f111f,0x211f111f,0x111f111f,0x211f211f,0x111f111f,0x211f222f,0x333f444f,0x444f444f,0x333f444f,0x444f444f,0x444f333f,0x444f444f,0x333f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x100f320f,0x100f210f,0x321f321f,0x210f100f,0x100f531f,0x531f210f,0x531f100f,0x321f100f,0xffffeeef,0xbbbfeeef,0x111f433f,0x333f212f,0xfeefeeef,0xefefeeef,0xeeefeeef,0xeeefdddf,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xea4fd71f,0xea4fa50f,0xa50fe91f,0xe91fea4f,0xa50fd71f,0xd71fa50f,0xa50fe91f,0x410f200f,0xea4f200f,0x200fa50f,0x200f200f,0xe91fa50f,0xa50fd71f, +0xd71fa50f,0xe91ffd3f,0xba3f400f,0xff9f400f,0x400feb1f,0x400f400f,0xfd3feb1f,0xa50fd71f,0xdddf0000,0xdddfeeef,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfeeef,0xeeefdddf,0x0000dddf,0xcccf0000,0xa52fcccf,0xcccfa52f,0xa52fcccf,0xcccfa52f,0xa52fcccf,0xcccfa52f,0x0000cccf,0x941f0000,0x610f610f,0x610f610f,0x720f820f,0x820f820f,0x610f610f,0x610f610f,0x0000941f, +0xa52f0000,0xb52fb52f,0xb52fa52f,0xa52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xaaafaaaf,0x666f666f,0x543f432f,0x00000000,0x111f111f,0x111f111f,0x111f111f,0x100f100f,0x111f111f,0x111f111f,0x111f111f,0x100f111f,0x444f444f,0x444f333f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x100f310f,0x210f320f,0x321f321f,0x210f320f,0x100f320f,0x531f310f,0x531f100f,0x321f100f,0xeeefeeef,0xbbbfbbbf,0x333fdedf,0x212f333f,0xeeef333f,0xdddfdddf,0xeddfdddf,0xdddf433f,0xd71fa50f,0xd71fe91f,0xea4fa50f,0xe91fd71f,0xe91fa50f,0xa50fd71f,0xe91fea4f,0xa50fd71f,0xd71fa50f,0x200fa50f,0x410f410f,0xa50f410f,0x200fa50f,0x410f410f,0xa50f200f,0xa50fd71f, +0xd71fa50f,0x400feb1f,0xba3fba3f,0xeb1fbb3f,0x400feb1f,0xba3fbb3f,0xeb1f400f,0xa50fd71f,0xdddf0000,0xe33feeef,0xeeefe11f,0xeeefeeef,0xe11feeef,0xeeefdddf,0xeeefeeef,0x0000dddf,0x941f0000,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0x0000941f,0x941f0000,0x720f720f,0x720f720f,0x610f610f,0x610f610f,0x720f610f,0x720f720f,0x0000941f, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x864f0000,0xaaaf542f,0x666f666f,0x00000000,0x873f432f,0x00000000,0x100f111f,0x211f111f,0x100f111f,0x111f111f,0x100f111f,0x111f111f,0x111f100f,0x111f111f,0x333f333f,0x444f333f,0x333f333f,0x333f333f,0x333f333f,0x444f333f,0x333f333f,0x333f333f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x210f320f,0x210f320f,0x210f531f,0x310f210f,0x100f320f,0x431f210f,0x321f100f,0x210f100f,0x443f333f,0xffffeeef,0xfeefffff,0xffffeeef,0xeeefffff,0xffffffff,0x333feeef,0x111f111f,0xea4fa50f,0xd71fe91f,0xea4fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xe91fea4f,0xa50fd71f,0xea4fa50f,0x200fa50f,0x410f410f,0xa50f410f,0x200fa50f,0x410f410f,0xa50f410f,0xa50fd71f, +0xea4fa50f,0x400fa50f,0xbb3fbb3f,0xa50fbb3f,0x400feb1f,0xbb3fbb3f,0xeb1fbb3f,0xa50ffd2f,0xdddf0000,0xe11feeef,0xeeefe11f,0xeeefeeef,0xeeefdddf,0xdddfeeef,0xeeefeeef,0x0000dddf,0x941f0000,0xb52fa52f,0xa52fb52f,0xb52fa52f,0xa52fb52f,0xb52fa52f,0xa52fb52f,0x0000941f,0x941f0000,0x820f720f,0x720f820f,0x820f720f,0x720f820f,0x820f720f,0x720f820f,0x0000941f, +0xa52f0000,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x542f0000,0x666faaaf,0x00000000,0x00000000,0x864f642f,0x00000000,0x222f222f,0x111f211f,0x111f111f,0x111f111f,0x222f211f,0x111f111f,0x222f222f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x500f0000,0x0000400f,0x00000000,0x00000000,0x00000000, +0x321f210f,0x320f110f,0x210f431f,0x100f210f,0x100f431f,0x210f321f,0x321f000f,0x320f100f,0xedcf333f,0xeeefddcf,0xbbbfeeef,0xdddfeedf,0xdddfdddf,0xeeefeeef,0xeeefbbbf,0xeeefeeef,0xea4fa50f,0xe91fe91f,0xea4fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xe91fd71f,0xa50fa50f,0xea4fa50f,0x200fa50f,0x410f410f,0xa50f410f,0x200fa50f,0x410f410f,0x410f410f,0xa50fa50f, +0xea4fa50f,0x400fa50f,0xcc3fbb3f,0xa50fcc3f,0x400feb1f,0xcc3fcc3f,0xbb3fbb3f,0xa50feb1f,0xdddf0000,0xeeefeeef,0xdddfeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0xeeefdddf,0x0000dddf,0x941f0000,0xb52fb52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0x0000941f,0x941f0000,0x820f820f,0x820f820f,0x720f820f,0x820f820f,0x820f820f,0x820f720f,0x0000941f, +0xa52f0000,0xb52fb52f,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xa52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0xaaaf0000,0x543f666f,0x0000873f,0x00000000,0x642f0000,0x0000873f,0x111f111f,0x222f222f,0x111f111f,0x211f211f,0x111f111f,0x211f111f,0x111f111f,0x211f211f,0x333f333f,0x444f444f,0x444f444f,0x444f444f,0x333f333f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x400f0000,0x0000200f,0x00000000,0x00000000,0x00000000, +0x531f320f,0x320f100f,0x100f531f,0x100f531f,0x100f531f,0x110f321f,0x321f210f,0x320f100f,0xbbbfeeef,0xeedfffff,0xdddfeeef,0xeeefdddf,0xbbbfffff,0xeeefeeef,0xdddfffff,0xdddfdddf,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xa50fa50f,0xe91fa50f,0xa50fe91f,0x410f410f,0xa50fa50f,0xa50fa50f,0x410f410f,0x410f410f,0xa50fa50f, +0xe91fa50f,0xa50fe91f,0xcc3fcc3f,0xe91fa50f,0xa50fe91f,0xcc3fcd4f,0xbb3fcc3f,0xa50fa50f,0xdddf0000,0xeeefe11f,0xdddfeeef,0xe33feeef,0xdddfe11f,0xeeefdddf,0xeeefeeef,0x0000dddf,0x941f0000,0x941f941f,0x941f941f,0x941f941f,0x941f941f,0x941f941f,0x941f941f,0x0000941f,0x941f0000,0x610f610f,0x610f610f,0x610f610f,0x610f610f,0x610f610f,0x610f610f,0x0000941f, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x666faaaf,0x642f0000,0x873f864f,0x00000000,0x642f0000,0x0000864f,0x111f111f,0x111f111f,0x111f211f,0x111f111f,0x111f111f,0x100f111f,0x111f111f,0x111f111f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x763f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0x531f210f,0x321f100f,0x100f431f,0x100f210f,0x100f210f,0x100f431f,0x320f320f,0x321f100f,0xdddfdddf,0xffffdddf,0xeeefffff,0xfffffeef,0xeeefeddf,0xeeeffeef,0xefefeeef,0xdddfdddf,0xe91fa50f,0xe91fe91f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xd71fe91f,0xe91fa50f,0xa50fd71f,0xe91fa50f,0xe91fe91f,0xa50fa50f,0xd71fa50f,0xa50fa50f,0xa50fa50f,0xa50fa50f,0xa50fd71f, +0xe91fa50f,0xff3ffd3f,0xeb1fe91f,0xd71fe91f,0xe91feb1f,0xeb1fe91f,0xeb1fe91f,0xa50ffd2f,0xdddf0000,0xdddfeeef,0xdddfeeef,0xe11feeef,0xdddfe11f,0xe33fdddf,0xeeefe11f,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fa52f,0xb52fa52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x666faaaf,0x00000000,0x864f642f,0x0000864f,0x642f0000,0x0000864f,0x111f111f,0x211f111f,0x100f100f,0x111f111f,0x111f111f,0x222f222f,0x111f111f,0x222f222f,0x444f333f,0x444f333f,0x333f333f,0x444f444f,0x444f333f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x531f210f,0x210f100f,0x431f320f,0x310f100f,0x100f310f,0x100f431f,0x431f320f,0x321f100f,0xeeefeedf,0xeeefeeef,0xdddfdddf,0xdddfbbbf,0xddcfbbbf,0xeeefdddf,0xeedfefef,0xeeeffeef,0xd71fa50f,0xe91fe91f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xd71fa50f,0x200fa50f,0x200fa50f,0xa50fa50f,0xa50f200f,0x200fa50f,0x200fa50f,0xa50fd71f, +0xfd2fa50f,0x400feb1f,0x400feb1f,0xeb1feb1f,0xeb1f400f,0x400feb1f,0x400feb1f,0xa50fff2f,0xdddf0000,0xdddfeeef,0xeeefe11f,0xeeefeeef,0xdddfeeef,0xe11feeef,0xeeefe11f,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fa52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xa52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0xaaaf0000,0x0000666f,0x00000000,0x642f0000,0x873f864f,0x00000000,0x864f542f,0x211f211f,0x111f111f,0x211f222f,0x111f111f,0x211f211f,0x111f111f,0x111f111f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f333f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0x321f100f,0x310f100f,0x431f210f,0x210f100f,0x210f100f,0x100f531f,0x531f310f,0x431f100f,0xefefbbbf,0xdddfddcf,0xbbbfdddf,0xeeefeeef,0xeedfeeef,0xffffffff,0xeeefeeef,0xeeefffff,0xd71fa50f,0xe91fe91f,0xd71fa50f,0xa50fe91f,0xe91fa50f,0xe91fe91f,0xe91fa50f,0xa50fd71f,0xd71fa50f,0x200f200f,0x200f200f,0x200f410f,0x410f200f,0x200f200f,0x200f410f,0xa50fa50f, +0xff2fa50f,0x400f400f,0x400f400f,0x400fde4f,0xdf4f400f,0x400f400f,0x400fcc3f,0xa50feb1f,0xdddf0000,0xdddfeeef,0xeeefeeef,0xdddfdddf,0xeeefeeef,0xeeefeeef,0xeeefdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0xaaaf542f,0x0000666f,0x00000000,0x00000000,0x864f642f,0x0000873f,0x653f432f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x111f111f,0x100f100f,0x111f111f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x444f333f,0x333f333f,0x444f333f,0x00000000,0x00000000,0x00000000,0x975f0000,0x0000432f,0x00000000,0x00000000,0x00000000, +0x321f100f,0x210f100f,0x531f321f,0x531f100f,0x210f000f,0x100f531f,0x431f320f,0x531f100f,0xeeefeeef,0xeeefeeef,0xbbbfeeef,0xbbbfbbbf,0xeeefeeef,0xdddfdedf,0xbbbfbbbf,0xdddfdddf,0xa50fa50f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xe91fd71f,0xea4fa50f,0xa50fe91f,0xa50fa50f,0x410f200f,0x410f410f,0x410f410f,0x410f410f,0x410f410f,0x410f410f,0xa50f410f, +0xa50fa50f,0xcc3f400f,0xcd4fcc3f,0xde4fde4f,0xde4fdf4f,0xcd4fde4f,0xcc3fcc3f,0xeb1fbb3f,0xdddf0000,0xdddfeeef,0xeeefdddf,0xeeefeeef,0xe11fe33f,0xeeefdddf,0xeeefdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xb52fa52f,0xb52fa52f,0xb52fb52f,0xb52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f543f,0x0000873f,0x00000000,0x642f0000,0x653f642f,0x666f666f,0x111f111f,0x100f100f,0x211f211f,0x100f111f,0x111f111f,0x111f111f,0x222f222f,0x100f111f,0x333f333f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x444f444f,0x444f444f,0x333f444f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x531f100f,0x210f100f,0x531f320f,0x310f000f,0x210f100f,0x100f431f,0x210f310f,0x531f100f,0xffffeeef,0xeeefffff,0xdddfdddf,0xeeefdedf,0xeedfeeef,0xeeefeeef,0xeeefeeef,0x443f333f,0xa50fa50f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xe91fd71f,0xe91fe91f,0xea4fa50f,0xa50fe91f,0xa50fa50f,0x200fa50f,0xa50f410f,0x410f410f,0x410fa50f,0x410f410f,0x410fa50f,0xa50f410f, +0xa50fa50f,0x400fe91f,0xe91fcc3f,0xde4fcd4f,0xde4fe91f,0xcd4fcd4f,0xbb3fa50f,0xeb1fbb3f,0xdddf0000,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xe11fe11f,0xdddfdddf,0xeeefdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xa52fb52f,0xa52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x542f432f,0x864f642f,0x873f873f,0x00000000,0x666f432f,0xaaafaaaf,0x111f111f,0x222f211f,0x111f211f,0x111f111f,0x111f100f,0x211f111f,0x111f111f,0x222f211f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f333f,0x444f444f,0x444f444f,0x444f444f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000331f,0x00000000,0x00000000,0x00000000, +0x320f100f,0x320f210f,0x321f210f,0x320f110f,0x210f320f,0x100f210f,0x431f310f,0x100f531f,0xdddf333f,0xefdfdddf,0xeedfeeef,0xbbafeeef,0xeeefdddf,0xeeefeeef,0x334f433f,0x111f111f,0xa50fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xe91fd71f,0xd71fe91f,0xea4fa50f,0xa50fe91f,0xa50fa50f,0x200fa50f,0xe91fa50f,0xa50f410f,0xe91fa50f,0x410fe91f,0xea4fa50f,0xa50fa50f, +0xa50fa50f,0x400fa50f,0xe91fe91f,0xe91fcd4f,0xe91fa50f,0xcc3ffd3f,0xea4fa50f,0xa50fa50f,0xdddf0000,0xe11feeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefeeef,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xb52fb52f,0xb52fb52f,0xa52fb52f,0xb52fb52f,0xb52fa52f,0xb52fb52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x642f0000,0x642f642f,0x653f873f,0xaaaf666f,0x864f542f,0x211f211f,0x111f111f,0x111f211f,0x111f111f,0x211f222f,0x111f111f,0x111f111f,0x111f111f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x444f444f,0x333f333f,0x444f444f,0x333f333f,0x00000000,0x00000000,0x00000000,0x974f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x210f100f,0x100f431f,0x321f320f,0x100f110f,0x210f431f,0x100f531f,0x321f210f,0x210f100f,0x333f111f,0xeeef333f,0xffffeeef,0xffffffff,0xdddfeeef,0x333f333f,0xdddfbbbf,0x111f121f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fa50f,0xa50fe91f,0xd71fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fa50f,0xa50fe91f, +0xd71fa50f,0xd71fe91f,0xe91fa50f,0xa50fe91f,0xea4fa50f,0xa50fe91f,0xe91fa50f,0xa50fe91f,0xdddf0000,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0xdddfdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52f0000,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0xa52fa52f,0x0000a52f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x432f432f,0xaaaf666f,0x0000864f,0x111f111f,0x111f211f,0x111f111f,0x211f211f,0x111f111f,0x211f111f,0x111f111f,0x211f211f,0x333f333f,0x444f444f,0x333f333f,0x444f444f,0x333f444f,0x444f444f,0x333f333f,0x444f444f,0x00000000,0x00000000,0x00000000,0x653f0000,0x0000321f,0x00000000,0x00000000,0x00000000, +0x210f210f,0x100f321f,0x210f210f,0x100f210f,0x320f210f,0x000f210f,0x210f210f,0x321f210f,0xeeefeeef,0x333feeef,0xdddfdddf,0xeeefeddf,0xeeefeeef,0xeddfdddf,0xffffdddf,0xfeefffff,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f, +0xa50fa50f,0xd71fd71f,0xa50fa50f,0xa50fd71f,0xd71fa50f,0xa50fa50f,0xd71fd71f,0xa50fa50f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0x922f922f,0xa32fa22f,0x922f922f,0xa22fa22f,0x922f822f,0xa22fa22f,0x822f922f,0xd79fd78f,0xd68fd68f,0xd9afd89f,0xd78fd78f,0xd8afd8af,0xd68fc57f,0xd89fd89f,0xc67fd68f,0x888f888f,0x888f888f,0x888f888f,0x999f999f,0x999f777f,0x888f888f,0x888f888f,0x888f888f, +0x999f0000,0x444f0000,0x999f0000,0x0000444f,0x0000999f,0x444f999f,0x999f0000,0x999f0000,0x999f333f,0x444f333f,0x999f333f,0x333f444f,0x333f999f,0x444f999f,0x999f333f,0x999f333f,0x800f800f,0x800f800f,0x800f800f,0x900f800f,0x800f810f,0x800f800f,0x800f800f,0x800f801f,0x700f800f,0x912f800f,0x811f911f,0x700f800f,0xaaafbbaf,0xcccfbcbf,0x9a9fbbbf,0xbbaf999f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x864f0000,0x666faaaf,0x753f543f,0xa84fa84f,0xa85fa85f,0x653f864f,0xaaaf666f,0x0000864f,0xa22fa22f,0xb32fb32f,0xa22fb32f,0x922f922f,0x822f922f,0x922f922f,0x822f822f,0xa22f922f,0xd8afd89f,0xeabfeabf,0xd8afd9af,0xd79fd79f,0xc67fd68f,0xd79fd78f,0xd68fc57f,0xd89fd79f,0xaaaf888f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf, +0x888f999f,0x444f888f,0x999f333f,0x333f0000,0x999f0000,0x444f888f,0x00000000,0x888f0000,0x888f999f,0x444f888f,0x999f333f,0x333f333f,0x999f333f,0x444f888f,0x333f333f,0x888f333f,0x800f800f,0x911f811f,0x911f911f,0x911f911f,0x801f911f,0x911f800f,0xa11fa11f,0xa12fa11f,0x911fa22f,0x922f800f,0x800f922f,0x700f800f,0xdddfcccf,0xffffeeef,0xbbbfdddf,0x9aafbaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x444f0000,0x444f444f,0x444f444f,0x0000444f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x542f432f,0x642f642f,0x642f642f,0x432f432f,0xaaaf666f,0x0000542f,0xb32fb32f,0xa22f922f,0xb32fb32f,0x922fa22f,0xb32fa22f,0xa22fa22f,0xb32fb32f,0xa22fa22f,0xe9afd9af,0xd89fd79f,0xe9afe9bf,0xd79fd89f,0xe9afd8af,0xd8afd8af,0xeabfeabf,0xd8afd8af,0x999f888f,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf, +0x999f0000,0x444f0000,0x0000999f,0x0000999f,0x0000999f,0x444f999f,0x999f0000,0x999f444f,0x999f333f,0x333f333f,0x333f999f,0x333f999f,0x333f999f,0x333f999f,0x999f333f,0x999f444f,0x800f800f,0xb33fa22f,0xa33fa33f,0xb33fb33f,0xa22fa33f,0xa22fa22f,0xb33fb33f,0xb33fb33f,0xa33fb33f,0xb45f911f,0xa22fb44f,0x600f700f,0xffffcccf,0xffffffff,0xdcdfffff,0xa99fbbaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x444f0000,0xcccf444f,0xcccfcccf,0xcccfcccf,0x444fcccf,0x0000444f,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922fa22f,0xb32fa22f,0x922f922f,0xb32fa22f,0x922f922f,0xb32fb32f,0x922fa22f,0xb32fb32f,0xd79fd89f,0xe9afd9af,0xd79fd79f,0xe9afd89f,0xd79fd78f,0xe9afe9af,0xd79fd89f,0xe9afeabf,0xbbbf888f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf, +0x0000999f,0x0000999f,0x999f0000,0x0000555f,0x0000888f,0x333f444f,0x444f999f,0x0000999f,0x333f999f,0x333f999f,0x999f333f,0x333f555f,0x333f888f,0x333f444f,0x444f999f,0x333f999f,0x901f800f,0xa33fa32f,0xa33fa33f,0xb33fa33f,0xa33fa33f,0xa22fa22f,0xb33fa23f,0xb33fb33f,0xa32fa33f,0xc55f911f,0x922fb44f,0x700f800f,0xffffcccf,0xffffffff,0xeeefffff,0x99afbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x444f0000,0xcccf444f,0xeeefcccf,0xeeefe11f,0xeeefeeef,0xcccfeeef,0x444fcccf,0x0000444f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0xa22fa22f,0xa22f922f,0xa22fa32f,0x822f822f,0xa22f922f,0x922f922f,0xa32fa32f,0x822f922f,0xd89fd8af,0xd89fd78f,0xd9afd9af,0xc57fc57f,0xd89fd79f,0xd68fd78f,0xd9afd9af,0xc57fd68f,0xbbbf888f,0xaaafbbbf,0xaaafaaaf,0x999f999f,0x999f999f,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf, +0x0000444f,0x888f0000,0x0000999f,0x444f999f,0x999f888f,0x00000000,0x999f0000,0x0000444f,0x333f444f,0x888f333f,0x333f999f,0x444f999f,0x999f888f,0x333f333f,0x999f333f,0x333f333f,0x911f800f,0xa22fa23f,0xa22f922f,0xa22fa22f,0xa22fa22f,0x922f922f,0x922f922f,0x922f922f,0x911f922f,0xb55f911f,0x921fb44f,0x700f700f,0xffffdddf,0xffffffff,0xfeefeeef,0xaaafcccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xe11fcccf,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0xcccfeeef,0x444fcccf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f653f,0x873fa85f,0x873f873f,0x653f642f,0xaaaf666f,0x0000864f,0x822f822f,0xb32f922f,0x822f922f,0x922f922f,0x822f922f,0x922f922f,0x922f822f,0x922f922f,0xc57fd68f,0xe9afd78f,0xc57fd78f,0xd79fd78f,0xc57fd78f,0xd79fd79f,0xd78fc67f,0xd79fd68f,0xaaaf888f,0xaaafaaaf,0x999faaaf,0x777f888f,0x888f777f,0xaaafcccf,0xaaafaaaf,0x888f999f, +0x0000444f,0x444f888f,0x0000444f,0x444f0000,0x333f999f,0x444f999f,0x444f999f,0x0000999f,0x333f444f,0x444f888f,0x333f444f,0x444f333f,0x333f999f,0x444f999f,0x444f999f,0x333f999f,0x911f800f,0xb33fb33f,0x922f912f,0x911f911f,0x811f811f,0x810f801f,0x811f811f,0x811f811f,0x811f810f,0xc55f911f,0x811fa22f,0x600f700f,0xffffdddf,0xffffffff,0xeeefeeef,0xbbbfdddf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xeeefe11f,0xeeefeeef,0xeeefe11f,0x444fcccf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x432f432f,0x642f542f,0x642f642f,0x432f542f,0xaaaf666f,0x0000542f,0xb32fb32f,0xa22fa32f,0xa22fa22f,0xa22fa22f,0xb32fb32f,0x922fa22f,0xb32fb32f,0xa22fa22f,0xeabfeabf,0xd9afd9af,0xd89fd89f,0xd89fd89f,0xeabfd9af,0xd79fd8af,0xeabfeabf,0xd89fd8af,0xbbbf999f,0xaaafaaaf,0x999faaaf,0x500f999f,0xbbbf500f,0xaaafcccf,0xbbbfbbbf,0x777fbbbf, +0x999f444f,0x888f888f,0x0000444f,0x0000999f,0x999f444f,0x0000444f,0x444f888f,0x999f0000,0x999f333f,0x888f888f,0x333f444f,0x333f999f,0x999f333f,0x333f444f,0x444f888f,0x999f333f,0x911f800f,0x922fb33f,0x911f911f,0x811f911f,0x810f811f,0x811f811f,0x811f811f,0x811f811f,0x911f811f,0xc66f911f,0x810f922f,0x600f700f,0xfeffdddf,0xeeffffff,0xeeffeeef,0xbbbfdcdf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xeeefcccf,0xeeefe11f,0xeeefeeef,0xeeefeeef,0xeeefeeef,0xcccfeeef,0x444fcccf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0x922f922f,0xb32fa22f,0xa22fa22f,0xb32fb32f,0xd79fd79f,0xeabfeabf,0xd8afd8af,0xe9afe9af,0xd78fd68f,0xe9afd9af,0xd8afd8af,0xe9afe9af,0xaaaf888f,0xaaafaaaf,0x888f999f,0x500f999f,0xbbbf400f,0xcccfaaaf,0xaaafaaaf,0x888faaaf, +0x333f0000,0x0000999f,0x999f333f,0x999f0000,0x0000999f,0x0000999f,0x0000888f,0x0000999f,0x333f333f,0x333f999f,0x999f333f,0x999f333f,0x333f999f,0x333f999f,0x333f888f,0x333f999f,0x901f800f,0x811f922f,0x811f810f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0xb44f800f,0x811f911f,0x600f700f,0xefefdddf,0xeeffffff,0xeeefeeef,0xbbbfcdcf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf444f,0xcccfeeef,0xeeefcccf,0xeeefeeef,0xeeefe11f,0xcccfeeef,0xbbbfcccf,0x444fbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0xa22fa22f,0x922f822f,0xa22fb32f,0x922f922f,0x922f922f,0x822f922f,0x922fa22f,0x922f922f,0xd8afd8af,0xd79fd68f,0xd8afe9af,0xd79fd78f,0xd79fd79f,0xc67fd78f,0xd79fd89f,0xd68fd68f,0xbbbf888f,0x999fbbbf,0x888f999f,0x500f999f,0xbbbf200f,0xcccf999f,0xbbbfbbbf,0x999fbbbf, +0x999f0000,0x999f444f,0x0000333f,0x444f999f,0x0000444f,0x999f0000,0x999f444f,0x999f0000,0x999f333f,0x999f444f,0x333f333f,0x444f999f,0x333f444f,0x999f333f,0x999f444f,0x999f333f,0x901f800f,0x811f921f,0x811f811f,0x911f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0xb33f800f,0x811f911f,0x600f700f,0xffffdddf,0xeeffffef,0xeeefeeef,0xbabfccdf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xcccf310f,0xeeefeeef,0xcccfeeef,0xcccfcccf,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0x310fbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f653f,0x873f873f,0x873f873f,0x653fa84f,0xaaaf666f,0x0000864f,0x922f922f,0xb32f922f,0x822f822f,0xa22f922f,0xa22f922f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0xd79fd79f,0xd9afd79f,0xc57fc57f,0xd89fd79f,0xd8afd78f,0xeabfeabf,0xd8afd89f,0xeabfeabf,0xaaaf888f,0x999faaaf,0xaaaf888f,0x500f999f,0xbbbf200f,0x999faaaf,0xaaafcccf,0x888fbbbf, +0x444f999f,0x444f888f,0x999f0000,0x999f0000,0x0000444f,0x0000999f,0x0000444f,0x444f999f,0x333f999f,0x444f888f,0x999f333f,0x999f333f,0x333f333f,0x333f999f,0x333f444f,0x444f999f,0x911f800f,0x911f921f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x810f811f,0x811f911f,0x811f811f,0xb33f800f,0x811f911f,0x600f700f,0xfeffdddf,0xeeffeeff,0xeeefeeef,0xbbbfdccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x941f310f,0xeeefcccf,0xeeefeeef,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xa52fbbbf,0x310f941f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x432f432f,0x642f542f,0x642f642f,0x432f642f,0xaaaf666f,0x0000542f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0xa22fa22f,0xb32fb32f,0xa22f922f,0xa22fa22f,0xa22f922f,0xe9afe9af,0xd8afd8af,0xe9afeabf,0xd8afd8af,0xd9afe9af,0xd89fd79f,0xd89fd8af,0xd89fd68f,0xaaaf888f,0x999fbbbf,0x999f888f,0x500f999f,0xbbbf200f,0xaaafaaaf,0xaaafcccf,0x888faaaf, +0x0000888f,0x444f0000,0x444f999f,0x00000000,0x999f0000,0x999f444f,0x999f0000,0x444f333f,0x333f888f,0x333f333f,0x444f999f,0x333f333f,0x999f333f,0x999f444f,0x999f333f,0x444f333f,0x811f800f,0x911f922f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f811f,0x811f911f,0x811f811f,0xb33f800f,0x811f921f,0x600f700f,0xedefcccf,0xeeefeeef,0xdeefeeef,0xaaafcccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x941f310f,0xa52fa52f,0xcccfeeef,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xa52fa52f,0x310f941f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0xa22fa22f,0x922f922f,0xa22fa32f,0x922f922f,0xa22f922f,0x822f822f,0xa22f922f,0xd78fd68f,0xd89fd89f,0xd79fd79f,0xd8afd9af,0xd78fd68f,0xd8afd79f,0xc57fc57f,0xd8afd79f,0xaaaf777f,0x888f999f,0x999faaaf,0x400f999f,0xbbbf200f,0x999faaaf,0xcccfaaaf,0x777fbbbf, +0x00000000,0x0000999f,0x444f888f,0x999f0000,0x0000444f,0x888f999f,0x444f0000,0x444f0000,0x333f333f,0x333f999f,0x444f888f,0x999f333f,0x333f333f,0x888f999f,0x444f333f,0x333f333f,0x910f800f,0x811f911f,0x811f810f,0x800f811f,0x800f701f,0x811f811f,0x811f801f,0x701f710f,0x810f700f,0xa33f700f,0x811f911f,0x600f700f,0xdddfcccf,0xeeefdddf,0xdccfdddf,0xaaafbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x941f310f,0xb52fb52f,0xa52fa52f,0xa52fcccf,0xa52fa52f,0xa52fbbbf,0xa52fa52f,0x310f941f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f922f,0x822f822f,0xb32fb32f,0x822f922f,0xa32fa22f,0xa22fa22f,0xb32fb32f,0x822fa22f,0xd79fd79f,0xc57fc57f,0xe9bfe9af,0xc57fd68f,0xd9afd89f,0xd8afd89f,0xeabfeabf,0xc67fd8af,0xaaaf888f,0x888f999f,0xaaaf999f,0x400f999f,0xbbbf200f,0xaaaf999f,0xcccfaaaf,0x888faaaf, +0x888f444f,0x999f888f,0x999f888f,0x999f333f,0x999f333f,0x999f0000,0x444f0000,0x0000333f,0x888f333f,0x999f888f,0x999f888f,0x999f333f,0x999f333f,0x999f333f,0x444f333f,0x333f333f,0x900f700f,0x811f911f,0x811f811f,0x710f701f,0x801f710f,0x711f701f,0x801f801f,0x800f810f,0x810f711f,0xa32f700f,0x811fa22f,0x600f700f,0xdddfcccf,0xdddfdddf,0xcccfdddf,0xaaafbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x310f0000,0x941f310f,0xb52f941f,0xa52fb52f,0xa52fa52f,0x941fa52f,0x941f941f,0x0000310f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x864f0000,0x666faaaf,0x864f543f,0x873fa85f,0xa85fa85f,0x653f873f,0xaaaf666f,0x0000864f,0xa22fa22f,0xb32fb32f,0xa22fb32f,0x922fa22f,0xa22f822f,0xb32fa22f,0xa22fa22f,0xb32fb32f,0xd8afd8af,0xeabfeabf,0xd8afe9af,0xd79fd89f,0xd89fc57f,0xe9afd8af,0xd89fd89f,0xeabfe9af,0xbbbf888f,0xbbbfaaaf,0xaaaf999f,0x400f999f,0xbbbf200f,0xcccfaaaf,0xaaafcccf,0x999fbbbf, +0x0000333f,0x0000999f,0x0000999f,0x444f999f,0x00000000,0x444f999f,0x444f0000,0x0000999f,0x333f333f,0x333f999f,0x333f999f,0x444f999f,0x333f333f,0x444f999f,0x333f333f,0x333f999f,0x800f800f,0x811f811f,0x811f811f,0x801f711f,0x810f811f,0x801f701f,0x711f811f,0x811f810f,0x811f811f,0xa32f700f,0x811f911f,0x600f700f,0xdddfcdcf,0xcccfdddf,0xdddfcdcf,0xbbbfcccf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x310f0000,0x941f310f,0x941f941f,0x941f941f,0x310f941f,0x310f310f,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x542f0000,0x666faaaf,0x432f432f,0x542f652f,0x642f642f,0x432f642f,0xaaaf666f,0x0000542f,0xb32fb32f,0x922fa22f,0xa22fb32f,0xa22fa22f,0xb32fb32f,0x922f922f,0xa22fa22f,0x922f922f,0xe9bfe9bf,0xd79fd89f,0xd89fe9af,0xd9afd8af,0xd9afeabf,0xd79fd78f,0xd8afd89f,0xd68fd79f,0xaaaf888f,0xaaafaaaf,0xbbbfaaaf,0xcccfbbbf,0xcccfcccf,0xbbbfcccf,0xaaafaaaf,0x888faaaf, +0x999f444f,0x999f0000,0x999f444f,0x444f0000,0x0000444f,0x0000888f,0x999f333f,0x999f0000,0x999f333f,0x999f333f,0x999f444f,0x333f333f,0x333f444f,0x333f888f,0x999f333f,0x999f333f,0x800f800f,0x800f700f,0x800f800f,0x811f810f,0x811f701f,0x700f810f,0x700f700f,0x800f700f,0x800f800f,0x911f700f,0x700f811f,0x700f700f,0xdccfddcf,0xbbbfcbcf,0xcccfbbbf,0xbbbfdddf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x310f0000,0x310f310f,0x310f310f,0x0000310f,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x666faaaf,0x00000000,0x00000000,0x00000000,0x00000000,0xaaaf666f,0x00000000,0x922f822f,0xa22fb32f,0x922f922f,0xb32fb32f,0x922fa22f,0xb32fa22f,0x922f922f,0xb32fb32f,0xd78fc67f,0xd89fe9af,0xd79fd68f,0xeabfe9af,0xd79fd89f,0xe9afd8af,0xd78fd68f,0xe9afd9af,0x888f888f,0x888f888f,0x999f777f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f, +0x444f0000,0x333f0000,0x444f999f,0x0000999f,0x999f444f,0x888f0000,0x0000333f,0x0000888f,0x444f333f,0x333f333f,0x444f999f,0x333f999f,0x999f444f,0x888f333f,0x333f333f,0x333f888f,0x800f800f,0x800f800f,0x800f700f,0x800f800f,0x800f800f,0x800f800f,0x800f800f,0x800f800f,0x800f800f,0x800f700f,0x700f800f,0x600f700f,0xbbbfbbbf,0xaaafbbaf,0xbbbfaaaf,0xbbbfbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x149f15bf,0x15cf149f,0x15cf15cf,0x248f248f,0x15bf15af,0x248f14af,0x259f248f,0x14bf248f,0x341f341f,0x341f341f,0x351f341f,0x341f341f,0x351f351f,0x341f341f,0x341f341f,0x341f341f,0x3b2f3a2f,0x3a2f3a2f,0x3c3f3b2f,0x3b2f3a2f,0x3c3f3c3f,0x3a2f3a2f,0x3c2f3c2f,0x3a2f3a2f,0x888f888f,0x888f888f,0x888f888f,0x999f999f,0x999f777f,0x888f888f,0x888f888f,0x888f888f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x800f800f,0x800f800f,0x800f800f,0x811f800f,0x711f801f,0x800f810f,0x800f800f,0x801f711f,0x800f800f,0x800f700f,0x800f800f,0x811f800f,0x711f811f,0x811f801f,0x700f700f,0x801f811f,0x800f800f,0x800f700f,0x800f922f,0x600f800f,0xccdfbbbf,0xcccfcdcf,0xbbbfbbbf,0xbbbfbbbf, +0xcdcfbbbf,0xcccfcccf,0xbbbfbbbf,0xbbbfbbbf,0xcddfbbbf,0xcccfccdf,0xbbbfbbbf,0xbbbfbbbf,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x14bf13cf,0x37af15cf,0x14df25bf,0x159f14af,0x15bf15af,0x03bf03bf,0x149f149f,0x14bf14bf,0x351f341f,0x451f351f,0x351f351f,0x341f341f,0x341f341f,0x341f341f,0x341f231f,0x341f341f,0x3c3f3b2f,0x4d4f4c3f,0x3c3f3c3f,0x3b2f3b2f,0x3a2f3a2f,0x3b2f3b2f,0x3a2f292f,0x3b2f3b2f,0xaaaf888f,0xbbbfbbbf,0xbbbfbbbf,0xbbbfbbbf,0xbbbfaaaf,0xbbbfbbbf,0xaaaf999f,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x811f800f,0x811f811f,0x811f811f,0x810f811f,0x801f811f,0x811f801f,0x811f801f,0x801f811f,0x811f800f,0x811f811f,0x811f811f,0x811f811f,0x711f711f,0x711f811f,0x811f911f,0x810f811f,0x811f811f,0xb33f700f,0x811fa22f,0x600f801f,0xeeefbbbf,0xeeffefef,0xeeefefef,0xbbbfcdcf, +0xcccfbbbf,0xeeefeeef,0xffffffff,0xffffffff,0xffffffff,0xfeefeeef,0xeeefefff,0xbbbfccdf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x15cf14bf,0x269f15cf,0x14af15cf,0x149f139f,0x14af248f,0x03bf14bf,0x14af02bf,0x14bf14bf,0x351f351f,0x341f341f,0x351f351f,0x341f341f,0x351f351f,0x351f351f,0x351f351f,0x351f351f,0x4c3f3c3f,0x3b2f3b2f,0x4c3f4c3f,0x3b2f3c2f,0x4c3f3c3f,0x3c3f3c3f,0x4c3f4c3f,0x3c3f3c3f,0x999f888f,0xaaafaaaf,0xaaaf999f,0xaaafaaaf,0xaaafbbbf,0xaaafaaaf,0xbbbfaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x811f800f,0x922f922f,0x922f922f,0x921f912f,0x811f811f,0x801f811f,0x800f811f,0x811f811f,0x811f800f,0x922f922f,0x921f922f,0x912f922f,0x811f811f,0x800f811f,0x811f810f,0x811f811f,0x711f811f,0xa22f700f,0x811f810f,0x600f811f,0xccdfbbbf,0xeeefeeef,0xeeefeeef,0xbbbfdccf, +0xddcfbbbf,0xeeffeeff,0xeeeffeef,0xfeefeeef,0xfeefffff,0xffffefef,0xfeefefef,0xbbbfcddf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14bf14bf,0x15cf14bf,0x14cf15cf,0x158f14af,0x248f14bf,0x03bf149f,0x149f03bf,0x14bf14af,0x341f341f,0x351f351f,0x341f341f,0x351f341f,0x341f341f,0x351f351f,0x341f341f,0x351f451f,0x3b2f3b2f,0x4c3f3c3f,0x3b2f3b2f,0x4c3f3b2f,0x3b2f3a2f,0x4c3f4c3f,0x3b2f3b2f,0x4c3f4d4f,0xbbbf888f,0xaaafaaaf,0x999faaaf,0xbbbfaaaf,0xaaafaaaf,0xaaafaaaf,0xaaafaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x700f600f,0x700f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0x600f600f,0xbbbfbbbf,0xcccfddcf,0xbbbfcccf,0xbbbfbbbf, +0xbbbfbbbf,0xcccfcccf,0xbbbfcccf,0xbbbfbbbf,0xbbbfbbbf,0xcccfdcdf,0xbbbfcccf,0xbbbfbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14bf13cf,0x15cf14bf,0x14cf15cf,0x148f14bf,0x149f14bf,0x248f14af,0x03bf248f,0x14bf149f,0x341f351f,0x341f341f,0x351f351f,0x231f341f,0x341f341f,0x341f341f,0x351f351f,0x341f341f,0x3b2f3c3f,0x3b2f3a2f,0x3c3f3c3f,0x292f3a2f,0x3c2f3b2f,0x3a2f3b2f,0x3c3f3c3f,0x3a2f3a2f,0xbbbf888f,0xaaafbbbf,0xaaafaaaf,0x999f999f,0x999f999f,0xbbbfbbbf,0xbbbfbbbf,0x777fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x963fa94f,0x963f863f,0x963f963f,0x863f862f,0x963f963f,0x863f863f,0x963f963f,0x541f973f,0x963fa84f,0x973f863f,0x963f863f,0x863f863f,0x963f963f,0x863f863f,0x973f963f,0x863f963f,0x862f863f,0x963f963f,0x963f873f,0x863f963f,0x963f863f,0x963f863f,0x963f863f,0x531f863f, +0x963fa94f,0x963f863f,0x963f963f,0x863f863f,0x963f973f,0x863f863f,0x963f963f,0x531f973f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14bf14bf,0x14bf14bf,0x15cf15bf,0x14af14bf,0x248f14bf,0x26bf149f,0x03bf149f,0x14bf149f,0x241f341f,0x351f341f,0x231f341f,0x341f341f,0x231f341f,0x341f341f,0x341f341f,0x341f341f,0x3a2f3a2f,0x4c3f3b2f,0x292f3a2f,0x3b2f3a2f,0x292f3a2f,0x3b2f3b2f,0x3b2f3a2f,0x3b2f3a2f,0xaaaf888f,0xaaafaaaf,0x999faaaf,0x777f888f,0x888f777f,0xaaafcccf,0xaaafaaaf,0x888f999f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x863fb95f,0x642f642f,0x642f642f,0x642f641f,0x532f531f,0x642f641f,0x974f531f,0x541f863f,0x863fa95f,0x641f632f,0x641f641f,0x642f641f,0x531f531f,0x641f641f,0x632f531f,0x641f641f,0x531f642f,0x641f641f,0x641f531f,0x641f642f,0x641f641f,0x641f642f,0x974f641f,0x531f863f, +0x863fb94f,0x642f641f,0x642f641f,0x641f641f,0x531f531f,0x641f641f,0x974f531f,0x531f863f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x13bf14bf,0x13cf13cf,0x15cf14bf,0x14af14cf,0x248f159f,0x248f149f,0x258f149f,0x13bf149f,0x451f351f,0x351f351f,0x341f341f,0x341f341f,0x451f351f,0x341f351f,0x451f451f,0x341f351f,0x4c4f4c3f,0x3c3f3c3f,0x3b2f3b2f,0x3c2f3b2f,0x4c4f3c3f,0x3b2f3c3f,0x4d4f4d4f,0x3c2f3c3f,0xbbbf999f,0xaaafaaaf,0x999faaaf,0xf00f999f,0xbbbff00f,0xaaafcccf,0xbbbfbbbf,0x777fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x863fa84f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xa94f0000,0x531f963f,0x862fa84f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa94f0000,0x531f963f, +0x863fa94f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xa84f0000,0x531f963f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14af13bf,0x14bf14bf,0x02bf14bf,0x14bf14af,0x149f14af,0x14af14bf,0x258f14af,0x13bf129f,0x341f341f,0x451f351f,0x351f351f,0x351f351f,0x341f341f,0x351f351f,0x351f351f,0x351f351f,0x3b2f3b2f,0x4d4f4c3f,0x3c3f3c3f,0x4c3f4c3f,0x3b2f3a2f,0x4c3f3c3f,0x3c3f3c3f,0x4c3f4c3f,0xaaaf888f,0xaaafaaaf,0x888f999f,0xf00f999f,0xbbbfd00f,0xcccfaaaf,0xaaafaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x863fa95f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xb95f0000,0x641f963f,0x863fb95f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb95f0000,0x642f963f, +0x863fb95f,0x0000531f,0x00000000,0x00000000,0x00000000,0x00000000,0xb95f0000,0x642f863f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x249f13bf,0x15cf13bf,0x13af14cf,0x14cf02bf,0x15af24af,0x14af248f,0x258f149f,0x13bf13bf,0x351f351f,0x341f341f,0x351f351f,0x341f341f,0x341f341f,0x341f341f,0x341f341f,0x341f341f,0x3c3f3c3f,0x3b2f3a2f,0x3c3f4c3f,0x3b2f3a2f,0x3b2f3b2f,0x3a2f3b2f,0x3b2f3b2f,0x3a2f3a2f,0xbbbf888f,0x999fbbbf,0x888f999f,0xf00f999f,0xbbbfa00f,0xcccf999f,0xbbbfbbbf,0x999fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x963fa84f,0x0000641f,0x00000000,0x00000000,0x00000000,0x00000000,0xa84f0000,0x641f963f,0x963fa84f,0x0000641f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa84f0000,0x641f963f, +0x973fa84f,0x0000641f,0x00000000,0x00000000,0x00000000,0x00000000,0xa94f0000,0x642f963f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x13bf13bf,0x13cf13af,0x26af14bf,0x14bf24af,0x14af14af,0x248f14af,0x14af248f,0x13bf258f,0x341f341f,0x351f341f,0x341f231f,0x341f341f,0x351f341f,0x451f451f,0x351f341f,0x351f451f,0x3b2f3b2f,0x3c3f3b2f,0x3a2f392f,0x3c3f3b2f,0x3c3f3a2f,0x4d4f4d4f,0x3c3f3b2f,0x4c3f4d4f,0xaaaf888f,0x999faaaf,0xaaaf888f,0xd00f999f,0xbbbfd00f,0x999faaaf,0xaaafcccf,0x888fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x13bf368f,0x12bf139f,0x259f13af,0x02bf24af,0x14af13bf,0x248f249f,0x14af248f,0x358f368f,0x351f351f,0x351f351f,0x351f451f,0x351f351f,0x351f351f,0x341f341f,0x341f351f,0x341f341f,0x4c3f4c3f,0x3c3f3c3f,0x4c3f4c4f,0x3c3f3c3f,0x3c3f4c3f,0x3c2f3b2f,0x3b2f3c3f,0x3b2f3a2f,0xaaaf888f,0x999fbbbf,0x999f888f,0xd00f999f,0xbbbfb00f,0xaaafaaaf,0xaaafcccf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x248f258f,0x129f149f,0x148f129f,0x02bf13af,0x14af13af,0x248f249f,0x249f248f,0x258f358f,0x341f341f,0x341f341f,0x341f341f,0x351f351f,0x341f341f,0x351f341f,0x241f241f,0x351f341f,0x3a2f3a2f,0x3c3f3c3f,0x3b2f3b2f,0x3c3f3c3f,0x3a2f3a2f,0x3c3f3b2f,0x3a2f3a2f,0x3c3f3b2f,0xaaaf777f,0x888f999f,0x999faaaf,0xf00f999f,0xbbbfd00f,0x999faaaf,0xcccfaaaf,0x777fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x259f358f,0x139f248f,0x12af129f,0x02bf13bf,0x14af12bf,0x149f14af,0x248f248f,0x258f248f,0x341f341f,0x341f231f,0x351f351f,0x231f341f,0x351f341f,0x351f341f,0x451f451f,0x341f351f,0x3b2f3b2f,0x3a2f392f,0x4c3f4c3f,0x292f3a2f,0x3c3f3b2f,0x3c3f3c2f,0x4d4f4d4f,0x3a2f3c3f,0xaaaf888f,0x888f999f,0xaaaf999f,0xf00f999f,0xbbbfb00f,0xaaaf999f,0xcccfaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x248f258f,0x248f249f,0x12af12af,0x03bf14af,0x139f12bf,0x149f248f,0x248f248f,0x258f248f,0x351f351f,0x451f351f,0x351f351f,0x341f341f,0x341f231f,0x351f351f,0x341f341f,0x351f351f,0x3c3f3c3f,0x4d4f4c3f,0x3c3f4c3f,0x3b2f3c2f,0x3b2f392f,0x4c3f3c3f,0x3b2f3b2f,0x4c3f4c3f,0xbbbf888f,0xbbbfaaaf,0xaaaf999f,0xd00f999f,0xbbbfb00f,0xcccfaaaf,0xaaafcccf,0x999fbbbf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x247f149f,0x15cf15cf,0x248f248f,0x248f248f,0x14af02bf,0x03bf139f,0x248f248f,0x14bf248f,0x351f351f,0x341f341f,0x341f351f,0x351f351f,0x351f451f,0x341f341f,0x351f341f,0x341f341f,0x4c3f4c3f,0x3b2f3b2f,0x3c2f4c3f,0x3c3f3c3f,0x3c3f4d4f,0x3b2f3b2f,0x3c3f3c2f,0x3a2f3b2f,0xaaaf888f,0xaaafaaaf,0xbbbfaaaf,0xcccfbbbf,0xcccfcccf,0xbbbfcccf,0xaaafaaaf,0x888faaaf, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x149f357f,0x15cf149f,0x14af14df,0x248f14af,0x14af248f,0x248f248f,0x248f248f,0x14bf14bf,0x341f341f,0x341f351f,0x341f341f,0x351f351f,0x341f341f,0x351f351f,0x341f341f,0x351f351f,0x3a2f3a2f,0x3c2f4c3f,0x3b2f3a2f,0x4c3f4c3f,0x3b2f3b2f,0x4c3f3c3f,0x3a2f3a2f,0x4c3f3c3f,0x888f888f,0x888f888f,0x999f777f,0x888f888f,0x888f888f,0x888f888f,0x888f888f,0x888f888f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f666f,0x777f777f,0x777f777f,0x777f777f,0x531f421f,0x421f421f,0x531f531f,0x531f421f,0x531f531f,0x421f421f,0x531f531f,0x421f421f,0xba1fba1f,0xaa1fa91f,0xcc1fcb1f,0xba1fba1f,0xcb1fcb1f,0xaa1fa91f,0xcb1fcb1f,0xa91faa1f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000eeef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x777f777f,0x888f888f,0x888f888f,0x888f888f,0x888f777f,0x888f888f,0x777f666f,0x777f777f,0x531f531f,0x632f631f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0x421f421f,0x531f531f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fdc1f,0xba1fba1f,0xa91faa1f,0xba1fba1f,0xa91f981f,0xbb1fba1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x666f777f,0x269f15cf,0x14af15cf,0x777f777f,0x777f888f,0x777f777f,0x14af02bf,0x777f777f,0x531f531f,0x531f531f,0x531f631f,0x531f531f,0x531f531f,0x531f531f,0x631f631f,0x531f531f,0xdc2fdc1f,0xcb1fba1f,0xdc2fdc2f,0xba1fcb1f,0xdc2fcb1f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fcb1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f777f,0x777f777f,0x14cf777f,0x158f777f,0x777f14bf,0x777f777f,0x777f777f,0x777f777f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f421f,0x531f531f,0x531f531f,0x531f632f,0xba1fcb1f,0xdc2fcc1f,0xba1fba1f,0xdc2fcb1f,0xba1fba1f,0xdc2fdc2f,0xba1fcb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xeeef0000,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f777f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x888f888f,0x888f888f,0x666f888f,0x531f531f,0x531f421f,0x531f531f,0x421f421f,0x531f531f,0x421f531f,0x531f531f,0x421f421f,0xbb1fcb1f,0xcb1fba1f,0xcc1fcc1f,0x981fa91f,0xcb1fba1f,0xa91fba1f,0xcc1fcc1f,0xa91faa1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xeeef0000,0xdddf0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x15cf777f,0x777f14bf,0x666f777f,0x26bf149f,0x777f777f,0x777f666f,0x421f421f,0x531f421f,0x421f421f,0x531f421f,0x421f421f,0x531f531f,0x531f421f,0x531f421f,0x991fa91f,0xdc2fba1f,0x981fba1f,0xba1fba1f,0x981fba1f,0xba1fba1f,0xba1fa91f,0xba1faa1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdddfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f888f,0x13cf777f,0x15cf14bf,0x14af14cf,0x777f777f,0x248f149f,0x888f888f,0x666f888f,0x632f631f,0x531f531f,0x531f531f,0x531f531f,0x632f531f,0x531f531f,0x632f632f,0x531f531f,0xdc2fdc2f,0xcc1fdc1f,0xcb1fcb1f,0xcb1fbb1f,0xdc2fdc1f,0xba1fcb1f,0xdc2fdc2f,0xcb1fcb1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0xdddfdddf,0xdddfffff,0xffffeeef,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdddfdddf,0x0000dddf,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x14af777f,0x777f14bf,0x777f777f,0x777f777f,0x666f777f,0x777f777f,0x777f777f,0x777f777f,0x531f531f,0x632f631f,0x531f531f,0x531f531f,0x531f421f,0x531f531f,0x531f531f,0x531f531f,0xba1fba1f,0xdc2fdc2f,0xcb1fcb1f,0xdc2fdc2f,0xba1faa1f,0xdc2fcc1f,0xcb1fcb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x0000eeef,0xdddfffff,0x00000000,0xeeefeeef,0xeeef0000,0xffffeeef,0xffffffff,0x0000ffff,0x0000eeef,0xdddfffff,0x00000000,0xdddfeeef,0x0000ffff,0x0000eeef,0x0000ffff,0x0000ffff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x249f777f,0x666f13bf,0x777f888f,0x14cf777f,0x15af777f,0x14af248f,0x888f888f,0x888f888f,0x531f531f,0x531f421f,0x531f531f,0x531f421f,0x531f531f,0x421f531f,0x531f531f,0x421f421f,0xcb1fcb1f,0xba1fa91f,0xcb1fdc2f,0xba1fba1f,0xba1fba1f,0xa91fba1f,0xba1fcb1f,0xa91fa91f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0xeeef0000,0xffffeeef,0xeeefdddf,0xeeefffff,0x0000ffff,0x0000dddf,0xffff0000,0x00000000,0xeeef0000,0x0000eeef,0xeeef0000,0xffff0000,0x0000dddf,0x0000dddf,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x777f777f,0x14bf777f,0x14af14af,0x248f14af,0x14af777f,0x777f258f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0x531f421f,0x632f632f,0x531f531f,0x631f632f,0xba1fba1f,0xdc1fba1f,0xa91f991f,0xcb1fba1f,0xcb1fba1f,0xdc2fdc2f,0xcb1fcb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0xffff0000,0xffffdddf,0xdddf0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdddf,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f888f,0x888f13af,0x777f888f,0x14af13bf,0x888f249f,0x14af888f,0x777f368f,0x531f531f,0x531f531f,0x531f632f,0x531f531f,0x531f531f,0x531f531f,0x531f531f,0x531f421f,0xdc2fdc2f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fcb1f,0xdc1fdc2f,0xcb1fba1f,0xcb1fcb1f,0xcb1faa1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xdddf0000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f666f,0x129f149f,0x777f129f,0x777f777f,0x888f888f,0x777f777f,0x249f777f,0x666f358f,0x421f421f,0x531f531f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0x421f421f,0x531f531f,0xba1faa1f,0xcb1fcb1f,0xba1fba1f,0xcb1fcc1f,0xba1faa1f,0xcb1fba1f,0x991f991f,0xcb1fba1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x12af777f,0x777f777f,0x14af12bf,0x777f14af,0x248f777f,0x777f248f,0x531f531f,0x421f421f,0x631f531f,0x421f421f,0x531f531f,0x531f531f,0x632f632f,0x421f531f,0xba1fba1f,0xa91f991f,0xdc2fdc2f,0x981fa91f,0xcc1fcb1f,0xcb1fcb1f,0xdc2fdc2f,0xa91fcb1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xdddf0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x888f777f,0x888f777f,0x12af12af,0x777f14af,0x139f12bf,0x777f248f,0x777f777f,0x888f888f,0x531f531f,0x632f631f,0x531f531f,0x531f531f,0x531f421f,0x531f531f,0x531f531f,0x631f531f,0xcb1fcb1f,0xdc2fdc2f,0xcb1fdc2f,0xba1fcb1f,0xcb1f991f,0xdc2fcb1f,0xcb1fbb1f,0xdc2fdc2f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x0000dddf,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x248f248f,0x777f248f,0x777f777f,0x888f888f,0x777f777f,0x777f777f,0x531f631f,0x531f531f,0x531f531f,0x531f531f,0x531f632f,0x531f531f,0x531f531f,0x421f531f,0xdc2fdc2f,0xba1fcb1f,0xcb1fdc2f,0xcc1fcb1f,0xdc1fdc2f,0xba1fba1f,0xcb1fcb1f,0xaa1fba1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x777f777f,0x777f777f,0x888f666f,0x777f888f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x421f421f,0x531f531f,0x531f421f,0x631f531f,0x531f531f,0x531f531f,0x421f421f,0x531f531f,0xba1fa91f,0xcb1fdc2f,0xba1faa1f,0xdc2fdc2f,0xba1fbb1f,0xdc2fcb1f,0xba1faa1f,0xdc2fdc1f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafedaf,0xdd9fdc9f,0xddafedaf,0xdc9fdc9f,0xddafddaf,0xddafdc9f,0xdd9fedaf,0xeeafedaf,0x239f228f,0x228f228f,0x23af239f,0x239f228f,0x23af239f,0x228f228f,0x239f239f,0x228f228f,0x58df57cf,0x57cf47cf,0x79df68df,0x58df57cf,0x79df69df,0x57cf46cf,0x68df68df,0x47cf57cf,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0xddafddaf,0xddafedaf,0xcc9fdc9f,0xcc9fcc9f,0xdd9fdd9f,0xedafdc9f,0xeeafdd9f,0xeeafeeaf,0x239f239f,0x23bf23af,0x23af23af,0x239f239f,0x228f228f,0x239f239f,0x228f127f,0x239f239f,0x69df68df,0x8adf8adf,0x79df79df,0x68df68df,0x47cf57cf,0x68df58df,0x47cf36cf,0x68df58df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fddaf,0xdd9fddaf,0xcc9fcc9f,0xdc9fcc9f,0xdd9fdc9f,0xedafdc9f,0xddafedaf,0xedafedaf,0x23af23af,0x239f239f,0x23af23af,0x239f239f,0x23af23af,0x23af23af,0x23af23af,0x239f23af,0x79df79df,0x68df68df,0x79df8adf,0x68df68df,0x79df79df,0x79df79df,0x8adf8adf,0x69df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd9fedaf,0xdd9fdd9f,0xdc9fdc9f,0xedafdd9f,0xdd9fdc9f,0xdd9fdc9f,0xddafedaf,0xdc9fddaf,0x239f239f,0x23af23af,0x239f239f,0x23af239f,0x239f228f,0x23af23af,0x239f239f,0x23af23bf,0x58df68df,0x79df79df,0x58df68df,0x79df68df,0x68df57cf,0x79df79df,0x58df68df,0x79df8adf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fdd9f,0xdc9fdd9f,0xdd9fdd9f,0xedafddaf,0xdd9fdc9f,0xdd9fdd9f,0xddafedaf,0xdc9fddaf,0x239f239f,0x239f228f,0x23af23af,0x227f228f,0x239f239f,0x228f239f,0x23af23af,0x228f228f,0x68df69df,0x68df57cf,0x79df79df,0x36cf46cf,0x68df58df,0x47cf58df,0x79df79df,0x46cf57cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd9fdc9f,0xcc9fdd9f,0xdc9fcc9f,0xeebfedaf,0xdc9fddaf,0xdc9fdc9f,0xdd9fdd9f,0xdd9fddaf,0x228f228f,0x23af238f,0x227f228f,0x239f228f,0x227f228f,0x239f239f,0x239f228f,0x239f228f,0x46cf47cf,0x79df57cf,0x36cf57cf,0x58df57cf,0x36cf57cf,0x68df58df,0x58df47cf,0x58df57cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xddafdc9f,0xdc9fddaf,0xdc9fdd9f,0xedbfdc9f,0xdd9fddaf,0xdd9fedaf,0xddafdc9f,0xddafddaf,0x23bf23af,0x23af23af,0x239f239f,0x239f239f,0x23bf23af,0x239f239f,0x23bf23bf,0x239f23af,0x8adf8adf,0x79df79df,0x68df68df,0x68df68df,0x8adf79df,0x68df69df,0x8adf8adf,0x68df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fddaf,0xcc9fddaf,0xdc9fdd9f,0xdc9fdc9f,0xddafddaf,0xddafedaf,0xddafdd9f,0xddafddaf,0x239f239f,0x23bf23af,0x239f23af,0x23af23af,0x239f228f,0x23af23af,0x239f239f,0x23af23af,0x58df58df,0x8adf8adf,0x69df79df,0x79df79df,0x58df57cf,0x79df79df,0x69df69df,0x79df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fdd9f,0xddafddaf,0xedafdd9f,0xddafddaf,0xdd9fddaf,0xedafdd9f,0xedafedaf,0xdd9fedaf,0x23af23af,0x239f228f,0x239f23af,0x239f228f,0x239f239f,0x228f239f,0x239f239f,0x228f228f,0x79df79df,0x58df47cf,0x69df79df,0x58df57cf,0x68df58df,0x47cf58df,0x68df68df,0x47cf47cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdc9fdc9f,0xdc9fdc9f,0xedafddaf,0xcc9fdd9f,0xdc9fedaf,0xddafdc9f,0xddafedaf,0xdd9fddaf,0x239f239f,0x23af239f,0x228f227f,0x239f239f,0x239f228f,0x23bf23bf,0x23af239f,0x23af23bf,0x68df58df,0x79df58df,0x46cf36cf,0x68df68df,0x69df57cf,0x8adf8adf,0x79df68df,0x8adf8adf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xdd9fcc9f,0xdd9fdd9f,0xedafdc9f,0xdd9fddaf,0xdd9fdd9f,0xcc8fdd9f,0xeebfedaf,0xdc9fedaf,0x23af23af,0x23af23af,0x23af23bf,0x239f23af,0x23af23af,0x239f239f,0x239f239f,0x239f228f,0x79df79df,0x79df79df,0x79df8adf,0x69df79df,0x79df79df,0x68df68df,0x68df69df,0x68df57cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafdd9f,0xddafddaf,0xdc9fdc9f,0xcc9fedaf,0xdc9fdc9f,0xdc9fdc9f,0xddafddaf,0xdd9fdc9f,0x228f228f,0x239f239f,0x239f239f,0x23af23af,0x228f228f,0x239f239f,0x228f228f,0x239f239f,0x57cf57cf,0x68df68df,0x58df58df,0x79df79df,0x57cf57cf,0x69df58df,0x46cf46cf,0x69df58df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xddafddaf,0xddafddaf,0xddafddaf,0xdc9fdd9f,0xdc9fcc8f,0xcc9fdc9f,0xdd9fdc9f,0xdd9fedaf,0x239f239f,0x228f227f,0x23af23af,0x227f228f,0x23af239f,0x23af239f,0x23bf23bf,0x228f239f,0x58df58df,0x46cf36cf,0x8adf79df,0x36cf47cf,0x79df68df,0x79df68df,0x8adf8adf,0x47cf69df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xddafedaf,0xddafdc9f,0xdcafddaf,0xdd9fdc9f,0xdc9fdc9f,0xdc9fdd9f,0xddafddaf,0xedafdd9f,0x239f23af,0x23bf23af,0x23af23af,0x239f239f,0x239f227f,0x23af23af,0x239f239f,0x23af23af,0x69df79df,0x8adf8adf,0x79df79df,0x68df68df,0x68df36cf,0x79df79df,0x68df68df,0x8adf79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafedaf,0xedafdd9f,0xddafddaf,0xcc9fdc9f,0xdd9fdc9f,0xddafdd9f,0xedafddaf,0xddafddaf,0x23af23af,0x239f239f,0x239f23af,0x23af239f,0x23af23bf,0x239f239f,0x23af239f,0x228f239f,0x89df8adf,0x68df68df,0x68df79df,0x79df69df,0x79df8adf,0x58df58df,0x79df68df,0x57cf58df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xedafeeaf,0xdd9fddaf,0xedafdc9f,0xdc9fddaf,0xddafdc9f,0xedafdd9f,0xddafdd9f,0xddafddaf,0x228f228f,0x239f23af,0x239f228f,0x23af23af,0x239f239f,0x23af239f,0x228f228f,0x23af23af,0x57cf47cf,0x68df79df,0x58df57cf,0x8adf79df,0x58df68df,0x79df69df,0x57cf57cf,0x79df79df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xeebfedbf,0xedbfeebf,0xedafedaf,0xeebffebf,0xfebfeebf,0xeebfeebf,0xfebfeebf,0xeebffebf,0x72bf72bf,0x72bf72bf,0x83cf83cf,0x72bf72bf,0x83cf83cf,0x72bf62af,0x83cf83cf,0x72af72bf,0xb3cfb3cf,0xb3cfb3cf,0xc5cfb4cf,0xb3cfb3cf,0xc5cfc5cf,0xb3cfa3bf,0xc4cfc4cf,0xb3bfb3cf,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9, +0xdcafedaf,0xddafddaf,0xdcafddaf,0xcc9fdc9f,0xdc9fdc9f,0xddafdd9f,0xedbfdc9f,0xedafedbf,0x83cf83cf,0x94df94df,0x83cf83cf,0x73cf73cf,0x72af72bf,0x73cf72bf,0x72af62af,0x73cf72bf,0xc5cfc4cf,0xc6dfc6df,0xc5cfc5cf,0xb4cfb4cf,0xb3bfb3cf,0xb4cfb3cf,0xb3bfa3af,0xb4cfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8, +0xdc9fcc8f,0xcb8fdc8f,0xcc8fcc8f,0xcb8fcc8f,0xcc7fcc8f,0xcb7fcb7f,0xcc9fcc8f,0xcb7fcb8f,0x84cf83cf,0x73cf73cf,0x84cf84df,0x73cf83cf,0x84cf83cf,0x83cf83cf,0x94df94df,0x83cf83cf,0xc5dfc5cf,0xb4cfb4cf,0xc5dfc6df,0xb4cfc4cf,0xc5dfc5cf,0xc5cfc5cf,0xc6dfc6df,0xc5cfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8, +0xfecfcc8f,0xeebfedbf,0xfecfcc7f,0xfebffebf,0xedbfeebf,0xfebfbb6f,0xedbfedbf,0xfebffebf,0x72bf83cf,0x84cf83cf,0x73bf73cf,0x84cf83cf,0x73cf72bf,0x84cf84cf,0x72bf83cf,0x84cf94df,0xb3cfc4cf,0xc5dfc5cf,0xb4cfb4cf,0xc5dfb4cf,0xb4cfb3cf,0xc5dfc5df,0xb3cfc4cf,0xc5cfc6df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8, +0xddafcc8f,0xdc9fdd9f,0xddafcc7f,0xedafedaf,0xcb7fdc9f,0xdc9fedaf,0xedbfddaf,0xddafdc9f,0x73cf83cf,0x83cf72bf,0x83cf83cf,0x62af62af,0x83cf72bf,0x72bf72bf,0x83cf83cf,0x62af72bf,0xb4cfc5cf,0xc4cfb3cf,0xc5cfc5cf,0xa3bfa3bf,0xc4cfb3cf,0xb3bfb3cf,0xc5cfc5cf,0xa3bfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8, +0xdc9fddaf,0xdd9fdc9f,0xedafcc7f,0xeebfddaf,0xcb7fddaf,0xdd9fedaf,0xddafdd9f,0xcb7fddaf,0x62af72af,0x84cf72bf,0x62af72bf,0x72bf72bf,0x62af72bf,0x73cf72bf,0x72bf72af,0x73bf72bf,0xa3bfb3bf,0xc5dfb3cf,0xa3bfb3cf,0xb3cfb3cf,0xa3bfb3cf,0xb4cfb3cf,0xb3cfa3bf,0xb4cfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8, +0xcc8fddaf,0xcc8fcc8f,0xcc8fcc7f,0xedbfddbf,0xcb7fbb7f,0xedafcc8f,0xdd9fddaf,0xcb7fddaf,0x94df94df,0x83cf83cf,0x83cf83cf,0x83cf73cf,0x94df83cf,0x73cf83cf,0x94df94df,0x83cf83cf,0xc6dfc6df,0xc5cfc5cf,0xb4cfb4cf,0xc4cfb4cf,0xc6dfc5cf,0xb4cfc5cf,0xc6dfc6df,0xc4cfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9, +0xfecfcb7f,0xedbfeebf,0xeebffecf,0xcc8fcc8f,0xeebfeebf,0xcc8ffebf,0xcc8fcc9f,0xeebfcb7f,0x72bf72bf,0x94df94df,0x83cf83cf,0x84cf84cf,0x72bf72bf,0x84cf83cf,0x83cf83cf,0x84cf84cf,0xb3cfb3cf,0xc6dfc6df,0xc5cfc5cf,0xc5cfc5df,0xb3cfb3cf,0xc5dfc5cf,0xc5cfc5cf,0xc5cfc5df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8, +0xddafeebf,0xddafedaf,0xcb7fddaf,0xeebfeebf,0xdd9fddaf,0xdc8fedaf,0xeebffebf,0xeebfcb7f,0x83cf83cf,0x72bf72af,0x83cf84cf,0x73bf72bf,0x73cf72bf,0x72af72bf,0x73cf83cf,0x72bf72bf,0xc5cfc5cf,0xb3cfb3bf,0xc5cfc5cf,0xb4cfb3cf,0xb4cfb3cf,0xa3bfb3cf,0xb4cfb4cf,0xb3bfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xedafdc9f,0xedafedaf,0xcb7fdd9f,0xddafedbf,0xddafedaf,0xcb6fdc9f,0xddafedbf,0xddafcb7f,0x73cf72bf,0x83cf73bf,0x62af62af,0x83cf73cf,0x83cf72bf,0x94df94df,0x83cf73cf,0x94df94df,0xb4cfb3cf,0xc5cfb4cf,0xa3bfa3bf,0xc4cfb4cf,0xc5cfb3cf,0xc6dfc6df,0xc5cfb4cf,0xc6dfc6df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8, +0xcb7fdd9f,0xcb7fcb7f,0xcc8fdc9f,0xdd9fdd9f,0xdd9fedbf,0xcc8fddaf,0xcb7fddaf,0xcb7fcb7f,0x84cf84cf,0x83cf83cf,0x84cf94df,0x83cf83cf,0x83cf84cf,0x83cf73cf,0x83cf83cf,0x83cf72bf,0xc5dfc5cf,0xc5cfc5cf,0xc5dfc6df,0xc5cfc5cf,0xc5cfc5df,0xc4cfb4cf,0xb4cfc5cf,0xc4cfb3cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8, +0xeebfcb7f,0xedafeebf,0xbb6fcc8f,0xcb7fcb7f,0xcb7fdd9f,0xeebfcb7f,0xedafcb7f,0xeebfeebf,0x72bf72bf,0x83cf83cf,0x73bf72bf,0x83cf83cf,0x72bf72bf,0x83cf72bf,0x62af62af,0x83cf73bf,0xb3cfb3cf,0xc4cfc4cf,0xb4cfb3cf,0xc5cfc5cf,0xb3cfb3cf,0xc5cfb3cf,0xa3bfa3bf,0xc5cfb4cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xedbfeebf,0xcc8fedaf,0xeebfeebf,0xeebfeebf,0xeecfcb7f,0xddafedbf,0xedbfcc8f,0xedbfeebf,0x72bf73bf,0x62af62af,0x84df84cf,0x62af72bf,0x83cf83cf,0x83cf83cf,0x94df94df,0x72af83cf,0xb3cfb4cf,0xa3bfa3bf,0xc6dfc5cf,0xa3bfb3bf,0xc5cfb4cf,0xc5cfc4cf,0xc6dfc6df,0xa3bfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8, +0xedbfedbf,0xcb7fdc9f,0xddafdcaf,0xddafdd9f,0xddafcb7f,0xdc9fdc9f,0xedbfcb7f,0xddafddaf,0x83cf83cf,0x94df94df,0x83cf84cf,0x73cf83cf,0x73cf62af,0x84cf83cf,0x73cf73cf,0x94df84cf,0xc5cfc5cf,0xc6dfc6df,0xc5cfc5cf,0xb4cfc4cf,0xb4cfa3bf,0xc5dfc5cf,0xb4cfb4cf,0xc6dfc5df,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8, +0xcc8fcc9f,0xcc8fedaf,0xeebfddaf,0xbb7fddbf,0xcc7fedbf,0xedafddaf,0xbb6fcc8f,0xbb6fddaf,0x84df84df,0x73cf83cf,0x83cf84cf,0x83cf83cf,0x83cf94df,0x72bf72bf,0x83cf83cf,0x72bf73bf,0xc6dfc6df,0xb4cfc4cf,0xc4cfc5df,0xc5cfc5cf,0xc5cfc6df,0xb3cfb3cf,0xc5cfc4cf,0xb3cfb4cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9, +0xeebfeebf,0xddafcc8f,0xcc8fcc8f,0xedafcb7f,0xdd9fedaf,0xcc8fcb7f,0xeebfedbf,0xeebfcb7f,0x72bf72af,0x83cf84cf,0x73bf72bf,0x94df84cf,0x72bf73cf,0x84cf83cf,0x72bf72bf,0x84cf83cf,0xb3cfb3bf,0xc4cfc5cf,0xb4cfb3cf,0xc6dfc5df,0xb3cfb4cf,0xc5cfc5cf,0xb3cfb3cf,0xc5dfc5cf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xddafeeaf,0xcb7fcc8f,0xddafedaf,0xcb7feebf,0xedafdc9f,0xddafddaf,0xddafcb7f,0xddafddaf,0x268f268f,0x268f268f,0x279f279f,0x268f268f,0x279f279f,0x268f268f,0x279f279f,0x268f268f,0xe73fe72f,0xe72fe72f,0xe84fe83f,0xe72fe72f,0xe83fe83f,0xe72fe61f,0xe83fe83f,0xe72fe72f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x25f825f8,0x25f825f8,0x25f825f8,0x36f936f9,0x36f936f9, +0xcb7fedaf,0xedafddaf,0xdc9fcb7f,0xcb7fdc9f,0xddafdd9f,0xdc9fdc9f,0xcb7fdc9f,0xeebfcb7f,0x279f279f,0x28af28af,0x279f27af,0x279f279f,0x268f268f,0x279f268f,0x268f157f,0x279f268f,0xe83fe83f,0xe84fe84f,0xe83fe84f,0xe73fe73f,0xe72fe72f,0xe73fe72f,0xe72fe61f,0xe73fe73f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f836f9,0x25f825f8,0x15f815f8, +0xedafcc8f,0xcb7fdd9f,0xdc9fcb7f,0xdc9fcc9f,0xdc9fcb7f,0xedafcc9f,0xeeafcb7f,0xcb7fedaf,0x27af27af,0x279f279f,0x27af28af,0x279f279f,0x27af279f,0x279f279f,0x28af28af,0x279f279f,0xe84fe84f,0xe73fe73f,0xe84fe84f,0xe73fe83f,0xe84fe83f,0xe83fe83f,0xe84fe84f,0xe83fe83f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f925f8,0x25f825f8,0x25f825f8,0x36f915f8,0x15f836f9,0x15f815f8, +0xdd9fcc8f,0xedbfcb7f,0xcb7fedbf,0xddafdd9f,0xdc9fdc8f,0xcb7fdd9f,0xedafedbf,0xdc9fdd9f,0x268f279f,0x27af279f,0x278f279f,0x27af279f,0x279f268f,0x27af27af,0x268f279f,0x27af28af,0xe73fe83f,0xe84fe84f,0xe73fe73f,0xe84fe83f,0xe73fe72f,0xe84fe84f,0xe73fe83f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8,0x36f915f8,0x25f836f9,0x36f925f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x25f825f8, +0xcb7fdd9f,0xddafedbf,0xdc8fdc9f,0xeebfeebf,0xcc8fcb7f,0xedbfcc8f,0xedafedaf,0xddafdd9f,0x279f279f,0x279f268f,0x279f279f,0x267f268f,0x279f268f,0x268f268f,0x279f279f,0x268f268f,0xe73fe83f,0xe83fe72f,0xe84fe84f,0xe61fe61f,0xe83fe72f,0xe72fe72f,0xe84fe84f,0xe61fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8,0x36f936f9,0x15f836f9,0x15f815f8,0x15f815f8,0x36f915f8,0x25f825f8,0x15f825f8,0x15f825f8, +0xcb7fdc9f,0xddafdc9f,0xdc8fddaf,0xcb7fcb7f,0xddafedaf,0xcb7fdd9f,0xdd9fdc9f,0xdc9fcc9f,0x267f268f,0x27af268f,0x267f268f,0x268f268f,0x267f268f,0x279f268f,0x268f268f,0x278f268f,0xe61fe72f,0xe84fe72f,0xe61fe72f,0xe73fe72f,0xe61fe72f,0xe73fe73f,0xe72fe61f,0xe73fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8,0x25f836f9,0x15f825f8,0x25f825f8,0x25f825f8,0x15f836f9,0x15f815f8,0x36f915f8,0x15f815f8, +0xdd9fcb7f,0xedbfdd9f,0xdc8fdc9f,0xedafcb7f,0xdd9fcb7f,0xdc9fedaf,0xcc8fcc8f,0xcb7fedbf,0x28af28af,0x279f27af,0x279f279f,0x279f279f,0x28af27af,0x279f279f,0x28af28af,0x279f279f,0xe84fe84f,0xe84fe84f,0xe83fe83f,0xe83fe73f,0xe84fe84f,0xe73fe83f,0xe84fe84f,0xe83fe83f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x799f799f,0x00000000,0x799f0000,0x0000799f,0x00000000,0x799f799f,0x00000000,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x25f825f8,0x15f815f8,0x15f815f8,0x36f915f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9, +0xcb7fedaf,0xdc8fedbf,0xcb7fcb7f,0xdc9fdc9f,0xedafcb7f,0xddafddaf,0xedafddaf,0xedafcb7f,0x268f268f,0x28af28af,0x279f279f,0x27af27af,0x268f268f,0x27af279f,0x279f279f,0x27af28af,0xe73fe73f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xe72fe72f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x799f0000,0xdddfffff,0x0000567f,0xffff799f,0x567fdddf,0x799f0000,0xdddfffff,0x0000567f,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8,0x25f815f8,0x36f936f9,0x25f836f9,0x25f825f8,0x25f815f8,0x36f925f8,0x25f836f9,0x15f825f8, +0xdc9fdc9f,0xddafcb7f,0xedafedaf,0xdc9fcc8f,0xcb7fddaf,0xdd9fcb7f,0xcb7feebf,0xdc9fddaf,0x279f279f,0x268f268f,0x279f27af,0x278f268f,0x279f268f,0x268f268f,0x279f279f,0x268f268f,0xe83fe83f,0xe72fe72f,0xe83fe84f,0xe73fe72f,0xe73fe72f,0xe61fe72f,0xe73fe83f,0xe72fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x799f0000,0xbccfdddf,0x0000567f,0xdddf799f,0x567fbccf,0x799f0000,0xbccfdddf,0x0000567f,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x25f825f8,0x25f836f9,0x25f825f8,0x25f825f8,0x15f825f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xdd9fdc9f,0xdc9fcc8f,0xddafddaf,0xdc9fcb7f,0xdc9fedaf,0xcb7fcc9f,0xcc8fcb7f,0xdc9fedaf,0x279f268f,0x27af278f,0x268f267f,0x279f279f,0x279f268f,0x28af28af,0x279f279f,0x28af28af,0xe73fe72f,0xe84fe73f,0xe61fe61f,0xe83fe73f,0xe83fe72f,0xe84fe84f,0xe83fe73f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x567f567f,0x00000000,0x567f0000,0x0000567f,0x00000000,0x567f567f,0x00000000,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8,0x15f815f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f925f8,0x25f836f9,0x25f825f8, +0xcb7fdc9f,0xdc9fdc9f,0xedafddaf,0xddafcb7f,0xdc9fddaf,0xeebfcb7f,0xcc8fddaf,0xdd9fedaf,0x28af27af,0x279f279f,0x27af28af,0x279f279f,0x27af28af,0x279f279f,0x279f279f,0x279f268f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xe83fe83f,0xe84fe84f,0xe83fe73f,0xe83fe83f,0xe83fe72f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8,0x25f815f8,0x36f936f9,0x25f836f9,0x36f925f8,0x15f836f9,0x36f915f8,0x15f825f8,0x15f815f8, +0xeebfcb7f,0xedafeebf,0xedafdd9f,0xcb7fedaf,0xeebfdc9f,0xeebfcb7f,0xcb7fddaf,0xddafddaf,0x268f268f,0x279f279f,0x278f268f,0x279f279f,0x268f268f,0x279f268f,0x267f267f,0x279f278f,0xe72fe72f,0xe83fe83f,0xe73fe73f,0xe83fe84f,0xe72fe72f,0xe83fe72f,0xe61fe61f,0xe83fe73f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0xcc8fddaf,0xedafcb7f,0xcc8fcc8f,0xdc9fcb7f,0xcb7fdc9f,0xdd9feebf,0xddafdc9f,0xcc8fcb7f,0x268f278f,0x268f267f,0x28af27af,0x267f268f,0x279f279f,0x279f279f,0x28af28af,0x268f279f,0xe73fe73f,0xe61fe61f,0xe84fe84f,0xe61fe72f,0xe84fe83f,0xe83fe83f,0xe84fe84f,0xe61fe83f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8,0x36f936f9,0x36f936f9,0x36f936f9,0x36f936f9,0x25f825f8,0x25f825f8,0x15f815f8,0x15f815f8, +0xedafedaf,0xcb7feebf,0xddafcb7f,0xcb7fdd9f,0xcc8fdc9f,0xddafdd9f,0xcb7fedaf,0xddafedbf,0x279f279f,0x28af28af,0x279f27af,0x279f279f,0x279f267f,0x27af279f,0x279f279f,0x28af27af,0xe83fe83f,0xe84fe84f,0xe83fe84f,0xe73fe83f,0xe73fe61f,0xe84fe83f,0xe73fe73f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8,0x15f815f8,0x15f815f8,0x25f815f8,0x36f925f8,0x36f936f9,0x36f936f9,0x25f836f9,0x15f825f8, +0xedafedaf,0xeebfdc9f,0xddafcb7f,0xcb7fdc9f,0xcb7fcc8f,0xddafcc8f,0xedbfcb7f,0xddafdd9f,0x28af28af,0x279f279f,0x279f27af,0x279f279f,0x27af28af,0x268f268f,0x279f279f,0x268f278f,0xe84fe84f,0xe73fe83f,0xe83fe84f,0xe84fe83f,0xe84fe84f,0xe72fe72f,0xe83fe83f,0xe72fe73f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9,0x25f825f8,0x36f936f9,0x36f936f9,0x15f815f8,0x15f815f8,0x25f825f8,0x25f825f8,0x36f936f9, +0xddafedaf,0xcb7fdd9f,0xedafddaf,0xcb7fdd9f,0xddafddaf,0xcb7fdc9f,0xddafdd9f,0xedafddaf,0x268f268f,0x279f27af,0x278f268f,0x28af27af,0x268f279f,0x27af279f,0x268f268f,0x27af27af,0xe72fe72f,0xe83fe84f,0xe73fe72f,0xe84fe84f,0xe73fe73f,0xe84fe83f,0xe72fe72f,0xe84fe84f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8,0x15f836f9,0x15f815f8,0x15f815f8,0x15f815f8,0x15f815f8, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x999f999f,0x899f899f,0xaaaf9aaf,0x999f999f,0xaaafaaaf,0x899f888f,0xaaafaaaf,0x899f899f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xaaaf9aaf,0xbbbfbbbf,0xaaafabbf,0x9aaf9aaf,0x899f899f,0x9aaf999f,0x899f788f,0x9aaf999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xabbfabbf,0x9aaf9aaf,0xabbfbbbf,0x9aafaaaf,0xabbfaaaf,0xaaafaaaf,0xbbbfbbbf,0xaaafaaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f9aaf,0xabbfaaaf,0x999f9aaf,0xabbf9aaf,0x9aaf999f,0xabbfabbf,0x999f9aaf,0xabbfbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x9aafaaaf,0x9aaf999f,0xaaafaaaf,0x888f888f,0xaaaf999f,0x899f999f,0xaaafaaaf,0x888f899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x888f899f,0xabbf999f,0x888f999f,0x999f999f,0x888f999f,0x9aaf999f,0x999f899f,0x9aaf899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xbbbfbbbf,0xaaafabbf,0x9aaf9aaf,0xaaaf9aaf,0xbbbfabbf,0x9aafaaaf,0xbbbfbbbf,0xaaafaaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f999f,0xbbbfbbbf,0xaaafaaaf,0xabbfabbf,0x999f899f,0xabbfaaaf,0xaaafaaaf,0xabbfabbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xaaafaaaf,0x999f899f,0xaaafabbf,0x999f999f,0x9aaf999f,0x899f999f,0x9aaf9aaf,0x899f899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x9aaf999f,0xabbf9aaf,0x888f888f,0xaaaf9aaf,0xaaaf999f,0xbbbfbbbf,0xaaaf9aaf,0xbbbfbbbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xabbfabbf,0xaaafaaaf,0xabbfbbbf,0xaaafaaaf,0xabbfabbf,0xaaaf9aaf,0x9aafaaaf,0x9aaf899f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f899f,0xaaafaaaf,0x999f999f,0xaaafaaaf,0x999f899f,0xaaaf999f,0x888f888f,0xaaaf9aaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f999f,0x888f888f,0xbbbfabbf,0x888f899f,0xaaaf9aaf,0xaaafaaaf,0xbbbfbbbf,0x899faaaf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xaaafaaaf,0xbbbfbbbf,0xaaafabbf,0x9aafaaaf,0x9aaf888f,0xabbfaaaf,0x9aaf9aaf,0xbbbfabbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xbbbfbbbf,0x9aaf9aaf,0xaaafabbf,0xaaafaaaf,0xabbfbbbf,0x999f999f,0xaaafaaaf,0x899f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0x999f899f,0xaaafabbf,0x999f899f,0xbbbfabbf,0x999f9aaf,0xabbfaaaf,0x999f899f,0xabbfabbf,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f999f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f333f,0x777f777f,0x777f333f,0x777f999f,0x777f333f,0x777f333f,0x777f999f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f, +0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0x637f637f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f,0xfa0fc00f,0xf50ffa0f,0xc00ff00f,0xc00fc00f,0xf00ff00f,0xf00ff50f,0xc00ff00f,0xc00fc00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x333f777f,0x333f333f,0x777f999f,0x777f777f,0x777f333f,0x777f333f,0x777f777f,0x777f777f,0x333f999f,0x333f333f,0x777f999f,0x777f777f,0x777f333f,0x777f333f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f,0xff0ff50f,0xf50fff0f,0xf00ff00f,0xf00fc00f,0xf50ff00f,0xf50fff0f,0xf00ff00f,0xc00fc00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f333f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f999f,0x777f333f,0x333f333f,0x777f777f,0x777f777f,0x777f777f, +0x333f777f,0x999f777f,0x999f999f,0x777f333f,0x333f333f,0x777f999f,0x333f999f,0x777f777f,0x333f777f,0x999f777f,0x999f999f,0x777f333f,0x333f333f,0x777f999f,0x333f999f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f,0xfa0ff50f,0xf50fff0f,0xf00fc00f,0xf50ff00f,0xf50ff00f,0xfa0fff0f,0xf00fc00f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x333f777f,0x777f777f, +0x999f777f,0x333f333f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x333f777f,0x777f777f,0x999f777f,0x333f333f,0x777f777f,0x333f999f,0x999f999f,0x777f777f,0x333f777f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f,0xf00ff00f,0xf00ff50f,0xf50ff50f,0xff0ffa0f,0xf50ff50f,0xf50ff50f,0xf50ff50f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0x777f333f,0x777f777f,0x777f777f,0x777f333f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0x777f333f,0x777f777f,0x999f999f,0x777f333f,0x999f333f,0x333f777f,0x777f333f,0x333f777f,0x777f333f, +0x333f777f,0x999f999f,0x777f333f,0x999f333f,0x333f777f,0x777f333f,0x333f777f,0x777f333f,0x333f333f,0x999f999f,0x777f333f,0x999f333f,0x333f777f,0x777f333f,0x333f777f,0x777f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f,0xc00ff00f,0xf50ff00f,0xf50fff0f,0xf50ff50f,0xff0ffa0f,0xff0ff50f,0xfa0fff0f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x333f777f,0x777f777f,0x777f333f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x333f777f,0x777f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f777f,0x999f333f,0x777f999f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f777f,0x999f333f,0x777f999f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f999f,0x999f333f,0x333f999f, +0x999f777f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f999f,0x999f333f,0x333f999f,0x999f999f,0x777f777f,0x777f333f,0x777f333f,0x333f777f,0x777f999f,0x999f333f,0x333f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f,0xf00ff00f,0xff0ffa0f,0xf50ff50f,0xf00fc00f,0xf00ff00f,0xfa0fc00f,0xf50ffa0f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f, +0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x999f777f, +0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x999f777f,0x777f777f,0x777f777f,0x333f333f,0x777f333f,0x999f777f,0x333f333f,0x777f999f,0x999f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf00ff00f,0xf50ff00f,0xf00ff00f,0xf00ffa0f, +0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x333f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f, +0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f, +0x777f777f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f,0x333f333f,0x333f777f,0x999f999f,0x333f999f,0x333f777f,0x333f999f,0x777f777f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f,0xc00fc00f,0xf50ff00f,0xf50ffa0f,0xc00fc00f,0xf50ff50f,0xc00ff00f,0xfa0ff00f,0xfa0fff0f, +0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x999f777f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x777f777f,0x999f777f,0x999f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x777f777f,0x999f777f,0x999f333f,0x999f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x333f777f,0x999f777f,0x999f333f,0x333f777f,0x777f777f,0x777f777f, +0x777f777f,0x999f333f,0x333f777f,0x999f777f,0x999f333f,0x333f777f,0x777f777f,0x777f777f,0x999f999f,0x999f333f,0x333f777f,0x999f777f,0x999f333f,0x333f777f,0x777f777f,0x333f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f,0xc00fc00f,0xfa0ff50f,0xfa0fff0f,0xf00ff00f,0xff0ffa0f,0xc00ff50f,0xf50ff00f,0xf50ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f333f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x999f333f,0x777f777f,0x777f333f,0x999f777f,0x777f333f,0x777f777f, +0x777f777f,0x777f333f,0x999f333f,0x777f777f,0x777f333f,0x999f777f,0x777f333f,0x777f333f,0x777f777f,0x777f333f,0x999f333f,0x777f777f,0x777f333f,0x999f777f,0x777f333f,0x999f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xf50ff50f,0xf00ff00f,0xff0ff50f,0xc00ff50f,0xf00fc00f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x777f999f,0x777f777f, +0x777f333f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x333f999f,0x777f999f,0x777f333f,0x777f999f,0x333f999f,0x777f777f,0x333f333f,0x777f777f,0x333f999f,0x777f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f,0xf50ff00f,0xf00ff50f,0xf00ff00f,0xf00fc00f,0xf50ff50f,0xf00ff50f,0xfa0ff00f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x333f333f,0x777f777f,0x777f777f, +0x333f999f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x333f333f,0x333f777f,0x777f777f,0x333f999f,0x777f777f,0x333f777f,0x333f333f,0x999f999f,0x333f333f,0x333f777f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f,0xfa0ff00f,0xf50fff0f,0xfa0ff50f,0xf00ff50f,0xf00ff00f,0xf50ff00f,0xff0ffa0f,0xf00ffa0f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x999f777f,0x999f999f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x999f999f,0x777f777f,0x777f777f, +0x333f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x999f999f,0x999f777f,0x777f777f,0x333f777f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x999f999f,0x999f777f,0x333f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f,0xff0ff00f,0xf50fff0f,0xff0fff0f,0xf00ffa0f,0xf00fc00f,0xf50ff00f,0xff0fff0f,0xf00ff50f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x333f999f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x333f777f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x777f777f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x777f777f, +0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x777f777f,0x999f777f,0x333f333f,0x777f999f,0x777f777f,0x333f999f,0x333f333f,0x777f777f,0x999f999f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f,0xf50ff00f,0xf50ffa0f,0xf50ff50f,0xf00ff50f,0xf50ff50f,0xf50ff00f,0xf50ffa0f,0xf00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x999f777f,0x777f777f,0x777f777f,0x999f777f,0x999f999f,0x777f777f,0x777f777f,0x777f777f,0x999f999f,0x777f333f,0x777f777f,0x999f333f,0x999f999f,0x777f333f,0x777f777f, +0x777f777f,0x999f333f,0x333f333f,0x777f777f,0x999f333f,0x999f999f,0x333f333f,0x777f777f,0x777f777f,0x999f333f,0x333f333f,0x777f777f,0x999f333f,0x999f999f,0x333f333f,0x777f777f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f,0xf00fc00f,0xf00ff50f,0xf00fc00f,0xf50ff00f,0xfa0ffa0f,0xf00ff50f,0xf00ff50f,0xc00ff00f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f, +0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f777f,0x777f999f,0x777f777f,0x777f999f,0x777f777f,0x777f999f,0x777f777f, +0x777f777f,0x777f999f,0x999f999f,0x777f777f,0x777f333f,0x777f777f,0x999f999f,0x777f333f,0x777f777f,0x777f333f,0x999f999f,0x777f777f,0x777f333f,0x777f777f,0x999f999f,0x777f333f,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff, +0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ff637f,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xd7ffd7ff,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f,0xf00fc00f,0xf00ff50f,0xf00ff00f,0xc00fc00f,0xf50ffa0f,0xf00ff00f,0xf00ff00f,0xc00fc00f, +0 }; diff --git a/src/terrain_5551.h b/src/terrain_5551.h new file mode 100755 index 0000000..95e42b0 --- /dev/null +++ b/src/terrain_5551.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.20 + * PVRTC Library v 1.106. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_5551[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00008011, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f800, /* dwRBitMask */ +0x000007c0, /* dwGBitMask */ +0x0000003e, /* dwBBitMask */ +0x00000001, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x94a594a5,0x842194a5,0x8c638421,0x8c637bdf,0x94a59ce7,0x84218c63,0x84218c63,0x8c63739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x9353bc17,0x7a8f9353,0xbc177a8f,0x93539353,0x7a8f7a8f,0x7a8f59cb,0xbc177a8f,0xbc177a8f,0x75937593,0x650f7593,0x6d51650f,0x6d515ccd,0x75937dd5,0x650f6d51,0x650d6d4f,0x6d515489, +0x9c13bcd9,0x9c139c13,0xbcd99c13,0xb497bcd9,0xbcd99c13,0xbcd9bcd9,0xbcd9bcd9,0x9c13bcd9,0xc631ce73,0xc631c631,0xce73c631,0xce73ce73,0xce73c631,0xc631ce73,0xc631c631,0xad6bc631,0x84218421,0x84218421,0x84218421,0x94a594a5,0x94a57bdf,0x84218421,0x84218421,0x84218421,0x924d9a4d,0xce739a4d,0x9a4f9a4d,0xa28f920d,0xaa8f9a4d,0xd6b58a0d,0xaa8f9a4d,0x9a4d9a4d, +0xc9c5da07,0xa185b1c5,0xc9c5da07,0xa185b1c5,0xc9c5da07,0xa185b1c5,0xc9c5da07,0xa185b1c5,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x8c6394a5,0x94a5a529,0x84219ce7,0x84218c63,0xad6b7bdf,0x94a5a529,0x8c638421,0x8c638421,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x93537a8f,0x7a8f59cb,0x93537a8f,0x59cb8421,0xbc177a8f,0x7a8f9353,0x93537a8f,0x59cb59cb,0x6d517593,0x85958dd7,0x59cb8595,0x650f6d4f,0x96195ccd,0x759395d9,0x6d51650d,0x6d51650f, +0xbcd9bcd9,0x72cfb497,0xb497b497,0x9c139c13,0x9c139c13,0xb4979c13,0xb4979c13,0x9c13bcd9,0xad6bce73,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b,0xad6b8421,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b,0x79cb79cb,0xe739820b,0x79cbb2d1,0x61896989,0x71cb79cb,0xd6b5820b,0x79cb9a4d,0x79cb79cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4e490000,0x00000000,0x00000000, +0xbdefa529,0x8421b5ad,0x8c638c63,0x94a594a5,0x9ce794a5,0xad6bad6b,0x739d8421,0xb5ad8421,0x6b5b7bdf,0x739d739d,0x739d6b5b,0x739d739d,0x739d8c63,0x7bdf7bdf,0x8c637bdf,0x7bdf7bdf,0x7a8fbc17,0x59cb7a8f,0x7a8fbc17,0x7a8f7a8f,0x7a8fbc17,0x7a8f7a8f,0x59cb59cb,0x7a8fbc17,0x59cb8dd7,0x650f9e5b,0x59cb6d4f,0x59cb7591,0x7dd57593,0x96199619,0x548b59cb,0x59cb650d, +0xbcd9bcd9,0x9c139c13,0x9c139c13,0xb497b497,0xbcd9bcd9,0xb497bcd9,0xbcd972cf,0x9c13bcd9,0x9ce7ce73,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b,0x9ce78421,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b,0x8a0d79cb,0xd6b56989,0x79cb9a4d,0x718979cb,0x79cb79cb,0xd6b579cb,0x920d820b,0x8a0d79cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91455295,0x8c63da07,0x00015295,0x52950001,0x91458c63,0x5295da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x4e494e49,0x00000000,0x00000000,0x03014e49,0x00000301,0x00000000, +0x8421739d,0x94a58c63,0x9ce794a5,0x7bdf7bdf,0x84217bdf,0x94a58c63,0x8c638c63,0x7bdf8c63,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0x8c637bdf,0x7bdf7bdf,0x739d739d,0x739d739d,0x7bdf739d,0x6b5b9353,0x7a8fbc17,0x59cb9353,0xbc177a8f,0x93539353,0x93537a8f,0xbc177a8f,0x7a8f9353,0x6b5b59cb,0x59cb59cb,0x59cb7591,0x59cb59cb,0x59cb5ccd,0x59cb6d51,0x59cb7a8f,0x7a8f59cb, +0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x72cf72cf,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf72cf,0xb5adce73,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529,0xb5ad8421,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529,0xbdefbdef,0xd6b5b5ad,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xdef7b5ad,0xb5adb5ad,0xbdefb5ad, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x9145a985,0x52959145,0x9145a985,0x91455295,0x00015295,0x91459145,0x91455295,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x03014e49,0x4e490000,0x03014e49,0x03010000,0x0000930b,0x00000000, +0x8421a529,0x8421ad6b,0xad6bad6b,0xad6b8c63,0x739dbdef,0xa5298421,0x7bdfad6b,0x8c638c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x7a8f9353,0xbc179353,0x935359cb,0x7a8f7a8f,0x59cb9353,0x6b5b7a8f,0x93537a8f,0x7a8f59cb,0x7a8f9353,0xbc179353,0x935359cb,0x7a8f7a8f,0x59cb59cb,0x6b5b59cb,0x93537a8f,0x7a8f59cb, +0x9c13bcd9,0x9c139c13,0xbcd99c13,0x9c13bcd9,0x9c13bcd9,0x72cf9c13,0xb497b497,0xbcd9b497,0xb5adce73,0xa529b5ad,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad,0xb5ad8421,0xa529b5ad,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad,0x9a4d8a0d,0x9a4d9a4d,0x924d9a4d,0xd6b59a4d,0xaa8faa8f,0x9a4da24f,0x9a4d9a4d,0xd6b59a4d, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xda07da07,0xa985da07,0xda075295,0xa9855295,0xda075295,0x00010001,0xda075295,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x4e490000,0x0301930b,0x00000301,0x03010301,0x930b5981,0x0301930b,0x00000000, +0x9ce79ce7,0xa5297bdf,0x94a58421,0x9ce794a5,0x94a58421,0x84218c63,0x8c637bdf,0x94a58c63,0x739d739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x6b5b7bdf,0x7bdf7bdf,0x739d739d,0x7bdf6b5b,0x59cb7a8f,0x93539353,0x93537a8f,0x59cb59cb,0x7a8f59cb,0x59cb7a8f,0x7a8f7a8f,0xbc177a8f,0x59cb7a8f,0x93539353,0x93537a8f,0x59cb59cb,0x7a8f59cb,0x59cb7a8f,0x7a8f7a8f,0xbc177a8f, +0x9c139c13,0xb49772cf,0xb497b497,0x9c13bcd9,0xb497b497,0xb497b497,0x9c139c13,0x9c139c13,0xa529c631,0xad6bad6b,0xa529ad6b,0xa529a529,0x9ce7ad6b,0xad6bad6b,0xa529a529,0x84219ce7,0xa5298421,0xad6bad6b,0xa529ad6b,0xa529a529,0x9ce7ad6b,0xad6bad6b,0xa529a529,0x84219ce7,0x79cb9a4d,0x79cb9a4d,0x79cb6189,0xd6b579cb,0x79cb9a4d,0x79cb7189,0x79cb6989,0xd6b579cb, +0xdef7def7,0xce73def7,0xdef7def7,0xdef7def7,0xdef7ce73,0xce73def7,0xdef7ce73,0xce73def7,0x8c63da07,0x91458c63,0x0001da07,0x91450001,0x8c635295,0x52955295,0x8c630001,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3df90000,0x00003df9,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03010000,0x03015981,0x00000301,0x930b0301,0x5981930b,0x930b5981,0x00000000, +0x9ce77bdf,0x94a5a529,0x842194a5,0x7bdf8c63,0x84218421,0xad6bb5ad,0xa52994a5,0x8c6394a5,0x8c638c63,0x84217bdf,0x739d7bdf,0x8c638c63,0x7bdf7bdf,0x7bdf7bdf,0x8c638c63,0x6b5b8c63,0x59cbbc17,0x7a8f7a8f,0x7a8f8421,0xbc177a8f,0x7a8fbc17,0xbc17bc17,0x93537a8f,0x93537a8f,0x59cbbc17,0x7a8f7a8f,0x7a8f8421,0xbc177a8f,0x7a8fbc17,0xbc17bc17,0x93537a8f,0x93537a8f, +0xbcd9bcd9,0xb497bcd9,0xbcd9bcd9,0x9c13bcd9,0x9c139c13,0xbcd972cf,0xbcd9bcd9,0xbcd9bcd9,0xb5adce73,0xad6bad6b,0xa529ad6b,0xb5adb5ad,0xad6bad6b,0xad6bad6b,0xb5adb5ad,0x7bdfb5ad,0xb5ad94a5,0xad6bad6b,0xa529ad6b,0xb5adb5ad,0xad6bad6b,0xad6bad6b,0xb5adb5ad,0x7bdfb5ad,0x59499a4d,0x69898a0b,0x618979cb,0xdef779cb,0x6989aa8f,0x71cb820b,0x79cb79cb,0xd6b579cb, +0xdef7ce73,0x00010001,0xce730001,0xce730001,0x0001def7,0x0001ce73,0x00010001,0xce73def7,0x8c63da07,0x52955295,0x8c63da07,0x52950001,0x52950001,0x52950001,0x00015295,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x33e73df9,0x3cef3d33,0x00003d33,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x59810000,0x5981930b,0x930b930b,0x03015981,0x4e490000,0x00000301, +0x84218c63,0x8c639ce7,0x7bdf94a5,0x8421a529,0xad6b94a5,0x84218421,0xa5298c63,0xad6b7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7a8fbc17,0xbc17bc17,0x93539353,0x7a8f7a8f,0x59cb9353,0x93539353,0x7a8f7a8f,0x93539353,0x7a8fbc17,0xbc17bc17,0x93539353,0x7a8f7a8f,0x59cb9353,0x93539353,0x7a8f7a8f,0x93539353, +0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf72cf,0x8421ad6b,0x84218421,0x84218421,0x84218421,0x7bdf8421,0x84218421,0x84218421,0x84218421,0xad6b8421,0xa529ad6b,0xa529a529,0xa529a529,0x9ce7a529,0xa529a529,0xa529a529,0x8421ad6b,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xd6b5b5ad,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xd6b5b5ad, +0xce73ce73,0x0001ce73,0xce73ce73,0x00010001,0x0001ce73,0xce73ce73,0xce730001,0xce73ce73,0x9145a985,0x91459145,0x00015295,0x00010001,0x00010001,0x91455295,0x0001a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3d330000,0x3d333d33,0x33e73df9,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x4e490000,0x00000301,0x930b5981,0x4e494e49,0x00000000,0x03014e49,0x00000301, +0x9ce78421,0xad6bb5ad,0x8421ad6b,0x9ce7ad6b,0xad6bb5ad,0x94a58421,0x94a58421,0x7bdf7bdf,0x8c637bdf,0x6b5b8c63,0x739d8c63,0x7bdf7bdf,0x8c637bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x7a8f9353,0x93537a8f,0x93537a8f,0x59cb7a8f,0x93537a8f,0x7a8f9353,0x7a8f7a8f,0x7a8f59cb,0x7a8f9353,0x93537a8f,0x93537a8f,0x59cb7a8f,0x93537a8f,0x7a8f9353,0x7a8f7a8f,0x7a8f59cb, +0xbcd9bcd9,0xbcd9bcd9,0x72cfbcd9,0xbcd99c13,0xb497bcd9,0xb497b497,0xbcd9bcd9,0x9c13bcd9,0xce73ce73,0xc631ce73,0xc631ce73,0xce73ce73,0xce73ce73,0xce73ce73,0xce73ce73,0xb5adce73,0xb5ad8421,0x9ce7b5ad,0xa529b5ad,0xad6bad6b,0xb5adad6b,0xb5adb5ad,0xb5adb5ad,0x94a5b5ad,0x9a4da24f,0xd6b59a4d,0x9a4d9a4d,0xb2d1a28f,0x9a4da24f,0xd6b59a4d,0x9a4d9a4d,0x79cbb2d1, +0xce73ce73,0x0001ce73,0xce73ce73,0xce730001,0x00010001,0xce73ce73,0xce730001,0xce73ce73,0xda07da07,0xa985da07,0xda07da07,0x00010001,0x52950001,0x5295da07,0x00015295,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x3cef3df9,0x33e733e7,0x00003d33,0x00000000,0x00000000,0x00000000,0x00000000,0xce810000,0x0000f7c1,0xb5c1f7c1,0x0000f7c1,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03010000,0x930b0000,0x930b930b,0x03010301,0x59810301,0x03010000,0x00000000, +0x842194a5,0x8c63b5ad,0x9ce78c63,0x8421ad6b,0x94a58421,0xad6b94a5,0xb5ad8c63,0x84218c63,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf739d,0x7bdf6b5b,0x739d7bdf,0x739d739d,0x7bdf8c63,0x93539353,0x7a8f59cb,0x59cb7a8f,0x7a8f59cb,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x93537a8f,0x93539353,0x7a8f59cb,0x59cb7a8f,0x7a8f59cb,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x93537a8f, +0x9c139c13,0x9c139c13,0xbcd99c13,0xb497b497,0x9c139c13,0x72cf9c13,0x9c13bcd9,0x9c139c13,0xa529ce73,0xa529a529,0xa529a529,0xad6ba529,0xad6b9ce7,0xa529ad6b,0xa529a529,0x8421b5ad,0xa5298421,0xa529a529,0xa529a529,0xad6ba529,0xad6b9ce7,0xa529ad6b,0xa529a529,0x8421b5ad,0x79cb79cb,0xce7379cb,0x79cb924d,0x79cb79cb,0x8a0d820b,0xce7379cb,0x8a0b9a4d,0x79cb79cb, +0xad6bce73,0x0001ad6b,0xad6bce73,0xce730001,0x0001ce73,0xce73ce73,0xad6b0001,0xce73ad6b,0x8c63da07,0x52955295,0x00010001,0x00010001,0x00010001,0x91458c63,0x52950001,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x14013d33,0x00001301,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xce81ce81,0x8c81f7c1,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x930b0301,0x930b5981,0x0301930b,0x930b930b,0x930b930b,0x00004e49, +0x9ce79ce7,0xa52994a5,0xb5ad8421,0x94a58c63,0x7bdfc631,0x8421a529,0x8c638c63,0x8c638421,0x7bdf7bdf,0x739d8c63,0x8c63739d,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x93539353,0xbc177a8f,0x7a8fbc17,0x9353bc17,0xbc1759cb,0x7a8fbc17,0x93539353,0x7a8f8421,0x93539353,0xbc177a8f,0x7a8fbc17,0x9353bc17,0xbc1759cb,0x7a8fbc17,0x93539353,0x7a8f8421, +0xb497bcd9,0xb497b497,0xbcd9bcd9,0x9c139c13,0x9c139c13,0xb497b497,0xb497b497,0x9c13b497,0xad6bce73,0xa529b5ad,0xb5ada529,0xa529b5ad,0xa5299ce7,0xb5adb5ad,0xad6bb5ad,0x8421ad6b,0xad6b8421,0xa529b5ad,0xb5ada529,0xa529b5ad,0xa5299ce7,0xb5adb5ad,0xad6bb5ad,0x8421ad6b,0x79cb8a0d,0xdef78a0b,0x79cb9a4d,0x79cb5949,0x820b6989,0xd6b579cb,0x79cb9a4d,0x79cb820b, +0xad6bad6b,0xad6bce73,0xce73ad6b,0xad6bad6b,0xce73ad6b,0xad6bad6b,0xad6bce73,0xad6bad6b,0x8c63da07,0x91458c63,0x0001da07,0x00010001,0x8c630001,0x91455295,0x8c630001,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a0d0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf7c10000,0xb5c1f7c1,0x8c818c81,0x0000ce81,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x4e490000,0x59810301,0x4e490000,0x59810301,0x4e495981,0x00000301,0x03010301, +0xad6b8421,0xa5298421,0x842194a5,0x8c6394a5,0x94a594a5,0x7bdf8c63,0x7bdf7bdf,0x8c637bdf,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0x7bdf7bdf,0x8c637bdf,0x6b5b8c63,0x7a8f9353,0x93537a8f,0xbc179353,0x93537a8f,0x93536b5b,0x7a8f9353,0x935359cb,0x59cb7a8f,0x7a8f9353,0x93537a8f,0xbc179353,0x93537a8f,0x93536b5b,0x7a8f9353,0x935359cb,0x59cb7a8f, +0x6a8d72cf,0x72cf72cf,0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x72cf72cf,0x6a8d6a8d,0x72cf6a8d,0xad6bc631,0xad6bad6b,0xad6ba529,0xad6bad6b,0xb5adb5ad,0xad6bad6b,0xb5adad6b,0x7bdfb5ad,0xad6b7bdf,0xad6bad6b,0xad6ba529,0xad6bad6b,0xb5adb5ad,0xad6bad6b,0xb5adad6b,0x7bdfb5ad,0xb5adb5ad,0xd6b5ad6b,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xdef7b5ad,0xbdefb5ad,0xb5adb5ad, +0xa185b1c5,0x79038945,0xa185b1c5,0x79038945,0xa185b1c5,0x79038945,0xa185b1c5,0x79038945,0x9145a985,0x91459145,0x91450001,0x91450001,0x52950001,0x00019145,0x91455295,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x14015a0d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14010000,0x00001401,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03014e49,0x03010301,0x03010000,0x930b0301,0x00005981,0x00000000,0x03010000, +0x94a5bdef,0x8c638421,0x94a59ce7,0x7bdf8421,0x94a56319,0x7bdf8c63,0xa5299ce7,0x84217bdf,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x739d739d,0x739d739d,0x7bdf739d,0x59cb7a8f,0x7a8f9353,0x93539353,0x7a8fbc17,0x7a8f7a8f,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x59cb7a8f,0x7a8f9353,0x93539353,0x7a8fbc17,0x7a8f7a8f,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17, +0xbcd9bcd9,0xbcd9bcd9,0x9c13bcd9,0x9c13bcd9,0x9c139c13,0x9c139c13,0x72cfb497,0xbcd9bcd9,0xa529ce73,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xa529a529,0xa529a529,0x8421a529,0xa5298421,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xa529a529,0xa529a529,0x8421a529,0xa24f9a4f,0x9a4daa8f,0x9a4d9a4d,0xce73924d,0xb2d1924d,0x9a4d9a4d,0x9a4d9a4d,0xe7399a4f, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xda07da07,0x5295da07,0xda07da07,0xa9855295,0x00015295,0x52950001,0xda075295,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0xda07da07,0xa985da07,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x13010000,0x00001401,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14010000,0x14011301,0x00001301,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x03010301,0x03010000,0x59810000,0x4e49930b,0x00004e49,0x00000000,0x00000000, +0xad6bb5ad,0x739d739d,0x84217bdf,0xc6318421,0xc631a529,0x9ce7ad6b,0x8c63a529,0xad6bad6b,0x8c637bdf,0x8c63739d,0x7bdf6b5b,0x739d7bdf,0x739d739d,0x739d6b5b,0x7bdf7bdf,0x8c638c63,0x93537a8f,0x7a8f7a8f,0x7a8f72d1,0x93539353,0x59cb7a8f,0x59cbbc17,0xbc177a8f,0x93539353,0x93537a8f,0x7a8f7a8f,0x7a8f59cb,0x93539353,0x59cb7a8f,0x59cbbc17,0xbc177a8f,0x93539353, +0x9c13b497,0xbcd972cf,0xbcd9bcd9,0x9c13bcd9,0xb497bcd9,0x9c13b497,0x9c139c13,0xb4979c13,0xb5adce73,0xb5ada529,0xad6b9ce7,0xa529ad6b,0xa529a529,0xa5299ce7,0xad6bad6b,0x94a5b5ad,0xb5ad8421,0xb5ada529,0xad6b9ce7,0xa529ad6b,0xa529a529,0xa5299ce7,0xad6bad6b,0x94a5b5ad,0x79cb9a4d,0x79cb79cb,0x79cb79cb,0xce736189,0x79cb9a4d,0x79cb79cb,0x79cb79cb,0xd6b581cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91455295,0x8c63da07,0x91458c63,0x5295da07,0x91458c63,0x5295da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x5a0d1401,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13010000,0x14011401,0x13011301,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x930b0000,0x5981930b,0x00000301,0x00000000,0x00000000, +0xa529a529,0x7bdf8c63,0xad6bb5ad,0x94a594a5,0x94a57bdf,0x842194a5,0x9ce7ad6b,0xa5298c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7a8f9353,0xbc1759cb,0x59cb7a8f,0x59cb7a8f,0x7a8f7a8f,0x59cb7a8f,0x7a8f7a8f,0x93539353,0x7a8f9353,0xbc1759cb,0x59cb7a8f,0x59cb7a8f,0x7a8f7a8f,0x59cb7a8f,0x7a8f7a8f,0x93539353, +0xbcd9bcd9,0x9c139c13,0xbcd99c13,0x9c13bcd9,0xbcd9bcd9,0xb4979c13,0xbcd9bcd9,0xbcd9bcd9,0xad6bce73,0xa529ad6b,0xa529a529,0xa529a529,0xad6bad6b,0xb5adb5ad,0xa529ad6b,0x8421a529,0xad6b8421,0xa529ad6b,0xa529a529,0xa529a529,0xad6bad6b,0xb5adb5ad,0xa529ad6b,0x8421a529,0x51479a4d,0x79cb820b,0x79cb79cb,0xd6b579cb,0x79cb9a4d,0x79cb79cb,0x79cb820b,0xd6b581cb, +0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0xc1c5da07,0x9145a985,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0x8c63da07,0x91458c63,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a0d0000,0x00001301,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14011301,0x00001301,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x930b0000,0x5981930b,0x00000000,0x00000000,0x00000000, +0x94a58421,0x739d8c63,0x9ce7a529,0xbdef94a5,0xbdef8c63,0x84217bdf,0x94a58421,0x9ce78c63,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x7a8f9353,0x9353bc17,0x7a8f9353,0x93538421,0x93539353,0x7a8f7a8f,0x93539353,0x59cb7a8f,0x7a8f9353,0x9353bc17,0x7a8f9353,0x93538421,0x93539353,0x7a8f7a8f,0x93539353,0x59cb7a8f, +0x72cf72cf,0x7b0f72cf,0x6a8d6a8d,0x6a8d7b0f,0x72cf72cf,0x6a8d72cf,0x6a8d49c9,0x72cf6a8d,0x8421a529,0x84218421,0x94a57bdf,0x842194a5,0x84218421,0x84218421,0x84218421,0x84218421,0x84218421,0x84218421,0x94a57bdf,0x842194a5,0x84218421,0x84218421,0x84218421,0x84218421,0xb5adb5ad,0xb5adad6b,0xb5adb5ad,0xd6b5b5ad,0xb5adbdef,0xb5adb5ad,0xb5adbdef,0xce73b5ad, +0xb185c1c5,0x9145a185,0xb185c1c5,0x9145a185,0xb185c1c5,0x9145a185,0xb185c1c5,0x9145a185,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x9145a985,0x91459145,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001301,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14010000,0x00001301,0x00000000,0x00000000,0x00000000,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x017f017f,0x00000000,0x00000000,0x00000000,0x59810000,0x5981930b,0x00000000,0x00000000,0x00000000, +0xb5adb5ad,0xa529b5ad,0x7bdf94a5,0x5ad76319,0xb5ad5ad7,0xb5adb5ad,0x5ad78421,0x8c63b5ad,0x318d5295,0x318d318d,0x5295318d,0x94a594a5,0x94a50001,0x318d5295,0x318d318d,0x5295318d,0xdea99c97,0xdea7dea7,0xdea7d6a5,0xdea7d665,0xdea9e6e9,0xd6a7dea7,0xd665d665,0xdea7ce23,0xbdef5a93,0x9c216ad9,0x94239c21,0x6ad99c23,0x6ad97bdf,0x9c639c63,0xa4e58c1f,0x9c21735b, +0x6a8d41c9,0x9bd36a8d,0x6acd3987,0x41899391,0x6a8d628d,0x7b0f628d,0x7b0f6acd,0x9bd36a8d,0x6a8d6a8d,0x6a8d3947,0x628d6a8d,0x39473947,0x6a8d3947,0x39476a8d,0x6a8d6acf,0x6acd6a8d,0xa529ad6b,0xbdefad6b,0xd6b5c631,0xd6b5d6b5,0xd6b5d6b5,0xdef7d6b5,0xdef7def7,0xe739def7,0xc407c449,0xd509cc87,0xe64fddcb,0xee4fee8f,0xee0fee4d,0xee91ee91,0xeed3eed3,0xff17f6d5, +0x041d041d,0x04e3045f,0x05ed0569,0x05ed062f,0x05ed05ed,0x062f062f,0x1e710e71,0x46b51e71,0x31492907,0x31493149,0x31893149,0x31893189,0x31893149,0x31893189,0x31893189,0x29073189,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xb5adb5ad,0x7bdf6b5b,0x5ad7294b,0xb5adb5ad,0x7bdf5ad7,0x7bdf8c63,0x39cf94a5,0x9ce76b5b,0x52955295,0x94a594a5,0x94a594a5,0x94a594a5,0x94a5318d,0x94a594a5,0x52950001,0x318d5295,0xdea7dea9,0xe6ede6ab,0xd665bda3,0xd665d665,0xe6ebc5e1,0xdea7fff7,0xdea7d665,0xef2bd6a7,0x9c218bdd,0xbd6b9c21,0xa4e98be1,0x6ad99ca7,0xb56bb56b,0x94636b17,0xa4e55253,0x9c63835d, +0x628b3987,0x39476acf,0x9bd33987,0x628d4189,0x39879bd3,0x9bd36a8d,0x7b0f49c9,0x939149c9,0xb4976a8d,0xb497b455,0xb497b497,0xb497b497,0xb455ac55,0xb497b497,0xbc99bc97,0x624bb497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xff59e651,0xff57ff57,0xff97ff97,0xff97ff95,0xff97ff97,0xff95ff97,0xff95ff95,0xee4fff93, +0x66f705ed,0x6f3766f7,0x87398739,0x87398739,0x7f377f37,0x87398739,0x7f377f37,0x05ed7737,0x830b3189,0x9309930b,0x930b930b,0x7ac97ac9,0x7ac97ac9,0x930b7ac9,0x930b7ac9,0x3149830b,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x7bdf5ad7,0x294b7bdf,0xb5ad5ad7,0x8421b5ad,0x2109318d,0x7bdf8c63,0x5ad739cf,0x84215ad7,0x00015295,0x318d318d,0x318d0001,0x318d318d,0x318d94a5,0x52955295,0x94a55295,0x52955295,0xef2de6ab,0xd667ff71,0xd6a7dea7,0xdea7dea7,0xe6e9dea7,0xeeede6eb,0xce65c623,0xff71d665,0x731b8b9b,0xb5296ad9,0x8c21b529,0x83dfbdad,0x52516ad9,0xc5ef6b5b,0x839bc5ef,0x6ad96ad9, +0x5a4b3947,0x4189624b,0x9bd36a8d,0x628d3987,0x39479bd3,0x7b0f628d,0x7b0f49c9,0x9bd349c9,0xb4973947,0x9c139c13,0x93d19c13,0x9c139c13,0x9c13a455,0x9c139c13,0xa4159c13,0x6a8db497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5e739,0xffd9ee91,0xffd5ffd7,0xffd5ffd5,0xffd5ffd5,0xffd7ffd7,0xffd3ffd5,0xff91ff93,0xee4bff8f, +0x8f39062f,0x8f398f39,0x8f399779,0x8f398f39,0x87398739,0x87398f39,0x6ef77f37,0x05ed5ef5,0x934b3189,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x3149934b,0xabcb41cd,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x2907abcb,0xabcb41cd,0x8b478b47,0x8b478b47,0x82c7a389,0xabcb8b09,0xa389abcb,0xabcba347,0x2907abcb, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x4a53739d,0x5ad7318d,0x6319bdef,0x7bdf94a5,0x5ad739cf,0x39cf39cf,0xad6b5ad7,0x5ad7b5ad,0x94a55295,0x52955295,0x00015295,0x94a55295,0x52955295,0x318d318d,0x318d318d,0x5295318d,0xd667ce23,0xdea9dea7,0xdee9d665,0xce65d665,0xd665d665,0xe6e9dea7,0xdea7dea7,0xbde1dea7,0x7bdf8c21,0xb52bbdef,0x9c219c61,0x6ad983df,0x8c638c63,0x735b9ca3,0x735b735b,0xa4a5b529, +0x41c96acd,0x4189624b,0x7b0f7b0f,0x6a8d3987,0x39479bd3,0x9bd36a8d,0x9bd33987,0x7b0f4189,0xb4976a8d,0xb497a455,0xbcd9bcd9,0xbcd9bcd9,0xbc97bcd9,0xbc97bcd9,0x9c13bcd9,0x3947b497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xf7bdf7bd,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd5ee91,0xffd5ffd5,0xffd5ffd5,0xffd5ffd5,0xffd7ffd7,0xffd3ffd3,0xffd1ff91,0xee4dffd1, +0x9779062f,0x8f399779,0x97798f39,0x97799f79,0x87399779,0x87398739,0x7f377f37,0x05ed7f37,0x8b093149,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x31499309,0xa34941cd,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x2907a347,0xa34941cd,0xa347a349,0xa347a347,0xce738ac7,0x8ac7a529,0xa349a349,0xa349a349,0x2907a347, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0xb5adb5ad,0x5ad75ad7,0x8421b5ad,0x39cf8421,0xa5295ad7,0x9ce79ce7,0x7bdf5295,0x5ad7ad6b,0x94a55295,0x318d94a5,0x318d318d,0x318d318d,0x318d318d,0x94a594a5,0x94a594a5,0x000194a5,0xd665e6e9,0xd665eeed,0xeeedeeed,0xeeede6eb,0xce25e6eb,0xe6ebd665,0xc5e1d667,0xce23dee9,0xa4e56ad9,0x52515251,0x5a959ca5,0x6ad9739d,0x735994a7,0xad2962d5,0x8c219c63,0x9461a529, +0x41896a8d,0x628d6a8d,0x7b0f7b0f,0x628d6a8d,0x41896acf,0x9bd36a8d,0x9bd33987,0x7b0f3947,0xb45749c9,0xbcd99c13,0xbc97b497,0xb497b497,0xb497b497,0xbc97b497,0x9c13bcd9,0x6a8db497,0xf7bdd6b5,0xef7bef7b,0xf7bdef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd5ee91,0xffd5ffd5,0xffd3ffd3,0xffd5ffd3,0xffd7ffd5,0xff91ffd3,0xff91ff91,0xee8fff91, +0x9779062f,0x97798f39,0x97798739,0x97799779,0x97799779,0x7f378739,0x77377f37,0x062f7737,0x7ac93189,0x8b478b47,0xabcb8b47,0x8b47abcb,0x8b47abcb,0xa3478b47,0xa389a389,0x3189930b,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x2907930b,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0xc6317ac9,0x51c58421,0x93097ac9,0x930b930b,0x2907930b, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x8421739d,0x5ad77bdf,0x8c637bdf,0x318d7bdf,0xc631ad6b,0x8c637bdf,0x5ad76319,0x39cf294b,0x318d318d,0x52955295,0x318d5295,0x318d318d,0x00015295,0x52955295,0x318d318d,0x52950001,0xdee9ce23,0xfffdce65,0xef2bd665,0xdea9dea9,0xf76dd6a7,0xc5e1dea7,0xd665ce65,0xc5e1dea7,0xbdad9ca5,0xa4e77b5d,0xad2b7be1,0x4a118b9d,0x73174a53,0xbdad8bdf,0x5a95c5f1,0x4a116b59, +0x5a4b6a8d,0x628d6a8d,0x6a8d9bd3,0x6a8d628d,0x39876a8d,0x8b516a8d,0x7b0f3987,0x628d4189,0xb4973947,0xbcd99c13,0x9c13b497,0xa455a455,0x9c139c13,0xb4979c13,0x9c13bc97,0x6a8db497,0xf7bdd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd7ee91,0xff91ffd5,0xffd3ff91,0xffd3ffd3,0xffd5ffd5,0xffd3ffd3,0xffd3ffd3,0xee8fffd3, +0x9f79062f,0x6ef79779,0x87396ef7,0x87398739,0x87398739,0x87398739,0x7f378739,0x062f7f37,0x7ac93149,0xa389a347,0xa389a389,0x8b47abcb,0xa389a389,0xa389a389,0x8b478b47,0x31497ac9,0x314941cb,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x18c53149,0x314941cb,0x31893149,0x31893189,0xa5292907,0x2907739d,0x31893189,0x31493149,0x18c53149, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8010000, +0x7bdf7bdf,0x5ad77bdf,0x39cf6b5b,0x631939cf,0x8c636319,0x7bdfa529,0x7bdf739d,0x52957bdf,0x94a594a5,0x63195295,0x318d5295,0x94a594a5,0x52955295,0x52955295,0x94a594a5,0x000194a5,0xdeabbd9f,0xdea7cde5,0xe6e9bde1,0xd665dea7,0xd6a7d667,0xffb3eeed,0xe6ebdea7,0xde69dea9,0xaca5a4e7,0x94637bdf,0xa4a79c63,0xb52983e1,0x735b9ca3,0x4a118bdf,0x8c234a11,0x6ad98c23, +0x7b0f6a8d,0x6a8d49c9,0x624b9393,0x39476a8d,0x39479391,0x5a0b7b0f,0x7b0f3145,0x6acf3987,0xb4973947,0xbc999c13,0x9c13b497,0xbc99bc99,0xbcd9bcd9,0xb4979c13,0x9c13bc97,0x3947b497,0xef7bd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5ef7b,0xffd7e691,0xffd3ffd5,0xff91ffd3,0xffd3ffd3,0xffd3ffd3,0xffd3ffd3,0xffd1ffd3,0xee4dff91, +0x9779062f,0x87398739,0x77378739,0x87398739,0x87398739,0x87398739,0x7f378739,0x062d6f37,0x934b3189,0xa389abcb,0xabcbabcb,0x8b47abcb,0x8b478b47,0xabcba347,0xabcbabcb,0x3189934b,0x72cd41cd,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x290772cd,0x72cd41cd,0x728b72cd,0x72cd72cd,0x94a56249,0x4187739d,0x72cd728b,0x72cd72cd,0x290772cd, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf7bdf,0x5295318d,0xb5adad6b,0x52955ad7,0x4a535ad7,0x8c63318d,0x39cf7bdf,0xc6316319,0x52955295,0x318d5295,0x318d318d,0x318d318d,0x0001318d,0x318d318d,0x318d318d,0x52955295,0xd6a7dea7,0xdea7e6eb,0xd665dea7,0xffafe6eb,0xd627dea9,0xd665d6a7,0xe6abdee9,0xe6ebd665,0x6ad96ad9,0xbdadbdad,0x8c63ad29,0x4a519c63,0xa4616ad9,0x6ad98c21,0x6b5b83df,0x735d7be1, +0x9bd36a8d,0x6a8d3987,0x39879bd3,0x41899bd3,0x39479bd3,0x49c97b0f,0x7b0f628d,0x6acf3987,0xb4973947,0xcd1b9c13,0x9c13b497,0xb497bcd9,0xbc99b497,0xac55a413,0x9c13bcd9,0x72cfb497,0xf7bdd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xd6b5e739,0xffd9ee8f,0xffd3ffd7,0xff91ff91,0xff91ff91,0xff91ff91,0xffd1ff91,0xff91ffd1,0xee4dff8f, +0x9f79062f,0x87398f39,0x6ef76ef7,0x6ef76ef7,0x6f376ef7,0x7f377737,0x77378739,0x05ed5ef5,0x93093149,0xa349a349,0xa349a349,0xa347a349,0xa347a347,0xa349a349,0xa349a349,0x31499309,0x930941cb,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x290782c9,0x930941cb,0x8b098b09,0x8b098b09,0x62057247,0x72876205,0x8b098b09,0x8b098b09,0x290782c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x21097bdf,0xbdef5ad7,0x7bdfb5ad,0xb5ad6b5b,0x7bdfad6b,0x4a535ad7,0x210939cf,0xb5adc631,0x94a55295,0x000194a5,0x318d94a5,0x52955295,0x94a55295,0x94a594a5,0x94a594a5,0x94a594a5,0xdeabe6e9,0xe6ebef2d,0xd665e6ab,0xdeabeeed,0xfff5f72f,0xdea7c5e1,0xde69d667,0xdea7d665,0x52956b5b,0x52515251,0x94219461,0x83dfad27,0x62d79ce7,0x94236ad9,0x6ad9b569,0x5b199c63, +0x9bd36a8d,0x72cf3987,0x41899391,0x41896a8d,0x41896a8d,0x39479391,0x6a8d6a8d,0x7b0f3987,0xb4976a8d,0xbcd9ac97,0x9c13b497,0xb497bc99,0xbcd9b497,0xb4979c13,0x9c13bcd9,0x6a8dbc97,0xf7bdd6b5,0xef7bf7bd,0xef7bf7bd,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xe739ef7b,0xce73e739,0xffd9ee91,0xffd3ffd9,0xff91ffdb,0xff91ff91,0xff91ff91,0xff91ff91,0xff4fff91,0xee4bf74d, +0x9779062f,0x8739a77b,0x6ef7a77b,0x6ef76ef7,0x6ef76ef7,0x6ef76ef7,0x56f56ef7,0x05ed3eb3,0x934b3189,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x3149934b,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x5ad78c63,0xb5adb5ad,0x39cf8c63,0x6b5bb5ad,0x94a5bdef,0x5ad794a5,0xc6315ad7,0x7bdf7bdf,0x318d5295,0x318d318d,0x318d318d,0x5295318d,0x52950001,0x318d5295,0x318d318d,0x529594a5,0xb55dc5e1,0xdea7e6eb,0xdea9dea7,0xd665e6eb,0xdea7dea7,0xef6ddea7,0xe6abdea7,0xef2bc5e1,0x6ad99423,0xa529a529,0x6ad983dd,0xc5f1c5f1,0x83df4a11,0x7317bdef,0x9c63839d,0x4a116b5b, +0x9bd36a8d,0x628d41c9,0x93916acd,0x6a8d4189,0x39476a8d,0x41899391,0x93916a8d,0x7b0f4189,0xb4976a8d,0xbcd99c13,0x9bd3b457,0xbcd9bcd9,0xbcd9bcd9,0xb4979c13,0x9c13bcd9,0x6a8db497,0xf7bdd6b5,0xef7bf7bd,0xf7bdf7bd,0xf7bdef7b,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xd6b5ef7b,0xffdbee93,0xffd3ffdb,0xffd9ffd9,0xffd7ffd7,0xffd7ffd7,0xffd5ffd7,0xffd5ffd5,0xee4fff93, +0x9779062f,0x8739a77b,0x97799779,0x97799779,0x97799779,0x9f799f79,0x8f399779,0x062d8739,0x7ac93149,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x31497ac9,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0xa5295ad7,0x7bdf7bdf,0x318d7bdf,0x94a5b5ad,0x7bdf7bdf,0x39cf8421,0x5ad75ad7,0x84219ce7,0x52955295,0x318d94a5,0x94a5318d,0x318d94a5,0x318d0001,0x94a594a5,0x529594a5,0x52955295,0xe6abdee9,0xe6ebad1b,0xef2dc623,0xde69d6a7,0xf76df72f,0xd665e72b,0xd6a7dea7,0xdea7d6a5,0xb56b6ad9,0x4a11b56b,0x5a51ac63,0x735b6317,0x735b9463,0x94216ad9,0x7b9b83df,0x62d7bdef, +0x7b0f41c9,0x6a8d4189,0x9391628d,0x624b3947,0x5a4b3987,0x41899bd5,0x9bd36a8d,0x93914189,0xb455628d,0xb4979c13,0x9c13b497,0x9c139c13,0x9c139c13,0xbc979c13,0x9c13bcd9,0x6a8db497,0xf7bdd6b5,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xce73ef7b,0xffddee93,0xffddffdd,0xffdbffdb,0xffd9ffdb,0xffd9ffd9,0xffd7ffd7,0xff95ffd7,0xee0dff53, +0xa77b062f,0xaf7baf7b,0xa77ba77b,0xa77ba77b,0xa77ba77b,0xa77b9f79,0x87399f79,0x05eb66f7,0x930b3189,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x3149930b,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b, +0x00000000,0x00000000,0x00000000,0xf94bf94b,0xe085f94b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xccdfccdf,0x9355ccdf,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x5ad75ad7,0x7bdfa529,0x39cf6b5b,0x84217bdf,0x7bdf94a5,0x529539cf,0x5ad7ad6b,0x39cf5ad7,0x52950001,0x52955295,0x5295318d,0x52955295,0x94a594a5,0x52955295,0x94a55295,0x000194a5,0xe6ebce25,0xcde5e6e9,0xd667dea9,0xdea7dea7,0xdea7dea9,0xfff1dea7,0xd665d665,0xbd9fd665,0xb56b6ad9,0x6ad5b529,0x8c637317,0x5295739d,0x5253a4e7,0x5253ad2b,0x6ad96ad5,0x94617bdf, +0x7b0f3987,0x628d3987,0x9bd36acf,0x9bd34189,0x5a4b3947,0x39879bd3,0x93936a8d,0x9bd33947,0xb4573947,0xbcd99c13,0xb497b457,0xb457b497,0xb497b497,0xbc97b497,0xa455bcd9,0x628bb497,0xf7bddef7,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xe739e739,0xce73def7,0xffdfee95,0xffddffdf,0xffddffdd,0xffdbffdd,0xffdbffdb,0xff97ffd9,0xff11ff53,0xe5cbfed1, +0xaf7b062f,0xaf7baf7b,0xaf7baf7b,0xa77baf7b,0x9f79a77b,0x87399f79,0x3eb35ef5,0x05a926b3,0x8b093149,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x31498b09,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09, +0x00000000,0x00000000,0xf94b0000,0xe085ffff,0xc0c9e085,0x00009887,0x00000000,0x00000000,0x00000000,0x00000000,0xccdf0000,0x9355ccdf,0x93559355,0x00007291,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000,0xf801f801, +0xb5adb5ad,0x39cf39cf,0x39cf39cf,0x7bdf6319,0x318d4211,0x9ce7b5ad,0x7bdf7bdf,0x5ad75ad7,0x318d5295,0x318d318d,0x318d318d,0x318d318d,0x94a594a5,0x318d318d,0x318d318d,0x5295318d,0xdea9ef2d,0xef2dd665,0xd665dee9,0xbd9fe6e9,0xdea7c5e3,0xd665dea7,0xe6ebe6ab,0xd667d665,0xa4a5b569,0x5a559463,0xb56bb56b,0x83dface9,0x9ce7ad29,0xa52983df,0x5293a4e5,0x8c1f83dd, +0x9bd33947,0x628d3947,0x9bd36a8d,0x6a8d3947,0x628b3987,0x39479393,0x624b6a8d,0x9bd34189,0xb4973947,0xbcd99c13,0xb497bcd9,0xbcd9bc99,0xbcd9bcd9,0xbcd9bcd9,0x9c13bc99,0x3947b497,0xf7bddef7,0xf7bdf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bf7bd,0xe739ef7b,0xdef7def7,0xce73def7,0xffddee95,0xffddffdd,0xffddffdd,0xffdbffdb,0xffd9ffdb,0xff53ff95,0xf68ff6cf,0xedcbf68d, +0xaf7b062f,0xa77ba77b,0xaf7ba77b,0xa77baf7b,0x8f399779,0x56f57f37,0x06711e71,0x05a9066f,0x934b3189,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x3189934b,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b, +0x00000000,0x00000000,0xe085f94b,0xe085e085,0xce73e085,0x98879887,0x00000000,0x00000000,0x00000000,0x00000000,0x93550000,0x93559355,0x72919355,0x00007291,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x0000f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdfbdef,0xb5ad739d,0xb5adad6b,0x39cf5ad7,0xce736319,0x7bdfa529,0x7bdf94a5,0x318d8c63,0x94a55295,0x94a5318d,0x52950001,0x318d5295,0x318d318d,0x318d0001,0x52955295,0x94a594a5,0xe6ebfff5,0xb55dce23,0xd665d665,0xf76fd665,0xf76fe6ab,0xdee9e6eb,0xd6a7e6e9,0xd667e6eb,0x9ca3b569,0xb569bdad,0x83dfa4e7,0xad2b94a5,0x83dd8c21,0x94219ca5,0xb4e75a95,0x5a53b5ad, +0x6acd4189,0x6a8d5a4b,0x7b0f6a8d,0x6acf49c9,0x624b6acd,0x3987628d,0x93916a8d,0x39479bd3,0xb4973947,0x9c139bd1,0x9c13a455,0x9c139c13,0xa4139bd3,0xa4559c13,0xa455a455,0x3947b457,0xf7bddef7,0xef7bf7bd,0xf7bdf7bd,0xf7bdf7bd,0xef7bef7b,0xe739e739,0xdef7def7,0xce73def7,0xffd9ee93,0xffd9ffd9,0xffd9ffd9,0xffd9ffd9,0xff97ffd7,0xff0fff11,0xfecffecf,0xedcbfe8d, +0xa77b062f,0x97799779,0xa77ba77b,0x9f79a77b,0x7f378f39,0x2eb346b5,0x0e711e71,0x05a90e71,0x7ac93189,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x31897ac9,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9, +0x00000000,0x00000000,0xe085ce73,0xce73c0c9,0x9887c0c9,0x94a59887,0x00000000,0x00000000,0x00000000,0x00000000,0x93550000,0x72917291,0x72917291,0x00007291,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0x00000000,0x0000f801,0x0000fb41,0x00000000,0xfb410000,0x0000fb41,0xf801f801, +0x8c63739d,0xa5294211,0x7bdf8421,0x5ad77bdf,0x5ad75ad7,0x94a57bdf,0x94a58c63,0x39cf39cf,0x52955295,0x318d5295,0x318d318d,0x318d318d,0x52955295,0x94a594a5,0x318d5295,0x5295318d,0xde69e6ab,0xce65d667,0xd667dea9,0xe6e9dea7,0xdee9b55d,0xd6a7bd9f,0xcde5e6eb,0xe6abce65,0x7b9b9ca3,0x8bdf6b19,0x9ce76ad9,0x525383dd,0xb56bbdef,0xa4e58c1f,0x6ad583dd,0x839d7b59, +0x628d3947,0x41899393,0x7b0f6a8d,0x398749c9,0x6a8d9391,0x39479bd3,0x7b0f628b,0x628d3987,0xb49749c9,0xb497b497,0xb497b497,0xac55ac55,0xb497b497,0xb497ac15,0xb497b497,0x6a8db497,0xf7bdd6b5,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xdef7e739,0xd6b5d6b5,0xc631d6b5,0xffd5ee91,0xff95ffd5,0xffd5ff95,0xff95ff95,0xff95ff95,0xfe8dff11,0xf64bf68d,0xe58bf64b, +0x9779062f,0x7f378f39,0x87398739,0x7f378739,0x6f377f37,0x0e7136b3,0x062f062f,0x0567062d,0x830b3189,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x3189830b,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b, +0x00000000,0x00000000,0xc0c90000,0x98879887,0x98879887,0x00009887,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6ad50000,0x00004a0f,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb41f801,0xfb41f801,0xfb41f801,0x0000f801,0xf8010000,0xf801fb41,0xfb41f801,0xf801f801, +0x739d7bdf,0x4a53739d,0x294b294b,0x5ad739cf,0x8421ad6b,0x5ad75295,0x4a534211,0x631939cf,0x318d318d,0x318d318d,0x94a50001,0x529594a5,0x52955295,0x318d5295,0x318d318d,0x52955295,0xe6e9d667,0xc5e1d6a7,0xdee9fff5,0xef2dc623,0xf72fdea7,0xd665d665,0xdea7d667,0xc623d6a7,0x94615251,0xa4a54a11,0x6ad99c63,0x94615253,0x52535253,0xa4a14a11,0x6ad9b529,0x9ce7b461, +0x6a8d5a4b,0x39877b0f,0x6a8d624b,0x41896a8d,0x6a8d6a8d,0x3145628d,0x6a8d628d,0x7b0f628b,0x6acf6a8d,0x6a8d3947,0x6a8d6a8d,0x6a8d3947,0x6a8d6a8d,0x6a8d6a8d,0x39473947,0x6a8d3947,0xef7bef7b,0xe739e739,0xdef7def7,0xd6b5def7,0xdef7d6b5,0xd6b5d6b5,0xd6b5d6b5,0xce73d6b5,0xff93ff93,0xff11ff51,0xfecffecf,0xf64df68d,0xfe8ff64d,0xfe4dfe4d,0xfe0dfe4d,0xfdcdfe0d, +0x6ef77f37,0x4ef55ef5,0x1e712eb3,0x062d062f,0x0671062f,0x062f062f,0x062f062f,0x05ed05ed,0x31492907,0x39493149,0x31493149,0x31493949,0x31493149,0x31493149,0x31493149,0x31493149,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907, +0x00000000,0x00000000,0x00000000,0x7a110000,0x0000514b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6ad50000,0x00004a0f,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801, +0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0xbcd9bcd9,0xb497bcd9,0xbcd9bcd9,0x9c13bcd9,0x9c139c13,0xbcd972cf,0xbcd9bcd9,0x9c13bcd9, +0xb5adb5ad,0xa529b5ad,0x7bdf94a5,0x1a072249,0xb5ad5ad7,0xb5adb5ad,0x5ad78421,0x8c63b5ad,0x10871087,0x08451087,0x10870845,0x08450845,0x08431087,0x10870845,0x10851089,0x10870843,0x311341d9,0x09a30003,0x315500a1,0x18893155,0x00051889,0x000309a3,0x18891889,0x18890003,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x290741cd,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd,0x18831883,0x18830841,0x18831883,0x08410841,0x18830841,0x08411883,0x18831883,0x18831883, +0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x2905bcd9,0x20c520c5,0x20c520c5,0x5b837445,0x29052905,0x20c520c5,0x20c520c5,0x9c132905, +0xb5adb5ad,0x7bdf6b5b,0x1a07294b,0x3c4f3c4f,0x7bdf1a07,0x7bdf8c63,0x114594a5,0x9ce76b5b,0x10850845,0x08430843,0x10850843,0x10870847,0x31550843,0x10871087,0x08431087,0x10873995,0x311341d9,0x09e320cd,0x315500a1,0x18893155,0x31551889,0x31133155,0x00053113,0x31553155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x8b478b47,0x8b478b47,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb,0xb4971883,0x2905b455,0xab91ab91,0xab91ab91,0xab91ab51,0xab91ab91,0xbc992905,0x1883b497, +0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x6b5b7bdf,0x739d739d,0x739dff53,0x739d739d,0x739d8c63,0x7bdf7bdf,0xff53ffed,0x7bdf7bdf,0x6b5b7bdf,0x739d739d,0x739dbce1,0x739d739d,0x739d8c63,0x7bdf7bdf,0xbce1dd65,0x7bdf7bdf,0x6b5b7bdf,0x739d739d,0x739d318d,0x739d739d,0x739d8c63,0x7bdf7bdf,0x318d39cf,0x7bdf7bdf,0xb885bcd9,0x29059085,0x2a5f32e3,0x5b837445,0x31453145,0x74453145,0x39475b83,0x9c134187, +0x7bdf1a07,0x11057bdf,0x3c4f1a07,0x2b0bb5ad,0x08c3318d,0x7bdf8c63,0x1a071145,0x84211a07,0x08431087,0x39953955,0x08453995,0x08430845,0x18cb3995,0x08451087,0x39950843,0x108718cb,0x31130003,0x09a309e3,0x20cd20cd,0x18891889,0x18890003,0x20cd20cd,0x31553113,0x09e309e3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x51c5a389,0xabcb51c5,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x2907abcb,0xb4970841,0xa34f20c5,0x9b0fa34f,0xa34fa34f,0xa34fa391,0xa34fa34f,0x2105a34f,0x1883b497, +0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x5295294b,0x52957bdf,0x5ad76319,0x7bdf5ad7,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xffed7bdf,0x7bdffd4b,0x739d739d,0x739d739d,0x7bdf739d,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xdd657bdf,0x7bdfac5d,0x739d739d,0x739d739d,0x7bdf739d,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0x39cf7bdf,0x7bdf318d,0x739d739d,0x739d739d,0x7bdf739d,0xb5ad6a8d,0x145b8c63,0x2a5f32e3,0x5b837445,0x9085b885,0x74453145,0x145b5b83,0x72cf0b55, +0x19c722c9,0x1a071105,0x2289bdef,0x7bdf94a5,0x1a0739cf,0x39cf1145,0xad6b1a07,0x1a07b5ad,0x08430845,0x20cb18cb,0x10850845,0x41d91085,0x18cb18cb,0x10870845,0x08450843,0x10871087,0x31130003,0x00a109e3,0x00031889,0x311341d9,0x31553155,0x20cd1889,0x18890005,0x00a109e3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cd,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0xce738ac7,0x8ac7a529,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x2907a347,0x29051883,0x5189a351,0x51c94947,0x51c951c9,0x49474947,0x518951c9,0xa34f51c9,0x08412905, +0x5295294b,0x6b5b5ad7,0x21096b5b,0x318d318d,0x294b2109,0x42112109,0x8c636b5b,0x294b6b5b,0x5295294b,0x6b5b5ad7,0x63199ce7,0x84218c63,0x6b5b5ad7,0x5ad75ad7,0x8c636b5b,0x294b6b5b,0x5295294b,0xce735ad7,0x5295ce73,0x6b5b5295,0x6b5b6b5b,0xce736b5b,0x8c63ce73,0x294b6b5b,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0xb885bcd9,0x145b9085,0x2a5f32e3,0x39cf4a53,0x9085b885,0x74453947,0xb5ad5b83,0xbcd98c63, +0xb5adb5ad,0x1a075ad7,0x8421b5ad,0x39cf8421,0x3bcf1a07,0x33cd9ce7,0x7bdf1a07,0x5ad7ad6b,0x08430845,0x108718cb,0x10851085,0x10870845,0x08450843,0x08451087,0x084718cb,0x10871087,0x18890003,0x00a109e3,0x00031889,0x20cd41d9,0x09e328d1,0x20cd09a3,0x18890005,0x00a109a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0xc6317ac9,0x51c58421,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x2907930b,0xab911043,0x51c9a34f,0xa2cd9acd,0xab915189,0x4947ab91,0xb3939acd,0xa34f51c9,0x1883ab91, +0x739d39cf,0x4a537bdf,0x0001318d,0x00010001,0x00010001,0x318d0001,0x84215295,0x2109739d,0x739d39cf,0x6b5b7bdf,0x7bdf8c63,0x5ad77bdf,0x8c636b5b,0x94a594a5,0x8421739d,0x2109739d,0x739d39cf,0xb5ad8c63,0xb5adb5ad,0x529539cf,0x84218421,0xb5adce73,0x7bdfb5ad,0x2109739d,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000, +0x739d739d,0x7bdf7bdf,0xffff7bdf,0x739dffed,0x6b5b7bdf,0xffedffff,0x739d739d,0x7bdf6b5b,0x739d739d,0x7bdf7bdf,0xe62b7bdf,0x739ddd65,0x6b5b7bdf,0xdd65e62b,0x739d739d,0x7bdf6b5b,0x739d739d,0x7bdf7bdf,0x42117bdf,0x739d39cf,0x6b5b7bdf,0x39cf4211,0x739d739d,0x7bdf6b5b,0xb8859c13,0x145b9085,0x2a5f32e3,0x39cf4a53,0xb8854187,0x74459085,0x145b5b83,0x9c130b55, +0x8421739d,0x1a077bdf,0x8c632acb,0x11457bdf,0xc6313c0f,0x2b4b7bdf,0x5ad76319,0x11451105,0x10871087,0x08451085,0x08430843,0x08430843,0x08451087,0x10870843,0x10871087,0x08450845,0x18890003,0x00a109e3,0x41d91889,0x20cd41d9,0x09e320cd,0x20cd00a1,0x31550005,0x00a109a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x314941cb,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0xa5292907,0x2907739d,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x18c53149,0xab910841,0x51c9a34f,0xa34fab91,0x928b4105,0x4987a34f,0x9acd8a8b,0xa34f5189,0x1883ab91, +0x5ad7294b,0x294b7bdf,0x00010001,0x00010001,0x00010001,0x00010001,0x6b5ba529,0x210939cf,0x5ad7294b,0x6b5b7bdf,0x7bdf7bdf,0x5ad77bdf,0x94a594a5,0x84217bdf,0x6b5b7bdf,0x210939cf,0x5ad7294b,0x739d7bdf,0xb5adb5ad,0x6b5b8c63,0xce735295,0x7bdfb5ad,0x6b5b7bdf,0x210939cf,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8010000, +0x8c638c63,0xffff7bdf,0xff53ffed,0xfd4bff53,0x7bdf7bdf,0xfd4bff53,0x8c638c63,0x6b5b8c63,0x8c638c63,0xe62b7bdf,0xbce1dd65,0xac5dbce1,0x7bdf7bdf,0xac5dbce1,0x8c638c63,0x6b5b8c63,0x8c638c63,0x42117bdf,0x318d39cf,0x318d318d,0x7bdf7bdf,0x318d318d,0x8c638c63,0x6b5b8c63,0xb885bcd9,0x145b9085,0x2a5f32e3,0x5b837445,0xb8853947,0x74459085,0x145b5b83,0xbcd90b55, +0x7bdf7bdf,0x1a072b0b,0x11452289,0x224939cf,0x334d2249,0x2b0ba529,0x7bdf739d,0x52952b0b,0x10851087,0x10871087,0x39953995,0x39953995,0x08430845,0x08453995,0x08430843,0x08450843,0x18893155,0x00a109a3,0x10871889,0x108741d9,0x09a31087,0x315500a1,0x20cd3113,0x00a109a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72cd41cd,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x94a56249,0x4187739d,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x290772cd,0xab910841,0x5189a34f,0x49875189,0x51895189,0x51c94947,0x49474987,0xa34f5189,0x0841ab91, +0x6319318d,0x294b7bdf,0x08430001,0x10850843,0x10851085,0x00011085,0x8421a529,0x21096319,0x6319318d,0x6b5b7bdf,0x5ad7739d,0x7bdf6b5b,0x8421739d,0x7bdf8c63,0x84218421,0x21096319,0x6319318d,0x6b5b7bdf,0x6b5b5ad7,0x52955295,0x6b5b5295,0x6b5b7bdf,0x84215295,0x21096319,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf6a8d,0x72cf72cf,0x6a8d6a8d,0x6a8d6a8d,0x72cf72cf, +0x7bdf7bdf,0x1a071105,0xb5ad3c0f,0x19c71a07,0x19c72249,0x8c63318d,0x39cf7bdf,0xc6312249,0x10871087,0x08450843,0x188b1087,0x108918cb,0x08431087,0x084318cb,0x39953113,0x108918cb,0x18890003,0x00a120cd,0x10871889,0x31553155,0x09a31087,0x20cd00a1,0x000320cd,0x188909a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930941cb,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x62057247,0x72876205,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x290782c9,0xab910841,0x59c9a34f,0xa34fab91,0xab9151c9,0x5189ab91,0xab51a34f,0xa34f51c9,0x1883ab91, +0x5ad7294b,0x21095ad7,0xb5ad739d,0xad6bad6b,0xa529ad6b,0x6b5ba529,0x5ad7ad6b,0x39cf5295,0x5ad7294b,0x63195ad7,0x8c638c63,0x63196b5b,0x5ad76b5b,0x7bdf5ad7,0x5ad78421,0x39cf5295,0x5ad7294b,0x6b5b6b5b,0x4a53739d,0x84214a53,0x5ad78421,0x4a536b5b,0x5ad76b5b,0x39cf5295,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0xffed7bdf,0x6b5bff53,0x739d8c63,0x7bdf7bdf,0xffedffff,0x8c638c63,0x8c638c63,0x8c638c63,0xdd657bdf,0x6b5bbce1,0x739d8c63,0x7bdf7bdf,0xdd65e62b,0x8c638c63,0x8c638c63,0x8c638c63,0x39cf7bdf,0x6b5b318d,0x739d8c63,0x7bdf7bdf,0x39cf4211,0x8c638c63,0x8c638c63,0x8c638c63,0x9c13bcd9,0x9c139c13,0xbcd99c13,0xb497b497,0x9c139c13,0x72cf9c13,0x9c13bcd9,0x9c139c13, +0x08c37bdf,0xbdef1a07,0x2b0b3c4f,0xb5ad2289,0x2b0bad6b,0x19c72249,0x21091185,0xb5adc631,0x08430845,0x18cb3995,0x10870845,0x18cb20cd,0x08451087,0x08431087,0x18cb188b,0x10870845,0x18890003,0x00a120cd,0x10871889,0x09a309e3,0x09a31087,0x000500a1,0x000309a3,0x188909a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0xabcb8b47,0xa389abcb,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b,0xab911883,0x51c99acd,0xa34fab91,0xab915189,0x51c9ab91,0xab91a34f,0xa34f51c9,0x1883b393, +0x4211294b,0x84217bdf,0x52955ad7,0x5ad74a53,0x52955ad7,0x4a535295,0x5ad7739d,0x39cf7bdf,0x4211294b,0x8c637bdf,0x7bdf9ce7,0x94a5739d,0x842194a5,0x6b5b7bdf,0x5ad76b5b,0x39cf7bdf,0x4211294b,0x84217bdf,0x52955ad7,0x21098c63,0x63192109,0x6b5b5295,0x5ad7739d,0x39cf7bdf,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x739d7bdf,0x739d739d,0x739d739d,0xffed739d,0xfd4bfd4b,0x739dfd4b,0x739d739d,0x7bdf8c63,0x739d7bdf,0x739d739d,0x739d739d,0xdd65739d,0xac5dac5d,0x739dac5d,0x739d739d,0x7bdf8c63,0x739d7bdf,0x739d739d,0x739d739d,0x39cf739d,0x318d318d,0x739d318d,0x739d739d,0x7bdf8c63,0x20c59c13,0x20c520c5,0x20c520c5,0x290520c5,0x29052905,0x20c520c5,0x2a5f32e3,0x9c132905, +0x5ad78c63,0xb5adb5ad,0x11452b4b,0x6b5bb5ad,0x338dbdef,0x1a0794a5,0xc6315ad7,0x7bdf7bdf,0x10870845,0x10871087,0x10851087,0x20cb1087,0x08450847,0x00050845,0x084518cb,0x10871087,0x00010003,0x20cd20cd,0x31131889,0x00a109e3,0x09a31087,0x31133155,0x000309a3,0x188909a3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0xa389a389,0x8b478b47,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9,0xb3931883,0x49478a4b,0x49875189,0x51c951c9,0x51c94947,0x51894987,0xa34f51c9,0x1883ab91, +0x8c634a53,0xc631c631,0xce73c631,0xce73ce73,0xce73c631,0xc631ce73,0xc631c631,0x39cf8c63,0x8c634a53,0xc631c631,0xce73c631,0xce73ce73,0xce73c631,0xc631ce73,0xc631c631,0x39cf8c63,0x8c634a53,0xc631c631,0xce73c631,0x00012109,0x21090001,0xc631ce73,0xc631c631,0x39cf8c63,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf7bdf,0x739d8c63,0x8c63ff53,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x7bdf7bdf,0x739d8c63,0x8c63bce1,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x7bdf7bdf,0x739d8c63,0x8c63318d,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x20c5bcd9,0x31453145,0x9085b885,0x39473947,0xacc33145,0x29058bc3,0x2a5f32e3,0x9c133145, +0x3c0f5ad7,0x7bdf7bdf,0x318d7bdf,0x94a5b5ad,0x2b0b7bdf,0x39cf8421,0x5ad72249,0x84219ce7,0x10871085,0x08451087,0x10870845,0x08470847,0x08431087,0x10890845,0x08451087,0x10871087,0x18893113,0x18891889,0x20cd0003,0x00a109a3,0x09a320cd,0x09a309e3,0x000309a3,0x18893155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b,0xab911883,0x4947a34f,0xa34f9acd,0xa34f4987,0x41058a8b,0xb393a34f,0xa34f51c9,0x1883ab91, +0x7bdf4a53,0xb5adb5ad,0x7bdfb5ad,0x42114211,0x421139cf,0xb5ad7bdf,0xad6b9ce7,0x318d7bdf,0x7bdf4a53,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x318d7bdf,0x7bdf4a53,0xb5adb5ad,0xb5adad6b,0x10852109,0x21091085,0xb5adce73,0xad6b9ce7,0x318d7bdf,0xfb41f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xffed7bdf,0x8c63fd4b,0x6b5b8c63,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xdd657bdf,0x8c63ac5d,0x6b5b8c63,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0x39cf7bdf,0x8c63318d,0x6b5b8c63,0x818372cf,0x61417181,0x9085b885,0x41873145,0xb5ad5b83,0x90858c63,0x2a5f32e3,0x72cf145b, +0x1a071a07,0x7bdf33cd,0x39cf6b5b,0x84217bdf,0x7bdf94a5,0x19c71145,0x1a073c0f,0x39cf1a07,0x08431089,0x10870843,0x08450845,0x08451087,0x39950843,0x10870845,0x41970843,0x108718cb,0x188928d1,0x315520cd,0x20cd0003,0x00a109a3,0x315520cd,0x00a109e3,0x000309a3,0x18893155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09,0xab910841,0x51c9a34f,0xb3919acd,0xab915189,0x5189ab91,0xb3939acd,0xa35151c9,0x1883ab91, +0x7bdf4a53,0x7bdfad6b,0x39cf39cf,0x00010001,0x00010001,0x39cf39cf,0xa529739d,0x318d739d,0x7bdf4a53,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x318d739d,0x7bdf4a53,0xb5adad6b,0xb5adb5ad,0x1085b5ad,0xce731085,0xb5adad6b,0xa529b5ad,0x318d739d,0xf801f801,0x0000fb41,0x00000000,0x00000000,0x00000000,0x00000000,0xfb410000,0xf801f801, +0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xffffffed,0xff53ffed,0xfd4bff53,0x7bdf739d,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xe62bdd65,0xbce1dd65,0xac5dbce1,0x7bdf739d,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0x421139cf,0x318d39cf,0x318d318d,0x7bdf739d,0x8183bcd9,0x61417181,0x9085b885,0x314532e3,0xb5ad5b83,0x90858c63,0x2a5f32e3,0xbcd9145b, +0xb5adb5ad,0x11451145,0x11451145,0x7bdf2249,0x11451987,0x9ce7b5ad,0x7bdf2b0b,0x1a071a07,0x39951087,0x20cb3955,0x08430845,0x08451047,0x39550843,0x108718cb,0x10851087,0x08450845,0x188920cd,0x00011889,0x00010003,0x20cd09a3,0x311320cd,0x00a109e3,0x31130003,0x28d120cd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x8b47abcb,0x8b478b47,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b,0x29050841,0x51c9a34f,0x494751c9,0x51c95189,0x51c951c9,0x51c951c9,0xa34f5189,0x08412905, +0x7bdf4a53,0x39cf7bdf,0x00010001,0x00010001,0x00010001,0x00010001,0xb5ad4211,0x294b7bdf,0x7bdf4a53,0xa529b5ad,0xa529a529,0xa529a529,0xa529a529,0xb5adb5ad,0xb5adb5ad,0x294b7bdf,0x7bdf4a53,0xb5adb5ad,0xad6bb5ad,0xce73b5ad,0xa529ce73,0xb5adb5ad,0xb5adad6b,0x294b7bdf,0xfb41f801,0x0000f801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf801fb41, +0x8c637bdf,0xffed739d,0x7bdffd4b,0x739d7bdf,0xfd4b739d,0x739dfd4b,0x7bdf7bdf,0x8c638c63,0x8c637bdf,0xdd65739d,0x7bdfac5d,0x739d7bdf,0xac5d739d,0x739dac5d,0x7bdf7bdf,0x8c638c63,0x8c637bdf,0x39cf739d,0x7bdf318d,0x739d7bdf,0x318d739d,0x739d318d,0x7bdf7bdf,0x8c638c63,0x8183b497,0x61417181,0x9085b885,0x5b8332e3,0xacc33145,0x90858bc3,0x2a5f32e3,0xb497145b, +0x7bdfbdef,0xb5ad2289,0xb5ad3c0f,0x39cf1a07,0xce732249,0x7bdfa529,0x7bdf94a5,0x318d8c63,0x10870849,0x18cb18cb,0x00031087,0x108718cb,0x20cd0843,0x18cb18cb,0x10871087,0x10870847,0x00031889,0x31551889,0x31133155,0x20cd20cd,0x31551087,0x00a109e3,0x00033155,0x20cd3155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x8b47abcb,0xa389abcb,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9,0xb4970841,0xa34f20c5,0xa34fa351,0xa34fa34f,0xa34f9b4f,0xa351a34f,0x2105a391,0x0841b457, +0x739d4a53,0x000139cf,0x18c71085,0x18c718c7,0x108518c7,0x108518c7,0xb5ad0001,0x318d739d,0x739d4a53,0xad6bad6b,0xa529ad6b,0xa529a529,0x9ce7ad6b,0xad6bad6b,0xa529a529,0x318d739d,0x739d4a53,0xb5adb5ad,0xb5adb5ad,0xad6bb5ad,0xad6bad6b,0xa529a529,0xad6bb5ad,0x318d739d,0xfb41f801,0x00000000,0x0000f801,0x0000fb41,0x00000000,0xfb410000,0x0000fb41,0xf801f801, +0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x8183bcd9,0x61417181,0x9085b885,0x5b8332e3,0xacc34187,0x90858bc3,0x2a5f32e3,0xbcd9145b, +0x8c63739d,0xa5291185,0x7bdf8421,0x1a077bdf,0x1a071a07,0x94a57bdf,0x94a58c63,0x114539cf,0x10851087,0x18cb1087,0x10871087,0x08450845,0x18890843,0x18cb18cb,0x108718cb,0x08450845,0x31130003,0x20cd3155,0x09a309e3,0x311320cd,0x20cd1087,0x28d109e3,0x000320cd,0x18893155,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x7ac9934b,0x934b934b,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b,0xb4971043,0x2905b497,0xb393ab91,0xab51ab51,0xab91ab91,0xab91ab51,0xb4972905,0x1883b497, +0x7bdf4a53,0x108539cf,0x2109294b,0x294b294b,0x294b294b,0x294b294b,0xb5ad1085,0x294b7bdf,0x7bdf4a53,0x7bdf7bdf,0x739d7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x294b7bdf,0x7bdf4a53,0x7bdf7bdf,0x739d7bdf,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x294b7bdf,0xfb41f801,0xfb41f801,0xfb41f801,0x0000f801,0xf8010000,0xf801fb41,0xfb41f801,0xf801f801, +0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x72cf72cf,0x7b0f72cf,0x6a8d6a8d,0x6a8d7b0f,0x72cf72cf,0x6a8d72cf,0x6a8d49c9,0x72cf6a8d, +0x739d7bdf,0x19c7739d,0x08c30903,0x1a071145,0x84213c4f,0x22495295,0x19c71987,0x63191145,0x08451087,0x08471087,0x10871087,0x10871087,0x10871087,0x10871085,0x10871087,0x10870845,0x41d941d9,0x20cd0003,0x00a109a3,0x31131889,0x20cd1087,0x20cd09a3,0x31551889,0x18890001,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907,0x18831883,0x18830841,0x51051883,0x51054905,0x51055105,0x18835105,0x08410841,0x18830841, +0x631939cf,0x294b318d,0x294b294b,0x294b294b,0x2109294b,0x294b294b,0xa529294b,0x318d6319,0x318d39cf,0x318d318d,0x318d318d,0x318d318d,0x294b318d,0x318d318d,0x318d318d,0x318d318d,0x318d39cf,0x294b318d,0x294b294b,0x318d318d,0x318d318d,0x294b294b,0x318d294b,0x318d318d,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801,0xf801f801, +0xce51d693,0xce51b58b,0xce51ce51,0xce51ce51,0xce51ded5,0xe7135281,0xce51ded5,0xce51ce51,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xc7bfffff,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d, +0x000094a5,0x9ce7ad6b,0x00005ad7,0x00000000,0x00007bdf,0x00000000,0x52950000,0xad6b0000,0x294b94a5,0x9ce7ad6b,0x294b5ad7,0x294b294b,0x294b7bdf,0x294b294b,0x5295294b,0xad6b294b,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x41cb41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x290741cd,0x41cd41cd,0x41cb41cb,0x41cd41cb,0x41cd41cd,0x41cd41cb,0x41cd41cd,0x41cd41cd,0x314941cd,0x9c131883,0x9c139c13,0x29059c13,0x5947b393,0xb3935947,0xbcd92905,0xbcd9bcd9,0x1883bcd9, +0x9c131883,0x9c139c13,0x29059c13,0x5947b393,0xb3935947,0xbcd92905,0xbcd9bcd9,0x1883bcd9,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x39c1c60f,0xce51e713,0xce51c60f,0x39c139c1,0xd693ce51,0xce51ce51,0xce51ce51,0xce512101,0x0000ffff,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6b70000,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf, +0x00008421,0x9ce7bdef,0x52950000,0x00000000,0x4a535295,0xb5ad0000,0x5295b5ad,0x52950000,0x294b8421,0x9ce7bdef,0x5295294b,0x294b294b,0x4a535295,0xb5ad294b,0x5295b5ad,0x5295294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x8b478b47,0x8b478b47,0xa347a389,0xa389a389,0x8b478b47,0x8b478b47,0xa3898b47,0xa3898b47,0x2907abcb,0xbcd91883,0x72cfb497,0xb497b497,0x59472105,0x21055947,0xb4979c13,0xb4979c13,0x1883bcd9, +0xbcd91883,0x72cfb497,0xb497b497,0x59472105,0x21055947,0xb4979c13,0xb4979c13,0x1883bcd9,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce51ce51,0xd693ce51,0xded5ce51,0x63015281,0xce51ded1,0xe717bdcd,0xce5139c1,0xce51ffd9,0x0000ffff,0xffff0000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x6b5b7bdf,0x739d739d,0x739d767f,0x739d739d,0x739d8c63,0x7bdf7bdf,0x767fc73f,0x7bdf7bdf,0x6b5b7bdf,0x739d739d,0x739d9001,0x739d739d,0x739d8c63,0x7bdf7bdf,0x9001f801,0x7bdf7bdf, +0x00000000,0x00008c63,0xad6b5295,0x0000a529,0xad6b9ce7,0xb5ad5ad7,0x000094a5,0xad6bb5ad,0x294b294b,0x294b8c63,0xad6b5295,0x294ba529,0xad6b9ce7,0xb5ad5ad7,0x294b94a5,0xad6bb5ad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0xa389abcb,0xabcba347,0x2907abcb,0xbcd91883,0x9c139c13,0x9c137acd,0x2905b497,0xbcd92905,0xb497bcd9,0xbcd972cf,0x1883bcd9, +0xbcd91883,0x9c139c13,0x9c137acd,0x2905b497,0xbcd92905,0xb497bcd9,0xbcd972cf,0x1883bcd9,0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0x5295294b,0x52957bdf,0x8c636319,0x7bdf8c63,0x52956319,0x7bdf8421,0x7bdf5ad7,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc60fce51,0x39c1ded5,0xd69339c1,0x39c1e713,0xc60fe713,0x2941c60f,0xce4d6301,0xded5ce51,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6b7c7bf,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xc73f7bdf,0x7bdf5f7d,0x739d739d,0x739d739d,0x7bdf739d,0x8c637bdf,0x7bdf7bdf,0x6b5b7bdf,0xf8017bdf,0x7bdf8801,0x739d739d,0x739d739d,0x7bdf739d, +0x00000000,0x00000000,0xad6b0000,0x00008c63,0x9ce7ad6b,0xad6b4a53,0x00008c63,0x9ce7ad6b,0x294b294b,0x294b294b,0xad6b294b,0x294b8c63,0x9ce7ad6b,0xad6b4a53,0x294b8c63,0x9ce7ad6b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cd,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0xa347a347,0xa347a347,0xa347a349,0xa347a347,0xa347a347,0xa347a347,0xa349a349,0xa349a349,0x2907a347,0x6a8d1883,0x49c96a8d,0x72cf49c9,0x188372cf,0x72cf1883,0x6a8d4189,0x6a8d6a8d,0x188372cf, +0x6a8d1883,0x49c96a8d,0x72cf49c9,0x188372cf,0x72cf1883,0x28c34189,0x28c328c3,0x188372cf,0x5295294b,0x6b5b5ad7,0x21096b5b,0x318d318d,0x294b2109,0x42112109,0x8c636b5b,0x294b6b5b,0x5295294b,0x6b5b5ad7,0x63199ce7,0x84218c63,0x6b5b5ad7,0x5ad75ad7,0x8c636b5b,0x294b6b5b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce51ce51,0x6301ce51,0xce516301,0xc60fa507,0xbdcdce51,0xce51ce51,0xce51e713,0xce51ffdf,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xc7bf0000,0xb6b70000,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63, +0xa5290000,0x0000a529,0xa5290000,0x00005295,0x8c639ce7,0x00000000,0x00008c63,0x8c6394a5,0xa529294b,0x294ba529,0xa529294b,0x294b5295,0x8c639ce7,0x294b294b,0x294b8c63,0x8c6394a5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ac941cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x7ac9934b,0x7ac9934b,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x7ac9934b,0x93097ac9,0x930b930b,0x2907930b,0x9c131883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0x9c132905,0x72cf7acd,0xb497b497,0x1883b497, +0x9c131883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0x9c132905,0x28c37acd,0x28c372cf,0x188372cf,0x739d39cf,0x4a537bdf,0x0001318d,0x00010001,0x00010001,0x318d0001,0x84215295,0x2109739d,0x739d39cf,0x6b5b7bdf,0x7bdf8c63,0x5ad77bdf,0x8c636b5b,0x94a594a5,0x8421739d,0x2109739d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdcdce51,0xce51ce51,0xbdcde713,0xd693ce51,0xce512101,0xce51d693,0xded56301,0xce51d693,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000c7bf,0x00000000,0x739d739d,0x7bdf7bdf,0xffff7bdf,0x739dc73f,0x6b5b7bdf,0xc73fffff,0x739d739d,0x7bdf6b5b,0x739d739d,0x7bdf7bdf,0xf8017bdf,0x739da801,0x6b5b7bdf,0xa801f801,0x739d739d,0x7bdf6b5b, +0xb5ad0000,0x00008421,0x8c634a53,0x00005ad7,0x9ce75295,0x52950000,0x5ad70000,0x84210000,0xb5ad294b,0x294b8421,0x8c634a53,0x294b5ad7,0x9ce75295,0x5295294b,0x5ad7294b,0x8421294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x314941cb,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x31493189,0x31893189,0x31893149,0x31893189,0x31493189,0x31893189,0x31893189,0x31493149,0x18c53149,0x9c131883,0x28c372cf,0x28c3b497,0x2105bcd9,0xb4972905,0xb4979b4f,0x9c139c13,0x18839c13, +0x9c131883,0x28c372cf,0xb497b497,0x2105bcd9,0xb4972905,0x28c39b4f,0x28c328c3,0x1883628d,0x5ad7294b,0x294b7bdf,0x00010001,0x00010001,0x00010001,0x00010001,0x6b5ba529,0x210939cf,0x5ad7294b,0x6b5b7bdf,0x7bdf7bdf,0x5ad77bdf,0x94a594a5,0x84217bdf,0x6b5b7bdf,0x210939cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c1ded5,0xef59ce51,0xce516301,0xce51ce51,0xd693e713,0xb58bce51,0xe713ffd9,0xce51ce51,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6b70000,0x8c638c63,0xffff7bdf,0x767fc73f,0x5f7d767f,0x7bdf7bdf,0x5f7d767f,0x8c638c63,0x6b5b8c63,0x8c638c63,0xb8017bdf,0x9001a801,0x88019001,0x7bdf7bdf,0x88019001,0x8c638c63,0x6b5b8c63, +0x94a55295,0x52950000,0x00005ad7,0xa529a529,0x00000000,0x00006319,0x52950000,0x5ad75ad7,0x94a55295,0x5295294b,0x294b5ad7,0xa529a529,0x294b294b,0x294b6319,0x5295294b,0x5ad75ad7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72cd41cd,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x728b72cd,0x72cd72cd,0x6a8b72cd,0x6a8b6a8b,0x72cd728b,0x72cd72cd,0x290772cd,0xbcd91883,0x28c3bcd9,0x28c372cf,0x210572cf,0x9c132105,0xbcd949c9,0xbcd9bcd9,0x1883bcd9, +0xbcd91883,0x28c3bcd9,0xbcd9bcd9,0x2105bcd9,0x9c132105,0xdef749c9,0xb5addef7,0x188372cf,0x6319318d,0x294b7bdf,0x08430001,0x10850843,0x10851085,0x00011085,0x8421a529,0x21096319,0x6319318d,0x6b5b7bdf,0x5ad7739d,0x7bdf6b5b,0x8421739d,0x7bdf8c63,0x84218421,0x21096319,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b41bdcd,0xd693e713,0xded5e713,0xce51c60f,0xce51ce51,0xb58bd693,0xce519cc5,0xce51ded5,0x0000ffff,0x0000c7bf,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0xb6b70000,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf, +0xb5ada529,0xa5290000,0x5ad7b5ad,0x94a5ad6b,0xad6b0000,0x5295bdef,0x52950000,0x63190000,0xb5ada529,0xa529294b,0x5ad7b5ad,0x94a5ad6b,0xad6b294b,0x5295bdef,0x5295294b,0x6319294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930941cb,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x93098b09,0x93099309,0x8b098b09,0x8b098b09,0x290782c9,0x72cf1883,0x6a8d6a8d,0x6a8ddef7,0x18836a8d,0x72cf1883,0x41896a8d,0x6a8d6a8d,0x188372cf, +0x72cf1883,0x28c36a8d,0x6a8d6a8d,0x18836a8d,0x72cf1883,0xffff6a8d,0xb5addef7,0x188341c9,0x5ad7294b,0x21095ad7,0xb5ad739d,0xad6bad6b,0xa529ad6b,0x6b5ba529,0x5ad7ad6b,0x39cf5295,0x5ad7294b,0x63195ad7,0x8c638c63,0x63196b5b,0x5ad76b5b,0x7bdf5ad7,0x5ad78421,0x39cf5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe713ce51,0xd693ded1,0xce51d693,0x39c1c60f,0x39c1e713,0x39c139c1,0xce51b58b,0xce5139c1,0xc7bfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6b70000,0xc73f7bdf,0x6b5b767f,0x739d8c63,0x7bdf7bdf,0xc73fffff,0x8c638c63,0x8c638c63,0x8c638c63,0xf8017bdf,0x6b5b9001,0x739d8c63,0x7bdf7bdf,0xa801f801,0x8c638c63,0x8c638c63,0x8c638c63, +0x8c63bdef,0x9ce70000,0x529594a5,0x94a594a5,0x94a50000,0x000094a5,0xbdef0000,0x52959ce7,0x8c63bdef,0x9ce7294b,0x529594a5,0x94a594a5,0x94a5294b,0x294b94a5,0xbdef294b,0x52959ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0xabcb8b47,0xa389abcb,0xabcbabcb,0xa347abcb,0xabcb8b47,0xa389abcb,0xa389a389,0xabcbabcb,0x2907934b,0xbcd91883,0xdef7bcd9,0xdef772cf,0x2905628d,0xb4972905,0xb497b497,0xbcd9bcd9,0x1883bcd9, +0xbcd91883,0x28c3bcd9,0x72cfb5ad,0x29059c13,0xb4972905,0x72cfb497,0xb5addef7,0x188372cf,0x4211294b,0x84217bdf,0x8c635ad7,0x94a58c63,0x94a594a5,0x4a538c63,0x5ad7739d,0x39cf7bdf,0x4211294b,0x8c63739d,0x739da529,0x94a56b5b,0x842194a5,0x6319739d,0x4a535ad7,0x39cf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce51ce51,0x39c1ce51,0xce51ce51,0xd693ded5,0x6301ce51,0x63015281,0x39c1e713,0x6b436b43,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x739d7bdf,0x739d739d,0x739d739d,0xc73f739d,0x5f7d5f7d,0x739d5f7d,0x739d739d,0x7bdf8c63,0x739d7bdf,0x739d739d,0x739d739d,0xa801739d,0x88018801,0x739d8801,0x739d739d,0x7bdf8c63, +0x4a538c63,0x5ad70000,0x00008c63,0x00009ce7,0x00005295,0x000094a5,0xad6b5295,0x000094a5,0x4a538c63,0x5ad7294b,0x294b8c63,0x294b9ce7,0x294b5295,0x294b94a5,0xad6b5295,0x294b94a5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cb,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0xa389a389,0x8b478b47,0x8b478b47,0xabcb8b47,0xa389a389,0x8b478b47,0xa3478b47,0x8b47abcb,0x29077ac9,0x9c131883,0xb5ad9c13,0xb5ad628d,0x290572cf,0x9c132105,0x72cf9c13,0x9c13bcd9,0x18839c13, +0x9c131883,0xdef7b5ad,0x72cfb5ad,0x2905b497,0x9c132105,0x72cf9c13,0xb5adffff,0x1883628d,0x8c634a53,0xdef7c631,0xe739def7,0xf7bdf7bd,0xf7bdf7bd,0xdef7e739,0xc631def7,0x39cf8c63,0x5295294b,0x94a594a5,0x5ad77bdf,0x739d94a5,0x842194a5,0x6b5b8421,0x94a56b5b,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd693ce51,0xe713ce51,0xc60fce51,0xd69318c1,0xded5ef59,0xe713ef55,0xffdbce51,0xce4d5281,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x7bdf7bdf,0x739d8c63,0x8c63767f,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf,0x7bdf7bdf,0x739d8c63,0x8c639001,0x739d8c63,0x739d6b5b,0x8c638c63,0x7bdf8c63,0x7bdf7bdf, +0x00005ad7,0x00000000,0x4a530000,0x00005ad7,0xad6bad6b,0x00000000,0x9ce75ad7,0x00000000,0x294b5ad7,0x294b294b,0x4a53294b,0x294b5ad7,0xad6bad6b,0x294b294b,0x9ce75ad7,0x294b294b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38941cd,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x8b478b47,0x8b478b47,0xa389a389,0xabcbabcb,0x8b478b47,0x8b478b47,0xa389a389,0xa389a389,0x2907930b,0xb4971883,0xb497b497,0xbcd9bcd9,0x18839c13,0x9c132105,0xb497b497,0xb4979b4f,0x1883b497, +0xb4971883,0x72cf72cf,0x72cfb5ad,0x18839c13,0x9c132105,0xb497b497,0xb5addef7,0x188372cf,0x7bdf4a53,0xdef7ce73,0xe739ef7b,0x42114211,0x421139cf,0xef7be739,0xc631d6b5,0x318d7bdf,0x5295294b,0x7bdf739d,0x52957bdf,0x842194a5,0x7bdf7bdf,0x5ad77bdf,0x6b5b6b5b,0x294b6b5b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69118c1,0xce51ce51,0xce51ce51,0xd693d68f,0xce51ce51,0x1081ce51,0xce51ce51,0xce51e713,0x0000ffff,0x00000000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x0000ffff,0xb6b70000,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xc73f7bdf,0x8c635f7d,0x6b5b8c63,0x7bdf6b5b,0x7bdf7bdf,0x7bdf739d,0x7bdf7bdf,0x8c638c63,0xf8017bdf,0x8c638801,0x6b5b8c63, +0x0000ad6b,0xb5adad6b,0x00000000,0x00000000,0x9ce7ad6b,0xad6b0000,0x00008421,0xad6b5295,0x294bad6b,0xb5adad6b,0x294b294b,0x294b294b,0x9ce7ad6b,0xad6b294b,0x294b8421,0xad6b5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34941cb,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0xa347a349,0xa347a347,0xa347a347,0xa349a349,0x29078b09,0x6a8d1883,0x72cf72cf,0x6a8d6a8d,0x10436a8d,0x72cf1883,0x72cf72cf,0x6a8d4189,0x18836a8d, +0x6a8d1883,0x72cf72cf,0x41874187,0x10436a8d,0x72cf1883,0x72cf72cf,0xb5ad2905,0x18834187,0xad6b4a53,0xdef7d6b5,0x39cf39cf,0xc801f801,0xc801f801,0x39cf39cf,0xd6b5def7,0x318da529,0x739d39cf,0x7bdf8c63,0x5ad7739d,0x7bdf7bdf,0x7bdf8421,0x63195ad7,0x6b5b8c63,0x2109739d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7976301,0x39c1ce51,0xd69318c1,0xc60fce51,0x294139c1,0xce51d693,0xad49d693,0xe7136301,0xc7bf0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xb6b70000,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xffffc73f,0x767fc73f,0x5f7d767f,0x7bdf739d,0x739d7bdf,0x739d739d,0x739d739d,0x739d739d,0xf801a801,0x9001a801,0x88019001,0x7bdf739d, +0x00008c63,0x9ce7b5ad,0xad6b0000,0x0000b5ad,0x8c630000,0x94a50000,0x000094a5,0xa5294a53,0x294b8c63,0x9ce7b5ad,0xad6b294b,0x294bb5ad,0x8c63294b,0x94a5294b,0x294b94a5,0xa5294a53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabcb41cd,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x8b47abcb,0x8b478b47,0xabcbabcb,0x8b47abcb,0x8b47abcb,0x8b478b47,0x8b478b47,0xa347a389,0x2907934b,0xbcd91883,0xa38fbcd9,0x9c13bcd9,0x1883bcd9,0x9c132105,0x9c139c13,0x72cf9b4f,0x1883bcd9, +0xbcd91883,0xa38fbcd9,0x9c13bcd9,0x1883bcd9,0x9c132105,0x9c139c13,0xffff9b4f,0x188372cf,0xc6318c63,0x39cfe739,0xc801c801,0xc801fd01,0xf801fd01,0xc801c801,0xef7b4211,0x294bad6b,0x5ad7294b,0x5ad75ad7,0x5ad75ad7,0x7bdf6b5b,0x5ad76319,0x8c6394a5,0x7bdf7bdf,0x210939cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe713e713,0x6b41d693,0xe7136301,0x39c1c60f,0x63016301,0xd6935281,0xce51ce51,0xce51ce51,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x0000c7bf,0x00000000,0xb6b70000,0x8c637bdf,0xc73f739d,0x7bdf5f7d,0x739d7bdf,0x5f7d739d,0x739d5f7d,0x7bdf7bdf,0x8c638c63,0x8c637bdf,0xf801739d,0x7bdf8801,0x739d7bdf,0x8801739d,0x739d8801,0x7bdf7bdf,0x8c638c63, +0x000094a5,0x94a55ad7,0xa5290000,0x00008c63,0x52950000,0x94a50000,0xad6b4a53,0x0000ad6b,0x294b94a5,0x94a55ad7,0xa529294b,0x294b8c63,0x5295294b,0x94a5294b,0xad6b4a53,0x294bad6b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4741cd,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x8b47abcb,0xa389abcb,0xabcba347,0xabcbabcb,0x8b47abcb,0xa389abcb,0x8b47a389,0x8b478b47,0x29077ac9,0x9c131883,0xa38f72cf,0xbcd9bcd9,0x2105bcd9,0xb4972905,0x9c13b497,0x9c139c13,0x18839c13, +0x9c131883,0xa38f72cf,0xbcd9bcd9,0x2105bcd9,0xb4972905,0x9c13b497,0x628d9c13,0x1883628d,0xdef78c63,0xf80139cf,0xfd01fd01,0xf801fd01,0xfd01ffc1,0xf801f801,0xef7bf801,0x318da529,0x6319318d,0x94a5739d,0x94a58c63,0x5ad76b5b,0x9ce76b5b,0x7bdf8c63,0x7bdf8421,0x21096319,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc60fce51,0xef59bdcd,0xb58be713,0xce51ded5,0x63016301,0xce51e713,0xe7136301,0xc60fce51,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x739d739d,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d, +0x00006319,0x5ad70000,0x84215ad7,0x00000000,0x63190000,0x94a55295,0xb5ad0000,0x5ad794a5,0x294b6319,0x5ad7294b,0x84215ad7,0x294b294b,0x6319294b,0x94a55295,0xb5ad294b,0x5ad794a5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x934b41cd,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x7ac9934b,0x934b934b,0x7ac97ac9,0x934b7ac9,0x7ac9934b,0x934b934b,0x930b7ac9,0x934b934b,0x2907830b,0xbcd91883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0xbcd92905,0xb4979c13,0xbcd9bcd9,0x1883bcd9, +0xbcd91883,0x7acd9c13,0xbcd99c13,0x2105bcd9,0xbcd92905,0xb4979c13,0xbcd9bcd9,0x1883bcd9,0xe7398c63,0xfd0139cf,0xffc1ffc1,0xfd01ffc1,0xffc1fd01,0xfd01ffc1,0xef7bfd01,0x294bad6b,0x6b5b39cf,0x63195ad7,0x52954211,0x739d739d,0x63194a53,0x63196319,0x42115295,0x318d5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdcde717,0xce51b58b,0xce51b58b,0xce51d693,0xef55ffdb,0xd693ded5,0xce51e713,0xce51ce51,0xb6b7c7bf,0xb6b7b6b7,0xb6b7b6b7,0x00000000,0xb6b7b6b7,0xb6b70000,0xb6b7b6b7,0xc7bfb6b7,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf, +0x0000a529,0x00000000,0x9ce70000,0x52950000,0xad6bad6b,0x00005295,0x8c630000,0xad6b5295,0x294ba529,0x294b294b,0x9ce7294b,0x5295294b,0xad6bad6b,0x294b5295,0x8c63294b,0xad6b5295,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072907,0x29072107,0x20c52907,0x72cf1883,0x7b0f72cf,0x6a8d6a8d,0x18837b0f,0x72cf1883,0x6a8d72cf,0x6a8d49c9,0x18836a8d, +0x72cf1883,0x7b0f72cf,0x6a8d6a8d,0x18837b0f,0x72cf1883,0x6a8d72cf,0x6a8d49c9,0x18836a8d,0xdef78421,0xf801318d,0xf801fd01,0xffc1fd01,0xfd01f801,0xfd01ffc1,0xef7bf801,0x318d9ce7,0x318d39cf,0x318d318d,0x294b318d,0x294b294b,0x39cf2109,0x318d39cf,0x2109294b,0x318d318d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5ce73,0xce73c631,0xef7bdef7,0xd6b5ce73,0xef7be739,0xce73bdef,0xe739e739,0xc631ce73,0x1a9f21d5,0x1a9f2215,0x2a570a1b,0x01d922e1,0x1a9f129f,0x1a9f2215,0x3adb22e1,0x22151a9f,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe7bde7bd,0xffffffff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe7bde7bd,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a050000,0x14071407,0x14071449,0x0b071449,0x13c90a05,0x140913c9,0x14071409,0x00000b07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa52d8465,0x9d2da52d,0x9d2d9d2b,0x9d2b9d2b,0xa52da56d,0x9d2b9d2b,0x9d2b9d2b,0x9d2b94eb,0xe7770000,0x00009619,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x2109314b,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x2109314b, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0xe739def7,0xffffffff,0xef7bef7b,0xd6b5def7,0xc631ce73,0xd6b5d6b5,0xc631b5ad,0xdef7d6b5,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x125d0000,0xffffffff,0xefffffff,0xefffefff,0xe7bdefff,0xffffe7bd,0xefffefff,0xffffe7bd,0xe7bdffff,0x757f757f,0x757f757f,0x757f757f,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0xffffffff,0xefffffff,0x59cbefff,0xe7bdefff,0xffffe7bd,0xefffefff,0xffffe7bd,0xe7bdffff,0x0b070000,0x00010b07,0x0b070143,0x00010143,0x0b070b07,0x00010b07,0x0b070143,0x00000b07,0x0a050000,0x140713c7,0x14490b87,0x00010a85,0x13870a05,0x144913c9,0x14071409,0x00000b07,0x0b070000,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x00000b07, +0x9d2ba52d,0xa56fa52d,0x9d2b94a9,0x9d2b9d2b,0xa56f94e9,0xa52dadf3,0x9d2b9d2b,0xa56d9d2b,0x85570000,0x00006c11,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xe7770000,0x00009619,0x7a91314b,0x828f8291,0x82918291,0x728f728f,0x728f728f,0x8291728f,0x8291728f,0x314b7a91,0x7a91314b,0x828f8291,0x82918291,0x728f728f,0x728f728f,0x8291728f,0x8291728f,0x314b7a91, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bdef7b,0xdef7d6b5,0xf7bdf7bd,0xd6b5e739,0xf7bdef7b,0xe739e739,0xffffffff,0xe739ef7b,0x1a9f1993,0x1a9f2215,0x3adb129f,0x1a9f1a9f,0x1a9f125d,0x1a9f1191,0x21d51a9f,0x221501d9,0xffffefff,0xe7bdefff,0xefffe7bd,0xe7bdefff,0xefffffff,0xe7bdefff,0xffffffff,0xefffefff,0x757f757f,0xffff757f,0x757f757f,0x757f8dff,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x59cbefff,0xe7bdefff,0x59cbe7bd,0x59cbefff,0xefffffff,0xe7bdefff,0xffff59cb,0x59cbefff,0x0b070000,0x0a851409,0x13c71407,0x0a8513c7,0x14071449,0x0b471449,0x14071409,0x00000b07,0x00010001,0x13c70b47,0x14490b87,0x09c50b07,0x13870a05,0x140913c9,0x0ac51409,0x00010001,0x0b070000,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee9,0x00000b07, +0xad6fa52d,0x9d2badb1,0x9d2b9d2b,0x9d2d9d2d,0xa56da52d,0xa56fa56f,0x9d2b94e9,0xadb19d2b,0xaedd0000,0x974d8557,0xaedd0000,0x00008557,0xaedd0000,0x760b8557,0x85570000,0x00006c11,0x8ad1314b,0x828f5189,0x828f5189,0x92d159cb,0x9b1359cb,0x92d159cb,0x9b135989,0x314b8ad1,0x8ad1314b,0x828f828f,0x828f828f,0x728f92d1,0x9b13728f,0x92d19b13,0x9b1392cf,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5def7,0xf7bdef7b,0xd6b5d6b5,0xf7bddef7,0xdef7ce73,0xf7bdf7bd,0xd6b5def7,0xf7bdffff,0x00001a9f,0x00001a9f,0x22e10000,0x00000000,0x00000000,0x000022e1,0x1a9f0000,0x22e10000,0xe7bdffff,0xe7bde7bd,0xffffffff,0xffffe7bd,0xefffffff,0xe7bdefff,0xffffffff,0xe7bdefff,0x757f757f,0x757fffff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f8dff, +0x6b5b59cb,0x59cb59cb,0x59cbffff,0x59cb59cb,0x59cbffff,0x59cbefff,0x59cb7a8f,0x7a8f59cb,0x00010000,0x14890a85,0x14091407,0x00010b47,0x14070b47,0x00010b47,0x14070b47,0x00000b07,0x01430000,0x13c70b07,0x14090b87,0x0b071387,0x0a850001,0x144913c9,0x0b871449,0x00000b07,0x0b070000,0xd6a7dee7,0xd6a7d6a7,0xd6a7d6a7,0xd6a7d6a7,0xd6a7d6a7,0xdee7d6e9,0x00000b07, +0x9d2b9ceb,0xa52d9d2b,0xa52d9d2b,0x9d2b9d2b,0x9d2b9d2b,0xa56d9d2b,0x9d2b9d2d,0x94e99d2d,0xaedd0000,0x760b8557,0xaedd0000,0x974d8557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x828f314b,0x92cf4147,0x92cf4147,0x92cf4147,0x92cf4147,0x92d14147,0x92d14147,0x314b828f,0x828f314b,0x92cf92d1,0x92cf92cf,0x1885728f,0x728f1885,0x92d192d1,0x92d192d1,0x314b828f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdef7e739,0xdef7ce73,0xef7bef7b,0xb5adbdef,0xe739d6b5,0xc631d6b5,0xef7bef7b,0xbdefce73,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x0a1b0000,0xffffffff,0xefffefff,0xffffefff,0xffffe7bd,0xefffefff,0xffffe7bd,0xefffffff,0xe7bdefff,0xffff757f,0x757f757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f,0x8dff757f,0x757f757f, +0x7a8f9353,0xbc179353,0x935359cb,0x7a8f7a8f,0x59cb59cb,0x6b5b59cb,0x93537a8f,0x7a8f59cb,0x01430000,0x14071409,0x14490b47,0x0b471449,0x14071449,0x0b471449,0x14071449,0x00000b07,0x0a050000,0x14070b87,0x140913c9,0x0b071407,0x0b070143,0x14491407,0x13871449,0x00000b07,0x0b070000,0xd6e9dee7,0xdee9dee7,0xdee9dee9,0xdee9dee7,0xdee9dee7,0xdee7d6a7,0x00000b07, +0x9d2ba56d,0x9d2ba56f,0xa56fa56f,0xa56fa52f,0x9ceba56f,0xa56f9d2b,0x94e99d2d,0x94eba52d,0xaedd0000,0x00008557,0xe7770000,0x760b9619,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x728f314b,0x5189828f,0x59cb828f,0x51899b13,0x51899b13,0x5989828f,0x59cb92d1,0x314b8291,0x728f314b,0x828f828f,0x9b13828f,0x1885728f,0x728f1885,0x92cf828f,0x92d192d1,0x314b8291, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdefc631,0xf7bdce73,0xb5adce73,0xd6b5ce73,0xb5adce73,0xd6b5d6b5,0xd6b5c631,0xd6b5ce73,0x1a9f2215,0x22e12215,0x32591a9f,0x1a9f1a9f,0x22e11a9f,0x22e12215,0x22151a9f,0x22151a9f,0xefffefff,0xefffefff,0xffffe7bd,0xffffffff,0xefffe7bd,0xe7bde7bd,0xefffefff,0xe7bdefff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757fffff,0x757f757f,0x757f8dff,0x757f757f, +0x59cb7a8f,0x93539353,0x93537a8f,0x59cb59cb,0x7a8f59cb,0x59cb7a8f,0x7a8f7a8f,0xbc177a8f,0x0b070000,0x0b471407,0x0b470001,0x140713c7,0x140713c7,0x14091449,0x0a851449,0x00000001,0x0a050000,0x14070b47,0x13c913c9,0x0b0713c9,0x13870a05,0x14491407,0x0b871409,0x00000b07,0x0b070000,0xd6a7dee7,0xdee7dee9,0xdee7dee7,0xdee7dee7,0xdee9dee7,0xdee7d6a7,0x00000b07, +0xa52d9ceb,0xadf59d2b,0xa56d9d2b,0xa52da52d,0xad6f9d2b,0x94e9a52d,0x9d2b9d2b,0x94e99d2d,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xe7770000,0x00009619,0xaedd0000,0x00008557,0x728f314b,0x414992cf,0x414992d1,0x39479b13,0x414992d1,0x414992d1,0x3947828f,0x314b728f,0x728f314b,0x92d192cf,0x92d192d1,0x1885728f,0x728f1885,0x92d192d1,0x828f828f,0x314b728f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xffffffff,0xef7bef7b,0xdef7def7,0xe739def7,0xffffef7b,0xdef7e739,0xffffffff,0xe739ef7b,0x00001a9f,0x0000021b,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x01970000,0x1a9f0000,0xe7bdffff,0xe7bde7bd,0xefffffff,0xffffe7bd,0xe7bde7bd,0xffffe7bd,0xefffefff,0xe7bde7bd,0x757f757f,0x757f757f,0x757f757f,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x59cbbc17,0x7a8f7a8f,0x7a8f8421,0xbc177a8f,0x7a8fbc17,0xbc17bc17,0x93537a8f,0x93537a8f,0x01430000,0x14890b87,0x14491407,0x14071409,0x00010b47,0x140713c7,0x14071407,0x00000b07,0x00010001,0x0bc71387,0x13c71407,0x0b0713c9,0x13870a05,0x13c71409,0x0a851409,0x00010001,0x0b070000,0xd6a7dee7,0xdee7dee9,0xd6e9d6a7,0xd6a7d6a7,0xdee7dee7,0xdee7d6a7,0x00000b07, +0xa52d94e9,0x9d2d9ceb,0xa56d94e9,0x9d2b9d2b,0x9d2b9d2b,0xadb1a56f,0xa56fa52d,0x9d2da52d,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xaedd0000,0x974d8557,0x8ad1314b,0x92d159cb,0x9b1359cb,0x828f59cb,0x828f5189,0x9b135989,0x9b1359cb,0x314b8ad1,0x8ad1314b,0x92d19b13,0x9b139b13,0x1885728f,0x728f1885,0x9b1392cf,0x9b139b13,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5d6b5,0xffffffff,0xe739ef7b,0xf7bdf7bd,0xd6b5ce73,0xf7bdef7b,0xe739e739,0xf7bdf7bd,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x22e10000,0x125d0000,0xffffffff,0xefffefff,0xefffefff,0xe7bdefff,0xffffffff,0xe7bde7bd,0xefffffff,0xe7bdefff,0x757f757f,0x757f8dff,0x757f757f,0x757f8dff,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8fbc17,0xbc17bc17,0x93539353,0x7a8f7a8f,0x59cb9353,0x93539353,0x7a8f7a8f,0x93539353,0x00010000,0x14070a85,0x14890b47,0x14071449,0x0b471449,0x14091407,0x14070b47,0x00000143,0x0a050000,0x13871449,0x13871407,0x0b071449,0x0a850001,0x0bc71409,0x0b051409,0x000009c5,0x0b070000,0xd6a7dee7,0xdee7dee9,0xdee9d6a7,0xd6a7dee9,0xdee7dee7,0xdee7d6a7,0x00000b07, +0x9d2b9d2d,0x9d2ba56f,0x9d2b9d2d,0xadafa56d,0x9ceba52d,0x9d2b9d2b,0xa52da52d,0xa56f9d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x760b8557,0x828f314b,0x92d14147,0x92d14147,0x92cf4147,0x92cf4147,0x92d14147,0x92d14147,0x314b828f,0x828f314b,0x92d192d1,0x92d192d1,0x1885728f,0x728f1885,0x92d192d1,0x92d192d1,0x314b828f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe739ef7b,0xd6b5c631,0xe739f7bd,0xd6b5ce73,0xd6b5d6b5,0xc631d6b5,0xdef7def7,0xc631c631,0x000022e1,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x1a9f0000,0xefffffff,0xefffefff,0xe7bde7bd,0xe7bde7bd,0xffffffff,0xe7bdffff,0xffffffff,0xe7bdefff,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8f9353,0x93537a8f,0x93537a8f,0x59cb7a8f,0x93537a8f,0x7a8f9353,0x7a8f7a8f,0x7a8f59cb,0x0b070000,0x0b471449,0x0b470001,0x0b4713c7,0x14071407,0x0b471407,0x0b470001,0x00000001,0x0a050000,0x0b871449,0x0b871407,0x0b071407,0x0b070143,0x13871449,0x0b871407,0x00000b07,0x0b070000,0xd6e9dee7,0xdee7dee9,0xdee9d6a7,0xd6a7dee9,0xdee9dee7,0xdee7d6a7,0x00000b07, +0xa52da52d,0xa56fa56f,0x9d2ba52d,0xa52da56f,0xadf3ad6f,0xa52d94e9,0x9d2d9d2b,0x9d2d9d2b,0xe777974d,0x00009619,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x8ad1314b,0x59cb9b13,0x59899b13,0x59cb828f,0x59cb9b13,0x59cb92d1,0x59cb9b13,0x314b8ad1,0x8ad1314b,0x9b139b13,0x92cf9b13,0x1885728f,0x728f1885,0x92d192d1,0x9b139b13,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdef7d6b5,0xef7bd6b5,0xbdefbdef,0xe739def7,0xe739ce73,0xffffffff,0xe739def7,0xffffffff,0x00001a9f,0x00001a9f,0x22e10000,0x00000000,0x00000000,0x0000125d,0x125d0000,0x1a9f0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xe7bdefff,0xe7bdffff,0xe7bde7bd,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757fffff,0x757f757f,0x757f757f,0x757f757f, +0x93539353,0x7a8f59cb,0x59cb7a8f,0x7a8f59cb,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x93537a8f,0x0b070000,0x14071449,0x14090b47,0x00010b47,0x14070b47,0x14091407,0x14070b47,0x00000b07,0x0a050000,0x13871449,0x144913c9,0x00010a85,0x0b870a05,0x0b871449,0x0b871449,0x00000b07,0x0b070000,0xd6a7dee7,0xdee7dee7,0xd6a7d6a7,0xd6a7d6a7,0xdee9dee7,0xdee7d6a7,0x00000b07, +0x8ca794e9,0x9d2ba52d,0xa52d9d2b,0x9d2ba56f,0xa52d9d2d,0xad6fa52d,0xa52d9d2d,0xa56d94e9,0x8557760b,0x00006c11,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xe7770000,0x00009619,0x728f314b,0x3947828f,0x4989828f,0x414992d1,0x3947828f,0x4147828f,0x39479b13,0x314b728f,0x728f314b,0x828f828f,0x9b13828f,0x1885728f,0x728f1885,0x92cf828f,0x828f9b13,0x314b728f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bdf7bd,0xef7bef7b,0xf7bdffff,0xe739ef7b,0xef7bf7bd,0xe739d6b5,0xdef7e739,0xdef7ce73,0x1a9f094f,0x1a9f1191,0x21d31a9f,0x1a9f0a1b,0x1a9f2b65,0x1a9f2215,0x2215125d,0x11912b23,0xffffffff,0xe7bdffff,0xefffefff,0xefffefff,0xefffefff,0xffffe7bd,0xefffffff,0xe7bdefff,0x757f757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f, +0x93539353,0xbc177a8f,0x7a8fbc17,0x9353bc17,0xbc1759cb,0x7a8fbc17,0x93539353,0x7a8f8421,0x00010000,0x14070a85,0x14071409,0x14491407,0x0b471407,0x0b4713c7,0x14071449,0x00000b07,0x0a050001,0x0b871409,0x14491407,0x09c50b05,0x13c70a05,0x0b871449,0x0a851449,0x00010001,0x0b070000,0xd6a7dee7,0xdee7dee9,0xdee7dee7,0xdee7dee7,0xdee9dee7,0xdee7d6e9,0x00000b07, +0xa52da52d,0xa52f8c67,0xa56f94e9,0x9d2d9d2b,0xad6fad6f,0x9d2ba56d,0x9d2b9d2d,0x9d2d9d2b,0xaedd0000,0x00008557,0xe777760b,0x00009619,0xaedd974d,0x00008557,0x85570000,0x00006c11,0x8291314b,0x92d159cb,0x9b1359cb,0x828f5189,0x828f5189,0x92d159cb,0x92d159cb,0x314b8291,0x8291314b,0x92d192d1,0x9b139b13,0x1885728f,0x728f1885,0x92d192d1,0x92d192d1,0x314b8291, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce73ce73,0xe739e739,0xd6b5d6b5,0xe739ef7b,0xce73ce73,0xe739d6b5,0xbdefbdef,0xe739d6b5,0x00000a1b,0x000022e1,0x2b230000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x1a9f0000,0xe7bdffff,0xefffe7bd,0xefffefff,0xe7bde7bd,0xe7bde7bd,0xffffe7bd,0xefffefff,0xe7bde7bd,0x757f757f,0x757f757f,0x757f757f,0x757f8dff,0x757f757f,0x757f757f,0x757fffff,0x757f757f, +0x7a8f9353,0x93537a8f,0xbc179353,0x93537a8f,0x93536b5b,0x7a8f9353,0x935359cb,0x59cb7a8f,0x0b070000,0x14071449,0x0b471449,0x14091407,0x00010b47,0x00010b47,0x14070b47,0x00000001,0x0a050000,0x0b871409,0x144913c9,0x0b070b87,0x13c70a05,0x13871449,0x0b071449,0x000009c5,0x0b070000,0xd6a7dee7,0xdee9dee9,0xdee7dee7,0xdee9dee9,0xdee9dee9,0xdee7d6a7,0x00000b07, +0xa52f9ceb,0x94eba56d,0x9d2ba52d,0x9d2ba52d,0xa52da52d,0xadb19d2b,0x9d2b9d2b,0x94a99d2b,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xaedd760b,0x00008557,0xaedd0000,0x00008557,0x828f314b,0x92cf4147,0x92d14147,0x92cf4147,0x92cf4147,0x92cf4147,0x92d14147,0x314b828f,0x828f314b,0x92cf92cf,0x92d192d1,0x1885728f,0x728f1885,0x92cf92cf,0x92d192d1,0x314b828f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6b5d6b5,0xbdefbdef,0xf7bdf7bd,0xb5adc631,0xef7bdef7,0xe739e739,0xffffffff,0xc631e739,0x00001a9f,0x00001a9f,0x1a9f0000,0x00000000,0x00000000,0x00001a9f,0x1a9f0000,0x1a9f0000,0xffffefff,0xe7bdefff,0xe7bde7bd,0xffffefff,0xffffffff,0xe7bdefff,0xe7bde7bd,0xe7bde7bd,0x8dff757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0xffff757f,0x757f757f,0x757f757f, +0x59cb7a8f,0x7a8f9353,0x93539353,0x7a8fbc17,0x7a8f7a8f,0x7a8f7a8f,0x7a8f7a8f,0xbc17bc17,0x0b070000,0x14071449,0x00010b47,0x14091407,0x0b471449,0x0b471407,0x14091449,0x00000b07,0x00010001,0x0b870b47,0x144913c9,0x0b070b87,0x0ac50001,0x13871449,0x0b8713c7,0x00010b07,0x0b070000,0xd6a7dee7,0xd6e9d6a7,0xd6a7d6a7,0xd6a7d6a7,0xd6e9d6e9,0xdee7d6e9,0x00000b07, +0xa52dad6f,0xad6f9d2b,0x9d2ba52d,0x94e9a56d,0xa52d94e9,0x9d2b9d2b,0xa52fa52d,0x9d2b9d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x8ad1314b,0x59cb9b13,0x51899b13,0x51899b13,0x5189828f,0x5189828f,0x598992d1,0x314b8ad1,0x8ad1314b,0x9b139b13,0x828f9b13,0x1885728f,0x728f1885,0x828f828f,0x92cf92d1,0x314b8ad1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe739e739,0xffffffff,0xef7bf7bd,0xd6b5e739,0xdef7bdef,0xf7bde739,0xdef7def7,0xfffff7bd,0x125d2215,0x1a9f2215,0x22151a9f,0x1a9f1a9f,0x22e11a9f,0x125d2215,0x19911a9f,0x22151a9f,0xefffefff,0xe7bdefff,0xefffefff,0xe7bdefff,0xefffffff,0xe7bdefff,0xffffffff,0xefffefff,0x757f8dff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f8dff,0x757f757f,0x757f757f, +0x93537a8f,0x7a8f7a8f,0x7a8f59cb,0x93539353,0x59cb7a8f,0x59cbbc17,0xbc177a8f,0x93539353,0x0b070000,0x14070a85,0x0b471449,0x0b870a85,0x0a851449,0x14091407,0x0a850a85,0x00000b07,0x01430000,0x13c70b87,0x14091407,0x0b070bc7,0x0b470143,0x138713c9,0x14491449,0x00000b07,0x0b070000,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0xdee7dee7,0x00000b07, +0xa56fadb3,0x8ca79ceb,0x9d2b9d2b,0xad6f9d2b,0xad6fa52d,0xa52da56f,0x9d2ba56d,0x9d2da56f,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xe7770000,0x00009619,0xaedd760b,0x00008557,0x728f314b,0x498992cf,0x49899b13,0x39479b13,0x41499b13,0x394792d1,0x3947828f,0x314b728f,0x728f314b,0x9b1392cf,0x9b139b13,0x728f9b13,0x92d1728f,0x828f92d1,0x828f828f,0x314b728f, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bdf7bd,0xdef7def7,0xe739f7bd,0xef7be739,0xef7bffff,0xd6b5d6b5,0xe739e739,0xce73d6b5,0x00000a1b,0x000022e1,0x1a9f0000,0x00000000,0x00000000,0x000022e1,0x125d0000,0x1a9f0000,0xefffffff,0xe7bdffff,0xe7bde7bd,0xffffe7bd,0xffffffff,0xffffffff,0xefffffff,0xe7bdefff,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8f9353,0xbc1759cb,0x59cb7a8f,0x59cb7a8f,0x7a8f7a8f,0x59cb7a8f,0x7a8f7a8f,0x93539353,0x0b070000,0x01430001,0x0b070b07,0x0b070001,0x00010143,0x0b070b07,0x01430001,0x00000b07,0x0a050000,0x144913c9,0x14090b87,0x00010ac5,0x13c90a05,0x13871449,0x13871409,0x00000b07,0x0b070000,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x0b070b07,0x00000b07, +0x9d2da52d,0x9d2b9d2b,0x9d2da52d,0xa56da52d,0xa52d8ca7,0x9d2b94a9,0x9ceba56f,0xa52d9d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x85570000,0x00006c11,0xaedd0000,0x00008557,0x7a91314b,0x728f728f,0x8ad1728f,0x728f8ad1,0x8ad18ad1,0x8291728f,0x8ad18ad1,0x314b7a91,0x7a91314b,0x728f728f,0x8ad1728f,0x728f8ad1,0x8ad18ad1,0x8291728f,0x8ad18ad1,0x314b7a91, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce73c631,0xe739f7bd,0xd6b5ce73,0xfffff7bd,0xd6b5def7,0xf7bde739,0xce73ce73,0xf7bdef7b,0x1a9f2215,0x1a9f2215,0x2a571a9f,0x1a9f1a9f,0x1a9f22e1,0x1a9f1151,0x32991a9f,0x2a571a9f,0xffffffff,0xefffffff,0xe7bdefff,0xe7bde7bd,0xe7bde7bd,0xffffefff,0xefffe7bd,0xffffe7bd,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f,0x757f757f, +0x7a8f9353,0x9353bc17,0x7a8f9353,0x93538421,0x93539353,0x7a8f7a8f,0x93539353,0x59cb7a8f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a050000,0x140913c9,0x14071387,0x09c50b47,0x14070a05,0x0b8713c9,0x13c71407,0x00000b07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa56d9d2b,0x94e99d2b,0xa52dadf3,0xa56f94e9,0xad6f9d2d,0x9d2b9d2b,0x9d2d9d2b,0x94e99d2b,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0xaedd0000,0x00008557,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b2909,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b,0x314b314b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac51b495,0xac51ac51,0xb495ac51,0xac93b495,0xb495ac51,0xb495b495,0xb495b495,0x8b4db495,0xa529a529,0xad6ba529,0xbdefb5ad,0xbdefc631,0xbdefbdef,0xc631c631,0xc631c631,0xbdefc631,0x00000000,0x5a498b8f,0x00000000,0x00000000,0x00000000,0x00000000,0x6a8bac55,0x00000000, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x49437205,0x69c571c5,0x41034103,0x69c569c5,0x30c14103,0x410369c5,0x69c55985,0x71c54903,0x61c99b51,0x9b519b51,0x61c961c9,0x9b519b51,0x414561c9,0x61c99b51,0x9b517a8d,0x9b5161c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006601,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006b05,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x7acb8b4d,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x6a07934f,0xc631bdef,0xbdefbdef,0xc631c631,0xc631c631,0xc631c631,0xc631c631,0xc631c631,0xa529c631,0xa4130000,0x4987a413,0x8b8f8b8f,0xa413a413,0xac55ac55,0xa413ac55,0x624b8b8f,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c34943,0x51455985,0x41035143,0x618530c1,0x30c14103,0x41035143,0x41034103,0x71c530c3,0x414561c9,0x7a8d7a8d,0x61c97a8d,0x9b514145,0x414561c9,0x61c97a8d,0x61c961c9,0x9b514145, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005d83,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x24039581,0x00000000,0x00000000,0x00000000,0x00000000,0x73050000,0x00000000,0x00000000,0x10c18b85,0x00000000,0x00000000,0x00007b45,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x7a897a89,0x7a897a89,0x8b4d828b,0x82cb82cb,0x828b82cb,0x934f6249,0x6a07934f,0xc631c631,0xbdefbdef,0xbdefbdef,0xc631bdef,0xbdefbdef,0xbdefbdef,0xc631b5ad,0xa529bdef,0x624b0000,0x5a498b8f,0x624b624b,0x624b624b,0x624b624b,0x5a095a09,0x6a8b624b,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c371c5,0x69c569c5,0x41035143,0x49432881,0x28814943,0x41036185,0x41034103,0x59854103,0x41459b51,0x9b519b51,0x61c97a8d,0x7a8d4145,0x41457a8d,0x61c99b51,0x61c961c9,0x7a8d61c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1b415d83,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b4384c3,0x00000000,0x00000000,0x00000000,0x00000000,0x7b450000,0x00002101,0x00000000,0x83850000,0x00000000,0x00000000,0x29418385,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x728b9b8f,0x00006209,0x00000000,0x938f0000,0x00006249,0x00000000,0x934d0000,0x51c77acb,0xbdefbdef,0x0000b5ad,0x00000000,0xc6310000,0x0000b5ad,0x00000000,0xc6310000,0xa529bdef,0x00000000,0x49875a09,0x00000000,0x00000000,0x00000000,0x00000000,0x41875a09,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x318d69c5,0x39035143,0x59853903,0x28814943,0x49434943,0x41034103,0x69c530c3,0x61c97a8d,0x52959b51,0x61c97a8d,0x9b5161c9,0x41457a8d,0x7a8d7a8d,0x61c961c9,0x9b514145, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000641,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13415e41,0x00000000,0x00000000,0x00000000,0x00000000,0x5cc50000,0x00000000,0x00000000,0x5d430000,0x00000000,0x00000000,0x00006583,0x00000000,0x00000000,0x000093c3,0x7b450000,0x95010000,0x00003981,0x93c30000,0x39810000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x7a89318d,0x00007a89,0x00000000,0xa4110000,0x000082cb,0x00000000,0xa4510000,0x72098b4d,0xbdef4a53,0x0000bdef,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xad6bc631,0x00000000,0x5a498b8f,0x00000000,0x00000000,0x00000000,0x00000000,0x624ba413,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x51435143,0x39033903,0x49035985,0x28814903,0x294b5985,0x41034943,0x69c530c1,0x61c97a8d,0x7a8d7a8d,0x61c961c9,0x7a8d9b51,0x41457a8d,0x52959b51,0x61c97a8d,0x9b514145, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x1c430501,0x00000000,0x00000000,0x00000000,0x00000000,0x55430000,0x00000000,0x00000000,0x4c450000,0x00000000,0x00000000,0x00005e01,0x00000000,0x65830000,0x00001281,0x66010000,0x9e010000,0x00001b01,0x00000000,0x1b415d43,0x00000000,0x00000000,0x42019d81,0x93c30000,0x95012941,0x7b4532c1,0x95010000,0x00000000,0x00007305, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4d6b5b,0x00006249,0x00000000,0xa4110000,0x0000828b,0x00000000,0xa4110000,0x6a078b4d,0xc6318421,0x0000b5ad,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xa529c631,0xa4130000,0x624b624b,0xac55ac55,0x8b8fac55,0x8b8f8b8f,0xac55624b,0x5a498b8f,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41034903,0x41036185,0x39033903,0x51452881,0x38c330c3,0x28815145,0x41034943,0x69c56185,0x61c961c9,0x61c99b51,0x61c961c9,0x9b514145,0x61c961c9,0x41459b51,0x61c97a8d,0x9b519b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000483,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x0b010641,0x00000000,0x00000000,0x00000000,0x00000000,0x5e410000,0x00001301,0x54c50000,0x55430000,0x000009c1,0x00000000,0x1bc35e01,0x00000000,0x00000000,0x00005d43,0x65830000,0x95c123c3,0x00004c05,0x54850000,0x1b010000,0x00000000,0x00005a85,0x43439501,0x00008385,0x8cc34a01,0x838532c1,0xa5c12941,0x00000000,0x18c18b85, +0x00000000,0x00000000,0x00000000,0xfec10000,0x0000fc41,0x00000000,0x00000000,0x00000000,0x934fb495,0x934f934f,0xa453a451,0xa411a453,0x8b4d8b4d,0x938fa411,0xa453a453,0x7209934f,0xc631c631,0xc631c631,0xce73ce73,0xce73ce73,0xc631c631,0xc631ce73,0xce73ce73,0xa529c631,0x624b0000,0x624bac55,0x5a095a09,0x624b5a09,0x624b624b,0x5a095a09,0x6a8bac55,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x514369c5,0x49436185,0x28813903,0x41032881,0x208130c3,0x49035145,0x41034943,0x51436185,0x7a8d9b51,0x7a8d9b51,0x414561c9,0x7a8d4145,0x414561c9,0x7a8d9b51,0x61c97a8d,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02410641,0x00000000,0x00000000,0x00000000,0x00000000, +0x06010000,0x00000000,0x00000000,0x05410000,0x00000000,0x00000000,0x00000681,0x00000000,0x00000000,0x00005dc3,0x5e410000,0x55030a81,0x00001301,0x55430000,0x00000000,0x00000000,0x00000000,0x1b018d01,0x00006e81,0x8d411b41,0x6e813b83,0x8d010000,0x00000000,0x00000000,0x00018bc5,0x32c1a5c1,0x31819541,0x7c430000,0x9d412a41,0x7c433181,0x7b450000,0x39c10000, +0x00000000,0x00000000,0x00000000,0xffe50000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x7acb9bcf,0x62096209,0x62096209,0x7acb6209,0x62496249,0x62096249,0x728b6209,0x51c77acb,0xbdefbdef,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xa529bdef,0x00000000,0x41875a09,0x00000000,0x00000000,0x00000000,0x00000000,0x41875a09,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c169c5,0x49435143,0x28813903,0x51432881,0x208130c3,0x49034103,0x39033903,0x51436185,0x41459b51,0x7a8d7a8d,0x414561c9,0x9b514145,0x414561c9,0x7a8d7a8d,0x61c961c9,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1c8505c3,0x00000000,0x00000000,0x00000000,0x00000000, +0x06010000,0x00001c43,0x05010000,0x4cc50000,0x00000b01,0x00000000,0x24850601,0x00000000,0x00000000,0x1b815543,0x00006601,0x5dc32403,0x5d830ac1,0x55030000,0x00000000,0x00000000,0x00000000,0x32c19e01,0x2c858d01,0x95810000,0x95c132c1,0x8d412c85,0x00000000,0x00006583,0x42019541,0x4383a5c1,0x32c1a5c1,0x8cc30000,0x95411981,0xa5c13b01,0x95410000,0x00002141, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x000049c9,0x00000000,0x00000000,0x00000000,0x934fb495,0x000082cb,0x00000000,0xa4530000,0x000082cb,0x00000000,0xa4530000,0x6a07934f,0xc631c631,0x0000c631,0x00000000,0xce730000,0x0000bdef,0x00000000,0xc6310000,0xa529bdef,0x00000000,0x6a8bac55,0x00000000,0x00000000,0x00000000,0x00000000,0x6a8bac55,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c15985,0x49435143,0x38c33903,0x51432881,0x208130c3,0x38c35145,0x28813903,0x41035143,0x41457a8d,0x7a8d7a8d,0x61c961c9,0x9b514145,0x414561c9,0x61c99b51,0x414561c9,0x61c97a8d, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000405,0x00000000,0x00000000,0x00000000,0x00000000,0x05830000,0x00000000,0x00000000,0x06010000,0x00000000,0x00000000,0x000005c3,0x00000000, +0x00000000,0x000005c1,0x05c10000,0x56010b01,0x00000a41,0x05010000,0x1c030000,0x00000000,0x00000000,0x13015e01,0x24035e01,0x74830000,0x54c51b83,0x5e011341,0x00000000,0x00005d83,0x00006583,0x43c395c1,0x2ac184c3,0x8d410000,0x8d013b43,0x95413b83,0x4c450000,0x1b810000,0x32c1a5c1,0x43839d41,0x43838c83,0x95410000,0x9d412a41,0x7c4332c1,0x7c430000,0x00003b01, +0x00000000,0x00000000,0x00000000,0x93910000,0x00003947,0x00000000,0x00000000,0x00000000,0x8b4dac51,0x00007a89,0x00000000,0xa4510000,0x00007a89,0x00000000,0xa4110000,0x6a078b4d,0xc631c631,0x0000bdef,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xa529c631,0xa4130000,0x5a498b8f,0xac55ac55,0x8b8f8b8f,0x8b8f8b8f,0xa413a413,0x5a49ac55,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c35985,0x41036185,0x49433903,0x514538c3,0x38c34103,0x39035145,0x28813903,0x51436185,0x41457a8d,0x61c99b51,0x7a8d61c9,0x9b5161c9,0x61c97a8d,0x61c99b51,0x414561c9,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01c104c5,0x00000000,0x00000000,0x00000000,0x00000000,0x05030000,0x00000b41,0x06030000,0x4d830000,0x00001443,0x00000000,0x13c30601,0x00000000, +0x00000000,0x13c35601,0x00000541,0x55831bc3,0x05411bc3,0x55830000,0x00000000,0x00000000,0x00005d83,0x1bc35d83,0x1bc35e41,0x96010000,0x55031a01,0x5e010a81,0x55030000,0x13410000,0x1b819581,0x3b837403,0x2a818d01,0x84830000,0x8d0132c1,0x8d412ac1,0x95410000,0x000009c1,0x4bc38483,0x3b038483,0x2a419d81,0x8c830000,0x7c433b01,0x7c433b03,0x74030000,0x00001981, +0x00000000,0x00000000,0x00000000,0x93910000,0x00004189,0x00000000,0x00000000,0x00000000,0x8b4db495,0x0000828b,0x00000000,0xa4110000,0x00007a89,0x00000000,0xa4510000,0x6a078b4d,0xc631c631,0x0000bdef,0x00000000,0xce730000,0x0000bdef,0x00000000,0xce730000,0xa529bdef,0x624b0000,0x624ba413,0x5a095a09,0x624b5a09,0x624b624b,0x624b624b,0x624ba413,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x61856185,0x39034943,0x49032881,0x38c34903,0x59852881,0x61853903,0x410339cf,0x61c97a8d,0x9b519b51,0x61c97a8d,0x7a8d4145,0x61c97a8d,0x9b514145,0x9b5161c9,0x61c96b5b, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000585,0x00000000,0x00000000,0x00000000,0x00000000,0x06830000,0x00000000,0x00000000,0x05c50000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005c3,0x04c30000,0x4dc31403,0x00000b41,0x05430000,0x14430000,0x00000000, +0x00000000,0x13c35583,0x13414d43,0x74830000,0x55c31341,0x55831341,0x00000000,0x00000701,0x1b815543,0x1b817cc3,0x24438dc1,0x8d810000,0x960143c3,0x5d8312c1,0x5d830000,0x000012c1,0x3b038d01,0x118184c3,0x32c18483,0x84830000,0x74432241,0x8d012ac1,0x8d010000,0x00003b03,0x2a419501,0x2a417403,0x4343a5c1,0x84830000,0x7c432a41,0x8cc319c1,0x95410000,0x00001141, +0x00000000,0x00000000,0x00000000,0x9bd50000,0x00004189,0x00000000,0x00000000,0x00000000,0x728b9bcf,0x938f7acb,0x934d934d,0x938f934d,0x938f7acb,0x938f938f,0x934d934d,0x51c7728b,0xbdefbdef,0xce73c631,0xc631c631,0xc631c631,0xc631bdef,0xc631c631,0xbdefbdef,0x9ce7b5ad,0x00000000,0x4987624b,0x00000000,0x00000000,0x00000000,0x00000000,0x41875a09,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41035985,0x61854103,0x39035143,0x49433903,0x4943294b,0x61852881,0x61854103,0x30c34103,0x61c97a8d,0x9b5161c9,0x61c97a8d,0x7a8d61c9,0x7a8d5295,0x9b514145,0x9b5161c9,0x414561c9, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03810545,0x00000000,0x00000000,0x00000000,0x00000000,0x06050000,0x00001485,0x00000000,0x45830000,0x00000bc3,0x00000000,0x00000585,0x00000000,0x00000000,0x13c344c5,0x00000641,0x4d830281,0x04031383,0x4dc30000,0x00000000,0x00000000, +0x00000481,0x138155c3,0x0b014405,0x6c830000,0x4cc51a01,0x44851383,0x04410000,0x2d050000,0x13015d83,0x22418541,0x3b835b43,0x74830000,0x74833343,0x7c8343c3,0x7cc30000,0x00001341,0x2ac19541,0x2a8184c3,0x2a417443,0x74430000,0x74432241,0x744319c1,0x8d410000,0x000032c1,0x32c18c83,0x11817c43,0x43838483,0x6b850000,0x7c432201,0x6bc51981,0x8cc30000,0x000032c1, +0x00000000,0x00000000,0x00000000,0x93930000,0x00003947,0x00000000,0x00000000,0x00000000,0x934fb495,0xa453934f,0xa411a453,0xa411a453,0xa4118b4d,0xa411a411,0x938fa451,0x7209934f,0xc631c631,0xce73c631,0xce73ce73,0xce73ce73,0xce73c631,0xc631ce73,0xbdefc631,0xa529b5ad,0x00000000,0x6a8bac55,0x00000000,0x00000000,0x00000000,0x00000000,0x4987a413,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c34943,0x69c54103,0x41035143,0x61852881,0x41033903,0x51434103,0x69c54103,0x69c569c5,0x414561c9,0x9b5161c9,0x61c97a8d,0x9b514145,0x61c961c9,0x7a8d61c9,0x9b5161c9,0x9b519b51, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07050000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006c3,0x06430000,0x45430000,0x00000b41,0x05450000,0x0b810000,0x00000000,0x00000000,0x02814e01,0x1c854503,0x7e010000,0x45030b41,0x454301c1,0x00000000,0x00000583, +0x0a415601,0x13c38541,0x018174c3,0x64030000,0x74831201,0x4cc50a41,0x44850000,0x00000201,0x13417483,0x33017483,0x00817cc3,0x63c30000,0x63c31a01,0x74831a01,0x8d410000,0x00002a81,0x3b017c83,0x2a417443,0x19c18483,0x63c50000,0x6bc51181,0x638519c1,0x63c50000,0x00003301,0x2a417403,0x19c16b83,0x2a416bc5,0x6b850000,0x6bc50901,0x6b8319c1,0x6bc50000,0x00002a41, +0x00000000,0x00000000,0x00000000,0x628d0000,0x00003987,0x00000000,0x00000000,0x00000000,0x8b4dac93,0x82cb6249,0x82cb82cb,0x8b4d82cb,0x828b82cb,0x7a89828b,0x8b4d7a89,0x72098b4d,0xc631c631,0xbdefbdef,0xc631c631,0xc631c631,0xbdefbdef,0xb5adb5ad,0xb5adb5ad,0xa529b5ad,0xa4130000,0x6a8b624b,0xac558b8f,0x8b8fac55,0xac55ac55,0xa4138b8f,0x5a498b8f,0x0000a413, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x59854943,0x51454903,0x41034105,0x61854103,0x41036185,0x514330c1,0x30c34103,0x59855985,0x7a8d61c9,0x7a8d61c9,0x61c95a0b,0x9b5161c9,0x61c99b51,0x7a8d4145,0x414561c9,0x7a8d7a8d, +0x00000000,0x00000000,0x00000000,0x000005c5,0x00000000,0x00000000,0x00000000,0x00000000,0x05850000,0x00000000,0x00000000,0x3dc30000,0x00001d47,0x00000000,0x00000645,0x00000000,0x00000000,0x1d053c45,0x00000505,0x3cc51445,0x04850301,0x3cc50000,0x00000000,0x00000000,0x000005c3,0x13c34d83,0x02c13c85,0x7d410000,0x448533c3,0x4e0102c1,0x04830000,0x0b810000, +0x13c34cc5,0x2b0374c3,0x22816c43,0x5b830000,0x74830981,0x6c432241,0x5bc50000,0x00000a01,0x1a016c03,0x1a016c03,0x224163c5,0x63830000,0x5b850141,0x74830141,0x63830000,0x00003301,0x1a017403,0x11c16383,0x2a416bc5,0x6bc50000,0x42430901,0x6bc50941,0x63c50000,0x00000901,0x09416bc5,0x09017c43,0x09016383,0x63430000,0x63450901,0x5b450901,0x5b030000,0x00000901, +0x00000000,0x00000000,0x00000000,0x9bd30000,0x00003947,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d7a89,0x934f8b4d,0xa411934f,0x934f82cb,0x42118b4d,0x18c7294b,0x72097209,0xc631c631,0xc631bdef,0xc631c631,0xce73c631,0xc631bdef,0xb5adbdef,0xa529bdef,0x9ce7a529,0x624b0000,0x5a498b8f,0x5a095a09,0x5a096a8b,0x624b624b,0x5a09624b,0x6a8bac55,0x0000624b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x49436185,0x69c530c3,0x410369c5,0x410330c3,0x410369c5,0x514330c3,0x30c34103,0x598571c5,0x61c97a8d,0x9b514145,0x61c99b51,0x61c94145,0x61c99b51,0x7a8d4145,0x414561c9,0x7a8d9b51, +0x00000000,0x00000000,0x00000000,0x05450000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000685,0x00000000,0x3d830000,0x00000381,0x07050000,0x14450000,0x00000000,0x00000000,0x01c14505,0x02c13c45,0x5c030000,0x3cc50281,0x34050241,0x00000000,0x00000000,0x13c34d83,0x0b416483,0x02016cc3,0x64430000,0x75012b03,0x45430201,0x3c450000,0x00000241, +0x0a416403,0x224163c3,0x11c16c43,0x53450000,0x64030101,0x63c31a41,0x64030000,0x00000141,0x09815b83,0x09814b03,0x01414ac3,0x53030000,0x53030101,0x6c030101,0x5b850000,0x00000101,0x11815b45,0x00c15b43,0x09416385,0x4a830000,0x5b430941,0x5b030001,0x6bc50000,0x00000901,0x09416b83,0x19c15b03,0x00c16385,0x5b030000,0x5b030081,0x5b030081,0x63430000,0x00000041, +0x00000000,0x00000000,0x00000000,0x628d0000,0x00003145,0x00000000,0x00000000,0x00000000,0x7acb318d,0x7acb6249,0x728b728b,0x934d7acb,0x7acb6249,0x18c77acb,0x934d51c7,0x51c751c7,0xbdef4a53,0xbdefb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adad6b,0xb5adbdef,0x9ce7a529,0x00000000,0x49c9624b,0x00000000,0x00000000,0x00000000,0x00000000,0x41874187,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x61856185,0x71c538c3,0x59855985,0x69c54903,0x41035985,0x69c54903,0x49435985,0x38c371c5,0x7a8d7a8d,0x9b514145,0x7a8d7a8d,0x9b5161c9,0x61c97a8d,0x9b5161c9,0x61c97a8d,0x41459b51, +0x00000000,0x000005c5,0x00000000,0x07050000,0x00000341,0x06050000,0x00000000,0x00000000,0x00000000,0x14c53e41,0x00000485,0x3d030000,0x05c50341,0x3cc50000,0x00000000,0x00000000,0x000004c5,0x02816483,0x01c15c03,0x6d010000,0x53c50981,0x64430281,0x04450000,0x00000000,0x0b413c05,0x12016483,0x1a416483,0x64830000,0x5c0311c1,0x5bc522c1,0x5c030000,0x000001c1, +0x094163c3,0x09415bc5,0x11c16403,0x64030000,0x534500c1,0x53450981,0x53850000,0x00000981,0x01015303,0x00015303,0x00014ac3,0x42830000,0x42830041,0x53450041,0x6c030000,0x000000c1,0x00815b43,0x00816385,0x00c16385,0x63850000,0x42830001,0x63850081,0x53030000,0x00000941,0x090152c3,0x00416b83,0x00c152c3,0x52c30000,0x42430041,0x63450041,0x4a830000,0x00000081, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4d6b5b,0x8b4d7a89,0x934f8b4d,0xa451934f,0x934f7a89,0x934f934f,0xa453934f,0x6a07934f,0xc6318421,0xc631bdef,0xc631c631,0xce73c631,0xc631bdef,0xc631c631,0xc631bdef,0xad6bbdef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0xa2c3a2c3,0xd3c5d3c5,0xd3c5a2c3,0xa2c3d3c5,0xd3c5a2c3,0xd3c5d3c5,0xd3c5a2c3,0xa2c3a2c3,0xa2d7c39d,0x9a95a2d7,0x71cfc41b,0x4909514b,0x80434909,0xa2d7c39d,0x490971cf,0x8211aad7, +0x624f5a4f,0x49cb3947,0x41493947,0x31053907,0x498b418b,0x6291498b,0x39074189,0x520d3105,0x7acbfdd7,0x73537acb,0x73537353,0x7acbfdd7,0x73537353,0xfdd77353,0xc451fdd7,0x73537acb,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x938f8b4d,0xa451a451,0xa411a411,0xa4118b4d,0xa451a411,0xa451a411,0x6a07934f,0xc631d6b5,0xc631c631,0xce73ce73,0xce73ce73,0xce73c631,0xce73ce73,0xc631c631,0xa529b5ad,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe513a2c3,0xe513a2c3,0xd3c5e487,0xd3c5a2c3,0xa2c3e487,0xe487e487,0xd3c5e487,0xa2c3a2c3,0xa2d7c39d,0x8a534001,0x49091843,0x8043c39d,0x58014909,0x58019295,0x69496843,0xab19618d, +0x520d4189,0x624f6ad3,0x624f6a93,0x51cd7b15,0x39073947,0x62516251,0x31053105,0x49cd5a4f,0xffff7acb,0x49c5c451,0xfdd77353,0xffffc451,0x735349c5,0x7acbfdd7,0xfffffea7,0x49c5c451,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d8b4d,0x8b4d8b4d,0x8b4d8b4d,0x934f934f,0x8b4d934f,0x934f7acb,0x6a07934f,0xc631d6b5,0xc631c631,0xc631c631,0xc631c631,0xbdefc631,0xbdefbdef,0xb5adb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe513d3c5,0xa2c3e513,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487e487,0xa2c3e513,0xd3c5d3c5,0x71cf598d,0x28858a53,0x80434909,0x5801c39d,0x10432043,0x58017a11,0x598d2885,0x8a953843, +0x498b6291,0x31056251,0x624f3907,0x5a4f3907,0x31055a4f,0x31058357,0x41494189,0x4149520d,0x7acb7acb,0x735349c5,0x73537acb,0x7acb49c5,0x735349c5,0x49c57353,0xc451c451,0x735349c5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x728b9b8f,0x62496209,0x62496249,0x7acb6249,0x62496249,0x62096209,0x728b6209,0x51c77acb,0xbdefc631,0xbdefbdef,0xbdefbdef,0xbdefb5ad,0xad6bb5ad,0xad6bad6b,0xad6bad6b,0x9ce7ad6b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487d3c5,0xe487e487,0xe487a2c3,0xe487a2c3,0xa2c3e487,0xd3c5e487,0xd3c5a2c3,0xd3c5e487,0x41097211,0x598d1043,0x69cfaad7,0xab97a2d7,0x490930c7,0x38c72885,0xbb5b4909,0x598d8843, +0x39074189,0x31057b15,0x62517b15,0x5a4f3105,0x3947418b,0x498b498b,0x41894189,0x93db49cb,0x49c57353,0xfdd77353,0x7acb7acb,0x49c57353,0xfdd77353,0x73537acb,0x49c549c5,0x49c57353,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4db495,0x8b4d7a89,0x934f8b4d,0xa411934f,0x8b4d82cb,0x7acb8b4d,0xa4518b4d,0x72098b4d,0xc631ce73,0xc631bdef,0xc631c631,0xc631c631,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3c5a2c3,0xe487e487,0xd3c5d3c5,0xe487a2c3,0xe487d3c5,0xa2c3e487,0xe513e487,0xa2c3d3c5,0xc39de521,0x598d8a8f,0x8a95c39d,0x20438a95,0x9295598d,0xab199253,0xab554109,0x598d7843, +0x418b51cd,0x72d56ad3,0x31053907,0x8357498b,0x6291418b,0x7b155a4f,0x41898357,0x5a4f51cd,0x73537353,0xc451fdd7,0xc451fea7,0x735349c5,0xc451fdd7,0x49c57acb,0x73537353,0x49c5fdd7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b4dac51,0x8b4d6249,0x8b4d8b4d,0xa411934f,0x8b4d828b,0x8b4d8b4d,0xa4118b4d,0x6a078b4d,0xc631ce73,0xc631b5ad,0xc631c631,0xc631c631,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0xf8010000,0x0000f801,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3a2c3,0xa2c3a2c3,0xa2c3e487,0x39413941,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xa2c3a2c3,0x8a954801,0x598d71cf,0x600169cf,0x30c78a53,0xdc21bb5b,0x92958253,0x598d9291,0x28851043, +0x3907418b,0x62513907,0x51cd3105,0x6a913107,0x418b3947,0x31075a4f,0x72d36a91,0x41498b99,0x7acb7353,0xfea77acb,0xfea7ffff,0x735349c5,0xffffc451,0x49c549c5,0xfdd77353,0x49c5c451,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7bdf0000,0x0000739d,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d82cb,0x934f934f,0xa411934f,0x8b4d7a89,0x934f7acb,0xa453934f,0x7209934f,0xbdefc631,0xb5adb5ad,0xb5adb5ad,0xbdefb5ad,0xb5adad6b,0xb5adad6b,0xbdefb5ad,0xa529b5ad,0x00000000,0x00000000,0x00000000,0xfec1f801,0xf801fc41,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487d3c5,0xe487e487,0x3941a2c3,0xb401e541,0xa2c33941,0xd3c5e487,0xe487a2c3,0xd3c5d3c5,0x8a535801,0x598d71cf,0x1843594b,0x514b30c7,0x604361cf,0x8a53b319,0x8a53618d,0x30435801, +0x6a913105,0x41893907,0x6a918357,0x39076a93,0x3947418b,0x31058357,0x6a916251,0x6a91418b,0x49c57353,0xc45149c5,0xc451fea7,0x735349c5,0x49c57acb,0x73537353,0xc4517acb,0x49c5ffff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x84210000,0x0000739d,0x00000000,0x00000000,0x00000000,0x7acb9bcf,0x934d728b,0x934d934d,0x938f934d,0x938f7acb,0x934d934d,0x934d934d,0x51c77acb,0xad6bb5ad,0xad6ba529,0xa529a529,0xa529a529,0xad6b9ce7,0xa529a529,0xa529a529,0x8c63a529,0x00000000,0x00000000,0x00000000,0xffe5f801,0xf801ffff,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3c5a2c3,0xe487d3c5,0x3941e487,0xe541b401,0x3941b401,0xa2c3a2c3,0xe487e487,0xd3c5e513,0x8a5371cf,0x514b2885,0xc39d9a95,0x41094909,0x2843618d,0x929530c7,0x30c75801,0x90854001, +0x62516293,0x41896a91,0x4189498b,0x49cb3105,0x6ad3520d,0x5a4f6251,0x62516251,0x72d33907,0x73537353,0x49c57353,0x7acb7acb,0x735349c5,0x735349c5,0x7acbfdd7,0x7acb7353,0x49c5fea7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x00006a8d,0x00000000,0x00000000,0x00000000,0x934fb495,0x934f934f,0x7acb934f,0x934f8b4d,0x8b4d934f,0x8b4d8b4d,0x934f934f,0x6a07934f,0xa529ad6b,0xa529a529,0x9ce7a529,0x9ce79ce7,0x9ce79ce7,0x9ce79ce7,0x94a59ce7,0x7bdf94a5,0x00000000,0x00000000,0x00000000,0xf8010000,0x0000a801,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3d3c5,0xa2c3a2c3,0xa2c3a2c3,0xb4013941,0xa2c3e541,0xd3c5e487,0xa2c3a2c3,0xa2c3a2c3,0x104371cf,0x8843598d,0xab978043,0xa2d79b13,0x71cfb35b,0x4109514b,0x08432885,0xdd1fdc21, +0x9c1d6ad3,0x49cb72d3,0x62915a0f,0x3105498b,0x41894189,0x31056251,0x31053105,0x6251624f,0xc451fdd7,0x73537acb,0x7acb49c5,0x735349c5,0xfdd77353,0x7acbc451,0x735349c5,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x000049c9,0x00000000,0x00000000,0x00000000,0x8b4dac51,0x7a897a89,0x82cb7a89,0x8b4d828b,0x7a897a89,0x62497a89,0x8b4d82cb,0x6a078b4d,0x9ce7a529,0x94a594a5,0x94a594a5,0x9ce794a5,0x8c6394a5,0x8c638c63,0x94a594a5,0x842194a5,0x00000000,0x00000000,0x00000000,0x93910000,0x00003947,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe513d3c5,0xe487e487,0xe487e487,0x3941a2c3,0xa2c3a2c3,0xa2c3e487,0xd3c5e487,0xd3c5d3c5,0x49097a11,0x8043c39d,0x30c76001,0x4001a2d7,0x8211e561,0x598dbc19,0xd3df514b,0x58015801, +0x520d4149,0x624f51cb,0x83577b15,0x39077b15,0x7b15520d,0x3947418b,0x31053105,0x6a914149,0xfffffdd7,0x49c5fea7,0x49c57353,0xfdd77353,0xc4517acb,0xc451ffff,0x735349c5,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x628d0000,0x00003947,0x00000000,0x00000000,0x00000000,0x8b4d318d,0x8b4d828b,0x934f934f,0xa4118b4d,0x8b4d7a89,0x8b4d8b4d,0xa4518b4d,0x6a078b4d,0x9ce74a53,0x9ce794a5,0x9ce79ce7,0x9ce79ce7,0x94a58c63,0x94a594a5,0x9ce794a5,0x7bdf94a5,0x00000000,0x00000000,0x00000000,0x93910000,0x00004189,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487a2c3,0xa2c3d3c5,0xa2c3a2c3,0xa2c3e513,0xa2c3e487,0xd3c5e513,0xe487a2c3,0xd3c5e513,0x78434909,0x8a53ab55,0x104371cf,0x6843a2d7,0x71cf8a53,0x18437a11,0x4909618d,0x79cf7043, +0x41894189,0x72d36a93,0x31053105,0x418972d3,0x6a93498b,0x5a4f6a93,0x31056251,0x6a933105,0x7acb7acb,0x735349c5,0x73537353,0x73537353,0x7acb49c5,0x7acbc451,0x735349c5,0x735349c5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6acf0000,0x00003947,0x00000000,0x00000000,0x00000000,0x728b6b5b,0x7acb6249,0x728b728b,0x938f728b,0x7acb6249,0x7acb7acb,0x934d728b,0x51c7728b,0x94a58421,0x94a58c63,0x8c6394a5,0x94a58c63,0x94a58c63,0x8c638c63,0x94a58c63,0x7bdf8c63,0x00000000,0x00000000,0x00000000,0x9bd50000,0x00004189,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3a2c3,0xe487d3c5,0xa2c3e487,0xa2c3e487,0xd3c5e487,0xe487d3c5,0xd3c5a2c3,0xa2c3e487,0x3843598d,0x8253ab19,0x1843618d,0x58018a53,0x71cf9ad7,0x30432885,0x4909bb5b,0x30c73843, +0x6251520d,0x7b153947,0x31056251,0x49cb624f,0x39476251,0x6a9393db,0x6a93624f,0x498b8b99,0x49c57353,0x7acb7353,0x735349c5,0xfdd7fdd7,0x49c57353,0x49c57acb,0x7acb7353,0x73537353,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6acf0000,0x00003947,0x00000000,0x00000000,0x00000000,0x934fb495,0x934f82cb,0x8b4d934f,0xa411934f,0x8b4d7a89,0x8b4d8b4d,0x938f8b4d,0x7209934f,0x94a594a5,0x94a58c63,0x94a594a5,0x9ce794a5,0x94a58c63,0x94a594a5,0x94a594a5,0x7bdf94a5,0x00000000,0x00000000,0x00000000,0x93930000,0x00003947,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3c5d3c5,0xe487d3c5,0xa2c3e487,0xa2c3e487,0xe487e513,0xe487a2c3,0xa2c3e487,0xd3c5e487,0xa2d7c39d,0x30c72885,0x18432885,0x580161cf,0x18434109,0x7043c39d,0x71cf8a53,0x598d8a8f, +0x72d33105,0x72d33105,0x62513107,0x4189624f,0x5a0f4189,0x6ad3498b,0x5a4f624f,0x51cd49cb,0x73537353,0xc451fdd7,0x735349c5,0x7acb49c5,0x7353ffff,0x735349c5,0xc451fdd7,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x00006a8d,0x00000000,0x00000000,0x00000000,0x8b4dac93,0xa4537acb,0xa453a453,0xa411a453,0xa451934f,0xa411a451,0xa411a411,0x72098b4d,0x94a594a5,0x9ce78c63,0x9ce79ce7,0x9ce79ce7,0x9ce794a5,0x9ce79ce7,0x9ce79ce7,0x739d94a5,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003987,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487d3c5,0xe487e513,0xd3c5a2c3,0xa2c3d3c5,0xe487e513,0xa2c3d3c5,0xe487e487,0xd3c5a2c3,0x8253cbdf,0xcb9d618d,0xaad77843,0x1843598d,0x988561cf,0x5801b35b,0x58019ad7,0x30c77a11, +0x8b994149,0x3107624f,0x31053105,0x414972d3,0x7b155a0f,0x418b8357,0x4189498b,0x41894189,0xfdd77353,0xffffc451,0x49c5fea7,0x49c57353,0x49c5c451,0xfdd77353,0xffffc451,0x49c5c451,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b0f0000,0x00006a8d,0x00000000,0x00000000,0x00000000,0x934fb495,0x8b4d8b4d,0x934f8b4d,0x8b4d934f,0x934f934f,0x8b4d8b4d,0x934f934f,0x7209934f,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x94a594a5,0x739d94a5,0x00000000,0x00000000,0x00000000,0x9bd30000,0x00003947,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe487a2c3,0xd3c5e487,0xe487a2c3,0xa2c3d3c5,0xe487d3c5,0xa2c3e487,0xe487d3c5,0xa2c3e487,0x9295698d,0xab192043,0x69cf5801,0x38435801,0x38434909,0x6843ab97,0x8a5392d7,0x30c72885, +0x5a4f51cd,0x31058357,0x418b49cd,0x31078b99,0x7b154189,0x5a0f5a4f,0x41494149,0x7b1549cb,0x7acb7353,0xc4517acb,0x7acb7acb,0x735349c5,0x49c549c5,0x7acb7353,0x7acb7acb,0x49c57acb,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x93910000,0x0000628d,0x00000000,0x00000000,0x00000000,0x51c77acb,0x59c751c7,0x51c751c7,0x51c759c7,0x51c751c7,0x51c751c7,0x51c74987,0x51c751c7,0x7bdf8421,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x739d739d,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003145,0x00000000,0x00000000,0x00000000, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c3a2c3,0xd3c5a2c3,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0x698d69cf,0x38c74801,0x184358c5,0x38432885,0xab97a2d7,0x92914909,0x38c738c7,0x514b38c7, +0x5a0f8357,0x72d36a91,0x7b175a0f,0x3907498b,0x31053907,0x49cd5a0f,0x31053105,0x8b998357,0x49c57353,0x49c549c5,0x49c549c5,0x73537353,0x73537353,0x49c57353,0x49c549c5,0x49c549c5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18851085,0x10851085,0x18c71885,0x10851085,0x18c718c7,0x10851043,0x18c718c7,0x10851085,0x39cf39cf,0x39cf39cf,0x42114211,0x39cf39cf,0x42114211,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c31841,0x51c73103,0x31031041,0x10414987,0x28c328c3,0x390528c3,0x39053103,0x51c728c3,0xef77b5ad,0xef79ef79,0xbdedef79,0xdef5ef79,0xe779e6f5,0xffffffff,0xef39ffff,0xb5abef79,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3, +0xa2c3a2c3,0xa2c3d3c5,0xf689e4c5,0xa2c3d3c5,0xd3c5a2c3,0xa2c3e4c5,0xd3c5d3c5,0xa2c3a2c3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc6310000,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0x0000c631,0xc6310000,0xdef7def7,0xdef7def7,0x7901def7,0x60816081,0xdef7def7,0xdef7def7,0x0000c631, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x83110000,0x00008b8f,0x00000000,0x18c71885,0x21092109,0x18c720c7,0x18851885,0x10851085,0x18851085,0x10851043,0x18851885,0x42114211,0x4a534a53,0x42114211,0x42114211,0x39cf39cf,0x421139cf,0x39cf318d,0x421139cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c31041,0x08013105,0x51871041,0x28c31041,0x10415187,0x518728c3,0x39051881,0x49871881,0xe779f779,0xdeb5def5,0xe779deb5,0xef39e779,0xef77e779,0xef79e779,0xef79ef77,0xef79f777,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xa2c3e487, +0xe513a2c3,0xe4c5e487,0xffcff7cb,0xd3c5f6cd,0xf6cda2c3,0xe4c5ffcf,0xe487d3c5,0xa2c3e487,0xd6b50000,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0x0000d6b5,0xc6310000,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0x0000c631,0x92470000,0xef7b7901,0x79017901,0x79017901,0x79017901,0x79017901,0x79017901,0x00009247, +0xa2890000,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x520b0000,0xa529a529,0xa529a529,0x20c720c7,0x18851885,0x20c720c7,0x188518c7,0x20c718c7,0x18c718c7,0x210920c7,0x18c718c7,0x4a534211,0x42114211,0x4a534a53,0x42114211,0x4a534211,0x42114211,0x4a534a53,0x42114211,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c31001,0x104128c1,0x518728c3,0x28c31041,0x10415187,0x390528c3,0x39051881,0x51871881,0xefb9d6f7,0xef79e739,0xe6f5ef79,0xdeb5ef79,0xdeb7def5,0xb5ade779,0xe779ef79,0xdef5deb5,0xd3c5a2c3,0xa2c3e487,0xe487a2c3,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487e487,0xa2c3e487,0xd3c5a2c3,0xa2c3e487,0x28012801,0xe487e487,0xe513a2c3,0xa2c32801,0xe487e487,0xa2c3e487, +0xd3c5a2c3,0xed85e487,0x48014801,0xf6cdffcf,0xffe5e4c5,0xed854801,0xe487f6cd,0xa2c3e487,0xdef70000,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0x0000def7,0xc6310000,0xc631ef7b,0xdef7c631,0xc631ef7b,0xdef7c631,0xc631ef7b,0xdef7c631,0x0000c631,0x92470000,0x81017901,0x79018101,0x81017901,0x79017901,0x81018101,0x79018101,0x00009247, +0xa2890000,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa529a529,0x6b5b6b5b,0x6b5b6b5b,0x18851885,0x20c718c7,0x18851885,0x20c71885,0x18851085,0x20c720c7,0x18851885,0x20c72109,0x39cf4211,0x4a534211,0x39cf4211,0x4a534211,0x421139cf,0x4a534a53,0x39cf4211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x10413103,0x104128c3,0x39053905,0x28c31041,0x10415187,0x518728c3,0x51c71041,0x39051041,0xffffef79,0xb5ede779,0x10c541cf,0x398f20c9,0xf779ef39,0xefb9ef39,0xef79ef79,0xef79def5,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xe513d3c5,0xe513a2c3,0xa2c3e487,0xe487e513,0xa2c3d3c5,0xd3c5a2c3,0xa2c3e487,0x40812801,0xe5132801,0x2801a2c3,0x28012801,0xe487a2c3,0xa2c3d3c5, +0xd3c5a2c3,0xe4c5f6cd,0xb50d4801,0xffe54801,0x4801ed85,0x48014801,0xf6cded85,0xa2c3d3c5,0xdef70000,0xdef7ef7b,0xd6b5def7,0xdef7def7,0xdef7def7,0xdef7ef7b,0xef7bdef7,0x0000def7,0xc6310000,0xa289c631,0xc631a289,0xa289c631,0xc631a289,0xa289c631,0xc631a289,0x0000c631,0x92470000,0x60816081,0x60816081,0x79018101,0x81018101,0x60816081,0x60816081,0x00009247, +0xa2890000,0xbac9bac9,0xbac9a289,0xa289bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xa529a529,0x6b5b6b5b,0x5a4d4189,0x00000000,0x188518c7,0x18851085,0x18c718c7,0x10431043,0x18c71085,0x10851085,0x18c718c7,0x10431085,0x42114211,0x421139cf,0x42114211,0x318d39cf,0x421139cf,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x104130c3,0x28c33103,0x39053905,0x28c33103,0x10413103,0x518730c3,0x51871041,0x39051041,0xef79ef39,0xb5adb5ad,0x39cddf35,0x20c939cf,0xe77939cf,0xd6f5def5,0xe6b5def5,0xdeb541cf,0xd3c5a2c3,0xd3c5e487,0xe513a2c3,0xe487d3c5,0xe487a2c3,0xa2c3d3c5,0xe487e513,0xa2c3d3c5,0xd3c5a2c3,0x2801a2c3,0x40814081,0xa2c34081,0x2801a2c3,0x40814081,0xa2c32801,0xa2c3d3c5, +0xd3c5a2c3,0x4801ed85,0xb54db54d,0xed85bd8d,0x4801ed85,0xb54dbd8d,0xed854801,0xa2c3d3c5,0xdef70000,0xe98def7b,0xef7be8c7,0xef7bef7b,0xe8c7ef7b,0xef7bd6b5,0xef7bef7b,0x0000def7,0x92470000,0xa289a289,0xa289aac9,0xa289a289,0xa289aac9,0xa289a289,0xa289aac9,0x00009247,0x92470000,0x79017901,0x71017901,0x60816081,0x60816081,0x71016081,0x79017901,0x00009247, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x83110000,0xa529520b,0x6b5b6b5b,0x00000000,0x8b8f49c9,0x00000000,0x10431085,0x20c71085,0x10431085,0x18851085,0x10431085,0x18851885,0x10851043,0x18851085,0x318d39cf,0x4a5339cf,0x318d39cf,0x39cf39cf,0x318d39cf,0x421139cf,0x39cf39cf,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c33103,0x28c33103,0x28c35187,0x30c328c3,0x10413103,0x498528c3,0x39051041,0x28c31041,0x420f39cf,0xffffef79,0xf779ffff,0xffffef79,0xef79ffff,0xffffffff,0x39cfef79,0x18c518c7,0xe513a2c3,0xd3c5e487,0xe513a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xe487e513,0xa2c3d3c5,0xe513a2c3,0x2801a2c3,0x40814081,0xa2c34081,0x2801a2c3,0x40814081,0xa2c34081,0xa2c3d3c5, +0xe513a2c3,0x4801a2c3,0xbdcdbd8d,0xa2c3bdcf,0x4801ed85,0xbdcdbdcf,0xed85bd8d,0xa2c3f689,0xdef70000,0xe8c7ef7b,0xef7be8c7,0xef7bef7b,0xef7bd6b5,0xdef7ef7b,0xef7bef7b,0x0000def7,0x92470000,0xbac9aac9,0xaac9bac9,0xbac9aac9,0xaac9bac9,0xbac9aac9,0xaac9bac9,0x00009247,0x92470000,0x81017901,0x79018101,0x81017901,0x79018101,0x81017901,0x79018101,0x00009247, +0xa2890000,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xa289bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x520b0000,0x6b5ba529,0x00000000,0x00000000,0x8311624b,0x00000000,0x21092109,0x18c720c7,0x18851885,0x18c71885,0x210920c7,0x188518c7,0x21092109,0x18c718c7,0x4a534a53,0x42114211,0x42114211,0x42114211,0x4a534211,0x42114211,0x4a534a53,0x42114211,0x00000000,0x00000000,0x00000000,0x50010000,0x00004801,0x00000000,0x00000000,0x00000000, +0x390528c3,0x31031881,0x28c14987,0x104128c3,0x10414985,0x20813905,0x39050801,0x31031041,0xe6f339cf,0xe739deb3,0xbdedef79,0xdeb5ef37,0xdef5d6f5,0xef39ef79,0xef39b5ad,0xef79ef39,0xe513a2c3,0xe487e487,0xe513a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xe487d3c5,0xa2c3a2c3,0xe513a2c3,0x2801a2c3,0x40814081,0xa2c34081,0x2801a2c3,0x40814081,0x40814081,0xa2c3a2c3, +0xe513a2c3,0x4801a2c3,0xc60fbdcf,0xa2c3c64f,0x4801ed85,0xc60fc64f,0xbd8dbdcf,0xa2c3ed85,0xdef70000,0xef7bef7b,0xd6b5ef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0xef7bdef7,0x0000def7,0x92470000,0xbac9bac9,0xbac9bac9,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0x00009247,0x92470000,0x81018101,0x81018101,0x71018101,0x81018101,0x81018101,0x81017101,0x00009247, +0xa2890000,0xbac9bac9,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xa289bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xa5290000,0x5a4d6b5b,0x00008b8f,0x00000000,0x624b0000,0x00008b8f,0x18851885,0x21092109,0x18c718c7,0x20c720c7,0x10851085,0x20c718c7,0x18c718c7,0x20c720c7,0x39cf39cf,0x4a534a53,0x42114211,0x4a534a53,0x39cf39cf,0x4a534211,0x42114211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x48010000,0x00002801,0x00000000,0x00000000,0x00000000, +0x51873103,0x31031041,0x104151c7,0x10415187,0x10015187,0x18813905,0x390528c3,0x31031041,0xbdade779,0xef77ffff,0xdef5ef39,0xe779def5,0xbdedffff,0xef79e779,0xdef5ffff,0xd6b7def5,0xe487a2c3,0xe487e487,0xe487a2c3,0xe487e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xa2c3a2c3,0xe487a2c3,0xa2c3e487,0x40814081,0xa2c3a2c3,0xa2c3a2c3,0x40814081,0x40814081,0xa2c3a2c3, +0xe487a2c3,0xa2c3e487,0xc64fc60f,0xe4c5a2c3,0xa2c3e4c5,0xc64fce91,0xbdcdc60f,0xa2c3a2c3,0xdef70000,0xef7be8c7,0xdef7ef7b,0xe98def7b,0xd6b5e8c7,0xef7bdef7,0xef7bef7b,0x0000def7,0x92470000,0x92479247,0x92479247,0x92479247,0x92479247,0x92479247,0x92479247,0x00009247,0x92470000,0x60816081,0x60816081,0x60816081,0x60816081,0x60816081,0x60816081,0x00009247, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b5ba529,0x624b0000,0x8b8f8351,0x00000000,0x624b0000,0x00008311,0x18c718c7,0x10851085,0x18c720c7,0x18851085,0x18851085,0x10431085,0x18851885,0x10851085,0x42114211,0x39cf39cf,0x42114a53,0x39cf39cf,0x421139cf,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x7b0f0000,0x000049c9,0x00000000,0x00000000,0x00000000, +0x518728c3,0x31051041,0x10414985,0x104128c3,0x104128c3,0x10414985,0x31033103,0x39051041,0xdef5deb5,0xffffdeb5,0xef79ffff,0xfffff779,0xef79eef7,0xef39f779,0xefb9e779,0xdef5d6f5,0xe487a2c3,0xe487e487,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xd3c5e487,0xe487a2c3,0xa2c3d3c5,0xe487a2c3,0xe487e487,0xa2c3a2c3,0xd3c5a2c3,0xa2c3a2c3,0xa2c3a2c3,0xa2c3a2c3,0xa2c3d3c5, +0xe487a2c3,0xffcff6cd,0xed85e4c5,0xd3c5e4c5,0xe4c5ed85,0xed85e4c5,0xed85e4c5,0xa2c3f689,0xdef70000,0xdef7ef7b,0xdef7ef7b,0xe8c7ef7b,0xdef7e8c7,0xe98ddef7,0xef7be8c7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9a289,0xbac9a289,0xbac9bac9,0xa289bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b5ba529,0x00000000,0x8311624b,0x00008311,0x624b0000,0x00008311,0x18851085,0x20c71885,0x10431043,0x18c71885,0x18c71085,0x21092109,0x18c71885,0x21092109,0x421139cf,0x421139cf,0x39cf318d,0x42114211,0x421139cf,0x4a534a53,0x42114211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x93910000,0x00003947,0x00000000,0x00000000,0x00000000, +0x51c728c3,0x28c31841,0x49853103,0x30c31041,0x100130c3,0x10414987,0x49873103,0x39051041,0xe739ef77,0xe779ef79,0xdef5def5,0xdef5b5ed,0xdef3b5ed,0xef79d6f5,0xef77efbb,0xef39f77b,0xd3c5a2c3,0xe487e487,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xd3c5a2c3,0x2801a2c3,0x2801a2c3,0xa2c3a2c3,0xa2c32801,0x2801a2c3,0x2801a2c3,0xa2c3d3c5, +0xf689a2c3,0x4801ed85,0x4801ed85,0xed85ed85,0xed854801,0x4801ed85,0x4801ed85,0xa2c3f7cb,0xdef70000,0xdef7ef7b,0xef7be8c7,0xef7bef7b,0xdef7ef7b,0xe8c7ef7b,0xef7be8c7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9a289,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xa289bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xa5290000,0x00006b5b,0x00000000,0x624b0000,0x8b8f8311,0x00000000,0x83515a09,0x20c720c7,0x18c718c7,0x20c72109,0x18c718c7,0x20c720c7,0x18c71885,0x188518c7,0x18851085,0x4a534a53,0x42114211,0x4a534a53,0x42114211,0x42114a53,0x42114211,0x42114211,0x421139cf,0x00000000,0x00000000,0x00000000,0x93910000,0x00004189,0x00000000,0x00000000,0x00000000, +0x39051041,0x30c31041,0x498728c3,0x28c11001,0x28c31041,0x104151c7,0x51c730c3,0x49871041,0xefb9b5ed,0xdef5deb3,0xb5addef5,0xef79ef79,0xef77ef79,0xffffffff,0xe739ef79,0xef7bffff,0xd3c5a2c3,0xe487e487,0xd3c5a2c3,0xa2c3e487,0xe487a2c3,0xe487e487,0xe487a2c3,0xa2c3d3c5,0xd3c5a2c3,0x28012801,0x28012801,0x28014081,0x40812801,0x28012801,0x28014081,0xa2c3a2c3, +0xf7cba2c3,0x48014801,0x48014801,0x4801d711,0xdf934801,0x48014801,0x4801ce4f,0xa2c3ed85,0xdef70000,0xdef7ef7b,0xef7bef7b,0xdef7d6b5,0xef7bef7b,0xef7bef7b,0xef7bdef7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0xa529520b,0x00006b5b,0x00000000,0x00000000,0x8311624b,0x00008b8f,0x6a8f4189,0x10851085,0x18c718c7,0x18851885,0x18c718c7,0x10851085,0x18c71085,0x10431043,0x18c71885,0x39cf39cf,0x42114211,0x39cf39cf,0x42114211,0x39cf39cf,0x421139cf,0x318d318d,0x421139cf,0x00000000,0x00000000,0x00000000,0x9bd50000,0x00004189,0x00000000,0x00000000,0x00000000, +0x39051041,0x28c31041,0x51873105,0x51871041,0x28c30801,0x104151c7,0x49873103,0x51c71041,0xef79ef79,0xe779e739,0xbdadef79,0xb5edb5ed,0xef79ef79,0xdef5d735,0xb5adb5ed,0xdef7def5,0xa2c3a2c3,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xe487d3c5,0xe513a2c3,0xa2c3e487,0xa2c3a2c3,0x40812801,0x40814081,0x40814081,0x40814081,0x40814081,0x40814081,0xa2c34081, +0xa2c3a2c3,0xc60f4801,0xced1c64f,0xdf51d711,0xdf51df93,0xced1d711,0xc60fc64f,0xed85bd8d,0xdef70000,0xdef7ef7b,0xef7bdef7,0xef7bef7b,0xe8c7e98d,0xef7bdef7,0xef7bdef7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9bac9,0xbac9a289,0xbac9a289,0xbac9bac9,0xbac9a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83515a4d,0x00008b8f,0x00000000,0x624b0000,0x6a8f624b,0x6b5b6b5b,0x18851885,0x10431043,0x20c720c7,0x10431085,0x18c71885,0x18c718c7,0x21092109,0x104318c7,0x39cf39cf,0x39cf318d,0x4a534a53,0x318d39cf,0x42114211,0x42114211,0x4a534a53,0x39cf4211,0x00000000,0x00000000,0x00000000,0x93930000,0x00003947,0x00000000,0x00000000,0x00000000, +0x51871001,0x28c31001,0x51873103,0x30c30801,0x28c31041,0x10414987,0x28c130c3,0x51871041,0xffffe77b,0xef7bffff,0xdef5d6f5,0xef79d735,0xe777ef79,0xef39ef7b,0xef79ef39,0x420f39cf,0xa2c3a2c3,0xe487e487,0xe513a2c3,0xa2c3e487,0xe487d3c5,0xe487e487,0xe513a2c3,0xa2c3e487,0xa2c3a2c3,0x2801a2c3,0xa2c34081,0x40814081,0x4081a2c3,0x40814081,0x4081a2c3,0xa2c34081, +0xa2c3a2c3,0x4801e4c5,0xe4c5c64f,0xd711ced1,0xd711e4c5,0xce91ced1,0xbdcfa2c3,0xed85bd8d,0xdef70000,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xe8c7e8c7,0xdef7def7,0xef7bdef7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xa289bac9,0xa289bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x5a094189,0x8311624b,0x8b8f8b8f,0x00000000,0x6b5b4189,0xa529a529,0x18c718c7,0x210920c7,0x18c720c7,0x188518c7,0x18851043,0x20c718c7,0x18851885,0x210920c7,0x42114211,0x4a534a53,0x42114a53,0x42114211,0x4211318d,0x4a534211,0x42114211,0x4a534a53,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003987,0x00000000,0x00000000,0x00000000, +0x31031041,0x310328c3,0x390528c3,0x31031881,0x28c33103,0x104128c3,0x498530c3,0x100151c7,0xdef539cf,0xefb7d6f5,0xef77ef79,0xb5abe77b,0xef79def5,0xef39ef39,0x39d141cf,0x18c518c7,0xa2c3a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe487d3c5,0xd3c5e487,0xe513a2c3,0xa2c3e487,0xa2c3a2c3,0x2801a2c3,0xe487a2c3,0xa2c34081,0xe487a2c3,0x4081e487,0xe513a2c3,0xa2c3a2c3, +0xa2c3a2c3,0x4801a2c3,0xe487e4c5,0xe4c5ce91,0xe487a2c3,0xc64ff6cd,0xe513a2c3,0xa2c3a2c3,0xdef70000,0xe8c7ef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7bef7b,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xbac9bac9,0xbac9bac9,0xa289bac9,0xbac9bac9,0xbac9a289,0xbac9bac9,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x624b0000,0x624b624b,0x6a8f8b8f,0xa5296b5b,0x8311520b,0x20c720c7,0x18851885,0x18c720c7,0x18c718c7,0x20c72109,0x10851085,0x18c718c7,0x10851885,0x4a534a53,0x42114211,0x42114a53,0x42114211,0x42114a53,0x39cf39cf,0x42114211,0x39cf39cf,0x00000000,0x00000000,0x00000000,0x9bd30000,0x00003947,0x00000000,0x00000000,0x00000000, +0x28c31001,0x10414987,0x39053103,0x10411881,0x28c34985,0x10015187,0x390528c3,0x28c31041,0x39cf18c7,0xef7931cf,0xffffef79,0xffffffff,0xdef5ef39,0x39cf39cf,0xdef7bdad,0x18871907,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487a2c3,0xa2c3e487,0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487a2c3,0xa2c3e487, +0xd3c5a2c3,0xd3c5e487,0xe487a2c3,0xa2c3e487,0xe513a2c3,0xa2c3e487,0xe487a2c3,0xa2c3e487,0xd6b50000,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0xdef7def7,0x0000d6b5,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2890000,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0xa289a289,0x0000a289,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x418949c9,0xa5296b5b,0x00008311,0x10851085,0x18c720c7,0x18851085,0x20c720c7,0x18851885,0x20c718c7,0x10851085,0x20c720c7,0x39cf39cf,0x42114a53,0x39cf39cf,0x4a534a53,0x39cf4211,0x4a534211,0x39cf39cf,0x4a534211,0x00000000,0x00000000,0x00000000,0x628d0000,0x00003145,0x00000000,0x00000000,0x00000000, +0x28c328c3,0x10413905,0x28c328c1,0x104128c3,0x310328c3,0x080128c3,0x28c328c3,0x390528c3,0xef79ef39,0x39cfef79,0xdef5def5,0xef79e6f7,0xef7bef79,0xe6f5d6b5,0xffffdeb5,0xf779ffff,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3, +0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0xa2c3d3c5,0xd3c5a2c3,0xa2c3a2c3,0xd3c5d3c5,0xa2c3a2c3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x99499149,0x91499149,0xa98ba14b,0x99499149,0xa94ba94b,0x91498909,0xa14ba14b,0x89099149,0xd3a5d3a3,0xd363d361,0xdca9dc27,0xd3a3d3a3,0xdc69dc69,0xd361cadf,0xdc27dc27,0xcb1fd361,0x84218421,0x84218421,0x84218421,0x94a594a5,0x94a57bdf,0x84218421,0x84218421,0x84218421, +0x9ce70000,0x4a530000,0x9ce70000,0x00004a53,0x00009ce7,0x4a539ce7,0x9ce70000,0x9ce70000,0x9ce7318d,0x4a53318d,0x9ce7318d,0x318d4a53,0x318d9ce7,0x4a539ce7,0x9ce7318d,0x9ce7318d,0x80438043,0x88438043,0x80438003,0x90438843,0x80438883,0x80438003,0x88438043,0x80438845,0x78418043,0x90c98041,0x888590c7,0x70018043,0xad6bb5ab,0xce31be2f,0x9d27b5ad,0xb5ab9ce7, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x83110000,0x6b5ba529,0x72cd5a4d,0xa413a413,0xac55ac55,0x6a8f8351,0xa5296b5b,0x00008311,0xa94ba14b,0xb98bb98b,0xa94bb18b,0x9949994b,0x89099149,0x99499949,0x89098109,0xa14b9949,0xdc69dc27,0xe56fe52d,0xdc69dceb,0xd3e5d3e5,0xcb1fd363,0xd3e5d3a3,0xd321ca9d,0xdc27d3a5,0xad6b8421,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b, +0x8c639ce7,0x4a538c63,0x9ce7318d,0x318d0000,0x9ce70000,0x4a538c63,0x00000000,0x8c630000,0x8c639ce7,0x4a538c63,0x9ce7318d,0x318d318d,0x9ce7318d,0x4a538c63,0x318d318d,0x8c63318d,0x80438043,0x90858885,0x90859085,0x98879085,0x88459885,0x98878843,0xa0c7a0c7,0xa0c9a087,0x98c5a109,0x99098803,0x88439949,0x70018003,0xd6b5c633,0xf7bde77b,0xbdadd6b5,0x9d29b56b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x4a530000,0x4a534a53,0x4a534a53,0x00004a53,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x520b41c9,0x624b624b,0x624b624b,0x418949c9,0xa5296b5b,0x0000520b,0xb18bb18b,0xa14b9949,0xb18bb18b,0x9949a14b,0xb18ba94b,0xa94ba94b,0xb98bb18b,0xa94ba94b,0xe4ebdceb,0xdc27d3e5,0xe4ebe4ed,0xd3e5dc27,0xe4ebdc69,0xdc69dc69,0xe52de52d,0xdc69dc69,0x9ce78421,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b, +0x9ce70000,0x42110000,0x00009ce7,0x00009ce7,0x00009ce7,0x42119ce7,0x9ce70000,0x9ce74a53,0x9ce7318d,0x318d318d,0x318d9ce7,0x318d9ce7,0x318d9ce7,0x318d9ce7,0x9ce7318d,0x9ce74a53,0x88438043,0xb18da94b,0xa98da98d,0xb18db1cd,0xa14ba98d,0xa94ba14b,0xb1cfb1cf,0xb1cfb1cf,0xa98db1cf,0xba5590c5,0xa109b211,0x68017803,0xf7bdc671,0xffffffff,0xd675f7bf,0xa4e7b5ab, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x4a530000,0xc6314a53,0xc631c631,0xc631c631,0x4a53c631,0x00004a53,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x9949a14b,0xb18ba94b,0x99499949,0xb18ba14b,0x994b9149,0xb18bb18b,0x9949a14b,0xb18bb98b,0xd3a5dc27,0xe4ebdca9,0xd3a5d3e5,0xe4ebdc27,0xd3e5d3a3,0xe4ebe4eb,0xd3a5dc27,0xe4ebe56f,0xb5ad8421,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529, +0x00009ce7,0x00009ce7,0x9ce70000,0x00005295,0x00008c63,0x318d4a53,0x4a539ce7,0x00009ce7,0x318d9ce7,0x318d9ce7,0x9ce7318d,0x318d5295,0x318d8c63,0x318d4a53,0x4a539ce7,0x318d9ce7,0x90458043,0xa98da98b,0xa98da98d,0xb18da98d,0xa98da98d,0xa14ba94b,0xb18da94d,0xb18db18d,0xa98ba98d,0xc2959087,0x990bb211,0x70018043,0xffffce73,0xffffffff,0xe739f7bd,0x9ce9bdef, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x4a530000,0xc6314a53,0xef7bc631,0xef7be8c7,0xef7bef7b,0xc631ef7b,0x4a53c631,0x00004a53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0xa14ba94b,0xa14b9149,0xa94ba98b,0x81098909,0xa14b9949,0x91499949,0xa98ba98b,0x89099149,0xdc27dc69,0xdc27d3a3,0xdca9dca9,0xca9dcadf,0xdc27d3a5,0xd321d3a3,0xdca9dca9,0xcadfd361,0xb5ad8421,0xa529b5ad,0xa529a529,0x94a594a5,0x94a594a5,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad, +0x00004a53,0x8c630000,0x00009ce7,0x4a539ce7,0x9ce78c63,0x00000000,0x9ce70000,0x00004211,0x318d4a53,0x8c63318d,0x318d9ce7,0x4a539ce7,0x9ce78c63,0x318d318d,0x9ce7318d,0x318d318d,0x98878041,0xa94ba94d,0xa14b9909,0xa14ba94b,0xa14ba94b,0x9909990b,0x99099909,0x990b9909,0x90c7994b,0xba959085,0x9107b211,0x70017843,0xffffd6b5,0xffbfffff,0xf77bef3b,0xa529ce33, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6314a53,0xe8c7c631,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0xc631ef7b,0x4a53c631,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83516acf,0x8b8fac55,0x8b8f8b8f,0x6acf624b,0xa5296b5b,0x00008311,0x89098909,0xb18b9149,0x81099149,0x99499149,0x81099149,0x99499949,0x99498909,0x99499149,0xcadfd321,0xe4ebd3a3,0xca9dd3a3,0xd3a5d3a3,0xca9dd3a3,0xd3e5d3a5,0xd3a3cb1f,0xd3e5d363,0xa5298421,0xad6bad6b,0x94a5ad6b,0x7bdf8421,0x84217bdf,0xad6bc631,0xa529a529,0x84219ce7, +0x00004a53,0x4a538c63,0x00004a53,0x4a530000,0x318d9ce7,0x4a539ce7,0x4a539ce7,0x00009ce7,0x318d4a53,0x4a538c63,0x318d4a53,0x4a53318d,0x318d9ce7,0x4a539ce7,0x4a539ce7,0x318d9ce7,0x98c78043,0xb18fb1cf,0x990998c9,0x908798c7,0x888788c7,0x80838845,0x808580c5,0x88858887,0x88858883,0xc2d59085,0x8085a10b,0x68017843,0xf7bdd6b7,0xf7bdffbd,0xef7bef7b,0xb5add6b5, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6314a53,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xef7be8c7,0xef7bef7b,0xef7be8c7,0x4a53c631,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x49c94189,0x624b5a09,0x624b624b,0x41895a09,0xa5296b5b,0x0000520b,0xb98bb98b,0xa94ba98b,0xa14ba14b,0xa14ba14b,0xb98bb18b,0x994ba94b,0xb98bb98b,0xa14ba94b,0xe56fe52d,0xdca9dceb,0xdc27dc27,0xdc27dc27,0xe56fdceb,0xd3e5dc69,0xe56fe56f,0xdc27dc69,0xb5ad94a5,0xad6bad6b,0x94a5ad6b,0x500194a5,0xb5ad5001,0xad6bce73,0xb5adb5ad,0x7bdfb5ad, +0x9ce74211,0x8c638c63,0x00004a53,0x00009ce7,0x9ce74211,0x00004a53,0x4a538c63,0x9ce70000,0x9ce7318d,0x8c638c63,0x318d4a53,0x318d9ce7,0x9ce7318d,0x318d4a53,0x4a538c63,0x9ce7318d,0x90858043,0x994bb1cd,0x90c590c7,0x88859087,0x88838885,0x80858885,0x88c58885,0x88858885,0x90858885,0xcb199085,0x80839909,0x68017001,0xf77dd6b5,0xef7df7bd,0xe77def7b,0xb5afd675, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6314a53,0xef7bc631,0xef7be8c7,0xef7bef7b,0xef7bef7b,0xef7bef7b,0xc631ef7b,0x4a53c631,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x99499949,0xb98bb98b,0xa94ba94b,0xb18bb18b,0x99499149,0xb18ba94b,0xa94ba94b,0xb18bb18b,0xd3a5d3a5,0xe56fe52d,0xdc69dc69,0xe4ebe4eb,0xd3a3d363,0xe4ebdca9,0xdc69dc69,0xe4ebe4eb,0xad6b8421,0xa529ad6b,0x842194a5,0x500194a5,0xb5ad4001,0xc631a529,0xa529a529,0x8421ad6b, +0x318d0000,0x00009ce7,0x9ce7318d,0x9ce70000,0x00009ce7,0x00009ce7,0x00008c63,0x00009ce7,0x318d318d,0x318d9ce7,0x9ce7318d,0x9ce7318d,0x318d9ce7,0x318d9ce7,0x318d8c63,0x318d9ce7,0x90458043,0x88859909,0x88858083,0x80858085,0x88858887,0x88858885,0x88858887,0x88858885,0x88878885,0xba538843,0x808590c7,0x68017001,0xefbbd6f7,0xef7df7bd,0xef7bef7b,0xb5adceb3, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce734a53,0xc631ef7b,0xef7bc631,0xef7bef7b,0xef7be8c7,0xc631ef7b,0xbdefc631,0x4a53bdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0xa94ba94b,0x99498909,0xa94bb18b,0x99499149,0x99499949,0x89099949,0x994ba14b,0x91499149,0xdc69dc69,0xd3a5d321,0xdc69e4eb,0xd3a5d3a3,0xd3e5d3a5,0xcb1fd3a3,0xd3e5dc27,0xd321d361,0xb5ad8421,0x9ce7b5ad,0x842194a5,0x500194a5,0xb5ad2801,0xce739ce7,0xb5adb5ad,0x94a5b5ad, +0x9ce70000,0x9ce74a53,0x0000318d,0x4a539ce7,0x00004a53,0x9ce70000,0x9ce74a53,0x9ce70000,0x9ce7318d,0x9ce74a53,0x318d318d,0x4a539ce7,0x318d4a53,0x9ce7318d,0x9ce74a53,0x9ce7318d,0x90458043,0x88879907,0x88858887,0x90858885,0x88858885,0x88858885,0x88858885,0x888588c5,0x88858885,0xb1cf8843,0x808590c7,0x68017003,0xf7bdd6b5,0xef7df7bb,0xef7bef7b,0xb56dce75, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce7338c3,0xef7bef7b,0xc631ef7b,0xc631c631,0xc631c631,0xbdefc631,0xbdefbdef,0x38c3bdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83516acf,0x8b8f8b8f,0x8b8f8b8f,0x6a8fa413,0xa5296b5b,0x00008311,0x994b9949,0xb18b9949,0x89098109,0xa14b994b,0xa94b9149,0xb98bb98b,0xa94ba14b,0xb98bb98b,0xd3e5d3a5,0xdcebd3e5,0xcadfcadf,0xdc67d3e5,0xdc69d3a3,0xe56fe56f,0xdc69dc27,0xe52de56f,0xa5298421,0x94a5a529,0xa5298421,0x580194a5,0xb5ad2801,0x9ce7a529,0xa529ce73,0x8421b5ad, +0x42119ce7,0x4a538c63,0x9ce70000,0x9ce70000,0x00004211,0x00009ce7,0x00004a53,0x4a539ce7,0x318d9ce7,0x4a538c63,0x9ce7318d,0x9ce7318d,0x318d318d,0x318d9ce7,0x318d4a53,0x4a539ce7,0x90858003,0x90c79907,0x88858885,0x80878885,0x88858885,0x88858885,0x88838885,0x888590c5,0x80858885,0xb1cf8843,0x888598c7,0x68017001,0xf77dd6b5,0xef7def7d,0xef7bef7b,0xb5add673, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924738c3,0xef7bce73,0xef7bef7b,0xce73ce73,0xbdefce73,0xbdefbdef,0xa289bdef,0x38c39247,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x49c94189,0x624b5a09,0x624b624b,0x41c9624b,0xa5296b5b,0x0000520b,0xb18bb18b,0xa94ba94b,0xb18bb98b,0xa94ba94b,0xb18bb18b,0xa14b9949,0xa14ba94b,0xa14b9149,0xe4ebe4eb,0xdc69dc69,0xe4ebe56f,0xdc69dc69,0xdcebe4eb,0xdc27d3e5,0xdc27dc69,0xdc27d361,0xad6b8421,0x94a5b5ad,0x9ce78421,0x580194a5,0xb5ad2801,0xa529a529,0xad6bce73,0x8421ad6b, +0x00008c63,0x42110000,0x4a539ce7,0x00000000,0x9ce70000,0x9ce74a53,0x9ce70000,0x4a53318d,0x318d8c63,0x318d318d,0x4a539ce7,0x318d318d,0x9ce7318d,0x9ce74a53,0x9ce7318d,0x4a53318d,0x88858043,0x90c79909,0x80858085,0x88858085,0x88878085,0x88878885,0x88858885,0x88859085,0x88858885,0xb1cf8043,0x88879107,0x68017801,0xe6f9c631,0xef7bef7b,0xdf39ef7b,0xad6bc631, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924738c3,0xa289a289,0xce73ef7b,0xce73ce73,0xbdefce73,0xbdefbdef,0xa289a289,0x38c39247,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x91499149,0xa14ba14b,0x99499949,0xa94ba98b,0x91499149,0xa94b9949,0x89098909,0xa94b9949,0xd3a3d361,0xdc67dc67,0xd3a5d3a5,0xdc69dca9,0xd3a3d363,0xdc69d3a5,0xcadfcadf,0xdc69d3e5,0xad6b7bdf,0x842194a5,0x9ce7a529,0x480194a5,0xb5ad2801,0x9ce7a529,0xce73a529,0x7bdfb5ad, +0x00000000,0x00009ce7,0x4a538c63,0x9ce70000,0x00004a53,0x8c639ce7,0x4a530000,0x42110000,0x318d318d,0x318d9ce7,0x4a538c63,0x9ce7318d,0x318d318d,0x8c639ce7,0x4a53318d,0x318d318d,0x90838041,0x888598c7,0x80858083,0x80438085,0x80437845,0x88858085,0x80858045,0x78457883,0x80837843,0xa98d7001,0x888590c7,0x68017041,0xdef7c631,0xef79deb7,0xd671def7,0xad6bb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924738c3,0xbac9bac9,0xa289aac9,0xa289c631,0xa289a289,0xaac9bdef,0xa289a289,0x38c39247,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x99499949,0x89098109,0xb18bb18b,0x81099149,0xa98ba14b,0xa94ba14b,0xb98bb98b,0x8909a94b,0xd3a5d3a5,0xcadfcadf,0xe4ede4eb,0xca9dd321,0xdca9dc27,0xdc69dc27,0xe56fe56f,0xcb1fdc69,0xa5298421,0x842194a5,0xa5299ce7,0x480194a5,0xb5ad2801,0xad299ce7,0xc631a529,0x8421a529, +0x8c634211,0x9ce78c63,0x9ce78c63,0x9ce7318d,0x9ce7318d,0x9ce70000,0x4a530000,0x0000318d,0x8c63318d,0x9ce78c63,0x9ce78c63,0x9ce7318d,0x9ce7318d,0x9ce7318d,0x4a53318d,0x318d318d,0x90437843,0x888590c7,0x80858885,0x78837845,0x80457883,0x78857845,0x80458045,0x80438083,0x80837885,0xa98b7001,0x8085a14b,0x68017003,0xdeb7c631,0xdef7def7,0xce73d6b5,0xad6bb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x38c30000,0x924738c3,0xbac99247,0xaac9bac9,0xaac9aac9,0x9247aac9,0x92479247,0x000038c3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83110000,0x6b5ba529,0x83515a4d,0x8b8fac55,0xac55ac55,0x6a8f8b8f,0xa5296b5b,0x00008311,0xa94ba94b,0xb98bb18b,0xa94bb18b,0x9949a14b,0xa14b8109,0xb18ba94b,0xa14ba14b,0xb98bb18b,0xdc69dc69,0xe56fe52d,0xdc69e4eb,0xd3e5dc27,0xdc27cadf,0xe4ebdc69,0xdc27dc27,0xe52de4eb,0xb5ad8421,0xb5ada529,0xa5299ce7,0x400194a5,0xb5ad2001,0xce73ad29,0xad6bce73,0x94a5b5ad, +0x0000318d,0x00009ce7,0x00009ce7,0x4a539ce7,0x00000000,0x4a539ce7,0x42110000,0x00009ce7,0x318d318d,0x318d9ce7,0x318d9ce7,0x4a539ce7,0x318d318d,0x4a539ce7,0x318d318d,0x318d9ce7,0x88418003,0x88858885,0x88858885,0x80457885,0x80838085,0x80457845,0x78858085,0x80858083,0x80858085,0xa98b7801,0x808598c7,0x68017001,0xdef7ceb3,0xce73deb5,0xdeb7c6b3,0xb5adce33, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x38c30000,0x924738c3,0x92479247,0x92479247,0x38c39247,0x38c338c3,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x520b0000,0x6b5ba529,0x49c94189,0x5a096a8b,0x624b624b,0x4189624b,0xa5296b5b,0x0000520b,0xb18bb18b,0x994ba14b,0xa14bb18b,0xa94ba94b,0xb18bb98b,0x99499949,0xa94ba14b,0x91499949,0xe4ede4ed,0xd3e5dc27,0xdc27e4eb,0xdca9dc69,0xdcebe56f,0xd3a5d3a3,0xdc69dc27,0xd363d3a5,0xad6b8421,0xa529ad6b,0xb5ada529,0xc631b5ad,0xc631c631,0xb5adce73,0xa529ad6b,0x8421a529, +0x9ce74211,0x9ce70000,0x9ce74a53,0x42110000,0x00004a53,0x00008c63,0x9ce7318d,0x9ce70000,0x9ce7318d,0x9ce7318d,0x9ce74a53,0x318d318d,0x318d4a53,0x318d8c63,0x9ce7318d,0x9ce7318d,0x80438043,0x80437803,0x80418043,0x80858083,0x80857845,0x78038083,0x78417801,0x80437843,0x80038003,0x98857801,0x78038885,0x70017003,0xd673d6b3,0xb5adc5f1,0xce73b5af,0xb5edd6b5, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x38c30000,0x38c338c3,0x38c338c3,0x000038c3,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b5ba529,0x00000000,0x00000000,0x00000000,0x00000000,0xa5296b5b,0x00000000,0x91498909,0xa14bb18b,0x99499149,0xb18bb18b,0x9949a14b,0xb18ba94b,0x91499149,0xb18bb18b,0xd3a3cb1f,0xdc27e4eb,0xd3a5d363,0xe52de4eb,0xd3a5dc27,0xe4ebdc69,0xd3a3d363,0xe4ebdceb,0x84218421,0x84218421,0x94a57bdf,0x84218c63,0x84218421,0x84218421,0x84218421,0x84218421, +0x4a530000,0x318d0000,0x4a539ce7,0x00009ce7,0x9ce74a53,0x8c630000,0x0000318d,0x00008c63,0x4a53318d,0x318d318d,0x4a539ce7,0x318d9ce7,0x9ce74a53,0x8c63318d,0x318d318d,0x318d8c63,0x80418043,0x80438043,0x80437841,0x80438043,0x80438043,0x80038041,0x80438001,0x80438043,0x80438003,0x80037841,0x78018043,0x68017003,0xb5adb5af,0xa569b5ab,0xb5adad6b,0xbdafb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a671aed,0x12b11a67,0x12b11af1,0x22632263,0x1aad1aa9,0x2a631a69,0x22a52a63,0x122d2a61,0x32453205,0x32053205,0x3a873247,0x32453205,0x3a873a87,0x32053205,0x3a473a47,0x32053205,0x358b354b,0x354b354b,0x3e4d3dcb,0x358b354b,0x3e0d3e0d,0x354b350b,0x3e0b3e0b,0x350b354b,0x84218421,0x84218421,0x84218421,0x94a594a5,0x94a57bdf,0x84218421,0x84218421,0x84218421, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x80438043,0x80418003,0x80438003,0x80858043,0x78858045,0x80438083,0x80438043,0x80457885,0x80038043,0x80037843,0x80418043,0x80858043,0x78858085,0x80858045,0x78437843,0x80458085,0x80018043,0x80417801,0x8043994b,0x68018043,0xce75b5ad,0xce73ceb3,0xbdedb5ef,0xb5adb5af, +0xceb3bdad,0xce73ce73,0xbdedb5ef,0xbdadb5ad,0xceb5b5ad,0xce73ce75,0xbdafbdad,0xb5edb5ad,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x1a6d19f1,0x3be91ab1,0x123522ef,0x1aa71a2b,0x1aad1aa9,0x09af09af,0x1a271a67,0x122d122d,0x3a873247,0x42c73ac7,0x3a873a87,0x32453247,0x32053205,0x32453245,0x320529c5,0x32473245,0x3e0d3dcb,0x4e914e4f,0x3e0d3e4d,0x3dcb3dcb,0x350b354b,0x3dcb358b,0x350b2cc9,0x3dcb358b,0xad6b8421,0xb5adb5ad,0xb5adb5ad,0xb5adb5ad,0xb5ada529,0xb5adb5ad,0xad6b9ce7,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88c58043,0x88858885,0x88858885,0x80838885,0x80458085,0x80858045,0x88c58845,0x80458885,0x88858043,0x888588c5,0x88858885,0x80858885,0x78857885,0x78858085,0x88859087,0x80838885,0x88858885,0xb18d7801,0x8885a10b,0x68018045,0xef7bbdad,0xef7defbb,0xef7befbb,0xb5afceb3, +0xce73b5ef,0xef7bef7b,0xffffffff,0xf7fdffff,0xffbfffbd,0xf77bef7b,0xef7befbd,0xb5adce75,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12b1122d,0x2b671ab1,0x1a691af1,0x1a6719e7,0x1a692a63,0x09af1a2d,0x1a69092f,0x122d122d,0x3a873a87,0x32473245,0x3a873a87,0x32453a47,0x3a873a87,0x3a873a87,0x3ac73a87,0x3a873a87,0x464d3e4d,0x3dcb3dcb,0x464d464f,0x3dcb3e0b,0x464d3e0d,0x3e0d3e0d,0x4e4f464f,0x3e0d3e0d,0x9ce78421,0xa529a529,0xa5299ce7,0xa529a529,0xa529b5ad,0xad6bad6b,0xb5adad6b,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88858003,0x99099909,0x99099909,0x990798c9,0x88858885,0x804588c5,0x80438085,0x88858885,0x88858043,0x99099909,0x99079109,0x98c99909,0x88858885,0x80438887,0x80858083,0x88858085,0x78858885,0xa14b7001,0x88858083,0x68018887,0xce75b5ad,0xef7bef7b,0xef3bef7b,0xb5add673, +0xd6b3b5ad,0xef7def7d,0xef7bf77b,0xf77bef7b,0xf77bffff,0xf7bdefbb,0xf77befbb,0xb5adceb5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x122d122d,0x1ab11a6d,0x12311ab1,0x1aa31a2b,0x2a63122f,0x09af1a67,0x1a6709af,0x122d1a69,0x32453247,0x3a873a87,0x32453245,0x3a873247,0x32473205,0x3a873a87,0x32453247,0x3a8742c7,0x358b3dcb,0x464d3e4d,0x3d8b3dcb,0x464d3dcb,0x3dcb354b,0x464d464d,0x358b3dcb,0x464d4e91,0xb5ad8421,0xad6bad6b,0x9ce7ad6b,0xb5adad6b,0xad6bad6b,0xa529a529,0xa529a529,0x8421a529, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x70016801,0x70016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0x68016801,0xbdefb5ad,0xce73d6b3,0xb5adce73,0xb5adb5ef, +0xb5edb5ad,0xce33ce73,0xb5adce73,0xb5adb5ad,0xbdefb5ef,0xce73d675,0xbdedce73,0xb5afb5ef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a6f19f1,0x1ab1122d,0x12331ab1,0x1a611a2d,0x1a27122f,0x2a631a69,0x09af2a63,0x122d1a67,0x32473a87,0x32473205,0x3a873a87,0x29c53205,0x3a473245,0x32053245,0x3a873a87,0x32053205,0x3dcb3e0d,0x3dcb354b,0x3e4d3e4d,0x2cc9350b,0x3e0b358b,0x354b358b,0x3e4d3e4d,0x350b354b,0xb5ad8421,0xa529b5ad,0xa529a529,0x94a594a5,0x94a594a5,0xb5adb5ad,0xb5adb5ad,0x7bdfb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x934da493,0x934f8b4d,0x934f934f,0x8b4d8b4b,0x934d934d,0x8b4d834d,0x934d934d,0x5207938f,0x934fac53,0x938f834d,0x934f8b4f,0x8b4d8b0d,0x934f934d,0x830d8b4d,0x938d934f,0x8b4d934f,0x8b4b8b4d,0x934d934f,0x934f8b8f,0x8b4d934d,0x934d8b4d,0x934f8b0d,0x934d8b4d,0x59c78b4d, +0x934fac93,0x934f830d,0x934d934f,0x8b0d8b4d,0x934f938f,0x8b4d830d,0x934d934d,0x59c7938f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x122f1a6f,0x1a6f122d,0x1ab11aaf,0x1a69122f,0x2a63122f,0x232d1a27,0x09af1a67,0x122d1a67,0x2a053205,0x3a873205,0x29c53205,0x32453205,0x29c53205,0x32453245,0x32453205,0x32453205,0x3509350b,0x464d358b,0x2cc9354b,0x358b354b,0x2cc9354b,0x3dcb358b,0x358b350b,0x3d8b354b,0xa5298421,0xad6bad6b,0x94a5ad6b,0x7bdf8421,0x84217bdf,0xad6bc631,0xa529a529,0x84219ce7, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b0db495,0x6a096209,0x6a096a09,0x6a096a07,0x51c951c5,0x6a096a07,0x939159c7,0x5a078b4f,0x8b4dac95,0x6a0769c9,0x6a076a07,0x6a096a07,0x51c751c7,0x6a076a07,0x69c951c7,0x6a076a07,0x59c76209,0x6a076a07,0x6a0751c7,0x6a076a09,0x6a076a07,0x6a076a09,0x93916207,0x51c78b4f, +0x8b0db4d3,0x6a096a07,0x62096207,0x6a076a07,0x59c751c7,0x6a076a07,0x9bd159c7,0x59c78b4d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19af1a6f,0x19f111f3,0x1ab11a2d,0x1a691233,0x2a631aa5,0x22631a27,0x2aa31a67,0x19af1a67,0x42c73ac7,0x3a873a87,0x32473247,0x3a473247,0x42c73a87,0x32473a87,0x42c742c7,0x3a473a87,0x4e514e4f,0x3e4d3e4d,0x3dcb3dcb,0x3e0b3dcb,0x4e513e4d,0x3dcb3e0d,0x4e914e91,0x3e0b3e0d,0xb5ad94a5,0xad6bad6b,0x94a5ad6b,0xf80194a5,0xb5adf801,0xad6bce73,0xb5adb5ad,0x7bdfb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b0dac51,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0xac930000,0x51c7934f,0x8b4bac53,0x000059c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac930000,0x59c7934f, +0x8b4dac93,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0xac510000,0x51c7934d,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a2b19af,0x1a6f126d,0x092f1a6f,0x122d1a69,0x1a671a69,0x1a29122f,0x2aa31a29,0x19af1165,0x32453245,0x42c73ac7,0x3a873a87,0x3a873a87,0x32453205,0x3a873a87,0x3a873a87,0x3a873a87,0x358b358b,0x4e914e4f,0x3e0d3e0d,0x464d464d,0x358b354b,0x464d3e4d,0x3e0d3e0d,0x464d464d,0xad6b8421,0xa529ad6b,0x842194a5,0xf80194a5,0xb5add001,0xc631a529,0xa529a529,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4facd5,0x000059c5,0x00000000,0x00000000,0x00000000,0x00000000,0xb4950000,0x6a07934f,0x8b4db495,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb4950000,0x6a09934f, +0x8b4fb495,0x000051c7,0x00000000,0x00000000,0x00000000,0x00000000,0xb4950000,0x6a098b4f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x226719af,0x12b119ef,0x19eb1a71,0x1231092f,0x1aab2269,0x1a692a63,0x2aa31a27,0x19af19af,0x3a873a87,0x32453205,0x3a873a87,0x32453205,0x32453245,0x32053245,0x32473247,0x32053205,0x3e0d3e0d,0x358b350b,0x3e0d464d,0x3d8b354b,0x3dcb358b,0x350b358b,0x3dcb3dcb,0x354b354b,0xb5ad8421,0x9ce7b5ad,0x842194a5,0xf80194a5,0xb5ada801,0xce739ce7,0xb5adb5ad,0x94a5b5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9b4dac53,0x00006a07,0x00000000,0x00000000,0x00000000,0x00000000,0xac530000,0x6a07934f,0x934fac53,0x00006a07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac510000,0x6a07934f, +0x938dac51,0x00006a07,0x00000000,0x00000000,0x00000000,0x00000000,0xac910000,0x6a09934f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19af19af,0x19f119eb,0x232b1a2f,0x1a2d2269,0x1a291a2b,0x2a631a2b,0x1a292a63,0x19af2aa3,0x32473245,0x3a873245,0x320529c5,0x3a473247,0x3a873205,0x42c742c7,0x3a873247,0x3ac742c7,0x3dcb358b,0x3e4d3d8b,0x350b34c9,0x3e0d3dcb,0x3e0d354b,0x4e914e91,0x3e0d3dcb,0x4e4f4e91,0xa5298421,0x94a5a529,0xa5298421,0xd00194a5,0xb5add001,0x9ce7a529,0xa529ce73,0x8421b5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19af3321,0x116d19a7,0x2aa519eb,0x092f2269,0x1a2919ed,0x2a632265,0x1a292a63,0x32e33321,0x3a873a87,0x3a873a87,0x3a8742c7,0x3a873a87,0x3a873a87,0x3a473245,0x32473a87,0x32473205,0x464d464d,0x3e0d3e0d,0x464d4e51,0x3e0d3e0d,0x3e4d464d,0x3e0b3dcb,0x3dcb3e0d,0x3dcb354b,0xad6b8421,0x94a5b5ad,0x9ce78421,0xd00194a5,0xb5adb001,0xa529a529,0xad6bce73,0x8421ad6b, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22632aa3,0x11271a67,0x1a231165,0x092f19a9,0x1a6911eb,0x2a632227,0x22652263,0x2aa332e3,0x32053205,0x3a473a47,0x32453245,0x3a873a87,0x32053205,0x3a873245,0x2a052a05,0x3a873245,0x354b354b,0x3e0d3e0d,0x3d8b358b,0x3e0d3e4d,0x354b354b,0x3e0d358b,0x35093509,0x3e0d3d8b,0xad6b7bdf,0x842194a5,0x9ce7a529,0xf80194a5,0xb5add801,0x9ce7a529,0xce73a529,0x7bdfb5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x2aa532e3,0x19a52a63,0x11691167,0x092f11ad,0x1a2b116d,0x1a671a69,0x22632a63,0x2aa32223,0x32453245,0x320529c5,0x3a873a87,0x29c53205,0x3a873247,0x3a873a47,0x42c742c7,0x32053a87,0x358b3d8b,0x350b34c9,0x464f464d,0x2cc9354b,0x3e4d3dcb,0x3e0d3e0b,0x4e914e91,0x350b3e0d,0xa5298421,0x842194a5,0xa5299ce7,0xf80194a5,0xb5adb001,0xad299ce7,0xc631a529,0x8421a529, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22632ae1,0x22632225,0x116b116b,0x09af1a69,0x11a5116d,0x1a252223,0x2a612a63,0x2aa32261,0x3a873a87,0x42c73a87,0x3a873a87,0x32453a47,0x324729c5,0x3a873a87,0x32473247,0x3ac73a87,0x3e0d3e0d,0x4e91464f,0x3e0d464d,0x3dcb3e0b,0x3dcb34c9,0x464d3e0d,0x3dcb3dcb,0x4e4f464d,0xb5ad8421,0xb5ada529,0xa5299ce7,0xd00194a5,0xb5adb001,0xce73ad29,0xad6bce73,0x94a5b5ad, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x221d1a65,0x1ab11ab1,0x22632263,0x22632263,0x1a69096f,0x09af11a5,0x22232a63,0x122d2a61,0x3a873a87,0x32473247,0x3a473a87,0x3a873a87,0x3a8742c7,0x32453245,0x3a873a47,0x32053245,0x464f464f,0x3dcb3dcb,0x3e0b464d,0x3e4d3e0d,0x3e4d4e91,0x358b358b,0x3e0d3e0b,0x354b3d8b,0xad6b8421,0xa529ad6b,0xb5ada529,0xc631b5ad,0xc631c631,0xb5adce73,0xa529ad6b,0x8421a529, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a6732df,0x1ab11a67,0x1a691235,0x22631a69,0x1a692263,0x2a632223,0x2a632a63,0x122d122d,0x32053205,0x3a473a87,0x32453205,0x3a873a87,0x32453247,0x3a873a87,0x32053205,0x3a873a87,0x354b350b,0x3e0b464d,0x3d8b354b,0x464f464d,0x358b3dcb,0x464d3e0d,0x354b354b,0x464d3e4d,0x84218421,0x84218421,0x94a57bdf,0x84218c63,0x84218421,0x84218421,0x84218421,0x84218421, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d7bdf,0x739d739d,0x7bdf739d,0x8c638c63,0x8c636b5b,0x739d7bdf,0x739d739d,0x7bdf739d,0x51874947,0x49474947,0x59875187,0x51874947,0x59875987,0x49474947,0x51875187,0x49474947,0xb547b505,0xad05acc5,0xce07c587,0xb547b507,0xcdc7cdc7,0xad05a485,0xc587c587,0xa4c5ad05,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ef7b,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x7bdf7bdf,0x8c638c63,0x8c638c63,0x8c638c63,0x8c63739d,0x8c638c63,0x7bdf6b5b,0x739d7bdf,0x59875187,0x61c961c7,0x59875987,0x51875187,0x49474947,0x51875187,0x49474145,0x51875187,0xcdc7c587,0xde4bde49,0xcdc7d607,0xbd47bd47,0xa4c5ad05,0xbd47b547,0xa4c59c45,0xbd87b547,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b5b7bdf,0x2b671ab1,0x1a691af1,0x739d739d,0x739d8c63,0x7bdf7bdf,0x1a69092f,0x7bdf7bdf,0x59c75987,0x51875187,0x59c761c7,0x51875187,0x59c75987,0x59875987,0x61c761c7,0x59875987,0xd649d607,0xc587bd47,0xd649de49,0xbd47c587,0xd649cdc7,0xcdc7cdc7,0xde4bde49,0xcdc7cdc7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c637bdf,0x7bdf7bdf,0x12317bdf,0x1aa37bdf,0x7bdf122f,0x739d739d,0x739d739d,0x7bdf739d,0x51875187,0x59c75987,0x51875187,0x59c75187,0x51874947,0x59c759c7,0x51875187,0x59c761c9,0xb547c587,0xd649ce07,0xbd47bd47,0xd649c587,0xbd47b507,0xd649d649,0xb547c587,0xd609de4b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef7b0000,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c637bdf,0x739d8c63,0x739d739d,0x739d739d,0x739d739d,0x8c638c63,0x8c638c63,0x6b5b8c63,0x51875987,0x51874947,0x59875987,0x41454947,0x51875187,0x49475187,0x59875987,0x49474947,0xbd87cdc7,0xc587b507,0xce07ce07,0x9c45a485,0xc587b547,0xa4c5b547,0xce07ce07,0xa485ad05,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef7b0000,0xdef70000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d739d,0x7bdf7bdf,0x1ab17bdf,0x739d122f,0x6b5b7bdf,0x232d1a27,0x739d739d,0x7bdf6b5b,0x49454947,0x59c74947,0x41454947,0x51874947,0x41454947,0x51875187,0x51874947,0x51874947,0x9c85a4c5,0xd649b507,0x9c45b507,0xb547b505,0x9c45b507,0xbd47b547,0xb547a4c5,0xbd47ad05,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdef7ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c638c63,0x19f17bdf,0x1ab11a2d,0x1a691233,0x7bdf7bdf,0x22631a27,0x8c638c63,0x6b5b8c63,0x61c961c7,0x59875987,0x51875187,0x51875187,0x61c95987,0x51875987,0x61c961c9,0x51875987,0xde4bde4b,0xce07d607,0xc587c587,0xc587bd87,0xde4bd607,0xbd47cdc7,0xde4bde4b,0xc587cdc7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xdef7def7,0xdef7ffff,0xffffef7b,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdef7def7,0x0000def7,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a2b7bdf,0x739d126d,0x739d739d,0x739d739d,0x6b5b739d,0x739d739d,0x739d739d,0x7bdf7bdf,0x51875187,0x61c961c7,0x59875987,0x59c759c7,0x51874947,0x59c75987,0x59875987,0x59c759c7,0xb547b547,0xde4bde4b,0xcdc7cdc7,0xd609d649,0xb547ad05,0xd649ce07,0xcdc7cdc7,0xd609d649,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x0000ef7b,0xdef7ffff,0x00000000,0xef7bef7b,0xef7b0000,0xffffef7b,0xffffffff,0x0000ffff,0x0000ef7b,0xdef7ffff,0x00000000,0xdef7ef7b,0x0000ffff,0x0000ef7b,0x0000ffff,0x0000ffff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22677bdf,0x6b5b19ef,0x739d8c63,0x12317bdf,0x1aab7bdf,0x1a692a63,0x8c638c63,0x8c638c63,0x59875987,0x51874947,0x598759c7,0x51874947,0x51875187,0x49475187,0x51875187,0x49474947,0xcdc7cdc7,0xb547a4c5,0xcdc7d609,0xbd47b507,0xbd47b547,0xa4c5b547,0xbd47c587,0xa4c5acc5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xef7b0000,0xffffef7b,0xef7bdef7,0xef7bffff,0x0000ffff,0x0000def7,0xffff0000,0x00000000,0xef7b0000,0x0000ef7b,0xef7b0000,0xffff0000,0x0000def7,0x0000def7,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d7bdf,0x739d739d,0x739d739d,0x1a2d739d,0x1a291a2b,0x2a631a2b,0x1a29739d,0x7bdf2aa3,0x51875187,0x59875187,0x49474145,0x59875187,0x59874947,0x61c961c9,0x59875187,0x61c761c9,0xbd47b547,0xd607bd47,0xa4859c85,0xcdc7bd47,0xcdc7b507,0xde4bde4b,0xcdc7c587,0xde49de4b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xffff0000,0xffffdef7,0xdef70000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdef7,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bdf7bdf,0x739d8c63,0x8c6319eb,0x739d8c63,0x1a2919ed,0x8c632265,0x1a298c63,0x7bdf3321,0x59c759c7,0x59875987,0x59c761c9,0x59875987,0x598759c7,0x51875187,0x51875987,0x51874947,0xd649d609,0xcdc7cdc7,0xd649de4b,0xcdc7cdc7,0xd607d649,0xc587bd47,0xc587cdc7,0xc587ad05,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdef70000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bdf6b5b,0x11271a67,0x7bdf1165,0x7bdf7bdf,0x8c638c63,0x7bdf7bdf,0x22657bdf,0x6b5b32e3,0x49474947,0x59875987,0x51875187,0x59875987,0x49474947,0x59875187,0x49454945,0x59875187,0xb507ad05,0xcdc7cdc7,0xbd47b547,0xcdc7ce07,0xb507ad05,0xcdc7b547,0x9c859c85,0xcdc7bd47,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d7bdf,0x739d739d,0x1169739d,0x739d739d,0x1a2b116d,0x739d1a69,0x2263739d,0x7bdf2223,0x51875187,0x49474145,0x61c759c7,0x41454947,0x59875187,0x59875187,0x61c961c9,0x49475987,0xb547bd47,0xa4859c85,0xde49d609,0x9c45a4c5,0xce07c587,0xcdc7c587,0xde4bde4b,0xa4c5cdc7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdef70000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c637bdf,0x8c63739d,0x116b116b,0x739d1a69,0x11a5116d,0x739d2223,0x7bdf7bdf,0x8c638c63,0x59875987,0x61c961c7,0x598759c7,0x51875187,0x51874145,0x59c75987,0x51875187,0x61c759c7,0xcdc7cdc7,0xde4bde49,0xcdc7d609,0xbd47c587,0xc5879c85,0xd649cdc7,0xc587bd87,0xde4bd649,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000def7,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bdf7bdf,0x739d7bdf,0x22632263,0x739d2263,0x7bdf7bdf,0x8c638c63,0x739d7bdf,0x7bdf739d,0x59c761c7,0x51875187,0x518759c7,0x59875987,0x598761c9,0x51875187,0x59875187,0x49475187,0xde49de49,0xbd47c587,0xc587d649,0xce07cdc7,0xd607de4b,0xb547b547,0xcdc7c587,0xad05bd47,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x739d739d,0x739d739d,0x8c636b5b,0x7bdf8c63,0x7bdf7bdf,0x739d7bdf,0x739d739d,0x7bdf7bdf,0x49474947,0x518759c7,0x51874947,0x61c759c7,0x51875187,0x59c75987,0x49474947,0x59c75987,0xb507a4c5,0xc587d609,0xbd47ad05,0xde49d649,0xb547bd87,0xd609cdc7,0xb507ad05,0xd649d607,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9e6eb,0xdea7d667,0xdea9e6e9,0xd665d667,0xdea9dea9,0xdea9d667,0xd6a7e6e9,0xef2be6e9,0x21a52163,0x21632163,0x29a921a7,0x21a52163,0x29a929a7,0x21632161,0x21a721a7,0x21612163,0x5c3553f3,0x53f34bb3,0x74b76475,0x5c3553f3,0x74b56cb5,0x53f34373,0x6c756c75,0x4bb353f3,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0xdea9dea9,0xdea9e6a9,0xce27d667,0xce25ce25,0xdea7dea7,0xe6e9d667,0xe72bdea7,0xef2be72b,0x29a721a7,0x29ed29eb,0x29a929a9,0x21a521a5,0x21612163,0x21a521a5,0x2161195f,0x21a521a5,0x6cb56c75,0x8d778d37,0x74b57cf7,0x64356435,0x4bb353f3,0x64355c35,0x4bb33b31,0x64355c35,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd667dea9,0xdea7dea9,0xce27ce65,0xd665ce25,0xd6a7d665,0xe6e9d665,0xdee9e6eb,0xe6ebe6e9,0x29e929a9,0x21a521a5,0x29e929eb,0x21a521a7,0x29e929a9,0x29a929a9,0x29eb29eb,0x29a729a9,0x7cf77cf7,0x64756435,0x7cf78537,0x64356c75,0x7cf774b5,0x74b574b5,0x8d378537,0x6cb574b5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea7e6e9,0xdea7dea7,0xde67d667,0xe6a9dea7,0xdea7d665,0xdea7d665,0xdea9e6e9,0xd665dea9,0x21a521a7,0x29e929a9,0x21a521a5,0x29e921a7,0x21a52163,0x29e929e9,0x21a521a7,0x29e929ed,0x5c356c75,0x7cf774b7,0x5c356435,0x7cf76475,0x643553f3,0x7cf77cf7,0x5c356c75,0x7cf78d77,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd665dea7,0xd665dea7,0xdea7d6a7,0xe6e9dea9,0xdea7d665,0xd6a7dea7,0xdea9e6e9,0xd667dea9,0x21a529a7,0x21a72163,0x29a929a9,0x215f2161,0x21a721a5,0x216321a5,0x29a929a9,0x21612163,0x64356cb5,0x6c7553f3,0x74b774b7,0x3b714373,0x6c755c35,0x4bb35c35,0x74b774b7,0x437353f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea7d665,0xce25dea7,0xd667ce25,0xef2de6eb,0xd667dea9,0xd667de67,0xdea7dea7,0xdea7dea9,0x21612161,0x29e921a3,0x215f2163,0x21a52163,0x215f2163,0x21a521a5,0x21a52161,0x21a52163,0x43734bb3,0x7cf753f3,0x3b7153f3,0x5c3553f3,0x3b7153f3,0x64355c35,0x5c3543b3,0x5c3553f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea9d667,0xd667dea9,0xd665dea7,0xe6edd667,0xdea7dea9,0xdea7e6e9,0xdea9d667,0xdea9dea9,0x29ed29eb,0x29a929a9,0x21a721a7,0x21a721a5,0x29ed29a9,0x21a529a7,0x29ed29ed,0x21a729a9,0x8d378d37,0x74b77cf7,0x64756475,0x6c756435,0x8d377cf7,0x64356cb5,0x8d778d77,0x6c7574b5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd667dea9,0xce65dea9,0xd667dea7,0xd665d665,0xdea9dea9,0xdea9e6e9,0xdea9dea7,0xdea9dea9,0x21a521a5,0x29ed29eb,0x29a729a9,0x29e929e9,0x21a52163,0x29e929a9,0x29a729a7,0x29e929eb,0x5c355c35,0x8d778d37,0x6cb574b5,0x7cf77cf7,0x5c3553f3,0x7cf774b7,0x6cb56cb5,0x7cf77cf7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd665dea7,0xdea9dea9,0xe6a9dea7,0xdea9dea9,0xdea7dea9,0xe6e9dea7,0xe6ebe6eb,0xd6a7e6e9,0x29a929a9,0x21a52161,0x29a729e9,0x21a52163,0x21a521a5,0x216121a5,0x21a521a7,0x21632163,0x74b574b5,0x5c354bb3,0x6cb57cf7,0x5c3553f3,0x64355c35,0x43b35c35,0x64356475,0x4bb34bb3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd665d665,0xd667d665,0xe6e9dea9,0xce25dea7,0xd667e6e9,0xdea9d665,0xdea9e6eb,0xdea7dea9,0x21a521a5,0x29a921a5,0x2161215f,0x29a721a5,0x29a72163,0x29ed29ed,0x29a921a5,0x29eb29ed,0x64355c35,0x7cf75c35,0x43733b73,0x6c756435,0x6cb553f3,0x8d778d77,0x74b56475,0x8d378d77,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea7ce25,0xdea7d6a7,0xe6ebd667,0xdea7dea9,0xdee7dea7,0xce23dea7,0xef2de6e9,0xd665e6eb,0x29eb29e9,0x29a929a9,0x29e929ed,0x29a729a9,0x29a929eb,0x21a721a5,0x21a729a7,0x21a72163,0x7cf77cf7,0x74b574b5,0x7cf78d37,0x6cb574b5,0x7cf77cf7,0x6c756435,0x64756cb5,0x6c7553f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9dea7,0xdea9dea9,0xde67d667,0xce25e6a9,0xd667d667,0xd667d665,0xdea9dea9,0xdea7d667,0x21632163,0x29a729a7,0x21a521a5,0x29a929a9,0x21632163,0x29a721a5,0x21612161,0x29a721a5,0x53f353f3,0x6c756c75,0x5c355c35,0x74b574b7,0x53f353f3,0x6cb55c35,0x43734373,0x6cb55c35,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea9dea9,0xdea9dea9,0xdee9dea9,0xd665dea7,0xd665ce23,0xce25d665,0xdea7d665,0xdea7e6e9,0x21a521a5,0x2161215f,0x29eb29e9,0x215f2163,0x29a921a7,0x29a921a7,0x29ed29ed,0x216129a7,0x5c355c35,0x43733b73,0x85377cf7,0x3b714bb3,0x74b76475,0x74b56c75,0x8d778d77,0x43b36cb5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdea9e6eb,0xdeebd667,0xd669dea9,0xd6a7d667,0xd667d667,0xd667dea7,0xdea9dea9,0xe6e9dea7,0x29a729a9,0x29ed29eb,0x29a929e9,0x21a521a7,0x21a5215f,0x29e929a9,0x21a521a5,0x29eb29e9,0x6cb574b5,0x8d778537,0x74b57cf7,0x64356c75,0x64753b73,0x7cf774b5,0x64756435,0x8d377cf7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9e6e9,0xe6e9dea7,0xdee9dea9,0xce65d667,0xdea7d667,0xdea9d6a7,0xe6ebdea9,0xdea9dea9,0x29eb29eb,0x21a521a7,0x21a729e9,0x29a929a7,0x29a929ed,0x21a521a5,0x29a921a7,0x216321a5,0x84f78537,0x64356c75,0x6c757cf7,0x74b76cb5,0x7cf78d77,0x5c355c35,0x74b56c75,0x53f35c35,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6e9ef2b,0xdea7dea9,0xe6a9de67,0xd667dea9,0xdea9d667,0xe6ebd6a7,0xdee9dea7,0xdea9dea9,0x21632161,0x21a729e9,0x21a52163,0x29eb29e9,0x21a521a5,0x29e929a7,0x21632163,0x29e929a9,0x53f34bb3,0x6c757cf7,0x5c3553f3,0x85377cf7,0x5c356435,0x7cf76cb5,0x53f353f3,0x7cf77cf7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xef2deeed,0xe6edef2d,0xe6ebe6ab,0xef2df76f,0xf76fef2d,0xef2def2d,0xf76fef2d,0xef2df76f,0x796f716d,0x716d716d,0x89f381b1,0x796f716d,0x81f381b3,0x716d696b,0x81b381b3,0x716b716d,0xb9f1b9f1,0xb9f1b1b1,0xc2b3ba73,0xb9f1b9f1,0xc2b3c2b3,0xb1f1a9ad,0xc273c273,0xb1afb1f1,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xd669e6eb,0xdea9dea9,0xd669dea9,0xce25d667,0xd667d667,0xdea9dea7,0xe6edd667,0xe6ebe6ed,0x81b381b1,0x92759275,0x81f389f3,0x79b179b1,0x716b716d,0x79b1796f,0x716b6969,0x79b1796f,0xc2b3c273,0xcb75cb35,0xc2b3c2f3,0xba33ba33,0xb1afb9f1,0xba33b9f1,0xb1afa1ab,0xba33b9f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xd667c621,0xc5e1d663,0xc621ce21,0xc5e1ce23,0xc61fc621,0xc5ddc5df,0xce65ce21,0xc5dfc5e3,0x8a3389f3,0x79b179b1,0x8a338a35,0x79b181b3,0x8a3381f3,0x81f381f3,0x92759235,0x81b381f3,0xc2f5c2f3,0xba33ba33,0xc2f5cb35,0xba33c273,0xc2f5c2b3,0xc2b3c2b3,0xcb75cb35,0xc2b3c2b3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xf771ce23,0xef2de6ed,0xf771ce1f,0xf76ff76f,0xe6edef2f,0xf76fbd9b,0xe6ede6ed,0xf76ff76f,0x796f81b1,0x8a3389f3,0x79af79b1,0x8a3381b1,0x79b1716d,0x8a338a33,0x796f81b1,0x8a339275,0xb9f1c273,0xc2f5c2b3,0xba33ba33,0xc2f5ba73,0xba33b9f1,0xc2f5c2f5,0xb9f1c273,0xc2f3cb75,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xdea9ce21,0xd667dea7,0xdee9ce1f,0xe6e9e6eb,0xc5ddde67,0xd667e6eb,0xe6eddea9,0xdea9d667,0x79b181b3,0x81b1716d,0x89f389f3,0x6969696b,0x81b3796f,0x716d796f,0x89f389f3,0x696b716d,0xba33c2b3,0xc273b9f1,0xc2b3c2b3,0xa1ada9ad,0xc273b9f1,0xb1afb9f1,0xc2b3c2b3,0xa9adb1f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xd667d6a9,0xdea7d667,0xe6ebce1f,0xef2ddea9,0xc5dddea9,0xdea7e6eb,0xdea9dea7,0xc5dfdeab,0x6969716b,0x8a33796f,0x6969716d,0x796f716d,0x6969716d,0x79b1796f,0x796f716b,0x79af716d,0xa9adb1af,0xc2f5b9f1,0xa1adb9f1,0xb9f1b9f1,0xa1adb9f1,0xba33b9f1,0xb9f1a9af,0xba33b9f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xce63dea9,0xce23ce63,0xce23ce1f,0xe6eddeed,0xc5ddbd9d,0xe6ebc621,0xd6a7deeb,0xc5dfdeab,0x92759275,0x89f389f3,0x81b181b1,0x81b379b1,0x927589f3,0x79b181b3,0x92759275,0x81b381f3,0xcb75cb75,0xc2b3c2f3,0xba73ba73,0xc273ba33,0xcb75c2f3,0xba33c2b3,0xcb75cb75,0xc273c2b3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xf771c5dd,0xeeedef2d,0xef2ff771,0xc621ce23,0xef2def2d,0xc621f76f,0xce21ce25,0xef2fc5df,0x796f796f,0x92759275,0x81b381f3,0x8a338a33,0x796f716d,0x8a3389f3,0x81b381b3,0x8a338a33,0xb9f1b9f1,0xcb75cb75,0xc2b3c2b3,0xc2f3c2f5,0xb9f1b9f1,0xc2f5c2b3,0xc2b3c2b3,0xc2f3c2f5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xdea9ef2f,0xdea9e6eb,0xc5dfdea9,0xef2fef2d,0xdea7deab,0xd663e6eb,0xef2df76f,0xef2fc5df,0x81f381f3,0x796f716b,0x81b38a33,0x79af716d,0x79b1796f,0x716b796f,0x79b181b1,0x716d716d,0xc2b3c2b3,0xb9f1b1af,0xc2b3c2f3,0xba33b9f1,0xba33b9f1,0xa9afb9f1,0xba33ba73,0xb1afb1b1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6ebd667,0xe6ebe6eb,0xc5dddea7,0xdeabeeed,0xdeabe6eb,0xc5dbd667,0xdeebe6ed,0xdeebc5df,0x79b1796f,0x89f379af,0x696b6969,0x81b379b1,0x81b3716d,0x92759275,0x81f379b1,0x92759275,0xba33b9f1,0xc2f3ba33,0xa9ada1ad,0xc273ba33,0xc2b3b9f1,0xcb75cb75,0xc2b3ba33,0xcb35cb75,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xc5dfdea7,0xc5dfc5df,0xce21d667,0xdea7dea7,0xdea7e6ed,0xce21dea9,0xc5dddeeb,0xc59dc5dd,0x8a338a33,0x81f381f3,0x8a339275,0x81b381f3,0x89f38a33,0x81b379b1,0x81b181b3,0x81b1716d,0xc2f5c2f3,0xc2b3c2b3,0xc2f5cb75,0xc2b3c2b3,0xc2f3c2f5,0xc273ba33,0xba73c2b3,0xc273b1f1,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xef2fc5dd,0xe6ebef2f,0xbd9bce21,0xc5ddc5dd,0xc5dddea7,0xef2fc5dd,0xe6e9c5dd,0xef2fef2f,0x716d716d,0x81b381b3,0x79af796f,0x81f389f3,0x716d716d,0x81b3796f,0x69696969,0x81b379af,0xb9f1b1f1,0xc273c273,0xba33b9f1,0xc2b3c2b3,0xb9f1b9f1,0xc2b3b9f1,0xa9ada9ad,0xc2b3ba33,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6efef2d,0xce23e6eb,0xef2fef2d,0xef2def2d,0xef31c5dd,0xdeabeeed,0xe6edce23,0xe6ede72f,0x796f79af,0x696b6969,0x8a358a33,0x6969716d,0x89f381b1,0x81f381b3,0x92759275,0x716b81b3,0xb9f1ba33,0xa9ada1ad,0xcb35c2f3,0xa1adb1af,0xc2b3ba73,0xc2b3c273,0xcb75cb75,0xa9afc2b3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xe6efe6ed,0xc5dfd667,0xdea9d669,0xdeabdea7,0xd6a9c5dd,0xd667d667,0xe6edc5dd,0xdea9deeb,0x81b381f3,0x92759235,0x81f38a33,0x79b181b3,0x79b16969,0x8a3381f3,0x79b179b1,0x92758a33,0xc2b3c2b3,0xcb75cb35,0xc2b3c2f3,0xba33c273,0xba33a1ad,0xc2f5c2b3,0xba33ba33,0xcb75c2f5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xc621ce25,0xce23e6eb,0xe72ddea9,0xbd9ddeed,0xce1fe6ed,0xe6ebdeeb,0xbd9bc621,0xbd9bdea9,0x8a358a35,0x79b181b1,0x81b38a33,0x89f381b3,0x89f39275,0x796f796f,0x81f381b3,0x716d79af,0xc335cb35,0xba33c273,0xc273c2f5,0xc2b3c2b3,0xc2f3cb75,0xb9f1b9f1,0xc2b3c273,0xb9f1ba33,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xef2de72f,0xdea9ce23,0xc621c621,0xe6ebc5df,0xdea7e6e9,0xce21c5dd,0xef2deeed,0xef2fc5dd,0x716d716b,0x81b38a33,0x79af716d,0x92358a33,0x796f79b1,0x8a3381b3,0x716d716d,0x8a3389f3,0xb9f1b1af,0xc273c2f3,0xba33b9f1,0xcb35c2f5,0xb9f1ba33,0xc2f3c2b3,0xb9f1b9f1,0xc2f5c2f3,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xdea9ef2b,0xc5ddce23,0xdea9e6eb,0xc5ddef2d,0xe6e9d667,0xdea9dea9,0xdea9c5dd,0xdea9dea9,0x23632363,0x23612361,0x2be723a5,0x23632363,0x2be72be7,0x23612321,0x2ba52ba5,0x23212361,0xebcdeb8b,0xeb8beb89,0xec11ec0d,0xebcbebcb,0xec0fec0f,0xeb89e347,0xec0dec0d,0xeb89eb89,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xc5dde6eb,0xe6a9dea9,0xd667c5dd,0xc5ddd667,0xdea9dea7,0xd667d667,0xc5ddd667,0xe72dc5dd,0x2be723a5,0x2c2b2c2b,0x2be72be9,0x23a523a5,0x23212361,0x23a52363,0x23211adf,0x23a52363,0xec0fec0d,0xec53ec53,0xec0fec11,0xebcdebcd,0xeb89eb8b,0xebcdebcb,0xeb89e345,0xebcdebcd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xe6a9ce23,0xc5dddea7,0xd667c5dd,0xd665ce25,0xd665c5dd,0xe6e9ce25,0xef2bc5dd,0xc5dde6e9,0x2be92be9,0x23a523a5,0x2be92c29,0x23a52ba5,0x2be92be7,0x2be72be7,0x2c2b2c29,0x2be72be7,0xec51ec11,0xebcdebcd,0xec51ec51,0xebcdec0d,0xec51ec0f,0xec0fec0f,0xec53ec51,0xec0fec0f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xdea7ce23,0xeeedc5dd,0xc5ddeeed,0xdea9dea7,0xd665d663,0xc5ddd6a7,0xe6e9eeed,0xd665dea7,0x236323a5,0x2be92be7,0x23a323a5,0x2be923a5,0x23a52363,0x2be92be9,0x236323a5,0x2be92c2b,0xebcdec0d,0xec51ec11,0xebcdebcd,0xec51ec0d,0xebcdebcb,0xec51ec51,0xebcdec0d,0xec51ec53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xc5dddea7,0xdea9eeed,0xd663d667,0xef2def2d,0xce23c5dd,0xeeedce23,0xe6e9e6e9,0xdea9dea7,0x23a52be7,0x23a52363,0x2be72be7,0x231f2321,0x2ba52363,0x23212363,0x2be72be7,0x23212361,0xebcdec0f,0xec0debcb,0xec11ec11,0xe345e347,0xec0debcb,0xeb89ebcb,0xec11ec11,0xe347eb89,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xc5ddd667,0xdea9d667,0xd663dea9,0xc5ddc5dd,0xdea9e6e9,0xc5dddea7,0xdea7d667,0xd667ce25,0x231f2321,0x2be92363,0x231f2363,0x23632363,0x231f2363,0x23a52363,0x23632321,0x23a32361,0xe347eb89,0xec51ebcb,0xe345ebcb,0xebcdeb8b,0xe345ebcb,0xebcdebcd,0xebcbeb47,0xebcdeb8b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xdea7c5dd,0xeeeddea7,0xd663d667,0xe6ebc5dd,0xdea7c5dd,0xd665e6e9,0xce23ce23,0xc5ddeeed,0x2c2b2c2b,0x2be72be9,0x23a523a5,0x2ba523a5,0x2c2b2be9,0x23a52be7,0x2c2b2c2b,0x2ba52be7,0xec53ec53,0xec11ec11,0xec0dec0d,0xec0debcd,0xec53ec11,0xebcdec0f,0xec53ec53,0xec0dec0f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x7ca77ca7,0x00000000,0x7ca70000,0x00007ca7,0x00000000,0x7ca77ca7,0x00000000,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xc5dde6e9,0xd663eeed,0xc5ddc5dd,0xd665d665,0xe6e9c5dd,0xdea9dea9,0xe6ebdea9,0xe6ebc5dd,0x23632363,0x2c2b2c2b,0x2be72be7,0x2be92be9,0x23632361,0x2be92be7,0x2be72be7,0x2be92c29,0xebcdebcd,0xec53ec53,0xec0fec0f,0xec51ec51,0xebcbeb8b,0xec51ec11,0xec0fec0f,0xec51ec51,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ca70000,0xd6f7ffff,0x0000535d,0xffff7ca7,0x535dd6f7,0x7ca70000,0xd6f7ffff,0x0000535d,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xd665d665,0xdea9c5dd,0xe6e9e6e9,0xd667ce23,0xc5dddea9,0xdea7c5dd,0xc5ddef2d,0xd665dea9,0x2be72be7,0x23632321,0x2be72be9,0x23a32363,0x23a52363,0x23212363,0x23a523a5,0x23212361,0xec0fec0f,0xebcbeb89,0xec0fec51,0xebcdebcb,0xebcdebcb,0xeb47ebcb,0xebcdec0d,0xeb89eb89,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ca70000,0xbe73d6f7,0x0000535d,0xd6f77ca7,0x535dbe73,0x7ca70000,0xbe73d6f7,0x0000535d,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xdea7d667,0xd665ce23,0xdea9dea9,0xd665c5df,0xd665e6e9,0xc5ddce25,0xce23c5dd,0xd667e6e9,0x23a52363,0x2be923a3,0x2321231f,0x2ba723a5,0x2be72363,0x2c2b2c2b,0x2be723a5,0x2c2b2c2b,0xebcdebcb,0xec11ebcd,0xe347e345,0xec0febcd,0xec0febcb,0xec53ec53,0xec0febcd,0xec53ec53,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x535d535d,0x00000000,0x535d0000,0x0000535d,0x00000000,0x535d535d,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xc5ddd665,0xd667d665,0xe6e9dea9,0xdea9c5dd,0xd667dea9,0xef2dc5dd,0xce23dea9,0xdea7e6e9,0x2c292be9,0x2be72be7,0x2be92c2b,0x2be72be7,0x2be92c29,0x2ba523a5,0x23a52be7,0x23a52361,0xec51ec51,0xec0fec0f,0xec51ec53,0xec0fec0f,0xec11ec51,0xec0debcd,0xec0dec0f,0xec0deb89,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xef2dc5dd,0xe6e9ef2d,0xe6e9dea7,0xc5dde6e9,0xef2dd667,0xef2dc5dd,0xc5dddea9,0xdea9dea9,0x23632361,0x2ba72ba7,0x23a32363,0x2be72be7,0x23632361,0x2be72363,0x231f231f,0x2be723a3,0xebcbeb89,0xec0fec0f,0xebcdebcd,0xec0fec11,0xebcbeb8b,0xec0febcb,0xe347e347,0xec0febcd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xce23dea9,0xe6ebc5dd,0xce23ce23,0xd665c5dd,0xc5ddd665,0xdea7ef2d,0xdee9d665,0xce23c5dd,0x236323a3,0x2321231f,0x2c292be9,0x231f2321,0x2be723a5,0x2be72ba5,0x2c2b2c2b,0x23212be7,0xebcdebcd,0xe347e345,0xec51ec51,0xe345eb89,0xec11ec0d,0xec0fec0d,0xec53ec53,0xeb47ec0f,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xe6a9e6e9,0xc5ddef2d,0xdea9c5dd,0xc5dddea7,0xce23d665,0xdea9dea7,0xc5dde6e9,0xdea9eeed,0x2be72be7,0x2c2b2c29,0x2be72be9,0x23a52ba5,0x23a5231f,0x2be92be7,0x23a523a5,0x2c2b2be9,0xec0fec0f,0xec53ec51,0xec0fec51,0xebcdec0d,0xebcde345,0xec51ec0f,0xebcdebcd,0xec53ec51,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xe6e9e6e9,0xef2dd667,0xdea9c5dd,0xc5ddd667,0xc5ddce23,0xdea9ce23,0xeeedc5dd,0xdea9dea7,0x2c292c29,0x23a523a5,0x2ba52be9,0x2be72be7,0x2be92c2b,0x23632363,0x2be72ba5,0x236123a3,0xec51ec51,0xebcdec0d,0xec0dec51,0xec11ec0f,0xec11ec53,0xebcbebcb,0xec0fec0d,0xeb8bebcd,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xdea9e6eb,0xc5dddea7,0xe6ebdea9,0xc5dddea7,0xdea9dea9,0xc5ddde67,0xdea9dea7,0xe6ebdea9,0x23632321,0x2ba52be9,0x23a32361,0x2c292be9,0x236323a5,0x2be92be7,0x23632361,0x2be92be9,0xebcbeb89,0xec0dec51,0xebcdeb8b,0xec51ec51,0xebcdebcd,0xec51ec0f,0xebcbeb8b,0xec51ec11,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x94e794e7,0x8ca58ca5,0xad6b9d29,0x94e794e7,0xa56ba56b,0x8ca58463,0xa529a529,0x8ca58ca5,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa56b9d29,0xbdefb5ef,0xa56badad,0x9d299d29,0x8ca58ca5,0x9d2994e7,0x8ca57c63,0x9d2994e7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadadadad,0x9d299d29,0xadadb5ad,0x9d29a529,0xadada56b,0xa56ba56b,0xb5efb5ad,0xa56ba56b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e79d29,0xadada56b,0x94e79d29,0xadad9d29,0x9d2994e7,0xadadadad,0x94e79d29,0xadadbdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d29a56b,0x9d2994e7,0xa56bad6b,0x84638463,0xa52994e7,0x8ca594e7,0xad6bad6b,0x84638ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x84638ca5,0xadad94e7,0x846394e7,0x94e794e7,0x846394e7,0x9d2994e7,0x94e784a5,0x95298ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5efb5ef,0xa56badad,0x9d299d29,0xa5299d29,0xb5efadad,0x9d29a56b,0xbdefbdef,0xa529a56b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e794e7,0xbdefb5ef,0xa56ba56b,0xadadadad,0x94e78ca5,0xadada56b,0xa56ba56b,0xadadadad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa56ba56b,0x94e78ca5,0xa56badad,0x94e794e7,0x9d2994e7,0x84a594e7,0x9d299d29,0x8ca58ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d2994e7,0xadad9529,0x84638463,0xa56b9d29,0xa56b94e7,0xbdefbdef,0xa56b9d29,0xb5efbdef,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadadadad,0xa56ba56b,0xadadb5ef,0xa56ba56b,0xadadadad,0xa5299d29,0x9d29a56b,0x9d298ca5,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e78ca5,0xa56ba56b,0x94e794e7,0xa56bad6b,0x94e78ca5,0xa56b94e7,0x84638463,0xa56b9529,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e794e7,0x84638463,0xb5adadad,0x84638ca5,0xad6b9d29,0xa56ba529,0xbdefbdef,0x84a5a56b,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa56ba56b,0xbdefb5ad,0xa56badad,0x9d29a529,0x9d298463,0xadada56b,0x9d299d29,0xb5efadad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5adb5ad,0x9d299d29,0xa529adad,0xa56ba56b,0xadadbdef,0x94e794e7,0xa56ba529,0x8ca594e7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94e78ca5,0xa529adad,0x94e78ca5,0xb5adadad,0x94e79d29,0xadada56b,0x94e78ca5,0xadadadad,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x7bdf9ce7,0x7bdf39cf,0x7bdf39cf,0x7bdf9ce7,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df, +0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0x69df69df,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801,0xfd01c801,0xfa81fd01,0xc801f801,0xc801c801,0xf801f801,0xf801fa81,0xc801f801,0xc801c801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801,0xffc1fa81,0xfa81ffc1,0xf801f801,0xf801c801,0xfa81f801,0xfa81ffc1,0xf801f801,0xc801c801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf39cf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x39cf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf39cf,0x39cf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf39cf,0x39cf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801,0xfd01fa81,0xfa81ffc1,0xf801c801,0xfa81f801,0xfa81f801,0xfd01ffc1,0xf801c801,0xf801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf, +0x9ce77bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801,0xf801f801,0xf801fa81,0xfa81fa81,0xffc1fd01,0xfa81fa81,0xfa81fa81,0xfa81fa81,0xf801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf39cf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf39cf, +0x39cf7bdf,0x9ce79ce7,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf39cf,0x39cf39cf,0x9ce79ce7,0x7bdf39cf,0x9ce739cf,0x39cf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf39cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81,0xc801f801,0xfa81f801,0xfa81ffc1,0xfa81fa81,0xffc1fd01,0xffc1fa81,0xfd01ffc1,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf9ce7,0x9ce739cf,0x39cf9ce7, +0x9ce77bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf9ce7,0x9ce739cf,0x39cf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x39cf7bdf,0x7bdf9ce7,0x9ce739cf,0x39cf9ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81,0xf801f801,0xffc1fd01,0xfa81fa81,0xf801c801,0xf801f801,0xfd01c801,0xfa81fd01,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x9ce77bdf, +0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf39cf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x9ce77bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xf801f801,0xfa81f801,0xf801f801,0xf801fd01, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x39cf7bdf,0x9ce79ce7,0x39cf9ce7,0x39cf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1,0xc801c801,0xfa81f801,0xfa81fd01,0xc801c801,0xfa81fa81,0xc801f801,0xfd01f801,0xfd01ffc1, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x7bdf7bdf,0x9ce77bdf,0x9ce739cf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x9ce77bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x9ce739cf,0x39cf7bdf,0x9ce77bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x9ce739cf,0x39cf7bdf,0x9ce77bdf,0x9ce739cf,0x39cf7bdf,0x7bdf7bdf,0x39cf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81,0xc801c801,0xfd01fa81,0xfd01ffc1,0xf801f801,0xffc1fd01,0xc801fa81,0xfa81f801,0xfa81fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x7bdf7bdf,0x7bdf39cf,0x9ce77bdf,0x7bdf39cf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x7bdf7bdf,0x7bdf39cf,0x9ce77bdf,0x7bdf39cf,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x9ce739cf,0x7bdf7bdf,0x7bdf39cf,0x9ce77bdf,0x7bdf39cf,0x9ce739cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81,0xf801f801,0xfa81f801,0xfa81fa81,0xf801f801,0xffc1fa81,0xc801fa81,0xf801c801,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf, +0x7bdf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x7bdf9ce7,0x7bdf39cf,0x7bdf9ce7,0x39cf9ce7,0x7bdf7bdf,0x39cf39cf,0x7bdf7bdf,0x39cf9ce7,0x7bdf9ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81,0xfa81f801,0xf801fa81,0xf801f801,0xf801c801,0xfa81fa81,0xf801fa81,0xfd01f801,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf, +0x39cf9ce7,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x39cf39cf,0x39cf7bdf,0x7bdf7bdf,0x39cf9ce7,0x7bdf7bdf,0x39cf7bdf,0x39cf39cf,0x9ce79ce7,0x39cf39cf,0x39cf7bdf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01,0xfd01f801,0xfa81ffc1,0xfd01fa81,0xf801fa81,0xf801f801,0xfa81f801,0xffc1fd01,0xf801fd01, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf, +0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x9ce79ce7,0x9ce77bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x9ce79ce7,0x9ce77bdf,0x39cf39cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81,0xffc1f801,0xfa81ffc1,0xffc1ffc1,0xf801fd01,0xf801c801,0xfa81f801,0xffc1ffc1,0xf801fa81, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x39cf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf, +0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x39cf39cf,0x7bdf9ce7,0x7bdf7bdf,0x39cf9ce7,0x39cf39cf,0x7bdf7bdf,0x9ce79ce7,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801,0xfa81f801,0xfa81fd01,0xfa81fa81,0xf801fa81,0xfa81fa81,0xfa81f801,0xfa81fd01,0xf801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce77bdf,0x9ce79ce7,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf, +0x7bdf7bdf,0x9ce739cf,0x39cf39cf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x39cf39cf,0x7bdf7bdf,0x7bdf7bdf,0x9ce739cf,0x39cf39cf,0x7bdf7bdf,0x9ce739cf,0x9ce79ce7,0x39cf39cf,0x7bdf7bdf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801,0xf801c801,0xf801fa81,0xf801c801,0xfa81f801,0xfd01fd01,0xf801fa81,0xf801fa81,0xc801f801, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf,0x7bdf9ce7,0x7bdf7bdf, +0x7bdf7bdf,0x7bdf9ce7,0x9ce79ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0x7bdf7bdf,0x7bdf39cf,0x9ce79ce7,0x7bdf7bdf,0x7bdf39cf,0x7bdf7bdf,0x9ce79ce7,0x7bdf39cf,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69df,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801,0xf801c801,0xf801fa81,0xf801f801,0xc801c801,0xfa81fd01,0xf801f801,0xf801f801,0xc801c801, +0 }; diff --git a/src/terrain_565.h b/src/terrain_565.h new file mode 100755 index 0000000..609d7f4 --- /dev/null +++ b/src/terrain_565.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.23 + * PVRTC Library v 1.142. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_565[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00010013, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f800, /* dwRBitMask */ +0x000007e0, /* dwGBitMask */ +0x0000001f, /* dwBBitMask */ +0x00000000, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef9cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x9cd39cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x39e739e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x9cd339e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd37bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x39e739e7,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3, +0x9cd37bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7, +0x39e77bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0x39e739e7,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef39e7,0x7bef39e7,0x7bef9cd3,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38c92,0xa534ad96,0x94f38cb2,0xb5b6adb6,0x94f39d14,0xad96a555,0x94d38cb2,0xadb6ad96,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5b6b5b6,0x9d149d34,0xa534adb6,0xa575a555,0xad96bdf7,0x94f394f3,0xa575a534,0x8cb294f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa555a575,0xbdf7b5b6,0xa575ad96,0x9d14a534,0x9d148451,0xadb6a575,0x9d149d14,0xb5d7adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0x84718451,0xb5b6ad96,0x84518cb2,0xad759d34,0xa575a534,0xbdf7bdf7,0x8492a555,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38cb2,0xa555a555,0x94f394f3,0xa575ad75,0x94d38cb2,0xa55594f3,0x84718471,0xa5559514,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0xa575a575,0xadb6b5f7,0xa555a575,0xad96adb6,0xa5349d14,0x9d34a555,0x9d348cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d1494f3,0xad969514,0x84718451,0xa5559d14,0xa55594d3,0xbdf7bdf7,0xa5759d14,0xb5d7bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa575a575,0x94f38c92,0xa555ad96,0x94f394d3,0x9d1494f3,0x849294f3,0x9d149d34,0x8cb28cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0xbdf7b5d7,0xa555a575,0xad96adb6,0x94f38cb2,0xadb6a575,0xa555a555,0xad96adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5f7b5d7,0xa575ad96,0x9d349d34,0xa5349d14,0xb5f7ad96,0x9d14a555,0xbdf7bdf7,0xa534a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x84718c92,0xadb694d3,0x845194d3,0x94f394d3,0x845194d3,0x9d1494f3,0x94f38492,0x95148cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d14a555,0x9d3494d3,0xa575ad75,0x84518471,0xa53494f3,0x8cb294f3,0xad75ad75,0x84718cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f39d34,0xadb6a575,0x94f39d14,0xadb69d34,0x9d1494d3,0xadb6adb6,0x94f39d34,0xad96bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0x9d149d14,0xadb6b5b6,0x9d14a534,0xadb6a575,0xa575a575,0xb5d7b5b6,0xa555a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa5559d34,0xbdf7b5d7,0xa575ad96,0x9d149d14,0x8c928cb2,0x9d1494f3,0x8c927c51,0x9d1494f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x94f394d3,0x8cb28cb2,0xad759d34,0x94f394d3,0xa575a555,0x8cb28471,0xa534a534,0x8c928cb2,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xdeb4e6d5,0xc5cedeb3,0xe6d5de94,0xc5cede93,0xde94deb4,0xc5cede73,0xdeb4de93,0xe6f5deb4,0x23512330,0x2bb22bf4,0x23912350,0x2c142bf4,0x23712392,0x2bf42bd3,0x23512350,0x2bf42bf4,0xebc5eb84,0xec06ec48,0xebc6eba5,0xec48ec48,0xebc6ebe6,0xec48ec07,0xebc5eba5,0xec48ec28,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6d4e6d4,0xef16d673,0xdeb4c5ce,0xc5ced673,0xc5cece31,0xdeb4ce31,0xeef6c5ce,0xdeb4de93,0x2c142c14,0x239223b2,0x2bb22bf4,0x2bd32bd3,0x2bf42c35,0x23712371,0x2bd32bb2,0x23502391,0xec48ec48,0xebe6ec06,0xec06ec48,0xec28ec07,0xec28ec69,0xebc5ebc5,0xec27ec06,0xeba5ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6b4e6d4,0xc5ceef16,0xde94c5ce,0xc5cede93,0xce31d672,0xde94de93,0xc5cee6d4,0xde94eef6,0x2bd32bd3,0x2c352c14,0x2bd32bf4,0x23922bb2,0x2392230f,0x2bf42bd3,0x23922392,0x2c352bf4,0xec07ec27,0xec69ec48,0xec27ec48,0xebe6ec06,0xebe6e342,0xec48ec27,0xebe6ebe6,0xec69ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xce31deb4,0xe6d5c5ce,0xce31ce31,0xd672c5ce,0xc5ced652,0xdeb3ef16,0xded4d672,0xce31c5ce,0x23712391,0x2330230f,0x2c142bf4,0x230f2330,0x2bd323b2,0x2bd32bb2,0x2c352c35,0x23302bd3,0xebc6ebc6,0xe363e342,0xec48ec48,0xe342eba4,0xec28ec06,0xec27ec06,0xec69ec69,0xeb63ec07,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef16c5ce,0xe6d4ef16,0xe6d4de93,0xc5cee6d4,0xef16d673,0xef16c5ce,0xc5cede94,0xdeb4deb4,0x23512350,0x2bb32bb3,0x23912371,0x2bd32bd3,0x23512350,0x2bd32371,0x230f230f,0x2bd32391,0xebc5eba4,0xec07ec07,0xebc6ebc6,0xec27ec28,0xebc5eba5,0xec07ebc5,0xe363e363,0xec07ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5ced652,0xd673d672,0xe6d4deb4,0xde94c5ce,0xd673deb4,0xef16c5ce,0xce31deb4,0xdeb3e6d4,0x2c142bf4,0x2bd32bd3,0x2bf42c35,0x2bd32bd3,0x2bf42c14,0x2bb22392,0x23b22bd3,0x23b22350,0xec48ec48,0xec27ec27,0xec48ec69,0xec07ec27,0xec28ec48,0xec06ebe6,0xec06ec07,0xec06eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xdeb3d673,0xd652ce31,0xdeb4de94,0xd652c5cf,0xd672e6d4,0xc5cece32,0xce31c5ee,0xd673e6d4,0x23922371,0x2bf42391,0x2330230f,0x2bb32392,0x2bd32351,0x2c352c35,0x2bd32392,0x2c352c35,0xebe6ebc5,0xec28ebc6,0xe363e342,0xec07ebe6,0xec07ebc5,0xec69ec69,0xec27ebe6,0xec69ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x536e536e,0x00000000,0x536e0000,0x0000536e,0x00000000,0x536e536e,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xd652d672,0xde94c5ce,0xe6d4e6d4,0xd673ce31,0xc5cede94,0xde93c5ce,0xc5ceef36,0xd672de94,0x2bd32bd3,0x23712330,0x2bd32bf4,0x23912351,0x23922371,0x23302371,0x239223b2,0x23302350,0xec27ec27,0xebc5eba4,0xec07ec48,0xebc6ebc5,0xebe6ebc5,0xeb63ebc5,0xebe6ec06,0xeba4eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xbe59d6fb,0x0000536e,0xd6fb7cb3,0x536ebe59,0x7cb30000,0xbe59d6fb,0x0000536e,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5cee6f4,0xd651eef6,0xc5cec5ce,0xd652d652,0xe6d4c5ce,0xdeb4deb4,0xe6f5deb4,0xe6f5c5ce,0x23712371,0x2c352c35,0x2bd32bd3,0x2bf42bf4,0x23712350,0x2bf42bd3,0x2bd32bd3,0x2bf42c14,0xebc6ebc6,0xec69ec69,0xec07ec27,0xec48ec48,0xebc5eba5,0xec48ec28,0xec07ec07,0xec48ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xd6fbffff,0x0000536e,0xffff7cb3,0x536ed6fb,0x7cb30000,0xd6fbffff,0x0000536e,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xdeb3c5ce,0xeef6de93,0xd651d673,0xe6d5c5ce,0xde93c5ce,0xd652e6d4,0xce31ce31,0xc5ceeef6,0x2c352c35,0x2bd32bf4,0x23b223b2,0x2bb22392,0x2c352bf4,0x23922bd3,0x2c352c35,0x2bb22bd3,0xec69ec69,0xec28ec28,0xec06ec06,0xec06ebe6,0xec69ec28,0xebe6ec07,0xec69ec69,0xec06ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x7cb37cb3,0x00000000,0x7cb30000,0x00007cb3,0x00000000,0x7cb37cb3,0x00000000,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xc5ced673,0xde94d673,0xd651de94,0xc5cec5ce,0xde94e6f4,0xc5cede93,0xde93d653,0xd653ce32,0x230f2330,0x2bf42371,0x230f2351,0x23712351,0x230f2351,0x23922371,0x23712330,0x23912350,0xe363eba4,0xec48ebc5,0xe342ebc5,0xebc6eba5,0xe342ebc5,0xebe6ebc6,0xebc5eb63,0xebc6eba5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xc5cede93,0xde94eef6,0xd651d673,0xef16ef16,0xce31c5ce,0xeef6ce31,0xe6d4e6d4,0xde94de93,0x23922bd3,0x23b22351,0x2bd32bd3,0x230f2330,0x2bb22371,0x23302371,0x2bd32bd3,0x23302350,0xebe6ec07,0xec06ebc5,0xec28ec28,0xe342e363,0xec06ebc5,0xeba4ebc5,0xec28ec28,0xe363eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xdeb3ce31,0xeef6c5ce,0xc5ceeef6,0xdeb4de93,0xd672d651,0xc5ced693,0xe6f4eef6,0xd652de93,0x237123b2,0x2bf42bd3,0x23912392,0x2bf423b2,0x23922351,0x2bf42bf4,0x237123b2,0x2bf42c35,0xebc6ec06,0xec48ec28,0xebc6ebe6,0xec48ec06,0xebe6ebc5,0xec48ec48,0xebc6ec06,0xec48ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xe6b4ce31,0xc5cede93,0xd653c5ce,0xd652ce32,0xd652c5ce,0xe6f4ce32,0xef35c5ce,0xc5cee6d4,0x2bf42bf4,0x23922392,0x2bf42c14,0x23922bb2,0x2bf42bd3,0x2bd32bd3,0x2c352c14,0x2bd32bd3,0xec48ec28,0xebe6ebe6,0xec48ec48,0xebe6ec06,0xec48ec27,0xec27ec27,0xec69ec48,0xec07ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xc5cee6f5,0xe6b4de94,0xd653c5ce,0xc5ced673,0xdeb4deb3,0xd673d653,0xc5ced673,0xe716c5ce,0x2bd323b2,0x2c352c35,0x2bd32bf4,0x23922392,0x23302350,0x23922371,0x23301aef,0x23922371,0xec07ec06,0xec69ec69,0xec27ec28,0xebe6ebe6,0xeb84eba5,0xebe6ebc5,0xeba4e342,0xebe6ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xde94ef15,0xc5cece31,0xde94e6d5,0xc5ceef16,0xe6d4d673,0xdeb4deb4,0xdeb4c5ce,0xdeb4deb4,0x23712351,0x23502350,0x2bd323b2,0x23712351,0x2bd32bd3,0x23502330,0x2bb22bb2,0x23302350,0xebc6eba5,0xeba5eba4,0xec28ec06,0xebc5ebc5,0xec27ec07,0xeba4e363,0xec06ec06,0xeb84eba4,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xef16e717,0xdeb4ce31,0xc610c610,0xe6d5c5cf,0xde93e6d4,0xce30c5ce,0xef36eef6,0xef37c5ee,0x71767155,0x81998a19,0x79977176,0x923a8a19,0x79777998,0x8a1981b9,0x71767176,0x8a1989f9,0xb9d8b1b7,0xc279c2f9,0xba19b9d8,0xcb3ac2fa,0xb9f8ba39,0xc2f9c299,0xb9d8b9d8,0xc2fac2d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc610ce32,0xce31e6d5,0xe716de94,0xbdaeded6,0xce0fe6f6,0xe6d5ded5,0xbd8dc610,0xbdaddeb4,0x8a3a8a3a,0x79988198,0x81998a19,0x89d981b9,0x89f9927a,0x79777977,0x81d98199,0x71767997,0xc31acb1a,0xba19c259,0xc279c2fa,0xc2b9c299,0xc2d9cb5a,0xb9f8b9f8,0xc2b9c279,0xb9d8ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6f7e6f6,0xc5efd673,0xde94d674,0xdeb5de93,0xd694c5ce,0xd673d673,0xe6f6c5ce,0xde94ded5,0x81b981d9,0x927a923a,0x81d98a19,0x79988199,0x79986954,0x8a1981d9,0x79987998,0x925a8a19,0xc299c2b9,0xcb5acb3a,0xc2b9c2f9,0xba19c279,0xba39a196,0xc2fac2b9,0xba39ba39,0xcb5ac2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xe6f7ef16,0xce31e6d5,0xef37ef16,0xef16ef16,0xef38c5ce,0xde95eef6,0xe6f6ce31,0xe6d6e717,0x79777997,0x69556954,0x8a3a8a19,0x69547176,0x89d98198,0x81d98199,0x927a927a,0x715581b9,0xb9f8ba19,0xa9b6a196,0xcb1ac2f9,0xa196b1b7,0xc2b9ba59,0xc2b9c279,0xcb5acb5a,0xa9b7c299,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef37c5ce,0xe6d5ef37,0xbdadce10,0xc5eec5ee,0xc5cede93,0xef17c5ce,0xe6d4c5ee,0xef37ef37,0x71767176,0x81998199,0x79977977,0x81d989d9,0x71767176,0x81b97977,0x69546954,0x81b97997,0xb9d8b1d8,0xc279c279,0xba19b9f8,0xc2b9c2b9,0xb9d8b9d8,0xc299b9f8,0xa9b6a9b6,0xc299ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5efde93,0xc5efc5ef,0xce30d673,0xde93de93,0xde93e6f6,0xce10deb4,0xc5eeded5,0xc5aec5ee,0x8a198a19,0x81d981d9,0x8a19927a,0x81b981d9,0x89f98a19,0x81997998,0x819881b9,0x81987176,0xc2fac2f9,0xc2b9c2b9,0xc2facb5a,0xc299c2b9,0xc2d9c2fa,0xc279ba19,0xba59c299,0xc259b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xe6d5d673,0xe6d5e6d5,0xc5eede93,0xdeb5eef6,0xdeb5e6d5,0xc5cdd673,0xded5e6f6,0xded5c5cf,0x79987977,0x89f97997,0x69556954,0x81997998,0x81b97176,0x927a927a,0x81d97998,0x925a927a,0xba19b9f8,0xc2d9ba19,0xa9b6a196,0xc279ba19,0xc299b9d8,0xcb5acb5a,0xc2b9ba39,0xcb3acb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xde94ef37,0xde94e6d5,0xc5efdeb4,0xef17ef16,0xde93de95,0xd651e6d5,0xef16f757,0xef37c5ef,0x81d981d9,0x79777175,0x81b98a19,0x79977176,0x79987977,0x71557977,0x79988198,0x71767176,0xc2b9c2b9,0xb9f8b1b7,0xc299c2f9,0xba19b9d8,0xba19b9f8,0xa9b7b9f8,0xba19ba59,0xb1b7b1b8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xf758c5ce,0xeef6ef16,0xef37f758,0xc610ce31,0xef16ef16,0xc610f757,0xce10ce32,0xef37c5cf,0x79777977,0x927a925a,0x81b981d9,0x8a198a19,0x79777176,0x8a1989d9,0x81b981b9,0x8a198a19,0xb9f8b9f8,0xcb5acb5a,0xc299c2b9,0xc2f9c2fa,0xb9f8b9d8,0xc2fac2b9,0xc299c299,0xc2f9c2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xce51de94,0xce31ce51,0xce31ce2f,0xe6f6ded6,0xc5eebdae,0xe6d5c610,0xd693ded5,0xc5cfdeb5,0x927a925a,0x89d989f9,0x81988198,0x81997998,0x927a89f9,0x799881b9,0x927a927a,0x819981d9,0xcb5acb5a,0xc2b9c2d9,0xba59ba59,0xc279ba39,0xcb5ac2d9,0xba19c299,0xcb5acb5a,0xc279c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xd673d694,0xdeb3d673,0xe6d5ce2f,0xef16deb4,0xc5eedeb4,0xde93e6d5,0xdeb4de93,0xc5cfdeb5,0x69547175,0x8a197977,0x69547176,0x79777176,0x69547176,0x79987977,0x79777155,0x79977176,0xa9b6b1b7,0xc2fab9d8,0xa196b9d8,0xb9f8b9d8,0xa196b9d8,0xba19b9f8,0xb9f8a9b7,0xba19b9d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xde94ce30,0xd673de93,0xded4ce2f,0xe6d4e6f5,0xc5cede73,0xd673e6d5,0xe6f6deb4,0xdeb4d673,0x799881b9,0x81987176,0x89d989d9,0x69546955,0x81997977,0x71767977,0x89d989d9,0x69557176,0xba39c299,0xc259b9d8,0xc2b9c2b9,0xa196a9b6,0xc279b9f8,0xb1b7b9f8,0xc2b9c2b9,0xa9b6b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xf778ce11,0xef36e6f6,0xf758ce2f,0xf757f757,0xe6f6ef17,0xf757bdad,0xe6f6e6f6,0xf757f757,0x79778198,0x8a1989d9,0x79977998,0x8a198198,0x79987176,0x8a198a19,0x79778198,0x8a19927a,0xb9f8c259,0xc2fac2b9,0xba19ba19,0xc2faba59,0xba19b9d8,0xc2fac2fa,0xb9f8c259,0xc2f9cb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xd673c610,0xc5f0d651,0xc610ce10,0xc5f0ce31,0xc60fc610,0xc5cec5cf,0xce52ce30,0xc5cfc5f1,0x8a1989f9,0x79987998,0x8a198a3a,0x79988199,0x8a1981d9,0x81d981d9,0x925a923a,0x81b981d9,0xc2fac2d9,0xba39ba19,0xc2facb1a,0xba19c279,0xc2fac2b9,0xc2b9c2b9,0xcb5acb3a,0xc299c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xd674e6d5,0xde94de94,0xd674de94,0xce32d653,0xd673d673,0xde94de93,0xe6f6d673,0xe6f5e6f6,0x81b98198,0x927a925a,0x81d989f9,0x79987998,0x71557176,0x79987977,0x71756954,0x79987977,0xc299c259,0xcb5acb3a,0xc2b9c2d9,0xba19ba19,0xb1b7b9d8,0xba19b9f8,0xb1b7a195,0xba39b9f8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xef16eef6,0xe6f6ef16,0xe6d5e6b5,0xef16f757,0xf757ef16,0xef16ef16,0xf757ef16,0xef16f757,0x79777176,0x71767176,0x89d98198,0x79777176,0x81d981b9,0x71766955,0x81998199,0x71557176,0xb9f8b9d8,0xb9d8b1b8,0xc2b9ba59,0xb9f8b9d8,0xc2b9c299,0xb1d8a9b6,0xc279c279,0xb1b7b1d8,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xe6d4ef15,0xdeb3deb4,0xe6b4de73,0xd673de94,0xdeb4d673,0xe6f5d693,0xded4de93,0xdeb4deb4,0x21712170,0x21b329d4,0x21922171,0x29d529d4,0x21922192,0x29d429b3,0x21712171,0x29d429b4,0x53f94b99,0x6c7a7cdb,0x5c1a53d9,0x851b7cdb,0x5c1a643a,0x7cdb6c9a,0x53f953d9,0x7cdb7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d4,0xe6d4de93,0xded4de94,0xce52d673,0xde93d653,0xdeb4d693,0xe6f5deb4,0xdeb4deb4,0x29d529d5,0x21922193,0x21b329d4,0x29b429b3,0x29b429d6,0x21922192,0x29b421b3,0x21712192,0x84fb851b,0x643a6c7a,0x6c7a7cdb,0x74bb6c9a,0x7cdb8d5b,0x5c1a5c1a,0x749a6c7a,0x53d95c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4e6d5,0xded5d673,0xd674de94,0xd693d653,0xd673d673,0xd673deb3,0xdeb4de94,0xe6d4deb3,0x29b329b4,0x29d629d5,0x29b429d4,0x219221b3,0x2192214f,0x29d429b4,0x21922192,0x29d529d4,0x6c9a749a,0x8d5b851b,0x749a7cdb,0x643a6c7a,0x645a3b59,0x7cdb749a,0x645a643a,0x8d3b7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4deb4,0xdeb4de94,0xded4de94,0xd672deb3,0xd672ce31,0xce32d652,0xde93d652,0xde93e6d4,0x21922192,0x2150214f,0x29d529d4,0x214f2171,0x29b42193,0x29b421b3,0x29d629d6,0x217029b3,0x5c1a5c1a,0x43793b59,0x851b7cdb,0x3b584bb9,0x74bb645a,0x749a6c7a,0x8d5b8d5b,0x43996c9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4de93,0xdeb4deb4,0xde73d673,0xce32e6b4,0xd673d673,0xd673d652,0xde94deb4,0xdeb3d673,0x21712171,0x29b329b3,0x21922192,0x29b429b4,0x21712171,0x29b32192,0x21502150,0x29b32192,0x53f953d9,0x6c7a6c7a,0x5c1a5c1a,0x749a74bb,0x53f953d9,0x6c9a5c1a,0x43794379,0x6c9a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb3ce32,0xde93d693,0xe6d5d673,0xde93deb4,0xded3de93,0xce31deb3,0xef16e6d4,0xd652e6f5,0x29d529d4,0x29b429b4,0x29d429d6,0x29b329b4,0x29b429d5,0x21b32192,0x219329b3,0x21932171,0x7cfb7cdb,0x749a749a,0x7cdb8d3b,0x6c9a749a,0x7cdb7cfb,0x6c7a643a,0x645a6c9a,0x6c7a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672d652,0xd673d652,0xe6d4deb4,0xce32de93,0xd673e6d4,0xdeb4d672,0xdeb4e6f5,0xde93deb4,0x21922192,0x29b42192,0x2150214f,0x29b32192,0x29b32171,0x29d629d6,0x29b42192,0x29d529d6,0x643a5c1a,0x7cdb5c1a,0x43793b59,0x6c7a643a,0x6c9a53f9,0x8d5b8d5b,0x749a645a,0x8d3b8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xde94deb4,0xe6b4de93,0xde94deb4,0xde93de94,0xe6d4deb3,0xe6f5e6f5,0xd693e6d4,0x29b429b4,0x21922170,0x29b329d4,0x21922171,0x21922192,0x21702192,0x21922193,0x21712171,0x749a749a,0x5c1a4bb9,0x6c9a7cdb,0x5c1a53f9,0x643a5c1a,0x43995c1a,0x643a645a,0x4bb94bb9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xce52deb4,0xd673de93,0xd652d652,0xdeb4deb4,0xde94e6f4,0xdeb4de93,0xde94deb4,0x21922192,0x29d629d5,0x29b329b4,0x29d429d4,0x21922171,0x29d429b4,0x29b329b3,0x29d429d5,0x5c1a5c1a,0x8d5b8d3b,0x6c9a749a,0x7cdb7cdb,0x5c1a53d9,0x7cdb74bb,0x6c9a6c9a,0x7cdb7cfb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4d673,0xd673deb4,0xd652deb3,0xe6f6d673,0xde93de94,0xde93e6d4,0xdeb4d673,0xde94de94,0x29d629d5,0x29b429b4,0x21932193,0x21b32192,0x29d629b4,0x219229b3,0x29d629d6,0x21b329b4,0x8d3b8d3b,0x74bb7cdb,0x645a645a,0x6c7a643a,0x8d3b7cdb,0x643a6c9a,0x8d5b8d5b,0x6c7a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93d652,0xce32de93,0xd673ce32,0xef36e6d5,0xd653deb4,0xd673de73,0xde93de93,0xde93de94,0x21502170,0x29d42191,0x214f2171,0x21922171,0x214f2171,0x21922192,0x21922170,0x21922171,0x43794bb9,0x7cdb53f9,0x3b5853f9,0x5c1a53d9,0x3b5853f9,0x643a5c1a,0x5c1a4399,0x5c1a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xd652deb3,0xde93d693,0xe6d4deb4,0xdeb3d652,0xd693de93,0xdeb4e6f4,0xd673deb4,0x219229b3,0x21932171,0x29b429b4,0x214f2150,0x21b32192,0x21712192,0x29b429b4,0x21502171,0x643a6c9a,0x6c7a53f9,0x74bb74bb,0x3b584379,0x6c7a5c1a,0x4bb95c1a,0x74bb74bb,0x437953d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93e6d4,0xde93deb3,0xde73d673,0xe6b4de93,0xde93d672,0xdeb3d652,0xdeb4e6f4,0xd652deb4,0x21922193,0x29d429b4,0x21922192,0x29d42193,0x21922171,0x29d429d4,0x21922193,0x29d429d6,0x5c1a6c7a,0x7cdb74bb,0x5c1a643a,0x7cdb645a,0x643a53f9,0x7cdb7cdb,0x5c1a6c7a,0x7cdb8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xde93deb4,0xce33ce52,0xd652ce32,0xd693d672,0xe6f4d672,0xded4e6f5,0xe6f5e6d4,0x29d429b4,0x21922192,0x29d429d5,0x219221b3,0x29d429b4,0x29b429b4,0x29d529d5,0x29b329b4,0x7cdb7cdb,0x645a643a,0x7cdb851b,0x643a6c7a,0x7cdb749a,0x749a749a,0x8d3b851b,0x6c9a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde94deb4,0xde94e6b4,0xce33d673,0xce32ce32,0xde93deb3,0xe6d4d673,0xe715deb3,0xef15e715,0x29b32193,0x29d629d5,0x29b429b4,0x21922192,0x21702171,0x21922192,0x2170194f,0x21922192,0x6c9a6c7a,0x8d5b8d3b,0x749a7cdb,0x643a643a,0x4b9953d9,0x643a5c1a,0x4bb93b38,0x643a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d5,0xde93d673,0xde94e6d4,0xd652d673,0xdeb4deb4,0xdeb4d673,0xd693e6d4,0xef15e6f4,0x21922171,0x21712171,0x29b42193,0x21922171,0x29b429b3,0x21712150,0x21b321b3,0x21702171,0x5c1a53d9,0x53d94bb9,0x74bb645a,0x5c1a53f9,0x749a6c9a,0x53d94379,0x6c7a6c7a,0x4b9953d9,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x49634963,0x51a359c3,0x51834963,0x61c359c3,0x51835183,0x59c359a3,0x49634963,0x59c359a3,0xb523a4c2,0xc5a3d624,0xbd63ad02,0xde64d644,0xb543bd83,0xd624cdc3,0xb523ad02,0xd644d623,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae7bef,0x22712271,0x73ae2271,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x59c361c3,0x51835183,0x51a359c3,0x59a359a3,0x59a361c4,0x51835183,0x59a351a3,0x49635183,0xde64de64,0xbd63c5a3,0xc5a3d644,0xce03cdc3,0xd623de65,0xb543b543,0xcde3c5a3,0xad02bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x8c7173ae,0x11751175,0x73ae1a54,0x11b21156,0x73ae2231,0x7bef7bef,0x8c718c71,0x59a359a3,0x61c461c3,0x59a359c3,0x518351a3,0x51834142,0x59c359a3,0x51835183,0x61c359c3,0xcdc3cde3,0xde65de64,0xcde3d624,0xbd63c5a3,0xc5839c82,0xd644cde3,0xc583bd83,0xde65d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000dedb,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x117473ae,0x73ae73ae,0x1a151176,0x73ae1a54,0x227173ae,0x7bef2211,0x51835183,0x49634142,0x61c359c3,0x41424963,0x59a35183,0x59a351a3,0x61c461c4,0x496359a3,0xb543bd63,0xa4a29c82,0xde64d624,0x9c62a4e2,0xce03c5a3,0xcde3c5a3,0xde65de65,0xa4c2cdc3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef6b4d,0x11331a53,0x7bef1152,0x7bef7bef,0x8c718c71,0x7bef7bef,0x22527bef,0x6b4d32f1,0x49634963,0x59a359a3,0x51835183,0x59a359a3,0x49634963,0x59a35183,0x49424942,0x59a35183,0xb523ad02,0xcdc3cdc3,0xbd63b543,0xcde3ce03,0xb523ad02,0xcdc3b543,0x9c829c82,0xcdc3bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae8c71,0x8c7119d5,0x73ae8c71,0x1a3419f6,0x8c712252,0x1a348c71,0x7bef3310,0x59c359c3,0x59a359a3,0x59c361c4,0x59a359a3,0x59a359c3,0x51a35183,0x518359a3,0x51834963,0xd644d624,0xcde3cde3,0xd644de65,0xcdc3cde3,0xd623d644,0xc5a3bd63,0xc5a3cdc3,0xc5a3ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x1a3673ae,0x1a341a35,0x2a711a15,0x1a1473ae,0x7bef2ab1,0x51835183,0x59a35183,0x49634142,0x59a35183,0x59a34963,0x61c461c4,0x59a35183,0x61c361c4,0xbd63b543,0xd623bd63,0xa4a29c82,0xcdc3bd63,0xcdc3b523,0xde65de65,0xcde3c583,0xde64de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xffff0000,0xffffdedb,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdedb,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22537bef,0x6b4d19f7,0x73ae8c71,0x12387bef,0x1a957bef,0x1a542a71,0x8c718c71,0x8c718c71,0x59a359a3,0x51834963,0x59a359c3,0x51834963,0x51835183,0x49635183,0x51835183,0x49634963,0xcde3cde3,0xb543a4e2,0xcdc3d624,0xbd63b523,0xbd63b543,0xa4c2b543,0xbd63c5a3,0xa4e2ace2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xef5d0000,0xffffef5d,0xef5ddedb,0xef5dffff,0x0000ffff,0x0000dedb,0xffff0000,0x00000000,0xef5d0000,0x0000ef5d,0xef5d0000,0xffff0000,0x0000dedb,0x0000dedb,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a157bef,0x73ae1256,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x51835183,0x61c461c3,0x59a359a3,0x59c359c3,0x51834963,0x59c359a3,0x59a359a3,0x59c359c3,0xb543b543,0xde65de65,0xcdc3cde3,0xd624d644,0xb543ad02,0xd644ce03,0xcdc3cdc3,0xd624d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x0000ef5d,0xdedbffff,0x00000000,0xef5def5d,0xef5d0000,0xffffef5d,0xffffffff,0x0000ffff,0x0000ef5d,0xdedbffff,0x00000000,0xdedbef5d,0x0000ffff,0x0000ef5d,0x0000ffff,0x0000ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c718c71,0x19f87bef,0x1ab81a36,0x1a541219,0x7bef7bef,0x22711a33,0x8c718c71,0x6b4d8c71,0x61c461c3,0x59a359a3,0x51835183,0x51a35183,0x61c459a3,0x518359a3,0x61c461c4,0x51a359a3,0xde65de65,0xce03d623,0xc5a3c5a3,0xc5a3bd83,0xde65d623,0xbd63cdc3,0xde65de65,0xc5a3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xdedbdedb,0xdedbffff,0xffffef5d,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdedbdedb,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae73ae,0x7bef7bef,0x1ab87bef,0x73ae1237,0x6b4d7bef,0x23161a33,0x73ae73ae,0x7bef6b4d,0x49424963,0x59c34963,0x41424963,0x51834963,0x41424963,0x51835183,0x51834963,0x51834963,0x9c82a4e2,0xd644b523,0x9c62b523,0xb543b522,0x9c62b523,0xbd63b543,0xb543a4c2,0xbd63ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdedbffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x518359a3,0x51834963,0x59a359a3,0x41424963,0x51a35183,0x49635183,0x59a359a3,0x49634963,0xbd83cdc3,0xc5a3b523,0xce03ce03,0x9c62a4a2,0xc5a3b543,0xa4e2b543,0xce03ce03,0xa4a2ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0xdedb0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x7bef7bef,0x12387bef,0x1a917bef,0x7bef1237,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x51835183,0x59c359a3,0x51835183,0x59c35183,0x51834963,0x59c359c3,0x51835183,0x59c361c4,0xb543c5a3,0xd644ce03,0xbd63bd63,0xd644c5a3,0xbd63b523,0xd644d644,0xb543c5a3,0xd624de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b4d7bef,0x2b731ab8,0x1a541ad8,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x1a540937,0x7bef7bef,0x59c359a3,0x51835183,0x59c361c3,0x518351a3,0x59c359a3,0x59a359a3,0x61c361c3,0x59a359a3,0xd644d623,0xc583bd63,0xd644de64,0xbd63c5a3,0xd644cde3,0xcde3cde3,0xde65de64,0xcdc3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x59a35183,0x61c461c3,0x59a359a3,0x51835183,0x49634963,0x51835183,0x49634142,0x51835183,0xcdc3c5a3,0xde65de64,0xcde3d623,0xbd63bd63,0xa4c2ad02,0xbd63b543,0xa4e29c62,0xbd83b543,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x51834963,0x49634963,0x59a35183,0x51834963,0x59a359a3,0x49634963,0x51a351a3,0x49634963,0xb543b522,0xad02ace2,0xce03c5a3,0xb543b523,0xcde3cdc3,0xad02a4a2,0xc5a3c5a3,0xa4c2ad02,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ef5d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x1a5332ef,0x1ab81a53,0x1a54121a,0x22711a54,0x1a542271,0x2a712211,0x2a712a71,0x12361236,0x32223202,0x3a633a83,0x32423222,0x3aa33aa3,0x32423243,0x3a833a83,0x32223222,0x3aa33a83,0x35653525,0x3e054666,0x3da53565,0x46674666,0x35853dc5,0x46663e06,0x35653565,0x46663e66,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x220e1a72,0x1ab81ab8,0x22712271,0x22712271,0x1a540957,0x099711b2,0x22112a71,0x12362a50,0x3aa33aa3,0x32433263,0x3a633aa3,0x3a833a83,0x3a8342c3,0x32423242,0x3a833a63,0x32223242,0x46674667,0x3dc53de5,0x3e054666,0x3e463e06,0x3e664e88,0x35853585,0x3e263e05,0x35653da5,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ad0,0x22712232,0x11751175,0x09971a54,0x11b21156,0x1a322231,0x2a502a71,0x2ab12250,0x3a833a83,0x42c33aa3,0x3a833a83,0x32423a63,0x324329e2,0x3aa33a83,0x32433243,0x3ac33aa3,0x3e063e26,0x4e884667,0x3e264666,0x3dc53e05,0x3dc534e4,0x46663e26,0x3dc53dc5,0x4e674666,0xb5968430,0xb596a514,0xa5149cf3,0xd00094b2,0xb596b000,0xce79ad14,0xad55ce79,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x2a9232f1,0x19922a71,0x11741173,0x09371196,0x1a151176,0x1a531a54,0x22712a71,0x2ab12211,0x32423242,0x320229e2,0x3aa33a83,0x29e23222,0x3a833263,0x3a833a63,0x42c342c3,0x32023a83,0x35853da5,0x350534e4,0x46674666,0x2cc43545,0x3e463de5,0x3e263e05,0x4e884e88,0x35053e06,0xa5148430,0x84109492,0xa5149cf3,0xf8009492,0xb596b000,0xad149cf3,0xc638a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ab1,0x11331a53,0x1a111152,0x093719b4,0x1a5411d5,0x2a712233,0x22522251,0x2ab132f1,0x32223222,0x3a633a63,0x32423242,0x3a833a83,0x32223222,0x3a833242,0x2a022a02,0x3a833242,0x35653545,0x3e063e06,0x3da53585,0x3e263e46,0x35653565,0x3e063585,0x35043504,0x3e063da5,0xad557bcf,0x84109492,0x9cf3a514,0xf8009492,0xb596d800,0x9cf3a514,0xce79a514,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b73310,0x117619b3,0x2ab219d5,0x09372274,0x1a3419f6,0x2a712252,0x1a342a71,0x32f13310,0x3aa33a83,0x3a833a83,0x3aa342c3,0x3a833a83,0x3a833aa3,0x3a633242,0x32633a83,0x32633222,0x46664666,0x3e263e26,0x46664e68,0x3e063e26,0x3e664666,0x3e053dc5,0x3de53e06,0x3de53545,0xad558430,0x9492b596,0x9cf38410,0xd0009492,0xb596b000,0xa514a514,0xad55ce79,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b719b7,0x19f819f5,0x23151a37,0x1a362274,0x1a341a35,0x2a711a15,0x1a142a71,0x19b72ab1,0x32433242,0x3a833242,0x320229e2,0x3a633243,0x3a833222,0x42c342c3,0x3a833243,0x3ac342c3,0x3dc53585,0x3e663da5,0x350534e4,0x3e063dc5,0x3e063565,0x4e884e88,0x3e263dc5,0x4e674e88,0xa5148430,0x9492a514,0xa5148410,0xd0009492,0xb596d000,0x9cf3a514,0xa514ce79,0x8430b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x225319b7,0x129819f7,0x19f51a58,0x12380937,0x1a952274,0x1a542a71,0x2ab11a33,0x19b719b7,0x3a833a83,0x32423222,0x3a833a83,0x32423222,0x32423242,0x32023242,0x32433263,0x32223222,0x3e263e26,0x35853525,0x3e064666,0x3da53565,0x3dc53585,0x35053585,0x3dc53de5,0x35453545,0xb5968430,0x9cf3b596,0x84109492,0xf8009492,0xb596a800,0xce799cf3,0xb596b596,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9b66ac49,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac690000,0x6a239367,0x9367ac69,0x00006a23,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac680000,0x6a039367, +0x9386ac68,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac880000,0x6a049367,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a1519b7,0x1a771256,0x09371a57,0x12161a54,0x1a731a74,0x1a341237,0x2ab11a34,0x19b71152,0x32423242,0x42c33ac3,0x3a833a83,0x3a833aa3,0x32423222,0x3aa33a83,0x3a833a83,0x3a833aa3,0x35853585,0x4e884e67,0x3e063e26,0x46664666,0x35853565,0x46663e46,0x3e063e06,0x46664666,0xad558430,0xa514ad55,0x84109492,0xf8009492,0xb596d000,0xc638a514,0xa514a514,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b67acca,0x000059e2,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a239367,0x8b46b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a049367, +0x8b67b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a048b67,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b71a57,0x19f811f9,0x1ab81a36,0x1a541219,0x2a711a92,0x22711a33,0x2ab11a53,0x19b71a53,0x42c33ac3,0x3a833a83,0x32633263,0x3a633243,0x42c33a83,0x32433a83,0x42c342c3,0x3a633a83,0x4e684e67,0x3e463e46,0x3de53de5,0x3e053dc5,0x4e683e66,0x3dc53e06,0x4e884e88,0x3e053e26,0xb5969492,0xad55ad55,0x9492ad55,0xf8009492,0xb596f800,0xad55ce79,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b06ac68,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x51e39367,0x8b45ac69,0x000059e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x59e39367, +0x8b46ac89,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac480000,0x51e39366,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12371a57,0x1a571236,0x1ab81a97,0x1a541237,0x2a711237,0x23161a33,0x09971a53,0x12161a53,0x2a023222,0x3aa33222,0x29e23222,0x32423222,0x29e23222,0x32423242,0x32423202,0x32423222,0x35043525,0x46663585,0x2cc43565,0x35853565,0x2cc43565,0x3dc53585,0x35853505,0x3da53565,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b26b4aa,0x6a246204,0x6a046a04,0x6a046a03,0x51e451c2,0x6a246a03,0x93a859e3,0x5a038b67,0x8b46acaa,0x6a0369e4,0x6a036a03,0x6a246a03,0x51e351e3,0x6a236a23,0x69e451c3,0x6a036a03,0x59e36224,0x6a036a03,0x6a2351c3,0x6a236a24,0x6a036a03,0x6a236a04,0x93a86203,0x51c38b67, +0x8b26b4c9,0x6a046a03,0x62046223,0x6a036a03,0x59e351e3,0x6a036a03,0x9bc859c3,0x59c38b66,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a5719f8,0x1a981236,0x12191ab8,0x1a701a16,0x1a331237,0x2a711a74,0x09972a71,0x12161a53,0x32433a83,0x32633222,0x3a833a83,0x29e23202,0x3a633242,0x32223242,0x3a833a83,0x32023222,0x3dc53e06,0x3de53565,0x3e463e46,0x2cc43505,0x3e053585,0x35453585,0x3e463e46,0x35053545,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9366a489,0x93678b46,0x93679367,0x8b468b45,0x93469366,0x8b468346,0x93669366,0x52039387,0x9367ac69,0x93878346,0x93678b47,0x8b468b26,0x93679366,0x83268b46,0x93869347,0x8b469367,0x8b458b46,0x93669367,0x93678b87,0x8b469346,0x93468b46,0x93678b26,0x93668b66,0x59c38b66, +0x9347aca9,0x93678326,0x93669367,0x8b268b46,0x936793a7,0x8b468326,0x93669366,0x59e39387,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12361236,0x1ab81a76,0x12381a98,0x1a911a35,0x2a711237,0x09971a73,0x1a530997,0x12161a54,0x32423263,0x3aa33a83,0x32423242,0x3aa33263,0x32433222,0x3aa33aa3,0x32423263,0x3a8342c3,0x35853de5,0x46663e46,0x3da53dc5,0x46663de5,0x3dc53565,0x46664666,0x35853de5,0x46664e88,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x68006800,0x68206820,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x70006800,0x70006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68206800,0x68006800,0x68006800,0xbdd7b5b6,0xce59d6b9,0xb5b6ce59,0xb5b6b5d7, +0xb5d6b596,0xce39ce59,0xb5b6ce59,0xb5b6b5b6,0xbdd7b5d7,0xce59d67a,0xbdd6ce79,0xb5b7b5d7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12981236,0x2b731ab8,0x1a541ad8,0x1a7319f3,0x1a742a71,0x09971a16,0x1a540937,0x12361236,0x3aa33a83,0x32433242,0x3aa33aa3,0x32423a63,0x3aa33a83,0x3a833a83,0x3ac33aa3,0x3a833a83,0x46663e66,0x3dc53dc5,0x46664667,0x3dc53e05,0x46663e26,0x3e263e26,0x4e674667,0x3e063e26,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88828021,0x99049904,0x99249904,0x990398e4,0x88a288a2,0x806288c2,0x80618082,0x88a288a2,0x88828041,0x99049904,0x99039104,0x98e49904,0x888288a2,0x806188a3,0x80828081,0x88a280a2,0x78828882,0xa1457000,0x88a28081,0x68008883,0xce7ab5b6,0xef5def5d,0xef3def7d,0xb5b6d679, +0xd699b5b6,0xef7eef7e,0xef7df77d,0xf75def7d,0xf77dffdf,0xf7beef9d,0xf77def9d,0xb5b6ce9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a7619f8,0x3bd41ab8,0x121a22d7,0x1a931a15,0x1a961a94,0x09970997,0x1a331a73,0x12361236,0x3a833263,0x42c33ac3,0x3a833a83,0x32423243,0x32023222,0x32423242,0x322229e2,0x32433242,0x3e063de5,0x4e884e67,0x3e263e66,0x3dc53dc5,0x35253565,0x3dc53585,0x35252cc4,0x3dc53585,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88c28041,0x88a28882,0x88a288a2,0x808188a2,0x80628082,0x80828042,0x88c28862,0x806288a2,0x88a28041,0x88a288c2,0x88a28882,0x808288a2,0x78a27882,0x78828082,0x88a290a3,0x808188a2,0x88a288a2,0xb1a67820,0x88a2a125,0x68008062,0xef7dbdb6,0xef7eef9d,0xef7def9d,0xb5b7ce99, +0xce79b5d7,0xef7def5d,0xffdfffdf,0xf7deffdf,0xffbfffbe,0xf77def7d,0xef5def9e,0xb5b6ce7a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a531ad6,0x12981a53,0x12981af8,0x22712271,0x1ab61ab4,0x2a711a54,0x22922a71,0x12362a50,0x32423222,0x32223222,0x3a833263,0x32423222,0x3a833a83,0x32223202,0x3a633a63,0x32023222,0x35853565,0x35653545,0x3e463de5,0x35853565,0x3e263e06,0x35453505,0x3e053e05,0x35253545,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x80418061,0x80408021,0x80418021,0x80828041,0x78828062,0x80618081,0x80418061,0x80627882,0x80218041,0x80217841,0x80408041,0x80828041,0x78828082,0x80828062,0x78417841,0x806280a2,0x80208061,0x80407820,0x80619965,0x68008041,0xce7ab5b6,0xce59ce99,0xbdd6b5d7,0xb596b5b7, +0xce99bd96,0xce59ce79,0xbdd6b5d7,0xbd96b596,0xce9ab5b6,0xce79ce7a,0xbdb7bdb6,0xb5d6b5b6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91448924,0xa165b185,0x99449144,0xb185b185,0x9944a165,0xb185a965,0x91449144,0xb185b185,0xd391cb0f,0xdc33e4d5,0xd3b2d371,0xe516e4d5,0xd3b2dc13,0xe4d5dc54,0xd391d371,0xe4d5dcd5,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0x4a690000,0x31860000,0x4a699cd3,0x00009cd3,0x9cd34a69,0x8c510000,0x00003186,0x00008c51,0x4a693186,0x31863186,0x4a699cd3,0x31869cd3,0x9cd34a69,0x8c513186,0x31863186,0x31868c51,0x80408061,0x80418041,0x80417840,0x80418041,0x80418041,0x80218040,0x80418020,0x80418041,0x80418021,0x80217840,0x78208041,0x68007021,0xb5b6b5b7,0xa574b5b5,0xb5b6ad75,0xbdb7b5b6, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x5a246a85,0x62656265,0x41a46265,0xa5346b4d,0x00005205,0xb185b185,0x9965a165,0xa165b185,0xa965a965,0xb185b9a5,0x99449944,0xa965a165,0x91449944,0xe4f6e4f6,0xd3f2dc33,0xdc33e4d5,0xdc94dc54,0xdcd5e557,0xd3b2d3b1,0xdc74dc33,0xd371d3b2,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0x9cd34208,0x9cd30000,0x9cd34a69,0x42080000,0x00004a69,0x00008c51,0x9cd33186,0x9cd30000,0x9cd33186,0x9cd33186,0x9cd34a69,0x31863186,0x31864a69,0x31868c51,0x9cd33186,0x9cd33186,0x80418041,0x80417821,0x80608041,0x80828081,0x80827862,0x782180a1,0x78407820,0x80417841,0x80218021,0x98a27820,0x78218882,0x70007021,0xd679d699,0xb5b6c5f8,0xce59b5b7,0xb5d6d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x38e10000,0x38e138e1,0x38e138e1,0x000038e1,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x8b87ac4a,0xac4aac4a,0x6aa78b87,0xa5346b4d,0x00008328,0xa965a965,0xb9a5b185,0xa965b185,0x9944a165,0xa1658124,0xb185a965,0xa165a165,0xb985b185,0xdc54dc74,0xe557e516,0xdc74e4d5,0xd3d2dc33,0xdc13cacf,0xe4d5dc74,0xdc13dc13,0xe536e4d5,0xb5968430,0xb596a514,0xa5149cf3,0x400094b2,0xb5962000,0xce79ad14,0xad55ce79,0x9492b596, +0x00003186,0x00009cd3,0x00009cd3,0x4a699cd3,0x00000000,0x4a699cd3,0x42080000,0x00009cd3,0x31863186,0x31869cd3,0x31869cd3,0x4a699cd3,0x31863186,0x4a699cd3,0x31863186,0x31869cd3,0x88408021,0x888288a2,0x88a288a2,0x80627882,0x80818082,0x80627862,0x78828082,0x80828081,0x80828082,0xa9857820,0x808298e3,0x68007020,0xdefbce99,0xce79deba,0xdebbc699,0xb5b6ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x38e10000,0x924338e1,0x92439243,0x92439243,0x38e19243,0x38e138e1,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0x89248124,0xb185b185,0x81249144,0xa985a165,0xa965a165,0xb9a5b9a5,0x8924a965,0xd3b2d3b2,0xcaefcacf,0xe4f6e4d5,0xcaaed330,0xdc94dc13,0xdc74dc33,0xe557e557,0xcb0fdc54,0xa5148430,0x84109492,0xa5149cf3,0x48009492,0xb5962800,0xad149cf3,0xc638a514,0x8430a514, +0x8c514208,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd30000,0x4a690000,0x00003186,0x8c513186,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd33186,0x4a693186,0x31863186,0x90617841,0x88a290e3,0x808288a2,0x78817862,0x80627881,0x78a27862,0x80628062,0x80618081,0x80817882,0xa9857020,0x8082a145,0x68007021,0xdebbc638,0xdefbdedb,0xce79d6ba,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x38e10000,0x924338e1,0xbae49243,0xaac4bae4,0xaac4aac4,0x9243aac4,0x92439243,0x000038e1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91449144,0xa165a165,0x99449944,0xa965a985,0x91449144,0xa9659944,0x89248924,0xa9659944,0xd391d350,0xdc53dc53,0xd3b2d3b2,0xdc74dc94,0xd391d371,0xdc54d3b2,0xcaefcaef,0xdc54d3d2,0xad557bcf,0x84109492,0x9cf3a514,0x48009492,0xb5962800,0x9cf3a514,0xce79a514,0x7bcfb596, +0x00000000,0x00009cd3,0x4a698c51,0x9cd30000,0x00004a69,0x8c519cd3,0x4a690000,0x42080000,0x31863186,0x31869cd3,0x4a698c51,0x9cd33186,0x31863186,0x8c519cd3,0x4a693186,0x31863186,0x90818040,0x88a298c3,0x80828081,0x80618082,0x80617862,0x88828082,0x80828062,0x78627881,0x80817861,0xa9a67020,0x88a290e3,0x68007040,0xdedbc618,0xef5cdebb,0xd678defb,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xbae4bae4,0xa284aac4,0xa284c618,0xa284a284,0xaac4bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41c46265,0xa5346b4d,0x00005205,0xb185b185,0xa965a965,0xb185b9a5,0xa965a965,0xb185b185,0xa1659944,0xa165a965,0xa1659144,0xe4f5e4d5,0xdc74dc74,0xe4d5e557,0xdc54dc74,0xdcd5e4f5,0xdc33d3d2,0xdc13dc54,0xdc33d350,0xad558430,0x9492b596,0x9cf38410,0x58009492,0xb5962800,0xa514a514,0xad55ce79,0x8430ad55, +0x00008c51,0x42080000,0x4a699cd3,0x00000000,0x9cd30000,0x9cd34a69,0x9cd30000,0x4a693186,0x31868c51,0x31863186,0x4a699cd3,0x31863186,0x9cd33186,0x9cd34a69,0x9cd33186,0x4a693186,0x88828041,0x90e39904,0x80a28082,0x88828082,0x88a38082,0x88a388a2,0x88a288a2,0x88a290a2,0x888288a2,0xb1e78061,0x88a39103,0x68007820,0xe6fcc618,0xef5def5d,0xdf1cef5d,0xad75c618, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xa284a284,0xce79ef5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b878b87,0x8b878b87,0x6aa7a409,0xa5346b4d,0x00008328,0x99659944,0xb1859944,0x89248124,0xa1659965,0xa9659144,0xb9a5b9a5,0xa965a165,0xb985b9a5,0xd3f2d3b2,0xdcd5d3d2,0xcaefcacf,0xdc53d3f2,0xdc54d391,0xe557e557,0xdc74dc13,0xe536e557,0xa5148430,0x9492a514,0xa5148410,0x58009492,0xb5962800,0x9cf3a514,0xa514ce79,0x8430b596, +0x42089cd3,0x4a698c51,0x9cd30000,0x9cd30000,0x00004208,0x00009cd3,0x00004a69,0x4a699cd3,0x31869cd3,0x4a698c51,0x9cd33186,0x9cd33186,0x31863186,0x31869cd3,0x31864a69,0x4a699cd3,0x90828021,0x90c39903,0x88a288a2,0x80a388a2,0x88a288a2,0x88a288a2,0x88a18882,0x88a290c2,0x80a288a2,0xb1e78861,0x88a298c3,0x68007020,0xf77ed69a,0xef5eef7e,0xef5def5d,0xb596d679, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xef5dce79,0xef5def5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284bdf7,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa965a965,0x99448924,0xa965b185,0x99449144,0x99449944,0x89249944,0x9965a165,0x91449144,0xdc74dc74,0xd3b2d310,0xdc54e4d5,0xd3b2d391,0xd3d2d3b2,0xcb0fd3b1,0xd3f2dc13,0xd330d350,0xb5968430,0x9cf3b596,0x84109492,0x50009492,0xb5962800,0xce799cf3,0xb596b596,0x9492b596, +0x9cd30000,0x9cd34a69,0x00003186,0x4a699cd3,0x00004a69,0x9cd30000,0x9cd34a69,0x9cd30000,0x9cd33186,0x9cd34a69,0x31863186,0x4a699cd3,0x31864a69,0x9cd33186,0x9cd34a69,0x9cd33186,0x90628041,0x88a39903,0x888288a3,0x90a288a2,0x88a288a2,0x88a288a2,0x88a288a2,0x888288c2,0x88a288a2,0xb1c78861,0x808290e3,0x68007021,0xf7bed6ba,0xef7ef79d,0xef5def5d,0xb576ce7a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce7938e1,0xef5def5d,0xc618ef5d,0xc618c618,0xc618c618,0xbdf7c618,0xbdf7bdf7,0x38e1bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0xb9a5b985,0xa965a965,0xb185b185,0x99449144,0xb185a965,0xa965a965,0xb185b185,0xd3b2d3b2,0xe557e536,0xdc54dc74,0xe4d5e4d5,0xd3b1d371,0xe4d5dc94,0xdc54dc54,0xe4d5e4f5,0xad558430,0xa514ad55,0x84109492,0x50009492,0xb5964020,0xc638a514,0xa514a514,0x8430ad55, +0x31860000,0x00009cd3,0x9cd33186,0x9cd30000,0x00009cd3,0x00009cd3,0x00008c51,0x00009cd3,0x31863186,0x31869cd3,0x9cd33186,0x9cd33186,0x31869cd3,0x31869cd3,0x31868c51,0x31869cd3,0x90628041,0x88a29904,0x88a280a1,0x80a28082,0x88a28883,0x88a288a2,0x88a288a3,0x88a288a2,0x888388a2,0xba498861,0x80a290e3,0x68007000,0xef9dd6db,0xef7ef79e,0xef7def5d,0xb5b6ce99, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce794a49,0xc618ef5d,0xef5dc618,0xef5def5d,0xef5de8e3,0xc618ef5d,0xbdf7c618,0x4a49bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41a45a24,0xa5346b4d,0x00005205,0xb9a5b985,0xa965a985,0xa165a165,0xa165a165,0xb9a5b185,0x9965a965,0xb9a5b9a5,0xa165a965,0xe557e536,0xdc94dcd5,0xdc13dc13,0xdc33dc13,0xe557dcd5,0xd3f2dc54,0xe557e557,0xdc33dc74,0xb5969492,0xad55ad55,0x9492ad55,0x50209492,0xb5965000,0xad55ce79,0xb596b596,0x7bcfb596, +0x9cd34208,0x8c518c51,0x00004a69,0x00009cd3,0x9cd34208,0x00004a69,0x4a698c51,0x9cd30000,0x9cd33186,0x8c518c51,0x31864a69,0x31869cd3,0x9cd33186,0x31864a69,0x4a698c51,0x9cd33186,0x90828061,0x9965b1c6,0x90c290c3,0x88a290a3,0x88818882,0x808288a2,0x88c28882,0x888288a2,0x90a288a2,0xcb0c9082,0x80819924,0x68007000,0xf77ed6ba,0xef7ef79e,0xe75eef5d,0xb5b7d67a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xef5def5d,0xef5def5d,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b87ac4a,0x8b878b87,0x6ac76265,0xa5346b4d,0x00008328,0x89248924,0xb1859144,0x81249144,0x99449144,0x81249144,0x99449944,0x99448924,0x99449144,0xcaefd310,0xe4d5d391,0xcaaed391,0xd3b2d391,0xcaaed391,0xd3d2d3b2,0xd3b1cb0f,0xd3d2d371,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0x00004a69,0x4a698c51,0x00004a69,0x4a690000,0x31869cd3,0x4a699cd3,0x4a699cd3,0x00009cd3,0x31864a69,0x4a698c51,0x31864a69,0x4a693186,0x31869cd3,0x4a699cd3,0x4a699cd3,0x31869cd3,0x98e38041,0xb1a7b1e7,0x990498e4,0x90a398e3,0x88a388c3,0x80818862,0x808280c2,0x88a288a3,0x888288a1,0xc2ca9082,0x80a2a125,0x68007841,0xf7bed6bb,0xf79effbe,0xef5def5d,0xb596d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5def5d,0xef5de8e3,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa165a965,0xa1659144,0xa965a985,0x81248924,0xa1659944,0x91449944,0xa985a985,0x89249144,0xdc13dc54,0xdc33d391,0xdc94dc94,0xcaaecaef,0xdc33d3b2,0xd330d3b1,0xdc94dc94,0xcaefd350,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0x00004a69,0x8c510000,0x00009cd3,0x4a699cd3,0x9cd38c51,0x00000000,0x9cd30000,0x00004208,0x31864a69,0x8c513186,0x31869cd3,0x4a699cd3,0x9cd38c51,0x31863186,0x9cd33186,0x31863186,0x98838040,0xa965a966,0xa1459904,0xa145a965,0xa145a965,0x99049925,0x99049904,0x99259924,0x90e39945,0xbaaa9082,0x9103b208,0x70007841,0xffffd6ba,0xffbfffff,0xf75def3d,0xa514ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xe8e3c618,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x9944a165,0xb185a965,0x99449944,0xb185a165,0x99659144,0xb185b185,0x9944a165,0xb185b9a5,0xd3b2dc33,0xe4d5dc94,0xd3b2d3d2,0xe4d5dc13,0xd3f2d391,0xe4d5e4d5,0xd3b2dc33,0xe4d5e557,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0x00009cd3,0x00009cd3,0x9cd30000,0x000052aa,0x00008c51,0x31864a69,0x4a699cd3,0x00009cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x318652aa,0x31868c51,0x31864a69,0x4a699cd3,0x31869cd3,0x90628041,0xa9a6a985,0xa9a6a9a6,0xb1a6a9a6,0xa986a986,0xa145a965,0xb186a966,0xb186b1a6,0xa985a986,0xc2aa90a3,0x9925b208,0x70008041,0xffdfce59,0xffdfffff,0xe73cf79e,0x9cf4bdd7, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x4a490000,0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xc618ef5d,0x4a49c618,0x00004a49,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x520541c4,0x62656265,0x62656265,0x41a449e4,0xa5346b4d,0x00005205,0xb185b185,0xa1659944,0xb185b185,0x9944a165,0xb185a965,0xa965a965,0xb985b185,0xa965a965,0xe4d5dcd5,0xdc13d3d2,0xe4d5e4f6,0xd3d2dc33,0xe4d5dc74,0xdc74dc74,0xe536e516,0xdc54dc74,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0x9cd30000,0x42080000,0x00009cd3,0x00009cd3,0x00009cd3,0x42089cd3,0x9cd30000,0x9cd34a69,0x9cd33186,0x31863186,0x31869cd3,0x31869cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x9cd34a69,0x88618041,0xb1a6a945,0xa986a986,0xb186b1c6,0xa145a986,0xa965a145,0xb1c7b1c7,0xb1e7b1c7,0xa9a6b1e7,0xba6a90c2,0xa124b208,0x68007821,0xf79ec658,0xffffffff,0xd67af79f,0xa4f3b595, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x4a490000,0xc6184a49,0xc618c618,0xc618c618,0x4a49c618,0x00004a49,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x72e65a66,0xa409a409,0xac4aac4a,0x6aa78368,0xa5346b4d,0x00008328,0xa965a165,0xb9a5b985,0xa965b185,0x99449965,0x89249144,0x99449944,0x89248124,0xa1659944,0xdc54dc33,0xe557e536,0xdc74dcd5,0xd3d2d3f2,0xcb0fd371,0xd3d2d3b1,0xd310ca8e,0xdc13d3b2,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0x8c519cd3,0x4a698c51,0x9cd33186,0x31860000,0x9cd30000,0x4a698c51,0x00000000,0x8c510000,0x8c519cd3,0x4a698c51,0x9cd33186,0x31863186,0x9cd33186,0x4a698c51,0x31863186,0x8c513186,0x80418041,0x90a28882,0x90a290a2,0x98a390a2,0x88629882,0x98a38841,0xa0e3a0c3,0xa0e4a0a3,0x98c2a104,0x99248821,0x88619944,0x70208021,0xd69ac639,0xf7bee75d,0xbd96d6ba,0x9d34b555, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x4a490000,0x4a494a49,0x4a494a49,0x00004a49,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449144,0x91449144,0xa985a165,0x99449144,0xa965a965,0x91448924,0xa165a165,0x89249144,0xd3b2d391,0xd371d350,0xdc94dc13,0xd3b1d391,0xdc74dc54,0xd350caef,0xdc33dc33,0xcb0fd350,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x9cd30000,0x4a690000,0x9cd30000,0x00004a69,0x00009cd3,0x4a699cd3,0x9cd30000,0x9cd30000,0x9cd33186,0x4a693186,0x9cd33186,0x31864a69,0x31869cd3,0x4a699cd3,0x9cd33186,0x9cd33186,0x80418041,0x88618061,0x80418021,0x90618861,0x80418881,0x80418021,0x88618041,0x80618862,0x78408041,0x90e48040,0x88a290e3,0x70008041,0xad75b595,0xce38be17,0x9d13b596,0xb5959cf3, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x41a449e4,0xa5346b4d,0x00008328,0x10821082,0x18c320e3,0x18a21082,0x20e320e3,0x18a218a2,0x20e318c3,0x10821082,0x20e320e3,0x39e739c7,0x42084a49,0x39e739e7,0x4a494a49,0x39e74208,0x4a494228,0x39e739e7,0x4a494228,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0x28e128c1,0x10403922,0x28e128c0,0x104028e1,0x310128e1,0x082028e1,0x28e128e1,0x392228c1,0xef5cef3c,0x39e7ef5c,0xdefadefa,0xef5ce6fb,0xef7def5c,0xe6fad69a,0xffffdeba,0xf77cffff,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x62650000,0x62656265,0x6aa78b87,0xa5346b4d,0x83285205,0x20e320e3,0x18a218a2,0x18c320e3,0x18c318c3,0x20e32104,0x10821082,0x18c318c3,0x108218a2,0x4a494a49,0x42084208,0x42084a49,0x42284228,0x42284a69,0x39e739e7,0x42284208,0x39e739e7,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x28e11020,0x104049a3,0x39223101,0x10401880,0x28e14982,0x102051a3,0x392228c1,0x28e11040,0x39e718c3,0xef5c31e7,0xffffef5c,0xffffffff,0xdefaef3c,0x39e739c7,0xdefbbd96,0x18a31903,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483, +0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x5a2441a4,0x83286265,0x8b878b87,0x00000000,0x6b4d41a4,0xa534a534,0x18c318c3,0x210420e3,0x18c320e3,0x18a218c3,0x18a21061,0x20e318c3,0x18a218a2,0x210420e3,0x42284228,0x4a694a49,0x42284a49,0x42084208,0x420831a6,0x4a494228,0x42084208,0x4a494a49,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0x31011040,0x310128c1,0x392228e1,0x31011880,0x28c13101,0x104028e1,0x498230e1,0x102051c3,0xdeda39e7,0xef9bd6fa,0xef5bef5c,0xb595e77d,0xef7cdeda,0xef3cef3c,0x39c841c7,0x18c218e3,0xa2c1a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xe483a2c1,0xa2c14080,0xe483a2c1,0x4080e483,0xe529a2c1,0xa2c1a2c1, +0xa2c1a2c1,0x4800a2c1,0xe483e4c2,0xe4c2cea8,0xe483a2c1,0xc667f6e6,0xe529a2c1,0xa2c1a2c1,0xdefb0000,0xe8e3ef5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x00008b87,0x00000000,0x62650000,0x6aa76265,0x6b4d6b4d,0x18a218a2,0x10611061,0x20e320e3,0x10611082,0x18c318a2,0x18c318c3,0x21042104,0x106118c3,0x39e739e7,0x39c731a6,0x4a494a49,0x31a639c7,0x42284208,0x42284208,0x4a694a69,0x39c74228,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51a31020,0x28e11020,0x51a33101,0x30e10820,0x28c11040,0x104049a3,0x28c030e1,0x51a31040,0xffffe75d,0xef5dffff,0xdedad6da,0xef5cd71a,0xe75bef5c,0xef3cef5d,0xef5cef3c,0x420739e7,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xa2c14080,0x40804080,0x4080a2c1,0x40804080,0x4080a2c1,0xa2c14080, +0xa2c1a2c1,0x4800e4c2,0xe4c2c647,0xd728cee8,0xd728e4c2,0xcea8cee8,0xbde7a2c1,0xeda2bd86,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xe8e3e8e3,0xdefbdefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0xa5345205,0x00006b4d,0x00000000,0x00000000,0x83286265,0x00008b87,0x6aa741a4,0x10821082,0x18c318c3,0x18a218a2,0x18c318c3,0x10821082,0x18c31082,0x10611061,0x18c318a2,0x39e739c7,0x42284228,0x39e739e7,0x42284228,0x39e739e7,0x422839e7,0x31a631a6,0x422839e7,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0x39221040,0x28e11040,0x51a33102,0x51a31040,0x28c10820,0x104051c3,0x49a33101,0x51c31040,0xef5cef5c,0xe77ce73c,0xbdb6ef5c,0xb5d6b5d6,0xef5cef5c,0xdefad71a,0xb596b5d6,0xdefbdeda,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483d3e2,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x40802800,0x40804080,0x40804080,0x40804080,0x40804080,0x40804080,0xa2c14080, +0xa2c1a2c1,0xc6074800,0xcec8c667,0xdf68d728,0xdf68df89,0xcec8d728,0xc607c667,0xeda2bda6,0xdefb0000,0xdefbef5d,0xef5ddefb,0xef5def5d,0xe8e3e9a6,0xef5ddefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xa5340000,0x00006b4d,0x00000000,0x62650000,0x8b878328,0x00000000,0x83685a24,0x20e320e3,0x18c318c3,0x20e32104,0x18c318c3,0x20e320e3,0x18c318a2,0x18a218c3,0x18a21082,0x4a494a49,0x42284228,0x4a494a69,0x42284228,0x42284a49,0x42084208,0x42084228,0x420839c7,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0x39221060,0x30e11040,0x49a328e1,0x28c01020,0x28c11040,0x104051c3,0x51c330e1,0x49a31040,0xef9cb5d6,0xdedadeb9,0xb5b6deda,0xef7cef7c,0xef5bef7c,0xffffffff,0xe71cef5c,0xef5dffff,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x28002800,0x28002800,0x28004080,0x40802800,0x28002800,0x28004080,0xa2c1a2c1, +0xf7c5a2c1,0x48004800,0x48004800,0x4800d728,0xdf894800,0x48004800,0x4800ce67,0xa2c1eda2,0xdefb0000,0xdefbef5d,0xef5def5d,0xdefbd6ba,0xef5def5d,0xef5def5d,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x00000000,0x83286265,0x00008328,0x62650000,0x00008328,0x18a21082,0x20e318a2,0x10611061,0x18c318a2,0x18c31082,0x21042104,0x18c318a2,0x21042104,0x420839e7,0x422839e7,0x39c731a6,0x42284208,0x422839e7,0x4a694a69,0x42284208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51c328e1,0x28e11860,0x49823101,0x30e11040,0x102030e1,0x104049a3,0x49a33101,0x39221040,0xe73cef7b,0xe75cef5c,0xdedadeda,0xdedab5d6,0xded9b5d6,0xef5cd6da,0xef7bef9d,0xef3cf75d,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x2800a2c1,0xa2c1a2c1,0xa2c12800,0x2800a2c1,0x2800a2c1,0xa2c1d3e2, +0xf684a2c1,0x4800eda2,0x4800eda2,0xeda2eda2,0xeda24800,0x4800eda2,0x4800eda2,0xa2c1f7c5,0xdefb0000,0xdefbef5d,0xef5de8e3,0xef5def5d,0xdefbef5d,0xe8e3ef5d,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4a284,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x62650000,0x8b878368,0x00000000,0x62650000,0x00008328,0x18c318c3,0x10821082,0x18c320e3,0x18a21082,0x18a21082,0x10611082,0x18a218a2,0x10821082,0x42284228,0x39e739c7,0x42284a49,0x39e739e7,0x420839e7,0x39c739e7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000, +0x51a328e1,0x31021040,0x10404982,0x104028e1,0x104028e1,0x10404982,0x31013101,0x39221040,0xdefade9a,0xffffde9a,0xef7cffff,0xfffff75c,0xef7ceefb,0xef1cf77c,0xef9ce75c,0xdefad6da,0xe483a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483a2c1,0xe483e483,0xa2c1a2c1,0xd3e2a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2, +0xe483a2c1,0xffe7f6e6,0xeda2e4c2,0xd3e2e4c2,0xe4c2eda2,0xeda2e4c2,0xeda2e4c2,0xa2c1f684,0xdefb0000,0xdefbef5d,0xdefbef5d,0xe8e3ef5d,0xdefbe8e3,0xe9a6defb,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xa5340000,0x5a666b4d,0x00008b87,0x00000000,0x62650000,0x00008b87,0x18a218a2,0x21042104,0x18c318c3,0x20e320e3,0x10821082,0x20e318c3,0x18c318c3,0x20e320e3,0x39e739e7,0x4a694a49,0x42284228,0x4a494a49,0x39e739e7,0x4a494228,0x42284228,0x4a494a49,0x00000000,0x00000000,0x00000000,0x48000000,0x00002800,0x00000000,0x00000000,0x00000000, +0x51a33101,0x31011040,0x104051c3,0x104051a3,0x102051a3,0x18803922,0x392228e1,0x31011040,0xbd96e75c,0xef5bffff,0xdefaef3c,0xe75cdeda,0xbdd6ffff,0xef7ce75c,0xdedaffff,0xd6bbdefa,0xe483a2c1,0xe483e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1a2c1,0xe483a2c1,0xa2c1e483,0x40804080,0xa2c1a2c1,0xa2c1a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe483a2c1,0xa2c1e483,0xc667c607,0xe4c2a2c1,0xa2c1e4c2,0xc667cea8,0xbdc6c607,0xa2c1a2c1,0xdefb0000,0xef5de8e3,0xdefbef5d,0xe9a6ef5d,0xd6bae8e3,0xef5ddefb,0xef5def5d,0x0000defb,0x92430000,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x00009243,0x92430000,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x52050000,0x6b4da534,0x00000000,0x00000000,0x83286265,0x00000000,0x21042104,0x18c320e3,0x18a218a2,0x18c318a2,0x210420e3,0x18a218c3,0x21042104,0x18c318c3,0x4a694a49,0x42284228,0x42084208,0x42084208,0x4a694228,0x42084228,0x4a694a69,0x42084228,0x00000000,0x00000000,0x00000000,0x50000000,0x00004800,0x00000000,0x00000000,0x00000000, +0x392228e1,0x31011880,0x28c049a3,0x104028e1,0x10404982,0x20a03922,0x39220820,0x31011040,0xe6d939e7,0xe73cdeb9,0xbdd6ef5c,0xdebaef3b,0xdedad6fa,0xef3cef5c,0xef3cb596,0xef5cef3c,0xe529a2c1,0xe483e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1a2c1,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe529a2c1,0x4800a2c1,0xc607bdc7,0xa2c1c647,0x4800eda2,0xc607c647,0xbd86bdc7,0xa2c1eda2,0xdefb0000,0xef5def5d,0xd6baef5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5ddefb,0x0000defb,0x92430000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x00009243,0x92430000,0x81208120,0x81208120,0x71008120,0x81208120,0x81208120,0x81207100,0x00009243, +0xa2840000,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x83280000,0xa5345205,0x6b4d6b4d,0x00000000,0x8b8749e4,0x00000000,0x10611082,0x20e31082,0x10611082,0x18a21082,0x10611082,0x18a218a2,0x10821061,0x18a21082,0x31a639c7,0x4a4939e7,0x31a639e7,0x39e739e7,0x31a639e7,0x420839e7,0x39e739c7,0x39e739e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c13101,0x28e13101,0x28e151a3,0x30e128e1,0x10403101,0x498228e1,0x39221040,0x28e11040,0x420739c7,0xffffef7c,0xf75cffff,0xffffef5c,0xef5cffff,0xffffffff,0x39c7ef5c,0x18e218c3,0xe529a2c1,0xd3e2e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c14080,0xa2c1d3e2, +0xe529a2c1,0x4800a2c1,0xbdc6bd86,0xa2c1bde7,0x4800eda2,0xbdc6bde7,0xeda2bd86,0xa2c1f684,0xdefb0000,0xe8e3ef5d,0xef5de8e3,0xef5def5d,0xef5dd6ba,0xdefbef5d,0xef5def5d,0x0000defb,0x92430000,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0x00009243,0x92430000,0x81207900,0x79008120,0x81207900,0x79008120,0x81207900,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x5a6641a4,0x00000000,0x18a218c3,0x18a21082,0x18c318c3,0x10611061,0x18c31082,0x10821082,0x18c318c3,0x10611082,0x42084228,0x420839e7,0x42284228,0x31a639c7,0x420839e7,0x39c739e7,0x42284228,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x104030e1,0x28e13101,0x39223922,0x28e13101,0x10403101,0x51a330e1,0x51a31040,0x39221040,0xef5cef3c,0xb5b6b5b6,0x39c6df1a,0x20c439c7,0xe75c39e7,0xd6fadeda,0xe6badeda,0xdeba41e7,0xd3e2a2c1,0xd3e2e483,0xe529a2c1,0xe483d3e2,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c12800,0xa2c1d3e2, +0xd3e2a2c1,0x4800eda2,0xb566b546,0xeda2bd86,0x4800eda2,0xb566bd86,0xeda24800,0xa2c1d3e2,0xdefb0000,0xe9a6ef5d,0xef5de8e3,0xef5def5d,0xe8e3ef5d,0xef5dd6ba,0xef5def5d,0x0000defb,0x92430000,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0x00009243,0x92430000,0x79007900,0x71007900,0x60a060a0,0x60a060a0,0x710060a0,0x79007900,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x6b4d6b4d,0x18a218a2,0x20e318c3,0x18a218a2,0x20e318a2,0x18a21082,0x20e320e3,0x18a218a2,0x20e32104,0x39e74208,0x4a494228,0x39e74208,0x4a494208,0x420839e7,0x4a494a49,0x39e74208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x10603101,0x104028c1,0x39223922,0x28e11040,0x104051a3,0x51a328e1,0x51c31040,0x39221040,0xffffef5c,0xb5d6e77c,0x10c241e7,0x39a720c4,0xf75cef3c,0xef9cef3c,0xef7cef7c,0xef5cdeda,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe529d3e2,0xe529a2c1,0xa2c1e483,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e483,0x40802800,0xe5292800,0x2800a2c1,0x28002800,0xe483a2c1,0xa2c1d3e2, +0xd3e2a2c1,0xe4c2f6e6,0xb5064800,0xfff24800,0x4800eda2,0x48004800,0xf6e6eda2,0xa2c1d3e2,0xdefb0000,0xdefbef5d,0xd6badefb,0xdefbdefb,0xdefbdefb,0xdefbef5d,0xef5ddefb,0x0000defb,0xc6180000,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0x0000c618,0x92430000,0x60a060a0,0x60a060a0,0x79008120,0x81208120,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4a284,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x52050000,0xa534a534,0xa534a534,0x20e320e3,0x18a218a2,0x20e320e3,0x18a218c3,0x20e318c3,0x18c318c3,0x210420e3,0x18c318c3,0x4a494228,0x42084208,0x4a494a49,0x42084208,0x4a494228,0x42284228,0x4a494a49,0x42284228,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11020,0x104028c0,0x51a328e1,0x28e11040,0x104051a3,0x392228e1,0x39221880,0x51a31880,0xef9cd6db,0xef7ce73c,0xe6daef5c,0xdebaef7c,0xdebbdeda,0xb5b6e77c,0xe75cef5c,0xdedadeba,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e483,0xd3e2a2c1,0xa2c1e483,0x28002800,0xe483e483,0xe529a2c1,0xa2c12800,0xe483e483,0xa2c1e483, +0xd3e2a2c1,0xeda2e483,0x48004800,0xf6e6ffe7,0xfff2e4c2,0xeda24800,0xe483f6e6,0xa2c1e483,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0x0000defb,0xc6180000,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0x0000c618,0x92430000,0x81207900,0x79008120,0x81207900,0x79007900,0x81208120,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x83280000,0x00008b87,0x00000000,0x18c318a2,0x21042104,0x18c320e3,0x18a218a2,0x10821082,0x18a21082,0x10821061,0x18a218a2,0x42284208,0x4a694a49,0x42284228,0x42084208,0x39c739e7,0x420839e7,0x39c731a6,0x420839e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11040,0x08203102,0x51a31040,0x28e11040,0x104051a3,0x51a328e1,0x39221880,0x49a31880,0xe75cf77c,0xdebadeda,0xe77cde9a,0xef1ce75c,0xef7be77c,0xef7ce75c,0xef5cef7b,0xef5cf75b,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483, +0xe529a2c1,0xe4c2e483,0xffe7f7c5,0xd3e2f6e6,0xf6e6a2c1,0xe4c2ffe7,0xe483d3e2,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0xc6180000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000c618,0x92430000,0xef5d7900,0x79007900,0x79007900,0x79007900,0x79007900,0x79007900,0x00009243, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18a21082,0x10821082,0x18c318a2,0x10821082,0x18c318c3,0x10821061,0x18c318c3,0x10821082,0x39e739e7,0x39e739c7,0x42284208,0x39e739e7,0x42284228,0x39c739c7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28e11860,0x51c33101,0x31011040,0x104049a3,0x28e128e1,0x392228e1,0x39223101,0x51c328e1,0xef7bb5b6,0xef7cef5c,0xbdd6ef7c,0xdefaef5c,0xe75ce6da,0xffffffff,0xef3cffff,0xb5b5ef7c,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xa2c1d3e2,0xf684e4c2,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e4c2,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc6180000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000c618,0xc6180000,0xdefbdefb,0xdefbdefb,0x7900defb,0x60a060a0,0xdefbdefb,0xdefbdefb,0x0000c618, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x93a80000,0x00006286,0x00000000,0x00000000,0x00000000,0x51e37ac5,0x59e351e3,0x51c351c3,0x51c359e3,0x51e351e3,0x51c351e3,0x51c349a3,0x51e351c3,0x7bcf8430,0x73ae73ae,0x73ae738e,0x73ae73ae,0x73ae73ae,0x738e73ae,0x738e738e,0x738e738e,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xd3e2a2c1,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x69a669c7,0x38e34820,0x184158e2,0x38412882,0xab8ba2cb,0x92884924,0x38e338c3,0x514538e3, +0x5a27836b,0x72c96a88,0x7b2b5a27,0x392349a5,0x31023923,0x49c65a27,0x31023102,0x8b8c834b,0x49c27369,0x49c249c2,0x49c249c2,0x73697369,0x73697369,0x49c27369,0x49c249c2,0x49c249c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x93678b46,0x8b469367,0x93679367,0x8b468b46,0x93679367,0x72249367,0x94b294b2,0x94b294b2,0x94b29492,0x94929492,0x949294b2,0x94929492,0x94929492,0x73ae9492,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1e483,0xe483d3e2,0xa2c1e483,0x92aa69a6,0xab2c2041,0x69c75820,0x38415820,0x38414924,0x6841ab8b,0x8a4992cb,0x30c328a2, +0x5a4751e6,0x3102836b,0x41a549e6,0x31238b8c,0x7b0a4184,0x5a275a47,0x41644164,0x7b2a49c5,0x7ac57369,0xc4687ac5,0x7ac57ac5,0x736949c2,0x49c249c2,0x7ac57369,0x7ac57ac5,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x8b46aca9,0xa4497ac5,0xa449a449,0xa408a449,0xa4489367,0xa408a448,0xa408a408,0x72248b46,0x949294b2,0x9cf38c71,0x9cd39cf3,0x9cd39cd3,0x9cd394b2,0x9cd39cd3,0x9cd39cd3,0x73ae9492,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e529,0xd3e2a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe483e483,0xd3e2a2c1,0x8269cbcf,0xcbae6186,0xaaeb7861,0x184159a6,0x988261c7,0x5820b34d,0x58209aeb,0x30c37a08, +0x8b8c4164,0x31236247,0x31023102,0x416472c9,0x7b2a5a27,0x41a5834b,0x418449a5,0x41844184,0xfdeb7369,0xffffc468,0x49c2feb3,0x49c27369,0x49c2c468,0xfdeb7369,0xffffc468,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x936782c5,0x8b469367,0xa4089367,0x8b467a84,0x8b468b46,0x93878b46,0x72249367,0x949294b2,0x94b28c71,0x949294b2,0x9cd394b2,0x94b28c71,0x94929492,0x94b294b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2d3e2,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xe483e529,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xa2cbc38e,0x30c32882,0x18412882,0x582061c7,0x18414124,0x7041c38e,0x71e78a69,0x59a68a87, +0x72c93102,0x72c93102,0x62683103,0x41846247,0x5a274184,0x6ac949a5,0x5a476267,0x51e649c5,0x73697369,0xc468fdeb,0x736949c2,0x7ac549c2,0x7369ffff,0x736949c2,0xc468fdeb,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x72a56b6d,0x7ac56244,0x72a572a5,0x938772a5,0x7ac56244,0x7ac57ac5,0x936672a5,0x51e372a5,0x94928410,0x94928c51,0x8c719492,0x94b28c71,0x94928c51,0x8c718c71,0x94b28c71,0x7bcf8c71,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xd3e2e483,0xe483d3e2,0xd3e2a2c1,0xa2c1e483,0x384159a6,0x8269ab2c,0x18416186,0x58208a69,0x71e79aeb,0x30412882,0x4924bb6d,0x30c33841, +0x62685206,0x7b2a3943,0x31026268,0x49c56247,0x39436268,0x6aa993cd,0x6aa96247,0x49a58bac,0x49c27369,0x7ac57369,0x736949c2,0xfdebfdeb,0x49c27369,0x49c27ac5,0x7ac57369,0x73697369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b4631a6,0x8b4682a5,0x93679367,0xa4088b46,0x8b467a84,0x8b468b46,0xa4488b46,0x6a038b46,0x9cd34a69,0x9cd394b2,0x9cd39cf3,0x9cf39cd3,0x94b28c71,0x94b294b2,0x9cf394b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0xa2c1e529,0xa2c1e483,0xd3e2e529,0xe483a2c1,0xd3e2e529,0x78614924,0x8a69ab4a,0x104171e7,0x6841a2cb,0x71e78a69,0x18417a08,0x492461a6,0x79e77041, +0x41844184,0x72e96aa9,0x31023102,0x418472e9,0x6aa949a5,0x5a476aa9,0x31026268,0x6aa93102,0x7ac57ac5,0x736949c2,0x73697369,0x73697369,0x7ac549c2,0x7ac5c468,0x736949c2,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x7a847a84,0x82c57a84,0x8b4682a5,0x7a847a84,0x62447a84,0x8b4682c5,0x6a038b46,0x9cf3a514,0x94b294b2,0x94b294b2,0x9cd394b2,0x8c719492,0x8c518c71,0x94b29492,0x841094b2,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xe483e483,0xe483e483,0x3960a2c1,0xa2c1a2c1,0xa2c1e483,0xd3e2e483,0xd3e2d3e2,0x49247a08,0x8061c38e,0x30e36020,0x4020a2cb,0x8228e550,0x59a6bc0c,0xd3ef5145,0x58205820, +0x52064164,0x624751c5,0x834b7b0a,0x39237b2a,0x7b0a5206,0x394341a5,0x31023102,0x6a884164,0xfffffdeb,0x49c2feb3,0x49c27369,0xfdeb7369,0xc4687ac5,0xc468ffff,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0x7ac59367,0x93678b46,0x8b469367,0x8b468b46,0x93679367,0x6a039367,0xa534ad75,0xa534a534,0x9cd3a514,0x9cf39cd3,0x9cd39cd3,0x9cd39cd3,0x94b29cd3,0x7bef94b2,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000a800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1d3e2,0xa2c1a2c1,0xa2c1a2c1,0xb4203960,0xa2c1e540,0xd3e2e483,0xa2c1a2c1,0xa2c1a2c1,0x104171c7,0x886159a6,0xab8b8061,0xa2cb9b09,0x71c7b34d,0x41245145,0x084128a2,0xdd0fdc10, +0x9c0e6ac9,0x49c572e9,0x62885a27,0x310249a5,0x41844184,0x31026268,0x31023102,0x62686247,0xc468fdeb,0x73697ac5,0x7ac549c2,0x736949c2,0xfdeb7369,0x7ac5c468,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x84100000,0x0000738e,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x936672a5,0x93669366,0x93879366,0x93877ac5,0x93669366,0x93669366,0x51e37ac5,0xad55b596,0xad55a514,0xa534a534,0xa534a534,0xad559cf3,0xa534a534,0xa534a534,0x8c51a514,0x00000000,0x00000000,0x00000000,0xfff2f800,0xf800ffff,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483d3e2,0x3960e483,0xe540b420,0x3960b420,0xa2c1a2c1,0xe483e483,0xd3e2e529,0x8a6971e7,0x51652882,0xc38e9aaa,0x41044924,0x284161a6,0x92aa30c3,0x30c35820,0x90824020, +0x626862a9,0x41846a88,0x418449a5,0x49c53102,0x6ac95206,0x5a476268,0x62686268,0x72e93923,0x73697369,0x49c27369,0x7ac57ac5,0x736949c2,0x736949c2,0x7ac5fdeb,0x7ac57369,0x49c2feb3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7bef0000,0x0000738e,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b4682c5,0x93679367,0xa4089367,0x8b467a84,0x93677ac5,0xa4499367,0x72249367,0xbdd7c638,0xb5b6b596,0xb5b6b596,0xbdf7b5b6,0xb596ad75,0xb596ad75,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xfec0f800,0xf800fc60,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0x3960a2c1,0xb420e540,0xa2c13960,0xd3e2e483,0xe483a2c1,0xd3e2d3e2,0x8a695820,0x59a671e7,0x18415965,0x514530c3,0x604161c7,0x8a69b32c,0x8a6961a6,0x30415820, +0x6a883102,0x41843923,0x6a88836b,0x39236aa9,0x394341a5,0x3102836b,0x6a886268,0x6a8841a5,0x49c27369,0xc46849c2,0xc468feb3,0x736949c2,0x49c27ac5,0x73697369,0xc4687ac5,0x49c2ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x8b466244,0x8b468b46,0xa4089367,0x8b4682a5,0x8b468b46,0xa4088b46,0x6a038b46,0xc618ce59,0xc618b5b6,0xc618c618,0xc618c618,0xb5b6b596,0xb596b596,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000f800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xa2c1a2c1,0xa2c1e483,0x39603960,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0x8aaa4820,0x59a671c7,0x602069c7,0x30c38a69,0xdc10bb6d,0x92aa8249,0x59a692a8,0x28821041, +0x392341a5,0x62683923,0x51e63102,0x6a883123,0x41a53943,0x31035a47,0x72c96a88,0x41648bac,0x7ac57369,0xfeb37ac5,0xfeb3ffff,0x736949c2,0xffffc468,0x49c249c2,0xfdeb7369,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x8b467a84,0x93678b46,0xa4089367,0x8b4682c5,0x7ac58b46,0xa4488b46,0x72248b46,0xc638ce79,0xc638bdf7,0xc638c618,0xc618c618,0xb5b6b5b6,0xb596b5b6,0xbdf7b5b6,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483e483,0xd3e2d3e2,0xe483a2c1,0xe483d3e2,0xa2c1e483,0xe529e483,0xa2c1d3e2,0xc38ee530,0x59a68a87,0x8aaac38e,0x20418aaa,0x928a59a6,0xab0c9269,0xab6a4104,0x59a67861, +0x41a551e6,0x72ea6ac9,0x31023923,0x836b49a5,0x628841a5,0x7b0a5a67,0x4184834b,0x5a6751e6,0x73697369,0xc468fdeb,0xc468feb3,0x736949c2,0xc468fdeb,0x49c27ac5,0x73697369,0x49c2fdeb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x62446224,0x62446244,0x7ac56244,0x62446244,0x62246224,0x72a56224,0x51e37ac5,0xbdf7c638,0xbdd7bdd7,0xbdd7bdd7,0xbdd7b5b6,0xad75b596,0xad55ad55,0xad75ad55,0x9cf3ad75,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0xe483a2c1,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xd3e2a2c1,0xd3e2e483,0x41247228,0x59a61041,0x69e7aaeb,0xab8ba2eb,0x492430c3,0x38e32882,0xbb6d4924,0x59a68861, +0x39234184,0x31027b0a,0x62687b0a,0x5a473102,0x394341a5,0x49a549a5,0x41844184,0x93cd49c5,0x49c27369,0xfdeb7369,0x7ac57ac5,0x49c27369,0xfdeb7369,0x73697ac5,0x49c249c2,0x49c27369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x8b468b46,0x8b468b46,0x93679367,0x8b469367,0x93677ac5,0x6a039367,0xc638d69a,0xc638c638,0xc638c638,0xc638c638,0xbdf7c638,0xbdd7bdf7,0xb5b6b596,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xa2c1e529,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e529,0xd3e2d3e2,0x71e75986,0x28828a69,0x80614924,0x5820c38e,0x10412061,0x58207a08,0x59a62882,0x8a8a3841, +0x49a56288,0x31026268,0x62473923,0x5a473923,0x31025a47,0x3102834b,0x41644184,0x41645206,0x7ac57ac5,0x736949c2,0x73697ac5,0x7ac549c2,0x736949c2,0x49c27369,0xc468c468,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93878b46,0xa448a448,0xa408a408,0xa4088b46,0xa448a408,0xa448a408,0x6a039367,0xc638d69a,0xc638c638,0xce79ce79,0xce59ce79,0xce59c638,0xce59ce59,0xc618c618,0xa534b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529a2c1,0xe529a2c1,0xd3e2e483,0xd3e2a2c1,0xa2c1e483,0xe483e483,0xd3e2e483,0xa2c1a2c1,0xa2cbc38e,0x8a694020,0x49241841,0x8061c38e,0x58204924,0x582092aa,0x69646841,0xab0c6186, +0x52064184,0x62476ac9,0x62476aa9,0x51e67b0a,0x39233943,0x62686268,0x31023102,0x49c65a47,0xffff7ac5,0x49c2c468,0xfdeb7369,0xffffc468,0x736949c2,0x7ac5fdeb,0xfffffeb3,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x8b467a84,0x93678b46,0xa4489367,0x93677a84,0x93679367,0xa4499367,0x6a039367,0xc6188410,0xc618bdd7,0xc618c618,0xce59c618,0xc618bdd7,0xc618c618,0xc638bdf7,0xad55bdf7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xa2c1a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1a2c1,0xa2cbc38e,0x9a8aa2cb,0x71e7c42d,0x49245145,0x80614924,0xa2cbc38e,0x492471e7,0x8228aaeb, +0x62475a47,0x49c53943,0x41643943,0x31023923,0x49a541a5,0x628849a5,0x39234184,0x52063102,0x7ac5fdeb,0x73697ac5,0x73697369,0x7ac5fdeb,0x73697369,0xfdeb7369,0xc468fdeb,0x73697ac5,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000,0x7ac531a6,0x7ae56244,0x72a572a5,0x93667ae5,0x7ac56244,0x18c37ac5,0x936651c3,0x51e351c3,0xbdd74a69,0xbdd7b596,0xb596b596,0xb596b596,0xb596a534,0xb596ad75,0xb596bdd7,0x9cf3a514,0x00000000,0x49c46265,0x00000000,0x00000000,0x00000000,0x00000000,0x41834183,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x61a261a2,0x71e238c1,0x59825982,0x69c24921,0x41215982,0x69e24921,0x49415982,0x38e171e2,0x7aa67aa6,0x9b484142,0x7aa67aa6,0x9b4861e4,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x41429b48, +0x00000000,0x000005e2,0x00000000,0x07020000,0x00000340,0x06220000,0x00000000,0x00000000,0x00000000,0x14c23e60,0x000004a2,0x3d210000,0x05c20340,0x3cc20000,0x00000000,0x00000000,0x000004c2,0x02a06481,0x01c05c01,0x6d000000,0x53e209a0,0x64610280,0x04420000,0x00000000,0x0b603c02,0x12006481,0x1a606481,0x64810000,0x5c0111e0,0x5be222c0,0x5c010000,0x000001c0, +0x096063e1,0x09605bc2,0x11e06401,0x64010000,0x534200c0,0x53620980,0x53820000,0x00000980,0x01005321,0x00205321,0x00004ac1,0x42a10000,0x42810060,0x53420060,0x6c210000,0x000000e0,0x00805b61,0x008063a2,0x00c06382,0x63820000,0x42810000,0x63a20080,0x53010000,0x00000940,0x090052e1,0x00606ba1,0x00c052e1,0x52e10000,0x42410040,0x63620060,0x4aa10000,0x000000a0, +0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b467a84,0x93678b46,0xa4089367,0x936782c5,0x42088b46,0x18c32965,0x72247224,0xc638c618,0xc618bdd7,0xc638c618,0xce59c618,0xc618bdd7,0xb5b6bdd7,0xa534bdd7,0x9cf3a534,0x62650000,0x5a448b87,0x5a245a24,0x5a246a85,0x62656265,0x5a246265,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x494161a2,0x69e230c1,0x412169c2,0x412130c1,0x412169c2,0x516130c1,0x30c14121,0x598271e2,0x61e47aa6,0x9b484142,0x61e49b48,0x61e44142,0x61e49b48,0x7aa64142,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x05620000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006a2,0x00000000,0x3d810000,0x00000380,0x07220000,0x14620000,0x00000000,0x00000000,0x01e04502,0x02e03c42,0x5c210000,0x3ce20280,0x34020240,0x00000000,0x00000000,0x13c14da1,0x0b406481,0x02006cc1,0x64610000,0x75202b21,0x45610220,0x3c420000,0x00000240, +0x0a606401,0x226063e1,0x11e06c61,0x53620000,0x64010100,0x63e11a40,0x64210000,0x00000140,0x09805ba1,0x09804b01,0x01404ae1,0x53210000,0x53210100,0x6c010100,0x5b820000,0x00000100,0x11a05b42,0x00e05b41,0x09406382,0x4aa10000,0x5b410940,0x5b210000,0x6bc20000,0x00000920,0x09406ba1,0x19e05b21,0x00e06382,0x5b010000,0x5b2100a0,0x5b210080,0x63610000,0x00000060, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000,0x8b46aca9,0x82c56244,0x82c582c5,0x8b4682c5,0x82a582c5,0x7a8482a5,0x8b467a84,0x72248b46,0xc638c618,0xbdf7bdd7,0xc618c618,0xc618c618,0xbdd7bdf7,0xb596b5b6,0xb5b6b596,0xa514b5b6,0xa4090000,0x6a856265,0xac4a8b87,0x8b87ac4a,0xac4aac4a,0xa4098b87,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x59824941,0x51624921,0x41214122,0x61a24101,0x410161a2,0x516130c0,0x30c14121,0x59825982,0x7aa661e4,0x7aa661e4,0x61e45a05,0x9b4861e4,0x61e49b48,0x7aa64142,0x414261e4,0x7aa67aa6, +0x00000000,0x00000000,0x00000000,0x000005c2,0x00000000,0x00000000,0x00000000,0x00000000,0x05a20000,0x00000000,0x00000000,0x3dc10000,0x00001d63,0x00000000,0x00000642,0x00000000,0x00000000,0x1d023c62,0x00000502,0x3ce21462,0x04a20320,0x3ce20000,0x00000000,0x00000000,0x000005c1,0x13e14d81,0x02c03c82,0x7d600000,0x44a233e1,0x4e0002c0,0x04a10000,0x0b800000, +0x13c14cc2,0x2b2174c1,0x22a06c61,0x5ba10000,0x74a10980,0x6c412240,0x5bc20000,0x00000a20,0x1a206c01,0x1a006c21,0x226063c2,0x63a10000,0x5ba20140,0x74810140,0x63a10000,0x00003320,0x1a207421,0x11c06381,0x2a406be2,0x6bc20000,0x42610920,0x6bc20940,0x63c20000,0x00000920,0x09606be2,0x09007c61,0x09206381,0x63610000,0x63420900,0x5b420920,0x5b210000,0x00000920, +0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0xa4499367,0xa408a449,0xa408a449,0xa4088b46,0xa408a408,0x9387a448,0x72249367,0xc638c618,0xce79c638,0xce79ce79,0xce79ce79,0xce59c618,0xc638ce59,0xbdd7c618,0xa514b5b6,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x49a3a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x69c24121,0x41015161,0x61a228a0,0x41013901,0x51614101,0x69c24121,0x69e269c2,0x414261e4,0x9b4861e4,0x61e47aa6,0x9b484142,0x61e461e4,0x7aa661e4,0x9b4861e4,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07220000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006c1,0x06410000,0x45610000,0x00000b60,0x05620000,0x0b800000,0x00000000,0x00000000,0x02804e00,0x1c824521,0x7e000000,0x45010b60,0x456101c0,0x00000000,0x00000581, +0x0a605600,0x13c18560,0x018074e1,0x64010000,0x74a11200,0x4ce20a60,0x44a20000,0x00000220,0x13407481,0x33007481,0x00807cc1,0x63e10000,0x63e11a20,0x74811a00,0x8d600000,0x00002aa0,0x3b207c81,0x2a607441,0x19c084a1,0x63c20000,0x6bc211a0,0x63a219e0,0x63c20000,0x00003300,0x2a407401,0x19c06ba1,0x2a406bc2,0x6ba20000,0x6bc20900,0x6ba119c0,0x6bc20000,0x00002a60, +0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000,0x72a59be7,0x93877ac5,0x93669366,0x93879366,0x93877ac5,0x93879387,0x93669366,0x51e372a5,0xbdf7bdd7,0xce59c618,0xc638c638,0xc638c638,0xc638bdf7,0xc638c638,0xbdf7bdf7,0x9cf3b596,0x00000000,0x49a36265,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a24121,0x39015161,0x49413901,0x49412965,0x61a228a0,0x61a24101,0x30c14121,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x7aa661e4,0x7aa652aa,0x9b484142,0x9b4861e4,0x414261e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03800562,0x00000000,0x00000000,0x00000000,0x00000000,0x06020000,0x000014a2,0x00000000,0x45a10000,0x00000be1,0x00000000,0x000005a2,0x00000000,0x00000000,0x13c144e2,0x00000660,0x4da10280,0x042113a1,0x4dc10000,0x00000000,0x00000000, +0x000004a0,0x138055e1,0x0b004402,0x6c810000,0x4cc21a20,0x44a213a1,0x04600000,0x2d220000,0x13205d81,0x22608540,0x3ba15b41,0x74810000,0x74813361,0x7ca143e1,0x7ce10000,0x00001340,0x2ac09560,0x2aa084c1,0x2a407441,0x74410000,0x74612240,0x744119e0,0x8d400000,0x000032c0,0x32c08ca1,0x11807c41,0x438184a1,0x6ba20000,0x7c412200,0x6bc219a0,0x8cc10000,0x000032e0, +0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x000082a5,0x00000000,0xa4080000,0x00007a84,0x00000000,0xa4480000,0x6a038b46,0xc638c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa514bdf7,0x62650000,0x6265a409,0x5a245a24,0x62655a24,0x62656265,0x62656265,0x6265a409,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a261a2,0x39014941,0x492128a0,0x38e14921,0x598228a0,0x61a23901,0x412139e7,0x61e47aa6,0x9b489b48,0x61e47aa6,0x7aa64142,0x61e47aa6,0x9b484142,0x9b4861e4,0x61e46b6d, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005a2,0x00000000,0x00000000,0x00000000,0x00000000,0x06810000,0x00000000,0x00000000,0x05e20000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005c1,0x04c10000,0x4de11421,0x00000b40,0x05610000,0x14410000,0x00000000, +0x00000000,0x13c155a1,0x13404d41,0x74810000,0x55e11340,0x55a11340,0x00000000,0x00000700,0x1b805561,0x1b807cc1,0x24418dc0,0x8d800000,0x960043e1,0x5da112c0,0x5d810000,0x000012c0,0x3b218d20,0x11a084e1,0x32e084a1,0x84a10000,0x74612240,0x8d002ac0,0x8d200000,0x00003b21,0x2a409500,0x2a407401,0x4361a5c0,0x84810000,0x7c412a40,0x8cc119c0,0x95400000,0x00001160, +0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x00007a84,0x00000000,0xa4480000,0x00007a84,0x00000000,0xa4080000,0x6a038b46,0xc618c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x5a448b87,0xac4aac4a,0x8b878b87,0x8b878b87,0xa409a409,0x5a44ac4a,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c15982,0x410161a2,0x49413901,0x516238e1,0x38e14121,0x39015162,0x28a03901,0x516161a2,0x41427aa6,0x61e49b48,0x7aa661e4,0x9b4861e4,0x61e47aa6,0x61e49b48,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01c004e2,0x00000000,0x00000000,0x00000000,0x00000000,0x05210000,0x00000b60,0x06210000,0x4d810000,0x00001441,0x00000000,0x13e10620,0x00000000, +0x00000000,0x13c15600,0x00000560,0x55811bc1,0x05601bc1,0x55810000,0x00000000,0x00000000,0x00005da1,0x1bc15da1,0x1be15e60,0x96000000,0x55211a20,0x5e000a80,0x55210000,0x13400000,0x1b809580,0x3b817421,0x2a808d20,0x84a10000,0x8d2032e0,0x8d402ac0,0x95600000,0x000009c0,0x4bc184a1,0x3b2184a1,0x2a409da0,0x8ca10000,0x7c413b00,0x7c413b21,0x74010000,0x000019a0, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x000082c5,0x00000000,0xa4490000,0x000082c5,0x00000000,0xa4490000,0x6a039367,0xc638c618,0x0000c618,0x00000000,0xce590000,0x0000bdd7,0x00000000,0xc6380000,0xa514bdf7,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c05982,0x49415161,0x38e13901,0x516128a0,0x20a030e1,0x38e15162,0x28a03901,0x41215161,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142,0x414261e4,0x61e49b48,0x414261e4,0x61e47aa6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000422,0x00000000,0x00000000,0x00000000,0x00000000,0x05810000,0x00000000,0x00000000,0x06200000,0x00000000,0x00000000,0x000005e1,0x00000000, +0x00000000,0x000005c0,0x05c00000,0x56000b20,0x00000a60,0x05000000,0x1c210000,0x00000000,0x00000000,0x13005e00,0x24015e00,0x74810000,0x54e21ba1,0x5e201340,0x00000000,0x00005d81,0x000065a1,0x43e195c0,0x2ac084e1,0x8d400000,0x8d203b61,0x95603b81,0x4c420000,0x1b800000,0x32e0a5e0,0x43819d60,0x43818ca1,0x95400000,0x9d602a60,0x7c4132e0,0x7c410000,0x00003b00, +0x00000000,0x00000000,0x00000000,0xfff20000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x62246224,0x62246224,0x7ac56224,0x62446244,0x62246244,0x72a56224,0x51e37ac5,0xbdf7bdd7,0xb5b6b5b6,0xb596b596,0xbdd7b596,0xb5b6b5b6,0xb5b6b5b6,0xbdd7b5b6,0xa514bdd7,0x00000000,0x41835a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c069c2,0x49415161,0x28a03901,0x514128a0,0x208030c1,0x49214121,0x39013901,0x516161a2,0x41429b48,0x7aa67aa6,0x414261e4,0x9b484142,0x414261e4,0x7aa67aa6,0x61e461e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1c8205e1,0x00000000,0x00000000,0x00000000,0x00000000, +0x06000000,0x00001c41,0x05200000,0x4cc20000,0x00000b20,0x00000000,0x24a20600,0x00000000,0x00000000,0x1b805541,0x00006620,0x5de12401,0x5d810ac0,0x55010000,0x00000000,0x00000000,0x00000000,0x32c09e00,0x2c828d00,0x95a00000,0x95c032e0,0x8d402c82,0x00000000,0x000065a1,0x42009540,0x43a1a5c0,0x32e0a5c0,0x8cc10000,0x954019a0,0xa5c03b20,0x95400000,0x00002140, +0x00000000,0x00000000,0x00000000,0xfec00000,0x0000fc60,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0xa449a448,0xa408a449,0x8b468b46,0x9387a408,0xa449a449,0x72249367,0xc638c618,0xc618c638,0xce59ce59,0xce59ce79,0xc618c618,0xc638ce59,0xce59ce79,0xa534c618,0x62650000,0x6265ac4a,0x5a245a24,0x62655a24,0x62656265,0x5a245a24,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x516169c2,0x494161a2,0x28a03901,0x412128a0,0x20a030e1,0x49215162,0x41014941,0x516161a2,0x7aa69b48,0x7aa69b48,0x414261e4,0x7aa64142,0x414261e4,0x7aa69b48,0x61e47aa6,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02400660,0x00000000,0x00000000,0x00000000,0x00000000, +0x06200000,0x00000000,0x00000000,0x05400000,0x00000000,0x00000000,0x00000680,0x00000000,0x00000000,0x00005dc1,0x5e400000,0x55210a80,0x00001300,0x55610000,0x00000000,0x00000000,0x00000000,0x1b008d20,0x00006e80,0x8d401b40,0x6e803b81,0x8d200000,0x00000000,0x00000000,0x00208be2,0x32e0a5e0,0x31809540,0x7c410000,0x9d602a60,0x7c613180,0x7b420000,0x39c00000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x00006244,0x00000000,0xa4080000,0x000082a5,0x00000000,0xa4080000,0x6a038b46,0xc6188410,0x0000b5b6,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x62656265,0xac4aac4a,0x8b87ac4a,0x8b878b87,0xac4a6265,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41214921,0x410161a2,0x39013901,0x516228a0,0x38e130e1,0x28a05162,0x41014941,0x69c261a2,0x61e461e4,0x61e49b48,0x61e461e4,0x9b484142,0x61e461e4,0x41429b48,0x61e47aa6,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000481,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x0b200640,0x00000000,0x00000000,0x00000000,0x00000000,0x5e400000,0x00001320,0x54e20000,0x55410000,0x000009c0,0x00000000,0x1be15e20,0x00000000,0x00000000,0x00005d41,0x65810000,0x95c023e1,0x00004c02,0x54a20000,0x1b000000,0x00000000,0x00005a82,0x43419520,0x00008382,0x8cc14a20,0x838232c0,0xa5c02940,0x00000000,0x18e08ba2, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x7a8431a6,0x00007a84,0x00000000,0xa4080000,0x000082c5,0x00000000,0xa4480000,0x72248b46,0xbdf74a69,0x0000bdd7,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xad55c618,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6265a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x51615161,0x39013901,0x49215982,0x28a04921,0x29655982,0x41014941,0x69c230c0,0x61e47aa6,0x7aa67aa6,0x61e461e4,0x7aa69b48,0x41427aa6,0x52aa9b48,0x61e47aa6,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x1c610520,0x00000000,0x00000000,0x00000000,0x00000000,0x55610000,0x00000000,0x00000000,0x4c420000,0x00000000,0x00000000,0x00005e00,0x00000000,0x65a10000,0x00001280,0x66000000,0x9e200000,0x00001b20,0x00000000,0x1b605d41,0x00000000,0x00000000,0x42209d80,0x93e10000,0x95202940,0x7b4232c0,0x95000000,0x00000000,0x00007302, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x00006224,0x00000000,0x93870000,0x00006244,0x00000000,0x93660000,0x51e37ac5,0xbdf7bdd7,0x0000b5b6,0x00000000,0xc6380000,0x0000b5b6,0x00000000,0xc6180000,0xa514bdf7,0x00000000,0x49a35a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x318669c2,0x39015161,0x59823901,0x28a04941,0x49414941,0x41214101,0x69c230c1,0x61e47aa6,0x52aa9b48,0x61e47aa6,0x9b4861e4,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000640,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13405e40,0x00000000,0x00000000,0x00000000,0x00000000,0x5ce20000,0x00000000,0x00000000,0x5d610000,0x00000000,0x00000000,0x000065a1,0x00000000,0x00000000,0x000093c1,0x7b420000,0x95200000,0x000039a0,0x93e10000,0x39a00000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7a847a84,0x7a847a84,0x8b4682a5,0x82c582c5,0x82a582c5,0x93676244,0x6a039367,0xc638c618,0xbdd7bdd7,0xbdd7bdd7,0xc618bdf7,0xbdf7bdf7,0xbdf7bdf7,0xc618b5b6,0xa534bdf7,0x62650000,0x5a448b87,0x62656265,0x62656265,0x62656265,0x5a245a24,0x6a856265,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c171e2,0x69c269c2,0x41015161,0x494128a0,0x28a04941,0x410161a2,0x41214121,0x59824121,0x41429b48,0x9b489b48,0x61e47aa6,0x7aa64142,0x41427aa6,0x61e49b48,0x61e461e4,0x7aa661e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1b605d81,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b6184c1,0x00000000,0x00000000,0x00000000,0x00000000,0x7b620000,0x00002120,0x00000000,0x83a20000,0x00000000,0x00000000,0x294083a2,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7ac58b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x6a039367,0xc618bdf7,0xbdd7bdf7,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xa534c618,0xa4090000,0x49a3a409,0x8b878b87,0xa409a409,0xac4aac4a,0xa409ac4a,0x62658b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x51625982,0x41215161,0x61a230c0,0x30c04101,0x41215161,0x41214121,0x71e230c1,0x414261e4,0x7aa67aa6,0x61e47aa6,0x9b484142,0x414261e4,0x61e47aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005da1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x240195a0,0x00000000,0x00000000,0x00000000,0x00000000,0x73220000,0x00000000,0x00000000,0x10c08ba2,0x00000000,0x00000000,0x00007b42,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac68b4aa,0xac68ac68,0xb4aaac68,0xaca9b4aa,0xb4aaac68,0xb4aab4aa,0xb4aab4aa,0x8b46b4aa,0xa514a534,0xad75a534,0xbdf7b5b6,0xbdf7c618,0xbdf7bdf7,0xc618c618,0xc638c638,0xbdd7c638,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x49417202,0x69e271e2,0x41214121,0x69c269c2,0x30c04121,0x412169c2,0x69e25982,0x71e24921,0x61e49b48,0x9b489b48,0x61e461e4,0x9b489b48,0x414261e4,0x61e49b48,0x9b487aa6,0x9b4861e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006620,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006b02,0x00000000,0x00000000,0x00000000,0x00000000, +0xce79c618,0xe71cf79e,0xd6bace59,0xffdff79e,0xd69adedb,0xf79ee73c,0xce79ce59,0xf79eef7d,0x1aaf220a,0x1aaf220a,0x2a4b1aaf,0x1aaf1aaf,0x1aaf22d0,0x1aaf1168,0x328c1aaf,0x2a4b1aaf,0xffffffff,0xefffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0xffffefff,0xefffe79e,0xffffe79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x142413e4,0x140313a3,0x09c20b63,0x14030a02,0x0b8313e4,0x13e31403,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5569d15,0x94d49d15,0xa536add9,0xa55794f4,0xad779d36,0x9d159d15,0x9d369d15,0x94f49d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bef7be,0xdedbdefb,0xe71cf79e,0xef5de73c,0xef7dffff,0xd69ad69a,0xe73ce71c,0xce59d6ba,0x00000a0d,0x000022f0,0x1aaf0000,0x00000000,0x00000000,0x000022d0,0x124e0000,0x1aaf0000,0xefffffff,0xe79effff,0xe79ee79e,0xffffe79e,0xffffffff,0xffffffff,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x0b030000,0x01410000,0x0b030b03,0x0b030000,0x00000141,0x0b030b03,0x01410000,0x00000b03,0x0a020000,0x146413e4,0x14240ba3,0x00000ac2,0x13e40a02,0x13a31464,0x13a31424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d16a536,0x9d159d15,0x9d16a536,0xa556a536,0xa5368cb3,0x9d1594b4,0x9cf5a557,0xa5369d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73ce73c,0xffffffdf,0xef5df79e,0xd6bae71c,0xdedbbdd7,0xf79ee73c,0xdedbdedb,0xfffff79e,0x126e220a,0x1aaf220a,0x220a1aaf,0x1aaf1aaf,0x22d01aaf,0x126e220a,0x19a81aaf,0x220a1aaf,0xefffefff,0xe79eefff,0xefffefff,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f, +0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x0b030000,0x14030aa2,0x0b431444,0x0ba30aa2,0x0aa21444,0x14241403,0x0aa20aa2,0x00000b03,0x01410000,0x13e30b83,0x14241403,0x0b030bc3,0x0b630141,0x13a313e4,0x14641464,0x00000b03,0x0b030000,0xdef3def3,0xdef3def3,0xded3def3,0xded3def3,0xdef3def3,0xdef3def3,0x00000b03, +0xa557adb9,0x8c939cf5,0x9d159d15,0xad779d15,0xad77a536,0xa536a557,0x9d15a556,0x9d16a557,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0xaece7605,0x0000854b,0x72873165,0x498492c7,0x49849b29,0x39439b29,0x41649b29,0x394392e8,0x394382a7,0x31657287,0x72873165,0x9b2992c7,0x9b299b29,0x72879b29,0x92e87287,0x82a792e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad6ba,0xbdf7bdd7,0xf7bef79e,0xb5b6c638,0xef5ddefb,0xe73ce71c,0xffffffff,0xc618e73c,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xffffefff,0xe79eefff,0xe79ee79e,0xffffefff,0xffffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f, +0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x0b030000,0x14031444,0x00000b43,0x14241403,0x0b431444,0x0b431403,0x14241464,0x00000b03,0x00000000,0x0b830b43,0x146413e4,0x0b030b83,0x0ae20000,0x13a31464,0x0ba313e3,0x00000b03,0x0b030000,0xd6b3def3,0xd6d4d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6d4d6d4,0xdef3d6d4,0x00000b03, +0xa536ad77,0xad779d15,0x9d15a536,0x94d4a556,0xa53694f4,0x9d159d15,0xa537a536,0x9d159d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x51849b29,0x51849b29,0x518482a7,0x518482a7,0x59a492e8,0x31658ae8,0x8ae83165,0x9b299b29,0x82a79b29,0x18a27287,0x728718a2,0x82a782a7,0x92c792e8,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce79ce59,0xe71ce71c,0xd6bad69a,0xe73cef5d,0xce79ce59,0xe73cd69a,0xbdd7bdd7,0xe73cd6ba,0x00000a2d,0x000022d0,0x2b310000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xe79effff,0xefffe79e,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755fffff,0x755f755f, +0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x0b030000,0x14031444,0x0b431444,0x14241403,0x00000b43,0x00000b43,0x14030b43,0x00000000,0x0a020000,0x0ba31424,0x146413e4,0x0b030ba3,0x13e30a02,0x13a31464,0x0b031464,0x000009c2,0x0b030000,0xd6b3def3,0xdef4def4,0xdef3def3,0xdef4def4,0xdef4def4,0xdef3d6b3,0x00000b03, +0xa5379cf5,0x94d5a556,0x9d15a536,0x9d15a536,0xa536a536,0xadb89d35,0x9d159d15,0x94b49d15,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece7605,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c84143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x31658287,0x82873165,0x92c792c7,0x92c892c8,0x18a27287,0x728718a2,0x92c792c7,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79ef79e,0xef5def5d,0xf79effff,0xe73cef5d,0xef7df79e,0xe71cd6ba,0xdefbe73c,0xdefbce59,0x1aaf0947,0x1aaf1188,0x21e91aaf,0x1a8f0a2d,0x1a8f2b52,0x1aaf220a,0x220a124e,0x11882b11,0xffffffff,0xe79effff,0xefffefff,0xefffefff,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f, +0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x00000000,0x14030aa2,0x14031424,0x14441403,0x0b431403,0x0b4313e3,0x14031444,0x00000b03,0x0a020000,0x0ba31424,0x14641403,0x09c20b02,0x13e30a02,0x0ba31464,0x0aa21464,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6d4,0x00000b03, +0xa536a536,0xa5378c73,0xa55794f4,0x9d169d35,0xad77ad77,0x9d15a556,0x9d159d36,0x9d369d15,0xaece0000,0x0000854b,0xe77b7605,0x0000960c,0xaece9766,0x0000854b,0x854b0000,0x00006c28,0x82a83165,0x92e859c5,0x9b2959e5,0x82a75184,0x82a75184,0x92e859c5,0x92e859c5,0x316582a8,0x82a83165,0x92e892e8,0x9b299b29,0x18a27287,0x728718a2,0x92e892e8,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbd69a,0xef7dd6ba,0xbdf7bdd7,0xe71cdedb,0xe73cce79,0xffffffff,0xe73cdedb,0xffdfffff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x0000126e,0x126e0000,0x1aaf0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xe79effff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f, +0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x0b030000,0x14031444,0x14240b43,0x00000b43,0x14030b43,0x14241403,0x14030b43,0x00000b03,0x0a020000,0x13a31464,0x146413e4,0x00000aa2,0x0b830a02,0x0ba31464,0x0ba31464,0x00000b03,0x0b030000,0xd6b3ded3,0xdef3def3,0xd6b3d6b3,0xd6b3d6b3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x8c9394d4,0x9d35a536,0xa5369d35,0x9d15a557,0xa5369d36,0xad77a536,0xa5369d36,0xa57694d4,0x854b7605,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x72873165,0x394382a7,0x498482a7,0x416492e8,0x394382a7,0x414382a7,0x39439b29,0x31657287,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x82a79b29,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cef5d,0xd69ac618,0xe73cf79e,0xd6bace79,0xd6bad69a,0xc618d69a,0xdedbdefb,0xc638c638,0x000022f0,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xefffffff,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffffff,0xe79effff,0xffffffff,0xe79eefff,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x0b030000,0x0b431444,0x0b430000,0x0b4313e3,0x14031403,0x0b431403,0x0b430000,0x00000000,0x0a020000,0x0ba31464,0x0ba31403,0x0b031403,0x0b230141,0x13a31444,0x0ba31403,0x00000b03,0x0b030000,0xd6d4def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa536a536,0xa557a557,0x9d15a536,0xa536a557,0xadd9ad77,0xa53694d4,0x9d169d15,0x9d369d15,0xe77b9766,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x59a49b29,0x59e582a7,0x59c59b29,0x59c592e8,0x59e59b29,0x31658ae8,0x8ae83165,0x9b299b29,0x92c79b29,0x18a27287,0x728718a2,0x92e892e8,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad69a,0xffffffff,0xe73cef5d,0xf79ef79e,0xd69ace59,0xf79eef5d,0xe73ce73c,0xf79ef79e,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x22d00000,0x124e0000,0xffffffff,0xefffefff,0xefffefff,0xe79eefff,0xffffffff,0xe79ee79e,0xefffffff,0xe79eefff,0x755f755f,0x755f8dff,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x00000000,0x14030aa2,0x14840b43,0x14031444,0x0b431444,0x14241403,0x14030b43,0x00000141,0x0a020000,0x13a31464,0x13a31403,0x0b031464,0x0a820000,0x0bc31424,0x0b221424,0x000009c2,0x0b030000,0xd6b3def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef3def3,0xdef3d6b3,0x00000b03, +0x9d159d36,0x9d35a557,0x9d159d36,0xadb7a556,0x9cf5a536,0x9d159d15,0xa536a536,0xa5579d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x82873165,0x92c84143,0x92c84143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c892c8,0x92c892c8,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xffffffff,0xef5def7d,0xdefbdefb,0xe71cdedb,0xffffef7d,0xdedbe73c,0xffffffff,0xe71cef5d,0x00001aaf,0x0000020d,0x1a8f0000,0x00000000,0x00000000,0x00001aaf,0x01ab0000,0x1aaf0000,0xe79effff,0xe79ee79e,0xefffffff,0xffffe79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x01410000,0x14840ba3,0x14441403,0x14031424,0x00000b43,0x140313e3,0x14031403,0x00000b03,0x00000000,0x0bc313a3,0x13e31403,0x0b0313e4,0x13a30a02,0x13e31424,0x0aa21424,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xd6d4d6b3,0xd6b3d6b3,0xdef3def3,0xdef3d6b3,0x00000b03, +0xa53694d4,0x9d369cf5,0xa55694d4,0x9d159d15,0x9d159d15,0xadb8a557,0xa557a536,0x9d16a536,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x9766854b,0x8ae83165,0x92e859e5,0x9b2959e5,0x82a759e5,0x82a75184,0x9b2959a4,0x9b2959e5,0x31658ae8,0x8ae83165,0x92e89b29,0x9b299b29,0x18a27287,0x728718a2,0x9b2992c7,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdd7c618,0xf79ece79,0xb5b6ce79,0xd69ace59,0xb5b6ce79,0xd6bad69a,0xd69ac618,0xd6bace59,0x1aaf220a,0x22d0220a,0x326c1aaf,0x1aaf1aaf,0x22f01aaf,0x22f0220a,0x220a1aaf,0x220a1aaf,0xefffefff,0xefffefff,0xffffe79e,0xffffffff,0xefffe79e,0xe79ee79e,0xefffefff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f8dff,0x755f755f, +0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x0b030000,0x0b431403,0x0b430000,0x140313e3,0x140313e3,0x14241444,0x0aa21444,0x00000000,0x0a020000,0x14030b43,0x13e413e4,0x0b0313e4,0x13a30a02,0x14441403,0x0ba31424,0x00000b03,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa5369cf5,0xadda9d15,0xa5769d15,0xa536a536,0xad779d15,0x94d4a536,0x9d159d15,0x94d49d36,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0x72873165,0x416492c7,0x416492e8,0x39439b29,0x416492e8,0x416492e8,0x394382a7,0x31657287,0x72873165,0x92e892c7,0x92e892e8,0x18a27287,0x728718a2,0x92e892e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbe73c,0xdefbce79,0xef5def5d,0xb5b6bdf7,0xe71cd69a,0xc638d69a,0xef5def5d,0xbdf7ce59,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x0a0d0000,0xffffffff,0xefffefff,0xffffefff,0xffffe79e,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0xffff755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x8dff755f,0x755f755f, +0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5,0x01410000,0x14031424,0x14440b43,0x0b431444,0x14031444,0x0b431444,0x14031444,0x00000b03,0x0a020000,0x14030ba3,0x142413e4,0x0b031403,0x0b230141,0x14641403,0x13a31464,0x00000b03,0x0b030000,0xd6d4def3,0xdef4def3,0xdef4def4,0xdef4def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x9d15a556,0x9d15a557,0xa557a557,0xa557a537,0x9cf5a557,0xa5579d15,0x94d49d16,0x94f5a536,0xaece0000,0x0000854b,0xe77b0000,0x7605960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x72873165,0x518482a7,0x59e582a7,0x51849b29,0x51849b29,0x59a482a7,0x59c592e8,0x316582a8,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69adefb,0xf79eef5d,0xd6bad6ba,0xf79edefb,0xdedbce79,0xf79ef79e,0xd69adefb,0xf79effff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x000022f0,0x1aaf0000,0x22d00000,0xe79effff,0xe79ee79e,0xffffffff,0xffffe79e,0xefffffff,0xe79eefff,0xffffffff,0xe79eefff,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff, +0x6b6d59e5,0x59e559e5,0x59e5ffff,0x59e559e5,0x59e5ffff,0x59e5efff,0x59e57aa7,0x7aa759e5,0x00000000,0x14a40aa2,0x14241403,0x00000b43,0x14030b43,0x00000b43,0x14030b43,0x00000b03,0x01410000,0x13e30b23,0x14240ba3,0x0b0313a3,0x0aa20000,0x146413e4,0x0ba31464,0x00000b03,0x0b030000,0xd6b3def3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xdef3d6d4,0x00000b03, +0x9d159cf5,0xa5369d15,0xa5369d15,0x9d159d15,0x9d159d15,0xa5569d35,0x9d359d36,0x94d49d36,0xaece0000,0x7605854b,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c792c8,0x92c792c7,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79eef7d,0xdedbd6ba,0xf79ef7be,0xd6bae71c,0xf79eef5d,0xe73ce73c,0xffffffdf,0xe73cef5d,0x1aaf19a9,0x1aaf220a,0x3acd128f,0x1aaf1a8f,0x1aaf124e,0x1a8f11a8,0x21ea1aaf,0x220a01cc,0xffffefff,0xe79eefff,0xefffe79e,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f755f,0xffff755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5efff,0xe79eefff,0x59e5e79e,0x59e5efff,0xefffffff,0xe79eefff,0xffff59e5,0x59e5efff,0x0b030000,0x0aa21424,0x13e31403,0x0aa213e3,0x14031464,0x0b431444,0x14031424,0x00000b03,0x00000000,0x13e30b43,0x14640ba3,0x09c20b03,0x13a30a02,0x142413e4,0x0ac21424,0x00000000,0x0b030000,0xded3def3,0xdef3def3,0xdef3def3,0xdef3ded3,0xdef3def3,0xdef3def4,0x00000b03, +0xad77a536,0x9d15ad98,0x9d159d15,0x9d369d36,0xa556a536,0xa557a557,0x9d1594f4,0xad989d15,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x854b0000,0x00006c28,0x8ae83165,0x82a75184,0x82a75184,0x92e859c5,0x9b2959e5,0x92e859e5,0x9b2959a4,0x31658ae8,0x8ae83165,0x82a782a7,0x82a782a7,0x728792e8,0x9b297287,0x92e89b29,0x9b2992c7,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cdefb,0xffffffdf,0xef5def7d,0xd6badedb,0xc618ce59,0xd6bad69a,0xc618b596,0xdedbd69a,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x126e0000,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0x59e5efff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x0b030000,0x00000b03,0x0b030141,0x00000141,0x0b030b03,0x00000b03,0x0b030141,0x00000b03,0x0a020000,0x140313e3,0x14640b83,0x00000aa2,0x13a30a02,0x146413e4,0x14031424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d35a536,0xa557a536,0x9d1594b4,0x9d159d15,0xa55794d4,0xa536add9,0x9d359d15,0xa5769d15,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ace59,0xce59c638,0xef5ddefb,0xd69ace79,0xef5de73c,0xce59bdf7,0xe71ce71c,0xc618ce59,0x1aaf21ea,0x1aaf220a,0x2a6b0a2d,0x01cc22f0,0x1aaf128f,0x1aaf220a,0x3aed22d0,0x220a1aaf,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x14031403,0x14031464,0x0b031464,0x13e40a02,0x142413e4,0x14031424,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5368452,0x9d36a536,0x9d369d15,0x9d359d15,0xa536a556,0x9d159d15,0x9d159d15,0x9d3594f5,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0xbde6e70b,0xce68b5a5,0xce68b5a5,0xce68d6a9,0xef4affed,0xd689deea,0xce68e729,0xce68ce68,0xb6bbc7bf,0xb6bbb6bb,0xb6bbb6bb,0x00000000,0xb6bbb6bb,0xb6bb0000,0xb6bbb6bb,0xc7bfb6bb,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef, +0x0000a514,0x00000000,0x9cd30000,0x528a0000,0xad75ad55,0x0000528a,0x8c710000,0xad7552aa,0x2965a514,0x29652965,0x9cd32965,0x528a2965,0xad75ad55,0x2965528a,0x8c712965,0xad7552aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6, +0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6,0xdedb8410,0xf8003186,0xf800fd00,0xffe0fd00,0xfd00f800,0xfd00ffe0,0xef5df800,0x31869cd3,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc627ce68,0xef6cbdc6,0xb5a5e729,0xce68deea,0x63006300,0xce48e729,0xe7296300,0xc627ce68,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae, +0x0000632c,0x5acb0000,0x84305aeb,0x00000000,0x632c0000,0x94b2528a,0xb5960000,0x5acb9492,0x2965632c,0x5acb2965,0x84305aeb,0x29652965,0x632c2965,0x94b2528a,0xb5962965,0x5acb9492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc,0xe71c8c51,0xfd0039e7,0xffe0ffe0,0xfd00ffe0,0xffe0fd00,0xfd00ffe0,0xef7dfd00,0x2965ad55,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729e729,0x6b40d689,0xe7296300,0x39e0c627,0x63006300,0xd6895280,0xce68ce68,0xce68ce68,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x0000c7bf,0x00000000,0xb6bb0000,0x8c717bef,0xc73f73ae,0x7bef5f7e,0x73ae7bef,0x5f7e73ae,0x73ae5f7e,0x7bef7bef,0x8c718c71,0x8c717bef,0xf80073ae,0x7bef8800,0x73ae7bef,0x880073ae,0x73ae8800,0x7bef7bef,0x8c718c71, +0x00009492,0x94925acb,0xa5340000,0x00008c51,0x528a0000,0x94b20000,0xad754a69,0x0000ad55,0x29659492,0x94925acb,0xa5342965,0x29658c51,0x528a2965,0x94b22965,0xad754a69,0x2965ad55,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x9c299c29,0x18a19c29, +0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x62869c29,0x18a16286,0xdefb8c51,0xf80039e7,0xfd00fd00,0xf800fd00,0xfd00ffe0,0xf800f800,0xef7df800,0x3186a514,0x630c3186,0x9492738e,0x94928c71,0x5acb6b4d,0x9cf36b6d,0x7bcf8c51,0x7bcf8410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf78b6300,0x39c0ce48,0xd68918e0,0xc627ce68,0x294039c0,0xce68d6a9,0xad64d6a9,0xe7296300,0xc7bf0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xb6bb0000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xffffc73f,0x767fc73f,0x5f7e767f,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xf800a820,0x9000a820,0x88009000,0x7bef73ae, +0x00008c51,0x9cd3b596,0xad750000,0x0000b596,0x8c510000,0x94b20000,0x00009492,0xa5344a69,0x29658c51,0x9cd3b596,0xad752965,0x2965b596,0x8c512965,0x94b22965,0x29659492,0xa5344a69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0x72e79b47,0x18a1bccc, +0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0xffff9b47,0x18a172e7,0xc6188c51,0x39e7e71c,0xc800c800,0xc800fd00,0xf800fd00,0xc800c800,0xef7d4208,0x2965ad55,0x5acb2945,0x5acb5acb,0x5acb5acb,0x7bcf6b6d,0x5acb630c,0x8c519492,0x7bcf7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a818e0,0xce68ce68,0xce68ce68,0xd6a9d6a7,0xce68ce68,0x1080ce68,0xce68ce68,0xce68e729,0x0000ffff,0x00000000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x0000ffff,0xb6bb0000,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xc73f7bef,0x8c715f7e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xf8007bef,0x8c718800,0x6b4d8c71, +0x0000ad75,0xb5b6ad75,0x00000000,0x00000000,0x9cd3ad75,0xad550000,0x00008430,0xad55528a,0x2965ad75,0xb5b6ad75,0x29652965,0x29652965,0x9cd3ad75,0xad552965,0x29658430,0xad55528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0x6aa618a1,0x72e772e7,0x6aa66aa6,0x10616aa6,0x72e718a1,0x72e772e7,0x6aa641a4,0x18a16aa6, +0x6aa618a1,0x72e772e7,0x41a341a3,0x10616aa6,0x72e718a1,0x72e772e7,0xb5b62902,0x18a141a3,0xad554a49,0xdefbd6ba,0x39c739e7,0xc800f800,0xc800f800,0x39e739e7,0xd6badefb,0x3186a534,0x738e39c7,0x7bcf8c51,0x5acb738e,0x7bcf7bcf,0x7bcf8410,0x632c5acb,0x6b4d8c71,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a9ce68,0xe729ce68,0xc627ce68,0xd68918c0,0xdeeaef6c,0xe729ef4a,0xffedce68,0xce4652a0,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x7bef7bef,0x73ae8c71,0x8c71767f,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c719000,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef, +0x00005aeb,0x00000000,0x4a490000,0x00005acb,0xad55ad55,0x00000000,0x9cd35acb,0x00000000,0x29655aeb,0x29652965,0x4a492965,0x29655acb,0xad55ad55,0x29652965,0x9cd35acb,0x29652965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xb48b18a1,0xb48bb48b,0xbcccbccc,0x18a19c29,0x9c292102,0xb48bb48b,0xb48b9b47,0x18a1b48b, +0xb48b18a1,0x72c772c7,0x72e7b5b6,0x18a19c29,0x9c292102,0xb48bb48b,0xb5b6dedb,0x18a172c7,0x7bcf4a49,0xdedbce59,0xe71cef7d,0x42084208,0x420839e7,0xef7de71c,0xc638d69a,0x31867bcf,0x528a2965,0x7bcf73ae,0x52aa7bcf,0x84109492,0x7bcf7bcf,0x5acb7bef,0x6b4d6b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x39c0ce68,0xce68ce68,0xd689deea,0x6300ce68,0x63005280,0x39c0e729,0x6b416b41,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xc73f73ae,0x5f7e5f7e,0x73ae5f7e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xa82073ae,0x88008800,0x73ae8800,0x73ae73ae,0x7bef8c71, +0x4a698c71,0x5acb0000,0x00008c71,0x00009cd3,0x000052aa,0x000094b2,0xad7552aa,0x00009492,0x4a698c71,0x5acb2965,0x29658c71,0x29659cd3,0x296552aa,0x296594b2,0xad7552aa,0x29659492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x9c2918a1,0xb5b69c29,0xb5b66286,0x290272c7,0x9c292102,0x72e79c29,0x9c29bccc,0x18a19c29, +0x9c2918a1,0xdedbb5b6,0x72e7b5b6,0x2902b48b,0x9c292102,0x72e79c29,0xb5b6ffff,0x18a16286,0x8c714a49,0xdedbc638,0xe73cdedb,0xf79ef79e,0xf79ef79e,0xdedbe73c,0xc638dedb,0x39e78c71,0x528a2945,0x94929492,0x5acb7bef,0x738e9492,0x841094b2,0x6b4d8410,0x94b26b4d,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729ce68,0xd689dec8,0xce68d689,0x39c0c607,0x39c0e729,0x39c039c0,0xce68b5a5,0xce6839c0,0xc7bfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0xc73f7bef,0x6b4d767f,0x73ae8c71,0x7bef7bef,0xc73fffff,0x8c718c71,0x8c718c71,0x8c718c71,0xf8007bef,0x6b4d9000,0x73ae8c71,0x7bef7bef,0xa820f800,0x8c718c71,0x8c718c71,0x8c718c71, +0x8c71bdd7,0x9cd30000,0x52aa94b2,0x949294b2,0x94b20000,0x00009492,0xbdd70000,0x52aa9cf3,0x8c71bdd7,0x9cd32965,0x52aa94b2,0x949294b2,0x94b22965,0x29659492,0xbdd72965,0x52aa9cf3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xbccc18a1,0xdedbbccc,0xdedb72e7,0x29226286,0xb48b2922,0xb48bb48b,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0x72e7b5b6,0x29229c29,0xb48b2922,0x72c7b48b,0xb5b6dedb,0x18a172e7,0x42282965,0x84107bcf,0x8c715aeb,0x94b28c71,0x94929492,0x4a698c71,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c51738e,0x738ea514,0x94b26b6d,0x84309492,0x632c738e,0x4a495aeb,0x39c77bcf,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b40bde6,0xd689e729,0xdecae729,0xce48c607,0xce68ce68,0xb585d6a9,0xce689ce2,0xce68deca,0x0000ffff,0x0000c7bf,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef, +0xb5b6a514,0xa5340000,0x5acbb5b6,0x9492ad75,0xad550000,0x528abdd7,0x528a0000,0x630c0000,0xb5b6a514,0xa5342965,0x5acbb5b6,0x9492ad75,0xad552965,0x528abdd7,0x528a2965,0x630c2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x72e718a1,0x6aa66aa6,0x6aa6dedb,0x18a16aa6,0x72e718a1,0x41a46aa6,0x6aa66aa6,0x18a172e7, +0x72e718a1,0x28e16aa6,0x6aa66aa6,0x18a16aa6,0x72e718a1,0xffff6aa6,0xb5b6dedb,0x18a141c4,0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0deea,0xef4cce68,0xce686300,0xce68ce68,0xd689e729,0xb5a5ce68,0xe729ffcc,0xce68ce68,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x8c718c71,0xffff7bef,0x767fc73f,0x5f7e767f,0x7bef7bef,0x5f7e767f,0x8c718c71,0x6b4d8c71,0x8c718c71,0xb8207bef,0x9000a820,0x88009000,0x7bef7bef,0x88009000,0x8c718c71,0x6b4d8c71, +0x94b2528a,0x528a0000,0x00005acb,0xa534a514,0x00000000,0x0000632c,0x528a0000,0x5aeb5acb,0x94b2528a,0x528a2965,0x29655acb,0xa534a514,0x29652965,0x2965632c,0x528a2965,0x5aeb5acb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x6a8572c6,0x6a856a85,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xbccc18a1,0x28e1bccc,0x28e172e7,0x210272e7,0x9c292102,0xbccc49e4,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0xbcccbccc,0x2102bccc,0x9c292102,0xdedb49e4,0xb5b6dedb,0x18a172e7,0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdc6ce68,0xce68ce68,0xbde6e729,0xd689ce68,0xce682120,0xce68d6a9,0xdeca6300,0xce68d6a9,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000c7bf,0x00000000,0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aec73f,0x6b4d7bef,0xc73fffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xf8007bef,0x73aea820,0x6b4d7bef,0xa820f800,0x73ae73ae,0x7bef6b4d, +0xb5960000,0x00008430,0x8c714a69,0x00005aeb,0x9cd3528a,0x52aa0000,0x5acb0000,0x84300000,0xb5962965,0x29658430,0x8c714a69,0x29655aeb,0x9cd3528a,0x52aa2965,0x5acb2965,0x84302965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x31643184,0x31843184,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x9c2918a1,0x28e172e7,0x28e1b48b,0x2102bccc,0xb48b2902,0xb48b9b47,0x9c299c29,0x18a19c29, +0x9c2918a1,0x28e172e7,0xb48bb48b,0x2102bccc,0xb48b2902,0x28e19b47,0x28e128e1,0x18a16286,0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x6300ce68,0xce686300,0xc607a523,0xbde6ce68,0xce68ce68,0xce68e729,0xce68ffef,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xc7bf0000,0xb6bb0000,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71, +0xa5140000,0x0000a514,0xa5340000,0x0000528a,0x8c719cd3,0x00000000,0x00008c71,0x8c519492,0xa5142965,0x2965a514,0xa5342965,0x2965528a,0x8c719cd3,0x29652965,0x29658c71,0x8c519492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x7ae49365,0x7ae49365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x72e77ac6,0xb48bb48b,0x18a1b48b, +0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x28e17ac6,0x28e172c7,0x18a172c7,0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc607ce68,0x39c0deea,0xd68939c0,0x39e0e729,0xc627e729,0x2960c607,0xce466300,0xdecace68,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bbc7bf,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xc73f7bef,0x7bef5f7e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xf8007bef,0x7bef8800,0x73ae73ae,0x73ae73ae,0x7bef73ae, +0x00000000,0x00000000,0xad750000,0x00008c51,0x9cd3ad55,0xad754a69,0x00008c51,0x9cd3ad75,0x29652965,0x29652965,0xad752965,0x29658c51,0x9cd3ad55,0xad754a69,0x29658c51,0x9cd3ad75,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xa363a363,0xa363a363,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x6aa641a4,0x6aa66aa6,0x18a172e7, +0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x28e141a4,0x28e128e1,0x18a172e7,0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0xd689ce68,0xdeeace68,0x63005280,0xce68dec8,0xe70bbde6,0xce4839c0,0xce68ffec,0x0000ffff,0xffff0000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4d7bef,0x73ae73ae,0x73ae767f,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x767fc73f,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae9000,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x9000f800,0x7bef7bef, +0x00000000,0x00008c71,0xad75528a,0x0000a514,0xad559cf3,0xb5965aeb,0x000094b2,0xad55b596,0x29652965,0x29658c71,0xad75528a,0x2965a514,0xad559cf3,0xb5965aeb,0x296594b2,0xad55b596,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc, +0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0c627,0xce68e729,0xce68c607,0x39c039c0,0xd689ce68,0xce68ce68,0xce68ce68,0xce682100,0x0000ffff,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef, +0x00008430,0x9cd3bdd7,0x52aa0000,0x00000000,0x4a6952aa,0xb5960000,0x528ab5b6,0x52aa0000,0x29658430,0x9cd3bdd7,0x52aa2965,0x29652965,0x4a6952aa,0xb5962965,0x528ab5b6,0x52aa2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc, +0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68d689,0xce68b5a5,0xce68ce68,0xce68ce68,0xce68deea,0xe7295280,0xce68deea,0xce68ce68,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xc7bfffff,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae, +0x000094b2,0x9cf3ad75,0x00005acb,0x00000000,0x00007bef,0x00000000,0x52aa0000,0xad550000,0x296594b2,0x9cf3ad75,0x29655acb,0x29652965,0x29657bef,0x29652965,0x52aa2965,0xad552965,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41e641e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc, +0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6, +0x73ae7bcf,0x19e3738e,0x08e10901,0x1a231142,0x84103c47,0x224452aa,0x19c319a3,0x630c1162,0x08621083,0x08631083,0x10831083,0x10831083,0x10831083,0x10831082,0x10831083,0x10830862,0x41cc41cc,0x20c60021,0x00b009b1,0x31091884,0x20c61083,0x20c609b1,0x314a1884,0x18840000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x18a118a1,0x18a10840,0x512218a1,0x51224902,0x51225122,0x18a15122,0x08400840,0x18a10840, +0x630c39e7,0x29453186,0x29452945,0x29452945,0x21242945,0x29452945,0xa5342945,0x3186630c,0x318639e7,0x31863186,0x31863186,0x31863186,0x29653186,0x31863186,0x31863186,0x31863186,0x318639e7,0x29453186,0x29452945,0x31863186,0x31863186,0x29452945,0x31862945,0x31863186,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x5b8132d1,0xacc14183,0x90828be1,0x2a6f32d1,0xbccc146d, +0x8c5173ae,0xa51411a2,0x7bcf8410,0x1a237bef,0x1a231a23,0x94927bef,0x94b28c51,0x114239e7,0x10821083,0x18c51083,0x10831083,0x08620862,0x18a40841,0x18c518c5,0x108318c5,0x08620862,0x31090021,0x20c6314a,0x09b109d1,0x310920c6,0x20c61083,0x28c809d1,0x002120c6,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xb48b1061,0x2902b48b,0xb3a9ab88,0xab68ab68,0xab88ab88,0xab88ab68,0xb48b2902,0x18a1b48b, +0x7bef4a69,0x108239e7,0x21242945,0x29452945,0x29452945,0x29452945,0xb5b61082,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x73ae7bcf,0x7bef7bef,0x7bcf7bcf,0x7bcf7bcf,0x7bef7bef,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x738e7bcf,0x7bcf738e,0x738e7bcf,0x738e738e,0x7bcf7bcf,0x29657bef,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x8c717bef,0xfff673ae,0x7beffd65,0x73ae7bef,0xfd6573ae,0x73aefd65,0x7bef7bef,0x8c718c71,0x8c717bef,0xdd7273ae,0x7befac6e,0x73ae7bef,0xac6e73ae,0x73aeac6e,0x7bef7bef,0x8c718c71,0x8c717bef,0x39e773ae,0x7bef31a6,0x73ae7bef,0x31a673ae,0x73ae31a6,0x7bef7bef,0x8c718c71,0x81a1b48b,0x61407180,0x9082b8a2,0x5b8132d1,0xacc13142,0x90828be1,0x2a6f32d1,0xb48b146d, +0x7bcfbdd7,0xb5b622a4,0xb5b63c07,0x39c71a23,0xce592264,0x7befa534,0x7bef9492,0x31a68c51,0x10830864,0x18c518c5,0x00211083,0x108318c5,0x20e60841,0x18c518c5,0x10831083,0x10830863,0x00211884,0x314a1884,0x3109314a,0x20c620c6,0x314a1083,0x00b009d1,0x0021314a,0x20c6314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0xb48b0840,0xa34720e2,0xa347a368,0xa347a347,0xa3479b47,0xa368a347,0x2102a388,0x0840b46b, +0x73ae4a49,0x000039e7,0x18c31082,0x18c318c3,0x10a218c3,0x108218c3,0xb5960000,0x3186738e,0x73ae4a49,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x3186738e,0x73ae4a49,0xb596b596,0xb596b596,0xad55b596,0xad55ad55,0xa514a514,0xad55b596,0x3186738e,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xfffffff6,0xff69fff6,0xfd65ff69,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xe615dd72,0xbcd0dd72,0xac6ebcd0,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x422839e7,0x31a639e7,0x31a631a6,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x314232d1,0xb5b65b81,0x90828c51,0x2a6f32d1,0xbccc146d, +0xb596b596,0x11421142,0x11421142,0x7bef2264,0x114219a3,0x9cf3b596,0x7bef2b05,0x1a231a23,0x398a1083,0x20c5396a,0x08610862,0x08621063,0x396a0841,0x108318c5,0x10821083,0x08620862,0x188420c6,0x00001884,0x00000021,0x20c609b1,0x310920c6,0x00b009d1,0x31090021,0x28c820c6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0x29020840,0x51c4a347,0x494351c4,0x51c451a4,0x51c451c4,0x51c451c4,0xa34751a4,0x08402902, +0x7bef4a49,0x39e77bef,0x00000000,0x00000000,0x00000000,0x00000000,0xb5964208,0x29657bef,0x7bef4a49,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x29657bef,0x7bef4a49,0xb596b596,0xad55b596,0xce59b596,0xa514ce59,0xb596b596,0xb596ad55,0x29657bef,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xfff67bef,0x8c71fd65,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xdd727bef,0x8c71ac6e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x39e77bef,0x8c7131a6,0x6b4d8c71,0x81a172e7,0x61407180,0x9082b8a2,0x41833142,0xb5b65b81,0x90828c51,0x2a6f32d1,0x72e7146d, +0x1a231a23,0x7bef33e6,0x39c76b6d,0x84107bef,0x7bef9492,0x19e31142,0x1a233c27,0x39c71a23,0x08411084,0x10830841,0x08620862,0x08621083,0x398a0841,0x10830862,0x41ab0841,0x108318c5,0x188428c8,0x314a20c6,0x20c60021,0x00b009b1,0x314a20c6,0x00b009d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xab880840,0x51c4a347,0xb3889ac6,0xab8851a4,0x51a4ab88,0xb3a99ac6,0xa36851c4,0x1881ab88, +0x7bef4a49,0x7bcfad55,0x39c739e7,0x00000000,0x00000000,0x39e739e7,0xa51473ae,0x318673ae,0x7bef4a49,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x318673ae,0x7bef4a49,0xb596ad55,0xb596b596,0x1082b596,0xce591082,0xb596ad55,0xa514b596,0x318673ae,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0x7bef7bef,0x73ae8c71,0x8c71ff69,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c71bcd0,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c7131a6,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x20e2bccc,0x31423142,0x9082b8a2,0x39633963,0xacc13142,0x29028be1,0x2a6f32d1,0x9c293142, +0x3c075aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x2b057bef,0x39c78430,0x5aeb2244,0x84309cd3,0x10831082,0x08621083,0x10830862,0x08630863,0x08411083,0x10840862,0x08421083,0x10831083,0x18843109,0x18841884,0x20c60021,0x00b009b1,0x09b120c6,0x09b109d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xab881881,0x4943a347,0xa3479ac6,0xa3474983,0x41228a85,0xb3a9a347,0xa34751c4,0x18a1ab88, +0x7bcf4a49,0xb596b596,0x7befb596,0x42084208,0x420839e7,0xb5967bef,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596ad55,0x10822104,0x21041082,0xb596ce59,0xad559cf3,0x31867bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0xfff673ae,0xfd65fd65,0x73aefd65,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xdd7273ae,0xac6eac6e,0x73aeac6e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x39e773ae,0x31a631a6,0x73ae31a6,0x73ae73ae,0x7bef8c71,0x20e29c29,0x20e220e2,0x20e220e2,0x290220e2,0x29022902,0x20e220e2,0x2a6f32d1,0x9c292902, +0x5aeb8c51,0xb5b6b596,0x11622b45,0x6b4db596,0x3386bdd7,0x1a239492,0xc6185aeb,0x7bef7bef,0x10830862,0x10831083,0x10821083,0x20e51083,0x08620863,0x00220862,0x086218c5,0x10831083,0x00000021,0x20c620c6,0x31091884,0x00b009d1,0x09b11083,0x3109314a,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0xb3a918a1,0x49638a65,0x498351a4,0x51c451c4,0x51c44963,0x51a44983,0xa34751c4,0x18a1ab88, +0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0x00002104,0x21040000,0xc638ce59,0xc638c638,0x39e78c71,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0xfff67bef,0x6b4dff69,0x73ae8c71,0x7bef7bef,0xfff6ffff,0x8c718c71,0x8c718c71,0x8c718c71,0xdd727bef,0x6b4dbcd0,0x73ae8c71,0x7bef7bef,0xdd72e615,0x8c718c71,0x8c718c71,0x8c718c71,0x39e77bef,0x6b4d31a6,0x73ae8c71,0x7bef7bef,0x39e74228,0x8c718c71,0x8c718c71,0x8c718c71,0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29, +0x08e17bef,0xbdd71a23,0x2b053c47,0xb59622a4,0x2b05ad55,0x19c32244,0x21041182,0xb596c638,0x08410862,0x18c5398a,0x10830862,0x18c520e6,0x08621083,0x08411083,0x18c518a5,0x10830862,0x18840021,0x00b020c6,0x10831884,0x09b109d1,0x09b11083,0x002200b0,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xab8818a1,0x51c49ac6,0xa347ab88,0xab8851a4,0x51c4ab88,0xab88a347,0xa34751c4,0x18a1b3a9, +0x42282965,0x84107bcf,0x528a5aeb,0x5acb4a69,0x52aa5acb,0x4a69528a,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c717bcf,0x7bcf9cf3,0x94b273ae,0x84309492,0x6b6d7bcf,0x5aeb6b4d,0x39c77bcf,0x42282965,0x84107bcf,0x528a5aeb,0x21048c71,0x632c2104,0x6b6d528a,0x5aeb73ae,0x39c77bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7, +0x7bef7bef,0x1a031122,0xb5963c27,0x19e31a23,0x19c32244,0x8c5131a6,0x39c77bef,0xc6182264,0x10831083,0x08620841,0x18a51083,0x108418c5,0x08411083,0x084118c5,0x398a3129,0x108418c5,0x18840021,0x00b020c6,0x10831884,0x314a314a,0x09b11083,0x20c600b0,0x002120c6,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0xab880840,0x59c4a347,0xa347ab88,0xab8851c4,0x51a4ab88,0xab68a367,0xa34751c4,0x18a1ab88, +0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0x5aeb2965,0x6b6d6b6d,0x4a69738e,0x84304a69,0x5acb8430,0x4a696b6d,0x5acb6b4d,0x39c7528a,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8c718c71,0xffff7bef,0xff69fff6,0xfd65ff69,0x7bef7bef,0xfd65ff69,0x8c718c71,0x6b4d8c71,0x8c718c71,0xe6157bef,0xbcd0dd72,0xac6ebcd0,0x7bef7bef,0xac6ebcd0,0x8c718c71,0x6b4d8c71,0x8c718c71,0x42287bef,0x31a639e7,0x31a631a6,0x7bef7bef,0x31a631a6,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x5b817462,0xb8a23963,0x74629082,0x146d5b81,0xbccc0b4a, +0x7bef7bef,0x1a232b05,0x11422284,0x224439c7,0x33662264,0x2b05a514,0x7bef738e,0x52aa2b05,0x10821083,0x10831083,0x398a398a,0x398a398a,0x08410862,0x0862398a,0x08410841,0x08620841,0x1884314a,0x00b009b1,0x10831884,0x108341cc,0x09b11083,0x314a00b0,0x20c63109,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x94926244,0x41a373ae,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xab880840,0x51a4a347,0x498351a4,0x51a451a4,0x51c44963,0x49434983,0xa34751a4,0x0840ab88, +0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0x630c3186,0x6b6d7bef,0x6b6d5aeb,0x528a528a,0x6b6d528a,0x6b6d7bcf,0x8430528a,0x2104630c,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aefff6,0x6b4d7bef,0xfff6ffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xe6157bef,0x73aedd72,0x6b4d7bef,0xdd72e615,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0x42287bef,0x73ae39e7,0x6b4d7bef,0x39e74228,0x73ae73ae,0x7bef6b4d,0xb8a29c29,0x146d9082,0x2a6f32d1,0x39e74a49,0xb8a24183,0x74629082,0x146d5b81,0x9c290b4a, +0x8430738e,0x1a237bef,0x8c512ae5,0x11427bef,0xc6383c27,0x2b457bcf,0x5acb630c,0x11621122,0x10831083,0x08421082,0x08410841,0x08410841,0x08621083,0x10830841,0x10831083,0x08620862,0x18840021,0x00b009d1,0x41cc1884,0x20c641cc,0x09d120c6,0x20c600b0,0x314a0022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0xa5342923,0x292373ae,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0xab880840,0x51c4a347,0xa347ab88,0x92a54122,0x4983a347,0x9ac68a85,0xa34751a4,0x18a1ab88, +0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0x5acb2945,0x73ae7bef,0xb596b596,0x6b6d8c71,0xce59528a,0x7bcfb596,0x6b4d7bcf,0x212439c7,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x39e74a49,0x9082b8a2,0x74623963,0xb5b65b81,0xbccc8c51, +0xb596b596,0x1a235aeb,0x8430b596,0x39e78430,0x3be71a23,0x33c69cf3,0x7bef1a03,0x5aebad55,0x08410862,0x108318c5,0x10821082,0x10830862,0x08620861,0x08421083,0x086318c5,0x10831083,0x18840021,0x00b009d1,0x00211884,0x20c641cc,0x09d128c8,0x20c609b1,0x18840022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0xc6187ac4,0x51e28430,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0xab881061,0x51c4a347,0xa2e69ac6,0xab8851a4,0x4943ab88,0xb3a99ac6,0xa34751c4,0x18a1ab88, +0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0x738e39c7,0xb5968c71,0xb596b596,0x528a39c7,0x84308430,0xb596ce59,0x7bcfb596,0x2124738e,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x8c717bef,0x7bef7bef,0x6b4d7bef,0xfff67bef,0x7beffd65,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xdd727bef,0x7befac6e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x39e77bef,0x7bef31a6,0x73ae73ae,0x73ae73ae,0x7bef73ae,0xb5b66aa6,0x146d8c51,0x2a6f32d1,0x5b817462,0x9082b8a2,0x74623142,0x146d5b81,0x72e70b4a, +0x19c322c4,0x1a231122,0x2284bdd7,0x7bef94b2,0x1a2339c7,0x39e71142,0xad551a23,0x1a23b5b6,0x08410862,0x20c518c5,0x10820862,0x41cc1082,0x18c518c5,0x10830862,0x08620841,0x10831083,0x31090021,0x00b009d1,0x00211884,0x310941cc,0x314a314a,0x20c61884,0x18840022,0x00b009d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xce798ac3,0x8ac3a534,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x290218a1,0x51a4a368,0x51c44963,0x51c451c4,0x49434963,0x51a451c4,0xa34751c4,0x08402902, +0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0x528a2965,0xce595aeb,0x528ace59,0x6b6d528a,0x6b6d6b6d,0xce596b6d,0x8c51ce59,0x29456b4d,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x6b4d7bef,0x73ae73ae,0x73aeff69,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xff69fff6,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73aebcd0,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xbcd0dd72,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae31a6,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x31a639e7,0x7bef7bef,0xb8a2bccc,0x29029082,0x2a6f32d1,0x5b817462,0x31423142,0x74623142,0x39635b81,0x9c294183, +0x7bef1a23,0x11227bef,0x3c471a23,0x2b25b596,0x08e13186,0x7bef8c51,0x1a231142,0x84301a23,0x08411083,0x398a396a,0x0862398a,0x08410862,0x18c5398a,0x08621083,0x398a0841,0x108318c5,0x31090021,0x09b109d1,0x20c620c6,0x18841884,0x18840021,0x20c620c6,0x314a3109,0x09d109d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x51e2a384,0xabc551e2,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xb48b0840,0xa34720e2,0x9b27a347,0xa347a347,0xa347a388,0xa347a347,0x2102a347,0x18a1b48b, +0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x5aeb630c,0x7bcf5aeb,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x2902bccc,0x20e220e2,0x20e220e2,0x5b817462,0x29022902,0x20e220e2,0x20e220e2,0x9c292902, +0xb596b596,0x7bef6b4d,0x1a232965,0x3c473c47,0x7bef1a23,0x7bef8c51,0x11629492,0x9cf36b6d,0x10820862,0x08410841,0x10820841,0x10830863,0x314a0841,0x10831083,0x08411083,0x1083398a,0x310941cc,0x09d120c6,0x314a00b0,0x1884314a,0x314a1884,0x3109314a,0x00223109,0x314a314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xb48b18a1,0x2902b46a,0xab88ab88,0xab88ab88,0xab88ab68,0xab88ab88,0xbcac2922,0x1881b48b, +0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0x9c29bccc, +0xb596b596,0xa534b596,0x7bef94b2,0x1a232244,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x10831083,0x08621083,0x10830862,0x08620862,0x08411083,0x10830862,0x10821084,0x10830841,0x310941cc,0x09b10021,0x314a00b0,0x1884314a,0x00221884,0x002109b1,0x18841884,0x18840021,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x18a118a1,0x18a10840,0x188118a1,0x08400840,0x18a10840,0x084018a1,0x18a118a1,0x18a118a1, +0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bcf,0x4a69738e,0x29452945,0x5aeb39c7,0x8410ad75,0x5aeb52aa,0x4a494228,0x630c39e7,0x31863186,0x31863186,0x94b20020,0x52aa94b2,0x52aa52aa,0x318652aa,0x31863186,0x52aa52aa,0xe6f4d673,0xc5d0d693,0xded4fffa,0xef16c611,0xf737deb3,0xd672d652,0xdeb3d673,0xc611d693,0x94505248,0xa4b24a08,0x6aec9c71,0x94505269,0x52495249,0xa4904a28,0x6aecb514,0x9cd3b470, +0x6a865a45,0x39837b07,0x6aa66265,0x41846a86,0x6aa66aa6,0x31426286,0x6aa66286,0x7b076285,0x6ac76aa6,0x6aa63963,0x6a866aa6,0x6aa63963,0x6aa66aa6,0x6aa66aa6,0x39633963,0x6aa63963,0xef5def5d,0xe73ce73c,0xdefbdefb,0xd69adedb,0xdedbd6ba,0xd6bad6ba,0xd6bad6ba,0xce79d69a,0xff89ffa9,0xff28ff68,0xfec7fee7,0xf646f686,0xfe87f646,0xfe66fe66,0xfe26fe46,0xfde6fe06, +0x6efb7f1b,0x4eda5efa,0x1e782e99,0x06160637,0x06580617,0x06370637,0x06170637,0x05d605f6,0x31642923,0x39643164,0x31643164,0x31643964,0x31643164,0x31643164,0x31643164,0x31643164,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923, +0x00000000,0x00000000,0x00000000,0x7a080000,0x00005165,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x8c5173ae,0xa5144208,0x7bcf8410,0x5aeb7bef,0x5aeb5aeb,0x94927bef,0x94b28c51,0x39c739e7,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x52aa52aa,0x94b294b2,0x318652aa,0x52aa3186,0xde74e6b5,0xce52d673,0xd653de94,0xe6d4deb3,0xded4b56e,0xd693bdaf,0xcdf2e6d5,0xe6b5ce52,0x7b8d9c91,0x8bef6b0c,0x9cd36aec,0x524983ce,0xb555bdd7,0xa4d28c0f,0x6aca83ce,0x83ae7b6c, +0x62863963,0x418493a9,0x7b076aa6,0x398349e4,0x6a869388,0x39639bc9,0x7b076285,0x62863983,0xb48b49e4,0xb48bb48b,0xb48bb48b,0xac4aac4a,0xb48bb48b,0xb48bac2a,0xb48bb48b,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xdedbe71c,0xd6bad6ba,0xc638d69a,0xffeaeea8,0xffaaffca,0xffcaffaa,0xffaaffaa,0xff8aff8a,0xfea6ff08,0xf665f686,0xe5a5f645, +0x975c0637,0x7f1b8f3c,0x873c873c,0x7f1b873c,0x6f1b7f1b,0x0e583699,0x06170637,0x05730616,0x83053184,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x31848305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305, +0x00000000,0x00000000,0xc0e40000,0x98a398a3,0x98a398a3,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x7bcfbdd7,0xb5b6738e,0xb5b6ad55,0x39c75aeb,0xce59630c,0x7befa534,0x7bef9492,0x31a68c51,0x94b252aa,0x94b23186,0x52aa0020,0x318652aa,0x31863186,0x31860020,0x52aa52aa,0x94b294b2,0xe6d5fffa,0xb56ece31,0xd672d652,0xf757d672,0xf757e6b5,0xded4e6d5,0xd693e6f4,0xd653e6d5,0x9c91b554,0xb554bdb6,0x83efa4f3,0xad3594b2,0x83ce8c30,0x94309cb2,0xb4f35aaa,0x5a69b596, +0x6ac641a4,0x6aa65a45,0x7b076a86,0x6ac749e4,0x62656ac6,0x39836286,0x93a86aa6,0x39639be9,0xb48b3963,0x9c299be8,0x9c29a44a,0x9c299c29,0xa4299be9,0xa44a9c29,0xa44aa46a,0x3963b46b,0xf79ededb,0xef7df79e,0xf79ef79e,0xf79ef79e,0xef5def7d,0xe71ce71c,0xdedbdefb,0xce59dedb,0xffeceea9,0xffccffec,0xffecffec,0xffecffec,0xffabffcb,0xff07ff28,0xfec7fee7,0xedc5fea6, +0xa77d0637,0x975c975c,0xa75da75d,0x9f5ca75d,0x7f1b8f3c,0x2e9946ba,0x0e581e78,0x05940e58,0x7ae43184,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x31847ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4, +0x00000000,0x00000000,0xe082ce79,0xce79c0e4,0x98a3c0e4,0x94b298a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x72a872a8,0x72a872a8,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0xb596b596,0x39c739c7,0x39c739c7,0x7bef630c,0x31a64228,0x9cf3b596,0x7bef7bef,0x5aeb5aeb,0x318652aa,0x31863186,0x31863186,0x31863186,0x94b294b2,0x31863186,0x31863186,0x52aa3186,0xdeb4ef16,0xef36d672,0xd652ded4,0xbdafe6d4,0xdeb3c5f1,0xd652de93,0xe6d5e6b5,0xd673d652,0xa4b2b554,0x5a6a9471,0xb555b555,0x83efacf4,0x9cf3ad34,0xa51483ef,0x5289a4d2,0x8c0f83ce, +0x9bc93963,0x62863963,0x9bc96aa6,0x6aa63943,0x62853983,0x396393a9,0x62656aa6,0x9bc94184,0xb48b3963,0xbccc9c29,0xb48bbccc,0xbcccbcac,0xbcccbccc,0xbcccbccc,0x9c29bcac,0x3963b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe73cef5d,0xdedbdefb,0xce59dedb,0xffeeeeaa,0xffeeffee,0xffeeffee,0xffedffed,0xffccffcd,0xff49ff8a,0xf6a7f6e7,0xedc5f6a6, +0xaf7d0637,0xa75da75d,0xaf7da77d,0xa75daf7d,0x8f3c975c,0x56da7f1b,0x06581e78,0x05940657,0x93653184,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x31849365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365, +0x00000000,0x00000000,0xe082f945,0xe082e082,0xce79e082,0x98a398a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x936a936a,0x72a8936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb5aeb,0x7befa514,0x39c76b6d,0x84107bef,0x7bef9492,0x528a39c7,0x5aebad75,0x39c75aeb,0x52aa0020,0x52aa52aa,0x52aa3186,0x52aa52aa,0x94b294b2,0x52aa52aa,0x94b252aa,0x002094b2,0xe6d5ce32,0xcdf2e6f4,0xd673deb4,0xde93deb3,0xdeb3deb4,0xffd8de93,0xd672d672,0xbd8fd652,0xb5556aec,0x6aeab534,0x8c71730b,0x52aa73ae,0x5249a4d3,0x5249ad35,0x6aec6aea,0x94507bcf, +0x7b073983,0x62863983,0x9bc96ac7,0x9bc941a4,0x5a453943,0x39839be9,0x93a96aa6,0x9bc93963,0xb46b3963,0xbccc9c29,0xb48bb46b,0xb46bb48b,0xb48bb48b,0xbcabb48b,0xa44abccc,0x6285b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe71ce73c,0xce59defb,0xffefee8a,0xffeeffef,0xffeeffee,0xffedffee,0xffcdffed,0xffabffec,0xff28ff69,0xe5e5fee8, +0xaf7d0637,0xaf7daf7d,0xaf7daf7d,0xa77daf7d,0x9f5ca75d,0x873c9f5c,0x3eb95efa,0x05942699,0x8b043164,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x31648b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04, +0x00000000,0x00000000,0xf9450000,0xe082ffff,0xc0e4e082,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0xcccf0000,0x936acccf,0x936a936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0xa5345aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x7bef7bef,0x39c78430,0x5aeb5aeb,0x84309cd3,0x52aa52aa,0x318694b2,0x94b23186,0x318694b2,0x31860020,0x94b294b2,0x52aa94b2,0x52aa52aa,0xe6b5ded4,0xe6d5ad0d,0xef16c611,0xde74d693,0xf756f737,0xd672e715,0xd693deb3,0xdeb3d692,0xb5556acc,0x4a28b555,0x5a68ac71,0x736d630b,0x736d9451,0x94306aec,0x7bad83ef,0x62cbbdf7, +0x7b0741c4,0x6aa64184,0x93a86286,0x62653963,0x5a453983,0x41849bea,0x9bc96aa6,0x93a841a4,0xb46a6286,0xb48b9c29,0x9c29b48b,0x9c299c29,0x9c299c29,0xbcab9c29,0x9c29bccc,0x6a86b48b,0xf79ed6ba,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xce79ef5d,0xffeeee89,0xffeeffee,0xffedffed,0xffecffed,0xffecffec,0xffebffeb,0xffaaffeb,0xee06ff69, +0xa77d0637,0xaf7daf7d,0xa75da77d,0xa77da77d,0xa75da75d,0xa75d9f5c,0x873c9f5c,0x05d566fb,0x93253184,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x31649325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325, +0x00000000,0x00000000,0x00000000,0xf945f945,0xe082f945,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcccfcccf,0x936acccf,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb8c51,0xb5b6b596,0x39c78c51,0x6b4db596,0x9492bdd7,0x5aeb9492,0xc6185aeb,0x7bef7bef,0x318652aa,0x31863186,0x31863186,0x52aa3186,0x52aa0020,0x318652aa,0x31863186,0x52aa94b2,0xb54ec5d0,0xde93e6d5,0xde94de93,0xd672e6d5,0xdeb3deb3,0xef56deb3,0xe6b5deb3,0xef15c5f0,0x6aec9431,0xa514a534,0x6aec83ee,0xc5f8c5f8,0x83cf4a28,0x730bbdf7,0x9c5183ae,0x4a286b4d, +0x9be96aa6,0x628641c4,0x93a86ac6,0x6aa641a4,0x39636aa6,0x41a493a8,0x93a86aa6,0x7b0741a4,0xb48b6aa6,0xbccc9c09,0x9be9b46b,0xbcccbccc,0xbcccbccc,0xb48b9c29,0x9c09bccc,0x6aa6b48b,0xf79ed6ba,0xef7df79e,0xf79ef79e,0xf79eef7d,0xf79ef79e,0xf79ef79e,0xef7df79e,0xd69aef7d,0xffcdee89,0xffc9ffed,0xffccffcc,0xffebffcb,0xffebffeb,0xffeaffeb,0xffcaffea,0xee67ffa9, +0x975c0637,0x873ca77d,0x975c975c,0x975c975c,0x975c975c,0x9f5c9f5c,0x8f3c975c,0x0616873c,0x7ae43164,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x31647ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x21247bef,0xbdd75aeb,0x7befb596,0xb5966b6d,0x7befad55,0x4a495aeb,0x210439e7,0xb596c638,0x94b252aa,0x002094b2,0x318694b2,0x52aa52aa,0x94b252aa,0x94b294b2,0x94b294b2,0x94b294b2,0xde95e6d4,0xe6d5ef16,0xd672e6b5,0xde95eef6,0xfffaf737,0xdeb3c5d0,0xde74d673,0xdeb3d672,0x528a6b4d,0x52485248,0x94109470,0x83efad13,0x62eb9cd3,0x94116aec,0x6aecb554,0x5b0c9c71, +0x9bc96aa6,0x72c73983,0x41a493a8,0x41846aa6,0x41a46aa6,0x39639388,0x6aa66aa6,0x7b073983,0xb48b6aa6,0xbcccac8b,0x9c29b48b,0xb48bbcac,0xbcccb48b,0xb48b9c09,0x9c09bccc,0x6aa6bcab,0xf79ed6ba,0xef7df79e,0xef5df79e,0xef5def5d,0xef5def5d,0xef5def5d,0xe73cef5d,0xce79e71c,0xffcceea8,0xffc9ffec,0xff88ffed,0xff88ff88,0xff88ff88,0xff88ff88,0xff67ff88,0xee45f746, +0x975c0637,0x873ca75d,0x6efba75d,0x6efb6efb,0x6efb6efb,0x6efb6efb,0x56da6efb,0x05d63eb9,0x93653184,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x31649365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x52aa3186,0xb596ad55,0x528a5aeb,0x4a695aeb,0x8c5131a6,0x39c77bef,0xc618630c,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x00203186,0x31863186,0x31863186,0x52aa52aa,0xd693deb3,0xde93e6d5,0xd652deb3,0xffb7e6f5,0xd633deb4,0xd672d693,0xe6b5ded4,0xe6d5d672,0x6aec6aec,0xbdb6bdb6,0x8c71ad34,0x4a489c71,0xa4706aec,0x6aec8c30,0x6b4d83ef,0x736e7bf0, +0x9bc96aa6,0x6aa63983,0x39839bc9,0x41a49bc9,0x39639bc9,0x49e47b07,0x7b076286,0x6ac73983,0xb48b3963,0xcd2d9c29,0x9c29b48b,0xb48bbccc,0xbcacb48b,0xac4aa429,0x9c29bccc,0x72e7b48b,0xf79ed6ba,0xef7def7d,0xef5def5d,0xef5def5d,0xef5def5d,0xef7def5d,0xef5def7d,0xd69ae73c,0xffeceea7,0xffc9ffcb,0xff88ff88,0xff88ff88,0xff88ff88,0xffc8ffa8,0xffa8ffc8,0xee66ff87, +0x9f5c0637,0x873c8f3c,0x6efb6efb,0x6efb6efb,0x6f1b6efb,0x7f1b771b,0x771b873c,0x05f65efa,0x93043164,0xa344a344,0xa344a344,0xa363a344,0xa363a363,0xa344a344,0xa344a344,0x31649304,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x930441e5,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x292382c4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x5aeb7bef,0x39c76b4d,0x630c39c7,0x8c71630c,0x7befa514,0x7bef738e,0x52aa7bef,0x94b294b2,0x630c52aa,0x318652aa,0x94b294b2,0x52aa52aa,0x52aa52aa,0x94b294b2,0x002094b2,0xde95bdaf,0xdeb3cdf2,0xe6d4bdd0,0xd672de93,0xd693d673,0xffb9eef6,0xe6d5deb3,0xde74deb4,0xacb2a4f3,0x94517bcf,0xa4b39c51,0xb51483f0,0x736d9c91,0x4a288bef,0x8c314a28,0x6aec8c31, +0x7b076a86,0x6aa649e4,0x626593a9,0x39636a86,0x39639388,0x5a257b07,0x7b073142,0x6ac73983,0xb48b3963,0xbcac9c29,0x9c09b48b,0xbcacbcac,0xbcccbccc,0xb48b9c29,0x9c29bcab,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef5def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef5d,0xffebe688,0xffc9ffca,0xffa8ffc9,0xffc9ffc9,0xffc9ffc9,0xffe9ffc9,0xffc8ffe9,0xee66ff88, +0x975c0637,0x873c873c,0x771b873c,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06166f1b,0x93653184,0xa384abc5,0xabc5abc5,0x8b43abc5,0x8b438b43,0xabc5a363,0xabc5abc5,0x31849365,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0x72c641e6,0x72a572c6,0x72c672c6,0x94926244,0x41a373ae,0x72c672a5,0x72c672c6,0x292372c6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8430738e,0x5aeb7bef,0x8c517bcf,0x31a67bef,0xc638ad55,0x8c517bcf,0x5acb630c,0x39c72965,0x31863186,0x52aa52aa,0x318652aa,0x31863186,0x002052aa,0x52aa52aa,0x31863186,0x52aa0020,0xded4ce31,0xfffece52,0xef15d672,0xde94deb4,0xf756d693,0xc5f0deb3,0xd652ce52,0xc5f0deb3,0xbd969c92,0xa4d37b6e,0xad357bd0,0x4a288bae,0x730b4a49,0xbd968bcf,0x5aaac5f8,0x4a286b4c, +0x5a456aa6,0x62866aa6,0x6a869bc9,0x6aa66286,0x39836aa6,0x8b686aa6,0x7b073983,0x62864184,0xb48b3963,0xbccc9c09,0x9c29b48b,0xa44aa44a,0x9c299c29,0xb48b9c29,0x9c09bcab,0x6aa6b48b,0xf79ed6ba,0xef5def7d,0xef7def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd6baef7d,0xffebee88,0xff88ffea,0xffc9ff88,0xffc9ffc9,0xffcaffca,0xffc9ffc9,0xffc9ffc9,0xee87ffc9, +0x9f5c0637,0x6efb975c,0x873c6efb,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06177f1b,0x7ae43164,0xa384a363,0xa384a384,0x8b43abc5,0xa384a384,0xa384a384,0x8b438b43,0x31647ae4,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x316441c5,0x31843164,0x31843184,0xa5342923,0x292373ae,0x31843184,0x31643164,0x18e23164, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0xb596b596,0x5aeb5aeb,0x8430b596,0x39e78430,0xa5345aeb,0x9cf39cf3,0x7bef528a,0x5aebad55,0x94b252aa,0x318694b2,0x31863186,0x31863186,0x31863186,0x94b294b2,0x94b294b2,0x002094b2,0xd672e6f4,0xd672eef6,0xeef6eef6,0xeef6e6d5,0xce32e6d5,0xe6d5d672,0xc5f0d653,0xce11ded4,0xa4d26aec,0x52485248,0x5aaa9c92,0x6aec738e,0x736c94b3,0xad1462ca,0x8c309c71,0x9470a514, +0x41a46aa6,0x62866aa6,0x7b077b07,0x62866aa6,0x41a46ac7,0x9bc96aa6,0x9bc93983,0x7b073963,0xb46b49e4,0xbccc9c09,0xbcabb48b,0xb48bb48b,0xb48bb48b,0xbcabb48b,0x9c29bccc,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xf79eef7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd6baef5d,0xffeaee88,0xffeaffea,0xffe9ffc9,0xffeaffe9,0xffcbffca,0xffa8ffc9,0xffa8ffa8,0xee87ffa8, +0x975c0637,0x975c8f3c,0x975c873c,0x975c975c,0x975c975c,0x7f1b873c,0x771b7f1b,0x0617771b,0x7ae43184,0x8b438b43,0xabc58b43,0x8b43abc5,0x8b43abc5,0xa3638b43,0xa384a384,0x31849325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0xc6187ac4,0x51e28430,0x93047ae4,0x93259325,0x29239325, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x4a49738e,0x5aeb3186,0x632cbdd7,0x7bef94b2,0x5acb39c7,0x39e739c7,0xad555aeb,0x5acbb5b6,0x94b252aa,0x52aa52aa,0x002052aa,0x94b252aa,0x52aa52aa,0x31863186,0x31863186,0x52aa3186,0xd673ce31,0xdeb4de93,0xded4d652,0xce52d652,0xd672d672,0xe6f4de93,0xde93deb3,0xbdd0deb3,0x7bef8c10,0xb535bdf7,0x9c309c70,0x6aec83cf,0x8c718c51,0x734d9c91,0x734d734d,0xa4b2b534, +0x41c46ac6,0x41846265,0x7b077b07,0x6a863983,0x39639bc9,0x9bc96a86,0x9be93983,0x7b0741a4,0xb48b6aa6,0xb48ba44a,0xbcccbccc,0xbcccbccc,0xbcabbccc,0xbcabbccc,0x9c29bccc,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xf79ef79e,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef7d,0xffcaee88,0xffeaffea,0xffeaffea,0xffeaffea,0xffcbffcb,0xffc9ffc9,0xffc8ffa8,0xee66ffc8, +0x975c0637,0x8f3c975c,0x975c8f3c,0x975c9f5c,0x873c975c,0x873c873c,0x7f1b7f1b,0x05f67f1b,0x8b043164,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x31649304,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0xa34441e6,0xa363a344,0xa363a363,0xce798ac3,0x8ac3a534,0xa344a344,0xa344a344,0x2923a363, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef5acb,0x29657bef,0xb5965acb,0x8410b596,0x21243186,0x7bef8c51,0x5aeb39c7,0x84305aeb,0x002052aa,0x31863186,0x31860020,0x31863186,0x318694b2,0x52aa52aa,0x94b252aa,0x52aa52aa,0xef16e6b5,0xd673ff78,0xd693de93,0xdeb3deb3,0xe6f4deb3,0xeef6e6d5,0xce52c611,0xff78d672,0x732d8b8d,0xb5346aec,0x8c10b534,0x83efbd96,0x52486aec,0xc5f76b4d,0x83adc5f7,0x6aec6aec, +0x5a453963,0x41a46265,0x9bc96a86,0x62863983,0x39639bc9,0x7b076286,0x7b0749e4,0x9bc949e4,0xb48b3963,0x9c099c09,0x93e89c29,0x9c099c29,0x9c29a46a,0x9c299c29,0xa42a9c29,0x6aa6b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd69ae73c,0xffccee88,0xffcaffcb,0xffeaffea,0xffcaffea,0xffcbffcb,0xffc9ffca,0xff88ffa9,0xee65ff87, +0x8f3c0617,0x8f3c8f3c,0x8f3c975c,0x8f3c8f3c,0x873c873c,0x873c8f3c,0x6efb7f1b,0x05f65efa,0x93653184,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x31649365,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xabc541e6,0x8b438b43,0x8b438b43,0x82e3a384,0xabc58b04,0xa384abc5,0xabc5a363,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0xb596b596,0x7bef6b4d,0x5aeb2965,0xb596b596,0x7bef5aeb,0x7bef8c51,0x39c79492,0x9cf36b6d,0x52aa52aa,0x94b294b2,0x94b294b2,0x94b294b2,0x94b23186,0x94b294b2,0x52aa0020,0x318652aa,0xde93deb4,0xe6d6e6b5,0xd672bdb1,0xd672d652,0xe6d5c5d0,0xdeb3fffb,0xde93d672,0xef15d693,0x9c108bce,0xbd559c30,0xa4d48bf0,0x6aec9cb3,0xb555b555,0x94716b0b,0xa4d25249,0x9c51836e, +0x62853983,0x39436ac7,0x9bc93983,0x628641a4,0x39839bc9,0x9bc96a86,0x7b0749e4,0x93a849e4,0xb48b6aa6,0xb48bb46a,0xb48bb48b,0xb48bb48b,0xb46aac4a,0xb48bb48b,0xbcacbcab,0x6265b48b,0xef5dd69a,0xef5def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def7d,0xd69aef5d,0xff4ce648,0xff6bff4b,0xffabffab,0xffabffaa,0xff8bffab,0xffaaffab,0xff8affaa,0xee67ff89, +0x66fb05f6,0x6f1b66fb,0x873c873c,0x873c873c,0x7f1b7f1b,0x873c873c,0x7f1b7f1b,0x05f6771b,0x83053184,0x93049325,0x93259325,0x7ae47ae4,0x7ae47ae4,0x93257ae4,0x93257ae4,0x31648305,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xb596b596,0xa534b596,0x7bef94b2,0x5aeb630c,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x318652aa,0x31863186,0x52aa3186,0x94b294b2,0x94b20020,0x318652aa,0x31863186,0x52aa3186,0xdeb49cab,0xdeb3deb3,0xdeb3d692,0xde93d672,0xdeb4e6f4,0xd693de93,0xd672d652,0xde93ce31,0xbdf75a89,0x9c306aec,0x94119c30,0x6aec9c31,0x6aec7bef,0x9c719c71,0xa4d28c0f,0x9c30734d, +0x6aa641c4,0x9bc96aa6,0x6ac63983,0x41a493a8,0x6a866286,0x7b076286,0x7b076ac6,0x9be96aa6,0x6aa66aa6,0x6aa63963,0x62866aa6,0x39633963,0x6aa63963,0x39636aa6,0x6aa66ac7,0x6ac66aa6,0xa534ad55,0xbdd7ad75,0xd69ac638,0xd69ad6ba,0xd69ad69a,0xdedbd6ba,0xdefbdedb,0xe71cdefb,0xc423c444,0xd524cc83,0xe647ddc5,0xee67ee87,0xee27ee46,0xeea8ee88,0xeee9eec9,0xff0bf6ea, +0x042e042e,0x04f1044f,0x05f60574,0x05f60617,0x05f605f6,0x06370637,0x1e780e58,0x46ba1e78,0x31642923,0x31643164,0x31843164,0x31843184,0x31843164,0x31843184,0x31843184,0x29233184,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x94b28430,0x738e8c51,0x9cd3a534,0xbdd794b2,0xbdf78c71,0x84107bef,0x94928430,0x9cf38c51,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7, +0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6,0x8410a514,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0x84108410,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0xb596b5b6,0xb5b6ad55,0xb5b6b5b6,0xd6bab5b6,0xb5b6bdd7,0xb5b6b596,0xb5b6bdd7,0xce79b5b6, +0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x59a00000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xa514a514,0x7bcf8c51,0xad55b596,0x949294b2,0x94b27bef,0x843094b2,0x9cf3ad55,0xa5148c51,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369, +0xbcccbccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0xbcccbccc,0xb48b9c29,0xbcccbccc,0xbcccbccc,0xad55ce59,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0x51439a66,0x79e58205,0x79e579e5,0xd6ba79e5,0x79e59a66,0x79e579e5,0x79e58205,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14201300,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xad55b5b6,0x73ae73ae,0x84107bef,0xc6188410,0xc638a514,0x9cd3ad55,0x8c51a514,0xad75ad55,0x8c717bef,0x8c7173ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x73ae6b4d,0x7bef7bef,0x8c718c71,0x93697aa7,0x7aa77aa7,0x7aa772c8,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369, +0x9c29b48b,0xbccc72e7,0xbcccbccc,0x9c29bccc,0xb48bbccc,0x9c29b48b,0x9c299c29,0xb48b9c29,0xb596ce59,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0xb5968430,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0x79e59a66,0x79e579c5,0x79e579e5,0xce796184,0x79c59a66,0x79e579e5,0x79e579e5,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x91628c71,0x52aada23,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x5a261420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13000000,0x14201420,0x13001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000320,0x00000000,0x00000000, +0x94b2bdd7,0x8c518410,0x94929cd3,0x7bcf8430,0x9492632c,0x7bef8c51,0xa5349cf3,0x84307bcf,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b, +0xbcccbccc,0xbcccbccc,0x9c29bccc,0x9c29bccc,0x9c299c29,0x9c299c29,0x72e7b48b,0xbcccbccc,0xa514ce59,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa5148430,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa2679a67,0x9a66aaa7,0x9a669a66,0xce799246,0xb2c89246,0x9a669a66,0x9a669a46,0xe71c9a67, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0x52aada23,0xda23da23,0xa9a252aa,0x000052aa,0x52aa0000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x13000000,0x00001420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x14201300,0x00001300,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200320,0x03200000,0x59a00000,0x4e649325,0x00004e64,0x00000000,0x00000000, +0xad758430,0xa5148430,0x843094b2,0x8c519492,0x949294b2,0x7bcf8c71,0x7bef7bef,0x8c517bef,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7, +0x6aa672e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0xad55c618,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xad557bcf,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xb5b6b5b6,0xd6baad75,0xb5b6b5b6,0xb5b6b5b6,0xb5b6b5b6,0xdedbb596,0xbdd7b596,0xb5b6b596, +0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0x9162a9a2,0x91629162,0x91620000,0x91620000,0x52aa0000,0x00009162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x14205a26,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001420,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03204e64,0x03200320,0x03200000,0x93250320,0x000059a0,0x00000000,0x03200000, +0x9cf39cd3,0xa53494b2,0xb5b68410,0x94928c71,0x7bcfc618,0x8410a534,0x8c518c71,0x8c718430,0x7bef7bef,0x73ae8c71,0x8c7173ae,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430, +0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xb48bb48b,0x9c29b48b,0xad55ce59,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0xad558430,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0x79e58a26,0xdefb8a05,0x79e59a66,0x79e55964,0x820569a4,0xd69a79e5,0x79e59a66,0x79e58205, +0xad75ad75,0xad75ce79,0xce79ad75,0xad75ad75,0xce79ad75,0xad75ad75,0xad75ce79,0xad75ad75,0x8c71da23,0x91628c71,0x0000da23,0x00000000,0x8c710000,0x916252aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf7c00000,0xb5e0f7c0,0x8c808c80,0x0000ce80,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x59a00320,0x4e640000,0x59a00320,0x4e6459a0,0x00000320,0x03200320, +0x841094b2,0x8c71b5b6,0x9cd38c71,0x8410ad55,0x94928430,0xad559492,0xb5968c71,0x84108c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x7bef8c71,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7, +0x9c299c29,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29,0xa514ce59,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0xa5148430,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0x79e579e5,0xce7979e5,0x79e59246,0x79e579e5,0x8a268205,0xce7979c5,0x8a059a66,0x79e579e5, +0xad75ce79,0x0000ad75,0xad75ce79,0xce790000,0x0000ce79,0xce79ce79,0xad750000,0xce79ad75,0x8c71da23,0x52aa52aa,0x00000000,0x00000000,0x00000000,0x91628c71,0x52aa0000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x14203d19,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xce80ce80,0x8c80f7c0,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x93250320,0x932559a0,0x03209325,0x93259325,0x93259325,0x00004e64, +0x9cd38410,0xad55b5b6,0x8410ad75,0x9cf3ad75,0xad55b596,0x94928410,0x94928430,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x73ae8c71,0x7bef7bef,0x8c717bef,0x8c718c71,0x8c718c71,0x8c718c71,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5, +0xbcccbccc,0xbcccbccc,0x72e7bccc,0xbccc9c29,0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c29bccc,0xce79ce59,0xc618ce79,0xc638ce79,0xce59ce59,0xce79ce59,0xce79ce79,0xce79ce79,0xb596ce79,0xb5968430,0x9cf3b596,0xa514b596,0xad55ad55,0xb596ad55,0xb596b596,0xb596b596,0x9492b596,0x9a66a267,0xd69a9a66,0x9a669a46,0xb2c8a287,0x9a66a267,0xd69a9a66,0x9a669a66,0x79e5b2c8, +0xce79ce79,0x0000ce79,0xce79ce79,0xce790000,0x00000000,0xce79ce79,0xce790000,0xce79ce79,0xda23da23,0xa9a2da23,0xda23da23,0x00000000,0x52aa0000,0x52aada23,0x000052aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x3cd73ddc,0x33f333f3,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0xce800000,0x0000f7c0,0xb5e0f7c0,0x0000f7c0,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x93250000,0x93259325,0x03200320,0x59a00320,0x03200000,0x00000000, +0x84308c71,0x8c519cf3,0x7bef9492,0x8430a534,0xad7594b2,0x84108430,0xa5148c71,0xad557bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369, +0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0x8430ad55,0x84108430,0x84108410,0x84108410,0x7bcf8410,0x84108410,0x84108410,0x84308430,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0x9cf3a514,0xa514a514,0xa514a514,0x8430ad55,0xb5b6b5b6,0xb596b5b6,0xbdd7b596,0xd6bab5b6,0xb5b6b5b6,0xb5b6b596,0xb5b6b5b6,0xd6bab5b6, +0xce79ce79,0x0000ce79,0xce79ce79,0x00000000,0x0000ce79,0xce79ce79,0xce790000,0xce79ce79,0x9162a9a2,0x91629162,0x000052aa,0x00000000,0x00000000,0x916252aa,0x0000a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3d190000,0x3d193d19,0x33f33ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x00000320,0x932559a0,0x4e644e64,0x00000000,0x03204e64,0x00000320, +0x9cf37bef,0x9492a534,0x84109492,0x7bef8c51,0x84308430,0xad75b5b6,0xa5349492,0x8c7194b2,0x8c718c71,0x84107bef,0x73ae7bef,0x8c718c71,0x7bef7bef,0x7bef7bef,0x8c718c71,0x6b4d8c71,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7, +0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0xbcccbccc,0xb596ce79,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0xb5969492,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0x59649a66,0x69a48a05,0x618479e5,0xdefb79e5,0x69a4aaa7,0x71c58205,0x79e579e5,0xd69a79e5, +0xdedbce79,0x00000000,0xce790000,0xce790000,0x0000dedb,0x0000ce79,0x00000000,0xce79dedb,0x8c71da23,0x52aa52aa,0x8c71da23,0x52aa0000,0x52aa0000,0x52aa0000,0x000052aa,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x33f33ddc,0x3cd73d19,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x59a00000,0x59a09325,0x93259325,0x032059a0,0x4e640000,0x00000320, +0x9cd39cd3,0xa5347bcf,0x94b28410,0x9cd394b2,0x94b28430,0x84108c51,0x8c517bcf,0x94b28c71,0x73ae73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x6b4d7bef,0x7bef7bef,0x73ae73ae,0x7bef6b4d,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7, +0x9c299c29,0xb48b72e7,0xb48bb48b,0x9c29bccc,0xb48bb48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xa514c638,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0xa5148410,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0x79e59a66,0x79e59a66,0x79e56184,0xd69a79c5,0x79e59a66,0x79e571a4,0x79e569a4,0xd6ba79e5, +0xdedbdedb,0xce79dedb,0xdedbdedb,0xdedbdedb,0xdedbce79,0xce79dedb,0xdedbce79,0xce79dedb,0x8c71da23,0x91628c71,0x0000da23,0x91620000,0x8c7152aa,0x52aa52aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3ddc0000,0x00003ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x032059a0,0x00000320,0x93250320,0x59a09325,0x932559a0,0x00000000, +0x8410a514,0x8410ad75,0xad75ad75,0xad758c51,0x73aebdd7,0xa5348410,0x7befad55,0x8c718c51,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e59369,0x6b6d7aa7,0x93697aa7,0x7aa759e5,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5, +0x9c29bccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0x9c29bccc,0x72e79c29,0xb48bb48b,0xbcccb48b,0xb596ce59,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0xb5968430,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0x9a668a26,0x9a669a66,0x92469a66,0xd69a9a66,0xaa87aa87,0x9a66a267,0x9a669a66,0xd69a9a66, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0xa9a2da23,0xda2352aa,0xa9a252aa,0xda2352aa,0x00000000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x03209325,0x00000320,0x03200320,0x932559a0,0x03209325,0x00000000, +0x843073ae,0x94b28c51,0x9cd39492,0x7bcf7bef,0x84107bef,0x94b28c71,0x8c518c71,0x7bef8c71,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x8c717bef,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x6b6d9369,0x7aa7bc2b,0x59e59369,0xbc2b7aa7,0x93699369,0x93697aa7,0xbc2b7aa7,0x7aa79369,0x6b6d59e5,0x59e559e5,0x59e57588,0x59e559e5,0x59e55ce6,0x59e56d68,0x59e57aa7,0x7aa759e5, +0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0xb596ce59,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xbdd7bdd7,0xd6bab596,0xb5b6b5b6,0xb596b5b6,0xbdd7b5b6,0xdefbb5b6,0xb5b6b5b6,0xbdf7b596, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x9162a9a2,0x52aa9162,0x9162a9a2,0x916252aa,0x000052aa,0x91629162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x03204e64,0x4e640000,0x03204e64,0x03200000,0x00009325,0x00000000, +0xbdd7a514,0x8430b596,0x8c518c51,0x94929492,0x9cf394b2,0xad75ad55,0x73ae8430,0xb5b68410,0x6b4d7bef,0x73ae73ae,0x73ae6b4d,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x8c717bef,0x7bef7bef,0x7aa7bc2b,0x59e57aa7,0x7aa7bc2b,0x7aa77aa7,0x7aa7bc2b,0x7aa77aa7,0x59e559e5,0x7aa7bc2b,0x59e58deb,0x65279e4d,0x59e56d47,0x59e57588,0x7dea75a9,0x962c960c,0x54a559e5,0x59e56506, +0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xbcccbccc,0xb48bbccc,0xbccc72e7,0x9c29bccc,0x9cf3ce59,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x8a2679e5,0xd69a69a4,0x79e59a66,0x71a479e5,0x79e579e5,0xd69a79e5,0x92268205,0x8a2679e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x000052aa,0x52aa0000,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x4e644e64,0x00000000,0x00000000,0x03204e64,0x00000320,0x00000000, +0x8c7194b2,0x94b2a514,0x84109cd3,0x84108c51,0xad557bef,0x9492a534,0x8c718410,0x8c518430,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x93697aa7,0x7aa759e5,0x93697aa7,0x59e58430,0xbc2b7aa7,0x7aa79369,0x93697aa7,0x59e559e5,0x6d6875a9,0x858a8dcb,0x59e5858a,0x65076d47,0x960c5ce6,0x758995ec,0x6d686506,0x6d486527, +0xbcccbccc,0x72e7b48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xb48b9c29,0xb48b9c29,0x9c29bccc,0xad55ce59,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0x79e579e5,0xe71c8205,0x79e5b2c8,0x618469a4,0x71c579e5,0xd69a8205,0x79e59a66,0x79e579e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4e640000,0x00000000,0x00000000, +0x94b294b2,0x84309492,0x8c718430,0x8c717bef,0x94b29cf3,0x84308c51,0x84108c51,0x8c71738e,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x9369bc2b,0x7aa79369,0xbc2b7aa7,0x93699369,0x7aa77aa7,0x7aa759e5,0xbc2b7aa7,0xbc2b7aa7,0x75a975a9,0x65277589,0x6d686527,0x6d685ce6,0x75a97dea,0x65276d48,0x65066d47,0x6d685484, +0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bbccc,0xbccc9c29,0xbcccbccc,0xbcccbccc,0x9c29bccc,0xc638ce59,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0xad55c638,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410,0x92469a66,0xce799a66,0x9a679a66,0xa2879226,0xaaa79a66,0xd69a8a26,0xaa879a66,0x9a669a66, +0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0 }; diff --git a/src/terrain_565_2.h b/src/terrain_565_2.h new file mode 100755 index 0000000..fc474ad --- /dev/null +++ b/src/terrain_565_2.h @@ -0,0 +1,1052 @@ +/********************************************************** + * PVRTexture Tool v 3.20 + * PVRTC Library v 1.106. 0. 0 Beta + **********************************************************/ + +#ifndef A32BIT + #define A32BIT static const unsigned long +#endif + +A32BIT terrain_565_2[] = { + +/* Header */ +0x00000034, /* dwHeaderSize */ +0x00000100, /* dwHeight */ +0x00000100, /* dwWidth */ +0x00000000, /* dwMipMapCount */ +0x00010013, /* dwpfFlags */ +0x00020000, /* dwDataSize */ +0x00000010, /* dwBitCount */ +0x0000f800, /* dwRBitMask */ +0x000007e0, /* dwGBitMask */ +0x0000001f, /* dwBBitMask */ +0x00000000, /* dwAlphaBitMask */ +0x21525650, /* dwPVR */ +0x00000001, /* dwNumSurfs */ + +/* Data */ +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef9cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e739e7,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef7bef,0x9cd39cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd339e7,0x9cd39cd3,0x7bef39e7,0x9cd39cd3,0x9cd37bef,0x39e739e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x7bef7bef,0x7bef7bef, +0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0x39e79cd3,0x7bef7bef,0x39e77bef,0x39e739e7,0x9cd39cd3,0x39e739e7,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef9cd3,0x7bef7bef, +0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0x7bef39e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x7bef9cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x7bef7bef,0x7bef39e7,0x9cd37bef,0x7bef39e7,0x9cd339e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd37bef,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x9cd37bef,0x9cd339e7,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x9cd339e7,0x39e77bef,0x9cd37bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0x39e739e7,0x39e77bef,0x9cd39cd3,0x39e79cd3,0x39e77bef,0x39e79cd3,0x7bef7bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef, +0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef39e7,0x9cd37bef,0x39e739e7,0x7bef9cd3,0x9cd37bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x7bef39e7,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef7bef,0x9cd339e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3, +0x9cd37bef,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x39e77bef,0x7bef9cd3,0x9cd339e7,0x39e79cd3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef7bef,0x39e77bef,0x7bef39e7,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7, +0x39e77bef,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0x39e739e7,0x9cd39cd3,0x7bef39e7,0x9cd339e7,0x39e77bef,0x7bef39e7,0x39e77bef,0x7bef39e7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef, +0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0x9cd37bef,0x39e739e7,0x7bef7bef,0x39e79cd3,0x9cd39cd3,0x7bef7bef,0x39e77bef,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd37bef,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0x39e77bef,0x9cd37bef,0x9cd39cd3,0x7bef39e7,0x39e739e7,0x7bef9cd3,0x39e79cd3,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e77bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x39e739e7,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x39e77bef,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0x7bef7bef,0x39e79cd3,0x39e739e7,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef39e7,0x7bef7bef,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef7bef, +0x7bef7bef,0x7bef7bef,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef7bef,0x7bef7bef,0x7bef9cd3,0x7bef7bef,0x7bef39e7,0x7bef7bef,0x7bef39e7,0x7bef9cd3,0x7bef39e7,0x7bef39e7,0x7bef9cd3,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38c92,0xa534ad96,0x94f38cb2,0xb5b6adb6,0x94f39d14,0xad96a555,0x94d38cb2,0xadb6ad96,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xfaa0fd00,0xf800f800,0xf800f800,0xc800c800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5b6b5b6,0x9d149d34,0xa534adb6,0xa575a555,0xad96bdf7,0x94f394f3,0xa575a534,0x8cb294f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800,0xf800c800,0xf800faa0,0xf800c800,0xfaa0f800,0xfd00fd00,0xf800faa0,0xf800faa0,0xc800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa555a575,0xbdf7b5b6,0xa575ad96,0x9d14a534,0x9d148451,0xadb6a575,0x9d149d14,0xb5d7adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800,0xfaa0f800,0xfaa0fd00,0xfaa0faa0,0xf800faa0,0xfaa0faa0,0xfaa0f800,0xfaa0fd00,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0x84718451,0xb5b6ad96,0x84518cb2,0xad759d34,0xa575a534,0xbdf7bdf7,0x8492a555,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0,0xffe0f800,0xfaa0ffe0,0xffe0ffe0,0xf800fd00,0xf800c800,0xfaa0f800,0xffe0ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94d38cb2,0xa555a555,0x94f394f3,0xa575ad75,0x94d38cb2,0xa55594f3,0x84718471,0xa5559514,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00,0xfd00f800,0xfaa0ffe0,0xfd00faa0,0xf800faa0,0xf800f800,0xfaa0f800,0xffe0fd00,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0xa575a575,0xadb6b5f7,0xa555a575,0xad96adb6,0xa5349d14,0x9d34a555,0x9d348cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0,0xfaa0f800,0xf800faa0,0xf800f800,0xf800c800,0xfaa0faa0,0xf800faa0,0xfd00f800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d1494f3,0xad969514,0x84718451,0xa5559d14,0xa55594d3,0xbdf7bdf7,0xa5759d14,0xb5d7bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0,0xf800f800,0xfaa0f800,0xfaa0faa0,0xf800f800,0xffe0faa0,0xc800faa0,0xf800c800,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa575a575,0x94f38c92,0xa555ad96,0x94f394d3,0x9d1494f3,0x849294f3,0x9d149d34,0x8cb28cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0,0xc800c800,0xfd00faa0,0xfd00ffe0,0xf800f800,0xffe0fd00,0xc800faa0,0xfaa0f800,0xfaa0faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f394f3,0xbdf7b5d7,0xa555a575,0xad96adb6,0x94f38cb2,0xadb6a575,0xa555a555,0xad96adb6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0,0xc800c800,0xfaa0f800,0xfaa0fd00,0xc800c800,0xfaa0faa0,0xc800f800,0xfd00f800,0xfd00ffe0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xb5f7b5d7,0xa575ad96,0x9d349d34,0xa5349d14,0xb5f7ad96,0x9d14a555,0xbdf7bdf7,0xa534a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00,0xf800c800,0xf800faa0,0xf800f800,0xc800c800,0xf800f800,0xfaa0f800,0xf800f800,0xf800fd00, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x84718c92,0xadb694d3,0x845194d3,0x94f394d3,0x845194d3,0x9d1494f3,0x94f38492,0x95148cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0,0xf800f800,0xffe0fd00,0xfaa0faa0,0xf800c800,0xf800f800,0xfd00c800,0xfaa0fd00,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9d14a555,0x9d3494d3,0xa575ad75,0x84518471,0xa53494f3,0x8cb294f3,0xad75ad75,0x84718cb2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0,0xc800f800,0xfaa0f800,0xfaa0ffe0,0xfaa0faa0,0xffe0fd00,0xffe0faa0,0xfd00ffe0,0xf800faa0, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x94f39d34,0xadb6a575,0x94f39d14,0xadb69d34,0x9d1494d3,0xadb6adb6,0x94f39d34,0xad96bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800,0xf800f800,0xf800faa0,0xfaa0faa0,0xffe0fd00,0xfaa0faa0,0xfaa0faa0,0xfaa0faa0,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xadb6ad96,0x9d149d14,0xadb6b5b6,0x9d14a534,0xadb6a575,0xa575a575,0xb5d7b5b6,0xa555a575,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800,0xfd00faa0,0xfaa0ffe0,0xf800c800,0xfaa0f800,0xfaa0f800,0xfd00ffe0,0xf800c800,0xf800f800, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa5559d34,0xbdf7b5d7,0xa575ad96,0x9d149d14,0x8c928cb2,0x9d1494f3,0x8c927c51,0x9d1494f3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800,0xffe0faa0,0xfaa0ffe0,0xf800f800,0xf800c800,0xfaa0f800,0xfaa0ffe0,0xf800f800,0xc800c800, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x94f394d3,0x8cb28cb2,0xad759d34,0x94f394d3,0xa575a555,0x8cb28471,0xa534a534,0x8c928cb2,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800,0xfd00c800,0xfaa0fd00,0xc800f800,0xc800c800,0xf800f800,0xf800faa0,0xc800f800,0xc800c800, +0xdeb4e6d5,0xc5cedeb3,0xe6d5de94,0xc5cede93,0xde94deb4,0xc5cede73,0xdeb4de93,0xe6f5deb4,0x23512330,0x2bb22bf4,0x23912350,0x2c142bf4,0x23712392,0x2bf42bd3,0x23512350,0x2bf42bf4,0xebc5eb84,0xec06ec48,0xebc6eba5,0xec48ec48,0xebc6ebe6,0xec48ec07,0xebc5eba5,0xec48ec28,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xe6d4e6d4,0xef16d673,0xdeb4c5ce,0xc5ced673,0xc5cece31,0xdeb4ce31,0xeef6c5ce,0xdeb4de93,0x2c142c14,0x239223b2,0x2bb22bf4,0x2bd32bd3,0x2bf42c35,0x23712371,0x2bd32bb2,0x23502391,0xec48ec48,0xebe6ec06,0xec06ec48,0xec28ec07,0xec28ec69,0xebc5ebc5,0xec27ec06,0xeba5ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6b4e6d4,0xc5ceef16,0xde94c5ce,0xc5cede93,0xce31d672,0xde94de93,0xc5cee6d4,0xde94eef6,0x2bd32bd3,0x2c352c14,0x2bd32bf4,0x23922bb2,0x2392230f,0x2bf42bd3,0x23922392,0x2c352bf4,0xec07ec27,0xec69ec48,0xec27ec48,0xebe6ec06,0xebe6e342,0xec48ec27,0xebe6ebe6,0xec69ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xce31deb4,0xe6d5c5ce,0xce31ce31,0xd672c5ce,0xc5ced652,0xdeb3ef16,0xded4d672,0xce31c5ce,0x23712391,0x2330230f,0x2c142bf4,0x230f2330,0x2bd323b2,0x2bd32bb2,0x2c352c35,0x23302bd3,0xebc6ebc6,0xe363e342,0xec48ec48,0xe342eba4,0xec28ec06,0xec27ec06,0xec69ec69,0xeb63ec07,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef16c5ce,0xe6d4ef16,0xe6d4de93,0xc5cee6d4,0xef16d673,0xef16c5ce,0xc5cede94,0xdeb4deb4,0x23512350,0x2bb32bb3,0x23912371,0x2bd32bd3,0x23512350,0x2bd32371,0x230f230f,0x2bd32391,0xebc5eba4,0xec07ec07,0xebc6ebc6,0xec27ec28,0xebc5eba5,0xec07ebc5,0xe363e363,0xec07ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5ced652,0xd673d672,0xe6d4deb4,0xde94c5ce,0xd673deb4,0xef16c5ce,0xce31deb4,0xdeb3e6d4,0x2c142bf4,0x2bd32bd3,0x2bf42c35,0x2bd32bd3,0x2bf42c14,0x2bb22392,0x23b22bd3,0x23b22350,0xec48ec48,0xec27ec27,0xec48ec69,0xec07ec27,0xec28ec48,0xec06ebe6,0xec06ec07,0xec06eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xdeb3d673,0xd652ce31,0xdeb4de94,0xd652c5cf,0xd672e6d4,0xc5cece32,0xce31c5ee,0xd673e6d4,0x23922371,0x2bf42391,0x2330230f,0x2bb32392,0x2bd32351,0x2c352c35,0x2bd32392,0x2c352c35,0xebe6ebc5,0xec28ebc6,0xe363e342,0xec07ebe6,0xec07ebc5,0xec69ec69,0xec27ebe6,0xec69ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x536e536e,0x00000000,0x536e0000,0x0000536e,0x00000000,0x536e536e,0x00000000,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xd652d672,0xde94c5ce,0xe6d4e6d4,0xd673ce31,0xc5cede94,0xde93c5ce,0xc5ceef36,0xd672de94,0x2bd32bd3,0x23712330,0x2bd32bf4,0x23912351,0x23922371,0x23302371,0x239223b2,0x23302350,0xec27ec27,0xebc5eba4,0xec07ec48,0xebc6ebc5,0xebe6ebc5,0xeb63ebc5,0xebe6ec06,0xeba4eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xbe59d6fb,0x0000536e,0xd6fb7cb3,0x536ebe59,0x7cb30000,0xbe59d6fb,0x0000536e,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5cee6f4,0xd651eef6,0xc5cec5ce,0xd652d652,0xe6d4c5ce,0xdeb4deb4,0xe6f5deb4,0xe6f5c5ce,0x23712371,0x2c352c35,0x2bd32bd3,0x2bf42bf4,0x23712350,0x2bf42bd3,0x2bd32bd3,0x2bf42c14,0xebc6ebc6,0xec69ec69,0xec07ec27,0xec48ec48,0xebc5eba5,0xec48ec28,0xec07ec07,0xec48ec48,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7cb30000,0xd6fbffff,0x0000536e,0xffff7cb3,0x536ed6fb,0x7cb30000,0xd6fbffff,0x0000536e,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xdeb3c5ce,0xeef6de93,0xd651d673,0xe6d5c5ce,0xde93c5ce,0xd652e6d4,0xce31ce31,0xc5ceeef6,0x2c352c35,0x2bd32bf4,0x23b223b2,0x2bb22392,0x2c352bf4,0x23922bd3,0x2c352c35,0x2bb22bd3,0xec69ec69,0xec28ec28,0xec06ec06,0xec06ebe6,0xec69ec28,0xebe6ec07,0xec69ec69,0xec06ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x7cb37cb3,0x00000000,0x7cb30000,0x00007cb3,0x00000000,0x7cb37cb3,0x00000000,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xc5ced673,0xde94d673,0xd651de94,0xc5cec5ce,0xde94e6f4,0xc5cede93,0xde93d653,0xd653ce32,0x230f2330,0x2bf42371,0x230f2351,0x23712351,0x230f2351,0x23922371,0x23712330,0x23912350,0xe363eba4,0xec48ebc5,0xe342ebc5,0xebc6eba5,0xe342ebc5,0xebe6ebc6,0xebc5eb63,0xebc6eba5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xc5cede93,0xde94eef6,0xd651d673,0xef16ef16,0xce31c5ce,0xeef6ce31,0xe6d4e6d4,0xde94de93,0x23922bd3,0x23b22351,0x2bd32bd3,0x230f2330,0x2bb22371,0x23302371,0x2bd32bd3,0x23302350,0xebe6ec07,0xec06ebc5,0xec28ec28,0xe342e363,0xec06ebc5,0xeba4ebc5,0xec28ec28,0xe363eba4,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xdeb3ce31,0xeef6c5ce,0xc5ceeef6,0xdeb4de93,0xd672d651,0xc5ced693,0xe6f4eef6,0xd652de93,0x237123b2,0x2bf42bd3,0x23912392,0x2bf423b2,0x23922351,0x2bf42bf4,0x237123b2,0x2bf42c35,0xebc6ec06,0xec48ec28,0xebc6ebe6,0xec48ec06,0xebe6ebc5,0xec48ec48,0xebc6ec06,0xec48ec69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xe6b4ce31,0xc5cede93,0xd653c5ce,0xd652ce32,0xd652c5ce,0xe6f4ce32,0xef35c5ce,0xc5cee6d4,0x2bf42bf4,0x23922392,0x2bf42c14,0x23922bb2,0x2bf42bd3,0x2bd32bd3,0x2c352c14,0x2bd32bd3,0xec48ec28,0xebe6ebe6,0xec48ec48,0xebe6ec06,0xec48ec27,0xec27ec27,0xec69ec48,0xec07ec27,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xc5cee6f5,0xe6b4de94,0xd653c5ce,0xc5ced673,0xdeb4deb3,0xd673d653,0xc5ced673,0xe716c5ce,0x2bd323b2,0x2c352c35,0x2bd32bf4,0x23922392,0x23302350,0x23922371,0x23301aef,0x23922371,0xec07ec06,0xec69ec69,0xec27ec28,0xebe6ebe6,0xeb84eba5,0xebe6ebc5,0xeba4e342,0xebe6ebc6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xde94ef15,0xc5cece31,0xde94e6d5,0xc5ceef16,0xe6d4d673,0xdeb4deb4,0xdeb4c5ce,0xdeb4deb4,0x23712351,0x23502350,0x2bd323b2,0x23712351,0x2bd32bd3,0x23502330,0x2bb22bb2,0x23302350,0xebc6eba5,0xeba5eba4,0xec28ec06,0xebc5ebc5,0xec27ec07,0xeba4e363,0xec06ec06,0xeb84eba4,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xef16e717,0xdeb4ce31,0xc610c610,0xe6d5c5cf,0xde93e6d4,0xce30c5ce,0xef36eef6,0xef37c5ee,0x71767155,0x81998a19,0x79977176,0x923a8a19,0x79777998,0x8a1981b9,0x71767176,0x8a1989f9,0xb9d8b1b7,0xc279c2f9,0xba19b9d8,0xcb3ac2fa,0xb9f8ba39,0xc2f9c299,0xb9d8b9d8,0xc2fac2d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc610ce32,0xce31e6d5,0xe716de94,0xbdaeded6,0xce0fe6f6,0xe6d5ded5,0xbd8dc610,0xbdaddeb4,0x8a3a8a3a,0x79988198,0x81998a19,0x89d981b9,0x89f9927a,0x79777977,0x81d98199,0x71767997,0xc31acb1a,0xba19c259,0xc279c2fa,0xc2b9c299,0xc2d9cb5a,0xb9f8b9f8,0xc2b9c279,0xb9d8ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x3b7f3b7f, +0xe6f7e6f6,0xc5efd673,0xde94d674,0xdeb5de93,0xd694c5ce,0xd673d673,0xe6f6c5ce,0xde94ded5,0x81b981d9,0x927a923a,0x81d98a19,0x79988199,0x79986954,0x8a1981d9,0x79987998,0x925a8a19,0xc299c2b9,0xcb5acb3a,0xc2b9c2f9,0xba19c279,0xba39a196,0xc2fac2b9,0xba39ba39,0xcb5ac2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff, +0xe6f7ef16,0xce31e6d5,0xef37ef16,0xef16ef16,0xef38c5ce,0xde95eef6,0xe6f6ce31,0xe6d6e717,0x79777997,0x69556954,0x8a3a8a19,0x69547176,0x89d98198,0x81d98199,0x927a927a,0x715581b9,0xb9f8ba19,0xa9b6a196,0xcb1ac2f9,0xa196b1b7,0xc2b9ba59,0xc2b9c279,0xcb5acb5a,0xa9b7c299,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff22ff,0x22ff22ff,0x1abf1abf,0x1abf1abf, +0xef37c5ce,0xe6d5ef37,0xbdadce10,0xc5eec5ee,0xc5cede93,0xef17c5ce,0xe6d4c5ee,0xef37ef37,0x71767176,0x81998199,0x79977977,0x81d989d9,0x71767176,0x81b97977,0x69546954,0x81b97997,0xb9d8b1d8,0xc279c279,0xba19b9f8,0xc2b9c2b9,0xb9d8b9d8,0xc299b9f8,0xa9b6a9b6,0xc299ba19,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xc5efde93,0xc5efc5ef,0xce30d673,0xde93de93,0xde93e6f6,0xce10deb4,0xc5eeded5,0xc5aec5ee,0x8a198a19,0x81d981d9,0x8a19927a,0x81b981d9,0x89f98a19,0x81997998,0x819881b9,0x81987176,0xc2fac2f9,0xc2b9c2b9,0xc2facb5a,0xc299c2b9,0xc2d9c2fa,0xc279ba19,0xba59c299,0xc259b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x3b7f22ff,0x1abf3b7f,0x3b7f1abf,0x1abf22ff,0x1abf1abf, +0xe6d5d673,0xe6d5e6d5,0xc5eede93,0xdeb5eef6,0xdeb5e6d5,0xc5cdd673,0xded5e6f6,0xded5c5cf,0x79987977,0x89f97997,0x69556954,0x81997998,0x81b97176,0x927a927a,0x81d97998,0x925a927a,0xba19b9f8,0xc2d9ba19,0xa9b6a196,0xc279ba19,0xc299b9d8,0xcb5acb5a,0xc2b9ba39,0xcb3acb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f22ff,0x22ff3b7f,0x22ff22ff, +0xde94ef37,0xde94e6d5,0xc5efdeb4,0xef17ef16,0xde93de95,0xd651e6d5,0xef16f757,0xef37c5ef,0x81d981d9,0x79777175,0x81b98a19,0x79977176,0x79987977,0x71557977,0x79988198,0x71767176,0xc2b9c2b9,0xb9f8b1b7,0xc299c2f9,0xba19b9d8,0xba19b9f8,0xa9b7b9f8,0xba19ba59,0xb1b7b1b8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x22ff3b7f,0x22ff22ff,0x22ff22ff,0x1abf22ff,0x1abf1abf,0x1abf1abf,0x1abf1abf, +0xf758c5ce,0xeef6ef16,0xef37f758,0xc610ce31,0xef16ef16,0xc610f757,0xce10ce32,0xef37c5cf,0x79777977,0x927a925a,0x81b981d9,0x8a198a19,0x79777176,0x8a1989d9,0x81b981b9,0x8a198a19,0xb9f8b9f8,0xcb5acb5a,0xc299c2b9,0xc2f9c2fa,0xb9f8b9d8,0xc2fac2b9,0xc299c299,0xc2f9c2fa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff,0x22ff1abf,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x22ff1abf,0x3b7f22ff,0x22ff3b7f,0x1abf22ff, +0xce51de94,0xce31ce51,0xce31ce2f,0xe6f6ded6,0xc5eebdae,0xe6d5c610,0xd693ded5,0xc5cfdeb5,0x927a925a,0x89d989f9,0x81988198,0x81997998,0x927a89f9,0x799881b9,0x927a927a,0x819981d9,0xcb5acb5a,0xc2b9c2d9,0xba59ba59,0xc279ba39,0xcb5ac2d9,0xba19c299,0xcb5acb5a,0xc279c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f,0x22ff22ff,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff1abf,0x3b7f22ff,0x3b7f3b7f, +0xd673d694,0xdeb3d673,0xe6d5ce2f,0xef16deb4,0xc5eedeb4,0xde93e6d5,0xdeb4de93,0xc5cfdeb5,0x69547175,0x8a197977,0x69547176,0x79777176,0x69547176,0x79987977,0x79777155,0x79977176,0xa9b6b1b7,0xc2fab9d8,0xa196b9d8,0xb9f8b9d8,0xa196b9d8,0xba19b9f8,0xb9f8a9b7,0xba19b9d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf,0x22ff3b7f,0x1abf22ff,0x22ff22ff,0x22ff22ff,0x1abf3b7f,0x1abf1abf,0x3b7f1abf,0x1abf1abf, +0xde94ce30,0xd673de93,0xded4ce2f,0xe6d4e6f5,0xc5cede73,0xd673e6d5,0xe6f6deb4,0xdeb4d673,0x799881b9,0x81987176,0x89d989d9,0x69546955,0x81997977,0x71767977,0x89d989d9,0x69557176,0xba39c299,0xc259b9d8,0xc2b9c2b9,0xa196a9b6,0xc279b9f8,0xb1b7b9f8,0xc2b9c2b9,0xa9b6b1d8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x3b7f1abf,0x22ff22ff,0x1abf22ff,0x1abf22ff, +0xf778ce11,0xef36e6f6,0xf758ce2f,0xf757f757,0xe6f6ef17,0xf757bdad,0xe6f6e6f6,0xf757f757,0x79778198,0x8a1989d9,0x79977998,0x8a198198,0x79987176,0x8a198a19,0x79778198,0x8a19927a,0xb9f8c259,0xc2fac2b9,0xba19ba19,0xc2faba59,0xba19b9d8,0xc2fac2fa,0xb9f8c259,0xc2f9cb5a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f1abf,0x22ff3b7f,0x3b7f22ff,0x3b7f3b7f,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff, +0xd673c610,0xc5f0d651,0xc610ce10,0xc5f0ce31,0xc60fc610,0xc5cec5cf,0xce52ce30,0xc5cfc5f1,0x8a1989f9,0x79987998,0x8a198a3a,0x79988199,0x8a1981d9,0x81d981d9,0x925a923a,0x81b981d9,0xc2fac2d9,0xba39ba19,0xc2facb1a,0xba19c279,0xc2fac2b9,0xc2b9c2b9,0xcb5acb3a,0xc299c2b9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf,0x1abf1abf,0x22ff22ff,0x3b7f22ff,0x22ff22ff,0x22ff22ff,0x3b7f1abf,0x1abf3b7f,0x1abf1abf, +0xd674e6d5,0xde94de94,0xd674de94,0xce32d653,0xd673d673,0xde94de93,0xe6f6d673,0xe6f5e6f6,0x81b98198,0x927a925a,0x81d989f9,0x79987998,0x71557176,0x79987977,0x71756954,0x79987977,0xc299c259,0xcb5acb3a,0xc2b9c2d9,0xba19ba19,0xb1b7b9d8,0xba19b9f8,0xb1b7a195,0xba39b9f8,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf,0x22ff1abf,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x22ff22ff,0x1abf1abf, +0xef16eef6,0xe6f6ef16,0xe6d5e6b5,0xef16f757,0xf757ef16,0xef16ef16,0xf757ef16,0xef16f757,0x79777176,0x71767176,0x89d98198,0x79777176,0x81d981b9,0x71766955,0x81998199,0x71557176,0xb9f8b9d8,0xb9d8b1b8,0xc2b9ba59,0xb9f8b9d8,0xc2b9c299,0xb1d8a9b6,0xc279c279,0xb1b7b1d8,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f,0x22ff3b7f,0x1abf22ff,0x1abf1abf,0x22ff22ff,0x22ff22ff,0x22ff22ff,0x3b7f3b7f,0x3b7f3b7f, +0xe6d4ef15,0xdeb3deb4,0xe6b4de73,0xd673de94,0xdeb4d673,0xe6f5d693,0xded4de93,0xdeb4deb4,0x21712170,0x21b329d4,0x21922171,0x29d529d4,0x21922192,0x29d429b3,0x21712171,0x29d429b4,0x53f94b99,0x6c7a7cdb,0x5c1a53d9,0x851b7cdb,0x5c1a643a,0x7cdb6c9a,0x53f953d9,0x7cdb7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d4,0xe6d4de93,0xded4de94,0xce52d673,0xde93d653,0xdeb4d693,0xe6f5deb4,0xdeb4deb4,0x29d529d5,0x21922193,0x21b329d4,0x29b429b3,0x29b429d6,0x21922192,0x29b421b3,0x21712192,0x84fb851b,0x643a6c7a,0x6c7a7cdb,0x74bb6c9a,0x7cdb8d5b,0x5c1a5c1a,0x749a6c7a,0x53d95c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4e6d5,0xded5d673,0xd674de94,0xd693d653,0xd673d673,0xd673deb3,0xdeb4de94,0xe6d4deb3,0x29b329b4,0x29d629d5,0x29b429d4,0x219221b3,0x2192214f,0x29d429b4,0x21922192,0x29d529d4,0x6c9a749a,0x8d5b851b,0x749a7cdb,0x643a6c7a,0x645a3b59,0x7cdb749a,0x645a643a,0x8d3b7cdb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4deb4,0xdeb4de94,0xded4de94,0xd672deb3,0xd672ce31,0xce32d652,0xde93d652,0xde93e6d4,0x21922192,0x2150214f,0x29d529d4,0x214f2171,0x29b42193,0x29b421b3,0x29d629d6,0x217029b3,0x5c1a5c1a,0x43793b59,0x851b7cdb,0x3b584bb9,0x74bb645a,0x749a6c7a,0x8d5b8d5b,0x43996c9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4de93,0xdeb4deb4,0xde73d673,0xce32e6b4,0xd673d673,0xd673d652,0xde94deb4,0xdeb3d673,0x21712171,0x29b329b3,0x21922192,0x29b429b4,0x21712171,0x29b32192,0x21502150,0x29b32192,0x53f953d9,0x6c7a6c7a,0x5c1a5c1a,0x749a74bb,0x53f953d9,0x6c9a5c1a,0x43794379,0x6c9a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb3ce32,0xde93d693,0xe6d5d673,0xde93deb4,0xded3de93,0xce31deb3,0xef16e6d4,0xd652e6f5,0x29d529d4,0x29b429b4,0x29d429d6,0x29b329b4,0x29b429d5,0x21b32192,0x219329b3,0x21932171,0x7cfb7cdb,0x749a749a,0x7cdb8d3b,0x6c9a749a,0x7cdb7cfb,0x6c7a643a,0x645a6c9a,0x6c7a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672d652,0xd673d652,0xe6d4deb4,0xce32de93,0xd673e6d4,0xdeb4d672,0xdeb4e6f5,0xde93deb4,0x21922192,0x29b42192,0x2150214f,0x29b32192,0x29b32171,0x29d629d6,0x29b42192,0x29d529d6,0x643a5c1a,0x7cdb5c1a,0x43793b59,0x6c7a643a,0x6c9a53f9,0x8d5b8d5b,0x749a645a,0x8d3b8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xde94deb4,0xe6b4de93,0xde94deb4,0xde93de94,0xe6d4deb3,0xe6f5e6f5,0xd693e6d4,0x29b429b4,0x21922170,0x29b329d4,0x21922171,0x21922192,0x21702192,0x21922193,0x21712171,0x749a749a,0x5c1a4bb9,0x6c9a7cdb,0x5c1a53f9,0x643a5c1a,0x43995c1a,0x643a645a,0x4bb94bb9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xce52deb4,0xd673de93,0xd652d652,0xdeb4deb4,0xde94e6f4,0xdeb4de93,0xde94deb4,0x21922192,0x29d629d5,0x29b329b4,0x29d429d4,0x21922171,0x29d429b4,0x29b329b3,0x29d429d5,0x5c1a5c1a,0x8d5b8d3b,0x6c9a749a,0x7cdb7cdb,0x5c1a53d9,0x7cdb74bb,0x6c9a6c9a,0x7cdb7cfb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdeb4d673,0xd673deb4,0xd652deb3,0xe6f6d673,0xde93de94,0xde93e6d4,0xdeb4d673,0xde94de94,0x29d629d5,0x29b429b4,0x21932193,0x21b32192,0x29d629b4,0x219229b3,0x29d629d6,0x21b329b4,0x8d3b8d3b,0x74bb7cdb,0x645a645a,0x6c7a643a,0x8d3b7cdb,0x643a6c9a,0x8d5b8d5b,0x6c7a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93d652,0xce32de93,0xd673ce32,0xef36e6d5,0xd653deb4,0xd673de73,0xde93de93,0xde93de94,0x21502170,0x29d42191,0x214f2171,0x21922171,0x214f2171,0x21922192,0x21922170,0x21922171,0x43794bb9,0x7cdb53f9,0x3b5853f9,0x5c1a53d9,0x3b5853f9,0x643a5c1a,0x5c1a4399,0x5c1a53d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd672de93,0xd652deb3,0xde93d693,0xe6d4deb4,0xdeb3d652,0xd693de93,0xdeb4e6f4,0xd673deb4,0x219229b3,0x21932171,0x29b429b4,0x214f2150,0x21b32192,0x21712192,0x29b429b4,0x21502171,0x643a6c9a,0x6c7a53f9,0x74bb74bb,0x3b584379,0x6c7a5c1a,0x4bb95c1a,0x74bb74bb,0x437953d9,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde93e6d4,0xde93deb3,0xde73d673,0xe6b4de93,0xde93d672,0xdeb3d652,0xdeb4e6f4,0xd652deb4,0x21922193,0x29d429b4,0x21922192,0x29d42193,0x21922171,0x29d429d4,0x21922193,0x29d429d6,0x5c1a6c7a,0x7cdb74bb,0x5c1a643a,0x7cdb645a,0x643a53f9,0x7cdb7cdb,0x5c1a6c7a,0x7cdb8d5b,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd673deb4,0xde93deb4,0xce33ce52,0xd652ce32,0xd693d672,0xe6f4d672,0xded4e6f5,0xe6f5e6d4,0x29d429b4,0x21922192,0x29d429d5,0x219221b3,0x29d429b4,0x29b429b4,0x29d529d5,0x29b329b4,0x7cdb7cdb,0x645a643a,0x7cdb851b,0x643a6c7a,0x7cdb749a,0x749a749a,0x8d3b851b,0x6c9a749a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xde94deb4,0xde94e6b4,0xce33d673,0xce32ce32,0xde93deb3,0xe6d4d673,0xe715deb3,0xef15e715,0x29b32193,0x29d629d5,0x29b429b4,0x21922192,0x21702171,0x21922192,0x2170194f,0x21922192,0x6c9a6c7a,0x8d5b8d3b,0x749a7cdb,0x643a643a,0x4b9953d9,0x643a5c1a,0x4bb93b38,0x643a5c1a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe6d4e6d5,0xde93d673,0xde94e6d4,0xd652d673,0xdeb4deb4,0xdeb4d673,0xd693e6d4,0xef15e6f4,0x21922171,0x21712171,0x29b42193,0x21922171,0x29b429b3,0x21712150,0x21b321b3,0x21702171,0x5c1a53d9,0x53d94bb9,0x74bb645a,0x5c1a53f9,0x749a6c9a,0x53d94379,0x6c7a6c7a,0x4b9953d9,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x49634963,0x51a359c3,0x51834963,0x61c359c3,0x51835183,0x59c359a3,0x49634963,0x59c359a3,0xb523a4c2,0xc5a3d624,0xbd63ad02,0xde64d644,0xb543bd83,0xd624cdc3,0xb523ad02,0xd644d623,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae7bef,0x22712271,0x73ae2271,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x59c361c3,0x51835183,0x51a359c3,0x59a359a3,0x59a361c4,0x51835183,0x59a351a3,0x49635183,0xde64de64,0xbd63c5a3,0xc5a3d644,0xce03cdc3,0xd623de65,0xb543b543,0xcde3c5a3,0xad02bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x8c7173ae,0x11751175,0x73ae1a54,0x11b21156,0x73ae2231,0x7bef7bef,0x8c718c71,0x59a359a3,0x61c461c3,0x59a359c3,0x518351a3,0x51834142,0x59c359a3,0x51835183,0x61c359c3,0xcdc3cde3,0xde65de64,0xcde3d624,0xbd63c5a3,0xc5839c82,0xd644cde3,0xc583bd83,0xde65d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000dedb,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x117473ae,0x73ae73ae,0x1a151176,0x73ae1a54,0x227173ae,0x7bef2211,0x51835183,0x49634142,0x61c359c3,0x41424963,0x59a35183,0x59a351a3,0x61c461c4,0x496359a3,0xb543bd63,0xa4a29c82,0xde64d624,0x9c62a4e2,0xce03c5a3,0xcde3c5a3,0xde65de65,0xa4c2cdc3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef6b4d,0x11331a53,0x7bef1152,0x7bef7bef,0x8c718c71,0x7bef7bef,0x22527bef,0x6b4d32f1,0x49634963,0x59a359a3,0x51835183,0x59a359a3,0x49634963,0x59a35183,0x49424942,0x59a35183,0xb523ad02,0xcdc3cdc3,0xbd63b543,0xcde3ce03,0xb523ad02,0xcdc3b543,0x9c829c82,0xcdc3bd63,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xffff0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x73ae8c71,0x8c7119d5,0x73ae8c71,0x1a3419f6,0x8c712252,0x1a348c71,0x7bef3310,0x59c359c3,0x59a359a3,0x59c361c4,0x59a359a3,0x59a359c3,0x51a35183,0x518359a3,0x51834963,0xd644d624,0xcde3cde3,0xd644de65,0xcdc3cde3,0xd623d644,0xc5a3bd63,0xc5a3cdc3,0xc5a3ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xdedb0000,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x1a3673ae,0x1a341a35,0x2a711a15,0x1a1473ae,0x7bef2ab1,0x51835183,0x59a35183,0x49634142,0x59a35183,0x59a34963,0x61c461c4,0x59a35183,0x61c361c4,0xbd63b543,0xd623bd63,0xa4a29c82,0xcdc3bd63,0xcdc3b523,0xde65de65,0xcde3c583,0xde64de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xffff0000,0xffffdedb,0xdedb0000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xffffdedb,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22537bef,0x6b4d19f7,0x73ae8c71,0x12387bef,0x1a957bef,0x1a542a71,0x8c718c71,0x8c718c71,0x59a359a3,0x51834963,0x59a359c3,0x51834963,0x51835183,0x49635183,0x51835183,0x49634963,0xcde3cde3,0xb543a4e2,0xcdc3d624,0xbd63b523,0xbd63b543,0xa4c2b543,0xbd63c5a3,0xa4e2ace2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xef5d0000,0xffffef5d,0xef5ddedb,0xef5dffff,0x0000ffff,0x0000dedb,0xffff0000,0x00000000,0xef5d0000,0x0000ef5d,0xef5d0000,0xffff0000,0x0000dedb,0x0000dedb,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a157bef,0x73ae1256,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x51835183,0x61c461c3,0x59a359a3,0x59c359c3,0x51834963,0x59c359a3,0x59a359a3,0x59c359c3,0xb543b543,0xde65de65,0xcdc3cde3,0xd624d644,0xb543ad02,0xd644ce03,0xcdc3cdc3,0xd624d644,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x0000ef5d,0xdedbffff,0x00000000,0xef5def5d,0xef5d0000,0xffffef5d,0xffffffff,0x0000ffff,0x0000ef5d,0xdedbffff,0x00000000,0xdedbef5d,0x0000ffff,0x0000ef5d,0x0000ffff,0x0000ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c718c71,0x19f87bef,0x1ab81a36,0x1a541219,0x7bef7bef,0x22711a33,0x8c718c71,0x6b4d8c71,0x61c461c3,0x59a359a3,0x51835183,0x51a35183,0x61c459a3,0x518359a3,0x61c461c4,0x51a359a3,0xde65de65,0xce03d623,0xc5a3c5a3,0xc5a3bd83,0xde65d623,0xbd63cdc3,0xde65de65,0xc5a3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xdedbdedb,0xdedbffff,0xffffef5d,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0xdedbdedb,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae73ae,0x7bef7bef,0x1ab87bef,0x73ae1237,0x6b4d7bef,0x23161a33,0x73ae73ae,0x7bef6b4d,0x49424963,0x59c34963,0x41424963,0x51834963,0x41424963,0x51835183,0x51834963,0x51834963,0x9c82a4e2,0xd644b523,0x9c62b523,0xb543b522,0x9c62b523,0xbd63b543,0xb543a4c2,0xbd63ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x0000ffff,0xdedbffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x518359a3,0x51834963,0x59a359a3,0x41424963,0x51a35183,0x49635183,0x59a359a3,0x49634963,0xbd83cdc3,0xc5a3b523,0xce03ce03,0x9c62a4a2,0xc5a3b543,0xa4e2b543,0xce03ce03,0xa4a2ad02,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0xdedb0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x8c717bef,0x7bef7bef,0x12387bef,0x1a917bef,0x7bef1237,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x51835183,0x59c359a3,0x51835183,0x59c35183,0x51834963,0x59c359c3,0x51835183,0x59c361c4,0xb543c5a3,0xd644ce03,0xbd63bd63,0xd644c5a3,0xbd63b523,0xd644d644,0xb543c5a3,0xd624de65,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0xef5d0000,0x0000dedb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b4d7bef,0x2b731ab8,0x1a541ad8,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x1a540937,0x7bef7bef,0x59c359a3,0x51835183,0x59c361c3,0x518351a3,0x59c359a3,0x59a359a3,0x61c361c3,0x59a359a3,0xd644d623,0xc583bd63,0xd644de64,0xbd63c5a3,0xd644cde3,0xcde3cde3,0xde65de64,0xcdc3cde3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x59a35183,0x61c461c3,0x59a359a3,0x51835183,0x49634963,0x51835183,0x49634142,0x51835183,0xcdc3c5a3,0xde65de64,0xcde3d623,0xbd63bd63,0xa4c2ad02,0xbd63b543,0xa4e29c62,0xbd83b543,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x51834963,0x49634963,0x59a35183,0x51834963,0x59a359a3,0x49634963,0x51a351a3,0x49634963,0xb543b522,0xad02ace2,0xce03c5a3,0xb543b523,0xcde3cdc3,0xad02a4a2,0xc5a3c5a3,0xa4c2ad02,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x0000ef5d,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x1a5332ef,0x1ab81a53,0x1a54121a,0x22711a54,0x1a542271,0x2a712211,0x2a712a71,0x12361236,0x32223202,0x3a633a83,0x32423222,0x3aa33aa3,0x32423243,0x3a833a83,0x32223222,0x3aa33a83,0x35653525,0x3e054666,0x3da53565,0x46674666,0x35853dc5,0x46663e06,0x35653565,0x46663e66,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x220e1a72,0x1ab81ab8,0x22712271,0x22712271,0x1a540957,0x099711b2,0x22112a71,0x12362a50,0x3aa33aa3,0x32433263,0x3a633aa3,0x3a833a83,0x3a8342c3,0x32423242,0x3a833a63,0x32223242,0x46674667,0x3dc53de5,0x3e054666,0x3e463e06,0x3e664e88,0x35853585,0x3e263e05,0x35653da5,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ad0,0x22712232,0x11751175,0x09971a54,0x11b21156,0x1a322231,0x2a502a71,0x2ab12250,0x3a833a83,0x42c33aa3,0x3a833a83,0x32423a63,0x324329e2,0x3aa33a83,0x32433243,0x3ac33aa3,0x3e063e26,0x4e884667,0x3e264666,0x3dc53e05,0x3dc534e4,0x46663e26,0x3dc53dc5,0x4e674666,0xb5968430,0xb596a514,0xa5149cf3,0xd00094b2,0xb596b000,0xce79ad14,0xad55ce79,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x2a9232f1,0x19922a71,0x11741173,0x09371196,0x1a151176,0x1a531a54,0x22712a71,0x2ab12211,0x32423242,0x320229e2,0x3aa33a83,0x29e23222,0x3a833263,0x3a833a63,0x42c342c3,0x32023a83,0x35853da5,0x350534e4,0x46674666,0x2cc43545,0x3e463de5,0x3e263e05,0x4e884e88,0x35053e06,0xa5148430,0x84109492,0xa5149cf3,0xf8009492,0xb596b000,0xad149cf3,0xc638a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x22512ab1,0x11331a53,0x1a111152,0x093719b4,0x1a5411d5,0x2a712233,0x22522251,0x2ab132f1,0x32223222,0x3a633a63,0x32423242,0x3a833a83,0x32223222,0x3a833242,0x2a022a02,0x3a833242,0x35653545,0x3e063e06,0x3da53585,0x3e263e46,0x35653565,0x3e063585,0x35043504,0x3e063da5,0xad557bcf,0x84109492,0x9cf3a514,0xf8009492,0xb596d800,0x9cf3a514,0xce79a514,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b73310,0x117619b3,0x2ab219d5,0x09372274,0x1a3419f6,0x2a712252,0x1a342a71,0x32f13310,0x3aa33a83,0x3a833a83,0x3aa342c3,0x3a833a83,0x3a833aa3,0x3a633242,0x32633a83,0x32633222,0x46664666,0x3e263e26,0x46664e68,0x3e063e26,0x3e664666,0x3e053dc5,0x3de53e06,0x3de53545,0xad558430,0x9492b596,0x9cf38410,0xd0009492,0xb596b000,0xa514a514,0xad55ce79,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b719b7,0x19f819f5,0x23151a37,0x1a362274,0x1a341a35,0x2a711a15,0x1a142a71,0x19b72ab1,0x32433242,0x3a833242,0x320229e2,0x3a633243,0x3a833222,0x42c342c3,0x3a833243,0x3ac342c3,0x3dc53585,0x3e663da5,0x350534e4,0x3e063dc5,0x3e063565,0x4e884e88,0x3e263dc5,0x4e674e88,0xa5148430,0x9492a514,0xa5148410,0xd0009492,0xb596d000,0x9cf3a514,0xa514ce79,0x8430b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x225319b7,0x129819f7,0x19f51a58,0x12380937,0x1a952274,0x1a542a71,0x2ab11a33,0x19b719b7,0x3a833a83,0x32423222,0x3a833a83,0x32423222,0x32423242,0x32023242,0x32433263,0x32223222,0x3e263e26,0x35853525,0x3e064666,0x3da53565,0x3dc53585,0x35053585,0x3dc53de5,0x35453545,0xb5968430,0x9cf3b596,0x84109492,0xf8009492,0xb596a800,0xce799cf3,0xb596b596,0x9492b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9b66ac49,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac690000,0x6a239367,0x9367ac69,0x00006a23,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac680000,0x6a039367, +0x9386ac68,0x00006a03,0x00000000,0x00000000,0x00000000,0x00000000,0xac880000,0x6a049367,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a1519b7,0x1a771256,0x09371a57,0x12161a54,0x1a731a74,0x1a341237,0x2ab11a34,0x19b71152,0x32423242,0x42c33ac3,0x3a833a83,0x3a833aa3,0x32423222,0x3aa33a83,0x3a833a83,0x3a833aa3,0x35853585,0x4e884e67,0x3e063e26,0x46664666,0x35853565,0x46663e46,0x3e063e06,0x46664666,0xad558430,0xa514ad55,0x84109492,0xf8009492,0xb596d000,0xc638a514,0xa514a514,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b67acca,0x000059e2,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a239367,0x8b46b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a049367, +0x8b67b4aa,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xb4aa0000,0x6a048b67,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x19b71a57,0x19f811f9,0x1ab81a36,0x1a541219,0x2a711a92,0x22711a33,0x2ab11a53,0x19b71a53,0x42c33ac3,0x3a833a83,0x32633263,0x3a633243,0x42c33a83,0x32433a83,0x42c342c3,0x3a633a83,0x4e684e67,0x3e463e46,0x3de53de5,0x3e053dc5,0x4e683e66,0x3dc53e06,0x4e884e88,0x3e053e26,0xb5969492,0xad55ad55,0x9492ad55,0xf8009492,0xb596f800,0xad55ce79,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b06ac68,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x51e39367,0x8b45ac69,0x000059e3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac890000,0x59e39367, +0x8b46ac89,0x000051e3,0x00000000,0x00000000,0x00000000,0x00000000,0xac480000,0x51e39366,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12371a57,0x1a571236,0x1ab81a97,0x1a541237,0x2a711237,0x23161a33,0x09971a53,0x12161a53,0x2a023222,0x3aa33222,0x29e23222,0x32423222,0x29e23222,0x32423242,0x32423202,0x32423222,0x35043525,0x46663585,0x2cc43565,0x35853565,0x2cc43565,0x3dc53585,0x35853505,0x3da53565,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b26b4aa,0x6a246204,0x6a046a04,0x6a046a03,0x51e451c2,0x6a246a03,0x93a859e3,0x5a038b67,0x8b46acaa,0x6a0369e4,0x6a036a03,0x6a246a03,0x51e351e3,0x6a236a23,0x69e451c3,0x6a036a03,0x59e36224,0x6a036a03,0x6a2351c3,0x6a236a24,0x6a036a03,0x6a236a04,0x93a86203,0x51c38b67, +0x8b26b4c9,0x6a046a03,0x62046223,0x6a036a03,0x59e351e3,0x6a036a03,0x9bc859c3,0x59c38b66,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a5719f8,0x1a981236,0x12191ab8,0x1a701a16,0x1a331237,0x2a711a74,0x09972a71,0x12161a53,0x32433a83,0x32633222,0x3a833a83,0x29e23202,0x3a633242,0x32223242,0x3a833a83,0x32023222,0x3dc53e06,0x3de53565,0x3e463e46,0x2cc43505,0x3e053585,0x35453585,0x3e463e46,0x35053545,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x9366a489,0x93678b46,0x93679367,0x8b468b45,0x93469366,0x8b468346,0x93669366,0x52039387,0x9367ac69,0x93878346,0x93678b47,0x8b468b26,0x93679366,0x83268b46,0x93869347,0x8b469367,0x8b458b46,0x93669367,0x93678b87,0x8b469346,0x93468b46,0x93678b26,0x93668b66,0x59c38b66, +0x9347aca9,0x93678326,0x93669367,0x8b268b46,0x936793a7,0x8b468326,0x93669366,0x59e39387,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12361236,0x1ab81a76,0x12381a98,0x1a911a35,0x2a711237,0x09971a73,0x1a530997,0x12161a54,0x32423263,0x3aa33a83,0x32423242,0x3aa33263,0x32433222,0x3aa33aa3,0x32423263,0x3a8342c3,0x35853de5,0x46663e46,0x3da53dc5,0x46663de5,0x3dc53565,0x46664666,0x35853de5,0x46664e88,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x68006800,0x68206820,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x70006800,0x70006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68006800,0x68206800,0x68006800,0x68006800,0xbdd7b5b6,0xce59d6b9,0xb5b6ce59,0xb5b6b5d7, +0xb5d6b596,0xce39ce59,0xb5b6ce59,0xb5b6b5b6,0xbdd7b5d7,0xce59d67a,0xbdd6ce79,0xb5b7b5d7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x12981236,0x2b731ab8,0x1a541ad8,0x1a7319f3,0x1a742a71,0x09971a16,0x1a540937,0x12361236,0x3aa33a83,0x32433242,0x3aa33aa3,0x32423a63,0x3aa33a83,0x3a833a83,0x3ac33aa3,0x3a833a83,0x46663e66,0x3dc53dc5,0x46664667,0x3dc53e05,0x46663e26,0x3e263e26,0x4e674667,0x3e063e26,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88828021,0x99049904,0x99249904,0x990398e4,0x88a288a2,0x806288c2,0x80618082,0x88a288a2,0x88828041,0x99049904,0x99039104,0x98e49904,0x888288a2,0x806188a3,0x80828081,0x88a280a2,0x78828882,0xa1457000,0x88a28081,0x68008883,0xce7ab5b6,0xef5def5d,0xef3def7d,0xb5b6d679, +0xd699b5b6,0xef7eef7e,0xef7df77d,0xf75def7d,0xf77dffdf,0xf7beef9d,0xf77def9d,0xb5b6ce9a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a7619f8,0x3bd41ab8,0x121a22d7,0x1a931a15,0x1a961a94,0x09970997,0x1a331a73,0x12361236,0x3a833263,0x42c33ac3,0x3a833a83,0x32423243,0x32023222,0x32423242,0x322229e2,0x32433242,0x3e063de5,0x4e884e67,0x3e263e66,0x3dc53dc5,0x35253565,0x3dc53585,0x35252cc4,0x3dc53585,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x88c28041,0x88a28882,0x88a288a2,0x808188a2,0x80628082,0x80828042,0x88c28862,0x806288a2,0x88a28041,0x88a288c2,0x88a28882,0x808288a2,0x78a27882,0x78828082,0x88a290a3,0x808188a2,0x88a288a2,0xb1a67820,0x88a2a125,0x68008062,0xef7dbdb6,0xef7eef9d,0xef7def9d,0xb5b7ce99, +0xce79b5d7,0xef7def5d,0xffdfffdf,0xf7deffdf,0xffbfffbe,0xf77def7d,0xef5def9e,0xb5b6ce7a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x1a531ad6,0x12981a53,0x12981af8,0x22712271,0x1ab61ab4,0x2a711a54,0x22922a71,0x12362a50,0x32423222,0x32223222,0x3a833263,0x32423222,0x3a833a83,0x32223202,0x3a633a63,0x32023222,0x35853565,0x35653545,0x3e463de5,0x35853565,0x3e263e06,0x35453505,0x3e053e05,0x35253545,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x80418061,0x80408021,0x80418021,0x80828041,0x78828062,0x80618081,0x80418061,0x80627882,0x80218041,0x80217841,0x80408041,0x80828041,0x78828082,0x80828062,0x78417841,0x806280a2,0x80208061,0x80407820,0x80619965,0x68008041,0xce7ab5b6,0xce59ce99,0xbdd6b5d7,0xb596b5b7, +0xce99bd96,0xce59ce79,0xbdd6b5d7,0xbd96b596,0xce9ab5b6,0xce79ce7a,0xbdb7bdb6,0xb5d6b5b6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91448924,0xa165b185,0x99449144,0xb185b185,0x9944a165,0xb185a965,0x91449144,0xb185b185,0xd391cb0f,0xdc33e4d5,0xd3b2d371,0xe516e4d5,0xd3b2dc13,0xe4d5dc54,0xd391d371,0xe4d5dcd5,0x84108410,0x84108410,0x94927bcf,0x84108c51,0x84108410,0x84108430,0x84108410,0x84308430, +0x4a690000,0x31860000,0x4a699cd3,0x00009cd3,0x9cd34a69,0x8c510000,0x00003186,0x00008c51,0x4a693186,0x31863186,0x4a699cd3,0x31869cd3,0x9cd34a69,0x8c513186,0x31863186,0x31868c51,0x80408061,0x80418041,0x80417840,0x80418041,0x80418041,0x80218040,0x80418020,0x80418041,0x80418021,0x80217840,0x78208041,0x68007021,0xb5b6b5b7,0xa574b5b5,0xb5b6ad75,0xbdb7b5b6, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x5a246a85,0x62656265,0x41a46265,0xa5346b4d,0x00005205,0xb185b185,0x9965a165,0xa165b185,0xa965a965,0xb185b9a5,0x99449944,0xa965a165,0x91449944,0xe4f6e4f6,0xd3f2dc33,0xdc33e4d5,0xdc94dc54,0xdcd5e557,0xd3b2d3b1,0xdc74dc33,0xd371d3b2,0xad558430,0xa514ad55,0xb596a514,0xc638b596,0xc638c638,0xb596ce79,0xa514ad55,0x8430a514, +0x9cd34208,0x9cd30000,0x9cd34a69,0x42080000,0x00004a69,0x00008c51,0x9cd33186,0x9cd30000,0x9cd33186,0x9cd33186,0x9cd34a69,0x31863186,0x31864a69,0x31868c51,0x9cd33186,0x9cd33186,0x80418041,0x80417821,0x80608041,0x80828081,0x80827862,0x782180a1,0x78407820,0x80417841,0x80218021,0x98a27820,0x78218882,0x70007021,0xd679d699,0xb5b6c5f8,0xce59b5b7,0xb5d6d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x38e10000,0x38e138e1,0x38e138e1,0x000038e1,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x8b87ac4a,0xac4aac4a,0x6aa78b87,0xa5346b4d,0x00008328,0xa965a965,0xb9a5b185,0xa965b185,0x9944a165,0xa1658124,0xb185a965,0xa165a165,0xb985b185,0xdc54dc74,0xe557e516,0xdc74e4d5,0xd3d2dc33,0xdc13cacf,0xe4d5dc74,0xdc13dc13,0xe536e4d5,0xb5968430,0xb596a514,0xa5149cf3,0x400094b2,0xb5962000,0xce79ad14,0xad55ce79,0x9492b596, +0x00003186,0x00009cd3,0x00009cd3,0x4a699cd3,0x00000000,0x4a699cd3,0x42080000,0x00009cd3,0x31863186,0x31869cd3,0x31869cd3,0x4a699cd3,0x31863186,0x4a699cd3,0x31863186,0x31869cd3,0x88408021,0x888288a2,0x88a288a2,0x80627882,0x80818082,0x80627862,0x78828082,0x80828081,0x80828082,0xa9857820,0x808298e3,0x68007020,0xdefbce99,0xce79deba,0xdebbc699,0xb5b6ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x38e10000,0x924338e1,0x92439243,0x92439243,0x38e19243,0x38e138e1,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0x89248124,0xb185b185,0x81249144,0xa985a165,0xa965a165,0xb9a5b9a5,0x8924a965,0xd3b2d3b2,0xcaefcacf,0xe4f6e4d5,0xcaaed330,0xdc94dc13,0xdc74dc33,0xe557e557,0xcb0fdc54,0xa5148430,0x84109492,0xa5149cf3,0x48009492,0xb5962800,0xad149cf3,0xc638a514,0x8430a514, +0x8c514208,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd30000,0x4a690000,0x00003186,0x8c513186,0x9cd38c51,0x9cd38c51,0x9cd33186,0x9cd33186,0x9cd33186,0x4a693186,0x31863186,0x90617841,0x88a290e3,0x808288a2,0x78817862,0x80627881,0x78a27862,0x80628062,0x80618081,0x80817882,0xa9857020,0x8082a145,0x68007021,0xdebbc638,0xdefbdedb,0xce79d6ba,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x38e10000,0x924338e1,0xbae49243,0xaac4bae4,0xaac4aac4,0x9243aac4,0x92439243,0x000038e1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x91449144,0xa165a165,0x99449944,0xa965a985,0x91449144,0xa9659944,0x89248924,0xa9659944,0xd391d350,0xdc53dc53,0xd3b2d3b2,0xdc74dc94,0xd391d371,0xdc54d3b2,0xcaefcaef,0xdc54d3d2,0xad557bcf,0x84109492,0x9cf3a514,0x48009492,0xb5962800,0x9cf3a514,0xce79a514,0x7bcfb596, +0x00000000,0x00009cd3,0x4a698c51,0x9cd30000,0x00004a69,0x8c519cd3,0x4a690000,0x42080000,0x31863186,0x31869cd3,0x4a698c51,0x9cd33186,0x31863186,0x8c519cd3,0x4a693186,0x31863186,0x90818040,0x88a298c3,0x80828081,0x80618082,0x80617862,0x88828082,0x80828062,0x78627881,0x80817861,0xa9a67020,0x88a290e3,0x68007040,0xdedbc618,0xef5cdebb,0xd678defb,0xad55b596, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xbae4bae4,0xa284aac4,0xa284c618,0xa284a284,0xaac4bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41c46265,0xa5346b4d,0x00005205,0xb185b185,0xa965a965,0xb185b9a5,0xa965a965,0xb185b185,0xa1659944,0xa165a965,0xa1659144,0xe4f5e4d5,0xdc74dc74,0xe4d5e557,0xdc54dc74,0xdcd5e4f5,0xdc33d3d2,0xdc13dc54,0xdc33d350,0xad558430,0x9492b596,0x9cf38410,0x58009492,0xb5962800,0xa514a514,0xad55ce79,0x8430ad55, +0x00008c51,0x42080000,0x4a699cd3,0x00000000,0x9cd30000,0x9cd34a69,0x9cd30000,0x4a693186,0x31868c51,0x31863186,0x4a699cd3,0x31863186,0x9cd33186,0x9cd34a69,0x9cd33186,0x4a693186,0x88828041,0x90e39904,0x80a28082,0x88828082,0x88a38082,0x88a388a2,0x88a288a2,0x88a290a2,0x888288a2,0xb1e78061,0x88a39103,0x68007820,0xe6fcc618,0xef5def5d,0xdf1cef5d,0xad75c618, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xa284a284,0xce79ef5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284a284,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b878b87,0x8b878b87,0x6aa7a409,0xa5346b4d,0x00008328,0x99659944,0xb1859944,0x89248124,0xa1659965,0xa9659144,0xb9a5b9a5,0xa965a165,0xb985b9a5,0xd3f2d3b2,0xdcd5d3d2,0xcaefcacf,0xdc53d3f2,0xdc54d391,0xe557e557,0xdc74dc13,0xe536e557,0xa5148430,0x9492a514,0xa5148410,0x58009492,0xb5962800,0x9cf3a514,0xa514ce79,0x8430b596, +0x42089cd3,0x4a698c51,0x9cd30000,0x9cd30000,0x00004208,0x00009cd3,0x00004a69,0x4a699cd3,0x31869cd3,0x4a698c51,0x9cd33186,0x9cd33186,0x31863186,0x31869cd3,0x31864a69,0x4a699cd3,0x90828021,0x90c39903,0x88a288a2,0x80a388a2,0x88a288a2,0x88a288a2,0x88a18882,0x88a290c2,0x80a288a2,0xb1e78861,0x88a298c3,0x68007020,0xf77ed69a,0xef5eef7e,0xef5def5d,0xb596d679, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x924338e1,0xef5dce79,0xef5def5d,0xce79ce79,0xbdf7ce79,0xbdf7bdf7,0xa284bdf7,0x38e19243,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa965a965,0x99448924,0xa965b185,0x99449144,0x99449944,0x89249944,0x9965a165,0x91449144,0xdc74dc74,0xd3b2d310,0xdc54e4d5,0xd3b2d391,0xd3d2d3b2,0xcb0fd3b1,0xd3f2dc13,0xd330d350,0xb5968430,0x9cf3b596,0x84109492,0x50009492,0xb5962800,0xce799cf3,0xb596b596,0x9492b596, +0x9cd30000,0x9cd34a69,0x00003186,0x4a699cd3,0x00004a69,0x9cd30000,0x9cd34a69,0x9cd30000,0x9cd33186,0x9cd34a69,0x31863186,0x4a699cd3,0x31864a69,0x9cd33186,0x9cd34a69,0x9cd33186,0x90628041,0x88a39903,0x888288a3,0x90a288a2,0x88a288a2,0x88a288a2,0x88a288a2,0x888288c2,0x88a288a2,0xb1c78861,0x808290e3,0x68007021,0xf7bed6ba,0xef7ef79d,0xef5def5d,0xb576ce7a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce7938e1,0xef5def5d,0xc618ef5d,0xc618c618,0xc618c618,0xbdf7c618,0xbdf7bdf7,0x38e1bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449944,0xb9a5b985,0xa965a965,0xb185b185,0x99449144,0xb185a965,0xa965a965,0xb185b185,0xd3b2d3b2,0xe557e536,0xdc54dc74,0xe4d5e4d5,0xd3b1d371,0xe4d5dc94,0xdc54dc54,0xe4d5e4f5,0xad558430,0xa514ad55,0x84109492,0x50009492,0xb5964020,0xc638a514,0xa514a514,0x8430ad55, +0x31860000,0x00009cd3,0x9cd33186,0x9cd30000,0x00009cd3,0x00009cd3,0x00008c51,0x00009cd3,0x31863186,0x31869cd3,0x9cd33186,0x9cd33186,0x31869cd3,0x31869cd3,0x31868c51,0x31869cd3,0x90628041,0x88a29904,0x88a280a1,0x80a28082,0x88a28883,0x88a288a2,0x88a288a3,0x88a288a2,0x888388a2,0xba498861,0x80a290e3,0x68007000,0xef9dd6db,0xef7ef79e,0xef7def5d,0xb5b6ce99, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce794a49,0xc618ef5d,0xef5dc618,0xef5def5d,0xef5de8e3,0xc618ef5d,0xbdf7c618,0x4a49bdf7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x49e441a4,0x62655a24,0x62656265,0x41a45a24,0xa5346b4d,0x00005205,0xb9a5b985,0xa965a985,0xa165a165,0xa165a165,0xb9a5b185,0x9965a965,0xb9a5b9a5,0xa165a965,0xe557e536,0xdc94dcd5,0xdc13dc13,0xdc33dc13,0xe557dcd5,0xd3f2dc54,0xe557e557,0xdc33dc74,0xb5969492,0xad55ad55,0x9492ad55,0x50209492,0xb5965000,0xad55ce79,0xb596b596,0x7bcfb596, +0x9cd34208,0x8c518c51,0x00004a69,0x00009cd3,0x9cd34208,0x00004a69,0x4a698c51,0x9cd30000,0x9cd33186,0x8c518c51,0x31864a69,0x31869cd3,0x9cd33186,0x31864a69,0x4a698c51,0x9cd33186,0x90828061,0x9965b1c6,0x90c290c3,0x88a290a3,0x88818882,0x808288a2,0x88c28882,0x888288a2,0x90a288a2,0xcb0c9082,0x80819924,0x68007000,0xf77ed6ba,0xef7ef79e,0xe75eef5d,0xb5b7d67a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xef5def5d,0xef5def5d,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83686ac7,0x8b87ac4a,0x8b878b87,0x6ac76265,0xa5346b4d,0x00008328,0x89248924,0xb1859144,0x81249144,0x99449144,0x81249144,0x99449944,0x99448924,0x99449144,0xcaefd310,0xe4d5d391,0xcaaed391,0xd3b2d391,0xcaaed391,0xd3d2d3b2,0xd3b1cb0f,0xd3d2d371,0xa5148410,0xad55ad55,0x9492ad55,0x7bcf8410,0x84107bcf,0xad55c638,0xa514a514,0x84309cf3, +0x00004a69,0x4a698c51,0x00004a69,0x4a690000,0x31869cd3,0x4a699cd3,0x4a699cd3,0x00009cd3,0x31864a69,0x4a698c51,0x31864a69,0x4a693186,0x31869cd3,0x4a699cd3,0x4a699cd3,0x31869cd3,0x98e38041,0xb1a7b1e7,0x990498e4,0x90a398e3,0x88a388c3,0x80818862,0x808280c2,0x88a288a3,0x888288a1,0xc2ca9082,0x80a2a125,0x68007841,0xf7bed6bb,0xf79effbe,0xef5def5d,0xb596d69a, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5def5d,0xef5de8e3,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0xa165a965,0xa1659144,0xa965a985,0x81248924,0xa1659944,0x91449944,0xa985a985,0x89249144,0xdc13dc54,0xdc33d391,0xdc94dc94,0xcaaecaef,0xdc33d3b2,0xd330d3b1,0xdc94dc94,0xcaefd350,0xb5968430,0xa514b596,0xa514a514,0x94929492,0x94929492,0xb596b596,0xb596b596,0x7bcfb596, +0x00004a69,0x8c510000,0x00009cd3,0x4a699cd3,0x9cd38c51,0x00000000,0x9cd30000,0x00004208,0x31864a69,0x8c513186,0x31869cd3,0x4a699cd3,0x9cd38c51,0x31863186,0x9cd33186,0x31863186,0x98838040,0xa965a966,0xa1459904,0xa145a965,0xa145a965,0x99049925,0x99049904,0x99259924,0x90e39945,0xbaaa9082,0x9103b208,0x70007841,0xffffd6ba,0xffbfffff,0xf75def3d,0xa514ce39, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc6184a49,0xe8e3c618,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xc618ef5d,0x4a49c618,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x9944a165,0xb185a965,0x99449944,0xb185a165,0x99659144,0xb185b185,0x9944a165,0xb185b9a5,0xd3b2dc33,0xe4d5dc94,0xd3b2d3d2,0xe4d5dc13,0xd3f2d391,0xe4d5e4d5,0xd3b2dc33,0xe4d5e557,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514, +0x00009cd3,0x00009cd3,0x9cd30000,0x000052aa,0x00008c51,0x31864a69,0x4a699cd3,0x00009cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x318652aa,0x31868c51,0x31864a69,0x4a699cd3,0x31869cd3,0x90628041,0xa9a6a985,0xa9a6a9a6,0xb1a6a9a6,0xa986a986,0xa145a965,0xb186a966,0xb186b1a6,0xa985a986,0xc2aa90a3,0x9925b208,0x70008041,0xffdfce59,0xffdfffff,0xe73cf79e,0x9cf4bdd7, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x4a490000,0xc6184a49,0xef5dc618,0xef5de8e3,0xef5def5d,0xc618ef5d,0x4a49c618,0x00004a49,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x52050000,0x6b4da534,0x520541c4,0x62656265,0x62656265,0x41a449e4,0xa5346b4d,0x00005205,0xb185b185,0xa1659944,0xb185b185,0x9944a165,0xb185a965,0xa965a965,0xb985b185,0xa965a965,0xe4d5dcd5,0xdc13d3d2,0xe4d5e4f6,0xd3d2dc33,0xe4d5dc74,0xdc74dc74,0xe536e516,0xdc54dc74,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55, +0x9cd30000,0x42080000,0x00009cd3,0x00009cd3,0x00009cd3,0x42089cd3,0x9cd30000,0x9cd34a69,0x9cd33186,0x31863186,0x31869cd3,0x31869cd3,0x31869cd3,0x31869cd3,0x9cd33186,0x9cd34a69,0x88618041,0xb1a6a945,0xa986a986,0xb186b1c6,0xa145a986,0xa965a145,0xb1c7b1c7,0xb1e7b1c7,0xa9a6b1e7,0xba6a90c2,0xa124b208,0x68007821,0xf79ec658,0xffffffff,0xd67af79f,0xa4f3b595, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x4a490000,0xc6184a49,0xc618c618,0xc618c618,0x4a49c618,0x00004a49,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x72e65a66,0xa409a409,0xac4aac4a,0x6aa78368,0xa5346b4d,0x00008328,0xa965a165,0xb9a5b985,0xa965b185,0x99449965,0x89249144,0x99449944,0x89248124,0xa1659944,0xdc54dc33,0xe557e536,0xdc74dcd5,0xd3d2d3f2,0xcb0fd371,0xd3d2d3b1,0xd310ca8e,0xdc13d3b2,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55, +0x8c519cd3,0x4a698c51,0x9cd33186,0x31860000,0x9cd30000,0x4a698c51,0x00000000,0x8c510000,0x8c519cd3,0x4a698c51,0x9cd33186,0x31863186,0x9cd33186,0x4a698c51,0x31863186,0x8c513186,0x80418041,0x90a28882,0x90a290a2,0x98a390a2,0x88629882,0x98a38841,0xa0e3a0c3,0xa0e4a0a3,0x98c2a104,0x99248821,0x88619944,0x70208021,0xd69ac639,0xf7bee75d,0xbd96d6ba,0x9d34b555, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x4a490000,0x4a494a49,0x4a494a49,0x00004a49,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x00000000,0xa5346b4d,0x00000000,0x99449144,0x91449144,0xa985a165,0x99449144,0xa965a965,0x91448924,0xa165a165,0x89249144,0xd3b2d391,0xd371d350,0xdc94dc13,0xd3b1d391,0xdc74dc54,0xd350caef,0xdc33dc33,0xcb0fd350,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410, +0x9cd30000,0x4a690000,0x9cd30000,0x00004a69,0x00009cd3,0x4a699cd3,0x9cd30000,0x9cd30000,0x9cd33186,0x4a693186,0x9cd33186,0x31864a69,0x31869cd3,0x4a699cd3,0x9cd33186,0x9cd33186,0x80418041,0x88618061,0x80418021,0x90618861,0x80418881,0x80418021,0x88618041,0x80618862,0x78408041,0x90e48040,0x88a290e3,0x70008041,0xad75b595,0xce38be17,0x9d13b596,0xb5959cf3, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x6b4da534,0x00000000,0x00000000,0x00000000,0x41a449e4,0xa5346b4d,0x00008328,0x10821082,0x18c320e3,0x18a21082,0x20e320e3,0x18a218a2,0x20e318c3,0x10821082,0x20e320e3,0x39e739c7,0x42084a49,0x39e739e7,0x4a494a49,0x39e74208,0x4a494228,0x39e739e7,0x4a494228,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0x28e128c1,0x10403922,0x28e128c0,0x104028e1,0x310128e1,0x082028e1,0x28e128e1,0x392228c1,0xef5cef3c,0x39e7ef5c,0xdefadefa,0xef5ce6fb,0xef7def5c,0xe6fad69a,0xffffdeba,0xf77cffff,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x00000000,0x62650000,0x62656265,0x6aa78b87,0xa5346b4d,0x83285205,0x20e320e3,0x18a218a2,0x18c320e3,0x18c318c3,0x20e32104,0x10821082,0x18c318c3,0x108218a2,0x4a494a49,0x42084208,0x42084a49,0x42284228,0x42284a69,0x39e739e7,0x42284208,0x39e739e7,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x28e11020,0x104049a3,0x39223101,0x10401880,0x28e14982,0x102051a3,0x392228c1,0x28e11040,0x39e718c3,0xef5c31e7,0xffffef5c,0xffffffff,0xdefaef3c,0x39e739c7,0xdefbbd96,0x18a31903,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483, +0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483a2c1,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x6b4da534,0x5a2441a4,0x83286265,0x8b878b87,0x00000000,0x6b4d41a4,0xa534a534,0x18c318c3,0x210420e3,0x18c320e3,0x18a218c3,0x18a21061,0x20e318c3,0x18a218a2,0x210420e3,0x42284228,0x4a694a49,0x42284a49,0x42084208,0x420831a6,0x4a494228,0x42084208,0x4a494a49,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0x31011040,0x310128c1,0x392228e1,0x31011880,0x28c13101,0x104028e1,0x498230e1,0x102051c3,0xdeda39e7,0xef9bd6fa,0xef5bef5c,0xb595e77d,0xef7cdeda,0xef3cef3c,0x39c841c7,0x18c218e3,0xa2c1a2c1,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xe483a2c1,0xa2c14080,0xe483a2c1,0x4080e483,0xe529a2c1,0xa2c1a2c1, +0xa2c1a2c1,0x4800a2c1,0xe483e4c2,0xe4c2cea8,0xe483a2c1,0xc667f6e6,0xe529a2c1,0xa2c1a2c1,0xdefb0000,0xe8e3ef5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0x6b4da534,0x83685a66,0x00008b87,0x00000000,0x62650000,0x6aa76265,0x6b4d6b4d,0x18a218a2,0x10611061,0x20e320e3,0x10611082,0x18c318a2,0x18c318c3,0x21042104,0x106118c3,0x39e739e7,0x39c731a6,0x4a494a49,0x31a639c7,0x42284208,0x42284208,0x4a694a69,0x39c74228,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51a31020,0x28e11020,0x51a33101,0x30e10820,0x28c11040,0x104049a3,0x28c030e1,0x51a31040,0xffffe75d,0xef5dffff,0xdedad6da,0xef5cd71a,0xe75bef5c,0xef3cef5d,0xef5cef3c,0x420739e7,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483e483,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x2800a2c1,0xa2c14080,0x40804080,0x4080a2c1,0x40804080,0x4080a2c1,0xa2c14080, +0xa2c1a2c1,0x4800e4c2,0xe4c2c647,0xd728cee8,0xd728e4c2,0xcea8cee8,0xbde7a2c1,0xeda2bd86,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xe8e3e8e3,0xdefbdefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xa284bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x83280000,0xa5345205,0x00006b4d,0x00000000,0x00000000,0x83286265,0x00008b87,0x6aa741a4,0x10821082,0x18c318c3,0x18a218a2,0x18c318c3,0x10821082,0x18c31082,0x10611061,0x18c318a2,0x39e739c7,0x42284228,0x39e739e7,0x42284228,0x39e739e7,0x422839e7,0x31a631a6,0x422839e7,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0x39221040,0x28e11040,0x51a33102,0x51a31040,0x28c10820,0x104051c3,0x49a33101,0x51c31040,0xef5cef5c,0xe77ce73c,0xbdb6ef5c,0xb5d6b5d6,0xef5cef5c,0xdefad71a,0xb596b5d6,0xdefbdeda,0xa2c1a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xe483d3e2,0xe529a2c1,0xa2c1e483,0xa2c1a2c1,0x40802800,0x40804080,0x40804080,0x40804080,0x40804080,0x40804080,0xa2c14080, +0xa2c1a2c1,0xc6074800,0xcec8c667,0xdf68d728,0xdf68df89,0xcec8d728,0xc607c667,0xeda2bda6,0xdefb0000,0xdefbef5d,0xef5ddefb,0xef5def5d,0xe8e3e9a6,0xef5ddefb,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0xa5340000,0x00006b4d,0x00000000,0x62650000,0x8b878328,0x00000000,0x83685a24,0x20e320e3,0x18c318c3,0x20e32104,0x18c318c3,0x20e320e3,0x18c318a2,0x18a218c3,0x18a21082,0x4a494a49,0x42284228,0x4a494a69,0x42284228,0x42284a49,0x42084208,0x42084228,0x420839c7,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0x39221060,0x30e11040,0x49a328e1,0x28c01020,0x28c11040,0x104051c3,0x51c330e1,0x49a31040,0xef9cb5d6,0xdedadeb9,0xb5b6deda,0xef7cef7c,0xef5bef7c,0xffffffff,0xe71cef5c,0xef5dffff,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x28002800,0x28002800,0x28004080,0x40802800,0x28002800,0x28004080,0xa2c1a2c1, +0xf7c5a2c1,0x48004800,0x48004800,0x4800d728,0xdf894800,0x48004800,0x4800ce67,0xa2c1eda2,0xdefb0000,0xdefbef5d,0xef5def5d,0xdefbd6ba,0xef5def5d,0xef5def5d,0xef5ddefb,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x00000000,0x83286265,0x00008328,0x62650000,0x00008328,0x18a21082,0x20e318a2,0x10611061,0x18c318a2,0x18c31082,0x21042104,0x18c318a2,0x21042104,0x420839e7,0x422839e7,0x39c731a6,0x42284208,0x422839e7,0x4a694a69,0x42284208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0x51c328e1,0x28e11860,0x49823101,0x30e11040,0x102030e1,0x104049a3,0x49a33101,0x39221040,0xe73cef7b,0xe75cef5c,0xdedadeda,0xdedab5d6,0xded9b5d6,0xef5cd6da,0xef7bef9d,0xef3cf75d,0xd3e2a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x2800a2c1,0xa2c1a2c1,0xa2c12800,0x2800a2c1,0x2800a2c1,0xa2c1d3e2, +0xf684a2c1,0x4800eda2,0x4800eda2,0xeda2eda2,0xeda24800,0x4800eda2,0x4800eda2,0xa2c1f7c5,0xdefb0000,0xdefbef5d,0xef5de8e3,0xef5def5d,0xdefbef5d,0xe8e3ef5d,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4a284,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x6b4da534,0x62650000,0x8b878368,0x00000000,0x62650000,0x00008328,0x18c318c3,0x10821082,0x18c320e3,0x18a21082,0x18a21082,0x10611082,0x18a218a2,0x10821082,0x42284228,0x39e739c7,0x42284a49,0x39e739e7,0x420839e7,0x39c739e7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000, +0x51a328e1,0x31021040,0x10404982,0x104028e1,0x104028e1,0x10404982,0x31013101,0x39221040,0xdefade9a,0xffffde9a,0xef7cffff,0xfffff75c,0xef7ceefb,0xef1cf77c,0xef9ce75c,0xdefad6da,0xe483a2c1,0xe483e483,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483a2c1,0xe483e483,0xa2c1a2c1,0xd3e2a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2, +0xe483a2c1,0xffe7f6e6,0xeda2e4c2,0xd3e2e4c2,0xe4c2eda2,0xeda2e4c2,0xeda2e4c2,0xa2c1f684,0xdefb0000,0xdefbef5d,0xdefbef5d,0xe8e3ef5d,0xdefbe8e3,0xe9a6defb,0xef5de8e3,0x0000defb,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa2840000,0xbae4bae4,0xbae4a284,0xbae4a284,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0xa5340000,0x5a666b4d,0x00008b87,0x00000000,0x62650000,0x00008b87,0x18a218a2,0x21042104,0x18c318c3,0x20e320e3,0x10821082,0x20e318c3,0x18c318c3,0x20e320e3,0x39e739e7,0x4a694a49,0x42284228,0x4a494a49,0x39e739e7,0x4a494228,0x42284228,0x4a494a49,0x00000000,0x00000000,0x00000000,0x48000000,0x00002800,0x00000000,0x00000000,0x00000000, +0x51a33101,0x31011040,0x104051c3,0x104051a3,0x102051a3,0x18803922,0x392228e1,0x31011040,0xbd96e75c,0xef5bffff,0xdefaef3c,0xe75cdeda,0xbdd6ffff,0xef7ce75c,0xdedaffff,0xd6bbdefa,0xe483a2c1,0xe483e483,0xe483a2c1,0xe483e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1a2c1,0xe483a2c1,0xa2c1e483,0x40804080,0xa2c1a2c1,0xa2c1a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe483a2c1,0xa2c1e483,0xc667c607,0xe4c2a2c1,0xa2c1e4c2,0xc667cea8,0xbdc6c607,0xa2c1a2c1,0xdefb0000,0xef5de8e3,0xdefbef5d,0xe9a6ef5d,0xd6bae8e3,0xef5ddefb,0xef5def5d,0x0000defb,0x92430000,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x92439243,0x00009243,0x92430000,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x52050000,0x6b4da534,0x00000000,0x00000000,0x83286265,0x00000000,0x21042104,0x18c320e3,0x18a218a2,0x18c318a2,0x210420e3,0x18a218c3,0x21042104,0x18c318c3,0x4a694a49,0x42284228,0x42084208,0x42084208,0x4a694228,0x42084228,0x4a694a69,0x42084228,0x00000000,0x00000000,0x00000000,0x50000000,0x00004800,0x00000000,0x00000000,0x00000000, +0x392228e1,0x31011880,0x28c049a3,0x104028e1,0x10404982,0x20a03922,0x39220820,0x31011040,0xe6d939e7,0xe73cdeb9,0xbdd6ef5c,0xdebaef3b,0xdedad6fa,0xef3cef5c,0xef3cb596,0xef5cef3c,0xe529a2c1,0xe483e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1a2c1,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0x40804080,0xa2c1a2c1, +0xe529a2c1,0x4800a2c1,0xc607bdc7,0xa2c1c647,0x4800eda2,0xc607c647,0xbd86bdc7,0xa2c1eda2,0xdefb0000,0xef5def5d,0xd6baef5d,0xef5def5d,0xef5def5d,0xef5de8e3,0xef5ddefb,0x0000defb,0x92430000,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x00009243,0x92430000,0x81208120,0x81208120,0x71008120,0x81208120,0x81208120,0x81207100,0x00009243, +0xa2840000,0xbae4bae4,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x83280000,0xa5345205,0x6b4d6b4d,0x00000000,0x8b8749e4,0x00000000,0x10611082,0x20e31082,0x10611082,0x18a21082,0x10611082,0x18a218a2,0x10821061,0x18a21082,0x31a639c7,0x4a4939e7,0x31a639e7,0x39e739e7,0x31a639e7,0x420839e7,0x39e739c7,0x39e739e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c13101,0x28e13101,0x28e151a3,0x30e128e1,0x10403101,0x498228e1,0x39221040,0x28e11040,0x420739c7,0xffffef7c,0xf75cffff,0xffffef5c,0xef5cffff,0xffffffff,0x39c7ef5c,0x18e218c3,0xe529a2c1,0xd3e2e483,0xe529a2c1,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe529a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c14080,0xa2c1d3e2, +0xe529a2c1,0x4800a2c1,0xbdc6bd86,0xa2c1bde7,0x4800eda2,0xbdc6bde7,0xeda2bd86,0xa2c1f684,0xdefb0000,0xe8e3ef5d,0xef5de8e3,0xef5def5d,0xef5dd6ba,0xdefbef5d,0xef5def5d,0x0000defb,0x92430000,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0xbae4aac4,0xaac4bae4,0x00009243,0x92430000,0x81207900,0x79008120,0x81207900,0x79008120,0x81207900,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xa284bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x5a6641a4,0x00000000,0x18a218c3,0x18a21082,0x18c318c3,0x10611061,0x18c31082,0x10821082,0x18c318c3,0x10611082,0x42084228,0x420839e7,0x42284228,0x31a639c7,0x420839e7,0x39c739e7,0x42284228,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x104030e1,0x28e13101,0x39223922,0x28e13101,0x10403101,0x51a330e1,0x51a31040,0x39221040,0xef5cef3c,0xb5b6b5b6,0x39c6df1a,0x20c439c7,0xe75c39e7,0xd6fadeda,0xe6badeda,0xdeba41e7,0xd3e2a2c1,0xd3e2e483,0xe529a2c1,0xe483d3e2,0xe483a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0x2800a2c1,0x40804080,0xa2c14080,0x2800a2c1,0x40804080,0xa2c12800,0xa2c1d3e2, +0xd3e2a2c1,0x4800eda2,0xb566b546,0xeda2bd86,0x4800eda2,0xb566bd86,0xeda24800,0xa2c1d3e2,0xdefb0000,0xe9a6ef5d,0xef5de8e3,0xef5def5d,0xe8e3ef5d,0xef5dd6ba,0xef5def5d,0x0000defb,0x92430000,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0xa284a284,0xa284aac4,0x00009243,0x92430000,0x79007900,0x71007900,0x60a060a0,0x60a060a0,0x710060a0,0x79007900,0x00009243, +0xa2840000,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xa534a534,0x6b4d6b4d,0x6b4d6b4d,0x18a218a2,0x20e318c3,0x18a218a2,0x20e318a2,0x18a21082,0x20e320e3,0x18a218a2,0x20e32104,0x39e74208,0x4a494228,0x39e74208,0x4a494208,0x420839e7,0x4a494a49,0x39e74208,0x4a494a69,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x10603101,0x104028c1,0x39223922,0x28e11040,0x104051a3,0x51a328e1,0x51c31040,0x39221040,0xffffef5c,0xb5d6e77c,0x10c241e7,0x39a720c4,0xf75cef3c,0xef9cef3c,0xef7cef7c,0xef5cdeda,0xd3e2a2c1,0xd3e2e483,0xe483a2c1,0xe529d3e2,0xe529a2c1,0xa2c1e483,0xe483e529,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e483,0x40802800,0xe5292800,0x2800a2c1,0x28002800,0xe483a2c1,0xa2c1d3e2, +0xd3e2a2c1,0xe4c2f6e6,0xb5064800,0xfff24800,0x4800eda2,0x48004800,0xf6e6eda2,0xa2c1d3e2,0xdefb0000,0xdefbef5d,0xd6badefb,0xdefbdefb,0xdefbdefb,0xdefbef5d,0xef5ddefb,0x0000defb,0xc6180000,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0xa284c618,0xc618a284,0x0000c618,0x92430000,0x60a060a0,0x60a060a0,0x79008120,0x81208120,0x60a060a0,0x60a060a0,0x00009243, +0xa2840000,0xbae4bae4,0xbae4a284,0xa284bae4,0xbae4bae4,0xbae4a284,0xbae4bae4,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x52050000,0xa534a534,0xa534a534,0x20e320e3,0x18a218a2,0x20e320e3,0x18a218c3,0x20e318c3,0x18c318c3,0x210420e3,0x18c318c3,0x4a494228,0x42084208,0x4a494a49,0x42084208,0x4a494228,0x42284228,0x4a494a49,0x42284228,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11020,0x104028c0,0x51a328e1,0x28e11040,0x104051a3,0x392228e1,0x39221880,0x51a31880,0xef9cd6db,0xef7ce73c,0xe6daef5c,0xdebaef7c,0xdebbdeda,0xb5b6e77c,0xe75cef5c,0xdedadeba,0xd3e2a2c1,0xa2c1e483,0xe483a2c1,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e483,0xd3e2a2c1,0xa2c1e483,0x28002800,0xe483e483,0xe529a2c1,0xa2c12800,0xe483e483,0xa2c1e483, +0xd3e2a2c1,0xeda2e483,0x48004800,0xf6e6ffe7,0xfff2e4c2,0xeda24800,0xe483f6e6,0xa2c1e483,0xdefb0000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5de8e3,0x0000defb,0xc6180000,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0xc618ef5d,0xdefbc618,0x0000c618,0x92430000,0x81207900,0x79008120,0x81207900,0x79007900,0x81208120,0x79008120,0x00009243, +0xa2840000,0xa284bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4bae4,0xbae4a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x83280000,0x00008b87,0x00000000,0x18c318a2,0x21042104,0x18c320e3,0x18a218a2,0x10821082,0x18a21082,0x10821061,0x18a218a2,0x42284208,0x4a694a49,0x42284228,0x42084208,0x39c739e7,0x420839e7,0x39c731a6,0x420839e7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28c11040,0x08203102,0x51a31040,0x28e11040,0x104051a3,0x51a328e1,0x39221880,0x49a31880,0xe75cf77c,0xdebadeda,0xe77cde9a,0xef1ce75c,0xef7be77c,0xef7ce75c,0xef5cef7b,0xef5cf75b,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483,0xe529a2c1,0xa2c1e483,0xe483d3e2,0xd3e2e483,0xe483a2c1,0xa2c1e483,0xe483d3e2,0xa2c1e483, +0xe529a2c1,0xe4c2e483,0xffe7f7c5,0xd3e2f6e6,0xf6e6a2c1,0xe4c2ffe7,0xe483d3e2,0xa2c1e483,0xd6ba0000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000d6ba,0xc6180000,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0xef5def5d,0x0000c618,0x92430000,0xef5d7900,0x79007900,0x79007900,0x79007900,0x79007900,0x79007900,0x00009243, +0xa2840000,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0xa284a284,0x0000a284,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18a21082,0x10821082,0x18c318a2,0x10821082,0x18c318c3,0x10821061,0x18c318c3,0x10821082,0x39e739e7,0x39e739c7,0x42284208,0x39e739e7,0x42284228,0x39c739c7,0x42084208,0x39c739c7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x28e11860,0x51c33101,0x31011040,0x104049a3,0x28e128e1,0x392228e1,0x39223101,0x51c328e1,0xef7bb5b6,0xef7cef5c,0xbdd6ef7c,0xdefaef5c,0xe75ce6da,0xffffffff,0xef3cffff,0xb5b5ef7c,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xa2c1a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1, +0xa2c1a2c1,0xa2c1d3e2,0xf684e4c2,0xa2c1d3e2,0xd3e2a2c1,0xa2c1e4c2,0xd3e2d3e2,0xa2c1a2c1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc6180000,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0xdefbdefb,0x0000c618,0xc6180000,0xdefbdefb,0xdefbdefb,0x7900defb,0x60a060a0,0xdefbdefb,0xdefbdefb,0x0000c618, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x93a80000,0x00006286,0x00000000,0x00000000,0x00000000,0x51e37ac5,0x59e351e3,0x51c351c3,0x51c359e3,0x51e351e3,0x51c351e3,0x51c349a3,0x51e351c3,0x7bcf8430,0x73ae73ae,0x73ae738e,0x73ae73ae,0x73ae73ae,0x738e73ae,0x738e738e,0x738e738e,0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xd3e2a2c1,0xd3e2a2c1,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0xd3e2d3e2,0xa2c1a2c1,0x69a669c7,0x38e34820,0x184158e2,0x38412882,0xab8ba2cb,0x92884924,0x38e338c3,0x514538e3, +0x5a27836b,0x72c96a88,0x7b2b5a27,0x392349a5,0x31023923,0x49c65a27,0x31023102,0x8b8c834b,0x49c27369,0x49c249c2,0x49c249c2,0x73697369,0x73697369,0x49c27369,0x49c249c2,0x49c249c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x93678b46,0x8b469367,0x93679367,0x8b468b46,0x93679367,0x72249367,0x94b294b2,0x94b294b2,0x94b29492,0x94929492,0x949294b2,0x94929492,0x94929492,0x73ae9492,0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xd3e2e483,0xe483a2c1,0xa2c1d3e2,0xe483d3e2,0xa2c1e483,0xe483d3e2,0xa2c1e483,0x92aa69a6,0xab2c2041,0x69c75820,0x38415820,0x38414924,0x6841ab8b,0x8a4992cb,0x30c328a2, +0x5a4751e6,0x3102836b,0x41a549e6,0x31238b8c,0x7b0a4184,0x5a275a47,0x41644164,0x7b2a49c5,0x7ac57369,0xc4687ac5,0x7ac57ac5,0x736949c2,0x49c249c2,0x7ac57369,0x7ac57ac5,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x8b46aca9,0xa4497ac5,0xa449a449,0xa408a449,0xa4489367,0xa408a448,0xa408a408,0x72248b46,0x949294b2,0x9cf38c71,0x9cd39cf3,0x9cd39cd3,0x9cd394b2,0x9cd39cd3,0x9cd39cd3,0x73ae9492,0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e529,0xd3e2a2c1,0xa2c1d3e2,0xe483e529,0xa2c1d3e2,0xe483e483,0xd3e2a2c1,0x8269cbcf,0xcbae6186,0xaaeb7861,0x184159a6,0x988261c7,0x5820b34d,0x58209aeb,0x30c37a08, +0x8b8c4164,0x31236247,0x31023102,0x416472c9,0x7b2a5a27,0x41a5834b,0x418449a5,0x41844184,0xfdeb7369,0xffffc468,0x49c2feb3,0x49c27369,0x49c2c468,0xfdeb7369,0xffffc468,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x936782c5,0x8b469367,0xa4089367,0x8b467a84,0x8b468b46,0x93878b46,0x72249367,0x949294b2,0x94b28c71,0x949294b2,0x9cd394b2,0x94b28c71,0x94929492,0x94b294b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2d3e2,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xe483e529,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xa2cbc38e,0x30c32882,0x18412882,0x582061c7,0x18414124,0x7041c38e,0x71e78a69,0x59a68a87, +0x72c93102,0x72c93102,0x62683103,0x41846247,0x5a274184,0x6ac949a5,0x5a476267,0x51e649c5,0x73697369,0xc468fdeb,0x736949c2,0x7ac549c2,0x7369ffff,0x736949c2,0xc468fdeb,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x6ac70000,0x00003963,0x00000000,0x00000000,0x00000000,0x72a56b6d,0x7ac56244,0x72a572a5,0x938772a5,0x7ac56244,0x7ac57ac5,0x936672a5,0x51e372a5,0x94928410,0x94928c51,0x8c719492,0x94b28c71,0x94928c51,0x8c718c71,0x94b28c71,0x7bcf8c71,0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xe483d3e2,0xa2c1e483,0xa2c1e483,0xd3e2e483,0xe483d3e2,0xd3e2a2c1,0xa2c1e483,0x384159a6,0x8269ab2c,0x18416186,0x58208a69,0x71e79aeb,0x30412882,0x4924bb6d,0x30c33841, +0x62685206,0x7b2a3943,0x31026268,0x49c56247,0x39436268,0x6aa993cd,0x6aa96247,0x49a58bac,0x49c27369,0x7ac57369,0x736949c2,0xfdebfdeb,0x49c27369,0x49c27ac5,0x7ac57369,0x73697369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b4631a6,0x8b4682a5,0x93679367,0xa4088b46,0x8b467a84,0x8b468b46,0xa4488b46,0x6a038b46,0x9cd34a69,0x9cd394b2,0x9cd39cf3,0x9cf39cd3,0x94b28c71,0x94b294b2,0x9cf394b2,0x7bef94b2,0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0xa2c1e529,0xa2c1e483,0xd3e2e529,0xe483a2c1,0xd3e2e529,0x78614924,0x8a69ab4a,0x104171e7,0x6841a2cb,0x71e78a69,0x18417a08,0x492461a6,0x79e77041, +0x41844184,0x72e96aa9,0x31023102,0x418472e9,0x6aa949a5,0x5a476aa9,0x31026268,0x6aa93102,0x7ac57ac5,0x736949c2,0x73697369,0x73697369,0x7ac549c2,0x7ac5c468,0x736949c2,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x7a847a84,0x82c57a84,0x8b4682a5,0x7a847a84,0x62447a84,0x8b4682c5,0x6a038b46,0x9cf3a514,0x94b294b2,0x94b294b2,0x9cd394b2,0x8c719492,0x8c518c71,0x94b29492,0x841094b2,0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xe483e483,0xe483e483,0x3960a2c1,0xa2c1a2c1,0xa2c1e483,0xd3e2e483,0xd3e2d3e2,0x49247a08,0x8061c38e,0x30e36020,0x4020a2cb,0x8228e550,0x59a6bc0c,0xd3ef5145,0x58205820, +0x52064164,0x624751c5,0x834b7b0a,0x39237b2a,0x7b0a5206,0x394341a5,0x31023102,0x6a884164,0xfffffdeb,0x49c2feb3,0x49c27369,0xfdeb7369,0xc4687ac5,0xc468ffff,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7b070000,0x00006aa6,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0x7ac59367,0x93678b46,0x8b469367,0x8b468b46,0x93679367,0x6a039367,0xa534ad75,0xa534a534,0x9cd3a514,0x9cf39cd3,0x9cd39cd3,0x9cd39cd3,0x94b29cd3,0x7bef94b2,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000a800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1d3e2,0xa2c1a2c1,0xa2c1a2c1,0xb4203960,0xa2c1e540,0xd3e2e483,0xa2c1a2c1,0xa2c1a2c1,0x104171c7,0x886159a6,0xab8b8061,0xa2cb9b09,0x71c7b34d,0x41245145,0x084128a2,0xdd0fdc10, +0x9c0e6ac9,0x49c572e9,0x62885a27,0x310249a5,0x41844184,0x31026268,0x31023102,0x62686247,0xc468fdeb,0x73697ac5,0x7ac549c2,0x736949c2,0xfdeb7369,0x7ac5c468,0x736949c2,0x49c27ac5,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x84100000,0x0000738e,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x936672a5,0x93669366,0x93879366,0x93877ac5,0x93669366,0x93669366,0x51e37ac5,0xad55b596,0xad55a514,0xa534a534,0xa534a534,0xad559cf3,0xa534a534,0xa534a534,0x8c51a514,0x00000000,0x00000000,0x00000000,0xfff2f800,0xf800ffff,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483d3e2,0x3960e483,0xe540b420,0x3960b420,0xa2c1a2c1,0xe483e483,0xd3e2e529,0x8a6971e7,0x51652882,0xc38e9aaa,0x41044924,0x284161a6,0x92aa30c3,0x30c35820,0x90824020, +0x626862a9,0x41846a88,0x418449a5,0x49c53102,0x6ac95206,0x5a476268,0x62686268,0x72e93923,0x73697369,0x49c27369,0x7ac57ac5,0x736949c2,0x736949c2,0x7ac5fdeb,0x7ac57369,0x49c2feb3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x7bef0000,0x0000738e,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b4682c5,0x93679367,0xa4089367,0x8b467a84,0x93677ac5,0xa4499367,0x72249367,0xbdd7c638,0xb5b6b596,0xb5b6b596,0xbdf7b5b6,0xb596ad75,0xb596ad75,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xfec0f800,0xf800fc60,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0x3960a2c1,0xb420e540,0xa2c13960,0xd3e2e483,0xe483a2c1,0xd3e2d3e2,0x8a695820,0x59a671e7,0x18415965,0x514530c3,0x604161c7,0x8a69b32c,0x8a6961a6,0x30415820, +0x6a883102,0x41843923,0x6a88836b,0x39236aa9,0x394341a5,0x3102836b,0x6a886268,0x6a8841a5,0x49c27369,0xc46849c2,0xc468feb3,0x736949c2,0x49c27ac5,0x73697369,0xc4687ac5,0x49c2ffff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x8b466244,0x8b468b46,0xa4089367,0x8b4682a5,0x8b468b46,0xa4088b46,0x6a038b46,0xc618ce59,0xc618b5b6,0xc618c618,0xc618c618,0xb5b6b596,0xb596b596,0xbdd7b596,0xa514b596,0x00000000,0x00000000,0x00000000,0xf8000000,0x0000f800,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa2c1a2c1,0xa2c1a2c1,0xa2c1e483,0x39603960,0xe483e483,0xe483a2c1,0xa2c1d3e2,0xa2c1a2c1,0x8aaa4820,0x59a671c7,0x602069c7,0x30c38a69,0xdc10bb6d,0x92aa8249,0x59a692a8,0x28821041, +0x392341a5,0x62683923,0x51e63102,0x6a883123,0x41a53943,0x31035a47,0x72c96a88,0x41648bac,0x7ac57369,0xfeb37ac5,0xfeb3ffff,0x736949c2,0xffffc468,0x49c249c2,0xfdeb7369,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x8b467a84,0x93678b46,0xa4089367,0x8b4682c5,0x7ac58b46,0xa4488b46,0x72248b46,0xc638ce79,0xc638bdf7,0xc638c618,0xc618c618,0xb5b6b5b6,0xb596b5b6,0xbdf7b5b6,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3e2a2c1,0xe483e483,0xd3e2d3e2,0xe483a2c1,0xe483d3e2,0xa2c1e483,0xe529e483,0xa2c1d3e2,0xc38ee530,0x59a68a87,0x8aaac38e,0x20418aaa,0x928a59a6,0xab0c9269,0xab6a4104,0x59a67861, +0x41a551e6,0x72ea6ac9,0x31023923,0x836b49a5,0x628841a5,0x7b0a5a67,0x4184834b,0x5a6751e6,0x73697369,0xc468fdeb,0xc468feb3,0x736949c2,0xc468fdeb,0x49c27ac5,0x73697369,0x49c2fdeb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x62446224,0x62446244,0x7ac56244,0x62446244,0x62246224,0x72a56224,0x51e37ac5,0xbdf7c638,0xbdd7bdd7,0xbdd7bdd7,0xbdd7b5b6,0xad75b596,0xad55ad55,0xad75ad55,0x9cf3ad75,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe483d3e2,0xe483e483,0xe483a2c1,0xe483a2c1,0xa2c1e483,0xd3e2e483,0xd3e2a2c1,0xd3e2e483,0x41247228,0x59a61041,0x69e7aaeb,0xab8ba2eb,0x492430c3,0x38e32882,0xbb6d4924,0x59a68861, +0x39234184,0x31027b0a,0x62687b0a,0x5a473102,0x394341a5,0x49a549a5,0x41844184,0x93cd49c5,0x49c27369,0xfdeb7369,0x7ac57ac5,0x49c27369,0xfdeb7369,0x73697ac5,0x49c249c2,0x49c27369,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b468b46,0x8b468b46,0x8b468b46,0x93679367,0x8b469367,0x93677ac5,0x6a039367,0xc638d69a,0xc638c638,0xc638c638,0xc638c638,0xbdf7c638,0xbdd7bdf7,0xb5b6b596,0xa514b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529d3e2,0xa2c1e529,0xe483e483,0xe529a2c1,0xa2c1e483,0xe483e483,0xa2c1e529,0xd3e2d3e2,0x71e75986,0x28828a69,0x80614924,0x5820c38e,0x10412061,0x58207a08,0x59a62882,0x8a8a3841, +0x49a56288,0x31026268,0x62473923,0x5a473923,0x31025a47,0x3102834b,0x41644184,0x41645206,0x7ac57ac5,0x736949c2,0x73697ac5,0x7ac549c2,0x736949c2,0x49c27369,0xc468c468,0x736949c2,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93878b46,0xa448a448,0xa408a408,0xa4088b46,0xa448a408,0xa448a408,0x6a039367,0xc638d69a,0xc638c638,0xce79ce79,0xce59ce79,0xce59c638,0xce59ce59,0xc618c618,0xa534b5b6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xe529a2c1,0xe529a2c1,0xd3e2e483,0xd3e2a2c1,0xa2c1e483,0xe483e483,0xd3e2e483,0xa2c1a2c1,0xa2cbc38e,0x8a694020,0x49241841,0x8061c38e,0x58204924,0x582092aa,0x69646841,0xab0c6186, +0x52064184,0x62476ac9,0x62476aa9,0x51e67b0a,0x39233943,0x62686268,0x31023102,0x49c65a47,0xffff7ac5,0x49c2c468,0xfdeb7369,0xffffc468,0x736949c2,0x7ac5fdeb,0xfffffeb3,0x49c2c468,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x8b467a84,0x93678b46,0xa4489367,0x93677a84,0x93679367,0xa4499367,0x6a039367,0xc6188410,0xc618bdd7,0xc618c618,0xce59c618,0xc618bdd7,0xc618c618,0xc638bdf7,0xad55bdf7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0xa2c1a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1d3e2,0xd3e2a2c1,0xd3e2d3e2,0xd3e2a2c1,0xa2c1a2c1,0xa2cbc38e,0x9a8aa2cb,0x71e7c42d,0x49245145,0x80614924,0xa2cbc38e,0x492471e7,0x8228aaeb, +0x62475a47,0x49c53943,0x41643943,0x31023923,0x49a541a5,0x628849a5,0x39234184,0x52063102,0x7ac5fdeb,0x73697ac5,0x73697369,0x7ac5fdeb,0x73697369,0xfdeb7369,0xc468fdeb,0x73697ac5,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003142,0x00000000,0x00000000,0x00000000,0x7ac531a6,0x7ae56244,0x72a572a5,0x93667ae5,0x7ac56244,0x18c37ac5,0x936651c3,0x51e351c3,0xbdd74a69,0xbdd7b596,0xb596b596,0xb596b596,0xb596a534,0xb596ad75,0xb596bdd7,0x9cf3a514,0x00000000,0x49c46265,0x00000000,0x00000000,0x00000000,0x00000000,0x41834183,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x61a261a2,0x71e238c1,0x59825982,0x69c24921,0x41215982,0x69e24921,0x49415982,0x38e171e2,0x7aa67aa6,0x9b484142,0x7aa67aa6,0x9b4861e4,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x41429b48, +0x00000000,0x000005e2,0x00000000,0x07020000,0x00000340,0x06220000,0x00000000,0x00000000,0x00000000,0x14c23e60,0x000004a2,0x3d210000,0x05c20340,0x3cc20000,0x00000000,0x00000000,0x000004c2,0x02a06481,0x01c05c01,0x6d000000,0x53e209a0,0x64610280,0x04420000,0x00000000,0x0b603c02,0x12006481,0x1a606481,0x64810000,0x5c0111e0,0x5be222c0,0x5c010000,0x000001c0, +0x096063e1,0x09605bc2,0x11e06401,0x64010000,0x534200c0,0x53620980,0x53820000,0x00000980,0x01005321,0x00205321,0x00004ac1,0x42a10000,0x42810060,0x53420060,0x6c210000,0x000000e0,0x00805b61,0x008063a2,0x00c06382,0x63820000,0x42810000,0x63a20080,0x53010000,0x00000940,0x090052e1,0x00606ba1,0x00c052e1,0x52e10000,0x42410040,0x63620060,0x4aa10000,0x000000a0, +0x00000000,0x00000000,0x00000000,0x9bc90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x8b467a84,0x93678b46,0xa4089367,0x936782c5,0x42088b46,0x18c32965,0x72247224,0xc638c618,0xc618bdd7,0xc638c618,0xce59c618,0xc618bdd7,0xb5b6bdd7,0xa534bdd7,0x9cf3a534,0x62650000,0x5a448b87,0x5a245a24,0x5a246a85,0x62656265,0x5a246265,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x494161a2,0x69e230c1,0x412169c2,0x412130c1,0x412169c2,0x516130c1,0x30c14121,0x598271e2,0x61e47aa6,0x9b484142,0x61e49b48,0x61e44142,0x61e49b48,0x7aa64142,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x05620000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006a2,0x00000000,0x3d810000,0x00000380,0x07220000,0x14620000,0x00000000,0x00000000,0x01e04502,0x02e03c42,0x5c210000,0x3ce20280,0x34020240,0x00000000,0x00000000,0x13c14da1,0x0b406481,0x02006cc1,0x64610000,0x75202b21,0x45610220,0x3c420000,0x00000240, +0x0a606401,0x226063e1,0x11e06c61,0x53620000,0x64010100,0x63e11a40,0x64210000,0x00000140,0x09805ba1,0x09804b01,0x01404ae1,0x53210000,0x53210100,0x6c010100,0x5b820000,0x00000100,0x11a05b42,0x00e05b41,0x09406382,0x4aa10000,0x5b410940,0x5b210000,0x6bc20000,0x00000920,0x09406ba1,0x19e05b21,0x00e06382,0x5b010000,0x5b2100a0,0x5b210080,0x63610000,0x00000060, +0x00000000,0x00000000,0x00000000,0x62860000,0x00003983,0x00000000,0x00000000,0x00000000,0x8b46aca9,0x82c56244,0x82c582c5,0x8b4682c5,0x82a582c5,0x7a8482a5,0x8b467a84,0x72248b46,0xc638c618,0xbdf7bdd7,0xc618c618,0xc618c618,0xbdd7bdf7,0xb596b5b6,0xb5b6b596,0xa514b5b6,0xa4090000,0x6a856265,0xac4a8b87,0x8b87ac4a,0xac4aac4a,0xa4098b87,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x59824941,0x51624921,0x41214122,0x61a24101,0x410161a2,0x516130c0,0x30c14121,0x59825982,0x7aa661e4,0x7aa661e4,0x61e45a05,0x9b4861e4,0x61e49b48,0x7aa64142,0x414261e4,0x7aa67aa6, +0x00000000,0x00000000,0x00000000,0x000005c2,0x00000000,0x00000000,0x00000000,0x00000000,0x05a20000,0x00000000,0x00000000,0x3dc10000,0x00001d63,0x00000000,0x00000642,0x00000000,0x00000000,0x1d023c62,0x00000502,0x3ce21462,0x04a20320,0x3ce20000,0x00000000,0x00000000,0x000005c1,0x13e14d81,0x02c03c82,0x7d600000,0x44a233e1,0x4e0002c0,0x04a10000,0x0b800000, +0x13c14cc2,0x2b2174c1,0x22a06c61,0x5ba10000,0x74a10980,0x6c412240,0x5bc20000,0x00000a20,0x1a206c01,0x1a006c21,0x226063c2,0x63a10000,0x5ba20140,0x74810140,0x63a10000,0x00003320,0x1a207421,0x11c06381,0x2a406be2,0x6bc20000,0x42610920,0x6bc20940,0x63c20000,0x00000920,0x09606be2,0x09007c61,0x09206381,0x63610000,0x63420900,0x5b420920,0x5b210000,0x00000920, +0x00000000,0x00000000,0x00000000,0x93a90000,0x00003963,0x00000000,0x00000000,0x00000000,0x9367b4aa,0xa4499367,0xa408a449,0xa408a449,0xa4088b46,0xa408a408,0x9387a448,0x72249367,0xc638c618,0xce79c638,0xce79ce79,0xce79ce79,0xce59c618,0xc638ce59,0xbdd7c618,0xa514b5b6,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x49a3a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x69c24121,0x41015161,0x61a228a0,0x41013901,0x51614101,0x69c24121,0x69e269c2,0x414261e4,0x9b4861e4,0x61e47aa6,0x9b484142,0x61e461e4,0x7aa661e4,0x9b4861e4,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07220000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000006c1,0x06410000,0x45610000,0x00000b60,0x05620000,0x0b800000,0x00000000,0x00000000,0x02804e00,0x1c824521,0x7e000000,0x45010b60,0x456101c0,0x00000000,0x00000581, +0x0a605600,0x13c18560,0x018074e1,0x64010000,0x74a11200,0x4ce20a60,0x44a20000,0x00000220,0x13407481,0x33007481,0x00807cc1,0x63e10000,0x63e11a20,0x74811a00,0x8d600000,0x00002aa0,0x3b207c81,0x2a607441,0x19c084a1,0x63c20000,0x6bc211a0,0x63a219e0,0x63c20000,0x00003300,0x2a407401,0x19c06ba1,0x2a406bc2,0x6ba20000,0x6bc20900,0x6ba119c0,0x6bc20000,0x00002a60, +0x00000000,0x00000000,0x00000000,0x9bea0000,0x00004184,0x00000000,0x00000000,0x00000000,0x72a59be7,0x93877ac5,0x93669366,0x93879366,0x93877ac5,0x93879387,0x93669366,0x51e372a5,0xbdf7bdd7,0xce59c618,0xc638c638,0xc638c638,0xc638bdf7,0xc638c638,0xbdf7bdf7,0x9cf3b596,0x00000000,0x49a36265,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a24121,0x39015161,0x49413901,0x49412965,0x61a228a0,0x61a24101,0x30c14121,0x61e47aa6,0x9b4861e4,0x61e47aa6,0x7aa661e4,0x7aa652aa,0x9b484142,0x9b4861e4,0x414261e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03800562,0x00000000,0x00000000,0x00000000,0x00000000,0x06020000,0x000014a2,0x00000000,0x45a10000,0x00000be1,0x00000000,0x000005a2,0x00000000,0x00000000,0x13c144e2,0x00000660,0x4da10280,0x042113a1,0x4dc10000,0x00000000,0x00000000, +0x000004a0,0x138055e1,0x0b004402,0x6c810000,0x4cc21a20,0x44a213a1,0x04600000,0x2d220000,0x13205d81,0x22608540,0x3ba15b41,0x74810000,0x74813361,0x7ca143e1,0x7ce10000,0x00001340,0x2ac09560,0x2aa084c1,0x2a407441,0x74410000,0x74612240,0x744119e0,0x8d400000,0x000032c0,0x32c08ca1,0x11807c41,0x438184a1,0x6ba20000,0x7c412200,0x6bc219a0,0x8cc10000,0x000032e0, +0x00000000,0x00000000,0x00000000,0x93a80000,0x000041a4,0x00000000,0x00000000,0x00000000,0x8b46b4aa,0x000082a5,0x00000000,0xa4080000,0x00007a84,0x00000000,0xa4480000,0x6a038b46,0xc638c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa514bdf7,0x62650000,0x6265a409,0x5a245a24,0x62655a24,0x62656265,0x62656265,0x6265a409,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x61a261a2,0x39014941,0x492128a0,0x38e14921,0x598228a0,0x61a23901,0x412139e7,0x61e47aa6,0x9b489b48,0x61e47aa6,0x7aa64142,0x61e47aa6,0x9b484142,0x9b4861e4,0x61e46b6d, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005a2,0x00000000,0x00000000,0x00000000,0x00000000,0x06810000,0x00000000,0x00000000,0x05e20000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x000005c1,0x04c10000,0x4de11421,0x00000b40,0x05610000,0x14410000,0x00000000, +0x00000000,0x13c155a1,0x13404d41,0x74810000,0x55e11340,0x55a11340,0x00000000,0x00000700,0x1b805561,0x1b807cc1,0x24418dc0,0x8d800000,0x960043e1,0x5da112c0,0x5d810000,0x000012c0,0x3b218d20,0x11a084e1,0x32e084a1,0x84a10000,0x74612240,0x8d002ac0,0x8d200000,0x00003b21,0x2a409500,0x2a407401,0x4361a5c0,0x84810000,0x7c412a40,0x8cc119c0,0x95400000,0x00001160, +0x00000000,0x00000000,0x00000000,0x93880000,0x00003963,0x00000000,0x00000000,0x00000000,0x8b46ac68,0x00007a84,0x00000000,0xa4480000,0x00007a84,0x00000000,0xa4080000,0x6a038b46,0xc618c618,0x0000bdf7,0x00000000,0xce790000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x5a448b87,0xac4aac4a,0x8b878b87,0x8b878b87,0xa409a409,0x5a44ac4a,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c15982,0x410161a2,0x49413901,0x516238e1,0x38e14121,0x39015162,0x28a03901,0x516161a2,0x41427aa6,0x61e49b48,0x7aa661e4,0x9b4861e4,0x61e47aa6,0x61e49b48,0x414261e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01c004e2,0x00000000,0x00000000,0x00000000,0x00000000,0x05210000,0x00000b60,0x06210000,0x4d810000,0x00001441,0x00000000,0x13e10620,0x00000000, +0x00000000,0x13c15600,0x00000560,0x55811bc1,0x05601bc1,0x55810000,0x00000000,0x00000000,0x00005da1,0x1bc15da1,0x1be15e60,0x96000000,0x55211a20,0x5e000a80,0x55210000,0x13400000,0x1b809580,0x3b817421,0x2a808d20,0x84a10000,0x8d2032e0,0x8d402ac0,0x95600000,0x000009c0,0x4bc184a1,0x3b2184a1,0x2a409da0,0x8ca10000,0x7c413b00,0x7c413b21,0x74010000,0x000019a0, +0x00000000,0x00000000,0x00000000,0x7b070000,0x000049e4,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x000082c5,0x00000000,0xa4490000,0x000082c5,0x00000000,0xa4490000,0x6a039367,0xc638c618,0x0000c618,0x00000000,0xce590000,0x0000bdd7,0x00000000,0xc6380000,0xa514bdf7,0x00000000,0x6a85ac4a,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c05982,0x49415161,0x38e13901,0x516128a0,0x20a030e1,0x38e15162,0x28a03901,0x41215161,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142,0x414261e4,0x61e49b48,0x414261e4,0x61e47aa6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000422,0x00000000,0x00000000,0x00000000,0x00000000,0x05810000,0x00000000,0x00000000,0x06200000,0x00000000,0x00000000,0x000005e1,0x00000000, +0x00000000,0x000005c0,0x05c00000,0x56000b20,0x00000a60,0x05000000,0x1c210000,0x00000000,0x00000000,0x13005e00,0x24015e00,0x74810000,0x54e21ba1,0x5e201340,0x00000000,0x00005d81,0x000065a1,0x43e195c0,0x2ac084e1,0x8d400000,0x8d203b61,0x95603b81,0x4c420000,0x1b800000,0x32e0a5e0,0x43819d60,0x43818ca1,0x95400000,0x9d602a60,0x7c4132e0,0x7c410000,0x00003b00, +0x00000000,0x00000000,0x00000000,0xfff20000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x7ac59be7,0x62246224,0x62246224,0x7ac56224,0x62446244,0x62246244,0x72a56224,0x51e37ac5,0xbdf7bdd7,0xb5b6b5b6,0xb596b596,0xbdd7b596,0xb5b6b5b6,0xb5b6b5b6,0xbdd7b5b6,0xa514bdd7,0x00000000,0x41835a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c069c2,0x49415161,0x28a03901,0x514128a0,0x208030c1,0x49214121,0x39013901,0x516161a2,0x41429b48,0x7aa67aa6,0x414261e4,0x9b484142,0x414261e4,0x7aa67aa6,0x61e461e4,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1c8205e1,0x00000000,0x00000000,0x00000000,0x00000000, +0x06000000,0x00001c41,0x05200000,0x4cc20000,0x00000b20,0x00000000,0x24a20600,0x00000000,0x00000000,0x1b805541,0x00006620,0x5de12401,0x5d810ac0,0x55010000,0x00000000,0x00000000,0x00000000,0x32c09e00,0x2c828d00,0x95a00000,0x95c032e0,0x8d402c82,0x00000000,0x000065a1,0x42009540,0x43a1a5c0,0x32e0a5c0,0x8cc10000,0x954019a0,0xa5c03b20,0x95400000,0x00002140, +0x00000000,0x00000000,0x00000000,0xfec00000,0x0000fc60,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x93679367,0xa449a448,0xa408a449,0x8b468b46,0x9387a408,0xa449a449,0x72249367,0xc638c618,0xc618c638,0xce59ce59,0xce59ce79,0xc618c618,0xc638ce59,0xce59ce79,0xa534c618,0x62650000,0x6265ac4a,0x5a245a24,0x62655a24,0x62656265,0x5a245a24,0x6a85ac4a,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x516169c2,0x494161a2,0x28a03901,0x412128a0,0x20a030e1,0x49215162,0x41014941,0x516161a2,0x7aa69b48,0x7aa69b48,0x414261e4,0x7aa64142,0x414261e4,0x7aa69b48,0x61e47aa6,0x7aa69b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x02400660,0x00000000,0x00000000,0x00000000,0x00000000, +0x06200000,0x00000000,0x00000000,0x05400000,0x00000000,0x00000000,0x00000680,0x00000000,0x00000000,0x00005dc1,0x5e400000,0x55210a80,0x00001300,0x55610000,0x00000000,0x00000000,0x00000000,0x1b008d20,0x00006e80,0x8d401b40,0x6e803b81,0x8d200000,0x00000000,0x00000000,0x00208be2,0x32e0a5e0,0x31809540,0x7c410000,0x9d602a60,0x7c613180,0x7b420000,0x39c00000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x8b466b6d,0x00006244,0x00000000,0xa4080000,0x000082a5,0x00000000,0xa4080000,0x6a038b46,0xc6188410,0x0000b5b6,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xa534c618,0xa4090000,0x62656265,0xac4aac4a,0x8b87ac4a,0x8b878b87,0xac4a6265,0x5a448b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41214921,0x410161a2,0x39013901,0x516228a0,0x38e130e1,0x28a05162,0x41014941,0x69c261a2,0x61e461e4,0x61e49b48,0x61e461e4,0x9b484142,0x61e461e4,0x41429b48,0x61e47aa6,0x9b489b48, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000481,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x0b200640,0x00000000,0x00000000,0x00000000,0x00000000,0x5e400000,0x00001320,0x54e20000,0x55410000,0x000009c0,0x00000000,0x1be15e20,0x00000000,0x00000000,0x00005d41,0x65810000,0x95c023e1,0x00004c02,0x54a20000,0x1b000000,0x00000000,0x00005a82,0x43419520,0x00008382,0x8cc14a20,0x838232c0,0xa5c02940,0x00000000,0x18e08ba2, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x7a8431a6,0x00007a84,0x00000000,0xa4080000,0x000082c5,0x00000000,0xa4480000,0x72248b46,0xbdf74a69,0x0000bdd7,0x00000000,0xce590000,0x0000bdf7,0x00000000,0xce590000,0xad55c618,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6265a409,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x51615161,0x39013901,0x49215982,0x28a04921,0x29655982,0x41014941,0x69c230c0,0x61e47aa6,0x7aa67aa6,0x61e461e4,0x7aa69b48,0x41427aa6,0x52aa9b48,0x61e47aa6,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x1c610520,0x00000000,0x00000000,0x00000000,0x00000000,0x55610000,0x00000000,0x00000000,0x4c420000,0x00000000,0x00000000,0x00005e00,0x00000000,0x65a10000,0x00001280,0x66000000,0x9e200000,0x00001b20,0x00000000,0x1b605d41,0x00000000,0x00000000,0x42209d80,0x93e10000,0x95202940,0x7b4232c0,0x95000000,0x00000000,0x00007302, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x72a59ba7,0x00006224,0x00000000,0x93870000,0x00006244,0x00000000,0x93660000,0x51e37ac5,0xbdf7bdd7,0x0000b5b6,0x00000000,0xc6380000,0x0000b5b6,0x00000000,0xc6180000,0xa514bdf7,0x00000000,0x49a35a24,0x00000000,0x00000000,0x00000000,0x00000000,0x41835a24,0x00000000, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x41215982,0x318669c2,0x39015161,0x59823901,0x28a04941,0x49414941,0x41214101,0x69c230c1,0x61e47aa6,0x52aa9b48,0x61e47aa6,0x9b4861e4,0x41427aa6,0x7aa67aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000640,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13405e40,0x00000000,0x00000000,0x00000000,0x00000000,0x5ce20000,0x00000000,0x00000000,0x5d610000,0x00000000,0x00000000,0x000065a1,0x00000000,0x00000000,0x000093c1,0x7b420000,0x95200000,0x000039a0,0x93e10000,0x39a00000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7a847a84,0x7a847a84,0x8b4682a5,0x82c582c5,0x82a582c5,0x93676244,0x6a039367,0xc638c618,0xbdd7bdd7,0xbdd7bdd7,0xc618bdf7,0xbdf7bdf7,0xbdf7bdf7,0xc618b5b6,0xa534bdf7,0x62650000,0x5a448b87,0x62656265,0x62656265,0x62656265,0x5a245a24,0x6a856265,0x00006265, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c171e2,0x69c269c2,0x41015161,0x494128a0,0x28a04941,0x410161a2,0x41214121,0x59824121,0x41429b48,0x9b489b48,0x61e47aa6,0x7aa64142,0x41427aa6,0x61e49b48,0x61e461e4,0x7aa661e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1b605d81,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x3b6184c1,0x00000000,0x00000000,0x00000000,0x00000000,0x7b620000,0x00002120,0x00000000,0x83a20000,0x00000000,0x00000000,0x294083a2,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x9367b4aa,0x7ac58b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x8b468b46,0x6a039367,0xc618bdf7,0xbdd7bdf7,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xc618c618,0xa534c618,0xa4090000,0x49a3a409,0x8b878b87,0xa409a409,0xac4aac4a,0xa409ac4a,0x62658b87,0x0000a409, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x30c14941,0x51625982,0x41215161,0x61a230c0,0x30c04101,0x41215161,0x41214121,0x71e230c1,0x414261e4,0x7aa67aa6,0x61e47aa6,0x9b484142,0x414261e4,0x61e47aa6,0x61e461e4,0x9b484142, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00005da1,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x240195a0,0x00000000,0x00000000,0x00000000,0x00000000,0x73220000,0x00000000,0x00000000,0x10c08ba2,0x00000000,0x00000000,0x00007b42,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xac68b4aa,0xac68ac68,0xb4aaac68,0xaca9b4aa,0xb4aaac68,0xb4aab4aa,0xb4aab4aa,0x8b46b4aa,0xa514a534,0xad75a534,0xbdf7b5b6,0xbdf7c618,0xbdf7bdf7,0xc618c618,0xc638c638,0xbdd7c638,0x00000000,0x5a448b87,0x00000000,0x00000000,0x00000000,0x00000000,0x6a85ac4a,0x00000000, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x49417202,0x69e271e2,0x41214121,0x69c269c2,0x30c04121,0x412169c2,0x69e25982,0x71e24921,0x61e49b48,0x9b489b48,0x61e461e4,0x9b489b48,0x414261e4,0x61e49b48,0x9b487aa6,0x9b4861e4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006620,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00006b02,0x00000000,0x00000000,0x00000000,0x00000000, +0xce79c618,0xe71cf79e,0xd6bace59,0xffdff79e,0xd69adedb,0xf79ee73c,0xce79ce59,0xf79eef7d,0x1aaf220a,0x1aaf220a,0x2a4b1aaf,0x1aaf1aaf,0x1aaf22d0,0x1aaf1168,0x328c1aaf,0x2a4b1aaf,0xffffffff,0xefffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0xffffefff,0xefffe79e,0xffffe79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x142413e4,0x140313a3,0x09c20b63,0x14030a02,0x0b8313e4,0x13e31403,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5569d15,0x94d49d15,0xa536add9,0xa55794f4,0xad779d36,0x9d159d15,0x9d369d15,0x94f49d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165,0x31652904,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653145,0x31653165, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf7bef7be,0xdedbdefb,0xe71cf79e,0xef5de73c,0xef7dffff,0xd69ad69a,0xe73ce71c,0xce59d6ba,0x00000a0d,0x000022f0,0x1aaf0000,0x00000000,0x00000000,0x000022d0,0x124e0000,0x1aaf0000,0xefffffff,0xe79effff,0xe79ee79e,0xffffe79e,0xffffffff,0xffffffff,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x0b030000,0x01410000,0x0b030b03,0x0b030000,0x00000141,0x0b030b03,0x01410000,0x00000b03,0x0a020000,0x146413e4,0x14240ba3,0x00000ac2,0x13e40a02,0x13a31464,0x13a31424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d16a536,0x9d159d15,0x9d16a536,0xa556a536,0xa5368cb3,0x9d1594b4,0x9cf5a557,0xa5369d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8,0x7aa83165,0x72877287,0x8ae87287,0x72878ae8,0x8ae88ae8,0x82a87287,0x8ae88ae8,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73ce73c,0xffffffdf,0xef5df79e,0xd6bae71c,0xdedbbdd7,0xf79ee73c,0xdedbdedb,0xfffff79e,0x126e220a,0x1aaf220a,0x220a1aaf,0x1aaf1aaf,0x22d01aaf,0x126e220a,0x19a81aaf,0x220a1aaf,0xefffefff,0xe79eefff,0xefffefff,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f, +0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x0b030000,0x14030aa2,0x0b431444,0x0ba30aa2,0x0aa21444,0x14241403,0x0aa20aa2,0x00000b03,0x01410000,0x13e30b83,0x14241403,0x0b030bc3,0x0b630141,0x13a313e4,0x14641464,0x00000b03,0x0b030000,0xdef3def3,0xdef3def3,0xded3def3,0xded3def3,0xdef3def3,0xdef3def3,0x00000b03, +0xa557adb9,0x8c939cf5,0x9d159d15,0xad779d15,0xad77a536,0xa536a557,0x9d15a556,0x9d16a557,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0xaece7605,0x0000854b,0x72873165,0x498492c7,0x49849b29,0x39439b29,0x41649b29,0x394392e8,0x394382a7,0x31657287,0x72873165,0x9b2992c7,0x9b299b29,0x72879b29,0x92e87287,0x82a792e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad6ba,0xbdf7bdd7,0xf7bef79e,0xb5b6c638,0xef5ddefb,0xe73ce71c,0xffffffff,0xc618e73c,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xffffefff,0xe79eefff,0xe79ee79e,0xffffefff,0xffffffff,0xe79eefff,0xe79ee79e,0xe79ee79e,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f, +0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x0b030000,0x14031444,0x00000b43,0x14241403,0x0b431444,0x0b431403,0x14241464,0x00000b03,0x00000000,0x0b830b43,0x146413e4,0x0b030b83,0x0ae20000,0x13a31464,0x0ba313e3,0x00000b03,0x0b030000,0xd6b3def3,0xd6d4d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6d4d6d4,0xdef3d6d4,0x00000b03, +0xa536ad77,0xad779d15,0x9d15a536,0x94d4a556,0xa53694f4,0x9d159d15,0xa537a536,0x9d159d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x51849b29,0x51849b29,0x518482a7,0x518482a7,0x59a492e8,0x31658ae8,0x8ae83165,0x9b299b29,0x82a79b29,0x18a27287,0x728718a2,0x82a782a7,0x92c792e8,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce79ce59,0xe71ce71c,0xd6bad69a,0xe73cef5d,0xce79ce59,0xe73cd69a,0xbdd7bdd7,0xe73cd6ba,0x00000a2d,0x000022d0,0x2b310000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xe79effff,0xefffe79e,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755fffff,0x755f755f, +0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x0b030000,0x14031444,0x0b431444,0x14241403,0x00000b43,0x00000b43,0x14030b43,0x00000000,0x0a020000,0x0ba31424,0x146413e4,0x0b030ba3,0x13e30a02,0x13a31464,0x0b031464,0x000009c2,0x0b030000,0xd6b3def3,0xdef4def4,0xdef3def3,0xdef4def4,0xdef4def4,0xdef3d6b3,0x00000b03, +0xa5379cf5,0x94d5a556,0x9d15a536,0x9d15a536,0xa536a536,0xadb89d35,0x9d159d15,0x94b49d15,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece7605,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c84143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x31658287,0x82873165,0x92c792c7,0x92c892c8,0x18a27287,0x728718a2,0x92c792c7,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79ef79e,0xef5def5d,0xf79effff,0xe73cef5d,0xef7df79e,0xe71cd6ba,0xdefbe73c,0xdefbce59,0x1aaf0947,0x1aaf1188,0x21e91aaf,0x1a8f0a2d,0x1a8f2b52,0x1aaf220a,0x220a124e,0x11882b11,0xffffffff,0xe79effff,0xefffefff,0xefffefff,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f, +0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x00000000,0x14030aa2,0x14031424,0x14441403,0x0b431403,0x0b4313e3,0x14031444,0x00000b03,0x0a020000,0x0ba31424,0x14641403,0x09c20b02,0x13e30a02,0x0ba31464,0x0aa21464,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6d4,0x00000b03, +0xa536a536,0xa5378c73,0xa55794f4,0x9d169d35,0xad77ad77,0x9d15a556,0x9d159d36,0x9d369d15,0xaece0000,0x0000854b,0xe77b7605,0x0000960c,0xaece9766,0x0000854b,0x854b0000,0x00006c28,0x82a83165,0x92e859c5,0x9b2959e5,0x82a75184,0x82a75184,0x92e859c5,0x92e859c5,0x316582a8,0x82a83165,0x92e892e8,0x9b299b29,0x18a27287,0x728718a2,0x92e892e8,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbd69a,0xef7dd6ba,0xbdf7bdd7,0xe71cdedb,0xe73cce79,0xffffffff,0xe73cdedb,0xffdfffff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x0000126e,0x126e0000,0x1aaf0000,0xefffefff,0xffffefff,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xe79effff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f, +0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x0b030000,0x14031444,0x14240b43,0x00000b43,0x14030b43,0x14241403,0x14030b43,0x00000b03,0x0a020000,0x13a31464,0x146413e4,0x00000aa2,0x0b830a02,0x0ba31464,0x0ba31464,0x00000b03,0x0b030000,0xd6b3ded3,0xdef3def3,0xd6b3d6b3,0xd6b3d6b3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x8c9394d4,0x9d35a536,0xa5369d35,0x9d15a557,0xa5369d36,0xad77a536,0xa5369d36,0xa57694d4,0x854b7605,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x72873165,0x394382a7,0x498482a7,0x416492e8,0x394382a7,0x414382a7,0x39439b29,0x31657287,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x82a79b29,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cef5d,0xd69ac618,0xe73cf79e,0xd6bace79,0xd6bad69a,0xc618d69a,0xdedbdefb,0xc638c638,0x000022f0,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x1aaf0000,0xefffffff,0xefffefff,0xe79ee79e,0xe79ee79e,0xffffffff,0xe79effff,0xffffffff,0xe79eefff,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x0b030000,0x0b431444,0x0b430000,0x0b4313e3,0x14031403,0x0b431403,0x0b430000,0x00000000,0x0a020000,0x0ba31464,0x0ba31403,0x0b031403,0x0b230141,0x13a31444,0x0ba31403,0x00000b03,0x0b030000,0xd6d4def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa536a536,0xa557a557,0x9d15a536,0xa536a557,0xadd9ad77,0xa53694d4,0x9d169d15,0x9d369d15,0xe77b9766,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x8ae83165,0x59e59b29,0x59a49b29,0x59e582a7,0x59c59b29,0x59c592e8,0x59e59b29,0x31658ae8,0x8ae83165,0x9b299b29,0x92c79b29,0x18a27287,0x728718a2,0x92e892e8,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ad69a,0xffffffff,0xe73cef5d,0xf79ef79e,0xd69ace59,0xf79eef5d,0xe73ce73c,0xf79ef79e,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x22d00000,0x124e0000,0xffffffff,0xefffefff,0xefffefff,0xe79eefff,0xffffffff,0xe79ee79e,0xefffffff,0xe79eefff,0x755f755f,0x755f8dff,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x00000000,0x14030aa2,0x14840b43,0x14031444,0x0b431444,0x14241403,0x14030b43,0x00000141,0x0a020000,0x13a31464,0x13a31403,0x0b031464,0x0a820000,0x0bc31424,0x0b221424,0x000009c2,0x0b030000,0xd6b3def3,0xdef3def4,0xdef4d6b3,0xd6b3def4,0xdef3def3,0xdef3d6b3,0x00000b03, +0x9d159d36,0x9d35a557,0x9d159d36,0xadb7a556,0x9cf5a536,0x9d159d15,0xa536a536,0xa5579d15,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x82873165,0x92c84143,0x92c84143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c892c8,0x92c892c8,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xffffffff,0xef5def7d,0xdefbdefb,0xe71cdedb,0xffffef7d,0xdedbe73c,0xffffffff,0xe71cef5d,0x00001aaf,0x0000020d,0x1a8f0000,0x00000000,0x00000000,0x00001aaf,0x01ab0000,0x1aaf0000,0xe79effff,0xe79ee79e,0xefffffff,0xffffe79e,0xe79ee79e,0xffffe79e,0xefffefff,0xe79ee79e,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x01410000,0x14840ba3,0x14441403,0x14031424,0x00000b43,0x140313e3,0x14031403,0x00000b03,0x00000000,0x0bc313a3,0x13e31403,0x0b0313e4,0x13a30a02,0x13e31424,0x0aa21424,0x00000000,0x0b030000,0xd6b3def3,0xdef3def4,0xd6d4d6b3,0xd6b3d6b3,0xdef3def3,0xdef3d6b3,0x00000b03, +0xa53694d4,0x9d369cf5,0xa55694d4,0x9d159d15,0x9d159d15,0xadb8a557,0xa557a536,0x9d16a536,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xaece0000,0x9766854b,0x8ae83165,0x92e859e5,0x9b2959e5,0x82a759e5,0x82a75184,0x9b2959a4,0x9b2959e5,0x31658ae8,0x8ae83165,0x92e89b29,0x9b299b29,0x18a27287,0x728718a2,0x9b2992c7,0x9b299b29,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdd7c618,0xf79ece79,0xb5b6ce79,0xd69ace59,0xb5b6ce79,0xd6bad69a,0xd69ac618,0xd6bace59,0x1aaf220a,0x22d0220a,0x326c1aaf,0x1aaf1aaf,0x22f01aaf,0x22f0220a,0x220a1aaf,0x220a1aaf,0xefffefff,0xefffefff,0xffffe79e,0xffffffff,0xefffe79e,0xe79ee79e,0xefffefff,0xe79eefff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755fffff,0x755f755f,0x755f8dff,0x755f755f, +0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x0b030000,0x0b431403,0x0b430000,0x140313e3,0x140313e3,0x14241444,0x0aa21444,0x00000000,0x0a020000,0x14030b43,0x13e413e4,0x0b0313e4,0x13a30a02,0x14441403,0x0ba31424,0x00000b03,0x0b030000,0xd6b3def3,0xdef3def4,0xdef3def3,0xdef3def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0xa5369cf5,0xadda9d15,0xa5769d15,0xa536a536,0xad779d15,0x94d4a536,0x9d159d15,0x94d49d36,0xaece0000,0x0000854b,0x854b0000,0x00006c28,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0x72873165,0x416492c7,0x416492e8,0x39439b29,0x416492e8,0x416492e8,0x394382a7,0x31657287,0x72873165,0x92e892c7,0x92e892e8,0x18a27287,0x728718a2,0x92e892e8,0x82a782a7,0x31657287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xdedbe73c,0xdefbce79,0xef5def5d,0xb5b6bdf7,0xe71cd69a,0xc638d69a,0xef5def5d,0xbdf7ce59,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x0a0d0000,0xffffffff,0xefffefff,0xffffefff,0xffffe79e,0xefffefff,0xffffe79e,0xefffffff,0xe79eefff,0xffff755f,0x755f755f,0x755f755f,0x755f755f,0xffff755f,0x755f755f,0x8dff755f,0x755f755f, +0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5,0x01410000,0x14031424,0x14440b43,0x0b431444,0x14031444,0x0b431444,0x14031444,0x00000b03,0x0a020000,0x14030ba3,0x142413e4,0x0b031403,0x0b230141,0x14641403,0x13a31464,0x00000b03,0x0b030000,0xd6d4def3,0xdef4def3,0xdef4def4,0xdef4def3,0xdef4def3,0xdef3d6b3,0x00000b03, +0x9d15a556,0x9d15a557,0xa557a557,0xa557a537,0x9cf5a557,0xa5579d15,0x94d49d16,0x94f5a536,0xaece0000,0x0000854b,0xe77b0000,0x7605960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x72873165,0x518482a7,0x59e582a7,0x51849b29,0x51849b29,0x59a482a7,0x59c592e8,0x316582a8,0x72873165,0x82a782a7,0x9b2982a7,0x18a27287,0x728718a2,0x92c782a7,0x92e892e8,0x316582a8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69adefb,0xf79eef5d,0xd6bad6ba,0xf79edefb,0xdedbce79,0xf79ef79e,0xd69adefb,0xf79effff,0x00001aaf,0x00001aaf,0x22f00000,0x00000000,0x00000000,0x000022f0,0x1aaf0000,0x22d00000,0xe79effff,0xe79ee79e,0xffffffff,0xffffe79e,0xefffffff,0xe79eefff,0xffffffff,0xe79eefff,0x755f755f,0x755fffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f8dff, +0x6b6d59e5,0x59e559e5,0x59e5ffff,0x59e559e5,0x59e5ffff,0x59e5efff,0x59e57aa7,0x7aa759e5,0x00000000,0x14a40aa2,0x14241403,0x00000b43,0x14030b43,0x00000b43,0x14030b43,0x00000b03,0x01410000,0x13e30b23,0x14240ba3,0x0b0313a3,0x0aa20000,0x146413e4,0x0ba31464,0x00000b03,0x0b030000,0xd6b3def3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xd6b3d6b3,0xdef3d6d4,0x00000b03, +0x9d159cf5,0xa5369d15,0xa5369d15,0x9d159d15,0x9d159d15,0xa5569d35,0x9d359d36,0x94d49d36,0xaece0000,0x7605854b,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x82873165,0x92c74143,0x92c74143,0x92c74143,0x92c74143,0x92c84143,0x92c84143,0x31658287,0x82873165,0x92c792c8,0x92c792c7,0x18a27287,0x728718a2,0x92c892c8,0x92c892c8,0x31658287, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf79eef7d,0xdedbd6ba,0xf79ef7be,0xd6bae71c,0xf79eef5d,0xe73ce73c,0xffffffdf,0xe73cef5d,0x1aaf19a9,0x1aaf220a,0x3acd128f,0x1aaf1a8f,0x1aaf124e,0x1a8f11a8,0x21ea1aaf,0x220a01cc,0xffffefff,0xe79eefff,0xefffe79e,0xe79eefff,0xefffffff,0xe79eefff,0xffffffff,0xefffefff,0x755f755f,0xffff755f,0x755f755f,0x755f8dff,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0x59e5efff,0xe79eefff,0x59e5e79e,0x59e5efff,0xefffffff,0xe79eefff,0xffff59e5,0x59e5efff,0x0b030000,0x0aa21424,0x13e31403,0x0aa213e3,0x14031464,0x0b431444,0x14031424,0x00000b03,0x00000000,0x13e30b43,0x14640ba3,0x09c20b03,0x13a30a02,0x142413e4,0x0ac21424,0x00000000,0x0b030000,0xded3def3,0xdef3def3,0xdef3def3,0xdef3ded3,0xdef3def3,0xdef3def4,0x00000b03, +0xad77a536,0x9d15ad98,0x9d159d15,0x9d369d36,0xa556a536,0xa557a557,0x9d1594f4,0xad989d15,0xaece0000,0x9766854b,0xaece0000,0x0000854b,0xaece0000,0x7605854b,0x854b0000,0x00006c28,0x8ae83165,0x82a75184,0x82a75184,0x92e859c5,0x9b2959e5,0x92e859e5,0x9b2959a4,0x31658ae8,0x8ae83165,0x82a782a7,0x82a782a7,0x728792e8,0x9b297287,0x92e89b29,0x9b2992c7,0x31658ae8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe73cdefb,0xffffffdf,0xef5def7d,0xd6badedb,0xc618ce59,0xd6bad69a,0xc618b596,0xdedbd69a,0x00001aaf,0x00001aaf,0x1aaf0000,0x00000000,0x00000000,0x00001aaf,0x1aaf0000,0x126e0000,0xffffffff,0xefffffff,0xefffefff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x755f755f,0x755f755f,0x755f755f,0x8dff755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0x59e5efff,0xe79eefff,0xffffe79e,0xefffefff,0xffffe79e,0xe79effff,0x0b030000,0x00000b03,0x0b030141,0x00000141,0x0b030b03,0x00000b03,0x0b030141,0x00000b03,0x0a020000,0x140313e3,0x14640b83,0x00000aa2,0x13a30a02,0x146413e4,0x14031424,0x00000b03,0x0b030000,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x0b030b03,0x00000b03, +0x9d35a536,0xa557a536,0x9d1594b4,0x9d159d15,0xa55794d4,0xa536add9,0x9d359d15,0xa5769d15,0x854b0000,0x00006c28,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xe77b0000,0x0000960c,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8,0x7aa83165,0x828782a8,0x82a882a8,0x72877287,0x72877287,0x82a87287,0x82a87287,0x31657aa8, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd69ace59,0xce59c638,0xef5ddefb,0xd69ace79,0xef5de73c,0xce59bdf7,0xe71ce71c,0xc618ce59,0x1aaf21ea,0x1aaf220a,0x2a6b0a2d,0x01cc22f0,0x1aaf128f,0x1aaf220a,0x3aed22d0,0x220a1aaf,0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f,0x755f755f, +0xffffffff,0xefffffff,0xffffffff,0xffffefff,0xffffffff,0xefffefff,0xe79ee79e,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0a020000,0x14031403,0x14031464,0x0b031464,0x13e40a02,0x142413e4,0x14031424,0x00000b03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xa5368452,0x9d36a536,0x9d369d15,0x9d359d15,0xa536a556,0x9d159d15,0x9d159d15,0x9d3594f5,0xe77b0000,0x0000960c,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0xaece0000,0x0000854b,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165,0x31652924,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x31653165,0x21043165, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0xbde6e70b,0xce68b5a5,0xce68b5a5,0xce68d6a9,0xef4affed,0xd689deea,0xce68e729,0xce68ce68,0xb6bbc7bf,0xb6bbb6bb,0xb6bbb6bb,0x00000000,0xb6bbb6bb,0xb6bb0000,0xb6bbb6bb,0xc7bfb6bb,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef, +0x0000a514,0x00000000,0x9cd30000,0x528a0000,0xad75ad55,0x0000528a,0x8c710000,0xad7552aa,0x2965a514,0x29652965,0x9cd32965,0x528a2965,0xad75ad55,0x2965528a,0x8c712965,0xad7552aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6, +0x72e718a1,0x7b0772e7,0x6aa66aa6,0x18a17b07,0x72e718a1,0x6aa672e7,0x6aa649e4,0x18a16aa6,0xdedb8410,0xf8003186,0xf800fd00,0xffe0fd00,0xfd00f800,0xfd00ffe0,0xef5df800,0x31869cd3,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc627ce68,0xef6cbdc6,0xb5a5e729,0xce68deea,0x63006300,0xce48e729,0xe7296300,0xc627ce68,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae, +0x0000632c,0x5acb0000,0x84305aeb,0x00000000,0x632c0000,0x94b2528a,0xb5960000,0x5acb9492,0x2965632c,0x5acb2965,0x84305aeb,0x29652965,0x632c2965,0x94b2528a,0xb5962965,0x5acb9492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0xbccc2922,0xb48b9c29,0xbcccbccc,0x18a1bccc,0xe71c8c51,0xfd0039e7,0xffe0ffe0,0xfd00ffe0,0xffe0fd00,0xfd00ffe0,0xef7dfd00,0x2965ad55,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729e729,0x6b40d689,0xe7296300,0x39e0c627,0x63006300,0xd6895280,0xce68ce68,0xce68ce68,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x0000c7bf,0x00000000,0xb6bb0000,0x8c717bef,0xc73f73ae,0x7bef5f7e,0x73ae7bef,0x5f7e73ae,0x73ae5f7e,0x7bef7bef,0x8c718c71,0x8c717bef,0xf80073ae,0x7bef8800,0x73ae7bef,0x880073ae,0x73ae8800,0x7bef7bef,0x8c718c71, +0x00009492,0x94925acb,0xa5340000,0x00008c51,0x528a0000,0x94b20000,0xad754a69,0x0000ad55,0x29659492,0x94925acb,0xa5342965,0x29658c51,0x528a2965,0x94b22965,0xad754a69,0x2965ad55,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x9c299c29,0x18a19c29, +0x9c2918a1,0xa38772e7,0xbcccbccc,0x2102bccc,0xb48b2922,0x9c29b48b,0x62869c29,0x18a16286,0xdefb8c51,0xf80039e7,0xfd00fd00,0xf800fd00,0xfd00ffe0,0xf800f800,0xef7df800,0x3186a514,0x630c3186,0x9492738e,0x94928c71,0x5acb6b4d,0x9cf36b6d,0x7bcf8c51,0x7bcf8410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xf78b6300,0x39c0ce48,0xd68918e0,0xc627ce68,0x294039c0,0xce68d6a9,0xad64d6a9,0xe7296300,0xc7bf0000,0x00000000,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xb6bb0000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xffffc73f,0x767fc73f,0x5f7e767f,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xf800a820,0x9000a820,0x88009000,0x7bef73ae, +0x00008c51,0x9cd3b596,0xad750000,0x0000b596,0x8c510000,0x94b20000,0x00009492,0xa5344a69,0x29658c51,0x9cd3b596,0xad752965,0x2965b596,0x8c512965,0x94b22965,0x29659492,0xa5344a69,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0x72e79b47,0x18a1bccc, +0xbccc18a1,0xa387bccc,0x9c29bccc,0x18a1bccc,0x9c292102,0x9c299c29,0xffff9b47,0x18a172e7,0xc6188c51,0x39e7e71c,0xc800c800,0xc800fd00,0xf800fd00,0xc800c800,0xef7d4208,0x2965ad55,0x5acb2945,0x5acb5acb,0x5acb5acb,0x7bcf6b6d,0x5acb630c,0x8c519492,0x7bcf7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a818e0,0xce68ce68,0xce68ce68,0xd6a9d6a7,0xce68ce68,0x1080ce68,0xce68ce68,0xce68e729,0x0000ffff,0x00000000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x0000ffff,0xb6bb0000,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xc73f7bef,0x8c715f7e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xf8007bef,0x8c718800,0x6b4d8c71, +0x0000ad75,0xb5b6ad75,0x00000000,0x00000000,0x9cd3ad75,0xad550000,0x00008430,0xad55528a,0x2965ad75,0xb5b6ad75,0x29652965,0x29652965,0x9cd3ad75,0xad552965,0x29658430,0xad55528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0x6aa618a1,0x72e772e7,0x6aa66aa6,0x10616aa6,0x72e718a1,0x72e772e7,0x6aa641a4,0x18a16aa6, +0x6aa618a1,0x72e772e7,0x41a341a3,0x10616aa6,0x72e718a1,0x72e772e7,0xb5b62902,0x18a141a3,0xad554a49,0xdefbd6ba,0x39c739e7,0xc800f800,0xc800f800,0x39e739e7,0xd6badefb,0x3186a534,0x738e39c7,0x7bcf8c51,0x5acb738e,0x7bcf7bcf,0x7bcf8410,0x632c5acb,0x6b4d8c71,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd6a9ce68,0xe729ce68,0xc627ce68,0xd68918c0,0xdeeaef6c,0xe729ef4a,0xffedce68,0xce4652a0,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0x00000000,0xffff0000,0x00000000,0x7bef7bef,0x73ae8c71,0x8c71767f,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c719000,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef, +0x00005aeb,0x00000000,0x4a490000,0x00005acb,0xad55ad55,0x00000000,0x9cd35acb,0x00000000,0x29655aeb,0x29652965,0x4a492965,0x29655acb,0xad55ad55,0x29652965,0x9cd35acb,0x29652965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xb48b18a1,0xb48bb48b,0xbcccbccc,0x18a19c29,0x9c292102,0xb48bb48b,0xb48b9b47,0x18a1b48b, +0xb48b18a1,0x72c772c7,0x72e7b5b6,0x18a19c29,0x9c292102,0xb48bb48b,0xb5b6dedb,0x18a172c7,0x7bcf4a49,0xdedbce59,0xe71cef7d,0x42084208,0x420839e7,0xef7de71c,0xc638d69a,0x31867bcf,0x528a2965,0x7bcf73ae,0x52aa7bcf,0x84109492,0x7bcf7bcf,0x5acb7bef,0x6b4d6b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x39c0ce68,0xce68ce68,0xd689deea,0x6300ce68,0x63005280,0x39c0e729,0x6b416b41,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xc73f73ae,0x5f7e5f7e,0x73ae5f7e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xa82073ae,0x88008800,0x73ae8800,0x73ae73ae,0x7bef8c71, +0x4a698c71,0x5acb0000,0x00008c71,0x00009cd3,0x000052aa,0x000094b2,0xad7552aa,0x00009492,0x4a698c71,0x5acb2965,0x29658c71,0x29659cd3,0x296552aa,0x296594b2,0xad7552aa,0x29659492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x9c2918a1,0xb5b69c29,0xb5b66286,0x290272c7,0x9c292102,0x72e79c29,0x9c29bccc,0x18a19c29, +0x9c2918a1,0xdedbb5b6,0x72e7b5b6,0x2902b48b,0x9c292102,0x72e79c29,0xb5b6ffff,0x18a16286,0x8c714a49,0xdedbc638,0xe73cdedb,0xf79ef79e,0xf79ef79e,0xdedbe73c,0xc638dedb,0x39e78c71,0x528a2945,0x94929492,0x5acb7bef,0x738e9492,0x841094b2,0x6b4d8410,0x94b26b4d,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xe729ce68,0xd689dec8,0xce68d689,0x39c0c607,0x39c0e729,0x39c039c0,0xce68b5a5,0xce6839c0,0xc7bfffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0xc73f7bef,0x6b4d767f,0x73ae8c71,0x7bef7bef,0xc73fffff,0x8c718c71,0x8c718c71,0x8c718c71,0xf8007bef,0x6b4d9000,0x73ae8c71,0x7bef7bef,0xa820f800,0x8c718c71,0x8c718c71,0x8c718c71, +0x8c71bdd7,0x9cd30000,0x52aa94b2,0x949294b2,0x94b20000,0x00009492,0xbdd70000,0x52aa9cf3,0x8c71bdd7,0x9cd32965,0x52aa94b2,0x949294b2,0x94b22965,0x29659492,0xbdd72965,0x52aa9cf3,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xbccc18a1,0xdedbbccc,0xdedb72e7,0x29226286,0xb48b2922,0xb48bb48b,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0x72e7b5b6,0x29229c29,0xb48b2922,0x72c7b48b,0xb5b6dedb,0x18a172e7,0x42282965,0x84107bcf,0x8c715aeb,0x94b28c71,0x94929492,0x4a698c71,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c51738e,0x738ea514,0x94b26b6d,0x84309492,0x632c738e,0x4a495aeb,0x39c77bcf,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x6b40bde6,0xd689e729,0xdecae729,0xce48c607,0xce68ce68,0xb585d6a9,0xce689ce2,0xce68deca,0x0000ffff,0x0000c7bf,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef, +0xb5b6a514,0xa5340000,0x5acbb5b6,0x9492ad75,0xad550000,0x528abdd7,0x528a0000,0x630c0000,0xb5b6a514,0xa5342965,0x5acbb5b6,0x9492ad75,0xad552965,0x528abdd7,0x528a2965,0x630c2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x72e718a1,0x6aa66aa6,0x6aa6dedb,0x18a16aa6,0x72e718a1,0x41a46aa6,0x6aa66aa6,0x18a172e7, +0x72e718a1,0x28e16aa6,0x6aa66aa6,0x18a16aa6,0x72e718a1,0xffff6aa6,0xb5b6dedb,0x18a141c4,0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0deea,0xef4cce68,0xce686300,0xce68ce68,0xd689e729,0xb5a5ce68,0xe729ffcc,0xce68ce68,0x00000000,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x8c718c71,0xffff7bef,0x767fc73f,0x5f7e767f,0x7bef7bef,0x5f7e767f,0x8c718c71,0x6b4d8c71,0x8c718c71,0xb8207bef,0x9000a820,0x88009000,0x7bef7bef,0x88009000,0x8c718c71,0x6b4d8c71, +0x94b2528a,0x528a0000,0x00005acb,0xa534a514,0x00000000,0x0000632c,0x528a0000,0x5aeb5acb,0x94b2528a,0x528a2965,0x29655acb,0xa534a514,0x29652965,0x2965632c,0x528a2965,0x5aeb5acb,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x6a8572c6,0x6a856a85,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xbccc18a1,0x28e1bccc,0x28e172e7,0x210272e7,0x9c292102,0xbccc49e4,0xbcccbccc,0x18a1bccc, +0xbccc18a1,0x28e1bccc,0xbcccbccc,0x2102bccc,0x9c292102,0xdedb49e4,0xb5b6dedb,0x18a172e7,0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xbdc6ce68,0xce68ce68,0xbde6e729,0xd689ce68,0xce682120,0xce68d6a9,0xdeca6300,0xce68d6a9,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x0000c7bf,0x00000000,0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aec73f,0x6b4d7bef,0xc73fffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xf8007bef,0x73aea820,0x6b4d7bef,0xa820f800,0x73ae73ae,0x7bef6b4d, +0xb5960000,0x00008430,0x8c714a69,0x00005aeb,0x9cd3528a,0x52aa0000,0x5acb0000,0x84300000,0xb5962965,0x29658430,0x8c714a69,0x29655aeb,0x9cd3528a,0x52aa2965,0x5acb2965,0x84302965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x31643184,0x31843184,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x9c2918a1,0x28e172e7,0x28e1b48b,0x2102bccc,0xb48b2902,0xb48b9b47,0x9c299c29,0x18a19c29, +0x9c2918a1,0x28e172e7,0xb48bb48b,0x2102bccc,0xb48b2902,0x28e19b47,0x28e128e1,0x18a16286,0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0x6300ce68,0xce686300,0xc607a523,0xbde6ce68,0xce68ce68,0xce68e729,0xce68ffef,0xffffffff,0x00000000,0x00000000,0x00000000,0xffff0000,0x00000000,0xc7bf0000,0xb6bb0000,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71, +0xa5140000,0x0000a514,0xa5340000,0x0000528a,0x8c719cd3,0x00000000,0x00008c71,0x8c519492,0xa5142965,0x2965a514,0xa5342965,0x2965528a,0x8c719cd3,0x29652965,0x29658c71,0x8c519492,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x7ae49365,0x7ae49365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x72e77ac6,0xb48bb48b,0x18a1b48b, +0x9c2918a1,0x7ac69c29,0xbccc9c29,0x2102bccc,0x9c292922,0x28e17ac6,0x28e172c7,0x18a172c7,0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xc607ce68,0x39c0deea,0xd68939c0,0x39e0e729,0xc627e729,0x2960c607,0xce466300,0xdecace68,0x0000ffff,0x0000ffff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb6bbc7bf,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xc73f7bef,0x7bef5f7e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xf8007bef,0x7bef8800,0x73ae73ae,0x73ae73ae,0x7bef73ae, +0x00000000,0x00000000,0xad750000,0x00008c51,0x9cd3ad55,0xad754a69,0x00008c51,0x9cd3ad75,0x29652965,0x29652965,0xad752965,0x29658c51,0x9cd3ad55,0xad754a69,0x29658c51,0x9cd3ad75,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xa363a363,0xa363a363,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x6aa641a4,0x6aa66aa6,0x18a172e7, +0x6aa618a1,0x49e46aa6,0x72e749e4,0x18a172e7,0x72e718a1,0x28e141a4,0x28e128e1,0x18a172e7,0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68ce68,0xd689ce68,0xdeeace68,0x63005280,0xce68dec8,0xe70bbde6,0xce4839c0,0xce68ffec,0x0000ffff,0xffff0000,0x00000000,0x0000c7bf,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4d7bef,0x73ae73ae,0x73ae767f,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x767fc73f,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae9000,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x9000f800,0x7bef7bef, +0x00000000,0x00008c71,0xad75528a,0x0000a514,0xad559cf3,0xb5965aeb,0x000094b2,0xad55b596,0x29652965,0x29658c71,0xad75528a,0x2965a514,0xad559cf3,0xb5965aeb,0x296594b2,0xad55b596,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc, +0xbccc18a1,0x9c299c29,0x9c297ac6,0x2902b48b,0xbccc2922,0xb48bbccc,0xbccc72e7,0x18a1bccc,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0x39c0c627,0xce68e729,0xce68c607,0x39c039c0,0xd689ce68,0xce68ce68,0xce68ce68,0xce682100,0x0000ffff,0x00000000,0x00000000,0xc7bf0000,0x00000000,0x00000000,0x00000000,0xb6bb0000,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef, +0x00008430,0x9cd3bdd7,0x52aa0000,0x00000000,0x4a6952aa,0xb5960000,0x528ab5b6,0x52aa0000,0x29658430,0x9cd3bdd7,0x52aa2965,0x29652965,0x4a6952aa,0xb5962965,0x528ab5b6,0x52aa2965,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc, +0xbccc18a1,0x72e7b48b,0xb48bb48b,0x59632102,0x21025963,0xb48b9c29,0xb48b9c29,0x18a1bccc,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xce68d689,0xce68b5a5,0xce68ce68,0xce68ce68,0xce68deea,0xe7295280,0xce68deea,0xce68ce68,0xffffffff,0x0000ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xc7bfffff,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae, +0x000094b2,0x9cf3ad75,0x00005acb,0x00000000,0x00007bef,0x00000000,0x52aa0000,0xad550000,0x296594b2,0x9cf3ad75,0x29655acb,0x29652965,0x29657bef,0x29652965,0x52aa2965,0xad552965,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41e641e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc, +0x9c2918a1,0x9c299c29,0x29229c29,0x5963b3a9,0xb3a95963,0xbccc2922,0xbcccbccc,0x18a1bccc,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6, +0x73ae7bcf,0x19e3738e,0x08e10901,0x1a231142,0x84103c47,0x224452aa,0x19c319a3,0x630c1162,0x08621083,0x08631083,0x10831083,0x10831083,0x10831083,0x10831082,0x10831083,0x10830862,0x41cc41cc,0x20c60021,0x00b009b1,0x31091884,0x20c61083,0x20c609b1,0x314a1884,0x18840000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x18a118a1,0x18a10840,0x512218a1,0x51224902,0x51225122,0x18a15122,0x08400840,0x18a10840, +0x630c39e7,0x29453186,0x29452945,0x29452945,0x21242945,0x29452945,0xa5342945,0x3186630c,0x318639e7,0x31863186,0x31863186,0x31863186,0x29653186,0x31863186,0x31863186,0x31863186,0x318639e7,0x29453186,0x29452945,0x31863186,0x31863186,0x29452945,0x31862945,0x31863186,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x5b8132d1,0xacc14183,0x90828be1,0x2a6f32d1,0xbccc146d, +0x8c5173ae,0xa51411a2,0x7bcf8410,0x1a237bef,0x1a231a23,0x94927bef,0x94b28c51,0x114239e7,0x10821083,0x18c51083,0x10831083,0x08620862,0x18a40841,0x18c518c5,0x108318c5,0x08620862,0x31090021,0x20c6314a,0x09b109d1,0x310920c6,0x20c61083,0x28c809d1,0x002120c6,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x7ae49365,0x93659365,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0xb48b1061,0x2902b48b,0xb3a9ab88,0xab68ab68,0xab88ab88,0xab88ab68,0xb48b2902,0x18a1b48b, +0x7bef4a69,0x108239e7,0x21242945,0x29452945,0x29452945,0x29452945,0xb5b61082,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x73ae7bcf,0x7bef7bef,0x7bcf7bcf,0x7bcf7bcf,0x7bef7bef,0x29657bef,0x7bef4a69,0x7bcf7bcf,0x738e7bcf,0x7bcf738e,0x738e7bcf,0x738e738e,0x7bcf7bcf,0x29657bef,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x8c717bef,0xfff673ae,0x7beffd65,0x73ae7bef,0xfd6573ae,0x73aefd65,0x7bef7bef,0x8c718c71,0x8c717bef,0xdd7273ae,0x7befac6e,0x73ae7bef,0xac6e73ae,0x73aeac6e,0x7bef7bef,0x8c718c71,0x8c717bef,0x39e773ae,0x7bef31a6,0x73ae7bef,0x31a673ae,0x73ae31a6,0x7bef7bef,0x8c718c71,0x81a1b48b,0x61407180,0x9082b8a2,0x5b8132d1,0xacc13142,0x90828be1,0x2a6f32d1,0xb48b146d, +0x7bcfbdd7,0xb5b622a4,0xb5b63c07,0x39c71a23,0xce592264,0x7befa534,0x7bef9492,0x31a68c51,0x10830864,0x18c518c5,0x00211083,0x108318c5,0x20e60841,0x18c518c5,0x10831083,0x10830863,0x00211884,0x314a1884,0x3109314a,0x20c620c6,0x314a1083,0x00b009d1,0x0021314a,0x20c6314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x8b43abc5,0xa384abc5,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0xb48b0840,0xa34720e2,0xa347a368,0xa347a347,0xa3479b47,0xa368a347,0x2102a388,0x0840b46b, +0x73ae4a49,0x000039e7,0x18c31082,0x18c318c3,0x10a218c3,0x108218c3,0xb5960000,0x3186738e,0x73ae4a49,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x3186738e,0x73ae4a49,0xb596b596,0xb596b596,0xad55b596,0xad55ad55,0xa514a514,0xad55b596,0x3186738e,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xfffffff6,0xff69fff6,0xfd65ff69,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0xe615dd72,0xbcd0dd72,0xac6ebcd0,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x422839e7,0x31a639e7,0x31a631a6,0x7bef73ae,0x81a1bccc,0x61407180,0x9082b8a2,0x314232d1,0xb5b65b81,0x90828c51,0x2a6f32d1,0xbccc146d, +0xb596b596,0x11421142,0x11421142,0x7bef2264,0x114219a3,0x9cf3b596,0x7bef2b05,0x1a231a23,0x398a1083,0x20c5396a,0x08610862,0x08621063,0x396a0841,0x108318c5,0x10821083,0x08620862,0x188420c6,0x00001884,0x00000021,0x20c609b1,0x310920c6,0x00b009d1,0x31090021,0x28c820c6,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x8b43abc5,0x8b438b43,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0x29020840,0x51c4a347,0x494351c4,0x51c451a4,0x51c451c4,0x51c451c4,0xa34751a4,0x08402902, +0x7bef4a49,0x39e77bef,0x00000000,0x00000000,0x00000000,0x00000000,0xb5964208,0x29657bef,0x7bef4a49,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x29657bef,0x7bef4a49,0xb596b596,0xad55b596,0xce59b596,0xa514ce59,0xb596b596,0xb596ad55,0x29657bef,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xfff67bef,0x8c71fd65,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0xdd727bef,0x8c71ac6e,0x6b4d8c71,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x39e77bef,0x8c7131a6,0x6b4d8c71,0x81a172e7,0x61407180,0x9082b8a2,0x41833142,0xb5b65b81,0x90828c51,0x2a6f32d1,0x72e7146d, +0x1a231a23,0x7bef33e6,0x39c76b6d,0x84107bef,0x7bef9492,0x19e31142,0x1a233c27,0x39c71a23,0x08411084,0x10830841,0x08620862,0x08621083,0x398a0841,0x10830862,0x41ab0841,0x108318c5,0x188428c8,0x314a20c6,0x20c60021,0x00b009b1,0x314a20c6,0x00b009d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xab880840,0x51c4a347,0xb3889ac6,0xab8851a4,0x51a4ab88,0xb3a99ac6,0xa36851c4,0x1881ab88, +0x7bef4a49,0x7bcfad55,0x39c739e7,0x00000000,0x00000000,0x39e739e7,0xa51473ae,0x318673ae,0x7bef4a49,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x318673ae,0x7bef4a49,0xb596ad55,0xb596b596,0x1082b596,0xce591082,0xb596ad55,0xa514b596,0x318673ae,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0x7bef7bef,0x73ae8c71,0x8c71ff69,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c71bcd0,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x7bef7bef,0x73ae8c71,0x8c7131a6,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x20e2bccc,0x31423142,0x9082b8a2,0x39633963,0xacc13142,0x29028be1,0x2a6f32d1,0x9c293142, +0x3c075aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x2b057bef,0x39c78430,0x5aeb2244,0x84309cd3,0x10831082,0x08621083,0x10830862,0x08630863,0x08411083,0x10840862,0x08421083,0x10831083,0x18843109,0x18841884,0x20c60021,0x00b009b1,0x09b120c6,0x09b109d1,0x002109b1,0x1884314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xab881881,0x4943a347,0xa3479ac6,0xa3474983,0x41228a85,0xb3a9a347,0xa34751c4,0x18a1ab88, +0x7bcf4a49,0xb596b596,0x7befb596,0x42084208,0x420839e7,0xb5967bef,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x31867bcf,0x7bcf4a49,0xb596b596,0xb596ad55,0x10822104,0x21041082,0xb596ce59,0xad559cf3,0x31867bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae7bef,0x73ae73ae,0x73ae73ae,0xfff673ae,0xfd65fd65,0x73aefd65,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0xdd7273ae,0xac6eac6e,0x73aeac6e,0x73ae73ae,0x7bef8c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x39e773ae,0x31a631a6,0x73ae31a6,0x73ae73ae,0x7bef8c71,0x20e29c29,0x20e220e2,0x20e220e2,0x290220e2,0x29022902,0x20e220e2,0x2a6f32d1,0x9c292902, +0x5aeb8c51,0xb5b6b596,0x11622b45,0x6b4db596,0x3386bdd7,0x1a239492,0xc6185aeb,0x7bef7bef,0x10830862,0x10831083,0x10821083,0x20e51083,0x08620863,0x00220862,0x086218c5,0x10831083,0x00000021,0x20c620c6,0x31091884,0x00b009d1,0x09b11083,0x3109314a,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0xa384a384,0x8b438b43,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0xb3a918a1,0x49638a65,0x498351a4,0x51c451c4,0x51c44963,0x51a44983,0xa34751c4,0x18a1ab88, +0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0x39e78c71,0x8c714a49,0xc638c638,0xce59c638,0x00002104,0x21040000,0xc638ce59,0xc638c638,0x39e78c71,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0xfff67bef,0x6b4dff69,0x73ae8c71,0x7bef7bef,0xfff6ffff,0x8c718c71,0x8c718c71,0x8c718c71,0xdd727bef,0x6b4dbcd0,0x73ae8c71,0x7bef7bef,0xdd72e615,0x8c718c71,0x8c718c71,0x8c718c71,0x39e77bef,0x6b4d31a6,0x73ae8c71,0x7bef7bef,0x39e74228,0x8c718c71,0x8c718c71,0x8c718c71,0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29, +0x08e17bef,0xbdd71a23,0x2b053c47,0xb59622a4,0x2b05ad55,0x19c32244,0x21041182,0xb596c638,0x08410862,0x18c5398a,0x10830862,0x18c520e6,0x08621083,0x08411083,0x18c518a5,0x10830862,0x18840021,0x00b020c6,0x10831884,0x09b109d1,0x09b11083,0x002200b0,0x002109b1,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0xabc58b43,0xa384abc5,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xab8818a1,0x51c49ac6,0xa347ab88,0xab8851a4,0x51c4ab88,0xab88a347,0xa34751c4,0x18a1b3a9, +0x42282965,0x84107bcf,0x528a5aeb,0x5acb4a69,0x52aa5acb,0x4a69528a,0x5aeb73ae,0x39c77bcf,0x42282965,0x8c717bcf,0x7bcf9cf3,0x94b273ae,0x84309492,0x6b6d7bcf,0x5aeb6b4d,0x39c77bcf,0x42282965,0x84107bcf,0x528a5aeb,0x21048c71,0x632c2104,0x6b6d528a,0x5aeb73ae,0x39c77bcf,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7, +0x7bef7bef,0x1a031122,0xb5963c27,0x19e31a23,0x19c32244,0x8c5131a6,0x39c77bef,0xc6182264,0x10831083,0x08620841,0x18a51083,0x108418c5,0x08411083,0x084118c5,0x398a3129,0x108418c5,0x18840021,0x00b020c6,0x10831884,0x314a314a,0x09b11083,0x20c600b0,0x002120c6,0x188409b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0xab880840,0x59c4a347,0xa347ab88,0xab8851c4,0x51a4ab88,0xab68a367,0xa34751c4,0x18a1ab88, +0x5aeb2965,0x21245acb,0xb5b6738e,0xad55ad55,0xa534ad55,0x6b4da534,0x5acbad55,0x39c7528a,0x5aeb2965,0x632c5acb,0x8c718c71,0x632c6b4d,0x5acb6b4d,0x7bef5acb,0x5acb8430,0x39c7528a,0x5aeb2965,0x6b6d6b6d,0x4a69738e,0x84304a69,0x5acb8430,0x4a696b6d,0x5acb6b4d,0x39c7528a,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8c718c71,0xffff7bef,0xff69fff6,0xfd65ff69,0x7bef7bef,0xfd65ff69,0x8c718c71,0x6b4d8c71,0x8c718c71,0xe6157bef,0xbcd0dd72,0xac6ebcd0,0x7bef7bef,0xac6ebcd0,0x8c718c71,0x6b4d8c71,0x8c718c71,0x42287bef,0x31a639e7,0x31a631a6,0x7bef7bef,0x31a631a6,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x5b817462,0xb8a23963,0x74629082,0x146d5b81,0xbccc0b4a, +0x7bef7bef,0x1a232b05,0x11422284,0x224439c7,0x33662264,0x2b05a514,0x7bef738e,0x52aa2b05,0x10821083,0x10831083,0x398a398a,0x398a398a,0x08410862,0x0862398a,0x08410841,0x08620841,0x1884314a,0x00b009b1,0x10831884,0x108341cc,0x09b11083,0x314a00b0,0x20c63109,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x94926244,0x41a373ae,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0xab880840,0x51a4a347,0x498351a4,0x51a451a4,0x51c44963,0x49434983,0xa34751a4,0x0840ab88, +0x630c3186,0x29457bef,0x08610000,0x10820861,0x10821082,0x000010a2,0x8430a534,0x2104630c,0x630c3186,0x6b6d7bef,0x5acb73ae,0x7bcf6b4d,0x8430738e,0x7bef8c71,0x84308410,0x2104630c,0x630c3186,0x6b6d7bef,0x6b6d5aeb,0x528a528a,0x6b6d528a,0x6b6d7bcf,0x8430528a,0x2104630c,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x73ae73ae,0x7bef7bef,0xffff7bef,0x73aefff6,0x6b4d7bef,0xfff6ffff,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0xe6157bef,0x73aedd72,0x6b4d7bef,0xdd72e615,0x73ae73ae,0x7bef6b4d,0x73ae73ae,0x7bef7bef,0x42287bef,0x73ae39e7,0x6b4d7bef,0x39e74228,0x73ae73ae,0x7bef6b4d,0xb8a29c29,0x146d9082,0x2a6f32d1,0x39e74a49,0xb8a24183,0x74629082,0x146d5b81,0x9c290b4a, +0x8430738e,0x1a237bef,0x8c512ae5,0x11427bef,0xc6383c27,0x2b457bcf,0x5acb630c,0x11621122,0x10831083,0x08421082,0x08410841,0x08410841,0x08621083,0x10830841,0x10831083,0x08620862,0x18840021,0x00b009d1,0x41cc1884,0x20c641cc,0x09d120c6,0x20c600b0,0x314a0022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0xa5342923,0x292373ae,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0xab880840,0x51c4a347,0xa347ab88,0x92a54122,0x4983a347,0x9ac68a85,0xa34751a4,0x18a1ab88, +0x5acb2945,0x29457bef,0x00000000,0x00000000,0x00000000,0x00000000,0x6b4da514,0x212439c7,0x5acb2945,0x6b6d7bef,0x7bef7bef,0x5acb7bcf,0x94929492,0x84107bef,0x6b4d7bcf,0x212439c7,0x5acb2945,0x73ae7bef,0xb596b596,0x6b6d8c71,0xce59528a,0x7bcfb596,0x6b4d7bcf,0x212439c7,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0xb8a2bccc,0x146d9082,0x2a6f32d1,0x39e74a49,0x9082b8a2,0x74623963,0xb5b65b81,0xbccc8c51, +0xb596b596,0x1a235aeb,0x8430b596,0x39e78430,0x3be71a23,0x33c69cf3,0x7bef1a03,0x5aebad55,0x08410862,0x108318c5,0x10821082,0x10830862,0x08620861,0x08421083,0x086318c5,0x10831083,0x18840021,0x00b009d1,0x00211884,0x20c641cc,0x09d128c8,0x20c609b1,0x18840022,0x00b009b1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0xc6187ac4,0x51e28430,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0xab881061,0x51c4a347,0xa2e69ac6,0xab8851a4,0x4943ab88,0xb3a99ac6,0xa34751c4,0x18a1ab88, +0x738e39c7,0x4a697bcf,0x000031a6,0x00000000,0x00000000,0x31a60000,0x8430528a,0x2124738e,0x738e39c7,0x6b4d7bcf,0x7bcf8c71,0x5acb7bcf,0x8c516b4d,0x94b294b2,0x8430738e,0x2124738e,0x738e39c7,0xb5968c71,0xb596b596,0x528a39c7,0x84308430,0xb596ce59,0x7bcfb596,0x2124738e,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x8c717bef,0x7bef7bef,0x6b4d7bef,0xfff67bef,0x7beffd65,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0xdd727bef,0x7befac6e,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x39e77bef,0x7bef31a6,0x73ae73ae,0x73ae73ae,0x7bef73ae,0xb5b66aa6,0x146d8c51,0x2a6f32d1,0x5b817462,0x9082b8a2,0x74623142,0x146d5b81,0x72e70b4a, +0x19c322c4,0x1a231122,0x2284bdd7,0x7bef94b2,0x1a2339c7,0x39e71142,0xad551a23,0x1a23b5b6,0x08410862,0x20c518c5,0x10820862,0x41cc1082,0x18c518c5,0x10830862,0x08620841,0x10831083,0x31090021,0x00b009d1,0x00211884,0x310941cc,0x314a314a,0x20c61884,0x18840022,0x00b009d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0xce798ac3,0x8ac3a534,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0x290218a1,0x51a4a368,0x51c44963,0x51c451c4,0x49434963,0x51a451c4,0xa34751c4,0x08402902, +0x528a2965,0x6b6d5aeb,0x21246b6d,0x31863186,0x29452104,0x42082104,0x8c516b4d,0x29456b4d,0x528a2965,0x6b6d5aeb,0x632c9cd3,0x84308c51,0x6b6d5aeb,0x5acb5acb,0x8c516b4d,0x29456b4d,0x528a2965,0xce595aeb,0x528ace59,0x6b6d528a,0x6b6d6b6d,0xce596b6d,0x8c51ce59,0x29456b4d,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x6b4d7bef,0x73ae73ae,0x73aeff69,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xff69fff6,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73aebcd0,0x73ae73ae,0x73ae8c71,0x7bef7bef,0xbcd0dd72,0x7bef7bef,0x6b4d7bef,0x73ae73ae,0x73ae31a6,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x31a639e7,0x7bef7bef,0xb8a2bccc,0x29029082,0x2a6f32d1,0x5b817462,0x31423142,0x74623142,0x39635b81,0x9c294183, +0x7bef1a23,0x11227bef,0x3c471a23,0x2b25b596,0x08e13186,0x7bef8c51,0x1a231142,0x84301a23,0x08411083,0x398a396a,0x0862398a,0x08410862,0x18c5398a,0x08621083,0x398a0841,0x108318c5,0x31090021,0x09b109d1,0x20c620c6,0x18841884,0x18840021,0x20c620c6,0x314a3109,0x09d109d1,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x51e2a384,0xabc551e2,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xb48b0840,0xa34720e2,0x9b27a347,0xa347a347,0xa347a388,0xa347a347,0x2102a347,0x18a1b48b, +0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x8c71630c,0x7bcf8c71,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x528a2945,0x52aa7bcf,0x5aeb630c,0x7bcf5aeb,0x528a632c,0x7bef8430,0x7bcf5aeb,0x3186528a,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x2902bccc,0x20e220e2,0x20e220e2,0x5b817462,0x29022902,0x20e220e2,0x20e220e2,0x9c292902, +0xb596b596,0x7bef6b4d,0x1a232965,0x3c473c47,0x7bef1a23,0x7bef8c51,0x11629492,0x9cf36b6d,0x10820862,0x08410841,0x10820841,0x10830863,0x314a0841,0x10831083,0x08411083,0x1083398a,0x310941cc,0x09d120c6,0x314a00b0,0x1884314a,0x314a1884,0x3109314a,0x00223109,0x314a314a,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff, +0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x8b438b43,0x8b438b43,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xb48b18a1,0x2902b46a,0xab88ab88,0xab88ab88,0xab88ab68,0xab88ab88,0xbcac2922,0x1881b48b, +0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x6b6d39c7,0x630c5acb,0x52aa4228,0x738e738e,0x630c4a69,0x630c632c,0x422852aa,0x318652aa,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0x9c29bccc, +0xb596b596,0xa534b596,0x7bef94b2,0x1a232244,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x10831083,0x08621083,0x10830862,0x08620862,0x08411083,0x10830862,0x10821084,0x10830841,0x310941cc,0x09b10021,0x314a00b0,0x1884314a,0x00221884,0x002109b1,0x18841884,0x18840021,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef, +0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x292341e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x18a118a1,0x18a10840,0x188118a1,0x08400840,0x18a10840,0x084018a1,0x18a118a1,0x18a118a1, +0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x31a639c7,0x318631a6,0x29653186,0x29652965,0x39c72124,0x31a639c7,0x21242965,0x318631a6,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x73ae7bcf,0x4a69738e,0x29452945,0x5aeb39c7,0x8410ad75,0x5aeb52aa,0x4a494228,0x630c39e7,0x31863186,0x31863186,0x94b20020,0x52aa94b2,0x52aa52aa,0x318652aa,0x31863186,0x52aa52aa,0xe6f4d673,0xc5d0d693,0xded4fffa,0xef16c611,0xf737deb3,0xd672d652,0xdeb3d673,0xc611d693,0x94505248,0xa4b24a08,0x6aec9c71,0x94505269,0x52495249,0xa4904a28,0x6aecb514,0x9cd3b470, +0x6a865a45,0x39837b07,0x6aa66265,0x41846a86,0x6aa66aa6,0x31426286,0x6aa66286,0x7b076285,0x6ac76aa6,0x6aa63963,0x6a866aa6,0x6aa63963,0x6aa66aa6,0x6aa66aa6,0x39633963,0x6aa63963,0xef5def5d,0xe73ce73c,0xdefbdefb,0xd69adedb,0xdedbd6ba,0xd6bad6ba,0xd6bad6ba,0xce79d69a,0xff89ffa9,0xff28ff68,0xfec7fee7,0xf646f686,0xfe87f646,0xfe66fe66,0xfe26fe46,0xfde6fe06, +0x6efb7f1b,0x4eda5efa,0x1e782e99,0x06160637,0x06580617,0x06370637,0x06170637,0x05d605f6,0x31642923,0x39643164,0x31643164,0x31643964,0x31643164,0x31643164,0x31643164,0x31643164,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232923,0x29232103,0x20e22923, +0x00000000,0x00000000,0x00000000,0x7a080000,0x00005165,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800,0xf800f800, +0x8c5173ae,0xa5144208,0x7bcf8410,0x5aeb7bef,0x5aeb5aeb,0x94927bef,0x94b28c51,0x39c739e7,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x52aa52aa,0x94b294b2,0x318652aa,0x52aa3186,0xde74e6b5,0xce52d673,0xd653de94,0xe6d4deb3,0xded4b56e,0xd693bdaf,0xcdf2e6d5,0xe6b5ce52,0x7b8d9c91,0x8bef6b0c,0x9cd36aec,0x524983ce,0xb555bdd7,0xa4d28c0f,0x6aca83ce,0x83ae7b6c, +0x62863963,0x418493a9,0x7b076aa6,0x398349e4,0x6a869388,0x39639bc9,0x7b076285,0x62863983,0xb48b49e4,0xb48bb48b,0xb48bb48b,0xac4aac4a,0xb48bb48b,0xb48bac2a,0xb48bb48b,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xdedbe71c,0xd6bad6ba,0xc638d69a,0xffeaeea8,0xffaaffca,0xffcaffaa,0xffaaffaa,0xff8aff8a,0xfea6ff08,0xf665f686,0xe5a5f645, +0x975c0637,0x7f1b8f3c,0x873c873c,0x7f1b873c,0x6f1b7f1b,0x0e583699,0x06170637,0x05730616,0x83053184,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x31848305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305,0x936541e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x93659365,0x93257ae4,0x93659365,0x29238305, +0x00000000,0x00000000,0xc0e40000,0x98a398a3,0x98a398a3,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x6aca0000,0x00004a07,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0xfb60f800,0xfb60f800,0x0000f800,0xf8000000,0xf800fb60,0xfb60f800,0xf800f800, +0x7bcfbdd7,0xb5b6738e,0xb5b6ad55,0x39c75aeb,0xce59630c,0x7befa534,0x7bef9492,0x31a68c51,0x94b252aa,0x94b23186,0x52aa0020,0x318652aa,0x31863186,0x31860020,0x52aa52aa,0x94b294b2,0xe6d5fffa,0xb56ece31,0xd672d652,0xf757d672,0xf757e6b5,0xded4e6d5,0xd693e6f4,0xd653e6d5,0x9c91b554,0xb554bdb6,0x83efa4f3,0xad3594b2,0x83ce8c30,0x94309cb2,0xb4f35aaa,0x5a69b596, +0x6ac641a4,0x6aa65a45,0x7b076a86,0x6ac749e4,0x62656ac6,0x39836286,0x93a86aa6,0x39639be9,0xb48b3963,0x9c299be8,0x9c29a44a,0x9c299c29,0xa4299be9,0xa44a9c29,0xa44aa46a,0x3963b46b,0xf79ededb,0xef7df79e,0xf79ef79e,0xf79ef79e,0xef5def7d,0xe71ce71c,0xdedbdefb,0xce59dedb,0xffeceea9,0xffccffec,0xffecffec,0xffecffec,0xffabffcb,0xff07ff28,0xfec7fee7,0xedc5fea6, +0xa77d0637,0x975c975c,0xa75da75d,0x9f5ca75d,0x7f1b8f3c,0x2e9946ba,0x0e581e78,0x05940e58,0x7ae43184,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x31847ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4,0x8b4341e6,0xabc5a363,0xabc5abc5,0x8b43abc5,0xa384abc5,0x8b43a384,0x8b438b43,0x29237ae4, +0x00000000,0x00000000,0xe082ce79,0xce79c0e4,0x98a3c0e4,0x94b298a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x72a872a8,0x72a872a8,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x0000f800,0x0000fb60,0x00000000,0xfb600000,0x0000fb60,0xf800f800, +0xb596b596,0x39c739c7,0x39c739c7,0x7bef630c,0x31a64228,0x9cf3b596,0x7bef7bef,0x5aeb5aeb,0x318652aa,0x31863186,0x31863186,0x31863186,0x94b294b2,0x31863186,0x31863186,0x52aa3186,0xdeb4ef16,0xef36d672,0xd652ded4,0xbdafe6d4,0xdeb3c5f1,0xd652de93,0xe6d5e6b5,0xd673d652,0xa4b2b554,0x5a6a9471,0xb555b555,0x83efacf4,0x9cf3ad34,0xa51483ef,0x5289a4d2,0x8c0f83ce, +0x9bc93963,0x62863963,0x9bc96aa6,0x6aa63943,0x62853983,0x396393a9,0x62656aa6,0x9bc94184,0xb48b3963,0xbccc9c29,0xb48bbccc,0xbcccbcac,0xbcccbccc,0xbcccbccc,0x9c29bcac,0x3963b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe73cef5d,0xdedbdefb,0xce59dedb,0xffeeeeaa,0xffeeffee,0xffeeffee,0xffedffed,0xffccffcd,0xff49ff8a,0xf6a7f6e7,0xedc5f6a6, +0xaf7d0637,0xa75da75d,0xaf7da77d,0xa75daf7d,0x8f3c975c,0x56da7f1b,0x06581e78,0x05940657,0x93653184,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x31849365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365,0xabc541e6,0xabc5abc5,0x8b43abc5,0x8b43abc5,0x8b438b43,0x8b438b43,0xa363a384,0x29239365, +0x00000000,0x00000000,0xe082f945,0xe082e082,0xce79e082,0x98a398a3,0x00000000,0x00000000,0x00000000,0x00000000,0x936a0000,0x936a936a,0x72a8936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x0000f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb5aeb,0x7befa514,0x39c76b6d,0x84107bef,0x7bef9492,0x528a39c7,0x5aebad75,0x39c75aeb,0x52aa0020,0x52aa52aa,0x52aa3186,0x52aa52aa,0x94b294b2,0x52aa52aa,0x94b252aa,0x002094b2,0xe6d5ce32,0xcdf2e6f4,0xd673deb4,0xde93deb3,0xdeb3deb4,0xffd8de93,0xd672d672,0xbd8fd652,0xb5556aec,0x6aeab534,0x8c71730b,0x52aa73ae,0x5249a4d3,0x5249ad35,0x6aec6aea,0x94507bcf, +0x7b073983,0x62863983,0x9bc96ac7,0x9bc941a4,0x5a453943,0x39839be9,0x93a96aa6,0x9bc93963,0xb46b3963,0xbccc9c29,0xb48bb46b,0xb46bb48b,0xb48bb48b,0xbcabb48b,0xa44abccc,0x6285b48b,0xf79ededb,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xe71ce73c,0xce59defb,0xffefee8a,0xffeeffef,0xffeeffee,0xffedffee,0xffcdffed,0xffabffec,0xff28ff69,0xe5e5fee8, +0xaf7d0637,0xaf7daf7d,0xaf7daf7d,0xa77daf7d,0x9f5ca75d,0x873c9f5c,0x3eb95efa,0x05942699,0x8b043164,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x31648b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04,0xa34441e5,0xa363a363,0xa344a344,0xa363a344,0xa363a363,0xa363a363,0xa344a344,0x29238b04, +0x00000000,0x00000000,0xf9450000,0xe082ffff,0xc0e4e082,0x000098a3,0x00000000,0x00000000,0x00000000,0x00000000,0xcccf0000,0x936acccf,0x936a936a,0x000072a8,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xf800f800,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000,0xf800f800, +0xa5345aeb,0x7bef7bcf,0x31867bef,0x94b2b596,0x7bef7bef,0x39c78430,0x5aeb5aeb,0x84309cd3,0x52aa52aa,0x318694b2,0x94b23186,0x318694b2,0x31860020,0x94b294b2,0x52aa94b2,0x52aa52aa,0xe6b5ded4,0xe6d5ad0d,0xef16c611,0xde74d693,0xf756f737,0xd672e715,0xd693deb3,0xdeb3d692,0xb5556acc,0x4a28b555,0x5a68ac71,0x736d630b,0x736d9451,0x94306aec,0x7bad83ef,0x62cbbdf7, +0x7b0741c4,0x6aa64184,0x93a86286,0x62653963,0x5a453983,0x41849bea,0x9bc96aa6,0x93a841a4,0xb46a6286,0xb48b9c29,0x9c29b48b,0x9c299c29,0x9c299c29,0xbcab9c29,0x9c29bccc,0x6a86b48b,0xf79ed6ba,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xf79ef79e,0xef7df79e,0xce79ef5d,0xffeeee89,0xffeeffee,0xffedffed,0xffecffed,0xffecffec,0xffebffeb,0xffaaffeb,0xee06ff69, +0xa77d0637,0xaf7daf7d,0xa75da77d,0xa77da77d,0xa75da75d,0xa75d9f5c,0x873c9f5c,0x05d566fb,0x93253184,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x31649325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325,0xa38441e6,0xa384a384,0xabc5abc5,0x8b438b43,0x8b438b43,0xa384a384,0xa384a384,0x29239325, +0x00000000,0x00000000,0x00000000,0xf945f945,0xe082f945,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xcccfcccf,0x936acccf,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x5aeb8c51,0xb5b6b596,0x39c78c51,0x6b4db596,0x9492bdd7,0x5aeb9492,0xc6185aeb,0x7bef7bef,0x318652aa,0x31863186,0x31863186,0x52aa3186,0x52aa0020,0x318652aa,0x31863186,0x52aa94b2,0xb54ec5d0,0xde93e6d5,0xde94de93,0xd672e6d5,0xdeb3deb3,0xef56deb3,0xe6b5deb3,0xef15c5f0,0x6aec9431,0xa514a534,0x6aec83ee,0xc5f8c5f8,0x83cf4a28,0x730bbdf7,0x9c5183ae,0x4a286b4d, +0x9be96aa6,0x628641c4,0x93a86ac6,0x6aa641a4,0x39636aa6,0x41a493a8,0x93a86aa6,0x7b0741a4,0xb48b6aa6,0xbccc9c09,0x9be9b46b,0xbcccbccc,0xbcccbccc,0xb48b9c29,0x9c09bccc,0x6aa6b48b,0xf79ed6ba,0xef7df79e,0xf79ef79e,0xf79eef7d,0xf79ef79e,0xf79ef79e,0xef7df79e,0xd69aef7d,0xffcdee89,0xffc9ffed,0xffccffcc,0xffebffcb,0xffebffeb,0xffeaffeb,0xffcaffea,0xee67ffa9, +0x975c0637,0x873ca77d,0x975c975c,0x975c975c,0x975c975c,0x9f5c9f5c,0x8f3c975c,0x0616873c,0x7ae43164,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x31647ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4,0x8b4341c5,0x8b438b43,0xabc58b43,0xa384a384,0x8b438b43,0xa3638b43,0x8b43abc5,0x29237ae4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x21247bef,0xbdd75aeb,0x7befb596,0xb5966b6d,0x7befad55,0x4a495aeb,0x210439e7,0xb596c638,0x94b252aa,0x002094b2,0x318694b2,0x52aa52aa,0x94b252aa,0x94b294b2,0x94b294b2,0x94b294b2,0xde95e6d4,0xe6d5ef16,0xd672e6b5,0xde95eef6,0xfffaf737,0xdeb3c5d0,0xde74d673,0xdeb3d672,0x528a6b4d,0x52485248,0x94109470,0x83efad13,0x62eb9cd3,0x94116aec,0x6aecb554,0x5b0c9c71, +0x9bc96aa6,0x72c73983,0x41a493a8,0x41846aa6,0x41a46aa6,0x39639388,0x6aa66aa6,0x7b073983,0xb48b6aa6,0xbcccac8b,0x9c29b48b,0xb48bbcac,0xbcccb48b,0xb48b9c09,0x9c09bccc,0x6aa6bcab,0xf79ed6ba,0xef7df79e,0xef5df79e,0xef5def5d,0xef5def5d,0xef5def5d,0xe73cef5d,0xce79e71c,0xffcceea8,0xffc9ffec,0xff88ffed,0xff88ff88,0xff88ff88,0xff88ff88,0xff67ff88,0xee45f746, +0x975c0637,0x873ca75d,0x6efba75d,0x6efb6efb,0x6efb6efb,0x6efb6efb,0x56da6efb,0x05d63eb9,0x93653184,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x31649365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365,0xabc541e6,0xabc5abc5,0xa363abc5,0xabc58b43,0xa384abc5,0xa384a384,0xabc5abc5,0x29239365, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x52aa3186,0xb596ad55,0x528a5aeb,0x4a695aeb,0x8c5131a6,0x39c77bef,0xc618630c,0x52aa52aa,0x318652aa,0x31863186,0x31863186,0x00203186,0x31863186,0x31863186,0x52aa52aa,0xd693deb3,0xde93e6d5,0xd652deb3,0xffb7e6f5,0xd633deb4,0xd672d693,0xe6b5ded4,0xe6d5d672,0x6aec6aec,0xbdb6bdb6,0x8c71ad34,0x4a489c71,0xa4706aec,0x6aec8c30,0x6b4d83ef,0x736e7bf0, +0x9bc96aa6,0x6aa63983,0x39839bc9,0x41a49bc9,0x39639bc9,0x49e47b07,0x7b076286,0x6ac73983,0xb48b3963,0xcd2d9c29,0x9c29b48b,0xb48bbccc,0xbcacb48b,0xac4aa429,0x9c29bccc,0x72e7b48b,0xf79ed6ba,0xef7def7d,0xef5def5d,0xef5def5d,0xef5def5d,0xef7def5d,0xef5def7d,0xd69ae73c,0xffeceea7,0xffc9ffcb,0xff88ff88,0xff88ff88,0xff88ff88,0xffc8ffa8,0xffa8ffc8,0xee66ff87, +0x9f5c0637,0x873c8f3c,0x6efb6efb,0x6efb6efb,0x6f1b6efb,0x7f1b771b,0x771b873c,0x05f65efa,0x93043164,0xa344a344,0xa344a344,0xa363a344,0xa363a363,0xa344a344,0xa344a344,0x31649304,0x930441e5,0x8b048b04,0x8b048b04,0x93048b04,0x93049304,0x8b048b04,0x8b048b04,0x292382c4,0x930441e5,0x8b048b04,0x8b048b04,0x62027263,0x72836202,0x8b048b04,0x8b048b04,0x292382c4, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xfb60f800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x7bef7bef,0x5aeb7bef,0x39c76b4d,0x630c39c7,0x8c71630c,0x7befa514,0x7bef738e,0x52aa7bef,0x94b294b2,0x630c52aa,0x318652aa,0x94b294b2,0x52aa52aa,0x52aa52aa,0x94b294b2,0x002094b2,0xde95bdaf,0xdeb3cdf2,0xe6d4bdd0,0xd672de93,0xd693d673,0xffb9eef6,0xe6d5deb3,0xde74deb4,0xacb2a4f3,0x94517bcf,0xa4b39c51,0xb51483f0,0x736d9c91,0x4a288bef,0x8c314a28,0x6aec8c31, +0x7b076a86,0x6aa649e4,0x626593a9,0x39636a86,0x39639388,0x5a257b07,0x7b073142,0x6ac73983,0xb48b3963,0xbcac9c29,0x9c09b48b,0xbcacbcac,0xbcccbccc,0xb48b9c29,0x9c29bcab,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef5def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef5d,0xffebe688,0xffc9ffca,0xffa8ffc9,0xffc9ffc9,0xffc9ffc9,0xffe9ffc9,0xffc8ffe9,0xee66ff88, +0x975c0637,0x873c873c,0x771b873c,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06166f1b,0x93653184,0xa384abc5,0xabc5abc5,0x8b43abc5,0x8b438b43,0xabc5a363,0xabc5abc5,0x31849365,0x72c641e6,0x72a572c6,0x72c672c6,0x6a8572c6,0x6a856a85,0x72c672a5,0x72c672c6,0x292372c6,0x72c641e6,0x72a572c6,0x72c672c6,0x94926244,0x41a373ae,0x72c672a5,0x72c672c6,0x292372c6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf800fb60, +0x8430738e,0x5aeb7bef,0x8c517bcf,0x31a67bef,0xc638ad55,0x8c517bcf,0x5acb630c,0x39c72965,0x31863186,0x52aa52aa,0x318652aa,0x31863186,0x002052aa,0x52aa52aa,0x31863186,0x52aa0020,0xded4ce31,0xfffece52,0xef15d672,0xde94deb4,0xf756d693,0xc5f0deb3,0xd652ce52,0xc5f0deb3,0xbd969c92,0xa4d37b6e,0xad357bd0,0x4a288bae,0x730b4a49,0xbd968bcf,0x5aaac5f8,0x4a286b4c, +0x5a456aa6,0x62866aa6,0x6a869bc9,0x6aa66286,0x39836aa6,0x8b686aa6,0x7b073983,0x62864184,0xb48b3963,0xbccc9c09,0x9c29b48b,0xa44aa44a,0x9c299c29,0xb48b9c29,0x9c09bcab,0x6aa6b48b,0xf79ed6ba,0xef5def7d,0xef7def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xd6baef7d,0xffebee88,0xff88ffea,0xffc9ff88,0xffc9ffc9,0xffcaffca,0xffc9ffc9,0xffc9ffc9,0xee87ffc9, +0x9f5c0637,0x6efb975c,0x873c6efb,0x873c873c,0x873c873c,0x873c873c,0x7f1b873c,0x06177f1b,0x7ae43164,0xa384a363,0xa384a384,0x8b43abc5,0xa384a384,0xa384a384,0x8b438b43,0x31647ae4,0x316441c5,0x31843164,0x31843184,0x31643184,0x31843184,0x31843184,0x31643164,0x18e23164,0x316441c5,0x31843164,0x31843184,0xa5342923,0x292373ae,0x31843184,0x31643164,0x18e23164, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf8000000, +0xb596b596,0x5aeb5aeb,0x8430b596,0x39e78430,0xa5345aeb,0x9cf39cf3,0x7bef528a,0x5aebad55,0x94b252aa,0x318694b2,0x31863186,0x31863186,0x31863186,0x94b294b2,0x94b294b2,0x002094b2,0xd672e6f4,0xd672eef6,0xeef6eef6,0xeef6e6d5,0xce32e6d5,0xe6d5d672,0xc5f0d653,0xce11ded4,0xa4d26aec,0x52485248,0x5aaa9c92,0x6aec738e,0x736c94b3,0xad1462ca,0x8c309c71,0x9470a514, +0x41a46aa6,0x62866aa6,0x7b077b07,0x62866aa6,0x41a46ac7,0x9bc96aa6,0x9bc93983,0x7b073963,0xb46b49e4,0xbccc9c09,0xbcabb48b,0xb48bb48b,0xb48bb48b,0xbcabb48b,0x9c29bccc,0x6aa6b48b,0xf79ed6ba,0xef7def7d,0xf79eef7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd6baef5d,0xffeaee88,0xffeaffea,0xffe9ffc9,0xffeaffe9,0xffcbffca,0xffa8ffc9,0xffa8ffa8,0xee87ffa8, +0x975c0637,0x975c8f3c,0x975c873c,0x975c975c,0x975c975c,0x7f1b873c,0x771b7f1b,0x0617771b,0x7ae43184,0x8b438b43,0xabc58b43,0x8b43abc5,0x8b43abc5,0xa3638b43,0xa384a384,0x31849325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0x7ae49365,0x7ae49365,0x93047ae4,0x93259325,0x29239325,0x7ae441e6,0x7ae47ae4,0x93657ae4,0xc6187ac4,0x51e28430,0x93047ae4,0x93259325,0x29239325, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x4a49738e,0x5aeb3186,0x632cbdd7,0x7bef94b2,0x5acb39c7,0x39e739c7,0xad555aeb,0x5acbb5b6,0x94b252aa,0x52aa52aa,0x002052aa,0x94b252aa,0x52aa52aa,0x31863186,0x31863186,0x52aa3186,0xd673ce31,0xdeb4de93,0xded4d652,0xce52d652,0xd672d672,0xe6f4de93,0xde93deb3,0xbdd0deb3,0x7bef8c10,0xb535bdf7,0x9c309c70,0x6aec83cf,0x8c718c51,0x734d9c91,0x734d734d,0xa4b2b534, +0x41c46ac6,0x41846265,0x7b077b07,0x6a863983,0x39639bc9,0x9bc96a86,0x9be93983,0x7b0741a4,0xb48b6aa6,0xb48ba44a,0xbcccbccc,0xbcccbccc,0xbcabbccc,0xbcabbccc,0x9c29bccc,0x3963b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xf79ef79e,0xef7def7d,0xef7def7d,0xef7def7d,0xd69aef7d,0xffcaee88,0xffeaffea,0xffeaffea,0xffeaffea,0xffcbffcb,0xffc9ffc9,0xffc8ffa8,0xee66ffc8, +0x975c0637,0x8f3c975c,0x975c8f3c,0x975c9f5c,0x873c975c,0x873c873c,0x7f1b7f1b,0x05f67f1b,0x8b043164,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x31649304,0xa34441e6,0xa363a344,0xa363a363,0xa363a363,0xa363a363,0xa344a344,0xa344a344,0x2923a363,0xa34441e6,0xa363a344,0xa363a363,0xce798ac3,0x8ac3a534,0xa344a344,0xa344a344,0x2923a363, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0x7bef5acb,0x29657bef,0xb5965acb,0x8410b596,0x21243186,0x7bef8c51,0x5aeb39c7,0x84305aeb,0x002052aa,0x31863186,0x31860020,0x31863186,0x318694b2,0x52aa52aa,0x94b252aa,0x52aa52aa,0xef16e6b5,0xd673ff78,0xd693de93,0xdeb3deb3,0xe6f4deb3,0xeef6e6d5,0xce52c611,0xff78d672,0x732d8b8d,0xb5346aec,0x8c10b534,0x83efbd96,0x52486aec,0xc5f76b4d,0x83adc5f7,0x6aec6aec, +0x5a453963,0x41a46265,0x9bc96a86,0x62863983,0x39639bc9,0x7b076286,0x7b0749e4,0x9bc949e4,0xb48b3963,0x9c099c09,0x93e89c29,0x9c099c29,0x9c29a46a,0x9c299c29,0xa42a9c29,0x6aa6b48b,0xef7dd6ba,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def5d,0xd69ae73c,0xffccee88,0xffcaffcb,0xffeaffea,0xffcaffea,0xffcbffcb,0xffc9ffca,0xff88ffa9,0xee65ff87, +0x8f3c0617,0x8f3c8f3c,0x8f3c975c,0x8f3c8f3c,0x873c873c,0x873c8f3c,0x6efb7f1b,0x05f65efa,0x93653184,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x31649365,0xabc541e6,0x8b438b43,0x8b438b43,0xa384a384,0xabc5abc5,0xa384abc5,0xabc5a363,0x2923abc5,0xabc541e6,0x8b438b43,0x8b438b43,0x82e3a384,0xabc58b04,0xa384abc5,0xabc5a363,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x0000fb60,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xfb600000, +0xb596b596,0x7bef6b4d,0x5aeb2965,0xb596b596,0x7bef5aeb,0x7bef8c51,0x39c79492,0x9cf36b6d,0x52aa52aa,0x94b294b2,0x94b294b2,0x94b294b2,0x94b23186,0x94b294b2,0x52aa0020,0x318652aa,0xde93deb4,0xe6d6e6b5,0xd672bdb1,0xd672d652,0xe6d5c5d0,0xdeb3fffb,0xde93d672,0xef15d693,0x9c108bce,0xbd559c30,0xa4d48bf0,0x6aec9cb3,0xb555b555,0x94716b0b,0xa4d25249,0x9c51836e, +0x62853983,0x39436ac7,0x9bc93983,0x628641a4,0x39839bc9,0x9bc96a86,0x7b0749e4,0x93a849e4,0xb48b6aa6,0xb48bb46a,0xb48bb48b,0xb48bb48b,0xb46aac4a,0xb48bb48b,0xbcacbcab,0x6265b48b,0xef5dd69a,0xef5def5d,0xef7def7d,0xef7def7d,0xef7def7d,0xef7def7d,0xef5def7d,0xd69aef5d,0xff4ce648,0xff6bff4b,0xffabffab,0xffabffaa,0xff8bffab,0xffaaffab,0xff8affaa,0xee67ff89, +0x66fb05f6,0x6f1b66fb,0x873c873c,0x873c873c,0x7f1b7f1b,0x873c873c,0x7f1b7f1b,0x05f6771b,0x83053184,0x93049325,0x93259325,0x7ae47ae4,0x7ae47ae4,0x93257ae4,0x93257ae4,0x31648305,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5,0xabc541e6,0xa363a384,0xa384a384,0x8b438b43,0x8b438b43,0xa3848b43,0xa3848b43,0x2923abc5, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xd3ff69ef,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0xd3ffd3ff,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0xb596b596,0xa534b596,0x7bef94b2,0x5aeb630c,0xb5965aeb,0xb596b596,0x5aeb8410,0x8c71b5b6,0x318652aa,0x31863186,0x52aa3186,0x94b294b2,0x94b20020,0x318652aa,0x31863186,0x52aa3186,0xdeb49cab,0xdeb3deb3,0xdeb3d692,0xde93d672,0xdeb4e6f4,0xd693de93,0xd672d652,0xde93ce31,0xbdf75a89,0x9c306aec,0x94119c30,0x6aec9c31,0x6aec7bef,0x9c719c71,0xa4d28c0f,0x9c30734d, +0x6aa641c4,0x9bc96aa6,0x6ac63983,0x41a493a8,0x6a866286,0x7b076286,0x7b076ac6,0x9be96aa6,0x6aa66aa6,0x6aa63963,0x62866aa6,0x39633963,0x6aa63963,0x39636aa6,0x6aa66ac7,0x6ac66aa6,0xa534ad55,0xbdd7ad75,0xd69ac638,0xd69ad6ba,0xd69ad69a,0xdedbd6ba,0xdefbdedb,0xe71cdefb,0xc423c444,0xd524cc83,0xe647ddc5,0xee67ee87,0xee27ee46,0xeea8ee88,0xeee9eec9,0xff0bf6ea, +0x042e042e,0x04f1044f,0x05f60574,0x05f60617,0x05f605f6,0x06370637,0x1e780e58,0x46ba1e78,0x31642923,0x31643164,0x31843164,0x31843184,0x31843164,0x31843184,0x31843184,0x29233184,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6,0x41c541e6,0x41c541c5,0x41e641c5,0x41e641e6,0x41e641c5,0x41e641e6,0x41e641e6,0x316441e6, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x69ef69ef,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x94b28430,0x738e8c51,0x9cd3a534,0xbdd794b2,0xbdf78c71,0x84107bef,0x94928430,0x9cf38c51,0x73ae73ae,0x73ae73ae,0x8c716b4d,0x7bef8c71,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x7bef7bef,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7,0x7aa79369,0x9369bc2b,0x7aa79369,0x93698430,0x93699369,0x7aa77aa7,0x93699369,0x59e57aa7, +0x72e772e7,0x7b0772e7,0x6aa66aa6,0x6aa67b07,0x72e772e7,0x6aa672e7,0x6aa649e4,0x72e76aa6,0x8410a514,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0x84108410,0x84108410,0x94927bcf,0x84309492,0x84308430,0x84108430,0x84108410,0x84308430,0xb596b5b6,0xb5b6ad55,0xb5b6b5b6,0xd6bab5b6,0xb5b6bdd7,0xb5b6b596,0xb5b6bdd7,0xce79b5b6, +0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0xb1a2c1e2,0x9162a182,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x0000ffff,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x59a00000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xa514a514,0x7bcf8c51,0xad55b596,0x949294b2,0x94b27bef,0x843094b2,0x9cf3ad55,0xa5148c51,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x8c718c71,0x73ae7bef,0x7bef73ae,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369,0x7aa79369,0xbc2b59e5,0x59e57aa7,0x59e57aa7,0x7aa77aa7,0x59e57aa7,0x7aa77aa7,0x93699369, +0xbcccbccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0xbcccbccc,0xb48b9c29,0xbcccbccc,0xbcccbccc,0xad55ce59,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0xad55ad55,0xb596b596,0xa514ad55,0x8430a514,0x51439a66,0x79e58205,0x79e579e5,0xd6ba79e5,0x79e59a66,0x79e579e5,0x79e58205,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0xffffffff,0xffffffff,0x00000000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14201300,0x00001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000000,0x00000000,0x00000000, +0xad55b5b6,0x73ae73ae,0x84107bef,0xc6188410,0xc638a514,0x9cd3ad55,0x8c51a514,0xad75ad55,0x8c717bef,0x8c7173ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x73ae6b4d,0x7bef7bef,0x8c718c71,0x93697aa7,0x7aa77aa7,0x7aa772c8,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369,0x93697aa7,0x7aa77aa7,0x7aa759e5,0x93699369,0x59e57aa7,0x59e5bc2b,0xbc2b7aa7,0x93699369, +0x9c29b48b,0xbccc72e7,0xbcccbccc,0x9c29bccc,0xb48bbccc,0x9c29b48b,0x9c299c29,0xb48b9c29,0xb596ce59,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0xb5968430,0xb596a514,0xad559cf3,0xa514ad55,0xa514a514,0xa5149cf3,0xad55ad55,0x9492b596,0x79e59a66,0x79e579c5,0x79e579e5,0xce796184,0x79c59a66,0x79e579e5,0x79e579e5,0xd69a81e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x91628c71,0x52aada23,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0x0000ffff,0x00000000,0xffffffff,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x5a261420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x13000000,0x14201420,0x13001300,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x93250000,0x59a09325,0x00000320,0x00000000,0x00000000, +0x94b2bdd7,0x8c518410,0x94929cd3,0x7bcf8430,0x9492632c,0x7bef8c51,0xa5349cf3,0x84307bcf,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x59e57aa7,0x7aa79369,0x93699369,0x7aa7bc2b,0x7aa77aa7,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b, +0xbcccbccc,0xbcccbccc,0x9c29bccc,0x9c29bccc,0x9c299c29,0x9c299c29,0x72e7b48b,0xbcccbccc,0xa514ce59,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa5148430,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xa514a514,0xa514a514,0x8430a514,0xa2679a67,0x9a66aaa7,0x9a669a66,0xce799246,0xb2c89246,0x9a669a66,0x9a669a46,0xe71c9a67, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0x52aada23,0xda23da23,0xa9a252aa,0x000052aa,0x52aa0000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x13000000,0x00001420,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x14201300,0x00001300,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200320,0x03200000,0x59a00000,0x4e649325,0x00004e64,0x00000000,0x00000000, +0xad758430,0xa5148430,0x843094b2,0x8c519492,0x949294b2,0x7bcf8c71,0x7bef7bef,0x8c517bef,0x7bef6b4d,0x7bef7bef,0x7bef73ae,0x7bef7bef,0x8c718c71,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7,0x7aa79369,0x93697aa7,0xbc2b9369,0x93697aa7,0x93696b6d,0x7aa79369,0x936959e5,0x59e57aa7, +0x6aa672e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x6aa66aa6,0x72e76aa6,0xad55c618,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xad557bcf,0xad55ad55,0xad55a514,0xad55ad55,0xb596b596,0xad55ad55,0xb596ad55,0x7bcfb596,0xb5b6b5b6,0xd6baad75,0xb5b6b5b6,0xb5b6b5b6,0xb5b6b5b6,0xdedbb596,0xbdd7b596,0xb5b6b596, +0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0xa182b1c2,0x79218942,0x9162a9a2,0x91629162,0x91620000,0x91620000,0x52aa0000,0x00009162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0xffffffff,0xffff0000,0xffff0000,0xffffffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x14205a26,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x14200000,0x00001420,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03204e64,0x03200320,0x03200000,0x93250320,0x000059a0,0x00000000,0x03200000, +0x9cf39cd3,0xa53494b2,0xb5b68410,0x94928c71,0x7bcfc618,0x8410a534,0x8c518c71,0x8c718430,0x7bef7bef,0x73ae8c71,0x8c7173ae,0x73ae8c71,0x73ae6b4d,0x8c718c71,0x7bef8c71,0x7bef7bef,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430,0x93699369,0xbc2b7aa7,0x7aa7bc2b,0x9369bc2b,0xbc2b59e5,0x7aa7bc2b,0x93699369,0x7aa78430, +0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xb48bb48b,0x9c29b48b,0xad55ce59,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0xad558430,0xa514b596,0xb596a514,0xa514b596,0xa5149cf3,0xb596b596,0xad55b596,0x8430ad55,0x79e58a26,0xdefb8a05,0x79e59a66,0x79e55964,0x820569a4,0xd69a79e5,0x79e59a66,0x79e58205, +0xad75ad75,0xad75ce79,0xce79ad75,0xad75ad75,0xce79ad75,0xad75ad75,0xad75ce79,0xad75ad75,0x8c71da23,0x91628c71,0x0000da23,0x00000000,0x8c710000,0x916252aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x0000ffff,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x5a260000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xf7c00000,0xb5e0f7c0,0x8c808c80,0x0000ce80,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x59a00320,0x4e640000,0x59a00320,0x4e6459a0,0x00000320,0x03200320, +0x841094b2,0x8c71b5b6,0x9cd38c71,0x8410ad55,0x94928430,0xad559492,0xb5968c71,0x84108c71,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x7bef6b4d,0x73ae7bef,0x73ae73ae,0x7bef8c71,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7,0x93699369,0x7aa759e5,0x59e57aa7,0x7aa759e5,0x7aa77aa7,0x7aa77aa7,0xbc2bbc2b,0x93697aa7, +0x9c299c29,0x9c299c29,0xbccc9c29,0xb48bb48b,0x9c299c29,0x72e79c29,0x9c29bccc,0x9c299c29,0xa514ce59,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0xa5148430,0xa514a514,0xa514a514,0xad55a514,0xad559cf3,0xa514ad55,0xa514a514,0x8430b596,0x79e579e5,0xce7979e5,0x79e59246,0x79e579e5,0x8a268205,0xce7979c5,0x8a059a66,0x79e579e5, +0xad75ce79,0x0000ad75,0xad75ce79,0xce790000,0x0000ce79,0xce79ce79,0xad750000,0xce79ad75,0x8c71da23,0x52aa52aa,0x00000000,0x00000000,0x00000000,0x91628c71,0x52aa0000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0xffff0000,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x00000000,0x14203d19,0x00001300,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xce80ce80,0x8c80f7c0,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x93250320,0x932559a0,0x03209325,0x93259325,0x93259325,0x00004e64, +0x9cd38410,0xad55b5b6,0x8410ad75,0x9cf3ad75,0xad55b596,0x94928410,0x94928430,0x7bef7bef,0x8c717bef,0x6b4d8c71,0x73ae8c71,0x7bef7bef,0x8c717bef,0x8c718c71,0x8c718c71,0x8c718c71,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5,0x7aa79369,0x93697aa7,0x93697aa7,0x59e57aa7,0x93697aa7,0x7aa79369,0x7aa77aa7,0x7aa759e5, +0xbcccbccc,0xbcccbccc,0x72e7bccc,0xbccc9c29,0xb48bbccc,0xb48bb48b,0xbcccbccc,0x9c29bccc,0xce79ce59,0xc618ce79,0xc638ce79,0xce59ce59,0xce79ce59,0xce79ce79,0xce79ce79,0xb596ce79,0xb5968430,0x9cf3b596,0xa514b596,0xad55ad55,0xb596ad55,0xb596b596,0xb596b596,0x9492b596,0x9a66a267,0xd69a9a66,0x9a669a46,0xb2c8a287,0x9a66a267,0xd69a9a66,0x9a669a66,0x79e5b2c8, +0xce79ce79,0x0000ce79,0xce79ce79,0xce790000,0x00000000,0xce79ce79,0xce790000,0xce79ce79,0xda23da23,0xa9a2da23,0xda23da23,0x00000000,0x52aa0000,0x52aada23,0x000052aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0x0000ffff,0x0000ffff,0xffff0000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, +0x00000000,0x00000000,0x00000000,0x3cd73ddc,0x33f333f3,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0xce800000,0x0000f7c0,0xb5e0f7c0,0x0000f7c0,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x93250000,0x93259325,0x03200320,0x59a00320,0x03200000,0x00000000, +0x84308c71,0x8c519cf3,0x7bef9492,0x8430a534,0xad7594b2,0x84108430,0xa5148c71,0xad557bef,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x73ae73ae,0x6b4d73ae,0x73ae73ae,0x73ae73ae,0x7bef7bef,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369,0x7aa7bc2b,0xbc2bbc2b,0x93699369,0x7aa77aa7,0x59e59369,0x93699369,0x7aa77aa7,0x93699369, +0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e76aa6,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0x8430ad55,0x84108430,0x84108410,0x84108410,0x7bcf8410,0x84108410,0x84108410,0x84308430,0xad558430,0xa514ad55,0xa514a514,0xa514a514,0x9cf3a514,0xa514a514,0xa514a514,0x8430ad55,0xb5b6b5b6,0xb596b5b6,0xbdd7b596,0xd6bab5b6,0xb5b6b5b6,0xb5b6b596,0xb5b6b5b6,0xd6bab5b6, +0xce79ce79,0x0000ce79,0xce79ce79,0x00000000,0x0000ce79,0xce79ce79,0xce790000,0xce79ce79,0x9162a9a2,0x91629162,0x000052aa,0x00000000,0x00000000,0x916252aa,0x0000a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x0000ffff,0x00000000,0x0000ffff,0xffff0000, +0x00000000,0x00000000,0x3d190000,0x3d193d19,0x33f33ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x00000320,0x932559a0,0x4e644e64,0x00000000,0x03204e64,0x00000320, +0x9cf37bef,0x9492a534,0x84109492,0x7bef8c51,0x84308430,0xad75b5b6,0xa5349492,0x8c7194b2,0x8c718c71,0x84107bef,0x73ae7bef,0x8c718c71,0x7bef7bef,0x7bef7bef,0x8c718c71,0x6b4d8c71,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7,0x59e5bc2b,0x7aa77aa7,0x7aa78430,0xbc2b7aa7,0x7aa7bc2b,0xbc2bbc2b,0x93697aa7,0x93697aa7, +0xbcccbccc,0xb48bbccc,0xbcccbccc,0x9c29bccc,0x9c299c29,0xbccc72e7,0xbcccbccc,0xbcccbccc,0xb596ce79,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0xb5969492,0xad55ad55,0xa514ad55,0xb596b596,0xad55ad55,0xad55ad55,0xb596b596,0x7bcfb596,0x59649a66,0x69a48a05,0x618479e5,0xdefb79e5,0x69a4aaa7,0x71c58205,0x79e579e5,0xd69a79e5, +0xdedbce79,0x00000000,0xce790000,0xce790000,0x0000dedb,0x0000ce79,0x00000000,0xce79dedb,0x8c71da23,0x52aa52aa,0x8c71da23,0x52aa0000,0x52aa0000,0x52aa0000,0x000052aa,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0x0000ffff,0xffffffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x33f33ddc,0x3cd73d19,0x00003d19,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x59a00000,0x59a09325,0x93259325,0x032059a0,0x4e640000,0x00000320, +0x9cd39cd3,0xa5347bcf,0x94b28410,0x9cd394b2,0x94b28430,0x84108c51,0x8c517bcf,0x94b28c71,0x73ae73ae,0x7bef7bef,0x73ae7bef,0x73ae73ae,0x6b4d7bef,0x7bef7bef,0x73ae73ae,0x7bef6b4d,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7,0x59e57aa7,0x93699369,0x93697aa7,0x59e559e5,0x7aa759e5,0x59e57aa7,0x7aa77aa7,0xbc2b7aa7, +0x9c299c29,0xb48b72e7,0xb48bb48b,0x9c29bccc,0xb48bb48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xa514c638,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0xa5148410,0xad55ad55,0xa514ad55,0xa514a514,0x9cf3ad55,0xad55ad55,0xa514a514,0x84309cf3,0x79e59a66,0x79e59a66,0x79e56184,0xd69a79c5,0x79e59a66,0x79e571a4,0x79e569a4,0xd6ba79e5, +0xdedbdedb,0xce79dedb,0xdedbdedb,0xdedbdedb,0xdedbce79,0xce79dedb,0xdedbce79,0xce79dedb,0x8c71da23,0x91628c71,0x0000da23,0x91620000,0x8c7152aa,0x52aa52aa,0x8c710000,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0x0000ffff,0xffff0000,0xffff0000,0x00000000,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x3ddc0000,0x00003ddc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x03200000,0x032059a0,0x00000320,0x93250320,0x59a09325,0x932559a0,0x00000000, +0x8410a514,0x8410ad75,0xad75ad75,0xad758c51,0x73aebdd7,0xa5348410,0x7befad55,0x8c718c51,0x8c717bef,0x73ae8c71,0x73ae73ae,0x73ae73ae,0x73ae73ae,0x8c718c71,0x8c718c71,0x6b4d8c71,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e59369,0x6b6d7aa7,0x93697aa7,0x7aa759e5,0x7aa79369,0xbc2b9369,0x936959e5,0x7aa77aa7,0x59e559e5,0x6b6d59e5,0x93697aa7,0x7aa759e5, +0x9c29bccc,0x9c299c29,0xbccc9c29,0x9c29bccc,0x9c29bccc,0x72e79c29,0xb48bb48b,0xbcccb48b,0xb596ce59,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0xb5968430,0xa514b596,0xa514a514,0xa514a514,0xa514a514,0xb596b596,0xb596b596,0x7bcfb596,0x9a668a26,0x9a669a66,0x92469a66,0xd69a9a66,0xaa87aa87,0x9a66a267,0x9a669a66,0xd69a9a66, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xda23da23,0xa9a2da23,0xda2352aa,0xa9a252aa,0xda2352aa,0x00000000,0xda2352aa,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x00000000,0xffff0000,0x0000ffff,0xffff0000,0xffff0000,0xffff0000,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x4e640000,0x03209325,0x00000320,0x03200320,0x932559a0,0x03209325,0x00000000, +0x843073ae,0x94b28c51,0x9cd39492,0x7bcf7bef,0x84107bef,0x94b28c71,0x8c518c71,0x7bef8c71,0x8c717bef,0x7bef7bef,0x6b4d7bef,0x8c717bef,0x7bef7bef,0x73ae73ae,0x73ae73ae,0x7bef73ae,0x6b6d9369,0x7aa7bc2b,0x59e59369,0xbc2b7aa7,0x93699369,0x93697aa7,0xbc2b7aa7,0x7aa79369,0x6b6d59e5,0x59e559e5,0x59e57588,0x59e559e5,0x59e55ce6,0x59e56d68,0x59e57aa7,0x7aa759e5, +0x6aa66aa6,0x72e76aa6,0x72e772e7,0x72e772e7,0x72e772e7,0x6aa66aa6,0x6aa66aa6,0x72e772e7,0xb596ce59,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xb5968430,0xad55ad55,0x9cf3ad55,0xb596ad55,0xad55ad55,0xa514a514,0xa514a514,0x8430a514,0xbdd7bdd7,0xd6bab596,0xb5b6b5b6,0xb596b5b6,0xbdd7b5b6,0xdefbb5b6,0xb5b6b5b6,0xbdf7b596, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x9162a9a2,0x52aa9162,0x9162a9a2,0x916252aa,0x000052aa,0x91629162,0x916252aa,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x9162a9a2,0x91629162,0x00000000,0xffff0000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x03204e64,0x4e640000,0x03204e64,0x03200000,0x00009325,0x00000000, +0xbdd7a514,0x8430b596,0x8c518c51,0x94929492,0x9cf394b2,0xad75ad55,0x73ae8430,0xb5b68410,0x6b4d7bef,0x73ae73ae,0x73ae6b4d,0x73ae73ae,0x73ae8c71,0x7bef7bef,0x8c717bef,0x7bef7bef,0x7aa7bc2b,0x59e57aa7,0x7aa7bc2b,0x7aa77aa7,0x7aa7bc2b,0x7aa77aa7,0x59e559e5,0x7aa7bc2b,0x59e58deb,0x65279e4d,0x59e56d47,0x59e57588,0x7dea75a9,0x962c960c,0x54a559e5,0x59e56506, +0xbcccbccc,0x9c299c29,0x9c299c29,0xb48bb48b,0xbcccbccc,0xb48bbccc,0xbccc72e7,0x9c29bccc,0x9cf3ce59,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x9cf38430,0xa514a514,0xa5149cf3,0xa514a514,0xa514b596,0xad55ad55,0xb596ad55,0x8430ad55,0x8a2679e5,0xd69a69a4,0x79e59a66,0x71a479e5,0x79e579e5,0xd69a79e5,0x92268205,0x8a2679e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x916252aa,0x8c71da23,0x000052aa,0x52aa0000,0x91628c71,0x52aada23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x00000000,0xffffffff,0xffffffff,0x00000000,0x0000ffff,0xffff0000,0xffffffff,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x4e644e64,0x00000000,0x00000000,0x03204e64,0x00000320,0x00000000, +0x8c7194b2,0x94b2a514,0x84109cd3,0x84108c51,0xad557bef,0x9492a534,0x8c718410,0x8c518430,0x7bef7bef,0x8c718c71,0x8c718c71,0x8c718c71,0x8c7173ae,0x8c718c71,0x7bef6b4d,0x73ae7bef,0x93697aa7,0x7aa759e5,0x93697aa7,0x59e58430,0xbc2b7aa7,0x7aa79369,0x93697aa7,0x59e559e5,0x6d6875a9,0x858a8dcb,0x59e5858a,0x65076d47,0x960c5ce6,0x758995ec,0x6d686506,0x6d486527, +0xbcccbccc,0x72e7b48b,0xb48bb48b,0x9c299c29,0x9c299c29,0xb48b9c29,0xb48b9c29,0x9c29bccc,0xad55ce59,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0xad558430,0xb596b596,0xb596b596,0xb596b596,0xb596a514,0xb596b596,0xad559cf3,0x8410ad55,0x79e579e5,0xe71c8205,0x79e5b2c8,0x618469a4,0x71c579e5,0xd69a8205,0x79e59a66,0x79e579e5, +0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0xc1e2da23,0x9162a9a2,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0x8c71da23,0x91628c71,0xffff0000,0x00000000,0x00000000,0x00000000,0xffffffff,0x0000ffff,0x00000000,0x0000ffff, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4e640000,0x00000000,0x00000000, +0x94b294b2,0x84309492,0x8c718430,0x8c717bef,0x94b29cf3,0x84308c51,0x84108c51,0x8c71738e,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x8c718c71,0x8c716b4d,0x73ae7bef,0x73ae73ae,0x7bef73ae,0x9369bc2b,0x7aa79369,0xbc2b7aa7,0x93699369,0x7aa77aa7,0x7aa759e5,0xbc2b7aa7,0xbc2b7aa7,0x75a975a9,0x65277589,0x6d686527,0x6d685ce6,0x75a97dea,0x65276d48,0x65066d47,0x6d685484, +0x9c29bccc,0x9c299c29,0xbccc9c29,0xb48bbccc,0xbccc9c29,0xbcccbccc,0xbcccbccc,0x9c29bccc,0xc638ce59,0xc638c638,0xce59c638,0xce79ce79,0xce79c618,0xc638ce59,0xc638c638,0xad55c638,0x84108430,0x84108410,0x84308410,0x94929492,0x94927bcf,0x84108430,0x84108410,0x84308410,0x92469a66,0xce799a66,0x9a679a66,0xa2879226,0xaaa79a66,0xd69a8a26,0xaa879a66,0x9a669a66, +0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xc9e2da23,0xa1a2b1c2,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0xda23da23,0xa9a2da23,0x0000ffff,0x00000000,0x00000000,0x00000000,0x0000ffff,0x00000000,0x00000000,0xffff0000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x015f015f,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0 }; diff --git a/src/util/CollectionUtils.h b/src/util/CollectionUtils.h new file mode 100755 index 0000000..db89e6f --- /dev/null +++ b/src/util/CollectionUtils.h @@ -0,0 +1,17 @@ +#ifndef COLLECTIONUTILS_H__ +#define COLLECTIONUTILS_H__ + +struct PairKeyFunctor { + template + typename T::first_type operator()(T& pair) const { + return pair.first; + } +}; +struct PairValueFunctor { + template + typename T::second_type operator()(T& pair) const { + return pair.second; + } +}; + +#endif /*COLLECTIONUTILS_H__*/ diff --git a/src/util/DataIO.cpp b/src/util/DataIO.cpp new file mode 100755 index 0000000..b535935 --- /dev/null +++ b/src/util/DataIO.cpp @@ -0,0 +1,29 @@ +#include "DataIO.h" + +// +// BytesDataOutput +// + +void BytesDataOutput::writeString( const std::string& v ) +{ + int length = v.length() & 0x7fff; + writeShort(length); + writeBytes(v.c_str(), length); + //LOGI("Writing: %d bytes as String: %s\n", v.length(), v.c_str()); +} + +// +// BytesDataInput +// +std::string BytesDataInput::readString() { + int len = readShort(); + if (len > MAX_STRING_LENGTH - 1) + len = MAX_STRING_LENGTH - 1; + char* buffer = new char[len + 1]; + readBytes(buffer, len); + buffer[len] = 0; + + std::string out(buffer); + delete[] buffer; + return out; +} diff --git a/src/util/DataIO.h b/src/util/DataIO.h new file mode 100755 index 0000000..189013c --- /dev/null +++ b/src/util/DataIO.h @@ -0,0 +1,320 @@ +#ifndef DATAIO_H__ +#define DATAIO_H__ + +#include +#include +#include + +#include "../platform/log.h" + +// Interface for writing primitives to a stream +class IDataOutput { +public: + virtual ~IDataOutput() {} + + // Write a "Pascal" string [Len(Short)][Characters, len={strlen()-1,s.length()}] + //virtual void writePStr(const char* v, int len = -1) = 0; + //virtual void writeCStr(const char* v, int len = -1) = 0; + virtual void writeString(const std::string& v) = 0; + virtual void writeFloat(float v) = 0; + virtual void writeDouble(double v) = 0; + + virtual void writeByte(char v) = 0; + virtual void writeShort(short v) = 0; + virtual void writeInt(int v) = 0; + virtual void writeLongLong(long long v) = 0; + + virtual void writeBytes(const void* data, int bytes) = 0; +}; + + +// Interface for reading primitives from a stream +class IDataInput { +public: + virtual ~IDataInput() {} + + virtual std::string readString() = 0; + //virtual void readPStr(char**) = 0; + //virtual void readCStr(char** s, int len = -1) = 0; + virtual float readFloat() = 0; + virtual double readDouble() = 0; + + virtual char readByte() = 0; + virtual short readShort() = 0; + virtual int readInt() = 0; + virtual long long readLongLong() = 0; + + virtual void readBytes(void* data, int bytes) = 0; +}; + +/** + * Redirects all calls to writeBytes + */ +class BytesDataOutput: public IDataOutput { +public: + //virtual void writePStr(const char* v, int len = -1); + //virtual void writeCStr(const char* v, int len = -1); + virtual void writeString(const std::string& v); + virtual void writeFloat(float v) { + writeBytes(&v, 4); + } + virtual void writeDouble(double v) { + writeBytes(&v, 8); + } + virtual void writeByte(char v) { + writeBytes(&v, 1); + } + virtual void writeShort(short v) { + writeBytes(&v, 2); + } + virtual void writeInt(int v) { + writeBytes(&v, 4); + } + virtual void writeLongLong(long long v) { + writeBytes(&v, 8); + } + virtual void writeBytes(const void* data, int bytes) = 0; +}; + +/** + * Redirects all calls to readBytes + */ +class BytesDataInput: public IDataInput { +public: + //virtual void readPStr(char** s); + //virtual void readCStr(char* s, int len = -1); + virtual std::string readString(); + virtual float readFloat() { + float o; + readBytes(&o, 4); + return o; + } + virtual double readDouble() { + double o; + readBytes(&o, 8); + return o; + } + virtual char readByte() { + char o; + readBytes(&o, 1); + return o; + } + virtual short readShort() { + short o; + readBytes(&o, 2); + return o; + } + virtual int readInt() { + int o; + readBytes(&o, 4); + return o; + } + virtual long long readLongLong() { + long long o; + readBytes(&o, 8); + return o; + } + virtual void readBytes(void* data, int bytes) = 0; + +private: + static const int MAX_STRING_LENGTH = SHRT_MAX; + static char _charBuffer[MAX_STRING_LENGTH]; +}; + +//class MemoryDataInput: public BytesDataInput { +//public: +// MemoryDataInput(const char* data, int size) +// : _buffer(data), +// _size(size), +// _index(0) +// {} +// MemoryDataInput(const unsigned char* data, int size) +// : _buffer((const char*)data), +// _size(size), +// _index(0) +// {} +// +// void readBytes(void* data, int bytes) { +// if (bytes <= 0) { +// if (bytes < 0) LOGE("Error: %d bytes NOT read @ MemoryDataInput::readBytes!\n", bytes); +// return; +// } +// int left = _size - _index; +// if (bytes > left) { +// LOGE("ERROR: Not enough bytes left in buffer @ MemoryDataInput::readBytes (%d/%d).\n", bytes, left); +// _index = _size; +// return; +// } +// memcpy((char*)data, &_buffer[_index], bytes); +// _index += bytes; +// } +// +//private: +// int _index; +// int _size; +// const char* _buffer; +//}; +// +// +//class MemoryDataOutput: public BytesDataOutput { +//public: +// MemoryDataOutput(char* data, int size) +// : _buffer(data), +// _size(size), +// _index(0) +// {} +// MemoryDataOutput(unsigned char* data, int size) +// : _buffer((char*)data), +// _size(size), +// _index(0) +// {} +// +// void writeBytes(const void* data, int bytes) { +// if (bytes <= 0) { +// LOGW("Warning: %d bytes read @ MemoryDataOutput::writeBytes!\n", bytes); +// return; +// } +// int left = _size - _index; +// if (bytes > left) { +// LOGE("ERROR: Not enough bytes left in buffer @ MemoryDataOutput::writeBytes (%d/%d).\n", bytes, left); +// _index = _size; +// return; +// } +// memcpy(&_buffer[_index], (const char*)data, bytes); +// _index += bytes; +// } +// +//private: +// int _index; +// int _size; +// char* _buffer; +//}; + + +class PrintStream { +public: + void print(const std::string& s) { + } + void println(const std::string& s) { + print(s); print("\n"); + } +}; + +class FileError { +public: + static const int NOT_OPENED = 1; + static const int NOT_FULLY_HANDLED = 2; +}; +// +//class FileIO { +//public: +// FileIO(const std::string& filePath, const char* mode) +// : _filePath(filePath), +// _opened(false), +// _errCode(0), +// _fp(0), +// _doClose(true) +// { +// if (mode) +// openWithMode(mode); +// } +// FileIO(FILE* fp) +// : _filePath(""), +// _opened(fp != NULL), +// _errCode(0), +// _fp(fp), +// _doClose(false) +// {} +// +// ~FileIO() { +// if (_doClose) +// close(); +// } +// +// bool isValid() { +// return _opened; +// } +// +// int getError() { +// int err = _errCode; +// _errCode = 0; +// return err; +// } +// +// bool close() { +// if (!_fp) +// return false; +// +// fclose(_fp); +// _fp = NULL; +// _opened = false; +// return true; +// } +// +//protected: +// void openWithMode(const char* mode) { +// if (_fp) return; +// _fp = fopen(_filePath.c_str(), mode); +// _opened = (_fp != NULL); +// } +// +// std::string _filePath; +// int _errCode; +// bool _opened; +// bool _doClose; +// +// FILE* _fp; +//}; +// +//class FileDataOutput: public BytesDataOutput, public FileIO +//{ +//public: +// FileDataOutput(const std::string& filePath) +// : FileIO(filePath, "wb"), +// bytesWritten(0) +// { +// } +// FileDataOutput(FILE* fp) +// : FileIO(fp), +// bytesWritten(0) +// {} +// +// virtual void writeBytes(const void* data, int bytes) { +// if (!_fp) { +// _errCode |= FileError::NOT_OPENED; +// return; +// } +// +// int bytesWritten = fwrite(data, 1, bytes, _fp); +// if (bytesWritten != bytes) +// _errCode |= FileError::NOT_FULLY_HANDLED; +// +// this->bytesWritten += bytesWritten; +// } +// +// int bytesWritten; +//}; +// +//class FileDataInput: public BytesDataInput, public FileIO +//{ +//public: +// FileDataInput(const std::string& filePath) +// : FileIO(filePath, "rb") +// { +// } +// FileDataInput(FILE* fp) +// : FileIO(fp) +// {} +// +// virtual void readBytes(void* data, int bytes) { +// if (!_fp) { +// _errCode |= FileError::NOT_OPENED; +// return; +// } +// +// if (fread(data, 1, bytes, _fp) != bytes) +// _errCode |= FileError::NOT_FULLY_HANDLED; +// } +//}; + +#endif /*DATAIO_H__*/ diff --git a/src/util/IntHashMap.h b/src/util/IntHashMap.h new file mode 100755 index 0000000..f76d382 --- /dev/null +++ b/src/util/IntHashMap.h @@ -0,0 +1,226 @@ +#ifndef UTIL__IntHashMap_H__ +#define UTIL__IntHashMap_H__ + +template +class IntHashMap +{ + static const int DEFAULT_INITIAL_CAPACITY = 16; + static const int MAXIMUM_CAPACITY = 1 << 30; + //static const float DEFAULT_LOAD_FACTOR = 0.75f; + + Entry** table; + int tableCapacity; + int size; + + int threshold; + const float loadFactor; + + volatile int modCount; + +public: + IntHashMap() + : loadFactor(0.75f) + { + threshold = (int) (DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR); + table = new Entry[DEFAULT_INITIAL_CAPACITY]; + } + + ~IntHashMap() { + delete[] table; + } + + /*public*/ int size() { + return size; + } + + /*public*/ bool isEmpty() { + return size == 0; + } + + /*public*/ V get(int key) { + int hash = hash(key); + for (Entry e = table[indexFor(hash, table.length)]; e != NULL; e = e.next) { + if (e.key == key) return e.value; + } + return NULL; + } + + /*public*/ bool containsKey(int key) { + return getEntry(key) != NULL; + } + + const Entry getEntry(int key) { + int hash = hash(key); + for (Entry e = table[indexFor(hash, table.length)]; e != NULL; e = e.next) { + if (e.key == key) return e; + } + return NULL; + } + + /*public*/ void put(int key, V value) { + int hash = hash(key); + int i = indexFor(hash, table.length); + for (Entry e = table[i]; e != NULL; e = e.next) { + if (e.key == key) { + e.value = value; + } + } + + modCount++; + addEntry(hash, key, value, i); + } + + //@SuppressWarnings("unchecked") + /*private*/ void resize(int newCapacity) { + Entry[] oldTable = table; + int oldCapacity = oldTable.length; + if (oldCapacity == MAXIMUM_CAPACITY) { + threshold = INT_MAX;//Integer.MAX_VALUE; + return; + } + + Entry[] newTable = /*new*/ Entry[newCapacity]; + transfer(newTable); + table = newTable; + threshold = (int) (newCapacity * loadFactor); + } + + /*private*/ void transfer(Entry[] newTable) { + Entry[] src = table; + int newCapacity = newTable.length; + for (int j = 0; j < src.length; j++) { + Entry e = src[j]; + if (e != NULL) { + src[j] = NULL; + do { + Entry next = e.next; + int i = indexFor(e.hash, newCapacity); + e.next = newTable[i]; + newTable[i] = e; + e = next; + } while (e != NULL); + } + } + } + + /*public*/ V remove(int key) { + Entry e = removeEntryForKey(key); + return (e == NULL ? NULL : e.value); + } + + const Entry removeEntryForKey(int key) { + int hash = hash(key); + int i = indexFor(hash, table.length); + Entry prev = table[i]; + Entry e = prev; + + while (e != NULL) { + Entry next = e.next; + if (e.key == key) { + modCount++; + size--; + if (prev == e) table[i] = next; + else prev.next = next; + return e; + } + prev = e; + e = next; + } + + return e; + } + + /*public*/ void clear() { + modCount++; + Entry[] tab = table; + for (int i = 0; i < tab.length; i++) + tab[i] = NULL; + size = 0; + } + + /** + * Returns true if this map maps one or more keys to the specified + * value. + * + * @param value value whose presence in this map is to be tested + * @return true if this map maps one or more keys to the specified + * value + */ + /*public*/ bool containsValue(Object value) { + if (value == NULL) return containsNullValue(); + + Entry[] tab = table; + for (int i = 0; i < tab.length; i++) + for (Entry e = tab[i]; e != NULL; e = e.next) + if (value.equals(e.value)) return true; + return false; + } + + /*private*/ bool containsNullValue() { + Entry[] tab = table; + for (int i = 0; i < tab.length; i++) + for (Entry e = tab[i]; e != NULL; e = e.next) + if (e.value == NULL) return true; + return false; + } + + /*private*/ + template + class Entry { + const int key; + V value; + Entry* next; + const int hash; + + /** + * Creates new entry. + */ + Entry(int h, int k, V v, Entry* n) + : value(v), + next(n), + key(k), + hash(h) + { + } + + const int getKey() { + return key; + } + + const V getValue() { + return value; + } + + //@SuppressWarnings("unchecked") + bool operator==(const Entry& rhs) { + return key == rhs.key && value == rhs.value; + } + + const int hashCode() { + return hash(key); + } + + const std::string toString() { + std::stringstream ss; + ss << getKey() << "=" << getValue(); + return ss.str(); + } + } +private: + static int hash(int h) { + h ^= (h >>> 20) ^ (h >>> 12); + return h ^ (h >>> 7) ^ (h >>> 4); + } + + static int indexFor(int h, int length) { + return h & (length - 1); + } + + void addEntry(int hash, int key, V value, int bucketIndex) { + Entry e = table[bucketIndex]; + table[bucketIndex] = /*new*/ Entry(hash, key, value, e); + if (size++ >= threshold) resize(2 * table.length); + } +}; + +#endif /*UTIL__IntHashMap_H__*/ diff --git a/src/util/MemUtils.h b/src/util/MemUtils.h new file mode 100755 index 0000000..8226e34 --- /dev/null +++ b/src/util/MemUtils.h @@ -0,0 +1,35 @@ +#ifndef MEMUTILS_H__ +#define MEMUTILS_H__ + +template +class Ref { +public: + //~Ref() { //@todo: add this if the pointer is created externally + // dec(); + //} + void inc() { ++_count; } + void dec() { if (--_count == 0 && _obj) delete _obj; } + + __inline short refCount() { return _count; } + __inline bool isUnique() { return _count == 1; } + + __inline T* obj() { return _obj; } + + T& operator->() { return *_obj; } + void operator++() { inc(); } + void operator--() { dec(); } + + static Ref* create(T* object) { return new Ref(object); } +private: + Ref(T* object) + : _obj(object), + _count(1) {} + + Ref(const Ref& rhs); + Ref& operator=(const Ref& rhs); + + T* _obj; + short _count; +}; + +#endif /*MEMUTILS_H__*/ diff --git a/src/util/Mth.cpp b/src/util/Mth.cpp new file mode 100755 index 0000000..d19eef6 --- /dev/null +++ b/src/util/Mth.cpp @@ -0,0 +1,134 @@ +#include "Mth.h" +#include "Random.h" +#include +#include + +#include "../Performance.h" + +static Random _rand; + +namespace Mth +{ + const float PI = 3.1415926535897932384626433832795028841971f; // exactly! + const float TWO_PI = 2.0f * PI; // exactly! + const float DEGRAD = PI / 180.0f; + const float RADDEG = 180.0f / PI; + + static float _sin[65536]; + static const float _sinScale = 65536.0f / (2.0f * PI); + + void initMth() { + for (int i = 0; i < 65536; ++i) + _sin[i] = ::sin(i / _sinScale); + } + + float sqrt(float x) { + //Stopwatch& w = Performance::watches.get("sqrt"); + //w.start(); + float ret = ::sqrt(x); + //w.stop(); + return ret; + } + + static __inline float fastInvSqrt(float x) { + float xhalf = 0.5f*x; + int i = *(int*)&x; + i = 0x5f3759df - (i>>1); + x = *(float*)&i; + x = x*(1.5f - xhalf*x*x); + return x; + } + float invSqrt(float x) { + //Stopwatch& w = Performance::watches.get("invSqrt"); + //w.start(); + float ret = fastInvSqrt(x);//1.0f / sqrt(x); + //w.stop(); + return ret; + } + + int floor(float v) { + int i = (int) v; + return v < i ? i - 1 : i; + } + + float cos(float x) { + //Performance::watches.get("cos").start(); + //float ret = ::cos(x); + float ret = _sin[(int) (x * _sinScale + 65536 / 4) & 65535]; + //Performance::watches.get("cos").stop(); + return ret; + } + + float sin(float x) { + //Performance::watches.get("sin").start(); + //float ret = ::sin(x); + float ret = _sin[(int) (x * _sinScale) & 65535]; + //Performance::watches.get("sin").stop(); + return ret; + } + + float atan(float x) { + //Performance::watches.get("atan").start(); + float ret = ::atan(x); + //Performance::watches.get("atan").stop(); + return ret; + } + + float atan2(float dy, float dx) { + //Performance::watches.get("atan2").start(); + float ret = ::atan2(dy, dx); + //Performance::watches.get("atan2").stop(); + return ret; + } + + float random(){ + return _rand.nextFloat(); + } + int random(int n){ + return _rand.nextInt(n); + } + + int intFloorDiv(int a, int b) { + if (a < 0) return -((-a - 1) / b) - 1; + return a / b; + } + + float abs(float a) { return a>=0? a : -a; } + float Min(float a, float b) { return a<=b? a : b; } + float Max(float a, float b) { return a>=b? a : b; } + + int abs(int a) { return a>=0? a : -a; } + int Min(int a, int b) { return a<=b? a : b; } + int Max(int a, int b) { return a>=b? a : b; } + + float absDecrease(float value, float with, float min) { + if (value > 0) return Max(min, value - with); + return Min(value + with, -min); + } + //float absIncrease(float value, float with, float max); + + int clamp(int v, int low, int high) { + if (v > high) return high; + return v>low? v : low; + } + float clamp(float v, float low, float high) { + if (v > high) return high; + return v>low? v : low; + } + float lerp(float src, float dst, float alpha) { + return src + (dst - src) * alpha; + } + int lerp(int src, int dst, float alpha) { + return src + (int)((dst - src) * alpha); + } + + float absMax(float a, float b) { + if (a < 0) a = -a; + if (b < 0) b = -b; + return a > b ? a : b; + } + + float absMaxSigned(float a, float b) { + return abs(a) > abs(b)? a : b; + } +}; diff --git a/src/util/Mth.h b/src/util/Mth.h new file mode 100755 index 0000000..9ec045e --- /dev/null +++ b/src/util/Mth.h @@ -0,0 +1,98 @@ +#ifndef MTH_H__ +#define MTH_H__ + +#include +#include +#include + +namespace Mth { + + extern const float PI; + extern const float TWO_PI; + extern const float RADDEG; + extern const float DEGRAD; + + void initMth(); + + float sqrt(float x); + float invSqrt(float x); + + int floor(float x); + + float sin(float x); + float cos(float x); + + float atan(float x); + float atan2(float dy, float dx); + + float random(); + int random(int n); + + float abs(float a); + float Min(float a, float b); + float Max(float a, float b); + int abs(int a); + int Min(int a, int b); + int Max(int a, int b); + + int clamp(int v, int low, int high); + float clamp(float v, float low, float high); + float lerp(float src, float dst, float alpha); + int lerp(int src, int dst, float alpha); + + ///@param value The original signed value + ///@param with The (possibly signed) value to "abs-decrease" with + ///@param min The minimum value + float absDecrease(float value, float with, float min); + //float absIncrease(float value, float with, float max); + + float absMax(float a, float b); + float absMaxSigned(float a, float b); + + int intFloorDiv(int a, int b); +}; + +namespace Util +{ + template + int removeAll(std::vector& superset, const std::vector& toRemove) { + int subSize = (int)toRemove.size(); + int removed = 0; + + for (int i = 0; i < subSize; ++i) { + T elem = toRemove[i]; + int size = (int)superset.size(); + for (int j = 0; j < size; ++j) { + if (elem == superset[j]) { + superset.erase( superset.begin() + j, superset.begin() + j + 1); + ++removed; + break; + } + } + } + return removed; + } + + template + bool remove(std::vector& list, const T& instance) { + typename std::vector::iterator it = std::find(list.begin(), list.end(), instance); + if (it == list.end()) + return false; + + list.erase(it); + return true; + } + + // Could perhaps do a template